From ce024239a1d8e74a7a44f7c24cee4375cb13b3ef Mon Sep 17 00:00:00 2001 From: Akihiro MOTOKI Date: Wed, 28 Mar 2012 07:52:20 +0900 Subject: [PATCH] (split) Convert release and draft pages to UTF-8. --- draft/man1/intro.1 | 310 ++-- draft/man1/ldd.1 | 76 +- draft/man1/time.1 | 284 ++-- draft/man2/_exit.2 | 102 +- draft/man2/_syscall.2 | 92 +- draft/man2/accept.2 | 420 ++--- draft/man2/access.2 | 260 +-- draft/man2/acct.2 | 114 +- draft/man2/adjtimex.2 | 108 +- draft/man2/alarm.2 | 64 +- draft/man2/alloc_hugepages.2 | 154 +- draft/man2/arch_prctl.2 | 114 +- draft/man2/bdflush.2 | 84 +- draft/man2/bind.2 | 190 +-- draft/man2/brk.2 | 162 +- draft/man2/cacheflush.2 | 64 +- draft/man2/capget.2 | 266 +-- draft/man2/chdir.2 | 86 +- draft/man2/chmod.2 | 184 +-- draft/man2/chown.2 | 262 +-- draft/man2/chroot.2 | 114 +- draft/man2/clock_getres.2 | 200 +-- draft/man2/clock_nanosleep.2 | 204 +-- draft/man2/clone.2 | 1094 ++++++------- draft/man2/close.2 | 114 +- draft/man2/connect.2 | 222 +-- draft/man2/create_module.2 | 52 +- draft/man2/delete_module.2 | 42 +- draft/man2/dup.2 | 178 +- draft/man2/epoll_create.2 | 110 +- draft/man2/epoll_ctl.2 | 236 +-- draft/man2/epoll_wait.2 | 136 +- draft/man2/eventfd.2 | 338 ++-- draft/man2/execve.2 | 588 +++---- draft/man2/exit_group.2 | 38 +- draft/man2/faccessat.2 | 120 +- draft/man2/fallocate.2 | 124 +- draft/man2/fchmodat.2 | 102 +- draft/man2/fchownat.2 | 102 +- draft/man2/fcntl.2 | 1268 +++++++-------- draft/man2/flock.2 | 196 +-- draft/man2/fork.2 | 220 +-- draft/man2/fstatat.2 | 102 +- draft/man2/fsync.2 | 164 +- draft/man2/futex.2 | 292 ++-- draft/man2/futimesat.2 | 106 +- draft/man2/get_kernel_syms.2 | 76 +- draft/man2/get_mempolicy.2 | 244 +-- draft/man2/get_thread_area.2 | 60 +- draft/man2/getcontext.2 | 180 +-- draft/man2/getdents.2 | 158 +- draft/man2/getdomainname.2 | 96 +- draft/man2/getdtablesize.2 | 64 +- draft/man2/getgid.2 | 20 +- draft/man2/getgroups.2 | 120 +- draft/man2/gethostname.2 | 166 +- draft/man2/getitimer.2 | 210 +-- draft/man2/getpagesize.2 | 84 +- draft/man2/getpeername.2 | 92 +- draft/man2/getpid.2 | 56 +- draft/man2/getpriority.2 | 214 +-- draft/man2/getresuid.2 | 62 +- draft/man2/getrlimit.2 | 524 +++--- draft/man2/getrusage.2 | 158 +- draft/man2/getsid.2 | 60 +- draft/man2/getsockname.2 | 72 +- draft/man2/getsockopt.2 | 172 +- draft/man2/gettid.2 | 56 +- draft/man2/gettimeofday.2 | 194 +-- draft/man2/getuid.2 | 36 +- draft/man2/getxattr.2 | 138 +- draft/man2/idle.2 | 52 +- draft/man2/init_module.2 | 66 +- draft/man2/inotify_add_watch.2 | 96 +- draft/man2/inotify_init.2 | 74 +- draft/man2/inotify_rm_watch.2 | 58 +- draft/man2/intro.2 | 92 +- draft/man2/io_cancel.2 | 78 +- draft/man2/io_destroy.2 | 70 +- draft/man2/io_getevents.2 | 94 +- draft/man2/io_setup.2 | 82 +- draft/man2/io_submit.2 | 84 +- draft/man2/ioctl.2 | 136 +- draft/man2/ioctl_list.2 | 254 +-- draft/man2/ioperm.2 | 80 +- draft/man2/iopl.2 | 82 +- draft/man2/ioprio_set.2 | 306 ++-- draft/man2/ipc.2 | 54 +- draft/man2/kill.2 | 176 +- draft/man2/killpg.2 | 108 +- draft/man2/link.2 | 198 +-- draft/man2/linkat.2 | 128 +- draft/man2/listen.2 | 146 +- draft/man2/listxattr.2 | 136 +- draft/man2/llseek.2 | 68 +- draft/man2/lookup_dcookie.2 | 82 +- draft/man2/lseek.2 | 118 +- draft/man2/madvise.2 | 194 +-- draft/man2/mbind.2 | 466 +++--- draft/man2/mincore.2 | 144 +- draft/man2/mkdir.2 | 124 +- draft/man2/mkdirat.2 | 86 +- draft/man2/mknod.2 | 216 +-- draft/man2/mknodat.2 | 88 +- draft/man2/mlock.2 | 338 ++-- draft/man2/mmap.2 | 618 +++---- draft/man2/mmap2.2 | 72 +- draft/man2/modify_ldt.2 | 106 +- draft/man2/mount.2 | 466 +++--- draft/man2/move_pages.2 | 208 +-- draft/man2/mprotect.2 | 136 +- draft/man2/mq_getsetattr.2 | 34 +- draft/man2/mremap.2 | 232 +-- draft/man2/msgctl.2 | 336 ++-- draft/man2/msgget.2 | 214 +-- draft/man2/msgop.2 | 388 ++--- draft/man2/msync.2 | 102 +- draft/man2/nanosleep.2 | 216 +-- draft/man2/nfsservctl.2 | 34 +- draft/man2/nice.2 | 100 +- draft/man2/open.2 | 924 +++++------ draft/man2/openat.2 | 122 +- draft/man2/outb.2 | 58 +- draft/man2/pause.2 | 34 +- draft/man2/pciconfig_read.2 | 106 +- draft/man2/personality.2 | 60 +- draft/man2/pipe.2 | 124 +- draft/man2/pivot_root.2 | 190 +-- draft/man2/poll.2 | 258 +-- draft/man2/posix_fadvise.2 | 156 +- draft/man2/prctl.2 | 486 +++--- draft/man2/pread.2 | 94 +- draft/man2/ptrace.2 | 642 ++++---- draft/man2/query_module.2 | 142 +- draft/man2/quotactl.2 | 130 +- draft/man2/read.2 | 182 +-- draft/man2/readahead.2 | 72 +- draft/man2/readdir.2 | 100 +- draft/man2/readlink.2 | 94 +- draft/man2/readlinkat.2 | 90 +- draft/man2/readv.2 | 196 +-- draft/man2/reboot.2 | 170 +- draft/man2/recv.2 | 476 +++--- draft/man2/remap_file_pages.2 | 124 +- draft/man2/removexattr.2 | 102 +- draft/man2/rename.2 | 272 ++-- draft/man2/renameat.2 | 102 +- draft/man2/rmdir.2 | 122 +- draft/man2/sched_get_priority_max.2 | 104 +- draft/man2/sched_rr_get_interval.2 | 100 +- draft/man2/sched_setaffinity.2 | 246 +-- draft/man2/sched_setparam.2 | 90 +- draft/man2/sched_setscheduler.2 | 544 +++---- draft/man2/sched_yield.2 | 82 +- draft/man2/select.2 | 508 +++--- draft/man2/select_tut.2 | 514 +++--- draft/man2/semctl.2 | 480 +++--- draft/man2/semget.2 | 284 ++-- draft/man2/semop.2 | 524 +++--- draft/man2/send.2 | 426 ++--- draft/man2/sendfile.2 | 154 +- draft/man2/set_mempolicy.2 | 306 ++-- draft/man2/set_thread_area.2 | 62 +- draft/man2/set_tid_address.2 | 92 +- draft/man2/seteuid.2 | 92 +- draft/man2/setfsgid.2 | 104 +- draft/man2/setfsuid.2 | 102 +- draft/man2/setgid.2 | 56 +- draft/man2/setpgid.2 | 274 ++-- draft/man2/setresuid.2 | 96 +- draft/man2/setreuid.2 | 116 +- draft/man2/setsid.2 | 70 +- draft/man2/setuid.2 | 112 +- draft/man2/setup.2 | 66 +- draft/man2/setxattr.2 | 146 +- draft/man2/sgetmask.2 | 64 +- draft/man2/shmctl.2 | 424 ++--- draft/man2/shmget.2 | 294 ++-- draft/man2/shmop.2 | 280 ++-- draft/man2/shutdown.2 | 54 +- draft/man2/sigaction.2 | 582 +++---- draft/man2/sigaltstack.2 | 244 +-- draft/man2/signal.2 | 286 ++-- draft/man2/signalfd.2 | 410 ++--- draft/man2/sigpending.2 | 60 +- draft/man2/sigprocmask.2 | 98 +- draft/man2/sigreturn.2 | 66 +- draft/man2/sigsuspend.2 | 80 +- draft/man2/sigwaitinfo.2 | 164 +- draft/man2/socket.2 | 386 ++--- draft/man2/socketcall.2 | 48 +- draft/man2/socketpair.2 | 106 +- draft/man2/splice.2 | 204 +-- draft/man2/spu_create.2 | 148 +- draft/man2/spu_run.2 | 184 +-- draft/man2/stat.2 | 554 +++---- draft/man2/statfs.2 | 218 +-- draft/man2/stime.2 | 48 +- draft/man2/swapon.2 | 174 +- draft/man2/symlink.2 | 134 +- draft/man2/symlinkat.2 | 86 +- draft/man2/sync.2 | 54 +- draft/man2/sync_file_range.2 | 168 +- draft/man2/syscall.2 | 38 +- draft/man2/syscalls.2 | 388 ++--- draft/man2/sysctl.2 | 118 +- draft/man2/sysfs.2 | 96 +- draft/man2/sysinfo.2 | 58 +- draft/man2/syslog.2 | 288 ++-- draft/man2/tee.2 | 118 +- draft/man2/time.2 | 62 +- draft/man2/timerfd_create.2 | 344 ++-- draft/man2/times.2 | 176 +- draft/man2/tkill.2 | 90 +- draft/man2/truncate.2 | 184 +-- draft/man2/umask.2 | 84 +- draft/man2/umount.2 | 164 +- draft/man2/uname.2 | 158 +- draft/man2/unimplemented.2 | 32 +- draft/man2/unlink.2 | 150 +- draft/man2/unlinkat.2 | 120 +- draft/man2/unshare.2 | 116 +- draft/man2/uselib.2 | 84 +- draft/man2/ustat.2 | 98 +- draft/man2/utime.2 | 126 +- draft/man2/vfork.2 | 226 +-- draft/man2/vhangup.2 | 46 +- draft/man2/vm86.2 | 58 +- draft/man2/vmsplice.2 | 116 +- draft/man2/wait.2 | 560 +++---- draft/man2/wait4.2 | 100 +- draft/man2/write.2 | 238 +-- draft/man3/INFINITY.3 | 64 +- draft/man3/MB_CUR_MAX.3 | 28 +- draft/man3/MB_LEN_MAX.3 | 34 +- draft/man3/__setfpucw.3 | 62 +- draft/man3/a64l.3 | 68 +- draft/man3/abort.3 | 42 +- draft/man3/abs.3 | 68 +- draft/man3/acos.3 | 62 +- draft/man3/acosh.3 | 62 +- draft/man3/addseverity.3 | 80 +- draft/man3/adjtime.3 | 112 +- draft/man3/aio_cancel.3 | 74 +- draft/man3/aio_error.3 | 42 +- draft/man3/aio_fsync.3 | 74 +- draft/man3/aio_read.3 | 110 +- draft/man3/aio_return.3 | 42 +- draft/man3/aio_suspend.3 | 60 +- draft/man3/aio_write.3 | 110 +- draft/man3/alloca.3 | 130 +- draft/man3/argz_add.3 | 178 +- draft/man3/asin.3 | 58 +- draft/man3/asinh.3 | 42 +- draft/man3/asprintf.3 | 54 +- draft/man3/assert.3 | 62 +- draft/man3/assert_perror.3 | 56 +- draft/man3/atan.3 | 44 +- draft/man3/atan2.3 | 86 +- draft/man3/atanh.3 | 92 +- draft/man3/atexit.3 | 106 +- draft/man3/atof.3 | 26 +- draft/man3/atoi.3 | 64 +- draft/man3/backtrace.3 | 166 +- draft/man3/basename.3 | 140 +- draft/man3/bcmp.3 | 42 +- draft/man3/bcopy.3 | 42 +- draft/man3/bindresvport.3 | 78 +- draft/man3/bsd_signal.3 | 90 +- draft/man3/bsearch.3 | 52 +- draft/man3/bstring.3 | 22 +- draft/man3/btowc.3 | 62 +- draft/man3/btree.3 | 192 +-- draft/man3/byteorder.3 | 40 +- draft/man3/bzero.3 | 36 +- draft/man3/cabs.3 | 34 +- draft/man3/cacos.3 | 40 +- draft/man3/cacosh.3 | 46 +- draft/man3/canonicalize_file_name.3 | 20 +- draft/man3/carg.3 | 50 +- draft/man3/casin.3 | 38 +- draft/man3/casinh.3 | 40 +- draft/man3/catan.3 | 40 +- draft/man3/catanh.3 | 42 +- draft/man3/catgets.3 | 72 +- draft/man3/catopen.3 | 186 +-- draft/man3/cbrt.3 | 48 +- draft/man3/ccos.3 | 26 +- draft/man3/ccosh.3 | 30 +- draft/man3/ceil.3 | 84 +- draft/man3/cerf.3 | 36 +- draft/man3/cexp.3 | 28 +- draft/man3/cexp2.3 | 26 +- draft/man3/cfree.3 | 110 +- draft/man3/cimag.3 | 34 +- draft/man3/clearenv.3 | 80 +- draft/man3/clock.3 | 70 +- draft/man3/clog.3 | 42 +- draft/man3/clog10.3 | 42 +- draft/man3/clog2.3 | 40 +- draft/man3/closedir.3 | 40 +- draft/man3/cmsg.3 | 172 +- draft/man3/confstr.3 | 98 +- draft/man3/conj.3 | 28 +- draft/man3/copysign.3 | 44 +- draft/man3/cos.3 | 66 +- draft/man3/cosh.3 | 68 +- draft/man3/cpow.3 | 32 +- draft/man3/cproj.3 | 46 +- draft/man3/creal.3 | 34 +- draft/man3/crypt.3 | 210 +-- draft/man3/csin.3 | 26 +- draft/man3/csinh.3 | 28 +- draft/man3/csqrt.3 | 36 +- draft/man3/ctan.3 | 26 +- draft/man3/ctanh.3 | 28 +- draft/man3/ctermid.3 | 40 +- draft/man3/ctime.3 | 320 ++-- draft/man3/daemon.3 | 86 +- draft/man3/dbopen.3 | 454 +++--- draft/man3/des_crypt.3 | 120 +- draft/man3/difftime.3 | 42 +- draft/man3/dirfd.3 | 68 +- draft/man3/div.3 | 52 +- draft/man3/dl_iterate_phdr.3 | 148 +- draft/man3/dlopen.3 | 490 +++--- draft/man3/dprintf.3 | 74 +- draft/man3/drand48.3 | 156 +- draft/man3/drand48_r.3 | 40 +- draft/man3/dysize.3 | 34 +- draft/man3/ecvt.3 | 94 +- draft/man3/ecvt_r.3 | 44 +- draft/man3/encrypt.3 | 110 +- draft/man3/end.3 | 62 +- draft/man3/envz_add.3 | 100 +- draft/man3/erf.3 | 62 +- draft/man3/erfc.3 | 80 +- draft/man3/err.3 | 72 +- draft/man3/errno.3 | 372 ++--- draft/man3/error.3 | 108 +- draft/man3/ether_aton.3 | 98 +- draft/man3/euidaccess.3 | 64 +- draft/man3/exec.3 | 206 +-- draft/man3/exit.3 | 170 +- draft/man3/exp.3 | 74 +- draft/man3/exp10.3 | 46 +- draft/man3/exp2.3 | 48 +- draft/man3/expm1.3 | 84 +- draft/man3/fabs.3 | 38 +- draft/man3/fclose.3 | 68 +- draft/man3/fcloseall.3 | 38 +- draft/man3/fdim.3 | 56 +- draft/man3/fenv.3 | 320 ++-- draft/man3/ferror.3 | 76 +- draft/man3/fexecve.3 | 80 +- draft/man3/fflush.3 | 88 +- draft/man3/ffs.3 | 50 +- draft/man3/fgetgrent.3 | 52 +- draft/man3/fgetpwent.3 | 62 +- draft/man3/fgetwc.3 | 68 +- draft/man3/fgetws.3 | 58 +- draft/man3/finite.3 | 56 +- draft/man3/flockfile.3 | 110 +- draft/man3/floor.3 | 76 +- draft/man3/fma.3 | 106 +- draft/man3/fmax.3 | 44 +- draft/man3/fmemopen.3 | 232 +-- draft/man3/fmin.3 | 44 +- draft/man3/fmod.3 | 94 +- draft/man3/fmtmsg.3 | 234 +-- draft/man3/fnmatch.3 | 76 +- draft/man3/fopen.3 | 296 ++-- draft/man3/fpathconf.3 | 146 +- draft/man3/fpclassify.3 | 72 +- draft/man3/fpurge.3 | 54 +- draft/man3/fputwc.3 | 68 +- draft/man3/fputws.3 | 46 +- draft/man3/fread.3 | 60 +- draft/man3/frexp.3 | 58 +- draft/man3/fseek.3 | 118 +- draft/man3/fseeko.3 | 60 +- draft/man3/ftime.3 | 72 +- draft/man3/ftok.3 | 80 +- draft/man3/fts.3 | 738 ++++----- draft/man3/ftw.3 | 378 ++--- draft/man3/futimes.3 | 72 +- draft/man3/fwide.3 | 76 +- draft/man3/gamma.3 | 90 +- draft/man3/gcvt.3 | 50 +- draft/man3/getaddrinfo.3 | 562 +++---- draft/man3/getcwd.3 | 218 +-- draft/man3/getdate.3 | 188 +-- draft/man3/getdirentries.3 | 48 +- draft/man3/getenv.3 | 48 +- draft/man3/getfsent.3 | 110 +- draft/man3/getgrent.3 | 98 +- draft/man3/getgrent_r.3 | 118 +- draft/man3/getgrnam.3 | 200 +-- draft/man3/getgrouplist.3 | 112 +- draft/man3/gethostbyname.3 | 374 ++--- draft/man3/gethostid.3 | 98 +- draft/man3/getipnodebyname.3 | 222 +-- draft/man3/getline.3 | 116 +- draft/man3/getloadavg.3 | 48 +- draft/man3/getlogin.3 | 180 +-- draft/man3/getmntent.3 | 144 +- draft/man3/getnameinfo.3 | 226 +-- draft/man3/getnetent.3 | 78 +- draft/man3/getopt.3 | 404 ++--- draft/man3/getpass.3 | 148 +- draft/man3/getprotoent.3 | 68 +- draft/man3/getpt.3 | 50 +- draft/man3/getpw.3 | 56 +- draft/man3/getpwent.3 | 110 +- draft/man3/getpwent_r.3 | 126 +- draft/man3/getpwnam.3 | 240 +-- draft/man3/getrpcent.3 | 74 +- draft/man3/getrpcport.3 | 36 +- draft/man3/gets.3 | 142 +- draft/man3/getservent.3 | 86 +- draft/man3/getspnam.3 | 238 +-- draft/man3/getsubopt.3 | 122 +- draft/man3/getttyent.3 | 74 +- draft/man3/getumask.3 | 34 +- draft/man3/getusershell.3 | 42 +- draft/man3/getutent.3 | 208 +-- draft/man3/getw.3 | 52 +- draft/man3/getwchar.3 | 46 +- draft/man3/glob.3 | 268 +-- draft/man3/gnu_get_libc_version.3 | 36 +- draft/man3/grantpt.3 | 70 +- draft/man3/gsignal.3 | 78 +- draft/man3/hash.3 | 136 +- draft/man3/hsearch.3 | 270 ++-- draft/man3/hypot.3 | 98 +- draft/man3/iconv.3 | 154 +- draft/man3/iconv_close.3 | 38 +- draft/man3/iconv_open.3 | 96 +- draft/man3/ilogb.3 | 70 +- draft/man3/index.3 | 44 +- draft/man3/inet.3 | 220 +-- draft/man3/inet_ntop.3 | 118 +- draft/man3/inet_pton.3 | 166 +- draft/man3/infnan.3 | 48 +- draft/man3/initgroups.3 | 48 +- draft/man3/insque.3 | 46 +- draft/man3/intro.3 | 90 +- draft/man3/isalpha.3 | 114 +- draft/man3/isatty.3 | 38 +- draft/man3/isgreater.3 | 88 +- draft/man3/iswalnum.3 | 58 +- draft/man3/iswalpha.3 | 60 +- draft/man3/iswblank.3 | 50 +- draft/man3/iswcntrl.3 | 44 +- draft/man3/iswctype.3 | 42 +- draft/man3/iswdigit.3 | 62 +- draft/man3/iswgraph.3 | 54 +- draft/man3/iswlower.3 | 70 +- draft/man3/iswprint.3 | 38 +- draft/man3/iswpunct.3 | 58 +- draft/man3/iswspace.3 | 44 +- draft/man3/iswupper.3 | 66 +- draft/man3/iswxdigit.3 | 56 +- draft/man3/j0.3 | 80 +- draft/man3/key_setsecret.3 | 66 +- draft/man3/ldexp.3 | 82 +- draft/man3/lgamma.3 | 124 +- draft/man3/localeconv.3 | 38 +- draft/man3/lockf.3 | 174 +- draft/man3/log.3 | 82 +- draft/man3/log10.3 | 42 +- draft/man3/log1p.3 | 68 +- draft/man3/log2.3 | 46 +- draft/man3/logb.3 | 88 +- draft/man3/login.3 | 122 +- draft/man3/longjmp.3 | 110 +- draft/man3/lrint.3 | 62 +- draft/man3/lround.3 | 64 +- draft/man3/lsearch.3 | 68 +- draft/man3/lseek64.3 | 106 +- draft/man3/makecontext.3 | 150 +- draft/man3/malloc.3 | 256 +-- draft/man3/malloc_hook.3 | 74 +- draft/man3/mblen.3 | 68 +- draft/man3/mbrlen.3 | 74 +- draft/man3/mbrtowc.3 | 112 +- draft/man3/mbsinit.3 | 72 +- draft/man3/mbsnrtowcs.3 | 104 +- draft/man3/mbsrtowcs.3 | 84 +- draft/man3/mbstowcs.3 | 72 +- draft/man3/mbtowc.3 | 84 +- draft/man3/memccpy.3 | 32 +- draft/man3/memchr.3 | 90 +- draft/man3/memcmp.3 | 32 +- draft/man3/memcpy.3 | 24 +- draft/man3/memfrob.3 | 34 +- draft/man3/memmem.3 | 54 +- draft/man3/memmove.3 | 32 +- draft/man3/mempcpy.3 | 54 +- draft/man3/memset.3 | 20 +- draft/man3/mkdtemp.3 | 62 +- draft/man3/mkfifo.3 | 90 +- draft/man3/mkfifoat.3 | 92 +- draft/man3/mkstemp.3 | 128 +- draft/man3/mktemp.3 | 92 +- draft/man3/modf.3 | 44 +- draft/man3/mpool.3 | 186 +-- draft/man3/mq_close.3 | 48 +- draft/man3/mq_getattr.3 | 122 +- draft/man3/mq_notify.3 | 184 +-- draft/man3/mq_open.3 | 188 +-- draft/man3/mq_receive.3 | 128 +- draft/man3/mq_send.3 | 132 +- draft/man3/mq_unlink.3 | 44 +- draft/man3/mtrace.3 | 48 +- draft/man3/nan.3 | 62 +- draft/man3/netlink.3 | 76 +- draft/man3/nextafter.3 | 112 +- draft/man3/nl_langinfo.3 | 110 +- draft/man3/offsetof.3 | 52 +- draft/man3/on_exit.3 | 50 +- draft/man3/opendir.3 | 104 +- draft/man3/openpty.3 | 154 +- draft/man3/perror.3 | 112 +- draft/man3/popen.3 | 178 +- draft/man3/posix_fallocate.3 | 88 +- draft/man3/posix_memalign.3 | 224 +-- draft/man3/posix_openpt.3 | 62 +- draft/man3/pow.3 | 226 +-- draft/man3/pow10.3 | 30 +- draft/man3/printf.3 | 918 +++++------ draft/man3/profil.3 | 76 +- draft/man3/program_invocation_name.3 | 46 +- draft/man3/psignal.3 | 32 +- draft/man3/ptsname.3 | 92 +- draft/man3/putenv.3 | 88 +- draft/man3/putgrent.3 | 42 +- draft/man3/putpwent.3 | 46 +- draft/man3/puts.3 | 84 +- draft/man3/putwchar.3 | 50 +- draft/man3/qecvt.3 | 40 +- draft/man3/qsort.3 | 66 +- draft/man3/queue.3 | 354 ++-- draft/man3/raise.3 | 26 +- draft/man3/rand.3 | 122 +- draft/man3/random.3 | 136 +- draft/man3/random_r.3 | 86 +- draft/man3/rcmd.3 | 196 +-- draft/man3/re_comp.3 | 50 +- draft/man3/readdir.3 | 212 +-- draft/man3/realpath.3 | 186 +-- draft/man3/recno.3 | 202 +-- draft/man3/regex.3 | 260 +-- draft/man3/remainder.3 | 130 +- draft/man3/remove.3 | 68 +- draft/man3/remquo.3 | 100 +- draft/man3/resolver.3 | 220 +-- draft/man3/rewinddir.3 | 20 +- draft/man3/rexec.3 | 98 +- draft/man3/rint.3 | 82 +- draft/man3/round.3 | 88 +- draft/man3/rpc.3 | 906 +++++------ draft/man3/rpmatch.3 | 108 +- draft/man3/rtime.3 | 82 +- draft/man3/rtnetlink.3 | 66 +- draft/man3/scalb.3 | 132 +- draft/man3/scandir.3 | 118 +- draft/man3/scanf.3 | 736 ++++----- draft/man3/sched_getcpu.3 | 44 +- draft/man3/seekdir.3 | 48 +- draft/man3/sem_close.3 | 40 +- draft/man3/sem_destroy.3 | 52 +- draft/man3/sem_getvalue.3 | 50 +- draft/man3/sem_init.3 | 74 +- draft/man3/sem_open.3 | 134 +- draft/man3/sem_post.3 | 48 +- draft/man3/sem_unlink.3 | 42 +- draft/man3/sem_wait.3 | 148 +- draft/man3/setaliasent.3 | 100 +- draft/man3/setbuf.3 | 118 +- draft/man3/setenv.3 | 94 +- draft/man3/setjmp.3 | 100 +- draft/man3/setlocale.3 | 182 +-- draft/man3/setlogmask.3 | 58 +- draft/man3/setnetgrent.3 | 80 +- draft/man3/shm_open.3 | 264 +-- draft/man3/siginterrupt.3 | 60 +- draft/man3/signbit.3 | 50 +- draft/man3/significand.3 | 34 +- draft/man3/sigpause.3 | 102 +- draft/man3/sigqueue.3 | 134 +- draft/man3/sigset.3 | 236 +-- draft/man3/sigsetops.3 | 110 +- draft/man3/sigvec.3 | 210 +-- draft/man3/sigwait.3 | 62 +- draft/man3/sin.3 | 64 +- draft/man3/sincos.3 | 70 +- draft/man3/sinh.3 | 64 +- draft/man3/sleep.3 | 42 +- draft/man3/sockatmark.3 | 80 +- draft/man3/sqrt.3 | 56 +- draft/man3/statvfs.3 | 142 +- draft/man3/stdarg.3 | 194 +-- draft/man3/stdin.3 | 148 +- draft/man3/stdio.3 | 306 ++-- draft/man3/stdio_ext.3 | 84 +- draft/man3/stpcpy.3 | 60 +- draft/man3/stpncpy.3 | 48 +- draft/man3/strcasecmp.3 | 34 +- draft/man3/strcat.3 | 54 +- draft/man3/strchr.3 | 58 +- draft/man3/strcmp.3 | 36 +- draft/man3/strcoll.3 | 40 +- draft/man3/strcpy.3 | 90 +- draft/man3/strdup.3 | 64 +- draft/man3/strerror.3 | 174 +- draft/man3/strfmon.3 | 178 +- draft/man3/strfry.3 | 28 +- draft/man3/strftime.3 | 436 ++--- draft/man3/string.3 | 16 +- draft/man3/strlen.3 | 20 +- draft/man3/strnlen.3 | 38 +- draft/man3/strpbrk.3 | 26 +- draft/man3/strptime.3 | 382 ++--- draft/man3/strsep.3 | 68 +- draft/man3/strsignal.3 | 52 +- draft/man3/strspn.3 | 30 +- draft/man3/strstr.3 | 46 +- draft/man3/strtod.3 | 134 +- draft/man3/strtoimax.3 | 40 +- draft/man3/strtok.3 | 124 +- draft/man3/strtol.3 | 174 +- draft/man3/strtoul.3 | 158 +- draft/man3/strverscmp.3 | 92 +- draft/man3/strxfrm.3 | 54 +- draft/man3/swab.3 | 34 +- draft/man3/sysconf.3 | 278 ++-- draft/man3/syslog.3 | 268 +-- draft/man3/system.3 | 142 +- draft/man3/sysv_signal.3 | 80 +- draft/man3/tan.3 | 72 +- draft/man3/tanh.3 | 40 +- draft/man3/tcgetpgrp.3 | 114 +- draft/man3/tcgetsid.3 | 58 +- draft/man3/telldir.3 | 48 +- draft/man3/tempnam.3 | 164 +- draft/man3/termios.3 | 866 +++++----- draft/man3/tgamma.3 | 148 +- draft/man3/timegm.3 | 48 +- draft/man3/timeradd.3 | 108 +- draft/man3/tmpfile.3 | 60 +- draft/man3/tmpnam.3 | 130 +- draft/man3/toascii.3 | 40 +- draft/man3/toupper.3 | 50 +- draft/man3/towctrans.3 | 38 +- draft/man3/towlower.3 | 40 +- draft/man3/towupper.3 | 40 +- draft/man3/trunc.3 | 48 +- draft/man3/tsearch.3 | 174 +- draft/man3/ttyname.3 | 46 +- draft/man3/ttyslot.3 | 172 +- draft/man3/tzset.3 | 234 +-- draft/man3/ualarm.3 | 94 +- draft/man3/ulimit.3 | 58 +- draft/man3/undocumented.3 | 30 +- draft/man3/ungetwc.3 | 54 +- draft/man3/unlocked_stdio.3 | 38 +- draft/man3/unlockpt.3 | 46 +- draft/man3/updwtmp.3 | 66 +- draft/man3/usleep.3 | 86 +- draft/man3/wcpcpy.3 | 42 +- draft/man3/wcpncpy.3 | 52 +- draft/man3/wcrtomb.3 | 74 +- draft/man3/wcscasecmp.3 | 58 +- draft/man3/wcscat.3 | 32 +- draft/man3/wcschr.3 | 26 +- draft/man3/wcscmp.3 | 32 +- draft/man3/wcscpy.3 | 30 +- draft/man3/wcscspn.3 | 38 +- draft/man3/wcsdup.3 | 52 +- draft/man3/wcslen.3 | 24 +- draft/man3/wcsncasecmp.3 | 62 +- draft/man3/wcsncat.3 | 32 +- draft/man3/wcsncmp.3 | 40 +- draft/man3/wcsncpy.3 | 42 +- draft/man3/wcsnlen.3 | 54 +- draft/man3/wcsnrtombs.3 | 102 +- draft/man3/wcspbrk.3 | 28 +- draft/man3/wcsrchr.3 | 28 +- draft/man3/wcsrtombs.3 | 86 +- draft/man3/wcsspn.3 | 38 +- draft/man3/wcsstr.3 | 34 +- draft/man3/wcstoimax.3 | 22 +- draft/man3/wcstok.3 | 74 +- draft/man3/wcstombs.3 | 70 +- draft/man3/wcswidth.3 | 32 +- draft/man3/wctob.3 | 46 +- draft/man3/wctomb.3 | 62 +- draft/man3/wctrans.3 | 46 +- draft/man3/wctype.3 | 78 +- draft/man3/wcwidth.3 | 34 +- draft/man3/wmemchr.3 | 28 +- draft/man3/wmemcmp.3 | 38 +- draft/man3/wmemcpy.3 | 32 +- draft/man3/wmemmove.3 | 30 +- draft/man3/wmemset.3 | 24 +- draft/man3/wordexp.3 | 182 +-- draft/man3/wprintf.3 | 190 +-- draft/man3/xcrypt.3 | 74 +- draft/man3/xdr.3 | 486 +++--- draft/man3/y0.3 | 152 +- draft/man4/console.4 | 132 +- draft/man4/console_codes.4 | 884 +++++----- draft/man4/console_ioctl.4 | 564 +++---- draft/man4/dsp56k.4 | 118 +- draft/man4/fd.4 | 214 +-- draft/man4/full.4 | 36 +- draft/man4/hd.4 | 88 +- draft/man4/initrd.4 | 510 +++--- draft/man4/intro.4 | 26 +- draft/man4/lp.4 | 158 +- draft/man4/mem.4 | 72 +- draft/man4/mouse.4 | 128 +- draft/man4/null.4 | 38 +- draft/man4/pts.4 | 100 +- draft/man4/ram.4 | 26 +- draft/man4/random.4 | 256 +-- draft/man4/rtc.4 | 358 ++-- draft/man4/sd.4 | 126 +- draft/man4/sk98lin.4 | 626 +++---- draft/man4/st.4 | 1084 ++++++------- draft/man4/tty.4 | 64 +- draft/man4/ttyS.4 | 22 +- draft/man4/tty_ioctl.4 | 458 +++--- draft/man4/vcs.4 | 110 +- draft/man4/wavelan.4 | 162 +- draft/man5/acct.5 | 104 +- draft/man5/charmap.5 | 112 +- draft/man5/core.5 | 332 ++-- draft/man5/dir_colors.5 | 404 ++--- draft/man5/elf.5 | 1592 +++++++++--------- draft/man5/filesystems.5 | 190 +-- draft/man5/ftpusers.5 | 46 +- draft/man5/group.5 | 36 +- draft/man5/host.conf.5 | 232 +-- draft/man5/hosts.5 | 128 +- draft/man5/hosts.equiv.5 | 82 +- draft/man5/intro.5 | 20 +- draft/man5/issue.5 | 24 +- draft/man5/locale.5 | 424 ++--- draft/man5/motd.5 | 22 +- draft/man5/nologin.5 | 16 +- draft/man5/nscd.conf.5 | 120 +- draft/man5/nsswitch.conf.5 | 228 +-- draft/man5/passwd.5 | 136 +- draft/man5/proc.5 | 2746 +++++++++++++++---------------- draft/man5/protocols.5 | 54 +- draft/man5/resolv.conf.5 | 306 ++-- draft/man5/rpc.5 | 36 +- draft/man5/securetty.5 | 24 +- draft/man5/services.5 | 156 +- draft/man5/shells.5 | 34 +- draft/man5/slabinfo.5 | 120 +- draft/man5/termcap.5 | 790 ++++----- draft/man5/ttytype.5 | 34 +- draft/man5/tzfile.5 | 146 +- draft/man5/utmp.5 | 312 ++-- draft/man6/intro.6 | 18 +- draft/man7/arp.7 | 416 ++--- draft/man7/ascii.7 | 114 +- draft/man7/boot.7 | 304 ++-- draft/man7/bootparam.7 | 1700 +++++++++---------- draft/man7/capabilities.7 | 978 +++++------ draft/man7/charsets.7 | 532 +++--- draft/man7/complex.7 | 48 +- draft/man7/credentials.7 | 292 ++-- draft/man7/ddp.7 | 226 +-- draft/man7/environ.7 | 216 +-- draft/man7/epoll.7 | 548 +++---- draft/man7/feature_test_macros.7 | 464 +++--- draft/man7/fifo.7 | 74 +- draft/man7/futex.7 | 158 +- draft/man7/glob.7 | 260 +-- draft/man7/hier.7 | 458 +++--- draft/man7/icmp.7 | 226 +-- draft/man7/inotify.7 | 394 ++--- draft/man7/intro.7 | 22 +- draft/man7/ip.7 | 1126 ++++++------- draft/man7/ipv6.7 | 394 ++--- draft/man7/iso_8859-1.7 | 110 +- draft/man7/iso_8859-15.7 | 112 +- draft/man7/iso_8859-16.7 | 98 +- draft/man7/iso_8859-2.7 | 94 +- draft/man7/iso_8859-7.7 | 184 +-- draft/man7/iso_8859-9.7 | 88 +- draft/man7/koi8-r.7 | 270 ++-- draft/man7/locale.7 | 208 +-- draft/man7/mailaddr.7 | 100 +- draft/man7/man-pages.7 | 704 ++++---- draft/man7/man.7 | 518 +++--- draft/man7/math_error.7 | 244 +-- draft/man7/mdoc.7 | 462 +++--- draft/man7/mq_overview.7 | 314 ++-- draft/man7/netdevice.7 | 242 +-- draft/man7/netlink.7 | 420 ++--- draft/man7/operator.7 | 40 +- draft/man7/packet.7 | 414 ++--- draft/man7/path_resolution.7 | 302 ++-- draft/man7/pipe.7 | 280 ++-- draft/man7/posixoptions.7 | 316 ++-- draft/man7/pthreads.7 | 576 +++---- draft/man7/pty.7 | 166 +- draft/man7/raw.7 | 346 ++-- draft/man7/regex.7 | 436 ++--- draft/man7/rtnetlink.7 | 394 ++--- draft/man7/sem_overview.7 | 178 +- draft/man7/shm_overview.7 | 116 +- draft/man7/signal.7 | 736 ++++----- draft/man7/socket.7 | 794 ++++----- draft/man7/spufs.7 | 470 +++--- draft/man7/standards.7 | 304 ++-- draft/man7/suffixes.7 | 454 +++--- draft/man7/svipc.7 | 278 ++-- draft/man7/tcp.7 | 1402 ++++++++-------- draft/man7/termio.7 | 44 +- draft/man7/time.7 | 194 +-- draft/man7/udp.7 | 292 ++-- draft/man7/udplite.7 | 134 +- draft/man7/unicode.7 | 386 ++--- draft/man7/units.7 | 142 +- draft/man7/unix.7 | 410 ++--- draft/man7/uri.7 | 826 +++++----- draft/man7/utf-8.7 | 248 +-- draft/man7/x25.7 | 130 +- draft/man8/intro.8 | 28 +- draft/man8/ld.so.8 | 450 +++--- draft/man8/ldconfig.8 | 144 +- draft/man8/nscd.8 | 72 +- draft/man8/sync.8 | 98 +- draft/man8/tzselect.8 | 50 +- draft/man8/zdump.8 | 40 +- draft/man8/zic.8 | 358 ++-- release/man1/intro.1 | 310 ++-- release/man1/ldd.1 | 76 +- release/man1/time.1 | 284 ++-- release/man2/_exit.2 | 102 +- release/man2/_syscall.2 | 92 +- release/man2/accept.2 | 420 ++--- release/man2/access.2 | 260 +-- release/man2/acct.2 | 114 +- release/man2/adjtimex.2 | 108 +- release/man2/alarm.2 | 64 +- release/man2/alloc_hugepages.2 | 154 +- release/man2/arch_prctl.2 | 114 +- release/man2/bdflush.2 | 84 +- release/man2/bind.2 | 190 +-- release/man2/brk.2 | 162 +- release/man2/cacheflush.2 | 64 +- release/man2/capget.2 | 266 +-- release/man2/chdir.2 | 84 +- release/man2/chmod.2 | 184 +-- release/man2/chown.2 | 262 +-- release/man2/chroot.2 | 114 +- release/man2/clock_getres.2 | 200 +-- release/man2/clock_nanosleep.2 | 204 +-- release/man2/clone.2 | 1104 ++++++------- release/man2/close.2 | 114 +- release/man2/connect.2 | 222 +-- release/man2/create_module.2 | 52 +- release/man2/delete_module.2 | 42 +- release/man2/dup.2 | 178 +- release/man2/epoll_create.2 | 110 +- release/man2/epoll_ctl.2 | 230 +-- release/man2/epoll_wait.2 | 136 +- release/man2/eventfd.2 | 338 ++-- release/man2/execve.2 | 596 +++---- release/man2/exit_group.2 | 38 +- release/man2/faccessat.2 | 120 +- release/man2/fallocate.2 | 124 +- release/man2/fchmodat.2 | 102 +- release/man2/fchownat.2 | 102 +- release/man2/fcntl.2 | 1268 +++++++-------- release/man2/flock.2 | 196 +-- release/man2/fork.2 | 220 +-- release/man2/fstatat.2 | 102 +- release/man2/fsync.2 | 164 +- release/man2/futex.2 | 290 ++-- release/man2/futimesat.2 | 106 +- release/man2/get_kernel_syms.2 | 76 +- release/man2/get_mempolicy.2 | 244 +-- release/man2/get_thread_area.2 | 60 +- release/man2/getcontext.2 | 180 +-- release/man2/getdents.2 | 158 +- release/man2/getdomainname.2 | 96 +- release/man2/getdtablesize.2 | 64 +- release/man2/getgid.2 | 20 +- release/man2/getgroups.2 | 120 +- release/man2/gethostname.2 | 166 +- release/man2/getitimer.2 | 210 +-- release/man2/getpagesize.2 | 84 +- release/man2/getpeername.2 | 92 +- release/man2/getpid.2 | 56 +- release/man2/getpriority.2 | 214 +-- release/man2/getresuid.2 | 62 +- release/man2/getrlimit.2 | 524 +++--- release/man2/getrusage.2 | 156 +- release/man2/getsid.2 | 60 +- release/man2/getsockname.2 | 72 +- release/man2/getsockopt.2 | 172 +- release/man2/gettid.2 | 56 +- release/man2/gettimeofday.2 | 194 +-- release/man2/getuid.2 | 36 +- release/man2/getxattr.2 | 138 +- release/man2/idle.2 | 52 +- release/man2/init_module.2 | 66 +- release/man2/inotify_add_watch.2 | 96 +- release/man2/inotify_init.2 | 74 +- release/man2/inotify_rm_watch.2 | 58 +- release/man2/intro.2 | 92 +- release/man2/io_cancel.2 | 78 +- release/man2/io_destroy.2 | 70 +- release/man2/io_getevents.2 | 94 +- release/man2/io_setup.2 | 82 +- release/man2/io_submit.2 | 84 +- release/man2/ioctl.2 | 136 +- release/man2/ioctl_list.2 | 254 +-- release/man2/ioperm.2 | 80 +- release/man2/iopl.2 | 82 +- release/man2/ioprio_set.2 | 306 ++-- release/man2/ipc.2 | 54 +- release/man2/kill.2 | 176 +- release/man2/killpg.2 | 108 +- release/man2/link.2 | 198 +-- release/man2/linkat.2 | 128 +- release/man2/listen.2 | 146 +- release/man2/listxattr.2 | 136 +- release/man2/llseek.2 | 68 +- release/man2/lookup_dcookie.2 | 82 +- release/man2/lseek.2 | 118 +- release/man2/madvise.2 | 194 +-- release/man2/mbind.2 | 464 +++--- release/man2/mincore.2 | 144 +- release/man2/mkdir.2 | 124 +- release/man2/mkdirat.2 | 86 +- release/man2/mknod.2 | 216 +-- release/man2/mknodat.2 | 88 +- release/man2/mlock.2 | 338 ++-- release/man2/mmap.2 | 618 +++---- release/man2/mmap2.2 | 72 +- release/man2/modify_ldt.2 | 106 +- release/man2/mount.2 | 466 +++--- release/man2/move_pages.2 | 208 +-- release/man2/mprotect.2 | 136 +- release/man2/mq_getsetattr.2 | 34 +- release/man2/mremap.2 | 232 +-- release/man2/msgctl.2 | 336 ++-- release/man2/msgget.2 | 214 +-- release/man2/msgop.2 | 388 ++--- release/man2/msync.2 | 102 +- release/man2/nanosleep.2 | 216 +-- release/man2/nfsservctl.2 | 34 +- release/man2/nice.2 | 100 +- release/man2/open.2 | 926 +++++------ release/man2/openat.2 | 120 +- release/man2/outb.2 | 58 +- release/man2/pause.2 | 34 +- release/man2/pciconfig_read.2 | 100 +- release/man2/personality.2 | 60 +- release/man2/pipe.2 | 124 +- release/man2/pivot_root.2 | 192 +-- release/man2/poll.2 | 258 +-- release/man2/posix_fadvise.2 | 156 +- release/man2/prctl.2 | 506 +++--- release/man2/pread.2 | 94 +- release/man2/ptrace.2 | 642 ++++---- release/man2/query_module.2 | 142 +- release/man2/quotactl.2 | 130 +- release/man2/read.2 | 182 +-- release/man2/readahead.2 | 72 +- release/man2/readdir.2 | 100 +- release/man2/readlink.2 | 94 +- release/man2/readlinkat.2 | 90 +- release/man2/readv.2 | 196 +-- release/man2/reboot.2 | 170 +- release/man2/recv.2 | 476 +++--- release/man2/remap_file_pages.2 | 122 +- release/man2/removexattr.2 | 102 +- release/man2/rename.2 | 272 ++-- release/man2/renameat.2 | 102 +- release/man2/rmdir.2 | 122 +- release/man2/sched_get_priority_max.2 | 104 +- release/man2/sched_rr_get_interval.2 | 100 +- release/man2/sched_setaffinity.2 | 238 +-- release/man2/sched_setparam.2 | 90 +- release/man2/sched_setscheduler.2 | 544 +++---- release/man2/sched_yield.2 | 82 +- release/man2/select.2 | 508 +++--- release/man2/select_tut.2 | 530 +++--- release/man2/semctl.2 | 480 +++--- release/man2/semget.2 | 284 ++-- release/man2/semop.2 | 524 +++--- release/man2/send.2 | 426 ++--- release/man2/sendfile.2 | 154 +- release/man2/set_mempolicy.2 | 306 ++-- release/man2/set_thread_area.2 | 62 +- release/man2/set_tid_address.2 | 88 +- release/man2/seteuid.2 | 92 +- release/man2/setfsgid.2 | 104 +- release/man2/setfsuid.2 | 102 +- release/man2/setgid.2 | 56 +- release/man2/setpgid.2 | 274 ++-- release/man2/setresuid.2 | 96 +- release/man2/setreuid.2 | 116 +- release/man2/setsid.2 | 70 +- release/man2/setuid.2 | 112 +- release/man2/setup.2 | 66 +- release/man2/setxattr.2 | 146 +- release/man2/sgetmask.2 | 64 +- release/man2/shmctl.2 | 424 ++--- release/man2/shmget.2 | 294 ++-- release/man2/shmop.2 | 280 ++-- release/man2/shutdown.2 | 54 +- release/man2/sigaction.2 | 582 +++---- release/man2/sigaltstack.2 | 244 +-- release/man2/sigblock.2 | 74 +- release/man2/signal.2 | 286 ++-- release/man2/signalfd.2 | 410 ++--- release/man2/sigpause.2 | 86 +- release/man2/sigpending.2 | 60 +- release/man2/sigprocmask.2 | 98 +- release/man2/sigreturn.2 | 66 +- release/man2/sigsuspend.2 | 80 +- release/man2/sigvec.2 | 32 +- release/man2/sigwaitinfo.2 | 164 +- release/man2/socket.2 | 386 ++--- release/man2/socketcall.2 | 48 +- release/man2/socketpair.2 | 106 +- release/man2/splice.2 | 204 +-- release/man2/spu_create.2 | 148 +- release/man2/spu_run.2 | 184 +-- release/man2/stat.2 | 554 +++---- release/man2/statfs.2 | 218 +-- release/man2/stime.2 | 48 +- release/man2/swapon.2 | 174 +- release/man2/symlink.2 | 134 +- release/man2/symlinkat.2 | 86 +- release/man2/sync.2 | 54 +- release/man2/sync_file_range.2 | 168 +- release/man2/syscall.2 | 38 +- release/man2/syscalls.2 | 388 ++--- release/man2/sysctl.2 | 118 +- release/man2/sysfs.2 | 96 +- release/man2/sysinfo.2 | 58 +- release/man2/syslog.2 | 288 ++-- release/man2/tee.2 | 118 +- release/man2/time.2 | 62 +- release/man2/timerfd_create.2 | 342 ++-- release/man2/times.2 | 176 +- release/man2/tkill.2 | 90 +- release/man2/truncate.2 | 184 +-- release/man2/umask.2 | 84 +- release/man2/umount.2 | 164 +- release/man2/uname.2 | 158 +- release/man2/unimplemented.2 | 32 +- release/man2/unlink.2 | 150 +- release/man2/unlinkat.2 | 120 +- release/man2/unshare.2 | 116 +- release/man2/uselib.2 | 84 +- release/man2/ustat.2 | 98 +- release/man2/utime.2 | 126 +- release/man2/vfork.2 | 226 +-- release/man2/vhangup.2 | 46 +- release/man2/vm86.2 | 58 +- release/man2/vmsplice.2 | 116 +- release/man2/wait.2 | 560 +++---- release/man2/wait4.2 | 100 +- release/man2/write.2 | 238 +-- release/man3/INFINITY.3 | 64 +- release/man3/MB_CUR_MAX.3 | 28 +- release/man3/MB_LEN_MAX.3 | 34 +- release/man3/__setfpucw.3 | 62 +- release/man3/a64l.3 | 68 +- release/man3/abort.3 | 42 +- release/man3/abs.3 | 68 +- release/man3/acos.3 | 62 +- release/man3/acosh.3 | 62 +- release/man3/addseverity.3 | 80 +- release/man3/adjtime.3 | 112 +- release/man3/aio_cancel.3 | 74 +- release/man3/aio_error.3 | 42 +- release/man3/aio_fsync.3 | 74 +- release/man3/aio_read.3 | 110 +- release/man3/aio_return.3 | 42 +- release/man3/aio_suspend.3 | 60 +- release/man3/aio_write.3 | 110 +- release/man3/alloca.3 | 130 +- release/man3/argz_add.3 | 178 +- release/man3/asin.3 | 58 +- release/man3/asinh.3 | 42 +- release/man3/asprintf.3 | 54 +- release/man3/assert.3 | 62 +- release/man3/assert_perror.3 | 56 +- release/man3/atan.3 | 44 +- release/man3/atan2.3 | 86 +- release/man3/atanh.3 | 92 +- release/man3/atexit.3 | 106 +- release/man3/atof.3 | 26 +- release/man3/atoi.3 | 64 +- release/man3/backtrace.3 | 166 +- release/man3/basename.3 | 140 +- release/man3/bcmp.3 | 42 +- release/man3/bcopy.3 | 42 +- release/man3/bindresvport.3 | 78 +- release/man3/bsd_signal.3 | 90 +- release/man3/bsearch.3 | 52 +- release/man3/bstring.3 | 22 +- release/man3/btowc.3 | 62 +- release/man3/btree.3 | 192 +-- release/man3/byteorder.3 | 40 +- release/man3/bzero.3 | 36 +- release/man3/cabs.3 | 34 +- release/man3/cacos.3 | 40 +- release/man3/cacosh.3 | 46 +- release/man3/canonicalize_file_name.3 | 20 +- release/man3/carg.3 | 50 +- release/man3/casin.3 | 38 +- release/man3/casinh.3 | 40 +- release/man3/catan.3 | 40 +- release/man3/catanh.3 | 42 +- release/man3/catgets.3 | 72 +- release/man3/catopen.3 | 186 +-- release/man3/cbrt.3 | 48 +- release/man3/ccos.3 | 26 +- release/man3/ccosh.3 | 30 +- release/man3/ceil.3 | 84 +- release/man3/cerf.3 | 36 +- release/man3/cexp.3 | 28 +- release/man3/cexp2.3 | 26 +- release/man3/cfree.3 | 110 +- release/man3/cimag.3 | 34 +- release/man3/clearenv.3 | 80 +- release/man3/clock.3 | 70 +- release/man3/clog.3 | 42 +- release/man3/clog10.3 | 42 +- release/man3/clog2.3 | 40 +- release/man3/closedir.3 | 40 +- release/man3/cmsg.3 | 172 +- release/man3/confstr.3 | 98 +- release/man3/conj.3 | 28 +- release/man3/copysign.3 | 44 +- release/man3/cos.3 | 66 +- release/man3/cosh.3 | 68 +- release/man3/cpow.3 | 32 +- release/man3/cproj.3 | 46 +- release/man3/creal.3 | 34 +- release/man3/crypt.3 | 210 +-- release/man3/csin.3 | 26 +- release/man3/csinh.3 | 28 +- release/man3/csqrt.3 | 36 +- release/man3/ctan.3 | 26 +- release/man3/ctanh.3 | 28 +- release/man3/ctermid.3 | 40 +- release/man3/ctime.3 | 320 ++-- release/man3/daemon.3 | 86 +- release/man3/dbopen.3 | 454 +++--- release/man3/des_crypt.3 | 120 +- release/man3/difftime.3 | 42 +- release/man3/dirfd.3 | 68 +- release/man3/div.3 | 52 +- release/man3/dl_iterate_phdr.3 | 148 +- release/man3/dlopen.3 | 486 +++--- release/man3/dprintf.3 | 74 +- release/man3/drand48.3 | 156 +- release/man3/drand48_r.3 | 40 +- release/man3/dysize.3 | 34 +- release/man3/ecvt.3 | 94 +- release/man3/ecvt_r.3 | 44 +- release/man3/encrypt.3 | 110 +- release/man3/end.3 | 62 +- release/man3/envz_add.3 | 100 +- release/man3/erf.3 | 62 +- release/man3/erfc.3 | 80 +- release/man3/err.3 | 72 +- release/man3/errno.3 | 370 ++--- release/man3/error.3 | 108 +- release/man3/ether_aton.3 | 98 +- release/man3/euidaccess.3 | 64 +- release/man3/exec.3 | 206 +-- release/man3/exit.3 | 170 +- release/man3/exp.3 | 74 +- release/man3/exp10.3 | 46 +- release/man3/exp2.3 | 48 +- release/man3/expm1.3 | 84 +- release/man3/fabs.3 | 38 +- release/man3/fclose.3 | 68 +- release/man3/fcloseall.3 | 38 +- release/man3/fdim.3 | 56 +- release/man3/fenv.3 | 320 ++-- release/man3/ferror.3 | 76 +- release/man3/fexecve.3 | 80 +- release/man3/fflush.3 | 88 +- release/man3/ffs.3 | 50 +- release/man3/fgetgrent.3 | 52 +- release/man3/fgetpwent.3 | 62 +- release/man3/fgetwc.3 | 68 +- release/man3/fgetws.3 | 58 +- release/man3/finite.3 | 56 +- release/man3/flockfile.3 | 110 +- release/man3/floor.3 | 76 +- release/man3/fma.3 | 106 +- release/man3/fmax.3 | 44 +- release/man3/fmemopen.3 | 232 +-- release/man3/fmin.3 | 44 +- release/man3/fmod.3 | 94 +- release/man3/fmtmsg.3 | 234 +-- release/man3/fnmatch.3 | 76 +- release/man3/fopen.3 | 296 ++-- release/man3/fpathconf.3 | 146 +- release/man3/fpclassify.3 | 72 +- release/man3/fpurge.3 | 54 +- release/man3/fputwc.3 | 68 +- release/man3/fputws.3 | 46 +- release/man3/fread.3 | 60 +- release/man3/frexp.3 | 58 +- release/man3/fseek.3 | 118 +- release/man3/fseeko.3 | 60 +- release/man3/ftime.3 | 72 +- release/man3/ftok.3 | 80 +- release/man3/fts.3 | 738 ++++----- release/man3/ftw.3 | 378 ++--- release/man3/futimes.3 | 72 +- release/man3/fwide.3 | 76 +- release/man3/gamma.3 | 90 +- release/man3/gcvt.3 | 50 +- release/man3/getaddrinfo.3 | 564 +++---- release/man3/getcwd.3 | 218 +-- release/man3/getdate.3 | 188 +-- release/man3/getdirentries.3 | 48 +- release/man3/getenv.3 | 48 +- release/man3/getfsent.3 | 110 +- release/man3/getgrent.3 | 98 +- release/man3/getgrent_r.3 | 118 +- release/man3/getgrnam.3 | 200 +-- release/man3/getgrouplist.3 | 112 +- release/man3/gethostbyname.3 | 374 ++--- release/man3/gethostid.3 | 98 +- release/man3/getipnodebyname.3 | 222 +-- release/man3/getline.3 | 116 +- release/man3/getloadavg.3 | 46 +- release/man3/getlogin.3 | 180 +-- release/man3/getmntent.3 | 144 +- release/man3/getnameinfo.3 | 224 +-- release/man3/getnetent.3 | 78 +- release/man3/getopt.3 | 404 ++--- release/man3/getpass.3 | 148 +- release/man3/getprotoent.3 | 68 +- release/man3/getpt.3 | 50 +- release/man3/getpw.3 | 56 +- release/man3/getpwent.3 | 108 +- release/man3/getpwent_r.3 | 126 +- release/man3/getpwnam.3 | 240 +-- release/man3/getrpcent.3 | 74 +- release/man3/getrpcport.3 | 36 +- release/man3/gets.3 | 142 +- release/man3/getservent.3 | 86 +- release/man3/getspnam.3 | 238 +-- release/man3/getsubopt.3 | 122 +- release/man3/getttyent.3 | 74 +- release/man3/getumask.3 | 34 +- release/man3/getusershell.3 | 42 +- release/man3/getutent.3 | 208 +-- release/man3/getw.3 | 52 +- release/man3/getwchar.3 | 46 +- release/man3/glob.3 | 268 +-- release/man3/gnu_get_libc_version.3 | 36 +- release/man3/grantpt.3 | 70 +- release/man3/gsignal.3 | 78 +- release/man3/hash.3 | 136 +- release/man3/hsearch.3 | 270 ++-- release/man3/hypot.3 | 98 +- release/man3/iconv.3 | 154 +- release/man3/iconv_close.3 | 38 +- release/man3/iconv_open.3 | 96 +- release/man3/ilogb.3 | 70 +- release/man3/index.3 | 44 +- release/man3/inet.3 | 220 +-- release/man3/inet_ntop.3 | 118 +- release/man3/inet_pton.3 | 166 +- release/man3/infnan.3 | 48 +- release/man3/initgroups.3 | 48 +- release/man3/insque.3 | 46 +- release/man3/intro.3 | 90 +- release/man3/isalpha.3 | 114 +- release/man3/isatty.3 | 38 +- release/man3/isgreater.3 | 88 +- release/man3/iswalnum.3 | 58 +- release/man3/iswalpha.3 | 60 +- release/man3/iswblank.3 | 50 +- release/man3/iswcntrl.3 | 44 +- release/man3/iswctype.3 | 42 +- release/man3/iswdigit.3 | 62 +- release/man3/iswgraph.3 | 54 +- release/man3/iswlower.3 | 70 +- release/man3/iswprint.3 | 38 +- release/man3/iswpunct.3 | 58 +- release/man3/iswspace.3 | 44 +- release/man3/iswupper.3 | 66 +- release/man3/iswxdigit.3 | 56 +- release/man3/j0.3 | 80 +- release/man3/key_setsecret.3 | 66 +- release/man3/ldexp.3 | 82 +- release/man3/lgamma.3 | 124 +- release/man3/localeconv.3 | 38 +- release/man3/lockf.3 | 174 +- release/man3/log.3 | 82 +- release/man3/log10.3 | 42 +- release/man3/log1p.3 | 68 +- release/man3/log2.3 | 46 +- release/man3/logb.3 | 88 +- release/man3/login.3 | 122 +- release/man3/longjmp.3 | 110 +- release/man3/lrint.3 | 62 +- release/man3/lround.3 | 64 +- release/man3/lsearch.3 | 68 +- release/man3/lseek64.3 | 106 +- release/man3/makecontext.3 | 150 +- release/man3/malloc.3 | 256 +-- release/man3/malloc_hook.3 | 74 +- release/man3/mblen.3 | 68 +- release/man3/mbrlen.3 | 74 +- release/man3/mbrtowc.3 | 112 +- release/man3/mbsinit.3 | 72 +- release/man3/mbsnrtowcs.3 | 104 +- release/man3/mbsrtowcs.3 | 84 +- release/man3/mbstowcs.3 | 72 +- release/man3/mbtowc.3 | 84 +- release/man3/memccpy.3 | 32 +- release/man3/memchr.3 | 90 +- release/man3/memcmp.3 | 32 +- release/man3/memcpy.3 | 24 +- release/man3/memfrob.3 | 34 +- release/man3/memmem.3 | 54 +- release/man3/memmove.3 | 32 +- release/man3/mempcpy.3 | 54 +- release/man3/memset.3 | 20 +- release/man3/mkdtemp.3 | 62 +- release/man3/mkfifo.3 | 90 +- release/man3/mkfifoat.3 | 92 +- release/man3/mkstemp.3 | 128 +- release/man3/mktemp.3 | 92 +- release/man3/modf.3 | 44 +- release/man3/mpool.3 | 186 +-- release/man3/mq_close.3 | 44 +- release/man3/mq_getattr.3 | 122 +- release/man3/mq_notify.3 | 184 +-- release/man3/mq_open.3 | 188 +-- release/man3/mq_receive.3 | 128 +- release/man3/mq_send.3 | 132 +- release/man3/mq_unlink.3 | 44 +- release/man3/mtrace.3 | 48 +- release/man3/nan.3 | 62 +- release/man3/netlink.3 | 76 +- release/man3/nextafter.3 | 112 +- release/man3/nl_langinfo.3 | 110 +- release/man3/offsetof.3 | 52 +- release/man3/on_exit.3 | 50 +- release/man3/opendir.3 | 104 +- release/man3/openpty.3 | 154 +- release/man3/perror.3 | 112 +- release/man3/popen.3 | 178 +- release/man3/posix_fallocate.3 | 88 +- release/man3/posix_memalign.3 | 224 +-- release/man3/posix_openpt.3 | 62 +- release/man3/pow.3 | 226 +-- release/man3/pow10.3 | 30 +- release/man3/printf.3 | 918 +++++------ release/man3/profil.3 | 76 +- release/man3/program_invocation_name.3 | 46 +- release/man3/psignal.3 | 32 +- release/man3/ptsname.3 | 92 +- release/man3/putenv.3 | 88 +- release/man3/putgrent.3 | 42 +- release/man3/putpwent.3 | 46 +- release/man3/puts.3 | 84 +- release/man3/putwchar.3 | 50 +- release/man3/qecvt.3 | 40 +- release/man3/qsort.3 | 66 +- release/man3/queue.3 | 352 ++-- release/man3/raise.3 | 26 +- release/man3/rand.3 | 122 +- release/man3/random.3 | 136 +- release/man3/random_r.3 | 86 +- release/man3/rcmd.3 | 196 +-- release/man3/re_comp.3 | 50 +- release/man3/readdir.3 | 212 +-- release/man3/realpath.3 | 186 +-- release/man3/recno.3 | 202 +-- release/man3/regex.3 | 260 +-- release/man3/remainder.3 | 130 +- release/man3/remove.3 | 68 +- release/man3/remquo.3 | 100 +- release/man3/resolver.3 | 214 +-- release/man3/rewinddir.3 | 20 +- release/man3/rexec.3 | 98 +- release/man3/rint.3 | 82 +- release/man3/round.3 | 88 +- release/man3/rpc.3 | 906 +++++------ release/man3/rpmatch.3 | 108 +- release/man3/rtime.3 | 82 +- release/man3/rtnetlink.3 | 66 +- release/man3/scalb.3 | 128 +- release/man3/scandir.3 | 118 +- release/man3/scanf.3 | 736 ++++----- release/man3/sched_getcpu.3 | 44 +- release/man3/seekdir.3 | 48 +- release/man3/sem_close.3 | 40 +- release/man3/sem_destroy.3 | 52 +- release/man3/sem_getvalue.3 | 50 +- release/man3/sem_init.3 | 74 +- release/man3/sem_open.3 | 134 +- release/man3/sem_post.3 | 48 +- release/man3/sem_unlink.3 | 42 +- release/man3/sem_wait.3 | 148 +- release/man3/setaliasent.3 | 100 +- release/man3/setbuf.3 | 118 +- release/man3/setenv.3 | 94 +- release/man3/setjmp.3 | 100 +- release/man3/setlocale.3 | 182 +-- release/man3/setlogmask.3 | 58 +- release/man3/setnetgrent.3 | 80 +- release/man3/shm_open.3 | 264 +-- release/man3/siginterrupt.3 | 60 +- release/man3/signbit.3 | 50 +- release/man3/significand.3 | 34 +- release/man3/sigpause.3 | 102 +- release/man3/sigqueue.3 | 128 +- release/man3/sigset.3 | 236 +-- release/man3/sigsetops.3 | 110 +- release/man3/sigvec.3 | 210 +-- release/man3/sigwait.3 | 62 +- release/man3/sin.3 | 64 +- release/man3/sincos.3 | 70 +- release/man3/sinh.3 | 64 +- release/man3/sleep.3 | 42 +- release/man3/sockatmark.3 | 80 +- release/man3/sqrt.3 | 56 +- release/man3/statvfs.3 | 142 +- release/man3/stdarg.3 | 194 +-- release/man3/stdin.3 | 148 +- release/man3/stdio.3 | 306 ++-- release/man3/stdio_ext.3 | 84 +- release/man3/stpcpy.3 | 60 +- release/man3/stpncpy.3 | 48 +- release/man3/strcasecmp.3 | 34 +- release/man3/strcat.3 | 54 +- release/man3/strchr.3 | 58 +- release/man3/strcmp.3 | 36 +- release/man3/strcoll.3 | 40 +- release/man3/strcpy.3 | 90 +- release/man3/strdup.3 | 64 +- release/man3/strerror.3 | 174 +- release/man3/strfmon.3 | 178 +- release/man3/strfry.3 | 28 +- release/man3/strftime.3 | 436 ++--- release/man3/string.3 | 16 +- release/man3/strlen.3 | 20 +- release/man3/strnlen.3 | 38 +- release/man3/strpbrk.3 | 26 +- release/man3/strptime.3 | 382 ++--- release/man3/strsep.3 | 68 +- release/man3/strsignal.3 | 52 +- release/man3/strspn.3 | 30 +- release/man3/strstr.3 | 46 +- release/man3/strtod.3 | 134 +- release/man3/strtoimax.3 | 40 +- release/man3/strtok.3 | 124 +- release/man3/strtol.3 | 174 +- release/man3/strtoul.3 | 158 +- release/man3/strverscmp.3 | 92 +- release/man3/strxfrm.3 | 54 +- release/man3/swab.3 | 34 +- release/man3/sysconf.3 | 278 ++-- release/man3/syslog.3 | 268 +-- release/man3/system.3 | 142 +- release/man3/sysv_signal.3 | 80 +- release/man3/tan.3 | 72 +- release/man3/tanh.3 | 40 +- release/man3/tcgetpgrp.3 | 114 +- release/man3/tcgetsid.3 | 58 +- release/man3/telldir.3 | 48 +- release/man3/tempnam.3 | 164 +- release/man3/termios.3 | 868 +++++----- release/man3/tgamma.3 | 148 +- release/man3/timegm.3 | 48 +- release/man3/timeradd.3 | 108 +- release/man3/tmpfile.3 | 60 +- release/man3/tmpnam.3 | 130 +- release/man3/toascii.3 | 40 +- release/man3/toupper.3 | 50 +- release/man3/towctrans.3 | 38 +- release/man3/towlower.3 | 40 +- release/man3/towupper.3 | 40 +- release/man3/trunc.3 | 48 +- release/man3/tsearch.3 | 174 +- release/man3/ttyname.3 | 46 +- release/man3/ttyslot.3 | 172 +- release/man3/tzset.3 | 234 +-- release/man3/ualarm.3 | 92 +- release/man3/ulimit.3 | 58 +- release/man3/undocumented.3 | 30 +- release/man3/ungetwc.3 | 54 +- release/man3/unlocked_stdio.3 | 38 +- release/man3/unlockpt.3 | 46 +- release/man3/updwtmp.3 | 66 +- release/man3/usleep.3 | 86 +- release/man3/wcpcpy.3 | 42 +- release/man3/wcpncpy.3 | 52 +- release/man3/wcrtomb.3 | 74 +- release/man3/wcscasecmp.3 | 58 +- release/man3/wcscat.3 | 32 +- release/man3/wcschr.3 | 26 +- release/man3/wcscmp.3 | 32 +- release/man3/wcscpy.3 | 30 +- release/man3/wcscspn.3 | 38 +- release/man3/wcsdup.3 | 52 +- release/man3/wcslen.3 | 24 +- release/man3/wcsncasecmp.3 | 62 +- release/man3/wcsncat.3 | 32 +- release/man3/wcsncmp.3 | 40 +- release/man3/wcsncpy.3 | 42 +- release/man3/wcsnlen.3 | 54 +- release/man3/wcsnrtombs.3 | 102 +- release/man3/wcspbrk.3 | 28 +- release/man3/wcsrchr.3 | 28 +- release/man3/wcsrtombs.3 | 86 +- release/man3/wcsspn.3 | 38 +- release/man3/wcsstr.3 | 34 +- release/man3/wcstoimax.3 | 22 +- release/man3/wcstok.3 | 74 +- release/man3/wcstombs.3 | 70 +- release/man3/wcswidth.3 | 32 +- release/man3/wctob.3 | 46 +- release/man3/wctomb.3 | 62 +- release/man3/wctrans.3 | 46 +- release/man3/wctype.3 | 78 +- release/man3/wcwidth.3 | 34 +- release/man3/wmemchr.3 | 28 +- release/man3/wmemcmp.3 | 38 +- release/man3/wmemcpy.3 | 32 +- release/man3/wmemmove.3 | 30 +- release/man3/wmemset.3 | 24 +- release/man3/wordexp.3 | 182 +-- release/man3/wprintf.3 | 190 +-- release/man3/xcrypt.3 | 74 +- release/man3/xdr.3 | 488 +++--- release/man3/y0.3 | 152 +- release/man4/console.4 | 132 +- release/man4/console_codes.4 | 900 +++++------ release/man4/console_ioctl.4 | 580 +++---- release/man4/dsp56k.4 | 118 +- release/man4/fd.4 | 214 +-- release/man4/full.4 | 32 +- release/man4/hd.4 | 88 +- release/man4/initrd.4 | 510 +++--- release/man4/intro.4 | 26 +- release/man4/lp.4 | 158 +- release/man4/mem.4 | 72 +- release/man4/mouse.4 | 128 +- release/man4/null.4 | 38 +- release/man4/pts.4 | 100 +- release/man4/ram.4 | 26 +- release/man4/random.4 | 256 +-- release/man4/rtc.4 | 358 ++-- release/man4/sd.4 | 126 +- release/man4/sk98lin.4 | 638 ++++---- release/man4/st.4 | 1108 ++++++------- release/man4/tty.4 | 64 +- release/man4/ttyS.4 | 22 +- release/man4/tty_ioctl.4 | 458 +++--- release/man4/vcs.4 | 110 +- release/man4/wavelan.4 | 162 +- release/man5/acct.5 | 104 +- release/man5/charmap.5 | 112 +- release/man5/core.5 | 332 ++-- release/man5/dir_colors.5 | 404 ++--- release/man5/elf.5 | 1586 +++++++++--------- release/man5/filesystems.5 | 190 +-- release/man5/ftpusers.5 | 46 +- release/man5/group.5 | 36 +- release/man5/host.conf.5 | 232 +-- release/man5/hosts.5 | 128 +- release/man5/hosts.equiv.5 | 82 +- release/man5/intro.5 | 20 +- release/man5/issue.5 | 24 +- release/man5/locale.5 | 424 ++--- release/man5/motd.5 | 22 +- release/man5/nologin.5 | 16 +- release/man5/nscd.conf.5 | 120 +- release/man5/nsswitch.conf.5 | 228 +-- release/man5/passwd.5 | 136 +- release/man5/proc.5 | 2780 ++++++++++++++++---------------- release/man5/protocols.5 | 54 +- release/man5/resolv.conf.5 | 306 ++-- release/man5/rpc.5 | 36 +- release/man5/securetty.5 | 24 +- release/man5/services.5 | 156 +- release/man5/shells.5 | 34 +- release/man5/slabinfo.5 | 120 +- release/man5/termcap.5 | 790 ++++----- release/man5/ttytype.5 | 34 +- release/man5/tzfile.5 | 146 +- release/man5/utmp.5 | 312 ++-- release/man6/intro.6 | 18 +- release/man7/arp.7 | 416 ++--- release/man7/ascii.7 | 114 +- release/man7/boot.7 | 304 ++-- release/man7/bootparam.7 | 1724 ++++++++++---------- release/man7/capabilities.7 | 974 +++++------ release/man7/charsets.7 | 532 +++--- release/man7/complex.7 | 48 +- release/man7/credentials.7 | 292 ++-- release/man7/ddp.7 | 226 +-- release/man7/environ.7 | 216 +-- release/man7/epoll.7 | 546 +++---- release/man7/feature_test_macros.7 | 464 +++--- release/man7/fifo.7 | 74 +- release/man7/futex.7 | 158 +- release/man7/glob.7 | 260 +-- release/man7/hier.7 | 458 +++--- release/man7/icmp.7 | 226 +-- release/man7/inotify.7 | 392 ++--- release/man7/intro.7 | 22 +- release/man7/ip.7 | 1126 ++++++------- release/man7/ipv6.7 | 394 ++--- release/man7/iso_8859-1.7 | 110 +- release/man7/iso_8859-15.7 | 112 +- release/man7/iso_8859-16.7 | 98 +- release/man7/iso_8859-2.7 | 94 +- release/man7/iso_8859-7.7 | 184 +-- release/man7/iso_8859-9.7 | 88 +- release/man7/koi8-r.7 | 270 ++-- release/man7/locale.7 | 208 +-- release/man7/mailaddr.7 | 100 +- release/man7/man-pages.7 | 728 ++++----- release/man7/man.7 | 518 +++--- release/man7/math_error.7 | 240 +-- release/man7/mdoc.7 | 462 +++--- release/man7/mq_overview.7 | 314 ++-- release/man7/netdevice.7 | 242 +-- release/man7/netlink.7 | 426 ++--- release/man7/operator.7 | 40 +- release/man7/packet.7 | 414 ++--- release/man7/path_resolution.7 | 310 ++-- release/man7/pipe.7 | 280 ++-- release/man7/posixoptions.7 | 316 ++-- release/man7/pthreads.7 | 582 +++---- release/man7/pty.7 | 166 +- release/man7/raw.7 | 346 ++-- release/man7/regex.7 | 436 ++--- release/man7/rtnetlink.7 | 394 ++--- release/man7/sem_overview.7 | 178 +- release/man7/shm_overview.7 | 116 +- release/man7/signal.7 | 736 ++++----- release/man7/socket.7 | 796 ++++----- release/man7/spufs.7 | 470 +++--- release/man7/standards.7 | 304 ++-- release/man7/suffixes.7 | 454 +++--- release/man7/svipc.7 | 278 ++-- release/man7/tcp.7 | 1420 ++++++++-------- release/man7/termio.7 | 44 +- release/man7/time.7 | 192 +-- release/man7/udp.7 | 292 ++-- release/man7/udplite.7 | 134 +- release/man7/unicode.7 | 386 ++--- release/man7/units.7 | 142 +- release/man7/unix.7 | 410 ++--- release/man7/uri.7 | 874 +++++----- release/man7/utf-8.7 | 248 +-- release/man7/x25.7 | 130 +- release/man8/intro.8 | 28 +- release/man8/ld.so.8 | 450 +++--- release/man8/ldconfig.8 | 144 +- release/man8/nscd.8 | 72 +- release/man8/sync.8 | 98 +- release/man8/tzselect.8 | 50 +- release/man8/zdump.8 | 40 +- release/man8/zic.8 | 358 ++-- 1687 files changed, 131816 insertions(+), 131816 deletions(-) mode change 100755 => 100644 draft/man5/proc.5 diff --git a/draft/man1/intro.1 b/draft/man1/intro.1 index 30ef79b8..b9b6ba2e 100644 --- a/draft/man1/intro.1 +++ b/draft/man1/intro.1 @@ -26,22 +26,22 @@ .\" Japanese Version Copyright (c) 2002 Akihiro MOTOKI, all rights reserved. .\" Translated Mon Mar 5 2003 by Akihiro MOTOKI .\" -.\"WORD introduction ¾Ò²ð -.\"WORD tree ÌÚ +.\"WORD introduction 紹介 +.\"WORD tree 木 .\" .TH INTRO 1 2007-11-15 "Linux" "Linux User's Manual" .\"O .SH NAME .\"O intro \- Introduction to user commands -.SH ̾Á° -intro \- ¥æ¡¼¥¶¡¼¥³¥Þ¥ó¥É¤Î¾Ò²ð +.SH 名前 +intro \- ユーザーコマンドの紹介 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Section 1 of the manual describes user commands and tools, .\"O for example, file manipulation tools, shells, compilers, .\"O web browsers, file and image viewers and editors, and so on. -¥Þ¥Ë¥å¥¢¥ë¤Î 1 ¾Ï¤Ï¡¢¥æ¡¼¥¶¡¼¥³¥Þ¥ó¥É¤ä¥Ä¡¼¥ë¤ÎÀâÌÀ¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤ë¡£ -Î㤨¤Ð¡¢¥Õ¥¡¥¤¥ëÁàºî¥Ä¡¼¥ë¡¢¥·¥§¥ë¡¢¥³¥ó¥Ñ¥¤¥é¡¢¥¦¥§¥Ö¥Ö¥é¥¦¥¶¡¢ -¥Õ¥¡¥¤¥ë¤ä¥¤¥á¡¼¥¸¤Î¥Ó¥å¡¼¥¢¤ä¥¨¥Ç¥£¥¿¡¢¤Ê¤É¤Ç¤¢¤ë¡£ +マニュアルの 1 章は、ユーザーコマンドやツールの説明について説明している。 +例えば、ファイル操作ツール、シェル、コンパイラ、ウェブブラウザ、 +ファイルやイメージのビューアやエディタ、などである。 .\"O All commands yield a status value on termination. .\"O This value can be tested (e.g., in most shells the variable @@ -55,27 +55,27 @@ intro \- .\"O A nonzero exit status can be in the range 1 to 255, and some commands .\"O use different nonzero status values to indicate the reason why the .\"O command failed. -¤¹¤Ù¤Æ¤Î¥³¥Þ¥ó¥É¤Ï½ªÎ»»þ¤Ë¥¹¥Æ¡¼¥¿¥¹ÃͤòÊÖ¤¹¡£ -¤³¤ÎÃͤò¸¡ºº¤¹¤ë¤³¤È¤Ç (Î㤨¤Ð¡¢¤Û¤È¤ó¤É¤Î¥·¥§¥ë¤Ç¤ÏÊÑ¿ô +すべてのコマンドは終了時にステータス値を返す。 +この値を検査することで (例えば、ほとんどのシェルでは変数 .I $? -¤ËºÇ¸å¤Ë¼Â¹Ô¤·¤¿¥³¥Þ¥ó¥É¤Î¥¹¥Æ¡¼¥¿¥¹¤¬ÊÝ»ý¤µ¤ì¤ë)¡¢ -¤½¤Î¥³¥Þ¥ó¥É¤¬À®¸ù¤·¤Æ´°Î»¤·¤¿¤«¤É¤¦¤«¤òÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ -ÅÁÅýŪ¤Ë¡¢½ªÎ»¥¹¥Æ¡¼¥¿¥¹ 0 ¤ÏÀ®¸ù¤ò¼¨¤¹¤Î¤Ë»È¤ï¤ì¡¢Èó 0 ¤ÎÃÍ¤Ï -¤½¤Î¥³¥Þ¥ó¥É¤¬À®¸ù¤·¤Ê¤«¤Ã¤¿¤³¤È¤ò¼¨¤¹ -(½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Î¾ÜºÙ¤Ï +に最後に実行したコマンドのステータスが保持される)、 +そのコマンドが成功して完了したかどうかを知ることができる。 +伝統的に、終了ステータス 0 は成功を示すのに使われ、非 0 の値は +そのコマンドが成功しなかったことを示す +(終了ステータスの詳細は .BR wait (2) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë)¡£ -Èó 0 ¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ï 1 ¤«¤é 255 ¤ÎÈϰϤÎÃͤò¤È¤ë¤³¤È¤¬¤Ç¤­¡¢ -¤¤¤¯¤Ä¤«¤Î¥³¥Þ¥ó¥É¤Ç¤Ï¥³¥Þ¥ó¥É¤¬¼ºÇÔ¤·¤¿Íýͳ¤ò¼¨¤¹¤¿¤á¤Ë -Ê£¿ô¤ÎÈó 0 ¤Î¥¹¥Æ¡¼¥¿¥¹Ãͤ¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ +に書かれている)。 +非 0 の終了ステータスは 1 から 255 の範囲の値をとることができ、 +いくつかのコマンドではコマンドが失敗した理由を示すために +複数の非 0 のステータス値が使用されている。 .\"O .SH NOTES -.SH È÷¹Í +.SH 備考 .\"O Linux is a flavor of UNIX, and as a first approximation .\"O all user commands under UNIX work precisely the same under .\"O Linux (and FreeBSD and lots of other UNIX-like systems). -Linux ¤Ï UNIX ¤Î°ì¼ï¤Ç¤¢¤ê¡¢Â绨ÇĤˤ¤¤¨¤Ð¡¢ -UNIX ¾å¤Î¥æ¡¼¥¶¥³¥Þ¥ó¥É¤Ï¤¹¤Ù¤Æ Linux ¾å¤Ç¤âÁ´¤¯Æ±¤¸Æ°ºî¤ò¤¹¤ë -(FreeBSD ¤ä¾¤Î¤Î¿¤¯¤Î UNIX É÷¤Î¥·¥¹¥Æ¥à¤Ç¤âƱÍͤǤ¢¤ë)¡£ +Linux は UNIX の一種であり、大雑把にいえば、 +UNIX 上のユーザコマンドはすべて Linux 上でも全く同じ動作をする +(FreeBSD や他のの多くの UNIX 風のシステムでも同様である)。 .LP .\"O Under Linux there are GUIs (graphical user interfaces), where you .\"O can point and click and drag, and hopefully get work done without @@ -86,15 +86,15 @@ UNIX .\"O That is faster and more powerful, .\"O but requires finding out what the commands are. .\"O Below a bare minimum, to get started. -Linux ¤Ë¤Ï GUI (¥°¥é¥Õ¥£¥«¥ë¡¦¥æ¡¼¥¶¡¦¥¤¥ó¥¿¥Õ¥§¡¼¥¹) ¤¬ÍÑ°Õ¤µ¤ì¤Æ¤ª¤ê¡¢ -²¿¤«¤ò¥Ý¥¤¥ó¥È¤·¤¿¤ê¡¢¥¯¥ê¥Ã¥¯¤·¤¿¤ê¡¢¥É¥é¥Ã¥°¤·¤¿¤ê¤Ç¤­¡¢¤¦¤Þ¤¯¤¤¤±¤Ð -ºÇ½é¤Ë¤¿¤¯¤µ¤ó¤Îʸ½ñ¤òÆɤޤʤ¯¤Æ¤âÌÜŪ¤Îºî¶È¤¬¤Ç¤­¤Æ¤·¤Þ¤¦¤³¤È¤â¤¢¤ë¡£ -ÅÁÅýŪ¤Ê UNIX ´Ä¶­¤Ï CLI (¥³¥Þ¥ó¥É¡¦¥é¥¤¥ó¡¦¥¤¥ó¥¿¥Õ¥§¡¼¥¹) ¤Ç¤¢¤ê¡¢ -¥³¥Þ¥ó¥É¤òÂǤÁ¹þ¤ó¤Ç¡¢¥³¥ó¥Ô¥å¡¼¥¿¤Ë²¿¤ò¤¹¤Ù¤­¤«¶µ¤¨¤Æ¤ä¤ë¡£ -CLI ¤Ï GUI ¤è¤ê¤â®¤¯¶¯ÎϤÀ¤¬¡¢¤É¤Î¥³¥Þ¥ó¥É¤¬²¿¤ò¤¹¤ë¤Î¤«ÃΤäƤ¤¤ëɬÍ× -¤¬¤¢¤ë¡£CLI ¤ò»È¤¤»Ï¤á¤ë¤¿¤á¤ËɬÍ׺Ǿ®¸Â¤Î¥³¥Þ¥ó¥É¤ò°Ê²¼¤Ë½Ò¤Ù¤ë¡£ +Linux には GUI (グラフィカル・ユーザ・インタフェース) が用意されており、 +何かをポイントしたり、クリックしたり、ドラッグしたりでき、うまくいけば +最初にたくさんの文書を読まなくても目的の作業ができてしまうこともある。 +伝統的な UNIX 環境は CLI (コマンド・ライン・インタフェース) であり、 +コマンドを打ち込んで、コンピュータに何をすべきか教えてやる。 +CLI は GUI よりも速く強力だが、どのコマンドが何をするのか知っている必要 +がある。CLI を使い始めるために必要最小限のコマンドを以下に述べる。 .\"O .SS "Login" -.SS ¥í¥°¥¤¥ó +.SS ログイン .\"O In order to start working, you probably first have to login, .\"O that is, give your username and password. .\"O See also @@ -108,20 +108,20 @@ CLI .\"O and a mouse click will start a shell in a window. .\"O See also .\"O .BR xterm (1). -ºî¶È¤ò³«»Ï¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¤Þ¤¹ºÇ½é¤Ë¥í¥°¥¤¥ó¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤À¤í¤¦¡£ -¤¹¤Ê¤ï¤Á¡¢¥æ¡¼¥¶Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¾Ü¤·¤¯¤Ï +作業を開始するためには、ます最初にログインしなければならないだろう。 +すなわち、ユーザ名とパスワードを入力しなければならない。詳しくは .BR login (1) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .I login -¥×¥í¥°¥é¥à¤Ï (¥³¥Þ¥ó¥É¡¦¥¤¥ó¥¿¡¼¥×¥ê¥¿¤Ç¤¢¤ë) -.I "¥·¥§¥ë (shell)" -¤òµ¯Æ°¤¹¤ë¡£¥°¥é¥Õ¥£¥«¥ë¡¦¥í¥°¥¤¥ó¤Î¾ì¹ç¤Ï¡¢¥á¥Ë¥å¡¼¤ä¥¢¥¤¥³¥ó¤¬¤¢¤ë -¥¹¥¯¥ê¡¼¥ó¤¬É½¼¨¤µ¤ì¡¢¥Þ¥¦¥¹¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¥¦¥£¥ó¥É¥¦¤¬³«¤¤¤Æ -¥·¥§¥ë¤¬µ¯Æ°¤µ¤ì¤ë¤³¤È¤À¤í¤¦¡£¾Ü¤·¤¯¤Ï +プログラムは (コマンド・インタープリタである) +.I "シェル (shell)" +を起動する。グラフィカル・ログインの場合は、メニューやアイコンがある +スクリーンが表示され、マウスをクリックするとウィンドウが開いて +シェルが起動されることだろう。詳しくは .BR xterm (1) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SS "The shell" -.SS ¥·¥§¥ë +.SS シェル .\"O One types commands to the .\"O .IR shell , .\"O the command interpreter. @@ -130,14 +130,14 @@ CLI .\"O Everybody has her own favorite one. .\"O The standard one is called .\"O .IR sh . -¥³¥Þ¥ó¥É¤Ï¡¢¥³¥Þ¥ó¥É¡¦¥¤¥ó¥¿¡¼¥×¥ê¥¿¤Ç¤¢¤ë -.I ¥·¥§¥ë -¤ËÂФ·¤ÆÆþÎϤ¹¤ë¡£ -.I ¥·¥§¥ë -¤Ï¡¢ÁȤ߹þ¤ß¥³¥Þ¥ó¥É¤Ç¤Ï¤Ê¤¯ÉáÄÌ¤Î¥×¥í¥°¥é¥à¤Ç¤¢¤ê¡¢¹¥¤ß¤Î¤â¤Î¤ËÊѹ¹¤¹¤ë -¤³¤È¤¬¤Ç¤­¤ë¡£³Æ¿Í¤Ë¤Ï¤½¤ì¤¾¤ì¹¥¤ß¤Î¥·¥§¥ë¤¬¤¢¤ë¡£É¸½à¤Î¥·¥§¥ë¤Ï +コマンドは、コマンド・インタープリタである +.I シェル +に対して入力する。 +.I シェル +は、組み込みコマンドではなく普通のプログラムであり、好みのものに変更する +ことができる。各人にはそれぞれ好みのシェルがある。標準のシェルは .I sh -¤È¸Æ¤Ð¤ì¤ë¡£ +と呼ばれる。 .\"O See also .\"O .BR ash (1), .\"O .BR bash (1), @@ -149,10 +149,10 @@ CLI .BR csh (1), .BR zsh (1), .BR chsh (1) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .LP .\"O A session might go like -¥»¥Ã¥·¥ç¥ó¤ÎÎã¤ò°Ê²¼¤Ë¼¨¤¹¡£ +セッションの例を以下に示す。 .RS .nf @@ -199,7 +199,7 @@ maja 0501\-1136285 .RE .\"O and here typing Control-D ended the session. -¤³¤³¤Ç Control-D ¤òÂǤĤȥ»¥Ã¥·¥ç¥ó¤¬½ªÎ»¤¹¤ë¡£ +ここで Control-D を打つとセッションが終了する。 .\"O The .\"O .B "% " .\"O here was the command prompt\(emit is the shell's way of indicating @@ -209,26 +209,26 @@ maja 0501\-1136285 .\"O machine name, current directory, time, etc. .\"O An assignment PS1="What next, master? " .\"O would change the prompt as indicated. -¤³¤³¤Ç¡¢ +ここで、 .B "% " -¤Ï¥³¥Þ¥ó¥É¡¦¥×¥í¥ó¥×¥È¤Ç¤¢¤ë¡£¥³¥Þ¥ó¥É¡¦¥×¥í¥ó¥×¥È¤Ï¥·¥§¥ëÆÈÆäΤä¤êÊý¤Ç¡¢ -¥·¥§¥ë¤¬¼¡¤Î¥³¥Þ¥ó¥É¤ò¼õ¤±ÉÕ¤±¤é¤ì¤ë¾õÂ֤ˤʤäƤ¤¤ë¤³¤È¤ò¼¨¤·¤Æ¤¤¤ë¡£ -¥×¥í¥ó¥×¥È¤Ï¡¢½ÀÆð¤Ë¥«¥¹¥¿¥Þ¥¤¥º -¤¹¤ë¤³¤È¤¬¤Ç¤­¡¢¥æ¡¼¥¶Ì¾¡¢¥Þ¥·¥ó̾¡¢¥«¥ì¥ó¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¡¢»þ¹ï¤Ê¤É¤ò -¥×¥í¥ó¥×¥È¤Ë´Þ¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -PS1="What next, master? " ¤ÈÀßÄꤹ¤ë¤È¡¢ -¥×¥í¥ó¥×¥È¤Ï¤½¤Î¤è¤¦¤ËÊѹ¹¤µ¤ì¤ë¤À¤í¤¦¡£ +はコマンド・プロンプトである。コマンド・プロンプトはシェル独特のやり方で、 +シェルが次のコマンドを受け付けられる状態になっていることを示している。 +プロンプトは、柔軟にカスタマイズ +することができ、ユーザ名、マシン名、カレント・ディレクトリ、時刻などを +プロンプトに含めることができる。 +PS1="What next, master? " と設定すると、 +プロンプトはそのように変更されるだろう。 .LP .\"O We see that there are commands .\"O .I date .\"O (that gives date and time), and .\"O .I cal .\"O (that gives a calendar). -Îã¤Ë¤¢¤ë¤è¤¦¤Ë¡¢ +例にあるように、 .I date -¤È¤¤¤¦ÆüÉդȻþ¹ï¤òɽ¼¨¤¹¤ë¥³¥Þ¥ó¥É¤ä¡¢ +という日付と時刻を表示するコマンドや、 .I cal -¤È¤¤¤¦¥«¥ì¥ó¥À¤òɽ¼¨¤¹¤ë¥³¥Þ¥ó¥É¤â¤¢¤ë¡£ +というカレンダを表示するコマンドもある。 .LP .\"O The command .\"O .I ls @@ -246,18 +246,18 @@ PS1="What next, master? " .\"O and .\"O .IR chmod . .I ls -¥³¥Þ¥ó¥É¤Ï¥«¥ì¥ó¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤ÎÆâÍƤò¥ê¥¹¥Èɽ¼¨¤¹¤ë¡¢¤Ä¤Þ¤ê -¥Ç¥£¥ì¥¯¥È¥êÆâ¤Ë¤É¤ó¤Ê¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¤«¤ò¶µ¤¨¤Æ¤¯¤ì¤ë¡£ +コマンドはカレント・ディレクトリの内容をリスト表示する、つまり +ディレクトリ内にどんなファイルがあるかを教えてくれる。 .I \-l -¥ª¥×¥·¥ç¥ó¤ò¤Ä¤±¤Æ¼Â¹Ô¤¹¤ë¤È¡¢¾ÜºÙɽ¼¨¤¬¹Ô¤ï¤ì¡¢ -¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¡¢¥µ¥¤¥º¡¢ÆüÉդʤɤ¬É½¼¨¤µ¤ì¤ë¡£ -¾å¤ÎÎã¤Ç¤Ï¡¢"tel" ¥Õ¥¡¥¤¥ë¤Ï¡¢¥µ¥¤¥º¤¬ 37 ¥Ð¥¤¥È¤Ç¡¢½êÍ­¼Ô¤Ï aeb ¤Ç¡¢ -½êÍ­¼Ô¤ÏÆɤ߽ñ¤­¤¬¤Ç¤­¡¢Â¾¤Î¿Í¤ÏÆɤ߽Ф·¤À¤±¤¬¤Ç¤­¤ë¤³¤È¤¬Ê¬¤«¤ë¡£ -¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤È¸¢¸Â (permission) ¤Ï¡¢¤½¤ì¤¾¤ì +オプションをつけて実行すると、詳細表示が行われ、 +ファイルの所有者、サイズ、日付などが表示される。 +上の例では、"tel" ファイルは、サイズが 37 バイトで、所有者は aeb で、 +所有者は読み書きができ、他の人は読み出しだけができることが分かる。 +ファイルの所有者と権限 (permission) は、それぞれ .I chown -¥³¥Þ¥ó¥É¤È +コマンドと .I chmod -¥³¥Þ¥ó¥É¤ÇÊѹ¹¤Ç¤­¤ë¡£ +コマンドで変更できる。 .LP .\"O The command .\"O .I cat @@ -266,10 +266,10 @@ PS1="What next, master? " .\"O parameters are concatenated and sent to "standard output", here .\"O the terminal screen.) .I cat -¥³¥Þ¥ó¥É¤Ï¥Õ¥¡¥¤¥ë¤ÎÆâÍƤòɽ¼¨¤¹¤ë¡£ -(¥³¥Þ¥ó¥É̾¤Ï "concatenate and print" (Ï¢·ë¤·¤Æ°õ»ú¤¹¤ë) ¤ËͳÍ褷¤Æ¤¤¤ë¡£ -°ú¿ô¤È¤·¤ÆÍ¿¤¨¤é¤ì¤¿Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¤ÎÆâÍƤ¬Ï¢·ë¤µ¤ì¡¢¡Öɸ½à½ÐÎÏ¡× -¤ËÁ÷¤é¤ì¤ë¡£¾å¤ÎÎã¤Ç¤Ï¡¢É¸½à½ÐÎϤÏüËö¤Î¥¹¥¯¥ê¡¼¥ó¤Ç¤¢¤ë¡£) +コマンドはファイルの内容を表示する。 +(コマンド名は "concatenate and print" (連結して印字する) に由来している。 +引数として与えられた全てのファイルの内容が連結され、「標準出力」 +に送られる。上の例では、標準出力は端末のスクリーンである。) .LP .\"O The command .\"O .I cp @@ -278,19 +278,19 @@ PS1="What next, master? " .\"O .I mv .\"O (from "move") only renames it. .I cp -¥³¥Þ¥ó¥É¤Ï¥Õ¥¡¥¤¥ë¤Î¥³¥Ô¡¼¤ò¹Ô¤¦ (¤½¤Î̾Á°¤Ï "copy" ¤ËͳÍ褹¤ë)¡£ -°ìÊý¡¢ +コマンドはファイルのコピーを行う (その名前は "copy" に由来する)。 +一方、 .I mv -¥³¥Þ¥ó¥É¤Ïñ½ã¤Ë¥Õ¥¡¥¤¥ë̾¤ÎÊѹ¹¤ò¹Ô¤¦ -(¤½¤Î̾Á°¤Ï "move" ¤ËͳÍ褹¤ë)¡£ +コマンドは単純にファイル名の変更を行う +(その名前は "move" に由来する)。 .LP .\"O The command .\"O .I diff .\"O lists the differences between two files. .\"O Here there was no output because there were no differences. .I diff -¥³¥Þ¥ó¥É¤Ï 2 ¤Ä¤Î¥Õ¥¡¥¤¥ë¤Î°ã¤¤¤òɽ¼¨¤¹¤ë¡£ -¾å¤ÎÎã¤Ç¤Ï¡¢Æó¤Ä¤Î¥Õ¥¡¥¤¥ë¤Ë°ã¤¤¤¬¤Ê¤¤¤Î¤Ç¡¢²¿¤â½ÐÎϤµ¤ì¤Æ¤¤¤Ê¤¤¡£ +コマンドは 2 つのファイルの違いを表示する。 +上の例では、二つのファイルに違いがないので、何も出力されていない。 .LP .\"O The command .\"O .I rm @@ -298,20 +298,20 @@ PS1="What next, master? " .\"O No wastepaper basket or anything. .\"O Deleted means lost. .I rm -¥³¥Þ¥ó¥É¤Ï¥Õ¥¡¥¤¥ë¤òºï½ü¤¹¤ë¡£¥Õ¥¡¥¤¥ë¤Ï¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤Î¤Ç -Ãí°Õ¤·¤Æ»ÈÍѤ¹¤ë¤³¤È! ¥´¥ßÈ¢¤ËÁêÅö¤¹¤ë¤â¤Î¤Ï¤Ê¤¯¡¢ -ºï½ü¤Ï¤½¤Î¥Õ¥¡¥¤¥ë¤¬´°Á´¤Ë¼º¤ï¤ì¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +コマンドはファイルを削除する。ファイルはなくなってしまうので +注意して使用すること! ゴミ箱に相当するものはなく、 +削除はそのファイルが完全に失われることを意味する。 .LP .\"O The command .\"O .I grep .\"O (from "g/re/p") finds occurrences of a string in one or more files. .\"O Here it finds Maja's telephone number. .I grep -¥³¥Þ¥ó¥É¤Ï¡¢»ØÄꤵ¤ì¤¿Ê¸»úÎó¤ò°ì¤Ä°Ê¾å¤Î¥Õ¥¡¥¤¥ë¤«¤éõ¤¹ -(¥³¥Þ¥ó¥É̾¤Ï "g/re/p" ¤ËͳÍ褷¤Æ¤¤¤ë)¡£ -¾å¤ÎÎã¤Ç¤Ï¡¢Maja ¤ÎÅÅÏÃÈֹ椬¸«¤Ä¤«¤Ã¤Æ¤¤¤ë¡£ +コマンドは、指定された文字列を一つ以上のファイルから探す +(コマンド名は "g/re/p" に由来している)。 +上の例では、Maja の電話番号が見つかっている。 .\"O .SS "Pathnames and the current directory" -.SS ¥Ñ¥¹Ì¾¤È¥«¥ì¥ó¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê +.SS パス名とカレント・ディレクトリ .\"O Files live in a large tree, the file hierarchy. .\"O Each has a .\"O .I "pathname" @@ -323,42 +323,42 @@ PS1="What next, master? " .\"O the last component. .\"O That is why "/home/aeb/tel" can be abbreviated .\"O to "tel" when the current directory is "/home/aeb". -¥Õ¥¡¥¤¥ë¤Ï¥Õ¥¡¥¤¥ë³¬ÁؤȤ¤¤¦Â礭¤ÊÌÚ¤ÎÃæ¤Ë¤¢¤ë¡£¤½¤ì¤¾¤ì¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï -.I "¥Ñ¥¹Ì¾ (pathname)" -¤¬¤¢¤ê¡¢¥Ñ¥¹Ì¾¤Ï (/ ¤È¸Æ¤Ð¤ì¤ë) Ìڤꬤ«¤é¤Î·ÐÏ©¤ò¼¨¤¹¤â¤Î¤Ç¤¢¤ë¡£ -¾å¤ÎÎã¤Ç¤Ï¡¢´°Á´¤Ê¥Ñ¥¹Ì¾¤Ï /home/aeb/tel ¤Î¤è¤¦¤Ë¤Ê¤ë¡£ -¤¤¤Ä¤â´°Á´¤Ê¥Ñ¥¹Ì¾¤ò»È¤¦¤Î¤ÏÉÔÊؤʤΤǡ¢¥«¥ì¥ó¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë -¥Õ¥¡¥¤¥ë̾¤Ï¡¢¥Õ¥¡¥¤¥ë̾¤ÎºÇ¸å¤ÎÉôʬ¤À¤±¤Ë¾Êά¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¥«¥ì¥ó¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤¬ "/home/aeb" ¤Î»þ¤Ï¡¢ "/home/aeb/tel" -¤ò "tel" ¤Ë¾Êά¤·¤Æ½ñ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£ +ファイルはファイル階層という大きな木の中にある。それぞれのファイルには +.I "パス名 (pathname)" +があり、パス名は (/ と呼ばれる) 木の根からの経路を示すものである。 +上の例では、完全なパス名は /home/aeb/tel のようになる。 +いつも完全なパス名を使うのは不便なので、カレント・ディレクトリにある +ファイル名は、ファイル名の最後の部分だけに省略することができる。 +したがって、カレント・ディレクトリが "/home/aeb" の時は、 "/home/aeb/tel" +を "tel" に省略して書くことができる。 .LP .\"O The command .\"O .I pwd .\"O prints the current directory. .I pwd -¥³¥Þ¥ó¥É¤Ï¥«¥ì¥ó¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤òɽ¼¨¤¹¤ë¡£ +コマンドはカレント・ディレクトリを表示する。 .LP .\"O The command .\"O .I cd .\"O changes the current directory. .\"O Try "cd /" and "pwd" and "cd" and "pwd". .I cd -¥³¥Þ¥ó¥É¤Ï¥«¥ì¥ó¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤òÊѹ¹¤¹¤ë¡£ -"cd /"¡¢"pwd"¡¢"cd"¡¢"pwd" ¤È½ç¤Ë¼Â¹Ô¤·¤Æ¤ß¤ë¤È¤è¤¤¡£ +コマンドはカレント・ディレクトリを変更する。 +"cd /"、"pwd"、"cd"、"pwd" と順に実行してみるとよい。 .\"O .SS "Directories" -.SS ¥Ç¥£¥ì¥¯¥È¥ê +.SS ディレクトリ .\"O The command .\"O .I mkdir .\"O makes a new directory. .I mkdir -¥³¥Þ¥ó¥É¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤ò¿·µ¬¤ËºîÀ®¤¹¤ë¡£ +コマンドはディレクトリを新規に作成する。 .LP .\"O The command .\"O .I rmdir .\"O removes a directory if it is empty, and complains otherwise. .I rmdir -¥³¥Þ¥ó¥É¤Ï¶õ¤Ç¤¢¤ì¤Ð¥Ç¥£¥ì¥¯¥È¥ê¤òºï½ü¤·¡¢ -¶õ¤Ç¤Ê¤±¤ì¤Ð¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¡£ +コマンドは空であればディレクトリを削除し、 +空でなければエラーメッセージを表示する。 .LP .\"O The command .\"O .I find @@ -372,17 +372,17 @@ PS1="What next, master? " .\"O and it may be better to use .\"O .BR locate (1). .I find -¥³¥Þ¥ó¥É¤Ï¡¢»ØÄꤵ¤ì¤¿Ì¾Á°¤ä¤½¤Î¾¤Î°À­¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤òõ¤¹ -(½ñ¼°¤Ï¤«¤Ê¤êÊѤï¤Ã¤Æ¤¤¤ë)¡£Î㤨¤Ð¡¢"find . \-name tel" ¤ò¼Â¹Ô¤¹¤ë¤È¡¢ -"tel" ¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤Î¸¡º÷¤ò¥«¥ì¥ó¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤«¤é³«»Ï¤¹¤ë¡£ -(¥«¥ì¥ó¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤Ï "." ¤Çɽ¤¹)¡£"find / \-name tel" ¤È¤·¤Æ¤â -Ʊ¤¸¤³¤È¤ò¹Ô¤¦¤¬¡¢¸¡º÷¤ÏÌڤκ¬ (/) ¤«¤é³«»Ï¤µ¤ì¤ë¡£ -¿ô GB ¤Î¥Ç¥£¥¹¥¯¤ËÂФ·¤Æ¸¡º÷¤ò¤«¤±¤ë¤È»þ´Ö¤¬¤«¤«¤ë¤Î¤Ç¡¢ -¤½¤Î¤è¤¦¤Ê¤È¤­¤Ï +コマンドは、指定された名前やその他の属性を持つファイルを探す +(書式はかなり変わっている)。例えば、"find . \-name tel" を実行すると、 +"tel" という名前のファイルの検索をカレント・ディレクトリから開始する。 +(カレント・ディレクトリは "." で表す)。"find / \-name tel" としても +同じことを行うが、検索は木の根 (/) から開始される。 +数 GB のディスクに対して検索をかけると時間がかかるので、 +そのようなときは .BR locate (1) -¤ò»È¤Ã¤¿Êý¤¬¤¤¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ +を使った方がいいかもしれない。 .\"O .SS "Disks and Filesystems" -.SS ¥Ç¥£¥¹¥¯¤È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à +.SS ディスクとファイルシステム .\"O The command .\"O .I mount .\"O will attach the file system found on some disk (or floppy, or CDROM or so) @@ -394,33 +394,33 @@ PS1="What next, master? " .\"O .I df .\"O will tell you how much of your disk is still free. .I mount -¥³¥Þ¥ó¥É¤Ï¡¢(¥Õ¥í¥Ã¥Ô¡¼¤ä CDROM ¤Ê¤É¤Î) ¥Ç¥£¥¹¥¯¾å¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò -Â礭¤Ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à³¬ÁؤËÀܳ¤¹¤ë¡£µÕ¤Ë +コマンドは、(フロッピーや CDROM などの) ディスク上のファイルシステムを +大きなファイルシステム階層に接続する。逆に .I umount -¥³¥Þ¥ó¥É¤ÏÀÚ¤êÎ¥¤·¤ò¹Ô¤¦¡£ +コマンドは切り離しを行う。 .I df -¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤È¡¢¥Ç¥£¥¹¥¯¤Î̤»ÈÍÑÎ̤¬¤É¤ÎÄøÅÙ¤«¤òɽ¼¨¤¹¤ë¡£ +コマンドを実行すると、ディスクの未使用量がどの程度かを表示する。 .\"O .SS "Processes" -.SS ¥×¥í¥»¥¹ +.SS プロセス .\"O On a UNIX system many user and system processes run simultaneously. .\"O The one you are talking to runs in the .\"O .IR foreground , .\"O the others in the .\"O .IR background . -UNIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢Â¿¤¯¤Î¥æ¡¼¥¶¥×¥í¥»¥¹¤È¥·¥¹¥Æ¥à¥×¥í¥»¥¹¤¬Æ±»þ¤Ë¼Â¹Ô¤µ¤ì¤ë¡£ -ÂÐÏÃŪ¤Ë¼Â¹Ô¤Ç¤­¤ë¥×¥í¥»¥¹¤Ï +UNIX システムでは、多くのユーザプロセスとシステムプロセスが同時に実行される。 +対話的に実行できるプロセスは .I foreground -¤Ç¼Â¹Ô¤µ¤ì¤Æ¤ª¤ê¡¢¤½¤¦¤Ç¤Ê¤¤¤â¤Î¤Ï +で実行されており、そうでないものは .I background -¤Ç¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¡£ +で実行されている。 .\"O The command .\"O .I ps .\"O will show you which processes are active and what numbers these .\"O processes have. -¥³¥Þ¥ó¥É +コマンド .I ps -¤Ë¤è¤ê¡¢¤É¤Î¥×¥í¥»¥¹¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¤«¤ä¥×¥í¥»¥¹¤¬»ý¤Ã¤Æ¤¤¤ëÈÖ¹æ -(¥×¥í¥»¥¹ÈÖ¹æ) ¤òɽ¼¨¤Ç¤­¤ë¡£ +により、どのプロセスが実行されているかやプロセスが持っている番号 +(プロセス番号) を表示できる。 .\"O The command .\"O .I kill .\"O allows you to get rid of them. @@ -428,20 +428,20 @@ UNIX .\"O request: please go away. .\"O And "kill \-9" followed by the number .\"O of the process is an immediate kill. -¥³¥Þ¥ó¥É +コマンド .I kill -¤ò»È¤¦¤³¤È¤Ç¡¢¥×¥í¥»¥¹¤ò¼è¤ê½ü¤¯¤³¤È¤¬¤Ç¤­¤ë¡£ -¥ª¥×¥·¥ç¥ó¤Ê¤·¤Ç¼Â¹Ô¤µ¤ì¤ë¤È¡¢¡Ö¤¤¤Ê¤¯¤Ê¤Ã¤Æ²¼¤µ¤¤¡×¤È¤¤¤¦¤ä¤µ¤·¤¤Í×µá -¤ò¹Ô¤¦¡£"kill \-9" ¤Ë³¤±¤Æ¥×¥í¥»¥¹ÈÖ¹æ¤ò»ØÄꤹ¤ë¤È¡¢»ØÄꤷ¤¿¥×¥í¥»¥¹¤ò -ľ¤Á¤Ëºï½ü¤¹¤ë¡£ +を使うことで、プロセスを取り除くことができる。 +オプションなしで実行されると、「いなくなって下さい」というやさしい要求 +を行う。"kill \-9" に続けてプロセス番号を指定すると、指定したプロセスを +直ちに削除する。 .\"O Foreground processes can often be killed by typing Control-C. -foreground ¥×¥í¥»¥¹¤Ï¿¤¯¤Î¾ì¹ç Control-C ¤ò¥¿¥¤¥×¤¹¤ë¤³¤È¤Ç -»¦¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +foreground プロセスは多くの場合 Control-C をタイプすることで +殺すことができる。 .\"O .SS "Getting information" -.SS ¾ðÊó¤Îõ¤·Êý +.SS 情報の探し方 .\"O There are thousands of commands, each with many options. -Èó¾ï¤Ë¤¿¤¯¤µ¤ó¤Î¥³¥Þ¥ó¥É¤¬¤¢¤ê¡¢ -¤½¤ì¤¾¤ì¤Î¥³¥Þ¥ó¥É¤Ë¤Ï¤¿¤¯¤µ¤ó¤Î¥ª¥×¥·¥ç¥ó¤¬¤¢¤ë¡£ +非常にたくさんのコマンドがあり、 +それぞれのコマンドにはたくさんのオプションがある。 .\"O Traditionally commands are documented on .\"O .IR "man pages" , .\"O (like this one), so that the command "man kill" will document @@ -453,20 +453,20 @@ foreground .\"O usually .\"O .IR less . .\"O Hit the space bar to get the next page, hit q to quit. -ÅÁÅýŪ¤Ë¤Ï¡¢¥³¥Þ¥ó¥É¤ÎÀâÌÀ¤Ï (¤³¤Î¥É¥­¥å¥á¥ó¥È¤â¤½¤¦¤À¤¬) -.I "man ¥Ú¡¼¥¸" -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£Î㤨¤Ð "man kill" ¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤È¡¢"kill" ¥³¥Þ¥ó¥É¤Î -»È¤¤Êý¤Ë´Ø¤¹¤ëÀâÌÀ¤¬É½¼¨¤µ¤ì¤ë¡£(ƱÍÍ¤Ë "man man" ¤Ï "man" ¥³¥Þ¥ó¥É¤Ë -¤Ä¤¤¤Æ¤ÎÀâÌÀ¤òɽ¼¨¤¹¤ë¡£) +伝統的には、コマンドの説明は (このドキュメントもそうだが) +.I "man ページ" +に書かれている。例えば "man kill" コマンドを実行すると、"kill" コマンドの +使い方に関する説明が表示される。(同様に "man man" は "man" コマンドに +ついての説明を表示する。) .I man -¥×¥í¥°¥é¥à¤Ï¥Æ¥­¥¹¥È¤ò +プログラムはテキストを .I pager -¤ËÅϤ·¤Æɽ¼¨¤ò¹Ô¤¦¡£ +に渡して表示を行う。 .I pager -¤È¤·¤Æ +として .I less -¤¬»È¤ï¤ì¤ë¤³¤È¤¬Â¿¤¤¡£ -¼¡¤Î¥Ú¡¼¥¸¤Ë¿Ê¤à¤Ë¤Ï¥¹¥Ú¡¼¥¹¡¦¥­¡¼¤ò¡¢½ªÎ»¤¹¤ë¤Ë¤Ï q ¤ò²¡¤¹¡£ +が使われることが多い。 +次のページに進むにはスペース・キーを、終了するには q を押す。 .LP .\"O In documentation it is customary to refer to man pages .\"O by giving the name and section number, as in @@ -475,30 +475,30 @@ foreground .\"O detail. .\"O For newcomers an introductory text with more examples .\"O and explanations is useful. -¥É¥­¥å¥á¥ó¥È¤Ç¤Ï¡¢Â¾¤Î man ¥Ú¡¼¥¸¤Ø¤Î»²¾È¤Ï +ドキュメントでは、他の man ページへの参照は .BR man (1) -¤Î¤è¤¦¤Ë̾Á°¤È¥»¥¯¥·¥ç¥óÈÖ¹æ¤Ç¼¨¤¹¤Î¤¬°ìÈÌŪ¤Ç¤¢¤ë¡£ -man ¥Ú¡¼¥¸¤Ï´Ê·é¤Ë½ñ¤«¤ì¤Æ¤ª¤ê¡¢¾ÜºÙ¤ò˺¤ì¤¿¤È¤­¤ËÁÇÁ᤯¾ðÊó¤ò¸«¤Ä¤±¤ë -¤³¤È¤¬¤Ç¤­¤ë¡£Îã¤äÀâÌÀ¤È¤È¤â¤ËÆþÌç¸þ¤±¤Îµ­ºÜ¤â¤¢¤ë¤Î¤Ç¡¢½é¤á¤Æ¤Î¿Í¤Ë¤È¤Ã¤Æ¤â -Ìò¤ËΩ¤Ä¤â¤Î¤Ç¤¢¤ë¡£ +のように名前とセクション番号で示すのが一般的である。 +man ページは簡潔に書かれており、詳細を忘れたときに素早く情報を見つける +ことができる。例や説明とともに入門向けの記載もあるので、初めての人にとっても +役に立つものである。 .LP .\"O A lot of GNU/FSF software is provided with info files. .\"O Type "info info" .\"O for an introduction on the use of the program "info". -¿¤¯¤Î GNU/FSF ¥½¥Õ¥È¥¦¥§¥¢¤Ë¤Ï info ¥Õ¥¡¥¤¥ë¤¬ÉÕ°¤·¤Æ¤¤¤ë¡£ -"info info" ¤È¥¿¥¤¥×¤¹¤ë¤È¡¢"info" ¥×¥í¥°¥é¥à¤Î»È¤¤Êý¤Î¾Ò²ð¤¬É½¼¨¤µ¤ì¤ë¡£ +多くの GNU/FSF ソフトウェアには info ファイルが付属している。 +"info info" とタイプすると、"info" プログラムの使い方の紹介が表示される。 .LP .\"O Special topics are often treated in HOWTOs. .\"O Look in .\"O .I /usr/share/doc/howto/en .\"O and use a browser if you find HTML files there. -Æý¸µ­»ö¤Ë¤Ä¤¤¤Æ¤Ï HOWTO ¤Ç°·¤ï¤ì¤ë¤³¤È¤¬Â¿¤¤¡£ +特集記事については HOWTO で扱われることが多い。 .I /usr/share/doc/howto/en -¤ò¸«¤ë¤È¤¤¤¤¤À¤í¤¦¡£ -HTML ¥Õ¥¡¥¤¥ë¤¬¤¢¤Ã¤¿¾ì¹ç¤Ï¥Ö¥é¥¦¥¶¤ò»È¤Ã¤Æɽ¼¨¤¹¤ì¤Ð¤è¤¤¡£ +を見るといいだろう。 +HTML ファイルがあった場合はブラウザを使って表示すればよい。 .\" .\" Actual examples? Separate section for each of cat, cp, ...? .\" gzip, bzip2, tar, rpm .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR standards (7) diff --git a/draft/man1/ldd.1 b/draft/man1/ldd.1 index 5b89a6ff..74104953 100644 --- a/draft/man1/ldd.1 +++ b/draft/man1/ldd.1 @@ -17,91 +17,91 @@ .TH LDD 1 2000-10-30 "" "Linux Programmer's Manual" .\"O .SH NAME .\"O ldd \- print shared library dependencies -.SH ̾Á° -ldd \- ¶¦Í­¥é¥¤¥Ö¥é¥ê¤Ø¤Î°Í¸´Ø·¸¤òɽ¼¨¤¹¤ë +.SH 名前 +ldd \- 共有ライブラリへの依存関係を表示する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .BR ldd " [OPTION]... FILE..." .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .B ldd .\"O prints the shared libraries required by each program or shared library .\"O specified on the command line. .B ldd -¤Ï¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç»ØÄꤷ¤¿¥×¥í¥°¥é¥à¤ä¶¦Í­¥é¥¤¥Ö¥é¥ê¤Ë¤Ä¤¤¤Æ¡¢ -¤½¤ì¤¾¤ì¤ÇɬÍפȤµ¤ì¤ë¶¦Í­¥é¥¤¥Ö¥é¥ê¤òɽ¼¨¤¹¤ë¡£ +はコマンドラインで指定したプログラムや共有ライブラリについて、 +それぞれで必要とされる共有ライブラリを表示する。 .\"O .SH OPTIONS -.SH ¥ª¥×¥·¥ç¥ó +.SH オプション .TP .B \-\-version .\"O Print the version number of .\"O .BR ldd . .B ldd -¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òɽ¼¨¤¹¤ë¡£ +のバージョン番号を表示する。 .TP .B \-v\ \-\-verbose .\"O Print all information, including, for example, .\"O symbol versioning information. -¥·¥ó¥Ü¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤Ê¤É¤ò´Þ¤á¤¿Á´¤Æ¤Î¾ðÊó¤òɽ¼¨¤¹¤ë¡£ +シンボルのバージョン情報などを含めた全ての情報を表示する。 .TP .B \-u\ \-\-unused .\"O Print unused direct dependencies. .\"O (Since glibc 2.3.4.) -»ÈÍѤµ¤ì¤Æ¤¤¤Ê¤¤Ä¾Àܤΰ͸´Ø·¸¤òɽ¼¨¤¹¤ë -(glibc 2.3.4 °Ê¹ß)¡£ +使用されていない直接の依存関係を表示する +(glibc 2.3.4 以降)。 .TP .B \-d\ \-\-data\-relocs .\"O Perform relocations and report any missing objects (ELF only). -¥ê¥í¥±¡¼¥·¥ç¥ó¤ò¼Â¹Ô¤·¡¢Â­¤ê¤Ê¤¤¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ä¤¤¤Æ¥ì¥Ý¡¼¥È¤¹¤ë (ELF ¤Î¤ß)¡£ +リロケーションを実行し、足りないオブジェクトについてレポートする (ELF のみ)。 .TP .B \-r\ \-\-function\-relocs .\"O report any missing objects or functions (ELF only). -­¤ê¤Ê¤¤¥ª¥Ö¥¸¥§¥¯¥È¤ä´Ø¿ô¤Ë¤Ä¤¤¤Æ¥ì¥Ý¡¼¥È¤¹¤ë (ELF ¤Î¤ß)¡£ +足りないオブジェクトや関数についてレポートする (ELF のみ)。 .TP .B \-\-help .\"O Usage information. -»ÈÍÑË¡¤òɽ¼¨¤¹¤ë¡£ +使用法を表示する。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The standard version of .\"O .B ldd .\"O comes with glibc2. .\"O Libc5 came with an older version, still present .\"O on some systems. .\"O The long options are not supported by the libc5 version. -ɸ½àŪ¤Ê¥Ð¡¼¥¸¥ç¥ó¤Î +標準的なバージョンの .B ldd -¤Ï glibc2 ¤ËÉÕ°¤·¤Æ¤¤¤ë¡£ -libc5 ¤Ë¤Ï¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Î¤â¤Î¤¬ÉÕ°¤·¤Æ¤ª¤ê¡¢ -¤³¤ì¤¬Æþ¤Ã¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤â¤Þ¤À¸ºß¤¹¤ë¡£ -libc5 ¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¥í¥ó¥°¥ª¥×¥·¥ç¥ó¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +は glibc2 に付属している。 +libc5 には古いバージョンのものが付属しており、 +これが入っているシステムもまだ存在する。 +libc5 バージョンではロングオプションがサポートされていない。 .\"O On the other hand, the glibc2 version does not support .\"O .B \-V .\"O and only has the equivalent .\"O .BR \-\-version . -°ìÊý¡¢glibc2 ¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï +一方、glibc2 バージョンでは .B \-V -¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤ª¤é¤º¡¢¤³¤ì¤ÈƱ¤¸°ÕÌ£¤Î +をサポートしておらず、これと同じ意味の .B \-\-version -¤·¤«¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +しかサポートしていない。 .LP .\"O The libc5 version of this program will use the name of a library given .\"O on the command line as-is when it contains a \(aq/\(aq; otherwise it .\"O searches for the library in the standard locations. .\"O To run it .\"O on a shared library in the current directory, prefix the name with "./". -libc5 ¥Ð¡¼¥¸¥ç¥ó¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ -¥³¥Þ¥ó¥É¥é¥¤¥ó¤ÇÍ¿¤¨¤é¤ì¤¿¥é¥¤¥Ö¥é¥ê̾¤Ë -\(aq/\(aq ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¥é¥¤¥Ö¥é¥ê̾¤ò¤½¤Î¤Þ¤ÞÍѤ¤¤ë¡£ -\(aq/\(aq ¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢É¸½àŪ¤Ê¥Ñ¥¹¤«¤é¥é¥¤¥Ö¥é¥ê¤ò¸¡º÷¤¹¤ë¡£ -¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¶¦Í­¥é¥¤¥Ö¥é¥ê¤ËÂФ·¤Æ¼Â¹Ô¤¹¤ë¤Ë¤Ï¡¢ -̾Á°¤Ë¥×¥ì¥Õ¥£¥Ã¥¯¥¹ "./" ¤òÉÕ¤±¤ë¤³¤È¡£ +libc5 バージョンのプログラムでは、 +コマンドラインで与えられたライブラリ名に +\(aq/\(aq が含まれている場合は、ライブラリ名をそのまま用いる。 +\(aq/\(aq が含まれていない場合は、標準的なパスからライブラリを検索する。 +カレントディレクトリにある共有ライブラリに対して実行するには、 +名前にプレフィックス "./" を付けること。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O .B ldd .\"O does not work on a.out shared libraries. .B ldd -¤Ï a.out ¶¦Í­¥é¥¤¥Ö¥é¥ê¤Ç¤ÏÆ°ºî¤·¤Ê¤¤¡£ +は a.out 共有ライブラリでは動作しない。 .PP .\"O .B ldd .\"O does not work with some extremely old a.out programs which were @@ -109,22 +109,22 @@ libc5 .\"O .B ldd .\"O support was added to the compiler releases. .B ldd -¤ÏÈó¾ï¤Ë¸Å¤¤ a.out ¥×¥í¥°¥é¥à +は非常に古い a.out プログラム .RB ( ldd -¤Î¥µ¥Ý¡¼¥È¤¬¥³¥ó¥Ñ¥¤¥é¤ËÄɲ䵤ì¤ë°ÊÁ°¤Ë¥Ó¥ë¥É¤µ¤ì¤¿¤è¤¦¤Ê¥×¥í¥°¥é¥à) -¤Ç¤ÏÆ°ºî¤·¤Ê¤¤¡£ +のサポートがコンパイラに追加される以前にビルドされたようなプログラム) +では動作しない。 .\"O If you use .\"O .B ldd .\"O on one of these programs, the program will attempt to run with .\"O \fIargc\fP = 0 and the results will be unpredictable. -¤³¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤ËÂФ·¤Æ +このようなプログラムに対して .B ldd -¤òÍѤ¤¤ë¤È¡¢¥×¥í¥°¥é¥à¤Ï \fIargc\fP = 0 ¤Ç¼Â¹Ô¤µ¤ì¤ë¡£·ë²Ì¤ÏͽÁÛÉÔ²Äǽ¤Ç¤¢¤ë¡£ +を用いると、プログラムは \fIargc\fP = 0 で実行される。結果は予想不可能である。 .\"O .\" .SH AUTHOR -.\" .SH Ãø¼Ô +.\" .SH 著者 .\" David Engel. .\" Roland McGrath and Ulrich Drepper. .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ld.so (8), .BR ldconfig (8) diff --git a/draft/man1/time.1 b/draft/man1/time.1 index 04247246..b874de9f 100644 --- a/draft/man1/time.1 +++ b/draft/man1/time.1 @@ -10,23 +10,23 @@ .\" .TH TIME 1 2008-11-14 "" "Linux User's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O time \- time a simple command or give resource usage -time \- ¥³¥Þ¥ó¥É¤Î»þ´Ö·×¬¤ä¥ê¥½¡¼¥¹»ÈÍÑÎ̤òɽ¼¨¤¹¤ë +time \- コマンドの時間計測やリソース使用量を表示する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .BI "time [" options "] " command " [" arguments... "] " .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .B time .\"O command runs the specified program .\"O .I command .\"O with the given arguments. .B time -¥³¥Þ¥ó¥É¤Ï¡¢»ØÄꤵ¤ì¤¿¥×¥í¥°¥é¥à +コマンドは、指定されたプログラム .I command -¤òÅϤµ¤ì¤¿°ú¤­¿ô¤Ç¼Â¹Ô¤¹¤ë¡£ +を渡された引き数で実行する。 .\"O When .\"O .I command .\"O finishes, @@ -34,10 +34,10 @@ time \- .\"O writes a message to standard error giving timing statistics .\"O about this program run. .I command -¤¬½ªÎ»¤¹¤ë¤È¡¢ +が終了すると、 .B time -¤Ï¤³¤Î¥×¥í¥°¥é¥à¤Î¼Â¹Ô»þ´Ö¤ÎÅý·×¾ðÊó¤Ë¤Ä¤¤¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤ò -ɸ½à¥¨¥é¡¼½ÐÎϤ˽ÐÎϤ¹¤ë¡£ +はこのプログラムの実行時間の統計情報についてのメッセージを +標準エラー出力に出力する。 .\"O These statistics consist of (i) the elapsed real time .\"O between invocation and termination, (ii) the user CPU time .\"O (the sum of the @@ -56,26 +56,26 @@ time \- .\"O .I "struct tms" .\"O as returned by .\"O .BR times (2)). -ɽ¼¨¤µ¤ì¤ëÅý·×¾ðÊó¤Ï°Ê²¼¤Î»°¤Ä¤«¤é¹½À®¤µ¤ì¤ë: -(i) µ¯Æ°¤«¤é½ªÎ»¤Þ¤Ç¤Ë·Ð²á¤·¤¿¼Â»þ´Ö (real time)¡¢ -(ii) ¥æ¡¼¥¶ CPU »þ´Ö +表示される統計情報は以下の三つから構成される: +(i) 起動から終了までに経過した実時間 (real time)、 +(ii) ユーザ CPU 時間 .RB ( times (2) -¤¬ÊÖ¤¹ +が返す .I "struct tms" -¤Î +の .I tms_utime -¤È +と .I tms_cutime -¤ÎÃͤιç·×)¡¢ -(iii) ¥·¥¹¥Æ¥à CPU »þ´Ö +の値の合計)、 +(iii) システム CPU 時間 .RB ( times (2) -¤¬ÊÖ¤¹ +が返す .I "struct tms" -¤Î +の .I tms_stime -¤È +と .I tms_cstime -¤ÎÃͤιç·×)¡£ +の値の合計)。 .\"O Note: some shells (e.g., .\"O .BR bash (1)) @@ -86,15 +86,15 @@ time \- .\"O (something like .\"O .IR /usr/bin/time ). .RB ( bash (1) -¤Ê¤É¤Î) ¤¤¤¯¤Ä¤«¤Î¥·¥§¥ë¤Ë¤Ï¡¢¤³¤³¤ÇÀâÌÀ¤¹¤ë¥³¥Þ¥ó¥É¤è¤ê¤â -µ¡Ç½¤¬¾¯¤Ê¤¤¡¢ÁȤ߹þ¤ß¤Î +などの) いくつかのシェルには、ここで説明するコマンドよりも +機能が少ない、組み込みの .B time -¥³¥Þ¥ó¥É¤¬Â¸ºß¤¹¤ë¡£ -ÁȤ߹þ¤ß¤Ç¤Ï¤Ê¤¤¼ÂºÝ¤Î¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢ +コマンドが存在する。 +組み込みではない実際のコマンドを使用するためには、 .RI ( /usr/bin/time -¤Î¤è¤¦¤Ê) ¥³¥Þ¥ó¥É¤Î¥Ñ¥¹Ì¾¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +のような) コマンドのパス名を指定する必要があるかもしれない。 .\"O .SH OPTIONS -.SH ¥ª¥×¥·¥ç¥ó +.SH オプション .TP .B \-p .\"O When in the POSIX locale, use the precise traditional format @@ -106,16 +106,16 @@ time \- .\"O (with numbers in seconds) .\"O where the number of decimals in the output for %f is unspecified .\"O but is sufficient to express the clock tick accuracy, and at least one. -POSIX ¥í¥±¡¼¥ë¤Î¾ì¹ç¡¢ÅÁÅýŪ¤Ê¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤¢¤ë +POSIX ロケールの場合、伝統的なフォーマットである .in +5 "real %f\enuser %f\ensys %f\en" .in -5 -¤¬»ÈÍѤµ¤ì¤ë (³Æ¿ô»ú¤ÏÉÃñ°Ì)¡£ -%f ¤Î½ÐÎϤǤξ®¿ôÅÀ°Ê²¼¤Î·å¿ô¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -¥¯¥í¥Ã¥¯¡¦¥Æ¥£¥Ã¥¯ (clock tick) ¤ÎÀºÅÙ¤òɽ¤¹¤Î¤Ë½½Ê¬¤Ê·å¿ô¤È¤Ê¤ê¡¢ -¾¯¤Ê¤¯¤È¤â°ì·å¤Ï¸ºß¤¹¤ë¡£ +が使用される (各数字は秒単位)。 +%f の出力での小数点以下の桁数は規定されていないが、 +クロック・ティック (clock tick) の精度を表すのに十分な桁数となり、 +少なくとも一桁は存在する。 .\"O .SH "EXIT STATUS" -.SH ½ªÎ»¥¹¥Æ¡¼¥¿¥¹ +.SH 終了ステータス .\"O If .\"O .I command .\"O was invoked, the exit status is that of @@ -125,17 +125,17 @@ POSIX .\"O could not be found, 126 if it could be found but could not be invoked, .\"O and some other nonzero value (1-125) if something else went wrong. .I command -¤¬µ¯Æ°¤µ¤ì¤¿¾ì¹ç¤Ï¡¢ +が起動された場合は、 .I command -¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤¬½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤È¤Ê¤ë¡£ +の終了ステータスが終了ステータスとなる。 .I command -¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ï 127 ¤Ç¡¢ +が見つからなかった場合は終了ステータスは 127 で、 .I command -¤¬¸«¤Ä¤«¤Ã¤¿¤¬µ¯Æ°¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï 126 ¤È¤Ê¤ë¡£ -¤³¤ì°Ê³°¤Ç²¿¤«¥¨¥é¡¼¤¬¤¢¤Ã¤¿¾ì¹ç¤Ï¡¢½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ï -0 °Ê³°¤ÎÁ°µ­°Ê³°¤ÎÃÍ (1-125) ¤Î²¿¤«¤Ë¤Ê¤ë¡£ +が見つかったが起動できなかった場合は 126 となる。 +これ以外で何かエラーがあった場合は、終了ステータスは +0 以外の前記以外の値 (1-125) の何かになる。 .\"O .SH ENVIRONMENT -.SH ´Ä¶­ÊÑ¿ô +.SH 環境変数 .\"O The variables .\"O .BR LANG , .\"O .BR LC_ALL , @@ -146,7 +146,7 @@ POSIX .\"O and .\"O .B PATH .\"O are used. -´Ä¶­ÊÑ¿ô +環境変数 .BR LANG , .BR LC_ALL , .BR LC_CTYPE , @@ -154,16 +154,16 @@ POSIX .BR LC_NUMERIC , .BR NLSPATH , .B PATH -¤¬»ÈÍѤµ¤ì¤ë¡£ +が使用される。 .\"O The last one to search for .\"O .IR command . .\"O The remaining ones for the text and formatting of the output. .B PATH -¤Ï +は .I command -¤òõ¤¹¤Î¤Ë»È¤ï¤ì¤ë¡£¤½¤ì°Ê³°¤Ï½ÐÎÏʸ»ú¤ä½ñ¼°¤Ë»ÈÍѤµ¤ì¤ë¡£ +を探すのに使われる。それ以外は出力文字や書式に使用される。 .\"O .SH "GNU VERSION" -.SH GNU ¥Ð¡¼¥¸¥ç¥ó +.SH GNU バージョン .\"O Below a description of the GNU 1.7 version of .\"O .BR time . .\"O Disregarding the name of the utility, GNU makes it output lots of @@ -173,19 +173,19 @@ POSIX .\"O using the \-f option or the .\"O .B TIME .\"O environment variable. -°Ê²¼¤Ï GNU 1.7 ¥Ð¡¼¥¸¥ç¥ó¤Î +以下は GNU 1.7 バージョンの .BR time -¤ÎÀâÌÀ¤Ç¤¢¤ë¡£¥³¥Þ¥ó¥É̾¤È¤Ï΢ʢ¤Ë¡¢GNU ¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï -Í­±×¤Ê¾ðÊ󤬤¿¤¯¤µ¤ó½ÐÎϤµ¤ì¤ë¡£»ÈÍÑ»þ´Ö¤À¤±¤Ç¤Ê¤¯¡¢ -(¼èÆÀ¤Ç¤­¤ë¾ì¹ç¤Ë¤Ï) ¥á¥â¥ê¤ä I/O¡¢IPC ¸Æ¤Ó½Ð¤·¤Ê¤É¤Î¾¤Î¥ê¥½¡¼¥¹ -¤Ë´Ø¤¹¤ë¾ðÊó¤â½ÐÎϤµ¤ì¤ë¡£ -½ÐÎϤϥե©¡¼¥Þ¥Ã¥Èʸ»úÎó¤ò»È¤Ã¤ÆÀ°·Á¤µ¤ì¡¢ -¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤Ï \-f ¥ª¥×¥·¥ç¥ó¤«´Ä¶­ÊÑ¿ô +の説明である。コマンド名とは裏腹に、GNU バージョンでは +有益な情報がたくさん出力される。使用時間だけでなく、 +(取得できる場合には) メモリや I/O、IPC 呼び出しなどの他のリソース +に関する情報も出力される。 +出力はフォーマット文字列を使って整形され、 +フォーマット文字列は \-f オプションか環境変数 .B TIME -¤Ç»ØÄê¤Ç¤­¤ë¡£ +で指定できる。 .LP .\"O The default format string is -¥Ç¥Õ¥©¥ë¥È¤Î¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤Ï°Ê²¼¤ÎÄ̤ꡣ +デフォルトのフォーマット文字列は以下の通り。 .br .in +3 %Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k @@ -195,8 +195,8 @@ POSIX .in -3 .LP .\"O When the \-p option is given the (portable) output format -\-p ¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢(¾¤È¸ß´¹À­¤Î¤¢¤ë) ½ÐÎÏ -¥Õ¥©¡¼¥Þ¥Ã¥È¤¬»ÈÍѤµ¤ì¤ë¡£ +\-p オプションが指定された場合には、(他と互換性のある) 出力 +フォーマットが使用される。 .br .in +3 real %e @@ -208,7 +208,7 @@ sys %S .in -3 .\"O is used. .\"O .SS "The format string" -.SS "¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó" +.SS "フォーマット文字列" .\"O The format is interpreted in the usual printf-like way. .\"O Ordinary characters are directly copied, tab, newline .\"O and backslash are escaped using \et, \en and \e\e, @@ -221,198 +221,198 @@ sys %S .\"O All of those used by .\"O .BR tcsh (1) .\"O are supported. -¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¤è¤¯¤¢¤ë printf ·Á¼°¤Ç²ò¼á¤µ¤ì¤ë¡£ -Ä̾ï¤Îʸ»ú¤Ï¤½¤Î¤Þ¤Þ¥³¥Ô¡¼¤µ¤ì¡¢ -¥¿¥Ö¡¢²þ¹Ô (newline)¡¢¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤Ï¤½¤ì¤¾¤ì \et, \en, \e\e ¤Ç -¥¨¥¹¥±¡¼¥×¤µ¤ì¤ë¡£ -¥Ñ¡¼¥»¥ó¥Èµ­¹æ¤Ï %% ¤Çɽ¸½¤µ¤ì¡¢¤½¤ì°Ê³°¤Î % ¤ÏÊÑ´¹¤ò¼¨¤¹¡£ -ËöÈø¤Ë¤Ïɬ¤º²þ¹Ôʸ»ú (newline) ¤¬Äɲ䵤ì¤ë¡£ -ÊÑ´¹¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +フォーマットはよくある printf 形式で解釈される。 +通常の文字はそのままコピーされ、 +タブ、改行 (newline)、バックスラッシュはそれぞれ \et, \en, \e\e で +エスケープされる。 +パーセント記号は %% で表現され、それ以外の % は変換を示す。 +末尾には必ず改行文字 (newline) が追加される。 +変換は以下の通りである。 .BR tcsh (1) -¤Ç»ÈÍѤµ¤ì¤ëÊÑ´¹¤ÏÁ´¤Æ¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +で使用される変換は全てサポートされている。 .LP .B "Time" .TP .B %E .\"O Elapsed real time (in [hours:]minutes:seconds). -·Ð²á¤·¤¿¼Â»þ´Ö ([hours:]minutes:seconds ¤Î·Á¼°)¡£ +経過した実時間 ([hours:]minutes:seconds の形式)。 .TP .B %e .\"O (Not in tcsh.) Elapsed real time (in seconds). -(tcsh ¤Ë¤Ï¤Ê¤¤) ·Ð²á¤·¤¿¼Â»þ´Ö (ÉÃñ°Ì)¡£ +(tcsh にはない) 経過した実時間 (秒単位)。 .TP .B %S .\"O Total number of CPU-seconds that the process spent in kernel mode. -¤½¤Î¥×¥í¥»¥¹¤¬¥«¡¼¥Í¥ë¥â¡¼¥É¤Ç¾ÃÈñ¤·¤¿ CPU »þ´Ö¤Î¹ç·× (ÉÃñ°Ì)¡£ +そのプロセスがカーネルモードで消費した CPU 時間の合計 (秒単位)。 .TP .B %U .\"O Total number of CPU-seconds that the process spent in user mode. -¤½¤Î¥×¥í¥»¥¹¤¬¥æ¡¼¥¶¥â¡¼¥É¤Ç¾ÃÈñ¤·¤¿ CPU »þ´Ö¤Î¹ç·× (ÉÃñ°Ì)¡£ +そのプロセスがユーザモードで消費した CPU 時間の合計 (秒単位)。 .TP .B %P .\"O Percentage of the CPU that this job got, computed as (%U + %S) / %E. -¤³¤Î¥¸¥ç¥Ö¤¬³ÍÆÀ¤·¤¿ CPU ¤Î³ä¤ê¹ç¤¤ (¥Ñ¡¼¥»¥ó¥Æ¡¼¥¸)¡£ -(%U + %S) / %E ¤Ç·×»»¤µ¤ì¤ë¡£ +このジョブが獲得した CPU の割り合い (パーセンテージ)。 +(%U + %S) / %E で計算される。 .LP .B "Memory" .TP .B %M .\"O Maximum resident set size of the process during its lifetime, in Kbytes. -¥×¥í¥»¥¹À¸Â¸Ãæ¤Î¤½¤Î¥×¥í¥»¥¹¤Î resident set size ¤ÎºÇÂçÃÍ¡£ -¥­¥í¥Ð¥¤¥Èñ°Ì¡£ +プロセス生存中のそのプロセスの resident set size の最大値。 +キロバイト単位。 .TP .B %t .\"O (Not in tcsh.) Average resident set size of the process, in Kbytes. -(tcsh ¤Ë¤Ï¤Ê¤¤) -¤½¤Î¥×¥í¥»¥¹¤Î resident set size ¤ÎÊ¿¶ÑÃÍ¡£ -¥­¥í¥Ð¥¤¥Èñ°Ì¡£ +(tcsh にはない) +そのプロセスの resident set size の平均値。 +キロバイト単位。 .TP .B %K .\"O Average total (data+stack+text) memory use of the process, .\"O in Kbytes. -¤½¤Î¥×¥í¥»¥¹¤Î¥á¥â¥ê»ÈÍÑÎ̤ιç·× (¥Ç¡¼¥¿+¥¹¥¿¥Ã¥¯+¥Æ¥­¥¹¥È) ¤ÎÊ¿¶ÑÃÍ¡£ -¥­¥í¥Ð¥¤¥Èñ°Ì¡£ +そのプロセスのメモリ使用量の合計 (データ+スタック+テキスト) の平均値。 +キロバイト単位。 .TP .B %D .\"O Average size of the process's unshared data area, in Kbytes. -¤½¤Î¥×¥í¥»¥¹¤ÎÈó¶¦Í­¥Ç¡¼¥¿Îΰè¤ÎÊ¿¶Ñ¥µ¥¤¥º¡£ -¥­¥í¥Ð¥¤¥Èñ°Ì¡£ +そのプロセスの非共有データ領域の平均サイズ。 +キロバイト単位。 .TP .B %p .\"O (Not in tcsh.) Average size of the process's unshared stack space, in Kbytes. -(tcsh ¤Ë¤Ï¤Ê¤¤) -¤½¤Î¥×¥í¥»¥¹¤ÎÈó¶¦Í­¥¹¥¿¥Ã¥¯¶õ´Ö¤ÎÊ¿¶Ñ¥µ¥¤¥º¡£ -¥­¥í¥Ð¥¤¥Èñ°Ì¡£ +(tcsh にはない) +そのプロセスの非共有スタック空間の平均サイズ。 +キロバイト単位。 .TP .B %X .\"O Average size of the process's shared text space, in Kbytes. -¤½¤Î¥×¥í¥»¥¹¤Î¶¦Í­¥Æ¥­¥¹¥È¶õ´Ö¤ÎÊ¿¶Ñ¥µ¥¤¥º¡£ -¥­¥í¥Ð¥¤¥Èñ°Ì¡£ +そのプロセスの共有テキスト空間の平均サイズ。 +キロバイト単位。 .TP .B %Z .\"O (Not in tcsh.) System's page size, in bytes. .\"O This is a per-system constant, but varies between systems. -(tcsh ¤Ë¤Ï¤Ê¤¤) ¥·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì)¡£ -¤³¤ÎÃͤϥ·¥¹¥Æ¥àËè¤Ë·è¤Þ¤ëÄê¿ô¤À¤¬¡¢¥·¥¹¥Æ¥à¤Ë¤è¤ê°Û¤Ê¤ë¡£ +(tcsh にはない) システムのページサイズ (バイト単位)。 +この値はシステム毎に決まる定数だが、システムにより異なる。 .TP .B %F .\"O Number of major page faults that occurred while the process was running. .\"O These are faults where the page has to be read in from disk. -¥×¥í¥»¥¹¤ÎÆ°ºîÃæ¤ËȯÀ¸¤·¤¿¥á¥¸¥ã¡¼¥Ú¡¼¥¸¥Õ¥©¥ë¥È¤Î²ó¿ô¡£ -¤³¤ì¤Ï¡¢¥Ç¥£¥¹¥¯¤«¤é¥Ú¡¼¥¸¤òÆɤ߹þ¤àɬÍפ¬¤¢¤Ã¤¿¥Ú¡¼¥¸¥Õ¥©¥ë¥È¤Ë -´Ø¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +プロセスの動作中に発生したメジャーページフォルトの回数。 +これは、ディスクからページを読み込む必要があったページフォルトに +関するものである。 .TP .B %R .\"O Number of minor, or recoverable, page faults. .\"O These are faults for pages that are not valid but which have .\"O not yet been claimed by other virtual pages. Thus the data .\"O in the page is still valid but the system tables must be updated. -¥Þ¥¤¥Ê¡¼¥Ú¡¼¥¸¥Õ¥©¡¼¥ë¥È¡¢¤Ä¤Þ¤ê²óÉü²Äǽ¤Ê¥Ú¡¼¥¸¥Õ¥©¥ë¥È¤Î²ó¿ô¡£ -¤³¤ì¤Ï¡¢¤½¤Î¥Ú¡¼¥¸¤ÏÍ­¸ú¤Ç¤Ê¤¤¤¬¡¢¤Þ¤À¾¤Î²¾ÁÛ¥Ú¡¼¥¸¤ËÃ¥¤ï¤ì¤Æ -¤¤¤Ê¤«¤Ã¤¿¥Ú¡¼¥¸¤ËÂФ¹¤ë¥Ú¡¼¥¸¥Õ¥©¥ë¥È¤Ë´Ø¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +マイナーページフォールト、つまり回復可能なページフォルトの回数。 +これは、そのページは有効でないが、まだ他の仮想ページに奪われて +いなかったページに対するページフォルトに関するものである。 .TP .B %W .\"O Number of times the process was swapped out of main memory. -¤½¤Î¥×¥í¥»¥¹¤¬¼çµ­²±¤«¤é¥¹¥ï¥Ã¥×¥¢¥¦¥È¤µ¤ì¤¿²ó¿ô¡£ +そのプロセスが主記憶からスワップアウトされた回数。 .TP .B %c .\"O Number of times the process was context-switched involuntarily .\"O (because the time slice expired). -¤½¤Î¥×¥í¥»¥¹¤¬ (¥¿¥¤¥à¥¹¥é¥¤¥¹¤Î·Ð²á¤Ë¤è¤ê) ¶¯À©Åª¤Ë¥³¥ó¥Æ¥­¥¹¥È¥¹¥¤¥Ã¥Á -¤µ¤ì¤¿²ó¿ô¡£ +そのプロセスが (タイムスライスの経過により) 強制的にコンテキストスイッチ +された回数。 .TP .B %w .\"O Number of waits: times that the program was context-switched voluntarily, .\"O for instance while waiting for an I/O operation to complete. -wait ¤Î²ó¿ô¡¢¤Ä¤Þ¤ê¤½¤Î¥×¥í¥°¥é¥à¤¬¼«È¯Åª¤Ë¥³¥ó¥Æ¥­¥¹¥È¥¹¥¤¥Ã¥Á¤µ¤ì¤¿²ó¿ô¡£ -Î㤨¤Ð¡¢I/O Áàºî¤Î´°Î»¤òÂԤäƤ¤¤ë´Ö¤Ê¤É¤¬³ºÅö¤¹¤ë¡£ +wait の回数、つまりそのプログラムが自発的にコンテキストスイッチされた回数。 +例えば、I/O 操作の完了を待っている間などが該当する。 .LP .B "I/O" .TP .B %I .\"O Number of file system inputs by the process. -¤½¤Î¥×¥í¥»¥¹¤Ë¤è¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤«¤é¤ÎÆþÎϤβó¿ô¡£ +そのプロセスによるファイルシステムからの入力の回数。 .TP .B %O .\"O Number of file system outputs by the process. -¤½¤Î¥×¥í¥»¥¹¤Ë¤è¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ø¤Î½ÐÎϤβó¿ô¡£ +そのプロセスによるファイルシステムへの出力の回数。 .TP .B %r .\"O Number of socket messages received by the process. -¤½¤Î¥×¥í¥»¥¹¤¬¼õ¿®¤·¤¿¥½¥±¥Ã¥È¥á¥Ã¥»¡¼¥¸¿ô¡£ +そのプロセスが受信したソケットメッセージ数。 .TP .B %s .\"O Number of socket messages sent by the process. -¤½¤Î¥×¥í¥»¥¹¤¬Á÷¿®¤·¤¿¥½¥±¥Ã¥È¥á¥Ã¥»¡¼¥¸¿ô¡£ +そのプロセスが送信したソケットメッセージ数。 .TP .B %k .\"O Number of signals delivered to the process. -¤½¤Î¥×¥í¥»¥¹¤ËÇÛÁ÷¤µ¤ì¤¿¥·¥°¥Ê¥ë¿ô¡£ +そのプロセスに配送されたシグナル数。 .TP .B %C .\"O (Not in tcsh.) Name and command line arguments of the command being timed. -(tcsh ¤Ë¤Ï¤Ê¤¤) time ¤ÎÂоݤȤʤä¿¥³¥Þ¥ó¥É̾¤È¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¡£ +(tcsh にはない) time の対象となったコマンド名とコマンドライン引き数。 .TP .B %x .\"O (Not in tcsh.) Exit status of the command. -(tcsh ¤Ë¤Ï¤Ê¤¤) ¥³¥Þ¥ó¥É¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¡£ +(tcsh にはない) コマンドの終了ステータス。 .\"O .SS "GNU Options" -.SS "GNU ¥ª¥×¥·¥ç¥ó" +.SS "GNU オプション" .TP .BI "\-f " FORMAT ", \-\-format=" FORMAT .\"O Specify output format, possibly overriding the format specified .\"O in the environment variable TIME. -½ÐÎÏ¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»ØÄꤹ¤ë¡£ -´Ä¶­ÊÑ¿ô +出力フォーマットを指定する。 +環境変数 .B TIME -¤Ç»ØÄꤵ¤ì¤¿¥Õ¥©¡¼¥Þ¥Ã¥È¤è¤ê¤âÍ¥À褵¤ì¤ë¡£ +で指定されたフォーマットよりも優先される。 .TP .B "\-p, \-\-portability" .\"O Use the portable output format. -¾¤Î time ¤È¸ß´¹À­¤Î¤¢¤ë½ÐÎÏ¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»ÈÍѤ¹¤ë¡£ +他の time と互換性のある出力フォーマットを使用する。 .TP .BI "\-o " FILE ", \-\-output=" FILE .\"O Do not send the results to \fIstderr\fp, but overwrite the specified file. -·ë²Ì¤ò \fIstderr\fP ¤ËÁ÷¤é¤º¡¢»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤à¡£ -¥Õ¥¡¥¤¥ë¤Ï¾å½ñ¤­¤µ¤ì¤ë¡£ +結果を \fIstderr\fP に送らず、指定されたファイルに書き込む。 +ファイルは上書きされる。 .TP .B "\-a, \-\-append" .\"O (Used together with \-o.) Do not overwrite but append. -(\-o ¤È°ì½ï¤Ë»ÈÍѤ¹¤ë¡£) -¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤­¤»¤º¤Ë¡¢·ë²Ì¤ò¥Õ¥¡¥¤¥ëËöÈø¤ËÄɲ乤롣 +(\-o と一緒に使用する。) +ファイルを上書きせずに、結果をファイル末尾に追加する。 .TP .B "\-v, \-\-verbose" .\"O Give very verbose output about all the program knows about. -Èó¾ï¤Ë¾Ü¤·¤¤½ÐÎϤǡ¢Æþ¼ê¤Ç¤­¤ëÁ´¤Æ¤Î¾ðÊó¤ò½ÐÎϤ¹¤ë¡£ +非常に詳しい出力で、入手できる全ての情報を出力する。 .\"O .SS "GNU Standard Options" -.SS "GNU ɸ½à¥ª¥×¥·¥ç¥ó" +.SS "GNU 標準オプション" .TP .B "\-\-help" .\"O Print a usage message on standard output and exit successfully. -»ÈÍÑÊýË¡¤Ë´Ø¤¹¤ë¥á¥Ã¥»¡¼¥¸¤òɸ½à½ÐÎϤËɽ¼¨¤·¡¢Àµ¾ï½ªÎ»¤¹¤ë¡£ +使用方法に関するメッセージを標準出力に表示し、正常終了する。 .TP .B "\-V, \-\-version" .\"O Print version information on standard output, then exit successfully. -¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɸ½à½ÐÎϤËɽ¼¨¤·¡¢Àµ¾ï½ªÎ»¤¹¤ë¡£ +バージョン情報を標準出力に表示し、正常終了する。 .TP .B "\-\-" .\"O Terminate option list. -¥ª¥×¥·¥ç¥ó¥ê¥¹¥È¤ÎËöÈø¤ò¼¨¤¹¡£ +オプションリストの末尾を示す。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Not all resources are measured by all versions of UNIX, .\"O so some of the values might be reported as zero. .\"O The present selection was mostly inspired by the data .\"O provided by 4.2 or 4.3BSD. -Á´¤Æ¤Î¥ê¥½¡¼¥¹¤¬ UNIX ¤ÎÁ´¤Æ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç·×¬¤µ¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢ -¤¤¤¯¤Ä¤«¤ÎÃͤ¬ 0 ¤ÈÊó¹ð¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¸½ºß¤Î½ÐÎϹàÌܤΤۤȤó¤É¤Ï 4.2BSD ¤ä 4.3BSD ¤Ç¼èÆÀ²Äǽ¤Ê¥Ç¡¼¥¿¤Ë -´ð¤Å¤¤¤ÆÁªÂò¤µ¤ì¤Æ¤¤¤ë¡£ +全てのリソースが UNIX の全てのバージョンで計測されているわけではないので、 +いくつかの値が 0 と報告される可能性がある。 +現在の出力項目のほとんどは 4.2BSD や 4.3BSD で取得可能なデータに +基づいて選択されている。 .LP .\"O GNU time version 1.7 is not yet localized. .\"O Thus, it does not implement the POSIX requirements. -GNU time ¥Ð¡¼¥¸¥ç¥ó 1.7 ¤Ï¤Þ¤À¥í¡¼¥«¥é¥¤¥º¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤½¤Î¤¿¤á¡¢POSIX ¤ÎÍ×·ï¤ò¼ÂÁõ¤·¤Æ¤¤¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¡£ +GNU time バージョン 1.7 はまだローカライズされていない。 +そのため、POSIX の要件を実装していないことになる。 .LP .\"O The environment variable .\"O .B TIME @@ -426,20 +426,20 @@ GNU time .\"O Uses like MORE or TIME for options to programs .\"O (instead of program pathnames) tend to lead to difficulties. .B TIME -¤È¤¤¤¦´Ä¶­ÊÑ¿ô¤Ï̾Á°¤ÎÁªÂò¤¬¤Þ¤º¤¤¡£ +という環境変数は名前の選択がまずい。 .BR autoconf (1) -¤ä +や .BR make (1) -¤Î¤è¤¦¤Ê¥·¥¹¥Æ¥à¤Ç¤Ï¡¢»ÈÍѤ¹¤ë¥³¥Þ¥ó¥É¤ò¾å½ñ¤­¤¹¤ë¤Î¤Ë¤½¤Î¥³¥Þ¥ó¥É¤Î -̾Á°¤Î´Ä¶­ÊÑ¿ô¤ò»È¤¦¤Î¤¬ÄÁ¤·¤¯¤Ê¤¤¡£ -MORE ¤ä TIME ¤Î¤è¤¦¤Ê̾Á°¤ò (¥×¥í¥°¥é¥à¤Î¥Ñ¥¹Ì¾¤Î»ØÄê¤Ç¤Ï¤Ê¤¯) -¥×¥í¥°¥é¥à¤Ø¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤Î¤Ë»È¤¦¤È¡¢ -ÌÌÅݤʤ³¤È¤ò°ú¤­µ¯¤³¤¹²ÄǽÀ­¤¬¹â¤¤¡£ +のようなシステムでは、使用するコマンドを上書きするのにそのコマンドの +名前の環境変数を使うのが珍しくない。 +MORE や TIME のような名前を (プログラムのパス名の指定ではなく) +プログラムへのオプションを指定するのに使うと、 +面倒なことを引き起こす可能性が高い。 .LP .\"O It seems unfortunate that \-o overwrites instead of appends. .\"O (That is, the \-a option should be the default.) -\-o ¤¬Äɵ­¤Ç¤Ï¤Ê¤¯¾å½ñ¤­¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ï»ÄÇ°¤Ê¤³¤È¤À -(¤Ä¤Þ¤ê \-a ¥ª¥×¥·¥ç¥ó¤¬¥Ç¥Õ¥©¥ë¥È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Ù¤­¤À¤í¤¦¤È¤¤¤¦¤³¤È¤À)¡£ +\-o が追記ではなく上書きになっているのは残念なことだ +(つまり \-a オプションがデフォルトになっているべきだろうということだ)。 .LP .\"O Mail suggestions and bug reports for GNU .\"O .B time @@ -457,17 +457,17 @@ MORE .\"O and C compiler you used. GNU .B time -¤ËÂФ¹¤ëÄó°Æ¤ä¥Ð¥°¥ì¥Ý¡¼¥È¤Ï +に対する提案やバグレポートは .br .I bug\-utils@prep.ai.mit.edu .br -¤Þ¤Ç¥á¡¼¥ë¤òÁ÷¤Ã¤Æ¤Û¤·¤¤¡£ -¤½¤Î¾ì¹ç¤Ë¤Ï +までメールを送ってほしい。 +その場合には .B time -¤ä OS¡¢»ÈÍѤ·¤Æ¤¤¤ë C ¥³¥ó¥Ñ¥¤¥é¤Î -¥Ð¡¼¥¸¥ç¥ó¤òµ­ºÜ¤·¤Æ¤Û¤·¤¤¡£ +や OS、使用している C コンパイラの +バージョンを記載してほしい。 .B time -¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï°Ê²¼¤Î¥³¥Þ¥ó¥É¤Ç¼èÆÀ¤Ç¤­¤ë¡£ +のバージョンは以下のコマンドで取得できる。 .br .I time \-\-version .br @@ -483,7 +483,7 @@ GNU .\" .IP "Francois Pinard" .\" Helped with portability .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR tcsh (1), .BR times (2), .BR wait3 (2) diff --git a/draft/man2/_exit.2 b/draft/man2/_exit.2 index 24fb861e..92074988 100644 --- a/draft/man2/_exit.2 +++ b/draft/man2/_exit.2 @@ -35,15 +35,15 @@ .\" Updated Sat Sep 3 04:26:00 JST 2005 .\" by Akihiro MOTOKI .\" -.\"WORD descriptors ¥Ç¥£¥¹¥¯¥ê¥×¥¿ +.\"WORD descriptors ディスクリプタ .\" .TH _EXIT 2 2010-09-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O _exit, _Exit \- terminate the calling process -_exit, _Exit \- ¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ò½ªÎ»¤µ¤»¤ë +_exit, _Exit \- 呼び出し元のプロセスを終了させる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "void _exit(int " status ); @@ -55,9 +55,9 @@ _exit, _Exit \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -67,11 +67,11 @@ _XOPEN_SOURCE\ >=\ 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L; .br .\"O or -¤Þ¤¿¤Ï +または .I cc\ -std=c99 .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The function .\"O .BR _exit () .\"O terminates the calling process "immediately". @@ -83,15 +83,15 @@ _POSIX_C_SOURCE\ >=\ 200112L; .\"O .B SIGCHLD .\"O signal. .BR _exit () -¤Ï¡¢¤½¤ì¤ò¸Æ¤ó¤À¥×¥í¥»¥¹¤ò¡Öľ¤Á¤Ë¡×½ªÎ»¤µ¤»¤ë¡£ -¤½¤ÎºÝ¡¢¤³¤Î¥×¥í¥»¥¹¤¬½êÍ­¤·¤Æ¤¤¤ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ (descriptor) ¤Ç¡¢ -¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤ÏÁ´¤Æ¥¯¥í¡¼¥º¤µ¤ì¤ë¡£ -¤Þ¤¿¡¢¤³¤Î¥×¥í¥»¥¹¤¬½êÍ­¤¹¤ë»Ò¥×¥í¥»¥¹¤ÏÁ´¤Æ¡¢¥×¥í¥»¥¹ÈÖ¹æ 1¡¢ -¤Ä¤Þ¤ê +は、それを呼んだプロセスを「直ちに」終了させる。 +その際、このプロセスが所有しているディスクリプタ (descriptor) で、 +オープンされているものは全てクローズされる。 +また、このプロセスが所有する子プロセスは全て、プロセス番号 1、 +つまり .I init -¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ·Ñ¾µ¤µ¤ì¡¢¤³¤Î¥×¥í¥»¥¹¤Î¿Æ¥×¥í¥»¥¹¤ËÂФ·¤Æ +プロセスによって継承され、このプロセスの親プロセスに対して .B SIGCHLD -¥·¥°¥Ê¥ë¤¬Á÷½Ð¤µ¤ì¤ë¡£ +シグナルが送出される。 .LP .\"O The value .\"O .I status @@ -100,41 +100,41 @@ _POSIX_C_SOURCE\ >=\ 200112L; .\"O .BR wait 2() .\"O family of calls. .I status -¤ÎÃͤϡ¢¤³¤Î¥×¥í¥»¥¹¤Î½ªÎ»¾õÂ֤Ȥ·¤Æ¤½¤Î¿Æ¥×¥í¥»¥¹¤ËÂФ·¤ÆÊÖ¤µ¤ì¡¢ +の値は、このプロセスの終了状態としてその親プロセスに対して返され、 .BR wait (2) -·Ï´Ø¿ô¤òÍøÍѤ¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +系関数を利用することによって取得することができる。 .LP .\"O The function .\"O .BR _Exit () .\"O is equivalent to .\"O .BR _exit (). -´Ø¿ô +関数 .BR _Exit () -¤Ï +は .BR _exit () -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O These functions do not return. -¤³¤ì¤é¤Î´Ø¿ô¤ÏÃͤòÊÖ¤µ¤Ê¤¤¡£ +これらの関数は値を返さない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001, 4.3BSD. .\"O The function .\"O .BR _Exit () .\"O was introduced by C99. -´Ø¿ô +関数 .BR _Exit () -¤Ï C99 ¤ÇƳÆþ¤µ¤ì¤¿¡£ +は C99 で導入された。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O For a discussion on the effects of an exit, the transmission of .\"O exit status, zombie processes, signals sent, etc., see .\"O .BR exit (3). -exit ¤ÎÌò³ä¡¦½ªÎ»¾õÂ֤μõÅϤ·¡¦ -¥¾¥ó¥Ó¥×¥í¥»¥¹¡¦¥·¥°¥Ê¥ëÁ÷½Ð¤Ê¤É¤Ë¤Ä¤¤¤Æ¤ÎµÄÏÀ¤Ï¡¢ +exit の役割・終了状態の受渡し・ +ゾンビプロセス・シグナル送出などについての議論は、 .BR exit (3) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .LP .\"O The function .\"O .BR _exit () @@ -149,18 +149,18 @@ exit .\"O standard I/O buffers and removes temporary files created with .\"O .BR tmpfile (3) .\"O is implementation-dependent. -´Ø¿ô +関数 .BR _exit () -¤Ï +は .BR exit (3) -¤Ë»÷¤Æ¤¤¤ë¤¬¡¢ANSI C ¤Î +に似ているが、ANSI C の .BR atexit (3) -¤ä +や .BR on_exit (3) -¤Ë¤è¤Ã¤ÆÅÐÏ¿¤µ¤ì¤¿¤¤¤«¤Ê¤ë´Ø¿ô¤â¸Æ¤Ó½Ð¤µ¤Ê¤¤¡£ -ɸ½à I/O ¥Ð¥Ã¥Õ¥¡¤Î¥Õ¥é¥Ã¥·¥å¤ä¡¢ +によって登録されたいかなる関数も呼び出さない。 +標準 I/O バッファのフラッシュや、 .BR tmpfile (3) -¤ÇºîÀ®¤µ¤ì¤¿¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë¤Îºï½ü¤ò¹Ô¤¦¤«¤É¤¦¤«¤Ï¡¢¼ÂÁõ¤Ë°Í¸¤¹¤ë¡£ +で作成されたテンポラリファイルの削除を行うかどうかは、実装に依存する。 .\"O On the other hand, .\"O .BR _exit () .\"O does close open file descriptors, and this may cause an unknown delay, @@ -174,19 +174,19 @@ exit .\"O canceled upon .\"O .BR _exit (), .\"O is implementation-dependent. -°ìÊý¤Ç¡¢ +一方で、 .BR _exit () -¤Ï¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¯¥í¡¼¥º¤·¤Ê¤¤¤¿¤á¡¢ -̤·èÄê¤Ë¤Ê¤Ã¤Æ¤¤¤ë½ÐÎϤ¬¥Õ¥é¥Ã¥·¥å¤µ¤ì¤ë¤Î¤òÂԤĤΤËÉÔ³ÎÄê¤ÊÃ٤줬ȯÀ¸¤¹¤ë¡£ -¤³¤ÎÃÙ¤ì¤òȯÀ¸¤µ¤»¤¿¤¯¤Ê¤±¤ì¤Ð¡¢ +はオープンされているファイルディスクリプタをクローズしないため、 +未決定になっている出力がフラッシュされるのを待つのに不確定な遅れが発生する。 +この遅れを発生させたくなければ、 .BR _exit () -¤ÎÁ°¤Ë +の前に .BR tcflush (3) -¤Î¤è¤¦¤Ê´Ø¿ô¤ò¸Æ¤Ó½Ð¤»¤Ð¤è¤¤¡£ +のような関数を呼び出せばよい。 .BR _exit () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¤È¤­¤Ë¡¢ -̤·èÄê¤Ë¤Ê¤Ã¤Æ¤¤¤ëÁ´¤Æ¤Î I/O ¤¬¥­¥ã¥ó¥»¥ë¤µ¤ì¤ë¤Î¤«¡¢ -¤Þ¤¿¤É¤Î I/O ¤¬¥­¥ã¥ó¥»¥ë¤µ¤ì¤ë¤Î¤«¤Ï¼ÂÁõ¤Ë°Í¸¤¹¤ë¡£ +が呼び出されたときに、 +未決定になっている全ての I/O がキャンセルされるのか、 +またどの I/O がキャンセルされるのかは実装に依存する。 .\"O In glibc up to version 2.3, the .\"O .BR _exit () @@ -194,15 +194,15 @@ exit .\"O Since glibc 2.3, the wrapper function invokes .\"O .BR exit_group (2), .\"O in order to terminate all of the threads in a process. -¥Ð¡¼¥¸¥ç¥ó 2.3 ¤è¤êÁ°¤Î glibc ¤Ç¤Ï¡¢ +バージョン 2.3 より前の glibc では、 .BR _exit () -¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤ÏƱ¤¸Ì¾Á°¤Î¥«¡¼¥Í¥ë¡¦¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤·¤Æ¤¤¤¿¡£ -glibc 2.3 °Ê¹ß¤Ç¤Ï¡¢¥×¥í¥»¥¹Æâ¤ÎÁ´¤Æ¤Î¥¹¥ì¥Ã¥É¤ò½ªÎ»¤¹¤ë¤¿¤á¤Ë¡¢ -¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï +のラッパー関数は同じ名前のカーネル・システムコールを起動していた。 +glibc 2.3 以降では、プロセス内の全てのスレッドを終了するために、 +ラッパー関数は .BR exit_group (2) -¤òµ¯Æ°¤¹¤ë¡£ +を起動する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR execve (2), .BR exit_group (2), .BR fork (2), diff --git a/draft/man2/_syscall.2 b/draft/man2/_syscall.2 index ec15eac8..2efca8b3 100644 --- a/draft/man2/_syscall.2 +++ b/draft/man2/_syscall.2 @@ -41,67 +41,67 @@ .\" .TH _SYSCALL 2 2007-12-19 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O _syscall \- invoking a system call without library support (OBSOLETE) -_syscall \- ¥é¥¤¥Ö¥é¥ê¤Î¥µ¥Ý¡¼¥È¤Ê¤·¤Ç¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤¹¤ë (ÀΤÎÊýË¡) +_syscall \- ライブラリのサポートなしでシステムコールを起動する (昔の方法) .\"O .SH "SYNOPSIS" -.SH ½ñ¼° +.SH 書式 .B #include A _syscall macro desired system call .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The important thing to know about a system call is its prototype. .\"O You need to know how many arguments, their types, .\"O and the function return type. .\"O There are seven macros that make the actual call into the system easier. .\"O They have the form: -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë´Ø¤·¤Æ¤½¤Î¥×¥í¥È¥¿¥¤¥×¤òÃΤ뤳¤È¤¬½ÅÍפǤ¢¤ë¡£ -°ú¤­¿ô¤Î¸Ä¿ô¡¢¤½¤ì¤é¤Î·¿¡¢ÊÖ¤êÃͤη¿¤òÃΤëɬÍפ¬¤¢¤ë¡£ -¼ÂºÝ¤Î»ÈÍѤˤ¢¤¿¤Ã¤Æ¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¥·¥¹¥Æ¥à¤Ë¸Æ¤Ó½Ð¤·¤ä¤¹¤¯¤¹¤ë¤¿¤á¤Ë¡¢ -7 ¸Ä¤Î¥Þ¥¯¥í¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¡£¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ï°Ê²¼¤Î·Á¤Ç¤¢¤ë¡£ +システムコールに関してそのプロトタイプを知ることが重要である。 +引き数の個数、それらの型、返り値の型を知る必要がある。 +実際の使用にあたっては、システムコールをシステムに呼び出しやすくするために、 +7 個のマクロが用意されている。これらのマクロは以下の形である。 .sp .RS .RI _syscall X ( type , name , type1 , arg1 , type2 , arg2 ,...) .RE .PP .\"O where -¤³¤³¤Ç +ここで .IP .\"O \fIX\fP is 0\(en6, which are the number of arguments taken by the .\"O system call -\fIX\fP ¤Ï 0¡Á6 ¤Ç¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¼è¤ë°ú¤­¿ô¤Î¸Ä¿ô¤Ç¤¢¤ë¡£ +\fIX\fP は 0〜6 で、システムコールが取る引き数の個数である。 .IP .\"O \fItype\fP is the return type of the system call -\fItype\fP ¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÊÖ¤êÃͤη¿¤Ç¤¢¤ë¡£ +\fItype\fP はシステムコールの返り値の型である。 .IP .\"O \fIname\fP is the name of the system call -\fIname\fP ¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î̾Á°¤Ç¤¢¤ë¡£ +\fIname\fP はシステムコールの名前である。 .IP .\"O \fItypeN\fP is the Nth argument's type -\fItypeN\fP ¤Ï N ÈÖÌܤΰú¤­¿ô¤Î·¿¤Ç¤¢¤ë¡£ +\fItypeN\fP は N 番目の引き数の型である。 .IP .\"O \fIargN\fP is the name of the Nth argument -\fIargN\fP ¤Ï N ÈÖÌܤΰú¤­¿ô¤Î̾Á°¤Ç¤¢¤ë¡£ +\fIargN\fP は N 番目の引き数の名前である。 .PP .\"O These macros create a function called \fIname\fP with the arguments you .\"O specify. .\"O Once you include the _syscall() in your source file, .\"O you call the system call by \fIname\fP. -¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ï¡¢»ØÄꤷ¤¿°ú¤­¿ô¤ò»ý¤Ä \fIname\fP ¤È¤¤¤¦Ì¾Á°¤Î´Ø¿ô¤òÀ¸À®¤¹¤ë¡£ -°ìÅÙ¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ÎÃæ¤Ç _syscall() ¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ¤ª¤¯¤È¡¢ -¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò \fIname\fP ¤È¤¤¤¦Ì¾Á°¤Ç¸Æ¤Ö¤³¤È¤¬¤Ç¤­¤ë¡£ +これらのマクロは、指定した引き数を持つ \fIname\fP という名前の関数を生成する。 +一度ソースファイルの中で _syscall() をインクルードしておくと、 +そのシステムコールを \fIname\fP という名前で呼ぶことができる。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .I /usr/include/linux/unistd.h .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The use of these macros is Linux-specific, and deprecated. -¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢¤½¤Î»ÈÍѤÏÈó¿ä¾©¤Ç¤¢¤ë¡£ +これらのマクロは Linux 固有であり、その使用は非推奨である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Starting around kernel 2.6.18, the _syscall macros were removed .\"O from header files supplied to user space. .\"O Use @@ -111,21 +111,21 @@ desired system call .\"O on those architectures, .\"O .BR syscall (2) .\"O was always required.) -¥«¡¼¥Í¥ë 2.6.18 ¤¢¤¿¤ê¤«¤é¡¢_syscall ¥Þ¥¯¥í·²¤Ï¥æ¡¼¥¶¶õ´Ö¤ËÂФ·¤ÆÄ󶡤µ¤ì¤ë -¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤«¤éºï½ü¤µ¤ì¤¿¡£Âå¤ï¤ê¤Ë +カーネル 2.6.18 あたりから、_syscall マクロ群はユーザ空間に対して提供される +ヘッダファイルから削除された。代わりに .BR syscall (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ -(¤¤¤¯¤Ä¤«¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¡¢ÆÃ¤Ë ia64¡¢¤Ç¤Ï¡¢¤³¤ì¤Þ¤Ç _syscall ¥Þ¥¯¥í¤¬ -Ä󶡤µ¤ì¤¿¤³¤È¤Ï¤Ê¤¤¡£¤³¤Î¤è¤¦¤Ê¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢¾ï¤Ë +を使用すること。 +(いくつかのアーキテクチャ、特に ia64、では、これまで _syscall マクロが +提供されたことはない。このようなアーキテクチャでは、常に .BR syscall (2) -¤¬É¬ÍפǤ¢¤Ã¤¿¡£) +が必要であった。) .\"O The _syscall() macros \fIdo not\fP produce a prototype. .\"O You may have to .\"O create one, especially for C++ users. -_syscall() ¥Þ¥¯¥í¤Ï¥×¥í¥È¥¿¥¤¥×¤ò¡ÖÀ¸À®¤·¤Ê¤¤¡×¡£ -¥æ¡¼¥¶¤Ï¥×¥í¥È¥¿¥¤¥×¤ò¼«Ê¬¤Ç½ñ¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -¤È¤ê¤ï¤± C++ ¥æ¡¼¥¶¤Î¾ì¹ç¤Ï¤½¤¦¤Ç¤¢¤í¤¦¡£ +_syscall() マクロはプロトタイプを「生成しない」。 +ユーザはプロトタイプを自分で書かなければならないかもしれない。 +とりわけ C++ ユーザの場合はそうであろう。 .\"O System calls are not required to return only positive or negative error .\"O codes. @@ -138,23 +138,23 @@ _syscall() .\"O to \-\fIr\fP when \fIr\fP is negative. .\"O For the error codes, see .\"O .BR errno (3). -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢Àµ¤Î¥¨¥é¡¼¥³¡¼¥É¤Î¤ß¡¢¤Þ¤¿¤ÏÉé¤Î¥¨¥é¡¼¥³¡¼¥É¤Î¤ß¤òÊÖ¤¹¤è¤¦¤Ë -Äê¤á¤é¤ì¤Æ¤¤¤ëÌõ¤Ç¤Ï¤Ê¤¤¡£¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤É¤Î¤è¤¦¤Ê¥¨¥é¡¼¥³¡¼¥É¤òÊÖ¤¹¤«¤ò -³Îǧ¤¹¤ë¤Ë¤Ï¡¢¤½¤Î¥½¡¼¥¹¥³¡¼¥É¤òÆɤàɬÍפ¬¤¢¤ë¡£¤¿¤¤¤Æ¤¤¤Î¾ì¹ç¤Ï¡¢É¸½à¤Î¥¨¥é¡¼ -¥³¡¼¥É¤òÉé¤Ë¤·¤¿¤â¤Î¤Ç¤¢¤ë (Î㤨¤Ð \-\fBEPERM\fP)¡£ -_syscall() ¥Þ¥¯¥í¤Ï¡¢¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÊÖ¤êÃÍ \fIr\fP ¤¬Éé¤Ç¤Ê¤¤¾ì¹ç¡¢¤½¤ÎÃÍ -¤ò¤½¤Î¤Þ¤ÞÊÖ¤¹¡£°ìÊý¡¢\fIr\fP ¤¬Éé¤Î¾ì¹ç¤Ë¤Ï¡¢ÊÑ¿ô +システムコールは、正のエラーコードのみ、または負のエラーコードのみを返すように +定められている訳ではない。そのシステムコールがどのようなエラーコードを返すかを +確認するには、そのソースコードを読む必要がある。たいていの場合は、標準のエラー +コードを負にしたものである (例えば \-\fBEPERM\fP)。 +_syscall() マクロは、そのシステムコールの返り値 \fIr\fP が負でない場合、その値 +をそのまま返す。一方、\fIr\fP が負の場合には、変数 .I errno -¤Ë \-\fIr\fP ¤òÀßÄꤷ¡¢\-1 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¥³¡¼¥É¤Ë¤Ä¤¤¤Æ¤Ï +に \-\fIr\fP を設定し、\-1 を返す。 +エラーコードについては .BR errno (3) -¤ò»²¾È¡£ +を参照。 .\"O When defining a system call, the argument types \fImust\fP be .\"O passed by-value or by-pointer (for aggregates like structs). -¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÄêµÁ¤¹¤ëºÝ¡¢°ú¤­¿ô¤Î·¿¤ÏÃÍÅϤ· (by-value) ¤«¡¢ -(¹½Â¤ÂΤΤ褦¤Ë½¸¹çŪ¤Ê¥Ç¡¼¥¿¤Î¾ì¹ç¤Ï) ¥Ý¥¤¥ó¥¿ÅϤ· (by-pointer) -¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +システムコールを定義する際、引き数の型は値渡し (by-value) か、 +(構造体のように集合的なデータの場合は) ポインタ渡し (by-pointer) +でなければならない。 .\" The preferred way to invoke system calls that glibc does not know .\" about yet is via .\" .BR syscall (2). @@ -167,7 +167,7 @@ _syscall() .\" Otherwise, the use of a _syscall macro is required. .\" .\"O .SH EXAMPLE -.SH Îã +.SH 例 .nf #include #include @@ -179,8 +179,8 @@ _syscall1(int, sysinfo, struct sysinfo *, info); .\"O /* Note: if you copy directly from the nroff source, remember to .\"O REMOVE the extra backslashes in the printf statement. */ -/* Note: nroff ¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤«¤éľÀÜ¥³¥Ô¡¼¤¹¤ëºÝ¤Ë¤Ï¡¢ -printf ʸÆâ¤Î;ʬ¤Ê¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤ò˺¤ì¤º¤Ëºï½ü¤¹¤ë¤è¤¦¤Ë¡£ */ +/* Note: nroff のソースファイルから直接コピーする際には、 +printf 文内の余分なバックスラッシュを忘れずに削除するように。 */ int main(void) @@ -214,7 +214,7 @@ Swap: total 27881472 / free 24698880 Number of processes = 40 .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR intro (2), .BR syscall (2), .BR errno (3) diff --git a/draft/man2/accept.2 b/draft/man2/accept.2 index 9256e703..d1e1001d 100644 --- a/draft/man2/accept.2 +++ b/draft/man2/accept.2 @@ -48,67 +48,67 @@ .\" Updated & Modified 2008-12-24, Akihiro MOTOKI, LDP v3.15 .\" Updated 2008-04-13, Akihiro MOTOKI, LDP v3.20 .\" -.\"WORD: pending ÊÝαÃæ¤Î -.\"WORD: queue ¥­¥å¡¼ -.\"WORD: file descriptor ¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: nonblocking ÈóÄä»ß -.\"WORD: async ÈóƱ´ü -.\"WORD: communication layer ÄÌ¿®ÁØ -.\"WORD: value-result argument Æþ½ÐÎÏξÍѤΰú¤­¿ô -.\"WORD: confirmation Àܳ³Îǧ -.\"WORD: dequeue ¥­¥å¡¼¤«¤é¼è¤ê½Ð¤¹ -.\"WORD: rejection ÀܳµñÈÝ +.\"WORD: pending 保留中の +.\"WORD: queue キュー +.\"WORD: file descriptor ファイル・ディスクリプタ +.\"WORD: nonblocking 非停止 +.\"WORD: async 非同期 +.\"WORD: communication layer 通信層 +.\"WORD: value-result argument 入出力両用の引き数 +.\"WORD: confirmation 接続確認 +.\"WORD: dequeue キューから取り出す +.\"WORD: rejection 接続拒否 .\" .TH ACCEPT 2 2010-09-10 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O accept \- accept a connection on a socket -.SH ̾Á° -accept \- ¥½¥±¥Ã¥È¤Ø¤ÎÀܳ¤ò¼õ¤±¤ë +.SH 名前 +accept \- ソケットへの接続を受ける .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#include " " /* See NOTES */" -.BR "#include " " /* ¡ÖÃí°Õ¡×»²¾È */" +.BR "#include " " /* 「注意」参照 */" .B #include .BI "int accept(int " sockfd ", struct sockaddr *" addr ", socklen_t *" addrlen ); .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .BI "int accept4(int " sockfd ", struct sockaddr *" addr , .BI " socklen_t *" addrlen ", int " flags ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR accept () .\"O system call is used with connection-based socket types .\"O .RB ( SOCK_STREAM , .\"O .BR SOCK_SEQPACKET ). .BR accept () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢Àܳ»Ø¸þ¤Î¥½¥±¥Ã¥È·¿ +システムコールは、接続指向のソケット型 .RB ( SOCK_STREAM ", " SOCK_SEQPACKET ) -¤ÇÍѤ¤¤é¤ì¤ë¡£ +で用いられる。 .\"O It extracts the first connection request on the queue of pending .\"O connections for the listening socket, .\"O .IR sockfd , .\"O creates a new connected socket, and returns a new file .\"O descriptor referring to that socket. -¤³¤Î´Ø¿ô¤Ï¡¢ÀܳÂÔ¤Á¥½¥±¥Ã¥È +この関数は、接続待ちソケット .I socket -°¸¤Æ¤ÎÊÝα¾õÂÖ¤ÎÀܳÍ׵᤬Æþ¤Ã¤Æ¤¤¤ë¥­¥å¡¼¤«¤é -ÀèƬ¤ÎÀܳÍ×µá¤ò¼è¤ê½Ð¤·¡¢ÀܳºÑ¤ß¥½¥±¥Ã¥È¤ò¿·µ¬¤ËÀ¸À®¤·¡¢ -¤½¤Î¥½¥±¥Ã¥È¤ò»²¾È¤¹¤ë¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ +宛ての保留状態の接続要求が入っているキューから +先頭の接続要求を取り出し、接続済みソケットを新規に生成し、 +そのソケットを参照する新しいファイル・ディスクリプタを返す。 .\"O The newly created socket is not in the listening state. -¿·µ¬¤ËÀ¸À®¤µ¤ì¤¿¥½¥±¥Ã¥È¤Ï¡¢ÀܳÂÔ¤Á (listen) ¾õÂ֤ǤϤʤ¤¡£ +新規に生成されたソケットは、接続待ち (listen) 状態ではない。 .\"O The original socket .\"O .I sockfd .\"O is unaffected by this call. -¤â¤È¤â¤È¤Î¥½¥±¥Ã¥È +もともとのソケット .I sockfd -¤Ï¤³¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤Æ±Æ¶Á¤ò¼õ¤±¤Ê¤¤¡£ +はこの呼び出しによって影響を受けない。 .PP .\"O The argument .\"O .I sockfd @@ -118,15 +118,15 @@ accept \- .\"O .BR bind (2), .\"O and is listening for connections after a .\"O .BR listen (2). -°ú¤­¿ô +引き数 .I sockfd -¤Ï¡¢ +は、 .BR socket (2) -¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¡¢ +によって生成され、 .BR bind (2) -¤Ë¤è¤Ã¤Æ¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¡¢ +によってローカルアドレスにバインドされ、 .BR listen (2) -¤ò·Ð¤ÆÀܳ¤òÂԤäƤ¤¤ë¥½¥±¥Ã¥È¤Ç¤¢¤ë¡£ +を経て接続を待っているソケットである。 .\"O The argument .\"O .I addr @@ -141,26 +141,26 @@ accept \- .\"O .BR socket (2) .\"O and the respective protocol man pages). .I addr -°ú¤­¿ô¤Ï +引き数は .I sockaddr -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤³¤Î¹½Â¤ÂΤˤÏÀܳÁê¼ê¤Î¥½¥±¥Ã¥È¤Î¥¢¥É¥ì¥¹¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ +構造体へのポインタである。 +この構造体には接続相手のソケットのアドレスが入っている。 .I addr -°ú¤­¿ô¤ÇÊÖ¤µ¤ì¤ë¥¢¥É¥ì¥¹¤ÎÀµ³Î¤Ê¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢ -¥½¥±¥Ã¥È¤Î¥¢¥É¥ì¥¹¼ïÊ̤ˤè¤Ã¤ÆÊѤï¤ë +引き数で返されるアドレスの正確なフォーマットは、 +ソケットのアドレス種別によって変わる .RB ( socket (2) -¤ª¤è¤Ó¤½¤ì¤¾¤ì¤Î¥×¥í¥È¥³¥ë¤Î man ¥Ú¡¼¥¸¤ò»²¾È)¡£ +およびそれぞれのプロトコルの man ページを参照)。 .\"O When .\"O .I addr .\"O is NULL, nothing is filled in; in this case, .\"O .I addrlen .\"O is not used, and should also be NULL. .I addr -¤¬ NULL ¤Î¾ì¹ç¡¢ +が NULL の場合、 .I addr -¤Ë¤Ï²¿¤âÆþ¤é¤Ê¤¤¡£¤³¤Î¾ì¹ç¡¢ +には何も入らない。この場合、 .I addrlen -¤Ï»ÈÍѤµ¤ì¤º¡¢¤³¤Î°ú¤­¿ô¤Ï NULL ¤Ë¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£ +は使用されず、この引き数は NULL にしておくべきである。 .\"O The .\"O .I addrlen @@ -170,19 +170,19 @@ accept \- .\"O .IR addr ; .\"O on return it will contain the actual size of the peer address. .I addrlen -°ú¤­¿ô¤ÏÆþ½ÐÎÏξÍѤΰú¤­¿ô¤Ç¤¢¤ë¡£¸Æ¤Ó½Ð¤·»þ¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤¬ +引き数は入出力両用の引き数である。呼び出し時には、呼び出し元が .I addr -¤¬»Ø¤¹¹½Â¤ÂΤΥµ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤Ç½é´ü²½¤·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Ê֤äƤ¯¤ë»þ¤Ë¤Ï¡¢ÀܳÁê¼ê¤Î¥¢¥É¥ì¥¹¤Î¼ÂºÝ¤ÎÂ礭¤µ¤¬³ÊǼ¤µ¤ì¤ë¡£ +が指す構造体のサイズ (バイト単位) で初期化しておかなければならない。 +返ってくる時には、接続相手のアドレスの実際の大きさが格納される。 .\"O The returned address is truncated if the buffer provided is too small; .\"O in this case, .\"O .I addrlen .\"O will return a value greater than was supplied to the call. -ÅϤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤¬¾®¤µ²á¤®¤ë¾ì¹ç¤Ë¤Ï¡¢ÊÖ¤µ¤ì¤ë¥¢¥É¥ì¥¹¤ÎËöÈø¤Ï -ÀÚ¤êµÍ¤á¤é¤ì¤ë¡£¤³¤Î¾ì¹ç¤Ë¤Ï¡¢ +渡されたバッファが小さ過ぎる場合には、返されるアドレスの末尾は +切り詰められる。この場合には、 .I addrlen -¤Ç¤Ï¡¢¸Æ¤Ó½Ð¤·»þ¤ËÅϤµ¤ì¤¿Ãͤè¤ê¤âÂ礭¤ÊÃͤ¬ÊÖ¤µ¤ì¤ë¡£ +では、呼び出し時に渡された値よりも大きな値が返される。 .PP .\"O If no pending .\"O connections are present on the queue, and the socket is not marked as @@ -196,18 +196,18 @@ accept \- .\"O .BR EAGAIN .\"O or .\"O .BR EWOULDBLOCK . -¥­¥å¡¼¤ËÊÝα¤È¤Ê¤Ã¤Æ¤¤¤ëÀܳÍ׵᤬¤Ê¤¯¡¢ -¤«¤Ä¥½¥±¥Ã¥È¤¬ÈóÄä»ß¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤È¤­¤Ï¡¢ +キューに保留となっている接続要求がなく、 +かつソケットが非停止になっていないときは、 .BR accept () -¤ÏÀܳ¤¬È¯À¸¤¹¤ë¤Þ¤Ç¸Æ¤Ó½Ð¤·¸µ¤òÄä»ß (block) ¤¹¤ë¡£ -¥½¥±¥Ã¥È¤¬ÈóÄä»ß¤Ë¤Ê¤Ã¤Æ¤¤¤Æ¡¢ -ÂÔ¤Á¾õÂÖ¤ÎÀܳÍ׵᤬¥­¥å¡¼¤Ë̵¤¤¤È¤­¤Ï¡¢ +は接続が発生するまで呼び出し元を停止 (block) する。 +ソケットが非停止になっていて、 +待ち状態の接続要求がキューに無いときは、 .BR accept () -¤Ï¥¨¥é¡¼ +はエラー .B EAGAIN -¤« +か .B EWOULDBLOCK -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .PP .\"O In order to be notified of incoming connections on a socket, you can use .\"O .BR select (2) @@ -222,20 +222,20 @@ accept \- .\"O when activity occurs on a socket; see .\"O .BR socket (7) .\"O for details. -¥½¥±¥Ã¥È¤Ø¤ÎÀܳÅþÃå¤òÃΤë¤Ë¤Ï¡¢ +ソケットへの接続到着を知るには、 .BR select (2) -¤Þ¤¿¤Ï +または .BR poll (2) -¤òÍѤ¤¤ì¤Ð¤è¤¤¡£ -¿·¤·¤¤ÀܳÍ׵᤬Íè¤ë¤È¥½¥±¥Ã¥È¤ÏÆɤ߹þ¤ß²Äǽ¤Ë¤Ê¤ë¤Î¤Ç¡¢ -¤½¤¦¤·¤¿¤é +を用いればよい。 +新しい接続要求が来るとソケットは読み込み可能になるので、 +そうしたら .BR accept () -¤ò¸Æ¤ó¤Ç¤½¤ÎÀܳ¤ËÂФ¹¤ë¥½¥±¥Ã¥È¤ò¼èÆÀ¤¹¤ì¤Ð¤è¤¤¡£ -¤¢¤ë¤¤¤Ï¥½¥±¥Ã¥È¤ËÀßÄê¤ò¹Ô¤¤¡¢²¿¤é¤«¤Î¥¢¥¯¥·¥ç¥ó¤¬¤¢¤Ã¤¿¤È¤­¤Ë +を呼んでその接続に対するソケットを取得すればよい。 +あるいはソケットに設定を行い、何らかのアクションがあったときに .B SIGIO -¤òÇÛÁ÷ (deliver) ¤µ¤»¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£¾ÜºÙ¤Ï +を配送 (deliver) させるようにすることもできる。詳細は .BR socket (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O For certain protocols which require an explicit confirmation, .\"O such as @@ -249,16 +249,16 @@ accept \- .\"O Currently only .\"O DECNet .\"O has these semantics on Linux. -ÌÀ¼¨Åª¤ÊÀܳ³Îǧ (confirmation) ¤òɬÍפȤ¹¤ë¤è¤¦¤Ê¥×¥í¥È¥³¥ë -(DECNet ¤Ê¤É) ¤Ç¤Ï¡¢ +明示的な接続確認 (confirmation) を必要とするようなプロトコル +(DECNet など) では、 .BR accept () -¤Ïñ¤Ë¼¡¤ÎÀܳÍ×µá¤ò¥­¥å¡¼¤«¤é¼è¤ê½Ð¤¹¤À¤±¤Ç¤¢¤ê¡¢ -Àܳ³Îǧ¤Ï¹Ô¤ï¤Ê¤¤¤³¤È¤ËÃí°Õ¤»¤è¡£Àܳ³Îǧ¤Ï¡¢ -¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ¹¤ë -Ä̾ï¤ÎÆɤ߼è¤ê/½ñ¤­¹þ¤ß¤Ë¤è¤Ã¤Æ¤Ê¤µ¤ì¡¢ÀܳµñÈÝ (rejection) -¤Ï¿·¤·¤¤¥½¥±¥Ã¥È¤ò¥¯¥í¡¼¥º¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¤Ê¤µ¤ì¤ë¡£ -¸½ºß¤Î¤È¤³¤í¡¢ -Linux ¾å¤Ç¤³¤ì¤é¤Î¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤ò»ý¤Ä¤Î¤Ï DECNet ¤À¤±¤Ç¤¢¤ë¡£ +は単に次の接続要求をキューから取り出すだけであり、 +接続確認は行わないことに注意せよ。接続確認は、 +新しいファイル・ディスクリプタに対する +通常の読み取り/書き込みによってなされ、接続拒否 (rejection) +は新しいソケットをクローズすることによってなされる。 +現在のところ、 +Linux 上でこれらのセマンティクスを持つのは DECNet だけである。 .\"O If .\"O .IR flags @@ -270,14 +270,14 @@ Linux .\"O .IR flags .\"O to obtain different behavior: .I flags -¤¬ 0 ¤Î¾ì¹ç¡¢ +が 0 の場合、 .BR accept4 () -¤Ï +は .BR accept () -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .I flags -¤Ë°Ê²¼¤ÎÃͤò¥Ó¥Ã¥ÈËè¤ÎÏÀÍýÏ (OR) ¤Ç»ØÄꤹ¤ë¤³¤È¤Ç¡¢ -°Û¤Ê¤ëÆ°ºî¤ò¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +に以下の値をビット毎の論理和 (OR) で指定することで、 +異なる動作をさせることができる。 .TP 16 .B SOCK_NONBLOCK .\"O Set the @@ -286,14 +286,14 @@ Linux .\"O Using this flag saves extra calls to .\"O .BR fcntl (2) .\"O to achieve the same result. -¿·¤·¤¯À¸À®¤µ¤ì¤ë¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò (open file description) ¤Î +新しく生成されるオープンファイル記述 (open file description) の .B O_NONBLOCK -¥Õ¥¡¥¤¥ë¥¹¥Æ¡¼¥¿¥¹¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤³¤È¤Ç¡¢ +ファイルステータスフラグをセットする。 +このフラグを使うことで、 .B O_NONBLOCK -¤ò¥»¥Ã¥È¤¹¤ë¤¿¤á¤Ë +をセットするために .BR fcntl (2) -¤òÄɲäǸƤӽФ¹É¬Íפ¬¤Ê¤¯¤Ê¤ë¡£ +を追加で呼び出す必要がなくなる。 .TP .B SOCK_CLOEXEC .\"O Set the close-on-exec @@ -304,30 +304,30 @@ Linux .\"O flag in .\"O .BR open (2) .\"O for reasons why this may be useful. -¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ +新しいファイルディスクリプタに対して close-on-exec .RB ( FD_CLOEXEC ) -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬Ìò¤ËΩ¤ÄÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +フラグをセットする。 +このフラグが役に立つ理由については、 .BR open (2) -¤Î +の .B O_CLOEXEC -¥Õ¥é¥°¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +フラグの説明を参照のこと。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O these system calls return a nonnegative integer that is a descriptor .\"O for the accepted socket. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï -¼õ¤±ÉÕ¤±¤¿¥½¥±¥Ã¥È¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ëÈóÉé¤ÎÀ°¿ôÃͤòÊÖ¤¹¡£ -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +成功した場合、これらのシステムコールは +受け付けたソケットのディスクリプタである非負の整数値を返す。 +エラーが発生した場合は \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SS "Error Handling" -.SS ¥¨¥é¡¼½èÍý +.SS エラー処理 .\"O Linux .\"O .BR accept () .\"O (and @@ -335,13 +335,13 @@ close-on-exec .\"O passes already-pending network errors on the new socket .\"O as an error code from .\"O .BR accept (). -Linux ¤Î +Linux の .BR accept () -(¤È +(と .BR accept4 ()) -¤Ï¡¢¿·¤·¤¤¥½¥±¥Ã¥È¤Ë¤ª¤±¤ë¡¢È¯À¸ºÑ¤ß¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¨¥é¡¼¤ò +は、新しいソケットにおける、発生済みのネットワークエラーを .BR accept () -¤«¤é¤Î¥¨¥é¡¼¥³¡¼¥É¤È¤·¤ÆÅϤ¹¡£ +からのエラーコードとして渡す。 .\"O This behavior differs from other BSD socket .\"O implementations. .\"O For reliable operation the application should detect @@ -352,13 +352,13 @@ Linux .\"O .B EAGAIN .\"O by retrying. .\"O In case of TCP/IP these are -¤³¤Î¿¶Éñ¤¤¤Ï BSD ¥½¥±¥Ã¥È¤Î¼ÂÁõ¤È¤Ï°Û¤Ê¤ë¡£ -¿®ÍêÀ­¤Î¹â¤¤Æ°ºî¤ò¹Ô¤¦¤¿¤á¤Ë¤Ï¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¥×¥í¥È¥³¥ë¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥Í¥Ã¥È¥ï¡¼¥¯¥¨¥é¡¼¤Î¸¡ÃΤò +この振舞いは BSD ソケットの実装とは異なる。 +信頼性の高い動作を行うためには、 +アプリケーションはプロトコルで定義されているネットワークエラーの検知を .BR accept () -¤Î¤¢¤È¤Ë¹Ô¤¤¡¢¤½¤ì¤é¤Î¥¨¥é¡¼¤ò +のあとに行い、それらのエラーを .B EAGAIN -¤ÈƱ¤¸¤è¤¦¤Ë°·¤¤¡¢ºÆ»î¹Ô (retry) ¤ò¹Ô¤¦¤Ù¤­¤Ç¤¢¤ë¡£ +と同じように扱い、再試行 (retry) を行うべきである。 .\"O .BR ENETDOWN , .\"O .BR EPROTO , .\"O .BR ENOPROTOOPT , @@ -368,7 +368,7 @@ Linux .\"O .BR EOPNOTSUPP , .\"O and .\"O .BR ENETUNREACH . -TCP/IP ¤Ç¤Ï¡¢°Ê²¼¤Î¥¨¥é¡¼¤¬³ºÅö¤¹¤ë: +TCP/IP では、以下のエラーが該当する: .BR ENETDOWN , .BR EPROTO , .BR ENOPROTOOPT , @@ -378,54 +378,54 @@ TCP/IP .BR EOPNOTSUPP , .B ENETUNREACH .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .\"O .BR EAGAIN " or " EWOULDBLOCK -.BR EAGAIN " ¤Þ¤¿¤Ï " EWOULDBLOCK +.BR EAGAIN " または " EWOULDBLOCK .\" Actually EAGAIN on Linux .\"O The socket is marked nonblocking and no connections are .\"O present to be accepted. .\"O POSIX.1-2001 allows either error to be returned for this case, .\"O and does not require these constants to have the same value, .\"O so a portable application should check for both possibilities. -¥½¥±¥Ã¥È¤¬ÈóÄä»ß¤Ë¤Ê¤Ã¤Æ¤¤¤Æ¡¢ -¤«¤Ä¼õÉÕ¤±ÂоݤÎÀܳ¤¬Â¸ºß¤·¤Ê¤¤¡£ -POSIX.1-2001 ¤Ï¡¢¤³¤Î¾ì¹ç¤Ë¤É¤Á¤é¤Î¥¨¥é¡¼¤òÊÖ¤¹¤³¤È¤âǧ¤á¤Æ¤ª¤ê¡¢ -¤³¤ì¤é 2 ¤Ä¤ÎÄê¿ô¤¬Æ±¤¸Ãͤò»ý¤Ä¤³¤È¤âµá¤á¤Æ¤¤¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢Î¾Êý¤Î²ÄǽÀ­¤ò -³Îǧ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +ソケットが非停止になっていて、 +かつ受付け対象の接続が存在しない。 +POSIX.1-2001 は、この場合にどちらのエラーを返すことも認めており、 +これら 2 つの定数が同じ値を持つことも求めていない。 +したがって、移植性が必要なアプリケーションでは、両方の可能性を +確認すべきである。 .TP .B EBADF .\"O The descriptor is invalid. -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÉÔÀµ¡£ +ディスクリプタが不正。 .TP .B ECONNABORTED .\"O A connection has been aborted. -Àܳ¤¬Ãæ»ß¤µ¤ì¤¿¡£ +接続が中止された。 .TP .B EFAULT .\"O The .\"O .I addr .\"O argument is not in a writable part of the user address space. .I addr -°ú¤­¿ô¤¬¥æ¡¼¥¶¥¢¥É¥ì¥¹¶õ´Ö¤Î½ñ¤­¹þ¤ß²ÄǽÎΰè¤Ë¤Ê¤¤¡£ +引き数がユーザアドレス空間の書き込み可能領域にない。 .TP .B EINTR .\"O The system call was interrupted by a signal that was caught .\"O before a valid connection arrived; see .\"O .BR signal (7). -Í­¸ú¤ÊÀܳ¤¬ÅþÃ夹¤ëÁ°¤ËÊ᪤µ¤ì¤¿¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤Æ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ÃæÃǤµ¤ì¤¿¡£ +有効な接続が到着する前に捕捉されたシグナルによって +システムコールが中断された。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .\"O Socket is not listening for connections, or .\"O .I addrlen .\"O is invalid (e.g., is negative). -¥½¥±¥Ã¥È¤¬ÀܳÂÔ¤Á¾õÂ֤ǤϤʤ¤¡£¤â¤·¤¯¤Ï¡¢ +ソケットが接続待ち状態ではない。もしくは、 .I addrlen -¤¬ÉÔÀµ¤Ç¤¢¤ë (Î㤨¤Ð¡¢Éé¤Î¾ì¹ç¤Ê¤É)¡£ +が不正である (例えば、負の場合など)。 .TP .B EINVAL .\"O .RB ( accept4 ()) @@ -433,58 +433,58 @@ POSIX.1-2001 .\"O .IR flags . .RB ( accept4 ()) .I flags -¤ËÉÔÀµ¤ÊÃͤ¬»ØÄꤵ¤ì¤Æ¤¤¤ë¡£ +に不正な値が指定されている。 .TP .B EMFILE .\"O The per-process limit of open file descriptors has been reached. -1¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¿ô¤Î¾å¸Â¤Ë㤷¤¿¡£ +1プロセスがオープンできるファイル・ディスクリプタ数の上限に達した。 .TP .B ENFILE .\"O The system limit on the total number of open files has been reached. -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ÎÁí¿ô¤¬¥·¥¹¥Æ¥àÁ´ÂΤξå¸Â¤Ë㤷¤¿¡£ +オープンされたファイルの総数がシステム全体の上限に達した。 .TP .BR ENOBUFS ", " ENOMEM .\"O Not enough free memory. .\"O This often means that the memory allocation is limited by the socket buffer .\"O limits, not by the system memory. -¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£ -¿¤¯¤Î¾ì¹ç¤Ï¡¢¥·¥¹¥Æ¥à¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¤ï¤±¤Ç¤Ï¤Ê¤¯¡¢ -¥½¥±¥Ã¥È¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ¤Ë¤è¤ë¥á¥â¥ê³ä¤êÅö¤Æ¤ÎÀ©¸Â¤Ç¤¢¤ë¡£ +メモリが足りない。 +多くの場合は、システムメモリが足りないわけではなく、 +ソケットバッファの大きさによるメモリ割り当ての制限である。 .TP .B ENOTSOCK .\"O The descriptor references a file, not a socket. -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¥½¥±¥Ã¥È¤Ç¤Ï¤Ê¤¯¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤ë¡£ +ディスクリプタはソケットではなくファイルを参照している。 .TP .B EOPNOTSUPP .\"O The referenced socket is not of type .\"O .BR SOCK_STREAM . -»²¾È¤·¤Æ¤¤¤ë¥½¥±¥Ã¥È¤Î·¿¤¬ +参照しているソケットの型が .B SOCK_STREAM -¤Ç¤Ê¤¤¡£ +でない。 .TP .B EPROTO .\"O Protocol error. -¥×¥í¥È¥³¥ë¡¦¥¨¥é¡¼¡£ +プロトコル・エラー。 .PP .\"O In addition, Linux .\"O .BR accept () .\"O may fail if: -¾åµ­¤Ë²Ã¤¨¤Æ¡¢Linux ¤Î +上記に加えて、Linux の .BR accept () -¤Ï°Ê²¼¤Î¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë: +は以下のエラーで失敗する: .TP .B EPERM .\"O Firewall rules forbid connection. -¥Õ¥¡¥¤¥¢¥¦¥©¡¼¥ë¤Î¥ë¡¼¥ë¤Ë¤è¤êÀܳ¤¬¶Ø»ß¤µ¤ì¤¿¡£ +ファイアウォールのルールにより接続が禁止された。 .PP .\"O In addition, network errors for the new socket and as defined .\"O for the protocol may be returned. .\"O Various Linux kernels can .\"O return other errors such as -¤³¤Î¾¤Ë¡¢¿·¤·¤¤¥½¥±¥Ã¥È¤ËÂФ¹¤ë¥Í¥Ã¥È¥ï¡¼¥¯¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¤³¤È¤â¤¢¤ë¡£ -¤³¤ì¤é¤Ï¤½¤ì¤¾¤ì¤Î¥×¥í¥È¥³¥ë¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤¤¤í¤¤¤í¤Ê Linux ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -°Ê²¼¤Ë¼¨¤¹¤è¤¦¤Ê¥¨¥é¡¼¤òÊÖ¤¹¤³¤È¤â¤¢¤ë¡£ +この他に、新しいソケットに対するネットワークエラーが返されることもある。 +これらはそれぞれのプロトコルで定義されている。 +いろいろな Linux カーネルでは、 +以下に示すようなエラーを返すこともある。 .BR ENOSR , .BR ESOCKTNOSUPPORT , .BR EPROTONOSUPPORT , @@ -493,18 +493,18 @@ POSIX.1-2001 .\"O .B ERESTARTSYS .\"O may be seen during a trace. .B ERESTARTSYS -¤¬¥È¥ì¡¼¥¹¤ÎºÇÃæ¤Ë¸½¤ì¤ë¤³¤È¤â¤¢¤ë¡£ +がトレースの最中に現れることもある。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The .\"O .BR accept4 () .\"O system call is available starting with Linux 2.6.28; .\"O support in glibc is available starting with version 2.10. .BR accept4 () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 2.6.28 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.10 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +システムコールは Linux 2.6.28 以降で利用可能である。 +glibc でのサポートはバージョン 2.10 以降で利用可能である。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O .BR accept (): .\"O POSIX.1-2001, .\"O SVr4, 4.4BSD, @@ -520,19 +520,19 @@ glibc POSIX.1-2001, SVr4, 4.4BSD, .RB ( accept () -¤Ï 4.2BSD ¤Ç½é¤á¤Æ¼ÂÁõ¤µ¤ì¤¿). -.\" BSD ¤Î man ¥Ú¡¼¥¸¤Ë¤Ï¡¢ 5 ¤Ä¤Î¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤¦¤ë¤È½ñ¤«¤ì¤Æ¤¤¤ë -.\" (EBADF, ENOTSOCK, EOPNOTSUPP, EWOULDBLOCK, EFAULT)¡£ -.\" POSIX.1-2001 ¤Ç¤Ï¡¢ +は 4.2BSD で初めて実装された). +.\" BSD の man ページには、 5 つのエラーが返されうると書かれている +.\" (EBADF, ENOTSOCK, EOPNOTSUPP, EWOULDBLOCK, EFAULT)。 +.\" POSIX.1-2001 では、 .\" EAGAIN, EBADF, ECONNABORTED, EINTR, EINVAL, EMFILE, .\" ENFILE, ENOBUFS, ENOMEM, ENOTSOCK, EOPNOTSUPP, EPROTO, EWOULDBLOCK -.\" ¤¬¥¨¥é¡¼¤È¤·¤Æµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -.\" ¤µ¤é¤Ë¡¢SUSv2 ¤Ë¤Ï EFAULT, ENOSR ¤âµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +.\" がエラーとして記述されている。 +.\" さらに、SUSv2 には EFAULT, ENOSR も記述されている。 .\"O .BR accept4 () .\"O is a nonstandard Linux extension. .BR accept4 () -¤ÏÈóɸ½à¤Î Linux ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ +は非標準の Linux による拡張である。 .LP .\"O On Linux, the new socket returned by .\"O .BR accept () @@ -548,37 +548,37 @@ SVr4, 4.4BSD, .\"O of file status flags and always explicitly set all required flags on .\"O the socket returned from .\"O .BR accept (). -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR accept () -¤¬ÊÖ¤¹¿·¤·¤¤¥½¥±¥Ã¥È¤Ï listen ¤ò¹Ô¤Ã¤Æ¤¤¤ë¥½¥±¥Ã¥È¤Î -¥Õ¥¡¥¤¥ë¾õÂ֥ե饰 +が返す新しいソケットは listen を行っているソケットの +ファイル状態フラグ .RB ( O_NONBLOCK -¤ä +や .B O_ASYNC -¤Ê¤É) ¤ò·Ñ¾µ¡Ö¤·¤Ê¤¤¡×¡£ -¤³¤ÎÆ°ºî¤Ïɸ½àŪ¤Ê BSD ¥½¥±¥Ã¥È¤Î¼ÂÁõ¤È¤Ï°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ -.\" ¤¤¤¯¤Ä¤«¼Â¸³¤·¤¿¤È¤³¤í¤Ç¤Ï Tru64 5.1 ¤È HP-UX 11 ¤â -.\" ¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤ò·Ñ¾µ¤·¤Ê¤¤¤è¤¦¤Ç¤¢¤ë¡£ -- MTK Jun 05 -°Ü¿¢À­¤ò¹Íθ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤¬·Ñ¾µ¤µ¤ì¤ë¤«¤É¤¦¤«¤Ï -Á°Äó¤Ë¤»¤º¡¢¾ï¤Ë +など) を継承「しない」。 +この動作は標準的な BSD ソケットの実装とは異なっている。 +.\" いくつか実験したところでは Tru64 5.1 と HP-UX 11 も +.\" ファイル状態フラグを継承しないようである。 -- MTK Jun 05 +移植性を考慮したプログラムではファイル状態フラグが継承されるかどうかは +前提にせず、常に .BR accept () -¤¬ÊÖ¤·¤¿¥½¥±¥Ã¥È¤ËÂФ·¤ÆÁ´¤Æ¤ÎɬÍפʥե饰¤òÌÀ¼¨Åª¤ËÀßÄꤹ¤ë¤è¤¦¤Ë -¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +が返したソケットに対して全ての必要なフラグを明示的に設定するように +すべきである。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O POSIX.1-2001 does not require the inclusion of .\"O .IR , .\"O and this header file is not required on Linux. .\"O However, some historical (BSD) implementations required this header .\"O file, and portable applications are probably wise to include it. -POSIX.1-2001 ¤Ç¤Ï +POSIX.1-2001 では .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ïɬ¿Ü¤È¤µ¤ì¤Æ¤ª¤é¤º¡¢ -Linux ¤Ç¤Ï¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÏɬÍפǤϤʤ¤¡£ -¤·¤«¤·¡¢Îò»ËŪ¤Ë¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¼ÂÁõ (BSD ·Ï) ¤Ç¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬ -ɬÍפǤ¢¤ê¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤ò -¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤Î¤¬¸­ÌÀ¤Ç¤¢¤í¤¦¡£ +のインクルードは必須とされておらず、 +Linux ではこのヘッダファイルは必要ではない。 +しかし、歴史的には、いくつかの実装 (BSD ç³») でこのヘッダファイルが +必要であり、移植性が必要なアプリケーションではこのファイルを +インクルードするのが賢明であろう。 .\"O There may not always be a connection waiting after a .\"O .B SIGIO @@ -591,17 +591,17 @@ Linux .\"O .BR accept () .\"O is called. .B SIGIO -¤¬ÆϤ±¤é¤ì¤¿¸å¤ä¡¢ +が届けられた後や、 .BR select (2) -¤Þ¤¿¤Ï +または .BR poll (2) -¤¬Æɤ߹þ¤ß²Äǽ¥¤¥Ù¥ó¥È¤òÊÖ¤·¤¿¸å¤Ë¡¢ -ɬ¤º¤·¤âÂÔµ¡Ãæ¤ÎÀܳ¤¬¤¢¤ë¤È¤Ï¸Â¤é¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¤½¤ÎÀܳ¤Ï¡¢ +が読み込み可能イベントを返した後に、 +必ずしも待機中の接続があるとは限らない。 +なぜならその接続は、 .BR accept () -¤¬¸Æ¤Ð¤ì¤ëÁ°¤Ë¡¢ÈóƱ´üŪ¤Ê¥Í¥Ã¥È¥ï¡¼¥¯¥¨¥é¡¼¤ä -¾¤Î¥¹¥ì¥Ã¥É¤«¤é¸Æ¤Ð¤ì¤¿ (Ê̤Î) accept ¤Ë¤è¤Ã¤Æ -ºï½ü¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +が呼ばれる前に、非同期的なネットワークエラーや +他のスレッドから呼ばれた (別の) accept によって +削除されているかもしれないからである。 .\"O If this happens then the call will block waiting for the next .\"O connection to arrive. .\"O To ensure that @@ -612,19 +612,19 @@ Linux .\"O .B O_NONBLOCK .\"O flag set (see .\"O .BR socket (7)). -¤³¤Î¾ì¹ç¡¢¤½¤Î +この場合、その .BR accept () -¸Æ¤Ó½Ð¤·¤ÏÄä»ß (block) ¤·¡¢¼¡¤ÎÀܳ¤ÎÅþÃå¤òÂÔ¤Á¤Ä¤Å¤±¤ë¡£ +呼び出しは停止 (block) し、次の接続の到着を待ちつづける。 .BR accept () -¤ËÄä»ß¤ò¹Ô¤ï¤»¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï¡¢°ú¤­¿ô¤ËÅϤ¹¥½¥±¥Ã¥È +に停止を行わせないようにするには、引き数に渡すソケット .I sockfd -¤Ë +に .B O_NONBLOCK -¥Õ¥é¥°¤ò¥»¥Ã¥È¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë +フラグをセットしておく必要がある .RB ( socket (7) -¤ò¸«¤è)¡£ +を見よ)。 .\"O .SS The socklen_t type -.SS socklen_t ·¿ +.SS socklen_t 型 .\"O The third argument of .\"O .BR accept () .\"O was originally declared as an \fIint *\fP (and is that under libc4 and libc5 @@ -632,16 +632,16 @@ Linux .\"O standard wanted to change it into a \fIsize_t *\fP, and that is what it is .\"O for SunOS 5. .BR accept () -¤ÎÂè 3 °ú¤­¿ô¤Ï¡¢¤â¤È¤â¤È \fIint *\fP ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤¿ -(libc4 ¤ä libc5, 4.x BSD, SunOS 4, SGI ¤Ê¤É¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¤½¤¦¤Ê¤Ã¤Æ¤¤¤ë)¡£ -POSIX.1g draft ɸ½à¤Ï¡¢ -¤³¤ì¤ò \fIsize_t *\fP ¤ËÊѹ¹¤·¤è¤¦¤È¤·¡¢SunOS 5 ¤Ç¤Ï¤½¤¦Àë¸À¤µ¤ì¤Æ¤¤¤ë¡£ +の第 3 引き数は、もともと \fIint *\fP と宣言されていた +(libc4 や libc5, 4.x BSD, SunOS 4, SGI など多くのシステムではそうなっている)。 +POSIX.1g draft 標準は、 +これを \fIsize_t *\fP に変更しようとし、SunOS 5 ではそう宣言されている。 .\"O Later POSIX drafts have \fIsocklen_t *\fP, .\"O and so do the Single UNIX Specification and glibc2. -¸å¤Ë POSIX drafts ¤Ë¤Ï \fIsocklen_t *\fP ¤¬´Þ¤Þ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¡¢ -Single UNIX Specification ¤ä glibc2 ¤Ç¤Ï¤³¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ +後に POSIX drafts には \fIsocklen_t *\fP が含まれるようになり、 +Single UNIX Specification や glibc2 ではこのように宣言されるようになった。 .\"O Quoting Linus Torvalds: -Linus Torvald ¤Îȯ¸À¤ò°úÍѤ¹¤ë: +Linus Torvald の発言を引用する: .\" .I fails: only italicizes a single line .\"O "_Any_ sane library _must_ have "socklen_t" be the same size @@ -659,33 +659,33 @@ Linus Torvald .\"O they felt it had to have a named type for some unfathomable reason .\"O (probably somebody didn't like losing face over having done the original .\"O stupid thing, so they silently just renamed their blunder)." -¡Ö¤Þ¤È¤â¤Ê¥é¥¤¥Ö¥é¥ê¤òºî¤ê¤¿¤±¤ì¤Ð¡¢ "socklen_t" -¤Î¥µ¥¤¥º¤Ï int ¤ÈƱ¤¸¤Ë¤·¤Ê¤­¤ã¤Ê¤é¤Ê¤¤¡£ -¤µ¤â¤Ê¤¤¤È BSD ¥½¥±¥Ã¥ÈÁؤòÇ˲õ¤¹¤ë¤³¤È¤Ë¤Ê¤Ã¤Á¤ã¤¦¡£ -POSIX ¤ÏºÇ½é¤³¤¤¤Ä¤ò size_t ¤Ë¤·¤¿¤ó¤Ç¡¢ -¤Ü¤¯¤ÏÈà¤é¤Ëʸ¶ç¤ò¤¬¤Ê¤ê¤¿¤Æ¤¿ -(¿ʬ¤½¤¦¤¤¤¦¿Í¤Ï¾¤Ë¤â¤¤¤¿¤È»×¤¦¡£Â¿¤¯¤Ï¤Ê¤«¤Ã¤¿¤è¤¦¤À¤±¤É)¡£ -¤³¤¤¤Ä¤ò size_t ¤Ë¤¹¤ë¤Î¤Ï´°Á´¤Ë¤¤¤«¤ì¤Æ¤ë¡£ -Î㤨¤Ð 64 ¥Ó¥Ã¥È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢ -size_t ¤¬ "int" ¤ÈƱ¤¸¥µ¥¤¥º¤À¤Ê¤ó¤Æ¤³¤È¤Ï¤Û¤È¤ó¤É¤Ê¤¤¤«¤é¤Í¡£ -¤³¤Î¥µ¥¤¥º¤Ï "int" ¤È Ʊ¤¸¤Ç¤Ê¤­¤ã¡Ø¥À¥á¡Ù¤Ê¤ó¤À¡£ -BSD ¥½¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ã¤Æ¤¤¤¦¤Î¤Ï¤½¤¦¤¤¤¦¤â¤Î¤Ê¤ó¤À¤«¤é¡£ -¤Þ¤¢¤È¤â¤«¤¯ POSIX ¤Î¿Í¤¿¤Á¤â¡¢ -"socklen_t" ¤òºî¤ë¤È¤¤¤¦²ò·èºö¤ò¤Ê¤ó¤È¤«¤Ò¤Í¤ê½Ð¤·¤¿¡£ -¤½¤â¤½¤âºÇ½é¤«¤éÊü¤Ã¤Æ¤ª¤±¤ÐÎɤ«¤Ã¤¿¤ó¤À¤¬¡¢ -¤¤¤¸¤Ã¤Á¤ã¤Ã¤¿°Ê¾å¡¢ -̾Á°ÉÕ¤­¤Î·¿¤ò»ý¤¿¤»¤Ê¤­¤ã¤Ê¤é¤Ê¤¤¡¢¤È»×¤Ã¤¿¤ß¤¿¤¤¤À¤Í¡£ -¤Ê¤ó¤Ç¤«¤Ï¤ï¤«¤ó¤Ê¤¤¤±¤É -(¤­¤Ã¤ÈºÇ½é¤Ë¤ä¤Ã¤Á¤Þ¤Ã¤¿Çϼ¯¤Ê´Ö°ã¤¤¤Ç´é¤ò¤Ä¤Ö¤·¤¿¤¯¤Ê¤«¤Ã¤¿¤«¤é¡¢ -¤³¤Ã¤½¤ê̾Á°¤òÉÕ¤±Âؤ¨¤Æ¼«Ê¬¤¿¤Á¤ÎÂ缺ÇÔ¤ò¤´¤Þ¤«¤½¤¦¤È¤·¤¿¤ó¤À¤í¤¦)¡£¡× +「まともなライブラリを作りたければ、 "socklen_t" +のサイズは int と同じにしなきゃならない。 +さもないと BSD ソケット層を破壊することになっちゃう。 +POSIX は最初こいつを size_t にしたんで、 +ぼくは彼らに文句をがなりたてた +(多分そういう人は他にもいたと思う。多くはなかったようだけど)。 +こいつを size_t にするのは完全にいかれてる。 +例えば 64 ビットアーキテクチャでは、 +size_t が "int" と同じサイズだなんてことはほとんどないからね。 +このサイズは "int" と 同じでなきゃ『ダメ』なんだ。 +BSD ソケットインターフェースっていうのはそういうものなんだから。 +まあともかく POSIX の人たちも、 +"socklen_t" を作るという解決策をなんとかひねり出した。 +そもそも最初から放っておけば良かったんだが、 +いじっちゃった以上、 +名前付きの型を持たせなきゃならない、と思ったみたいだね。 +なんでかはわかんないけど +(きっと最初にやっちまった馬鹿な間違いで顔をつぶしたくなかったから、 +こっそり名前を付け替えて自分たちの大失敗をごまかそうとしたんだろう)。」 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O See .\"O .BR bind (2). .BR bind (2) -»²¾È¡£ +参照。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bind (2), .BR connect (2), .BR listen (2), diff --git a/draft/man2/access.2 b/draft/man2/access.2 index a48c0d9f..db59e8dd 100644 --- a/draft/man2/access.2 +++ b/draft/man2/access.2 @@ -50,39 +50,39 @@ .\" Updated 2007-05-01, Akihiro MOTOKI, LDP v2.46 .\" Updated 2007-09-04, Akihiro MOTOKI, LDP v2.64 .\" -.\"WORD: permission ¥¢¥¯¥»¥¹¸¢ -.\"WORD: privileges ¸¢¸Â -.\"WORD: user ¥æ¡¼¥¶¡¼ -.\"WORD: file system ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à -.\"WORD: object ¥ª¥Ö¥¸¥§¥¯¥È -.\"WORD: symbolic link ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: refer »²¾È¤¹¤ë -.\"WORD: mask ¥Þ¥¹¥¯ -.\"WORD: path ¥Ñ¥¹ -.\"WORD: effective user-ID ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: real user-ID ¼Â¥æ¡¼¥¶¡¼ID -.\"WORD: uid ¥æ¡¼¥¶¡¼ ID -.\"WORD: gid ¥°¥ë¡¼¥× ID -.\"WORD: directory ¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: call ¥³¡¼¥ë -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: memory ¥á¥â¥ê -.\"WORD: dangling »²¾ÈÀè¤Î¤Ê¤¤ +.\"WORD: permission アクセス権 +.\"WORD: privileges 権限 +.\"WORD: user ユーザー +.\"WORD: file system ファイル・システム +.\"WORD: object オブジェクト +.\"WORD: symbolic link シンボリック・リンク +.\"WORD: refer 参照する +.\"WORD: mask マスク +.\"WORD: path パス +.\"WORD: effective user-ID 実効ユーザーID +.\"WORD: real user-ID 実ユーザーID +.\"WORD: uid ユーザー ID +.\"WORD: gid グループ ID +.\"WORD: directory ディレクトリ +.\"WORD: call コール +.\"WORD: kernel カーネル +.\"WORD: memory メモリ +.\"WORD: dangling 参照先のない .\" .TH ACCESS 2 2007-07-10 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O access \- check real user's permissions for a file -access \- ¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¼Â¥æ¡¼¥¶¡¼¤Ç¤Î¥¢¥¯¥»¥¹¸¢¤ò¥Á¥§¥Ã¥¯¤¹¤ë +access \- ファイルに対する実ユーザーでのアクセス権をチェックする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int access(const char *" pathname ", int " mode ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR access () .\"O checks whether the calling process can access the file .\"O .IR pathname . @@ -90,11 +90,11 @@ access \- .\"O .I pathname .\"O is a symbolic link, it is dereferenced. .BR access () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬¥Õ¥¡¥¤¥ë +は、呼び出し元プロセスがファイル .I pathname -¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ +にアクセスできるかどうかをチェックする。 .I pathname -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Î¾ì¹ç¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤ÏŸ³«¤µ¤ì¤ë¡£ +がシンボリック・リンクの場合、シンボリック・リンクは展開される。 .\"O The .\"O .I mode @@ -105,22 +105,22 @@ access \- .\"O or a mask consisting of the bitwise OR of one or more of .\"O .BR R_OK ", " W_OK ", and " X_OK . .I mode -¤Ï¥Á¥§¥Ã¥¯¤ò¹Ô¤¦¥¢¥¯¥»¥¹¸¢¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¡¢¤½¤ÎÃÍ¤Ï -.BR F_OK ¡¢ -.\" »ä¤¬ÃΤäƤ¤¤ë¤¹¤Ù¤Æ¤Î¥·¥¹¥Æ¥à¤Ç F_OK ¤Ï 0 ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤â¤·¤¯¤Ï +はチェックを行うアクセス権を指定するもので、その値は +.BR F_OK 、 +.\" 私が知っているすべてのシステムで F_OK は 0 に定義されている。 +もしくは .BR R_OK ", " W_OK ", " X_OK -¤Î 1¸Ä°Ê¾å¤Î¥Ó¥Ã¥Èñ°Ì¤ÎÏÀÍýϤ«¤é¹½À®¤µ¤ì¤ë¥Þ¥¹¥¯¤Ç¤¢¤ë¡£ +の 1個以上のビット単位の論理和から構成されるマスクである。 .\"O .B F_OK .\"O tests for the existence of the file. .\"O .BR R_OK ", " W_OK ", and " X_OK .\"O test whether the file exists and grants read, write, and .\"O execute permissions, respectively. .B F_OK -¤Ï¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¤«¤É¤¦¤«¤Î¤ß¤ò¸¡ºº¤¹¤ë¡£ +はファイルが存在するかどうかのみを検査する。 .BR R_OK ", " W_OK ", " X_OK -¤Ï¡¢¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Æ¡¢¤½¤ì¤¾¤ìÆɤ߹þ¤ß¡¢½ñ¤­¹þ¤ß¡¢¼Â¹Ô¤Îµö²Ä¤¬¤¢¤ë¤« -¤ò¸¡ºº¤¹¤ë¡£ +は、ファイルが存在して、それぞれ読み込み、書き込み、実行の許可があるか +を検査する。 .\"O The check is done using the calling process's .\"O .I real @@ -130,27 +130,27 @@ access \- .\"O on the file. .\"O This allows set-user-ID programs to .\"O easily determine the invoking user's authority. -¥Á¥§¥Ã¥¯¤Ï¡¢¼ÂºÝ¤ËÁàºî¤¬¹Ô¤ï¤ì¤ëºÝ¤Ë»ÈÍѤµ¤ì¤ë¼Â¸ú (effective) ID ¤Ç¤Ê¤¯¡¢ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -.I "¼Â (real)" -UID ¤È -.I "¼Â (real)" -GID ¤ò»È¤Ã¤Æ¹Ô¤ï¤ì¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢set-user-ID ¥×¥í¥°¥é¥à¤Ç¡¢¥×¥í¥°¥é¥à¤òµ¯Æ°¤¹¤ë¥æ¡¼¥¶¤Î¸¢¸Â¤ò -´Êñ¤Ë·èÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +チェックは、実際に操作が行われる際に使用される実効 (effective) ID でなく、 +呼び出し元プロセスの +.I "実 (real)" +UID と +.I "実 (real)" +GID を使って行われる。 +これにより、set-user-ID プログラムで、プログラムを起動するユーザの権限を +簡単に決定することができる。 .\"O If the calling process is privileged (i.e., its real UID is zero), .\"O then an .\"O .B X_OK .\"O check is successful for a regular file if execute permission .\"O is enabled for any of the file owner, group, or other. -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬Æø¢¥×¥í¥»¥¹ (¤Ä¤Þ¤ê¡¢¥×¥í¥»¥¹¤Î¼Â UID ¤¬ 0) ¤Î¾ì¹ç¡¢ -Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë +呼び出し元プロセスが特権プロセス (つまり、プロセスの実 UID が 0) の場合、 +通常のファイルに対する .B X_OK -¤Î¥Á¥§¥Ã¥¯¤Ï¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¡¢¥°¥ë¡¼¥×¡¢Â¾¿Í¤Î¤¤¤º¤ì¤«¤Î -¼Â¹Ôµö²Ä¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ì¤ÐÀ®¸ù¤¹¤ë¡£ +のチェックは、そのファイルの所有者、グループ、他人のいずれかの +実行許可が有効になっていれば成功する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success (all requested permissions granted), zero is returned. .\"O On error (at least one bit in .\"O .I mode @@ -158,19 +158,19 @@ GID .\"O \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç(Á´¤Æ¤ÎÍ׵ᤵ¤ì¤¿µö²Ä¤¬ÆÀ¤é¤ì¤¿¤é)¡¢¥¼¥í¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç (¾¯¤Ê¤¯¤È¤â°ì¤Ä¤Î +成功した場合(全ての要求された許可が得られたら)、ゼロが返される。 +エラーの場合 (少なくとも一つの .I mode -¤ÇÍ׵ᤵ¤ì¤¿µö²Ä¤¬¤Ê¤«¤Ã¤¿¾ì¹ç¤ä¡¢Â¾¤Î¥¨¥é¡¼¤¬µ¯¤­¤¿¾ì¹ç)¡¢ -\-1 ¤¬ÊÖ¤µ¤ì¡¢ +で要求された許可がなかった場合や、他のエラーが起きた場合)、 +\-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O .BR access () .\"O shall fail if: .BR access () -¤Ï°Ê²¼¤Î¾ì¹ç¤Ë¼ºÇÔ¤¹¤ë¡£ +は以下の場合に失敗する。 .TP .B EACCES .\"O The requested access would be denied to the file, or search permission @@ -178,80 +178,80 @@ GID .\"O .IR pathname . .\"O (See also .\"O .BR path_resolution (7).) -Í׵ᤵ¤ì¤¿¥¢¥¯¥»¥¹¤Ï -¤½¤Î¥Õ¥¡¥¤¥ë¼«¿È¤ËµñÈݤµ¤ì¤¿¤« +要求されたアクセスは +そのファイル自身に拒否されたか .I pathname -¤Ø»ê¤ë¤Þ¤Ç¥Ç¥£¥ì¥¯¥È¥ê¤Î¤¤¤º¤ì¤«¤ËÂФ¹¤ë¸¡º÷µö²Ä -(search permission) ¤¬ÆÀ¤é¤ì¤Ê¤«¤Ã¤¿¡£ +へ至るまでディレクトリのいずれかに対する検索許可 +(search permission) が得られなかった。 .RB ( path_resolution (7) -¤â»²¾È¤Î¤³¤È) +も参照のこと) .TP .B ELOOP .\"O Too many symbolic links were encountered in resolving .\"O .IR pathname . .I pathname -¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ +を解決する際に遭遇したシンボリック・リンクが多過ぎる。 .TP .B ENAMETOOLONG .\"O .I pathname .\"O is too long. .I pathname -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENOENT .\"O A component of .\"O .I pathname .\"O does not exist or is a dangling symbolic link. .I pathname -¤ò¹½À®¤¹¤ë¥Ñ¥¹¤Î¤¤¤º¤ì¤«¤¬¡¢Â¸ºß¤·¤Ê¤¤¤«¡¢ -»²¾ÈÀè¤Î¤Ê¤¤ (dangling) ¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +を構成するパスのいずれかが、存在しないか、 +参照先のない (dangling) シンボリックリンクになっている。 .TP .B ENOTDIR .\"O A component used as a directory in .\"O .I pathname .\"O is not, in fact, a directory. .I pathname -¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬¡¢¼ÂºÝ¤Ë¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +のディレクトリ部分が、実際にはディレクトリでない。 .TP .B EROFS .\"O Write permission was requested for a file on a read-only file system. -Æɤ߹þ¤ßÀìÍÑ (read-only) ¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ËÂФ·¤Æ½ñ¤­¹þ¤ßµö²Ä¤ò -Í׵ᤷ¤¿¡£ +読み込み専用 (read-only) のファイル・システムに対して書き込み許可を +要求した。 .PP .\"O .BR access () .\"O may fail if: .BR access () -¤Ï°Ê²¼¤ÎÍýͳ¤Ë¤è¤ê¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ë¡£ +は以下の理由により失敗することがある。 .TP .B EFAULT .\"O .I pathname .\"O points outside your accessible address space. .I pathname -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がアクセス可能なアドレス空間の外を指している。 .TP .B EINVAL .\"O .I mode .\"O was incorrectly specified. .I mode -¤ËÉÔÀµ¤ÊÃͤ¬»ØÄꤵ¤ì¤¿¡£ +に不正な値が指定された。 .TP .B EIO .\"O An I/O error occurred. -I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +I/O エラーが発生した。 .TP .B ENOMEM .\"O Insufficient kernel memory was available. -¥«¡¼¥Í¥ë¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +カーネルに十分なメモリがない。 .TP .B ETXTBSY .\"O Write access was requested to an executable which is being .\"O executed. -¼Â¹ÔÃæ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ½ñ¤­¹þ¤ß¤òÍ׵ᤷ¤¿¡£ +実行中のファイルに対して書き込みを要求した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .PP .\"O .BR Warning : .\"O Using @@ -261,16 +261,16 @@ SVr4, 4.3BSD, POSIX.1-2001. .\"O .BR open (2) .\"O creates a security hole, because the user might exploit the short time .\"O interval between checking and opening the file to manipulate it. -.BR ·Ù¹ð : -¤¢¤ë¥æ¡¼¥¶¤¬¡¢Î㤨¤Ð +.BR 警告 : +あるユーザが、例えば .BR open (2) -¤Ë¤è¤ë¥¢¥¯¥»¥¹¤¬²Äǽ¤«¤É¤¦¤«¤ò¡¢(¼ÂºÝ¤Ë¹Ô¤¦Á°¤Ë) +によるアクセスが可能かどうかを、(実際に行う前に) .BR access () -¤ò»È¤Ã¤Æ¥Á¥§¥Ã¥¯¤¹¤ë¤Î¤Ï¡¢¥»¥­¥å¥ê¥Æ¥£¥Û¡¼¥ë¤Î¸¶°ø¤Ë¤Ê¤ë¡£ -¤Ê¤¼¤Ê¤é¥Á¥§¥Ã¥¯¤ò¤·¤Æ¤«¤é -¼ÂºÝ¤Ë¥Õ¥¡¥¤¥ë¤Î¥ª¡¼¥×¥óÁàºî¤ò¤¹¤ë´Ö¤Îû¤¤´Ö³Ö¤ò°­ÍѤǤ­¤ë¤«¤é¤Ç¤¢¤ë¡£ +を使ってチェックするのは、セキュリティホールの原因になる。 +なぜならチェックをしてから +実際にファイルのオープン操作をする間の短い間隔を悪用できるからである。 .\"O .BR "For this reason, the use of this system call should be avoided" . -.BR ¤³¤ÎÍýͳ¤¬¤¢¤ë¤Î¤Ç¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤¦¤Î¤ÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +.BR この理由があるので、このシステムコールを使うのは避けるべきである。 .PP .\"O .BR access () .\"O returns an error if any of the access types in @@ -279,12 +279,12 @@ SVr4, 4.3BSD, POSIX.1-2001. .\"O .I mode .\"O are permitted. .I mode -¤Ç»ØÄꤵ¤ì¤¿¥¢¥¯¥»¥¹¼ïÊ̤Τ¤¤º¤ì¤«°ì¤Ä¤Ç¤âµñÈݤµ¤ì¤ë¤È¡¢ -¤¿¤È¤¨ +で指定されたアクセス種別のいずれか一つでも拒否されると、 +たとえ .I mode -¤Ç»ØÄꤵ¤ì¤¿Â¾¤Î¥¢¥¯¥»¥¹¼ïÊ̤¬µö²Ä¤µ¤ì¤¿¤È¤·¤Æ¤â¡¢ +で指定された他のアクセス種別が許可されたとしても、 .BR access () -¤Ï¥¨¥é¡¼¤òÊÖ¤¹¡£ +はエラーを返す。 .PP .\"O If the calling process has appropriate privileges (i.e., is superuser), .\"O POSIX.1-2001 permits implementation to indicate success for an @@ -292,14 +292,14 @@ SVr4, 4.3BSD, POSIX.1-2001. .\"O check even if none of the execute file permission bits are set. .\"O .\" HPU-UX 11 and Tru64 5.1 do this. .\"O Linux does not do this. -POSIX.1-2001 ¤Ç¤Ï¡¢ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬Å¬ÀÚ¤ÊÆø¢¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç -(¤Ä¤Þ¤ê¡¢¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Î¾ì¹ç)¡¢ -¤¿¤È¤¨¥Õ¥¡¥¤¥ë¤Î¼Â¹Ôµö²Ä¥Ó¥Ã¥È¤¬Á´¤¯¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¯¤Æ¤â +POSIX.1-2001 では、 +呼び出し元プロセスが適切な特権を持っている場合 +(つまり、スーパーユーザの場合)、 +たとえファイルの実行許可ビットが全くセットされていなくても .B X_OK -¤Î¥Á¥§¥Ã¥¯¤È¤·¤ÆÀ®¸ù¤òÊÖ¤¹¼ÂÁõ¤¬Ç§¤á¤é¤ì¤Æ¤¤¤ë¡£ -.\" HPU-UX 11 ¤È Tru64 5.1 ¤Ï¤³¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -Linux ¤Ï¤³¤Î¤è¤¦¤Ë¤Ï¤Ê¤Ã¤Æ¤¤¤Ê¤¤¡£ +のチェックとして成功を返す実装が認められている。 +.\" HPU-UX 11 と Tru64 5.1 はこのようになっている。 +Linux はこのようにはなっていない。 .PP .\"O A file is only accessible if the permissions on each of the .\"O directories in the path prefix of @@ -309,13 +309,13 @@ Linux .\"O .BR access () .\"O call will fail, regardless of the permissions on the file itself. .I pathname -¤Î¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤ò¹½À®¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ÎÁ´¤Æ¤ËÂФ·¤Æ -¸¡º÷¥¢¥¯¥»¥¹ (¤¹¤Ê¤ï¤Á¡¢¼Â¹Ô¥¢¥¯¥»¥¹) ¤¬µö²Ä¤µ¤ì¤¿¾ì¹ç¤Ë¤Î¤ß¡¢ -¥Õ¥¡¥¤¥ë¤Ï¥¢¥¯¥»¥¹²Äǽ¤È¤Ê¤ë¡£ -¤¤¤º¤ì¤«¤Î¥Ç¥£¥ì¥¯¥È¥ê¤¬¥¢¥¯¥»¥¹ÉԲĤξì¹ç¡¢ -¥Õ¥¡¥¤¥ë¼«¿È¤Î¥¢¥¯¥»¥¹µö²Ä¤Ë´Ø¤ï¤é¤º¡¢ +のプレフィックスを構成するディレクトリの全てに対して +検索アクセス (すなわち、実行アクセス) が許可された場合にのみ、 +ファイルはアクセス可能となる。 +いずれかのディレクトリがアクセス不可の場合、 +ファイル自身のアクセス許可に関わらず、 .BR access () -¤Ï¼ºÇÔ¤¹¤ë¡£ +は失敗する。 .PP .\"O Only access bits are checked, not the file type or contents. .\"O Therefore, if a directory is found to be writable, @@ -324,24 +324,24 @@ Linux .\"O Similarly, a DOS file may be found to be "executable," but the .\"O .BR execve (2) .\"O call will still fail. -¥¢¥¯¥»¥¹¡¦¥Ó¥Ã¥È¤Î¤ß¤¬¥Á¥§¥Ã¥¯¤µ¤ì¡¢¥Õ¥¡¥¤¥ë¤Î¼ïÎà¤äÆâÍƤϥÁ¥§¥Ã¥¯¤µ¤ì¤Ê¤¤¡£ -½¾¤Ã¤Æ¡¢¥Ç¥£¥ì¥¯¥È¥ê¤¬½ñ¤­¹þ¤ß²Äǽ¤È¤Ê¤Ã¤¿¾ì¹ç¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ë -¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¤³¤È¤¬²Äǽ¤Ê¤³¤È¤ò°ÕÌ£¤¹¤ë¤Î¤Ç¤¢¤ê¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ë -¥Õ¥¡¥¤¥ë¤È¤·¤Æ½ñ¤­¹þ¤à¤³¤È¤¬¤Ç¤­¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -ƱÍÍ¤Ë DOS ¤Î¥Õ¥¡¥¤¥ë¤Ï¡Ö¼Â¹Ô²Äǽ¡×¤ÈȽÃǤµ¤ì¤ë¤¬¡¢ +アクセス・ビットのみがチェックされ、ファイルの種類や内容はチェックされない。 +従って、ディレクトリが書き込み可能となった場合は、ディレクトリに +ファイルを作成することが可能なことを意味するのであり、ディレクトリに +ファイルとして書き込むことができるわけではない。 +同様に DOS のファイルは「実行可能」と判断されるが、 .BR execve (2) -¥³¡¼¥ë¤Ï¼ºÇÔ¤¹¤ë¤À¤í¤¦¡£ +コールは失敗するだろう。 .PP .\"O .BR access () .\"O may not work correctly on NFS file systems with UID mapping enabled, .\"O because UID mapping is done on the server and hidden from the client, .\"O which checks permissions. .BR access () -¤Ï¡¢ UID ¥Þ¥Ã¥Ô¥ó¥°¤ò»ÈÍѤ·¤¿ NFS ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ç¤ÏÀµ¾ï¤Ë -µ¡Ç½¤·¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£¤Ê¤¼¤Ê¤é¤Ð UID ¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ï¥µ¡¼¥Ð¡¼¤Ç -¹Ô¤Ê¤ï¤ì¡¢¸¢Íø¤Î¥Á¥§¥Ã¥¯¤ò¤¹¤ë¥¯¥é¥¤¥¢¥ó¥È¤Ë¤Ï¸«¤¨¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +は、 UID マッピングを使用した NFS ファイル・システムでは正常に +機能しないかもしれない。なぜならば UID のマッピングはサーバーで +行なわれ、権利のチェックをするクライアントには見えないからである。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O In kernel 2.4 (and earlier) there is some strangeness in the handling of .\"O .B X_OK .\"O tests for superuser. @@ -364,29 +364,29 @@ Linux .\"O .\" This behavior appears to have been an implementation accident. .\"O Early 2.6 kernels (up to and including 2.6.3) .\"O also behaved in the same way as kernel 2.4. -¥Ð¡¼¥¸¥ç¥ó 2.4 (¤È¤½¤ì°ÊÁ°) ¤Î¥«¡¼¥Í¥ë¤Ë¤Ï¡¢¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ç¤Î +バージョン 2.4 (とそれ以前) のカーネルには、スーパーユーザでの .B X_OK -¤Î¥Á¥§¥Ã¥¯¤Î°·¤¤¤Ë´ñ̯¤ÊÅÀ¤¬¤¢¤ë¡£ -¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤Ç -(¥æ¡¼¥¶¡¢¥°¥ë¡¼¥×¡¢Â¾¿Í¤Î) Á´¤Æ¤Î¥«¥Æ¥´¥ê¤Ë¤Ä¤¤¤Æ -¼Â¹Ôµö²Ä¤¬¤Ê¤¤¾ì¹ç¡¢ +のチェックの扱いに奇妙な点がある。 +ディレクトリ以外のファイルで +(ユーザ、グループ、他人の) 全てのカテゴリについて +実行許可がない場合、 .BR access () -¤Î¥Á¥§¥Ã¥¯¤Ç \-1 ¤¬ÊÖ¤ë¤Î¤Ï +のチェックで \-1 が返るのは .I mode -¤Ë +に .B X_OK -¤À¤±¤¬»ØÄꤵ¤ì¤¿¤È¤­¤À¤±¤Ç¤¢¤ê +だけが指定されたときだけであり .I mode -¤Ë +に .B R_OK -¤ä +や .B W_OK -¤¬°ì½ï¤Ë»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï +が一緒に指定された場合には .BR access () -¤Ï 0 ¤òÊÖ¤¹¡£ -.\" ¤³¤ÎµóÆ°¤Ï¼ÂÁõ»þ¤Î»ö¸Î¤À¤Ã¤¿¤è¤¦¤Ç¤¢¤ë¡£ -(¥Ð¡¼¥¸¥ç¥ó 2.6.3 °ÊÁ°¤Î) ½é´ü¤Î 2.6 ·Ï¤Î¥«¡¼¥Í¥ë¤â -2.4 ·Ï¤Î¥«¡¼¥Í¥ë¤ÈƱÍͤÎÆ°ºî¤ò¤¹¤ë¡£ +は 0 を返す。 +.\" この挙動は実装時の事故だったようである。 +(バージョン 2.6.3 以前の) 初期の 2.6 系のカーネルも +2.4 系のカーネルと同様の動作をする。 .\"O In kernels before 2.6.20, .\"O .BR access () @@ -398,19 +398,19 @@ Linux .\"O Since kernel 2.6.20, .\"O .BR access () .\"O honors this flag. -2.6.20 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò +2.6.20 より前のカーネルでは、 +ファイルが存在するファイルシステムを .BR mount (2) -¤¹¤ëºÝ¤Ë»ØÄꤵ¤ì¤¿ +する際に指定された .B MS_NOEXEC -¥Õ¥é¥°¤Î¸ú²Ì¤ò¡¢ +フラグの効果を、 .BR access () -¤Ï̵»ë¤·¤Æ¤¤¤¿¡£ -¥«¡¼¥Í¥ë 2.6.20 °Ê¹ß¤Ç¤Ï¡¢ +は無視していた。 +カーネル 2.6.20 以降では、 .BR access () -¤Ï¤³¤Î¥Õ¥é¥°¤ò¹Íθ¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +はこのフラグを考慮するようになっている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chmod (2), .BR chown (2), .BR faccessat (2), diff --git a/draft/man2/acct.2 b/draft/man2/acct.2 index cc3409db..82fa108b 100644 --- a/draft/man2/acct.2 +++ b/draft/man2/acct.2 @@ -38,16 +38,16 @@ .\" Updated and Modified 2004-12-28, Yuichi SATO .\" Updated 2008-08-04, Akihiro MOTOKI .\" -.\"WORD: account ¥¢¥«¥¦¥ó¥È -.\"WORD: process ¥×¥í¥»¥¹ +.\"WORD: account アカウント +.\"WORD: process プロセス .\" .TH ACCT 2 2008-06-16 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O acct \- switch process accounting on or off -acct \- ¥×¥í¥»¥¹¡¦¥¢¥«¥¦¥ó¥È¤Î¥ª¥ó¤È¥ª¥Õ¤òÀڤ괹¤¨¤ë +acct \- プロセス・アカウントのオンとオフを切り換える .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .ad l .nf .B #include @@ -59,15 +59,15 @@ acct \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR acct (): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR acct () .\"O system call enables or disables process accounting. @@ -77,155 +77,155 @@ _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) .\"O \fIfilename\fP as it terminates. .\"O An argument of NULL causes accounting to be turned off. .BR acct () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¥×¥í¥»¥¹¡¦¥¢¥«¥¦¥ó¥È¤ÎÍ­¸ú¡¦Ìµ¸ú¤òÀÚ¤êÂؤ¨¤ë¡£ -´û¸¤Î¥Õ¥¡¥¤¥ë¤Î̾Á°¤ò°ú¤­¿ô¤Ë»ØÄꤷ¤Æ¸Æ¤Ó½Ð¤µ¤ì¤¿¤é¡¢ -¥¢¥«¥¦¥ó¥È (account) ¤¬Í­¸ú¤Ë¤Ê¤ê¡¢ -½ªÎ»¤·¤¿¥×¥í¥»¥¹¤Îµ­Ï¿¤¬ \fIfilename\fP ¤ËÄɵ­¤µ¤ì¤ë¡£ -NULL ¤ò°ú¤­¿ô¤È¤·¤Æ¸Æ¤Ó½Ð¤µ¤ì¤¿¤é¥¢¥«¥¦¥ó¥È¤ò¥ª¥Õ¤Ë¤¹¤ë¡£ +システムコールは、プロセス・アカウントの有効・無効を切り替える。 +既存のファイルの名前を引き数に指定して呼び出されたら、 +アカウント (account) が有効になり、 +終了したプロセスの記録が \fIfilename\fP に追記される。 +NULL を引き数として呼び出されたらアカウントをオフにする。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合は 0 が返される。エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O Write permission is denied for the specified file. -»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤­¹þ¤ßµö²Ä¤¬¤Ê¤¯¡¢½ñ¤­¹þ¤ß¤¬µñÈݤµ¤ì¤¿¡£ +指定したファイルへの書き込み許可がなく、書き込みが拒否された。 .TP .B EACCES .\"O Write permission is denied for the specified file, -»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤­¹þ¤ßµö²Ä¤¬¤Ê¤¯¡¢½ñ¤­¹þ¤ß¤¬µñÈݤµ¤ì¤¿¡£ +指定したファイルへの書き込み許可がなく、書き込みが拒否された。 .\"O or search permission is denied for one of the directories .\"O in the path prefix of .\"O .I filename .\"O (see also .\"O .BR path_resolution (7)), -¤Þ¤¿¤Ï +または .I filename -¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤Î²¿¤ì¤«¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¸¡º÷µö²Ä¤¬¤Ê¤¯µñÈݤµ¤ì¤¿ +のディレクトリ部分の何れかのディレクトリに検索許可がなく拒否された .RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È)¡£ +も参照すること)。 .\"O or .\"O .I filename .\"O is not a regular file. -¤Þ¤¿¤Ï +または .I filename -¤¬Ä̾ï (regular) ¤Î¥Õ¥¡¥¤¥ë¤Ç¤Ê¤¤¡£ +が通常 (regular) のファイルでない。 .TP .B EFAULT .\"O .I filename .\"O points outside your accessible address space. -¥¢¥¯¥»¥¹¤Ç¤­¤ë¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò +アクセスできるアドレス空間の外を .I filename -¤¬»Ø¤·¤Æ¤¤¤ë¡£ +が指している。 .TP .B EIO .\"O Error writing to the file .\"O .IR filename . .I filename -¤Ø¤Î½ñ¤­¹þ¤ß¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +への書き込みにエラーが発生した。 .TP .B EISDIR .\"O .I filename .\"O is a directory. .I filename -¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¡£ +がディレクトリである。 .TP .B ELOOP .\"O Too many symbolic links were encountered in resolving .\"O .IR filename . .I filename -¤Î¼ÂÂΤˤ¿¤É¤êÃ夯¤Þ¤Ç¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¿ô¤¬Â¿¤¹¤®¤ë¡£ +の実体にたどり着くまでのシンボリックリンクの数が多すぎる。 .TP .B ENAMETOOLONG .\"O .I filename .\"O was too long. .I filename -¤¬Ä¹¤¹¤®¤ë¡£ +が長すぎる。 .TP .B ENFILE .\"O The system limit on the total number of open files has been reached. -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ÎÁí¿ô¤¬¥·¥¹¥Æ¥àÀ©¸Â¤Ë㤷¤¿¡£ +オープンされたファイルの総数がシステム制限に達した。 .TP .B ENOENT .\"O The specified filename does not exist. -»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ +指定されたファイルが存在しない。 .TP .B ENOMEM .\"O Out of memory. -¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£ +メモリが足りない。 .TP .B ENOSYS .\"O BSD process accounting has not been enabled when the operating system .\"O kernel was compiled. .\"O The kernel configuration parameter controlling this feature is .\"O .BR CONFIG_BSD_PROCESS_ACCT . -¥«¡¼¥Í¥ë¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤¿»þ¤Ë BSD ¥×¥í¥»¥¹¡¦¥¢¥«¥¦¥ó¥È¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¡£ -¤³¤Îµ¡Ç½¤Ï¥«¡¼¥Í¥ë¤Î¥³¥ó¥Õ¥£¥°¤Î +カーネルをコンパイルした時に BSD プロセス・アカウントが有効になっていない。 +この機能はカーネルのコンフィグの .B CONFIG_BSD_PROCESS_ACCT -¥Ñ¥é¥á¡¼¥¿¤Ë¤è¤Ã¤ÆÀ©¸æ¤µ¤ì¤ë¡£ +パラメータによって制御される。 .TP .B ENOTDIR .\"O A component used as a directory in .\"O .I filename .\"O is not in fact a directory. .I filename -¤ÎÃæ¤Ç¥Ç¥£¥ì¥¯¥È¥ê¤·¤Æ°·¤ï¤ì¤Æ¤¤¤ëÍ×ÁǤ¬¡¢ -¼ÂºÝ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +の中でディレクトリして扱われている要素が、 +実際はディレクトリでない。 .TP .B EPERM .\"O The calling process has insufficient privilege to enable process accounting. -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ë¤Ï¥×¥í¥»¥¹¡¦¥¢¥«¥¦¥ó¥È¤òÍ­¸ú¤Ë¤¹¤ë¤Î¤Ë½½Ê¬¤ÊÆø¢¤¬¤Ê¤¤¡£ +呼び出したプロセスにはプロセス・アカウントを有効にするのに十分な特権がない。 .\"O On Linux the .\"O .B CAP_SYS_PACCT .\"O capability is required. -Linux ¤Ç¤Ï +Linux では .B CAP_SYS_PACCT -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティ (capability) が必要である。 .TP .B EROFS .\"O .I filename .\"O refers to a file on a read-only file system. -Æɤ߹þ¤ß¤À¤±¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î¥Õ¥¡¥¤¥ë¤ò +読み込みだけのファイルシステム上のファイルを .I filename -¤¬»²¾È¤·¤Æ¤¤¤ë¡£ +が参照している。 .TP .B EUSERS .\"O There are no more free file structures or we ran out of memory. -»ÈÍѲÄǽ¤Ê¥Õ¥¡¥¤¥ë¹½Â¤ÂΤ¬¤Ê¤¤¤«¡¢¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£ +使用可能なファイル構造体がないか、メモリが足りない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O SVr4, 4.3BSD (but not POSIX). .\"O .\" SVr4 documents an EBUSY error condition, .\"O .\" but no EISDIR or ENOSYS. Also AIX and HPUX document EBUSY (attempt is made .\"O .\" to enable accounting when it is already enabled), as does Solaris .\"O .\" (attempt is made to enable accounting using the same file that is .\"O .\" currently being used). -SVr4, 4.3BSD (POSIX ¤Ç¤Ï¤Ê¤¤)¡£ -.\" SVr4 ¤Ë¤Ï EBUSY ¥¨¥é¡¼¤¬µ­½Ò¤µ¤ì¤Æ¤¤¤ë¤¬¡¢EISDIR, ENOSYS ¤Ï¤Ê¤¤¡£ -.\" AIX ¤È HPUX ¤Ë¤Ï¡¢EBUSY ¤Ë¤Ä¤¤¤Æ¡Ö¤¹¤Ç¤Ë¥¢¥«¥¦¥ó¥È¤¬Í­¸ú¤Ë¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢ -.\" ¤µ¤é¤ËÍ­¸ú¤Ë¤·¤è¤¦¤È¤·¤¿¡×¤È¤¤¤¦µ­½Ò¤¬¤¢¤ë¡£ -.\" ¤³¤ì¤Ï Solaris ¤Ë¤ª¤±¤ë¡Ö¸½ºß¡¢¥¢¥«¥¦¥ó¥È¤Ë»È¤ï¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤È -.\" Ʊ¤¸¥Õ¥¡¥¤¥ë¤Ç¥¢¥«¥¦¥ó¥È¤òÍ­¸ú¤Ë¤·¤è¤¦¤È¤·¤¿¡×¤È¤¤¤¦µ­½Ò¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +SVr4, 4.3BSD (POSIX ではない)。 +.\" SVr4 には EBUSY エラーが記述されているが、EISDIR, ENOSYS はない。 +.\" AIX と HPUX には、EBUSY について「すでにアカウントが有効にされている場合に、 +.\" さらに有効にしようとした」という記述がある。 +.\" これは Solaris における「現在、アカウントに使われているファイルと +.\" 同じファイルでアカウントを有効にしようとした」という記述と同じである。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O No accounting is produced for programs running when a system crash occurs. .\"O In particular, nonterminating processes are never accounted for. -¥·¥¹¥Æ¥à¤¬¥¯¥é¥Ã¥·¥å¤·¤¿»þ¤Ë¼Â¹ÔÃæ¤À¤Ã¤¿¥×¥í¥°¥é¥à¤Î¥¢¥«¥¦¥ó¥È¤ÏÀ¸À®¤µ¤ì¤Ê¤¤¡£ -Æäˡ¢½ªÎ»¤·¤Ê¤¤¥×¥í¥°¥é¥à¤¬¥¢¥«¥¦¥ó¥È¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ +システムがクラッシュした時に実行中だったプログラムのアカウントは生成されない。 +特に、終了しないプログラムがアカウントされることはない。 .\"O The structure of the records written to the accounting file is described in .\"O .BR acct (5). -¥¢¥«¥¦¥ó¥ÈÍÑ¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¥ì¥³¡¼¥É¤Î¹½Â¤ÂΤˤĤ¤¤Æ¤Ï +アカウント用ファイルに書き込まれるレコードの構造体については .BR acct (5) -¤ËÀâÌÀ¤¬¤¢¤ë¡£ +に説明がある。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .\"O .BR acct (5) .BR acct (5) diff --git a/draft/man2/adjtimex.2 b/draft/man2/adjtimex.2 index 9b37a368..640d5ea4 100644 --- a/draft/man2/adjtimex.2 +++ b/draft/man2/adjtimex.2 @@ -33,47 +33,47 @@ .\" Updated and Modified 2004-12-28, Yuichi SATO .\" Updated 2006-07-16, Akihiro MOTOKI , LDP v2.34 .\" -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: algorithm ¥¢¥ë¥´¥ê¥º¥à -.\"WORD: update ¹¹¿· -.\"WORD: parameter ¥Ñ¥é¥á¡¼¥¿¡¼ -.\"WORD: field ¥Õ¥£¡¼¥ë¥É -.\"WORD: super user ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ -.\"WORD: timer ¥¿¥¤¥Þ¡¼ -.\"WORD: interrupt ³ä¤ê¹þ¤ß -.\"WORD: memory ¥á¥â¥ê +.\"WORD: kernel カーネル +.\"WORD: algorithm アルゴリズム +.\"WORD: update 更新 +.\"WORD: parameter パラメーター +.\"WORD: field フィールド +.\"WORD: super user スーパー・ユーザー +.\"WORD: timer タイマー +.\"WORD: interrupt 割り込み +.\"WORD: memory メモリ .\" .TH ADJTIMEX 2 2004-05-27 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O adjtimex \- tune kernel clock -adjtimex \- ¥«¡¼¥Í¥ë¤Î»þ·×¤òÄ´À°¤¹¤ë +adjtimex \- カーネルの時計を調整する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int adjtimex(struct timex *" "buf" ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Linux uses David L. Mills' clock adjustment algorithm (see RFC\ 1305). .\"O The system call .\"O .BR adjtimex () .\"O reads and optionally sets adjustment parameters for this algorithm. -Linux ¤Ï David L. Mill ¤Î»þ·×Ä´Àᥢ¥ë¥´¥ê¥º¥à¤ò»ÈÍѤ·¤Æ¤¤¤ë -(RFC\ 1305 ¤ò»²¾È)¡£ -¥·¥¹¥Æ¥à¥³¡¼¥ë +Linux は David L. Mill の時計調節アルゴリズムを使用している +(RFC\ 1305 を参照)。 +システムコール .BR adjtimex () -¤Ï¤³¤Î¥¢¥ë¥´¥ê¥º¥à¤ÎÄ´Àá¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤òÆɤ߼è¤Ã¤¿¤ê¡¢ÀßÄꤷ¤¿¤ê¤¹¤ë¡£ +はこのアルゴリズムの調節のパラメーターを読み取ったり、設定したりする。 .\"O It takes a pointer to a .\"O .I timex .\"O structure, updates kernel parameters from field values, .\"O and returns the same structure with current kernel values. .\"O This structure is declared as follows: -¤³¤Î´Ø¿ô¤Ï +この関数は .I timex -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¡¼¤ò¼õ¤±¼è¤ê¡¢¤½¤ÎÃͤǥ«¡¼¥Í¥ë¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ò¹¹¿·¤·¤Æ¡¢ -Ʊ¤¸¹½Â¤ÂΤ˸½ºß¤Î¥«¡¼¥Í¥ë¤ÎÃͤòÊÖ¤¹¡£ -¤³¤Î¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤ë: +構造体へのポインターを受け取り、その値でカーネルのパラメーターを更新して、 +同じ構造体に現在のカーネルの値を返す。 +この構造体は以下のように宣言される: .PP .in +4n .nf @@ -102,10 +102,10 @@ struct timex { .\"O .RI bitwise- or .\"O combination of zero or more of the following bits: .I modes -¥Õ¥£¡¼¥ë¥É¤Ï (ɬÍפ˱þ¤¸¤Æ) ¤É¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤òÀßÄꤹ¤ë¤«·èÄꤹ¤ë¡£ -¤½¤ì¤Ï°Ê²¼¤Î¥Ó¥Ã¥ÈÃͤΠ0 ¸Ä°Ê¾å¤Î -.RI "¥Ó¥Ã¥È " OR -¤«¤é¤Ê¤ë: +フィールドは (必要に応じて) どのパラメーターを設定するか決定する。 +それは以下のビット値の 0 個以上の +.RI "ビット " OR +からなる: .PP .in +4n .nf @@ -123,21 +123,21 @@ struct timex { .\"O Ordinary users are restricted to a zero value for .\"O .IR mode . .\"O Only the superuser may set any parameters. -Ä̾ï¤Î¥æ¡¼¥¶¡¼¤Ï +通常のユーザーは .I mode -¤ÎÃÍ¤Ï 0 ¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë¡£ -¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼¤Î¤ß¤¬Á´¤Æ¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤òÀßÄê¤Ç¤­¤ë¡£ +の値は 0 に制限されている。 +スーパー・ユーザーのみが全てのパラメーターを設定できる。 .br .ne 12v .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR adjtimex () .\"O returns the clock state: -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR adjtimex () -¤Ï -¥¯¥í¥Ã¥¯¤Î¾õÂÖ¤òÊÖ¤¹: +は +クロックの状態を返す: .PP .in +4n .nf @@ -153,19 +153,19 @@ struct timex { .\"O .BR adjtimex () .\"O returns \-1 and sets .\"O .IR errno . -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï +失敗した場合は .BR adjtimex () -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O .I buf .\"O does not point to writable memory. .I buf -¤¬½ñ¤­¹þ¤ß²Äǽ¤Ê¥á¥â¥ê¤ò»Ø¤·¤Æ¤¤¤Ê¤¤¡£ +が書き込み可能なメモリを指していない。 .TP .B EINVAL .\"O An attempt is made to set @@ -184,32 +184,32 @@ struct timex { .\"O .B HZ .\"O is the system timer interrupt frequency. .I buf.offset -¤Ø \-131071 ¡Á +131071 ¤ÎÈϰϰʳ°¤ÎÃͤòÀßÄꤷ¤è¤¦¤È¤·¤¿¤«¡¢ +へ \-131071 〜 +131071 の範囲以外の値を設定しようとしたか、 .I buf.status -¤Ë¾åµ­°Ê³°¤ÎÃͤòÀßÄꤷ¤è¤¦¤È¤·¤¿¤«¡¢ +に上記以外の値を設定しようとしたか、 .I buf.tick -¤Ë +に .RB 900000/ HZ -¡Á +〜 .RB 1100000/ HZ -¤ÎÈϰϰʳ°¤ÎÃͤòÀßÄꤷ¤è¤¦¤È¤·¤¿¡£ -¤³¤³¤Ç +の範囲以外の値を設定しようとした。 +ここで .B HZ -¤Ï¥·¥¹¥Æ¥à¤Î¥¿¥¤¥Þ¡¼³ä¤ê¹þ¤ß¤Î¼þ´ü¤Ç¤¢¤ë¡£ +はシステムのタイマー割り込みの周期である。 .TP .B EPERM .\"O .I buf.mode .\"O is nonzero and the caller does not have sufficient privilege. .I buf.mode -¤¬ 0 ¤Ç¤Ê¤¯¡¢¤«¤Ä¸Æ¤Ó½Ð¤·¸µ¤¬½½Ê¬¤ÊÆø¢¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +が 0 でなく、かつ呼び出し元が十分な特権を持っていない。 .\"O Under Linux the .\"O .B CAP_SYS_TIME .\"O capability is required. -Linux ¤Ç¤Ï +Linux では .B CAP_SYS_TIME -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティが必要である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR adjtimex () .\"O is Linux-specific and should not be used in programs .\"O intended to be portable. @@ -218,14 +218,14 @@ Linux .\"O for a more portable, but less flexible, .\"O method of adjusting the system clock. .BR adjtimex () -¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢ -°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤òÄ´À°¤¹¤ëÊýË¡¤Ç¡¢ -°Ü¿¢À­¤¬¤¢¤ë¤¬¼«Í³ÅÙ¤ÏÎô¤ëÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï +は Linux 特有であり、 +移植を意図したプログラムで使用すべきではない。 +システムクロックを調整する方法で、 +移植性があるが自由度は劣る方法については .BR adjtime (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR settimeofday (2), .BR adjtime (3), .BR capabilities (7), diff --git a/draft/man2/alarm.2 b/draft/man2/alarm.2 index 324ca6cc..c8faaa38 100644 --- a/draft/man2/alarm.2 +++ b/draft/man2/alarm.2 @@ -32,27 +32,27 @@ .\" Translated Wed Feb 22 20:02:18 JST 1997 .\" by HANATAKA Shinya .\" -.\"WORD: alarm ¥¢¥é¡¼¥à -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: clock ¥¯¥í¥Ã¥¯ -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: timer ¥¿¥¤¥Þ¡¼ -.\"WORD: scheduling ¥¹¥±¥¸¥å¡¼¥ê¥ó¥° +.\"WORD: alarm アラーム +.\"WORD: signal シグナル +.\"WORD: clock クロック +.\"WORD: process プロセス +.\"WORD: timer タイマー +.\"WORD: scheduling スケジューリング .\" .TH ALARM 2 2008-06-12 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O alarm \- set an alarm clock for delivery of a signal -alarm \- ¥·¥°¥Ê¥ëÇÛÁ÷¤Î¤¿¤á¤Î¥¢¥é¡¼¥à¡¦¥¯¥í¥Ã¥¯¤òÀßÄꤹ¤ë +alarm \- シグナル配送のためのアラーム・クロックを設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "unsigned int alarm(unsigned int " seconds ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR alarm () .\"O arranges for a .\"O .B SIGALRM @@ -60,11 +60,11 @@ alarm \- .\"O .I seconds .\"O seconds. .BR alarm () -¤Ï +は .B SIGALRM -¥·¥°¥Ê¥ë¤ò +シグナルを .I seconds -Éøå¤Ë¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ËÇÛÁ÷¤¹¤ë¤è¤¦¤Ë¼êÇÛ¤¹¤ë¡£ +秒後に呼び出したプロセスに配送するように手配する。 .\"O If .\"O .I seconds @@ -72,40 +72,40 @@ alarm \- .\"O .BR alarm () .\"O is scheduled. .I seconds -¤¬¥¼¥í¤Ê¤é¤Ð¡¢¿·¤¿¤Ê +がゼロならば、新たな .BR alarm () -¤Ï¼êÇÛ¤µ¤ì¤Ê¤¤¡£ +は手配されない。 .\"O In any event any previously set .\"O .BR alarm () .\"O is canceled. -º£¤Þ¤Ç¤ËÀßÄꤵ¤ì¤Æ¤¤¤¿ +今までに設定されていた .BR alarm () -¤ÏÃæÃǤµ¤ì¤ë¡£ +は中断される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR alarm () .\"O returns the number of seconds remaining until any previously scheduled .\"O alarm was due to be delivered, or zero if there was no previously .\"O scheduled alarm. .BR alarm () -¤Ï°ÊÁ°¤ËͽÄꤵ¤ì¤Æ¤¤¤¿¥¢¥é¡¼¥à¤ÎÇÛÁ÷¤Þ¤Ç¤Î»Ä¤ê»þ´Ö¤òÊÖ¤¹¡£°ÊÁ°¤Ë -¥¢¥é¡¼¥à¤¬Í½Äꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¥¼¥í¤òÊÖ¤¹¡£ +は以前に予定されていたアラームの配送までの残り時間を返す。以前に +アラームが予定されていなければゼロを返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001, 4.3BSD. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .BR alarm () .\"O and .\"O .BR setitimer (2) .\"O share the same timer; calls to one will interfere with use of the .\"O other. .BR alarm () -¤È +と .BR setitimer (2) -¤ÏƱ¤¸¥¿¥¤¥Þ¡¼¤ò¶¦Í­¤·¤Æ¤¤¤ë; ÊÒÊý¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ï¤â¤¦°ìÊý¤Î -»ÈÍѤ˱ƶÁ¤òÍ¿¤¨¤ë¡£ +は同じタイマーを共有している; 片方を呼び出すことはもう一方の +使用に影響を与える。 .PP .\"O .BR sleep (3) .\"O may be implemented using @@ -116,20 +116,20 @@ SVr4, POSIX.1-2001, 4.3BSD. .\"O .BR sleep (3) .\"O is a bad idea. .BR sleep (3) -¤Ï +は .B SIGALRM -¤òÍøÍѤ·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +を利用して実装されているかもしれない。 .BR alarm () -¤È +と .BR sleep (3) -¤òº®¤¼¤Æ»ÈÍѤ·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +を混ぜて使用してはならない。 .\"O Scheduling delays can, as ever, cause the execution of the process to .\"O be delayed by an arbitrary amount of time. -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°(scheduling)¤ÎÃÙ±ä¤Ë¤è¤ê¡¢¥×¥í¥»¥¹¤Î¼Â¹Ô¤ËÉÔÄêÎ̤Π-Ãٱ䤬µ¯¤­¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +スケジューリング(scheduling)の遅延により、プロセスの実行に不定量の +遅延が起きる可能性がある。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR gettimeofday (2), .BR pause (2), .BR select (2), diff --git a/draft/man2/alloc_hugepages.2 b/draft/man2/alloc_hugepages.2 index 38f34045..99a94f18 100644 --- a/draft/man2/alloc_hugepages.2 +++ b/draft/man2/alloc_hugepages.2 @@ -28,15 +28,15 @@ .\" Translated 2004-06-06, Yuichi SATO .\" Updated 2007-06-11, Akihiro MOTOKI , LDP v2.54 .\" -.\"WORD: huge page ¥Ò¥å¡¼¥¸¥Ú¡¼¥¸ +.\"WORD: huge page ヒュージページ .\" .TH ALLOC_HUGEPAGES 2 2007-05-31 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O alloc_hugepages, free_hugepages \- allocate or free huge pages -alloc_hugepages, free_hugepages \- Â礭¤Ê¥µ¥¤¥º¤Î¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤È²òÊü¤ò¹Ô¤¦ +alloc_hugepages, free_hugepages \- 大きなサイズのページの割り当てと解放を行う .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .BI "void *alloc_hugepages(int " key ", void *" addr ", size_t " len , .BI " int " prot ", int " flag ); @@ -47,30 +47,30 @@ alloc_hugepages, free_hugepages \- .\" asmlinkage int sys_free_hugepages(unsigned long addr); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The system calls .\"O .BR alloc_hugepages () .\"O and .\"O .BR free_hugepages () .\"O were introduced in Linux 2.5.36 and removed again in 2.5.54. -¥·¥¹¥Æ¥à¥³¡¼¥ë +システムコール .BR alloc_hugepages () -¤È +と .BR free_hugepages () -¤Ï Linux 2.5.36 ¤ÇƳÆþ¤µ¤ì¡¢2.5.54 ¤ÇºÆ¤Óºï½ü¤µ¤ì¤¿¡£ +は Linux 2.5.36 で導入され、2.5.54 で再び削除された。 .\"O They existed only on i386 and ia64 (when built with .\"O .BR CONFIG_HUGETLB_PAGE ). -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï i386 ¤È ia64 ¤Î¤ß¤Ç -(¤«¤Ä +これらのシステムコールは i386 と ia64 のみで +(かつ .B CONFIG_HUGETLB_PAGE -¤ò»ØÄꤷ¤Æ¥Ó¥ë¥É¤µ¤ì¤¿¾ì¹ç¤Ë) ¸ºß¤¹¤ë¡£ +を指定してビルドされた場合に) 存在する。 .\"O In Linux 2.4.20 the syscall numbers exist, .\"O but the calls fail with the error .\"O .BR ENOSYS . -Linux 2.4.20 ¤Ç¤Ï syscall Èֹ椬¸ºß¤¹¤ë¤¬¡¢ -¸Æ¤Ó½Ð¤¹¤È¥¨¥é¡¼ +Linux 2.4.20 では syscall 番号が存在するが、 +呼び出すとエラー .B ENOSYS -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .LP .\"O On i386 the memory management hardware knows about ordinary pages (4 KiB) .\"O and huge pages (2 or 4 MiB). @@ -78,14 +78,14 @@ Linux 2.4.20 .\"O several sizes. .\"O These system calls serve to map huge pages into the .\"O process's memory or to free them again. -i386 ¤Ç¤Ï¡¢¥á¥â¥ê´ÉÍý¥Ï¡¼¥É¥¦¥§¥¢¤ÏÄ̾ï¤Î¥Ú¡¼¥¸ (4 KiB) ¤È -Â礭¤Ê¥µ¥¤¥º¤Î¥Ú¡¼¥¸ (°Ê²¼¡¢¥Ò¥å¡¼¥¸¥Ú¡¼¥¸; 2MiB ¤Þ¤¿¤Ï 4 MiB) ¤ò -°·¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -ƱÍͤˡ¢ia64 ¤â¤¤¤¯¤Ä¤«¤Î¥µ¥¤¥º¤Î¥Ò¥å¡¼¥¸¥Ú¡¼¥¸¤ò°·¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¥Ò¥å¡¼¥¸¥Ú¡¼¥¸¤ò¥×¥í¥»¥¹¤Î¥á¥â¥ê¤Ë¥Þ¥Ã¥×¤·¤¿¤ê¡¢ -ºÆ¤Ó²òÊü¤·¤¿¤ê¤¹¤ë¡£ +i386 では、メモリ管理ハードウェアは通常のページ (4 KiB) と +大きなサイズのページ (以下、ヒュージページ; 2MiB または 4 MiB) を +扱うことができる。 +同様に、ia64 もいくつかのサイズのヒュージページを扱うことができる。 +これらのシステムコールは、ヒュージページをプロセスのメモリにマップしたり、 +再び解放したりする。 .\"O Huge pages are locked into memory, and are not swapped. -¥Ò¥å¡¼¥¸¥Ú¡¼¥¸¤Ï¥á¥â¥êÆâ¤Ë¥í¥Ã¥¯¤µ¤ì¡¢¥¹¥ï¥Ã¥×¤µ¤ì¤Ê¤¤¡£ +ヒュージページはメモリ内にロックされ、スワップされない。 .LP .\"O The .\"O .I key @@ -93,14 +93,14 @@ i386 .\"O When zero the pages are private, and .\"O not inherited by children. .I key -°ú¤­¿ô¤Ï¼±Ê̻ҤǤ¢¤ë¡£ -0 ¤Î¾ì¹ç¡¢¥Ú¡¼¥¸¤ÏÈó¸ø³«¤Ë¤Ê¤ê¡¢»Ò¥×¥í¥»¥¹¤Ë·Ñ¾µ¤µ¤ì¤Ê¤¤¡£ +引き数は識別子である。 +0 の場合、ページは非公開になり、子プロセスに継承されない。 .\"O When positive the pages are shared with other applications using the same .\"O .IR key , .\"O and inherited by child processes. -Àµ¤Î¾ì¹ç¡¢¥Ú¡¼¥¸¤ÏƱ¤¸ +正の場合、ページは同じ .I key -¤ò»È¤¦Â¾¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤È¶¦Í­¤µ¤ì¡¢»Ò¥×¥í¥»¥¹¤Ë·Ñ¾µ¤µ¤ì¤ë¡£ +を使う他のアプリケーションと共有され、子プロセスに継承される。 .LP .\"O The .\"O .I addr @@ -111,35 +111,35 @@ i386 .\"O .BR alloc_hugepages (). .\"O (The memory is first actually freed when all users have released it.) .BR free_hugepages () -¤Î +の .I addr -°ú¤­¿ô¤Ï¡¢¤É¤Î¥Ú¡¼¥¸¤ò²òÊü¤¹¤ë¤«¤ò»ØÄꤹ¤ë: +引き数は、どのページを解放するかを指定する: .I addr -¤Ï +は .BR alloc_hugepages () -¤Î¸Æ¤Ó½Ð¤·¤ÎÊÖ¤êÃͤǤ¢¤ë -(Á´¤Æ¤Î¥æ¡¼¥¶¤¬¥á¥â¥ê¤ò²òÊü¤·¤¿¤È¤­¤Ë¡¢ -¤½¤Î¥á¥â¥ê¤Ï½é¤á¤Æ¼ÂºÝ¤Ë²òÊü¤µ¤ì¤ë)¡£ +の呼び出しの返り値である +(全てのユーザがメモリを解放したときに、 +そのメモリは初めて実際に解放される)。 .\"O The .\"O .I addr .\"O argument of .\"O .BR alloc_hugepages () .\"O is a hint, that the kernel may or may not follow. .BR alloc_hugepages () -¤Î +の .I addr -°ú¤­¿ô¤Ï¥Ò¥ó¥È¤Ç¤¢¤ê¡¢¥«¡¼¥Í¥ë¤Ï¤½¤ì¤Ë½¾¤¦¤«¤â¤·¤ì¤Ê¤¤¤·¡¢ -½¾¤ï¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ +引き数はヒントであり、カーネルはそれに従うかもしれないし、 +従わないかもしれない。 .\"O Addresses must be properly aligned. -¥¢¥É¥ì¥¹¤ÏÀµ¤·¤¯ÇÛÃÖ¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +アドレスは正しく配置されなければならない。 .LP .\"O The .\"O .I len .\"O argument is the length of the required segment. .\"O It must be a multiple of the huge page size. .I len -°ú¤­¿ô¤ÏÍ׵ᤵ¤ì¤¿¥»¥°¥á¥ó¥È¤ÎŤµ¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï¥Ò¥å¡¼¥¸¥Ú¡¼¥¸¤Î¥µ¥¤¥º¤ÎÇÜ¿ô¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数は要求されたセグメントの長さである。 +これはヒュージページのサイズの倍数にしなければならない。 .LP .\"O The .\"O .I prot @@ -149,12 +149,12 @@ i386 .\"O .BR PROT_WRITE , .\"O .BR PROT_EXEC . .I prot -°ú¤­¿ô¤Ï¥»¥°¥á¥ó¥È¤Î¥á¥â¥êÊݸî¤ò»ØÄꤹ¤ë¡£ -¤³¤ì¤Ï +引き数はセグメントのメモリ保護を指定する。 +これは .BR PROT_READ , .BR PROT_WRITE , .B PROT_EXEC -¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¡£ +のいずれかである。 .LP .\"O The .\"O .I flag @@ -171,26 +171,26 @@ i386 .\"O .B ENOENT .\"O is returned when no segment with the given key exists. .I key -¤¬Àµ¤Ç¤Ê¤¤¸Â¤ê¡¢ +が正でない限り、 .I flag -°ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ +引き数は無視される。 .I key -¤¬Àµ¤Ç¡¢¤«¤Ä +が正で、かつ .I flag -¤¬ +が .B IPC_CREAT -¤Ç¤¢¤ê¡¢¤«¤Ä»ØÄꤵ¤ì¤¿ +であり、かつ指定された .I key -¤Ç (¥»¥°¥á¥ó¥È¤¬) ²¿¤â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢ -¿·¤·¤¤¥Ò¥å¡¼¥¸¥Ú¡¼¥¸¥»¥°¥á¥ó¥È¤¬ºîÀ®¤µ¤ì¤ë¡£ +で (セグメントが) 何も存在しない場合、 +新しいヒュージページセグメントが作成される。 .I flag -¤¬ÀßÄꤵ¤ì¤Æ¤ª¤é¤º¡¢¤«¤Ä»ØÄꤵ¤ì¤¿ +が設定されておらず、かつ指定された .I key -¤Î¥»¥°¥á¥ó¥È¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢ +のセグメントが存在しない場合、 .B ENOENT -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR alloc_hugepages () .\"O returns the allocated virtual address, and @@ -199,43 +199,43 @@ i386 .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR alloc_hugepages () -¤Ï³ä¤êÅö¤Æ¤é¤ì¤¿²¾ÁÛ¥¢¥É¥ì¥¹¤òÊÖ¤·¡¢ +は割り当てられた仮想アドレスを返し、 .BR free_hugepages () -¤Ï 0 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。 +失敗した場合、\-1 を返し、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B ENOSYS .\"O The system call is not supported on this kernel. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +このシステムコールはカーネルでサポートされていない。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .TP .I /proc/sys/vm/nr_hugepages .\"O Number of configured hugetlb pages. .\"O This can be read and written. -ÀßÄꤵ¤ì¤¿ hugetlb ¥Ú¡¼¥¸¤Î¿ô¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤ÏÆɤ߽ñ¤­¤Ç¤­¤ë¡£ +設定された hugetlb ページの数。 +このファイルは読み書きできる。 .TP .I /proc/meminfo .\"O Gives info on the number of configured hugetlb pages and on their size .\"O in the three variables HugePages_Total, HugePages_Free, Hugepagesize. -ÀßÄꤵ¤ì¤¿ hugetlb ¥Ú¡¼¥¸¤Î¿ô¤È¡¢ -3 ¤Ä¤ÎÊÑ¿ô HugePages_Total, HugePages_Free, Hugepagesize ¤Î -¥µ¥¤¥º¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÄ󶡤¹¤ë¡£ +設定された hugetlb ページの数と、 +3 つの変数 HugePages_Total, HugePages_Free, Hugepagesize の +サイズについての情報を提供する。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These calls are specific to Linux on Intel processors, and should not be .\"O used in programs intended to be portable. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Intel ¥×¥í¥»¥Ã¥µ¾å¤Î Linux ¤Ë¸ÇÍ­¤Î¤â¤Î¤Ç¤¢¤ê¡¢ -°Ü¿¢À­¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç»È¤¦¤Ù¤­¤Ç¤Ê¤¤¡£ +このシステムコールは Intel プロセッサ上の Linux に固有のものであり、 +移植性が必要なプログラムで使うべきでない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O These system calls are gone; .\"O they existed only in Linux 2.5.36 through to 2.5.54. .\"O Now the hugetlbfs file system can be used instead. @@ -243,23 +243,23 @@ i386 .\"O using .\"O .BR mmap (2) .\"O to map files in this virtual file system. -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¤Ê¤¯¤Ê¤Ã¤¿¡£ -¤³¤ì¤é¤Ï Linux 2.5.36 ¤«¤é 2.5.54 ¤Ë¤Î¤ß¸ºß¤¹¤ë¡£ -Âå¤ï¤ê¤Ëº£¤Ï hugetlbfs ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -(CPU ¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç) ¥Ò¥å¡¼¥¸¥Ú¡¼¥¸¤ò»ý¤Ä¥á¥â¥ê¤Ï¡¢ +これらのシステムコールはなくなった。 +これらは Linux 2.5.36 から 2.5.54 にのみ存在する。 +代わりに今は hugetlbfs ファイルシステムを使うことができる。 +(CPU がサポートしている場合) ヒュージページを持つメモリは、 .BR mmap (2) -¤ò»È¤Ã¤Æ¤³¤Î²¾ÁÛ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¥Õ¥¡¥¤¥ë¤ò¥Þ¥Ã¥×¤¹¤ë¤³¤È¤Ç¼èÆÀ¤Ç¤­¤ë¡£ +を使ってこの仮想ファイルシステムでファイルをマップすることで取得できる。 .LP .\"O The maximal number of huge pages can be specified using the .\"O .B hugepages= .\"O boot parameter. -¥Ò¥å¡¼¥¸¥Ú¡¼¥¸¤ÎºÇÂç¿ô¤Ï¡¢ +ヒュージページの最大数は、 .B hugepages= -µ¯Æ°¥Ñ¥é¥á¡¼¥¿¤ò»È¤Ã¤Æ»ØÄê¤Ç¤­¤ë¡£ +起動パラメータを使って指定できる。 .\"O .\"O .\" requires CONFIG_HUGETLB_PAGE (under "Processor type and features") .\"O .\" and CONFIG_HUGETLBFS (under "Filesystems"). -.\" ("Processor type and features" °Ê²¼¤Î) CONFIG_HUGETLB_PAGE -.\" ("Filesystems" °Ê²¼¤Î).CONFIG_HUGETLBFS ¤¬É¬ÍפǤ¢¤ë¡£ +.\" ("Processor type and features" 以下の) CONFIG_HUGETLB_PAGE +.\" ("Filesystems" 以下の).CONFIG_HUGETLBFS が必要である。 .\" mount -t hugetlbfs hugetlbfs /huge .\" SHM_HUGETLB diff --git a/draft/man2/arch_prctl.2 b/draft/man2/arch_prctl.2 index b2bc1a79..0f21b82f 100644 --- a/draft/man2/arch_prctl.2 +++ b/draft/man2/arch_prctl.2 @@ -30,11 +30,11 @@ .\" .TH ARCH_PRCTL 2 2007-12-26 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O arch_prctl \- set architecture-specific thread state -arch_prctl \- ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¸ÇÍ­¤Î¥¹¥ì¥Ã¥É¾õÂÖ¤òÀßÄꤹ¤ë +arch_prctl \- アーキテクチャ固有のスレッド状態を設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .br @@ -43,12 +43,12 @@ arch_prctl \- .BI "int arch_prctl(int " code ", unsigned long *" addr ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR arch_prctl () .\"O function sets architecture-specific process or thread state. .BR arch_prctl () -´Ø¿ô¤Ï¥¢¡¼¥­¥Æ¥¯¥Á¥ã¸ÇÍ­¤Î¥×¥í¥»¥¹¾õÂÖ¤Þ¤¿¤Ï¥¹¥ì¥Ã¥É¾õÂÖ¤òÀßÄꤹ¤ë¡£ +関数はアーキテクチャ固有のプロセス状態またはスレッド状態を設定する。 .\"O .I code .\"O selects a subfunction .\"O and passes argument @@ -61,18 +61,18 @@ arch_prctl \- .\"O .IR "unsigned long *" , .\"O for the "get" operations. .I code -¤ÏÉûµ¡Ç½¤òÁªÂò¤·¡¢°ú¤­¿ô +は副機能を選択し、引き数 .I addr -¤òÉûµ¡Ç½¤ËÅϤ¹¡£ +を副機能に渡す。 .I addr -¤Ï¡¢"set" Áàºî¤Ç¤Ï +は、"set" 操作では .I "unsigned long" -¤È¤·¤Æ¡¢"get" Áàºî¤Ç¤Ï +として、"get" 操作では .I "unsigned long *" -¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +として解釈される。 .LP .\"O Sub functions for x86-64 are: -x86-64 ¤ÎÉûµ¡Ç½¤Ï°Ê²¼¤ÎÄ̤ê: +x86-64 の副機能は以下の通り: .TP .B ARCH_SET_FS .\"O Set the 64-bit base for the @@ -80,9 +80,9 @@ x86-64 .\"O register to .\"O .IR addr . .I FS -¥ì¥¸¥¹¥¿¤Î 64 ¥Ó¥Ã¥È¥Ù¡¼¥¹¤ò +レジスタの 64 ビットベースを .I addr -¤ËÀßÄꤹ¤ë¡£ +に設定する。 .TP .B ARCH_GET_FS .\"O Return the 64-bit base value for the @@ -91,13 +91,13 @@ x86-64 .\"O .I unsigned long .\"O pointed to by .\"O .IR addr . -¸½ºß¤Î¥¹¥ì¥Ã¥É¤Î +現在のスレッドの .I FS -¥ì¥¸¥¹¥¿¤Î 64 ¥Ó¥Ã¥È¥Ù¡¼¥¹Ãͤò¡¢ +レジスタの 64 ビットベース値を、 .I addr -¤¬»Ø¤¹ +が指す .I unsigned long -¤ÎÎΰè¤Ë³ÊǼ¤¹¤ë¡£ +の領域に格納する。 .TP .B ARCH_SET_GS .\"O Set the 64-bit base for the @@ -105,9 +105,9 @@ x86-64 .\"O register to .\"O .IR addr . .I GS -¥ì¥¸¥¹¥¿¤Î 64 ¥Ó¥Ã¥È¥Ù¡¼¥¹¤ò +レジスタの 64 ビットベースを .I addr -¤ËÀßÄꤹ¤ë¡£ +に設定する。 .TP .B ARCH_GET_GS .\"O Return the 64-bit base value for the @@ -116,71 +116,71 @@ x86-64 .\"O .I unsigned long .\"O pointed to by .\"O .IR addr . -¸½ºß¤Î¥¹¥ì¥Ã¥É¤Î +現在のスレッドの .I GS -¥ì¥¸¥¹¥¿¤Î 64 ¥Ó¥Ã¥È¥Ù¡¼¥¹Ãͤò¡¢ +レジスタの 64 ビットベース値を、 .I addr -¤¬»Ø¤¹ +が指す .I unsigned long -¤ÎÎΰè¤Ë³ÊǼ¤¹¤ë¡£ +の領域に格納する。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR arch_prctl () .\"O returns 0; on error, \-1 is returned, and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR arch_prctl () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤ò¥¨¥é¡¼¤ò¼¨¤¹ÃͤËÀßÄꤹ¤ë¡£ +をエラーを示す値に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O .I addr .\"O points to an unmapped address or is outside the process address space. .I addr -¤¬¥¢¥ó¥Þ¥Ã¥×¤µ¤ì¤¿¥¢¥É¥ì¥¹¤ò»Ø¤·¤Æ¤¤¤ë¤«¡¢¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤Ë¤¢¤ë¡£ +がアンマップされたアドレスを指しているか、プロセスのアドレス空間の外にある。 .TP .B EINVAL .\"O .I code .\"O is not a valid subcommand. .I code -¤¬Í­¸ú¤Ê¥µ¥Ö¥³¥Þ¥ó¥É¤Ç¤Ê¤¤¡£ +が有効なサブコマンドでない。 .TP .B EPERM .\"O .I addr .\"O is outside the process address space. .I addr -¤¬¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤Ë¤¢¤ë¡£ +がプロセスのアドレス空間の外にある。 .\"O .\" .SH AUTHOR -.\" .SH Ãø¼Ô +.\" .SH 著者 .\"O .\" Man page written by Andi Kleen. -.\" ¤³¤Î man ¥Ú¡¼¥¸¤Ï Andi Kleen ¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤¿¡£ +.\" この man ページは Andi Kleen によって書かれた。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR arch_prctl () .\"O is a Linux/x86-64 extension and should not be used in programs intended .\"O to be portable. .BR arch_prctl () -¤Ï Linux/x86-64 ³ÈÄ¥¤Ç¤¢¤ê¡¢°Ü¿¢À­¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï»È¤¦¤Ù¤­¤Ç¤Ê¤¤¡£ +は Linux/x86-64 拡張であり、移植性を意図したプログラムでは使うべきでない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .BR arch_prctl () .\"O is only supported on Linux/x86-64 for 64-bit programs currently. .BR arch_prctl () -¤Ï¸½ºß¤Î¤È¤³¤í Linux/x86-64 ¾å¤Î 64 ¥Ó¥Ã¥È¥×¥í¥°¥é¥à¤Ç¤Î¤ß¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +は現在のところ Linux/x86-64 上の 64 ビットプログラムでのみサポートされている。 .\"O The 64-bit base changes when a new 32-bit segment selector is loaded. -¿·¤·¤¤ 32 ¥Ó¥Ã¥È¥»¥°¥á¥ó¥È¥»¥ì¥¯¥¿¤¬¥í¡¼¥É¤µ¤ì¤¿¾ì¹ç¡¢ -64 ¥Ó¥Ã¥È¥Ù¡¼¥¹¤ÏÊѹ¹¤µ¤ì¤ë¡£ +新しい 32 ビットセグメントセレクタがロードされた場合、 +64 ビットベースは変更される。 .\"O .B ARCH_SET_GS .\"O is disabled in some kernels. .B ARCH_SET_GS -¤¬Ìµ¸ú¤Ë¤µ¤ì¤Æ¤¤¤ë¥«¡¼¥Í¥ë¤â¤¢¤ë¡£ +が無効にされているカーネルもある。 .\"O Context switches for 64-bit segment bases are rather expensive. .\"O It may be a faster alternative to set a 32-bit base using a @@ -189,46 +189,46 @@ x86-64 .\"O or using the .\"O .BR set_thread_area (2) .\"O system call in kernel 2.5 or later. -64 ¥Ó¥Ã¥È¥»¥°¥á¥ó¥È¥Ù¡¼¥¹¤Î¥³¥ó¥Æ¥­¥¹¥È¥¹¥¤¥Ã¥Á¤Ï¡¢¤ä¤ä¹â²Á¤Ç¤¢¤ë¡£ -LDT ¤ò +64 ビットセグメントベースのコンテキストスイッチは、やや高価である。 +LDT を .BR modify_ldt (2) -¤ÇÀßÄꤷ¤Æ¥»¥°¥á¥ó¥È¥»¥ì¥¯¥¿¤ò»È¤¦¤«¡¢ -(¥«¡¼¥Í¥ë 2.5 °Ê¹ß¤Î) +で設定してセグメントセレクタを使うか、 +(カーネル 2.5 以降の) .BR set_thread_area (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤¦¤³¤È¤Ë¤è¤ê¡¢ -32 ¥Ó¥Ã¥È¥Ù¡¼¥¹¤òÀßÄꤹ¤ë¤È¤¤¤¦¹â®¤ÊÂåÂؼêÃʤ⤢¤ë¡£ +システムコールを使うことにより、 +32 ビットベースを設定するという高速な代替手段もある。 .\"O .BR arch_prctl () .\"O is only needed when you want to set bases that are larger than 4GB. -4GB ¤è¤êÂ礭¤Ê¥Ù¡¼¥¹¤òÀßÄꤷ¤¿¤¤¾ì¹ç¤Ë¤Î¤ß¡¢ +4GB より大きなベースを設定したい場合にのみ、 .BR arch_prctl () -¤¬É¬ÍפǤ¢¤ë¡£ +が必要である。 .\"O Memory in the first 2GB of address space can be allocated by using .\"O .BR mmap (2) .\"O with the .\"O .B MAP_32BIT .\"O flag. -¥¢¥É¥ì¥¹¶õ´Ö¤ÎºÇ½é¤Î 2GB ¤Ë¤¢¤ë¥á¥â¥ê¤Ï¡¢ +アドレス空間の最初の 2GB にあるメモリは、 .BR mmap (2) -¤Ë +に .B MAP_32BIT -¥Õ¥é¥°¤ò»ØÄꤷ¤Æ³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +フラグを指定して割り当てることができる。 .\"O As of version 2.7, glibc provides no prototype for .\"O .BR arch_prctl (). .\"O You have to declare it yourself for now. .\"O This may be fixed in future glibc versions. -¥Ð¡¼¥¸¥ç¥ó 2.7 »þÅÀ¤Ç¤Ï¡¢glibc ¤Ë¤Ï +バージョン 2.7 時点では、glibc には .BR arch_prctl () -¤Î¥×¥í¥È¥¿¥¤¥×¤¬¤Ê¤¤¡£ -º£¤Î¤È¤³¤í¥æ¡¼¥¶¤Ï¼«Ê¬¼«¿È¤ÇÀë¸À¤¹¤ëɬÍפ¬¤¢¤ë¡£ -¤³¤ì¤Ï¾­Íè¤Î glibc ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç½¤Àµ¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +のプロトタイプがない。 +今のところユーザは自分自身で宣言する必要がある。 +これは将来の glibc のバージョンで修正されるかもしれない。 .\"O .I FS .\"O may be already used by the threading library. .I FS -¤Ï¥¹¥ì¥Ã¥É¥é¥¤¥Ö¥é¥ê¤Ç´û¤Ë»È¤ï¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +はスレッドライブラリで既に使われているかもしれない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mmap (2), .BR modify_ldt (2), .BR prctl (2), diff --git a/draft/man2/bdflush.2 b/draft/man2/bdflush.2 index 1ac840fa..099aadc5 100644 --- a/draft/man2/bdflush.2 +++ b/draft/man2/bdflush.2 @@ -33,21 +33,21 @@ .\" Updated & Modified Thu Feb 3 03:15:15 JST 2005 .\" by Yuichi SATO .\" -.\"WORD: buffer-dirty-flush ¥Ð¥Ã¥Õ¥¡¡¼¡¦¥À¡¼¥Æ¥£¡¼¡¦¥Õ¥é¥Ã¥·¥å -.\"WORD: daemon ¥Ç¡¼¥â¥ó -.\"WORD: flush ¥Õ¥é¥Ã¥·¥å -.\"WORD: tune Ä´À° -.\"WORD: long word ¥í¥ó¥°¡¦¥ï¡¼¥É -.\"WORD: parameter ¥Ñ¥é¥á¡¼¥¿¡¼ -.\"WORD: source file ¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë +.\"WORD: buffer-dirty-flush バッファー・ダーティー・フラッシュ +.\"WORD: daemon デーモン +.\"WORD: flush フラッシュ +.\"WORD: tune 調整 +.\"WORD: long word ロング・ワード +.\"WORD: parameter パラメーター +.\"WORD: source file ソース・ファイル .\" .TH BDFLUSH 2 2004-06-17 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O bdflush \- start, flush, or tune buffer-dirty-flush daemon -bdflush \- ¥Ð¥Ã¥Õ¥¡¡¼¡¦¥À¡¼¥Æ¥£¡¼¡¦¥Õ¥é¥Ã¥·¥å¡¦¥Ç¡¼¥â¥ó¤òµ¯Æ°¡¢¥Õ¥é¥Ã¥·¥å¡¢Ä´À°¤¹¤ë +bdflush \- バッファー・ダーティー・フラッシュ・デーモンを起動、フラッシュ、調整する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include @@ -55,20 +55,20 @@ bdflush \- .BI "int bdflush(int " func ", long " data ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR bdflush () .\"O starts, flushes, or tunes the buffer-dirty-flush daemon. .BR bdflush () -¤Ï¥Ð¥Ã¥Õ¥¡¡¼¡¦¥À¡¼¥Æ¥£¡¼¡¦¥Õ¥é¥Ã¥·¥å (buffer-dirty-flush)¡¦ -¥Ç¡¼¥â¥ó (daemon) ¤òµ¯Æ°¡¢¥Õ¥é¥Ã¥·¥å (flush)¡¢Ä´À° (tune) ¤¹¤ë¡£ +はバッファー・ダーティー・フラッシュ (buffer-dirty-flush)・ +デーモン (daemon) を起動、フラッシュ (flush)、調整 (tune) する。 .\"O Only a privileged process (one with the .\"O .B CAP_SYS_ADMIN .\"O capability) may call .\"O .BR bdflush (). .RB ( CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤Ä) Æø¢¥×¥í¥»¥¹¤Î¤ß¤¬ +ケーパビリティ (capability) を持つ) 特権プロセスのみが .BR bdflush () -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +を呼び出すことができる。 .PP .\"O If .\"O .I func @@ -76,17 +76,17 @@ bdflush \- .\"O .BR bdflush () .\"O enters the daemon code and never returns. .I func -¤¬É餫 0 ¤Ç¥Ç¡¼¥â¥ó¤¬µ¯Æ°¤µ¤ì¤Æ¤¤¤Ê¤ì¤Ð¡¢ +が負か 0 でデーモンが起動されていなれば、 .BR bdflush () -¤Ï¥Ç¡¼¥â¥ó¤Î¥³¡¼¥É¤ØÆþ¤ê¡¢Ìá¤Ã¤Æ¤³¤Ê¤¤¡£ +はデーモンのコードへ入り、戻ってこない。 .PP .\"O If .\"O .I func .\"O is 1, .\"O some dirty buffers are written to disk. .I func -¤¬ 1 ¤Ê¤é¤Ð¡¢ -±ø¤ì¤¿ (dirty) ¥Ð¥Ã¥Õ¥¡¡¼¤¬¥Ç¥£¥¹¥¯¤Ø¤È½ñ¤­¹þ¤Þ¤ì¤ë¡£ +が 1 ならば、 +汚れた (dirty) バッファーがディスクへと書き込まれる。 .PP .\"O If .\"O .I func @@ -97,11 +97,11 @@ bdflush \- .\"O .RI "(" "func" "\-2)/2" .\"O is returned to the caller in that address. .I func -¤¬ 2 °Ê¾å¤Ç¶ö¿ô (ºÇ¾®¥Ó¥Ã¥È¤¬ 0) ¤Ê¤é¤Ð¡¢ +が 2 以上で偶数 (最小ビットが 0) ならば、 .I address -¤Ë¥í¥ó¥°¡¦¥ï¡¼¥É¤Ç¥¢¥É¥ì¥¹¤ò»ØÄꤷ¡¢¤½¤Î¥¢¥É¥ì¥¹¤Ë +にロング・ワードでアドレスを指定し、そのアドレスに .RI "(" "func" "\-2)/2" -¤Ç»ØÄꤵ¤ì¤¿Ä´Àá¥Ñ¥é¥á¡¼¥¿¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ +で指定された調節パラメーターが返される。 .PP .\"O If .\"O .I func @@ -112,71 +112,71 @@ bdflush \- .\"O .RI "(" "func" "\-3)/2" .\"O to that value. .I func -¤¬ 3 °Ê¾å¤Ç´ñ¿ô (ºÇ¾®¥Ó¥Ã¥È¤¬ 1) ¤Ê¤é¤Ð¡¢ +が 3 以上で奇数 (最小ビットが 1) ならば、 .I data -¤ò¥í¥ó¥°¡¦¥ï¡¼¥É¤Ç»ØÄꤷ¡¢¤½¤ÎÃͤò +をロング・ワードで指定し、その値を .RI "(" "func" "\-3)/2" -¤Ç»ØÄꤵ¤ì¤¿Ä´Àá¥Ñ¥é¥á¡¼¥¿¡¼¤ËÀßÄꤹ¤ë¡£ +で指定された調節パラメーターに設定する。 .PP .\"O The set of parameters, their values, and their valid ranges .\"O are defined in the kernel source file .\"O .IR fs/buffer.c . -¥Ñ¥é¥á¡¼¥¿¡¼¤Î½¸¹ç¤ä¤½¤ÎÃÍ¡¢Í­¸ú¤ÊÈϰϤϥ«¡¼¥Í¥ë¤Î¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤Î +パラメーターの集合やその値、有効な範囲はカーネルのソース・ファイルの .I fs/buffer.c -¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +に定義されている。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O If .\"O .I func .\"O is negative or 0 and the daemon successfully starts, .\"O .BR bdflush () .\"O never returns. .I func -¤¬É餫 0 ¤Ç¡¢¥Ç¥â¡¼¥ó¤Îµ¯Æ°¤ËÀ®¸ù¤·¤¿¾ì¹ç¤Ï +が負か 0 で、デモーンの起動に成功した場合は .BR bdflush () -¤ÏÊ֤äƤ³¤Ê¤¤¡£ +は返ってこない。 .\"O Otherwise, the return value is 0 on success and \-1 on failure, with .\"O .I errno .\"O set to indicate the error. -¤½¤¦¤Ç¤Ê¤±¤ì¤ÐÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +そうでなければ成功した場合には 0 が返される。失敗した場合には \-1 が返され、 .I errno -¤Ë¤½¤Î¥¨¥é¡¼¤¬»Ø¼¨¤µ¤ì¤ë¡£ +にそのエラーが指示される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBUSY .\"O An attempt was made to enter the daemon code after .\"O another process has already entered. -¾¤Î¥×¥í¥»¥¹¤¬´û¤Ë¥Ç¡¼¥â¥ó¡¦¥³¡¼¥É¤ËÆþ¤Ã¤Æ¤¤¤ë¤Î¤Ë¡¢Æþ¤í¤¦¤È»î¤ß¤¿¡£ +他のプロセスが既にデーモン・コードに入っているのに、入ろうと試みた。 .TP .B EFAULT .\"O .I address .\"O points outside your accessible address space. .I address -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°Éô¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がアクセス可能なアドレス空間の外部を指している。 .TP .B EINVAL .\"O An attempt was made to read or write an invalid parameter number, .\"O or to write an invalid value to a parameter. -ÉÔÀµ¤Ê¥Ñ¥é¥á¡¼¥¿¡¼¤ÎÆɤ߽ñ¤­¤ò»î¤ß¤¿¤«¡¢¥Ñ¥é¥á¡¼¥¿¡¼¤ØÉÔÀµ¤ÊÃͤò -½ñ¤­¹þ¤â¤¦¤È¤·¤¿¡£ +不正なパラメーターの読み書きを試みたか、パラメーターへ不正な値を +書き込もうとした。 .TP .B EPERM .\"O Caller does not have the .\"O .B CAP_SYS_ADMIN .\"O capability. -¸Æ¤Ó½Ð¤·¸µ¤Ë +呼び出し元に .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¤Ê¤¤¡£ +ケーパビリティがない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR bdflush () .\"O is Linux-specific and should not be used in programs .\"O intended to be portable. .BR bdflush () -¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +は Linux 特有であり移植を意図したプログラムで使用すべきではない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fsync (2), .BR sync (2), .BR sync (8), diff --git a/draft/man2/bind.2 b/draft/man2/bind.2 index ec379a12..56ececd9 100644 --- a/draft/man2/bind.2 +++ b/draft/man2/bind.2 @@ -76,21 +76,21 @@ .\" .TH BIND 2 2007-12-28 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O bind \- bind a name to a socket -bind \- ¥½¥±¥Ã¥È¤Ë̾Á°¤ò¤Ä¤±¤ë +bind \- ソケットに名前をつける .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#include " " /* See NOTES */" -.BR "#include " " /* ¡ÖÃí°Õ¡×»²¾È */" +.BR "#include " " /* 「注意」参照 */" .B #include .sp .BI "int bind(int " sockfd ", const struct sockaddr *" addr , .BI " socklen_t " addrlen ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O When a socket is created with .\"O .BR socket (2), .\"O it exists in a name space (address family) but has no address assigned to it. @@ -104,21 +104,21 @@ bind \- .\"O .IR addr . .\"O Traditionally, this operation is called \(lqassigning a name to a socket\(rq. .BR socket (2) -¤Ç¥½¥±¥Ã¥È¤¬ºîÀ®¤µ¤ì¤¿¤È¤­¡¢¤½¤Î¥½¥±¥Ã¥È¤Ï̾Á°¶õ´Ö (¥¢¥É¥ì¥¹¡¦¥Õ¥¡¥ß¥ê¡¼) ¤Ë -¸ºß¤¹¤ë¤¬¡¢¥¢¥É¥ì¥¹¤Ï³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤Ê¤¤¡£ +でソケットが作成されたとき、そのソケットは名前空間 (アドレス・ファミリー) に +存在するが、アドレスは割り当てられていない。 .BR bind () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +は、ファイルディスクリプタ .I sockfd -¤Ç»²¾È¤µ¤ì¤ë¥½¥±¥Ã¥È¤Ë +で参照されるソケットに .I addr -¤Ç»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤ò³ä¤êÅö¤Æ¤ë¡£ +で指定されたアドレスを割り当てる。 .I addrlen -¤Ë¤Ï +には .I addr -¤¬»Ø¤¹¥¢¥É¥ì¥¹¹½Â¤ÂΤΥµ¥¤¥º¤ò¥Ð¥¤¥Èñ°Ì¤Ç»ØÄꤹ¤ë¡£ -ÅÁÅýŪ¤Ë¤³¤ÎÁàºî¤Ï -¡Ö¥½¥±¥Ã¥È¤Ë̾Á°¤ò¤Ä¤±¤ë¡× -¤È¸Æ¤Ð¤ì¤ë¡£ +が指すアドレス構造体のサイズをバイト単位で指定する。 +伝統的にこの操作は +「ソケットに名前をつける」 +と呼ばれる。 .PP .\"O It is normally necessary to assign a local address using .\"O .BR bind () @@ -127,11 +127,11 @@ bind \- .\"O socket may receive connections (see .\"O .BR accept (2)). .B SOCK_STREAM -¥½¥±¥Ã¥È¤¬Àܳ¤ò¼õ¤±ÉÕ¤±¤é¤ì¤ë¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï +ソケットが接続を受け付けられるようにするには .RB ( accept (2) -¤ò»²¾È)¡¢Ä̾綠¤ÎÁ°¤Ë +を参照)、通常その前に .BR bind () -¤ò»ÈÍѤ·¤Æ¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤ò³ä¤êÅö¤Æ¤ëɬÍפ¬¤¢¤ë¡£ +を使用してローカルアドレスを割り当てる必要がある。 .\"O The rules used in name binding vary between address families. .\"O Consult the manual entries in Section 7 for detailed information. @@ -139,60 +139,60 @@ bind \- .\"O .B AF_INET .\"O see .\"O .BR ip (7), -̾Á°ÉÕ¤±¤Î¥ë¡¼¥ë¤Ï¥¢¥É¥ì¥¹¡¦¥Õ¥¡¥ß¥ê¡¼¤´¤È¤Ë°Û¤Ê¤Ã¤Æ¤¤¤ë¡£¾ÜºÙ¤Ê¾ðÊó¤Ï -Âè 7 ¾Ï¤Î³Æ¥Þ¥Ë¥å¥¢¥ë¤ò»²¾È¤¹¤ë¤³¤È¡£ +名前付けのルールはアドレス・ファミリーごとに異なっている。詳細な情報は +第 7 章の各マニュアルを参照すること。 .B AF_INET -¤Ï +は .BR ip (7) -¤ò¡¢ +を、 .\"O for .\"O .B AF_INET6 .\"O see .\"O .BR ipv6 (7), .B AF_INET6 -¤Ï +は .BR ipv6 (7) -¤ò¡¢ +を、 .\"O for .\"O .B AF_UNIX .\"O see .\"O .BR unix (7), .B AF_UNIX -¤Ï +は .BR unix (7) -¤ò¡¢ +を、 .\"O for .\"O .B AF_APPLETALK .\"O see .\"O .BR ddp (7), .B AF_APPLETALK -¤Ï +は .BR ddp (7) -¤ò¡¢ +を、 .\"O for .\"O .B AF_PACKET .\"O see .\"O .BR packet (7), .B AF_PACKET -¤Ï +は .BR packet (7) -¤ò¡¢ +を、 .\"O for .\"O .B AF_X25 .\"O see .\"O .BR x25 (7) .B AF_X25 -¤Ï +は .BR x25 (7) -¤ò¡¢ +を、 .\"O and for .\"O .B AF_NETLINK .\"O see .\"O .BR netlink (7). .B AF_NETLINK -¤Ï +は .BR netlink (7) -¤ò»²¾È¡£ +を参照。 .\"O The actual structure passed for the .\"O .I addr @@ -201,10 +201,10 @@ bind \- .\"O .I sockaddr .\"O structure is defined as something like: .I addr -°ú¤­¿ô¤Ë¼ÂºÝ¤Ë¤É¤Î¤è¤¦¤Ê¹½Â¤ÂΤ¬ÅϤµ¤ì¤ë¤«¤Ï¡¢ -¥¢¥É¥ì¥¹¡¦¥Õ¥¡¥ß¥ê¡¼¤Ë°Í¸¤¹¤ë¡£ +引き数に実際にどのような構造体が渡されるかは、 +アドレス・ファミリーに依存する。 .I sockaddr -¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤Ê´¶¤¸¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +構造体は以下のような感じで定義されている: .in +4n .nf @@ -220,80 +220,80 @@ struct sockaddr { .\"O .I addr .\"O in order to avoid compiler warnings. .\"O See EXAMPLE below. -¤³¤Î¹½Â¤ÂΤϡ¢ +この構造体は、 .I addr -¤ËÅϤµ¤ì¤ë¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ò¥­¥ã¥¹¥È¤·¡¢ -¥³¥ó¥Ñ¥¤¥é¤Î·Ù¹ð¥á¥Ã¥»¡¼¥¸¤òÍÞ¤¨¤ë¤¿¤á¤À¤±¤Ë¸ºß¤¹¤ë¡£ -²¼µ­¤Î¡ÖÎã¡×¤ò»²¾È¡£ +に渡される構造体へのポインタをキャストし、 +コンパイラの警告メッセージを抑えるためだけに存在する。 +下記の「例」を参照。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤¹¤ë¤È \-1 ¤òÊÖ¤·¡¢ +成功すると 0 を返す。 +失敗すると \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\" e.g., privileged port in AF_INET domain .\"O The address is protected, and the user is not the superuser. -¤½¤Î¥¢¥É¥ì¥¹¤ÏÊݸ¤ì¤Æ¤¤¤Æ¡¢¤«¤Ä¥æ¡¼¥¶¤¬¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ç¤Ï¤Ê¤¤¡£ +そのアドレスは保護されていて、かつユーザがスーパーユーザではない。 .TP .B EADDRINUSE .\"O The given address is already in use. -»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤¬´û¤Ë»ÈÍÑÃæ¤Ç¤¢¤ë¡£ +指定されたアドレスが既に使用中である。 .TP .B EBADF .\"O .I sockfd .\"O is not a valid descriptor. .I sockfd -¤¬ÉÔÀµ¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +が不正なディスクリプタである。 .TP .B EINVAL .\"O The socket is already bound to an address. .\"O .\" This may change in the future: see .\"O .\" .I linux/unix/sock.c for details. -¥½¥±¥Ã¥È¤¬¤¹¤Ç¤Ë¥¢¥É¥ì¥¹¤Ë·ë¤Ó¤Ä¤± (bind) ¤é¤ì¤Æ¤¤¤ë¡£ -.\" ¤³¤ì¤Ï¾­ÍèÊѹ¹¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -.\" ¾Ü¤·¤¯¤Ï +ソケットがすでにアドレスに結びつけ (bind) られている。 +.\" これは将来変更されるかもしれない。 +.\" 詳しくは .\" .I linux/unix/sock.c -.\" ¤ò»²¾È¤¹¤ë¤³¤È¡£ +.\" を参照すること。 .B ENOTSOCK .\"O .I sockfd .\"O is a descriptor for a file, not a socket. .I sockfd -¤¬¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¡¢¥½¥±¥Ã¥È¤ËÂФ¹¤ë¤â¤Î¤Ç¤Ï¤Ê¤¤¡£ +がファイルに対するディスクリプタで、ソケットに対するものではない。 .PP .\"O The following errors are specific to UNIX domain .\"O .RB ( AF_UNIX ) .\"O sockets: -°Ê²¼¤Î¥¨¥é¡¼¤Ï UNIX¥É¥á¥¤¥ó +以下のエラーは UNIXドメイン .RB ( AF_UNIX ) -¤Î¥½¥±¥Ã¥ÈÆÃÍ­¤Ç¤¢¤ë: +のソケット特有である: .TP .B EACCES .\"O Search permission is denied on a component of the path prefix. .\"O (See also .\"O .BR path_resolution (7).) -¥Ñ¥¹Ì¾¤Î¹½À®Í×ÁǤ˸¡º÷µö²Ä (search permission) ¤¬¤Ê¤¤ +パス名の構成要素に検索許可 (search permission) がない .RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È)¡£ +も参照すること)。 .TP .B EADDRNOTAVAIL .\"O A nonexistent interface was requested or the requested .\"O address was not local. -¸ºß¤·¤Ê¤¤¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¬Í׵ᤵ¤ì¤¿¤«¡¢Í׵ᤵ¤ì¤¿¥¢¥É¥ì¥¹¤¬ -¥í¡¼¥«¥ë¤Ç¤Ï¤Ê¤«¤Ã¤¿¡£ +存在しないインタフェースが要求されたか、要求されたアドレスが +ローカルではなかった。 .TP .B EFAULT .\"O .I addr .\"O points outside the user's accessible address space. .I addr -¤¬¥æ¡¼¥¶¤Î¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がユーザのアクセス可能なアドレス空間の外を指している。 .TP .B EINVAL .\"O The @@ -302,39 +302,39 @@ struct sockaddr { .\"O .B AF_UNIX .\"O family. .I addrlen -¤¬ÉÔÀµ¤Ç¤¢¤ë¤«¡¢¥½¥±¥Ã¥È¤¬ +が不正であるか、ソケットが .B AF_UNIX -¥Õ¥¡¥ß¥ê¡¼¤Ç¤Ï¤Ê¤¤¡£ +ファミリーではない。 .TP .B ELOOP .\"O Too many symbolic links were encountered in resolving .\"O .IR addr . .I addr -¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ +を解決する際に遭遇したシンボリック・リンクが多過ぎる。 .TP .B ENAMETOOLONG .\"O .I addr .\"O is too long. .I addr -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENOENT .\"O The file does not exist. -¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ +ファイルが存在しない。 .TP .B ENOMEM .\"O Insufficient kernel memory was available. -¥«¡¼¥Í¥ë¤Ë¡¢ÍøÍѲÄǽ¤Ê¥á¥â¥ê¡¼¤¬½½Ê¬¤Ë¤Ê¤¤¡£ +カーネルに、利用可能なメモリーが十分にない。 .TP .B ENOTDIR .\"O A component of the path prefix is not a directory. -¥Ñ¥¹Ì¾¤Î¹½À®Í×ÁǤ¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£ +パス名の構成要素がディレクトリではない。 .TP .B EROFS .\"O The socket inode would reside on a read-only file system. -¥½¥±¥Ã¥È inode ¤¬Æɤ߹þ¤ßÀìÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ë¤¢¤ë¡£ +ソケット inode が読み込み専用のファイルシステム上にある。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O SVr4, 4.4BSD, POSIX.1-2001 .\"O .RB ( bind () .\"O first appeared in 4.2BSD). @@ -348,27 +348,27 @@ struct sockaddr { .\"O .\" UNIX-domain error conditions. SVr4, 4.4BSD, POSIX.1-2001 .RB ( bind () -¤Ï 4.2BSD ¤ÇºÇ½é¤Ë¸½¤ï¤ì¤¿)¡£ -.\" SVr4 ¤Ë¤Ï¾¤Ë¡¢°ìÈ̤Υ¨¥é¡¼¾õÂÖ +は 4.2BSD で最初に現われた)。 +.\" SVr4 には他に、一般のエラー状態 .\" .B ENOSR -.\" µÚ¤Ó UNIX ¥É¥á¥¤¥ó¤Î¥¨¥é¡¼¾õÂÖ +.\" 及び UNIX ドメインのエラー状態 .\" .BR EIO , .\" .B EISDIR -.\" ¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ +.\" についての記述がある。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O POSIX.1-2001 does not require the inclusion of .\"O .IR , .\"O and this header file is not required on Linux. .\"O However, some historical (BSD) implementations required this header .\"O file, and portable applications are probably wise to include it. -POSIX.1-2001 ¤Ç¤Ï +POSIX.1-2001 では .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ïɬ¿Ü¤È¤µ¤ì¤Æ¤ª¤é¤º¡¢ -Linux ¤Ç¤Ï¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÏɬÍפǤϤʤ¤¡£ -¤·¤«¤·¡¢Îò»ËŪ¤Ë¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¼ÂÁõ (BSD ·Ï) ¤Ç¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬ -ɬÍפǤ¢¤ê¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤ò -¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤Î¤¬¸­ÌÀ¤Ç¤¢¤í¤¦¡£ +のインクルードは必須とされておらず、 +Linux ではこのヘッダファイルは必要ではない。 +しかし、歴史的には、いくつかの実装 (BSD ç³») でこのヘッダファイルが +必要であり、移植性が必要なアプリケーションではこのファイルを +インクルードするのが賢明であろう。 .\"O The third argument of .\"O .BR bind () @@ -381,37 +381,37 @@ Linux .\"O See also .\"O .BR accept (2). .BR bind () -¤Î»°ÈÖÌܤΰú¤­¿ô¤Ï (4.x BSD ¤ä libc4, libc5 ¤ÈƱÍͤË) ¼ÂºÝ¤Ë¤Ï +の三番目の引き数は (4.x BSD や libc4, libc5 と同様に) 実際には .I int -¤Ç¤¢¤ë¡£glibc ¤Ç¤â»È¤ï¤ì¤Æ¤¤¤ë¸½ºß¤Î +である。glibc でも使われている現在の .I socklen_t -¤Ë´Ø¤·¤Æ¡¢POSIX ¤Ë¤Ï¾¯¤·º®Í𤬤¢¤ë¡£ -¾Ü¤·¤¯¤Ï +に関して、POSIX には少し混乱がある。 +詳しくは .BR accept (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O The transparent proxy options are not described. -Æ©²áŪ¥×¥í¥­¥· (transparent proxy) ¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æµ­½Ò¤·¤Æ¤¤¤Ê¤¤¡£ +透過的プロキシ (transparent proxy) オプションについて記述していない。 .\" FIXME What *are* transparent proxy options? .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O An example of the use of .\"O .BR bind () .\"O with Internet domain sockets can be found in .\"O .BR getaddrinfo (3). -¥¤¥ó¥¿¡¼¥Í¥Ã¥È¡¦¥É¥á¥¤¥ó¡¦¥½¥±¥Ã¥È¤Ç¤Î +インターネット・ドメイン・ソケットでの .BR bind () -¤ÎÍøÍÑÎ㤬 +の利用例が .BR getaddrinfo (3) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ +に記載されている。 .\"O The following example shows how to bind a stream socket in the UNIX .\"O .RB ( AF_UNIX ) .\"O domain, and accept connections: -°Ê²¼¤ÎÎã¤Ï¡¢UNIX ¥É¥á¥¤¥ó +以下の例は、UNIX ドメイン .RB ( AF_UNIX ) -¤Ç¥¹¥È¥ê¡¼¥à¥½¥±¥Ã¥È¤ò bind ¤¹¤ëÊýË¡¤ò¼¨¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +でストリームソケットを bind する方法を示したものである。 .\" listen.7 refers to this example. .\" accept.7 refers to this example. .\" unix.7 refers to this example. @@ -469,7 +469,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR accept (2), .BR connect (2), .BR getsockname (2), diff --git a/draft/man2/brk.2 b/draft/man2/brk.2 index 89246499..c69bf4b5 100644 --- a/draft/man2/brk.2 +++ b/draft/man2/brk.2 @@ -40,11 +40,11 @@ .\" .TH BRK 2 2010-09-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O brk, sbrk \- change data segment size -brk, sbrk \- ¥Ç¡¼¥¿¡¦¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º¤ÎÊѹ¹¤¹¤ë +brk, sbrk \- データ・セグメントのサイズの変更する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int brk(void *" addr ); @@ -54,9 +54,9 @@ brk, sbrk \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR brk (), @@ -66,7 +66,7 @@ glibc .PD 0 .TP 4 .\"O Since glibc 2.12: -glibc 2.12 °Ê¹ß: +glibc 2.12 以降: .nf _BSD_SOURCE || _SVID_SOURCE || (_XOPEN_SOURCE\ >=\ 500 || @@ -75,14 +75,14 @@ _BSD_SOURCE || _SVID_SOURCE || .fi .TP 4 .\"O Before glibc 2.12: -glibc 2.12 ¤è¤êÁ°: +glibc 2.12 より前: _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .PD .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR brk () .\"O and .\"O .BR sbrk () @@ -95,18 +95,18 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O allocating memory to the process; .\"O decreasing the break deallocates memory. .BR brk () -¤È +と .BR sbrk () -¤Ï -.I "¥×¥í¥°¥é¥à¡¦¥Ö¥ì¡¼¥¯ (program break)" -¤Î¾ì½ê¤òÊѹ¹¤¹¤ë¡£ -¥×¥í¥°¥é¥à¡¦¥Ö¥ì¡¼¥¯¤Ï¥×¥í¥»¥¹¤Î¥Ç¡¼¥¿¡¦¥»¥°¥á¥ó¥È (data segment) ¤Î -ËöÈø¤ò¼¨¤¹ (¥×¥í¥°¥é¥à¡¦¥Ö¥ì¡¼¥¯¤Ï¡¢½é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¤ -¥Ç¡¼¥¿¡¦¥»¥°¥á¥ó¥È¤ÎËöÈø¤Îľ¸å¤Î¾ì½ê¤È¤Ê¤ë)¡£ -¥×¥í¥°¥é¥à¡¦¥Ö¥ì¡¼¥¯¤òÁý¤ä¤¹¤È¤¤¤¦¤³¤È¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤Ø¤Î -¥á¥â¥ê¤ò³ä¤êÅö¤Æ¤ë¸ú²Ì¤¬¤¢¤ê¡¢ -¥×¥í¥°¥é¥à¡¦¥Ö¥ì¡¼¥¯¤ò¸º¤é¤¹¤È¤¤¤¦¤³¤È¤Ï¡¢¥á¥â¥ê¤ò²òÊü¤¹¤ë -¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ +は +.I "プログラム・ブレーク (program break)" +の場所を変更する。 +プログラム・ブレークはプロセスのデータ・セグメント (data segment) の +末尾を示す (プログラム・ブレークは、初期化されていない +データ・セグメントの末尾の直後の場所となる)。 +プログラム・ブレークを増やすということは、そのプロセスへの +メモリを割り当てる効果があり、 +プログラム・ブレークを減らすということは、メモリを解放する +ということである。 .\"O .BR brk () .\"O sets the end of the data segment to the value specified by @@ -115,51 +115,51 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O and the process does not exceed its maximum data size (see .\"O .BR setrlimit (2)). .BR brk () -¤Ï¡¢¥Ç¡¼¥¿¡¦¥»¥°¥á¥ó¥È¤ÎËöÈø¤ò +は、データ・セグメントの末尾を .I addr -¤Ç»ØÄꤷ¤¿ÃͤËÀßÄꤹ¤ë¡£ -ÀßÄ꤬¹Ô¤ï¤ì¤ë¤Î¤Ï¡¢»ØÄꤷ¤¿Ãͤ¬Í­¸ú¤Ç¡¢ -¥·¥¹¥Æ¥à¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤¢¤ê¡¢ -¥×¥í¥»¥¹¤Î¥Ç¡¼¥¿¥µ¥¤¥º¤ÎºÇÂçÃͤòĶ¤¨¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ç¤¢¤ë +で指定した値に設定する。 +設定が行われるのは、指定した値が有効で、 +システムに十分なメモリがあり、 +プロセスのデータサイズの最大値を超えていない場合である .RB ( setrlimit (2) -¤ò»²¾È)¡£ +を参照)。 .\"O .BR sbrk () .\"O increments the program's data space by .\"O .I increment .\"O bytes. .BR sbrk () -¤Ï¡¢¥×¥í¥°¥é¥à¤Î¥Ç¡¼¥¿¶õ´Ö¤ò +は、プログラムのデータ空間を .I increment -¥Ð¥¤¥È¤À¤±Áý¤ä¤¹¡£ +バイトだけ増やす。 .\"O Calling .\"O .BR sbrk () .\"O with an .\"O .I increment .\"O of 0 can be used to find the current location of the program break. .I increment -¤ò 0 ¤Ë¤·¤Æ +を 0 にして .BR sbrk () -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¡¢¥×¥í¥°¥é¥à¤Î¸½ºß¤Î¥Ö¥ì¡¼¥¯ (break) ¾ì½ê¤òÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ +を呼び出すことで、プログラムの現在のブレーク (break) 場所を知ることができる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR brk () .\"O returns zero. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR brk () -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set to .\"O .BR ENOMEM . .\"O (But see \fILINUX NOTES\fP below.) -¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï¡¢\-1 ¤òÊÖ¤·¡¢ +エラーの場合には、\-1 を返し、 .I errno -¤Ë +に .B ENOMEM -¤òÀßÄꤹ¤ë -(¤¿¤À¤·¡ÖLINUX ¤Ç¤ÎÃí°Õ¡×¤ò»²¾È¤¹¤ë¤³¤È)¡£ +を設定する +(ただし「LINUX での注意」を参照すること)。 .\"O On success, .\"O .BR sbrk () @@ -172,24 +172,24 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O .I errno .\"O is set to .\"O .BR ENOMEM . -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR sbrk () -¤ÏÊѹ¹Á°¤Î¥×¥í¥°¥é¥à¡¦¥Ö¥ì¡¼¥¯¤òÊÖ¤¹ -(¥×¥í¥°¥é¥à¡¦¥Ö¥ì¡¼¥¯¤¬Áý¤ä¤µ¤ì¤¿¾ì¹ç¡¢¤³¤ÎÃÍ¤Ï -¿·¤·¤¯³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤ÎÀèƬ¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤È¤Ê¤ë)¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï¡¢ +は変更前のプログラム・ブレークを返す +(プログラム・ブレークが増やされた場合、この値は +新しく割り当てられたメモリの先頭を指すポインタとなる)。 +エラーの場合には、 .I "(void\ *)\ \-1" -¤òÊÖ¤·¡¢ +を返し、 .I errno -¤Ë +に .B ENOMEM -¤òÀßÄꤹ¤ë¡£ +を設定する。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O 4.3BSD; SUSv1, marked LEGACY in SUSv2, removed in POSIX.1-2001. 4.3BSD, SUSv1. -SUSv2 ¤Ç¤Ï¡Ö²áµî¤Î̾»Ä (LEGACY)¡×¤È°ÌÃÖÉÕ¤±¤é¤ì¤Æ¤ª¤ê¡¢ -POSIX.1-2001 ¤Çºï½ü¤µ¤ì¤¿¡£ +SUSv2 では「過去の名残 (LEGACY)」と位置付けられており、 +POSIX.1-2001 で削除された。 .\"O .\" .\"O .\" .BR brk () .\"O .\" and @@ -197,12 +197,12 @@ POSIX.1-2001 .\"O .\" are not defined in the C Standard and are deliberately excluded from the .\"O .\" POSIX.1-1990 standard (see paragraphs B.1.1.1.3 and B.8.3.3). .\" .BR brk () -.\" ¤È +.\" と .\" .BR sbrk () -.\" ¤Ï C µ¬³Ê (C Standard) ¤Ë¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.\" ¤Þ¤¿ POSIX.1 µ¬³Ê¤«¤é¤Ï°Õ¿ÞŪ¤Ë½ü³°¤µ¤ì¤Æ¤¤¤ë (ÃÊÍî B.1.1.1.3, B.8.3.3 »²¾È)¡£ +.\" は C 規格 (C Standard) には定義されていない。 +.\" また POSIX.1 規格からは意図的に除外されている (段落 B.1.1.1.3, B.8.3.3 参照)。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Avoid using .\"O .BR brk () .\"O and @@ -212,67 +212,67 @@ POSIX.1-2001 .\"O memory allocation package is the .\"O portable and comfortable way of allocating memory. .BR brk () -¤ä +や .BR sbrk () -¤ò»ÈÍѤ¹¤ë¤Î¤ÏÈò¤±¤ë¤³¤È¡£ +を使用するのは避けること。 .BR malloc (3) -¥á¥â¥ê³ä¤êÅö¤Æ¥Ñ¥Ã¥±¡¼¥¸¤ÎÊý¤¬¡¢°Ü¿¢À­¤¬¹â¤¯¡¢ -»È¤¤¤ä¤¹¤¤¥á¥â¥ê³ä¤êÅö¤ÆÊýË¡¤òÄ󶡤·¤Æ¤¤¤ë¡£ +メモリ割り当てパッケージの方が、移植性が高く、 +使いやすいメモリ割り当て方法を提供している。 .\"O Various systems use various types for the argument of .\"O .BR sbrk (). -¤¤¤í¤¤¤í¤Ê¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¡¢ +いろいろなシステムにおいて、 .BR sbrk () -¤Î°ú¤­¿ô¤ËÍÍ¡¹¤Ê·¿¤¬»È¤ï¤ì¤Æ¤¤¤ë¡£ +の引き数に様々な型が使われている。 .\"O Common are \fIint\fP, \fIssize_t\fP, \fIptrdiff_t\fP, \fIintptr_t\fP. -°ìÈÌŪ¤Ê¤Î¤Ï \fIint\fP, \fIssize_t\fP, \fIptrdiff_t\fP, \fIintptr_t\fP ¤Ç¤¢¤ë¡£ +一般的なのは \fIint\fP, \fIssize_t\fP, \fIptrdiff_t\fP, \fIintptr_t\fP である。 .\"O .\" One sees .\"O .\" \fIint\fP (e.g., XPGv4, DU 4.0, HP-UX 11, FreeBSD 4.0, OpenBSD 3.2), .\"O .\" \fIssize_t\fP (OSF1 2.0, Irix 5.3, 6.5), .\"O .\" \fIptrdiff_t\fP (libc4, libc5, ulibc, glibc 2.0, 2.1), .\"O .\" \fIintptr_t\fP (e.g., XPGv5, AIX, SunOS 5.8, 5.9, FreeBSD 4.7, NetBSD 1.6, .\"O .\" Tru64 5.1, glibc2.2). -.\" \fIint\fP (¤¿¤È¤¨¤Ð XPGv4, DU 4.0, HP-UX 11, FreeBSD 4.0, OpenBSD 3.2), +.\" \fIint\fP (たとえば XPGv4, DU 4.0, HP-UX 11, FreeBSD 4.0, OpenBSD 3.2), .\" \fIssize_t\fP (OSF1 2.0, Irix 5.3, 6.5), .\" \fIptrdiff_t\fP (libc4, libc5, ulibc, glibc 2.0, 2.1), -.\" \fIintptr_t\fP (¤¿¤È¤¨¤Ð XPGv5, AIX, SunOS 5.8, 5.9, FreeBSD 4.7, +.\" \fIintptr_t\fP (たとえば XPGv5, AIX, SunOS 5.8, 5.9, FreeBSD 4.7, .\" NetBSD 1.6, Tru64 5.1, glibc2.2). -.\" ¤È¤¤¤¦¤Î¤¬Ê¬¤«¤ë¤À¤í¤¦¡£ +.\" というのが分かるだろう。 .\"O .SS Linux Notes -.SS Linux ¤Ç¤ÎÃí°Õ +.SS Linux での注意 .\"O The return value described above for .\"O .BR brk () .\"O is the behavior provided by the glibc wrapper function for the Linux .\"O .BR brk () .\"O system call. -¾å¤ÇÀâÌÀ¤·¤¿ +上で説明した .BR brk () -¤ÎÊÖ¤êÃͤˤĤ¤¤Æ¤ÎÆ°ºî¤Ï¡¢ -Linux ¤Î +の返り値についての動作は、 +Linux の .BR brk () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¥é¥Ã¥×¤¹¤ë glibc ¤Î´Ø¿ô¤Ë¤è¤ë¤â¤Î¤Ç¤¢¤ë¡£ +システムコールをラップする glibc の関数によるものである。 .\"O (On most other implementations, the return value from .\"O .BR brk () .\"O is the same; this return value was also specified in SUSv2.) -(¤½¤Î¾¤Î¿¤¯¤Î¼ÂÁõ¤Ç¤â¡¢ +(その他の多くの実装でも、 .BR brk () -¤ÎÊÖ¤êÃͤϤ³¤ì¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -¤³¤ÎÊÖ¤êÃÍ¤Ï SUSv2 ¤Ç¤âµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£) +の返り値はこれと同じである。 +この返り値は SUSv2 でも規定されている。) .\"O However, .\"O the actual Linux system call returns the new program break on success. -¤·¤«¤·¡¢¼ÂºÝ¤Î Linux ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¡¢ -¥×¥í¥°¥é¥à¤Î¿·¤·¤¤¥Ö¥ì¡¼¥¯¤òÊÖ¤¹¡£ +しかし、実際の Linux システムコールは、成功した場合、 +プログラムの新しいブレークを返す。 .\"O On failure, the system call returns the current break. -¼ºÇÔ¤·¤¿¾ì¹ç¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¸½ºß¤Î¥Ö¥ì¡¼¥¯¤òÊÖ¤¹¡£ +失敗した場合、このシステムコールは現在のブレークを返す。 .\"O The glibc wrapper function does some work .\"O (i.e., checks whether the new break is less than .\"O .IR addr ) .\"O to provide the 0 and \-1 return values described above. -glibc ¥é¥Ã¥Ñ¡¼´Ø¿ô¤ÏƱÍͤÎƯ¤­¤ò¤· -(¤¹¤Ê¤ï¤Á¡¢¿·¤·¤¤¥Ö¥ì¡¼¥¯¤¬ +glibc ラッパー関数は同様の働きをし +(すなわち、新しいブレークが .I addr -¤è¤ê¾®¤µ¤¤¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤·)¡¢ -¾å¤ÇÀâÌÀ¤·¤¿ 0 ¤È \-1 ¤È¤¤¤¦ÊÖ¤êÃͤòÊÖ¤¹¡£ +より小さいかどうかをチェックし)、 +上で説明した 0 と \-1 という返り値を返す。 .\"O On Linux, .\"O .BR sbrk () @@ -280,14 +280,14 @@ glibc .\"O .BR brk () .\"O system call, and does some internal bookkeeping so that it can .\"O return the old break value. -Linux ¤Ç¤Ï +Linux では .BR sbrk () -¤Ï +は .BR brk () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤¦¥é¥¤¥Ö¥é¥ê´Ø¿ô¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤ª¤ê¡¢ -°ÊÁ°¤Î¥Ö¥ì¡¼¥¯¤ÎÃͤòÊÖ¤¹¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤ËÆâÉô¤ÇÄ´À°¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë¡£ +システムコールを使うライブラリ関数として実装されており、 +以前のブレークの値を返すことができるように内部で調整が行われている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR execve (2), .BR getrlimit (2), .BR end (3), diff --git a/draft/man2/cacheflush.2 b/draft/man2/cacheflush.2 index d119cfff..d3f2bcda 100644 --- a/draft/man2/cacheflush.2 +++ b/draft/man2/cacheflush.2 @@ -27,24 +27,24 @@ .\" by HANATAKA Shinya .\" Updated 2007-06-13, Akihiro MOTOKI , LDP v2.55 .\" -.\"WORD: instruction cache Ì¿Îᥭ¥ã¥Ã¥·¥å -.\"WORD: data cache ¥Ç¡¼¥¿¥­¥ã¥Ã¥·¥å -.\"WORD: flush ¥Õ¥é¥Ã¥·¥å +.\"WORD: instruction cache 命令キャッシュ +.\"WORD: data cache データキャッシュ +.\"WORD: flush フラッシュ .\" .TH CACHEFLUSH 2 2007-05-26 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O cacheflush \- flush contents of instruction and/or data cache -cacheflush \- Ì¿Îᥭ¥ã¥Ã¥·¥å¤ä¥Ç¡¼¥¿¥­¥ã¥Ã¥·¥å¤ÎÆâÍƤò¥Õ¥é¥Ã¥·¥å¤¹¤ë +cacheflush \- 命令キャッシュやデータキャッシュの内容をフラッシュする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int cacheflush(char *" addr ", int "nbytes ", int "cache ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR cacheflush () .\"O flushes the contents of the indicated cache(s) for the .\"O user addresses in the range @@ -54,41 +54,41 @@ cacheflush \- Ì¿ .\"O .I cache .\"O may be one of: .BR cacheflush () -¤Ï +は .I addr -¤«¤é +から .I (addr+nbytes-1) -¤ÎÈϰϤΥ桼¥¶¥¢¥É¥ì¥¹¤ËÂбþ¤¹¤ë -»ØÄꤵ¤ì¤¿¥­¥ã¥Ã¥·¥å¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë¡£ +の範囲のユーザアドレスに対応する +指定されたキャッシュをフラッシュする。 .I cache -¤Ë¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«¤ò»ØÄꤹ¤ë: +には以下のいずれかを指定する: .TP .B ICACHE .\"O Flush the instruction cache. -Ì¿Îá (instruction) ¥­¥ã¥Ã¥·¥å¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë¡£ +命令 (instruction) キャッシュをフラッシュする。 .TP .B DCACHE .\"O Write back to memory and invalidate the affected valid cache lines. -Êѹ¹¤¬¤¢¤Ã¤¿¥­¥ã¥Ã¥·¥å¥é¥¤¥ó¤ò¥á¥â¥ê¤Ë½ñ¤­Ìᤷ¡¢Ìµ¸ú¤Ë¤¹¤ë¡£ +変更があったキャッシュラインをメモリに書き戻し、無効にする。 .TP .B BCACHE .\"O Same as .\"O .BR (ICACHE|DCACHE) . .B (ICACHE|DCACHE) -¤ÈƱ¤¸¡£ +と同じ。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR cacheflush () .\"O returns 0 on success or \-1 on error. .\"O If errors are detected, .\"O .I errno .\"O will indicate the error. .BR cacheflush () -¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤ò¡¢¼ºÇÔ¤·¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤¬¸¡½Ð¤µ¤ì¤¿¾ì¹ç¤Ï +は成功した場合は 0 を、失敗した場合は \-1 を返す。エラーが検出された場合は .I errno -¤Ë¥¨¥é¡¼¤¬»Ø¼¨¤µ¤ì¤ë¡£ +にエラーが指示される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O Some or all of the address range @@ -97,10 +97,10 @@ cacheflush \- Ì¿ .\"O .I (addr+nbytes-1) .\"O is not accessible. .I addr -¤«¤é +から .I (addr+nbytes-1) -¤ÎÈϰϤΥ¢¥É¥ì¥¹¤ÎÁ´¤Æ¤Þ¤¿¤Ï°ìÉô¤¬ -¥¢¥¯¥»¥¹²Äǽ¤Ç¤Ï¤Ê¤¤¡£ +の範囲のアドレスの全てまたは一部が +アクセス可能ではない。 .TP .B EINVAL .\"O .I cache @@ -110,32 +110,32 @@ cacheflush \- Ì¿ .\"O or .\"O .BR BCACHE . .I cache -¥Ñ¥é¥á¡¼¥¿¤¬ +パラメータが .BR ICACHE , .BR DCACHE , .B BCACHE -¤Î¤É¤ì¤Ç¤â¤Ê¤¤¡£ +のどれでもない。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O This Linux-specific system call is only available on MIPS-based systems. -¤³¤Î Linux ÆÃÍ­¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï MIPS ¥Ù¡¼¥¹¤Î¥·¥¹¥Æ¥à¤Ç¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£ +この Linux 特有のシステムコールは MIPS ベースのシステムでのみ有効である。 .\" FIXME This system call was only on MIPS back in 1.2 days, but .\" by now it is on a number of other architectures (but not i386). .\" Investigate the details and update this page. .\"O It should not be used in programs intended to be portable. -°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +移植を意図したプログラムで使用すべきではない。 .\" Irix 6.5 appears to have a cacheflush() syscall -- mtk .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O The current implementation ignores the .\"O .I addr .\"O and .\"O .I nbytes .\"O arguments. .\"O Therefore, the whole cache is always flushed. -¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¡¢°ú¤­¿ô +現在の実装では、引き数 .I addr -¤È +と .I nbytes -¤Ï̵»ë¤µ¤ì¤ë¡£¤½¤Î¤¿¤á¡¢ -¾ï¤ËÁ´¤Æ¤Î¥­¥ã¥Ã¥·¥å¤¬¥Õ¥é¥Ã¥·¥å¤µ¤ì¤ë¡£ +は無視される。そのため、 +常に全てのキャッシュがフラッシュされる。 diff --git a/draft/man2/capget.2 b/draft/man2/capget.2 index d7f8fc73..2edc2dd8 100644 --- a/draft/man2/capget.2 +++ b/draft/man2/capget.2 @@ -17,25 +17,25 @@ .\" Updated & Modified 2008-08-11, Akihiro MOTOKI, LDP v3.05 .\" Updated 2009-02-24, Akihiro MOTOKI, LDP v3.19 .\" -.\"WORD: capability ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ -.\"WORD: effective capability ¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ -.\"WORD: inheritable capabilit ·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ -.\"WORD: permitted capabily µö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ +.\"WORD: capability ケーパビリティ +.\"WORD: effective capability 実効ケーパビリティ +.\"WORD: inheritable capabilit 継承可能ケーパビリティ +.\"WORD: permitted capabily 許可ケーパビリティ .\" .TH CAPGET 2 2010-09-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O capget, capset \- set/get capabilities of thread(s) -capget, capset \- ¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÀßÄê/¼èÆÀ¤¹¤ë +capget, capset \- スレッドのケーパビリティを設定/取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int capget(cap_user_header_t " hdrp ", cap_user_data_t " datap ); .sp .BI "int capset(cap_user_header_t " hdrp ", const cap_user_data_t " datap ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O As of Linux 2.2, .\"O the power of the superuser (root) has been partitioned into .\"O a set of discrete capabilities. @@ -46,19 +46,19 @@ capget, capset \- .\"O .BR execve (2) .\"O call, and a set of permitted capabilities .\"O that it can make effective or inheritable. -Linux 2.2 ¤Ç¡¢¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼ (root) ¤Î¸¢¸Â¤Ï¡¢¸ÄÊ̤Υ±¡¼¥Ñ¥Ó¥ê¥Æ¥£ -(capabilities) ¤Ø¤Èʬ³ä¤µ¤ì¡¢¤½¤Î½¸¹ç¤È¤·¤Æɽ¸½¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ -³Æ¥¹¥ì¥Ã¥É¤Ï¡Ö¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (effective capability) ¤Î½¸¹ç¡×¤ò»ý¤Á¡¢ -¤½¤ì¤Ë¤è¤Ã¤Æ¸½ºß¤É¤ÎÁàºî¤¬¼Â¹Ô²Äǽ¤«¤ò¼±Ê̤Ǥ­¤ë¡£ -¤Þ¤¿¡¢³Æ¥¹¥ì¥Ã¥É¤Ï¡¢ -¡Ö·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (inheritable capability) ¤Î½¸¹ç¡×¤È -¡Öµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (permitted capability) ¤Î½¸¹ç¡×¤ò»ý¤Ä¡£ -¡Ö·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î½¸¹ç¡×¤Ï +Linux 2.2 で、スーパーユーザー (root) の権限は、個別のケーパビリティ +(capabilities) へと分割され、その集合として表現されるようになった。 +各スレッドは「実効ケーパビリティ (effective capability) の集合」を持ち、 +それによって現在どの操作が実行可能かを識別できる。 +また、各スレッドは、 +「継承可能ケーパビリティ (inheritable capability) の集合」と +「許可ケーパビリティ (permitted capability) の集合」を持つ。 +「継承可能ケーパビリティの集合」は .BR execve (2) -¤òÄ̤¸¤ÆÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î½¸¹ç¤Ç¤¢¤ê¡¢ -¡Öµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (permitted capability) ¤Î½¸¹ç¡×¤Ï -¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ä·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤È¤·¤ÆÍ­¸ú¤Ë¤Ç¤­¤ë -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òµ¬Äꤹ¤ë¤â¤Î¤Ç¤¢¤ë¡£ +を通じて渡すことができるケーパビリティの集合であり、 +「許可ケーパビリティ (permitted capability) の集合」は +実効ケーパビリティや継承可能ケーパビリティとして有効にできる +ケーパビリティを規定するものである。 .PP .\"O These two functions are the raw kernel interface for getting and .\"O setting thread capabilities. @@ -68,43 +68,43 @@ Linux 2.2 .\"O .I cap_user_*_t .\"O types) is subject to extension with each kernel revision, .\"O but old programs will keep working. -¤³¤ÎÆó¤Ä¤Î´Ø¿ô¤Ï¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¼èÆÀ¤·¤¿¤êÀßÄꤷ¤¿¤ê¤¹¤ë¤¿¤á¤Î -À¸¤Î¥«¡¼¥Í¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ÆÃÍ­¤Ç¤¢¤ë¤È¤¤¤¦¤À¤±¤Ç¤Ê¤¯¡¢ -¥«¡¼¥Í¥ë API ¤ÏÊѹ¹¤µ¤ì¤ë¤«¤â¤·¤ì¤º¡¢¤³¤ì¤é¤Î -´Ø¿ô¤Î»ÈÍÑË¡ (ÆÃ¤Ë +この二つの関数はスレッドのケーパビリティを取得したり設定したりするための +生のカーネルインターフェースである。 +これらのシステムコールは Linux 特有であるというだけでなく、 +カーネル API は変更されるかもしれず、これらの +関数の使用法 (特に .I cap_user_*_t -·¿¤È¤¤¤¦½ñ¼°) ¤Ï¥«¡¼¥Í¥ë¤Î¥ê¥Ó¥¸¥ç¥óËè¤Ë³ÈÄ¥¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¤¬¡¢ -°ÊÁ°¤Î¥×¥í¥°¥é¥à¤Ï¤½¤Î¤Þ¤ÞÆ°ºî¤¹¤ë¡£ +型という書式) はカーネルのリビジョン毎に拡張されるかもしれないが、 +以前のプログラムはそのまま動作する。 .sp .\"O The portable interfaces are .\"O .BR cap_set_proc (3) .\"O and .\"O .BR cap_get_proc (3); -°Ü¿¢À­¤Î¤¢¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï +移植性のあるインターフェースは .BR cap_set_proc (3) -¤È +と .BR cap_get_proc (3) -¤Ç¤¢¤ë¡£ +である。 .\"O if possible you should use those interfaces in applications. -²Äǽ¤Ê¤é¤Ð¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¤³¤ì¤é¤Î´Ø¿ô¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +可能ならばアプリケーションはこれらの関数を使用すべきである。 .\"O If you wish to use the Linux extensions in applications, you should .\"O use the easier-to-use interfaces .\"O .BR capsetp (3) .\"O and .\"O .BR capgetp (3). -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë Linux ³ÈÄ¥¤ò»ÈÍѤ·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢¤è¤ê´Êñ¤Ë -»È¤¨¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¢¤ë +アプリケーションに Linux 拡張を使用したい場合には、より簡単に +使えるインターフェースである .BR capsetp (3) -¤È +と .BR capgetp (3) -¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +を使用すべきである。 .\"O .SS "Current details" -.SS ¸½ºß¤Î¾ÜºÙ +.SS 現在の詳細 .\"O Now that you have been warned, some current kernel details. .\"O The structures are defined as follows. -¸½ºß¤Î¥«¡¼¥Í¥ë¤Î¾ÜºÙ¤Ë¤Ä¤¤¤ÆÃí°Õ¤ò½Ò¤Ù¤Æ¤ª¤¯¡£ -¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë¡£ +現在のカーネルの詳細について注意を述べておく。 +構造体は以下のように定義される。 .sp .nf .in +4n @@ -140,20 +140,20 @@ typedef struct __user_cap_data_struct { .\"O .I struct __user_cap_data_struct .\"O names because the typedefs are only pointers. .I effective, permitted, inheritable -¤Ï¡¢ +は、 .BR capability (7) -¤ÇÄêµÁ¤µ¤ì¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ë¡£ +で定義されるケーパビリティのビットマスクである。 .I CAP_* -¤Ï¥Ó¥Ã¥ÈÈÖ¹æ¤òɽ¤¹¥¤¥ó¥Ç¥Ã¥¯¥¹ÃͤǤ¢¤ê¡¢ -¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤Ë OR ¤ò¹Ô¤¦Á°¤Ë +はビット番号を表すインデックス値であり、 +ビットフィールドに OR を行う前に .I CAP_* -¤ÎÃͤÎʬ¤À¤±¥Ó¥Ã¥È¥·¥Õ¥È¤ò¹Ô¤¦É¬Íפ¬¤¢¤ë¡£ -typedef ¤ÎÊý¤Ï¥Ý¥¤¥ó¥¿¤Ê¤Î¤Ç¡¢ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÅϤ¹¹½Â¤ÂΤòÄêµÁ¤¹¤ë¤Ë¤Ï¡¢ +の値の分だけビットシフトを行う必要がある。 +typedef の方はポインタなので、 +このシステムコールに渡す構造体を定義するには、 .I struct __user_cap_header_struct -¤È +と .I struct __user_cap_data_struct -¤È¤¤¤¦Ì¾Á°¤ò»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +という名前を使用しなければならない。 .\"O Kernels prior to 2.6.25 prefer .\"O 32-bit capabilities with version @@ -166,29 +166,29 @@ typedef .\"O .IR datap [1], .\"O whereas 32-bit capabilities use only .\"O .IR datap [0]. -¥«¡¼¥Í¥ë 2.6.25 ¤è¤êÁ°¤Ç¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó +カーネル 2.6.25 より前では、バージョン .B _LINUX_CAPABILITY_VERSION_1 -¤Î 32 ¥Ó¥Ã¥È¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¿ä¾©¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë 2.6.25 °Ê¹ß¤Ç¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó +の 32 ビットケーパビリティが推奨である。 +カーネル 2.6.25 以降では、バージョン .B _LINUX_CAPABILITY_VERSION_2 -¤Î 64 ¥Ó¥Ã¥È¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¿ä¾©¤Ç¤¢¤ë¡£ -64 ¥Ó¥Ã¥È¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ç¤Ï +の 64 ビットケーパビリティが推奨である。 +64 ビットケーパビリティでは .IR datap [0] -¤È +と .IR datap [1] -¤¬»ÈÍѤµ¤ì¤ë¤Î¤ËÂФ·¡¢ -32 ¥Ó¥Ã¥È¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ç¤Ï +が使用されるのに対し、 +32 ビットケーパビリティでは .IR datap [0] -¤À¤±¤¬»ÈÍѤµ¤ì¤ë¡£ +だけが使用される。 .sp .\"O Another change affecting the behavior of these system calls is kernel .\"O support for file capabilities (VFS capability support). .\"O This support is currently a compile time option (added in kernel 2.6.24). -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎµóÆ°¤Ë±Æ¶Á¤¬¤¢¤ë¤â¤¦°ì¤Ä¤ÎÊѹ¹ÅÀ¤Ï¡¢ -¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (file capabilities) ¤Î¥«¡¼¥Í¥ë¤Ë¤è¤ë¥µ¥Ý¡¼¥È -(VFS ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¥µ¥Ý¡¼¥È) ¤Ç¤¢¤ë¡£ -VFS ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¥µ¥Ý¡¼¥È¤Ï¸½ºß¤Î¤È¤³¤í¥³¥ó¥Ñ¥¤¥ë»þ¤Î¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë -(¥«¡¼¥Í¥ë 2.6.24 ¤ÇÄɲ䵤줿)¡£ +これらのシステムコールの挙動に影響があるもう一つの変更点は、 +ファイルケーパビリティ (file capabilities) のカーネルによるサポート +(VFS ケーパビリティのサポート) である。 +VFS ケーパビリティのサポートは現在のところコンパイル時のオプションである +(カーネル 2.6.24 で追加された)。 .sp .\"O For .\"O .BR capget () @@ -197,12 +197,12 @@ VFS .\"O .I hdrp->pid .\"O field value. .BR capget () -¤Ç¤Ï¡¢ +では、 .I hdrp->pid -¤Î¥Õ¥£¡¼¥ë¥ÉÃͤ˥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÃΤꤿ¤¤¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤ò -»ØÄꤹ¤ë¤³¤È¤Ç¡¢Ç¤°Õ¤Î¥×¥í¥»¥¹¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÄ´¤Ù¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +のフィールド値にケーパビリティを知りたいプロセスのプロセス ID を +指定することで、任意のプロセスのケーパビリティを調べることができる。 .\"O .SS With VFS Capability Support -.SS VFS ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç +.SS VFS ケーパビリティがサポートされている場合 .\"O VFS Capability support creates a file-attribute method for adding .\"O capabilities to privileged executables. .\"O This privilege model obsoletes kernel support for one process @@ -214,19 +214,19 @@ VFS .\"O are 0 or .\"O .BR getpid (2), .\"O which are equivalent. -VFS ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¥µ¥Ý¡¼¥È¤Ç¤Ï¡¢Æø¢¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò -Äɲ乤뤿¤á¤Î¥Õ¥¡¥¤¥ë°À­¥á¥½¥Ã¥É¤¬ºîÀ®¤µ¤ì¤¿¡£ -¤³¤ÎÆø¢¥â¥Ç¥ë¤ÎƳÆþ¤Ë¤è¤ê¡¢¤¢¤ë¥×¥í¥»¥¹¤Ë¤è¤êÊÌ¤Î¥×¥í¥»¥¹¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ -¤òÈóƱ´ü¤ËÀßÄꤹ¤ëµ¡Ç½¤Î¥«¡¼¥Í¥ë¤Ë¤è¤ë¥µ¥Ý¡¼¥È¤ÏÇѻߤµ¤ì¤ë¡£ -¤Ä¤Þ¤ê¡¢VFS ¥µ¥Ý¡¼¥È¤Ç¤Ï¡¢ +VFS ケーパビリティのサポートでは、特権実行ファイルにケーパビリティを +追加するためのファイル属性メソッドが作成された。 +この特権モデルの導入により、あるプロセスにより別のプロセスのケーパビリティ +を非同期に設定する機能のカーネルによるサポートは廃止される。 +つまり、VFS サポートでは、 .BR capset () -¤ò¸Æ¤Ó½Ð¤¹ºÝ¤Ë +を呼び出す際に .I hdrp->pid -¤ÎÃͤȤ·¤Æµö¤µ¤ì¤ë¤Î¤Ï 0 ¤È +の値として許されるのは 0 と .BR getpid (2) -¤¬ÊÖ¤¹ÃͤÀ¤±¤È¤Ê¤ë (¤É¤Á¤é¤ÎÃͤǤâÅù²Á¤Ç¤¢¤ë)¡£ +が返す値だけとなる (どちらの値でも等価である)。 .\"O .SS Without VFS Capability Support -.SS VFS ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç +.SS VFS ケーパビリティがサポートされていない場合 .\"O When the kernel does not support VFS capabilities, .\"O .BR capset () .\"O calls can operate on the capabilities of the thread specified by the @@ -236,17 +236,17 @@ VFS .\"O when that is nonzero, or on the capabilities of the calling thread if .\"O .I pid .\"O is 0. -¥«¡¼¥Í¥ë¤¬ VFS ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +カーネルが VFS ケーパビリティをサポートしていない場合、 .I hdrp -¤Î +の .I pid -¥Õ¥£¡¼¥ë¥É¤¬ 0 °Ê³°¤Ç¤¢¤ì¤Ð¡¢ +フィールドが 0 以外であれば、 .BR capset () -¤ÎÁàºîÂÐ¾Ý¤Ï +の操作対象は .I pid -¤Ç»ØÄꤵ¤ì¤¿¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ë¤Ê¤ë¡£ +で指定されたスレッドのケーパビリティになる。 .I pid -¤¬ 0 ¤Î¾ì¹ç¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬ÁàºîÂоݤȤʤ롣 +が 0 の場合は呼び出し元のスレッドのケーパビリティが操作対象となる。 .\"O If .\"O .I pid .\"O refers to a single-threaded process, then @@ -256,12 +256,12 @@ VFS .\"O of the type returned by .\"O .BR gettid (2). .I pid -¤¬¥·¥ó¥°¥ë¥¹¥ì¥Ã¥É¡¦¥×¥í¥»¥¹¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¡¢ +がシングルスレッド・プロセスを参照している場合、 .I pid -¤Ï°ÊÁ°¤«¤é»È¤ï¤ì¤Æ¤¤¤ë¥×¥í¥»¥¹ID ¤ò»È¤Ã¤Æ»ØÄê¤Ç¤­¤ë¡£ -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¡¦¥×¥í¥»¥¹Æâ¤Î¤¢¤ë¥¹¥ì¥Ã¥É¤òÂоݤˤ¹¤ë¾ì¹ç¤Ï¡¢ +は以前から使われているプロセスID を使って指定できる。 +マルチスレッド・プロセス内のあるスレッドを対象にする場合は、 .BR gettid (2) -¤¬ÊÖ¤¹¥¹¥ì¥Ã¥ÉID ¤òÍѤ¤¤Æ»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¡£ +が返すスレッドID を用いて指定する必要がある。 .\"O For .\"O .BR capset (), .\"O .I pid @@ -270,29 +270,29 @@ VFS .\"O .BR init (8); .\"O or a value less than \-1, in which case the change is applied .\"O to all members of the process group whose ID is \-\fIpid\fP. -¤Þ¤¿¡¢ +また、 .BR capset () -¤Ç¤Ï \-1 ¤ä \-1 ¤è¤ê¾®¤µ¤ÊÃͤò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -\-1 ¤Ï¸Æ¤Ó½Ð¤·¸µ¤È +では \-1 や \-1 より小さな値を指定することもできる。 +\-1 は呼び出し元と .BR init (8) -¤ò½ü¤¯Á´¤Æ¤Î¥¹¥ì¥Ã¥É¤òÂоݤȤ·¤ÆÊѹ¹¤ò¹Ô¤¦¤³¤È¤ò¡¢ -\-1 ¤è¤ê¾®¤µ¤ÊÃÍ¤Ï ID ¤¬ \-\fIpid\fP ¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÎÁ´¥á¥ó¥Ð -¤òÂоݤȤ·¤ÆÊѹ¹¤ò¹Ô¤¦¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +を除く全てのスレッドを対象として変更を行うことを、 +\-1 より小さな値は ID が \-\fIpid\fP のプロセスグループの全メンバ +を対象として変更を行うことを意味する。 .\"O For details on the data, see .\"O .BR capabilities (7). -¤³¤Î¥Ç¡¼¥¿¤Î¾ÜºÙ¤Ï +このデータの詳細は .BR capabilities (7) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï \-1 ¤òÊÖ¤·¡¢ +成功した場合には 0 を返す。エラーの場合には \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O The calls will fail with the error .\"O .BR EINVAL , @@ -306,22 +306,22 @@ VFS .\"O .I version .\"O value is specified. .I hdrp -¤Î¥Õ¥£¡¼¥ë¥É +のフィールド .I version -¤Ë¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤Ãͤ¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ -¸Æ¤Ó½Ð¤·¤Ï¥¨¥é¡¼ +にサポートされていない値が指定された場合、 +呼び出しはエラー .B EINVAL -¤Ç¼ºÇÔ¤·¡¢ +で失敗し、 .I version -¤Ë¥«¡¼¥Í¥ë¿ä¾©¤Î +にカーネル推奨の .B _LINUX_CAPABILITY_VERSION_? -¤òÀßÄꤹ¤ë¡£ +を設定する。 .\"O In this way, one can probe what the current .\"O preferred capability revision is. -¤³¤Î¤è¤¦¤Ë¤·¤Æ¡¢¸½ºß¤Î¿ä¾©¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥ê¥Ó¥¸¥ç¥ó¤¬²¿¤«¤ò -Ä´¤Ù¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +このようにして、現在の推奨ケーパビリティ・リビジョンが何かを +調べることができる。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O Bad memory address. @@ -330,25 +330,25 @@ VFS .\"O .I datap .\"O may be NULL only when the user is trying to determine the preferred .\"O capability version format supported by the kernel. -ÉÔÀµ¤Ê¥á¥â¥ê¥¢¥É¥ì¥¹¡£ +不正なメモリアドレス。 .I hdrp -¤Ï NULL ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +は NULL であってはならない。 .I datap -¤Ë NULL ¤ò»ØÄꤷ¤Æ¤è¤¤¤Î¤Ï¡¢¥æ¡¼¥¶¤¬¥«¡¼¥Í¥ë¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë -¿ä¾©¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¡¼¥¸¥ç¥ó¤òȽÄꤷ¤è¤¦¤È¤·¤Æ¤¤¤ë¤È¤­¤À¤±¤Ç¤¢¤ë¡£ +に NULL を指定してよいのは、ユーザがカーネルがサポートしている +推奨のケーパビリティ・バージョンを判定しようとしているときだけである。 .TP .B EINVAL .\"O One of the arguments was invalid. -°ú¤­¿ô¤Î¤É¤ì¤«¤¬Ìµ¸ú¤Ç¤¢¤ë¡£ +引き数のどれかが無効である。 .TP .B EPERM .\"O An attempt was made to add a capability to the Permitted set, or to set .\"O a capability in the Effective or Inheritable sets that is not in the .\"O Permitted set. -¡Öµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¡×¤Ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÄɲ䷤褦¤È¤·¤Æ¤¤¤ë¤«¡¢ -¤â¤·¤¯¤Ï¡Öµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¡×¤Ë´Þ¤Þ¤ì¤Ê¤¤¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò -¡Ö¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¡×¤ä¡Ö·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¡×¤Ë -¥»¥Ã¥È¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¡£ +「許可ケーパビリティセット」にケーパビリティを追加しようとしているか、 +もしくは「許可ケーパビリティセット」に含まれないケーパビリティを +「実効ケーパビリティセット」や「継承可能ケーパビリティセット」に +セットしようとしている。 .TP .B EPERM .\"O The caller attempted to use @@ -368,44 +368,44 @@ VFS .\"O field as a nonzero value (i.e., the value returned by .\"O .BR getpid (2)) .\"O instead of 0.) -¸Æ¤Ó½Ð¤·¸µ¤¬¼«Ê¬°Ê³°¤Î¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò +呼び出し元が自分以外のスレッドのケーパビリティを .BR capset () -¤ò»È¤Ã¤Æ½¤Àµ¤·¤è¤¦¤È¤·¤¿¤¬¡¢½½Ê¬¤ÊÆø¢¤¬¤Ê¤«¤Ã¤¿¡£ -VFS ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -¤³¤ÎÁàºî¤¬µö²Ä¤µ¤ì¤ë¤³¤È¤Ï·è¤·¤Æ¤Ê¤¤¡£ -VFS ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +を使って修正しようとしたが、十分な特権がなかった。 +VFS ケーパビリティをサポートしているカーネルでは、 +この操作が許可されることは決してない。 +VFS ケーパビリティをサポートしていないカーネルでは、 .B CAP_SETPCAP -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ -(¥Ð¡¼¥¸¥ç¥ó 2.6.11 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ë¤Ï¡¢ -¤³¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤¥¹¥ì¥Ã¥É¤¬ +ケーパビリティが必要である。 +(バージョン 2.6.11 より前のカーネルには、 +このケーパビリティを持たないスレッドが .I pid -¥Õ¥£¡¼¥ë¥É¤Ë 0 ¤Ç¤Ê¤¤ÃÍ (¤Ä¤Þ¤ê¡¢0 ¤ÎÂå¤ï¤ê¤Ë +フィールドに 0 でない値 (つまり、0 の代わりに .BR getpid (2) -¤¬ÊÖ¤¹ÃÍ) ¤ò»ØÄꤷ¤Æ¼«Ê¬¼«¿È¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÊѹ¹¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤Ë¤â¡¢ -¤³¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤È¤¤¤¦¥Ð¥°¤¬¤¢¤Ã¤¿¡£) +が返す値) を指定して自分自身のケーパビリティを変更しようとした場合にも、 +このエラーが発生するというバグがあった。) .TP .B ESRCH .\"O No such thread. -¤½¤Î¤è¤¦¤Ê¥¹¥ì¥Ã¥É¤¬Â¸ºß¤·¤Ê¤¤¡£ +そのようなスレッドが存在しない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These system calls are Linux-specific. -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ +これらのシステムコールは Linux 独自である。 .\"O .SH NOTES -.SH È÷¹Í +.SH 備考 .\"O The portable interface to the capability querying and setting .\"O functions is provided by the .\"O .I libcap .\"O library and is available: -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÀßÄꤷ¤¿¤ê¼èÆÀ¤·¤¿¤ê¤¹¤ëµ¡Ç½¤Î¤¿¤á¤Î°Ü¿¢À­¤¢¤ë -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï +ケーパビリティを設定したり取得したりする機能のための移植性ある +インターフェースは .I libcap -¥é¥¤¥Ö¥é¥ê¤Ë¤è¤Ã¤ÆÄ󶡤µ¤ì¤ë¡£ -¤³¤Î¥é¥¤¥Ö¥é¥ê¤Ï°Ê²¼¤«¤éÆþ¼ê¤Ç¤­¤ë: +ライブラリによって提供される。 +このライブラリは以下から入手できる: .br http://www.kernel.org/pub/linux/libs/security/linux-privs .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR clone (2), .BR gettid (2), .BR capabilities (7) diff --git a/draft/man2/chdir.2 b/draft/man2/chdir.2 index ede11787..010ded2d 100644 --- a/draft/man2/chdir.2 +++ b/draft/man2/chdir.2 @@ -40,11 +40,11 @@ .\" .TH CHDIR 2 2010-09-26 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O chdir, fchdir \- change working directory -chdir, fchdir \- ºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤ÎÊѹ¹ +chdir, fchdir \- 作業ディレクトリの変更 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int chdir(const char *" path ); @@ -54,9 +54,9 @@ chdir, fchdir \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR fchdir (): @@ -67,20 +67,20 @@ _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .br .\"O || /* Since glibc 2.12: */ _POSIX_C_SOURCE\ >=\ 200809L -|| /* glibc 2.12 °Ê¹ß: */ _POSIX_C_SOURCE\ >=\ 200809L +|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\ >=\ 200809L .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR chdir () .\"O changes the current working directory of the calling process to the .\"O directory specified in .\"O .IR path . .BR chdir () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê (current working directory) ¤ò¡¢ +は、呼び出し元プロセスの現在の作業ディレクトリ (current working directory) を、 .I path -¤Ë»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ËÊѹ¹¤¹¤ë¡£ +に指定されたディレクトリに変更する。 .PP .\"O .BR fchdir () .\"O is identical to @@ -88,29 +88,29 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O the only difference is that the directory is given as an .\"O open file descriptor. .BR fchdir () -¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤È¤·¤Æ -»ØÄꤵ¤ì¤ë°Ê³°¤Ï¡¢ +は、ディレクトリがオープンされたファイル・ディスクリプターとして +指定される以外は、 .BR chdir () -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤¹¤ë¤È¡¢0 ¤òÊÖ¤¹¡£¼ºÇÔ¤¹¤ë¤È¡¢\-1 ¤òÊÖ¤·¡¢ +成功すると、0 を返す。失敗すると、\-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤò¥»¥Ã¥È¤¹¤ë¡£ +に適切な値をセットする。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O Depending on the file system, other errors can be returned. .\"O The more .\"O general errors for .\"O .BR chdir () .\"O are listed below: -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¾¤Î¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë»ö¤¬¤¢¤ë¡£ +ファイルシステムによっては他のエラーが返される事がある。 .BR chdir () -¤Ç°ìÈÌŪ¤Ê¥¨¥é¡¼¤ò°Ê²¼¤Ëµó¤²¤ë: +で一般的なエラーを以下に挙げる: .TP .B EACCES .\"O Search permission is denied for one of the components of @@ -118,77 +118,77 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O (See also .\"O .BR path_resolution (7).) .I path -¤Î¹½À®Í×ÁǤΤ¤¤º¤ì¤«¤Ë¸¡º÷µö²Ä (search permission) ¤¬¤Ê¤¤ +の構成要素のいずれかに検索許可 (search permission) がない .RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È)¡£ +も参照すること)。 .TP .B EFAULT .\"O .I path .\"O points outside your accessible address space. -³ä¤êÅö¤Æ¤é¤ì¤¿¥¢¥É¥ì¥¹¶õ´Ö³°¤ò +割り当てられたアドレス空間外を .I path -¤¬»Ø¤·¤Æ¤¤¤ë¡£ +が指している。 .TP .B EIO .\"O An I/O error occurred. -I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +I/O エラーが発生した。 .TP .B ELOOP .\"O Too many symbolic links were encountered in resolving .\"O .IR path . .I path -¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ +を解決する際に遭遇したシンボリック・リンクが多過ぎる。 .TP .B ENAMETOOLONG .\"O .I path .\"O is too long. .I path -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENOENT .\"O The file does not exist. .\"Osato: -.\"Osato: file ¤Ç¤Ï¤Ê¤¯ directory ¤Î´Ö°ã¤¤¤«? +.\"Osato: file ではなく directory の間違いか? .\"Osato: -¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¸ºß¤·¤Ê¤¤¡£ +そのディレクトリは存在しない。 .TP .B ENOMEM .\"O Insufficient kernel memory was available. -¥«¡¼¥Í¥ë¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +カーネルに十分なメモリがない。 .TP .B ENOTDIR .\"O A component of .\"O .I path .\"O is not a directory. .I path -¤Î¹½À®Í×ÁǤ¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£ +の構成要素がディレクトリではない。 .PP .\"O The general errors for .\"O .BR fchdir () .\"O are listed below: .BR fchdir () -¤Ç°ìÈÌŪ¤Ê¥¨¥é¡¼¤ò°Ê²¼¤Ëµó¤²¤ë: +で一般的なエラーを以下に挙げる: .TP .B EACCES .\"O Search permission was denied on the directory open on .\"O .IR fd . .I fd -¤ò¥Ç¥£¥ì¥¯¥È¥ê¤È¤·¤Æ¥ª¡¼¥×¥ó¤¹¤ë¤¿¤á¤Î¸¡º÷µö²Ä¤¬¤Ê¤¤¡£ +をディレクトリとしてオープンするための検索許可がない。 .TP .B EBADF .\"O .I fd .\"O is not a valid file descriptor. .I fd -¤¬Å¬Àڤʥե¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ç¤Ê¤¤¡£ +が適切なファイル・ディスクリプターでない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.4BSD, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The current working directory is the starting point for interpreting .\"O relative pathnames (those not starting with \(aq/\(aq)). -¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢ÁêÂХѥ¹Ì¾ (\(aq/\(aq) ¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤Ê¤¤¥Ñ¥¹Ì¾) ¤ò -²ò¼á¤¹¤ëºÝ¤Î³«»ÏÅÀ¤Ç¤¢¤ë¡£ +現在の作業ディレクトリは、相対パス名 (\(aq/\(aq) で始まっていないパス名) を +解釈する際の開始点である。 .\"O A child process created via .\"O .BR fork (2) @@ -196,10 +196,10 @@ SVr4, 4.4BSD, POSIX.1-2001. .\"O The current working directory is left unchanged by .\"O .BR execve (2). .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢¿Æ¥×¥í¥»¥¹¤Î¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤ò -·Ñ¾µ¤¹¤ë¡£ +で作成された子プロセスは、親プロセスの現在の作業ディレクトリを +継承する。 .BR execve (2) -¤ÎÁ°¸å¤Ç¡¢¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +の前後で、現在の作業ディレクトリは変更されない。 .\"O The prototype for .\"O .BR fchdir () @@ -209,13 +209,13 @@ SVr4, 4.4BSD, POSIX.1-2001. .\"O .B _XOPEN_SOURCE .\"O is defined with the value 500. .BR fchdir () -¤Î¥×¥í¥È¥¿¥¤¥×¤¬Í­¸ú¤Ë¤Ê¤ë¤Î¤Ï¡¢ +のプロトタイプが有効になるのは、 .B _BSD_SOURCE -¤òÄêµÁ¤·¤¿¾ì¹ç¤«¡¢ +を定義した場合か、 .B _XOPEN_SOURCE -¤òÃÍ 500 ¤ÇÄêµÁ¤·¤¿¾ì¹ç¤Î¤ß¤Ç¤¢¤ë¡£ +を値 500 で定義した場合のみである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chroot (2), .BR getcwd (3), .BR path_resolution (7) diff --git a/draft/man2/chmod.2 b/draft/man2/chmod.2 index a05e9476..fc9a2b40 100644 --- a/draft/man2/chmod.2 +++ b/draft/man2/chmod.2 @@ -38,11 +38,11 @@ .\" .TH CHMOD 2 2010-09-26 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O chmod, fchmod \- change permissions of a file -chmod, fchmod \- ¥Õ¥¡¥¤¥ë¤Î¥â¡¼¥É¤òÊѹ¹¤¹¤ë +chmod, fchmod \- ファイルのモードを変更する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int chmod(const char *" path ", mode_t " mode ); @@ -52,9 +52,9 @@ chmod, fchmod \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -66,52 +66,52 @@ _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .br .\"O || /* Since glibc 2.12: */ _POSIX_C_SOURCE\ >=\ 200809L -|| /* glibc 2.12 °Ê¹ß: */ _POSIX_C_SOURCE\ >=\ 200809L +|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\ >=\ 200809L .PD .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These system calls change the permissions of a file. .\"O They differ only in how the file is specified: -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹µö²Ä (permission) ¤òÊѹ¹¤¹¤ë¡£ -¥·¥¹¥Æ¥à¥³¡¼¥ë´Ö¤Î°ã¤¤¤Ï¡¢¥Õ¥¡¥¤¥ë¤Î»ØÄê¤Î»ÅÊý¤À¤±¤Ç¤¢¤ë¡£ +これらのシステムコールはファイルのアクセス許可 (permission) を変更する。 +システムコール間の違いは、ファイルの指定の仕方だけである。 .IP * 2 .\"O .BR chmod () .\"O changes the permissions of the file specified whose pathname is given in .\"O .IR path , .\"O which is dereferenced if it is a symbolic link. .BR chmod () -¤Ï¡¢ +は、 .I path -¤Ç»ØÄꤵ¤ì¤¿¥Ñ¥¹Ì¾¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤Îµö²Ä¤òÊѹ¹¤¹¤ë¡£ +で指定されたパス名を持つファイルの許可を変更する。 .I path -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Î¾ì¹ç¤Ï¡¢¥ê¥ó¥¯¤ÎŸ³«¤¬¹Ô¤ï¤ì¤ë¡£ +がシンボリック・リンクの場合は、リンクの展開が行われる。 .IP * .\"O .BR fchmod () .\"O changes the permissions of the file referred to by the open file descriptor .\"O .IR fd . .BR fchmod () -¤Ï¡¢¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +は、オープンされたファイルディスクリプタ .I fd -¤Ë¤è¤ê»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Îµö²Ä¤òÊѹ¹¤¹¤ë¡£ +により参照されるファイルの許可を変更する。 .PP .\"O The new file permissions are specified in .\"O .IR mode , .\"O which is a bit mask created by ORing together zero or .\"O more of the following: -¿·¤·¤¤¥Õ¥¡¥¤¥ëµö²Ä¤Ï +新しいファイル許可は .I mode -¤Ç»ØÄꤵ¤ì¤ë¡£ +で指定される。 .I mode -¤Ï¡¢°Ê²¼¤Ë¼¨¤¹ÃͤΠ0 ¸Ä°Ê¾å¤Î OR (ÏÀÍýÏÂ) ¤ò¤È¤Ã¤ÆºîÀ®¤µ¤ì¤ë -¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ë¡£ +は、以下に示す値の 0 個以上の OR (論理和) をとって作成される +ビットマスクである。 .TP 18 .BR S_ISUID " (04000)" .\"O set-user-ID (set process effective user ID on .\"O .BR execve (2)) set-user-ID .RB ( execve (2) -»þ¤Ë¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤Ë¥»¥Ã¥È¤µ¤ì¤ë) +時にプロセスの実効ユーザ ID にセットされる) .TP .BR S_ISGID " (02000)" .\"O set-group-ID (set process effective group ID on @@ -123,73 +123,73 @@ set-user-ID .\"O and .\"O .BR mkdir (2)) set-group-ID -(°Ê²¼¤Î¾ì¹ç¤Ë +(以下の場合に .RB ( execve (2) -¼Â¹Ô»þ¤Ë¥×¥í¥»¥¹¤Î¼Â¸ú¥°¥ë¡¼¥× ID ¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡¢ -¶¯À©¥í¥Ã¥¯ (mandatory locking) ¤ò¹Ô¤¦ +実行時にプロセスの実効グループ ID にセットされる、 +強制ロック (mandatory locking) を行う .RB ( fcntl (2) -¤ÎÀâÌÀ¤ò»²¾È)¡¢ -¿·¤·¤¤¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥×¤È¤·¤Æ¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤ÈƱ¤¸¤â¤Î¤ò»È¤¦ +の説明を参照)、 +新しいファイルのグループとして親ディレクトリと同じものを使う .RB ( chown (2) -¤È +と .BR ( mkdir (2) -¤ÎÀâÌÀ¤ò»²¾È) +の説明を参照) .TP .BR S_ISVTX " (01000)" .\"O sticky bit (restricted deletion flag, as described in .\"O .BR unlink (2)) -¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È (sticky bit) (ºï½üÀ©¸Â¥Õ¥é¥°¡¢ +スティッキー・ビット (sticky bit) (削除制限フラグ、 .BR unlink (2) -¤ÎÀâÌÀ¤ò»²¾È) +の説明を参照) .TP .BR S_IRUSR " (00400)" .\"O read by owner -½êÍ­¼Ô¤Ë¤è¤ëÆɤ߼è¤ê +所有者による読み取り .TP .BR S_IWUSR " (00200)" .\"O write by owner -½êÍ­¼Ô¤Ë¤è¤ë½ñ¤­¹þ¤ß +所有者による書き込み .TP .BR S_IXUSR " (00100)" .\"O execute/search by owner ("search" applies for directories, .\"O and means that entries within the directory can be accessed) -½êÍ­¼Ô¤Ë¤è¤ë¼Â¹Ô (execute) / ¸¡º÷ (search) -(¡Ö¸¡º÷¡×¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ·¤ÆŬÍѤµ¤ì¤ë¤â¤Î¤Ç¡¢ -¤½¤Î¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥¨¥ó¥È¥ê¡¼¤Ø¥¢¥¯¥»¥¹¤Ç¤­¤ë¤«¤ò°ÕÌ£¤¹¤ë) +所有者による実行 (execute) / 検索 (search) +(「検索」はディレクトリに対して適用されるもので、 +そのディレクトリ内のエントリーへアクセスできるかを意味する) .TP .BR S_IRGRP " (00040)" .\"O read by group -¥°¥ë¡¼¥×¤Ë¤è¤ëÆɤ߼è¤ê +グループによる読み取り .TP .BR S_IWGRP " (00020)" .\"O write by group -¥°¥ë¡¼¥×¤Ë¤è¤ë½ñ¤­¹þ¤ß +グループによる書き込み .TP .BR S_IXGRP " (00010)" .\"O execute/search by group -¥°¥ë¡¼¥×¤Ë¤è¤ë¼Â¹Ô / ¸¡º÷ +グループによる実行 / 検索 .TP .BR S_IROTH " (00004)" .\"O read by others -¾¿Í (others) ¤Ë¤è¤ëÆɤ߼è¤ê +他人 (others) による読み取り .TP .BR S_IWOTH " (00002)" .\"O write by others -¾¿Í¤Ë¤è¤ë½ñ¤­¹þ¤ß +他人による書き込み .TP .BR S_IXOTH " (00001)" .\"O execute/search by others -¾¿Í¤Ë¤è¤ë¼Â¹Ô / ¸¡º÷ +他人による実行 / 検索 .PP .\"O The effective UID of the calling process must match the owner of the file, .\"O or the process must be privileged (Linux: it must have the .\"O .B CAP_FOWNER .\"O capability). -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú (effective) UID ¤¬¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤È°ìÃפ¹¤ë¤«¡¢ -¤½¤Î¥×¥í¥»¥¹¤¬Æø¢¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(Linux ¤Ç¤Ï +呼び出したプロセスの実効 (effective) UID がファイルの所有者と一致するか、 +そのプロセスが特権を持たなければならない +(Linux では .B CAP_FOWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£ +ケーパビリティ (capability) を持たなければならない)。 .\"O If the calling process is not privileged (Linux: does not have the .\"O .B CAP_FSETID @@ -199,155 +199,155 @@ set-group-ID .\"O .B S_ISGID .\"O bit will be turned off, .\"O but this will not cause an error to be returned. -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ËÆø¢¤¬¤Ê¤¯ (Linux ¤Ç¤Ï +呼び出したプロセスに特権がなく (Linux では .B CAP_FSETID -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¤Ê¤¯)¡¢¤«¤Ä¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥× ID ¤¬ -¥×¥í¥»¥¹¤Î¼Â¸ú¥°¥ë¡¼¥× ID ¤Þ¤¿¤ÏÊä½õŪ¤Ê¥°¥ë¡¼¥× ID ¤Ë¥Þ¥Ã¥Á¤·¤Ê¤¤¾ì¹ç¡¢ +ケーパビリティがなく)、かつファイルのグループ ID が +プロセスの実効グループ ID または補助的なグループ ID にマッチしない場合、 .B S_ISGID -¥Ó¥Ã¥È¤Ï¥ª¥Õ¤Ë¤µ¤ì¤ë¤¬¡¢¤³¤ì¤Ë¤è¤Ã¤Æ¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ +ビットはオフにされるが、これによってエラーが返されることはない。 .\"O As a security measure, depending on the file system, .\"O the set-user-ID and set-group-ID execution bits .\"O may be turned off if a file is written. -°ÂÁ´¤Î¤¿¤á¤Î½èÃ֤Ȥ·¤Æ¡¢ -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¡¢¥Õ¥¡¥¤¥ë¤Î½ñ¤­¹þ¤ß¤ò¹Ô¤¦»þ¤Ë -¥»¥Ã¥È¡¦¥æ¡¼¥¶¡¼ ID ¤È¥»¥Ã¥È¡¦¥°¥ë¡¼¥× ID ¥Ó¥Ã¥È¤È¼Â¹Ô¥Ó¥Ã¥È¤¬ -¥ª¥Õ¤Ë¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ +安全のための処置として、 +ファイル・システムによっては、ファイルの書き込みを行う時に +セット・ユーザー ID とセット・グループ ID ビットと実行ビットが +オフにされることがある。 .\"O (On Linux this occurs if the writing process does not have the .\"O .B CAP_FSETID .\"O capability.) -(Linux ¤Ç¤Ï¡¢½ñ¤­¹þ¤ß¥×¥í¥»¥¹¤¬ +(Linux では、書き込みプロセスが .B CAP_FSETID -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¡¢¤³¤ì¤¬µ¯¤³¤ë¡£) +ケーパビリティを持っていない場合に、これが起こる。) .\"O On some file systems, only the superuser can set the sticky bit, .\"O which may have a special meaning. .\"O For the sticky bit, and for set-user-ID and set-group-ID bits on .\"O directories, see .\"O .BR stat (2). -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ÎÃæ¤Ë¤Ï¡¢¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼¤À¤±¤¬ -ÆÃÊ̤ΰÕÌ£¤ò»ý¤Ä¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È¤òÀßÄê¤Ç¤­¤ë¤â¤Î¤¬¤¢¤ë¡£ -¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È¤È¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ¹¤ë -¥»¥Ã¥È¡¦¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×)¡¦ID ¥Ó¥Ã¥È¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +ファイル・システムの中には、スーパー・ユーザーだけが +特別の意味を持つスティッキー・ビットを設定できるものがある。 +スティッキー・ビットとディレクトリに対する +セット・ユーザー (グループ)・ID ビットについては、 .BR stat (2) -¤ò¸«¤è¡£ +を見よ。 .\"O On NFS file systems, restricting the permissions will immediately influence .\"O already open files, because the access control is done on the server, but .\"O open files are maintained by the client. .\"O Widening the permissions may be .\"O delayed for other clients if attribute caching is enabled on them. -NFS ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ç¤Ï¡¢¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤òÀ©¸Â¤¹¤ë¤È¡¢ -´û¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¤¹¤°¤Ë±Æ¶Á¤¬µÚ¤Ö¡£ -¤³¤ì¤Ï¥¢¥¯¥»¥¹À©¸æ¤¬¥µ¡¼¥Ð¡¼¾å¤Ç¹Ô¤ï¤ì¤Æ¤¤¤ë¤¬¡¢ -¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Ï¥¯¥é¥¤¥¢¥ó¥È¦¤Ç´ÉÍý¤µ¤ì¤Æ¤¤¤ë¤¿¤á¤Ç¤¢¤ë¡£ -¥¯¥é¥¤¥¢¥ó¥È¦¤Ç¥Õ¥¡¥¤¥ë°À­¤Î¥­¥ã¥Ã¥·¥å¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢ -¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ÎÀ©¸Â¤ò´Ë¤¯¤¹¤ë¤È¡¢ -¾¤Î¥¯¥é¥¤¥¢¥ó¥È¤Ë¾ðÊó¤¬ÅÁ¤ï¤ë¤Î¤¬ÃÙ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +NFS ファイルシステム上では、パーミッションを制限すると、 +既にオープンされているファイルに対してすぐに影響が及ぶ。 +これはアクセス制御がサーバー上で行われているが、 +オープンされているファイルはクライアント側で管理されているためである。 +クライアント側でファイル属性のキャッシュが有効になっている場合に、 +パーミッションの制限を緩くすると、 +他のクライアントに情報が伝わるのが遅れるかもしれない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤¹¤ë¤È¡¢0 ¤òÊÖ¤¹¡£¼ºÇÔ¤¹¤ë¤È¡¢\-1¤òÊÖ¤·¡¢ +成功すると、0 を返す。失敗すると、\-1を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤòÀßÄꤹ¤ë¡£ +に適切な値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O Depending on the file system, other errors can be returned. .\"O The more general errors for .\"O .BR chmod () .\"O are listed below: -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¾¤Î¥¨¥é¡¼¤òÊÖ¤¹¾ì¹ç¤¬¤¢¤ë¡£ +ファイル・システムによっては他のエラーを返す場合がある。 .BR chmod () -¤Ç°ìÈÌŪ¤Ê¥¨¥é¡¼¤ò°Ê²¼¤Ëµó¤²¤ë¡£ +で一般的なエラーを以下に挙げる。 .TP .B EACCES .\"O Search permission is denied on a component of the path prefix. .\"O (See also .\"O .BR path_resolution (7).) -¥Ñ¥¹Ì¾¤Î¹½À®Í×ÁǤ˸¡º÷µö²Ä¤¬¤Ê¤¤ +パス名の構成要素に検索許可がない .RB ( path_resolution (7) -¤â¸«¤è)¡£ +も見よ)。 .TP .B EFAULT .\"O .I path .\"O points outside your accessible address space. .I path -¤¬³ä¤êÅö¤Æ¤é¤ì¤¿¥¢¥É¥ì¥¹¶õ´Ö³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +が割り当てられたアドレス空間外を指している。 .TP .B EIO .\"O An I/O error occurred. -I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +I/O エラーが発生した。 .TP .B ELOOP .\"O Too many symbolic links were encountered in resolving .\"O .IR path . .I path -¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ +を解決する際に遭遇したシンボリック・リンクが多過ぎる。 .TP .B ENAMETOOLONG .\"O .I path .\"O is too long. .I path -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENOENT .\"O The file does not exist. -¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ +ファイルが存在しない。 .TP .B ENOMEM .\"O Insufficient kernel memory was available. -¥«¡¼¥Í¥ë¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +カーネルに十分なメモリがない。 .TP .B ENOTDIR .\"O A component of the path prefix is not a directory. -¥Ñ¥¹Ì¾¤Î¹½À®Í×ÁǤ¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£ +パス名の構成要素がディレクトリではない。 .TP .B EPERM .\"O The effective UID does not match the owner of the file, .\"O and the process is not privileged (Linux: it does not have the .\"O .B CAP_FOWNER .\"O capability). -¼Â¸ú UID ¤¬¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤È°ìÃפ»¤º¡¢¥×¥í¥»¥¹¤ËÆø¢¤¬¤Ê¤¤ -(Linux ¤Ç¤Ï +実効 UID がファイルの所有者と一致せず、プロセスに特権がない +(Linux では .B CAP_FOWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤)¡£ +ケーパビリティを持たない)。 .TP .B EROFS .\"O The named file resides on a read-only file system. -¥Õ¥¡¥¤¥ë¤¬Æɤ߹þ¤ßÀìÍÑ (read only) ¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¾å¤Ë¤¢¤ë¡£ +ファイルが読み込み専用 (read only) のファイル・システム上にある。 .PP .\"O The general errors for .\"O .BR fchmod () .\"O are listed below: .BR fchmod () -¤Ç°ìÈÌŪ¤Ê¥¨¥é¡¼¤òµó¤²¤ë: +で一般的なエラーを挙げる: .TP .B EBADF .\"O The file descriptor .\"O .I fd .\"O is not valid. -¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ +ファイル・ディスクリプター .I fd -¤¬Í­¸ú¤Ç¤Ê¤¤¡£ +が有効でない。 .TP .B EIO .\"O See above. -¾åµ­¤ò»²¾È¡£ +上記を参照。 .TP .B EPERM .\"O See above. -¾åµ­¤ò»²¾È¡£ +上記を参照。 .TP .B EROFS .\"O See above. -¾åµ­¤ò»²¾È¡£ +上記を参照。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.4BSD, SVr4, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chown (2), .BR execve (2), .BR fchmodat (2), diff --git a/draft/man2/chown.2 b/draft/man2/chown.2 index 8d288f8f..ae0b99b0 100644 --- a/draft/man2/chown.2 +++ b/draft/man2/chown.2 @@ -46,11 +46,11 @@ .\" .TH CHOWN 2 2010-09-26 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O chown, fchown, lchown \- change ownership of a file -chown, fchown, lchown \- ¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤òÊѹ¹¤¹¤ë +chown, fchown, lchown \- ファイルの所有者を変更する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int chown(const char *" path ", uid_t " owner ", gid_t " group ); @@ -62,9 +62,9 @@ chown, fchown, lchown \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR fchown (), @@ -76,62 +76,62 @@ _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .br .\"O || /* Since glibc 2.12: */ _POSIX_C_SOURCE\ >=\ 200809L -|| /* glibc 2.12 °Ê¹ß: */ _POSIX_C_SOURCE\ >=\ 200809L +|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\ >=\ 200809L .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These system calls change the owner and group of a file. .\"O The differ only in how the file is specified: -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô (owner) ¤È¥°¥ë¡¼¥×¤òÊѹ¹¤¹¤ë¡£ -¥·¥¹¥Æ¥à¥³¡¼¥ë´Ö¤Î°ã¤¤¤Ï¡¢¥Õ¥¡¥¤¥ë¤Î»ØÄê¤Î»ÅÊý¤À¤±¤Ç¤¢¤ë¡£ +これらのシステムコールは、ファイルの所有者 (owner) とグループを変更する。 +システムコール間の違いは、ファイルの指定の仕方だけである。 .IP * 2 .\"O .BR chown () .\"O changes the ownership of the file specified by .\"O .IR path , .\"O which is dereferenced if it is a symbolic link. .BR chown () -¤Ï +は .I path -¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î½êÍ­¸¢¤òÊѹ¹¤¹¤ë¡£ +で指定されたファイルの所有権を変更する。 .I path -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Î¾ì¹ç¤Ï¡¢¥ê¥ó¥¯¤ÎŸ³«¤¬¹Ô¤ï¤ì¤ë¡£ +がシンボリック・リンクの場合は、リンクの展開が行われる。 .IP * .\"O .BR fchown () .\"O changes the ownership of the file referred to by the open file descriptor .\"O .IR fd . .BR fchown () -¤Ï¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +はオープンされたファイルディスクリプタ .I fd -¤Ë¤è¤ê»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Î½êÍ­¸¢¤òÊѹ¹¤¹¤ë¡£ +により参照されるファイルの所有権を変更する。 .IP * .\"O .BR lchown () .\"O is like .\"O .BR chown (), .\"O but does not dereference symbolic links. .BR lchown () -¤Ï +は .BR chown () -¤ÈƱ¤¸¤À¤¬¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤òŸ³«¤·¤Ê¤¤ÅÀ¤¬°Û¤Ê¤ë¡£ +と同じだが、シンボリック・リンクを展開しない点が異なる。 .PP .\"O Only a privileged process (Linux: one with the .\"O .B CAP_CHOWN .\"O capability) may change the owner of a file. -Æø¢¤ò»ý¤Ä¥×¥í¥»¥¹ (Linux ¤Ç¤Ï +特権を持つプロセス (Linux では .B CAP_CHOWN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤Ä¥×¥í¥»¥¹) ¤À¤±¤¬ -¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤òÊѹ¹¤Ç¤­¤ë¡£ +ケーパビリティ (capability) を持つプロセス) だけが +ファイルの所有者を変更できる。 .\"O The owner of a file may change the group of the file .\"O to any group of which that owner is a member. -¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤Ï¡¢¤½¤Î½êÍ­¼Ô¤¬Â°¤·¤Æ¤¤¤ë¥°¥ë¡¼¥×¤Î¤¤¤º¤ì¤«¤Ë -¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥×¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +ファイルの所有者は、その所有者が属しているグループのいずれかに +ファイルのグループを変更することができる。 .\"O A privileged process (Linux: with .\"O .BR CAP_CHOWN ) .\"O may change the group arbitrarily. -Æø¢ (Linux ¤Ç¤Ï +特権 (Linux では .BR CAP_CHOWN ) -¤ò»ý¤Ä¥×¥í¥»¥¹¤Ï¡¢Ç¤°Õ¤Î¥°¥ë¡¼¥×¤ËÊѹ¹¤Ç¤­¤ë¡£ +を持つプロセスは、任意のグループに変更できる。 .\"O If the .\"O .I owner @@ -139,9 +139,9 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O .I group .\"O is specified as \-1, then that ID is not changed. .I owner -¤Þ¤¿¤Ï +または .I group -¤Ë \-1 ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¤½¤ì¤é¤Î ID ¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +に \-1 が指定された場合、それらの ID は変更されない。 .\"O When the owner or group of an executable file are .\"O changed by an unprivileged user the @@ -152,157 +152,157 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O POSIX does not specify whether .\"O this also should happen when root does the .\"O .BR chown (); -ÈóÆø¢¥æ¡¼¥¶¡¼¤Ë¤è¤ê¼Â¹Ô¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤Þ¤¿¤Ï¥°¥ë¡¼¥×¤¬ -Êѹ¹¤µ¤ì¤¿¾ì¹ç¤Ï +非特権ユーザーにより実行ファイルの所有者またはグループが +変更された場合は .B S_ISUID -¤È +と .B ISGID -¥â¡¼¥É¥Ó¥Ã¥È¤Ï¥¯¥ê¥¢¤µ¤ì¤ë¡£ -POSIX ¤Ï¤³¤ÎÆ°ºî¤ä¥ë¡¼¥È¤¬ +モードビットはクリアされる。 +POSIX はこの動作やルートが .BR chown () -¤ò¹Ô¤Ê¤Ã¤¿¾ì¹ç¤Ë¤Ä¤¤¤Æ¤ÏÆä˻ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +を行なった場合については特に指定されていない。 .\"O the Linux behavior depends on the kernel version. -Linux ¤Ë¤ª¤±¤ëÆ°ºî¤Ï¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë°Í¸¤¹¤ë¡£ +Linux における動作はカーネルのバージョンに依存する。 .\"O .\" In Linux 2.0 kernels, superuser was like everyone else .\"O .\" In 2.2, up to 2.2.12, these bits were not cleared for superuser. .\"O .\" Since 2.2.13, superuser is once more like everyone else. -.\" Linux 2.0 ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼¤Ç¤ÎÆ°ºî¤Ï -.\" ¾¤Î¥æ¡¼¥¶¡¼¤Î¾ì¹ç¤ÈƱ¤¸¤Ç¤¢¤Ã¤¿¡£ -.\" 2.2 ¤Ç¤Ï¡¢2.2.12 ¤Þ¤Ç¤Ï¡¢¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼¤Î¾ì¹ç¤Ë¤Ï -.\" ¤³¤ì¤é¤Î¥Ó¥Ã¥È¤Ï¥¯¥ê¥¢¤µ¤ì¤Ê¤¯¤Ê¤Ã¤¿¡£ -.\" 2.2.13 °Ê¹ß¤Ç¤Ï¡¢¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼¤Ç¤ÎÆ°ºî¤Ï -.\" ºÆ¤Ó¾¤Î¥æ¡¼¥¶¡¼¤Î¾ì¹ç¤ÈƱ¤¸¤Ë¤Ê¤Ã¤¿¡£ +.\" Linux 2.0 カーネルでは、スーパー・ユーザーでの動作は +.\" 他のユーザーの場合と同じであった。 +.\" 2.2 では、2.2.12 までは、スーパー・ユーザーの場合には +.\" これらのビットはクリアされなくなった。 +.\" 2.2.13 以降では、スーパー・ユーザーでの動作は +.\" 再び他のユーザーの場合と同じになった。 .\"O In case of a non-group-executable file (i.e., one for which the .\"O .B S_IXGRP .\"O bit is not set) the .\"O .B S_ISGID .\"O bit indicates mandatory locking, and is not cleared by a .\"O .BR chown (). -È󥰥롼¥×¼Â¹Ô¥Õ¥¡¥¤¥ë +非グループ実行ファイル .RB ( S_IXGRP -¥Ó¥Ã¥È¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¥Õ¥¡¥¤¥ë) ¤Î¾ì¹ç¤Ë¤Ï +ビットが設定されていないファイル) の場合には .B S_ISGID -¥Ó¥Ã¥È¤Ï¶¯À©¥í¥Ã¥¯ (mandatory locking) ¤ò°ÕÌ£¤·¤Æ¤¤¤ë¡£ -¤½¤·¤Æ¤½¤ì¤Ï +ビットは強制ロック (mandatory locking) を意味している。 +そしてそれは .BR chown () -¤Ç¤Ï¥¯¥ê¥¢¤Ç¤­¤Ê¤¤¡£ +ではクリアできない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤¹¤ë¤È¡¢0 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤¹¤ë¤È¡¢\-1 ¤òÊÖ¤·¡¢ +成功すると、0 を返す。 +失敗すると、\-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤòÀßÄꤹ¤ë¡£ +に適切な値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O Depending on the file system, other errors can be returned. .\"O The more general errors for .\"O .BR chown () .\"O are listed below. -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¾¤Î¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë»ö¤¬¤¢¤ë¡£ +ファイルシステムによっては他のエラーが返される事がある。 .B chmod -¤Ç°ìÈÌŪ¤Ê¥¨¥é¡¼¤ò°Ê²¼¤Ëµó¤²¤ë¡£ +で一般的なエラーを以下に挙げる。 .TP .B EACCES .\"O Search permission is denied on a component of the path prefix. .\"O (See also .\"O .BR path_resolution (7).) .I path -¤Î¹½À®Í×ÁǤ˸¡º÷µö²Ä (search permission) ¤¬¤Ê¤¤ +の構成要素に検索許可 (search permission) がない .RB ( path_resolution (7) -¤â»²¾È)¡£ +も参照)。 .TP .B EFAULT .\"O .I path .\"O points outside your accessible address space. .I path -¤¬³ä¤êÅö¤Æ¤é¤ì¤¿¥¢¥É¥ì¥¹¶õ´Ö³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +が割り当てられたアドレス空間外を指している。 .TP .B ELOOP .\"O Too many symbolic links were encountered in resolving .\"O .IR path . .I path -¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ +を解決する際に遭遇したシンボリック・リンクが多過ぎる。 .TP .B ENAMETOOLONG .\"O .I path .\"O is too long. .I path -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENOENT .\"O The file does not exist. -¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ +ファイルが存在しない。 .TP .B ENOMEM .\"O Insufficient kernel memory was available. -¥«¡¼¥Í¥ë¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +カーネルに十分なメモリがない。 .TP .B ENOTDIR .\"O A component of the path prefix is not a directory. .I path -¤Î¹½À®Í×ÁǤ¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +の構成要素がディレクトリでない。 .TP .B EPERM .\"O The calling process did not have the required permissions .\"O (see above) to change owner and/or group. -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ë½êÍ­¼Ô¤Þ¤¿¤Ï¥°¥ë¡¼¥× (¤â¤·¤¯¤Ï¤½¤ÎξÊý) ¤òÊѹ¹¤¹¤ë¤¿¤á¤Ë -Í׵ᤵ¤ì¤ëµö²Ä (¾åµ­¤ò»²¾È) ¤¬¤Ê¤¤¡£ +呼び出したプロセスに所有者またはグループ (もしくはその両方) を変更するために +要求される許可 (上記を参照) がない。 .TP .B EROFS .\"O The named file resides on a read-only file system. -»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤¬Æɤ߹þ¤ßÀìÍÑ (read-only) ¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¾å¤Ë¤¢¤ë¡£ +指定したファイルが読み込み専用 (read-only) のファイル・システム上にある。 .PP .\"O The general errors for .\"O .BR fchown () .\"O are listed below: .BR fchown () -¤Ç°ìÈÌŪ¤Ê¥¨¥é¡¼¤ò°Ê²¼¤Ëµó¤²¤ë: +で一般的なエラーを以下に挙げる: .TP .B EBADF .\"O The descriptor is not valid. -¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤¬Í­¸ú¤Ç¤Ê¤¤¡£ +ディスクリプターが有効でない。 .TP .B EIO .\"O A low-level I/O error occurred while modifying the inode. -i ¥Î¡¼¥É (inode) ¤òÊѹ¹¤¹¤ëºÝ¤ËÄã¥ì¥Ù¥ë I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +i ノード (inode) を変更する際に低レベル I/O エラーが発生した。 .TP .B ENOENT .\"O See above. -¾åµ­¤ò»²¾È¡£ +上記を参照。 .TP .B EPERM .\"O See above. -¾åµ­¤ò»²¾È¡£ +上記を参照。 .TP .B EROFS .\"O See above. -¾åµ­¤ò»²¾È¡£ +上記を参照。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.4BSD, SVr4, POSIX.1-2001. .\"O The 4.4BSD version can only be .\"O used by the superuser (that is, ordinary users cannot give away files). -4.4BSD ÈǤǤϥ¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼¤Î¤ß¤¬»ÈÍѤǤ­¤ë -(¤Ä¤Þ¤ê¡¢ÉáÄ̤Υ桼¥¶¡¼¤Ï¥Õ¥¡¥¤¥ë¤ò¼êÊü¤¹¤³¤È¤Ï¤Ç¤­¤Ê¤¤)¡£ +4.4BSD 版ではスーパー・ユーザーのみが使用できる +(つまり、普通のユーザーはファイルを手放すことはできない)。 .\"O .\" chown(): .\"O .\" SVr4 documents EINVAL, EINTR, ENOLINK and EMULTIHOP returns, but no .\"O .\" ENOMEM. POSIX.1 does not document ENOMEM or ELOOP error conditions. .\" chown(): -.\" SVr4 ¤Ë¤Ï EINVAL, EINTR, ENOLINK, EMULTIHOP ¤òÊÖ¤¹¤Èµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -.\" ENOMEM ¤Ï¤Ê¤¤¡£ -.\" POSIX.1 ¤Ë¤Ï ENOMEM, ELOOP ¤Ë¤Ä¤¤¤Æµ­ºÜ¤Ï¤Ê¤¤¡£ +.\" SVr4 には EINVAL, EINTR, ENOLINK, EMULTIHOP を返すと記載されているが、 +.\" ENOMEM はない。 +.\" POSIX.1 には ENOMEM, ELOOP について記載はない。 .\"O .\" fchown(): .\"O .\" SVr4 documents additional EINVAL, EIO, EINTR, and ENOLINK .\"O .\" error conditions. .\" fchown(): -.\" SVr4 ¤Ë¤Ï¾¤Ë EINVAL, EIO, EINTR, ENOLINK ¥¨¥é¡¼¾õÂ֤ˤĤ¤¤Æ¤Îµ­ºÜ¤¬¤¢¤ë¡£ +.\" SVr4 には他に EINVAL, EIO, EINTR, ENOLINK エラー状態についての記載がある。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O When a new file is created (by, for example, .\"O .BR open (2) .\"O or @@ -310,21 +310,21 @@ i .\"O its owner is made the same as the file system user ID of the .\"O creating process. .RB ( open (2) -¤ä +や .BR mkdir (2) -¤Ê¤É¤Ë¤è¤ê) ¿·¤·¤¤¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤ë¤È¤­¡¢ -¤½¤Î½êÍ­¼Ô¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¡¦¥æ¡¼¥¶ ID ¤È -Ʊ¤¸¤ËÀßÄꤵ¤ì¤ë¡£ +などにより) 新しいファイルが作成されるとき、 +その所有者は呼び出したプロセスのファイルシステム・ユーザ ID と +同じに設定される。 .\"O The group of the file depends on a range of factors, .\"O including the type of file system, .\"O the options used to mount the file system, .\"O and whether or not the set-group-ID permission bit is enabled .\"O on the parent directory. -¤½¤Î¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥×¤Ï¤¤¤¯¤Ä¤«¤ÎÍ×°ø¤Ë¤è¤ê·èÄꤵ¤ì¤ë¡£ -¤½¤ÎÍ×°ø¤È¤·¤Æ¤Ï¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¼ïÎà¡¢¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Þ¥¦¥ó¥È»þ¤Ë -»ÈÍѤµ¤ì¤¿¥ª¥×¥·¥ç¥ó¡¢¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ç set-group-ID µö²Ä¥Ó¥Ã¥È¤¬ -Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤É¤¦¤«¡¢¤¬¤¢¤ë¡£ +そのファイルのグループはいくつかの要因により決定される。 +その要因としては、 +ファイルシステムの種類、そのファイルシステムのマウント時に +使用されたオプション、親ディレクトリで set-group-ID 許可ビットが +有効になっているどうか、がある。 .\"O If the file system supports the .\"O .I "\-o\ grpid" .\"O (or, synonymously @@ -335,46 +335,46 @@ i .\"O .IR "\-o\ sysvgroups" ) .\"O .BR mount (8) .\"O options, then the rules are as follows: -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ +ファイルシステムが .BR mount (8) -¥ª¥×¥·¥ç¥ó¤Î +オプションの .I "\-o\ grpid" .RI ( "\-o\ bsdgroups" -¤âƱµÁ¸ì) ¤È +も同義語) と .I "\-o\ nogrpid" .RI ( "\-o sysvgroups" -¤âƱµÁ¸ì) ¤ËÂбþ¤·¤Æ¤¤¤ë¾ì¹ç¡¢¥ë¡¼¥ë¤Ï°Ê²¼¤ÎÄ̤ê¤È¤Ê¤ë¡£ +も同義語) に対応している場合、ルールは以下の通りとなる。 .IP * 2 .\"O If the file system is mounted with .\"O .IR "\-o\ grpid" , .\"O then the group of a new file is made .\"O the same as that of the parent directory. -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ +ファイルシステムが .I "\-o\ grpid" -ÉÕ¤­¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¿·¤·¤¤¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥×¤Ï -¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Î¥°¥ë¡¼¥×¤ÈƱ¤¸¤Ë¤Ê¤ë¡£ +付きでマウントされている場合、新しいファイルのグループは +親ディレクトリのグループと同じになる。 .IP * .\"O If the file system is mounted with .\"O .IR "\-o\ nogrpid" .\"O and the set-group-ID bit is disabled on the parent directory, .\"O then the group of a new file is made the same as the .\"O process's file system GID. -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ +ファイルシステムが .I "\-o\ nogrpid" -ÉÕ¤­¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤ª¤ê¡¢¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï set-group-ID ¥Ó¥Ã¥È¤¬ -̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢¿·¤·¤¤¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥×¤Ï -¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à GID ¤ÈƱ¤¸¤Ë¤Ê¤ë¡£ +付きでマウントされており、親ディレクトリでは set-group-ID ビットが +無効になっている場合、新しいファイルのグループは +プロセスのファイルシステム GID と同じになる。 .IP * .\"O If the file system is mounted with .\"O .IR "\-o\ nogrpid" .\"O and the set-group-ID bit is enabled on the parent directory, .\"O then the group of a new file is made .\"O the same as that of the parent directory. -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ +ファイルシステムが .I "\-o\ nogrpid" -ÉÕ¤­¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤ª¤ê¡¢¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï set-group-ID ¥Ó¥Ã¥È¤¬ -Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢¿·¤·¤¤¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥×¤Ï -¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Î¥°¥ë¡¼¥×¤ÈƱ¤¸¤Ë¤Ê¤ë¡£ +付きでマウントされており、親ディレクトリでは set-group-ID ビットが +有効になっている場合、新しいファイルのグループは +親ディレクトリのグループと同じになる。 .PP .\"O As at Linux 2.6.25, .\"O the @@ -385,15 +385,15 @@ i .\"O File systems that don't support these mount options follow the .\"O .IR "\-o\ nogrpid" .\"O rules. -Linux 2.6.25 ¤Ç¤Ï¡¢¥Þ¥¦¥ó¥È¥ª¥×¥·¥ç¥ó +Linux 2.6.25 では、マウントオプション .I "\-o\ grpid" -¤È +と .I "\-o\ nogrpid" -¤ËÂбþ¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï -ext2, ext3, ext4, XFS ¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î¥Þ¥¦¥ó¥È¥ª¥×¥·¥ç¥ó¤ËÂбþ¤·¤Æ¤¤¤Ê¤¤¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +に対応しているファイルシステムは +ext2, ext3, ext4, XFS である。 +これらのマウントオプションに対応していないファイルシステムでは、 .I "\-o\ nogrpid" -¤Ë´Ø¤¹¤ë¥ë¡¼¥ë¤¬Å¬ÍѤµ¤ì¤ë¡£ +に関するルールが適用される。 .PP .\"O The .\"O .BR chown () @@ -408,46 +408,46 @@ ext2, ext3, ext4, XFS .\"O been changed to allow access for a user and the time where the file can .\"O actually be accessed by the user on other clients. .BR chown () -Êý¼°¤Ï UID ¥Þ¥Ã¥Ô¥ó¥°¤ò»ÈÍѤ·¤¿ -NFS ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ò¿¯³²¤¹¤ë¡£ -¤µ¤é¤Ë¥Õ¥¡¥¤¥ë¤ÎÆâÍƤ˥¢¥¯¥»¥¹¤¹¤ëÁ´¤Æ¤Î¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¿¯³²¤¹¤ë¡£ -¤³¤ì¤Ï +方式は UID マッピングを使用した +NFS ファイル・システムを侵害する。 +さらにファイルの内容にアクセスする全てのシステム・コールを侵害する。 +これは .BR chown () -¤¬´û¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë -¥¢¥¯¥»¥¹¤ò¤¿¤À¤Á¤Ë¼è¤ê¾Ã¤¹¤³¤È¤Ë¤è¤ë¡£ -¥¯¥é¥¤¥¢¥ó¥È¦¤Î¥­¥ã¥Ã¥·¥å¤Ë¤è¤ê½êÍ­¸¢¤¬Êѹ¹¤µ¤ì¤Æ -¥æ¡¼¥¶¡¼¤Î¥¢¥¯¥»¥¹¤¬µö¤·¤¿»þÅÀ¤È¡¢¼ÂºÝ¤Ë¾¤Î¥¯¥é¥¤¥¢¥ó¥È¤Ç¥æ¡¼¥¶¡¼¤Ë¤è¤Ã¤Æ -¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë»þÅÀ¤È¤Î´Ö¤Ë»þ´Öº¹¤¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +が既にオープンされたファイルに対する +アクセスをただちに取り消すことによる。 +クライアント側のキャッシュにより所有権が変更されて +ユーザーのアクセスが許した時点と、実際に他のクライアントでユーザーによって +ファイルにアクセスできる時点との間に時間差があるかもしれない。 .\"O In versions of Linux prior to 2.1.81 (and distinct from 2.1.46), .\"O .BR chown () .\"O did not follow symbolic links. -Linux ¤Î 2.1.81 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó (ÆÃ¤Ë 2.1.46 °ÊÁ°) ¤Ç¤Ï¡¢ +Linux の 2.1.81 より前のバージョン (特に 2.1.46 以前) では、 .BR chown () -¤Ï¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤òÄÉÀפ·¤Ê¤¤¡£ +はシンボリック・リンクを追跡しない。 .\"O Since Linux 2.1.81, .\"O .BR chown () .\"O does follow symbolic links, and there is a new system call .\"O .BR lchown () .\"O that does not follow symbolic links. -Linux 2.1.81 °Ê¹ß¤Ç¤Ï +Linux 2.1.81 以降では .BR chown () -¤Ï¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤òÄÉÀפ·¡¢¿·¤¿¤Ê¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë +はシンボリック・リンクを追跡し、新たなシステム・コール .BR lchown () -¤Ï¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤òÄÉÀפ·¤Ê¤¤¡£ +はシンボリック・リンクを追跡しない。 .\"O Since Linux 2.1.86, this new call (that has the same semantics .\"O as the old .\"O .BR chown ()) .\"O has got the same syscall number, and .\"O .BR chown () .\"O got the newly introduced number. -Linux 2.1.86 °Ê¹ß¤Ç¤Ï¤³¤Î¿·¤·¤¤¥³¡¼¥ë (¸Å¤¤ +Linux 2.1.86 以降ではこの新しいコール (古い .BR chown () -¤ÈÁ´¤¯Æ±¤¸Æ°ºî¤ò¹Ô¤Ê¤¦) ¤ÏƱ¤¸¥·¥¹¥Æ¥à¥³¡¼¥ëÈÖ¹æ¤ò»ý¤Á +と全く同じ動作を行なう) は同じシステムコール番号を持ち .BR chown () -¤Ï¿·¤·¤¯Æ³Æþ¤µ¤ì¤¿ÈÖ¹æ¤ò»ý¤Ä¡£ +は新しく導入された番号を持つ。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .PP .\"O The following program changes the ownership of the file named in .\"O its second command-line argument to the value specified in its @@ -456,14 +456,14 @@ Linux 2.1.86 .\"O or as a username (which is converted to a user ID by using .\"O .BR getpwnam (3) .\"O to perform a lookup in the system password file). -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢ -Æó¤ÄÌܤΥ³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤ò¡¢ -°ì¤ÄÌܤΥ³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿ÃͤËÊѹ¹¤¹¤ë¡£ -¿·¤·¤¤½êÍ­¼Ô¤Ï¡¢¿ô»ú¤Î¥æ¡¼¥¶ ID ¤«¥æ¡¼¥¶Ì¾¤Î¤¤¤º¤ì¤«¤Ç»ØÄê¤Ç¤­¤ë -(¥æ¡¼¥¶Ì¾¤Ç»ØÄꤷ¤¿¾ì¹ç¤Ë¤Ï¡¢ +以下のプログラムは、 +二つ目のコマンドライン引き数で指定された名前のファイルの所有者を、 +一つ目のコマンドライン引き数で指定された値に変更する。 +新しい所有者は、数字のユーザ ID かユーザ名のいずれかで指定できる +(ユーザ名で指定した場合には、 .BR getpwnam (3) -¤ò»È¤Ã¤Æ¥·¥¹¥Æ¥à¤Î¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Î¸¡º÷¤¬¹Ô¤ï¤ì¡¢ -¥æ¡¼¥¶ ID ¤Ø¤ÎÊÑ´¹¤¬¹Ô¤ï¤ì¤ë)¡£ +を使ってシステムのパスワードファイルの検索が行われ、 +ユーザ ID への変換が行われる)。 .nf #include @@ -504,7 +504,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chmod (2), .BR fchownat (2), .BR flock (2), diff --git a/draft/man2/chroot.2 b/draft/man2/chroot.2 index d87bedcc..e2483bfb 100644 --- a/draft/man2/chroot.2 +++ b/draft/man2/chroot.2 @@ -44,10 +44,10 @@ .TH CHROOT 2 2010-09-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O chroot \- change root directory -.SH ̾Á° -chroot \- ¥ë¡¼¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤òÊѹ¹¤¹¤ë +.SH 名前 +chroot \- ルート・ディレクトリを変更する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int chroot(const char *" path ); @@ -55,9 +55,9 @@ chroot \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR chroot (): @@ -66,7 +66,7 @@ glibc .PD 0 .TP 4 .\"O Since glibc 2.2.2: -glibc 2.2.2 °Ê¹ß: +glibc 2.2.2 以降: .nf _BSD_SOURCE || (_XOPEN_SOURCE\ >=\ 500 || @@ -75,40 +75,40 @@ _BSD_SOURCE || .fi .TP 4 .\"O Before glibc 2.2.2: none -glibc 2.2.2 ¤è¤êÁ°: ¤Ê¤· +glibc 2.2.2 より前: なし .PD .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR chroot () .\"O changes the root directory of the calling process to that specified in .\"O .IR path . .\"O This directory will be used for pathnames beginning with \fI/\fP. .\"O The root directory is inherited by all children of the calling process. .BR chroot () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥ë¡¼¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤ò +は、呼び出し元プロセスのルート・ディレクトリを .I path -¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ËÊѹ¹¤¹¤ë¡£ -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤¬ \fI/\fP ¤«¤é»Ï¤Þ¤ë¥Ñ¥¹Ì¾¤È¤·¤Æ»È¤ï¤ì¤ë¡£ -¤³¤Î¥ë¡¼¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÎÁ´¤Æ¤Î»Ò¥×¥í¥»¥¹¤Ë¼õ¤±·Ñ¤¬¤ì¤ë¡£ +で指定されたディレクトリに変更する。 +このディレクトリ以下が \fI/\fP から始まるパス名として使われる。 +このルート・ディレクトリは呼び出し元のプロセスの全ての子プロセスに受け継がれる。 .\"O .PP .\"O Only a privileged process (Linux: one with the .\"O .B CAP_SYS_CHROOT .\"O capability) may call .\"O .BR chroot (). -Æø¢¥×¥í¥»¥¹ (Linux ¤Ç¤Ï¡¢ +特権プロセス (Linux では、 .B CAP_SYS_CHROOT -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹) ¤Î¤ß¤¬ +ケーパビリティを持つプロセス) のみが .BR chroot () -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +を呼び出すことができる。 .\"O .PP .\"O This call changes an ingredient in the pathname resolution process .\"O and does nothing else. -¤³¤Î¥³¡¼¥ë¤Ï¥Ñ¥¹Ì¾²ò·è¤Î²áÄø¤Ç¹½À®Í×ÁǤòÊѹ¹¤¹¤ë¤Î¤ß¤Ç¡¢ -¤½¤Î¾¤Ë¤Ï²¿¤â¹Ô¤ï¤Ê¤¤¡£ +このコールはパス名解決の過程で構成要素を変更するのみで、 +その他には何も行わない。 .\"O .PP .\"O This call does not change the current working directory, @@ -116,12 +116,12 @@ glibc 2.2.2 .\"O be outside the tree rooted at \(aq\fI/\fP\(aq. .\"O In particular, the superuser can escape from a "chroot jail" .\"O by doing: -¤³¤Î¥³¡¼¥ë¤Ï¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê -(working directory) ¤òÊѹ¹¤·¤Ê¤¤¡£ -¤½¤Î¤¿¤á¡¢¤³¤Î¥³¡¼¥ë¤Î¸å¤Ë \(aq\fI.\fP\(aq ¤¬ \(aq\fI/\fP\(aq ¤ò -º¬¤È¤¹¤ë¥Ä¥ê¡¼¤Î³°¤Ë¤Ê¤ë¾ì¹ç¤¬¤¢¤ë¡£ -Æäˡ¢¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ç -"chroot jail" ¤«¤éƨ¤²½Ð¤»¤Æ¤·¤Þ¤¦¡£ +このコールは現在の作業ディレクトリ +(working directory) を変更しない。 +そのため、このコールの後に \(aq\fI.\fP\(aq が \(aq\fI/\fP\(aq を +根とするツリーの外になる場合がある。 +特に、スーパー・ユーザーは以下のようにすることで +"chroot jail" から逃げ出せてしまう。 .nf mkdir foo; chroot foo; cd .. @@ -129,110 +129,110 @@ glibc 2.2.2 .\"O This call does not close open file descriptors, and such file .\"O descriptors may allow access to files outside the chroot tree. -¤³¤Î¥³¡¼¥ë¤Ï¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¯¥í¡¼¥º¤·¤Ê¤¤¤Î¤Ç¡¢ -¤³¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï chroot ¥Ä¥ê¡¼¤Î³°¤Ë¤¢¤ë -¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ +このコールはオープンファイルディスクリプタをクローズしないので、 +このようなファイルディスクリプタは chroot ツリーの外にある +ファイルにアクセスできる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤¹¤ë¤È \-1 ¤òÊÖ¤·¡¢ +成功すると 0 を返す。 +失敗すると \-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤòÀßÄꤹ¤ë¡£ +に適切な値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O Depending on the file system, other errors can be returned. .\"O The more general errors are listed below: -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¾¤Î¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë»ö¤¬¤¢¤ë¡£ -°ìÈÌŪ¤Ê¥¨¥é¡¼¤ò°Ê²¼¤Ëµó¤²¤ë: +ファイルシステムによっては他のエラーが返される事がある。 +一般的なエラーを以下に挙げる: .TP .B EACCES .\"O Search permission is denied on a component of the path prefix. -¥Ñ¥¹Ì¾¤ÎÅÓÃæ¤Î¤É¤³¤«¤Ë¸¡º÷µö²Ä (search permission) ¤¬¤Ê¤¤¡£ +パス名の途中のどこかに検索許可 (search permission) がない。 .\"O (See also .\"O .BR path_resolution (7).) .RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È¡£) +も参照すること。) .\"O .\" Also search permission is required on the final component, .\"O .\" maybe just to guarantee that it is a directory? -.\" ¥Ñ¥¹Ì¾¤ÎºÇ¸å¤Î¹½À®Í×ÁǤˤ⸡º÷µö²Ä¤¬É¬ÍפǤ¢¤ë¡£ -.\" ¤ª¤½¤é¤¯¡¢¤½¤ì¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¤³¤È¤òÊݾڤ¹¤ë¤¿¤á¤Ê¤Î¤«? +.\" パス名の最後の構成要素にも検索許可が必要である。 +.\" おそらく、それがディレクトリであることを保証するためなのか? .TP .B EFAULT .\"O .I path .\"O points outside your accessible address space. .I path -¤¬³ä¤êÅö¤Æ¤é¤ì¤¿¥¢¥É¥ì¥¹¶õ´Ö³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +が割り当てられたアドレス空間外を指している。 .TP .B EIO .\"O An I/O error occurred. -I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +I/O エラーが発生した。 .TP .B ELOOP .\"O Too many symbolic links were encountered in resolving .\"O .IR path . .I path -¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ +を解決する際に遭遇したシンボリック・リンクが多過ぎる。 .TP .B ENAMETOOLONG .\"O .I path .\"O is too long. .I path -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENOENT .\"O The file does not exist. -¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ +ファイルが存在しない。 .TP .B ENOMEM .\"O Insufficient kernel memory was available. -¥«¡¼¥Í¥ë¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +カーネルに十分なメモリがない。 .TP .B ENOTDIR .\"O A component of .\"O .I path .\"O is not a directory. .I path -¤ÎÆâÍƤ¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£ +の内容がディレクトリではない。 .TP .B EPERM .\"O The caller has insufficient privilege. -¸Æ¤Ó½Ð¤·Â¦¤Ë½½Ê¬¤ÊÆø¢¤¬¤Ê¤¤¡£ +呼び出し側に十分な特権がない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O SVr4, 4.4BSD, SUSv2 (marked LEGACY). .\"O This function is not part of POSIX.1-2001. .\"O .\" SVr4 documents additional EINTR, ENOLINK and EMULTIHOP error conditions. .\"O .\" X/OPEN does not document EIO, ENOMEM or EFAULT error conditions. -SVr4, 4.4BSD, SUSv2 (⤷¡¢SUSv2 ¤Ç¤Ï²áµî¤Î̾»Ä¤È¤µ¤ì¤Æ¤¤¤ë)¡£ -¤³¤Î´Ø¿ô¤Ï POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -.\" SVr4 ¤Ë¤Ï¾¤Ë EINTR, ENOLINK, EMULTIHOP ¥¨¥é¡¼¾õÂ֤ˤĤ¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ -.\" X/OPEN ¤Ë¤Ï EIO, ENOMEM, EFAULT ¥¨¥é¡¼¾õÂ֤ε­½Ò¤Ï¤Ê¤¤¡£ +SVr4, 4.4BSD, SUSv2 (但し、SUSv2 では過去の名残とされている)。 +この関数は POSIX.1-2001 にはない。 +.\" SVr4 には他に EINTR, ENOLINK, EMULTIHOP エラー状態についての記述がある。 +.\" X/OPEN には EIO, ENOMEM, EFAULT エラー状態の記述はない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O A child process created via .\"O .BR fork (2) .\"O inherits its parent's root directory. .\"O The root directory is left unchanged by .\"O .BR execve (2). .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢ -¿Æ¥×¥í¥»¥¹¤Î¥ë¡¼¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤ò·Ñ¾µ¤¹¤ë¡£ +で作成された子プロセスは、 +親プロセスのルート・ディレクトリを継承する。 .BR execve (2) -¤Î¾ì¹ç¤â¡¢¥ë¡¼¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +の場合も、ルート・ディレクトリは変更されない。 .\"O FreeBSD has a stronger .\"O .BR jail () .\"O system call. -FreeBSD ¤Ë¤Ï¤è¤ê¶¯ÎÏ¤Ê +FreeBSD にはより強力な .BR jail () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤¢¤ë¡£ +システムコールがある。 .\" FIXME . eventually say something about containers, .\" virtual servers, etc.? .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chdir (2), .BR path_resolution (7) diff --git a/draft/man2/clock_getres.2 b/draft/man2/clock_getres.2 index c749ff1f..1b74214d 100644 --- a/draft/man2/clock_getres.2 +++ b/draft/man2/clock_getres.2 @@ -37,11 +37,11 @@ .\" .TH CLOCK_GETRES 2 2010-02-03 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O clock_getres, clock_gettime, clock_settime \- clock and time functions -clock_getres, clock_gettime, clock_settime \- ¥¯¥í¥Ã¥¯¤È»þ´Ö¤Î´Ø¿ô +clock_getres, clock_gettime, clock_settime \- クロックと時間の関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int clock_getres(clockid_t " clk_id ", struct timespec *" res ); @@ -51,14 +51,14 @@ clock_getres, clock_gettime, clock_settime \- .BI "int clock_settime(clockid_t " clk_id ", const struct timespec *" tp ); .sp .\"O Link with \fI\-lrt\fP. -\fI\-lrt\fP ¤È¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP とリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -70,7 +70,7 @@ _POSIX_C_SOURCE\ >=\ 199309L .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The function .\"O .BR clock_getres () .\"O finds the resolution (precision) of the specified clock @@ -79,20 +79,20 @@ _POSIX_C_SOURCE\ >=\ 199309L .\"O .I res .\"O is non-NULL, stores it in the \fIstruct timespec\fP pointed to by .\"O .IR res . -´Ø¿ô +関数 .BR clock_getres () -¤Ï -»ØÄꤵ¤ì¤¿¥¯¥í¥Ã¥¯ +は +指定されたクロック .I clk_id -¤Îʬ²òǽ (ÀºÅÙ) ¤òõ¤·½Ð¤¹¡£ +の分解能 (精度) を探し出す。 .I res -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢¤½¤Îʬ²òǽ¤ò +が NULL でない場合、その分解能を .I res -¤Ç»Ø¤µ¤ì¤ë \fIstruct timespec\fP ¤Ë³ÊǼ¤¹¤ë¡£ +で指される \fIstruct timespec\fP に格納する。 .\"O The resolution of clocks depends on the implementation and cannot be .\"O configured by a particular process. -¥¯¥í¥Ã¥¯¤Îʬ²òǽ¤Ï¼ÂÁõ¤Ë°Í¸¤·¡¢ -ÆÃÄê¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤ÆÀßÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +クロックの分解能は実装に依存し、 +特定のプロセスによって設定することはできない。 .\"O If the time value pointed to by the argument .\"O .I tp .\"O of @@ -102,13 +102,13 @@ _POSIX_C_SOURCE\ >=\ 199309L .\"O then it is truncated to a multiple of .\"O .IR res . .BR clock_settime () -¤Î°ú¤­¿ô +の引き数 .I tp -¤Ç»Ø¤µ¤ì¤ë»þ´Ö¤ÎÃͤ¬ +で指される時間の値が .I res -¤ÎÇÜ¿ô¤Ç¤Ê¤¤¾ì¹ç¡¢ +の倍数でない場合、 .I res -¤ÎÇÜ¿ô¤ËÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ +の倍数に切り詰められる。 .PP .\"O The functions .\"O .BR clock_gettime () @@ -116,13 +116,13 @@ _POSIX_C_SOURCE\ >=\ 199309L .\"O .BR clock_settime () .\"O retrieve and set the time of the specified clock .\"O .IR clk_id . -´Ø¿ô +関数 .BR clock_gettime () -¤È +と .BR clock_settime () -¤Ï¡¢»ØÄꤵ¤ì¤¿¥¯¥í¥Ã¥¯ +は、指定されたクロック .I clk_id -¤Î»þ´Ö¤ò¼èÆÀ¤Þ¤¿¤ÏÀßÄꤹ¤ë¡£ +の時間を取得または設定する。 .PP .\"O The .\"O .I res @@ -133,13 +133,13 @@ _POSIX_C_SOURCE\ >=\ 199309L .\"O structures, as specified in .\"O .IR : .I res -¤È +と .I tp -°ú¤­¿ô¤Ï +引き数は .I timespec -¹½Â¤ÂΤǤ¢¤ê¡¢ +構造体であり、 .I -¤Ç°Ê²¼¤Î¤è¤¦¤Ëµ¬Äꤵ¤ì¤Æ¤¤¤ë: +で以下のように規定されている: .sp .in +4n .nf @@ -154,70 +154,70 @@ struct timespec { .\"O .I clk_id .\"O argument is the identifier of the particular clock on which to act. .I clk_id -°ú¤­¿ô¤ÏÆÃÄê¤Î¥¯¥í¥Ã¥¯¤Î¼±Ê̻ҤǤ¢¤ê¡¢¤½¤Î¥¯¥í¥Ã¥¯¤ÇÆ°ºî¤¹¤ë¡£ +引き数は特定のクロックの識別子であり、そのクロックで動作する。 .\"O A clock may be system-wide and hence visible for all processes, or .\"O per-process if it measures time only within a single process. -¥¯¥í¥Ã¥¯¤Ï¥·¥¹¥Æ¥àÁ´ÂΤËŬÍѤ¹¤ë¤³¤È¤â¤Ç¤­¡¢ -¤½¤Î¾ì¹ç¤ÏÁ´¤Æ¤Î¥×¥í¥»¥¹¤«¤é¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤Þ¤¿ 1 ¤Ä¤Î¥×¥í¥»¥¹Æâ¤Ç¤Î¤ß»þ´Ö¤ò·×¬¤¹¤ë¾ì¹ç¤Ï¡¢ -¥×¥í¥»¥¹Ëè¤ËŬÍѤ¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +クロックはシステム全体に適用することもでき、 +その場合は全てのプロセスから見ることができる。 +また 1 つのプロセス内でのみ時間を計測する場合は、 +プロセス毎に適用することもできる。 .LP .\"O All implementations support the system-wide real-time clock, .\"O which is identified by .\"O .BR CLOCK_REALTIME . -Á´¤Æ¤Î¼ÂÁõ¤Ë¤ª¤¤¤Æ¥·¥¹¥Æ¥àÁ´ÂΤΥꥢ¥ë¥¿¥¤¥à¥¯¥í¥Ã¥¯¤¬¥µ¥Ý¡¼¥È¤µ¤ì¡¢ +全ての実装においてシステム全体のリアルタイムクロックがサポートされ、 .B CLOCK_REALTIME -¤Ç¼±Ê̤µ¤ì¤ë¡£ +で識別される。 .\"O Its time represents seconds and nanoseconds since the Epoch. -»þ´Ö¤Ïµª¸µ (the Epoch) ¤«¤é¤ÎÉäȥʥÎÉäÇɽ¤µ¤ì¤ë¡£ +時間は紀元 (the Epoch) からの秒とナノ秒で表される。 .\"O When its time is changed, timers for a relative interval are .\"O unaffected, but timers for an absolute point in time are affected. -»þ´Ö¤¬Êѹ¹¤µ¤ì¤¿¾ì¹ç¡¢ÁêÂÐŪ¤Ê»þ´Ö´Ö³Ö¤Î¥¿¥¤¥Þ¤Ï±Æ¶Á¤ò¼õ¤±¤Ê¤¤¤¬¡¢ -ÀäÂÐŪ¤Ê»þÅÀ¤Î¥¿¥¤¥Þ¤Ï±Æ¶Á¤ò¼õ¤±¤ë¡£ +時間が変更された場合、相対的な時間間隔のタイマは影響を受けないが、 +絶対的な時点のタイマは影響を受ける。 .LP .\"O More clocks may be implemented. .\"O The interpretation of the .\"O corresponding time values and the effect on timers is unspecified. -¤µ¤é¤Ë¤¤¤¯¤Ä¤«¤Î¥¯¥í¥Ã¥¯¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -Âбþ¤¹¤ë»þ´Ö¤ÎÃͤò²ò¼á¤¹¤ëÊýË¡¤È¥¿¥¤¥Þ¤Ø¤Î±Æ¶Á¤Ï¡¢Äê¤á¤é¤ì¤Æ¤¤¤Ê¤¤¡£ +さらにいくつかのクロックが実装されているかもしれない。 +対応する時間の値を解釈する方法とタイマへの影響は、定められていない。 .LP .\"O Sufficiently recent versions of glibc and the Linux kernel .\"O support the following clocks: -glibc ¤È Linux ¥«¡¼¥Í¥ë¤ÎºÇ¿·¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ -°Ê²¼¤Î¤è¤¦¤Ê½½Ê¬¤Ê¥¯¥í¥Ã¥¯¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +glibc と Linux カーネルの最新のバージョンでは、 +以下のような十分なクロックがサポートされている。 .TP .B CLOCK_REALTIME .\"O System-wide real-time clock. -¥·¥¹¥Æ¥àÁ´ÂΤΥꥢ¥ë¥¿¥¤¥à¥¯¥í¥Ã¥¯¡£ +システム全体のリアルタイムクロック。 .\"O Setting this clock requires appropriate privileges. -¤³¤Î¥¯¥í¥Ã¥¯¤òÀßÄꤹ¤ë¤Ë¤ÏŬÀÚ¤ÊÆø¢¤¬É¬ÍפǤ¢¤ë¡£ +このクロックを設定するには適切な特権が必要である。 .TP .B CLOCK_MONOTONIC .\"O Clock that cannot be set and represents monotonic time since .\"O some unspecified starting point. -¤¤¤¯¤Ä¤«¤Î³«»ÏÅÀ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤¿¤á¡¢ -¥¯¥í¥Ã¥¯¤¬¥â¥Î¥È¥Ë¥Ã¥¯¥¿¥¤¥à¤òÀßÄꤷ¤¿¤êɽ¸½¤·¤¿¤ê¤Ç¤­¤Ê¤¤¡£ +いくつかの開始点が指定されていないため、 +クロックがモノトニックタイムを設定したり表現したりできない。 .TP .\"O .BR CLOCK_MONOTONIC_RAW " (since Linux 2.6.28; Linux-specific)" -.BR CLOCK_MONOTONIC_RAW " (Linux 2.6.28 °Ê¹ß; Linux ÆÃÍ­)" +.BR CLOCK_MONOTONIC_RAW " (Linux 2.6.28 以降; Linux 特有)" .\" Added in commit 2d42244ae71d6c7b0884b5664cf2eda30fb2ae68, John Stultz .\"O Similar to .\"O .BR CLOCK_MONOTONIC , .\"O but provides access to a raw hardware-based time .\"O that is not subject to NTP adjustments. .B CLOCK_MONOTONIC -¤ÈƱÍͤÀ¤¬¡¢NTP ¤Ë¤è¤ëÄ´À°¤Î±Æ¶Á¤ò¼õ¤±¤Ê¤¤¡¢¥Ï¡¼¥É¥¦¥§¥¢¤Ë¤è¤ë -À¸¤Î»þ¹ï¤Ø¤Î¥¢¥¯¥»¥¹¤¬¤Ç¤­¤ë¡£ +と同様だが、NTP による調整の影響を受けない、ハードウェアによる +生の時刻へのアクセスができる。 .TP .B CLOCK_PROCESS_CPUTIME_ID .\"O High-resolution per-process timer from the CPU. -CPU ¤Ë¤è¤ë¹âʬ²òǽ¤Î¥×¥í¥»¥¹Ëè¤Î¥¿¥¤¥Þ¡£ +CPU による高分解能のプロセス毎のタイマ。 .TP .B CLOCK_THREAD_CPUTIME_ID .\"O Thread-specific CPU-time clock. -¥¹¥ì¥Ã¥É¸ÇÍ­¤Î CPU ¥¿¥¤¥à¥¯¥í¥Ã¥¯¡£ +スレッド固有の CPU タイムクロック。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR clock_gettime (), .\"O .BR clock_settime () .\"O and @@ -228,18 +228,18 @@ CPU .BR clock_gettime (), .BR clock_settime (), .BR clock_getres () -¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ë 0 ¤òÊÖ¤·¡¢¼ºÇÔ¤·¤¿¾ì¹ç¤Ë \-1 ¤òÊÖ¤¹ -(¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +は成功した場合に 0 を返し、失敗した場合に \-1 を返す +(失敗した場合、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë)¡£ +が適切に設定される)。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O .I tp .\"O points outside the accessible address space. .I tp -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤¿¡£ +がアクセス可能なアドレス空間の外を指した。 .TP .B EINVAL .\"O The @@ -248,27 +248,27 @@ CPU .\" Linux also gives this error on attempts to set CLOCK_PROCESS_CPUTIME_ID .\" and CLOCK_THREAD_CPUTIME_ID, when probably the proper error should be .\" EPERM. -»ØÄꤵ¤ì¤¿ +指定された .I clk_id -¤¬¤³¤Î¥·¥¹¥Æ¥à¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +がこのシステムでサポートされていない。 .TP .B EPERM .\"O .BR clock_settime () .\"O does not have permission to set the clock indicated. -»Ø¼¨¤µ¤ì¤¿¥¯¥í¥Ã¥¯¤òÀßÄꤹ¤ë¸¢¸Â¤¬ +指示されたクロックを設定する権限が .BR clock_settime () -¤Ë¤Ê¤¤¡£ +にない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SUSv2, POSIX.1-2001. .\"O .SH AVAILABILITY -.SH ²ÄÍÑÀ­ +.SH 可用性 .\"O On POSIX systems on which these functions are available, the symbol .\"O .B _POSIX_TIMERS .\"O is defined in \fI\fP to a value greater than 0. -¤³¤ì¤é¤Î´Ø¿ô¤¬ÍøÍѲÄǽ¤Ê POSIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢\fI\fP ¤Ë¤ª¤¤¤Æ¥·¥ó¥Ü¥ë +これらの関数が利用可能な POSIX システムでは、\fI\fP においてシンボル .B _POSIX_TIMERS -¤¬ 0 ¤è¤êÂ礭¤¤ÃͤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +が 0 より大きい値に定義されている。 .\"O The symbols .\"O .BR _POSIX_MONOTONIC_CLOCK , .\"O .BR _POSIX_CPUTIME , @@ -278,23 +278,23 @@ SUSv2, POSIX.1-2001. .\"O .BR CLOCK_PROCESS_CPUTIME_ID , .\"O .B CLOCK_THREAD_CPUTIME_ID .\"O are available. -¥·¥ó¥Ü¥ë +シンボル .BR _POSIX_MONOTONIC_CLOCK , .BR _POSIX_CPUTIME , .B _POSIX_THREAD_CPUTIME -¤Ï +は .BR CLOCK_MONOTONIC , .BR CLOCK_PROCESS_CPUTIME_ID , .B CLOCK_THREAD_CPUTIME_ID -¤¬ÍøÍѲÄǽ¤Ê¤³¤È¤ò¼¨¤¹¡£ +が利用可能なことを示す。 .\"O (See also .\"O .BR sysconf (3).) .RB ( sysconf (3) -¤â»²¾È¤¹¤ë¤³¤È¡£) +も参照すること。) .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .SS Note for SMP systems -.SS "SMP ¥·¥¹¥Æ¥à¤Ë¤Ä¤¤¤Æ¤ÎÃí°Õ" +.SS "SMP システムについての注意" .\"O The .\"O .B CLOCK_PROCESS_CPUTIME_ID .\"O and @@ -302,18 +302,18 @@ SUSv2, POSIX.1-2001. .\"O clocks are realized on many platforms using timers from the CPUs .\"O (TSC on i386, AR.ITC on Itanium). .B CLOCK_PROCESS_CPUTIME_ID -¤È +と .B CLOCK_THREAD_CPUTIME_ID -¥¯¥í¥Ã¥¯¤Ï¡¢CPU ¤«¤é¤Î¥¿¥¤¥Þ -(i386 ¾å¤Î TSC¡¢Itanium ¾å¤Î AR.ITC) ¤òÍѤ¤¤Æ¼Â¸½¤µ¤ì¤Æ¤¤¤ë¡£ +クロックは、CPU からのタイマ +(i386 上の TSC、Itanium 上の AR.ITC) を用いて実現されている。 .\"O These registers may differ between CPUs and as a consequence .\"O these clocks may return .\"O .B bogus results .\"O if a process is migrated to another CPU. -¤³¤ì¤é¤Î¥ì¥¸¥¹¥¿¤Ï CPU ´Ö¤Ç°Û¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ê¡¢ -¥×¥í¥»¥¹¤¬Â¾¤Î CPU ¤Ë°ÜÆ°¤µ¤»¤é¤ì¤¿¾ì¹ç¡¢ -·ë²Ì¤È¤·¤Æ¤³¤ì¤é¤Î¥¯¥í¥Ã¥¯¤¬\fBµ¶¤Î·ë²Ì\fR -(bogus results) ¤òÊÖ¤¹¤«¤â¤·¤ì¤Ê¤¤¡£ +これらのレジスタは CPU 間で異なる可能性があり、 +プロセスが他の CPU に移動させられた場合、 +結果としてこれらのクロックが\fB偽の結果\fR +(bogus results) を返すかもしれない。 .PP .\"O If the CPUs in an SMP system have different clock sources then .\"O there is no way to maintain a correlation between the timer registers since @@ -325,33 +325,33 @@ SUSv2, POSIX.1-2001. .\"O to signify this condition. .\"O The two clocks will then only be useful if it .\"O can be ensured that a process stays on a certain CPU. -SMP ¥·¥¹¥Æ¥à¤Î³Æ CPU ¤¬ÊÌ¡¹¤Î¥¯¥í¥Ã¥¯¸»¤ò»ý¤Ä¾ì¹ç¡¢ -¥¿¥¤¥Þ¥ì¥¸¥¹¥¿´Ö¤ÎÁê¸ß´Ø·¸¤ò´ÉÍý¤¹¤ëÊýË¡¤Ï¤Ê¤¤¡£ -¤³¤ì¤Ï³Æ CPU ¤¬Èù̯¤Ë°Û¤Ê¤ë¼þÇÈ¿ô¤ÇÆ°ºî¤¹¤ë¤¿¤á¤Ç¤¢¤ë¡£ -¤³¤ì¤¬¿¿¼Â¤Î¾ì¹ç (ÌõÃð: ³Æ CPU ¤¬ÊÌ¡¹¤Î¥¯¥í¥Ã¥¯¸»¤ò»ý¤Ä¾ì¹ç)¡¢ +SMP システムの各 CPU が別々のクロック源を持つ場合、 +タイマレジスタ間の相互関係を管理する方法はない。 +これは各 CPU が微妙に異なる周波数で動作するためである。 +これが真実の場合 (訳註: 各 CPU が別々のクロック源を持つ場合)、 .I clock_getcpuclockid(0) -¤Ï +は .B ENOENT -¤òÊÖ¤·¤Æ¡¢¤½¤Î¾õ¶·¤òɽ¤¹¡£ -2 ¤Ä¤Î¥¯¥í¥Ã¥¯¤Ï¡¢¥×¥í¥»¥¹¤¬ÆÃÄê¤Î CPU ¾å¤Ëα¤Þ¤Ã¤Æ¤¤¤ë¤³¤È¤¬ -ÊݾڤǤ­¤ë¾ì¹ç¤Ë¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£ +を返して、その状況を表す。 +2 つのクロックは、プロセスが特定の CPU 上に留まっていることが +保証できる場合にのみ有効である。 .PP .\"O The processors in an SMP system do not start all at exactly the same .\"O time and therefore the timer registers are typically running at an offset. -SMP ¥·¥¹¥Æ¥à¤Î³Æ¥×¥í¥»¥Ã¥µ¤ÏÁ´¤¯Æ±¤¸»þ¹ï¤Ëµ¯Æ°¤¹¤ëÌõ¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢ -³Æ¥¿¥¤¥Þ¥ì¥¸¥¹¥¿¤ÏÄ̾ï¤Ï¤¢¤ë¥ª¥Õ¥»¥Ã¥È¤ÇÆ°ºî¤·¤Æ¤¤¤ë¡£ +SMP システムの各プロセッサは全く同じ時刻に起動する訳ではないので、 +各タイマレジスタは通常はあるオフセットで動作している。 .\"O Some architectures include code that attempts to limit these offsets on bootup. -¥ª¥Õ¥»¥Ã¥È¤ò¥Ö¡¼¥È»þ¤ËÀ©¸Â¤¹¤ë¥³¡¼¥É¤¬´Þ¤Þ¤ì¤ë¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤â¤¢¤ë¡£ +オフセットをブート時に制限するコードが含まれるアーキテクチャもある。 .\"O However, the code cannot guarantee to accurately tune the offsets. -¤·¤«¤·¡¢¤³¤Î¥³¡¼¥É¤¬¥ª¥Õ¥»¥Ã¥È¤òÀµ³Î¤ËÄ´À°¤¹¤ë¤³¤È¤ÏÊݾڤǤ­¤Ê¤¤¡£ +しかし、このコードがオフセットを正確に調整することは保証できない。 .\"O Glibc contains no provisions to deal with these offsets (unlike the Linux .\"O Kernel). .\"O Typically these offsets are small and therefore the effects may be .\"O negligible in most cases. -glibc ¤Ï (Linux ¥«¡¼¥Í¥ë¤È¤Ï°Û¤Ê¤ê) ¥ª¥Õ¥»¥Ã¥È¤ò°·¤¦¤¿¤á¤Î¥³¡¼¥É¤òÄ󶡤·¤Ê¤¤¡£ -Ä̾ï¤Ï¤³¤ì¤é¤Î¥ª¥Õ¥»¥Ã¥È¤¬¾®¤µ¤¤¤Î¤Ç¡¢Â¿¤¯¤Î¾ì¹ç¤Ç¤½¤Î±Æ¶Á¤Ï̵»ë¤Ç¤­¤ë¡£ +glibc は (Linux カーネルとは異なり) オフセットを扱うためのコードを提供しない。 +通常はこれらのオフセットが小さいので、多くの場合でその影響は無視できる。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O According to POSIX.1-2001, a process with "appropriate privileges" may set the .\"O .B CLOCK_PROCESS_CPUTIME_ID .\"O and @@ -360,19 +360,19 @@ glibc .\"O .BR clock_settime (). .\"O On Linux, these clocks are not settable .\"O (i.e., no process has "appropriate privileges"). -POSIX.1-2001 ¤Ç¤Ï¡¢ -¡ÖŬÀÚ¤ÊÆø¢ (appropriate privileges)¡×¤ò»ý¤Ã¤¿¥×¥í¥»¥¹¤Ï¡¢ +POSIX.1-2001 では、 +「適切な特権 (appropriate privileges)」を持ったプロセスは、 .BR clock_settime () -¤ò»È¤Ã¤Æ¡¢¥¯¥í¥Ã¥¯ +を使って、クロック .B CLOCK_PROCESS_CPUTIME_ID -¤È +と .B CLOCK_THREAD_CPUTIME_ID -¤òÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¤È¤µ¤ì¤Æ¤¤¤ë¡£ -Linux ¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥¯¥í¥Ã¥¯¤ÏÀßÄê²Äǽ¤Ç¤Ï¤Ê¤¤ -(¤¹¤Ê¤ï¤Á¡¢¤É¤Î¥×¥í¥»¥¹¤â¡ÖŬÀÚ¤ÊÆø¢¡×¤ò»ý¤¿¤Ê¤¤)¡£ +を設定することができるとされている。 +Linux では、これらのクロックは設定可能ではない +(すなわち、どのプロセスも「適切な特権」を持たない)。 .\" See http://bugzilla.kernel.org/show_bug.cgi?id=11972 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR date (1), .BR adjtimex (2), .BR gettimeofday (2), diff --git a/draft/man2/clock_nanosleep.2 b/draft/man2/clock_nanosleep.2 index d78eefa3..02c459c7 100644 --- a/draft/man2/clock_nanosleep.2 +++ b/draft/man2/clock_nanosleep.2 @@ -27,11 +27,11 @@ .\" .TH CLOCK_NANOSLEEP 2 2010-12-03 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O clock_nanosleep \- high-resolution sleep with specifiable clock -clock_nanosleep \- »ØÄꤷ¤¿¥¯¥í¥Ã¥¯¤Ç¤Î¹âÀºÅ٤ʼ¹ÔÄä»ß (sleep) +clock_nanosleep \- 指定したクロックでの高精度な実行停止 (sleep) .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .nf .sp @@ -41,15 +41,15 @@ clock_nanosleep \- .fi .sp .\"O Link with \fI\-lrt\fP. -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP でリンクする。 .sp .ad l .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR clock_nanosleep (): @@ -58,7 +58,7 @@ _XOPEN_SOURCE\ >=\ 600 || _POSIX_C_SOURCE\ >=\ 200112L .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Like .\"O .BR nanosleep (2), .\"O .BR clock_nanosleep () @@ -69,20 +69,20 @@ _XOPEN_SOURCE\ >=\ 600 || _POSIX_C_SOURCE\ >=\ 200112L .\"O and in allowing the sleep interval to be specified as .\"O either an absolute or a relative value. .BR clock_nanosleep () -¤ò»È¤¦¤È¡¢ +を使うと、 .BR nanosleep (2) -ƱÍÍ¡¢¥Ê¥ÎÉäÎÀºÅ٤ǻØÄꤵ¤ì¤¿´ü´Ö¤À¤±¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î¼Â¹Ô¤ò -Ää»ß¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +同様、ナノ秒の精度で指定された期間だけ呼び出したスレッドの実行を +停止することができる。 .BR nanosleep (2) -¤È°ã¤¦¤Î¤Ï¡¢¸Æ¤Ó½Ð¤·Â¦¤¬Ää»ß´ü´Ö¤ò¤É¤Î¥¯¥í¥Ã¥¯¤ËÂФ·¤Æ·×¬¤¹¤ë¤Î¤«¤òÁªÂò -¤Ç¤­¤ëÅÀ¤È¡¢Ää»ß´ü´Ö¤òÀäÂÐÃͤǤâÁêÂÐÃͤǤâ»ØÄê¤Ç¤­¤ëÅÀ¤Ç¤¢¤ë¡£ +と違うのは、呼び出し側が停止期間をどのクロックに対して計測するのかを選択 +できる点と、停止期間を絶対値でも相対値でも指定できる点である。 .\"O The time values passed to and returned by this call are specified using .\"O .I timespec .\"O structures, defined as follows: -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÅϤ·¤¿¤ê¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ÊÖ¤·¤¿¤ê¤¹¤ë»þ´Ö¤ÎÃÍ¤Ï +このシステムコールに渡したり、このシステムコールが返したりする時間の値は .I timespec -¹½Â¤ÂΤò»È¤Ã¤Æ»ØÄꤵ¤ì¤ë¡£¤³¤Î¹½Â¤ÂΤÎÄêµÁ¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +構造体を使って指定される。この構造体の定義は以下の通りである。 .sp .in +4n .nf @@ -99,38 +99,38 @@ struct timespec { .\"O is to be measured. .\"O This argument can have one of the following values: .I clock_id -°ú¤­¿ô¤Ç¡¢Ää»ß´ü´Ö¤ò¤É¤Î¥¯¥í¥Ã¥¯¤ËÂФ·¤Æ·×¬¤¹¤ë¤«¤ò»ØÄꤹ¤ë¡£ -¤³¤Î°ú¤­¿ô¤Ë¤Ï°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«°ì¤Ä¤ò»ØÄê¤Ç¤­¤ë¡£ +引き数で、停止期間をどのクロックに対して計測するかを指定する。 +この引き数には以下の値のいずれか一つを指定できる。 .TP 17 .BR CLOCK_REALTIME .\"O A settable system-wide real-time clock. -¥·¥¹¥Æ¥àÁ´ÂΤǻȤï¤ì¤ë¼Â»þ´Ö¥¯¥í¥Ã¥¯¡£ -¤³¤Î¥¯¥í¥Ã¥¯¤ÏÊѹ¹²Äǽ¤Ç¤¢¤ë¡£ +システム全体で使われる実時間クロック。 +このクロックは変更可能である。 .TP .BR CLOCK_MONOTONIC .\"O A nonsettable, monotonically increasing clock that measures time .\"O since some unspecified point in the past that does not change after .\"O system startup. .\"O .\" On Linux this clock measures time since boot. -²áµî¤Î¤¢¤ë»þÅÀ¤«¤é¤Î»þ´Ö¤ò·×¬¤¹¤ë¡¢Ã±Ä´Áý²Ã¤Î¥¯¥í¥Ã¥¯¡£ -µ¯ÅÀ¤È¤Ê¤ë»þÅÀ¤Ï¥·¥¹¥Æ¥àµ¯Æ°¸å¤Ë¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ -¤³¤Î¥¯¥í¥Ã¥¯¤ÏÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ -.\" Linux ¤Ç¤Ï¡¢¤³¤Î¥¯¥í¥Ã¥¯¤Ïµ¯Æ°¤«¤é¤Î»þ´Ö¤ò·×¬¤¹¤ë¡£ +過去のある時点からの時間を計測する、単調増加のクロック。 +起点となる時点はシステム起動後には変更されない。 +このクロックは変更することができない。 +.\" Linux では、このクロックは起動からの時間を計測する。 .TP .BR CLOCK_PROCESS_CPUTIME_ID .\"O A settable per-process clock that measures CPU time consumed .\"O by all threads in the process. -¤½¤Î¥×¥í¥»¥¹¤ÎÁ´¥¹¥ì¥Ã¥É¤Ç¾ÃÈñ¤µ¤ì¤ë CPU »þ´Ö¤ò·×¬¤¹¤ë¥×¥í¥»¥¹Ã±°Ì¤Î -¥¯¥í¥Ã¥¯¡£¤³¤Î¥¯¥í¥Ã¥¯¤ÏÀßÄê²Äǽ¤Ç¤¢¤ë¡£ +そのプロセスの全スレッドで消費される CPU 時間を計測するプロセス単位の +クロック。このクロックは設定可能である。 .\" There is some trickery between glibc and the kernel .\" to deal with the CLOCK_PROCESS_CPUTIME_ID case. .PP .\"O See .\"O .BR clock_getres (2) .\"O for further details on these clocks. -¤³¤ì¤é¤Î¥¯¥í¥Ã¥¯¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï +これらのクロックの詳細については .BR clock_getres (2) -¤ò»²¾È¡£ +を参照。 .\"O If .\"O .I flags @@ -140,11 +140,11 @@ struct timespec { .\"O value of the clock specified by .\"O .IR clock_id . .I flags -¤¬ 0 ¤Î¾ì¹ç¡¢ +が 0 の場合、 .I request -¤Ë»ØÄꤵ¤ì¤¿ÃÍ¤Ï +に指定された値は .I clock_id -¤Ç»ØÄꤵ¤ì¤¿¥¯¥í¥Ã¥¯¤Î¸½ºß¤ÎÃͤ«¤é¤ÎÁêÂÐŪ¤Ê´ü´Ö¤È²ò¼á¤µ¤ì¤ë¡£ +で指定されたクロックの現在の値からの相対的な期間と解釈される。 .\"O If .\"O .I flags @@ -161,15 +161,15 @@ struct timespec { .\"O .BR clock_nanosleep () .\"O returns immediately without suspending the calling thread. .I flags -¤¬ +が .B TIMER_ABSTIME -¤Î¾ì¹ç¡¢ +の場合、 .I request -¤Ï»ØÄꤵ¤ì¤¿¥¯¥í¥Ã¥¯¤Ç·×¬¤µ¤ì¤ëÀäÂлþ¹ï¤È²ò¼á¤µ¤ì¤ë¡£ +は指定されたクロックで計測される絶対時刻と解釈される。 .I request -¤¬»ØÄꤵ¤ì¤¿¥¯¥í¥Ã¥¯¤Î¸½ºß¤ÎÃͰʲ¼¤Î¾ì¹ç¡¢ +が指定されたクロックの現在の値以下の場合、 .BR clock_nanosleep () -¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤ÎÄä»ß¤ò¹Ô¤ï¤º¡¢¤¹¤°¤ËÊ֤롣 +は、呼び出したスレッドの停止を行わず、すぐに返る。 .\"O .BR clock_nanosleep () .\"O suspends the execution of the calling thread @@ -179,11 +179,11 @@ struct timespec { .\"O or a signal is delivered that causes a signal handler to be called or .\"O that terminates the process. .BR clock_nanosleep () -¤Ï¡¢¾¯¤Ê¤¯¤È¤â +は、少なくとも .I request -¤Ç»ØÄꤵ¤ì¤¿»þ´Ö¤¬·Ð²á¤¹¤ë¤Þ¤Ç¡¢¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î¼Â¹Ô¤òÄä»ß¤¹¤ë¡£ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¤ê¡¢¤½¤Î¥×¥í¥»¥¹¤ò½ªÎ»¤µ¤»¤ë¤è¤¦¤Ê -¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤¿¤ê¤·¤¿¾ì¹ç¤Ë¤â¡¢¥¹¥ì¥Ã¥É¤Î¼Â¹ÔÄä»ß¤Ï½ªÎ»¤¹¤ë¡£ +で指定された時間が経過するまで、呼び出したスレッドの実行を停止する。 +シグナルハンドラが呼び出されたり、そのプロセスを終了させるような +シグナルが配送されたりした場合にも、スレッドの実行停止は終了する。 .\"O If the call is interrupted by a signal handler, .\"O .BR clock_nanosleep () @@ -200,36 +200,36 @@ struct timespec { .\"O This value can then be used to call .\"O .BR clock_nanosleep () .\"O again and complete a (relative) sleep. -¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿¾ì¹ç¡¢ +呼び出しがシグナルハンドラによって割り込まれた場合、 .BR clock_nanosleep () -¤Ï¥¨¥é¡¼ +はエラー .B EINTR -¤Ç¼ºÇÔ¤¹¤ë¡£¤µ¤é¤Ë¡¢ +で失敗する。さらに、 .I remain -¤¬ NULL ¤Ç¤Ê¤¯¡¢¤«¤Ä +が NULL でなく、かつ .I flags -¤¬ +が .B TIMER_ABSTIME -¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ +でない場合には、 .I remain -¤Ë»Ä¤ê¤ÎÄä»ß»þ´Ö¤¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤ÎÃͤò»È¤Ã¤Æ +に残りの停止時間が返される。 +この値を使って .BR clock_nanosleep () -¤òºÆÅٸƤӽФ¹¤³¤È¤Ç¡¢(ÁêÂÐŪ¤Ê´ü´Ö¤Î) Ää»ß¤ò´°Î»¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を再度呼び出すことで、(相対的な期間の) 停止を完了することができる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On successfully sleeping for the requested interval, .\"O .BR clock_nanosleep () .\"O returns 0. .\"O If the call is interrupted by a signal handler or encounters an error, .\"O then it returns one of the positive error number listed in ERRORS. -Í׵ᤵ¤ì¤¿´ü´Ö¤ÎÄä»ß¤ËÀ®¸ù¤¹¤ë¤È¡¢ +要求された期間の停止に成功すると、 .BR clock_nanosleep () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ç³ä¤ê¹þ¤Þ¤ì¤¿¤ê¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤ê¤·¤¿¾ì¹ç¡¢ -¡Ö¥¨¥é¡¼¡×¤ÎÀá¤Î¥ê¥¹¥È¤Ë¤¢¤ëÀµ¤Î¥¨¥é¡¼ÈÖ¹æ¤Î¤¤¤º¤ì¤«°ì¤Ä¤òÊÖ¤¹¡£ +は 0 を返す。 +シグナルハンドラで割り込まれたり、エラーが発生したりした場合、 +「エラー」の節のリストにある正のエラー番号のいずれか一つを返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O .I request @@ -237,13 +237,13 @@ struct timespec { .\"O .I remain .\"O specified an invalid address. .I request -¤ä +や .I remain -¤Ë̵¸ú¤Ê¥¢¥É¥ì¥¹¤¬»ØÄꤵ¤ì¤¿¡£ +に無効なアドレスが指定された。 .TP .B EINTR .\"O The sleep was interrupted by a signal handler. -Ää»ß¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¡£ +停止がシグナルハンドラにより割り込まれた。 .TP .B EINVAL .\"O The value in the @@ -252,9 +252,9 @@ struct timespec { .\"O .I tv_sec .\"O was negative. .I tv_nsec -¥Õ¥£¡¼¥ë¥É¤ÎÃͤ¬ 0 ¤«¤é 999999999 ¤ÎÈϰϤǤʤ¤¤«¡¢ +フィールドの値が 0 から 999999999 の範囲でないか、 .I tv_sec -¤ÎÃͤ¬Éé¤Ç¤¢¤Ã¤¿¡£ +の値が負であった。 .TP .B EINVAL .\"O .I clock_id @@ -263,25 +263,25 @@ struct timespec { .\"O is not a permitted value for .\"O .IR clock_id .) .I clock_id -¤¬Ìµ¸ú¤Ç¤¢¤Ã¤¿ +が無効であった .RB ( CLOCK_THREAD_CPUTIME_ID -¤¬ +が .I clock_id -¤È¤·¤ÆÍ­¸ú¤ÊÃͤǤϤʤ¤)¡£ +として有効な値ではない)。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The .\"O .BR clock_nanosleep () .\"O system call first appeared in Linux 2.6. .\"O Support is available in glibc since version 2.1. .BR clock_nanosleep () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 2.6 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -glibc ¤Ç¤Ï¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +システムコールは Linux 2.6 で初めて登場した。 +glibc ではバージョン 2.1 以降でサポートされている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O If the interval specified in .\"O .I request .\"O is not an exact multiple of the granularity underlying clock (see @@ -290,22 +290,22 @@ POSIX.1-2001. .\"O Furthermore, after the sleep completes, there may still be a delay before .\"O the CPU becomes free to once again execute the calling thread. .I request -¤Ç»ØÄꤵ¤ì¤¿Ää»ß´ü´Ö¤¬¡¢»þ´Ö¤Î·×¬¤Ë»ÈÍѤµ¤ì¤ë¥¯¥í¥Ã¥¯ +で指定された停止期間が、時間の計測に使用されるクロック .RB ( time (7) -»²¾È) ¤ÎÀºÅÙ¤ÎÇÜ¿ô¤Á¤ç¤¦¤É¤Ç¤Ê¤¤¾ì¹ç¡¢Ää»ß´ü´Ö¤Ï°ìÈֶᤤ¼¡¤ÎÇÜ¿ô¤Ë -ÀÚ¤ê¾å¤²¤é¤ì¤ë¡£¤µ¤é¤Ë¡¢Ää»ß¤¬´°Î»¤·¤¿¸å¤Ë¡¢CPU ¤¬¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤ò -¤â¤¦°ìÅټ¹ԤǤ­¤ë¤è¤¦¤Ë¤Ê¤ë¤Þ¤Ç¤Ë¤Ï¡¢Ãٱ䤬Æþ¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +参照) の精度の倍数ちょうどでない場合、停止期間は一番近い次の倍数に +切り上げられる。さらに、停止が完了した後に、CPU が呼び出したスレッドを +もう一度実行できるようになるまでには、遅延が入る可能性がある。 .\"O Using an absolute timer is useful for preventing .\"O timer drift problems of the type described in .\"O .BR nanosleep (2). .\"O (Such problems are exacerbated in programs that try to restart .\"O a relative sleep that is repeatedly interrupted by signals.) -ÀäÂÐÃÍ»ØÄê¤Î¥¿¥¤¥Þ¤ò»È¤¦¤Î¤Ï¡¢ +絶対値指定のタイマを使うのは、 .BR nanosleep (2) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ëÎà¤Î¥¿¥¤¥Þ¤Î¤º¤ì¤ÎÌäÂê¤òËɻߤ¹¤ë¤Î¤ËÌòΩ¤Ä -(¤³¤Î¼ï¤ÎÌäÂê¤Ï¡¢¥·¥°¥Ê¥ë¤Ë³ä¤ê¹þ¤Þ¤ì¤¿ºÝ¤ËÁêÂлØÄê¤ÎÄä»ß¤ò -·«¤êÊÖ¤·ºÆ³«¤·¤è¤¦¤È¤¹¤ë¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¤«¤¨¤Ã¤Æ°­²½¤¹¤ë)¡£ +に書かれている類のタイマのずれの問題を防止するのに役立つ +(この種の問題は、シグナルに割り込まれた際に相対指定の停止を +繰り返し再開しようとするプログラムでは、かえって悪化する)。 .\"O To perform a relative sleep that avoids these problems, call .\"O .BR clock_gettime (2) .\"O for the desired clock, @@ -315,14 +315,14 @@ POSIX.1-2001. .\"O with the .\"O .B TIMER_ABSTIME .\"O flag. -¤³¤ì¤é¤ÎÌäÂê¤ò²óÈò¤·¤ÆÁêÂлØÄê¤ÎÄä»ß¤ò¼Â¹Ô¤¹¤ë¤Ë¤Ï¡¢ -´õ˾¤¹¤ë¥¯¥í¥Ã¥¯¤Ç +これらの問題を回避して相対指定の停止を実行するには、 +希望するクロックで .BR clock_gettime (2) -¤ò¸Æ¤Ó½Ð¤·¡¢¤½¤ÎÊÖ¤êÃͤλþ¹ïÃͤ˴õ˾¤¹¤ë´ü´Ö¤ò²Ã»»¤·¤Æ¤«¤é¡¢ +を呼び出し、その返り値の時刻値に希望する期間を加算してから、 .B TIMER_ABSTIME -¥Õ¥é¥°¤ò»ØÄꤷ¤Æ +フラグを指定して .BR clock_nanosleep () -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .\"O .BR clock_nanosleep () .\"O is never restarted after being interrupted by a signal handler, @@ -331,12 +331,12 @@ POSIX.1-2001. .\"O .B SA_SIGACTION .\"O flag. .BR sigaction (2) -¤Ç +で .BR SA_RESTART -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤«¤Ë´Ø¤ï¤é¤º¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¸å¤Ë +フラグが指定されているかに関わらず、 +シグナルハンドラにより割り込まれた後に .BR clock_nanosleep () -¤¬ºÆ³«¤µ¤ì¤ë¤³¤È¤Ï·è¤·¤Æ¤Ê¤¤¡£ +が再開されることは決してない。 .\"O The .\"O .I remain @@ -348,21 +348,21 @@ POSIX.1-2001. .\"O .I request .\"O argument.) .I flags -¤¬ +が .B TIMER_ABSTIME -¤Î¾ì¹ç¡¢ +の場合、 .I remain -°ú¤­¿ô¤Ï»ÈÍѤµ¤ì¤º¡¢ÉÔÍפǤ¢¤ë -(ÀäÂÐÃͤǤÎÄä»ß¤Ç¤Ï¡¢Æ±¤¸ +引き数は使用されず、不要である +(絶対値での停止では、同じ .I request -°ú¤­¿ô¤ò»È¤Ã¤ÆºÆÅٸƤӽФ¹¤³¤È¤¬¤Ç¤­¤ë)¡£ +引き数を使って再度呼び出すことができる)。 .\"O POSIX.1 specifies that .\"O .BR clock_nanosleep () .\"O has no effect on signals dispositions or the signal mask. -POSIX.1 ¤Îµ¬Äê¤Ç¤Ï¡¢ +POSIX.1 の規定では、 .BR clock_nanosleep () -¤Ï¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤ä¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ë±Æ¶Á¤òÍ¿¤¨¤Ê¤¤¡¢¤È¤µ¤ì¤Æ¤¤¤ë¡£ +はシグナルの処理方法やシグナルマスクに影響を与えない、とされている。 .\"O POSIX.1 specifies that after changing the value of the .\"O .B CLOCK_REALTIME @@ -375,17 +375,17 @@ POSIX.1 .\"O if the new clock value falls past the end of the sleep interval, then the .\"O .BR clock_nanosleep () .\"O call will return immediately. -POSIX.1 ¤Îµ¬Äê¤Ç¤Ï¡¢ +POSIX.1 の規定では、 .BR clock_settime (2) -¤Ç +で .B CLOCK_REALTIME -¥¯¥í¥Ã¥¯¤ÎÃͤòÊѹ¹¤·¤¿¸å¤Ï¡¢ÀäÂÐÃÍ»ØÄê¤Î +クロックの値を変更した後は、絶対値指定の .BR clock_nanosleep () -¤ÇÄä»ß¤·¤Æ¤¤¤ë¥¹¥ì¥Ã¥É¤òµ¯Æ°¤µ¤»¤ë»þ¹ï¤ÎȽÄê¤Ï¡¢ -¿·¤·¤¤¥¯¥í¥Ã¥¯Ãͤò»È¤Ã¤Æ¹Ô¤ï¤ì¤ë¡¢¤È¤µ¤ì¤Æ¤¤¤ë¡£ -¿·¤·¤¤¥¯¥í¥Ã¥¯Ãͤˤª¤¤¤ÆÄä»ß´ü´Ö¤Î½ªÎ»»þ¹ï¤¬²áµî¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ +で停止しているスレッドを起動させる時刻の判定は、 +新しいクロック値を使って行われる、とされている。 +新しいクロック値において停止期間の終了時刻が過去になってしまった場合には、 .BR clock_nanosleep () -¤Ï¤¹¤°¤ËÊ֤뤳¤È¤Ë¤Ê¤ë¡£ +はすぐに返ることになる。 .\"O POSIX.1 specifies that .\"O changing the value of the @@ -394,15 +394,15 @@ POSIX.1 .\"O .BR clock_settime (2) .\"O shall have no effect on a thread that is blocked on a relative .\"O .BR clock_nanosleep (). -POSIX.1 ¤Îµ¬Äê¤Ç¤Ï¡¢ +POSIX.1 の規定では、 .BR clock_settime (2) -¤Ç +で .B CLOCK_REALTIME -¥¯¥í¥Ã¥¯¤ÎÃͤòÊѹ¹¤·¤Æ¤â¡¢ÁêÂÐÃÍ»ØÄê¤Î +クロックの値を変更しても、相対値指定の .BR clock_nanosleep () -¤ÇÄä»ß¤·¤Æ¤¤¤ë¥¹¥ì¥Ã¥É¤Ë¤Ï±Æ¶Á¤òÍ¿¤¨¤Ê¤¤¡¢¤È¤µ¤ì¤Æ¤¤¤ë¡£ +で停止しているスレッドには影響を与えない、とされている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR clock_getres (2), .BR nanosleep (2), .BR timer_create (2), diff --git a/draft/man2/clone.2 b/draft/man2/clone.2 index 81f56d6d..803a83da 100644 --- a/draft/man2/clone.2 +++ b/draft/man2/clone.2 @@ -58,20 +58,20 @@ .\" Updated 2009-03-02, Akihiro MOTOKI, LDP v3.19 .\" Updated 2010-04-11, Akihiro MOTOKI, LDP v3.24 .\" -.\"WORD: capability ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ -.\"WORD: pending signals ½èÍýÂÔ¤Á¥·¥°¥Ê¥ë -.\"WORD: namespace ̾Á°¶õ´Ö +.\"WORD: capability ケーパビリティ +.\"WORD: pending signals 処理待ちシグナル +.\"WORD: namespace 名前空間 .\" .TH CLONE 2 2010-11-01 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O clone, __clone2 \- create a child process -.SH ̾Á° -clone, __clone2 \- »Ò¥×¥í¥»¥¹¤òºîÀ®¤¹¤ë +.SH 名前 +clone, __clone2 \- 子プロセスを作成する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .\" Actually _BSD_SOURCE || _SVID_SOURCE .\" See http://sources.redhat.com/bugzilla/show_bug.cgi?id=4749 .B #include @@ -82,7 +82,7 @@ clone, __clone2 \- ", pid_t *" ctid " */ );" .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR clone () .\"O creates a new process, in a manner similar to .\"O .BR fork (2). @@ -94,17 +94,17 @@ clone, __clone2 \- .\"O .B sys_clone .\"O is given toward the end of this page. .BR clone () -¤Ï +は .BR fork (2) -¤ÈƱ¤¸¤è¤¦¤ÊÊýË¡¤Ç¿·¤·¤¤¥×¥í¥»¥¹¤òºîÀ®¤¹¤ë¡£ +と同じような方法で新しいプロセスを作成する。 .BR clone () -¤Ë¤Ï¡¢¥é¥¤¥Ö¥é¥ê´Ø¿ô¤È¤½¤Î²¼Áؤˤ¢¤¿¤ë +には、ライブラリ関数とその下層にあたる .BR clone () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Â¸ºß¤¹¤ë¡£°Ê²¼¤ÎÀâÌÀ¤Ç¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÊý¤ò +システムコールが存在する。以下の説明では、システムコールの方を .B sys_clone -¤Èɽ¤¹¤³¤È¤È¤¹¤ë¡£ +と表すこととする。 .B sys_clone -¤Ë´Ø¤¹¤ëÀâÌÀ¤Ï¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤ÎºÇ¸å¤ÎÊý¤Ë¤¢¤ë¡£ +に関する説明はこのマニュアルの最後の方にある。 .\"O Unlike .\"O .BR fork (2), @@ -118,23 +118,23 @@ clone, __clone2 \- .\"O .B CLONE_PARENT .\"O below.) .BR fork (2) -¤È¤Ï°Û¤Ê¤ê¡¢¤³¤ì¤é¤Î¥³¡¼¥ë¤Ç¤Ï¡¢»Ò¥×¥í¥»¥¹ (child process) -¤È¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤È¤¬¡¢¥á¥â¥ê¶õ´Ö¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¥Æ¡¼¥Ö¥ë¡¢¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤Î¥Æ¡¼¥Ö¥ë¤Ê¤É¤Î -¼Â¹Ô¥³¥ó¥Æ¥­¥¹¥È¤Î°ìÉô¤ò¶¦Í­¤Ç¤­¤ë¡£ -(¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Ë¤ª¤±¤ë¡Ö¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¡×¤Ï¡¢Ä̾ï¤Ï -¡Ö¿Æ¥×¥í¥»¥¹¡×¤È°ìÃפ¹¤ë¡£Ã¢¤·¡¢¸å½Ò¤Î +とは異なり、これらのコールでは、子プロセス (child process) +と呼び出し元のプロセスとが、メモリ空間、 +ファイルディスクリプタのテーブル、シグナル・ハンドラのテーブルなどの +実行コンテキストの一部を共有できる。 +(このマニュアルにおける「呼び出し元のプロセス」は、通常は +「親プロセス」と一致する。但し、後述の .B CLONE_PARENT -¤Î¹à¤â»²¾È¤Î¤³¤È) +の項も参照のこと) .\"O The main use of .\"O .BR clone () .\"O is to implement threads: multiple threads of control in a program that .\"O run concurrently in a shared memory space. .BR clone () -¤Î¼çÍפʻÈÍÑË¡¤Ï¥¹¥ì¥Ã¥É (threads) ¤ò¼ÂÁõ¤¹¤ë¤³¤È¤Ç¤¢¤ë: -°ì¤Ä¤Î¥×¥í¥°¥é¥à¤ÎÃæ¤ÎÊ£¿ô¤Î¥¹¥ì¥Ã¥É¤Ï¶¦Í­¤µ¤ì¤¿¥á¥â¥ê¶õ´Ö¤Ç -Ʊ»þ¤Ë¼Â¹Ô¤µ¤ì¤ë¡£ +の主要な使用法はスレッド (threads) を実装することである: +一つのプログラムの中の複数のスレッドは共有されたメモリ空間で +同時に実行される。 .\"O When the child process is created with .\"O .BR clone (), @@ -157,23 +157,23 @@ clone, __clone2 \- .\"O .I fn .\"O function. .BR clone () -¤Ç»Ò¥×¥í¥»¥¹¤¬ºîÀ®¤µ¤ì¤¿»þ¤Ë¡¢ºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï´Ø¿ô +で子プロセスが作成された時に、作成された子プロセスは関数 .IR fn ( arg ) -¤ò¼Â¹Ô¤¹¤ë¡£ -(¤³¤ÎÅÀ¤¬ +を実行する。 +(この点が .BR fork (2) -¤È¤Ï°Û¤Ê¤ë¡£ +とは異なる。 .BR fork (2) -¤Î¾ì¹ç¡¢»Ò¥×¥í¥»¥¹¤Ï +の場合、子プロセスは .BR fork (2) -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì½ê¤«¤é¼Â¹Ô¤ò³¤±¤ë¡£) +が呼び出された場所から実行を続ける。) .I fn -°ú¤­¿ô¤Ï¡¢»Ò¥×¥í¥»¥¹¤¬¼Â¹Ô¤ò»Ï¤á¤ë»þ¤Ë»Ò¥×¥í¥»¥¹¤¬¸Æ¤Ó½Ð¤¹ -´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +引き数は、子プロセスが実行を始める時に子プロセスが呼び出す +関数へのポインタである。 .I arg -°ú¤­¿ô¤Ï¤½¤Î¤Þ¤Þ +引き数はそのまま .I fn -´Ø¿ô¤Ø¤ÈÅϤµ¤ì¤ë¡£ +関数へと渡される。 .\"O When the .\"O .IR fn ( arg ) @@ -185,13 +185,13 @@ clone, __clone2 \- .\"O .BR exit (2) .\"O or after receiving a fatal signal. .IR fn ( arg ) -´Ø¿ô¤¬½ªÎ»¤¹¤ë¤È¡¢»Ò¥×¥í¥»¥¹¤Ï½ªÎ»¤¹¤ë¡£ +関数が終了すると、子プロセスは終了する。 .I fn -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤¿À°¿ô¤¬»Ò¥×¥í¥»¥¹¤Î½ªÎ»¥³¡¼¥É¤È¤Ê¤ë¡£ -»Ò¥×¥í¥»¥¹¤Ï¡¢ +によって返された整数が子プロセスの終了コードとなる。 +子プロセスは、 .BR exit (2) -¤ò¸Æ¤ó¤ÇÌÀ¼¨Åª¤Ë½ªÎ»¤¹¤ë¤³¤È¤â¤¢¤ë¤·¡¢Ã×̿Ū¤Ê¥·¥°¥Ê¥ë¤ò¼õ¿®¤·¤¿ -¾ì¹ç¤Ë½ªÎ»¤¹¤ë¤³¤È¤â¤¢¤ë¡£ +を呼んで明示的に終了することもあるし、致命的なシグナルを受信した +場合に終了することもある。 .\"O The .\"O .I child_stack @@ -204,23 +204,23 @@ clone, __clone2 \- .\"O space to .\"O .BR clone (). .I child_stack -°ú¤­¿ô¤Ï¡¢»Ò¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤ë¥¹¥¿¥Ã¥¯¤Î°ÌÃÖ¤ò»ØÄꤹ¤ë¡£ -»Ò¥×¥í¥»¥¹¤È¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ï¥á¥â¥ê¤ò¶¦Í­¤¹¤ë¤³¤È¤¬¤¢¤ë¤¿¤á¡¢ -»Ò¥×¥í¥»¥¹¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÈƱ¤¸¥¹¥¿¥Ã¥¯¤Ç¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ -¤³¤Î¤¿¤á¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ï»Ò¥×¥í¥»¥¹¤Î¥¹¥¿¥Ã¥¯¤Î¤¿¤á¤Î¥á¥â¥ê¶õ´Ö¤ò -ÍÑ°Õ¤·¤Æ¡¢¤³¤Î¶õ´Ö¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò +引き数は、子プロセスによって使用されるスタックの位置を指定する。 +子プロセスと呼び出し元のプロセスはメモリを共有することがあるため、 +子プロセスは呼び出し元のプロセスと同じスタックで実行することができない。 +このため、呼び出し元のプロセスは子プロセスのスタックのためのメモリ空間を +用意して、この空間へのポインタを .BR clone () -¤ØÅϤµ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +へ渡さなければならない。 .\"O Stacks grow downward on all processors that run Linux .\"O (except the HP PA processors), so .\"O .I child_stack .\"O usually points to the topmost address of the memory space set up for .\"O the child stack. -(HP PA ¥×¥í¥»¥Ã¥µ°Ê³°¤Î) Linux ¤¬Æ°ºî¤¹¤ëÁ´¤Æ¤Î¥×¥í¥»¥Ã¥µ¤Ç¤Ï¡¢ -¥¹¥¿¥Ã¥¯¤Ï²¼Êý (¥¢¥É¥ì¥¹¤¬¾®¤µ¤¤Êý¸þ) ¤Ø¤È¿­¤Ó¤ë¡£¤³¤Î¤¿¤á¡¢ÉáÄÌ¤Ï +(HP PA プロセッサ以外の) Linux が動作する全てのプロセッサでは、 +スタックは下方 (アドレスが小さい方向) へと伸びる。このため、普通は .I child_stack -¤Ï»Ò¥×¥í¥»¥¹¤Î¥¹¥¿¥Ã¥¯¤Î¤¿¤á¤ËÍÑ°Õ¤·¤¿¥á¥â¥ê¶õ´Ö¤Î°ìÈÖÂ礭¤¤ -¥¢¥É¥ì¥¹¤ò»Ø¤¹¤è¤¦¤Ë¤¹¤ë¡£ +は子プロセスのスタックのために用意したメモリ空間の一番大きい +アドレスを指すようにする。 .\"O The low byte of .\"O .I flags @@ -238,31 +238,31 @@ clone, __clone2 \- .\"O If no signal is specified, then the parent process is not signaled .\"O when the child terminates. .I flags -¤Î²¼°Ì 1 ¥Ð¥¤¥È¤Ï»Ò¥×¥í¥»¥¹¤¬»à¤ó¤À¾ì¹ç¤Ë¿Æ¥×¥í¥»¥¹¤Ø¤ÈÁ÷¤é¤ì¤ë -.I "½ªÎ»¥·¥°¥Ê¥ë (termination signal)" -¤ÎÈÖ¹æ¤ò»ØÄꤹ¤ë¡£¤³¤Î¥·¥°¥Ê¥ë¤È¤·¤Æ +の下位 1 バイトは子プロセスが死んだ場合に親プロセスへと送られる +.I "終了シグナル (termination signal)" +の番号を指定する。このシグナルとして .B SIGCHLD -°Ê³°¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¿Æ¥×¥í¥»¥¹¤Ï¡¢ +以外が指定された場合、親プロセスは、 .BR wait (2) -¤Ç»Ò¥×¥í¥»¥¹¤òÂԤĺݤˡ¢¥ª¥×¥·¥ç¥ó¤È¤·¤Æ +で子プロセスを待つ際に、オプションとして .B __WALL -¤Þ¤¿¤Ï +または .B __WCLONE -¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤É¤Î¥·¥°¥Ê¥ë¤â»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿»þ¤Ë¿Æ¥×¥í¥»¥¹ -¤Ë¥·¥°¥Ê¥ë¤ÏÁ÷¤é¤ì¤Ê¤¤¡£ +を指定しなければならない。 +どのシグナルも指定されなかった場合、子プロセスが終了した時に親プロセス +にシグナルは送られない。 .\"O .I flags .\"O may also be bitwise-or'ed with zero or more of the following constants, .\"O in order to specify what is shared between the calling process .\"O and the child process: .I flags -¤Ë¤Ï¡¢°Ê²¼¤ÎÄê¿ô¤Î¤¦¤Á 0¸Ä°Ê¾å¤ò¥Ó¥Ã¥ÈËè¤ÎÏÀÍýÏ (bitwise-or) -¤ò¤È¤Ã¤¿¤â¤Î¤ò»ØÄê¤Ç¤­¤ë¡£¤³¤ì¤é¤ÎÄê¿ô¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤È -»Ò¥×¥í¥»¥¹¤Î´Ö¤Ç²¿¤ò¶¦Í­¤¹¤ë¤«¤ò»ØÄꤹ¤ë: +には、以下の定数のうち 0個以上をビット毎の論理和 (bitwise-or) +をとったものを指定できる。これらの定数は呼び出し元のプロセスと +子プロセスの間で何を共有するかを指定する: .TP .\"O .BR CLONE_CHILD_CLEARTID " (since Linux 2.5.49)" -.BR CLONE_CHILD_CLEARTID " (Linux 2.5.49 °Ê¹ß)" +.BR CLONE_CHILD_CLEARTID " (Linux 2.5.49 以降)" .\"O Erase child thread ID at location .\"O .I ctid .\"O in child memory when the child exits, and do a wakeup on the futex @@ -271,23 +271,23 @@ clone, __clone2 \- .\"O .BR set_tid_address (2) .\"O system call. .\"O This is used by threading libraries. -»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿¤È¤­¤Ë»Ò¥×¥í¥»¥¹¤Î¥á¥â¥êÆâ¤Î +子プロセスが終了したときに子プロセスのメモリ内の .I ctid -¤¬»Ø¤¹¾ì½ê¤Ë¤¢¤ë»Ò¥×¥í¥»¥¹¤Î¥¹¥ì¥Ã¥É ID ¤ò¾Ãµî¤·¡¢ -¤½¤Î¥¢¥É¥ì¥¹¤Ç futex ¤ò wake (µ¯¾²) ¤µ¤»¤ë¡£ -¤³¤Î¥¢¥É¥ì¥¹¤Ï +が指す場所にある子プロセスのスレッド ID を消去し、 +そのアドレスで futex を wake (起床) させる。 +このアドレスは .BR set_tid_address (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÇÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Îµ¡Ç½¤Ï¥¹¥ì¥Ã¥É¥é¥¤¥Ö¥é¥ê¤Ç»ÈÍѤµ¤ì¤ë¡£ +システムコールで変更することができる。 +この機能はスレッドライブラリで使用される。 .TP .\"O .BR CLONE_CHILD_SETTID " (since Linux 2.5.49)" -.BR CLONE_CHILD_SETTID " (Linux 2.5.49 °Ê¹ß)" +.BR CLONE_CHILD_SETTID " (Linux 2.5.49 以降)" .\"O Store child thread ID at location .\"O .I ctid .\"O in child memory. -»Ò¥×¥í¥»¥¹¤Î¥á¥â¥êÆâ¤Î +子プロセスのメモリ内の .I ctid -¤¬»Ø¤¹¾ì½ê¤Ë»Ò¥×¥í¥»¥¹¤Î¥¹¥ì¥Ã¥É ID ¤ò³ÊǼ¤¹¤ë¡£ +が指す場所に子プロセスのスレッド ID を格納する。 .TP .B CLONE_FILES .\"O If @@ -302,15 +302,15 @@ clone, __clone2 \- .\"O .B F_SETFD .\"O operation), the other process is also affected. .B CLONE_FILES -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤È»Ò¥×¥í¥»¥¹¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î -¥Æ¡¼¥Ö¥ë¤ò¶¦Í­¤¹¤ë¡£ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤È¤½¤Î»Ò¥×¥í¥»¥¹¤Î°ìÊý¤¬ºîÀ®¤·¤¿ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢¤â¤¦°ìÊý¤Ë¤ª¤¤¤Æ¤âÍ­¸ú¤Ç¤¢¤ë¡£ -Ʊ¤¸¤è¤¦¤Ë¡¢°ìÊý¤Î¥×¥í¥»¥¹¤¬¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊĤ¸¤¿¤ê¡¢ +が設定された場合、呼び出し元のプロセスと子プロセスはファイルディスクリプタの +テーブルを共有する。 +呼び出し元プロセスとその子プロセスの一方が作成した +ファイルディスクリプタは、もう一方においても有効である。 +同じように、一方のプロセスがファイルディスクリプタを閉じたり、 .RB ( fcntl (2) .B F_SETFD -Áàºî¤ò»È¤Ã¤Æ) ¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë´ØÏ¢¤¹¤ë¥Õ¥é¥°¤òÊѹ¹¤·¤¿¤ê¤¹¤ë¤È¡¢ -¤â¤¦°ìÊý¤Î¥×¥í¥»¥¹¤Ë¤â±Æ¶Á¤¹¤ë¡£ +操作を使って) ディスクリプタに関連するフラグを変更したりすると、 +もう一方のプロセスにも影響する。 .\"O If .\"O .B CLONE_FILES @@ -326,19 +326,19 @@ clone, __clone2 \- .\"O performed by either the calling .\"O process or the child process do not affect the other process. .B CLONE_FILES -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢»Ò¥×¥í¥»¥¹¤Ï¡¢ +が設定されていない場合、子プロセスは、 .BR clone () -¤¬¼Â¹Ô¤µ¤ì¤¿»þÅÀ¤Ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ëÁ´¤Æ¤Î -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë -(»Ò¥×¥í¥»¥¹¤ÎÊ£À½¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢ -Âбþ¤¹¤ë¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤È -Ʊ¤¸¥Õ¥¡¥¤¥ëµ­½Ò +が実行された時点で、呼び出し元のプロセスがオープンしている全ての +ファイルディスクリプタのコピーを継承する +(子プロセスの複製されたファイルディスクリプタは、 +対応する呼び出し元のプロセスのファイルディスクリプタと +同じファイル記述 .RB ( open (2) -»²¾È) ¤ò»²¾È¤¹¤ë)¡£ -¤³¤ì°Ê¹ß¤Ë¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤È»Ò¥×¥í¥»¥¹¤Î°ìÊý¤¬ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÁàºî (¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î -¥ª¡¼¥×¥ó¡¦¥¯¥í¡¼¥º¤ä¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Õ¥é¥°¤ÎÊѹ¹) -¤ò¹Ô¤Ã¤Æ¤â¡¢¤â¤¦°ìÊý¤Î¥×¥í¥»¥¹¤Ë¤Ï±Æ¶Á¤òÍ¿¤¨¤Ê¤¤¡£ +参照) を参照する)。 +これ以降に、呼び出し元のプロセスと子プロセスの一方が +ファイルディスクリプタの操作 (ファイルディスクリプタの +オープン・クローズや、ファイルディスクリプタ・フラグの変更) +を行っても、もう一方のプロセスには影響を与えない。 .TP .B CLONE_FS .\"O If @@ -355,15 +355,15 @@ clone, __clone2 \- .\"O performed by the calling process or the child process also affects the .\"O other process. .B CLONE_FS -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤È»Ò¥×¥í¥»¥¹¤¬Æ±¤¸¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à -¾ðÊó¤ò¶¦Í­¤¹¤ë¡£¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¾ðÊó¤Ï¡¢¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î¥ë¡¼¥È (root)¡¢ -¥«¥ì¥ó¥È¡¦¥ï¡¼¥­¥ó¥°¡¦¥Ç¥£¥ì¥¯¥È¥ê (current working directory) -¤ä umask ¤Ê¤É¤Ç¤¢¤ë¡£ -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ä»Ò¥×¥í¥»¥¹¤Î¤É¤Á¤é¤«°ìÊý¤Ë¤è¤Ã¤Æ +が設定された場合、呼び出し元のプロセスと子プロセスが同じファイル・システム +情報を共有する。ファイル・システム情報は、ファイル・システムのルート (root)、 +カレント・ワーキング・ディレクトリ (current working directory) +や umask などである。 +呼び出し元のプロセスや子プロセスのどちらか一方によって .BR chroot (2), .BR chdir (2), .BR umask (2) -¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤È¡¢¤â¤¦°ìÊý¤Î¥×¥í¥»¥¹¤Ë¤â±Æ¶Á¤¬µÚ¤Ö¡£ +が呼び出されると、もう一方のプロセスにも影響が及ぶ。 .\"O If .\"O .B CLONE_FS @@ -377,18 +377,18 @@ clone, __clone2 \- .\"O .BR umask (2) .\"O performed later by one of the processes do not affect the other process. .B CLONE_FS -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢»Ò¥×¥í¥»¥¹¤Ï¡¢ +が設定されていない場合、子プロセスは、 .BR clone () -¤¬¼Â¹Ô¤µ¤ì¤¿»þÅÀ¤Ç¤Î¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¾ðÊó¤Î¥³¥Ô¡¼¤ò -»ÈÍѤ¹¤ë¡£ -¤³¤ì°Ê¹ß¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤È»Ò¥×¥í¥»¥¹¤Î°ìÊý¤¬ +が実行された時点での、呼び出し元のプロセスのファイル・システム情報のコピーを +使用する。 +これ以降は、呼び出し元のプロセスと子プロセスの一方が .BR chroot (2), .BR chdir (2), .BR umask (2) -¤ò¸Æ¤Ó½Ð¤·¤Æ¤â¡¢¤â¤¦°ìÊý¤Î¥×¥í¥»¥¹¤Ë¤Ï±Æ¶Á¤òÍ¿¤¨¤Ê¤¤¡£ +を呼び出しても、もう一方のプロセスには影響を与えない。 .TP .\"O .BR CLONE_IO " (since Linux 2.6.25)" -.BR CLONE_IO " (Linux 2.6.25 °Ê¹ß)" +.BR CLONE_IO " (Linux 2.6.25 以降)" .\"O If .\"O .B CLONE_IO .\"O is set, then the new process shares an I/O context with @@ -397,11 +397,11 @@ clone, __clone2 \- .\"O .BR fork (2)) .\"O the new process has its own I/O context. .B CLONE_IO -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¿·¤·¤¤¥×¥í¥»¥¹¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤È -I/O ¥³¥ó¥Æ¥­¥¹¥È¤ò¶¦Í­¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ +が設定された場合、新しいプロセスは呼び出し元のプロセスと +I/O コンテキストを共有する。 +このフラグが設定されていない場合には、 .RB ( fork (2) -¤Î¾ì¹ç¤ÈƱÍÍ) ¿·¤·¤¤¥×¥í¥»¥¹¤Ï¼«Ê¬ÀìÍѤΠI/O ¥³¥ó¥Æ¥­¥¹¥È¤ò»ý¤Ä¡£ +の場合と同様) 新しいプロセスは自分専用の I/O コンテキストを持つ。 .\" The following based on text from Jens Axboe .\"O The I/O context is the I/O scope of the disk scheduler (i.e, @@ -409,12 +409,12 @@ I/O .\"O If processes share the same I/O context, .\"O they are treated as one by the I/O scheduler. .\"O As a consequence, they get to share disk time. -I/O ¥³¥ó¥Æ¥­¥¹¥È¤Ï¡¢¥Ç¥£¥¹¥¯¥¹¥±¥¸¥å¡¼¥ë¤Î I/O ¥¹¥³¡¼¥×¤Ç¤¢¤ë -(¸À¤¤´¹¤¨¤ë¤È¡¢I/O ¥³¥ó¥Æ¥­¥¹¥È¤Ï I/O ¥¹¥±¥¸¥å¡¼¥é¤¬¥×¥í¥»¥¹ I/O ¤Î -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ò¥â¥Ç¥ë²½¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë)¡£ -Ê£¿ô¤Î¥×¥í¥»¥¹¤¬Æ±¤¸ I/O ¥³¥ó¥Æ¥­¥¹¥È¤ò¶¦Í­¤¹¤ë¾ì¹ç¡¢ -¤³¤ì¤é¤Î¥×¥í¥»¥¹¤Ï I/O ¥¹¥±¥¸¥å¡¼¥é¤«¤é¤Ï°ì¤Ä¤È¤·¤Æ°·¤ï¤ì¤ë¡£ -·ë²Ì¤È¤·¤Æ¡¢¤³¤ì¤é¤Î¥×¥í¥»¥¹¤Ï¥Ç¥£¥¹¥¯¥¢¥¯¥»¥¹¤Î»þ´Ö¤ò¶¦Í­¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +I/O コンテキストは、ディスクスケジュールの I/O スコープである +(言い換えると、I/O コンテキストは I/O スケジューラがプロセス I/O の +スケジューリングをモデル化するのに使用される)。 +複数のプロセスが同じ I/O コンテキストを共有する場合、 +これらのプロセスは I/O スケジューラからは一つとして扱われる。 +結果として、これらのプロセスはディスクアクセスの時間を共有するようになる。 .\"O For some I/O schedulers, .\"O .\" the anticipatory and CFQ scheduler .\"O if two processes share an I/O context, @@ -425,27 +425,27 @@ I/O .\"O .BR CLONE_IO .\"O to get better I/O performance. .\"O .\" with CFQ and AS. -¤¤¤¯¤Ä¤«¤Î I/O ¥¹¥±¥¸¥å¡¼¥é¤Ç¤Ï¡¢ -.\" ͽ¬¥¹¥±¥¸¥å¡¼¥é¤È CFQ ¥¹¥±¥¸¥å¡¼¥é -Æó¤Ä¤Î¥×¥í¥»¥¹¤¬ I/O ¥³¥ó¥Æ¥­¥¹¥È¤ò¶¦Í­¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -¤³¤ì¤é¤Î¥×¥í¥»¥¹¤Ï¥Ç¥£¥¹¥¯¥¢¥¯¥»¥¹¤ò¸ò¸ß¤Ë¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -Ʊ¤¸¥×¥í¥»¥¹¤ÎÊ£¿ô¤Î¥¹¥ì¥Ã¥É¤¬ I/O ¤ò¼Â¹Ô¤·¤Æ¤¤¤ë¾ì¹ç -(Î㤨¤Ð -.BR aio_read (3))¡¢ +いくつかの I/O スケジューラでは、 +.\" 予測スケジューラと CFQ スケジューラ +二つのプロセスが I/O コンテキストを共有している場合、 +これらのプロセスはディスクアクセスを交互に行うことができる。 +同じプロセスの複数のスレッドが I/O を実行している場合 +(例えば +.BR aio_read (3))、 .B CLONE_IO -¤òÍøÍѤ¹¤ë¤³¤È¤Ç I/O À­Ç½¤òÎɤ¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.\" CFQ ¤È AS ¤Î¾ì¹ç +を利用することで I/O 性能を良くすることができる。 +.\" CFQ と AS の場合 .\"O If the kernel is not configured with the .\"O .B CONFIG_BLOCK .\"O option, this flag is a no-op. -¥«¡¼¥Í¥ë¤ÎÀßÄ꤬ +カーネルの設定が .B CONFIG_BLOCK -¥ª¥×¥·¥ç¥óÉÕ¤­¤Ç¤Ê¤¤¾ì¹ç¡¢ -¤³¤Î¥Õ¥é¥°¤Ï²¿¤Î°ÕÌ£¤â»ý¤¿¤Ê¤¤¡£ +オプション付きでない場合、 +このフラグは何の意味も持たない。 .TP .\"O .BR CLONE_NEWIPC " (since Linux 2.6.19)" -.BR CLONE_NEWIPC " (Linux 2.6.19 °Ê¹ß)" +.BR CLONE_NEWIPC " (Linux 2.6.19 以降)" .\"O If .\"O .B CLONE_NEWIPC .\"O is set, then create the process in a new IPC namespace. @@ -455,12 +455,12 @@ I/O .\"O the calling process. .\"O This flag is intended for the implementation of containers. .B CLONE_NEWIPC -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¿·¤·¤¤ IPC ̾Á°¶õ´Ö (namespace) ¤Ç¥×¥í¥»¥¹¤òºîÀ®¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +が設定された場合、新しい IPC 名前空間 (namespace) でプロセスを作成する。 +このフラグが設定されていない場合、 .RB ( fork (2) -¤Î¾ì¹ç¤ÈƱÍÍ) ¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÈƱ¤¸ IPC ̾Á°¶õ´Ö¤Ç¥×¥í¥»¥¹¤¬ -ºîÀ®¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï¡¢¥³¥ó¥Æ¥Ê¤Î¼ÂÁõ¤Ç¤Î»ÈÍѤò°Õ¿Þ¤·¤ÆÍÑ°Õ¤µ¤ì¤¿¤â¤Î¤Ç¤¢¤ë¡£ +の場合と同様) 呼び出し元のプロセスと同じ IPC 名前空間でプロセスが +作成される。 +このフラグは、コンテナの実装での使用を意図して用意されたものである。 .\"O An IPC namespace consists of the set of identifiers for .\"O System V IPC objects. @@ -472,23 +472,23 @@ I/O .\"O Objects created in an IPC namespace are visible to all other processes .\"O that are members of that namespace, .\"O but are not visible to processes in other IPC namespaces. -IPC ̾Á°¶õ´Ö¤Ï¡¢System V IPC ¥ª¥Ö¥¸¥§¥¯¥ÈÍѤμ±ÊÌ»Ò (identifiers) ¤Î -½¸¹ç¤Ç¹½À®¤µ¤ì¤ë -(System V IPC ¥ª¥Ö¥¸¥§¥¯¥È¤Ï +IPC 名前空間は、System V IPC オブジェクト用の識別子 (identifiers) の +集合で構成される +(System V IPC オブジェクトは .BR msgctl (2), .BR semctl (2), .BR shmctl (2) -¤ò»È¤Ã¤ÆºîÀ®¤µ¤ì¤ë)¡£ -¤¢¤ë IPC ̾Á°¶õ´Ö¤ËºîÀ®¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢ -¤½¤Î̾Á°¶õ´Ö¤Î¥á¥ó¥Ð¡¼¤Ç¤¢¤ë¾¤Î¤¹¤Ù¤Æ¤Î¥×¥í¥»¥¹¤«¤é¤â¸«¤¨¤ë¤¬¡¢ -°ã¤¦ IPC ̾Á°¶õ´Ö¤Î¥×¥í¥»¥¹¤«¤é¤Ï¸«¤¨¤Ê¤¤¡£ +を使って作成される)。 +ある IPC 名前空間に作成されたオブジェクトは、 +その名前空間のメンバーである他のすべてのプロセスからも見えるが、 +違う IPC 名前空間のプロセスからは見えない。 .\"O When an IPC namespace is destroyed .\"O (i.e, when the last process that is a member of the namespace terminates), .\"O all IPC objects in the namespace are automatically destroyed. -IPC ̾Á°¶õ´Ö¤¬ÇË´þ¤µ¤ì¤ë»þ -(¤¹¤Ê¤ï¤Á¡¢¤½¤Î̾Á°¶õ´Ö¤Î¥á¥ó¥Ð¡¼¤ÎºÇ¸å¤Î¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë»þ)¡¢ -¤½¤Î̾Á°¶õ´Ö¤ÎÁ´¤Æ¤Î IPC ¥ª¥Ö¥¸¥§¥¯¥È¤Ï¼«Æ°Åª¤ËÇË´þ¤µ¤ì¤ë¡£ +IPC 名前空間が破棄される時 +(すなわち、その名前空間のメンバーの最後のプロセスが終了する時)、 +その名前空間の全ての IPC オブジェクトは自動的に破棄される。 .\"O Use of this flag requires: a kernel configured with the .\"O .B CONFIG_SYSVIPC @@ -498,24 +498,24 @@ IPC ̾ .\"O .RB ( CAP_SYS_ADMIN ). .\"O This flag can't be specified in conjunction with .\"O .BR CLONE_SYSVSEM . -¤³¤Î¥Õ¥é¥°¤ò»ÈÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢ -¥«¡¼¥Í¥ë¤Ç¥ª¥×¥·¥ç¥ó +このフラグを使用するためには、 +カーネルでオプション .B CONFIG_SYSVIPC -¤È +と .B CONFIG_IPC_NS -¤òÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¡¢ -¥×¥í¥»¥¹¤¬Æø¢ +を有効になっていること、 +プロセスが特権 .RB ( CAP_SYS_ADMIN ) -¤ò»ý¤Ã¤Æ¤¤¤ë¤³¤È¤¬É¬ÍפǤ¢¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï +を持っていることが必要である。 +このフラグは .B CLONE_SYSVSEM -¤ÈÁȤ߹ç¤ï¤»¤Æ»È¤¦¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +と組み合わせて使うことはできない。 .TP .\"O .BR CLONE_NEWNET " (since Linux 2.6.24)" -.BR CLONE_NEWNET " (Linux 2.6.24 °Ê¹ß)" +.BR CLONE_NEWNET " (Linux 2.6.24 以降)" .\"O (The implementation of this flag was only completed .\"O by about kernel version 2.6.29.) -(¤³¤Î¥Õ¥é¥°¤Î¼ÂÁõ¤Ï¡¢Linux 2.6.29 ¤¢¤¿¤ê¤Þ¤Ç¤Ë´°À®¤·¤¿¡£) +(このフラグの実装は、Linux 2.6.29 あたりまでに完成した。) .\"O If .\"O .B CLONE_NEWNET @@ -526,13 +526,13 @@ IPC ̾ .\"O the calling process. .\"O This flag is intended for the implementation of containers. .B CLONE_NEWNET -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¿·¤·¤¤¥Í¥Ã¥È¥ï¡¼¥¯Ì¾Á°¶õ´Ö (network namaspace) -¤Ç¥×¥í¥»¥¹¤òºîÀ®¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +が設定された場合、新しいネットワーク名前空間 (network namaspace) +でプロセスを作成する。 +このフラグが設定されていない場合、 .RB ( fork (2) -¤Î¾ì¹ç¤ÈƱÍÍ) ¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÈƱ¤¸¥Í¥Ã¥È¥ï¡¼¥¯Ì¾Á°¶õ´Ö¤Ç¥×¥í¥»¥¹¤¬ -ºîÀ®¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï¡¢¥³¥ó¥Æ¥Ê¤Î¼ÂÁõ¤Ç¤Î»ÈÍѤò°Õ¿Þ¤·¤ÆÍÑ°Õ¤µ¤ì¤¿¤â¤Î¤Ç¤¢¤ë¡£ +の場合と同様) 呼び出し元のプロセスと同じネットワーク名前空間でプロセスが +作成される。 +このフラグは、コンテナの実装での使用を意図して用意されたものである。 .\"O A network namespace provides an isolated view of the networking stack .\"O (network device interfaces, IPv4 and IPv6 protocol stacks, @@ -547,45 +547,45 @@ IPC ̾ .\"O that can be used to create tunnels between network namespaces, .\"O and can be used to create a bridge to a physical network device .\"O in another namespace. -¥Í¥Ã¥È¥ï¡¼¥¯Ì¾Á°¶õ´Ö¤Ï¡¢Ê¬Î¥¤µ¤ì¤¿¥Í¥Ã¥È¥ï¡¼¥¯¥¹¥¿¥Ã¥¯¤òÄ󶡤¹¤ë¤â¤Î¤Ç¤¢¤ë -(¥Í¥Ã¥È¥ï¡¼¥¯¥¹¥¿¥Ã¥¯¤È¤Ï¡¢ -¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¥¤¥ó¥¿¥Õ¥§¡¼¥¹¡¢IPv4 ¤ä IPv6 ¥×¥í¥È¥³¥ë¥¹¥¿¥Ã¥¯¡¢ -.IR /proc/net ¡¢ +ネットワーク名前空間は、分離されたネットワークスタックを提供するものである +(ネットワークスタックとは、 +ネットワークデバイスインタフェース、IPv4 や IPv6 プロトコルスタック、 +.IR /proc/net 、 .I /sys/class/net -¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¡¢¥½¥±¥Ã¥È¤Ê¤É¤Ç¤¢¤ë)¡£ -ʪÍý¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¤¬½ê°¤Ç¤­¤ë¥Í¥Ã¥È¥ï¡¼¥¯Ì¾Á°¶õ´Ö¤Ï°ì¤Ä¤À¤±¤Ç¤¢¤ë¡£ -²¾Áۥͥåȥ¥¯¥Ç¥Ð¥¤¥¹ ("veth") ¤Î¥Ú¥¢¤Ë¤è¤ê -¥Ñ¥¤¥×É÷¤ÎÃê¾Ý²½ (abstraction) ¤¬¼Â¸½¤µ¤ì¤Æ¤ª¤ê¡¢ -¤³¤ì¤ò»È¤¦¤³¤È¤Ç¡¢¥Í¥Ã¥È¥ï¡¼¥¯Ì¾Á°¶õ´Ö´Ö¤Î¥È¥ó¥Í¥ë¤òºîÀ®¤·¤¿¤ê¡¢ -Ê̤Î̾Á°¶õ´Ö¤ÎʪÍý¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¤Ø¤Î¥Ö¥ê¥Ã¥¸¤òºîÀ®¤·¤¿¤ê -¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +ディレクトリツリー、ソケットなどである)。 +物理ネットワークデバイスが所属できるネットワーク名前空間は一つだけである。 +仮想ネットワークデバイス ("veth") のペアにより +パイプ風の抽象化 (abstraction) が実現されており、 +これを使うことで、ネットワーク名前空間間のトンネルを作成したり、 +別の名前空間の物理ネットワークデバイスへのブリッジを作成したり +することができる。 .\"O When a network namespace is freed .\"O (i.e., when the last process in the namespace terminates), .\"O its physical network devices are moved back to the .\"O initial network namespace (not to the parent of the process). -¥Í¥Ã¥È¥ï¡¼¥¯Ì¾Á°¶õ´Ö¤¬²òÊü¤µ¤ì¤ë»þ -(¤¹¤Ê¤ï¤Á¡¢¤½¤Î̾Á°¶õ´Ö¤ÎºÇ¸å¤Î¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë»þ)¡¢ -ʪÍý¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¤Ï½é´ü¥Í¥Ã¥È¥ï¡¼¥¯Ì¾Á°¶õ´Ö -(initial network namespace) ¤ËÌᤵ¤ì¤ë -(¿Æ¥×¥í¥»¥¹¤Î¥Í¥Ã¥È¥ï¡¼¥¯Ì¾Á°¶õ´Ö¤ËÌᤵ¤ì¤ëÌõ¤Ç¤Ï¤Ê¤¤)¡£ +ネットワーク名前空間が解放される時 +(すなわち、その名前空間の最後のプロセスが終了する時)、 +物理ネットワークデバイスは初期ネットワーク名前空間 +(initial network namespace) に戻される +(親プロセスのネットワーク名前空間に戻される訳ではない)。 .\"O Use of this flag requires: a kernel configured with the .\"O .B CONFIG_NET_NS .\"O option and that the process be privileged .\"O .RB ( CAP_SYS_ADMIN ). -¤³¤Î¥Õ¥é¥°¤ò»ÈÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢ -¥«¡¼¥Í¥ë¤Ç¥ª¥×¥·¥ç¥ó +このフラグを使用するためには、 +カーネルでオプション .B CONFIG_NET_NS -¤òÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¡¢ -¥×¥í¥»¥¹¤¬Æø¢ +を有効になっていること、 +プロセスが特権 .RB ( CAP_SYS_ADMIN ) -¤ò»ý¤Ã¤Æ¤¤¤ë¤³¤È¤¬É¬ÍפǤ¢¤ë¡£ +を持っていることが必要である。 .TP .\"O .BR CLONE_NEWNS " (since Linux 2.4.19)" -.BR CLONE_NEWNS " (Linux 2.4.19 °Ê¹ß)" +.BR CLONE_NEWNS " (Linux 2.4.19 以降)" .\"O Start the child in a new mount namespace. -»Ò¥×¥í¥»¥¹¤ò¿·¤·¤¤¥Þ¥¦¥ó¥È̾Á°¶õ´Ö (mount namespace) ¤Ç³«»Ï¤¹¤ë¡£ +子プロセスを新しいマウント名前空間 (mount namespace) で開始する。 .\"O Every process lives in a mount namespace. .\"O The @@ -600,15 +600,15 @@ IPC ̾ .\"O .B CLONE_NEWNS .\"O flag is not set, the child lives in the same mount .\"O namespace as the parent. -³Æ¥×¥í¥»¥¹¤Ï¤¢¤ë°ì¤Ä¤Î¥Þ¥¦¥ó¥È̾Á°¶õ´ÖÃæ¤Ë¸ºß¤¹¤ë¡£¥×¥í¥»¥¹¤Î -.I "̾Á°¶õ´Ö (namespace)" -¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤«¤é¸«¤¨¤ë¥Õ¥¡¥¤¥ë³¬Áؤòɽ¤¹¥Ç¡¼¥¿ (mount ¤Î½¸¹ç) ¤Ç¤¢¤ë¡£ +各プロセスはある一つのマウント名前空間中に存在する。プロセスの +.I "名前空間 (namespace)" +は、そのプロセスから見えるファイル階層を表すデータ (mount の集合) である。 .B CLONE_NEWNS -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤º¤Ë +フラグがセットされずに .BR fork (2) -¤« +か .BR clone () -¤¬¸Æ¤Ð¤ì¤ë¤È¡¢»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤ÈƱ¤¸¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤ËºîÀ®¤µ¤ì¤ë¡£ +が呼ばれると、子プロセスは親プロセスと同じマウント名前空間に作成される。 .\"O The system calls .\"O .BR mount (2) .\"O and @@ -616,12 +616,12 @@ IPC ̾ .\"O change the mount namespace of the calling process, and hence affect .\"O all processes that live in the same namespace, but do not affect .\"O processes in a different mount namespace. -¥·¥¹¥Æ¥à¥³¡¼¥ë -.BR mount (2)¡¢ +システムコール +.BR mount (2)、 .BR umount (2) -¤¬¸Æ¤Ð¤ì¤ë¤È¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤¬Êѹ¹¤µ¤ì¡¢¤³¤Î·ë²Ì -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÈƱ¤¸Ì¾Á°¶õ´Ö¤Ë¤¤¤ë¥×¥í¥»¥¹¤Ï¤¹¤Ù¤Æ±Æ¶Á¤ò¼õ¤±¤ë¤¬¡¢ -°Û¤Ê¤ë¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤Ë¤¤¤ë¥×¥í¥»¥¹¤Ï±Æ¶Á¤ò¼õ¤±¤Ê¤¤¡£ +が呼ばれると呼び出し元のプロセスのマウント名前空間が変更され、この結果 +呼び出し元のプロセスと同じ名前空間にいるプロセスはすべて影響を受けるが、 +異なるマウント名前空間にいるプロセスは影響を受けない。 .\"O After a .\"O .BR clone () @@ -630,10 +630,10 @@ IPC ̾ .\"O flag is set, the cloned child is started in a new mount namespace, .\"O initialized with a copy of the namespace of the parent. .B CLONE_NEWNS -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ +フラグがセットされて .BR clone () -¤¬¸Æ¤Ð¤ì¤ë¤È¡¢clone ¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¿·¤·¤¤¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤Ç -³«»Ï¤µ¤ì¤ë¡£¿·¤·¤¤Ì¾Á°¶õ´Ö¤Ï¿Æ¥×¥í¥»¥¹¤Î̾Á°¶õ´Ö¤Î¥³¥Ô¡¼¤Ç½é´ü²½¤µ¤ì¤ë¡£ +が呼ばれると、clone で作成された子プロセスは新しいマウント名前空間で +開始される。新しい名前空間は親プロセスの名前空間のコピーで初期化される。 .\"O Only a privileged process (one having the \fBCAP_SYS_ADMIN\fP capability) .\"O may specify the @@ -646,19 +646,19 @@ IPC ̾ .\"O in the same .\"O .BR clone () .\"O call. -Æø¢¥×¥í¥»¥¹ (\fBCAP_SYS_ADMIN\fP ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹) ¤Î¤ß¤¬ +特権プロセス (\fBCAP_SYS_ADMIN\fP ケーパビリティを持つプロセス) のみが .B CLONE_NEWNS -¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -°ì¤Ä¤Î +フラグを指定することができる。 +一つの .BR clone () -¸Æ¤Ó½Ð¤·¤Ç¡¢ +呼び出しで、 .B CLONE_NEWNS -¤È +と .B CLONE_FS -¤ÎξÊý¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +の両方を指定することはできない。 .TP .\"O .BR CLONE_NEWPID " (since Linux 2.6.24)" -.BR CLONE_NEWPID " (Linux 2.6.24 °Ê¹ß)" +.BR CLONE_NEWPID " (Linux 2.6.24 以降)" .\" This explanation draws a lot of details from .\" http://lwn.net/Articles/259217/ .\" Authors: Pavel Emelyanov @@ -675,12 +675,12 @@ IPC ̾ .\"O the calling process. .\"O This flag is intended for the implementation of containers. .B CLONE_NEWPID -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¿·¤·¤¤ PID ̾Á°¶õ´Ö¤Ç¥×¥í¥»¥¹¤òºîÀ®¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +が設定された場合、新しい PID 名前空間でプロセスを作成する。 +このフラグが設定されていない場合、 .RB ( fork (2) -¤Î¾ì¹ç¤ÈƱÍÍ) ¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÈƱ¤¸ PID ̾Á°¶õ´Ö¤Ç -¥×¥í¥»¥¹¤¬ºîÀ®¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï¡¢¥³¥ó¥Æ¥Ê¤Î¼ÂÁõ¤Ç¤Î»ÈÍѤò°Õ¿Þ¤·¤ÆÍÑ°Õ¤µ¤ì¤¿¤â¤Î¤Ç¤¢¤ë¡£ +の場合と同様) 呼び出し元のプロセスと同じ PID 名前空間で +プロセスが作成される。 +このフラグは、コンテナの実装での使用を意図して用意されたものである。 .\"O A PID namespace provides an isolated environment for PIDs: .\"O PIDs in a new namespace start at 1, @@ -690,13 +690,13 @@ IPC ̾ .\"O or .\"O .BR clone () .\"O will produce processes with PIDs that are unique within the namespace. -PID ̾Á°¶õ´Ö¤Ï¡¢PID ¤Ë´Ø¤·¤ÆʬΥ¤µ¤ì¤¿´Ä¶­¤òÄ󶡤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¿·¤·¤¤Ì¾Á°¶õ´Ö¤Ë¤ª¤±¤ë PID ¤Ï 1 ¤«¤é»Ï¤Þ¤ê -(¤³¤ì¤Ï¥¹¥¿¥ó¥É¥¢¥í¥ó¤Î¥·¥¹¥Æ¥à¤È»÷¤¿¤è¤¦¤Ê´¶¤¸)¡¢ +PID 名前空間は、PID に関して分離された環境を提供するものである。 +新しい名前空間における PID は 1 から始まり +(これはスタンドアロンのシステムと似たような感じ)、 .BR fork (2), .BR vfork (2), .BR clone () -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¤½¤Î̾Á°¶õ´Ö¤Ç°ì°Õ¤Ê PID ¤ò»ý¤Ã¤¿¥×¥í¥»¥¹¤¬ºîÀ®¤µ¤ì¤ë¡£ +を呼び出すと、その名前空間で一意な PID を持ったプロセスが作成される。 .\"O The first process created in a new namespace .\"O (i.e., the process created using the @@ -709,21 +709,21 @@ PID ̾ .\"O .B init .\"O process, the "init" process of a PID namespace can terminate, .\"O and if it does, all of the processes in the namespace are terminated. -¿·¤·¤¤Ì¾Á°¶õ´Ö¤ÇºîÀ®¤µ¤ì¤ëºÇ½é¤Î¥×¥í¥»¥¹ -(¤Ä¤Þ¤ê¡¢ +新しい名前空間で作成される最初のプロセス +(つまり、 .B CLONE_NEWPID -¥Õ¥é¥°¤ò»È¤Ã¤ÆºîÀ®¤µ¤ì¤¿¥×¥í¥»¥¹) ¤Î PID ¤Ï 1 ¤Ç¤¢¤ê¡¢ -¤³¤Î¥×¥í¥»¥¹¤Ï¤½¤Î̾Á°¶õ´Ö¤Ë¤ª¤±¤ë "init" ¥×¥í¥»¥¹¤È¤Ê¤ë¡£ -¤³¤Î̾Á°¶õ´Ö¤Ë¤ª¤¤¤Æ¸É»ù (orphaned) ¤È¤Ê¤Ã¤¿»Ò¥×¥í¥»¥¹¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +フラグを使って作成されたプロセス) の PID は 1 であり、 +このプロセスはその名前空間における "init" プロセスとなる。 +この名前空間において孤児 (orphaned) となった子プロセスについては、 .BR init (8) -¤Ç¤Ï¤Ê¤¯¤³¤Î¥×¥í¥»¥¹¤¬¿Æ¥×¥í¥»¥¹¤È¤Ê¤ë¡£ -ÀΤʤ¬¤é¤Î +ではなくこのプロセスが親プロセスとなる。 +昔ながらの .B init -¥×¥í¥»¥¹¤È¤Ï°ã¤¤¡¢PID ̾Á°¶õ´Ö¤Î "init" ¥×¥í¥»¥¹¤Ï½ªÎ» (terminated) ¤¹¤ë -¤³¤È¤¬¤Ç¤­¡¢¤½¤Î¾ì¹ç¤Ë¤Ï¡¢¤³¤Î̾Á°¶õ´Ö¤ÎÁ´¤Æ¤Î¥×¥í¥»¥¹¤¬½ªÎ»¤µ¤ì¤ë¡£ +プロセスとは違い、PID 名前空間の "init" プロセスは終了 (terminated) する +ことができ、その場合には、この名前空間の全てのプロセスが終了される。 .\"O PID namespaces form a hierarchy. -PID ̾Á°¶õ´Ö´Ö¤Ë¤Ï³¬Áع½Â¤¤¬·ÁÀ®¤µ¤ì¤ë¡£ +PID 名前空間間には階層構造が形成される。 .\"O When a new PID namespace is created, .\"O the processes in that namespace are visible .\"O in the PID namespace of the process that created the new namespace; @@ -731,11 +731,11 @@ PID ̾ .\"O the child of another PID namespace, .\"O then processes in the child and parent PID namespaces will both be .\"O visible in the grandparent PID namespace. -¿·¤·¤¤ PID ̾Á°¶õ´Ö¤¬ºîÀ®¤µ¤ì¤ë¤È¡¢¤½¤Î̾Á°¶õ´Ö¤Î¥×¥í¥»¥¹¤Ï¡¢ -¿·¤·¤¤Ì¾Á°¶õ´Ö¤òºîÀ®¤·¤¿¥×¥í¥»¥¹¤Î PID ̾Á°¶õ´Ö¤Ç¸«¤¨¤ë¡£ -ƱÍͤˡ¢¿Æ¤Î PID ̾Á°¶õ´Ö¼«ÂΤ¬Ê̤ΠPID ̾Á°¶õ´Ö¤Î»Ò¶¡¤Î¾ì¹ç¤Ë¤Ï¡¢ -»Ò¶¡¤Î PID ̾Á°¶õ´Ö¤È¿Æ¤Î PID ̾Á°¶õ´Ö¤Î¥×¥í¥»¥¹¤Ï¤É¤ì¤â -¿Æ¤Î¿Æ¤Î PID ̾Á°¶õ´Ö¤Ç¤â¸«¤¨¤ë¤³¤È¤Ë¤Ê¤ë¡£ +新しい PID 名前空間が作成されると、その名前空間のプロセスは、 +新しい名前空間を作成したプロセスの PID 名前空間で見える。 +同様に、親の PID 名前空間自体が別の PID 名前空間の子供の場合には、 +子供の PID 名前空間と親の PID 名前空間のプロセスはどれも +親の親の PID 名前空間でも見えることになる。 .\"O Conversely, the processes in the "child" PID namespace do not see .\"O the processes in the parent namespace. .\"O The existence of a namespace hierarchy means that each process @@ -746,15 +746,15 @@ PID ̾ .\"O .BR getpid (2) .\"O always returns the PID associated with the namespace in which .\"O the process lives.) -È¿ÂФˡ¢¡Ö»Ò¶¡¡×¤Î PID ̾Á°¶õ´Ö¤Î¥×¥í¥»¥¹¤Ë¤Ï¡¢ -¿Æ¤Î̾Á°¶õ´Ö¤Î¥×¥í¥»¥¹¤Ï¸«¤¨¤Ê¤¤¡£ -̾Á°¶õ´Ö¤Ë³¬Áع½Â¤¤¬Â¸ºß¤¹¤ë¤È¤¤¤¦¤³¤È¤Ï¡¢¸Ä¡¹¤Î¥×¥í¥»¥¹¤Ï -Ê£¿ô¤Î PID ¤ò»ý¤Ä¤È¤¤¤¦¤³¤È¤ò°ÕÌ£¤·¤Æ¤¤¤ë¡£ -¤½¤Î¥×¥í¥»¥¹¤¬¸«¤¨¤ë̾Á°¶õ´Ö°ì¤Ä¤Ë¤Ä¤­ PID ¤¬°ì¤Ä¤¢¤ê¡¢ -¤½¤ì¤¾¤ì¤Î PID ¤ÏÂбþ¤¹¤ë̾Á°¶õ´Ö¤Ë¤ª¤¤¤Æ°ì°Õ¤Ç¤¢¤ë¡£ +反対に、「子供」の PID 名前空間のプロセスには、 +親の名前空間のプロセスは見えない。 +名前空間に階層構造が存在するということは、個々のプロセスは +複数の PID を持つということを意味している。 +そのプロセスが見える名前空間一つにつき PID が一つあり、 +それぞれの PID は対応する名前空間において一意である。 .RB ( getpid (2) -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¾ï¤Ë¤½¤Î¥×¥í¥»¥¹¤¬Â¸ºß¤·¤Æ¤¤¤ë̾Á°¶õ´Ö¤Ë¤ª¤±¤ë -PID ¤¬ÊÖ¤µ¤ì¤ë¡£) +を呼び出すと、常にそのプロセスが存在している名前空間における +PID が返される。) .\"O After creating the new namespace, .\"O it is useful for the child to change its root directory @@ -763,13 +763,13 @@ PID .\"O so that tools such as .\"O .BR ps (1) .\"O work correctly. -¿·¤·¤¤Ì¾Á°¶õ´Ö¤ÎºîÀ®¸å¤Ë¤Ï¡¢ -»Ò¥×¥í¥»¥¹¤Ë¤ª¤¤¤Æ¡¢ +新しい名前空間の作成後には、 +子プロセスにおいて、 .BR ps (1) -¤È¤¤¤Ã¤¿¥Ä¡¼¥ë¤¬Àµ¤·¤¯Æ°ºî¤¹¤ë¤è¤¦¤Ë¡¢ -¼«¿È¤Î root ¥Ç¥£¥ì¥¯¥È¥ê¤òÊѹ¹¤·¡¢ +といったツールが正しく動作するように、 +自身の root ディレクトリを変更し、 .I /proc -¤Ë¿·¤·¤¤ procfs ¥¤¥ó¥¹¥¿¥ó¥¹¤ò¥Þ¥¦¥ó¥È¤¹¤ë¤Î¤¬¤è¤¤¤À¤í¤¦¡£ +に新しい procfs インスタンスをマウントするのがよいだろう。 .\" mount -t proc proc /proc .\"O (If .\"O .BR CLONE_NEWNS @@ -779,12 +779,12 @@ PID .\"O a new procfs instance can be mounted directly over .\"O .IR /proc .) .RB ( flags -¤Ë +に .B CLONE_NEWNS -¤â»ØÄꤵ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ë¤Ï¡¢root ¥Ç¥£¥ì¥¯¥È¥ê¤òÊѹ¹¤¹¤ëɬÍפϤʤ¯¡¢ -¤¤¤­¤Ê¤ê¿·¤·¤¤ procfs ¥¤¥ó¥¹¥¿¥ó¥¹¤ò +も指定されていた場合には、root ディレクトリを変更する必要はなく、 +いきなり新しい procfs インスタンスを .I /proc -¤Ë¥Þ¥¦¥ó¥È¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£) +にマウントすることができる。) .\"O Use of this flag requires: a kernel configured with the .\"O .B CONFIG_PID_NS @@ -792,19 +792,19 @@ PID .\"O .RB ( CAP_SYS_ADMIN ). .\"O This flag can't be specified in conjunction with .\"O .BR CLONE_THREAD . -¤³¤Î¥Õ¥é¥°¤ò»ÈÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢ -¥«¡¼¥Í¥ë¤Ç¥ª¥×¥·¥ç¥ó +このフラグを使用するためには、 +カーネルでオプション .B CONFIG_PID_NS -¤òÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¡¢ -¥×¥í¥»¥¹¤¬Æø¢ +を有効になっていること、 +プロセスが特権 .RB ( CAP_SYS_ADMIN ) -¤ò»ý¤Ã¤Æ¤¤¤ë¤³¤È¤¬É¬ÍפǤ¢¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï +を持っていることが必要である。 +このフラグは .B CLONE_THREAD -¤ÈÁȤ߹ç¤ï¤»¤Æ»È¤¦¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +と組み合わせて使うことはできない。 .TP .\"O .BR CLONE_NEWUTS " (since Linux 2.6.19)" -.BR CLONE_NEWUTS " (Linux 2.6.19 °Ê¹ß)" +.BR CLONE_NEWUTS " (Linux 2.6.19 以降)" .\"O If .\"O .B CLONE_NEWUTS .\"O is set, then create the process in a new UTS namespace, @@ -816,14 +816,14 @@ PID .\"O the calling process. .\"O This flag is intended for the implementation of containers. .B CLONE_NEWUTS -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¿·¤·¤¤ UTS ̾Á°¶õ´Ö¤Ç¥×¥í¥»¥¹¤òºîÀ®¤¹¤ë¡£ -¿·¤·¤¤ UTS ̾Á°¶õ´Ö¤Î¼±Ê̻Ҥνé´üÃͤϡ¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î -UTS ̾Á°¶õ´Ö¤Î¼±Ê̻ҤòÊ£À½¤·¤¿¤â¤Î¤È¤Ê¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +が設定された場合、新しい UTS 名前空間でプロセスを作成する。 +新しい UTS 名前空間の識別子の初期値は、呼び出し元のプロセスの +UTS 名前空間の識別子を複製したものとなる。 +このフラグが設定されていない場合、 .RB ( fork (2) -¤Î¾ì¹ç¤ÈƱÍÍ) ¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÈƱ¤¸ UTS ̾Á°¶õ´Ö¤Ç -¥×¥í¥»¥¹¤¬ºîÀ®¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï¡¢¥³¥ó¥Æ¥Ê¤Î¼ÂÁõ¤Ç¤Î»ÈÍѤò°Õ¿Þ¤·¤ÆÍÑ°Õ¤µ¤ì¤¿¤â¤Î¤Ç¤¢¤ë¡£ +の場合と同様) 呼び出し元のプロセスと同じ UTS 名前空間で +プロセスが作成される。 +このフラグは、コンテナの実装での使用を意図して用意されたものである。 .\"O A UTS namespace is the set of identifiers returned by .\"O .BR uname (2); @@ -836,40 +836,40 @@ UTS ̾ .\"O Changes made to the identifiers in a UTS namespace .\"O are visible to all other processes in the same namespace, .\"O but are not visible to processes in other UTS namespaces. -UTS ̾Á°¶õ´Ö¤Ï¡¢ +UTS 名前空間は、 .BR uname (2) -¤¬ÊÖ¤¹¼±Ê̻Ҥν¸¹ç¤Ç¤¢¤ë¡£ -¼±Ê̻ҤȤ·¤Æ¤Ï¥É¥á¥¤¥ó̾¤È¥Û¥¹¥È̾¤¬¤¢¤ê¡¢ -¤½¤ì¤¾¤ì +が返す識別子の集合である。 +識別子としてはドメイン名とホスト名があり、 +それぞれ .BR setdomainname (2), .BR sethostname (2) -¤Ç½¤Àµ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤¢¤ë UTS ̾Á°¶õ´Ö¤Ë¤ª¤±¤ë¼±Ê̻ҤÎÊѹ¹¤ÏƱ¤¸Ì¾Á°¶õ´Ö¤Î¾¤Î¤¹¤Ù¤Æ¤Î -¥×¥í¥»¥¹¤Ë¸«¤¨¤ë¤¬¡¢Ê̤ΠUTS ̾Á°¶õ´Ö¤Î¥×¥í¥»¥¹¤Ë¤Ï¸«¤¨¤Ê¤¤¡£ +で修正することができる。 +ある UTS 名前空間における識別子の変更は同じ名前空間の他のすべての +プロセスに見えるが、別の UTS 名前空間のプロセスには見えない。 .\"O Use of this flag requires: a kernel configured with the .\"O .B CONFIG_UTS_NS .\"O option and that the process be privileged .\"O .RB ( CAP_SYS_ADMIN ). -¤³¤Î¥Õ¥é¥°¤ò»ÈÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢ -¥«¡¼¥Í¥ë¤Ç¥ª¥×¥·¥ç¥ó +このフラグを使用するためには、 +カーネルでオプション .B CONFIG_UTS_NS -¤òÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¡¢ -¥×¥í¥»¥¹¤¬Æø¢ +を有効になっていること、 +プロセスが特権 .RB ( CAP_SYS_ADMIN ) -¤ò»ý¤Ã¤Æ¤¤¤ë¤³¤È¤¬É¬ÍפǤ¢¤ë¡£ +を持っていることが必要である。 .TP .\"O .BR CLONE_PARENT " (since Linux 2.3.12)" -.BR CLONE_PARENT " (Linux 2.3.12 °Ê¹ß)" +.BR CLONE_PARENT " (Linux 2.3.12 以降)" .\"O If .\"O .B CLONE_PARENT .\"O is set, then the parent of the new child (as returned by .\"O .BR getppid (2)) .\"O will be the same as that of the calling process. .B CLONE_PARENT -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¿·¤·¤¤»Ò¶¡¤Î +が設定された場合、新しい子供の .RB ( getppid (2) -¤ÇÊÖ¤µ¤ì¤ë) ¿Æ¥×¥í¥»¥¹¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¿Æ¥×¥í¥»¥¹¤ÈƱ¤¸¤Ë¤Ê¤ë¡£ +で返される) 親プロセスは呼び出し元のプロセスの親プロセスと同じになる。 .\"O If .\"O .B CLONE_PARENT @@ -877,9 +877,9 @@ UTS ̾ .\"O .BR fork (2)) .\"O the child's parent is the calling process. .B CLONE_PARENT -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +が設定されていない場合、 .RB ( fork (2) -¤ÈƱÍͤË) ¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬¤½¤Î»Ò¶¡¤Î¿Æ¤Ë¤Ê¤ë¡£ +と同様に) 呼び出し元のプロセスがその子供の親になる。 .\"O Note that it is the parent process, as returned by .\"O .BR getppid (2), @@ -888,31 +888,31 @@ UTS ̾ .\"O .B CLONE_PARENT .\"O is set, then the parent of the calling process, rather than the .\"O calling process itself, will be signaled. -»Ò¶¡¤¬½ªÎ»¤·¤¿»þ¤Ë¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¤Î¤Ï +子供が終了した時にシグナルが送られるのは .BR getppid (2) -¤¬ÊÖ¤¹¿Æ¥×¥í¥»¥¹¤Ç¤¢¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£¤³¤Î¤¿¤á +が返す親プロセスである点に注意すること。このため .B CLONE_PARENT -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ç¤Ï¤Ê¤¯¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î -¿Æ¥×¥í¥»¥¹¤Ë¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£ +が設定された場合、呼び出し元のプロセスではなく呼び出し元のプロセスの +親プロセスにシグナルが送られる。 .TP .\"O .BR CLONE_PARENT_SETTID " (since Linux 2.5.49)" -.BR CLONE_PARENT_SETTID " (Linux 2.5.49 °Ê¹ß)" +.BR CLONE_PARENT_SETTID " (Linux 2.5.49 以降)" .\"O Store child thread ID at location .\"O .I ptid .\"O in parent and child memory. .\"O (In Linux 2.5.32-2.5.48 there was a flag .\"O .B CLONE_SETTID .\"O that did this.) -¿Æ¥×¥í¥»¥¹¤È»Ò¥×¥í¥»¥¹¤Î¥á¥â¥êÆâ¤Î +親プロセスと子プロセスのメモリ内の .I ptid -¤¬»Ø¤¹Îΰè¤Ë»Ò¥×¥í¥»¥¹¤Î¥¹¥ì¥Ã¥É ID ¤ò³ÊǼ¤¹¤ë¡£ -(Linux 2.5.32-2.5.48 ¤Ç¤Ï¡¢ -Ʊ¤¸¤³¤È¤ò¤¹¤ë +が指す領域に子プロセスのスレッド ID を格納する。 +(Linux 2.5.32-2.5.48 では、 +同じことをする .B CLONE_SETTID -¤È¤¤¤¦¥Õ¥é¥°¤¬Â¸ºß¤·¤¿¡£) +というフラグが存在した。) .TP .\"O .BR CLONE_PID " (obsolete)" -.BR CLONE_PID " (ÇÑ»ßͽÄê)" +.BR CLONE_PID " (廃止予定)" .\"O If .\"O .B CLONE_PID .\"O is set, the child process is created with the same process ID as @@ -923,11 +923,11 @@ UTS ̾ .\"O specified only by the system boot process (PID 0). .\"O It disappeared in Linux 2.5.16. .B CLONE_PID -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢»Ò¥×¥í¥»¥¹¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÈƱ¤¸¥×¥í¥»¥¹ ID -¤ÇºîÀ®¤µ¤ì¤ë¡£¤³¤ì¤Ï¥·¥¹¥Æ¥à¤ò¥Ï¥Ã¥­¥ó¥°¤¹¤ë¤Î¤Ë¤ÏÊØÍø¤À¤¬¡¢ -¤½¤ì°Ê³°¤Ë¤Ï¤¢¤Þ¤ê»È¤ï¤ì¤Ê¤¤¡£ Linux 2.3.21 °Ê¹ß¤Ç¤Ï¡¢ -¥·¥¹¥Æ¥à¤Î¥Ö¡¼¥È¥×¥í¥»¥¹ (PID 0) ¤À¤±¤¬¤³¤Î¥Õ¥é¥°¤ò»ØÄê¤Ç¤­¤ë¡£ -Linux 2.5.16 ¤Çºï½ü¤µ¤ì¤¿¡£ +が設定された場合、子プロセスは呼び出し元のプロセスと同じプロセス ID +で作成される。これはシステムをハッキングするのには便利だが、 +それ以外にはあまり使われない。 Linux 2.3.21 以降では、 +システムのブートプロセス (PID 0) だけがこのフラグを指定できる。 +Linux 2.5.16 で削除された。 .TP .B CLONE_PTRACE .\"O If @@ -936,22 +936,22 @@ Linux 2.5.16 .\"O then trace the child also (see .\"O .BR ptrace (2)). .B CLONE_PTRACE -¤¬»ØÄꤵ¤ì¡¢¤«¤Ä¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬ÄÉÀ× (trace) ¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢»Ò¥×¥í¥»¥¹¤â -ƱÍͤËÄÉÀפµ¤ì¤ë¡£ +が指定され、かつ呼び出し元のプロセスが追跡 (trace) されていた場合、子プロセスも +同様に追跡される。 .RB ( ptrace (2) -¤ò»²¾È¤Î¤³¤È) +を参照のこと) .TP .\"O .BR CLONE_SETTLS " (since Linux 2.5.32)" -.BR CLONE_SETTLS " (Linux 2.5.32 °Ê¹ß)" +.BR CLONE_SETTLS " (Linux 2.5.32 以降)" .\"O The .\"O .I newtls .\"O argument is the new TLS (Thread Local Storage) descriptor. .\"O (See .\"O .BR set_thread_area (2).) .I newtls -°ú¤­¿ô¤Ï¡¢¿·¤·¤¤ TLS (Thread Local Storage) ¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +引き数は、新しい TLS (Thread Local Storage) ディスクリプタである。 .RB ( set_thread_area (2) -¤ò»²¾È¤Î¤³¤È) +を参照のこと) .TP .B CLONE_SIGHAND .\"O If @@ -969,17 +969,17 @@ Linux 2.5.16 .\"O .BR sigprocmask (2) .\"O without affecting the other process. .B CLONE_SIGHAND -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤È»Ò¥×¥í¥»¥¹¤ÏƱ¤¸¥·¥°¥Ê¥ë¡¦¥Ï¥ó -¥É¥é¤Î¥Æ¡¼¥Ö¥ë¤ò¶¦Í­¤¹¤ë¡£¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Þ¤¿¤Ï»Ò¥×¥í¥»¥¹¤Î¤É¤Á¤é¤«¤¬ +が設定された場合、呼び出し元のプロセスと子プロセスは同じシグナル・ハン +ドラのテーブルを共有する。呼び出し元のプロセスまたは子プロセスのどちらかが .BR sigaction (2) -¤ò¸Æ¤Ó½Ð¤·¤Æ¥·¥°¥Ê¥ë¤ËÂбþ¤¹¤ëÆ°ºî¤òÊѹ¹¤·¤¿¾ì¹ç¡¢ -¤â¤¦°ìÊý¤Î¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ëÆ°ºî¤âÊѹ¹¤µ¤ì¤ë¡£ -⤷¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤È»Ò¥×¥í¥»¥¹¤Ï¡¢ -¥×¥í¥»¥¹Ëè¤Ë¡¢¥·¥°¥Ê¥ë¡¦¥Þ¥¹¥¯ (signal mask) ¤È½èÍýÂÔ¤Á¥·¥°¥Ê¥ë¤Î½¸¹ç -¤ò»ý¤Ã¤Æ¤¤¤ë¡£¤³¤Î¤¿¤á¡¢¤¢¤ë¥×¥í¥»¥¹¤Ï¡¢ +を呼び出してシグナルに対応する動作を変更した場合、 +もう一方のプロセスのシグナル動作も変更される。 +但し、呼び出し元のプロセスと子プロセスは、 +プロセス毎に、シグナル・マスク (signal mask) と処理待ちシグナルの集合 +を持っている。このため、あるプロセスは、 .BR sigprocmask (2) -¤ò»ÈÍѤ·¤Æ¡¢¤â¤¦°ìÊý¤Î¥×¥í¥»¥¹¤Ë±Æ¶Á¤òÍ¿¤¨¤º¤Ë -¥·¥°¥Ê¥ë¤ò¶Ø»ß (block) ¤·¤¿¤êµö²Ä (unblock) ¤·¤¿¤ê¤Ç¤­¤ë¡£ +を使用して、もう一方のプロセスに影響を与えずに +シグナルを禁止 (block) したり許可 (unblock) したりできる。 .\"O If .\"O .B CLONE_SIGHAND @@ -992,12 +992,12 @@ Linux 2.5.16 .\"O performed later by one of the processes have no effect on the other .\"O process. .B CLONE_SIGHAND -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢»Ò¥×¥í¥»¥¹¤Ï +が設定されていない場合、子プロセスは .BR clone () -¤¬¼Â¹Ô¤µ¤ì¤¿»þÅÀ¤Ç¤Î¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤Î -¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£¤³¤ì°Ê¹ß¤Ï¡¢°ìÊý¤Î¥×¥í¥»¥¹¤¬ +が実行された時点での、呼び出し元のプロセスのシグナル・ハンドラの +コピーを継承する。これ以降は、一方のプロセスが .BR sigaction (2) -¤ò¸Æ¤Ó½Ð¤·¤Æ¤â¡¢¤â¤¦°ìÊý¤Î¥×¥í¥»¥¹¤Ë¤Ï±Æ¶Á¤òÍ¿¤¨¤Ê¤¤¡£ +を呼び出しても、もう一方のプロセスには影響を与えない。 .\"O Since Linux 2.6.0-test6, .\"O .I flags @@ -1006,16 +1006,16 @@ Linux 2.5.16 .\"O if .\"O .B CLONE_SIGHAND .\"O is specified -Linux 2.6.0-test6 °Ê¹ß¤Ç¤Ï¡¢ +Linux 2.6.0-test6 以降では、 .B CLONE_SIGHAND -¤ò»ØÄꤹ¤ë¾ì¹ç¡¢ +を指定する場合、 .B CLONE_VM -¤â +も .I flags -¤Ë´Þ¤á¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +に含めなければならない。 .TP .\"O .BR CLONE_STOPPED " (since Linux 2.6.0-test2)" -.BR CLONE_STOPPED " (Linux 2.6.0-test2 °Ê¹ß)" +.BR CLONE_STOPPED " (Linux 2.6.0-test2 以降)" .\"O If .\"O .B CLONE_STOPPED .\"O is set, then the child is initially stopped (as though it was sent a @@ -1024,24 +1024,24 @@ Linux 2.6.0-test6 .\"O .B SIGCONT .\"O signal. .B CLONE_STOPPED -¤¬ÀßÄꤵ¤ì¤ë¤È¡¢»Ò¥×¥í¥»¥¹¤ÏºÇ½é +が設定されると、子プロセスは最初 .RB ( SIGSTOP -¥·¥°¥Ê¥ë¤òÁ÷¤é¤ì¤¿¤«¤Î¤è¤¦¤Ë) Ää»ß¤·¤¿¾õÂ֤Ȥʤ롣 -»Ò¥×¥í¥»¥¹¤òºÆ³«¤µ¤»¤ë¤Ë¤Ï +シグナルを送られたかのように) 停止した状態となる。 +子プロセスを再開させるには .B SIGCONT -¥·¥°¥Ê¥ë¤òÁ÷¿®¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +シグナルを送信しなければならない。 .\"O .I "From Linux 2.6.25 this flag is deprecated." .\"O You probably never wanted to use it, .\"O you certainly shouldn't be using it, and soon it will go away. -.I "Linux 2.6.25 °Ê¹ß¡¢¤³¤Î¥Õ¥é¥°¤ÏÈó¿ä¾©¤Ç¤¢¤ë¡£" -¤³¤Î¥Õ¥é¥°¤ò»È¤¤¤¿¤¤¤È»×¤¦¤³¤È¤Ï·è¤·¤Æ¤Ê¤¤¤À¤í¤¦¤·¡¢ -³Î¼Â¤Ë»È¤ï¤Ê¤¤¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï¶á¤¤¤¦¤Á¤Ë¤Ê¤¯¤Ê¤ë¤³¤È¤À¤í¤¦¡£ +.I "Linux 2.6.25 以降、このフラグは非推奨である。" +このフラグを使いたいと思うことは決してないだろうし、 +確実に使わないようにすべきである。 +このフラグは近いうちになくなることだろう。 .\" glibc 2.8 removed this defn from bits/sched.h .TP .\"O .BR CLONE_SYSVSEM " (since Linux 2.5.10)" -.BR CLONE_SYSVSEM " (Linux 2.5.10 °Ê¹ß)" +.BR CLONE_SYSVSEM " (Linux 2.5.10 以降)" .\"O If .\"O .B CLONE_SYSVSEM .\"O is set, then the child and the calling process share @@ -1050,14 +1050,14 @@ Linux 2.6.0-test6 .\"O If this flag is not set, then the child has a separate undo list, .\"O which is initially empty. .B CLONE_SYSVSEM -¤¬¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢»Ò¥×¥í¥»¥¹¤È¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ï°ì¤Ä¤Î -System V ¥»¥Þ¥Õ¥©¤Î¥¢¥ó¥É¥¥Ãͥꥹ¥È +がセットされると、子プロセスと呼び出し元プロセスは一つの +System V セマフォのアンドゥ値リスト .RB ( semop (2) -»²¾È) ¤ò¶¦Í­¤¹¤ë¡£¤³¤Î¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ -»Ò¥×¥í¥»¥¹¤ÏÆȼ«¤Î¥¢¥ó¥É¥¥¥ê¥¹¥È¤ò»ý¤Ä (¥ê¥¹¥È¤Î½é´üÃͤ϶õ¤Ç¤¢¤ë)¡£ +参照) を共有する。このフラグがセットされていなければ、 +子プロセスは独自のアンドゥリストを持つ (リストの初期値は空である)。 .TP .\"O .BR CLONE_THREAD " (since Linux 2.4.0-test8)" -.BR CLONE_THREAD " (Linux 2.4.0-test8°Ê¹ß)" +.BR CLONE_THREAD " (Linux 2.4.0-test8以降)" .\"O If .\"O .B CLONE_THREAD .\"O is set, the child is placed in the same thread group as the calling process. @@ -1066,12 +1066,12 @@ System V .\"O more readable, the term "thread" is used to refer to the .\"O processes within a thread group. .B CLONE_THREAD -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢»Ò¥×¥í¥»¥¹¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÈƱ¤¸¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Ë -ÃÖ¤«¤ì¤ë¡£ +が設定された場合、子プロセスは呼び出し元のプロセスと同じスレッド・グループに +置かれる。 .B CLONE_THREAD -¤Ë¤Ä¤¤¤Æ¤Î°Ê¹ß¤ÎµÄÏÀ¤òÆɤߤ䤹¤¯¤¹¤ë¤¿¤á¡¢ -¡Ö¥¹¥ì¥Ã¥É¡×¤È¤¤¤¦ÍѸì¤Ï¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤ÎÃæ¤Î¥×¥í¥»¥¹¤ò -»²¾È¤¹¤ë¤Î¤Ë»È¤¦¤³¤È¤È¤¹¤ë¡£ +についての以降の議論を読みやすくするため、 +「スレッド」という用語はスレッド・グループの中のプロセスを +参照するのに使うこととする。 .\"O Thread groups were a feature added in Linux 2.4 to support the .\"O POSIX threads notion of a set of threads that share a single PID. @@ -1080,13 +1080,13 @@ System V .\"O Since Linux 2.4, calls to .\"O .BR getpid (2) .\"O return the TGID of the caller. -¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Ï¡¢ ¥¹¥ì¥Ã¥É½¸¹ç¤Ç°ì¤Ä¤Î PID ¤ò¶¦Í­¤¹¤ë¤È¤¤¤¦ POSIX -¥¹¥ì¥Ã¥É¤Î³µÇ°¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¿¤á¤Ë Linux 2.4 ¤Ë²Ã¤¨¤é¤ì¤¿µ¡Ç½¤Ç¤¢¤Ã¤¿¡£ -ÆâÉôŪ¤Ë¤Ï¡¢¤³¤Î¶¦Í­ PID ¤Ï¤¤¤ï¤æ¤ë¤½¤Î¥¹¥ì¥Ã¥É¥°¥ë¡¼¥×¤Î -¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¼±ÊÌ»Ò (TGID) ¤Ç¤¢¤ë¡£ -Linux 2.4 °Ê¹ß¤Ç¤Ï¡¢ +スレッド・グループは、 スレッド集合で一つの PID を共有するという POSIX +スレッドの概念をサポートするために Linux 2.4 に加えられた機能であった。 +内部的には、この共有 PID はいわゆるそのスレッドグループの +スレッド・グループ識別子 (TGID) である。 +Linux 2.4 以降では、 .BR getpid (2) -¤Î¸Æ¤Ó½Ð¤·¤Ç¤Ï¤½¤Î¥×¥í¥»¥¹¤Î¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥× ID ¤òÊÖ¤¹¡£ +の呼び出しではそのプロセスのスレッド・グループ ID を返す。 .\"O The threads within a group can be distinguished by their (system-wide) .\"O unique thread IDs (TID). @@ -1096,13 +1096,13 @@ Linux 2.4 .\"O and a thread can obtain .\"O its own TID using .\"O .BR gettid (2). -¤¢¤ë¥°¥ë¡¼¥×¤Ë°¤¹¤ë¥¹¥ì¥Ã¥É¤Ï (¥·¥¹¥Æ¥àÁ´ÂΤÇ) °ì°Õ¤Ê¥¹¥ì¥Ã¥É ID (TID) -¤Ç¶èÊ̤Ǥ­¤ë¡£¿·¤·¤¤¥¹¥ì¥Ã¥É¤Î TID ¤Ï +あるグループに属するスレッドは (システム全体で) 一意なスレッド ID (TID) +で区別できる。新しいスレッドの TID は .BR clone () -¤Î¸Æ¤Ó½Ð¤·¸µ¤Ø´Ø¿ô¤Î·ë²Ì¤È¤·¤ÆÊÖ¤µ¤ì¡¢ -¥¹¥ì¥Ã¥É¤Ï¼«Ê¬¼«¿È¤Î TID ¤ò +の呼び出し元へ関数の結果として返され、 +スレッドは自分自身の TID を .BR gettid (2) -¤Ç¼èÆÀ¤Ç¤­¤ë¡£ +で取得できる。 .\"O When a call is made to .\"O .BR clone () @@ -1114,12 +1114,12 @@ Linux 2.4 .\"O .I leader .\"O of the new thread group. .B CLONE_THREAD -¤ò»ØÄꤻ¤º¤Ë +を指定せずに .BR clone () -¤Î¸Æ¤Ó½Ð¤·¤¬¹Ô¤ï¤ì¤ë¤È¡¢ -À¸À®¤µ¤ì¤¿¥¹¥ì¥Ã¥É¤Ï¤½¤Î¥¹¥ì¥Ã¥É¤Î TID ¤ÈƱ¤¸ÃͤΠTGID ¤ò»ý¤Ä -¿·¤·¤¤¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤ËÃÖ¤«¤ì¤ë¡£¤³¤Î¥¹¥ì¥Ã¥É¤Ï -¿·¤·¤¤¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Î¡Ö¥ê¡¼¥À¡¼¡×¤Ç¤¢¤ë¡£ +の呼び出しが行われると、 +生成されたスレッドはそのスレッドの TID と同じ値の TGID を持つ +新しいスレッド・グループに置かれる。このスレッドは +新しいスレッド・グループの「リーダー」である。 .\"O A new thread created with .\"O .B CLONE_THREAD @@ -1131,14 +1131,14 @@ Linux 2.4 .\"O .BR getppid (2) .\"O return the same value for all of the threads in a thread group. .B CLONE_THREAD -¤ò»ØÄꤷ¤ÆºîÀ®¤µ¤ì¤¿¿·¤·¤¤¥¹¥ì¥Ã¥É¤Ï¡¢ +を指定して作成された新しいスレッドは、 .RB ( CLONE_PARENT -¤Î¾ì¹ç¤ÈƱÍͤË) +の場合と同様に) .BR clone () -¤ò¸Æ¤Ó½Ð¤·¸µ¤ÈƱ¤¸¿Æ¥×¥í¥»¥¹¤ò»ý¤Ä¡£ -¤½¤Î¤¿¤á¡¢ +を呼び出し元と同じ親プロセスを持つ。 +そのため、 .BR getppid (2) -¤ò¸Æ¤Ö¤È¡¢°ì¤Ä¤Î¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Ë°¤¹¥¹¥ì¥Ã¥É¤ÏÁ´¤ÆƱ¤¸ÃͤòÊÖ¤¹¡£ +を呼ぶと、一つのスレッド・グループに属すスレッドは全て同じ値を返す。 .\"O When a .\"O .B CLONE_THREAD .\"O thread terminates, the thread that created it using @@ -1152,50 +1152,50 @@ Linux 2.4 .\"O (The thread is said to be .\"O .IR detached .) .B CLONE_THREAD -¤Çºî¤é¤ì¤¿¥¹¥ì¥Ã¥É¤¬½ªÎ»¤·¤¿ºÝ¤Ë¡¢ -¤½¤Î¥¹¥ì¥Ã¥É¤ò +で作られたスレッドが終了した際に、 +そのスレッドを .BR clone () -¤ò»È¤Ã¤ÆÀ¸À®¤·¤¿¥¹¥ì¥Ã¥É¤Ë¤Ï +を使って生成したスレッドには .B SIGCHLD -(¤â¤·¤¯¤Ï¾¤Î½ªÎ»¥·¥°¥Ê¥ë) ¤ÏÁ÷¿®¤µ¤ì¤Ê¤¤¡£ -¤Þ¤¿¡¢ +(もしくは他の終了シグナル) は送信されない。 +また、 .BR wait (2) -¤ò»È¤Ã¤Æ½ªÎ»¤·¤¿¥¹¥ì¥Ã¥É¤Î¾õÂÖ¤ò¼èÆÀ¤¹¤ë¤³¤È¤â¤Ç¤­¤Ê¤¤ -(¤½¤Î¤è¤¦¤Ê¥¹¥ì¥Ã¥É¤Ï +を使って終了したスレッドの状態を取得することもできない +(そのようなスレッドは .I detached -(ʬΥ¤µ¤ì¤¿) ¤È¤¤¤ï¤ì¤ë)¡£ +(分離された) といわれる)。 .\"O After all of the threads in a thread group terminate .\"O the parent process of the thread group is sent a .\"O .B SIGCHLD .\"O (or other termination) signal. -¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Ë°¤¹Á´¤Æ¤Î¥¹¥ì¥Ã¥É¤¬½ªÎ»¤·¤¿¸å¡¢ -¤½¤Î¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Î¿Æ¥×¥í¥»¥¹¤Ë +スレッド・グループに属す全てのスレッドが終了した後、 +そのスレッド・グループの親プロセスに .B SIGCHLD -(¤â¤·¤¯¤Ï¾¤Î½ªÎ»¥·¥°¥Ê¥ë) ¤¬Á÷¤é¤ì¤ë¡£ +(もしくは他の終了シグナル) が送られる。 .\"O If any of the threads in a thread group performs an .\"O .BR execve (2), .\"O then all threads other than the thread group leader are terminated, .\"O and the new program is executed in the thread group leader. -¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Ë°¤¹¤¤¤º¤ì¤«¤Î¥¹¥ì¥Ã¥É¤¬ +スレッド・グループに属すいずれかのスレッドが .BR execve (2) -¤ò¼Â¹Ô¤¹¤ë¤È¡¢¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¡¦¥ê¡¼¥À¡¼°Ê³°¤ÎÁ´¤Æ¤Î¥¹¥ì¥Ã¥É¤Ï -½ªÎ»¤µ¤ì¡¢¿·¤·¤¤¥×¥í¥»¥¹¤¬¤½¤Î¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¡¦¥ê¡¼¥À¡¼¤Î²¼¤Ç -¼Â¹Ô¤µ¤ì¤ë¡£ +を実行すると、スレッド・グループ・リーダー以外の全てのスレッドは +終了され、新しいプロセスがそのスレッド・グループ・リーダーの下で +実行される。 .\"O If one of the threads in a thread group creates a child using .\"O .BR fork (2), .\"O then any thread in the group can .\"O .BR wait (2) .\"O for that child. -¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Ë°¤¹¥¹¥ì¥Ã¥É¤Î°ì¤Ä¤¬ +スレッド・グループに属すスレッドの一つが .BR fork (2) -¤ò»È¤Ã¤Æ»Ò¥×¥í¥»¥¹¤òºîÀ®¤·¤¿¾ì¹ç¡¢ -¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Î¤É¤Î¥¹¥ì¥Ã¥É¤Ç¤¢¤Ã¤Æ¤â -¤½¤Î»Ò¶¡¤ò +を使って子プロセスを作成した場合、 +スレッド・グループのどのスレッドであっても +その子供を .BR wait (2) -¤Ç¤­¤ë¡£ +できる。 .\"O Since Linux 2.5.35, .\"O .I flags @@ -1204,31 +1204,31 @@ Linux 2.4 .\"O if .\"O .B CLONE_THREAD .\"O is specified. -Linux 2.5.35 °Ê¹ß¤Ç¤Ï¡¢ +Linux 2.5.35 以降では、 .B CLONE_THREAD -¤ò»ØÄꤹ¤ë¾ì¹ç¡¢ +を指定する場合、 .I flags -¤Ë +に .B CLONE_SIGHAND -¤â´Þ¤Þ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +も含まれていなければならない。 .\"O Signals may be sent to a thread group as a whole (i.e., a TGID) using .\"O .BR kill (2), .\"O or to a specific thread (i.e., TID) using .\"O .BR tgkill (2). .BR kill (2) -¤ò»È¤Ã¤Æ¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×Á´ÂÎ (¤Ä¤Þ¤ê TGID) ¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¤³¤È¤â¤Ç¤­¤ì¤Ð¡¢ +を使ってスレッド・グループ全体 (つまり TGID) にシグナルを送ることもできれば、 .BR tgkill (2) -¤ò»È¤Ã¤ÆÆÃÄê¤Î¥¹¥ì¥Ã¥É (¤Ä¤Þ¤ê TID) ¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +を使って特定のスレッド (つまり TID) にシグナルを送ることもできる。 .\"O Signal dispositions and actions are process-wide: .\"O if an unhandled signal is delivered to a thread, then .\"O it will affect (terminate, stop, continue, be ignored in) .\"O all members of the thread group. -¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤È½èÍý¤Ï¥×¥í¥»¥¹Á´ÂΤ˱ƶÁ¤¹¤ë: -¥Ï¥ó¥É¥é¤òÀßÄꤷ¤Æ¤¤¤Ê¤¤¥·¥°¥Ê¥ë¤¬¤¢¤ë¥¹¥ì¥Ã¥É¤ËÇÛÁ÷¤µ¤ì¤ë¤È¡¢ -¤½¤Î¥·¥°¥Ê¥ë¤Ï¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤ÎÁ´¥á¥ó¥Ð¡¼¤Ë±Æ¶Á¤òµÚ¤Ü¤¹ -(½ªÎ»¤·¤¿¤ê¡¢Ää»ß¤·¤¿¤ê¡¢Æ°ºî¤ò·Ñ³¤·¤¿¤ê¡¢Ìµ»ë¤µ¤ì¤¿¤ê¤¹¤ë)¡£ +シグナルの配送と処理はプロセス全体に影響する: +ハンドラを設定していないシグナルがあるスレッドに配送されると、 +そのシグナルはスレッド・グループの全メンバーに影響を及ぼす +(終了したり、停止したり、動作を継続したり、無視されたりする)。 .\"O Each thread has its own signal mask, as set by .\"O .BR sigprocmask (2), @@ -1242,18 +1242,18 @@ Linux 2.5.35 .\"O .BR sigpending (2) .\"O returns a signal set that is the union of the signals pending for the .\"O whole process and the signals that are pending for the calling thread. -³Æ¡¹¤Î¥¹¥ì¥Ã¥É¤ÏÆȼ«¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ò»ý¤Ã¤Æ¤ª¤ê¡¢ +各々のスレッドは独自のシグナルマスクを持っており、 .BR sigprocmask (2) -¤ÇÀßÄê¤Ç¤­¤ë¡£ -¤À¤¬¡¢½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë¤Ë¤Ï¡¢ +で設定できる。 +だが、処理待ちのシグナルには、 .BR kill (2) -¤ÇÁ÷¿®¤µ¤ì¤ë¥×¥í¥»¥¹Á´ÂΤËÂФ¹¤ë¤â¤Î (¤Ä¤Þ¤ê¡¢¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Î -¤É¤Î¥á¥ó¥Ð¡¼¤Ë¤âÇÛÁ÷¤Ç¤­¤ë¤â¤Î) ¤È¡¢ +で送信されるプロセス全体に対するもの (つまり、スレッド・グループの +どのメンバーにも配送できるもの) と、 .BR tgkill (2) -¤ÇÁ÷¿®¤µ¤ì¤ë¸Ä¡¹¤Î¥¹¥ì¥Ã¥É¤ËÂФ¹¤ë¤â¤Î¤¬¤¢¤ê¤¨¤ë¡£ +で送信される個々のスレッドに対するものがありえる。 .BR sigpending (2) -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¥×¥í¥»¥¹Á´ÂΤËÂФ¹¤ë½èÍýÂÔ¤Á¥·¥°¥Ê¥ë¤È¸Æ¤Ó½Ð¤·¸µ¤Î -¥¹¥ì¥Ã¥É¤ËÂФ¹¤ë½èÍýÂÔ¤Á¥·¥°¥Ê¥ë¤ò·ë¹ç¤·¤¿¥·¥°¥Ê¥ë½¸¹ç¤¬ÊÖ¤µ¤ì¤ë¡£ +を呼び出すと、プロセス全体に対する処理待ちシグナルと呼び出し元の +スレッドに対する処理待ちシグナルを結合したシグナル集合が返される。 .\"O If .\"O .BR kill (2) @@ -1267,32 +1267,32 @@ Linux 2.5.35 .\"O to receive a signal sent using .\"O .BR kill (2). .BR kill (2) -¤ò»È¤Ã¤Æ¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Ë¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤¿¾ì¹ç¤Ç¡¢ -¤½¤Î¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤¬¤½¤Î¥·¥°¥Ê¥ë¤ËÂФ¹¤ë¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤¬ -ÅÐÏ¿¤µ¤ì¤Æ¤¤¤¿¤È¤­¤Ë¤Ï¡¢¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤Ï¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Î -¥á¥ó¥Ð¡¼¤Î¤¦¤Á¡¢¤¿¤À°ì¤Ä¤Î¥¹¥ì¥Ã¥É¤Ç¤À¤±µ¯Æ°¤µ¤ì¤ë¡£¥Ï¥ó¥É¥é¤¬ -µ¯Æ°¤µ¤ì¤ë¥¹¥ì¥Ã¥É¤Ï¡¢¤½¤Î¥·¥°¥Ê¥ë¤ò¶Ø»ß (block) ¤·¤Æ¤¤¤Ê¤¤ -¥á¥ó¥Ð¡¼¤ÎÃ椫¤é°ì¤Ä¤À¤±¤¬¾¡¼ê¤Ë (arbitrarily) Áª¤Ð¤ì¤ë¡£ -¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Ë°¤¹Ê£¿ô¤Î¥¹¥ì¥Ã¥É¤¬ +を使ってスレッド・グループにシグナルが送られた場合で、 +そのスレッド・グループがそのシグナルに対するシグナル・ハンドラが +登録されていたときには、シグナル・ハンドラはスレッド・グループの +メンバーのうち、ただ一つのスレッドでだけ起動される。ハンドラが +起動されるスレッドは、そのシグナルを禁止 (block) していない +メンバーの中から一つだけが勝手に (arbitrarily) 選ばれる。 +スレッド・グループに属す複数のスレッドが .BR sigwaitinfo (2) -¤ò»È¤Ã¤ÆƱ¤¸¥·¥°¥Ê¥ë¤òÂԤäƤ¤¤ë¾ì¹ç¡¢ -¤³¤ì¤é¤Î¥¹¥ì¥Ã¥É¤ÎÃ椫¤é°ì¤Ä¤ò¥«¡¼¥Í¥ë¤¬¾¡¼ê¤ËÁªÂò¤·¡¢ -¤½¤Î¥¹¥ì¥Ã¥É¤¬ +を使って同じシグナルを待っている場合、 +これらのスレッドの中から一つをカーネルが勝手に選択し、 +そのスレッドが .B kill (2) -¤ò»È¤Ã¤ÆÁ÷¿®¤µ¤ì¤¿¥·¥°¥Ê¥ë¤ò¼õ¿®¤¹¤ë¡£ +を使って送信されたシグナルを受信する。 .TP .\"O .BR CLONE_UNTRACED " (since Linux 2.5.46)" -.BR CLONE_UNTRACED " (Linux 2.5.46 °Ê¹ß)" +.BR CLONE_UNTRACED " (Linux 2.5.46 以降)" .\"O If .\"O .B CLONE_UNTRACED .\"O is specified, then a tracing process cannot force .\"O .B CLONE_PTRACE .\"O on this child process. .B CLONE_UNTRACED -¤¬»ØÄꤵ¤ì¤ë¤È¡¢ trace ¤ò¹Ô¤Ã¤Æ¤¤¤ë¥×¥í¥»¥¹¤Ï -¤³¤Î»Ò¥×¥í¥»¥¹¤Ë +が指定されると、 trace を行っているプロセスは +この子プロセスに .B CLONE_PTRACE -¤òŬÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +を適用することができない。 .TP .B CLONE_VFORK .\"O If @@ -1306,13 +1306,13 @@ Linux 2.5.35 .\"O (as with .\"O .BR vfork (2)). .B CLONE_VFORK -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ +が設定された場合、 .RB ( vfork (2) -¤ÈƱÍͤË) »Ò¥×¥í¥»¥¹¤¬ +と同様に) 子プロセスが .BR execve (2) -¤Þ¤¿¤Ï +または .BR _exit (2) -¤Ë¤è¤Ã¤Æ²¾ÁÛ¥á¥â¥ê¤ò²òÊü¤¹¤ë¤Þ¤Ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¹Ô¤ÏÄä»ß¤µ¤ì¤ë¡£ +によって仮想メモリを解放するまで、呼び出し元のプロセスの実行は停止される。 .\"O If .\"O .B CLONE_VFORK @@ -1320,11 +1320,11 @@ Linux 2.5.35 .\"O after the call, and an application should not rely on execution occurring .\"O in any particular order. .B CLONE_VFORK -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +が設定されていない場合、 .BR clone () -¸Æ¤Ó½Ð¤·¸å¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤È»Ò¥×¥í¥»¥¹¤Î -ξÊý¤¬¥¹¥±¥¸¥å¡¼¥ëÂоݤȤʤꡢ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¤³¤ì¤é¤Î¥×¥í¥»¥¹¤Î -¼Â¹Ô½ç½ø¤Ë°Í¸¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +呼び出し後は、呼び出し元のプロセスと子プロセスの +両方がスケジュール対象となり、アプリケーションはこれらのプロセスの +実行順序に依存しないようにすべきである。 .TP .B CLONE_VM .\"O If @@ -1339,15 +1339,15 @@ Linux 2.5.35 .\"O .BR munmap (2) .\"O by the child or calling process also affects the other process. .B CLONE_VM -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤È»Ò¥×¥í¥»¥¹¤ÏƱ¤¸¥á¥â¥ê¶õ´Ö¤Ç -¼Â¹Ô¤µ¤ì¤ë¡£Æäˡ¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ä»Ò¥×¥í¥»¥¹¤Î°ìÊý¤¬¥á¥â¥ê¤Ë -½ñ¤­¹þ¤ó¤ÀÆâÍƤϤ⤦°ìÊý¤Î¥×¥í¥»¥¹¤«¤é¤â¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤µ¤é¤Ë¡¢ -»Ò¥×¥í¥»¥¹¤ä¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î°ìÊý¤¬ +が設定された場合、呼び出し元のプロセスと子プロセスは同じメモリ空間で +実行される。特に、呼び出し元のプロセスや子プロセスの一方がメモリに +書き込んだ内容はもう一方のプロセスからも見ることができる。さらに、 +子プロセスや呼び出し元のプロセスの一方が .BR mmap (2) -¤ä +や .BR munmap (2) -¤ò»È¤Ã¤Æ¥á¥â¥ê¤ò¥Þ¥Ã¥×¤·¤¿¤ê¥¢¥ó¥Þ¥Ã¥×¤·¤¿¾ì¹ç¡¢ -¤â¤¦°ìÊý¤Î¥×¥í¥»¥¹¤Ë¤â±Æ¶Á¤¬µÚ¤Ö¡£ +を使ってメモリをマップしたりアンマップした場合、 +もう一方のプロセスにも影響が及ぶ。 .\"O If .\"O .B CLONE_VM @@ -1358,14 +1358,14 @@ Linux 2.5.35 .\"O processes do not affect the other, as with .\"O .BR fork (2). .B CLONE_VM -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢»Ò¥×¥í¥»¥¹¤Ï +が設定されていない場合、子プロセスは .BR clone () -¤¬¼Â¹Ô¤µ¤ì¤¿»þÅÀ¤Ç¤Î¡¢¿Æ¥×¥í¥»¥¹¤Î¥á¥â¥ê¶õ´Ö¤ò¥³¥Ô¡¼¤·¤¿ -Ê̤Υá¥â¥ê¶õ´Ö¤Ç¼Â¹Ô¤µ¤ì¤ë¡£ -°ìÊý¤Î¥×¥í¥»¥¹¤¬¹Ô¤Ã¤¿¥á¥â¥ê¤Ø¤Î½ñ¤­¹þ¤ß¤ä -¥Õ¥¡¥¤¥ë¤Î¥Þ¥Ã¥×/¥¢¥ó¥Þ¥Ã¥×¤Ï¡¢ +が実行された時点での、親プロセスのメモリ空間をコピーした +別のメモリ空間で実行される。 +一方のプロセスが行ったメモリへの書き込みや +ファイルのマップ/アンマップは、 .BR fork (2) -¤Î¾ì¹ç¤ÈƱÍÍ¡¢¤â¤¦°ìÊý¤Î¥×¥í¥»¥¹¤Ë¤Ï±Æ¶Á¤·¤Ê¤¤¡£ +の場合と同様、もう一方のプロセスには影響しない。 .SS "sys_clone" .\"O The .\"O .B sys_clone @@ -1384,22 +1384,22 @@ Linux 2.5.35 .\"O (Note that the order of these arguments differs from .\"O .BR clone ().) .B sys_clone -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤è¤ê +システムコールは、より .BR fork (2) -¤Ë¶á¤¤¤«¤¿¤Á¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢»Ò¥×¥í¥»¥¹¤Î¼Â¹Ô¤¬¸Æ¤Ó½Ð¤·¤¬¹Ô¤ï¤ì¤¿¾ì½ê¤«¤é -³¤±¤é¤ì¤ë¡£ -¤½¤Î¤¿¤á¡¢ +に近いかたちになっており、子プロセスの実行が呼び出しが行われた場所から +続けられる。 +そのため、 .B sys_clone -¤¬É¬ÍפȤ¹¤ë°ú¤­¿ô¤Ï +が必要とする引き数は .I flags -¤È +と .I child_stack -¤À¤±¤Ç¤¢¤ê¡¢¤½¤ì¤é¤Ï +だけであり、それらは .BR clone () -¤ÈƱ¤¸°ÕÌ£¤ò»ý¤Ä -(¤³¤ì¤é¤Î°ú¤­¿ô¤Î½çÈÖ¤Ï +と同じ意味を持つ +(これらの引き数の順番は .BR clone () -¤È¤Ï°Û¤Ê¤ë¤³¤È¤ËÃí°Õ¤»¤è)¡£ +とは異なることに注意せよ)。 .\"O Another difference for .\"O .B sys_clone @@ -1412,14 +1412,14 @@ Linux 2.5.35 .\"O .B CLONE_VM .\"O option should not be specified. .B sys_clone -¤Î¤â¤¦°ì¤Ä¤Î°ã¤¤¤Ï¡¢ +のもう一つの違いは、 .I child_stack -°ú¤­¿ô¤¬¥¼¥í¤Ç¤âÎɤ¤¤³¤È¤Ç¤¢¤ë¡£¤³¤Î¾ì¹ç¤Ë¤Ï¡¢¤É¤Á¤é¤«¤Î¥×¥í¥»¥¹¤¬ -¥¹¥¿¥Ã¥¯¤òÊѹ¹¤·¤¿»þ¤Ë¡¢½ñ¤­¹þ¤ß»þ¥³¥Ô¡¼ (copy-on-write) Êý¼°¤Ë¤è¤ê -»Ò¥×¥í¥»¥¹¤¬¥¹¥¿¥Ã¥¯¡¦¥Ú¡¼¥¸¤ÎÆÈΩ¤·¤¿¥³¥Ô¡¼¤òÆÀ¤é¤ì¤ë¤³¤È¤¬Êݾڤµ¤ì¤ë¡£ -¤³¤Î¾ì¹ç¡¢Àµ¾ï¤ËÆ°ºî¤µ¤»¤ë¤¿¤á¤Ë¤Ï¡¢ +引き数がゼロでも良いことである。この場合には、どちらかのプロセスが +スタックを変更した時に、書き込み時コピー (copy-on-write) 方式により +子プロセスがスタック・ページの独立したコピーを得られることが保証される。 +この場合、正常に動作させるためには、 .B CLONE_VM -¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +オプションを指定してはならない。 .\"O In Linux 2.4 and earlier, .\"O .BR clone () @@ -1428,15 +1428,15 @@ Linux 2.5.35 .\"O .IR tls , .\"O and .\"O .IR ctid . -Linux 2.4 °ÊÁ°¤Ç¤Ï¡¢ +Linux 2.4 以前では、 .BR clone () -¤Ï°ú¤­¿ô +は引き数 .IR ptid , .IR tls , .IR ctid -¤ò¼è¤é¤Ê¤¤¡£ +を取らない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .\" gettid(2) returns current->pid; .\"O .\" getpid(2) returns current->tgid; .\"O On success, the thread ID of the child process is returned @@ -1445,19 +1445,19 @@ Linux 2.4 .\"O in the caller's context, no child process will be created, and .\"O .I errno .\"O will be set appropriately. -.\" gettid(2) ¤Ï current->pid ¤òÊÖ¤¹ -.\" getpid(2) ¤Ï current->tgid ¤òÊÖ¤¹ -À®¸ù¤·¤¿¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¼Â¹Ô¥¹¥ì¥Ã¥É¤Ë¤Ï»Ò¥×¥í¥»¥¹¤Î¥¹¥ì¥Ã¥ÉID ¤¬ÊÖ¤µ¤ì¤ë¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢ ¸Æ¤Ó½Ð¤·¸µ¤Î¥³¥ó¥Æ¥­¥¹¥È¤Ë¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢»Ò¥×¥í¥»¥¹¤Ï -ºîÀ®¤µ¤ì¤º¡¢ +.\" gettid(2) は current->pid を返す +.\" getpid(2) は current->tgid を返す +成功した場合、呼び出し元の実行スレッドには子プロセスのスレッドID が返される。 +失敗した場合、 呼び出し元のコンテキストには \-1 が返され、子プロセスは +作成されず、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EAGAIN .\"O Too many processes are already running. -¤¹¤Ç¤Ë¼Â¹ÔÃæ¤Î¥×¥í¥»¥¹¤¬Â¿¤¹¤®¤ë¡£ +すでに実行中のプロセスが多すぎる。 .TP .B EINVAL .\"O .B CLONE_SIGHAND @@ -1466,10 +1466,10 @@ Linux 2.4 .\"O was not. .\"O (Since Linux 2.6.0-test6.) .B CLONE_SIGHAND -¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¤¬¡¢ +が指定されていたが、 .B CLONE_VM -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ -(Linux 2.6.0-test6 °Ê¹ß) +が指定されていなかった。 +(Linux 2.6.0-test6 以降) .TP .B EINVAL .\"O .B CLONE_THREAD @@ -1478,10 +1478,10 @@ Linux 2.4 .\"O was not. .\"O (Since Linux 2.5.35.) .B CLONE_THREAD -¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¤¬¡¢ +が指定されていたが、 .B CLONE_SIGHAND -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ -(Linux 2.5.35 °Ê¹ß) +が指定されていなかった。 +(Linux 2.5.35 以降) .\" .TP .\" .B EINVAL .\"O .\" Precisely one of @@ -1491,10 +1491,10 @@ Linux 2.4 .\"O .\" was specified. .\"O .\" (Since Linux 2.6.0-test6.) .\" .B CLONE_DETACHED -.\" ¤È +.\" と .\" .B CLONE_THREAD -.\" ¤Î¤¤¤º¤ì¤«°ìÊý¤À¤±¤¬»ØÄꤵ¤ì¤¿¡£ -.\" (Linux 2.6.0-test6 °Ê¹ß) +.\" のいずれか一方だけが指定された。 +.\" (Linux 2.6.0-test6 以降) .TP .B EINVAL .\"O Both @@ -1504,11 +1504,11 @@ Linux 2.4 .\"O were specified in .\"O .IR flags . .B CLONE_FS -¤È +と .B CLONE_NEWNS -¤ÎξÊý¤¬ +の両方が .I flags -¤Ë»ØÄꤵ¤ì¤¿¡£ +に指定された。 .TP .B EINVAL .\"O Both @@ -1518,11 +1518,11 @@ Linux 2.4 .\"O were specified in .\"O .IR flags . .B CLONE_NEWIPC -¤È +と .B CLONE_SYSVSEM -¤ÎξÊý¤¬ +の両方が .I flags -¤Ë»ØÄꤵ¤ì¤¿¡£ +に指定された。 .TP .B EINVAL .\"O Both @@ -1532,11 +1532,11 @@ Linux 2.4 .\"O were specified in .\"O .IR flags . .B CLONE_NEWPID -¤È +と .B CLONE_THREAD -¤ÎξÊý¤¬ +の両方が .I flags -¤Ë»ØÄꤵ¤ì¤¿¡£ +に指定された。 .TP .B EINVAL .\"O Returned by @@ -1544,9 +1544,9 @@ Linux 2.4 .\"O when a zero value is specified for .\"O .IR child_stack . .I child_stack -¤Ë¥¼¥í¤ò»ØÄꤷ¤¿¾ì¹ç¤Ë +にゼロを指定した場合に .BR clone () -¤¬ÊÖ¤¹¡£ +が返す。 .TP .B EINVAL .\"O .BR CLONE_NEWIPC @@ -1558,13 +1558,13 @@ Linux 2.4 .\"O .BR CONFIG_IPC_NS .\"O options. .I flags -¤Ë +に .B CLONE_NEWIPC -¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¥«¡¼¥Í¥ë¤Ç¥ª¥×¥·¥ç¥ó +が指定されたが、カーネルでオプション .B CONFIG_SYSVIPC -¤È +と .B CONFIG_IPC_NS -¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +が有効になっていなかった。 .TP .B EINVAL .\"O .BR CLONE_NEWNET @@ -1574,11 +1574,11 @@ Linux 2.4 .\"O .B CONFIG_NET_NS .\"O option. .I flags -¤Ë +に .B CLONE_NEWNET -¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¥«¡¼¥Í¥ë¤Ç¥ª¥×¥·¥ç¥ó +が指定されたが、カーネルでオプション .B CONFIG_NET_NS -¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +が有効になっていなかった。 .TP .B EINVAL .\"O .BR CLONE_NEWPID @@ -1588,11 +1588,11 @@ Linux 2.4 .\"O .B CONFIG_PID_NS .\"O option. .I flags -¤Ë +に .B CLONE_NEWPID -¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¥«¡¼¥Í¥ë¤Ç¥ª¥×¥·¥ç¥ó +が指定されたが、カーネルでオプション .B CONFIG_PID_NS -¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +が有効になっていなかった。 .TP .B EINVAL .\"O .BR CLONE_NEWUTS @@ -1602,18 +1602,18 @@ Linux 2.4 .\"O .B CONFIG_UTS .\"O option. .I flags -¤Ë +に .B CLONE_NEWUTS -¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¥«¡¼¥Í¥ë¤Ç¥ª¥×¥·¥ç¥ó +が指定されたが、カーネルでオプション .B CONFIG_UTS -¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +が有効になっていなかった。 .TP .B ENOMEM .\"O Cannot allocate sufficient memory to allocate a task structure for the .\"O child, or to copy those parts of the caller's context that need to be .\"O copied. -»Ò¥×¥í¥»¥¹¤Î¤¿¤á¤Ë³ÎÊݤ¹¤Ù¤­¥¿¥¹¥¯¹½Â¤ÂΤ䡢¸Æ¤Ó½Ð¤·¸µ¤Î¥³¥ó¥Æ¥­¥¹¥È¤Î -°ìÉô¤ò¥³¥Ô¡¼¤¹¤ë¤Î¤ËɬÍפʥá¥â¥ê¤ò½½Ê¬¤Ë³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +子プロセスのために確保すべきタスク構造体や、呼び出し元のコンテキストの +一部をコピーするのに必要なメモリを十分に割り当てることができない。 .TP .B EPERM .\"O .BR CLONE_NEWIPC , @@ -1623,35 +1623,35 @@ Linux 2.4 .\"O or .\"O .BR CLONE_NEWUTS .\"O was specified by an unprivileged process (process without \fBCAP_SYS_ADMIN\fP). -ÈóÆø¢¥×¥í¥»¥¹ (\fBCAP_SYS_ADMIN\fP ¤ò»ý¤¿¤Ê¤¤¥×¥í¥»¥¹) ¤¬ +非特権プロセス (\fBCAP_SYS_ADMIN\fP を持たないプロセス) が .BR CLONE_NEWIPC , .BR CLONE_NEWNET , .BR CLONE_NEWNS , .BR CLONE_NEWPID , .BR CLONE_NEWUTS -¤ò»ØÄꤷ¤¿¡£ +を指定した。 .TP .B EPERM .\"O .B CLONE_PID .\"O was specified by a process other than process 0. -PID ¤¬ 0 °Ê³°¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ +PID が 0 以外のプロセスによって .B CLONE_PID -¤¬»ØÄꤵ¤ì¤¿¡£ +が指定された。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O There is no entry for .\"O .BR clone () .\"O in libc5. .\"O glibc2 provides .\"O .BR clone () .\"O as described in this manual page. -libc5 ¤Ë¤Ï +libc5 には .BR clone () -¤Ï¤Ê¤¤¡£glibc2 ¤Ç¤Ï +はない。glibc2 では .BR clone () -¤¬Ä󶡤µ¤ì¤Æ¤ª¤ê¡¢¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ëµ­ºÜ¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +が提供されており、このマニュアルページに記載の通りである。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The .\"O .BR clone () .\"O and @@ -1659,12 +1659,12 @@ libc5 .\"O calls are Linux-specific and should not be used in programs .\"O intended to be portable. .BR clone () -¤È +と .B sys_clone -¥³¡¼¥ë¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò¹Íθ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ¹¤Ù¤­ -¤Ç¤Ï¤Ê¤¤¡£ +コールは Linux 特有であり、移植を考慮したプログラムでは使用すべき +ではない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O In the kernel 2.4.x series, .\"O .B CLONE_THREAD .\"O generally does not make the parent of the new thread the same @@ -1674,13 +1674,13 @@ libc5 .\"O flag implied the .\"O .B CLONE_PARENT .\"O flag (as in kernel 2.6). -¥«¡¼¥Í¥ë 2.4.x ·ÏÎó¤Ç¤Ï¡¢°ìÈÌŪ¤Ë¤Ï +カーネル 2.4.x 系列では、一般的には .B CLONE_THREAD -¥Õ¥é¥°¤ò»ØÄꤷ¤Æ¤â¿·¤·¤¤¥¹¥ì¥Ã¥É¤Î¿Æ¤ò -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¿Æ¤ÈƱ¤¸¤Ë¤Ï¤·¤Ê¤¤¡£ -¤·¤«¤·¡¢¥Ð¡¼¥¸¥ç¥ó 2.4.7¡Á2.4.18 ¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -(¥«¡¼¥Í¥ë 2.6 ¤ÈƱ¤¸¤è¤¦¤Ë) CLONE_THREAD ¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È¡¢ -°ÅÌۤΤ¦¤Á¤Ë CLONE_PARENT ¥Õ¥é¥°¤ò»ØÄꤷ¤¿¤³¤È¤Ë¤Ê¤ë¡£ +フラグを指定しても新しいスレッドの親を +呼び出し元プロセスの親と同じにはしない。 +しかし、バージョン 2.4.7〜2.4.18 のカーネルでは、 +(カーネル 2.6 と同じように) CLONE_THREAD フラグを指定すると、 +暗黙のうちに CLONE_PARENT フラグを指定したことになる。 .\"O For a while there was .\"O .B CLONE_DETACHED @@ -1692,24 +1692,24 @@ libc5 .\"O disappeared. .\"O This flag is still defined, but has no effect. .B CLONE_DETACHED -¤È¤¤¤¦¥Õ¥é¥°¤¬¡¢2.5.32 ¤ÇƳÆþ¤µ¤ì¤Æ°ÊÍ褷¤Ð¤é¤¯¤Î´Ö¸ºß¤·¤¿¡£ -¤³¤Î¥Õ¥é¥°¤Ï¿Æ¥×¥í¥»¥¹¤¬»Ò¥×¥í¥»¥¹½ªÎ»¤Î¥·¥°¥Ê¥ë¤òɬÍפȤ·¤Ê¤¤¤³¤È¤ò -ɽ¤¹¤â¤Î¤Ç¤¢¤ë¡£ -2.6.2 ¤Ç¡¢ CLONE_DETATCHED ¤ò CLONE_THREAD ¤È°ì½ï¤Ë»ØÄꤹ¤ëɬÍפϤʤ¯¤Ê¤Ã¤¿¡£ -¤³¤Î¥Õ¥é¥°¤Ï¤Þ¤ÀÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢²¿¤Î¸ú²Ì¤â¤Ê¤¤¡£ +というフラグが、2.5.32 で導入されて以来しばらくの間存在した。 +このフラグは親プロセスが子プロセス終了のシグナルを必要としないことを +表すものである。 +2.6.2 で、 CLONE_DETATCHED を CLONE_THREAD と一緒に指定する必要はなくなった。 +このフラグはまだ定義されているが、何の効果もない。 .\"O On i386, .\"O .BR clone () .\"O should not be called through vsyscall, but directly through .\"O .IR "int $0x80" . -i386 ¾å¤Ç¤Ï¡¢ +i386 上では、 .BR clone () -¤Ï vsyscall ·Ðͳ¤Ç¤Ï¤Ê¤¯¡¢Ä¾ÀÜ +は vsyscall 経由ではなく、直接 .I "int $0x80" -·Ðͳ¤Ç¸Æ¤Ó½Ð¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +経由で呼び出すべきである。 .\"O On ia64, a different system call is used: -ia64 ¤Ç¤Ï¡¢Ê̤Υ·¥¹¥Æ¥à¥³¡¼¥ë¤¬»ÈÍѤµ¤ì¤ë: +ia64 では、別のシステムコールが使用される: .nf .BI "int __clone2(int (*" "fn" ")(void *), " @@ -1731,33 +1731,33 @@ ia64 .\"O specifies the size of the stack pointed to by .\"O .IR child_stack_base . .BR __clone2 () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +システムコールは .BR clone () -¤ÈƱ¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¤¬¡¢°Ê²¼¤ÎÅÀ¤¬°Û¤Ê¤ë: +と同じように動作するが、以下の点が異なる: .I child_stack_base -¤Ï»Ò¥×¥í¥»¥¹¤Î¥¹¥¿¥Ã¥¯¥¨¥ê¥¢¤ÎºÇ¾®¤Î¥¢¥É¥ì¥¹¤ò»Ø¤·¡¢ +は子プロセスのスタックエリアの最小のアドレスを指し、 .I stack_size -¤Ï +は .I child_stack_base -¤¬»Ø¤·¼¨¤¹¥¹¥¿¥Ã¥¯¥¨¥ê¥¢¤ÎÂ礭¤µ¤ò¼¨¤¹¡£ +が指し示すスタックエリアの大きさを示す。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Versions of the GNU C library that include the NPTL threading library .\"O contain a wrapper function for .\"O .BR getpid (2) .\"O that performs caching of PIDs. -NPTL ¥¹¥ì¥Ã¥É¡¦¥é¥¤¥Ö¥é¥ê¤ò´Þ¤ó¤Ç¤¤¤ë GNU C ¥é¥¤¥Ö¥é¥ê¤Î¤¤¤¯¤Ä¤«¤Î¥Ð¡¼¥¸¥ç¥ó -¤Ë¤Ï¡¢ +NPTL スレッド・ライブラリを含んでいる GNU C ライブラリのいくつかのバージョン +には、 .BR getpid (2) -¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤¬´Þ¤Þ¤ì¤Æ¤ª¤ê¡¢¤³¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï PID ¤ò¥­¥ã¥Ã¥·¥å¤¹¤ë¡£ +のラッパー関数が含まれており、このラッパー関数は PID をキャッシュする。 .\"O This caching relies on support in the glibc wrapper for .\"O .BR clone (), .\"O but as currently implemented, .\"O the cache may not be up to date in some circumstances. -¤³¤Î¥­¥ã¥Ã¥·¥å½èÍý¤¬Àµ¤·¤¯Æ°ºî¤¹¤ë¤¿¤á¤Ë¤Ï glibc ¤Î +このキャッシュ処理が正しく動作するためには glibc の .BR clone () -¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ç¤Î½õ¤±¤¬É¬ÍפÀ¤¬¡¢¸½¾õ¤Î¼ÂÁõ¤Ç¤Ï¡¢ -¤¢¤ë¾õ¶·²¼¤Ë¤ª¤¤¤Æ¥­¥ã¥Ã¥·¥å¤¬ºÇ¿·¤È¤Ê¤é¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ë¡£ +のラッパー関数での助けが必要だが、現状の実装では、 +ある状況下においてキャッシュが最新とならない可能性がある。 .\"O In particular, .\"O if a signal is delivered to the child immediately after the .\"O .BR clone () @@ -1767,14 +1767,14 @@ NPTL .\"O of the calling process ("the parent"), .\"O if the clone wrapper has not yet had a chance to update the PID .\"O cache in the child. -Æäˡ¢ +特に、 .BR clone () -¤Î¸Æ¤Ó½Ð¤·Ä¾¸å¤Ë¥·¥°¥Ê¥ë¤¬»Ò¥×¥í¥»¥¹¤ËÇÛÁ÷¤µ¤ì¤¿¾ì¹ç¤Ë¡¢ -¤½¤Î¥·¥°¥Ê¥ë¤ËÂФ¹¤ë¥Ï¥ó¥É¥éÆâ¤Ç +の呼び出し直後にシグナルが子プロセスに配送された場合に、 +そのシグナルに対するハンドラ内で .BR getpid (2) -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¤½¤ì¤Þ¤Ç¤Ë clone ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤¬»Ò¥×¥í¥»¥¹¤Î PID ¥­¥ã¥Ã¥·¥å¤ò -¹¹¿·¤¹¤ëµ¡²ñ¤¬ÆÀ¤é¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹ ("¿Æ¥×¥í¥»¥¹") ¤Î PID ¤¬ -ÊÖ¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +を呼び出すと、それまでに clone のラッパー関数が子プロセスの PID キャッシュを +更新する機会が得られていなければ、呼び出し元プロセス ("親プロセス") の PID が +返される可能性がある。 .\"O (This discussion ignores the case where the child was created using .\"O .BR CLONE_THREAD , .\"O when @@ -1787,24 +1787,24 @@ NPTL .\"O .I flags .\"O argument includes .\"O .BR CLONE_VM .) -(¤³¤ÎµÄÏÀ¤Ç¤Ï¡¢»Ò¥×¥í¥»¥¹¤¬ +(この議論では、子プロセスが .B CLONE_THREAD -¤ò»È¤Ã¤ÆºîÀ®¤µ¤ì¤¿¾ì¹ç¤Î¤³¤È¤Ï̵»ë¤·¤Æ¤¤¤ë¡£ -»Ò¥×¥í¥»¥¹¤¬ +を使って作成された場合のことは無視している。 +子プロセスが .B CLONE_THREAD -¤òºî¤Ã¤ÆºîÀ®¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ -¸Æ¤Ó½Ð¤·¸µ¤È»Ò¥×¥í¥»¥¹¤ÏƱ¤¸¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Ë°¤¹¤Î¤Ç¡¢ +を作って作成された場合には、 +呼び出し元と子プロセスは同じスレッド・グループに属すので、 .BR getpid (2) -¤Ï»Ò¥×¥í¥»¥¹¤È +は子プロセスと .BR clone () -¤ò¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ÇƱ¤¸ÃͤòÊÖ¤¹¤Î¤¬¡ÖÀµ¤·¤¤¡×¡£ -¥­¥ã¥Ã¥·¥å¤¬ºÇ¿·¤È¤Ê¤é¤Ê¤¤ÌäÂê (stale-cache problem) ¤Ï¡¢ +を呼び出したプロセスで同じ値を返すのが「正しい」。 +キャッシュが最新とならない問題 (stale-cache problem) は、 .I flags -¤Ë +に .B CLONE_VM -¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤âȯÀ¸¤·¤Ê¤¤¡£) +が含まれている場合にも発生しない。) .\"O To get the truth, it may be necessary to use code such as the following: -ËÜÅö¤ÎÃͤòÆÀ¤ë¤¿¤á¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤Ê¥³¡¼¥É¤ò»È¤¦É¬Íפ¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +本当の値を得るためには、次のようなコードを使う必要があるかもしれない。 .nf #include @@ -1817,7 +1817,7 @@ NPTL .\" https://bugzilla.redhat.com/show_bug.cgi?id=417521 .\" http://sourceware.org/bugzilla/show_bug.cgi?id=6910 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fork (2), .BR futex (2), .BR getpid (2), diff --git a/draft/man2/close.2 b/draft/man2/close.2 index df7d70a0..dc55c6b8 100644 --- a/draft/man2/close.2 +++ b/draft/man2/close.2 @@ -46,26 +46,26 @@ .\" Updated 2007-10-12, Akihiro MOTOKI, LDP v2.66 .\" Updated 2008-02-10, Akihiro MOTOKI , LDP v2.77 .\" -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: close ¥¯¥í¡¼¥º -.\"WORD: lock ¥í¥Ã¥¯ -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: quota ¥¯¥©¡¼¥¿ +.\"WORD: descriptor ディスクリプタ +.\"WORD: close クローズ +.\"WORD: lock ロック +.\"WORD: process プロセス +.\"WORD: quota クォータ .\" .TH CLOSE 2 2007-12-28 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O close \- close a file descriptor -close \- ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¯¥í¡¼¥º¤¹¤ë +close \- ファイルディスクリプタをクローズする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int close(int " fd ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR close () .\"O closes a file descriptor, so that it no longer refers to any file and .\"O may be reused. Any record locks (see @@ -74,15 +74,15 @@ close \- .\"O and owned by the process, are removed (regardless of the file .\"O descriptor that was used to obtain the lock). .BR close () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ -¤½¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢¤É¤Î¥Õ¥¡¥¤¥ë¤â»²¾È¤·¤Æ¤¤¤Ê¤¤¾õÂ֤ˤʤꡢ -ºÆÍøÍѤ¬²Äǽ¤Ë¤Ê¤ë¡£ -¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë -¤«¤±¤é¤ì¤¿¥ì¥³¡¼¥É¡¦¥í¥Ã¥¯ +は、ファイルディスクリプタをクローズする。 +そのディスクリプタは、どのファイルも参照していない状態になり、 +再利用が可能になる。 +そのファイルディスクリプタに関連づけられたファイルに +かけられたレコード・ロック .RB ( fcntl (2) -»²¾È) ¤Î¤¦¤Á¡¢¤½¤Î¥×¥í¥»¥¹¤¬ÊÝÍ­¤·¤Æ¤¤¤ë¤â¤Î¤Ï¡¢ -(¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥í¥Ã¥¯¼èÆÀ¤ËÍøÍѤµ¤ì¤¿¤« -¤É¤¦¤«¤Ë¤è¤é¤º) ¤¹¤Ù¤Æºï½ü¤µ¤ì¤ë¡£ +参照) のうち、そのプロセスが保有しているものは、 +(そのファイルディスクリプタがロック取得に利用されたか +どうかによらず) すべて削除される。 .PP .\"O If .\"O .I fd @@ -95,34 +95,34 @@ close \- .\"O .BR unlink (2) .\"O the file is deleted. .I fd -¤¬¡¢Âбþ¤¹¤ë¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò (open file description) +が、対応するオープンファイル記述 (open file description) .RB ( open (2) -»²¾È) ¤ò»²¾È¤¹¤ëºÇ¸å¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤À¤Ã¤¿¾ì¹ç¡¢ -¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¤Ë´ØÏ¢¤¹¤ë¥ê¥½¡¼¥¹¤¬²òÊü¤µ¤ì¤ë¡£ -¤½¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¡¢ +参照) を参照する最後のファイルディスクリプタだった場合、 +オープンファイル記述に関連するリソースが解放される。 +そのディスクリプタが、 .B unlink -¤ò»ÈÍѤ·¤Æºï½ü (remove) ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ëºÇ¸å¤Î»²¾È¤À¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¤Ïºï½ü (delete) ¤µ¤ì¤ë¡£ +を使用して削除 (remove) されたファイルに対する最後の参照だった場合には、 +そのファイルは削除 (delete) される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR close () .\"O returns zero on success. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. .BR close () -¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¤Æ¡¢ +は成功した場合は 0 を返す。 +エラーが発生した場合は \-1 を返して、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O .I fd .\"O isn't a valid open file descriptor. .I fd -¤¬Í­¸ú¤Ê¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なオープンされたディスクリプタでない。 .TP .B EINTR .\"O The @@ -130,22 +130,22 @@ close \- .\"O call was interrupted by a signal; see .\"O .BR signal (7). .BR close () -¥³¡¼¥ë¤¬¥·¥°¥Ê¥ë¤Ë¤è¤êÃæÃÇ (interrupt) ¤µ¤ì¤¿¡£ +コールがシグナルにより中断 (interrupt) された。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EIO .\"O An I/O error occurred. -I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +I/O エラーが発生した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O SVr4, 4.3BSD, POSIX.1-2001. .\"O .\" SVr4 documents an additional ENOLINK error condition. SVr4, 4.3BSD, POSIX.1-2001. -.\" SVr4, SVID, POSIX, X/OPEN, 4.3BSD ¤Ë½àµò¤¹¤ë¡£ -.\" SVr4 ¤Ë¤Ï¾¤Ë ENOLINK ¥¨¥é¡¼¾õÂ֤ˤĤ¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ +.\" SVr4, SVID, POSIX, X/OPEN, 4.3BSD に準拠する。 +.\" SVr4 には他に ENOLINK エラー状態についての記述がある。 .\"O .SH "NOTES" -.SH Ãí°Õ +.SH 注意 .\"O Not checking the return value of .\"O .BR close () .\"O is a common but nevertheless @@ -160,16 +160,16 @@ SVr4, 4.3BSD, POSIX.1-2001. .\"O This can especially be observed with NFS .\"O and with disk quota. .BR close () -¤ÎÊÖ¤êÃͤΥÁ¥§¥Ã¥¯¤Ï¤è¤¯¾Êά¤µ¤ì¤ë¤¬¡¢ -¤³¤ì¤Ï¿¼¹ï¤Ê¥×¥í¥°¥é¥ß¥ó¥°¥¨¥é¡¼¤Ç¤¢¤ë¡£ -Á°¤Î +の返り値のチェックはよく省略されるが、 +これは深刻なプログラミングエラーである。 +前の .BR write (2) -½èÍý¤Ë´Ø¤¹¤ë¥¨¥é¡¼¤¬ºÇ¸å¤Î +処理に関するエラーが最後の .BR close () -¤Î¤È¤­¤Ë¤Ê¤Ã¤Æ½é¤á¤ÆÄÌÃΤµ¤ì¤ë¾ì¹ç¤¬¤¢¤ê¤¦¤ë¡£ -¥Õ¥¡¥¤¥ë¥¯¥í¡¼¥º¤ÎºÝ¤ËÊÖ¤êÃͤò¥Á¥§¥Ã¥¯¤·¤Ê¤¤¤È¡¢ -µ¤ÉÕ¤«¤Ê¤¤¤¦¤Á¤Ë¥Ç¡¼¥¿¤ò¼º¤Ã¤Æ¤·¤Þ¤¦¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤ì¤ÏÆÃ¤Ë NFS ¤ä¥Ç¥£¥¹¥¯¡¦¥¯¥©¡¼¥¿¤ò»ÈÍѤ·¤¿¾ì¹ç¤Ë¸«¤é¤ì¤ë¡£ +のときになって初めて通知される場合がありうる。 +ファイルクローズの際に返り値をチェックしないと、 +気付かないうちにデータを失ってしまうかもしれない。 +これは特に NFS やディスク・クォータを使用した場合に見られる。 .PP .\"O A successful close does not guarantee that the data has been successfully .\"O saved to disk, as the kernel defers writes. @@ -179,16 +179,16 @@ SVr4, 4.3BSD, POSIX.1-2001. .\"O the data is physically stored use .\"O .BR fsync (2). .\"O (It will depend on the disk hardware at this point.) -¥¯¥í¡¼¥º¤ËÀ®¸ù¤·¤Æ¤â¡¢¥Ç¡¼¥¿¤¬¥Ç¥£¥¹¥¯¤ËÊݸ¤µ¤ì¤¿¤«¤É¤¦¤«¤Ï -Êݾڤµ¤ì¤Ê¤¤ (¥«¡¼¥Í¥ë¤¬½ñ¤­¤³¤ß¤òÃٱ䤵¤»¤ë¤³¤È¤¬¤¢¤ë¤¿¤á¤Ç¤¢¤ë)¡£ -¥¹¥È¥ê¡¼¥à¤¬¥¯¥í¡¼¥º¤µ¤ì¤ë¤È¤­¤Ë¥Ð¥Ã¥Õ¥¡¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë¤«¤É¤¦¤«¤Ï¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¡£ -¥Ç¡¼¥¿¤¬ÊªÍýŪ¤ËÊݸ¤µ¤ì¤ë¤³¤È¤òÊݾڤ¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢ +クローズに成功しても、データがディスクに保存されたかどうかは +保証されない (カーネルが書きこみを遅延させることがあるためである)。 +ストリームがクローズされるときにバッファをフラッシュするかどうかは、 +ファイルシステムによって異なる。 +データが物理的に保存されることを保証する必要がある場合には、 .BR fsync (2) -¤ò»ÈÍѤ¹¤ë¤³¤È +を使用すること .RB ( fsync (3) -¤ò¹Ô¤Ã¤¿»þÅÀ¤Ç¡¢¥Ç¡¼¥¿¤ÎÊݸ¤Ï¥Ç¥£¥¹¥¯¤Î¥Ï¡¼¥É¥¦¥§¥¢¤Ë°Í¸¤¹¤ë -ÌäÂê¤È¤Ê¤ë)¡£ +を行った時点で、データの保存はディスクのハードウェアに依存する +問題となる)。 .PP .\"O It is probably unwise to close file descriptors while .\"O they may be in use by system calls in @@ -196,10 +196,10 @@ SVr4, 4.3BSD, POSIX.1-2001. .\"O Since a file descriptor may be reused, .\"O there are some obscure race conditions .\"O that may cause unintended side effects. -Ʊ¤¸¥×¥í¥»¥¹Æâ¤Î¾¤Î¥¹¥ì¥Ã¥É¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬»ÈÍѤ·¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ë´Ö¤Ë¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¯¥í¡¼¥º¤¹¤ë¤Î¤Ï¡¢¤ª¤½¤é¤¯¸­ÌÀ¤Ç¤Ï¤Ê¤¤¤À¤í¤¦¡£ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏºÆÍøÍѤµ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¤Î¤Ç¡¢ -¤¢¤¤¤Þ¤¤¤Ê¶¥¹ç¾ò·ï¤È¤Ê¤ë¤³¤È¤¬¤¢¤ê¡¢°Õ¿Þ¤·¤Ê¤¤ÉûºîÍѤθ¶°ø¤È¤Ê¤ê¤¦¤ë¡£ +同じプロセス内の他のスレッドのシステムコールが使用している可能性がある間に、 +ファイルディスクリプタをクローズするのは、おそらく賢明ではないだろう。 +ファイルディスクリプタは再利用されるかもしれないので、 +あいまいな競合条件となることがあり、意図しない副作用の原因となりうる。 .\" Date: Tue, 4 Sep 2007 13:57:35 +0200 .\" From: Fredrik Noring .\" One such race involves signals and ERESTARTSYS. If a file descriptor @@ -209,7 +209,7 @@ SVr4, 4.3BSD, POSIX.1-2001. .\" later restart with the reused file descriptor. This is most likely a .\" serious programming error. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fcntl (2), .BR fsync (2), .BR open (2), diff --git a/draft/man2/connect.2 b/draft/man2/connect.2 index 2dc6ad07..af6a4062 100644 --- a/draft/man2/connect.2 +++ b/draft/man2/connect.2 @@ -73,14 +73,14 @@ .\" .TH CONNECT 2 2008-12-03 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O connect \- initiate a connection on a socket -connect \- ¥½¥±¥Ã¥È¤ÎÀܳ¤ò¹Ô¤¦ +connect \- ソケットの接続を行う .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#include " " /* See NOTES */" -.BR "#include " " /* ¡ÖÃí°Õ¡×»²¾È */" +.BR "#include " " /* 「注意」参照 */" .br .B #include .sp @@ -88,7 +88,7 @@ connect \- .BI " socklen_t " addrlen ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR connect () .\"O system call connects the socket referred to by the file descriptor @@ -107,22 +107,22 @@ connect \- .\"O .BR socket (2) .\"O for further details. .BR connect () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +システムコールは、ファイルディスクリプタ .I sockfd -¤¬»²¾È¤·¤Æ¤¤¤ë¥½¥±¥Ã¥È¤ò +が参照しているソケットを .I addr -¤Ç»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤ËÀܳ¤¹¤ë¡£ +で指定されたアドレスに接続する。 .I addrlen -°ú¤­¿ô¤Ï +引き数は .I addr -¤ÎÂ礭¤µ¤ò¼¨¤¹¡£ +の大きさを示す。 .I addr -¤Î¥¢¥É¥ì¥¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¥½¥±¥Ã¥È +のアドレスのフォーマットはソケット .I sockfd -¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤è¤ê°Û¤Ê¤ë¡£ -¤µ¤é¤Ê¤ë¾ÜºÙ¤Ï +のアドレス空間により異なる。 +さらなる詳細は .BR socket (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O If the socket .\"O .I sockfd @@ -139,22 +139,22 @@ connect \- .\"O this call attempts to make a connection to the socket that is bound .\"O to the address specified by .\"O .IR addr . -¥½¥±¥Ã¥È +ソケット .I sockfd -¤¬ +が .B SOCK_DGRAM -·¿¤Ç¤¢¤ì¤Ð¡¢ +型であれば、 .I addr -¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥Ç¡¼¥¿¥°¥é¥à¤ÎÁ÷¿®Àè¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ê¡¢ -¥Ç¡¼¥¿¥°¥é¥à¤ò¼õ¿®¤¹¤ëÍ£°ì¤Î¥¢¥É¥ì¥¹¤ò¼¨¤¹¤Ë²á¤®¤Ê¤¤¡£ -¥½¥±¥Ã¥È¤¬ +は、デフォルトのデータグラムの送信先のアドレスであり、 +データグラムを受信する唯一のアドレスを示すに過ぎない。 +ソケットが .B SOCK_STREAM -·¿¤â¤·¤¯¤Ï +型もしくは .B SOCK_SEQPACKET -·¿¤Ç¤¢¤ì¤Ð¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +型であれば、このシステムコールは .I addr -¤Ç»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤Ë·ë¤ÓÉÕ¤±¤é¤ì¤¿¥½¥±¥Ã¥È¤ËÂФ¹¤ëÀܳ¤Î -ºîÀ®¤ò»î¤ß¤ë¡£ +で指定されたアドレスに結び付けられたソケットに対する接続の +作成を試みる。 .PP .\"O Generally, connection-based protocol sockets may successfully .\"O .BR connect () @@ -169,38 +169,38 @@ connect \- .\"O set to .\"O .BR AF_UNSPEC .\"O (supported on Linux since kernel 2.2). -°ìÈÌŪ¤Ë¡¢Àܳ»Ø¸þ (connection-oriented) ¥×¥í¥È¥³¥ë¤Ç¤Ï°ìÅÙ¤À¤± +一般的に、接続指向 (connection-oriented) プロトコルでは一度だけ .BR connect () -¤¬À®¸ù¤¹¤ë¡£ -ÈóÀܳ (connectionless) ¥×¥í¥È¥³¥ë¤Ç¤ÏÂбþ¤òÊѹ¹¤¹¤ë¤¿¤á¤Ë²¿ÅÙ¤â +が成功する。 +非接続 (connectionless) プロトコルでは対応を変更するために何度も .BR connect () -¤ò»ÈÍѤǤ­¤ë¡£ -ÈóÀܳ¥½¥±¥Ã¥È¤Ï +を使用できる。 +非接続ソケットは .I sockaddr -¤Î +の .I sa_family -¥á¥ó¥Ð¤Ë +メンバに .B AF_UNSPEC -¤òÀßÄꤹ¤ë¤³¤È¤Ç¡¢Àܳ¥¢¥É¥ì¥¹¤ÎÂбþ¤ò²ò¾Ã¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë +を設定することで、接続アドレスの対応を解消することができる .RB ( AF_UNSPEC -¤Ï¥«¡¼¥Í¥ë 2.2 °Ê¹ß¤Î Linux ¤Ç¥µ¥Ý¡¼¥È)¡£ +はカーネル 2.2 以降の Linux でサポート)。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O If the connection or binding succeeds, zero is returned. .\"O On error, \-1 is .\"O returned, and .\"O .I errno .\"O is set appropriately. -Àܳ¤Þ¤¿¤ÏÂбþ¤Å¤±¤ËÀ®¸ù¤¹¤ë¤È¥¼¥í¤òÊÖ¤¹¡£ -¼ºÇÔ¤¹¤ë¤È \-1 ¤òÊÖ¤·¡¢ +接続または対応づけに成功するとゼロを返す。 +失敗すると \-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤòÀßÄꤹ¤ë¡£ +に適切な値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O The following are general socket errors only. .\"O There may be other domain-specific error codes. -°Ê²¼¤Ï°ìÈÌŪ¤Ê¥½¥±¥Ã¥È¤Ë¤Ä¤¤¤Æ¤Î¥¨¥é¡¼¤Ç¤¢¤ë¡£Â¾¤Ë¥É¥á¥¤¥óÆÃÍ­¤Î¥¨¥é¡¼ -¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下は一般的なソケットについてのエラーである。他にドメイン特有のエラー +が発生する可能性がある。 .TP .B EACCES .\"O For UNIX domain sockets, which are identified by pathname: @@ -209,31 +209,31 @@ connect \- .\"O in the path prefix. .\"O (See also .\"O .BR path_resolution (7).) -UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤Ï¥Ñ¥¹Ì¾¤Ç¼±Ê̤µ¤ì¤ë¡£ -¥½¥±¥Ã¥È¡¦¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤­¹þ¤ßµö²Ä¤¬¤Ê¤«¤Ã¤¿¤«¡¢¥Ñ¥¹Ì¾¤Ø -Åþ㤹¤ë¤Þ¤Ç¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¤¤¤º¤ì¤«¤ËÂФ¹¤ë¸¡º÷µö²Ä¤¬¤Ê¤«¤Ã¤¿¡£ +UNIX ドメインソケットはパス名で識別される。 +ソケット・ファイルへの書き込み許可がなかったか、パス名へ +到達するまでのディレクトリのいずれかに対する検索許可がなかった。 .RB ( path_resolution (7) -¤â»²¾È¤Î¤³¤È) +も参照のこと) .TP .BR EACCES ", " EPERM .\"O The user tried to connect to a broadcast address without having the socket .\"O broadcast flag enabled or the connection request failed because of a local .\"O firewall rule. -¥½¥±¥Ã¥È¤Î¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¡¦¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤Î¤Ë -¥æ¡¼¥¶¤¬¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¤ØÀܳ¤ò»î¤ß¤¿¡£¤Þ¤¿¤Ï¡¢¥í¡¼¥«¥ë¤Î¥Õ¥¡¥¤¥¢¥¦¥©¡¼¥ë¤Î -µ¬Â§¤Ë¤è¤êÀܳ¤ÎÍ׵᤬¼ºÇÔ¤·¤¿¡£ +ソケットのブロードキャスト・フラグが有効になっていないのに +ユーザがブロードキャストへ接続を試みた。または、ローカルのファイアウォールの +規則により接続の要求が失敗した。 .TP .B EADDRINUSE .\"O Local address is already in use. -¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤¬´û¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ +ローカルアドレスが既に使用されている。 .TP .B EAFNOSUPPORT .\"O The passed address didn't have the correct address family in its .\"O .I sa_family .\"O field. -ÅϤµ¤ì¤¿¥¢¥É¥ì¥¹¤Î +渡されたアドレスの .I sa_family -¥Õ¥£¡¼¥ë¥É¤¬Àµ¤·¤¤¥¢¥É¥ì¥¹¡¦¥Õ¥¡¥ß¥ê¡¼¤Ç¤Ï¤Ê¤¤¡£ +フィールドが正しいアドレス・ファミリーではない。 .TP .B EAGAIN .\"O No more free local ports or insufficient entries in the routing cache. @@ -243,33 +243,33 @@ UNIX .\"O .I /proc/sys/net/ipv4/ip_local_port_range .\"O .BR ip (7) .\"O for information on how to increase the number of local ports. -»ÈÍѲÄǽ¤Ê¥í¡¼¥«¥ë¤Î¥Ý¡¼¥È¤¬¤Ê¤¤¤«¡¢ -¥ë¡¼¥Æ¥£¥ó¥°¥­¥ã¥Ã¥·¥å¤Ë½½Ê¬¤Ê¥¨¥ó¥È¥ê¤¬¤Ê¤¤¡£ +使用可能なローカルのポートがないか、 +ルーティングキャッシュに十分なエントリがない。 .B AF_INET -¤Î¾ì¹ç¤Ë¡¢¥í¡¼¥«¥ë¥Ý¡¼¥È¤Î¿ô¤òÁý¤ä¤¹ÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +の場合に、ローカルポートの数を増やす方法については、 .BR ip (7) -¤Î +の .I /proc/sys/net/ipv4/ip_local_port_range -¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +の説明を参照のこと。 .TP .B EALREADY .\"O The socket is nonblocking and a previous connection attempt has not yet .\"O been completed. -¥½¥±¥Ã¥È¤¬ÈóÄä»ß (nonblocking) ¤ËÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢ -Á°¤ÎÀܳ¤¬´°Î»¤·¤Æ¤¤¤Ê¤¤¡£ +ソケットが非停止 (nonblocking) に設定されており、 +前の接続が完了していない。 .TP .B EBADF .\"O The file descriptor is not a valid index in the descriptor table. -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤¬¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¥Æ¡¼¥Ö¥ë¤Î -Í­¸ú¤Ê¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤Ï¤Ê¤¤¡£ +ファイルディスクリプターがディスクリプターテーブルの +有効なインデックスではない。 .TP .B ECONNREFUSED .\"O No-one listening on the remote address. -¥ê¥â¡¼¥È¥¢¥É¥ì¥¹¤ÇÀܳ¤òÂԤäƤ¤¤ë¥×¥í¥°¥é¥à¤¬¤Ê¤¤¡£ +リモートアドレスで接続を待っているプログラムがない。 .TP .B EFAULT .\"O The socket structure address is outside the user's address space. -¥½¥±¥Ã¥È¹½Â¤ÂΤΥ¢¥É¥ì¥¹¤¬¥æ¡¼¥¶¡¼¤Î¥¢¥É¥ì¥¹¶õ´Ö³°¤Ë¤¢¤ë¡£ +ソケット構造体のアドレスがユーザーのアドレス空間外にある。 .TP .B EINPROGRESS .\"O The socket is nonblocking and the connection cannot be completed @@ -294,54 +294,54 @@ UNIX .\"O .RB ( SO_ERROR .\"O is one of the usual error codes listed here, .\"O explaining the reason for the failure). -¥½¥±¥Ã¥È¤¬ÈóÄä»ß (nonblocking) ¤ËÀßÄꤵ¤ì¤Æ¤¤¤Æ¡¢Àܳ¤ò¤¹¤°¤Ë -´°Î»¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£¤½¤Î¾ì¹ç¡¢ +ソケットが非停止 (nonblocking) に設定されていて、接続をすぐに +完了することができない。その場合、 .BR select (2) -¤ä +や .BR poll (2) -¤ò»È¤Ã¤Æ¤½¤Î¥½¥±¥Ã¥È¤¬½ñ¤­¹þ¤ß²Äǽ¤Ë¤Ê¤ë¤Î¤òÂԤĤ³¤È¤Ç¡¢ -Àܳ¤Î´°Î»¤òÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ +を使ってそのソケットが書き込み可能になるのを待つことで、 +接続の完了を知ることができる。 .BR select (2) -¤Ç½ñ¤­¹þ¤ß²Äǽ¤Ë¤Ê¤Ã¤¿¸å¤Ë¡¢ +で書き込み可能になった後に、 .BR getsockopt (2) -¤ò»È¤Ã¤Æ +を使って .B SOL_SOCKET -¥ì¥Ù¥ë¤Ç +レベルで .B SO_ERROR -¥ª¥×¥·¥ç¥ó¤òÆɤ߽Ф¹¤³ -¤È¤Ë¤è¤ê¡¢ +オプションを読み出すこ +とにより、 .BR connect () -¤¬À®¸ù¤·¤¿¤«¡¢¼ºÇÔ¤·¤¿¤«¤òȽÃǤǤ­¤ë¡£ -À®¸ù¤Î¾ì¹ç +が成功したか、失敗したかを判断できる。 +成功の場合 .B SO_ERROR -¤¬ 0 ¤Ç¤¢¤ê¡¢ -¼ºÇԤξì¹ç +が 0 であり、 +失敗の場合 .B SO_ERROR -¤¬¤³¤³¤Î¥ê¥¹¥È¤Ë¤¢¤ë¤¤¤º¤ì¤«¤Î¥¨¥é¡¼¥³¡¼¥É¤Ç¤¢¤ê¡¢ -¤½¤ì¤Ë¤è¤ê¼ºÇԤθ¶°ø¤¬Ê¬¤«¤ë¡£ +がここのリストにあるいずれかのエラーコードであり、 +それにより失敗の原因が分かる。 .TP .B EINTR .\"O The system call was interrupted by a signal that was caught; see .\"O .BR signal (7). .\"O .\" For TCP, the connection will complete asynchronously. .\"O .\" See http://lkml.org/lkml/2005/7/12/254 -Ê᪤µ¤ì¤¿¥·¥°¥Ê¥ë¤Ë¤è¤ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ÃæÃǤµ¤ì¤¿¡£ +捕捉されたシグナルによりシステムコールが中断された。 .BR signal (7) -»²¾È¡£ -.\" TCP ¤Î¾ì¹ç¤Ï¡¢Àܳ½èÍý¤ÏÈóƱ´ü¤Ë¤Ê¤ë¤¬´°Î»¤¹¤ë¤À¤í¤¦¡£ -.\" http://lkml.org/lkml/2005/7/12/254 ¤ò»²¾È¤Î¤³¤È¡£ +参照。 +.\" TCP の場合は、接続処理は非同期になるが完了するだろう。 +.\" http://lkml.org/lkml/2005/7/12/254 を参照のこと。 .TP .B EISCONN .\"O The socket is already connected. -¥½¥±¥Ã¥È¤Ï´û¤ËÀܳ (connect) ¤µ¤ì¤Æ¤¤¤ë¡£ +ソケットは既に接続 (connect) されている。 .TP .B ENETUNREACH .\"O Network is unreachable. -Åþã¤Ç¤­¤Ê¤¤¥Í¥Ã¥È¥ï¡¼¥¯¤Ç¤¢¤ë¡£ +到達できないネットワークである。 .TP .B ENOTSOCK .\"O The file descriptor is not associated with a socket. -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤¬¥½¥±¥Ã¥È¤È´ØÏ¢ÉÕ¤±¤é¤ì¤Æ¤¤¤Ê¤¤¡£ +ファイルディスクリプターがソケットと関連付けられていない。 .TP .B ETIMEDOUT .\"O Timeout while attempting connection. @@ -349,12 +349,12 @@ UNIX .\"O busy to accept new connections. .\"O Note that for IP sockets the timeout may .\"O be very long when syncookies are enabled on the server. -Àܳ¤ò»î¤ß¤Æ¤¤¤ëÅÓÃæ¤Ç»þ´ÖÀÚ¤ì (timeout) ¤Ë¤Ê¤Ã¤¿¡£¥µ¡¼¥Ð¡¼¤¬º®»¨¤·¤Æ¤¤¤Æ -¿·¤¿¤ÊÀܳ¤ò¼õ¤±Æþ¤ì¤é¤ì¤Ê¤¤¤Î¤«¤â¤·¤ì¤Ê¤¤¡£ -IP ¥½¥±¥Ã¥È¤Ç¤Ï¡¢ syncookie ¤¬¥µ¡¼¥Ð¡¼¤ÇÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -¥¿¥¤¥à¥¢¥¦¥È¤¬Èó¾ï¤ËŤ¯¤Ê¤ë¾ì¹ç¤¬¤¢¤ë¤Î¤ÇÃí°Õ¤¹¤ë¤³¤È¡£ +接続を試みている途中で時間切れ (timeout) になった。サーバーが混雑していて +新たな接続を受け入れられないのかもしれない。 +IP ソケットでは、 syncookie がサーバーで有効になっている場合、 +タイムアウトが非常に長くなる場合があるので注意すること。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O SVr4, 4.4BSD, (the .\"O .BR connect () .\"O function first appeared in 4.2BSD), POSIX.1-2001. @@ -370,8 +370,8 @@ IP .\"O .\" .BR ENOSR . SVr4, 4.4BSD, .RB ( connect () -´Ø¿ô¤Ï 4.2BSD ¤ÇºÇ½é¤ËÅо줷¤¿), POSIX.1-2001. -.\" SVr4 ¤Ç¤Ï¡¢°ìÈÌŪ¤Ê¥¨¥é¡¼¡¦¥³¡¼¥É¤È¤·¤Æ +関数は 4.2BSD で最初に登場した), POSIX.1-2001. +.\" SVr4 では、一般的なエラー・コードとして .\" .BR EADDRNOTAVAIL , .\" .BR EINVAL , .\" .BR EAFNOSUPPORT , @@ -379,24 +379,24 @@ SVr4, 4.4BSD, .\" .BR EINTR , .\" .BR EPROTOTYPE , .\" .B ENOSR -.\" ¤¬Äɲ䵤ì¤Æ¤¤¤ë¡£ +.\" が追加されている。 .\"O .\" It also .\"O .\" documents many additional error conditions not described here. -.\" ¤Þ¤¿¡¢Ëܥޥ˥奢¥ë¤Ë¤Ïµ­ºÜ¤·¤Æ¤¤¤Ê¤¤ÄɲäΥ¨¥é¡¼¾ò·ï¤¬Â¿¤¯µ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ +.\" また、本マニュアルには記載していない追加のエラー条件が多く記載されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O POSIX.1-2001 does not require the inclusion of .\"O .IR , .\"O and this header file is not required on Linux. .\"O However, some historical (BSD) implementations required this header .\"O file, and portable applications are probably wise to include it. -POSIX.1-2001 ¤Ç¤Ï +POSIX.1-2001 では .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ïɬ¿Ü¤È¤µ¤ì¤Æ¤ª¤é¤º¡¢ -Linux ¤Ç¤Ï¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÏɬÍפǤϤʤ¤¡£ -¤·¤«¤·¡¢Îò»ËŪ¤Ë¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¼ÂÁõ (BSD ·Ï) ¤Ç¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬ -ɬÍפǤ¢¤ê¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤ò -¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤Î¤¬¸­ÌÀ¤Ç¤¢¤í¤¦¡£ +のインクルードは必須とされておらず、 +Linux ではこのヘッダファイルは必要ではない。 +しかし、歴史的には、いくつかの実装 (BSD ç³») でこのヘッダファイルが +必要であり、移植性が必要なアプリケーションではこのファイルを +インクルードするのが賢明であろう。 .\"O The third argument of .\"O .BR connect () @@ -409,29 +409,29 @@ Linux .\"O See also .\"O .BR accept (2). .BR connect () -¤Î»°ÈÖÌܤΰú¤­¿ô¤Ï 4.x BSD ¤ä libc4, libc5 ¤ÈƱÍÍ¤Ë¼ÂºÝ¤Ë¤Ï +の三番目の引き数は 4.x BSD や libc4, libc5 と同様に実際には .I int -¤Ç¤¢¤ë¡£ -POSIX ¤Ç¤Ïäþ;¶ÊÀÞ¤ò·Ð¤Æ¸½ºß¤Î +である。 +POSIX では紆余曲折を経て現在の .I socklen_t -¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢ -glibc ¤Ç¤â +になっており、 +glibc でも .I socklen_t -¤ò»È¤Ã¤Æ¤¤¤ë¡£ +を使っている。 .BR accept (2) -¤â»²¾È¤Î¤³¤È¡£ +も参照のこと。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O An example of the use of .\"O .BR connect () .\"O is shown in .\"O .BR getaddrinfo (3). .BR connect () -¤ÎÍøÍÑÎ㤬 +の利用例が .BR getaddrinfo (3) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ +に記載されている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR accept (2), .BR bind (2), .BR getsockname (2), diff --git a/draft/man2/create_module.2 b/draft/man2/create_module.2 index 72aeebc5..486f6ba4 100644 --- a/draft/man2/create_module.2 +++ b/draft/man2/create_module.2 @@ -10,88 +10,88 @@ .\" .TH CREATE_MODULE 2 2007-06-03 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O create_module \- create a loadable module entry -create_module \- ¥í¡¼¥À¥Ö¥ë¥â¥¸¥å¡¼¥ë¤Î¥¨¥ó¥È¥ê¤òºîÀ®¤¹¤ë +create_module \- ローダブルモジュールのエントリを作成する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "caddr_t create_module(const char *" name ", size_t " size ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR create_module () .\"O attempts to create a loadable module entry and reserve the kernel memory .\"O that will be needed to hold the module. .\"O This system call requires privilege. .BR create_module () -¤Ï¡¢¥í¡¼¥À¥Ö¥ë¥â¥¸¥å¡¼¥ë¤Î¥¨¥ó¥È¥ê¤òºîÀ®¤·¡¢¤½¤Î¥â¥¸¥å¡¼¥ë¤ÎÊÝ»ý¤ËɬÍ×¤Ê -¥«¡¼¥Í¥ë¥á¥â¥ê¤òͽÌ󤷤褦¤È¤¹¤ë¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤¦¤Ë¤ÏÆø¢¤¬É¬ÍפǤ¢¤ë¡£ +は、ローダブルモジュールのエントリを作成し、そのモジュールの保持に必要な +カーネルメモリを予約しようとする。 +このシステムコールを使うには特権が必要である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, returns the kernel address at which the module will reside. .\"O On error \-1 is returned and .\"O .I errno .\"O is set appropriately. -À®¸ù¤¹¤ë¤È¡¢¥â¥¸¥å¡¼¥ë¤¬ÇÛÃÖ¤µ¤ì¤ë¥«¡¼¥Í¥ë¶õ´Ö¤Î¥¢¥É¥ì¥¹¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤·¡¢ +成功すると、モジュールが配置されるカーネル空間のアドレスを返す。 +エラーの場合 \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EEXIST .\"O A module by that name already exists. -¤½¤Î̾Á°¤Î¥â¥¸¥å¡¼¥ë¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¡£ +その名前のモジュールがすでに存在する。 .TP .B EFAULT .\"O .I name .\"O is outside the program's accessible address space. .I name -¤¬¥×¥í¥°¥é¥à¤¬¥¢¥¯¥»¥¹¤Ç¤­¤ë¥¢¥É¥ì¥¹¶õ´Ö¤Î³°Éô¤Ë¤¢¤ë¡£ +がプログラムがアクセスできるアドレス空間の外部にある。 .TP .B EINVAL .\"O The requested size is too small even for the module header information. -Í׵ᤷ¤¿¥µ¥¤¥º¤¬¾®¤µ¤¹¤®¤Æ¡¢¥â¥¸¥å¡¼¥ë¤Î¥Ø¥Ã¥À¾ðÊ󤹤é³ÊǼ¤Ç¤­¤Ê¤¤¡£ +要求したサイズが小さすぎて、モジュールのヘッダ情報すら格納できない。 .TP .B ENOMEM .\"O The kernel could not allocate a contiguous block of memory large .\"O enough for the module. -¥â¥¸¥å¡¼¥ë¤ò³ÊǼ¤¹¤ë¤Î¤ËɬÍפÊÂ礭¤µ¤ÎϢ³¤·¤¿¥á¥â¥ê¥Ö¥í¥Ã¥¯¤ò -¥«¡¼¥Í¥ë¤¬³ÎÊݤǤ­¤Ê¤«¤Ã¤¿¡£ +モジュールを格納するのに必要な大きさの連続したメモリブロックを +カーネルが確保できなかった。 .TP .B ENOSYS .\"O .BR create_module () .\"O is not supported in this version of the kernel. .BR create_module () -¤¬¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +がこのバージョンのカーネルではサポートされていない。 .TP .B EPERM .\"O The caller was not privileged .\"O (did not have the .\"O .B CAP_SYS_MODULE .\"O capability). -¸Æ¤Ó½Ð¤·¸µ¤¬Æø¢ +呼び出し元が特権 .RB ( CAP_SYS_MODULE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤ò»ý¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +ケーパビリティ) を持っていなかった。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O This system call is only present on Linux up until kernel 2.4; .\"O it was removed in Linux 2.6. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Â¸ºß¤¹¤ë¤Î¤Ï¥«¡¼¥Í¥ë 2.4 ¤Þ¤Ç¤Î Linux ¤À¤±¤Ç¤¢¤ë¡£ -Linux 2.6 ¤Ç¤Ïºï½ü¤µ¤ì¤¿¡£ +このシステムコールが存在するのはカーネル 2.4 までの Linux だけである。 +Linux 2.6 では削除された。 .\" Removed in Linux 2.5.48 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR create_module () .\"O is Linux-specific. .BR create_module () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ +は Linux 固有である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR delete_module (2), .BR init_module (2), .BR query_module (2) diff --git a/draft/man2/delete_module.2 b/draft/man2/delete_module.2 index eb4cb677..26446330 100644 --- a/draft/man2/delete_module.2 +++ b/draft/man2/delete_module.2 @@ -10,18 +10,18 @@ .\" .TH DELETE_MODULE 2 2006-02-09 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O delete_module \- delete a loadable module entry -delete_module \- ¥í¡¼¥À¥Ö¥ë¥â¥¸¥å¡¼¥ë¤Î¥¨¥ó¥È¥ê¤òºï½ü¤¹¤ë +delete_module \- ローダブルモジュールのエントリを削除する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int delete_module(const char *" name ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR delete_module () .\"O attempts to remove an unused loadable module entry. .\"O If @@ -30,59 +30,59 @@ delete_module \- .\"O all unused modules marked auto-clean will be removed. .\"O This system call requires privilege. .BR delete_module () -¤Ï¡¢Ì¤»ÈÍÑ¤Î¥í¡¼¥À¥Ö¥ë¥â¥¸¥å¡¼¥ë¤Î¥¨¥ó¥È¥ê¤òºï½ü¤·¤è¤¦¤È¤¹¤ë¡£ +は、未使用のローダブルモジュールのエントリを削除しようとする。 .I name -¤¬ NULL ¤Î¾ì¹ç¡¢Ì¤»ÈÍѤΥ⥸¥å¡¼¥ë¤Î¤¦¤Á¡Ö¼«Æ°ºï½ü (auto-clean)¡× -¥Þ¡¼¥¯¤¬¤Ä¤¤¤¿¤â¤Î¤òÁ´¤Æºï½ü¤¹¤ë¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤¦¤Ë¤ÏÆø¢¤¬É¬ÍפǤ¢¤ë¡£ +が NULL の場合、未使用のモジュールのうち「自動削除 (auto-clean)」 +マークがついたものを全て削除する。 +このシステムコールを使うには特権が必要である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned and .\"O .I errno .\"O is set appropriately. -À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤·¡¢ +成功すると 0 を返す。エラーの場合 \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBUSY .\"O The module is in use. -¤½¤Î¥â¥¸¥å¡¼¥ë¤Ï»ÈÍÑÃæ¤Ç¤¢¤ë¡£ +そのモジュールは使用中である。 .TP .B EFAULT .\"O .I name .\"O is outside the program's accessible address space. .I name -¤¬¥×¥í¥°¥é¥à¤¬¥¢¥¯¥»¥¹¤Ç¤­¤ë¥¢¥É¥ì¥¹¶õ´Ö¤Î³°Éô¤Ë¤¢¤ë¡£ +がプログラムがアクセスできるアドレス空間の外部にある。 .TP .B EINVAL .\"O .I name .\"O was an empty string. .I name -¤¬¶õʸ»úÎó¤Ç¤¢¤ë¡£ +が空文字列である。 .TP .B ENOENT .\"O No module by that name exists. -¤½¤Î̾Á°¤Î¥â¥¸¥å¡¼¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ +その名前のモジュールが存在しない。 .TP .B EPERM .\"O The caller was not privileged .\"O (did not have the .\"O .B CAP_SYS_MODULE .\"O capability). -¸Æ¤Ó½Ð¤·¸µ¤¬Æø¢ +呼び出し元が特権 .RB ( CAP_SYS_MODULE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤ò»ý¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +ケーパビリティ) を持っていなかった。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR delete_module () .\"O is Linux-specific. .BR delete_module () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ +は Linux 固有である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR create_module (2), .BR init_module (2), .BR query_module (2) diff --git a/draft/man2/dup.2 b/draft/man2/dup.2 index 37e87cdd..230fc8cc 100644 --- a/draft/man2/dup.2 +++ b/draft/man2/dup.2 @@ -46,10 +46,10 @@ .TH DUP 2 2010-09-10 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O dup, dup2, dup3 \- duplicate a file descriptor -.SH ̾Á° -dup, dup2, dup3 \- ¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊ£À½¤¹¤ë +.SH 名前 +dup, dup2, dup3 \- ファイル・ディスクリプタを複製する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -57,38 +57,38 @@ dup, dup2, dup3 \- .BI "int dup2(int " oldfd ", int " newfd ); .sp .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "int dup3(int " oldfd ", int " newfd ", int " flags ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These system calls create a copy of the file descriptor .\"O .IR oldfd . -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿ +これらのシステムコールは、ファイル・ディスクリプタ .I oldfd -¤ÎÊ£À½¤òºî¤ë¡£ +の複製を作る。 .\"O .BR dup () .\"O uses the lowest-numbered unused descriptor for the new descriptor. .BR dup () -¤ÏºÇ¤â¾®¤µ¤¤ÈÖ¹æ¤Î̤»ÈÍѤΥǥ£¥¹¥¯¥ê¥×¥¿¤ò -¿·¤·¤¤¥Ç¥£¥¹¥¯¥ê¥×¥¿¤È¤·¤Æ»ÈÍѤ¹¤ë¡£ +は最も小さい番号の未使用のディスクリプタを +新しいディスクリプタとして使用する。 .\"O .BR dup2 () .\"O .RI "makes " newfd " be the copy of " oldfd ", closing " newfd .\"O first if necessary, but note the following: .BR dup2 () -¤Ï +は .I newfd -¤ò +を .I oldfd -¤ÎÊ£À½¤È¤·¤ÆºîÀ®¤¹¤ë¡£ -ɬÍפǤ¢¤ì¤ÐºÇ½é¤Ë +の複製として作成する。 +必要であれば最初に .I newfd -¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ -°Ê²¼¤ÎÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +をクローズする。 +以下の点に注意すること。 .IP * 3 .\"O If .\"O .I oldfd @@ -96,9 +96,9 @@ dup, dup2, dup3 \- .\"O .I newfd .\"O is not closed. .I oldfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¾ì¹ç¡¢¤½¤Î¸Æ¤Ó½Ð¤·¤Ï¼ºÇÔ¤·¡¢ +が有効なファイルディスクリプタでない場合、その呼び出しは失敗し、 .I newfd -¤Ï¥¯¥í¡¼¥º¤µ¤ì¤Ê¤¤¡£ +はクローズされない。 .IP * .\"O If .\"O .I oldfd @@ -111,15 +111,15 @@ dup, dup2, dup3 \- .\"O does nothing, and returns .\"O .IR newfd . .I oldfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¡¢ +が有効なファイルディスクリプタで、 .I newfd -¤¬ +が .I oldfd -¤ÈƱ¤¸Ãͤξì¹ç¡¢ +と同じ値の場合、 .BR dup2 () -¤Ï²¿¤â¤»¤º¡¢ +は何もせず、 .I newfd -¤òÊÖ¤¹¡£ +を返す。 .PP .\"O After a successful return from one of these system calls, .\"O the old and new file descriptors may be used interchangeably. @@ -129,16 +129,16 @@ dup, dup2, dup3 \- .\"O for example, if the file offset is modified by using .\"O .BR lseek (2) .\"O on one of the descriptors, the offset is also changed for the other. -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¤¤¤º¤ì¤«¤¬À®¸ù¤òÊÖ¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ -¸Å¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤È¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï -¸ß¤¤¤Ë²Ä´¹¤Ê¤â¤Î¤È¤·¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -2¤Ä¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏƱ¤¸¥Õ¥¡¥¤¥ëµ­½Ò (description) +これらのシステムコールのいずれかが成功を返した場合には、 +古いファイル・ディスクリプタと新しいファイル・ディスクリプタは +互いに可換なものとして使うことができる。 +2つのファイル・ディスクリプタは同じファイル記述 (description) .RB ( open (2) -»²¾È) ¤ò»²¾È¤·¤Æ¤ª¤ê¡¢¤·¤¿¤¬¤Ã¤Æ¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤ä¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤¬ -¶¦Í­¤µ¤ì¤ë¡£Î㤨¤Ð¡¢°ìÊý¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ +参照) を参照しており、したがってファイルオフセットやファイル状態フラグが +共有される。例えば、一方のディスクリプタに対して .BR lseek (2) -¤ò»È¤Ã¤Æ¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤òÊѹ¹¤·¤¿¾ì¹ç¡¢¤â¤¦°ìÊý¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î -¥ª¥Õ¥»¥Ã¥È¤âÊѲ½¤¹¤ë¡£ +を使ってファイルオフセットを変更した場合、もう一方のディスクリプタの +オフセットも変化する。 .\"O The two descriptors do not share file descriptor flags .\"O (the close-on-exec flag). @@ -147,20 +147,20 @@ dup, dup2, dup3 \- .\"O see .\"O .BR fcntl (2)) .\"O for the duplicate descriptor is off. -2¤Ä¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Õ¥é¥° (close-on-exec flag) -¤ò¶¦Í­¤·¤Ê¤¤¡£Ê£À½¤µ¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î +2つのディスクリプタはファイル・ディスクリプタ・フラグ (close-on-exec flag) +を共有しない。複製されたディスクリプタの close-on-exec flag .RB ( fcntl (2) -»²¾È) ¤Ï off ¤È¤Ê¤ë¡£ +参照) は off となる。 .\"O .BR dup3 () .\"O is the same as .\"O .BR dup2 (), .\"O except that: .BR dup3 () -¤Ï +は .BR dup2 () -¤ÈƱ¤¸¤À¤¬¡¢°Ê²¼¤ÎÅÀ¤¬°Û¤Ê¤ë¡£ +と同じだが、以下の点が異なる。 .IP * 3 .\"O The caller can force the close-on-exec flag to be set .\"O for the new file descriptor by specifying @@ -170,18 +170,18 @@ close-on-exec flag .\"O See the description of the same flag in .\"O .BR open (2) .\"O for reasons why this may be useful. -¸Æ¤Ó½Ð¤·¸µ¤¬¡¢¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ -close-on-exec ¥Õ¥é¥°¤ò¶¯À©Åª¤ËÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤ò¹Ô¤¦¤Ë¤Ï¡¢ +呼び出し元が、新しいファイル・ディスクリプタに対して +close-on-exec フラグを強制的に設定することができる。 +これを行うには、 .I flags -¤Ë +に .B O_CLOEXEC -¤ò»ØÄꤹ¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬Ìò¤ËΩ¤ÄÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +を指定する。 +このフラグが役に立つ理由については、 .BR open (2) -¤Î +の .B O_CLOEXEC -¥Õ¥é¥°¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +フラグの説明を参照のこと。 .IP * .\" FIXME . To confirm with Al Viro that this was intended, and its rationale .\"O If @@ -193,26 +193,26 @@ close-on-exec .\"O fails with the error .\"O .BR EINVAL . .I oldfd -¤¬ +が .I newfd -¤ÈƱ¤¸¾ì¹ç¡¢ +と同じ場合、 .BR dup3 () -¤Ï +は .B EINVAL -¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë¡£ +エラーで失敗する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these system calls .\"O return the new descriptor. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¿·¤·¤¤¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +成功すると、これらのシステムコールは新しいディスクリプタを返す。 +エラーの場合、\-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .\"O .B EBADF .\"O .I oldfd @@ -221,9 +221,9 @@ close-on-exec .\"O is out of the allowed range for file descriptors. .B EBADF .I oldfd -¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¤«¡¢ +がオープンされたファイル・ディスクリプタでないか、 .I newfd -¤¬¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤È¤·¤Æµö¤µ¤ì¤ëÈϰϤ«¤é³°¤ì¤Æ¤¤¤ë¡£ +がファイル・ディスクリプタとして許される範囲から外れている。 .TP .B EBUSY .\"O (Linux only) This may be returned by @@ -234,15 +234,15 @@ close-on-exec .\"O .BR open (2) .\"O and .\"O .BR dup (). -(Linux ¤Î¤ß) +(Linux のみ) .BR open (2) -¤ä +や .BR dup () -¤È¤Î¶¥¹ç¾õÂ֤ξì¹ç¤Ë¡¢ +との競合状態の場合に、 .BR dup2 () -¤ä +や .BR dup3 () -¤Ï¤³¤Î¥¨¥é¡¼¤òÊÖ¤¹¤«¤â¤·¤ì¤Ê¤¤¡£ +はこのエラーを返すかもしれない。 .TP .B EINTR .\"O The @@ -252,11 +252,11 @@ close-on-exec .\"O call was interrupted by a signal; see .\"O .BR signal (7). .BR dup2 () -¤ä +や .BR dup3 () -¤Î¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¡£ +の呼び出しがシグナルにより割り込まれた。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .\"O .RB ( dup3 ()) @@ -264,35 +264,35 @@ close-on-exec .\"O contain an invalid value. .RB ( dup3 ()) .I flags -¤Ë̵¸ú¤ÊÃͤ¬Æþ¤Ã¤Æ¤¤¤ë¡£ +に無効な値が入っている。 .\" FIXME . To confirm with Al Viro that this was intended, and its rationale .\"O Or, .\"O .I oldfd .\"O was equal to .\"O .IR newfd . -¤â¤·¤¯¤Ï¡¢ +もしくは、 .I oldfd -¤¬ +が .I newfd -¤ÈƱ¤¸¤Ç¤¢¤Ã¤¿¡£ +と同じであった。 .TP .\"O .B EMFILE .\"O The process already has the maximum number of file .\"O descriptors open and tried to open a new one. .B EMFILE -¥×¥í¥»¥¹¤¬¤¹¤Ç¤Ë¥ª¡¼¥×¥ó¤Ç¤­¤ëºÇÂç¿ô¤Þ¤Ç¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿ -¤ò³«¤¤¤Æ¤¤¤Æ¡¢¤µ¤é¤Ë¿·¤·¤¤¤â¤Î¤ò³«¤³¤¦¤È¤·¤¿¡£ +プロセスがすでにオープンできる最大数までファイル・ディスクリプタ +を開いていて、さらに新しいものを開こうとした。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR dup3 () .\"O was added to Linux in version 2.6.27; .\"O glibc support is available starting with .\"O version 2.9. .BR dup3 () -¤Ï¥Ð¡¼¥¸¥ç¥ó 2.6.27 ¤Ç Linux ¤ËÄɲ䵤줿¡£ -glibc ¤Ë¤è¤ë¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.9 °Ê¹ß¤ÇÍøÍѤǤ­¤ë¡£ +はバージョン 2.6.27 で Linux に追加された。 +glibc によるサポートはバージョン 2.9 以降で利用できる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .BR dup (), .BR dup2 (): SVr4, 4.3BSD, POSIX.1-2001. @@ -300,15 +300,15 @@ SVr4, 4.3BSD, POSIX.1-2001. .\"O .BR dup3 () .\"O is Linux-specific. .BR dup3 () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ +は Linux 固有である。 .\"O .\" SVr4 documents additional .\"O .\" EINTR and ENOLINK error conditions. POSIX.1 adds EINTR. .\"O .\" The EBUSY return is Linux-specific. -.\" SVr4 ¤Ë¤Ï¾¤Ë EINTR, ENOLINK ¥¨¥é¡¼¾õÂ֤ε­½Ò¤¬¤¢¤ë¡£ -.\" POSIX.1 ¤Ë¤Ï¾¤Ë EINTR ¤¬¤¢¤ë¡£ -.\" EBUSY ¤¬ÊÖ¤µ¤ì¤ë¤Î¤Ï Linux Æȼ«¤Î¤â¤Î¤Ç¤¢¤ë¡£ +.\" SVr4 には他に EINTR, ENOLINK エラー状態の記述がある。 +.\" POSIX.1 には他に EINTR がある。 +.\" EBUSY が返されるのは Linux 独自のものである。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The error returned by .\"O .BR dup2 () .\"O is different from that returned by @@ -323,17 +323,17 @@ SVr4, 4.3BSD, POSIX.1-2001. .\"O like .\"O .BR F_DUPFD . .I newfd -¤¬ÈϰϤòĶ¤¨¤¿»þ¤ËÊÖ¤µ¤ì¤ë¥¨¥é¡¼¤Ï¡¢ +が範囲を超えた時に返されるエラーは、 .BR dup2 () -¤È +と .BR fcntl( "..., " F_DUPFD ", ..." ) -¤Ç¤Ï°Û¤Ã¤Æ¤¤¤ë¡£ +では異っている。 .BR dup2 () -¤¬ +が .B F_DUPFD -¤ÈƱ¤¸¤è¤¦¤Ë +と同じように .B EINVAL -¤òÊÖ¤¹¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ +を返すシステムもある。 .\"O If .\"O .I newfd @@ -348,17 +348,17 @@ SVr4, 4.3BSD, POSIX.1-2001. .\"O .I newfd .\"O first. .I newfd -¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¤È¡¢ +がオープンされていると、 .BR close (2) -¤·¤¿»þ¤ËÊó¹ð¤µ¤ì¤ë¤Ï¤º¤Î¥¨¥é¡¼¤¬¼º¤ï¤ì¤Æ¤·¤Þ¤¦¡£ +した時に報告されるはずのエラーが失われてしまう。 .BR dup2 () -¤ä +や .BR dup3 () -¤ò»È¤¦Á°¤ËÀ褺 +を使う前に先ず .I newfd -¤ò¥¯¥í¡¼¥º¤¹¤ë¤è¤¦¤Ë¤·¤¿Êý¤¬¤¤¤¤¤À¤í¤¦¡£ +をクローズするようにした方がいいだろう。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR close (2), .BR fcntl (2), .BR open (2) diff --git a/draft/man2/epoll_create.2 b/draft/man2/epoll_create.2 index 5b39a681..7f2db0dd 100644 --- a/draft/man2/epoll_create.2 +++ b/draft/man2/epoll_create.2 @@ -30,15 +30,15 @@ .\" Updated & Modified Tue Apr 19 06:51:12 JST 2005 by Yuichi SATO .\" Updated 2009-03-05 by Kentaro Shirakata .\" -.\"WORD: backing store ¥Ð¥Ã¥­¥ó¥°¥¹¥È¥¢ +.\"WORD: backing store バッキングストア .\" .TH EPOLL_CREATE 2 2009-01-17 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O epoll_create, epoll_create1 \- open an epoll file descriptor -epoll_create, epoll_create1 \- epoll ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥ª¡¼¥×¥ó¤¹¤ë +epoll_create, epoll_create1 \- epoll ファイルディスクリプタをオープンする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -46,7 +46,7 @@ epoll_create, epoll_create1 \- epoll .BI "int epoll_create1(int " flags ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR epoll_create () .\"O creates an epoll "instance", .\"O requesting the kernel to allocate an event backing store dimensioned for @@ -57,20 +57,20 @@ epoll_create, epoll_create1 \- epoll .\"O is not the maximum size of the backing store but .\"O just a hint to the kernel about how to dimension internal structures. .BR epoll_create () -¤Ï¡¢ +は、 .I size -¸Ä¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÝ»ý¤Ç¤­¤ëÂ礭¤µ¤Î¥¤¥Ù¥ó¥È¥Ð¥Ã¥­¥ó¥° -¥¹¥È¥¢¤Î³ä¤êÅö¤Æ¤ò¥«¡¼¥Í¥ë¤ËÂФ·¤ÆÍ׵᤹¤ë¤³¤È¤Ë¤è¤ê¡¢ -epoll ¡Ö¥¤¥ó¥¹¥¿¥ó¥¹¡×¤òºîÀ®¤¹¤ë¡£ +個のディスクリプタを保持できる大きさのイベントバッキング +ストアの割り当てをカーネルに対して要求することにより、 +epoll 「インスタンス」を作成する。 .I size -¤Ï¥Ð¥Ã¥­¥ó¥°¥¹¥È¥¢¤ÎºÇÂ祵¥¤¥º¤Ç¤Ï¤Ê¤¯¡¢ -ÆâÉô¹½Â¤¤ÎÂ礭¤µ¤ò¤É¤Î°Ì¤Ë¤¹¤ë¤«¤ò¥«¡¼¥Í¥ë¤ËÃΤ餻¤ë¥Ò¥ó¥È¤Ç¤·¤«¤Ê¤¤¡£ +はバッキングストアの最大サイズではなく、 +内部構造の大きさをどの位にするかをカーネルに知らせるヒントでしかない。 .\"O (Nowadays, .\"O .I size .\"O is ignored; see NOTES below.) -(¸½ºß¤Ï +(現在は .I size -¤Ï̵»ë¤µ¤ì¤ë¡£²¼µ­¤Î¡ÖÃí°Õ¡×¤ò»²¾È¡£) +は無視される。下記の「注意」を参照。) .\"O .BR epoll_create () .\"O returns a file descriptor referring to the new epoll instance. @@ -82,21 +82,21 @@ epoll .\"O should be closed by using .\"O .BR close (2). .BR epoll_create () -¤Ï¡¢¿·¤·¤¤ epoll ¥¤¥ó¥¹¥¿¥ó¥¹¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢¤½¤Î¸å¤Î +は、新しい epoll インスタンスを参照するファイルディスクリプタを返す。 +このファイルディスクリプタは、その後の .B epoll -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î¸Æ¤Ó½Ð¤·¤Ë»È¤ï¤ì¤ë¡£ -¤â¤¦É¬ÍפǤʤ¯¤Ê¤Ã¤¿¾ì¹ç¤Ï¡¢ +インタフェースの呼び出しに使われる。 +もう必要でなくなった場合は、 .BR epoll_create () -¤ÇÊÖ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï +で返されたファイルディスクリプタは .BR close (2) -¤ò»È¤Ã¤Æ¥¯¥í¡¼¥º¤µ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +を使ってクローズされるべきである。 .\"O When all file descriptors referring to an epoll instance have been closed, .\"O the kernel destroys the instance .\"O and releases the associated resources for reuse. -¤¢¤ë epoll ¥¤¥ó¥¹¥¿¥ó¥¹¤ò»²¾È¤¹¤ëÁ´¤Æ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥¯¥í¡¼¥º¤µ¤ì¤ë¤È¡¢ -¥«¡¼¥Í¥ë¤Ï¤½¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤òÇ˲õ¤·¤Æ¡¢Âбþ¤¹¤ë¥ê¥½¡¼¥¹¤ò²òÊü¤·¡¢ -ºÆ»ÈÍѤǤ­¤ë¤è¤¦¤Ë¤¹¤ë¡£ +ある epoll インスタンスを参照する全てのファイルディスクリプタがクローズされると、 +カーネルはそのインスタンスを破壊して、対応するリソースを解放し、 +再使用できるようにする。 .\"O If .\"O .I flags @@ -110,16 +110,16 @@ epoll .\"O .IR flags .\"O to obtain different behavior: .BR epoll_create1 () -¤Ï¡¢ +は、 .I flags -¤¬ 0 ¤Î¾ì¹ç¡¢¸½ºß¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤Ê¤¤ +が 0 の場合、現在では使われていない .I size -°ú¤­¿ô¤¬¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤ëÅÀ¤ò½ü¤±¤Ð +引き数がなくなっている点を除けば .BR epoll_create () -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .I flags -¤Ë°Ê²¼¤ÎÃͤò¥Ó¥Ã¥ÈËè¤ÎÏÀÍýÏ (OR) ¤Ç»ØÄꤹ¤ë¤³¤È¤Ç¡¢ -°Û¤Ê¤ëÆ°ºî¤ò¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +に以下の値をビット毎の論理和 (OR) で指定することで、 +異なる動作をさせることができる。 .TP .B EPOLL_CLOEXEC .\"O Set the close-on-exec @@ -130,36 +130,36 @@ epoll .\"O flag in .\"O .BR open (2) .\"O for reasons why this may be useful. -¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ +新しいファイルディスクリプタに対して close-on-exec .RB ( FD_CLOEXEC ) -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬Ìò¤ËΩ¤ÄÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +フラグをセットする。 +このフラグが役に立つ理由については、 .BR open (2) -¤Î +の .B O_CLOEXEC -¥Õ¥é¥°¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +フラグの説明を参照のこと。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O these system calls .\"O return a nonnegative file descriptor. -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï -ÈóÉé¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ +成功すると、これらのシステムコールは +非負のファイルディスクリプタを返す。 .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set to indicate the error. -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O .I size .\"O is not positive. .I size -¤¬Àµ¤Ç¤Ê¤¤¡£ +が正でない。 .TP .B EINVAL .\"O .RB ( epoll_create1 ()) @@ -167,7 +167,7 @@ close-on-exec .\"O .IR flags . .RB ( epoll_create1 ()) .I flags -¤Ë̵¸ú¤ÊÃͤ¬»ØÄꤵ¤ì¤¿¡£ +に無効な値が指定された。 .TP .B EMFILE .\"O The per-user limit on the number of epoll instances imposed by @@ -177,40 +177,40 @@ close-on-exec .\"O .BR epoll (7) .\"O for further details. .I /proc/sys/fs/epoll/max_user_instances -¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤Æ¤¤¤ë¡¢epoll ¥¤¥ó¥¹¥¿¥ó¥¹¤Î¥æ¡¼¥¶¡¼Ã±°Ì¤ÎÀ©¸Â¤Ë㤷¤¿¡£ -¹¹¤Ê¤ë¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï +によって指定されている、epoll インスタンスのユーザー単位の制限に達した。 +更なる詳細については .BR epoll (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .TP .B ENFILE .\"O The system limit on the total number of open files has been reached. -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ÎÁí¿ô¤¬¥·¥¹¥Æ¥àÀ©¸Â¤Ë㤷¤¿¡£ +オープンされたファイルの総数がシステム制限に達した。 .TP .B ENOMEM .\"O There was insufficient memory to create the kernel object. -¥«¡¼¥Í¥ë¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤«¤Ã¤¿¡£ +カーネルオブジェクトを作成するのに十分なメモリがなかった。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O .BR epoll_create () .\"O is Linux-specific, and was introduced in kernel 2.5.44. .BR epoll_create () -¤Ï Linux Æȼ«¤Ç¤¢¤ê¡¢¥«¡¼¥Í¥ë 2.5.44 ¤ÇƳÆþ¤µ¤ì¤¿¡£ +は Linux 独自であり、カーネル 2.5.44 で導入された。 .\"O .\" The interface should be finalized by Linux kernel 2.5.66. -.\" ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï Linux ¥«¡¼¥Í¥ë 2.5.66 ¤Ç³ÎÄꤵ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +.\" インタフェースは Linux カーネル 2.5.66 で確定されるべきである。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Since Linux 2.6.8, the .\"O .I size .\"O argument is unused. .\"O (The kernel dynamically sizes the required data structures .\"O without needing this initial hint.) -Linux 2.6.8 °Ê¹ß¤Ç¤Ï¡¢ +Linux 2.6.8 以降では、 .I size -°ú¤­¿ô¤Ï»ÈÍѤµ¤ì¤Ê¤¤ -(¥«¡¼¥Í¥ë¤Ï¡¢Æ°Åª¤ËɬÍפʥǡ¼¥¿¹½Â¤¤ÎÂ礭¤µ¤ò·èÄꤷ¡¢ -ºÇ½é¤Î¥Ò¥ó¥È¤òɬÍפ·¤Ê¤¤)¡£ +引き数は使用されない +(カーネルは、動的に必要なデータ構造の大きさを決定し、 +最初のヒントを必要しない)。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR close (2), .BR epoll_ctl (2), .BR epoll_wait (2), diff --git a/draft/man2/epoll_ctl.2 b/draft/man2/epoll_ctl.2 index a11702c4..9e0dc1ff 100644 --- a/draft/man2/epoll_ctl.2 +++ b/draft/man2/epoll_ctl.2 @@ -29,17 +29,17 @@ .\" .TH EPOLL_CTL 2 2010-08-29 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O epoll_ctl \- control interface for an epoll descriptor -epoll_ctl \- epoll ¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÁàºî¤¹¤ë +epoll_ctl \- epoll ディスクリプタのインタフェースを操作する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int epoll_ctl(int " epfd ", int " op ", int " fd \ ", struct epoll_event *" event ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This system call performs control operations on the epoll instance .\"O referred to by the file descriptor .\"O .IR epfd . @@ -47,20 +47,20 @@ epoll_ctl \- epoll .\"O .I op .\"O be performed for the target file descriptor, .\"O .IR fd . -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +このシステムコールは、ファイルディスクリプタ .I epfd -¤¬»²¾È¤¹¤ë epoll ¥¤¥ó¥¹¥¿¥ó¥¹¤ËÂФ¹¤ëÁàºî¤ò¹Ô¤¦¡£ -ÂоݤΥե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +が参照する epoll インスタンスに対する操作を行う。 +対象のファイルディスクリプタ .I fd -¤ËÂФ·¤Æ¡¢Áàºî +に対して、操作 .I op -¤Î¼Â¹Ô¤¬Í׵ᤵ¤ì¤ë¡£ +の実行が要求される。 .\"O Valid values for the .\"O .I op .\"O argument are : .I op -°ú¤­¿ô¤Ë»ØÄê¤Ç¤­¤ëÍ­¸ú¤ÊÃͤϰʲ¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +引き数に指定できる有効な値は以下の通りである。 .TP .B EPOLL_CTL_ADD .\"O Register the target file descriptor @@ -73,28 +73,28 @@ epoll_ctl \- epoll .\"O .I event .\"O with the internal file linked to .\"O .IR fd . -ÂоݤΥե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +対象のファイルディスクリプタ .I fd -¤ò¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +をファイルディスクリプタ .I epfd -¤¬»²¾È¤¹¤ë +が参照する .B epoll -¥¤¥ó¥¹¥¿¥ó¥¹¤ËÅÐÏ¿¤·¡¢¥¤¥Ù¥ó¥È +インスタンスに登録し、イベント .I event -¤ò +を .I fd -¤Ë·ë¤ÓÉÕ¤±¤é¤ì¤¿ÆâÉô¥Õ¥¡¥¤¥ë¤Ë´ØÏ¢ÉÕ¤±¤ë¡£ +に結び付けられた内部ファイルに関連付ける。 .TP .B EPOLL_CTL_MOD .\"O Change the event .\"O .I event .\"O associated with the target file descriptor .\"O .IR fd . -¥¤¥Ù¥ó¥È +イベント .I event -¤òÂоݤΥե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +を対象のファイルディスクリプタ .I fd -¤Ë´ØÏ¢ÉÕ¤±¤ë¤è¤¦¤ËÊѹ¹¤¹¤ë¡£ +に関連付けるように変更する。 .TP .B EPOLL_CTL_DEL .\"O Remove (deregister) the target file descriptor @@ -106,30 +106,30 @@ epoll_ctl \- epoll .\"O The .\"O .I event .\"O is ignored and can be NULL (but see BUGS below). -ÂоݤΥե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +対象のファイルディスクリプタ .I fd -¤ò +を .I epfd -¤¬»²¾È¤¹¤ë +が参照する .B epoll -¥¤¥ó¥¹¥¿¥ó¥¹¤«¤éºï½ü¤¹¤ë¡£ +インスタンスから削除する。 .I event -°ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¤Î¤Ç¡¢NULL ¤Ë¤¹¤ë¤³¤È¤â¤Ç¤­¤ë -(⤷¡¢²¼µ­¤Î¡Ö¥Ð¥°¡×¤ò»²¾È)¡£ +引き数は無視されるので、NULL にすることもできる +(但し、下記の「バグ」を参照)。 .PP .\"O The .\"O .I event .\"O argument describes the object linked to the file descriptor .\"O .IR fd . .I event -°ú¤­¿ô¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +引き数は、ファイルディスクリプタ .I fd -¤Ë¥ê¥ó¥¯¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤òɽ¤¹¡£ +にリンクされたオブジェクトを表す。 .\"O The .\"O .I struct epoll_event .\"O is defined as : .I struct epoll_event -¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë: +は以下のように定義される: .sp .in +4n .nf @@ -145,8 +145,8 @@ typedef union epoll_data { .\"O epoll_data_t data; /* User data variable */ .\"O }; struct epoll_event { - uint32_t events; /* epoll ¥¤¥Ù¥ó¥È */ - epoll_data_t data; /* ¥æ¡¼¥¶¥Ç¡¼¥¿ÊÑ¿ô */ + uint32_t events; /* epoll イベント */ + epoll_data_t data; /* ユーザデータ変数 */ }; .fi .in @@ -156,70 +156,70 @@ struct epoll_event { .\"O member is a bit set composed using the following available event .\"O types: .I events -¥á¥ó¥Ð¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ê»ÈÍѲÄǽ¤Ê¥¤¥Ù¥ó¥È¥¿¥¤¥×¤ò»È¤Ã¤Æ¹½À®¤µ¤ì¤¿ -¥Ó¥Ã¥È¥»¥Ã¥È¤Ç¤¢¤ë¡£ +メンバは、以下のような使用可能なイベントタイプを使って構成された +ビットセットである。 .TP .B EPOLLIN .\"O The associated file is available for .\"O .BR read (2) .\"O operations. -´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡¢ +関連付けられたファイルに対して、 .BR read (2) -Áàºî¤¬²Äǽ¤Ç¤¢¤ë¡£ +操作が可能である。 .TP .B EPOLLOUT .\"O The associated file is available for .\"O .BR write (2) .\"O operations. -´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡¢ +関連付けられたファイルに対して、 .BR write (2) -Áàºî¤¬²Äǽ¤Ç¤¢¤ë¡£ +操作が可能である。 .TP .\"O .BR EPOLLRDHUP " (since Linux 2.6.17)" -.BR EPOLLRDHUP" (Linux 2.6.17 °Ê¹ß)" +.BR EPOLLRDHUP" (Linux 2.6.17 以降)" .\"O Stream socket peer closed connection, .\"O or shut down writing half of connection. .\"O (This flag is especially useful for writing simple code to detect .\"O peer shutdown when using Edge Triggered monitoring.) -¥¹¥È¥ê¡¼¥à¥½¥±¥Ã¥È¤Î¾ü¤¬¡¢¥³¥Í¥¯¥·¥ç¥ó¤Î close ¡¢ -¤Þ¤¿¤Ï¥³¥Í¥¯¥·¥ç¥ó¤Î½ñ¤­¹þ¤ß¦¤Î shutdown ¤ò¹Ô¤Ã¤¿¡£ -(¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤È¡¢¥¨¥Ã¥¸¥È¥ê¥¬¤Î´Æ»ë¤ò¹Ô¤¦¾ì¹ç¤Ë¡¢ -ÄÌ¿®¤Î¤â¤¦°ìü¤¬ÊĤ¸¤é¤ì¤¿¤³¤È¤ò¸¡ÃΤ¹¤ë¥³¡¼¥É¤ò -Èó¾ï¤Ë´Ê·é¤Ë½ñ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£) +ストリームソケットの他端が、コネクションの close 、 +またはコネクションの書き込み側の shutdown を行った。 +(このフラグを使うと、エッジトリガの監視を行う場合に、 +通信のもう一端が閉じられたことを検知するコードを +非常に簡潔に書くことができる。) .TP .B EPOLLPRI .\"O There is urgent data available for .\"O .BR read (2) .\"O operations. .BR read (2) -Áàºî¤¬²Äǽ¤Ê¶ÛµÞ (urgent) ¥Ç¡¼¥¿¤¬¤¢¤ë¡£ +操作が可能な緊急 (urgent) データがある。 .TP .B EPOLLERR .\"O Error condition happened on the associated file descriptor. -´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¥¨¥é¡¼¾ò·ï¤¬µ¯¤³¤Ã¤¿¡£ +関連付けられたファイルディスクリプタにエラー条件が起こった。 .\"O .BR epoll_wait (2) .\"O will always wait for this event; it is not necessary to set it in .\"O .IR events . .BR epoll_wait (2) -¤Ï¾ï¤Ë¤³¤Î¥¤¥Ù¥ó¥È¤òÂԤĤΤǡ¢ +は常にこのイベントを待つので、 .I events -¤ËÀßÄꤹ¤ëɬÍפϤʤ¤¡£ +に設定する必要はない。 .TP .B EPOLLHUP .\"O Hang up happened on the associated file descriptor. -´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¥Ï¥ó¥°¥¢¥Ã¥×¤¬µ¯¤³¤Ã¤¿¡£ +関連付けられたファイルディスクリプタにハングアップが起こった。 .\"O .BR epoll_wait (2) .\"O will always wait for this event; it is not necessary to set it in .\"O .IR events . .BR epoll_wait (2) -¤Ï¾ï¤Ë¤³¤Î¥¤¥Ù¥ó¥È¤òÂԤĤΤǡ¢ +は常にこのイベントを待つので、 .I events -¤ËÀßÄꤹ¤ëɬÍפϤʤ¤¡£ +に設定する必要はない。 .TP .B EPOLLET .\"O Sets the Edge Triggered behavior for the associated file descriptor. -´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë -¥¨¥Ã¥¸¥È¥ê¥¬Æ°ºî (Edge Triggered behavior) ¤òÀßÄꤹ¤ë¡£ +関連付けられたファイルディスクリプタに +エッジトリガ動作 (Edge Triggered behavior) を設定する。 .\"O The default behavior for .\"O .B epoll .\"O is Level Triggered. @@ -228,19 +228,19 @@ struct epoll_event { .\"O for more detailed information about Edge and Level Triggered event .\"O distribution architectures. .\"O -.\"Osato: ºÇ¸å¤Î 2 ¹Ô¤Ë¤¢¤ë Edge and Level ... architectures ¤ò -.\"Osato: ¤É¤³¤ÇÀڤäƤ褤¤«Ê¬¤«¤é¤Ê¤¤¡£ -.\"Omotoki: º£¤Îʬ³ä¾ì½ê¤Ç¤¤¤¤¤ó¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£ +.\"Osato: 最後の 2 行にある Edge and Level ... architectures を +.\"Osato: どこで切ってよいか分からない。 +.\"Omotoki: 今の分割場所でいいんではないでしょうか。 .\"O .B epoll -¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¡¢¥ì¥Ù¥ë¥È¥ê¥¬ (Level Triggered) ¤Ç¤¢¤ë¡£ -¥¨¥Ã¥¸¥È¥ê¥¬¤È¥ì¥Ù¥ë¥È¥ê¥¬¤Ë¤è¤ë¥¤¥Ù¥ó¥ÈʬÇÛµ¡¹½ -(event distribution architectures) ¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤Ê¾ðÊó¤Ï¡¢ +のデフォルトの動作は、レベルトリガ (Level Triggered) である。 +エッジトリガとレベルトリガによるイベント分配機構 +(event distribution architectures) についての詳細な情報は、 .BR epoll (7) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .TP .\"O .BR EPOLLONESHOT " (since Linux 2.6.2)" -.BR EPOLLONESHOT " (Linux 2.6.2 °Ê¹ß)" +.BR EPOLLONESHOT " (Linux 2.6.2 以降)" .\"O Sets the one-shot behavior for the associated file descriptor. .\"O This means that after an event is pulled out with .\"O .BR epoll_wait (2) @@ -253,26 +253,26 @@ struct epoll_event { .\"O with .\"O .B EPOLL_CTL_MOD .\"O to rearm the file descriptor with a new event mask. -´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë -°ì·âÆ°ºî (One-Shot behavior) ¤òÀßÄꤹ¤ë¡£ -¤³¤ì¤Ï¥¤¥Ù¥ó¥È¤¬ +関連付けられたファイルディスクリプタに +一撃動作 (One-Shot behavior) を設定する。 +これはイベントが .BR epoll_wait (2) -¤Ë¤è¤Ã¤Æ°ú¤­½Ð¤µ¤ì¤¿¸å¡¢ -´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÆâÉôŪ¤ËÇË´þ¤µ¤ì¡¢ +によって引き出された後、 +関連付けられたファイルディスクリプタが内部的に破棄され、 .B epoll -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë¤è¤Ã¤Æ¥¤¥Ù¥ó¥È¤¬Êó¹ð¤µ¤ì¤Ê¤¯¤Ê¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -¿·¤·¤¤¥¤¥Ù¥ó¥È¥Þ¥¹¥¯¤Ç¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òºÆÅÙÍ­¸ú¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ +インタフェースによってイベントが報告されなくなることを意味する。 +新しいイベントマスクでファイルディスクリプタを再度有効にするためには、 .BR epoll_ctl () -¤Ë +に .B EPOLL_CTL_MOD -¤ò»ØÄꤷ¤Æ¸Æ¤Ó½Ð¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を指定して呼び出さなければならない。 .\"O Valid values for the .\"O .I op .\"O argument are : .I op -°ú¤­¿ô¤Ë»ØÄê¤Ç¤­¤ëÍ­¸ú¤ÊÃͤϡ¢°Ê²¼¤ÎÄ̤ê: +引き数に指定できる有効な値は、以下の通り: .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O When successful, .\"O .BR epoll_ctl () .\"O returns zero. @@ -281,16 +281,16 @@ struct epoll_event { .\"O returns \-1 and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR epoll_ctl () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢ +は 0 を返す。 +エラーが起こった場合、 .BR epoll_ctl () -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O .I epfd @@ -298,9 +298,9 @@ struct epoll_event { .\"O .I fd .\"O is not a valid file descriptor. .I epfd -¤« +か .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B EEXIST .\"O .I op @@ -310,11 +310,11 @@ struct epoll_event { .\"O .I fd .\"O is already registered with this epoll instance. .I op -¤¬ +が .B EPOLL_CTL_ADD -¤Ç¤¢¤ê¡¢¤«¤ÄÍ¿¤¨¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +であり、かつ与えられたファイルディスクリプタ .I fd -¤¬¤³¤Î epoll ¥¤¥ó¥¹¥¿¥ó¥¹¤Ë´û¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¡£ +がこの epoll インスタンスに既に登録されている。 .TP .B EINVAL .\"O .I epfd @@ -329,17 +329,17 @@ struct epoll_event { .\"O .I op .\"O is not supported by this interface. .I epfd -¤¬ +が .B epoll -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ -¤Þ¤¿¤Ï +ファイルディスクリプタでない。 +または .I fd -¤¬ +が .I epfd -¤ÈƱ°ì¤Ç¤¢¤ë¡£ -¤Þ¤¿¤ÏÍ׵ᤵ¤ì¤¿Áàºî +と同一である。 +または要求された操作 .I op -¤¬¤³¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +がこのインタフェースでサポートされていない。 .TP .B ENOENT .\"O .I op @@ -351,21 +351,21 @@ struct epoll_event { .\"O .I fd .\"O is not registered with this epoll instance. .I op -¤¬ +が .B EPOLL_CTL_MOD -¤Þ¤¿¤Ï +または .B EPOLL_CTL_DEL -¤Ç¡¢¤«¤Ä +で、かつ .I fd -¤¬¤³¤Î epoll ¥¤¥ó¥¹¥¿¥ó¥¹¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +がこの epoll インスタンスに登録されていない。 .TP .B ENOMEM .\"O There was insufficient memory to handle the requested .\"O .I op .\"O control operation. -Í׵ᤵ¤ì¤¿ +要求された .I op -À©¸æÁàºî¤ò°·¤¦¤Î¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +制御操作を扱うのに十分なメモリがない。 .TP .B ENOSPC .\"O The limit imposed by @@ -376,45 +376,45 @@ struct epoll_event { .\"O See .\"O .BR epoll (7) .\"O for further details. -epoll ¥¤¥ó¥¹¥¿¥ó¥¹¤Ë¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÅÐÏ¿ +epoll インスタンスに新しいファイルディスクリプタを登録 .RB ( EPOLL_CTL_ADD ) -¤·¤è¤¦¤È¤·¤¿ºÝ¤Ë¡¢ +しようとした際に、 .I /proc/sys/fs/epoll/max_user_watches -¤Ç·è¤Þ¤ë¾å¸Â¤Ë㤷¤¿¡£ -¾ÜºÙ¤Ï +で決まる上限に達した。 +詳細は .BR epoll (7) -¤ò»²¾È¡£ +を参照。 .TP .B EPERM .\"O The target file .\"O .I fd .\"O does not support .\"O .BR epoll . -Âоݥե¡¥¤¥ë +対象ファイル .I fd -¤¬ +が .B epoll -¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +をサポートしていない。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O .BR epoll_ctl () .\"O is Linux-specific, and was introduced in kernel 2.5.44. .BR epoll_ctl () -¤Ï Linux Æȼ«¤Ç¤¢¤ê¡¢¥«¡¼¥Í¥ë 2.5.44 ¤ÇƳÆþ¤µ¤ì¤¿¡£ +は Linux 独自であり、カーネル 2.5.44 で導入された。 .\"O .\" The interface should be finalized by Linux kernel 2.5.66. -.\" ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï Linux ¥«¡¼¥Í¥ë 2.5.66 ¤Ç³ÎÄꤵ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +.\" インタフェースは Linux カーネル 2.5.66 で確定されるべきである。 .\"O .SH NOTES -.SH È÷¹Í +.SH 備考 .\"O The .\"O .B epoll .\"O interface supports all file descriptors that support .\"O .BR poll (2). .B epoll -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¡¢ +インタフェースは、 .BR poll (2) -¤ËÂбþ¤·¤Æ¤¤¤ëÁ´¤Æ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂбþ¤·¤Æ¤¤¤ë¡£ +に対応している全てのファイルディスクリプタに対応している。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O In kernel versions before 2.6.9, the .\"O .B EPOLL_CTL_DEL .\"O operation required a non-NULL pointer in @@ -425,24 +425,24 @@ epoll .\"O can be specified as NULL .\"O when using .\"O .BR EPOLL_CTL_DEL . -Linux 2.6.9 ¤è¤êÁ°¤Ç¤Ï¡¢ +Linux 2.6.9 より前では、 .B EPOLL_CTL_DEL -Áàºî¤ÎºÝ¡¢°ú¤­¿ô +操作の際、引き数 .I event -¤Ë (¤¿¤È¤¨Ìµ»ë¤µ¤ì¤ë¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â) NULL ¤Ç¤Ê¤¤¥Ý¥¤¥ó¥¿¤òÅϤ¹É¬Íפ¬¤¢¤Ã¤¿¡£ -¥«¡¼¥Í¥ë 2.6.9 °Ê¹ß¤Ç¤Ï¡¢ +に (たとえ無視される場合であっても) NULL でないポインタを渡す必要があった。 +カーネル 2.6.9 以降では、 .B EPOLL_CTL_DEL -¤ò»È¤¦ºÝ¤Ë +を使う際に .I event -¤Ë NULL ¤ò»ØÄê¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +に NULL を指定できるようになっている。 .\"O Applications that need to be portable to kernels before 2.6.9 .\"O should specify a non-NULL pointer in .\"O .IR event . -2.6.9 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ø¤Î°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ +2.6.9 より前のカーネルへの移植性が必要なアプリケーションでは、 .I event -¤Ë NULL ¤Ç¤Ê¤¤¥Ý¥¤¥ó¥¿¤ò»ØÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£ +に NULL でないポインタを指定すべきである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR epoll_create (2), .BR epoll_wait (2), .BR poll (2), diff --git a/draft/man2/epoll_wait.2 b/draft/man2/epoll_wait.2 index 62c967f2..1e6a0c1b 100644 --- a/draft/man2/epoll_wait.2 +++ b/draft/man2/epoll_wait.2 @@ -30,11 +30,11 @@ .\" .TH EPOLL_WAIT 2 2009-01-17 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O epoll_wait, epoll_pwait \- wait for an I/O event on an epoll file descriptor -epoll_wait, epoll_pwait \- epoll ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î I/O ¥¤¥Ù¥ó¥È¤òÂÔ¤Ä +epoll_wait, epoll_pwait \- epoll ファイルディスクリプタの I/O イベントを待つ .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -45,7 +45,7 @@ epoll_wait, epoll_pwait \- epoll .BI " const sigset_t *" sigmask ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR epoll_wait () .\"O system call waits for events on the @@ -56,28 +56,28 @@ epoll_wait, epoll_pwait \- epoll .\"O .I events .\"O will contain the events that will be available for the caller. .BR epoll_wait () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +システムコールは、 +ファイルディスクリプタ .I epfd -¤Ç»²¾È¤µ¤ì¤ë +で参照される .B epoll -¥¤¥ó¥¹¥¿¥ó¥¹¤ËÂФ¹¤ë¥¤¥Ù¥ó¥È¤òÂԤġ£ +インスタンスに対するイベントを待つ。 .I events -¤¬»Ø¤¹¥á¥â¥êÎΰè¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·Â¦¤¬ÍøÍѲÄǽ¤Ê¥¤¥Ù¥ó¥È¤¬³ÊǼ¤µ¤ì¤ë¡£ +が指すメモリ領域には、呼び出し側が利用可能なイベントが格納される。 .\"O Up to .\"O .I maxevents .\"O are returned by .\"O .BR epoll_wait (). -ºÇÂç +最大 .I maxevents -¸Ä¤Î¥¤¥Ù¥ó¥È¤¬ +個のイベントが .BR epoll_wait () -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë¡£ +によって返される。 .\"O The .\"O .I maxevents .\"O argument must be greater than zero. .I maxevents -°ú¤­¿ô¤Ï 0 ¤è¤êÂ礭¤¯¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数は 0 より大きくなければならない。 .\"O The call waits for a maximum time of .\"O .I timeout @@ -92,24 +92,24 @@ epoll_wait, epoll_pwait \- epoll .\"O .BR epoll_wait () .\"O to return immediately even if no events are available .\"O (return code equal to zero). -ºÇÂç¤Ç +最大で .I timeout -¥ß¥êÉô֥¤¥Ù¥ó¥È¤òÂԤġ£ +ミリ秒間イベントを待つ。 .I timeout -¤ò \-1 ¤Ë»ØÄꤹ¤ë¤È¡¢ +を \-1 に指定すると、 .BR epoll_wait () -¤Ï̵¸Â¤ËÂԤġ£ -¤Þ¤¿ +は無限に待つ。 +また .I timeout -¤ò 0 ¤Ë»ØÄꤹ¤ë¤È¡¢ +を 0 に指定すると、 .BR epoll_wait () -¤Ï¥¤¥Ù¥ó¥È¤¬ÍøÍѲÄǽ¤Ç¤Ê¤¯¤Æ¤â¡¢¤¹¤°¤ËÊÖ¤ë (ÊÖ¤êÃÍ¤Ï 0 ¤Ç¤¢¤ë)¡£ +はイベントが利用可能でなくても、すぐに返る (返り値は 0 である)。 .\"O The .\"O .I struct epoll_event .\"O is defined as : .I struct epoll_event -¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë: +は以下のように定義される: .sp .in +4n .nf @@ -125,8 +125,8 @@ typedef union epoll_data { .\"O epoll_data_t data; /* User data variable */ .\"O }; struct epoll_event { - uint32_t events; /* epoll ¥¤¥Ù¥ó¥È */ - epoll_data_t data; /* ¥æ¡¼¥¶¥Ç¡¼¥¿ÊÑ¿ô */ + uint32_t events; /* epoll イベント */ + epoll_data_t data; /* ユーザデータ変数 */ }; .fi .in @@ -139,15 +139,15 @@ struct epoll_event { .\"O while the .\"O .I events .\"O member will contain the returned event bit field. -ÊÖ¤µ¤ì¤ë¹½Â¤ÂΤΠ+返される構造体の .I data -¥á¥ó¥Ð¤Ë¤Ï¡¢¥æ¡¼¥¶¤¬ +メンバには、ユーザが .BR epoll_ctl (2) .RB ( EPOLL_CTL_ADD ", " EPOLL_CTL_MOD ) -¤Ç»ØÄꤷ¤¿¥Ç¡¼¥¿¤¬³ÊǼ¤µ¤ì¤ë¡£ -°ìÊý¡¢ +で指定したデータが格納される。 +一方、 .I events -¥á¥ó¥Ð¤Ë¤ÏÊÖ¤µ¤ì¤¿ÍøÍѲÄǽ¤Ê¥¤¥Ù¥ó¥È¤Î¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤¬³ÊǼ¤µ¤ì¤ë¡£ +メンバには返された利用可能なイベントのビットフィールドが格納される。 .SS epoll_pwait() .\"O The relationship between .\"O .BR epoll_wait () @@ -163,25 +163,25 @@ struct epoll_event { .\"O allows an application to safely wait until either a file descriptor .\"O becomes ready or until a signal is caught. .BR epoll_wait () -¤È +と .BR epoll_pwait () -¤Î´Ø·¸¤Ï¡¢ +の関係は、 .BR select (2) -¤È +と .BR pselect (2) -¤Î´Ø·¸¤ÈƱÍͤǤ¢¤ë¡£ +の関係と同様である。 .BR pselect (2) -ƱÍÍ¡¢ +同様、 .BR epoll_pwait () -¤ò»È¤¦¤È¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬½àÈ÷¤Ç¤­¤¿¾õÂ֤ˤʤ뤫¡¢ -¥·¥°¥Ê¥ë¤¬Ê᪤µ¤ì¤ë¤Þ¤Ç¡¢°ÂÁ´¤ËÂԤĤ³¤È¤¬¤Ç¤­¤ë¡£ +を使うと、アプリケーションは、ファイルディスクリプタが準備できた状態になるか、 +シグナルが捕捉されるまで、安全に待つことができる。 .\"O The following .\"O .BR epoll_pwait () .\"O call: -°Ê²¼¤Î +以下の .BR epoll_pwait () -¤Î¸Æ¤Ó½Ð¤·¤Ï¡¢ +の呼び出しは、 .nf ready = epoll_pwait(epfd, &events, maxevents, timeout, &sigmask); @@ -190,9 +190,9 @@ struct epoll_event { .\"O is equivalent to .\"O .I atomically .\"O executing the following calls: -¼¡¤Î¸Æ¤Ó½Ð¤·¤ò +次の呼び出しを .I atomic -¤Ë¼Â¹Ô¤¹¤ë¤Î¤ÈÅù²Á¤Ç¤¢¤ë¡£ +に実行するのと等価である。 .nf sigset_t origmask; @@ -209,14 +209,14 @@ struct epoll_event { .\"O is equivalent to .\"O .BR epoll_wait (). .I sigmask -°ú¤­¿ô¤Ë¤Ï NULL ¤ò»ØÄꤷ¤Æ¤â¤è¤¤¡£ -¤½¤Î¾ì¹ç¤Ë¤Ï¡¢ +引き数には NULL を指定してもよい。 +その場合には、 .BR epoll_pwait () -¤Ï +は .BR epoll_wait () -¤ÈÅù²Á¤È¤Ê¤ë¡£ +と等価となる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O When successful, .\"O .BR epoll_wait () .\"O returns the number of file descriptors ready for the requested I/O, or zero @@ -228,32 +228,32 @@ struct epoll_event { .\"O returns \-1 and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR epoll_wait () -¤ÏÍ׵ᤵ¤ì¤¿ I/O ¤ËÂФ·¤Æ½àÈ÷¤¬¤Ç¤­¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¿ô¤òÊÖ¤¹¡£ -¤Þ¤¿Í׵ᤵ¤ì¤¿ +は要求された I/O に対して準備ができているファイルディスクリプタの数を返す。 +また要求された .I timeout -¥ß¥êÉäδ֤˥ե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬½àÈ÷¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¡¢0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢ +ミリ秒の間にファイルディスクリプタが準備できない場合は、0 を返す。 +エラーが起こった場合、 .BR epoll_wait () -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O .I epfd .\"O is not a valid file descriptor. .I epfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B EFAULT .\"O The memory area pointed to by .\"O .I events .\"O is not accessible with write permissions. .I events -¤Ç»Ø¤µ¤ì¤ë¥á¥â¥êÎΰè¤Ë½ñ¤­¹þ¤ß¸¢¸Â¤Ç¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¡£ +で指されるメモリ領域に書き込み権限でアクセスできない。 .TP .B EINTR .\"O The call was interrupted by a signal handler before any of the @@ -261,11 +261,11 @@ struct epoll_event { .\"O .I timeout .\"O expired; see .\"O .BR signal (7). -Í׵ᤵ¤ì¤¿¤É¤Î¥¤¥Ù¥ó¥È¤âȯÀ¸¤»¤º¡¢¤«¤Ä +要求されたどのイベントも発生せず、かつ .I timeout -¤Î´ü¸Â¤¬ÀÚ¤ì¤ëÁ°¤Ë¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿¡£ +の期限が切れる前に、システムコールがシグナルハンドラによって割り込まれた。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .\"O .I epfd @@ -275,34 +275,34 @@ struct epoll_event { .\"O .I maxevents .\"O is less than or equal to zero. .I epfd -¤¬ +が .B epoll -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ -¤Þ¤¿¤Ï +ファイルディスクリプタでない。 +または .I maxevents -¤¬ 0 °Ê²¼¤Ç¤¢¤ë¡£ +が 0 以下である。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR epoll_pwait () .\"O was added to Linux in kernel 2.6.19. .BR epoll_pwait () -¤Ï¥«¡¼¥Í¥ë 2.6.19 ¤Ç Linux ¤ËÄɲ䵤줿¡£ +はカーネル 2.6.19 で Linux に追加された。 .\"O Glibc support for .\"O .BR epoll_pwait () .\"O is provided starting with glibc 2.6. .BR epoll_pwait () -¤Î glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï glibc 2.6 °Ê¹ß¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +の glibc でのサポートは glibc 2.6 以降で提供されている。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O .BR epoll_wait () .\"O is Linux-specific, and was introduced in kernel 2.5.44. .BR epoll_wait () -¤Ï Linux Æȼ«¤Ç¤¢¤ê¡¢¥«¡¼¥Í¥ë 2.5.44 ¤ÇƳÆþ¤µ¤ì¤¿¡£ +は Linux 独自であり、カーネル 2.5.44 で導入された。 .\"O .\" The interface should be finalized by Linux kernel 2.5.66. -.\" ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï Linux ¥«¡¼¥Í¥ë 2.5.66 ¤Ç³ÎÄꤵ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +.\" インタフェースは Linux カーネル 2.5.66 で確定されるべきである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR epoll_create (2), .BR epoll_ctl (2), .BR epoll (7) diff --git a/draft/man2/eventfd.2 b/draft/man2/eventfd.2 index 06f7f574..93a64b77 100644 --- a/draft/man2/eventfd.2 +++ b/draft/man2/eventfd.2 @@ -25,16 +25,16 @@ .\" .TH EVENTFD 2 2009-01-26 Linux "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O eventfd \- create a file descriptor for event notification -eventfd \- ¥¤¥Ù¥ó¥ÈÄÌÃÎÍѤΥե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÀ¸À®¤¹¤ë +eventfd \- イベント通知用のファイルディスクリプタを生成する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int eventfd(unsigned int " initval ", int " flags ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR eventfd () .\"O creates an "eventfd object" that can be used as .\"O an event wait/notify mechanism by userspace applications, @@ -45,25 +45,25 @@ eventfd \- .\"O This counter is initialized with the value specified in the argument .\"O .IR initval . .BR eventfd () -¤Ï "eventfd ¥ª¥Ö¥¸¥§¥¯¥È" ¤òÀ¸À®¤¹¤ë¡£ -eventfd ¥ª¥Ö¥¸¥§¥¯¥È¤Ï¥æ¡¼¥¶¶õ´Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¥¤¥Ù¥ó¥ÈÂÔ¤Á¼õ¤±/ÄÌÃÎÍѤΠ-»ÅÁȤߤȤ·¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£¤Þ¤¿¡¢¥«¡¼¥Í¥ë¤¬¥æ¡¼¥¶¶õ´Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë -¥¤¥Ù¥ó¥È¤òÄÌÃΤ¹¤ë¤¿¤á¤Ë¤â»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ï¡¢unsigned ¤Î 64 ¥Ó¥Ã¥ÈÀ°¿ô +は "eventfd オブジェクト" を生成する。 +eventfd オブジェクトはユーザ空間アプリケーションがイベント待ち受け/通知用の +仕組みとして使うことができる。また、カーネルがユーザ空間アプリケーションに +イベントを通知するためにも使うことができる。 +このオブジェクトには、unsigned の 64 ビット整数 .RI ( uint64_t ) -·¿¤Î¥«¥¦¥ó¥¿¤¬´Þ¤Þ¤ì¤Æ¤ª¤ê¡¢¤³¤Î¥«¥¦¥ó¥¿¤Ï¥«¡¼¥Í¥ë¤Ë¤è¤ê´ÉÍý¤µ¤ì¤ë¡£ -¤³¤Î¥«¥¦¥ó¥¿¤Ï +型のカウンタが含まれており、このカウンタはカーネルにより管理される。 +このカウンタは .I initval -°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿Ãͤǽé´ü²½¤µ¤ì¤ë¡£ +引き数で指定された値で初期化される。 .\"O Starting with Linux 2.6.27, the following values may be bitwise ORed in .\"O .IR flags .\"O to change the behaviour of .\"O .BR eventfd (): -Linux 2.6.27 °Ê¹ß¤Ç¤Ï¡¢ -°Ê²¼¤ÎÃͤΤ¤¤¯¤Ä¤«¤ò¥Ó¥Ã¥Èñ°Ì¤ÎÏÀÍýÏ (OR) ¤Ç»ØÄꤹ¤ë¤³¤È¤Ç¡¢ +Linux 2.6.27 以降では、 +以下の値のいくつかをビット単位の論理和 (OR) で指定することで、 .BR eventfd () -¤Î¿¶Éñ¤¤¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +の振舞いを変更することができる。 .TP 14 .B EFD_NONBLOCK .\"O Set the @@ -72,14 +72,14 @@ Linux 2.6.27 .\"O Using this flag saves extra calls to .\"O .BR fcntl (2) .\"O to achieve the same result. -¿·¤·¤¯À¸À®¤µ¤ì¤ë¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò (open file description) ¤Î +新しく生成されるオープンファイル記述 (open file description) の .B O_NONBLOCK -¥Õ¥¡¥¤¥ë¥¹¥Æ¡¼¥¿¥¹¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤³¤È¤Ç¡¢ +ファイルステータスフラグをセットする。 +このフラグを使うことで、 .B O_NONBLOCK -¤ò¥»¥Ã¥È¤¹¤ë¤¿¤á¤Ë +をセットするために .BR fcntl (2) -¤òÄɲäǸƤӽФ¹É¬Íפ¬¤Ê¤¯¤Ê¤ë¡£ +を追加で呼び出す必要がなくなる。 .TP .B EFD_CLOEXEC .\"O Set the close-on-exec @@ -90,22 +90,22 @@ Linux 2.6.27 .\"O flag in .\"O .BR open (2) .\"O for reasons why this may be useful. -¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ +新しいファイルディスクリプタに対して close-on-exec .RB ( FD_CLOEXEC ) -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬Ìò¤ËΩ¤ÄÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +フラグをセットする。 +このフラグが役に立つ理由については、 .BR open (2) -¤Î +の .B O_CLOEXEC -¥Õ¥é¥°¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +フラグの説明を参照のこと。 .PP .\"O In Linux up to version 2.6.26, the .\"O .I flags .\"O argument is unused, and must be specified as zero. -¥Ð¡¼¥¸¥ç¥ó 2.6.26 °ÊÁ°¤Î Linux ¤Ç¤Ï¡¢ +バージョン 2.6.26 以前の Linux では、 .I flags -°ú¤­¿ô¤Ï̤»ÈÍѤǤ¢¤ê¡¢0 ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数は未使用であり、0 を指定しなければならない。 .\"O As its return value, .\"O .BR eventfd () @@ -113,8 +113,8 @@ close-on-exec .\"O eventfd object. .\"O The following operations can be performed on the file descriptor: .BR eventfd () -¤Ï eventfd ¥ª¥Ö¥¸¥§¥¯¥È¤ò»²¾È¤¹¤ë¤Î¤Ë»ÈÍѤǤ­¤ë¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ -¤òÊÖ¤¹¡£ÊÖ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ¤Ï°Ê²¼¤ÎÁàºî¤ò¼Â¹Ô¤Ç¤­¤ë¡£ +は eventfd オブジェクトを参照するのに使用できる新しいファイルディスクリプタ +を返す。返されたファイルディスクリプタに対しては以下の操作を実行できる。 .TP .BR read (2) .\"O If the eventfd counter has a nonzero value, then a @@ -123,12 +123,12 @@ close-on-exec .\"O and the counter's value is reset to zero. .\"O (The returned value is in host byte order, .\"O i.e., the native byte order for integers on the host machine.) -eventfd ¥«¥¦¥ó¥¿¤¬ 0 °Ê³°¤ÎÃͤξì¹ç¡¢ +eventfd カウンタが 0 以外の値の場合、 .BR read (2) -¤Ï¥«¥¦¥ó¥¿Ãͤò³ÊǼ¤·¤¿ 8 ¥Ð¥¤¥È¤ÎÃͤòÊÖ¤·¡¢ -¥«¥¦¥ó¥¿ÃÍ¤Ï 0 ¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë -(ÊÖ¤êÃͤϥۥ¹¥È¡¦¥Ð¥¤¥È¥ª¡¼¥À¡¢¤Ä¤Þ¤ê -¥Û¥¹¥È¥Þ¥·¥ó¤ÇÀ°¿ôɽ¸½¤ËËÜÍè»ÈÍѤµ¤ì¤ë¥Ð¥¤¥È¥ª¡¼¥À¤Ç³ÊǼ¤µ¤ì¤ë)¡£ +はカウンタ値を格納した 8 バイトの値を返し、 +カウンタ値は 0 にリセットされる +(返り値はホスト・バイトオーダ、つまり +ホストマシンで整数表現に本来使用されるバイトオーダで格納される)。 .IP .\"O If the counter is zero at the time of the .\"O .BR read (2), @@ -137,24 +137,24 @@ eventfd .\"O .B EAGAIN .\"O if the file descriptor has been made nonblocking. .BR read (2) -¤Î»þÅÀ¤Ç¥«¥¦¥ó¥¿¤¬ 0 ¤Î¾ì¹ç¡¢ +の時点でカウンタが 0 の場合、 .BR read (2) -¤Ï¥«¥¦¥ó¥¿¤¬ 0 °Ê³°¤Ë¤Ê¤ë¤Þ¤ÇÄä»ß (block) ¤¹¤ë¡¢ -¤â¤·¤¯¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÈóÄä»ß (nonblocking) -¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¥¨¥é¡¼ +はカウンタが 0 以外になるまで停止 (block) する、 +もしくはファイルディスクリプタが非停止 (nonblocking) +に設定されている場合はエラー .B EAGAIN -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .IP .\"O A .\"O .BR read (2) .\"O will fail with the error .\"O .B EINVAL .\"O if the size of the supplied buffer is less than 8 bytes. -ÅϤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ¤¬ 8 ¥Ð¥¤¥È̤Ëþ¤Î¾ì¹ç¡¢ +渡されたバッファの大きさが 8 バイト未満の場合、 .BR read (2) -¤Ï¥¨¥é¡¼ +はエラー .B EINVAL -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .TP .BR write (2) .\"O A @@ -164,9 +164,9 @@ eventfd .\"O The maximum value that may be stored in the counter is the largest .\"O unsigned 64-bit value minus 1 (i.e., 0xfffffffffffffffe). .BR write (2) -¤Ï¡¢°ú¤­¿ô¤Î¥Ð¥Ã¥Õ¥¡¤ÇÅϤµ¤ì¤¿ 8 ¥Ð¥¤¥È¤ÎÀ°¿ôÃͤò¥«¥¦¥ó¥¿¤Ë²Ã»»¤¹¤ë¡£ -¥«¥¦¥ó¥¿¤Ë³ÊǼ²Äǽ¤ÊºÇÂçÃÍ¤Ï unsigned ¤Î 64 ¥Ó¥Ã¥ÈÀ°¿ô¤ÎºÇÂçÃͤ«¤é -1 ¤ò°ú¤¤¤¿ÃÍ (¤¹¤Ê¤ï¤Á 0xfffffffffffffffe) ¤Ç¤¢¤ë¡£ +は、引き数のバッファで渡された 8 バイトの整数値をカウンタに加算する。 +カウンタに格納可能な最大値は unsigned の 64 ビット整数の最大値から +1 を引いた値 (すなわち 0xfffffffffffffffe) である。 .\"O If the addition would cause the counter's value to exceed .\"O the maximum, then the .\"O .BR write (2) @@ -176,16 +176,16 @@ eventfd .\"O or fails with the error .\"O .B EAGAIN .\"O if the file descriptor has been made nonblocking. -²Ã»»¤ò¹Ô¤¦¤È¥«¥¦¥ó¥¿Ãͤ¬ºÇÂçÃͤòĶ²á¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ +加算を行うとカウンタ値が最大値を超過する場合には、 +そのファイルディスクリプタに対して .BR read (2) -¤¬¼Â¹Ô¤µ¤ì¤ë¤Þ¤Ç¡¢ +が実行されるまで、 .BR write (2) -¤ÏÄä»ß (block) ¤¹¤ë¡¢ -¤â¤·¤¯¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÈóÄä»ß (nonblocking) -¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¥¨¥é¡¼ +は停止 (block) する、 +もしくはファイルディスクリプタが非停止 (nonblocking) +に設定されている場合はエラー .B EAGAIN -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .IP .\"O A .\"O .BR write (2) @@ -193,15 +193,15 @@ eventfd .\"O .B EINVAL .\"O if the size of the supplied buffer is less than 8 bytes, .\"O or if an attempt is made to write the value 0xffffffffffffffff. -ÅϤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ¤¬ 8 ¥Ð¥¤¥È̤Ëþ¤Î¾ì¹ç¡¢¤â¤·¤¯¤Ï -ÃÍ 0xffffffffffffffff ¤ò½ñ¤­¹þ¤â¤¦¤È¤·¤¿¾ì¹ç¡¢ +渡されたバッファの大きさが 8 バイト未満の場合、もしくは +値 0xffffffffffffffff を書き込もうとした場合、 .BR write (2) -¤Ï¥¨¥é¡¼ +はエラー .B EINVAL -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .TP .\"O .BR poll "(2), " select "(2) (and similar)" -.BR poll "(2), " select "(2) (¤ÈƱÍͤÎÁàºî)" +.BR poll "(2), " select "(2) (と同様の操作)" .\"O The returned file descriptor supports .\"O .BR poll (2) .\"O (and analogously @@ -209,12 +209,12 @@ eventfd .\"O and .\"O .BR select (2), .\"O as follows: -ÊÖ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢ +返されたファイルディスクリプタは、 .BR poll (2) .RB ( epoll (7) -¤âƱ¤¸) ¤ä +も同じ) や .BR select (2) -¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤ª¤ê¡¢°Ê²¼¤Î¤è¤¦¤ÊÆ°ºî¤ò¤¹¤ë¡£ +をサポートしており、以下のような動作をする。 .RS .IP * 3 .\"O The file descriptor is readable @@ -226,16 +226,16 @@ eventfd .\"O .B POLLIN .\"O flag) .\"O if the counter has a value greater than 0. -¥«¥¦¥ó¥¿¤¬ 0 ¤è¤êÂ礭¤¤Ãͤξì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÆɤ߽Ф·²Äǽ¤È¤Ê¤ë +カウンタが 0 より大きい値の場合、 +ファイルディスクリプタは読み出し可能となる .RB ( select (2) -¤Î +の .I readfds -°ú¤­¿ô¤ä +引き数や .BR poll (2) -¤Î +の .B POLLIN -¥Õ¥é¥°)¡£ +フラグ)。 .IP * .\"O The file descriptor is writable .\"O (the @@ -246,16 +246,16 @@ eventfd .\"O .B POLLOUT .\"O flag) .\"O if it is possible to write a value of at least "1" without blocking. -¾¯¤Ê¤¯¤È¤âÃÍ "1" ¤ò¡¢Ää»ß (block) ¤òȼ¤ï¤º¤Ë½ñ¤­¹þ¤á¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï½ñ¤­¹þ¤ß²Äǽ¤È¤Ê¤ë +少なくとも値 "1" を、停止 (block) を伴わずに書き込める場合、 +ファイルディスクリプタは書き込み可能となる .RB ( select (2) -¤Î +の .I writefds -°ú¤­¿ô¤ä +引き数や .BR poll (2) -¤Î +の .B POLLOUT -¥Õ¥é¥°)¡£ +フラグ)。 .IP * .\"O If an overflow of the counter value was detected, .\"O then @@ -265,13 +265,13 @@ eventfd .\"O returns a .\"O .B POLLERR .\"O event. -¥«¥¦¥ó¥¿ÃͤΥª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬¸¡½Ð¤µ¤ì¤¿¾ì¹ç¡¢ +カウンタ値のオーバーフローが検出された場合、 .BR select (2) -¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÆɤ߽Ф·²Äǽ¤È½ñ¤­¹þ¤ß²Äǽ¤ÎξÊý¤òÄÌÃΤ·¡¢ +はファイルディスクリプタは読み出し可能と書き込み可能の両方を通知し、 .BR poll (2) -¤Ï +は .B POLLERR -¥¤¥Ù¥ó¥È¤òÊÖ¤¹¡£ +イベントを返す。 .\"O As noted above, .\"O .BR write (2) .\"O can never overflow the counter. @@ -283,17 +283,17 @@ eventfd .\"O will return that maximum .\"O .I uint64_t .\"O value (i.e., 0xffffffffffffffff). -¾å½Ò¤ÎÄ̤ꡢ +上述の通り、 .BR write (2) -¤Ç¥«¥¦¥ó¥¿¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¤³¤È¤Ï·è¤·¤Æ¤Ê¤¤¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢ KAIO ¥µ¥Ö¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ 2^64 ²ó¤Î eventfd "signal posts" ¤¬ -¼Â¹Ô¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬µ¯¤³¤êÆÀ¤ë -(ÍýÏÀŪ¤Ë¤Ï¤¢¤êÆÀ¤ë¤¬¡¢¼ÂÍÑŪ¤Ë¤Ï¤¢¤êÆÀ¤Ê¤¤)¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¡¢ +でカウンタがオーバーフローすることは決してない。 +しかしながら、 KAIO サブシステムによって 2^64 回の eventfd "signal posts" が +実行された場合にはオーバーフローが起こり得る +(理論的にはあり得るが、実用的にはあり得ない)。 +オーバーフローが発生した場合、 .BR read (2) -¤Ï +は .I uint64_t -¤ÎºÇÂçÃÍ (¤¹¤Ê¤ï¤Á 0xffffffffffffffff) ¤òÊÖ¤¹¡£ +の最大値 (すなわち 0xffffffffffffffff) を返す。 .RE .IP .\"O The eventfd file descriptor also supports the other file-descriptor @@ -302,20 +302,20 @@ eventfd .\"O .BR ppoll (2), .\"O and .\"O .BR epoll (7). -eventfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢¤³¤ì°Ê³°¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ -¿½Å API ¤Ç¤¢¤ë +eventfd ファイルディスクリプタは、これ以外のファイルディスクリプタ +多重 API である .BR pselect (2), .BR ppoll (2), .BR epoll (7) -¤â¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ +もサポートしている。 .TP .BR close (2) .\"O When the file descriptor is no longer required it should be closed. .\"O When all file descriptors associated with the same eventfd object .\"O have been closed, the resources for object are freed by the kernel. -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¤½¤ì°Ê¹ß¤ÏɬÍפʤ¯¤Ê¤Ã¤¿ºÝ¤Ë¤Ï¡¢¥¯¥í¡¼¥º¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -Ʊ¤¸ eventfd ¥ª¥Ö¥¸¥§¥¯¥È¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Á´¤Æ -¥¯¥í¡¼¥º¤µ¤ì¤ë¤È¡¢¤½¤Î¥ª¥Ö¥¸¥§¥¯¥ÈÍѤλñ¸»¤¬¥«¡¼¥Í¥ë¤Ë¤è¤ê²òÊü¤µ¤ì¤ë¡£ +ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきである。 +同じ eventfd オブジェクトに関連付けられたファイルディスクリプタが全て +クローズされると、そのオブジェクト用の資源がカーネルにより解放される。 .PP .\"O A copy of the file descriptor created by .\"O .BR eventfd () @@ -328,30 +328,30 @@ eventfd .\"O are preserved across .\"O .BR execve (2). .BR fork (2) -¤ÇÀ¸À®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢ +で生成された子プロセスは、 .BR eventfd () -¤ÇÀ¸À®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£ -Ê£À½¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏƱ¤¸ eventfd ¥ª¥Ö¥¸¥§¥¯¥È¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤ë¡£ +で生成されたファイルディスクリプタのコピーを継承する。 +複製されたファイルディスクリプタは同じ eventfd オブジェクトに関連付けられる。 .BR execve (2) -¤ÎÁ°¸å¤Ç +の前後で .BR eventfd () -¤ÇÀ¸À®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÊÝ»ý¤µ¤ì¤ë¡£ +で生成されたファイルディスクリプタは保持される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR eventfd () .\"O returns a new eventfd file descriptor. .\"O On error, \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR eventfd () -¤Ï¿·µ¬¤Î eventfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は新規の eventfd ファイルディスクリプタを返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O .I flags @@ -360,20 +360,20 @@ eventfd .\"O .I flags .\"O is nonzero. .I flags -¤¬Ìµ¸ú¡£ -Linux 2.6.26 °ÊÁ°¤Ç¤Ï¡¢ +が無効。 +Linux 2.6.26 以前では、 .I flags -¤¬ 0 °Ê³°¤ÎÃÍ¡£ +が 0 以外の値。 .TP .B EMFILE .\"O The per-process limit on open file descriptors has been reached. -¥ª¡¼¥×¥óºÑ¤ß¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¿ô¤¬¥×¥í¥»¥¹¤¢¤¿¤ê¤Î¾å¸Â¤Ë -㤷¤Æ¤¤¤¿¡£ +オープン済みのファイルディスクリプタの数がプロセスあたりの上限に +達していた。 .TP .B ENFILE .\"O The system-wide limit on the total number of open files has been .\"O reached. -¥ª¡¼¥×¥óºÑ¤ß¤Î¥Õ¥¡¥¤¥ëÁí¿ô¤¬¥·¥¹¥Æ¥àÁ´ÂΤξå¸Â¤Ë㤷¤Æ¤¤¤¿¡£ +オープン済みのファイル総数がシステム全体の上限に達していた。 .TP .B ENODEV .\" Note from Davide: @@ -382,49 +382,49 @@ Linux 2.6.26 .\" the kernel initialization, some error occur in the anonymous .\" inode source initialization. .\"O Could not mount (internal) anonymous inode device. -(¥«¡¼¥Í¥ëÆâ¤Î) ̵̾ inode ¥Ç¥Ð¥¤¥¹¤ò¥Þ¥¦¥ó¥È¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +(カーネル内の) 無名 inode デバイスをマウントできなかった。 .TP .B ENOMEM .\"O There was insufficient memory to create a new .\"O eventfd file descriptor. -¿·¤·¤¤ eventfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÀ¸À®¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤«¤Ã¤¿¡£ +新しい eventfd ファイルディスクリプタを生成するのに十分なメモリがなかった。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR eventfd () .\"O is available on Linux since kernel 2.6.22. .\"O Working support is provided in glibc since version 2.8. .BR eventfd () -¤Ï¥«¡¼¥Í¥ë 2.6.22 °Ê¹ß¤Î Linux ¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -Àµ¤·¤¯Æ°ºî¤¹¤ë glibc ¦¤Î¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.8 °Ê¹ß¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +はカーネル 2.6.22 以降の Linux で利用可能である。 +正しく動作する glibc 側のサポートはバージョン 2.8 以降で提供されている。 .\" eventfd() is in glibc 2.7, but reportedly does not build .\"O The .\"O .BR eventfd2 () .\"O system call (see NOTES) is available on Linux since kernel 2.6.27. .BR eventfd2 () -¥·¥¹¥Æ¥à¥³¡¼¥ë (¡ÖÃí°Õ¡×»²¾È) ¤Ï -¥«¡¼¥Í¥ë 2.6.27 °Ê¹ß¤Î Linux ¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +システムコール (「注意」参照) は +カーネル 2.6.27 以降の Linux で利用可能である。 .\"O Since version 2.9, the glibc .\"O .BR eventfd () .\"O wrapper will employ the .\"O .BR eventfd2 () .\"O system call, if it is supported by the kernel. -¥Ð¡¼¥¸¥ç¥ó 2.9 °Ê¹ß¤Ç¤Ï¡¢glibc ¤Î +バージョン 2.9 以降では、glibc の .BR eventfd () -¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢¥«¡¼¥Í¥ë¤¬Âбþ¤·¤Æ¤¤¤ì¤Ð +のラッパー関数は、カーネルが対応していれば .BR eventfd2 () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÍøÍѤ¹¤ë¡£ +システムコールを利用する。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O .BR eventfd () .\"O and .\"O .BR eventfd2 () .\"O are Linux-specific. .BR eventfd () -¤È +と .BR eventfd2 () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ +は Linux 固有である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Applications can use an eventfd file descriptor instead of a pipe (see .\"O .BR pipe (2)) .\"O in all cases where a pipe is used simply to signal events. @@ -432,24 +432,24 @@ Linux 2.6.26 .\"O is much lower than that of a pipe, .\"O and only one file descriptor is .\"O required (versus the two required for a pipe). -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢¥Ñ¥¤¥×¤ò¥¤¥Ù¥ó¥È¤òÄÌÃΤ¹¤ë¤¿¤á¤À¤±¤Ë»ÈÍѤ·¤Æ¤¤¤ë -Á´¤Æ¤Î¾ìÌ̤ˤª¤¤¤Æ¡¢¥Ñ¥¤¥×¤ÎÂå¤ï¤ê¤Ë eventfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò -»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -eventfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò»È¤¦Êý¤¬¡¢¥Ñ¥¤¥×¤ò»È¤¦¾ì¹ç¤ËÈæ¤Ù¤Æ -¥«¡¼¥Í¥ë¤Ç¤Î¥ª¡¼¥Ð¥Ø¥Ã¥É¤ÏÈæ¤Ù¤ë¤È¤º¤Ã¤È¾®¤µ¤¯¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤â -°ì¤Ä¤·¤«É¬ÍפȤ·¤Ê¤¤ (¥Ñ¥¤¥×¤Î¾ì¹ç¤ÏÆó¤ÄɬÍפǤ¢¤ë)¡£ +アプリケーションは、パイプをイベントを通知するためだけに使用している +全ての場面において、パイプの代わりに eventfd ファイルディスクリプタを +使用することができる。 +eventfd ファイルディスクリプタを使う方が、パイプを使う場合に比べて +カーネルでのオーバヘッドは比べるとずっと小さく、ファイルディスクリプタも +一つしか必要としない (パイプの場合は二つ必要である)。 .\"O When used in the kernel, an eventfd .\"O file descriptor can provide a kernel-userspace bridge allowing, .\"O for example, functionalities like KAIO (kernel AIO) .\"O .\" or eventually syslets/threadlets .\"O to signal to a file descriptor that some operation is complete. -¥«¡¼¥Í¥ëÆâ¤Ç»ÈÍѤ¹¤ë¤È¡¢eventfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï -¥«¡¼¥Í¥ë¶õ´Ö¤È¥æ¡¼¥¶¶õ´Ö¤Î¥Ö¥ê¥Ã¥¸µ¡Ç½¤òÄ󶡤¹¤ë¤³¤È¤¬¤Ç¤­¡¢ -Î㤨¤Ð KAIO (kernel AIO) -.\" ¤ä eventually syslets/threadlets -¤Î¤è¤¦¤Êµ¡Ç½¤¬¡¢¤¢¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë²¿¤é¤«¤ÎÁàºî¤¬´°Î»¤·¤¿¤³¤È¤ò -ÄÌÃΤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +カーネル内で使用すると、eventfd ファイルディスクリプタは +カーネル空間とユーザ空間のブリッジ機能を提供することができ、 +例えば KAIO (kernel AIO) +.\" や eventually syslets/threadlets +のような機能が、あるファイルディスクリプタに何らかの操作が完了したことを +通知することができる。 .\"O A key point about an eventfd file descriptor is that it can be .\"O monitored just like any other file descriptor using @@ -457,12 +457,12 @@ eventfd .\"O .BR poll (2), .\"O or .\"O .BR epoll (7). -eventfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î½ÅÍפÊÅÀ¤Ï¡¢ -eventfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ +eventfd ファイルディスクリプタの重要な点は、 +eventfd ファイルディスクリプタが .BR select (2), .BR poll (2), .BR epoll (7) -¤ò»È¤Ã¤Æ¾¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÈÁ´¤¯Æ±Íͤ˴ƻë¤Ç¤­¤ëÅÀ¤Ç¤¢¤ë¡£ +を使って他のファイルディスクリプタと全く同様に監視できる点である。 .\"O This means that an application can simultaneously monitor the .\"O readiness of "traditional" files and the readiness of other .\"O kernel mechanisms that support the eventfd interface. @@ -473,17 +473,17 @@ eventfd .\"O .BR poll (2), .\"O or .\"O .BR epoll (7).) -¤³¤Î¤³¤È¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡Ö½¾Íè¤Î (traditional)¡× ¥Õ¥¡¥¤¥ë¤Î¾õÂÖÊѲ½¤È -eventfd ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò¥µ¥Ý¡¼¥È¤¹¤ë¾¤Î¥«¡¼¥Í¥ëµ¡¹½¤Î¾õÂÖÊѲ½¤òƱ»þ¤Ë´Æ»ë -¤Ç¤­¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë +このことは、アプリケーションは「従来の (traditional)」 ファイルの状態変化と +eventfd インタフェースをサポートする他のカーネル機構の状態変化を同時に監視 +できることを意味する .RB ( eventfd () -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¬¤Ê¤¤»þ¤Ë¤Ï¡¢¤³¤ì¤é¤Î¥«¡¼¥Í¥ëµ¡¹½¤Ï +インタフェースがない時には、これらのカーネル機構は .BR select (2), .BR poll (2), .BR epoll (7) -·Ðͳ¤Ç¿½Å¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤«¤Ã¤¿)¡£ +経由で多重することはできなかった)。 .\"O .SS Underlying Linux system calls -.SS ²¼Áؤˤ¢¤ë Linux ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë +.SS 下層にある Linux のシステムコール .\"O There are two underlying Linux system calls: .\"O .BR eventfd () .\"O and the more recent @@ -494,33 +494,33 @@ eventfd .\"O The latter system call implements the .\"O .I flags .\"O values described above. -²¼Áؤˤ¢¤ë Linux ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÆó¼ïÎढ¤ê¡¢ +下層にある Linux システムコールは二種類あり、 .BR eventfd () -¤È¡¢¤â¤Ã¤È¿·¤·¤¤ +と、もっと新しい .BR eventfd2 () -¤Ç¤¢¤ë¡£ +である。 .BR eventfd () -¤Ï +は .I flags -°ú¤­¿ô¤ò¼ÂÁõ¤·¤Æ¤¤¤Ê¤¤¡£ +引き数を実装していない。 .BR eventfd2 () -¤Ç¤Ï¾åµ­¤ÎÃͤΠ+では上記の値の .I flags -¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +が実装されている。 .\"O The glibc wrapper function will use .\"O .BR eventfd2 () .\"O where it is available. -glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢ +glibc のラッパー関数は、 .BR eventfd2 () -¤¬ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢¤³¤ì¤ò»ÈÍѤ¹¤ë¡£ +が利用可能であれば、これを使用する。 .\"O .SS Additional glibc features -.SS glibc ¤ÎÄɲõ¡Ç½ +.SS glibc の追加機能 .\"O The GNU C library defines an additional type, .\"O and two functions that attempt to abstract some of the details of .\"O reading and writing on an eventfd file descriptor: -GNU C ¥é¥¤¥Ö¥é¥ê¤Ï¡¢eventfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÆɤ߽Ф·¤È½ñ¤­¹þ¤ß¤Ë -¤ò´Ø¤¹¤ë¾ÜºÙ¤Î¤¤¤¯¤Ä¤«Ãê¾Ý²½¤¹¤ë¤¿¤á¤Ë¡¢°ì¤Ä¤Î·¿¤È¡¢Æó¤Ä¤Î´Ø¿ô¤òÄÉ²Ã¤Ç -ÄêµÁ¤·¤Æ¤¤¤ë¡£ +GNU C ライブラリは、eventfd ファイルディスクリプタの読み出しと書き込みに +を関する詳細のいくつか抽象化するために、一つの型と、二つの関数を追加で +定義している。 .in +4n .nf @@ -535,11 +535,11 @@ int eventfd_write(int fd, eventfd_t value); .\"O eventfd file descriptor, .\"O returning 0 if the correct number of bytes was transferred, .\"O or \-1 otherwise. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢eventfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ¹¤ëÆɤ߽Ф·¤È -½ñ¤­¹þ¤ß¤ÎÁàºî¤ò¼Â¹Ô¤·¡¢Àµ¤·¤¤¥Ð¥¤¥È¿ô¤¬Å¾Á÷¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï -0 ¤òÊÖ¤·¡¢¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ +これらの関数は、eventfd ファイルディスクリプタに対する読み出しと +書き込みの操作を実行し、正しいバイト数が転送された場合には +0 を返し、そうでない場合は \-1 を返す。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .PP .\"O The following program creates an eventfd file descriptor .\"O and then forks to create a child process. @@ -548,16 +548,16 @@ int eventfd_write(int fd, eventfd_t value); .\"O command-line arguments to the eventfd file descriptor. .\"O When the parent has finished sleeping, .\"O it reads from the eventfd file descriptor. -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï eventfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÀ¸À®¤·¡¢ -¤½¤Î¸å fork ¤ò¼Â¹Ô¤·¤Æ»Ò¥×¥í¥»¥¹¤òÀ¸À®¤¹¤ë¡£ -¿Æ¥×¥í¥»¥¹¤¬¾¯¤·¤Î´Ö sleep ¤¹¤ë´Ö¤Ë¡¢»Ò¥×¥í¥»¥¹¤Ï -¥×¥í¥°¥é¥à¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿À°¿ô(Îó)¤ò¤½¤ì¤¾¤ì -eventfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë½ñ¤­¹þ¤à¡£ -¿Æ¥×¥í¥»¥¹¤Ï sleep ¤ò´°Î»¤¹¤ë¤È eventfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤é -Æɤ߽Ф·¤ò¹Ô¤¦¡£ +以下のプログラムは eventfd ファイルディスクリプタを生成し、 +その後 fork を実行して子プロセスを生成する。 +親プロセスが少しの間 sleep する間に、子プロセスは +プログラムのコマンドライン引き数で指定された整数(列)をそれぞれ +eventfd ファイルディスクリプタに書き込む。 +親プロセスは sleep を完了すると eventfd ファイルディスクリプタから +読み出しを行う。 .\"O The following shell session shows a sample run of the program: -°Ê²¼¤Ë¼¨¤¹¥·¥§¥ë¥»¥Ã¥·¥ç¥ó¤Ë¤³¤Î¥×¥í¥°¥é¥à¤Î»È¤¤Êý¤ò¼¨¤¹¡£ +以下に示すシェルセッションにこのプログラムの使い方を示す。 .in +4n .nf @@ -573,7 +573,7 @@ Parent read 28 (0x1c) from efd .fi .in .\"O .SS Program source -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -632,7 +632,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR futex (2), .BR pipe (2), .BR poll (2), diff --git a/draft/man2/execve.2 b/draft/man2/execve.2 index 050ab87b..cccd328b 100644 --- a/draft/man2/execve.2 +++ b/draft/man2/execve.2 @@ -51,26 +51,26 @@ .\" .TH EXECVE 2 2010-01-06 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O execve \- execute program -execve \- ¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë +execve \- プログラムを実行する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int execve(const char *" filename ", char *const " argv "[], " .br .BI " char *const " envp []); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR execve () .\"O executes the program pointed to by \fIfilename\fP. .\"O \fIfilename\fP must be either a binary executable, or a script .\"O starting with a line of the form: .BR execve () -¤Ï¡¢\fIfilename\fP ¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¡£ -\fIfilename\fP ¤Ï¡¢¥Ð¥¤¥Ê¥ê¼Â¹Ô·Á¼°¤«¡¢ -°Ê²¼¤Î·Á¼°¤Î¹Ô¤Ç»Ï¤Þ¤ë¥¹¥¯¥ê¥×¥È¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は、\fIfilename\fP によって指定されたプログラムを実行する。 +\fIfilename\fP は、バイナリ実行形式か、 +以下の形式の行で始まるスクリプトでなければならない。 .in +4n .nf @@ -79,7 +79,7 @@ execve \- .in .\"O For details of the latter case, see "Interpreter scripts" below. -¸å¼Ô¤Î¾ÜºÙ¤Ï¡¢¸å¤í¤Î¡Ö¥¤¥ó¥¿¥×¥ê¥¿¡¦¥¹¥¯¥ê¥×¥È¡×¤ÎÀá¤ò»²¾È¤Î¤³¤È¡£ +後者の詳細は、後ろの「インタプリタ・スクリプト」の節を参照のこと。 .\"O \fIargv\fP is an array of argument strings passed to the new program. .\"O \fIenvp\fP is an array of strings, conventionally of the form @@ -87,12 +87,12 @@ execve \- .\"O Both \fIargv\fP and \fIenvp\fP must be terminated by a null pointer. .\"O The argument vector and environment can be accessed by the .\"O called program's main function, when it is defined as: -\fIargv\fP ¤Ï¿·¤·¤¤¥×¥í¥°¥é¥à¤ËÅϤµ¤ì¤ë°ú¤­¿ôʸ»úÎó¤ÎÇÛÎó¤Ç¤¢¤ë¡£ -\fIenvp\fP ¤Ïʸ»úÎó¤ÎÇÛÎó¤Ç¤¢¤ê¡¢ÅÁÅýŪ¤Ë \fBkey=value\fP ¤Î·Á¼°¤ò -¤·¤Æ¤ª¤ê¡¢¿·¤·¤¤¥×¥í¥°¥é¥à¤Î´Ä¶­ÊÑ¿ô¤È¤·¤ÆÅϤµ¤ì¤ë¡£ -\fIargv\fP ¤È \fIenvp\fP ¤Ï¤¤¤º¤ì¤â¤Î NULL ¥Ý¥¤¥ó¥¿¤Ç½ª¤ï¤Ã¤Æ¤¤¤ë -ɬÍפ¬¤¢¤ë¡£°ú¤­¿ôÇÛÎó¤È´Ä¶­ÊÑ¿ô¤Ï¡¢¸Æ¤Ó½Ð¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Î main ´Ø¿ô¤ò -°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¥¢¥¯¥»¥¹²Äǽ¤Ë¤Ê¤ë¡£ +\fIargv\fP は新しいプログラムに渡される引き数文字列の配列である。 +\fIenvp\fP は文字列の配列であり、伝統的に \fBkey=value\fP の形式を +しており、新しいプログラムの環境変数として渡される。 +\fIargv\fP と \fIenvp\fP はいずれもの NULL ポインタで終わっている +必要がある。引き数配列と環境変数は、呼び出されたプログラムの main 関数を +以下のように定義することによってアクセス可能になる。 .in +4n .nf @@ -104,19 +104,19 @@ int main(int argc, char *argv[], char *envp[]) .\"O does not return on success, and the text, data, bss, and .\"O stack of the calling process are overwritten by that of the program .\"O loaded. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR execve () -¤ÏÊÖ¤é¤Ê¤¤¡£ -¤½¤·¤Æ¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î text, data, bss, ¥¹¥¿¥Ã¥¯¤Ï¡¢ -Æɤ߹þ¤Þ¤ì¤¿¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤Æ¾å½ñ¤­¤µ¤ì¤ë¡£ +は返らない。 +そして、呼び出し元のプロセスの text, data, bss, スタックは、 +読み込まれたプログラムによって上書きされる。 .\"O If the current program is being ptraced, a \fBSIGTRAP\fP is sent to it .\"O after a successful .\"O .BR execve (). -¸µ¤Î¥×¥í¥°¥é¥à¤¬ ptrace ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ +元のプログラムが ptrace されている場合、 .BR execve () -¤¬À®¸ù¤·¤¿¸å¤Ë -¤½¤Î¥×¥í¥°¥é¥à¤Ë \fBSIGTRAP\fP ¤¬Á÷¤é¤ì¤ë¡£ +が成功した後に +そのプログラムに \fBSIGTRAP\fP が送られる。 .\"O If the set-user-ID bit is set on the program file pointed to by .\"O \fIfilename\fP, @@ -133,28 +133,28 @@ int main(int argc, char *argv[], char *envp[]) .\"O bit of the program file is set the effective group ID of the calling .\"O process is set to the group of the program file. .I filename -¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥°¥é¥à¥Õ¥¡¥¤¥ë¤Ë set-user-ID ¥Ó¥Ã¥È¤¬ÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢ -¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ +で指定されたプログラムファイルに set-user-ID ビットが設定されており、 +ファイルが存在するファイルシステムが .I nosuid .RB ( mount (2) -¤Î +の .B MS_NOSUID -¥Õ¥é¥°) ¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤ª¤é¤º¡¢ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬ ptrace ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú (effective) ¥æ¡¼¥¶ ID ¤Ï -¥×¥í¥°¥é¥à¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô (owner) ¤ËÊѹ¹¤µ¤ì¤ë¡£ -ƱÍͤˡ¢¥×¥í¥°¥é¥à¥Õ¥¡¥¤¥ë¤Ë set-group-ID ¥Ó¥Ã¥È¤¬ÀßÄꤵ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ÎÍ­¸ú¥°¥ë¡¼¥× ID ¤Ï -¥×¥í¥°¥é¥à¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥×¤ËÊѹ¹¤µ¤ì¤ë¡£ +フラグ) でマウントされておらず、 +呼び出したプロセスが ptrace されていない場合、 +呼び出したプロセスの実効 (effective) ユーザ ID は +プログラムファイルの所有者 (owner) に変更される。 +同様に、プログラムファイルに set-group-ID ビットが設定されていた場合、 +呼び出したプロセスの有効グループ ID は +プログラムファイルのグループに変更される。 .\"O The effective user ID of the process is copied to the saved set-user-ID; .\"O similarly, the effective group ID is copied to the saved set-group-ID. .\"O This copying takes place after any effective ID changes that occur .\"O because of the set-user-ID and set-group-ID permission bits. -¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤ÏÊݸ (saved) set-user-ID ¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¡£ -ƱÍͤˡ¢¼Â¸ú¥°¥ë¡¼¥× ID ¤ÏÊݸ set-group-ID ¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¡£ -¤³¤Î¥³¥Ô¡¼¤Ï¡¢set-user-ID / set-group-ID µö²Ä¥Ó¥Ã¥È¤Ë¤è¤êȯÀ¸¤¹¤ë -¼Â¸ú ID ¤ÎÊѹ¹¸å¤Ë¹Ô¤ï¤ì¤ë¡£ +プロセスの実効ユーザ ID は保存 (saved) set-user-ID にコピーされる。 +同様に、実効グループ ID は保存 set-group-ID にコピーされる。 +このコピーは、set-user-ID / set-group-ID 許可ビットにより発生する +実効 ID の変更後に行われる。 .\"O If the executable is an a.out dynamically linked .\"O binary executable containing @@ -163,11 +163,11 @@ int main(int argc, char *argv[], char *envp[]) .\"O is called at the start of execution to bring .\"O needed shared libraries into memory .\"O and link the executable with them. -¼Â¹Ô¥Õ¥¡¥¤¥ë¤¬Æ°Åª¥ê¥ó¥¯¤µ¤ì¤¿ a.out ¼Â¹Ô·Á¼°¤Ç¡¢¶¦Í­¥é¥¤¥Ö¥é¥ê¤Î -¥¹¥¿¥Ö¤ò´Þ¤à¤â¤Î¤À¤Ã¤¿¾ì¹ç¡¢¼Â¹Ô¤Î³«»Ï»þ¤Ë Linux ¤Î -¥À¥¤¥Ê¥ß¥Ã¥¯¡¦¥ê¥ó¥« +実行ファイルが動的リンクされた a.out 実行形式で、共有ライブラリの +スタブを含むものだった場合、実行の開始時に Linux の +ダイナミック・リンカ .BR ld.so (8) -¤¬¸Æ¤Ó½Ð¤µ¤ì¡¢É¬Íפʶ¦Í­¥é¥¤¥Ö¥é¥ê¤ò¥á¥â¥ê¤ËÆɤ߹þ¤ó¤Ç¥ê¥ó¥¯¤ò¹Ô¤¦¡£ +が呼び出され、必要な共有ライブラリをメモリに読み込んでリンクを行う。 .\"O If the executable is a dynamically linked ELF executable, the .\"O interpreter named in the PT_INTERP segment is used to load the needed @@ -176,98 +176,98 @@ int main(int argc, char *argv[], char *envp[]) .\"O \fI/lib/ld-linux.so.1\fP for binaries linked with the .\"O Linux libc 5, or \fI/lib/ld-linux.so.2\fP for binaries linked with the .\"O glibc 2. -¼Â¹Ô¥Õ¥¡¥¤¥ë¤¬¥À¥¤¥Ê¥ß¥Ã¥¯¡¦¥ê¥ó¥¯¤µ¤ì¤¿ ELF ¼Â¹Ô·Á¼°¤À¤Ã¤¿¾ì¹ç¡¢ -PT_INTERP ¥»¥°¥á¥ó¥È¤Ë»ØÄꤵ¤ì¤¿¥¤¥ó¥¿¥×¥ê¥¿¤¬É¬Í×¤Ê -¶¦Í­¥é¥¤¥Ö¥é¥ê (shared library) ¤òÆɤ߹þ¤à¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ -Ä̾¥¤¥ó¥¿¥×¥ê¥¿¤È¤·¤Æ¤Ï¡¢ -Linux libc 5 ¤ò¥ê¥ó¥¯¤·¤¿¥Ð¥¤¥Ê¥ê¤Î¾ì¹ç¤Ë¤Ï -\fI/lib/ld-linux.so.1\fP ¤¬¡¢ -glibc 2 ¤ò¥ê¥ó¥¯¤·¤¿¥Ð¥¤¥Ê¥ê¤Î¾ì¹ç¤Ë¤Ï -\fI/lib/ld-linux.so.2\fP ¤¬»ÈÍѤµ¤ì¤ë¡£ +実行ファイルがダイナミック・リンクされた ELF 実行形式だった場合、 +PT_INTERP セグメントに指定されたインタプリタが必要な +共有ライブラリ (shared library) を読み込むのに使用される。 +通常、インタプリタとしては、 +Linux libc 5 をリンクしたバイナリの場合には +\fI/lib/ld-linux.so.1\fP が、 +glibc 2 をリンクしたバイナリの場合には +\fI/lib/ld-linux.so.2\fP が使用される。 .\"O All process attributes are preserved during an .\"O .BR execve (), .\"O except the following: -°Ê²¼¤Ë¼¨¤¹°Ê³°¤Î¤¹¤Ù¤Æ¤Î¥×¥í¥»¥¹Â°À­¤Ï +以下に示す以外のすべてのプロセス属性は .BR execve () -¤ÎÁ°¸å¤ÇÊÝ»ý¤µ¤ì¤ë¡£ +の前後で保持される。 .IP * .\"O The dispositions of any signals that are being caught are .\"O reset to the default .\"O .RB ( signal (7)). -Ê᪤µ¤ì¤¿¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡ (disposition) ¤Ï -¥Ç¥Õ¥©¥ë¥ÈÆ°ºî¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë -.RB ( signal (7))¡£ +捕捉されたシグナルの処理方法 (disposition) は +デフォルト動作にリセットされる +.RB ( signal (7))。 .IP * .\"O Any alternate signal stack is not preserved .\"O .RB ( sigaltstack (2)). -ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤Ï¤É¤ì¤âÊÝ»ý¤µ¤ì¤Ê¤¤ -.RB ( sigaltstack (2))¡£ +代替シグナルスタックはどれも保持されない +.RB ( sigaltstack (2))。 .IP * .\"O Memory mappings are not preserved .\"O .RB ( mmap (2)). -¥á¥â¥ê¥Þ¥Ã¥Ô¥ó¥°¤ÏÊÝ»ý¤µ¤ì¤Ê¤¤ -.RB ( mmap (2))¡£ +メモリマッピングは保持されない +.RB ( mmap (2))。 .IP * .\"O Attached System V shared memory segments are detached .\"O .RB ( shmat (2)). -Éղ䵤줿 (attached) System V ¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤ÏʬΥ¤µ¤ì¤ë -.RB ( shmat (2))¡£ +付加された (attached) System V 共有メモリセグメントは分離される +.RB ( shmat (2))。 .IP * .\"O POSIX shared memory regions are unmapped .\"O .RB ( shm_open (3)). -POSIX ¶¦Í­¥á¥â¥êÎΰè¤Ï¥Þ¥Ã¥Ô¥ó¥°¤ò²ò½ü¤µ¤ì¤ë -.RB ( shm_open (3))¡£ +POSIX 共有メモリ領域はマッピングを解除される +.RB ( shm_open (3))。 .IP * .\"O Open POSIX message queue descriptors are closed .\"O .RB ( mq_overview (7)). -¥ª¡¼¥×¥ó¤µ¤ì¤¿ POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¥¯¥í¡¼¥º¤µ¤ì¤ë -.RB ( mq_overview (7))¡£ +オープンされた POSIX メッセージキューディスクリプタはクローズされる +.RB ( mq_overview (7))。 .IP * .\"O Any open POSIX named semaphores are closed .\"O .RB ( sem_overview (7)). -¥ª¡¼¥×¥ó¤µ¤ì¤¿ POSIX ̾Á°ÉÕ¤­¥»¥Þ¥Õ¥©¤Ï¤¤¤º¤ì¤â¥¯¥í¡¼¥º¤µ¤ì¤ë -.RB ( sem_overview (7))¡£ +オープンされた POSIX 名前付きセマフォはいずれもクローズされる +.RB ( sem_overview (7))。 .IP * .\"O POSIX timers are not preserved .\"O .RB ( timer_create (2)). -POSIX ¥¿¥¤¥Þ¤ÏÊÝ»ý¤µ¤ì¤Ê¤¤ -.RB ( timer_create (2))¡£ +POSIX タイマは保持されない +.RB ( timer_create (2))。 .IP * .\"O Any open directory streams are closed .\"O .RB ( opendir (3)). -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤Ï¤¤¤º¤ì¤â¥¯¥í¡¼¥º¤µ¤ì¤ë -.RB ( opendir (3))¡£ +オープンされたディレクトリストリームはいずれもクローズされる +.RB ( opendir (3))。 .IP * .\"O Memory locks are not preserved .\"O .RB ( mlock (2), .\"O .BR mlockall (2)). -¥á¥â¥ê¥í¥Ã¥¯¤ÏÊÝ»ý¤µ¤ì¤Ê¤¤ +メモリロックは保持されない .RB ( mlock (2), -.BR mlockall (2))¡£ +.BR mlockall (2))。 .IP * .\"O Exit handlers are not preserved .\"O .RB ( atexit (3), .\"O .BR on_exit (3)). -½ªÎ» (exit) ¥Ï¥ó¥É¥é¤ÏÊÝ»ý¤µ¤ì¤Ê¤¤ +終了 (exit) ハンドラは保持されない .RB ( atexit (3), -.BR on_exit (3))¡£ +.BR on_exit (3))。 .IP * .\"O The floating-point environment is reset to the default (see .\"O .BR fenv (3)). -ÉâÆ°¾®¿ôÅÀ´ØÏ¢¤Î´Ä¶­¤Ï¥Ç¥Õ¥©¥ë¥È¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë +浮動小数点関連の環境はデフォルトにリセットされる .RB ( fenv (3) -»²¾È)¡£ +参照)。 .PP .\"O The process attributes in the preceding list are all specified .\"O in POSIX.1-2001. .\"O The following Linux-specific process attributes are also .\"O not preserved during an .\"O .BR execve (): -¾åµ­¤Î¥ê¥¹¥È¤Î¥×¥í¥»¥¹Â°À­¤Ï¤¤¤º¤ì¤â POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -°Ê²¼¤Ë¼¨¤¹ Linux ¸ÇÍ­¤Î¥×¥í¥»¥¹Â°À­¤â +上記のリストのプロセス属性はいずれも POSIX.1-2001 で規定されている。 +以下に示す Linux 固有のプロセス属性も .BR execve () -¤ÎÁ°¸å¤ÇÊÝ»ý¤µ¤ì¤Ê¤¤¡£ +の前後で保持されない。 .IP * 3 .\"O The .\"O .BR prctl (2) @@ -275,20 +275,20 @@ POSIX .\"O flag is set, .\"O unless a set-user-ID or set-group ID program is being executed, .\"O in which case it is cleared. -set-user-ID ¤« set-group-ID ¤µ¤ì¤¿¥×¥í¥°¥é¥à¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ +set-user-ID か set-group-ID されたプログラムが実行されている場合、 .BR prctl (2) -¤Î +の .B PR_SET_DUMPABLE -¥Õ¥é¥°¤Ï¥¯¥ê¥¢¤µ¤ì¤ë¡£¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¤³¤Î¥Õ¥é¥°¤Ï¥»¥Ã¥È¤µ¤ì¤ë¡£ +フラグはクリアされる。それ以外の場合、このフラグはセットされる。 .IP * .\"O The .\"O .BR prctl (2) .\"O .B PR_SET_KEEPCAPS .\"O flag is cleared. .BR prctl (2) -¤Î +の .B PR_SET_KEEPCAPS -¥Õ¥é¥°¤Ï¥¯¥ê¥¢¤µ¤ì¤ë¡£ +フラグはクリアされる。 .IP * .\"O The process name, as set by .\"O .BR prctl (2) @@ -296,39 +296,39 @@ set-user-ID .\"O (and displayed by .\"O .IR "ps\ \-o comm" ), .\"O is reset to the name of the new executable file. -¥×¥í¥»¥¹Ì¾¤Ï¿·¤·¤¤¼Â¹Ô¥Õ¥¡¥¤¥ë¤Î̾Á°¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë¡£ -¥×¥í¥»¥¹Ì¾¤Ï +プロセス名は新しい実行ファイルの名前にリセットされる。 +プロセス名は .BR prctl (2) -¤Î +の .B PR_SET_NAME -¤ÇÀßÄê¤Ç¤­¡¢ +で設定でき、 .I "ps\ \-o comm" -¤Çɽ¼¨¤Ç¤­¤ë¡£ +で表示できる。 .IP * .\"O The termination signal is reset to .\"O .B SIGCHLD .\"O (see .\"O .BR clone (2)). -½ªÎ»¥·¥°¥Ê¥ë (termination signal) ¤Ï +終了シグナル (termination signal) は .B SIGCHLD -¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë +にリセットされる .RB ( clone (2) -»²¾È)¡£ +参照)。 .PP .\"O Note the following further points: -°Ê²¼¤ÎÅÀ¤Ë¤Ä¤¤¤Æ¤âÃí°Õ¤¹¤ë¤³¤È: +以下の点についても注意すること: .IP * 3 .\"O All threads other than the calling thread are destroyed during an .\"O .BR execve (). .\"O Mutexes, condition variables, and other pthreads objects are not preserved. -¸Æ¤Ó½Ð¤·¸µ¥¹¥ì¥Ã¥É°Ê³°¤ÎÁ´¤Æ¤Î¥¹¥ì¥Ã¥É¤Ï +呼び出し元スレッド以外の全てのスレッドは .BR execve () -Ãæ¤ËÇË´þ¤µ¤ì¤ë¡£ -mutex¡¢¾ò·ïÊÑ¿ô¡¢¤½¤Î¾¤Î pthread ¥ª¥Ö¥¸¥§¥¯¥È¤ÏÊÝ»ý¤µ¤ì¤Ê¤¤¡£ +中に破棄される。 +mutex、条件変数、その他の pthread オブジェクトは保持されない。 .IP * .\"O The equivalent of \fIsetlocale(LC_ALL, "C")\fP .\"O is executed at program start-up. -\fIsetlocale(LC_ALL, "C")\fP ÁêÅö¤Î½èÍý¤¬¥×¥í¥°¥é¥à³«»Ï»þ¤Ë¼Â¹Ô¤µ¤ì¤ë¡£ +\fIsetlocale(LC_ALL, "C")\fP 相当の処理がプログラム開始時に実行される。 .IP * .\"O POSIX.1-2001 specifies that the dispositions of any signals that .\"O are ignored or set to the default are left unchanged. @@ -337,30 +337,30 @@ mutex .\"O is being ignored, .\"O then an implementation may leave the disposition unchanged or .\"O reset it to the default; Linux does the former. -POSIX.1-2001 ¤Ï¡¢Æ°ºî¤¬Ìµ»ë¤«¥Ç¥Õ¥©¥ë¥È¤ËÀßÄꤵ¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¥·¥°¥Ê¥ë -¤Î½èÍýÊýË¡¤ÏÊѹ¹¤»¤º¤½¤Î¤Þ¤Þ¤Ë¤¹¤ë¡¢¤Èµ¬Äꤷ¤Æ¤¤¤ë¡£ -⤷¡¢POSIX.1-2001 ¤Ë¤Ï°ì¤ÄÎã³°¤¬¤¢¤ê¡¢ +POSIX.1-2001 は、動作が無視かデフォルトに設定されている全てのシグナル +の処理方法は変更せずそのままにする、と規定している。 +但し、POSIX.1-2001 には一つ例外があり、 .B SIGCHLD -¤¬Ìµ»ë¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -¤½¤Î½èÍýÊýË¡¤òÊѹ¹¤»¤º¤Ë¤½¤Î¤Þ¤Þ¤Ë¤¹¤ë¤«¡¢¥Ç¥Õ¥©¥ë¥ÈÆ°ºî¤Ë¥ê¥»¥Ã¥È¤¹¤ë¤«¤Ï -¼ÂÁõ°Í¸¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ -Linux ¤Ç¤ÏÁ°¼Ô (Êѹ¹¤·¤Ê¤¤) ¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ +が無視になっている場合、 +その処理方法を変更せずにそのままにするか、デフォルト動作にリセットするかは +実装依存となっている。 +Linux では前者 (変更しない) となっている。 .IP * .\"O Any outstanding asynchronous I/O operations are canceled .\"O .RB ( aio_read (3), .\"O .BR aio_write (3)). -´°Î»¤·¤Æ¤¤¤Ê¤¤ÈóƱ´ü I/O Áàºî¤Ï¥­¥ã¥ó¥»¥ë¤µ¤ì¤ë +完了していない非同期 I/O 操作はキャンセルされる .RB ( aio_read (3), -.BR aio_write (3))¡£ +.BR aio_write (3))。 .IP * .\"O For the handling of capabilities during .\"O .BR execve (), .\"O see .\"O .BR capabilities (7). .BR execve (2) -»þ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î°·¤¤¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +時のケーパビリティの扱いについては、 .BR capabilities (7) -¤ò»²¾È¡£ +を参照。 .IP * .\"O By default, file descriptors remain open across an .\"O .BR execve (). @@ -374,17 +374,17 @@ Linux .\"O See .\"O .BR fcntl (2) .\"O for details.) -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï +デフォルトでは、ファイルディスクリプタは .BR execve () -¤ò¹Ô¤Ã¤¿¸å¤Ç¤â¥ª¡¼¥×¥ó¤µ¤ì¤¿¤Þ¤Þ¤Ç¤¢¤ë¡£ -close-on-exec ¤Î°õ¤¬ÉÕ¤¤¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¥¯¥í¡¼¥º¤µ¤ì¤ë¡£ +を行った後でもオープンされたままである。 +close-on-exec の印が付いているファイルディスクリプタはクローズされる。 .BR fcntl (2) -¤Î +の .B FD_CLOEXEC -¤ÎÀâÌÀ¤ò»²¾È¡£ -(¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥¯¥í¡¼¥º¤µ¤ì¤ë¤È¡¢¤³¤Î¥×¥í¥»¥¹¤¬ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂбþ¤¹¤ë¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ³ÍÆÀ¤·¤Æ¤¤¤¿ -¥ì¥³¡¼¥É¤Î¥í¥Ã¥¯¤¬Á´¤Æ²òÊü¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£) +の説明を参照。 +(ファイルディスクリプタがクローズされると、このプロセスが +ファイルディスクリプタに対応するファイルに対して獲得していた +レコードのロックが全て解放されることになる。) .\"O POSIX.1-2001 says that if file descriptors 0, 1, and 2 would .\"O otherwise be closed after a successful .\"O .BR execve (), @@ -396,29 +396,29 @@ close-on-exec .\"O can assume that these three file descriptors will remain .\"O closed across an .\"O .BR execve (). -POSIX.1-2001 ¤Ç¤Ï¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ 0, 1, 2 ¤¬ +POSIX.1-2001 では、 +ファイルディスクリプタ 0, 1, 2 が .BR execve () -À®¸ù¸å¤Ë¤É¤³¤«¤Ç¥¯¥í¡¼¥º¤µ¤ì¡¢¤«¤Ä -¼Â¹Ô¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ë set-user_ID ¤« set-group_ID ¤Îµö²Ä¥Ó¥Ã¥È¤¬ -¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Æ¥×¥í¥»¥¹¤¬Æø¢¤ò³ÍÆÀ¤·¤¿¾ì¹ç¡¢ -¥·¥¹¥Æ¥à¤Ï²¿¤é¤«¤Î¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ëºÝ¤Ë -¤³¤ì¤é¤ÎÈÖ¹æ¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤É¤ì¤«¤ò»È¤¦¤³¤È¤¬¤¢¤ë¡¢ -¤È¤µ¤ì¤Æ¤¤¤ë¡£ -¸¶Â§¤È¤·¤Æ¡¢°Ü¿¢À­¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ -Æø¢¤Î̵ͭ¤Ë´Ø¤ï¤é¤º¡¢ +成功後にどこかでクローズされ、かつ +実行されるファイルに set-user_ID か set-group_ID の許可ビットが +セットされていてプロセスが特権を獲得した場合、 +システムは何らかのファイルをオープンする際に +これらの番号のディスクリプタのどれかを使うことがある、 +とされている。 +原則として、移植性が必要なプログラムでは、 +特権の有無に関わらず、 .BR execve () -¤ÎÁ°¸å¤Ç¤³¤ì¤é 3¤Ä¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥¯¥í¡¼¥º¤µ¤ì¤¿¤Þ¤Þ¤Ç -¤¢¤ë¤³¤È¤òÁ°Äó¤Ë¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +の前後でこれら 3つのファイルディスクリプタがクローズされたままで +あることを前提にすることはできない。 .\" On Linux it appears that these file descriptors are .\" always open after an execve(), and it looks like .\" Solaris 8 and FreeBSD 6.1 are the same. -- mtk, 30 Apr 2007 .\"O .SS Interpreter scripts -.SS ¥¤¥ó¥¿¥×¥ê¥¿¡¦¥¹¥¯¥ê¥×¥È +.SS インタプリタ・スクリプト .\"O An interpreter script is a text file that has execute .\"O permission enabled and whose first line is of the form: -¥¤¥ó¥¿¥×¥ê¥¿¡¦¥¹¥¯¥ê¥×¥È¤È¤Ï¡¢¼Â¹Ôµö²Ä¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Æ¡¢ -ºÇ½é¤Î¹Ô¤¬°Ê²¼¤Î·Á¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Î¤³¤È¤Ç¤¢¤ë¡£ +インタプリタ・スクリプトとは、実行許可が有効になっていて、 +最初の行が以下の形になっているテキストファイルのことである。 .in +4n .nf @@ -431,8 +431,8 @@ POSIX.1-2001 .\"O must be a valid pathname for an .\"O executable which is not itself a script. .I interpreter -¤ÏÍ­¸ú¤Ê¼Â¹Ô¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹Ì¾¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -¤½¤ì¼«¿È¤¬¥¹¥¯¥ê¥×¥È¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +は有効な実行ファイルのパス名でなければならず、 +それ自身がスクリプトであってはならない。 .\"O If the .\"O .I filename .\"O argument of @@ -441,11 +441,11 @@ POSIX.1-2001 .\"O .I interpreter .\"O will be invoked with the following arguments: .BR execve () -¤Î +の .I filename -°ú¤­¿ô¤¬¥¤¥ó¥¿¥×¥ê¥¿¥¹¥¯¥ê¥×¥È¤ò»ØÄꤷ¤Æ¤¤¤ë¾ì¹ç¡¢ +引き数がインタプリタスクリプトを指定している場合、 .I interpreter -¤Ï°Ê²¼¤Î°ú¤­¿ô¤Çµ¯Æ°¤µ¤ì¤ë¡£ +は以下の引き数で起動される。 .in +4n .nf @@ -460,23 +460,23 @@ POSIX.1-2001 .\"O argument of .\"O .BR execve (). .I arg... -¤Ï +は .BR execve () -¤Î +の .I argv -°ú¤­¿ô¤¬»Ø¤¹¥ï¡¼¥ÉÎó¤Ç¤¢¤ë¡£ +引き数が指すワード列である。 .\"O For portable use, .\"O .I optional-arg .\"O should either be absent, or be specified as a single word (i.e., it .\"O should not contain white space); see NOTES below. -°Ü¿¢À­¤ò»ý¤¿¤¹¤Ë¤Ï¡¢ +移植性を持たすには、 .I optional-arg -¤Ï¶õ¤« 1¥ï¡¼¥É¤À¤±¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë -(¤Ä¤Þ¤ê¡¢¥Û¥ï¥¤¥È¡¦¥¹¥Ú¡¼¥¹¤ò´Þ¤á¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤)¡£ -²¼µ­¤Î¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¡£ +は空か 1ワードだけにすべきである +(つまり、ホワイト・スペースを含めるべきではない)。 +下記の「注意」の節を参照。 .\"O .SS "Limits on size of arguments and environment" -.SS "°ú¤­¿ô¤È´Ä¶­ÊÑ¿ô¤Î¹ç·×¥µ¥¤¥º¤Î¾å¸Â" +.SS "引き数と環境変数の合計サイズの上限" .\"O Most UNIX implementations impose some limit on the total size .\"O of the command-line argument .\"O .RI ( argv ) @@ -489,21 +489,21 @@ POSIX.1-2001 .\"O .I .\"O or available at run time using the call .\"O .IR "sysconf(_SC_ARG_MAX)" ). -¤Û¤È¤ó¤É¤Î UNIX ¤Î¼ÂÁõ¤Ï¡¢¿·¤·¤¤¥×¥í¥°¥é¥à¤ËÅϤ¹¤³¤È¤¬¤Ç¤­¤ë -¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô +ほとんどの UNIX の実装は、新しいプログラムに渡すことができる +コマンドライン引き数 .RI ( argv ) -¤È´Ä¶­ÊÑ¿ô +と環境変数 .RI ( envp ) -¤Îʸ»úÎ󷲤ιç·×¥µ¥¤¥º¤Ë²¿¤é¤«¤Î¾å¸Â¤òÀߤ±¤Æ¤¤¤ë¡£ -POSIX.1 ¤Ï¡¢ +の文字列群の合計サイズに何らかの上限を設けている。 +POSIX.1 は、 .B ARG_MAX -Äê¿ô¤ò»È¤Ã¤Æ¤³¤Î¾å¸Â¤ò·è¤á¤ë¼ÂÁõ¤òǧ¤á¤Æ¤¤¤ë +定数を使ってこの上限を決める実装を認めている .RB ( ARG_MAX -¤Ï +は .I -¤ÇÄêµÁ¤µ¤ì¤ë¤«¡¢¼Â¹Ô»þ¤Ë +で定義されるか、実行時に .I "sysconf(_SC_ARG_MAX)" -¤Î¸Æ¤Ó½Ð¤·¤ÇÆþ¼ê¤Ç¤­¤ë¤«¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë)¡£ +の呼び出しで入手できるかのいずれかである)。 .\"O On Linux prior to kernel 2.6.23, the memory used to store the .\"O environment and argument strings was limited to 32 pages @@ -511,13 +511,13 @@ POSIX.1 .\"O .BR MAX_ARG_PAGES ). .\"O On architectures with a 4-kB page size, .\"O this yields a maximum size of 128 kB. -¥«¡¼¥Í¥ë 2.6.23 ¤è¤êÁ°¤Î Linux ¤Ç¤Ï¡¢´Ä¶­ÊÑ¿ô¤È°ú¤­¿ô¤Îʸ»úÎ󷲤ò -³ÊǼ¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¥á¥â¥ê¤Ï 32 ¥Ú¡¼¥¸¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤¿ -(32 ¥Ú¡¼¥¸¤È¤¤¤¦¤Î¤Ï¥«¡¼¥Í¥ëÄê¿ô +カーネル 2.6.23 より前の Linux では、環境変数と引き数の文字列群を +格納するのに使用されるメモリは 32 ページに制限されていた +(32 ページというのはカーネル定数 .B MAX_ARG_PAGES -¤ÇÄêµÁ¤µ¤ì¤ë)¡£¤·¤¿¤¬¤Ã¤Æ¡¢ -¥Ú¡¼¥¸¥µ¥¤¥º¤¬ 4 kB ¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢ -ºÇÂ祵¥¤¥º¤Ï 128 kB ¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ë¡£ +で定義される)。したがって、 +ページサイズが 4 kB のアーキテクチャでは、 +最大サイズは 128 kB ということになる。 .\"O On kernel 2.6.23 and later, most architectures support a size limit .\"O derived from the soft @@ -527,18 +527,18 @@ POSIX.1 .\"O that is in force at the time of the .\"O .BR execve () .\"O call. -¥«¡¼¥Í¥ë 2.6.23 °Ê¹ß¤Ç¤Ï¡¢¤Û¤È¤ó¤É¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤ª¤¤¤Æ¡¢ +カーネル 2.6.23 以降では、ほとんどのアーキテクチャにおいて、 .BR execve () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿»þÅÀ¤ÇŬÍѤµ¤ì¤Æ¤¤¤ë¥ê¥½¡¼¥¹¤Î¥½¥Õ¥È¾å¸Â +が呼び出された時点で適用されているリソースのソフト上限 .B RLIMIT_STACK -¤Ë´ð¤Å¤¤¤¿¥µ¥¤¥º¾å¸Â¤¬»È¤ï¤ì¤ë +に基づいたサイズ上限が使われる .\"O (Architectures with no memory management unit are excepted: .\"O they maintain the limit that was in effect before kernel 2.6.23.) .\"O This change allows programs to have a much larger .\"O argument and/or environment list. -(¥á¥â¥ê´ÉÍý¥æ¥Ë¥Ã¥È (MMU) ¤ò»ý¤¿¤Ê¤¤¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ï¾åµ­¤ÎÊѹ¹¤Î -Îã³°¤Ç¤¢¤ê¡¢¤³¤ì¤é¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¥«¡¼¥Í¥ë 2.6.23 ¤è¤êÁ°¤È -Ʊ¤¸¾å¸Â¤¬¤½¤Î¤Þ¤Þ»ÈÍѤµ¤ì¤ë)¡£ +(メモリ管理ユニット (MMU) を持たないアーキテクチャは上記の変更の +例外であり、これらのアーキテクチャではカーネル 2.6.23 より前と +同じ上限がそのまま使用される)。 .\" For some background on the changes to ARG_MAX in kernels 2.6.23 and .\" 2.6.25, see: .\" http://sourceware.org/bugzilla/show_bug.cgi?id=5786 @@ -549,10 +549,10 @@ POSIX.1 .\"O stack size. .\"O (Imposing the 1/4-limit .\"O ensures that the new program always has some stack space.) -¤³¤ì¤é¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢¹ç·×¥µ¥¤¥º¤Ïµö²Ä¤µ¤ì¤¿¥¹¥¿¥Ã¥¯¥µ¥¤¥º¤Î -1/4 ¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë -(1/4 ¤Î¾å¸Â¤òÀߤ±¤Æ¤¤¤ë¤Î¤Ï¡¢¿·¤·¤¤¥×¥í¥°¥é¥à¤¬É¬¤º¤¢¤ëÄøÅ٤Π-¥¹¥¿¥Ã¥¯¶õ´Ö¤ò»ý¤Æ¤ë¤³¤È¤òÊݾڤ¹¤ë¤¿¤á¤Ç¤¢¤ë)¡£ +これらのアーキテクチャでは、合計サイズは許可されたスタックサイズの +1/4 に制限されている +(1/4 の上限を設けているのは、新しいプログラムが必ずある程度の +スタック空間を持てることを保証するためである)。 .\" Ollie: That doesn't include the lists of pointers, though, .\" so the actual usage is a bit higher (1 pointer per argument). .\"O Since Linux 2.6.25, @@ -563,33 +563,33 @@ POSIX.1 .\"O applications are guaranteed to have at least as much argument and .\"O environment space as was provided by Linux 2.6.23 and earlier. .\"O (This guarantee was not provided in Linux 2.6.23 and 2.6.24.) -Linux 2.6.25 °Ê¹ß¤Ç¤Ï¡¢¥«¡¼¥Í¥ë¤Ï¤³¤Î¥µ¥¤¥º¾å¸Â¤Ë 32 ¥Ú¡¼¥¸¤Î²¼¸Â¤ò -Àߤ±¤Æ¤¤¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢ +Linux 2.6.25 以降では、カーネルはこのサイズ上限に 32 ページの下限を +設けている。これにより、 .B RLIMIT_STACK -¤¬Èó¾ï¤Ë¾®¤µ¤¯ÀßÄꤵ¤ì¤¿¾ì¹ç¤Ç¤â¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¾¯¤Ê¤¯¤È¤â -Linux 2.6.23 °ÊÁ°¤ÇÄ󶡤µ¤ì¤Æ¤¤¤¿¤Î¤ÈƱ¤¸Â礭¤µ¤Î°ú¤­¿ô¤È´Ä¶­ÊÑ¿ô¤Î¶õ´Ö -¤ÈƱ¤¸¤À¤±¤Ï³ÎÊݤǤ­¤ë¤³¤È¤¬Êݾڤµ¤ì¤Æ¤¤¤ë -(¤³¤ÎºÇÄã¸Â¤ÎÊÝ¾Ú¤Ï Linux 2.6.23 ¤È 2.6.24 ¤Ç¤ÏÄ󶡤µ¤ì¤Æ¤¤¤Ê¤¤)¡£ +が非常に小さく設定された場合でも、アプリケーションが少なくとも +Linux 2.6.23 以前で提供されていたのと同じ大きさの引き数と環境変数の空間 +と同じだけは確保できることが保証されている +(この最低限の保証は Linux 2.6.23 と 2.6.24 では提供されていない)。 .\"O Additionally, the limit per string is 32 pages (the kernel constant .\"O .BR MAX_ARG_STRLEN ), .\"O and the maximum number of strings is 0x7FFFFFFF. -¤Þ¤¿¡¢³Æʸ»úÎó¤Î¾å¸Â¤Ï 32 ¥Ú¡¼¥¸ (¥«¡¼¥Í¥ëÄê¿ô +また、各文字列の上限は 32 ページ (カーネル定数 .BR MAX_ARG_STRLEN ) -¤Ç¡¢Ê¸»úÎó¿ô¤ÎºÇÂçÃÍ¤Ï 0x7FFFFFFF ¤Ç¤¢¤ë¡£ +で、文字列数の最大値は 0x7FFFFFFF である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR execve () .\"O does not return, on error \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤¹¤ë¤È +成功すると .BR execve () -¤ÏÊÖ¤é¤Ê¤¤¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +は返らない。エラーの場合は \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B E2BIG .\"O The total number of bytes in the environment @@ -597,11 +597,11 @@ Linux 2.6.23 .\"O and argument list .\"O .RI ( argv ) .\"O is too large. -´Ä¶­ÊÑ¿ô +環境変数 .RI ( envp ) -¤È°ú¤­¿ô¥ê¥¹¥È +と引き数リスト .RI ( argv ) -¤Î¹ç·×¥Ð¥¤¥È¿ô¤¬Â礭²á¤®¤ë¡£ +の合計バイト数が大き過ぎる。 .TP .B EACCES .\"O Search permission is denied on a component of the path prefix of @@ -610,122 +610,122 @@ Linux 2.6.23 .\"O (See also .\"O .BR path_resolution (7).) .I filename -¤ä¥¹¥¯¥ê¥×¥È¥¤¥ó¥¿¥×¥ê¥¿Ì¾¤Î¹½À®Í×ÁǤ˸¡º÷µö²Ä (search permission) -¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤ +やスクリプトインタプリタ名の構成要素に検索許可 (search permission) +が与えられていない .RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È)¡£ +も参照すること)。 .TP .B EACCES .\"O The file or a script interpreter is not a regular file. -¥Õ¥¡¥¤¥ë¤â¤·¤¯¤Ï¥¹¥¯¥ê¥×¥È¤Î¥¤¥ó¥¿¥×¥ê¥¿¤¬Ä̾ï¥Õ¥¡¥¤¥ë (regular file) -¤Ç¤Ê¤¤¡£ +ファイルもしくはスクリプトのインタプリタが通常ファイル (regular file) +でない。 .TP .B EACCES .\"O Execute permission is denied for the file or a script or ELF interpreter. -¥Õ¥¡¥¤¥ë¤ä¥¹¥¯¥ê¥×¥È¤ä ELF ¥¤¥ó¥¿¥×¥ê¥¿¤Ë -¼Â¹Ôµö²Ä (execute permission) ¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤¡£ +ファイルやスクリプトや ELF インタプリタに +実行許可 (execute permission) が与えられていない。 .TP .B EACCES .\"O The file system is mounted .\"O .IR noexec . -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤¬ +ファイル・システムが .I noexec -¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¡£ +でマウントされている。 .TP .B EFAULT .\"O .I filename .\"O points outside your accessible address space. .I filename -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がアクセス可能なアドレス空間の外を指している。 .TP .B EINVAL .\"O An ELF executable had more than one PT_INTERP segment (i.e., tried to .\"O name more than one interpreter). -ELF ¼Â¹Ô·Á¼°¤ÇÊ£¿ô¤Î PT_INTERP ¥»¥°¥á¥ó¥È¤¬Â¸ºß¤¹¤ë¡£ -(¤¹¤Ê¤ï¤ÁÊ£¿ô¤Î¥¤¥ó¥¿¥×¥ê¥¿¤ò»ØÄꤷ¤¿¡£) +ELF 実行形式で複数の PT_INTERP セグメントが存在する。 +(すなわち複数のインタプリタを指定した。) .TP .B EIO .\"O An I/O error occurred. -I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +I/O エラーが発生した。 .TP .B EISDIR .\"O An ELF interpreter was a directory. -ELF ¥¤¥ó¥¿¥×¥ê¥¿¤¬¥Ç¥£¥ì¥¯¥È¥ê¤À¤Ã¤¿¡£ +ELF インタプリタがディレクトリだった。 .TP .B ELIBBAD .\"O An ELF interpreter was not in a recognized format. -ELF ¥¤¥ó¥¿¥×¥ê¥¿¤¬Íý²ò¤Ç¤­¤ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤Ê¤«¤Ã¤¿¡£ +ELF インタプリタが理解できるフォーマットでなかった。 .TP .B ELOOP .\"O Too many symbolic links were encountered in resolving .\"O .I filename .\"O or the name of a script or ELF interpreter. .I filename -¤ä¥¹¥¯¥ê¥×¥È¤ä ELF ¤Î¥¤¥ó¥¿¥×¥ê¥¿¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿ -¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ +やスクリプトや ELF のインタプリタを解決する際に遭遇した +シンボリック・リンクが多過ぎる。 .TP .B EMFILE .\"O The process has the maximum number of files open. -¤½¤Î¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¿ô¤Î¾å¸Â¤Þ¤Ç´û¤Ë¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¡£ +そのプロセスがオープンできるファイル数の上限まで既にオープンしている。 .TP .B ENAMETOOLONG .\"O .I filename .\"O is too long. .I filename -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENFILE .\"O The system limit on the total number of open files has been reached. -¤½¤Î¥·¥¹¥Æ¥à¤Ç¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¿ô¤ÎÀ©¸Â¤Ë㤷¤¿¡£ +そのシステムでオープンできるファイル数の制限に達した。 .TP .B ENOENT .\"O The file .\"O .I filename .\"O or a script or ELF interpreter does not exist, or a shared library .\"O needed for file or interpreter cannot be found. -¥Õ¥¡¥¤¥ë +ファイル .I filename -¤«¥¹¥¯¥ê¥×¥È¤ä ELF ¤Î¥¤¥ó¥¿¥×¥ê¥¿¤¬Â¸ºß¤·¤Ê¤¤¡£ +かスクリプトや ELF のインタプリタが存在しない。 .TP .B ENOEXEC .\"O An executable is not in a recognized format, is for the wrong .\"O architecture, or has some other format error that means it cannot be .\"O executed. -¼Â¹Ô¥Õ¥¡¥¤¥ë¤¬Íý²ò¤Ç¤­¤Ê¤¤·Á¼°¤Ç¤¢¤ë¤«¡¢°ã¤¦¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î¤â¤Î¤«¡¢ -¤½¤Î¾¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¡¦¥¨¥é¡¼¤Ë¤è¤ê¼Â¹Ô¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +実行ファイルが理解できない形式であるか、違うアーキテクチャのものか、 +その他のフォーマット・エラーにより実行ができなかった。 .TP .B ENOMEM .\"O Insufficient kernel memory was available. -¥«¡¼¥Í¥ë¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +カーネルに十分なメモリがない。 .TP .B ENOTDIR .\"O A component of the path prefix of .\"O .I filename .\"O or a script or ELF interpreter is not a directory. .I filename -¤ä¥¹¥¯¥ê¥×¥È¤ä ELF ¤Î¥¤¥ó¥¿¥×¥ê¥¿¤Î¹½À®Í×ÁǤ¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +やスクリプトや ELF のインタプリタの構成要素がディレクトリでない。 .TP .B EPERM .\"O The file system is mounted .\"O .IR nosuid , .\"O the user is not the superuser, .\"O and the file has the set-user-ID or set-group-ID bit set. -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤¬ +ファイル・システムが .I nosuid -¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¡¢¥æ¡¼¥¶¤¬¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ç¤Ê¤¯¡¢ -¥Õ¥¡¥¤¥ë¤Ë set-user-ID ¤¢¤ë¤¤¤Ï set-group-ID ¥Ó¥Ã¥È¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¡£ +でマウントされ、ユーザがスーパーユーザでなく、 +ファイルに set-user-ID あるいは set-group-ID ビットが設定されている。 .TP .B EPERM .\"O The process is being traced, the user is not the superuser and the .\"O file has the set-user-ID or set-group-ID bit set. -¥×¥í¥»¥¹¤¬¥È¥ì¡¼¥¹¤µ¤ì¡¢¥æ¡¼¥¶¤¬¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ç¤Ê¤¯¡¢ -¥Õ¥¡¥¤¥ë¤Ë set-user-ID ¤¢¤ë¤¤¤Ï set-group-ID ¥Ó¥Ã¥È¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¡£ +プロセスがトレースされ、ユーザがスーパーユーザでなく、 +ファイルに set-user-ID あるいは set-group-ID ビットが設定されている。 .TP .B ETXTBSY .\"O Executable was open for writing by one or more processes. -¼Â¹Ô¥Õ¥¡¥¤¥ë¤ò½ñ¤­¹þ¤ßÍѤ˥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤¬¤¢¤ë¡£ +実行ファイルを書き込み用にオープンしているプロセスがある。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O SVr4, 4.3BSD, POSIX.1-2001. .\"O POSIX.1-2001 does not document the #! behavior .\"O but is otherwise compatible. @@ -734,22 +734,22 @@ ELF .\"O .\" document ETXTBSY, EPERM, EFAULT, ELOOP, EIO, ENFILE, EMFILE, EINVAL, .\"O .\" EISDIR or ELIBBAD error conditions. SVr4, 4.3BSD, POSIX.1-2001. -POSIX.1-2001 ¤Ë¤Ï #! Æ°ºî¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤Ï¤Ê¤¤¤¬¡¢ -¾¤Ï¸ß´¹À­¤¬¤¢¤ë¡£ -.\" SVr4 ¤Ë¤Ï¾¤Ë EAGAIN, EINTR, ELIBACC, ENOLINK, EMULTIHOP -.\" ¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ -.\" POSIX ¤Ë¤Ï ETXTBSY, EPERM, EFAULT, ELOOP, EIO, ENFILE, EMFILE, -.\" EINVAL, EISDIR, ELIBBAD ¥¨¥é¡¼¾õÂ֤ˤĤ¤¤Æ¤Îµ­½Ò¤Ï¤Ê¤¤¡£ +POSIX.1-2001 には #! 動作についての記述はないが、 +他は互換性がある。 +.\" SVr4 には他に EAGAIN, EINTR, ELIBACC, ENOLINK, EMULTIHOP +.\" についての記述がある。 +.\" POSIX には ETXTBSY, EPERM, EFAULT, ELOOP, EIO, ENFILE, EMFILE, +.\" EINVAL, EISDIR, ELIBBAD エラー状態についての記述はない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Set-user-ID and set-group-ID processes can not be .\"O .BR ptrace (2)d. -set-user-id ¥×¥í¥»¥¹¤È set-group-ID ¥×¥í¥»¥¹¤Ï +set-user-id プロセスと set-group-ID プロセスは .BR ptrace (2) -¤Ç¤­¤Ê¤¤¡£ +できない。 .\"O Linux ignores the set-user-ID and set-group-ID bits on scripts. -Linux ¤Ï¥¹¥¯¥ê¥×¥È¤Î set-user-ID ¤È set-group-ID ¥Ó¥Ã¥È¤ò̵»ë¤¹¤ë¡£ +Linux はスクリプトの set-user-ID と set-group-ID ビットを無視する。 .\"O The result of mounting a file system .\"O .I nosuid @@ -761,22 +761,22 @@ Linux .\"O some will just ignore the set-user-ID and set-group-ID bits and .\"O .BR exec () .\"O successfully. -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò +ファイルシステムを .I nosuid -¤Ç¥Þ¥¦¥ó¥È¤·¤¿¾ì¹ç¤Ë set-user-ID/set-group-ID ¤Î¼Â¹Ô¥Õ¥¡¥¤¥ë¤ò -¤É¤ÎÍͤ˰·¤¦¤«¤Ï¡¢Linux ¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë: -¤¢¤ë¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢¤¹¤Ç¤ËɬÍפʸ¢¸Â¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¤ò½ü¤¤¤Æ¡¢ -¤½¤Î¼Â¹Ô¤òµñÈݤ¹¤ë (¤½¤·¤Æ +でマウントした場合に set-user-ID/set-group-ID の実行ファイルを +どの様に扱うかは、Linux カーネルのバージョンによって異なる: +あるバージョンでは、すでに必要な権限を持っている場合を除いて、 +その実行を拒否する (そして .B EPERM -¤òÊÖ¤¹)¡£Ê̤Τ¢¤ë¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï -set-user-ID/set-group-ID ¥Ó¥Ã¥È¤Î¤ß¤ò̵»ë¤· +を返す)。別のあるバージョンでは +set-user-ID/set-group-ID ビットのみを無視し .BR exec () -¤ÏÀ®¸ù¤¹¤ë¡£ +は成功する。 .\"O A maximum line length of 127 characters is allowed for the first line in .\"O a #! executable shell script. -#! ¼Â¹Ô·Á¼°¤Î¥·¥§¥ë¡¦¥¹¥¯¥ê¥×¥È¤Î 1¹ÔÌܤ˵ö¤µ¤ì¤Æ¤¤¤ëʸ»ú¿ô¤Ï¡¢ -ºÇÂç 127 ʸ»ú¤Ç¤¢¤ë¡£ +#! 実行形式のシェル・スクリプトの 1行目に許されている文字数は、 +最大 127 文字である。 .\"O The semantics of the .\"O .I optional-arg @@ -796,23 +796,23 @@ set-user-ID/set-group-ID .\"O and white spaces in .\"O .I optional-arg .\"O are used to delimit the arguments. -¥¤¥ó¥¿¥×¥ê¥¿¡¦¥¹¥¯¥ê¥×¥È¤Î +インタプリタ・スクリプトの .I optional-arg -°ú¤­¿ô¤Î²ò¼áÊýË¡¤Ï¼ÂÁõ¤Ë¤è¤ê°Û¤Ê¤ë¡£ -Linux ¤Ç¤Ï¡¢¥¤¥ó¥¿¥×¥ê¥¿Ì¾ +引き数の解釈方法は実装により異なる。 +Linux では、インタプリタ名 .I interpreter -¤Ë³¤¯Ê¸»úÎóÁ´ÂΤ¬¥¤¥ó¥¿¥×¥ê¥¿¤Ë 1¸Ä¤Î°ú¤­¿ô¤È¤·¤ÆÅϤµ¤ì¤ë¡£ -¤·¤«¤·¡¢Æ°ºî¤¬°Û¤Ê¤ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ -¤¢¤ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -.\" Î㤨¤Ð¡¢Solaris 8 +に続く文字列全体がインタプリタに 1個の引き数として渡される。 +しかし、動作が異なるシステムもある。 +あるシステムでは、 +.\" 例えば、Solaris 8 .I optional-arg -¤Î¤¦¤ÁºÇ½é¤Î¥Û¥ï¥¤¥È¡¦¥¹¥Ú¡¼¥¹¤Þ¤Ç¤¬ -°ú¤­¿ô¤È¤·¤ÆÅϤµ¤ì¤ë¡£ -¤Þ¤¿¡¢Ê̤Υ·¥¹¥Æ¥à¤Ç¤Ï -.\" Î㤨¤Ð¡¢6.0 ¤è¤êÁ°¤Î FreeBSD (FreeBSD 6.0 °Ê¹ß¤Ï°ã¤¦) -¥¤¥ó¥¿¥×¥ê¥¿¡¦¥¹¥¯¥ê¥×¥È¤ÏÊ£¿ô¤Î°ú¤­¿ô¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¡¢ +のうち最初のホワイト・スペースまでが +引き数として渡される。 +また、別のシステムでは +.\" 例えば、6.0 より前の FreeBSD (FreeBSD 6.0 以降は違う) +インタプリタ・スクリプトは複数の引き数を持つことができ、 .I optional-arg -Æâ¤Î¥Û¥ï¥¤¥È¡¦¥¹¥Ú¡¼¥¹¤¬°ú¤­¿ô¤Î¶èÀÚ¤ê¤È¤Ê¤ë¡£ +内のホワイト・スペースが引き数の区切りとなる。 .\"O On Linux, .\"O .I argv @@ -823,15 +823,15 @@ Linux .\"O It is nonstandard and nonportable: .\"O on most other UNIX systems doing this will result in an error .\"O .RB ( EFAULT ). -Linux ¤Ç¤Ï¡¢ +Linux では、 .I argv -¤Ë NULL ¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤ì¤Ï¡¢¤³¤Î°ú¤­¿ô¤Ë NULL ¥Ý¥¤¥ó¥¿ -1¸Ä¤À¤±¤ò´Þ¤à¥ê¥¹¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»ØÄꤷ¤¿¤Î¤ÈƱ¤¸¸ú²Ì¤ò»ý¤Ä¡£ -.BR ¡Ö¤³¤Î´Ö°ã¤Ã¤¿µ¡Ç½¤òÍøÍѤ·¤Ê¤¤¤³¤È¡× ¡£ -¤³¤ì¤ÏÈóɸ½à¤Ç¡¢°Ü¿¢À­¤â¤Ê¤¤¡£ -¾¤Î¤Û¤È¤ó¤É¤Î UNIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤ì¤ò¹Ô¤¦¤È¥¨¥é¡¼ +に NULL を指定することができる。これは、この引き数に NULL ポインタ +1個だけを含むリストへのポインタを指定したのと同じ効果を持つ。 +.BR 「この間違った機能を利用しないこと」 。 +これは非標準で、移植性もない。 +他のほとんどの UNIX システムでは、これを行うとエラー .RB ( EFAULT ) -¤Ë¤Ê¤ë¡£ +になる。 .\" e.g., EFAULT on Solaris 8 and FreeBSD 6.1; but .\" HP-UX 11 is like Linux -- mtk, Apr 2007 .\" Bug filed 30 Apr 2007: http://bugzilla.kernel.org/show_bug.cgi?id=8408 @@ -848,16 +848,16 @@ Linux .\"O will also change, .\"O to reflect the fact that the limit on space for holding .\"O command-line arguments and environment variables has changed. -POSIX.1-2001 ¤Ï¡¢ +POSIX.1-2001 は、 .BR sysconf (3) -¤¬ÊÖ¤¹ÃÍ¤Ï¥×¥í¥»¥¹¤ÎÀ¸Â¸Ãæ¤ÏÊѲ½¤·¤Ê¤¤¤Ù¤­¤À¤È¤·¤Æ¤¤¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢Linux 2.6.23 °Ê¹ß¤Ç¤Ï¡¢¥ê¥½¡¼¥¹¾å¸Â +が返す値はプロセスの生存中は変化しないべきだとしている。 +しかしながら、Linux 2.6.23 以降では、リソース上限 .B RLIMIT_STACK -¤¬ÊѲ½¤·¤¿¾ì¹ç¡¢ -¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤È´Ä¶­ÊÑ¿ô¤òÊÝ»ý¤¹¤ë¤¿¤á¤Î¶õ´Ö¤ËÂФ¹¤ë¾å¸Â¤¬ -ÊѲ½¤·¤¿¤³¤È¤òÈ¿±Ç¤·¤Æ¡¢ +が変化した場合、 +コマンドライン引き数と環境変数を保持するための空間に対する上限が +変化したことを反映して、 .B _SC_ARG_MAX -¤¬ÊÖ¤¹ÃͤâÊѲ½¤¹¤ë¡£ +が返す値も変化する。 .\" .\"O .\" .SH BUGS .\"O .\" Some Linux versions have failed to check permissions on ELF @@ -867,20 +867,20 @@ POSIX.1-2001 .\"O .\" .BR execve () .\"O .\" that could be exploited for denial of service by a suitably crafted .\"O .\" ELF binary. There are no known problems with 2.0.34 or 2.2.15. -.\" .SH ¥Ð¥° -.\" Linux ÈǤÎÃæ¤Ë¤Ï¡¢ELF ¥¤¥ó¥¿¥×¥ê¥¿¤Ë¤ª¤±¤ë -.\" ¸¢¸Â¤Î¥Á¥§¥Ã¥¯¤Ë¼ºÇÔ¤¹¤ë¤â¤Î¤¬¤¢¤ë¡£ -.\" ¤³¤ì¤Ï¥»¥­¥å¥ê¥Æ¥£¥Û¡¼¥ë¤Ç¤¢¤ë¡£ -.\" ¤Ê¤¼¤Ê¤é¡¢¥æ¡¼¥¶¤ËǤ°Õ¤Î¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤òµö²Ä¤·¤¿¤ê¡¢ -.\" Æɤ߹þ¤ß¤Î¤¿¤á¤Ë¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¤ò´¬¤­Ìᤷ¤òµö²Ä¤·¤¿¤ê¤¹¤ë¡£ -.\" Linux ÈǤÎÃæ¤Ë¤Ï +.\" .SH バグ +.\" Linux 版の中には、ELF インタプリタにおける +.\" 権限のチェックに失敗するものがある。 +.\" これはセキュリティホールである。 +.\" なぜなら、ユーザに任意のファイルをオープンを許可したり、 +.\" 読み込みのためにテープデバイスを巻き戻しを許可したりする。 +.\" Linux 版の中には .\" .BR execve () -.\" ¤Ë¾¤Î¥»¥­¥å¥ê¥Æ¥£¥Û¡¼¥ë¤¬ -.\" ¸ºß¤¹¤ë¤â¤Î¤â¤¢¤ê¡¢¹ªÌ¯¤ËºÙ¹©¤µ¤ì¤¿ ELF ¥Ð¥¤¥Ê¥ê¤Ë¤è¤Ã¤Æ -.\" ¥µ¡¼¥Ó¥¹µñÈÝ (denial of service) ¤ËÍøÍѤµ¤ì¤Æ¤·¤Þ¤¦¡£ -.\" 2.0.34 ¤Þ¤¿ 2.2.15 ¤Ë¤Ï¡¢ÃΤé¤ì¤Æ¤¤¤ëÌäÂê¤Ï¤Ê¤¤¡£ +.\" に他のセキュリティホールが +.\" 存在するものもあり、巧妙に細工された ELF バイナリによって +.\" サービス拒否 (denial of service) に利用されてしまう。 +.\" 2.0.34 また 2.2.15 には、知られている問題はない。 .\"O .SS Historical -.SS Îò»Ë +.SS 歴史 .\"O With UNIX V6 the argument list of an .\"O .BR exec () .\"O call was ended by 0, @@ -891,23 +891,23 @@ POSIX.1-2001 .\"O .BR exec () .\"O call. .\"O Since UNIX V7 both are NULL. -UNIX V6 ¤Ç¤Ï +UNIX V6 では .BR exec () -¥³¡¼¥ë¤Î°ú¤­¿ô¥ê¥¹¥È¤Ï 0 ¤Ç½ªÃ¼¤µ¤ì¡¢ +コールの引き数リストは 0 で終端され、 .I main -¤Î°ú¤­¿ô¥ê¥¹¥È¤Ï \-1 ¤Ç½ªÃ¼¤µ¤ì¤Æ¤¤¤¿¡£ -¤½¤Î¤¿¤á¡¢ +の引き数リストは \-1 で終端されていた。 +そのため、 .I main -¤Î°ú¤­¿ô¥ê¥¹¥È¤Ï¡¢¤½¤Î¸å¤Î +の引き数リストは、その後の .BR exec () -¥³¡¼¥ë¤Ë¤ÏľÀÜ»ÈÍѤǤ­¤Ê¤«¤Ã¤¿¡£ -UNIX V7 °Ê¹ß¤Ç¤Ï¡¢¤È¤â¤Ë NULL ¤Ç½ªÃ¼¤µ¤ì¤ë¡£ +コールには直接使用できなかった。 +UNIX V7 以降では、ともに NULL で終端される。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The following program is designed to be execed by the second program below. .\"O It just echoes its command-line one per line. -¤³¤Î¥×¥í¥°¥é¥à¤Ï¡¢°Ê²¼¤ÎÆó¤ÄÌÜ¤Î¥×¥í¥°¥é¥à¤«¤é¼Â¹Ô¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ -¥³¥Þ¥ó¥É¥é¥¤¥ó¤ò 1¹Ô¤Ë 1¸Ä¤º¤Äɽ¼¨¤¹¤ë¤À¤±¤Î¥×¥í¥°¥é¥à¤Ç¤¢¤ë¡£ +このプログラムは、以下の二つ目のプログラムから実行するためのものである。 +コマンドラインを 1行に 1個ずつ表示するだけのプログラムである。 .in +4n .nf @@ -931,8 +931,8 @@ main(int argc, char *argv[]) .\"O This program can be used to exec the program named in its command-line .\"O argument: -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ç»ØÄꤷ¤¿Ì¾Á°¤Î¥×¥í¥°¥é¥à¤ò -¼Â¹Ô¤¹¤ë¤Î¤Ë»È¤¦¡£ +以下のプログラムは、コマンドライン引き数で指定した名前のプログラムを +実行するのに使う。 .in +4n .nf @@ -963,8 +963,8 @@ main(int argc, char *argv[]) .in .\"O We can use the second program to exec the first as follows: -Æó¤ÄÌÜ¤Î¥×¥í¥°¥é¥à¤ò»È¤Ã¤Æ°ì¤ÄÌÜ¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤Ë¤Ï -°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë¡£ +二つ目のプログラムを使って一つ目のプログラムを実行するには +以下のようにする。 .in +4n .nf @@ -982,10 +982,10 @@ argv[2]: world .\"O To do this we create a script whose "interpreter" is our .\"O .I myecho .\"O program: -¤µ¤é¤Ë¡¢¤³¤ì¤é¤Î¥×¥í¥°¥é¥à¤ò»È¤Ã¤Æ¡¢¥¹¥¯¥ê¥×¥È¡¦¥¤¥ó¥¿¥×¥ê¥¿¤ÎÎã¤ò¼¨¤¹¡£ -¤³¤Î¤¿¤á¤Ë¡¢¡Ö¥¤¥ó¥¿¥×¥ê¥¿¡×¤È¤·¤ÆÀè¤Û¤ÉºîÀ®¤·¤¿¥×¥í¥°¥é¥à +さらに、これらのプログラムを使って、スクリプト・インタプリタの例を示す。 +このために、「インタプリタ」として先ほど作成したプログラム .I myecho -¤ò»È¤¦¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë¡£ +を使うスクリプトを作成する。 .in +4n .nf @@ -997,7 +997,7 @@ argv[2]: world .in .\"O We can then use our program to exec the script: -ºîÀ®¤·¤Æ¤ª¤¤¤¿¥×¥í¥°¥é¥à¤ò»È¤Ã¤Æ¥¹¥¯¥ê¥×¥È¤ò¼Â¹Ô¤¹¤ë¡£ +作成しておいたプログラムを使ってスクリプトを実行する。 .in +4n .nf @@ -1010,7 +1010,7 @@ argv[4]: world .fi .in .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chmod (2), .BR fork (2), .BR ptrace (2), diff --git a/draft/man2/exit_group.2 b/draft/man2/exit_group.2 index 911b244a..959ab96f 100644 --- a/draft/man2/exit_group.2 +++ b/draft/man2/exit_group.2 @@ -27,48 +27,48 @@ .\" .TH EXIT_GROUP 2 2008-11-27 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O exit_group \- exit all threads in a process -exit_group \- ¥×¥í¥»¥¹Ãæ¤ÎÁ´¤Æ¤Î¥¹¥ì¥Ã¥É¤ò exit ¤µ¤»¤ë +exit_group \- プロセス中の全てのスレッドを exit させる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "void exit_group(int " status ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This system call is equivalent to .\"O .BR exit (2) .\"O except that it terminates not only the calling thread, but all threads .\"O in the calling process's thread group. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢´ðËÜŪ¤Ë +このシステムコールは、基本的に .BR exit (2) -¤ÈÅù¤·¤¤¤¬¡¢ -¸Æ¤Ó½Ð¤·¸µ¤Î¥¹¥ì¥Ã¥É¤À¤±¤Ç¤Ê¤¯¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥¹¥ì¥Ã¥É¥°¥ë¡¼¥×¤Ë -¤¢¤ëÁ´¤Æ¤Î¥¹¥ì¥Ã¥É¤ò½ªÎ»¤µ¤»¤ëÅÀ¤¬°Û¤Ê¤ë¡£ +と等しいが、 +呼び出し元のスレッドだけでなく、呼び出し元のプロセスのスレッドグループに +ある全てのスレッドを終了させる点が異なる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O This system call does not return. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÃͤòÊÖ¤µ¤Ê¤¤¡£ +このシステムコールは値を返さない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O This call is present since Linux 2.5.35. -¤³¤Î¥³¡¼¥ë¤Ï¡¢Linux 2.5.35 °Ê¹ß¤Ë¸ºß¤¹¤ë¡£ +このコールは、Linux 2.5.35 以降に存在する。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Since glibc 2.3, this is the system call invoked when the .\"O .BR exit (2) .\"O wrapper function is called. -glibc 2.3 °Ê¹ß¤Ç¤Ï¡¢ +glibc 2.3 以降では、 .BR exit (2) -¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿ºÝ¤Ë¡¢ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬µ¯Æ°¤µ¤ì¤ë¡£ +のラッパー関数が呼び出された際に、 +このシステムコールが起動される。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This call is Linux-specific. -¤³¤Î¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ +このコールは Linux 独自である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR exit (2) diff --git a/draft/man2/faccessat.2 b/draft/man2/faccessat.2 index 99056b35..58a14a3d 100644 --- a/draft/man2/faccessat.2 +++ b/draft/man2/faccessat.2 @@ -30,16 +30,16 @@ .\" .TH FACCESSAT 2 2009-12-13 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O faccessat \- check user's permissions of a file relative to a \ .\"O directory file descriptor -faccessat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÁêÂÐŪ¤Ê°ÌÃ֤ˤ¢¤ë -¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹¸¢¤ò¥Á¥§¥Ã¥¯¤¹¤ë +faccessat \- ディレクトリファイルディスクリプタから相対的な位置にある +ファイルのアクセス権をチェックする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .B #include /* Definition of AT_* constants */ -.B #include /* AT_* Äê¿ô¤ÎÄêµÁ */ +.B #include /* AT_* 定数の定義 */ .B #include .sp .BI "int faccessat(int " dirfd ", const char *" pathname ", int " \ @@ -49,9 +49,9 @@ mode ", int " flags ); .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR faccessat (): @@ -60,26 +60,26 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR faccessat () .\"O system call operates in exactly the same way as .\"O .BR access (2), .\"O except for the differences described in this manual page. .BR faccessat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë°ã¤¤¤¬¤¢¤ë°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明している違いがある以外は、 .BR access (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .\"O If the pathname given in .\"O .I pathname @@ -91,13 +91,13 @@ _ATFILE_SOURCE .\"O .BR access (2) .\"O for a relative pathname). .I pathname -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パスである場合、 +ファイルディスクリプタ .I dirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( access (2) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤Î -ÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスのカレントワーキングディレクトリからの +相対パスとなる)。 .\"O If .\"O .I pathname @@ -111,16 +111,16 @@ _ATFILE_SOURCE .\"O directory of the calling process (like .\"O .BR access (2)). .I pathname -¤¬ÁêÂХѥ¹¤Ç¤¢¤ê¡¢¤«¤Ä +が相対パスであり、かつ .I dirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I pathname -¤Ï +は .RB ( access (2) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .\"O If .\"O .I pathname @@ -128,14 +128,14 @@ _ATFILE_SOURCE .\"O .I dirfd .\"O is ignored. .I pathname -¤¬ÀäÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ +が絶対パスである場合、 .I dirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\"O .I flags .\"O is constructed by ORing together zero or more of the following values: .I flags -¤Ï°Ê²¼¤ÎÃͤò 0 ¸Ä°Ê¾å OR ¤·¤Æºî¤é¤ì¤ë¡£ +は以下の値を 0 個以上 OR して作られる。 .TP .B AT_EACCESS .\"O Perform access checks using the effective user and group IDs. @@ -143,13 +143,13 @@ _ATFILE_SOURCE .\"O .BR faccessat () .\"O uses the real IDs (like .\"O .BR access (2)). -¼Â¸ú (effective) ¥æ¡¼¥¶ ID ¤È¼Â¸ú¥°¥ë¡¼¥× ID ¤ò»È¤Ã¤Æ¡¢ -¥¢¥¯¥»¥¹¸¢¤Î¥Á¥§¥Ã¥¯¤ò¹Ô¤¦¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +実効 (effective) ユーザ ID と実効グループ ID を使って、 +アクセス権のチェックを行う。 +デフォルトでは、 .BR faccessat () -¤Ï +は .RB ( access (2) -¤ÈƱÍͤË) ¼Â ID ¤ò»È¤¦¡£ +と同様に) 実 ID を使う。 .TP .B AT_SYMLINK_NOFOLLOW .\"O If @@ -157,48 +157,48 @@ _ATFILE_SOURCE .\"O is a symbolic link, do not dereference it: .\"O instead return information about the link itself. .I pathname -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¤Ï¡¢¤½¤ì¤òé¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ -¥ê¥ó¥¯¼«¿È¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÊÖ¤¹¡£ +がシンボリックリンクの場合は、それを辿るのではなく、 +リンク自身についての情報を返す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, (all requested permissions granted) .\"O .BR faccessat () .\"O returns 0. -À®¸ù¤·¤¿¾ì¹ç (Á´¤Æ¤ÎÍ׵ᤵ¤ì¤¿µö²Ä¤¬ÆÀ¤é¤ì¤¿¤é)¡¢ +成功した場合 (全ての要求された許可が得られたら)、 .BR faccessat () -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .\"O On error, \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +エラーの場合、\-1 が返され、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ +にはエラーを示す値が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O The same errors that occur for .\"O .BR access (2) .\"O can also occur for .\"O .BR faccessat (). .BR access (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR faccessat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .\"O The following additional errors can occur for .\"O .BR faccessat (): .BR faccessat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .\"O .I dirfd .\"O is not a valid file descriptor. .I dirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B EINVAL .\"O Invalid flag specified in .\"O .IR flags . .I flags -¤ËÉÔÀµ¤Ê¥Õ¥é¥°Ãͤ¬»ØÄꤵ¤ì¤¿¡£ +に不正なフラグ値が指定された。 .TP .B ENOTDIR .\"O .I pathname @@ -206,30 +206,30 @@ _ATFILE_SOURCE .\"O .I dirfd .\"O is a file descriptor referring to a file other than a directory. .I pathname -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I dirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR faccessat () .\"O was added to Linux in kernel 2.6.16. .BR faccessat () -¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ +は Linux カーネル 2.6.16 で追加された。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O See .\"O .BR openat (2) .\"O for an explanation of the need for .\"O .BR faccessat (). .BR faccessat () -¤¬É¬ÍפÊÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が必要な理由については、 .BR openat (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O .SS Glibc Notes -.SS glibc ¤Ë¤Ä¤¤¤Æ¤ÎÃí°Õ +.SS glibc についての注意 .\"O The .\"O .B AT_EACCESS .\"O and @@ -237,20 +237,20 @@ POSIX.1-2008. .\"O flags are actually implemented within the glibc wrapper function for .\"O .BR faccessat (). .B AT_EACCESS -¤È +と .B AT_SYMLINK_NOFOLLOW -¥Õ¥é¥°¤Ï¡¢ +フラグは、 .BR faccessat () -¤Î glibc ¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ç¼ÂºÝ¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +の glibc ラッパー関数で実際に実装されている。 .\"O If either of these flags are specified, then the wrapper function employs .\"O .BR fstatat (2) .\"O to determine access permissions. -¤³¤ì¤é¤Î¥Õ¥é¥°¤Î¤¤¤º¤ì¤«¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ -¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¥¢¥¯¥»¥¹¸¢¤ò·èÄꤹ¤ë¤¿¤á¤Ë +これらのフラグのいずれかが指定された場合、 +ラッパー関数はアクセス権を決定するために .BR fstatat (2) -¤ò»È¤¦¡£ +を使う。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR access (2), .BR openat (2), .BR eauidaccess (3), diff --git a/draft/man2/fallocate.2 b/draft/man2/fallocate.2 index 89f413b6..890e12b1 100644 --- a/draft/man2/fallocate.2 +++ b/draft/man2/fallocate.2 @@ -9,30 +9,30 @@ .\" .TH FALLOCATE 2 2010-09-10 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fallocate \- manipulate file space -fallocate \- ¥Õ¥¡¥¤¥ë¶õ´Ö¤ÎÁàºî +fallocate \- ファイル空間の操作 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .BI "int fallocate(int " fd ", int " mode ", off_t " offset \ ", off_t " len ");" .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This is a nonportable, Linux-specific system call. .\"O For the portable, POSIX.1-specified method of ensuring that space .\"O is allocated for a file, see .\"O .BR posix_fallocate (). -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢°Ü¿¢À­¤Î¤Ê¤¤¡¢Linux ¸ÇÍ­¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤¢¤ë¡£ -°Ü¿¢À­¤¬É¬Íפʾì¹ç¤Ï¡¢¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¥Ç¥£¥¹¥¯¶õ´Ö¤ò³Î¼Â¤Ë³ÎÊݤ¹¤ë¤¿¤á¤Ë¡¢ -POSIX.1 ¤Çµ¬Äꤵ¤ì¤¿ÊýË¡¤Ç¤¢¤ë +このシステムコールは、移植性のない、Linux 固有のシステムコールである。 +移植性が必要な場合は、ファイルに対してディスク空間を確実に確保するために、 +POSIX.1 で規定された方法である .BR posix_fallocate (3) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .\"O .BR fallocate () .\"O allows the caller to directly manipulate the allocated disk space @@ -44,14 +44,14 @@ POSIX.1 .\"O .I len .\"O bytes. .BR fallocate () -¤ò»È¤¦¤È¡¢ +を使うと、 .I fd -¤¬»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥Ç¥£¥¹¥¯¶õ´Ö¤òľÀÜÁàºî¤Ç¤­¤ë¡£ -ÁàºîÂоݤϡ¢ +が参照するファイルに割り当てられたディスク空間を直接操作できる。 +操作対象は、 .I offset -¤«¤é»Ï¤Þ¤ëŤµ +から始まる長さ .I len -¥Ð¥¤¥È¤ÎÎΰè¤Ç¤¢¤ë¡£ +バイトの領域である。 .\"O The .\"O .I mode @@ -59,10 +59,10 @@ POSIX.1 .\"O Currently only one flag is supported for .\"O .IR mode : .I mode -°ú¤­¿ô¤Ï¡¢»ØÄꤵ¤ì¤¿Îΰè¤ËÂФ·¤Æ¼Â¹Ô¤¹¤ëÁàºî¤ò»ØÄꤹ¤ë¡£ -¸½ºß¤Î¤È¤³¤í¡¢ +引き数は、指定された領域に対して実行する操作を指定する。 +現在のところ、 .I mode -¤Ë»ØÄê¤Ç¤­¤ë¥Õ¥é¥°¤Ï°Ê²¼¤Î°ì¤Ä¤À¤±¤Ç¤¢¤ë¡£ +に指定できるフラグは以下の一つだけである。 .TP .B FALLOC_FL_KEEP_SIZE .\"O This flag allocates and initializes to zero the disk space @@ -72,13 +72,13 @@ POSIX.1 .\"O .IR len . .\"O After a successful call, subsequent writes into this range .\"O are guaranteed not to fail because of lack of disk space. -¤³¤Î¥Õ¥é¥°¤Ï¡¢ +このフラグは、 .I offset -¤È +と .I len -¤Ç»ØÄꤵ¤ì¤¿Îΰè¤Î¥Ç¥£¥¹¥¯¶õ´Ö¤ò³ä¤êÅö¤Æ¡¢¤½¤Î¶õ´Ö¤ò 0 ¤Ç½é´ü²½¤¹¤ë¡£ -¸Æ¤Ó½Ð¤·¤¬À®¸ù¤¹¤ë¤È¡¢¤½¤ì¤Ë³¤¤¤Æ¤³¤ÎÎΰè¤Ø¤Î½ñ¤­¹þ¤ß¤¬¹Ô¤ï¤ì¤ë¤¬¡¢ -¥Ç¥£¥¹¥¯¶õ´Ö¤ÎÉÔ­¤Ë¤è¤ë½ñ¤­¹þ¤ß¼ºÇÔ¤¬È¯À¸¤·¤Ê¤¤¤³¤È¤¬Êݾڤµ¤ì¤ë¡£ +で指定された領域のディスク空間を割り当て、その空間を 0 で初期化する。 +呼び出しが成功すると、それに続いてこの領域への書き込みが行われるが、 +ディスク空間の不足による書き込み失敗が発生しないことが保証される。 .\"O Preallocating zeroed blocks beyond the end of the file .\"O is useful for optimizing append workloads. .\"O Preallocating blocks does not change @@ -86,14 +86,14 @@ POSIX.1 .\"O .BR stat (2)) .\"O even if it is less than .\"O .IR offset + len . -¥Õ¥¡¥¤¥ëËöÈø¤è¤ê¸å¤í¤ÎÎΰè¤Ë¤Ä¤¤¤Æ 0 ¤ÇËä¤á¤¿¥Ö¥í¥Ã¥¯¤òÁ°¤â¤Ã¤Æ -³ä¤êÅö¤Æ¤Æ¤ª¤¯¤³¤È¤Ï¡¢Äɵ­ (append) ¤Îºî¶ÈÉé²Ù¤òºÇŬ²½¤¹¤ë¤Î¤Ë -Í­ÍѤǤ¢¤ë¡£ -¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤¬ +ファイル末尾より後ろの領域について 0 で埋めたブロックを前もって +割り当てておくことは、追記 (append) の作業負荷を最適化するのに +有用である。 +ファイルサイズが .IR offset + len -¤è¤ê¤â¾®¤µ¤¤¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢¥Ö¥í¥Ã¥¯¤ÎÁ°¤â¤Ã¤Æ¤Î³ä¤êÅö¤Æ¤Ë¤è¤ê +よりも小さい場合であっても、ブロックの前もっての割り当てにより .RB ( stat (2) -¤¬ÊÖ¤¹) ¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤ÏÊѹ¹¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ +が返す) ファイルサイズは変更されることはない。 .\" .\" Note from Amit Arora: .\" There were few more flags which were discussed, but none of @@ -117,52 +117,52 @@ POSIX.1 .\"O library function, .\"O and is intended as a method of optimally implementing that function. .B FALLOC_FL_KEEP_SIZE -¥Õ¥é¥°¤¬ +フラグが .I mode -¤Ë»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï +に指定されなかった場合、デフォルトの動作は .B FALLOC_FL_KEEP_SIZE -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤È¤Û¤È¤ó¤ÉƱ¤¸¤È¤Ê¤ë¡£ -Í£°ì¤Î°ã¤¤¤Ï¡¢ +フラグが指定された場合とほとんど同じとなる。 +唯一の違いは、 .I "offset + len" -¤¬¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤è¤ê¤âÂ礭¤«¤Ã¤¿¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¤¬À®¸ù¤¹¤ë¤È -¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤¬Êѹ¹¤µ¤ì¤ëÅÀ¤Ç¤¢¤ë¡£ -¤³¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¡¢¥é¥¤¥Ö¥é¥ê´Ø¿ô +がファイルサイズよりも大きかった場合、呼び出しが成功すると +ファイルサイズが変更される点である。 +このデフォルトの動作は、ライブラリ関数 .BR posix_fallocate (3) -¤ÎÆ°ºî¤ÈÈó¾ï¤Ë»÷¤Æ¤¤¤ë¡£¤³¤ì¤Ï +の動作と非常に似ている。これは .BR posix_fallocate (3) -¤òºÇŬ¤Ë¼ÂÁõ¤¹¤ë¼êÃʤòÄ󶡤¹¤ë¤³¤È¤òÌÜŪ¤È¤·¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£ +を最適に実装する手段を提供することを目的としているからである。 .PP .\"O Because allocation is done in block size chunks, .\"O .BR fallocate () .\"O may allocate a larger range than that which was specified. -³ä¤êÅö¤Æ¤Ï¥Ö¥í¥Ã¥¯¥µ¥¤¥ºÃ±°Ì¤Ç¹Ô¤ï¤ì¤ë¤¿¤á¡¢ +割り当てはブロックサイズ単位で行われるため、 .BR fallocate () -¤Ï»ØÄꤵ¤ì¤¿¤è¤ê¤âÂ礭¤ÊÎΰè¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤¢¤ë¡£ +は指定されたよりも大きな領域を割り当てることがある。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR fallocate () .\"O returns zero on success, and -1 on failure. .BR fallocate () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤·¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ +は成功すると 0 を返し、エラーの場合は \-1 を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O .I fd .\"O is not a valid file descriptor, or is not opened for writing. .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¤«¡¢ -½ñ¤­¹þ¤ßÍѤȤ·¤Æ¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +が有効なファイルディスクリプタでないか、 +書き込み用としてオープンされていない。 .TP .B EFBIG .\"O .IR offset + len .\"O exceeds the maximum file size. .I offset + len -¤¬¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤ÎºÇÂçÃͤè¤ê¤âÂ礭¤¤¡£ +がファイルサイズの最大値よりも大きい。 .TP .B EINTR .\"O A signal was caught during execution. -¼Â¹ÔÃæ¤Ë¥·¥°¥Ê¥ë¤¬Ê᪤µ¤ì¤¿¡£ +実行中にシグナルが捕捉された。 .TP .B EINVAL .\"O .I offset @@ -170,13 +170,13 @@ POSIX.1 .\"O .I len .\"O was less than or equal to 0. .I offset -¤¬ 0 ̤Ëþ¤Ç¤¢¤ë¤«¡¢ +が 0 未満であるか、 .I len -¤¬ 0 °Ê²¼¤Ç¤¢¤ë¡£ +が 0 以下である。 .TP .B EIO .\"O An I/O error occurred while reading from or writing to a file system. -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤È¤ÎÆɤ߽ñ¤­Ãæ¤ËÆþ½ÐÎÏ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +ファイルシステムとの読み書き中に入出力エラーが発生した。 .TP .B ENODEV .\"O .I fd @@ -185,24 +185,24 @@ POSIX.1 .\"O .I fd .\"O is a pipe or FIFO, a different error results.) .I fd -¤¬Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤«¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤ +が通常のファイルかディレクトリを参照していない .RI ( fd -¤¬¥Ñ¥¤¥×¤ä FIFO ¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¡¢Ê̤Υ¨¥é¡¼¤¬È¯À¸¤¹¤ë)¡£ +がパイプや FIFO を参照している場合、別のエラーが発生する)。 .TP .B ENOSPC .\"O There is not enough space left on the device containing the file .\"O referred to by .\"O .IR fd . .I fd -¤¬»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¤ò´Þ¤à¥Ç¥Ð¥¤¥¹¤Ë½½Ê¬¤Ê¶õ¤­Îΰ褬¤Ê¤¤¡£ +が参照するファイルを含むデバイスに十分な空き領域がない。 .TP .B ENOSYS .\"O The file system containing the file referred to by .\"O .I fd .\"O does not support this operation. .I fd -¤¬»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¤ò´Þ¤à¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ -»ØÄꤵ¤ì¤¿Áàºî¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +が参照するファイルを含むファイルシステムが +指定された操作をサポートしていない。 .TP .B EOPNOTSUPP .\"O The @@ -210,25 +210,25 @@ POSIX.1 .\"O is not supported by the file system containing the file referred to by .\"O .IR fd . .I fd -¤¬»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¤ò´Þ¤à¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ +が参照するファイルを含むファイルシステムが .I mode -¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +をサポートしていない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR fallocate () .\"O is available on Linux since kernel 2.6.23. .\"O Support is provided by glibc since version 2.10. .BR fallocate () -¤Ï¥«¡¼¥Í¥ë 2.6.23 °Ê¹ß¤Î Linux ¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -glibc ¤Ç¤ÎÂбþ¤Ï¥Ð¡¼¥¸¥ç¥ó 3.10 °Ê¹ß¤Ç¹Ô¤ï¤ì¤Æ¤¤¤ë¡£ +はカーネル 2.6.23 以降の Linux で利用可能である。 +glibc での対応はバージョン 3.10 以降で行われている。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O .BR fallocate () .\"O is Linux-specific. .BR fallocate () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ +は Linux 固有である。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ftruncate (2), .BR posix_fadvise (3), .BR posix_fallocate (3) diff --git a/draft/man2/fchmodat.2 b/draft/man2/fchmodat.2 index ab299088..454b0fa5 100644 --- a/draft/man2/fchmodat.2 +++ b/draft/man2/fchmodat.2 @@ -28,15 +28,15 @@ .\" .TH FCHMODAT 2 2009-12-13 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fchmodat \- change permissions of a file relative to a directory \ .\"O file descriptor -fchmodat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÁêÂÐŪ¤Ê°ÌÃ֤ˤ¢¤ë¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹¸¢¤òÊѹ¹¤¹¤ë +fchmodat \- ディレクトリファイルディスクリプタから相対的な位置にあるファイルのアクセス権を変更する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .B #include /* Definition of AT_* constants */ -.B #include /* AT_* Äê¿ô¤ÎÄêµÁ */ +.B #include /* AT_* 定数の定義 */ .B #include .sp .BI "int fchmodat(int " dirfd ", const char *" pathname ", mode_t " \ @@ -46,9 +46,9 @@ mode ", int " flags ); .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR fchmodat (): @@ -57,26 +57,26 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR fchmodat () .\"O system call operates in exactly the same way as .\"O .BR chmod (2), .\"O except for the differences described in this manual page. .BR fchmodat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë°ã¤¤¤¬¤¢¤ë°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明している違いがある以外は、 .BR chmod (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .\"O If the pathname given in .\"O .I pathname @@ -88,13 +88,13 @@ _ATFILE_SOURCE .\"O .BR chmod (2) .\"O for a relative pathname). .I pathname -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パスである場合、 +ファイルディスクリプタ .I dirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( chmod (2) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤Î -ÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスのカレントワーキングディレクトリからの +相対パスとなる)。 .\"O If .\"O .I pathname @@ -108,16 +108,16 @@ _ATFILE_SOURCE .\"O directory of the calling process (like .\"O .BR chmod (2)). .I pathname -¤¬ÁêÂХѥ¹¤Ç¤¢¤ê¡¢¤«¤Ä +が相対パスであり、かつ .I dirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I pathname -¤Ï +は .RB ( chmod (2) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .\"O If .\"O .I pathname @@ -125,14 +125,14 @@ _ATFILE_SOURCE .\"O .I dirfd .\"O is ignored. .I pathname -¤¬ÀäÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ +が絶対パスである場合、 .I dirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\"O .I flags .\"O can either be 0, or include the following flag: .I flags -¤Ï 0 ¤Þ¤¿¤Ï°Ê²¼¤Î¥Õ¥é¥°¤Ç¤¢¤ë¡£ +は 0 または以下のフラグである。 .TP .B AT_SYMLINK_NOFOLLOW .\"O If @@ -140,50 +140,50 @@ _ATFILE_SOURCE .\"O is a symbolic link, do not dereference it: .\"O instead operate on the link itself. .I pathname -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¤Ï¡¢¤½¤ì¤òé¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ -¥ê¥ó¥¯¼«¿È¤ËÂФ·¤Æ (¥¢¥¯¥»¥¹¸¢¤ÎÊѹ¹¤Î) Áàºî¤ò¹Ô¤¦¡£ +がシンボリックリンクの場合は、それを辿るのではなく、 +リンク自身に対して (アクセス権の変更の) 操作を行う。 .\"O This flag is not currently implemented. -¤³¤Î¥Õ¥é¥°¤Ï¸½ºß¤Î¤È¤³¤í¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +このフラグは現在のところ実装されていない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR fchmodat () .\"O returns 0. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR fchmodat () -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .\"O On error, \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +エラーの場合、\-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ +にはエラーを示す値が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O The same errors that occur for .\"O .BR chmod (2) .\"O can also occur for .\"O .BR fchmodat (). .BR chmod (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR fchmodat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .\"O The following additional errors can occur for .\"O .BR fchmodat (): .BR fchmodat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .\"O .I dirfd .\"O is not a valid file descriptor. .I dirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B EINVAL .\"O Invalid flag specified in .\"O .IR flags . .I flags -¤ËÉÔÀµ¤Ê¥Õ¥é¥°Ãͤ¬»ØÄꤵ¤ì¤¿¡£ +に不正なフラグ値が指定された。 .TP .B ENOTDIR .\"O .I pathname @@ -191,9 +191,9 @@ _ATFILE_SOURCE .\"O .I dirfd .\"O is a file descriptor referring to a file other than a directory. .I pathname -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I dirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 .TP .B ENOTSUP .\"O .I flags @@ -201,31 +201,31 @@ _ATFILE_SOURCE .\"O .BR AT_SYMLINK_NOFOLLOW , .\"O which is not supported. .I flags -¤Ë¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤ÃÍ +にサポートされていない値 .B AT_SYMLINK_NOFOLLOW -¤¬ -»ØÄꤵ¤ì¤¿¡£ +が +指定された。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR fchmodat () .\"O was added to Linux in kernel 2.6.16. .BR fchmodat () -¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ +は Linux カーネル 2.6.16 で追加された。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O See .\"O .BR openat (2) .\"O for an explanation of the need for .\"O .BR fchmodat (). .BR fchmodat () -¤¬É¬ÍפÊÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が必要な理由については、 .BR openat (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chmod (2), .BR openat (2), .BR path_resolution (7), diff --git a/draft/man2/fchownat.2 b/draft/man2/fchownat.2 index 9c48b29f..81f6a0d3 100644 --- a/draft/man2/fchownat.2 +++ b/draft/man2/fchownat.2 @@ -28,15 +28,15 @@ .\" .TH FCHOWNAT 2 2009-12-13 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fchownat \- change ownership of a file relative to a directory \ .\"O file descriptor -fchownat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÁêÂÐŪ¤Ê°ÌÃ֤ˤ¢¤ë¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤òÊѹ¹¤¹¤ë +fchownat \- ディレクトリファイルディスクリプタから相対的な位置にあるファイルの所有者を変更する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .B #include /* Definition of AT_* constants */ -.B #include /* AT_* Äê¿ô¤ÎÄêµÁ */ +.B #include /* AT_* 定数の定義 */ .B #include .sp .BI "int fchownat(int " dirfd ", const char *" pathname , @@ -46,9 +46,9 @@ fchownat \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR fchownat (): @@ -57,26 +57,26 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .RE .ad .PD .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR fchownat () .\"O system call operates in exactly the same way as .\"O .BR chown (2), .\"O except for the differences described in this manual page. .BR fchownat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë°ã¤¤¤¬¤¢¤ë°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明している違いがある以外は、 .BR chown (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .\"O If the pathname given in .\"O .I pathname @@ -88,13 +88,13 @@ _ATFILE_SOURCE .\"O .BR chown (2) .\"O for a relative pathname). .I pathname -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パスである場合、 +ファイルディスクリプタ .I dirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( chown (2) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤Î -ÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスのカレントワーキングディレクトリからの +相対パスとなる)。 .\"O If .\"O .I pathname @@ -108,16 +108,16 @@ _ATFILE_SOURCE .\"O directory of the calling process (like .\"O .BR chown (2)). .I pathname -¤¬ÁêÂХѥ¹¤Ç¤¢¤ê¡¢¤«¤Ä +が相対パスであり、かつ .I dirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I pathname -¤Ï +は .RB ( chown (2) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .\"O If .\"O .I pathname @@ -125,14 +125,14 @@ _ATFILE_SOURCE .\"O .I dirfd .\"O is ignored. .I pathname -¤¬ÀäÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ +が絶対パスである場合、 .I dirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\"O .I flags .\"O can either be 0, or include the following flag: .I flags -¤Ï 0 ¤Þ¤¿¤Ï°Ê²¼¤Î¥Õ¥é¥°¤Ç¤¢¤ë¡£ +は 0 または以下のフラグである。 .TP .B AT_SYMLINK_NOFOLLOW .\"O If @@ -145,54 +145,54 @@ _ATFILE_SOURCE .\"O dereferences symbolic links, like .\"O .BR chown (2).) .I pathname -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¤Ï¡¢¤½¤ì¤òé¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ +がシンボリックリンクの場合は、それを辿るのではなく、 .BR lchown (2) -¤ÈƱÍͤ˥ê¥ó¥¯¼«¿È¤ËÂФ·¤Æ (½êÍ­¼Ô¤ÎÊѹ¹¤Î) Áàºî¤ò¹Ô¤¦ -(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +と同様にリンク自身に対して (所有者の変更の) 操作を行う +(デフォルトでは、 .BR fchownat () -¤Ï +は .BR chown (2) -¤ÈƱÍͤ˥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òé¤ë)¡£ +と同様にシンボリックリンクを辿る)。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR fchownat () .\"O returns 0. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR fchownat () -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .\"O On error, \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +エラーの場合、\-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ +にはエラーを示す値が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O The same errors that occur for .\"O .BR chown (2) .\"O can also occur for .\"O .BR fchownat (). .BR chown (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR fchownat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .\"O The following additional errors can occur for .\"O .BR fchownat (): .BR fchownat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .\"O .I dirfd .\"O is not a valid file descriptor. .I dirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B EINVAL .\"O Invalid flag specified in .\"O .IR flags . .I flags -¤ËÉÔÀµ¤Ê¥Õ¥é¥°Ãͤ¬»ØÄꤵ¤ì¤¿¡£ +に不正なフラグ値が指定された。 .TP .B ENOTDIR .\"O .I pathname @@ -200,32 +200,32 @@ _ATFILE_SOURCE .\"O .I dirfd .\"O is a file descriptor referring to a file other than a directory. .I pathname -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I dirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR fchownat () .\"O was added to Linux in kernel 2.6.16. .BR fchownat () -¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ +は Linux カーネル 2.6.16 で追加された。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. .\"O A similar system call exists on Solaris. -Solaris ¤Ë¤Ï¡¢¤³¤ì¤ÈƱ¤¸¤è¤¦¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Â¸ºß¤¹¤ë¡£ +Solaris には、これと同じようなシステムコールが存在する。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O See .\"O .BR openat (2) .\"O for an explanation of the need for .\"O .BR fchownat (). .BR fchownat () -¤¬É¬ÍפÊÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が必要な理由については、 .BR openat (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chown (2), .BR openat (2), .BR path_resolution (7), diff --git a/draft/man2/fcntl.2 b/draft/man2/fcntl.2 index e8e59d1f..82cf72db 100644 --- a/draft/man2/fcntl.2 +++ b/draft/man2/fcntl.2 @@ -72,19 +72,19 @@ .\" Updated 2008-09-19, Akihiro MOTOKI, LDP v3.09 .\" Updated 2010-04-23, Akihiro MOTOKI, LDP v3.24 .\" -.\"WORD: asynchronous I/O ÈóƱ´ü I/O -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: open file description ¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò -.\"WORD: feature test macro µ¡Ç½¸¡ºº¥Þ¥¯¥í -.\"WORD: I/O availability signal I/O ¤¬ÍøÍѲÄǽ¤Ë¤Ê¤Ã¤¿¤³¤È¤ò¼¨¤¹¥·¥°¥Ê¥ë +.\"WORD: asynchronous I/O 非同期 I/O +.\"WORD: descriptor ディスクリプタ +.\"WORD: open file description オープンファイル記述 +.\"WORD: feature test macro 機能検査マクロ +.\"WORD: I/O availability signal I/O が利用可能になったことを示すシグナル .\" .TH FCNTL 2 2009-10-17 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fcntl \- manipulate file descriptor -fcntl \- ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÁàºî¤ò¹Ô¤¦ +fcntl \- ファイルディスクリプタの操作を行う .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -92,18 +92,18 @@ fcntl \- .BI "int fcntl(int " fd ", int " cmd ", ... /* " arg " */ );" .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR fcntl () .\"O performs one of the operations described below on the open file descriptor .\"O .IR fd . .\"O The operation is determined by .\"O .IR cmd . .BR fcntl () -¤Ï¡¢¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +は、オープンされたファイルディスクリプタ .I fd -¤Ë´Ø¤·¤Æ²¼µ­¤ÎÁàºî¤ò¹Ô¤¦¡£Áàºî¤Ï +に関して下記の操作を行う。操作は .I cmd -¤Ë¤è¤Ã¤Æ·è¤Þ¤ë: +によって決まる: .\"O .BR fcntl () .\"O can take an optional third argument. @@ -119,23 +119,23 @@ fcntl \- .\"O .I void .\"O is specified if the argument is not required. .BR fcntl () -¤Ï¥ª¥×¥·¥ç¥ó¤È¤·¤ÆÂè»°°ú¤­¿ô¤ò¤È¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -Âè»°°ú¤­¿ô¤¬É¬Íפ«¤É¤¦¤«¤Ï +はオプションとして第三引き数をとることができる。 +第三引き数が必要かどうかは .I cmd -¤Ë¤è¤ê·è¤Þ¤ë¡£ -ɬÍפʰú¤­¿ô¤Î·¿¤Ï +により決まる。 +必要な引き数の型は .I cmd -̾¤Î¸å¤í¤Î³ç¸ÌÆâ¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë -(¤Û¤È¤ó¤É¤Î¾ì¹ç¡¢É¬Íפʷ¿¤Ï +名の後ろの括弧内で指定されている +(ほとんどの場合、必要な型は .I long -¤Ç¤¢¤ê¡¢¤³¤Î°ú¤­¿ô¤òɽ¤¹¤Î¤Ë +であり、この引き数を表すのに .I arg -¤È¤¤¤¦Ì¾Á°¤ò»È¤Ã¤Æ¤¤¤ë)¡£ -°ú¤­¿ô¤¬É¬Íפʤ¤¾ì¹ç¤Ë¤Ï +という名前を使っている)。 +引き数が必要ない場合には .I void -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¡£ +が指定されている。 .\"O .SS "Duplicating a file descriptor" -.SS "¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÊ£À½" +.SS "ファイルディスクリプタの複製" .TP .BR F_DUPFD " (\fIlong\fP)" .\"O Find the lowest numbered available file descriptor @@ -146,60 +146,60 @@ fcntl \- .\"O This is different from .\"O .BR dup2 (2), .\"O which uses exactly the descriptor specified. -ÍøÍѲÄǽ¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¦¤Á¡¢ +利用可能なファイルディスクリプタのうち、 .I arg -°Ê¾å¤ÇºÇ¾®¤Î¤â¤Î¤òõ¤·¡¢ +以上で最小のものを探し、 .I fd -¤Î¥³¥Ô¡¼¤È¤¹¤ë¡£¤³¤ì¤ÏÊ̤ηÁ¤Î +のコピーとする。これは別の形の .BR dup2 (2) -¤Ç¤¢¤ë¡£ +である。 .BR dup2 (2) -¤Ç¤Ï»ØÄꤵ¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬»È¤ï¤ì¤ëÅÀ¤¬°ã¤¦¡£ +では指定されたディスクリプタが使われる点が違う。 .IP .\"O On success, the new descriptor is returned. -À®¸ù¤¹¤ë¤È¡¢¿·¤·¤¤¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÊÖ¤µ¤ì¤ë¡£ +成功すると、新しいディスクリプタが返される。 .IP .\"O See .\"O .BR dup (2) .\"O for further details. -¾ÜºÙ¤Ï +詳細は .BR dup (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .TP .\"O .BR F_DUPFD_CLOEXEC " (\fIlong\fP; since Linux 2.6.24)" -.BR F_DUPFD_CLOEXEC " (\fIlong\fP; Linux 2.6.24 °Ê¹ß)" +.BR F_DUPFD_CLOEXEC " (\fIlong\fP; Linux 2.6.24 以降)" .\"O As for .\"O .BR F_DUPFD , .\"O but additionally set the .\"O close-on-exec flag for the duplicate descriptor. .B F_DUPFD -¤ÈƱÍͤÀ¤¬¡¢¤½¤ì¤Ë²Ã¤¨¤ÆÊ£À½¤µ¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ -close-on-exec ¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ +と同様だが、それに加えて複製されたディスクリプタに対して +close-on-exec フラグをセットする。 .\"O Specifying this flag permits a program to avoid an additional .\"O .BR fcntl () .\"O .B F_SETFD .\"O operation to set the .\"O .B FD_CLOEXEC .\"O flag. -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢¥×¥í¥°¥é¥à¤Ï +このフラグを指定することで、プログラムは .B FD_CLOEXEC -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤¿¤á¤Ë +フラグをセットするために .BR fcntl () -¤Î +の .B F_SETFD -Áàºî¤òÄɲäǹԤ¦É¬Íפ¬¤Ê¤¯¤Ê¤ë¡£ +操作を追加で行う必要がなくなる。 .\"O For an explanation of why this flag is useful, .\"O see the description of .\"O .B O_CLOEXEC .\"O in .\"O .BR open (2). -¤³¤Î¥Õ¥é¥°¤¬¤Ê¤¼Í­ÍѤ«¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +このフラグがなぜ有用かについては、 .BR open (2) -¤Î +の .B O_CLOEXEC -¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +の説明を参照のこと。 .\"O .SS "File descriptor flags" -.SS "¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Õ¥é¥°" +.SS "ファイルディスクリプタ・フラグ" .\"O The following commands manipulate the flags associated with .\"O a file descriptor. .\"O Currently, only one such flag is defined: @@ -210,32 +210,32 @@ close-on-exec .\"O bit is 0, the file descriptor will remain open across an .\"O .BR execve (2), .\"O otherwise it will be closed. -°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë´ØÏ¢¤¹¤ë¥Õ¥é¥° -¤òÁàºî¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¸½ºß¤Î¤È¤³¤í¡¢ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥Õ¥é¥°¤Ï°ì¤Ä¤À¤±¤Ç¤¢¤ë: +以下のコマンドを使って、ファイルディスクリプタに関連するフラグ +を操作することができる。 +現在のところ、定義されているフラグは一つだけである: .B FD_CLOEXEC -(close-on-exec ¥Õ¥é¥°)¡£ +(close-on-exec フラグ)。 .B FD_CLOEXEC -¥Ó¥Ã¥È¤¬ 0 ¤Ê¤é¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï +ビットが 0 なら、ファイルディスクリプタは .BR execve (2) -¤ò¹Ô¤Ã¤Æ¤â¥ª¡¼¥×¥ó¤µ¤ì¤¿¤Þ¤Þ¤À¤¬¡¢¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï¥¯¥í¡¼¥º¤µ¤ì¤ë¡£ +を行ってもオープンされたままだが、そうでない場合はクローズされる。 .TP .BR F_GETFD " (\fIvoid\fP)" .\"O Read the file descriptor flags; .\"O .I arg .\"O is ignored. -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Õ¥é¥°¤òÆɤ߽Ф¹¡£ +ファイルディスクリプタ・フラグを読み出す。 .I arg -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .TP .BR F_SETFD " (\fIlong\fP)" .\"O Set the file descriptor flags to the value specified by .\"O .IR arg . -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Õ¥é¥°¤Ë +ファイルディスクリプタ・フラグに .I arg -¤Ç»ØÄꤷ¤¿ÃͤòÀßÄꤹ¤ë¡£ +で指定した値を設定する。 .\"O .SS "File status flags" -.SS "¥Õ¥¡¥¤¥ë¾õÂ֥ե饰" +.SS "ファイル状態フラグ" .\"O Each open file description has certain associated status flags, .\"O initialized by .\"O .BR open (2) @@ -250,35 +250,35 @@ close-on-exec .\"O .BR fork (2), .\"O etc.) refer to the same open file description, and thus .\"O share the same file status flags. -¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò (open file description) ¤Ë¤Ï¡¢ -¥Õ¥¡¥¤¥ëµ­½ÒËè¤ËÀßÄꤵ¤ì¤ë¾õÂ֥ե饰¤¬¤¤¤¯¤Ä¤«¤¢¤ë¡£¤³¤ì¤é¤Î¥Õ¥é¥°¤Ï +オープンファイル記述 (open file description) には、 +ファイル記述毎に設定される状態フラグがいくつかある。これらのフラグは .BR open (2) -.\" ¤ä +.\" や .\" .BR creat (2) -¤Ë¤è¤Ã¤Æ½é´ü²½¤µ¤ì¡¢ +によって初期化され、 .BR fcntl (2) -¤Ë¤è¤êÊѹ¹¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£¤³¤ì¤é¤Ï¡¢ +により変更することもできる。これらは、 .RB ( dup (2), .BR fcntl (F_DUPFD), .BR fork (2) -¤Ê¤É¤Ç) Ê£À½¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿Æ±»Î¤Ï -Ʊ¤¸¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¤ò»²¾È¤¹¤ë¡£ -¤½¤Î¤¿¤á¡¢ -Ʊ¤¸¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤¬¶¦Í­¤µ¤ì¤ë¡£ +などで) 複製されたファイルディスクリプタ同士は +同じオープンファイル記述を参照する。 +そのため、 +同じファイル状態フラグが共有される。 .\"O The file status flags and their semantics are described in .\"O .BR open (2). -¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤È¤½¤Î°ÕÌ£¤Ï +ファイル状態フラグとその意味は .BR open (2) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡£ +で説明されている。 .TP .BR F_GETFL " (\fIvoid\fP)" .\"O Read the file status flags; .\"O .I arg .\"O is ignored. -¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤òÆɤ߽Ф¹¡£ +ファイル状態フラグを読み出す。 .I arg -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .TP .BR F_SETFL " (\fIlong\fP)" .\"O Set the file status flags to the value specified by @@ -291,15 +291,15 @@ close-on-exec .\"O in .\"O .I arg .\"O are ignored. -¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤Ë +ファイル状態フラグに .I arg -¤Ç»ØÄꤵ¤ì¤¿ÃͤòÀßÄꤹ¤ë¡£ +で指定された値を設定する。 .I arg -¤Î¤¦¤Á¡¢¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹¥â¡¼¥É +のうち、ファイルのアクセスモード .RB ( O_RDONLY ", " O_WRONLY ", " O_RDWR ) -¤È¥Õ¥¡¥¤¥ëºîÀ®¥Õ¥é¥° (¤¹¤Ê¤ï¤Á +とファイル作成フラグ (すなわち .BR O_CREAT ", " O_EXCL ", " O_NOCTTY ", " O_TRUNC ) -¤Ë´Ø¤¹¤ë¥Ó¥Ã¥È¤Ï̵»ë¤µ¤ì¤ë¡£ +に関するビットは無視される。 .\"O On Linux this command can only change the .\"O .BR O_APPEND , .\"O .BR O_ASYNC , @@ -308,21 +308,21 @@ close-on-exec .\"O and .\"O .B O_NONBLOCK .\"O flags. -Linux ¤Ç¤Ï¡¢¤³¤Î¥³¥Þ¥ó¥É¤ÇÊѹ¹¤Ç¤­¤ë¤Î¤Ï +Linux では、このコマンドで変更できるのは .BR O_APPEND , .BR O_ASYNC , .BR O_DIRECT , .BR O_NOATIME , .B O_NONBLOCK -¥Õ¥é¥°¤À¤±¤Ç¤¢¤ë¡£ +フラグだけである。 .\"O .\" FIXME . According to POSIX.1-2001, O_SYNC should also be modifiable .\"O .\" via fcntl(2), but currently Linux does not permit this .\"O .\" See http://bugzilla.kernel.org/show_bug.cgi?id=5994 -.\" FIXME . POSIX.1-2001 ¤Ë¤è¤ë¤È¡¢ O_SYNC ¤â fcntl(2) ¤ÇÊѹ¹¤Ç¤­¤ë¤Ù¤­¤À¤¬¡¢ -.\" ¸½ºß¤Î¤È¤³¤í Linux ¤Ç¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.\" http://bugzilla.kernel.org/show_bug.cgi?id=5994 »²¾È +.\" FIXME . POSIX.1-2001 によると、 O_SYNC も fcntl(2) で変更できるべきだが、 +.\" 現在のところ Linux では許可されていない。 +.\" http://bugzilla.kernel.org/show_bug.cgi?id=5994 参照 .\"O .SS "Advisory locking" -.SS "¥¢¥É¥Ð¥¤¥¶¥ê¡¦¥í¥Ã¥¯" +.SS "アドバイザリ・ロック" .\"O .BR F_GETLK ", " F_SETLK " and " F_SETLKW .\"O are used to acquire, release, and test for the existence of record .\"O locks (also known as file-segment or file-region locks). @@ -331,13 +331,13 @@ Linux .\"O is a pointer to a structure that has at least the following fields .\"O (in unspecified order). .BR F_GETLK ", " F_SETLK ", " F_SETLKW -¤Ï¡¢¥ì¥³¡¼¥É¡¦¥í¥Ã¥¯¤Î³ÍÆÀ¡¿²òÊü¡¿¥Æ¥¹¥È¤Î¤¿¤á¤Ë»ÈÍѤ¹¤ë -(¥ì¥³¡¼¥É¡¦¥í¥Ã¥¯¤Ï¥Õ¥¡¥¤¥ë¥»¥°¥á¥ó¥È¡¦¥í¥Ã¥¯¤ä -¥Õ¥¡¥¤¥ëÎΰè¥í¥Ã¥¯¤È¤â¸Æ¤Ð¤ì¤ë)¡£ -»°ÈÖÌܤΰú¤­¿ô +は、レコード・ロックの獲得/解放/テストのために使用する +(レコード・ロックはファイルセグメント・ロックや +ファイル領域ロックとも呼ばれる)。 +三番目の引き数 .I lock -¤Ï¡¢°Ê²¼¤Ë¼¨¤¹¥Õ¥£¡¼¥ë¥É¤ò´Þ¤à¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë -(¥Õ¥£¡¼¥ë¥É¤Î½ç½ø¤Ï´Ø·¸¤Ê¤¯¡¢¹½Â¤ÂΤ˾¤Î¥Õ¥£¡¼¥ë¥É¤¬¤¢¤Ã¤Æ¤â¤è¤¤)¡£ +は、以下に示すフィールドを含む構造体へのポインタである +(フィールドの順序は関係なく、構造体に他のフィールドがあってもよい)。 .in +4n .nf .sp @@ -361,11 +361,11 @@ struct flock { .\"O fields of this structure specify the range of bytes we wish to lock. .\"O Bytes past the end of the file may be locked, .\"O but not bytes before the start of the file. -¤³¤Î¹½Â¤ÂΤΠ+この構造体の .IR l_whence ", " l_start ", " l_len -¥Õ¥£¡¼¥ë¥É¤Ç¡¢¥í¥Ã¥¯¤ò¹Ô¤¤¤¿¤¤¥Ð¥¤¥ÈÈϰϤò»ØÄꤹ¤ë¡£ -¥Õ¥¡¥¤¥ë¤ÎËöÈø¤è¤ê¸å¤í¤Î¥Ð¥¤¥È¤ò¥í¥Ã¥¯¤¹¤ë¤³¤È¤Ï¤Ç¤­¤ë¤¬¡¢ -¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤è¤êÁ°¤Î¥Ð¥¤¥È¤ò¥í¥Ã¥¯¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +フィールドで、ロックを行いたいバイト範囲を指定する。 +ファイルの末尾より後ろのバイトをロックすることはできるが、 +ファイルの先頭より前のバイトをロックすることはできない。 .\"O .I l_start .\"O is the starting offset for the lock, and is interpreted @@ -387,26 +387,26 @@ struct flock { .\"O can be a negative number provided the .\"O offset does not lie before the start of the file. .I l_start -¤Ï¥í¥Ã¥¯¤ò¹Ô¤¦Îΰè¤Î³«»Ï¥ª¥Õ¥»¥Ã¥È¤Ç¤¢¤ë¡£ -¤½¤Î°ÕÌ£¤Ï +はロックを行う領域の開始オフセットである。 +その意味は .I l_whence -¤Ë¤è¤ê°Û¤Ê¤ë: +により異なる: .I l_whence -¤¬ +が .B SEEK_SET -¤Î¾ì¹ç¤Ï¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤«¤é¤Î¥ª¥Õ¥»¥Ã¥È¡¢ +の場合はファイルの先頭からのオフセット、 .I l_whence -¤¬ +が .B SEEK_CUR -¤Î¾ì¹ç¤Ï¸½ºß¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤«¤é¤Î¥ª¥Õ¥»¥Ã¥È¡¢ +の場合は現在のファイルオフセットからのオフセット、 .I l_whence -¤¬ +が .B SEEK_END -¤Î¾ì¹ç¤Ï¥Õ¥¡¥¤¥ë¤ÎËöÈø¤«¤é¤Î¥ª¥Õ¥»¥Ã¥È¤È²ò¼á¤µ¤ì¤ë¡£ -¸å¤í¤Î£²¤Ä¤Î¾ì¹ç¤Ë¤Ï¡¢ -¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤è¤êÁ°¤Ë¤Ê¤é¤Ê¤¤ÈϰϤǡ¢ +の場合はファイルの末尾からのオフセットと解釈される。 +後ろの2つの場合には、 +ファイルの先頭より前にならない範囲で、 .I l_start -¤ËÉé¤ÎÃͤò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +に負の値を指定することができる。 .\"O .I l_len .\"O specifies the number of bytes to be locked. @@ -423,18 +423,18 @@ struct flock { .\"O .IR l_whence " and " l_start .\"O through to the end of file, no matter how large the file grows. .I l_len -¤Ï¥í¥Ã¥¯¤·¤¿¤¤¥Ð¥¤¥È¿ô¤ò¼¨¤¹¡£ +はロックしたいバイト数を示す。 .I l_len -¤¬Àµ¤Î¾ì¹ç¡¢¥í¥Ã¥¯¤µ¤ì¤ë¥Ð¥¤¥ÈÈÏ°Ï¤Ï +が正の場合、ロックされるバイト範囲は .I l_start -°Ê¾å +以上 .IR l_start + l_len \- 1 -°Ê²¼¤È¤Ê¤ë¡£ +以下となる。 .I l_len -¤Ë 0 ¤ò»ØÄꤷ¤¿¾ì¹ç¤ÏÆÃÊ̤ʰÕÌ£¤ò»ý¤Ä: +に 0 を指定した場合は特別な意味を持つ: .IR l_whence " and " l_start -¤Ç»ØÄꤵ¤ì¤ë°ÌÃÖ¤«¤é¥Õ¥¡¥¤¥ë¤ÎËöÈø¤Þ¤Ç¤ÎÁ´¤Æ¤Î¥Ð¥¤¥È¤ò¥í¥Ã¥¯¤¹¤ë -(¥Õ¥¡¥¤¥ë¤¬¤É¤ó¤Ê¤ËÂ礭¤¯¤Ê¤Ã¤¿¤È¤·¤Æ¤â¥Õ¥¡¥¤¥ë¤ÎËöÈø¤Þ¤Ç¥í¥Ã¥¯¤¹¤ë)¡£ +で指定される位置からファイルの末尾までの全てのバイトをロックする +(ファイルがどんなに大きくなったとしてもファイルの末尾までロックする)。 .\"O POSIX.1-2001 allows (but does not require) .\"O an implementation to support a negative @@ -448,17 +448,17 @@ struct flock { .\"O up to and including .\"O .IR l_start \-1. .\"O This is supported by Linux since kernel versions 2.4.21 and 2.5.49. -POSIX.1-2001 ¤Ç¤Ï¡¢Éé¤ÎÃͤΠ+POSIX.1-2001 では、負の値の .I l_len -¤ò¥µ¥Ý¡¼¥È¤¹¤ë¼ÂÁõ¤òǧ¤á¤Æ¤¤¤ë (ɬ¿Ü¤Ç¤Ï¤Ê¤¤)¡£ +をサポートする実装を認めている (必須ではない)。 .I l_len -¤¬Éé¤Î¾ì¹ç¡¢¥í¥Ã¥¯¤µ¤ì¤ë¥Ð¥¤¥ÈÈÏ°Ï¤Ï +が負の場合、ロックされるバイト範囲は .IR l_start + l_len -°Ê¾å +以上 .IR l_start \-1 -°Ê²¼¤È¤Ê¤ë¡£ -¤³¤ÎÆ°ºî¤Ï¥«¡¼¥Í¥ë 2.4.21 °Ê¹ß¤ª¤è¤Ó 2.5.49 °Ê¹ß¤Î Linux ¤Ç -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +以下となる。 +この動作はカーネル 2.4.21 以降および 2.5.49 以降の Linux で +サポートされている。 .\"O The .\"O .I l_type @@ -473,27 +473,27 @@ POSIX.1-2001 .\"O An exclusive lock excludes all other locks, .\"O both shared and exclusive. .I l_type -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥Õ¥¡¥¤¥ë¤ËÂФ·¤ÆÆɤ߽Ф·¥í¥Ã¥¯ +フィールドは、ファイルに対して読み出しロック .RB ( F_RDLCK ) -¤È½ñ¤­¹þ¤ß¥í¥Ã¥¯ +と書き込みロック .RB ( F_WRLCK ) -¤Î¤É¤Á¤é¤ò -ÀßÄꤹ¤ë¤«¤ò»ØÄꤹ¤ë¡£ -¥Õ¥¡¥¤¥ë¤Î¤¢¤ëÎΰè¤ËÂФ·¤Æ¡¢Æɤ߽Ф·¥í¥Ã¥¯ (¶¦Í­¥í¥Ã¥¯) ¤òÊÝ»ý¤Ç¤­¤ë -¥×¥í¥»¥¹¿ô¤ËÀ©¸Â¤Ï¤Ê¤¤¤¬¡¢½ñ¤­¹þ¤ß¥í¥Ã¥¯ (ÇÓ¾¥í¥Ã¥¯) ¤òÊÝ»ý¤Ç¤­¤ë -¤Î¤Ï°ì¤Ä¤Î¥×¥í¥»¥¹¤À¤±¤Ç¤¢¤ë¡£ÇÓ¾¥í¥Ã¥¯¤òÀßÄꤹ¤ë¤È¡¢(¶¦Í­¥í¥Ã¥¯¤« -ÇÓ¾¥í¥Ã¥¯¤Ë¤«¤«¤ï¤é¤º) ¾¤Î¥í¥Ã¥¯¤Ï²¿¤âÀßÄê¤Ç¤­¤Ê¤¤¡£ +のどちらを +設定するかを指定する。 +ファイルのある領域に対して、読み出しロック (共有ロック) を保持できる +プロセス数に制限はないが、書き込みロック (排他ロック) を保持できる +のは一つのプロセスだけである。排他ロックを設定すると、(共有ロックか +排他ロックにかかわらず) 他のロックは何も設定できない。 .\"O A single process can hold only one type of lock on a file region; .\"O if a new lock is applied to an already-locked region, .\"O then the existing lock is converted to the new lock type. .\"O (Such conversions may involve splitting, shrinking, or coalescing with .\"O an existing lock if the byte range specified by the new lock does not .\"O precisely coincide with the range of the existing lock.) -°ì¤Ä¤Î¥×¥í¥»¥¹¤Ï¡¢¥Õ¥¡¥¤¥ë¤Î¤¢¤ëÎΰè¤ËÂФ·¤Æ°ì¼ïÎà¤Î¥í¥Ã¥¯¤·¤«ÊÝ»ý¤Ç¤­¤Ê¤¤¡£ -¿·µ¬¤Î¥í¥Ã¥¯¤¬¥í¥Ã¥¯¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ëÎΰè¤ËÂФ·¤ÆŬÍѤµ¤ì¤ë¤È¡¢´û¸¤Î¥í¥Ã¥¯ -¤Ï¿·µ¬¤Î¥í¥Ã¥¯¤Î¼ïÊ̤ËÊÑ´¹¤µ¤ì¤ë -(¿·µ¬¤Î¥í¥Ã¥¯¤Ç»ØÄꤵ¤ì¤¿¥Ð¥¤¥ÈÈϰϤ¬´û¸¥í¥Ã¥¯¤ÎÈϰϤȰìÃפ¹¤ë¾ì¹ç°Ê³°¤Ç¤Ï¡¢ -ÊÑ´¹¤Î²áÄø¤Ç´û¸¤Î¥í¥Ã¥¯¤Îʬ³ä¡¢½Ì¾®¡¢·ë¹ç¤¬¹Ô¤ï¤ì¤ë¤³¤È¤¬¤¢¤ë)¡£ +一つのプロセスは、ファイルのある領域に対して一種類のロックしか保持できない。 +新規のロックがロックが設定されている領域に対して適用されると、既存のロック +は新規のロックの種別に変換される +(新規のロックで指定されたバイト範囲が既存ロックの範囲と一致する場合以外では、 +変換の過程で既存のロックの分割、縮小、結合が行われることがある)。 .TP .BR F_SETLK " (\fIstruct flock *\fP)" .\"O Acquire a lock (when @@ -511,17 +511,17 @@ POSIX.1-2001 .\"O fields of .\"O .IR lock . .RI ( l_type -¤¬ +が .B F_RDLCK -¤« +か .B F_WRLCK -¤Î¾ì¹ç¤Ï) ¥í¥Ã¥¯¤Î³ÍÆÀ¤ò¡¢ +の場合は) ロックの獲得を、 .RB ( F_UNLCK -¤Î¾ì¹ç¤Ï) ¥í¥Ã¥¯¤Î²òÊü¤ò¡¢ +の場合は) ロックの解放を、 .I flock -¹½Â¤ÂΤΥե£¡¼¥ë¥É +構造体のフィールド .IR l_whence ", " l_start ", " l_len -¤Ç»ØÄꤵ¤ì¤¿ÈϰϤΥХ¤¥È¤ËÂФ·¤Æ¹Ô¤¦¡£ +で指定された範囲のバイトに対して行う。 .\"O If a conflicting lock is held by another process, .\"O this call returns \-1 and sets .\"O .I errno @@ -529,14 +529,14 @@ POSIX.1-2001 .\"O .B EACCES .\"O or .\"O .BR EAGAIN . -»ØÄꤵ¤ì¤¿¥í¥Ã¥¯¤¬Â¾¤Î¥×¥í¥»¥¹¤¬ÀßÄꤷ¤Æ¤¤¤ë¥í¥Ã¥¯¤È¾×Æͤ¹¤ë¾ì¹ç¤Ï¡¢ -\-1 ¤òÊÖ¤·¡¢ +指定されたロックが他のプロセスが設定しているロックと衝突する場合は、 +\-1 を返し、 .I errno -¤Ë +に .B EACCES -¤« +か .B EAGAIN -¤òÀßÄꤹ¤ë¡£ +を設定する。 .TP .BR F_SETLKW " (\fIstruct flock *\fP)" .\"O As for @@ -544,8 +544,8 @@ POSIX.1-2001 .\"O but if a conflicting lock is held on the file, then wait for that .\"O lock to be released. .B F_SETLK -¤ÈƱÍͤÀ¤¬¡¢¤³¤Á¤é¤Ç¤Ï¤½¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¾×Æͤ¹¤ë¥í¥Ã¥¯¤¬ -ŬÍѤµ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ë¡¢¤½¤Î¥í¥Ã¥¯¤¬²òÊü¤µ¤ì¤ë¤Î¤òÂÔ¤ÄÅÀ¤¬°Û¤Ê¤ë¡£ +と同様だが、こちらではそのファイルに対して衝突するロックが +適用されていた場合に、そのロックが解放されるのを待つ点が異なる。 .\"O If a signal is caught while waiting, then the call is interrupted .\"O and (after the signal handler has returned) .\"O returns immediately (with return value \-1 and @@ -554,22 +554,22 @@ POSIX.1-2001 .\"O .BR EINTR ; .\"O see .\"O .BR signal (7)). -ÂԤäƤ¤¤ë´Ö¤Ë¥·¥°¥Ê¥ë¤ò¼õ¤±¤¿¾ì¹ç¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÃæÃǤµ¤ì¡¢ -(¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬Ìá¤Ã¤¿Ä¾¸å¤Ë) ÊÖ¤êÃÍ \-1 ¤òÊÖ¤¹ (¤Þ¤¿ +待っている間にシグナルを受けた場合は、システムコールは中断され、 +(シグナルハンドラが戻った直後に) 返り値 \-1 を返す (また .I errno -¤Ë +に .B EINTR -¤¬ÀßÄꤵ¤ì¤ë; +が設定される; .BR signal (7) -»²¾È)¡£ +参照)。 .TP .BR F_GETLK " (\fIstruct flock *\fP)" .\"O On input to this call, .\"O .I lock .\"O describes a lock we would like to place on the file. -¤³¤Î¥³¡¼¥ë¤Î¸Æ¤Ó½Ð¤·»þ¤Ë¤Ï¡¢ +このコールの呼び出し時には、 .I lock -¤Ë¤Ï¤½¤Î¥Õ¥¡¥¤¥ë¤ËŬÍѤ·¤è¤¦¤È¤¹¤ë¥í¥Ã¥¯¤Ë´Ø¤¹¤ë¾ðÊó¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ +にはそのファイルに適用しようとするロックに関する情報が入っている。 .\"O If the lock could be placed, .\"O .BR fcntl () .\"O does not actually place it, but returns @@ -579,15 +579,15 @@ POSIX.1-2001 .\"O field of .\"O .I lock .\"O and leaves the other fields of the structure unchanged. -¥í¥Ã¥¯¤òŬÍѤǤ­¤ë¾ì¹ç¤Ë¤Ï¡¢ +ロックを適用できる場合には、 .BR fcntl () -¤Ï¼ÂºÝ¤Ë¤Ï¥í¥Ã¥¯¤ò¹Ô¤ï¤º¡¢¹½Â¤ÂÎ +は実際にはロックを行わず、構造体 .I lock -¤Î +の .I l_type -¥Õ¥£¡¼¥ë¥É¤Ë +フィールドに .B F_UNLCK -¤òÀßÄꤷ¡¢Â¾¤Î¥Õ¥£¡¼¥ë¥É¤ÏÊѹ¹¤»¤º¤Ë¡¢Éüµ¢¤¹¤ë¡£ +を設定し、他のフィールドは変更せずに、復帰する。 .\"O If one or more incompatible locks would prevent .\"O this lock being placed, then .\"O .BR fcntl () @@ -598,16 +598,16 @@ POSIX.1-2001 .\"O and sets .\"O .I l_pid .\"O to be the PID of the process holding that lock. -°ã¤¦¼ïÊ̤Υí¥Ã¥¯¤¬ (°ì¤Ä¤â¤·¤¯¤ÏÊ£¿ô) ŬÍѤµ¤ì¤Æ¤¤¤Æ -¥í¥Ã¥¯¤òŬÍѤǤ­¤Ê¤¤¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï¡¢ +違う種別のロックが (一つもしくは複数) 適用されていて +ロックを適用できないような場合には、 .BR fcntl () -¤Ï¡¢¸¶°ø¤È¤Ê¤Ã¤¿¥í¥Ã¥¯¤Î°ì¤Ä¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¾ðÊó¤ò¹½Â¤ÂÎ +は、原因となったロックの一つについての詳細情報を構造体 .I lock -¤Î¥Õ¥£¡¼¥ë¥É +のフィールド .IR l_type ", " l_whence ", " l_start ", " l_len -¤Ë³ÊǼ¤·¡¢¤Þ¤¿ +に格納し、また .I l_pid -¤Ë¥í¥Ã¥¯¤òÊÝ»ý¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î PID ¤òÀßÄꤷ¤Æ¡¢Éüµ¢¤¹¤ë¡£ +にロックを保持しているプロセスの PID を設定して、復帰する。 .P .\"O In order to place a read lock, .\"O .I fd @@ -616,14 +616,14 @@ POSIX.1-2001 .\"O .I fd .\"O must be open for writing. .\"O To place both types of lock, open a file read-write. -Æɤ߽Ф·¥í¥Ã¥¯¤òŬÍѤ¹¤ë¤Ë¤Ï¡¢ +読み出しロックを適用するには、 .I fd -¤ÏÆɤ߽Ф·ÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -½ñ¤­¹þ¤ß¥í¥Ã¥¯¤òŬÍѤ¹¤ë¤Ë¤Ï¡¢ +は読み出し用にオープンされていなければならない。 +書き込みロックを適用するには、 .I fd -¤Ï½ñ¤­¹þ¤ßÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Æɤ߽ñ¤­Î¾Êý¤Î¥í¥Ã¥¯¤òŬÍѤ¹¤ë¤Ë¤Ï¡¢Æɤ߽ñ¤­Î¾ÍÑ¤Ç -¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は書き込み用にオープンされていなければならない。 +読み書き両方のロックを適用するには、読み書き両用で +ファイルをオープンしなければならない。 .P .\"O As well as being removed by an explicit .\"O .BR F_UNLCK , @@ -631,18 +631,18 @@ POSIX.1-2001 .\"O terminates or if it closes .\"O .I any .\"O file descriptor referring to a file on which locks are held. -¥ì¥³¡¼¥É¤Î¥í¥Ã¥¯¤Ï¡¢ +レコードのロックは、 .B F_UNLCK -¤Ë¤è¤êÌÀ¼¨Åª¤Ëºï½ü¤µ¤ì¤ë¤À¤±¤Ç¤Ê¤¯¡¢ -¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿¤È¤­¤ä¡¢¥í¥Ã¥¯¤¬Å¬ÍѤµ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤ë -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¤¤º¤ì¤«¤¬¥¯¥í¡¼¥º¤µ¤ì¤¿¾ì¹ç¤Ë¤â²òÊü¤µ¤ì¤ë¡£ -¤³¤Î¥í¥Ã¥¯¤Î²òÊü¤Ï¼«Æ°Åª¤Ë¹Ô¤ï¤ì¤ë¡£ +により明示的に削除されるだけでなく、 +プロセスが終了したときや、ロックが適用されているファイルを参照している +ファイルディスクリプタのいずれかがクローズされた場合にも解放される。 +このロックの解放は自動的に行われる。 .\"O .\" (Additional file descriptors referring to the same file .\"O .\" may have been obtained by calls to .\"O .\" .BR open "(2), " dup "(2), " dup2 "(2), or " fcntl ().) .\" .RB ( open "(2), " dup "(2), " dup2 "(2), " fcntl () -.\" ¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤ÆƱ¤¸¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ -.\" ¾¤Ë¤â¤Ç¤­¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤) +.\" の呼び出しによって同じファイルを参照するファイルディスクリプタが +.\" 他にもできているかもしれない) .\"O This is bad: it means that a process can lose the locks on .\"O a file like .\"O .I /etc/passwd @@ -650,23 +650,23 @@ POSIX.1-2001 .\"O .I /etc/mtab .\"O when for some reason a library function decides to open, read .\"O and close it. -¤³¤ÎÆ°ºî¤Ï¤Þ¤º¤¤: ¤¢¤ë¥×¥í¥»¥¹¤¬ +この動作はまずい: あるプロセスが .I /etc/passwd -¤ä +や .I /etc/mtab -¤È¤¤¤Ã¤¿¥Õ¥¡¥¤¥ë¤Ë¥í¥Ã¥¯¤òŬÍѤ·¤Æ¤¤¤ë¤È¤­¤Ë¡¢ -¤¢¤ë¥é¥¤¥Ö¥é¥ê´Ø¿ô¤¬²¿¤«¤ÎÍýͳ¤ÇƱ¤¸¥Õ¥¡¥¤¥ë¤ò open, read, close -¤¹¤ë¤È¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤Ø¤Î¥í¥Ã¥¯¤¬¼º¤ï¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ +といったファイルにロックを適用しているときに、 +あるライブラリ関数が何かの理由で同じファイルを open, read, close +すると、そのファイルへのロックが失われることになる。 .P .\"O Record locks are not inherited by a child created via .\"O .BR fork (2), .\"O but are preserved across an .\"O .BR execve (2). -¥ì¥³¡¼¥É¤Î¥í¥Ã¥¯¤Ï +レコードのロックは .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ë¤Ï·Ñ¾µ¤µ¤ì¤Ê¤¤¤¬¡¢ +で作成された子プロセスには継承されないが、 .BR execve (2) -¤ÎÁ°¸å¤Ç¤ÏÊݸ¤µ¤ì¤ë¡£ +の前後では保存される。 .P .\"O Because of the buffering performed by the .\"O .BR stdio (3) @@ -677,28 +677,28 @@ POSIX.1-2001 .\"O .BR write (2) .\"O instead. .BR stdio (3) -¤Ç¤Ï¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤¬¹Ô¤ï¤ì¤ë¤Î¤Ç¡¢ -stdio ´ØÏ¢¤Î´Ø¿ô¤Ç¤Ï¥ì¥³¡¼¥É¤Î¥í¥Ã¥¯¤Î»ÈÍѤϲóÈò¤µ¤ì¤ë; -Âå¤ï¤ê¤Ë +ではバッファリングが行われるので、 +stdio 関連の関数ではレコードのロックの使用は回避される; +代わりに .BR read (2) -¤ä +や .BR write (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +を使用すること。 .\"O .SS "Mandatory locking" -.SS "¶¯À©¥í¥Ã¥¯ (mandatory locking)" +.SS "強制ロック (mandatory locking)" .\"O (Non-POSIX.) .\"O The above record locks may be either advisory or mandatory, .\"O and are advisory by default. -¾å½Ò¤Î¥í¥Ã¥¯¤Ë¤Ï¥¢¥É¥Ð¥¤¥¶¥ê¡¦¥í¥Ã¥¯ (advisory lock) ¤È¶¯À©¥í¥Ã¥¯ (mandatory -lock) ¤ÎÆó¼ïÎब¤¢¤ë¤¬¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥¢¥É¥Ð¥¤¥¶¥ê¡¦¥í¥Ã¥¯¤È¤Ê¤ë¡£ +上述のロックにはアドバイザリ・ロック (advisory lock) と強制ロック (mandatory +lock) の二種類があるが、デフォルトではアドバイザリ・ロックとなる。 .\"O Advisory locks are not enforced and are useful only between .\"O cooperating processes. -¥¢¥É¥Ð¥¤¥¶¥ê¡¦¥í¥Ã¥¯¤Ë¶¯À©ÎϤϤʤ¯¡¢¶¨Ä´¤·¤ÆÆ°ºî¤¹¤ë¥×¥í¥»¥¹´Ö¤Ç¤Î¤ß -Í­¸ú¤Ç¤¢¤ë¡£ +アドバイザリ・ロックに強制力はなく、協調して動作するプロセス間でのみ +有効である。 .\"O Mandatory locks are enforced for all processes. -¶¯À©¥í¥Ã¥¯¤ÏÁ´¤Æ¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ¸ú²Ì¤¬¤¢¤ë¡£ +強制ロックは全てのプロセスに対して効果がある。 .\"O If a process tries to perform an incompatible access (e.g., .\"O .BR read (2) .\"O or @@ -716,23 +716,23 @@ lock) .\"O .B O_NONBLOCK .\"O flag is enabled, then the system call fails with the error .\"O .BR EAGAIN . -¤¢¤ë¥×¥í¥»¥¹¤¬¸ß´¹À­¤Î¤Ê¤¤¶¯À©¥í¥Ã¥¯¤¬Å¬ÍѤµ¤ì¤¿¥Õ¥¡¥¤¥ëÎΰè¤ËÂФ·¤Æ +あるプロセスが互換性のない強制ロックが適用されたファイル領域に対して .RB ( read (2) -¤ä +や .BR write (2) -¤Ë¤è¤ê) ¸ß´¹À­¤Î¤Ê¤¤¥¢¥¯¥»¥¹¤ò¼Â¹Ô¤·¤è¤¦¤È¤·¤¿¾ì¹ç¡¢ -¥¢¥¯¥»¥¹¤Î·ë²Ì¤Ï -¤½¤Î¥Õ¥¡¥¤¥ë¤Î¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¤Ç +により) 互換性のないアクセスを実行しようとした場合、 +アクセスの結果は +そのファイルのオープンファイル記述で .B O_NONBLOCK -¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤Ë¤è¤ê·è¤Þ¤ë¡£ +フラグが有効になっているかにより決まる。 .B O_NONBLOCK -¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤È¤­¤Ï¡¢¥í¥Ã¥¯¤¬ºï½ü¤µ¤ì¤ë¤«¡¢ -¥í¥Ã¥¯¤¬¥¢¥¯¥»¥¹¤È¸ß´¹À­¤Î¤¢¤ë¥â¡¼¥É¤ËÊÑ´¹¤µ¤ì¤ë¤Þ¤Ç¡¢ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÄä»ß (block) ¤µ¤ì¤ë¡£ +フラグが有効になっていないときは、ロックが削除されるか、 +ロックがアクセスと互換性のあるモードに変換されるまで、 +システムコールは停止 (block) される。 .B O_NONBLOCK -¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¤­¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥¨¥é¡¼ +フラグが有効になっているときは、システムコールはエラー .B EAGAIN -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .\"O To make use of mandatory locks, mandatory locking must be enabled .\"O both on the file system that contains the file to be locked, @@ -750,28 +750,28 @@ lock) .\"O .BR chmod (1) .\"O and .\"O .BR chmod (2)). -¶¯À©¥í¥Ã¥¯¤ò»ÈÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢¥í¥Ã¥¯ÂоݤΥե¡¥¤¥ë¤¬´Þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -¤È¡¢¥í¥Ã¥¯ÂоݤΥե¡¥¤¥ë¼«¿È¤ÎξÊý¤Ë¤Ä¤¤¤Æ¡¢¶¯À©¥í¥Ã¥¯¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤±¤ì -¤Ð¤Ê¤é¤Ê¤¤¡£¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤Ä¤¤¤Æ¶¯À©¥í¥Ã¥¯¤òÍ­¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢ +強制ロックを使用するためには、ロック対象のファイルが含まれるファイルシステム +と、ロック対象のファイル自身の両方について、強制ロックが有効になっていなけれ +ばならない。ファイルシステムについて強制ロックを有効にするには、 .BR mount (8) -¤Ë "\-o mand" ¥ª¥×¥·¥ç¥ó¤òÅϤ¹¤«¡¢ +に "\-o mand" オプションを渡すか、 .BR mount (2) -¤Ë +に .B MS_MANDLOCK -¥Õ¥é¥°¤ò»ØÄꤹ¤ë¡£¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¶¯À©¥í¥Ã¥¯¤òÍ­¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥×¼Â¹Ôµö²Ä (group execute permission) ¤ò̵¸ú¤È¤·¡¢ -¤«¤Ä set-group-ID µö²Ä¥Ó¥Ã¥È¤òÍ­¸ú¤Ë¤¹¤ë +フラグを指定する。ファイルについて強制ロックを有効にするには、 +そのファイルのグループ実行許可 (group execute permission) を無効とし、 +かつ set-group-ID 許可ビットを有効にする .RB ( chmod (1) -¤È +と .BR chmod (2) -¤ò»²¾È)¡£ +を参照)。 .\"O The Linux implementation of mandatory locking is unreliable. .\"O See BUGS below. -Linux ¤Î¶¯À©¥í¥Ã¥¯¤Î¼ÂÁõ¤Ï¿®ÍêÀ­¤Ë·ç¤±¤ë¤â¤Î¤Ç¤¢¤ë¡£ -²¼µ­¤Î¡Ö¥Ð¥°¡×¤ÎÀá¤ò»²¾È¤Î¤³¤È¡£ +Linux の強制ロックの実装は信頼性に欠けるものである。 +下記の「バグ」の節を参照のこと。 .\"O .SS "Managing signals" -.SS "¥·¥°¥Ê¥ë¤Î´ÉÍý" +.SS "シグナルの管理" .\"O .BR F_GETOWN , .\"O .BR F_SETOWN , .\"O .BR F_GETOWN_EX , @@ -786,7 +786,7 @@ Linux .BR F_SETOWN_EX , .BR F_GETSIG , .B F_SETSIG -¤Ï¡¢I/O ¤¬ÍøÍѲÄǽ¤Ë¤Ê¤Ã¤¿¤³¤È¤ò¼¨¤¹¥·¥°¥Ê¥ë¤ò´ÉÍý¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ +は、I/O が利用可能になったことを示すシグナルを管理するために使用される。 .TP .BR F_GETOWN " (\fIvoid\fP)" .\"O Return (as the function result) @@ -800,18 +800,18 @@ Linux .\"O process group IDs are returned as negative values (but see BUGS below). .\"O .I arg .\"O is ignored. -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +ファイルディスクリプタ .I fd -¤Î¥¤¥Ù¥ó¥È¤ËÂФ¹¤ë¥·¥°¥Ê¥ë +のイベントに対するシグナル .B SIGIO -¤ª¤è¤Ó +および .B SIGURG -¤ò¼õ¤±¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ID ¤«¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ò -(´Ø¿ô¤Î·ë²Ì¤È¤·¤Æ) ÊÖ¤¹¡£ -¥×¥í¥»¥¹ID ¤ÏÀµ¤ÎÃͤȤ·¤ÆÊÖ¤µ¤ì¤ë¡£ -¥×¥í¥»¥¹¥°¥ë¡¼¥×ID ¤ÏÉé¤ÎÃͤȤ·¤ÆÊÖ¤µ¤ì¤ë (²¼µ­¤Î¥Ð¥°¤Î¾Ï¤ò»²¾È)¡£ +を受けているプロセスのプロセスID かプロセスグループを +(関数の結果として) 返す。 +プロセスID は正の値として返される。 +プロセスグループID は負の値として返される (下記のバグの章を参照)。 .I arg -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .TP .BR F_SETOWN " (\fIlong\fP)" .\"O Set the process ID or process group ID that will receive @@ -824,32 +824,32 @@ Linux .\"O .IR arg . .\"O A process ID is specified as a positive value; .\"O a process group ID is specified as a negative value. -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +ファイルディスクリプタ .I fd -¤Î¥¤¥Ù¥ó¥ÈȯÀ¸¤òÃΤ餻¤ë¥·¥°¥Ê¥ë +のイベント発生を知らせるシグナル .B SIGIO -¤ä +や .B SIGURG -¤ò¼õ¤±¤ë¥×¥í¥»¥¹¤Î -¥×¥í¥»¥¹ ID ¤Þ¤¿¤Ï¥×¥í¥»¥¹¥°¥ë¡¼¥×ID ¤ò +を受けるプロセスの +プロセス ID またはプロセスグループID を .I arg -¤Ç»ØÄꤵ¤ì¤¿ ID ¤ËÀßÄꤹ¤ë¡£ -¥×¥í¥»¥¹ID ¤ÏÀµ¤ÎÃͤȤ·¤Æ»ØÄꤷ¡¢ -¥×¥í¥»¥¹¥°¥ë¡¼¥×ID ¤ÏÉé¤ÎÃͤȤ·¤Æ»ØÄꤹ¤ë¡£ +で指定された ID に設定する。 +プロセスID は正の値として指定し、 +プロセスグループID は負の値として指定する。 .\"O Most commonly, the calling process specifies itself as the owner .\"O (that is, .\"O .I arg .\"O is specified as .\"O .BR getpid (2)). -¤Û¤È¤ó¤É¤Î¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ï½êÍ­¼Ô¤È¤·¤Æ¼«Ê¬¼«¿È¤ò»ØÄꤹ¤ë -(¤Ä¤Þ¤ê +ほとんどの場合、呼び出し元プロセスは所有者として自分自身を指定する +(つまり .I arg -¤Ë +に .BR getpid (2) -¤ò»ØÄꤹ¤ë)¡£ +を指定する)。 .\"O .\" From glibc.info: -.\" glibc.info ¤è¤ê: +.\" glibc.info より: .\"O If you set the .\"O .B O_ASYNC .\"O status flag on a file descriptor by using the @@ -864,23 +864,23 @@ Linux .\"O can be used to obtain delivery of a signal other than .\"O .BR SIGIO . .BR fcntl () -¤Î +の .B F_SETFL -¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë +コマンドを使用してファイルディスクリプタに .B O_ASYNC -¾õÂ֥ե饰¤òÀßÄꤷ¤¿¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ø¤Î -Æþ½ÐÎϤ¬²Äǽ¤Ë¤Ê¤ëÅÙ¤Ë +状態フラグを設定した場合には、そのファイルディスクリプタへの +入出力が可能になる度に .B SIGIO -¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£ +シグナルが送られる。 .B F_SETSIG -¤Ï +は .B SIGIO -°Ê³°¤ÎÊ̤Υ·¥°¥Ê¥ë¤ÎÇÛÁ÷¤ò¼õ¤±¤é¤ì¤ë¤è¤¦¤Ë -¤¹¤ë¤Î¤Ë¤â»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +以外の別のシグナルの配送を受けられるように +するのにも使うことができる。 .\"O If this permission check fails, then the signal is .\"O silently discarded. -µö²Ä (permission) ¤Î¥Á¥§¥Ã¥¯¤Ç¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ -¥·¥°¥Ê¥ë¤ÏÌۤäƼΤƤé¤ì¤ë¡£ +許可 (permission) のチェックで失敗した場合には、 +シグナルは黙って捨てられる。 .\"O Sending a signal to the owner process (group) specified by .\"O .B F_SETOWN @@ -890,14 +890,14 @@ Linux .\"O .B F_SETOWN .\"O (but see BUGS below). .B F_SETOWN -¤Ë¤è¤ê»ØÄꤵ¤ì¤¿½êÍ­¼Ô¤Î¥×¥í¥»¥¹ (¤Þ¤¿¤Ï¥×¥í¥»¥¹¥°¥ë¡¼¥×) ¤Ë -¥·¥°¥Ê¥ë¤òÁ÷¤ëºÝ¤Ë¤Ï¡¢ +により指定された所有者のプロセス (またはプロセスグループ) に +シグナルを送る際には、 .BR kill (2) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¤Î¤ÈƱ¤¸µö²Ä¤Î¥Á¥§¥Ã¥¯¤¬¹Ô¤ï¤ì¤ë¡£ -¤³¤Î¤È¤­¡¢¥·¥°¥Ê¥ë¤òÁ÷¿®¤¹¤ë¥×¥í¥»¥¹¤Ï +に書かれているのと同じ許可のチェックが行われる。 +このとき、シグナルを送信するプロセスは .B F_SETOWN -¤ò»È¤Ã¤¿¥×¥í¥»¥¹¤Ç¤¢¤ë -(⤷¡¢²¼µ­¤Î¡Ö¥Ð¥°¡×¤Î¾Ï¤ò»²¾È¤Î¤³¤È)¡£ +を使ったプロセスである +(但し、下記の「バグ」の章を参照のこと)。 .\"O If the file descriptor .\"O .I fd @@ -912,15 +912,15 @@ Linux .\"O is sent in any situation where .\"O .BR select (2) .\"O would report the socket as having an "exceptional condition".) -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥½¥±¥Ã¥È¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ +ファイルディスクリプタがソケットを参照している場合は、 .B F_SETOWN -¤ò»ÈÍѤ·¤Æ¡¢¥½¥±¥Ã¥È¤ËÂÓ°è³° (out-of-band) ¥Ç¡¼¥¿¤¬ÆϤ¤¤¿»þ¤Ë +を使用して、ソケットに帯域外 (out-of-band) データが届いた時に .B SIGURG -¥·¥°¥Ê¥ë¤òÇÛÁ÷¤¹¤ëÁê¼ê¤òÁªÂò¤¹¤ë¤³¤È¤â¤Ç¤­¤ë +シグナルを配送する相手を選択することもできる .RB ( SIGURG -¤¬Á÷¤é¤ì¤¿¾ì¹ç¤Ë¤Ï +が送られた場合には .BR select (2) -¤¬¥½¥±¥Ã¥È¤¬¡ÖÆÃÊ̤ʾõÂ֡פˤ¢¤ë¤ÈÊó¹ð¤¹¤ë¤³¤È¤À¤í¤¦)¡£ +がソケットが「特別な状態」にあると報告することだろう)。 .\"O .\" The following appears to be rubbish. It doesn't seem to .\"O .\" be true according to the kernel source, and I can write .\"O .\" a program that gets a terminal-generated SIGIO even though @@ -931,18 +931,18 @@ Linux .\"O .\" .I fd .\"O .\" refers to a terminal device, then SIGIO .\"O .\" signals are sent to the foreground process group of the terminal. -.\" °Ê²¼¤Îµ­½Ò¤Ï¥´¥ß¤À¤í¤¦¡£ -.\" ¥«¡¼¥Í¥ë¥½¡¼¥¹¤ò¸«¤ë¤È¤³¤Îµ­½Ò¤Ï´Ö°ã¤Ã¤Æ¤¤¤ë¤è¤¦¤À¤·¡¢ -.\" ¥×¥í¥°¥é¥à¤ò½ñ¤¤¤Æ¤ß¤¿¤È¤³¤í¡¢Ã¼Ëö¤Î¥Õ¥©¥¢¥°¥é¥ó¥É¡¦¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ç -.\" ¤Ê¤¯¤Æ¤â¡¢Ã¼Ëö¤¬À¸À®¤·¤¿ SIGIO ¥·¥°¥Ê¥ë¤ò¼õ¤±¤È¤ë¡£ +.\" 以下の記述はゴミだろう。 +.\" カーネルソースを見るとこの記述は間違っているようだし、 +.\" プログラムを書いてみたところ、端末のフォアグランド・プロセスグループで +.\" なくても、端末が生成した SIGIO シグナルを受けとる。 .\" -- MTK, 8 Apr 05 .\" -.\" ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Ã¼Ëö¥Ç¥Ð¥¤¥¹¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -.\" SIGIO ¥·¥°¥Ê¥ë¤Ï¤½¤ÎüËö¤Î¥Õ¥©¥¢¥°¥é¥ó¥É¡¦¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ø¤ÈÁ÷¤é¤ì¤ë¡£ +.\" ファイルディスクリプタが端末デバイスを参照している場合には、 +.\" SIGIO シグナルはその端末のフォアグランド・プロセスグループへと送られる。 .\"O The following was true in 2.6.x kernels up to and including .\"O kernel 2.6.11: -¥Ð¡¼¥¸¥ç¥ó 2.6.11 °ÊÁ°¤Î 2.6.x ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢°Ê²¼¤Ë¼¨¤¹Æ°ºî¤Ç¤¢¤Ã¤¿¡£ +バージョン 2.6.11 以前の 2.6.x カーネルでは、以下に示す動作であった。 .RS .IP .\"O If a nonzero value is given to @@ -956,16 +956,16 @@ Linux .\"O .\" 'switch' in fs/fcntl.c::send_sigio_to_task() -- MTK, Apr 2005 .\"O instead of being a process ID identifying a whole process, .\"O it is a thread ID identifying a specific thread within a process. -¥¹¥ì¥Ã¥É¥°¥ë¡¼¥×¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥¹¥ì¥Ã¥É¥é¥¤¥Ö¥é¥ê (Î㤨¤Ð NPTL) ¤ò -»È¤Ã¤ÆÆ°ºî¤·¤Æ¤¤¤ë¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¡¦¥×¥í¥»¥¹¤Ç +スレッドグループをサポートしているスレッドライブラリ (例えば NPTL) を +使って動作しているマルチスレッド・プロセスで .B F_SETSIG -¤Ë 0 °Ê³°¤ÎÃͤò»ØÄꤷ¤¿¾ì¹ç¡¢ +に 0 以外の値を指定した場合、 .B F_SETOWN -¤ËÀµ¤ÎÃͤòÅϤ¹¤È¡¢¤½¤Î°ÕÌ£¤¬°ã¤Ã¤Æ¤¯¤ë: +に正の値を渡すと、その意味が違ってくる: .\" The relevant place in the (2.6) kernel source is the .\" 'switch' in fs/fcntl.c::send_sigio_to_task() -- MTK, Apr 2005 -¥×¥í¥»¥¹Á´ÂΤò¼¨¤¹¥×¥í¥»¥¹ID ¤Ç¤Ï¤Ê¤¯¡¢¥×¥í¥»¥¹Æâ¤ÎÆÃÄê¤Î -¥¹¥ì¥Ã¥É¤ò¼¨¤¹¥¹¥ì¥Ã¥ÉID ¤È²ò¼á¤µ¤ì¤ë¡£ +プロセス全体を示すプロセスID ではなく、プロセス内の特定の +スレッドを示すスレッドID と解釈される。 .\"O Consequently, it may be necessary to pass .\"O .B F_SETOWN .\"O the result of @@ -975,15 +975,15 @@ Linux .\"O to get sensible results when .\"O .B F_SETSIG .\"O is used. -¤·¤¿¤¬¤Ã¤Æ¡¢ +したがって、 .B F_SETSIG -¤ò»È¤¦¾ì¹ç¤Ë¤Ï¡¢¤­¤Á¤ó¤È·ë²Ì¤ò¼õ¤±¼è¤ë¤Ë¤Ï¡¢ +を使う場合には、きちんと結果を受け取るには、 .B F_SETOWN -¤ËÅϤ¹Ãͤò +に渡す値を .BR getpid (2) -¤Ç¤Ï¤Ê¤¯ +ではなく .BR gettid (2) -¤ÎÊÖ¤êÃͤˤ¹¤ëɬÍפ¬¤¢¤ë¤À¤í¤¦¡£ +の返り値にする必要があるだろう。 .\"O (In current Linux threading implementations, .\"O a main thread's thread ID is the same as its process ID. .\"O This means that a single-threaded program can equally use @@ -991,13 +991,13 @@ Linux .\"O or .\"O .BR getpid (2) .\"O in this scenario.) -(¸½¾õ¤Î Linux ¥¹¥ì¥Ã¥É¼ÂÁõ¤Ç¤Ï¡¢¥á¥¤¥ó¡¦¥¹¥ì¥Ã¥É¤Î¥¹¥ì¥Ã¥ÉID ¤Ï -¤½¤Î¥¹¥ì¥Ã¥É¤Î¥×¥í¥»¥¹ID ¤ÈƱ¤¸¤Ç¤¢¤ë¡£¤Ä¤Þ¤ê¡¢ -¥·¥°¥Ê¥ë¡¦¥¹¥ì¥Ã¥É¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Î¾ì¹ç +(現状の Linux スレッド実装では、メイン・スレッドのスレッドID は +そのスレッドのプロセスID と同じである。つまり、 +シグナル・スレッドのプログラムではこの場合 .BR gettid (2) -¤È +と .BR getpid (2) -¤ÏÁ´¤¯Æ±¤¸¤è¤¦¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£) +は全く同じように使うことができる。) .\"O Note, however, that the statements in this paragraph do not apply .\"O to the .\"O .B SIGURG @@ -1009,14 +1009,14 @@ Linux .\"O .\" kill_fasync()/send_sigio()/send_sigio_to_task() .\"O .\" to directly call send_group_sig_info() .\"O .\" -- MTK, Apr 2005 (kernel 2.6.11) -¤¿¤À¤·¡¢Ãí°Õ¤¹¤Ù¤­ÅÀ¤È¤·¤Æ¡¢¤³¤ÎÃÊÍî¤Ç½Ò¤Ù¤¿¤³¤È¤Ï¡¢ -¥½¥±¥Ã¥È¤ÎÂÓ°è³°¥Ç¡¼¥¿¤¬ÆϤ¤¤¿¤È¤­¤ËÀ¸À®¤µ¤ì¤ë +ただし、注意すべき点として、この段落で述べたことは、 +ソケットの帯域外データが届いたときに生成される .B SIGURG -¥·¥°¥Ê¥ë¤Ë¤Ï¤¢¤Æ¤Ï¤Þ¤é¤Ê¤¤¡£ -¤³¤Î¥·¥°¥Ê¥ë¤Ï¾ï¤Ë¥×¥í¥»¥¹¤«¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ËÁ÷¤é¤ì¡¢ -Á÷¿®Àè¤Ï +シグナルにはあてはまらない。 +このシグナルは常にプロセスかプロセスグループに送られ、 +送信先は .B F_SETOWN -¤ËÅϤµ¤ì¤¿Ãͤˤ·¤¿¤¬¤Ã¤Æ·è¤á¤é¤ì¤ë¡£ +に渡された値にしたがって決められる。 .\" send_sigurg()/send_sigurg_to_task() bypasses .\" kill_fasync()/send_sigio()/send_sigio_to_task() .\" to directly call send_group_sig_info() @@ -1032,18 +1032,18 @@ Linux .\"O and .\"O .B SIGURG .\"O signals at a particular thread. -¾åµ­¤ÎÆ°ºî¤Ï¡¢Linux 2.6.12 ¤Ç¿Þ¤é¤º¤âºï½ü¤µ¤ì¡¢ -¸µ¤ËÌᤵ¤ì¤Ê¤¤Í½Äê¤Ç¤¢¤ë¡£ -Linux 2.6.32 °Ê¹ß¤Ç¡¢ÆÃÄê¤Î¥¹¥ì¥Ã¥É°¸¤Ë¥·¥°¥Ê¥ë +上記の動作は、Linux 2.6.12 で図らずも削除され、 +元に戻されない予定である。 +Linux 2.6.32 以降で、特定のスレッド宛にシグナル .B SIGIO -¤È +と .B SIGURG -¤òÁ÷¤ë¤Ë¤Ï +を送るには .B F_SETOWN_EX -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .TP .\"O .BR F_GETOWN_EX " (struct f_owner_ex *) (since Linux 2.6.32)" -.BR F_GETOWN_EX " (struct f_owner_ex *) (Linux 2.6.32 °Ê¹ß)" +.BR F_GETOWN_EX " (struct f_owner_ex *) (Linux 2.6.32 以降)" .\"O Return the current file descriptor owner settings .\"O as defined by a previous .\"O .BR F_SETOWN_EX @@ -1051,12 +1051,12 @@ Linux 2.6.32 .\"O The information is returned in the structure pointed to by .\"O .IR arg , .\"O which has the following form: -ľÁ°¤Î +直前の .B F_SETOWN_EX -Áàºî¤ÇÄêµÁ¤µ¤ì¤¿¸½ºß¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î½êÍ­¼ÔÀßÄê -¤òÊÖ¤¹¡£¾ðÊó¤Ï +操作で定義された現在のファイルディスクリプタの所有者設定 +を返す。情報は .I arg -¤¬»Ø¤¹¹½Â¤ÂΤ˳ÊǼ¤µ¤ì¤ÆÊÖ¤µ¤ì¤ë¡£¹½Â¤ÂΤϰʲ¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +が指す構造体に格納されて返される。構造体は以下の通りである。 .nf .in +4n @@ -1075,11 +1075,11 @@ struct f_owner_ex { .\"O or .\"O .BR F_OWNER_PGRP . .I type -¥Õ¥£¡¼¥ë¥É¤Ï¡¢ +フィールドは、 .B F_OWNER_TID , .B F_OWNER_PID , .B F_OWNER_PGRP -¤Î¤¤¤º¤ì¤«°ì¤Ä¤ÎÃͤȤʤ롣 +のいずれか一つの値となる。 .\"O The .\"O .I pid .\"O field is a positive integer representing a thread ID, process ID, @@ -1088,23 +1088,23 @@ struct f_owner_ex { .\"O .B F_SETOWN_EX .\"O for more details. .I pid -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥¹¥ì¥Ã¥É ID¡¢¥×¥í¥»¥¹ ID¡¢¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤ò -ɽ¤¹Àµ¤ÎÀ°¿ô¤Ç¤¢¤ë¡£¾ÜºÙ¤Ï +フィールドは、スレッド ID、プロセス ID、プロセスグループ ID を +表す正の整数である。詳細は .B F_SETOWN_EX -¤ò»²¾È¡£ +を参照。 .TP .\"O .BR F_SETOWN_EX " (struct f_owner_ex *) (since Linux 2.6.32)" -.BR F_SETOWN_EX " (struct f_owner_ex *) (Linux 2.6.32 °Ê¹ß)" +.BR F_SETOWN_EX " (struct f_owner_ex *) (Linux 2.6.32 以降)" .\"O This operation performs a similar task to .\"O .BR F_SETOWN . .\"O It allows the caller to direct I/O availability signals .\"O to a specific thread, process, or process group. -¤³¤ÎÁàºî¤Ï +この操作は .B F_SETOWN -¤ÈƱÍͤνèÍý¤ò¹Ô¤¦¡£ -¤³¤ÎÁàºî¤ò»È¤¦¤È¡¢I/O ¤¬ÍøÍѲÄǽ¤Ë¤Ê¤Ã¤¿¤³¤È¤ò¼¨¤¹¥·¥°¥Ê¥ë¤ò¡¢ -ÆÃÄê¤Î¥¹¥ì¥Ã¥É¡¢¥×¥í¥»¥¹¡¢¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ËÁ÷¤ë¤³¤È¤¬¤Ç¤­¤ë -¤è¤¦¤Ë¤Ê¤ë¡£ +と同様の処理を行う。 +この操作を使うと、I/O が利用可能になったことを示すシグナルを、 +特定のスレッド、プロセス、プロセスグループに送ることができる +ようになる。 .\"O The caller specifies the target of signals via .\"O .IR arg , .\"O which is a pointer to a @@ -1115,18 +1115,18 @@ struct f_owner_ex { .\"O field has one of the following values, which define how .\"O .I pid .\"O is interpreted: -¸Æ¤Ó½Ð¤·¸µ¤Ï¡¢ +呼び出し元は、 .I arg -·Ðͳ¤Ç¥·¥°¥Ê¥ë¤ÎÇÛÁ÷Àè¤ò»ØÄꤹ¤ë¡£ +経由でシグナルの配送先を指定する。 .I arg -¤Ï +は .I f_owner_ex -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ +構造体へのポインタである。 .I type -¥Õ¥£¡¼¥ë¥É¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«¤ÎÃͤò¼è¤ê¡¢ -¤³¤ÎÃͤˤè¤ê +フィールドは以下のいずれかの値を取り、 +この値により .I pid -¤¬¤É¤Î¤è¤¦¤Ë²ò¼á¤µ¤ì¤ë¤«¤¬µ¬Äꤵ¤ì¤ë¡£ +がどのように解釈されるかが規定される。 .RS .TP .BR F_OWNER_TID @@ -1137,22 +1137,22 @@ struct f_owner_ex { .\"O .BR gettid (2)) .\"O is specified in .\"O .IR pid . -¥¹¥ì¥Ã¥É ID ¤¬ +スレッド ID が .I pid -¤Ç»ØÄꤵ¤ì¤¿ÃͤΥ¹¥ì¥Ã¥É¤Ë¤½¤Î¥·¥°¥Ê¥ë¤òÁ÷¤ë -(¥¹¥ì¥Ã¥É ID ¤Ï +で指定された値のスレッドにそのシグナルを送る +(スレッド ID は .BR clone (2) -¤ä +や .BR gettid (2) -¤Î¸Æ¤Ó½Ð¤·¤ÇÊÖ¤µ¤ì¤ëÃͤǤ¢¤ë)¡£ +の呼び出しで返される値である)。 .TP .BR F_OWNER_PID .\"O Send the signal to the process whose ID .\"O is specified in .\"O .IR pid . -ID ¤¬ +ID が .I pid -¤Ç»ØÄꤵ¤ì¤¿ÃÍ¤Î¥×¥í¥»¥¹¤Ë¤½¤Î¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +で指定された値のプロセスにそのシグナルを送る。 .TP .BR F_OWNER_PGRP .\"O Send the signal to the process group whose ID @@ -1161,11 +1161,11 @@ ID .\"O (Note that, unlike with .\"O .BR F_SETOWN , .\"O a process group ID is specified as a positive value here.) -ID ¤¬ +ID が .I pid -¤Ç»ØÄꤵ¤ì¤¿ÃÍ¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë¤½¤Î¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +で指定された値のプロセスグループにそのシグナルを送る。 .RB ( F_SETOWN -¤È°Û¤Ê¤ê¡¢¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤Ë¤ÏÀµ¤ÎÃͤò»ØÄꤹ¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£) +と異なり、プロセスグループ ID には正の値を指定する点に注意すること。) .RE .TP .BR F_GETSIG " (\fIvoid\fP)" @@ -1182,20 +1182,20 @@ ID .\"O .BR SA_SIGINFO . .\"O .I arg .\"O is ignored. -ÆþÎϤä½ÐÎϤ¬²Äǽ¤Ë¤Ê¤Ã¤¿¾ì¹ç¤ËÁ÷¤ë¥·¥°¥Ê¥ë¤ò -(´Ø¿ô¤Î·ë²Ì¤È¤·¤Æ) ÊÖ¤¹¡£ -ÃÍ¥¼¥í¤Ï +入力や出力が可能になった場合に送るシグナルを +(関数の結果として) 返す。 +値ゼロは .B SIGIO -¤òÁ÷¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +を送ることを意味する。 .RB ( SIGIO -¤ò´Þ¤à) ¾¤ÎÃͤϤ¤¤º¤ì¤â¡¢ +を含む) 他の値はいずれも、 .B SIGIO -¤ÎÂå¤ï¤ê¤ËÁ÷¤ë¥·¥°¥Ê¥ëÈÖ¹æ¤òɽ¤¹¡£ -¸å¼Ô¤Î¾ì¹ç¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò +の代わりに送るシグナル番号を表す。 +後者の場合、シグナルハンドラを .B SA_SIGINFO -¥Õ¥é¥°ÉÕ¤­¤ÇÀßÄꤹ¤ì¤Ð¡¢¥Ï¥ó¥É¥é¤ÇÄɲäξðÊó¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +フラグ付きで設定すれば、ハンドラで追加の情報を得ることができる。 .I arg -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .TP .BR F_SETSIG " (\fIlong\fP)" .\"O Set the signal sent when input or output becomes possible @@ -1209,20 +1209,20 @@ ID .\"O is the signal to send instead, and in this case additional info .\"O is available to the signal handler if installed with .\"O .BR SA_SIGINFO . -ÆþÎϤä½ÐÎϤ¬²Äǽ¤Ë¤Ê¤Ã¤¿¾ì¹ç¤ËÁ÷¤ë¥·¥°¥Ê¥ë¤ò +入力や出力が可能になった場合に送るシグナルを .I arg -¤Ë»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£ -ÃÍ¥¼¥í¤Ï +に指定された値に設定する。 +値ゼロは .B SIGIO -¤òÁ÷¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +を送ることを意味する。 .RB ( SIGIO -¤ò´Þ¤à) ¾¤ÎÃͤϤ¤¤º¤ì¤â¡¢ +を含む) 他の値はいずれも、 .B SIGIO -¤ÎÂå¤ï¤ê¤ËÁ÷¤ë¥·¥°¥Ê¥ëÈÖ¹æ¤òɽ¤¹¡£ -¸å¼Ô¤Î¾ì¹ç¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò +の代わりに送るシグナル番号を表す。 +後者の場合、シグナルハンドラを .B SA_SIGINFO -¥Õ¥é¥°ÉÕ¤­¤ÇÀßÄꤹ¤ì¤Ð¡¢ -¥Ï¥ó¥É¥é¤ÇÄɲäξðÊó¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +フラグ付きで設定すれば、 +ハンドラで追加の情報を得ることができる。 .\" .\" The following was true only up until 2.6.11: .\" @@ -1233,12 +1233,12 @@ ID .\"O .\" See the description of .\"O .\" .B F_SETOWN .\"O .\" for more details. -.\" ¤Þ¤¿¡¢ +.\" また、 .\" .B F_SETSIG -.\" ¤Ë 0 °Ê³°¤ÎÃͤòÅϤ¹¤È¡¢¥·¥°¥Ê¥ë¤Î¼õ¿®¼Ô¤ò¥×¥í¥»¥¹Á´ÂΤ«¤é -.\" ¥×¥í¥»¥¹Æâ¤ÎÆÃÄê¤Î¥¹¥ì¥Ã¥É¤ËÊѹ¹¤µ¤ì¤ë¡£¾ÜºÙ¤Ï +.\" に 0 以外の値を渡すと、シグナルの受信者をプロセス全体から +.\" プロセス内の特定のスレッドに変更される。詳細は .\" .B F_SETOWN -.\" ¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +.\" の説明を参照のこと。 .\"O By using .\"O .B F_SETSIG @@ -1252,13 +1252,13 @@ ID .\"O .I siginfo_t .\"O structure. .B F_SETSIG -¤Ë¥¼¥í°Ê³°¤ÎÃͤòÀßÄꤷ¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë +にゼロ以外の値を設定し、シグナルハンドラに .B SA_SIGINFO -¥Õ¥é¥°¤òÀßÄꤹ¤ë¤È¡¢ +フラグを設定すると、 .RB ( sigaction (2) -¤ò»²¾È) I/O ¥¤¥Ù¥ó¥È¤Ë´Ø¤¹¤ëÄɲäξðÊó¤¬ +を参照) I/O イベントに関する追加の情報が .I siginfo_t -¹½Â¤ÂΤǥ·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ØÅϤµ¤ì¤ë¡£ +構造体でシグナルハンドラへ渡される。 .\"O If the .\"O .I si_code .\"O field indicates the source is @@ -1276,20 +1276,20 @@ ID .\"O .B O_NONBLOCK .\"O set etc.) to determine which file descriptors are available for I/O. .I si_code -¥Õ¥£¡¼¥ë¥É¤¬¼¨¤¹¥·¥°¥Ê¥ë¤Î¸¶°ø¤¬ +フィールドが示すシグナルの原因が .B SI_SIGIO -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I si_fd -¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¥¤¥Ù¥ó¥È¤ËÂбþ¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢¤É¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÍøÍѲÄǽ¤«¤ò¼¨¤¹¾ðÊó¤Ï -¤Ê¤¤¤Î¤Ç¡¢¤É¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç I/O ¤¬²Äǽ¤«¤òȽÃǤ¹¤ë¤¿¤á¤Ë¤Ï -Ä̾ï¤Îµ¡¹½ +フィールドにはイベントに対応するファイルディスクリプタが入っている。 +それ以外の場合は、どのファイルディスクリプタが利用可能かを示す情報は +ないので、どのファイルディスクリプタで I/O が可能かを判断するためには +通常の機構 .RB ( select (2), .BR poll (2), .B O_NONBLOCK -¤òÀßÄꤷ¤¿ +を設定した .BR read (2) -¤Ê¤É) ¤ò»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +など) を使用しなければならない。 .\"O By selecting a real time signal (value >= .\"O .BR SIGRTMIN ), @@ -1299,14 +1299,14 @@ ID .\"O if .\"O .B SA_SIGINFO .\"O is set for the signal handler, as above. -¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë (Ãͤ¬ +リアルタイムシグナル (値が .B SIGRTMIN -°Ê¾å) ¤òÁªÂò¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ -Ʊ¤¸¥·¥°¥Ê¥ëÈÖ¹æ¤ò»ý¤ÄÊ£¿ô¤Î I/O ¥¤¥Ù¥ó¥È¤¬¥­¥å¡¼¤ËÆþ¤ë¤³¤È¤¬¤¢¤ë -(¥­¥å¡¼¤ËÆþ¤ì¤ë¤«¤É¤¦¤«¤ÏÍøÍѲÄǽ¤Ê¥á¥â¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë)¡£ -¾åµ­¤ÈƱÍÍ¡¢ +以上) を選択している場合は、 +同じシグナル番号を持つ複数の I/O イベントがキューに入ることがある +(キューに入れるかどうかは利用可能なメモリに依存している)。 +上記と同様、 .B SA_SIGINFO -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Î¤¿¤á¤ÎÄɲäξðÊó¤¬ÆÀ¤é¤ì¤ë¡£ +が設定されている場合、シグナルハンドラのための追加の情報が得られる。 .\"O Note that Linux imposes a limit on the .\"O number of real-time signals that may be queued to a @@ -1320,17 +1320,17 @@ ID .\"O and this signal is delivered to the entire .\"O process rather than to a specific thread. .\" See fs/fcntl.c::send_sigio_to_task() (2.4/2.6) sources -- MTK, Apr 05 -°Ê²¼¤ÎÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -Linux ¤Ç¤Ï°ì¤Ä¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤ë¥ê¥¢¥ë¥¿¥¤¥à -¥·¥°¥Ê¥ë¤Î¿ô¤Ë¾å¸Â¤¬Àߤ±¤é¤ì¤Æ¤ª¤ê +以下の点に注意すること。 +Linux では一つのプロセスに対してキューに入れられるリアルタイム +シグナルの数に上限が設けられており .RB ( getrlimit (2) -¤È +と .BR signal (7) -¤ò»²¾È)¡¢¤³¤Î¾å¸Â¤Ë㤹¤ë¤È¥«¡¼¥Í¥ë¤Ï +を参照)、この上限に達するとカーネルは .B SIGIO -¥·¥°¥Ê¥ë¤òÇÛÁ÷¤¹¤ë¡£¤³¤Î +シグナルを配送する。この .B SIGIO -¥·¥°¥Ê¥ë¤Ï¡¢»ØÄꤵ¤ì¤¿¥¹¥ì¥Ã¥É¤Ç¤Ï¤Ê¤¯¥×¥í¥»¥¹Á´ÂΤËÁ÷¤é¤ì¤ë¡£ +シグナルは、指定されたスレッドではなくプロセス全体に送られる。 .PP .\"O Using these mechanisms, a program can implement fully asynchronous I/O .\"O without using @@ -1338,11 +1338,11 @@ Linux .\"O or .\"O .BR poll (2) .\"O most of the time. -¤³¤ì¤é¤Îµ¡¹½¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç¡¢¤Û¤È¤ó¤É¤Î¾ì¹ç¤Ç +これらの機構を使用することで、ほとんどの場合で .BR select (2) -¤ä +や .BR poll (2) -¤ò»ÈÍѤ»¤º¤Ë´°Á´¤ÊÈóƱ´ü I/O ¤ò¼ÂÁõ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使用せずに完全な非同期 I/O を実装することができる。 .PP .\"O The use of .\"O .BR O_ASYNC , @@ -1352,7 +1352,7 @@ Linux .BR O_ASYNC , .BR F_GETOWN , .B F_SETOWN -¤Î»ÈÍÑ¤Ï BSD ¤È Linux ¤ËÆÃÍ­¤Ç¤¢¤ë¡£ +の使用は BSD と Linux に特有である。 .\"O .BR F_GETOWN_EX , .\"O .BR F_SETOWN_EX , .\"O .BR F_GETSIG , @@ -1367,12 +1367,12 @@ Linux .BR F_SETOWN_EX , .BR F_GETSIG , .B F_SETSIG -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£POSIX ¤Ë¤Ï¡¢Æ±ÍͤΤ³¤È¤ò¹Ô¤¦¤¿¤á¤Ë¡¢ÈóƱ´ü I/O ¤È +は Linux 固有である。POSIX には、同様のことを行うために、非同期 I/O と .I aio_sigevent -¹½Â¤ÂΤ¬¤¢¤ë¡£Linux ¤Ç¤Ï¡¢GNU C ¥é¥¤¥Ö¥é¥ê (Glibc) ¤Î°ìÉô¤È¤·¤Æ -¤³¤ì¤é¤âÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +構造体がある。Linux では、GNU C ライブラリ (Glibc) の一部として +これらも利用可能である。 .\"O .SS Leases -.SS "¥ê¡¼¥¹ (leases)" +.SS "リース (leases)" .\"O .B F_SETLEASE .\"O and .\"O .B F_GETLEASE @@ -1380,16 +1380,16 @@ Linux .\"O and retrieve the current lease, on the open file description .\"O referred to by the file descriptor .\"O .IR fd . -(Linix 2.4 °Ê¹ß¤ÇÍøÍѲÄǽ) +(Linix 2.4 以降で利用可能) .B F_SETLEASE -¤Ï¡¢ +は、 .I fd -¤¬»²¾È¤¹¤ë¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¤ËÂФ·¤Æ¿·¤·¤¤¥ê¡¼¥¹¤òÀßÄꤹ¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ +が参照するオープンファイル記述に対して新しいリースを設定するのに使用される。 .B F_GETLEASE -¤Ï¡¢ +は、 .I fd -¤¬»²¾È¤¹¤ë¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¤ËÂФ·¤ÆÀßÄꤵ¤ì¤Æ¤¤¤ë -¸½ºß¤Î¥ê¡¼¥¹¤ò¼èÆÀ¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ +が参照するオープンファイル記述に対して設定されている +現在のリースを取得するのに使用される。 .\"O A file lease provides a mechanism whereby the process holding .\"O the lease (the "lease holder") is notified (via delivery of a signal) .\"O when a process (the "lease breaker") tries to @@ -1397,23 +1397,23 @@ Linux .\"O or .\"O .BR truncate (2) .\"O the file referred to by that file descriptor. -¥Õ¥¡¥¤¥ë¤Î¥ê¡¼¥¹¤Ë¤è¤ê¡¢ -¤¢¤ë¥×¥í¥»¥¹ ("lease breaker") ¤¬¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬»²¾È -¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ +ファイルのリースにより、 +あるプロセス ("lease breaker") がそのファイルディスクリプタが参照 +しているファイルに対して .BR open (2) -¤ä +や .BR truncate (2) -¤ò¹Ô¤ª¤¦¤È¤·¤¿ºÝ¤Ë¡¢¥ê¡¼¥¹¤òÊÝ»ý¤·¤Æ¤¤¤ë¥×¥í¥»¥¹ ("lease holder") ¤Ø -(¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤Ë¤è¤ë) ÄÌÃΤ¬¹Ô¤ï¤ì¤ë¤È¤¤¤¦µ¡¹½¤¬Ä󶡤µ¤ì¤ë¡£ +を行おうとした際に、リースを保持しているプロセス ("lease holder") へ +(シグナルの配送による) 通知が行われるという機構が提供される。 .TP .BR F_SETLEASE " (\fIlong\fP)" .\"O Set or remove a file lease according to which of the following .\"O values is specified in the integer .\"O .IR arg : .I arg -¤ÎÆâÍƤ˴𤤤ƥե¡¥¤¥ë¤Î¥ê¡¼¥¹¤ÎÀßÄê¡¢ºï½ü¤ò¹Ô¤¦¡£À°¿ô +の内容に基いてファイルのリースの設定、削除を行う。整数 .I arg -¤Ë¤Ï°Ê²¼¤ÎÃͤ¬»ØÄê¤Ç¤­¤ë: +には以下の値が指定できる: .RS .TP @@ -1425,13 +1425,13 @@ Linux .\"O .\" See the man-pages-2.09 Changelog for further info. .\"O A read lease can only be placed on a file descriptor that .\"O is opened read-only. -Æɤ߽Ф·¥ê¡¼¥¹¤ò¼èÆÀ¤¹¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¤¬½ñ¤­¹þ¤ßÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤¿¤ê¡¢¥Õ¥¡¥¤¥ë¤¬ÀÚ¤êµÍ¤á¤é¤ì¤¿¾ì¹ç¤Ë¡¢ -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ËÄÌÃΤ¬¹Ô¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -.\" °Ê²¼¤ÎÆâÍƤϥ«¡¼¥Í¥ë 2.6.10 ¤Ç¼ÂÁõ¤µ¤ì¤¿¡£ -.\" ¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï man-pages-2.09 ¤Î Changelog ¤ò»²¾È¡£ -Æɤ߽Ф·¥ê¡¼¥¹¤òÀßÄê¤Ç¤­¤ë¤Î¤Ï¡¢Æɤ߽Ф·ÀìÍѤǥª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ¤Î¤ß¤Ç¤¢¤ë¡£ +読み出しリースを取得する。これにより、 +そのファイルが書き込み用にオープンされたり、ファイルが切り詰められた場合に、 +呼び出し元のプロセスに通知が行われるようになる。 +.\" 以下の内容はカーネル 2.6.10 で実装された。 +.\" より詳しい情報は man-pages-2.09 の Changelog を参照。 +読み出しリースを設定できるのは、読み出し専用でオープンされている +ファイルディスクリプタに対してのみである。 .TP .B F_WRLCK .\"O Take out a write lease. @@ -1439,15 +1439,15 @@ Linux .\"O the file is opened for reading or writing or is truncated. .\"O A write lease may be placed on a file only if there are no .\"O other open file descriptors for the file. -½ñ¤­¹þ¤ß¥ê¡¼¥¹¤ò¼èÆÀ¤¹¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢ -(Æɤ߽Ф·ÍѤ«½ñ¤­¹þ¤ßÍѤˤ«¤«¤ï¤é¤º) ¤½¤Î¥Õ¥¡¥¤¥ë¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¤ê¡¢ -¥Õ¥¡¥¤¥ë¤¬ÀÚ¤êµÍ¤á¤é¤ì¤¿¾ì¹ç¤Ë¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ËÄÌÃΤ¬¹Ô¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -½ñ¤­¹þ¤ß¥ê¡¼¥¹¤Ï¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ -¾¤Ë¤Ê¤¤¾ì¹ç¤Ë¤Î¤ßÀßÄê¤Ç¤­¤ë¡£ +書き込みリースを取得する。これにより、 +(読み出し用か書き込み用にかかわらず) そのファイルがオープンされたり、 +ファイルが切り詰められた場合に、呼び出し元のプロセスに通知が行われるようになる。 +書き込みリースは、そのファイルに対するオープンされたファイルディスクリプタが +他にない場合にのみ設定できる。 .TP .B F_UNLCK .\"O Remove our lease from the file. -¤½¤Î¥Õ¥¡¥¤¥ë¤«¤é¥ê¡¼¥¹¤òºï½ü¤¹¤ë¡£ +そのファイルからリースを削除する。 .RE .P .\"O Leases are associated with an open file description (see @@ -1462,20 +1462,20 @@ Linux .\"O .B F_UNLCK .\"O operation on any of these duplicate descriptors, or when all .\"O such descriptors have been closed. -¥ê¡¼¥¹¤Ï¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¤ËÂФ·¤Æ´ØÏ¢ÉÕ¤±¤é¤ì¤ë +リースはオープンファイル記述に対して関連付けられる .RB ( open (2) -»²¾È)¡£ -¤Ä¤Þ¤ê¡¢ +参照)。 +つまり、 .RB ( fork (2) -¤ä +や .BR dup (2) -¤Ê¤É¤Ë¤è¤êºîÀ®¤µ¤ì¤¿) ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÊ£À½¤ÏƱ¤¸¥ê¡¼¥¹¤ò»²¾È¤·¡¢ -Ê£À½¤â´Þ¤á¤¿¤É¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò»È¤Ã¤Æ¤â¤³¤Î¥ê¡¼¥¹¤òÊѹ¹¤·¤¿¤ê -²òÊü¤·¤¿¤ê¤Ç¤­¤ë¡£ -¤Þ¤¿¡¢¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¤¤º¤ì¤«¤ËÂФ·¤Æ +などにより作成された) ファイルディスクリプタの複製は同じリースを参照し、 +複製も含めたどのファイルディスクリプタを使ってもこのリースを変更したり +解放したりできる。 +また、これらのファイルディスクリプタのいずれかに対して .B F_UNLCK -Áàºî¤¬ÌÀ¼¨Åª¤Ë¼Â¹Ô¤µ¤ì¤¿¾ì¹ç¤ä¡¢¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ -ÊĤ¸¤é¤ì¤¿¾ì¹ç¤Ë¤â¡¢¥ê¡¼¥¹¤Ï²òÊü¤µ¤ì¤ë¡£ +操作が明示的に実行された場合や、すべてのファイルディスクリプタが +閉じられた場合にも、リースは解放される。 .P .\"O Leases may only be taken out on regular files. .\"O An unprivileged process may only take out a lease on a file whose @@ -1483,11 +1483,11 @@ Linux .\"O A process with the .\"O .B CAP_LEASE .\"O capability may take out leases on arbitrary files. -¥ê¡¼¥¹¤Î¼èÆÀ¤ÏÄ̾ï¤Î¥Õ¥¡¥¤¥ë (regular file) ¤ËÂФ·¤Æ¤Î¤ß²Äǽ¤Ç¤¢¤ë¡£ -ÈóÆø¢¥×¥í¥»¥¹¤¬¥ê¡¼¥¹¤ò¼èÆÀ¤Ç¤­¤ë¤Î¤Ï¡¢UID (½êÍ­¼Ô) ¤¬¥×¥í¥»¥¹¤Î -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID ¤È°ìÃפ¹¤ë¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¤À¤±¤Ç¤¢¤ë¡£ +リースの取得は通常のファイル (regular file) に対してのみ可能である。 +非特権プロセスがリースを取得できるのは、UID (所有者) がプロセスの +ファイルシステム UID と一致するファイルに対してだけである。 .B CAP_LEASE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹¤ÏǤ°Õ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¥ê¡¼¥¹¤ò¼èÆÀ¤Ç¤­¤ë¡£ +ケーパビリティを持つプロセスは任意のファイルに対してリースを取得できる。 .TP .BR F_GETLEASE " (\fIvoid\fP)" .\"O Indicates what type of lease is associated with the file descriptor @@ -1497,17 +1497,17 @@ Linux .\"O indicating, respectively, a read lease , a write lease, or no lease. .\"O .I arg .\"O is ignored. -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +ファイルディスクリプタ .I fd -¤ËÂФ·¤ÆÀßÄꤵ¤ì¤Æ¤¤¤ë¥ê¡¼¥¹¤Î¼ïÊ̤ò¼èÆÀ¤¹¤ë¡£ +に対して設定されているリースの種別を取得する。 .BR F_RDLCK ", " F_WRLCK ", " F_UNLCK -¤Î¤¤¤º¤ì¤«¤¬ÊÖ¤µ¤ì¤ë¡£ +のいずれかが返される。 .BR F_RDLCK ", " F_WRLCK -¤Ï¤½¤ì¤¾¤ì¡¢Æɤ߽Ф·¥ê¡¼¥¹¡¢½ñ¤­¹þ¤ß¥ê¡¼¥¹¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤³¤È¤ò¼¨¤·¡¢ +はそれぞれ、読み出しリース、書き込みリースが設定されていることを示し、 .B F_UNLCK -¤Ï¥ê¡¼¥¹¤¬²¿¤âÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò¼¨¤¹¡£ +はリースが何も設定されていないことを示す。 .I arg -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .PP .\"O When a process (the "lease breaker") performs an .\"O .BR open (2) @@ -1519,38 +1519,38 @@ Linux .\"O the kernel notifies the lease holder by sending it a signal .\"O .RB ( SIGIO .\"O by default). -¤¢¤ë¥×¥í¥»¥¹ ("lease folder") ¤¬ +あるプロセス ("lease folder") が .B F_SETLEASE -¤ÇÀßÄꤵ¤ì¤¿¥ê¡¼¥¹¤ÈÌ·½â¤¹¤ë¤è¤¦¤Ê +で設定されたリースと矛盾するような .BR open (2) -¤ä +や .BR truncate (2) -¤ò¼Â¹Ô¤·¤¿¾ì¹ç¡¢ -¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤ÆÄä»ß¤µ¤ì¡¢ -¥«¡¼¥Í¥ë¤Ï lease holder ¤Ë¥·¥°¥Ê¥ë (¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï +を実行した場合、 +そのシステムコールはカーネルによって停止され、 +カーネルは lease holder にシグナル (デフォルトでは .BR SIGIO ) -¤òÁ÷¤Ã¤ÆÄÌÃΤò¹Ô¤¦¡£ +を送って通知を行う。 .\"O The lease holder should respond to receipt of this signal by doing .\"O whatever cleanup is required in preparation for the file to be .\"O accessed by another process (e.g., flushing cached buffers) and .\"O then either remove or downgrade its lease. -lease holder ¤Ï¤³¤Î¥·¥°¥Ê¥ë¤ò¼õ¿®¤·¤¿¤È¤­¤Ë¤Ï¤­¤Á¤ó¤ÈÂбþ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¶ñÂÎŪ¤Ë¤Ï¡¢ÊÌ¤Î¥×¥í¥»¥¹¤¬¤½¤Î¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Î½àÈ÷¤È¤·¤Æ -ɬÍפʸåÊÒÉÕ¤± (Î㤨¤Ð¡¢¥­¥ã¥Ã¥·¥å¤µ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Î¥Õ¥é¥Ã¥·¥å) ¤ò -¤¹¤Ù¤Æ¹Ô¤Ã¤Æ¤«¤é¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤Î¥ê¡¼¥¹¤Îºï½ü¤Þ¤¿¤Ï³Ê²¼¤²¤ò¹Ô¤¦¡£ +lease holder はこのシグナルを受信したときにはきちんと対応すべきである。 +具体的には、別のプロセスがそのファイルにアクセスするための準備として +必要な後片付け (例えば、キャッシュされたバッファのフラッシュ) を +すべて行ってから、そのファイルのリースの削除または格下げを行う。 .\"O A lease is removed by performing an .\"O .B F_SETLEASE .\"O command specifying .\"O .I arg .\"O as .\"O .BR F_UNLCK . -¥ê¡¼¥¹¤òºï½ü¤ò¤¹¤ë¤Ë¤Ï¡¢ +リースを削除をするには、 .I arg -¤Ë +に .B F_UNLCK -¤ò»ØÄꤷ¤Æ +を指定して .B F_SETLEASE -¤ò¼Â¹Ô¤¹¤ë¡£ +を実行する。 .\"O If the lease holder currently holds a write lease on the file, .\"O and the lease breaker is opening the file for reading, .\"O then it is sufficient for the lease holder to downgrade @@ -1561,32 +1561,32 @@ lease holder .\"O .I arg .\"O as .\"O .BR F_RDLCK . -lease holder ¤¬¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤ß¥ê¡¼¥¹¤òÊÝ»ý¤·¤Æ¤¤¤Æ¡¢ -lease breaker ¤¬Æɤ߽Ф·ÍѤˤ½¤Î¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -lease holder ¤¬ÊÝ»ý¤·¤Æ¤¤¤ë¥ê¡¼¥¹¤òÆɤ߽Ф·¥ê¡¼¥¹¤Ë³Ê²¼¤²¤¹¤ì¤Ð -½½Ê¬¤Ç¤¢¤ë¡£¤³¤ì¤ò¤¹¤ë¤Ë¤Ï¡¢ +lease holder がファイルに書き込みリースを保持していて、 +lease breaker が読み出し用にそのファイルをオープンしている場合、 +lease holder が保持しているリースを読み出しリースに格下げすれば +十分である。これをするには、 .I arg -¤Ë +に .B F_RDLCK -¤ò»ØÄꤷ¤Æ +を指定して .B F_SETLEASE -¤ò¼Â¹Ô¤¹¤ë¡£ +を実行する。 .\"O If the lease holder fails to downgrade or remove the lease within .\"O the number of seconds specified in .\"O .I /proc/sys/fs/lease-break-time .\"O then the kernel forcibly removes or downgrades the lease holder's lease. -lease holder ¤¬ +lease holder が .I /proc/sys/fs/lease-break-time -¤Ç»ØÄꤵ¤ì¤¿Éÿô°ÊÆâ¤Ë¥ê¡¼¥¹¤Î³Ê²¼¤²¤«ºï½ü¤ò¹Ô¤¨¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ -¥«¡¼¥Í¥ë¤Ï¶¯À©Åª¤Ë¤½¤Î lease holder ¤Î¥ê¡¼¥¹¤òºï½ü¤â¤·¤¯¤Ï³Ê²¼¤²¤ò¹Ô¤¦¡£ +で指定された秒数以内にリースの格下げか削除を行えなかった場合、 +カーネルは強制的にその lease holder のリースを削除もしくは格下げを行う。 .\"O Once the lease has been voluntarily or forcibly removed or downgraded, .\"O and assuming the lease breaker has not unblocked its system call, .\"O the kernel permits the lease breaker's system call to proceed. -°ìÅ٥꡼¥¹¤Îºï½ü¤«³Ê²¼¤²¤¬¼«È¯Åª¤â¤·¤¯¤Ï¶¯À©Åª¤Ë¹Ô¤ï¤ì¤ë¤È¡¢ -lease breaker ¤¬¤Þ¤À¥·¥¹¥Æ¥à¥³¡¼¥ë¤òºÆ³«¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ -¥«¡¼¥Í¥ë¤¬ lease breaker ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î³¹Ô¤òµö²Ä¤¹¤ë¡£ +一度リースの削除か格下げが自発的もしくは強制的に行われると、 +lease breaker がまだシステムコールを再開していない場合には、 +カーネルが lease breaker のシステムコールの続行を許可する。 .\"O If the lease breaker's blocked .\"O .BR open (2) @@ -1596,25 +1596,25 @@ lease breaker .\"O then the system call fails with the error .\"O .BR EINTR , .\"O but the other steps still occur as described above. -lease breaker ¤¬¼Â¹Ô¤·¤¿ +lease breaker が実行した .BR open (2) -¤ä +や .BR truncate (2) -¤¬Ää»ßÃæ¤Ë¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤êÃæÃǤµ¤ì¤¿¾ì¹ç¡¢ -¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +が停止中にシグナルハンドラにより中断された場合、 +そのシステムコールは .B EINTR -¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë¤¬¡¢¾å¤Ç½Ò¤Ù¤¿Â¾¤Î½èÍý¤Ï -¤½¤Î¤Þ¤Þ¹Ô¤ï¤ì¤ë¡£ +エラーで失敗するが、上で述べた他の処理は +そのまま行われる。 .\"O If the lease breaker is killed by a signal while blocked in .\"O .BR open (2) .\"O or .\"O .BR truncate (2), .\"O then the other steps still occur as described above. .BR open (2) -¤ä +や .BR truncate (2) -¤¬Ää»ßÃæ¤Ë lease breaker ¤¬¥·¥°¥Ê¥ë¤Ë¤è¤ê kill ¤µ¤ì¤¿¾ì¹ç¡¢ -¾å¤Ç½Ò¤Ù¤¿Â¾¤Î½èÍý¤Ï¤½¤Î¤Þ¤Þ¹Ô¤ï¤ì¤ë¡£ +が停止中に lease breaker がシグナルにより kill された場合、 +上で述べた他の処理はそのまま行われる。 .\"O If the lease breaker specifies the .\"O .B O_NONBLOCK .\"O flag when calling @@ -1622,13 +1622,13 @@ lease breaker .\"O then the call immediately fails with the error .\"O .BR EWOULDBLOCK , .\"O but the other steps still occur as described above. -lease breaker ¤¬ +lease breaker が .BR open (2) -¤ò¸Æ¤ÖºÝ¤Ë +を呼ぶ際に .B O_NONBLOCK -¥Õ¥é¥°¤ò»ØÄꤷ¤¿¾ì¹ç¡¢¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +フラグを指定した場合、そのシステムコールは .B EWOULDBLOCK -¥¨¥é¡¼¤Çľ¤Á¤Ë¼ºÇÔ¤¹¤ë¤¬¡¢¾å¤Ç½Ò¤Ù¤¿Â¾¤Î½èÍý¤Ï¤½¤Î¤Þ¤Þ¹Ô¤ï¤ì¤ë¡£ +エラーで直ちに失敗するが、上で述べた他の処理はそのまま行われる。 .\"O The default signal used to notify the lease holder is .\"O .BR SIGIO , @@ -1650,32 +1650,32 @@ lease breaker .\"O field of this argument will hold the descriptor of the leased file .\"O that has been accessed by another process. .\"O (This is useful if the caller holds leases against multiple files). -lease holder ¤Ø¤ÎÄÌÃΤ˻Ȥï¤ì¤ë¥Ç¥Õ¥©¥ë¥È¤Î¥·¥°¥Ê¥ë¤Ï +lease holder への通知に使われるデフォルトのシグナルは .B SIGIO -¤À¤¬¡¢ +だが、 .BR fcntl () -¤Î +の .B F_SETSIG -¥³¥Þ¥ó¥É¤ÇÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +コマンドで変更することができる。 .B F_SETSIG -¥³¥Þ¥ó¥É¤¬¼Â¹Ô¤µ¤ì +コマンドが実行され .RB ( SIGIO -¤ò»ØÄꤵ¤ì¤¿¾ì¹ç¤â´Þ¤à)¡¢ +を指定された場合も含む)、 .B SA_SIGINFO -¥Õ¥é¥°ÉÕ¤­¤Ç¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -¥Ï¥ó¥É¥é¤ÎÂèÆó°ú¤­¿ô¤È¤·¤Æ +フラグ付きでシグナルハンドラが設定されている場合には、 +ハンドラの第二引き数として .I siginfo_t -¹½Â¤ÂΤ¬ÅϤµ¤ì¡¢¤³¤Î°ú¤­¿ô¤Î +構造体が渡され、この引き数の .I si_fd -¥Õ¥£¡¼¥ë¥É¤Ë¤ÏÊÌ¤Î¥×¥í¥»¥¹¤¬¥¢¥¯¥»¥¹¤·¤¿¥ê¡¼¥¹ÀßÄêºÑ¤ß¥Õ¥¡¥¤¥ë¤Î -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Æþ¤Ã¤Æ¤¤¤ë -(¤³¤Îµ¡Ç½¤ÏÊ£¿ô¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¥ê¡¼¥¹¤òÀßÄꤹ¤ë¾ì¹ç¤ËÍ­ÍѤǤ¢¤ë)¡£ +フィールドには別のプロセスがアクセスしたリース設定済みファイルの +ディスクリプタが入っている +(この機能は複数のファイルに対してリースを設定する場合に有用である)。 .\"O .SS "File and directory change notification (dnotify)" -.SS "¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥ì¥¯¥È¥ê¤ÎÊѹ¹¤ÎÄÌÃÎ (dnotify)" +.SS "ファイルやディレクトリの変更の通知 (dnotify)" .TP .BR F_NOTIFY " (\fIlong\fP)" .\"O (Linux 2.4 onwards) -(Linux 2.4 °Ê¹ß) +(Linux 2.4 以降) .\"O Provide notification when the directory referred to by .\"O .I fd .\"O or any of the files that it contains is changed. @@ -1684,103 +1684,103 @@ lease holder .\"O which is a bit mask specified by ORing together zero or more of .\"O the following bits: .I fd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¡¢¤½¤ÎÃæ¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤ËÊѹ¹¤¬¤¢¤Ã¤¿¾ì¹ç¤Ë -ÄÌÃΤò¹Ô¤¦¡£¤É¤Î¥¤¥Ù¥ó¥È¤òÄÌÃΤ¹¤ë¤«¤Ï +で参照されるディレクトリか、その中にあるファイルに変更があった場合に +通知を行う。どのイベントを通知するかは .I arg -¤Ç»ØÄꤹ¤ë¡£ +で指定する。 .I arg -¤Ï¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¡¢°Ê²¼¤Î¥Ó¥Ã¥È¤Î 0¸Ä°Ê¾å¤ÎÏÀÍýϤò¤È¤Ã¤¿¤â¤Î¤ò»ØÄꤹ¤ë¡£ +はビットマスクで、以下のビットの 0個以上の論理和をとったものを指定する。 .RS .sp .PD 0 .TP 12 .B DN_ACCESS .\"O A file was accessed (read, pread, readv) -¥Õ¥¡¥¤¥ë¤Ø¤Î¥¢¥¯¥»¥¹¤¬¤¢¤Ã¤¿ (read, pread, readv) +ファイルへのアクセスがあった (read, pread, readv) .TP .B DN_MODIFY .\"O A file was modified (write, pwrite, writev, truncate, ftruncate). -¥Õ¥¡¥¤¥ë¤ÎÆâÍƤ¬Êѹ¹¤µ¤ì¤¿ (write, pwrite, writev, truncate, ftruncate). +ファイルの内容が変更された (write, pwrite, writev, truncate, ftruncate). .TP .B DN_CREATE .\"O A file was created (open, creat, mknod, mkdir, link, symlink, rename). -¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤¿ (open, creat, mknod, mkdir, link, symlink, rename). +ファイルが作成された (open, creat, mknod, mkdir, link, symlink, rename). .TP .B DN_DELETE .\"O A file was unlinked (unlink, rename to another directory, rmdir). -¥Õ¥¡¥¤¥ë¤¬ºï½ü (unlink) ¤µ¤ì¤¿ (unlink, Ê̤Υǥ£¥ì¥¯¥È¥ê¤Ø¤Î rename, rmdir) +ファイルが削除 (unlink) された (unlink, 別のディレクトリへの rename, rmdir) .TP .B DN_RENAME .\"O A file was renamed within this directory (rename). -¥Ç¥£¥ì¥¯¥È¥êÆâ¤Ç¤Î¥Õ¥¡¥¤¥ë̾¤ÎÊѹ¹¤¬¤¢¤Ã¤¿ (rename) +ディレクトリ内でのファイル名の変更があった (rename) .TP .B DN_ATTRIB .\"O The attributes of a file were changed (chown, chmod, utime[s]). -¥Õ¥¡¥¤¥ë°À­¤¬Êѹ¹¤µ¤ì¤¿ (chown, chmod, utime[s]) +ファイル属性が変更された (chown, chmod, utime[s]) .PD .RE .IP .\"O (In order to obtain these definitions, the .\"O .B _GNU_SOURCE .\"O feature test macro must be defined.) -(¾åµ­¤ÎÄêµÁ¤òÍøÍѤ¹¤ë¤Ë¤Ï +(上記の定義を利用するには .B _GNU_SOURCE -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£) +機能検査マクロを定義しなければならない。) .\"O Directory notifications are normally "one-shot", and the application .\"O must reregister to receive further notifications. -¥Ç¥£¥ì¥¯¥È¥ê¤ÎÊѹ¹ÄÌÃΤÏÄ̾ï¡Ö°ì²ó¸Â¤ê (one-shot)¡×¤Ç¤¢¤ê¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¦¤Ç¤½¤Î¸å¤µ¤é¤ËÄÌÃΤò¼õ¿®¤·¤¿¤¤¾ì¹ç¤Ï -ºÆÅÐÏ¿¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ディレクトリの変更通知は通常「一回限り (one-shot)」であり、 +アプリケーション側でその後さらに通知を受信したい場合は +再登録しなければならない。 .\"O Alternatively, if .\"O .B DN_MULTISHOT .\"O is included in .\"O .IR arg , .\"O then notification will remain in effect until explicitly removed. .I arg -¤Ë +に .B DN_MULTISHOT -¤¬´Þ¤Þ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ë¤Ï¡¢ -Êѹ¹ÄÌÃΤÏÌÀ¼¨Åª¤Ë²ò½ü¤µ¤ì¤ë¤Þ¤ÇÍ­¸ú¾õÂÖ¤¬·Ñ³¤¹¤ë¡£ +が含まれていた場合には、 +変更通知は明示的に解除されるまで有効状態が継続する。 .\"O .\" The following does seem a poor API-design choice... -.\" °Ê²¼¤Ï API ¤ÎÀ߷פ¬¤Þ¤º¤¤¤È»×¤¦¤Î¤À¤¬... +.\" 以下は API の設計がまずいと思うのだが... .\"O A series of .\"O .B F_NOTIFY .\"O requests is cumulative, with the events in .\"O .I arg .\"O being added to the set already monitored. .B F_NOTIFY -Í×µá¤ÏÀÑ»»¤µ¤ì¤Æ¤¤¤¯¡£¤Ä¤Þ¤ê¡¢ +要求は積算されていく。つまり、 .I arg -¤Ç»ØÄꤵ¤ì¤¿¥¤¥Ù¥ó¥È¤¬¤¹¤Ç¤Ë¥â¥Ë¥¿¤µ¤ì¤Æ¤¤¤ë -¥¤¥Ù¥ó¥È½¸¹ç¤Ë²Ã»»¤µ¤ì¤ë·Á¤Ë¤Ê¤ë¡£ +で指定されたイベントがすでにモニタされている +イベント集合に加算される形になる。 .\"O To disable notification of all events, make an .\"O .B F_NOTIFY .\"O call specifying .\"O .I arg .\"O as 0. -¤¹¤Ù¤Æ¤Î¥¤¥Ù¥ó¥È¤ÎÄÌÃΤò̵¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢ +すべてのイベントの通知を無効にするには、 .I arg -¤Ë 0 ¤ò»ØÄꤷ¤Æ +に 0 を指定して .B F_NOTIFY -¤ò¸Æ¤Ó½Ð¤¹É¬Íפ¬¤¢¤ë¡£ +を呼び出す必要がある。 .\"O Notification occurs via delivery of a signal. -ÄÌÃΤϥ·¥°¥Ê¥ë¤ÎÇÛÁ÷¤Ç¹Ô¤ï¤ì¤ë¡£ +通知はシグナルの配送で行われる。 .\"O The default signal is .\"O .BR SIGIO , .\"O but this can be changed using the .\"O .B F_SETSIG .\"O command to .\"O .BR fcntl (). -¥Ç¥Õ¥©¥ë¥È¤Î¥·¥°¥Ê¥ë¤Ï +デフォルトのシグナルは .B SIGIO -¤À¤¬¡¢ +だが、 .BR fcntl () -¤Î +の .B F_SETSIG -¥³¥Þ¥ó¥É¤ÇÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +コマンドで変更することができる。 .\"O In the latter case, the signal handler receives a .\"O .I siginfo_t .\"O structure as its second argument (if the handler was @@ -1791,25 +1791,25 @@ lease holder .\"O field of this structure contains the file descriptor which .\"O generated the notification (useful when establishing notification .\"O on multiple directories). -¸å¼Ô¤Î¾ì¹ç¤Ë¤Ï¡¢ +後者の場合には、 .RB ( SA_SIGINFO -¥Õ¥é¥°ÉÕ¤­¤Ç¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï) -¥Ï¥ó¥É¥é¤ÎÂèÆó°ú¤­¿ô¤È¤·¤Æ +フラグ付きでシグナルハンドラが設定されている場合には) +ハンドラの第二引き数として .I siginfo_t -¹½Â¤ÂΤ¬ÅϤµ¤ì¡¢¤³¤Î¹½Â¤ÂΤΠ+構造体が渡され、この構造体の .I si_fd -¥Õ¥£¡¼¥ë¥É¤Ë¤ÏÄÌÃΤιԤï¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Æþ¤Ã¤Æ¤¤¤ë -(¤³¤Îµ¡Ç½¤ÏÊ£¿ô¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ·¤ÆÄÌÃΤòÀßÄꤹ¤ë¾ì¹ç¤ËÍ­ÍѤǤ¢¤ë)¡£ +フィールドには通知の行われたファイルディスクリプタが入っている +(この機能は複数のディレクトリに対して通知を設定する場合に有用である)。 .\"O Especially when using .\"O .BR DN_MULTISHOT , .\"O a real time signal should be used for notification, .\"O so that multiple notifications can be queued. -ÆÃ¤Ë +特に .B DN_MULTISHOT -¤ò»È¤¦¾ì¹ç¤Ï¡¢ÄÌÃΤˤϥꥢ¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£ -¤½¤ì¤Ï¡¢¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ò»È¤¦¤³¤È¤Ç¡¢Ê£¿ô¤ÎÄÌÃΤò¥­¥å¡¼¤ËÆþ¤ì¤ë -¤³¤È¤¬¤Ç¤­¤ë¤«¤é¤Ç¤¢¤ë¡£ +を使う場合は、通知にはリアルタイムシグナルを使うべきである。 +それは、リアルタイムシグナルを使うことで、複数の通知をキューに入れる +ことができるからである。 .\"O .B NOTE: .\"O New applications should use the @@ -1819,73 +1819,73 @@ lease holder .\"O file system events. .\"O See .\"O .BR inotify (7). -.B Ãí°Õ: -¿·¤·¤¯¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò½ñ¤¯ºÝ¤Ë¤Ï¡¢(¥«¡¼¥Í¥ë 2.6.13 °Ê¹ß¤ÇÍøÍѲÄǽ¤È¤Ê¤Ã¤¿) +.B 注意: +新しくアプリケーションを書く際には、(カーネル 2.6.13 以降で利用可能となった) .I inotify -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +インタフェースを使用すべきである。 .I inotify -¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¤¥Ù¥ó¥È¤ÎÄÌÃΤò¼èÆÀ¤¹¤ë¤¿¤á¤Î -¤º¤Ã¤ÈÍ¥¤ì¤¿¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ç¤¢¤ë¡£ +はファイルシステムイベントの通知を取得するための +ずっと優れたインタフェースである。 .BR inotify (7) -¤ò»²¾È¡£ +を参照。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O For a successful call, the return value depends on the operation: -À®¸ù¤·¤¿¾ì¹ç¤ÎÊÖ¤êÃͤÏÁàºî¤Î¼ïÎà¤Ë¤è¤ê°ã¤¦: +成功した場合の返り値は操作の種類により違う: .TP 0.9i .B F_DUPFD .\"O The new descriptor. -¿·¤·¤¤¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ +新しいディスクリプタを返す。 .TP .B F_GETFD .\"O Value of file descriptor flags. -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Õ¥é¥°¤ÎÃͤòÊÖ¤¹¡£ +ファイルディスクリプタ・フラグの値を返す。 .TP .B F_GETFL .\"O Value of file status flags. -¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤ÎÃͤòÊÖ¤¹¡£ +ファイル状態フラグの値を返す。 .TP .B F_GETLEASE .\"O Type of lease held on file descriptor. -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤ÆÊÝ»ý¤µ¤ì¤Æ¤¤¤ë¥ê¡¼¥¹¤Î¼ïÊ̤òÊÖ¤¹¡£ +ファイルディスクリプタに対して保持されているリースの種別を返す。 .TP .B F_GETOWN .\"O Value of descriptor owner. -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î½êÍ­¼Ô¤òÊÖ¤¹¡£ +ディスクリプタの所有者を返す。 .TP .B F_GETSIG .\"O Value of signal sent when read or write becomes possible, or zero .\"O for traditional .\"O .B SIGIO .\"O behavior. -Æɤ߹þ¤ß¤ä½ñ¤­½Ð¤·¤¬²Äǽ¤Ë¤Ê¤Ã¤¿»þ¤ËÁ÷¤é¤ì¤ë¥·¥°¥Ê¥ë¤ÎÃÍ¡¢¤â¤·¤¯¤Ï -ÅÁÅýŪ¤Ê +読み込みや書き出しが可能になった時に送られるシグナルの値、もしくは +伝統的な .B SIGIO -Æ°ºî¤Î¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£ +動作の場合にはゼロを返す。 .TP .\"O All other commands .\"O Zero. -¾¤ÎÁ´¤Æ¤Î¥³¥Þ¥ó¥É¤Ï 0 ¤òÊÖ¤¹¡£ +他の全てのコマンドは 0 を返す。 .PP .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -¥¨¥é¡¼¤Î»þ¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +エラーの時は \-1 が返され、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬ÀßÄꤵ¤ì¤ë¡£ +に適切な値が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .\"O .BR EACCES " or " EAGAIN -.BR EACCES " ¤« " EAGAIN +.BR EACCES " か " EAGAIN .\"O Operation is prohibited by locks held by other processes. -¾¤Î¥×¥í¥»¥¹¤¬ÊÝ»ý¤·¤Æ¤¤¤ë¥í¥Ã¥¯¤Ë¤è¤Ã¤ÆÁàºî¤¬¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¡£ +他のプロセスが保持しているロックによって操作が禁止されている。 .TP .B EAGAIN .\"O The operation is prohibited because the file has been memory-mapped by .\"O another process. -¤½¤Î¥Õ¥¡¥¤¥ë¤Ï¾¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¥á¥â¥ê¡¦¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤ë¤¿¤á¡¢ -Áàºî¤¬¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¡£ +そのファイルは他のプロセスによってメモリ・マップされているため、 +操作が禁止されている。 .TP .B EBADF .\"O .I fd @@ -1896,28 +1896,28 @@ lease holder .\"O and the file descriptor open mode doesn't match with the .\"O type of lock requested. .I fd -¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ -¤¢¤ë¤¤¤Ï¥³¥Þ¥ó¥É¤¬ +がオープンされたファイルディスクリプタでない。 +あるいはコマンドが .B F_SETLK -¤Þ¤¿¤Ï +または .B F_SETLKW -¤À¤Ã¤¿¤¬¡¢ÂоݤΥե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¥ª¡¼¥×¥ó¥â¡¼¥É¤¬ -ɬÍפȤʤë¥í¥Ã¥¯¤Î·¿¤Ë¥Þ¥Ã¥Á¤·¤Æ¤¤¤Ê¤¤¡£ +だったが、対象のファイルディスクリプタのオープンモードが +必要となるロックの型にマッチしていない。 .TP .\"O .B EDEADLK .\"O It was detected that the specified .\"O .B F_SETLKW .\"O command would cause a deadlock. .B EDEADLK -»ØÄꤵ¤ì¤¿ +指定された .B F_SETLKW -¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤¿¾ì¹ç¤Ë¤Ï¥Ç¥Ã¥É¥í¥Ã¥¯¤Ë¤Ê¤ë¤³¤È¤¬¸¡½Ð¤µ¤ì¤¿¡£ +コマンドを実行した場合にはデッドロックになることが検出された。 .TP .B EFAULT .\"O .I lock .\"O is outside your accessible address space. .I lock -¤¬ÍøÍѲÄǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°Éô¤Ë¤¢¤ë¡£ +が利用可能なアドレス空間の外部にある。 .TP .B EINTR .\"O For @@ -1931,14 +1931,14 @@ lease holder .\"O Most likely when locking a remote file (e.g., locking over .\"O NFS), but can sometimes happen locally. .B F_SETLKW -¥³¥Þ¥ó¥É¤¬¥·¥°¥Ê¥ë¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿ +コマンドがシグナルにより割り込まれた .RB ( signal (7) -»²¾È)¡£ -.BR F_GETLK " ¤È " F_SETLK -¤Î¾ì¹ç¡¢¥í¥Ã¥¯¤ò³Îǧ¤·¤¿¤ê¼èÆÀ¤·¤¿¤ê¤¹¤ëÁ°¤Ë¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿¡£ -¤³¤ì¤Ï¤¿¤¤¤Æ¤¤¥ê¥â¡¼¥È¤Î¥Õ¥¡¥¤¥ë¤ò¥í¥Ã¥¯¤¹¤ë¾ì¹ç -(Î㤨¤Ð NFS ¾å¤Ç¥í¥Ã¥¯¤¹¤ë¾ì¹ç) ¤Ëµ¯¤³¤ë¡£ -¤·¤«¤·¥í¡¼¥«¥ë¤Ç¤âµ¯¤³¤ë¾ì¹ç¤¬¤¢¤ë¡£ +参照)。 +.BR F_GETLK " と " F_SETLK +の場合、ロックを確認したり取得したりする前にシグナルによって割り込まれた。 +これはたいていリモートのファイルをロックする場合 +(例えば NFS 上でロックする場合) に起こる。 +しかしローカルでも起こる場合がある。 .TP .B EINVAL .\"O For @@ -1949,36 +1949,36 @@ lease holder .\"O .BR F_SETSIG , .\"O .I arg .\"O is not an allowable signal number. -.BR F_DUPFD ¤Ç¡¢ +.BR F_DUPFD で、 .I arg -¤¬É餫¡¢¤â¤·¤¯¤Ïµö¤µ¤ì¤ëºÇÂçÃͤè¤ê¤âÂ礭¤¤¡£ +が負か、もしくは許される最大値よりも大きい。 .B F_SETSIG -¤Î¾ì¹ç¡¢ +の場合、 .I arg -¤¬ÍøÍѲÄǽ¤Ê¥·¥°¥Ê¥ëÈÖ¹æ¤Ç¤Ï¤Ê¤¤¡£ +が利用可能なシグナル番号ではない。 .TP .B EMFILE .\"O For .\"O .BR F_DUPFD , .\"O the process already has the maximum number of file descriptors open. -.BR F_DUPFD ¤Ç¡¢ -¥×¥í¥»¥¹¤¬¤¹¤Ç¤ËºÇÂç¿ô¤Þ¤Ç¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¡£ +.BR F_DUPFD で、 +プロセスがすでに最大数までファイルディスクリプタをオープンしている。 .TP .B ENOLCK .\"O Too many segment locks open, lock table is full, or a remote locking .\"O protocol failed (e.g., locking over NFS). -¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥í¥Ã¥¯¤Î¿ô¤¬Â¿²á¤®¤Æ¡¢¥í¥Ã¥¯¡¦¥Æ¡¼¥Ö¥ë¤¬¤¤¤Ã¤Ñ¤¤¤Ç¤¢¤ë¡£ -¤Þ¤¿¤Ï remote locking protocol (Î㤨¤Ð NFS ¾å¤Î¥í¥Ã¥¯) ¤¬¼ºÇÔ¤·¤¿¡£ +オープンされているロックの数が多過ぎて、ロック・テーブルがいっぱいである。 +または remote locking protocol (例えば NFS 上のロック) が失敗した。 .TP .B EPERM .\"O Attempted to clear the .\"O .B O_APPEND .\"O flag on a file that has the append-only attribute set. -ÄɲÃÀìÍÑ°À­¤¬ÀßÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î +追加専用属性が設定されたファイルの .B O_APPEND -¥Õ¥é¥°¤ò¥¯¥ê¥¢¤·¤è¤¦¤È»î¤ß¤¿¡£ +フラグをクリアしようと試みた。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O SVr4, 4.3BSD, POSIX.1-2001. SVr4, 4.3BSD, POSIX.1-2001. .\"O Only the operations @@ -1994,7 +1994,7 @@ SVr4, 4.3BSD, POSIX.1-2001. .\"O and .\"O .B F_SETOWN .\"O are specified in POSIX.1-2001. -POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ëÁàºî¤Ï¡¢ +POSIX.1-2001 で規定されている操作は、 .BR F_DUPFD , .BR F_GETFD , .BR F_SETFD , @@ -2005,12 +2005,12 @@ POSIX.1-2001 .BR F_SETLKW , .BR F_GETOWN , .B F_SETOWN -¤À¤±¤Ç¤¢¤ë¡£ +だけである。 .\"O .B F_DUPFD_CLOEXEC .\"O is specified in POSIX.1-2008. .B F_DUPFD_CLOEXEC -¤Ï POSIX.1-2008 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は POSIX.1-2008 で規定されている。 .\"O .BR F_GETOWN_EX , .\"O .BR F_SETOWN_EX , @@ -2031,35 +2031,35 @@ POSIX.1-2001 .BR F_NOTIFY , .BR F_GETLEASE , .B F_SETLEASE -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë (¤³¤ì¤é¤ÎÄêµÁ¤òÍ­¸ú¤Ë¤¹¤ë¤Ë¤Ï +は Linux 固有である (これらの定義を有効にするには .B _GNU_SOURCE -¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤³¤È)¡£ +マクロを定義すること)。 .\" .PP .\"O .\" SVr4 documents additional EIO, ENOLINK and EOVERFLOW error conditions. -.\" SVr4 ¤Ë¤Ï¾¤Ë EFAULT, EINTR, EIO, ENOLINK, EOVERFLOW ¥¨¥é¡¼¾õÂ֤ˤĤ¤¤Æ¤Î -.\" µ­½Ò¤¬¤¢¤ë¡£ +.\" SVr4 には他に EFAULT, EINTR, EIO, ENOLINK, EOVERFLOW エラー状態についての +.\" 記述がある。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The errors returned by .\"O .BR dup2 (2) .\"O are different from those returned by .\"O .BR F_DUPFD . -¥¨¥é¡¼¤ÎºÝ¤ÎÊÖ¤êÃͤ¬ +エラーの際の返り値が .BR dup2 (2) -¤È +と .B F_DUPFD -¤Ç¤Ï°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ +では異なっている。 .\"O Since kernel 2.0, there is no interaction between the types of lock .\"O placed by .\"O .BR flock (2) .\"O and .\"O .BR fcntl (). -¥«¡¼¥Í¥ë 2.0 °Ê¹ß¤Ç¤Ï¡¢ +カーネル 2.0 以降では、 .BR flock (2) -¤È +と .BR fcntl () -¤¬ÀßÄꤹ¤ë¥í¥Ã¥¯¼ïÊ̤δ֤ËÁê¸ßºîÍѤϤʤ¤¡£ +が設定するロック種別の間に相互作用はない。 .\"O Several systems have more fields in .\"O .I "struct flock" @@ -2071,18 +2071,18 @@ POSIX.1-2001 .\"O .I l_pid .\"O alone is not going to be very useful if the process holding the lock .\"O may live on a different machine. -¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¡¢ +システムによっては、 .I "struct flock" -¤Ë¾åµ­°Ê³°¤Î¥Õ¥£¡¼¥ë¥É¤¬¤¢¤ë¤â¤Î¤â¤¢¤ë (Î㤨¤Ð -.IR l_sysid )¡£ +に上記以外のフィールドがあるものもある (例えば +.IR l_sysid )。 .\" e.g., Solaris 8 documents this field in fcntl(2), and Irix 6.5 .\" documents it in fcntl(5). mtk, May 2007 -¤Ï¤Ã¤­¤ê¤È¸À¤¨¤ë¤³¤È¤Ï¡¢¥í¥Ã¥¯¤òÊÝ»ý¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤¬Ê̤Υޥ·¥ó¤Ë¸ºß -¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢ +はっきりと言えることは、ロックを保持しているプロセスが別のマシンに存在 +する場合には、 .I l_pid -¤À¤±¤Ï¤¢¤Þ¤êÌò¤Ë¤¿¤¿¤Ê¤¤¤À¤í¤¦¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ +だけはあまり役にたたないだろうということである。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O A limitation of the Linux system call conventions on some .\"O architectures (notably i386) means that if a (negative) .\"O process group ID to be returned by @@ -2095,34 +2095,34 @@ POSIX.1-2001 .\"O will be \-1, and .\"O .I errno .\"O will contain the (positive) process group ID. -¤¤¤¯¤Ä¤«¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã (ÆÃ¤Ë i386) ¤Ë¤ª¤±¤ë Linux ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î´·½¬ -¤Î¤¿¤á°Ê²¼¤ÎÀ©¸Â¤¬Â¸ºß¤¹¤ë¡£ +いくつかのアーキテクチャ (特に i386) における Linux システムコールの慣習 +のため以下の制限が存在する。 .B F_GETOWN -¤¬ÊÖ¤¹ (Éé¤Î) ¥×¥í¥»¥¹¥°¥ë¡¼¥×ID ¤¬ \-1 ¤«¤é \-4095 ¤ÎÈϰϤËÆþ¤Ã¤¿¾ì¹ç¡¢ -glibc ¤Ï¤³¤ÎÊÖ¤êÃͤò¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¤È -´Ö°ã¤Ã¤Æ²ò¼á¤·¤Æ¤·¤Þ¤¦¡£¤Ä¤Þ¤ê¡¢ +が返す (負の) プロセスグループID が \-1 から \-4095 の範囲に入った場合、 +glibc はこの返り値をシステムコールでエラーが起こったと +間違って解釈してしまう。つまり、 .BR fcntl () -¤ÎÊÖ¤êÃÍ¤Ï \-1 ¤È¤Ê¤ê¡¢ +の返り値は \-1 となり、 .I errno -¤Ë¤Ï (Àµ¤Î) ¥×¥í¥»¥¹¥°¥ë¡¼¥×ID ¤¬ÀßÄꤵ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ +には (正の) プロセスグループID が設定されることになる。 .\"O The Linux-specific .\"O .BR F_SETOWN_EX .\"O and .\"O .BR F_GETOWN_EX .\"O operations avoid this problem. -Linux ¸ÇÍ­¤Î +Linux 固有の .B F_SETOWN_EX -¤È +と .B F_GETOWN_EX -¤Ç¤Ï¤³¤ÎÌäÂê¤ò²óÈò¤Ç¤­¤ë¡£ +ではこの問題を回避できる。 .\"O .\" mtk, Dec 04: some limited testing on alpha and ia64 seems to .\"O .\" indicate that ANY negative PGID value will cause F_GETOWN .\"O .\" to misinterpret the return as an error. Some other architectures .\"O .\" seem to have the same range check as i386. -.\" mtk, Dec 04: alpha ¤È ia64 ¤Ç¤Ï¡¢¾¯¤·¥Æ¥¹¥È¤·¤Æ¤ß¤¿¸Â¤ê¡¢ -.\" ¡Ö¤É¤ó¤Ê¡×Éé¤Î PGID ¤Ç¤â F_GETOWN ¤Ç¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¤È´Ö°ã¤Ã¤Æ -.\" ²ò¼á¤µ¤ì¤Æ¤·¤Þ¤¦¤è¤¦¤À¡£Â¾¤Î¤¤¤¯¤Ä¤«¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢ -.\" i386 ¤ÈƱÍͤÎÈϰϤΥÁ¥§¥Ã¥¯¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë¤è¤¦¤À¡£ +.\" mtk, Dec 04: alpha と ia64 では、少しテストしてみた限り、 +.\" 「どんな」負の PGID でも F_GETOWN でエラーが起こったと間違って +.\" 解釈されてしまうようだ。他のいくつかのアーキテクチャでは、 +.\" i386 と同様の範囲のチェックが行われているようだ。 .\"O In Linux 2.4 and earlier, there is bug that can occur .\"O when an unprivileged process uses @@ -2140,21 +2140,21 @@ Linux .\"O has permission to send signals to. .\"O Despite this error return, the file descriptor owner is set, .\"O and signals will be sent to the owner. -Linux 2.4 °ÊÁ°¤Ç¤Ï¡¢ÈóÆø¢¥×¥í¥»¥¹¤¬ +Linux 2.4 以前では、非特権プロセスが .B F_SETOWN -¤ò»È¤Ã¤Æ¡¢¥½¥±¥Ã¥È¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î½êÍ­¼Ô¤Ë -¸Æ¤Ó½Ð¤·¸µ°Ê³°¤Î¥×¥í¥»¥¹ (¤ä¥×¥í¥»¥¹¥°¥ë¡¼¥×) ¤ò»ØÄꤹ¤ë¤È -ȯÀ¸¤¹¤ë¥Ð¥°¤¬¤¢¤ë¡£¤³¤Î¾ì¹ç¡¢ -¸Æ¤Ó½Ð¤·¸µ¤¬½êÍ­¼Ô¤È¤·¤Æ»ØÄꤷ¤¿¥×¥í¥»¥¹ (¤ä¥×¥í¥»¥¹¥°¥ë¡¼¥×) ¤Ë -¥·¥°¥Ê¥ë¤òÁ÷¤ëµö²Ä¤ò»ý¤Ã¤Æ¤¤¤¿¤È¤·¤Æ¤â¡¢ +を使って、ソケットのファイルディスクリプタの所有者に +呼び出し元以外のプロセス (やプロセスグループ) を指定すると +発生するバグがある。この場合、 +呼び出し元が所有者として指定したプロセス (やプロセスグループ) に +シグナルを送る許可を持っていたとしても、 .BR fcntl () -¤¬ \-1 ¤òÊÖ¤· +が \-1 を返し .I errno -¤Ë +に .B EPERM -¤òÀßÄꤹ¤ë¤³¤È¤¬¤¢¤ë¡£ -¤³¤Î¥¨¥é¡¼¤¬Ê֤俤ˤ⤫¤«¤ï¤é¤º¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î½êÍ­¼Ô -¤ÏÀßÄꤵ¤ì¡¢¥·¥°¥Ê¥ë¤Ï¤½¤Î½êÍ­¼Ô¤ËÁ÷¤é¤ì¤ë¡£ +を設定することがある。 +このエラーが返ったにもかかわらず、ファイルディスクリプタの所有者 +は設定され、シグナルはその所有者に送られる。 .\"O The implementation of mandatory locking in all known versions of Linux .\"O is subject to race conditions which render it unreliable: @@ -2170,21 +2170,21 @@ Linux 2.4 .\"O Similar races exist between mandatory locks and .\"O .BR mmap (2). .\"O It is therefore inadvisable to rely on mandatory locking. -¤³¤ì¤Þ¤Ç¤Î Linux ¤ÎÁ´¤Æ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤ª¤±¤ë¶¯À©¥í¥Ã¥¯¤Î¼ÂÁõ¤Ï¡¢ -¶¥¹ç¾ò·ï²¼¤Ç¶¯À©¥í¥Ã¥¯¤¬ÉÔ´°Á´¤Ë¤Ê¤ë¤è¤¦¤Ê¾ì¹ç¤¬¤¢¤ë¡£ +これまでの Linux の全てのバージョンにおける強制ロックの実装は、 +競合条件下で強制ロックが不完全になるような場合がある。 .\" http://marc.info/?l=linux-kernel&m=119013491707153&w=2 -¥í¥Ã¥¯¤È½Å¤Ê¤Ã¤Æ¼Â¹Ô¤µ¤ì¤¿ +ロックと重なって実行された .BR write (2) -¤Î¸Æ¤Ó½Ð¤·¤Ï¶¯À©¥í¥Ã¥¯¤¬³ÍÆÀ¤µ¤ì¤¿¸å¤Ë¤â¥Ç¡¼¥¿¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥í¥Ã¥¯¤È½Å¤Ê¤Ã¤Æ¼Â¹Ô¤µ¤ì¤¿ +の呼び出しは強制ロックが獲得された後にもデータを変更することができる。 +ロックと重なって実行された .BR read (2) -¤Î¸Æ¤Ó½Ð¤·¤Ï¶¯À©¥í¥Ã¥¯¤¬³ÍÆÀ¤µ¤ì¤¿¸å¤Ë¤Ê¤Ã¤Æ¹Ô¤ï¤ì¤¿¥Ç¡¼¥¿¤ÎÊѹ¹¤ò -¸¡½Ð¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -ƱÍͤζ¥¹ç¾ò·ï¤¬¶¯À©¥í¥Ã¥¯¤È +の呼び出しは強制ロックが獲得された後になって行われたデータの変更を +検出することができる。 +同様の競合条件が強制ロックと .BR mmap (2) -¤Î´Ö¤Ë¤â¸ºß¤¹¤ë¡£¤½¤ì¤æ¤¨¡¢¶¯À©¥í¥Ã¥¯¤ËÍê¤ë¤Î¤Ï¤ªÁ¦¤á¤Ç¤­¤Ê¤¤¡£ +の間にも存在する。それゆえ、強制ロックに頼るのはお薦めできない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR dup2 (2), .BR flock (2), .BR open (2), @@ -2206,17 +2206,17 @@ Linux 2.4 .\"O .I mandatory-locking.txt .\"O is called .\"O .IR mandatory.txt .) -¥«¡¼¥Í¥ë¥½¡¼¥¹¤Î +カーネルソースの .IR Documentation/filesystems/ -¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î +ディレクトリ内の .IR locks.txt , .IR mandatory-locking.txt , .I dnotify.txt -¤â»²¾È¤Î¤³¤È¡£ -(°ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï +も参照のこと。 +(以前のカーネルでは、これらのファイルは .I Documentation/ -¥Ç¥£¥ì¥¯¥È¥êľ²¼¤Ë¤¢¤ê¡¢ +ディレクトリ直下にあり、 .I mandatory-locking.txt -¤Ï +は .I mandatory.txt -¤È¤¤¤¦Ì¾Á°¤Ç¤¢¤Ã¤¿¡£) +という名前であった。) diff --git a/draft/man2/flock.2 b/draft/man2/flock.2 index 8ec50218..bcbcefa3 100644 --- a/draft/man2/flock.2 +++ b/draft/man2/flock.2 @@ -43,46 +43,46 @@ .TH FLOCK 2 2009-07-25 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O flock \- apply or remove an advisory lock on an open file -.SH ̾Á° -flock \- ¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥¢¥É¥Ð¥¤¥¶¥ê¡¦¥í¥Ã¥¯¤ÎŬÍÑ¡¢²ò½ü¤ò¹Ô¤¦ +.SH 名前 +flock \- オープンされたファイルに対するアドバイザリ・ロックの適用、解除を行う .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int flock(int " fd ", int " operation ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Apply or remove an advisory lock on the open file specified by .\"O .IR fd . .\"O The argument .\"O .I operation .\"O is one of the following: -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë¥¢¥É¥Ð¥¤¥¶¥ê¡¦¥í¥Ã¥¯ (advisory lock) ¤ÎŬÍÑ -¤ä²ò½ü¤ò¹Ô¤¦¡£ -¥Õ¥¡¥¤¥ë¤Ï +オープンされたファイルにアドバイザリ・ロック (advisory lock) の適用 +や解除を行う。 +ファイルは .I fd -¤Ç»ØÄꤹ¤ë¡£°ú¤­¿ô +で指定する。引き数 .I operation -¤Ë¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«°ì¤Ä¤ò»ØÄꤹ¤ë: +には以下のいずれか一つを指定する: .RS 4 .TP 9 .B LOCK_SH .\"O Place a shared lock. .\"O More than one process may hold a shared lock for a given file .\"O at a given time. -¶¦Í­¥í¥Ã¥¯¤òŬÍѤ¹¤ë¡£ »ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡¢ -°ì¤Ä°Ê¾å¤Î¥×¥í¥»¥¹¤¬Æ±»þ¤Ë¶¦Í­¥í¥Ã¥¯¤òÊÝ»ý¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +共有ロックを適用する。 指定したファイルに対して、 +一つ以上のプロセスが同時に共有ロックを保持することができる。 .TP .B LOCK_EX .\"O Place an exclusive lock. .\"O Only one process may hold an exclusive lock for a given .\"O file at a given time. -ÇÓ¾¥í¥Ã¥¯¤òŬÍѤ¹¤ë¡£ »ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡¢ -¤¿¤À°ì¤Ä¤Î¥×¥í¥»¥¹¤À¤±¤¬Æ±»þ¤ËÇÓ¾¥í¥Ã¥¯¤òÊÝ»ý¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +排他ロックを適用する。 指定したファイルに対して、 +ただ一つのプロセスだけが同時に排他ロックを保持することができる。 .TP .B LOCK_UN .\"O Remove an existing lock held by this process. -¤³¤Î¥×¥í¥»¥¹¤¬ÊÝ»ý¤·¤Æ¤¤¤ë´û¸¤Î¥í¥Ã¥¯¤ò²ò½ü¤¹¤ë¡£ +このプロセスが保持している既存のロックを解除する。 .RE .PP .\"O A call to @@ -93,17 +93,17 @@ flock \- .\"O (by ORing) .\"O with any of the above operations. .BR flock () -¤ò¸Æ¤Ó½Ð¤·¤¿¤È¤­¤Ë¡¢»ØÄꤷ¤¿¥í¥Ã¥¯¼ïÊ̤Ȱۤʤë¥í¥Ã¥¯¤¬ÊÌ¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ -ÊÝ»ý¤µ¤ì¤Æ¤¤¤ë¤È¡¢ +を呼び出したときに、指定したロック種別と異なるロックが別プロセスによって +保持されていると、 .BR flock () -¤ÏÄä»ß (block) ¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ -ÈóÄä»ß (nonblocking) ¥¿¥¤¥×¤ÎÍ×µá¤ò¹Ô¤¦¤¿¤á¤Ë¤Ï¡¢ -¾åµ­¤ÎÁàºî (operation) ¤Ë +は停止 (block) されることがある。 +非停止 (nonblocking) タイプの要求を行うためには、 +上記の操作 (operation) に .B LOCK_NB -¤òÏÀÍýϤηÁ¤Ç»ØÄꤹ¤ë¡£ +を論理和の形で指定する。 .\"O A single file may not simultaneously have both shared and exclusive locks. -°ì¤Ä¤Î¥Õ¥¡¥¤¥ë¤Ë¶¦Í­¥í¥Ã¥¯¤ÈÇÓ¾¥í¥Ã¥¯¤òƱ»þ¤ËÀßÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +一つのファイルに共有ロックと排他ロックを同時に設定することはできない。 .\"O Locks created by .\"O .BR flock () @@ -115,25 +115,25 @@ flock \- .\"O refer to the same lock, and this lock may be modified .\"O or released using any of these descriptors. .BR flock () -¤Ë¤è¤Ã¤Æºî¤é¤ì¤ë¥í¥Ã¥¯¤Ï¡¢ -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥Æ¡¼¥Ö¥ë¡¦¥¨¥ó¥È¥ê¤È´ØÏ¢ÉÕ¤±¤é¤ì¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÊ£À½ +によって作られるロックは、 +オープンされたファイルのテーブル・エントリと関連付けられる。 +したがって、ファイル・ディスクリプタの複製 .RB ( fork (2) -¤ä +や .BR dup (2) -¤Ê¤É¤Ë¤è¤êºîÀ®¤µ¤ì¤ë) ¤ÏƱ¤¸¥í¥Ã¥¯¤ò»²¾È¤·¡¢ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤É¤ì¤ò»È¤Ã¤Æ¤â -¤³¤Î¥í¥Ã¥¯¤òÊѹ¹¤·¤¿¤ê²òÊü¤·¤¿¤ê¤Ç¤­¤ë¡£ +などにより作成される) は同じロックを参照し、 +これらのファイル・ディスクリプタのどれを使っても +このロックを変更したり解放したりできる。 .\"O Furthermore, the lock is released either by an explicit .\"O .B LOCK_UN .\"O operation on any of these duplicate descriptors, or when all .\"O such descriptors have been closed. -¤Þ¤¿¡¢¥í¥Ã¥¯¤Î²òÊü¤Ï¡¢ -¾åµ­¤ÎÊ£¿ô¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¤¤º¤ì¤«¤ËÂФ·¤Æ -ÌÀ¼¨Åª¤Ë +また、ロックの解放は、 +上記の複数のファイル・ディスクリプタのいずれかに対して +明示的に .B LOCK_UN -Áàºî¤ò»Ø¼¨¤·¤¿¾ì¹ç¤«¡¢¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¤¹¤Ù¤Æ -ÊĤ¸¤é¤ì¤¿¾ì¹ç¤Ë¹Ô¤ï¤ì¤ë¡£ +操作を指示した場合か、これらのファイル・ディスクリプタがすべて +閉じられた場合に行われる。 .\"O If a process uses .\"O .BR open (2) @@ -143,15 +143,15 @@ flock \- .\"O An attempt to lock the file using one of these file descriptors .\"O may be denied by a lock that the calling process has .\"O already placed via another descriptor. -¤¢¤ë¥×¥í¥»¥¹¤¬ +あるプロセスが .BR open (2) -(¤â¤·¤¯¤ÏƱÍͤÎÊýË¡) ¤ò»È¤Ã¤ÆƱ¤¸¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ -Ê£¿ô¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¼èÆÀ¤·¤¿¾ì¹ç¡¢ +(もしくは同様の方法) を使って同じファイルに対して +複数のディスクリプタを取得した場合、 .BR flock () -¤Ï¤³¤ì¤éÊ£¿ô¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò³Æ¡¹ÆÈΩ¤Î¤â¤Î¤È¤·¤Æ°·¤¦¡£ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î°ì¤Ä¤ò»È¤Ã¤Æ¥Õ¥¡¥¤¥ë¤ò¥í¥Ã¥¯¤·¤è¤¦¤È -¤·¤¿ºÝ¡¢¤½¤Î¥í¥Ã¥¯Í×µá¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬¤½¤Î¥Õ¥¡¥¤¥ë¤ÎÊ̤Π-¥Ç¥£¥¹¥¯¥ê¥×¥¿·Ðͳ¤Ç¤¹¤Ç¤ËÀßÄꤷ¤Æ¤¤¤ë¥í¥Ã¥¯¤Ë¤è¤Ã¤ÆµñÈݤµ¤ì¤ë¾ì¹ç¤¬¤¢¤ë¡£ +はこれら複数のディスクリプタを各々独立のものとして扱う。 +これらのファイル・ディスクリプタの一つを使ってファイルをロックしようと +した際、そのロック要求は、呼び出し元のプロセスがそのファイルの別の +ディスクリプタ経由ですでに設定しているロックによって拒否される場合がある。 .\"O A process may only hold one type of lock (shared or exclusive) .\"O on a file. @@ -159,90 +159,90 @@ flock \- .\"O .BR flock () .\"O calls on an already locked file will convert an existing lock to the new .\"O lock mode. -°ì¤Ä¤Î¥×¥í¥»¥¹¤Ï¡¢°ì¤Ä¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ (¶¦Í­¥í¥Ã¥¯¤ÈÇÓ¾¥í¥Ã¥¯¤Î¤¦¤Á) -¤¤¤º¤ì¤«°ì¼ïÎà¤Î¥í¥Ã¥¯¤·¤«ÀßÄê¤Ç¤­¤Ê¤¤¡£ -´û¤Ë¥í¥Ã¥¯¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ +一つのプロセスは、一つのファイルに対して (共有ロックと排他ロックのうち) +いずれか一種類のロックしか設定できない。 +既にロックされたファイルに対して .BR flock () -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢´û¸¤Î¥í¥Ã¥¯¤ò¿·¤·¤¤¥í¥Ã¥¯¥â¡¼¥É¤ËÊѹ¹¤¹¤ë¤³¤È¤Ë¤Ê¤ë¡£ +を呼び出すと、既存のロックを新しいロックモードに変更することになる。 .\"O Locks created by .\"O .BR flock () .\"O are preserved across an .\"O .BR execve (2). .BR flock () -¤Ë¤è¤êºîÀ®¤µ¤ì¤¿¥í¥Ã¥¯¤Ï +により作成されたロックは .BR execve (2) -¤ÎÁ°¸å¤ÇÊݸ¤µ¤ì¤ë¡£ +の前後で保存される。 .\"O A shared or exclusive lock can be placed on a file regardless of the .\"O mode in which the file was opened. -¶¦Í­¥í¥Ã¥¯¤âÇÓ¾¥í¥Ã¥¯¤â¡¢¥Õ¥¡¥¤¥ë¤¬¤É¤Î¥â¡¼¥É¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤¿¤«¤Ë -´Ø·¸¤Ê¤¯Å¬ÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +共有ロックも排他ロックも、ファイルがどのモードでオープンされたかに +関係なく適用することができる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤Î¾ì¹ç¡¢0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功の場合、0 が返される。エラーの場合は、\-1 が返され、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬ÀßÄꤵ¤ì¤ë¡£ +に適切な値が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O .I fd .\"O is not an open file descriptor. .I fd -¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ +がオープンされたファイル・ディスクリプタではない。 .TP .B EINTR .\"O While waiting to acquire a lock, the call was interrupted by .\"O delivery of a signal caught by a handler; see .\"O .BR signal (7). -¥í¥Ã¥¯¤Î³ÍÆÀ¤òÂԤäƤ¤¤ë´Ö¤Ë¡¢¥Ï¥ó¥É¥é¤Ë¤è¤êÊ᪤µ¤ì¤¿¥·¥°¥Ê¥ë¤ò -¼õ¿®¤·¡¢ +ロックの獲得を待っている間に、ハンドラにより捕捉されたシグナルを +受信し、 .BR flock () -¤¬ÃæÃǤµ¤ì¤¿¡£ +が中断された。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .\"O .I operation .\"O is invalid. .I oepration -¤¬Ìµ¸ú¤Ç¤¢¤ë¡£ +が無効である。 .TP .B ENOLCK .\"O The kernel ran out of memory for allocating lock records. -¥í¥Ã¥¯¡¦¥ì¥³¡¼¥É¤ò³ä¤êÅö¤Æ¤ë¤¿¤á¤Î¥á¥â¥ê¤¬ÉÔ­¤·¤Æ¤¤¤ë¡£ +ロック・レコードを割り当てるためのメモリが不足している。 .TP .B EWOULDBLOCK .\"O The file is locked and the .\"O .B LOCK_NB .\"O flag was selected. -»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤¬¥í¥Ã¥¯¤µ¤ì¤Æ¤ª¤ê¡¢ +指定したファイルがロックされており、 .B LOCK_NB -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¡£ +フラグが指定されている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O 4.4BSD (the .\"O .BR flock () .\"O call first appeared in 4.2BSD). 4.4BSD .RB ( flock () -¥³¡¼¥ë¤Ï 4.2BSD ¤ÇºÇ½é¤ËÅо줷¤¿)¡£ +コールは 4.2BSD で最初に登場した)。 .\"O A version of .\"O .BR flock (), .\"O possibly implemented in terms of .\"O .BR fcntl (2), .\"O appears on most UNIX systems. .BR fcntl (2) -¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤Ê¤É¤ò´Þ¤á¤ë¤È¡¢ +で実装されているものなどを含めると、 .BR flock () -¤Îµ¡Ç½¤Ï¤Û¤È¤ó¤É¤Î UNIX ¥·¥¹¥Æ¥à¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +の機能はほとんどの UNIX システムで実装されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .BR flock () .\"O does not lock files over NFS. .\"O Use @@ -250,22 +250,22 @@ flock \- .\"O instead: that does work over NFS, given a sufficiently recent version of .\"O Linux and a server which supports locking. .BR flock () -¤Ï NFS ¾å¤Î¥Õ¥¡¥¤¥ë¤Î¥í¥Ã¥¯¤ò¤·¤Ê¤¤¡£Âå¤ï¤ê¤Ë +は NFS 上のファイルのロックをしない。代わりに .BR fcntl (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£¤³¤ì¤Ë¤è¤ê¡¢½½Ê¬¤Ë¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤Î Linux ¤È¡¢¥í¥Ã¥¯µ¡Ç½¤ò -¥µ¥Ý¡¼¥È¤·¤¿ NFS ¥µ¡¼¥Ð¤ò»ÈÍѤ¹¤ë¤³¤È¤Ë¤è¤ê¡¢NFS ¾å¤Ç¥í¥Ã¥¯¤¬¤Ç¤­¤ë¡£ +を使用すること。これにより、十分に新しいバージョンの Linux と、ロック機能を +サポートした NFS サーバを使用することにより、NFS 上でロックができる。 .PP .\"O Since kernel 2.0, .\"O .BR flock () .\"O is implemented as a system call in its own right rather .\"O than being emulated in the GNU C library as a call to .\"O .BR fcntl (2). -kernel 2.0 °Ê¹ß¤Ç¤Ï¡¢ +kernel 2.0 以降では、 .BR flock () -¤Ï¡¢GNU C ¥é¥¤¥Ö¥é¥ê¤Ç¤Î +は、GNU C ライブラリでの .BR fcntl (2) -¤ò¸Æ¤Ó½Ð¤·¤Æ¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤Ç¤Ï¤Ê¤¯¡¢ -¤½¤ì¼«ÂΤ¬¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +を呼び出してのエミュレーションではなく、 +それ自体がシステムコールとして実装されている。 .\"O This yields true BSD semantics: .\"O there is no interaction between the types of lock .\"O placed by @@ -275,13 +275,13 @@ kernel 2.0 .\"O and .\"O .BR flock () .\"O does not detect deadlock. -¤³¤ì¤Ë¤è¤êÀµ¿¿ÀµÌäΠBSD ¤Ç¤ÎÆ°ºî¤¬Ã£À®¤µ¤ì¤ë: +これにより正真正銘の BSD での動作が達成される: .BR flock () -¤È +と .BR fcntl (2) -¤ÇŬÍѤµ¤ì¤ë¥í¥Ã¥¯¤Î¼ïÊ̤ˤÏÁê¸ßºîÍѤ¬¤Ê¤¯¤Ê¤ê¡¢ +で適用されるロックの種別には相互作用がなくなり、 .BR flock () -¤¬¥Ç¥Ã¥É¥í¥Ã¥¯¤ò¸¡½Ð¤·¤Ê¤¯¤Ê¤ë¡£ +がデッドロックを検出しなくなる。 .PP .\"O .BR flock () .\"O places advisory locks only; given suitable permissions on a file, @@ -289,10 +289,10 @@ kernel 2.0 .\"O .BR flock () .\"O and perform I/O on the file. .BR flock () -¥¢¥É¥Ð¥¤¥¶¥ê¡¦¥í¥Ã¥¯¤À¤±¤òŬÍѤ¹¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢¥Õ¥¡¥¤¥ë¤ËŬÀڤʥ¢¥¯¥»¥¹¸¢¤ò -ÉÕÍ¿¤·¤Æ¤¤¤ì¤Ð¡¢¥×¥í¥»¥¹¤Ï +アドバイザリ・ロックだけを適用する。したがって、ファイルに適切なアクセス権を +付与していれば、プロセスは .BR flock () -¤Î»ÈÍѤË̵»ë¤·¤Æ¡¢¥Õ¥¡¥¤¥ë¤Ø¤ÎÆþ½ÐÎϤò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +の使用に無視して、ファイルへの入出力を行うことができる。 .PP .\"O .BR flock () .\"O and @@ -300,11 +300,11 @@ kernel 2.0 .\"O locks have different semantics with respect to forked processes and .\"O .BR dup (2). .BR flock () -¤È +と .BR fcntl (2) -¤Ï fork ¤µ¤ì¤¿¥×¥í¥»¥¹¤È +は fork されたプロセスと .BR dup (2) -¤Ç°ã¤Ã¤¿Æ°ºî¤ò¤¹¤ë¡£ +で違った動作をする。 .\"O On systems that implement .\"O .BR flock () .\"O using @@ -313,11 +313,11 @@ kernel 2.0 .\"O .BR flock () .\"O will be different from those described in this manual page. .BR flock () -¤ò +を .BR fcntl (2) -¤ò»È¤Ã¤Æ¼ÂÁõ¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +を使って実装しているシステムでは、 .BR flock () -¤ÎÆ°ºî¤Ï¤³¤Î¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤È¤Ï°ã¤¦¤À¤í¤¦¡£ +の動作はこのマニュアル・ページに記載されているものとは違うだろう。 .PP .\"O Converting a lock .\"O (shared to exclusive, or vice versa) is not guaranteed to be atomic: @@ -331,17 +331,17 @@ kernel 2.0 .\"O and occurs on many other implementations.) .\"O .\" Kernel 2.5.21 changed things a little: during lock conversion .\"O .\" it is now the highest priority process that will get the lock -- mtk -¥í¥Ã¥¯¤ÎÊÑ´¹ (¶¦Í­¥í¥Ã¥¯¤«¤éÇÓ¾¥í¥Ã¥¯¤Ø¡¢¤â¤·¤¯¤Ï¤½¤ÎÈ¿ÂÐ) ¤¬¥¢¥È¥ß¥Ã¥¯¤Ë -¹Ô¤ï¤ì¤ë¤³¤È¤ÏÊݾڤµ¤ì¤Æ¤¤¤Ê¤¤: ´û¸¤Î¥í¥Ã¥¯¤¬¤Þ¤ººï½ü¤µ¤ì¡¢¤½¤ì¤«¤é¿·¤·¤¤ -¥í¥Ã¥¯¤¬ÀßÄꤵ¤ì¤ë¡£¤³¤Î 2¤Ä¤Î¥¹¥Æ¥Ã¥×¤Î´Ö¤Ë¡¢Â¾¤Î¥×¥í¥»¥¹¤«¤é¤Î½èÍýÂÔ¤Á¤Î -¥í¥Ã¥¯Í׵᤬ǧ¤á¤é¤ì¤ë¤«¤â¤·¤ì¤º¡¢·ë²Ì¤È¤·¤ÆÊÑ´¹¤ÏÄä»ß (block) ¤·¤¿¤ê¡¢ +ロックの変換 (共有ロックから排他ロックへ、もしくはその反対) がアトミックに +行われることは保証されていない: 既存のロックがまず削除され、それから新しい +ロックが設定される。この 2つのステップの間に、他のプロセスからの処理待ちの +ロック要求が認められるかもしれず、結果として変換は停止 (block) したり、 .RB ( LOCK_NB -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï) ¼ºÇÔ¤·¤¿¤ê¤¹¤ë¡£ -(¤³¤ì¤Ï¸µ¡¹¤Î BSD ¤ÎÆ°ºî¤Ç¤¢¤ê¡¢Â¿¤¯¤Î¾¤Î¼ÂÁõ¤Ç¤âµ¯¤³¤ë¡£) -.\" ¥«¡¼¥Í¥ë 2.5.21 ¤Ç¾¯¤·Æ°ºî¤¬Êѹ¹¤µ¤ì¤¿: ¥í¥Ã¥¯ÊÑ´¹¤ÎºÇÃæ¤Ï -.\" ¤½¤Î¥í¥Ã¥¯¤ò¹Ô¤ª¤¦¤È¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤¬ºÇ¹âÍ¥Àè¤È¤Ê¤ë -- mtk +が指定された場合には) 失敗したりする。 +(これは元々の BSD の動作であり、多くの他の実装でも起こる。) +.\" カーネル 2.5.21 で少し動作が変更された: ロック変換の最中は +.\" そのロックを行おうとしているプロセスが最高優先となる -- mtk .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR close (2), .BR dup (2), .BR execve (2), @@ -355,8 +355,8 @@ kernel 2.0 .\"O in the kernel source .\"O .RI ( Documentation/locks.txt .\"O in older kernels). -¥«¡¼¥Í¥ë¥½¡¼¥¹Æâ¤Î +カーネルソース内の .I Documentation/filesystem/locks.txt -(°ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï +(以前のカーネルでは .IR Documentation/locks.txt ) -¤â»²¾È¤Î¤³¤È¡£ +も参照のこと。 diff --git a/draft/man2/fork.2 b/draft/man2/fork.2 index 52b437cb..50fa8825 100644 --- a/draft/man2/fork.2 +++ b/draft/man2/fork.2 @@ -51,83 +51,83 @@ .\" .TH FORK 2 2009-04-27 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fork \- create a child process -fork \- »Ò¥×¥í¥»¥¹¤òÀ¸À®¤¹¤ë +fork \- 子プロセスを生成する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .B pid_t fork(void); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR fork () .\"O creates a new process by duplicating the calling process. .\"O The new process, referred to as the \fIchild\fP, .\"O is an exact duplicate of the calling process, .\"O referred to as the \fIparent\fP, except for the following points: .BR fork () -¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤òÊ£À½¤·¤Æ¿·¤·¤¤¥×¥í¥»¥¹¤òÀ¸À®¤¹¤ë¡£ -\fIchild\fP ¤Ç»²¾È¤µ¤ì¤ë¿·¤·¤¤¥×¥í¥»¥¹¤Ï¡¢°Ê²¼¤ÎÅÀ¤ò½ü¤­¡¢ -\fIparent\fP ¤Ç»²¾È¤µ¤ì¤ë¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î´°Á´¤ÊÊ£À½¤Ç¤¢¤ë: +は呼び出し元プロセスを複製して新しいプロセスを生成する。 +\fIchild\fP で参照される新しいプロセスは、以下の点を除き、 +\fIparent\fP で参照される呼び出し元プロセスの完全な複製である: .IP * 3 .\"O The child has its own unique process ID, .\"O and this PID does not match the ID of any existing process group .\"O .RB ( setpgid (2)). -»Ò¥×¥í¥»¥¹¤ÏÆȼ«¤Î¥×¥í¥»¥¹ ID ¤ò»ý¤Á¡¢ -¤³¤Î PID ¤Ï´û¸¤Î¤É¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥× +子プロセスは独自のプロセス ID を持ち、 +この PID は既存のどのプロセスグループ .RB ( setpgid (2)) -¤Î ID ¤È¤â°ìÃפ·¤Ê¤¤¡£ +の ID とも一致しない。 .IP * .\"O The child's parent process ID is the same as the parent's process ID. -»Ò¥×¥í¥»¥¹¤Î¿Æ¥×¥í¥»¥¹ ID ¤Ï¡¢¿Æ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +子プロセスの親プロセス ID は、親プロセスのプロセス ID と同じである。 .IP * .\"O The child does not inherit its parent's memory locks .\"O .RB ( mlock (2), .\"O .BR mlockall (2)). -»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤Î¥á¥â¥ê¥í¥Ã¥¯ +子プロセスは親プロセスのメモリロック .RB ( mlock (2), .BR mlockall (2)) -¤ò°ú¤­·Ñ¤¬¤Ê¤¤¡£ +を引き継がない。 .IP * .\"O Process resource utilizations .\"O .RB ( getrusage (2)) .\"O and CPU time counters .\"O .RB ( times (2)) .\"O are reset to zero in the child. -¥×¥í¥»¥¹¤Î»ñ¸»ÍøÍÑÎÌ +プロセスの資源利用量 .RB ( getrusage (2)) -¤È CPU ¥¿¥¤¥à¥«¥¦¥ó¥¿ +と CPU タイムカウンタ .RB ( times (2)) -¤¬¡¢»Ò¥×¥í¥»¥¹¤Ç¤Ï 0 ¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë¡£ +が、子プロセスでは 0 にリセットされる。 .IP * .\"O The child's set of pending signals is initially empty .\"O .RB ( sigpending (2)). -»Ò¥×¥í¥»¥¹¤Î½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë¤Î½¸¹ç +子プロセスの処理待ちのシグナルの集合 .RB ( sigpending (2)) -¤Ï¡¢½é´ü¾õÂ֤Ǥ϶õ¤Ë¤Ê¤ë¡£ +は、初期状態では空になる。 .IP * .\"O The child does not inherit semaphore adjustments from its parent .\"O .RB ( semop (2)). -»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤«¤é¥»¥Þ¥Õ¥©Ä´À° +子プロセスは親プロセスからセマフォ調整 .RB ( semop (2)) -¤ò°ú¤­·Ñ¤¬¤Ê¤¤¡£ +を引き継がない。 .IP * .\"O The child does not inherit record locks from its parent .\"O .RB ( fcntl (2)). -»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤«¤é¥ì¥³¡¼¥É¥í¥Ã¥¯ +子プロセスは親プロセスからレコードロック .RB ( fcntl (2)) -¤ò°ú¤­·Ñ¤¬¤Ê¤¤¡£ +を引き継がない。 .IP * .\"O The child does not inherit timers from its parent .\"O .RB ( setitimer (2), .\"O .BR alarm (2), .\"O .BR timer_create (2)). -»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤«¤é¥¿¥¤¥Þ¡¼ +子プロセスは親プロセスからタイマー .RB ( setitimer (2), .BR alarm (2), .BR timer_create (2)) -¤ò°ú¤­·Ñ¤¬¤Ê¤¤¡£ +を引き継がない。 .IP * .\"O The child does not inherit outstanding asynchronous I/O operations .\"O from its parent @@ -135,20 +135,20 @@ fork \- .\"O .BR aio_write (3)), .\"O nor does it inherit any asynchronous I/O contexts from its parent (see .\"O .BR io_setup (2)). -»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤«¤é¼ç¤À¤Ã¤¿ÈóƱ´ü I/O Áàºî¤ò°ú¤­·Ñ¤¬¤Ê¤¤ +子プロセスは親プロセスから主だった非同期 I/O 操作を引き継がない .RB ( aio_read (3), .BR aio_write (3) -»²¾È)¡£ -¤Þ¤¿¡¢¿Æ¥×¥í¥»¥¹¤«¤éÈóƱ´ü I/O ¥³¥ó¥Æ¥­¥¹¥È¤ò°ú¤­·Ñ¤¬¤Ê¤¤ +参照)。 +また、親プロセスから非同期 I/O コンテキストを引き継がない .RB ( io_setup (2) -»²¾È)¡£ +参照)。 .PP .\"O The process attributes in the preceding list are all specified .\"O in POSIX.1-2001. .\"O The parent and child also differ with respect to the following .\"O Linux-specific process attributes: -¾åµ­¤Î¥ê¥¹¥È¤Ë¤¢¤ë¥×¥í¥»¥¹Â°À­¤Ï¡¢POSIX.1-2001 ¤ÇÁ´¤Æ»ØÄꤵ¤ì¤Æ¤¤¤ë¡£ -¿Æ¥×¥í¥»¥¹¤È»Ò¥×¥í¥»¥¹¤Ï¡¢°Ê²¼¤Î Linux ¸ÇÍ­¤Î¥×¥í¥»¥¹Â°À­¤â°Û¤Ê¤ë: +上記のリストにあるプロセス属性は、POSIX.1-2001 で全て指定されている。 +親プロセスと子プロセスは、以下の Linux 固有のプロセス属性も異なる: .IP * 3 .\"O The child does not inherit directory change notifications (dnotify) .\"O from its parent @@ -156,11 +156,11 @@ fork \- .\"O .B F_NOTIFY .\"O in .\"O .BR fcntl (2)). -»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤«¤é¥Ç¥£¥ì¥¯¥È¥êÊѹ¹ÄÌÃÎ (dnotify) +子プロセスは親プロセスからディレクトリ変更通知 (dnotify) .RB ( fcntl (2) -¤Ë¤ª¤±¤ë +における .B F_NOTIFY -¤ÎÀâÌÀ¤ò»²¾È) ¤ò°ú¤­·Ñ¤¬¤Ê¤¤¡£ +の説明を参照) を引き継がない。 .IP * .\"O The .\"O .BR prctl (2) @@ -168,10 +168,10 @@ fork \- .\"O setting is reset so that the child does not receive a signal .\"O when its parent terminates. .BR prctl (2) -¤Î +の .B PR_SET_PDEATHSIG -¤ÎÀßÄ꤬¥ê¥»¥Ã¥È¤µ¤ì¡¢»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿¤È¤­¤Ë -¥·¥°¥Ê¥ë¤ò¼õ¿®¤·¤Ê¤¤¡£ +の設定がリセットされ、子プロセスは親プロセスが終了したときに +シグナルを受信しない。 .IP * .\"O Memory mappings that have been marked with the .\"O .BR madvise (2) @@ -179,55 +179,55 @@ fork \- .\"O flag are not inherited across a .\"O .BR fork (). .BR madvise (2) -¤Î +の .B MADV_DONTFORK -¥Õ¥é¥°¤Ç¥Þ¡¼¥¯¤µ¤ì¤¿¥á¥â¥ê¥Þ¥Ã¥Ô¥ó¥°¤Ï¡¢ +フラグでマークされたメモリマッピングは、 .BR fork () -¤Ë¤è¤Ã¤Æ°ú¤­·Ñ¤¬¤ì¤Ê¤¤¡£ +によって引き継がれない。 .IP * .\"O The termination signal of the child is always .\"O .B SIGCHLD .\"O (see .\"O .BR clone (2)). -»Ò¥×¥í¥»¥¹¤Î½ªÎ»¥·¥°¥Ê¥ë¤Ï¾ï¤Ë +子プロセスの終了シグナルは常に .B SIGCHLD -¤Ç¤¢¤ë +である .RB ( clone (2) -¤ò»²¾È)¡£ +を参照)。 .PP .\"O Note the following further points: -¤µ¤é¤Ë°Ê²¼¤ÎÅÀ¤Ë¤Ä¤¤¤ÆÃí°Õ¤¹¤ë¤³¤È: +さらに以下の点について注意すること: .IP * 3 .\"O The child process is created with a single thread\(emthe .\"O one that called .\"O .BR fork (). -»Ò¥×¥í¥»¥¹¤Ï¥·¥ó¥°¥ë¥¹¥ì¥Ã¥É¤ÇÀ¸À®¤µ¤ì¤ë¡£¤Ä¤Þ¤ê¡¢ +子プロセスはシングルスレッドで生成される。つまり、 .BR fork () -¤ò¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤È¤Ê¤ë¡£ +を呼び出したスレッドとなる。 .\"O The entire virtual address space of the parent is replicated in the child, .\"O including the states of mutexes, condition variables, .\"O and other pthreads objects; the use of .\"O .BR pthread_atfork (3) .\"O may be helpful for dealing with problems that this can cause. -¿Æ¥×¥í¥»¥¹¤Î²¾ÁÛ¥¢¥É¥ì¥¹¶õ´ÖÁ´ÂΤ¬»Ò¥×¥í¥»¥¹¤ËÊ£À½¤µ¤ì¤ë¡£ -¤³¤ì¤Ë¤Ï¥ß¥å¡¼¥Æ¥Ã¥¯¥¹ (mutex) ¤Î¾õÂÖ¡¦¾ò·ïÊÑ¿ô¡¦ -pthread ¥ª¥Ö¥¸¥§¥¯¥È¤¬´Þ¤Þ¤ì¤ë¡£ -¤³¤ì¤¬°ú¤­µ¯¤³¤¹ÌäÂê¤ò°·¤¦¤Ë¤Ï¡¢ +親プロセスの仮想アドレス空間全体が子プロセスに複製される。 +これにはミューテックス (mutex) の状態・条件変数・ +pthread オブジェクトが含まれる。 +これが引き起こす問題を扱うには、 .BR pthread_atfork (3) -¤ò»È¤¦¤ÈÎɤ¤¤À¤í¤¦¡£ +を使うと良いだろう。 .IP * .\"O The child inherits copies of the parent's set of open file descriptors. .\"O Each file descriptor in the child refers to the same .\"O open file description (see .\"O .BR open (2)) .\"O as the corresponding file descriptor in the parent. -»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤¬»ý¤Ä -¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î½¸¹ç¤Î¥³¥Ô¡¼¤ò°ú¤­·Ñ¤°¡£ -»Ò¥×¥í¥»¥¹¤Î³Æ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢ -¿Æ¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂбþ¤¹¤ë -Ʊ¤¸¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò (file description) ¤ò»²¾È¤¹¤ë +子プロセスは親プロセスが持つ +オープンファイルディスクリプタの集合のコピーを引き継ぐ。 +子プロセスの各ファイルディスクリプタは、 +親プロセスのファイルディスクリプタに対応する +同じオープンファイル記述 (file description) を参照する .RB ( open (2) -¤ò»²¾È)¡£ +を参照)。 .\"O This means that the two descriptors share open file status flags, .\"O current file offset, .\"O and signal-driven I/O attributes (see the description of @@ -236,31 +236,31 @@ pthread .\"O .B F_SETSIG .\"O in .\"O .BR fcntl (2)). -¤³¤ì¤Ï 2 ¤Ä¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¡¢¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¡¦ -¸½ºß¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¡¢¥·¥°¥Ê¥ë¶îÆ° (signal-driven) I/O °À­ +これは 2 つのディスクリプタが、ファイル状態フラグ・ +現在のファイルオフセット、シグナル駆動 (signal-driven) I/O 属性 .RB ( fcntl (2) -¤Ë¤ª¤±¤ë +における .BR F_SETOWN , .B F_SETSIG -¤ÎÀâÌÀ¤ò»²¾È) ¤ò¶¦Í­¤¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +の説明を参照) を共有することを意味する。 .IP * .\"O The child inherits copies of the parent's set of open message .\"O queue descriptors (see .\"O .BR mq_overview (7)). -»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤¬»ý¤Ä¥ª¡¼¥×¥ó¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¥Ç¥£¥¹¥¯¥ê¥×¥¿ +子プロセスは親プロセスが持つオープンメッセージキューディスクリプタ .RB ( mq_overview (7) -¤ò»²¾È) ¤Î½¸¹ç¤Î¥³¥Ô¡¼¤ò°ú¤­·Ñ¤°¡£ +を参照) の集合のコピーを引き継ぐ。 .\"O Each descriptor in the child refers to the same .\"O open message queue description .\"O as the corresponding descriptor in the parent. -»Ò¥×¥í¥»¥¹¤Î³Æ¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢ -¿Æ¥×¥í¥»¥¹¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂбþ¤¹¤ë -Ʊ¤¸¥ª¡¼¥×¥ó¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò»²¾È¤¹¤ë¡£ +子プロセスの各ディスクリプタは、 +親プロセスのディスクリプタに対応する +同じオープンメッセージキューディスクリプタを参照する。 .\"O This means that the two descriptors share the same flags .\"O .RI ( mq_flags ). -¤³¤ì¤Ï 2 ¤Ä¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Æ±¤¸¥Õ¥é¥° +これは 2 つのディスクリプタが同じフラグ .RI ( mq_flags ) -¤ò¶¦Í­¤¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +を共有することを意味する。 .IP * .\"O The child inherits copies of the parent's set of open directory streams (see .\"O .BR opendir (3)). @@ -269,78 +269,78 @@ pthread .\"O .I may .\"O share the directory stream positioning; .\"O on Linux/glibc they do not. -»Ò¥×¥í¥»¥¹¤Ï¡¢¿Æ¥×¥í¥»¥¹¤Î¥ª¡¼¥×¥óºÑ¤ß¤Î¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤Î½¸¹ç +子プロセスは、親プロセスのオープン済みのディレクトリストリームの集合 .RB ( opendir (3) -»²¾È) ¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£ -POSIX.1-2001 ¤Ç¤Ï¡¢¿Æ¥×¥í¥»¥¹¤È»Ò¥×¥í¥»¥¹´Ö¤ÎÂбþ¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à -¤Ï¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤Î°ÌÃÖ (positioning) ¤ò¶¦Í­¤·¤Æ¤â¤è¤¤¤È¤µ¤ì¤Æ¤¤¤ë¡£ -Linux/glibc ¤Ç¤Ï¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤Î°ÌÃ֤ζ¦Í­¤Ï¹Ô¤ï¤ì¤Æ¤¤¤Ê¤¤¡£ +参照) のコピーを継承する。 +POSIX.1-2001 では、親プロセスと子プロセス間の対応するディレクトリストリーム +はディレクトリストリームの位置 (positioning) を共有してもよいとされている。 +Linux/glibc ではディレクトリストリームの位置の共有は行われていない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, the PID of the child process is returned in the parent, .\"O and 0 is returned in the child. .\"O On failure, \-1 is returned in the parent, .\"O no child process is created, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢¿Æ¥×¥í¥»¥¹¤Ë¤Ï»Ò¥×¥í¥»¥¹¤Î PID ¤¬ÊÖ¤µ¤ì¡¢ -»Ò¥×¥í¥»¥¹¤Ë¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢¿Æ¥×¥í¥»¥¹¤Ë \-1 ¤¬ÊÖ¤µ¤ì¡¢»Ò¥×¥í¥»¥¹¤ÏÀ¸À®¤µ¤ì¤º¡¢ +成功した場合、親プロセスには子プロセスの PID が返され、 +子プロセスには 0 が返される。 +失敗した場合、親プロセスに \-1 が返され、子プロセスは生成されず、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EAGAIN .\"O .BR fork () .\"O cannot allocate sufficient memory to copy the parent's page tables and .\"O allocate a task structure for the child. -¿Æ¥×¥í¥»¥¹¤Î¥Ú¡¼¥¸¡¦¥Æ¡¼¥Ö¥ë¤Î¥³¥Ô¡¼¤È -»Ò¥×¥í¥»¥¹¤Î¥¿¥¹¥¯¹½Â¤¤ËÀ¸À®¤ËɬÍפʥá¥â¥ê¤ò +親プロセスのページ・テーブルのコピーと +子プロセスのタスク構造に生成に必要なメモリを .BR fork () -¤¬³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +が割り当てることができなかった。 .TP .B EAGAIN .\"O It was not possible to create a new process because the caller's .\"O .B RLIMIT_NPROC .\"O resource limit was encountered. -¸Æ¤Ó½Ð¤·¸µ¤Î +呼び出し元の .B RLIMIT_NPROC -»ñ¸»¤ÎÀ©¸Â (resource limit) ¤Ë㤷¤¿¤¿¤á¤Ë¡¢¿·¤·¤¤¥×¥í¥»¥¹¤òÀ¸À®¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +資源の制限 (resource limit) に達したために、新しいプロセスを生成できなかった。 .\"O To exceed this limit, the process must have either the .\"O .B CAP_SYS_ADMIN .\"O or the .\"O .B CAP_SYS_RESOURCE .\"O capability. -¤³¤ÎÀ©¸Â¤òĶ¤¨¤ë¤Ë¤Ï¡¢¥×¥í¥»¥¹¤Ï +この制限を超えるには、プロセスは .B CAP_SYS_ADMIN -¤Þ¤¿¤Ï +または .B CAP_SYS_RESOURCE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤Ã¤Æ¤¤¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +ケーパビリティ (capability) を持っていなくてはならない。 .TP .B ENOMEM .\"O .BR fork () .\"O failed to allocate the necessary kernel structures because memory is tight. -¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¤¿¤á¤Ë¡¢ +メモリが足りないために、 .BR fork () -¤ÏɬÍפʥ«¡¼¥Í¥ë¹½Â¤ÂΤò³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +は必要なカーネル構造体を割り当てることができなかった。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .PP .\"O Under Linux, .\"O .BR fork () .\"O is implemented using copy-on-write pages, so the only penalty that it incurs .\"O is the time and memory required to duplicate the parent's page tables, .\"O and to create a unique task structure for the child. -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR fork () -¤ò ½ñ¤­¹þ¤ß»þ¥³¥Ô¡¼ (copy-on-write)¡¦¥Ú¡¼¥¸¤òÍѤ¤¤Æ¼ÂÁõ¤·¤Æ¤¤¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢fork ¤ò¹Ô¤¦¤³¤È¤ÎÍ£°ì¤Î¥Ç¥á¥ê¥Ã¥È¤Ï¡¢ -¿Æ¥×¥í¥»¥¹¤Î¥Ú¡¼¥¸¡¦¥Æ¡¼¥Ö¥ë¤òÊ£À½¤È -»Ò¥×¥í¥»¥¹¼«¿È¤Î¥¿¥¹¥¯¹½Â¤¤ÎºîÀ®¤Î¤¿¤á¤Î»þ´Ö¤È¥á¥â¥ê¤¬É¬Íפʤ³¤È¤Ç¤¢¤ë¡£ +を 書き込み時コピー (copy-on-write)・ページを用いて実装している。 +したがって、fork を行うことの唯一のデメリットは、 +親プロセスのページ・テーブルを複製と +子プロセス自身のタスク構造の作成のための時間とメモリが必要なことである。 .\"O Since version 2.3.3, .\"O .\" nptl/sysdeps/unix/sysv/linux/fork.c @@ -357,36 +357,36 @@ Linux .\"O established using .\"O .BR pthread_atfork (3). .\"O .\" and does some magic to ensure that getpid(2) returns the right value. -glibc 2.3.3 °Ê¹ß¤Ç¤Ï¡¢ -NPTL ¥¹¥ì¥Ã¥É¼ÂÁõ¤Î°ìÉô¤È¤·¤ÆÄ󶡤µ¤ì¤Æ¤¤¤ë glibc ¤Î +glibc 2.3.3 以降では、 +NPTL スレッド実装の一部として提供されている glibc の .BR fork () -¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢ -¥«¡¼¥Í¥ë¤Î +ラッパー関数は、 +カーネルの .BR fork () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ +システムコールを起動するのではなく、 .BR clone (2) -¤òµ¯Æ°¤¹¤ë¡£ +を起動する。 .BR clone (2) -¤ËÅϤ¹¥Õ¥é¥°¤È¤·¤Æ¡¢ÅÁÅýŪ¤Ê +に渡すフラグとして、伝統的な .BR fork () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÈƱ¤¸¸ú²Ì¤¬ÆÀ¤é¤ì¤ë¤è¤¦¤Ê¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤ë¡£ -glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï +システムコールと同じ効果が得られるようなフラグが指定される。 +glibc のラッパー関数は .BR pthread_atfork (3) -¤ò»È¤Ã¤ÆÀßÄꤵ¤ì¤Æ¤¤¤ëǤ°Õ¤Î fork ¥Ï¥ó¥É¥é¤òµ¯Æ°¤¹¤ë¡£ -.\" getpid(2) ¤¬Àµ¤·¤¤ÃͤòÊÖ¤¹¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë²¿¤é¤«¤Î½èÍý¤ò¹Ô¤¦¡£ +を使って設定されている任意の fork ハンドラを起動する。 +.\" getpid(2) が正しい値を返すことができるように何らかの処理を行う。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O See .\"O .BR pipe (2) .\"O and .\"O .BR wait (2). .BR pipe (2) -¤ª¤è¤Ó +および .BR wait (2) -¤ò»²¾È¡£ +を参照。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR clone (2), .BR execve (2), .BR setrlimit (2), diff --git a/draft/man2/fstatat.2 b/draft/man2/fstatat.2 index 7441ae9b..bf2225bc 100644 --- a/draft/man2/fstatat.2 +++ b/draft/man2/fstatat.2 @@ -28,14 +28,14 @@ .\" .TH FSTATAT 2 2009-12-13 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fstatat \- get file status relative to a directory file descriptor -fstatat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÁêÂÐŪ¤Ê°ÌÃ֤ˤ¢¤ë¥Õ¥¡¥¤¥ë¤Î¾õÂÖ¤ò¼èÆÀ¤¹¤ë +fstatat \- ディレクトリファイルディスクリプタから相対的な位置にあるファイルの状態を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .B #include /* Definition of AT_* constants */ -.B #include /* AT_* Äê¿ô¤ÎÄêµÁ */ +.B #include /* AT_* 定数の定義 */ .B #include .sp .BI "int fstatat(int " dirfd ", const char *" pathname ", struct stat *" \ @@ -46,9 +46,9 @@ buf , .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR fstatat (): @@ -57,26 +57,26 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR fstatat () .\"O system call operates in exactly the same way as .\"O .BR stat (2), .\"O except for the differences described in this manual page. .BR fstatat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë°ã¤¤¤¬¤¢¤ë°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明している違いがある以外は、 .BR stat (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .\"O If the pathname given in .\"O .I pathname @@ -88,13 +88,13 @@ _ATFILE_SOURCE .\"O .BR stat (2) .\"O for a relative pathname). .I pathname -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パスである場合、 +ファイルディスクリプタ .I dirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( stat (2) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤Î -ÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスのカレントワーキングディレクトリからの +相対パスとなる)。 .\"O If .\"O .I pathname @@ -108,16 +108,16 @@ _ATFILE_SOURCE .\"O directory of the calling process (like .\"O .BR stat (2)). .I pathname -¤¬ÁêÂХѥ¹¤Ç¤¢¤ê¡¢¤«¤Ä +が相対パスであり、かつ .I dirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I pathname -¤Ï +は .RB ( stat (2) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .\"O If .\"O .I pathname @@ -125,14 +125,14 @@ _ATFILE_SOURCE .\"O .I dirfd .\"O is ignored. .I pathname -¤¬ÀäÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ +が絶対パスである場合、 .I dirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\"O .I flags .\"O can either be 0, or include the following flag: .I flags -¤Ï 0 ¤Þ¤¿¤Ï°Ê²¼¤Î¥Õ¥é¥°¤Ç¤¢¤ë¡£ +は 0 または以下のフラグである。 .TP .B AT_SYMLINK_NOFOLLOW .\"O If @@ -145,54 +145,54 @@ _ATFILE_SOURCE .\"O dereferences symbolic links, like .\"O .BR stat (2).) .I pathname -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¤Ï¡¢¤½¤ì¤òé¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ +がシンボリックリンクの場合は、それを辿るのではなく、 .BR lstat (2) -¤ÈƱÍͤ˥ê¥ó¥¯¼«¿È¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÊÖ¤¹ -(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +と同様にリンク自身についての情報を返す +(デフォルトでは、 .BR fstatat () -¤Ï +は .BR stat (2) -¤ÈƱÍͤ˥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òé¤ë)¡£ +と同様にシンボリックリンクを辿る)。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR fstatat () .\"O returns 0. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR fstatat () -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .\"O On error, \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +エラーの場合、\-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ +にはエラーを示す値が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O The same errors that occur for .\"O .BR stat (2) .\"O can also occur for .\"O .BR fstatat (). .BR stat (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR fstatat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .\"O The following additional errors can occur for .\"O .BR fstatat (): .BR fstatat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .\"O .I dirfd .\"O is not a valid file descriptor. .I dirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B EINVAL .\"O Invalid flag specified in .\"O .IR flags . .I flags -¤ËÉÔÀµ¤Ê¥Õ¥é¥°Ãͤ¬»ØÄꤵ¤ì¤¿¡£ +に不正なフラグ値が指定された。 .TP .B ENOTDIR .\"O .I pathname @@ -200,32 +200,32 @@ _ATFILE_SOURCE .\"O .I dirfd .\"O is a file descriptor referring to a file other than a directory. .I pathname -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I dirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR fstatat () .\"O was added to Linux in kernel 2.6.16. .BR fstatat () -¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ +は Linux カーネル 2.6.16 で追加された。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. .\"O A similar system call exists on Solaris. -Solaris ¤Ë¤Ï¡¢¤³¤ì¤ÈƱ¤¸¤è¤¦¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Â¸ºß¤¹¤ë¡£ +Solaris には、これと同じようなシステムコールが存在する。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O See .\"O .BR openat (2) .\"O for an explanation of the need for .\"O .BR fstatat (). .BR fstatat () -¤¬É¬ÍפÊÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が必要な理由については、 .BR openat (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR openat (2), .BR stat (2), .BR path_resolution (7), diff --git a/draft/man2/fsync.2 b/draft/man2/fsync.2 index 0aeb407f..e11f20e4 100644 --- a/draft/man2/fsync.2 +++ b/draft/man2/fsync.2 @@ -43,17 +43,17 @@ .\" Updated 2006-07-30, Kentaro Shirakata .\" Updated 2007-10-13, Akihiro MOTOKI , LDP v2.65 .\" -.\"WORD: core ¥á¥â¥ê -.\"WORD: disk ¥Ç¥£¥¹¥¯ -.\"WORD: synchronize Ʊ´ü¤µ¤»¤ë +.\"WORD: core メモリ +.\"WORD: disk ディスク +.\"WORD: synchronize 同期させる ..\" .TH FSYNC 2 2008-11-07 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fsync, fdatasync \- synchronize a file's in-core state with storage device -fsync \- ¥á¥â¥ê¾å¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤ÎÆâÍƤò¥¹¥È¥ì¡¼¥¸¥Ç¥Ð¥¤¥¹¾å¤Î¤â¤Î¤ÈƱ´ü¤µ¤»¤ë +fsync \- メモリ上にあるファイルの内容をストレージデバイス上のものと同期させる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int fsync(int " fd ); @@ -63,23 +63,23 @@ fsync \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR fsync (): _BSD_SOURCE || _XOPEN_SOURCE .br .\"O || /* since glibc 2.8: */ _POSIX_C_SOURCE\ >=\ 200112L - || /* glibc 2.8 °Ê¹ß¤Ç¤Ï: */ _POSIX_C_SOURCE\ >=\ 200112L + || /* glibc 2.8 以降では: */ _POSIX_C_SOURCE\ >=\ 200112L .\"O .\" _POSIX_C_SOURCE\ >=\ 200112L only since glibc 2.8 -.\" _POSIX_C_SOURCE\ >=\ 200112L ¤Ï glibc 2.8 °Ê¹ß¤Î¤ß +.\" _POSIX_C_SOURCE\ >=\ 200112L は glibc 2.8 以降のみ .br .BR fdatasync (): _POSIX_C_SOURCE\ >=\ 199309L || _XOPEN_SOURCE\ >=\ 500 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR fsync () .\"O transfers ("flushes") all modified in-core data of .\"O (i.e., modified buffer cache pages for) the @@ -88,19 +88,19 @@ _POSIX_C_SOURCE\ >=\ 199309L || _XOPEN_SOURCE\ >=\ 500 .\"O to the disk device (or other permanent storage device) .\"O where that file resides. .BR fsync () -¤Ï¡¢¥Õ¥¡¥¤¥ëµ­½Ò»Ò +は、ファイル記述子 .I fd -¤Ç»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤ÎÆâÉô¤Ç»ý¤Ã¤Æ¤¤¤ë¥Ç¡¼¥¿ -(¤Ä¤Þ¤ê¥Ð¥Ã¥Õ¥¡¥­¥ã¥Ã¥·¥å¥Ú¡¼¥¸) ¤Î¤¦¤Á½¤Àµ¤µ¤ì¤¿¥Ç¡¼¥¿¤ò¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¤¬Â°¤¹¤ë¥Ç¥£¥¹¥¯¥Ç¥Ð¥¤¥¹ (¤Þ¤¿¤Ï¤½¤Î¾¤Î±Ê³¥¹¥È¥ì¡¼¥¸¥Ç¥Ð¥¤¥¹) -¤ËžÁ÷ (¡Ö¥Õ¥é¥Ã¥·¥å¡×) ¤¹¤ë¡£ +で参照されるファイルの内部で持っているデータ +(つまりバッファキャッシュページ) のうち修正されたデータを、 +そのファイルが属するディスクデバイス (またはその他の永続ストレージデバイス) +に転送 (「フラッシュ」) する。 .\"O The call blocks until the device reports that the transfer has completed. .\"O It also flushes metadata information associated with the file (see .\"O .BR stat (2)). -¤³¤Î¸Æ¤Ó½Ð¤·¤ÏžÁ÷¤¬½ª¤ï¤Ã¤¿¤È¥Ç¥Ð¥¤¥¹¤¬Êó¹ð¤¹¤ë¤Þ¤Ç¥Ö¥í¥Ã¥¯¤¹¤ë¡£ -¤Þ¤¿¥Õ¥¡¥¤¥ë¤Ë·ë¤Ó¤Ä¤¤¤¿¥á¥¿¥Ç¡¼¥¿¾ðÊó +この呼び出しは転送が終わったとデバイスが報告するまでブロックする。 +またファイルに結びついたメタデータ情報 .RB ( stat (2) -»²¾È) ¤â¥Õ¥é¥Ã¥·¥å¤¹¤ë¡£ +参照) もフラッシュする。 .\"O Calling .\"O .BR fsync () @@ -110,11 +110,11 @@ _POSIX_C_SOURCE\ >=\ 199309L || _XOPEN_SOURCE\ >=\ 500 .\"O .BR fsync () .\"O on a file descriptor for the directory is also needed. .BR fsync () -¤Î¸Æ¤Ó½Ð¤·¤Ï¡¢¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¥¨¥ó¥È¥ê¤¬¥Ç¥£¥¹¥¯¤Ø -½ñ¤­¹þ¤Þ¤ì¤¿¤³¤È¤òÊݾڤ¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -Êݾڤ¹¤ë¤¿¤á¤Ë¤ÏÌÀ¼¨Åª¤Ë¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Õ¥¡¥¤¥ëµ­½Ò»Ò¤ËÂФ·¤Æ¤â +の呼び出しは、ファイルが存在しているディレクトリのエントリがディスクへ +書き込まれたことを保証するわけではない。 +保証するためには明示的にそのディレクトリのファイル記述子に対しても .BR fsync () -¤¹¤ëɬÍפ¬¤¢¤ë¡£ +する必要がある。 .\"O .BR fdatasync () .\"O is similar to @@ -123,12 +123,12 @@ _POSIX_C_SOURCE\ >=\ 199309L || _XOPEN_SOURCE\ >=\ 500 .\"O is needed in order to allow a subsequent data retrieval to be .\"O correctly handled. .BR fdatasync () -¤Ï +は .BR fsync () -¤ÈƱÍͤǤ¢¤ë¤¬¡¢¥á¥¿¥Ç¡¼¥¿¤Î°·¤¤¤¬°Û¤Ê¤ë¡£ +と同様であるが、メタデータの扱いが異なる。 .BR fdatasync () -¤Ï¡¢¤½¤ì°Ê¹ß¤Î¥Ç¡¼¥¿Æɤ߹þ¤ß¤òÀµ¤·¤¯°·¤¦¤¿¤á¤Ë¤½¤Î¥á¥¿¥Ç¡¼¥¿¤¬É¬Í×¤Ë -¤Ê¤é¤Ê¤¤¸Â¤ê¡¢Êѹ¹¤µ¤ì¤¿¥á¥¿¥Ç¡¼¥¿¤ò¥Õ¥é¥Ã¥·¥å¤·¤Ê¤¤¡£ +は、それ以降のデータ読み込みを正しく扱うためにそのメタデータが必要に +ならない限り、変更されたメタデータをフラッシュしない。 .\"O For example, changes to .\"O .I st_atime .\"O or @@ -138,63 +138,63 @@ _POSIX_C_SOURCE\ >=\ 199309L || _XOPEN_SOURCE\ >=\ 500 .\"O .BR stat (2)) .\"O do not require flushing because they are not necessary for .\"O a subsequent data read to be handled correctly. -Î㤨¤Ð¡¢ -st_atime ¤ä st_mtime -(¤½¤ì¤¾¤ìºÇ½ª¥¢¥¯¥»¥¹»þ¹ï¡¢ºÇ½ª½¤Àµ»þ¹ï; +例えば、 +st_atime や st_mtime +(それぞれ最終アクセス時刻、最終修正時刻; .BR stat (2) -»²¾È) ¤ÎÊѹ¹¤Ï¥Õ¥é¥Ã¥·¥å¤òɬÍפȤ·¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¤³¤ì¤é¤Ï¤½¤ì°Ê¹ß¤Î¥Ç¡¼¥¿Æɤ߹þ¤ß¤òÀµ¤·¤¯°·¤¦¤¿¤á¤Ë -ɬÍפǤϤʤ¤¤«¤é¤Ç¤¢¤ë¡£ +参照) の変更はフラッシュを必要としない。 +なぜならこれらはそれ以降のデータ読み込みを正しく扱うために +必要ではないからである。 .\"O On the other hand, a change to the file size .\"O .RI ( st_size , .\"O as made by say .\"O .BR ftruncate (2)), .\"O would require a metadata flush. -°ìÊý¡¢¥Õ¥¡¥¤¥ë¥µ¥¤¥º +一方、ファイルサイズ .RB ( ftruncate (2) -¤Ç¤Ï +では .IR st_size ) -¤ÎÊѹ¹¤Ï¥á¥¿¥Ç¡¼¥¿¤Î¥Õ¥é¥Ã¥·¥å¤¬É¬ÍפǤ¢¤ë¡£ +の変更はメタデータのフラッシュが必要である。 .\"O The aim of .\"O .BR fdatasync () .\"O is to reduce disk activity for applications that do not .\"O require all metadata to be synchronized with the disk. .BR fdatasync () -¤ÎÁÀ¤¤¤Ï¡¢Á´¤Æ¤Î¥á¥¿¥Ç¡¼¥¿¤ò¥Ç¥£¥¹¥¯¤ÈƱ´ü¤¹¤ëɬÍפΤʤ¤ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ËÂФ·¤Æ¡¢¥Ç¥£¥¹¥¯¥¢¥¯¥»¥¹¤ò¸º¤é¤¹¤³¤È¤Ç¤¢¤ë¡£ +の狙いは、全てのメタデータをディスクと同期する必要のない +アプリケーションに対して、ディスクアクセスを減らすことである。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these system calls return zero. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥¼¥í¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合、これらのシステムコールはゼロを返す。 +エラーの場合、\-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O .I fd .\"O is not a valid file descriptor open for writing. .I fd -¤¬½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ëµ­½Ò»Ò¤Ç¤Ê¤¤¡£ +が書き込みのためにオープンされたファイル記述子でない。 .TP .B EIO .\"O An error occurred during synchronization. -Ʊ´üÁàºî¤Î´Ö¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +同期操作の間にエラーが発生した。 .TP .BR EROFS ", " EINVAL .\"O .I fd .\"O is bound to a special file which does not support synchronization. .I fd -¤¬Æ±´üÁàºî¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤Ê¤¤Æüì¤Ê¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤ë¡£ +が同期操作をサポートしてない特殊なファイルを参照している。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.3BSD, POSIX.1-2001. .\"O .SH AVAILABILITY -.SH ²ÄÍÑÀ­ +.SH 可用性 .\"O On POSIX systems on which .\"O .BR fdatasync () .\"O is available, @@ -205,18 +205,18 @@ st_atime .\"O (See also .\"O .BR sysconf (3).) .BR fdatasync () -¤¬ÍøÍѲÄǽ¤Ê POSIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +が利用可能な POSIX システムでは、 .B _POSIX_SYNCHRONIZED_IO -¤¬ +が .I -¤Ç 0 ¤è¤êÂ礭¤ÊÃͤËÄêµÁ¤µ¤ì¤ë +で 0 より大きな値に定義される .RB ( sysconf (3) -»²¾È)¡£ +参照)。 .\" POSIX.1-2001: It shall be defined to -1 or 0 or 200112L. .\" -1: unavailable, 0: ask using sysconf(). .\" glibc defines them to 1. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Applications that access databases or log files often write a tiny .\"O data fragment (e.g., one line in a log file) and then call .\"O .BR fsync () @@ -231,20 +231,20 @@ st_atime .\"O concept .\"O .BR fdatasync () .\"O can be used to avoid unnecessary inode disk write operations. -¥Ç¡¼¥¿¥Ù¡¼¥¹¤ä¥í¥°¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢ -Èó¾ï¤Ë¾®¤µ¤Ê¥Ç¡¼¥¿¤ÎÃÇÊҤνñ¤­¹þ¤ß¤ò¹Ô¤¤¡¢¤½¤Î¸å¤¹¤°¤Ë +データベースやログファイルにアクセスするアプリケーションは、 +非常に小さなデータの断片の書き込みを行い、その後すぐに .BR fsync () -¤ò¸Æ¤Ó½Ð¤·¤Æ¡¢½ñ¤­¹þ¤ó¤À¥Ç¡¼¥¿¤¬¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤ËʪÍýŪ¤Ë -³Î¼Â¤Ë³ÊǼ¤µ¤ì¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤¬Â¿¤¤¡£ -»ÄÇ°¤Ê¤¬¤é¡¢ +を呼び出して、書き込んだデータがハードディスクに物理的に +確実に格納されるようにすることが多い。 +残念ながら、 .BR fsync () -¤Ï¾ï¤Ë 2¤Ä¤Î½ñ¤­¹þ¤ßÁàºî¤ò³«»Ï¤¹¤ë¡£ -°ì¤Ä¤Ï¿·¤·¤¯½ñ¤­¹þ¤Þ¤ì¤¿¥Ç¡¼¥¿¤ËÂФ¹¤ë¤â¤Î¤Ç¤¢¤ê¡¢ -¤â¤¦°ì¤Ä¤Ï inode ¤Ë³ÊǼ¤µ¤ì¤ë½¤Àµ»þ¹ï (modification time) ¤ò -¹¹¿·¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ -½¤Àµ»þ¹ï¤Î¹¹¿·¤¬ÉÔ²Äʬ¤ÊÁàºî (¥È¥é¥ó¥¶¥¯¥·¥ç¥ó) ¤Î°ìÉô¤Ç¤Ï¤Ê¤¤¾ì¹ç¡¢ +は常に 2つの書き込み操作を開始する。 +一つは新しく書き込まれたデータに対するものであり、 +もう一つは inode に格納される修正時刻 (modification time) を +更新するためのものである。 +修正時刻の更新が不可分な操作 (トランザクション) の一部ではない場合、 .BR fdatasync () -¤ò»È¤¦¤³¤È¤Ç¡¢ÉÔɬÍ×¤Ê inode ¤Î¥Ç¥£¥¹¥¯½ñ¤­¹þ¤ßÁàºî¤òÈò¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使うことで、不必要な inode のディスク書き込み操作を避けることができる。 .\"O If the underlying hard disk has write caching enabled, then .\"O the data may not really be on permanent storage when @@ -255,26 +255,26 @@ st_atime .\"O .\" See .\"O .\" .BR hdparm (8) .\"O .\" for how to disable that cache for IDE disks. -¥Ç¡¼¥¿¤¬ÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤Î½ñ¤­¹þ¤ß¥­¥ã¥Ã¥·¥å¤¬Í­¸ú¤Ë -¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ +データが配置されているハードディスクの書き込みキャッシュが有効に +なっている場合、 .BR fsync () / .BR fdatasync () -¤«¤éÌá¤Ã¤Æ¤­¤¿¤È¤·¤Æ¤â¡¢¤½¤Î¥Ç¡¼¥¿¤Ï¼ÂºÝ¤Ë¤Ï±Ê³Ū¤Êµ­²±ÇÞÂÎ¤Ë -³ÊǼ¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -.\" IDE ¥Ç¥£¥¹¥¯¤Î¥­¥ã¥Ã¥·¥å¤ò̵¸ú¤Ë¤¹¤ëÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï +から戻ってきたとしても、そのデータは実際には永続的な記憶媒体に +格納されていないかもしれない。 +.\" IDE ディスクのキャッシュを無効にする方法については .\" .BR hdparm (8) -.\" ¤ò»²¾È¤Î¤³¤È¡£ +.\" を参照のこと。 .LP .\"O When an ext2 file system is mounted with the .\"O .I sync .\"O option, directory entries are also implicitly synced by .\"O .BR fsync (). -ext2 ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤¬ +ext2 ファイル・システムが .I sync -¥ª¥×¥·¥ç¥ó¤Ä¤­¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ +オプションつきでマウントされている場合、 .BR fsync () -¤Ç¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤â°ÅÌۤΤ¦¤Á¤ËƱ´ü¤¹¤ë¡£ +でディレクトリ・エントリも暗黙のうちに同期する。 .LP .\"O On kernels before 2.4, .\"O .BR fsync () @@ -283,27 +283,27 @@ ext2 .\"O .B O_SYNC .\"O flag to .\"O .BR open (2). -2.4 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤ÏµðÂç¤Ê¥Õ¥¡¥¤¥ë¤Ë +2.4 より前のカーネルでは巨大なファイルに .BR fsync () -¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï¸úΨ¤¬°­¤¤¾ì¹ç¤¬¤¢¤ë¡£ -Ê̤ÎÊýË¡¤È¤·¤Æ +を使用することは効率が悪い場合がある。 +別の方法として .BR open (2) -¤ÎºÝ¤Ë +の際に .B O_SYNC -¥Õ¥é¥°¤ò»ÈÍѤ¹¤ë¤Î¤¬Îɤ¤¤«¤â¤·¤ì¤Ê¤¤¡£ +フラグを使用するのが良いかもしれない。 .\"O In Linux 2.2 and earlier, .\"O .BR fdatasync () .\"O is equivalent to .\"O .BR fsync (), .\"O and so has no performance advantage. -Linux 2.2 °ÊÁ°¤Ç¤Ï¡¢ +Linux 2.2 以前では、 .BR fdatasync () -¤Ï +は .BR fsync () -¤ÈÅù²Á¤Ç¤¢¤ê¡¢À­Ç½Ì̤ǤΥá¥ê¥Ã¥È¤Ï¤Ê¤¤¡£ +と等価であり、性能面でのメリットはない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bdflush (2), .BR open (2), .BR sync (2), diff --git a/draft/man2/futex.2 b/draft/man2/futex.2 index 4e61f300..6eb19b32 100644 --- a/draft/man2/futex.2 +++ b/draft/man2/futex.2 @@ -22,18 +22,18 @@ .\" by Yuichi SATO , LDP v2.01 .\" Updated & Modified Wed Jan 3 04:51:22 JST 2007 by Yuichi SATO, LDP v2.43 .\" -.\"WORD: integer int ·¿ÊÑ¿ô -.\"WORD: sleep µ¯¾²ÂÔ¤Á¤¹¤ë -.\"WORD: wake µ¯¾²¤¹¤ë -.\"WORD: wake up µ¯¾²¤¹¤ë +.\"WORD: integer int 型変数 +.\"WORD: sleep 起床待ちする +.\"WORD: wake 起床する +.\"WORD: wake up 起床する .\" .TH FUTEX 2 2010-08-29 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O futex \- Fast Userspace Locking system call -futex \- ¹â®¥æ¡¼¥¶¶õ´Ö¥í¥Ã¥¯µ¡¹½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë +futex \- 高速ユーザ空間ロック機構のシステムコール .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .sp .B "#include " @@ -46,7 +46,7 @@ futex \- .\" int *? void *? u32 *? .fi .\"O .SH "DESCRIPTION" -.SH ÀâÌÀ +.SH 説明 .PP .\"O The .\"O .BR futex () @@ -63,17 +63,17 @@ futex \- .\"O described in .\"O .BR futex (7). .BR futex () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ -»ØÄꤷ¤¿¥¢¥É¥ì¥¹¤ÎÃͤ¬Êѹ¹¤µ¤ì¤ë¤Î¤ò¥×¥í¥°¥é¥à¤¬ÂԤļêÃʤä -ÆÃÄê¤Î¥¢¥É¥ì¥¹¤ËÂФ·¤ÆÂÔµ¡Ãæ¤Î¥×¥í¥»¥¹¤ò wake (µ¯¾²) ¤µ¤»¤ë¼êÃʤòÄ󶡤¹¤ë -(¥×¥í¥»¥¹¤¬°Û¤Ê¤ì¤ÐƱ¤¸¥á¥â¥ê¤ËÂФ¹¤ë¥¢¥É¥ì¥¹¤âƱ¤¸¤Ç¤Ï¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¤¬¡¢ -¥«¡¼¥Í¥ë¤Ï°Û¤Ê¤ë°ÌÃ֤˥ޥåפµ¤ì¤¿Æ±¤¸¥á¥â¥ê¤ò +システムコールは、 +指定したアドレスの値が変更されるのをプログラムが待つ手段や +特定のアドレスに対して待機中のプロセスを wake (起床) させる手段を提供する +(プロセスが異なれば同じメモリに対するアドレスも同じではないかもしれないが、 +カーネルは異なる位置にマップされた同じメモリを .BR futex () -¤Ç»È¤¨¤ë¤è¤¦ÆâÉô¤Ç¥Þ¥Ã¥×¤¹¤ë)¡£ -Ä̾ï¤Ï¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +で使えるよう内部でマップする)。 +通常は、このシステムコールは .BR futex (7) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¤è¤¦¤Ë¡¢ -¶¦Í­¥á¥â¥êÃæ¤Î¥í¥Ã¥¯¤¬¶¥¹ç¤¹¤ë¾ì¹ç¤Î½èÍý¤ò¼ÂÁõ¤¹¤ë¤Î¤ËÍѤ¤¤é¤ì¤ë¡£ +に書かれているように、 +共有メモリ中のロックが競合する場合の処理を実装するのに用いられる。 .PP .\"O When a .\"O .BR futex (7) @@ -82,10 +82,10 @@ futex \- .\"O Arbitration can either mean putting the calling .\"O process to sleep or, conversely, waking a waiting process. .BR futex (7) -¤ÎÁàºî¤¬¥æ¡¼¥¶¶õ´Ö¤Ç¶¥¹ç¤Ê¤¯´°Î»¤·¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ -¥«¡¼¥Í¥ë¤ËÃçºÛ¤µ¤»¤ë¤¿¤á¤Ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¸Æ¤ÖɬÍפ¬¤¢¤ë¡£ -ÃçºÛ¤È¤¤¤¦¤Î¤Ï¡¢¸Æ¤Ó½Ð¤·¥×¥í¥»¥¹¤ò sleep (µ¯¾²ÂÔ¤Á) ¤µ¤»¤¿¤ê¡¢È¿ÂÐ¤Ë -ÂÔ¤Á¥×¥í¥»¥¹¤ò wake ¤µ¤»¤¿¤ê¤¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +の操作がユーザ空間で競合なく完了しなかった場合、 +カーネルに仲裁させるためにシステムコールを呼ぶ必要がある。 +仲裁というのは、呼び出しプロセスを sleep (起床待ち) させたり、反対に +待ちプロセスを wake させたりすることを意味する。 .PP .\"O Callers of this function are expected to adhere to the semantics as set out in .\"O .BR futex (7). @@ -93,12 +93,12 @@ futex \- .\"O semantics involve writing nonportable assembly instructions, this in turn .\"O probably means that most users will in fact be library authors and not .\"O general application developers. -¤³¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¥×¥í¥»¥¹¤Ï +この関数を呼び出すプロセスは .BR futex (7) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤ËÃé¼Â¤Ç¤¢¤ë¤³¤È¤¬Í׵ᤵ¤ì¤ë¡£ -¤³¤Î¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤Ë¤Ï°Ü¿¢ÉÔ²Äǽ¤Ê¥¢¥»¥ó¥Ö¥êÌ¿Îá¤ò½ñ¤¯¤³¤È¤¬´Þ¤Þ¤ì¤ë¡£ -¤³¤Î¤³¤È¤Ï¸À¤¤´¹¤¨¤ë¤È futex ¤Î¥æ¡¼¥¶¤Î¤Û¤È¤ó¤É¤Ï¼ÂºÝ¤Ï¥é¥¤¥Ö¥é¥ê¤Îºî¼Ô¤Ç¤¢¤ê¡¢ -°ìÈÌ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î³«È¯¼Ô¤Ç¤Ï¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ +に記述されているセマンティクスに忠実であることが要求される。 +このセマンティクスには移植不可能なアセンブリ命令を書くことが含まれる。 +このことは言い換えると futex のユーザのほとんどは実際はライブラリの作者であり、 +一般アプリケーションの開発者ではないということである。 .PP .\"O The .\"O .I uaddr @@ -108,16 +108,16 @@ futex \- .\"O argument, along with a value .\"O .IR val . .I uaddr -°ú¤­¿ô¤Ï¡¢¥«¥¦¥ó¥¿¤ò³ÊǼ¤¹¤ë¡¢ -¥¢¥é¥¤¥ó¥á¥ó¥È¤Î·¤Ã¤¿ int ·¿ÊÑ¿ô¤ò»Ø¤·¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ -¼Â¹Ô¤¹¤ëÁàºî¤Ï +引き数は、カウンタを格納する、 +アラインメントの揃った int 型変数を指している必要がある。 +実行する操作は .I op -°ú¤­¿ô¤ò²ð¤·¤Æ¡¢ÃÍ +引き数を介して、値 .I val -¤È¤È¤â¤ËÅϤµ¤ì¤ë¡£ +とともに渡される。 .PP .\"O Five operations are currently defined: -¸½ºß¤Î¤È¤³¤í 5 ¤Ä¤ÎÁàºî¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +現在のところ 5 つの操作が定義されている: .TP .B FUTEX_WAIT .\"O This operation atomically verifies that the futex address @@ -136,23 +136,23 @@ futex \- .\"O and .\"O .I val3 .\"O are ignored. -¤³¤ÎÁàºî¤Ï futex ¥¢¥É¥ì¥¹ +この操作は futex アドレス .I uaddr -¤Ë»ØÄꤵ¤ì¤¿ÃÍ +に指定された値 .I val -¤¬¤Þ¤À³ÊǼ¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤òÉÔ²ÄʬÁàºî¤Ç¸¡¾Ú¤·¡¢ -sleep ¾õÂÖ¤Ç -¤³¤Î futex ¥¢¥É¥ì¥¹¤ËÂФ·¤Æ +がまだ格納されているかどうかを不可分操作で検証し、 +sleep 状態で +この futex アドレスに対して .B FUTEX_WAKE -¤¬¼Â¹Ô¤µ¤ì¤ë¤Î¤òÂԤġ£ +が実行されるのを待つ。 .I timeout -°ú¤­¿ô¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢¤½¤ÎÆâÍÆ¤Ï -ÂÔ¤Á»þ´Ö¤ÎºÇÂçÃͤòɽ¤¹¡£NULL ¤Î¾ì¹ç¤Ï̵¸ÂÂç¤òɽ¤¹¡£ -°ú¤­¿ô +引き数が NULL でない場合、その内容は +待ち時間の最大値を表す。NULL の場合は無限大を表す。 +引き数 .I uaddr2 -¤È +と .I val3 -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\"O For .\"O .BR futex (7), @@ -162,44 +162,44 @@ sleep .\"O .B FUTEX_WAKE .\"O operation. .BR futex (7) -¤Ë¾È¤é¤·¹ç¤ï¤»¤ë¤È¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤Ï -¥«¥¦¥ó¥È¤Î¥Ç¥¯¥ê¥á¥ó¥È¤ÇÉé¤ÎÃÍ (¶¥¹ç¤òɽ¤¹) ¤Ë¤Ê¤Ã¤¿¾ì¹ç¤Ë¼Â¹Ô¤µ¤ì¡¢ -ÊÌ¤Î¥×¥í¥»¥¹¤¬¤½¤Î futex ¤ò²òÊü¤· +に照らし合わせると、この呼び出しは +カウントのデクリメントで負の値 (競合を表す) になった場合に実行され、 +別のプロセスがその futex を解放し .B FUTEX_WAKE -¤ÎÁàºî¤ò¼Â¹Ô¤¹¤ë¤Þ¤Ç sleep ¤¹¤ë¡£ +の操作を実行するまで sleep する。 .TP .B FUTEX_WAKE .\"O This operation wakes at most \fIval\fP .\"O processes waiting on this futex address (i.e., inside .\"O .BR FUTEX_WAIT ). -¤³¤ÎÁàºî¤Ç¤Ï»ØÄꤷ¤¿ futex ¥¢¥É¥ì¥¹¤ËÂФ·¤ÆÂÔ¤Á¾õÂ֤Π-(¤¹¤Ê¤ï¤Á +この操作では指定した futex アドレスに対して待ち状態の +(すなわち .B FUTEX_WAIT -Ãæ¤Î) ºÇÂç \fIval\fP ¸Ä¤Î¥×¥í¥»¥¹¤ò wake ¤µ¤»¤ë¡£ +中の) 最大 \fIval\fP 個のプロセスを wake させる。 .\"O The arguments .\"O .IR timeout , .\"O .I uaddr2 .\"O and .\"O .I val3 .\"O are ignored. -°ú¤­¿ô +引き数 .IR timeout , .IR uaddr2 , .I val3 -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\"O For .\"O .BR futex (7), .\"O this is executed if incrementing .\"O the count showed that there were waiters, once the futex value has been set .\"O to 1 (indicating that it is available). -\fBfutex\fR(4) ¤Ë¾È¤é¤·¹ç¤ï¤»¤ë¤È¡¢ -¤³¤ÎÁàºî¤Ï -¥«¥¦¥ó¥È¤Î¥¤¥ó¥¯¥ê¥á¥ó¥È¤ÇÂÔ¤Á¥×¥í¥»¥¹¤¬¤¢¤ë¤ÈȽÌÀ¤·¡¢ -futex Ãͤ¬ 1 ¤ËÀßÄꤵ¤ì¤¿ (ÍøÍѲÄǽ¤Ç¤¢¤ë¤³¤È¤òɽ¤¹) ¾ì¹ç¤Ë¼Â¹Ô¤µ¤ì¤ë¡£ +\fBfutex\fR(4) に照らし合わせると、 +この操作は +カウントのインクリメントで待ちプロセスがあると判明し、 +futex 値が 1 に設定された (利用可能であることを表す) 場合に実行される。 .TP .\"O .BR FUTEX_FD " (present up to and including Linux 2.6.25)" -.BR FUTEX_FD " (Linux 2.6.25 °ÊÁ°)" +.BR FUTEX_FD " (Linux 2.6.25 以前)" .\"O To support asynchronous wakeups, this operation associates a file descriptor .\"O with a futex. .\"O .\" , suitable for .BR poll (2). @@ -209,48 +209,48 @@ futex .\"O number that was passed in .\"O .IR val . .\"O The calling process must close the returned file descriptor after use. -ÈóƱ´ü¤Î wake ¤ËÂбþ¤¹¤ë¤¿¤á¡¢¤³¤ÎÁàºî¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò futex ¤Ë -´ØÏ¢¤Å¤±¤ë¡£ +非同期の wake に対応するため、この操作はファイルディスクリプタを futex に +関連づける。 .\" .BR poll (2) -.\" ¤ËŬ¤·¤Æ¤¤¤ë¡£ -ÊÌ¤Î¥×¥í¥»¥¹¤¬ +.\" に適している。 +別のプロセスが .B FUTEX_WAKE -¤ò¼Â¹Ô¤¹¤ë¤È¡¢¥×¥í¥»¥¹¤Ï +を実行すると、プロセスは .I val -¤ÇÅϤµ¤ì¤¿¥·¥°¥Ê¥ëÈÖ¹æ¤Î¥·¥°¥Ê¥ë¤ò¼õ¿®¤¹¤ë¡£ -¸Æ¤Ó½Ð¤·¥×¥í¥»¥¹¤Ï»ÈÍѸ塢ÊÖ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò -¥¯¥í¡¼¥º¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +で渡されたシグナル番号のシグナルを受信する。 +呼び出しプロセスは使用後、返されたファイルディスクリプタを +クローズしなければならない。 .\"O The arguments .\"O .IR timeout , .\"O .I uaddr2 .\"O and .\"O .I val3 .\"O are ignored. -°ú¤­¿ô +引き数 .IR timeout , .IR uaddr2 , .I val3 -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\"O To prevent race conditions, the caller should test if the futex has .\"O been upped after .\"O .B FUTEX_FD .\"O returns. -¶¥¹ç¾õÂÖ¤òËɻߤ¹¤ë¤¿¤á¡¢¸Æ¤Ó½Ð¤·¥×¥í¥»¥¹¤Ï +競合状態を防止するため、呼び出しプロセスは .B FUTEX_FD -¤¬Ê֤俤¢¤È -futex ¤¬ up ¤µ¤ì¤¿¤«¤É¤¦¤«¤ò³Îǧ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +が返ったあと +futex が up されたかどうかを確認しなければならない。 .\" FIXME . Check that this flag does eventually get removed. .\"O Because it was inherently racy, .\"O .B FUTEX_FD .\"O has been removed from Linux 2.6.26 onward. .B FUTEX_FD -¤Ï¤â¤È¤â¤È¶¥¹ç¤¬µ¯¤­¤ä¤¹¤«¤Ã¤¿¤¿¤á¡¢ -Linux 2.6.26 °Ê¹ß¤Çºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ +はもともと競合が起きやすかったため、 +Linux 2.6.26 以降で削除されている。 .TP .\"O .BR FUTEX_REQUEUE " (since Linux 2.5.70)" -.BR FUTEX_REQUEUE " (Linux 2.5.70 °Ê¹ß)" +.BR FUTEX_REQUEUE " (Linux 2.5.70 以降)" .\"O This operation was introduced in order to avoid a "thundering herd" effect .\"O when .\"O .B FUTEX_WAKE @@ -260,29 +260,29 @@ Linux 2.6.26 .\"O .I val .\"O processes, and requeues all other waiters on the futex at address .\"O .IR uaddr2 . -¤³¤ÎÁàºî¤Ï¡¢ +この操作は、 .B FUTEX_WAKE -¤¬»È¤ï¤ì¤Æ¤¤¤Æ¡¢¤«¤Ä wake ¤µ¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¥×¥í¥»¥¹¤¬ -¾¤Î futex ¤ò¼èÆÀ¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ë¡¢ -¡Ö½Ã¤Î·²¤ì¤Î˽Áö (thundering herd)¡×¸ú²Ì¤òÈò¤±¤ë¤¿¤á¤ËƳÆþ¤µ¤ì¤¿¡£ -¤³¤Î¸Æ¤Ó½Ð¤·¤Ï +が使われていて、かつ wake されている全てのプロセスが +他の futex を取得する必要がある場合に、 +「獣の群れの暴走 (thundering herd)」効果を避けるために導入された。 +この呼び出しは .I val -¸Ä¤Î¥×¥í¥»¥¹¤ò wake ¤·¡¢¥¢¥É¥ì¥¹ +個のプロセスを wake し、アドレス .I uaddr2 -¤Ç futex ¤òÂԤäƤ¤¤ë¾¤ÎÁ´¤Æ¤Î¥×¥í¥»¥¹¤òºÆÅÙ¥­¥å¡¼¤Ë¤¤¤ì¤ë¡£ +で futex を待っている他の全てのプロセスを再度キューにいれる。 .\"O The arguments .\"O .I timeout .\"O and .\"O .I val3 .\"O are ignored. -°ú¤­¿ô +引き数 .I timeout -¤È +と .I val3 -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .TP .\"O .BR FUTEX_CMP_REQUEUE " (since Linux 2.6.7)" -.BR FUTEX_CMP_REQUEUE " (Linux 2.6.7 °Ê¹ß)" +.BR FUTEX_CMP_REQUEUE " (Linux 2.6.7 以降)" .\"O There was a race in the intended use of .\"O .BR FUTEX_REQUEUE , .\"O so @@ -295,36 +295,36 @@ Linux 2.6.26 .\"O still contains the value .\"O .IR val3 . .\"Osato: -.\"Osato: intended ¤¬¤è¤¯Ê¬¤«¤é¤Ê¤¤¡£ +.\"Osato: intended がよく分からない。 .\"Osato: -¸Î°Õ¤Ë +故意に .B FUTEX_REQUEUE -¤ò»È¤¦¾ì¹ç¤Ë¶¥¹ç¤¬µ¯¤³¤ë¤¿¤á¡¢ +を使う場合に競合が起こるため、 .B FUTEX_CMP_REQUEUE -¤¬Æ³Æþ¤µ¤ì¤¿¡£¤³¤ì¤Ï +が導入された。これは .B FUTEX_REQUEUE -¤È»÷¤Æ¤¤¤ë¤¬¡¢¾ì½ê +と似ているが、場所 .I uaddr -¤ËÃÍ +に値 .I val3 -¤¬¤Þ¤ÀÊÝ»ý¤µ¤ì¤Æ¤¤¤ë¤«¤òºÇ½é¤Ë¥Á¥§¥Ã¥¯¤¹¤ë¡£ +がまだ保持されているかを最初にチェックする。 .\"O If not, the operation fails with the error .\"O .BR EAGAIN . .\"O The argument .\"O .I timeout .\"O is ignored. -ÊÝ»ý¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢Áàºî¤Ï¥¨¥é¡¼ +保持されていない場合、操作はエラー .B EAGAIN -¤Ç¼ºÇÔ¤¹¤ë¡£°ú¤­¿ô +で失敗する。引き数 .I timeout -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .PP .\"O Depending on which operation was executed, .\"O the returned value for a successful call can have differing meanings. -¤É¤ÎÁàºî¤¬¼Â¹Ô¤µ¤ì¤¿¤«¤Ë¤è¤Ã¤Æ¡¢ -À®¸ù»þ¤ÎÊÖ¤êÃͤΰÕÌ£¤¬ÊѤï¤ë¡£ +どの操作が実行されたかによって、 +成功時の返り値の意味が変わる。 .TP .B FUTEX_WAIT .\"O Returns 0 if the process was woken by a @@ -342,50 +342,50 @@ Linux 2.6.26 .\"O .B FUTEX_WAIT .\"O to fail with the error .\"O .BR EINTR . -¥×¥í¥»¥¹¤¬ +プロセスが .B FUTEX_WAKE -¤Î¸Æ¤Ó½Ð¤·¤Ç wake ¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ -¥¿¥¤¥à¥¢¥¦¥È¤Î¾ì¹ç¡¢Áàºî¤Ï¥¨¥é¡¼ +の呼び出しで wake すると 0 を返す。 +タイムアウトの場合、操作はエラー .B ETIMEOUT -¤Ç¼ºÇÔ¤¹¤ë¡£ -futex ¤¬»ØÄꤵ¤ì¤¿ÃͤÈÅù¤·¤¯¤Ê¤¤¾ì¹ç¡¢ -¥¨¥é¡¼ +で失敗する。 +futex が指定された値と等しくない場合、 +エラー .B EWOULDBLOCK -¤Ç¼ºÇÔ¤¹¤ë¡£ -¥·¥°¥Ê¥ë¤ò¼õ¿®¤¹¤ë¤« +で失敗する。 +シグナルを受信するか .RB ( signal (7) -»²¾È) ¾¤Îµ¶¤Î wake ¤¬¤¢¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢¥¨¥é¡¼ +参照) 他の偽の wake があった場合には、エラー .B EINTR -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .TP .B FUTEX_WAKE .\"O Returns the number of processes woken up. -wake ¤·¤¿¥×¥í¥»¥¹¤Î¿ô¤òÊÖ¤¹¡£ +wake したプロセスの数を返す。 .TP .B FUTEX_FD .\"O Returns the new file descriptor associated with the futex. -futex ¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¿·¤¿¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ +futex に関連づけられた新たなファイルディスクリプタを返す。 .TP .B FUTEX_REQUEUE .\"O Returns the number of processes woken up. -wake ¤·¤¿¥×¥í¥»¥¹¤Î¿ô¤òÊÖ¤¹¡£ +wake したプロセスの数を返す。 .TP .B FUTEX_CMP_REQUEUE .\"O Returns the number of processes woken up. -wake ¤·¤¿¥×¥í¥»¥¹¤Î¿ô¤òÊÖ¤¹¡£ +wake したプロセスの数を返す。 .PP .\"O In the event of an error, all operations return \-1, and set .\"O .I errno .\"O to indicate the error. -¥¨¥é¡¼¤Î¾ì¹ç¡¢Á´¤Æ¤ÎÁàºî¤Ç \-1 ¤¬Ê֤ꡢ +エラーの場合、全ての操作で \-1 が返り、 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤò¼¨¤¹ÃͤËÀßÄꤵ¤ì¤ë¡£ +がエラーの内容を示す値に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O No read access to futex memory. -futex ¥á¥â¥ê¤ËÆɤ߹þ¤ß¥¢¥¯¥»¥¹¸¢¤¬¤Ê¤«¤Ã¤¿¡£ +futex メモリに読み込みアクセス権がなかった。 .TP .B EAGAIN .\"O .B FUTEX_CMP_REQUEUE @@ -395,35 +395,35 @@ futex .\"O .B FUTEX_WAKE .\"O now.) .B FUTEX_CMP_REQUEUE -¤Çͽ´ü¤·¤Ê¤¤ futex Ãͤ¬¸«¤Ä¤«¤Ã¤¿ -(¤³¤ì¤Ï¶¥¹ç¤ò¼¨¤·¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤Î¾ì¹ç¤Ï°ÂÁ´¤Ê +で予期しない futex 値が見つかった +(これは競合を示しているかもしれない。 +この場合は安全な .B FUTEX_WAKE -¤ò»È¤¦¤³¤È)¡£ +を使うこと)。 .TP .B EFAULT .\"O Error in getting .\"O .I timeout .\"O information from userspace. -¥æ¡¼¥¶¶õ´Ö¤«¤é +ユーザ空間から .I timeout -¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ëºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +の情報を取得する際にエラーが発生した。 .TP .B EINVAL .\"O An operation was not defined or error in page alignment. -Áàºî¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£¤Þ¤¿¤Ï¥Ú¡¼¥¸¡¦¥¢¥é¥¤¥ó¥á¥ó¥È¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +操作が定義されていない。またはページ・アラインメントでエラーが発生した。 .TP .B ENFILE .\"O The system limit on the total number of open files has been reached. -¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ÎÁí¿ô¤¬¥·¥¹¥Æ¥à¤ÎÀ©¸Â¤Ë㤷¤¿¡£ +オープンされているファイルの総数がシステムの制限に達した。 .TP .B ENOSYS .\"O Invalid operation specified in .\"O .IR op . .I op -¤Ë̵¸ú¤ÊÁàºî¤¬»ØÄꤵ¤ì¤¿¡£ +に無効な操作が指定された。 .\"O .SH "VERSIONS" -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .PP .\"O Initial futex support was merged in Linux 2.5.7 but with different semantics .\"O from what was described above. @@ -433,44 +433,44 @@ futex .\"O was added. .\"O In Linux 2.6.7 a sixth argument was added\(emmessy, especially .\"O on the s390 architecture. -ºÇ½é¤Î futex Âбþ¤Ï Linux 2.5.7 ¤ÇÁȤ߹þ¤Þ¤ì¤¿¤¬¡¢ -¾åµ­¤Î¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤È¤Ï°Û¤Ê¤ë¡£ -4 ¤Ä¤Î°ú¤­¿ô¤Î¤³¤³¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤ò»ý¤Ä -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢Linux 2.5.40 ¤ÇƳÆþ¤µ¤ì¤¿¡£ -Linux 2.5.70 ¤Ç¤Ï 1 ¤Ä¤Î°ú¤­¿ô¤¬Äɲ䵤줿¡£ -Linux 2.6.7 ¤Ç¤Ï 6 ÈÖÌܤΰú¤­¿ô¤¬Äɲ䵤줿¡£ -¤³¤ì¤Ï±ø¤¯¡¢s390 ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¾å¤ÎÆÃÊ̤Τâ¤Î¤Ç¤¢¤ë¡£ +最初の futex 対応は Linux 2.5.7 で組み込まれたが、 +上記のセマンティクスとは異なる。 +4 つの引き数のここに書かれているセマンティクスを持つ +システムコールは、Linux 2.5.40 で導入された。 +Linux 2.5.70 では 1 つの引き数が追加された。 +Linux 2.6.7 では 6 番目の引き数が追加された。 +これは汚く、s390 アーキテクチャ上の特別のものである。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This system call is Linux-specific. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ +このシステムコールは Linux 独自である。 .\"O .SH "NOTES" -.SH Ãí°Õ +.SH 注意 .PP .\"O To reiterate, bare futexes are not intended as an easy-to-use abstraction .\"O for end-users. .\"O (There is no wrapper function for this system call in glibc.) .\"O Implementors are expected to be assembly literate and to have .\"O read the sources of the futex userspace library referenced below. -·«¤êÊÖ¤¹¤¬¡¢Íç¤Î futex ¤Ï¥¨¥ó¥É¥æ¡¼¥¶¤¬Íưפ˻Ȥ¦¤³¤È¤Î¤Ç¤­¤ë³µÇ°¤È¤·¤Æ -°Õ¿Þ¤µ¤ì¤¿¤â¤Î¤Ç¤Ï¤Ê¤¤ -(glibc ¤Ë¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¤Ê¤¤)¡£ -¼ÂÁõ¼Ô¤Ï¡¢¥¢¥»¥ó¥Ö¥ê¸À¸ì¤Ë´·¤ì¤Æ¤ª¤ê¡¢°Ê²¼¤Ëµó¤²¤ë futex ¥æ¡¼¥¶¶õ´Ö¥é¥¤¥Ö¥é¥ê¤Î -¥½¡¼¥¹¤òÆɤ߽ª¤¨¤Æ¤¤¤ë¤³¤È¤¬Í׵ᤵ¤ì¤ë¡£ +繰り返すが、裸の futex はエンドユーザが容易に使うことのできる概念として +意図されたものではない +(glibc にはこのシステムコールに対するラッパー関数はない)。 +実装者は、アセンブリ言語に慣れており、以下に挙げる futex ユーザ空間ライブラリの +ソースを読み終えていることが要求される。 .\"O .\" .SH "AUTHORS" -.\" .SH Ãø¼Ô +.\" .SH 著者 .\" .PP .\"O .\" Futexes were designed and worked on by .\"O .\" Hubertus Franke (IBM Thomas J. Watson Research Center), .\"O .\" Matthew Kirkwood, Ingo Molnar (Red Hat) .\"O .\" and Rusty Russell (IBM Linux Technology Center). .\"O .\" This page written by bert hubert. -.\" futex ¤Ï Hubertus Franke (IBM Thomas J. Watson Research Center), +.\" futex は Hubertus Franke (IBM Thomas J. Watson Research Center), .\" Matthew Kirkwood, Ingo Molnar (Red Hat), -.\" Rusty Russell (IBM Linux Technology Center) ¤¬À߷פ·¡¢ºîÀ®¤·¤¿¡£ -.\" ¤³¤Î¥Ú¡¼¥¸¤Ï bert hubert ¤¬µ­¤·¤¿¡£ +.\" Rusty Russell (IBM Linux Technology Center) が設計し、作成した。 +.\" このページは bert hubert が記した。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR futex (7) .PP \fIFuss, Futexes and Furwocks: Fast Userlevel Locking in Linux\fP @@ -479,6 +479,6 @@ Linux 2.6.7 http://kernel.org/doc/ols/2002/ols2002-pages-479-495.pdf .PP .\"O Futex example library, futex-*.tar.bz2 at -futex ¤Î»ÈÍÑÎã¥é¥¤¥Ö¥é¥ê, futex-*.tar.bz2 +futex の使用例ライブラリ, futex-*.tar.bz2 .br ftp://ftp.nl.kernel.org/pub/linux/kernel/people/rusty/. diff --git a/draft/man2/futimesat.2 b/draft/man2/futimesat.2 index 8d2b9902..4968862d 100644 --- a/draft/man2/futimesat.2 +++ b/draft/man2/futimesat.2 @@ -28,15 +28,15 @@ .\" .TH FUTIMESAT 2 2009-12-13 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O futimesat \- change timestamps of a file relative to a \ .\"O directory file descriptor -futimesat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÁêÂÐŪ¤Ê°ÌÃ֤ˤ¢¤ë¥Õ¥¡¥¤¥ë¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×¤òÊѹ¹¤¹¤ë +futimesat \- ディレクトリファイルディスクリプタから相対的な位置にあるファイルのタイムスタンプを変更する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .B #include /* Definition of AT_* constants */ -.B #include /* AT_* Äê¿ô¤ÎÄêµÁ */ +.B #include /* AT_* 定数の定義 */ .sp .BI "int futimesat(int " dirfd ", const char *" pathname , .BI " const struct timeval " times [2]); @@ -45,9 +45,9 @@ futimesat \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR futimesat (): @@ -56,25 +56,25 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This system call is obsolete. .\"O Use .\"O .BR utimensat (2) .\"O instead. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¡£ -Âå¤ï¤ê¤Ë +このシステムコールは廃止予定である。 +代わりに .BR utimensat (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +を使用すること。 .\"O The .\"O .BR futimesat () @@ -82,9 +82,9 @@ _ATFILE_SOURCE .\"O .BR utimes (2), .\"O except for the differences described in this manual page. .BR futimesat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë°ã¤¤¤¬¤¢¤ë°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明している違いがある以外は、 .BR utimes (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .\"O If the pathname given in .\"O .I pathname @@ -96,13 +96,13 @@ _ATFILE_SOURCE .\"O .BR utimes (2) .\"O for a relative pathname). .I pathname -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹Ì¾¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パス名である場合、 +ファイルディスクリプタ .I dirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( utimes (2) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスの +カレントワーキングディレクトリからの相対パスとなる)。 .\"O If .\"O .I pathname @@ -116,16 +116,16 @@ _ATFILE_SOURCE .\"O directory of the calling process (like .\"O .BR utimes (2)). .I pathname -¤¬ÁêÂХѥ¹¤Ç¤¢¤ê¡¢¤«¤Ä +が相対パスであり、かつ .I dirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I pathname -¤Ï +は .RB ( utimes (2) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .\"O If .\"O .I pathname @@ -133,43 +133,43 @@ _ATFILE_SOURCE .\"O .I dirfd .\"O is ignored. .I pathname -¤¬ÀäÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ +が絶対パスである場合、 .I dirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR futimesat () .\"O returns a 0. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR futimesat () -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .\"O On error, \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +エラーの場合、\-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ +にはエラーを示す値が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O The same errors that occur for .\"O .BR utimes (2) .\"O can also occur for .\"O .BR futimesat (). .BR utimes (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR futimesat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .\"O The following additional errors can occur for .\"O .BR futimesat (): .BR futimesat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .\"O .I dirfd .\"O is not a valid file descriptor. .I dirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B ENOTDIR .\"O .I pathname @@ -177,33 +177,33 @@ _ATFILE_SOURCE .\"O .I dirfd .\"O is a file descriptor referring to a file other than a directory. .I pathname -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I dirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR futimesat () .\"O was added to Linux in kernel 2.6.16. .BR futimesat () -¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ +は Linux カーネル 2.6.16 で追加された。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This system call is nonstandard. .\"O It was implemented from a specification that was proposed for POSIX.1, .\"O but that specification was replaced by the one for .\"O .BR utimensat (2). -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ïɸ½àŪ¤Ç¤Ï¤Ê¤¤¡£ -POSIX.1 ¤ÇÄó°Æ¤µ¤ì¤Æ¤¤¤¿»ÅÍͤËͳÍ褷¤Æ¼ÂÁõ¤µ¤ì¤¿¤¬¡¢ -¤½¤Î»ÅÍÍ¤Ï +このシステムコールは標準的ではない。 +POSIX.1 で提案されていた仕様に由来して実装されたが、 +その仕様は .BR utimensat (2) -¤ÇÃÖ¤­´¹¤¨¤é¤ì¤¿¡£ +で置き換えられた。 .\"O A similar system call exists on Solaris. -Solaris ¤Ë¤Ï¡¢¤³¤ì¤ÈƱ¤¸¤è¤¦¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Â¸ºß¤¹¤ë¡£ +Solaris には、これと同じようなシステムコールが存在する。 .\"O .SH NOTES .\"O .SS Glibc Notes -.SH Ãí°Õ -.SS GLIBC ¤Ë¤Ä¤¤¤Æ¤ÎÃí°Õ +.SH 注意 +.SS GLIBC についての注意 .\"O If .\"O .I pathname .\"O is NULL, then the glibc @@ -211,14 +211,14 @@ Solaris .\"O wrapper function updates the times for the file referred to by .\"O .IR dirfd . .I pathname -¤¬ NULL ¤Î¾ì¹ç¡¢glibc ¤Î +が NULL の場合、glibc の .BR futimesat () -¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï +ラッパー関数は .I dirfd -¤Ç»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Î»þ¹ï¤ò¹¹¿·¤¹¤ë¡£ +で参照されるファイルの時刻を更新する。 .\" The Solaris futimesat() also has this strangeness. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR stat (2), .BR utimensat (2), .BR utimes (2), diff --git a/draft/man2/get_kernel_syms.2 b/draft/man2/get_kernel_syms.2 index 18112751..40457849 100644 --- a/draft/man2/get_kernel_syms.2 +++ b/draft/man2/get_kernel_syms.2 @@ -10,18 +10,18 @@ .\" .TH GET_KERNEL_SYMS 2 2007-06-03 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O get_kernel_syms \- retrieve exported kernel and module symbols -get_kernel_syms \- ¸ø³«¤µ¤ì¤Æ¤¤¤ë¥«¡¼¥Í¥ë¤ä¥â¥¸¥å¡¼¥ë¤Î¥·¥ó¥Ü¥ë¤Î¼èÆÀ +get_kernel_syms \- 公開されているカーネルやモジュールのシンボルの取得 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int get_kernel_syms(struct kernel_sym *" table ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O If .\"O .I table .\"O is NULL, @@ -29,11 +29,11 @@ get_kernel_syms \- .\"O returns the number of symbols available for query. .\"O Otherwise it fills in a table of structures: .BR get_kernel_syms () -¤Ï¡¢ +は、 .I table -¤¬ NULL ¤Î¾ì¹ç¡¢ -Ì䤤¹ç¤ï¤»¤Ç¤­¤ë¥·¥ó¥Ü¥ë¤Î¿ô¤òÊÖ¤¹¡£ -NULL °Ê³°¤Î¾ì¹ç¡¢°Ê²¼¤Î¹½Â¤ÂΤÎÎó (table) ¤ËÃͤòÆþ¤ì¤ÆÊÖ¤¹¡£ +が NULL の場合、 +問い合わせできるシンボルの数を返す。 +NULL 以外の場合、以下の構造体の列 (table) に値を入れて返す。 .PP .in +4n .nf @@ -49,81 +49,81 @@ struct kernel_sym { .\"O with the kernel having an empty name. .\"O The value associated with a symbol of this form is the address at .\"O which the module is loaded. -¥·¥ó¥Ü¥ë¤ÎÃæ¤Ë¤Ï¡¢ +シンボルの中には、 .BI # module-name -¤È¤¤¤¦·Á¼°¤Î¡¢¥«¡¼¥Í¥ë¤¬¶õ¤Î̾Á°¤ò»ý¤Ã¤Æ¤¤¤ë¥Þ¥¸¥Ã¥¯¥·¥ó¥Ü¥ë -(magic symbol) ¤¬»¶ºß¤·¤Æ¤¤¤ë¡£¤³¤Î·Á¼°¤Î¥·¥ó¥Ü¥ë¤ËÂбþ¤¹¤ëÃÍ¤Ï -¥â¥¸¥å¡¼¥ë¤¬¥í¡¼¥É¤µ¤ì¤¿¥¢¥É¥ì¥¹¤È¤Ê¤ë¡£ +という形式の、カーネルが空の名前を持っているマジックシンボル +(magic symbol) が散在している。この形式のシンボルに対応する値は +モジュールがロードされたアドレスとなる。 .PP .\"O The symbols exported from each module follow their magic module tag .\"O and the modules are returned in the reverse of the .\"O order in which they were loaded. -¸Ä¡¹¤Î¥â¥¸¥å¡¼¥ë¤«¤é¸ø³« (export) ¤µ¤ì¤¿¥·¥ó¥Ü¥ë¤Ï¡¢¥Þ¥¸¥Ã¥¯¥â¥¸¥å¡¼¥ë¥¿¥° -¤Î¸å¤í¤ËÃÖ¤«¤ì¤ë¡£¤Þ¤¿¡¢¥â¥¸¥å¡¼¥ë¤Ï¥í¡¼¥É¤µ¤ì¤¿½çÈ֤Ȥϵսç¤ÇÊÖ¤µ¤ì¤ë¡£ +個々のモジュールから公開 (export) されたシンボルは、マジックモジュールタグ +の後ろに置かれる。また、モジュールはロードされた順番とは逆順で返される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, returns the number of symbols copied to .\"O .IR table . .\"O On error, \-1 is returned and .\"O .I errno .\"O is set appropriately. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .I table -¤Ë¥³¥Ô¡¼¤µ¤ì¤¿¥·¥ó¥Ü¥ë¿ô¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +にコピーされたシンボル数を返す。 +エラーの場合、\-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O There is only one possible error return: -ÊÖ¤ë²ÄǽÀ­¤¬¤¢¤ë¥¨¥é¡¼¤Ï°ì¤Ä¤À¤±¤Ç¤¢¤ë¡£ +返る可能性があるエラーは一つだけである。 .TP .B ENOSYS .\"O .BR get_kernel_syms () .\"O is not supported in this version of the kernel. .BR get_kernel_syms () -¤¬¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +がこのバージョンのカーネルではサポートされていない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O This system call is only present on Linux up until kernel 2.4; .\"O it was removed in Linux 2.6. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Â¸ºß¤¹¤ë¤Î¤Ï¥«¡¼¥Í¥ë 2.4 ¤Þ¤Ç¤Î Linux ¤À¤±¤Ç¤¢¤ë¡£ -Linux 2.6 ¤Ç¤Ïºï½ü¤µ¤ì¤¿¡£ +このシステムコールが存在するのはカーネル 2.4 までの Linux だけである。 +Linux 2.6 では削除された。 .\" Removed in Linux 2.5.48 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR get_kernel_syms () .\"O is Linux-specific. .BR get_kernel_syms () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ +は Linux 固有である。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O There is no way to indicate the size of the buffer allocated for .\"O .IR table . .\"O If symbols have been added to the kernel since the .\"O program queried for the symbol table size, memory will be corrupted. .I table -ÍѤ˳ÎÊݤ·¤¿¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ¤òÅÁ¤¨¤ëÊýË¡¤¬¤Ê¤¤¡£ -¥×¥í¥°¥é¥à¤¬¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤ÎÂ礭¤µ¤òÌ䤤¹ç¤ï¤»¤¿¸å¤Ë¡¢¥«¡¼¥Í¥ë¤Ë -¥·¥ó¥Ü¥ë¤¬Äɲ䵤ì¤ë¤È¡¢¥á¥â¥ê¤ÎÆâÍƤ¬Ç˲õ¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ +用に確保したバッファの大きさを伝える方法がない。 +プログラムがシンボルテーブルの大きさを問い合わせた後に、カーネルに +シンボルが追加されると、メモリの内容が破壊されることになる。 .PP .\"O The length of exported symbol names is limited to 59 characters. -¸ø³«¤µ¤ì¤ë¥·¥ó¥Ü¥ë̾¤ÎŤµ¤¬ 59 ʸ»ú¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë¡£ +公開されるシンボル名の長さが 59 文字に制限されている。 .PP .\"O Because of these limitations, this system call is deprecated in .\"O favor of .\"O .BR query_module (2) .\"O (which is itself nowadays deprecated .\"O in favor of other interfaces described on its manual page). -¤³¤ì¤é¤ÎÀ©¸Â¤¬¤¢¤ë¤Î¤Ç¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤¦¤è¤ê¤Ï +これらの制限があるので、このシステムコールを使うよりは .BR query_module (2) -¤ò»È¤¦¤Î¤¬Ë¾¤Þ¤·¤¤ -(¸½ºß¤Ç¤Ï +を使うのが望ましい +(現在では .BR query_module (2) -¼«¿È¤â¤½¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¤è¤¦¤Ë -¾¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò»È¤¦¤Î¤¬Ë¾¤Þ¤·¤¤¤È¤µ¤ì¤Æ¤¤¤ë)¡£ +自身もそのマニュアルページに書かれているように +他のインタフェースを使うのが望ましいとされている)。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR create_module (2), .BR delete_module (2), .BR init_module (2), diff --git a/draft/man2/get_mempolicy.2 b/draft/man2/get_mempolicy.2 index f72019ef..1f9ed3cb 100644 --- a/draft/man2/get_mempolicy.2 +++ b/draft/man2/get_mempolicy.2 @@ -32,11 +32,11 @@ .\" .TH GET_MEMPOLICY 2 2008-08-15 Linux "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O get_mempolicy \- Retrieve NUMA memory policy for a process -get_mempolicy \- ¥×¥í¥»¥¹¤Î NUMA ¥á¥â¥ê¤Î¥Ý¥ê¥·¡¼¤ò¼èÆÀ¤¹¤ë +get_mempolicy \- プロセスの NUMA メモリのポリシーを取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B "#include " .sp @@ -45,28 +45,28 @@ get_mempolicy \- .BI " unsigned long " flags ); .sp .\"O Link with \fI\-lnuma\fP. -\fI\-lnuma\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lnuma\fP でリンクする。 .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR get_mempolicy () .\"O retrieves the NUMA policy of the calling process or of a memory address, .\"O depending on the setting of .\"O .IR flags . .BR get_mempolicy () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤â¤·¤¯¤Ï»ØÄꤵ¤ì¤¿¥á¥â¥ê¥¢¥É¥ì¥¹¤Î -NUMA ¥Ý¥ê¥·¡¼¤ò +は、呼び出し元プロセスもしくは指定されたメモリアドレスの +NUMA ポリシーを .I flags -¤ÎÀßÄê¤Ë½¾¤Ã¤Æ¼èÆÀ¤¹¤ë¡£ +の設定に従って取得する。 .\"O A NUMA machine has different .\"O memory controllers with different distances to specific CPUs. .\"O The memory policy defines from which node memory is allocated for .\"O the process. -NUMA (ÈóÂоΥá¥â¥ê¥¢¥¯¥»¥¹) ¥Þ¥·¥ó¤Ç¤Ï¡¢CPU ¤Ë¤è¤ê -¥á¥â¥ê¥³¥ó¥È¥í¡¼¥é¤¬°Û¤Ê¤ê¡¢µ÷Î¥¤â°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ -¥á¥â¥ê¥Ý¥ê¥·¡¼¤Ï¡¢¤É¤Î¥Î¡¼¥É¤«¤é¥á¥â¥ê¤ò¤½¤Î¥×¥í¥»¥¹¤Ë -³ä¤êÅö¤Æ¤ë¤«¤òÄê¤á¤ë¤â¤Î¤Ç¤¢¤ë¡£ +NUMA (非対称メモリアクセス) マシンでは、CPU により +メモリコントローラが異なり、距離も異なっている。 +メモリポリシーは、どのノードからメモリをそのプロセスに +割り当てるかを定めるものである。 .\"O If .\"O .I flags @@ -76,10 +76,10 @@ NUMA ( .\"O .BR set_mempolicy (2)) .\"O is returned. .I flags -¤Ë 0 ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +に 0 が指定された場合、 .RB ( set_mempolicy (2) -¤ÇÀßÄꤵ¤ì¤¿) -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥Ç¥Õ¥©¥ë¥È¥Ý¥ê¥·¡¼¤Ë´Ø¤¹¤ë¾ðÊó¤òÊÖ¤¹¡£ +で設定された) +呼び出し元プロセスのデフォルトポリシーに関する情報を返す。 .\"O The policy returned .\"O .RI [ mode .\"O and @@ -89,15 +89,15 @@ NUMA ( .\"O .BR get_mempolicy () .\"O using .\"O .BR set_mempolicy (2). -ÊÖ¤µ¤ì¤¿¥Ý¥ê¥·¡¼ +返されたポリシー .RI [ mode -¤È +と .IR nodemask ] -¤ò +を .BR set_mempolicy (2) -¤ËÅϤ¹¤³¤È¤Ç¡¢¤½¤Î¥×¥í¥»¥¹¤Î¥Ý¥ê¥·¡¼¤ò +に渡すことで、そのプロセスのポリシーを .BR get_mempolicy () -¤ò¸Æ¤Ó½Ð¤·¤¿»þÅÀ¤Î¾õÂÖ¤ËÌ᤹¤³¤È¤¬¤Ç¤­¤ë¡£ +を呼び出した時点の状態に戻すことができる。 .\"O If .\"O .I flags @@ -121,26 +121,26 @@ NUMA ( .\"O or .\"O .BR MPOL_F_NODE . .I flags -¤Ë +に .B MPOL_F_MEMS_ALLOWED -(Linux 2.6.24 °Ê¹ß¤ÇÍøÍѲÄǽ) ¤ò»ØÄꤹ¤ë¤È¡¢ +(Linux 2.6.24 以降で利用可能) を指定すると、 .I mode -°ú¤­¿ô¤Ï̵»ë¤µ¤ì¡¢ -¤½¤Î¥×¥í¥»¥¹¤¬¤½¤Î¸å¤Î +引き数は無視され、 +そのプロセスがその後の .BR mbind (2) -¤ä +や .BR set_mempolicy (2) -¤Ç -.RI [ "¥â¡¼¥É¥Õ¥é¥°" -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë ] »ØÄê¤Ç¤­¤ë¥Î¡¼¥É (¥á¥â¥ê) ¤Î½¸¹ç¤¬ +で +.RI [ "モードフラグ" +が指定されていない場合に ] 指定できるノード (メモリ) の集合が .I nodemask -¤ËÊÖ¤µ¤ì¤ë¡£ +に返される。 .B MPOL_F_MEMS_ALLOWED -¤ò¡¢ +を、 .B MPOL_F_ADDR -¤ä +や .B MPOL_F_NODE -¤ÈƱ»þ¤Ë»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +と同時に指定することはできない。 .\"O If .\"O .I flags @@ -156,18 +156,18 @@ NUMA ( .\"O has been used to establish a policy for the memory range containing .\"O .IR addr . .I flags -¤Ë +に .B MPOL_F_ADDR -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +が指定された場合、 .I addr -¤Ç»ØÄꤵ¤ì¤¿¥á¥â¥ê¥¢¥É¥ì¥¹¤ËŬÍѤµ¤ì¤Æ¤¤¤ë¥Ý¥ê¥·¡¼¤Ë´Ø¤¹¤ë¾ðÊó¤òÊÖ¤¹¡£ +で指定されたメモリアドレスに適用されているポリシーに関する情報を返す。 .BR mbind (2) -¤ä +や .BR numa (3) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¥Ø¥ë¥Ñ¡¼´Ø¿ô¤ò»È¤Ã¤Æ¡¢ +で説明されているヘルパー関数を使って、 .I addr -¤ò´Þ¤à¥á¥â¥êÎΰè¤ËÂФ¹¤ë¥Ý¥ê¥·¡¼¤¬ÀßÄꤵ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ë¤Ï¡¢ -ÊÖ¤µ¤ì¤ë¥Ý¥ê¥·¡¼¤Ï¥×¥í¥»¥¹¤Î¥Ç¥Õ¥©¥ë¥È¥Ý¥ê¥·¡¼¤È°ã¤¦¤³¤È¤¬¤¢¤ë¡£ +を含むメモリ領域に対するポリシーが設定されていた場合には、 +返されるポリシーはプロセスのデフォルトポリシーと違うことがある。 .\"O If the .\"O .I mode @@ -177,13 +177,13 @@ NUMA ( .\"O .I "mode flags" .\"O of the requested NUMA policy in the location pointed to by this argument. .I mode -°ú¤­¿ô¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ +引き数が NULL でない場合、 .BR get_mempolicy () -¤ÏÍ׵ᤵ¤ì¤¿ NUMA ¥Ý¥ê¥·¡¼¤Î¥â¡¼¥É¤ÈÄɲäΠ-.I "¥â¡¼¥É¥Õ¥é¥°" -¤ò +は要求された NUMA ポリシーのモードと追加の +.I "モードフラグ" +を .I mode -¤¬»Ø¤¹¾ì½ê¤Ë³ÊǼ¤¹¤ë¡£ +が指す場所に格納する。 .\"O If .\"O .I nodemask .\"O is not NULL, then the nodemask associated with the policy will be stored @@ -198,16 +198,16 @@ NUMA ( .\"O is always rounded to a multiple of .\"O .IR "sizeof(unsigned long)" . .I nodemask -¤¬ NULL °Ê³°¤Î¾ì¹ç¡¢¤½¤Î¥Ý¥ê¥·¡¼¤ËÂбþ¤¹¤ë¥Î¡¼¥É¥Þ¥¹¥¯¤ò -¤³¤Î°ú¤­¿ô¤¬»Ø¤¹¾ì½ê¤Ë³ÊǼ¤¹¤ë¡£ +が NULL 以外の場合、そのポリシーに対応するノードマスクを +この引き数が指す場所に格納する。 .I maxnode -¤Ë¤Ï +には .I nodemask -¤Ë³ÊǼ¤Ç¤­¤ë¥Î¡¼¥É ID ¤Î¿ô¡¢¤Ä¤Þ¤êºÇÂç¥Î¡¼¥É ID ¤Ë 1 ¤ò­¤·¤¿Ãͤò»ØÄꤹ¤ë¡£ +に格納できるノード ID の数、つまり最大ノード ID に 1 を足した値を指定する。 .I maxnode -¤Ç»ØÄꤵ¤ì¤¿ÃͤϾï¤Ë +で指定された値は常に .I sizeof(unsigned long) -¤ÎÇÜ¿ô¤ËÀÚ¤ê¾å¤²¤é¤ì¤ë¡£ +の倍数に切り上げられる。 .\"O If .\"O .I flags @@ -226,22 +226,22 @@ NUMA ( .\"O [load] access to that address, and return the ID of the node .\"O where that page was allocated. .I flags -¤Ç +で .B MPOL_F_NODE -¤È +と .B MPOL_F_ADDR -¤ÎξÊý¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +の両方が指定された場合、 .BR get_mempolicy () -¤Ï¥¢¥É¥ì¥¹ +はアドレス .I addr -¤¬³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¥Î¡¼¥É¤Î¥Î¡¼¥É ID ¤ò +が割り当てられているノードのノード ID を .I mode -¤¬»Ø¤¹¾ì½ê¤ËÆþ¤ì¤ÆÊÖ¤¹¡£ -»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤Ë¤É¤Î¥Ú¡¼¥¸¤â¤Þ¤À³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +が指す場所に入れて返す。 +指定されたアドレスにどのページもまだ割り当てられていない場合、 .BR get_mempolicy () -¤Ï¡¢¤¢¤¿¤«¤â¤½¤Î¥×¥í¥»¥¹¤¬¤½¤Î¥¢¥É¥ì¥¹¤ËÂФ·¤ÆÆɤ߹þ¤ß¥¢¥¯¥»¥¹¤ò -¼Â¹Ô¤·¤¿¤«¤Î¤è¤¦¤Ë¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤ò¹Ô¤¤¡¢¥Ú¡¼¥¸¤¬³ä¤êÅö¤Æ¤é¤ì¤¿ -¥Î¡¼¥É¤Î ID ¤òÊÖ¤¹¡£ +は、あたかもそのプロセスがそのアドレスに対して読み込みアクセスを +実行したかのようにページの割り当てを行い、ページが割り当てられた +ノードの ID を返す。 .\"O If .\"O .I flags @@ -259,20 +259,20 @@ NUMA ( .\"O the node ID of the next node that will be used for .\"O interleaving of internal kernel pages allocated on behalf of the process. .I flags -¤Ç +で .B MPOL_F_NODE -¤Ï»ØÄꤵ¤ì¤¿¤¬¡¢ +は指定されたが、 .B MPOL_F_ADDR -¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ç¡¢¤«¤Ä -¤½¤Î¥×¥í¥»¥¹¤Î¸½ºß¤Î¥Ý¥ê¥·¡¼¤¬ +は指定されていない場合で、かつ +そのプロセスの現在のポリシーが .B MPOL_INTERLEAVE -¤Î¾ì¹ç¡¢ +の場合、 .BR get_mempolicy () -¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ³ä¤êÅö¤Æ¤é¤ì¤¿¥«¡¼¥Í¥ë¤ÎÆâÉô¥Ú¡¼¥¸¤Ç -¼¡¤Ë¥¤¥ó¥¿¡¼¥ê¡¼¥ÖÍѤ˻ÈÍѤµ¤ì¤ë¥Î¡¼¥É¤Î¥Î¡¼¥É ID ¤ò¡¢ -NULL ¤Ç¤Ê¤¤ +は、そのプロセスに対して割り当てられたカーネルの内部ページで +次にインターリーブ用に使用されるノードのノード ID を、 +NULL でない .I mode -°ú¤­¿ô¤¬»Ø¤¹¾ì½ê¤ËÆþ¤ì¤ÆÊÖ¤¹¡£ +引き数が指す場所に入れて返す。 .\" Note: code returns next interleave node via 'mode' argument -Lee Schermerhorn .\"O These allocations include pages for memory mapped files in .\"O process memory ranges mapped using the @@ -282,41 +282,41 @@ NULL .\"O flag for read accesses, and in memory ranges mapped with the .\"O .B MAP_SHARED .\"O flag for all accesses. -Æɤ߹þ¤ß¥¢¥¯¥»¥¹ÍѤȤ·¤Æ +読み込みアクセス用として .B MAP_PRIVATE -¥Õ¥é¥°ÉÕ¤­¤Ç +フラグ付きで .BR mmap (2) -¤·¤¿¥×¥í¥»¥¹¥á¥â¥êÎΰè¤ä¡¢ -Ǥ°Õ¤Î¥¢¥¯¥»¥¹ÍѤȤ·¤Æ +したプロセスメモリ領域や、 +任意のアクセス用として .B MAP_SHARED -¥Õ¥é¥°ÉÕ¤­¤Ç +フラグ付きで .BR mmap (2) -¤·¤¿¥á¥â¥êÎΰè¤Î¡¢¥á¥â¥ê¥Þ¥Ã¥×¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥Ú¡¼¥¸¤â -¾åµ­¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ³ä¤êÅö¤Æ¤é¤ì¤¿¥Ú¡¼¥¸¤Ë´Þ¤Þ¤ì¤ë¡£ +したメモリ領域の、メモリマップされたファイルに対するページも +上記のプロセスに対して割り当てられたページに含まれる。 .\"O Other flag values are reserved. -¾¤Î¥Õ¥é¥°¤ÏͽÌ󤵤ì¤Æ¤¤¤ë¡£ +他のフラグは予約されている。 .\"O For an overview of the possible policies see .\"O .BR set_mempolicy (2). -ÀßÄê²Äǽ¤Ê¥Ý¥ê¥·¡¼¤Î³µÍפˤĤ¤¤Æ¤Ï +設定可能なポリシーの概要については .BR set_mempolicy (2) -¤ò»²¾È¡£ +を参照。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR get_mempolicy () .\"O returns 0; .\"O on error, \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR get_mempolicy () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O Part of all of the memory range specified by @@ -324,32 +324,32 @@ NULL .\"O and .\"O .I maxnode .\"O points outside your accessible address space. -.\"motoki: Part of all of the memory ¤Ï Part or all .. ¤Î´Ö°ã¤¤¡© +.\"motoki: Part of all of the memory は Part or all .. の間違い? .I nodemask -¤È +と .I maxnode -¤Ç»ØÄꤵ¤ì¤¿¥á¥â¥êÎΰè¤Î°ìÉô¤Þ¤¿¤ÏÁ´Éô¤¬¡¢ -¸Æ¤Ó½Ð¤·¸µ¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +で指定されたメモリ領域の一部または全部が、 +呼び出し元がアクセス可能なアドレス空間外を指している。 .TP .B EINVAL .\"O The value specified by .\"O .I maxnode .\"O is less than the number of node IDs supported by the system. .I maxnode -¤Ç»ØÄꤵ¤ì¤¿Ãͤ¬¥·¥¹¥Æ¥à¤¬¥µ¥Ý¡¼¥È¤¹¤ë¥Î¡¼¥É ID ¤Î¿ô¤è¤ê¤â¾¯¤Ê¤¤¡£ +で指定された値がシステムがサポートするノード ID の数よりも少ない。 .\"O Or .\"O .I flags .\"O specified values other than .\"O .B MPOL_F_NODE .\"O or .\"O .BR MPOL_F_ADDR ; -¤Þ¤¿¤Ï¡¢ +または、 .I flags -¤Ë +に .B MPOL_F_NODE -¤Ç¤â +でも .B MPOL_F_ADDR -¤Ç¤â¤Ê¤¤Ãͤ¬»ØÄꤵ¤ì¤¿¡£ +でもない値が指定された。 .\"O or .\"O .I flags .\"O specified @@ -357,13 +357,13 @@ NULL .\"O and .\"O .I addr .\"O is NULL, -¤Þ¤¿¤Ï¡¢ +または、 .I flags -¤Ë +に .B MPOL_F_ADDR -¤¬»ØÄꤵ¤ì¤Æ¤ª¤ê¡¢ +が指定されており、 .I addr -¤¬ NULL ¤Ç¤¢¤ë¡£ +が NULL である。 .\"O or .\"O .I flags .\"O did not specify @@ -371,13 +371,13 @@ NULL .\"O and .\"O .I addr .\"O is not NULL. -¤Þ¤¿¤Ï¡¢ +または、 .I flags -¤Ë +に .B MPOL_F_ADDR -¤¬¤µ¤ì¤Æ¤ª¤é¤º¡¢ +がされておらず、 .I addr -¤¬ NULL ¤Ç¤Ê¤¤¡£ +が NULL でない。 .\"O Or, .\"O .I flags .\"O specified @@ -386,16 +386,16 @@ NULL .\"O .B MPOL_F_ADDR .\"O and the current process policy is not .\"O .BR MPOL_INTERLEAVE . -¤Þ¤¿¤Ï¡¢ +または、 .I flags -¤Ë +に .B MPOL_F_NODE -¤¬»ØÄꤵ¤ì¤Æ¤ª¤ê¡¢ +が指定されており、 .B MPOL_F_ADDR -¤¬»ØÄꤵ¤ì¤Æ¤ª¤é¤º¡¢ -¥×¥í¥»¥¹¤Î¸½ºß¤Î¥Ý¥ê¥·¡¼¤¬ +が指定されておらず、 +プロセスの現在のポリシーが .B MPOL_INTERLEAVE -¤Ç¤Ê¤¤¡£ +でない。 .\"O Or, .\"O .I flags .\"O specified @@ -404,41 +404,41 @@ NULL .\"O .B MPOL_F_ADDR .\"O or .\"O .BR MPOL_F_NODE . -¤Þ¤¿¤Ï¡¢ +または、 .I flags -¤Ë +に .B MPOL_F_MEMS_ALLOWED -¤¬»ØÄꤵ¤ì¤Æ¤ª¤ê¡¢¤µ¤é¤Ë +が指定されており、さらに .B MPOL_F_ADDR -¤« +か .B MPOL_F_NODE -¤Î¤¤¤º¤ì¤«¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¡£ +のいずれかが指定されている。 .\"O (And there are other .\"O .B EINVAL .\"O cases.) -(¾¤Ë¤â +(他にも .B EINVAL -¤È¤Ê¤ë¾ì¹ç¤¬¤¢¤ë¡£) +となる場合がある。) .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The .\"O .BR get_mempolicy () .\"O system call was added to the Linux kernel in version 2.6.7. .BR get_mempolicy () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥Ð¡¼¥¸¥ç¥ó 2.6.7 ¤Ç Linux ¥«¡¼¥Í¥ë¤ËÄɲ䵤줿¡£ +システムコールはバージョン 2.6.7 で Linux カーネルに追加された。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O This system call is Linux-specific. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ +このシステムコールは Linux 固有である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O For information on library support, see .\"O .BR numa (7). -¥é¥¤¥Ö¥é¥ê¤Ë¤è¤ë¥µ¥Ý¡¼¥È¤Ë¤Ä¤¤¤Æ¤Ï +ライブラリによるサポートについては .BR numa (7) -¤ò»²¾È¡£ +を参照。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getcpu (2), .BR mbind (2), .BR mmap (2), diff --git a/draft/man2/get_thread_area.2 b/draft/man2/get_thread_area.2 index ff2ca7b6..2f0e6b01 100644 --- a/draft/man2/get_thread_area.2 +++ b/draft/man2/get_thread_area.2 @@ -9,22 +9,22 @@ .\" Translated Tue Jul 8 03:28:55 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: Thread Local Storage ¥¹¥ì¥Ã¥É¶É½êµ­²± +.\"WORD: Thread Local Storage スレッド局所記憶 .\" .TH GET_THREAD_AREA 2 2008-11-27 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O get_thread_area \- Get a Thread Local Storage (TLS) area -.SH ̾Á° -get_thread_area \- ¥¹¥ì¥Ã¥É¶É½êµ­²± (TLS) Îΰè¤ò¼è¤ê½Ð¤¹ +.SH 名前 +get_thread_area \- スレッド局所記憶 (TLS) 領域を取り出す .\"O .SH "SYNOPSIS" -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include .sp .BI "int get_thread_area(struct user_desc *" u_info ); .\"O .SH "DESCRIPTION" -.SH ÀâÌÀ +.SH 説明 .\"O .BR get_thread_area () .\"O returns an entry in the current thread's Thread Local Storage (TLS) array. .\"O The index of the entry corresponds to the value @@ -34,62 +34,62 @@ get_thread_area \- .\"O copies the corresponding .\"O TLS entry into the area pointed to by \fIu_info\fP. .BR get_thread_area () -¤Ï¡¢¥«¥ì¥ó¥È¡¦¥¹¥ì¥Ã¥É¤Î¥¹¥ì¥Ã¥É¶É½êµ­²± -(Thread Local Storage; TLS) ÇÛÎó¤ÎÃæ¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£ -¥¨¥ó¥È¥ê¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¡¢¥æ¡¼¥¶¤«¤é°ú¤­¿ô¤È¤·¤ÆÅϤµ¤ì¤ë -\fIu_info\->entry_number\fP ¤ÎÃͤËÂбþ¤·¤Æ¤¤¤ë¡£ -Ãͤ¬ÈÏ°ÏÆâ¤Ë¤¢¤ë¾ì¹ç¡¢ +は、カレント・スレッドのスレッド局所記憶 +(Thread Local Storage; TLS) 配列の中のエントリを返す。 +エントリのインデックスは、ユーザから引き数として渡される +\fIu_info\->entry_number\fP の値に対応している。 +値が範囲内にある場合、 .BR get_thread_info () -¤ÏÂбþ¤¹¤ë TLS ¥¨¥ó¥È¥ê¤ò -\fIu_info\fP ¤Ç»Ø¤µ¤ì¤¿Îΰè¤Ë¥³¥Ô¡¼¤¹¤ë¡£ +は対応する TLS エントリを +\fIu_info\fP で指された領域にコピーする。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR get_thread_area () .\"O returns 0 on success. .\"O Otherwise, it returns \-1 and sets .\"O .I errno .\"O appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR get_thread_area () -¤Ï 0 ¤òÊÖ¤¹¡£ -¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¡¢ \-1 ¤òÊÖ¤·¡¢ +は 0 を返す。 +そうでない場合、 \-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤò¥»¥Ã¥È¤¹¤ë¡£ +に適切な値をセットする。 .\"O .SH "ERRORS" -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O \fIu_info\fP is an invalid pointer. -\fIu_info\fP ¤¬ÉÔÀµ¤Ê¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +\fIu_info\fP が不正なポインタである。 .TP .B EINVAL .\"O \fIu_info\->entry_number\fP is out of bounds. -\fIu_info\->entry_number\fP ¤¬Èϰϳ°¤Ç¤¢¤ë¡£ +\fIu_info\->entry_number\fP が範囲外である。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O A version of .\"O .BR get_thread_area () .\"O first appeared in Linux 2.5.32. .BR get_thread_area () -¤Ï Linux 2.5.32 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +は Linux 2.5.32 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR get_thread_area () .\"O is Linux-specific and should not be used in programs .\"O that are intended to be portable. .BR get_thread_area () -¤Ï Linux Æȼ«¤Î´Ø¿ô¤Ç¤¢¤ê¡¢ -°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +は Linux 独自の関数であり、 +移植を意図したプログラムでは使用すべきではない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Glibc does not provide a wrapper for this system call; .\"O call it using .\"O .BR syscall (2). -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¸Æ¤Ó½Ð¤¹¤Ë¤Ï +glibc はこのシステムコールに対するラッパー関数を提供していない。 +このシステムコールは呼び出すには .BR syscall (2) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR modify_ldt (2), .BR set_thread_area (2) diff --git a/draft/man2/getcontext.2 b/draft/man2/getcontext.2 index e82c5895..493767ab 100644 --- a/draft/man2/getcontext.2 +++ b/draft/man2/getcontext.2 @@ -27,17 +27,17 @@ .TH GETCONTEXT 2 2009-03-15 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O getcontext, setcontext \- get or set the user context -.SH ̾Á° -getcontext, setcontext \- ¥æ¡¼¥¶¥³¥ó¥Æ¥­¥¹¥È¤ò¼èÆÀ/ÀßÄꤹ¤ë +.SH 名前 +getcontext, setcontext \- ユーザコンテキストを取得/設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int getcontext(ucontext_t *" ucp ); .br .BI "int setcontext(const ucontext_t *" ucp ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O In a System V-like environment, one has the two types .\"O \fImcontext_t\fP and \fIucontext_t\fP defined in .\"O .I @@ -49,22 +49,22 @@ getcontext, setcontext \- .\"O .BR swapcontext (3) .\"O that allow user-level context switching between multiple .\"O threads of control within a process. -System V Ū¤Ê´Ä¶­¤Ç¤Ï¡¢ -\fImcontext_t\fP ¤ª¤è¤Ó \fIucontext_t\fP ¤È¤¤¤¦ 2 ¤Ä¤Î·¿¤È¡¢ +System V 的な環境では、 +\fImcontext_t\fP および \fIucontext_t\fP という 2 つの型と、 .BR getcontext (), .BR setcontext (), .BR makecontext (3), .BR swapcontext (3) -¤È¤¤¤¦ 4 ¤Ä¤Î´Ø¿ô¤¬ +という 4 つの関数が .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢¤¢¤ë¥×¥í¥»¥¹ÆâÉô¤ÇÀ©¸æ²¼¤Ë¤¢¤ëÊ£¿ô¤Î¥¹¥ì¥Ã¥É´Ö¤Ç¡¢ -¥æ¡¼¥¶¥ì¥Ù¥ë¤Î¥³¥ó¥Æ¥­¥¹¥ÈÀÚÂؤ¨¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +で定義されており、あるプロセス内部で制御下にある複数のスレッド間で、 +ユーザレベルのコンテキスト切替えができるようになっている。 .LP .\"O The \fImcontext_t\fP type is machine-dependent and opaque. .\"O The \fIucontext_t\fP type is a structure that has at least .\"O the following fields: -\fImcontext_t\fP ·¿¤Ï¥Þ¥·¥ó°Í¸¤Ç¡¢³°Éô¤«¤é¤Ï±£Ê䵤ì¤Æ¤¤¤ë¡£ -\fIucontext_t\fP ·¿¤Ï¹½Â¤ÂΤǡ¢¾¯¤Ê¤¯¤È¤â°Ê²¼¤Î 4 ¤Ä¤Î¥Õ¥£¡¼¥ë¥É¤ò»ý¤Ä¡£ +\fImcontext_t\fP 型はマシン依存で、外部からは隠蔽されている。 +\fIucontext_t\fP 型は構造体で、少なくとも以下の 4 つのフィールドを持つ。 .in +4 .nf @@ -92,34 +92,34 @@ typedef struct ucontext { .\"O and \fIuc_mcontext\fP is the .\"O machine-specific representation of the saved context, .\"O that includes the calling thread's machine registers. -\fIsigset_t\fP ¤È \fIstack_t\fP ¤Ï +\fIsigset_t\fP と \fIstack_t\fP は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤³¤Ç \fIuc_link\fP ¤Ï¡¢ -¸½ºß¤Î¥³¥ó¥Æ¥­¥¹¥È¤¬½ªÎ»¤·¤¿¤È¤­¡¢ -³¤¤¤ÆÀÚ¤êÂؤï¤ë¥³¥ó¥Æ¥­¥¹¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë -(¸½ºß¤Î¥³¥ó¥Æ¥­¥¹¥È¤¬ +で定義されている。 +ここで \fIuc_link\fP は、 +現在のコンテキストが終了したとき、 +続いて切り替わるコンテキストへのポインタである +(現在のコンテキストが .BR makecontext (3) -¤ÇÀ¸À®¤µ¤ì¤¿¤â¤Î¤Î¾ì¹ç)¡£ -\fIuc_sigmask\fP ¤Ï¤³¤Î¥³¥ó¥Æ¥­¥¹¥È¤Ç¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë -¥·¥°¥Ê¥ë·²¤Ç¤¢¤ë +で生成されたものの場合)。 +\fIuc_sigmask\fP はこのコンテキストでブロックされている +シグナル群である .RB ( sigprocmask (2) -¤ò¸«¤è)¡£ -\fIuc_stack\fP ¤Ï¤³¤Î¥³¥ó¥Æ¥­¥¹¥È¤¬ÍѤ¤¤Æ¤¤¤ë¥¹¥¿¥Ã¥¯¤Ç¤¢¤ë +を見よ)。 +\fIuc_stack\fP はこのコンテキストが用いているスタックである .RB ( signalstack (2) -¤ò¸«¤è)¡£ -\fIuc_mcontext\fP ¤ÏÊݸ¤µ¤ì¤Æ¤¤¤ë¥³¥ó¥Æ¥­¥¹¥È¤Î -¥Þ¥·¥óÆÃÍ­¤Îɽ¸½·Á¼°¤Ç¤¢¤ê¡¢ -¤³¤³¤Ë¤Ï¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î¥Þ¥·¥ó¥ì¥¸¥¹¥¿¤¬³ÊǼ¤µ¤ì¤ë¡£ +を見よ)。 +\fIuc_mcontext\fP は保存されているコンテキストの +マシン特有の表現形式であり、 +ここには呼び出したスレッドのマシンレジスタが格納される。 .LP .\"O The function .\"O .BR getcontext () .\"O initializes the structure .\"O pointed at by \fIucp\fP to the currently active context. .BR getcontext () -´Ø¿ô¤Ï¡¢ -¥Ý¥¤¥ó¥¿ \fIucp\fP ¤¬»Ø¤¹¹½Â¤ÂΤò¡¢ -¸½ºß¥¢¥¯¥Æ¥£¥Ö¤Ê¥³¥ó¥Æ¥­¥¹¥È¤Ë½é´ü²½¤¹¤ë¡£ +関数は、 +ポインタ \fIucp\fP が指す構造体を、 +現在アクティブなコンテキストに初期化する。 .LP .\"O The function .\"O .BR setcontext () @@ -133,23 +133,23 @@ typedef struct ucontext { .\"O or passed as third argument to a signal .\"O handler. .BR setcontext () -´Ø¿ô¤Ï¡¢¥Ý¥¤¥ó¥¿ -\fIucp\fP ¤¬»Ø¤¹¥æ¡¼¥¶¥³¥ó¥Æ¥­¥¹¥È¤ò¥ê¥¹¥È¥¢¤¹¤ë¡£ -¸Æ¤Ó½Ð¤·¤ËÀ®¸ù¤¹¤ë¤ÈÊÖ¤é¤Ê¤¤¡£ -¤³¤Î¥³¥ó¥Æ¥­¥¹¥È¤Ï¡¢°ÊÁ°¤Ë +関数は、ポインタ +\fIucp\fP が指すユーザコンテキストをリストアする。 +呼び出しに成功すると返らない。 +このコンテキストは、以前に .BR getcontext () -¤Þ¤¿¤Ï +または .BR makecontext (3) -¤ÇÆÀ¤é¤ì¤¿¤â¤Î¤«¡¢ -¤¢¤ë¤¤¤Ï¥·¥°¥Ê¥ë¤ÎÂè»°°ú¿ô¤È¤·¤ÆÍ¿¤¨¤é¤ì¤¿¤â¤Î¤Ë¤Ê¤ë¡£ +で得られたものか、 +あるいはシグナルの第三引数として与えられたものになる。 .LP .\"O If the context was obtained by a call of .\"O .BR getcontext (), .\"O program execution continues as if this call just returned. -¥³¥ó¥Æ¥­¥¹¥È¤¬ +コンテキストが .BR getcontext () -¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤ÆÆÀ¤é¤ì¤Æ¤¤¤¿¤â¤Î¤Î¾ì¹ç¤Ï¡¢ -¥×¥í¥°¥é¥à¤Ï¤³¤Î¸Æ¤Ó½Ð¤·¤«¤éÊ֤ä¿Ä¾¸å¤«¤é¤Î¤è¤¦¤Ë¼Â¹Ô¤ò·Ñ³¤¹¤ë¡£ +の呼び出しによって得られていたものの場合は、 +プログラムはこの呼び出しから返った直後からのように実行を継続する。 .LP .\"O If the context was obtained by a call of .\"O .BR makecontext 3(), @@ -161,18 +161,18 @@ typedef struct ucontext { .\"O first argument of that call to .\"O .BR makecontext (3). .\"O When this member is NULL, the thread exits. -¥³¥ó¥Æ¥­¥¹¥È¤¬ +コンテキストが .BR makecontext (3) -¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤ÆÆÀ¤é¤ì¤Æ¤¤¤¿¤â¤Î¤Î¾ì¹ç¤Ï¡¢ -¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤Ï¤½¤Î +の呼び出しによって得られていたものの場合は、 +プログラムの実行はその .BR makecontext (3) -¸Æ¤Ó½Ð¤·¤ÎÂèÆó°ú¿ô¤Ç»ØÄꤵ¤ì¤¿´Ø¿ô \fIfunc\fP -¤ò¸Æ¤Ó½Ð¤¹¤«¤¿¤Á¤Ç·Ñ³¤¹¤ë¡£ -\fIfunc\fP ¤«¤éÊÖ¤ë¤È¡¢ +呼び出しの第二引数で指定された関数 \fIfunc\fP +を呼び出すかたちで継続する。 +\fIfunc\fP から返ると、 .BR makecontext (3) -¸Æ¤Ó½Ð¤·¤ÎÂè°ì°ú¿ô¤Ç»ØÄꤵ¤ì¤Æ¤¤¤¿ -\fIucp\fP ¹½Â¤ÂΤΠ\fIuc_link\fP ¥á¥ó¥Ð¤Ç·Ñ³¤¹¤ë¡£ -¤³¤Î¥á¥ó¥Ð¤¬ NULL ¤À¤Ã¤¿¾ì¹ç¤Ï¡¢¤½¤Î¥¹¥ì¥Ã¥É¤Ï½ªÎ»¤¹¤ë¡£ +呼び出しの第一引数で指定されていた +\fIucp\fP 構造体の \fIuc_link\fP メンバで継続する。 +このメンバが NULL だった場合は、そのスレッドは終了する。 .LP .\"O If the context was obtained by a call to a signal handler, .\"O then old standard text says that "program execution continues with the @@ -180,13 +180,13 @@ typedef struct ucontext { .\"O by the signal". .\"O However, this sentence was removed in SUSv2, .\"O and the present verdict is "the result is unspecified". -¥³¥ó¥Æ¥­¥¹¥È¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤ÆÆÀ¤é¤ì¤Æ¤¤¤¿¤â¤Î¤Î¾ì¹ç¤Ï¡¢ -¸Å¤¤É¸½à¤Ë¤è¤ì¤Ð -¡Ö¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤Ï¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿Ì¿Îá¤Î¼¡¤ÎÌ¿Îᤫ¤é·Ñ³¤µ¤ì¤ë¡×¡£ -¤·¤«¤·¤³¤Îʸ¤Ï SUSv2 ¤Çºï½ü¤µ¤ì¤¿¤Î¤Ç¡¢ -¸½ºß¤ÎȽÃǤϡַë²Ì¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡×¤Ç¤¢¤ë¡£ +コンテキストがシグナルハンドラの呼び出しによって得られていたものの場合は、 +古い標準によれば +「プログラムの実行はシグナルによって割り込まれた命令の次の命令から継続される」。 +しかしこの文は SUSv2 で削除されたので、 +現在の判断は「結果は定義されていない」である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O When successful, .\"O .BR getcontext () .\"O returns 0 and @@ -194,30 +194,30 @@ typedef struct ucontext { .\"O does not return. .\"O On error, both return \-1 and set \fIerrno\fP .\"O appropriately. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR getcontext () -¤Ï 0 ¤òÊÖ¤·¡¢ +は 0 を返し、 .BR setcontext () -¤ÏÊÖ¤é¤Ê¤¤¡£ -¼ºÇÔ¤¹¤ë¤È¡¢Î¾¼Ô¤È¤â \-1 ¤òÊÖ¤·¡¢\fIerrno\fP ¤ò¥¨¥é¡¼¤Ë±þ¤¸¤ÆÀßÄꤹ¤ë¡£ +は返らない。 +失敗すると、両者とも \-1 を返し、\fIerrno\fP をエラーに応じて設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O None defined. -ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +定義されていない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SUSv2, POSIX.1-2001. .\"O POSIX.1-2008 removes the specification of .\"O .BR getcontext (), .\"O citing portability issues, and .\"O recommending that applications be rewritten to use POSIX threads instead. -POSIX.1-2008 ¤Ç¤Ï¡¢°Ü¿¢À­¤ÎÌäÂ꤫¤é +POSIX.1-2008 では、移植性の問題から .BR getcontext () -¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¤¿¡£ -Âå¤ï¤ê¤Ë¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò POSIX ¥¹¥ì¥Ã¥É¤ò»È¤Ã¤Æ½ñ¤­Ä¾¤¹¤³¤È¤¬ -¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£ +の仕様が削除された。 +代わりに、アプリケーションを POSIX スレッドを使って書き直すことが +推奨されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The earliest incarnation of this mechanism was the .\"O .BR setjmp (3)/ longjmp (3) .\"O mechanism. @@ -234,24 +234,24 @@ POSIX.1-2008 .\"O call. .\"O The user has to invent her own bookkeeping device, and a register .\"O variable won't do since registers are restored. -¤³¤Î¥á¥«¥Ë¥º¥à¤ÎºÇ¸Å¤Î¼ÂÁõ¤Ï¡¢ +このメカニズムの最古の実装は、 .BR setjmp (3)/ longjmp (3) -µ¡¹½¤Ç¤¢¤Ã¤¿¡£ -¤³¤ì¤é¤Ë¤Ï¥·¥°¥Ê¥ë¥³¥ó¥Æ¥­¥¹¥È¤Î¼è¤ê°·¤¤¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¤Î¤Ç¡¢ -¼¡¤ÎÃʳ¬¤Ç¤Ï +機構であった。 +これらにはシグナルコンテキストの取り扱いが定義されていなかったので、 +次の段階では .BR sigsetjmp (3)/ siglongjmp (3) -¤Î¥Ú¥¢¤¬¸½¤ï¤ì¤¿¡£ -¸½ºß¤Îµ¡¹½¤Ç¤Ï¤º¤Ã¤ÈºÙ¤«¤ÊÀ©¸æ¤¬¤Ç¤­¤ë¡£ -°ìÊý +のペアが現われた。 +現在の機構ではずっと細かな制御ができる。 +一方 .BR getcontext () -¤«¤éÊ֤俤Ȥ­¡¢ -¤³¤ì¤¬ºÇ½é¤Î¸Æ¤Ó½Ð¤·¤Ç¤¢¤Ã¤¿¤«¡¢ -¤½¤ì¤È¤â +から返ったとき、 +これが最初の呼び出しであったか、 +それとも .BR setcontext () -¸Æ¤Ó½Ð¤·¤«¤é¤Î¤â¤Î¤Ç¤¢¤ë¤«¤ò -¶èÊ̤¹¤ëÍưפÊÊýË¡¤¬¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£ -¥æ¡¼¥¶¤Ï¡Ö¤·¤ª¤ê¡×µ¡¹½¤ò¼«Ê¬¤Çºî¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥ì¥¸¥¹¥¿ÊÑ¿ô¤Ï (¥ì¥¸¥¹¥¿¤Ï¥ê¥¹¥È¥¢¤µ¤ì¤Æ¤·¤Þ¤¦¤Î¤Ç) ¤³¤ì¤ò¤ä¤Ã¤Æ¤¯¤ì¤Ê¤¤¡£ +呼び出しからのものであるかを +区別する容易な方法がなくなってしまった。 +ユーザは「しおり」機構を自分で作らなければならない。 +レジスタ変数は (レジスタはリストアされてしまうので) これをやってくれない。 .LP .\"O When a signal occurs, the current user context is saved and .\"O a new context is created by the kernel for the signal handler. @@ -263,20 +263,20 @@ POSIX.1-2008 .\"O or .\"O .BR setcontext () .\"O instead. -¥·¥°¥Ê¥ë¤¬È¯À¸¤¹¤ë¤È¡¢ -¸½ºß¤Î¥æ¡¼¥¶¥³¥ó¥Æ¥­¥¹¥È¤ÏÊݸ¤µ¤ì¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥éÍѤΥ³¥ó¥Æ¥­¥¹¥È¤¬¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤ë¡£ -º£¸å¤Ï¥Ï¥ó¥É¥é¤Ë +シグナルが発生すると、 +現在のユーザコンテキストは保存され、 +シグナルハンドラ用のコンテキストがカーネルによって生成される。 +今後はハンドラに .BR longjmp (3) -¤ò»È¤ï¤»¤Ê¤¤¤³¤È: -¤³¤Î´Ø¿ô¤Î¥³¥ó¥Æ¥­¥¹¥È²¼¤Ç¤ÎÆ°ºî¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -Âå¤ï¤ê¤Ë +を使わせないこと: +この関数のコンテキスト下での動作は定義されていない。 +代わりに .BR siglongjmp (3) -¤« +か .BR setcontext () -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sigaction (2), .BR sigaltstack (2), .BR sigprocmask (2), diff --git a/draft/man2/getdents.2 b/draft/man2/getdents.2 index 1dcd12e5..27c26ea2 100644 --- a/draft/man2/getdents.2 +++ b/draft/man2/getdents.2 @@ -33,37 +33,37 @@ .\" Updated Wed Jul 30 JST 2008 by Kentaro Shirakata .\" Updated 2009-02-12 by Kentaro Shirakata .\" -.\"WORD: directory ¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: entry ¥¨¥ó¥È¥ê -.\"WORD: memory area ¥á¥â¥êÎΰè -.\"WORD: parameter ¥Ñ¥é¥á¡¼¥¿¡¼ -.\"WORD: inode number inode ÈÖ¹æ -.\"WORD: null ¥Ì¥ëʸ»ú +.\"WORD: directory ディレクトリ +.\"WORD: entry エントリ +.\"WORD: memory area メモリ領域 +.\"WORD: parameter パラメーター +.\"WORD: inode number inode 番号 +.\"WORD: null ヌル文字 .\" .TH GETDENTS 2 2009-07-04 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getdents \- get directory entries -getdents \- ¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤ò¼èÆÀ¤¹¤ë +getdents \- ディレクトリ・エントリを取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .BI "int getdents(unsigned int " fd ", struct linux_dirent *" dirp , .BI " unsigned int " count ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This is not the function you are interested in. .\"O Look at .\"O .BR readdir (3) .\"O for the POSIX conforming C library interface. .\"O This page documents the bare kernel system call interface. -¤³¤ì¤Ï¤¢¤Ê¤¿¤Î´Ø¿´¤ò°ú¤¯¤è¤¦¤Ê´Ø¿ô¤Ç¤Ï¤Ê¤¤¡£ -POSIX ½àµò¤Î C ¥é¥¤¥Ö¥é¥ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æ¤Ï +これはあなたの関心を引くような関数ではない。 +POSIX 準拠の C ライブラリインターフェースについては .BR readdir (3) -¤ò¸«¤ë¤³¤È¡£ -¤³¤Î¥Ú¡¼¥¸¤Ï¡¢¥«¡¼¥Í¥ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÀ¸¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æ -µ­ºÜ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +を見ること。 +このページは、カーネルシステムコールの生のインターフェースについて +記載したものである。 .PP .\"O The system call .\"O .BR getdents () @@ -78,21 +78,21 @@ POSIX .\"O .I count .\"O specifies the size of that buffer. .BR getdents () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¥ª¡¼¥×¥óºÑ¤ß¤Î¥Õ¥¡¥¤¥ëµ­½Ò»Ò +システムコールは、オープン済みのファイル記述子 .I fd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é +で参照されるディレクトリから .I linux_dirent -¹½Â¤ÂΤò¤¤¤¯¤Ä¤«Æɤ߽Ф·¡¢ +構造体をいくつか読み出し、 .I dirp -¤¬»Ø¤·¤Æ¤¤¤ë¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤¹¤ë¡£ +が指しているバッファに格納する。 .I count -°ú¤­¿ô¤Ï¤½¤Î¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤ò¼¨¤¹¡£ +引き数はそのバッファのサイズを示す。 .PP .\"O The .\"O .I linux_dirent .\"O structure is declared as follows: .I linux_dirent -¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤Æ¤¤¤ë: +構造体は以下のように宣言されている: .PP .in +4n .nf @@ -124,60 +124,60 @@ struct linux_dirent { .\"O .I d_name .\"O is a null-terminated filename. .I d_ino -¤Ï inode ÈÖ¹æ¤Ç¤¢¤ë¡£ +は inode 番号である。 .I d_off -¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤ÎÀèƬ¤«¤é¼¡¤Î +はディレクトリの先頭から次の .I linux_dirent -¤ÎÀèƬ¤Þ¤Ç¤Îµ÷Î¥¤Ç¤¢¤ë¡£ +の先頭までの距離である。 .I d_reclen -¤Ï¤³¤Î +はこの .I linux_dirent -Á´ÂΤΥµ¥¤¥º¤Ç¤¢¤ë¡£ +全体のサイズである。 .I d_name -¤Ï¥Ì¥ë(null)ʸ»ú¤Ç½ª¤ï¤ë¥Õ¥¡¥¤¥ë̾¤Ç¤¢¤ë¡£ +はヌル(null)文字で終わるファイル名である。 .\"O .I d_type .\"O is a byte at the end of the structure that indicates the file type. .\"O It contains one of the following values (defined in .\"O .IR ): .I d_type -¤Ï¡¢¹½Â¤ÂΤκǸå¤Î¥Ð¥¤¥È¤Ç¤¢¤ê¡¢¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤ò¼¨¤¹¡£ +は、構造体の最後のバイトであり、ファイルタイプを示す。 .I d_type -¤Ï°Ê²¼¤ÎÃͤΰì¤Ä¤ò¼è¤ë +は以下の値の一つを取る .RI ( -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ +で定義されている)。 .TP 12 .B DT_BLK .\"O This is a block device. -¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Ç¤¢¤ë¡£ +ブロックデバイスである。 .TP .B DT_CHR .\"O This is a character device. -¥­¥ã¥é¥¯¥¿¥Ç¥Ð¥¤¥¹¤Ç¤¢¤ë¡£ +キャラクタデバイスである。 .TP .B DT_DIR .\"O This is a directory. -¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¡£ +ディレクトリである。 .TP .B DT_FIFO .\"O This is a named pipe (FIFO). -̾Á°¤Ä¤­¥Ñ¥¤¥× (FIFO) ¤Ç¤¢¤ë¡£ +名前つきパイプ (FIFO) である。 .TP .B DT_LNK .\"O This is a symbolic link. -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¤¢¤ë¡£ +シンボリックリンクである。 .TP .B DT_REG .\"O This is a regular file. -Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ +通常のファイルである。 .TP .B DT_SOCK .\"O This is a UNIX domain socket. -UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤Ç¤¢¤ë¡£ +UNIX ドメインソケットである。 .TP .B DT_UNKNOWN .\"O The file type is unknown. -¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤ÏÉÔÌÀ¤Ç¤¢¤ë¡£ +ファイルタイプは不明である。 .PP .\"O The .\"O .I d_type @@ -189,14 +189,14 @@ UNIX .\"O attempting to access this field always provides the value 0 .\"O .RB ( DT_UNKNOWN ). .I d_type -¥Õ¥£¡¼¥ë¥É¤Ï Linux 2.6.4 ¤«¤é¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï +フィールドは Linux 2.6.4 から実装されている。 +これは .I linux_dirent -¹½Â¤ÂΤΤ¦¤Á¡¢°ÊÁ°¤Ï¥¼¥í¤ÇËä¤á¤é¤ì¤Æ¤¤¤¿¶õ´Ö¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë¡£ -½¾¤Ã¤Æ¡¢2.6.3 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ë¥¢¥¯¥»¥¹¤·¤è¤¦¤È¤¹¤ë¤È -¾ï¤ËÃÍ 0 +構造体のうち、以前はゼロで埋められていた空間に配置されている。 +従って、2.6.3 以前のカーネルでは、このフィールドにアクセスしようとすると +常に値 0 .RB ( DT_UNKNOWN ) -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .PP .\"O Currently, .\"O .\" kernel 2.6.27 @@ -206,87 +206,87 @@ UNIX .\"O .IR d_type . .\"O All applications must properly handle a return of .\"O .BR DT_UNKNOWN . -¸½ºß¤Î¤È¤³¤í¡¢ -.\" ¥«¡¼¥Í¥ë 2.6.27 -.\" Ʊ¤¸ÀâÌÀʸ¤¬ readdir.2 ¤Ë¤â¤¢¤ë¡£ +現在のところ、 +.\" カーネル 2.6.27 +.\" 同じ説明文が readdir.2 にもある。 .I d_type -¤Ç¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤òÊÖ¤¹µ¡Ç½¤¬´°Á´¤Ë¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢ -¤¤¤¯¤Ä¤«¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¤Î¤ß¤Ç¤¢¤ë -(Btrfs, ext2, ext3, ext4 ¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë)¡£ -¤É¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤â¡¢ +でファイルタイプを返す機能が完全にサポートされているのは、 +いくつかのファイルシステムにおいてのみである +(Btrfs, ext2, ext3, ext4 はサポートしている)。 +どのアプリケーションも、 .B DT_UNKNOWN -¤¬ÊÖ¤µ¤ì¤¿ºÝ¤ËŬÀڤ˽èÍý¤Ç¤­¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +が返された際に適切に処理できなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, the number of bytes read is returned. .\"O On end of directory, 0 is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï¡¢Æɤ߹þ¤ó¤À¥Ð¥¤¥È¿ô¤¬ÊÖ¤µ¤ì¤ë¡£ -¥Ç¥£¥ì¥¯¥È¥ê¤Î½ª¤ï¤ê¤Ê¤é¤Ð 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤µ¤ì¡¢ +成功した場合は、読み込んだバイト数が返される。 +ディレクトリの終わりならば 0 が返される。 +エラーの場合は \-1 を返され、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬ÀßÄꤵ¤ì¤ë¡£ +に適切な値が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O Invalid file descriptor .\"O .IR fd . -¥Õ¥¡¥¤¥ëµ­½Ò»Ò +ファイル記述子 .I fd -¤Ï̵¸ú¤Ç¤¢¤ë¡£ +は無効である。 .TP .B EFAULT .\"O Argument points outside the calling process's address space. -°ú¤­¿ô¤¬¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +引き数が、呼び出したプロセスのアドレス空間外を指している。 .TP .B EINVAL .\"O Result buffer is too small. -·ë²ÌÍѤΥХåե¡¡¼¤¬¾®¤µ¤¹¤®¤ë¡£ +結果用のバッファーが小さすぎる。 .TP .B ENOENT .\"O No such directory. -¤½¤Î¤è¤¦¤Ê¥Ç¥£¥ì¥¯¥È¥ê¤Ï¸ºß¤·¤Ê¤¤¡£ +そのようなディレクトリは存在しない。 .TP .B ENOTDIR .\"O File descriptor does not refer to a directory. -¥Õ¥¡¥¤¥ëµ­½Ò»Ò¤¬¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£ +ファイル記述子がディレクトリを参照していない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4. .\"O .\" SVr4 documents additional ENOLINK, EIO error conditions. -.\" SVr4 ¤Ç¤Ï¡¢Â¾¤Ë ENOLINK, EIO ¥¨¥é¡¼¾õÂ֤ˤĤ¤¤Æ¤âµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +.\" SVr4 では、他に ENOLINK, EIO エラー状態についても記述されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Glibc does not provide a wrapper for this system call; call it using .\"O .BR syscall (2). .\"O You will need to define the .\"O .I linux_dirent .\"O structure yourself. -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢ +glibc はこのシステムコールに対するラッパー関数を提供していないので、 .BR syscall (2) -¤ò»È¤Ã¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¡£ +を使って呼び出すこと。 .I linux_dirent -¹½Â¤ÂΤϼ«Ê¬¤ÇÄêµÁ¤¹¤ëɬÍפ¬¤¢¤ë¡£ +構造体は自分で定義する必要がある。 .\"O This call supersedes .\"O .BR readdir (2). -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +このシステムコールは .BR readdir (2) -¤òÃÖ¤­´¹¤¨¤ë¤â¤Î¤Ç¤¢¤ë¡£ +を置き換えるものである。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The program below demonstrates the use of .\"O .BR getdents (). .\"O The following output shows an example of what we see when running this .\"O program on an ext2 directory: -²¼µ­¤Î¥×¥í¥°¥é¥à¤Ï +下記のプログラムは .BR getdents () -¤Î»ÈÍÑÎã¤ò¼¨¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -°Ê²¼¤Ï¡¢¤³¤Î¥×¥í¥°¥é¥à¤ò ext2 ¥Ç¥£¥ì¥¯¥È¥ê¤Ç¼Â¹Ô¤·¤¿ºÝ¤ËÆÀ¤é¤ì¤ë -½ÐÎϤÎÎã¤Ç¤¢¤ë¡£ +の使用例を示したものである。 +以下は、このプログラムを ext2 ディレクトリで実行した際に得られる +出力の例である。 .in +4n .nf @@ -303,7 +303,7 @@ i-node# file type d_reclen d_off d_name .fi .in .\"O .SS Program source -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #define _GNU_SOURCE @@ -371,6 +371,6 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR readdir (2), .BR readdir (3) diff --git a/draft/man2/getdomainname.2 b/draft/man2/getdomainname.2 index 1559ed40..80f94403 100644 --- a/draft/man2/getdomainname.2 +++ b/draft/man2/getdomainname.2 @@ -35,11 +35,11 @@ .\" .TH GETDOMAINNAME 2 2009-09-27 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getdomainname, setdomainname \- get/set domain name -getdomainname, setdomainname \- ¥É¥á¥¤¥ó̾¤Î¼èÆÀ¡¦ÀßÄê¤ò¤¹¤ë +getdomainname, setdomainname \- ドメイン名の取得・設定をする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int getdomainname(char *" name ", size_t " len ); @@ -49,9 +49,9 @@ getdomainname, setdomainname \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -62,10 +62,10 @@ _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions are used to access or to change the domain name of the .\"O host system. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¥Û¥¹¥È¥·¥¹¥Æ¥à¤Î¥É¥á¥¤¥ó̾¤ò¼èÆÀ¡¦Êѹ¹¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ +これらの関数は、ホストシステムのドメイン名を取得・変更するために使われる。 .\"O .BR setdomainname () .\"O sets the domain name to the value given in the character array @@ -78,17 +78,17 @@ _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) .\"O .I name .\"O does not require a terminating null byte.) .BR setdomainname () -¤Ï¡¢¥É¥á¥¤¥ó̾¤ò¡¢Ê¸»úÇÛÎó +は、ドメイン名を、文字配列 .I name -¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£ -°ú¤­¿ô +で指定された値に設定する。 +引き数 .I len -¤Ë¤Ï¡¢ +には、 .I name -¤Î¥Ð¥¤¥È¿ô¤ò»ØÄꤹ¤ë -(¤½¤Î¤¿¤á¡¢ +のバイト数を指定する +(そのため、 .I name -¤Ç¤Ïʸ»úÎó½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤ÏɬÍפʤ¤)¡£ +では文字列終端の NULL バイトは必要ない)。 .\"O .BR getdomainname () .\"O returns the null-terminated domain name in the character array @@ -100,56 +100,56 @@ _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) .\"O .BR getdomainname () .\"O returns the first \fIlen\fP bytes (glibc) or gives an error (libc). .BR getdomainname () -¤Ï¡¢NULL ½ªÃ¼¤µ¤ì¤¿¥É¥á¥¤¥ó̾¤ò¡¢ +は、NULL 終端されたドメイン名を、 .I len -¥Ð¥¤¥È¤ÎŤµ¤Îʸ»úÇÛÎó +バイトの長さの文字配列 .I name -¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ -NULL ½ªÃ¼¤µ¤ì¤¿¥É¥á¥¤¥ó̾¤¬ \fIlen\fP ¥Ð¥¤¥È¤è¤êŤ¤¾ì¹ç¡¢ +に格納して返す。 +NULL 終端されたドメイン名が \fIlen\fP バイトより長い場合、 .BR getdomainname () -¤Ï¡¢(glibc ¤Ç¤Ï) »Ï¤á¤Î \fIlen\fP ¥Ð¥¤¥È¤òÊÖ¤·¡¢(libc ¤Ç¤Ï) ¥¨¥é¡¼¤È¤Ê¤ë¡£ +は、(glibc では) 始めの \fIlen\fP バイトを返し、(libc では) エラーとなる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç 0 ¤¬Ê֤롣¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤¬Ê֤ꡢ +成功した場合 0 が返る。失敗した場合 \-1 が返り、 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤ˽¾¤Ã¤ÆÀßÄꤵ¤ì¤ë¡£ +がエラーの内容に従って設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O .BR setdomainname () .\"O can fail with the following errors: .BR setdomainname () -¤Ï°Ê²¼¤Î¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +は以下のエラーで失敗する可能性がある。 .TP .B EFAULT .\"O .I name .\"O pointed outside of user address space. .I name -¤¬¥æ¡¼¥¶¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤¿¡£ +がユーザアドレス空間の外を指した。 .TP .B EINVAL .\"O .I len .\"O was negative or too large. .I len -¤¬Éé¤Ç¤¢¤ë¤«¡¢Ä¹¤¹¤®¤ë¡£ +が負であるか、長すぎる。 .TP .B EPERM .\"O the caller is unprivileged (Linux: does not have the .\"O .B CAP_SYS_ADMIN .\"O capability). .BR setdomainname () -¤Ë¤ª¤¤¤Æ¡¢¸Æ¤Ó½Ð¤·¤¿¿Í¤ËÆø¢¤¬¤Ê¤¤ -(Linux ¤Ç¤Ï +において、呼び出した人に特権がない +(Linux では .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤¬¤Ê¤¤)¡£ +ケーパビリティ (capability) がない)。 .PP .\"O .BR getdomainname () .\"O can fail with the following errors: .BR getdomainname () -¤Ï°Ê²¼¤Î¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +は以下のエラーで失敗する可能性がある。 .TP .B EINVAL .\"O For @@ -161,27 +161,27 @@ NULL .\"O is longer than .\"O .I len .\"O bytes. -libc ¤Ç¤Î +libc での .BR getdomainname () -¤Ë¤ª¤¤¤Æ¡¢ +において、 .I name -¤¬ NULL ¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤«¡¢ +が NULL ポインタであるか、 .I len -¥Ð¥¤¥È¤è¤êŤ¤¡£ +バイトより長い。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O POSIX does not specify these calls. .\"O .\" But they appear on most systems... -POSIX ¤Ç¤Ï¡¢¤³¤ì¤é´Ø¿ô¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.\" ¤·¤«¤·¡¢¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¤Ë¤¢¤ë... +POSIX では、これら関数は定義されていない。 +.\" しかし、ほとんどのシステムにある... .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Since Linux 1.0, the limit on the length of a domain name, .\"O including the terminating null byte, is 64 bytes. .\"O In older kernels, it was 8 bytes. -Linux 1.0 °Ê¹ß¤Ç¤Ï¡¢¥É¥á¥¤¥ó̾¤ÎŤµ¤Î¾å¸Â¤Ï -½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤ò´Þ¤á¤Æ 64 ¥Ð¥¤¥È¤Ç¤¢¤ë¡£ -¤â¤Ã¤È¸Å¤¤¥«¡¼¥Í¥ë¤Ç¤Ï 8 ¥Ð¥¤¥È¤Ç¤¢¤Ã¤¿¡£ +Linux 1.0 以降では、ドメイン名の長さの上限は +終端の NULL バイトを含めて 64 バイトである。 +もっと古いカーネルでは 8 バイトであった。 .\"O On most Linux architectures (including x86), .\"O there is no @@ -192,18 +192,18 @@ Linux 1.0 .\"O .I domainname .\"O field returned from a call to .\"O .BR uname (2). -(x86 ¤ò´Þ¤à) Linux ¤Î¤Û¤È¤ó¤É¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢ +(x86 を含む) Linux のほとんどのアーキテクチャでは、 .BR getdomainname () -¤È¤¤¤¦¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¸ºß¤·¤Ê¤¤¡£ -¤½¤ÎÂå¤ï¤ê¡¢glibc ¤Ç +というシステムコールは存在しない。 +その代わり、glibc で .BR getdomainname () -¤¬¥é¥¤¥Ö¥é¥ê´Ø¿ô¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤ª¤ê¡¢¤³¤Î´Ø¿ô¤Ï +がライブラリ関数として実装されており、この関数は .BR uname (2) -¤Î¸Æ¤Ó½Ð¤·¤ÇÊÖ¤µ¤ì¤¿ +の呼び出しで返された .I domainname -¥Õ¥£¡¼¥ë¥É¤Î¥³¥Ô¡¼¤òÊÖ¤¹¡£ +フィールドのコピーを返す。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR gethostname (2), .BR sethostname (2), .BR uname (2) diff --git a/draft/man2/getdtablesize.2 b/draft/man2/getdtablesize.2 index 278f92f3..a152990f 100644 --- a/draft/man2/getdtablesize.2 +++ b/draft/man2/getdtablesize.2 @@ -33,11 +33,11 @@ .\" .TH GETDTABLESIZE 2 2010-09-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getdtablesize \- get descriptor table size -getdtablesize \- ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Æ¡¼¥Ö¥ë¤Î¥µ¥¤¥º¤ò¼èÆÀ¤¹¤ë +getdtablesize \- ディスクリプタ・テーブルのサイズを取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .B int getdtablesize(void); @@ -45,9 +45,9 @@ getdtablesize \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR getdtablesize (): @@ -56,62 +56,62 @@ glibc .PD 0 .TP 4 .\"O Since glibc 2.12: -glibc 2.12 °Ê¹ß: +glibc 2.12 以降: .nf _BSD_SOURCE || !(_POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600) .fi .TP 4 .\"O Before glibc 2.12: -glibc 2.12 ¤è¤êÁ°: +glibc 2.12 より前: _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .PD .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR getdtablesize () .\"O returns the maximum number of files a process can have open, .\"O one more than the largest possible value for a file descriptor. .BR getdtablesize () -¤Ï 1 ¤Ä¤Î¥×¥í¥»¥¹¤Î¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¿ô¤ÎºÇÂçÃͤòÊÖ¤¹¡£ -ÊÖ¤êÃͤϥե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¼è¤êÆÀ¤ëºÇÂçÃͤè¤ê 1 Â礭¤¤ÃͤǤ¢¤ë¡£ +は 1 つのプロセスのオープンできるファイル数の最大値を返す。 +返り値はファイルディスクリプタの取り得る最大値より 1 大きい値である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The current limit on the number of open files per process. -¥×¥í¥»¥¹Ëè¤Ë¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¿ô¤Î¸½ºß¤ÎÀ©¸ÂÃÍ¡£ +プロセス毎にオープンできるファイル数の現在の制限値。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O On Linux, .\"O .BR getdtablesize () .\"O can return any of the errors described for .\"O .BR getrlimit (2); .\"O see NOTES below. -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR getdtablesize () -¤Ï +は .BR getrlimit (2) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤òÊÖ¤¹¤³¤È¤¬¤¢¤ë¡£ -²¼µ­¤Î¡ÖÃí°Õ¡×¤ò»²¾È¤Î¤³¤È¡£ +で説明されているエラーを返すことがある。 +下記の「注意」を参照のこと。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O SVr4, 4.4BSD (the .\"O .BR getdtablesize () .\"O function first appeared in 4.2BSD). SVr4, 4.4BSD .RB ( getdtablesize () -´Ø¿ô¤Ï 4.2BSD ¤ÇºÇ½é¤Ë¸½¤ï¤ì¤¿)¡£ +関数は 4.2BSD で最初に現われた)。 .\"O It is not specified in POSIX.1-2001; .\"O portable applications should employ .\"O .I sysconf(_SC_OPEN_MAX) .\"O instead of this call. -¤³¤ì¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢ -°Ü¿¢À­¤Î¤¢¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¤³¤Î¸Æ¤Ó½Ð¤·¤ÎÂå¤ï¤ê¤Ë +これは POSIX.1-2001 で規定されていないので、 +移植性のあるアプリケーションはこの呼び出しの代わりに .I sysconf(_SC_OPEN_MAX) -¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£ +を使うべきである。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .BR getdtablesize () .\"O is implemented as a libc library function. .\"O The glibc version calls @@ -122,23 +122,23 @@ SVr4, 4.4BSD .\"O .B OPEN_MAX .\"O when that fails. .BR getdtablesize () -¤Ï libc ¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£glibc ÈÇ¤Ï +は libc のライブラリ関数として実装されている。glibc 版は .BR getrlimit (2) -¤ò¸Æ¤Ó½Ð¤·¤Æ¡¢¸½ºß¤Î +を呼び出して、現在の .B RLIMIT_NOFILE -¤òÊÖ¤¹¡£ -¸Æ¤Ó½Ð¤·¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ï +を返す。 +呼び出しに失敗した場合は .B OPEN_MAX -¤òÊÖ¤¹¡£ +を返す。 .\"O The libc4 and libc5 versions return .\"O .B OPEN_MAX .\"O (set to 256 since Linux 0.98.4). -libc4 ¤È libc5 ¤Ç¤Ï +libc4 と libc5 では .B OPEN_MAX -(Linux 0.98.4 °Ê¹ß¤Ç¤Ï 256 ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë) -¤òÊÖ¤¹¡£ +(Linux 0.98.4 以降では 256 に設定されている) +を返す。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR close (2), .BR dup (2), .BR getrlimit (2), diff --git a/draft/man2/getgid.2 b/draft/man2/getgid.2 index b359c332..445bb05e 100644 --- a/draft/man2/getgid.2 +++ b/draft/man2/getgid.2 @@ -29,11 +29,11 @@ .\" .TH GETGID 2 1993-07-23 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getgid, getegid \- get group identity -getgid, getegid \- ¥°¥ë¡¼¥× ID ¤òÆÀ¤ë +getgid, getegid \- グループ ID を得る .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include @@ -42,25 +42,25 @@ getgid, getegid \- .br .B gid_t getegid(void); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR getgid () .\"O returns the real group ID of the calling process. .BR getgid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¥°¥ë¡¼¥× ID ¤òÊÖ¤¹¡£ +は呼び出し元のプロセスの実グループ ID を返す。 .\"O .BR getegid () .\"O returns the effective group ID of the calling process. .BR getegid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¸ú¥°¥ë¡¼¥× ID ¤òÊÖ¤¹¡£ +は呼び出し元のプロセスの実効グループ ID を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O These functions are always successful. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¾ï¤ËÀ®¸ù¤¹¤ë¡£ +これらの関数は常に成功する。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001, 4.3BSD. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getresgid (2), .BR setgid (2), .BR setregid (2), diff --git a/draft/man2/getgroups.2 b/draft/man2/getgroups.2 index b87c94eb..5e06e41e 100644 --- a/draft/man2/getgroups.2 +++ b/draft/man2/getgroups.2 @@ -35,19 +35,19 @@ .\" Updated & Modified 2004-12-30, Yuichi SATO .\" Updated 2008-08-04, Akihiro MOTOKI , LDP v3.05 .\" -.\"WORD: group ¥°¥ë¡¼¥× -.\"WORD: access ¥¢¥¯¥»¥¹ -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: super user ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ -.\"WORD: supplementary group Êä½õ¥°¥ë¡¼¥× +.\"WORD: group グループ +.\"WORD: access アクセス +.\"WORD: process プロセス +.\"WORD: super user スーパー・ユーザー +.\"WORD: supplementary group 補助グループ .\" .TH GETGROUPS 2 2008-06-03 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getgroups, setgroups \- get/set list of supplementary group IDs -getgroups, setgroups \- Êä½õ¥°¥ë¡¼¥× ID ¤Î¥ê¥¹¥È¤ò¼èÆÀ/ÀßÄꤹ¤ë +getgroups, setgroups \- 補助グループ ID のリストを取得/設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include @@ -61,15 +61,15 @@ getgroups, setgroups \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR setgroups (): _BSD_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .PP .\"O .BR getgroups () .\"O returns the supplementary group IDs of the calling process in @@ -83,26 +83,26 @@ _BSD_SOURCE .\"O .I size .\"O supplementary groups, then an error results. .BR getgroups () -¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤ÎÊä½õ¥°¥ë¡¼¥× (supplementary group) ID ¤ò +は呼び出し元プロセスの補助グループ (supplementary group) ID を .I list -¤ËÊÖ¤¹¡£ +に返す。 .I size -°ú¤­¿ô¤Ë¤Ï¡¢ +引き数には、 .I list -¤Ë¤è¤ê»²¾È¤µ¤ì¤ë¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤Ç¤­¤ëÍ×ÁǤκÇÂç¿ô¤òÀßÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬ +により参照されるバッファに格納できる要素の最大数を設定すべきである。 +呼び出し元プロセスが .I size -¸Ä¤è¤ê¿¤¯¤ÎÊä½õ¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð¤Î¾ì¹ç¤Ë¤Ï¡¢¥¨¥é¡¼¤È¤Ê¤ë¡£ +個より多くの補助グループのメンバの場合には、エラーとなる。 .\"O It is unspecified whether the effective group ID of the calling process .\"O is included in the returned list. .\"O (Thus, an application should also call .\"O .BR getegid (2) .\"O and add or remove the resulting value.) -¤³¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú¥°¥ë¡¼¥× ID ¤¬¡¢ -ÊÖ¤µ¤ì¤ë¥ê¥¹¥È¤Ë´Þ¤Þ¤ì¤ë¤«¤É¤¦¤«¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤ -(¤·¤¿¤¬¤Ã¤Æ¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï +この関数を呼び出したプロセスの実効グループ ID が、 +返されるリストに含まれるかどうかは規定されていない +(したがって、アプリケーションは .BR getegid (2) -¤ò¸Æ¤Ó½Ð¤·¡¢¤½¤Î·ë²Ì¤ÎÃͤòÄɲᦺï½ü¤¹¤Ù¤­¤Ç¤¢¤ë)¡£ +を呼び出し、その結果の値を追加・削除すべきである)。 .\"O If .\"O .I size @@ -111,18 +111,18 @@ _BSD_SOURCE .\"O is not modified, but the total number of supplementary group IDs for the .\"O process is returned. .I size -¤¬ 0 ¤Ê¤é¤Ð¡¢ +が 0 ならば、 .I list -¤Ï½¤Àµ¤µ¤ì¤Ê¤¤¤¬¡¢¤½¤Î¥×¥í¥»¥¹¤ÎÊä½õ¥°¥ë¡¼¥× ID ¤Î¹ç·×¿ô¤¬ÊÖ¤µ¤ì¤ë¡£ +は修正されないが、そのプロセスの補助グループ ID の合計数が返される。 .\"O This allows the caller to determine the size of a dynamically allocated .\"O .I list .\"O to be used in a further call to .\"O .BR getgroups (). -¤³¤ì¤ò»È¤¦¤³¤È¤Ç¡¢¤½¤ì°Ê¹ß¤Î +これを使うことで、それ以降の .BR getgroups () -¤Î¸Æ¤Ó½Ð¤·¤ÇɬÍפȤʤëưŪ³ä¤êÅö¤Æ¥Ð¥Ã¥Õ¥¡ +の呼び出しで必要となる動的割り当てバッファ .I list -¤Î¥µ¥¤¥º¤ò¡¢¸Æ¤Ó½Ð¤·¸µ¤¬·èÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +のサイズを、呼び出し元が決定することができる。 .PP .\"O .BR setgroups () .\"O sets the supplementary group IDs for the calling process. @@ -130,21 +130,21 @@ _BSD_SOURCE .\"O .B CAP_SETGID .\"O capability) are required. .BR setgroups () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤ÎÊä½õ¥°¥ë¡¼¥× ID ¤òÀßÄꤹ¤ë¡£ -ŬÀÚ¤ÊÆø¢ (Linux ¤Ç¤Ï +は、呼び出し元プロセスの補助グループ ID を設定する。 +適切な特権 (Linux では .B CAP_SETGID -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability)) ¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティ (capability)) が必要である。 .\"O The .\"O .I size .\"O argument specifies the number of supplementary group IDs .\"O in the buffer pointed to by .\"O .IR list . .I size -°ú¤­¿ô¤Ë¤Ï¡¢ +引き数には、 .I list -¤Ë¤è¤ê»²¾È¤µ¤ì¤ë¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤¿Êä½õ¥°¥ë¡¼¥× ID ¤Î¿ô¤ò»ØÄꤹ¤ë¡£ +により参照されるバッファに格納された補助グループ ID の数を指定する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR getgroups () .\"O returns the number of supplementary group IDs. @@ -152,10 +152,10 @@ _BSD_SOURCE .\"O .I errno .\"O is set appropriately. .BR getgroups () -¤Ï¡¢À®¸ù¤¹¤ë¤ÈÊä½õ¥°¥ë¡¼¥× ID ¤Î¿ô¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤·¡¢ +は、成功すると補助グループ ID の数を返す。 +エラーの場合 \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O On success, .\"O .BR setgroups () @@ -164,34 +164,34 @@ _BSD_SOURCE .\"O .I errno .\"O is set appropriately. .BR setgroups () -¤Ï¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤·¡¢ +は、成功すると 0 を返す。 +エラーの場合 \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O .I list .\"O has an invalid address. .I list -¤¬ÉÔÀµ¤Ê¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +が不正なアドレスである。 .PP .\"O .BR getgroups () .\"O can additionally fail with the following error: .BR getgroups () -¤Ï¡¢¾åµ­¤Ë²Ã¤¨¤Æ°Ê²¼¤Î¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +は、上記に加えて以下のエラーで失敗する可能性がある。 .TP .B EINVAL .\"O .I size .\"O is less than the number of supplementary group IDs, but is not zero. .I size -¤¬Êä½õ¥°¥ë¡¼¥× ID ¤Î¿ô¤è¤ê¾®¤µ¤¤¤¬ 0 ¤Ç¤Ê¤¤¡£ +が補助グループ ID の数より小さいが 0 でない。 .PP .\"O .BR setgroups () .\"O can additionally fail with the following errors: .BR setgroups () -¤Ï¡¢¾åµ­¤Ë²Ã¤¨¤Æ°Ê²¼¤Î¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +は、上記に加えて以下のエラーで失敗する可能性がある。 .TP .B EINVAL .\"O .I size @@ -199,21 +199,21 @@ _BSD_SOURCE .\"O .B NGROUPS_MAX .\"O (32 before Linux 2.6.4; 65536 since Linux 2.6.4). .I size -¤¬ +が .B NGROUPS_MAX -¤è¤êÂ礭¤¤ +より大きい .RB ( NGROUPS_MAX -¤Ï Linux 2.6.4 ¤è¤êÁ°¤Ç¤Ï 32¡¢Linux 2.6.4 °Ê¹ß¤Ç¤Ï 65536)¡£ +は Linux 2.6.4 より前では 32、Linux 2.6.4 以降では 65536)。 .TP .B ENOMEM .\"O Out of memory. -¥á¥â¥êÉÔ­¡£ +メモリ不足。 .TP .B EPERM .\"O The calling process has insufficient privilege. -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬½½Ê¬¤ÊÆø¢¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +呼び出し元プロセスが十分な特権を持っていない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O SVr4, 4.3BSD. .\"O The .\"O .BR getgroups () @@ -223,11 +223,11 @@ _BSD_SOURCE .\"O requires privilege, it is not covered by POSIX.1-2001. SVr4, 4.3BSD. .BR getgroups () -´Ø¿ô¤Ï POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +関数は POSIX.1-2001 に準拠している。 .BR setgroups () -¤ÏÆø¢¤òɬÍפȤ¹¤ë¤¿¤á¡¢POSIX.1-2001 ¤Ë½¾¤Ã¤Æ¤¤¤Ê¤¤¡£ +は特権を必要とするため、POSIX.1-2001 に従っていない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O A process can have up to .\"O .B NGROUPS_MAX .\"O supplementary group IDs @@ -235,18 +235,18 @@ SVr4, 4.3BSD. .\"O The set of supplementary group IDs .\"O is inherited from the parent process, and preserved across an .\"O .BR execve (2). -¥×¥í¥»¥¹¤Ï¡¢¼Â¸ú¥°¥ë¡¼¥× ID ¤Ë²Ã¤¨¡¢ºÇÂç +プロセスは、実効グループ ID に加え、最大 .B NGROUPS_MAX -¤Þ¤Ç¤ÎÊä½õ¥°¥ë¡¼¥× ID ¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ -Êä½õ¥°¥ë¡¼¥× ID ¤Î½¸¹ç¤Ï¿Æ¥×¥í¥»¥¹¤«¤é·Ñ¾µ¤µ¤ì¡¢ +までの補助グループ ID を持つことができる。 +補助グループ ID の集合は親プロセスから継承され、 .BR execve (2) -¤ÎÁ°¸å¤ÇÊÝ»ý¤µ¤ì¤ë¡£ +の前後で保持される。 .\"O The maximum number of supplementary group IDs can be found using .\"O .BR sysconf (3): -Êä½õ¥°¥ë¡¼¥× ID ¤ÎºÇÂç¿ô¤Ï +補助グループ ID の最大数は .BR sysconf (3) -¤ò»È¤Ã¤Æ°Ê²¼¤Î¤è¤¦¤Ë¤·¤ÆÄ´¤Ù¤ë¤³¤È¤¬¤Ç¤­¤ë: +を使って以下のようにして調べることができる: .nf long ngroups_max; @@ -257,9 +257,9 @@ SVr4, 4.3BSD. .\"O .BR getgroups () .\"O cannot be larger than one more than this value. .BR getgroups () -¤ÎÊÖ¤êÃͤκÇÂçÃͤϡ¢¤³¤ÎÃͤè¤ê 1 Â礭¤¤Ãͤè¤êÂ礭¤¯¤Ê¤ë¤³¤È¤Ï¤Ê¤¤¡£ +の返り値の最大値は、この値より 1 大きい値より大きくなることはない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getgid (2), .BR setgid (2), .BR getgrouplist (3), diff --git a/draft/man2/gethostname.2 b/draft/man2/gethostname.2 index 888fe0e4..bf6e33b0 100644 --- a/draft/man2/gethostname.2 +++ b/draft/man2/gethostname.2 @@ -41,11 +41,11 @@ .\" .TH GETHOSTNAME 2 2010-09-26 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O gethostname, sethostname \- get/set hostname -gethostname, sethostname \- ¥Û¥¹¥È̾¤Î¼èÆÀ¡¦ÀßÄê¤ò¤¹¤ë +gethostname, sethostname \- ホスト名の取得・設定をする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int gethostname(char *" name ", size_t " len ); @@ -55,9 +55,9 @@ gethostname, sethostname \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -65,11 +65,11 @@ glibc .BR gethostname (): .RS 4 .\"O Since glibc 2.12: -glibc 2.12 °Ê¹ß: +glibc 2.12 以降: _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 .br .\"O || /* Since glibc 2.12: */ _POSIX_C_SOURCE\ >=\ 200112L -|| /* glibc 2.12 °Ê¹ß: */ _POSIX_C_SOURCE\ >=\ 200112L +|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\ >=\ 200112L .RE .br .BR sethostname (): @@ -79,11 +79,11 @@ _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) .PD .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These system calls are used to access or to change the hostname of the .\"O current processor. -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¸½ºß¤Î¥×¥í¥»¥Ã¥µ¤Î¥Û¥¹¥È̾¤ò¼èÆÀ¡¦Êѹ¹¤¹¤ë¤¿¤á¤Ë -»ÈÍѤµ¤ì¤ë¡£ +これらのシステムコールは、現在のプロセッサのホスト名を取得・変更するために +使用される。 .\"O .BR sethostname () .\"O sets the hostname to the value given in the character array @@ -96,17 +96,17 @@ _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) .\"O .I name .\"O does not require a terminating null byte.) .BR sethostname () -¤Ï¡¢¥Û¥¹¥È̾¤ò¡¢Ê¸»úÇÛÎó +は、ホスト名を、文字配列 .I name -¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£ -°ú¤­¿ô +で指定された値に設定する。 +引き数 .I len -¤Ë¤Ï¡¢ +には、 .I name -¤Î¥Ð¥¤¥È¿ô¤ò»ØÄꤹ¤ë -(¤½¤Î¤¿¤á¡¢ +のバイト数を指定する +(そのため、 .I name -¤Ç¤Ïʸ»úÎó½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤ÏɬÍפʤ¤)¡£ +では文字列終端の NULL バイトは必要ない)。 .\"O .BR gethostname () .\"O returns the null-terminated hostname in the character array @@ -120,33 +120,33 @@ _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) .\"O then it is unspecified whether the returned buffer .\"O includes a terminating null byte. .BR gethostname () -¤Ï¡¢NULL ½ªÃ¼¤µ¤ì¤¿¥Û¥¹¥È̾¤ò¡¢ +は、NULL 終端されたホスト名を、 .I len -¥Ð¥¤¥È¤ÎŤµ¤Îʸ»úÇÛÎó +バイトの長さの文字配列 .I name -¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ -NULL ½ªÃ¼¤µ¤ì¤¿¥Û¥¹¥È̾¤¬³ÊǼÀè¤Î¥Ð¥Ã¥Õ¥¡¤è¤ê¤âŤ¤¾ì¹ç¤Ï¡¢ -¥Û¥¹¥È̾¤ÏÀÚ¤êµÍ¤á¤é¤ì¡¢¥¨¥é¡¼¤ÏÊÖ¤µ¤ì¤Ê¤¤ (²¼µ­¤Î¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È)¡£ -POSIX.1-2001 ¤Ç¤Ï¡¢·ë²Ì¤ÎÀÚ¤êµÍ¤á¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¡¢ -ÊÖ¤µ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Ë½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Ï -µ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +に格納して返す。 +NULL 終端されたホスト名が格納先のバッファよりも長い場合は、 +ホスト名は切り詰められ、エラーは返されない (下記の「注意」の節を参照)。 +POSIX.1-2001 では、結果の切り詰めが発生した場合に、 +返されたバッファに終端の NULL バイトが含まれているかどうかは +規定されていない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç 0 ¤¬Ê֤롣¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤¬Ê֤ꡢ +成功した場合 0 が返る。失敗した場合 \-1 が返り、 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤ˽¾¤Ã¤ÆÀßÄꤵ¤ì¤ë¡£ +がエラーの内容に従って設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O .I name .\"O is an invalid address. .I name -¤¬ÉÔÀµ¤Ê¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +が不正なアドレスである。 .TP .B EINVAL .\"O .I len @@ -158,14 +158,14 @@ POSIX.1-2001 .\"O .I len .\"O is larger than the maximum allowed size. .I len -¤¬Éé¤Ç¤¢¤ë¡£ -.\" gethostbyname() ¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ç¤Ï¡¢'len' ¤Ï unsigned ·¿¤Ê¤Î¤Ç -.\" ¤³¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤³¤È¤Ï¤Ê¤¤¡£ -.\" ¤½¤ÎÃæ¤Ç¸Æ¤Ð¤ì¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤ÏȯÀ¸¤¹¤ë¤³¤È¤¬¤¢¤ë¡£ +が負である。 +.\" gethostbyname() ラッパー関数では、'len' は unsigned 型なので +.\" このエラーが発生することはない。 +.\" その中で呼ばれるシステムコールでは発生することがある。 .BR sethostname () -¤Ë¤ª¤¤¤Æ +において .I len -¤¬µöÍƤµ¤ì¤¿ºÇÂ祵¥¤¥º¤ò±Û¤¨¤Æ¤¤¤ë¡£ +が許容された最大サイズを越えている。 .TP .B ENAMETOOLONG .\"O .RB "(glibc " gethostname ()) @@ -175,12 +175,12 @@ POSIX.1-2001 .\"O .BR EINVAL .\"O for this case.) .RB "(glibc " gethostname () -¤Ç) +で) .I len -¤¬¼ÂºÝ¤Î¥Û¥¹¥È̾¤ÎŤµ¤è¤ê¤â¾®¤µ¤¤ -(glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤è¤êÁ°¤Ç¤Ï¡¢¤³¤Î¾õ¶·¤Ç +が実際のホスト名の長さよりも小さい +(glibc バージョン 2.1 より前では、この状況で .B EINVAL -¤¬»ÈÍѤµ¤ì¤ë)¡£ +が使用される)。 .TP .B EPERM .\"O For @@ -189,44 +189,44 @@ POSIX.1-2001 .\"O .B CAP_SYS_ADMIN .\"O capability. .BR sethostname () -¤Ë¤ª¤¤¤Æ¡¢¸Æ¤Ó½Ð¤·¤¿¿Í¤¬ +において、呼び出した人が .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +ケーパビリティ (capability) を持っていなかった。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O SVr4, 4.4BSD (these interfaces first appeared in 4.2BSD). .\"O POSIX.1-2001 specifies .\"O .BR gethostname () .\"O but not .\"O .BR sethostname (). -SVr4, 4.4BSD (¤³¤ì¤é¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï 4.2BSD ¤Ç½é¤á¤ÆÅо줷¤¿)¡£ -POSIX.1-2001 ¤Ç¤Ï +SVr4, 4.4BSD (これらのインタフェースは 4.2BSD で初めて登場した)。 +POSIX.1-2001 では .BR gethostname () -¤Ë¤Ä¤¤¤Æ¤Ïµ¬Äꤷ¤Æ¤¤¤ë¤¬¡¢ +については規定しているが、 .BR sethostname () -¤Ïµ¬Äꤷ¤Æ¤¤¤Ê¤¤¡£ +は規定していない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O SUSv2 guarantees that "Host names are limited to 255 bytes". .\"O POSIX.1-2001 guarantees that "Host names (not including .\"O the terminating null byte) are limited to .\"O .B HOST_NAME_MAX .\"O bytes". -SUSv2 ¤Ç¤Ï¡Ö¥Û¥¹¥È̾¤¬ 255 ¥Ð¥¤¥È¤ËÀ©¸Â¤µ¤ì¤ë¡×¤³¤È¤òÊݾڤ·¤Æ¤¤¤ë¡£ -POSIX.1-2001 ¤Ç¤Ï¡Ö¥Û¥¹¥È̾ (½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤Ï´Þ¤Þ¤Ê¤¤) ¤¬ +SUSv2 では「ホスト名が 255 バイトに制限される」ことを保証している。 +POSIX.1-2001 では「ホスト名 (終端の NULL バイトは含まない) が .B HOST_NAME_MAX -¥Ð¥¤¥È¤ËÀ©¸Â¤µ¤ì¤ë¡×¤³¤È¤òÊݾڤ·¤Æ¤¤¤ë¡£ +バイトに制限される」ことを保証している。 .\"O On Linux, .\"O .B HOST_NAME_MAX .\"O is defined with the value 64, which has been the limit since Linux 1.0 .\"O (earlier kernels imposed a limit of 8 bytes). -Linux ¤Ç¤Ï¡¢ +Linux では、 .B HOST_NAME_MAX -¤Ï 64 ¤ËÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ -Linux 1.0 °Ê¹ß¤Ç¤Ï¤³¤ì¤¬¾å¸Â¤È¤Ê¤Ã¤Æ¤­¤¿ -(¤â¤Ã¤È¸Å¤¤¥«¡¼¥Í¥ë¤Ç¤Ï 8 ¥Ð¥¤¥È¤Î¾å¸Â¤¬Å¬ÍѤµ¤ì¤Æ¤¤¤¿)¡£ +は 64 に定義されており、 +Linux 1.0 以降ではこれが上限となってきた +(もっと古いカーネルでは 8 バイトの上限が適用されていた)。 .\"O .SS Glibc Notes -.SS "glibc ¤Ç¤ÎÃí°Õ" +.SS "glibc での注意" .\"O The GNU C library does not employ the .\"O .BR gethostname () .\"O system call; instead, it implements @@ -239,22 +239,22 @@ Linux 1.0 .\"O .I nodename .\"O field into .\"O .IR name . -GNU C ¥é¥¤¥Ö¥é¥ê¤Ï¡¢ +GNU C ライブラリは、 .BR gethostname () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÍøÍѤ·¤Æ¤¤¤Ê¤¤¡£¤½¤ÎÂå¤ï¤ê¡¢ +システムコールを利用していない。その代わり、 .BR gethostname () -¤ò¥é¥¤¥Ö¥é¥ê´Ø¿ô¤È¤·¤Æ¼ÂÁõ¤·¤Æ¤ª¤ê¡¢ -¤³¤Î´Ø¿ô¤Ï +をライブラリ関数として実装しており、 +この関数は .BR uname (2) -¤ò¸Æ¤Ó½Ð¤·¡¢ +を呼び出し、 .BR uname (2) -¤¬ÊÖ¤·¤¿ +が返した .I nodename -¥Õ¥£¡¼¥ë¥É (¤ÎºÇÂç +フィールド (の最大 .I len -¥Ð¥¤¥È) ¤ò +バイト) を .I name -¤Ë¥³¥Ô¡¼¤¹¤ë¡£ +にコピーする。 .\"O Having performed the copy, the function then checks if the length of the .\"O .I nodename .\"O was greater than or equal to @@ -265,20 +265,20 @@ GNU C .\"O .BR ENAMETOOLONG ; .\"O in this case, a terminating null byte is not included in the returned .\"O .IR name . -¥³¥Ô¡¼¤ò¹Ô¤Ã¤¿ºÝ¤Ë¡¢¤³¤Î´Ø¿ô¤Ï +コピーを行った際に、この関数は .I nodename -¤ÎŤµ¤¬ +の長さが .I len -°Ê¾å¤«¤Î³Îǧ¤ò¹Ô¤¤¡¢ +以上かの確認を行い、 .I len -°Ê¾å¤Î¾ì¹ç¤Ë¤Ï \-1 ¤òÊÖ¤·¡¢ +以上の場合には \-1 を返し、 .I errno -¤Ë +に .B ENAMETOOLONG -¤òÀßÄꤹ¤ë¡£ -¤³¤Î¾ì¹ç¡¢ÊÖ¤µ¤ì¤¿ +を設定する。 +この場合、返された .I name -¤Ë¤Ï½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ +には終端の NULL バイトは含まれない。 .\"O Versions of glibc before 2.2 .\"O .\" At least glibc 2.0 and 2.1, older versions not checked @@ -292,23 +292,23 @@ GNU C .\"O .I errno .\"O set to .\"O .BR ENAMETOOLONG . -¥Ð¡¼¥¸¥ç¥ó 2.2 ¤è¤êÁ°¤Î glibc -.\" ¾¯¤Ê¤¯¤È¤â glibc 2.0 ¤È 2.1¡£¤½¤ì¤è¤ê¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Ï̤³Îǧ -¤Ç¤Ï¡¢ +バージョン 2.2 より前の glibc +.\" 少なくとも glibc 2.0 と 2.1。それより古いバージョンは未確認 +では、 .I nodename -¤ÎŤµ¤¬ +の長さが .I len -°Ê¾å¤Î¾ì¹ç¤Î°·¤¤¤¬°Û¤Ê¤ë; +以上の場合の扱いが異なる; .I len -°Ê¾å¤Î¾ì¹ç¤Ë¤Ï¡¢ +以上の場合には、 .I name -¤Ë¤Ï²¿¤â¥³¥Ô¡¼¤»¤º¡¢´Ø¿ô¤Ï \-1 ¤òÊÖ¤·¡¢ +には何もコピーせず、関数は \-1 を返し、 .I errno -¤Ë +に .B ENAMETOOLONG -¤òÀßÄꤹ¤ë¡£ +を設定する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getdomainname (2), .BR setdomainname (2), .BR uname (2) diff --git a/draft/man2/getitimer.2 b/draft/man2/getitimer.2 index ca95ec53..749921f9 100644 --- a/draft/man2/getitimer.2 +++ b/draft/man2/getitimer.2 @@ -14,13 +14,13 @@ .\" Updated 2007-10-14, Akihiro MOTOKI .\" Updated 2009-04-13, Akihiro MOTOKI, LDP v3.20 .\" -.\" WORD: timer ¥¿¥¤¥Þ¡¼ +.\" WORD: timer タイマー .\" WORD: jiffies jiffy .\" .TH GETITIMER 2 2009-03-15 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -getitimer, setitimer \- ¥¤¥ó¥¿¡¼¥Ð¥ë¡¦¥¿¥¤¥Þ¡¼¤ÎÃͤò¼èÆÀ¤Þ¤¿¤ÏÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +getitimer, setitimer \- インターバル・タイマーの値を取得または設定する +.SH 書式 .nf .B #include .sp @@ -29,33 +29,33 @@ getitimer, setitimer \- .BI "int setitimer(int " which ", const struct itimerval *" new_value , .BI " struct itimerval *" old_value ); .fi -.SH ÀâÌÀ +.SH 説明 .\"O The system provides each process with three interval timers, each decrementing .\"O in a distinct time domain. .\"O When any timer expires, a signal is sent to the .\"O process, and the timer (potentially) restarts. -¥·¥¹¥Æ¥à¤Ï 1 ¸Ä¤Î¥×¥í¥»¥¹¤Ë¤Ä¤­ 3 ¸Ä¤Î¥¤¥ó¥¿¡¼¥Ð¥ë¡¦¥¿¥¤¥Þ¡¼¤òÄ󶡤¹¤ë¡£ -¤½¤ì¤¾¤ì¤Î¥¿¥¤¥Þ¡¼¤ÏÊÌ¡¹¤Î»þ´ÖÎΰè¤Ç¸º¾¯¤¹¤ë¡£ -¤É¤Î¥¿¥¤¥Þ¡¼¤âËþλ¤¹¤ë¤È¥×¥í¥»¥¹¤Ë¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¡¢ -¥¿¥¤¥Þ¡¼¤Ï (ÀßÄê¤Ë¤è¤Ã¤Æ¤Ï) ºÆ¤Ó³«»Ï¤µ¤ì¤ë¡£ +システムは 1 個のプロセスにつき 3 個のインターバル・タイマーを提供する。 +それぞれのタイマーは別々の時間領域で減少する。 +どのタイマーも満了するとプロセスにシグナルが送られ、 +タイマーは (設定によっては) 再び開始される。 .TP 1.5i .\"O .B ITIMER_REAL .\"O decrements in real time, and delivers .\"O .B SIGALRM .\"O upon expiration. .B ITIMER_REAL -¼Â»þ´Ö (real time) ¤Ç¸º¾¯¤·¡¢Ëþλ¤¹¤ë¤È +実時間 (real time) で減少し、満了すると .B SIGALRM -¤¬Á÷¤é¤ì¤ë¡£ +が送られる。 .TP .\"O .B ITIMER_VIRTUAL .\"O decrements only when the process is executing, and delivers .\"O .B SIGVTALRM .\"O upon expiration. .B ITIMER_VIRTUAL -¥×¥í¥»¥¹¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë´Ö¤Î¤ß¸º¾¯¤·¡¢Ëþλ¤¹¤ë¤È +プロセスが実行されている間のみ減少し、満了すると .B SIGVTALRM -¤¬Á÷¤é¤ì¤ë¡£ +が送られる。 .TP .\"O .B ITIMER_PROF .\"O decrements both when the process executes and when the system is executing @@ -67,18 +67,18 @@ getitimer, setitimer \- .\"O .B SIGPROF .\"O is delivered upon expiration. .B ITIMER_PROF -¥×¥í¥»¥¹¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤Æ¡¢ -¤«¤Ä¥·¥¹¥Æ¥à¤¬¤½¤Î¥×¥í¥»¥¹¤Î¤¿¤á¤Ë½èÍý¤ò¹Ô¤Ê¤Ã¤Æ¤¤¤ë´Ö¤Ë¸º¾¯¤¹¤ë¡£ -¿¤¯¤Î¾ì¹ç¡¢¤³¤Î¥¿¥¤¥Þ¡¼¤Ï +プロセスが実行されていて、 +かつシステムがそのプロセスのために処理を行なっている間に減少する。 +多くの場合、このタイマーは .B ITIMER_VIRTUAL -¤ÈÁȤ߹ç¤ï¤µ¤ì¤Æ¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¥«¡¼¥Í¥ë¶õ´Ö¤È¥æ¡¼¥¶¡¼¶õ´Ö¤Ç -¤É¤ì¤À¤±¤Î»þ´Ö¤ò²á¤´¤·¤¿¤«¤ò¥×¥í¥Õ¥¡¥¤¥ë¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ -Ëþλ¤¹¤ë¤È +と組み合わされて、アプリケーションがカーネル空間とユーザー空間で +どれだけの時間を過ごしたかをプロファイルするのに使用される。 +満了すると .B SIGPROF -¤¬Á÷¤é¤ì¤ë¡£ +が送られる。 .LP .\"O Timer values are defined by the following structures: -¥¿¥¤¥Þ¡¼¤ÎÃͤϰʲ¼¤Î¹½Â¤ÂΤˤè¤Ã¤ÆÄêµÁ¤µ¤ì¤ë: +タイマーの値は以下の構造体によって定義される: .PD 0 .in +4n .nf @@ -108,15 +108,15 @@ struct timeval { .\"O or .\"O .BR ITIMER_PROF ). .BR getitimer () -´Ø¿ô¤Ï¡¢ +関数は、 .I which -¤Ç»ØÄꤵ¤ì¤¿¥¿¥¤¥Þ¡¼ +で指定されたタイマー .RB ( ITIMER_REAL , .BR ITIMER_VIRTUAL , .B ITIMER_PROF -¤Î¤É¤ì¤«) ¤Î¸½ºß¤ÎÀßÄê¤ò¡¢ +のどれか) の現在の設定を、 .I curr_value -¤Ç»ØÄꤵ¤ì¤¿¹½Â¤ÂΤ˳ÊǼ¤¹¤ë¡£ +で指定された構造体に格納する。 .\"O The element .\"O .I it_value .\"O is set to the amount of time remaining on the timer, or zero if the timer @@ -125,57 +125,57 @@ struct timeval { .\"O .I it_interval .\"O is set to the reset value. .I it_value -Í×ÁǤˤϥ¿¥¤¥Þ¡¼¤Î»Ä¤ê»þ´Ö¤¬ÀßÄꤵ¤ì¤ë¡£¥¿¥¤¥Þ¡¼¤¬¥ª¥Õ¤Î¾ì¹ç¤Ï -¥¼¥í¤¬ÀßÄꤵ¤ì¤ë¡£Æ±ÍÍ¤Ë +要素にはタイマーの残り時間が設定される。タイマーがオフの場合は +ゼロが設定される。同様に .I it_interval -¤Ë¤Ï½é´üÃͤ¬ÀßÄꤵ¤ì¤ë¡£ +には初期値が設定される。 .\"O The function .\"O .BR setitimer () .\"O sets the specified timer to the value in .\"O .IR new_value . .BR setitimer () -´Ø¿ô¤Ï»ØÄꤵ¤ì¤¿¥¿¥¤¥Þ¡¼¤Ë +関数は指定されたタイマーに .I new_value -¤ÎÃͤòÀßÄꤹ¤ë¡£ +の値を設定する。 .\"O If .\"O .I old_value .\"O is non-NULL, the old value of the timer is stored there. .I old_value -¤¬ NULL °Ê³°¤Î¾ì¹ç¡¢¥¿¥¤¥Þ¡¼¤Î¸Å¤¤Ãͤ¬ +が NULL 以外の場合、タイマーの古い値が .I old_value -¤Ë³ÊǼ¤µ¤ì¤ë¡£ +に格納される。 .LP .\"O Timers decrement from .\"O .I it_value .\"O to zero, generate a signal, and reset to .\"O .IR it_interval . -¥¿¥¤¥Þ¡¼¤Ï +タイマーは .I it_value -¤«¤é¥¼¥í¤Ø¸þ¤±¤Æ¸º¤Ã¤Æ¤¤¤­¡¢¥·¥°¥Ê¥ë¤òÀ¸À®¤·¡¢ +からゼロへ向けて減っていき、シグナルを生成し、 .I it_interval -¤Ë½é´ü²½¤µ¤ì¤ë¡£ +に初期化される。 .\"O A timer which is set to zero .\"O .RI ( it_value .\"O is zero or the timer expires and .\"O .I it_interval .\"O is zero) stops. -¥¿¥¤¥Þ¡¼¤¬¥¼¥í¤ËÀßÄꤵ¤ì¤¿¾ì¹ç +タイマーがゼロに設定された場合 .RI ( it_value -¤¬¥¼¥í¤«¡¢¥¿¥¤¥Þ¡¼¤¬Ëþλ¤·¤¿»þ¤Ë +がゼロか、タイマーが満了した時に .I it_interval -¤¬¥¼¥í¤Î¾ì¹ç) ¤ÏÄä»ß¤¹¤ë¡£ +がゼロの場合) は停止する。 .LP .\"O Both .\"O .I tv_sec .\"O and .\"O .I tv_usec .\"O are significant in determining the duration of a timer. -¥¿¥¤¥Þ¡¼¤Î´ü´Ö¤Ï +タイマーの期間は .I tv_sec -¤È +と .I tv_usec -¤ÎξÊý¤Ë¤è¤ê·èÄꤵ¤ì¤ë¡£ +の両方により決定される。 .LP .\"O Timers will never expire before the requested time, .\"O but may expire some (short) time afterward, which depends @@ -188,26 +188,26 @@ struct timeval { .\"O the signal will be delivered immediately when generated. .\"O Otherwise the .\"O delivery will be offset by a small time dependent on the system loading. -Í׵ᤷ¤¿»þ´Ö¤¬¤¯¤ëÁ°¤Ë¥¿¥¤¥Þ¡¼¤¬Ëþλ¤¹¤ë¤³¤È¤Ï¤Ê¤¤¤¬¡¢ -µÕ¤Ë¤¢¤ë (û¤¤) »þ´Ö¤À¤±Ëþ뤬ÃÙ¤ì¤ë¤³¤È¤Ï¤¢¤ë¡£ -¤É¤ì¤À¤±ÃÙ¤ì¤ë¤«¤Ï¥·¥¹¥Æ¥à¤Î»þ´Öʬ²òǽ¤È¥·¥¹¥Æ¥à¤ÎÉé²Ù¤Ë°Í¸¤¹¤ë +要求した時間がくる前にタイマーが満了することはないが、 +逆にある (短い) 時間だけ満了が遅れることはある。 +どれだけ遅れるかはシステムの時間分解能とシステムの負荷に依存する .RB ( time (7) -»²¾È; ⤷¡¢¥Ð¥°¤Î¹à¤â»²¾È¤Î¤³¤È)¡£ -¥¿¥¤¥Þ¡¼¤¬Ëþλ¤¹¤ë¤È¥·¥°¥Ê¥ë¤¬À¸À®¤µ¤ì¡¢¥¿¥¤¥Þ¡¼¤Ï½é´ü²½¤µ¤ì¤ë¡£ -¥×¥í¥»¥¹¤¬¥¢¥¯¥Æ¥£¥Ö¤Ê»þ +参照; 但し、バグの項も参照のこと)。 +タイマーが満了するとシグナルが生成され、タイマーは初期化される。 +プロセスがアクティブな時 .RB ( ITIMER_VIRTUAL -¤Î¾ì¹ç¤Ë¤Ï¾ï¤Ë¤½¤¦¤Ç¤¢¤ë) ¤Ë¥¿¥¤¥Þ¡¼¤¬Ëþλ¤·¤¿¾ì¹ç¡¢À¸À®¤µ¤ì¤¿¥·¥°¥Ê¥ë¤Ï -¤¹¤°¤ËÇÛÁ÷¤µ¤ì¤ë¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢¥·¥¹¥Æ¥à¤ÎÉé²Ù¤Ë¤è¤ê¾¯¤·¤Î»þ´Ö¤À¤± -ÃÙ¤ì¤ÆÇÛÁ÷¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +の場合には常にそうである) にタイマーが満了した場合、生成されたシグナルは +すぐに配送される。それ以外の場合は、システムの負荷により少しの時間だけ +遅れて配送される。 +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï¥¼¥í¤¬Ê֤롣¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬Ê֤ꡢ +成功した場合はゼロが返る。エラーの場合は \-1 が返り、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EFAULT .\"O .IR new_value , @@ -218,7 +218,7 @@ struct timeval { .IR new_value , .IR old_value , .I curr_value -¤¬Í­¸ú¤Ê¥Ý¥¤¥ó¥¿¡¼¤Ç¤Ê¤¤¡£ +が有効なポインターでない。 .TP .B EINVAL .\"O .I which @@ -233,20 +233,20 @@ struct timeval { .\"O .I new_value .\"O contains a value outside the range 0 to 999999. .I which -¤¬ +が .BR ITIMER_REAL , .BR ITIMER_VIRTUAL , .B ITIMER_PROF -¤Î¤É¤ì¤Ç¤â¤Ê¤¤¡£ -¤Þ¤¿¤Ï (Linux 2.6.22 °Ê¹ß¤Ç) +のどれでもない。 +または (Linux 2.6.22 以降で) .I new_value -¤Ç»ØÄꤵ¤ì¤¿¹½Â¤ÂΤΠ+で指定された構造体の .I tv_usec -¥Õ¥£¡¼¥ë¥É¤Î°ì¤Ä¤¬ 0 °Ê¾å 999999 °Ê²¼¤ÎÈϰϤËÆþ¤é¤Ê¤¤ÃͤǤ¢¤ë¡£ +フィールドの一つが 0 以上 999999 以下の範囲に入らない値である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O POSIX.1-2001, SVr4, 4.4BSD (this call first appeared in 4.2BSD). -POSIX.1-2001, SVr4, 4.4BSD (¤³¤Î¥³¡¼¥ë¤Ï 4.2BSD ¤Ç»Ï¤á¤Æ¸½¤ï¤ì¤¿). +POSIX.1-2001, SVr4, 4.4BSD (このコールは 4.2BSD で始めて現われた). .\"O POSIX.1-2008 marks .\"O .BR getitimer () .\"O and @@ -255,27 +255,27 @@ POSIX.1-2001, SVr4, 4.4BSD ( .\"O .RB ( timer_gettime (2), .\"O .BR timer_settime (2), .\"O etc.) instead. -POSIX.1-2008 ¤Ç¤Ï¡¢ +POSIX.1-2008 では、 .BR getitimer () -¤È +と .BR setitimer () -¤ÏÇÑ»ßͽÄê¤È¤µ¤ì¤Æ¤ª¤ê¡¢ -Âå¤ï¤ê¤Ë POSIX ¥¿¥¤¥Þ¡¼ API +は廃止予定とされており、 +代わりに POSIX タイマー API .RB ( timer_gettime (2), .BR timer_settime (2) -¤Ê¤É) ¤ò»È¤¦¤³¤È¤¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£ +など) を使うことが推奨されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O A child created via .\"O .BR fork (2) .\"O does not inherit its parent's interval timers. .\"O Interval timers are preserved across an .\"O .BR execve (2). .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢ -¿Æ¥×¥í¥»¥¹¤Î¥¤¥ó¥¿¡¼¥Ð¥ë¡¦¥¿¥¤¥Þ¡¼¤ò·Ñ¾µ¤·¤Ê¤¤¡£ +で作成された子プロセスは、 +親プロセスのインターバル・タイマーを継承しない。 .BR execve (2) -¤ÎÁ°¸å¤Ç¤Ï¥¤¥ó¥¿¡¼¥Ð¥ë¡¦¥¿¥¤¥Þ¡¼¤ÏÊݸ¤µ¤ì¤ë¡£ +の前後ではインターバル・タイマーは保存される。 .\"O POSIX.1 leaves the .\"O interaction between @@ -286,15 +286,15 @@ POSIX.1-2008 .\"O and .\"O .BR usleep (3) .\"O unspecified. -POSIX.1 ¤Ç¤Ï¡¢ +POSIX.1 では、 .BR setitimer () -¤È¡¢ +と、 .BR alarm (2), .BR sleep (3), .BR usleep (3) -¤È¤¤¤¦ 3 ¤Ä¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤È¤ÎÁê¸ß¤Î±Æ¶Á¤Ë¤Ä¤¤¤Æ¤Ïµ¬Äꤷ¤Æ¤¤¤Ê¤¤¡£ +という 3 つのインタフェースとの相互の影響については規定していない。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O The generation and delivery of a signal are distinct, and .\"O only one instance of each of the signals listed above may be pending .\"O for a process. @@ -303,18 +303,18 @@ POSIX.1 .\"O timer may expire before the signal from a previous expiration .\"O has been delivered. .\"O The second signal in such an event will be lost. -¥·¥°¥Ê¥ë¤ÎÀ¸À®¤ÈÇÛÁ÷¤ÏÊ̸ĤΤâ¤Î¤Ç¤¢¤ê¡¢ -Á°½Ò¤Î¥·¥°¥Ê¥ë¤Î¤½¤ì¤¾¤ì¤Ë¤Ä¤¤¤Æ°ì¤Ä¤À¤±¤¬¥×¥í¥»¥¹¤Î¤¿¤á¤Ë -ÂÔµ¡¤¹¤ë¡£ -Èó¾ï¤Ë½Å¤¤Éé²Ù¤Î²¼¤Ç¤Ï¡¢ +シグナルの生成と配送は別個のものであり、 +前述のシグナルのそれぞれについて一つだけがプロセスのために +待機する。 +非常に重い負荷の下では、 .B ITIMER_REAL -¥¿¥¤¥Þ¡¼¤Ç¤Ï¡¢»þ´ÖÀÚ¤ì¤Ë¤è¤êÀ¸À®¤µ¤ì¤¿°ì¤ÄÁ°¤Î¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ëÁ°¤Ë¡¢ -¼¡¤Î»þ´ÖÀڤ줬µ¯¤³¤ë¾ì¹ç¤¬¤¢¤ë¡£ -¤½¤Î¤è¤¦¤Ê¾ì¹ç¡¢ 2 ¸Ä¤á¤Î¥¤¥Ù¥ó¥È¤ËÂФ¹¤ë¥·¥°¥Ê¥ë¤Ï¼º¤ï¤ì¤Æ¤·¤Þ¤¦¡£ +タイマーでは、時間切れにより生成された一つ前のシグナルが配送される前に、 +次の時間切れが起こる場合がある。 +そのような場合、 2 個めのイベントに対するシグナルは失われてしまう。 .\"O On Linux kernels before 2.6.16, timer values are represented in jiffies. -¥Ð¡¼¥¸¥ç¥ó 2.6.16 ¤è¤êÁ°¤Î Linux ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -¥¿¥¤¥Þ¡¼¤ÎÃÍ¤Ï jiffy ¤Çɽ¸½¤µ¤ì¤ë¡£ +バージョン 2.6.16 より前の Linux カーネルでは、 +タイマーの値は jiffy で表現される。 .\"O If a request is made set a timer with a value whose jiffies .\"O representation exceeds .\"O .B MAX_SEC_IN_JIFFIES @@ -325,28 +325,28 @@ POSIX.1 .\"O the default jiffy is 0.004 seconds), .\"O this means that the ceiling value for a timer is .\"O approximately 99.42 days. -Í׵᤬ jiffy ɽ¸½¤Ç +要求が jiffy 表現で .RI ( include/linux/jiffies.h -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë) +で定義されている) .B MAX_SEC_IN_JIFFIES -¤ò±Û¤¨¤ëÃͤò¥¿¥¤¥Þ¡¼¤ËÀßÄꤷ¤è¤¦¤È¤¹¤ë¤â¤Î¤Î¾ì¹ç¡¢ -¥¿¥¤¥Þ¡¼¤Ï°ÅÌۤˤ³¤Î¾å¸ÂÃͤËÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ -Linux/i386 ¤Î¾ì¹ç (Linux 2.6.13 °Ê¹ß¤Ç¤Ï jiffy ¤Ï 0.004 ÉÃ) ¤Î¾ì¹ç¡¢ -¤³¤ì¤Ï¥¿¥¤¥Þ¡¼¤Î¾å¸ÂÃͤ¬¤ª¤è¤½ 99.42 Æü¤Ë¤Ê¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +を越える値をタイマーに設定しようとするものの場合、 +タイマーは暗黙にこの上限値に切り詰められる。 +Linux/i386 の場合 (Linux 2.6.13 以降では jiffy は 0.004 秒) の場合、 +これはタイマーの上限値がおよそ 99.42 日になることを意味する。 .\"O Since Linux 2.6.16, .\"O the kernel uses a different internal representation for times, .\"O and this ceiling is removed. -Linux 2.6.16 °Ê¹ß¤Ç¤Ï¡¢¥«¡¼¥Í¥ë¤Ï»þ´Ö¤Ë´Ø¤¹¤ëÆâÉôɽ¸½¤È¤·¤Æ -°Û¤Ê¤ëɽ¸½¤ò»È¤¦¤è¤¦¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢¤³¤Î¾å¸Â¤Ï¤Ê¤¯¤Ê¤Ã¤¿¡£ +Linux 2.6.16 以降では、カーネルは時間に関する内部表現として +異なる表現を使うようになっており、この上限はなくなった。 .\"O On certain systems (including i386), .\"O Linux kernels before version 2.6.12 have a bug which will produce .\"O premature timer expirations of up to one jiffy under some circumstances. .\"O This bug is fixed in kernel 2.6.12. -(i386 ¤ò´Þ¤à) ¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -¥Ð¡¼¥¸¥ç¥ó 2.6.12 °ÊÁ°¤Î Linux ¥«¡¼¥Í¥ë¤Ï -¤¢¤ë¼ï¤Î¾õ¶·¤Ç¤Ï 1 jiffy Á᤯¥¿¥¤¥Þ¡¼¤¬½ªÎ»¤·¤Æ¤·¤Þ¤¦¤È¤¤¤¦¥Ð¥°¤¬¤¢¤Ã¤¿¡£ -¤³¤Î¥Ð¥°¤Ï¥«¡¼¥Í¥ë 2.6.12 ¤Ç½¤Àµ¤µ¤ì¤¿¡£ +(i386 を含む) いくつかのシステムでは、 +バージョン 2.6.12 以前の Linux カーネルは +ある種の状況では 1 jiffy 早くタイマーが終了してしまうというバグがあった。 +このバグはカーネル 2.6.12 で修正された。 .\" 4 Jul 2005: It looks like this bug may remain in 2.4.x. .\" http://lkml.org/lkml/2005/7/1/165 @@ -358,13 +358,13 @@ Linux 2.6.16 .\"O However, in kernels up to and including 2.6.21, .\"O Linux does not give an error, but instead silently .\"O adjusts the corresponding seconds value for the timer. -POSIX.1-2001 ¤Ç¤Ï +POSIX.1-2001 では .BR setitimer () -¤Ï +は .I tv_usec -¤ÎÃͤ¬ 0 ¤«¤é 999999 ¤ÎÈϰϳ°¤Ç¤¢¤ë¾ì¹ç¤Ë¤Ï¼ºÇÔ¤¹¤ë¤Ù¤­¤À¤È¤·¤Æ¤¤¤ë¡£ -¤·¤«¤·¡¢2.6.21 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Î Linux ¤Ç¤Ï¥¨¥é¡¼¤Ë¤Ê¤é¤º¡¢ -Âбþ¤¹¤ëÉÿô¤Îʬ¤À¤±¤½¤Î¥¿¥¤¥Þ¡¼¤ÎÉäÎÃͤ¬°ÅÌÛ¤ËÄ´À°¤µ¤ì¤ë¡£ +の値が 0 から 999999 の範囲外である場合には失敗するべきだとしている。 +しかし、2.6.21 以前のカーネルの Linux ではエラーにならず、 +対応する秒数の分だけそのタイマーの秒の値が暗黙に調整される。 .\"O From kernel 2.6.22 onward, .\"O this nonconformance has been repaired: .\"O an improper @@ -372,16 +372,16 @@ POSIX.1-2001 .\"O value results in an .\"O .B EINVAL .\"O error. -¥«¡¼¥Í¥ë 2.6.22 °Ê¹ß¤Ç¤Ï¡¢¤³¤Îɸ½àÈó½àµò¤ÎÆ°ºî¤Ï½¤Àµ¤µ¤ì¡¢ +カーネル 2.6.22 以降では、この標準非準拠の動作は修正され、 .I tv_usec -¤ÎÃͤ¬ÉÔŬÀڤʾì¹ç¤Ë¤Ï +の値が不適切な場合には .B EINVAL -¥¨¥é¡¼¤È¤Ê¤ë¡£ +エラーとなる。 .\" Bugzilla report 25 Apr 2006: .\" http://bugzilla.kernel.org/show_bug.cgi?id=6443 .\" "setitimer() should reject noncanonical arguments" .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR gettimeofday (2), .BR sigaction (2), .BR signal (2), diff --git a/draft/man2/getpagesize.2 b/draft/man2/getpagesize.2 index fd77ce5a..c2458d7f 100644 --- a/draft/man2/getpagesize.2 +++ b/draft/man2/getpagesize.2 @@ -26,15 +26,15 @@ .\" Updated 2003-07-03, Akihiro Motoki .\" Updated 2007-01-07, Akihiro MOTOKI, catch up to LDP v2.43 .\" -.\"WORD: page ¥Ú¡¼¥¸ -.\"WORD: legacy ²áµî¤Î°äʪ +.\"WORD: page ページ +.\"WORD: legacy 過去の遺物 .\" .TH GETPAGESIZE 2 2010-09-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getpagesize \- get memory page size -getpagesize \- ¥á¥â¥ê¤Î¥Ú¡¼¥¸¡¦¥µ¥¤¥º¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +getpagesize \- メモリのページ・サイズを取得する +.SH 書式 .B #include .sp .B int getpagesize(void); @@ -42,9 +42,9 @@ getpagesize \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR getpagesize (): @@ -53,21 +53,21 @@ glibc .PD 0 .TP 4 .\"O Since glibc 2.12: -glibc 2.12 °Ê¹ß: +glibc 2.12 以降: .nf _BSD_SOURCE || !(_POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600) .fi .TP 4 .\"O Before glibc 2.12: -glibc 2.12 ¤è¤êÁ°: +glibc 2.12 より前: _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .PD .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The function .\"O .BR getpagesize () .\"O returns the number of bytes in a page, where a "page" is the thing @@ -75,17 +75,17 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O .BR mmap (2) .\"O that files are mapped in page-sized units. .BR getpagesize () -´Ø¿ô¤Ï¥Ú¡¼¥¸¤ÎÂ礭¤µ¤ò¥Ð¥¤¥È¿ô¤ÇÊÖ¤¹¡£¤³¤³¤Ç¤Î¡Ö¥Ú¡¼¥¸¡×¤Ï +関数はページの大きさをバイト数で返す。ここでの「ページ」は .BR mmap (2) -¤ÎÀâÌÀ¤ÎÃæ¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë¤â¤Î¤Ç¡¢ +の説明の中で使用されているもので、 .BR mmap () -¤Ï¤³¤Î¥Ú¡¼¥¸¥µ¥¤¥º¤Îñ°Ì¤Ç¥Õ¥¡¥¤¥ë¤ò¥Þ¥Ã¥×¤¹¤ë¡£ +はこのページサイズの単位でファイルをマップする。 .\"O The size of the kind of pages that .\"O .BR mmap (2) .\"O uses, is found using .BR mmap (2) -¤¬»ÈÍѤ¹¤ë¥Ú¡¼¥¸¥µ¥¤¥º¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤·¤ÆÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ +が使用するページサイズは以下のようにして知ることができる。 .in +4n .nf @@ -99,11 +99,11 @@ long sz = sysconf(_SC_PAGESIZE); .\"O for .\"O .BR _SC_PAGESIZE ), .\"O or -(¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¤Ç¤Ï +(ほとんどのシステムでは .B _SC_PAGESIZE -¤ÎƱµÁ¸ì¤È¤·¤Æ +の同義語として .B _SC_PAGE_SIZE -¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë)¡¢¤â¤·¤¯¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë: +を使用することができる)、もしくは以下のようにする: .in +4n .nf @@ -112,11 +112,11 @@ int sz = getpagesize(); .fi .in .\"O .\" .SH HISTORY -.\" .SH Îò»Ë +.\" .SH 歴史 .\"O .\" This call first appeared in 4.2BSD. -.\" ¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï 4.2BSD ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +.\" このシステムコールは 4.2BSD で初めて登場した。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 SVr4, 4.4BSD, SUSv2. .\"O In SUSv2 the .\"O .BR getpagesize () @@ -126,30 +126,30 @@ SVr4, 4.4BSD, SUSv2. .\"O Portable applications should employ .\"O .I sysconf(_SC_PAGESIZE) .\"O instead of this call. -SUSv2 ¤Ç¤Ï +SUSv2 では .BR getpagesize () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡Ö²áµî¤Î°äʪ (LEGACY)¡×¤È¤µ¤ì¤Æ¤ª¤ê¡¢ -POSIX.1-2001 ¤«¤é¤Ï³°¤µ¤ì¤Æ¤¤¤ë¡£ -HP-UX ¤Ë¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¸ºß¤·¤Ê¤¤¡£ -°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÂå¤ï¤ê¤Ë +システムコールは「過去の遺物 (LEGACY)」とされており、 +POSIX.1-2001 からは外されている。 +HP-UX にはこのシステムコールは存在しない。 +移植性が必要なアプリケーションでは、このシステムコールの代わりに .I sysconf(_SC_PAGESIZE) -¤òÍøÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +を利用すべきである。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Whether .\"O .BR getpagesize () .\"O is present as a Linux system call depends on the architecture. .BR getpagesize () -¤¬ Linux ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¤·¤Æ¸ºß¤¹¤ë¤«¤É¤¦¤«¤Ï¡¢¤½¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë -°Í¸¤·¤Æ¤¤¤ë¡£ +が Linux のシステムコールとして存在するかどうかは、そのアーキテクチャに +依存している。 .\"O If it is, it returns the kernel symbol .\"O .BR PAGE_SIZE , .\"O whose value depends on the architecture and machine model. -¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¤·¤Æ¸ºß¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢¥«¡¼¥Í¥ë¥·¥ó¥Ü¥ë¤Î +システムコールとして存在する場合には、カーネルシンボルの .B PAGE_SIZE -¤òÊÖ¤¹¡£ +を返す。 .B PAGE_SIZE -¤ÎÃͤϡ¢¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤È¥Þ¥·¥ó¥â¥Ç¥ë¤Ë°Í¸¤¹¤ë¡£ +の値は、アーキテクチャとマシンモデルに依存する。 .\"O Generally, one uses binaries that are dependent on the architecture but not .\"O on the machine model, in order to have a single binary .\"O distribution per architecture. @@ -159,22 +159,22 @@ HP-UX .\"O at compile time from a header file, .\"O but use an actual system call, at least for those architectures .\"O (like sun4) where this dependency exists. -°ìÈ̤ˡ¢¥Ð¥¤¥Ê¥ê¤Ï¡¢¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤´¤È¤Ë1¤Ä¤Î¥Ð¥¤¥Ê¥êÇÛÉۤǺѤޤ»¤ë¤¿¤á¤Ë¡¢ -¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤Ï°Í¸¤·¤Æ¤¤¤ë¤¬¥Þ¥·¥ó¥â¥Ç¥ë¤Ë¤Ï°Í¸¤·¤Æ¤¤¤Ê¤¤¡£ -¤Ä¤Þ¤ê¡¢¥æ¡¼¥¶¥×¥í¥°¥é¥à¤Ï¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤«¤é +一般に、バイナリは、アーキテクチャごとに1つのバイナリ配布で済ませるために、 +アーキテクチャには依存しているがマシンモデルには依存していない。 +つまり、ユーザプログラムはコンパイル時にヘッダーファイルから .B PAGE_SIZE -¤ò¸«¤Ä¤±¤Æ»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¾¯¤Ê¤¯¤È¤â¡¢¥Þ¥·¥ó¥â¥Ç¥ë¤Ë¤Ä¤¤¤Æ¤â°Í¸À­¤¬Â¸ºß¤¹¤ë (sun4 ¤Î¤è¤¦¤Ê) -¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤ª¤¤¤Æ¤ÏËÜʪ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ë¡£ +を見つけて使用すべきではない。 +少なくとも、マシンモデルについても依存性が存在する (sun4 のような) +アーキテクチャにおいては本物のシステムコールを使用する必要がある。 .\"O Here libc4, libc5, glibc 2.0 fail because their .\"O .BR getpagesize () .\"O returns a statically derived value, and does not use a system call. .\"O Things are OK in glibc 2.1. -¾°¡¢ libc4, libc5, glibc 2.0 ¤Ç¤Ï¡¢ +尚、 libc4, libc5, glibc 2.0 では、 .BR getpagesize () -¤¬¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò»ÈÍѤ»¤º¡¢¸ÇÄê¤ÎÃͤòÊÖ¤¹¤¿¤á¤Ë¡¢¤³¤ÎÊýË¡¤Ï -¼ºÇÔ¤¹¤ë¡£glibc 2.1 ¤Ç¤ÏÂç¾æÉפǤ¢¤ë¡£ +がシステム・コールを使用せず、固定の値を返すために、この方法は +失敗する。glibc 2.1 では大丈夫である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mmap (2), .BR sysconf (3) diff --git a/draft/man2/getpeername.2 b/draft/man2/getpeername.2 index c35f6540..b7b30b3a 100644 --- a/draft/man2/getpeername.2 +++ b/draft/man2/getpeername.2 @@ -43,80 +43,80 @@ .\" by HANATAKA Shinya .\" Updated Tue Nov 26 JST 2002 by Kentaro Shirakata .\" -.\"WORD: connect Àܳ -.\"WORD: peer Áê¼ê -.\"WORD: socket ¥½¥±¥Ã¥È -.\"WORD: buffer ¥Ð¥Ã¥Õ¥¡ -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: argument °ú¤­¿ô +.\"WORD: connect 接続 +.\"WORD: peer 相手 +.\"WORD: socket ソケット +.\"WORD: buffer バッファ +.\"WORD: descriptor ディスクリプタ +.\"WORD: argument 引き数 .\" .TH GETPEERNAME 2 2008-12-03 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getpeername \- get name of connected peer socket -getpeername \- Àܳ¤·¤Æ¤¤¤ëÁê¼ê¥½¥±¥Ã¥È¤Î̾Á°¤ò¼èÆÀ¤¹¤ë +getpeername \- 接続している相手ソケットの名前を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int getpeername(int " sockfd ", struct sockaddr *" addr \ ", socklen_t *" addrlen ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR getpeername () .\"O returns the address of the peer connected to the socket .\"O .IR sockfd , .\"O in the buffer pointed to by .\"O .IR addr . .BR getpeername () -¤Ï¡¢¥½¥±¥Ã¥È(socket) +は、ソケット(socket) .I sockfd -¤ËÀܳ¤·¤Æ¤¤¤ëÁê¼ê¤Î¥¢¥É¥ì¥¹¤ò¡¢ +に接続している相手のアドレスを、 .I addr -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ +が指すバッファに格納して返す。 .\"O The .\"O .I addrlen .\"O argument should be initialized to indicate the amount of space pointed to .\"O by .\"O .IR addr . .I addrlen -°ú¤­¿ô¤Ï¡¢ +引き数は、 .I addr -¤¬»Ø¤·¤Æ¤¤¤ëÎΰè¤Î¥µ¥¤¥º¤Ë½é´ü²½¤·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +が指している領域のサイズに初期化しておかなければならない。 .\"O On return it contains the actual size of the name returned (in bytes). .\"O The name is truncated if the buffer provided is too small. -´Ø¿ô¤¬ÊÖ¤ë»þ¤Ë¤Ï¡¢ +関数が返る時には、 .I addrlen -¤Ë¤Ï¼ÂºÝ¤ËÊÖ¤µ¤ì¤¿Ì¾Á°¤Î¥µ¥¤¥º¤¬ (¥Ð¥¤¥Èñ°Ì¤Ç) ³ÊǼ¤µ¤ì¤ë¡£ -Ä󶡤µ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤¬¾®¤µ¤¹¤®¤¿¾ì¹ç¤Ë¤Ï¡¢Ì¾Á°¤ÏÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ +には実際に返された名前のサイズが (バイト単位で) 格納される。 +提供されたバッファが小さすぎた場合には、名前は切り詰められる。 .\"O The returned address is truncated if the buffer provided is too small; .\"O in this case, .\"O .I addrlen .\"O will return a value greater than was supplied to the call. -ÅϤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤¬¾®¤µ²á¤®¤¿¾ì¹ç¤Ï¡¢ÊÖ¤µ¤ì¤ë¥¢¥É¥ì¥¹¤ÎËöÈø¤¬ÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ -¤³¤Î¾ì¹ç¤Ë¤Ï¡¢ +渡されたバッファが小さ過ぎた場合は、返されるアドレスの末尾が切り詰められる。 +この場合には、 .I addrlen -¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·»þ¤Ë»ØÄꤵ¤ì¤¿Ãͤè¤ê¤âÂ礭¤ÊÃͤ¬³ÊǼ¤µ¤ì¤ë¡£ +には、呼び出し時に指定された値よりも大きな値が格納される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合は 0 が返される。エラーの場合は \-1 が返され、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O The argument .\"O .I sockfd .\"O is not a valid descriptor. -°ú¤­¿ô +引き数 .I sockfd -¤¬Í­¸ú¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なディスクリプタでない。 .TP .B EFAULT .\"O The @@ -124,41 +124,41 @@ getpeername \- .\"O argument points to memory not in a valid part of the .\"O process address space. .I addr -°ú¤­¿ô¤Î»Ø¤·¤Æ¤¤¤ë¥á¥â¥ê¤¬Í­¸ú¤Ê¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Î -°ìÉô¤Ç¤Ê¤¤¡£ +引き数の指しているメモリが有効なプロセスのアドレス空間の +一部でない。 .TP .B EINVAL .\"O .I addrlen .\"O is invalid (e.g., is negative). .I addrlen -¤¬ÉÔÀµ¤Ç¤¢¤ë (Î㤨¤Ð¡¢Éé¤Ç¾ì¹ç¤Ê¤É)¡£ +が不正である (例えば、負で場合など)。 .TP .B ENOBUFS .\"O Insufficient resources were available in the system .\"O to perform the operation. -¤³¤ÎÁàºî¤ò¹Ô¤Ê¤¦¤Î¤Ë½½Ê¬¤Ê»ñ¸»¤¬¥·¥¹¥Æ¥à¤Ë¸ºß¤·¤Ê¤¤¡£ +この操作を行なうのに十分な資源がシステムに存在しない。 .TP .B ENOTCONN .\"O The socket is not connected. -¥½¥±¥Ã¥È¤¬Àܳ¤·¤Æ¤¤¤Ê¤¤¡£ +ソケットが接続していない。 .TP .B ENOTSOCK .\"O The argument .\"O .I sockfd .\"O is a file, not a socket. -°ú¤­¿ô +引き数 .I sockfd -¤¬¥½¥±¥Ã¥È¤Ç¤Ê¤¯¤Æ¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ +がソケットでなくてファイルである。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O SVr4, 4.4BSD (the .\"O .BR getpeername () .\"O function call first appeared in 4.2BSD), POSIX.1-2001. SVr4, 4.4BSD .RB ( getpeername () -´Ø¿ô¤Ï 4.2BSD ¤ÇÅо줷¤¿), POSIX.1-2001. +関数は 4.2BSD で登場した), POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The third argument of .\"O .BR getpeername () .\"O is in reality an @@ -170,20 +170,20 @@ SVr4, 4.4BSD .\"O See also .\"O .BR accept (2). .BR getpeername () -¤Î»°ÈÖÌܤΰú¤­¿ô¤Ï¼ÂºÝ¤Ë¤Ï +の三番目の引き数は実際には .I `int *' -¤Ç¤¢¤ë (4.x BSD, libc4, libc5 ¤Ç¤Ï -¤³¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë)¡£ -POSIX ¤Ç¤Ïäþ;¶ÊÀÞ¤ò·Ð¤Æ¸½ºß¤Î +である (4.x BSD, libc4, libc5 では +このようになっている)。 +POSIX では紆余曲折を経て現在の .I socklen_t -¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢ -glibc ¤Ç¤â +になっており、 +glibc でも .I socklen_t -¤ò»È¤Ã¤Æ¤¤¤ë¡£ +を使っている。 .BR accept (2) -¤â»²¾È¤Î¤³¤È¡£ +も参照のこと。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR accept (2), .BR bind (2), .BR getsockname (2), diff --git a/draft/man2/getpid.2 b/draft/man2/getpid.2 index c3713599..ef298a59 100644 --- a/draft/man2/getpid.2 +++ b/draft/man2/getpid.2 @@ -30,11 +30,11 @@ .\" .TH GETPID 2 2008-09-23 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getpid, getppid \- get process identification -getpid, getppid \- ¥×¥í¥»¥¹ ID ¤òÆÀ¤ë +getpid, getppid \- プロセス ID を得る .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include @@ -43,28 +43,28 @@ getpid, getppid \- .br .B pid_t getppid(void); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR getpid () .\"O returns the process ID of the calling process. .\"O (This is often used by .\"O routines that generate unique temporary filenames.) .BR getpid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤òÊÖ¤¹¡£(¥Æ¥ó¥Ý¥é¥êÍѤΥե¡¥¤¥ë̾¤È¤·¤Æ -¾¤È½Å¤Ê¤é¤Ê¤¤Ì¾Á°¤òÀ¸À®¤¹¤ë¥ë¡¼¥Á¥ó¤Ç¤·¤Ð¤·¤Ð»ÈÍѤµ¤ì¤ë¡£) +は呼び出し元のプロセスのプロセス ID を返す。(テンポラリ用のファイル名として +他と重ならない名前を生成するルーチンでしばしば使用される。) .\"O .BR getppid () .\"O returns the process ID of the parent of the calling process. .BR getppid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¿Æ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤òÊÖ¤¹¡£ +は呼び出し元のプロセスの親プロセスのプロセス ID を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O These functions are always successful. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¾ï¤ËÀ®¸ù¤¹¤ë¡£ +これらの関数は常に成功する。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001, 4.3BSD, SVr4. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Since glibc version 2.3.4, .\"O the glibc wrapper function for .\"O .BR getpid () @@ -72,13 +72,13 @@ POSIX.1-2001, 4.3BSD, SVr4. .\"O so as to avoid additional system calls when a process calls .\"O .BR getpid () .\"O repeatedly. -glibc ¥Ð¡¼¥¸¥ç¥ó 2.3.4 °Ê¹ß¤Ç¤Ï¡¢ -glibc ¤Î +glibc バージョン 2.3.4 以降では、 +glibc の .BR getpid () -¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï PID ¤ò¥­¥ã¥Ã¥·¥å¤¹¤ë¡£ -¤³¤ì¤Ï¡¢¥×¥í¥»¥¹¤¬·«¤êÊÖ¤· +のラッパー関数は PID をキャッシュする。 +これは、プロセスが繰り返し .BR getpid () -¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¤Ë¤½¤ÎÅÔÅÙ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¸Æ¤Ö¤Î¤òÈò¤±¤ë¤¿¤á¤Ç¤¢¤ë¡£ +を呼び出した場合にその都度システムコールを呼ぶのを避けるためである。 .\"O Normally this caching is invisible, .\"O but its correct operation relies on support in the wrapper functions for .\"O .BR fork (2), @@ -91,19 +91,19 @@ glibc .\"O .BR getpid () .\"O in the child will return the wrong value .\"O (to be precise: it will return the PID of the parent process). -Ä̾ï¤Ï¡¢¤³¤Î¥­¥ã¥Ã¥·¥å½èÍý¤¬¸«¤¨¤ë¤³¤È¤Ï¤Ê¤¤¤¬¡¢ -¥­¥ã¥Ã¥·¥å½èÍý¤¬Àµ¤·¤¯Æ¯¤¯¤¿¤á¤Ë¤Ï +通常は、このキャッシュ処理が見えることはないが、 +キャッシュ処理が正しく働くためには .BR fork (2), .BR vfork (2), .BR clone (2) -¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ç¤Î¥µ¥Ý¡¼¥È¤¬É¬ÍפǤ¢¤ë¡£ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¸Æ¤Ó½Ð¤¹ºÝ¤Ë¡¢ -glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤ò·Ðͳ¤»¤º¤Ë +のラッパー関数でのサポートが必要である。 +アプリケーションがこれらのシステムコールを呼び出す際に、 +glibc のラッパー関数を経由せずに .BR syscall (2) -¤ò»È¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢»Ò¥×¥í¥»¥¹¤Ç +を使った場合には、子プロセスで .BR getpid () -¤ò¸Æ¤Ó½Ð¤¹¤È´Ö°ã¤Ã¤¿Ãͤ¬Ê֤뤳¤È¤À¤í¤¦ -(Àµ³Î¤Ë¤¤¤¦¤È¡¢¿Æ¥×¥í¥»¥¹¤Î PID ¤¬ÊÖ¤µ¤ì¤ë)¡£ +を呼び出すと間違った値が返ることだろう +(正確にいうと、親プロセスの PID が返される)。 .\" The following program demonstrates this "feature": .\" .\" #define _GNU_SOURCE @@ -137,13 +137,13 @@ glibc .\"O .BR clone (2) .\"O via the glibc wrapper function. .BR clone (2) -¤ò glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô·Ðͳ¤Çµ¯Æ°¤·¤¿ºÝ¤Ë¤â +を glibc のラッパー関数経由で起動した際にも .BR getpid () -¤¬´Ö°ã¤Ã¤¿ÃͤòÊÖ¤¹¾ì¹ç¤¬¤¢¤ê¡¢¤³¤ì¤Ë´Ø¤¹¤ëµÄÏÀ¤Ï +が間違った値を返す場合があり、これに関する議論は .BR clone (2) -¤â»²¾È¤·¤Æ¤Û¤·¤¤¡£ +も参照してほしい。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR clone (2), .BR fork (2), .BR kill (2), diff --git a/draft/man2/getpriority.2 b/draft/man2/getpriority.2 index b9884005..7f57f411 100644 --- a/draft/man2/getpriority.2 +++ b/draft/man2/getpriority.2 @@ -54,23 +54,23 @@ .\" Updated 2005-10-07, Akihiro MOTOKI .\" Updated 2008-08-04, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: scheduling ¥¹¥±¥¸¥å¡¼¥ê¥ó¥° -.\"WORD: piority Í¥ÀèÅÙ -.\"WORD: call ¥³¡¼¥ë +.\"WORD: scheduling スケジューリング +.\"WORD: piority 優先度 +.\"WORD: call コール .\"WORD: user-ID UID -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: user ¥æ¡¼¥¶¡¼ -.\"WORD: super user ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ -.\"WORD: effective user-ID ¼Â¸úUID -.\"WORD: real user-ID ¼ÂUID +.\"WORD: process プロセス +.\"WORD: user ユーザー +.\"WORD: super user スーパー・ユーザー +.\"WORD: effective user-ID 実効UID +.\"WORD: real user-ID 実UID .\" .TH GETPRIORITY 2 2008-05-29 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getpriority, setpriority \- get/set program scheduling priority -getpriority, setpriority \- ¥×¥í¥°¥é¥à¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ÎÍ¥ÀèÅÙ¤ò¼èÆÀ/ÀßÄꤹ¤ë +getpriority, setpriority \- プログラムのスケジューリングの優先度を取得/設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include @@ -79,7 +79,7 @@ getpriority, setpriority \- .br .BI "int setpriority(int " which ", int " who ", int " prio ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The scheduling priority of the process, process group, or user, as .\"O indicated by .\"O .I which @@ -90,17 +90,17 @@ getpriority, setpriority \- .\"O call and set with the .\"O .BR setpriority () .\"O call. -¥·¥¹¥Æ¥à¥³¡¼¥ë +システムコール .BR getpriority () -¤ä +や .BR setpriority () -¤Ï¡¢ +は、 .I which -¤È +と .I who -¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¡¢¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¡¢¥æ¡¼¥¶¡¼¤Î -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Í¥ÀèÅÙ (scheduling priority) ¤Î -¼èÆÀ¤äÀßÄê¤ò¤½¤ì¤¾¤ì¹Ô¤¦¡£ +で指定されたプロセス、プロセス・グループ、ユーザーの +スケジューリング優先度 (scheduling priority) の +取得や設定をそれぞれ行う。 .\"O The value .\"O .I which @@ -121,37 +121,37 @@ getpriority, setpriority \- .\"O and a user ID for .\"O .BR PRIO_USER ). .I which -¤ÎÃÍ¤Ï +の値は .BR PRIO_PROCESS , .BR PRIO_PGRP , .BR PRIO_USER , -¤Î¤É¤ì¤«°ì¤Ä¤Ç¡¢ +のどれか一つで、 .I who -¤Ï +は .I which -¤Ë±þ¤¸¤Æ²ò¼á¤µ¤ì¤ë +に応じて解釈される .RB ( PRIO_PROCESS -¤À¤È¥×¥í¥»¥¹¼±Ê̻ҡ¢ +だとプロセス識別子、 .B PRIO_PGRP -¤À¤È¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¼±Ê̻ҡ¢ +だとプロセス・グループ識別子、 .B PRIO_USER -¤À¤È UID (¥æ¡¼¥¶ID) ¤È²ò¼á¤µ¤ì¤ë)¡£ +だと UID (ユーザID) と解釈される)。 .\"O A zero value for .\"O .I who .\"O denotes (respectively) the calling process, the process group of the .\"O calling process, or the real user ID of the calling process. .I who -¤¬¥¼¥í¤Ê¤é¤Ð¡¢(¤½¤ì¤¾¤ì)¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¡¢ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¡¢ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼ÂUID ¤ò°ÕÌ£¤¹¤ë¡£ +がゼロならば、(それぞれ)呼び出したプロセス、 +呼び出したプロセスのプロセス・グループ、 +呼び出したプロセスの実UID を意味する。 .\"O .I Prio .\"O is a value in the range \-20 to 19 (but see the Notes below). .\"O The default priority is 0; .\"O lower priorities cause more favorable scheduling. .I prio -¤Ï \-20 ¤«¤é 19 ¤ÎÈϰϤÎÃÍ¤Ç (⤷°Ê²¼¤ÎÃí°Õ¤Î¹à¤ò»²¾È¤Î¤³¤È)¡¢ -¥Ç¥Õ¥©¥ë¥È¤ÎÍ¥ÀèÅÙ¤Ï 0 ¤Ç¤¢¤ë; -¾®¤µ¤Ê¿ô»ú¤Û¤É¡¢Í­Íø¤Ê¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤È¤Ê¤ë¡£ +は \-20 から 19 の範囲の値で (但し以下の注意の項を参照のこと)、 +デフォルトの優先度は 0 である; +小さな数字ほど、有利なスケジューリングとなる。 .\"O The .\"O .BR getpriority () @@ -163,12 +163,12 @@ getpriority, setpriority \- .\"O to the specified value. .\"O Only the superuser may lower priorities. .BR getpriority () -¥³¡¼¥ë¤Ï»ØÄꤷ¤¿¥×¥í¥»¥¹¤ÎÃæ¤ÎºÇ¤â¹â¤¤Í¥ÀèÅÙ (¿ôÃÍŪ¤Ë¤ÏºÇ¾®¤ÎÃÍ) ¤òÊÖ¤¹¡£ +コールは指定したプロセスの中の最も高い優先度 (数値的には最小の値) を返す。 .BR setpriority () -¥³¡¼¥ë¤Ï»ØÄꤷ¤¿¥×¥í¥»¥¹Á´¤Æ¤ÎÍ¥ÀèÅÙ¤ò»ØÄꤷ¤¿ÃͤËÀßÄꤹ¤ë¡£ -Í¥ÀèÅÙ¤òº£¤è¤ê¾®¤µ¤¤ÃͤËÀßÄê¤Ç¤­¤ë¤Î¤Ï¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼¤À¤±¤Ç¤¢¤ë¡£ +コールは指定したプロセス全ての優先度を指定した値に設定する。 +優先度を今より小さい値に設定できるのはスーパー・ユーザーだけである。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O Since .\"O .BR getpriority () .\"O can legitimately return the value \-1, it is necessary @@ -182,16 +182,16 @@ getpriority, setpriority \- .\"O call returns 0 if there is no error, or .\"O \-1 if there is. .BR getpriority () -¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤â \-1 ¤ÎÃͤòÊÖ¤¹²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç¡¢ -¸Æ¤Ó½Ð¤·¤ÎÁ°¤Ë³°ÉôÊÑ¿ô¤Î +は成功した場合にも \-1 の値を返す可能性があるので、 +呼び出しの前に外部変数の .I errno -¤ò¥¯¥ê¥¢¤·¡¢¸Æ¤Ó½Ð¤·¤Î¸å¤ËÊÖ¤êÃͤΠ\-1 ¤¬ÀµÅö¤ÊÃͤ« -¥¨¥é¡¼¤«¤òȽÊ̤¹¤ëɬÍפ¬¤¢¤ë¡£ +をクリアし、呼び出しの後に返り値の \-1 が正当な値か +エラーかを判別する必要がある。 .BR setpriority () -¥³¡¼¥ë¤Ï¥¨¥é¡¼¤¬¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤·¡¢¥¨¥é¡¼¤¬¤¢¤ì¤Ð \-1 ¤òÊÖ¤¹¡£ +コールはエラーがなければ 0 を返し、エラーがあれば \-1 を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O .I which @@ -201,11 +201,11 @@ getpriority, setpriority \- .\"O or .\"O .BR PRIO_USER . .I which -¤¬ +が .BR PRIO_PROCESS , .BR PRIO_PGRP , .B PRIO_USER -¤Î¤¤¤º¤ì¤Ç¤â¤Ê¤¤¡£ +のいずれでもない。 .TP .B ESRCH .\"O No process was located using the @@ -214,16 +214,16 @@ getpriority, setpriority \- .\"O .I who .\"O values specified. .I which -¤È +と .I who -¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£ +で指定されたプロセスが存在しない。 .PP .\"O In addition to the errors indicated above, .\"O .BR setpriority () .\"O may fail if: -¾åµ­¤Î¤â¤Î¤Ë²Ã¤¨¤Æ +上記のものに加えて .BR setpriority () -¤Ç¤Ï°Ê²¼¤Î¥¨¥é¡¼¤¬¤¢¤ë: +では以下のエラーがある: .TP .B EACCES .\"O The caller attempted to lower a process priority, but did not @@ -236,17 +236,17 @@ getpriority, setpriority \- .\"O soft resource limit of the target process; see .\"O .BR getrlimit (2) .\"O for details. -¸Æ¤Ó½Ð¤·¸µ¤¬¥×¥í¥»¥¹¤ÎÍ¥ÀèÅÙ¤ò²¼¤²¤è¤¦¤È¤·¤¿¤¬¡¢É¬ÍפÊÆø¢¤ò -»ý¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿ (Linux ¤Î¾ì¹ç¡¢ +呼び出し元がプロセスの優先度を下げようとしたが、必要な特権を +持っていなかった (Linux の場合、 .B CAP_SYS_NICE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¤Ê¤«¤Ã¤¿)¡£ -Linux 2.6.12 °Ê¹ß¤Ç¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤¬¡¢¤¢¤ë¥×¥í¥»¥¹¤ÎÍ¥ÀèÅÙ¤ò¡¢ -Êѹ¹ÂÐ¾Ý¤Î¥×¥í¥»¥¹¤Î¥ê¥½¡¼¥¹ +ケーパビリティがなかった)。 +Linux 2.6.12 以降では、呼び出し元が、あるプロセスの優先度を、 +変更対象のプロセスのリソース .B RLIMIT_NICE -¤Î¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤ÎÈϰϳ°¤ËÀßÄꤷ¤è¤¦¤È¤·¤¿¾ì¹ç¤Ë¤Î¤ß¡¢ -¤³¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¡£¾ÜºÙ¤Ï +のソフト・リミットの範囲外に設定しようとした場合にのみ、 +このエラーが発生する。詳細は .BR getrlimit (2) -¤ò»²¾È¡£ +を参照。 .TP .B EPERM .\"O A process was located, but its effective user ID did not match @@ -255,30 +255,30 @@ Linux 2.6.12 .\"O .B CAP_SYS_NICE .\"O capability). .\"O But see NOTES below. -¥×¥í¥»¥¹¤Ï¸«¤Ä¤«¤Ã¤¿¤¬¡¢¤½¤Î¥×¥í¥»¥¹¤Î¼Â¸ú (effective) UID ¤¬ -¸Æ¤Ó½Ð¤·¸µ¤Î¼Â¸úUID ¤Ë¤â¼Â (real) UID ¤Ë¤â°ìÃפ»¤º¡¢ -¸Æ¤Ó½Ð¤·¸µ¤¬Æø¢¤â»ý¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿ (Linux ¤Î¾ì¹ç¡¢ +プロセスは見つかったが、そのプロセスの実効 (effective) UID が +呼び出し元の実効UID にも実 (real) UID にも一致せず、 +呼び出し元が特権も持っていなかった (Linux の場合、 .B CAP_SYS_NICE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¤Ê¤«¤Ã¤¿)¡£ -°Ê²¼¤Î¡ÖÃí°Õ¡×¤â»²¾È¤Î¤³¤È¡£ +ケーパビリティがなかった)。 +以下の「注意」も参照のこと。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O SVr4, 4.4BSD (these function calls first appeared in 4.2BSD), .\"O POSIX.1-2001. -SVr4, 4.4BSD (¤³¤ì¤é¤Î´Ø¿ô¤Ï 4.2BSD ¤ÇºÇ½é¤ËÅо줷¤¿), +SVr4, 4.4BSD (これらの関数は 4.2BSD で最初に登場した), POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O A child created by .\"O .BR fork (2) .\"O inherits its parent's nice value. .\"O The nice value is preserved across .\"O .BR execve (2). .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢ -¿Æ¥×¥í¥»¥¹¤Î nice Ãͤò·Ñ¾µ¤¹¤ë¡£ +で作成された子プロセスは、 +親プロセスの nice 値を継承する。 .BR execve (2) -¤ÎÁ°¸å¤Ç nice ÃͤÏÊݸ¤µ¤ì¤ë¡£ +の前後で nice 値は保存される。 .\"O The degree to which their relative nice value affects the scheduling of .\"O processes varies across UNIX systems, and, @@ -290,41 +290,41 @@ POSIX.1-2001. .\"O higher priority load on the system, .\"O and makes high nice values (\-20) deliver most of the CPU to applications .\"O that require it (e.g., some audio applications). -ÁêÂÐŪ¤Ê nice Ãͤΰ㤤¤¬¥×¥í¥»¥¹´Ö¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤Ë¤É¤ÎÄøÅٱƶÁ¤òÍ¿¤¨¤ë¤« -¤Ï¡¢UNIX ¥·¥¹¥Æ¥à´Ö¤Ç°Û¤Ê¤ê¡¢Linux ¤Ç¤Ï¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤ê°Û¤Ê¤ë¡£ -Linux ¤Ï¡¢¥«¡¼¥Í¥ë 2.6.23 °Ê¹ß¤Ç¡¢nice ÃͤÎÁêÂÐŪ¤Ê°ã¤¤¤¬¡¢Èó¾ï¤Ë¶¯¤¤±Æ¶Á¤ò -Í¿¤¨¤ë¥¢¥ë¥´¥ê¥º¥à¤òºÎÍѤ·¤¿¡£¤³¤Î¥¢¥ë¥´¥ê¥º¥à¤Ç¤Ï¡¢ -¾¤ËÍ¥ÀèÅ٤ι⤤¤â¤Î¤¬¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë»þ¤Ë¤Ï¡¢ -Èó¾ï¤ËÄ㤤 nice ÃÍ (+19) ¤Ç¤Ï¥×¥í¥»¥¹¤ËËÜÅö¤Ë¤Û¤È¤ó¤É CPU ¤¬³ä¤êÅö¤Æ¤é¤ì¤Ê¤¤¡£ -¤Þ¤¿¡¢¹â¤¤ nice ÃÍ (\-20) ¤Ç¤Ï CPU ¤òɬÍפȤ¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó (Î㤨¤Ð -¥ª¡¼¥Ç¥£¥ª¡¦¥¢¥×¥ê¥±¡¼¥·¥ç¥ó) ¤Ë CPU ¤Î¤Û¤È¤ó¤É¤¬³ä¤êÅö¤Æ¤é¤ì¤ë¡£ +相対的な nice 値の違いがプロセス間のスケジューリングにどの程度影響を与えるか +は、UNIX システム間で異なり、Linux ではカーネルバージョンにより異なる。 +Linux は、カーネル 2.6.23 以降で、nice 値の相対的な違いが、非常に強い影響を +与えるアルゴリズムを採用した。このアルゴリズムでは、 +他に優先度の高いものがシステムに存在する時には、 +非常に低い nice 値 (+19) ではプロセスに本当にほとんど CPU が割り当てられない。 +また、高い nice 値 (\-20) では CPU を必要とするアプリケーション (例えば +オーディオ・アプリケーション) に CPU のほとんどが割り当てられる。 .\"O The details on the condition for .\"O .B EPERM .\"O depend on the system. .B EPERM -¤¬È¯À¸¤¹¤ë¾ò·ï¤Î¾ÜºÙ¤Ï¥·¥¹¥Æ¥à¤Ë°Í¸¤¹¤ë¡£ +が発生する条件の詳細はシステムに依存する。 .\"O The above description is what POSIX.1-2001 says, and seems to be followed on .\"O all System V-like systems. -¾åµ­¤ÎÀâÌÀ¤Ï POSIX.1-2001 ¤Î¤â¤Î¤Ç¤¢¤ê¡¢Á´¤Æ¤Î System V É÷¥·¥¹¥Æ¥à¤Ï -¤³¤ì¤Ë½¾¤Ã¤Æ¤¤¤ë¤è¤¦¤Ç¤¢¤ë¡£ +上記の説明は POSIX.1-2001 のものであり、全ての System V 風システムは +これに従っているようである。 .\"O Linux kernels before 2.6.12 required the real or .\"O effective user ID of the caller to match .\"O the real user of the process \fIwho\fP (instead of its effective user ID). -2.6.12 ¤è¤êÁ°¤Î Linux ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¼Â UID ¤Þ¤¿¤Ï -¼Â¸ú UID ¤¬¥×¥í¥»¥¹ \fIwho\fP ¤Î (¼Â¸ú UID ¤Ç¤Ê¤¯) -¼Â UID ¤Ë°ìÃפ¹¤ëɬÍפ¬¤¢¤ë¡£ +2.6.12 より前の Linux カーネルでは、呼び出し元の実 UID または +実効 UID がプロセス \fIwho\fP の (実効 UID でなく) +実 UID に一致する必要がある。 .\"O Linux 2.6.12 and later require .\"O the effective user ID of the caller to match .\"O the real or effective user ID of the process \fIwho\fP. .\"O All BSD-like systems (SunOS 4.1.3, Ultrix 4.2, .\"O 4.3BSD, FreeBSD 4.3, OpenBSD-2.5, ...) behave in the same .\"O manner as Linux 2.6.12 and later. -Linux 2.6.12 °Ê¹ß¤Ç¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¼Â¹Ô UID ¤¬¥×¥í¥»¥¹ \fIwho\fP -¤Î¼Â UID ¤«¼Â¸ú UID ¤Î¤¤¤º¤ì¤«¤È°ìÃפ¹¤ëɬÍפ¬¤¢¤ë¡£ -Á´¤Æ¤Î BSD É÷¥·¥¹¥Æ¥à (SunOS 4.1.3, Ultrix 4.2, -4.3BSD, FreeBSD 4.3, OpenBSD-2.5Åù) ¤Ï¡¢ -Linux 2.6.12 °Ê¹ß¤ÈƱ¤¸Æ°ºî¤ò¤¹¤ë¡£ +Linux 2.6.12 以降では、呼び出し元の実行 UID がプロセス \fIwho\fP +の実 UID か実効 UID のいずれかと一致する必要がある。 +全ての BSD 風システム (SunOS 4.1.3, Ultrix 4.2, +4.3BSD, FreeBSD 4.3, OpenBSD-2.5等) は、 +Linux 2.6.12 以降と同じ動作をする。 .LP .\"O The actual priority range varies between kernel versions. .\"O Linux before 1.3.36 had \-infinity..15. @@ -341,23 +341,23 @@ Linux 2.6.12 .\"O translations between the user-land and kernel representations .\"O of the nice value according to the formula .\"O .IR "unice\ =\ 20\ \-\ knice" . -¼ÂºÝ¤ÎÍ¥ÀèÅÙ¤ÎÃͤÎÈϰϤϥ«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¡£ -1.3.36 ¤è¤êÁ°¤Î Linux ¤Ç¤Ï¡¢Í¥ÀèÅÙ¤ÎÈϰϤÏÉé¤Î̵¸ÂÂç ¡Á 15 ¤Ç¤¢¤ë¡£ -1.3.43 °Ê¹ß¤Î Linux ¤Ç¤Ï¡¢Í¥ÀèÅÙ¤ÎÈÏ°Ï¤Ï \-20 ¡Á 19 ¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ëÆâÉô¤Ç¤Ï¡¢nice ÃÍ¤Ï¼ÂºÝ¤Ë¤Ï 40 ¡Á 1 ¤ÎÈϰϤò»È¤Ã¤Æ -ɽ¸½¤µ¤ì¤Æ¤ª¤ê (Éé¤ÎÃͤϥ¨¥é¡¼¥³¡¼¥É¤È¤Ê¤ë¤¿¤á)¡¢¤³¤Á¤é¤ÎÃͤ¬ -¥·¥¹¥Æ¥à¥³¡¼¥ë +実際の優先度の値の範囲はカーネルのバージョンによって異なる。 +1.3.36 より前の Linux では、優先度の範囲は負の無限大 〜 15 である。 +1.3.43 以降の Linux では、優先度の範囲は \-20 〜 19 である。 +カーネル内部では、nice 値は実際には 40 〜 1 の範囲を使って +表現されており (負の値はエラーコードとなるため)、こちらの値が +システムコール .BR setpriority () -¤È +と .BR getpriority () -¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ -glibc ¤Î¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ë¤ª¤¤¤Æ¡¢nice ÃͤΠ-¥æ¡¼¥¶Îΰè (user-land) ¤È¥«¡¼¥Í¥ëɽ¸½¤Î´Ö¤ÎÊÑ´¹¤¬¹Ô¤ï¤ì¤ë¡£ -ÊÑ´¹¼°¤Ï°Ê²¼¤ÎÄ̤ê: +で使用されている。 +glibc のこれらのシステムコールのラッパー関数において、nice 値の +ユーザ領域 (user-land) とカーネル表現の間の変換が行われる。 +変換式は以下の通り: .I "unice\ =\ 20\ \-\ knice" .LP .\"O On some systems, the range of nice values is \-20..20. -¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢nice ÃͤÎÈÏ°Ï¤Ï \20 ¡Á 20 ¤Ç¤¢¤ë¡£ +いくつかのシステムでは、nice 値の範囲は \20 〜 20 である。 .LP .\"O Including .\"O .I @@ -370,20 +370,20 @@ glibc .\"O .I struct timeval .\"O defined in .\"O .IR .) -¸½ºß¤Ç¤Ï +現在では .I -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ëɬÍפϤʤ¤¤¬¡¢¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ì¤Ð°Ü¿¢À­¤ò¹â¤á¤ë¤³¤È¤¬¤Ç¤­¤ë -(¼ÂºÝ¤Ë¤Ï +をインクルードする必要はないが、インクルードすれば移植性を高めることができる +(実際には .I -¤Ç +で .I rusage -¹½Â¤ÂΤ¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢¤½¤Î¥Õ¥£¡¼¥ë¥É¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë +構造体が定義されているが、そのフィールドで使用されている .I struct timeval -·¿¤Ï +型は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ +で定義されている)。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR nice (1), .BR renice (1), .BR fork (2), @@ -391,5 +391,5 @@ glibc .sp .\"O .I Documentation/scheduler/sched-nice-design.txt .\"O in the kernel source tree (since Linux 2.6.23). -(Linux 2.6.23 °Ê¹ß¤Î) ¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹¥Ä¥ê¡¼Æâ¤Î +(Linux 2.6.23 以降の) カーネルのソースツリー内の .I Documentation/scheduler/sched-nice-design.txt diff --git a/draft/man2/getresuid.2 b/draft/man2/getresuid.2 index abf1f2c0..0a2d32df 100644 --- a/draft/man2/getresuid.2 +++ b/draft/man2/getresuid.2 @@ -31,22 +31,22 @@ .\" by HANATAKA Shinya .\" Updated Sun Oct 12 JST 2003 by Kentaro Shirakata .\" -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: real user ID ¼Â¥æ¡¼¥¶¡¼ID -.\"WORD: saved user ID Êݸ¥æ¡¼¥¶¡¼ID -.\"WORD: effective group ID ¼Â¸ú¥°¥ë¡¼¥×ID -.\"WORD: real group ID ¼Â¥°¥ë¡¼¥×ID -.\"WORD: saved group ID Êݸ¥°¥ë¡¼¥×ID +.\"WORD: effective user ID 実効ユーザーID +.\"WORD: real user ID 実ユーザーID +.\"WORD: saved user ID 保存ユーザーID +.\"WORD: effective group ID 実効グループID +.\"WORD: real group ID 実グループID +.\"WORD: saved group ID 保存グループID .\" .TH GETRESUID 2 2007-12-28 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getresuid, getresgid \- get real, effective and saved user/group ID -getresuid, getresgid \- ¼Â¡¢¼Â¸ú¡¢Êݸ¡¢¥æ¡¼¥¶¡¼ ID / ¥°¥ë¡¼¥× ID ¤ò¼èÆÀ¤¹¤ë +getresuid, getresgid \- 実、実効、保存、ユーザー ID / グループ ID を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp @@ -54,7 +54,7 @@ getresuid, getresgid \- .br .BI "int getresgid(gid_t *" rgid ", gid_t *" egid ", gid_t *" sgid ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR getresuid () .\"O returns the real UID, the effective UID, and the saved set-user-ID .\"O of the calling process, in the arguments @@ -66,54 +66,54 @@ getresuid, getresgid \- .\"O .BR getresgid () .\"O performs the analogous task for the process's group IDs. .BR getresuid () -¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â (real) UID¡¢¼Â¸ú (effective) UID¡¢ -Êݸ (saved) set-user-ID +は、呼び出したプロセスの実 (real) UID、実効 (effective) UID、 +保存 (saved) set-user-ID .RB ( getresgid -¤Î¾ì¹ç¤Ï¥°¥ë¡¼¥× ID) ¤ò¡¢ -¤½¤ì¤¾¤ì°ú¤­¿ô +の場合はグループ ID) を、 +それぞれ引き数 .IR ruid , .IR euid , .I suid -¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ +に格納して返す。 .BR getresgid () -¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥°¥ë¡¼¥× ID ¤Ë¤Ä¤¤¤ÆƱÍͤνèÍý¤ò¹Ô¤¦¡£ +は、呼び出したプロセスのグループ ID について同様の処理を行う。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +成功した場合はゼロを返す。エラーの場合は \-1 を返し、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O One of the arguments specified an address outside the calling program's .\"O address space. -»ØÄꤷ¤¿°ú¤­¿ô¤Î¤É¤ì¤«¤¬¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥°¥é¥à¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤Î -¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +指定した引き数のどれかが、呼び出したプログラムのアドレス空間の外の +アドレスである。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These system calls appeared on Linux starting with kernel 2.1.44. -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë 2.1.44 ¤«¤é Linux ¤ËÅо줷¤¿¡£ +これらのシステムコールはカーネル 2.1.44 から Linux に登場した。 .\"O The prototypes are given by glibc since version 2.3.2 .\"O provided .\"O .B _GNU_SOURCE .\"O is defined. -¥×¥í¥È¥¿¥¤¥×Àë¸À¤Ï 2.3.2 °Ê¹ß¤Î glibc ¤Ç¤Ï +プロトタイプ宣言は 2.3.2 以降の glibc では .B _GNU_SOURCE -¤òÄêµÁ¤·¤Æ¤¤¤ë¤ÈÆÀ¤é¤ì¤ë¡£ +を定義していると得られる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These calls are nonstandard; .\"O they also appear on HP-UX and some of the BSDs. -¤³¤ì¤é¤Î¥³¡¼¥ë¤ÏÈóɸ½à¤Ç¤¢¤ë¡£ -HP-UX ¤ä BSD ·Ï¤Î¤¤¤¯¤Ä¤«¤Ë¤â¸ºß¤¹¤ë¡£ +これらのコールは非標準である。 +HP-UX や BSD 系のいくつかにも存在する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getuid (2), .BR setresuid (2), .BR setreuid (2), diff --git a/draft/man2/getrlimit.2 b/draft/man2/getrlimit.2 index e7910b06..5e38fa6f 100644 --- a/draft/man2/getrlimit.2 +++ b/draft/man2/getrlimit.2 @@ -75,16 +75,16 @@ .\" Updated 2008-08-08, Akihiro MOTOKI, LDP v3.05 .\" Updated 2008-10-13, Akihiro MOTOKI, LDP v3.11 .\" -.\"WORD: resource »ñ¸» -.\"WORD: limit À©¸Â +.\"WORD: resource 資源 +.\"WORD: limit 制限 .\" .TH GETRLIMIT 2 2010-09-26 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getrlimit, setrlimit \- get/set resource limits -getrlimit, setrlimit \- »ñ¸»¤ÎÀ©¸Â¤ò¼èÆÀ/ÀßÄꤹ¤ë +getrlimit, setrlimit \- 資源の制限を取得/設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include @@ -93,15 +93,15 @@ getrlimit, setrlimit \- .br .BI "int setrlimit(int " resource ", const struct rlimit *" rlim ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR getrlimit () .\"O and .\"O .BR setrlimit () .\"O get and set resource limits respectively. .BR getrlimit () -¤È +と .BR setrlimit () -¤Ï¤½¤ì¤¾¤ì»ñ¸» (resource) ¤ÎÀ©¸Â (limit) ¤ÎÀßÄê¤È¼èÆÀ¤ò¹Ô¤¦¡£ +はそれぞれ資源 (resource) の制限 (limit) の設定と取得を行う。 .\"O Each resource has an associated soft and hard limit, as defined by the .\"O .I rlimit .\"O structure (the @@ -110,47 +110,47 @@ getrlimit, setrlimit \- .\"O .BR getrlimit () .\"O and .\"O .BR setrlimit ()): -³Æ¥ê¥½¡¼¥¹¤Ë¤Ï¡¢¤½¤ì¤ËÂбþ¤¹¤ë¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤È¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È¤¬¤¢¤ë¡£ -¥ê¥ß¥Ã¥È¤Ï +各リソースには、それに対応するソフト・リミットとハード・リミットがある。 +リミットは .RB ( getrlimit () -¤È +と .BR setrlimit () -¤Î +の .I rlim -°ú¤­¿ô¤Ç¤¢¤ë) +引き数である) .I rlimit -¹½Â¤ÂΤÇÄêµÁ¤µ¤ì¤ë: +構造体で定義される: .PP .in +4n .nf struct rlimit { .\"O rlim_t rlim_cur; /* Soft limit */ .\"O rlim_t rlim_max; /* Hard limit (ceiling for rlim_cur) */ - rlim_t rlim_cur; /* ¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È */ - rlim_t rlim_max; /* ¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È - (rlim_cur ¤è¤ê¾®¤µ¤¯¤Ê¤¤) */ + rlim_t rlim_cur; /* ソフト・リミット */ + rlim_t rlim_max; /* ハード・リミット + (rlim_cur より小さくない) */ }; .fi .in .\"O The soft limit is the value that the kernel enforces for the .\"O corresponding resource. -¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤Ï¡¢¥«¡¼¥Í¥ë¤¬Âбþ¤¹¤ë¥ê¥½¡¼¥¹¤ËÂФ·¤Æ²Ý¤¹À©¸ÂÃͤǤ¢¤ë¡£ +ソフト・リミットは、カーネルが対応するリソースに対して課す制限値である。 .\"O The hard limit acts as a ceiling for the soft limit: -¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È¤Ï¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤Î¾å¸Â¤È¤·¤ÆƯ¤¯¡£ +ハード・リミットはソフト・リミットの上限として働く。 .\"O an unprivileged process may only set its soft limit to a value in the .\"O range from 0 up to the hard limit, and (irreversibly) lower its hard limit. -Æø¢¤ò»ý¤¿¤Ê¤¤¥×¥í¥»¥¹¤Ï¡¢¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤ÎÃͤò -0 ¤«¤é¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È¤ÎÈϰϤËÀßÄꤹ¤ë¤³¤È¤È¡¢ -¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È¤ò²¼¤²¤ë¤³¤È¤Î¤ß¤¬¤Ç¤­¤ë -(°ìÅÙ²¼¤²¤¿¥Ï¡¼¥É¥ê¥ß¥Ã¥È¤Ï¾å¤²¤é¤ì¤Ê¤¤)¡£ +特権を持たないプロセスは、ソフト・リミットの値を +0 からハード・リミットの範囲に設定することと、 +ハード・リミットを下げることのみができる +(一度下げたハードリミットは上げられない)。 .\"O A privileged process (under Linux: one with the .\"O .B CAP_SYS_RESOURCE .\"O capability) may make arbitrary changes to either limit value. -Æø¢¥×¥í¥»¥¹ (Linux ¤Ç¤Ï +特権プロセス (Linux では .B CAP_SYS_RESOURCE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤Ä¥×¥í¥»¥¹) ¤Ï -¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤È¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È¤ò¼«Í³¤ËÊѹ¹¤Ç¤­¤ë¡£ +ケーパビリティ (capability) を持つプロセス) は +ソフト・リミットとハード・リミットを自由に変更できる。 .PP .\"O The value .\"O .B RLIM_INFINITY @@ -158,25 +158,25 @@ struct rlimit { .\"O .BR getrlimit () .\"O and in the structure passed to .\"O .BR setrlimit ()). -ÃÍ +値 .B RLIM_INFINITY -¤Ï¥ê¥½¡¼¥¹¤ËÀ©¸Â¤¬¤Ê¤¤¤³¤È¤òɽ¤¹ -(¤³¤ÎÃÍ¤Ï +はリソースに制限がないことを表す +(この値は .BR getrlimit () -¤¬ÊÖ¤¹¹½Â¤ÂÎ¤È +が返す構造体と .BR setrlimit () -¤ËÅϤ¹¹½Â¤ÂΤÎξÊý¤Ç»ÈÍѤµ¤ì¤ë)¡£ +に渡す構造体の両方で使用される)。 .PP .\"O .I resource .\"O must be one of: .I resource -¤Ï¼¡¤Î¤¤¤º¤ì¤« 1 ¤Ä¤Ç¤¢¤ë¡£ +は次のいずれか 1 つである。 .TP .B RLIMIT_AS .\"O The maximum size of the process's virtual memory (address space) in bytes. -¥×¥í¥»¥¹¤Î²¾ÁÛ¥á¥â¥ê (¥¢¥É¥ì¥¹¶õ´Ö) ¤ÎºÇÂ祵¥¤¥º (¥Ð¥¤¥Èñ°Ì)¡£ +プロセスの仮想メモリ (アドレス空間) の最大サイズ (バイト単位)。 .\"O .\" since 2.0.27 / 2.1.12 -.\" 2.0.27 / 2.1.12 °Ê¹ß¡£ +.\" 2.0.27 / 2.1.12 以降。 .\"O This limit affects calls to .\"O .BR brk (2), .\"O .BR mmap (2) @@ -191,24 +191,24 @@ struct rlimit { .\"O that kills the process if no alternate stack .\"O has been made available via .\"O .BR sigaltstack (2)). -¤³¤ÎÀ©¸Â¤Ï +この制限は .BR brk (2), .BR mmap (2), .BR mremap (2) -¤Î¸Æ¤Ó½Ð¤·¤Ë±Æ¶Á¤·¡¢¤³¤ÎÀ©¸Â¤òĶ¤¨¤¿¾ì¹ç¤Ï -¥¨¥é¡¼ +の呼び出しに影響し、この制限を超えた場合は +エラー .B ENOMEM -¤Ç¼ºÇÔ¤¹¤ë¡£ -¤Þ¤¿¼«Æ°Åª¤Ê¥¹¥¿¥Ã¥¯³ÈÄ¥¤Ë¤â¼ºÇÔ¤¹¤ë -(¤µ¤é¤Ë +で失敗する。 +また自動的なスタック拡張にも失敗する +(さらに .BR sigaltstack (2) -¤ò»È¤Ã¤¿ÂåÂØ¥¹¥¿¥Ã¥¯¤òÍøÍѲÄǽ¤Ë¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ +を使った代替スタックを利用可能にしていなかった場合には、 .B SIGSEGV -¤òÀ¸À®¤·¤Æ¤½¤Î¥×¥í¥»¥¹¤ò kill ¤¹¤ë)¡£ +を生成してそのプロセスを kill する)。 .\"O Since the value is a \fIlong\fP, on machines with a 32-bit \fIlong\fP .\"O either this limit is at most 2 GiB, or this resource is unlimited. -¤³¤ÎÃÍ¤Ï \fIlong\fP ·¿¤Ê¤Î¤Ç¡¢32 ¥Ó¥Ã¥È¤Î \fIlong\fP ·¿¤ò»ý¤Ä¥Þ¥·¥ó¤Ç¤Ï¡¢ -¤³¤ÎÀ©¸Â¤ÏºÇÂç¤Ç 2 GiB ¤Ë¤Ê¤ë¤«¡¢¤³¤Î»ñ¸»¤¬ÌµÀ©¸Â¤Ë¤Ê¤ë¡£ +この値は \fIlong\fP 型なので、32 ビットの \fIlong\fP 型を持つマシンでは、 +この制限は最大で 2 GiB になるか、この資源が無制限になる。 .TP .B RLIMIT_CORE .\"O Maximum size of @@ -216,59 +216,59 @@ struct rlimit { .\"O file. .\"O When 0 no core dump files are created. .I core -¥Õ¥¡¥¤¥ë¤ÎºÇÂ祵¥¤¥º¡£ -0 ¤Î¾ì¹ç¡¢core ¥Õ¥¡¥¤¥ë¤ÏÀ¸À®¤µ¤ì¤Ê¤¤¡£ +ファイルの最大サイズ。 +0 の場合、core ファイルは生成されない。 .\"O When nonzero, larger dumps are truncated to this size. -0 °Ê³°¤Î¾ì¹ç¡¢¤³¤Î¥µ¥¤¥º¤è¤êÂ礭¤¤¥À¥ó¥×¤ÏÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ +0 以外の場合、このサイズより大きいダンプは切り詰められる。 .TP .B RLIMIT_CPU .\"O CPU time limit in seconds. -CPU »þ´Ö¤Î¾å¸Â (Éÿô)¡£ +CPU 時間の上限 (秒数)。 .\"O When the process reaches the soft limit, it is sent a .\"O .B SIGXCPU .\"O signal. -¥×¥í¥»¥¹¤¬¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤Ë㤷¤¿¾ì¹ç¤Ë¡¢ +プロセスがソフト・リミットに達した場合に、 .B SIGXCPU -¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +シグナルを送る。 .\"O The default action for this signal is to terminate the process. -¤³¤Î¥·¥°¥Ê¥ë¤ËÂФ¹¤ë¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¡¢¥×¥í¥»¥¹¤Î½ªÎ»¤Ç¤¢¤ë¡£ +このシグナルに対するデフォルトの動作は、プロセスの終了である。 .\"O However, the signal can be caught, and the handler can return control to .\"O the main program. -¤¿¤À¤·¥·¥°¥Ê¥ë¤ò¥­¥ã¥Ã¥Á¤·¤Æ¡¢¥Ï¥ó¥É¥é¤¬¥á¥¤¥ó¥×¥í¥°¥é¥à¤Ë -À©¸æ¤òÊÖ¤¹¤³¤È¤â¤Ç¤­¤ë¡£ +ただしシグナルをキャッチして、ハンドラがメインプログラムに +制御を返すこともできる。 .\"O If the process continues to consume CPU time, it will be sent .\"O .B SIGXCPU .\"O once per second until the hard limit is reached, at which time .\"O it is sent .\"O .BR SIGKILL . -¥×¥í¥»¥¹¤¬ CPU »þ´Ö¤ò»È¤¤Â³¤±¤¿¾ì¹ç¤Ï¡¢ -¥Ï¡¼¥É¥ê¥ß¥Ã¥È¤Ë㤹¤ë¤Þ¤Ç 1 ÉÃËè¤Ë¥×¥í¥»¥¹¤Ë +プロセスが CPU 時間を使い続けた場合は、 +ハードリミットに達するまで 1 秒毎にプロセスに .B SIGXCPU -¤òÁ÷¤ê¡¢ -¥Ï¡¼¥É¥ê¥ß¥Ã¥È¤Ë㤹¤ë¤È +を送り、 +ハードリミットに達すると .B SIGKILL -¤òÁ÷¤ë¡£ +を送る。 .\"O (This latter point describes Linux 2.2 through 2.6 behavior. -¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤òĶ²á¤·¤¿¤È¤­¤ÎÆ°ºî¤Ï¡¢ -Linux 2.2 ¤«¤é 2.6 ¤Î¤â¤Î¤Ç¤¢¤ë¡£ +ソフト・リミットを超過したときの動作は、 +Linux 2.2 から 2.6 のものである。 .\"O Implementations vary in how they treat processes which continue to .\"O consume CPU time after reaching the soft limit. -¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤òĶ¤¨¤Æ CPU »þ´Ö¤ò»È¤¤Â³¤±¤ë¥×¥í¥»¥¹¤Î -°·¤¤Êý¤Ë¤Ä¤¤¤Æ¤Î¼ÂÁõ¤ÏÊѲ½¤·¤Æ¤­¤Æ¤¤¤ë¡£ +ソフト・リミットを超えて CPU 時間を使い続けるプロセスの +扱い方についての実装は変化してきている。 .\"O Portable applications that need to catch this signal should .\"O perform an orderly termination upon first receipt of .\"O .BR SIGXCPU .) -¤³¤Î¥·¥°¥Ê¥ë¤ò¥­¥ã¥Ã¥Á¤¹¤ëɬÍפΤ¢¤ë -°Ü¿¢À­¤ò¹Í¤¨¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ -ºÇ½é¤Ë +このシグナルをキャッチする必要のある +移植性を考えたアプリケーションでは、 +最初に .B SIGXCPU -¤ò¼õ¤±¼è¤Ã¤¿»þÅÀ¤ÇÀµ¤·¤¯½ªÎ»¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +を受け取った時点で正しく終了すべきである。 .TP .B RLIMIT_DATA .\"O The maximum size of the process's data segment (initialized data, .\"O uninitialized data, and heap). -¥×¥í¥»¥¹¤Î¥Ç¡¼¥¿¥»¥°¥á¥ó¥È -(½é´ü²½¤µ¤ì¤¿¥Ç¡¼¥¿¡¦½é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ç¡¼¥¿¡¦¥Ò¡¼¥×) ¤ÎºÇÂçÃÍ¡£ +プロセスのデータセグメント +(初期化されたデータ・初期化されていないデータ・ヒープ) の最大値。 .\"O This limit affects calls to .\"O .BR brk (2) .\"O and @@ -276,63 +276,63 @@ Linux 2.2 .\"O which fail with the error .\"O .B ENOMEM .\"O upon encountering the soft limit of this resource. -¤³¤Î¥ê¥ß¥Ã¥È¤Ï +このリミットは .BR brk (2) -¤È +と .BR sbrk (2) -¤Î¸Æ¤Ó½Ð¤·¤Ë±Æ¶Á¤¹¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¤³¤Î¥ê¥½¡¼¥¹¤Î¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤Ë㤹¤ë¤È¡¢ -¥¨¥é¡¼ +の呼び出しに影響する。 +これらの関数は、このリソースのソフト・リミットに達すると、 +エラー .B ENOMEM -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .TP .B RLIMIT_FSIZE .\"O The maximum size of files that the process may create. -¥×¥í¥»¥¹¤¬ºîÀ®¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤ÎºÇÂçÃÍ¡£ +プロセスが作成できるファイルサイズの最大値。 .\"O Attempts to extend a file beyond this limit result in delivery of a .\"O .B SIGXFSZ .\"O signal. -¤³¤Î¥µ¥¤¥º¤òĶ¤¨¤Æ¥Õ¥¡¥¤¥ë¤ò³ÈÄ¥¤¹¤ë¤È¡¢ +このサイズを超えてファイルを拡張すると、 .B SIGXFSZ -¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +シグナルを送る。 .\"O By default, this signal terminates a process, but a process can .\"O catch this signal instead, in which case the relevant system call (e.g., .\"O .BR write (2), .\"O .BR truncate (2)) .\"O fails with the error .\"O .BR EFBIG . -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥·¥°¥Ê¥ë¤Ï¥×¥í¥»¥¹¤ò½ªÎ»¤¹¤ë¡£ -¥×¥í¥»¥¹¤ò¥­¥ã¥Ã¥Á¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¤¬¡¢ -´ØÏ¢¤¹¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë +デフォルトでは、このシグナルはプロセスを終了する。 +プロセスをキャッチすることもできるが、 +関連するシステムコール .RB ( write (2), .BR truncate (2) -¤Ê¤É) ¤Ï¥¨¥é¡¼ +など) はエラー .B EFBIG -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .TP .\"O .BR RLIMIT_LOCKS " (Early Linux 2.4 only)" -.BR RLIMIT_LOCKS " (½é´ü¤Î Linux 2.4 ¤Î¤ß)" +.BR RLIMIT_LOCKS " (初期の Linux 2.4 のみ)" .\"O .\" to be precise: Linux 2.4.0-test9; no longer in 2.4.25 / 2.5.65 -.\" Àµ³Î¤Ë¤Ï Linux 2.4.0-test9 ¤Î¤ß¡£2.4.25 / 2.5.65 ¤Ç¤Ï¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤ë¡£ +.\" 正確には Linux 2.4.0-test9 のみ。2.4.25 / 2.5.65 ではなくなっている。 .\"O A limit on the combined number of .\"O .BR flock (2) .\"O locks and .\"O .BR fcntl (2) .\"O leases that this process may establish. -¤³¤Î¥×¥í¥»¥¹¤¬¼Â¹Ô¤Ç¤­¤ë +このプロセスが実行できる .BR flock (2) -¥í¥Ã¥¯¿ô¤È +ロック数と .BR fcntl (2) -¥ê¡¼¥¹¿ô¤Î¹ç·×ÃͤòÀ©¸Â¤¹¤ë¡£ +リース数の合計値を制限する。 .TP .B RLIMIT_MEMLOCK .\"O The maximum number of bytes of memory that may be locked .\"O into RAM. -RAM Æâ¤Ë¥í¥Ã¥¯¤Ç¤­¤ë¥á¥â¥ê¤ÎºÇÂç¥Ð¥¤¥È¿ô¡£ +RAM 内にロックできるメモリの最大バイト数。 .\"O In effect this limit is rounded down to the nearest multiple .\"O of the system page size. -¼ÂºÝ¤Ë¤Ï¡¢¤³¤ÎÀ©¸Â¤Ï¥·¥¹¥Æ¥à¥Ú¡¼¥¸¥µ¥¤¥º¤ÎºÇ¤â¶á¤¤ÇÜ¿ô¤Ë -ÀÚ¤ê¼Î¤Æ¤Æ´Ý¤á¤é¤ì¤ë¡£ +実際には、この制限はシステムページサイズの最も近い倍数に +切り捨てて丸められる。 .\"O This limit affects .\"O .BR mlock (2) .\"O and @@ -341,13 +341,13 @@ RAM .\"O .BR mmap (2) .\"O .B MAP_LOCKED .\"O operation. -¤³¤ÎÀ©¸Â¤Ï +この制限は .BR mlock (2), .BR mlockall (2), .BR mmap (2) -¤Î +の .B MAP_LOCKED -Áàºî¤Ë±Æ¶Á¤¹¤ë¡£ +操作に影響する。 .\"O Since Linux 2.6.9 it also affects the .\"O .BR shmctl (2) .\"O .B SHM_LOCK @@ -355,14 +355,14 @@ RAM .\"O shared memory segments (see .\"O .BR shmget (2)) .\"O that may be locked by the real user ID of the calling process. -Linux 2.6.9 °Ê¹ß¤Ç¤Ï +Linux 2.6.9 以降では .BR shmctl (2) .B SHM_LOCK -Áàºî¤Ë¤â±Æ¶Á¤¹¤ë¡£ -¤³¤ÎÁàºî¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â (real) ¥æ¡¼¥¶¡¼ ID ¤Ë¥í¥Ã¥¯¤µ¤ì¤ë -¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È +操作にも影響する。 +この操作は呼び出し元プロセスの実 (real) ユーザー ID にロックされる +共有メモリセグメント .RB ( shmget (2) -¤ò»²¾È) ¤Î¹ç·×¥Ð¥¤¥È¿ô¤ÎºÇÂçÃͤòÀßÄꤹ¤ë¡£ +を参照) の合計バイト数の最大値を設定する。 .\"O The .\"O .BR shmctl (2) .\"O .B SHM_LOCK @@ -377,42 +377,42 @@ Linux 2.6.9 .\"O two categories. .BR shmctl (2) .B SHM_LOCK -¤Ë¤è¤ë¥í¥Ã¥¯¤Ï¡¢ +によるロックは、 .BR mlock (2), .BR mlockall (2), .BR mmap (2) -¤Î +の .B MAP_LOCKED -¤Ë¤è¤Ã¤Æ³ÎΩ¤µ¤ì¤ë¥×¥í¥»¥¹Ëè¤Î¥á¥â¥ê¥í¥Ã¥¯¤È¤Ïʬ¤±¤Æ¿ô¤¨¤ë¡£ -1 ¤Ä¤Î¥×¥í¥»¥¹¤Ï¤³¤ÎÀ©¸Â¤Þ¤Ç¤Î¥Ð¥¤¥È¤ò¥í¥Ã¥¯¤Ç¤­¤ë¡£ -¤³¤ÎÀ©¸Â¤Ë¤Ï 2 ¤Ä¤Î¼ïÎब¤¢¤ë¡£ +によって確立されるプロセス毎のメモリロックとは分けて数える。 +1 つのプロセスはこの制限までのバイトをロックできる。 +この制限には 2 つの種類がある。 .\"O In Linux kernels before 2.6.9, this limit controlled the amount of .\"O memory that could be locked by a privileged process. -2.6.9 ¤è¤êÁ°¤Î Linux ¥«¡¼¥Í¥ë ¤Ç¤Ï¡¢ -¤³¤ÎÀ©¸Â¤ÏÆø¢¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¥í¥Ã¥¯¤µ¤ì¤ë¥á¥â¥ê¤Î¹ç·×¤òÀ©¸æ¤·¤Æ¤¤¤¿¡£ +2.6.9 より前の Linux カーネル では、 +この制限は特権プロセスによってロックされるメモリの合計を制御していた。 .\"O Since Linux 2.6.9, no limits are placed on the amount of memory .\"O that a privileged process may lock, and this limit instead governs .\"O the amount of memory that an unprivileged process may lock. -Linux 2.6.9 °Ê¹ß¤Ç¤Ï¡¢Æø¢¥×¥í¥»¥¹¤¬¥í¥Ã¥¯¤¹¤ë¥á¥â¥ê¤Î¹ç·×¤ËÀ©¸Â¤Ï¤Ê¤¯¡¢ -Âå¤ï¤ê¤Ë¤³¤ÎÀ©¸Â¤ÏÈóÆø¢¥×¥í¥»¥¹¤¬¥í¥Ã¥¯¤¹¤ë¥á¥â¥ê¤Î¹ç·×¤Ë -ŬÍѤµ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ +Linux 2.6.9 以降では、特権プロセスがロックするメモリの合計に制限はなく、 +代わりにこの制限は非特権プロセスがロックするメモリの合計に +適用されるようになった。 .TP .\"O .BR RLIMIT_MSGQUEUE " (Since Linux 2.6.8)" -.BR RLIMIT_MSGQUEUE " (Linux 2.6.8 °Ê¹ß)" +.BR RLIMIT_MSGQUEUE " (Linux 2.6.8 以降)" .\"O Specifies the limit on the number of bytes that can be allocated .\"O for POSIX message queues for the real user ID of the calling process. .\"O This limit is enforced for .\"O .BR mq_open (3). -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶¡¼ ID ¤ËÂФ·¤Æ¡¢ -POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î¤¿¤á¤Ë³ÎÊݤǤ­¤ë¥Ð¥¤¥È¿ô¤ÎÀ©¸Â¤ò»ØÄꤹ¤ë¡£ -¤³¤ÎÀ©¸Â¤Ï +呼び出し元プロセスの実ユーザー ID に対して、 +POSIX メッセージキューのために確保できるバイト数の制限を指定する。 +この制限は .BR mq_open (3) -¤ËÂФ·¤ÆŬÍѤµ¤ì¤ë¡£ +に対して適用される。 .\"O Each message queue that the user creates counts (until it is removed) .\"O against this limit according to the formula: -¥æ¡¼¥¶¤¬ºîÀ®¤·¤¿³Æ¡¹¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î¥Ð¥¤¥È¿ô¤Ï -°Ê²¼¤Î¼°¤Ë¤è¤ê·×»»¤µ¤ì¡¢(¤½¤Î¥­¥å¡¼¤¬ºï½ü¤µ¤ì¤ë¤Þ¤Ç¤Î´Ö) -¤³¤ÎÀ©¸Â¤Î·×»»Âоݤ˴ޤá¤é¤ì¤ë¡£ +ユーザが作成した各々のメッセージキューのバイト数は +以下の式により計算され、(そのキューが削除されるまでの間) +この制限の計算対象に含められる。 .nf bytes = attr.mq_maxmsg * sizeof(struct msg_msg *) + @@ -425,13 +425,13 @@ POSIX .\"O .I mq_attr .\"O structure specified as the fourth argument to .\"O .BR mq_open (3). -¤³¤³¤Ç +ここで .I attr -¤Ï +は .I mq_attr -¹½Â¤ÂΤǤ¢¤ê¡¢ +構造体であり、 .BR mq_open (3) -¤ÎÂè 4 °ú¤­¿ô¤È¤·¤Æ»ØÄꤵ¤ì¤ë¡£ +の第 4 引き数として指定される。 .\"O The first addend in the formula, which includes .\"O .I "sizeof(struct msg_msg *)" @@ -439,13 +439,13 @@ POSIX .\"O create an unlimited number of zero-length messages (such messages .\"O nevertheless each consume some system memory for bookkeeping overhead). .I "sizeof(struct msg_msg *)" -(Linux/i386 ¤Ç¤Ï 4 ¥Ð¥¤¥È) ¤ò´Þ¤àºÇ½é¤Î²Ã¿ô¤Ï¡¢ -¥æ¡¼¥¶¡¼¤¬Ä¹¤µ 0 ¤Î¥á¥Ã¥»¡¼¥¸¤ò̵À©¸Â¤Ëºî¤ì¤Ê¤¤¤³¤ÈÊݾڤ·¤Æ¤¤¤ë -(¤³¤Î¤è¤¦¤Ê¥á¥Ã¥»¡¼¥¸¤Ç¤¢¤Ã¤Æ¤â¡¢ -µ­Ï¿¤Î¤¿¤á¤Î¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤Ç¥·¥¹¥Æ¥à¥á¥â¥ê¤ò¾ÃÈñ¤¹¤ë)¡£ +(Linux/i386 では 4 バイト) を含む最初の加数は、 +ユーザーが長さ 0 のメッセージを無制限に作れないこと保証している +(このようなメッセージであっても、 +記録のためのオーバーヘッドでシステムメモリを消費する)。 .TP .\"O .BR RLIMIT_NICE " (since Linux 2.6.12, but see BUGS below)" -.BR RLIMIT_NICE " (Linux 2.6.12 °Ê¹ß, ²¼µ­¤Î¡Ö¥Ð¥°¡×¤ÎÀá¤â»²¾È)" +.BR RLIMIT_NICE " (Linux 2.6.12 以降, 下記の「バグ」の節も参照)" .\"O Specifies a ceiling to which the process's nice value can be raised using .\"O .BR setpriority (2) .\"O or @@ -458,23 +458,23 @@ POSIX .\"O .B RLIM_INFINITY .\"O typically is the same as \-1.) .BR setpriority (2) -¤ä +や .BR nice (2) -¤ò»È¤Ã¤Æ°ú¤­¾å¤²¤é¤ì¤ë¥×¥í¥»¥¹¤Î nice Ãͤξå¸Â¤ò»ØÄꤹ¤ë¡£ -nice Ãͤμºݤξå¸Â¤Ï +を使って引き上げられるプロセスの nice 値の上限を指定する。 +nice 値の実際の上限は .I "20\ \-\ rlim_cur" -¤Ç·×»»¤µ¤ì¤ë -(¤³¤Î¤è¤¦¤ÊÊѤʾõ¶·¤Ï¡¢¥ê¥½¡¼¥¹À©¸ÂÃͤȤ·¤ÆÉé¤Î¿ô¤ò»ØÄê¤Ç¤­¤Ê¤¤¤¿¤á -ȯÀ¸¤¹¤ë¡£Ä̾Éé¤ÎÃͤÏÆÃÊ̤ʰÕÌ£¤ò»ý¤Ã¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£ -Î㤨¤Ð¡¢Ä̾ï¤Ï +で計算される +(このような変な状況は、リソース制限値として負の数を指定できないため +発生する。通常、負の値は特別な意味を持っているからである。 +例えば、通常は .B RLIM_INFINITY -¤ÎÃÍ¤Ï \-1 ¤Ç¤¢¤ë)¡£ +の値は \-1 である)。 .TP .B RLIMIT_NOFILE .\"O Specifies a value one greater than the maximum file descriptor number .\"O that can be opened by this process. -¤³¤Î¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¿ô¤ÎºÇÂçÃͤè¤ê -1 Â礭¤¤Ãͤò»ØÄꤹ¤ë¡£ +このプロセスがオープンできるファイルディスクリプタ数の最大値より +1 大きい値を指定する。 .\"O Attempts .\"O .RB ( open (2), .\"O .BR pipe (2), @@ -488,12 +488,12 @@ nice .RB ( open (2), .BR pipe (2), .BR dup (2) -¤Ê¤É¤Ë¤è¤ê) ¤³¤Î¾å¸Â¤òĶ¤¨¤è¤¦¤È¤·¤¿¾ì¹ç¡¢¥¨¥é¡¼ +などにより) この上限を超えようとした場合、エラー .B EMFILE -¤¬È¯À¸¤¹¤ë -(Îò»ËŪ¤Ë¡¢BSD ¤Ç¤Ï¤³¤Î¾å¸Â¤Ï +が発生する +(歴史的に、BSD ではこの上限は .B RLIMIT_OFILE -¤È¤¤¤¦Ì¾Á°¤È¤Ê¤Ã¤Æ¤¤¤ë)¡£ +という名前となっている)。 .TP .B RLIMIT_NPROC .\"O The maximum number of processes (or, more precisely on Linux, threads) @@ -502,50 +502,50 @@ nice .\"O .BR fork (2) .\"O fails with the error .\"O .BR EAGAIN . -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶¡¼ ID ¤ÇºîÀ®¤Ç¤­¤ëºÇÂç¥×¥í¥»¥¹¿ô -(¤è¤êÀµ³Î¤Ë¤Ï Linux ¤Ç¤Ï¥¹¥ì¥Ã¥É¿ô)¡£ -¤³¤Î¾å¸Â¤Ë㤹¤ë¤È¡¢ +呼び出したプロセスの実ユーザー ID で作成できる最大プロセス数 +(より正確には Linux ではスレッド数)。 +この上限に達すると、 .BR fork (2) -¤Ï¥¨¥é¡¼ +はエラー .B EAGAIN -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .TP .B RLIMIT_RSS .\"O Specifies the limit (in pages) of the process's resident set .\"O (the number of virtual pages resident in RAM). -¥×¥í¥»¥¹¤Î resident set (RAM ¾å¤Ë¸ºß¤¹¤ë²¾ÁÛ¥Ú¡¼¥¸¤Î¿ô) ¤Î -¾å¸Â¤ò (¥Ú¡¼¥¸¿ô¤Ç) »ØÄꤹ¤ë¡£ +プロセスの resident set (RAM 上に存在する仮想ページの数) の +上限を (ページ数で) 指定する。 .\"O This limit only has effect in Linux 2.4.x, x < 30, and there only .\"O affects calls to .\"O .BR madvise (2) .\"O specifying .\"O .BR MADV_WILLNEED . -¤³¤ÎÀ©¸Â¤Ï 2.4.30 ¤è¤êÁ°¤Ç¤·¤«±Æ¶Á¤¬¤Ê¤¯¡¢ +この制限は 2.4.30 より前でしか影響がなく、 .BR madvise (2) -¤Ë +に .B MADV_WILLNEED -¤ò»ØÄꤷ¤¿´Ø¿ô¥³¡¼¥ë¤Ë¤·¤«±Æ¶Á¤·¤Ê¤¤¡£ +を指定した関数コールにしか影響しない。 .\"O .\" As at kernel 2.6.12, this limit still does nothing in 2.6 though .\"O .\" talk of making it do something has surfaced from time to time in LKML -.\" ¥«¡¼¥Í¥ë 2.6.12 ¤Î»þÅÀ¤Ç¤Ï¡¢ -.\" ¤³¤ÎÀ©¸Â¤Ï¥«¡¼¥Í¥ë 2.6 ¤Ç¤Ï¤Þ¤À²¿¤â¹Ô¤ï¤Ê¤¤¡£ -.\" ¤·¤«¤·¡¢²¿¤ò¤µ¤»¤ë¤«¤Ë¤Ä¤¤¤Æ¤Ï LKML ¤Ç»þ¡¹ÏÃÂê¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +.\" カーネル 2.6.12 の時点では、 +.\" この制限はカーネル 2.6 ではまだ何も行わない。 +.\" しかし、何をさせるかについては LKML で時々話題になっている。 .\" -- MTK, Jul 05 .TP .\"O .BR RLIMIT_RTPRIO " (Since Linux 2.6.12, but see BUGS)" -.BR RLIMIT_RTPRIO " (Linux 2.6.12 °Ê¹ß, ¥Ð¥°¤ÎÀá¤â»²¾È)" +.BR RLIMIT_RTPRIO " (Linux 2.6.12 以降, バグの節も参照)" .\"O Specifies a ceiling on the real-time priority that may be set for .\"O this process using .\"O .BR sched_setscheduler (2) .\"O and .\"O .BR sched_setparam (2). .BR sched_setscheduler (2) -¤ä +や .BR sched_setparam (2) -¤ò»È¤Ã¤ÆÀßÄê¤Ç¤­¤ë¡¢¤½¤Î¥×¥í¥»¥¹¤Î¥ê¥¢¥ë¥¿¥¤¥àÍ¥ÀèÅ٤ξå¸Â¤ò»ØÄꤹ¤ë¡£ +を使って設定できる、そのプロセスのリアルタイム優先度の上限を指定する。 .TP .\"O .BR RLIMIT_RTTIME " (Since Linux 2.6.25)" -.BR RLIMIT_RTTIME " (Linux 2.6.25 °Ê¹ß)" +.BR RLIMIT_RTTIME " (Linux 2.6.25 以降)" .\"O Specifies a limit (in microseconds) .\"O on the amount of CPU time that a process scheduled .\"O under a real-time scheduling policy may consume without making a blocking @@ -556,16 +556,16 @@ nice .\"O The CPU time count is not reset if the process continues trying to .\"O use the CPU but is preempted, its time slice expires, or it calls .\"O .BR sched_yield (2). -¥ê¥¢¥ë¥¿¥¤¥à¡¦¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Êý¿Ë¤Ç¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤ë¥×¥í¥»¥¹¤¬ -¥Ö¥í¥Ã¥­¥ó¥°·¿¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¸Æ¤Ó½Ð¤µ¤º¤Ë¾ÃÈñ¤¹¤ë¤³¤È¤Î¤Ç¤­¤ë -CPU »þ´Ö¤Î¹ç·×¤Ë¤Ä¤¤¤Æ¤Î¾å¸Â¤ò (¥Þ¥¤¥¯¥íÉÃñ°Ì¤Ç) »ØÄꤹ¤ë¡£ -¤³¤Î¾å¸Â¤ÎÌÜŪ¤Î¤¿¤á¡¢¥×¥í¥»¥¹¤¬¥Ö¥í¥Ã¥­¥ó¥°·¿¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò -¸Æ¤Ó½Ð¤¹Å٤ˡ¢¾ÃÈñ¤µ¤ì¤¿ CPU »þ´Ö¤Î¥«¥¦¥ó¥È¤Ï 0 ¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë¡£ -¥×¥í¥»¥¹¤¬ CPU ¤ò»È¤¤Â³¤±¤è¤¦¤È¤·¤¿¤¬Â¾¤Î¥×¥í¥»¥¹¤ËÃÖ¤­´¹¤¨¤é¤ì¤¿ -(preempted) ¾ì¹ç¤ä¡¢¤½¤Î¥×¥í¥»¥¹¤Î¥¿¥¤¥à¥¹¥é¥¤¥¹¤¬Ëþλ¤·¤¿¾ì¹ç¡¢ -¤½¤Î¥×¥í¥»¥¹¤¬ +リアルタイム・スケジューリング方針でスケジューリングされるプロセスが +ブロッキング型のシステムコールを呼び出さずに消費することのできる +CPU 時間の合計についての上限を (マイクロ秒単位で) 指定する。 +この上限の目的のため、プロセスがブロッキング型のシステムコールを +呼び出す度に、消費された CPU 時間のカウントは 0 にリセットされる。 +プロセスが CPU を使い続けようとしたが他のプロセスに置き換えられた +(preempted) 場合や、そのプロセスのタイムスライスが満了した場合、 +そのプロセスが .BR sched_yield (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¤Ï¡¢CPU »þ´Ö¤Î¥«¥¦¥ó¥È¤Ï¥ê¥»¥Ã¥È¤µ¤ì¤Ê¤¤¡£ +を呼び出した場合は、CPU 時間のカウントはリセットされない。 .\"O Upon reaching the soft limit, the process is sent a .\"O .B SIGXCPU @@ -577,90 +577,90 @@ CPU .\"O at which point the process is sent a .\"O .B SIGKILL .\"O signal. -¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤Ë㤹¤ë¤È¡¢¤½¤Î¥×¥í¥»¥¹¤Ë +ソフト・リミットに達すると、そのプロセスに .B SIGXCPU -¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£¤½¤Î¥×¥í¥»¥¹¤¬¤³¤Î¥·¥°¥Ê¥ë¤òÊ᪤¹¤ë¤« -̵»ë¤·¤Æ¡¢CPU »þ´Ö¤ò¾ÃÈñ¤·Â³¤±¤¿¾ì¹ç¤Ë¤Ï¡¢ -¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È¤Ë㤹¤ë¤Þ¤Ç 1 ÉÃ¤Ë 1 ²ó +シグナルが送られる。そのプロセスがこのシグナルを捕捉するか +無視して、CPU 時間を消費し続けた場合には、 +ハード・リミットに達するまで 1 秒に 1 回 .B SIGXCPU -¤¬À¸À®¤µ¤ì³¤±¤ë¤³¤È¤Ë¤Ê¤ë¡£ -¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È¤Ë㤷¤¿»þÅÀ¤Ç¡¢¤½¤Î¥×¥í¥»¥¹¤Ë¤Ï +が生成され続けることになる。 +ハード・リミットに達した時点で、そのプロセスには .B SIGKILL -¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£ +シグナルが送られる。 .\"O The intended use of this limit is to stop a runaway .\"O real-time process from locking up the system. -¤³¤Î¾å¸Â¤ò°Õ¿ÞŪ¤Ë»ÈÍѤ¹¤ë¤Î¤Ï¡¢Ë½Áö¤·¤¿¥ê¥¢¥ë¥¿¥¤¥à¡¦¥×¥í¥»¥¹¤ò -Ää»ß¤·¤Æ¡¢¥·¥¹¥Æ¥à¤¬Æ°¤«¤Ê¤¯¤Ê¤ë¤Î¤òÈò¤±¤ë¾ì¹ç¤Ç¤¢¤ë¡£ +この上限を意図的に使用するのは、暴走したリアルタイム・プロセスを +停止して、システムが動かなくなるのを避ける場合である。 .TP .\"O .BR RLIMIT_SIGPENDING " (Since Linux 2.6.8)" -.BR RLIMIT_SIGPENDING " (Linux 2.6.8 °Ê¹ß)" +.BR RLIMIT_SIGPENDING " (Linux 2.6.8 以降)" .\"O Specifies the limit on the number of signals .\"O that may be queued for the real user ID of the calling process. -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶¡¼ ID ¤ËÂФ·¤Æ -¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤ë¥·¥°¥Ê¥ë¤Î¿ô¤ÎÀ©¸Â¤ò»ØÄꤹ¤ë¡£ +呼び出し元プロセスの実ユーザー ID に対して +キューに入れられるシグナルの数の制限を指定する。 .\"O Both standard and real-time signals are counted for the purpose of .\"O checking this limit. -¤³¤ÎÀ©¸Â¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤¿¤á¡¢ -ɸ½à¥·¥°¥Ê¥ë¤È¥ê¥¢¥ë¥¿¥¤¥à¡¦¥·¥°¥Ê¥ë¤ÎξÊý¤¬¥«¥¦¥ó¥È¤µ¤ì¤ë¡£ +この制限をチェックするため、 +標準シグナルとリアルタイム・シグナルの両方がカウントされる。 .\"O However, the limit is only enforced for .\"O .BR sigqueue (2); .\"O it is always possible to use .\"O .BR kill (2) .\"O to queue one instance of any of the signals that are not already .\"O queued to the process. -¤·¤«¤·¡¢¤³¤ÎÀ©¸Â¤Ï +しかし、この制限は .BR sigqueue (2) -¤ËÂФ·¤Æ¤·¤«¶¯À©¤µ¤ì¤º¡¢ +に対してしか強制されず、 .BR kill (2) -»È¤¦¤³¤È¤Ç¡¢¤½¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ¤Þ¤À¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤Æ¤¤¤Ê¤¤ -¥·¥°¥Ê¥ë¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤ò¥­¥å¡¼¤ËÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +使うことで、そのプロセスに対してまだキューに入れられていない +シグナルのインスタンスをキューに入れることができる。 .\"O .\" This replaces the /proc/sys/kernel/rtsig-max system-wide limit .\"O .\" that was present in kernels <= 2.6.7. MTK Dec 04 -.\" ¤³¤ì¤Ï¥«¡¼¥Í¥ë 2.6.7 °ÊÁ°¤Ë¸ºß¤¹¤ë¥·¥¹¥Æ¥àÁ´ÂΤÎÀ©¸Â -.\" /proc/sys/kernel/rtsig-max ¤òÃÖ¤­´¹¤¨¤ë¡£MTK Dec 04 +.\" これはカーネル 2.6.7 以前に存在するシステム全体の制限 +.\" /proc/sys/kernel/rtsig-max を置き換える。MTK Dec 04 .TP .B RLIMIT_STACK .\"O The maximum size of the process stack, in bytes. -¥×¥í¥»¥¹¡¦¥¹¥¿¥Ã¥¯¤ÎºÇÂ祵¥¤¥º¤ò¥Ð¥¤¥Èñ°Ì¤Ç»ØÄꤹ¤ë¡£ +プロセス・スタックの最大サイズをバイト単位で指定する。 .\"O Upon reaching this limit, a .\"O .B SIGSEGV .\"O signal is generated. -¤³¤Î¾å¸Â¤Ë㤹¤ë¤È¡¢ +この上限に達すると、 .B SIGSEGV -¥·¥°¥Ê¥ë¤¬À¸À®¤µ¤ì¤ë¡£ +シグナルが生成される。 .\"O To handle this signal, a process must employ an alternate signal stack .\"O .RB ( sigaltstack (2)). -¤³¤Î¥·¥°¥Ê¥ë¤ò°·¤¦¤¿¤á¤Ë¤Ï¡¢ -¥×¥í¥»¥¹¤ÏÂå¤ê¤Î¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯ +このシグナルを扱うためには、 +プロセスは代りのシグナルスタック .RB ( sigaltstack (2)) -¤ò»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を使用しなければならない。 .\"O Since Linux 2.6.23, .\"O this limit also determines the amount of space used for the process's .\"O command-line arguments and environment variables; for details, see .\"O .BR execve (2). -Linux 2.6.23 °Ê¹ß¤Ç¤Ï¡¢¤³¤ÎÀ©¸Â¤Ï¥×¥í¥»¥¹¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤È´Ä¶­ÊÑ¿ô -¤Ë»ÈÍѤµ¤ì¤ë¶õ´Ö¤Î¹ç·×¥µ¥¤¥º¤Î¾å¸Â¤Î·èÄê¤Ë¤â»ÈÍѤµ¤ì¤ë¡£¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï +Linux 2.6.23 以降では、この制限はプロセスのコマンドライン引き数と環境変数 +に使用される空間の合計サイズの上限の決定にも使用される。詳細については .BR execve (2) -¤ò»²¾È¡£ +を参照。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合は 0 が返される。エラーの場合は \-1 が返され、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬ÀßÄꤵ¤ì¤ë¡£ +に適切な値が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O .I rlim .\"O points outside the accessible address space. .I rlim -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がアクセス可能なアドレス空間の外を指している。 .TP .B EINVAL .\"O .I resource @@ -671,14 +671,14 @@ Linux 2.6.23 .\"O was greater than .\"O .IR rlim\->rlim_max . .I resource -¤¬Í­¸ú¤Ç¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢ +が有効でない。 +または、 .BR setrlimit () -¤Ç¡¢ +で、 .I rlim\->rlim_cur -¤¬ +が .I rlim\->rlim_max -¤è¤ê¤âÂ礭¤«¤Ã¤¿¡£ +よりも大きかった。 .TP .B EPERM .\"O An unprivileged process tried to use @@ -687,14 +687,14 @@ Linux 2.6.23 .\"O increase a soft or hard limit above the current hard limit; the .\"O .B CAP_SYS_RESOURCE .\"O capability is required to do this. -Æø¢¤Î¤Ê¤¤¥×¥í¥»¥¹¤¬ +特権のないプロセスが .BR setrlimit () -¤ò»ÈÍѤ·¤Æ -¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤Þ¤¿¤Ï¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È¤ò -¸½ºß¤Î¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È¤è¤êÂ礭¤¯¤·¤è¤¦¤È»î¤ß¤¿¡£ -¤³¤ì¤ò¹Ô¤¦¤¿¤á¤Ë¤Ï +を使用して +ソフト・リミットまたはハード・リミットを +現在のハード・リミットより大きくしようと試みた。 +これを行うためには .B CAP_SYS_RESOURCE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティが必要である。 .\"O Or, the process tried to use .\"O .BR setrlimit () .\"O to increase @@ -703,16 +703,16 @@ Linux 2.6.23 .\"O limit above the current kernel .\"O maximum .\"O .RB ( NR_OPEN ). -¤Þ¤¿¤ÏÆø¢¤Î¤Ê¤¤¥×¥í¥»¥¹¤¬ +または特権のないプロセスが .BR setrlimit () -¤ò»ÈÍѤ·¤Æ -¥½¥Õ¥È¤Þ¤¿¤Ï¥Ï¡¼¥É +を使用して +ソフトまたはハード .B RLIMIT_NOFILE -¥ê¥ß¥Ã¥È¤ò¸½ºß¤Î¥«¡¼¥Í¥ë¤ÎºÇÂçÃÍ +リミットを現在のカーネルの最大値 .RB ( NR_OPEN ) -°Ê¾å¤ËÁý²Ã¤µ¤»¤è¤¦¤È¤·¤¿¡£ +以上に増加させようとした。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O .B RLIMIT_MEMLOCK .\"O and @@ -720,16 +720,16 @@ SVr4, 4.3BSD, POSIX.1-2001. .\"O derive from BSD and are not specified in POSIX.1-2001; .\"O they are present on the BSDs and Linux, but on few other implementations. .B RLIMIT_MEMLOCK -¤È +と .B RLIMIT_NPROC -¤Ï BSD ¤«¤éÇÉÀ¸¤·¡¢POSIX.1-2001 ¤Ë¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤³¤ì¤é¤Ï BSD ·Ï¤È Linux ¤Ë¸ºß¤¹¤ë¤¬¡¢Â¾¤Î¼ÂÁõ¤Ï¾¯¤Ê¤¤¡£ +は BSD から派生し、POSIX.1-2001 には指定されていない。 +これらは BSD 系と Linux に存在するが、他の実装は少ない。 .\"O .B RLIMIT_RSS .\"O derives from BSD and is not specified in POSIX.1-2001; .\"O it is nevertheless present on most implementations. .R RLIMIT_RSS -¤Ï BSD ¤«¤éÇÉÀ¸¤·¡¢POSIX.1-2001 ¤Ë¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤½¤ì¤Ë¤â´Ø¤ï¤é¤ºÂ¿¤¯¤Î¼ÂÁõ¤Ç¸ºß¤¹¤ë¡£ +は BSD から派生し、POSIX.1-2001 には指定されていない。 +それにも関わらず多くの実装で存在する。 .\"O .BR RLIMIT_MSGQUEUE , .\"O .BR RLIMIT_NICE , .\"O .BR RLIMIT_RTPRIO , @@ -742,19 +742,19 @@ SVr4, 4.3BSD, POSIX.1-2001. .BR RLIMIT_RTPRIO , .BR RLIMIT_RTTIME , .B RLIMIT_SIGPENDING -¤Ï Linux ¸ÇÍ­¤Î¤â¤Î¤Ç¤¢¤ë¡£ +は Linux 固有のものである。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O A child process created via .\"O .BR fork (2) .\"O inherits its parent's resource limits. .\"O Resource limits are preserved across .\"O .BR execve (2). .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿ºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢ -¿Æ¥×¥í¥»¥¹¤Î¥ê¥½¡¼¥¹À©¸Â¤ò·Ñ¾µ¤¹¤ë¡£ +で作成された作成された子プロセスは、 +親プロセスのリソース制限を継承する。 .BR execve (2) -¤ÎÁ°¸å¤Ç¥ê¥½¡¼¥¹À©¸Â¤ÏÊݸ¤µ¤ì¤ë¡£ +の前後でリソース制限は保存される。 .\"O One can set the resource limits of the shell using the built-in .\"O .IR ulimit @@ -764,14 +764,14 @@ SVr4, 4.3BSD, POSIX.1-2001. .\"O .BR csh (1)). .\"O The shell's resource limits are inherited by the processes that .\"O it creates to execute commands. -¥·¥§¥ë¤Î¥ê¥½¡¼¥¹À©¸Â¤Ï¡¢¥·¥§¥ë¤ÎÁȤ߹þ¤ß¥³¥Þ¥ó¥É¤Ç¤¢¤ë +シェルのリソース制限は、シェルの組み込みコマンドである .I ulimit .RB ( csh (1) -¤Ç¤Ï +では .I limit ) -¤ò»È¤Ã¤ÆÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î¥·¥§¥ë¤Î¥ê¥½¡¼¥¹À©¸Â¤Ï¡¢¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Æ¥·¥§¥ë¤¬À¸À®¤¹¤ë¥×¥í¥»¥¹ -¤Ë°ú¤­·Ñ¤¬¤ì¤ë¡£ +を使って設定することができる。 +このシェルのリソース制限は、コマンドを実行してシェルが生成するプロセス +に引き継がれる。 .\"O Ancient systems provided a .\"O .BR vlimit () @@ -781,19 +781,19 @@ SVr4, 4.3BSD, POSIX.1-2001. .\"O .BR vlimit (). .\"O All new applications should be written using .\"O .BR setrlimit (). -¸Å¤¤¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +古いシステムでは、 .BR setrlimit () -¤ÈƱÍͤÎÌÜŪ¤ò»ý¤Ä´Ø¿ô +と同様の目的を持つ関数 .BR vlimit () -¤¬Ä󶡤µ¤ì¤Æ¤¤¤¿¡£ -¸åÊý¸ß´¹À­¤Î¤¿¤á¡¢glibc ¤Ç¤â +が提供されていた。 +後方互換性のため、glibc でも .BR vlimit () -¤òÄ󶡤·¤Æ¤¤¤ë¡£ -Á´¤Æ¤Î¿·¤·¤¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ +を提供している。 +全ての新しいアプリケーションでは、 .BR setrlimit () -¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +を使用すべきである。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O In older Linux kernels, the .\"O .B SIGXCPU .\"O and @@ -801,15 +801,15 @@ SVr4, 4.3BSD, POSIX.1-2001. .\"O signals delivered when a process encountered the soft and hard .\"O .B RLIMIT_CPU .\"O limits were delivered one (CPU) second later than they should have been. -°ÊÁ°¤Î Linux ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¥×¥í¥»¥¹¤¬¥½¥Õ¥È¤Þ¤¿¤Ï¥Ï¡¼¥É +以前の Linux カーネルでは、プロセスがソフトまたはハード .B RLIMIT_CPU -¥ê¥ß¥Ã¥È¤Ë㤷¤¿¾ì¹ç¤ËÁ÷¤é¤ì¤ë +リミットに達した場合に送られる .B SIGXCPU -¤È +と .B SIGKILL -¥·¥°¥Ê¥ë¤¬¡¢ËÜÍèÁ÷¤é¤ì¤ë¤Ù¤­»þÅÀ¤Î 1 (CPU) Éøå¤ËÁ÷¤é¤ì¤Æ¤·¤Þ¤¦¡£ +シグナルが、本来送られるべき時点の 1 (CPU) 秒後に送られてしまう。 .\"O This was fixed in kernel 2.6.8. -¤³¤ì¤Ï¥«¡¼¥Í¥ë 2.6.8 ¤Ç½¤Àµ¤µ¤ì¤¿¡£ +これはカーネル 2.6.8 で修正された。 .\"O In 2.6.x kernels before 2.6.17, a .\"O .B RLIMIT_CPU @@ -817,21 +817,21 @@ SVr4, 4.3BSD, POSIX.1-2001. .\"O .BR RLIM_INFINITY ). .\"O Since Linux 2.6.17, setting a limit of 0 does have an effect, .\"O but is actually treated as a limit of 1 second. -2.6.17 ¤è¤êÁ°¤Î 2.6.x ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +2.6.17 より前の 2.6.x カーネルでは、 .B RLIMIT_CPU -¥ê¥ß¥Ã¥È¤¬ 0 ¤Î¾ì¹ç¡¢ +リミットが 0 の場合、 .RB ( RLIM_INFINITY -¤ÈƱ¤¸¤è¤¦¤Ë) ¡ÖÀ©¸Â¤Ê¤·¡×¤È´Ö°ã¤Ã¤Æ²ò¼á¤µ¤ì¤Æ¤¤¤¿¡£ -Linux 2.6.17 °Ê¹ß¤Ç¤Ï¡¢¥ê¥ß¥Ã¥È¤ò 0 ¤ËÀßÄꤷ¤¿¾ì¹ç¤Ë¤â -¸ú²Ì¤ò»ý¤Ä¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¬¡¢¼ÂºÝ¤Ë¤Ï¥ê¥ß¥Ã¥È¤ÎÃÍ¤Ï 1 ÉäȤʤ롣 +と同じように) 「制限なし」と間違って解釈されていた。 +Linux 2.6.17 以降では、リミットを 0 に設定した場合にも +効果を持つようになっているが、実際にはリミットの値は 1 秒となる。 .\" see http://marc.theaimsgroup.com/?l=linux-kernel&m=114008066530167&w=2 .\"O A kernel bug means that .\"O .B RLIMIT_RTPRIO .\"O does not work in kernel 2.6.12; the problem is fixed in kernel 2.6.13. -¥«¡¼¥Í¥ë 2.6.12 ¤Ë¤Ï¡¢ +カーネル 2.6.12 には、 .B RLIMIT_RTPRIO -¤¬Æ°ºî¤·¤Ê¤¤¤È¤¤¤¦¥Ð¥°¤¬¤¢¤ë¡£¤³¤ÎÌäÂê¤Ï¥«¡¼¥Í¥ë 2.6.13 ¤Ç½¤Àµ¤µ¤ì¤Æ¤¤¤ë¡£ +が動作しないというバグがある。この問題はカーネル 2.6.13 で修正されている。 .\"O In kernel 2.6.12, there was an off-by-one mismatch .\"O between the priority ranges returned by @@ -843,14 +843,14 @@ Linux 2.6.17 .\"O .IR "19\ \-\ rlim_cur" . .\"O This was fixed in kernel 2.6.13. .\"O .\" see http://marc.theaimsgroup.com/?l=linux-kernel&m=112256338703880&w=2 -¥«¡¼¥Í¥ë 2.6.12 ¤Ç¤Ï¡¢ +カーネル 2.6.12 では、 .BR getpriority (2) -¤È +と .B RLIMIT_NICE -¤¬ÊÖ¤¹Í¥ÀèÅÙ¤ÎÈϰϤ¬°ì¤Ä¤º¤ì¤Æ¤¤¤¿¡£¤³¤Î¤¿¤á¡¢nice Ãͤμºݤξå¸Â¤¬ +が返す優先度の範囲が一つずれていた。このため、nice 値の実際の上限が .I "19\ \-\ rlim_cur" -¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤È¤¤¤¦±Æ¶Á¤¬¤¢¤Ã¤¿¡£¤³¤ì¤Ï¥«¡¼¥Í¥ë 2.6.13 ¤Ç½¤Àµ¤µ¤ì¤¿¡£ -.\" »²¹Í: http://marc.theaimsgroup.com/?l=linux-kernel&m=112256338703880&w=2 +になってしまうという影響があった。これはカーネル 2.6.13 で修正された。 +.\" 参考: http://marc.theaimsgroup.com/?l=linux-kernel&m=112256338703880&w=2 .\"O Kernels before 2.4.22 did not diagnose the error .\"O .B EINVAL @@ -860,17 +860,17 @@ Linux 2.6.17 .\"O .I rlim\->rlim_cur .\"O was greater than .\"O .IR rlim\->rlim_max . -2.4.22 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +2.4.22 より前のカーネルでは、 .I rlim\->rlim_cur -¤¬ +が .I rlim\->rlim_max -¤è¤êÂ礭¤«¤Ã¤¿¾ì¹ç¡¢ +より大きかった場合、 .BR setrlimit () -¤Ç¤Î +での .B EINVAL -¥¨¥é¡¼¤ò¸¡½Ð¤Ç¤­¤Ê¤¤¡£ +エラーを検出できない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR dup (2), .BR fcntl (2), .BR fork (2), diff --git a/draft/man2/getrusage.2 b/draft/man2/getrusage.2 index 14d6044d..ca3c28ba 100644 --- a/draft/man2/getrusage.2 +++ b/draft/man2/getrusage.2 @@ -46,39 +46,39 @@ .\" .TH GETRUSAGE 2 2009-08-25 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getrusage \- get resource usage -getrusage \- »ñ¸»¤Î»ÈÍÑÎ̤ò¼èÆÀ¤¹¤ë +getrusage \- 資源の使用量を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include .sp .BI "int getrusage(int " who ", struct rusage *" usage ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .PP .\"O .BR getrusage () .\"O returns resource usage measures for .\"O .IR who , .\"O which can be one of the following: .BR getrusage () -¤Ï +は .I who -¤Î»ñ¸» (resource) ¤Î»ÈÍÑÎ̤òÊÖ¤¹¡£ +の資源 (resource) の使用量を返す。 .I who -¤Ë¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«°ì¤Ä¤ò»ØÄê¤Ç¤­¤ë¡£ +には以下のいずれか一つを指定できる。 .TP .B RUSAGE_SELF .\"O Return resource usage statistics for the calling process, .\"O which is the sum of resources used by all threads in the process. -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î»ñ¸»»ÈÍÑÎÌ¡¢ -¤½¤Î¥×¥í¥»¥¹Æâ¤ÎÁ´¥¹¥ì¥Ã¥É¤¬»ÈÍѤ·¤Æ¤¤¤ë»ñ¸»¤Î¹ç·×¤òÊÖ¤¹¡£ +呼び出したプロセスの資源使用量、 +そのプロセス内の全スレッドが使用している資源の合計を返す。 -Á°¼Ô¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥ê¥½¡¼¥¹»ÈÍÑÎ̤òÍ׵ᤷ¡¢ -¸å¼Ô¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î»Ò¶¡¤Î¤¦¤Á -½ªÎ»¤·¤ÆÂÔ¤Á¾õÂ֤ˤ¢¤ë¥×¥í¥»¥¹¤Î»ÈÍÑÎ̤òÍ׵᤹¤ë¡£ +前者は呼び出したプロセスのリソース使用量を要求し、 +後者は呼び出したプロセスの子供のうち +終了して待ち状態にあるプロセスの使用量を要求する。 .TP .B RUSAGE_CHILDREN .\"O Return resource usage statistics for all children of the @@ -86,24 +86,24 @@ getrusage \- .\"O These statistics will include the resources used by grandchildren, .\"O and further removed descendants, .\"O if all of the intervening descendants waited on their terminated children. -.\"Omotoki: Ìõ¤Ë¼«¿®¤Ê¤· (ÆÃ¤Ë if all of .... °Ê¹ß¤¬º£¤¤¤ÁÍý²ò¤Ç¤­¤º) -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Î¤¦¤Á¡¢ -½ªÎ»¤·¤ÆÂÔ¤Á¾õÂ֤ˤ¢¤ëÁ´¥×¥í¥»¥¹¤¬»ÈÍѤ·¤Æ¤¤¤ë»ñ¸»»ÈÍÑÎ̤ÎÅý·×¤òÊÖ¤¹¡£ -¤³¤ì¤é¤ÎÅý·×¾ðÊó¤Ë¤Ï¡¢Â¹¥×¥í¥»¥¹¤ä¤½¤Î»Ò¹¤Î¥×¥í¥»¥¹¤Î¤¦¤Á¡¢ -ºï½üÂÔ¤Á¤Î¤â¤Î¤¬»ÈÍѤ·¤Æ¤¤¤ë»ñ¸»¤â´Þ¤Þ¤ì¤ë¡£ +.\"Omotoki: 訳に自信なし (特に if all of .... 以降が今いち理解できず) +呼び出したプロセスの子プロセスのうち、 +終了して待ち状態にある全プロセスが使用している資源使用量の統計を返す。 +これらの統計情報には、孫プロセスやその子孫のプロセスのうち、 +削除待ちのものが使用している資源も含まれる。 .TP .\"O .BR RUSAGE_THREAD " (since Linux 2.6.26)" -.BR RUSAGE_THREAD " (Linux 2.6.26 °Ê¹ß)" +.BR RUSAGE_THREAD " (Linux 2.6.26 以降)" .\"O Return resource usage statistics for the calling thread. -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Ë´Ø¤¹¤ë»ñ¸»»ÈÍÑÎ̤ÎÅý·×¤òÊÖ¤¹¡£ +呼び出したスレッドに関する資源使用量の統計を返す。 .PP .\"O The resource usages are returned in the structure pointed to by .\"O .IR usage , .\"O which has the following form: -»ñ¸»»ÈÍÑÎÌ¤Ï +資源使用量は .I usage -¤¬»Ø¤¹¹½Â¤ÂΤ˳ÊǼ¤µ¤ì¤ÆÊÖ¤µ¤ì¤ë¡£ -¹½Â¤ÂΤϰʲ¼¤Î·Á¼°¤Ç¤¢¤ë¡£ +が指す構造体に格納されて返される。 +構造体は以下の形式である。 .PP .in +4n .nf @@ -124,51 +124,51 @@ struct rusage { .\"O long ru_nsignals; /* signals received */ .\"O long ru_nvcsw; /* voluntary context switches */ .\"O long ru_nivcsw; /* involuntary context switches */ - struct timeval ru_utime; /* »ÈÍѤµ¤ì¤¿¥æ¡¼¥¶¡¼»þ´Ö */ - struct timeval ru_stime; /* »ÈÍѤµ¤ì¤¿¥·¥¹¥Æ¥à»þ´Ö */ - long ru_maxrss; /* RAM ¾å¤Ë¸ºß¤¹¤ë²¾ÁÛ¥Ú¡¼¥¸¤Î¥µ¥¤¥º - (resident set size) ¤ÎºÇÂçÃÍ */ - long ru_ixrss; /* ¶¦Í­¥á¥â¥ê¤Î¹ç·×¥µ¥¤¥º */ - long ru_idrss; /* Èó¶¦Í­¥Ç¡¼¥¿¤Î¹ç·×¥µ¥¤¥º */ - long ru_isrss; /* Èó¶¦Í­¥¹¥¿¥Ã¥¯¤Î¹ç·×¥µ¥¤¥º */ - long ru_minflt; /* ÍøÍѤµ¤ì¤¿¥Ú¡¼¥¸ */ - long ru_majflt; /* ¥Ú¡¼¥¸¥Õ¥©¡¼¥ë¥È */ - long ru_nswap; /* ¥¹¥ï¥Ã¥× */ - long ru_inblock; /* ¥Ö¥í¥Ã¥¯ÆþÎÏÁàºî */ - long ru_oublock; /* ¥Ö¥í¥Ã¥¯½ÐÎÏÁàºî */ - long ru_msgsnd; /* Á÷¿®¤µ¤ì¤¿¥á¥Ã¥»¡¼¥¸ */ - long ru_msgrcv; /* ¼õ¿®¤µ¤ì¤¿¥á¥Ã¥»¡¼¥¸ */ - long ru_nsignals; /* ¼õ¿®¤µ¤ì¤¿¥·¥°¥Ê¥ë */ - long ru_nvcsw; /* °Õ¿Þ¤·¤¿¥³¥ó¥Æ¥­¥¹¥ÈÀÚ¤êÂؤ¨ */ - long ru_nivcsw; /* °Õ¿Þ¤·¤Ê¤¤¥³¥ó¥Æ¥­¥¹¥ÈÀÚ¤êÂؤ¨ */ + struct timeval ru_utime; /* 使用されたユーザー時間 */ + struct timeval ru_stime; /* 使用されたシステム時間 */ + long ru_maxrss; /* RAM 上に存在する仮想ページのサイズ + (resident set size) の最大値 */ + long ru_ixrss; /* 共有メモリの合計サイズ */ + long ru_idrss; /* 非共有データの合計サイズ */ + long ru_isrss; /* 非共有スタックの合計サイズ */ + long ru_minflt; /* 利用されたページ */ + long ru_majflt; /* ページフォールト */ + long ru_nswap; /* スワップ */ + long ru_inblock; /* ブロック入力操作 */ + long ru_oublock; /* ブロック出力操作 */ + long ru_msgsnd; /* 送信されたメッセージ */ + long ru_msgrcv; /* 受信されたメッセージ */ + long ru_nsignals; /* 受信されたシグナル */ + long ru_nvcsw; /* 意図したコンテキスト切り替え */ + long ru_nivcsw; /* 意図しないコンテキスト切り替え */ }; .fi .in .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合は 0 が返される。エラーの場合は \-1 が返され、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬ÀßÄꤵ¤ì¤ë¡£ +に適切な値が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O .I usage .\"O points outside the accessible address space. .I usage -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がアクセス可能なアドレス空間の外を指している。 .TP .B EINVAL .\"O .I who .\"O is invalid. .I who -¤¬Ìµ¸ú¤Ç¤¢¤ë¡£ +が無効である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD. .\"O POSIX.1-2001 specifies .\"O .BR getrusage (), @@ -176,24 +176,24 @@ SVr4, 4.3BSD. .\"O .I ru_utime .\"O and .\"O .IR ru_stime . -POSIX.1-2001 ¤Ï +POSIX.1-2001 は .BR getrusage () -¤òµ¬Äꤷ¤Æ¤¤¤ë¤¬¡¢µ¬Äꤷ¤Æ¤¤¤ë¥Õ¥£¡¼¥ë¥É¤Ï +を規定しているが、規定しているフィールドは .I ru_utime -¤È +と .I ru_stime -¤À¤±¤Ç¤¢¤ë¡£ +だけである。 .\"O .B RUSAGE_THREAD .\"O is Linux-specific. .B RUSAGE_THREAD -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ +は Linux 固有である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Resource usage metrics are preserved across an .\"O .BR execve (2). .BR execve (2) -¤ÎÁ°¸å¤Ç¥ê¥½¡¼¥¹»ÈÍÑÎ̤λØɸ¤ÏÊÝ»ý¤µ¤ì¤ë¡£ +の前後でリソース使用量の指標は保持される。 .\"O Including .\"O .I @@ -202,15 +202,15 @@ POSIX.1-2001 .\"O .I struct timeval .\"O is defined in .\"O .IR .) -º£Æü¤Ç¤Ï +今日では .I -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ëɬÍפϤʤ¤¤¬¡¢ -¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ¤ª¤±¤Ð°Ü¿¢À­¤¬Áý¤¹¡£ -(¼ÂºÝ +をインクルードする必要はないが、 +インクルードしておけば移植性が増す。 +(実際 .I struct timeval -¤Ï +は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£) +で定義されている。) .PP .\"O In Linux kernel versions before 2.6.9, if the disposition of .\"O .B SIGCHLD @@ -220,21 +220,21 @@ POSIX.1-2001 .\"O are automatically included in the value returned by .\"O .BR RUSAGE_CHILDREN , .\"O although POSIX.1-2001 explicitly prohibits this. -2.6.9 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î Linux ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +2.6.9 より前のバージョンの Linux カーネルでは、 .B SIGCHLD -¤Î½èÍý¤¬ +の処理が .B SIG_IGN -¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢ -»Ò¥×¥í¥»¥¹¤Î¥ê¥½¡¼¥¹»ÈÍÑÎ̤¬ +に設定されていると、 +子プロセスのリソース使用量が .B RUSAGE_CHILDREN -¤ÇÊÖ¤µ¤ì¤ëÃͤ˼«Æ°Åª¤Ë´Þ¤á¤é¤ì¤ë¡£ -¤·¤«¤· POSIX.1-2001 ¤Ç¤Ï¡¢¤³¤ì¤òÌÀ³Î¤Ë¶Ø»ß¤·¤Æ¤¤¤ë¡£ +で返される値に自動的に含められる。 +しかし POSIX.1-2001 では、これを明確に禁止している。 .\"O This nonconformance is rectified in Linux 2.6.9 and later. .\"O .\" See the description of getrusage() in XSH. .\"O .\" A similar statement was also in SUSv2. -¤³¤Î½àµò¤·¤Æ¤¤¤Ê¤«¤Ã¤¿ÅÀ¤Ï¡¢Linux 2.6.9 °Ê¹ß¤Ç²þÀµ¤µ¤ì¤¿¡£ -.\" XSH ¤Î getrusage() ¤ÎÀâÌÀ¤ò»²¾È¤¹¤ë¤³¤È¡£ -.\" ƱÍͤε­½Ò¤Ï SUSv2 ¤Ë¤â¤¢¤ë¡£ +この準拠していなかった点は、Linux 2.6.9 以降で改正された。 +.\" XSH の getrusage() の説明を参照すること。 +.\" 同様の記述は SUSv2 にもある。 .LP .\"O The structure definition shown at the start of this page .\"O was taken from 4.3BSD Reno. @@ -246,43 +246,43 @@ POSIX.1-2001 .\"O and .\"O .I ru_majflt .\"O are maintained. -¤³¤Î¥Ú¡¼¥¸¤ÎºÇ½é¤Ç¼¨¤·¤¿¹½Â¤ÂΤÎÄêµÁ¤Ï 4.3BSD Reno ¤Î¤â¤Î¤òºÎÍѤ·¤¿¡£ -Linux ¤Ç¤ÏÁ´¤Æ¤Î¥Õ¥£¡¼¥ë¥É¤¬°ÕÌ£¤ò»ý¤Ä¤È¤¤¤¦¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -Linux 2.4 ¤Ç¤Ï¡¢¥Õ¥£¡¼¥ë¥É +このページの最初で示した構造体の定義は 4.3BSD Reno のものを採用した。 +Linux では全てのフィールドが意味を持つというわけではない。 +Linux 2.4 では、フィールド .IR ru_utime , .IR ru_stime , .IR ru_minflt , .I ru_majflt -¤Î¤ß¤¬¥á¥ó¥Æ¥Ê¥ó¥¹¤µ¤ì¤Æ¤¤¤ë¡£ +のみがメンテナンスされている。 .\"O Since Linux 2.6, .\"O .I ru_nvcsw .\"O and .\"O .I ru_nivcsw .\"O are also maintained. -Linux 2.6 °Ê¹ß¤Ç¤Ï +Linux 2.6 以降では .IR ru_nvcsw , .I ru_nivcsw -¤â¥á¥ó¥Æ¥Ê¥ó¥¹¤µ¤ì¤Æ¤¤¤ë¡£ +もメンテナンスされている。 .\"O Since Linux 2.6.22, .\"O .I ru_inblock .\"O and .\"O .I ru_oublock .\"O are also maintained. -Linux 2.6.22 °Ê¹ß¤Ç¤Ï +Linux 2.6.22 以降では .IR ru_inblock , .I ru_oublock -¤â¥á¥ó¥Æ¥Ê¥ó¥¹¤µ¤ì¤Æ¤¤¤ë¡£ +もメンテナンスされている。 .\"O See also the description of .\"O .IR /proc/PID/stat .\"O in .\"O .BR proc (5). .BR proc (5) -¤Ë¤¢¤ë +にある .I /proc/PID/stat -¤ÎÀâÌÀ¤â»²¾È¤Î¤³¤È¡£ +の説明も参照のこと。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR clock_gettime (2), .BR getrlimit (2), .BR times (2), diff --git a/draft/man2/getsid.2 b/draft/man2/getsid.2 index 3e33b4d4..9b80286d 100644 --- a/draft/man2/getsid.2 +++ b/draft/man2/getsid.2 @@ -29,16 +29,16 @@ .\" by HANATAKA Shinya .\" Updated Thu Jan 17 JST 2001 by Kentaro Shirakata .\" -.\"WORD: session ¥»¥Ã¥·¥ç¥ó -.\"WORD: process ¥×¥í¥»¥¹ +.\"WORD: session セッション +.\"WORD: process プロセス .\" .TH GETSID 2 2010-09-26 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getsid \- get session ID -getsid \- ¥»¥Ã¥·¥ç¥ó ID ¤ò¼èÆÀ¤¹¤ë¡£ +getsid \- セッション ID を取得する。 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "pid_t getsid(pid_t" " pid" ); @@ -46,9 +46,9 @@ getsid \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -59,74 +59,74 @@ _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .br .\"O || /* Since glibc 2.12: */ _POSIX_C_SOURCE\ >=\ 200809L -|| /* glibc 2.12 °Ê¹ß: */ _POSIX_C_SOURCE\ >=\ 200809L +|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\ >=\ 200809L .RE .PD .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .I getsid(0) .\"O returns the session ID of the calling process. .\"O .I getsid(p) .\"O returns the session ID of the process with process ID .\"O .IR p . .I getsid(0) -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥»¥Ã¥·¥ç¥ó ID ¤òÊÖ¤¹¡£ +は呼び出し元のプロセスのセッション ID を返す。 .I getsid(p) -¤Ï¥×¥í¥»¥¹ ID +はプロセス ID .I p -¤ò»ý¤Ä¥×¥í¥»¥¹¤Î¥»¥Ã¥·¥ç¥ó ID ¤òÊÖ¤¹ +を持つプロセスのセッション ID を返す .\"O (The session ID of a process is the process group ID of the .\"O session leader.) -(¥×¥í¥»¥¹¤Î¥»¥Ã¥·¥ç¥ó ID ¤Ï ¥»¥Ã¥·¥ç¥ó¥ê¡¼¥À¡¼¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤Ç¤¢¤ë)¡£ +(プロセスのセッション ID は セッションリーダーのプロセスグループ ID である)。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, a session ID is returned. .\"O On error, \fI(pid_t)\ \-1\fP will be returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤¹¤ë¤È¡¢¥»¥Ã¥·¥ç¥ó ID ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\fI(pid_t) \-1\fP ¤¬ÊÖ¤µ¤ì¡¢ +成功すると、セッション ID が返される。 +エラーの場合、\fI(pid_t) \-1\fP が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EPERM .\"O A process with process ID .\"O .I p .\"O exists, but it is not in the same session as the calling process, .\"O and the implementation considers this an error. -¥×¥í¥»¥¹ ID +プロセス ID .I p -¤Î¥×¥í¥»¥¹¤Ï¸ºß¤¹¤ë¤¬¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÈƱ¤¸¥»¥Ã¥·¥ç¥ó¤Ç¤Ï¤Ê¤¯¡¢ -¤µ¤é¤Ë¼ÂÁõ¤¬¤³¤Î¾õÂÖ¤ò¥¨¥é¡¼¤ÈȽÃǤ·¤¿¾ì¹ç¡£ +のプロセスは存在するが、呼び出し元のプロセスと同じセッションではなく、 +さらに実装がこの状態をエラーと判断した場合。 .TP .B ESRCH .\"O No process with process ID .\"O .I p .\"O was found. -¥×¥í¥»¥¹ ID ¤¬ +プロセス ID が .I p -¤Î¥×¥í¥»¥¹¤¬¤Ê¤¤¡£ +のプロセスがない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O This system call is available on Linux since version 2.0. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¥Ð¡¼¥¸¥ç¥ó 2.0 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +このシステムコールは Linux バージョン 2.0 以降で利用可能である。 .\" Linux has this system call since Linux 1.3.44. .\" There is libc support since libc 5.2.19. .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Linux does not return .\"O .BR EPERM . -Linux ¤Ï +Linux は .B EPERM -¤òÊÖ¤µ¤Ê¤¤¡£ +を返さない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getpgid (2), .BR setsid (2), .BR credentials (7) diff --git a/draft/man2/getsockname.2 b/draft/man2/getsockname.2 index a708ef39..9cf2a95b 100644 --- a/draft/man2/getsockname.2 +++ b/draft/man2/getsockname.2 @@ -46,11 +46,11 @@ .\" .TH GETSOCKNAME 2 2008-12-03 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getsockname \- get socket name -getsockname \- ¥½¥±¥Ã¥È¤Î̾Á°¤ò¼èÆÀ¤¹¤ë +getsockname \- ソケットの名前を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -58,7 +58,7 @@ getsockname \- ", socklen_t *" addrlen ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR getsockname () .\"O returns the current address to which the socket .\"O .I sockfd @@ -70,78 +70,78 @@ getsockname \- .\"O the amount of space (in bytes) pointed to by .\"O .IR addr . .BR getsockname () -¤Ï¡¢¥½¥±¥Ã¥È +は、ソケット .I sockfd -¤Ë·ë¤ÓÉÕ¤±¤é¤ì¤Æ¤¤¤ë¸½ºß¤Î¥¢¥É¥ì¥¹¤ò¡¢ +に結び付けられている現在のアドレスを、 .I addr -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ +が指すバッファに格納して返す。 .I addrlen -°ú¤­¿ô¤Ï¡¢ +引き数は、 .I addr -¤¬»Ø¤·¤Æ¤¤¤ëÎΰè¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤Ë½é´ü²½¤·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +が指している領域のサイズ (バイト単位) に初期化しておかなければならない。 .\"O On return it contains the actual size of the socket address. .\"O returned (in bytes). -´Ø¿ô¤¬ÊÖ¤ë»þ¤Ë¤Ï¡¢ +関数が返る時には、 .I addrlen -¤Ë¤Ï¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Î¼ÂºÝ¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤¬³ÊǼ¤µ¤ì¤ë¡£ +にはソケットアドレスの実際のサイズ (バイト単位) が格納される。 .\"O The returned address is truncated if the buffer provided is too small; .\"O in this case, .\"O .I addrlen .\"O will return a value greater than was supplied to the call. -ÅϤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤¬¾®¤µ²á¤®¤¿¾ì¹ç¤Ï¡¢ÊÖ¤µ¤ì¤ë¥¢¥É¥ì¥¹¤ÎËöÈø¤¬ÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ -¤³¤Î¾ì¹ç¤Ë¤Ï¡¢ +渡されたバッファが小さ過ぎた場合は、返されるアドレスの末尾が切り詰められる。 +この場合には、 .I addrlen -¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·»þ¤Ë»ØÄꤵ¤ì¤¿Ãͤè¤ê¤âÂ礭¤ÊÃͤ¬³ÊǼ¤µ¤ì¤ë¡£ +には、呼び出し時に指定された値よりも大きな値が格納される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç 0 ¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤òÊÖ¤·¡¢ +成功した場合 0 を返す。失敗した場合 \-1 を返し、 .I errno -¤ò¥¨¥é¡¼¤ÎÆâÍƤ˽¾¤Ã¤ÆÀßÄꤹ¤ë¡£ +をエラーの内容に従って設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O The argument .\"O .I sockfd .\"O is not a valid descriptor. -°ú¤­¿ô +引き数 .I sockfd -¤¬Í­¸ú¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿ (descriptor) ¤Ç¤Ï¤Ê¤¤¡£ +が有効なディスクリプタ (descriptor) ではない。 .TP .B EFAULT .\"O The .\"O .I addr .\"O argument points to memory not in a valid part of the .\"O process address space. -°ú¤­¿ô +引き数 .I addr -¤Î»Ø¤·¤Æ¤¤¤ë¥á¥â¥ê¤¬¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ÎÍ­¸ú¤ÊÉôʬ¤Ç¤Ï¤Ê¤¤¡£ +の指しているメモリがプロセスのアドレス空間の有効な部分ではない。 .TP .B EINVAL .\"O .I addrlen .\"O is invalid (e.g., is negative). .I addrlen -¤¬ÉÔÀµ¤Ç¤¢¤ë (Î㤨¤Ð¡¢Éé¤Ç¾ì¹ç¤Ê¤É)¡£ +が不正である (例えば、負で場合など)。 .TP .B ENOBUFS .\"O Insufficient resources were available in the system .\"O to perform the operation. -½èÍý¤ò¤¹¤ë¤À¤±¤Î½½Ê¬¤Ê¥ê¥½¡¼¥¹¤¬¥·¥¹¥Æ¥à¤Ë̵¤¤¡£ +処理をするだけの十分なリソースがシステムに無い。 .TP .B ENOTSOCK .\"O The argument .\"O .I sockfd .\"O is a file, not a socket. -°ú¤­¿ô +引き数 .I sockfd -¤¬¥½¥±¥Ã¥È¤Ç¤Ï¤Ê¤¯¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ +がソケットではなくファイルである。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O SVr4, 4.4BSD (the .\"O .BR getsockname () .\"O function call appeared in 4.2BSD), POSIX.1-2001. @@ -149,10 +149,10 @@ getsockname \- .\"O .\" and ENOSR error codes. SVr4, 4.4BSD .RB ( getsockname () -´Ø¿ô¤Ï 4.2BSD ¤ÇÄɲ䵤줿), POSIX.1-2001. -.\" SVr4 ¤Ë¤Ï¾¤Ë ENOMEM ¤È ENOSR ¤Î¥¨¥é¡¼¥³¡¼¥É¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ +関数は 4.2BSD で追加された), POSIX.1-2001. +.\" SVr4 には他に ENOMEM と ENOSR のエラーコードについての記述がある。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The third argument of .\"O .BR getsockname () .\"O is in reality an \fIint *\fP @@ -160,16 +160,16 @@ SVr4, 4.4BSD .\"O Some POSIX confusion resulted in the present \fIsocklen_t\fP, .\"O also used by glibc. .BR getsockname () -¤Î»°ÈÖÌܤΰú¤­¿ô¤Ï (4.x BSD ¤ä libc4, libc5 ¤ÈƱÍͤË) ¼ÂºÝ¤Ë¤Ï \fIint *\fP -¤Ç¤¢¤ë¡£ glibc ¤Ç¤â»È¤ï¤ì¤Æ¤¤¤ë¸½ºß¤Î \fIsocklen_t\fP ¤Ë´Ø¤·¤Æ¡¢ -POSIX ¤Ë¤Ï¾¯¤·º®Í𤬤¢¤ë¡£ +の三番目の引き数は (4.x BSD や libc4, libc5 と同様に) 実際には \fIint *\fP +である。 glibc でも使われている現在の \fIsocklen_t\fP に関して、 +POSIX には少し混乱がある。 .\"O See also .\"O .BR accept (2). -¾Ü¤·¤¯¤Ï +詳しくは .BR accept (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bind (2), .BR socket (2), .BR getifaddrs (3), diff --git a/draft/man2/getsockopt.2 b/draft/man2/getsockopt.2 index 46bbbb01..0976287a 100644 --- a/draft/man2/getsockopt.2 +++ b/draft/man2/getsockopt.2 @@ -49,14 +49,14 @@ .\" .TH GETSOCKOPT 2 2008-12-03 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getsockopt, setsockopt \- get and set options on sockets -getsockopt, setsockopt \- ¥½¥±¥Ã¥È¤Î¥ª¥×¥·¥ç¥ó¤ÎÀßÄê¤È¼èÆÀ¤ò¹Ô¤Ê¤¦ +getsockopt, setsockopt \- ソケットのオプションの設定と取得を行なう .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#include " " /* See NOTES */" -.BR "#include " " /* ¡ÖÃí°Õ¡×»²¾È */" +.BR "#include " " /* 「注意」参照 */" .br .B #include .sp @@ -66,7 +66,7 @@ getsockopt, setsockopt \- .BI " const void *" optval ", socklen_t " optlen ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR getsockopt () .\"O and .\"O .BR setsockopt () @@ -76,13 +76,13 @@ getsockopt, setsockopt \- .\"O protocol levels; they are always present at the uppermost .\"O socket level. .BR getsockopt () -¤È +と .BR setsockopt () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +は、ファイルディスクリプタ .I socket -¤Ç»²¾È¤µ¤ì¤ë¥½¥±¥Ã¥È¤Ë´ØÏ¢¤¹¤ë¥ª¥×¥·¥ç¥ó¤ÎÁàºî¤ò¹Ô¤¦¡£ -¥ª¥×¥·¥ç¥ó¤ÏÊ£¿ô¤Î¥×¥í¥È¥³¥ëÁØ(level)¤Ë¸ºß¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¤¬¡¢ -¤³¤ì¤é¤Ï¾ï¤ËºÇ¾å°Ì¤Î¥½¥±¥Ã¥ÈÁؤؤÈÀßÄꤵ¤ì¤ë¡£ +で参照されるソケットに関連するオプションの操作を行う。 +オプションは複数のプロトコル層(level)に存在するかもしれないが、 +これらは常に最上位のソケット層へと設定される。 .\"O When manipulating socket options, the level at which the .\"O option resides and the name of the option must be specified. @@ -102,24 +102,24 @@ getsockopt, setsockopt \- .\"O .BR TCP ; .\"O see .\"O .BR getprotoent (3). -¥½¥±¥Ã¥È¡¦¥ª¥×¥·¥ç¥ó¤òÁàºî¤¹¤ëºÝ¤Ë¤Ï¡¢¥ª¥×¥·¥ç¥ó¤ÎÁØ (level) ¤È -¥ª¥×¥·¥ç¥ó¤Î̾Á°¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥½¥±¥Ã¥È API Áؤǥª¥×¥·¥ç¥ó¤òÁàºî¤¹¤ë°Ù¤Ë¤Ï¡¢ +ソケット・オプションを操作する際には、オプションの層 (level) と +オプションの名前を指定しなければならない。 +ソケット API 層でオプションを操作する為には、 .I level -¤ò +を .B SOL_SOCKET -¤Ë»ØÄꤹ¤ë¡£ -¾¤ÎÁ´¤Æ¤ÎÁؤǥª¥×¥·¥ç¥ó¤òÁàºî¤¹¤ë°Ù¤Ë¤Ï¡¢Í¿¤¨¤é¤ì¤¿¥ª¥×¥·¥ç¥ó¤Î -À©¸æ¼çÂΤȤʤë¥×¥í¥È¥³¥ë¤Î¥×¥í¥È¥³¥ëÈÖ¹æ¤ò»ØÄꤹ¤ë¡£Î㤨¤Ð¡¢ -¥ª¥×¥·¥ç¥ó¤¬ +に指定する。 +他の全ての層でオプションを操作する為には、与えられたオプションの +制御主体となるプロトコルのプロトコル番号を指定する。例えば、 +オプションが .B TCP -¥×¥í¥È¥³¥ë¤Ç²ò¼á¤µ¤ì¤ë¤Ù¤­¤³¤È¤ò»Ø¼¨¤¹¤ë¤Ë¤Ï¡¢ +プロトコルで解釈されるべきことを指示するには、 .I level -¤Ë +に .B TCP -¤Î¥×¥í¥È¥³¥ëÈÖ¹æ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +のプロトコル番号を指定しなければならない。 .BR getprotoent (3) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O The arguments .\"O .I optval @@ -128,17 +128,17 @@ getsockopt, setsockopt \- .\"O are used to access option values for .\"O .BR setsockopt (). .I optval -¤È +と .I optlen -°ú¤­¿ô¤Ï +引き数は .BR setsockopt () -¤Î¥ª¥×¥·¥ç¥ó¤ÎÃͤ˥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ +のオプションの値にアクセスするために用いられる。 .\"O For .\"O .BR getsockopt () .\"O they identify a buffer in which the value for the .\"O requested option(s) are to be returned. .BR getsockopt () -¤Ç¤ÏÍ׵ᤷ¤¿¥ª¥×¥·¥ç¥ó¤ÎÃͤòÊÖ¤¹¤¿¤á¤Î¥Ð¥Ã¥Õ¥¡¡¼¤ò»ØÄꤹ¤ë¡£ +では要求したオプションの値を返すためのバッファーを指定する。 .\"O For .\"O .BR getsockopt (), .\"O .I optlen @@ -151,14 +151,14 @@ getsockopt, setsockopt \- .\"O .I optval .\"O may be NULL. .BR getsockopt () -¤Ç¤Ï +では .I optlen -¤ÏÃͤȷë²ÌξÍѤΰú¤­¿ô¤Ç¡¢ºÇ½é¤Ë +は値と結果両用の引き数で、最初に .I optval -¤Î»Ø¤·¤Æ¤¤¤ë¥Ð¥Ã¥Õ¥¡¡¼¤Î¥µ¥¤¥º¤òÍ¿¤¨¡¢¼ÂºÝ¤ËÊÖ¤µ¤ì¤ëÃͤΥµ¥¤¥º¤Ë -½ñ¤­´¹¤¨¤é¤ì¤ë¡£¤â¤·¥ª¥×¥·¥ç¥óÃͤòÍ¿¤¨¤º¡¢ÊÖ¤µ¤ì¤â¤·¤Ê¤¤¾ì¹ç¤Ë¤Ï +の指しているバッファーのサイズを与え、実際に返される値のサイズに +書き換えられる。もしオプション値を与えず、返されもしない場合には .I optval -¤Ï NULL ¤Ç¤âÎɤ¤¡£ +は NULL でも良い。 .\"O .I Optname .\"O and any specified options are passed uninterpreted to the appropriate @@ -170,12 +170,12 @@ getsockopt, setsockopt \- .\"O other protocol levels vary in format and name; consult the appropriate .\"O entries in section 4 of the manual. .I optname -¤ª¤è¤Ó»ØÄꤵ¤ì¤¿¥ª¥×¥·¥ç¥ó¤Ï²ò¼á¤µ¤ì¤º¤Ë¡¢Å¬Àڤʥץí¥È¥³¥ë¡¦¥â¥¸¥å¡¼¥ë¤Ë -ÅϤµ¤ì¤Æ²ò¼á¤µ¤ì¤ë¡£¥¤¥ó¥¯¥ë¡¼¥É¡¦¥Õ¥¡¥¤¥ë +および指定されたオプションは解釈されずに、適切なプロトコル・モジュールに +渡されて解釈される。インクルード・ファイル .I -¤Ë¤Ï¸å½Ò¤Î¥½¥±¥Ã¥ÈÁؤΥª¥×¥·¥ç¥ó¤ÎÄêµÁ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -¾¤Î¥×¥í¥È¥³¥ëÁؤǤÏ̾Á°¤ä·Á¼°¤Ï°Û¤Ê¤ë¡£ -¥Þ¥Ë¥å¥¢¥ë¤Î¥»¥¯¥·¥ç¥ó 4 ¤ÎŬÀڤʥ¨¥ó¥È¥ê¤ò»²¾È¤¹¤ë¤³¤È¡£ +には後述のソケット層のオプションの定義が含まれている。 +他のプロトコル層では名前や形式は異なる。 +マニュアルのセクション 4 の適切なエントリを参照すること。 .\"O Most socket-level options utilize an .\"O .I int @@ -185,40 +185,40 @@ getsockopt, setsockopt \- .\"O .BR setsockopt (), .\"O the argument should be nonzero to enable a boolean option, or zero if the .\"O option is to be disabled. -¤Û¤È¤ó¤É¤Î¥½¥±¥Ã¥ÈÁؤΥª¥×¥·¥ç¥ó¤Ï +ほとんどのソケット層のオプションは .I optval -¤Ë +に .I int -°ú¤­¿ô¤òÍøÍѤ¹¤ë¡£ +引き数を利用する。 .BR setsockopt () -¤Ç¡¢ÆóÃÍ(boolean)¥ª¥×¥·¥ç¥ó¤òÍ­¸ú(enable)¤Ë¤¹¤ë¤Ë¤Ï¥¼¥í°Ê³°¤ò»ØÄꤷ¡¢ -̵¸ú(disable)¤Ë¤¹¤ë¤Ë¤Ï¥¼¥í¤ò»ØÄꤹ¤ë¡£ +で、二値(boolean)オプションを有効(enable)にするにはゼロ以外を指定し、 +無効(disable)にするにはゼロを指定する。 .PP .\"O For a description of the available socket options see .\"O .BR socket (7) .\"O and the appropriate protocol man pages. -ÍøÍѲÄǽ¤Ê¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤ÎÀâÌÀ¤Ë´Ø¤·¤Æ¤Ï¡¢ +利用可能なソケットオプションの説明に関しては、 .BR socket (7) -¤ÈŬÀڤʥץí¥È¥³¥ë¤Î man ¥Ú¡¼¥¸¤ò»²¾È¤Î¤³¤È¡£ +と適切なプロトコルの man ページを参照のこと。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£¥¨¥é¡¼»þ¤Ë¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合にはゼロを返す。エラー時には \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP 10 .B EBADF .\"O The argument .\"O .I sockfd .\"O is not a valid descriptor. -°ú¤­¿ô +引き数 .I sockfd -¤¬Í­¸ú¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なディスクリプタでない。 .TP .B EFAULT .\"O The address pointed to by @@ -230,20 +230,20 @@ getsockopt, setsockopt \- .\"O .I optlen .\"O is not in a valid part of the process address space. .I optval -¤Ç»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤¬¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ÎÍ­¸ú¤ÊÉôʬ¤Ç¤Ï¤Ê¤¤¡£ +で指定されたアドレスがプロセスのアドレス空間の有効な部分ではない。 .BR getsockopt () -¤Î¾ì¹ç¡¢ +の場合、 .I optlen -¤¬¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ÎÍ­¸ú¤ÊÉôʬ¤Ç¤Ê¤¤¾ì¹ç¤Ë¤â¤³¤Î¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ +がプロセスのアドレス空間の有効な部分でない場合にもこのエラーが返される。 .TP .B EINVAL .\"O .I optlen .\"O invalid in .\"O .BR setsockopt (). .BR setsockopt () -¤Ç +で .I option -¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +が不正である。 .\"O In some cases this error can also occur for an invalid value in .\"O .IR optval .\"O (e.g., for the @@ -251,52 +251,52 @@ getsockopt, setsockopt \- .\"O option described in .\"O .BR ip (7)). .I optval -¤Ë̵¸ú¤ÊÃͤ¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤â¡¢¤³¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë -(Î㤨¤Ð¡¢ +に無効な値が指定された場合にも、このエラーが発生する可能性がある +(例えば、 .BR ip (7) -¤ËÀâÌÀ¤¬¤¢¤ë +に説明がある .B IP_ADD_MEMBERSHIP -¥ª¥×¥·¥ç¥ó¤Ê¤É)¡£ +オプションなど)。 .TP .B ENOPROTOOPT .\"O The option is unknown at the level indicated. -»ØÄꤵ¤ì¤¿ÁØ(level)¤Ë¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¸ºß¤·¤Ê¤¤¡£ +指定された層(level)にはこのオプションは存在しない。 .TP .B ENOTSOCK .\"O The argument .\"O .I sockfd .\"O is a file, not a socket. -°ú¤­¿ô +引き数 .I sockfd -¤Ï¥Õ¥¡¥¤¥ë¤Ç¤¢¤ê¡¢¥½¥±¥Ã¥È¤Ç¤Ê¤¤¡£ +はファイルであり、ソケットでない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O SVr4, 4.4BSD (these system calls first appeared in 4.2BSD), .\"O POSIX.1-2001. .\"O .\" SVr4 documents additional ENOMEM and ENOSR error codes, but does .\"O .\" not document the .\"O .\" .BR SO_SNDLOWAT ", " SO_RCVLOWAT ", " SO_SNDTIMEO ", " SO_RCVTIMEO .\"O .\" options -SVr4, 4.4BSD (¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï 4.2BSD ¤ÇºÇ½é¤Ë¸½¤ì¤¿), +SVr4, 4.4BSD (これらのシステム・コールは 4.2BSD で最初に現れた), POSIX.1-2001. -.\" SVr4 ¤Ë¤Ï¾¤Ë ENOMEM ¤È ENOSR ¥¨¥é¡¼¡¦¥³¡¼¥É¤Ë¤Ä¤¤¤Æ¤âµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -.\" ¤·¤«¤·¡¢ +.\" SVr4 には他に ENOMEM と ENOSR エラー・コードについても記述されている。 +.\" しかし、 .\" .BR SO_SNDLOWAT ", " SO_RCVLOWAT ", " SO_SNDTIMEO ", " SO_RCVTIMEO -.\" ¥ª¥×¥·¥ç¥ó¤Ë´Ø¤¹¤ëµ­½Ò¤Ï¤Ê¤¤¡£ +.\" オプションに関する記述はない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O POSIX.1-2001 does not require the inclusion of .\"O .IR , .\"O and this header file is not required on Linux. .\"O However, some historical (BSD) implementations required this header .\"O file, and portable applications are probably wise to include it. -POSIX.1-2001 ¤Ç¤Ï +POSIX.1-2001 では .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ïɬ¿Ü¤È¤µ¤ì¤Æ¤ª¤é¤º¡¢ -Linux ¤Ç¤Ï¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÏɬÍפǤϤʤ¤¡£ -¤·¤«¤·¡¢Îò»ËŪ¤Ë¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¼ÂÁõ (BSD ·Ï) ¤Ç¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬ -ɬÍפǤ¢¤ê¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤ò -¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤Î¤¬¸­ÌÀ¤Ç¤¢¤í¤¦¡£ +のインクルードは必須とされておらず、 +Linux ではこのヘッダファイルは必要ではない。 +しかし、歴史的には、いくつかの実装 (BSD ç³») でこのヘッダファイルが +必要であり、移植性が必要なアプリケーションではこのファイルを +インクルードするのが賢明であろう。 .\"O The .\"O .I optlen @@ -308,33 +308,33 @@ Linux .\"O .I "int [*]" .\"O (and this is what 4.x BSD and libc4 and libc5 have). .BR getsockopt () -¤È +と .BR setsockopt () -¤Î +の .I optlen -°ú¤­¿ô¤Ï¼ÂºÝ¤Ï +引き数は実際は .I int [*] -¤Ç¤¢¤ë (¤½¤·¤Æ 4.x BSD ¤È libc4 ¤È libc5 ¤Ï¤½¤¦¤Ê¤Ã¤Æ¤¤¤ë)¡£ +である (そして 4.x BSD と libc4 と libc5 はそうなっている)。 .\"O Some POSIX confusion resulted in the present .\"O .IR socklen_t , .\"O also used by glibc. .\"O See also -POSIX ¤Ç¤Ïäþ;¶ÊÀÞ¤ò·Ð¤Æ¸½ºß¤Î +POSIX では紆余曲折を経て現在の .I socklen_t -¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢ -glibc ¤Ç¤â +になっており、 +glibc でも .I socklen_t -¤ò»È¤Ã¤Æ¤¤¤ë¡£ +を使っている。 .BR accept (2) -¤â»²¾È¤Î¤³¤È¡£ +も参照のこと。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Several of the socket options should be handled at lower levels of the .\"O system. -¥½¥±¥Ã¥È¤Î¥ª¥×¥·¥ç¥ó¤Î¤¤¤¯¤Ä¤«¤Ï¥·¥¹¥Æ¥à¤Î¤è¤êÄ㤤ÁØ¤Ç -½èÍý¤µ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +ソケットのオプションのいくつかはシステムのより低い層で +処理されるべきである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ioctl (2), .BR socket (2), .BR getprotoent (3), diff --git a/draft/man2/gettid.2 b/draft/man2/gettid.2 index 1c0a5864..ac619bda 100644 --- a/draft/man2/gettid.2 +++ b/draft/man2/gettid.2 @@ -31,18 +31,18 @@ .\" .TH GETTID 2 2008-04-14 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O gettid \- get thread identification -gettid \- ¥¹¥ì¥Ã¥ÉID ¤ò¼èÆÀ¤¹¤ë +gettid \- スレッドID を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .B pid_t gettid(void); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR gettid () .\"O returns the caller's thread ID (TID). .\"O In a single-threaded process, the thread ID @@ -51,63 +51,63 @@ gettid \- .\"O In a multithreaded process, all threads .\"O have the same PID, but each one has a unique TID. .BR gettid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥¹¥ì¥Ã¥É ID (TID) ¤òÊÖ¤¹¡£ -¥·¥ó¥°¥ë¥¹¥ì¥Ã¥É¤Î¥×¥í¥»¥¹¤Ç¤Ï¡¢¥¹¥ì¥Ã¥É ID ¤Ï +は呼び出し元のスレッド ID (TID) を返す。 +シングルスレッドのプロセスでは、スレッド ID は .RB ( getpid (2) -¤¬ÊÖ¤¹¥×¥í¥»¥¹ ID (PID) ¤ÈÅù¤·¤¤¡£ -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Î¥×¥í¥»¥¹¤Ç¤Ï¡¢Á´¤Æ¤Î¥¹¥ì¥Ã¥É¤ÏƱ¤¸ PID ¤ò»ý¤Ä¤¬¡¢ -¤½¤ì¤¾¤ì¤Î¥¹¥ì¥Ã¥É¤Ï°ì°Õ¤Ê TID ¤ò»ý¤Ä¡£ +が返すプロセス ID (PID) と等しい。 +マルチスレッドのプロセスでは、全てのスレッドは同じ PID を持つが、 +それぞれのスレッドは一意な TID を持つ。 .\"O For further details, see the discussion of .\"O .BR CLONE_THREAD .\"O in .\"O .BR clone (2). -¤µ¤é¤Ê¤ë¾ÜºÙ¤Ï¡¢ +さらなる詳細は、 .BR clone (2) -¤Î +の .BR CLONE_THREAD -¤Ë¤Ä¤¤¤Æ¤ÎµÄÏÀ¤ò»²¾È¤¹¤ë¤³¤È¡£ +についての議論を参照すること。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, returns the thread ID of the calling process. -À®¸ù¤Î¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥¹¥ì¥Ã¥ÉID ¤òÊÖ¤¹¡£ +成功の場合、呼び出し元のプロセスのスレッドID を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O This call is always successful. -¤³¤Î¥³¡¼¥ë¤Ï¾ï¤ËÀ®¸ù¤¹¤ë¡£ +このコールは常に成功する。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The .\"O .BR gettid () .\"O system call first appeared on Linux in kernel 2.4.11. .BR gettid () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¥«¡¼¥Í¥ë 2.4.11 ¤Î Linux ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +システムコールは、カーネル 2.4.11 の Linux で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR gettid () .\"O is Linux-specific and should not be used in programs that .\"O are intended to be portable. .BR gettid () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢ -°Ü¿¢¤òÁÛÄꤷ¤¿¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +は Linux 固有であり、 +移植を想定したプログラムでは使用すべきではない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Glibc does not provide a wrapper for this system call; call it using .\"O .BR syscall (2). -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +glibc はこのシステムコールに対するラッパー関数を提供していない。 .BR syscall (2) -¤ò»È¤Ã¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¡£ +を使って呼び出すこと。 .\" See http://sourceware.org/bugzilla/show_bug.cgi?id=6399 .\" "gettid() should have a wrapper" .\"O The thread ID returned by this call is not the same thing as a .\"O POSIX thread ID (i.e., the opaque value returned by .\"O .BR pthread_self (3)). -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ÊÖ¤¹¥¹¥ì¥Ã¥É ID ¤Ï -POSIX ¥¹¥ì¥Ã¥É ID +このシステムコールが返すスレッド ID は +POSIX スレッド ID .RB ( pthread_self (3) -¤¬ÊÖ¤¹Û£Ëæ¤ÊÃÍ) ¤ÈƱ¤¸¤â¤Î¤Ç¤Ï¤Ê¤¤¡£ +が返す曖昧な値) と同じものではない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR clone (2), .BR fork (2), .BR getpid (2) diff --git a/draft/man2/gettimeofday.2 b/draft/man2/gettimeofday.2 index b2f62f11..9ce63624 100644 --- a/draft/man2/gettimeofday.2 +++ b/draft/man2/gettimeofday.2 @@ -47,19 +47,19 @@ .\" Updated 2006-07-23, Akihiro MOTOKI .\" Updated 2009-04-13, Akihiro MOTOKI, LDP v3.20 .\" -.\"WORD: timezone ¥¿¥¤¥à¥¾¡¼¥ó -.\"WORD: daylight savings times ²Æ»þ´Ö(daylight savings times) -.\"WORD: macro ¥Þ¥¯¥í +.\"WORD: timezone タイムゾーン +.\"WORD: daylight savings times 夏時間(daylight savings times) +.\"WORD: macro マクロ .\"WORD: null NULL -.\"WORD: superuser ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ +.\"WORD: superuser スーパー・ユーザー .\" .TH GETTIMEOFDAY 2 2009-03-25 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O gettimeofday, settimeofday \- get / set time -gettimeofday, settimeofday \- »þ¹ï¤ò¼èÆÀ/ÀßÄꤹ¤ë +gettimeofday, settimeofday \- 時刻を取得/設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include @@ -72,15 +72,15 @@ gettimeofday, settimeofday \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR settimeofday (): _BSD_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The functions .\"O .BR gettimeofday () .\"O and @@ -91,25 +91,25 @@ _BSD_SOURCE .\"O .I struct timeval .\"O (as specified in .\"O .IR ): -´Ø¿ô +関数 .BR gettimeofday () -¤È +と .BR settimeofday () -¤Ï»þ¹ï¤È¥¿¥¤¥à¥¾¡¼¥ó¤ò¼èÆÀ¤Þ¤¿¤ÏÀßÄꤹ¤ë¡£ +は時刻とタイムゾーンを取得または設定する。 .I tv -°ú¤­¿ô¤Ï +引き数は .I struct timeval -¤Ç¤¢¤ë +である .RI ( -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë): +で定義されている): .sp .in +4n .nf struct timeval { .\"O time_t tv_sec; /* seconds */ .\"O suseconds_t tv_usec; /* microseconds */ - time_t tv_sec; /* Éà */ - suseconds_t tv_usec; /* ¥Þ¥¤¥¯¥íÉà */ + time_t tv_sec; /* 秒 */ + suseconds_t tv_usec; /* マイクロ秒 */ }; .fi .in @@ -120,21 +120,21 @@ struct timeval { .\"O .I tz .\"O argument is a .\"O .IR "struct timezone" : -¤³¤ì¤Ë¤è¤êµª¸µ (the Epoch: +これにより紀元 (the Epoch: .BR time (2) -¤ò»²¾È) ¤«¤é¤ÎÉäȥޥ¤¥¯¥íÉ䬼èÆÀ¤Ç¤­¤ë¡£ +を参照) からの秒とマイクロ秒が取得できる。 .I tz -°ú¤­¿ô¤Ï +引き数は .I "struct timezone" -¤Ç¤¢¤ë: +である: .sp .in +4n .nf struct timezone { .\"O int tz_minuteswest; /* minutes west of Greenwich */ .\"O int tz_dsttime; /* type of DST correction */ - int tz_minuteswest; /* ¥°¥ê¥Ë¥Ã¥¸É¸½à»þ¤È¤Îº¹ (À¾Êý¤Ëʬñ°Ì) */ - int tz_dsttime; /* ²Æ»þ´ÖÄ´À°¤Î·¿ */ + int tz_minuteswest; /* グリニッジ標準時との差 (西方に分単位) */ + int tz_dsttime; /* 夏時間調整の型 */ }; .fi .in @@ -145,9 +145,9 @@ struct timezone { .\"O .I tz .\"O is NULL, the corresponding structure is not set or returned. .I tv -¤ä +や .I tz -¤¬ NULL ¤Î¾ì¹ç¡¢Âбþ¤¹¤ë¹½Â¤ÂΤÎÀßÄê/¼èÆÀ¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ +が NULL の場合、対応する構造体の設定/取得は行われない。 .\" The following is covered under EPERM below: .\" .PP .\" Only the superuser may use @@ -167,15 +167,15 @@ struct timezone { .\"O Thus, the following .\"O is purely of historic interest. .I timezone -¹½Â¤ÂΤò»È¤¦¤Î¤Ï»þÂåÃÙ¤ì (obsolete) ¤Ç¤¢¤ë: +構造体を使うのは時代遅れ (obsolete) である: .I tz -°ú¤­¿ô¤ÏÄ̾ï¤Ï NULL ¤Ë»ØÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£ +引き数は通常は NULL に指定すべきである。 .I tz_dsttime -¥Õ¥£¡¼¥ë¥É¤Ï Linux ¤Ç¤Ï°ìÀڻȤï¤ì¤Æ¤³¤Ê¤«¤Ã¤¿; -libc ¤ä glibc ¤Ç¤â¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤³¤Ê¤«¤Ã¤¿¤·¡¢ -¤³¤ì¤«¤é¤â¥µ¥Ý¡¼¥È¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ -¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹Ãæ¤ÎÀë¸À°Ê³°¤Ç¡¢¤³¤Î¥Õ¥£¡¼¥ë¥É¤¬Â¸ºß¤¹¤ë¤Î¤ÏÁ´¤Æ¥Ð¥°¤Ç¤¢¤ë¡£ -¤è¤Ã¤Æ¤³¤ì°Ê¹ß¤Îµ­½Ò¤Ï¡¢½ã¿è¤ËÎò»ËŪ¶½Ì£¤Ë´ð¤Å¤¤¤¿¤â¤Î¤Ç¤¢¤ë¡£ +フィールドは Linux では一切使われてこなかった; +libc や glibc でもサポートされてこなかったし、 +これからもサポートされることはない。 +カーネルのソース中の宣言以外で、このフィールドが存在するのは全てバグである。 +よってこれ以降の記述は、純粋に歴史的興味に基づいたものである。 .\"O The field .\"O .I tz_dsttime @@ -187,47 +187,47 @@ libc .\"O algorithm.) .\"O The daylight saving time algorithms defined are as follows : .I tz_dsttime -¥Õ¥£¡¼¥ë¥É¤Ë¤Ï (°Ê²¼¤ÇÍ¿¤¨¤é¤ì¤ë¤è¤¦¤Ê) ¥·¥ó¥Ü¥ëÄê¿ô¤¬³ÊǼ¤µ¤ì¤ë¡£ -¤³¤ì¤Ï°ìǯ¤Î¤¦¤Á¤Ç¤¤¤Ä²Æ»þ´Ö (Daylight Savings Time) ¤ò¼Â»Ü¤¹¤ë¤«¤ò¼¨¤·¤Æ¤¤¤ë -(Ãí°Õ: ¤½¤ÎÃͤÏǯ´Ö¤òÄ̤·¤¿Äê¿ô¤Ç¤¢¤ë: -²Æ»þ´Ö¤¬¼Â»ÜÃæ¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¤ï¤±¤Ç¤Ï¤Ê¤¯¡¢ -¥¢¥ë¥´¥ê¥º¥à¤òÁªÂò¤·¤Æ¤¤¤ë¤À¤±¤Ç¤¢¤ë)¡£ -²Æ»þ´Ö¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë: +フィールドには (以下で与えられるような) シンボル定数が格納される。 +これは一年のうちでいつ夏時間 (Daylight Savings Time) を実施するかを示している +(注意: その値は年間を通した定数である: +夏時間が実施中であることを示すわけではなく、 +アルゴリズムを選択しているだけである)。 +夏時間は以下のように定義される: .in +4n .nf .\"O \fBDST_NONE\fP /* not on dst */ -\fBDST_NONE\fP /* ²Æ»þ´Ö¤òºÎÍѤ·¤Æ¤¤¤Ê¤¤ */ +\fBDST_NONE\fP /* 夏時間を採用していない */ .br .\"O \fBDST_USA\fP /* USA style dst */ -\fBDST_USA\fP /* ¥¢¥á¥ê¥«¹ç½°¹ñ¼°²Æ»þ´Ö */ +\fBDST_USA\fP /* アメリカ合衆国式夏時間 */ .br .\"O \fBDST_AUST\fP /* Australian style dst */ -\fBDST_AUST\fP /* ¥ª¡¼¥¹¥È¥é¥ê¥¢¼°²Æ»þ´Ö */ +\fBDST_AUST\fP /* オーストラリア式夏時間 */ .br .\"O \fBDST_WET\fP /* Western European dst */ -\fBDST_WET\fP /* À¾¥è¡¼¥í¥Ã¥Ñ¼°²Æ»þ´Ö */ +\fBDST_WET\fP /* 西ヨーロッパ式夏時間 */ .br .\"O \fBDST_MET\fP /* Middle European dst */ -\fBDST_MET\fP /* Ãæ±û¥è¡¼¥í¥Ã¥Ñ¼°²Æ»þ´Ö */ +\fBDST_MET\fP /* 中央ヨーロッパ式夏時間 */ .br .\"O \fBDST_EET\fP /* Eastern European dst */ -\fBDST_EET\fP /* Åì¥è¡¼¥í¥Ã¥Ñ¼°²Æ»þ´Ö */ +\fBDST_EET\fP /* 東ヨーロッパ式夏時間 */ .br .\"O \fBDST_CAN\fP /* Canada */ -\fBDST_CAN\fP /* ¥«¥Ê¥À */ +\fBDST_CAN\fP /* カナダ */ .br .\"O \fBDST_GB\fP /* Great Britain and Eire */ -\fBDST_GB\fP /* ¥°¥ì¡¼¥È¥Ö¥ê¥Æ¥ó¤ª¤è¤Ó¥¢¥¤¥ë¥é¥ó¥É */ +\fBDST_GB\fP /* グレートブリテンおよびアイルランド */ .br .\"O \fBDST_RUM\fP /* Rumania */ -\fBDST_RUM\fP /* ¥ë¡¼¥Þ¥Ë¥¢ */ +\fBDST_RUM\fP /* ルーマニア */ .br .\"O \fBDST_TUR\fP /* Turkey */ -\fBDST_TUR\fP /* ¥È¥ë¥³ */ +\fBDST_TUR\fP /* トルコ */ .br .\"O \fBDST_AUSTALT\fP /* Australian style with shift in 1986 */ -\fBDST_AUSTALT\fP /* 1986ǯ¤Ë°Ü¹Ô¤µ¤ì¤¿¥ª¡¼¥¹¥È¥é¥ê¥¢¼° */ +\fBDST_AUSTALT\fP /* 1986年に移行されたオーストラリア式 */ .fi .in .PP @@ -243,15 +243,15 @@ libc .\"O the .\"O .I tz_dsttime .\"O field should be zero. -ÅöÁ³¤Î¤³¤È¤Ê¤¬¤é¡¢²Æ»þ´Ö¤¬¤É¤Î´ü´Ö¤Ë¼Â»Ü¤µ¤ì¤ë¤«¤ò -¹ñ¤´¤È¤Î´Êñ¤Ê¥¢¥ë¥´¥ê¥º¥à¤ÇƳ¤¯¤³¤È¤¬¤Ç¤­¤Ê¤¤¤³¤È¤¬È½ÌÀ¤·¤¿¡£ -¼ÂºÝ¡¢²Æ»þ´Ö¤Î´ü´Ö¤Ïͽ¬ÉÔ²Äǽ¤ÊÀ¯¼£Åª·èÄê¤Ç·è¤Þ¤ë¡£ -¤½¤Î¤¿¤á¤³¤ÎÊýË¡¤Ç¥¿¥¤¥à¡¦¥¾¡¼¥ó¤òɽ¤¹¤³¤È¤ÏÃÇÇ°¤µ¤ì¤¿¡£ -Linux ¤Ë¤ª¤¤¤Æ +当然のことながら、夏時間がどの期間に実施されるかを +国ごとの簡単なアルゴリズムで導くことができないことが判明した。 +実際、夏時間の期間は予測不可能な政治的決定で決まる。 +そのためこの方法でタイム・ゾーンを表すことは断念された。 +Linux において .BR settimeofday () -¤ò¸Æ¤Ó½Ð¤¹¤È¤­¤Ï¡¢ +を呼び出すときは、 .I tz_dsttime -¥Õ¥£¡¼¥ë¥É¤ò 0 ¤Ë¤¹¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +フィールドを 0 にするべきである。 .PP .\"O Under Linux there are some peculiar "warp clock" semantics associated .\"O with the @@ -268,34 +268,34 @@ Linux .\"O is on local time, and that it has to be incremented by this amount .\"O to get UTC system time. .\"O No doubt it is a bad idea to use this feature. -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR settimeofday () -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ë´ØÏ¢¤·¤Æ¡¢ÆÈÆäΡ֥¯¥í¥Ã¥¯¤Î¥º¥ì (warp clock)¡×¤¬Â¸ºß¤¹¤ë¡£ -¤³¤ì¤Ï (¥Ö¡¼¥È¸å¤Î) ºÇ½é¤Î¸Æ¤Ó½Ð¤·¤Ç +システム・コールに関連して、独特の「クロックのズレ (warp clock)」が存在する。 +これは (ブート後の) 最初の呼び出しで .I tz -°ú¤­¿ô¤¬ NULL ¤Ç¤Ê¤¯¡¢ +引き数が NULL でなく、 .I tv -°ú¤­¿ô¤¬ NULL ¤Ç +引き数が NULL で .I tz_minuteswest -¥Õ¥£¡¼¥ë¥É¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¤Ëµ¯¤³¤ë¡£ -¤³¤Î¤è¤¦¤Ê¾ì¹ç¡¢ +フィールドが 0 でない場合に起こる。 +このような場合、 .BR settimeofday () -¤Ï CMOS ¥¯¥í¥Ã¥¯¤¬ÃÏÊý»þ (local time) ¤Ç¤¢¤ê¡¢ -UTC ¥·¥¹¥Æ¥à»þ´Ö¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡¢ +は CMOS クロックが地方時 (local time) であり、 +UTC システム時間を得るためには、 .I tz_minuteswest -¤Îʬ¤À¤±Áý²Ã¤µ¤»¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¤È¤ß¤Ê¤·¤Æ¤·¤Þ¤¦¡£ -µ¿¤¤¤â¤Ê¤¯¡¢¤³¤Îµ¡¹½¤ò»È¤¦¤³¤È¤ÏÎɤ¤¹Í¤¨¤Ç¤Ï¤Ê¤¤¡£ +の分だけ増加させなくてはならないとみなしてしまう。 +疑いもなく、この機構を使うことは良い考えではない。 .PP .\"O Macros for operating on .\"O .I timeval .\"O structures are described in .\"O .BR timeradd (3). .I timeval -¹½Â¤ÂΤòÁàºî¤¹¤ë¤¿¤á¤Î¥Þ¥¯¥í¤ÎÀâÌÀ¤Ï +構造体を操作するためのマクロの説明は .BR timeradd (3) -¤Ë¤¢¤ë¡£ +にある。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR gettimeofday () .\"O and .\"O .BR settimeofday () @@ -303,14 +303,14 @@ UTC .\"O .I errno .\"O is set appropriately). .BR gettimeofday () -¤È +と .BR settimeofday () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤·¡¢¼ºÇÔ¤·¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹ -(¤³¤Î¾ì¹ç¤Ï +は成功すると 0 を返し、失敗した場合は \-1 を返す +(この場合は .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë)¡£ +が適切に設定される)。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O One of @@ -319,13 +319,13 @@ UTC .\"O .I tz .\"O pointed outside the accessible address space. .I tv -¤« +か .I tz -¤Î¤É¤Á¤é¤«¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +のどちらかがアクセス可能なアドレス空間外を指している。 .TP .B EINVAL .\"O Timezone (or something else) is invalid. -¥¿¥¤¥à¥¾¡¼¥ó (¤Þ¤¿¤Ï¾¤Î²¿¤«) ¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +タイムゾーン (または他の何か) が不正である。 .TP .B EPERM .\"O The calling process has insufficient privilege to call @@ -333,50 +333,50 @@ UTC .\"O under Linux the .\"O .B CAP_SYS_TIME .\"O capability is required. -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë +呼び出し元プロセスに .BR settimeofday () -¤ò¸Æ¤Ó½Ð¤¹¤¿¤á¤Î½½Ê¬¤ÊÆø¢¤¬¤Ê¤¤¡£ -Linux ¤Ç¤Ï +を呼び出すための十分な特権がない。 +Linux では .B CAP_SYS_TIME -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティ (capability) が必要である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O SVr4, 4.3BSD. .\"O POSIX.1-2001 describes .\"O .BR gettimeofday () .\"O but not .\"O .BR settimeofday (). -SVr4, 4.3BSD ¤Ë½àµò¤¹¤ë¡£ -POSIX.1-2001 ¤Ï +SVr4, 4.3BSD に準拠する。 +POSIX.1-2001 は .BR gettimeofday () -¤Ë¤Ä¤¤¤Æ¤Ïµ­½Ò¤·¤Æ¤¤¤ë¤¬¡¢ +については記述しているが、 .BR settimeofday () -¤Ë¤Ä¤¤¤Æ¤Ïµ­½Ò¤·¤Æ¤¤¤Ê¤¤¡£ +については記述していない。 .\"O POSIX.1-2008 marks .\"O .BR gettimeofday () .\"O as obsolete, recommending the use of .\"O .BR clock_gettime (2) .\"O instead. -POSIX.1-2008 ¤Ç¤Ï +POSIX.1-2008 では .BR gettimeofday () -¤ÏÇÑ»ßͽÄê¤È¤µ¤ì¤Æ¤ª¤ê¡¢ -Âå¤ï¤ê¤Ë +は廃止予定とされており、 +代わりに .BR clock_gettime (2) -¤Î»ÈÍѤ¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£ +の使用が推奨されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .LP .\"O Traditionally, the fields of .\"O .I struct timeval .\"O were of type .\"O .IR long . -ÀÎ¤Ï +昔は .I struct timeval -¤Î¥Õ¥£¡¼¥ë¥É¤Ï +のフィールドは .I long -·¿¤Ç¤¢¤Ã¤¿¡£ +型であった。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR date (1), .BR adjtimex (2), .BR time (2), diff --git a/draft/man2/getuid.2 b/draft/man2/getuid.2 index 7a709c26..906a0901 100644 --- a/draft/man2/getuid.2 +++ b/draft/man2/getuid.2 @@ -33,11 +33,11 @@ .\" .TH GETUID 2 1993-07-23 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getuid, geteuid \- get user identity -getuid, geteuid \- ¥æ¡¼¥¶¡¼ ID ¤òÆÀ¤ë +getuid, geteuid \- ユーザー ID を得る .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include @@ -46,27 +46,27 @@ getuid, geteuid \- .br .B uid_t geteuid(void); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR getuid () .\"O returns the real user ID of the calling process. .BR getuid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶¡¼ ID ¤òÊÖ¤¹¡£ +は呼び出し元のプロセスの実ユーザー ID を返す。 .\"O .BR geteuid () .\"O returns the effective user ID of the calling process. .BR geteuid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤òÊÖ¤¹¡£ +は呼び出し元のプロセスの実効ユーザー ID を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O These functions are always successful. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¾ï¤ËÀ®¸ù¤¹¤ë¡£ +これらの関数は常に成功する。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001, 4.3BSD. .\"O .SH NOTES .\"O .SS History -.SH Ãí°Õ -.SS Îò»Ë +.SH 注意 +.SS 歴史 .\"O In UNIX V6 the .\"O .BR getuid () .\"O call returned @@ -75,18 +75,18 @@ POSIX.1-2001, 4.3BSD. .\"O .BR getuid () .\"O and .\"O .BR geteuid (). -UNIX V6 ¤Ç¤Ï +UNIX V6 では .BR getuid () -¥³¡¼¥ë¤Ï +コールは .I "(euid << 8) + uid" -¤òÊÖ¤·¤Æ¤¤¤¿¡£ -UNIX V7 ¤Ç¤Ï +を返していた。 +UNIX V7 では .BR getuid () -¤È +と .BR geteuid () -¤È¤¤¤¦ÊÌ¡¹¤Î¥³¡¼¥ë¤¬Æ³Æþ¤µ¤ì¤¿¡£ +という別々のコールが導入された。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getresuid (2), .BR setreuid (2), .BR setuid (2), diff --git a/draft/man2/getxattr.2 b/draft/man2/getxattr.2 index cbce2703..376470ab 100644 --- a/draft/man2/getxattr.2 +++ b/draft/man2/getxattr.2 @@ -29,16 +29,16 @@ .\" Translated Tue Jul 8 02:47:19 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: extended attributes ³Èĥ°À­ -.\"WORD: namespace ̾Á°¶õ´Ö +.\"WORD: extended attributes 拡張属性 +.\"WORD: namespace 名前空間 .\" .TH GETXATTR 2 2001-12-01 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O getxattr, lgetxattr, fgetxattr \- retrieve an extended attribute value -.SH ̾Á° -getxattr, lgetxattr, fgetxattr \- ³Èĥ°À­¤ÎÃͤò¼èÆÀ¤¹¤ë +.SH 名前 +getxattr, lgetxattr, fgetxattr \- 拡張属性の値を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .fam C .nf .B #include @@ -53,7 +53,7 @@ getxattr, lgetxattr, fgetxattr \- .fi .fam T .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Extended attributes are .\"O .IR name :\c .\"O .I value @@ -64,17 +64,17 @@ getxattr, lgetxattr, fgetxattr \- .\"O data). .\"O A complete overview of extended attributes concepts can be found in .\"O .BR attr (5). -³Èĥ°À­¤Ï¡¢inode (¥Õ¥¡¥¤¥ë¡¢¥Ç¥£¥ì¥¯¥È¥ê¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯Åù) ¤Ë -´ØÏ¢ÉÕ¤±¤é¤ì¤¿ +拡張属性は、inode (ファイル、ディレクトリ、シンボリックリンク等) に +関連付けられた .IR name :\c .I value -¤ÎÂФǤ¢¤ë¡£ -¤³¤ì¤é¤Ï¡¢¥·¥¹¥Æ¥à¾å¤Î¤¹¤Ù¤Æ¤Î inode ¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿Ä̾ï¤Î°À­ +の対である。 +これらは、システム上のすべての inode に関連付けられた通常の属性 .RB ( stat (2) -¤¬ÊÖ¤¹¥Ç¡¼¥¿) ¤ò³ÈÄ¥¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -³Èĥ°À­¤Î¥³¥ó¥»¥×¥È¤Ï +が返すデータ) を拡張するものである。 +拡張属性のコンセプトは .BR attr (5) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ +に書かれている。 .PP .\"O .BR getxattr () .\"O retrieves the @@ -88,16 +88,16 @@ getxattr, lgetxattr, fgetxattr \- .\"O .I value .\"O is returned. .BR getxattr () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÆâ¤Î»ØÄꤵ¤ì¤¿ +は、ファイルシステム内の指定された .I path -¤ËÂбþ¤¹¤ë¡¢Ì¾Á° +に対応する、名前 .I name -¤Î³Èĥ°À­¤Î +の拡張属性の .I value -(ÃÍ) ¤ò¼èÆÀ¤¹¤ë¡£ -°À­ +(値) を取得する。 +属性 .I value -¤ÎŤµ¤¬ÊÖ¤µ¤ì¤ë¡£ +の長さが返される。 .PP .\"O .BR lgetxattr () .\"O is identical to @@ -105,10 +105,10 @@ getxattr, lgetxattr, fgetxattr \- .\"O except in the case of a symbolic link, where the link itself is .\"O interrogated, not the file that it refers to. .BR lgetxattr () -¤Ï +は .BR getxattr () -¤ÈƱ¤¸¤À¤¬¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¤Ë¡¢¥ê¥ó¥¯¤¬»²¾È¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë -¤Ç¤Ï¤Ê¤¯¡¢¥ê¥ó¥¯¤½¤Î¤â¤Î¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ëÅÀ¤À¤±¤¬°Û¤Ê¤ë¡£ +と同じだが、シンボリックリンクの場合に、リンクが参照しているファイル +ではなく、リンクそのものの情報を取得する点だけが異なる。 .PP .\"O .BR fgetxattr () .\"O is identical to @@ -120,17 +120,17 @@ getxattr, lgetxattr, fgetxattr \- .\"O is interrogated in place of .\"O .IR path . .BR fgetxattr () -¤Ï +は .BR getxattr () -¤ÈƱ¤¸¤À¤¬¡¢ +と同じだが、 .I path -¤ÎÂå¤ï¤ê¤Ë +の代わりに .I fd -¤Ç»²¾È¤µ¤ì¤¿¥ª¡¼¥×¥óºÑ¤ß¥Õ¥¡¥¤¥ë¤Î¾ðÊó¤À¤±¤ò¼èÆÀ¤¹¤ëÅÀ¤¬°Û¤Ê¤ë +で参照されたオープン済みファイルの情報だけを取得する点が異なる .RI ( fd -¤Ï +は .BR open (2) -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë)¡£ +によって返される)。 .PP .\"O An extended attribute .\"O .I name @@ -139,13 +139,13 @@ getxattr, lgetxattr, fgetxattr \- .\"O namespaces associated with an individual inode. .\"O The value of an extended attribute is a chunk of arbitrary textual or .\"O binary data of specified length. -³Èĥ°À­¤Î̾Á° +拡張属性の名前 .I name -¤ÏÉáÄ̤ΠNULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ç¤¢¤ë¡£ -̾Á°¤Ë¤Ï¡¢Ì¾Á°¶õ´Ö¤òɽ¤¹ÀÜƬ¼­ (prefix) ¤¬´Þ¤Þ¤ì¤ë; -¸Ä¡¹¤Î inode ¤ËÂФ·¤Æ¡¢¸ß¤¤¤ËÆÈΩ¤Ê̾Á°¶õ´Ö¤¬Ê£¿ô¤¢¤Ã¤Æ¤â¤è¤¤¡£ -³Èĥ°À­¤ÎÃͤϡ¢¤¢¤ë°ìÄê¤ÎŤµ¤ÎǤ°Õ¤Î¥Æ¥­¥¹¥È¡¦¥Ç¡¼¥¿¤Þ¤¿¤Ï -¥Ð¥¤¥Ê¥ê¡¦¥Ç¡¼¥¿¤Î½¸¹ç¤Ç¤¢¤ë¡£ +は普通の NULL 終端された文字列である。 +名前には、名前空間を表す接頭辞 (prefix) が含まれる; +個々の inode に対して、互いに独立な名前空間が複数あってもよい。 +拡張属性の値は、ある一定の長さの任意のテキスト・データまたは +バイナリ・データの集合である。 .PP .\"O An empty buffer of .\"O .I size @@ -154,40 +154,40 @@ getxattr, lgetxattr, fgetxattr \- .\"O buffer which is sufficiently large to hold the value associated with .\"O the extended attribute. .I size -¤Ë 0 ¤ò»ØÄꤷ¤Æ¶õ¤Î¥Ð¥Ã¥Õ¥¡¤ò¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÅϤ¹¤³¤È¤¬¤Ç¤­¡¢ -¤³¤Î¾ì¹ç¤Ë¤Ï»ØÄꤵ¤ì¤¿Ì¾Á°¤Î³Èĥ°À­¤Î¸½ºß¤Î¥µ¥¤¥º¤¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤ÎÊýË¡¤Ï¡¢³Èĥ°À­¤ÎÃͤòÊÝ»ý¤¹¤ë¤Î¤Ë½½Ê¬¤ÊÂ礭¤µ¤Î¥Ð¥Ã¥Õ¥¡¡¦¥µ¥¤¥º¤ò -¸«ÀѤâ¤ë¤Î¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡¢ +に 0 を指定して空のバッファをこれらのシステムコールに渡すことができ、 +この場合には指定された名前の拡張属性の現在のサイズが返される。 +この方法は、拡張属性の値を保持するのに十分な大きさのバッファ・サイズを +見積もるのに使うことができる、 .PP .\"O The interface is designed to allow guessing of initial buffer .\"O sizes, and to enlarge buffers when the return value indicates .\"O that the buffer provided was too small. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¡¦¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¡¢½é´ü¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤Î¿ä¬¤ò¤·¤¿¤ê¡¢ -Í¿¤¨¤é¤ì¤¿¥Ð¥Ã¥Õ¥¡¤¬¾®¤µ¤¹¤®¤¿¤³¤È¤òÊÖ¤êÃͤÇÃΤ餻¤ë¤³¤È¤Ç¥Ð¥Ã¥Õ¥¡¤òÂ礭¤¯ -¤·¤¿¤ê¤Ç¤­¤ë¤è¤¦¤ËÀ߷פµ¤ì¤Æ¤¤¤ë¡£ +このシステムコール・インタフェースは、初期バッファのサイズの推測をしたり、 +与えられたバッファが小さすぎたことを返り値で知らせることでバッファを大きく +したりできるように設計されている。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, a positive number is returned indicating the size of the .\"O extended attribute value. .\"O On failure, \-1 is returned and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢³Èĥ°À­¤ÎÃͤÎŤµ¤òɽ¤¹Àµ¤Î¿ô¤¬ÊÖ¤µ¤ì¤ë¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢ \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合、拡張属性の値の長さを表す正の数が返される。 +失敗した場合、 \-1 が返され、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +に適切な値がセットされる。 .PP .\"O If the named attribute does not exist, or the process has no access to .\"O this attribute, .\"O .I errno .\"O is set to .\"O .BR ENOATTR . -»ØÄꤵ¤ì¤¿Ì¾Á°¤Î°À­¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢¤Þ¤¿¤Ï¥×¥í¥»¥¹¤¬¤½¤Î°À­¤Ë¥¢¥¯¥»¥¹ -¤¹¤ë¸¢¸Â¤¬¤Ê¤¤¾ì¹ç¡¢ +指定された名前の属性が存在しない場合、またはプロセスがその属性にアクセス +する権限がない場合、 .I errno -¤Ë +に .B ENOATTR -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .PP .\"O If the .\"O .I size @@ -198,43 +198,43 @@ getxattr, lgetxattr, fgetxattr \- .\"O is set to .\"O .B ERANGE . .I value -¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ +バッファの大きさ .I size -¤¬·ë²Ì¤òÊÝ»ý¤¹¤ë¤Î¤Ë½½Ê¬¤ÊÂ礭¤µ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が結果を保持するのに十分な大きさでない場合、 .I errno -¤Ë +に .B ERANGE -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .PP .\"O If extended attributes are not supported by the file system, or are disabled, .\"O .I errno .\"O is set to .\"O .B ENOTSUP . -³Èĥ°À­¤¬¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -¤â¤·¤¯¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ +拡張属性がそのファイルシステムでサポートされていない場合、 +もしくは無効になっている場合、 .I errno -¤Ë +に .B ENOTSUP -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .PP .\"O The errors documented for the .\"O .BR stat (2) .\"O system call are also applicable here. .BR stat (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÀâÌÀ¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ï -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤âŬÍѤµ¤ì¤ë¡£ +システムコールの説明に書かれているエラーは +これらのシステムコールにも適用される。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These system calls have been available on Linux since kernel 2.4; .\"O glibc support is provided since version 2.3. -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë 2.4 °Ê¹ß¤Î Linux ¤ÇÍøÍѤǤ­¤ë¡£ -glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.3 °Ê¹ß¤Ç¹Ô¤ï¤ì¤Æ¤¤¤ë¡£ +これらのシステムコールはカーネル 2.4 以降の Linux で利用できる。 +glibc でのサポートはバージョン 2.3 以降で行われている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These system calls are Linux-specific. -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ +これらのシステムコールは Linux 独自である。 .\"O .\" .SH AUTHORS -.\" .SH Ãø¼Ô +.\" .SH 著者 .\"O .\" Andreas Gruenbacher, .\"O .\" .RI < a.gruenbacher@computer.org > .\"O .\" and the SGI XFS development team, @@ -242,11 +242,11 @@ glibc .\"O .\" Please send any bug reports or comments to these addresses. .\" Andreas Gruenbacher, .\" .RI < a.gruenbacher@computer.org > -.\" ¤È SGI XFS ³«È¯¥Á¡¼¥à, -.\" .RI < linux-xfs@oss.sgi.com >¡£ -.\" ¥Ð¥°¥ì¥Ý¡¼¥È¤ä¥³¥á¥ó¥È¤Ï¾åµ­¤Î¥¢¥É¥ì¥¹¤Þ¤ÇÁ÷¤Ã¤Æ²¼¤µ¤¤¡£ +.\" と SGI XFS 開発チーム, +.\" .RI < linux-xfs@oss.sgi.com >。 +.\" バグレポートやコメントは上記のアドレスまで送って下さい。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getfattr (1), .BR setfattr (1), .BR listxattr (2), diff --git a/draft/man2/idle.2 b/draft/man2/idle.2 index 8427ba85..223f33e3 100644 --- a/draft/man2/idle.2 +++ b/draft/man2/idle.2 @@ -37,21 +37,21 @@ .\" Updated Mon Jan 3 18:16:36 JST 2000 .\" by Kentaro Shirakata .\" -.\"WORD: Linux-specific Linux ÆÃÍ­ -.\"WORK: portable °Ü¿¢ +.\"WORD: Linux-specific Linux 特有 +.\"WORK: portable 移植 .\" .TH IDLE 2 1994-08-21 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O idle \- make process 0 idle -idle \- ID 0 ¤Î¥×¥í¥»¥¹¤ò¥¢¥¤¥É¥ë¾õÂ֤ˤ¹¤ë +idle \- ID 0 のプロセスをアイドル状態にする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .B int idle(void); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR idle () .\"O is an internal system call used during bootstrap. .\"O It marks the process's pages as swappable, lowers its priority, @@ -59,45 +59,45 @@ idle \- ID 0 .\"O .BR idle () .\"O never returns. .BR idle () -¤Ï¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×»þ¤Ë»ÈÍѤµ¤ì¤ë¡¢ÆâÉô¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤¢¤ë¡£ -¥×¥í¥»¥¹¤Î¥Ú¡¼¥¸¤ò¥¹¥ï¥Ã¥×²Äǽ¤ËÀßÄꤷ¡¢Í¥ÀèÅÙ¤ò²¼¤²¡¢¥á¥¤¥ó¤Î¥¹¥±¥¸¥å¡¼ -¥ë½èÍý¤Î¤¿¤á¤Î¥ë¡¼¥×¤Ø°Ü¹Ô¤¹¤ë¡£ -½¾¤Ã¤Æ +はブートストラップ時に使用される、内部システムコールである。 +プロセスのページをスワップ可能に設定し、優先度を下げ、メインのスケジュー +ル処理のためのループへ移行する。 +従って .BR idle () -¤Ï return ¤¹¤ë¤³¤È¤Ï¤Ê¤¤¡£ +は return することはない。 .PP .\"O Only process 0 may call .\"O .BR idle (). .\"O Any user process, even a process with superuser permission, .\"O will receive .\"O .BR EPERM . -ID 0 ¤Î¥×¥í¥»¥¹¤Î¤ß¤¬ +ID 0 のプロセスのみが .BR idle () -¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¾¤Î¥æ¡¼¥¶¡¼¥×¥í¥»¥¹¤Ï¤¿¤È¤¨¤½¤ì¤¬¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤¿¤È¤·¤Æ -¤â +を使用することができる。 +他のユーザープロセスはたとえそれがスーパーユーザー権限を持っていたとして +も .B EPERM -¤ò¼õ¤±¼è¤ë¡£ +を受け取る。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR idle () .\"O never returns for process 0, and always returns \-1 for a user process. .BR idle () -ID 0 ¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ¤Ï return ¤·¤Ê¤¤¡£¤½¤ì°Ê³°¤Î¥æ¡¼¥¶¡¼¥×¥í¥»¥¹¤Ë¤Ï -¾ï¤Ë \-1 ¤òÊÖ¤¹¡£ +ID 0 のプロセスに対しては return しない。それ以外のユーザープロセスには +常に \-1 を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EPERM .\"O Always, for a user process. -¥æ¡¼¥¶¡¼¥×¥í¥»¥¹¤Ë¤Ï¾ï¤Ë¤³¤ÎÃͤò¥»¥Ã¥È¤¹¤ë¡£ +ユーザープロセスには常にこの値をセットする。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O Since 2.3.13 this system call does not exist anymore. -2.3.13 °Ê¹ß¡¢¤â¤Ï¤ä¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¸ºß¤·¤Ê¤¤¡£ +2.3.13 以降、もはやこのシステムコールは存在しない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This function is Linux-specific, and should not be used in programs .\"O intended to be portable. -¤³¤Î´Ø¿ô¤Ï Linux ÆÃÍ­¤Î´Ø¿ô¤Ç¤¢¤ê¡¢°Ü¿¢À­¤ò»ý¤¿¤»¤¿¤¤¥×¥í¥°¥é¥à¤Ë¤Ï»È -ÍѤ¹¤Ù¤­¤Ç¤Ê¤¤¡£ +この関数は Linux 特有の関数であり、移植性を持たせたいプログラムには使 +用すべきでない。 diff --git a/draft/man2/init_module.2 b/draft/man2/init_module.2 index 929109d5..12e782a7 100644 --- a/draft/man2/init_module.2 +++ b/draft/man2/init_module.2 @@ -10,35 +10,35 @@ .\" .TH INIT_MODULE 2 2006-02-09 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O init_module \- initialize a loadable module entry -init_module \- ¥í¡¼¥À¥Ö¥ë¥â¥¸¥å¡¼¥ë¤Î¥¨¥ó¥È¥ê¤ò½é´ü²½¤¹¤ë +init_module \- ローダブルモジュールのエントリを初期化する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int init_module(const char *" name ", struct module *" image ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR init_module () .\"O loads the relocated module image into kernel space and runs the .\"O module's .\"O .I init .\"O function. .BR init_module () -¤ÏºÆÇÛÃÖ¤µ¤ì¤¿¥â¥¸¥å¡¼¥ë¥¤¥á¡¼¥¸¤ò¥«¡¼¥Í¥ë¶õ´Ö¤Ë¥í¡¼¥É¤·¡¢ -¤½¤Î¥â¥¸¥å¡¼¥ë¤Î +は再配置されたモジュールイメージをカーネル空間にロードし、 +そのモジュールの .I init -´Ø¿ô¤ò¼Â¹Ô¤¹¤ë¡£ +関数を実行する。 .PP .\"O The module image begins with a module structure and is followed by .\"O code and data as appropriate. .\"O The module structure is defined as follows: -¥â¥¸¥å¡¼¥ë¥¤¥á¡¼¥¸¤ÏÀèƬÉôʬ¤Ë module ¹½Â¤ÂΤ¬¤¢¤ê¡¢¤½¤Î¸å¤í¤Ë -ŬÀڤʥ³¡¼¥É¤È¥Ç¡¼¥¿¤¬Â³¤¯¡£ -¤³¤Î module ¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +モジュールイメージは先頭部分に module 構造体があり、その後ろに +適切なコードとデータが続く。 +この module 構造体は以下のように定義されている: .PP .in +4n .nf @@ -73,29 +73,29 @@ struct module { .\"O initialized as appropriate for kernel space, that is, relocated with .\"O the rest of the module. .I next -¤È +と .I refs -°Ê³°¤ÎÁ´¤Æ¤Î¥Ý¥¤¥ó¥¿Í×ÁǤϥ⥸¥å¡¼¥ëËÜÂÎÆâÉô¤ò»Ø¤·¡¢ -¥«¡¼¥Í¥ë¶õ´Ö¤Ç¤ÎŬÀÚ¤ÊÃͤǽé´ü²½¤µ¤ì¤ë (¤Ä¤Þ¤ê¡¢¥â¥¸¥å¡¼¥ë¤Î»Ä¤ê¤Î -Éôʬ¤ÇºÆÇÛÃÖ¤µ¤ì¤ë) ¤³¤È¤¬´üÂÔ¤µ¤ì¤ë¡£ +以外の全てのポインタ要素はモジュール本体内部を指し、 +カーネル空間での適切な値で初期化される (つまり、モジュールの残りの +部分で再配置される) ことが期待される。 .PP .\"O This system call requires privilege. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤¦¤Ë¤ÏÆø¢¤¬É¬ÍפǤ¢¤ë¡£ +このシステムコールを使うには特権が必要である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned and .\"O .I errno .\"O is set appropriately. -À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤·¡¢ +成功すると 0 を返す。エラーの場合 \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBUSY .\"O The module's initialization routine failed. -¥â¥¸¥å¡¼¥ë¤Î½é´ü²½¥ë¡¼¥Á¥ó¤¬¼ºÇÔ¤·¤¿¡£ +モジュールの初期化ルーチンが失敗した。 .TP .B EFAULT .\"O .I name @@ -103,9 +103,9 @@ struct module { .\"O .I image .\"O is outside the program's accessible address space. .I name -¤ä +や .I image -¤¬¥×¥í¥°¥é¥à¤¬¥¢¥¯¥»¥¹¤Ç¤­¤ë¥¢¥É¥ì¥¹¶õ´Ö¤Î³°Éô¤Ë¤¢¤ë¡£ +がプログラムがアクセスできるアドレス空間の外部にある。 .TP .B EINVAL .\"O Some @@ -116,35 +116,35 @@ struct module { .\"O .I image\->deps .\"O entry does not correspond to a loaded module, .\"O or some other similar inconsistency. -°ìÉô¤Î +一部の .I image -¥¹¥í¥Ã¥È¤Ë¤ª¤«¤·¤ÊÃͤ¬Æþ¤Ã¤Æ¤¤¤ë¡£¤Þ¤¿¤Ï +スロットにおかしな値が入っている。または .I image\->name -¤¬¸µ¤Î¥â¥¸¥å¡¼¥ë̾¤È°ìÃפ·¤Æ¤¤¤Ê¤¤¡£¤Þ¤¿¤Ï¡¢°ìÉô¤Î +が元のモジュール名と一致していない。または、一部の .I image\->deps -¥¨¥ó¥È¥ê¤¬¥í¡¼¥É¤µ¤ì¤¿¥â¥¸¥å¡¼¥ë¤ËÂбþ¤·¤Æ¤¤¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢Â¾¤ËƱÍͤÎÌ·½â¤¬µ¯¤³¤Ã¤Æ¤¤¤ë¡£ +エントリがロードされたモジュールに対応していない。 +または、他に同様の矛盾が起こっている。 .TP .B ENOENT .\"O No module by that name exists. -¤½¤Î̾Á°¤Î¥â¥¸¥å¡¼¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ +その名前のモジュールが存在しない。 .TP .B EPERM .\"O The caller was not privileged .\"O (did not have the .\"O .B CAP_SYS_MODULE .\"O capability). -¸Æ¤Ó½Ð¤·¸µ¤¬Æø¢ +呼び出し元が特権 .RB ( CAP_SYS_MODULE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤ò»ý¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +ケーパビリティ) を持っていなかった。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR init_module () .\"O is Linux-specific. .BR init_module () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ +は Linux 固有である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR create_module (2), .BR delete_module (2), .BR query_module (2) diff --git a/draft/man2/inotify_add_watch.2 b/draft/man2/inotify_add_watch.2 index 8e23e4a7..e00b88ab 100644 --- a/draft/man2/inotify_add_watch.2 +++ b/draft/man2/inotify_add_watch.2 @@ -32,16 +32,16 @@ .\" .TH INOTIFY_ADD_WATCH 2 2006-02-07 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O inotify_add_watch \- add a watch to an initialized inotify instance -inotify_add_watch \- ½é´ü²½ºÑ¤ß inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤Ë´Æ»ëÂоݤòÄɲ乤ë +inotify_add_watch \- 初期化済み inotify インスタンスに監視対象を追加する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int inotify_add_watch(int " fd ", const char *" pathname ", uint32_t " mask ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR inotify_add_watch () .\"O adds a new watch, or modifies an existing watch, .\"O for the file whose location is specified in @@ -52,15 +52,15 @@ inotify_add_watch \- .\"O argument is a file descriptor referring to the .\"O inotify instance whose watch list is to be modified. .BR inotify_add_watch () -¤Ï¡¢ +は、 .I pathname -¤Ç»ØÄꤵ¤ì¤¿°ÌÃ֤ˤ¢¤ë¥Õ¥¡¥¤¥ë¤ò´Æ»ë¤¹¤ë´Æ»ë¥¢¥¤¥Æ¥à (watch) ¤Î¿·µ¬Äɲᢠ-¤Þ¤¿¤Ï´û¸¤Î´Æ»ë¥¢¥¤¥Æ¥à¤ÎÊѹ¹¤ò¹Ô¤¦¡£ -¸Æ¤Ó½Ð¤·¸µ¤Ï¡¢´Æ»ëÂоݤΥե¡¥¤¥ë¤ËÂФ¹¤ëÆɤ߽Ф·µö²Ä¤ò -»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +で指定された位置にあるファイルを監視する監視アイテム (watch) の新規追加、 +または既存の監視アイテムの変更を行う。 +呼び出し元は、監視対象のファイルに対する読み出し許可を +持っていなければならない。 .I fd -°ú¤­¿ô¤Ï¡¢Êѹ¹¤ò¹Ô¤¦´Æ»ëÂоݥꥹ¥È (watch list) ¤ò»ý¤Ä inotify -¥¤¥ó¥¹¥¿¥ó¥¹¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +引き数は、変更を行う監視対象リスト (watch list) を持つ inotify +インスタンスを参照するファイルディスクリプタである。 .\"O The events to be monitored for .\"O .I pathname .\"O are specified in the @@ -71,13 +71,13 @@ inotify_add_watch \- .\"O for a description of the bits that can be set in .\"O .IR mask . .I pathname -¤Î¤É¤Î¥¤¥Ù¥ó¥È¤ò´Æ»ë¤¹¤ë¤«¤Ï¡¢°ú¤­¿ô¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯ +のどのイベントを監視するかは、引き数のビットマスク .I mask -¤Ç»ØÄꤹ¤ë¡£ +で指定する。 .I mask -¤ËÀßÄê¤Ç¤­¤ë¥Ó¥Ã¥È¤ÎÀâÌÀ¤Ë¤Ä¤¤¤Æ¤Ï +に設定できるビットの説明については .BR inotify (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O A successful call to .\"O .BR inotify_add_watch () @@ -93,15 +93,15 @@ inotify_add_watch \- .\"O was already being watched, then the descriptor .\"O for the existing watch is returned. .BR inotify_add_watch () -¤Î¸Æ¤Ó½Ð¤·¤¬À®¸ù¤¹¤ë¤È¡¢Êѹ¹ÂоݤΠinotify ¥¤¥ó¥¹¥¿¥ó¥¹¤Ç +の呼び出しが成功すると、変更対象の inotify インスタンスで .I pathname -¤ËÂбþÉÕ¤±¤é¤ì¤ë°ì°Õ¤Ê´Æ»ëÂоݥǥ£¥¹¥¯¥ê¥×¥¿ (watch descriptor) ¤òÊÖ¤¹¡£ +に対応付けられる一意な監視対象ディスクリプタ (watch descriptor) を返す。 .I pathname -¤¬¤½¤Î inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤ËÄɲ䵤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ -´Æ»ëÂоݥǥ£¥¹¥¯¥ê¥×¥¿¤¬¿·µ¬¤Ë³ä¤êÅö¤Æ¤é¤ì¤ë¡£ +がその inotify インスタンスに追加されていなければ、 +監視対象ディスクリプタが新規に割り当てられる。 .I pathname -¤¬¤¹¤Ç¤Ë´Æ»ëÂоݤˤʤäƤ¤¤ì¤Ð¡¢´û¸¤Î´Æ»ë¥¢¥¤¥Æ¥à¤ËÂФ¹¤ë -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÊÖ¤µ¤ì¤ë¡£ +がすでに監視対象になっていれば、既存の監視アイテムに対する +ディスクリプタが返される。 .\"O The watch descriptor is returned by later .\"O .BR read (2)s @@ -113,76 +113,76 @@ inotify_add_watch \- .\"O indicating file system events; .\"O the watch descriptor inside this structure identifies .\"O the object for which the event occurred. -¤³¤ì°Ê¹ß¤Ë inotify ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤é +これ以降に inotify ファイルディスクリプタから .BR read (2) -¤ò¹Ô¤¦¤È¡¢´Æ»ëÂоݥǥ£¥¹¥¯¥ê¥×¥¿¤¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤ì¤é¤Î +を行うと、監視対象ディスクリプタが返される。 +これらの .BR read () -¤ò¹Ô¤¦¤È¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¤¥Ù¥ó¥È¤ò¼¨¤¹ +を行うと、ファイルシステムイベントを示す .I inotify_event -¹½Â¤ÂΤ¬Æɤ߽Фµ¤ì¤ë +構造体が読み出される .RB ( inotify (7) -»²¾È)¡£¤³¤Î¹½Â¤ÂÎÆâ¤Î´Æ»ëÂоݥǥ£¥¹¥¯¥ê¥×¥¿¤Ë¤è¤ê¡¢ -¤É¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤½¤Î¥¤¥Ù¥ó¥È¤¬È¯À¸¤·¤¿¤«¤òÆÃÄê¤Ç¤­¤ë¡£ +参照)。この構造体内の監視対象ディスクリプタにより、 +どのオブジェクトでそのイベントが発生したかを特定できる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR inotify_add_watch () .\"O returns a nonnegative watch descriptor. .\"O On error \-1 is returned and .\"O .I errno .\"O is set appropriately. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR inotify_add_watch () -¤ÏÈóÉé¤Î´Æ»ëÂоݥǥ£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は非負の監視対象ディスクリプタを返す。 +エラーの場合、\-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O Read access to the given file is not permitted. -»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ëÆɤ߽Ф·¥¢¥¯¥»¥¹¤¬µö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +指定されたファイルに対する読み出しアクセスが許可されていない。 .TP .B EBADF .\"O The given file descriptor is not valid. -»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Í­¸ú¤Ç¤Ï¤Ê¤¤¡£ +指定されたファイルディスクリプタが有効ではない。 .TP .B EFAULT .\"O .I pathname .\"O points outside of the process's accessible address space. .I pathname -¤¬»Ø¤¹¥¢¥É¥ì¥¹¤¬¥×¥í¥»¥¹¤¬¥¢¥¯¥»¥¹¤Ç¤­¤ë¥¢¥É¥ì¥¹¶õ´Ö³°¤Ç¤¢¤ë¡£ +が指すアドレスがプロセスがアクセスできるアドレス空間外である。 .TP .B EINVAL .\"O The given event mask contains no valid events; or .\"O .I fd .\"O is not an inotify file descriptor. -»ØÄꤵ¤ì¤¿¥¤¥Ù¥ó¥È¥Þ¥¹¥¯¤ËÍ­¸ú¤Ê¥¤¥Ù¥ó¥È¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤â¤·¤¯¤Ï +指定されたイベントマスクに有効なイベントが含まれていない。 +もしくは .I fd -¤¬ inotify ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ +が inotify ファイルディスクリプタではない。 .TP .B ENOMEM .\"O Insufficient kernel memory was available. -¥«¡¼¥Í¥ë¥á¥â¥ê¤¬½½Ê¬¤Ë¤Ê¤«¤Ã¤¿¡£ +カーネルメモリが十分になかった。 .TP .B ENOSPC .\"O The user limit on the total number of inotify watches was reached or the .\"O kernel failed to allocate a needed resource. -inotify ´Æ»ëÂоݤÎÁí¿ô¤¬¥æ¡¼¥¶¤¬ÄɲäǤ­¤ë¾å¸Â¤Ë㤷¤Æ¤¤¤¿¡£ -¤â¤·¤¯¤Ï¡¢É¬Íפʻñ¸»¤Î³ä¤êÅö¤Æ¤Ë¥«¡¼¥Í¥ë¤¬¼ºÇÔ¤·¤¿¡£ +inotify 監視対象の総数がユーザが追加できる上限に達していた。 +もしくは、必要な資源の割り当てにカーネルが失敗した。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O Inotify was merged into the 2.6.13 Linux kernel. -inotify ¤Ï Linux ¥«¡¼¥Í¥ë 2.6.13 ¤ËÁȤ߹þ¤Þ¤ì¤¿¡£ +inotify は Linux カーネル 2.6.13 に組み込まれた。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This system call is Linux-specific. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ +このシステムコールは Linux 独自である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR inotify_init (2), .BR inotify_rm_watch (2), .BR inotify (7) diff --git a/draft/man2/inotify_init.2 b/draft/man2/inotify_init.2 index 6e3cdeeb..208b0f2e 100644 --- a/draft/man2/inotify_init.2 +++ b/draft/man2/inotify_init.2 @@ -33,11 +33,11 @@ .\" .TH INOTIFY_INIT 2 2008-10-10 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O inotify_init, inotify_init1 \- initialize an inotify instance -inotify_init, inotify_init1 \- inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤ò½é´ü²½¤¹¤ë +inotify_init, inotify_init1 \- inotify インスタンスを初期化する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -45,13 +45,13 @@ inotify_init, inotify_init1 \- inotify .BI "int inotify_init1(int " flags ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR inotify_init () .\"O initializes a new inotify instance and returns a file descriptor associated .\"O with a new inotify event queue. .BR inotify_init () -¤Ï¡¢¿·µ¬¤Î inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤ò½é´ü²½¤·¡¢ºîÀ®¤µ¤ì¤¿ inotify ¥¤¥Ù¥ó¥È¥­¥å¡¼ -¤ËÂбþ¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ +は、新規の inotify インスタンスを初期化し、作成された inotify イベントキュー +に対応するファイルディスクリプタを返す。 .\"O If .\"O .I flags @@ -63,14 +63,14 @@ inotify_init, inotify_init1 \- inotify .\"O .IR flags .\"O to obtain different behavior: .BR inotify_init1 () -¤Ï¡¢ +は、 .I flags -¤¬ 0 ¤Î¾ì¹ç¡¢ +が 0 の場合、 .BR inotify_init () -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .I flags -¤Ë°Ê²¼¤ÎÃͤò¥Ó¥Ã¥ÈËè¤ÎÏÀÍýÏ (OR) ¤Ç»ØÄꤹ¤ë¤³¤È¤Ç¡¢ -°Û¤Ê¤ëÆ°ºî¤ò¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +に以下の値をビット毎の論理和 (OR) で指定することで、 +異なる動作をさせることができる。 .TP 12 .B IN_NONBLOCK .\"O Set the @@ -79,14 +79,14 @@ inotify_init, inotify_init1 \- inotify .\"O Using this flag saves extra calls to .\"O .BR fcntl (2) .\"O to achieve the same result. -¿·¤·¤¯À¸À®¤µ¤ì¤ë¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò (open file description) ¤Î +新しく生成されるオープンファイル記述 (open file description) の BR O_NONBLOCK -¥Õ¥¡¥¤¥ë¥¹¥Æ¡¼¥¿¥¹¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤³¤È¤Ç¡¢ +ファイルステータスフラグをセットする。 +このフラグを使うことで、 .B O_NONBLOCK -¤ò¥»¥Ã¥È¤¹¤ë¤¿¤á¤Ë +をセットするために .BR fcntl (2) -¤òÄɲäǸƤӽФ¹É¬Íפ¬¤Ê¤¯¤Ê¤ë¡£ +を追加で呼び出す必要がなくなる。 .TP .B IN_CLOEXEC .\"O Set the close-on-exec @@ -97,64 +97,64 @@ BR O_NONBLOCK .\"O flag in .\"O .BR open (2) .\"O for reasons why this may be useful. -¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤ËÂФ·¤Æ +新しいファイル・ディスクリプターに対して close-on-exec .RB ( FD_CLOEXEC ) -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬Ìò¤ËΩ¤ÄÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +フラグをセットする。 +このフラグが役に立つ理由については、 .BR open (2) -¤Î +の .B O_CLOEXEC -¥Õ¥é¥°¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +フラグの説明を参照のこと。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these system calls return a new file descriptor. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +成功すると、これらのシステムコールは新しいファイルディスクリプタを返す。 +エラーの場合、\-1 を返し、 .I errno -¤ò¥¨¥é¡¼¤ò¼¨¤¹ÃͤËÀßÄꤹ¤ë¡£ +をエラーを示す値に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O .RB ( inotify_init1 ()) .\"O An invalid value was specified in .\"O .IR flags . .RB ( inotify_init1 ()) -̵¸ú¤ÊÃͤ¬ +無効な値が .I flags -¤Ë»ØÄꤵ¤ì¤¿¡£ +に指定された。 .TP .B EMFILE .\"O The user limit on the total number of inotify instances has been reached. -inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤ÎÁí¿ô¤¬¥æ¡¼¥¶Ã±°Ì¤Î¾å¸Â¤Ë㤷¤Æ¤¤¤¿¡£ +inotify インスタンスの総数がユーザ単位の上限に達していた。 .TP .B ENFILE .\"O The system limit on the total number of file descriptors has been reached. -inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤ÎÁí¿ô¤¬¥·¥¹¥Æ¥à¤Î¾å¸Â¤Ë㤷¤Æ¤¤¤¿¡£ +inotify インスタンスの総数がシステムの上限に達していた。 .TP .B ENOMEM .\"O Insufficient kernel memory is available. -¥«¡¼¥Í¥ë¥á¥â¥ê¤¬½½Ê¬¤Ë¤Ê¤«¤Ã¤¿¡£ +カーネルメモリが十分になかった。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR inotify_init () .\"O first appeared in Linux 2.6.13. .\"O .BR inotify_init1 () .\"O was added in Linux 2.6.27. .BR inotify_init () -¤Ï Linux 2.6.13 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +は Linux 2.6.13 で初めて登場した。 .BR inotify_init1 () -¤Ï Linux 2.6.27 ¤ÇÄɲ䵤줿¡£ +は Linux 2.6.27 で追加された。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These system calls are Linux-specific. -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ +これらのシステムコールは Linux 独自である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR inotify_add_watch (2), .BR inotify_rm_watch (2), .BR inotify (7) diff --git a/draft/man2/inotify_rm_watch.2 b/draft/man2/inotify_rm_watch.2 index 2eb7a9f6..df632310 100644 --- a/draft/man2/inotify_rm_watch.2 +++ b/draft/man2/inotify_rm_watch.2 @@ -29,68 +29,68 @@ .\" all rights reserved. .\" Translated 2006-08-15, Akihiro MOTOKI , LDP v2.39 .\" -.\" WORD: watch ´Æ»ë¥¢¥¤¥Æ¥à -.\" WORD: watch descriptor ´Æ»ëÂоݥǥ£¥¹¥¯¥ê¥×¥¿ +.\" WORD: watch 監視アイテム +.\" WORD: watch descriptor 監視対象ディスクリプタ .\" .TH INOTIFY_RM_WATCH 2 2010-10-15 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O inotify_rm_watch \- remove an existing watch from an inotify instance -inotify_rm_watch \- inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤«¤é´û¸¤Î´Æ»ë¥¢¥¤¥Æ¥à¤òºï½ü¤¹¤ë +inotify_rm_watch \- inotify インスタンスから既存の監視アイテムを削除する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int inotify_rm_watch(int " fd ", int " wd ); .\" Before glibc 2.10, the second argument was types as uint32_t. .\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=7040 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR inotify_rm_watch () .\"O removes the watch associated with the watch descriptor .\"O .I wd .\"O from the inotify instance associated with the file descriptor .\"O .IR fd . .BR inotify_rm_watch () -¤Ï¡¢´Æ»ëÂоݥǥ£¥¹¥¯¥ê¥×¥¿ (watch descriptor) +は、監視対象ディスクリプタ (watch descriptor) .I wd -¤ËÂбþ¤¹¤ë´Æ»ë¥¢¥¤¥Æ¥à¤ò¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +に対応する監視アイテムを、 +ファイルディスクリプタ .I fd -¤ËÂбþ¤¹¤ë inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤«¤éºï½ü¤¹¤ë¡£ +に対応する inotify インスタンスから削除する。 .\"O Removing a watch causes an .\"O .B IN_IGNORED .\"O event to be generated for this watch descriptor. .\"O (See .\"O .BR inotify (7).) -´Æ»ëÂоݤòºï½ü¤¹¤ë¤È¡¢ -¤³¤Î´Æ»ëÂоݥǥ£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ +監視対象を削除すると、 +この監視対象ディスクリプタに対して .B IN_IGNORED -¥¤¥Ù¥ó¥È¤¬À¸À®¤µ¤ì¤ë +イベントが生成される .RB ( inotify (7) -»²¾È)¡£ +参照)。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR inotify_rm_watch () .\"O returns zero, or \-1 if an error occurred (in which case, .\"O .I errno .\"O is set appropriately). -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR inotify_rm_watch () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。 +エラーの場合、\-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O .I fd .\"O is not a valid file descriptor. .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ +が有効なファイルディスクリプタではない。 .TP .B EINVAL .\"O The watch descriptor @@ -98,21 +98,21 @@ inotify_rm_watch \- inotify .\"O is not valid; or .\"O .I fd .\"O is not an inotify file descriptor. -´Æ»ëÂоݥǥ£¥¹¥¯¥ê¥×¥¿ +監視対象ディスクリプタ .I wd -¤¬Í­¸ú¤Ç¤Ê¤¤¡£¤â¤·¤¯¤Ï¡¢ +が有効でない。もしくは、 .I fd -¤¬ inotify ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ +が inotify ファイルディスクリプタではない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O Inotify was merged into the 2.6.13 Linux kernel. -inotify ¤Ï Linux ¥«¡¼¥Í¥ë 2.6.13 ¤ËÁȤ߹þ¤Þ¤ì¤¿¡£ +inotify は Linux カーネル 2.6.13 に組み込まれた。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This system call is Linux-specific. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ +このシステムコールは Linux 独自である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR inotify_add_watch (2), .BR inotify_init (2), .BR inotify (7) diff --git a/draft/man2/intro.2 b/draft/man2/intro.2 index 6e1ee872..14aa0a6b 100644 --- a/draft/man2/intro.2 +++ b/draft/man2/intro.2 @@ -30,11 +30,11 @@ .\" .TH INTRO 2 2010-11-11 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O intro \- Introduction to system calls -intro \- ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÀâÌÀ +intro \- システムコールの説明 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Section 2 of the manual describes the Linux system calls. .\"O A system call is an entry point into the Linux kernel. .\"O Usually, system calls are not invoked directly: @@ -44,21 +44,21 @@ intro \- .\"O the system call. .\"O Thus, making a system call looks the same as invoking a normal .\"O library function. -¥Þ¥Ë¥å¥¢¥ë¤Î 2 ¾Ï¤Ç¤Ï Linux ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤ë¡£ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¥«¡¼¥Í¥ë¤Ø¤Î¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È¤Ç¤¢¤ë¡£ -Ä̾ï¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏľÀܵ¯Æ°¤µ¤ì¤ëÌõ¤Ç¤Ï¤Ê¤¯¡¢ -¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤ÏÂбþ¤¹¤ë C ¥é¥¤¥Ö¥é¥ê¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤¬¤¢¤ê¡¢ -¤½¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤¬¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¸Æ¤Ó½Ð¤¹¤Î¤ËɬÍפʽèÍý¤ò¼Â¹Ô¤¹¤ë¡£ -¤½¤Î¤¿¤á¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¸Æ¤Ó½Ð¤¹¤Î¤ÏÄ̾ï¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤Î¤È -Ʊ¤¸¤è¤¦¤Ë¸«¤¨¤ë¡£ +マニュアルの 2 章では Linux のシステムコールについて説明している。 +システムコールは Linux カーネルへのエントリポイントである。 +通常は、システムコールは直接起動される訳ではなく、 +ほとんどのシステムコールには対応する C ライブラリのラッパー関数があり、 +そのラッパー関数がシステムコールを呼び出すのに必要な処理を実行する。 +そのため、システムコールを呼び出すのは通常のライブラリ関数を呼び出すのと +同じように見える。 .\"O For a list of the Linux system calls, see .\"O .BR syscalls (2). -Linux ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¤Ï +Linux のシステムコールのリストについては .BR syscalls (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On error, most system calls return a negative error number .\"O (i.e., the negated value of one of the constants described in .\"O .BR errno (3)). @@ -67,23 +67,23 @@ Linux .\"O absolute value into the .\"O .I errno .\"O variable, and returns \-1 as the return value of the wrapper. -¥¨¥é¡¼¤Î¾ì¹ç¡¢¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÉé¤Î¥¨¥é¡¼ÈÖ¹æ¤òÊÖ¤¹ -(¶ñÂÎŪ¤Ë¤Ï +エラーの場合、ほとんどのシステムコールは負のエラー番号を返す +(具体的には .BR errno (3) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ëÄê¿ô¤Î¤¤¤º¤ì¤«¤òÉé¤Ë¤·¤¿ÃͤòÊÖ¤¹)¡£ -C ¥é¥¤¥Ö¥é¥ê¤Î¥é¥Ã¥Ñ¡¼¤Ï¸Æ¤Ó½Ð¤·¸µ¤«¤é¤³¤¦¤·¤¿¾ÜºÙ¤ò±£Ê䷤Ƥ¤¤ë¡£ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Éé¤ÎÃͤòÊÖ¤·¤¿¾ì¹ç¡¢¥é¥Ã¥Ñ¡¼¤ÏÀäÂÐÃͤò +で説明されている定数のいずれかを負にした値を返す)。 +C ライブラリのラッパーは呼び出し元からこうした詳細を隠蔽している。 +システムコールが負の値を返した場合、ラッパーは絶対値を .I errno -ÊÑ¿ô¤Ë¥³¥Ô¡¼¤·¡¢¥é¥Ã¥Ñ¡¼¤ÎÊÖ¤êÃͤȤ·¤Æ \-1 ¤òÊÖ¤¹¡£ +変数にコピーし、ラッパーの返り値として \-1 を返す。 .\"O The value returned by a successful system call depends on the call. .\"O Many system calls return 0 on success, but some can return nonzero .\"O values from a successful call. .\"O The details are described in the individual manual pages. -À®¸ù»þ¤Ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ÊÖ¤¹Ãͤϥ·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤è¤ê°Û¤Ê¤ë¡£ -¿¤¯¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÀ®¸ù»þ¤Ë 0 ¤òÊÖ¤¹¤¬¡¢ -À®¸ù»þ¤Ë 0 °Ê³°¤ÎÃͤòÊÖ¤¹¥·¥¹¥Æ¥à¥³¡¼¥ë¤â¤¢¤ë¡£ -¾ÜºÙ¤Ï¸Ä¡¹¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡£ +成功時にシステムコールが返す値はシステムコールにより異なる。 +多くのシステムコールは成功時に 0 を返すが、 +成功時に 0 以外の値を返すシステムコールもある。 +詳細は個々のマニュアルページで説明されている。 .\"O In some cases, .\"O the programmer must define a feature test macro in order to obtain @@ -95,28 +95,28 @@ C .\"O In such cases, the required macro is described in the man page. .\"O For further information on feature test macros, see .\"O .BR feature_test_macros (7). -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¡Ö½ñ¼°¡×¤ÎÀá¤Ëµ¬Äꤵ¤ì¤¿¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤«¤é´Ø¿ô¤ÎÄêµÁ¤ò -ÆÀ¤ë¤¿¤á¤Ë¡¢¥×¥í¥°¥é¥Þ¤¬µ¡Ç½¸¡ºº¥Þ¥¯¥í¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¾ì¹ç¤¬¤¢¤ë -(µ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÄêµÁ¤¬É¬Íפʾì¹ç¡¢¤³¤ì¤é¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÄêµÁ¤Ï -¡Ö¤É¤Î¡×¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Î¥¤¥ó¥¯¥ë¡¼¥É¤è¤ê¤âÁ°¤Ç¹Ô¤ï¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£ -¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï¡¢É¬Íפʥޥ¯¥í¤¬¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡£ -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤Î¤µ¤é¤Ê¤ë¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +マニュアルページの「書式」の節に規定されたヘッダファイルから関数の定義を +得るために、プログラマが機能検査マクロを定義しなければならない場合がある +(機能検査マクロの定義が必要な場合、これらの機能検査マクロの定義は +「どの」ヘッダファイルのインクルードよりも前で行われなければならない)。 +このような場合には、必要なマクロがマニュアルページで説明されている。 +機能検査マクロのさらなる情報については、 .BR feature_test_macros (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O Certain terms and abbreviations are used to indicate UNIX variants .\"O and standards to which calls in this section conform. .\"O See .\"O .BR standards (7). -¤³¤Î¾Ï¤Î´Ø¿ô¤¬½àµò¤¹¤ë UNIX ¥·¥¹¥Æ¥à¤äɸ½à¤ò¼¨¤¹¤Î¤Ë¤¤¤¯¤Ä¤«¤Îñ¸ì¤äά¹æ¤¬ -»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ +この章の関数が準拠する UNIX システムや標準を示すのにいくつかの単語や略号が +使用されている。 .BR standards (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .SS "Calling Directly" -.SS "ľÀܸƤӽФ¹" +.SS "直接呼び出す" .\"O In most cases, it is unnecessary to invoke a system call directly, .\"O but there are times when the Standard C library does not implement .\"O a nice wrapper function for you. @@ -125,23 +125,23 @@ C .\"O Historically, this was also possible using one of the _syscall macros .\"O described in .\"O .BR _syscall (2). -¤Û¤È¤ó¤É¤Î¾ì¹ç¡¢Ä¾ÀÜ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¸Æ¤Ó½Ð¤¹É¬ÍפϤʤ¤¤¬¡¢ -¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ïɸ½à C ¥é¥¤¥Ö¥é¥ê¤ËŬÀڤʴؿô¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤â¤¢¤ë¡£ -¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ï¡¢¥×¥í¥°¥é¥Þ¤Ï +ほとんどの場合、直接システムコールを呼び出す必要はないが、 +場合によっては標準 C ライブラリに適切な関数が実装されていないこともある。 +このような場合は、プログラマは .BR syscall (2) -¤ò»È¤Ã¤Æ¡¢¼«Ê¬¤Ç¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¸Æ¤Ó½Ð¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -²áµî¤Ë¤Ï¡¢ +を使って、自分でシステムコールを呼び出さなければならない。 +過去には、 .BR _syscall (2) -¥Þ¥¯¥í¤Î°ì¤Ä¤ò»È¤Ã¤Æ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¸Æ¤Ó½Ð¤¹¤³¤È¤â¤Ç¤­¤¿¡£ +マクロの一つを使ってシステムコールの呼び出すこともできた。 .\"O .SS Authors and Copyright Conditions -.SS "Ãø¼Ô¤ÈÃøºî¸¢" +.SS "著者と著作権" .\"O Look at the header of the manual page source for the author(s) and copyright .\"O conditions. .\"O Note that these can be different from page to page! -Ãø¼Ô¤ÈÃøºî¸¢ (copyright) ¤Ë´Ø¤·¤Æ¤Ï³Æ¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤Î¥½¡¼¥¹¤Î¥Ø¥Ã¥À¤ò -¸«¤ë¤³¤È¡£¤³¤ì¤é¤Ï¥Ú¡¼¥¸¤´¤È¤Ë°Û¤Ã¤Æ¤¤¤ë¡£ +著者と著作権 (copyright) に関しては各マニュアル・ページのソースのヘッダを +見ること。これらはページごとに異っている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .ad l .nh .BR _syscall (2), diff --git a/draft/man2/io_cancel.2 b/draft/man2/io_cancel.2 index b3fd9168..594ea65b 100644 --- a/draft/man2/io_cancel.2 +++ b/draft/man2/io_cancel.2 @@ -5,8 +5,8 @@ .\" Japanese Version Copyright (c) 2003 Akihiro MOTOKI, all rights reserved. .\" Translated Mon Mar 8 2003 by Akihiro MOTOKI .\" -.\"WORD: operation Áàºî -.\"WORD: completion queue ´°Î»¥­¥å¡¼ +.\"WORD: operation 操作 +.\"WORD: completion queue 完了キュー .\" .\" .de Sh \" Subsection .\" .br @@ -29,10 +29,10 @@ .TH IO_CANCEL 2 2008-06-18 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O io_cancel \- cancel an outstanding asynchronous I/O operation -.SH ̾Á° -io_cancel \- ̤½èÍý¤ÎÈóƱ´ü I/O Áàºî¤Î¼è¤ê¾Ã¤· +.SH 名前 +io_cancel \- 未処理の非同期 I/O 操作の取り消し .\"O .SH "SYNOPSIS" -.SH ½ñ¼° +.SH 書式 .nf .\" .ad l .\" .hy 0 @@ -47,10 +47,10 @@ io_cancel \- ̤ .\" .hy .sp .\"O Link with \fI\-laio\fP. -\fI\-laio\fP ¤È¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-laio\fP とリンクする。 .fi .\"O .SH "DESCRIPTION" -.SH ÀâÌÀ +.SH 説明 .PP .\"O .BR io_cancel () .\"O attempts to cancel an asynchronous I/O operation previously submitted with @@ -60,60 +60,60 @@ io_cancel \- ̤ .\"O into the memory pointed to by \fIresult\fP without being placed .\"O into the completion queue. .BR io_cancel () -¤Ï¡¢²áµî¤Ë +は、過去に .BR io_submit (2) -¤ò»È¤Ã¤ÆÅÐÏ¿¤µ¤ì¤¿ÈóƱ´ü I/O (AIO) Áàºî¤Î¼è¤ê¾Ã¤·¤ò¹Ô¤ª¤¦¤È¤¹¤ë¡£ -\fIctx_id\fP ¤Ï¡¢¼è¤ê¾Ã¤·¤ò¹Ô¤¦Áàºî¤Î AIO ¥³¥ó¥Æ¥­¥¹¥È¤Î ID ¤Ç¤¢¤ë¡£ -»ØÄꤷ¤¿ AIO ¥³¥ó¥Æ¥­¥¹¥È¤¬¸«¤Ä¤«¤ë¤È¡¢ -ÂоݤΥ¤¥Ù¥ó¥È¤Î¼è¤ê¾Ã¤·¤¬¹Ô¤ï¤ì¡¢¤½¤Î¸å \fIresult\fP ¤Ç»Ø¤µ¤ì¤¿¥á¥â¥ê¤Ë -¥³¥Ô¡¼¤µ¤ì¤ë (¤³¤Î¤È¤­¡¢´°Î»¥­¥å¡¼¤Ø¤Î°ÜÆ°¤Ï¹Ô¤ï¤ì¤Ê¤¤)¡£ +を使って登録された非同期 I/O (AIO) 操作の取り消しを行おうとする。 +\fIctx_id\fP は、取り消しを行う操作の AIO コンテキストの ID である。 +指定した AIO コンテキストが見つかると、 +対象のイベントの取り消しが行われ、その後 \fIresult\fP で指されたメモリに +コピーされる (このとき、完了キューへの移動は行われない)。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR io_cancel () .\"O returns 0. .\"O For the failure return, see NOTES. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR io_cancel () -¤Ï 0 ¤òÊÖ¤¹¡£ -¼ºÇÔ»þ¤ÎÊÖ¤êÃͤˤĤ¤¤Æ¤Ï¡¢¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¤¹¤ë¤³¤È¡£ +は 0 を返す。 +失敗時の返り値については、「注意」の節を参照すること。 .\"O .SH "ERRORS" -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EAGAIN .\"O The \fIiocb\fP specified was not canceled. -»ØÄꤵ¤ì¤¿ \fIiocb\fP ¤Î¼è¤ê¾Ã¤·¤¬¹Ô¤ï¤ì¤Ê¤«¤Ã¤¿¡£ +指定された \fIiocb\fP の取り消しが行われなかった。 .TP .B EFAULT .\"O One of the data structures points to invalid data. -¥Ç¡¼¥¿¹½Â¤¤ÎÃæ¤Ë̵¸ú¤Ê¥Ç¡¼¥¿¤ò»Ø¤·¤Æ¤¤¤ë¤â¤Î¤¬¤¢¤ë¡£ +データ構造の中に無効なデータを指しているものがある。 .TP .B EINVAL .\"O The AIO context specified by \fIctx_id\fP is invalid. -\fIctx_id\fP ¤Ç»ØÄꤵ¤ì¤¿ AIO ¥³¥ó¥Æ¥­¥¹¥È¤¬Ìµ¸ú¤Ç¤¢¤ë¡£ +\fIctx_id\fP で指定された AIO コンテキストが無効である。 .TP .B ENOSYS .\"O .BR io_cancel () .\"O is not implemented on this architecture. .BR io_cancel () -¤Ï¤³¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +はこのアーキテクチャでは実装されていない。 .\"O .SH "VERSIONS" -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .PP .\"O The asynchronous I/O system calls first appeared in Linux 2.5, August 2002. -ÈóƱ´ü I/O ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï 2002ǯ8·î¤Ë Linux 2.5 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +非同期 I/O システム・コールは 2002å¹´8月に Linux 2.5 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .PP .\"O .BR io_cancel () .\"O is Linux-specific and should not be used .\"O in programs that are intended to be portable. .BR io_cancel () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤òÁÛÄꤷ¤¿¥×¥í¥°¥é¥à¤Ç»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +は Linux 固有であり、移植を想定したプログラムで使用すべきではない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Glibc does not provide a wrapper function for this system call. -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ëÍѤΥé¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +glibc はこのシステムコール用のラッパー関数を提供していない。 .\"O The wrapper provided in .\"O .I libaio @@ -129,28 +129,28 @@ glibc .\"O .I errno .\"O set to a (positive) value that indicates the error. .I libaio -¤Ç +で .BR io_cancel () -ÍѤËÄ󶡤µ¤ì¤Æ¤¤¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢¥¨¥é¡¼¤ÎÄÌÃΤ¬Ä̾ï¤Î C ¥é¥¤¥Ö¥é¥ê¤Î -´·½¬¤Ë¤·¤¿¤¬¤Ã¤Æ¤ª¤é¤º¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤ÏÉé¤Î¥¨¥é¡¼ÈÖ¹æ -(¥¨¥é¡¼¤ÎÀá¤ËÎóµó¤µ¤ì¤Æ¤¤¤ëÃͤΰì¤Ä¤òÉé¤Ë¤·¤¿¤â¤Î) ¤¬ÊÖ¤êÃͤȤʤ롣 +用に提供されているラッパー関数は、エラーの通知が通常の C ライブラリの +慣習にしたがっておらず、エラーの場合には負のエラー番号 +(エラーの節に列挙されている値の一つを負にしたもの) が返り値となる。 .BR syscall (2) -·Ðͳ¤Ç¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤¹¤ë¤È¡¢ÊÖ¤êÃͤÏÄ̾ï¤Î¥¨¥é¡¼ÄÌÃΤδ·½¬¤Ë -¤·¤¿¤¬¤Ã¤Æ¤â¤Î¤È¤Ê¤ê¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï \-1 ¤¬Ê֤ꡢ +経由でシステムコールを起動すると、返り値は通常のエラー通知の慣習に +したがってものとなり、エラーの場合には \-1 が返り、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ (Àµ¤Î) Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ +にエラーを示す (正の) 値が設定される。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR io_destroy (2), .BR io_getevents (2), .BR io_setup (2), .BR io_submit (2), .BR aio (7) .\"O .\" .SH "NOTES" -.\" .SH Ãí +.\" .SH 注 .\" .PP .\"O .\" The asynchronous I/O system calls were written by Benjamin LaHaise. -.\" ÈóƱ´ü I/O ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï Benjamin LaHaise ¤¬½ñ¤¤¤¿¡£ +.\" 非同期 I/O システム・コールは Benjamin LaHaise が書いた。 .\"O .\" .SH AUTHOR -.\" .SH Ãø¼Ô +.\" .SH 著者 .\" Kent Yoder. diff --git a/draft/man2/io_destroy.2 b/draft/man2/io_destroy.2 index aa089d10..9c3c062d 100644 --- a/draft/man2/io_destroy.2 +++ b/draft/man2/io_destroy.2 @@ -26,10 +26,10 @@ .TH IO_DESTROY 2 2008-06-18 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O io_destroy \- destroy an asynchronous I/O context -.SH ̾Á° -io_destroy \- ÈóƱ´ü I/O ¥³¥ó¥Æ¥­¥¹¥È¤Î¾Ãµî +.SH 名前 +io_destroy \- 非同期 I/O コンテキストの消去 .\"O .SH "SYNOPSIS" -.SH ½ñ¼° +.SH 書式 .nf .\" .ad l .\" .hy 0 @@ -42,10 +42,10 @@ io_destroy \- .\" .hy .sp .\"O Link with \fI\-laio\fP. -\fI\-laio\fP ¤È¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-laio\fP とリンクする。 .fi .\"O .SH "DESCRIPTION" -.SH ÀâÌÀ +.SH 説明 .PP .\"O .BR io_destroy () .\"O removes the asynchronous I/O context from the list of @@ -54,55 +54,55 @@ io_destroy \- .\"O can also cancel any outstanding asynchronous I/O .\"O actions on \fIctx\fP and block on completion. .BR io_destroy () -¤Ï¡¢I/O ¥³¥ó¥Æ¥­¥¹¥È¤Î¥ê¥¹¥È¤«¤é»ØÄꤵ¤ì¤¿ÈóƱ´ü I/O -¥³¥ó¥Æ¥­¥¹¥È¤òºï½ü¤·¤¿¸å¡¢¤½¤Î¥³¥ó¥Æ¥­¥¹¥È¤ò¾Ãµî¤¹¤ë¡£ +は、I/O コンテキストのリストから指定された非同期 I/O +コンテキストを削除した後、そのコンテキストを消去する。 .BR io_destroy () -¤Ï¡¢\fIctx\fP ¾å¤Ë̤½èÍý¤ÎÈóƱ´ü I/O Ì¿ÎáµÚ¤Ó -´°Î»¥­¥å¡¼¤Î¥Ö¥í¥Ã¥¯¤Î¼è¤ê¾Ã¤·¤â¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +は、\fIctx\fP 上に未処理の非同期 I/O 命令及び +完了キューのブロックの取り消しも行うことができる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR io_destroy () .\"O returns 0. .\"O For the failure return, see NOTES. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR io_destroy () -¤Ï 0 ¤òÊÖ¤¹¡£ -¼ºÇÔ»þ¤ÎÊÖ¤êÃͤˤĤ¤¤Æ¤Ï¡¢¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¤¹¤ë¤³¤È¡£ +は 0 を返す。 +失敗時の返り値については、「注意」の節を参照すること。 .\"O .SH "ERRORS" -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O The context pointed to is invalid. -.\"motoki: ʬ¤«¤ê¤Ë¤¯¤¤¤Î¤Ç¡¢io_cancel.2 ¤«¤éήÍÑ¡£¤ª¤½¤é¤¯Æ±¤¸°ÕÌ£¡£ -¥Ç¡¼¥¿¹½Â¤¤ÎÃæ¤Ë̵¸ú¤Ê¥Ç¡¼¥¿¤ò»Ø¤·¤Æ¤¤¤ë¤â¤Î¤¬¤¢¤ë¡£ +.\"motoki: 分かりにくいので、io_cancel.2 から流用。おそらく同じ意味。 +データ構造の中に無効なデータを指しているものがある。 .TP .B EINVAL .\"O The AIO context specified by \fIctx\fP is invalid. -\fIctx\fP ¤Ç»ØÄꤵ¤ì¤¿ AIO ¥³¥ó¥Æ¥­¥¹¥È¤¬Ìµ¸ú¤Ç¤¢¤ë¡£ +\fIctx\fP で指定された AIO コンテキストが無効である。 .TP .B ENOSYS .\"O .BR io_destroy () .\"O is not implemented on this architecture. .BR io_destroy () -¤Ï¤³¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +はこのアーキテクチャでは実装されていない。 .\"O .SH "VERSIONS" -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .PP .\"O The asynchronous I/O system calls first appeared in Linux 2.5, August 2002. -ÈóƱ´ü I/O ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï 2002ǯ8·î¤Ë Linux 2.5 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +非同期 I/O システム・コールは 2002å¹´8月に Linux 2.5 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .PP .\"O .BR io_destroy () .\"O is Linux-specific and should not be used in programs .\"O that are intended to be portable. .BR io_destroy () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤òÁÛÄꤷ¤¿¥×¥í¥°¥é¥à¤Ç»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +は Linux 固有であり、移植を想定したプログラムで使用すべきではない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Glibc does not provide a wrapper function for this system call. -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ëÍѤΥé¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +glibc はこのシステムコール用のラッパー関数を提供していない。 .\"O The wrapper provided in .\"O .I libaio @@ -118,28 +118,28 @@ glibc .\"O .I errno .\"O set to a (positive) value that indicates the error. .I libaio -¤Ç +で .BR io_destroy () -ÍѤËÄ󶡤µ¤ì¤Æ¤¤¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢¥¨¥é¡¼¤ÎÄÌÃΤ¬Ä̾ï¤Î C ¥é¥¤¥Ö¥é¥ê¤Î -´·½¬¤Ë¤·¤¿¤¬¤Ã¤Æ¤ª¤é¤º¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤ÏÉé¤Î¥¨¥é¡¼ÈÖ¹æ -(¥¨¥é¡¼¤ÎÀá¤ËÎóµó¤µ¤ì¤Æ¤¤¤ëÃͤΰì¤Ä¤òÉé¤Ë¤·¤¿¤â¤Î) ¤¬ÊÖ¤êÃͤȤʤ롣 +用に提供されているラッパー関数は、エラーの通知が通常の C ライブラリの +慣習にしたがっておらず、エラーの場合には負のエラー番号 +(エラーの節に列挙されている値の一つを負にしたもの) が返り値となる。 .BR syscall (2) -·Ðͳ¤Ç¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤¹¤ë¤È¡¢ÊÖ¤êÃͤÏÄ̾ï¤Î¥¨¥é¡¼ÄÌÃΤδ·½¬¤Ë -¤·¤¿¤¬¤Ã¤Æ¤â¤Î¤È¤Ê¤ê¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï \-1 ¤¬Ê֤ꡢ +経由でシステムコールを起動すると、返り値は通常のエラー通知の慣習に +したがってものとなり、エラーの場合には \-1 が返り、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ (Àµ¤Î) Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ +にエラーを示す (正の) 値が設定される。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR io_cancel (2), .BR io_getevents (2), .BR io_setup (2), .BR io_submit (2), .BR aio (7) .\"O .\" .SH "NOTES" -.\" .SH Ãí +.\" .SH 注 .\" .PP .\"O .\" The asynchronous I/O system calls were written by Benjamin LaHaise. -.\" ÈóƱ´ü I/O ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï Benjamin LaHaise ¤¬½ñ¤¤¤¿¡£ +.\" 非同期 I/O システム・コールは Benjamin LaHaise が書いた。 .\"O .\" .SH AUTHOR -.\" .SH Ãø¼Ô +.\" .SH 著者 .\" Kent Yoder. diff --git a/draft/man2/io_getevents.2 b/draft/man2/io_getevents.2 index a94c5773..3ed93042 100644 --- a/draft/man2/io_getevents.2 +++ b/draft/man2/io_getevents.2 @@ -5,7 +5,7 @@ .\" Japanese Version Copyright (c) 2003 Akihiro MOTOKI, all rights reserved. .\" Translated Mon Mar 8 2003 by Akihiro MOTOKI .\" -.\"WORD: completion queue ´°Î»¥­¥å¡¼ +.\"WORD: completion queue 完了キュー .\" .\" .de Sh \" Subsection .\" .br @@ -27,11 +27,11 @@ .\" .. .TH IO_GETEVENTS 2 2008-07-04 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O io_getevents \- read asynchronous I/O events from the completion queue -io_getevents \- ´°Î»¥­¥å¡¼¤«¤éÈóƱ´ü I/O ¥¤¥Ù¥ó¥È¤òÆɤ߽Ф¹ +io_getevents \- 完了キューから非同期 I/O イベントを読み出す .\"O .SH "SYNOPSIS" -.SH ½ñ¼° +.SH 書式 .nf .\" .ad l .\" .hy 0 @@ -47,88 +47,88 @@ io_getevents \- .\" .hy .sp .\"O Link with \fI\-laio\fP. -\fI\-laio\fP ¤È¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-laio\fP とリンクする。 .fi .\"O .SH "DESCRIPTION" -.SH ÀâÌÀ +.SH 説明 .PP .\"O .BR io_getevents () .\"O attempts to read at least \fImin_nr\fP events and .\"O up to \fInr\fP events from the completion queue of the AIO context .\"O specified by \fIctx_id\fP. .BR io_getevents () -¤Ï¡¢¾¯¤Ê¤¯¤È¤â \fImin_nr\fP ¤Î¡¢ºÇÂç \fInr\fP ¸Ä¤Î -¥¤¥Ù¥ó¥È¤ò¡¢ \fIctx_id\fP ¤Ç»ØÄꤵ¤ì¤¿ AIO (ÈóƱ´ü I/O) ¥³¥ó¥Æ¥­¥¹¥È¤Î -´°Î»¥­¥å¡¼¤«¤éÆɤ߽Ф½¤¦¤È¤¹¤ë¡£ +は、少なくとも \fImin_nr\fP の、最大 \fInr\fP 個の +イベントを、 \fIctx_id\fP で指定された AIO (非同期 I/O) コンテキストの +完了キューから読み出そうとする。 .\"O \fItimeout\fP specifies the amount of time to wait for events, .\"O where a NULL timeout waits until at least \fImin_nr\fP events .\"O have been seen. -\fItimeout\fP ¤Ï¥¤¥Ù¥ó¥ÈÆɤ߽Ф·¤ÎÂÔ¤Á»þ´Ö¤Î¹ç·×¤ò»ØÄꤹ¤ë¡£ -¥¿¥¤¥à¥¢¥¦¥È¤Ë NULL ¤ò»ØÄꤷ¤¿¾ì¹ç¡¢¾¯¤Ê¤¯¤È¤â \fImin_nr\fP ¸Ä¤Î¥¤¥Ù¥ó¥È¤¬ -Æɤ߽Фµ¤ì¤ë¤Þ¤ÇÂԤĤ³¤È¤ò°ÕÌ£¤¹¤ë¡£ +\fItimeout\fP はイベント読み出しの待ち時間の合計を指定する。 +タイムアウトに NULL を指定した場合、少なくとも \fImin_nr\fP 個のイベントが +読み出されるまで待つことを意味する。 .\"O Note that \fItimeout\fP is relative and will be updated if not NULL .\"O and the operation blocks. -Ãí°ÕÅÀ¤ò°Ê²¼¤Ë¤¢¤²¤ë: -\fItimeout\fP ¤ÏÁêÂÐŪ¤Ê»ØÄê¤Ç¤¢¤ë¡£ -NULL ¤Ç¤Ê¤¤¾ì¹ç¹¹¿·¤µ¤ì¤ë¤³¤È¤â¤¢¤ê¤¨¤ë¡£ -¸Æ¤Ó½Ð¤·¸µ¤ÎÆ°ºî¤ÏÄä»ß¤¹¤ë¡£ +注意点を以下にあげる: +\fItimeout\fP は相対的な指定である。 +NULL でない場合更新されることもありえる。 +呼び出し元の動作は停止する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR io_getevents () .\"O returns the number of events read: 0 if no events are .\"O available, or less than \fImin_nr\fP if the \fItimeout\fP has elapsed. .\"O For the failure return, see NOTES. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR io_getevents () -¤ÏÆɤ߽Ф·¤¿¥¤¥Ù¥ó¥È¿ô¤òÊÖ¤¹¡£ -¥¤¥Ù¥ó¥È¤¬°ì¤Ä¤âÆɤ߽Фµ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¡¢ -\fItimeout\fP »þ´Ö¤¬·Ð²á¤·¤¿¾ì¹ç¤Ï \fImin_nr\fP ̤Ëþ¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¡£ -¼ºÇÔ»þ¤ÎÊÖ¤êÃͤˤĤ¤¤Æ¤Ï¡¢¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¤¹¤ë¤³¤È¡£ +は読み出したイベント数を返す。 +イベントが一つも読み出されなかった場合は 0 が返され、 +\fItimeout\fP 時間が経過した場合は \fImin_nr\fP 未満の値が返される。 +失敗時の返り値については、「注意」の節を参照すること。 .\"O .SH "ERRORS" -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O Either \fIevents\fP or \fItimeout\fP is an invalid pointer. -\fIevents\fP ¤Þ¤¿¤Ï \fItimeout\fP ¤¬Ìµ¸ú¤Ê¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +\fIevents\fP または \fItimeout\fP が無効なポインタである。 .TP .B EINVAL .\"O \fIctx_id\fP is invalid. .\"O \fImin_nr\fP is out of range or \fInr\fP is .\"O out of range. -\fIctx_id\fP ¤¬Ìµ¸ú¤Ç¤¢¤ë¡£¤â¤·¤¯¤Ï¡¢\fImin_nr\fP ¤Þ¤¿¤Ï \fInr\fP ¤¬ -Èϰϳ°¤ÎÃͤǤ¢¤ë¡£ +\fIctx_id\fP が無効である。もしくは、\fImin_nr\fP または \fInr\fP が +範囲外の値である。 .TP .B EINTR .\"O Interrupted by a signal handler; see .\"O .BR signal (7). -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¡£ +シグナルハンドラにより割り込まれた。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B ENOSYS .\"O .BR io_getevents () .\"O is not implemented on this architecture. .BR io_getevents () -¤¬¤³¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +がこのアーキテクチャでは実装されていない。 .\"O .SH "VERSIONS" -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .PP .\"O The asynchronous I/O system calls first appeared in Linux 2.5, August 2002. -ÈóƱ´ü I/O ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï 2002ǯ8·î¤Ë Linux 2.5 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +非同期 I/O システム・コールは 2002å¹´8月に Linux 2.5 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .PP .\"O .BR io_getevents () .\"O is Linux-specific and should not be used in .\"O programs that are intended to be portable. .BR io_getevents () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤òÁÛÄꤷ¤¿¥×¥í¥°¥é¥à¤Ç -»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +は Linux 固有であり、移植を想定したプログラムで +使用すべきではない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Glibc does not provide a wrapper function for this system call. -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ëÍѤΥé¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +glibc はこのシステムコール用のラッパー関数を提供していない。 .\"O The wrapper provided in .\"O .I libaio @@ -144,18 +144,18 @@ glibc .\"O .I errno .\"O set to a (positive) value that indicates the error. .I libaio -¤Ç +で .BR io_getevents () -ÍѤËÄ󶡤µ¤ì¤Æ¤¤¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢¥¨¥é¡¼¤ÎÄÌÃΤ¬Ä̾ï¤Î C ¥é¥¤¥Ö¥é¥ê¤Î -´·½¬¤Ë¤·¤¿¤¬¤Ã¤Æ¤ª¤é¤º¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤ÏÉé¤Î¥¨¥é¡¼ÈÖ¹æ -(¥¨¥é¡¼¤ÎÀá¤ËÎóµó¤µ¤ì¤Æ¤¤¤ëÃͤΰì¤Ä¤òÉé¤Ë¤·¤¿¤â¤Î) ¤¬ÊÖ¤êÃͤȤʤ롣 +用に提供されているラッパー関数は、エラーの通知が通常の C ライブラリの +慣習にしたがっておらず、エラーの場合には負のエラー番号 +(エラーの節に列挙されている値の一つを負にしたもの) が返り値となる。 .BR syscall (2) -·Ðͳ¤Ç¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤¹¤ë¤È¡¢ÊÖ¤êÃͤÏÄ̾ï¤Î¥¨¥é¡¼ÄÌÃΤδ·½¬¤Ë -¤·¤¿¤¬¤Ã¤Æ¤â¤Î¤È¤Ê¤ê¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï \-1 ¤¬Ê֤ꡢ +経由でシステムコールを起動すると、返り値は通常のエラー通知の慣習に +したがってものとなり、エラーの場合には \-1 が返り、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ (Àµ¤Î) Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ +にエラーを示す (正の) 値が設定される。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .PP .BR io_cancel (2), .BR io_destroy (2), @@ -164,10 +164,10 @@ glibc .BR aio (7), .BR time (7) .\"O .\" .SH "NOTES" -.\" .SH Ãí +.\" .SH 注 .\" .PP .\"O .\" The asynchronous I/O system calls were written by Benjamin LaHaise. -.\" ÈóƱ´ü I/O ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï Benjamin LaHaise ¤¬½ñ¤¤¤¿¡£ +.\" 非同期 I/O システム・コールは Benjamin LaHaise が書いた。 .\"O .\" .SH AUTHOR -.\" .SH Ãø¼Ô +.\" .SH 著者 .\" Kent Yoder. diff --git a/draft/man2/io_setup.2 b/draft/man2/io_setup.2 index 246fa08d..a1a09aa7 100644 --- a/draft/man2/io_setup.2 +++ b/draft/man2/io_setup.2 @@ -26,10 +26,10 @@ .TH IO_SETUP 2 2003-06-18 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O io_setup \- create an asynchronous I/O context -.SH ̾Á° -io_setup \- ÈóƱ´ü I/O ¥³¥ó¥Æ¥­¥¹¥È¤òºîÀ®¤¹¤ë +.SH 名前 +io_setup \- 非同期 I/O コンテキストを作成する .\"O .SH "SYNOPSIS" -.SH ½ñ¼° +.SH 書式 .nf .\" .ad l .\" .hy 0 @@ -42,82 +42,82 @@ io_setup \- .\" .hy .sp .\"O Link with \fI\-laio\fP. -\fI\-laio\fP ¤È¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-laio\fP とリンクする。 .fi .\"O .SH "DESCRIPTION" -.SH ÀâÌÀ +.SH 説明 .PP .\"O .BR io_setup () .\"O creates an asynchronous I/O context capable of receiving .\"O at least \fInr_events\fP. .BR io_setup () -¤Ï¡¢¾¯¤Ê¤¯¤È¤â \fInr_events\fP ¸Ä¤Î¥¤¥Ù¥ó¥È¤ò¼õ¿®²Äǽ¤Ê -ÈóƱ´ü I/O (AIO) ¥³¥ó¥Æ¥­¥¹¥È¤ÎºîÀ®¤ò¹Ô¤¦¡£ +は、少なくとも \fInr_events\fP 個のイベントを受信可能な +非同期 I/O (AIO) コンテキストの作成を行う。 .\"O \fIctxp\fP must not point to an AIO context that already exists, and must .\"O be initialized to 0 prior to the call. -\fIctxp\fP ¤Ï¡¢¤¹¤Ç¤Ë¸ºß¤¹¤ë AIO ¥³¥ó¥Æ¥­¥¹¥È¤ò»Ø¤·¤Æ¤¤¤Æ¤Ï¤Ê¤é¤º¡¢ +\fIctxp\fP は、すでに存在する AIO コンテキストを指していてはならず、 .BR io_setup () -¤Î¸Æ¤Ó½Ð¤·¤ÎÁ°¤Ë 0 ¤Ë½é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +の呼び出しの前に 0 に初期化されていなければならない。 .\"O On successful creation of the AIO context, \fI*ctxp\fP is filled in .\"O with the resulting handle. -AIO ¥³¥ó¥Æ¥­¥¹¥È¤ÎºîÀ®¤ËÀ®¸ù¤¹¤ë¤È¡¢\fI*ctxp\fP ¤ËºîÀ®¤µ¤ì¤¿ -AIO ¥³¥ó¥Æ¥­¥¹¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +AIO コンテキストの作成に成功すると、\fI*ctxp\fP に作成された +AIO コンテキストへのポインタがセットされる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR io_setup () .\"O returns 0. .\"O For the failure return, see NOTES. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR io_setup () -¤Ï 0 ¤òÊÖ¤¹¡£ -¼ºÇÔ»þ¤ÎÊÖ¤êÃͤˤĤ¤¤Æ¤Ï¡¢¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¤¹¤ë¤³¤È¡£ +は 0 を返す。 +失敗時の返り値については、「注意」の節を参照すること。 .\"O .SH "ERRORS" -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EAGAIN .\"O The specified \fInr_events\fP exceeds the user's limit of available events. -»ØÄꤵ¤ì¤¿ \fInr_events\fP ¤¬¥æ¡¼¥¶¤¬»ÈÍѤǤ­¤ë¥¤¥Ù¥ó¥È¿ô¤Î¾å¸Â¤ò±Û¤¨¤Æ¤¤¤ë¡£ +指定された \fInr_events\fP がユーザが使用できるイベント数の上限を越えている。 .TP .B EFAULT .\"O An invalid pointer is passed for \fIctxp\fP. -\fIctxp\fP ¤Ë̵¸ú¤Ê¥Ý¥¤¥ó¥¿¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¡£ +\fIctxp\fP に無効なポインタが指定されている。 .TP .B EINVAL .\"O \fIctxp\fP is not initialized, or the specified \fInr_events\fP .\"O exceeds internal limits. .\"O \fInr_events\fP should be greater than 0. -\fIctxp\fP ¤¬½é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢»ØÄꤵ¤ì¤¿ \fInr_events\fP ¤¬ -ÆâÉô¤ÎÀ©¸ÂÃͤò±Û¤¨¤Æ¤¤¤ë¡£¤Þ¤¿¡¢ \fInr_events\fP ¤Ï 0 ¤è¤êÂ礭¤¤ÃÍ¤Ë -ÀßÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£ +\fIctxp\fP が初期化されていないか、指定された \fInr_events\fP が +内部の制限値を越えている。また、 \fInr_events\fP は 0 より大きい値に +設定すべきである。 .TP .B ENOMEM .\"O Insufficient kernel resources are available. -ɬÍפʥ«¡¼¥Í¥ë¡¦¥ê¥½¡¼¥¹¤òÆÀ¤é¤ì¤Ê¤¤¡£ +必要なカーネル・リソースを得られない。 .TP .B ENOSYS .\"O .BR io_setup () .\"O is not implemented on this architecture. .BR io_setup () -¤¬¤³¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +がこのアーキテクチャでは実装されていない。 .\"O .SH "VERSIONS" -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .PP .\"O The asynchronous I/O system calls first appeared in Linux 2.5, August 2002. -ÈóƱ´ü I/O ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï 2002ǯ8·î¤Ë Linux 2.5 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +非同期 I/O システム・コールは 2002å¹´8月に Linux 2.5 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .PP .\"O .BR io_setup () .\"O is Linux-specific and should not be used in programs .\"O that are intended to be portable. .BR io_setup () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤òÁÛÄꤷ¤¿¥×¥í¥°¥é¥à¤Ç -»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +は Linux 固有であり、移植を想定したプログラムで +使用すべきではない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Glibc does not provide a wrapper function for this system call. -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ëÍѤΥé¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +glibc はこのシステムコール用のラッパー関数を提供していない。 .\"O The wrapper provided in .\"O .I libaio @@ -133,18 +133,18 @@ glibc .\"O .I errno .\"O set to a (positive) value that indicates the error. .I libaio -¤Ç +で .BR io_setup () -ÍѤËÄ󶡤µ¤ì¤Æ¤¤¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢¥¨¥é¡¼¤ÎÄÌÃΤ¬Ä̾ï¤Î C ¥é¥¤¥Ö¥é¥ê¤Î -´·½¬¤Ë¤·¤¿¤¬¤Ã¤Æ¤ª¤é¤º¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤ÏÉé¤Î¥¨¥é¡¼ÈÖ¹æ -(¥¨¥é¡¼¤ÎÀá¤ËÎóµó¤µ¤ì¤Æ¤¤¤ëÃͤΰì¤Ä¤òÉé¤Ë¤·¤¿¤â¤Î) ¤¬ÊÖ¤êÃͤȤʤ롣 +用に提供されているラッパー関数は、エラーの通知が通常の C ライブラリの +慣習にしたがっておらず、エラーの場合には負のエラー番号 +(エラーの節に列挙されている値の一つを負にしたもの) が返り値となる。 .BR syscall (2) -·Ðͳ¤Ç¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤¹¤ë¤È¡¢ÊÖ¤êÃͤÏÄ̾ï¤Î¥¨¥é¡¼ÄÌÃΤδ·½¬¤Ë -¤·¤¿¤¬¤Ã¤Æ¤â¤Î¤È¤Ê¤ê¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï \-1 ¤¬Ê֤ꡢ +経由でシステムコールを起動すると、返り値は通常のエラー通知の慣習に +したがってものとなり、エラーの場合には \-1 が返り、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ (Àµ¤Î) Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ +にエラーを示す (正の) 値が設定される。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .PP .BR io_cancel (2), .BR io_destroy (2), @@ -152,10 +152,10 @@ glibc .BR io_submit (2), .BR aio (7) .\"O .\" .SH "NOTES" -.\" .SH Ãí +.\" .SH 注 .\" .PP .\"O .\" The asynchronous I/O system calls were written by Benjamin LaHaise. -.\" ÈóƱ´ü I/O ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï Benjamin LaHaise ¤¬½ñ¤¤¤¿¡£ +.\" 非同期 I/O システム・コールは Benjamin LaHaise が書いた。 .\"O .\" .SH AUTHOR -.\" .SH Ãø¼Ô +.\" .SH 著者 .\" Kent Yoder. diff --git a/draft/man2/io_submit.2 b/draft/man2/io_submit.2 index bbbdfd38..58c276df 100644 --- a/draft/man2/io_submit.2 +++ b/draft/man2/io_submit.2 @@ -26,10 +26,10 @@ .TH IO_SUBMIT 2 2008-06-18 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O io_submit \- submit asynchronous I/O blocks for processing -.SH ̾Á° -io_submit \- ÈóƱ´ü I/O ¥Ö¥í¥Ã¥¯¤ò½èÍýÂÔ¤Á¥­¥å¡¼¤ËÅÐÏ¿¤¹¤ë +.SH 名前 +io_submit \- 非同期 I/O ブロックを処理待ちキューに登録する .\"O .SH "SYNOPSIS" -.SH ½ñ¼° +.SH 書式 .nf .\" .ad l .\" .hy 0 @@ -43,10 +43,10 @@ io_submit \- .\" .hy .sp .\"O Link with \fI\-laio\fP. -\fI\-laio\fP ¤È¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-laio\fP とリンクする。 .fi .\"O .SH "DESCRIPTION" -.SH ÀâÌÀ +.SH 説明 .PP .\"O .BR io_submit () .\"O queues \fInr\fP I/O request blocks for processing in @@ -54,36 +54,36 @@ io_submit \- .\"O \fIiocbpp\fP should be an array of \fInr\fP AIO control blocks, .\"O which will be submitted to context \fIctx_id\fP. .BR io_submit () -¤Ï¡¢AIO ¥³¥ó¥Æ¥­¥¹¥È \fIctx_id\fP ¤Ë \fInr\fP ¸Ä¤Î I/O -¥ê¥¯¥¨¥¹¥È¤ò½èÍýÂÔ¤Á¤È¤·¤Æ¥­¥å¡¼¤ËÄɲ乤롣 -\fIiocbpp\fP ¤Ï¡¢AIO ¥³¥ó¥Æ¥­¥¹¥È \fIctx_id\fP ¤ËÅÐÏ¿¤µ¤ì¤ë \fInr\fP ¸Ä¤Î -AIO À©¸æ¥Ö¥í¥Ã¥¯¤ÎÇÛÎó¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は、AIO コンテキスト \fIctx_id\fP に \fInr\fP 個の I/O +リクエストを処理待ちとしてキューに追加する。 +\fIiocbpp\fP は、AIO コンテキスト \fIctx_id\fP に登録される \fInr\fP 個の +AIO 制御ブロックの配列になっていなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR io_submit () .\"O returns the number of \fIiocb\fPs submitted (which may be .\"O 0 if \fInr\fP is zero). .\"O For the failure return, see NOTES. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR io_submit () -¤ÏÅÐÏ¿¤·¤¿ \fIiocb\fP ¤Î¸Ä¿ô¤òÊÖ¤¹ -(\fInr\fP ¤¬ 0 ¤Î¾ì¹ç¤Ï 0 ¤òÊÖ¤¹)¡£ -¼ºÇÔ»þ¤ÎÊÖ¤êÃͤˤĤ¤¤Æ¤Ï¡¢¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¤¹¤ë¤³¤È¡£ +は登録した \fIiocb\fP の個数を返す +(\fInr\fP が 0 の場合は 0 を返す)。 +失敗時の返り値については、「注意」の節を参照すること。 .\"O .SH "ERRORS" -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EAGAIN .\"O Insufficient resources are available to queue any \fIiocb\fPs. -²¿¸Ä¤«¤Î \fIiocb\fP ¤ò¥­¥å¡¼¤ËÆþ¤ì¤ë¤Î¤ËɬÍפʥ꥽¡¼¥¹¤¬ÆÀ¤é¤ì¤Ê¤¤¡£ +何個かの \fIiocb\fP をキューに入れるのに必要なリソースが得られない。 .TP .B EBADF .\"O The file descriptor specified in the first \fIiocb\fP is invalid. -ÀèƬ¤Î \fIiocb\fP ¤Ë»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Ìµ¸ú¤Ç¤¢¤ë¡£ +先頭の \fIiocb\fP に指定されたファイル・ディスクリプタが無効である。 .TP .B EFAULT .\"O One of the data structures points to invalid data. -¥Ç¡¼¥¿¹½Â¤¤ÎÃæ¤Ë̵¸ú¤Ê¥Ç¡¼¥¿¤ò»Ø¤·¤Æ¤¤¤ë¤â¤Î¤¬¤¢¤ë¡£ +データ構造の中に無効なデータを指しているものがある。 .TP .B EINVAL .\"O The \fIaio_context\fP specified by \fIctx_id\fP is invalid. @@ -91,35 +91,35 @@ AIO .\"O The \fIiocb\fP at *iocbpp[0] is not properly initialized, .\"O or the operation specified is invalid for the file descriptor .\"O in the \fIiocb\fP. -\fIctx_id\fP ¤Ç»ØÄꤵ¤ì¤¿ \fIaio_context\fP ¤¬Ìµ¸ú¤Ç¤¢¤ë¡£ -\fInr\fP ¤¬ 0 ̤Ëþ¤Ç¤¢¤ë¡£ -*iocbpp[0] ¤Î \fIiocb\fP ¤¬Å¬Àڤ˽é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ -»ØÄꤵ¤ì¤¿Áàºî¤¬¤½¤Î \fIiocb\fP Ãæ¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ -̵¸ú¤Ç¤¢¤ë¡£ +\fIctx_id\fP で指定された \fIaio_context\fP が無効である。 +\fInr\fP が 0 未満である。 +*iocbpp[0] の \fIiocb\fP が適切に初期化されていないか、 +指定された操作がその \fIiocb\fP 中のファイル・ディスクリプタに対して +無効である。 .TP .B ENOSYS .\"O .BR io_submit () .\"O is not implemented on this architecture. .BR io_submit () -¤Ï¤³¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +はこのアーキテクチャでは実装されていない。 .\"O .SH "VERSIONS" -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .PP .\"O The asynchronous I/O system calls first appeared in Linux 2.5, August 2002. -ÈóƱ´ü I/O ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï 2002ǯ8·î¤Ë Linux 2.5 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +非同期 I/O システム・コールは 2002å¹´8月に Linux 2.5 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .PP .\"O .BR io_submit () .\"O is Linux-specific and should not be used in .\"O programs that are intended to be portable. .BR io_submit () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤òÁÛÄꤷ¤¿¥×¥í¥°¥é¥à¤Ç -»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +は Linux 固有であり、移植を想定したプログラムで +使用すべきではない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Glibc does not provide a wrapper function for this system call. -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ëÍѤΥé¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +glibc はこのシステムコール用のラッパー関数を提供していない。 .\"O The wrapper provided in .\"O .I libaio @@ -135,28 +135,28 @@ glibc .\"O .I errno .\"O set to a (positive) value that indicates the error. .I libaio -¤Ç +で .BR io_submit () -ÍѤËÄ󶡤µ¤ì¤Æ¤¤¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢¥¨¥é¡¼¤ÎÄÌÃΤ¬Ä̾ï¤Î C ¥é¥¤¥Ö¥é¥ê¤Î -´·½¬¤Ë¤·¤¿¤¬¤Ã¤Æ¤ª¤é¤º¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤ÏÉé¤Î¥¨¥é¡¼ÈÖ¹æ -(¥¨¥é¡¼¤ÎÀá¤ËÎóµó¤µ¤ì¤Æ¤¤¤ëÃͤΰì¤Ä¤òÉé¤Ë¤·¤¿¤â¤Î) ¤¬ÊÖ¤êÃͤȤʤ롣 +用に提供されているラッパー関数は、エラーの通知が通常の C ライブラリの +慣習にしたがっておらず、エラーの場合には負のエラー番号 +(エラーの節に列挙されている値の一つを負にしたもの) が返り値となる。 .BR syscall (2) -·Ðͳ¤Ç¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤¹¤ë¤È¡¢ÊÖ¤êÃͤÏÄ̾ï¤Î¥¨¥é¡¼ÄÌÃΤδ·½¬¤Ë -¤·¤¿¤¬¤Ã¤Æ¤â¤Î¤È¤Ê¤ê¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï \-1 ¤¬Ê֤ꡢ +経由でシステムコールを起動すると、返り値は通常のエラー通知の慣習に +したがってものとなり、エラーの場合には \-1 が返り、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ (Àµ¤Î) Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ +にエラーを示す (正の) 値が設定される。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR io_cancel (2), .BR io_destroy (2), .BR io_getevents (2), .BR io_setup (2), .BR aio (7) .\"O .\" .SH "NOTES" -.\" .SH Ãí +.\" .SH 注 .\" .PP .\"O .\" The asynchronous I/O system calls were written by Benjamin LaHaise. -.\" ÈóƱ´ü I/O ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï Benjamin LaHaise ¤¬½ñ¤¤¤¿¡£ +.\" 非同期 I/O システム・コールは Benjamin LaHaise が書いた。 .\"O .\" .SH AUTHOR -.\" .SH Ãø¼Ô +.\" .SH 著者 .\" Kent Yoder. diff --git a/draft/man2/ioctl.2 b/draft/man2/ioctl.2 index 0395f8af..643d07ab 100644 --- a/draft/man2/ioctl.2 +++ b/draft/man2/ioctl.2 @@ -45,31 +45,31 @@ .\" Updated 2011-08-10, TACHIBANA Akira .\" Updated 2011-09-15, TACHIBANA Akira .\" -.\"WORD: device ¥Ç¥Ð¥¤¥¹ -.\"WORD: control À©¸æ¤¹¤ë -.\"WORD: special ¥¹¥Ú¥·¥ã¥ë -.\"WORD: character ¥­¥ã¥é¥¯¥¿ -.\"WORD: parameter ¥Ñ¥é¥á¡¼¥¿ -.\"WORD: operate Áàºî -.\"WORD: open ¥ª¡¼¥×¥ó -.\"WORD: request ¥ê¥¯¥¨¥¹¥È -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: argument °ú¤­¿ô -.\"WORD: encode ¥¨¥ó¥³¡¼¥É -.\"WORD: operating characteristics Æ°ºîÆÃÀ­ +.\"WORD: device デバイス +.\"WORD: control 制御する +.\"WORD: special スペシャル +.\"WORD: character キャラクタ +.\"WORD: parameter パラメータ +.\"WORD: operate 操作 +.\"WORD: open オープン +.\"WORD: request リクエスト +.\"WORD: descriptor ディスクリプタ +.\"WORD: argument 引き数 +.\"WORD: encode エンコード +.\"WORD: operating characteristics 動作特性 .\" .TH IOCTL 2 2000-09-21 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O ioctl \- control device -.SH ̾Á° -ioctl \- ¥Ç¥Ð¥¤¥¹¤òÀ©¸æ¤¹¤ë +.SH 名前 +ioctl \- デバイスを制御する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int ioctl(int " d ", int " request ", ...);" .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR ioctl () .\"O function manipulates the underlying device parameters of special files. @@ -81,13 +81,13 @@ ioctl \- .\"O .I d .\"O must be an open file descriptor. .BR ioctl () -´Ø¿ô¤Ï¥¹¥Ú¥·¥ã¥ë¡¦¥Õ¥¡¥¤¥ë¤ò¹½À®¤¹¤ë¥Ç¥Ð¥¤¥¹¤Î¥Ñ¥é¥á¡¼¥¿¤ò -Áàºî¤¹¤ë¡£Æäˡ¢¥­¥ã¥é¥¯¥¿·¿¤Î¥¹¥Ú¥·¥ã¥ë¡¦¥Õ¥¡¥¤¥ë (Î㤨¤ÐüËö (terminal)) -¤Î¿¤¯¤ÎÆ°ºîÆÃÀ­¤ò +関数はスペシャル・ファイルを構成するデバイスのパラメータを +操作する。特に、キャラクタ型のスペシャル・ファイル (例えば端末 (terminal)) +の多くの動作特性を .BR ioctl () -¥ê¥¯¥¨¥¹¥È¤Ë¤è¤Ã¤ÆÀ©¸æ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£°ú¤­¿ô +リクエストによって制御することができる。引き数 .I d -¤Ï¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +はオープンされたファイル・ディスクリプタでなければならない。 .PP .\"O The second argument is a device-dependent request code. .\"O The third argument is an untyped pointer to memory. @@ -96,13 +96,13 @@ ioctl \- .\"O (from the days before .\"O .B "void *" .\"O was valid C), and will be so named for this discussion. -2 ÈÖÌܤΰú¤­¿ô¤Ï¡¢¥Ç¥Ð¥¤¥¹°Í¸¤Î¥ê¥¯¥¨¥¹¥È¡¦¥³¡¼¥É¤Ç¤¢¤ë¡£ -3 ÈÖÌܤΰú¤­¿ô¤Ï¡¢¥á¥â¥ê¤Ø¤Î·¿¤ò»ØÄꤷ¤Ê¤¤¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤³¤Î°ú¤­¿ô¤ÏÅÁÅýŪ¤Ë (C ¤Ç +2 番目の引き数は、デバイス依存のリクエスト・コードである。 +3 番目の引き数は、メモリへの型を指定しないポインタである。 +この引き数は伝統的に (C で .B "void *" -¤È¤¤¤¦½ñ¤­Êý¤¬Í­¸ú¤Ë¤Ê¤ëÁ°¤«¤é) +という書き方が有効になる前から) .BI "char *" argp -¤Èɽµ­¤µ¤ì¤Æ¤¤¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢¤³¤Îʸ¾Ï¤Ç¤â¤½¤¦Ì¾ÉÕ¤±¤ë¤³¤È¤È¤¹¤ë¡£ +と表記されている。したがって、この文章でもそう名付けることとする。 .PP .\"O An .\"O .BR ioctl () @@ -120,54 +120,54 @@ ioctl \- .\"O are located in the file .\"O .IR . .BR ioctl () -¤Î +の .I request -¤Ë¤Ï¡¢ -¤½¤Î°ú¤­¿ô¤¬ -.I ÆþÎÏ -¥Ñ¥é¥á¡¼¥¿¤È -.I ½ÐÎÏ -¥Ñ¥é¥á¡¼¥¿¤Î¤É¤Á¤é¤Ç¤¢¤ë¤«¤Î¶èÊ̤䡢 +には、 +その引き数が +.I 入力 +パラメータと +.I 出力 +パラメータのどちらであるかの区別や、 .I argp -°ú¤­¿ô¤Î¥Ð¥¤¥Èñ°Ì¤Î¥µ¥¤¥º¡¢¤È¤¤¤Ã¤¿¾ðÊ󤬥¨¥ó¥³¡¼¥É¤µ¤ì¤Æ¤¤¤ë¡£ +引き数のバイト単位のサイズ、といった情報がエンコードされている。 .BR ioctl () -¤Î +の .I request -¤ò»ØÄꤹ¤ë¤¿¤á¤Î¥Þ¥¯¥í (macro) ¤ÈÄêµÁ¤Ï +を指定するためのマクロ (macro) と定義は .I -¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë¡£ +ファイルにある。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O Usually, on success zero is returned. .\"O A few .\"O .BR ioctl () .\"O requests use the return value as an output parameter .\"O and return a nonnegative value on success. -¤¿¤¤¤Æ¤¤¤Î¾ì¹ç¡¢À®¸ù¤¹¤ë¤È¥¼¥í¤¬ÊÖ¤µ¤ì¤ë¡£ -¤¿¤À¤·¡¢ +たいていの場合、成功するとゼロが返される。 +ただし、 .BR ioctl () -¥ê¥¯¥¨¥¹¥È¤ÎÃæ¤Ë¤Ï¥Ñ¥é¥á¡¼¥¿¤Î½ÐÎϤËÊÖ¤êÃͤò»ÈÍѤ·¤Æ¤¤¤ë¤â¤Î¤¬¼ã´³¤¢¤ê¡¢ -¤½¤Î¾ì¹ç¤Ï¡¢À®¸ù¤·¤¿¤È¤­¤ËÈóÉé¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¡£ +リクエストの中にはパラメータの出力に返り値を使用しているものが若干あり、 +その場合は、成功したときに非負の値が返される。 .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP 0.7i .B EBADF .\"O .I d .\"O is not a valid descriptor. .I d -¤¬Í­¸ú¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ +が有効なディスクリプタではない。 .TP .B EFAULT .\"O .I argp .\"O references an inaccessible memory area. .I argp -¤¬¥¢¥¯¥»¥¹ÉÔ²Äǽ¤Ê¥á¥â¥ê¤ò»²¾È¤·¤Æ¤¤¤ë¡£ +がアクセス不可能なメモリを参照している。 .TP .B EINVAL .\"O .I Request @@ -175,26 +175,26 @@ ioctl \- .\"O .I argp .\"O is not valid. .I request -¤Þ¤¿¤Ï +または .I argp -¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +が不正である。 .TP .B ENOTTY .\"O .I d .\"O is not associated with a character special device. .I d -¤¬¥­¥ã¥é¥¯¥¿·¿¤Î¥¹¥Ú¥·¥ã¥ë¡¦¥Ç¥Ð¥¤¥¹¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£ +がキャラクタ型のスペシャル・デバイスを参照していない。 .TP .B ENOTTY .\"O The specified request does not apply to the kind of object that the .\"O descriptor .\"O .I d .\"O references. -»ØÄꤵ¤ì¤¿¥ê¥¯¥¨¥¹¥È¤Ï¥Ç¥£¥¹¥¯¥ê¥×¥¿ +指定されたリクエストはディスクリプタ .I d -¤¬»²¾È¤¹¤ë¼ïÎà¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤ÏŬÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +が参照する種類のオブジェクトには適用することができない。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O No single standard. .\"O Arguments, returns, and semantics of .\"O .BR ioctl () @@ -206,23 +206,23 @@ ioctl \- .\"O for a list of many of the known .\"O .BR ioctl () .\"O calls. -¤É¤ì¤«°ì¤Ä¤Îɸ½à¤ËÂбþ¤·¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ +どれか一つの標準に対応しているわけではない。 .BR ioctl () -¤Î°ú¤­¿ô¡¢ÊÖ¤êÃÍ¡¢²ò¼á¤Ï¡¢½èÍýÂоݤΥǥХ¤¥¹¡¦¥É¥é¥¤¥Ð¤´¤È¤Ë -°Û¤Ê¤ë (¤³¤Î´Ø¿ô¤Ï UNIX ¤Î ¥¹¥È¥ê¡¼¥à I/O ¥â¥Ç¥ë ¤Ë -¤­¤Á¤ó¤ÈŬ¹ç¤·¤Æ¤¤¤Ê¤¤Áàºî¤Î¤¿¤á¤ÎÊØÍø²°¤È¤·¤Æ»ÈÍѤµ¤ì¤ë)¡£ -¤è¤¯ÃΤé¤ì¤Æ¤¤¤ë +の引き数、返り値、解釈は、処理対象のデバイス・ドライバごとに +異なる (この関数は UNIX の ストリーム I/O モデル に +きちんと適合していない操作のための便利屋として使用される)。 +よく知られている .BR ioctl () -¤Î¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¤Ï +のリストについては .BR ioctl_list (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O The .\"O .BR ioctl () .\"O function call appeared in Version 7 AT&T UNIX. .BR ioctl () -´Ø¿ô¥³¡¼¥ë¤Ï Version 7 AT&T UNIX ¤ÇÅо줷¤¿¡£ +関数コールは Version 7 AT&T UNIX で登場した。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O In order to use this call, one needs an open file descriptor. .\"O Often the .\"O .BR open (2) @@ -230,16 +230,16 @@ ioctl \- .\"O by giving it the .\"O .B O_NONBLOCK .\"O flag. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤¦¤Ë¤Ï¡¢¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ -ɬÍפǤ¢¤ë¡£ +このシステムコールを使うには、オープンされたファイル・ディスクリプタが +必要である。 .BR open (2) -¥³¡¼¥ë¤Ï¤·¤Ð¤·¤Ð˾¤ó¤Ç¤¤¤Ê¤¤ÉûºîÍѤòȼ¤¦¤³¤È¤¬¤¢¤ë¤¬¡¢Linux ¤Ç¤Ï +コールはしばしば望んでいない副作用を伴うことがあるが、Linux では .BR open (2) -¤Ë +に .B O_NONBLOCK -¥Õ¥é¥°¤ò¤Ä¤±¤ë¤³¤È¤Ç¤³¤ÎÉûºîÍѤòÈò¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +フラグをつけることでこの副作用を避けることができる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR execve (2), .BR fcntl (2), .BR ioctl_list (2), diff --git a/draft/man2/ioctl_list.2 b/draft/man2/ioctl_list.2 index 496bd584..fe07d1fa 100644 --- a/draft/man2/ioctl_list.2 +++ b/draft/man2/ioctl_list.2 @@ -37,22 +37,22 @@ .\" .TH IOCTL_LIST 2 2007-12-29 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O ioctl_list \- list of ioctl calls in Linux/i386 kernel -ioctl_list \- Linux/i386 ¥«¡¼¥Í¥ë¤Î ioctl ¤Î¥ê¥¹¥È +ioctl_list \- Linux/i386 カーネルの ioctl のリスト .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This is Ioctl List 1.3.27, a list of ioctl calls in Linux/i386 kernel .\"O 1.3.27. .\"O It contains 421 ioctls from .\"O .IR . .\"O For each ioctl, its numerical value, its name, and its argument .\"O type are given. -¤³¤Îʸ¾Ï¤Ï ioctl ¥ê¥¹¥È 1.3.27¡¢¤Ä¤Þ¤ê Linux/i386 ¥«¡¼¥Í¥ë 1.3.27 ¤Ë -¤ª¤±¤ë ioctl ¥³¡¼¥ë¤Î°ìÍ÷¤Ç¤¹¡£¤³¤Î¥ê¥¹¥È¤Ï +この文章は ioctl リスト 1.3.27、つまり Linux/i386 カーネル 1.3.27 に +おける ioctl コールの一覧です。このリストは .I -¤Ë¤¢¤ë 421 ¤Î ioctl ¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£Á´¤Æ¤Î ioctl ¤ËÂФ·¤Æ¡¢¿ôÃÍ¡¢Ì¾¾Î¡¢ -°ú¤­¿ô¤Î·¿¤òÎóµó¤·¤Æ¤¢¤ê¤Þ¤¹¡£ +にある 421 の ioctl を含んでいます。全ての ioctl に対して、数値、名称、 +引き数の型を列挙してあります。 .PP .\"O An argument type of .\"O .I const struct foo * @@ -61,34 +61,34 @@ ioctl_list \- Linux/i386 .\"O means the kernel outputs the argument. .\"O If the kernel uses the argument for both input and output, this is .\"O marked with \fI//\ I-O\fP. -°ú¤­¿ô·¿ +引き数型 .I const struct foo * -¤Ï¡¢¤½¤Î°ú¤­¿ô¤¬¥«¡¼¥Í¥ë¤Ø¤ÎÆþÎϤǤ¢¤ë»ö¤ò°ÕÌ£¤·¤Þ¤¹¡£¤Þ¤¿¡¢ +は、その引き数がカーネルへの入力である事を意味します。また、 .I struct foo * -¤Ï¡¢¤½¤Î°ú¤­¿ô¤¬¥«¡¼¥Í¥ë¤«¤é¤Î½ÐÎϤǤ¢¤ë»ö¤ò°ÕÌ£¤·¤Þ¤¹¡£ -¥«¡¼¥Í¥ë¤¬¤½¤Î°ú¤­¿ô¤òÆþÎϤȽÐÎϤÎξÊý¤Ë»ÈÍѤ¹¤ë¾ì¹ç¤Ï¡¢ -\fI//\ I-O\fP ¥Þ¡¼¥¯¤òÉÕ¤±¤Æ¤¢¤ê¤Þ¤¹¡£ +は、その引き数がカーネルからの出力である事を意味します。 +カーネルがその引き数を入力と出力の両方に使用する場合は、 +\fI//\ I-O\fP マークを付けてあります。 .PP .\"O Some ioctls take more arguments or return more values than a single .\"O structure. .\"O These are marked \fI//\ MORE\fP and documented further in a .\"O separate section. -¤¤¤¯¤Ä¤«¤Î ioctl ¤ÏÊ£¿ô¤Î¹½Â¤ÂΤΰú¤­¿ô¤òɬÍפȤ·¤¿¤ê¡¢ÃͤòÊÖ¤·¤¿¤ê -¤·¤Þ¤¹¡£¤³¤ì¤é¤Ë¤Ï \fI//\ MORE\fP ¥Þ¡¼¥¯¤òÉÕ¤±¤Æ¡¢ -¤µ¤é¤ËʬΥ¤·¤¿¥»¥¯¥·¥ç¥ó¤ÇÀâÌÀ¤·¤Æ¤¢¤ê¤Þ¤¹¡£ +いくつかの ioctl は複数の構造体の引き数を必要としたり、値を返したり +します。これらには \fI//\ MORE\fP マークを付けて、 +さらに分離したセクションで説明してあります。 .PP .\"O This list is very incomplete. -¤³¤Î¥ê¥¹¥È¤ÏÉÔ´°Á´¤Ç¤¹¡£ +このリストは不完全です。 .\"O .SS "ioctl structure" -.SS "ioctl ¤Î¹½Â¤" +.SS "ioctl の構造" .\"O .\" added two sections - aeb -.\" 2 ¤Ä¤Î¥»¥¯¥·¥ç¥ó¤òÄɲà - aeb +.\" 2 つのセクションを追加 - aeb .\"O Ioctl command values are 32-bit constants. .\"O In principle these constants are completely arbitrary, but people have .\"O tried to build some structure into them. -ioctl ¥³¥Þ¥ó¥É¤ÎÃÍ¤Ï 32 ¥Ó¥Ã¥È¤ÎÄê¿ô¤Ç¤¹¡£ -¸¶Â§¤È¤·¤Æ¡¢¤³¤ì¤é¤ÎÄê¿ô¤ÏÁ´¤¯Ç¤°Õ¤Î¤â¤Î¤Ç¤¹¤¬¡¢ -À߷׼Ԥϲ¿¤é¤«¤Î¹½Â¤¤ò¤³¤ì¤é¤ÎÄê¿ô¤ËÁȤ߹þ¤â¤¦¤È¤·¤Æ¤¤¤Þ¤¹¡£ +ioctl コマンドの値は 32 ビットの定数です。 +原則として、これらの定数は全く任意のものですが、 +設計者は何らかの構造をこれらの定数に組み込もうとしています。 .LP .\"O The old Linux situation was that of mostly 16-bit constants, where the .\"O last byte is a serial number, and the preceding byte(s) give a type @@ -108,22 +108,22 @@ ioctl .\"O .B CYGETTIMEOUT .\"O has value 0x00435906, with 0x43 0x59 = \(aqC\(aq \(aqY\(aq .\"O indicating the cyclades driver. -ÀΤΠLinux ¤Ç¤Ï¡¢ÂçÉôʬ¤Ï 16 ¥Ó¥Ã¥È¤ÎÄê¿ô¤Ç¤¢¤ê¡¢ -²¼°Ì¥Ð¥¤¥È¤Ï¥·¥ê¥¢¥ëÈÖ¹æ¤Ç¡¢¾å°Ì¥Ð¥¤¥È¤Ï¥É¥é¥¤¥Ð¤Î¥¿¥¤¥×¤òɽ¤·¤Æ¤¤¤Þ¤·¤¿¡£ -¥á¥¸¥ã¡¼Èֹ椬»È¤ï¤ì¤ë¤³¤È¤â¤¢¤ê¤Þ¤·¤¿: -0x03 ¤¬ +昔の Linux では、大部分は 16 ビットの定数であり、 +下位バイトはシリアル番号で、上位バイトはドライバのタイプを表していました。 +メジャー番号が使われることもありました: +0x03 が .B HDIO_* -ioctl, 0x06 ¤¬ +ioctl, 0x06 が .B LP* -ioctl ¤Ê¤É¤Ç¤¹¡£ -1 ʸ»ú°Ê¾å¤Î ASCII ʸ»úÎ󤬻Ȥï¤ì¤ë¤³¤È¤â¤¢¤ê¤Þ¤·¤¿¡£ -¤¿¤È¤¨¤Ð +ioctl などです。 +1 文字以上の ASCII 文字列が使われることもありました。 +たとえば .B TCGETS -¤ÎÃÍ¤Ï 0x00005401 ¤Ç¤¢¤ê¡¢ -0x54 = \(aqT\(aq ¤Ç¥¿¡¼¥ß¥Ê¥ë¥É¥é¥¤¥Ð¤òɽ¤·¤Þ¤¹¡£ +の値は 0x00005401 であり、 +0x54 = \(aqT\(aq でターミナルドライバを表します。 .B CYGETTIMEOUT -¤ÎÃÍ¤Ï 0x00435906 ¤Ç¤¢¤ê¡¢ -0x43 0x59 = \(aqC\(aq \(aqY\(aq ¤Ç cyclades ¥É¥é¥¤¥Ð¤òɽ¤·¤Þ¤¹¡£ +の値は 0x00435906 であり、 +0x43 0x59 = \(aqC\(aq \(aqY\(aq で cyclades ドライバを表します。 .LP .\"O Later (0.98p5) some more information was built into the number. .\"O One has 2 direction bits @@ -132,13 +132,13 @@ ioctl .\"O followed by an 8-bit type (collecting the ioctls in groups .\"O for a common purpose or a common driver), and an 8-bit .\"O serial number. -¸å¤Î»þÂå (0.98p5) ¤Ë¤Ê¤ë¤È¡¢ -¤è¤ê¿¤¯¤Î¾ðÊ󤬿ôÃͤËÁȤ߹þ¤Þ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ -1 ¤Ä¤Î¿ôÃͤϡ¢Æɤ߽ñ¤­¤ÎÊý¸þ¤òɽ¤¹ 2 ¥Ó¥Ã¥È -(00: Æɤ߽ñ¤­¤Ê¤·, 01: ½ñ¤­¹þ¤ß, 10: Æɤ߹þ¤ß, 11: Æɤ߹þ¤ß/½ñ¤­¹þ¤ß)¡¢ -(°ú¤­¿ô¤Î¥µ¥¤¥º¤òɽ¤¹) 14 ¥Ó¥Ã¥È¡¢ -(¶¦Ä̤ÎÌÜŪ¤Þ¤¿¤Ï¶¦Ä̤Υɥ饤¥Ð¤Ç ioctl ¤ò¥°¥ë¡¼¥×¤Ë¤¹¤ë¤¿¤á¤Î) -8 ¥Ó¥Ã¥È¤Î¥¿¥¤¥×¡¢8 ¥Ó¥Ã¥È¤Î¥·¥ê¥¢¥ëÈֹ椫¤é¹½À®¤µ¤ì¤Þ¤¹¡£ +後の時代 (0.98p5) になると、 +より多くの情報が数値に組み込まれるようになりました。 +1 つの数値は、読み書きの方向を表す 2 ビット +(00: 読み書きなし, 01: 書き込み, 10: 読み込み, 11: 読み込み/書き込み)、 +(引き数のサイズを表す) 14 ビット、 +(共通の目的または共通のドライバで ioctl をグループにするための) +8 ビットのタイプ、8 ビットのシリアル番号から構成されます。 .LP .\"O The macros describing this structure live in \fI\fP .\"O and are @@ -149,45 +149,45 @@ ioctl .\"O .I sizeof(size) .\"O so that size is a .\"O misnomer here: this third argument is a data type. -¤³¤Î¹½Â¤¤òµ­½Ò¤¹¤ë¥Þ¥¯¥í¤Ï \fI\fP ¤Ë¤¢¤ê¡¢ +この構造を記述するマクロは \fI\fP にあり、 .B _IO(type,nr) -¤È +と .B "{_IOR,_IOW,_IOWR}(type,nr,size)" -¤Ç¤¹¡£ -¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ï +です。 +これらのマクロは .I sizeof(size) -¤ò»È¤¦¤Î¤Ç¡¢ -¤³¤³¤Ç size ¤È¤¤¤¦Ì¾Á°¤Ë¤·¤Æ¤¤¤ë¤Î¤Ï´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹: -¤³¤Î 3 ¤ÄÌܤΰú¤­¿ô¤Ï¥Ç¡¼¥¿¥¿¥¤¥×¤Ç¤¹¡£ +を使うので、 +ここで size という名前にしているのは間違っています: +この 3 つ目の引き数はデータタイプです。 .LP .\"O Note that the size bits are very unreliable: in lots of cases .\"O they are wrong, either because of buggy macros using .\"O .IR sizeof(sizeof(struct)) , .\"O or because of legacy values. -size ¥Ó¥Ã¥È¤ÏÁ´¤¯Åö¤Æ¤Ë¤Ê¤é¤Ê¤¤ÅÀ¤ËÃí°Õ¤·¤Æ²¼¤µ¤¤: -¿¤¯¤Î¾ì¹ç¡¢´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹¡£ -¤³¤ì¤Ï +size ビットは全く当てにならない点に注意して下さい: +多くの場合、間違っています。 +これは .I sizeof(sizeof(struct)) -¤ò»È¤Ã¤¿¥Ð¥°¤ò´Þ¤ó¤À¥Þ¥¯¥í¤ä¡¢²áµî¤«¤é¼õ¤±·Ñ¤¤¤ÀÃͤ¬¸¶°ø¤Ç¤¹¡£ +を使ったバグを含んだマクロや、過去から受け継いだ値が原因です。 .LP .\"O Thus, it seems that the new structure only gave disadvantages: .\"O it does not help in checking, but it causes varying values .\"O for the various architectures. -¤·¤¿¤¬¤Ã¤Æ¡¢¿·¤·¤¤¹½Â¤¤ÏÉÔÅÔ¹ç¤ÊÅÀ¤·¤«¤Ê¤¤¤è¤¦¤Ë»×¤ï¤ì¤Þ¤¹: -¤³¤Î¹½Â¤¤Ï¥Á¥§¥Ã¥¯¤Î¼ê½õ¤±¤Ë¤Ï¤Ê¤é¤º¡¢ -ÍÍ¡¹¤Ê¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤è¤Ã¤ÆÃͤòÊѲ½¤µ¤»¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ +したがって、新しい構造は不都合な点しかないように思われます: +この構造はチェックの手助けにはならず、 +様々なアーキテクチャによって値を変化させてしまいます。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O Decent ioctls return 0 on success and \-1 on error, while .\"O any output value is stored via the argument. .\"O However, .\"O quite a few ioctls in fact return an output value. .\"O This is not yet indicated below. -¤­¤Á¤ó¤È¤·¤¿ ioctl ¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤·¡¢ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¤Þ¤¹¡£ -¤Þ¤¿½ÐÎÏÃͤϰú¤­¿ô¤Ë³ÊǼ¤·¤Þ¤¹¡£ -¤·¤«¤·¼ÂºÝ¤Ï¡¢¤«¤Ê¤ê¿¤¯¤Î ioctl ¤¬½ÐÎÏÃͤòÊÖ¤·¤Þ¤¹¡£ -¤³¤ì¤Ïº£¤Î¤È¤³¤í°Ê²¼¤Ç¤Ï¼¨¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ +きちんとした ioctl は、成功した場合は 0 を返し、 +エラーの場合は \-1 を返します。 +また出力値は引き数に格納します。 +しかし実際は、かなり多くの ioctl が出力値を返します。 +これは今のところ以下では示されていません。 // Main table. @@ -756,8 +756,8 @@ l l l l. .\"O Some ioctl's take a pointer to a structure which contains additional .\"O pointers. .\"O These are documented here in alphabetical order. -¤¤¤¯¤Ä¤«¤Î ioctl ¤ÏÄɲäΥݥ¤¥ó¥¿¤ò´Þ¤à¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ò»ÈÍѤ·¤Þ¤¹¡£ -¤³¤³¤Ç¤³¤ì¤é¤ò¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½ç¤ËÀâÌÀ¤·¤Þ¤¹¡£ +いくつかの ioctl は追加のポインタを含む構造体へのポインタを使用します。 +ここでこれらをアルファベット順に説明します。 .\"O .B CDROMREADAUDIO .\"O takes an input pointer @@ -767,13 +767,13 @@ l l l l. .\"O field points to an output buffer of length .\"O .IR "nframes * CD_FRAMESIZE_RAW" . .B CDROMREADAUDIO -¤ÏÆþÎϥݥ¤¥ó¥¿ +は入力ポインタ .I "const struct cdrom_read_audio *" -¤ò»ÈÍѤ·¤Þ¤¹¡£ +を使用します。 .I buf -¥Õ¥£¡¼¥ë¥É¤ÏÂ礭¤µ +フィールドは大きさ .IR "nframes * CD_FRAMESIZE_RAW" -¤Î½ÐÎϥХåե¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¹¡£ +の出力バッファへのポインタです。 .\"O .BR CDROMREADCOOKED , .\"O .BR CDROMREADMODE1 , @@ -794,16 +794,16 @@ l l l l. .BR CDROMREADMODE1 , .BR CDROMREADMODE2 , .B CDROMREADRAW -¤ÏÆþÎϥݥ¤¥ó¥¿ +は入力ポインタ .I const struct cdrom_msf * -¤ò»ÈÍѤ·¤Þ¤¹¡£¤³¤ì¤é¤ÏƱ¤¸¥Ý¥¤¥ó¥¿¤ò +を使用します。これらは同じポインタを .I char [] -¤Ø¤Î½ÐÎϥݥ¤¥ó¥¿¤È¤·¤Æ»ÈÍѤ·¤Þ¤¹¡£ -Ťµ¤ÏÍ×µá¤Ë¤è¤Ã¤ÆÊѲ½¤·¤Þ¤¹¡£ +への出力ポインタとして使用します。 +長さは要求によって変化します。 .B CDROMREADMODE1 -¤Ë¤Ï¡¢Â¿¤¯¤Î¥Ç¥Ð¥¤¥¹¤¬ -CD_FRAMESIZE ¤ò»ÈÍѤ·¤Þ¤¹¤¬¡¢¸÷³Øµ­²±ÁõÃÖ (¸÷¥Ç¥£¥¹¥¯) ¤Î¥É¥é¥¤¥Ð¤Ï -OPT_BLOCKSIZE ¤ò»ÈÍѤ·¤Þ¤¹ (¤É¤Á¤é¤âƱ¤¸ÃÍ¤Ç 2048 ¤Ç¤¹)¡£ +には、多くのデバイスが +CD_FRAMESIZE を使用しますが、光学記憶装置 (光ディスク) のドライバは +OPT_BLOCKSIZE を使用します (どちらも同じ値で 2048 です)。 .nf CDROMREADCOOKED char [CD_FRAMESIZE] @@ -830,11 +830,11 @@ OPT_BLOCKSIZE .BR EQL_SETSLAVECFG , .BR EQL_GETMASTERCFG , .B EQL_SETMASTERCFG -¤Ï +は .I struct ifreq * -¤ò»ÈÍѤ·¤Þ¤¹¡£ +を使用します。 .I ifr_data -¥Õ¥£¡¼¥ë¥É¤Ï°Ê²¼¤Ë¼¨¤¹Ê̤ι½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¹: +フィールドは以下に示す別の構造体へのポインタです: .nf EQL_ENSLAVE const struct slaving_request * @@ -861,21 +861,21 @@ OPT_BLOCKSIZE .\"O points to an output buffer of length .\"O .IR length . .B FDRAWCMD -¤Ï +は .I struct floppy raw_cmd * -¤ò»ÈÍѤ·¤Þ¤¹¡£ +を使用します。 .I flags & FD_RAW_WRITE -¤¬¥¼¥í°Ê³°¤Î¾ì¹ç¡¢ +がゼロ以外の場合、 .I data -¤ÏÂ礭¤µ +は大きさ .I length -¤ÎÆþÎϥХåե¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ë¤Ê¤ê¤Þ¤¹¡£ +の入力バッファへのポインタになります。 .I flags & FD_RAW_READ -¤¬¥¼¥í°Ê³°¤Î¾ì¹ç¡¢ +がゼロ以外の場合、 .I data -¤ÏÂ礭¤µ +は大きさ .I length -¤Î½ÐÎϥХåե¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ë¤Ê¤ê¤Þ¤¹¡£ +の出力バッファへのポインタになります。 .\"O .B GIO_FONTX .\"O and @@ -894,20 +894,20 @@ OPT_BLOCKSIZE .\"O .BR PIO_FONTX . .BR GIO_FONTX , .B PIO_FONTX -¤Ï¤½¤ì¤¾¤ì +はそれぞれ .I struct console_font_desc * -¤È +と .I const struct console_font_desc * -¤ò»ÈÍѤ·¤Þ¤¹¡£ +を使用します。 .I chardata -¤Ï +は .I char [charcount] -¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¹¡£ -¤³¤ì¤Ï +バッファへのポインタです。 +これは .B GIO_FONTX -¤Î½ÐÎϥХåե¡¤È +の出力バッファと .B PIO_FONTX -¤ÎÆþÎϥХåե¡¤Ç¤¹¡£ +の入力バッファです。 .\"O .B GIO_UNIMAP .\"O and @@ -926,27 +926,27 @@ OPT_BLOCKSIZE .\"O .BR PIO_UNIMAP . .BR GIO_UNIMAP , .B PIO_UNIMAP -¤Ï¤½¤ì¤¾¤ì +はそれぞれ .I struct unimapdesc * -¤È +と .I const struct unimapdesc * -¤ò»ÈÍѤ·¤Þ¤¹¡£ +を使用します。 .I entries -¤Ï +は .I struct unipair [entry_ct] -¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¹¡£ -¤³¤ì¤Ï +バッファへのポインタです。 +これは .B GIO_UNIMAP -¤Î½ÐÎϥХåե¡¤È +の出力バッファと .B PIO_UNIMAP -¤ÎÆþÎϥХåե¡¤Ç¤¹¡£ +の入力バッファです。 .\"O KDADDIO, KDDELIO, KDDISABIO, and KDENABIO enable or disable access to .\"O I/O ports. .\"O They are essentially alternate interfaces to 'ioperm'. -KDADDIO, KDDELIO, KDDISABIO, KDENABIO ¤Ï I/O ¥Ý¡¼¥È¤Ø¤Î¥¢¥¯¥»¥¹¤ò -²Äǽ/ÉÔ²Äǽ¤Ë¤·¤Þ¤¹¡£¤³¤ì¤é¤ÏËܼÁŪ¤Ë¡¢'ioperm' ¤Ø¤ÎÊ̤Π-¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¹¡£ +KDADDIO, KDDELIO, KDDISABIO, KDENABIO は I/O ポートへのアクセスを +可能/不可能にします。これらは本質的に、'ioperm' への別の +インターフェースです。 .\"O .B KDMAPDISP .\"O and @@ -955,8 +955,8 @@ KDADDIO, KDDELIO, KDDISABIO, KDENABIO .\"O They are not implemented in the kernel. .BR KDMAPDISP , .B KDUNMAPDISP -¤Ï¥á¥â¥ê¡¦¥Þ¥Ã¥Ô¥ó¥°¤ä I/O ¥Ý¡¼¥È¤Ø¤Î¥¢¥¯¥»¥¹¤ò²Äǽ/ÉÔ²Äǽ¤Ë¤·¤Þ¤¹¡£ -¤³¤ì¤é¤Ï¥«¡¼¥Í¥ë¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ +はメモリ・マッピングや I/O ポートへのアクセスを可能/不可能にします。 +これらはカーネルに実装されていません。 .\"O .B SCSI_IOCTL_PROBE_HOST .\"O takes an input pointer @@ -966,11 +966,11 @@ KDADDIO, KDDELIO, KDDISABIO, KDENABIO .\"O .I char [] .\"O buffer of this length. .B SCSI_IOCTL_PROBE_HOST -¤ÏÆþÎϥݥ¤¥ó¥¿ +は入力ポインタ .I const int * -¤òÂ礭¤µ¤È¤·¤Æ»ÈÍѤ·¤Þ¤¹¡£¤³¤ì¤ÏƱ¤¸Â礭¤µ¤Î +を大きさとして使用します。これは同じ大きさの .I char [] -¥Ð¥Ã¥Õ¥¡ ¤Ø¤Î½ÐÎϥݥ¤¥ó¥¿¤È¤·¤Æ¤â»ÈÍѤ·¤Þ¤¹¡£ +バッファ への出力ポインタとしても使用します。 .\"O .B SIOCADDRT .\"O and @@ -979,7 +979,7 @@ KDADDIO, KDDELIO, KDDISABIO, KDENABIO .\"O the protocol: .BR SIOCADDRT , .B SIOCDELRT -¤Ï·¿¤¬°Ê²¼¤Î¥×¥í¥È¥³¥ë¤Ë°Í¸¤¹¤ëÆþÎϥݥ¤¥ó¥¿¤ò»ÈÍѤ·¤Þ¤¹: +は型が以下のプロトコルに依存する入力ポインタを使用します: .nf Most protocols const struct rtentry * @@ -997,21 +997,21 @@ KDADDIO, KDDELIO, KDDISABIO, KDENABIO .\"O bytes, into which the kernel writes a list of type .\"O .IR "struct ifreq []" . .B SIOCGIFCONF -¤Ï +は .I struct ifconf * -¤ò»ÈÍѤ·¤Þ¤¹¡£¤³¤Î +を使用します。この .I ifc_buf -¥Õ¥£¡¼¥ë¥É¤ÏŤµ +フィールドは長さ .I ifc_len -¥Ð¥¤¥È¤Î¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¹¡£ -¤³¤ì¤Ë¥«¡¼¥Í¥ë¤¬ +バイトのバッファへのポインタです。 +これにカーネルが .I struct ifreq [] -·¿¤Î¥ê¥¹¥È¤Ø½ñ¤­¹þ¤ß¤Þ¤¹¡£ +型のリストへ書き込みます。 .\"O .B SIOCSIFHWADDR .\"O takes an input pointer whose type depends on the protocol: .B SIOCSIFHWADDR -¤Ï·¿¤¬°Ê²¼¤Î¥×¥í¥È¥³¥ë¤Ë°Í¸¤¹¤ëÆþÎϥݥ¤¥ó¥¿¤ò»ÈÍѤ·¤Þ¤¹: +は型が以下のプロトコルに依存する入力ポインタを使用します: .nf Most protocols const struct ifreq * @@ -1032,18 +1032,18 @@ KDADDIO, KDDELIO, KDDISABIO, KDENABIO .\"O is implicitly defined in .\"O .IR drivers/char/selection.c .B TIOCLINUX -¤Ï +は .I const char * -¤ò»ÈÍѤ·¤Þ¤¹¡£¤³¤Î¥Ý¥¤¥ó¥¿¤ò¤¤¤¯¤Ä¤«¤Î -ÆÈΩ¤·¤¿¥µ¥Ö¥¯¥é¥¹¤ò¼±Ê̤¹¤ë°Ù¤Ë»ÈÍѤ·¤Þ¤¹¡£°Ê²¼¤Î¥Æ¡¼¥Ö¥ë¤ÎÃæ¤Ç¡¢ +を使用します。このポインタをいくつかの +独立したサブクラスを識別する為に使用します。以下のテーブルの中で、 .I N + foo -¤Ï N ¥Ð¥¤¥È¤ÎµÍ¤á¤â¤Î¤Î¸å¤Ë¤¢¤ë +は N バイトの詰めものの後にある .I foo -¤ò°ÕÌ£¤·¤Þ¤¹¡£ +を意味します。 .I struct selection -¤Ï°ÅÌÛŪ¤Ë +は暗黙的に .I drivers/char/selection.c -¤ÎÃæ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +の中で定義されています。 .nf TIOCLINUX-2 1 + const struct selection * @@ -1061,11 +1061,11 @@ KDADDIO, KDDELIO, KDDISABIO, KDENABIO .\"O .B SIOCDEVPRIVATE .\"O and .\"O .BR SIOCPROTOPRIVATE . -¤³¤Î¥ê¥¹¥È¤Ï +このリストは .B SIOCDEVPRIVATE -¤«¤é +から .B SIOCPROTOPRIVATE -¤ÎÈϰϤΠioctl ¤ò´Þ¤ó¤Ç¤¤¤Þ¤»¤ó¡£ +の範囲の ioctl を含んでいません。 .TS l l l. 0x00000001 FDSETPRM FIBMAP @@ -1076,5 +1076,5 @@ l l l. 0x00005404 SNDCTL_TMR_CONTINUE TCSETSF .TE .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ioctl (2) diff --git a/draft/man2/ioperm.2 b/draft/man2/ioperm.2 index f69c6ead..bb93f79b 100644 --- a/draft/man2/ioperm.2 +++ b/draft/man2/ioperm.2 @@ -42,11 +42,11 @@ .\" .TH IOPERM 2 2007-06-15 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O ioperm \- set port input/output permissions -ioperm \- ¥Ý¡¼¥È¤ÎÆþ½ÐÎϵö²Ä¤òÀßÄꤹ¤ë +ioperm \- ポートの入出力許可を設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include /* for libc5 */ .br @@ -55,7 +55,7 @@ ioperm \- .sp .BI "int ioperm(unsigned long " from ", unsigned long " num ", int " turn_on ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR ioperm () .\"O sets the port access permission bits for the calling process for .\"O \fInum\fP bytes starting from port address \fIfrom\fP to the value @@ -63,12 +63,12 @@ ioperm \- .\"O If \fIturn_on\fP is nonzero, the calling process must be privileged .\"O .RB ( CAP_SYS_RAWIO ). .BR ioperm () -¤Ï¡¢°ú¤­¿ô \fIfrom\fP ¤Î I/O ¥Ý¡¼¥È¥¢¥É¥ì¥¹¤«¤é -\fInum\fP ¥Ð¥¤¥Èʬ¤ÎÎΰè¤ËÂФ¹¤ë¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥¢¥¯¥»¥¹µö²Ä¥Ó¥Ã¥È¤ò¡¢\fIturn_on\fP ¤ËÀßÄꤹ¤ë¡£ -\fIturn_on\fP ¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤ÏÆø¢ +は、引き数 \fIfrom\fP の I/O ポートアドレスから +\fInum\fP バイト分の領域に対する、呼び出し元プロセスの +アクセス許可ビットを、\fIturn_on\fP に設定する。 +\fIturn_on\fP が 0 以外の場合、呼び出し元プロセスは特権 .RB ( CAP_SYS_RAWIO ) -¤ò»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を持っていなければならない。 .\" FIXME is the following ("Only the first 0x3ff I/O ports can be .\" specified in this manner") still true? Looking at changes in @@ -78,10 +78,10 @@ ioperm \- .\"O For more ports, the .\"O .BR iopl (2) .\"O function must be used. -¤³¤ÎÊýË¡¤ÇÀßÄê¤Ç¤­¤ë¤Î¤Ï 0x3ff ÈÖÃϤޤǤΠI/O¥Ý¡¼¥È¤Ë¸Â¤é¤ì¤ë¡£ -¤³¤ì¤è¤ê¤âÂ礭¤Ê¥¢¥É¥ì¥¹¤Î¥Ý¡¼¥È¤ËÂФ·¤Æ¤Ï +この方法で設定できるのは 0x3ff 番地までの I/Oポートに限られる。 +これよりも大きなアドレスのポートに対しては .BR iopl (2) -´Ø¿ô¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +関数を使わなければならない。 .\"O Permissions are not inherited by the child created by .\"O .BR fork (2). @@ -89,25 +89,25 @@ ioperm \- .\"O .BR execve (2); .\"O this is useful for giving port access permissions to unprivileged .\"O programs. -¥¢¥¯¥»¥¹¸¢¤Ï +アクセス権は .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ë¤Ï·Ñ¾µ¤µ¤ì¤Ê¤¤¡£ +で作成された子プロセスには継承されない。 .BR execve (2) -¤ÎÁ°¸å¤Ç¥¢¥¯¥»¥¹¸¢¤ÏÊݸ¤µ¤ì¤ë¡£¤³¤Îµ¡Ç½¤Ï -ÈóÆø¢¥×¥í¥°¥é¥à¤Ë¥Ý¡¼¥È¤Ø¤Î¥¢¥¯¥»¥¹¸¢¤ò -Í¿¤¨¤ë¤Î¤Ë»ÈÍѤǤ­¤ë¡£ +の前後でアクセス権は保存される。この機能は +非特権プログラムにポートへのアクセス権を +与えるのに使用できる。 .\"O This call is mostly for the i386 architecture. .\"O On many other architectures it does not exist or will always .\"O return an error. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¤Û¤È¤ó¤É i386 ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î¤¿¤á¤À¤±¤Î¤â¤Î¤Ç¤¢¤ë¡£ -¤½¤Î¾¤Î¿¤¯¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¸ºß¤·¤Ê¤¤¤«¡¢¾ï¤Ë¥¨¥é¡¼¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ë \-1 ¤òÊÖ¤·¡¢ +このシステムコールはほとんど i386 アーキテクチャのためだけのものである。 +その他の多くのアーキテクチャでは存在しないか、常にエラーを返す。 +.SH 返り値 +成功した場合には 0 を返す。エラーの場合に \-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤòÀßÄꤹ¤ë¡£ +に適切な値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O Invalid values for @@ -115,32 +115,32 @@ ioperm \- .\"O or .\"O .IR num . .I from -¤Þ¤¿¤Ï +または .I num -¤ÎÃͤ¬ÉÔÀµ¤Ç¤¢¤ë¡£ +の値が不正である。 .TP .B EIO .\"O (on PowerPC) This call is not supported. -(PowerPC ¤Ç) ¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +(PowerPC で) このシステムコールはサポートしていない。 .TP .B ENOMEM .\" Could not allocate I/O bitmap. .\"O Out of memory. -¥á¥â¥êÉÔ­¡£ +メモリ不足。 .TP .B EPERM .\"O The calling process has insufficient privilege. -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë½½Ê¬¤Ê¸¢¸Â¤¬¤Ê¤«¤Ã¤¿¡£ +呼び出し元プロセスに十分な権限がなかった。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR ioperm () .\"O is Linux-specific and should not be used in programs .\"O intended to be portable. .BR ioperm () -¤Ï Linux ÆÃÍ­¤Î´Ø¿ô¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç -»ÈÍѤ·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +は Linux 特有の関数であり、移植を意図したプログラムで +使用してはならない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Libc5 treats it as a system call and has a prototype in .\"O .IR . .\"O Glibc1 does not have a prototype. @@ -149,17 +149,17 @@ ioperm \- .\"O and in .\"O .IR . .\"O Avoid the latter, it is available on i386 only. -libc5 ¤Ç¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¤·¤Æ°·¤¤ +libc5 ではシステムコールとして扱い .I -¤Ë¥×¥í¥È¥¿¥¤¥×¤¬Â¸ºß¤·¤Æ¤¤¤ë¡£ -glibc1 ¤Ë¤Ï¥×¥í¥È¥¿¥¤¥×¤Ï¸ºß¤·¤Ê¤¤¡£ -glibc2 ¤Ï +にプロトタイプが存在している。 +glibc1 にはプロトタイプは存在しない。 +glibc2 は .I -¤È +と .I -¤ÎξÊý¤Ë¥×¥í¥È¥¿¥¤¥×¤ò»ý¤Ã¤Æ¤¤¤ë¡£ -¸å¼Ô¤Ï i386 ¤Î¤ß¤ÇÍøÍѲÄǽ¤Ê¤Î¤Ç¡¢»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +の両方にプロトタイプを持っている。 +後者は i386 のみで利用可能なので、使用すべきではない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR iopl (2), .BR capabilities (7) diff --git a/draft/man2/iopl.2 b/draft/man2/iopl.2 index e3778645..938662fa 100644 --- a/draft/man2/iopl.2 +++ b/draft/man2/iopl.2 @@ -39,81 +39,81 @@ .\" .TH IOPL 2 2004-05-27 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O iopl \- change I/O privilege level -iopl \- I/O Æø¢¥ì¥Ù¥ë¤òÊѹ¹¤¹¤ë +iopl \- I/O 特権レベルを変更する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int iopl(int " level ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR iopl () .\"O changes the I/O privilege level of the calling process, as specified in .\"O .IR level . .BR iopl () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î I/O Æø¢¥ì¥Ù¥ë¤ò +は呼び出し元のプロセスの I/O 特権レベルを .I level -¤Ç»ØÄꤷ¤¿ÃͤËÊѹ¹¤¹¤ë¡£ +で指定した値に変更する。 .\"O This call is necessary to allow 8514-compatible X servers to run under .\"O Linux. .\"O Since these X servers require access to all 65536 I/O ports, the .\"O .BR ioperm (2) .\"O call is not sufficient. -¤³¤Î´Ø¿ô¤Ï 8514 ¸ß´¹¤Î X ¥µ¡¼¥Ð¤ò Linux ¤ÇÆ°ºî¤µ¤»¤ë¤¿¤á¤ËɬÍפǤ¢¤ë¡£ -¤Ê¤¼¤Ê¤é¤³¤Î X ¥µ¡¼¥Ð¤Ï 65536 ¸Ä¤Î I/O ¥Ý¡¼¥ÈÁ´¤Æ¤Ø¤Î¥¢¥¯¥»¥¹¤òÍ׵᤹¤ë¤Î¤Ç +この関数は 8514 互換の X サーバを Linux で動作させるために必要である。 +なぜならこの X サーバは 65536 個の I/O ポート全てへのアクセスを要求するので .BR ioperm (2) -´Ø¿ô¤Ç¤ÏÉÔ½½Ê¬¤À¤«¤é¤Ç¤¢¤ë¡£ +関数では不十分だからである。 .\"O In addition to granting unrestricted I/O port access, running at a higher .\"O I/O privilege level also allows the process to disable interrupts. .\"O This will probably crash the system, and is not recommended. -¤è¤ê¹â¤¤ I/O Æø¢¥ì¥Ù¥ë¤Ç¤ÎÆ°ºî¤ò¤µ¤»¤ë¤³¤È¤Ë¤è¤Ã¤Æ -I/O ¥Ý¡¼¥È¥¢¥¯¥»¥¹¤ÎÀ©¸Â¤ò²ò½ü¤¹¤ë¤³¤È¤Ë²Ã¤¨¤Æ¡¢¥×¥í¥»¥¹¤¬³ä¤ê¹þ¤ß¤ò -̵¸ú¤Ë¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£¤³¤Îµ¡Ç½¤Ï»þ¤È¤·¤Æ¥·¥¹¥Æ¥à¤ÎÇ˲õ¤ò -¤â¤¿¤é¤¹¤Î¤Ç´«¤á¤é¤ì¤Ê¤¤¡£ +より高い I/O 特権レベルでの動作をさせることによって +I/O ポートアクセスの制限を解除することに加えて、プロセスが割り込みを +無効にすることもできるようになる。この機能は時としてシステムの破壊を +もたらすので勧められない。 .\"O Permissions are inherited by .\"O .BR fork (2) .\"O and .\"O .BR exec (2). .BR fork (2) -¤ä +や .BR exec (2) -¤ò¹Ô¤Ã¤¿¾ì¹ç¡¢Æø¢¤Ï·Ñ¾µ¤µ¤ì¤ë¡£ +を行った場合、特権は継承される。 .\"O The I/O privilege level for a normal process is 0. -Ä̾ï¤Î¥×¥í¥»¥¹¤Î I/O Æø¢¥ì¥Ù¥ë¤Ï 0 ¤Ç¤¢¤ë¡£ +通常のプロセスの I/O 特権レベルは 0 である。 .\"O This call is mostly for the i386 architecture. .\"O On many other architectures it does not exist or will always .\"O return an error. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¤Û¤È¤ó¤É i386 ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î¤¿¤á¤À¤±¤Î¤â¤Î¤Ç¤¢¤ë¡£ -¤½¤Î¾¤Î¿¤¯¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¸ºß¤·¤Ê¤¤¤«¡¢¾ï¤Ë¥¨¥é¡¼¤òÊÖ¤¹¡£ +このシステムコールはほとんど i386 アーキテクチャのためだけのものである。 +その他の多くのアーキテクチャでは存在しないか、常にエラーを返す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï \-1 ¤òÊÖ¤·¡¢ +成功した場合には 0 を返す。エラーの場合には \-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬ÀßÄꤵ¤ì¤ë¡£ +に適切な値が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O .I level .\"O is greater than 3. -°ú¤­¿ô +引き数 .I level -¤¬ 3 ¤è¤êÂ礭¤¤¡£ +が 3 より大きい。 .TP .B ENOSYS .\"O This call is unimplemented. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +このシステムコールは実装されていない。 .\"O .TP .\"O .B EPERM .\"O The calling process has insufficient privilege to call @@ -121,23 +121,23 @@ I/O .\"O the .\"O .B CAP_SYS_RAWIO .\"O capability is required. -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë +呼び出し元プロセスに .BR iopl () -¤ò¸Æ¤Ó½Ð¤¹¤Î¤Ë½½Ê¬¤Ê¸¢¸Â¤¬¤Ê¤«¤Ã¤¿¡£ +を呼び出すのに十分な権限がなかった。 .BR iopl () -¤ò¸Æ¤Ó½Ð¤¹¤Ë¤Ï +を呼び出すには .B CAP_SYS_RAWIO -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティが必要である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR iopl () .\"O is Linux-specific and should not be used in processes .\"O intended to be portable. .BR iopl () -¤Ï Linux ÆÃÍ­¤Î´Ø¿ô¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç -»ÈÍѤ·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +は Linux 特有の関数であり、移植を意図したプログラムで +使用してはならない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Libc5 treats it as a system call and has a prototype in .\"O .IR . .\"O Glibc1 does not have a prototype. @@ -146,17 +146,17 @@ I/O .\"O and in .\"O .IR . .\"O Avoid the latter, it is available on i386 only. -libc5 ¤Ç¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¤·¤Æ°·¤¤ +libc5 ではシステムコールとして扱い .I -¤Ë¥×¥í¥È¥¿¥¤¥×¤¬Â¸ºß¤·¤Æ¤¤¤ë¡£ -glibc1 ¤Ë¤Ï¥×¥í¥È¥¿¥¤¥×¤Ï¸ºß¤·¤Æ¤¤¤Ê¤¤¡£ -glibc2 ¤Ï +にプロトタイプが存在している。 +glibc1 にはプロトタイプは存在していない。 +glibc2 は .I -¤È +と .I -¤ÎξÊý¤Ë¥×¥í¥È¥¿¥¤¥×¤ò»ý¤Ã¤Æ¤¤¤ë¡£ -¸å¼Ô¤Ï i386 ¤Î¤ß¤ÇÍøÍѲÄǽ¤Ê¤Î¤Ç¡¢»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +の両方にプロトタイプを持っている。 +後者は i386 のみで利用可能なので、使用すべきではない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ioperm (2), .BR capabilities (7) diff --git a/draft/man2/ioprio_set.2 b/draft/man2/ioprio_set.2 index 906662ba..76501fa3 100644 --- a/draft/man2/ioprio_set.2 +++ b/draft/man2/ioprio_set.2 @@ -28,29 +28,29 @@ .\" .TH IOPRIO_SET 2 2008-07-09 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O ioprio_get, ioprio_set \- get/set I/O scheduling class and priority -ioprio_get, ioprio_set \- I/O ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹¤ÈÍ¥ÀèÅÙ¤ÎÀßÄê/¼èÆÀ +ioprio_get, ioprio_set \- I/O スケジューリングクラスと優先度の設定/取得 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .BI "int ioprio_get(int " which ", int " who ); .BI "int ioprio_set(int " which ", int " who ", int " ioprio ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR ioprio_get () .\"O and .\"O .BR ioprio_set () .\"O system calls respectively get and set the I/O scheduling class and .\"O priority of one or more processes. -¥·¥¹¥Æ¥à¥³¡¼¥ë +システムコール .BR ioprio_get () / .BR ioprio_set () -¤Ï¡¢(1¤Ä°Ê¾å¤Î) ¥×¥í¥»¥¹¤Î I/O ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹¤È -Í¥ÀèÅ٤μèÆÀ/ÀßÄê¤ò¹Ô¤¦¡£ +は、(1つ以上の) プロセスの I/O スケジューリングクラスと +優先度の取得/設定を行う。 .\"O The .\"O .I which @@ -64,32 +64,32 @@ ioprio_get, ioprio_set \- I/O .\"O .I who .\"O is interpreted, and has one of the following values: .I which -¤È +と .I who -°ú¤­¿ô¤Ç¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÁàºîÂоݤȤʤë¥×¥í¥»¥¹¤ò»Ø¼¨¤¹¤ë¡£ +引き数でシステムコールの操作対象となるプロセスを指示する。 .I which -°ú¤­¿ô¤Ï¡¢ +引き数は、 .I who -¤ò¤É¤Î¤è¤¦¤Ë²ò¼á¤¹¤ë¤«¤ò·è¤á¤ë¤â¤Î¤Ç¡¢°Ê²¼¤Î¤¤¤º¤ì¤«°ì¤Ä¤ò»ØÄꤹ¤ë¡£ +をどのように解釈するかを決めるもので、以下のいずれか一つを指定する。 .TP .B IOPRIO_WHO_PROCESS .\"O .I who .\"O is a process ID identifying a single process. .I who -¤Ï¥×¥í¥»¥¹ID ¤Ç¤¢¤ê¡¢»ØÄꤵ¤ì¤¿ 1 ¥×¥í¥»¥¹¤¬ÂоݤȤʤ롣 +はプロセスID であり、指定された 1 プロセスが対象となる。 .TP .B IOPRIO_WHO_PGRP .\"O .I who .\"O is a process group ID identifying all the members of a process group. .I who -¤Ï¥×¥í¥»¥¹¥°¥ë¡¼¥×ID ¤Ç¤¢¤ê¡¢¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÎÁ´¥á¥ó¥Ð¤¬ÂоݤȤʤ롣 +はプロセスグループID であり、プロセスグループの全メンバが対象となる。 .TP .B IOPRIO_WHO_USER .\"O .I who .\"O is a user ID identifying all of the processes that .\"O have a matching real UID. .I who -¤Ï¥æ¡¼¥¶ID ¤Ç¤¢¤ê¡¢¼Â UID ¤Ë°ìÃפ¹¤ëÁ´¥×¥í¥»¥¹¤¬ÂоݤȤʤ롣 +はユーザID であり、実 UID に一致する全プロセスが対象となる。 .PP .\"O If .\"O .I which @@ -114,24 +114,24 @@ ioprio_get, ioprio_set \- I/O .\"O has a higher priority level (a lower priority number means a .\"O higher priority level). .BR ioprio_get () -¤Î¸Æ¤Ó½Ð¤·»þ¤Ë +の呼び出し時に .I which -¤Ë +に .B IOPRIO_WHO_PGRP -¤« +か .B IOPRIO_WHO_USER -¤¬»ØÄꤵ¤ì¡¢ +が指定され、 .I who -¤Ë°ìÃפ¹¤ë¥×¥í¥»¥¹¤¬Ê£¿ô¤¢¤Ã¤¿¾ì¹ç¡¢ -°ìÃפ¹¤ë¥×¥í¥»¥¹Á´ÂΤÎÃæ¤ÇºÇ¤â¹â¤¤Í¥ÀèÅÙ¤¬ÊÖ¤µ¤ì¤ë¡£ -Í¥ÀèÅÙ¤¬¹â¤¤¤È¤Ï¡¢¤è¤ê¹â¤¤Í¥ÀèÅÙ¥¯¥é¥¹¤Ë°¤·¤Æ¤¤¤ë +に一致するプロセスが複数あった場合、 +一致するプロセス全体の中で最も高い優先度が返される。 +優先度が高いとは、より高い優先度クラスに属している .RB ( IOPRIO_CLASS_RT -¤¬ºÇ¤â¹â¤¤Í¥ÀèÅÙ¥¯¥é¥¹¤Ç¡¢ +が最も高い優先度クラスで、 .B IOPRIO_CLASS_IDLE -¤¬ºÇ¤âÄ㤤)¡¢¤â¤·¤¯¤Ï -Ʊ¤¸Í¥ÀèÅÙ¥¯¥é¥¹¤Ë°¤·¤Æ¤¤¤ë¤¬Í¥ÀèÅÙ¥ì¥Ù¥ë¤¬¹â¤¤ -(Í¥ÀèÅÙÈֹ椬¾®¤µ¤¤Êý¤¬Í¥ÀèÅÙ¥ì¥Ù¥ë¤¬¹â¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë)¡¢ -¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ +が最も低い)、もしくは +同じ優先度クラスに属しているが優先度レベルが高い +(優先度番号が小さい方が優先度レベルが高いことを意味する)、 +ということである。 .\"O The .\"O .I ioprio @@ -143,12 +143,12 @@ ioprio_get, ioprio_set \- I/O .\"O .I ioprio .\"O values: .BR ioprio_set () -¤ËÅϤ¹ +に渡す .I ioprio -°ú¤­¿ô¤Ï¡¢ÂоݤȤʤë¥×¥í¥»¥¹¤Ë³ä¤êÅö¤Æ¤ë¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹¤È -Í¥ÀèÅÙ¤ÎξÊý¤ò»ØÄꤹ¤ë¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ë¡£ +引き数は、対象となるプロセスに割り当てるスケジューリングクラスと +優先度の両方を指定するビットマスクである。 .I ioprio -¤ÎÃͤòÁȤßΩ¤Æ¤¿¤ê²ò¼á¤¹¤ë¤Î¤Ë¡¢°Ê²¼¤Î¥Þ¥¯¥í¤¬ÍøÍѤǤ­¤ë¡£ +の値を組み立てたり解釈するのに、以下のマクロが利用できる。 .TP .BI IOPRIO_PRIO_VALUE( class ", " data ) .\"O Given a scheduling @@ -158,13 +158,13 @@ ioprio_get, ioprio_set \- I/O .\"O this macro combines the two values to produce an .\"O .I ioprio .\"O value, which is returned as the result of the macro. -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹ +スケジューリングクラス .I class -¤ÈÍ¥ÀèÅÙ +と優先度 .RI ( data ) -¤òÍ¿¤¨¤ë¤È¡¢¤³¤Î¥Þ¥¯¥í¤Ï 2¤Ä¤ÎÃͤòÁȤ߹ç¤ï¤»¤Æ¡¢ +を与えると、このマクロは 2つの値を組み合わせて、 .I ioprio -ÃͤòÀ¸À®¤·¡¢¥Þ¥¯¥í¤Î·ë²Ì¤È¤·¤ÆÊÖ¤¹¡£ +値を生成し、マクロの結果として返す。 .TP .BI IOPRIO_PRIO_CLASS( mask ) .\"O Given @@ -179,11 +179,11 @@ ioprio_get, ioprio_set \- I/O .\"O .BR IOPRIO_CLASS_IDLE . .I mask .RI ( ioprio -ÃÍ) ¤òÍ¿¤¨¤ë¤È¡¢¤³¤Î¥Þ¥¯¥í¤Ï I/O ¥¯¥é¥¹Í×ÁÇ¡¢¤Ä¤Þ¤ê +値) を与えると、このマクロは I/O クラス要素、つまり .BR IOPRIO_CLASS_RT , .BR IOPRIO_CLASS_BE , .B IOPRIO_CLASS_IDLE -¤Î¤¤¤º¤ì¤«°ì¤Ä¤ÎÃͤòÊÖ¤¹¡£ +のいずれか一つの値を返す。 .TP .BI IOPRIO_PRIO_DATA( mask ) .\"O Given @@ -195,14 +195,14 @@ ioprio_get, ioprio_set \- I/O .\"O component. .I mask .RI ( ioprio -ÃÍ) ¤òÍ¿¤¨¤ë¤È¡¢¤³¤Î¥Þ¥¯¥í¤ÏÍ¥ÀèÅÙ +値) を与えると、このマクロは優先度 .RI ( data ) -Í×ÁǤòÊÖ¤¹¡£ +要素を返す。 .PP .\"O See the NOTES section for more .\"O information on scheduling classes and priorities. -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹¤ÈÍ¥ÀèÅ٤˴ؤ¹¤ë¾Ü¤·¤¤¾ðÊó¤Ï¡¢ -¡ÖÈ÷¹Í¡×¤ÎÀá¤ò»²¾È¤Î¤³¤È¡£ +スケジューリングクラスと優先度に関する詳しい情報は、 +「備考」の節を参照のこと。 .\"O I/O priorities are supported for reads and for synchronous .\"O .RB ( O_DIRECT , @@ -211,16 +211,16 @@ ioprio_get, ioprio_set \- I/O .\"O I/O priorities are not supported for asynchronous .\"O writes because they are issued outside the context of the program .\"O dirtying the memory, and thus program-specific priorities do not apply. -I/O Í¥ÀèÅÙ¤ÏÆɤ߽Ф·¤ÈƱ´ü½ñ¤­¹þ¤ß +I/O 優先度は読み出しと同期書き込み .RB ( O_DIRECT , .BR O_SYNC ) -¤ËÂбþ¤·¤Æ¤¤¤ë¡£ -I/O Í¥ÀèÅÙ¤ÏÈóƱ´ü½ñ¤­¹þ¤ß¤Ë¤ÏÂбþ¤·¤Æ¤¤¤Ê¤¤¡£¤Ê¤¼¤Ê¤é¡¢ -ÈóƱ´ü½ñ¤­¹þ¤ß¤Ï¥á¥â¥ê½ñ¤­´¹¤¨¤ò¹Ô¤¦¥×¥í¥°¥é¥à¤ÎÆ°ºî (context) ¤È¤Ï -´Ø·¸¤Ê¤¯È¯¹Ô¤µ¤ì¡¢¤½¤Î¤¿¤á¥×¥í¥°¥é¥àñ°Ì¤ÎÍ¥ÀèÅÙ¤ÏŬÍѤµ¤ì¤Ê¤¤¤«¤é -¤Ç¤¢¤ë¡£ +に対応している。 +I/O 優先度は非同期書き込みには対応していない。なぜなら、 +非同期書き込みはメモリ書き換えを行うプログラムの動作 (context) とは +関係なく発行され、そのためプログラム単位の優先度は適用されないから +である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR ioprio_get () .\"O returns the @@ -233,18 +233,18 @@ I/O Í¥ .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR ioprio_get () -¤Ï¡¢ +は、 .I which -¤È +と .I who -¤Ç»ØÄꤵ¤ì¤¿´ð½à¤Ë¹çÃפ·¤¿Á´¥×¥í¥»¥¹¤ÇºÇ¤â¹â¤¤ I/O Í¥ÀèÅÙ¤ò»ý¤Ä¥×¥í¥»¥¹¤Î +で指定された基準に合致した全プロセスで最も高い I/O 優先度を持つプロセスの .I ioprio -ÃͤòÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +値を返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .PP .\"O On success, .\"O .BR ioprio_set () @@ -252,14 +252,14 @@ I/O Í¥ .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR ioprio_set () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O Invalid value for @@ -270,12 +270,12 @@ I/O Í¥ .\"O classes and priority levels for .\"O .IR ioprio . .I which -¤« +か .I ioprio -¤ÎÃͤ¬ÉÔÀµ¤Ç¤¢¤ë¡£ +の値が不正である。 .I ioprio -ÍѤ˻ØÄê²Äǽ¤Ê¥¹¥±¥¸¥å¡¼¥é¥¯¥é¥¹¤ÈÍ¥ÀèÅÙ¥ì¥Ù¥ë¤Ë¤Ä¤¤¤Æ¤Ï -¡ÖÈ÷¹Í¡×¤ò»²¾È¤Î¤³¤È¡£ +用に指定可能なスケジューラクラスと優先度レベルについては +「備考」を参照のこと。 .TP .B EPERM .\"O The calling process does not have the privilege needed to assign this @@ -284,11 +284,11 @@ I/O Í¥ .\"O See the NOTES section for more information on required .\"O privileges for .\"O .BR ioprio_set (). -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬¡¢»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤Ë +呼び出し元プロセスが、指定されたプロセスに .I ioprio -¤ò³ä¤êÅö¤Æ¤ë¤Î¤ËɬÍפʸ¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +を割り当てるのに必要な権限を持っていない。 .BR ioprio_set () -¤ËɬÍפʸ¢¸Â¤Ë¤Ä¤¤¤Æ¤Î¾Ü¤·¤¤¾ðÊó¤Ï¡ÖÈ÷¹Í¡×¤ÎÀá¤ò»²¾È¤Î¤³¤È¡£ +に必要な権限についての詳しい情報は「備考」の節を参照のこと。 .TP .B ESRCH .\"O No process(es) could be found that matched the specification in @@ -296,53 +296,53 @@ I/O Í¥ .\"O and .\"O .IR who . .I which -¤È +と .I who -¤Ç»ØÄꤵ¤ì¤¿´ð½à¤Ë¹çÃפ¹¤ë¥×¥í¥»¥¹¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£ +で指定された基準に合致するプロセスが見つからなかった。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These system calls have been available on Linux since .\"O kernel 2.6.13. -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë 2.6.13 °Ê¹ß¤Î Linux ¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +これらのシステムコールはカーネル 2.6.13 以降の Linux で利用可能である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These system calls are Linux-specific. -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ +これらのシステムコールは Linux 独自である。 .\"O .SH NOTES -.SH È÷¹Í +.SH 備考 .\"O Glibc does not provide wrapper for these system calls; call them using .\"O .BR syscall (2). -glibc ¤Ï¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +glibc はこれらのシステムコールに対するラッパー関数を提供していない。 .BR syscall (2) -¤ò»È¤Ã¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¡£ +を使って呼び出すこと。 .\"O These system calls only have an effect when used .\"O in conjunction with an I/O scheduler that supports I/O priorities. .\"O As at kernel 2.6.17 the only such scheduler is the Completely Fair Queuing .\"O (CFQ) I/O scheduler. -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢I/O Í¥ÀèÅÙ¤ËÂбþ¤·¤¿ I/O ¥¹¥±¥¸¥å¡¼¥é¤È -ÁȤ߹ç¤ï¤»¤Æ»ÈÍѤµ¤ì¤¿¾ì¹ç¤Ë¤Î¤ß¸ú²Ì¤ò»ý¤Ä¡£ -¥«¡¼¥Í¥ë 2.6.17 ¤Ç¤Ï¡¢¤³¤Î¾ò·ï¤òËþ¤¿¤¹¥¹¥±¥¸¥å¡¼¥é¤Ï -Completely Fair Queuing (CFQ) I/O ¥¹¥±¥¸¥å¡¼¥é¤À¤±¤Ç¤¢¤ë¡£ +これらのシステムコールは、I/O 優先度に対応した I/O スケジューラと +組み合わせて使用された場合にのみ効果を持つ。 +カーネル 2.6.17 では、この条件を満たすスケジューラは +Completely Fair Queuing (CFQ) I/O スケジューラだけである。 .\"O .SS "Selecting an I/O Scheduler" -.SS I/O ¥¹¥±¥¸¥å¡¼¥é¤ÎÁªÂò +.SS I/O スケジューラの選択 .\"O I/O Schedulers are selected on a per-device basis via the special .\"O file .\"O .IR /sys/block//queue/scheduler . -I/O ¥¹¥±¥¸¥å¡¼¥é¤ÎÁªÂò¤Ï¥Ç¥Ð¥¤¥¹Ã±°Ì¤Ë¹Ô¤ï¤ì¡¢¤½¤ÎÁªÂò¤Ï -¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë +I/O スケジューラの選択はデバイス単位に行われ、その選択は +スペシャルファイル .I /sys/block//queue/scheduler -·Ðͳ¤Ç¹Ô¤ï¤ì¤ë¡£ +経由で行われる。 .\"O One can view the current I/O scheduler via the .\"O .I /sys .\"O file system. .\"O For example, the following command .\"O displays a list of all schedulers currently loaded in the kernel: -¸½ºß¤Î I/O ¥¹¥±¥¸¥å¡¼¥é¤Ï +現在の I/O スケジューラは .I /sys -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à·Ðͳ¤Ç»²¾È¤Ç¤­¤ë¡£Î㤨¤Ð¡¢°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤È¡¢ -¸½ºß¥«¡¼¥Í¥ë¤Ç¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë¥¹¥±¥¸¥å¡¼¥é¤ÎÁ´¥ê¥¹¥È¤¬É½¼¨¤µ¤ì¤ë¡£ +ファイルシステム経由で参照できる。例えば、以下のコマンドを実行すると、 +現在カーネルでロードされているスケジューラの全リストが表示される。 .sp .RS .nf @@ -355,9 +355,9 @@ noop anticipatory deadline [cfq] .\"O in use for the device .\"O .RI ( hda .\"O in the example). -³ç¸Ì¤Ç°Ï¤Þ¤ì¤¿¥¹¥±¥¸¥å¡¼¥é¤¬¤½¤Î¥Ç¥Ð¥¤¥¹ (¾å¤ÎÎã¤Ç¤Ï +括弧で囲まれたスケジューラがそのデバイス (上の例では .IR hda ) -¤Ë¤Ä¤¤¤Æ¼ÂºÝ¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë¥¹¥±¥¸¥å¡¼¥é¤Ç¤¢¤ë¡£ +について実際に使用されているスケジューラである。 .\"O Setting another scheduler is done by writing the name of the .\"O new scheduler to this file. .\"O For example, the following command will set the @@ -365,12 +365,12 @@ noop anticipatory deadline [cfq] .\"O .I hda .\"O device to .\"O .IR cfq : -Ê̤Υ¹¥±¥¸¥å¡¼¥é¤òÀßÄꤹ¤ë¤Ë¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¿·¤·¤¤¥¹¥±¥¸¥å¡¼¥é̾¤ò -½ñ¤­¹þ¤á¤Ð¤è¤¤¡£Î㤨¤Ð¡¢°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤È¡¢¥Ç¥Ð¥¤¥¹ +別のスケジューラを設定するには、このファイルに新しいスケジューラ名を +書き込めばよい。例えば、以下のコマンドを実行すると、デバイス .I hda -¤Î¥¹¥±¥¸¥å¡¼¥é¤È¤·¤Æ +のスケジューラとして .I cfq -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .sp .RS .nf @@ -380,16 +380,16 @@ Password: .fi .RE .\"O .SS "The Completely Fair Queuing (CFQ) I/O Scheduler" -.SS "Completely Fair Queuing (CFQ) I/O ¥¹¥±¥¸¥å¡¼¥é" +.SS "Completely Fair Queuing (CFQ) I/O スケジューラ" .\"O Since v3 (aka CFQ Time Sliced) CFQ implements .\"O I/O nice levels similar to those .\"O of CPU scheduling. .\"O These nice levels are grouped in three scheduling classes .\"O each one containing one or more priority levels: -¥Ð¡¼¥¸¥ç¥ó 3 (ÊÌ̾ CFQ Time Sliced) °Ê¹ß¡¢ -CPU ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ÈƱÍͤΠI/O nice ¥ì¥Ù¥ë¤¬ CFQ ¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Î nice ¥ì¥Ù¥ë¤Ï 3¤Ä¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹¤ËʬÎà¤Ç¤­¡¢ -³Æ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹¤Ë¤Ä¤­ 1¤Ä°Ê¾å¤ÎÍ¥ÀèÅÙ¥ì¥Ù¥ë¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +バージョン 3 (別名 CFQ Time Sliced) 以降、 +CPU スケジューリングと同様の I/O nice レベルが CFQ に実装されている。 +これらの nice レベルは 3つのスケジューリングクラスに分類でき、 +各スケジューリングクラスにつき 1つ以上の優先度レベルが定義されている。 .TP .BR IOPRIO_CLASS_RT " (1)" .\"O This is the real-time I/O class. @@ -405,19 +405,19 @@ CPU .\"O The highest real-time priority level is 0; the lowest is 7. .\"O In the future this might change to be more directly mappable to .\"O performance, by passing in a desired data rate instead. -¤³¤ì¤Ï¥ê¥¢¥ë¥¿¥¤¥à I/O ¥¯¥é¥¹¤Ç¤¢¤ë¡£ -¤³¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹¤Ë¤Ï¾¤Î¥¯¥é¥¹¤è¤ê¤â¹â¤¤Í¥ÀèÅÙ¤¬Í¿¤¨¤é¤ì¤ë¡£ -¤³¤Î¥¯¥é¥¹¤Î¥×¥í¥»¥¹¤Ë¤Ï¡¢¾ï¤Ë¥Ç¥£¥¹¥¯¤Ø¤Î¥¢¥¯¥»¥¹¤¬Í¥À褷¤Æ -³ä¤êÅö¤Æ¤é¤ì¤ë¡£¤½¤Î¤¿¤á¡¢¤³¤Î I/O ¥¯¥é¥¹¤ò»È¤¦ºÝ¤Ë¤Ï¡¢ -¤¿¤Ã¤¿°ì¤Ä¤Î ¥ê¥¢¥ë¥¿¥¤¥à I/O ¥¯¥é¥¹¤Î¥×¥í¥»¥¹¤Ë¤è¤ê -¥·¥¹¥Æ¥àÁ´ÂΤΥǥ£¥¹¥¯¥¢¥¯¥»¥¹¤¬¤Ç¤­¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤³¤È¤¬¤¢¤ë -¤È¤¤¤¦ÅÀ¤Ë¡¢Ãí°Õ¤òʧ¤¦É¬Íפ¬¤¢¤ë¡£ -¤³¤Î¥¯¥é¥¹¤Ë¤Ï¡¢8 Ãʳ¬¤Î class data (Í¥ÀèÅÙ¥ì¥Ù¥ë) ¤¬¤¢¤ë¡£ -¤³¤ÎÃͤϡ¢¤½¤Î¥×¥í¥»¥¹¤¬ 1²ó¤Î¥Ç¥£¥¹¥¯¥¢¥¯¥»¥¹¤Ë¤É¤ì¤À¤±¤Î -»þ´Ö¤¬É¬Íפ«¤òÀµ³Î¤Ë·è¤á¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ -ºÇ¹â¤Î¥ê¥¢¥ë¥¿¥¤¥àÍ¥ÀèÅÙ¥ì¥Ù¥ë¤Ï 0 ¤Ç¡¢ºÇÄã¤Ï 7 ¤Ç¤¢¤ë¡£ -¾­ÍèŪ¤Ë¤Ï¡¢Í¥ÀèÅÙ¥ì¥Ù¥ë¤Ï¡¢´õ˾¤¹¤ë¥Ç¡¼¥¿¥ì¡¼¥È¤òÅϤ¹¤Ê¤É¡¢ -¤è¤êľÀÜŪ¤ËÀ­Ç½¾ò·ï¤òÈ¿±Ç¤Ç¤­¤ë¤è¤¦¤ËÊѹ¹¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +これはリアルタイム I/O クラスである。 +このスケジューリングクラスには他のクラスよりも高い優先度が与えられる。 +このクラスのプロセスには、常にディスクへのアクセスが優先して +割り当てられる。そのため、この I/O クラスを使う際には、 +たった一つの リアルタイム I/O クラスのプロセスにより +システム全体のディスクアクセスができなくなってしまうことがある +という点に、注意を払う必要がある。 +このクラスには、8 段階の class data (優先度レベル) がある。 +この値は、そのプロセスが 1回のディスクアクセスにどれだけの +時間が必要かを正確に決めるためのものである。 +最高のリアルタイム優先度レベルは 0 で、最低は 7 である。 +将来的には、優先度レベルは、希望するデータレートを渡すなど、 +より直接的に性能条件を反映できるように変更されるかもしれない。 .TP .BR IOPRIO_CLASS_BE " (2)" .\"O This is the best-effort scheduling class, @@ -431,17 +431,17 @@ CPU .\"O The priority level determines a priority relative .\"O to other processes in the best-effort scheduling class. .\"O Priority levels range from 0 (highest) to 7 (lowest). -¤³¤ì¤Ï ¥Ù¥¹¥È¥¨¥Õ¥©¡¼¥È¡¦¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹¤Ç¤¢¤ë¡£ -¤³¤Î¥¯¥é¥¹¤Ï¡¢ÆÃÄê¤Î I/O Í¥ÀèÅÙ¤òÀßÄꤷ¤Æ¤¤¤Ê¤¤¥×¥í¥»¥¹¤Î -¥Ç¥Õ¥©¥ë¥ÈÃͤǤ¢¤ë¡£ -class data (Í¥ÀèÅÙ¥ì¥Ù¥ë) ¤Ë¤è¤ê¡¢¤½¤Î¥×¥í¥»¥¹¤¬¤É¤ÎÄøÅ٤Π-I/O ÂÓ°è¤òÆÀ¤é¤ì¤ë¤«¤¬·èÄꤵ¤ì¤ë¡£ -¥Ù¥¹¥È¥¨¥Õ¥©¡¼¥È¡¦Í¥ÀèÅÙ¥ì¥Ù¥ë¤Ï¡¢CPU ¤Î nice ÃÍ +これは ベストエフォート・スケジューリングクラスである。 +このクラスは、特定の I/O 優先度を設定していないプロセスの +デフォルト値である。 +class data (優先度レベル) により、そのプロセスがどの程度の +I/O 帯域を得られるかが決定される。 +ベストエフォート・優先度レベルは、CPU の nice 値 .RB ( getpriority (2) -»²¾È) ¤ÈƱÍͤΤâ¤Î¤Ç¤¢¤ë¡£ -Í¥ÀèÅÙ¥ì¥Ù¥ë¤Ï¡¢¥Ù¥¹¥È¥¨¥Õ¥©¡¼¥È¡¦¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹¤ÎÃæ¤Ç -¾¤Î¥×¥í¥»¥¹¤È¤ÎÁêÂÐŪ¤ÊÍ¥ÀèÅÙ¤ò·èÄꤹ¤ë¡£ -Í¥ÀèÅÙ¥ì¥Ù¥ë¤ÎÃͤÎÈÏ°Ï¤Ï 0 (ºÇ¹â) ¤«¤é 7 (ºÇÄã) ¤Ç¤¢¤ë¡£ +参照) と同様のものである。 +優先度レベルは、ベストエフォート・スケジューリングクラスの中で +他のプロセスとの相対的な優先度を決定する。 +優先度レベルの値の範囲は 0 (最高) から 7 (最低) である。 .TP .BR IOPRIO_CLASS_IDLE " (3)" .\"O This is the idle scheduling class. @@ -451,74 +451,74 @@ I/O .\"O Attention is required when assigning this priority class to a process, .\"O since it may become starved if higher priority processes are .\"O constantly accessing the disk. -¤³¤ì¤Ï idle ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹¤Ç¤¢¤ë¡£ -¤³¤Î¥ì¥Ù¥ë¤ÇÆ°ºî¤¹¤ë¥×¥í¥»¥¹¤Ï¾¤Ë¥Ç¥£¥¹¥¯¥¢¥¯¥»¥¹¤ò¤·¤è¤¦¤È¤¹¤ë -¥×¥í¥»¥¹¤¬¤Ê¤¤¾ì¹ç¤Ë¤Î¤ß I/O »þ´Ö¤ò¼èÆÀ¤¹¤ë¡£ -idle ¥¯¥é¥¹¤Ë¤Ï class data (Í¥ÀèÅÙ) ¤ÏÍÑ°Õ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -¥×¥í¥»¥¹¤Ë¤³¤ÎÍ¥ÀèÅÙ¤ò³ä¤êÅö¤Æ¤ëºÝ¤Ë¤ÏÃí°Õ¤¬É¬ÍפǤ¢¤ë¡£ -¤Ê¤¼¤Ê¤é¡¢Í¥ÀèÅ٤ι⤤¥×¥í¥»¥¹¤¬¾ï¤Ë¥Ç¥£¥¹¥¯¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï -¥Ç¥£¥¹¥¯¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¯¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ë¤«¤é¤À¡£ +これは idle スケジューリングクラスである。 +このレベルで動作するプロセスは他にディスクアクセスをしようとする +プロセスがない場合にのみ I/O 時間を取得する。 +idle クラスには class data (優先度) は用意されていない。 +プロセスにこの優先度を割り当てる際には注意が必要である。 +なぜなら、優先度の高いプロセスが常にディスクにアクセスしている場合には +ディスクにアクセスできなくなる可能性があるからだ。 .PP .\"O Refer to .\"O .I Documentation/block/ioprio.txt .\"O for more information on the CFQ I/O Scheduler and an example program. -CFQ I/O ¥¹¥±¥¸¥å¡¼¥é¤Î¹¹¤Ê¤ë¾ðÊó¤È¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ë¤Ä¤¤¤Æ¤Ï +CFQ I/O スケジューラの更なる情報とサンプルプログラムについては .I Documentation/block/ioprio.txt -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SS "Required permissions to set I/O priorities" -.SS "I/O Í¥ÀèÅÙ¤ÎÀßÄê¤ËɬÍפʵö²Ä" +.SS "I/O 優先度の設定に必要な許可" .\"O Permission to change a process's priority is granted or denied based .\"O on two assertions: -¥×¥í¥»¥¹¤ÎÍ¥ÀèÅÙ¤òÊѹ¹¤¹¤ëµö²Ä¤¬ÆÀ¤é¤ì¤ë¤«¤É¤¦¤«¤Ï -°Ê²¼¤Î 2¤Ä¤Î¾ò·ï¤Ë´ð¤¤¤Æ·èÄꤵ¤ì¤ë¡£ +プロセスの優先度を変更する許可が得られるかどうかは +以下の 2つの条件に基いて決定される。 .TP .\"O .B "Process ownership" -.B "¥×¥í¥»¥¹¤Î½êÍ­¸¢" +.B "プロセスの所有権" .\"O An unprivileged process may only set the I/O priority of a process .\"O whose real UID .\"O matches the real or effective UID of the calling process. .\"O A process which has the .\"O .B CAP_SYS_NICE .\"O capability can change the priority of any process. -ÈóÆø¢¥×¥í¥»¥¹¤Ï¡¢¥×¥í¥»¥¹¤Î¼Â UID ¤¬¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â UID ¤â¤·¤¯¤Ï -¼Â¸ú UID ¤È°ìÃפ¹¤ë¥×¥í¥»¥¹¤Î I/O Í¥ÀèÅ٤ΤߤòÀßÄê¤Ç¤­¤ë¡£ +非特権プロセスは、プロセスの実 UID が呼び出し元プロセスの実 UID もしくは +実効 UID と一致するプロセスの I/O 優先度のみを設定できる。 .B CAP_SYS_NICE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹¤Ï¡¢¤É¤Î¥×¥í¥»¥¹¤ÎÍ¥ÀèÅ٤ǤâÊѹ¹¤Ç¤­¤ë¡£ +ケーパビリティを持つプロセスは、どのプロセスの優先度でも変更できる。 .TP .\"O .B "What is the desired priority" -.B "¤É¤ÎÍ¥ÀèÅÙ¤ËÀßÄꤷ¤è¤¦¤È¤·¤Æ¤¤¤ë¤«" +.B "どの優先度に設定しようとしているか" .\"O Attempts to set very high priorities .\"O .RB ( IOPRIO_CLASS_RT ) .\"O require the .\"O .B CAP_SYS_ADMIN .\"O capability. -Èó¾ï¤Ë¹â¤¤Í¥ÀèÅÙ +非常に高い優先度 .RB ( IOPRIO_CLASS_RT ) -¤òÀßÄꤷ¤è¤¦¤È¤¹¤ë¾ì¹ç¡¢ +を設定しようとする場合、 .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティが必要である。 .\"O Kernel versions up to 2.6.24 also required .\"O .B CAP_SYS_ADMIN .\"O to set a very low priority .\"O .RB ( IOPRIO_CLASS_IDLE ), .\"O but since Linux 2.6.25, this is no longer required. -¥«¡¼¥Í¥ë 2.6.24 °ÊÁ°¤Ç¤Ï¡¢Èó¾ï¤ËÄ㤤ͥÀèÅÙ +カーネル 2.6.24 以前では、非常に低い優先度 .RB ( IOPRIO_CLASS_IDLE ) -¤òÀßÄꤹ¤ë¤¿¤á¤Ë¤â +を設定するためにも .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤Ã¤¿¤¬¡¢ -Linux 2.6.25 °Ê¹ß¤Ç¤Ï¤â¤Ï¤äɬÍפʤ¯¤Ê¤Ã¤¿¡£ +ケーパビリティが必要であったが、 +Linux 2.6.25 以降ではもはや必要なくなった。 .PP .\"O A call to .\"O .BR ioprio_set () .\"O must follow both rules, or the call will fail with the error .\"O .BR EPERM . .BR ioprio_set () -¤Ï¤³¤ÎξÊý¤Î¥ë¡¼¥ë¤Ë½¾¤¤¡¢¾ò·ï¤òËþ¤¿¤µ¤Ê¤¤¾ì¹ç¡¢¥¨¥é¡¼ +はこの両方のルールに従い、条件を満たさない場合、エラー .B EPERM -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\" 6 May 07: Bug report raised: .\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=4464 .\" Ulrich Drepper replied that he wasn't going to add these @@ -527,16 +527,16 @@ Linux 2.6.25 .\"O the function prototypes and macros described on this page. .\"O Suitable definitions can be found in .\"O .IR linux/ioprio.h . -glibc ¤Ï¡¢¤³¤Î¥Ú¡¼¥¸¤Ëµ­ºÜ¤µ¤ì¤¿´Ø¿ô¥×¥í¥È¥¿¥¤¥×¤ä¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë -ŬÀڤʥإåÀ¥Õ¥¡¥¤¥ë¤ò¤Þ¤ÀÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ -ɬÍפÊÄêµÁ¤Ë¤Ä¤¤¤Æ¤Ï +glibc は、このページに記載された関数プロトタイプやマクロを定義する +適切なヘッダファイルをまだ提供していない。 +必要な定義については .I linux/ioprio.h -¤ò¸«¤ì¤Ð¤è¤¤¡£ +を見ればよい。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getpriority (2), .BR open (2), .BR capabilities (7) .sp .\"O Documentation/block/ioprio.txt in the kernel source tree. -¥«¡¼¥Í¥ë¡¦¥½¡¼¥¹Æâ¤Î Documentation/block/ioprio.txt +カーネル・ソース内の Documentation/block/ioprio.txt diff --git a/draft/man2/ipc.2 b/draft/man2/ipc.2 index faca08e2..aa351c58 100644 --- a/draft/man2/ipc.2 +++ b/draft/man2/ipc.2 @@ -31,29 +31,29 @@ .\" Updated 2007-09-04, Akihiro MOTOKI , LDP v2.64 .\" .\"WORD: IPC IPC -.\"WORD: message ¥á¥Ã¥»¡¼¥¸ -.\"WORD: semaphore ¥»¥Þ¥Õ¥©¡¼ -.\"WORD: shared memory ¶¦Í­¥á¥â¥ê -.\"WORD: entry point ¥¨¥ó¥È¥ê¡¦¥Ý¥¤¥ó¥È -.\"WORD: argument °ú¤­¿ô -.\"WORD: hacker ¥Ï¥Ã¥«¡¼ -.\"WORD: standart library ɸ½à¥é¥¤¥Ö¥é¥ê -.\"WORD: implement ¼ÂÁõ +.\"WORD: message メッセージ +.\"WORD: semaphore セマフォー +.\"WORD: shared memory 共有メモリ +.\"WORD: entry point エントリ・ポイント +.\"WORD: argument 引き数 +.\"WORD: hacker ハッカー +.\"WORD: standart library 標準ライブラリ +.\"WORD: implement 実装 .\" .TH IPC 2 2007-06-28 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O ipc \- System V IPC system calls -ipc \- System V IPC ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë +ipc \- System V IPC システム・コール .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .BI "int ipc(unsigned int " call ", int " first ", int " second \ ", int " third , .BI " void *" ptr ", long " fifth ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR ipc () .\"O is a common kernel entry point for the System V IPC calls .\"O for messages, semaphores, and shared memory. @@ -61,29 +61,29 @@ ipc \- System V IPC .\"O determines which IPC function to invoke; .\"O the other arguments are passed through to the appropriate call. .BR ipc () -¤Ï ¥á¥Ã¥»¡¼¥¸¡¢¥»¥Þ¥Õ¥©¡¼¡¢¶¦Í­¥á¥â¥ê¤Ë´Ø¤¹¤ë System V IPC ¥³¡¼¥ë¤Î -¶¦Ä̤Υ«¡¼¥Í¥ë¤Ø¤Î¥¨¥ó¥È¥ê¡¦¥Ý¥¤¥ó¥È¤Ç¤¢¤ë¡£ +は メッセージ、セマフォー、共有メモリに関する System V IPC コールの +共通のカーネルへのエントリ・ポイントである。 .I call -¤Ï¤É¤Î IPC ´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤«¤ò·è¤á¡¨ -¾¤Î°ú¤­¿ô¤ÏŬÀڤʥ³¡¼¥ë¤Ø¤ÈÅϤµ¤ì¤ë¡£ +はどの IPC 関数を呼び出すかを決め; +他の引き数は適切なコールへと渡される。 .PP .\"O User programs should call the appropriate functions by their usual names. .\"O Only standard library implementors and kernel hackers need to know about .\"O .BR ipc (). -¥æ¡¼¥¶¡¼¡¦¥×¥í¥°¥é¥à¤ÏÄ̾ï¤Î̾Á°¤ÇŬÀڤʴؿô¤ò¸Æ¤Ó½Ð¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -ɸ½à¥é¥¤¥Ö¥é¥ê¤Î¼ÂÁõ¼Ô¤ä¥«¡¼¥Í¥ë¡¦¥Ï¥Ã¥«¡¼¤Î¤ß¤¬ +ユーザー・プログラムは通常の名前で適切な関数を呼び出すべきである。 +標準ライブラリの実装者やカーネル・ハッカーのみが .BR ipc () -¤Ë¤Ä¤¤¤ÆÃΤëɬÍפ¬¤¢¤ë¡£ +について知る必要がある。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR ipc () .\"O is Linux-specific, and should not be used in programs .\"O intended to be portable. .BR ipc () -¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢ °Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï -»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ +は Linux 特有であり、 移植を意図したプログラムでは +使用してはいけない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O On a few architectures, for example ia64, there is no .\"O .BR ipc () .\"O system call; instead @@ -91,15 +91,15 @@ ipc \- System V IPC .\"O .BR semctl (2), .\"O .BR shmctl (2), .\"O and so on really are implemented as separate system calls. -ia64 ¤Ê¤É¤Î¤¤¤¯¤Ä¤«¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë +ia64 などのいくつかのアーキテクチャでは、システムコール .BR ipc () -¤¬Â¸ºß¤·¤Ê¤¤¡£¼ÂºÝ¤Ë¤Ï¡¢¤½¤ÎÂå¤ï¤ê¤Ë +が存在しない。実際には、その代わりに .BR msgctl (2), .BR semctl (2), .BR shmctl (2) -¤Ê¤É¤¬ÆÈΩ¤·¤¿¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +などが独立したシステムコールとして実装されている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR msgctl (2), .BR msgget (2), .BR msgrcv (2), diff --git a/draft/man2/kill.2 b/draft/man2/kill.2 index 0efc0fa0..0909bc2b 100644 --- a/draft/man2/kill.2 +++ b/draft/man2/kill.2 @@ -53,20 +53,20 @@ .\" Updated 2005-12-05, Akihiro MOTOKI, Catch up to LDP man-pages 2.16 .\" Updated 2008-08-06, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: process group ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× -.\"WORD: permission µö²Ä -.\"WORD: privileges Æø¢ -.\"WORD: set-user-id ¥»¥Ã¥È¥æ¡¼¥¶¡¼ID -.\"WORD: signal handler ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¡¼ +.\"WORD: signal シグナル +.\"WORD: process group プロセス・グループ +.\"WORD: permission 許可 +.\"WORD: privileges 特権 +.\"WORD: set-user-id セットユーザーID +.\"WORD: signal handler シグナルハンドラー .\" .TH KILL 2 2009-09-15 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O kill \- send signal to a process -kill \- ¥×¥í¥»¥¹¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë +kill \- プロセスにシグナルを送る .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .br @@ -78,9 +78,9 @@ kill \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -88,48 +88,48 @@ glibc _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR kill () .\"O system call .\"O can be used to send any signal to any process group or process. -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î +システムコールの .BR kill () -¤Ï¡¢Ç¤°Õ¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤â¤·¤¯¤Ï¥×¥í¥»¥¹¤Ë¥·¥°¥Ê¥ë¤ò -Á÷¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£ +は、任意のプロセス・グループもしくはプロセスにシグナルを +送るのに使われる。 .PP .\"O If \fIpid\fP is positive, then signal \fIsig\fP is sent to the .\"O process with the ID specified by \fIpid\fP. -\fIpid\fP ¤ËÀµ¤ÎÃͤò»ØÄꤷ¤¿¾ì¹ç¡¢¥·¥°¥Ê¥ë \fIsig\fP ¤¬ -\fIpid\fP ¤Ç»ØÄꤵ¤ì¤¿ ID ¤ò»ý¤Ä¥×¥í¥»¥¹¤ËÁ÷¤é¤ì¤ë¡£ +\fIpid\fP に正の値を指定した場合、シグナル \fIsig\fP が +\fIpid\fP で指定された ID を持つプロセスに送られる。 .PP .\"O If \fIpid\fP equals 0, then \fIsig\fP is sent to every process in the .\"O process group of the calling process. -\fIpid\fP ¤Ë 0 ¤ò»ØÄꤷ¤¿¾ì¹ç¡¢ -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Ë°¤¹¤ë¤¹¤Ù¤Æ¤Î¥×¥í¥»¥¹¤Ë -\fIsig\fP ¤Ç»ØÄꤷ¤¿¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£ +\fIpid\fP に 0 を指定した場合、 +呼び出し元のプロセスのプロセス・グループに属するすべてのプロセスに +\fIsig\fP で指定したシグナルが送られる。 .PP .\"O If \fIpid\fP equals \-1, then \fIsig\fP is sent to every process .\"O for which the calling process has permission to send signals, .\"O except for process 1 (\fIinit\fP), but see below. -\fIpid\fP ¤Ë \-1 ¤ò»ØÄꤷ¤¿¾ì¹ç¡¢ \fIsig\fP ¤Ç»ØÄꤷ¤¿¥·¥°¥Ê¥ë¤¬¡¢ -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤òÁ÷¤ëµö²Ä¤ò»ý¤ÄÁ´¤Æ¤Î¥×¥í¥»¥¹¤Ë -Á÷¤é¤ì¤ë¡£Ã¢¤·¡¢¥×¥í¥»¥¹ÈÖ¹æ 1 (\fIinit\fP) ¤Ø¤Ï¥·¥°¥Ê¥ë¤ÏÁ÷¤é¤ì¤Ê¤¤¡£ -°Ê²¼¤Î´ØÏ¢Éôʬ¤â»²¾È¤Î¤³¤È¡£ +\fIpid\fP に \-1 を指定した場合、 \fIsig\fP で指定したシグナルが、 +呼び出し元のプロセスがシグナルを送る許可を持つ全てのプロセスに +送られる。但し、プロセス番号 1 (\fIinit\fP) へはシグナルは送られない。 +以下の関連部分も参照のこと。 .PP .\"O If \fIpid\fP is less than \-1, then \fIsig\fP is sent to every process .\"O in the process group whose ID is \fI\-pid\fP. -\fIpid\fP ¤Ë \-1 ¤è¤ê¾®¤µ¤ÊÃͤò»ØÄꤷ¤¿¾ì¹ç¡¢ -ID ¤¬ \fI\-pid\fP ¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Ë°¤¹¤ë¤¹¤Ù¤Æ¤Î¥×¥í¥»¥¹¤Ë -\fIsig\fP ¤Ç»ØÄꤷ¤¿¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£ +\fIpid\fP に \-1 より小さな値を指定した場合、 +ID が \fI\-pid\fP のプロセス・グループに属するすべてのプロセスに +\fIsig\fP で指定したシグナルが送られる。 .PP .\"O If \fIsig\fP is 0, then no signal is sent, but error checking is still .\"O performed; .\"O this can be used to check for the existence of a process ID or .\"O process group ID. -\fIsig\fP ¤Ë 0 ¤ò»ØÄꤷ¤¿¾ì¹ç¡¢¥·¥°¥Ê¥ë¤ÏÁ÷¤é¤ì¤Ê¤¤¤¬¡¢ -¥¨¥é¡¼¤Î¥Á¥§¥Ã¥¯¤Ï¹Ô¤ï¤ì¤ë¡£¤³¤ì¤ò»È¤Ã¤Æ¡¢¥×¥í¥»¥¹ ID ¤ä -¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤Î¸ºß³Îǧ¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +\fIsig\fP に 0 を指定した場合、シグナルは送られないが、 +エラーのチェックは行われる。これを使って、プロセス ID や +プロセスグループ ID の存在確認を行うことができる。 .\"O For a process to have permission to send a signal .\"O it must either be privileged (under Linux: have the @@ -141,37 +141,37 @@ ID .\"O .B SIGCONT .\"O it suffices when the sending and receiving .\"O processes belong to the same session. -¤¢¤ë¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤òÁ÷¤ëµö²Ä¤ò»ý¤Ä¤Ë¤Ï¡¢ -¤½¤Î¥×¥í¥»¥¹¤¬Æø¢ (Linux ¤Ç¤Ï +あるプロセスがシグナルを送る許可を持つには、 +そのプロセスが特権 (Linux では .B CAP_KILL -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤ò»ý¤Ä¥×¥í¥»¥¹¤Ç¤¢¤ë¤«¡¢¥·¥°¥Ê¥ë¤òÁ÷¤ë¦¤Î¥×¥í¥»¥¹¤Î -¼ÂUID ¤«¼Â¸úUID ¤¬¼õ¤±¤ë¦¤Î¥×¥í¥»¥¹¤Î¼Â set-UID ¤« -Êݸ (saved) set-UID ¤¬°ìÃפ·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ケーパビリティ) を持つプロセスであるか、シグナルを送る側のプロセスの +実UID か実効UID が受ける側のプロセスの実 set-UID か +保存 (saved) set-UID が一致していなければならない。 .B SIGCONT -¤Î¾ì¹ç¤Ï¡¢¥·¥°¥Ê¥ë¤òÁ÷¿®¤¹¤ë¥×¥í¥»¥¹¤È¼õ¿®¤¹¤ë¥×¥í¥»¥¹¤¬ -Ʊ¤¸¥»¥Ã¥·¥ç¥ó¤Ë½ê°¤·¤Æ¤¤¤ì¤Ð½½Ê¬¤Ç¤¢¤ë¡£ +の場合は、シグナルを送信するプロセスと受信するプロセスが +同じセッションに所属していれば十分である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success (at least one signal was sent), zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç (¾¯¤Ê¤¯¤È¤â°ì¤Ä¤Î¥·¥°¥Ê¥ë¤¬Á÷¿®¤µ¤ì¤¿¾ì¹ç)¡¢ -0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合 (少なくとも一つのシグナルが送信された場合)、 +0 が返される。エラーの場合 \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O An invalid signal was specified. -̵¸ú¤Ê¥·¥°¥Ê¥ë¤ò»ØÄꤷ¤¿¡£ +無効なシグナルを指定した。 .TP .B EPERM .\"O The process does not have permission to send the signal .\"O to any of the receiving processes. -¥×¥í¥»¥¹¤¬¡¢¼õ¿®¤¹¤ë¥×¥í¥»¥¹¤Î¤¤¤º¤ì¤ËÂФ·¤Æ¤â -¥·¥°¥Ê¥ë¤òÁ÷¤ëµö²Ä¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +プロセスが、受信するプロセスのいずれに対しても +シグナルを送る許可を持っていない。 .TP .B ESRCH .\"O The pid or process group does not exist. @@ -180,16 +180,16 @@ ID .\"O has not yet been .\"O .BR wait (2)ed .\"O for. -»ØÄꤷ¤¿¥×¥í¥»¥¹¤Þ¤¿¤Ï¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤¬Â¸ºß¤·¤Ê¤«¤Ã¤¿¡£ -¥¾¥ó¥Ó¥×¥í¥»¥¹¤Ï¸ºß¤¹¤ë¥×¥í¥»¥¹¤È¤·¤Æ¤ß¤Ê¤µ¤ì¤ë¡£ -¥¾¥ó¥Ó¥×¥í¥»¥¹¤È¤Ï¤¹¤Ç¤Ë½èÍý¤Ï½ªÎ»¤·¤Æ¤¤¤ë¤¬¡¢¿Æ¥×¥í¥»¥¹¤Ë¤è¤ë +指定したプロセスまたはプロセス・グループが存在しなかった。 +ゾンビプロセスは存在するプロセスとしてみなされる。 +ゾンビプロセスとはすでに処理は終了しているが、親プロセスによる .BR wait () -½èÍý¤¬¹Ô¤ï¤ì¤Æ¤¤¤Ê¤¤¥×¥í¥»¥¹¤Î¤³¤È¤Ç¤¢¤ë¡£ +処理が行われていないプロセスのことである。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The only signals that can be sent to process ID 1, the .\"O .I init .\"O process, are those for which @@ -197,25 +197,25 @@ SVr4, 4.3BSD, POSIX.1-2001. .\"O has explicitly installed signal handlers. .\"O This is done to assure the .\"O system is not brought down accidentally. -¥×¥í¥»¥¹ÈÖ¹æ 1 ¤Î +プロセス番号 1 の .I init -¥×¥í¥»¥¹¤ËÁ÷¤ë¤³¤È¤¬¤Ç¤­¤ë¥·¥°¥Ê¥ë¤Ï¡¢ +プロセスに送ることができるシグナルは、 .I init -¤¬ÌÀ¼¨Åª¤Ë¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄꤷ¤¿¥·¥°¥Ê¥ë¤À¤±¤Ç¤¢¤ë¡£ -¤³¤¦¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ï¡¢¸í¤Ã¤Æ¥·¥¹¥Æ¥à¤ò¥À¥¦¥ó¤µ¤»¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ç¤¢¤ë¡£ +が明示的にシグナルハンドラを設定したシグナルだけである。 +こうなっているのは、誤ってシステムをダウンさせないようにするためである。 .LP .\"O POSIX.1-2001 requires that \fIkill(\-1,sig)\fP send \fIsig\fP .\"O to all processes that the calling process may send signals to, .\"O except possibly for some implementation-defined system processes. .\"O Linux allows a process to signal itself, but on Linux the call .\"O \fIkill(\-1,sig)\fP does not signal the calling process. -POSIX.1-2001 ¤Ç¤Ï¡¢ \fIkill(\-1,sig)\fP ¤¬ -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤òÁ÷¤ë¤³¤È¤¬½ÐÍè¤ë¥×¥í¥»¥¹Á´¤Æ¤Ë -\fIsig\fP ¤òÁ÷¤ë¤³¤È¤òÍ׵ᤷ¤Æ¤¤¤ë¡£ -⤷¡¢¥·¥¹¥Æ¥à¼ÂÁõ»þ¤ËÄê¤á¤é¤ì¤¿¥·¥¹¥Æ¥à¥×¥í¥»¥¹¤Ï -¥·¥°¥Ê¥ë¤ÎÁ÷¿®Âоݤ«¤é½ü³°¤µ¤ì¤ë¡£ -Linux ¤Ç¤Ï¡¢¥×¥í¥»¥¹¤¬¼«Ê¬¼«¿È¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¬¡¢ -Linux ¤Î \fIkill(\-1,sig)\fP ¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ë¤Ï¥·¥°¥Ê¥ë¤òÁ÷¤é¤Ê¤¤¡£ +POSIX.1-2001 では、 \fIkill(\-1,sig)\fP が +呼び出し元のプロセスがシグナルを送ることが出来るプロセス全てに +\fIsig\fP を送ることを要求している。 +但し、システム実装時に定められたシステムプロセスは +シグナルの送信対象から除外される。 +Linux では、プロセスが自分自身にシグナルを送れるようになっているが、 +Linux の \fIkill(\-1,sig)\fP は呼び出し元のプロセスにはシグナルを送らない。 .LP .\"O POSIX.1-2001 requires that if a process sends a signal to itself, .\"O and the sending thread does not have the signal blocked, @@ -226,16 +226,16 @@ Linux .\"O unblocked signal must be delivered to the sending thread before the .\"O .BR kill () .\"O returns. -POSIX.1-2001 ¤Ç¤Ï°Ê²¼¤ÎÆ°ºî¤Ë¤Ê¤ë¤³¤È¤òÍ׵ᤷ¤Æ¤¤¤ë¡£ -¼«Ê¬¼«¿È¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¤È¡¢¥·¥°¥Ê¥ë¤òÁ÷¤Ã¤¿¥¹¥ì¥Ã¥É¤¬¤½¤Î¥·¥°¥Ê¥ë¤ò¥Ö¥í¥Ã¥¯ -¤·¤Æ¤ª¤é¤º¡¢Â¾¤Î¤É¤Î¥¹¥ì¥Ã¥É¤â¤½¤Î¥·¥°¥Ê¥ë¤ò¼õ¤±¤ë¾õÂ֤ˤâ¤Ê¤¯ +POSIX.1-2001 では以下の動作になることを要求している。 +自分自身にシグナルを送ると、シグナルを送ったスレッドがそのシグナルをブロック +しておらず、他のどのスレッドもそのシグナルを受ける状態にもなく .BR sigwait (3) -¤Ç¤½¤Î¥·¥°¥Ê¥ë¤òÂԤäƤ⤤¤Ê¤¤¾ì¹ç¡¢ +でそのシグナルを待ってもいない場合、 .BR kill () -¤¬ÊÖ¤ëÁ°¤Ë¾¯¤Ê¤¯¤È¤â°ì¤Ä¤Î¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤Ê¤¤ -¥·¥°¥Ê¥ë¤¬¥·¥°¥Ê¥ë¤òÁ÷¤Ã¤¿¥¹¥ì¥Ã¥É¤ËÇÛÁ÷¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +が返る前に少なくとも一つのブロックされていない +シグナルがシグナルを送ったスレッドに配送されなければならない。 .\"O .SS "Linux Notes" -.SS "Linux ¤Ç¤ÎÃí°Õ" +.SS "Linux での注意" .\"O Across different kernel versions, Linux has enforced different rules .\"O for the permissions required for an unprivileged process .\"O to send a signal to another process. @@ -249,17 +249,17 @@ POSIX.1-2001 .\"O user ID of the receiver. .\"O The current rules, which conform to POSIX.1-2001, were adopted .\"O in kernel 1.3.78. -Linux ¤Ç¤Ï¡¢Æø¢¤Î¤Ê¤¤¥×¥í¥»¥¹¤¬Â¾¤Î¥×¥í¥»¥¹¤Ë¥·¥°¥Ê¥ë¤òÁ÷¿®¤¹¤ë¤¿¤á¤Ë -ɬÍפʸ¢¸Â¤Ë¤Ä¤¤¤Æ¤Î¥ë¡¼¥ë¤¬¡¢¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤ê°ã¤Ã¤Æ¤¤¤ë¡£ -.\" 0.* ¥«¡¼¥Í¥ë¤ÎÏäϳ䰦¤·¡¢Â¿¾¯Êѹ¹¤·¤¿¡£- MTK, 24 Jul 02 -¥«¡¼¥Í¥ë 1.0 ¤«¤é 1.2.2 ¤Ç¤Ï¡¢Á÷¿®Â¦¤Î¼Â¸ú¥æ¡¼¥¶¡¼ID ¤¬¼õ¿®Â¦¤Î -¼Â¸ú¥æ¡¼¥¶¡¼ ID¤È°ìÃפ¹¤ì¤Ð¥·¥°¥Ê¥ë¤òÁ÷¿®¤Ç¤­¤¿¡£ -¥«¡¼¥Í¥ë 1.2.3 ¤«¤é 1.3.77¤Ç¤Ï¡¢Á÷¿®Â¦¤Î¼Â¸ú¥æ¡¼¥¶¡¼ID ¤¬¼õ¿®Â¦¤Î -¼Â¥æ¡¼¥¶¡¼ID ¤«¼Â¸ú¥æ¡¼¥¶¡¼ID ¤Î¤¤¤º¤ì¤«¤È°ìÃפ¹¤ì¤Ð¥·¥°¥Ê¥ë¤òÁ÷¿®¤Ç¤­¤¿¡£ -¸½ºß¤Î¥ë¡¼¥ë¤Ï¡¢POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤ª¤ê¡¢¥«¡¼¥Í¥ë 1.3.78 °Ê¹ß¤Ç -ŬÍѤµ¤ì¤Æ¤¤¤ë¡£ +Linux では、特権のないプロセスが他のプロセスにシグナルを送信するために +必要な権限についてのルールが、カーネルバージョンにより違っている。 +.\" 0.* カーネルの話は割愛し、多少変更した。- MTK, 24 Jul 02 +カーネル 1.0 から 1.2.2 では、送信側の実効ユーザーID が受信側の +実効ユーザー IDと一致すればシグナルを送信できた。 +カーネル 1.2.3 から 1.3.77では、送信側の実効ユーザーID が受信側の +実ユーザーID か実効ユーザーID のいずれかと一致すればシグナルを送信できた。 +現在のルールは、POSIX.1-2001 に準拠しており、カーネル 1.3.78 以降で +適用されている。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O In 2.6 kernels up to and including 2.6.7, .\"O there was a bug that meant that when sending signals to a process group, .\"O .BR kill () @@ -269,18 +269,18 @@ Linux .\"O than \fIall\fP) of the members of the process group. .\"O Notwithstanding this error return, the signal was still delivered .\"O to all of the processes for which the caller had permission to signal. -¥Ð¡¼¥¸¥ç¥ó 2.6.7 °ÊÁ°¤Î 2.6 ·Ï¤Î¥«¡¼¥Í¥ë¤Ë¤Ï¡¢ -¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤Ã¤¿¤È¤­¤Ë¡¢ -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Î (Á´¥á¥ó¥Ð¡¼¤Ç¤Ï¤Ê¤¯) °ìÉô¤Î¥á¥ó¥Ð¡¼ -¤ËÂФ·¤Æ¤Î¤ß¥·¥°¥Ê¥ë¤òÁ÷¤ëµö²Ä¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢ +バージョン 2.6.7 以前の 2.6 系のカーネルには、 +プロセスグループにシグナルを送ったときに、 +呼び出し元のプロセスがプロセスグループの (全メンバーではなく) 一部のメンバー +に対してのみシグナルを送る許可を持っている場合に、 .BR kill () -¤¬¥¨¥é¡¼ +がエラー .B EPERM -¤Ç¼ºÇÔ¤¹¤ë¤È¤¤¤¦¥Ð¥°¤¬¤¢¤ë¡£ -¤³¤Î¥¨¥é¡¼¤¬ÊÖ¤ë¤Ë¤â¤«¤«¤ï¤é¤º¡¢¤½¤Î¥·¥°¥Ê¥ë¤Ï¸Æ¤Ó½Ð¤·¸µ¤¬ -¥·¥°¥Ê¥ë¤òÁ÷¤ëµö²Ä¤ò»ý¤ÄÁ´¤Æ¤Î¥×¥í¥»¥¹¤ØÁ÷¤é¤ì¤ë¡£ +で失敗するというバグがある。 +このエラーが返るにもかかわらず、そのシグナルは呼び出し元が +シグナルを送る許可を持つ全てのプロセスへ送られる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR _exit (2), .BR killpg (2), .BR signal (2), diff --git a/draft/man2/killpg.2 b/draft/man2/killpg.2 index c06202c6..6f372de9 100644 --- a/draft/man2/killpg.2 +++ b/draft/man2/killpg.2 @@ -44,18 +44,18 @@ .\" Updated & Modified Sat Feb 5 21:24:32 JST 2005 .\" by Yuichi SATO .\" -.\"WORD: process group ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: super-user ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ +.\"WORD: process group プロセス・グループ +.\"WORD: signal シグナル +.\"WORD: effective user ID 実効ユーザーID +.\"WORD: super-user スーパー・ユーザー .\" .TH KILLPG 2 2010-09-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O killpg \- send signal to a process group -killpg \- ¥·¥°¥Ê¥ë¤ò¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤ËÁ÷¤ë +killpg \- シグナルをプロセス・グループに送る .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int killpg(int " pgrp ", int " sig ); @@ -63,9 +63,9 @@ killpg \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -75,24 +75,24 @@ _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR killpg () .\"O sends the signal .\"O .I sig .\"O to the process group .\"O .IR pgrp . .BR killpg () -¤Ï +は .I sig -¤Ç»ØÄꤷ¤¿¥·¥°¥Ê¥ë¤ò +で指定したシグナルを .I pgrp -¤Ç»ØÄꤷ¤¿¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤ËÁ÷¤ë¡£ -¥·¥°¥Ê¥ë¤ÎÄêµÁ¤Î°ìÍ÷¤Ï +で指定したプロセス・グループに送る。 +シグナルの定義の一覧は .\"O See .\"O .BR signal (7) .\"O for a list of signals. .BR signal (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O If .\"O .I pgrp @@ -100,17 +100,17 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O .BR killpg () .\"O sends the signal to the sending process's process group. .\"O sends the signal to the calling process's process group. -°ú¤­¿ô +引き数 .I pgrp -¤Ë 0 ¤ò»ØÄꤷ¤¿¾ì¹ç¤Ë¤Ï +に 0 を指定した場合には .BR killpg () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬Â°¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤ËÂФ·¤Æ¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +は呼び出し元のプロセスが属しているプロセス・グループに対してシグナルを送る。 .\"O (POSIX says: If .\"O .I pgrp .\"O is less than or equal to 1, the behavior is undefined.) -(POSIX ¤Ç¤Ï°Ê²¼¤Î¤è¤¦¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë: +(POSIX では以下のように記述されている: .I pgrp -¤¬ 1 °Ê²¼¤Ç¤¢¤ë¾ì¹ç¡¢Æ°ºî¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£) +が 1 以下である場合、動作は未定義である。) .\"O For a process to have permission to send a signal .\"O it must either be privileged (under Linux: have the @@ -118,64 +118,64 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O capability), or the real or effective .\"O user ID of the sending process must equal the real or .\"O saved set-user-ID of the target process. -¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤òÁ÷¿®¤¹¤ëµö²Ä¤ò»ý¤Ä¤¿¤á¤Ë¤Ï¡¢ -¥×¥í¥»¥¹¤¬Æø¢ (Linux ¤Ç¤Ï +プロセスがシグナルを送信する許可を持つためには、 +プロセスが特権 (Linux では .B CAP_KILL -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability)) ¤ò»ý¤Ä¤«¡¢ -Á÷¿®¸µ¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶¡¼ ID ¤Þ¤¿¤Ï¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ -Á÷¿®Àè¥×¥í¥»¥¹¤Î¼Â set-user-ID ¤Þ¤¿¤ÏÊݸ set-user-ID ¤È -Åù¤·¤¯¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ケーパビリティ (capability)) を持つか、 +送信元プロセスの実ユーザー ID または実効ユーザー ID が +送信先プロセスの実 set-user-ID または保存 set-user-ID と +等しくなければならない。 .\"O In the case of .\"O .B SIGCONT .\"O it suffices when the sending and receiving .\"O processes belong to the same session. .B SIGCONT -¤Î¾ì¹ç¡¢Á÷¿®¥×¥í¥»¥¹¤È¼õ¿®¥×¥í¥»¥¹¤¬ -Ʊ¤¸¥»¥Ã¥·¥ç¥ó¤Ë°¤·¤Æ¤¤¤ì¤Ð½½Ê¬¤Ç¤¢¤ë¡£ +の場合、送信プロセスと受信プロセスが +同じセッションに属していれば十分である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -Àµ¾ï½ªÎ»¤¹¤ë¤È 0 ¤¬ÊÖ¤êÃͤȤʤ롣°Û¾ï½ªÎ»¤Î¾ì¹ç \-1 ¤¬ÊÖ¤êÃͤȤʤê +正常終了すると 0 が返り値となる。異常終了の場合 \-1 が返り値となり .I errno -¤Ë¸¶°ø¥³¡¼¥É¤¬ÀßÄꤵ¤ì¤ë¡£ +に原因コードが設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O .I Sig .\"O is not a valid signal number. .I sig -¤Ç»ØÄꤵ¤ì¤¿ÃͤÏ̵¸ú¤Ê¥·¥°¥Ê¥ëÈÖ¹æ¤Ç¤¢¤ë¡£ +で指定された値は無効なシグナル番号である。 .TP .B EPERM .\"O The process does not have permission to send the signal .\"O to any of the target processes. -¥×¥í¥»¥¹¤Ë²¿¤ì¤«¤ÎÁ÷¿®Àè¥×¥í¥»¥¹¤Ë¥·¥°¥Ê¥ë¤òÁ÷¿®¤¹¤ëµö²Ä¤¬¤Ê¤¤¡£ +プロセスに何れかの送信先プロセスにシグナルを送信する許可がない。 .TP .B ESRCH .\"O No process can be found in the process group specified by .\"O .IR pgrp . .I pgrp -¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Ë°¤¹¤ë¥×¥í¥»¥¹¤¬Â¸ºß¤·¤Ê¤«¤Ã¤¿¡£ +で指定されたプロセス・グループに属するプロセスが存在しなかった。 .TP .B ESRCH .\"O The process group was given as 0 but the sending process does not .\"O have a process group. -¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤È¤·¤Æ 0 ¤¬»ØÄꤵ¤ì¤¿¤¬¡¢Á÷¿®¥×¥í¥»¥¹¤Ï -¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +プロセス・グループとして 0 が指定されたが、送信プロセスは +プロセス・グループを持っていない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O SVr4, 4.4BSD (the .\"O .BR killpg () .\"O function call first appeared in 4BSD), POSIX.1-2001. SVr4, 4.4BSD .RB ( killpg () -¤Ï 4BSD ¤Ç½é¤á¤ÆÄɲ䵤줿), POSIX.1-2001¡£ +は 4BSD で初めて追加された), POSIX.1-2001。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O There are various differences between the permission checking .\"O in BSD-type systems and System V-type systems. .\"O See the POSIX rationale for @@ -189,32 +189,32 @@ SVr4, 4.4BSD .\"O while POSIX documents .\"O .B EPERM .\"O only when the permission check failed for all target processes. -BSD ·Ï¥·¥¹¥Æ¥à¤È System V ·Ï¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -µö²Ä¤Î¥Á¥§¥Ã¥¯¤ËÍÍ¡¹¤Ê°ã¤¤¤¬¤¢¤ë¡£ +BSD 系システムと System V 系システムでは、 +許可のチェックに様々な違いがある。 .BR kill (2) -¤Ë¤Ä¤¤¤Æ¤Î POSIX ¤Î¸¶Íý (rationale) ¤ò»²¾È¤¹¤ë¤³¤È¡£ -POSIX ¤Çµ­½Ò¤µ¤ì¤Æ¤¤¤Ê¤¤°ã¤¤¤È¤·¤Æ¤Ï¡¢ÊÖ¤êÃÍ +についての POSIX の原理 (rationale) を参照すること。 +POSIX で記述されていない違いとしては、返り値 .B EPERM -¤¬¤¢¤ë¡£ -BSD ¤Ç¤Ï¡ÖÁ÷¿®Àè¥×¥í¥»¥¹¤Îµö²Ä¤Î¥Á¥§¥Ã¥¯¤¬ 1 ¤Ä¤Ç¤â¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¡¢ -¥·¥°¥Ê¥ë¤¬Á÷¿®¤µ¤ì¤º¡¢ +がある。 +BSD では「送信先プロセスの許可のチェックが 1 つでも失敗した場合は、 +シグナルが送信されず、 .B EPERM -¤¬ÊÖ¤µ¤ì¤ë¡×¤Èµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -POSIX ¤Ç¤Ï¡ÖÁ÷¿®Àè¥×¥í¥»¥¹¤Îµö²Ä¤Î¥Á¥§¥Ã¥¯¤¬Á´¤Æ¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Î¤ß¡¢ +が返される」と記述されている。 +POSIX では「送信先プロセスの許可のチェックが全て失敗した場合にのみ、 .B EPERM -¤¬ÊÖ¤µ¤ì¤ë¡×¤Èµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +が返される」と記述されている。 .\"O On Linux, .\"O .BR killpg () .\"O is implemented as a library function that makes the call .\"O .IR "kill(-pgrp,\ sig)" . -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR killpg () -¤Ï¥é¥¤¥Ö¥é¥ê´Ø¿ô¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤ª¤ê¡¢ +はライブラリ関数として実装されており、 .I "kill(-pgrp,\ sig)" -¤Î¸Æ¤Ó½Ð¤·¤¬¹Ô¤ï¤ì¤ë¡£ +の呼び出しが行われる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getpgrp (2), .BR kill (2), .BR signal (2), diff --git a/draft/man2/link.2 b/draft/man2/link.2 index e1d4a91a..5ad9e55d 100644 --- a/draft/man2/link.2 +++ b/draft/man2/link.2 @@ -37,35 +37,35 @@ .\" Updated & Modified Fri Apr 22 02:05:00 JST 2005 by Yuichi SATO .\" Updated 2008-09-07, Akihiro MOTOKI , LDP v3.08 .\" -.\"WORD: link ¥ê¥ó¥¯ -.\"WORD: hard link ¥Ï¡¼¥É¡¦¥ê¥ó¥¯ -.\"WORD: overwrite ¾å½ñ¤­ -.\"WORD: permission µö²Ä(permission) -.\"WORD: ownership ½êÍ­¼Ô(ownership) -.\"WORD: file system ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à -.\"WORD: effective uid ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: symbolic link ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: dangling symbolic link ²õ¤ì¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: directory entry ¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê +.\"WORD: link リンク +.\"WORD: hard link ハード・リンク +.\"WORD: overwrite 上書き +.\"WORD: permission 許可(permission) +.\"WORD: ownership 所有者(ownership) +.\"WORD: file system ファイル・システム +.\"WORD: effective uid 実効ユーザーID +.\"WORD: kernel カーネル +.\"WORD: symbolic link シンボリック・リンク +.\"WORD: dangling symbolic link 壊れたシンボリック・リンク +.\"WORD: directory entry ディレクトリ・エントリ .\" .TH LINK 2 2008-08-21 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O link \- make a new name for a file -link \- ¥Õ¥¡¥¤¥ë¤Î¿·¤·¤¤Ì¾Á°¤òºîÀ®¤¹¤ë +link \- ファイルの新しい名前を作成する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int link(const char *" oldpath ", const char *" newpath ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR link () .\"O creates a new link (also known as a hard link) to an existing file. .BR link () -¤Ï¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¤Ø¤Î¿·¤·¤¤¥ê¥ó¥¯ (link) -(¥Ï¡¼¥É¡¦¥ê¥ó¥¯ (hard link) ¤È¤â¤¤¤¦) ¤òºîÀ®¤¹¤ë¡£ +は存在するファイルへの新しいリンク (link) +(ハード・リンク (hard link) ともいう) を作成する。 .\"O If .\"O .I newpath @@ -73,27 +73,27 @@ link \- .\"O .I not .\"O be overwritten. .I newpath -¤¬Â¸ºß¤¹¤ë¾ì¹ç¤Ë¤Ï¾å½ñ¤­¤Ï\fI¤µ¤ì¤Ê¤¤\fR¡£ +が存在する場合には上書きは\fIされない\fR。 .\"O This new name may be used exactly as the old one for any operation; .\"O both names refer to the same file (and so have the same permissions .\"O and ownership) and it is impossible to tell which name was the .\"O original. -¤³¤Î¿·¤·¤¤Ì¾Á°¤ÏÁ´¤Æ¤ÎÁàºî¤Ë¤ª¤¤¤Æ¸Å¤¤Ì¾Á°¤È´°Á´¤ËƱ¤¸¤è¤¦¤Ë»ÈÍѤµ¤ì¤ë; -ξÊý¤Î̾Á°¤ÏƱ¤¸¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤ª¤ê -(¤½¤ì¤ÇƱ¤¸µö²Ä (permission) ¤ä½êÍ­¼Ô (ownership) ¤È¤Ê¤ë¤Î¤Ç)¡¢ -¤É¤Á¤é¤Î̾Á°¤¬ËÜÍè¤Î¤â¤Î¤Ç¤¢¤ë¤«È½Ê̤Ǥ­¤Ê¤¤¡£ +この新しい名前は全ての操作において古い名前と完全に同じように使用される; +両方の名前は同じファイルを参照しており +(それで同じ許可 (permission) や所有者 (ownership) となるので)、 +どちらの名前が本来のものであるか判別できない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合は 0 が返される。エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O Write access to the directory containing @@ -106,117 +106,117 @@ link \- .\"O (See also .\"O .BR path_resolution (7).) .I newpath -¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ø¤Î½ñ¤­¹þ¤ß¤¬µö¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ +を含んでいるディレクトリへの書き込みが許されていないか、 .I oldpath -¤Þ¤¿¤Ï +または .I newpath -¤Ø¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¤É¤ì¤«¤Ë¸¡º÷µö²Ä¤¬¤Ê¤¤ +へのディレクトリのどれかに検索許可がない .RB ( path_resolution (7) -¤ò»²¾È)¡£ +を参照)。 .TP .B EEXIST .\"O .I newpath .\"O already exists. .I newpath -¤¬´û¤Ë¸ºß¤¹¤ë¡£ +が既に存在する。 .TP .B EFAULT .\"O .IR oldpath " or " newpath " points outside your accessible address space." -.IR oldpath " ¤Þ¤¿¤Ï " newpath " -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +.IR oldpath " または " newpath " +がアクセス可能なアドレス空間の外を指している。 .TP .B EIO .\"O An I/O error occurred. -I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +I/O エラーが発生した。 .TP .B ELOOP .\"O Too many symbolic links were encountered in resolving .\"O .IR oldpath " or " newpath . -.IR oldpath " ¤Þ¤¿¤Ï " newpath -¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ +.IR oldpath " または " newpath +を解決する際に遭遇したシンボリック・リンクが多過ぎる。 .TP .B EMLINK .\"O The file referred to by .\"O .I oldpath .\"O already has the maximum number of links to it. .I oldpath -¤Ë¤è¤Ã¤Æ»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ï -´û¤ËºÇÂç¿ô¤Þ¤Ç¤Î¥ê¥ó¥¯¤ò»ý¤Ã¤Æ¤¤¤ë¡£ +によって参照されるファイルは +既に最大数までのリンクを持っている。 .TP .B ENAMETOOLONG .\"O .IR oldpath " or " newpath " was too long." -.IR oldpath " ¤Þ¤¿¤Ï " newpath " -¤¬Ä¹²á¤®¤ë¡£ +.IR oldpath " または " newpath " +が長過ぎる。 .TP .B ENOENT .\"O A directory component in .\"O .IR oldpath " or " newpath .\"O does not exist or is a dangling symbolic link. -.IR oldpath " ¤Þ¤¿¤Ï " newpath -¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢ -²õ¤ì¤¿(dangling)¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ç¤¢¤ë¡£ +.IR oldpath " または " newpath +のディレクトリ部分が存在しないか、 +壊れた(dangling)シンボリック・リンクである。 .TP .B ENOMEM .\"O Insufficient kernel memory was available. -¥«¡¼¥Í¥ë¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +カーネルに十分なメモリがない。 .TP .B ENOSPC .\"O The device containing the file has no room for the new directory .\"O entry. -¤½¤Î¥Õ¥¡¥¤¥ë¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥Ð¥¤¥¹¤Ë¿·¤·¤¤¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤ò -ºîÀ®¤¹¤ë¤¿¤á¤Î¶õ¤­¤¬¤Ê¤¤¡£ +そのファイルを含んでいるデバイスに新しいディレクトリ・エントリを +作成するための空きがない。 .TP .B ENOTDIR .\"O A component used as a directory in .\"O .IR oldpath " or " newpath .\"O is not, in fact, a directory. -.IR oldpath " ¤Þ¤¿¤Ï " newpath -¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬¡¢¼ÂºÝ¤Ë¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +.IR oldpath " または " newpath +のディレクトリ部分が、実際には、ディレクトリでない。 .TP .B EPERM .\"O .I oldpath .\"O is a directory. .I oldpath -¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¡£ +がディレクトリである。 .TP .B EPERM .\"O The file system containing .\"O .IR oldpath " and " newpath .\"O does not support the creation of hard links. -.IR oldpath " ¤È " newpath -¤ò´Þ¤ó¤Ç¤¤¤ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤¬¥Ï¡¼¥É¡¦¥ê¥ó¥¯¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +.IR oldpath " と " newpath +を含んでいるファイル・システムがハード・リンクをサポートしていない。 .TP .B EROFS .\"O The file is on a read-only file system. -¥Õ¥¡¥¤¥ë¤¬Æɤ߹þ¤ßÀìÍѤΥե¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¡£ +ファイルが読み込み専用のファイル・システムに存在する。 .TP .B EXDEV .\"O .IR oldpath " and " newpath .\"O are not on the same mounted file system. -.IR oldpath " ¤È " newpath -¤¬Æ±¤¸¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë¸ºß¤·¤Ê¤¤¡£ +.IR oldpath " と " newpath +が同じマウントされたファイル・システムに存在しない。 .\"O (Linux permits a file system to be mounted at multiple points, but .\"O .BR link () .\"O does not work across different mount points, .\"O even if the same file system is mounted on both.) -(Linux ¤Ï 1 ¤Ä¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤òÊ£¿ô¤Î¥Þ¥¦¥ó¥È°ÌÃÖ¤Ë -¥Þ¥¦¥ó¥È¤¹¤ë¤³¤È¤òµö²Ä¤·¤Æ¤¤¤ë¡£ -¤·¤«¤· +(Linux は 1 つのファイル・システムを複数のマウント位置に +マウントすることを許可している。 +しかし .BR link () -¤Ï¡¢¤¿¤È¤¨Æ±¤¸¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ç¤¢¤Ã¤Æ¤â¡¢ -ÊÌ¡¹¤Î¥Þ¥¦¥ó¥È°ÌÃÖ¤ò¸Ù¤¤¤Ç¤ÏÆ°ºî¤·¤Ê¤¤¡£) +は、たとえ同じファイル・システムであっても、 +別々のマウント位置を跨いでは動作しない。) .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O SVr4, 4.3BSD, POSIX.1-2001 (but see NOTES) .\"O .\" SVr4 documents additional ENOLINK and .\"O .\" EMULTIHOP error conditions; POSIX.1 does not document ELOOP. .\"O .\" X/OPEN does not document EFAULT, ENOMEM or EIO. -SVr4, 4.3BSD, POSIX.1-2001 (⤷¡ÖÃí°Õ¡×¤ò»²¾È)¡£ -.\" SVr4 ¤Ï¾¤Ë ENOLINK, EMULTIHOP ¥¨¥é¡¼¾õÂ֤ˤĤ¤¤Æ¤âµ­½Ò¤·¤Æ¤¤¤ë¡£ -.\" POSIX.1 ¤Ë¤Ï ELOOP ¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤Ï¤Ê¤¤¡£ -.\" X/OPEN ¤Ë¤Ï EFAULT, ENOMEM, EIO ¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤Ï¤Ê¤¤¡£ +SVr4, 4.3BSD, POSIX.1-2001 (但し「注意」を参照)。 +.\" SVr4 は他に ENOLINK, EMULTIHOP エラー状態についても記述している。 +.\" POSIX.1 には ELOOP についての記述はない。 +.\" X/OPEN には EFAULT, ENOMEM, EIO についての記述はない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Hard links, as created by .\"O .BR link (), .\"O cannot span file systems. @@ -224,23 +224,23 @@ SVr4, 4.3BSD, POSIX.1-2001 (â .\"O .BR symlink (2) .\"O if this is required. .BR link () -¤Ç¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤òĶ¤¨¤Æ¥Ï¡¼¥É¡¦¥ê¥ó¥¯¤òºîÀ®¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ï +でファイル・システムを超えてハード・リンクを作成することはできない。 +このような場合は .BR symlink (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +を使用すること。 .\"O POSIX.1-2001 says that .\"O .BR link () .\"O should dereference .\"O .I oldpath .\"O if it is a symbolic link. -POSIX.1-2001 ¤Ç¤Ï¡¢ +POSIX.1-2001 では、 .I oldpath -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ç¤¢¤ë¾ì¹ç¡¢ +がシンボリック・リンクである場合、 .BR link () -¤Ï +は .I oldpath -¤Î»²¾È¤ò²ò·è¤¹¤Ù¤­¤Ç¤¢¤ë¤Èµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +の参照を解決すべきであると記述されている。 .\"O However, since kernel 2.0, .\"O .\" more precisely: since kernel 1.3.56 .\"O Linux does not do so: if @@ -248,34 +248,34 @@ POSIX.1-2001 .\"O is a symbolic link, then .\"O .I newpath .\"O is created as a (hard) link to the same symbolic link file -¤·¤«¤·¡¢¥«¡¼¥Í¥ë 2.0 °Ê¹ß¤Î -.\" Àµ³Î¤Ë¤Ï¥«¡¼¥Í¥ë 1.3.56 °Ê¹ß -Linux ¤Ç¤Ï¤½¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¡£ +しかし、カーネル 2.0 以降の +.\" 正確にはカーネル 1.3.56 以降 +Linux ではそのようになっていない。 .I oldpath -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ç¤¢¤ë¾ì¹ç¡¢ +がシンボリック・リンクである場合、 .I newpath -¤ÏƱ¤¸¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¥Õ¥¡¥¤¥ë¤Ø¤Î (¥Ï¡¼¥É) ¥ê¥ó¥¯¤È¤·¤ÆºîÀ®¤µ¤ì¤ë +は同じシンボリック・リンクファイルへの (ハード) リンクとして作成される .\"O (i.e., .\"O .I newpath .\"O becomes a symbolic link to the same file that .\"O .I oldpath .\"O refers to). -(¤Ä¤Þ¤ê +(つまり .I newpath -¤Ï +は .I oldpath -¤¬»²¾È¤·¤Æ¤¤¤¿Æ±¤¸¥Õ¥¡¥¤¥ë¤Ø¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ë¤Ê¤ë)¡£ +が参照していた同じファイルへのシンボリックリンクになる)。 .\"O Some other implementations behave in the same manner as Linux. -¾¤Î¤¤¤¯¤Ä¤«¤Î¼ÂÁõ¤Ç¤â Linux ¤ÈƱ¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +他のいくつかの実装でも Linux と同じように動作する。 .\"O .\" For example, the default Solaris compilation environment .\"O .\" behaves like Linux, and contributors to a March 2005 .\"O .\" thread in the Austin mailing list reported that some .\"O .\" other (System V) implementations did/do the same -- MTK, Apr 05 -.\" Î㤨¤Ð¡¢¥Ç¥Õ¥©¥ë¥È¤Î Solaris ¤Î¥³¥ó¥Ñ¥¤¥ë´Ä¶­¤Ç¤Ï -.\" Linux ¤ÈƱ¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£¤½¤·¤Æ Austin ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î -.\" 2005 ǯ 3 ·î¤Î¥¹¥ì¥Ã¥É¤ËÅê¹Æ¤·¤¿¿Í¤¿¤Á¤Ï¡¢ -.\" ¤½¤Î¾¤Î¤¤¤¯¤Ä¤«¤Î (System V) ¼ÂÁõ¤Ç¤âƱ¤¸¤Ç¤¢¤Ã¤¿/¤¢¤ë¡¢ -.\" ¤ÈÊó¹ð¤·¤Æ¤¤¤ë -- MTK, Apr 05 +.\" 例えば、デフォルトの Solaris のコンパイル環境では +.\" Linux と同じように動作する。そして Austin メーリングリストの +.\" 2005 å¹´ 3 月のスレッドに投稿した人たちは、 +.\" その他のいくつかの (System V) 実装でも同じであった/ある、 +.\" と報告している -- MTK, Apr 05 .\"O POSIX.1-2008 changes the specification of .\"O .BR link (), .\"O making it implementation-dependent whether or not @@ -284,30 +284,30 @@ Linux .\"O For precise control over the treatment of symbolic links when .\"O creating a link, see .\"O .BR linkat (2). -POSIX.1-2008 ¤Ç¤Ï +POSIX.1-2008 では .BR link () -¤Î»ÅÍͤ¬Êѹ¹¤µ¤ì¡¢ +の仕様が変更され、 .I oldpath -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Î¾ì¹ç¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Î»²¾È¤ò -²ò·è¤¹¤ë¤«¤É¤¦¤«¤Ï¼ÂÁõ°Í¸¤È¤Ê¤Ã¤¿¡£ -¥ê¥ó¥¯ºîÀ®»þ¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Î°·¤¤¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤ÊÀ©¸æ¤Ë -´Ø¤·¤Æ¤Ï +がシンボリック・リンクの場合にシンボリック・リンクの参照を +解決するかどうかは実装依存となった。 +リンク作成時のシンボリック・リンクの扱いについての詳細な制御に +関しては .BR linkat (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O On NFS file systems, the return code may be wrong in case the NFS server .\"O performs the link creation and dies before it can say so. .\"O Use .\"O .BR stat (2) .\"O to find out if the link got created. -NFS ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ç¤Ï¡¢NFS ¥µ¡¼¥Ð¡¼¤¬¥ê¥ó¥¯¤òºîÀ®¤·¤¿¸å¤Ë¡¢ -¤½¤ì¤òÅÁ¤¨¤ëÁ°¤Ë»à¤ó¤À¾ì¹ç¤Ë¤ÏÊÖ¤êÃͤ¬ÉÔÀµ¤Ê¾ì¹ç¤¬¤¢¤ë¡£ -¥ê¥ó¥¯¤¬ºîÀ®¤Ç¤­¤¿¤«¤É¤¦¤«¸«¤Ä¤±¤ë¤¿¤á¤Ë¤Ï +NFS ファイル・システムでは、NFS サーバーがリンクを作成した後に、 +それを伝える前に死んだ場合には返り値が不正な場合がある。 +リンクが作成できたかどうか見つけるためには .BR stat (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +を使用すること。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ln (1), .BR linkat (2), .BR open (2), diff --git a/draft/man2/linkat.2 b/draft/man2/linkat.2 index b766d6ce..1bf61056 100644 --- a/draft/man2/linkat.2 +++ b/draft/man2/linkat.2 @@ -30,14 +30,14 @@ .\" .TH LINKAT 2 2009-12-13 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O linkat \- create a file link relative to directory file descriptors -linkat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÁêÂÐŪ¤Ê°ÌÃ֤˥ե¡¥¤¥ë¥ê¥ó¥¯¤òºîÀ®¤¹¤ë +linkat \- ディレクトリファイルディスクリプタから相対的な位置にファイルリンクを作成する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .B #include /* Definition of AT_* constants */ -.B #include /* AT_* Äê¿ô¤ÎÄêµÁ */ +.B #include /* AT_* 定数の定義 */ .B #include .sp .BI "int linkat(int " olddirfd ", const char *" oldpath , @@ -47,9 +47,9 @@ linkat \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR linkat (): @@ -58,26 +58,26 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR linkat () .\"O system call operates in exactly the same way as .\"O .BR link (2), .\"O except for the differences described in this manual page. .BR linkat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤¹¤ë°ã¤¤°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明する違い以外は、 .BR link (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .\"O If the pathname given in .\"O .I oldpath @@ -89,13 +89,13 @@ _ATFILE_SOURCE .\"O .BR link (2) .\"O for a relative pathname). .I oldpath -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹Ì¾¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パス名である場合、 +ファイルディスクリプタ .I olddirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( link (2) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスの +カレントワーキングディレクトリからの相対パスとなる)。 .\"O If .\"O .I oldpath @@ -109,16 +109,16 @@ _ATFILE_SOURCE .\"O directory of the calling process (like .\"O .BR link (2)). .I oldpath -¤¬ÁêÂХѥ¹¤Ç¤¢¤ê¡¢¤«¤Ä +が相対パスであり、かつ .I olddirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I oldpath -¤Ï +は .RB ( link (2) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .\"O If .\"O .I oldpath @@ -126,9 +126,9 @@ _ATFILE_SOURCE .\"O .I olddirfd .\"O is ignored. .I oldpath -¤¬ÀäÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ +が絶対パスである場合、 .I olddirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\"O The interpretation of .\"O .I newpath @@ -138,12 +138,12 @@ _ATFILE_SOURCE .\"O to the directory referred to by the file descriptor .\"O .IR newdirfd . .I newpath -¤Î²ò¼á¤Ï +の解釈は .I oldpath -¤ÈƱÍͤǤ¢¤ë¤¬¡¢ -ÁêÂХѥ¹Ì¾¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +と同様であるが、 +相対パス名はファイルディスクリプタ .I newdirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +で参照されるディレクトリからの相対パス名として解釈される。 .\"O By default, .\"O .BR linkat (), @@ -161,56 +161,56 @@ _ATFILE_SOURCE .\"O Before kernel 2.6.18, the .\"O .I flags .\"O argument was unused, and had to be specified as 0. -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +デフォルトでは、 .I oldpath -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Î¾ì¹ç¡¢ +がシンボリック・リンクの場合、 .RB ( link (2) -ƱÍÍ) +同様) .BR linkat () -¤Ï +は .I oldpath -¤Î»²¾È¤Î²ò·è¤ò¹Ô¤ï¤Ê¤¤¡£ -Linux 2.6.18 °Ê¹ß¤Ç¤Ï¡¢ +の参照の解決を行わない。 +Linux 2.6.18 以降では、 .B AT_SYMLINK_FOLLOW -¥Õ¥é¥°¤ò +フラグを .I flags -¤Ë»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È¡¢ +に指定することができる。このフラグを指定すると、 .I oldpath -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Î¾ì¹ç¡¢ +がシンボリック・リンクの場合、 .I oldpath -¤Î»²¾È¤Î²ò·è¤ò¹Ô¤¦¡£ -2.6.18 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +の参照の解決を行う。 +2.6.18 以前のカーネルでは、 .I flags -°ú¤­¿ô¤Ï»ÈÍѤµ¤ì¤º¡¢ -0 ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤«¤Ã¤¿¡£ +引き数は使用されず、 +0 を指定しなければならなかった。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR linkat () .\"O returns 0. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR linkat () -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .\"O On error, \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +エラーの場合、\-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ +にはエラーを示す値が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O The same errors that occur for .\"O .BR link (2) .\"O can also occur for .\"O .BR linkat (). .BR link (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR linkat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .\"O The following additional errors can occur for .\"O .BR linkat (): .BR linkat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .\"O .I olddirfd @@ -218,9 +218,9 @@ Linux 2.6.18 .\"O .I newdirfd .\"O is not a valid file descriptor. .I olddirfd -¤Þ¤¿¤Ï +または .I newdirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B ENOTDIR .\"O .I oldpath @@ -228,39 +228,39 @@ Linux 2.6.18 .\"O .I olddirfd .\"O is a file descriptor referring to a file other than a directory; .I oldpath -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I olddirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 .\"O or similar for .\"O .I newpath .\"O and .\"O .I newdirfd -¤Þ¤¿¤Ï +または .I newpath -¤È +と .I newdirfd -¤Ë¤Ä¤¤¤Æ¡¢Æ±ÍͤΤ³¤È¤¬µ¯¤­¤Æ¤¤¤ë¡£ +について、同様のことが起きている。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR linkat () .\"O was added to Linux in kernel 2.6.16. .BR linkat () -¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ +は Linux カーネル 2.6.16 で追加された。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O See .\"O .BR openat (2) .\"O for an explanation of the need for .\"O .BR linkat (). .BR linkat () -¤¬É¬ÍפÊÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が必要な理由については、 .BR openat (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR link (2), .BR openat (2), .BR path_resolution (7), diff --git a/draft/man2/listen.2 b/draft/man2/listen.2 index 7aca4a54..37ea92db 100644 --- a/draft/man2/listen.2 +++ b/draft/man2/listen.2 @@ -48,28 +48,28 @@ .\" Updated 2007-07-04, Akihiro MOTOKI , LDP v2.58 .\" Updated 2008-02-10, Akihiro MOTOKI , LDP v2.77 .\" -.\"WORD: socket ¥½¥±¥Ã¥È -.\"WORD: listen ´Æ»ë -.\"WORD: queue ¥­¥å¡¼ -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ +.\"WORD: socket ソケット +.\"WORD: listen 監視 +.\"WORD: queue キュー +.\"WORD: descriptor ディスクリプター .\" .TH LISTEN 2 2008-11-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O listen \- listen for connections on a socket -listen \- ¥½¥±¥Ã¥È(socket)¾å¤ÎÀܳ¤òÂÔ¤Ä +listen \- ソケット(socket)上の接続を待つ .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#include " " /* See NOTES */" -.BR "#include " " /* ¡ÖÃí°Õ¡×»²¾È */" +.BR "#include " " /* 「注意」参照 */" .br .B #include .sp .BI "int listen(int " sockfd ", int " backlog ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR listen () .\"O marks the socket referred to by .\"O .I sockfd @@ -77,12 +77,12 @@ listen \- .\"O be used to accept incoming connection requests using .\"O .BR accept (2). .BR listen () -¤Ï +は .I sockfd -¤¬»²¾È¤¹¤ë¥½¥±¥Ã¥È¤òÀܳÂÔ¤Á¥½¥±¥Ã¥È (passive socket) ¤È¤·¤Æ°õ¤ò¤Ä¤±¤ë¡£ -ÀܳÂÔ¤Á¥½¥±¥Ã¥È¤È¤Ï¡¢ +が参照するソケットを接続待ちソケット (passive socket) として印をつける。 +接続待ちソケットとは、 .BR accept (2) -¤ò»È¤Ã¤ÆÅþÃ夷¤¿ÀܳÍ×µá¤ò¼õ¤±ÉÕ¤±¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¥½¥±¥Ã¥È¤Ç¤¢¤ë¡£ +を使って到着した接続要求を受け付けるのに使用されるソケットである。 .\"O The .\"O .I sockfd @@ -91,11 +91,11 @@ listen \- .\"O or .\"O .BR SOCK_SEQPACKET . .I sockfd -°ú¤­¿ô¤Ï¡¢ +引き数は、 .B SOCK_STREAM -·¿¤« +型か .B SOCK_SEQPACKET -·¿¤Î¥½¥±¥Ã¥È¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +型のソケットを参照するファイルディスクリプタである。 .\"O The .\"O .I backlog @@ -109,73 +109,73 @@ listen \- .\"O or, if the underlying protocol supports retransmission, the request may be .\"O ignored so that a later reattempt at connection succeeds. .I backlog -°ú¤­¿ô¤Ï¡¢ +引き数は、 .I sockfd -¤Ë¤Ä¤¤¤Æ¤ÎÊÝαÃæ¤ÎÀܳ¤Î¥­¥å¡¼¤ÎºÇÂçŤò»ØÄꤹ¤ë¡£ -¥­¥å¡¼¤¬¤¤¤Ã¤Ñ¤¤¤Î¾õÂÖ¤ÇÀܳÍ׵᤬ÅþÃ夹¤ë¤È¡¢¥¯¥é¥¤¥¢¥ó¥È¤Ï +についての保留中の接続のキューの最大長を指定する。 +キューがいっぱいの状態で接続要求が到着すると、クライアントは .B ECONNREFUSED -¤È¤¤¤¦¥¨¥é¡¼¤ò¼õ¤±¼è¤ë¡£²¼°ÌÁؤΥץí¥È¥³¥ë¤¬ºÆÁ÷¿®¤ò¥µ¥Ý¡¼¥È -¤·¤Æ¤¤¤ì¤Ð¡¢Í×µá¤Ï̵»ë¤µ¤ì¡¢¤³¤ì°Ê¹ß¤ÎÀܳÍ×µá¤ÎºÆÁ÷¿®¤¬À®¸ù¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +というエラーを受け取る。下位層のプロトコルが再送信をサポート +していれば、要求は無視され、これ以降の接続要求の再送信が成功するかもしれない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù»þ¤Ë¤Ï0¤òÊÖ¤¹¡£¥¨¥é¡¼»þ¤Ë¤Ï \-1¤òÊÖ¤·¡¢ +成功時には0を返す。エラー時には \-1を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O .TP .\"O .B EADDRINUSE .\"O Another socket is already listening on the same port. .TP .B EADDRINUSE -Ê̤Υ½¥±¥Ã¥È¤¬´û¤ËƱ¤¸¥Ý¡¼¥È¤ò listen ¤·¤Æ¤¤¤ë¡£ +別のソケットが既に同じポートを listen している。 .TP .B EBADF .\"O The argument .\"O .I sockfd .\"O is not a valid descriptor. -°ú¤­¿ô +引き数 .I sockfd -¤ÏÍ­¸ú¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ç¤Ï¤Ê¤¤¡£ +は有効なディスクリプターではない。 .TP .B ENOTSOCK .\"O The argument .\"O .I sockfd .\"O is not a socket. -°ú¤­¿ô +引き数 .I sockfd -¤Ï¥½¥±¥Ã¥È¤Ç¤Ï¤Ê¤¤¡£ +はソケットではない。 .TP .B EOPNOTSUPP .\"O The socket is not of a type that supports the .\"O .BR listen () .\"O operation. -¥½¥±¥Ã¥È¤Ï +ソケットは .BR listen () -¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë·¿¤Ç¤Ï¤Ê¤¤¡£ +がサポートしている型ではない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O 4.4BSD, POSIX.1-2001. .\"O The .\"O .B listen .\"O function call first appeared in 4.2BSD. 4.4BSD, POSIX.1-2001. .BR listen () -´Ø¿ô¤Ï 4.2BSD¤Ç½é¤á¤Æ¼ÂÁõ¤µ¤ì¤¿¡£ +関数は 4.2BSDで初めて実装された。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O To accept connections, the following steps are performed: -Àܳ¤ò¼õ¤±ÉÕ¤±¤ë¤Ë¤Ï¡¢°Ê²¼¤Î½èÍý¤¬¼Â¹Ô¤µ¤ì¤ë¡£ +接続を受け付けるには、以下の処理が実行される。 .RS 4 .IP 1. 4 .\"O A socket is created with .\"O .BR socket (2). .BR socket (2) -¤Ç¥½¥±¥Ã¥È¤òºîÀ®¤¹¤ë¡£ +でソケットを作成する。 .IP 2. .\"O The socket is bound to a local address using .\"O .BR bind (2), @@ -183,21 +183,21 @@ listen \- .\"O .BR connect (2)ed .\"O to it. .BR bind (2) -¤ò»È¤Ã¤Æ¥½¥±¥Ã¥È¤Ë¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤ò³ä¤êÅö¤Æ¤Æ¡¢ -¾¤Î¥½¥±¥Ã¥È¤¬¤³¤Î¥½¥±¥Ã¥È¤Ë +を使ってソケットにローカルアドレスを割り当てて、 +他のソケットがこのソケットに .BR connect (2) -¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ +できるようにする。 .IP 3. .\"O A willingness to accept incoming connections and a queue limit for incoming .\"O connections are specified with .\"O .BR listen (). .BR listen () -¤ò»È¤Ã¤Æ¡¢ÀܳÍ×µá¤ò¼õ¤±ÉÕ¤±¤ë°Õ»Ö¤ÈÀܳÍ×µá¤òÆþ¤ì¤ë¥­¥å¡¼Ä¹¤ò»ØÄꤹ¤ë¡£ +を使って、接続要求を受け付ける意志と接続要求を入れるキュー長を指定する。 .IP 4. .\"O Connections are accepted with .\"O .BR accept (2). .BR accept (2) -¤ò»È¤Ã¤ÆÀܳ¤ò¼õ¤±ÉÕ¤±¤ë¡£ +を使って接続を受け付ける。 .RE .PP .\"O POSIX.1-2001 does not require the inclusion of @@ -205,20 +205,20 @@ listen \- .\"O and this header file is not required on Linux. .\"O However, some historical (BSD) implementations required this header .\"O file, and portable applications are probably wise to include it. -POSIX.1-2001 ¤Ç¤Ï +POSIX.1-2001 では .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ïɬ¿Ü¤È¤µ¤ì¤Æ¤ª¤é¤º¡¢ -Linux ¤Ç¤Ï¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÏɬÍפǤϤʤ¤¡£ -¤·¤«¤·¡¢Îò»ËŪ¤Ë¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¼ÂÁõ (BSD ·Ï) ¤Ç¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬ -ɬÍפǤ¢¤ê¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤ò -¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤Î¤¬¸­ÌÀ¤Ç¤¢¤í¤¦¡£ +のインクルードは必須とされておらず、 +Linux ではこのヘッダファイルは必要ではない。 +しかし、歴史的には、いくつかの実装 (BSD ç³») でこのヘッダファイルが +必要であり、移植性が必要なアプリケーションではこのファイルを +インクルードするのが賢明であろう。 .\"O The behavior of the .\"O .I backlog .\"O argument on TCP sockets changed with Linux 2.2. -TCP ¥½¥±¥Ã¥È¤Ç¤Î +TCP ソケットでの .I backlog -°ú¤­¿ô¤Î¿¶¤ëÉñ¤¤¤Ï Linux 2.2 ¤ÇÊѹ¹¤µ¤ì¤¿¡£ +引き数の振る舞いは Linux 2.2 で変更された。 .\"O Now it specifies the queue length for .\"O .I completely .\"O established sockets waiting to be accepted, @@ -226,21 +226,21 @@ TCP .\"O The maximum length of the queue for incomplete sockets .\"O can be set using .\"O .IR /proc/sys/net/ipv4/tcp_max_syn_backlog . -¸½ºß¤Ç¤Ï¤³¤Î°ú¤­¿ô¤Ï¡¢ -¼õ¤±ÉÕ¤±¤é¤ì¤ë¤Î¤òÂԤäƤ¤¤ë¡¢ -.I ´°Á´¤Ë -³ÎΩ¤µ¤ì¤¿¥½¥±¥Ã¥È¤Î¥­¥å¡¼¤ÎŤµ¤ò»ØÄꤹ¤ë¡£ -°ÊÁ°¤ÏÉÔ´°Á´¤ÊÀܳÍ×µá¤Î¿ô¤Ç¤¢¤Ã¤¿¤¬¡¢¤³¤ì¤òÃÖ¤­´¹¤¨¤¿¡£ -ÉÔ´°Á´¤Ê¥½¥±¥Ã¥È¤Î¥­¥å¡¼¤ÎºÇÂçĹ¤Ï +現在ではこの引き数は、 +受け付けられるのを待っている、 +.I 完全に +確立されたソケットのキューの長さを指定する。 +以前は不完全な接続要求の数であったが、これを置き換えた。 +不完全なソケットのキューの最大長は .I /proc/sys/net/ipv4/tcp_max_syn_backlog -¤òÍѤ¤¤ÆÀßÄê¤Ç¤­¤ë¡£ +を用いて設定できる。 .\"O When syncookies are enabled there is no logical maximum .\"O length and this setting is ignored. .\"O See .\"O .BR tcp (7) .\"O for more information. -syncookie ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -ÏÀÍýŪ¤ÊºÇÂçĹ¤Ï¸ºß¤»¤º¡¢¤³¤ÎÀßÄê¤Ï̵»ë¤µ¤ì¤ë¡£ +syncookie が有効になっている場合、 +論理的な最大長は存在せず、この設定は無視される。 .\"O If the .\"O .I backlog @@ -252,31 +252,31 @@ syncookie .\"O .BR SOMAXCONN , .\"O with the value 128. .I backlog -°ú¤­¿ô¤¬ +引き数が .I /proc/sys/net/core/somaxconn -¤ÎÃͤè¤ê¤âÂ礭¤±¤ì¤Ð¡¢ +の値よりも大きければ、 .I backlog -¤ÎÃͤϰÅÌۤΤ¦¤Á¤Ë¤³¤ÎÃͤËÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 128 ¤Ç¤¢¤ë¡£ -¥Ð¡¼¥¸¥ç¥ó 2.4.5 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¤³¤Î¾å¸ÂÃÍ¤Ï -¥³¡¼¥ÉËä¤á¹þ¤ß¤Î¸ÇÄêÃÍ +の値は暗黙のうちにこの値に切り詰められる。 +このファイルのデフォルト値は 128 である。 +バージョン 2.4.5 以前のカーネルでは、この上限値は +コード埋め込みの固定値 .B SOMAXCONN -¤Ç¤¢¤ê¡¢¤½¤ÎÃÍ¤Ï 128 ¤Ç¤¢¤Ã¤¿¡£ +であり、その値は 128 であった。 .\"O .\" The following is now rather historic information (MTK, Jun 05) .\"O .\" Don't rely on this value in portable applications since BSD .\"O .\" (and some BSD-derived systems) limit the backlog to 5. -.\" °Ê²¼¤Ï¡¢º£¤Ç¤Ï¸Å¤¤¾ðÊó¤Ç¤¢¤ë¡£(MTK, Jun 05) -.\" BSD (¤È¡¢¤¤¤¯¤Ä¤«¤Î BSD ¤«¤éÇÉÀ¸¤·¤¿¥·¥¹¥Æ¥à)¤Ç¤Ï backlog ¤ò 5 ¤Ë -.\" À©¸Â¤·¤Æ¤¤¤ë¤Î¤Ç¡¢°Ü¿¢À­¤ò¹Íθ¤·¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï -.\" ¤³¤ÎÃÍ (SOMAXCONN) ¤ËÍê¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ +.\" 以下は、今では古い情報である。(MTK, Jun 05) +.\" BSD (と、いくつかの BSD から派生したシステム)では backlog を 5 に +.\" 制限しているので、移植性を考慮したアプリケーションでは +.\" この値 (SOMAXCONN) に頼ってはいけない。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O See .\"O .BR bind (2). .BR bind (2) -»²¾È¡£ +参照。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR accept (2), .BR bind (2), .BR connect (2), diff --git a/draft/man2/listxattr.2 b/draft/man2/listxattr.2 index fde95d1a..df7b7fe2 100644 --- a/draft/man2/listxattr.2 +++ b/draft/man2/listxattr.2 @@ -29,16 +29,16 @@ .\" Translated Tue Jul 8 04:17:12 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: extended attributes ³Èĥ°À­ -.\"WORD: namespace ̾Á°¶õ´Ö +.\"WORD: extended attributes 拡張属性 +.\"WORD: namespace 名前空間 .\" .TH LISTXATTR 2 2001-12-01 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O listxattr, llistxattr, flistxattr \- list extended attribute names -.SH ̾Á° -listxattr, llistxattr, flistxattr \- ³Èĥ°À­¤Î̾Á°¥ê¥¹¥È¤òÆÀ¤ë +.SH 名前 +listxattr, llistxattr, flistxattr \- 拡張属性の名前リストを得る .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .fam C .nf .B #include @@ -52,7 +52,7 @@ listxattr, llistxattr, flistxattr \- .fi .fam T .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Extended attributes are name:value .\"O pairs associated with inodes (files, directories, symbolic links, etc.). .\"O They are extensions to the normal attributes which are associated @@ -61,17 +61,17 @@ listxattr, llistxattr, flistxattr \- .\"O data). .\"O A complete overview of extended attributes concepts can be found in .\"O .BR attr (5). -³Èĥ°À­¤Ï¡¢inode (¥Õ¥¡¥¤¥ë¡¢¥Ç¥£¥ì¥¯¥È¥ê¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯Åù) ¤Ë -´ØÏ¢ÉÕ¤±¤é¤ì¤¿ +拡張属性は、inode (ファイル、ディレクトリ、シンボリックリンク等) に +関連付けられた .IR name :\c .I value -¤ÎÂФǤ¢¤ë¡£ -¤³¤ì¤é¤Ï¡¢¥·¥¹¥Æ¥à¾å¤Î¤¹¤Ù¤Æ¤Î inode ¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿Ä̾ï¤Î°À­ +の対である。 +これらは、システム上のすべての inode に関連付けられた通常の属性 .RB ( stat (2) -¤¬ÊÖ¤¹¥Ç¡¼¥¿) ¤ò³ÈÄ¥¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -³Èĥ°À­¤Î¥³¥ó¥»¥×¥È¤Ï +が返すデータ) を拡張するものである。 +拡張属性のコンセプトは .BR attr (5) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ +に書かれている。 .PP .\"O .BR listxattr () .\"O retrieves the @@ -86,14 +86,14 @@ listxattr, llistxattr, flistxattr \- .\"O .I list .\"O is returned. .BR listxattr () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÆâ¤Î»ØÄꤵ¤ì¤¿ +は、ファイルシステム内の指定された .I path -¤ËÂбþ¤¹¤ë³Èĥ°À­¤Î̾Á°¥ê¥¹¥È¤ò¼èÆÀ¤¹¤ë¡£ -¥ê¥¹¥È¤Ï̾Á°¤Î½¸¹ç¤Ç¡¢ NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤¬Ï¢Â³¤·¤Æʤó¤Ç¤¤¤ë¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬¥¢¥¯¥»¥¹¤¹¤ë¸¢¸Â¤Î¤Ê¤¤³Èĥ°À­¤Î̾Á°¤Ï¡¢ -¥ê¥¹¥È¤Ë´Þ¤Þ¤ì¤Ê¤¤¡£³Èĥ°À­¤Î̾Á°¤Î +に対応する拡張属性の名前リストを取得する。 +リストは名前の集合で、 NULL 終端された文字列が連続して並んでいる。 +呼び出したプロセスがアクセスする権限のない拡張属性の名前は、 +リストに含まれない。拡張属性の名前の .I list -¤ÎŤµ¤¬ÊÖ¤µ¤ì¤ë¡£ +の長さが返される。 .PP .\"O .BR llistxattr () .\"O is identical to @@ -102,10 +102,10 @@ listxattr, llistxattr, flistxattr \- .\"O extended attributes associated with the link itself is retrieved, .\"O not the file that it refers to. .BR llistxattr () -¤Ï +は .BR listxattr () -¤ÈƱ¤¸¤À¤¬¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¤Ë¡¢¥ê¥ó¥¯¤¬»²¾È¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë -¤Ç¤Ï¤Ê¤¯¡¢¥ê¥ó¥¯¤½¤Î¤â¤Î¤Î³Èĥ°À­¤Î̾Á°¥ê¥¹¥È¤ò¼èÆÀ¤¹¤ëÅÀ¤À¤±¤¬°Û¤Ê¤ë¡£ +と同じだが、シンボリックリンクの場合に、リンクが参照しているファイル +ではなく、リンクそのものの拡張属性の名前リストを取得する点だけが異なる。 .PP .\"O .BR flistxattr () .\"O is identical to @@ -117,28 +117,28 @@ listxattr, llistxattr, flistxattr \- .\"O is interrogated in place of .\"O .IR path . .BR flistxattr () -¤Ï +は .BR listxattr () -¤ÈƱ¤¸¤À¤¬¡¢ +と同じだが、 .I path -¤ÎÂå¤ï¤ê¤Ë +の代わりに .I fd -¤Ç»²¾È¤µ¤ì¤¿¥ª¡¼¥×¥óºÑ¤ß¥Õ¥¡¥¤¥ë¤Î¾ðÊó¤À¤±¤ò¼èÆÀ¤¹¤ëÅÀ¤¬°Û¤Ê¤ë +で参照されたオープン済みファイルの情報だけを取得する点が異なる .RI ( filedes -¤Ï +は .BR open (2) -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë)¡£ +によって返される)。 .PP .\"O A single extended attribute .\"O .I name .\"O is a simple null-terminated string. .\"O The name includes a namespace prefix; there may be several, disjoint .\"O namespaces associated with an individual inode. -¸Ä¡¹¤Î³Èĥ°À­¤Î +個々の拡張属性の .I name -¤ÏÉáÄ̤ΠNULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ç¤¢¤ë¡£ -̾Á°¤Ë¤Ï¡¢Ì¾Á°¶õ´Ö¤òɽ¤¹ÀÜƬ¼­ (prefix) ¤¬´Þ¤Þ¤ì¤ë; -¸Ä¡¹¤Î inode ¤ËÂФ·¤Æ¡¢¸ß¤¤¤ËÆÈΩ¤Ê̾Á°¶õ´Ö¤¬Ê£¿ô¤¢¤Ã¤Æ¤â¤è¤¤¡£ +は普通の NULL 終端された文字列である。 +名前には、名前空間を表す接頭辞 (prefix) が含まれる; +個々の inode に対して、互いに独立な名前空間が複数あってもよい。 .PP .\"O An empty buffer of .\"O .I size @@ -146,21 +146,21 @@ listxattr, llistxattr, flistxattr \- .\"O list of extended attribute names, which can be used to estimate the .\"O size of a buffer which is sufficiently large to hold the list of names. .I size -¤Ë 0 ¤ò»ØÄꤷ¤Æ¶õ¤Î¥Ð¥Ã¥Õ¥¡¤ò¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÅϤ¹¤³¤È¤¬¤Ç¤­¡¢ -¤³¤Î¾ì¹ç¤Ë¤Ï³Èĥ°À­¤Î̾Á°¥ê¥¹¥È¤Î¸½ºß¤Î¥µ¥¤¥º¤¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤ÎÊýË¡¤Ï̾Á°¥ê¥¹¥È¤òÊÝ»ý¤¹¤ë¤Î¤Ë½½Ê¬¤ÊÂ礭¤µ¤Î¥Ð¥Ã¥Õ¥¡¡¦¥µ¥¤¥º¤ò -¸«ÀѤâ¤ë¤Î¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡¢ +に 0 を指定して空のバッファをこれらのシステムコールに渡すことができ、 +この場合には拡張属性の名前リストの現在のサイズが返される。 +この方法は名前リストを保持するのに十分な大きさのバッファ・サイズを +見積もるのに使うことができる、 .\"O .SS Example -.SS Îã +.SS 例 .\"O The .\"O .I list .\"O of names is returned as an unordered array of null-terminated character .\"O strings (attribute names are separated by null bytes (\(aq\\0\(aq)), like this: -ÊÖ¤µ¤ì¤ë̾Á°¤Î +返される名前の .I list -¤Ï¡¢ NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤ÎÇÛÎó (°À­Ì¾¤Ï NULL ¥Ð¥¤¥È (\(aq\\0\(aq) -¤Ç¶èÀÚ¤é¤ì¤Æ¤¤¤ë) ¤Ç¡¢³ÆÍ×ÁǤÏÀ°Î󤵤ì¤Æ¤¤¤ëÌõ¤Ç¤Ï¤Ê¤¤¡£ -°Ê²¼¤ËÎã¤ò¼¨¤¹: +は、 NULL 終端された文字列の配列 (属性名は NULL バイト (\(aq\\0\(aq) +で区切られている) で、各要素は整列されている訳ではない。 +以下に例を示す: .fam C .RS .nf @@ -174,10 +174,10 @@ user.name1\\0system.name1\\0user.name2\\0 .\"O extended attributes, might return a .\"O .I list .\"O like this: -³Èĥ°À­¤ò»È¤Ã¤Æ POSIX ACL ¤ò¼ÂÁõ¤·¤Æ¤¤¤ë ext2¡¢ext3¡¢XFS ¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë -¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ÊÖ¤µ¤ì¤ë +拡張属性を使って POSIX ACL を実装している ext2、ext3、XFS のようなファイル +システムでは、返される .I list -¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¤³¤È¤À¤í¤¦: +は以下のようになることだろう: .fam C .RS .nf @@ -187,16 +187,16 @@ system.posix_acl_access\\0system.posix_acl_default\\0 .RE .fam T .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, a positive number is returned indicating the size of the .\"O extended attribute name list. .\"O On failure, \-1 is returned and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢³Èĥ°À­¤Î̾Á°¥ê¥¹¥È¤ÎŤµ¤òɽ¤¹Àµ¤Î¿ô¤¬ÊÖ¤µ¤ì¤ë¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢ \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合、拡張属性の名前リストの長さを表す正の数が返される。 +失敗した場合、 \-1 が返され、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +に適切な値がセットされる。 .PP .\"O If the .\"O .I size @@ -207,43 +207,43 @@ system.posix_acl_access\\0system.posix_acl_default\\0 .\"O is set to .\"O .BR ERANGE . .I list -¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ +バッファの大きさ .I size -¤¬·ë²Ì¤òÊÝ»ý¤¹¤ë¤Î¤Ë½½Ê¬¤ÊÂ礭¤µ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が結果を保持するのに十分な大きさでない場合、 .I errno -¤Ë +に .B ERANGE -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .PP .\"O If extended attributes are not supported by the file system, or are disabled, .\"O .I errno .\"O is set to .\"O .BR ENOTSUP . -³Èĥ°À­¤¬¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -¤â¤·¤¯¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ +拡張属性がそのファイルシステムでサポートされていない場合、 +もしくは無効になっている場合、 .I errno -¤Ë +に .B ENOTSUP -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .PP .\"O The errors documented for the .\"O .BR stat (2) .\"O system call are also applicable here. .BR stat (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÀâÌÀ¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ï -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤âŬÍѤµ¤ì¤ë¡£ +システムコールの説明に書かれているエラーは +これらのシステムコールにも適用される。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These system calls have been available on Linux since kernel 2.4; .\"O glibc support is provided since version 2.3. -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë 2.4 °Ê¹ß¤Î Linux ¤ÇÍøÍѤǤ­¤ë¡£ -glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.3 °Ê¹ß¤Ç¹Ô¤ï¤ì¤Æ¤¤¤ë¡£ +これらのシステムコールはカーネル 2.4 以降の Linux で利用できる。 +glibc でのサポートはバージョン 2.3 以降で行われている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These system calls are Linux-specific. -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ +これらのシステムコールは Linux 独自である。 .\"O .\" .SH AUTHORS -.\" .SH Ãø¼Ô +.\" .SH 著者 .\"O .\" Andreas Gruenbacher, .\"O .\" .RI < a.gruenbacher@computer.org > .\"O .\" and the SGI XFS development team, @@ -251,11 +251,11 @@ glibc .\"O .\" Please send any bug reports or comments to these addresses. .\" Andreas Gruenbacher, .\" .RI < a.gruenbacher@computer.org > -.\" ¤È the SGI XFS development team, -.\" .RI < linux-xfs@oss.sgi.com >¡£ -.\" ¥Ð¥°¥ì¥Ý¡¼¥È¤ä¥³¥á¥ó¥È¤Ï¾åµ­¤Î¥¢¥É¥ì¥¹¤Þ¤ÇÁ÷¤Ã¤Æ²¼¤µ¤¤¡£ +.\" と the SGI XFS development team, +.\" .RI < linux-xfs@oss.sgi.com >。 +.\" バグレポートやコメントは上記のアドレスまで送って下さい。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getfattr (1), .BR setfattr (1), .BR getxattr (2), diff --git a/draft/man2/llseek.2 b/draft/man2/llseek.2 index 009214c1..37b9d2d4 100644 --- a/draft/man2/llseek.2 +++ b/draft/man2/llseek.2 @@ -33,19 +33,19 @@ .\" by Yuichi SATO .\" Updated & Modified Fri Dec 31 00:50:01 JST 2004 by Yuichi SATO .\" -.\"WORD: offset ¥ª¥Õ¥»¥Ã¥È -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ -.\"WORD: argument °ú¤­¿ô -.\"WORD: open ¥ª¡¼¥×¥ó -.\"WORD: support ¥µ¥Ý¡¼¥È +.\"WORD: offset オフセット +.\"WORD: descriptor ディスクリプター +.\"WORD: argument 引き数 +.\"WORD: open オープン +.\"WORD: support サポート .\" .TH LLSEEK 2 2007-06-01 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O _llseek \- reposition read/write file offset -_llseek \- ¥Õ¥¡¥¤¥ë¤ÎÆɤ߽ñ¤­¥ª¥Õ¥»¥Ã¥È¤Î°ÌÃÖ¤òÊѤ¨¤ë +_llseek \- ファイルの読み書きオフセットの位置を変える .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -55,7 +55,7 @@ _llseek \- .BI " unsigned int " whence ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR _llseek () .\"O function repositions the offset of the open file associated @@ -75,68 +75,68 @@ _llseek \- .\"O It returns the resulting file position in the argument .\"O .IR result . .BR _llseek () -´Ø¿ô¤Ï¡¢¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ (descriptor) +関数は、ファイル・ディスクリプター (descriptor) .I fd -¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥ª¥Õ¥»¥Ã¥È¤Î°ÌÃÖ¤ò¡¢ÁêÂÐŪ¤Ë +に関連づけられたオープンされたファイルのオフセットの位置を、相対的に .I (offset_high<<32) | offset_low -¥Ð¥¤¥È¤À¤±Êѹ¹¤¹¤ë¡£ -´ð½à¤È¤Ê¤ë°ÌÃÖ¤òɽ¤¹ +バイトだけ変更する。 +基準となる位置を表す .I whence -¤Ë¤Ï +には .BR SEEK_SET , .BR SEEK_CUR , .B SEEK_END -¤Î¤¤¤º¤ì¤«¤ò»ØÄꤷ¡¢¤½¤ì¤¾¤ì -¥Õ¥¡¥¤¥ë¤ÎÀèƬ¡¢¥Õ¥¡¥¤¥ë¤Î¸½ºß°ÌÃÖ¡¢ -¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤òɽ¤¹¡£ -·ë²Ì¤Î¥Õ¥¡¥¤¥ë°ÌÃÖ¤ò +のいずれかを指定し、それぞれ +ファイルの先頭、ファイルの現在位置、 +ファイルの最後を表す。 +結果のファイル位置を .I result -°ú¤­¿ô¤ËÊÖ¤¹¡£ +引き数に返す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O Upon successful completion, .\"O .BR _llseek () .\"O returns 0. .\"O Otherwise, a value of \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤·¤¿¾ì¹ç¤Ï¡¢ +成功した場合は、 .BR _llseek () -¤Ï 0 ¤òÊÖ¤¹¡£ -¤½¤¦¤Ç¤Ê¤ì¤Ð \-1 ¤È¤¤¤¦Ãͤ¬Ê֤ꡢ¥¨¥é¡¼¤ò¼¨¤¹ +は 0 を返す。 +そうでなれば \-1 という値が返り、エラーを示す .I errno -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O .I fd .\"O is not an open file descriptor. .I fd -¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ç¤Ê¤¤¡£ +がオープンされたファイル・ディスクリプターでない。 .TP .B EFAULT .\"O Problem with copying results to user space. -·ë²Ì¤ò¥æ¡¼¥¶¶õ´Ö¤Ë¥³¥Ô¡¼¤¹¤ë¤È¤­¤ËÌäÂ꤬¤¢¤Ã¤¿¡£ +結果をユーザ空間にコピーするときに問題があった。 .TP .B EINVAL .\"O .I whence .\"O is invalid. .I whence -¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +が不正である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This function is Linux-specific, and should not be used in programs .\"O intended to be portable. -¤³¤Î´Ø¿ô¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ +この関数は Linux 特有であり、移植性の必要なプログラムでは使用してはいけない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Glibc does not provide a wrapper for this system call; call it using .\"O .BR syscall (2). -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +glibc はこのシステムコールに対するラッパー関数を提供していない。 .BR syscall (2) -¤ò»È¤Ã¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¡£ +を使って呼び出すこと。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR lseek (2), .BR lseek64 (3) diff --git a/draft/man2/lookup_dcookie.2 b/draft/man2/lookup_dcookie.2 index ad4e8ae1..2e23bd37 100644 --- a/draft/man2/lookup_dcookie.2 +++ b/draft/man2/lookup_dcookie.2 @@ -30,115 +30,115 @@ .\" Updated 2003-09-30, Akihiro MOTOKI .\" Updated 2005-02-10, Akihiro MOTOKI .\" -.\"WORD: opaque identifier ÆâÉô¼±ÊÌ»Ò -.\"WORD: Linux specific Linux Æȼ« -.\"WORD: capability ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ +.\"WORD: opaque identifier 内部識別子 +.\"WORD: Linux specific Linux 独自 +.\"WORD: capability ケーパビリティ .\" .TH LOOKUP_DCOOKIE 2 2004-06-17 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O lookup_dcookie \- return a directory entry's path -lookup_dcookie \- ¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤Î¥Ñ¥¹Ì¾¤òÊÖ¤¹ +lookup_dcookie \- ディレクトリ・エントリのパス名を返す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .BI "int lookup_dcookie(u64 " cookie ", char *" buffer ", size_t " len ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Look up the full path of the directory entry specified by the value .\"O .IR cookie . .\"O The cookie is an opaque identifier uniquely identifying a particular .\"O directory entry. .\"O The buffer given is filled in with the full path of the directory entry. .I cookie -ÃͤǻØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤Î¥Õ¥ë¥Ñ¥¹Ì¾¤ò¸¡º÷¤¹¤ë¡£ -cookie ¤Ï¡¢¸Ä¡¹¤Î¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤ò¶èÊ̤¹¤ëÆâÉô¼±ÊÌ»Ò (opaque -identifier) ¤Ç¤¢¤ë¡£°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Ë¡¢¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤Î -¥Õ¥ë¥Ñ¥¹Ì¾¤¬³ÊǼ¤µ¤ì¤ë¡£ +値で指定されたディレクトリ・エントリのフルパス名を検索する。 +cookie は、個々のディレクトリ・エントリを区別する内部識別子 (opaque +identifier) である。引き数で指定されたバッファに、ディレクトリ・エントリの +フルパス名が格納される。 .\"O For .\"O .BR lookup_dcookie () .\"O to return successfully, .\"O the kernel must still hold a cookie reference to the directory entry. .BR lookup_dcookie () -¤¬Àµ¾ï¤ËÃͤòÊÖ¤¹¤¿¤á¤Ë¤Ï¡¢¥«¡¼¥Í¥ë¤¬¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤Ø¤Î cookie »²¾È¤ò -ÊÝ»ý¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +が正常に値を返すためには、カーネルがディレクトリ・エントリへの cookie 参照を +保持していなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR lookup_dcookie () .\"O returns the length of the path string copied into the buffer. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR lookup_dcookie () -¤Ï¥Ð¥Ã¥Õ¥¡¤Ë¥³¥Ô¡¼¤·¤¿¥Ñ¥¹Ê¸»úÎó¤ÎŤµ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +はバッファにコピーしたパス文字列の長さを返す。 +エラーの場合は \-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤòÀßÄꤹ¤ë¡£ +に適切な値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O The buffer was not valid. -¥Ð¥Ã¥Õ¥¡¤¬Í­¸ú¤Ç¤Ê¤«¤Ã¤¿¡£ +バッファが有効でなかった。 .TP .B EINVAL .\"O The kernel has no registered cookie/directory entry mappings at the .\"O time of lookup, or the cookie does not refer to a valid directory entry. -¸¡º÷¤¬¹Ô¤ï¤ì¤¿»þ¡¢cookie ¤È¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤Î¥Þ¥Ã¥Ô¥ó¥°¤¬¥«¡¼¥Í¥ë¤Ë -ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¤«¡¢¤Þ¤¿¤Ï cookie ¤¬Í­¸ú¤Ê¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤ò -»²¾È¤·¤Æ¤¤¤Ê¤¤¡£ +検索が行われた時、cookie とディレクトリ・エントリのマッピングがカーネルに +登録されていなかったか、または cookie が有効なディレクトリ・エントリを +参照していない。 .TP .B ENAMETOOLONG .\"O The name could not fit in the buffer. -̾Á°¤¬¥Ð¥Ã¥Õ¥¡¤ËÆþ¤êÀÚ¤é¤Ê¤«¤Ã¤¿¡£ +名前がバッファに入り切らなかった。 .TP .B ENOMEM .\"O The kernel could not allocate memory for the temporary buffer holding .\"O the path. -¥«¡¼¥Í¥ë¤¬¡¢¥Ñ¥¹Ì¾¤òÊÝ»ý¤¹¤ë°ì»þ¥Ð¥Ã¥Õ¥¡ÍѤΥá¥â¥ê¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤¬ -¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +カーネルが、パス名を保持する一時バッファ用のメモリを割り当てることが +できなかった。 .TP .B EPERM .\"O The process does not have the capability .\"O .B CAP_SYS_ADMIN .\"O required to look up cookie values. -¥×¥í¥»¥¹¤¬ cookie Ãͤò¸¡º÷¤¹¤ë¤Î¤ËɬÍפʥ±¡¼¥Ñ¥Ó¥ê¥Æ¥£ +プロセスが cookie 値を検索するのに必要なケーパビリティ .B CAP_SYS_ADMIN -¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +を持っていない。 .TP .B ERANGE .\"O The buffer was not large enough to hold the path of the directory entry. -¥Ð¥Ã¥Õ¥¡¤¬¡¢¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤Î¥Ñ¥¹Ì¾¤ò¼ýÍƤ¹¤ë¤Î¤Ë -½½Ê¬¤ÊÂ礭¤µ¤Ç¤Ï¤Ê¤«¤Ã¤¿¡£ +バッファが、ディレクトリ・エントリのパス名を収容するのに +十分な大きさではなかった。 .\"O .SH VERSIONS .\"O Since Linux 2.5.43. .\"O The .\"O .B ENAMETOOLONG .\"O error return was added in 2.5.70. -.SH ¥Ð¡¼¥¸¥ç¥ó -Linux 2.5.43 °Ê¹ß¤ÇÍøÍѤǤ­¤ë¡£ -¥¨¥é¡¼ +.SH バージョン +Linux 2.5.43 以降で利用できる。 +エラー .B ENAMETOOLONG -¤òÊÖ¤¹»ÅÍÍ¤Ï 2.5.70 ¤ÇÄɲ䵤줿¡£ +を返す仕様は 2.5.70 で追加された。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR lookup_dcookie () .\"O is Linux-specific. .BR lookup_dcookie () -¤Ï Linux Æȼ«¤Î´Ø¿ô¤Ç¤¢¤ë¡£ +は Linux 独自の関数である。 .\"O .SH "NOTES" -.SH Ãí°Õ +.SH 注意 .\"O .BR lookup_dcookie () .\"O is a special-purpose system call, currently used only by the oprofile profiler. .\"O It relies on a kernel driver to register cookies for directory entries. .BR lookup_dcookie () -¤ÏÆüì¤ÊÍÑÅӤ˻Ȥï¤ì¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¡¢¸½ºß¤Î¤È¤³¤í oprofile profiler ¤Ç -»È¤ï¤ì¤Æ¤¤¤ë¤À¤±¤Ç¤¢¤ë¡£ +は特殊な用途に使われるシステムコールで、現在のところ oprofile profiler で +使われているだけである。 .\"O The path returned may be suffixed by the string " (deleted)" if the directory .\"O entry has been removed. -»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤¬ºï½ü¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢ÊÖ¤µ¤ì¤ë¥Ñ¥¹Ì¾¤ÎºÇ¸å¤Ë +指定されたディレクトリ・エントリが削除されていた場合、返されるパス名の最後に " (deleted)" -¤È¤¤¤¦Ê¸»úÎó¤¬Éղ䵤ì¤ë¤³¤È¤¬¤¢¤ë¡£ +という文字列が付加されることがある。 diff --git a/draft/man2/lseek.2 b/draft/man2/lseek.2 index 96d81cb3..d709d728 100644 --- a/draft/man2/lseek.2 +++ b/draft/man2/lseek.2 @@ -47,18 +47,18 @@ .\" Updated 2005-02-24, Akihiro MOTOKI .\" Updated 2006-03-05, Akihiro MOTOKI, catch up to LDP v2.25 .\" -.\"WORD: end-of-file ¥Õ¥¡¥¤¥ë¤Î½ªÃ¼(end-of-file) +.\"WORD: end-of-file ファイルの終端(end-of-file) .\" .TH LSEEK 2 2010-09-11 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -lseek \- ¥Õ¥¡¥¤¥ë¤ÎÆɤ߽ñ¤­¥ª¥Õ¥»¥Ã¥È¤Î°ÌÃÖ¤òÊѤ¨¤ë -.SH ½ñ¼° +.SH 名前 +lseek \- ファイルの読み書きオフセットの位置を変える +.SH 書式 .B #include .br .B #include .sp .BI "off_t lseek(int " fd ", off_t " offset ", int " whence ); -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR lseek () .\"O function repositions the offset of the open file associated with the @@ -70,37 +70,37 @@ lseek \- .\"O .I whence .\"O as follows: .BR lseek () -´Ø¿ô¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ (descriptor) +関数は、ファイルディスクリプタ (descriptor) .I fd -¤ËÂбþ¤¹¤ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥ª¥Õ¥»¥Ã¥È¤ò¡¢ +に対応するオープンされたファイルのオフセットを、 .IR whence -¤Ë´ð¤Å¤­ +に基づき .I offset -°ú¤­¿ô¤Î°ÌÃ֤ذʲ¼¤Î¤è¤¦¤ËÊѹ¹¤¹¤ë: +引き数の位置へ以下のように変更する: .TP .B SEEK_SET .\"O The offset is set to .\"O .I offset .\"O bytes. -¥ª¥Õ¥»¥Ã¥È¤Ï +オフセットは .I offset -¥Ð¥¤¥È¤ËÀßÄꤵ¤ì¤ë¡£ +バイトに設定される。 .TP .B SEEK_CUR .\"O The offset is set to its current location plus .\"O .I offset .\"O bytes. -¥ª¥Õ¥»¥Ã¥È¤Ï¸½ºß°ÌÃÖ¤Ë +オフセットは現在位置に .I offset -¥Ð¥¤¥È¤ò­¤·¤¿°ÌÃ֤ˤʤ롣 +バイトを足した位置になる。 .TP .B SEEK_END .\"O The offset is set to the size of the file plus .\"O .I offset .\"O bytes. -¥ª¥Õ¥»¥Ã¥È¤Ï¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤Ë +オフセットはファイルのサイズに .I offset -¥Ð¥¤¥È¤ò­¤·¤¿°ÌÃ֤ˤʤ롣 +バイトを足した位置になる。 .PP .\"O The .\"O .BR lseek () @@ -110,14 +110,14 @@ lseek \- .\"O in the gap (a "hole") return null bytes (\(aq\\0\(aq) until .\"O data is actually written into the gap. .BR lseek () -´Ø¿ô¤Ï¡¢¥ª¥Õ¥»¥Ã¥È¤ò¥Õ¥¡¥¤¥ë¤ÎËöÈø¤ò±Û¤¨¤¿°ÌÃÖ¤ËÀßÄê¤Ç¤­¤ë -(⤷¡¢¤³¤ì¤Ë¤è¤ê¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤¬ÊѤï¤é¤Ê¤¤)¡£ -¤â¤·¥Ç¡¼¥¿¤¬¤³¤Î¥ª¥Õ¥»¥Ã¥È°ÌÃְʹߤ˽ñ¤­¹þ¤Þ¤ì¤¿¾ì¹ç¡¢ -´Ö¤Î¶õ·ä¤ÎÉôʬ ("·ê (hole)") ¤ÎÆɤ߽Ф·¤¬¤¢¤ë¤È¡¢ -¼ÂºÝ¤Ë¤½¤³¤Ë¥Ç¡¼¥¿¤ò½ñ¤­¹þ¤Þ¤ì¤ë¤Þ¤Ç¤Ï -NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤ÎÎó¤¬ÊÖ¤µ¤ì¤ë¡£ +関数は、オフセットをファイルの末尾を越えた位置に設定できる +(但し、これによりファイルのサイズが変わらない)。 +もしデータがこのオフセット位置以降に書き込まれた場合、 +間の空隙の部分 ("ç©´ (hole)") の読み出しがあると、 +実際にそこにデータを書き込まれるまでは +NULL バイト (\(aq\\0\(aq) の列が返される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O Upon successful completion, .\"O .BR lseek () .\"O returns the resulting offset location as measured in bytes from the @@ -125,20 +125,20 @@ NULL .\"O On error, the value \fI(off_t)\ \-1\fP is returned and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR lseek () -¤Ï·ë²Ì¤Î¥Õ¥¡¥¤¥ë°ÌÃÖ¤ò¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤«¤é¤Î¥Ð¥¤¥È¿ô¤ÇÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ÃÍ \fI(off_t)\ \-1\fP ¤¬ÊÖ¤µ¤ì¡¢ +は結果のファイル位置をファイルの先頭からのバイト数で返す。 +エラーの場合、値 \fI(off_t)\ \-1\fP が返され、 .I errno -¤Ë¥¨¥é¡¼¤¬»Ø¼¨¤µ¤ì¤ë¡£ +にエラーが指示される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O .I fd .\"O is not an open file descriptor. .I fd -¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +がオープンされたファイルディスクリプタでない。 .TP .B EINVAL .\"O .I whence @@ -151,48 +151,48 @@ NULL .\"O .\" Some systems may allow negative offsets for character devices .\"O .\" and/or for remote file systems. .I whence -¤¬ +が .BR SEEK_SET , .BR SEEK_CUR , .B SEEK_END -¤Î¤É¤ì¤Ç¤â¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢seek ¤Î·ë²Ì¡¢¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤¬Éé¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤«¡¢ -seek ²Äǽ¤Ê¥Ç¥Ð¥¤¥¹¤ÎËöÈø¤ò±Û¤¨¤Æ¤·¤Þ¤¦¡£ -.\" ¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¥­¥ã¥é¥¯¥¿¥Ç¥Ð¥¤¥¹¤ä¥ê¥â¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ËÂФ·¤Æ -.\" Éé¤Î¥ª¥Õ¥»¥Ã¥È¤¬µö¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +のどれでもない。 +または、seek の結果、ファイル・オフセットが負になってしまうか、 +seek 可能なデバイスの末尾を越えてしまう。 +.\" システムによってはキャラクタデバイスやリモートファイルシステムに対して +.\" 負のオフセットが許されるかもしれない。 .B EOVERFLOW .\"O .\" HP-UX 11 says EINVAL for this case (but POSIX.1 says EOVERFLOW) .\"O The resulting file offset cannot be represented in an .\"O .IR off_t . -.\" ¤³¤Î¾ì¹ç HP-UX 11 ¤Ï EINVAL ¤òÊÖ¤¹ (°ìÊý¡¢POSIX.1 ¤Ï EOVERFLOW ¤òÊÖ¤¹) -·ë²Ì¤Î¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤ò +.\" この場合 HP-UX 11 は EINVAL を返す (一方、POSIX.1 は EOVERFLOW を返す) +結果のファイル・オフセットを .I off_t -·¿¤Çɽ¸½¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +型で表現することができない。 .TP .B ESPIPE .\"O .I fd .\"O is associated with a pipe, socket, or FIFO. .I fd -¤¬¥Ñ¥¤¥×¡¢¥½¥±¥Ã¥È¡¢FIFO ¤ò»²¾È¤·¤Æ¤¤¤ë¡£ -.SH ½àµò +がパイプ、ソケット、FIFO を参照している。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O This document's use of .\"O .I whence .\"O is incorrect English, but maintained for historical reasons. -¤³¤Îʸ¾Ï¤Ç»ÈÍѤ·¤¿ +この文章で使用した .I whence -¤Ï±Ñ¸ì¤È¤·¤ÆÀµ¤·¤¯¤Ê¤¤¤¬¡¢ -Îò»ËŪÍýͳ¤Ë¤è¤ê¤½¤Î¤Þ¤Þ»È¤ï¤ì¤Æ¤¤¤ë¡£ +は英語として正しくないが、 +歴史的理由によりそのまま使われている。 .\"O Some devices are incapable of seeking and POSIX does not specify which .\"O devices must support .\"O .BR lseek (). -¤¤¤¯¤Ä¤«¤Î¥Ç¥Ð¥¤¥¹¤Ç¤Ï seek ¤¬¤Ç¤­¤Ê¤¤¡£ -POSIX ¤Ï¤É¤Î¥Ç¥Ð¥¤¥¹¤¬ +いくつかのデバイスでは seek ができない。 +POSIX はどのデバイスが .BR lseek () -¤ËÂбþ¤¹¤Ù¤­¤«¤Ïµ¬Äꤷ¤Æ¤¤¤Ê¤¤¡£ +に対応すべきかは規定していない。 .\"O On Linux, using .\"O .BR lseek () @@ -200,16 +200,16 @@ POSIX .\"O \fBESPIPE\fP. .\"O .\" Other systems return the number of written characters, .\"O .\" using SEEK_SET to set the counter. (Of written characters.) -Linux ¤Ç¤Ï¡¢ tty ¥Ç¥Ð¥¤¥¹¤Ë +Linux では、 tty デバイスに .BR lseek () -¤ò»ÈÍѤ¹¤ë¤È -\fBESPIPE\fP ¤òÊÖ¤¹¡£ -.\" ¾¤Î¥·¥¹¥Æ¥à¤Ç¤Ï½ñ¤­¹þ¤Þ¤ì¤¿Ê¸»ú¤Î¿ô¤òÊÖ¤·¡¢ -.\" SEEK_SET ¤òÍѤ¤¤Æ¥«¥¦¥ó¥¿¤òÀßÄꤹ¤ë¡£ (½ñ¤­¹þ¤Þ¤ì¤¿Ê¸»ú¤Î¡£) +を使用すると +\fBESPIPE\fP を返す。 +.\" 他のシステムでは書き込まれた文字の数を返し、 +.\" SEEK_SET を用いてカウンタを設定する。 (書き込まれた文字の。) .\"O When converting old code, substitute values for \fIwhence\fP with the .\"O following macros: -¸Å¤¤¥³¡¼¥É¤òÊÑ´¹¤¹¤ë»þ¤Ï \fIwhence\fP ¤ÎÃͤò°Ê²¼¤Î¥Þ¥¯¥í¤ËÃÖ¤­´¹¤¨¤ë¤³¤È: +古いコードを変換する時は \fIwhence\fP の値を以下のマクロに置き換えること: .TS c c l l. @@ -224,8 +224,8 @@ L_XTND SEEK_END .\" .PP .\" .\"O SVr1-3 returns \fIlong\fP instead of \fIoff_t\fP, .\" .\"O (ancient) BSD returns \fIint\fP. -.\" ÊÖ¤êÃͤη¿¤Ï¡¢SVr1-3 ¤Ç¤Ï \fIoff_t\fP ¤Ç¤Ï¤Ê¤¯ \fIlong\fP ¤Ç¤¢¤ê¡¢ -.\" (¸Å¤¤) BSD ¤Ç¤Ï \fIint\fP ¤Ç¤¢¤ë¡£ +.\" 返り値の型は、SVr1-3 では \fIoff_t\fP ではなく \fIlong\fP であり、 +.\" (古い) BSD では \fIint\fP である。 .PP .\"O Note that file descriptors created by .\"O .BR dup (2) @@ -234,12 +234,12 @@ L_XTND SEEK_END .\"O share the current file position pointer, so seeking on such files may be .\"O subject to race conditions. .BR dup (2) -¤ä +や .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢¸½ºß¤Î¥Õ¥¡¥¤¥ë°ÌÃ֥ݥ¤¥ó¥¿ -(current file position pointer) ¤ò¶¦Í­¤·¤Æ¤¤¤ë¤Î¤Ç¡¢ -¤³¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¤Ç°ÜÆ°¤ò¹Ô¤¦¤È¶¥¹ç¾õÂÖ¤ò°ú¤­µ¯¤³¤¹²ÄǽÀ­¤¬¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +で作成されたファイルディスクリプタは、現在のファイル位置ポインタ +(current file position pointer) を共有しているので、 +このようなファイルで移動を行うと競合状態を引き起こす可能性がある。 +.SH 関連項目 .BR dup (2), .BR fork (2), .BR open (2), diff --git a/draft/man2/madvise.2 b/draft/man2/madvise.2 index abf0bb75..18bc9a6e 100644 --- a/draft/man2/madvise.2 +++ b/draft/man2/madvise.2 @@ -37,10 +37,10 @@ .TH MADVISE 2 2008-04-22 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O madvise \- give advice about use of memory -.SH ̾Á° -madvise \- ¥á¥â¥êÍøÍѤ˴ؤ¹¤ë¥¢¥É¥Ð¥¤¥¹¤òÍ¿¤¨¤ë +.SH 名前 +madvise \- メモリ利用に関するアドバイスを与える .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int madvise(void *" addr ", size_t " length ", int " advice ); @@ -48,15 +48,15 @@ madvise \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR madvise (): _BSD_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR madvise () .\"O system call advises the kernel about how to handle paging input/output in @@ -75,76 +75,76 @@ _BSD_SOURCE .\"O may influence its performance. .\"O The kernel is free to ignore the advice. .BR madvise () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¥¢¥É¥ì¥¹ +システムコールは、アドレス .I addr -¤«¤é¤Ï¤¸¤Þ¤ë +からはじまる .I length -¥Ð¥¤¥È¤Î¥á¥â¥ê¥Ö¥í¥Ã¥¯¤Î¥Ú¡¼¥¸¥ó¥°Æþ½ÐÎϤò¤É¤¦°·¤¨¤ÐÎɤ¤¤«¡¢ -¥«¡¼¥Í¥ë¤Ë¥¢¥É¥Ð¥¤¥¹¤¹¤ë¡£ -¤³¤ì¤òÍѤ¤¤ë¤È¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é¥«¡¼¥Í¥ë¤Ë¡¢ -¥Þ¥Ã¥×¤µ¤ì¤¿¥á¥â¥ê¤ä¶¦Í­¥á¥â¥ê¤ò¤É¤Î¤è¤¦¤Ë°·¤Ã¤Æ¤Û¤·¤¤¤«ÅÁ¤¨¤ë¤³¤È¤¬¤Ç¤­¡¢ -¥«¡¼¥Í¥ë¤Ï¤½¤ì¤Ë±þ¤¸¤ÆÀèÆɤߤ䥭¥ã¥Ã¥·¥å¤Ê¤É¤ÎŬÀڤʼêË¡¤òÁªÂò¤Ç¤­¤ë¡£ -¤³¤Î¥³¡¼¥ë¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÆ°ºî¤½¤Î¤â¤Î¤Ë¤Ï±Æ¶Á¤·¤Ê¤¤ +バイトのメモリブロックのページング入出力をどう扱えば良いか、 +カーネルにアドバイスする。 +これを用いると、 +アプリケーションからカーネルに、 +マップされたメモリや共有メモリをどのように扱ってほしいか伝えることができ、 +カーネルはそれに応じて先読みやキャッシュなどの適切な手法を選択できる。 +このコールはアプリケーションの動作そのものには影響しない .RB ( MADV_DONTNEED -¤Î¾ì¹ç¤ÏÊÌ) ¤¬¡¢ -À­Ç½¤Ë¤Ï±Æ¶Á¤·¤¦¤ë¡£ -¤Ê¤ª¤³¤Î¥¢¥É¥Ð¥¤¥¹¤ò¼õ¤±Æþ¤ì¤ë¤«¤É¤¦¤«¤Ï¥«¡¼¥Í¥ë¤ËǤ¤µ¤ì¤ë¡£ +の場合は別) が、 +性能には影響しうる。 +なおこのアドバイスを受け入れるかどうかはカーネルに任される。 .LP .\"O The advice is indicated in the .\"O .I advice .\"O argument which can be -¥¢¥É¥Ð¥¤¥¹¤Ï°ú¤­¿ô +アドバイスは引き数 .I advice -¤Ë¤è¤Ã¤ÆÍ¿¤¨¤ë¡£°Ê²¼¤Î¤¤¤º¤ì¤«¤ò»ØÄê¤Ç¤­¤ë¡£ +によって与える。以下のいずれかを指定できる。 .TP .B MADV_NORMAL .\"O No special treatment. .\"O This is the default. -ÆÃÊ̤ʰ·¤¤¤Ï¹Ô¤ï¤Ê¤¤¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£ +特別な扱いは行わない。これがデフォルトである。 .TP .B MADV_RANDOM .\"O Expect page references in random order. .\"O (Hence, read ahead may be less useful than normally.) -¥Ú¡¼¥¸»²¾È¤Ï¥é¥ó¥À¥à¤Ê½ç½ø¤Ç¹Ô¤ï¤ì¤½¤¦¤À¡£ -(¤·¤¿¤¬¤Ã¤Æ¡¢ÀèÆɤߤϤ¢¤Þ¤ê¸ú²Ì¤¬¤Ê¤µ¤½¤¦¤À¡£) +ページ参照はランダムな順序で行われそうだ。 +(したがって、先読みはあまり効果がなさそうだ。) .TP .B MADV_SEQUENTIAL .\"O Expect page references in sequential order. .\"O (Hence, pages in the given range can be aggressively read ahead, .\"O and may be freed soon after they are accessed.) -¥Ú¡¼¥¸»²¾È¤Ï¥·¡¼¥±¥ó¥·¥ã¥ë¤Ê½ç½ø¤Ç¹Ô¤ï¤ì¤½¤¦¤À¡£ -(¤·¤¿¤¬¤Ã¤ÆÍ¿¤¨¤¿ÈϰϤΥڡ¼¥¸¤ÏÀѶËŪ¤ËÀèÆɤߤ·¤Æ¤ª¤¯¤ÈÎɤ¤¤À¤í¤¦¡£ -¤Þ¤¿¥¢¥¯¥»¥¹¤¬½ª¤ï¤Ã¤¿¤é®¤ä¤«¤Ë²òÊü¤·¤ÆÎɤ¤¡£) +ページ参照はシーケンシャルな順序で行われそうだ。 +(したがって与えた範囲のページは積極的に先読みしておくと良いだろう。 +またアクセスが終わったら速やかに解放して良い。) .TP .B MADV_WILLNEED .\"O Expect access in the near future. .\"O (Hence, it might be a good idea to read some pages ahead.) -¶á¤¤¾­Íè¤Ë¥¢¥¯¥»¥¹¤µ¤ì¤½¤¦¤À¡£ -(¤·¤¿¤¬¤Ã¤Æ¤³¤ì¤é¤Î¥Ú¡¼¥¸¤òº£¤Î¤¦¤Á¤ËÀèÆɤߤ·¤Æ¤ª¤¯¤È¤¤¤¤¤À¤í¤¦¡£) +近い将来にアクセスされそうだ。 +(したがってこれらのページを今のうちに先読みしておくといいだろう。) .TP .B MADV_DONTNEED .\"O Do not expect access in the near future. .\"O (For the time being, the application is finished with the given range, .\"O so the kernel can free resources associated with it.) -¤·¤Ð¤é¤¯¥¢¥¯¥»¥¹¤Ï¤Ê¤µ¤½¤¦¤À¡£ -(¸½»þÅÀ¤Ç¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÏÍ¿¤¨¤¿ÈϰϤνèÍý¤ò½ª¤¨¤Æ¤¤¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¥«¡¼¥Í¥ë¤Ï¤³¤ì¤Ë´ØÏ¢¤¹¤ë¥ê¥½¡¼¥¹¤ò²òÊü¤·¤ÆÎɤ¤¡£) +しばらくアクセスはなさそうだ。 +(現時点でアプリケーションは与えた範囲の処理を終えている。 +したがってカーネルはこれに関連するリソースを解放して良い。) .\"O Subsequent accesses of pages in this range will succeed, but will result .\"O either in reloading of the memory contents from the underlying mapped file .\"O (see .\"O .BR mmap (2)) .\"O or zero-fill-on-demand pages for mappings .\"O without an underlying file. -¤³¤ì°Ê¹ß¤³¤ÎÈϰϤΥڡ¼¥¸¤Ø¤Î¥¢¥¯¥»¥¹¤¬¤¢¤ë¤È¡¢ -À®¸ù¤Ï¤¹¤ë¤¬¡¢¥á¥â¥ê¤ÎÆâÍƤò¥Þ¥Ã¥×¸µ¤Î¥Õ¥¡¥¤¥ë¤«¤é¥í¡¼¥É¤·Ä¾¤¹¤³¤È¤Ë¤Ê¤ë +これ以降この範囲のページへのアクセスがあると、 +成功はするが、メモリの内容をマップ元のファイルからロードし直すことになる .RB ( mmap (2) -¤ò¸«¤è) ¤«¡¢ -¤Þ¤¿¤Ï¸µ¥Õ¥¡¥¤¥ë¤¬¤Ê¤¤¥Þ¥Ã¥×¥Ú¡¼¥¸¤Ç¤Ï -¥¢¥¯¥»¥¹¤¬¤¢¤Ã¤¿¤È¤­¤Ë 0 Ëä¤á¤¬¹Ô¤ï¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ +を見よ) か、 +または元ファイルがないマップページでは +アクセスがあったときに 0 埋めが行われることになる。 .TP .\"O .BR MADV_REMOVE " (Since Linux 2.6.16)" -.BR MADV_REMOVE " (Linux 2.6.16 °Ê¹ß)" +.BR MADV_REMOVE " (Linux 2.6.16 以降)" .\"O Free up a given range of pages .\"O and its associated backing store. .\"O Currently, @@ -152,20 +152,20 @@ _BSD_SOURCE .\"O only shmfs/tmpfs supports this; other file systems return with the .\"O error .\"O .BR ENOSYS . -»ØÄꤵ¤ì¤¿ÈϰϤΥڡ¼¥¸¤È´ØÏ¢¤¹¤ë¥Ð¥Ã¥­¥ó¥°¥¹¥È¥¢¤ò²òÊü¤¹¤ë¡£ -¸½ºß¤Î¤È¤³¤í¡¢ +指定された範囲のページと関連するバッキングストアを解放する。 +現在のところ、 .\" 2.6.18-rc5 -shmfs/tmpfs ¤À¤±¤¬¤³¤ì¤ËÂбþ¤·¤Æ¤¤¤ë¡£ -¾¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Ï +shmfs/tmpfs だけがこれに対応している。 +他のファイルシステムでは .B ENOSYS -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .\" Databases want to use this feature to drop a section of their .\" bufferpool (shared memory segments) - without writing back to .\" disk/swap space. This feature is also useful for supporting .\" hot-plug memory on UML. .TP .\"O .BR MADV_DONTFORK " (Since Linux 2.6.16)" -.BR MADV_DONTFORK " (Linux 2.6.16 °Ê¹ß)" +.BR MADV_DONTFORK " (Linux 2.6.16 以降)" .\" See http://lwn.net/Articles/171941/ .\"O Do not make the pages in this range available to the child after a .\"O .BR fork (2). @@ -175,13 +175,13 @@ shmfs/tmpfs .\"O (Such page relocations cause problems for hardware that .\"O DMAs into the page(s).) .BR fork (2) -¤¬¹Ô¤ï¤ì¤¿¸å¡¢»ØÄꤵ¤ì¤¿ÈϰϤΥڡ¼¥¸¤ò»Ò¥×¥í¥»¥¹¤¬ÍøÍѤǤ­¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£ -¤³¤Îµ¡Ç½¤Ï¡¢½ñ¤­¹þ¤ß»þ¥³¥Ô¡¼ (copy-on-write) Êý¼°¤Ç¡¢ +が行われた後、指定された範囲のページを子プロセスが利用できないようにする。 +この機能は、書き込み時コピー (copy-on-write) 方式で、 .BR fork (2) -¤Î¸å¤Ç¿Æ¥×¥í¥»¥¹¤¬¥Ú¡¼¥¸¤Ë½ñ¤­¹þ¤ß¤ò¹Ô¤Ã¤¿¾ì¹ç¤Ë -¥Ú¡¼¥¸¤ÎʪÍý°ÌÃÖ¤¬ÊѲ½¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤Î¤ËÍ­¸ú¤Ç¤¢¤ë -(¥Ú¡¼¥¸¤ÎºÆÇÛÃ֤ϥϡ¼¥É¥¦¥§¥¢¤¬¤½¤Î¥Ú¡¼¥¸¤Ë DMA žÁ÷¤ò¹Ô¤¦¤è¤¦¤Ê¾ì¹ç¤Ë -ÌäÂê¤òµ¯¤³¤¹¤³¤È¤¬¤¢¤ë)¡£ +の後で親プロセスがページに書き込みを行った場合に +ページの物理位置が変化しないようにするのに有効である +(ページの再配置はハードウェアがそのページに DMA 転送を行うような場合に +問題を起こすことがある)。 .\" [PATCH] madvise MADV_DONTFORK/MADV_DOFORK .\" Currently, copy-on-write may change the physical address of .\" a page even if the user requested that the page is pinned in @@ -205,18 +205,18 @@ shmfs/tmpfs .\" "Tweaks to madvise() and posix_fadvise()", 14 Feb 2006 .TP .\"O .BR MADV_DOFORK " (Since Linux 2.6.16)" -.BR MADV_DOFORK " (Linux 2.6.16 °Ê¹ß)" +.BR MADV_DOFORK " (Linux 2.6.16 以降)" .\"O Undo the effect of .\"O .BR MADV_DONTFORK , .\"O restoring the default behavior, whereby a mapping is inherited across .\"O .BR fork (2). .B MADV_DONTFORK -¤Î±Æ¶Á¤ò¼è¤ê¾Ã¤·¡¢¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤ËÌ᤹¡£ -¤Ä¤Þ¤ê¡¢ +の影響を取り消し、デフォルトの動作に戻す。 +つまり、 .BR fork (2) -¤ÎÁ°¸å¤Ç¥Þ¥Ã¥Ô¥ó¥°¤Ï·Ñ¾µ¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +の前後でマッピングは継承されるようになる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success .\"O .BR madvise () .\"O returns zero. @@ -224,20 +224,20 @@ shmfs/tmpfs .\"O .I errno .\"O is set appropriately. .BR madvise () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬µ¯¤³¤ë¤È \-1 ¤òÊÖ¤·¡¢ +は成功すると 0 を返す。 +エラーが起こると \-1 を返し、 .I errno -¤òŬÀÚ¤ÊÃͤËÀßÄꤹ¤ë¡£ +を適切な値に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EAGAIN .\"O A kernel resource was temporarily unavailable. -²¿¤é¤«¤Î¥«¡¼¥Í¥ë¥ê¥½¡¼¥¹¤¬°ì»þŪ¤ËÍøÍѤǤ­¤Ê¤«¤Ã¤¿¡£ +何らかのカーネルリソースが一時的に利用できなかった。 .TP .B EBADF .\"O The map exists, but the area maps something that isn't a file. -»ØÄꤷ¤¿¥Þ¥Ã¥×¤Ï¸ºß¤¹¤ë¤¬¡¢¥Õ¥¡¥¤¥ë¤Ç¤Ï¤Ê¤¤¤È¤³¤í¤ò¥Þ¥Ã¥×¤·¤Æ¤¤¤ë¡£ +指定したマップは存在するが、ファイルではないところをマップしている。 .TP .B EINVAL .\"O The value @@ -252,14 +252,14 @@ shmfs/tmpfs .\"O to release locked or shared pages (with .\"O .BR MADV_DONTNEED ). .I len -¤ÎÃͤ¬Éé¡¢ +の値が負、 .I addr -¤¬¥Ú¡¼¥¸¶­³¦¤Ç¤Ê¤¤¡¢ +がページ境界でない、 .I advice -¤¬Àµ¤·¤¤ÃͤǤʤ¤¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¥í¥Ã¥¯¤µ¤ì¤¿¥Ú¡¼¥¸¤ä¶¦Í­¥Ú¡¼¥¸¤ò +が正しい値でない、 +アプリケーションがロックされたページや共有ページを .RB ( MADV_DONTNEED -¤Ç) ²òÊü¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¡¢¤Ê¤É¡£ +で) 解放しようとしている、など。 .TP .B EIO .\"O (for @@ -267,24 +267,24 @@ shmfs/tmpfs .\"O Paging in this area would exceed the process's .\"O maximum resident set size. .RB ( MADV_WILLNEED -¤Î¾ì¹ç) ¤³¤ÎÈϰϤΥڡ¼¥¸¥ó¥°¤ò¹Ô¤¦¤È¡¢ -¥×¥í¥»¥¹¤Î RSS (resident set size) ¤ÎºÇÂçÃͤò±Û¤¨¤Æ¤·¤Þ¤¦¡£ -.\"nakano RSS ¤ÏÌõ¸ì¤¬¤¢¤ê¤Þ¤·¤¿¤Ã¤±? +の場合) この範囲のページングを行うと、 +プロセスの RSS (resident set size) の最大値を越えてしまう。 +.\"nakano RSS は訳語がありましたっけ? .TP .B ENOMEM .\"O (for .\"O .BR MADV_WILLNEED ) .\"O Not enough memory: paging in failed. .RB ( MADV_WILLNEED -¤Î¾ì¹ç) ¥á¥â¥ê¤¬Â­¤ê¤º¡¢¥Ú¡¼¥¸¥ó¥°¤Ë¼ºÇÔ¤·¤¿¡£ +の場合) メモリが足りず、ページングに失敗した。 .TP .B ENOMEM .\"O Addresses in the specified range are not currently .\"O mapped, or are outside the address space of the process. -»ØÄꤷ¤¿ÈϰϤΥ¢¥É¥ì¥¹¤¬¡¢¸½ºß¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤¢¤ë¤¤¤Ï¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ÎÆâÉô¤Ë¤Ê¤¤¡£ +指定した範囲のアドレスが、現在マップされていない。 +あるいはプロセスのアドレス空間の内部にない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1b. .\"O POSIX.1-2001 describes .\"O .BR posix_madvise (3) @@ -296,16 +296,16 @@ POSIX.1b. .\"O There is a similar .\"O .BR posix_fadvise (2) .\"O for file access. -POSIX.1-2001 ¤Ç¤Ï¡¢ +POSIX.1-2001 では、 .BR posix_madvise (3) .\" FIXME . Write a posix_fadvise(3) page. -¤ò +を .B POSIX_MADV_NORMAL -¤Ê¤É¤ÎÄê¿ô¤È¤È¤â¤Ëµ­½Ò¤·¤Æ¤¤¤¿ -(¤½¤ì¤¾¤ì¤Î¿¶¤ëÉñ¤¤¤Ï¤³¤³¤Ç½Ò¤Ù¤¿¤â¤Î¤Ë¶á¤¤)¡£ -¥Õ¥¡¥¤¥ë¥¢¥¯¥»¥¹¤ËÂФ·¤Æ¤â +などの定数とともに記述していた +(それぞれの振る舞いはここで述べたものに近い)。 +ファイルアクセスに対しても .BR posix_fadvise (2) -¤È¤¤¤¦Îà»÷¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +という類似の関数が存在する。 .\"O .BR MADV_REMOVE , .\"O .BR MADV_DONTFORK , @@ -315,11 +315,11 @@ POSIX.1-2001 .BR MADV_REMOVE , .BR MADV_DONTFORK , .B MADV_DOFORK -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ +は Linux 固有である。 .\"O .SH NOTES .\"O .SS "Linux Notes" -.SH Ãí°Õ -.SS "Linux ¤Ç¤ÎÃí°Õ" +.SH 注意 +.SS "Linux での注意" .\"O .LP .\"O The current Linux implementation (2.4.0) views this system call .\"O more as a command than as advice and hence may return an error @@ -327,11 +327,11 @@ POSIX.1-2001 .\"O advice. .\"O (See the ERRORS description above.) .\"O This is nonstandard behavior. -¸½ºß¤Î Linux ¤Î¼ÂÁõ (2.4.0) ¤Ç¤Ï¡¢ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¥¢¥É¥Ð¥¤¥¹¤È¤¤¤¦¤è¤ê¤ÏÌ¿Îá¤È¸«¤Æ¤¤¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¤³¤Î¥¢¥É¥Ð¥¤¥¹¤ËÂФ·¤ÆÄ̾ï¹Ô¤ï¤ì¤ëÆ°ºî¤¬ÉÔ²Äǽ¤Ê¾ì¹ç¤Ï¡¢ -¥¨¥é¡¼¤òÊÖ¤¹¤³¤È¤¬¤¢¤ë (¾åµ­¤Î ¥¨¥é¡¼ ¤Îµ­½Ò¤ò»²¾È)¡£ -¤³¤Î¿¶Éñ¤¤¤Ïɸ½à¤È¤Ï°Û¤Ê¤ë¡£ +現在の Linux の実装 (2.4.0) では、 +このシステムコールをアドバイスというよりは命令と見ている。 +したがってこのアドバイスに対して通常行われる動作が不可能な場合は、 +エラーを返すことがある (上記の エラー の記述を参照)。 +この振舞いは標準とは異なる。 .LP .\"O The Linux implementation requires that the address .\"O .I addr @@ -344,27 +344,27 @@ POSIX.1-2001 .\"O ignores them and applies the call to the rest (but returns .\"O .B ENOMEM .\"O from the system call, as it should). -Linux ¤Î¼ÂÁõ¤Ç¤Ï +Linux の実装では .I addr -¤Î¥¢¥É¥ì¥¹¤Ï¥Ú¡¼¥¸¶­³¦¤ÎÃͤǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤Þ¤¿ +のアドレスはページ境界の値でなければならない。また .I length -¤Ï 0 ¤Ç¤¢¤Ã¤Æ¤â¹½¤ï¤Ê¤¤¡£ -¤Þ¤¿ Linux ÈǤΠ+は 0 であっても構わない。 +また Linux 版の .BR madvise () -¤Ç¤Ï¡¢»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹ÈϰϤ˥ޥåפµ¤ì¤Æ¤¤¤Ê¤¤Éôʬ¤¬¤¢¤ë¤È¡¢ -¤³¤ì¤é¤ò̵»ë¤·¤Æ»Ä¤ê¤ÎÉôʬ¤Ë¥¢¥É¥Ð¥¤¥¹¤òŬÍѤ¹¤ë -(¤·¤«¤·¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ·¤Æ¤Ï¤Á¤ã¤ó¤È +では、指定されたアドレス範囲にマップされていない部分があると、 +これらを無視して残りの部分にアドバイスを適用する +(しかしシステムコールに対してはちゃんと .B ENOMEM -¤òÊÖ¤¹)¡£ +を返す)。 .\"O .\" .SH HISTORY -.\" .SH Îò»Ë +.\" .SH 歴史 .\"O .\" The .\"O .\" .BR madvise () .\"O .\" function first appeared in 4.4BSD. .\" .BR madvise () -.\" ´Ø¿ô¤Ï 4.4BSD ¤ÇºÇ½é¤ËÅо줷¤¿¡£ +.\" 関数は 4.4BSD で最初に登場した。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getrlimit (2), .BR mincore (2), .BR mmap (2), diff --git a/draft/man2/mbind.2 b/draft/man2/mbind.2 index 77e0e2fe..6e6f15b2 100644 --- a/draft/man2/mbind.2 +++ b/draft/man2/mbind.2 @@ -30,11 +30,11 @@ .\" .TH MBIND 2 2008-08-15 Linux "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mbind \- Set memory policy for a memory range -mbind \- ¥á¥â¥êÎΰè¤ËÂФ·¤Æ¥á¥â¥ê¥Ý¥ê¥·¡¼¤òÀßÄꤹ¤ë +mbind \- メモリ領域に対してメモリポリシーを設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B "#include " .sp @@ -43,10 +43,10 @@ mbind \- .BI " unsigned " flags ); .sp .\"O Link with \fI\-lnuma\fP. -\fI\-lnuma\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lnuma\fP でリンクする。 .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR mbind () .\"O sets the NUMA memory policy, .\"O which consists of a policy mode and zero or more nodes, @@ -56,14 +56,14 @@ mbind \- .\"O .I len .\"O bytes. .BR mbind () -¤Ï¡¢ +は、 .I addr -¤«¤é»Ï¤Þ¤ëŤµ +から始まる長さ .I len -¥Ð¥¤¥È¤ÎÈϰϤΥá¥â¥ê¤Ë NUMA ¥á¥â¥ê¥Ý¥ê¥·¡¼¤òÀßÄꤹ¤ë¡£ -NUMA ¥Ý¥ê¥·¡¼¤Ï¥Ý¥ê¥·¡¼¥â¡¼¥É¤È 0 ¸Ä°Ê¾å¤Î¥Î¡¼¥É¤«¤é¹½À®¤µ¤ì¤ë¡£ +バイトの範囲のメモリに NUMA メモリポリシーを設定する。 +NUMA ポリシーはポリシーモードと 0 個以上のノードから構成される。 .\"O The memory policy defines from which node memory is allocated. -¥á¥â¥ê¥Ý¥ê¥·¡¼¤Ï¤É¤Î¥Î¡¼¥É¤«¤é¥á¥â¥ê¤ò³ä¤êÅö¤Æ¤ë¤«¤ò·èÄꤹ¤ë¡£ +メモリポリシーはどのノードからメモリを割り当てるかを決定する。 .\"O If the memory range specified by the .\"O .IR addr " and " len @@ -79,20 +79,20 @@ NUMA .\"O flag, pages will only be allocated according to the specified .\"O policy when the application writes [stores] to the page. .I addr -¤È +と .I len -¤Ç»ØÄꤵ¤ì¤¿¥á¥â¥êÈϰϤˡ¢ -¥á¥â¥ê¤Î¡Ö̵̾¡×Îΰè \(em +で指定されたメモリ範囲に、 +メモリの「無名」領域 \(em .B MAP_ANONYMOUS -ÉÕ¤­¤Î +付きの .BR mmap (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤ÆºîÀ®¤µ¤ì¤¿¥á¥â¥êÎΰè \(em ¤ä +システムコールを使って作成されたメモリ領域 \(em や .B MAP_PRIVATE -ÉÕ¤­¤Î +付きの .BR mmap (2) -¤ò»È¤Ã¤Æ¥Þ¥Ã¥×¤µ¤ì¤¿¥á¥â¥ê¥Þ¥Ã¥×¡¦¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¥Ú¡¼¥¸¤¬»ØÄꤵ¤ì¤¿¥Ý¥ê¥·¡¼¤Ë´ð¤Å¤¤¤Æ³ä¤êÅö¤Æ¤é¤ì¤ë¤Î¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó -¤¬¤½¤Î¥Ú¡¼¥¸¤Ø¤Î½ñ¤­¹þ¤ß (¥Ç¡¼¥¿¤Î³ÊǼ) ¤ò¹Ô¤Ã¤¿»þ¤À¤±¤Ç¤¢¤ë¡£ +を使ってマップされたメモリマップ・ファイルが含まれている場合、 +ページが指定されたポリシーに基づいて割り当てられるのは、アプリケーション +がそのページへの書き込み (データの格納) を行った時だけである。 .\"O For anonymous regions, an initial read access will use a shared .\"O page in the kernel containing all zeros. .\"O For a file mapped with @@ -101,15 +101,15 @@ NUMA .\"O process policy of the process that causes the page to be allocated. .\"O This may not be the process that called .\"O .BR mbind (). -̵̾Îΰè¤Î¾ì¹ç¡¢ºÇ½é¤ÎÆɤ߽Ф·¥¢¥¯¥»¥¹¤ÎºÝ¤Ë¤Ï -¥«¡¼¥Í¥ëÆâ¤ÎÁ´¥Ç¡¼¥¿¤¬ 0 ¤Ç¤¢¤ë¶¦Í­¥Ú¡¼¥¸¤¬»ÈÍѤµ¤ì¤ë¡£ +無名領域の場合、最初の読み出しアクセスの際には +カーネル内の全データが 0 である共有ページが使用される。 .B MAP_PRIVATE -¤Ç¥Þ¥Ã¥×¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¡¢ºÇ½é¤ÎÆɤ߽Ф·¥¢¥¯¥»¥¹¤¬¤¢¤ë¤È¡¢ -¥Ú¡¼¥¸³ä¤êÅö¤Æ¤¬È¯À¸¤¹¤ë¤­¤Ã¤«¤±¤È¤Ê¤Ã¤¿¥×¥í¥»¥¹¤Î¥Ç¥Õ¥©¥ë¥È¥Ý¥ê¥·¡¼ -¤Ë¤·¤¿¤¬¤Ã¤Æ¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤¬¹Ô¤ï¤ì¤ë¡£ -¥Ú¡¼¥¸³ä¤êÅö¤Æ¤Î¤­¤Ã¤«¤±¤È¤Ê¤Ã¤¿¥×¥í¥»¥¹¤Ï¡¢ +でマップされたファイルの場合、最初の読み出しアクセスがあると、 +ページ割り当てが発生するきっかけとなったプロセスのデフォルトポリシー +にしたがってページの割り当てが行われる。 +ページ割り当てのきっかけとなったプロセスは、 .BR mbind () -¤ò¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ÈƱ¤¸¤È¤Ï¸Â¤é¤Ê¤¤¡£ +を呼び出したプロセスと同じとは限らない。 .\"O The specified policy will be ignored for any .\"O .B MAP_SHARED @@ -118,14 +118,14 @@ NUMA .\"O of the process that caused the page to be allocated. .\"O Again, this may not be the process that called .\"O .BR mbind (). -»ØÄꤵ¤ì¤¿¥á¥â¥êÈÏ°ÏÆâ¤Ë¤¢¤ë +指定されたメモリ範囲内にある .B MAP_SHARED -¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ç¤Ï»ØÄꤵ¤ì¤¿¥Ý¥ê¥·¡¼¤Ï̵»ë¤µ¤ì¡¢ -¥Ú¡¼¥¸³ä¤êÅö¤Æ¤¬È¯À¸¤¹¤ë¤­¤Ã¤«¤±¤È¤Ê¤Ã¤¿¥×¥í¥»¥¹¤Î¥Ç¥Õ¥©¥ë¥È¥Ý¥ê¥·¡¼¤Ë -¤·¤¿¤¬¤Ã¤Æ¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤¬¹Ô¤ï¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ -·«¤êÊÖ¤·¤Ë¤Ê¤ë¤¬¡¢¥Ú¡¼¥¸³ä¤êÅö¤Æ¤Î¤­¤Ã¤«¤±¤È¤Ê¤Ã¤¿¥×¥í¥»¥¹¤Ï¡¢ +のマッピングでは指定されたポリシーは無視され、 +ページ割り当てが発生するきっかけとなったプロセスのデフォルトポリシーに +したがってページの割り当てが行われることになる。 +繰り返しになるが、ページ割り当てのきっかけとなったプロセスは、 .BR mbind () -¤ò¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ÈƱ¤¸¤È¤Ï¸Â¤é¤Ê¤¤¡£ +を呼び出したプロセスと同じとは限らない。 .\"O If the specified memory range includes a shared memory region .\"O created using the @@ -136,16 +136,16 @@ NUMA .\"O pages allocated for the anonymous or shared memory region will .\"O be allocated according to the policy specified, regardless which .\"O process attached to the shared memory segment causes the allocation. -.\"Omotoki: Ìõ¤Ë¾¯¤·¤À¤±¼«¿®¤¬¤Ê¤¤¡£ -»ØÄꤵ¤ì¤¿¥á¥â¥êÈϰϤˡ¢ +.\"Omotoki: 訳に少しだけ自信がない。 +指定されたメモリ範囲に、 .BR shmget (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤ÆºîÀ®¤µ¤ì¤¿¤ê¡¢ +システムコールを使って作成されたり、 .BR shmat (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤ÆÉղà (attach) ¤µ¤ì¤¿¤ê¤·¤¿¶¦Í­¥á¥â¥êÎΰ褬 -´Þ¤Þ¤ì¤ë¾ì¹ç¡¢ÌµÌ¾¥á¥â¥êÎΰè¤ä¶¦Í­¥á¥â¥êÎΰè¤ËÂФ¹¤ë¥Ú¡¼¥¸³ä¤êÅö¤Æ¤Ï¡¢ -¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤Ø¥Ý¥ê¥·¡¼¤ÎÀßÄê¤ò¹Ô¤Ã¤¿¥×¥í¥»¥¹¤¬¥Ú¡¼¥¸³ä¤êÅö¤Æ -¤Î¤­¤Ã¤«¤±¤È¤Ê¤Ã¤¿¤«¤Ë´Ø¤ï¤é¤º¡¢»ØÄꤵ¤ì¤¿¥Ý¥ê¥·¡¼¤Ë¤·¤¿¤¬¤Ã¤Æ³ä¤êÅö¤Æ -¤¬¹Ô¤ï¤ì¤ë¡£ +システムコールを使って付加 (attach) されたりした共有メモリ領域が +含まれる場合、無名メモリ領域や共有メモリ領域に対するページ割り当ては、 +共有メモリセグメントへポリシーの設定を行ったプロセスがページ割り当て +のきっかけとなったかに関わらず、指定されたポリシーにしたがって割り当て +が行われる。 .\"O If, however, the shared memory region was created with the .\"O .B SHM_HUGETLB .\"O flag, @@ -153,33 +153,33 @@ NUMA .\"O only if the page allocation is caused by the process that calls .\"O .BR mbind () .\"O for that region. -¤·¤«¤·¤Ê¤¬¤é¡¢¶¦Í­¥á¥â¥êÎΰ褬 +しかしながら、共有メモリ領域が .B SHM_HUGETLB -¥Õ¥é¥°¤ò»ØÄꤷ¤ÆºîÀ®¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢¥Ò¥å¡¼¥¸¥Ú¡¼¥¸ (huge page) ¤Î³ä¤êÅö¤Æ¤¬ -»ØÄꤵ¤ì¤¿¥Ý¥ê¥·¡¼¤Ë¤·¤¿¤¬¤Ã¤Æ¹Ô¤ï¤ì¤ë¤Î¤Ï¡¢¤½¤ÎÎΰè¤ËÂФ·¤Æ +フラグを指定して作成された場合には、ヒュージページ (huge page) の割り当てが +指定されたポリシーにしたがって行われるのは、その領域に対して .BR mbind () -¤ò¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬¥Ú¡¼¥¸³ä¤êÅö¤Æ¤Î¤­¤Ã¤«¤±¤È¤Ê¤Ã¤¿¾ì¹ç¤Î¤ß¤Ç¤¢¤ë¡£ +を呼び出したプロセスがページ割り当てのきっかけとなった場合のみである。 .\"O By default, .\"O .BR mbind () .\"O only has an effect for new allocations; if the pages inside .\"O the range have been already touched before setting the policy, .\"O then the policy has no effect. -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +デフォルトでは、 .BR mbind () -¤Ï¿·µ¬¤Î¥á¥â¥ê³ä¤êÅö¤Æ¤ËÂФ·¤Æ¤Î¤ß¸ú²Ì¤ò»ý¤Ä¡£ -¥Ý¥ê¥·¡¼¤¬ÀßÄꤵ¤ì¤ëÁ°¤Ë¤¹¤Ç¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ëÈÏ°ÏÆâ¤Î¥Ú¡¼¥¸¤ËÂФ·¤Æ¤Ï¡¢ -¥Ý¥ê¥·¡¼¤Ï±Æ¶Á¤·¤Ê¤¤¡£ +は新規のメモリ割り当てに対してのみ効果を持つ。 +ポリシーが設定される前にすでに使用されている範囲内のページに対しては、 +ポリシーは影響しない。 .\"O This default behavior may be overridden by the .\"O .B MPOL_MF_MOVE .\"O and .\"O .B MPOL_MF_MOVE_ALL .\"O flags described below. -¤³¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¡¢°Ê²¼¤ÇÀâÌÀ¤¹¤ë¥Õ¥é¥° +このデフォルトの動作は、以下で説明するフラグ .B MPOL_MF_MOVE -¤ä +や .B MPOL_MF_MOVE_ALL -¤Ë¤è¤ê¾å½ñ¤­¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +により上書きされる可能性がある。 .\"O The .\"O .I mode @@ -196,16 +196,16 @@ NUMA .\"O argument, .\"O the node or nodes to which the mode applies. .I mode -°ú¤­¿ô¤Ë¤Ï¡¢ +引き数には、 .BR MPOL_DEFAULT , .BR MPOL_BIND , .BR MPOL_INTERLEAVE , .B MPOL_PREFERRED -¤Î¤¤¤º¤ì¤«°ì¤Ä¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +のいずれか一つを指定しなければならない。 .B MPOL_DEFAULT -°Ê³°¤Î¥Ý¥ê¥·¡¼¥â¡¼¥É¤Î¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Ï +以外のポリシーモードの場合、呼び出し元は .I nodemask -°ú¤­¿ô¤Ç¤½¤Î¥Ý¥ê¥·¡¼¥â¡¼¥É¤òŬÍѤ¹¤ë¥Î¡¼¥É¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¡£ +引き数でそのポリシーモードを適用するノードを指定する必要がある。 .\"O The .\"O .I mode @@ -215,15 +215,15 @@ NUMA .\"O .I "mode flags" .\"O are: .I mode -°ú¤­¿ô¤Ë¤Ï¡¢ÄÉ²Ã¤Ç -.I "¥â¡¼¥É¥Õ¥é¥°" -¤ò´Þ¤á¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë -.I "¥â¡¼¥É¥Õ¥é¥°" -¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +引き数には、追加で +.I "モードフラグ" +を含めることもできる。 +サポートされている +.I "モードフラグ" +は以下の通りである。 .TP .\"O .BR MPOL_F_STATIC_NODES " (since Linux-2.6.26)" -.BR MPOL_F_STATIC_NODES " (Linux-2.6.26 °Ê¹ß)" +.BR MPOL_F_STATIC_NODES " (Linux-2.6.26 以降)" .\"O A nonempty .\"O .I nodemask .\"O specifies physical node ids. @@ -232,25 +232,25 @@ NUMA .\"O when the process moves to a different cpuset context, .\"O nor when the set of nodes allowed by the process's .\"O current cpuset context changes. -¶õ¤Ç¤Ê¤¤ +空でない .I nodemask -¤Ï¡¢ÊªÍý¥Î¡¼¥É ID ¤Ç¤¢¤ë¡£ -Linux ¤Ç¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤¬°Û¤Ê¤ë CPU ½¸¹ç¥³¥ó¥Æ¥­¥¹¥È (cpuset context) -¤Ë°ÜÆ°¤·¤¿¾ì¹ç¤Ç¤â¡¢¤½¤Î¥×¥í¥»¥¹¤Î¸½ºß¤Î CPU ½¸¹ç¥³¥ó¥Æ¥­¥¹¥È¤Ç -µö²Ä¤µ¤ì¤Æ¤¤¤ë¥Î¡¼¥É½¸¹ç¤¬ÊѲ½¤·¤¿¾ì¹ç¤Ç¤â¡¢ +は、物理ノード ID である。 +Linux では、そのプロセスが異なる CPU 集合コンテキスト (cpuset context) +に移動した場合でも、そのプロセスの現在の CPU 集合コンテキストで +許可されているノード集合が変化した場合でも、 .I nodemask -¤ò¥Þ¥Ã¥Ô¥ó¥°¤·Ä¾¤¹¤³¤È¤Ï¤Ê¤¤¡£ +をマッピングし直すことはない。 .TP .\"O .BR MPOL_F_RELATIVE_NODES " (since Linux-2.6.26)" -.BR MPOL_F_RELATIVE_NODES " (Linux-2.6.26 °Ê¹ß)" +.BR MPOL_F_RELATIVE_NODES " (Linux-2.6.26 以降)" .\"O A nonempty .\"O .I nodemask .\"O specifies node ids that are relative to the set of .\"O node ids allowed by the process's current cpuset. -¶õ¤Ç¤Ê¤¤ +空でない .I nodemask -¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤Î¸½ºß¤Î CPU ½¸¹ç¤Çµö²Ä¤µ¤ì¤Æ¤¤¤ë¥Î¡¼¥É ID ½¸¹ç -¤Ë¤ª¤±¤ëÁêÂÐŪ¤Ê¥Î¡¼¥É ID ¤Ç¤¢¤ë¡£ +は、そのプロセスの現在の CPU 集合で許可されているノード ID 集合 +における相対的なノード ID である。 .PP .\"O .I nodemask .\"O points to a bitmask of nodes containing up to @@ -261,14 +261,14 @@ Linux .\"O but the kernel will only use bits up to .\"O .IR maxnode . .I nodemask -¤Ï¡¢ºÇÂç¤Ç +は、最大で .I maxnode -¥Ó¥Ã¥È¤«¤é¹½À®¤µ¤ì¤ë¥Î¡¼¥É¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤ò»Ø¤¹¡£ -¥Ó¥Ã¥È¥Þ¥¹¥¯¤ÎÂ礭¤µ¤Ï¡¢Ä¾¶á¤Î +ビットから構成されるノードのビットマスクを指す。 +ビットマスクの大きさは、直近の .I sizeof(unsigned long) -¤ÎÇÜ¿ô¤ËÀÚ¤ê¾å¤²¤é¤ì¤ë¤¬¡¢¥«¡¼¥Í¥ë¤¬»ÈÍѤ¹¤ë¤Î¤Ï +の倍数に切り上げられるが、カーネルが使用するのは .I maxnode -¸Ä¤Þ¤Ç¤Î¥Ó¥Ã¥È¤À¤±¤Ç¤¢¤ë¡£ +個までのビットだけである。 .\"O A NULL value of .\"O .I nodemask .\"O or a @@ -280,15 +280,15 @@ Linux .\"O the .\"O .I nodemask .\"O argument is ignored. -NULL ÃͤΠ+NULL 値の .I nodemask -¤â¤·¤¯¤ÏÃͤ¬ 0 ¤Î +もしくは値が 0 の .I maxnode -¤Ï¥Î¡¼¥É¤Î¶õ½¸¹ç¤òɽ¤¹¡£ +はノードの空集合を表す。 .I maxnode -¤ÎÃͤ¬ 0 ¤Î¾ì¹ç¡¢ +の値が 0 の場合、 .I nodemask -°ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ +引き数は無視される。 .\"O Where a .\"O .I nodemask .\"O is required, it must contain at least one node that is on-line, @@ -298,40 +298,40 @@ NULL .\"O mode flag is specified], .\"O and contains memory. .I nodemask -¤¬É¬¿Ü¤Î¾ìÌ̤Ǥϡ¢ +が必須の場面では、 .I nodemask -¤Ë¡¢¥ª¥ó¥é¥¤¥ó¤Ç¡¢¤½¤Î¥×¥í¥»¥¹¤Î¸½ºß¤Î CPU ½¸¹ç¥³¥ó¥Æ¥­¥¹¥È¤Ç -µö²Ä¤µ¤ì¤Æ¤ª¤ê +に、オンラインで、そのプロセスの現在の CPU 集合コンテキストで +許可されており .RB ( MPOL_F_STATIC_NODES -¥â¡¼¥É¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç)¡¢¥á¥â¥ê¤¬¤¢¤ë¥Î¡¼¥É¤¬ -¾¯¤Ê¤¯¤È¤â°ì¤ÄÆþ¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +モードフラグが指定されていない場合)、メモリがあるノードが +少なくとも一つ入っていなければならない。 .\"O The .\"O .B MPOL_DEFAULT .\"O mode requests that any nondefault policy be removed, .\"O restoring default behavior. -¥â¡¼¥É +モード .B MPOL_DEFAULT -¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¤Ê¤¤¥×¥í¥»¥¹¤Î¥á¥â¥ê¥Ý¥ê¥·¡¼¤òºï½ü¤·¡¢ -¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤ËÌ᤹¤³¤È¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¤¢¤ë¡£ +はデフォルトではないプロセスのメモリポリシーを削除し、 +デフォルトの動作に戻すことを指定するものである。 .\"O When applied to a range of memory via .\"O .BR mbind (), .\"O this means to use the process policy, .\"O which may have been set with .\"O .BR set_mempolicy (2). .BR mbind () -·Ðͳ¤Ç¡¢¤¢¤ë¥á¥â¥êÎΰè¤ËÂФ·¤Æ +経由で、あるメモリ領域に対して .B MPOL_DEFAULT -¤¬Å¬ÍѤµ¤ì¤¿¾ì¹ç¡¢¥×¥í¥»¥¹¤Î¥Ç¥Õ¥©¥ë¥È¥Ý¥ê¥·¡¼¤ò»ÈÍѤ¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -¥×¥í¥»¥¹¤Î¥Ç¥Õ¥©¥ë¥È¥Ý¥ê¥·¡¼¤Ï¡¢ +が適用された場合、プロセスのデフォルトポリシーを使用することを意味する。 +プロセスのデフォルトポリシーは、 .BR set_mempolicy (2) -¤ÇÊѹ¹¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +で変更されているかもしれない。 .\"O If the mode of the process policy is also .\"O .BR MPOL_DEFAULT , .\"O the system-wide default policy will be used. -¥×¥í¥»¥¹¤Î¥Ý¥ê¥·¡¼¤Î¥â¡¼¥É¤â +プロセスのポリシーのモードも .B MPOL_DEFAULT -¤Î¾ì¹ç¡¢¥·¥¹¥Æ¥àÁ´ÂΤΥǥե©¥ë¥È¥Ý¥ê¥·¡¼¤¬»ÈÍѤµ¤ì¤ë¡£ +の場合、システム全体のデフォルトポリシーが使用される。 .\"O The system-wide default policy allocates .\"O pages on the node of the CPU that triggers the allocation. .\"O For @@ -341,14 +341,14 @@ NULL .\"O and .\"O .I maxnode .\"O arguments must be specify the empty set of nodes. -¥·¥¹¥Æ¥àÁ´ÂΤΥǥե©¥ë¥È¥Ý¥ê¥·¡¼¤Ç¤Ï¡¢³ä¤êÅö¤Æ¤Î¤­¤Ã¤«¤±¤È¤Ê¤Ã¤¿ -CPU ¤Î¥Î¡¼¥É¤«¤é¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤ò¹Ô¤¦¡£ +システム全体のデフォルトポリシーでは、割り当てのきっかけとなった +CPU のノードからページの割り当てを行う。 .B MPOL_DEFAULT -¤Ç¤Ï¡¢°ú¤­¿ô +では、引き数 .I nodemask -¤È +と .I maxnode -¤Ë¥Î¡¼¥É¤Î¶õ½¸¹ç¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +にノードの空集合を指定しなければならない。 .\"O The .\"O .B MPOL_BIND @@ -367,22 +367,22 @@ CPU .\"O Pages will not be allocated from any node not specified in the .\"O .IR nodemask . .B MPOL_BIND -¤Ï¸·¤·¤¤¥Ý¥ê¥·¡¼¤Ç¡¢¥á¥â¥ê³ä¤êÅö¤Æ¤Ï +は厳しいポリシーで、メモリ割り当ては .I nodemask -¤Ë»ØÄꤵ¤ì¤¿¥Î¡¼¥É¤Ë¸ÂÄꤵ¤ì¤ë¡£ -¾¤Î¥Î¡¼¥É¤Ø¤Î³ä¤êÅö¤Æ¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ +に指定されたノードに限定される。 +他のノードへの割り当ては行われない。 .I nodemask -¤Ë 2 ¸Ä°Ê¾å¤Î¥Î¡¼¥É¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤Ï -¥Î¡¼¥É ID ¤¬¿ô»ú¤È¤·¤ÆºÇ¾®¤Î¥Î¡¼¥É¤«¤é³«»Ï¤µ¤ì¡¢ -¤½¤Î¥Î¡¼¥É¤Ë¶õ¤­¥á¥â¥ê¤¬¤Ê¤¯¤Ê¤ë¤Þ¤Ç¤½¤Î¥Î¡¼¥É¤«¤é -¥Ú¡¼¥¸³ä¤êÅö¤Æ¤¬¹Ô¤ï¤ì¤ë¡£¤½¤Î¥Î¡¼¥É¤Ë¶õ¤­¥á¥â¥ê¤¬¤Ê¤¯¤Ê¤Ã¤¿¤é¡¢ -.\"motoki: the next highest ¤Ï the next lowest ¤Î´Ö°ã¤¤¡© -¼¡¤Ë¾®¤µ¤Ê¥Î¡¼¥É ID ¤ò»ý¤Ä¥Î¡¼¥É¤«¤é¥Ú¡¼¥¸³ä¤êÅö¤Æ¤¬¹Ô¤ï¤ì¤ë¡£ -¤³¤ì¤ò¡¢ +に 2 個以上のノードが指定された場合、ページの割り当ては +ノード ID が数字として最小のノードから開始され、 +そのノードに空きメモリがなくなるまでそのノードから +ページ割り当てが行われる。そのノードに空きメモリがなくなったら、 +.\"motoki: the next highest は the next lowest の間違い? +次に小さなノード ID を持つノードからページ割り当てが行われる。 +これを、 .I nodemask -¤Ç»ØÄꤵ¤ì¤¿Á´¤Æ¤Î¥Î¡¼¥É¤Ç¶õ¤­¥á¥â¥ê¤¬¤Ê¤¯¤Ê¤ë¤Þ¤Ç·«¤êÊÖ¤¹¡£ +で指定された全てのノードで空きメモリがなくなるまで繰り返す。 .I nodemask -¤Ç»ØÄꤵ¤ì¤¿°Ê³°¤Î¥Î¡¼¥É¤«¤é¤Ï¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ +で指定された以外のノードからはページの割り当ては行われない。 .\"O The .\"O .B MPOL_INTERLEAVE @@ -397,16 +397,16 @@ CPU .\"O Accesses to a single page of the area will still be limited to .\"O the memory bandwidth of a single node. .B MPOL_INTERLEAVE -¤Ï¡¢¥á¥â¥ê³ä¤êÅö¤Æ¤¬ +は、メモリ割り当てが .I nodemask -¤Ë»ØÄꤵ¤ì¤¿¥Î¡¼¥É´Ö¤Ç¸ò¸ß¤Ë¹Ô¤ï¤ì¤ë¤³¤È¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î¥Ý¥ê¥·¡¼¤Ç¤Ï¡¢Ê£¿ô¤Î¥Î¡¼¥É¤Ë¥Ú¡¼¥¸¤ò¹­¤²¤ÆÇÛÃÖ¤·¡¢¤³¤ì¤é¤Î¥Ú¡¼¥¸¤Ø¤Î -¥á¥â¥ê¥¢¥¯¥»¥¹¤òʬ»¶¤¹¤ë¤³¤È¤Ç¡¢ÃÙ±ä¤Ç¤Ï¤Ê¤¯¡¢ÂÓ°è¤òºÇŬ²½¤¹¤ë¡£ -¸ú²Ì¤òÆÀ¤ë¤Ë¤Ï¡¢¥á¥â¥êÎΰè¤ò¤¢¤ëÄøÅÙÂ礭¤¯¤¹¤Ù¤­¤Ç¤¢¤ê¡¢ -¥á¥â¥ê¥¢¥¯¥»¥¹¤Î¥Ñ¥¿¡¼¥ó¤¬¤«¤Ê¤ê¶Ñ°ì¤Ê¾ì¹ç¤Ç¤â -¾¯¤Ê¤¯¤È¤â 1MB °Ê¾å¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¤³¤Î¥â¡¼¥É¤Ç¤â¡¢°ì¤Ä¤Î¥Ú¡¼¥¸¤Ø¤Î¥¢¥¯¥»¥¹¤Ë´Ø¤·¤Æ¤Ï -°ì¤Ä¤Î¥Î¡¼¥É¤Î¥á¥â¥êÂӰ褬¾å¸Â¤È¤Ê¤ë¤³¤È¤ÏÊѤï¤ê¤Ê¤¤¡£ +に指定されたノード間で交互に行われることを指定するものである。 +このポリシーでは、複数のノードにページを広げて配置し、これらのページへの +メモリアクセスを分散することで、遅延ではなく、帯域を最適化する。 +効果を得るには、メモリ領域をある程度大きくすべきであり、 +メモリアクセスのパターンがかなり均一な場合でも +少なくとも 1MB 以上にすべきである。 +このモードでも、一つのページへのアクセスに関しては +一つのノードのメモリ帯域が上限となることは変わりない。 .\"O .B MPOL_PREFERRED .\"O sets the preferred node for allocation. @@ -427,21 +427,21 @@ CPU .\"O range of memory via .\"O .BR mbind (). .B MPOL_PREFERRED -¤Ï¡¢³ä¤êÅö¤Æ»þ¤ËÍ¥À褵¤ì¤ë¥Î¡¼¥É¤òÀßÄꤹ¤ë¡£ -¥«¡¼¥Í¥ë¤Ï¤Þ¤ºÍ¥Àè¥Î¡¼¥É¤Ë¥Ú¡¼¥¸³ä¤êÅö¤Æ¤ò¹Ô¤ª¤¦¤È¤·¡¢ -Í¥Àè¥Î¡¼¥É¤Ë¶õ¤­¥á¥â¥ê¤¬¾¯¤Ê¤¤¾ì¹ç¤Ë¾¤Î¥Î¡¼¥É¤Ë³ä¤êÅö¤Æ¤ò¹Ô¤¦¡£ +は、割り当て時に優先されるノードを設定する。 +カーネルはまず優先ノードにページ割り当てを行おうとし、 +優先ノードに空きメモリが少ない場合に他のノードに割り当てを行う。 .I nodemask -¤ËÊ£¿ô¤Î¥Î¡¼¥É ID ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢ +に複数のノード ID が指定された場合は、 .I nodemask -Æâ¤ÎºÇ½é¤Î¥Î¡¼¥É¤¬Í¥Àè¥Î¡¼¥É¤È¤·¤ÆÁªÂò¤µ¤ì¤ë¡£ -°ú¤­¿ô +内の最初のノードが優先ノードとして選択される。 +引き数 .IR nodemask , .I maxnode -¤Ç¶õ½¸¹ç¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢³ä¤êÅö¤Æ¤Î¤­¤Ã¤«¤±¤È¤Ê¤Ã¤¿ CPU ¤Î¥Î¡¼¥É¤Ë -¥á¥â¥ê³ä¤êÅö¤Æ¤¬¹Ô¤ï¤ì¤ë¡£ +で空集合が指定された場合は、割り当てのきっかけとなった CPU のノードに +メモリ割り当てが行われる。 .BR mbind (2) -¤Ç¡¢¤¢¤ë¥á¥â¥êÎΰè¤ËÂФ·¤Æ¡Ö¥í¡¼¥«¥ë¤«¤é¤Î³ä¤êÅö¤Æ (local allocation)¡×¤ò -»ØÄꤹ¤ëÊýË¡¤Ï¤³¤ì¤·¤«¤Ê¤¤¡£ +で、あるメモリ領域に対して「ローカルからの割り当て (local allocation)」を +指定する方法はこれしかない。 .\"O If .\"O .B MPOL_MF_STRICT @@ -455,25 +455,25 @@ CPU .\"O .B EIO .\"O if the existing pages in the memory range don't follow the policy. .I flags -¤Ë +に .B MPOL_MF_STRICT -¤¬ -»ØÄꤵ¤ì¡¢ +が +指定され、 .I mode -¤¬ +が .B MPOL_DEFAULT -¤Ç¤Ê¤¤¾ì¹ç¡¢ -»ØÄꤵ¤ì¤¿¥Ý¥ê¥·¡¼¤Ë½¾¤Ã¤Æ¤¤¤Ê¤¤¥á¥â¥êÎΰè¤Ë¥Ú¡¼¥¸¤¬Â¸ºß¤¹¤ë¤È¡¢ +でない場合、 +指定されたポリシーに従っていないメモリ領域にページが存在すると、 .BR mbind () -¤Ï¥¨¥é¡¼ +はエラー .B EIO -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .\" According to the kernel code, the following is not true .\" --Lee Schermerhorn .\" .\"O In 2.6.16 or later the kernel will also try to move pages .\" .\"O to the requested node with this flag. -.\" 2.6.16 °Ê¹ß¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¤³¤Î¥Õ¥é¥°¤ÇÍ׵ᤵ¤ì¤¿¥Î¡¼¥É¤Ë -.\" ¥Ú¡¼¥¸¤ò°ÜÆ°¤·¤è¤¦¤È¤¹¤ë¡£ +.\" 2.6.16 以降のカーネルでは、このフラグで要求されたノードに +.\" ページを移動しようとする。 .\"O If .\"O .B MPOL_MF_MOVE @@ -488,17 +488,17 @@ CPU .\"O .B EIO .\"O if some pages could not be moved. .I flags -¤Ë +に .B MPOL_MF_MOVE -¤¬»ØÄꤵ¤ì¤ë¤È¡¢¥«¡¼¥Í¥ë¤Ï¤½¤Î¥á¥â¥êÎΰèÆâ¤Î´û¸¤ÎÁ´¤Æ¤Î¥Ú¡¼¥¸¤ò°ÜÆ°¤·¡¢ -»ØÄꤵ¤ì¤¿¥Ý¥ê¥·¡¼¤Ë½¾¤¦¤è¤¦¤Ë¤·¤è¤¦¤È¤¹¤ë¡£ -¾¤Î¥×¥í¥»¥¹¤È¶¦Í­¤µ¤ì¤Æ¤¤¤ë¥Ú¡¼¥¸¤Ï°ÜÆ°¤µ¤ì¤Ê¤¤¡£ +が指定されると、カーネルはそのメモリ領域内の既存の全てのページを移動し、 +指定されたポリシーに従うようにしようとする。 +他のプロセスと共有されているページは移動されない。 .B MPOL_MF_STRICT -¤â»ØÄꤵ¤ì¤¿¾ì¹ç¡¢°ÜÆ°¤Ç¤­¤Ê¤«¤Ã¤¿¥Ú¡¼¥¸¤¬¤¢¤ë¤È¡¢ +も指定された場合、移動できなかったページがあると、 .BR mbind () -¤Ï¥¨¥é¡¼ +はエラー .B EIO -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .\"O If .\"O .B MPOL_MF_MOVE_ALL @@ -515,36 +515,36 @@ CPU .\"O .B EIO .\"O if some pages could not be moved. .I flags -¤Ë +に .B MPOL_MF_MOVE_ALL -¤¬»ØÄꤵ¤ì¤ë¤È¡¢¥«¡¼¥Í¥ë¤Ï¤½¤Î¥á¥â¥êÎΰèÆâ¤Î´û¸¤ÎÁ´¤Æ¤Î¥Ú¡¼¥¸¤ò¡¢ -¾¤Î¥×¥í¥»¥¹¤¬¥Ú¡¼¥¸¤ò»ÈÍѤ·¤Æ¤¤¤ë¤«¤É¤¦¤«¤Ë´Ø¤ï¤é¤º°ÜÆ°¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»ÈÍѤ¹¤ë¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÏÆø¢ +が指定されると、カーネルはそのメモリ領域内の既存の全てのページを、 +他のプロセスがページを使用しているかどうかに関わらず移動する。 +このフラグを使用するには、呼び出し元のプロセスは特権 .RB ( CAP_SYS_NICE ) -¤ò»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を持っていなければならない。 .B MPOL_MF_STRICT -¤â»ØÄꤵ¤ì¤¿¾ì¹ç¡¢°ÜÆ°¤Ç¤­¤Ê¤«¤Ã¤¿¥Ú¡¼¥¸¤¬¤¢¤ë¤È¡¢ +も指定された場合、移動できなかったページがあると、 .BR mbind () -¤Ï¥¨¥é¡¼ +はエラー .B EIO -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .\" --------------------------------------------------------------- .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR mbind () .\"O returns 0; .\"O on error, \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR mbind () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .\" --------------------------------------------------------------- .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\" I think I got all of the error returns. --Lee Schermerhorn .TP .B EFAULT @@ -555,12 +555,12 @@ CPU .\"O points outside your accessible address space. .\"O Or, there was an unmapped hole in the specified memory range. .I nodemask -¤È +と .I maxnode -¤Ç»ØÄꤵ¤ì¤¿¥á¥â¥êÎΰè¤Î°ìÉô¤Þ¤¿¤ÏÁ´Éô¤¬¡¢ -¸Æ¤Ó½Ð¤·¸µ¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ -¤â¤·¤¯¤Ï»ØÄꤵ¤ì¤¿¥á¥â¥êÎΰè¤Ë¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤Ê¤¤Éôʬ (unmapped hole) -¤¬¤¢¤Ã¤¿¡¢ +で指定されたメモリ領域の一部または全部が、 +呼び出し元がアクセス可能なアドレス空間外を指している。 +もしくは指定されたメモリ領域にマップされていない部分 (unmapped hole) +があった、 .TP .B EINVAL .\"O An invalid value was specified for @@ -568,17 +568,17 @@ CPU .\"O or .\"O .IR mode ; .I flags -¤ä +や .I mode -¤ËÉÔÀµ¤ÊÃͤ¬»ØÄꤵ¤ì¤¿¡£ +に不正な値が指定された。 .\"O or .\"O .I addr + len .\"O was less than .\"O .IR addr ; .I addr + len -¤¬ +が .I addr -¤è¤ê¾®¤µ¤¤¡£ +より小さい。 .\"O or .\"O .I addr .\"O is not a multiple of the system page size. @@ -590,14 +590,14 @@ CPU .\"O .I nodemask .\"O specified a nonempty set; .I addr -¤¬¥·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¡£ -¤Þ¤¿¤Ï +がシステムのページサイズの倍数になっていない。 +または .I mode -¤¬ +が .B MPOL_DEFAULT -¤Ç +で .I nodemask -¤Ë¶õ¤Ç¤Ê¤¤½¸¹ç¤¬»ØÄꤵ¤ì¤¿¡£ +に空でない集合が指定された。 .\"O or .\"O .I mode .\"O is @@ -608,18 +608,18 @@ CPU .\"O .I nodemask .\"O is empty. .I mode -¤¬ +が .B MPOL_BIND -¤« +か .B MPOL_INTERLEAVE -¤Ç +で .I nodemask -¤¬¶õ¤Ç¤¢¤Ã¤¿¡£ +が空であった。 .\"O Or, .\"O .I maxnode .\"O exceeds a kernel-imposed limit. .I maxnode -¤¬¥«¡¼¥Í¥ë¤ËŬÍѤµ¤ì¤¿¾å¸Â¤òĶ¤¨¤Æ¤¤¤ë¡£ +がカーネルに適用された上限を超えている。 .\" As at 2.6.23, this limit is "a page worth of bits", e.g., .\" 8 * 4096 bits, assuming a 4kB page size. .\"O Or, @@ -627,15 +627,15 @@ CPU .\"O specifies one or more node IDs that are .\"O greater than the maximum supported node ID. .I nodemask -¤Ë¡¢¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ëºÇÂç¥Î¡¼¥É ID ¤è¤êÂ礭¤¤¥Î¡¼¥É¤¬»ØÄꤵ¤ì¤¿¡£ +に、サポートされている最大ノード ID より大きいノードが指定された。 .\"O Or, none of the node IDs specified by .\"O .I nodemask .\"O are on-line and allowed by the process's current cpuset context, .\"O or none of the specified nodes contain memory. .I nodemask -¤Ë¡¢¥ª¥ó¥é¥¤¥ó¤Ç¡¢¤«¤Ä¤½¤Î¥×¥í¥»¥¹¤Î¸½ºß¤Î CPU ½¸¹ç¥³¥ó¥Æ¥­¥¹¥È¤Ç -µö²Ä¤µ¤ì¤Æ¤¤¤ë¥Î¡¼¥É¤¬°ì¤Ä¤â´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ -¥á¥â¥ê¤ò´Þ¤à¥Î¡¼¥É¤¬°ì¤Ä¤â»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +に、オンラインで、かつそのプロセスの現在の CPU 集合コンテキストで +許可されているノードが一つも含まれていないか、 +メモリを含むノードが一つも指定されていない。 .\"O Or, the .\"O .I mode .\"O argument specified both @@ -643,35 +643,35 @@ CPU .\"O and .\"O .BR MPOL_F_RELATIVE_NODES . .I mode -°ú¤­¿ô¤Ë +引き数に .B MPOL_F_STATIC_NODES -¤È +と .B MPOL_F_RELATIVE_NODES -¤ÎξÊý¤¬»ØÄꤵ¤ì¤¿¡£ +の両方が指定された。 .TP .B EIO .\"O .B MPOL_MF_STRICT .\"O was specified and an existing page was already on a node .\"O that does not follow the policy; .B MPOL_MF_STRICT -¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¤³¤Î¥Ý¥ê¥·¡¼¤Ë½¾¤Ã¤Æ¤¤¤Ê¤¤¥Î¡¼¥É¤Ë -¤¹¤Ç¤Ë¥Ú¡¼¥¸¤¬Â¸ºß¤·¤Æ¤¤¤¿¡£ +が指定されたが、このポリシーに従っていないノードに +すでにページが存在していた。 .\"O or .\"O .B MPOL_MF_MOVE .\"O or .\"O .B MPOL_MF_MOVE_ALL .\"O was specified and the kernel was unable to move all existing .\"O pages in the range. -¤â¤·¤¯¤Ï +もしくは .B MPOL_MF_MOVE -¤« +か .B MPOL_MF_MOVE_ALL -¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¥«¡¼¥Í¥ë¤¬»ØÄꤵ¤ì¤¿ÎΰèÆâ¤Î´û¸¤ÎÁ´¤Æ¤Î¥Ú¡¼¥¸¤ò -°ÜÆ°¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +が指定されたが、カーネルが指定された領域内の既存の全てのページを +移動することができなかった。 .TP .B ENOMEM .\"O Insufficient kernel memory was available. -ÍøÍѲÄǽ¤Ê¥«¡¼¥Í¥ë¥á¥â¥ê¤¬½½Ê¬¤Ê¤«¤Ã¤¿¡£ +利用可能なカーネルメモリが十分なかった。 .TP .B EPERM .\"O The @@ -682,39 +682,39 @@ CPU .\"O .B CAP_SYS_NICE .\"O privilege. .I flags -°ú¤­¿ô¤Ë +引き数に .B MPOL_MF_MOVE_ALL -¥Õ¥é¥°¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤¬¡¢¸Æ¤Ó½Ð¤·¸µ¤¬ +フラグが含まれているが、呼び出し元が .B CAP_SYS_NICE -Æø¢¤ò»ý¤¿¤Ê¤¤¡£ +特権を持たない。 .\" --------------------------------------------------------------- .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The .\"O .BR mbind () .\"O system call was added to the Linux kernel in version 2.6.7. .BR mbind () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥Ð¡¼¥¸¥ç¥ó 2.6.7 ¤Ç Linux ¥«¡¼¥Í¥ë¤ËÄɲ䵤줿¡£ +システムコールはバージョン 2.6.7 で Linux カーネルに追加された。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O This system call is Linux-specific. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ +このシステムコールは Linux 独自である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O For information on library support, see .\"O .BR numa (7). -¥é¥¤¥Ö¥é¥ê¤Ë¤è¤ë¥µ¥Ý¡¼¥È¤Ë¤Ä¤¤¤Æ¤Ï +ライブラリによるサポートについては .BR numa (7) -¤ò»²¾È¡£ +を参照。 .\"O NUMA policy is not supported on a memory mapped file range .\"O that was mapped with the .\"O .B MAP_SHARED .\"O flag. -NUMA ¥Ý¥ê¥·¡¼¤Ï¡¢ +NUMA ポリシーは、 .B MAP_SHARED -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¥Þ¥Ã¥×¤µ¤ì¤¿¥á¥â¥ê¥Þ¥Ã¥×¡¦¥Õ¥¡¥¤¥ë¤ÎÎΰè¤Ç¤Ï -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +フラグが指定されてマップされたメモリマップ・ファイルの領域では +サポートされていない。 .\"O The .\"O .B MPOL_DEFAULT @@ -723,11 +723,11 @@ NUMA .\"O and .\"O .BR set_mempolicy (2). .B MPOL_DEFAULT -¥â¡¼¥É¤Ï¡¢ +モードは、 .BR mbind () -¤È +と .BR set_mempolicy (2) -¤Ç°Û¤Ê¤ë¸ú²Ì¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ +で異なる効果を持つことができる。 .\"O When .\"O .B MPOL_DEFAULT .\"O is specified for @@ -735,10 +735,10 @@ NUMA .\"O the process's policy reverts to system default policy .\"O or local allocation. .BR set_mempolicy (2) -¤Ç +で .B MPOL_DEFAULT -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¤½¤Î¥×¥í¥»¥¹¤Î¥Ý¥ê¥·¡¼¤Ï¥·¥¹¥Æ¥à¤Î -¥Ç¥Õ¥©¥ë¥È¥Ý¥ê¥·¡¼¡¢¤¹¤Ê¤ï¤Á¥í¡¼¥«¥ë¤«¤é¤Î³ä¤êÅö¤Æ¡¢¤ËÌá¤ë¡£ +が指定された場合、そのプロセスのポリシーはシステムの +デフォルトポリシー、すなわちローカルからの割り当て、に戻る。 .\"O When .\"O .B MPOL_DEFAULT .\"O is specified for a range of memory using @@ -747,17 +747,17 @@ NUMA .\"O the process's policy, as set by .\"O .BR set_mempolicy (2). .BR mbind () -¤ò»È¤Ã¤Æ¥á¥â¥ê¤Î¤¢¤ëÎΰè¤Ë +を使ってメモリのある領域に .B MPOL_DEFAULT -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¤½¤ÎÈϰϤËÂФ·¤Æ¤½¤ì°Ê¹ß¤Ë¹Ô¤ï¤ì¤ë¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤Ç¤Ï¡¢ +が指定された場合、その範囲に対してそれ以降に行われるページの割り当てでは、 .BR set_mempolicy (2) -¤ÇÀßÄꤷ¤¿¤Î¤ÈƱ¤¸¤è¤¦¤Ë¡¢¤½¤Î¥×¥í¥»¥¹¤Î¥Ý¥ê¥·¡¼¤¬Å¬ÍѤµ¤ì¤ë¡£ +で設定したのと同じように、そのプロセスのポリシーが適用される。 .\"O This effectively removes the explicit policy from the .\"O specified range, "falling back" to a possibly nondefault .\"O policy. -.\"0motoki: possibly nondefault policy ¤Ï default policy ¤Î´Ö°ã¤¤¡© -¤³¤ì¤Ë¤è¤ê¡¢ÆÃÄê¤Î¥á¥â¥êÎΰè¤Ë¤Ä¤¤¤Æ¤À¤±ÌÀ¼¨Åª¤Ê¥Ý¥ê¥·¡¼¤òºï½ü¤·¡¢ -¥Ç¥Õ¥©¥ë¥È¤Î¥Ý¥ê¥·¡¼¤Ë¡ÖÌ᤹¡×¤³¤È¤¬¤Ç¤­¤ë¡£ +.\"0motoki: possibly nondefault policy は default policy の間違い? +これにより、特定のメモリ領域についてだけ明示的なポリシーを削除し、 +デフォルトのポリシーに「戻す」ことができる。 .\"O To select explicit "local allocation" for a memory range, .\"O specify a .\"O .I mode @@ -767,39 +767,39 @@ NUMA .\"O This method will work for .\"O .BR set_mempolicy (2), .\"O as well. -¤¢¤ë¥á¥â¥êÎΰè¤ËÂФ·¤Æ¡Ö¥í¡¼¥«¥ë¤«¤é¤Î³ä¤êÅö¤Æ¡×¤òÌÀ¼¨Åª¤ËÀßÄꤹ¤ë¤Ë¤Ï¡¢ +あるメモリ領域に対して「ローカルからの割り当て」を明示的に設定するには、 .I mode -¤Ë +に .B MPOL_PREFERRED -¤ò»ØÄꤷ¡¢ +を指定し、 .I nodemask -¤Ë¶õ½¸¹ç¤Î¥Î¡¼¥É¤ò»ØÄꤹ¤ì¤Ð¤è¤¤¡£ -¤³¤ÎÊýË¡¤Ï +に空集合のノードを指定すればよい。 +この方法は .BR set_mempolicy (2) -¤Ç¤âÄÌÍѤ¹¤ë¡£ +でも通用する。 .\"O Support for huge page policy was added with 2.6.16. .\"O For interleave policy to be effective on huge page mappings the .\"O policied memory needs to be tens of megabytes or larger. -2.6.16 ¤Ç¥Ò¥å¡¼¥¸¥Ú¡¼¥¸¡¦¥Ý¥ê¥·¡¼¤Ø¤ÎÂбþ¤¬Äɲ䵤줿¡£ -¥¤¥ó¥¿¡¼¥ê¡¼¥Ö¡¦¥Ý¥ê¥·¡¼¤¬¥Ò¥å¡¼¥¸¥Ú¡¼¥¸¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ç¸ú²Ì¤ò»ý¤Ä¤Ë¤Ï¡¢ -¥Ý¥ê¥·¡¼¤¬Å¬ÍѤµ¤ì¤ë¥á¥â¥ê¤¬¿ô½½¥á¥¬¥Ð¥¤¥È°Ê¾å¤Ç¤¢¤ëɬÍפ¬¤¢¤ë¡£ +2.6.16 でヒュージページ・ポリシーへの対応が追加された。 +インターリーブ・ポリシーがヒュージページのマッピングで効果を持つには、 +ポリシーが適用されるメモリが数十メガバイト以上である必要がある。 .\"O .B MPOL_MF_STRICT .\"O is ignored on huge page mappings. .B MPOL_MF_STRICT -¤Ï¥Ò¥å¡¼¥¸¥Ú¡¼¥¸¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ç¤Ï̵»ë¤µ¤ì¤ë¡£ +はヒュージページのマッピングでは無視される。 .\"O .B MPOL_MF_MOVE .\"O and .\"O .B MPOL_MF_MOVE_ALL .\"O are only available on Linux 2.6.16 and later. .B MPOL_MF_MOVE -¤È +と .B MPOL_MF_MOVE_ALL -¤Ï Linux 2.6.16 °Ê¹ß¤Ç¤Î¤ßÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +は Linux 2.6.16 以降でのみ利用可能である。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR get_mempolicy (2), .BR getcpu (2), .BR mmap (2), diff --git a/draft/man2/mincore.2 b/draft/man2/mincore.2 index 539b915f..b1429a61 100644 --- a/draft/man2/mincore.2 +++ b/draft/man2/mincore.2 @@ -41,15 +41,15 @@ .\" Updated & Modified Fri Apr 22 02:35:03 JST 2005 by Yuichi SATO .\" Updated 2007-05-04, Akihiro MOTOKI , LDP v2.44 .\" -.\"WORD: least significant bit ºÇ²¼°Ì¥Ó¥Ã¥È +.\"WORD: least significant bit 最下位ビット .\" .TH MINCORE 2 2008-04-22 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mincore \- determine whether pages are resident in memory -mincore \- ¥Ú¡¼¥¸¤¬¥á¥â¥êÆâ¤Ë¤¢¤ë¤«¤É¤¦¤«¤òȽÄꤹ¤ë +mincore \- ページがメモリ内にあるかどうかを判定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include @@ -59,15 +59,15 @@ mincore \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR mincore (): _BSD_SOURCE || _SVID_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR mincore () .\"O returns a vector that indicates whether pages .\"O of the calling process's virtual memory are resident in core (RAM), @@ -79,13 +79,13 @@ _BSD_SOURCE || _SVID_SOURCE .\"O .I length .\"O bytes. .BR mincore () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î²¾ÁÛ¥á¥â¥ê¤Î¥Ú¡¼¥¸¤¬¥³¥¢ (RAM) Æâ¤Ë¸ºß¤·¡¢ -¥Ú¡¼¥¸»²¾È»þ¤Ë¥Ç¥£¥¹¥¯¥¢¥¯¥»¥¹ (¥Ú¡¼¥¸¡¦¥Õ¥©¡¼¥ë¥È) ¤òµ¯¤³¤µ¤Ê¤¤¤« -¤É¤¦¤«¤ò¼¨¤¹¥Ù¥¯¥È¥ë¤òÊÖ¤¹¡£¥«¡¼¥Í¥ë¤Ï¡¢¥¢¥É¥ì¥¹ +は、呼び出し元プロセスの仮想メモリのページがコア (RAM) 内に存在し、 +ページ参照時にディスクアクセス (ページ・フォールト) を起こさないか +どうかを示すベクトルを返す。カーネルは、アドレス .I addr -¤«¤é»Ï¤Þ¤ë +から始まる .I length -¥Ð¥¤¥È¤ÎÈϰϤΥڡ¼¥¸¤Ë´Ø¤¹¤ë¸ºß¾ðÊó¤òÊÖ¤¹¡£ +バイトの範囲のページに関する存在情報を返す。 .\"O The .\"O .I addr @@ -101,17 +101,17 @@ _BSD_SOURCE || _SVID_SOURCE .\"O using .\"O .IR sysconf(_SC_PAGESIZE) . .I addr -°ú¤­¿ô¤Ï¥·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数はシステムのページサイズの倍数でなければならない。 .I length -°ú¤­¿ô¤Ï¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤Ç¤¢¤ëɬÍפϤʤ¤¤¬¡¢ -¥Ú¡¼¥¸Á´ÂΤ˴ؤ¹¤ë¸ºß¾ðÊó¤¬ÊÖ¤µ¤ì¤ë¤Î¤Ç¡¢»ö¼Â¾å +引き数はページサイズの倍数である必要はないが、 +ページ全体に関する存在情報が返されるので、事実上 .I length -¤Ï¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤ËÀÚ¤ê¾å¤²¤é¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ -¥Ú¡¼¥¸¥µ¥¤¥º +はページサイズの倍数に切り上げられることになる。 +ページサイズ .RB ( PAGE_SIZE ) -¤Ï +は .I sysconf(_SC_PAGESIZE) -¤ò»È¤Ã¤ÆÆþ¼ê¤Ç¤­¤ë¡£ +を使って入手できる。 .\"O The .\"O .I vec @@ -125,80 +125,80 @@ _BSD_SOURCE || _SVID_SOURCE .\"O (The settings of the other bits in each byte are undefined; .\"O these bits are reserved for possible later use.) .I vec -°ú¤­¿ô¤Ï¡¢¾¯¤Ê¤¯¤È¤â +引き数は、少なくとも .I "(length+PAGE_SIZE\-1) / PAGE_SIZE" -¥Ð¥¤¥È¤¬³ÊǼ¤Ç¤­¤ëÇÛÎó¤ò»Ø¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤Î¸Æ¤Ó½Ð¤·¤¬ÊÖ¤ë¤È¤­¡¢ -³Æ¥Ð¥¤¥È¤ÎºÇ²¼°Ì¥Ó¥Ã¥È¤Ï¡¢Âбþ¤¹¤ë¥Ú¡¼¥¸¤¬¥á¥â¥êÆâ¤Ë¤½¤Î¤È¤­Â¸ºß¤¹¤ì¤Ð -¥»¥Ã¥È¤µ¤ì¡¢¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï¥¯¥ê¥¢¤µ¤ì¤ë -(³Æ¥Ð¥¤¥È¤Î¤½¤Î¾¤Î¥Ó¥Ã¥È¤Ï̤ÄêµÁ¤Ç¤¢¤ê¡¢¤³¤ì¤é¤Î¥Ó¥Ã¥È¤Ï¾­Íè¤Î»ÈÍÑ¤Ë -¤½¤Ê¤¨¤ÆͽÌ󤵤ì¤Æ¤¤¤ë)¡£ +バイトが格納できる配列を指していなければならない。 +この呼び出しが返るとき、 +各バイトの最下位ビットは、対応するページがメモリ内にそのとき存在すれば +セットされ、そうでない場合はクリアされる +(各バイトのその他のビットは未定義であり、これらのビットは将来の使用に +そなえて予約されている)。 .\"O Of course the information returned in .\"O .I vec .\"O is only a snapshot: pages that are not .\"O locked in memory can come and go at any moment, and the contents of .\"O .I vec .\"O may already be stale by the time this call returns. -¤â¤Á¤í¤ó¡¢ +もちろん、 .I vec -¤ÇÊÖ¤µ¤ì¤¿¾ðÊó¤Ï¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¤Ç¤·¤«¤Ê¤¤¡£ -¥á¥â¥êÆâ¤Ë¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ú¡¼¥¸¤Ï¡¢Ç¤°Õ¤Î»þÅÀ¤Ç¥á¥â¥êÆâ¤Ë -Æþ¤Ã¤¿¤ê½Ð¤¿¤ê¤Ç¤­¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤¬ÊÖ¤ë¤È¤­¤Ë¤Ï +で返された情報はスナップショットでしかない。 +メモリ内にロックされていないページは、任意の時点でメモリ内に +入ったり出たりでき、この呼び出しが返るときには .I vec -¤ÎÆâÍƤϤ¹¤Ç¤Ë¸Å¤¯¤Ê¤Ã¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +の内容はすでに古くなっているかもしれない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR mincore () .\"O returns zero. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR mincore () -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¤Æ¡¢ +エラーの場合は \-1 を返して、 .I errno -¤òŬÀÚ¤ÊÃͤËÀßÄꤹ¤ë¡£ +を適切な値に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .B EAGAIN .\"O kernel is temporarily out of resources. -¥«¡¼¥Í¥ë¤¬°ì»þŪ¤Ë¥ê¥½¡¼¥¹¤ò»È¤¤²Ì¤¿¤·¤Æ¤¤¤ë¡£ +カーネルが一時的にリソースを使い果たしている。 .TP .B EFAULT .\"O .I vec .\"O points to an invalid address. .I vec -¤¬Ìµ¸ú¤Ê¥¢¥É¥ì¥¹¤ò»Ø¤·¤Æ¤¤¤ë¡£ +が無効なアドレスを指している。 .TP .B EINVAL .\"O .I addr .\"O is not a multiple of the page size. .I addr -¤¬¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤Ç¤Ê¤¤¡£ +がページサイズの倍数でない。 .TP .B ENOMEM .\"O .I length .\"O is greater than .\"O .RI ( TASK_SIZE " \- " addr ). .I length -¤¬ +が .RI ( TASK_SIZE " \- " addr ) -¤è¤êÂ礭¤¤¡£ +より大きい。 .\"O (This could occur if a negative value is specified for .\"O .IR length , .\"O since that value will be interpreted as a large .\"O unsigned integer.) .RI ( length -¤ËÉé¤ÎÃͤ¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ -¤½¤ÎÃͤ¬Â礭¤ÊÉä¹æ¤Ê¤·À°¿ô¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¤¿¤á¤Ëµ¯¤³¤ë¤³¤È¤¬¤¢¤ë¡£) +に負の値が指定された場合、 +その値が大きな符号なし整数として解釈されるために起こることがある。) .\"O In Linux 2.6.11 and earlier, the error .\"O .B EINVAL .\"O was returned for this condition. -Linux 2.6.11 °ÊÁ°¤Ç¤Ï¡¢¤³¤Î¾ò·ï¤Î¾ì¹ç¤Ï¥¨¥é¡¼ +Linux 2.6.11 以前では、この条件の場合はエラー .B EINVAL -¤¬ÊÖ¤µ¤ì¤Æ¤¤¤¿¡£ +が返されていた。 .TP .B ENOMEM .\"O .I addr @@ -208,80 +208,80 @@ Linux 2.6.11 .\"O .I length .\"O contained unmapped memory. .I addr -¤«¤é +から .I addr + .I length -¤Î´Ö¤Ë¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤Ê¤¤¥á¥â¥ê¤¬¤¢¤Ã¤¿¡£ +の間にマップされていないメモリがあった。 .\"O .SH VERSIONS .\"O Since Linux 2.3.99pre1 and glibc 2.2. -.SH ¥Ð¡¼¥¸¥ç¥ó -Linux 2.3.99pre1 ¤È glibc 2.2 ¤«¤éÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +.SH バージョン +Linux 2.3.99pre1 と glibc 2.2 から利用可能である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR mincore () .\"O is not specified in POSIX.1-2001, .\"O and it is not available on all UNIX implementations. .BR mincore () -¤Ï POSIX.1-2001 ¤Ëµ­½Ò¤µ¤ì¤Æ¤ª¤é¤º¡¢ -Á´¤Æ¤Î UNIX ¼ÂÁõ¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ +は POSIX.1-2001 に記述されておらず、 +全ての UNIX 実装で利用可能であるわけではない。 .\" It is on at least NetBSD, FreeBSD, OpenBSD, Solaris 8, .\" AIX 5.1, SunOS 4.1 .\"O .\" .SH HISTORY -.\" .SH Îò»Ë +.\" .SH 歴史 .\"O .\" The .\"O .\" .BR mincore () .\"O .\" function first appeared in 4.4BSD. .\" .BR mincore () -.\" ´Ø¿ô¤Ï 4.4BSD ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +.\" 関数は 4.4BSD で初めて登場した。 .\"O .SH "BUGS" -.SH ¥Ð¥° +.SH バグ .\"O Before kernel 2.6.21, .\"O .BR mincore () .\"O did not return correct information for .\"O .B MAP_PRIVATE .\"O mappings, or for nonlinear mappings (established using .\"O .BR remap_file_pages (2)). -¥«¡¼¥Í¥ë 2.6.21 ¤è¤êÁ°¤Ï¡¢ +カーネル 2.6.21 より前は、 .BR mincore () -¤Ï¡¢ +は、 .B MAP_PRIVATE -¥Þ¥Ã¥Ô¥ó¥°¤äÈóÀþ·Á¥Þ¥Ã¥Ô¥ó¥° +マッピングや非線形マッピング .RB ( remap_file_pages (2) -¤ò»È¤Ã¤ÆºîÀ®¤µ¤ì¤ë) ¤Ë¤Ä¤¤¤ÆÀµ¤·¤¤¾ðÊó¤òÊÖ¤µ¤Ê¤«¤Ã¤¿¡£ +を使って作成される) について正しい情報を返さなかった。 .\"O .\" Linux (up to now, 2.6.5), .\"O .\" .B mincore .\"O .\" does not return correct information for MAP_PRIVATE mappings: -.\" Linux ¤Ç¤Ï (2.6.5 ¤Î¸½ºß¤Ë»ê¤ë¤Þ¤Ç)¡¢ +.\" Linux では (2.6.5 の現在に至るまで)、 .\" .B mincore -.\" ¤Ï MAP_PRIVATE ¥Þ¥Ã¥Ô¥ó¥°¤Ë¤Ä¤¤¤Æ¤ÎÀµ¤·¤¤¾ðÊó¤òÊÖ¤µ¤Ê¤¤¡£ +.\" は MAP_PRIVATE マッピングについての正しい情報を返さない。 .\"O .\" for a MAP_PRIVATE file mapping, .\"O .\" .B mincore .\"O .\" returns the residency of the file pages, rather than any .\"O .\" modified process-private pages that have been copied on write; -.\" MAP_PRIVATE ¥Õ¥¡¥¤¥ë¥Þ¥Ã¥Ô¥ó¥°¤Ë¤Ä¤¤¤Æ¡¢ +.\" MAP_PRIVATE ファイルマッピングについて、 .\" .B mincore -.\" ¤Ï½ñ¤­¹þ¤ß»þ¥³¥Ô¡¼ (copy on write) ¤µ¤ì¤Æ¤¤¤Æ -.\" ½¤Àµ¤µ¤ì¤¿¥×¥í¥»¥¹¤Î¥×¥é¥¤¥Ù¡¼¥È¥Ú¡¼¥¸¤òÊÖ¤¹¤Î¤Ç¤Ï¤Ê¤¯¡¢ -.\" ¥Õ¥¡¥¤¥ë¥Ú¡¼¥¸¤¬Â¸ºß¤¹¤ë¤«Èݤ«¤òÊÖ¤¹¡£ +.\" は書き込み時コピー (copy on write) されていて +.\" 修正されたプロセスのプライベートページを返すのではなく、 +.\" ファイルページが存在するか否かを返す。 .\"O .\" for a MAP_PRIVATE mapping of .\"O .\" .IR /dev/zero , .\"O .\" .B mincore .\"O .\" always reports pages as nonresident; .\" .I /dev/zero -.\" ¤Î MAP_PRIVATE ¥Þ¥Ã¥Ô¥ó¥°¤Ë¤Ä¤¤¤Æ¡¢ +.\" の MAP_PRIVATE マッピングについて、 .\" .B mincore -.\" ¤Ï¾ï¤Ë¥Ú¡¼¥¸¤¬Â¸ºß¤·¤Ê¤¤¤È¤¤¤¦Åú¤¨¤òÊÖ¤¹¡£ +.\" は常にページが存在しないという答えを返す。 .\"O .\" and for a MAP_PRIVATE, MAP_ANONYMOUS mapping, .\"O .\" .B mincore .\"O .\" always fails with the error .\"O .\" .BR ENOMEM . -.\" MAP_PRIVATE, MAP_ANONYMOUS ¥Þ¥Ã¥Ô¥ó¥°¤Ë¤Ä¤¤¤Æ¡¢ +.\" MAP_PRIVATE, MAP_ANONYMOUS マッピングについて、 .\" .B mincore -.\" ¤Ï¾ï¤Ë +.\" は常に .\" .B ENOMEM -.\" ¤Ç¼ºÇÔ¤¹¤ë¡£ +.\" で失敗する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mlock (2), .BR mmap (2) diff --git a/draft/man2/mkdir.2 b/draft/man2/mkdir.2 index aab527c4..8b3fa57f 100644 --- a/draft/man2/mkdir.2 +++ b/draft/man2/mkdir.2 @@ -17,16 +17,16 @@ .\" Updated Thu Mar 24 JST 2005 by Kentaro Shirakata .\" Updated Wed Jul 30 JST 2008 by Kentaro Shirakata .\" -.\"WORD: permission µö²Ä°À­ -.\"WORD: resolve (¥Ñ¥¹Ì¾¤ò) ²ò·è¤¹¤ë +.\"WORD: permission 許可属性 +.\"WORD: resolve (パス名を) 解決する .\" .TH MKDIR 2 2008-05-13 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mkdir \- create a directory -mkdir \- ¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤¹¤ë +mkdir \- ディレクトリを作成する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -35,14 +35,14 @@ mkdir \- .BI "int mkdir(const char *" pathname ", mode_t " mode ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR mkdir () .\"O attempts to create a directory named .\"O .IR pathname . .BR mkdir () -¤Ï +は .I pathname -¤Ç¼¨¤µ¤ì¤ë̾Á°¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤·¤è¤¦¤È¤¹¤ë¡£ +で示される名前のディレクトリを作成しようとする。 .\"O The argument .\"O .I mode @@ -52,17 +52,17 @@ mkdir \- .\"O in the usual way: the permissions of the created directory are .\"O .RI ( mode " & ~" umask " & 0777)." .I mode -°ú¤­¿ô¤Ï¡¢ºîÀ®¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Îµö²Ä°À­¤ò·èÄꤹ¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£ -¤³¤ÎÃͤˡ¢Ä̾ïÄ̤ê¥×¥í¥»¥¹¤Î +引き数は、作成されたディレクトリの許可属性を決定するのに使われる。 +この値に、通常通りプロセスの .I umask -¤Ë¤è¤ë½¤Àµ¤¬²Ã¤¨¤é¤ì¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢ºîÀ®¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Îµö²Ä°À­¤Ï +による修正が加えられる。 +したがって、作成されたディレクトリの許可属性は .RI ( mode " & ~" umask " & 0777)" -¤È¤Ê¤ë¡£ +となる。 .\"O Other mode bits of the created directory depend on the operating system. .\"O For Linux, see below. -ºîÀ®¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Î¤½¤Î¾¤Î¥â¡¼¥É¥Ó¥Ã¥È¤Ï¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ë -°Í¸¤¹¤ë¡£Linux ¤Î¾ì¹ç¤Ï¡¢°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +作成されたディレクトリのその他のモードビットはオペレーティングシステムに +依存する。Linux の場合は、以下の通りである。 .\"O The newly created directory will be owned by the effective user ID of the .\"O process. @@ -73,34 +73,34 @@ mkdir \- .\"O .IR "mount -o grpid" ), .\"O the new directory will inherit the group ownership from its parent; .\"O otherwise it will be owned by the effective group ID of the process. -¿·¤·¤¯ºîÀ®¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Î½êÍ­¼Ô¤Ï¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤ËÀßÄꤵ¤ì¤ë¡£ -¿·¤¿¤ËºîÀ®¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤¬´Þ¤Þ¤ì¤ë¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ë -set group ID ¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤¿¤ê¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ BSD ¤Î -¥°¥ë¡¼¥×¥»¥Þ¥ó¥Æ¥£¥¯¥¹ +新しく作成されたディレクトリの所有者はプロセスの実効ユーザ ID に設定される。 +新たに作成されたディレクトリが含まれる親ディレクトリに +set group ID ビットがセットされていたり、ファイルシステムが BSD の +グループセマンティクス .RI ( "mount -o bsdgroups" -¤¢¤ë¤¤¤Ï¡¢Æ±¤¸°ÕÌ£¤Î +あるいは、同じ意味の .IR "mount -o grpid" ) -¤Ë½¾¤Ã¤Æ¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -¿·¤¿¤ËºîÀ®¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Î¥°¥ë¡¼¥×½êÍ­¸¢¤Ï¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Î -¤â¤Î¤¬·Ñ¾µ¤µ¤ì¤ë (¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤ÈƱ¤¸¤Ë¤Ê¤ë)¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢¥°¥ë¡¼¥×½êÍ­¸¢¤Ï¥×¥í¥»¥¹¤Î¼Â¸ú¥°¥ë¡¼¥× ID ¤È¤Ê¤ë¡£ +に従ってマウントされている場合には、 +新たに作成されたディレクトリのグループ所有権は親ディレクトリの +ものが継承される (親ディレクトリと同じになる)。 +それ以外の場合は、グループ所有権はプロセスの実効グループ ID となる。 .\"O If the parent directory has the set-group-ID bit set then so will the .\"O newly created directory. -¤â¤·¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ë set group ID ¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ì¤Ð¿·¤·¤¯ºîÀ®¤µ¤ì¤ë -¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤â set group ID ¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +もし親ディレクトリに set group ID ビットがセットされていれば新しく作成される +ディレクトリにも set group ID ビットがセットされる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR mkdir () .\"O returns zero on success, or \-1 if an error occurred (in which case, .\"O .I errno .\"O is set appropriately). .BR mkdir () -¤ÏÀ®¸ù¤·¤¿¾ì¹ç 0 ¤ò¡¢¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤òÊÖ¤¹ (¤Þ¤¿¡¢ +は成功した場合 0 を、失敗した場合 \-1 を返す (また、 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤˤ·¤¿¤¬¤Ã¤ÆŬÀÚ¤ËÀßÄꤵ¤ì¤ë)¡£ +がエラーの内容にしたがって適切に設定される)。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O The parent directory does not allow write permission to the process, @@ -109,94 +109,94 @@ set group ID .\"O did not allow search permission. .\"O (See also .\"O .BR path_resolution (7).) -¥×¥í¥»¥¹¤¬¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ø¤Î½ñ¤­¹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤¤¡¢¤â¤·¤¯¤Ï +プロセスが親ディレクトリへの書き込み許可を持たない、もしくは .I pathname -Ãæ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¤É¤ì¤«¤Ë¸¡º÷µö²Ä°À­¤¬Ìµ¤¤ +中のディレクトリのどれかに検索許可属性が無い .RB ( path_resolution (7) -¤â»²¾È)¡£ +も参照)。 .TP .B EEXIST .\"O .I pathname .\"O already exists (not necessarily as a directory). .I pathname -¤¬´û¤Ë¸ºß¤·¤Æ¤¤¤ë(¤¿¤À¤·¤½¤ì¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¤È¤Ï¸Â¤é¤Ê¤¤)¡£ +が既に存在している(ただしそれがディレクトリであるとは限らない)。 .\"O This includes the case where .\"O .I pathname .\"O is a symbolic link, dangling or not. .I pathname -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¤â -(¤½¤Î»ØÄêÀ褬¸ºß¤¹¤ë¤«¤É¤¦¤«¤Ë´Ø¤é¤º)¥¨¥é¡¼¤Ë¤Ê¤ë¡£ +がシンボリックリンクの場合も +(その指定先が存在するかどうかに関らず)エラーになる。 .TP .B EFAULT .\"O .IR pathname " points outside your accessible address space." .I pathname -¤¬¤½¤Î¥×¥í¥»¥¹¤Î¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がそのプロセスのアクセス可能なアドレス空間の外を指している。 .TP .B ELOOP .\"O Too many symbolic links were encountered in resolving .\"O .IR pathname . -¥Ñ¥¹Ì¾ +パス名 .I pathname -¤ò²ò·è¤¹¤ë¤È¤­¤Ë¡¢²ò·è¤¹¤Ù¤­¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬Â¿¤¹¤®¤¿¡£ +を解決するときに、解決すべきシンボリックリンクが多すぎた。 .TP .B ENAMETOOLONG .\"O .IR pathname " was too long." .I pathname -¤¬Ä¹¤¹¤®¤ë¡£ +が長すぎる。 .TP .B ENOENT .\"O A directory component in .\"O .I pathname .\"O does not exist or is a dangling symbolic link. .I pathname -¤Î¹½À®Í×ÁǤΥǥ£¥ì¥¯¥È¥ê¤Î¤¤¤º¤ì¤«¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢ -¤Þ¤¿¤Ï¥ê¥ó¥¯À褬¸ºß¤·¤Ê¤¤¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¤¢¤ë¡£ +の構成要素のディレクトリのいずれかが存在しないか、 +またはリンク先が存在しないシンボリックリンクである。 .TP .B ENOMEM .\"O Insufficient kernel memory was available. -¥«¡¼¥Í¥ë¤Ë¡¢ÍøÍѤǤ­¤ë¥á¥â¥ê¤¬ÉÔ­¤·¤Æ¤¤¤ë¡£ +カーネルに、利用できるメモリが不足している。 .TP .B ENOSPC .\"O The device containing .\"O .I pathname .\"O has no room for the new directory. .I pathname -¤ò´Þ¤à¥Ç¥Ð¥¤¥¹¤Ë¿·¤¿¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤¹¤ë¶õ¤­¤¬Ìµ¤¤¡£ +を含むデバイスに新たにディレクトリを作成する空きが無い。 .TP .B ENOSPC -.\"?? ENOSPC ¤¬¥À¥Ö¤Ã¤Æ¤¤¤ë¤±¤É... +.\"?? ENOSPC がダブっているけど... .\"O The new directory cannot be created because the user's disk quota is .\"O exhausted. -¤â¤·¤¯¤Ï¥æ¡¼¥¶¡¼¤Î¥Ç¥£¥¹¥¯ quota ¤¬»È¤¤ÀÚ¤é¤ì¤Æ¤¤¤ë¤¿¤á¡¢ -¿·¤¿¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +もしくはユーザーのディスク quota が使い切られているため、 +新たにディレクトリを作成することができない。 .TP .B ENOTDIR .\"O A component used as a directory in .\"O .I pathname .\"O is not, in fact, a directory. .I pathname -Ãæ¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬¼ÂºÝ¤Ë¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +中のディレクトリ部分が実際にはディレクトリでない。 .TP .B EPERM .\"O The file system containing .\"O .I pathname .\"O does not support the creation of directories. .I pathname -¤ò´Þ¤à¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¥Ç¥£¥ì¥¯¥È¥ê¤ÎºîÀ®¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +を含むファイルシステムがディレクトリの作成をサポートしていない。 .TP .B EROFS .\"O .I pathname .\"O refers to a file on a read-only file system. .I pathname -¤¬Æɤ߽Ф·ÀìÍÑ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î¥Õ¥¡¥¤¥ë¤ò»Ø¤·¤Æ¤¤¤ë¡£ +が読み出し専用ファイルシステム上のファイルを指している。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O SVr4, BSD, POSIX.1-2001. .\"O .\" SVr4 documents additional EIO, EMULTIHOP SVr4, BSD, POSIX.1-2001. -.\" SVr4 ¤Ë¤Ï¤µ¤é¤Ë¥¨¥é¡¼¥³¡¼¥É EIO, EMULTIHOP ¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ +.\" SVr4 にはさらにエラーコード EIO, EMULTIHOP についての記述がある。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Under Linux apart from the permission bits, only the .\"O .B S_ISVTX .\"O mode bit is honored. @@ -204,24 +204,24 @@ SVr4, BSD, POSIX.1-2001. .\"O .RI ( mode " & ~" umask " & 01777)." .\"O See also .\"O .BR stat (2). -Linux ¤Ç¤Ï¡¢µö²Ä¥Ó¥Ã¥È°Ê³°¤Ç°ÕÌ£¤ò»ý¤Ä¤Î¤Ï¡¢ +Linux では、許可ビット以外で意味を持つのは、 .B S_ISVTX -¥â¡¼¥É¥Ó¥Ã¥È¤À¤±¤Ç¤¢¤ë¡£ -¤Ä¤Þ¤ê¡¢Linux ¤Ç¤ÏºîÀ®¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ï¼ÂºÝ¤Ë¤Ï +モードビットだけである。 +つまり、Linux では作成されたディレクトリは実際には .RI ( mode " & ~" umask " & 01777)" -¤Î¥â¡¼¥É¤ò»ý¤Ä¤³¤È¤Ë¤Ê¤ë¡£ +のモードを持つことになる。 .BR stat (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O There are many infelicities in the protocol underlying NFS. .\"O Some of these affect .\"O .BR mkdir (). -NFS ¤ò¼Â¸½¤·¤Æ¤¤¤ë¥×¥í¥È¥³¥ë¤Ë¤Ï¿¤¯¤ÎÉÔÈ÷¤¬Â¸ºß¤·¡¢ -¤½¤ì¤éÃæ¤Ë¤Ï +NFS を実現しているプロトコルには多くの不備が存在し、 +それら中には .BR mkdir () -¤Ë±Æ¶Á¤òÍ¿¤¨¤ë¤â¤Î¤â¤¢¤ë¡£ +に影響を与えるものもある。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mkdir (1), .BR chmod (2), .BR chown (2), diff --git a/draft/man2/mkdirat.2 b/draft/man2/mkdirat.2 index e21302d8..141c2af0 100644 --- a/draft/man2/mkdirat.2 +++ b/draft/man2/mkdirat.2 @@ -28,14 +28,14 @@ .\" .TH MKDIRAT 2 2009-12-13 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mkdirat \- create a directory relative to a directory file descriptor -mkdirat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÁêÂÐŪ¤Ê°ÌÃ֤˥ǥ£¥ì¥¯¥È¥ê¤òºîÀ®¤¹¤ë +mkdirat \- ディレクトリファイルディスクリプタから相対的な位置にディレクトリを作成する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .B #include /* Definition of AT_* constants */ -.B #include /* AT_* Äê¿ô¤ÎÄêµÁ */ +.B #include /* AT_* 定数の定義 */ .B #include .sp .BI "int mkdirat(int " dirfd ", const char *" pathname ", mode_t " mode ); @@ -44,9 +44,9 @@ mkdirat \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR mkdirat (): @@ -55,26 +55,26 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR mkdirat () .\"O system call operates in exactly the same way as .\"O .BR mkdir (2), .\"O except for the differences described in this manual page. .BR mkdirat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë°ã¤¤¤¬¤¢¤ë°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明している違いがある以外は、 .BR mkdir (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .\"O If the pathname given in .\"O .I pathname @@ -86,13 +86,13 @@ _ATFILE_SOURCE .\"O .BR mkdir (2) .\"O for a relative pathname). .I pathname -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹Ì¾¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パス名である場合、 +ファイルディスクリプタ .I dirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( mkdir (2) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスの +カレントワーキングディレクトリからの相対パスとなる)。 .\"O If .\"O .I pathname @@ -106,16 +106,16 @@ _ATFILE_SOURCE .\"O directory of the calling process (like .\"O .BR mkdir (2)). .I pathname -¤¬ÁêÂХѥ¹¤Ç¤¢¤ê¡¢¤«¤Ä +が相対パスであり、かつ .I dirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I pathname -¤Ï +は .RB ( mkdir (2) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .\"O If .\"O .I pathname @@ -123,43 +123,43 @@ _ATFILE_SOURCE .\"O .I dirfd .\"O is ignored. .I pathname -¤¬ÀäÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ +が絶対パスである場合、 .I dirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR mkdirat () .\"O returns 0. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR mkdirat () -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .\"O On error, \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +エラーの場合、\-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ +にはエラーを示す値が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O The same errors that occur for .\"O .BR mkdir (2) .\"O can also occur for .\"O .BR mkdirat (). .BR mkdir (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR mkdirat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .\"O The following additional errors can occur for .\"O .BR mkdirat (): .BR mkdirat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .\"O .I dirfd .\"O is not a valid file descriptor. .I dirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B ENOTDIR .\"O .I pathname @@ -167,31 +167,31 @@ _ATFILE_SOURCE .\"O .I dirfd .\"O is a file descriptor referring to a file other than a directory. .I pathname -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I dirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR mkdirat () .\"O was added to Linux in kernel 2.6.16. .BR mkdirat () -¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ +は Linux カーネル 2.6.16 で追加された。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O See .\"O .BR openat (2) .\"O for an explanation of the need for .\"O .BR mkdirat (). .\"O .BR mkdirat () -¤¬É¬ÍפÊÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が必要な理由については、 .BR openat (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O .SH "SEE ALSO" -.SH ÀâÌÀ +.SH 説明 .BR mkdir (2), .BR openat (2), .BR path_resolution (7) diff --git a/draft/man2/mknod.2 b/draft/man2/mknod.2 index 1a5cfc93..597fdf7a 100644 --- a/draft/man2/mknod.2 +++ b/draft/man2/mknod.2 @@ -20,17 +20,17 @@ .\" Updated & Modified 2004-12-31, Yuichi SATO .\" Updated 2005-09-06, Akihiro MOTOKI .\" -.\"WORD: node ¥Î¡¼¥É -.\"WORD: permission µö²Ä°À­ -.\"WORD: resolve (¥Ñ¥¹Ì¾¤ò) ²ò·è¤¹¤ë +.\"WORD: node ノード +.\"WORD: permission 許可属性 +.\"WORD: resolve (パス名を) 解決する .\" .TH MKNOD 2 2010-09-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mknod \- create a special or ordinary file -mknod \- Æüì¥Õ¥¡¥¤¥ë¤äÄ̾ï¤Î¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë +mknod \- 特殊ファイルや通常のファイルを作成する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -43,9 +43,9 @@ mknod \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR mknod (): @@ -56,7 +56,7 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The system call .\"O .BR mknod () .\"O creates a file system node (file, device special file or @@ -66,39 +66,39 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O .I mode .\"O and .\"O .IR dev . -¥·¥¹¥Æ¥à¥³¡¼¥ë +システムコール .BR mknod () -¤Ï +は .I pathname -¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¡¦¥Î¡¼¥É -(¥Õ¥¡¥¤¥ë¡¢¥Ç¥Ð¥¤¥¹¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¡¢Ì¾Á°ÉÕ¤­¥Ñ¥¤¥×) ¤ò¡¢ -°À­ +という名前のファイルシステム・ノード +(ファイル、デバイススペシャルファイル、名前付きパイプ) を、 +属性 .I mode -¤È +と .I dev -¤Î»ØÄê¤Ë¤·¤¿¤¬¤Ã¤ÆºîÀ®¤¹¤ë¡£ +の指定にしたがって作成する。 .\"O The .\"O .I mode .\"O argument specifies both the permissions to use and the type of node .\"O to be created. .I mode -°ú¤­¿ô¤Ë¤Ï¡¢ºîÀ®¤¹¤ë¥Î¡¼¥É¤Îµö²Ä°À­ (permission) ¤È¥¿¥¤¥×¤ò»ØÄꤹ¤ë¡£ +引き数には、作成するノードの許可属性 (permission) とタイプを指定する。 .\"O It should be a combination (using bitwise OR) of one of the file types .\"O listed below and the permissions for the new node. .I mode -¤Î»ØÄê¤Ï°Ê²¼¤Ë¤¢¤²¤ë¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤Î¤¦¤Á¤Î 1 ¤Ä¤È¡¢ -µö²Ä°À­¤ÎÁȹ礻 (¥Ó¥Ã¥È¤´¤È¤Î OR ¤ò»ÈÍÑ) ¤Ç¹Ô¤¦¡£ +の指定は以下にあげるファイルタイプのうちの 1 つと、 +許可属性の組合せ (ビットごとの OR を使用) で行う。 .\"O The permissions are modified by the process's .\"O .I umask .\"O in the usual way: the permissions of the created node are .\"O .IR "(mode & ~umask)" . -µö²Ä°À­¤ÏÄ̾ïÄ̤ꡢ¥×¥í¥»¥¹¤Î +許可属性は通常通り、プロセスの .I umask -¤Ë¤è¤Ã¤Æ½¤Àµ¤µ¤ì¡¢ºîÀ®¤µ¤ì¤¿¥Î¡¼¥É¤Îµö²Ä°À­¤Ï +によって修正され、作成されたノードの許可属性は .I "(mode & ~umask)" -¤È¤Ê¤ë¡£ +となる。 .\"O The file type must be one of .\"O .BR S_IFREG , @@ -113,20 +113,20 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O respectively. .\"O (Zero file type is equivalent to type .\"O .BR S_IFREG .) -¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤Ë¤Ï +ファイルタイプには .BR S_IFREG , .BR S_IFCHR , .BR S_IFBLK , .BR S_IFIFO , .B S_IFSOCK -.\" (S_IFSOCK ¤Ï Linux 1.2.4 ¤«¤é¸ºß¤¹¤ë) -¤Î¤¤¤º¤ì¤«¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤½¤ì¤¾¤ì½ç¤Ë¡¢Ä̾ï¤Î¥Õ¥¡¥¤¥ë (¶õ¤Î¥Õ¥¡¥¤¥ë¤È¤·¤ÆºîÀ®¤µ¤ì¤ë)¡¦ -¥­¥ã¥é¥¯¥¿¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¡¦¥Ö¥í¥Ã¥¯¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¡¦ -FIFO (̾Á°ÉÕ¤­¥Ñ¥¤¥×)¡¦UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤Ç¤¢¤ë -(¥Õ¥¡¥¤¥ë¥¿¥¤¥× 0 ¤Ï +.\" (S_IFSOCK は Linux 1.2.4 から存在する) +のいずれかを指定しなければならない。 +それぞれ順に、通常のファイル (空のファイルとして作成される)・ +キャラクタスペシャルファイル・ブロックスペシャルファイル・ +FIFO (名前付きパイプ)・UNIX ドメインソケットである +(ファイルタイプ 0 は .B S_IFREG -¤ÈƱ¤¸¤Ç¤¢¤ë)¡£ +と同じである)。 .\"O If the file type is .\"O .B S_IFCHR @@ -140,21 +140,21 @@ FIFO (̾ .\"O may be useful to build the value for .\"O .IR dev ); .\"O otherwise it is ignored. -¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤¬ +ファイルタイプが .B S_IFCHR -¤Þ¤¿¤Ï +または .B S_IFBLK -¤Î¤È¤­¡¢ +のとき、 .I dev -¤Ë¤ÏºîÀ®¤¹¤ë¥Ç¥Ð¥¤¥¹¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤Î¥á¥¸¥ã¡¼ÈÖ¹æ¤È -¥Þ¥¤¥Ê¡¼ÈÖ¹æ¤ò»ØÄꤹ¤ë +には作成するデバイススペシャルファイルのメジャー番号と +マイナー番号を指定する .RB ( makedev (3) -¤Ï +は .I dev -¤Î¤³¤ì¤é¤ÎÈÖ¹æ¤òºîÀ®¤¹¤ëºÝ¤ËÌòΩ¤Ä¤À¤í¤¦)¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï +のこれらの番号を作成する際に役立つだろう)。 +それ以外の場合は .I dev -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\"O If .\"O .I pathname @@ -162,10 +162,10 @@ FIFO (̾ .\"O .B EEXIST .\"O error. .I pathname -¤¬´û¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢¤Þ¤¿¤Ï¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¡¢ -¤³¤Î¸Æ¤Ó½Ð¤·¤Ï +が既に存在する場合、またはシンボリックリンクの場合、 +この呼び出しは .B EEXIST -¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë¡£ +エラーで失敗する。 .\"O The newly created node will be owned by the effective user ID of the .\"O process. @@ -173,26 +173,26 @@ FIFO (̾ .\"O bit set, or if the file system is mounted with BSD group semantics, the .\"O new node will inherit the group ownership from its parent directory; .\"O otherwise it will be owned by the effective group ID of the process. -¿·¤·¤¯ºîÀ®¤µ¤ì¤¿¥Î¡¼¥É¤Î½êÍ­¼Ô¤Ï¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ -¿·¤¿¤Ëºî¤é¤ì¤¿¥Î¡¼¥É¤òÊÝ»ý¤¹¤ë -¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Î set-group-ID ¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤¿¤ê¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ BSD ¤Î¥°¥ë¡¼¥×¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤Ë¤·¤¿¤¬¤Ã¤Æ -¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢¿·¤·¤¤¥Î¡¼¥É¤Î¥°¥ë¡¼¥×½êÍ­¸¢¤Ï¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Î -¥°¥ë¡¼¥×½êÍ­¸¢¤ò·Ñ¾µ¤¹¤ë (¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤ÈƱ¤¸¤Ë¤Ê¤ë)¡£ -¤Þ¤¿¡¢¤½¤¦¤Ç¤Ê¤«¤Ã¤¿¾ì¹ç¤Î½êÍ­¥°¥ë¡¼¥×¤Ï¥×¥í¥»¥¹¤Î¼Â¸ú¥°¥ë¡¼¥× ID ¤È¤Ê¤ë¡£ +新しく作成されたノードの所有者はプロセスの実効ユーザ ID にセットされる。 +新たに作られたノードを保持する +親ディレクトリの set-group-ID ビットがセットされていたり、 +ファイルシステムが BSD のグループセマンティクスにしたがって +マウントされている場合には、新しいノードのグループ所有権は親ディレクトリの +グループ所有権を継承する (親ディレクトリと同じになる)。 +また、そうでなかった場合の所有グループはプロセスの実効グループ ID となる。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR mknod () .\"O returns zero on success, or \-1 if an error occurred (in which case, .\"O .I errno .\"O is set appropriately). .BR mknod () -¤ÏÀ®¸ù¤·¤¿¾ì¹ç 0 ¤ò¡¢¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤òÊÖ¤¹ -(¼ºÇÔ¤·¤¿¾ì¹ç +は成功した場合 0 を、失敗した場合 \-1 を返す +(失敗した場合 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤˤ·¤¿¤¬¤Ã¤Æ¥»¥Ã¥È¤µ¤ì¤ë)¡£ +がエラーの内容にしたがってセットされる)。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O The parent directory does not allow write permission to the process, @@ -201,12 +201,12 @@ FIFO (̾ .\"O did not allow search permission. .\"O (See also .\"O .BR path_resolution (7).) -¥×¥í¥»¥¹¤¬¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ø¤Î½ñ¤­¹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤¤¡£ -¤â¤·¤¯¤Ï¥Ñ¥¹Ì¾ +プロセスが親ディレクトリへの書き込み許可を持たない。 +もしくはパス名 .I pathname -Ãæ¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤Î¤É¤ì¤«¤Ë¸¡º÷µö²Ä°À­¤¬Ìµ¤¤ +中のディレクトリ部分のどれかに検索許可属性が無い .RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È)¡£ +も参照すること)。 .TP .B EEXIST .\"O .I pathname @@ -215,62 +215,62 @@ FIFO (̾ .\"O .I pathname .\"O is a symbolic link, dangling or not. .I pathname -¤¬´û¤Ë¸ºß¤¹¤ë¡£ -¤³¤ì¤Ë¤Ï +が既に存在する。 +これには .I pathname -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ç¤¢¤ë¾ì¹ç¤â´Þ¤Þ¤ì¤ë -(¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬²õ¤ì¤Æ¤¤¤ë¤« (dangling) ¤É¤¦¤«¤Ï´Ø·¸¤Ê¤¤)¡£ +がシンボリック・リンクである場合も含まれる +(シンボリック・リンクが壊れているか (dangling) どうかは関係ない)。 .TP .B EFAULT .\"O .IR pathname " points outside your accessible address space." .I pathname -¤¬¤½¤Î¥×¥í¥»¥¹¤Î¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がそのプロセスのアクセス可能なアドレス空間の外を指している。 .TP .B EINVAL .\"O .I mode .\"O requested creation of something other than a regular file, device .\"O special file, FIFO or socket. .I mode -¤¬Ä̾ï¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥Ð¥¤¥¹¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¡¦FIFO¡¦¥½¥±¥Ã¥È°Ê³°¤ò -ºîÀ®¤¹¤ë¤è¤¦¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¡£ +が通常のファイル・デバイススペシャルファイル・FIFO・ソケット以外を +作成するようにセットされている。 .TP .B ELOOP .\"O Too many symbolic links were encountered in resolving .\"O .IR pathname . -¥Ñ¥¹Ì¾ +パス名 .I pathname -¤ò²ò·è¤¹¤ë¤È¤­¤Ë¡¢´Þ¤Þ¤ì¤Æ¤¤¤ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬Â¿¤¹¤®¤¿¡£ +を解決するときに、含まれているシンボリックリンクが多すぎた。 .TP .B ENAMETOOLONG .\"O .IR pathname " was too long." .I pathname -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENOENT .\"O A directory component in .\"O .I pathname .\"O does not exist or is a dangling symbolic link. .I pathname -Ãæ¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢ -¤Þ¤¿¤Ï¥ê¥ó¥¯Àè¤Î̵¤¤¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¤¢¤ë¡£ +中で指定されているディレクトリが存在しないか、 +またはリンク先の無いシンボリックリンクである。 .TP .B ENOMEM .\"O Insufficient kernel memory was available. -½½Ê¬¤Ê¥«¡¼¥Í¥ë¥á¥â¥ê¤¬Ìµ¤¤¡£ +十分なカーネルメモリが無い。 .TP .B ENOSPC .\"O The device containing .\"O .I pathname .\"O has no room for the new node. .I pathname -¤Î¤¢¤ë¥Ç¥Ð¥¤¥¹¤Ë¿·¤¿¤Ë¥Î¡¼¥É¤òºîÀ®¤¹¤ë¶õ¤­¤¬Ìµ¤¤¡£ +のあるデバイスに新たにノードを作成する空きが無い。 .TP .B ENOTDIR .\"O A component used as a directory in .\"O .I pathname .\"O is not, in fact, a directory. .I pathname -Ãæ¤Î¥Ç¥£¥ì¥¯¥È¥êÍ×ÁǤ¬¡¢¼ÂºÝ¤Ë¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +中のディレクトリ要素が、実際にはディレクトリでない。 .TP .B EPERM .\"O .I mode @@ -286,35 +286,35 @@ FIFO (̾ .\"O .I pathname .\"O does not support the type of node requested. .I mode -¤ÏÄ̾ï¤Î¥Õ¥¡¥¤¥ë¡¦FIFO (̾Á°ÉÕ¤­¥Ñ¥¤¥×)¡¦UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È°Ê³°¤ò -ºîÀ®¤¹¤ë¤è¤¦¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤¬¡¢¼Â¹Ô¼Ô¤¬Æø¢ -(Linux ¤Ç¤Ï +は通常のファイル・FIFO (名前付きパイプ)・UNIX ドメインソケット以外を +作成するようにセットされているが、実行者が特権 +(Linux では .B CAP_MKNOD -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability)) ¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -.\" UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤ÈÄ̾ï¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ mknod() ¤ò¹Ô¤¦¤È¡¢ -.\" Linux 2.2 °ÊÁ°¤Ç¤Ï EPERM ¤òÊÖ¤¹¤À¤±¤Ç¤¢¤ë¡£ -.\" Linux 2.4 °Ê¹ß¤Ç¤ÏÆø¢¤ò»ý¤Ã¤Æ¤¤¤Ê¤¯¤Æ¤â¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ò -.\" ºîÀ®¤¹¤ë¤Î¤Ë mknod() ¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤Þ¤¿¤Ï +ケーパビリティ (capability)) を持っていない。 +.\" UNIX ドメインソケットと通常ファイルに対して mknod() を行うと、 +.\" Linux 2.2 以前では EPERM を返すだけである。 +.\" Linux 2.4 以降では特権を持っていなくてもこれらのファイルを +.\" 作成するのに mknod() を使用することができる。 +または .I pathname -¤òÊÝ»ý¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¡¢»ØÄꤵ¤ì¤¿¥Î¡¼¥É·Á¼°¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +を保持するファイルシステムが、指定されたノード形式をサポートしていない。 .TP .B EROFS .\"O .I pathname .\"O refers to a file on a read-only file system. .I pathname -¤¬Æɤ߽Ф·ÀìÍÑ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î¥Õ¥¡¥¤¥ë¤ò»Ø¤·¤Æ¤¤¤ë¡£ +が読み出し専用ファイルシステム上のファイルを指している。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O SVr4, 4.4BSD, POSIX.1-2001 (but see below). .\"O .\" The Linux version differs from the SVr4 version in that it .\"O .\" does not require root permission to create pipes, also in that no .\"O .\" EMULTIHOP, ENOLINK, or EINTR error is documented. -SVr4, 4.4BSD, POSIX.1-2001 (²¼µ­¤â»²¾È). -.\" Linux ¤Î¼ÂÁõ¤Ï SVr4 ¤Î¼ÂÁõ¤È°Û¤Ê¤ê¡¢¥Ñ¥¤¥×¤ÎºîÀ®¤Ë¤Ï root ¸¢¸Â¤¬ÉÔÍפǤ¢¤ë¡£ -.\" ¤Þ¤¿ EMULTIHOP ¤È ENOLINK ¤È EINTR ¤Î¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Ïµ­½Ò¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +SVr4, 4.4BSD, POSIX.1-2001 (下記も参照). +.\" Linux の実装は SVr4 の実装と異なり、パイプの作成には root 権限が不要である。 +.\" また EMULTIHOP と ENOLINK と EINTR のエラーについては記述されていない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O POSIX.1-2001 says: "The only portable use of .\"O .BR mknod () .\"O is to create a FIFO-special file. @@ -327,48 +327,48 @@ SVr4, 4.4BSD, POSIX.1-2001 ( .\"O is not 0, the behavior of .\"O .BR mknod () .\"O is unspecified." -POSIX.1-2001 ¤Ç¤Ï¼¡¤Î¤è¤¦¤Ë½ñ¤¤¤Æ¤¤¤ë¡§ -.RB ¡Ö mknod () -¤ÎÍ£°ì¤Î°Ü¿¢À­¤Î¤¢¤ë»ÈÍÑË¡¤Ï¡¢FIFO ¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£ +POSIX.1-2001 では次のように書いている: +.RB 「 mknod () +の唯一の移植性のある使用法は、FIFO スペシャルファイルを作成することである。 .I mode -¤¬ +が .B S_IFIFO -¤Ç¤Ï¤Ê¤¤¾ì¹ç¡¢¤Þ¤¿¤Ï +ではない場合、または .I dev -¤¬ 0 ¤Ç¤Ï¤Ê¤¤¾ì¹ç¡¢ +が 0 ではない場合、 .BR mknod () -¤ÎµóÆ°¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£¡× +の挙動は規定されていない。」 .\"O However, nowadays one should never use .\"O .BR mknod () .\"O for this purpose; one should use .\"O .BR mkfifo (3), .\"O a function especially defined for this purpose. -¤·¤«¤·¤Ê¤¬¤é¡¢¸½ºß¤Ç¤Ï¤³¤ÎÌÜŪ¤Î¤¿¤á¤Ë +しかしながら、現在ではこの目的のために .BR mknod () -¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£¤³¤ÎÌÜŪ¤Î¤¿¤á¤ËÆÃÊ̤ËÄêµÁ¤µ¤ì¤¿´Ø¿ô¤Ç¤¢¤ë +を使用すべきではない。この目的のために特別に定義された関数である .BR mkfifo () -¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +を使用すべきである。 .\"O Under Linux, this call cannot be used to create directories. -Linux ¤Ç¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤¹¤ë¤¿¤á¤Ë -¤³¤Î¸Æ¤Ó½Ð¤·¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +Linux では、ディレクトリを作成するために +この呼び出しを使用することはできない。 .\"O One should make directories with .\"O .BR mkdir (2). -¥Ç¥£¥ì¥¯¥È¥ê¤Ï +ディレクトリは .BR mkdir (2) -¤ÇºîÀ®¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +で作成すべきである。 .\"O .\" and one should make UNIX domain sockets with socket(2) and bind(2). -.\" UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤Ï socket(2) ¤È bind(2) ¤ÇºîÀ®¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +.\" UNIX ドメインソケットは socket(2) と bind(2) で作成すべきである。 .\"O There are many infelicities in the protocol underlying NFS. .\"O Some of these affect .\"O .BR mknod (). -NFS ¤ò¼Â¸½¤·¤Æ¤¤¤ë¥×¥í¥È¥³¥ë¤Ë¤Ï¿¤¯¤ÎÉÔÈ÷¤¬Â¸ºß¤·¡¢ -¤½¤ì¤é¤Î¤¤¤¯¤Ä¤«¤Ï +NFS を実現しているプロトコルには多くの不備が存在し、 +それらのいくつかは .BR mknod () -¤Ë±Æ¶Á¤òÍ¿¤¨¤ë¡£ +に影響を与える。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chmod (2), .BR chown (2), .BR fcntl (2), diff --git a/draft/man2/mknodat.2 b/draft/man2/mknodat.2 index 0d9f2c5b..bd1982dc 100644 --- a/draft/man2/mknodat.2 +++ b/draft/man2/mknodat.2 @@ -28,16 +28,16 @@ .\" .TH MKNODAT 2 2010-09-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mknodat \- create a special or ordinary file relative to a directory .\"O file descriptor -mknodat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÁêÂÐŪ¤Ê°ÌÃ֤ˡ¢ -Æüì¥Õ¥¡¥¤¥ë¤äÄ̾ï¤Î¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë +mknodat \- ディレクトリファイルディスクリプタから相対的な位置に、 +特殊ファイルや通常のファイルを作成する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .B #include /* Definition of AT_* constants */ -.B #include /* AT_* Äê¿ô¤ÎÄêµÁ */ +.B #include /* AT_* 定数の定義 */ .B #include .sp .BI "int mknodat(int " dirfd ", const char *" pathname ", mode_t " mode \ @@ -47,9 +47,9 @@ mknodat \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR mknodat (): @@ -58,28 +58,28 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 .\" Other FTM combinations will also expose mknodat(), but this function was .\" added in SUSv4, marked XSI, so we'll just document what the standard says .TP 4 .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR mknodat () .\"O system call operates in exactly the same way as .\"O .BR mknod (2), .\"O except for the differences described in this manual page. .BR mknodat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë°ã¤¤¤¬¤¢¤ë°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明している違いがある以外は、 .BR mknod (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .\"O If the pathname given in .\"O .I pathname @@ -91,13 +91,13 @@ _ATFILE_SOURCE .\"O .BR mknod (2) .\"O for a relative pathname). .I pathname -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹Ì¾¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パス名である場合、 +ファイルディスクリプタ .I dirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( mknod (2) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスの +カレントワーキングディレクトリからの相対パスとなる)。 .\"O If .\"O .I pathname @@ -111,16 +111,16 @@ _ATFILE_SOURCE .\"O directory of the calling process (like .\"O .BR mknod (2)). .I pathname -¤¬ÁêÂХѥ¹¤Ç¤¢¤ê¡¢¤«¤Ä +が相対パスであり、かつ .I dirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I pathname -¤Ï +は .RB ( mknod (2) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .\"O If .\"O .I pathname @@ -128,43 +128,43 @@ _ATFILE_SOURCE .\"O .I dirfd .\"O is ignored. .I pathname -¤¬ÀäÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ +が絶対パスである場合、 .I dirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR mknodat () .\"O returns 0. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR mknodat () -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .\"O On error, \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +エラーの場合、\-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ +にはエラーを示す値が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O The same errors that occur for .\"O .BR mknod (2) .\"O can also occur for .\"O .BR mknodat (). .BR mknod (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR mknodat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .\"O The following additional errors can occur for .\"O .BR mknodat (): .BR mknodat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .\"O .I dirfd .\"O is not a valid file descriptor. .I dirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B ENOTDIR .\"O .I pathname @@ -172,30 +172,30 @@ _ATFILE_SOURCE .\"O .I dirfd .\"O is a file descriptor referring to a file other than a directory. .I pathname -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I dirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR mknodat () .\"O was added to Linux in kernel 2.6.16. .BR mknodat () -¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ +は Linux カーネル 2.6.16 で追加された。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O See .\"O .BR openat (2) .\"O for an explanation of the need for .\"O .BR mknodat (). .BR mknodat () -¤¬É¬ÍפÊÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が必要な理由については、 .BR openat (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mknod (2), .BR openat (2), .BR path_resolution (7) diff --git a/draft/man2/mlock.2 b/draft/man2/mlock.2 index e8823e89..346c1fd5 100644 --- a/draft/man2/mlock.2 +++ b/draft/man2/mlock.2 @@ -34,16 +34,16 @@ .\" Updated 2006-02-14, Akihiro MOTOKI .\" Updated 2008-11-10, Akihiro MOTOKI, LDP v3.13 .\" -.\"WORD: unlock ¥í¥Ã¥¯²ò½ü -.\"WORD: previlege Æø¢ +.\"WORD: unlock ロック解除 +.\"WORD: previlege 特権 .\" .TH MLOCK 2 2008-09-25 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O mlock, munlock, mlockall, munlockall \- lock and unlock memory -.SH ̾Á° -mlock \- ¥á¥â¥ê¤Î¥í¥Ã¥¯¤È¥í¥Ã¥¯²ò½ü¤ò¹Ô¤¦ +.SH 名前 +mlock \- メモリのロックとロック解除を行う .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -54,7 +54,7 @@ mlock \- .B int munlockall(void); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR mlock () .\"O and .\"O .BR mlockall () @@ -70,19 +70,19 @@ mlock \- .\"O once more to be swapped out if required by the kernel memory manager. .\"O Memory locking and unlocking are performed in units of whole pages. .BR mlock () -¤È +と .BR mlockall () -¤Ï¤½¤ì¤¾¤ì¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î²¾ÁÛ¥¢¥É¥ì¥¹¶õ´Ö¤Î°ìÉô¤Þ¤¿¤ÏÁ´Éô¤ò -RAM ¾å¤Ë¥í¥Ã¥¯¤·¡¢¥á¥â¥ê¤¬¥¹¥ï¥Ã¥×¥¨¥ê¥¢¤Ë¥Ú¡¼¥¸¥ó¥°¤µ¤ì¤ë¤Î¤òËɤ°¡£ +はそれぞれ、呼び出し元プロセスの仮想アドレス空間の一部または全部を +RAM 上にロックし、メモリがスワップエリアにページングされるのを防ぐ。 .BR munlock () -¤È +と .BR munlockall () -¤ÏµÕ¤ÎÁàºî¤Ç¡¢¤½¤ì¤¾¤ì¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î²¾ÁÛ¥¢¥É¥ì¥¹¶õ´Ö¤Î°ìÉô¤Þ¤¿¤ÏÁ´Éô¤ò -¥í¥Ã¥¯²ò½ü¤¹¤ë¡£¤Ä¤Þ¤ê¡¢»ØÄꤵ¤ì¤¿²¾ÁÛ¥¢¥É¥ì¥¹ÈϰϤΥڡ¼¥¸¤Ï -¥«¡¼¥Í¥ë¥á¥â¥ê¥Þ¥Í¡¼¥¸¥ã¡¼¤«¤éÍ׵ᤵ¤ì¤ì¤Ð¥¹¥ï¥Ã¥×¥¢¥¦¥È¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¥á¥â¥ê¤Î¥í¥Ã¥¯¤È¥í¥Ã¥¯²ò½ü¤Ï¥Ú¡¼¥¸Ã±°Ì¤Ç¹Ô¤ï¤ì¤ë¡£ +は逆の操作で、それぞれ呼び出し元プロセスの仮想アドレス空間の一部または全部を +ロック解除する。つまり、指定された仮想アドレス範囲のページは +カーネルメモリマネージャーから要求されればスワップアウトするようになる。 +メモリのロックとロック解除はページ単位で行われる。 .\"O .SS "mlock() and munlock()" -.SS "mlock() ¤È munlock()" +.SS "mlock() と munlock()" .\"O .BR mlock () .\"O locks pages in the address range starting at .\"O .I addr @@ -93,15 +93,15 @@ RAM .\"O guaranteed to be resident in RAM when the call returns successfully; .\"O the pages are guaranteed to stay in RAM until later unlocked. .BR mlock () -¤Ï +は .I addr -¤«¤é»Ï¤Þ¤ëŤµ +から始まる長さ .I len -¥Ð¥¤¥È¤Î¥¢¥É¥ì¥¹ÈϰϤΥڡ¼¥¸¤ò¥í¥Ã¥¯¤¹¤ë¡£ -¸Æ¤Ó½Ð¤·¤¬À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ -»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹ÈϰϤò´Þ¤àÁ´¤Æ¤Î¥Ú¡¼¥¸¤Ï -RAM ¤Ë»Ä¤ê³¤±¤ë¤³¤È¤¬Êݾڤµ¤ì¤ë¡£ -¤³¤ì¤é¤Î¥Ú¡¼¥¸¤Ï¸å¤Ç¥í¥Ã¥¯²ò½ü¤µ¤ì¤ë¤Þ¤Ç RAM ¤Ë»Ä¤ê³¤±¤ë¤³¤È¤¬Êݾڤµ¤ì¤ë¡£ +バイトのアドレス範囲のページをロックする。 +呼び出しが成功した場合には、 +指定されたアドレス範囲を含む全てのページは +RAM に残り続けることが保証される。 +これらのページは後でロック解除されるまで RAM に残り続けることが保証される。 .\"O .BR munlock () .\"O unlocks pages in the address range starting at @@ -112,15 +112,15 @@ RAM .\"O After this call, all pages that contain a part of the specified .\"O memory range can be moved to external swap space again by the kernel. .BR munlock () -¤Ï¡¢ +は、 .I addr -¤«¤é»Ï¤Þ¤ëŤµ +から始まる長さ .I len -¥Ð¥¤¥È¤Î¥¢¥É¥ì¥¹ÈϰϤΥڡ¼¥¸¤Î¥í¥Ã¥¯¤ò²ò½ü¤¹¤ë¡£ -¤³¤Î¸Æ¤Ó½Ð¤·¤ò¹Ô¤Ã¤¿¸å¤Ï¡¢¥«¡¼¥Í¥ë¤¬¡¢»ØÄꤵ¤ì¤¿¥á¥â¥êÈϰϤò´Þ¤à -Á´¤Æ¤Î¥Ú¡¼¥¸¤ò³°Éô¤Î¥¹¥ï¥Ã¥×¶õ´Ö¤Ë°ÜÆ°¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +バイトのアドレス範囲のページのロックを解除する。 +この呼び出しを行った後は、カーネルが、指定されたメモリ範囲を含む +全てのページを外部のスワップ空間に移動できるようになる。 .\"O .SS "mlockall() and munlockall()" -.SS "mlockall() ¤È munlockall()" +.SS "mlockall() と munlockall()" .\"O .BR mlockall () .\"O locks all pages mapped into the address space of the .\"O calling process. @@ -131,25 +131,25 @@ RAM .\"O to be resident in RAM when the call returns successfully; .\"O the pages are guaranteed to stay in RAM until later unlocked. .BR mlockall () -¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¥Ú¡¼¥¸¤ò -¥í¥Ã¥¯¤¹¤ë¡£¤³¤ì¤Ë¤Ï¥³¡¼¥É¡¢¥Ç¡¼¥¿¡¢¥¹¥¿¥Ã¥¯¤Î -³Æ¥»¥°¥á¥ó¥È¡¢¶¦Í­¥é¥¤¥Ö¥é¥ê¡¢¥«¡¼¥Í¥ë¤Î¥æ¡¼¥¶¡¼¶õ´Ö¥Ç¡¼¥¿¡¢ -¶¦Í­¥á¥â¥ê¡¢¥á¥â¥ê¡¦¥Þ¥Ã¥×¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤ë¡£ -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤¬À®¸ù¤·¤¿¾ì¹ç¤Ë¤ÏÁ´¤Æ¤Î¥Þ¥Ã¥×¤µ¤ì¤¿¥Ú¡¼¥¸¤Ï RAM ¤Ë -»Ä¤ë¤³¤È¤òÊݾڤµ¤ì¤ë¡£ -¤³¤ì¤é¤Î¥Ú¡¼¥¸¤Ï¸å¤Ç¥í¥Ã¥¯²ò½ü¤µ¤ì¤ë¤Þ¤Ç RAM ¤Ë»Ä¤ê³¤±¤ë¤³¤È¤¬Êݾڤµ¤ì¤ë¡£ +は呼び出し元プロセスのアドレス空間にマップされている全てのページを +ロックする。これにはコード、データ、スタックの +各セグメント、共有ライブラリ、カーネルのユーザー空間データ、 +共有メモリ、メモリ・マップされたファイルが含まれる。 +システム・コールが成功した場合には全てのマップされたページは RAM に +残ることを保証される。 +これらのページは後でロック解除されるまで RAM に残り続けることが保証される。 .\"O The .\"O .I flags .\"O argument is constructed as the bitwise OR of one or more of the .\"O following constants: .I flags -°ú¿ô¤Ï°Ê²¼¤ÎÆâÍƤΰì¤Ä¤Þ¤¿¤ÏÊ£¿ô¤Î¥Ó¥Ã¥È OR ¤«¤é¹½À®¤µ¤ì¤ë: +引数は以下の内容の一つまたは複数のビット OR から構成される: .TP 1.2i .B MCL_CURRENT .\"O Lock all pages which are currently mapped into the address space of .\"O the process. -¸½ºß¡¢¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¥Ú¡¼¥¸¤ò¥í¥Ã¥¯¤¹¤ë¡£ +現在、プロセスのアドレス空間にマップされている全てのページをロックする。 .TP .B MCL_FUTURE .\"O Lock all pages which will become mapped into the address space of the @@ -157,9 +157,9 @@ RAM .\"O These could be for instance new pages required .\"O by a growing heap and stack as well as new memory mapped files or .\"O shared memory regions. -¾­Íè¡¢¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¥Þ¥Ã¥×¤µ¤ì¤ëÁ´¤Æ¤Î¥Ú¡¼¥¸¤ò¥í¥Ã¥¯¤¹¤ë¡£ -Î㤨¤Ð¡¢¥Ò¡¼¥× (heap) ¤ä¥¹¥¿¥Ã¥¯¤ÎÀ®Ä¹¤Ë¤è¤ê¿·¤·¤¯É¬Íפˤʤä¿¥Ú¡¼¥¸¤À¤±¤Ç -¤Ê¤¯¡¢¿·¤·¤¯¥á¥â¥ê¥Þ¥Ã¥×¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ä¶¦Í­¥á¥â¥êÎΰè¤â¥í¥Ã¥¯¤µ¤ì¤ë¡£ +将来、プロセスのアドレス空間にマップされる全てのページをロックする。 +例えば、ヒープ (heap) やスタックの成長により新しく必要になったページだけで +なく、新しくメモリマップされたファイルや共有メモリ領域もロックされる。 .PP .\"O If .\"O .B MCL_FUTURE @@ -170,60 +170,60 @@ RAM .\"O may fail if it would cause the number of locked bytes to exceed .\"O the permitted maximum (see below). .B MCL_FUTURE -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢°Ê¸å¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë (Î㤨¤Ð¡¢ +が指定されていると、以後のシステムコール (例えば、 .BR mmap (2), .BR sbrk (2), .BR malloc (3)) -¤Ï¡¢¥í¥Ã¥¯¤¹¤ë¥Ð¥¤¥È¿ô¤¬µö²Ä¤µ¤ì¤¿ºÇÂçÃÍ (²¼µ­»²¾È) ¤òĶ¤¨¤¿¾ì¹ç¤Ë -¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +は、ロックするバイト数が許可された最大値 (下記参照) を超えた場合に +失敗する可能性がある。 .\"O In the same circumstances, stack growth may likewise fail: .\"O the kernel will deny stack expansion and deliver a .\"O .B SIGSEGV .\"O signal to the process. -ƱÍͤˡ¢¥¹¥¿¥Ã¥¯¤ÎÀ®Ä¹¤â¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¤½¤Î¾ì¹ç¡¢¥«¡¼¥Í¥ë¤Ï¥¹¥¿¥Ã¥¯¤Î³ÈÄ¥¤òµñÈݤ·¡¢ +同様に、スタックの成長も失敗する可能性がある。 +その場合、カーネルはスタックの拡張を拒否し、 .B SIGSEGV -¤ò¥×¥í¥»¥¹¤ËÁ÷¤ë¡£ +をプロセスに送る。 .\"O .BR munlockall () .\"O unlocks all pages mapped into the address space of the .\"O calling process. .BR munlockall () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¤Æ¤¤¤ë -Á´¤Æ¤Î¥Ú¡¼¥¸¤ò¥í¥Ã¥¯²ò½ü¤¹¤ë¡£ +は、呼び出し元プロセスのアドレス空間にマッピングされている +全てのページをロック解除する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success these system calls return 0. .\"O On error, \-1 is returned, .\"O .I errno .\"O is set appropriately, and no changes are made to any locks in the .\"O address space of the process. -À®¸ù¤·¤¿¾ì¹ç¤Ï¡¢¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥¼¥í¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合は、これらのシステムコールはゼロを返す。 +エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¡¢¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤ª¤±¤ë¥í¥Ã¥¯¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +が適切に設定され、プロセスのアドレス空間におけるロックは変更されない。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B ENOMEM .\"O (Linux 2.6.9 and later) the caller had a nonzero .\"O .B RLIMIT_MEMLOCK .\"O soft resource limit, but tried to lock more memory than the limit .\"O permitted. -(Linux 2.6.9 °Ê¹ß) ¸Æ¤Ó½Ð¤·¸µ¤ÏÈó¥¼¥í¤Î -¥½¥Õ¥È»ñ¸»À©¸Â +(Linux 2.6.9 以降) 呼び出し元は非ゼロの +ソフト資源制限 .B RLIMIT_MEMLOCK -¤ò»ý¤Ä¤¬¡¢À©¸Â¤¬µö²Ä¤·¤Æ¤¤¤ë°Ê¾å¤Î¥á¥â¥ê¤ò¥í¥Ã¥¯¤·¤è¤¦¤È¤·¤¿¡£ +を持つが、制限が許可している以上のメモリをロックしようとした。 .\"O This limit is not enforced if the process is privileged .\"O .RB ( CAP_IPC_LOCK ). -¤³¤ÎÀ©¸Â¤Ï¡¢¥×¥í¥»¥¹¤¬Æø¢ +この制限は、プロセスが特権 .RB ( CAP_IPC_LOCK ) -¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¤ÏŬÍѤµ¤ì¤Ê¤¤¡£ +を持っている場合は適用されない。 .TP .B ENOMEM .\"O (Linux 2.4 and earlier) the calling process tried to lock more than .\"O half of RAM. -(Linux 2.4 °ÊÁ°) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬ RAM ¤ÎȾʬ°Ê¾å¤ò¥í¥Ã¥¯¤·¤è¤¦¤È¤·¤¿¡£ +(Linux 2.4 以前) 呼び出し元プロセスが RAM の半分以上をロックしようとした。 .\"O .\" In the case of mlock(), this check is somewhat buggy: it doesn't .\"O .\" take into account whether the to-be-locked range overlaps with .\"O .\" already locked pages. Thus, suppose we allocate @@ -239,87 +239,87 @@ RAM .\"O and its .\"O .B RLIMIT_MEMLOCK .\"O soft resource limit was 0. -(Linux 2.6.9 °Ê¹ß) ¸Æ¤Ó½Ð¤·¸µ¤ÏÆø¢ +(Linux 2.6.9 以降) 呼び出し元は特権 .RB ( CAP_IPC_LOCK ) -¤ò»ý¤¿¤º¡¢¥½¥Õ¥È»ñ¸»À©¸Â +を持たず、ソフト資源制限 .B RLIMIT_MEMLOCK -¤¬ 0 ¤Ç¤¢¤ë¡£ +が 0 である。 .TP .B EPERM .\"O (Linux 2.6.8 and earlier) .\"O The calling process has insufficient privilege to call .\"O .BR munlockall (). -(Linux 2.6.8 °ÊÁ°) -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬ +(Linux 2.6.8 以前) +呼び出し元プロセスが .BR munlockall () -¤ò¸Æ¤Ó½Ð¤¹¤Î¤ËɬÍפÊÆø¢¤ò½êÍ­¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +を呼び出すのに必要な特権を所有していなかった。 .\"O Under Linux the .\"O .B CAP_IPC_LOCK .\"O capability is required. -Linux ¤Ç¤Ï¡¢ +Linux では、 .B CAP_IPC_LOCK -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティが必要である。 .\"O .\"SVr4 documents an additional EAGAIN error code. -.\"SVr4 ¤Î¥É¥­¥å¥á¥ó¥È¤Ë¤Ï¡¢¤³¤ì°Ê³°¤Ë¥¨¥é¡¼¥³¡¼¥É EAGAIN ¤Îµ­ºÜ¤¬¤¢¤ë¡£ +.\"SVr4 のドキュメントには、これ以外にエラーコード EAGAIN の記載がある。 .LP .\"O For .\"O .BR mlock () .\"O and .\"O .BR munlock (): .BR mlock () -¤È +と .BR munlock () -ÍѤȤ·¤Æ: +用として: .TP .B EAGAIN .\"O Some or all of the specified address range could not be locked. -»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹ÈϰϤΰìÉô¤Þ¤¿¤ÏÁ´¤Æ¤ò¥í¥Ã¥¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +指定されたアドレス範囲の一部または全てをロックすることができなかった。 .TP .B EINVAL .\"O .I len .\"O was negative. .I len -¤¬Éé¤Î¿ô¤Ç¤¢¤ë¡£ +が負の数である。 .TP .B EINVAL .\"O (Not on Linux) .\"O .I addr .\"O was not a multiple of the page size. -(Linux ¤Ç¤Ï¤³¤Î°ÕÌ£¤Ç»È¤ï¤ì¤Ê¤¤) +(Linux ではこの意味で使われない) .I addr -¤¬¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤Ç¤Ï¤Ê¤¤¡£ +がページサイズの倍数ではない。 .TP .B ENOMEM .\"O Some of the specified address range does not correspond to mapped .\"O pages in the address space of the process. -»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹ÈϰϤ¬¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¥Þ¥Ã¥×¤µ¤ì¤¿¥Ú¡¼¥¸¤È -°ìÃפ·¤Ê¤¤¡£ +指定されたアドレス範囲がプロセスのアドレス空間にマップされたページと +一致しない。 .LP .\"O For .\"O .BR mlockall (): .BR mlockall () -ÍѤȤ·¤Æ: +用として: .TP .B EINVAL .\"O Unknown \fIflags\fP were specified. -̤ÃΤΠ\fIflags\fP ¤¬»ØÄꤵ¤ì¤¿¡£ +未知の \fIflags\fP が指定された。 .LP .\"O For .\"O .BR munlockall (): .BR munlockall () -ÍѤȤ·¤Æ: +用として: .TP .B EPERM .\"O (Linux 2.6.8 and earlier) The caller was not privileged .\"O .RB ( CAP_IPC_LOCK ). -(Linux 2.6.8 °ÊÁ°) ¸Æ¤Ó½Ð¤·¸µ¤¬¸¢¸Â +(Linux 2.6.8 以前) 呼び出し元が権限 .RB ( CAP_IPC_LOCK ) -¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +を持っていない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001, SVr4. .\"O .SH AVAILABILITY -.SH ²ÄÍÑÀ­ +.SH 可用性 .\"O On POSIX systems on which .\"O .BR mlock () .\"O and @@ -332,17 +332,17 @@ POSIX.1-2001, SVr4. .\"O (if defined) in \fI\fP or by calling .\"O .IR sysconf(_SC_PAGESIZE) . .BR mlock () -¤È +と .BR munlock () -¤¬»ÈÍѲÄǽ¤Ê POSIX ¥·¥¹¥Æ¥à¤Ç¤Ï +が使用可能な POSIX システムでは .B _POSIX_MEMLOCK_RANGE -¤¬ \fI\fP ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤Þ¤¿¡¢¥Ú¡¼¥¸¤¢¤¿¤ê¤Î¥Ð¥¤¥È¿ô¤Ï¡¢ -\fI\fP ¤ÇÄêµÁ¤µ¤ì¤ëÄê¿ô +が \fI\fP で定義されている。 +また、ページあたりのバイト数は、 +\fI\fP で定義される定数 .B PAGESIZE -¤«¤é (ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç)¡¢¤â¤·¤¯¤Ï +から (定義されている場合)、もしくは .I sysconf(_SC_PAGESIZE) -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç·èÄê¤Ç¤­¤ë¡£ +を呼び出すことで決定できる。 .\"O On POSIX systems on which .\"O .BR mlockall () @@ -354,22 +354,22 @@ POSIX.1-2001, SVr4. .\"O (See also .\"O .BR sysconf (3).) .BR mlockall () -¤È +と .BR munlockall () -¤¬ÍøÍѲÄǽ¤Ê POSIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +が利用可能な POSIX システムでは、 .B _POSIX_MEMLOCK -¤Ï \fI\fP ¤Ç 0 ¤è¤êÂ礭¤¤ÃͤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë +は \fI\fP で 0 より大きい値に定義されている .RB ( sysconf (3) -¤â»²¾È¤Î¤³¤È)¡£ +も参照のこと)。 .\"O .\" POSIX.1-2001: It shall be defined to -1 or 0 or 200112L. .\"O .\" -1: unavailable, 0: ask using sysconf(). .\"O .\" glibc defines it to 1. -.\" POSIX.1-2001: ¤³¤ÎÊÑ¿ô¤Ï -1 ¤« 0 ¤« 200112l ¤Î¤¤¤º¤ì¤«¤Ë -.\" ÄêµÁ¤¹¤Ù¤­¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ -.\" -1: ÍøÍѤǤ­¤Ê¤¤¡¢0: sysconf() ¤ËÌ䤤¹ç¤ï¤»¤ë -.\" glibc ¤Ç¤Ï 1 ¤ËÄêµÁ¤·¤Æ¤¤¤ë¡£ +.\" POSIX.1-2001: この変数は -1 か 0 か 200112l のいずれかに +.\" 定義すべきとなっている。 +.\" -1: 利用できない、0: sysconf() に問い合わせる +.\" glibc では 1 に定義している。 .\"O .SH "NOTES" -.SH Ãí°Õ +.SH 注意 .\"O Memory locking has two main applications: real-time algorithms and .\"O high-security data processing. .\"O Real-time applications require @@ -378,13 +378,13 @@ POSIX.1-2001, SVr4. .\"O Real-time applications will .\"O usually also switch to a real-time scheduler with .\"O .BR sched_setscheduler (2). -¥á¥â¥ê¤Î¥í¥Ã¥¯¤ÎÍÑÅӤȤ·¤Æ¤Ï¼ç¤ËÆó¤Ä¤¢¤ë: ¥ê¥¢¥ë¥¿¥¤¥à -¥¢¥ë¥´¥ê¥º¥à¤È¹â¤¤¥»¥­¥å¥ê¥Æ¥£¤ÎɬÍפʥǡ¼¥¿½èÍý¤Ç¤¢¤ë¡£¥ê¥¢¥ë¥¿¥¤¥à¤Î -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï·èÄêŪ¤Ê¥¿¥¤¥ß¥ó¥°¤ä¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤òɬÍפȤ¹¤ë¤¬¡¢ -¥Ú¡¼¥¸¥ó¥°¤Ïͽ´ü¤·¤Ê¤¤¥×¥í¥°¥é¥à¤Î¼Â¹ÔÃÙ±ä¤ò¤â¤¿¤é¤¹¼çÍפÊÍ×°ø¤È¤Ê¤ë¡£ -¥ê¥¢¥ë¥¿¥¤¥à¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¤¿¤¤¤Æ¤¤¤Ï +メモリのロックの用途としては主に二つある: リアルタイム +アルゴリズムと高いセキュリティの必要なデータ処理である。リアルタイムの +アプリケーションは決定的なタイミングやスケジューリングを必要とするが、 +ページングは予期しないプログラムの実行遅延をもたらす主要な要因となる。 +リアルタイムのアプリケーションはたいていは .BR sched_setscheduler (2) -¤Ç¥ê¥¢¥ë¥¿¥¤¥à¥¹¥±¥¸¥å¡¼¥é¤ËÊѹ¹¤µ¤ì¤ë¡£ +でリアルタイムスケジューラに変更される。 .\"O Cryptographic security software often handles critical bytes like .\"O passwords or secret keys as data structures. .\"O As a result of paging, @@ -394,14 +394,14 @@ POSIX.1-2001, SVr4. .\"O (But be aware that the suspend mode on laptops and some desktop .\"O computers will save a copy of the system's RAM to disk, regardless .\"O of memory locks.) -°Å¹æ¤ä¥»¥­¥å¥ê¥Æ¥£¤Î¥½¥Õ¥È¥¦¥§¥¢¤Ï¤·¤Ð¤·¤Ð¥Ñ¥¹¥ï¡¼¥É¤äÈëÌ©¸°¤Î¥Ç¡¼¥¿¤Î -¤è¤¦¤Ê½ÅÍפʥХ¤¥ÈÎó¤ò°·¤¦¡£¥Ú¡¼¥¸¥ó¥°¤Î·ë²Ì¡¢¤³¤ì¤é¤ÎÈëÌ©¤¬ -¥¹¥ï¥Ã¥×ÍѤθÇÄêÇÞÂΤËžÁ÷¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£¤½¤·¤Æ¡¢¥»¥­¥å¥ê¥Æ¥£¡¦ -¥½¥Õ¥È¥¦¥§¥¢¤¬ RAM ¾å¤ÎÈëÌ©¤òºï½ü¤·¤Æ½ªÎ»¤·¤¿¤º¤Ã¤È¸å¤Ë¤Ê¤Ã¤Æ¤â¡¢ -¤³¤Î¥¹¥ï¥Ã¥×¤µ¤ì¤¿¥Ç¡¼¥¿¤Ë¤ÏŨ¤¬¥¢¥¯¥»¥¹¤Ç¤­¤ë²ÄǽÀ­¤¬¤¢¤ë -(¤·¤«¤·¡¢¥é¥Ã¥×¥È¥Ã¥×¤È¤¤¤¯¤Ä¤«¤Î¥Ç¥¹¥¯¥È¥Ã¥×¥³¥ó¥Ô¥å¡¼¥¿¤Î -¥µ¥¹¥Ú¥ó¥É¥â¡¼¥É¤Ï¥·¥¹¥Æ¥à¤Î RAM ¤ÎÆâÍƤò¥á¥â¥ê¤Î¥í¥Ã¥¯¤Ë´Ø¤ï¤é¤º -¥Ç¥£¥¹¥¯¤ËÊݸ¤¹¤ë¤³¤È¤ËÃí°Õ)¡£ +暗号やセキュリティのソフトウェアはしばしばパスワードや秘密鍵のデータの +ような重要なバイト列を扱う。ページングの結果、これらの秘密が +スワップ用の固定媒体に転送されるかもしれない。そして、セキュリティ・ +ソフトウェアが RAM 上の秘密を削除して終了したずっと後になっても、 +このスワップされたデータには敵がアクセスできる可能性がある +(しかし、ラップトップといくつかのデスクトップコンピュータの +サスペンドモードはシステムの RAM の内容をメモリのロックに関わらず +ディスクに保存することに注意)。 .\"O Real-time processes that are using .\"O .BR mlockall () @@ -415,38 +415,38 @@ POSIX.1-2001, SVr4. .\"O locked into RAM. .\"O The dummy writes ensure that not even copy-on-write .\"O page faults can occur in the critical section. -¥ê¥¢¥ë¥¿¥¤¥à¥×¥í¥»¥¹¤¬ +リアルタイムプロセスが .BR mlockall () -¤ò»È¤Ã¤Æ¥Ú¡¼¥¸¥Õ¥©¡¼¥ë¥È¤Ë¤è¤ëÃÙ±ä¤òËɤ´¤¦¤È¤¹¤ë¾ì¹ç¡¢ -´Ø¿ô¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤Æ¥Ú¡¼¥¸¥Õ¥©¡¼¥ë¥È¤¬È¯À¸¤·¤Ê¤¤¤è¤¦¤Ë¡¢ -»þ´ÖÀ©¸Â¤Î¸·¤·¤¤Éôʬ (time-critical section) ¤ËÆþ¤ëÁ°¤Ë -½½Ê¬¤ÊÎ̤Υí¥Ã¥¯¤µ¤ì¤¿¥¹¥¿¥Ã¥¯¤ò³ÎÊݤ·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¡£ -¤³¤ì¤ò¼Â¸½¤¹¤ë¤Ë¤Ï¡¢½½Ê¬¤ÊÂ礭¤µ¤Î¼«Æ°ÊÑ¿ô (¤ÎÇÛÎó) ¤ò³ÎÊݤ·¡¢ -¤³¤ì¤é¤Î¥¹¥¿¥Ã¥¯ÍѤΥڡ¼¥¸¤¬¥á¥â¥ê¾å¤Ë³ÎÊݤµ¤ì¤ë¤è¤¦¤Ë¤³¤ÎÇÛÎó¤Ë -½ñ¤­¹þ¤ß¤ò¹Ô¤¦´Ø¿ô¤òÍÑ°Õ¤·¡¢¤³¤ì¤ò¸Æ¤Ó½Ð¤»¤Ð¤è¤¤¡£¤³¤¦¤¹¤ë¤³¤È¤Ç¡¢ -½½Ê¬¤ÊÎ̤Υڡ¼¥¸¤¬¥¹¥¿¥Ã¥¯¤Ë¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¡¢RAM ¤Ë¥í¥Ã¥¯¤µ¤ì¤ë¡£ -¥À¥ß¡¼¤Î½ñ¤­¹þ¤ß¤ò¹Ô¤¦¤³¤È¤Ë¤è¤Ã¤Æ¡¢ -»þ´ÖÀ©¸Â¤Î¸·¤·¤¤Éôʬ (critical section) Æâ¤Ç¤Ï½ñ¤­¹þ¤ß»þ¥³¥Ô¡¼¤Ë¤è¤ë -¥Ú¡¼¥¸¥Õ¥©¡¼¥ë¥È¤µ¤¨¤âȯÀ¸¤·¤Ê¤¤¤³¤È¤¬Êݾڤµ¤ì¤ë¡£ +を使ってページフォールトによる遅延を防ごうとする場合、 +関数呼び出しによってページフォールトが発生しないように、 +時間制限の厳しい部分 (time-critical section) に入る前に +十分な量のロックされたスタックを確保しておく必要がある。 +これを実現するには、十分な大きさの自動変数 (の配列) を確保し、 +これらのスタック用のページがメモリ上に確保されるようにこの配列に +書き込みを行う関数を用意し、これを呼び出せばよい。こうすることで、 +十分な量のページがスタックにマッピングされ、RAM にロックされる。 +ダミーの書き込みを行うことによって、 +時間制限の厳しい部分 (critical section) 内では書き込み時コピーによる +ページフォールトさえも発生しないことが保証される。 .\"O Memory locks are not inherited by a child created via .\"O .BR fork (2) .\"O and are automatically removed (unlocked) during an .\"O .BR execve (2) .\"O or when the process terminates. -¥á¥â¥ê¥í¥Ã¥¯¤Ï +メモリロックは .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ë¤Ï·Ñ¾µ¤µ¤ì¤º¡¢ +で作成された子プロセスには継承されず、 .BR execve (2) -¤¬¸Æ¤Ð¤ì¤¿¤ê¡¢¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿¾ì¹ç¤Ï -¼«Æ°Åª¤Ëºï½ü¤µ¤ì¤ë (¥í¥Ã¥¯²ò½ü¤µ¤ì¤ë)¡£ +が呼ばれたり、プロセスが終了した場合は +自動的に削除される (ロック解除される)。 .\"O The memory lock on an address range is automatically removed .\"O if the address range is unmapped via .\"O .BR munmap (2). -¤¢¤ë¥¢¥É¥ì¥¹ÈϰϤËÂФ¹¤ë¥á¥â¥ê¥í¥Ã¥¯¤Ï¡¢¤½¤Î¥¢¥É¥ì¥¹ÈϰϤ¬ +あるアドレス範囲に対するメモリロックは、そのアドレス範囲が .BR munmap (2) -¤Ë¤è¤Ã¤Æ¥¢¥ó¥Þ¥Ã¥×¤µ¤ì¤¿¾ì¹ç¤Ïºï½ü¤µ¤ì¤ë¡£ +によってアンマップされた場合は削除される。 .\"O Memory locks do not stack, that is, pages which have been locked several times .\"O by calls to @@ -460,21 +460,21 @@ POSIX.1-2001, SVr4. .\"O Pages which are mapped to several locations or by several processes stay .\"O locked into RAM as long as they are locked at least at one location or by .\"O at least one process. -¥á¥â¥ê¤Î¥í¥Ã¥¯¤ÏÎßÀѤ·¤Ê¤¤¡£ -¤¹¤Ê¤ï¤ÁÊ£¿ô²ó +メモリのロックは累積しない。 +すなわち複数回 .BR mlock () -¤ä +や .BR mlockall () -¤ò¸Æ¤Ó½Ð¤·¤Æ¥í¥Ã¥¯¤µ¤ì¤¿¥Ú¡¼¥¸¤Ç¤â¡¢ -Âбþ¤¹¤ëÈϰϤËÂФ·¤Æ +を呼び出してロックされたページでも、 +対応する範囲に対して .BR munlock () -¤ò 1 ²ó¸Æ¤Ó½Ð¤·¤¿¤ê +を 1 回呼び出したり .BR munlockall () -¤ò¸Æ¤Ó½Ð¤·¤¿¤ê¤¹¤ë¤À¤±¤Ç¥í¥Ã¥¯²ò½ü¤µ¤ì¤ë¡£ -Ê£¿ô¤Î¾ì½ê¤äÊ£¿ô¤Î¥×¥í¥»¥¹¤Ë¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤ë¥Ú¡¼¥¸¤Ï¡¢¾¯¤Ê¤¯¤È¤â°ì¤Ä¤Î¾ì½ê¡¢ -°ì¤Ä¤Î¥×¥í¥»¥¹¤Ç¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¸Â¤ê¤Ï RAM ¤Ë»Ä¤ê³¤±¤ë¡£ +を呼び出したりするだけでロック解除される。 +複数の場所や複数のプロセスにマップされているページは、少なくとも一つの場所、 +一つのプロセスでロックされている限りは RAM に残り続ける。 .\"O .SS "Linux Notes" -.SS Linux ¤Ç¤ÎÃí°Õ +.SS Linux での注意 .\"O Under Linux, .\"O .BR mlock () .\"O and @@ -482,60 +482,60 @@ POSIX.1-2001, SVr4. .\"O automatically round .\"O .I addr .\"O down to the nearest page boundary. -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR mlock () -¤È +と .BR munlock () -¤Ï¼«Æ°Åª¤Ë +は自動的に .I addr -¤òü¿ôÀÚ¤ê¼Î¤Æ¤Ë¤è¤ê°ìÈֶᤤ¥Ú¡¼¥¸¶­³¦¤Ø¤È´Ý¤á¤ë¡£ +を端数切り捨てにより一番近いページ境界へと丸める。 .\"O However, POSIX.1-2001 allows an implementation to require that .\"O .I addr .\"O is page aligned, so portable applications should ensure this. -¤·¤«¤· POSIX.1-2001 ¤Ï +しかし POSIX.1-2001 は .I addr -¤¬¥Ú¡¼¥¸¶­³¦¤Ë¹ç¤Ã¤Æ¤¤¤ë¤³¤È¤òÍ׵᤹¤ë¼ÂÁõ¤âµö¤·¤Æ¤¤¤ë¡£ -¤½¤Î¤¿¤á°Ü¿¢À­¤ò°Õ¿Þ¤·¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤­¤Á¤ó¤È¶­³¦¤Ë¹ç¤ï¤»¤¿Êý¤¬Îɤ¤¡£ +がページ境界に合っていることを要求する実装も許している。 +そのため移植性を意図したアプリケーションではきちんと境界に合わせた方が良い。 .\"O .SS "Limits and permissions" -.SS À©¸Â¤È¸¢¸Â +.SS 制限と権限 .\"O In Linux 2.6.8 and earlier, .\"O a process must be privileged .\"O .RB ( CAP_IPC_LOCK ) .\"O in order to lock memory and the .\"O .B RLIMIT_MEMLOCK .\"O soft resource limit defines a limit on how much memory the process may lock. -Linux 2.6.8 °ÊÁ°¤Ç¤Ï¡¢¥á¥â¥ê¤ò¥í¥Ã¥¯¤¹¤ë¤¿¤á¤Ë¤ÏÆø¢ +Linux 2.6.8 以前では、メモリをロックするためには特権 .RB ( CAP_IPC_LOCK ) -¤¬É¬Íפǡ¢ -¥½¥Õ¥È»ñ¸»À©¸Â +が必要で、 +ソフト資源制限 .B RLIMIT_MEMLOCK -¤Ï¥×¥í¥»¥¹¤¬¤É¤ì¤À¤±¤Î¥á¥â¥ê¤ò¥í¥Ã¥¯¤Ç¤­¤ë¤«¤ÎÀ©¸Â¤òÄêµÁ¤¹¤ë¡£ +はプロセスがどれだけのメモリをロックできるかの制限を定義する。 .\"O Since Linux 2.6.9, no limits are placed on the amount of memory .\"O that a privileged process can lock and the .\"O .B RLIMIT_MEMLOCK .\"O soft resource limit instead defines a limit on how much memory an .\"O unprivileged process may lock. -Linux 2.6.9 °Ê¹ß¤Ç¤Ï¡¢Æø¢¤ò»ý¤Ä¥×¥í¥»¥¹¤¬¥í¥Ã¥¯¤Ç¤­¤ë¥á¥â¥êÎ̤Ï̵À©¸Â¤È¤Ê¤ê¡¢ -Âå¤ï¤ê¤Ë¥½¥Õ¥È»ñ¸»À©¸Â +Linux 2.6.9 以降では、特権を持つプロセスがロックできるメモリ量は無制限となり、 +代わりにソフト資源制限 .B RLIMIT_MEMLOCK -¤ÏÆø¢¤ò»ý¤¿¤Ê¤¤¥×¥í¥»¥¹¤¬¥í¥Ã¥¯¤Ç¤­¤ë¥á¥â¥êÎ̤ÎÀ©¸Â¤òÄêµÁ¤¹¤ë¡£ +は特権を持たないプロセスがロックできるメモリ量の制限を定義する。 .\"O .SH "BUGS" -.SH ¥Ð¥° +.SH バグ .\"O In the 2.4 series Linux kernels up to and including 2.4.17, .\"O a bug caused the .\"O .BR mlockall () .\"O .B MCL_FUTURE .\"O flag to be inherited across a .\"O .BR fork (2). -2.4.17 ¤Þ¤Ç¤Î 2.4 ¥·¥ê¡¼¥º¤Î Linux ¥«¡¼¥Í¥ë¤Ë¤Ï¡¢ +2.4.17 までの 2.4 シリーズの Linux カーネルには、 .BR mlockall () .B MCL_FUTURE -¥Õ¥é¥°¤¬ +フラグが .BR fork (2) -¤Ç·Ñ¾µ¤µ¤ì¤ë¤È¸À¤¦¥Ð¥°¤¬¤¢¤ë¡£ +で継承されると言うバグがある。 .\"O This was rectified in kernel 2.4.18. -¤³¤ì¤Ï¥«¡¼¥Í¥ë 2.4.18 ¤Ç½¤Àµ¤µ¤ì¤¿¡£ +これはカーネル 2.4.18 で修正された。 .\"O Since kernel 2.6.9, if a privileged process calls .\"O .I mlockall(MCL_FUTURE) @@ -549,27 +549,27 @@ Linux 2.6.9 .\"O will fail if the .\"O .B RLIMIT_MEMLOCK .\"O resource limit is encountered. -¥«¡¼¥Í¥ë 2.6.9 °Ê¹ß¤Ç¤Ï¡¢Æø¢¤ò»ý¤Ã¤¿¥×¥í¥»¥¹¤¬ +カーネル 2.6.9 以降では、特権を持ったプロセスが .I mlockall(MCL_FUTURE) -¤ò¸Æ¤Ó½Ð¤·¤¿¸å¤Ç¡¢Æø¢¤ò¤Ê¤¯¤·¤¿¾ì¹ç (Î㤨¤Ð¡¢ -¼Â¸ú UID ¤ò 0 °Ê³°¤ÎÃͤËÊѹ¹¤¹¤ë¤Ê¤É¤Ë¤è¤ê¡¢ +を呼び出した後で、特権をなくした場合 (例えば、 +実効 UID を 0 以外の値に変更するなどにより、 .B CAP_IPC_LOCK -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¼º¤Ã¤¿¾ì¹ç)¡¢¥ê¥½¡¼¥¹¾å¸Â +ケーパビリティを失った場合)、リソース上限 .B RLIMIT_MEMLOCK -¤Ë㤹¤ë¤È¡¢¤½¤ì°Ê¹ß¤Î¥á¥â¥ê³ä¤êÅö¤Æ (Î㤨¤Ð +に達すると、それ以降のメモリ割り当て (例えば .BR mmap (2), .BR brk (2)) -¤Ï¼ºÇÔ¤¹¤ë¡£ +は失敗する。 .\"O .\" See the following LKML thread: .\"O .\" http://marc.theaimsgroup.com/?l=linux-kernel&m=113801392825023&w=2 .\"O .\" "Rationale for RLIMIT_MEMLOCK" .\"O .\" 23 Jan 2006 -.\" LKML ¤Î°Ê²¼¤Î¥¹¥ì¥Ã¥É¤ò»²¾È: +.\" LKML の以下のスレッドを参照: .\" http://marc.theaimsgroup.com/?l=linux-kernel&m=113801392825023&w=2 .\" "Rationale for RLIMIT_MEMLOCK" .\" 23 Jan 2006 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mmap (2), .BR setrlimit (2), .BR shmctl (2), diff --git a/draft/man2/mmap.2 b/draft/man2/mmap.2 index e58589af..78828086 100644 --- a/draft/man2/mmap.2 +++ b/draft/man2/mmap.2 @@ -59,15 +59,15 @@ .\" Updated 2008-12-24, Akihiro MOTOKI, LDP v3.15 .\" Updated 2010-04-18, Akihiro MOTOKI, LDP v3.24 .\" -.\"WORD file descriptor ¥Õ¥¡¥¤¥ëµ­½Ò»Ò +.\"WORD file descriptor ファイル記述子 .\" .TH MMAP 2 2009-09-26 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O mmap, munmap \- map or unmap files or devices into memory -.SH ̾Á° -mmap, munmap \- ¥Õ¥¡¥¤¥ë¤ä¥Ç¥Ð¥¤¥¹¤ò¥á¥â¥ê¤Ë¥Þ¥Ã¥×/¥¢¥ó¥Þ¥Ã¥×¤¹¤ë +.SH 名前 +mmap, munmap \- ファイルやデバイスをメモリにマップ/アンマップする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -77,7 +77,7 @@ mmap, munmap \- .BI "int munmap(void *" addr ", size_t " length ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR mmap () .\"O creates a new mapping in the virtual address space of .\"O the calling process. @@ -87,12 +87,12 @@ mmap, munmap \- .\"O .I length .\"O argument specifies the length of the mapping. .BR mmap () -¤Ï¡¢¿·¤·¤¤¥Þ¥Ã¥Ô¥ó¥°¤ò¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î²¾ÁÛ¥¢¥É¥ì¥¹¶õ´Ö¤ËºîÀ®¤¹¤ë¡£ -¿·¤·¤¤¥Þ¥Ã¥Ô¥ó¥°¤Î³«»Ï¥¢¥É¥ì¥¹¤Ï +は、新しいマッピングを呼び出し元プロセスの仮想アドレス空間に作成する。 +新しいマッピングの開始アドレスは .I addr -¤Ç»ØÄꤵ¤ì¤ë¡£¥Þ¥Ã¥Ô¥ó¥°¤ÎŤµ¤Ï +で指定される。マッピングの長さは .I length -°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤ë¡£ +引き数で指定される。 .\"O If .\"O .I addr @@ -108,16 +108,16 @@ mmap, munmap \- .\"O .\" boundary; since 2.6.24, it is rounded down! .\"O The address of the new mapping is returned as the result of the call. .I addr -¤¬ NULL ¤Î¾ì¹ç¡¢¥«¡¼¥Í¥ë¤¬¥Þ¥Ã¥Ô¥ó¥°¤òºîÀ®¤¹¤ë¥¢¥É¥ì¥¹¤òÁªÂò¤¹¤ë¡£ -¤³¤ÎÊýË¡¤ÏºÇ¤â°Ü¿¢À­¤Î¤¢¤ë¿·¤·¤¤¥Þ¥Ã¥Ô¥ó¥°¤ÎºîÀ®ÊýË¡¤Ç¤¢¤ë¡£ +が NULL の場合、カーネルがマッピングを作成するアドレスを選択する。 +この方法は最も移植性のある新しいマッピングの作成方法である。 .I addr -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢¥«¡¼¥Í¥ë¤Ï¥Þ¥Ã¥Ô¥ó¥°¤ò¤É¤³¤ËÇÛÃÖ¤¹¤ë¤«¤Î¥Ò¥ó¥È¤È¤·¤Æ +が NULL でない場合、カーネルはマッピングをどこに配置するかのヒントとして .I addr -¤ò»ÈÍѤ¹¤ë¡£Linux ¤Ç¤Ï¡¢¥Þ¥Ã¥Ô¥ó¥°¤Ï¤¹¤°¶á¤¯¤Î¥Ú¡¼¥¸¶­³¦¤ËºîÀ®¤µ¤ì¤ë¡£ -.\" Linux 2.6.24 ¤è¤êÁ°¤Ç¤Ï¡¢¥¢¥É¥ì¥¹¤Ï (¥¢¥É¥ì¥¹¤¬Â礭¤¯¤Ê¤ëÊý¸þ¤Ç) -.\" ¤¹¤°¼¡¤Î¥Ú¡¼¥¸¶­³¦¤ËÀÚ¤ê¾å¤²¤é¤ì¤Æ¤¤¤¿¡£ -.\" Linux 2.6.24 °Ê¹ß¤Ç¤Ï¡¢Àڤ겼¤²¤é¤ì¤ë! -¿·¤·¤¤¥Þ¥Ã¥Ô¥ó¥°¤Î¥¢¥É¥ì¥¹¤Ï¡¢¸Æ¤Ó½Ð¤·¤ÎÊÖ¤êÃͤȤ·¤ÆÊÖ¤µ¤ì¤ë¡£ +を使用する。Linux では、マッピングはすぐ近くのページ境界に作成される。 +.\" Linux 2.6.24 より前では、アドレスは (アドレスが大きくなる方向で) +.\" すぐ次のページ境界に切り上げられていた。 +.\" Linux 2.6.24 以降では、切り下げられる! +新しいマッピングのアドレスは、呼び出しの返り値として返される。 .\"O The contents of a file mapping (as opposed to an anonymous mapping; see .\"O .B MAP_ANONYMOUS @@ -130,21 +130,21 @@ mmap, munmap \- .\"O .I offset .\"O must be a multiple of the page size as returned by .\"O .IR sysconf(_SC_PAGE_SIZE) . -¥Õ¥¡¥¤¥ë¥Þ¥Ã¥Ô¥ó¥°¤ÎÆâÍƤϡ¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +ファイルマッピングの内容は、 +ファイルディスクリプタ .I fd -¤Ç»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë (¤â¤·¤¯¤Ï¾¤Î¥ª¥Ö¥¸¥§¥¯¥È) ¤Î¥ª¥Õ¥»¥Ã¥È +で参照されるファイル (もしくは他のオブジェクト) のオフセット .I offset -¤«¤é³«»Ï¤µ¤ì¤ë +から開始される .I length -¥Ð¥¤¥È¤Î¥Ç¡¼¥¿¤Ç½é´ü²½¤µ¤ì¤ë -(¥Õ¥¡¥¤¥ë¥Þ¥Ã¥Ô¥ó¥°¤Ï̵̾¥Þ¥Ã¥Ô¥ó¥°¤ÎÈ¿Âиì¤Ç¤¢¤ë¡£ +バイトのデータで初期化される +(ファイルマッピングは無名マッピングの反対語である。 .B MAP_ANONYMOUS -¤ò»²¾È)¡£ +を参照)。 .I offset -¤Ï +は .I sysconf(_SC_PAGE_SIZE) -¤¬ÊÖ¤¹¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +が返すページサイズの倍数でなければならない。 .LP .\"O The .\"O .I prot @@ -153,31 +153,31 @@ mmap, munmap \- .\"O It is either .\"O .B PROT_NONE .\"O or the bitwise OR of one or more of the following flags: -°ú¤­¿ô +引き数 .I prot -¤Ë¤Ï¡¢¥Þ¥Ã¥Ô¥ó¥°¤Î¥á¥â¥êÊݸî¤ò¤É¤Î¤è¤¦¤Ë¹Ô¤Ê¤¦¤«¤ò»ØÄꤹ¤ë -(¥Õ¥¡¥¤¥ë¤Î¥ª¡¼¥×¥ó¥â¡¼¥É¤ÈÌ·½â¤·¤Æ¤Ï¤¤¤±¤Ê¤¤)¡£ +には、マッピングのメモリ保護をどのように行なうかを指定する +(ファイルのオープンモードと矛盾してはいけない)。 .I prot -¤Ë¤Ï¡¢ +には、 .B PROT_NONE -¤«¡¢°Ê²¼¤Î¥Õ¥é¥°¤ò¤Ò¤È¤Ä°Ê¾å¥Ó¥Ã¥ÈËè¤ÎÏÀÍýÏ (OR) ¤ò¤È¤Ã¤¿¤â¤Î¤ò -»ØÄê¤Ç¤­¤ë¡£ +か、以下のフラグをひとつ以上ビット毎の論理和 (OR) をとったものを +指定できる。 .TP 1.1i .B PROT_EXEC .\"O Pages may be executed. -¥Ú¡¼¥¸¤Ï¼Â¹Ô²Äǽ¤Ç¤¢¤ë¡£ +ページは実行可能である。 .TP .B PROT_READ .\"O Pages may be read. -¥Ú¡¼¥¸¤ÏÆɤ߹þ¤ß²Äǽ¤Ç¤¢¤ë¡£ +ページは読み込み可能である。 .TP .B PROT_WRITE .\"O Pages may be written. -¥Ú¡¼¥¸¤Ë½ñ¤­¹þ¤ß²Äǽ¤Ç¤¢¤ë¡£ +ページに書き込み可能である。 .TP .B PROT_NONE .\"O Pages may not be accessed. -¥Ú¡¼¥¸¤Ë¤Ï¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¡£ +ページにはアクセスできない。 .LP .\"O The .\"O .I flags @@ -188,12 +188,12 @@ mmap, munmap \- .\"O of the following values in .\"O .IR flags : .I flags -°ú¤­¿ô¤Ë¤è¤ê¡¢¥Þ¥Ã¥Ô¥ó¥°¤ËÂФ¹¤ë¹¹¿·¤¬Æ±¤¸Îΰè¤ò¥Þ¥Ã¥Ô¥ó¥°¤·¤Æ¤¤¤ë -¾¤Î¥×¥í¥»¥¹¤Ë¸«¤¨¤ë¤«¡¢¹¹¿·¤¬¥Þ¥Ã¥Ô¥ó¥°¸µ¤Î¥Õ¥¡¥¤¥ë¤òÄ̤¸¤Æ -ÅÁ¤¨¤é¤ì¤ë¤«¡¢¤¬·èÄꤵ¤ì¤ë¡£¤³¤ÎÆ°ºî¤Ï¡¢°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«°ì¤Ä¤À¤± -(Ê£¿ô¤Ï»ØÄê¤Ç¤­¤Ê¤¤) ¤ò +引き数により、マッピングに対する更新が同じ領域をマッピングしている +他のプロセスに見えるか、更新がマッピング元のファイルを通じて +伝えられるか、が決定される。この動作は、以下の値のいずれか一つだけ +(複数は指定できない) を .I flags -¤Ë´Þ¤á¤ë¤³¤È¤Ç»ØÄꤹ¤ë¡£ +に含めることで指定する。 .TP 1.1i .B MAP_SHARED .\"O Share this mapping. @@ -204,14 +204,14 @@ mmap, munmap \- .\"O or .\"O .BR munmap () .\"O is called. -¤³¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò¶¦Í­¤¹¤ë¡£ -¥Þ¥Ã¥Ô¥ó¥°¤ËÂФ¹¤ë¹¹¿·¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤ò¥Þ¥Ã¥Ô¥ó¥°¤·¤Æ¤¤¤ë¾¤Î¥×¥í¥»¥¹ -¤«¤é¸«¤¨¤ë¡£¹¹¿·¤Ï¥Þ¥Ã¥Ô¥ó¥°¸µ¤Î¥Õ¥¡¥¤¥ë¤òÄ̤¸¤ÆÅÁ¤¨¤é¤ì¤ë¡£ -¤¿¤À¤·¡¢¥Õ¥¡¥¤¥ë¤Î¼ÂºÝ¤Î¹¹¿·¤Ï +このマッピングを共有する。 +マッピングに対する更新はこのファイルをマッピングしている他のプロセス +から見える。更新はマッピング元のファイルを通じて伝えられる。 +ただし、ファイルの実際の更新は .BR msync (2) -¤Þ¤¿¤Ï +または .BR munmap () -¤¬¸Æ¤Ð¤ì¤ë¤Þ¤Ç¹Ô¤ï¤ì¤Ê¤¤¤³¤È¤â¤¢¤ë¡£ +が呼ばれるまで行われないこともある。 .TP .B MAP_PRIVATE .\"O Create a private copy-on-write mapping. @@ -221,24 +221,24 @@ mmap, munmap \- .\"O It is unspecified whether changes made to the file after the .\"O .BR mmap () .\"O call are visible in the mapped region. -¥×¥é¥¤¥Ù¡¼¥È¤Ê copy-on-write (½ñ¤­¹þ¤ß»þ¥³¥Ô¡¼) ¥Þ¥Ã¥×¤òÀ¸À®¤¹¤ë¡£ -¥Þ¥Ã¥Ô¥ó¥°¤ËÂФ¹¤ë¹¹¿·¤ÏƱ¤¸¥Õ¥¡¥¤¥ë¤ò¥Þ¥Ã¥Ô¥ó¥°¤·¤Æ¤¤¤ë¾¤Î¥×¥í¥»¥¹ -¤Ë¤Ï¸«¤¨¤º¡¢¹¹¿·¤¬¥Þ¥Ã¥Ô¥ó¥°¸µ¤Î¥Õ¥¡¥¤¥ë¤òÄ̤¸¤ÆÅÁ¤¨¤é¤ì¤ë¤³¤È¤â¤Ê¤¤¡£ +プライベートな copy-on-write (書き込み時コピー) マップを生成する。 +マッピングに対する更新は同じファイルをマッピングしている他のプロセス +には見えず、更新がマッピング元のファイルを通じて伝えられることもない。 .BR mmap () -¤Î¸Æ¤Ó½Ð¤·¸å¤Ë¥Þ¥Ã¥Ô¥ó¥°¸µ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¹Ô¤ï¤ì¤¿Êѹ¹¤¬¡¢ -¥Þ¥Ã¥×Îΰè¤ËÈ¿±Ç¤µ¤ì¤ë¤«¤É¤¦¤«¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +の呼び出し後にマッピング元のファイルに対して行われた変更が、 +マップ領域に反映されるかどうかは規定されていない。 .LP .\"O Both of these flags are described in POSIX.1-2001. -¾åµ­¤ÎÆó¤Ä¤Î¥Õ¥é¥°¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +上記の二つのフラグは POSIX.1-2001 で規定されている。 .\"O In addition, zero or more of the following values can be ORed in .\"O .IR flags : -¤µ¤é¤Ë¡¢°Ê²¼¤ÎÃͤΤ¦¤Á 0 ¸Ä°Ê¾å¤ò¥Ó¥Ã¥ÈËè¤ÎÏÀÍýÏ (OR) ¤Ç +さらに、以下の値のうち 0 個以上をビット毎の論理和 (OR) で .I flags -¤Ë»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +に指定することができる。 .TP .\"O .BR MAP_32BIT " (since Linux 2.4.20, 2.6)" -.BR MAP_32BIT " (Linux 2.4.20, 2.6 °Ê¹ß)" +.BR MAP_32BIT " (Linux 2.4.20, 2.6 以降)" .\"O Put the mapping into the first 2 Gigabytes of the process address space. .\"O This flag is only supported on x86-64, for 64-bit programs. .\"O It was added to allow thread stacks to be allocated somewhere @@ -253,26 +253,26 @@ mmap, munmap \- .\"O flag is ignored when .\"O .B MAP_FIXED .\"O is set. -¥Þ¥Ã¥Ô¥ó¥°¤ò¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ÎÀèƬ 2 ¥®¥¬¥Ð¥¤¥È°ÊÆâ¤ËÇÛÃÖ¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤Î¤Ï x86-64 ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¾å¤Î -64 ¥Ó¥Ã¥È¥×¥í¥°¥é¥à¤Î¤ß¤Ç¤¢¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬Äɲ䵤줿¤Î¤Ï¡¢¥¹¥ì¥Ã¥É¤Î¥¹¥¿¥Ã¥¯¤ò¥á¥â¥ê¤ÎÀèƬ 2GB °ÊÆâ¤Î -¤É¤³¤«¤Ë³ä¤êÅö¤Æ¤ë¤³¤È¤Ç¡¢½é´ü¤Î¤¤¤¯¤Ä¤«¤Î 64 ¥Ó¥Ã¥È¥×¥í¥»¥Ã¥µ¤Ë¤ª¤±¤ë -¥³¥ó¥Æ¥­¥¹¥È¥¹¥¤¥Ã¥Á¤ÎÀ­Ç½ÌäÂê¤ò²þÁ±¤¹¤ë¤¿¤á¤Ç¤¢¤ë¡£ +マッピングをプロセスのアドレス空間の先頭 2 ギガバイト以内に配置する。 +このフラグがサポートされているのは x86-64 アーキテクチャ上の +64 ビットプログラムのみである。 +このフラグが追加されたのは、スレッドのスタックをメモリの先頭 2GB 以内の +どこかに割り当てることで、初期のいくつかの 64 ビットプロセッサにおける +コンテキストスイッチの性能問題を改善するためである。 .\" See http://lwn.net/Articles/294642 "Tangled up in threads", 19 Aug 08 -ºÇ¶á¤Î x86-64 ¥×¥í¥»¥Ã¥µ¤Ç¤Ï¤³¤ÎÀ­Ç½ÌäÂê¤Ï¤â¤Ï¤ä¸ºß¤»¤º¡¢ -¤½¤Î¤è¤¦¤Ê¥·¥¹¥Æ¥à¤Ç¤Ï¤³¤Î¥Õ¥é¥°¤ò»ÈÍѤ¹¤ëɬÍפϤʤ¤¡£ +最近の x86-64 プロセッサではこの性能問題はもはや存在せず、 +そのようなシステムではこのフラグを使用する必要はない。 .B MAP_FIXED -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ +がセットされている場合は、 .B MAP_32BIT -¥Õ¥é¥°¤Ï̵»ë¤µ¤ì¤ë¡£ +フラグは無視される。 .TP .B MAP_ANON .\"O Synonym for .\"O .BR MAP_ANONYMOUS . .\"O Deprecated. .B MAP_ANONYMOUS -¤ÎƱµÁ¸ì¡£Èó¿ä¾©¡£ +の同義語。非推奨。 .TP .B MAP_ANONYMOUS .\"O The mapping is not backed by any file; @@ -295,28 +295,28 @@ mmap, munmap \- .\"O in conjunction with .\"O .B MAP_SHARED .\"O is only supported on Linux since kernel 2.4. -¥Þ¥Ã¥Ô¥ó¥°¤Ï¤É¤Î¥Õ¥¡¥¤¥ë¤È¤â´ØÏ¢ÉÕ¤±¤µ¤ì¤Ê¤¤¡£ -¥Þ¥Ã¥Ô¥ó¥°¤ÎÆâÍÆ¤Ï 0 ¤Ç½é´ü²½¤µ¤ì¤ë¡£ -°ú¤­¿ô +マッピングはどのファイルとも関連付けされない。 +マッピングの内容は 0 で初期化される。 +引き数 .I fd -¤È +と .I offset -¤Ï̵»ë¤µ¤ì¤ë¡£ -¤¿¤À¤·¡¢¼ÂÁõ¤Ë¤è¤Ã¤Æ¤Ï +は無視される。 +ただし、実装によっては .B MAP_ANONYMOUS -(¤â¤·¤¯¤Ï +(もしくは .BR MAP_ANON ) -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +が指定された場合、 .I fd -¤ò \-1 ¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¡¢ -°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ïɬ¤º +を \-1 にする必要があり、 +移植性が必要なアプリケーションでは必ず .I fd -¤ò \-1 ¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +を \-1 にすべきである。 .B MAP_ANONYMOUS -¤È +と .B MAP_SHARED -¤òÁȤ߹ç¤ï¤»¤Æ¤ÎÍøÍÑ¤Ï -¥«¡¼¥Í¥ë 2.4 °Ê¹ß¤Î Linux ¤Ç¤Î¤ß¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +を組み合わせての利用は +カーネル 2.4 以降の Linux でのみサポートされている。 .TP .B MAP_DENYWRITE .\"O This flag is ignored. @@ -325,32 +325,32 @@ mmap, munmap \- .\"O should fail with .\"O .B ETXTBUSY . .\"O But this was a source of denial-of-service attacks.) -¤³¤Î¥Õ¥é¥°¤Ï̵»ë¤µ¤ì¤ë -.\" 1.1.36 ¤ÇƳÆþ¤µ¤ì¡¢1.3.24 ¤Çºï½ü¤µ¤ì¤¿¡£ -(¤º¤Ã¤ÈÁ°¤Ï¡¢¥Þ¥Ã¥×¸µ¤Î¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤­¹þ¤ß¤ò¹Ô¤ª¤¦¤È¤¹¤ë¤È¡¢¥¨¥é¡¼ +このフラグは無視される +.\" 1.1.36 で導入され、1.3.24 で削除された。 +(ずっと前は、マップ元のファイルへの書き込みを行おうとすると、エラー .B ETXTBUSY -¤Ç¼ºÇÔ¤¹¤ë¤è¤¦¤Ë¥·¥°¥Ê¥ë¤¬ÀßÄꤵ¤ì¤Æ¤¤¤¿¤¬¡¢¤³¤ì¤Ï denial-of-service -(¥µ¡¼¥Ó¥¹µñÈÝ) ¹¶·â¤Î¸¶°ø¤È¤Ê¤Ã¤¿)¡£ +で失敗するようにシグナルが設定されていたが、これは denial-of-service +(サービス拒否) 攻撃の原因となった)。 .TP .B MAP_EXECUTABLE .\"O This flag is ignored. -¤³¤Î¥Õ¥é¥°¤Ï̵»ë¤µ¤ì¤ë¡£ +このフラグは無視される。 .\"O .\" Introduced in 1.1.38, removed in 1.3.24. Flag tested in proc_follow_link. .\"O .\" (Long ago, it signaled that the underlying file is an executable. .\"O .\" However, that information was not really used anywhere.) .\"O .\" Linus talked about DOS related to MAP_EXECUTABLE, but he was thinking of .\"O .\" MAP_DENYWRITE? -.\" 1.1.38 ¤ÇƳÆþ¤µ¤ì¡¢1.3.24 ¤Çºï½ü¤µ¤ì¤¿¡£ -.\" proc_follow_link ¤Ç¥Æ¥¹¥È¤µ¤ì¤ë¥Õ¥é¥°¤Ç¤¢¤ë¡£(¤º¤Ã¤ÈÁ°¤Ï¡¢ -.\" ¥Þ¥Ã¥×¸µ¤Î¥Õ¥¡¥¤¥ë¤¬¼Â¹Ô²Äǽ¤Ç¤¢¤ë¤³¤È¤òÃΤ餻¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤¿¡£ -.\" ¤·¤«¤·¡¢¤½¤Î¾ðÊó¤Ï¼ÂºÝ¤Ë¤Ï¤É¤³¤Ç¤â»È¤ï¤ì¤Ê¤«¤Ã¤¿¡£) -.\" Linus ¤Ï MAP_EXECUTABLE ¤Ë´ØÏ¢¤·¤Æ DoS ¤ÎÏäò¤·¤¿¤¬¡¢ -.\" MAP_DENYWRITE ¤Î¤³¤È¤ò¹Í¤¨¤Æ¤¤¤¿¤Î¤«¤Ê¡© +.\" 1.1.38 で導入され、1.3.24 で削除された。 +.\" proc_follow_link でテストされるフラグである。(ずっと前は、 +.\" マップ元のファイルが実行可能であることを知らせるようになっていた。 +.\" しかし、その情報は実際にはどこでも使われなかった。) +.\" Linus は MAP_EXECUTABLE に関連して DoS の話をしたが、 +.\" MAP_DENYWRITE のことを考えていたのかな? .TP .B MAP_FILE .\"O Compatibility flag. .\"O Ignored. -¸ß´¹À­¤Î¤¿¤á¤Î¥Õ¥é¥°¡£Ìµ»ë¤µ¤ì¤ë¡£ +互換性のためのフラグ。無視される。 .\" On some systems, this was required as the opposite of .\" MAP_ANONYMOUS -- mtk, 1 May 2007 .TP @@ -361,11 +361,11 @@ mmap, munmap \- .\"O .I addr .\"O must be a multiple of the page size. .I addr -¤ò¥¢¥É¥ì¥¹¤Î¥Ò¥ó¥È¤È¤·¤Æ»ÈÍѤ¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ +をアドレスのヒントとして使用するのではなく、 .I addr -¤Ç»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤ò¤½¤Î¤Þ¤Þ»ÈÍѤ·¤Æ¥Þ¥Ã¥Ô¥ó¥°¤òÇÛÃÖ¤¹¤ë¡£ +で指定されたアドレスをそのまま使用してマッピングを配置する。 .I addr -¤Ï¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +はページサイズの倍数でなければならない。 .\"O If the memory region specified by .\"O .I addr .\"O and @@ -373,66 +373,66 @@ mmap, munmap \- .\"O overlaps pages of any existing mapping(s), then the overlapped .\"O part of the existing mapping(s) will be discarded. .I addr -¤È +と .I len -¤Ç»ØÄꤵ¤ì¤¿¥á¥â¥êÎΰ褬´û¸¤Î¥Þ¥Ã¥Ô¥ó¥°¤Î¥Ú¡¼¥¸¤È½Å¤Ê¤ë¾ì¹ç¡¢ -´û¸¤Î¥Þ¥Ã¥Ô¥ó¥°¤Î½Å¤Ê¤Ã¤¿Éôʬ¤Ï¼Î¤Æ¤é¤ì¤ë¡£ +で指定されたメモリ領域が既存のマッピングのページと重なる場合、 +既存のマッピングの重なった部分は捨てられる。 .\"O If the specified address cannot be used, .\"O .BR mmap () .\"O will fail. -¤â¤·»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤¬»ÈÍѤǤ­¤Ê¤¤¾ì¹ç¡¢ +もし指定されたアドレスが使用できない場合、 .BR mmap () -¤Ï¼ºÇÔ¤¹¤ë¡£ +は失敗する。 .\"O Because requiring a fixed address for a mapping is less portable, .\"O the use of this option is discouraged. -¥Þ¥Ã¥Ô¥ó¥°¤ËÂФ·¤Æ¸ÇÄꥢ¥É¥ì¥¹¤òÍ׵᤹¤ë¤Î¤Ï°Ü¿¢À­¤ÎÌ̤ÇÎô¤ë¤Î¤Ç¡¢ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï»ÈÍѤ·¤Ê¤¤¤³¤È¤ò¿ä¾©¤¹¤ë¡£ +マッピングに対して固定アドレスを要求するのは移植性の面で劣るので、 +このオプションは使用しないことを推奨する。 .TP .B MAP_GROWSDOWN .\"O Used for stacks. .\"O Indicates to the kernel virtual memory system that the mapping .\"O should extend downwards in memory. -¥¹¥¿¥Ã¥¯ÍѤ˻ÈÍѤµ¤ì¤ë¡£¥Þ¥Ã¥Ô¥ó¥°¤ò¥á¥â¥êÆâ¤ÇµÕ¸þ¤­¤Ë¹Ô¤¦¤³¤È¤ò -¥«¡¼¥Í¥ë²¾ÁÛ¥á¥â¥ê¥·¥¹¥Æ¥à¤Ë»Ø¼¨¤¹¤ë¡£ -(ÌõÃí¡§¥Þ¥Ã¥Ô¥ó¥°¤ÏÄ̾ï¤Ï¥á¥â¥ê¡¦¥¢¥É¥ì¥¹¤¬Áý²Ã¤¹¤ë¸þ¤­¤Ë¹Ô¤¦¤¬¡¢ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤ÈµÕ¸þ¤­¤Ë¥Þ¥Ã¥Ô¥ó¥°¤ò¹Ô¤¦) +スタック用に使用される。マッピングをメモリ内で逆向きに行うことを +カーネル仮想メモリシステムに指示する。 +(訳注:マッピングは通常はメモリ・アドレスが増加する向きに行うが、 +このオプションを指定すると逆向きにマッピングを行う) .TP .\"O .BR MAP_HUGETLB " (since Linux 2.6.32)" -.BR MAP_HUGETLB " (Linux 2.6.32 °Ê¹ß)" +.BR MAP_HUGETLB " (Linux 2.6.32 以降)" .\"O Allocate the mapping using "huge pages." .\"O See the kernel source file .\"O .I Documentation/vm/hugetlbpage.txt .\"O for further information. -"huge page" ¤ò»È¤Ã¤Æ¥Þ¥Ã¥Ô¥ó¥°¤ò³ä¤êÅö¤Æ¤ë¡£ -¾Ü¤·¤¤¾ðÊó¤Ï¡¢¥«¡¼¥Í¥ë¡¦¥½¡¼¥¹¤Î +"huge page" を使ってマッピングを割り当てる。 +詳しい情報は、カーネル・ソースの .I Documentation/vm/hugetlbpage.txt -¤ò»²¾È¡£ +を参照。 .TP .\"O .BR MAP_LOCKED " (since Linux 2.5.37)" -.BR MAP_LOCKED " (Linux 2.5.37 °Ê¹ß)" +.BR MAP_LOCKED " (Linux 2.5.37 以降)" .\"O Lock the pages of the mapped region into memory in the manner of .\"O .BR mlock (2). .\"O This flag is ignored in older kernels. .\"O .\" If set, the mapped pages will not be swapped out. -¥Þ¥Ã¥×¤µ¤ì¤¿Îΰè¤Î¥Ú¡¼¥¸¤ò +マップされた領域のページを .BR mlock (2) -¤ÎÊýË¡¤Ç¥á¥â¥êÆâ¤Ë¥í¥Ã¥¯¤¹¤ë¡£ -¤½¤ì°ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¤³¤Î¥Õ¥é¥°¤Ï̵»ë¤µ¤ì¤ë¡£ -.\" ¤³¤Î¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¤¿¥Ú¡¼¥¸¤Ï¥¹¥ï¥Ã¥×¥¢¥¦¥È -.\" ¤µ¤ì¤Ê¤¤¡£ +の方法でメモリ内にロックする。 +それ以前のカーネルでは、このフラグは無視される。 +.\" このフラグがセットされていると、マッピングされたページはスワップアウト +.\" されない。 .TP .\"O .BR MAP_NONBLOCK " (since Linux 2.5.46)" -.BR MAP_NONBLOCK " (Linux 2.5.46 °Ê¹ß)" +.BR MAP_NONBLOCK " (Linux 2.5.46 以降)" .\"O Only meaningful in conjunction with .\"O .BR MAP_POPULATE . .\"O Don't perform read-ahead: .\"O only create page tables entries for pages .\"O that are already present in RAM. .B MAP_POPULATE -¤ÈÁȤ߹ç¤ï¤»¤¿¾ì¹ç¤Î¤ß°ÕÌ£¤ò»ý¤Ä¡£ -read-ahead (Á°¤â¤Ã¤ÆÆɤ߹þ¤à¤³¤È) ¤ò¼Â¹Ô¤·¤Ê¤¤¡£ -ñ¤Ë¡¢¤¹¤Ç¤Ë RAM ¾å¤Ë¸ºß¤¹¤ë¥Ú¡¼¥¸¤ËÂФ·¤Æ -¥Ú¡¼¥¸¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤òºîÀ®¤¹¤ë¤À¤±¤Ç¤¢¤ë¡£ +と組み合わせた場合のみ意味を持つ。 +read-ahead (前もって読み込むこと) を実行しない。 +単に、すでに RAM 上に存在するページに対して +ページテーブルエントリを作成するだけである。 .\"O Since Linux 2.6.23, this flag causes .\"O .BR MAP_POPULATE .\"O to do nothing. @@ -441,14 +441,14 @@ read-ahead ( .\"O and .\"O .BR MAP_NONBLOCK .\"O may be reimplemented. -Linux 2.6.23 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¥Õ¥é¥°¤Ï +Linux 2.6.23 以降では、このフラグは .B MAP_POPULATE -¤Ë²¿¤Î±Æ¶Á¤âÍ¿¤¨¤Ê¤¤¡£ -¤¤¤Ä¤« +に何の影響も与えない。 +いつか .B MAP_POPULATE -¤È +と .B MAP_NONBLOCK -¤òÁȤ߹ç¤ï¤»¤¿¾ì¹ç¤ÎÆ°ºî¤Ï¼ÂÁõ¤·Ä¾¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +を組み合わせた場合の動作は実装し直されるかもしれない。 .TP .B MAP_NORESERVE .\"O Do not reserve swap space for this mapping. @@ -458,12 +458,12 @@ Linux 2.6.23 .\"O .B SIGSEGV .\"O upon a write .\"O if no physical memory is available. -¤³¤Î¥Þ¥Ã¥Ô¥ó¥°¤ËÂФ¹¤ë¥¹¥ï¥Ã¥×¶õ´Ö¤ÎͽÌó¤ò¹Ô¤ï¤Ê¤¤¡£ -¥¹¥ï¥Ã¥×¶õ´Ö¤òͽÌó¤·¤¿¾ì¹ç¤Ï¡¢¤³¤Î¥Þ¥Ã¥Ô¥ó¥°¤ÎÊѹ¹¤¬É¬¤º²Äǽ¤Ê¤³¤È¤¬ -Êݾڤµ¤ì¤ë¡£Í½Ìó¤ò¹Ô¤ï¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ÊªÍý¥á¥â¥ê¤Ë¶õ¤­¤¬¤Ê¤¤¤È -½ñ¤­¹þ¤ß»þ¤Ë +このマッピングに対するスワップ空間の予約を行わない。 +スワップ空間を予約した場合は、このマッピングの変更が必ず可能なことが +保証される。予約を行わなかった場合、物理メモリに空きがないと +書き込み時に .B SIGSEGV -¥¨¥é¡¼¤ò¼õ¤±¼è¤ë¤³¤È¤¬¤¢¤ë¡£ +エラーを受け取ることがある。 .\"O See also the discussion of the file .\"O .I /proc/sys/vm/overcommit_memory .\"O in @@ -471,26 +471,26 @@ Linux 2.6.23 .\"O In kernels before 2.6, this flag only had effect for .\"O private writable mappings. .BR proc (5) -¤Î +の .I /proc/sys/vm/overcommit_memory -¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¤ÎµÄÏÀ¤â»²¾È¡£ -¥Ð¡¼¥¸¥ç¥ó 2.6 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¤³¤Î¥Õ¥é¥°¤Ï½ñ¤­¹þ¤ß²Äǽ¤Ê -¥×¥é¥¤¥Ù¡¼¥È¡¦¥Þ¥Ã¥Ô¥ó¥°¤Ë¤Ä¤¤¤Æ¤Î¤ß¸ú²Ì¤¬¤¢¤Ã¤¿¡£ +ファイルについての議論も参照。 +バージョン 2.6 より前のカーネルでは、このフラグは書き込み可能な +プライベート・マッピングについてのみ効果があった。 .TP .\"O .BR MAP_POPULATE " (since Linux 2.5.46)" -.BR MAP_POPULATE " (Linux 2.5.46 °Ê¹ß)" +.BR MAP_POPULATE " (Linux 2.5.46 以降)" .\"O Populate (prefault) page tables for a mapping. .\"O For a file mapping, this causes read-ahead on the file. .\"O Later accesses to the mapping will not be blocked by page faults. .\"O .BR MAP_POPULATE .\"O is only supported for private mappings since Linux 2.6.23. -¥Þ¥Ã¥Ô¥ó¥°ÍѤΥڡ¼¥¸¥Æ¡¼¥Ö¥ë¤òÇÛÃÖ (populate) ¤¹¤ë -¥Õ¥¡¥¤¥ë¥Þ¥Ã¥Ô¥ó¥°¤Î¾ì¹ç¤Ë¤Ï¡¢¤³¤ì¤Ë¤è¤ê¥Õ¥¡¥¤¥ë¤¬ÀèÆÉ¤ß (read-ahead) -¤¬¹Ô¤ï¤ì¤ë¡£¤³¤Î°Ê¸å¤Ï¡¢¥Þ¥Ã¥Ô¥ó¥°¤ËÂФ¹¤ë¥¢¥¯¥»¥¹¤¬¥Ú¡¼¥¸¥Õ¥©¡¼¥ë¥È¤Ç -¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¤³¤È¤¬¤Ê¤¯¤Ê¤ë¡£ +マッピング用のページテーブルを配置 (populate) する +ファイルマッピングの場合には、これによりファイルが先読み (read-ahead) +が行われる。この以後は、マッピングに対するアクセスがページフォールトで +ブロックされることがなくなる。 .BR MAP_POPULATE -¤Ï Linux 2.6.23 °Ê¹ß¤Ç¥×¥é¥¤¥Ù¡¼¥È¡¦¥Þ¥Ã¥Ô¥ó¥°¤Ë¤Ä¤¤¤Æ¤Î¤ß -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +は Linux 2.6.23 以降でプライベート・マッピングについてのみ +サポートされている。 .LP .\"O Of the above flags, only .\"O .B MAP_FIXED @@ -499,29 +499,29 @@ Linux 2.6.23 .\"O .B MAP_ANONYMOUS .\"O (or its synonym .\"O .BR MAP_ANON ). -¾åµ­¤Î¥Õ¥é¥°¤ÎÃæ¤Ç¤Ï¡¢ +上記のフラグの中では、 .B MAP_FIXED -¤À¤±¤¬ POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¤Ç +だけが POSIX.1-2001 で規定されている。 +しかしながら、ほとんどのシステムで .B MAP_ANONYMOUS -(¤Þ¤¿¤Ï¤½¤ÎƱµÁ¸ì¤Ç¤¢¤ë +(またはその同義語である .BR MAP_ANON ) -¤â¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +もサポートされている。 .TP .\"O .BR MAP_STACK " (since Linux 2.6.27)" -.BR MAP_STACK " (Linux 2.6.27 °Ê¹ß)" +.BR MAP_STACK " (Linux 2.6.27 以降)" .\"O Allocate the mapping at an address suitable for a process .\"O or thread stack. .\"O This flag is currently a no-op, .\"O but is used in the glibc threading implementation so that .\"O if some architectures require special treatment for stack allocations, .\"O support can later be transparently implemented for glibc. -¥×¥í¥»¥¹¤ä¥¹¥ì¥Ã¥É¤Î¥¹¥¿¥Ã¥¯¤ËŬ¤·¤¿¥¢¥É¥ì¥¹¤Ë¥Þ¥Ã¥Ô¥ó¥°¤ò³ä¤êÅö¤Æ¤ë¡£ -¸½ºß¤Î¤È¤³¤í¡¢¤³¤Î¥Õ¥é¥°¤Ï²¿¤â¤·¤Ê¤¤¤¬¡¢ -glibc ¤Î¥¹¥ì¥Ã¥É¼ÂÁõ¤Ç¤Ï»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¥¹¥¿¥Ã¥¯¤Î³ä¤êÅö¤Æ¤Ë´Ø¤·¤ÆÆÃÊ̤ʰ·¤¤ -¤¬É¬Íפʾì¹ç¤Ë¡¢glibc ¤Ë¤½¤Î¥µ¥Ý¡¼¥È¤ò¸å¤ÇÆ©²áŪ¤Ë¼ÂÁõ¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë -¤¿¤á¤Ç¤¢¤ë¡£ +プロセスやスレッドのスタックに適したアドレスにマッピングを割り当てる。 +現在のところ、このフラグは何もしないが、 +glibc のスレッド実装では使用されている。 +これは、いくつかのアーキテクチャではスタックの割り当てに関して特別な扱い +が必要な場合に、glibc にそのサポートを後で透過的に実装できるようにする +ためである。 .\" See http://lwn.net/Articles/294642 "Tangled up in threads", 19 Aug 08 .\" commit cd98a04a59e2f94fa64d5bf1e26498d27427d5e7 .\" http://thread.gmane.org/gmane.linux.kernel/720412 @@ -534,12 +534,12 @@ glibc .\"O .BR MAP_COPY , .\"O and .\"O .BR MAP_LOCAL . -¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¾åµ­°Ê³°¤Ë¥Õ¥é¥°¤È¤·¤Æ +いくつかのシステムでは、上記以外にフラグとして .BR MAP_AUTOGROW , .BR MAP_AUTORESRV , .BR MAP_COPY , .B MAP_LOCAL -¤¬µ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +が規定されている。 .LP .\"O Memory mapped by .\"O .BR mmap () @@ -547,9 +547,9 @@ glibc .\"O .BR fork (2), .\"O with the same attributes. .BR mmap () -¤Ë¤è¤Ã¤Æ¥Þ¥Ã¥×¤µ¤ì¤¿¥á¥â¥ê¤Î°À­¤Ï +によってマップされたメモリの属性は .BR fork (2) -¤ÎºÝ¤Ë·Ñ¾µ¤µ¤ì¤ë¡£ +の際に継承される。 .LP .\"O A file is mapped in multiples of the page size. .\"O For a file that is not @@ -558,11 +558,11 @@ glibc .\"O The effect of .\"O changing the size of the underlying file of a mapping on the pages that .\"O correspond to added or removed regions of the file is unspecified. -¥Õ¥¡¥¤¥ë¤Ï¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÀ°¿ôÇܤÎÎΰè¤Ë¥Þ¥Ã¥×¤µ¤ì¤ë¡£¥µ¥¤¥º¤¬¥Ú¡¼¥¸¥µ¥¤¥º¤Î -À°¿ôÇܤǤʤ¤¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¡¢¥Þ¥Ã¥×»þ¤Ë»Ä¤ê¤ÎÎΰè¤Ï 0 ¤ÇËä¤á¤é¤ì¡¢¤³¤ÎÎΰè¤Ø -½ñ¤­¤³¤ß¤ò¹Ô¤Ã¤Æ¤â¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£¥Þ¥Ã¥Ô¥ó¥°¤ò¹Ô¤Ã¤¿¸µ -¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤òÊѹ¹¤·¤¿¾ì¹ç¡¢¸µ¥Õ¥¡¥¤¥ë¤ÎÄɲ䵤줿¤êºï½ü¤µ¤ì¤¿Îΰè¤ËÂбþ -¤¹¤ë¥Þ¥Ã¥×¤µ¤ì¤¿¥Ú¡¼¥¸¤ËÂФ·¤Æ¤É¤Î¤è¤¦¤Ê±Æ¶Á¤¬¤¢¤ë¤«¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +ファイルはページサイズの整数倍の領域にマップされる。サイズがページサイズの +整数倍でないファイルの場合、マップ時に残りの領域は 0 で埋められ、この領域へ +書きこみを行ってもファイルに書き出されることはない。マッピングを行った元 +ファイルのサイズを変更した場合、元ファイルの追加されたり削除された領域に対応 +するマップされたページに対してどのような影響があるかは規定されていない。 .SS munmap() .\"O The .\"O .BR munmap () @@ -573,12 +573,12 @@ glibc .\"O when the process is terminated. .\"O On the other hand, closing the file .\"O descriptor does not unmap the region. -¥·¥¹¥Æ¥à¥³¡¼¥ë +システムコール .BR munmap () -¤Ï»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹ÈϰϤΥޥåפò¾Ãµî¤·¡¢ -¤³¤ì°Ê¹ß¤Î¤½¤ÎÈÏ°ÏÆâ¤Ø¤Î¥á¥â¥ê»²¾È¤ÏÉÔÀµ¤È¤Ê¤ë¡£ -¤³¤ÎÎΰè¤Ï¡¢¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿¤È¤­¤Ë¤â¼«Æ°Åª¤Ë¥¢¥ó¥Þ¥Ã¥×¤µ¤ì¤ë¡£ -°ìÊý¡¢¥Õ¥¡¥¤¥ëµ­½Ò»Ò¤ò¥¯¥í¡¼¥º¤·¤Æ¤â¡¢¤³¤ÎÎΰè¤Ï¥¢¥ó¥Þ¥Ã¥×¤µ¤ì¤Ê¤¤¡£ +は指定されたアドレス範囲のマップを消去し、 +これ以降のその範囲内へのメモリ参照は不正となる。 +この領域は、プロセスが終了したときにも自動的にアンマップされる。 +一方、ファイル記述子をクローズしても、この領域はアンマップされない。 .LP .\"O The address .\"O .I addr @@ -590,27 +590,27 @@ glibc .\"O It is not an error if the .\"O indicated range does not contain any mapped pages. .I addr -¥¢¥É¥ì¥¹¤Ï¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÀ°¿ôÇܤǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£»ØÄꤵ¤ì¤¿ÈϰϤΰìÉôʬ¤ò -´Þ¤àÁ´¤Æ¤Î¥Ú¡¼¥¸¤Ï¥¢¥ó¥Þ¥Ã¥×¤µ¤ì¡¢¤³¤ì°Ê¹ß¤Ë¤³¤ì¤é¤Î¥Ú¡¼¥¸¤Ø¤Î»²¾È¤¬¤¢¤ë¤È +アドレスはページサイズの整数倍でなければならない。指定された範囲の一部分を +含む全てのページはアンマップされ、これ以降にこれらのページへの参照があると .B SIGSEGV -¤¬È¯À¸¤¹¤ë¡£ -»ØÄꤷ¤¿ÈÏ°ÏÆâ¤Ë¥Þ¥Ã¥×¤µ¤ì¤¿¥Ú¡¼¥¸¤¬°ì¤Ä¤â´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ç¤â -¥¨¥é¡¼¤Ë¤Ê¤é¤Ê¤¤¡£ +が発生する。 +指定した範囲内にマップされたページが一つも含まれていない場合でも +エラーにならない。 .\"O .SS Timestamps changes for file-backed mappings -.SS ¥Õ¥¡¥¤¥ë¤È´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Þ¥Ã¥Ô¥ó¥°¤ËÂФ¹¤ë¥¿¥¤¥à¥¹¥¿¥ó¥×¤Î¹¹¿· +.SS ファイルと関連付けられたマッピングに対するタイムスタンプの更新 .\"O For file-backed mappings, the .\"O .I st_atime .\"O field for the mapped file may be updated at any time between the .\"O .BR mmap () .\"O and the corresponding unmapping; the first reference to a mapped .\"O page will update the field if it has not been already. -¥Õ¥¡¥¤¥ë¤È´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Þ¥Ã¥Ô¥ó¥°¤Î¾ì¹ç¡¢¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î +ファイルと関連付けられたマッピングの場合、マッピングされたファイルの .I st_atime -¥Õ¥£¡¼¥ë¥É¤Ï¡¢ +フィールドは、 .BR mmap () -¤µ¤ì¤Æ¤«¤é¥¢¥ó¥Þ¥Ã¥× (unmap) ¤µ¤ì¤ë¤Þ¤Ç¤Î´Ö¤Ë¹¹¿·¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ -¤½¤ì¤Þ¤Ç¤Ë¹¹¿·¤¬¹Ô¤ï¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¥Þ¥Ã¥×¤µ¤ì¤¿¥Ú¡¼¥¸¤Ø¤ÎºÇ½é¤Î»²¾È¤¬¤¢¤Ã¤¿ -ºÝ¤Ë¹¹¿·¤µ¤ì¤ë¡£ +されてからアンマップ (unmap) されるまでの間に更新されることがある。 +それまでに更新が行われていなければ、マップされたページへの最初の参照があった +際に更新される。 .LP .\"O The .\"O .I st_ctime @@ -629,21 +629,21 @@ glibc .\"O .B MS_ASYNC .\"O flag, if one occurs. .B PROT_WRITE -¤È +と .B MAP_SHARED -¤ÎξÊý¤ò»ØÄꤷ¤Æ¥Þ¥Ã¥×¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¡¢½ñ¤­¹þ¤ß¤¬¤¢¤ë¤È¡¢ +の両方を指定してマップされたファイルの場合、書き込みがあると、 .I st_ctime -¤È +と .I st_mtime -¤Îξ¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥Þ¥Ã¥×¤µ¤ì¤¿Îΰè¤Ø¤Î½ñ¤­¹þ¤ß¤è¤ê¸å¤Ç¡¢ +の両フィールドは、マップされた領域への書き込みより後で、 .B MS_SYNC -¤Þ¤¿¤Ï +または .B MS_ASYNC -¥Õ¥é¥°¤ò»ØÄꤷ¤Æ +フラグを指定して .BR msync (2) -¤¬¸Æ¤Ð¤ì¤ëÁ°¤Þ¤Ç¤Ë¹¹¿·¤µ¤ì¤ë¡£ +が呼ばれる前までに更新される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR mmap () .\"O returns a pointer to the mapped area. @@ -655,14 +655,14 @@ glibc .\"O .I errno .\"O is set appropriately. .BR mmap () -¤ÏÀ®¸ù¤¹¤ë¤È¥Þ¥Ã¥×¤µ¤ì¤¿Îΰè¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¼ºÇÔ¤¹¤ë¤ÈÃÍ +は成功するとマップされた領域へのポインタを返す。 +失敗すると値 .B MAP_FAILED -(¤Ä¤Þ¤ê +(つまり .IR "(void\ *)\ \-1" ) -¤òÊÖ¤·¡¢ +を返し、 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤˤ·¤¿¤¬¤Ã¤Æ¥»¥Ã¥È¤µ¤ì¤ë¡£ +がエラーの内容にしたがってセットされる。 .\"O On success, .\"O .BR munmap () .\"O returns 0, on failure \-1, and @@ -670,13 +670,13 @@ glibc .\"O is set (probably to .\"O .BR EINVAL ). .BR munmap () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¼ºÇÔ¤¹¤ë¤È \-1 ¤òÊÖ¤·¡¢ +は成功すると 0 を返す。失敗すると \-1 を返し、 .I errno -¤¬¥»¥Ã¥È¤µ¤ì¤ë (¿¤¯¤Î¾ì¹ç +がセットされる (多くの場合 .B EINVAL -¤Ë¤Ê¤ë¤À¤í¤¦)¡£ +になるだろう)。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O A file descriptor refers to a non-regular file. @@ -697,29 +697,29 @@ glibc .\"O \"O Or .\"O .B PROT_WRITE .\"O is set, but the file is append-only. -°Ê²¼¤Î¤¤¤º¤ì¤«¤Î¾ì¹ç¡£ -¥Õ¥¡¥¤¥ëµ­½Ò»Ò¤Î»²¾ÈÀ褬Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤Ï¤Ê¤¤ (non-regular file) ¡£ +以下のいずれかの場合。 +ファイル記述子の参照先が通常のファイルではない (non-regular file) 。 .B MAP_PRIVATE -¤òÍ׵ᤷ¤¿¤¬ +を要求したが .I fd -¤ÏÆɤ߹þ¤ßÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +は読み込み用にオープンされていない。 .B MAP_SHARED -¤òÍ׵ᤷ¤Æ +を要求して .B PROT_WRITE -¤ò¥»¥Ã¥È¤·¤¿¤¬ +をセットしたが .I fd -¤ÏÆɤ߽ñ¤­¥â¡¼¥É +は読み書きモード .RB ( O_RDWR ) -¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤¡¢ +でオープンされていない、 .B PROT_WRITE -¤ò¥»¥Ã¥È¤·¤¿¤¬¡¢¥Õ¥¡¥¤¥ë¤ÏÄɲà (append) ÀìÍѤǤ¢¤ë¡£ +をセットしたが、ファイルは追加 (append) 専用である。 .TP .B EAGAIN .\"O The file has been locked, or too much memory has been locked (see .\"O .BR setrlimit (2)). -¥Õ¥¡¥¤¥ë¤¬¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¡£¤Þ¤¿¤Ï¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¥á¥â¥ê¤¬Â¿¤¹¤®¤ë +ファイルがロックされている。またはロックされているメモリが多すぎる .RB ( setrlimit (2) -¤ò»²¾È)¡£ +を参照)。 .TP .B EBADF .\"O .I fd @@ -727,10 +727,10 @@ glibc .\"O .B MAP_ANONYMOUS .\"O was not set). .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ëµ­½Ò»Ò (file descriptor) ¤Ç¤Ï¤Ê¤¤ -(¤«¤Ä +が有効なファイル記述子 (file descriptor) ではない +(かつ .B MAP_ANONYMOUS -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤)¡£ +がセットされていない)。 .TP .B EINVAL .\"O We don't like @@ -740,20 +740,20 @@ glibc .\"O .I offset .\"O (e.g., they are too large, or not aligned on a page boundary). .I addr -¤« +か .I length -¤« +か .I offset -¤¬Å¬ÀڤǤʤ¤ -(Î㤨¤Ð¡¢Â礭¤¹¤®¤ë¤È¤«¡¢¥Ú¡¼¥¸¶­³¦¤Ë¥¢¥é¥¤¥ó¥á¥ó¥È¤µ¤ì¤Æ¤¤¤Ê¤¤)¡£ +が適切でない +(例えば、大きすぎるとか、ページ境界にアラインメントされていない)。 .TP .B EINVAL .\"O (since Linux 2.6.12) .\"O .I length .\"O was 0. -(Linux 2.6.12 °Ê¹ß) +(Linux 2.6.12 以降) .I length -¤¬ 0 ¤Ç¤¢¤Ã¤¿¡£ +が 0 であった。 .TP .B EINVAL .\"O .I flags @@ -763,34 +763,34 @@ glibc .\"O .BR MAP_SHARED , .\"O or contained both of these values. .I flags -¤Ë +に .B MAP_PRIVATE -¤È +と .B MAP_SHARED -¤Î¤É¤Á¤é¤â´Þ¤Þ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¡¢¤â¤·¤¯¤Ï -¤½¤ÎξÊý¤¬´Þ¤Þ¤ì¤Æ¤¤¤¿¡£ +のどちらも含まれていなかった、もしくは +その両方が含まれていた。 .TP .B ENFILE .\"O .\" This is for shared anonymous segments -.\" ¤³¤ì¤Ï¶¦Í­Æ¿Ì¾ (anonymous) ¥»¥°¥á¥ó¥È¤Î¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ +.\" これは共有匿名 (anonymous) セグメントのためのものである。 .\" [2.6.7] shmem_zero_setup()-->shmem_file_setup()-->get_empty_filp() .\"O The system limit on the total number of open files has been reached. -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ÎÁí¿ô¤¬¥·¥¹¥Æ¥à¤ÎÀ©¸Â¤Ë㤷¤¿¡£ +オープンされたファイルの総数がシステムの制限に達した。 .\" .TP .\" .B ENOEXEC .\"O .\" A file could not be mapped for reading. -.\" ¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ßÍѤ˥ޥåפǤ­¤Ê¤«¤Ã¤¿¡£ +.\" ファイルを読み込み用にマップできなかった。 .TP .B ENODEV .\"O The underlying file system of the specified file does not support .\"O memory mapping. -»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¥á¥â¥ê¥Þ¥Ã¥Ô¥ó¥°¤ò¥µ¥Ý¡¼¥È -¤·¤Æ¤¤¤Ê¤¤¡£ +指定されたファイルが置かれているファイルシステムがメモリマッピングをサポート +していない。 .TP .B ENOMEM .\"O No memory is available, or the process's maximum number of mappings would .\"O have been exceeded. -¥á¥â¥ê¤Ë¶õ¤­¤¬¤Ê¤¤¡¢¤Þ¤¿¤Ï½èÍýÃæ¤Î¥×¥í¥»¥¹¤Î¥Þ¥Ã¥Ô¥ó¥°¿ô¤¬ºÇÂç¿ô¤òĶ²á¤·¤¿¡£ +メモリに空きがない、または処理中のプロセスのマッピング数が最大数を超過した。 .TP .B EPERM .\"O The @@ -801,12 +801,12 @@ glibc .\"O was mounted no-exec. .\"O .\" (Since 2.4.25 / 2.6.0.) .I prot -°ú¤­¿ô¤Ï +引き数は .B PROT_EXEC -¤ò¹Ô¤¦¤è¤¦¤Ë»ØÄꤵ¤ì¤Æ¤¤¤ë¤¬¡¢ -no-exec ¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î¥Õ¥¡¥¤¥ë¤Ë -¥Þ¥Ã¥×Îΰ褬Âбþ¤·¤Æ¤¤¤ë¡£ -.\" (2.4.25 / 2.6.0 °Ê¹ß) +を行うように指定されているが、 +no-exec でマウントされたファイルシステム上のファイルに +マップ領域が対応している。 +.\" (2.4.25 / 2.6.0 以降) .TP .B ETXTBSY .\"O .B MAP_DENYWRITE @@ -814,35 +814,35 @@ no-exec .\"O .I fd .\"O is open for writing. .B MAP_DENYWRITE -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤¬ +がセットされているが .I fd -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ï½ñ¤­¹þ¤ßÍѤ˳«¤«¤ì¤Æ¤¤¤ë¡£ +で指定されているオブジェクトは書き込み用に開かれている。 .LP .\"O Use of a mapped region can result in these signals: -¥Þ¥Ã¥×Îΰè¤òÍøÍѤ¹¤ëºÝ¤Ë¡¢°Ê²¼¤Î¥·¥°¥Ê¥ë¤¬È¯À¸¤¹¤ë¤³¤È¤¬¤¢¤ë: +マップ領域を利用する際に、以下のシグナルが発生することがある: .TP .B SIGSEGV .\"O Attempted write into a region mmaped as read-only. -Æɤ߹þ¤ßÀìÍÑ¤Ç mmap ¤µ¤ì¤¿Îΰè¤Ø½ñ¤­¹þ¤ß¤ò¹Ô¤ª¤¦¤È¤·¤¿¡£ +読み込み専用で mmap された領域へ書き込みを行おうとした。 .TP .B SIGBUS .\"O Attempted access to a portion of the buffer that does not correspond .\"O to the file (for example, beyond the end of the file, including the .\"O case where another process has truncated the file). -¥Ð¥Ã¥Õ¥¡¤Î¤¦¤Á¡¢¥Õ¥¡¥¤¥ë¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤Ê¤¤Éôʬ -(Î㤨¤Ð¥Õ¥¡¥¤¥ëËöÈø¤ò±Û¤¨¤¿Éôʬ¤Ê¤É¡£¤³¤ì¤Ë¤Ï -¾¤Î¥×¥í¥»¥¹¤¬¥Õ¥¡¥¤¥ë¤òÀÚ¤êµÍ¤á¤¿¾ì¹ç¤Ê¤É¤â´Þ¤Þ¤ì¤ë) -¤Ë¥¢¥¯¥»¥¹¤·¤è¤¦¤È¤·¤¿¡£ +バッファのうち、ファイルに関連づけられていない部分 +(例えばファイル末尾を越えた部分など。これには +他のプロセスがファイルを切り詰めた場合なども含まれる) +にアクセスしようとした。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O SVr4, 4.4BSD, POSIX.1-2001. .\"O .\" SVr4 documents additional error codes ENXIO and ENODEV. .\"O .\" SUSv2 documents additional error codes EMFILE and EOVERFLOW. SVr4, 4.4BSD, POSIX.1-2001. -.\" SVr4 ¤Ë¤Ï¤µ¤é¤Ë ENXIO ¤È ENODEV ¤Î¥¨¥é¡¼¥³¡¼¥É¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ -.\" SUSv2 ¤Ë¤Ï¤µ¤é¤Ë EMFILE ¤È EOVERFLOW ¤Î¥¨¥é¡¼¥³¡¼¥É¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ +.\" SVr4 にはさらに ENXIO と ENODEV のエラーコードについての記述がある。 +.\" SUSv2 にはさらに EMFILE と EOVERFLOW のエラーコードについての記述がある。 .\"O .SH AVAILABILITY -.SH ²ÄÍÑÀ­ +.SH 可用性 .\"O On POSIX systems on which .\"O .BR mmap (), .\"O .BR msync (2) @@ -859,17 +859,17 @@ SVr4, 4.4BSD, POSIX.1-2001. .BR mmap (), .BR msync (2) .BR munmap () -¤¬ÍøÍѲÄǽ¤Ê POSIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +が利用可能な POSIX システムでは、 .B _POSIX_MAPPED_FILES -¤Ï ¤Ç 0 ¤è¤êÂ礭¤ÊÃͤËÄêµÁ¤µ¤ì¤ë +は で 0 より大きな値に定義される .RB ( sysconf (3) -¤â»²¾È¤Î¤³¤È)¡£ -.\" POSIX.1-2001: _POSIX_MAPPED_FILES ¤Ï -1 ¤« 0 ¤« 200112L ¤Î -.\" ¤¤¤º¤ì¤«¤ËÄêµÁ¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -.\" -1: ÍøÍÑÉԲġ¢0: sysconf() ¤ËÌ䤤¤¢¤ï¤»¤ë -.\" glibc ¤Ç¤Ï POSIX_MAPPED_FILES ¤Ï 1 ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +も参照のこと)。 +.\" POSIX.1-2001: _POSIX_MAPPED_FILES は -1 か 0 か 200112L の +.\" いずれかに定義されることになっている。 +.\" -1: 利用不可、0: sysconf() に問いあわせる +.\" glibc では POSIX_MAPPED_FILES は 1 に定義されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Since kernel 2.4, this system call has been superseded by .\"O .BR mmap2 (2). .\"O Nowadays, @@ -880,18 +880,18 @@ SVr4, 4.4BSD, POSIX.1-2001. .\"O .BR mmap2 (2) .\"O with a suitably adjusted value for .\"O .IR offset . -¥«¡¼¥Í¥ë 2.4 °Ê¹ß¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +カーネル 2.4 以降、このシステムコールは .BR mmap2 (2) -¤Ë¼è¤Ã¤ÆÂå¤ï¤é¤ì¤¿¡£ -¸½ºß¤Ç¤Ï¡¢ -.\" ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë¤è¤ê°Û¤Ê¤ë¤¬¡¢ glibc 2.1/2.2 ¤¢¤¿¤ê¤«¤é¡£ -glibc ¤Î +に取って代わられた。 +現在では、 +.\" プラットフォームにより異なるが、 glibc 2.1/2.2 あたりから。 +glibc の .BR mmap () -¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï +のラッパー関数は .I offset -¤òŬÀÚ¤ËÄ´À°¤·¤Æ¤«¤é +を適切に調整してから .BR mmap2 (2) -¤òµ¯Æ°¤¹¤ë¡£ +を起動する。 .\"O On some hardware architectures (e.g., i386), .\"O .B PROT_WRITE @@ -905,19 +905,19 @@ glibc .\"O Portable programs should always set .\"O .B PROT_EXEC .\"O if they intend to execute code in the new mapping. -(i386 ¤Ê¤É¤Î) ¤¤¤¯¤Ä¤«¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢ +(i386 などの) いくつかのアーキテクチャでは、 .B PROT_WRITE -¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢°ÅÌۤΤ¦¤Á¤Ë +をセットすると、暗黙のうちに .B PROT_READ -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .B PROT_READ -¤ò¥»¥Ã¥È¤·¤¿ºÝ¤Ë°ÅÌۤΤ¦¤Á¤Ë +をセットした際に暗黙のうちに .B PROT_EXEC -¤¬¥»¥Ã¥È¤µ¤ì¤ë¤«¤É¤¦¤«¤Ï¡¢¥¢¡¼¥­¥Æ¥¯¥Á¥ã°Í¸¤Ç¤¢¤ë¡£ -°Ü¿¢À­¤ò¹Íθ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ -¿·µ¬¤Ë¥Þ¥Ã¥×¤·¤¿Îΰè¤Ç¥³¡¼¥É¤ò¼Â¹Ô¤·¤¿¤¤¾ì¹ç¤Ï¡¢¾ï¤Ë +がセットされるかどうかは、アーキテクチャ依存である。 +移植性を考慮したプログラムでは、 +新規にマップした領域でコードを実行したい場合は、常に .B PROT_EXEC -¤ò¥»¥Ã¥È¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +をセットすべきである。 .\"O The portable way to create a mapping is to specify .\"O .I addr @@ -933,32 +933,32 @@ glibc .\"O flag is specified, and .\"O .I addr .\"O is 0 (NULL), then the mapped address will be 0 (NULL). -¥Þ¥Ã¥Ô¥ó¥°¤òºîÀ®¤¹¤ë°Ü¿¢À­¤Î¤¢¤ëÊýË¡¤Ï¡¢ +マッピングを作成する移植性のある方法は、 .I addr -¤Ë 0 (NULL) ¤ò»ØÄꤷ¡¢ +に 0 (NULL) を指定し、 .I flags -¤«¤é +から .B MAP_FIXED -¤ò³°¤¹¤³¤È¤Ç¤¢¤ë¡£ -¤³¤Î¾ì¹ç¡¢¥·¥¹¥Æ¥à¤¬¥Þ¥Ã¥Ô¥ó¥°ÍѤΥ¢¥É¥ì¥¹¤ÎÁªÂò¤ò¹Ô¤¦¡£ -¥¢¥É¥ì¥¹¤Ï´û¸¤Î¥Þ¥Ã¥Ô¥ó¥°¤È¾×Æͤ·¤Ê¤¤¤è¤¦¤Ë¡¢ -¤«¤Ä 0 ¤Ë¤Ê¤é¤Ê¤¤¤è¤¦¤ËÁªÂò¤µ¤ì¤ë¡£ +を外すことである。 +この場合、システムがマッピング用のアドレスの選択を行う。 +アドレスは既存のマッピングと衝突しないように、 +かつ 0 にならないように選択される。 .B MAP_FIXED -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¡¢¤«¤Ä +フラグが指定され、かつ .I addr -¤¬ 0 (NULL) -¤Î¾ì¹ç¤Ë¤Ï¡¢¥Þ¥Ã¥×¤µ¤ì¤ë¥¢¥É¥ì¥¹¤¬ 0 (NULL) ¤Ë¤Ê¤ë¡£ +が 0 (NULL) +の場合には、マップされるアドレスが 0 (NULL) になる。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O On Linux there are no guarantees like those suggested above under .\"O .BR MAP_NORESERVE . .\"O By default, any process can be killed .\"O at any moment when the system runs out of memory. -Linux ¤Ë¤ª¤¤¤Æ¤Ï¡¢¾åµ­¤Î +Linux においては、上記の .B MAP_NORESERVE -¤Ç½Ò¤Ù¤é¤ì¤Æ¤¤¤ë¤è¤¦¤ÊÊݾڤϤʤ¤¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥·¥¹¥Æ¥à¤¬¥á¥â¥ê¤ò»È¤¤Àڤ俾ì¹ç¤Ë¤Ï¡¢ -¤É¤Î¥×¥í¥»¥¹¤¬¤¤¤Ä¶¯À©½ªÎ»¤µ¤ì¤ë¤«Ê¬¤«¤é¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +で述べられているような保証はない。 +デフォルトでは、システムがメモリを使い切った場合には、 +どのプロセスがいつ強制終了されるか分からないからである。 .\"O In kernels before 2.6.7, the .\"O .B MAP_POPULATE @@ -966,13 +966,13 @@ Linux .\"O .I prot .\"O is specified as .\"O .BR PROT_NONE . -2.6.7 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +2.6.7 より前のカーネルでは、 .I prot -¤Ë +に .B PROT_NONE -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Î¤ß¡¢ +が指定された場合にのみ、 .B MAP_POPULATE -¥Õ¥é¥°¤¬¸úÎϤò»ý¤Ä¡£ +フラグが効力を持つ。 .\"O SUSv3 specifies that .\"O .BR mmap () @@ -988,23 +988,23 @@ Linux .\"O fails with the error .\"O .B EINVAL .\"O for this case. -SUSv3 ¤Ç¤Ï¡¢ +SUSv3 では、 .I length -¤¬ 0 ¤Î¾ì¹ç¡¢ +が 0 の場合、 .BR mmap () -¤Ï¼ºÇÔ¤¹¤ë¤Èµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£¤·¤«¤·¤Ê¤¬¤é¡¢2.6.12 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -¤³¤Î¾ì¹ç¤Ë +は失敗すると規定されている。しかしながら、2.6.12 より前のカーネルでは、 +この場合に .BR mmap () -¤ÏÀ®¸ù¤·¤Æ¤¤¤¿ (¥Þ¥Ã¥Ô¥ó¥°¤ÏºîÀ®¤µ¤ì¤º¡¢ +は成功していた (マッピングは作成されず、 .I addr -¤¬ÊÖ¤µ¤ì¤Æ¤¤¤¿)¡£ -¥«¡¼¥Í¥ë 2.6.12 °Ê¹ß¤Ç¤Ï¡¢ +が返されていた)。 +カーネル 2.6.12 以降では、 .BR mmap () -¤Ï¥¨¥é¡¼ +はエラー .B EINVAL -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\" FIXME . Add an example here that uses an anonymous shared region for .\" IPC between parent and child. .PP @@ -1016,14 +1016,14 @@ SUSv3 .\"O pages of the file and then uses .\"O .BR write (2) .\"O to output the desired bytes. -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢°ìÈÖÌܤΥ³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿ -¥Õ¥¡¥¤¥ë¤Î°ìÉô¤òɸ½à½ÐÎϤËɽ¼¨¤¹¤ë¡£ -ɽ¼¨¤¹¤ëÈϰϤϡ¢ÆóÈÖÌÜ¡¢»°ÈÖÌܤΥ³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤ÇÅϤµ¤ì¤ë -¥ª¥Õ¥»¥Ã¥È¤ÈŤµ¤Ç»ØÄꤵ¤ì¤ë¡£ -¤³¤Î¥×¥í¥°¥é¥à¤Ï¡¢»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ÎɬÍפʥڡ¼¥¸¤Î¥á¥â¥ê¡¦ -¥Þ¥Ã¥Ô¥ó¥°¤òºîÀ®¤·¡¢ +以下のプログラムは、一番目のコマンドライン引き数で指定された +ファイルの一部を標準出力に表示する。 +表示する範囲は、二番目、三番目のコマンドライン引き数で渡される +オフセットと長さで指定される。 +このプログラムは、指定されたファイルの必要なページのメモリ・ +マッピングを作成し、 .BR write (2) -¤ò»È¤Ã¤Æ½ê˾¤Î¥Ð¥¤¥È¤ò½ÐÎϤ¹¤ë¡£ +を使って所望のバイトを出力する。 .nf #include @@ -1095,7 +1095,7 @@ main(int argc, char *argv[]) } /* main */ .fi \"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getpagesize (2), .BR mincore (2), .BR mlock (2), @@ -1113,6 +1113,6 @@ B.O. Gallmeister, POSIX.4, O'Reilly, pp. 128-129 and 389-391. .\" .\"O .\" Repeat after me: private read-only mappings are 100% equivalent to .\"O .\" shared read-only mappings. No ifs, buts, or maybes. -- Linus -.\" »ä¤Î¸å¤Ë¤Ä¤¤¤Æ¸À¤Ã¤Æ¤ß¤Æ: ¥×¥é¥¤¥Ù¡¼¥È¤ÊÆɤ߹þ¤ßÀìÍÑ¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ï -.\" ¶¦Í­¤µ¤ì¤¿Æɤ߹þ¤ßÀìÍÑ¤Î¥Þ¥Ã¥Ô¥ó¥°¤È 100% Åù¤·¤¤¡£ -.\" ¡Ö¤â¤·¡×¤â¡Ö¤·¤«¤·¡×¤â¡Ö¤¿¤Ö¤ó¡×¤â¤Ê¤¤¡£-- Linus +.\" 私の後について言ってみて: プライベートな読み込み専用のマッピングは +.\" 共有された読み込み専用のマッピングと 100% 等しい。 +.\" 「もし」も「しかし」も「たぶん」もない。-- Linus diff --git a/draft/man2/mmap2.2 b/draft/man2/mmap2.2 index 43add67c..0a97229c 100644 --- a/draft/man2/mmap2.2 +++ b/draft/man2/mmap2.2 @@ -35,11 +35,11 @@ .\" .TH MMAP2 2 2008-04-22 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mmap2 \- map files or devices into memory -mmap2 \- ¥Õ¥¡¥¤¥ë¤ä¥Ç¥Ð¥¤¥¹¤ò¥á¥â¥ê¤Ë¥Þ¥Ã¥×¤¹¤ë +mmap2 \- ファイルやデバイスをメモリにマップする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -47,102 +47,102 @@ mmap2 \- .BI " int " flags ", int " fd ", off_t " pgoffset ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR mmap2 () .\"O system call operates in exactly the same way as .\"O .BR mmap (2), .BR mmap2 () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +システムコールは .BR mmap (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .\"O except that the final argument specifies the offset into the .\"O file in 4096-byte units (instead of bytes, as is done by .\"O .BR mmap (2)). -¤¿¤À¤·ºÇ¸å¤Î°ú¤­¿ô¤Ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤Î¥ª¥Õ¥»¥Ã¥È¤ò +ただし最後の引き数には、ファイルのオフセットを .RB ( mmap (2) -¤¬¹Ô¤Ã¤Æ¤¤¤ë¡¢¥Ð¥¤¥Èñ°Ì¤Ç¤Ï¤Ê¤¯) -4096 ¥Ð¥¤¥È¤òñ°Ì¤È¤·¤Æ»ØÄꤹ¤ë¡£ +が行っている、バイト単位ではなく) +4096 バイトを単位として指定する。 .\"O This enables applications that use a 32-bit .\"O .I off_t .\"O to map large files (up to 2^44 bytes). -¤³¤ì¤Ë¤è¤ê¡¢32 ¥Ó¥Ã¥È¤Î +これにより、32 ビットの .I off_t -¤ò»È¤¦¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç (2^44 ¥Ð¥¤¥È¤Þ¤Ç¤Î) -Â礭¤Ê¥Õ¥¡¥¤¥ë¤ò¥Þ¥Ã¥×¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +を使うアプリケーションで (2^44 バイトまでの) +大きなファイルをマップできるようになる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR mmap2 () .\"O returns a pointer to the mapped area. .\"O On error \-1 is returned and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR mmap2 () -¤Ï¥Þ¥Ã¥×¤µ¤ì¤¿Îΰè¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +はマップされた領域へのポインタを返す。 +エラーの場合は \-1 が返されて、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O Problem with getting the data from userspace. -¥æ¡¼¥¶¶õ´Ö¤«¤é¥Ç¡¼¥¿¤ò¼èÆÀ¤¹¤ë¤È¤­¤ËÌäÂ꤬¤¢¤Ã¤¿¡£ +ユーザ空間からデータを取得するときに問題があった。 .TP .B EINVAL .\"O (Various platforms where the page size is not 4096 bytes.) .\"O .I offset * 4096 .\"O is not a multiple of the system page size. -(¥Ú¡¼¥¸¥µ¥¤¥º¤¬ 4096 ¥Ð¥¤¥È¤Ç¤Ê¤¤¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë¤ª¤¤¤Æ) +(ページサイズが 4096 バイトでないプラットフォームにおいて) .I offset * 4096 -¤¬¥·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤Ç¤Ï¤Ê¤¤¡£ +がシステムのページサイズの倍数ではない。 .PP .\"O .BR mmap2 () .\"O can return any of the same errors as .\"O .BR mmap (2). .BR mmap2 () -¤Ï +は .BR mmap (2) -¤ÈƱ¤¸¥¨¥é¡¼¤òÊÖ¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +と同じエラーを返すことができる。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR mmap2 () .\"O is available since Linux 2.3.31. .BR mmap2 () -¤Ï¡¢Linux 2.3.31 °Ê¹ß¤Ç»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ +は、Linux 2.3.31 以降で使用可能である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This system call is Linux-specific. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ +このシステムコールは Linux 独自である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Nowadays, the glibc .\"O .BR mmap () .\"O wrapper function invokes this system call rather than the .\"O .BR mmap (2) .\"O system call. -¸½ºß¤Ç¤Ï¡¢glibc ¤Î +現在では、glibc の .BR mmap () -¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢ +のラッパー関数は、 .BR mmap (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤Ï¤Ê¤¯¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë +システムコールではなく、このシステムコール .RB ( mmap2 (2)) -¤òµ¯Æ°¤¹¤ë¡£ +を起動する。 .\"O On ia64, the unit for .\"O .I offset .\"O is actually the system page size, rather than 4096 bytes. -ia64 ¤Ç¤Ï¡¢ +ia64 では、 .I offset -¤Îñ°Ì¤Ï¡¢¼ÂºÝ¤Ë¤Ï¥·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥º¤Ç¤¢¤ê¡¢ -4096 ¥Ð¥¤¥È¤Ç¤Ï¤Ê¤¤¡£ +の単位は、実際にはシステムのページサイズであり、 +4096 バイトではない。 .\" ia64 can have page sizes ranging from 4kB to 64kB. .\" On cris, it looks like the unit might also be the page size, .\" which is 8192 bytes. -- mtk, June 2007 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getpagesize (2), .BR mmap (2), .BR mremap (2), diff --git a/draft/man2/modify_ldt.2 b/draft/man2/modify_ldt.2 index a56dc241..d589b82c 100644 --- a/draft/man2/modify_ldt.2 +++ b/draft/man2/modify_ldt.2 @@ -29,34 +29,34 @@ .\" Updated 2007-06-18, Akihiro MOTOKI , LDP v2.57 .\" .\"WORD: ldt ldt -.\"WORD: local descriptor table ¥í¡¼¥«¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Æ¡¼¥Ö¥ë -.\"WORD: processer ¥×¥í¥»¥Ã¥µ -.\"WORD: entry ¥¨¥ó¥È¥ê +.\"WORD: local descriptor table ローカル・ディスクリプタ・テーブル +.\"WORD: processer プロセッサ +.\"WORD: entry エントリ .\" .TH MODIFY_LDT 2 2007-06-01 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O modify_ldt \- get or set ldt -modify_ldt \- ldt ¤òÀßÄê¤Þ¤¿¤Ï¼èÆÀ¤¹¤ë +modify_ldt \- ldt を設定または取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int modify_ldt(int " "func" ", void *" "ptr" ", unsigned long " "bytecount" ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR modify_ldt () .\"O reads or writes the local descriptor table (ldt) for a process. .\"O The ldt is a per-process memory management table used by the i386 processor. .\"O For more information on this table, see an Intel 386 processor handbook. .BR modify_ldt () -¤Ï¥×¥í¥»¥¹¤Î¥í¡¼¥«¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Æ¡¼¥Ö¥ë (local descriptor table; ldt) -¤òÆɤ߽ñ¤­¤¹¤ë¡£ -ldt ¤Ï i386 ¥×¥í¥»¥Ã¥µ¤Ç»ÈÍѤµ¤ì¤ë¥×¥í¥»¥¹¤´¤È¤Î¥á¥â¥ê´ÉÍý¥Æ¡¼¥Ö¥ë¤Ç¤¢¤ë¡£ -¤³¤Î¥Æ¡¼¥Ö¥ë¤Ë´Ø¤·¤Æ¤Î¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï Intel 386 processor handbook ¤ò -»²¾È¤¹¤ë¤³¤È¡£ +はプロセスのローカル・ディスクリプタ・テーブル (local descriptor table; ldt) +を読み書きする。 +ldt は i386 プロセッサで使用されるプロセスごとのメモリ管理テーブルである。 +このテーブルに関してのより詳しい情報は Intel 386 processor handbook を +参照すること。 .PP .\"O When .\"O .I func @@ -65,17 +65,17 @@ ldt .\"O reads the ldt into the memory pointed to by .\"O .IR ptr . .I func -¤¬ 0 ¤Ê¤é¤Ð¡¢ +が 0 ならば、 .BR modify_ldt () -¤Ï ldt ¤ò +は ldt を .I ptr -¤¬»Ø¤·¤Æ¤¤¤ë¥á¥â¥ê¤ËÆɤ߹þ¤à¡£ +が指しているメモリに読み込む。 .\"O The number of bytes read is the smaller of .\"O .I bytecount .\"O and the actual size of the ldt. -Æɤ߹þ¤à¥Ð¥¤¥È¿ô¤Ï¼ÂºÝ¤Î ldt ¤Î¥µ¥¤¥º¤« +読み込むバイト数は実際の ldt のサイズか .I bytecount -¤è¤ê¾®¤µ¤¤Êý¤Ç¤¢¤ë¡£ +より小さい方である。 .PP .\"O When .\"O .I func @@ -83,9 +83,9 @@ ldt .\"O .BR modify_ldt () .\"O modifies one ldt entry. .I func -¤¬ 1 ¤Ê¤é¤Ð¡¢ +が 1 ならば、 .BR modify_ldt () -¤Ï ldt ¥¨¥ó¥È¥ê¤Î°ì¤Ä¤òÊѹ¹¤¹¤ë¡£ +は ldt エントリの一つを変更する。 .\"O .I ptr .\"O points to a .\"O .I user_desc @@ -94,11 +94,11 @@ ldt .\"O .I bytecount .\"O must equal the size of this structure. .I ptr -¤Ï +は .I user_desc -¹½Â¤ÂΤò»Ø¤·¡¢ +構造体を指し、 .I bytecount -¤Ï¤³¤Î¹½Â¤ÂΤÎÂ礭¤µ¤ËÅù¤·¤¯¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +はこの構造体の大きさに等しくなければならない。 .\" .\" FIXME ? say something about func == 2 ans func == 0x11? .\" In Linux 2.4, func == 2 returned "the default ldt" @@ -109,7 +109,7 @@ ldt .\"O .I user_desc .\"O structure is defined in \fI\fP as: .I user_desc -¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +構造体は \fI\fP で以下のように定義されている: .in +4n .nf @@ -129,48 +129,48 @@ struct user_desc { .PP .\"O In Linux 2.4 and earlier, this structure was named .\"O .IR modify_ldt_ldt_s . -Linux 2.4 °ÊÁ°¤Ç¤Ï¡¢¤³¤Î¹½Â¤ÂÎ¤Ï +Linux 2.4 以前では、この構造体は .I modify_ldt_ldt_s -¤È¤¤¤¦Ì¾Á°¤Ç¤¢¤Ã¤¿¡£ +という名前であった。 .\" .PP .\"O .\" The ldt is specific for the calling process. Any attempts to change .\"O .\" the ldt to include the address space of another process or the kernel .\"O .\" will result in a segmentation violation when trying to access the memory .\"O .\" outside of the process address space. The memory protection is enforced .\"O .\" at the paging layer. -.\" ldt ¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë¸ÇÍ­¤Î¤â¤Î¤Ç¤¢¤ë¡£ -.\" ¾¤Î¥×¥í¥»¥¹¤ä¥«¡¼¥Í¥ë¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ò´Þ¤à¤è¤¦¤Ë ldt ¤òÊѹ¹¤·¤è¤¦¤¹¤ë¤È¡¢ -.\" ¥×¥í¥»¥¹¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤Î¥á¥â¥ê¤Ë¥¢¥¯¥»¥¹¤·¤è¤¦¤È¤·¤¿¤È¤­¤Ë¡¢ -.\" ¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó°ãÈ¿ (segmentation violation) ¤Ë¤Ê¤ë¡£ -.\" ¥á¥â¥êÊݸî¤Ï¥Ú¡¼¥¸¥ó¥°¥ì¥¤¥ä¤Ç¼Â»Ü¤µ¤ì¤ë¡£ +.\" ldt は呼び出し元プロセスに固有のものである。 +.\" 他のプロセスやカーネルのアドレス空間を含むように ldt を変更しようすると、 +.\" プロセスアドレス空間の外のメモリにアクセスしようとしたときに、 +.\" セグメンテーション違反 (segmentation violation) になる。 +.\" メモリ保護はページングレイヤで実施される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR modify_ldt () .\"O returns either the actual number of bytes read (for reading) .\"O or 0 (for writing). -À®¸ù¤·¤¿¾ì¹ç¤Ï¡¢ +成功した場合は、 .BR modify_ldt () -¤Ï (Æɤ߹þ¤ß¤Î¾ì¹ç¤Ï) ¼ÂºÝ¤ËÆɤ߹þ¤ó¤À¥Ð¥¤¥È¿ô¡¢ -¤Þ¤¿¤Ï (½ñ¤­¹þ¤ß¤Î¾ì¹ç¤Ï) 0 ¤òÊÖ¤¹¡£ +は (読み込みの場合は) 実際に読み込んだバイト数、 +または (書き込みの場合は) 0 を返す。 .\"O On failure, .\"O .BR modify_ldt () .\"O returns \-1 and sets .\"O .I errno .\"O to indicate the error. -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï +失敗した場合は .BR modify_ldt () -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤ò¥¨¥é¡¼¤ò¼¨¤¹ÃͤËÀßÄꤹ¤ë¡£ +をエラーを示す値に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O .I ptr .\"O points outside the address space. .I ptr -¤¬¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がアドレス空間の外を指している。 .TP .B EINVAL .\"O .I ptr @@ -185,35 +185,35 @@ Linux 2.4 .\"O .I func .\"O is 1 and the new ldt entry has invalid values. .I ptr -¤¬ 0 ¤Ç¤¢¤ë¡¢ -¤Þ¤¿¤Ï +が 0 である、 +または .I func -¤¬ 1 ¤Ç +が 1 で .I bytecount -¤¬ +が .I modify_ldt_ldt_s -¹½Â¤ÂΤΥµ¥¤¥º¤ÈÅù¤·¤¯¤Ê¤¤¤«¡¢ +構造体のサイズと等しくないか、 .I func -¤¬ 1 ¤Ç¿·¤·¤¤ ldt ¥¨¥ó¥È¥ê¤¬Ìµ¸ú¤ÊÃͤǤ¢¤ë¡£ +が 1 で新しい ldt エントリが無効な値である。 .TP .B ENOSYS .\"O .I func .\"O is neither 0 nor 1. .I func -¤¬ 0 ¤Ç¤â 1 ¤Ç¤â¤Ê¤¤¡£ +が 0 でも 1 でもない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This call is Linux-specific and should not be used in programs intended .\"O to be portable. -¤³¤Î¥³¡¼¥ë¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï -»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ +このコールは Linux 特有であり、移植を意図したプログラムでは +使用してはいけない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Glibc does not provide a wrapper for this system call; call it using .\"O .BR syscall (2). -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +glibc はこのシステムコールに対するラッパー関数を提供していない。 .BR syscall (2) -¤ò»È¤Ã¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¡£ +を使って呼び出すこと。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR vm86 (2) diff --git a/draft/man2/mount.2 b/draft/man2/mount.2 index 96a80543..c6ee35aa 100644 --- a/draft/man2/mount.2 +++ b/draft/man2/mount.2 @@ -55,19 +55,19 @@ .\" Updated 2008-11-10, Akihiro MOTOKI, LDP v3.11 .\" Updated 2010-04-23, Akihiro MOTOKI, LDP v3.24 .\" -.\"WORD: lazy umount Ãٱ䥢¥ó¥Þ¥¦¥ó¥È -.\"WORD: Linux-specific Linux ÆÃÍ­ +.\"WORD: lazy umount 遅延アンマウント +.\"WORD: Linux-specific Linux 特有 .\" .\" motoki 2005-02-28: -.\" - subtree ¤ò¤É¤¦Ìõ¤¹¤«¡£ÉôʬÌÚ¡¢Éôʬ¥Ä¥ê¡¼¡¢¥µ¥Ö¥Ä¥ê¡¼¡£¡£¡£²¿¤«¤Ê¤¤¤«¡£ +.\" - subtree をどう訳すか。部分木、部分ツリー、サブツリー。。。何かないか。 .\" .TH MOUNT 2 2010-09-10 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mount \- mount and unmount file systems -mount \- ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥Þ¥¦¥ó¥È/¥¢¥ó¥Þ¥¦¥ó¥È¤¹¤ë +mount \- ファイルシステムをマウント/アンマウントする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B "#include " .sp @@ -76,7 +76,7 @@ mount \- .BI " const void *" data ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR mount () .\"O attaches the file system specified by .\"O .I source @@ -84,28 +84,28 @@ mount \- .\"O or a dummy) to the directory specified by .\"O .IR target . .BR mount () -¤Ï +は .I source -¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à (¥Ç¥Ð¥¤¥¹Ì¾¤Ç¤¢¤ë¤³¤È¤¬Â¿¤¤¤¬¡¢ -¥Ç¥£¥ì¥¯¥È¥ê̾¤ä¥À¥ß¡¼¤Î¾ì¹ç¤â¤¢¤ë) ¤ò +で指定されたファイルシステム (デバイス名であることが多いが、 +ディレクトリ名やダミーの場合もある) を .I target -¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ë·ë¤Ó¤Ä¤±¤ë¡£ +で指定されたディレクトリに結びつける。 .\"O Appropriate privilege (Linux: the .\"O .B CAP_SYS_ADMIN .\"O capability) is required to mount file systems. -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Þ¥¦¥ó¥È¤ò¹Ô¤¦¤Ë¤Ï¡¢ -ŬÀڤʸ¢¸Â (Linux ¤Ç¤Ï +ファイルシステムのマウントを行うには、 +適切な権限 (Linux では .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティ) が必要である。 .\"O Since Linux 2.4 a single file system can be visible at .\"O multiple mount points, and multiple mounts can be stacked .\"O on the same mount point. .\"O .\" Multiple mounts on same mount point: since 2.3.99pre7. -Linux 2.4 °Ê¹ß¡¢¤Ò¤È¤Ä¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òÊ£¿ô¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ë -·ë¤Ó¤Ä¤±¤ë¤³¤È¤¬¤Ç¤­¡¢Æ±¤¸¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ËÊ£¿ô¤Î¥Þ¥¦¥ó¥È¤ò¥¹¥¿¥Ã¥¯ -¤µ¤»¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +Linux 2.4 以降、ひとつのファイルシステムを複数のマウントポイントに +結びつけることができ、同じマウントポイントに複数のマウントをスタック +させることもできる。 .\" Multiple mounts on same mount point: since 2.3.99pre7. .\"O Values for the @@ -116,13 +116,13 @@ Linux 2.4 .\"O "msdos", "proc", "nfs", "iso9660" etc.). .\"O Further types may become available when the appropriate modules .\"O are loaded. -°ú¤­¿ô +引き数 .I filesystemtype -¤È¤·¤Æ¥«¡¼¥Í¥ë¤¬Âбþ¤·¤Æ¤¤¤ëÃͤϡ¢ +としてカーネルが対応している値は、 .I /proc/filesystems -¤Ç»²¾È¤Ç¤­¤ë (Î㤨¤Ð "minix", "ext2", "ext3", "jfs", "xfs", "reiserfs", -"msdos", "proc", "nfs", "iso9660" Åù)¡£ -ŬÀڤʥ⥸¥å¡¼¥ë¤¬Æɤ߹þ¤Þ¤ì¤ë¤È¡¢¤µ¤é¤ËÊ̤ÎÃͤ¬ÍøÍѲÄǽ¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +で参照できる (例えば "minix", "ext2", "ext3", "jfs", "xfs", "reiserfs", +"msdos", "proc", "nfs", "iso9660" 等)。 +適切なモジュールが読み込まれると、さらに別の値が利用可能になるかもしれない。 .\"O The .\"O .I mountflags @@ -131,14 +131,14 @@ Linux 2.4 .\"O is no longer required and ignored if specified), .\"O and various mount flags (as defined in \fI\fP for libc4 and libc5 .\"O and in \fI\fP for glibc2) in the low order 16 bits: -°ú¤­¿ô +引き数 .I mountflags -¤Ï¡¢ÀèƬ 16 ¥Ó¥Ã¥È¤Ï¥Þ¥¸¥Ã¥¯¥Ê¥ó¥Ð¡¼ 0xC0ED (\fBMS_MGC_VAL\fP) ¤Ç¡¢ -»Ä¤ê¤Î 16 ¥Ó¥Ã¥È¤¬¥Þ¥¦¥ó¥È¥Õ¥é¥°¤Ç¤¢¤ë¡£ -¥Þ¥¸¥Ã¥¯¥Ê¥ó¥Ð¡¼¤Ï¡¢¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó 2.4 ¤è¤êÁ°¤Ç¤Ïɬ¿Ü¤Ç¤¢¤Ã¤¿¤¬¡¢ -¸½ºß¤ÏɬÍפʤ¯¡¢»ØÄꤵ¤ì¤Æ¤â̵»ë¤µ¤ì¤ë¡£ -¥Þ¥¦¥ó¥È¥Õ¥é¥°¤Ï libc4 ¤È libc5 ¤Ç¤Ï \fI\fP ¡¢ -glibc2 ¤Ç¤Ï \fI\fP ¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë: +は、先頭 16 ビットはマジックナンバー 0xC0ED (\fBMS_MGC_VAL\fP) で、 +残りの 16 ビットがマウントフラグである。 +マジックナンバーは、カーネルバージョン 2.4 より前では必須であったが、 +現在は必要なく、指定されても無視される。 +マウントフラグは libc4 と libc5 では \fI\fP 、 +glibc2 では \fI\fP で定義されており、以下の通りである: .\" FIXME 2.6.15 added flags for "shared subtree" functionality: .\" MS_UNBINDABLE, MS_PRIVATE, MS_SHARED, MS_SLAVE .\" These need to be documented on this page. @@ -160,9 +160,9 @@ glibc2 .\" .TP .\"O .BR MS_BIND " (Linux 2.4 onward)" -.BR MS_BIND " (Linux 2.4 °Ê¹ß)" +.BR MS_BIND " (Linux 2.4 以降)" .\"O .\" since 2.4.0-test9 -.\" Àµ³Î¤Ë¤Ï 2.4.0-test9 °Ê¹ß +.\" 正確には 2.4.0-test9 以降 .\"O Perform a bind mount, making a file or a directory subtree visible at .\"O another point within a file system. .\"O Bind mounts may cross file system boundaries and span @@ -179,39 +179,39 @@ glibc2 .\"O .\" with the exception of the "hidden" MS_REC mountflags bit .\"O (the bind mount has the same mount options as .\"O the underlying mount point). -¥Ð¥¤¥ó¥É¥Þ¥¦¥ó¥È¤ò¹Ô¤¦¡£¤³¤ì¤Ï¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥ì¥¯¥È¥ê¤ÎÉôʬÌÚ¤ò -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÆâÉô¤ÎÊ̤ξì½ê¤Ç¸«¤¨¤ë¤è¤¦¤Ë¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¥Ð¥¤¥ó¥É¥Þ¥¦¥ó¥È¤ò»È¤¦¤È¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¤Þ¤¿¤¤¤Ç +バインドマウントを行う。これはファイルやディレクトリの部分木を +ファイルシステム内部の別の場所で見えるようにするものである。 +バインドマウントを使うと、ファイルシステムをまたいで .BR chroot (2) -jail ¤ò¹½À®¤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¡£ -°ú¤­¿ô +jail を構成することが可能になる。 +引き数 .I filesystemtype -¤È +と .I data -¤Ï̵»ë¤µ¤ì¤ë¡£ -Linux 2.6.26 ¤è¤êÁ°¤Ç¤Ï +は無視される。 +Linux 2.6.26 より前では .I mountflags -¤â̵»ë¤µ¤ì¤Æ¤¤¤¿ +も無視されていた .\" with the exception of the "hidden" MS_REC mountflags bit -(¥Ð¥¤¥ó¥É¥Þ¥¦¥ó¥È¤Ç¤Ï¡¢¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤È¤Ê¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤È -Ʊ¤¸¥Þ¥¦¥ó¥È¥ª¥×¥·¥ç¥ó¤¬»ÈÍѤµ¤ì¤ë)¡£ +(バインドマウントでは、マウントポイントとなるファイルシステムと +同じマウントオプションが使用される)。 .\"O Since Linux 2.6.26, the .\"O .B MS_RDONLY .\"O flag is honored when making a bind mount. -Linux 2.6.26 °Ê¹ß¤Ç¤Ï¡¢¥Ð¥¤¥ó¥É¥Þ¥¦¥ó¥È¤ò¹Ô¤¦ºÝ¤Ë +Linux 2.6.26 以降では、バインドマウントを行う際に .B MS_RDONLY -¥Õ¥é¥°¤Ï̵»ë¤µ¤ì¤Ê¤¤¡£ +フラグは無視されない。 .TP .\"O .BR MS_DIRSYNC " (Since Linux 2.5.19)" -.BR MS_DIRSYNC " (Linux 2.5.19 °Ê¹ß)" +.BR MS_DIRSYNC " (Linux 2.5.19 以降)" .\"O Make directory changes on this file system synchronous. .\"O (This property can be obtained for individual directories .\"O or subtrees using .\"O .BR chattr (1).) -¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ø¤Î¥Ç¥£¥ì¥¯¥È¥êÊѹ¹¤òƱ´üŪ¤Ë¹Ô¤¦¡£ -(¤³¤ÎÆÃÀ­¤Ï¸Ä¡¹¤Î¥Ç¥£¥ì¥¯¥È¥ê¡¢¤Þ¤¿¤Ï +このファイルシステムへのディレクトリ変更を同期的に行う。 +(この特性は個々のディレクトリ、または .BR chattr (1) -¤ò»È¤Ã¤¿ÉôʬÌÚËè¤ËÀßÄê¤Ç¤­¤ë¡£) +を使った部分木毎に設定できる。) .TP .B MS_MANDLOCK .\"O Permit mandatory locking on files in this file system. @@ -219,10 +219,10 @@ Linux 2.6.26 .\"O as described in .\"O .BR fcntl (2).) .\"O .\" FIXME Say more about MS_MOVE -¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¶¯À©¥í¥Ã¥¯¤òǧ¤á¤ë¡£ -(¶¯À©¥í¥Ã¥¯¤òÍ­¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢ +このファイルシステムのファイルに対して強制ロックを認める。 +(強制ロックを有効にするには、 .BR fcntl (2) -¤Ç½Ò¤Ù¤é¤ì¤Æ¤¤¤ëÊýË¡¤Ç¥Õ¥¡¥¤¥ëñ°Ì¤Çµö²Ä¤ò¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤) +で述べられている方法でファイル単位で許可をしなければならない) .\" FIXME Say more about MS_MOVE .TP .B MS_MOVE @@ -235,44 +235,44 @@ Linux 2.6.26 .\"O The .\"O .IR filesystemtype ", " mountflags ", and " data .\"O arguments are ignored. -ÉôʬÌÚ¤ò°ÜÆ°¤¹¤ë¡£ +部分木を移動する。 .I source -¤Ë¤Ï¤¹¤Ç¤Ë¸ºß¤¹¤ë¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ò»ØÄꤷ¡¢ +にはすでに存在するマウントポイントを指定し、 .I target -¤Ë¤Ï¿·¤·¤¤¾ì½ê¤ò»ØÄꤹ¤ë¡£ -°ÜÆ°¤Ï¥¢¥È¥ß¥Ã¥¯¤Ç¤¢¤ë¡£ -Áàºî¤Î¼Â¹ÔÃæ¡¢Éôʬ¥Ä¥ê¡¼¤¬¥¢¥ó¥Þ¥¦¥ó¥È¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ +には新しい場所を指定する。 +移動はアトミックである。 +操作の実行中、部分ツリーがアンマウントされることはない。 .IR filesystemtype ", " mountflags ", " data -°ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ +引き数は無視される。 .TP .B MS_NOATIME .\"O Do not update access times for (all types of) files on this file system. -¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î (Á´¤Æ¤Î¼ïÎà¤Î) ¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹»þ¹ï¤ò¹¹¿·¤·¤Ê¤¤¡£ +このファイルシステムの (全ての種類の) ファイルのアクセス時刻を更新しない。 .TP .B MS_NODEV .\"O Do not allow access to devices (special files) on this file system. -¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Ç¥Ð¥¤¥¹ (¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë) ¤Ø¤Î¥¢¥¯¥»¥¹¤òµö²Ä¤·¤Ê¤¤¡£ +このファイルシステムのデバイス (スペシャルファイル) へのアクセスを許可しない。 .TP .B MS_NODIRATIME .\"O Do not update access times for directories on this file system. -¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¥¢¥¯¥»¥¹»þ¹ï¤ò¹¹¿·¤·¤Ê¤¤¡£ +このファイルシステムのディレクトリのアクセス時刻を更新しない。 .\"O This flag provides a subset of the functionality provided by .\"O .BR MS_NOATIME ; .\"O that is, .\"O .BR MS_NOATIME .\"O implies .\"O .BR MS_NODIRATIME . -¤³¤Î¥Õ¥é¥°¤Ï +このフラグは .B MS_NOATIME -¤ÇÄ󶡤µ¤ì¤ëµ¡Ç½¤Î¥µ¥Ö¥»¥Ã¥È¤òÄ󶡤¹¤ë¡£¤Ä¤Þ¤ê¡¢ +で提供される機能のサブセットを提供する。つまり、 .B MS_NOATIME -¤Ç¤Ï +では .B MS_NODIRATIME -¤¬°ÅÌۤΤ¦¤ÁÀßÄꤵ¤ì¤ë¡£ +が暗黙のうち設定される。 .TP .B MS_NOEXEC .\"O Do not allow programs to be executed from this file system. -¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤¢¤ë¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤òµö²Ä¤·¤Ê¤¤¡£ +このファイルシステムにあるプログラムの実行を許可しない。 .\" (Possibly useful for a file system that contains non-Linux executables. .\" Often used as a security feature, e.g., to make sure that restricted .\" users cannot execute files uploaded using ftp or so.) @@ -280,21 +280,21 @@ Linux 2.6.26 .B MS_NOSUID .\"O Do not honor set-user-ID and set-group-ID bits when executing .\"O programs from this file system. -¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤È¤­¤Ë¡¢ -set-user-ID ¥Ó¥Ã¥È¤È set-group-ID ¥Ó¥Ã¥È¤ò̵»ë¤¹¤ë¡£ +このファイルシステムのプログラムを実行するときに、 +set-user-ID ビットと set-group-ID ビットを無視する。 .\" (This is a security feature to prevent users executing set-UID and .\" set-GID programs from removable disk devices.) .TP .B MS_RDONLY .\"O Mount file system read-only. -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òÆɤ߹þ¤ßÀìÍѤǥޥ¦¥ó¥È¤¹¤ë¡£ +ファイルシステムを読み込み専用でマウントする。 .\" .\" FIXME Document MS_REC, available since 2.4.11. .\" This flag has meaning in conjunction with MS_BIND and .\" also with the shared subtree flags. .TP .\"O .BR MS_RELATIME " (Since Linux 2.6.20)" -.BR MS_RELATIME " (Linux 2.6.20 °Ê¹ß)" +.BR MS_RELATIME " (Linux 2.6.20 以降)" .\"O When a file on this file system is accessed, .\"O only update the file's last access time (atime) if the current value .\"O of atime is less than or equal to the file's last modification time (mtime) @@ -302,14 +302,14 @@ set-user-ID .\"O This option is useful for programs, such as .\"O .BR mutt (1), .\"O that need to know when a file has been read since it was last modified. -¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î¥Õ¥¡¥¤¥ë¤¬¥¢¥¯¥»¥¹¤µ¤ì¤¿ºÝ¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¤ÎºÇ½ª¥¢¥¯¥»¥¹»þ¹ï (atime) ¤Î¸½ºßÃͤ¬ -ºÇ½ª½¤Àµ»þ¹ï (mtime) ¤äºÇ½ª¾õÂÖÊѹ¹»þ¹ï (ctime) ¤È -Åù¤·¤¤¤«¾®¤µ¤¤¾ì¹ç¤Ë¤Î¤ß¡¢atime ¤ò¹¹¿·¤¹¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ +このファイルシステム上のファイルがアクセスされた際、 +そのファイルの最終アクセス時刻 (atime) の現在値が +最終修正時刻 (mtime) や最終状態変更時刻 (ctime) と +等しいか小さい場合にのみ、atime を更新する。 +このオプションは、 .BR mutt (1) -¤Î¤è¤¦¤Ë¡¢ºÇ¸å¤ÎÆâÍƽ¤Àµ°Ê¹ß¤Ë¥Õ¥¡¥¤¥ë¤¬¤¤¤ÄÆɤ߽Фµ¤ì¤¿¤«¤òÃΤë -ɬÍפ¬¤¢¤ë¥×¥í¥°¥é¥à¤ÇÍ­ÍѤǤ¢¤ë¡£ +のように、最後の内容修正以降にファイルがいつ読み出されたかを知る +必要があるプログラムで有用である。 .\"O Since Linux 2.6.30, the kernel defaults to the behavior provided .\"O by this flag (unless .\"O .BR MS_NOATIME @@ -319,16 +319,16 @@ set-user-ID .\"O In addition, since Linux 2.6.30, .\"O the file's last access time is always updated if it .\"O is more than 1 day old. -Linux 2.6.30 °Ê¹ß¤Ç¤Ï¡¢ +Linux 2.6.30 以降では、 .B MS_NOATIME -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢¤³¤Î¥Õ¥é¥°¤ÎÆ°ºî¤¬ -¥«¡¼¥Í¥ë¤Î¥Ç¥Õ¥©¥ë¥ÈÆ°ºî¤È¤Ê¤Ã¤Æ¤ª¤ê¡¢ -Linux 2.6.30 ¤è¤êÁ°¤ÎÆ°ºî¤ò¤µ¤»¤ë¤¿¤á¤Ë¤Ï +が指定されていない場合には、このフラグの動作が +カーネルのデフォルト動作となっており、 +Linux 2.6.30 より前の動作をさせるためには .B MS_STRICTATIME -¥Õ¥é¥°¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¡£ -¤³¤ì¤Ë²Ã¤¨¤Æ¡¢Linux 2.6.30 °Ê¹ß¤Ç¤Ï¡¢ -¥Õ¥¡¥¤¥ë¤ÎºÇ½ª¥¢¥¯¥»¥¹»þ¹ï¤¬ 1 Æü°Ê¾åÁ°¤Î¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¤ÎºÇ½ª¥¢¥¯¥»¥¹»þ¹ï¤Ï¾ï¤Ë¹¹¿·¤µ¤ì¤ë¡£ +フラグを指定する必要がある。 +これに加えて、Linux 2.6.30 以降では、 +ファイルの最終アクセス時刻が 1 日以上前の場合、 +ファイルの最終アクセス時刻は常に更新される。 .\" Matthew Garrett notes in the patch that added this behavior .\" that this lets utilities such as tmpreaper (which deletes .\" files based on last acces time) work correctly. @@ -348,21 +348,21 @@ Linux 2.6.30 .\"O call; .\"O .I filesystemtype .\"O is ignored. -¤¹¤Ç¤Ë¸ºß¤¹¤ë¥Þ¥¦¥ó¥È¤òºÆ¥Þ¥¦¥ó¥È¤¹¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢¤¹¤Ç¤Ë¸ºß¤¹¤ë¥Þ¥¦¥ó¥È¤Î +すでに存在するマウントを再マウントする。 +これにより、すでに存在するマウントの .I mountflags -¤È +と .I data -¤ò¡¢°ìÅÙ¥¢¥ó¥Þ¥¦¥ó¥È¤·¤Æ¤«¤éºÆ¥Þ¥¦¥ó¥È¤¹¤ë¤È¤¤¤¦ºî¶È¤ò¤»¤º¤Ë -Êѹ¹¤Ç¤­¤ë¡£ +を、一度アンマウントしてから再マウントするという作業をせずに +変更できる。 .I source -¤È +と .I target -¤ÏºÇ½é¤Î +は最初の .BR mount () -¸Æ¤Ó½Ð¤·¤ÈƱ¤¸Ãͤò»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¡£ +呼び出しと同じ値を指定する必要がある。 .I filesystemtype -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\"O The following .\"O .I mountflags @@ -379,38 +379,38 @@ Linux 2.6.30 .\"O .BR MS_NODEV , .\"O .BR MS_NOEXEC . .I mountflags -¤Î¤¦¤Á +のうち .BR MS_RDONLY , .BR MS_SYNCHRONOUS , .B MS_MANDLOCK -¤ÏÊѹ¹²Äǽ¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë 2.6.16 ¤è¤êÁ°¤Ç¤Ï¡¢ +は変更可能である。 +カーネル 2.6.16 より前では、 .BR MS_NOATIME , .B MS_NODIRATIME -¤âÊѹ¹²Äǽ¤Ç¤¢¤Ã¤¿¡£ -¥«¡¼¥Í¥ë 2.4.10 ¤è¤êÁ°¤Ç¤Ï¡¢¾åµ­¤Ë²Ã¤¨¤Æ¡¢ +も変更可能であった。 +カーネル 2.4.10 より前では、上記に加えて、 .BR MS_NOSUID , .BR MS_NODEV , .B MS_NOEXEC -¤âÊѹ¹²Äǽ¤Ç¤¢¤Ã¤¿¡£ +も変更可能であった。 .TP .\"O .BR MS_SILENT " (since Linux 2.6.17)" -.BR MS_SILENT " (Linux 2.6.17 °Ê¹ß)" +.BR MS_SILENT " (Linux 2.6.17 以降)" .\"O Suppress the display of certain .\"O .RI ( printk ()) .\"O warning messages in the kernel log. .\"O This flag supersedes the misnamed and obsolete .\"O .BR MS_VERBOSE .\"O flag (available since Linux 2.4.12), which has the same meaning. -¥«¡¼¥Í¥ë¤Î¥í¥°Æâ¤Î¤¢¤ë¼ï¤Î +カーネルのログ内のある種の .RI ( printk ()) -·Ù¹ð¥á¥Ã¥»¡¼¥¸¤Îɽ¼¨¤òÍÞÀ©¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï¡¢Ì¾Á°¤¬ÉÔŬÀÚ¤ÇÇѻߤµ¤ì¤¿ +警告メッセージの表示を抑制する。 +このフラグは、名前が不適切で廃止された .B MS_VERBOSE -¥Õ¥é¥° (Linux 2.4.12 °Ê¹ß¤ÇÍøÍѲÄǽ) ¤òÃÖ¤­´¹¤¨¤ë¤â¤Î¤Ç¡¢Æ±¤¸°ÕÌ£¤ò»ý¤Ä¡£ +フラグ (Linux 2.4.12 以降で利用可能) を置き換えるもので、同じ意味を持つ。 .TP .\"O .BR MS_STRICTATIME " (Since Linux 2.6.30)" -.BR MS_STRICTATIME " (Linux 2.6.30 °Ê¹ß)" +.BR MS_STRICTATIME " (Linux 2.6.30 以降)" .\"O Always update the last access time (atime) when files on this .\"O file system are accessed. .\"O (This was the default behavior before Linux 2.6.30.) @@ -419,14 +419,14 @@ Linux 2.6.30 .\"O and .\"O .BR MS_RELATIME .\"O flags. -¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¥¢¥¯¥»¥¹¤µ¤ì¤¿ºÝ¤ËºÇ½ª¥¢¥¯¥»¥¹»þ¹ï (atime) -¤ò¾ï¤Ë¹¹¿·¤¹¤ë (Linux 2.6.30 ¤è¤êÁ°¤Ç¤Ï¡¢¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî -¤Ç¤¢¤Ã¤¿)¡£ -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢ +このファイルシステムがアクセスされた際に最終アクセス時刻 (atime) +を常に更新する (Linux 2.6.30 より前では、これがデフォルトの動作 +であった)。 +このフラグを指定することで、 .B MS_NOATIME -¤È +と .B MS_RELATIME -¤Îξ¥Õ¥é¥°¤òÀßÄꤷ¤¿ºÝ¤Î±Æ¶Á¤ò¾å½ñ¤­¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +の両フラグを設定した際の影響を上書きすることができる。 .TP .B MS_SYNCHRONOUS .\"O Make writes on this file system synchronous (as though @@ -435,12 +435,12 @@ Linux 2.6.30 .\"O flag to .\"O .BR open (2) .\"O was specified for all file opens to this file system). -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ËÂФ·¤ÆƱ´üŪ¤Ë½ñ¤­¹þ¤ß¤ò¹Ô¤¦¡£ -(¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÁ´¤Æ¤Î¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡¢ +ファイルシステムに対して同期的に書き込みを行う。 +(このファイルシステムの全てのオープンされたファイルに対して、 .BR open (2) -¤Î¥Õ¥é¥°¤Ë +のフラグに .B O_SYNC -¤ò»ØÄꤷ¤¿¤è¤¦¤ÊÆ°ºî¤È¤Ê¤ë) +を指定したような動作となる) .PP .\"O From Linux 2.4 onward, the .\"O .BR MS_NODEV ", " MS_NOEXEC ", and " MS_NOSUID @@ -453,53 +453,53 @@ Linux 2.6.30 .\"O The .\"O .B MS_RELATIME .\"O flag is also settable on a per-mount-point basis. -Linux 2.4 °Ê¹ß¤Ç¤Ï¡¢ +Linux 2.4 以降では、 .BR MS_NODEV ", " MS_NOEXEC ", " MS_NOSUID -¤Ï¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥Èñ°Ì¤Ç»ØÄê¤Ç¤­¤ë¡£ -¥«¡¼¥Í¥ë 2.6.16 °Ê¹ß¤Ç¤Ï¡¢ +はマウントポイント単位で指定できる。 +カーネル 2.6.16 以降では、 .B MS_NOATIME -¤È +と .B MS_NODIRATIME -¤â¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥Èñ°Ì¤Ç»ØÄê¤Ç¤­¤ë¡£ -¤Þ¤¿¡¢ +もマウントポイント単位で指定できる。 +また、 .B MS_RELATIME -¥Õ¥é¥°¤â¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥Èñ°Ì¤ÇÀßÄê¤Ç¤­¤ë¡£ +フラグもマウントポイント単位で設定できる。 .PP .\"O The .\"O .I data .\"O argument is interpreted by the different file systems. -°ú¤­¿ô +引き数 .I data -¤¬¤É¤Î¤è¤¦¤Ë²ò¼á¤µ¤ì¤ë¤«¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¡£ +がどのように解釈されるかは、ファイルシステムによって異なる。 .\"O Typically it is a string of comma-separated options .\"O understood by this file system. .\"O See .\"O .BR mount (8) .\"O for details of the options available for each filesystem type. -¤¿¤¤¤Æ¤¤¤Ï¡¢»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÇÍøÍѲÄǽ¤Ê¥ª¥×¥·¥ç¥ó¤¬ -¥³¥ó¥Þ¶èÀÚ¤ê¤Çʤ٤é¤ì¤¿Ê¸»úÎó¤Ç¤¢¤ë¡£ -³Æ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ËÂФ·¤Æ»ØÄê²Äǽ¤Ê¥ª¥×¥·¥ç¥ó¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï +たいていは、指定されたファイルシステムで利用可能なオプションが +コンマ区切りで並べられた文字列である。 +各ファイルシステムに対して指定可能なオプションの詳細については .BR mount (8) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç 0 ¤¬Ê֤롣¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤¬Ê֤ꡢ +成功した場合 0 が返る。失敗した場合 \-1 が返り、 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤ˽¾¤Ã¤ÆÀßÄꤵ¤ì¤ë¡£ +がエラーの内容に従って設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O The error values given below result from filesystem type independent .\"O errors. .\"O Each file-system type may have its own special errors and its .\"O own special behavior. .\"O See the kernel source code for details. -°Ê²¼¤Ë¼¨¤¹¥¨¥é¡¼¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë°Í¸¤·¤Ê¤¤¤â¤Î¤Ç¤¢¤ë¡£ -¤½¤ì¤¾¤ì¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¿¥¤¥×¤Ë¤Ï¸ÇÍ­¤Î¥¨¥é¡¼¤¬Â¸ºß¤¹¤ë¾ì¹ç¤¬¤¢¤ê¡¢ -Æȼ«¤ÎÆ°ºî¤ò¤¹¤ë¤³¤È¤â¤¢¤ë¡£¾Ü¤·¤¯¤Ï¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹¤ò¸«¤ÆÍߤ·¤¤¡£ +以下に示すエラーは、ファイルシステムに依存しないものである。 +それぞれのファイルシステムタイプには固有のエラーが存在する場合があり、 +独自の動作をすることもある。詳しくはカーネルのソースを見て欲しい。 .TP .B EACCES .\"O A component of a path was not searchable. @@ -515,18 +515,18 @@ Linux 2.4 .\"O option. .\"O .\" mtk: Probably: write permission is required for MS_BIND, with .\"O .\" the error EPERM if not present; CAP_DAC_OVERRIDE is required. -¥Ñ¥¹¤Ë´Þ¤Þ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¸¡º÷ (¼Â¹Ô) µö²Ä¤¬¤Ê¤¤ +パスに含まれるディレクトリに検索 (実行) 許可がない .RB ( path_resolution (7) -¤â»²¾È)¡£ -¤Þ¤¿¤Ï¡¢ +も参照)。 +または、 .B MS_RONLY -¥Õ¥é¥°¤ò»ØÄꤻ¤º¤ËÆɤ߹þ¤ßÀìÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¤ò -¥Þ¥¦¥ó¥È¤·¤è¤¦¤È¤·¤¿¡£ -¤Þ¤¿¤Ï¡¢¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹ +フラグを指定せずに読み込み専用のファイルシステムを +マウントしようとした。 +または、ブロックデバイス .I source -¤¬ +が .B MS_NODEV -¥ª¥×¥·¥ç¥ó¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ë¤¢¤ë¡£ +オプションでマウントされたファイルシステム上にある。 .\" mtk: Probably: write permission is required for MS_BIND, with .\" the error EPERM if not present; CAP_DAC_OVERRIDE is required. .TP @@ -542,51 +542,51 @@ Linux 2.4 .\"O is still busy (it is the working directory of some thread, .\"O the mount point of another device, has open files, etc.). .I source -¤Ï´û¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¤Þ¤¿¤Ï¡¢½ñ¤­¹þ¤ßÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¡¢ -Æɤ߹þ¤ßÀìÍѤǺƥޥ¦¥ó¥È¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢ +は既にマウントされている。 +または、書き込み用にオープンされたファイルがあり、 +読み込み専用で再マウントすることができない。 +または、 .I target -¤¬»ÈÍÑÃæ (busy) ¤Î¤¿¤á¡¢ +が使用中 (busy) のため、 .I target -¤Ë¥Þ¥¦¥ó¥È¤Ç¤­¤Ê¤¤¡£ +にマウントできない。 .I target -¤¬»ÈÍÑÃæ¤ÎÎã¤È¤·¤Æ¤Ï¡¢¤¢¤ë¥¹¥ì¥Ã¥É¤ÎÆ°ºî¥Ç¥£¥ì¥¯¥È¥ê (working -directory) ¤Ç¤¢¤ë¤È¤«¡¢Ê̤ΥǥХ¤¥¹¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ç¤¢¤ë¤È¤«¡¢ -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¡¢¤Ê¤É¤¬¤¢¤ë¡£ +が使用中の例としては、あるスレッドの動作ディレクトリ (working +directory) であるとか、別のデバイスのマウントポイントであるとか、 +オープンされたファイルが存在する、などがある。 .TP .B EFAULT .\"O One of the pointer arguments points outside the user address space. -¾ì½ê¤ò¼¨¤¹°ú¤­¿ô¤Î¤Ò¤È¤Ä¤¬¥æ¡¼¥¶¡¼¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +場所を示す引き数のひとつがユーザーのアドレス空間の外を指している。 .TP .B EINVAL .\"O .I source .\"O had an invalid superblock. .I source -¤ËÉÔÀµ¤Ê¥¹¡¼¥Ñ¡¼¥Ö¥í¥Ã¥¯¤¬¤¢¤ë¡£ +に不正なスーパーブロックがある。 .\"O Or, a remount .\"O .RB ( MS_REMOUNT ) .\"O was attempted, but .\"O .I source .\"O was not already mounted on .\"O .IR target . -¤Þ¤¿¤Ï¡¢ +または、 .I source -¤¬ +が .I target -¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤Î¤Ë¡¢ºÆ¥Þ¥¦¥ó¥È +にマウントされていないのに、再マウント .RB ( MS_REMOUNT ) -¤¬Í׵ᤵ¤ì¤¿¡£ +が要求された。 .\"O Or, a move .\"O .RB ( MS_MOVE ) .\"O was attempted, but .\"O .I source .\"O was not a mount point, or was \(aq/\(aq. -¤Þ¤¿¤Ï¡¢ +または、 .I source -¤¬¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ç¤Ï¤Ê¤¤¤«¡¢\(aq/\(aq ¤Ê¤Î¤Ë¡¢°ÜÆ° +がマウントポイントではないか、\(aq/\(aq なのに、移動 .RB ( MS_MOVE ) -¤¬Í׵ᤵ¤ì¤¿¡£ +が要求された。 .TP .B ELOOP .\"O Too many links encountered during pathname resolution. @@ -594,47 +594,47 @@ directory) .\"O .I target .\"O is a descendant of .\"O .IR source . -¥Ñ¥¹Ì¾¤Î²ò·èÃæ¤ËÅо줷¤¿¥ê¥ó¥¯¤¬Â¿¤¹¤®¤¿¡£ -¤Þ¤¿¤Ï¡¢ +パス名の解決中に登場したリンクが多すぎた。 +または、 .I target -¤¬ +が .I source -¤Î»Ò¹¤Ê¤Î¤Ë°ÜÆ°¤¬Í׵ᤵ¤ì¤¿¡£ +の子孫なのに移動が要求された。 .TP .B EMFILE .\"O (In case no block device is required:) .\"O Table of dummy devices is full. -.\" motoki: ¤É¤¦Ìõ¤¹¤Î¤¬¤¤¤¤¤À¤í¤¦¤«¡© -(¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤¬É¬ÍפǤʤ¤¾ì¹ç) -¥À¥ß¡¼¥Ç¥Ð¥¤¥¹¤Î¥Æ¡¼¥Ö¥ë¤¬°ìÇդˤʤä¿¡£ +.\" motoki: どう訳すのがいいだろうか? +(ブロックデバイスが必要でない場合) +ダミーデバイスのテーブルが一杯になった。 .TP .B ENAMETOOLONG .\"O A pathname was longer than .\"O .BR MAXPATHLEN . -¥Ñ¥¹Ì¾¤ÎŤµ¤¬ +パス名の長さが .B MAXPATHLEN -¤ò±Û¤¨¤¿¡£ +を越えた。 .TP .B ENODEV .\"O .I filesystemtype .\"O not configured in the kernel. .I filesystemtype -¤¬¥«¡¼¥Í¥ëÃæ¤ÇÄêµÁ (config) ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +がカーネル中で定義 (config) されていない。 .TP .B ENOENT .\"O A pathname was empty or had a nonexistent component. -¥Ñ¥¹Ì¾¤¬¶õ¤Ç¤¢¤ë¡£¤â¤·¤¯¤Ï»ØÄꤵ¤ì¤¿¥Ñ¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£ +パス名が空である。もしくは指定されたパスが存在しない。 .TP .B ENOMEM .\"O The kernel could not allocate a free page to copy filenames or data into. -¥«¡¼¥Í¥ë¤¬¥Õ¥¡¥¤¥ë̾¤ä¥Ç¡¼¥¿¤ò¥³¥Ô¡¼¤¹¤ë¤¿¤á¤Î¶õ¤­¥Ú¡¼¥¸¤ò³ÎÊݤǤ­¤Ê¤¤¡£ +カーネルがファイル名やデータをコピーするための空きページを確保できない。 .TP .B ENOTBLK .\"O .I source .\"O is not a block device (and a device was required). -(¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤¬É¬ÍפÀ¤¬) +(ブロックデバイスが必要だが) .I source -¤¬¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Ç¤Ï¤Ê¤¤¡£ +がブロックデバイスではない。 .TP .B ENOTDIR .\"O .IR target , @@ -642,23 +642,23 @@ directory) .\"O .IR source , .\"O is not a directory. .I target -¤«¡¢ +か、 .I source -¤Î¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£ +のプレフィックスがディレクトリではない。 .TP .B ENXIO .\"O The major number of the block device .\"O .I source .\"O is out of range. -¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹ +ブロックデバイス .I source -¤Î¥á¥¸¥ã¡¼Èֹ椬Èϰϳ°¤Ç¤¢¤ë¡£ +のメジャー番号が範囲外である。 .TP .B EPERM .\"O The caller does not have the required privileges. -¸Æ¤Ó½Ð¤·¸µ¤ËɬÍפʸ¢¸Â¤¬¤Ê¤¤¡£ +呼び出し元に必要な権限がない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The definitions of .\"O .BR MS_DIRSYNC , .\"O .BR MS_MOVE , @@ -672,16 +672,16 @@ directory) .BR MS_REC , .BR MS_RELATIME , .B MS_STRICTATIME -¤ÎÄêµÁ¤¬ glibc ¤Î¥Ø¥Ã¥À¤ËÄɲ䵤줿¤Î¤Ï -¥Ð¡¼¥¸¥ç¥ó 2.12 ¤Ë¤ª¤¤¤Æ¤Î¤ß¤Ç¤¢¤ë¡£ +の定義が glibc のヘッダに追加されたのは +バージョン 2.12 においてのみである。 .\" FIXME: Definitions of the so-far-undocumented MS_UNBINDABLE, MS_PRIVATE, .\" MS_SHARED, and MS_SLAVE were (also) only added to glibc headers in 2.12. .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This function is Linux-specific and should not be used in .\"O programs intended to be portable. -¤³¤Î´Ø¿ô¤Ï Linux ¸ÇÍ­¤Î´Ø¿ô¤Ç¤¢¤ê¡¢°Ü¿¢¤ò¹Íθ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï -»ÈÍѤ¹¤Ù¤­¤Ç¤Ê¤¤¡£ +この関数は Linux 固有の関数であり、移植を考慮したプログラムでは +使用すべきでない。 .\"O .SH NOTES .\"O The original .\"O .B MS_SYNC @@ -691,34 +691,34 @@ directory) .\"O when a different .\"O .B MS_SYNC .\"O was added to \fI\fP. -¸µ¤Î +元の .B MS_SYNC -¥Õ¥é¥°¤Ï¡¢Ê̤Π+フラグは、別の .B MS_SYNC -¤¬ \fI\fP ¤ËÄɲ䵤줿¤Î¤Ç -1.1.69 ¤«¤é +が \fI\fP に追加されたので +1.1.69 から .B MS_SYNCHRONOUS -¤Ë̾Á°¤¬ÊѤï¤Ã¤¿¡£ +に名前が変わった。 .LP .\"O Before Linux 2.4 an attempt to execute a set-UID or set-GID program .\"O on a file system mounted with .\"O .B MS_NOSUID .\"O would fail with .\"O .BR EPERM . -Linux 2.4 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ +Linux 2.4 より前のバージョンでは、 .B MS_NOSUID -¥ª¥×¥·¥ç¥óÉÕ¤­¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î -set-UID ¤ä set-GID ¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤è¤¦¤È¤¹¤ë¤È¡¢ +オプション付きでマウントされたファイルシステム上の +set-UID や set-GID のプログラムを実行しようとすると、 .B EPERM -¥¨¥é¡¼¤È¤Ê¤Ã¤¿¡£ +エラーとなった。 .\"O Since Linux 2.4 the set-UID and set-GID bits are just silently ignored .\"O in this case. -Linux 2.4 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ï set-UID ¥Ó¥Ã¥È¤ä set-GID ¥Ó¥Ã¥È¤¬ -̵»ë¤µ¤ì¤ë¤À¤±¤Ç¤¢¤ë¡£ +Linux 2.4 以降では、このような場合は set-UID ビットや set-GID ビットが +無視されるだけである。 .\"O .\" The change is in patch-2.4.0-prerelease. -.\" ¤³¤ÎÊѹ¹¤Ï patch-2.4.0-prerelease ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +.\" この変更は patch-2.4.0-prerelease に含まれている。 .\"O .SS Per-process Namespaces -.SS ¥×¥í¥»¥¹Ã±°Ì¤Î̾Á°¶õ´Ö +.SS プロセス単位の名前空間 .\"O Starting with kernel 2.4.19, Linux provides .\"O per-process mount namespaces. .\"O A mount namespace is the set of file system mounts that @@ -729,15 +729,15 @@ Linux 2.4 .\"O are visible to all other processes sharing the same namespace. .\"O (The pre-2.4.19 Linux situation can be considered as one in which .\"O a single namespace was shared by every process on the system.) -¥«¡¼¥Í¥ë 2.4.19 °Ê¹ß¤Î Linux ¤Ç¤Ï¡¢¥×¥í¥»¥¹Ã±°Ì¤Î¥Þ¥¦¥ó¥È̾Á°¶õ´Ö -(mount namespace) ¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¡£¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤È¤Ï¡¢ -¤¢¤ë¥×¥í¥»¥¹¤Ë¸«¤¨¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Þ¥¦¥ó¥È¤Î½¸¹ç¤Ç¤¢¤ë¡£ -¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Î̾Á°¶õ´Ö¤ÏÊ£¿ô¤Î¥×¥í¥»¥¹¤Ç¶¦Í­¤¹¤ë¤³¤È¤¬¤Ç¤­¡¢ -ÉáÄ̤϶¦Í­¤µ¤ì¤Æ¤¤¤ë¡£ -°ì¤Ä¤Î¥×¥í¥»¥¹¤Ë¤è¤ë̾Á°¶õ´Ö¤ÎÊѹ¹ (¤¹¤Ê¤ï¤Á¡¢¥Þ¥¦¥ó¥È¤ä¥¢¥ó¥Þ¥¦¥ó¥È) ¤Ï -Ʊ¤¸Ì¾Á°¶õ´Ö¤ò¶¦Í­¤¹¤ë¾¤ÎÁ´¤Æ¤Î¥×¥í¥»¥¹¤Ë¤â¸«¤¨¤ë¡£ -(2.4.19 ¤è¤êÁ°¤Î Linux ¤Ï¡¢°ì¤Ä¤Î̾Á°¶õ´Ö¤¬¥·¥¹¥Æ¥à¾å¤ÎÁ´¥×¥í¥»¥¹¤Ç -¶¦Í­¤µ¤ì¤ë¾õ¶·¤È¤ß¤Ê¤¹¤³¤È¤¬¤Ç¤­¤ë¡£) +カーネル 2.4.19 以降の Linux では、プロセス単位のマウント名前空間 +(mount namespace) が提供されている。マウント名前空間とは、 +あるプロセスに見えているファイルシステムのマウントの集合である。 +マウントポイントの名前空間は複数のプロセスで共有することができ、 +普通は共有されている。 +一つのプロセスによる名前空間の変更 (すなわち、マウントやアンマウント) は +同じ名前空間を共有する他の全てのプロセスにも見える。 +(2.4.19 より前の Linux は、一つの名前空間がシステム上の全プロセスで +共有される状況とみなすことができる。) .\"O A child process created by .\"O .BR fork (2) @@ -745,9 +745,9 @@ Linux 2.4 .\"O the mount namespace is preserved across an .\"O .BR execve (2). .BR fork (2) -·Ðͳ¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤Î¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤ò¶¦Í­¤¹¤ë¡£ +経由で作成された子プロセスは親プロセスのマウント名前空間を共有する。 .BR execve (2) -¤ÎÁ°¸å¤Ç¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤ÏÊÝ»ý¤µ¤ì¤ë¡£ +の前後でマウント名前空間は保持される。 .\"O A process can obtain a private mount namespace if: .\"O it was created using the @@ -768,31 +768,31 @@ Linux 2.4 .\"O so that future mounts and unmounts by the caller are invisible .\"O to other processes (except child processes that the caller .\"O subsequently creates) and vice versa. -¥×¥í¥»¥¹¤Ï¼«Ê¬ÍÑ (private) ¤Î¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ -¼«Ê¬ÍѤÎ̾Á°¶õ´Ö¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¤Î¤Ï¡¢ -¤½¤Î¥×¥í¥»¥¹¤¬ +プロセスは自分用 (private) のマウント名前空間を持つことができる。 +自分用の名前空間を持つことができるのは、 +そのプロセスが .BR clone (2) .B CLONE_NEWNS -¥Õ¥é¥°¤ò»È¤Ã¤ÆºîÀ®¤µ¤ì¤¿¾ì¹ç¤È¡¢ -¤½¤Î¥×¥í¥»¥¹¤¬ +フラグを使って作成された場合と、 +そのプロセスが .B CLONE_NEWNS -¥Õ¥é¥°ÉÕ¤­¤Ç +フラグ付きで .BR unshare (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¤Ç¤¢¤ë¡£ -Á°¼Ô¤Î¾ì¹ç¡¢ºîÀ®¤µ¤ì¤¿¥×¥í¥»¥¹¤Î¿·¤·¤¤Ì¾Á°¶õ´Ö¤Ï +を呼び出した場合である。 +前者の場合、作成されたプロセスの新しい名前空間は .BR clone (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î̾Á°¶õ´Ö¤Î¡Ö¥³¥Ô¡¼¡×¤Ç½é´ü²½¤µ¤ì¤ë¡£ -¸å¼Ô¤Î¾ì¹ç¡¢ +を呼び出したプロセスの名前空間の「コピー」で初期化される。 +後者の場合、 .BR unshare (2) -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤¬¡¢ -¤½¤ì¤Þ¤Ç¤Ï¾¤Î¥×¥í¥»¥¹¤È¶¦Í­¤·¤Æ¤¤¤¿Ì¾Á°¶õ´Ö¤Î¼«Ê¬ÍѤΥ³¥Ô¡¼¤È¤Ê¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬¤³¤ì°Ê¸å¤Ë¹Ô¤¦¥Þ¥¦¥ó¥È/¥¢¥ó¥Þ¥¦¥ó¥È¤Ï -¾¤Î¥×¥í¥»¥¹¤«¤é¸«¤¨¤Ê¤¯¤Ê¤ë -(¤¿¤À¤·¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬ +を呼び出すと、呼び出し元のプロセスのマウント名前空間が、 +それまでは他のプロセスと共有していた名前空間の自分用のコピーとなる。 +これにより、呼び出し元のプロセスがこれ以後に行うマウント/アンマウントは +他のプロセスから見えなくなる +(ただし、呼び出し元のプロセスが .BR unshare (2) -¤Î¸Æ¤Ó½Ð¤·°Ê¹ß¤ËºîÀ®¤·¤¿»Ò¥×¥í¥»¥¹¤Ë¤Ï¸«¤¨¤ë)¡£ -¤Þ¤¿¡¢¤½¤ÎµÕ¤Î¡¢Â¾¤Î¥×¥í¥»¥¹¤¬¹Ô¤Ã¤¿¥Þ¥¦¥ó¥È/¥¢¥ó¥Þ¥¦¥ó¥È¤â¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ë¤Ï -¸«¤¨¤Ê¤¯¤Ê¤ë¡£ +の呼び出し以降に作成した子プロセスには見える)。 +また、その逆の、他のプロセスが行ったマウント/アンマウントも呼び出し元のプロセスには +見えなくなる。 .\"O The Linux-specific .\"O .I /proc/PID/mounts @@ -800,14 +800,14 @@ Linux 2.4 .\"O namespace of the process with the specified ID; see .\"O .BR proc (5) .\"O for details. -Linux Æȼ«¤Î¥Õ¥¡¥¤¥ë +Linux 独自のファイル .I /proc/PID/mounts -¤Ç¤Ï¡¢»ØÄꤵ¤ì¤¿ ID ¤ò»ý¤Ä¥×¥í¥»¥¹¤Î¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤Ë¤ª¤±¤ë -¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Î¥ê¥¹¥È¤¬¸ø³«¤µ¤ì¤Æ¤¤¤ë¡£¾ÜºÙ¤Ï +では、指定された ID を持つプロセスのマウント名前空間における +マウントポイントのリストが公開されている。詳細は .BR proc (5) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR umount (2), .BR path_resolution (7), .BR mount (8), diff --git a/draft/man2/move_pages.2 b/draft/man2/move_pages.2 index ad4fc5f8..7a776e95 100644 --- a/draft/man2/move_pages.2 +++ b/draft/man2/move_pages.2 @@ -22,11 +22,11 @@ .\" .TH MOVE_PAGES 2 2010-06-11 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O move_pages \- move individual pages of a process to another node -move_pages \- ¤¢¤ë¥×¥í¥»¥¹¤Î¸Ä¡¹¤Î¥Ú¡¼¥¸¤òÊ̤ΥΡ¼¥É¤Ë°ÜÆ°¤¹¤ë +move_pages \- あるプロセスの個々のページを別のノードに移動する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -35,9 +35,9 @@ move_pages \- .fi .sp .\"O Link with \fI\-lnuma\fP. -\fI\-lnuma\fP ¤È¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lnuma\fP とリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR move_pages () .\"O moves the specified .\"O .I pages @@ -51,18 +51,18 @@ move_pages \- .\"O .I flags .\"O indicate constraints on the pages to be moved. .BR move_pages () -¤Ï¡¢¥×¥í¥»¥¹ +は、プロセス .I pid -¤Î»ØÄꤵ¤ì¤¿¥Ú¡¼¥¸ +の指定されたページ .I pages -¤ò +を .I nodes -¤Ç»ØÄꤵ¤ì¤¿¥á¥â¥ê¥Î¡¼¥É¤Ë°ÜÆ°¤¹¤ë¡£ -°ÜÆ°¤Î·ë²Ì¤Ï +で指定されたメモリノードに移動する。 +移動の結果は .I status -¤ËÈ¿±Ç¤µ¤ì¤ë¡£ +に反映される。 .I flags -¤Ç¤Ï°ÜÆ°¤µ¤ì¤ë¥Ú¡¼¥¸¤Ë´Ø¤¹¤ëÀ©Ìó¤ò»ØÄꤹ¤ë¡£ +では移動されるページに関する制約を指定する。 .\"O .I pid .\"O is the ID of the process in which pages are to be moved. @@ -77,16 +77,16 @@ move_pages \- .\"O .BR move_pages () .\"O moves pages of the calling process. .I pid -¤Ï¡¢°ÜÆ°¤µ¤ì¤ë¥Ú¡¼¥¸¤¬Â°¤¹¤ë¥×¥í¥»¥¹¤Î ID ¤Ç¤¢¤ë¡£ -ÊÌ¤Î¥×¥í¥»¥¹¤Î¥Ú¡¼¥¸¤ò°ÜÆ°¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤¬Æø¢ +は、移動されるページが属するプロセスの ID である。 +別のプロセスのページを移動するためには、呼び出し元が特権 .RB ( CAP_SYS_NICE ) -¤ò»ý¤Ã¤Æ¤¤¤ë¤«¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶ ID ¤«¼Â¸ú¥æ¡¼¥¶ ID ¤¬ -¥Ú¡¼¥¸°ÜÆ°ÂÐ¾Ý¤Î¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶ ID ¤«Êݸ set-user-ID ¤Î¤É¤Á¤é¤«¤È -°ìÃפ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を持っているか、呼び出したプロセスの実ユーザ ID か実効ユーザ ID が +ページ移動対象のプロセスの実ユーザ ID か保存 set-user-ID のどちらかと +一致しなければならない。 .I pid -¤¬ 0 ¤Î¾ì¹ç¡¢ +が 0 の場合、 .BR move_pages () -¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥Ú¡¼¥¸¤ò°ÜÆ°¤¹¤ë¡£ +は呼び出したプロセスのページを移動する。 .\"O .I count .\"O is the number of pages to move. @@ -96,25 +96,25 @@ move_pages \- .\"O and .\"O .IR status . .I count -¤Ï°ÜÆ°¤¹¤ë¥Ú¡¼¥¸¿ô¤Ç¤¢¤ë¡£ +は移動するページ数である。 .I count -¤Ë¤è¤ê +により .IR pages , .IR nodes , .I status -¤Î 3 ¤Ä¤ÎÇÛÎó¤ÎÂ礭¤µ¤¬ÄêµÁ¤µ¤ì¤ë¡£ +の 3 つの配列の大きさが定義される。 .\"O .I pages .\"O is an array of pointers to the pages that should be moved. .\"O These are pointers that should be aligned to page boundaries. .I pages -¤Ï¡¢°ÜÆ°¤¹¤Ù¤­¥Ú¡¼¥¸¤Ø¤Î¥Ý¥¤¥ó¥¿¤ÎÇÛÎó¤Ç¤¢¤ê¡¢ -³Æ¥Ý¥¤¥ó¥¿¤Ï¥Ú¡¼¥¸¶­³¦¤Ë·¤¨¤¿Ãͤò»ØÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£ +は、移動すべきページへのポインタの配列であり、 +各ポインタはページ境界に揃えた値を指定すべきである。 .\" FIXME what if they are not aligned? .\"O Addresses are specified as seen by the process specified by .\"O .IR pid . .I pid -¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤Ç¸«¤¨¤ë¥¢¥É¥ì¥¹¤ò»ØÄꤹ¤ë¡£ +で指定されたプロセスで見えるアドレスを指定する。 .\"O .I nodes .\"O is an array of integers that specify the desired location for each page. @@ -129,15 +129,15 @@ move_pages \- .\"O Obtaining the status of each page may be necessary to determine .\"O pages that need to be moved. .I nodes -¤Ï¡¢³Æ¥Ú¡¼¥¸¤Î´õ˾¤Î°ÜÆ°¾ì½ê¤ò¼¨¤¹À°¿ôÃͤÎÇÛÎó¤Ç¤¢¤ê¡¢ -ÇÛÎó¤Î³ÆÍ×ÁǤϥΡ¼¥ÉÈÖ¹æ¤Ç¤¢¤ë¡£ +は、各ページの希望の移動場所を示す整数値の配列であり、 +配列の各要素はノード番号である。 .I nodes -¤Ë¤Ï NULL ¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¡¢¤³¤Î¾ì¹ç¤Ë¤Ï +には NULL を指定することもでき、この場合には .BR move_pages () -¤Ï¤É¤Î¥Ú¡¼¥¸¤â°ÜÆ°¤·¤Ê¤¤¤¬¡¢³Æ¥Ú¡¼¥¸¤¬¸½ºßÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë¥Î¡¼¥É¤òÇÛÎó +はどのページも移動しないが、各ページが現在配置されているノードを配列 .I status -¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£¤É¤Î¥Ú¡¼¥¸¤ò°ÜÆ°¤¹¤ëɬÍפ¬¤¢¤ë¤«¤òȽÃǤ¹¤ë¤¿¤á¤Ë¡¢ -³Æ¥Ú¡¼¥¸¤Î¾õÂ֤μèÆÀ¤¬É¬Íפʾì¹ç¤â¤¢¤ë¡£ +に格納して返す。どのページを移動する必要があるかを判断するために、 +各ページの状態の取得が必要な場合もある。 .\"O .I status .\"O is an array of integers that return the status of each page. @@ -145,10 +145,10 @@ move_pages \- .\"O .BR move_pages () .\"O did not return an error. .I status -¤Ï¡¢³Æ¥Ú¡¼¥¸¤Î¾õÂÖ¤òɽ¤¹À°¿ôÃͤÎÇÛÎó¤Ç¤¢¤ë¡£ -¤³¤ÎÇÛÎó¤ËÍ­¸ú¤ÊÃͤ¬³ÊǼ¤µ¤ì¤ë¤Î¤Ï¡¢ +は、各ページの状態を表す整数値の配列である。 +この配列に有効な値が格納されるのは、 .BR move_pages () -¤¬¥¨¥é¡¼¤òÊÖ¤µ¤Ê¤«¤Ã¤¿¾ì¹ç¤À¤±¤Ç¤¢¤ë¡£ +がエラーを返さなかった場合だけである。 .\"O .I flags .\"O specify what types of pages to move. @@ -162,48 +162,48 @@ move_pages \- .\"O to use .\"O .BR MPOL_MF_MOVE_ALL . .I flags -¤Ë¤Ï¡¢¤É¤Î¼ïÎà¤Î¥Ú¡¼¥¸¤ò°ÜÆ°¤¹¤ë¤«¤ò»ØÄꤹ¤ë¡£ +には、どの種類のページを移動するかを指定する。 .B MPOL_MF_MOVE -¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤¬ÇÓ¾Ū¤Ë»ÈÍѤ·¤Æ¤¤¤ë¥Ú¡¼¥¸¤À¤±¤ò°ÜÆ°¤¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +は、そのプロセスが排他的に使用しているページだけを移動することを意味する。 .B MPOL_MF_MOVE_ALL -¤Ï¡¢Ê£¿ô¤Î¥×¥í¥»¥¹´Ö¤Ç¶¦Í­¤µ¤ì¤Æ¤¤¤ë¥Ú¡¼¥¸¤â°ÜÆ°¤Ç¤­¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +は、複数のプロセス間で共有されているページも移動できることを意味する。 .B MPOL_MF_MOVE_ALL -¤ò»ÈÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤¬Æø¢ +を使用するためには、そのプロセスが特権 .RB ( CAP_SYS_NICE ) -¤ò»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を持っていなければならない。 .\"O .SH Page states in the status array -.SH status ÇÛÎó¤Ë³ÊǼ¤µ¤ì¤ë¥Ú¡¼¥¸¾õÂÖ +.SH status 配列に格納されるページ状態 .\"O The following values can be returned in each element of the .\"O .I status .\"O array. .I status -ÇÛÎó¤Î³ÆÍ×ÁǤȤ·¤Æ¡¢°Ê²¼¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¡£ +配列の各要素として、以下の値が返される。 .TP .B 0..MAX_NUMNODES .\"O Identifies the node on which the page resides. -¤½¤Î¥Ú¡¼¥¸¤¬ÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë¥Î¡¼¥É¤ò¼¨¤¹¡£ +そのページが配置されているノードを示す。 .TP .B -EACCES .\"O The page is mapped by multiple processes and can only be moved if .\"O .B MPOL_MF_MOVE_ALL .\"O is specified. -¤½¤Î¥Ú¡¼¥¸¤ÏÊ£¿ô¤Î¥×¥í¥»¥¹¤Ë¤è¤ê¥Þ¥Ã¥×¤µ¤ì¤Æ¤ª¤ê¡¢ +そのページは複数のプロセスによりマップされており、 .B MPOL_MF_MOVE_ALL -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Î¤ß°ÜÆ°¤Ç¤­¤ë¡£ +が指定された場合にのみ移動できる。 .TP .B -EBUSY .\"O The page is currently busy and cannot be moved. .\"O Try again later. .\"O This occurs if a page is undergoing I/O or another kernel subsystem .\"O is holding a reference to the page. -¤½¤Î¥Ú¡¼¥¸¤¬¸½ºß¥Ó¥¸¡¼¤Ç¤¢¤ê¡¢°ÜÆ°¤Ç¤­¤Ê¤¤¡£¸å¤Ç¤â¤¦°ìÅٻ¤³¤È¡£ -¤³¤Î¾õ¶·¤Ï¡¢¥Ú¡¼¥¸¤¬ I/O ¤Î¼Â¹ÔÃæ¤Ç¤¢¤Ã¤¿¤ê¡¢¥«¡¼¥Í¥ë¤Î¾¤Î¥µ¥Ö¥·¥¹¥Æ¥à -¤¬¤½¤Î¥Ú¡¼¥¸¤Ø¤Î»²¾È¤òÊÝ»ý¤·¤Æ¤¤¤ë¾ì¹ç¤ËȯÀ¸¤¹¤ë¡£ +そのページが現在ビジーであり、移動できない。後でもう一度試すこと。 +この状況は、ページが I/O の実行中であったり、カーネルの他のサブシステム +がそのページへの参照を保持している場合に発生する。 .TP .B -EFAULT .\"O This is a zero page or the memory area is not mapped by the process. -¤½¤Î¥Ú¡¼¥¸¤¬ zero page ¤Ç¤¢¤ë¤«¡¢¤½¤Î¥á¥â¥êÎΰè¤Ï¤½¤Î¥×¥í¥»¥¹¤Ë¤è¤ê -¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +そのページが zero page であるか、そのメモリ領域はそのプロセスにより +マップされていない。 .TP .B -EIO .\"O Unable to write back a page. @@ -211,58 +211,58 @@ move_pages \- .\"O in order to move it since the page is dirty and the file system .\"O does not provide a migration function that would allow the move .\"O of dirty pages. -¥Ú¡¼¥¸¤ò½ñ¤­Ì᤹ (write back) ¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ -¥Ú¡¼¥¸¤¬ dirty ¤Ç¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ dirty ¤Ê¥Ú¡¼¥¸¤ò°ÜÆ°¤Ç¤­¤ë¤è¤¦¤Ê -°ÜÆ°µ¡Ç½¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¤¿¤á¡¢¤½¤Î¥Ú¡¼¥¸¤ò°ÜÆ°¤¹¤ë¤¿¤á¤Ë¤Ï¥Ú¡¼¥¸¤ò -½ñ¤­Ìᤵ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ページを書き戻す (write back) ことができない。 +ページが dirty で、ファイルシステムが dirty なページを移動できるような +移動機能を提供していないため、そのページを移動するためにはページを +書き戻さなければならない。 .TP .B -EINVAL .\"O A dirty page cannot be moved. .\"O The file system does not .\"O provide a migration function and has no ability to write back pages. -dirty ¤Ê¥Ú¡¼¥¸¤ò°ÜÆ°¤Ç¤­¤Ê¤¤¡£ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ dirty ¤Ê¥Ú¡¼¥¸¤ò°ÜÆ°¤¹¤ë¤¿¤á¤Îµ¡Ç½¤òÄ󶡤·¤Æ¤ª¤é¤º¡¢ -¥Ú¡¼¥¸¤ò½ñ¤­Ì᤹ǽÎϤâ¤Ê¤¤¡£ +dirty なページを移動できない。 +ファイルシステムが dirty なページを移動するための機能を提供しておらず、 +ページを書き戻す能力もない。 .TP .B -ENOENT .\"O The page is not present. -¥Ú¡¼¥¸¤¬Â¸ºß¤·¤Ê¤¤¡£ +ページが存在しない。 .TP .B -ENOMEM .\"O Unable to allocate memory on target node. -°ÜÆ°Àè¤Î¥Î¡¼¥É¤Ç¥á¥â¥ê¤ò³ÎÊݤ¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +移動先のノードでメモリを確保することができない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success .\"O .BR move_pages () .\"O returns zero. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR move_pages () -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .\" FIXME Is the following quite true: does the wrapper in numactl .\" do the right thing? .\"O On error, it returns \-1, and sets .\"O .I errno .\"O to indicate the error. -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B E2BIG .\"O Too many pages to move. -°ÜÆ°¤¹¤Ù¤­¥Ú¡¼¥¸¤¬Â¿²á¤®¤ë¡£ +移動すべきページが多過ぎる。 .TP .B EACCES .\" FIXME Clarify "current cpuset". Is that the cpuset of the caller .\" or the target? .\"O One of the target nodes is not allowed by the current cpuset. -°ÜÆ°Àè¤Î¥Î¡¼¥É¤Î¤¤¤º¤ì¤«¤¬¸½ºß¤Î CPU ½¸¹ç¤Ç¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +移動先のノードのいずれかが現在の CPU 集合では許可されていない。 .TP .B EFAULT .\"O Parameter array could not be accessed. -¥Ñ¥é¥á¡¼¥¿ÇÛÎó¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +パラメータ配列にアクセスできなかった。 .TP .B EINVAL .\"O Flags other than @@ -271,25 +271,25 @@ dirty .\"O .B MPOL_MF_MOVE_ALL .\"O was specified or an attempt was made to migrate pages of a kernel thread. .I flags -¤Ë +に .B MPOL_MF_MOVE -¤Ç¤â +でも .B MPOL_MF_MOVE_ALL -¤Ç¤â¤Ê¤¤Ãͤ¬»ØÄꤵ¤ì¤¿¤«¡¢¥«¡¼¥Í¥ë¥¹¥ì¥Ã¥É¤Î¥Ú¡¼¥¸¤ò°ÜÆ°¤µ¤»¤è¤¦¤È¤·¤¿¡£ +でもない値が指定されたか、カーネルスレッドのページを移動させようとした。 .TP .B ENODEV .\"O One of the target nodes is not online. -°ÜÆ°Àè¤Î¥Î¡¼¥É¤Î¤¤¤º¤ì¤«¤¬¥ª¥ó¥é¥¤¥ó¤Ç¤Ê¤¤¡£ +移動先のノードのいずれかがオンラインでない。 .TP .B ENOENT .\"O No pages were found that require moving. .\"O All pages are either already .\"O on the target node, not present, had an invalid address or could not be .\"O moved because they were mapped by multiple processes. -°ÜÆ°¤¬É¬Íפʥڡ¼¥¸¤¬Á´¤¯¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£ -»ØÄꤵ¤ì¤¿Á´¤Æ¤Î¥Ú¡¼¥¸¤¬¡¢¤¹¤Ç¤Ë°ÜÆ°Àè¤Î¥Î¡¼¥É¤Ë¸ºß¤¹¤ë¤«¡¢Â¸ºß¤·¤Ê¤¤¤«¡¢ -̵¸ú¤Ê¥¢¥É¥ì¥¹¤Ç¤¢¤Ã¤¿¤«¡¢Ê£¿ô¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤Æ°ÜÆ°¤Ç¤­ -¤Ê¤«¤Ã¤¿¤«¡¢¤Î¤¤¤º¤ì¤«¤Ç¤¢¤Ã¤¿¡£ +移動が必要なページが全く見つからなかった。 +指定された全てのページが、すでに移動先のノードに存在するか、存在しないか、 +無効なアドレスであったか、複数のプロセスによってマップされていて移動でき +なかったか、のいずれかであった。 .TP .B EPERM .\"O The caller specified @@ -299,36 +299,36 @@ dirty .\"O Or, the caller attempted to move pages of a process belonging .\"O to another user but did not have privilege to do so .\"O .RB ( CAP_SYS_NICE ). -¸Æ¤Ó½Ð¤·¸µ¤Ï +呼び出し元は .B MPOL_MF_MOVE_ALL -¤ò»ØÄꤷ¤¿¤¬¡¢½½Ê¬¤ÊÆø¢ +を指定したが、十分な特権 .RB ( CAP_SYS_NICE ) -¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤¬Â¾¤Î¥æ¡¼¥¶¤Ë°¤¹¤ë¥×¥í¥»¥¹¤Î¥Ú¡¼¥¸¤ò°ÜÆ°¤·¤è¤¦¤È¤·¤¿¤¬¡¢ -¤½¤ì¤ò¹Ô¤¨¤ë¤À¤±¤ÎÆø¢ +を持っていない。 +または、呼び出し元が他のユーザに属するプロセスのページを移動しようとしたが、 +それを行えるだけの特権 .RB ( CAP_SYS_NICE ) -¤ò»ý¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +を持っていなかった。 .TP .B ESRCH .\"O Process does not exist. -¥×¥í¥»¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£ +プロセスが存在しない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR move_pages () .\"O first appeared on Linux in version 2.6.18. .BR move_pages () -¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó 2.6.18 ¤Ç½é¤á¤Æ Linux ¤ËÅо줷¤¿¡£ +は、バージョン 2.6.18 で初めて Linux に登場した。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O This system call is Linux-specific. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ +このシステムコールは Linux 固有である。 .\"O .SH "NOTES" -.SH Ãí°Õ +.SH 注意 .\"O For information on library support, see .\"O .BR numa (7). -¥é¥¤¥Ö¥é¥ê¤Ë¤è¤ë¥µ¥Ý¡¼¥È¤Ë¤Ä¤¤¤Æ¤Ï +ライブラリによるサポートについては .BR numa (7) -¤ò»²¾È¡£ +を参照。 .\"O Use .\"O .BR get_mempolicy (2) @@ -340,13 +340,13 @@ dirty .\"O the current cpuset. .\"O Note that this information is subject to change at any .\"O time by manual or automatic reconfiguration of the cpuset. -¸½ºß¤Î CPU ½¸¹ç¤Çµö²Ä¤µ¤ì¤Æ¤¤¤ë¥Î¡¼¥É¤Î½¸¹ç¤ò¼èÆÀ¤¹¤ë¤Ë¤Ï¡¢¥Õ¥é¥° +現在の CPU 集合で許可されているノードの集合を取得するには、フラグ .B MPOL_F_MEMS_ALLOWED -¤ò»ØÄꤷ¤Æ +を指定して .BR get_mempolicy (2) -¤ò»ÈÍѤ¹¤ì¤Ð¤è¤¤¡£ -¼èÆÀ¤·¤¿¾ðÊó¤Ï¡¢CPU ½¸¹ç¤Î¼êÆ°¤Þ¤¿¤Ï¼«Æ°¤Ç¤ÎºÆ¹½À®¤Ë¤è¤ê -¤¤¤Ä²¿»þÊѲ½¤·¤Æ¤·¤Þ¤¦¤«Ê¬¤«¤é¤Ê¤¤¡£ +を使用すればよい。 +取得した情報は、CPU 集合の手動または自動での再構成により +いつ何時変化してしまうか分からない。 .\"O Use of this function may result in pages whose location .\"O (node) violates the memory policy established for the @@ -357,28 +357,28 @@ dirty .\"O That is, memory policy does not constrain the destination .\"O nodes used by .\"O .BR move_pages (). -¤³¤Î´Ø¿ô¤ò»ÈÍѤ¹¤ë¤È¡¢¥Ú¡¼¥¸¤Î°ÌÃÖ (¥Î¡¼¥É) ¤¬ -»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤ËÂФ·¤ÆÀßÄꤵ¤ì¤¿¥á¥â¥ê¥Ý¥ê¥·¡¼ +この関数を使用すると、ページの位置 (ノード) が +指定されたアドレスに対して設定されたメモリポリシー .RB ( mbind (2) -»²¾È) ¤ä»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤ËÂФ·¤ÆÀßÄꤵ¤ì¤¿¥á¥â¥ê¥Ý¥ê¥·¡¼ +参照) や指定されたプロセスに対して設定されたメモリポリシー .RB ( set_mempolicy (2) -»²¾È) ¤Ë°ãÈ¿¤·¤Æ¤·¤Þ¤¦²ÄǽÀ­¤¬¤¢¤ë¡£ -¤Ä¤Þ¤ê¡¢¥á¥â¥ê¥Ý¥ê¥·¡¼¤Ï +参照) に違反してしまう可能性がある。 +つまり、メモリポリシーは .BR move_pages () -¤Ç»È¤ï¤ì¤ë°ÜÆ°Àè¥Î¡¼¥É¤òÀ©¸Â¤·¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ +で使われる移動先ノードを制限しないということである。 .\"O The .\"O .I .\"O header is not included with glibc, but requires installing .\"O .I libnuma-devel .\"O or a similar package. -¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë +ヘッダファイル .I -¤Ï glibc ¤Ë¤Ï´Þ¤Þ¤ì¤Æ¤ª¤é¤º¡¢ +は glibc には含まれておらず、 .I libnuma-devel -¤«Æ±ÍͤΥѥ屡¼¥¸¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëɬÍפ¬¤¢¤ë¡£ +か同様のパッケージをインストールする必要がある。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR get_mempolicy (2), .BR mbind (2), .BR set_mempolicy (2), diff --git a/draft/man2/mprotect.2 b/draft/man2/mprotect.2 index 27291e48..0d91a84e 100644 --- a/draft/man2/mprotect.2 +++ b/draft/man2/mprotect.2 @@ -37,24 +37,24 @@ .\" Updated & Modified 2005-10-15, Yuichi SATO .\" Updated 2007-06-11, Akihiro MOTOKI , LDP v2.54 .\" -.\"WORD: bitwise-or ¥Ó¥Ã¥È¤´¤È¤ÎÏÀÍýÏ -.\"WORD: protection ¥¢¥¯¥»¥¹Êݸî -.\"WORD: read-only Æɤ߼è¤êÀìÍÑ +.\"WORD: bitwise-or ビットごとの論理和 +.\"WORD: protection アクセス保護 +.\"WORD: read-only 読み取り専用 .\" .TH MPROTECT 2 2011-09-08 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mprotect \- set protection on a region of memory -mprotect \- ¥á¥â¥êÎΰè¤ÎÊݸî¤òÀßÄꤹ¤ë +mprotect \- メモリ領域の保護を設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int mprotect(const void *" addr ", size_t " len ", int " prot ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR mprotect () .\"O changes protection for the calling process's memory page(s) .\"O containing any part of the address range in the @@ -62,63 +62,63 @@ mprotect \- .\"O .I addr .\"O must be aligned to a page boundary. .BR mprotect () -¤Ï¡¢¶è´Ö [\fIaddr\fP,\ \fIaddr\fP+\fIlen\fP\-1] ¤Î¥¢¥É¥ì¥¹ÈϰϤò´Þ¤à -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥á¥â¥ê¥Ú¡¼¥¸¤Î¥¢¥¯¥»¥¹Êݸî¤òÊѹ¹¤¹¤ë¡£ +は、区間 [\fIaddr\fP,\ \fIaddr\fP+\fIlen\fP\-1] のアドレス範囲を含む +呼び出し元のプロセスのメモリページのアクセス保護を変更する。 .I addr -¤Ï¥Ú¡¼¥¸¶­³¦¤Ë°ìÃפ·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +はページ境界に一致していなければならない。 .\"O If the calling process tries to access memory in a manner .\"O that violates the protection, then the kernel generates a .\"O .B SIGSEGV .\"O signal for the process. -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬¥¢¥¯¥»¥¹Êݸî¤Ë°ãÈ¿¤¹¤ë¤è¤¦¤Ê¥á¥â¥ê¥¢¥¯¥»¥¹¤ò -¹Ô¤ª¤¦¤È¤¹¤ë¤È¡¢¥«¡¼¥Í¥ë¤Ï¥·¥°¥Ê¥ë +呼び出し元のプロセスがアクセス保護に違反するようなメモリアクセスを +行おうとすると、カーネルはシグナル .B SIGSEGV -¤ò¤½¤Î¥×¥í¥»¥¹¤ËÂФ·¤ÆÀ¸À®¤¹¤ë¡£ +をそのプロセスに対して生成する。 .PP .\"O .I prot .\"O is either .\"O .B PROT_NONE .\"O or a bitwise-or of the other values in the following list: .I prot -¤Ë¤Ï¡¢ +には、 .B PROT_NONE -¤«¡¢°Ê²¼¤Î¥ê¥¹¥È¤Î +か、以下のリストの .B PROT_NONE -°Ê³°¤ÎÃͤò¥Ó¥Ã¥ÈËè¤ÎÏÀÍýÏ (bitwize-or) ¤Ç»ØÄꤹ¤ë: +以外の値をビット毎の論理和 (bitwize-or) で指定する: .TP 1.1i .B PROT_NONE .\"O The memory cannot be accessed at all. -¤½¤Î¥á¥â¥ê¤Ë¤ÏÁ´¤¯¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¡£ +そのメモリには全くアクセスできない。 .TP .B PROT_READ .\"O The memory can be read. -¤½¤Î¥á¥â¥ê¤òÆɤ߼è¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +そのメモリを読み取ることができる。 .TP .B PROT_WRITE .\"O The memory can be modified. -¤½¤Î¥á¥â¥ê¤òÊѹ¹¤Ç¤­¤ë¡£ +そのメモリを変更できる。 .TP .B PROT_EXEC .\"O The memory can be executed. -¤½¤Î¥á¥â¥ê¤Ï¼Â¹Ô²Äǽ¤Ç¤¢¤ë¡£ +そのメモリは実行可能である。 .\" FIXME .\" Document PROT_GROWSUP and PROT_GROWSDOWN .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR mprotect () .\"O returns zero. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR mprotect () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬Ê֤ꡢ +は 0 を返す。エラーの場合は \-1 が返り、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O The memory cannot be given the specified access. @@ -128,26 +128,26 @@ mprotect \- .\"O .BR mprotect () .\"O to mark it .\"O .BR PROT_WRITE . -»ØÄꤵ¤ì¤¿¥¢¥¯¥»¥¹¤ò¥á¥â¥ê¤ËÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ -¤³¤ì¤Ï¡¢Î㤨¤Ð -¥Õ¥¡¥¤¥ë¤òÆɤ߼è¤êÀìÍÑ¤Ç +指定されたアクセスをメモリに設定することができない。 +これは、例えば +ファイルを読み取り専用で .BR mmap (2) -¤·¤Æ¤ª¤ê¡¢¤½¤ÎÎΰè¤ËÂФ·¤Æ +しており、その領域に対して .BR mprotect () -¤ò¸Æ¤Ó½Ð¤·¤Æ +を呼び出して .B PROT_WRITE -¤ËÀßÄꤷ¤è¤¦¤È¤·¤¿¾ì¹ç¤ËȯÀ¸¤¹¤ë¡£ +に設定しようとした場合に発生する。 .TP .B EINVAL .\"O \fIaddr\fP is not a valid pointer, .\"O or not a multiple of the system page size. -\fIaddr\fP ¤¬Í­¸ú¤Ê¥Ý¥¤¥ó¥¿¤Ç¤Ê¤¤¤«¡¢ -¥·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤Ç¤Ê¤¤¡£ +\fIaddr\fP が有効なポインタでないか、 +システムのページサイズの倍数でない。 .\" Or: both PROT_GROWSUP and PROT_GROWSDOWN were specified in 'prot'. .TP .B ENOMEM .\"O Internal kernel structures could not be allocated. -¥«¡¼¥Í¥ëÆâÉô¤Î¹½Â¤ÂΤò³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +カーネル内部の構造体を割り当てることができなかった。 .TP .B ENOMEM .\"O Addresses in the range @@ -160,13 +160,13 @@ mprotect \- .\"O was incorrectly produced for these cases.) .RI [ addr , .IR addr + len \-1] -¤È¤¤¤¦ÈϰϤΥ¢¥É¥ì¥¹¤¬¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤È¤·¤ÆÉÔÀµ¤Ç¤¢¤ë¤«¡¢ -¤½¤ÎÈϰϤΥ¢¥É¥ì¥¹¤¬¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤Ê¤¤ 1 ¤Ä°Ê¾å¤Î¥Ú¡¼¥¸¤ò»Ø¤·¤Æ¤¤¤ë -(¥«¡¼¥Í¥ë 2.4.19 ¤è¤êÁ°¤Ç¤Ï¡¢¤³¤Î¾õ¶·¤Ç¥¨¥é¡¼ +という範囲のアドレスがプロセスのアドレス空間として不正であるか、 +その範囲のアドレスがマップされていない 1 つ以上のページを指している +(カーネル 2.4.19 より前では、この状況でエラー .B EFAULT -¤¬´Ö°ã¤Ã¤ÆÀ¸À®¤µ¤ì¤Æ¤¤¤¿)¡£ +が間違って生成されていた)。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001. .\"O .\" SVr4 defines an additional error .\"O .\" code EAGAIN. The SVr4 error conditions don't map neatly onto Linux's. @@ -175,28 +175,28 @@ SVr4, POSIX.1-2001. .\"O is unspecified if it is applied to a region of memory that .\"O was not obtained via .\"O .BR mmap (2). -.\" SVr4 ¤Ç¤Ï¾¤Ë¥¨¥é¡¼¥³¡¼¥É EAGAIN ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -.\" SVr4 ¤Î¥¨¥é¡¼¾ò·ï¤Ï Linux ¤Î¤â¤Î¤Ë¤­¤Á¤ó¤ÈÂбþ¤·¤Ê¤¤¡£ -POSIX ¤Ç¤Ï¡¢ +.\" SVr4 では他にエラーコード EAGAIN が定義されている。 +.\" SVr4 のエラー条件は Linux のものにきちんと対応しない。 +POSIX では、 .BR mmap (2) -·Ðͳ¤Ç³ÍÆÀ¤·¤Æ¤¤¤Ê¤¤¥á¥â¥êÎΰè¤ËÂФ·¤Æ +経由で獲得していないメモリ領域に対して .BR mprotect () -¤ò¹Ô¤Ã¤¿¾ì¹ç¤Î +を行った場合の .BR mprotect () -¤ÎÆ°ºî¤Ï̤ÄêµÁ¤Ç¤¢¤ë¤È¤µ¤ì¤Æ¤¤¤ë¡£ +の動作は未定義であるとされている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O On Linux it is always permissible to call .\"O .BR mprotect () .\"O on any address in a process's address space (except for the .\"O kernel vsyscall area). .\"O In particular it can be used .\"O to change existing code mappings to be writable. -Linux ¤Ç¤Ï¡¢(¥«¡¼¥Í¥ë vsyscall Îΰè°Ê³°¤Î) -Ǥ°Õ¤Î¥×¥í¥»¥¹¥¢¥É¥ì¥¹¶õ´Ö¤ËÂФ·¤Æ +Linux では、(カーネル vsyscall 領域以外の) +任意のプロセスアドレス空間に対して .BR mprotect () -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤¬¡¢¾ï¤Ëµö¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤ÏÆä˴û¸¤Î¥³¡¼¥É¥Þ¥Ã¥Ô¥ó¥°¤ò½ñ¤­¹þ¤ß²Äǽ¤Ë¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ +を呼び出すことが、常に許されている。 +これは特に既存のコードマッピングを書き込み可能にするために使われる。 .\"O Whether .\"O .B PROT_EXEC @@ -208,14 +208,14 @@ Linux .\"O implies .\"O .BR PROT_READ . .B PROT_EXEC -¤¬ +が .B PROT_READ -¤È°Û¤Ê¤ë±Æ¶Á¤ò»ý¤Ä¤«Èݤ«¤Ï¡¢¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤È¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë°Í¸¤¹¤ë¡£ -(i386 ¤Ê¤É¤Î) ¤¤¤¯¤Ä¤«¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢ +と異なる影響を持つか否かは、アーキテクチャとカーネルのバージョンに依存する。 +(i386 などの) いくつかのアーキテクチャでは、 .B PROT_WRITE -¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢°ÅÌۤΤ¦¤Á¤Ë +をセットすると、暗黙のうちに .B PROT_READ -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .\"O POSIX.1-2001 says that an implementation may permit access .\"O other than that specified in @@ -225,29 +225,29 @@ Linux .\"O has been set, and must not allow any access if .\"O .B PROT_NONE .\"O has been set. -POSIX.1-2001 ¤Ç¤Ï¡¢ +POSIX.1-2001 では、 .I prot -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¥¢¥¯¥»¥¹¤òµö²Ä¤¹¤ë¼ÂÁõ¤òǧ¤á¤Æ¤¤¤ë¡£ -¤¿¤À¤·¡¢ºÇÄã¸Â¡¢ +で指定されていないアクセスを許可する実装を認めている。 +ただし、最低限、 .B PROT_WRITE -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Î¤ß½ñ¤­¹þ¤ß¥¢¥¯¥»¥¹¤¬µö²Ä¤µ¤ì¡¢ +がセットされている場合にのみ書き込みアクセスが許可され、 .B PROT_NONE -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¥¢¥¯¥»¥¹¤Ïµö²Ä¤µ¤ì¤Ê¤¤ÅÀ¤À¤±¤Ï -Ëþ¤¿¤¹É¬Íפ¬¤¢¤ë¡£ +がセットされている場合にはアクセスは許可されない点だけは +満たす必要がある。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\" sigaction.2 refers to this example .PP .\"O The program below allocates four pages of memory, makes the third .\"O of these pages read-only, and then executes a loop that walks upward .\"O through the allocated region modifying bytes. -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢¥á¥â¥ê¥Ú¡¼¥¸¤ò 4¤Ä³ÎÊݤ·¡¢¤½¤Î¤¦¤Á 3ÈÖÌܤΥڡ¼¥¸¤ò -Æɤ߹þ¤ßÀìÍѤËÀßÄꤹ¤ë¡£¤½¤Î¸å¤Ç¡¢³ÎÊݤ·¤¿Îΰè¤Î¥¢¥É¥ì¥¹¤Î¾®¤µ¤¤Êý¤«¤é -Â礭¤ÊÊý¤Ë¸þ¤«¤Ã¤Æ½çÈ֤˥Х¤¥ÈÃͤòÊѹ¹¤¹¤ë¥ë¡¼¥×¤ò¼Â¹Ô¤¹¤ë¡£ +以下のプログラムは、メモリページを 4つ確保し、そのうち 3番目のページを +読み込み専用に設定する。その後で、確保した領域のアドレスの小さい方から +大きな方に向かって順番にバイト値を変更するループを実行する。 .\"O An example of what we might see when running the program is the .\"O following: -¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤¿¾ì¹ç¤Î°ìÎã¤ò°Ê²¼¤Ë¼¨¤¹¡£ +プログラムを実行した場合の一例を以下に示す。 .in +4n .nf @@ -256,7 +256,7 @@ Start of region: 0x804c000 Got SIGSEGV at address: 0x804e000 .fi .\"O .SS Program source -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .in .nf @@ -319,6 +319,6 @@ main(void) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mmap (2), .BR sysconf (3) diff --git a/draft/man2/mq_getsetattr.2 b/draft/man2/mq_getsetattr.2 index 97e999d9..3d41adb2 100644 --- a/draft/man2/mq_getsetattr.2 +++ b/draft/man2/mq_getsetattr.2 @@ -28,11 +28,11 @@ .\" .TH MQ_GETSETATTR 2 2010-08-29 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mq_getsetattr \- get/set message queue attributes -mq_getsetattr \- ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î°À­¤òÀßÄê/¼èÆÀ¤¹¤ë +mq_getsetattr \- メッセージキューの属性を設定/取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -41,9 +41,9 @@ mq_getsetattr \- .BI " struct mq_attr *" oldattr ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Do not use this system call. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»ÈÍѤ·¤Ê¤¤¤³¤È¡£ +このシステムコールを使用しないこと。 .\"O This is the low-level system call used to implement .\"O .BR mq_getattr (3) @@ -53,27 +53,27 @@ mq_getsetattr \- .\"O see the description of .\"O .BR mq_setattr (3). .BR mq_getattr (3) -¤È +と .BR mq_setattr (3) -¤Î¼ÂÁõ¤Ë»ÈÍѤµ¤ì¤ëÄã¥ì¥Ù¥ë¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤¢¤ë¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤É¤Î¤è¤¦¤ËÆ°ºî¤¹¤ë¤«¤Ï +の実装に使用される低レベルのシステムコールである。 +このシステムコールがどのように動作するかは .BR mq_setattr (3) -¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +の説明を参照のこと。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O This interface is nonstandard; avoid its use. -¤³¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÏÈóɸ½à¤Ç¤¢¤ë¡£»ÈÍѤòÈò¤±¤ë¤³¤È¡£ +このインタフェースは非標準である。使用を避けること。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Glibc does not provide a wrapper for this system call; call it using .\"O .BR syscall (2). .\"O (Actually, never call it unless you are writing a C library!) -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +glibc はこのシステムコールに対するラッパー関数を提供していない。 .BR syscall (2) -¤ò»È¤Ã¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¡£ -(¼Â¤Î¤È¤³¤í¡¢C ¥é¥¤¥Ö¥é¥ê¤ò½ñ¤¤¤Æ¤¤¤ë¤Î¤Ç¤Ê¤¤¸Â¤ê¡¢ -·è¤·¤Æ¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¸Æ¤Ó½Ð¤µ¤Ê¤¤¤³¤È!) +を使って呼び出すこと。 +(実のところ、C ライブラリを書いているのでない限り、 +決してこのシステムコールを呼び出さないこと!) .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mq_getattr (3), .BR mq_overview (7) diff --git a/draft/man2/mremap.2 b/draft/man2/mremap.2 index 89178689..2bd1282a 100644 --- a/draft/man2/mremap.2 +++ b/draft/man2/mremap.2 @@ -35,31 +35,31 @@ .\" Updated 2005-10-09, Kentaro Shirakata .\" Updated 2006-04-16, Akihiro MOTOKI , LDP v2.28 .\" -.\"WORD: virtual memory ²¾ÁÛ¥á¥â¥ê -.\"WORD: remap ºÆ¥Þ¥Ã¥Ô¥ó¥° -.\"WORD: argument °ú¤­¿ô -.\"WORD: address space ¥¢¥É¥ì¥¹¶õ´Ö -.\"WORD: page align ¥Ú¡¼¥¸¶­³¦ -.\"WORD: linear ¥ê¥Ë¥¢ -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: segment ¥»¥°¥á¥ó¥È -.\"WORD: real memory ¼Â¥á¥â¥ê -.\"WORD: segmentation violation ¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó¿¯³² -.\"WORD: segmentation fault ¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó°ãÈ¿ -.\"WORD: scheme Êý¼° -.\"WORD: implement ¼ÂÁõ -.\"WORD: lock ¥í¥Ã¥¯ +.\"WORD: virtual memory 仮想メモリ +.\"WORD: remap 再マッピング +.\"WORD: argument 引き数 +.\"WORD: address space アドレス空間 +.\"WORD: page align ページ境界 +.\"WORD: linear リニア +.\"WORD: process プロセス +.\"WORD: segment セグメント +.\"WORD: real memory 実メモリ +.\"WORD: segmentation violation セグメンテーション侵害 +.\"WORD: segmentation fault セグメンテーション違反 +.\"WORD: scheme 方式 +.\"WORD: implement 実装 +.\"WORD: lock ロック .\" .TH MREMAP 2 2010-06-10 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O mremap \- remap a virtual memory address -.SH ̾Á° -mremap \- ²¾ÁÛ¥á¥â¥ê¡¦¥¢¥É¥ì¥¹¤òºÆ¥Þ¥Ã¥Ô¥ó¥°¤¹¤ë +.SH 名前 +mremap \- 仮想メモリ・アドレスを再マッピングする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp @@ -67,15 +67,15 @@ mremap \- .BI " size_t " new_size ", int " flags ", ... /* void *" new_address " */);" .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR mremap () .\"O expands (or shrinks) an existing memory mapping, potentially .\"O moving it at the same time (controlled by the \fIflags\fP argument and .\"O the available virtual address space). .BR mremap () -¤Ï´û¸¤Î¥á¥â¥ê¡¦¥Þ¥Ã¥Ô¥ó¥°¤Î³ÈÄ¥ (¤Þ¤¿¤Ï½Ì¾®) ¤ò¹Ô¤¦¡£ -Ʊ»þ¤Ë°ÜÆ°¤µ¤ì¤ë¤³¤È¤â¤¢¤ë -(\fIflags\fP °ú¤­¿ô¤ÈÍøÍѲÄǽ¤Ê²¾ÁÛ¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤è¤Ã¤Æ·è¤Þ¤ë)¡£ +は既存のメモリ・マッピングの拡張 (または縮小) を行う。 +同時に移動されることもある +(\fIflags\fP 引き数と利用可能な仮想アドレス空間によって決まる)。 .\"O \fIold_address\fP is the old address of the virtual memory block that you .\"O want to expand (or shrink). @@ -85,21 +85,21 @@ mremap \- .\"O virtual memory block. .\"O \fInew_size\fP is the requested size of the .\"O virtual memory block after the resize. -\fIold_address\fP ¤Ï³ÈÄ¥ (¤Þ¤¿¤Ï½Ì¾®) ¤·¤è¤¦¤È¤¹¤ë²¾ÁÛ¥á¥â¥ê¡¦¥Ö¥í¥Ã¥¯ -¤Î¸µ¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£\fIold_address\fP ¤Ï¥Ú¡¼¥¸¶­³¦¤Ë¹ç¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð -¤Ê¤é¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£\fIold_size\fP ¤Ï¸µ¤Î²¾ÁÛ¥á¥â¥ê¡¦¥Ö¥í¥Ã¥¯¤Î -¥µ¥¤¥º¤Ç¤¢¤ë¡£ -\fInew_size\fP ¤ÏÍ׵᤹¤ëÊѹ¹¸å¤Î²¾ÁÛ¥á¥â¥ê¡¦¥Ö¥í¥Ã¥¯¤Î¥µ¥¤¥º¤Ç¤¢¤ë¡£ +\fIold_address\fP は拡張 (または縮小) しようとする仮想メモリ・ブロック +の元のアドレスである。\fIold_address\fP はページ境界に合っていなければ +ならない点に注意すること。\fIold_size\fP は元の仮想メモリ・ブロックの +サイズである。 +\fInew_size\fP は要求する変更後の仮想メモリ・ブロックのサイズである。 .\"O An optional fifth argument, .\"O .IR new_address , .\"O may be provided; see the description of .\"O .B MREMAP_FIXED .\"O below. -5 ÈÖÌܤΰú¤­¿ô¤È¤·¤Æ +5 番目の引き数として .I new_address -¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£²¼µ­¤Î +を指定することができる。下記の .B MREMAP_FIXED -¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +の説明を参照のこと。 .\"O In Linux the memory is divided into pages. .\"O A user process has (one or) @@ -112,15 +112,15 @@ mremap \- .\"O writing to a read-only segment). .\"O Accessing virtual memory outside of the .\"O segments will also cause a segmentation violation. -Linux ¤Ç¤Ï¥á¥â¥ê¤Ï¥Ú¡¼¥¸¤Ëʬ³ä¤µ¤ì¤ë¡£¥æ¡¼¥¶¡¼¡¦¥×¥í¥»¥¹¤Ï (°ì¤Ä¤Þ¤¿¤Ï) -Ê£¿ô¤Î¥ê¥Ë¥¢¤Ê²¾ÁÛ¥á¥â¥ê¥»¥°¥á¥ó¥È¤ò»ý¤Ä¡£ -¤½¤ì¤¾¤ì¤Î²¾ÁÛ¥á¥â¥ê¥»¥°¥á¥ó¥È¤Ï°ì¤Ä°Ê¾å¤Î¼Â¥á¥â¥ê¡¦¥Ú¡¼¥¸ -¤Ë¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¤Æ¤¤¤ë (¥Þ¥Ã¥Ô¥ó¥°¾ðÊó¤Ï¥Ú¡¼¥¸¡¦¥Æ¡¼¥Ö¥ë¤Ç´ÉÍý¤µ¤ì¤ë)¡£ -²¾ÁÛ¥á¥â¥ê¥»¥°¥á¥ó¥È¤Ë¤Ï¥»¥°¥á¥ó¥ÈËè¤ÎÊݸî (¥¢¥¯¥»¥¹¸¢) ¤¬ÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢ -¥á¥â¥ê¤¬ÉÔÀµ¤Ë¥¢¥¯¥»¥¹¤µ¤ì¤¿¾ì¹ç (Î㤨¤ÐÆɤ߹þ¤ßÀìÍѤΥ»¥°¥á¥ó¥È¤Ë -½ñ¤­¹þ¤ó¤À¾ì¹ç)¡¢¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó¿¯³² (segmentation violation) ¤ò -°ú¤­µ¯¤³¤¹¡£¤Þ¤¿¡¢¥»¥°¥á¥ó¥È³°¤Î²¾ÁÛ¥á¥â¥ê¤Ë¥¢¥¯¥»¥¹¤·¤¿¾ì¹ç¤Ë¤â -¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó¿¯³²¤¬È¯À¸¤¹¤ë¡£ +Linux ではメモリはページに分割される。ユーザー・プロセスは (一つまたは) +複数のリニアな仮想メモリセグメントを持つ。 +それぞれの仮想メモリセグメントは一つ以上の実メモリ・ページ +にマッピングされている (マッピング情報はページ・テーブルで管理される)。 +仮想メモリセグメントにはセグメント毎の保護 (アクセス権) が設定されており、 +メモリが不正にアクセスされた場合 (例えば読み込み専用のセグメントに +書き込んだ場合)、セグメンテーション侵害 (segmentation violation) を +引き起こす。また、セグメント外の仮想メモリにアクセスした場合にも +セグメンテーション侵害が発生する。 .\"O .BR mremap () .\"O uses the Linux page table scheme. @@ -130,77 +130,77 @@ Linux .\"O This can be used to implement a very efficient .\"O .BR realloc (3). .BR mremap () -¤Ï Linux ¤Î¥Ú¡¼¥¸¡¦¥Æ¡¼¥Ö¥ëÊý¼°¤ò»ÈÍѤ¹¤ë¡£ +は Linux のページ・テーブル方式を使用する。 .BR mremap () -¤Ï²¾ÁÛ¥¢¥É¥ì¥¹¤È¥á¥â¥ê¡¦¥Ú¡¼¥¸¤Î¥Þ¥Ã¥Ô¥ó¥°¤òÊѹ¹¤¹¤ë¡£¤³¤ì¤ÏÈó¾ï¤Ë¸úΨŪ¤Ê +は仮想アドレスとメモリ・ページのマッピングを変更する。これは非常に効率的な .BR realloc (3) -¤ò¼ÂÁõ¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ +を実装するのに使用されている。 .\"O The \fIflags\fP bit-mask argument may be 0, or include the following flag: -\fIflags\fP ¥Ó¥Ã¥È¥Þ¥¹¥¯°ú¿ô¤Ï 0 ¤Þ¤¿¤Ï°Ê²¼¤Î¥Õ¥é¥°¤ò´Þ¤à: +\fIflags\fP ビットマスク引数は 0 または以下のフラグを含む: .TP .B MREMAP_MAYMOVE .\"O By default, if there is not sufficient space to expand a mapping .\"O at its current location, then .\"O .BR mremap () .\"O fails. -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¸½ºß¤Î°ÌÃ֤˥ޥåԥ󥰤ò³ÈÄ¥¤¹¤ë¤¿¤á¤Î -½½Ê¬¤Ê¶õ¤­¤¬¤Ê¤±¤ì¤Ð +デフォルトでは、現在の位置にマッピングを拡張するための +十分な空きがなければ .BR mremap () -¤Ï¼ºÇÔ¤¹¤ë¡£ +は失敗する。 .\"O If this flag is specified, then the kernel is permitted to .\"O relocate the mapping to a new virtual address, if necessary. -¤³¤Î¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤ë¤È¡¢¥«¡¼¥Í¥ë¤ÏɬÍפ¬¤¢¤ì¤Ð¥Þ¥Ã¥Ô¥ó¥°¤ò -¿·¤·¤¤²¾ÁÛ¥¢¥É¥ì¥¹¤ËºÆÇÛÃÖ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë +このフラグが指定されると、カーネルは必要があればマッピングを +新しい仮想アドレスに再配置することができる .\"O If the mapping is relocated, .\"O then absolute pointers into the old mapping location .\"O become invalid (offsets relative to the starting address of .\"O the mapping should be employed). -¥Þ¥Ã¥Ô¥ó¥°¤¬ºÆÇÛÃÖ¤µ¤ì¤ë¤È¡¢¸Å¤¤¥Þ¥Ã¥Ô¥ó¥°°ÌÃ֤ؤÎÀäÂХݥ¤¥ó¥¿¤Ï -̵¸ú¤Ë¤Ê¤ë (¥Þ¥Ã¥Ô¥ó¥°¤Î³«»Ï¥¢¥É¥ì¥¹¤«¤é¤ÎÁêÂÐ¥ª¥Õ¥»¥Ã¥È¤ÏÍ­¸ú¤Î¤Þ¤Þ¤Ç¤¢¤ë)¡£ +マッピングが再配置されると、古いマッピング位置への絶対ポインタは +無効になる (マッピングの開始アドレスからの相対オフセットは有効のままである)。 .TP .\"O .BR MREMAP_FIXED " (since Linux 2.3.31)" -.BR MREMAP_FIXED " (Linux 2.3.31 °Ê¹ß)" +.BR MREMAP_FIXED " (Linux 2.3.31 以降)" .\"O This flag serves a similar purpose to the .\"O .B MAP_FIXED .\"O flag of .\"O .BR mmap (2). -¤³¤Î¥Õ¥é¥°¤Ï +このフラグは .BR mmap (2) -¤Î +の .B MAP_FIXED -¥Õ¥é¥°¤È»÷¤¿¤è¤¦¤ÊÌÜŪ¤ÇÍѤ¤¤é¤ì¤ë¡£ +フラグと似たような目的で用いられる。 .\"O If this flag is specified, then .\"O .BR mremap () .\"O accepts a fifth argument, .\"O .IR "void *new_address" , .\"O which specifies a page-aligned address to which the mapping must .\"O be moved. -¤³¤Î¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤ë¤È¡¢ +このフラグが指定されると、 .BR mremap () -¤Ï 5 ÈÖÌܤΰú¤­¿ô +は 5 番目の引き数 .I "void *new_address" -¤ò¼õ¤±¼è¤ê¡¢¤³¤Î°ú¿ô¤Ï¥Þ¥Ã¥Ô¥ó¥°¤¬°ÜÆ°¤µ¤ì¤ë¤Ù¤­¥¢¥É¥ì¥¹¤ò»ØÄꤹ¤ë¡£ -¤³¤Î¥¢¥É¥ì¥¹¤Ï¥Ú¡¼¥¸¶­³¦¤Ë¹ç¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を受け取り、この引数はマッピングが移動されるべきアドレスを指定する。 +このアドレスはページ境界に合っていなければならない。 .\"O Any previous mapping at the address range specified by .\"O .I new_address .\"O and .\"O .I new_size .\"O is unmapped. .I new_address -¤È +と .I new_size -¤Ç»ØÄꤵ¤ì¤ë¥¢¥É¥ì¥¹ÈϰϤ˲áµî¤Î¥Þ¥Ã¥Ô¥ó¥°¤¬¤¢¤Ã¤¿¾ì¹ç¡¢ -¤½¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ï¥¢¥ó¥Þ¥Ã¥×¤µ¤ì¤ë (unmapped)¡£ +で指定されるアドレス範囲に過去のマッピングがあった場合、 +そのマッピングはアンマップされる (unmapped)。 .\"O If .\"O .B MREMAP_FIXED .\"O is specified, then .\"O .B MREMAP_MAYMOVE .\"O must also be specified. .B MREMAP_FIXED -¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¡¢ +を指定した場合は、 .B MREMAP_MAYMOVE -¤â»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +も指定しなければならない。 .PP .\"O If the memory segment specified by .\"O .I old_address @@ -212,15 +212,15 @@ Linux .\"O resized and/or relocated. .\"O As a consequence, the amount of memory locked by the process may change. .I old_address -¤È +と .I old_size -¤Ç»ØÄꤵ¤ì¤ë¥á¥â¥ê¥»¥°¥á¥ó¥È¤¬ +で指定されるメモリセグメントが .RB ( mlock (2) -¤äƱÍͤΤâ¤Î¤Ç) ¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º¤¬ÊѤï¤Ã¤¿¤ê -ºÆÇÛÃÖ¤µ¤ì¤¿¤ê¤·¤¿»þ¤Ë¥í¥Ã¥¯¤â°Ý»ý¤µ¤ì¤ë¡£ -¤½¤Î·ë²Ì¡¢¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¥í¥Ã¥¯¤µ¤ì¤ë¥á¥â¥ê¤ÎÎ̤ÏÊѲ½¤¹¤ë¡£ +や同様のもので) ロックされている場合、セグメントのサイズが変わったり +再配置されたりした時にロックも維持される。 +その結果、プロセスによってロックされるメモリの量は変化する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On On success .\"O .BR mremap () .\"O returns a pointer to the new virtual memory area. @@ -228,24 +228,24 @@ Linux .\"O .B MAP_FAILED .\"O (that is, \fI(void\ *)\ \-1\fP) is returned, .\"O and \fIerrno\fP is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï +成功した場合は .BR mremap () -¤Ï¿·¤·¤¤²¾ÁÛ¥á¥â¥êÎΰè¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï +は新しい仮想メモリ領域へのポインタを返す。 +エラーの場合は .B MAP_FAILED -(¤¹¤Ê¤ï¤Á \fI(void\ *)\ \-1\fP) ¤¬ÊÖ¤µ¤ì¡¢ -\fIerrno\fP ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +(すなわち \fI(void\ *)\ \-1\fP) が返され、 +\fIerrno\fP が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EAGAIN .\"O The caller tried to expand a memory segment that is locked, .\"O but this was not possible without exceeding the .\"O .B RLIMIT_MEMLOCK .\"O resource limit. -¸Æ¤Ó½Ð¤·¸µ¤¬¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¥á¥â¥ê¥»¥°¥á¥ó¥È¤ò³ÈÄ¥¤·¤è¤¦¤È¤·¤¿¤¬¡¢ +呼び出し元がロックされているメモリセグメントを拡張しようとしたが、 .B RLIMIT_MEMLOCK -¥ê¥½¡¼¥¹À©¸Â¤ò±Û¤¨¤º¤Ë¤³¤ì¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +リソース制限を越えずにこれを行うことができない。 .TP .B EFAULT .\"O "Segmentation fault." Some address in the range @@ -255,17 +255,17 @@ Linux .\"O .B EFAULT .\"O even if there exist mappings that cover the .\"O whole address space requested, but those mappings are of different types. -¡Ö¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó°ãÈ¿(segmentation fault)¡× -\fIold_address\fP ¤«¤é \fIold_address\fP+\fIold_size\fP ¤Î -ÈϰϤΥ¢¥É¥ì¥¹¤Î¤É¤ì¤«¤¬¤³¤Î¥×¥í¥»¥¹¤Ë¤ª¤¤¤ÆÉÔÀµ¤Ê²¾ÁÛ¥á¥â¥ê¡¦¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ -¤¿¤È¤¨Í׵ᤷ¤¿¥¢¥É¥ì¥¹¶õ´ÖÁ´ÂΤò´Þ¤à¤è¤¦¤Ê¥Þ¥Ã¥Ô¥ó¥°¤¬¤¢¤Ã¤¿¤È¤·¤Æ¤â¡¢ -¤½¤ì¤é¤Î¥Þ¥Ã¥Ô¥ó¥°¤¬°Û¤Ê¤Ã¤¿·¿¤Ê¤é¤Ð +「セグメンテーション違反(segmentation fault)」 +\fIold_address\fP から \fIold_address\fP+\fIold_size\fP の +範囲のアドレスのどれかがこのプロセスにおいて不正な仮想メモリ・アドレスである。 +たとえ要求したアドレス空間全体を含むようなマッピングがあったとしても、 +それらのマッピングが異なった型ならば .B EFAULT -¤ò¼õ¤±¼è¤ë¤À¤í¤¦¡£ +を受け取るだろう。 .TP .B EINVAL .\"O An invalid argument was given. -ÉÔÀµ¤Ê°ú¤­¿ô¤¬Í¿¤¨¤é¤ì¤¿¡£ +不正な引き数が与えられた。 .\"O Possible causes are: \fIold_address\fP was not .\"O page aligned; a value other than .\"O .B MREMAP_MAYMOVE @@ -291,59 +291,59 @@ Linux .\"O .B MREMAP_FIXED .\"O was specified without also specifying .\"O .BR MREMAP_MAYMOVE . -²ÄǽÀ­¤Î¤¢¤ë¸¶°ø¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë: -¤¿¤¤¤Æ¤¤¤Ï \fIold_address\fP ¤¬¥Ú¡¼¥¸¶­³¦¤Ë -¹ç¤Ã¤Æ¤Ê¤¤; +可能性のある原因は以下の通りである: +たいていは \fIold_address\fP がページ境界に +合ってない; .I flags -¤Ë +に .B MREMAP_MAYMOVE -¤Þ¤¿¤Ï +または .B MREMAP_FIXED -°Ê³°¤ÎÃͤ¬»ØÄꤵ¤ì¤Æ¤¤¤ë; +以外の値が指定されている; .I new_size -¤¬¥¼¥í; +がゼロ; .I new_size -¤Þ¤¿¤Ï +または .I new_address -¤ÎÃͤ¬ÉÔÀµ; +の値が不正; .I new_address -¤È +と .I new_size -¤Ç»ØÄꤵ¤ì¤ë¿·¤·¤¤¥¢¥É¥ì¥¹ÈϰϤ¬ +で指定される新しいアドレス範囲が .I old_address -¤È +と .I old_size -¤Ç»ØÄꤵ¤ì¤ë¸Å¤¤¥¢¥É¥ì¥¹ÈϰϤȽŤʤäƤ¤¤ë; +で指定される古いアドレス範囲と重なっている; .B MREMAP_FIXED -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤¬ +が指定されているが .B MREMAP_MAYMOVE -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +が指定されていない。 .TP .B ENOMEM .\"O The memory area cannot be expanded at the current virtual address, and the .\"O .B MREMAP_MAYMOVE .\"O flag is not set in \fIflags\fP. .\"O Or, there is not enough (virtual) memory available. -¸½ºß¤Î²¾ÁÛ¥¢¥É¥ì¥¹¤Ç¤Ï¥á¥â¥êÎΰ褬³ÈÄ¥¤Ç¤­¤º¡¢ +現在の仮想アドレスではメモリ領域が拡張できず、 .B MREMAP_MAYMOVE -¥Õ¥é¥°¤¬ \fIflags\fP ¤ËÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤Þ¤¿¤Ï½½Ê¬¤Ê (²¾ÁÛ) ¥á¥â¥ê¤¬Â¸ºß¤·¤Ê¤¤¡£ +フラグが \fIflags\fP に設定されていない。 +または十分な (仮想) メモリが存在しない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This call is Linux-specific, and should not be used in programs .\"O intended to be portable. .\"O .\" 4.2BSD had a (never actually implemented) .\"O .\" .BR mremap (2) .\"O .\" call with completely different semantics. -¤³¤Î¥³¡¼¥ë¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç -»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.\" 4.2BSD ¤Ë¤Ï (¼ÂºÝ¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤¿¤ï¤±¤Ç¤Ï¤Ê¤¤¤¬) -.\" Á´¤¯°Û¤Ã¤¿Êý¼° (semantics) ¤Ë¤è¤ë +このコールは Linux 特有であり、移植を意図したプログラムで +使用すべきではない。 +.\" 4.2BSD には (実際に実装されていたわけではないが) +.\" 全く異った方式 (semantics) による .\" .BR mremap (2) -.\" ¥³¡¼¥ë¤¬¤¢¤Ã¤¿¡£ +.\" コールがあった。 .\" FIXME perhaps remove above statement about 4.2BSD. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Prior to version 2.4, glibc did not expose the definition of .\"O .BR MREMAP_FIXED , .\"O and the prototype for @@ -351,15 +351,15 @@ Linux .\"O did not allow for the .\"O .I new_address .\"O argument. -¥Ð¡¼¥¸¥ç¥ó 2.4 ¤è¤êÁ°¤Î glibc ¤Ç¤Ï¡¢ +バージョン 2.4 より前の glibc では、 .B MREMAP_FIXED -¤ÎÄêµÁ¤Ï¸ø³«¤µ¤ì¤Æ¤ª¤é¤º¡¢ +の定義は公開されておらず、 .BR mremap () -¤Î¥×¥í¥È¥¿¥¤¥×¤Ï +のプロトタイプは .I new_address -°ú¤­¿ô¤ò¼è¤é¤Ê¤«¤Ã¤¿¡£ +引き数を取らなかった。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR brk (2), .BR getpagesize (2), .BR getrlimit (2), @@ -373,8 +373,8 @@ Linux .\"O (\fIModern Operating Systems\fP by Andrew S. Tannenbaum, .\"O \fIInside Linux\fP by Randolf Bentson, .\"O \fIThe Design of the UNIX Operating System\fP by Maurice J. Bach.) -¥Ú¡¼¥¸Ê¬³ä¤µ¤ì¤¿¥á¥â¥ê¤Ë¤Ä¤¤¤Æ¤â¤Ã¤È¾Ü¤·¤¯ÃΤꤿ¤¤¤Ê¤é¤Ð -¤¢¤Ê¤¿¤Î¹¥¤ß¤Î OS ¤Î¶µ²Ê½ñ¤ò»²¾È¤¹¤ë¤³¤È¡£ +ページ分割されたメモリについてもっと詳しく知りたいならば +あなたの好みの OS の教科書を参照すること。 (\fIModern Operating Systems\fP by Andrew S. Tannenbaum, \fIInside Linux\fP by Randolf Bentson, \fIThe Design of the UNIX Operating System\fP by Maurice J. Bach.) diff --git a/draft/man2/msgctl.2 b/draft/man2/msgctl.2 index 7408f933..5cb6b8ab 100644 --- a/draft/man2/msgctl.2 +++ b/draft/man2/msgctl.2 @@ -40,22 +40,22 @@ .\" Updated & Modified 2004-12-31, Yuichi SATO .\" Updated & Modified 2005-10-10, Akihiro MOTOKI .\" -.\"WORD: message ¥á¥Ã¥»¡¼¥¸ -.\"WORD: queue ¥­¥å¡¼ -.\"WORD: member ¥á¥ó¥Ð¡¼ -.\"WORD: structure ¹½Â¤ÂÎ -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶ ID -.\"WORD: creator ºîÀ®¼Ô -.\"WORD: owner ½êÍ­¼Ô -.\"WORD: feature test macro µ¡Ç½¸¡ºº¥Þ¥¯¥í +.\"WORD: message メッセージ +.\"WORD: queue キュー +.\"WORD: member メンバー +.\"WORD: structure 構造体 +.\"WORD: effective user ID 実効ユーザ ID +.\"WORD: creator 作成者 +.\"WORD: owner 所有者 +.\"WORD: feature test macro 機能検査マクロ .\" .TH MSGCTL 2 2008-08-06 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O msgctl \- message control operations -msgctl \- ¥á¥Ã¥»¡¼¥¸À©¸æÁàºî +msgctl \- メッセージ制御操作 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -64,24 +64,24 @@ msgctl \- .BI "int msgctl(int " msqid ", int " cmd ", struct msqid_ds *" buf ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR msgctl () .\"O performs the control operation specified by .\"O .I cmd .\"O on the message queue with identifier .\"O .IR msqid . .BR msgctl () -¤Ï¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¼±ÊÌ»Ò +はメッセージ・キュー識別子 .I msqid -¤Ç»ØÄꤵ¤ì¤¿¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼ (message queue) ¤ËÂФ·¤Æ +で指定されたメッセージ・キュー (message queue) に対して .I cmd -¤Ç»ØÄꤵ¤ì¤¿À©¸æÁàºî¤ò¹Ô¤Ê¤¦¡£ +で指定された制御操作を行なう。 .PP .\"O The .\"O .I msqid_ds .\"O data structure is defined in \fI\fP as follows: .I msqid_ds -¥Ç¡¼¥¿¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +データ構造体は \fI\fP で以下のように定義されている: .nf .in +4n @@ -98,18 +98,18 @@ struct msqid_ds { .\"O allowed in queue */ .\"O pid_t msg_lspid; /* PID of last msgsnd(2) */ .\"O pid_t msg_lrpid; /* PID of last msgrcv(2) */ - struct ipc_perm msg_perm; /* ½êÍ­¸¢¤Èµö²Ä */ - time_t msg_stime; /* ºÇ¸å¤Î msgsnd(2) ¤Î»þ¹ï */ - time_t msg_rtime; /* ºÇ¸å¤Î msgrcv(2) ¤Î»þ¹ï */ - time_t msg_ctime; /* ºÇ¸å¤ËÊѹ¹¤¬¹Ô¤ï¤ì¤¿»þ¹ï */ - unsigned long __msg_cbytes; /* ¥­¥å¡¼¤Ë¤¢¤ë¸½ºß¤Î¥Ð¥¤¥È¿ô - (Èóɸ½à) */ - msgqnum_t msg_qnum; /* ¥­¥å¡¼¤Ë¤¢¤ë¸½ºßÆþ¤Ã¤Æ¤¤¤ë - ¥á¥Ã¥»¡¼¥¸¤Î¿ô */ - msglen_t msg_qbytes; /* ¥­¥å¡¼¤Ëµö²Ä¤µ¤ì¤Æ¤¤¤ë - ºÇÂç¥Ð¥¤¥È¿ô */ - pid_t msg_lspid; /* ºÇ¸å¤Î msgsnd(2) ¤Î PID */ - pid_t msg_lrpid; /* ºÇ¸å¤Î msgrcv(2) ¤Î PID */ + struct ipc_perm msg_perm; /* 所有権と許可 */ + time_t msg_stime; /* 最後の msgsnd(2) の時刻 */ + time_t msg_rtime; /* 最後の msgrcv(2) の時刻 */ + time_t msg_ctime; /* 最後に変更が行われた時刻 */ + unsigned long __msg_cbytes; /* キューにある現在のバイト数 + (非標準) */ + msgqnum_t msg_qnum; /* キューにある現在入っている + メッセージの数 */ + msglen_t msg_qbytes; /* キューに許可されている + 最大バイト数 */ + pid_t msg_lspid; /* 最後の msgsnd(2) の PID */ + pid_t msg_lrpid; /* 最後の msgrcv(2) の PID */ }; .in .fi @@ -120,10 +120,10 @@ struct msqid_ds { .\"O (the highlighted fields are settable using .\"O .BR IPC_SET ): .I ipc_perm -¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë -(¶¯Ä´¤µ¤ì¤¿¥Õ¥£¡¼¥ë¥É¤Ï +構造体は \fI\fP で以下のように定義されている +(強調されたフィールドは .B IPC_SET -¤ò»È¤Ã¤ÆÀßÄê²Äǽ¤Ç¤¢¤ë): +を使って設定可能である): .PP .nf .in +4n @@ -135,13 +135,13 @@ struct ipc_perm { .\"O gid_t cgid; /* Effective GID of creator */ .\"O unsigned short \fBmode\fP; /* Permissions */ .\"O unsigned short __seq; /* Sequence number */ - key_t __key; /* msgget(2) ¤ËÍ¿¤¨¤ë¥­¡¼ */ - uid_t \fBuid\fP; /* ½êÍ­¼Ô¤Î¼Â¸ú UID */ - gid_t \fBgid\fP; /* ½êÍ­¼Ô¤Î¼Â¸ú GID */ - uid_t cuid; /* ºîÀ®¼Ô¤Î¼Â¸ú UID */ - gid_t cgid; /* ºîÀ®¼Ô¤Î¼Â¸ú GID */ - unsigned short \fBmode\fP; /* µö²Ä */ - unsigned short __seq; /* ¥·¡¼¥±¥ó¥¹ÈÖ¹æ */ + key_t __key; /* msgget(2) に与えるキー */ + uid_t \fBuid\fP; /* 所有者の実効 UID */ + gid_t \fBgid\fP; /* 所有者の実効 GID */ + uid_t cuid; /* 作成者の実効 UID */ + gid_t cgid; /* 作成者の実効 GID */ + unsigned short \fBmode\fP; /* 許可 */ + unsigned short __seq; /* シーケンス番号 */ }; .in .fi @@ -150,7 +150,7 @@ struct ipc_perm { .\"O .I cmd .\"O are: .I cmd -¤È¤·¤ÆÍ­¸ú¤ÊÃͤÏ: +として有効な値は: .TP .B IPC_STAT .\"O Copy information from the kernel data structure associated with @@ -161,12 +161,12 @@ struct ipc_perm { .\"O .IR buf . .\"O The caller must have read permission on the message queue. .I msqid -¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¡¦¥Ç¡¼¥¿¹½Â¤ÂΤ«¤é¡¢¥Ý¥¤¥ó¥¿ +に関連づけられたメッセージ・キュー・データ構造体から、ポインタ .I buf -¤¬»Ø¤·¼¨¤¹ +が指し示す .I msqid_ds -¹½Â¤ÂΤ˾ðÊó¤ò¥³¥Ô¡¼¤¹¤ë¡£ -¸Æ¤Ó½Ð¤·Â¦¤Ï¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ËÂФ¹¤ëÆɤ߹þ¤ßµö²Ä¤ò»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +構造体に情報をコピーする。 +呼び出し側はメッセージ・キューに対する読み込み許可を持っていなければならない。 .TP .B IPC_SET .\"O Write the values of some members of the @@ -177,16 +177,16 @@ struct ipc_perm { .\"O updating also its .\"O .I msg_ctime .\"O member. -¥Ý¥¤¥ó¥¿ +ポインタ .I buf -¤¬»Ø¤·¼¨¤¹ +が指し示す .I msqid_ds -¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤ÎÃͤò¡¢¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿ -¥«¡¼¥Í¥ë¡¦¥Ç¡¼¥¿¹½Â¤ÂΤ˽ñ¤­¹þ¤ß¡¢ +構造体のメンバーの値を、メッセージ・キューに関連づけられた +カーネル・データ構造体に書き込み、 .I msg_ctime -¥á¥ó¥Ð¡¼¤â¹¹¿·¤¹¤ë¡£ +メンバーも更新する。 .\"O The following members of the structure are updated: -¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤Î¤¦¤Á¡¢¹¹¿·¤µ¤ì¤ë¤â¤Î¤ò°Ê²¼¤Ë¼¨¤¹: +構造体のメンバーのうち、更新されるものを以下に示す: .\"O .IR msg_qbytes , .\"O .IR msg_perm.uid , .\"O .IR msg_perm.gid , @@ -196,17 +196,17 @@ struct ipc_perm { .IR msg_perm.uid , .IR msg_perm.gid , .I msg_perm.mode -(¤Î²¼°Ì 9 ¥Ó¥Ã¥È)¡£ +(の下位 9 ビット)。 .\"O The effective UID of the calling process must match the owner .\"O .RI ( msg_perm.uid ) .\"O or creator .\"O .RI ( msg_perm.cuid ) .\"O of the message queue, or the caller must be privileged. -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤¬¡¢¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î½êÍ­¼Ô +呼び出したプロセスの実効ユーザ ID が、メッセージ・キューの所有者 .RI ( msg_perm.uid ) -¤Þ¤¿¤ÏºîÀ®¼Ô +または作成者 .RI ( msg_perm.cuid ) -¤È°ìÃפ¹¤ë¤«¡¢¸Æ¤Ó½Ð¤·¸µ¤¬Æø¢¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +と一致するか、呼び出し元が特権を持たなければならない。 .\"O Appropriate privilege (Linux: the .\"O .B CAP_IPC_RESOURCE .\"O capability) is required to raise the @@ -214,11 +214,11 @@ struct ipc_perm { .\"O value beyond the system parameter .\"O .BR MSGMNB . .I msg_qbytes -¤ò¥·¥¹¥Æ¥à¡¦¥Ñ¥é¥á¡¼¥¿¤Î +をシステム・パラメータの .B MSGMNB -¤òĶ¤¨¤ÆÀßÄꤹ¤ë¤Ë¤Ï¡¢Å¬ÀÚ¤ÊÆø¢ (Linux ¤Ç¤Ï +を超えて設定するには、適切な特権 (Linux では .B CAP_IPC_RESOURCE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability)) ¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティ (capability)) が必要である。 .TP .B IPC_RMID .\"O Immediately remove the message queue, @@ -227,28 +227,28 @@ struct ipc_perm { .\"O .I errno .\"O set to .\"O .BR EIDRM ). -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ò¤¿¤À¤Á¤Ëºï½ü¤¹¤ë¡£ -Ʊ»þ¤Ë¤½¤Î¹½Â¤ÂΤÎÆɤ߽ñ¤­¤ÎÂÔ¤Á¾õÂ֤ˤ¢¤Ã¤¿¥×¥í¥»¥¹¤ËÄÌÃΤ¹¤ë -(¥¨¥é¡¼¤¬Ê֤ꡢ +メッセージ・キューをただちに削除する。 +同時にその構造体の読み書きの待ち状態にあったプロセスに通知する +(エラーが返り、 .I errno -¤¬ +が .B EIDRM -¤ËÀßÄꤵ¤ì¤ë)¡£ +に設定される)。 .\"O The calling process must have appropriate privileges .\"O or its effective user ID must be either that of the creator or owner .\"O of the message queue. -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬Å¬ÀÚ¤ÊÆø¢¤ò»ý¤Ã¤Æ¤¤¤ë¤«¡¢ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤¬¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ÎºîÀ®¼Ô¤« -½êÍ­¼Ô¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +呼び出したプロセスが適切な特権を持っているか、 +呼び出したプロセスの実効ユーザ ID がメッセージ・キューの作成者か +所有者の実効ユーザ ID でなければならない。 .TP .\"O .BR IPC_INFO " (Linux-specific)" -.BR IPC_INFO " (Linux ¸ÇÍ­)" +.BR IPC_INFO " (Linux 固有)" .\"O Returns information about system-wide message queue limits and .\"O parameters in the structure pointed to by .\"O .IR buf . -¥·¥¹¥Æ¥àÁ´ÂΤǤΥá¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ÎÀ©¸Â¤È¥Ñ¥é¥á¡¼¥¿¤Ë´Ø¤¹¤ë¾ðÊó¤ò¡¢ +システム全体でのメッセージ・キューの制限とパラメータに関する情報を、 .I buf -¤¬»Ø¤¹¹½Â¤ÂΤËÆþ¤ì¤ÆÊÖ¤¹¡£ +が指す構造体に入れて返す。 .\"O This structure is of type .\"O .I msginfo .\"O (thus, a cast is required), @@ -257,15 +257,15 @@ struct ipc_perm { .\"O if the .\"O .B _GNU_SOURCE .\"O feature test macro is defined: -¤³¤Î¹½Â¤ÂÎ¤Ï +この構造体は .I msginfo -·¿¤Ç¤¢¤ë (¤½¤Î¤¿¤á¥­¥ã¥¹¥È¤¬É¬ÍפǤ¢¤ë)¡£ +型である (そのためキャストが必要である)。 .I msginfo -¤Ï +は .B _GNU_SOURCE -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë +機能検査マクロが定義された場合に .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë: +で以下のように定義される: .nf .in +4n @@ -289,23 +289,23 @@ struct msginfo { .\"O unsigned short int msgseg; .\"O /* Maximum number of segments; .\"O unused within kernel */ - int msgpool; /* ¥á¥Ã¥»¡¼¥¸¡¦¥Ç¡¼¥¿¤ÎÊÝ»ý¤Ë»ÈÍѤµ¤ì¤ë - ¥Ð¥Ã¥Õ¥¡¡¦¥×¡¼¥ë¤ÎÂ礭¤µ (1024 ¥Ð¥¤¥Èñ°Ì); - ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */ - int msgmap; /* ¥á¥Ã¥»¡¼¥¸¡¦¥Þ¥Ã¥×¤ÎºÇÂ票¥ó¥È¥ê¿ô; - ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */ - int msgmax; /* °ì¤Ä¤Î¥á¥Ã¥»¡¼¥¸¤Ë½ñ¤­¹þ¤ß²Äǽ¤Ê - ºÇÂç¥Ð¥¤¥È¿ô */ - int msgmnb; /* °ì¤Ä¤Î¥­¥å¡¼¤Ë½ñ¤­¹þ¤ß²Äǽ¤ÊºÇÂç¥Ð¥¤¥È¿ô; - (msgget(2) ¤Ç¤Î) ¥­¥å¡¼ºîÀ®Ãæ¤Î msg_qbytes - ¤Î½é´ü²½¤Ë»ÈÍѤµ¤ì¤ë */ - int msgmni; /* ¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¿ô¤ÎºÇÂçÃÍ */ - int msgssz; /* ¥á¥Ã¥»¡¼¥¸¡¦¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º; - ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */ - int msgtql; /* ¥·¥¹¥Æ¥à¾å¤ÎÁ´¥­¥å¡¼¤ÎºÇÂç¥á¥Ã¥»¡¼¥¸¿ô; - ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */ + int msgpool; /* メッセージ・データの保持に使用される + バッファ・プールの大きさ (1024 バイト単位); + カーネル内では未使用 */ + int msgmap; /* メッセージ・マップの最大エントリ数; + カーネル内では未使用 */ + int msgmax; /* 一つのメッセージに書き込み可能な + 最大バイト数 */ + int msgmnb; /* 一つのキューに書き込み可能な最大バイト数; + (msgget(2) での) キュー作成中の msg_qbytes + の初期化に使用される */ + int msgmni; /* メッセージ・キューの数の最大値 */ + int msgssz; /* メッセージ・セグメントのサイズ; + カーネル内では未使用 */ + int msgtql; /* システム上の全キューの最大メッセージ数; + カーネル内では未使用 */ unsigned short int msgseg; - /* ºÇÂ祻¥°¥á¥ó¥È¿ô; ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */ + /* 最大セグメント数; カーネル内では未使用 */ }; .in @@ -320,19 +320,19 @@ struct msginfo { .\"O files of the same name; see .\"O .BR proc (5) .\"O for details. -ÀßÄê +設定 .I msgmni , .I msgmax , .I msgmnb -¤Ï +は .I /proc -¤Ë¤¢¤ëƱ¤¸Ì¾Á°¤Î¥Õ¥¡¥¤¥ë·Ðͳ¤ÇÊѹ¹²Äǽ¤Ç¤¢¤ë¡£ -¾Ü¤·¤¯¤Ï +にある同じ名前のファイル経由で変更可能である。 +詳しくは .BR proc (5) -¤ò»²¾È¡£ +を参照。 .TP .\"O .BR MSG_INFO " (Linux-specific)" -.BR MSG_INFO " (Linux ¸ÇÍ­)" +.BR MSG_INFO " (Linux 固有)" .\"O Returns a .\"O .I msginfo .\"O structure containing the same information as for @@ -349,51 +349,51 @@ struct msginfo { .\"O field returns the total number of bytes in all messages .\"O in all queues on the system. .B IPC_INFO -¤Î¤È¤­¤ÈƱ¤¸¾ðÊó¤ò³ÊǼ¤·¤¿ +のときと同じ情報を格納した .I msginfo -¹½Â¤ÂΤòÊÖ¤¹¡£ -⤷¡¢°Ê²¼¤Î¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬ -¾ÃÈñ¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à»ñ¸»¤Ë´Ø¤¹¤ë¾ðÊ󤬳ÊǼ¤µ¤ì¤ëÅÀ¤¬°Û¤Ê¤ë¡£ +構造体を返す。 +但し、以下のフィールドにはメッセージ・キューが +消費しているシステム資源に関する情報が格納される点が異なる。 .I msgpool -¥Õ¥£¡¼¥ë¥É¤Ï¸½ºß¥·¥¹¥Æ¥à¾å¤Ë¸ºß¤¹¤ë¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¿ô¤òÊÖ¤¹¡£ +フィールドは現在システム上に存在するメッセージ・キューの数を返す。 .I msgmap -¥Õ¥£¡¼¥ë¥É¤Ï¥·¥¹¥Æ¥à¾å¤ÎÁ´¤Æ¤Î¥­¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ë¥á¥Ã¥»¡¼¥¸Áí¿ô¤òÊÖ¤¹¡£ +フィールドはシステム上の全てのキューに入っているメッセージ総数を返す。 .I msgtql -¥Õ¥£¡¼¥ë¥É¤Ï¥·¥¹¥Æ¥à¾å¤ÎÁ´¤Æ¤Î¥­¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ëÁ´¥á¥Ã¥»¡¼¥¸¤Î -Áí¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ +フィールドはシステム上の全てのキューに入っている全メッセージの +総バイト数を返す。 .TP .\"O .BR MSG_STAT " (Linux-specific)" -.BR MSG_STAT " (Linux ¸ÇÍ­)" +.BR MSG_STAT " (Linux 固有)" .\"O Returns a .\"O .I msqid_ds .\"O structure as for .\"O .BR IPC_STAT . .B IPC_STAT -¤ÈƱ¤¸¤¯ +と同じく .I msqid_ds -¹½Â¤ÂΤòÊÖ¤¹¡£ +構造体を返す。 .\"O However, the .\"O .I msqid .\"O argument is not a queue identifier, but instead an index into .\"O the kernel's internal array that maintains information about .\"O all message queues on the system. -⤷¡¢ +但し、 .I msqid -°ú¤­¿ô¤Ï¡¢¥­¥å¡¼¼±Ê̻ҤǤϤʤ¯¡¢¥·¥¹¥Æ¥à¾å¤ÎÁ´¤Æ¤Î¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼ -¤Ë´Ø¤¹¤ë¾ðÊó¤ò´ÉÍý¤¹¤ë¥«¡¼¥Í¥ë¤ÎÆâÉôÇÛÎó¤Ø¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤¢¤ë¡£ +引き数は、キュー識別子ではなく、システム上の全てのメッセージ・キュー +に関する情報を管理するカーネルの内部配列へのインデックスである。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR IPC_STAT , .\"O .BR IPC_SET , .\"O and .\"O .B IPC_RMID .\"O return 0. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR IPC_STAT , .BR IPC_SET , .B IPC_RMID -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .\"O A successful .\"O .B IPC_INFO .\"O or @@ -402,41 +402,41 @@ struct msginfo { .\"O kernel's internal array recording information about all .\"O message queues. .B IPC_INFO -¤È +と .B MSG_INFO -Áàºî¤Ï¡¢À®¸ù¤¹¤ë¤È¡¢Á´¤Æ¤Î¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Ë´Ø¤¹¤ë¾ðÊó¤ò -´ÉÍý¤·¤Æ¤¤¤ë¥«¡¼¥Í¥ë¤ÎÆâÉôÇÛÎó¤Î»ÈÍÑÃ楨¥ó¥È¥ê¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Î -¤¦¤ÁºÇÂçÃͤòÊÖ¤¹ +操作は、成功すると、全てのメッセージ・キューに関する情報を +管理しているカーネルの内部配列の使用中エントリのインデックスの +うち最大値を返す .\"O (This information can be used with repeated .\"O .B MSG_STAT .\"O operations to obtain information about all queues on the system.) -(¤³¤Î¾ðÊó¤Ï¡¢¥·¥¹¥Æ¥à¤ÎÁ´¤Æ¤Î¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Ë´Ø¤¹¤ë¾ðÊó¤ò -¼èÆÀ¤¹¤ë¤¿¤á¤Ë¡¢ +(この情報は、システムの全てのメッセージ・キューに関する情報を +取得するために、 .B MSG_STAT -Áàºî¤ò·«¤êÊÖ¤·¼Â¹Ô¤¹¤ëºÝ¤Ë»ÈÍѤǤ­¤ë)¡£ +操作を繰り返し実行する際に使用できる)。 .\"O A successful .\"O .B MSG_STAT .\"O operation returns the identifier of the queue whose index was given in .\"O .IR msqid . .B MSG_STAT -Áàºî¤Ï¡¢À®¸ù¤¹¤ë¤È¡¢ +操作は、成功すると、 .I msqid -¤Ç»ØÄꤵ¤ì¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»ý¤Ä¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¼±Ê̻ҤòÊÖ¤¹¡£ +で指定されたインデックスを持つメッセージ・キューの識別子を返す。 .\"O On error, \-1 is returned with .\"O .I errno .\"O indicating the error. -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +エラーの場合は \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O On failure, .\"O .I errno .\"O is set to one of the following: -¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +失敗した場合、 .I errno -¤Ï°Ê²¼¤ÎÃͤÎÃæ¤Î¤É¤ì¤«°ì¤Ä¤ËÀßÄꤵ¤ì¤ë: +は以下の値の中のどれか一つに設定される: .TP .B EACCES .\"O The argument @@ -450,17 +450,17 @@ struct msginfo { .\"O and does not have the .\"O .B CAP_IPC_OWNER .\"O capability. -°ú¤­¿ô +引き数 .I cmd -¤¬ +が .B IPC_STAT -¤Þ¤¿¤Ï +または .B MSG_STAT -¤ËÅù¤·¤¤¤¬¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼ +に等しいが、呼び出したプロセスがメッセージ・キュー .I msqid -¤ËÂФ¹¤ëÆɤ߹þ¤ßµö²Ä¤ò»ý¤Ã¤Æ¤ª¤é¤º¡¢¤«¤Ä +に対する読み込み許可を持っておらず、かつ .B CAP_IPC_OWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +ケーパビリティを持っていない。 .TP .B EFAULT .\"O The argument @@ -472,19 +472,19 @@ struct msginfo { .\"O but the address pointed to by .\"O .I buf .\"O isn't accessible. -°ú¤­¿ô +引き数 .I cmd -¤¬ +が .B IPC_SET -¤« +か .B IPC_STAT -¤Ç¡¢¥Ý¥¤¥ó¥¿ +で、ポインタ .I buf -¤Ç»Ø¤µ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¤¬¥¢¥¯¥»¥¹²Äǽ¤Ç¤Ê¤¤¡£ +で指されているアドレスがアクセス可能でない。 .TP .B EIDRM .\"O The message queue was removed. -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬ºï½ü¤µ¤ì¤¿¡£ +メッセージ・キューが削除された。 .TP .B EINVAL .\"O Invalid value for @@ -497,14 +497,14 @@ struct msginfo { .\"O .I msqid .\"O referred to an array slot that is currently unused. .I cmd -¤Þ¤¿¤Ï +または .I msqid -¤ËÉÔÀµ¤ÊÃͤ¬ÀßÄꤵ¤ì¤¿¡£ -¤â¤·¤¯¤Ï¡¢ +に不正な値が設定された。 +もしくは、 .B MSG_STAT -Áàºî¤Î¾ì¹ç¤Ë¡¢ +操作の場合に、 .I msqid -¤Ç»ØÄꤵ¤ì¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹Ãͤ¬¸½ºß̤»ÈÍѤÎÇÛÎó¤Î¥¹¥í¥Ã¥È¤ò»²¾È¤¤¤Æ¤¤¤¿¡£ +で指定されたインデックス値が現在未使用の配列のスロットを参照いていた。 .TP .B EPERM .\"O The argument @@ -523,28 +523,28 @@ struct msginfo { .\"O and the process is not privileged (Linux: it does not have the .\"O .B CAP_SYS_ADMIN .\"O capability). -°ú¤­¿ô +引き数 .I cmd -¤¬ +が .B IPC_SET -¤« +か .B IPC_RMID -¤Ç¤¢¤ë¤¬¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤¬¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î +であるが、呼び出したプロセスの実効ユーザ ID がメッセージキューの .RI ( msg_perm.cuid -¤È¤·¤Æ¸«¤Ä¤«¤ë) ºîÀ®¼Ô -¤È +として見つかる) 作成者 +と .RI ( msg_perm.uid -¤È¤·¤Æ¸«¤Ä¤«¤ë) ½êÍ­¼Ô¤Î¤¤¤º¤ì¤Ç¤â¤Ê¤¯¡¢ -¤«¤Ä¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ËÆø¢ (Linux ¤Ç¤Ï +として見つかる) 所有者のいずれでもなく、 +かつ呼び出したプロセスに特権 (Linux では .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤¬¤Ê¤¤¡£ +ケーパビリティ) がない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001. .\"O .\" SVID does not document the EIDRM error condition. -.\" SVID ¤Ë¤Ï EIDRM ¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤Ï¤Ê¤¤¡£ +.\" SVID には EIDRM エラーについての記述はない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The .\"O .BR IPC_INFO , .\"O .B MSG_STAT @@ -558,11 +558,11 @@ SVr4, POSIX.1-2001. .BR IPC_INFO , .BR MSG_STAT , .B MSG_INFO -Áàºî¤Ï¡¢ +操作は、 .BR ipcs (1) -¥×¥í¥°¥é¥à¤Ç³ä¤êÅö¤ÆºÑ¤Î»ñ¸»¤Ë´Ø¤¹¤ë¾ðÊó¤òÄ󶡤¹¤ë¤¿¤á¤Ë -»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£¾­Íè¡¢¤³¤ì¤é¤ÎÁàºî¤ÏÊѹ¹¤µ¤ì¤¿¤ê¡¢ -/proc ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë°ÜÆ°¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +プログラムで割り当て済の資源に関する情報を提供するために +使用されている。将来、これらの操作は変更されたり、 +/proc ファイルシステムのインタフェースに移動されるかもしれない。 .\"O Various fields in the \fIstruct msqid_ds\fP were @@ -578,21 +578,21 @@ SVr4, POSIX.1-2001. .\"O .B IPC_64 .\"O flag in .\"O .IR cmd .) -\fIstruct msqid_ds\fP Æâ¤Î¿¤¯¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢ -Linux 2.2 ¤Ç¤Ï +\fIstruct msqid_ds\fP 内の多くのフィールドは、 +Linux 2.2 では .I short -¤À¤Ã¤¿¤¬¡¢Linux 2.4 ¤Ç¤Ï +だったが、Linux 2.4 では .I long -¤Ë¤Ê¤Ã¤¿¡£ -¤³¤ÎÍøÅÀ¤òÀ¸¤«¤¹¤Ë¤Ï¡¢glibc-2.1.91 °Ê¹ß¤Î´Ä¶­²¼¤Ç -ºÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ì¤Ð½½Ê¬¤Ç¤¢¤ë¡£ -(¥«¡¼¥Í¥ë¤Ï¿·¤·¤¤·Á¼°¤Î¸Æ¤Ó½Ð¤·¤È¸Å¤¤·Á¼°¤Î¸Æ¤Ó½Ð¤·¤ò +になった。 +この利点を生かすには、glibc-2.1.91 以降の環境下で +再コンパイルすれば十分である。 +(カーネルは新しい形式の呼び出しと古い形式の呼び出しを .I cmd -Æâ¤Î +内の .B IPC_64 -¥Õ¥é¥°¤Ç¶èÊ̤¹¤ë¡£) +フラグで区別する。) .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR msgget (2), .BR msgrcv (2), .BR msgsnd (2), diff --git a/draft/man2/msgget.2 b/draft/man2/msgget.2 index 534b5c67..6d029be0 100644 --- a/draft/man2/msgget.2 +++ b/draft/man2/msgget.2 @@ -36,27 +36,27 @@ .\" Modified 2003-07-03, Akihiro MOTOKI .\" Updated 2005-03-04, Akihiro MOTOKI .\" -.\"WORD: message ¥á¥Ã¥»¡¼¥¸ -.\"WORD: queue ¥­¥å¡¼ -.\"WORD: identifier ¼±ÊÌ»Ò -.\"WORD: argument °ú¤­¿ô -.\"WORD: owner ½êÍ­¼Ô -.\"WORD: group ¥°¥ë¡¼¥× -.\"WORD: other ¾¿Í -.\"WORD: initialize ½é´ü²½ -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: effective group ID ¼Â¸ú¥°¥ë¡¼¥×ID -.\"WORD: current time ¸½ºß»þ¹ï -.\"WORD: destruction ÇË´þ -.\"WORD: policy Êý¿Ë +.\"WORD: message メッセージ +.\"WORD: queue キュー +.\"WORD: identifier 識別子 +.\"WORD: argument 引き数 +.\"WORD: owner 所有者 +.\"WORD: group グループ +.\"WORD: other 他人 +.\"WORD: initialize 初期化 +.\"WORD: effective user ID 実効ユーザーID +.\"WORD: effective group ID 実効グループID +.\"WORD: current time 現在時刻 +.\"WORD: destruction 破棄 +.\"WORD: policy 方針 .\" .TH MSGGET 2 2004-05-27 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O msgget \- get a message queue identifier -.SH ̾Á° -msgget \- ¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¼±Ê̻Ҥò¼èÆÀ¤¹¤ë +.SH 名前 +msgget \- メッセージ・キュー識別子を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -65,7 +65,7 @@ msgget \- .BI "int msgget(key_t " key ", int " msgflg ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR msgget () .\"O system call returns the message queue identifier associated @@ -73,9 +73,9 @@ msgget \- .\"O .I key .\"O argument. .BR msgget () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +システムコールは .I key -°ú¤­¿ô¤ÎÃͤËÂбþ¤¹¤ë¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¼±Ê̻ҤòÊÖ¤¹¡£ +引き数の値に対応するメッセージ・キューの識別子を返す。 .\"O A new message queue is created if .\"O .I key .\"O has the value @@ -91,20 +91,20 @@ msgget \- .\"O is specified in .\"O .IR msgflg . .I key -¤ÎÃͤ¬ +の値が .B IPC_PRIVATE -¤Î¾ì¹ç¡¢¤Þ¤¿¤Ï +の場合、または .I key -¤¬ +が .B IPC_PRIVATE -¤Ç¤Ê¤¯¤Æ¤â¡¢ +でなくても、 .I key -¤ËÂбþ¤¹¤ë¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬Â¸ºß¤»¤º¡¢ +に対応するメッセージ・キューが存在せず、 .I msgflg -¤Ë +に .B IPC_CREAT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¿·¤·¤¤¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬ºîÀ®¤µ¤ì¤ë¡£ +が指定されている場合、 +新しいメッセージ・キューが作成される。 .PP .\"O If .\"O .I msgflg @@ -125,24 +125,24 @@ msgget \- .\"O for .\"O .BR open (2).) .I msgflg -¤Ë +に .B IPC_CREAT -¤È +と .B IPC_EXCL -¤ÎξÊý¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +の両方が指定された場合、 .I key -¤ËÂбþ¤¹¤ë¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬´û¤Ë¸ºß¤¹¤ë¤È¡¢ +に対応するメッセージ・キューが既に存在すると、 .BR msgget () -¤Ï¼ºÇÔ¤·¡¢ +は失敗し、 .I errno -¤Ë +に .B EEXIST -¤¬ÀßÄꤵ¤ì¤ë¡£ -(¤³¤ì¤Ï +が設定される。 +(これは .BR open (2) -¤Ë +に .B O_CREAT | O_EXCL -¤ò»ØÄꤷ¤¿¾ì¹ç¤ÎÆ°ºî¤ÈƱ¤¸¤Ç¤¢¤ë) +を指定した場合の動作と同じである) .PP .\"O Upon creation, the least significant bits of the argument .\"O .I msgflg @@ -153,19 +153,19 @@ msgget \- .\"O argument of .\"O .BR open (2). .\"O (The execute permissions are not used.) -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ÎºîÀ®»þ¤Ë¡¢ +メッセージ・キューの作成時に、 .I msgflg -°ú¤­¿ô¤Î²¼°Ì 9 ¥Ó¥Ã¥È¤Ï¡¢ -¤½¤Î¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¥¢¥¯¥»¥¹µö²Ä¤ÎÄêµÁ¤È¤·¤Æ»ÈÍѤµ¤ì¤ë¡£ -¤³¤ì¤é¤Îµö²Ä¥Ó¥Ã¥È¤Ï +引き数の下位 9 ビットは、 +そのメッセージ・キューのアクセス許可の定義として使用される。 +これらの許可ビットは .BR open (2) -¤Î°ú¤­¿ô +の引き数 .I mode -¤ÈƱ¤¸·Á¼°¤ÇƱ¤¸°ÕÌ£¤Ç¤¢¤ë¡£ -¤ä +と同じ形式で同じ意味である。 +や .BR creat (2) -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Î¥¢¥¯¥»¥¹µö²Ä¥Ñ¥é¥á¡¼¥¿¤ÈƱ¤¸·Á¼°¤Ç¡¢Æ±¤¸°ÕÌ£¤ò»ý¤Ä¡£ -(⤷¡¢¼Â¹Ô (execute) µö²Ä¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£) +システム・コールのアクセス許可パラメータと同じ形式で、同じ意味を持つ。 +(但し、実行 (execute) 許可は使用されない。) .PP .\"O If a new message queue is created, .\"O then its associated data structure @@ -173,42 +173,42 @@ msgget \- .\"O (see .\"O .BR msgctl (2)) .\"O is initialized as follows: -¿·µ¬¤Î¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤òºîÀ®¤¹¤ëºÝ¡¢ +新規のメッセージ・キューを作成する際、 .BR msgget () -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¥Ç¡¼¥¿¹½Â¤ÂÎ +システム・コールはメッセージ・キューのデータ構造体 .I msqid_ds -¤ò°Ê²¼¤Î¤è¤¦¤Ë½é´ü²½¤¹¤ë +を以下のように初期化する .RI ( msqid_ds -¤Ë¤Ä¤¤¤Æ¤Ï +については .BR msgctl (2) -¤ò»²¾È): +を参照): .IP .\"O .I msg_perm.cuid .\"O and .\"O .I msg_perm.uid .\"O are set to the effective user ID of the calling process. .I msg_perm.cuid -¤È +と .I msg_perm.uid -¤Ë¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú (effective) ¥æ¡¼¥¶¡¼ID ¤òÀßÄꤹ¤ë¡£ +に呼び出し元プロセスの実効 (effective) ユーザーID を設定する。 .IP .\"O .I msg_perm.cgid .\"O and .\"O .I msg_perm.gid .\"O are set to the effective group ID of the calling process. .I msg_perm.cgid -¤È +と .I msg_perm.gid -¤Ë¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú (effective) ¥°¥ë¡¼¥×ID ¤òÀßÄꤹ¤ë¡£ +に呼び出し元プロセスの実効 (effective) グループID を設定する。 .IP .\"O The least significant 9 bits of .\"O .I msg_perm.mode .\"O are set to the least significant 9 bits of .\"O .IR msgflg . .I msg_perm.mode -¤Î²¼°Ì 9 ¥Ó¥Ã¥È¤Ï +の下位 9 ビットは .I msgflg -¤Î²¼°Ì 9 ¥Ó¥Ã¥È¤òÀßÄꤹ¤ë¡£ +の下位 9 ビットを設定する。 .IP .\"O .IR msg_qnum , .\"O .IR msg_lspid , @@ -222,45 +222,45 @@ msgget \- .IR msg_lrpid , .IR msg_stime , .I msg_rtime -¤Ë 0 ¤òÀßÄꤵ¤ì¤ë¡£ +に 0 を設定される。 .IP .\"O .I msg_ctime .\"O is set to the current time. .I msg_ctime -¤Ë¸½ºß¤Î»þ¹ï¤òÀßÄꤹ¤ë¡£ +に現在の時刻を設定する。 .IP .\"O .I msg_qbytes .\"O is set to the system limit .\"O .BR MSGMNB . .I msg_qbytes -¤Ë¡¢¥·¥¹¥Æ¥à¤Ç·è¤á¤é¤ì¤¿¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ÎºÇÂ祵¥¤¥º +に、システムで決められたメッセージ・キューの最大サイズ .B MSGMNB -¤òÀßÄꤹ¤ë¡£ +を設定する。 .PP .\"O If the message queue already exists the permissions are .\"O verified, and a check is made to see if it is marked for .\"O destruction. -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¾ì¹ç¤Ï¡¢¥¢¥¯¥»¥¹µö²Ä¤Î¸¡ºº¤È¡¢ -ÇË´þ (destruction) ¥Þ¡¼¥¯¤¬¤Ê¤¤¤«¤Î³Îǧ¤¬¹Ô¤ï¤ì¤ë¡£ +メッセージ・キューがすでに存在する場合は、アクセス許可の検査と、 +破棄 (destruction) マークがないかの確認が行われる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O If successful, the return value will be the message queue identifier (a .\"O nonnegative integer), otherwise \-1 .\"O with .\"O .I errno .\"O indicating the error. -À®¸ù¤·¤¿¾ì¹ç¡¢ÊÖ¤êÃͤϥá¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¼±ÊÌ»Ò (ÈóÉé¤ÎÀ°¿ô) ¤È¤Ê¤ë¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合、返り値はメッセージ・キュー識別子 (非負の整数) となる。 +失敗した場合は \-1 が返され、 .I errno -¤Ë¤½¤Î¥¨¥é¡¼¤¬¼¨¤µ¤ì¤ë¡£ +にそのエラーが示される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O On failure, .\"O .I errno .\"O is set to one of the following values: -¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +失敗した場合、 .I errno -¤Ë°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«°ì¤Ä¤¬ÀßÄꤵ¤ì¤ë: +に以下の値のいずれか一つが設定される: .TP .B EACCES .\"O A message queue exists for @@ -270,10 +270,10 @@ msgget \- .\"O .B CAP_IPC_OWNER .\"O capability. .I key -¤ËÂбþ¤¹¤ë¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Ï¸ºß¤¹¤ë¤¬¡¢ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ï¤½¤Î¥­¥å¡¼¤ËÂФ¹¤ë¥¢¥¯¥»¥¹µö²Ä¤¬¤Ê¤¯¡¢ +に対応するメッセージ・キューは存在するが、 +呼び出し元プロセスはそのキューに対するアクセス許可がなく、 .B CAP_IPC_OWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤â»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +ケーパビリティも持っていない。 .TP .B EEXIST .\"O A message queue exists for @@ -285,13 +285,13 @@ msgget \- .\"O and .\"O .BR IPC_EXCL . .I key -¤ËÂбþ¤¹¤ë¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬Â¸ºß¤·¡¢ +に対応するメッセージ・キューが存在し、 .I msgflg -¤Ë +に .B IPC_CREAT -¤È +と .B IPC_EXCL -¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¡£ +が指定されていた。 .TP .B ENOENT .\"O No message queue exists for @@ -301,95 +301,95 @@ msgget \- .\"O did not specify .\"O .BR IPC_CREAT . .I key -¤ËÂбþ¤¹¤ë¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬Â¸ºß¤»¤º¡¢ +に対応するメッセージ・キューが存在せず、 .I msgflg -¤Ë +に .B IPC_CREAT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +が指定されていなかった。 .TP .B ENOMEM .\"O A message queue has to be created but the system does not have enough .\"O memory for the new data structure. -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤òºîÀ®¤·¤è¤¦¤È¤·¤¿¤¬¡¢¿·¤·¤¤¥Ç¡¼¥¿¹½Â¤ÂΤòºîÀ® -¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¥·¥¹¥Æ¥à¤Ë¸ºß¤·¤Ê¤¤¡£ +メッセージ・キューを作成しようとしたが、新しいデータ構造体を作成 +するのに十分なメモリがシステムに存在しない。 .TP .B ENOSPC .\"O A message queue has to be created but the system limit for the maximum .\"O number of message queues .\"O .RB ( MSGMNI ) .\"O would be exceeded. -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤òºîÀ®¤·¤è¤¦¤È¤·¤¿¤¬¡¢ºîÀ®¤¹¤ë¤È -¥·¥¹¥Æ¥àÁ´ÂΤΥá¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¿ô¤ÎºÇÂçÃÍ +メッセージ・キューを作成しようとしたが、作成すると +システム全体のメッセージ・キュー数の最大値 .RB ( MSGMNI ) -¤òĶ¤¨¤Æ¤·¤Þ¤¦¡£ +を超えてしまう。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .B IPC_PRIVATE .\"O isn't a flag field but a .\"O .I key_t .\"O type. .B IPC_PRIVATE -¤Ï¥Õ¥é¥°¤Ç¤Ï¤Ê¤¯¡¢ +はフラグではなく、 .I key_t -·¿¤Ç¤¢¤ë¡£ +型である。 .\"O If this special value is used for .\"O .IR key , .\"O the system call ignores everything but the least significant 9 bits of .\"O .I msgflg .\"O and creates a new message queue (on success). -¤³¤ÎÆÃÊ̤ÊÃͤ¬ +この特別な値が .I key -¤È¤·¤Æ»ÈÍѤµ¤ì¤¿¾ì¹ç¡¢ +として使用された場合、 .BR msgget () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +システムコールは .I msgflg -¤Î²¼°Ì 9 ¥Ó¥Ã¥È°Ê³°¤ÎÁ´¤Æ¤ò̵»ë¤·¤Æ -(À®¸ù¤·¤¿¾ì¹ç¤Ï) ¿·¤·¤¤¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤òºîÀ®¤¹¤ë¡£ +の下位 9 ビット以外の全てを無視して +(成功した場合は) 新しいメッセージ・キューを作成する。 .PP .\"O The following is a system limit on message queue resources affecting a .\"O .BR msgget () .\"O call: .BR msgget () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë±Æ¶Á¤òµÚ¤Ü¤¹¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î»ñ¸»¤Î -¥·¥¹¥Æ¥à¤È¤·¤Æ¤ÎÀ©¸Â¤ò°Ê²¼¤Ë¼¨¤¹: +システムコールに影響を及ぼすメッセージ・キューの資源の +システムとしての制限を以下に示す: .TP .B MSGMNI .\"O System wide maximum number of message queues: policy .\"O dependent .\"O (on Linux, this limit can be read and modified via .\"O .IR /proc/sys/kernel/msgmni ). -¥·¥¹¥Æ¥àÁ´ÂΤΥá¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¿ô¤ÎºÇÂçÃÍ: Êý¿Ë°Í¸ -(Linux ¤Ç¤Ï¡¢¤³¤ÎÀ©¸ÂÃÍ¤Ï +システム全体のメッセージ・キュー数の最大値: 方針依存 +(Linux では、この制限値は .I /proc/sys/kernel/msgmni -·Ðͳ¤Ç»²¾È¤·¤¿¤ê¡¢Êѹ¹¤·¤¿¤ê¤Ç¤­¤ë)¡£ +経由で参照したり、変更したりできる)。 .\"O .SS "Linux Notes" -.SS Linux ¤Ç¤ÎÃí°Õ +.SS Linux での注意 .\"O Until version 2.3.20 Linux would return .\"O .B EIDRM .\"O for a .\"O .BR msgget () .\"O on a message queue scheduled for deletion. -Linux 2.3.20 ¤Þ¤Ç¤Ï¡¢ºï½ü¤¬Í½Äꤵ¤ì¤Æ¤¤¤ë¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ËÂФ·¤Æ +Linux 2.3.20 までは、削除が予定されているメッセージ・キューに対して .BR msgget () -¤ò¹Ô¤¦¤È +を行うと .B EIDRM -¤¬¥¨¥é¡¼¤È¤·¤ÆÊÖ¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤¿¡£ +がエラーとして返されるようになっていた。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O The name choice .\"O .B IPC_PRIVATE .\"O was perhaps unfortunate, .\"O .B IPC_NEW .\"O would more clearly show its function. .B IPC_PRIVATE -¤È¤¤¤¦Ì¾Á°¤òÁª¤ó¤À¤Î¤Ï¤ª¤½¤é¤¯¼ºÇԤǤ¢¤í¤¦¡£ +という名前を選んだのはおそらく失敗であろう。 .B IPC_NEW -¤ÎÊý¤¬¤è¤êÌÀ³Î¤Ë¤½¤Îµ¡Ç½¤òɽ¤·¤Æ¤¤¤ë¤À¤í¤¦¡£ +の方がより明確にその機能を表しているだろう。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR msgctl (2), .BR msgrcv (2), .BR msgsnd (2), diff --git a/draft/man2/msgop.2 b/draft/man2/msgop.2 index 4a1d2a3c..22d244f0 100644 --- a/draft/man2/msgop.2 +++ b/draft/man2/msgop.2 @@ -44,29 +44,29 @@ .\" Updated 2006-03-05, Akihiro MOTOKI, LDP v2.25 .\" Updated 2008-08-09, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: message ¥á¥Ã¥»¡¼¥¸ -.\"WORD: operation Áàºî -.\"WORD: queue ¥­¥å¡¼ -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: catch Êá³Í(catch) -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: suspend Ää»ß(suspend) -.\"WORD: sleep Ää»ß(sleep) -.\"WORD: block Ää»ß(block) -.\"WORD: process-ID ¥×¥í¥»¥¹ID -.\"WORD: type ·¿ -.\"WORD: policy Êý¿Ë -.\"WORD: super-user ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ -.\"WORD: current time ¸½ºß»þ¹ï -.\"WORD: implement ¼ÂÁõ +.\"WORD: message メッセージ +.\"WORD: operation 操作 +.\"WORD: queue キュー +.\"WORD: process プロセス +.\"WORD: catch 捕獲(catch) +.\"WORD: signal シグナル +.\"WORD: suspend 停止(suspend) +.\"WORD: sleep 停止(sleep) +.\"WORD: block 停止(block) +.\"WORD: process-ID プロセスID +.\"WORD: type 型 +.\"WORD: policy 方針 +.\"WORD: super-user スーパー・ユーザー +.\"WORD: current time 現在時刻 +.\"WORD: implement 実装 .\" .TH MSGOP 2 2008-04-23 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O msgrcv, msgsnd \- message operations -msgrcv, msgsnd \- ¥á¥Ã¥»¡¼¥¸Áàºî +msgrcv, msgsnd \- メッセージ操作 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -80,7 +80,7 @@ msgrcv, msgsnd \- .BI " int " msgflg ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR msgsnd () .\"O and @@ -89,23 +89,23 @@ msgrcv, msgsnd \- .\"O and receive messages from, a message queue. .\"O The calling process must have write permission on the message queue .\"O in order to send a message, and read permission to receive a message. -¥·¥¹¥Æ¥à¥³¡¼¥ë +システムコール .BR msgsnd () -¤È +と .BR msgrcv () -¤Ï¤½¤ì¤¾¤ì¡¢¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Ø¤Î¥á¥Ã¥»¡¼¥¸¤ÎÁ÷¿®¤È¡¢ -¥á¥Ã¥»¡¼¥¸¤Î¼õ¿®¤Ë»ÈÍѤµ¤ì¤ë¡£¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ï¡¢ -¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¤¹¤ë¤¿¤á¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ËÂФ¹¤ë½ñ¤­¹þ¤ßµö²Ä¤ò¡¢ -¥á¥Ã¥»¡¼¥¸¤ò¼õ¿®¤¹¤ë¤¿¤á¤Ë¤ÏÆɤ߽Ф·µö²Ä¤ò»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +はそれぞれ、メッセージ・キューへのメッセージの送信と、 +メッセージの受信に使用される。呼び出し元プロセスは、 +メッセージを送信するためにはメッセージ・キューに対する書き込み許可を、 +メッセージを受信するためには読み出し許可を持っていなければならない。 .PP .\"O The .\"O .I msgp .\"O argument is a pointer to caller-defined structure .\"O of the following general form: -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ï°Ê²¼¤Ë¼¨¤¹¹½Â¤ÂΤòÍÑ°Õ¤·¡¢¤³¤Î¹½Â¤ÂΤؤΠ-¥Ý¥¤¥ó¥¿¤ò +呼び出し元プロセスは以下に示す構造体を用意し、この構造体への +ポインタを .msgp -°ú¤­¿ô¤È¤·¤ÆÅϤ¹¡£ +引き数として渡す。 .in +4n .nf @@ -122,16 +122,16 @@ struct msgbuf { .\"O .IR msgsz , .\"O a nonnegative integer value. .I mtext -¥Õ¥£¡¼¥ë¥É¤ÏÇÛÎó (¤Þ¤¿¤Ï¾¤Î¹½Â¤ÂÎ) ¤Ç¡¢¤½¤ÎÂ礭¤µ¤Ï -ÈóÉé¤ÎÀ°¿ô¤Ç¤¢¤ë +フィールドは配列 (または他の構造体) で、その大きさは +非負の整数である .I msgsz -¤Ç»ØÄꤵ¤ì¤ë¡£ +で指定される。 .\"O Messages of zero length (i.e., no .\"O .I mtext .\"O field) are permitted. -Ťµ 0 ¤Î¥á¥Ã¥»¡¼¥¸ (¤Ä¤Þ¤ê +長さ 0 のメッセージ (つまり .I mtext -¥Õ¥£¡¼¥ë¥É¤¬¤Ê¤¤¥á¥Ã¥»¡¼¥¸) ¤âǧ¤á¤é¤ì¤Æ¤¤¤ë¡£ +フィールドがないメッセージ) も認められている。 .\"O The .\"O .I mtype .\"O field must have a strictly positive integer value. @@ -141,11 +141,11 @@ struct msgbuf { .\"O .BR msgrcv () .\"O below). .B mtype -¥Õ¥£¡¼¥ë¥É¤Ï¸·Ì©¤ËÀµ¤ÎÀ°¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ÎÃͤϡ¢¥á¥Ã¥»¡¼¥¸¤ò¼õ¿®¤¹¤ë¥×¥í¥»¥¹¤Ç¥á¥Ã¥»¡¼¥¸¤òÁªÂò¤¹¤ë¤¿¤á¤Ë -»ÈÍѤµ¤ì¤ë (²¼µ­¤Î +フィールドは厳密に正の整数でなければならない。 +この値は、メッセージを受信するプロセスでメッセージを選択するために +使用される (下記の .BR msgrcv () -¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È)¡£ +の説明を参照のこと)。 .SS msgsnd() .\"O The .\"O .BR msgsnd () @@ -155,18 +155,18 @@ struct msgbuf { .\"O by .\"O .IR msqid . .BR msgsnd () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +システムコールは .I msgp -°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤Î¥³¥Ô¡¼¤ò +引き数で指定されたメッセージのコピーを .I msqid -¤Ç»ØÄꤵ¤ì¤¿¼±Ê̻Ҥò»ý¤Ä¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ØÄɲ乤롣 +で指定された識別子を持つメッセージ・キューへ追加する。 .PP .\"O If sufficient space is available in the queue, .\"O .BR msgsnd () .\"O succeeds immediately. -¥­¥å¡¼¤Ë½½Ê¬¤Ê¶õ¤­ÍÆÎ̤¬¤¢¤ë¾ì¹ç¡¢ +キューに十分な空き容量がある場合、 .BR msgsnd () -¤Ïľ¤Á¤ËÀ®¸ù¤¹¤ë¡£ +は直ちに成功する。 .\"O (The queue capacity is defined by the .\"O .I msg_qbytes .\"O field in the associated data structure for the message queue. @@ -174,22 +174,22 @@ struct msgbuf { .\"O .B MSGMNB .\"O bytes, but this limit can be modified using .\"O .BR msgctl (2).) -(¥­¥å¡¼¤ÎÍÆÎ̤ϡ¢¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¥Ç¡¼¥¿¹½Â¤ÂΤΠ+(キューの容量は、メッセージ・キューのデータ構造体の .I msg_qbytes -¥Õ¥£¡¼¥ë¥É¤ÇÄêµÁ¤µ¤ì¤ë¡£ -¥­¥å¡¼ºîÀ®»þ¤Ë¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï +フィールドで定義される。 +キュー作成時にこのフィールドは .B MSGMNB -¤Ë½é´ü²½¤µ¤ì¤ë¤¬¡¢¤³¤ÎÀ©¸Â¤Ï +に初期化されるが、この制限は .BR msgctl (2) -¤ò»È¤Ã¤ÆÊѹ¹¤Ç¤­¤ë¡£) +を使って変更できる。) .\"O If insufficient space is available in the queue, then the default .\"O behavior of .\"O .BR msgsnd () .\"O is to block until space becomes available. -¥­¥å¡¼¤Ë½½Ê¬¤Ê¶õ¤­ÍÆÎ̤¬¤Ê¤¤¾ì¹ç¡¢ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï +キューに十分な空き容量がない場合、 +デフォルトでは .BR msgsnd () -¤Ï¶õ¤­ÍÆÎ̤¬¤Ç¤­¤ë¤Þ¤ÇÄä»ß (block) ¤¹¤ë¡£ +は空き容量ができるまで停止 (block) する。 .\"O If .\"O .B IPC_NOWAIT .\"O is specified in @@ -197,18 +197,18 @@ struct msgbuf { .\"O then the call instead fails with the error .\"O .BR EAGAIN . .I msgflg -¤Ë +に .B IPC_NOWAIT -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢¥¨¥é¡¼ +が指定された場合は、エラー .B EAGAIN -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .\"O A blocked .\"O .BR msgsnd () .\"O call may also fail if: -Ää»ß¤·¤Æ¤¤¤ë +停止している .BR msgsnd () -¤Ï°Ê²¼¤Î¾ì¹ç¤Ë¤â¼ºÇÔ¤¹¤ë¡£ +は以下の場合にも失敗する。 .IP * 2 .\"O the queue is removed, .\"O in which case the system call fails with @@ -216,12 +216,12 @@ struct msgbuf { .\"O set to .\"O .BR EIDRM ; .\"O or -¥­¥å¡¼¤¬ºï½ü¤µ¤ì¤¿¡£ -¤³¤Î¾ì¹ç¡¢ +キューが削除された。 +この場合、 .I errno -¤Ï +は .B EIDRM -¤ËÀßÄꤵ¤ì¤ë¡£ +に設定される。 .IP * .\"O a signal is caught, in which case the system call fails .\"O with @@ -229,44 +229,44 @@ struct msgbuf { .\"O set to .\"O .BR EINTR ; see .\"O .BR signal (7). -¥·¥°¥Ê¥ë¤¬Ê᪤µ¤ì¤¿¡£ -¤³¤Î¾ì¹ç¡¢ +シグナルが捕捉された。 +この場合、 .I errno -¤Ï +は .BR EINTR -¤ËÀßÄꤵ¤ì¤ë¡£ +に設定される。 .BR signal (7) -»²¾È¡£ +参照。 .\"O .RB ( msgsnd () .\"O is never automatically restarted after being interrupted by a .\"O signal handler, regardless of the setting of the .\"O .B SA_RESTART .\"O flag when establishing a signal handler.) .RB ( msgsnd () -¤Ï¡¢¤¿¤È¤¨¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ÎÀßÄê»þ¤Ë +は、たとえシグナルハンドラの設定時に .B SA_RESTART -¤ò»ØÄꤷ¤Æ¤¤¤¿¤È¤·¤Æ¤â¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿¸å¤Ç -¼«Æ°Åª¤ËºÆ¥¹¥¿¡¼¥È¤¹¤ë¤³¤È¤Ï·è¤·¤Æ¤Ê¤¤¡£) +を指定していたとしても、シグナルハンドラによって割り込まれた後で +自動的に再スタートすることは決してない。) .PP .\"O Upon successful completion the message queue data structure is updated .\"O as follows: -Àµ¾ï¤Ë½ªÎ»¤·¤¿¾ì¹ç¡¢¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¥Ç¡¼¥¿¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤Ë -¹¹¿·¤µ¤ì¤ë: +正常に終了した場合、メッセージ・キューのデータ構造体は以下のように +更新される: .IP .\"O .I msg_lspid .\"O is set to the process ID of the calling process. .I msg_lspid -¤Ë¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤¬ÀßÄꤵ¤ì¤ë¡£ +には呼び出し元プロセスのプロセス ID が設定される。 .IP .\"O .I msg_qnum .\"O is incremented by 1. .I msg_qnum -¤Ï 1 Áý²Ã¤¹¤ë¡£ +は 1 増加する。 .IP .\"O .I msg_stime .\"O is set to the current time. .I msg_stime -¤Ë¤Ï¸½ºß»þ¹ï¤¬ÀßÄꤵ¤ì¤ë¡£ +には現在時刻が設定される。 .SS msgrcv() .\"O The .\"O .BR msgrcv () @@ -276,11 +276,11 @@ struct msgbuf { .\"O pointed to by .\"O .IR msgp . .BR msgrcv () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +システムコールは .I msqid -¤Ç»ØÄꤵ¤ì¤¿¥­¥å¡¼¤«¤é¥á¥Ã¥»¡¼¥¸¤òºï½ü¤·¡¢ +で指定されたキューからメッセージを削除し、 .I msgp -¤Ç»ØÄꤵ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Ë¤½¤Î¥á¥Ã¥»¡¼¥¸¤ò³ÊǼ¤¹¤ë¡£ +で指定されたバッファにそのメッセージを格納する。 .PP .\"O The argument .\"O .I msgsz @@ -290,11 +290,11 @@ struct msgbuf { .\"O .I msgp .\"O argument. .I msgsz -°ú¤­¿ô¤Ë¤Ï +引き数には .I msgp -°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿¹½Â¤ÂΤΠ+引き数で指定された構造体の .I mtext -¥á¥ó¥Ð¡¼¤ÎºÇÂç¤Î¥Ð¥¤¥È¿ô¤ò»ØÄꤹ¤ë¡£ +メンバーの最大のバイト数を指定する。 .\"O If the message text has length greater than .\"O .IR msgsz , .\"O then the behavior depends on whether @@ -313,37 +313,37 @@ struct msgbuf { .\"O .I errno .\"O set to .\"O .BR E2BIG . -¥á¥Ã¥»¡¼¥¸¤Î¥Æ¥­¥¹¥È¤ÎŤµ¤¬ +メッセージのテキストの長さが .I msgsz -¤è¤êÂ礭¤¤¾ì¹ç¤ÎÆ°ºî¤Ï¡¢ +より大きい場合の動作は、 .I msgflg -¤Ë +に .B MSG_NOERROR -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Ç·è¤Þ¤ë¡£ +が指定されているかどうかで決まる。 .B MSG_NOERROR -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢¥á¥Ã¥»¡¼¥¸¤Î¥Æ¥­¥¹¥È¤ÏÀÚ¤êµÍ¤á¤é¤ì¤ë -(ÀÚ¤ê¼Î¤Æ¤é¤ì¤¿Éôʬ¤Ï¼º¤ï¤ì¤ë)¡£ +が指定されていれば、メッセージのテキストは切り詰められる +(切り捨てられた部分は失われる)。 .B MSG_NOERROR -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¥á¥Ã¥»¡¼¥¸¤Ï¥­¥å¡¼¤«¤éºï½ü¤µ¤ì¤º¡¢ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï \-1 ¤òÊÖ¤·¤Æ¼ºÇÔ¤·¡¢ +が指定されていなければ、メッセージはキューから削除されず、 +システムコールは \-1 を返して失敗し、 .I errno -¤Ë +に .B E2BIG -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .PP .\"O The argument .\"O .I msgtyp .\"O specifies the type of message requested as follows: .I msgtyp -°ú¤­¿ô¤Ë¤ÏÍ׵᤹¤ë¥á¥Ã¥»¡¼¥¸¤Î·¿¤ò»ØÄꤹ¤ë¡£ -·¿¤Ï°Ê²¼¤Î¤è¤¦¤Ë»ØÄꤹ¤ë: +引き数には要求するメッセージの型を指定する。 +型は以下のように指定する: .IP * 2 .\"O If .\"O .I msgtyp .\"O is 0, .\"O then the first message in the queue is read. .I msgtyp -¤¬ 0 ¤Ê¤é¤Ð¡¢¥­¥å¡¼¤ÎºÇ½é¤Ë¤¢¤ë¥á¥Ã¥»¡¼¥¸¤¬Æɤ߹þ¤Þ¤ì¤ë¡£ +が 0 ならば、キューの最初にあるメッセージが読み込まれる。 .IP * .\"O If .\"O .I msgtyp @@ -359,17 +359,17 @@ struct msgbuf { .\"O .I msgtyp .\"O will be read. .I msgtyp -¤¬ 0 ¤è¤êÂ礭¤¤¾ì¹ç¡¢ +が 0 より大きい場合、 .I msgflg -¤Ë +に .B MSG_EXCEPT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ +が指定されていなければ、 .I msgtyp -·¿¤Î¥­¥å¡¼¤ÎºÇ½é¤Î¥á¥Ã¥»¡¼¥¸¤¬Æɤ߹þ¤Þ¤ì¤ë¡£ +型のキューの最初のメッセージが読み込まれる。 .B MSG_EXCEPT -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢ +が指定された場合は、 .I msgtyp -·¿°Ê³°¤Î¥­¥å¡¼¤ÎºÇ½é¤Î¥á¥Ã¥»¡¼¥¸¤¬Æɤ߹þ¤Þ¤ì¤ë¡£ +型以外のキューの最初のメッセージが読み込まれる。 .IP * .\"O If .\"O .I msgtyp @@ -379,16 +379,16 @@ struct msgbuf { .\"O .I msgtyp .\"O will be read. .I msgtyp -¤¬ 0 ¤è¤ê¾®¤µ¤±¤ì¤Ð¡¢ +が 0 より小さければ、 .I msgtyp -¤ÎÀäÂÐÃͰʲ¼¤ÇºÇ¤â¾®¤µ¤¤·¿¤ò»ý¤Ä¥­¥å¡¼¤ÎºÇ½é¤Î¥á¥Ã¥»¡¼¥¸¤¬Æɤ߹þ¤Þ¤ì¤ë¡£ +の絶対値以下で最も小さい型を持つキューの最初のメッセージが読み込まれる。 .PP .\"O The .\"O .I msgflg .\"O argument is a bit mask constructed by ORing together zero or more .\"O of the following flags: .I msgflg -°ú¤­¿ô¤Ë¤Ï¡¢°Ê²¼¤Î¥Õ¥é¥°¤òǤ°Õ¤Î¿ô¤À¤± (0¸Ä¤â²Ä)¡¢¤³¤ì¤é¤Î OR ¤Ç»ØÄꤹ¤ë: +引き数には、以下のフラグを任意の数だけ (0個も可)、これらの OR で指定する: .TP .B IPC_NOWAIT .\"O Return immediately if no message of the requested type is in the queue. @@ -396,12 +396,12 @@ struct msgbuf { .\"O .I errno .\"O set to .\"O .BR ENOMSG . -¥­¥å¡¼¤ËÍ׵ᤵ¤ì¤¿·¿¤Î¥á¥Ã¥»¡¼¥¸¤¬¤Ê¤¤¾ì¹ç¤Ë¤Ïľ¤Á¤ËÊ֤롣 -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¼ºÇÔ¤·¡¢ +キューに要求された型のメッセージがない場合には直ちに返る。 +システムコールは失敗し、 .I errno -¤Ë¤Ï +には .B ENOMSG -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .TP .B MSG_EXCEPT .\"O Used with @@ -410,89 +410,89 @@ struct msgbuf { .\"O to read the first message in the queue with message type that differs .\"O from .\"O .IR msgtyp . -0 ¤è¤êÂ礭¤Ê +0 より大きな .I msgtyp -¤È°ì½ï¤Ë»ÈÍѤ·¤Æ¡¢ +と一緒に使用して、 .I msgtyp -°Ê³°¤Î¥­¥å¡¼¤ÎºÇ½é¤Î¥á¥Ã¥»¡¼¥¸¤òÆɤ߹þ¤à¡£ +以外のキューの最初のメッセージを読み込む。 .TP .B MSG_NOERROR .\"O To truncate the message text if longer than .\"O .I msgsz .\"O bytes. .I msgsz -¥Ð¥¤¥È¤è¤ê¤âŤ«¤Ã¤¿¾ì¹ç¤Ï¥á¥Ã¥»¡¼¥¸¤Î¥Æ¥­¥¹¥È¤òÀÚ¤êµÍ¤á¤ë¡£ +バイトよりも長かった場合はメッセージのテキストを切り詰める。 .PP .\"O If no message of the requested type is available and .\"O .B IPC_NOWAIT .\"O isn't specified in .\"O .IR msgflg , .\"O the calling process is blocked until one of the following conditions occurs: -Í׵ᤵ¤ì¤¿·¿¤Î¥á¥Ã¥»¡¼¥¸¤¬Â¸ºß¤»¤º¡¢ +要求された型のメッセージが存在せず、 .I msgflg -¤Ë +に .B IPC_NOWAIT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ï -°Ê²¼¤Î¤¤¤º¤ì¤«¤Î¾õ¶·¤Ë¤Ê¤ë¤Þ¤ÇÄä»ß (block) ¤µ¤ì¤ë: +が指定されていなかった場合、呼び出し元プロセスは +以下のいずれかの状況になるまで停止 (block) される: .IP * 2 .\"O A message of the desired type is placed in the queue. -Í׵ᤷ¤Æ¤¤¤ë·¿¤Î¥á¥Ã¥»¡¼¥¸¤¬¥­¥å¡¼¤ØÆþ¤ì¤é¤ì¤¿¡£ +要求している型のメッセージがキューへ入れられた。 .IP * .\"O The message queue is removed from the system. .\"O In this case the system call fails with .\"O .I errno .\"O set to .\"O .BR EIDRM . -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬¥·¥¹¥Æ¥à¤«¤éºï½ü¤µ¤ì¤¿¡£ -¤³¤Î¾ì¹ç¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¼ºÇÔ¤·¡¢ +メッセージ・キューがシステムから削除された。 +この場合、システムコールは失敗し、 .I errno -¤Ë +に .B EIDRM -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .IP * .\"O The calling process catches a signal. .\"O In this case the system call fails with .\"O .I errno .\"O set to .\"O .BR EINTR . -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤òÊá³Í¤·¤¿¡£ -¤³¤Î¾ì¹ç¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¼ºÇÔ¤·¡¢ +呼び出し元プロセスがシグナルを捕獲した。 +この場合、システムコールは失敗し、 .I errno -¤Ë +に .B EINTR -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .\"O .RB ( msgrcv () .\"O is never automatically restarted after being interrupted by a .\"O signal handler, regardless of the setting of the .\"O .B SA_RESTART .\"O flag when establishing a signal handler.) .RB ( msgrcv () -¤Ï¡¢¤¿¤È¤¨¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ÎÀßÄê»þ¤Ë +は、たとえシグナルハンドラの設定時に .B SA_RESTART -¤ò»ØÄꤷ¤Æ¤¤¤¿¤È¤·¤Æ¤â¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿¸å¤Ç -¼«Æ°Åª¤ËºÆ¥¹¥¿¡¼¥È¤¹¤ë¤³¤È¤Ï·è¤·¤Æ¤Ê¤¤¡£) +を指定していたとしても、シグナルハンドラによって割り込まれた後で +自動的に再スタートすることは決してない。) .PP .\"O Upon successful completion the message queue data structure is updated .\"O as follows: -¼Â¹Ô¤ËÀ®¸ù¤·¤¿¾ì¹ç¡¢¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¥Ç¡¼¥¿¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤Ë -¹¹¿·¤µ¤ì¤ë: +実行に成功した場合、メッセージ・キューのデータ構造体は以下のように +更新される: .IP .\"O .I msg_lrpid .\"O is set to the process ID of the calling process. .I msg_lrpid -¤Ë¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤¬ÀßÄꤵ¤ì¤ë¡£ +には呼び出し元プロセスのプロセス ID が設定される。 .IP .\"O .I msg_qnum .\"O is decremented by 1. .I msg_qnum -¤Ï 1 ¸º»»¤µ¤ì¤ë¡£ +は 1 減算される。 .IP .\"O .I msg_rtime .\"O is set to the current time. .I msg_rtime -¤Ë¤Ï¸½ºß¤Î»þ¹ï¤¬ÀßÄꤵ¤ì¤ë¡£ +には現在の時刻が設定される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On failure both functions return \-1 .\"O with .\"O .I errno @@ -505,35 +505,35 @@ struct msgbuf { .\"O returns the number of bytes actually copied into the .\"O .I mtext .\"O array. -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¡¢¤É¤Á¤é¤Î´Ø¿ô¤â \-1 ¤òÊÖ¤·¡¢¥¨¥é¡¼¤ò +失敗した場合は、どちらの関数も \-1 を返し、エラーを .I errno -¤Ëɽ¼¨¤¹¤ë¡£À®¸ù¤·¤¿¾ì¹ç¡¢ +に表示する。成功した場合、 .BR msgsnd () -¤Ï 0 ¤òÊÖ¤·¡¢ +は 0 を返し、 .BR msgrcv () -¤Ï +は .I mtext -ÇÛÎó¤Ë¼ÂºÝ¤Ë¥³¥Ô¡¼¤·¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ +配列に実際にコピーしたバイト数を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O When .\"O .BR msgsnd () .\"O fails, .\"O .I errno .\"O will be set to one among the following values: .BR msgsnd () -¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +が失敗した場合、 .B errno -¤Ë°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«¤¬ÀßÄꤵ¤ì¤ë: +に以下の値のいずれかが設定される: .TP .B EACCES .\"O The calling process does not have write permission on the message queue, .\"O and does not have the .\"O .B CAP_IPC_OWNER .\"O capability. -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ËÂФ¹¤ë½ñ¤­¹þ¤ßµö²Ä¤¬¤Ê¤¯¡¢ +呼び出し元プロセスにはメッセージ・キューに対する書き込み許可がなく、 .B CAP_IPC_OWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤â¤Ê¤¤¡£ +ケーパビリティもない。 .TP .B EAGAIN .\"O The message can't be sent due to the @@ -543,27 +543,27 @@ struct msgbuf { .\"O was specified in .\"O .IR msgflg . .I msg_qbytes -¤¬¥­¥å¡¼¤ÎÀ©¸Â¤òĶ¤¨¤Æ¤¤¤¿¤¿¤á¡¢¥á¥Ã¥»¡¼¥¸¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤º¡¢¤«¤Ä +がキューの制限を超えていたため、メッセージを送ることができず、かつ .I msgflg -¤Ë +に .B IPC_NOWAIT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¡£ +が指定されていた。 .TP .B EFAULT .\"O The address pointed to by .\"O .I msgp .\"O isn't accessible. .I msgp -¤¬»Ø¤·¤Æ¤¤¤ë¥¢¥É¥ì¥¹¤¬¥¢¥¯¥»¥¹²Äǽ¤Ç¤Ê¤¤¡£ +が指しているアドレスがアクセス可能でない。 .TP .B EIDRM .\"O The message queue was removed. -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬ºï½ü¤µ¤ì¤¿¡£ +メッセージ・キューが削除された。 .TP .B EINTR .\"O Sleeping on a full message queue condition, the process caught a signal. -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬Í׵ᤷ¤¿¾ò·ï¤òËþ¤¿¤¹¤Þ¤ÇÄä»ß¤·¤Æ¤¤¤ë»þ¤Ë¡¢ -¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤òÊá³Í¤·¤¿¡£ +メッセージ・キューが要求した条件を満たすまで停止している時に、 +プロセスがシグナルを捕獲した。 .TP .B EINVAL .\"O Invalid @@ -576,20 +576,20 @@ struct msgbuf { .\"O value (less than 0 or greater than the system value .\"O .BR MSGMAX ). .I msqid -¤¬ÉÔŬÀÚ¤ÊÃͤǤ¢¤ë¤«¡¢ +が不適切な値であるか、 .I mtype -¤¬Àµ¤ÎÃͤǤʤ¤¤«¡¢ +が正の値でないか、 .I msgsz -¤¬ÉÔŬÀÚ¤ÊÃÍ (0 °Ê²¼¤«¡¢¥·¥¹¥Æ¥à¤Ç·è¤Þ¤ëÃÍ +が不適切な値 (0 以下か、システムで決まる値 .B MSGMAX -¤è¤ê¤âÂ礭¤¤ÃÍ) ¤Ç¤¢¤ë¡£ +よりも大きい値) である。 .TP .B ENOMEM .\"O The system does not have enough memory to make a copy of the .\"O message pointed to by .\"O .IR msgp . .I msgp -¤¬»Ø¤¹¥á¥Ã¥»¡¼¥¸¤Î¥³¥Ô¡¼¤òºîÀ®¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¥·¥¹¥Æ¥à¤Ë¸ºß¤·¤Ê¤¤¡£ +が指すメッセージのコピーを作成するのに十分なメモリがシステムに存在しない。 .PP .\"O When .\"O .BR msgrcv () @@ -597,9 +597,9 @@ struct msgbuf { .\"O .I errno .\"O will be set to one among the following values: .BR msgrcv () -¤¬¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï +が失敗した場合には .I errno -¤Ë°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«¤¬ÀßÄꤵ¤ì¤ë: +に以下の値のいずれかが設定される: .TP .B E2BIG .\"O The message text length is greater than @@ -608,55 +608,55 @@ struct msgbuf { .\"O .B MSG_NOERROR .\"O isn't specified in .\"O .IR msgflg . -¥á¥Ã¥»¡¼¥¸¤Î¥Æ¥­¥¹¥È¤ÎŤµ¤¬ +メッセージのテキストの長さが .I msgsz -¤è¤ê¤âÂ礭¤¯¡¢ +よりも大きく、 .I msgflg -¤Ë +に .B MSG_NOERROR -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +が設定されていなかった。 .TP .B EACCES .\"O The calling process does not have read permission on the message queue, .\"O and does not have the .\"O .B CAP_IPC_OWNER .\"O capability. -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ËÂФ¹¤ëÆɤ߹þ¤ßµö²Ä¤¬¤Ê¤¯¡¢ +呼び出し元プロセスにはメッセージ・キューに対する読み込み許可がなく、 .B CAP_IPC_OWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤â¤Ê¤¤¡£ +ケーパビリティもない。 .TP .B EAGAIN .\"O No message was available in the queue and .\"O .B IPC_NOWAIT .\"O was specified in .\"O .IR msgflg . -¥­¥å¡¼¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¤¬¤Ê¤¯¡¢ +キューにはメッセージがなく、 .I msgflg -¤Ë +に .B IPC_NOWAIT -¤¬»ØÄꤵ¤ì¤¿¡£ +が指定された。 .TP .B EFAULT .\"O The address pointed to by .\"O .I msgp .\"O isn't accessible. .I msgp -¤¬»Ø¤·¤Æ¤¤¤ë¥¢¥É¥ì¥¹¤¬¥¢¥¯¥»¥¹²Äǽ¤Ç¤Ê¤¤¡£ +が指しているアドレスがアクセス可能でない。 .TP .B EIDRM .\"O While the process was sleeping to receive a message, .\"O the message queue was removed. -¥á¥Ã¥»¡¼¥¸¤ò¼õ¿®¤¹¤ë¤¿¤á¤Ë¥×¥í¥»¥¹¤¬Ää»ß¤·¤Æ¤¤¤ë´Ö¤Ë¡¢ -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬ºï½ü¤µ¤ì¤¿¡£ +メッセージを受信するためにプロセスが停止している間に、 +メッセージ・キューが削除された。 .TP .B EINTR .\"O While the process was sleeping to receive a message, .\"O the process caught a signal; see .\"O .BR signal (7). -¥á¥Ã¥»¡¼¥¸¤ò¼õ¤±¤ë¤¿¤á¤Ë¥×¥í¥»¥¹¤¬Ää»ß¤·¤Æ¤¤¤ë´Ö¤Ë¡¢ -¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤òÊá³Í¤·¤¿¡£ +メッセージを受けるためにプロセスが停止している間に、 +プロセスがシグナルを捕獲した。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .\"O .I msgqid @@ -664,9 +664,9 @@ struct msgbuf { .\"O .I msgsz .\"O was less than 0. .I msgqid -¤¬ÉÔÀµ¤«¡¢ +が不正か、 .I msgsz -¤¬ 0 ¤è¤ê¾®¤µ¤¤¡£ +が 0 より小さい。 .TP .B ENOMSG .\"O .B IPC_NOWAIT @@ -674,15 +674,15 @@ struct msgbuf { .\"O .I msgflg .\"O and no message of the requested type existed on the message queue. .I msgflg -¤Ë +に .B IPC_NOWAIT -¤¬ÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢ -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ËÍ׵ᤵ¤ì¤¿·¿¤Î¥á¥Ã¥»¡¼¥¸¤¬Â¸ºß¤·¤Ê¤«¤Ã¤¿¡£ +が設定されており、 +メッセージ・キューに要求された型のメッセージが存在しなかった。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The .\"O .I msgp .\"O argument is declared as \fIstruct msgbuf *\fP with @@ -690,25 +690,25 @@ SVr4, POSIX.1-2001. .\"O It is declared as \fIvoid *\fP .\"O with glibc 2.2 and later, as required by SUSv2 and SUSv3. .I msgp -°ú¤­¿ô¤Ï¡¢ libc4, libc5, glibc 2.0, glibc 2.1 ¤Ç¤Ï -\fIstruct msgbuf *\fP ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤ë¡£glibc 2.2 °Ê¹ß¤Ç¤Ï¡¢ -SUSv2 ¤È SUSv3 ¤ÎÍ×µáÄ̤ꡢ\fIvoid *\fP ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤ë¡£ +引き数は、 libc4, libc5, glibc 2.0, glibc 2.1 では +\fIstruct msgbuf *\fP と宣言されている。glibc 2.2 以降では、 +SUSv2 と SUSv3 の要求通り、\fIvoid *\fP と宣言されている。 .\"O The following limits on message queue resources affect the .\"O .BR msgsnd () .\"O call: -°Ê²¼¤Ï +以下は .B msgsnd -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë±Æ¶Á¤¹¤ë¥·¥¹¥Æ¥àÀ©¸Â¤Ç¤¢¤ë: +システムコールに影響するシステム制限である: .TP .B MSGMAX .\"O Maximum size for a message text: 8192 bytes .\"O (on Linux, this limit can be read and modified via .\"O .IR /proc/sys/kernel/msgmax ). -¥á¥Ã¥»¡¼¥¸¤Î¥Æ¥­¥¹¥È¤ÎºÇÂ祵¥¤¥º: 8192 ¥Ð¥¤¥È -(Linux ¤Ç¤Ï¡¢¤³¤ÎÀ©¸ÂÃÍ¤Ï +メッセージのテキストの最大サイズ: 8192 バイト +(Linux では、この制限値は .I /proc/sys/kernel/msgmax -·Ðͳ¤ÇÆɤ߽Ф·¤¿¤êÊѹ¹¤·¤¿¤ê¤Ç¤­¤ë)¡£ +経由で読み出したり変更したりできる)。 .TP .B MSGMNB .\"O Default maximum size in bytes of a message queue: 16384 bytes @@ -719,28 +719,28 @@ SUSv2 .\"O by a .\"O .BR msgctl (2) .\"O system call. -¥Ð¥¤¥Èñ°Ì¤Ç¤Î¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¥Ç¥Õ¥©¥ë¥È¤ÎºÇÂ祵¥¤¥º : 16384 ¥Ð¥¤¥È¡£ -(Linux ¤Ç¤Ï¡¢¤³¤ÎÀ©¸ÂÃÍ¤Ï +バイト単位でのメッセージ・キューのデフォルトの最大サイズ : 16384 バイト。 +(Linux では、この制限値は .I /proc/sys/kernel/msgmnb -·Ðͳ¤ÇÆɤ߽Ф·¤¿¤êÊѹ¹¤·¤¿¤ê¤Ç¤­¤ë)¡£ -¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¤Ï +経由で読み出したり変更したりできる)。 +スーパーユーザーは .BR msgctl (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¥µ¥¤¥º¤ò +システムコールでメッセージ・キューのサイズを .B MSGMNB -¤è¤ê¤âÂ礭¤¤ÃͤËÁý¤ä¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +よりも大きい値に増やすことができる。 .PP .\"O The implementation has no intrinsic limits for the system wide maximum .\"O number of message headers .\"O .RB ( MSGTQL ) .\"O and for the system wide maximum size in bytes of the message pool .\"O .RB ( MSGPOOL ). -¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¡¢¥·¥¹¥Æ¥àÁ´ÂΤΥá¥Ã¥»¡¼¥¸¡¦¥Ø¥Ã¥À¡¼¤ÎºÇÂç¿ô +現在の実装では、システム全体のメッセージ・ヘッダーの最大数 .RB ( MSGTQL ) -¤È¡¢¥·¥¹¥Æ¥àÁ´ÂΤΥá¥Ã¥»¡¼¥¸¡¦¥×¡¼¥ë¤ÎºÇÂç¥Ð¥¤¥È¿ô +と、システム全体のメッセージ・プールの最大バイト数 .RB ( MSGPOOL ) -¤Ë´Ø¤·¤Æ¼ÂÁõ°Í¸¤ÎÀ©¸Â¤Ï¤Ê¤¤¡£ +に関して実装依存の制限はない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR msgctl (2), .BR msgget (2), .BR capabilities (7), diff --git a/draft/man2/msync.2 b/draft/man2/msync.2 index 6f1a6432..95291fa0 100644 --- a/draft/man2/msync.2 +++ b/draft/man2/msync.2 @@ -30,20 +30,20 @@ .\" by Suzuki Takashi. .\" Updated 2007-01-01 by Kentaro Shirakata .\" -.\"WORD: in-core ¥á¥â¥ê¾å¤Î +.\"WORD: in-core メモリ上の .\" .TH MSYNC 2 2008-04-22 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O msync \- synchronize a file with a memory map -msync \- ¥Õ¥¡¥¤¥ë¤ò¥Þ¥Ã¥×¤·¤¿¥á¥â¥ê¤ÈƱ´ü¤µ¤»¤ë +msync \- ファイルをマップしたメモリと同期させる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int msync(void *" addr ", size_t " length ", int " flags ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR msync () .\"O flushes changes made to the in-core copy of a file that was mapped .\"O into memory using @@ -60,18 +60,18 @@ msync \- .\"O .I length .\"O is updated. .BR msync () -¤Ï +は .BR mmap (2) -¤ò»È¤Ã¤Æ¥á¥â¥ê¤Ë¥Þ¥Ã¥×¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¡¢ -¥á¥â¥ê¾å¤Î¥³¥Ô¡¼¤Ë¤Ê¤µ¤ì¤¿Êѹ¹¤ò¥Ç¥£¥¹¥¯¤ËÈ¿±Ç¤µ¤»¤ë¡£ -¤³¤Î´Ø¿ô¤ò»ÈÍѤ·¤Ê¤¤¤È¡¢ +を使ってメモリにマップされたファイルの、 +メモリ上のコピーになされた変更をディスクに反映させる。 +この関数を使用しないと、 .BR munmap (2) -¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤Þ¤ÇÊѹ¹¤¬½ñ¤­Ìᤵ¤ì¤ëÊݾڤϤʤ¤¡£ -¤è¤êÀµ³Î¤Ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤Î¤¦¤Á +が呼び出されるまで変更が書き戻される保証はない。 +より正確には、ファイルのうち .I addr -¤«¤é»Ï¤Þ¤êŤµ +から始まり長さ .I length -¤Î¥á¥â¥êÎΰè¤ËÂбþ¤¹¤ëÉôʬ¤¬¹¹¿·¤µ¤ì¤ë¡£ +のメモリ領域に対応する部分が更新される。 .\"O The .\"O .I flags @@ -85,41 +85,41 @@ msync \- .\"O and .\"O .BR MS_SYNC . .I flags -°ú¿ô¤Ë¤Ï¥Ó¥Ã¥È +引数にはビット .BR MS_ASYNC , .BR MS_SYNC , .B MS_INVALIDATE -¤òÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¤¬¡¢ +を設定することができるが、 .B MS_ASYNC -¤È +と .B MS_SYNC -¤òƱ»þ¤Ë»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +を同時に指定することはできない。 .\"O .B MS_ASYNC .\"O specifies that an update be scheduled, but the call .\"O returns immediately. .B MS_ASYNC -¤Ï¹¹¿·¤òͽÄê¤ËÁȤ߹þ¤à¤³¤È¤òɽ¤·¡¢¸Æ¤Ó½Ð¤·¤Ïľ¤Á¤ËÊ֤롣 +は更新を予定に組み込むことを表し、呼び出しは直ちに返る。 .\"O .B MS_SYNC .\"O asks for an update and waits for it to complete. .B MS_SYNC -¤Ï¹¹¿·¤òÍ׵ᤷ¡¢¹¹¿·¤¬´°Î»¤¹¤ë¤Þ¤ÇÂԤġ£ +は更新を要求し、更新が完了するまで待つ。 .\"O .B MS_INVALIDATE .\"O asks to invalidate other mappings of the same file .\"O (so that they can be updated with the fresh values just written). .B MS_INVALIDATE -¤Ï(¤¿¤Ã¤¿º£½ñ¤­¹þ¤ó¤À¿·¤·¤¤Ãͤǥޥåԥ󥰤ò¹¹¿·¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë) -Ʊ¤¸¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¾¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤òÍ׵᤹¤ë¡£ +は(たった今書き込んだ新しい値でマッピングを更新することができるように) +同じファイルに対する他のマッピングを無効にすることを要求する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢ 0 ¤¬Ê֤롣¥¨¥é¡¼¤Î¾ì¹ç¡¢ \-1 ¤¬Ê֤ꡢ +成功した場合、 0 が返る。エラーの場合、 \-1 が返り、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBUSY .\"O .B MS_INVALIDATE @@ -127,9 +127,9 @@ msync \- .\"O .IR flags , .\"O and a memory lock exists for the specified address range. I flags -¤Ë +に .B MS_INVALIDATE -¤¬»ØÄꤵ¤ì¤¿¤¬¡¢»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹ÈϰϤ˥í¥Ã¥¯¤¬Â¸ºß¤¹¤ë¡£ +が指定されたが、指定されたアドレス範囲にロックが存在する。 .TP .B EINVAL .\"O .I addr @@ -144,24 +144,24 @@ I flags .\"O are set in .\"O .IR flags . .I addr -¤¬ PAGESIZE ¤ÎÇÜ¿ô¤Ç¤Ê¤¤¡£¤Þ¤¿¤Ï¡¢ +が PAGESIZE の倍数でない。または、 .I flags -¤Ë -.BR MS_ASYNC ¡¢ MS_INVALIDATE ¡¢ MS_SYNC -°Ê³°¤Î¥Ó¥Ã¥È¤¬ÀßÄꤵ¤ì¤¿¡£ -¤Þ¤¿¤Ï¡¢ +に +.BR MS_ASYNC 、 MS_INVALIDATE 、 MS_SYNC +以外のビットが設定された。 +または、 .I flags -¤Ë +に .B MS_SYNC -¤È +と .B MS_ASYNC -¤ÎξÊý¤¬ÀßÄꤵ¤ì¤¿¡£ +の両方が設定された。 .TP .B ENOMEM .\"O The indicated memory (or part of it) was not mapped. -»ØÄꤵ¤ì¤¿¥á¥â¥ê (¤Þ¤¿¤Ï¤½¤Î°ìÉô) ¤¬¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +指定されたメモリ (またはその一部) がマップされていない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O This call was introduced in Linux 1.3.21, and then used @@ -170,16 +170,16 @@ POSIX.1-2001. .\"O .BR ENOMEM . .\"O In Linux 2.4.19 this was changed to the POSIX value .\"O .BR ENOMEM . -¤³¤Î´Ø¿ô¤Ï Linux 1.3.21 ¤ÇƳÆþ¤µ¤ì¤¿¤¬¡¢ +この関数は Linux 1.3.21 で導入されたが、 .B ENOMEM -¤Ç¤Ï¤Ê¤¯ +ではなく .B EFAULT -¤¬»È¤ï¤ì¤Æ¤¤¤¿¡£ -¤³¤ì¤Ï Linux 2.4.19 ¤Ç POSIX ¤Ë¤ª¤±¤ëÃÍ +が使われていた。 +これは Linux 2.4.19 で POSIX における値 .B ENOMEM -¤ËÊѹ¹¤µ¤ì¤¿¡£ +に変更された。 .\"O .SH AVAILABILITY -.SH ²ÄÍÑÀ­ +.SH 可用性 .\"O On POSIX systems on which .\"O .BR msync () .\"O is available, both @@ -190,21 +190,21 @@ POSIX.1-2001. .\"O (See also .\"O .BR sysconf (3).) .BR msync () -¤¬»ÈÍѲÄǽ¤Ê POSIX ¥·¥¹¥Æ¥à¤Ç¤Ï +が使用可能な POSIX システムでは .B _POSIX_MAPPED_FILES -¤È +と .B _POSIX_SYNCHRONIZED_IO -¤ÎξÊý¤¬ \fI\fP ¤Ç 0 ¤è¤êÂ礭¤¤ÃͤËÄêµÁ¤µ¤ì¤ë¡£ +の両方が \fI\fP で 0 より大きい値に定義される。 .RB ( sysconf (3) -¤ò»²¾È¤¹¤ë¤³¤È¡£ ) +を参照すること。 ) .\"O .\" POSIX.1-2001: It shall be defined to -1 or 0 or 200112L. .\"O .\" -1: unavailable, 0: ask using sysconf(). .\"O .\" glibc defines them to 1. -.\" POSIX.1-2001: ¤³¤ì¤é¤ÎÃÍ¤Ï -1 ¤Þ¤¿¤Ï 0 ¤Þ¤¿¤Ï 200112L ¤ÈÄêµÁ¤µ¤ì¤ë¡£ -.\" -1 ¤Ï»ÈÍÑÉÔ²Äǽ¡¢ 0 ¤Ï sysconf() ¤ËÌ䤤¹ç¤ï¤»¤ë -.\" glibc ¤Ç¤Ï 1 ¤ÈÄêµÁ¤·¤Æ¤¤¤ë¡£ +.\" POSIX.1-2001: これらの値は -1 または 0 または 200112L と定義される。 +.\" -1 は使用不可能、 0 は sysconf() に問い合わせる +.\" glibc では 1 と定義している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mmap (2) .br B.O. Gallmeister, POSIX.4, O'Reilly, pp. 128-129 and 389-391. diff --git a/draft/man2/nanosleep.2 b/draft/man2/nanosleep.2 index 5c4d6c1c..e91e5837 100644 --- a/draft/man2/nanosleep.2 +++ b/draft/man2/nanosleep.2 @@ -43,23 +43,23 @@ .\" Updated 2006-08-13, Akihiro MOTOKI, LDP v2.39 .\" Updated 2008-08-08, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: puase Ää»ß -.\"WORD: sleep Ää»ß -.\"WORD: signal ¥·¥°¥Ê¥ë +.\"WORD: puase 停止 +.\"WORD: sleep 停止 +.\"WORD: signal シグナル .\"WORD: NULL NULL -.\"WORD: block ¶Ø»ß(block) -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: real-time ¥ê¥¢¥ë¡¦¥¿¥¤¥à -.\"WORD: schedule ¥¹¥±¥¸¥å¡¼¥ë -.\"WORD: busy wait ¥Ó¥·¡¼¡¦¥¦¥§¥¤¥È +.\"WORD: block 禁止(block) +.\"WORD: kernel カーネル +.\"WORD: real-time リアル・タイム +.\"WORD: schedule スケジュール +.\"WORD: busy wait ビシー・ウェイト .\" .TH NANOSLEEP 2 2009-01-19 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O nanosleep \- high-resolution sleep -nanosleep \- ¹âÀºÅ٤ʥ¹¥ê¡¼¥× +nanosleep \- 高精度なスリープ .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int nanosleep(const struct timespec *" req ", struct timespec *" rem ); @@ -67,15 +67,15 @@ nanosleep \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR nanosleep (): _POSIX_C_SOURCE\ >=\ 199309L .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR nanosleep () .\"O suspends the execution of the calling thread .\"O until either at least the time specified in @@ -84,16 +84,16 @@ _POSIX_C_SOURCE\ >=\ 199309L .\"O that triggers the invocation of a handler in the calling thread or .\"O that terminates the process. .BR nanosleep () -¤Ï¡¢¾¯¤Ê¤¯¤È¤â +は、少なくとも .I *req -¤Ç»ØÄꤵ¤ì¤¿»þ´Ö¤Î´Ö¡¢¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤òÃٱ䤵¤»¤ë¡£ +で指定された時間の間、プログラムの実行を遅延させる。 .BR nanosleep () -¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î¼Â¹Ô¤ò¡¢ -¾¯¤Ê¤¯¤È¤â +は、呼び出したスレッドの実行を、 +少なくとも .I *req -¤Ç»ØÄꤵ¤ì¤¿»þ´Ö¤Î´Ö¡¢¤â¤·¤¯¤Ï¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Ç¥Ï¥ó¥É¥é¤Îµ¯Æ°¤Î -¤­¤Ã¤«¤±¤È¤Ê¤ë¥·¥°¥Ê¥ë¡¢¤Þ¤¿¤Ï¥×¥í¥»¥¹¤ò½ªÎ»¤µ¤»¤ë¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤¬ -¹Ô¤ï¤ì¤ë¤Þ¤Ç°ì»þÄä»ß¤¹¤ë¡£ +で指定された時間の間、もしくは呼び出したスレッドでハンドラの起動の +きっかけとなるシグナル、またはプロセスを終了させるシグナルの配送が +行われるまで一時停止する。 .\"O If the call is interrupted by a signal handler, .\"O .BR nanosleep () @@ -104,50 +104,50 @@ _POSIX_C_SOURCE\ >=\ 199309L .\"O unless .\"O .I rem .\"O is NULL. -¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¾ì¹ç¡¢ +呼び出しがシグナルハンドラにより割り込まれた場合、 .BR nanosleep -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤Ë +に .B EINTR -¤òÀßÄꤷ¡¢ +を設定し、 .I rem -¤¬ NULL ¤Ç¤Ê¤±¤ì¤Ð -»Ä¤ê¤Î»þ´Ö¤ò +が NULL でなければ +残りの時間を .I rem -¤¬»Ø¤¹¹½Â¤ÂΤ˳ÊǼ¤¹¤ë¡£ +が指す構造体に格納する。 .\"O The value of .\"O .I *rem .\"O can then be used to call .\"O .BR nanosleep () .\"O again and complete the specified pause (but see NOTES). .I *rem -¤ÎÃͤò»È¤¦¤È¡¢ +の値を使うと、 .BR nanosleep () -¤ò¤â¤¦°ìÅٸƤӽФ·¤Æ¡¢»ØÄꤷ¤¿»þ´Ö¤ÎÄä»ß¤ò -´°Î»¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë (⤷¡¢¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¤Î¤³¤È)¡£ +をもう一度呼び出して、指定した時間の停止を +完了させることができる (但し、「注意」の節を参照のこと)。 .\"O The structure .\"O .I timespec .\"O is used to specify intervals of time with nanosecond precision. .\"O It is defined as follows: -¥Ê¥ÎÉùï¤ß¤Î»þ´Ö´Ö³Ö¤ò»ØÄꤹ¤ë¤Î¤Ë +ナノ秒刻みの時間間隔を指定するのに .I timespec -¹½Â¤ÂΤ¬»ÈÍѤµ¤ì¤ë¡£¤³¤Î¹½Â¤ÂΤϼ¡¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +構造体が使用される。この構造体は次のように定義されている。 .sp .in +4n .nf .\"O struct timespec { .\"O time_t tv_sec; /* seconds */ .\"O long tv_nsec; /* nanoseconds */ - time_t tv_sec; /* Éà */ - long tv_nsec; /* ¥Ê¥ÎÉà */ + time_t tv_sec; /* 秒 */ + long tv_nsec; /* ナノ秒 */ }; .fi .in .PP .\"O The value of the nanoseconds field must be in the range 0 to 999999999. -¥Ê¥ÎÉäΥե£¡¼¥ë¥É¤ÎÃÍ¤Ï 0 ¤«¤é 999999999 ¤ÎÈϰϤˤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ナノ秒のフィールドの値は 0 から 999999999 の範囲になければならない。 .\"O Compared to .\"O .BR sleep (3) @@ -161,18 +161,18 @@ _POSIX_C_SOURCE\ >=\ 199309L .\"O and it makes the task of resuming a sleep that has been .\"O interrupted by a signal handler easier. .BR sleep (3) -¤ä +や .BR usleep (3) -¤ËÈæ¤Ù¤ë¤È +に比べると .BR nanosleep () -¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤ÊÍøÅÀ¤¬¤¢¤ë: -Ää»ß´ü´Ö¤Î»ØÄê¤Ë´Ø¤·¤Æ¹â¤¤»þ´Öʬ²òǽ¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¡£ -¥·¥°¥Ê¥ë¤È¸ß¤¤¤Ë±Æ¶Á¤òµÚ¤Ü¤¹¤³¤È¤¬¤Ê¤¤¤È -POSIX.1 ¤ÇÌÀ¼¨Åª¤Ëµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿ºÝ¤Ë¡¢Ää»ß¤òºÆ³«¤¹¤ë¤Î¤¬ -¤è¤ê´Êñ¤Ë¤Ç¤­¤ë¡£ +には以下のような利点がある: +停止期間の指定に関して高い時間分解能が提供されている。 +シグナルと互いに影響を及ぼすことがないと +POSIX.1 で明示的に規定されている。 +シグナルハンドラによって割り込まれた際に、停止を再開するのが +より簡単にできる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On successfully sleeping for the requested interval, .\"O .BR nanosleep () .\"O returns 0. @@ -180,18 +180,18 @@ POSIX.1 .\"O then it returns \-1, with .\"O .I errno .\"O set to indicate the error. -Í׵ᤵ¤ì¤¿´ü´Ö¤ÎÄä»ß¤ËÀ®¸ù¤·¤¿¾ì¹ç¡¢ +要求された期間の停止に成功した場合、 .BR nanosleep () -¤Ï 0 ¤òÊÖ¤¹¡£¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¤ê¡¢ -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。呼び出しがシグナルハンドラにより割り込まれたり、 +エラーが発生した場合は、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼ÆâÍƤò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラー内容を示す値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O Problem with copying information from user space. -¥æ¡¼¥¶¶õ´Ö¤«¤é¤Î¾ðÊó¤Î¥³¥Ô¡¼¤ÇÌäÂ꤬¤¢¤Ã¤¿¡£ +ユーザ空間からの情報のコピーで問題があった。 .TP .B EINTR .\"O The pause has been interrupted by a signal that was @@ -200,11 +200,11 @@ POSIX.1 .\"O into \fI*rem\fP so that the thread can easily call .\"O .BR nanosleep () .\"O again and continue with the pause. -¤½¤Î¥¹¥ì¥Ã¥É¤ËÇÛÁ÷¤µ¤ì¤¿¥·¥°¥Ê¥ë¤Ë¤è¤êÄä»ß¤¬ÃæÃǤµ¤ì¤¿¡£ -¥¹¥ì¥Ã¥É¤¬´Êñ¤Ë +そのスレッドに配送されたシグナルにより停止が中断された。 +スレッドが簡単に .BR nanosleep () -¤òºÆ¤Ó¸Æ¤Ó½Ð¤·¤ÆÄä»ß¤ò³¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¡¢ -»Ä¤ê¤ÎÄä»ß»þ´Ö¤¬ \fI*rem\fP ¤Ë³ÊǼ¤µ¤ì¤ë¡£ +を再び呼び出して停止を続けることができるように、 +残りの停止時間が \fI*rem\fP に格納される。 .TP .B EINVAL .\"O The value in the @@ -213,14 +213,14 @@ POSIX.1 .\"O .I tv_sec .\"O was negative. .I tv_nsec -¥Õ¥£¡¼¥ë¥É¤ÎÃͤ¬ 0 ¤«¤é 999999999 ¤Þ¤Ç¤ÎÈϰϤˤʤ«¤Ã¤¿¤«¡¢ +フィールドの値が 0 から 999999999 までの範囲になかったか、 .I tv_sec -¤¬Éé¤Ç¤¢¤Ã¤¿¡£ +が負であった。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O If the interval specified in .\"O .I req .\"O is not an exact multiple of the granularity underlying clock (see @@ -229,10 +229,10 @@ POSIX.1-2001. .\"O Furthermore, after the sleep completes, there may still be a delay before .\"O the CPU becomes free to once again execute the calling thread. .I req -¤Ç»ØÄꤵ¤ì¤¿´ü´Ö¤¬¡¢ÆâÉô¤Ç»ÈÍѤµ¤ì¤ë¥¯¥í¥Ã¥¯¤ÎγÅÙ¤ÎÇÜ¿ô¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤ -¾ì¹ç¡¢´ü´Ö¤Ï°ìÈֶᤤÇÜ¿ô¤ËÀÚ¤ê¾å¤²¤é¤ì¤ë¡£ -¤Þ¤¿¡¢Ää»ß¤¬´°Î»¤·¤¿¸å¡¢CPU ¤¬¸Æ¤Ó½Ð¤·¸µ¤Î¥¹¥ì¥Ã¥É¤òºÆ¤Ó¼Â¹Ô¤Ç¤­¤ë¤è¤¦¤Ë -¤Ê¤ë¤Þ¤Ç¤Ë¤ÏÃٱ䤬Æþ¤ë¡£ +で指定された期間が、内部で使用されるクロックの粒度の倍数になっていない +場合、期間は一番近い倍数に切り上げられる。 +また、停止が完了した後、CPU が呼び出し元のスレッドを再び実行できるように +なるまでには遅延が入る。 .\"O The fact that .\"O .BR nanosleep () @@ -243,14 +243,14 @@ POSIX.1-2001. .\"O This problem can be avoided by using .\"O .BR clock_nanosleep (2) .\"O with an absolute time value. -¥·¥°¥Ê¥ë¤Ë¤è¤ë³ä¤ê¹þ¤ß¸å¤Ë·«¤êÊÖ¤·ºÆ³«¤µ¤ì¤¿¾ì¹ç¡¢ +シグナルによる割り込み後に繰り返し再開された場合、 .BR nanosleep () -¤ÎÄä»ß¤¬ÁêÂÐŪ¤Ê´ü´Ö¤Ç¤¢¤ë¤³¤È¤ÏÌäÂê¤È¤Ê¤ë¤³¤È¤¬¤¢¤ë¡£ -¤³¤ì¤Ï¡¢¸Æ¤Ó½Ð¤·¤Î³ä¤ê¹þ¤ß¤«¤éºÆ³«¤Þ¤Ç¤Î´Ö¤Î»þ´Ö¤¬¸¶°ø¤Ç -Ää»ß¤¬ºÇ½ªÅª¤Ë´°Î»¤·¤¿ºÝ¤Ë»þ´Ö¤Ë¤º¤ì¤¬È¯À¸¤¹¤ë¤«¤é¤Ç¤¢¤ë¡£ -¤³¤ÎÌäÂê¤Ï¡¢ÀäÂлþ¹ï¤¬»ØÄê¤Ç¤­¤ë +の停止が相対的な期間であることは問題となることがある。 +これは、呼び出しの割り込みから再開までの間の時間が原因で +停止が最終的に完了した際に時間にずれが発生するからである。 +この問題は、絶対時刻が指定できる .BR clock_nanosleep (2) -¤ò»È¤¦¤³¤È¤Ç²óÈò¤Ç¤­¤ë¡£ +を使うことで回避できる。 .\"O POSIX.1 specifies that .\"O .BR nanosleep () @@ -260,14 +260,14 @@ POSIX.1-2001. .\"O However, Linux measures the time using the .\"O .B CLOCK_MONOTONIC .\"O clock. -POSIX.1 ¤Ï¡¢ +POSIX.1 は、 .BR nanosleep () -¤Ï +は .B CLOCK_REALTIME -¤ËÂФ·¤Æ»þ¹ï¤ò·×¬¤¹¤ë¤Ù¤­¤À¤Èµ¬Äꤷ¤Æ¤¤¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢Linux ¤Ï +に対して時刻を計測するべきだと規定している。 +しかしながら、Linux は .B CLOCK_MONOTONIC -¥¯¥í¥Ã¥¯¤òÍѤ¤¤Æ»þ¹ï¤ò·×¬¤·¤Æ¤¤¤ë¡£ +クロックを用いて時刻を計測している。 .\" See also http://thread.gmane.org/gmane.linux.kernel/696854/ .\" Subject: nanosleep() uses CLOCK_MONOTONIC, should be CLOCK_REALTIME? .\" Date: 2008-06-22 07:35:41 GMT @@ -277,14 +277,14 @@ POSIX.1 .\"O .B CLOCK_REALTIME .\"O should not affect .\"O .BR nanosleep (): -¤³¤Î¤³¤È¤Ï¤ª¤½¤é¤¯ÌäÂê¤Ë¤Ê¤é¤Ê¤¤¤À¤í¤¦¡£ -¤Ê¤¼¤Ê¤é¡¢POSIX.1 ¤Î +このことはおそらく問題にならないだろう。 +なぜなら、POSIX.1 の .BR clock_settime (2) -¤Î»ÅÍͤˤϡ¢ +の仕様には、 .B CLOCK_REALTIME -¤ÎÉÔϢ³¤ÊÊѲ½¤Ï +の不連続な変化は .BR nanosleep () -¤Ë±Æ¶Á¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡¢¤È½ñ¤«¤ì¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£ +に影響すべきではない、と書かれているからである。 .RS .PP .\"O Setting the value of the @@ -299,18 +299,18 @@ POSIX.1 .\"O Consequently, these time services shall expire when the requested relative .\"O interval elapses, independently of the new or old value of the clock. .BR clock_settime (2) -·Ðͳ¤Ç +経由で .B CLOCK_REALTIME -¥¯¥í¥Ã¥¯¤ÎÃͤòÀßÄꤷ¤Æ¤â¡¢ +クロックの値を設定しても、 .BR nanosleep () -´Ø¿ô¤Ê¤É¤Î +関数などの .B CLOCK_REALTIME -¤Ë´ð¤Å¤¯¥µ¡¼¥Ó¥¹¤Ë¤è¤êÁêÂÐŪ¤Ê´ü´Ö¤À¤±¼Â¹Ô¤òÄä»ß¤¹¤ë¥¹¥ì¥Ã¥É¤Ë¤Ï±Æ¶Á¤Ï¤Ê¤¤¡£ -·ë²Ì¤È¤·¤Æ¡¢¥¯¥í¥Ã¥¯Ãͤ¬¹¹¿·Á°¤«¸å¤«¤Ë´Ø¤ï¤é¤º¡¢Í׵ᤵ¤ì¤¿ÁêÂÐŪ¤Ê»þ´Ö¤¬ -·Ð²á¤¹¤ë¤ÈËþλ¤¹¤ë¤³¤È¤Ë¤Ê¤ë¡£ +に基づくサービスにより相対的な期間だけ実行を停止するスレッドには影響はない。 +結果として、クロック値が更新前か後かに関わらず、要求された相対的な時間が +経過すると満了することになる。 .RE .\"O .SS "Old behavior" -.SS °ÊÁ°¤ÎÆ°ºî +.SS 以前の動作 .\"O In order to support applications requiring much more precise pauses .\"O (e.g., in order to control some time-critical hardware), .\"O .BR nanosleep () @@ -323,22 +323,22 @@ POSIX.1 .\"O This special extension was removed in kernel 2.5.39, .\"O hence is still present in .\"O current 2.4 kernels, but not in 2.6 kernels. -(Î㤨¤Ð¡¢»þ´Ö¤¬½ÅÍפʰÕÌ£¤ò»ý¤Ä¥Ï¡¼¥É¥¦¥§¥¢¤òÀ©¸æ¤¹¤ë¾ì¹ç¤Ê¤É) -¤è¤êÀµ³Î¤ÊÄä»ß¤òɬÍפȤ¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ËÂбþ¤¹¤ë¤¿¤á¤Ë¡¢ +(例えば、時間が重要な意味を持つハードウェアを制御する場合など) +より正確な停止を必要とするアプリケーションに対応するために、 .BR nanosleep () -¤Ï¡¢¥Þ¥¤¥¯¥íÉÃÀºÅ٤Υӥ¸¡¼¡¦¥¦¥§¥¤¥È¤òÍøÍѤ¹¤ë¤³¤È¤Ç¡¢ -2\ ms °Ê²¼¤ÎÄä»ß¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤¿¡£ -⤷¡¢¤³¤Îµ¡Ç½¤òÍøÍѤ¹¤ë¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥¹¥ì¥Ã¥É¤¬ +は、マイクロ秒精度のビジー・ウェイトを利用することで、 +2\ ms 以下の停止を行うことができた。 +但し、この機能を利用するには、呼び出し元のスレッドが .B SCHED_FIFO -¤ä +や .B SCHED_RR -¤È¤¤¤Ã¤¿¥ê¥¢¥ë¥¿¥¤¥à¡¦¥Ý¥ê¥·¡¼¤Î¸µ¤Ç¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤Æ¤¤¤ë -ɬÍפ¬¤¢¤Ã¤¿¡£ -¤³¤ÎÆÃÊ̤ʳÈÄ¥¤Ï¥«¡¼¥Í¥ë 2.5.39 ¤Çºï½ü¤µ¤ì¤¿¡£¤·¤¿¤¬¤Ã¤Æ¡¢ -¸½ºß¤Î 2.4 ·ÏÎó¤Î¥«¡¼¥Í¥ë¤Ë¤Ï¤³¤Îµ¡Ç½¤¬Â¸ºß¤¹¤ë¤¬¡¢ -2.6·ÏÎó¤Î¥«¡¼¥Í¥ë¤Ë¤Ï¤Ê¤¤¡£ +といったリアルタイム・ポリシーの元でスケジューリングされている +必要があった。 +この特別な拡張はカーネル 2.5.39 で削除された。したがって、 +現在の 2.4 系列のカーネルにはこの機能が存在するが、 +2.6系列のカーネルにはない。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O In Linux 2.4, if .\"O .BR nanosleep () .\"O is stopped by a signal (e.g., @@ -351,22 +351,22 @@ POSIX.1 .\"O If the system call is subsequently restarted, .\"O then the time that the thread spent in the stopped state is .\"O \fInot\fP counted against the sleep interval. -Linux 2.4 ¤Ç¤Ï¡¢ +Linux 2.4 では、 .BR nanosleep () -¤¬ +が .RB ( SIGTSTP -¤Ê¤É¤Î) ¥·¥°¥Ê¥ë¤Ë¤è¤êÄä»ß¤µ¤ì¤¿¾ì¹ç¡¢ +などの) シグナルにより停止された場合、 .BR nanosleep () -¤Î¸Æ¤Ó½Ð¤·¤Ï +の呼び出しは .B SIGCONT -¥·¥°¥Ê¥ë¤Ë¤è¤ë¥¹¥ì¥Ã¥É¤ÎºÆ³«¸å¤Ë +シグナルによるスレッドの再開後に .B EINTR -¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë¡£ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤³¤Î¸å¤ÇºÆ¥¹¥¿¡¼¥È¤µ¤ì¤¿¾ì¹ç¡¢ -¥¹¥ì¥Ã¥É¤¬Ää»ß¾õÂ֤ˤ¢¤ë´Ö¤Ë·Ð²á¤·¤¿»þ´Ö¤Ï -Ää»ß´ü´Ö¤È¤·¤Æ¥«¥¦¥ó¥È¡Ö¤µ¤ì¤Ê¤¤¡×¡£ +エラーで失敗する。 +システムコールがこの後で再スタートされた場合、 +スレッドが停止状態にある間に経過した時間は +停止期間としてカウント「されない」。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR clock_nanosleep (2), .BR sched_setscheduler (2), .BR timer_create (2), diff --git a/draft/man2/nfsservctl.2 b/draft/man2/nfsservctl.2 index 0a648a97..13c1463d 100644 --- a/draft/man2/nfsservctl.2 +++ b/draft/man2/nfsservctl.2 @@ -13,11 +13,11 @@ .\" .TH NFSSERVCTL 2 1997-07-16 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O nfsservctl \- syscall interface to kernel nfs daemon -nfsservctl \- ¥«¡¼¥Í¥ë nfs ¥Ç¡¼¥â¥ó¤Î¤¿¤á¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ +nfsservctl \- カーネル nfs デーモンのためのインターフェース .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -25,11 +25,11 @@ nfsservctl \- .BI " union nfsctl_res *" resp ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .nf /* .\"O * These are the commands understood by nfsctl(). - * nfsctl() ¤Ë¤è¤Ã¤ÆÍý²ò¤µ¤ì¤ë¥³¥Þ¥ó¥É + * nfsctl() によって理解されるコマンド */ .\"O #define NFSCTL_SVC 0 /* This is a server process. */ .\"O #define NFSCTL_ADDCLIENT 1 /* Add an NFS client. */ @@ -38,13 +38,13 @@ nfsservctl \- .\"O #define NFSCTL_UNEXPORT 4 /* unexport a file system. */ .\"O #define NFSCTL_UGIDUPDATE 5 /* update a client's UID/GID map. */ .\"O #define NFSCTL_GETFH 6 /* get an fh (used by mountd) */ -#define NFSCTL_SVC 0 /* ¥µ¡¼¥Ð¡¼¥×¥í¥»¥¹ */ -#define NFSCTL_ADDCLIENT 1 /* NFS ¥¯¥é¥¤¥¢¥ó¥È¤òÄɲà */ -#define NFSCTL_DELCLIENT 2 /* NFS ¥¯¥é¥¤¥¢¥ó¥É¤òºï½ü */ -#define NFSCTL_EXPORT 3 /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥¨¥¯¥¹¥Ý¡¼¥È */ -#define NFSCTL_UNEXPORT 4 /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥¢¥ó¥¨¥¯¥¹¥Ý¡¼¥È */ -#define NFSCTL_UGIDUPDATE 5 /* UID/GID ¥Þ¥Ã¥×¤Î¹¹¿· */ -#define NFSCTL_GETFH 6 /* (mountd ¤Ç»ÈÍѤµ¤ì¤ë) fh ¤Î¼èÆÀ */ +#define NFSCTL_SVC 0 /* サーバープロセス */ +#define NFSCTL_ADDCLIENT 1 /* NFS クライアントを追加 */ +#define NFSCTL_DELCLIENT 2 /* NFS クライアンドを削除 */ +#define NFSCTL_EXPORT 3 /* ファイルシステムのエクスポート */ +#define NFSCTL_UNEXPORT 4 /* ファイルシステムのアンエクスポート */ +#define NFSCTL_UGIDUPDATE 5 /* UID/GID マップの更新 */ +#define NFSCTL_GETFH 6 /* (mountd で使用される) fh の取得 */ struct nfsctl_arg { int ca_version; /* safeguard */ @@ -64,15 +64,15 @@ union nfsctl_res { }; .fi .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï¥¼¥í¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合はゼロが返される。エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This call is Linux-specific. -¤³¤Î¥³¡¼¥ë¤Ï Linux ÆÃÍ­¤Ç¤¢¤ë¡£ +このコールは Linux 特有である。 diff --git a/draft/man2/nice.2 b/draft/man2/nice.2 index 7c688964..9f8f6ad9 100644 --- a/draft/man2/nice.2 +++ b/draft/man2/nice.2 @@ -36,9 +36,9 @@ .\" Updated 2005-10-07, Akihiro MOTOKI .\" .TH NICE 2 2007-07-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -nice \- ¥×¥í¥»¥¹¤ÎÍ¥ÀèÅÙ¤òÊѹ¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +nice \- プロセスの優先度を変更する +.SH 書式 .B #include .sp .BI "int nice(int " inc ); @@ -46,15 +46,15 @@ nice \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR nice (): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR nice () .\"O adds .\"O .I inc @@ -65,36 +65,36 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE .\"O The range for nice values is described in .\"O .BR getpriority (2). .BR nice () -¤Ï +は .I inc -¤ÎÃͤò +の値を .B nice -¤ò¸Æ¤ó¤À¥×¥í¥»¥¹¤Î nice Ãͤ˲䨤ë -(nice Ãͤ¬Â礭¤¤¿ôÃͤۤÉÄ㤤ͥÀèÅÙ¤òɽ¤¹)¡£ -Éé¤Î¿ô¤ò»ØÄꤹ¤ë¡¢¤Ä¤Þ¤ê¡¢°ÊÁ°¤è¤ê¤âÍ¥ÀèÅÙ¤ò¾å¤²¤ë¤È¤¤¤¦»ØÄ꤬¤Ç¤­¤ë¤Î¤Ï -¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¤À¤±¤Ç¤¢¤ë¡£ -nice ÃͤÎÈϰϤˤĤ¤¤Æ¤Ï +を呼んだプロセスの nice 値に加える +(nice 値が大きい数値ほど低い優先度を表す)。 +負の数を指定する、つまり、以前よりも優先度を上げるという指定ができるのは +スーパーユーザーだけである。 +nice 値の範囲については .BR getpriority (2) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡£ +で説明されている。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, the new nice value is returned (but see NOTES below). .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢¿·¤·¤¤ nice Ãͤ¬ÊÖ¤ë (⤷¡¢²¼µ­¤Î¡ÖÃí°Õ¡×¤ò»²¾È)¡£ -¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤¬Ê֤ꡢ +成功した場合、新しい nice 値が返る (但し、下記の「注意」を参照)。 +失敗した場合 \-1 が返り、 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤ˽¾¤Ã¤ÆÀßÄꤵ¤ì¤ë¡£ +がエラーの内容に従って設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EPERM .\"O A non-super user attempts to do a priority increase .\"O by supplying a negative -¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼°Ê³°¤¬ +スーパーユーザー以外が .I inc -¤ËÉé¤Î¿ôÃͤò»ØÄꤷ¤ÆÍ¥ÀèÅÙ¤ò¾å¤²¤è¤¦¤È¤·¤¿¡£ +に負の数値を指定して優先度を上げようとした。 .\"O The calling process attempted to increase its priority by .\"O supplying a negative .\"O .I inc @@ -106,19 +106,19 @@ nice .\"O .B RLIMIT_NICE .\"O resource limit in .\"O .BR setrlimit (2).) -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬ +呼び出し元のプロセスが .I inc -¤ËÉé¤Î¿ôÃͤò»ØÄꤷ¤ÆÍ¥ÀèÅÙ¤ò¾å¤²¤è¤¦¤È¤·¤¿¤¬¡¢ -½½Ê¬¤Ê¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ -Linux ¤Ç¤Ï +に負の数値を指定して優先度を上げようとしたが、 +十分な権限を持っていなかった。 +Linux では .B CAP_SYS_NICE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティが必要である。 .RB ( setrlimit (2) -¤Î¥ê¥½¡¼¥¹¾å¸Â +のリソース上限 .B RLIMIT_NICE -¤Ë´Ø¤¹¤ëµÄÏÀ¤â»²¾È¤Î¤³¤È)¡£ +に関する議論も参照のこと)。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O SVr4, 4.3BSD, POSIX.1-2001. .\"O However, the Linux and (g)libc .\"O (earlier than glibc 2.2.4) return value is nonstandard, see below. @@ -126,13 +126,13 @@ Linux .\"O .B EINVAL .\"O error code. SVr4, 4.3BSD, POSIX.1-2001. -¤·¤«¤·¡¢Linux ¤È (2.2.4¤è¤ê¸Å¤¤) (g)libc ¤Ç¤ÏÊÖ¤êÃͤÏɸ½à¤È°Û¤Ê¤ë¡£ -¾ÜºÙ¤Ï°Ê²¼¤ò»²¾È¤Î¤³¤È¡£ -SVr4 ¤Ë¤Ï¾¤Ë +しかし、Linux と (2.2.4より古い) (g)libc では返り値は標準と異なる。 +詳細は以下を参照のこと。 +SVr4 には他に .B EINVAL -¥¨¥é¡¼¥³¡¼¥É¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ +エラーコードについての記述がある。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O SUSv2 and POSIX.1-2001 specify that .\"O .BR nice () .\"O should return the new nice value. @@ -142,13 +142,13 @@ SVr4 .\"O (earlier than glibc 2.2.4) return 0 on success. .\"O The new nice value can be found using .\"O .BR getpriority (2). -SUSv2 ¤È POSIX 1003.1-2003 ¤Ç¤Ï¡¢ +SUSv2 と POSIX 1003.1-2003 では、 .BR nice () -¤Ï¿·¤·¤¤ nice ÃͤòÊÖ¤¹¤Èµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -°ìÊý¡¢Linux ¥·¥¹¥Æ¥à¥³¡¼¥ë¤È (2.2.4 ¤è¤ê¸Å¤¤) (g)libc ¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ï -À®¸ù»þ¤Ë 0 ¤òÊÖ¤¹¡£¿·¤·¤¤ nice ÃÍ¤Ï +は新しい nice 値を返すと規定されている。 +一方、Linux システムコールと (2.2.4 より古い) (g)libc ライブラリ関数は +成功時に 0 を返す。新しい nice 値は .BR getpriority (2) -¤ò»È¤Ã¤Æ¼èÆÀ¤Ç¤­¤ë¡£ +を使って取得できる。 .\"O Since glibc 2.2.4, .\"O .BR nice () @@ -157,28 +157,28 @@ SUSv2 .\"O to obtain the new nice value to be returned to the caller. .\"O With this implementation, .\"O a successful call can legitimately return \-1. -glibc 2.2.4 °Ê¹ß¤Ç¤Ï¡¢ +glibc 2.2.4 以降では、 .BR nice () -¤Ï +は .BR getpriority (2) -¤ò¸Æ¤Ó½Ð¤¹¥é¥¤¥Ö¥é¥ê´Ø¿ô¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤ª¤ê¡¢ -¸Æ¤Ó½Ð¤·¸µ¤ËÊÖ¤¹¿·¤·¤¤ nice Ãͤò +を呼び出すライブラリ関数として実装されており、 +呼び出し元に返す新しい nice 値を .BR getpriority (2) -¤ò¸Æ¤Ó½Ð¤·¤Æ¼èÆÀ¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤³¤Î¼ÂÁõ¤Ç¤Ï¡¢Àµ¾ï¤ÊÆ°ºî¤Ç¤â \-1 ¤¬ÊÖ¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +を呼び出して取得するようになっている。 +この実装では、正常な動作でも \-1 が返される可能性がある。 .\"O To reliably detect an error, set .\"O .I errno .\"O to 0 before the call, and check its value when .\"O .BR nice () .\"O returns \-1. -³Î¼Â¤Ë¥¨¥é¡¼¤ò¸¡½Ð¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ -¸Æ¤Ó½Ð¤·¤ÎÁ°¤Ë +確実にエラーを検出するためには、 +呼び出しの前に .I errno -¤Ë 0 ¤òÀßÄꤷ¡¢ +に 0 を設定し、 .BR nice () -¤¬ \-1 ¤òÊÖ¤·¤¿¤È¤­¤Ë errno ¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤ÈÎɤ¤¡£ +が \-1 を返したときに errno をチェックすると良い。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR nice (1), .BR renice (1), .BR fork (2), diff --git a/draft/man2/open.2 b/draft/man2/open.2 index aee181ef..282f577f 100644 --- a/draft/man2/open.2 +++ b/draft/man2/open.2 @@ -70,32 +70,32 @@ .\" Updated 2008-08-08, Akihiro MOTOKI, LDP v3.05 .\" Updated 2010-04-23, Akihiro MOTOKI, LDP v3.24 .\" -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: file description ¥Õ¥¡¥¤¥ëµ­½Ò -.\"WORD: open ¥ª¡¼¥×¥ó -.\"WORD: create ºîÀ® -.\"WORD: file offset ¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È -.\"WORD: controling terminal À©¸æüËö -.\"WORD: non-blocking I/O ÈóÄä»ß I/O -.\"WORD: synchronous I/O Ʊ´ü I/O -.\"WORD: permission µö²Ä -.\"WORD: user ¥æ¡¼¥¶¡¼ -.\"WORD: owner ½êÍ­¼Ô -.\"WORD: group ¥°¥ë¡¼¥× -.\"WORD: other ¾¿Í -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: symbolic link ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: dangling symbolic link ²õ¤ì¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: file creation flag ¥Õ¥¡¥¤¥ëºîÀ®¥Õ¥é¥° -.\"WORD: file status flag ¥Õ¥¡¥¤¥ë¾õÂ֥ե饰 +.\"WORD: descriptor ディスクリプタ +.\"WORD: file description ファイル記述 +.\"WORD: open オープン +.\"WORD: create 作成 +.\"WORD: file offset ファイル・オフセット +.\"WORD: controling terminal 制御端末 +.\"WORD: non-blocking I/O 非停止 I/O +.\"WORD: synchronous I/O 同期 I/O +.\"WORD: permission 許可 +.\"WORD: user ユーザー +.\"WORD: owner 所有者 +.\"WORD: group グループ +.\"WORD: other 他人 +.\"WORD: kernel カーネル +.\"WORD: symbolic link シンボリック・リンク +.\"WORD: dangling symbolic link 壊れたシンボリック・リンク +.\"WORD: file creation flag ファイル作成フラグ +.\"WORD: file status flag ファイル状態フラグ .\" .TH OPEN 2 2010-09-10 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O open, creat \- open and possibly create a file or device -open, creat \- ¥Õ¥¡¥¤¥ë¤ä¥Ç¥Ð¥¤¥¹¤Î¥ª¡¼¥×¥ó¡¢ºîÀ®¤ò¹Ô¤¦ +open, creat \- ファイルやデバイスのオープン、作成を行う .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -107,7 +107,7 @@ open, creat \- .BI "int creat(const char *" pathname ", mode_t " mode ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Given a .\"O .I pathname .\"O for a file, @@ -117,17 +117,17 @@ open, creat \- .\"O .RB ( read "(2), " write "(2), " lseek "(2), " fcntl "(2), etc.)." .\"O The file descriptor returned by a successful call will be .\"O the lowest-numbered file descriptor not currently open for the process. -¥Õ¥¡¥¤¥ë¤Î +ファイルの .I pathname -¤òÍ¿¤¨¤ë¤È¡¢ +を与えると、 .BR open () -¤Ï¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢¤³¤Î¸å¤Ë³¤¯¥·¥¹¥Æ¥à¥³¡¼¥ë -.RB ( read "(2), " write "(2), " lseek "(2), " fcntl "(2) ¤Ê¤É)" -¤Ç»ÈÍѤµ¤ì¤ë¾®¤µ¤ÊÈóÉé¤ÎÀ°¿ô¤Ç¤¢¤ë¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬À®¸ù¤·¤¿¾ì¹ç¤ËÊÖ¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï -¤½¤Î¥×¥í¥»¥¹¤¬¤½¤Î»þÅÀ¤Ç¥ª¡¼¥×¥ó¤·¤Æ¤¤¤Ê¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î -¤¦¤ÁºÇ¾®¤Î¿ô»ú¤Î¤â¤Î¤È¤Ê¤ë¡£ +はファイル・ディスクリプタを返す。 +ファイル・ディスクリプタは、この後に続くシステムコール +.RB ( read "(2), " write "(2), " lseek "(2), " fcntl "(2) など)" +で使用される小さな非負の整数である。 +このシステムコールが成功した場合に返されるファイル・ディスクリプタは +そのプロセスがその時点でオープンしていないファイル・ディスクリプタの +うち最小の数字のものとなる。 .PP .\"O By default, the new file descriptor is set to remain open across an .\"O .BR execve (2) @@ -140,19 +140,19 @@ open, creat \- .\"O flag, described below, can be used to change this default). .\"O The file offset is set to the beginning of the file (see .\"O .BR lseek (2)). -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï +デフォルトでは、新しいファイル・ディスクリプタは .BR execve (2) -¤ò¼Â¹Ô¤·¤¿¸å¤â¥ª¡¼¥×¥ó¤µ¤ì¤¿¤Þ¤Þ¤È¤Ê¤ë (¤Ä¤Þ¤ê¡¢ +を実行した後もオープンされたままとなる (つまり、 .BR fcntl (2) -¤ËÀâÌÀ¤¬¤¢¤ë +に説明がある .B FD_CLOEXEC -¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Õ¥é¥°¤ÏºÇ½é¤Ï̵¸ú¤Ç¤¢¤ë; -¸å½Ò¤Î Linux ¸ÇÍ­¤Î¥Õ¥é¥° +ファイル・ディスクリプタ・フラグは最初は無効である; +後述の Linux 固有のフラグ .B O_CLOEXEC -¤ò»È¤¦¤È¤³¤Î¥Ç¥Õ¥©¥ë¥È¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë)¡£ -¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È (file offset) ¤Ï¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤ËÀßÄꤵ¤ì¤ë +を使うとこのデフォルトを変更することができる)。 +ファイル・オフセット (file offset) はファイルの先頭に設定される .RB ( lseek (2) -»²¾È)¡£ +参照)。 .PP .\"O A call to .\"O .BR open () @@ -160,10 +160,10 @@ open, creat \- .\"O .IR "open file description" , .\"O an entry in the system-wide table of open files. .BR open () -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¡Ö¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¡× +を呼び出すと、「オープンファイル記述」 .I "(open file description)" -¤¬ºîÀ®¤µ¤ì¤ë¡£¥Õ¥¡¥¤¥ëµ­½Ò¤È¤Ï¡¢¥·¥¹¥Æ¥àÁ´ÂΤΠ-¥ª¡¼¥×¥óÃæ¤Î¥Õ¥¡¥¤¥ë¤Î¥Æ¡¼¥Ö¥ë¤Î¥¨¥ó¥È¥ê¤Ç¤¢¤ë¡£ +が作成される。ファイル記述とは、システム全体の +オープン中のファイルのテーブルのエントリである。 .\"O This entry records the file offset and the file status flags .\"O (modifiable via the .\"O .BR fcntl (2) @@ -173,23 +173,23 @@ open, creat \- .\"O this reference is unaffected if .\"O .I pathname .\"O is subsequently removed or modified to refer to a different file. -¤³¤Î¥¨¥ó¥È¥ê¤Ï¡¢¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤È¥Õ¥¡¥¤¥ë¾õÂ֥ե饰 +このエントリは、ファイル・オフセットとファイル状態フラグ .RB ( fcntl (2) .B F_SETFL -Áàºî¤Ë¤è¤êÊѹ¹²Äǽ) ¤¬ÊÝ»ý¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¤³¤ì¤é¤Î¥¨¥ó¥È¥ê¤Î°ì¤Ä¤Ø¤Î»²¾È¤Ç¤¢¤ë¡£ -¤³¤Î¸å¤Ç +操作により変更可能) が保持する。 +ファイル・ディスクリプタはこれらのエントリの一つへの参照である。 +この後で .I pathname -¤¬ºï½ü¤µ¤ì¤¿¤ê¡¢Â¾¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¤è¤¦¤ËÊѹ¹¤µ¤ì¤¿¤ê¤·¤Æ¤â¡¢ -¤³¤Î»²¾È¤Ï±Æ¶Á¤ò¼õ¤±¤Ê¤¤¡£ +が削除されたり、他のファイルを参照するように変更されたりしても、 +この参照は影響を受けない。 .\"O The new open file description is initially not shared .\"O with any other process, .\"O but sharing may arise via .\"O .BR fork (2). -¿·¤·¤¤¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¤ÏºÇ½é¤Ï¾¤Î¤É¤Î¥×¥í¥»¥¹¤È¤â -¶¦Í­¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ +新しいオープンファイル記述は最初は他のどのプロセスとも +共有されていないが、 .BR fork (2) -¤Ç¶¦Í­¤¬µ¯¤³¤ë¾ì¹ç¤¬¤¢¤ë¡£ +で共有が起こる場合がある。 .PP .\"O The argument .\"O .I flags @@ -198,24 +198,24 @@ open, creat \- .\"O .BR O_RDONLY ", " O_WRONLY ", or " O_RDWR . .\"O These request opening the file read-only, write-only, or read/write, .\"O respectively. -°ú¤­¿ô +引き数 .I flags -¤Ë¤Ï¡¢¥¢¥¯¥»¥¹¥â¡¼¥É +には、アクセスモード .BR O_RDONLY ", " O_WRONLY ", " O_RDWR -¤Î¤É¤ì¤«¤Ò¤È¤Ä¤¬Æþ¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ì¤é¤Ï¤½¤ì¤¾¤ìÆɤ߹þ¤ßÀìÍÑ¡¢½ñ¤­¹þ¤ßÀìÍÑ¡¢Æɤ߽ñ¤­ÍÑ¤Ë -¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¤³¤È¤òÍ׵᤹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +のどれかひとつが入っていなければならない。 +これらはそれぞれ読み込み専用、書き込み専用、読み書き用に +ファイルをオープンすることを要求するものである。 .\"O In addition, zero or more file creation flags and file status flags .\"O can be .\"O .RI bitwise- or 'd .\"O in .\"O .IR flags . -¤µ¤é¤Ë¡¢ +さらに、 .I flags -¤Ë¤Ï¡¢¥Õ¥¡¥¤¥ëºîÀ®¥Õ¥é¥° (file creation flag) ¤È¥Õ¥¡¥¤¥ë¾õÂ֥ե饰 -(file status flag) ¤ò 0 ¸Ä°Ê¾å¡Ö¥Ó¥Ã¥Èñ°Ì¤Î OR (bitwise-or)¡×¤Ç -»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +には、ファイル作成フラグ (file creation flag) とファイル状態フラグ +(file status flag) を 0 個以上「ビット単位の OR (bitwise-or)」で +指定することができる。 .\"O The .\"O .I file creation flags .\"O are @@ -223,12 +223,12 @@ open, creat \- .\"O The .\"O .I file status flags .\"O are all of the remaining flags listed below. -.I ¥Õ¥¡¥¤¥ëºîÀ®¥Õ¥é¥° -¤Ï +.I ファイル作成フラグ +は .BR O_CREAT ", " O_EXCL ", " O_NOCTTY ", " O_TRUNC -¤Ç¤¢¤ë¡£ -.I ¥Õ¥¡¥¤¥ë¾õÂ֥ե饰 -¤Ï°Ê²¼¤Î¥ê¥¹¥È¤Î¤¦¤Á¾åµ­°Ê³°¤Î»Ä¤ê¤Î¤â¤Î¤Ç¤¢¤ë¡£ +である。 +.I ファイル状態フラグ +は以下のリストのうち上記以外の残りのものである。 .\" FIXME . Actually is it true that the "file status flags" are all of the .\" remaining flags listed below? SUSv4 divides the flags into: .\" * Access mode @@ -243,10 +243,10 @@ open, creat \- .\"O modified using .\"O .BR fcntl (2). .\"O The full list of file creation flags and file status flags is as follows: -Æó¼ïÎà¤Î¥Õ¥é¥°¤Î°ã¤¤¤Ï¡¢¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤ÎÊý¤Ï +二種類のフラグの違いは、ファイル状態フラグの方は .BR fcntl (2) -¤ò»È¤Ã¤Æ¤½¤ÎÆâÍƤò¼èÆÀ¤·¤¿¤ê (¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï) Êѹ¹¤·¤¿¤ê¤Ç¤­¤ëÅÀ¤Ë¤¢¤ë¡£ -¥Õ¥¡¥¤¥ëºîÀ®¥Õ¥é¥°¤È¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤ÎÁ´¥ê¥¹¥È¤ò°Ê²¼¤Ë¼¨¤¹: +を使ってその内容を取得したり (場合によっては) 変更したりできる点にある。 +ファイル作成フラグとファイル状態フラグの全リストを以下に示す: .TP .B O_APPEND .\"O The file is opened in append mode. @@ -255,12 +255,12 @@ open, creat \- .\"O the file offset is positioned at the end of the file, .\"O as if with .\"O .BR lseek (2). -¥Õ¥¡¥¤¥ë¤òÄɲà (append) ¥â¡¼¥É¤Ç¥ª¡¼¥×¥ó¤¹¤ë¡£ -Ëè²ó¤Î +ファイルを追加 (append) モードでオープンする。 +毎回の .BR write (2) -¤ÎÁ°¤Ë +の前に .BR lseek (2) -¤ò¹Ô¤Ã¤¿¤«¤Î¤è¤¦¤Ë¡¢¥Õ¥¡¥¤¥ë¡¦¥Ý¥¤¥ó¥¿¡¼¤ò¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤Ë°ÜÆ°¤¹¤ë¡£ +を行ったかのように、ファイル・ポインターをファイルの最後に移動する。 .\"O .B O_APPEND .\"O may lead to corrupted files on NFS file systems if more than one process .\"O appends data to a file at once. @@ -270,13 +270,13 @@ open, creat \- .\"O This is because NFS does not support .\"O appending to a file, so the client kernel has to simulate it, which .\"O can't be done without a race condition. -NFS ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ç¡¢ +NFS ファイル・システムで、 .B O_APPEND -¤ò»ÈÍѤ¹¤ë¤È¡¢Ê£¿ô¤Î¥×¥í¥»¥¹¤¬¤Ò¤È¤Ä¤Î¥Õ¥¡¥¤¥ë¤ËƱ»þ¤Ë¥Ç¡¼¥¿¤òÄɲä·¤¿¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¤¬²õ¤ì¤Æ¤·¤Þ¤¦¤³¤È¤¬¤¢¤ë¡£ -¤³¤ì¤Ï NFS ¤¬Äɲå⡼¥É¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¤¿¤á¡¢ -¥¯¥é¥¤¥¢¥ó¥È¤Î¥«¡¼¥Í¥ë (kernel) ¤¬¤½¤ì¤ò¥·¥ß¥å¥ì¡¼¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Î¤À¤¬¡¢ -¶¥¹ç¾õÂÖ¤òÈò¤±¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +を使用すると、複数のプロセスがひとつのファイルに同時にデータを追加した場合、 +ファイルが壊れてしまうことがある。 +これは NFS が追加モードをサポートしていないため、 +クライアントのカーネル (kernel) がそれをシミュレートしなければならないのだが、 +競合状態を避けることはできないからである。 .TP .B O_ASYNC .\"O Enable signal-driven I/O: @@ -285,41 +285,41 @@ NFS .\"O by default, but this can be changed via .\"O .BR fcntl (2)) .\"O when input or output becomes possible on this file descriptor. -¥·¥°¥Ê¥ë¶îÆ° I/O (signal-driven I/O) ¤òÍ­¸ú¤Ë¤¹¤ë: -¤³¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ø¤Î -ÆþÎϤޤ¿¤Ï½ÐÎϤ¬²Äǽ¤Ë¤Ê¤Ã¤¿¾ì¹ç¤Ë¡¢¥·¥°¥Ê¥ë¤òÀ¸À®¤¹¤ë -(¥Ç¥Õ¥©¥ë¥È¤Ï +シグナル駆動 I/O (signal-driven I/O) を有効にする: +このファイル・ディスクリプタへの +入力または出力が可能になった場合に、シグナルを生成する +(デフォルトは .B SIGIO -¤Ç¤¢¤ë¤¬¡¢ +であるが、 .BR fcntl (2) -¤Ë¤è¤Ã¤ÆÊѹ¹²Äǽ¤Ç¤¢¤ë)¡£ +によって変更可能である)。 .\"O This feature is only available for terminals, pseudoterminals, .\"O sockets, and (since Linux 2.6) pipes and FIFOs. .\"O See .\"O .BR fcntl (2) .\"O for further details. -¤³¤Îµ¡Ç½¤¬»ÈÍѲÄǽ¤Ê¤Î¤ÏüËö¡¢µ¿»÷üËö¡¢¥½¥±¥Ã¥È¤Î¤ß¤Ç¤¢¤ê¡¢ -(Linux 2.6 °Ê¹ß¤Ç¤Ï) ¥Ñ¥¤¥×¤È FIFO ¤ËÂФ·¤Æ¤â»ÈÍѤǤ­¤ë¡£ -¤µ¤é¤Ë¾Ü¤·¤¤ÀâÌÀ¤Ï +この機能が使用可能なのは端末、疑似端末、ソケットのみであり、 +(Linux 2.6 以降では) パイプと FIFO に対しても使用できる。 +さらに詳しい説明は .BR fcntl (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .TP .\"O .BR O_CLOEXEC " (Since Linux 2.6.23)" -.BR O_CLOEXEC " (Linux 2.6.23 °Ê¹ß)" +.BR O_CLOEXEC " (Linux 2.6.23 以降)" .\"O Enable the close-on-exec flag for the new file descriptor. -¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ close-on-exec ¥Õ¥é¥°¤òÍ­¸ú¤Ë¤¹¤ë¡£ +新しいファイル・ディスクリプタに対して close-on-exec フラグを有効にする。 .\"O Specifying this flag permits a program to avoid additional .\"O .BR fcntl (2) .\"O .B F_SETFD .\"O operations to set the .\"O .B FD_CLOEXEC .\"O flag. -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢¥×¥í¥°¥é¥à¤Ï +このフラグを指定することで、プログラムは .B FD_CLOEXEC -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤¿¤á¤Î +フラグをセットするための .BR fcntl (2) .B F_SETFD -Áàºî¤òÊÌÅӸƤӽФ¹É¬Íפ¬¤Ê¤¯¤Ê¤ë¡£ +操作を別途呼び出す必要がなくなる。 .\"O Additionally, .\"O use of this flag is essential in some multithreaded programs .\"O since using a separate @@ -333,25 +333,25 @@ NFS .\"O .BR fork (2) .\"O plus .\"O .BR execve (2). -¤Þ¤¿¡¢¤¢¤ë¼ï¤Î¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Î¥×¥í¥°¥é¥à¤Ï¤³¤Î¥Õ¥é¥°¤Î»ÈÍÑ¤Ï -ÉԲķç¤Ç¤¢¤ë¡£¤Ê¤¼¤Ê¤é¡¢¸ÄÊÌ¤Ë +また、ある種のマルチスレッドのプログラムはこのフラグの使用は +不可欠である。なぜなら、個別に .B FD_CLOEXEC -¥Õ¥é¥°¤òÀßÄꤹ¤ë +フラグを設定する .BR fcntl (2) .B F_SETFD -Áàºî¤ò¸Æ¤Ó½Ð¤·¤¿¤È¤·¤Æ¤â¡¢¤¢¤ë¥¹¥ì¥Ã¥É¤¬¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò -¥ª¡¼¥×¥ó¤¹¤ë¤Î¤ÈƱ»þ¤ËÊ̤Υ¹¥ì¥Ã¥É¤¬ +操作を呼び出したとしても、あるスレッドがファイルディスクリプタを +オープンするのと同時に別のスレッドが .BR fork (2) -¤È +と .BR execve (2) -¤ò¼Â¹Ô¤¹¤ë¤È¤¤¤¦¶¥¹ç¾ò·ï¤òÈò¤±¤ë¤Î¤Ë¤Ï½½Ê¬¤Ç¤Ï¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +を実行するという競合条件を避けるのには十分ではないからである。 .\" This flag fixes only one form of the race condition; .\" The race can also occur with, for example, descriptors .\" returned by accept(), pipe(), etc. .TP .B O_CREAT .\"O If the file does not exist it will be created. -¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤«¤Ã¤¿¾ì¹ç¤ÏºîÀ® (create) ¤¹¤ë¡£ +ファイルが存在しなかった場合は作成 (create) する。 .\"O The owner (user ID) of the file is set to the effective user ID .\"O of the process. .\"O The group ownership (group ID) is set either to @@ -365,19 +365,19 @@ NFS .\"O .BR mount (8)). .\"O .\" As at 2.6.25, bsdgroups is supported by ext2, ext3, ext4, and .\"O .\" XFS (since 2.6.14). -¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô (¥æ¡¼¥¶¡¼ ID) ¤Ï¡¢¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤ËÀßÄꤵ¤ì¤ë¡£ -¥°¥ë¡¼¥×½êÍ­¸¢ (¥°¥ë¡¼¥× ID) ¤Ï¡¢¥×¥í¥»¥¹¤Î¼Â¸ú¥°¥ë¡¼¥× ID -¤Þ¤¿¤Ï¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Î¥°¥ë¡¼¥× ID ¤ËÀßÄꤵ¤ì¤ë -(¤³¤ì¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¿¥¤¥×¡¢¥Þ¥¦¥ó¥È¥ª¥×¥·¥ç¥ó¡¢ -¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Î¥â¡¼¥É¤Ë°Í¸¤¹¤ë¡£ +ファイルの所有者 (ユーザー ID) は、プロセスの実効ユーザー ID に設定される。 +グループ所有権 (グループ ID) は、プロセスの実効グループ ID +または親ディレクトリのグループ ID に設定される +(これは、ファイルシステムタイプ、マウントオプション、 +親ディレクトリのモードに依存する。 .BR mount (8) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¥Þ¥¦¥ó¥È¥ª¥×¥·¥ç¥ó +で説明されているマウントオプション .I bsdgroups -¤È +と .I sysvgroups -¤ò»²¾È)¡£ -.\" 2.6.25 »þÅÀ¤Ç¤Ï¡¢bsdgroups ¤Ï ext2, ext3, ext4, XFS ¤Ç¥µ¥Ý¡¼¥È -.\" ¤µ¤ì¤Æ¤¤¤ë (2.6.14 °Ê¹ß)¡£ +を参照)。 +.\" 2.6.25 時点では、bsdgroups は ext2, ext3, ext4, XFS でサポート +.\" されている (2.6.14 以降)。 .RS .PP .\"O .I mode @@ -397,100 +397,100 @@ NFS .\"O in the usual way: The permissions of the created file are .\"O .IR "(mode\ &\ ~umask)" . .I mode -¤Ï¿·¤·¤¤¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¾ì¹ç¤Ë»ÈÍѤ¹¤ë¥¢¥¯¥»¥¹µö²Ä (permission) ¤ò»ØÄꤹ¤ë¡£ +は新しいファイルを作成する場合に使用するアクセス許可 (permission) を指定する。 .I flags -¤Ë +に .B O_CREAT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ +が指定されている場合、 .I mode -¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を指定しなければならない。 .B O_CREAT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +が指定されていない場合、 .I mode -¤Ï̵»ë¤µ¤ì¤ë¡£ -Í­¸ú¤Ê¥¢¥¯¥»¥¹µö²Ä¤Ï¡¢ÉáÃʤÈƱ¤¸¤è¤¦¤Ë¥×¥í¥»¥¹¤Î +は無視される。 +有効なアクセス許可は、普段と同じようにプロセスの .I umask -¤Ë¤è¤Ã¤Æ½¤Àµ¤µ¤ì¡¢ºîÀ®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Îµö²Ä¤Ï +によって修正され、作成されたファイルの許可は .I "(mode\ &\ ~umask)" -¤È¤Ê¤ë¡£ +となる。 .\"O Note that this mode only applies to future accesses of the .\"O newly created file; the .\"O .BR open () .\"O call that creates a read-only file may well return a read/write .\"O file descriptor. -¤³¤Î¥â¡¼¥É¤Ï¡¢¿·¤·¤¯ºîÀ®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¤½¤ì°Ê¹ß¤Î¥¢¥¯¥»¥¹ -¤Ë¤Î¤ßŬÍѤµ¤ì¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -Æɤ߼è¤êÀìÍѤΥե¡¥¤¥ë¤òºîÀ®¤¹¤ë +このモードは、新しく作成されたファイルに対するそれ以降のアクセス +にのみ適用される点に注意すること。 +読み取り専用のファイルを作成する .BR open () -¥³¡¼¥ë¤Ç¤¢¤Ã¤Æ¤â¡¢ -Æɤ߽ñ¤­²Äǽ¤Ê¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¤³¤È¤¬¤¢¤ê¤¦¤ë¡£ +コールであっても、 +読み書き可能なファイル・ディスクリプタを返すことがありうる。 .PP .\"O The following symbolic constants are provided for .\"O .IR mode : .I mode -¤Î¤¿¤á¤Ë°Ê²¼¤Î¥·¥ó¥Ü¥ëÄê¿ô¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë : +のために以下のシンボル定数が提供されている : .TP 9 .B S_IRWXU .\"O 00700 user (file owner) has read, write and execute permission -00700 ¥æ¡¼¥¶¡¼ (¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô) ¤ËÆɤ߹þ¤ß¡¢½ñ¤­¹þ¤ß¡¢ -¼Â¹Ô¤Îµö²Ä¤¬¤¢¤ë¡£ +00700 ユーザー (ファイルの所有者) に読み込み、書き込み、 +実行の許可がある。 .TP .B S_IRUSR .\"O 00400 user has read permission -00400 ¥æ¡¼¥¶¡¼¤ËÆɤ߹þ¤ß¤Îµö²Ä¤¬¤¢¤ë¡£ +00400 ユーザーに読み込みの許可がある。 .TP .B S_IWUSR .\"O 00200 user has write permission -00200 ¥æ¡¼¥¶¡¼¤Ë½ñ¤­¹þ¤ß¤Îµö²Ä¤¬¤¢¤ë¡£ +00200 ユーザーに書き込みの許可がある。 .TP .B S_IXUSR .\"O 00100 user has execute permission -00100 ¥æ¡¼¥¶¡¼¤Ë¼Â¹Ô¤Îµö²Ä¤¬¤¢¤ë¡£ +00100 ユーザーに実行の許可がある。 .TP .B S_IRWXG .\"O 00070 group has read, write and execute permission -00070 ¥°¥ë¡¼¥×¤ËÆɤ߹þ¤ß¡¢½ñ¤­¹þ¤ß¡¢¼Â¹Ô¤Îµö²Ä¤¬¤¢¤ë¡£ +00070 グループに読み込み、書き込み、実行の許可がある。 .TP .B S_IRGRP .\"O 00040 group has read permission -00040 ¥°¥ë¡¼¥×¤ËÆɤ߹þ¤ß¤Îµö²Ä¤¬¤¢¤ë¡£ +00040 グループに読み込みの許可がある。 .TP .B S_IWGRP .\"O 00020 group has write permission -00020 ¥°¥ë¡¼¥×¤Ë½ñ¤­¹þ¤ß¤Îµö²Ä¤¬¤¢¤ë¡£ +00020 グループに書き込みの許可がある。 .TP .B S_IXGRP .\"O 00010 group has execute permission -00010 ¥°¥ë¡¼¥×¤Ë¼Â¹Ô¤Îµö²Ä¤¬¤¢¤ë¡£ +00010 グループに実行の許可がある。 .TP .B S_IRWXO .\"O 00007 others have read, write and execute permission -00007 ¾¿Í (others) ¤ËÆɤ߹þ¤ß¡¢½ñ¤­¹þ¤ß¡¢¼Â¹Ô¤Îµö²Ä¤¬¤¢¤ë¡£ +00007 他人 (others) に読み込み、書き込み、実行の許可がある。 .TP .B S_IROTH .\"O 00004 others have read permission -00004 ¾¿Í¤ËÆɤ߹þ¤ß¤Îµö²Ä¤¬¤¢¤ë¡£ +00004 他人に読み込みの許可がある。 .TP .B S_IWOTH .\"O 00002 others have write permission -00002 ¾¿Í¤Ë½ñ¤­¹þ¤ß¤Îµö²Ä¤¬¤¢¤ë¡£ +00002 他人に書き込みの許可がある。 .TP .B S_IXOTH .\"O 00001 others have execute permission -00001 ¾¿Í¤Ë¼Â¹Ô¤Îµö²Ä¤¬¤¢¤ë¡£ +00001 他人に実行の許可がある。 .RE .TP .\"O .BR O_DIRECT " (Since Linux 2.4.10)" -.BR O_DIRECT " (Linux 2.4.10 °Ê¹ß)" +.BR O_DIRECT " (Linux 2.4.10 以降)" .\"O Try to minimize cache effects of the I/O to and from this file. .\"O In general this will degrade performance, but it is useful in .\"O special situations, such as when applications do their own caching. .\"O File I/O is done directly to/from user space buffers. -¤³¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë I/O ¤Î¥­¥ã¥Ã¥·¥å¤Î¸ú²Ì¤òºÇ¾®²½¤·¤è¤¦¤È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤È¡¢°ìÈÌŪ¤ËÀ­Ç½¤¬Äã²¼¤¹¤ë¡£ -¤·¤«¤·¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬Æȼ«¤Ë¥­¥ã¥Ã¥·¥ó¥°¤ò¹Ô¤Ã¤Æ¤¤¤ë¤è¤¦¤Ê -ÆÃÊ̤ʾì¹ç¤Ë¤ÏÌò¤ËΩ¤Ä¡£ -¥Õ¥¡¥¤¥ë¤Î I/O ¤Ï¥æ¡¼¥¶¡¼¶õ´Ö¥Ð¥Ã¥Õ¥¡¤ËÂФ·¤ÆľÀܹԤï¤ì¤ë¡£ +このファイルに対する I/O のキャッシュの効果を最小化しようとする。 +このフラグを使うと、一般的に性能が低下する。 +しかしアプリケーションが独自にキャッシングを行っているような +特別な場合には役に立つ。 +ファイルの I/O はユーザー空間バッファに対して直接行われる。 .\"O The .\"O .B O_DIRECT .\"O flag on its own makes at an effort to transfer data synchronously, @@ -498,29 +498,29 @@ NFS .\"O .B O_SYNC .\"O that data and necessary metadata are transferred. .B O_DIRECT -¥Õ¥é¥°¼«¿È¤Ï¥Ç¡¼¥¿¤òƱ´ü¤ÇžÁ÷¤·¤è¤¦¤È¤Ï¤¹¤ë¤¬¡¢ +フラグ自身はデータを同期で転送しようとはするが、 .B O_SYNC -¤Î¤è¤¦¤Ë¥Ç¡¼¥¿¤ÈɬÍפʥ᥿¥Ç¡¼¥¿¤ÎžÁ÷¤¬Êݾڤµ¤ì¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ +のようにデータと必要なメタデータの転送が保証されるわけではない。 .\"O To guarantee synchronous I/O the .\"O .B O_SYNC .\"O must be used in addition to .\"O .BR O_DIRECT . -Ʊ´ü I/O ¤òÊݾڤ¹¤ë¤¿¤á¤Ë¤Ï¡¢ +同期 I/O を保証するためには、 .B O_DIRECT -¤Ë²Ã¤¨¤Æ +に加えて .B O_SYNC -¤ò»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を使用しなければならない。 .\"O See .\"O .B NOTES .\"O below for further discussion. -¡ÖÃí°Õ¡×¤ÎÀá (²¼µ­) ¤ÎµÄÏÀ¤â»²¾È¡£ +「注意」の節 (下記) の議論も参照。 .sp .\"O A semantically similar (but deprecated) interface for block devices .\"O is described in .\"O .BR raw (8). -¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤ËÂФ¹¤ë»÷Ä̤ä¿°ÕÌ£¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ +ブロックデバイスに対する似通った意味のインターフェースが .BR raw (8) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë (⤷¡¢¤³¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÏÈó¿ä¾©¤Ç¤¢¤ë)¡£ +で説明されている (但し、このインタフェースは非推奨である)。 .TP .B O_DIRECTORY .\"O If \fIpathname\fP is not a directory, cause the open to fail. @@ -535,19 +535,19 @@ NFS .\"O FIFO or tape device, but should not be used outside of the .\"O implementation of .\"O .BR opendir (3). -\fIpathname\fP ¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤±¤ì¤Ð¥ª¡¼¥×¥ó¤Ï¼ºÇÔ¤¹¤ë¡£ -.\" °Ê²¼¤Îµ­»ö¤È¤½¤Î¥ê¥×¥é¥¤¤ò»²¾È¤Î¤³¤È¡£ +\fIpathname\fP がディレクトリでなければオープンは失敗する。 +.\" 以下の記事とそのリプライを参照のこと。 .\" http://marc.theaimsgroup.com/?t=112748702800001&r=1&w=2 .\" [PATCH] open: O_DIRECTORY and O_CREAT together should fail -.\" O_DIRECTORY | O_CREAT ¤ò»ØÄꤹ¤ë¤È O_DIRECTORY ¤¬Ìµ»ë¤µ¤ì¤Æ¤·¤Þ¤¦¡£ -¤³¤Î¥Õ¥é¥°¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢ +.\" O_DIRECTORY | O_CREAT を指定すると O_DIRECTORY が無視されてしまう。 +このフラグは Linux 特有であり、 .BR opendir (3) -¤¬ FIFO ¤ä¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¤ËÂФ·¤Æ¥³¡¼¥ë¤µ¤ì¤¿¾ì¹ç¤Î -¥µ¡¼¥Ó¥¹ÉÔǽ (denial-of-service) ¹¶·â¤òÈò¤±¤ë¤¿¤á¤Ë -¥«¡¼¥Í¥ë 2.1.126 ¤ÇÄɲ䵤줿¡£ -¤·¤«¤·¤³¤ì¤Ï +が FIFO やテープデバイスに対してコールされた場合の +サービス不能 (denial-of-service) 攻撃を避けるために +カーネル 2.1.126 で追加された。 +しかしこれは .BR opendir (3) -¤Î¼ÂÁõ°Ê³°¤Ç¤Ï»ÈÍѤ¹¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +の実装以外では使用するべきではない。 .TP .B O_EXCL .\"O Ensure that this call creates the file: @@ -563,18 +563,18 @@ NFS .\"O is undefined if .\"O .B O_CREAT .\"O is not specified. -¤³¤Î¸Æ¤Ó½Ð¤·¤Ç¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤ë¤³¤È¤òÊݾڤ¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬ +この呼び出しでファイルが作成されることを保証する。 +このフラグが .B O_CREAT -¤È°ì½ï¤Ë»ØÄꤵ¤ì¡¢ +と一緒に指定され、 .I pathname -¤Î¥Õ¥¡¥¤¥ë¤¬´û¤Ë¸ºß¤·¤¿¾ì¹ç¡¢ +のファイルが既に存在した場合、 .BR open () -¤Ï¼ºÇÔ¤¹¤ë¡£ +は失敗する。 .B O_CREAT -¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Î +が指定されなかった場合の .B O_EXCL -¤ÎÆ°ºî¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +の動作は未定義である。 .\"O When these two flags are specified, symbolic links are not followed: .\"O .\" POSIX.1-2001 explicitly requires this behavior. @@ -583,20 +583,20 @@ NFS .\"O is a symbolic link, then .\"O .BR open () .\"O fails regardless of where the symbolic link points to. -¤³¤ì¤éÆó¤Ä¤Î¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤¿ºÝ¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ïé¤é¤ì¤Ê¤¤¡£ -.\" POSIX.1-2001 ¤Ç¤ÏÌÀ¼¨Åª¤Ë¤³¤ÎÆ°ºî¤òÍ׵ᤷ¤Æ¤¤¤ë¡£ +これら二つのフラグが指定された際、シンボリックリンクは辿られない。 +.\" POSIX.1-2001 では明示的にこの動作を要求している。 .I pathname -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¡¢ -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬¤É¤³¤ò»Ø¤·¤Æ¤¤¤ë¤«¤Ë´Ø¤ï¤é¤º +がシンボリックリンクの場合、 +シンボリックリンクがどこを指しているかに関わらず .BR open () -¤Ï¼ºÇÔ¤¹¤ë¡£ +は失敗する。 .\"O On NFS, .\"O .B O_EXCL .\"O is only supported when using NFSv3 or later on kernel 2.6 or later. -NFS ¤Ç¤Ï¡¢ +NFS では、 .B O_EXCL -¤Ï¡¢Linux 2.6 °Ê¹ß¤Ç NFSv3 °Ê¹ß¤ò»È¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ç¤Î¤ß¥µ¥Ý¡¼¥È¤µ¤ì¤ë¡£ +は、Linux 2.6 以降で NFSv3 以降を使っている場合でのみサポートされる。 .\"O In NFS environments where .\"O .B O_EXCL .\"O support is not provided, programs that rely on it @@ -609,17 +609,17 @@ NFS .\"O .BR link (2) .\"O to make a link to the lockfile. .B O_EXCL -¥µ¥Ý¡¼¥È¤¬Ä󶡤µ¤ì¤Æ¤¤¤Ê¤¤ NFS ´Ä¶­¤Ç¤Ï¡¢¤³¤Î¥Õ¥é¥°¤ËÍê¤Ã¤Æ -¥í¥Ã¥¯½èÍý¤ò¼Â¹Ô¤¹¤ë¥×¥í¥°¥é¥à¤Ï¶¥¹ç¾õÂÖ (race condition) ¤Ë½Ð²ñ¤¦ -²ÄǽÀ­¤¬¤¢¤ë¡£ -¥í¥Ã¥¯¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤ÆÉÔ²Äʬ (atomic) ¤Ê¥Õ¥¡¥¤¥ë¥í¥Ã¥¯¤ò¼Â¸½¤·¡¢ -NFS ¤¬ +サポートが提供されていない NFS 環境では、このフラグに頼って +ロック処理を実行するプログラムは競合状態 (race condition) に出会う +可能性がある。 +ロックファイルを使用して不可分 (atomic) なファイルロックを実現し、 +NFS が .B O_EXCL -¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤«¤Ë°Í¸¤·¤Ê¤¤¤è¤¦¤Ë¤·¤¿¤¤¾ì¹ç¡¢ -°Ü¿¢À­¤Î¤¢¤ëÊýË¡¤Ï¡¢Æ±¤¸¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ë¾¤È̾Á°¤Î½Å¤Ê¤é¤Ê¤¤ -¥Õ¥¡¥¤¥ë (Î㤨¤Ð¥Û¥¹¥È̾¤È PID ¤òÁȤ߹ç¤ï¤»¤¿Ì¾Á°) ¤òºîÀ®¤·¡¢ +をサポートしているかに依存しないようにしたい場合、 +移植性のある方法は、同じファイルシステム上に他と名前の重ならない +ファイル (例えばホスト名と PID を組み合わせた名前) を作成し、 .BR link (2) -¤ò»ÈÍѤ·¤Æ¤½¤Î¥í¥Ã¥¯¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯¤òºîÀ®¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£ +を使用してそのロックファイルへのリンクを作成することである。 .\"O If .\"O .BR link (2) .\"O returns 0, the lock is successful. @@ -628,11 +628,11 @@ NFS .\"O on the unique file to check if its link count has increased to 2, .\"O in which case the lock is also successful. .BR link (2) -¥³¡¼¥ë¤ÎÊÖ¤êÃͤ¬ 0 ¤Ê¤é¤Ð¥í¥Ã¥¯¤ËÀ®¸ù¤·¤Æ¤¤¤ë¡£ -¤¢¤ë¤¤¤Ï¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤Ë +コールの返り値が 0 ならばロックに成功している。 +あるいは、そのファイルに .BR stat (2) -¤ò»ÈÍѤ·¤Æ¥ê¥ó¥¯¿ô (link count) ¤¬ 2 ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ -¤½¤¦¤Ê¤Ã¤Æ¤¤¤ì¤Ð¡¢Æ±¤¸¤¯¥í¥Ã¥¯¤ËÀ®¸ù¤·¤Æ¤¤¤ë¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ +を使用してリンク数 (link count) が 2 になっているかをチェックする。 +そうなっていれば、同じくロックに成功しているということである。 .TP .B O_LARGEFILE (LFS) @@ -656,37 +656,37 @@ NFS .\"O method of accessing large files on 32-bit systems (see .\"O .BR feature_test_macros (7)). .I off_t -¤Ç¤Ï¥µ¥¤¥º¤òɽ¤»¤Ê¤¤ (¤À¤À¤· +ではサイズを表せない (だだし .I off64_t -¤Ç¤Ï¥µ¥¤¥º¤òɽ¤»¤ë) ¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó²Äǽ¤Ë¤¹¤ë¡£ -¤³¤ÎÄêµÁ¤òÍ­¸ú¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ -(¡Ö¤É¤Î¡×¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤è¤ê¤âÁ°¤Ë) +ではサイズを表せる) ファイルをオープン可能にする。 +この定義を有効にするためには、 +(「どの」ヘッダファイルをインクルードするよりも前に) .B _LARGEFILE64_SOURCE -¥Þ¥¯¥í¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -32¥Ó¥Ã¥È¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤ÆÂ礭¤Ê¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤¹¤ëÊýË¡¤òÆÀ¤¿¤¤¾ì¹ç¡¢ +マクロを定義しなければならない。 +32ビットシステムにおいて大きなファイルにアクセスする方法を得たい場合、 .RB ( O_LARGEFILE -¤ò»È¤¦¤è¤ê¤â) +を使うよりも) .B _FILE_OFFSET_BITS -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤ò¥»¥Ã¥È¤¹¤ëÊý¤¬Ë¾¤Þ¤·¤¤ÊýË¡¤Ç¤¢¤ë +機能検査マクロをセットする方が望ましい方法である .RB ( feature_test_macros (7) -¤ò»²¾È)¡£ +を参照)。 .TP .\"O .BR O_NOATIME " (Since Linux 2.6.8)" -.BR O_NOATIME " (Linux 2.6.8 °Ê¹ß)" +.BR O_NOATIME " (Linux 2.6.8 以降)" .\"O Do not update the file last access time (st_atime in the inode) .\"O when the file is .\"O .BR read (2). -¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ +ファイルに対して .BR read (2) -¤¬¼Â¹Ô¤µ¤ì¤¿¤È¤­¤Ë¡¢ºÇ½ª¥¢¥¯¥»¥¹»þ¹ï (inode ¤Î st_atime) ¤ò¹¹¿·¤·¤Ê¤¤¡£ +が実行されたときに、最終アクセス時刻 (inode の st_atime) を更新しない。 .\"O This flag is intended for use by indexing or backup programs, .\"O where its use can significantly reduce the amount of disk activity. -¤³¤Î¥Õ¥é¥°¤Ï¥¤¥ó¥Ç¥Ã¥¯¥¹ºîÀ®¤ä¥Ð¥Ã¥¯¥¢¥Ã¥×¥×¥í¥°¥é¥à¤Ç»È¤¦¤³¤È¤ò°Õ¿Þ¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤ò»È¤¦¤È¥Ç¥£¥¹¥¯¤ËÂФ¹¤ëÁàºî¤òÂçÉý¤Ë¸º¤é¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +このフラグはインデックス作成やバックアッププログラムで使うことを意図している。 +これを使うとディスクに対する操作を大幅に減らすことができる。 .\"O This flag may not be effective on all file systems. .\"O One example is NFS, where the server maintains the access time. -¤³¤Î¥Õ¥é¥°¤ÏÁ´¤Æ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ËÂФ·¤ÆÍ­¸ú¤Ç¤¢¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -¤½¤Î°ìÎ㤬 NFS ¤Ç¤¢¤ê¡¢¥µ¡¼¥Ð¤¬¥¢¥¯¥»¥¹»þ¹ï¤ò´ÉÍý¤·¤Æ¤¤¤ë¡£ +このフラグは全てのファイルシステムに対して有効であるわけではない。 +その一例が NFS であり、サーバがアクセス時刻を管理している。 .\" The O_NOATIME flag also affects the treatment of st_atime .\" by mmap() and readdir(2), MTK, Dec 04. .TP @@ -698,13 +698,13 @@ NFS .\"O \(em it will not become the process's controlling terminal even if the .\"O process does not have one. .I pathname -¤¬Ã¼Ëö (terminal) ¥Ç¥Ð¥¤¥¹ +が端末 (terminal) デバイス \(em .BR tty (4) -»²¾È +参照 \(em -¤ò»Ø¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢¤¿¤È¤¨¤½¤Î¥×¥í¥»¥¹¤¬À©¸æüËö¤ò»ý¤Ã¤Æ¤¤¤Ê¤¯¤Æ¤â¡¢ -¥ª¡¼¥×¥ó¤·¤¿¥Õ¥¡¥¤¥ë¤ÏÀ©¸æüËö¤Ë¤Ï¤Ê¤é¤Ê¤¤¡£ +を指している場合に、たとえそのプロセスが制御端末を持っていなくても、 +オープンしたファイルは制御端末にはならない。 .TP .B O_NOFOLLOW .\"O If \fIpathname\fP is a symbolic link, then the open fails. @@ -714,16 +714,16 @@ NFS .\"O .\" The headers from glibc 2.0.100 and later include a .\"O .\" definition of this flag; \fIkernels before 2.1.126 will ignore it if .\"O .\" used\fP. -\fIpathname\fP ¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤À¤Ã¤¿¾ì¹ç¡¢¥ª¡¼¥×¥ó¤Ï¼ºÇÔ¤¹¤ë¡£ -¤³¤ì¤Ï FreeBSD ¤Î³ÈÄ¥¤Ç¡¢Linux ¤Ë¤Ï 2.1.126 ¤è¤êÄɲ䵤줿¡£ -pathname ¤ÎÁ°¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È (earlier component; -ÌõÃð: ºÇ¸å¤Î¥Ç¥£¥ì¥¯¥È¥ê¥»¥Ñ¥ì¡¼¥¿¤è¤êÁ°¤ÎÉôʬ) ¤¬ -¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ç¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢¤½¤ì¤¬»Ø¤¹À褬»²¾È¤µ¤ì¤ë¡£ -.\" glibc 2.0.100 °Ê¹ß¤Î¥Ø¥Ã¥À¡¼¤Ë¤Ï¤³¤Î¥Õ¥é¥°¤ÎÄêµÁ¤¬¤¢¤ë¡£ -.\" \fI2.1.126 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç»ÈÍѤ·¤¿¾ì¹ç¤Ë¤Ï̵»ë¤µ¤ì¤ë¡£\fP +\fIpathname\fP がシンボリック・リンクだった場合、オープンは失敗する。 +これは FreeBSD の拡張で、Linux には 2.1.126 より追加された。 +pathname の前のコンポーネント (earlier component; +訳註: 最後のディレクトリセパレータより前の部分) が +シンボリック・リンクである場合には、それが指す先が参照される。 +.\" glibc 2.0.100 以降のヘッダーにはこのフラグの定義がある。 +.\" \fI2.1.126 以前のカーネルで使用した場合には無視される。\fP .TP .\"O .BR O_NONBLOCK " or " O_NDELAY -.BR O_NONBLOCK " ¤Þ¤¿¤Ï " O_NDELAY +.BR O_NONBLOCK " または " O_NDELAY .\"O When possible, the file is opened in nonblocking mode. .\"O Neither the .\"O .BR open () @@ -735,19 +735,19 @@ pathname .\"O .B O_NONBLOCK .\"O in conjunction with mandatory file locks and with file leases, see .\"O .BR fcntl (2). -²Äǽ¤Ê¤é¤Ð¡¢¥Õ¥¡¥¤¥ë¤ÏÈóÄä»ß (nonblocking) ¥â¡¼¥É¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£ +可能ならば、ファイルは非停止 (nonblocking) モードでオープンされる。 .BR open () -¤â¡¢ÊÖ¤·¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ¹¤ë°Ê¸å¤Î¤¹¤Ù¤Æ¤ÎÁàºî¤â -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤òÂÔ¤¿¤»¤ë¤³¤È¤Ï¤Ê¤¤¡£ -FIFO (¥Í¡¼¥à¥É¡¦¥Ñ¥¤¥×) ¤ò°·¤¦¾ì¹ç¤Ë¤Ï +も、返したファイル・ディスクリプタに対する以後のすべての操作も +呼び出したプロセスを待たせることはない。 +FIFO (ネームド・パイプ) を扱う場合には .BR fifo (7) -¤â»²¾È¤¹¤ë¤³¤È¡£ -¶¯À©¥Õ¥¡¥¤¥ë¥í¥Ã¥¯ (mandatory file lock) ¤ä¥Õ¥¡¥¤¥ë¥ê¡¼¥¹ (file lease) -¤ÈÁȤ߹ç¤ï¤»¤¿¾ì¹ç¤Î¡¢ +も参照すること。 +強制ファイルロック (mandatory file lock) やファイルリース (file lease) +と組み合わせた場合の、 .B O_NONBLOCK -¤Î¸ú²Ì¤Ë¤Ä¤¤¤Æ¤ÎµÄÏÀ¤Ï¡¢ +の効果についての議論は、 .BR fcntl (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .TP .B O_SYNC .\"O The file is opened for synchronous I/O. @@ -756,13 +756,13 @@ FIFO ( .\"O on the resulting file descriptor will block the calling process until .\"O the data has been physically written to the underlying hardware. .\"O .IR "But see NOTES below" . -¥Õ¥¡¥¤¥ë¤ÏƱ´ü (synchronous) I/O ¥â¡¼¥É¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£ +ファイルは同期 (synchronous) I/O モードでオープンされる。 .BR open () -¤¬ÊÖ¤·¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ +が返したファイル・ディスクリプタに対して .BR write (2) -¤ò¹Ô¤¦¤È¡¢É¬¤º¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ò¥Ö¥í¥Ã¥¯¤·¡¢ -³ºÅö¥Ï¡¼¥É¥¦¥§¥¢¤ËʪÍýŪ¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¤Þ¤ÇÊÖ¤é¤Ê¤¤¡£ -.I °Ê²¼¤Î¡ÖÃí°Õ¡×¤Î¾Ï¤â»²¾È¡£ +を行うと、必ず呼び出したプロセスをブロックし、 +該当ハードウェアに物理的に書き込まれるまで返らない。 +.I 以下の「注意」の章も参照。 .TP .B O_TRUNC .\"O If the file already exists and is a regular file and the open mode allows @@ -777,24 +777,24 @@ FIFO ( .\"O Otherwise the effect of .\"O .B O_TRUNC .\"O is unspecified. -¥Õ¥¡¥¤¥ë¤¬´û¤Ë¸ºß¤·¡¢Ä̾ï¥Õ¥¡¥¤¥ë¤Ç¤¢¤ê¡¢ -½ñ¤­¹þ¤ß²Ä¥â¡¼¥É¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë -(¤Ä¤Þ¤ê¡¢ -.BR O_RDWR "¤Þ¤¿¤Ï" O_WRONLY -¤Î) ¾ì¹ç¡¢Ä¹¤µ 0 ¤ËÀÚ¤êµÍ¤á (truncate) ¤é¤ì¤ë¡£ -¥Õ¥¡¥¤¥ë¤¬ FIFO ¤Þ¤¿¤ÏüËö¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¡¢ +ファイルが既に存在し、通常ファイルであり、 +書き込み可モードでオープンされている +(つまり、 +.BR O_RDWR "または" O_WRONLY +の) 場合、長さ 0 に切り詰め (truncate) られる。 +ファイルが FIFO または端末デバイスファイルの場合、 .B O_TRUNC -¥Õ¥é¥°¤Ï̵»ë¤µ¤ì¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢ +フラグは無視される。 +それ以外の場合、 .B O_TRUNC -¤Î¸ú²Ì¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +の効果は未定義である。 .PP .\"O Some of these optional flags can be altered using .\"O .BR fcntl (2) .\"O after the file has been opened. -¤³¤ì¤é¤ÎÁªÂò¥Õ¥é¥°¤Î¤¤¤¯¤Ä¤«¤Ï¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤·¤¿¸å¤Ç¤â +これらの選択フラグのいくつかはファイルをオープンした後でも .BR fcntl (2) -¤ò»ÈÍѤ·¤ÆÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使用して変更することができる。 .\"O .BR creat () .\"O is equivalent to @@ -804,15 +804,15 @@ FIFO ( .\"O equal to .\"O .BR O_CREAT|O_WRONLY|O_TRUNC . .BR creat () -¤Ï +は .I flags -¤Ë +に .B O_CREAT|O_WRONLY|O_TRUNC -¤ò»ØÄꤷ¤Æ +を指定して .BR open () -¤ò¹Ô¤¦¤Î¤ÈÅù²Á¤Ç¤¢¤ë¡£ +を行うのと等価である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR open () .\"O and .\"O .BR creat () @@ -821,15 +821,15 @@ FIFO ( .\"O .I errno .\"O is set appropriately). .BR open () -¤È +と .BR creat () -¤Ï¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹ -(¤½¤Î¾ì¹ç¤Ï +は新しいファイル・ディスクリプタを返す。 +エラーが発生した場合は \-1 を返す +(その場合は .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë)¡£ +が適切に設定される)。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O The requested access to the file is not allowed, or search permission @@ -839,12 +839,12 @@ FIFO ( .\"O is not allowed. .\"O (See also .\"O .BR path_resolution (7).) -¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ëÍ׵ᤵ¤ì¤¿¥¢¥¯¥»¥¹¤¬µö¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ +ファイルに対する要求されたアクセスが許されていないか、 .I pathname -¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤Î²¿¤ì¤«¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¸¡º÷µö²Ä¤¬¤Ê¤«¤Ã¤¿¡£ -¤Þ¤¿¤Ï¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤»¤º¡¢¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ø¤Î½ñ¤­¹þ¤ßµö²Ä¤¬¤Ê¤«¤Ã¤¿¡£ +のディレクトリ部分の何れかのディレクトリに検索許可がなかった。 +またはファイルが存在せず、親ディレクトリへの書き込み許可がなかった。 .RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È¡£) +も参照すること。) .TP .B EEXIST .\"O .I pathname @@ -852,21 +852,21 @@ FIFO ( .\"O .BR O_CREAT " and " O_EXCL .\"O were used. .I pathname -¤Ï´û¤Ë¸ºß¤·¡¢ -.BR O_CREAT " ¤È " O_EXCL -¤¬»ÈÍѤµ¤ì¤¿¡£ +は既に存在し、 +.BR O_CREAT " と " O_EXCL +が使用された。 .TP .B EFAULT .\"O .I pathname .\"O points outside your accessible address space. .I pathname -¤Î»Ø¤¹Îΰ褬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤Ê¤¤¡£ +の指す領域がアクセス可能なアドレス空間にない。 .TP .B EFBIG .\"O See .\"O .BR EOVERFLOW . .B EOVERFLOW -»²¾È¡£ +参照。 .TP .B EINTR .\"O While blocked waiting to complete an open of a slow device @@ -874,13 +874,13 @@ FIFO ( .\"O .BR fifo (7)), .\"O the call was interrupted by a signal handler; see .\"O .BR signal (7). -ÃÙ¤¤¥Ç¥Ð¥¤¥¹ -(Î㤨¤Ð FIFO¡¢ +遅いデバイス +(例えば FIFO、 .BR fifo (7) -»²¾È) ¤Î¥ª¡¼¥×¥ó¤¬´°Î»¤¹¤ë¤Î¤òÂԤäÆÄä»ß¤·¤Æ¤¤¤ë´Ö¤Ë -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¡£ +参照) のオープンが完了するのを待って停止している間に +システムコールがシグナルハンドラにより割り込まれた。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EISDIR .\"O .I pathname @@ -891,12 +891,12 @@ FIFO ( .\"O .B O_RDWR .\"O is set). .I pathname -¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤·¤Æ¤ª¤ê¡¢½ñ¤­¹þ¤ßÍ׵᤬´Þ¤Þ¤ì¤Æ¤¤¤¿ -(¤Ä¤Þ¤ê +はディレクトリを参照しており、書き込み要求が含まれていた +(つまり .B O_WRONLY -¤Þ¤¿¤Ï +または .B O_RDWR -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë)¡£ +が設定されている)。 .TP .B ELOOP .\"O Too many symbolic links were encountered in resolving @@ -905,24 +905,24 @@ FIFO ( .\"O .I pathname .\"O was a symbolic link. .I pathname -¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ -¤Þ¤¿¤Ï \fBO_NOFOLLOW\fP ¤¬»ØÄꤵ¤ì¤Æ¤ª¤ê¡¢ +を解決する際に遭遇したシンボリック・リンクが多過ぎる。 +または \fBO_NOFOLLOW\fP が指定されており、 .I pathname -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤À¤Ã¤¿¡£ +がシンボリックリンクだった。 .TP .B EMFILE .\"O The process already has the maximum number of files open. -¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¿ô¤¬¤¹¤Ç¤ËºÇÂç¿ô¤Ë㤷¤Æ¤¤¤ë¡£ +プロセスがオープンしているファイル数がすでに最大数に達している。 .TP .B ENAMETOOLONG .\"O .I pathname .\"O was too long. .I pathname -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENFILE .\"O The system limit on the total number of open files has been reached. -¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¤Î¹ç·×¿ô¤¬¥·¥¹¥Æ¥àÀ©¸Â¤Ë㤷¤Æ¤¤¤ë¡£ +オープンできるファイルの合計数がシステム制限に達している。 .TP .B ENODEV .\"O .I pathname @@ -931,10 +931,10 @@ FIFO ( .\"O .B ENXIO .\"O must be returned.) .I pathname -¤¬¥Ç¥Ð¥¤¥¹¡¦¥¹¥Ú¥·¥ã¥ë¡¦¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤ª¤ê¡¢Âбþ¤¹¤ë¥Ç¥Ð¥¤¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£ -(¤³¤ì¤Ï Linux ¥«¡¼¥Í¥ë¤Î¥Ð¥°¤Ç¤¢¤ê¡¢¤³¤Î¾ì¹ç¤Ë¤Ï +がデバイス・スペシャル・ファイルを参照しており、対応するデバイスが存在しない。 +(これは Linux カーネルのバグであり、この場合には .B ENXIO -¤¬ÊÖ¤µ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë) +が返されるべきである) .TP .B ENOENT .\"O .B O_CREAT @@ -943,14 +943,14 @@ FIFO ( .\"O .I pathname .\"O does not exist or is a dangling symbolic link. .B O_CREAT -¤¬ÀßÄꤵ¤ì¤Æ¤ª¤é¤º¡¢¤«¤Ä»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢ +が設定されておらず、かつ指定されたファイルが存在しない。 +または、 .I pathname -¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬Â¸ºß¤·¤Ê¤¤¤«²õ¤ì¤¿ (dangling) ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ç¤¢¤ë¡£ +のディレクトリ部分が存在しないか壊れた (dangling) シンボリック・リンクである。 .TP .B ENOMEM .\"O Insufficient kernel memory was available. -¥«¡¼¥Í¥ë¤ËÍøÍѤǤ­¤ë¥á¥â¥ê¤¬ÉÔ­¤·¤Æ¤¤¤ë +カーネルに利用できるメモリが不足している .TP .B ENOSPC .\"O .I pathname @@ -958,9 +958,9 @@ FIFO ( .\"O .I pathname .\"O has no room for the new file. .I pathname -¤òºîÀ®¤¹¤ëɬÍפ¬¤¢¤ë¤¬¡¢ +を作成する必要があるが、 .I pathname -¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥Ð¥¤¥¹¤Ë¿·¤·¤¤¥Õ¥¡¥¤¥ë¤Î¤¿¤á¤Î¶õ¤­ÍÆÎ̤¬¤Ê¤¤¡£ +を含んでいるデバイスに新しいファイルのための空き容量がない。 .TP .B ENOTDIR .\"O A component used as a directory in @@ -969,10 +969,10 @@ FIFO ( .\"O .I pathname .\"O was not a directory. .I pathname -¤Ë´Þ¤Þ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤Î¤É¤ì¤«¤¬¼ÂºÝ¤Ë¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ -¤Þ¤¿¤Ï \fBO_DIRECTORY\fP ¤¬»ØÄꤵ¤ì¤Æ¤ª¤ê¡¢ +に含まれるディレクトリ部分のどれかが実際にはディレクトリでない。 +または \fBO_DIRECTORY\fP が指定されており、 .I pathname -¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +がディレクトリでない。 .TP .B ENXIO .\"O .BR O_NONBLOCK " | " O_WRONLY @@ -980,10 +980,10 @@ FIFO ( .\"O no process has the file open for reading. .\"O Or, the file is a device special file and no corresponding device exists. .BR O_NONBLOCK " | " O_WRONLY -¤¬ÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤¬ FIFO ¤Ç -¤½¤Î¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢¥Õ¥¡¥¤¥ë¤¬¥Ç¥Ð¥¤¥¹¡¦¥¹¥Ú¥·¥ã¥ë¡¦¥Õ¥¡¥¤¥ë¤Ç -Âбþ¤¹¤ë¥Ç¥Ð¥¤¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£ +が設定されており、指定したファイルが FIFO で +そのファイルを読み込みのためにオープンしているプロセスが存在しない。 +または、ファイルがデバイス・スペシャル・ファイルで +対応するデバイスが存在しない。 .TP .B EOVERFLOW .\"O .I pathname @@ -1002,19 +1002,19 @@ FIFO ( .\"O .B EFBIG .\"O for this case. .I pathname -¤¬»²¾È¤·¤Æ¤¤¤ë¤Î¤¬¡¢Â礭²á¤®¤Æ¥ª¡¼¥×¥ó¤Ç¤­¤Ê¤¤Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ -Ä̾¤³¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤Ï¡¢32 ¥Ó¥Ã¥È¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¾å¤Ç +が参照しているのが、大き過ぎてオープンできない通常のファイルである。 +通常、このエラーが発生するは、32 ビットプラットフォーム上で .I -D_FILE_OFFSET_BITS=64 -¤ò»ØÄꤻ¤º¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¡¢¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤¬ +を指定せずにコンパイルされたアプリケーションが、ファイルサイズが .I (2<31)-1 -¥Ó¥Ã¥È¤òĶ¤¨¤ë¥Õ¥¡¥¤¥ë¤ò³«¤³¤¦¤È¤·¤¿¾ì¹ç¤Ç¤¢¤ë¡£ -¾åµ­¤Î +ビットを超えるファイルを開こうとした場合である。 +上記の .B O_LARGEFILE -¤â»²¾È¡£ -¤³¤ì¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ç¤¢¤ë¡£ -2.6.24 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢Linux ¤Ï¤³¤Î¾ì¹ç¤Ë¥¨¥é¡¼ +も参照。 +これは POSIX.1-2001 で規定されているエラーである。 +2.6.24 より前のカーネルでは、Linux はこの場合にエラー .B EFBIG -¤òÊÖ¤·¤Æ¤¤¤¿¡£ +を返していた。 .\" See http://bugzilla.kernel.org/show_bug.cgi?id=7253 .\" "Open of a large file on 32-bit fails with EFBIG, should be EOVERFLOW" .\" Reported 2006-10-03 @@ -1027,26 +1027,26 @@ FIFO ( .\"O did not match the owner of the file and the caller was not privileged .\"O .RB ( CAP_FOWNER ). .B O_NOATIME -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ -.\" ¸·Ì©¤Ë¸À¤¨¤Ð¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID...(MTK) -¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤È°ìÃפ»¤º¡¢¤«¤Ä¸Æ¤Ó½Ð¤·¸µ¤ËÆø¢ +フラグが指定されたが、呼び出し元の実効ユーザー ID が +.\" 厳密に言えば、呼び出し元のファイルシステム UID...(MTK) +ファイルの所有者と一致せず、かつ呼び出し元に特権 .RB ( CAP_FOWNER ) -¤¬¤Ê¤¤¡£ +がない。 .TP .B EROFS .\"O .I pathname .\"O refers to a file on a read-only file system and write access was .\"O requested. .I pathname -¤¬Æɤ߹þ¤ßÀìÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤ª¤ê¡¢ -½ñ¤­¹þ¤ß¥¢¥¯¥»¥¹¤¬Í׵ᤵ¤ì¤¿¡£ +が読み込み専用のファイルシステム上のファイルを参照しており、 +書き込みアクセスが要求された。 .TP .B ETXTBSY .\"O .I pathname .\"O refers to an executable image which is currently being executed and .\"O write access was requested. .I pathname -¤¬¸½ºß¼Â¹ÔÃæ¤Î¼Â¹Ô¥¤¥á¡¼¥¸¤ò»²¾È¤·¤Æ¤ª¤ê¡¢½ñ¤­¹þ¤ß¤¬Í׵ᤵ¤ì¤¿¡£ +が現在実行中の実行イメージを参照しており、書き込みが要求された。 .TP .B EWOULDBLOCK .\"O The @@ -1055,11 +1055,11 @@ FIFO ( .\"O (see .\"O .BR fcntl (2)). .B O_NONBLOCK -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤Ë¤ÏÌ·½â¤¹¤ë¥ê¡¼¥¹¤¬ÀßÄꤵ¤ì¤Æ¤¤¤¿ +フラグが指定されたが、そのファイルには矛盾するリースが設定されていた .RB ( fcntl (2) -»²¾È)¡£ +参照)。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O The .\"O .BR O_DIRECTORY , @@ -1072,23 +1072,23 @@ SVr4, 4.3BSD, POSIX.1-2001. .\"O .I any .\"O header files) .\"O to obtain their definitions. -¥Õ¥é¥° +フラグ .BR O_DIRECTORY , .BR O_NOATIME , .B O_NOFOLLOW -¤Ï Linux ÆÃÍ­¤Î¤â¤Î¤Ç¤¢¤ê¡¢ -¤³¤ì¤é¤Î¥Õ¥é¥°¤ÎÄêµÁ¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡¢ -(¡Ö¤É¤Î¡×¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤è¤ê¤âÁ°¤Ë) +は Linux 特有のものであり、 +これらのフラグの定義を得るためには、 +(「どの」ヘッダファイルをインクルードするよりも前に) .B _GNU_SOURCE -¤òÄêµÁ¤¹¤ëɬÍפ¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +を定義する必要があるかもしれない。 .\"O The .\"O .BR O_CLOEXEC .\"O flag is not specified in POSIX.1-2001, .\"O but is specified in POSIX.1-2008. .BR O_CLOEXEC -¥Õ¥é¥°¤Ï POSIX.1-2001 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -POSIX.1-2008 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +フラグは POSIX.1-2001 では規定されていないが、 +POSIX.1-2008 で規定されている。 .\"O .B O_DIRECT .\"O is not specified in POSIX; one has to define @@ -1098,30 +1098,30 @@ POSIX.1-2008 .\"O header files) .\"O to get its definition. .B O_DIRECT -¤Ï POSIX ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +は POSIX では規定されていない。 .B O_DIRECT -¤ÎÄêµÁ¤òÆÀ¤ë¤Ë¤Ï -(¡Ö¤É¤Î¡×¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤è¤ê¤âÁ°¤Ë) +の定義を得るには +(「どの」ヘッダファイルをインクルードするよりも前に) .B _GNU_SOURCE -¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を定義しなければならない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Under Linux, the .\"O .B O_NONBLOCK .\"O flag indicates that one wants to open .\"O but does not necessarily have the intention to read or write. -Linux ¤Ç¤Ï¡¢ +Linux では、 .B O_NONBLOCK -¥Õ¥é¥°¤Ï¡¢ -open ¤ò¼Â¹Ô¤·¤¿¤¤¤¬ read ¤Þ¤¿¤Ï write ¤ò¼Â¹Ô¤¹¤ë°Õ¿Þ¤Ï -ɬ¤º¤·¤â¤Ê¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +フラグは、 +open を実行したいが read または write を実行する意図は +必ずしもないことを意味する。 .\"O This is typically used to open devices in order to get a file descriptor .\"O for use with .\"O .BR ioctl (2). -¤³¤ì¤Ï +これは .BR ioctl (2) -¤Î¤¿¤á¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Ë¡¢ -¥Ç¥Ð¥¤¥¹¤ò¥ª¡¼¥×¥ó¤¹¤ë¤È¤­¤Ë¤è¤¯ÍѤ¤¤é¤ì¤ë¡£ +のためのファイルディスクリプタを取得するために、 +デバイスをオープンするときによく用いられる。 .\"O Unlike the other values that can be specified in .\"O .IR flags , @@ -1133,25 +1133,25 @@ open .\"O Rather, they define the low order two bits of .\"O .IR flags , .\"O and are defined respectively as 0, 1, and 2. -¡Ö¥¢¥¯¥»¥¹¥â¡¼¥É¡×¤ÎÃÍ +「アクセスモード」の値 .BR O_RDONLY ", " O_WRONLY ", " O_RDWR -¤Ï¡¢ +は、 .I flags -¤Ë»ØÄê¤Ç¤­¤ë¾¤ÎÃͤȰ㤤¡¢¸Ä¡¹¤Î¥Ó¥Ã¥È¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢ -¤³¤ì¤é¤ÎÃÍ¤Ï +に指定できる他の値と違い、個々のビットを指定するものではなく、 +これらの値は .I flags -¤Î²¼°Ì 2 ¥Ó¥Ã¥È¤òÄêµÁ¤¹¤ë¡£ +の下位 2 ビットを定義する。 .BR O_RDONLY ", " O_WRONLY ", " O_RDWR -¤Ï¤½¤ì¤¾¤ì 0, 1, 2 ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +はそれぞれ 0, 1, 2 に定義されている。 .\"O In other words, the combination .\"O .B "O_RDONLY | O_WRONLY" .\"O is a logical error, and certainly does not have the same meaning as .\"O .BR O_RDWR . -¸À¤¤´¹¤¨¤ë¤È¡¢ +言い換えると、 .B "O_RDONLY | O_WRONLY" -¤ÎÁȤ߹ç¤ï¤»¤ÏÏÀÍýŪ¤Ë´Ö°ã¤¤¤Ç¤¢¤ê¡¢³Î¤«¤Ë +の組み合わせは論理的に間違いであり、確かに .B O_RDWR -¤ÈƱ¤¸°ÕÌ£¤Ç¤Ï¤Ê¤¤¡£ +と同じ意味ではない。 .\"O Linux reserves the special, nonstandard access mode 3 (binary 11) in .\"O .I flags .\"O to mean: @@ -1161,16 +1161,16 @@ open .\"O descriptor that is only to be used for device-specific .\"O .BR ioctl (2) .\"O operations. -Linux ¤Ç¤Ï¡¢ÆÃÊ̤ʡ¢Èóɸ½à¤Ê¥¢¥¯¥»¥¹¥â¡¼¥É¤È¤·¤Æ 3 (¥Ð¥¤¥Ê¥ê¤Ç¤Ï 11) ¤¬ -ͽÌ󤵤ì¤Æ¤ª¤ê +Linux では、特別な、非標準なアクセスモードとして 3 (バイナリでは 11) が +予約されており .I flags -¤Ë»ØÄê¤Ç¤­¤ë¡£ -¤³¤Î¥¢¥¯¥»¥¹¥â¡¼¥É¤ò»ØÄꤹ¤ë¤È¡¢¥Õ¥¡¥¤¥ë¤ÎÆɤ߽Ф·/½ñ¤­¹þ¤ßµö²Ä¤ò¥Á¥§¥Ã¥¯¤·¡¢ -Æɤ߽Ф·¤Ë¤â½ñ¤­¹þ¤ß¤Ë¤â»ÈÍѤǤ­¤Ê¤¤¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¤³¤ÎÈóɸ½à¤Î¥¢¥¯¥»¥¹¥â¡¼¥É¤Ï¤¤¤¯¤Ä¤«¤Î Linux ¥É¥é¥¤¥Ð¤Ç»ÈÍѤµ¤ì¤Æ¤ª¤ê¡¢ -¥Ç¥Ð¥¤¥¹¸ÇÍ­¤Î +に指定できる。 +このアクセスモードを指定すると、ファイルの読み出し/書き込み許可をチェックし、 +読み出しにも書き込みにも使用できないディスクリプタを返す。 +この非標準のアクセスモードはいくつかの Linux ドライバで使用されており、 +デバイス固有の .BR ioctl (2) -Áàºî¤Ë¤Î¤ß»ÈÍѤµ¤ì¤ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¤¿¤á¤Ë»È¤ï¤ì¤Æ¤¤¤ë¡£ +操作にのみ使用されるディスクリプタを返すために使われている。 .\" See for example util-linux's disk-utils/setfdprm.c .\" For some background on access mode 3, see .\" http://thread.gmane.org/gmane.linux.kernel/653123 @@ -1182,8 +1182,8 @@ Linux .\"O varies among implementations. .\"O On many systems the file is actually truncated. .B O_RDONLY | O_TRUNC -¤Î±Æ¶Á¤Ï̤ÄêµÁ¤Ç¤¢¤ê¡¢¤½¤ÎÆ°ºî¤Ï¼ÂÁõ¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¡£ -¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¥Õ¥¡¥¤¥ë¤Ï¼ÂºÝ¤ËÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ +の影響は未定義であり、その動作は実装によって異なる。 +多くのシステムではファイルは実際に切り詰められる。 .\" Linux 2.0, 2.5: truncate .\" Solaris 5.7, 5.8: truncate .\" Irix 6.5: truncate @@ -1194,9 +1194,9 @@ Linux .\"O There are many infelicities in the protocol underlying NFS, affecting .\"O amongst others .\"O .BR O_SYNC " and " O_NDELAY . -NFS ¤ò¼Â¸½¤·¤Æ¤¤¤ë¥×¥í¥È¥³¥ë¤Ë¤Ï¿¤¯¤ÎÉÔÈ÷¤¬¤¢¤ê¡¢ÆÃ¤Ë -.BR O_SYNC " ¤È " O_NDELAY -¤Ë±Æ¶Á¤¹¤ë¡£ +NFS を実現しているプロトコルには多くの不備があり、特に +.BR O_SYNC " と " O_NDELAY +に影響する。 .\"O POSIX provides for three different variants of synchronized I/O, .\"O corresponding to the flags @@ -1204,11 +1204,11 @@ NFS .\"O .BR O_DSYNC , .\"O and .\"O .BR O_RSYNC . -POSIX ¤Ç¤Ï¡¢3 ¼ïÎà¤ÎƱ´ü I/O ¤¬Ä󶡤µ¤ì¤Æ¤ª¤ê¡¢ +POSIX では、3 種類の同期 I/O が提供されており、 .BR O_SYNC , .BR O_DSYNC , .BR O_RSYNC -¥Õ¥é¥°¤¬¤³¤ì¤ËÂбþ¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +フラグがこれに対応するものである。 .\"O Currently (2.6.31), Linux only implements .\"O .BR O_SYNC , .\"O but glibc maps @@ -1217,17 +1217,17 @@ POSIX .\"O .B O_RSYNC .\"O to the same numerical value as .\"O .BR O_SYNC . -º£¤Î¤È¤³¤í (¥«¡¼¥Í¥ë 2.6.31)¡¢ -Linux ¤Ç¤Ï +今のところ (カーネル 2.6.31)、 +Linux では .B O_SYNC -¤À¤±¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -glibc ¤Ï +だけが実装されているが、 +glibc は .B O_DSYNC -¤È +と .B O_RSYNC -¤Ë +に .B O_SYNC -¤ÈƱ¤¸¿ôÃͤò³ä¤êÅö¤Æ¤Æ¤¤¤ë¡£ +と同じ数値を割り当てている。 .\"O Most Linux file systems don't actually implement the POSIX .\"O .B O_SYNC .\"O semantics, which require all metadata updates of a write @@ -1235,23 +1235,23 @@ glibc .\"O .B O_DSYNC .\"O semantics, which require only actual file data and metadata necessary .\"O to retrieve it to be on disk by the time the system call returns. -¤Û¤È¤ó¤É¤Î Linux ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï¡¢¼ÂºÝ¤Ë¤Ï POSIX ¤Î +ほとんどの Linux のファイルシステムは、実際には POSIX の .B O_SYNC -¤ÎÆ°ºî¤Ç¤Ï¤Ê¤¯ +の動作ではなく .B O_DSYNC -¤ÎÆ°ºî¤À¤±¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¡£ -POSIX ¤Î +の動作だけを実装している。 +POSIX の .B O_SYNC -¤Ç¤Ï¡¢ +では、 .BR open () -¤¬¥æ¡¼¥¶¶õ´Ö¤ËÊÖ¤ëºÝ¤Ë¡¢½ñ¤­¹þ¤ß¤Ë´Ø¤¹¤ëÁ´¤Æ¤Î¥á¥¿¥Ç¡¼¥¿¤Î -¹¹¿·¤¬¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤Þ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ -°ìÊý¡¢ +がユーザ空間に返る際に、書き込みに関する全てのメタデータの +更新がディスクに書き込まれている必要がある。 +一方、 .B O_DSYNC -¤Ç¤Ï¡¢ +では、 .BR open () -¤¬ÊÖ¤ë¤Þ¤Ç¤Ë¡¢¼ÂºÝ¤Î¥Õ¥¡¥¤¥ë¤Î¥Ç¡¼¥¿¤È¤½¤Î¥Ç¡¼¥¿¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Ë -ɬÍפʥ᥿¥Ç¡¼¥¿¤À¤±¤¬¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤Þ¤ì¤Æ¤¤¤ì¤Ð¤è¤¤¡£ +が返るまでに、実際のファイルのデータとそのデータを取得するために +必要なメタデータだけがディスクに書き込まれていればよい。 .\"O Note that .\"O .BR open () @@ -1261,12 +1261,12 @@ POSIX .\"O .BR mknod (2) .\"O instead. .BR open () -¤Ï¥¹¥Ú¥·¥ã¥ë¡¦¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤¬¡¢ +はスペシャル・ファイルをオープンすることができるが、 .BR creat () -¤Ç¥¹¥Ú¥·¥ã¥ë¡¦¥Õ¥¡¥¤¥ë¤òºîÀ®¤Ç¤­¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -Âå¤ï¤ê¤Ë +でスペシャル・ファイルを作成できない点に注意すること。 +代わりに .BR mknod (2) -¤ò»ÈÍѤ¹¤ë¡£ +を使用する。 .LP .\"O On NFS file systems with UID mapping enabled, .\"O .BR open () @@ -1280,15 +1280,15 @@ POSIX .\"O by checking the .\"O permissions, but UID mapping is performed by the server upon .\"O read and write requests. -UID ¥Þ¥Ã¥Ô¥ó¥°¤ò»ÈÍѤ·¤Æ¤¤¤ë NFS ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +UID マッピングを使用している NFS ファイル・システムでは、 .BR open () -¤¬¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤·¤¿¾ì¹ç¤Ç¤â +がファイル・ディスクリプタを返した場合でも .BR read (2) -¤¬ \fBEACCES\fP ¤ÇµñÈݤµ¤ì¤ë¾ì¹ç¤¬¤¢¤ë¡£ -¤³¤ì¤Ï¥¯¥é¥¤¥¢¥ó¥È¤¬¥¢¥¯¥»¥¹µö²Ä¤Î¥Á¥§¥Ã¥¯¤ò¹Ô¤Ã¤Æ +が \fBEACCES\fP で拒否される場合がある。 +これはクライアントがアクセス許可のチェックを行って .BR open () -¤ò¼Â¹Ô¤¹¤ë¤¬¡¢Æɤ߹þ¤ß¤ä½ñ¤­¹þ¤ß¤ÎºÝ¤Ë¤Ï -¥µ¡¼¥Ð¡¼¤Ç UID ¥Þ¥Ã¥Ô¥ó¥°¤¬¹Ô¤ï¤ì¤ë¤¿¤á¤Ç¤¢¤ë¡£ +を実行するが、読み込みや書き込みの際には +サーバーで UID マッピングが行われるためである。 .\"O If the file is newly created, its .\"O .IR st_atime , @@ -1308,26 +1308,26 @@ UID .\"O Otherwise, if the file is modified because of the .\"O .B O_TRUNC .\"O flag, its st_ctime and st_mtime fields are set to the current time. -¥Õ¥¡¥¤¥ë¤¬¿·¤·¤¯ºîÀ®¤µ¤ì¤ë¤È¡¢ -¥Õ¥¡¥¤¥ë¤Î +ファイルが新しく作成されると、 +ファイルの .IR st_atime , .IR st_ctime , .I st_mtime -¥Õ¥£¡¼¥ë¥É -(¤½¤ì¤¾¤ìºÇ½ª¥¢¥¯¥»¥¹»þ¹ï¡¢ºÇ½ª¾õÂÖÊѹ¹»þ¹ï¡¢ºÇ½ª½¤Àµ»þ¹ï¤Ç¤¢¤ë¡£ +フィールド +(それぞれ最終アクセス時刻、最終状態変更時刻、最終修正時刻である。 .BR stat (2) -»²¾È) ¤¬¸½ºß»þ¹ï¤ËÀßÄꤵ¤ì¤ë¡£ -¤µ¤é¤Ë¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Î +参照) が現在時刻に設定される。 +さらに親ディレクトリの .I st_ctime -¤È +と .I st_mtime -¤â¸½ºß»þ¹ï¤ËÀßÄꤵ¤ì¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ç¡¢O_TRUNC ¥Õ¥é¥°¤Ç¥Õ¥¡¥¤¥ë¤¬½¤Àµ¤µ¤ì¤¿¤È¤­¤Ï¡¢ -¥Õ¥¡¥¤¥ë¤Î +も現在時刻に設定される。 +それ以外の場合で、O_TRUNC フラグでファイルが修正されたときは、 +ファイルの .I st_ctime -¤È +と .I st_mtime -¥Õ¥£¡¼¥ë¥É¤¬¸½ºß»þ¹ï¤ËÀßÄꤵ¤ì¤ë¡£ +フィールドが現在時刻に設定される。 .SS O_DIRECT .LP .\"O The @@ -1346,29 +1346,29 @@ UID .\"O operation in .\"O .BR xfsctl (3). .B O_DIRECT -¥Õ¥é¥°¤ò»ÈÍѤ¹¤ë¾ì¹ç¡¢¥æ¡¼¥¶¶õ´Ö¥Ð¥Ã¥Õ¥¡¤ÎŤµ¤ä¥¢¥É¥ì¥¹¡¢ -I/O ¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤Ë´Ø¤·¤Æ¥¢¥é¥¤¥ó¥á¥ó¥È¤ÎÀ©¸Â¤¬²Ý¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ -Linux ¤Ç¤Ï¡¢¥¢¥é¥¤¥ó¥á¥ó¥È¤ÎÀ©¸Â¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ä¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë -¤è¤Ã¤Æ°Û¤Ê¤ê¡¢Á´¤¯À©¸Â¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤â¤¢¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢¸½ºß¤Î¤È¤³¤í¡¢»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ä¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ËÂФ·¤Æ -¤³¤¦¤·¤¿À©¸Â¤¬¤¢¤ë¤«¤ò¸«¤Ä¤±¤ë¤¿¤á¤Î¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¸þ¤±¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ç -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÈó°Í¸¤Î¤â¤Î¤Ï¸ºß¤·¤Ê¤¤¡£ -¤¤¤¯¤Ä¤«¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢À©¸Â¤ò³Îǧ¤¹¤ë¤¿¤á¤ÎÆȼ«¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¬ -Ä󶡤µ¤ì¤Æ¤¤¤ë¡£Î㤨¤Ð¡¢ +フラグを使用する場合、ユーザ空間バッファの長さやアドレス、 +I/O のファイルオフセットに関してアラインメントの制限が課されることがある。 +Linux では、アラインメントの制限はファイルシステムやカーネルのバージョンに +よって異なり、全く制限が存在しない場合もある。 +しかしながら、現在のところ、指定されたファイルやファイルシステムに対して +こうした制限があるかを見つけるための、アプリケーション向けのインタフェースで +ファイルシステム非依存のものは存在しない。 +いくつかのファイルシステムでは、制限を確認するための独自のインタフェースが +提供されている。例えば、 .BR xfsctl (3) -¤Î +の .B XFS_IOC_DIOINFO -Ì¿Îá¤Ç¤¢¤ë¡£ +命令である。 .LP .\"O Under Linux 2.4, transfer sizes, and the alignment of the user buffer .\"O and the file offset must all be multiples of the logical block size .\"O of the file system. .\"O Under Linux 2.6, alignment to 512-byte boundaries .\"O suffices. -Linux 2.4 ¤Ç¤Ï¡¢Å¾Á÷¥µ¥¤¥º¡¢ -¥æ¡¼¥¶¡¼¥Ð¥Ã¥Õ¥¡¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¡¢¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤Ï¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÏÀÍý¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ÎÇÜ¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Linux 2.6 ¤Ç¤Ï¡¢512 ¥Ð¥¤¥È¤´¤È¤Î¶­³¦¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤ì¤Ð½¼Ê¬¤Ç¤¢¤ë¡£ +Linux 2.4 では、転送サイズ、 +ユーザーバッファのアラインメント、ファイルオフセットは、 +ファイルシステムの論理ブロックサイズの倍数でなければならない。 +Linux 2.6 では、512 バイトごとの境界に配置されていれば充分である。 .LP .\"O The .\"O .B O_DIRECT @@ -1380,12 +1380,12 @@ Linux 2.6 .\"O FreeBSD 4.x introduced .\"O a flag of the same name, but without alignment restrictions. .B O_DIRECT -¥Õ¥é¥°¤Ï SGI IRIX ¤ÇƳÆþ¤µ¤ì¤¿¡£SGI IRIX ¤Ë¤â Linux 2.4 ¤ÈƱÍͤΠ-(¥æ¡¼¥¶¡¼¥Ð¥Ã¥Õ¥¡¤Î) ¥¢¥é¥¤¥ó¥á¥ó¥È¤ÎÀ©¸Â¤¬¤¢¤ë¡£ -¤Þ¤¿¡¢IRIX ¤Ë¤ÏŬÀÚ¤ÊÇÛÃ֤ȥµ¥¤¥º¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Î +フラグは SGI IRIX で導入された。SGI IRIX にも Linux 2.4 と同様の +(ユーザーバッファの) アラインメントの制限がある。 +また、IRIX には適切な配置とサイズを取得するための .BR fcntl (2) -¥³¡¼¥ë¤¬¤¢¤ë¡£ -FreeBSD 4.x ¤âƱ¤¸Ì¾Á°¤Î¥Õ¥é¥°¤òƳÆþ¤·¤¿¤¬¡¢¥¢¥é¥¤¥ó¥á¥ó¥È¤ÎÀ©¸Â¤Ï¤Ê¤¤¡£ +コールがある。 +FreeBSD 4.x も同じ名前のフラグを導入したが、アラインメントの制限はない。 .LP .\"O .B O_DIRECT .\"O support was added under Linux in kernel version 2.4.10. @@ -1396,16 +1396,16 @@ FreeBSD 4.x .\"O .B EINVAL .\"O if it is used. .B O_DIRECT -¤¬ Linux ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤¿¤Î¤Ï¡¢¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó 2.4.10 ¤Ç¤¢¤ë¡£ -¸Å¤¤ Linux ¥«¡¼¥Í¥ë¤Ï¡¢¤³¤Î¥Õ¥é¥°¤òñ¤Ë̵»ë¤¹¤ë¡£ +が Linux でサポートされたのは、カーネルバージョン 2.4.10 である。 +古い Linux カーネルは、このフラグを単に無視する。 .B O_DIRECT -¥Õ¥é¥°¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤â¤¢¤ê¡¢¤½¤Î¾ì¹ç¤Ï¡¢ +フラグをサポートしていないファイルシステムもあり、その場合は、 .B O_DIRECT -¤ò»ÈÍѤ¹¤ë¤È +を使用すると .BR open () -¤Ï +は .B EINVAL -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .LP .\"O Applications should avoid mixing .\"O .B O_DIRECT @@ -1417,18 +1417,18 @@ FreeBSD 4.x .\"O Likewise, applications should avoid mixing .\"O .BR mmap (2) .\"O of files with direct I/O to the same files. -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢Æ±¤¸¥Õ¥¡¥¤¥ë¡¢ -ÆäËƱ¤¸¥Õ¥¡¥¤¥ë¤Î½ÅÊ£¤¹¤ë¥Ð¥¤¥ÈÎΰè¤ËÂФ·¤Æ¡¢ +アプリケーションは、同じファイル、 +特に同じファイルの重複するバイト領域に対して、 .B O_DIRECT -¤ÈÄ̾ï¤Î I/O ¤òº®¤¼¤Æ»È¤¦¤Î¤ÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¤³¤Î¤è¤¦¤Ê¾õ¶·¤Ë¤ª¤¤¤Æ°ì´ÓÀ­¤ÎÌäÂê¤òÀµ¤·¤¯ -°·¤¦¤³¤È¤¬¤Ç¤­¤ë¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢Á´ÂΤΠI/O ¥¹¥ë¡¼¥×¥Ã¥È¤Ï -¤É¤Á¤é¤«°ìÊý¤ò»ÈÍѤ¹¤ë¤È¤­¤ÈÈæ¤Ù¤ÆÄ㮤ˤʤë¤Ç¤¢¤í¤¦¡£ -ƱÍͤˡ¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢Æ±¤¸¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ +と通常の I/O を混ぜて使うのは避けるべきである。 +ファイルシステムがこのような状況において一貫性の問題を正しく +扱うことができる場合であっても、全体の I/O スループットは +どちらか一方を使用するときと比べて低速になるであろう。 +同様に、アプリケーションは、同じファイルに対して .BR mmap (2) -¤ÈľÀÜ I/O +と直接 I/O .RB ( O_DIRECT ) -¤òº®¤¼¤Æ»È¤¦¤Î¤âÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +を混ぜて使うのも避けるべきである。 .LP .\"O The behaviour of .\"O .B O_DIRECT @@ -1439,16 +1439,16 @@ FreeBSD 4.x .\"O .B O_DIRECT .\"O I/O will only bypass the page cache on the client; the server may .\"O still cache the I/O. -NFS ¤Ç +NFS で .B O_DIRECT -¤ò»È¤Ã¤¿¾ì¹ç¤ÎÆ°ºî¤Ï¥í¡¼¥«¥ë¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¾ì¹ç¤È°ã¤¦¡£ -¸Å¤¤¥«¡¼¥Í¥ë¤ä¡¢¤¢¤ë¼ï¤ÎÀßÄê¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥«¡¼¥Í¥ë¤Ï¡¢ +を使った場合の動作はローカルのファイルシステムの場合と違う。 +古いカーネルや、ある種の設定でコンパイルされたカーネルは、 .B O_DIRECT -¤È NFS ¤ÎÁȤ߹ç¤ï¤»¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -NFS ¥×¥í¥È¥³¥ë¼«ÂΤϥµ¡¼¥Ð¤Ë¥Õ¥é¥°¤òÅϤ¹µ¡Ç½¤Ï»ý¤Ã¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢ +と NFS の組み合わせをサポートしていないかもしれない。 +NFS プロトコル自体はサーバにフラグを渡す機能は持っていないので、 .B O_DIRECT -I/O ¤Ï¥¯¥é¥¤¥¢¥ó¥È¾å¤Î¥Ú¡¼¥¸¥­¥ã¥Ã¥·¥å¤ò¥Ð¥¤¥Ñ¥¹¤¹¤ë¤À¤±¤Ë¤Ê¤ê¡¢ -¥µ¡¼¥Ð¤Ï I/O ¤ò¥­¥ã¥Ã¥·¥å¤·¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +I/O はクライアント上のページキャッシュをバイパスするだけになり、 +サーバは I/O をキャッシュしているかもしれない。 .\"O The client asks the server to make the I/O .\"O synchronous to preserve the synchronous semantics of .\"O .BR O_DIRECT . @@ -1461,19 +1461,19 @@ I/O .\"O The Linux NFS client places no alignment restrictions on .\"O .B O_DIRECT .\"O I/O. -¥¯¥é¥¤¥¢¥ó¥È¤Ï¡¢ +クライアントは、 .B O_DIRECT -¤ÎƱ´üµ¡¹½¤òÊÝ»ý¤¹¤ë¤¿¤á¡¢¥µ¡¼¥Ð¤ËÂФ·¤Æ I/O ¤òƱ´ü¤·¤Æ¹Ô¤¦¤è¤¦¤Ë°ÍÍꤹ¤ë¡£ -¥µ¡¼¥Ð¤Ë¤è¤Ã¤Æ¤Ï¡¢¤³¤¦¤·¤¿¾õ¶·²¼¡¢ÆÃ¤Ë I/O ¥µ¥¤¥º¤¬¾®¤µ¤¤¾ì¹ç¤Ë -À­Ç½¤¬Â礭¤¯Îô²½¤¹¤ë¡£ -¤Þ¤¿¡¢¥µ¡¼¥Ð¤Ë¤è¤Ã¤Æ¤Ï¡¢I/O ¤¬°ÂÄꤷ¤¿¥¹¥È¥ì¡¼¥¸¤Ë¤Þ¤Ç¹Ô¤ï¤ì¤¿¤È¡¢ -¥¯¥é¥¤¥¢¥ó¥È¤ËÂФ·¤Æ±³¤ò¤Ä¤¯¤â¤Î¤â¤¢¤ë¡£ -¤³¤ì¤Ï¡¢¥µ¡¼¥Ð¤ÎÅŸ»¸Î¾ã¤¬µ¯¤³¤Ã¤¿ºÝ¤Ë¥Ç¡¼¥¿¤Î´°Á´À­¤¬Êݤ¿¤ì¤Ê¤¤ -´í¸±¤Ï¾¯¤·¤¢¤ë¤¬¡¢À­Ç½Ì̤ǤÎÉÔÍø¤Ê¾ò·ï¤ò²óÈò¤¹¤ë¤¿¤á¤Ë¹Ô¤ï¤ì¤Æ¤¤¤ë¡£ -Linux ¤Î NFS ¥¯¥é¥¤¥¢¥ó¥È¤Ç¤Ï +の同期機構を保持するため、サーバに対して I/O を同期して行うように依頼する。 +サーバによっては、こうした状況下、特に I/O サイズが小さい場合に +性能が大きく劣化する。 +また、サーバによっては、I/O が安定したストレージにまで行われたと、 +クライアントに対して嘘をつくものもある。 +これは、サーバの電源故障が起こった際にデータの完全性が保たれない +危険は少しあるが、性能面での不利な条件を回避するために行われている。 +Linux の NFS クライアントでは .B O_DIRECT I/O -¤Ç¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤ÎÀ©¸Â¤Ï¤Ê¤¤¡£ +でのアラインメントの制限はない。 .PP .\"O In summary, .\"O .B O_DIRECT @@ -1481,24 +1481,24 @@ I/O .\"O It is recommended that applications treat use of .\"O .B O_DIRECT .\"O as a performance option which is disabled by default. -¤Þ¤È¤á¤ë¤È¡¢ +まとめると、 .B O_DIRECT -¤Ï¡¢Ãí°Õ¤·¤Æ»È¤¦¤Ù¤­¤Ç¤¢¤ë¤¬¡¢¶¯ÎϤʥġ¼¥ë¤È¤Ê¤ë²ÄǽÀ­¤ò»ý¤Ã¤Æ¤¤¤ë¡£ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï +は、注意して使うべきであるが、強力なツールとなる可能性を持っている。 +アプリケーションは .B O_DIRECT -¤ò¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ëÀ­Ç½¸þ¾å¤Î¤¿¤á¤Î¥ª¥×¥·¥ç¥ó¤È -¹Í¤¨¤Æ¤ª¤¯¤Î¤¬¤è¤¤¤Ç¤¢¤í¤¦¡£ +をデフォルトでは無効になっている性能向上のためのオプションと +考えておくのがよいであろう。 .PP .RS .\"O "The thing that has always disturbed me about O_DIRECT is that the whole .\"O interface is just stupid, and was probably designed by a deranged monkey .\"O on some serious mind-controlling substances." \(em Linus -¡ÖO_DIRECT ¤Ç¤¤¤Ä¤âº¤¤ë¤Î¤Ï¡¢¥¤¥ó¥¿¥Õ¥§¡¼¥¹Á´Éô¤¬ËÜÅö¤Ë¤ªÇϼ¯¤ÊÅÀ¤À¡£ -¤¿¤Ö¤ó´í¤Ê¤¤¥Þ¥¤¥ó¥É¥³¥ó¥È¥í¡¼¥ëºÞ¤Ç -Ƭ¤¬¤ª¤«¤·¤¯¤Ê¤Ã¤¿¥µ¥ë¤¬À߷פ·¤¿¤ó¤¸¤ã¤Ê¤¤¤«¤Ê¡× \(em Linus +「O_DIRECT でいつも困るのは、インタフェース全部が本当にお馬鹿な点だ。 +たぶん危ないマインドコントロール剤で +頭がおかしくなったサルが設計したんじゃないかな」 \(em Linus .RE .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Currently, it is not possible to enable signal-driven .\"O I/O by specifying .\"O .B O_ASYNC @@ -1507,18 +1507,18 @@ I/O .\"O use .\"O .BR fcntl (2) .\"O to enable this flag. -¸½ºß¤Î¤È¤³¤í¡¢ +現在のところ、 .BR open () -¤Î¸Æ¤Ó½Ð¤·»þ¤Ë +の呼び出し時に .B O_ASYNC -¤ò»ØÄꤷ¤Æ¥·¥°¥Ê¥ë¶îÆ° I/O ¤òÍ­¸ú¤Ë¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -¤³¤Î¥Õ¥é¥°¤òÍ­¸ú¤Ë¤¹¤ë¤Ë¤Ï +を指定してシグナル駆動 I/O を有効にすることはできない。 +このフラグを有効にするには .BR fcntl (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +を使用すること。 .\" FIXME . Check bugzilla report on open(O_ASYNC) .\" See http://bugzilla.kernel.org/show_bug.cgi?id=5993 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chmod (2), .BR chown (2), .BR close (2), diff --git a/draft/man2/openat.2 b/draft/man2/openat.2 index 2e665ed2..8c742673 100644 --- a/draft/man2/openat.2 +++ b/draft/man2/openat.2 @@ -28,11 +28,11 @@ .\" .TH OPENAT 2 2009-12-13 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O openat \- open a file relative to a directory file descriptor -openat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÁêÂÐŪ¤Ê°ÌÃ֤ˤ¢¤ë¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë +openat \- ディレクトリファイルディスクリプタから相対的な位置にあるファイルをオープンする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -44,9 +44,9 @@ openat \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR openat (): @@ -55,26 +55,26 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR openat () .\"O system call operates in exactly the same way as .\"O .BR open (2), .\"O except for the differences described in this manual page. .BR openat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë°ã¤¤¤¬¤¢¤ë°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明している違いがある以外は、 .BR open (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .\"O If the pathname given in .\"O .I pathname @@ -86,13 +86,13 @@ _ATFILE_SOURCE .\"O .BR open (2) .\"O for a relative pathname). .I pathname -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パスである場合、 +ファイルディスクリプタ .I dirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( open (2) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤Î -ÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスのカレントワーキングディレクトリからの +相対パスとなる)。 .\"O If .\"O .I pathname @@ -106,16 +106,16 @@ _ATFILE_SOURCE .\"O directory of the calling process (like .\"O .BR open (2)). .I pathname -¤¬ÁêÂХѥ¹¤Ç¤¢¤ê¡¢¤«¤Ä +が相対パスであり、かつ .I dirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I pathname -¤Ï +は .RB ( open (2) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .\"O If .\"O .I pathname @@ -123,43 +123,43 @@ _ATFILE_SOURCE .\"O .I dirfd .\"O is ignored. .I pathname -¤¬ÀäÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ +が絶対パスである場合、 .I dirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR openat () .\"O returns a new file descriptor. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR openat () -¤Ï¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ +は新しいファイルディスクリプタを返す。 .\"O On error, \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +エラーの場合、\-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ +にはエラーを示す値が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O The same errors that occur for .\"O .BR open (2) .\"O can also occur for .\"O .BR openat (). .BR open (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR openat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .\"O The following additional errors can occur for .\"O .BR openat (): .BR openat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .\"O .I dirfd .\"O is not a valid file descriptor. .I dirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B ENOTDIR .\"O .I pathname @@ -167,20 +167,20 @@ _ATFILE_SOURCE .\"O .I dirfd .\"O is a file descriptor referring to a file other than a directory. .I pathname -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I dirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR openat () .\"O was added to Linux in kernel 2.6.16. .BR openat () -¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ +は Linux カーネル 2.6.16 で追加された。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. .\"O A similar system call exists on Solaris. -Solaris ¤Ë¤Ï¡¢¤³¤ì¤ÈƱ¤¸¤è¤¦¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Â¸ºß¤¹¤ë¡£ +Solaris には、これと同じようなシステムコールが存在する。 .\" The 'at' suffix in Solaris is actually double sensed. It .\" primarily referred to "extended *at*tributes", which are .\" handled by Solaris' O_XATTR flag, but was also intended @@ -194,13 +194,13 @@ Solaris .\" Date: Tue, 14 Feb 2006 14:56:50 -0800 (PST) .\" .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .BR openat () .\"O and other similar system calls suffixed "at" are supported .\"O for two reasons. .BR openat () -¤ä "at" ¤¬¸å¤í¤ËÉÕ¤¤¤¿¤½¤Î¾¤ÎƱÍͤΥ·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ -2 ¤Ä¤ÎÍýͳ¤Ë¤è¤êÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +や "at" が後ろに付いたその他の同様のシステムコールは、 +2 つの理由により提供されている。 .\"O First, .\"O .BR openat () @@ -208,25 +208,25 @@ Solaris .\"O occur when using .\"O .BR open (2) .\"O to open files in directories other than the current working directory. -1 ¤ÄÌܤÎÍýͳ¤Ï¡¢ -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë·²¤ò +1 つ目の理由は、 +カレントワーキングディレクトリ以外のディレクトリにあるファイル群を .BR open (2) -¤Ç¥ª¡¼¥×¥ó¤¹¤ë¤È¤­¤Ëµ¯¤³¤ë²ÄǽÀ­¤¬¤¢¤ë¶¥¹ç¾õÂÖ (race condition) ¤ò¡¢ +でオープンするときに起こる可能性がある競合状態 (race condition) を、 .BR openat () -¤Ë¤è¤Ã¤Æ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬²óÈò¤Ç¤­¤ë¤¿¤á¤Ç¤¢¤ë¡£ +によってアプリケーションが回避できるためである。 .\"O These race conditions result from the fact that some component .\"O of the directory prefix given to .\"O .BR open (2) .\"O could be changed in parallel with the call to .\"O .BR open (2). -¤³¤ì¤é¤Î¶¥¹ç¾õÂ֤ϡ¢ +これらの競合状態は、 .BR open (2) -¤Ë»ØÄꤵ¤ì¤¿¥Ñ¥¹¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤Î -(/ ¤Ç¶èÀÚ¤é¤ì¤¿) ¤¤¤¯¤Ä¤«¤Î¹½À®Í×ÁÇ (¤ò¥ª¡¼¥×¥ó¤¹¤ë½èÍý) ¤¬¡¢ +に指定されたパスのディレクトリ部分の +(/ で区切られた) いくつかの構成要素 (をオープンする処理) が、 .BR open (2) -¤òÊÂÎó¤Ë¸Æ¤Ó½Ð¤¹½èÍý¤ËÊÑ´¹¤µ¤ì¤¿¾ì¹ç¤Ëµ¯¤³¤ë¡£ +を並列に呼び出す処理に変換された場合に起こる。 .\"Osato: -.\"Osato: ¾åµ­¤ÎÌõ¤Ï¡¢¸ì¤òÊ䤤²á¤®¤«¤â¤·¤ì¤Ê¤¤¡£ +.\"Osato: 上記の訳は、語を補い過ぎかもしれない。 .\"Osato: .\"O Such races can be avoided by .\"O opening a file descriptor for the target directory, @@ -234,30 +234,30 @@ Solaris .\"O .I dirfd .\"O argument of .\"O .BR openat (). -¤³¤Î¤è¤¦¤Ê¶¥¹ç¤Ï¡¢Âоݥǥ£¥ì¥¯¥È¥ê¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥ª¡¼¥×¥ó¤·¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò +このような競合は、対象ディレクトリのファイルディスクリプタをオープンし、 +そのファイルディスクリプタを .BR openat () -¤Î +の .I dirfd -°ú¤­¿ô¤Ë»ØÄꤹ¤ë¤³¤È¤Ç²óÈò¤Ç¤­¤ë¡£ +引き数に指定することで回避できる。 .\"O Second, .\"O .BR openat () .\"O allows the implementation of a per-thread "current working .\"O directory", via file descriptor(s) maintained by the application. -2 ¤ÄÌܤÎÍýͳ¤Ï¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤è¤Ã¤Æ´ÉÍý¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ (·²) ¤ò»È¤¦¤³¤È¤Ç¡¢ +2 つ目の理由は、 +アプリケーションによって管理されるファイルディスクリプタ (群) を使うことで、 .BR openat () -¤¬¥¹¥ì¥Ã¥ÉËè¤Î¤¤¤ï¤æ¤ë¡Ö¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¡×¤ò¼ÂÁõ¤Ç¤­¤ë¤¿¤á¤Ç¤¢¤ë¡£ +がスレッド毎のいわゆる「カレントワーキングディレクトリ」を実装できるためである。 .\"O (This functionality can also be obtained by tricks based .\"O on the use of .\"O .IR /proc/self/fd/ dirfd, .\"O but less efficiently.) -(¤³¤Îµ¡Ç½¤Ï +(この機能は .IR /proc/self/fd/ dirfd -¤ò»È¤Ã¤¿Î¢µ»¤Ç¤â¼Â¸½¤Ç¤­¤ë¤¬¡¢¤¢¤Þ¤ê¸úΨŪ¤Ç¤Ï¤Ê¤¤)¡£ +を使った裏技でも実現できるが、あまり効率的ではない)。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR faccessat (2), .BR fchmodat (2), .BR fchownat (2), diff --git a/draft/man2/outb.2 b/draft/man2/outb.2 index b73ba73b..fd8ed927 100644 --- a/draft/man2/outb.2 +++ b/draft/man2/outb.2 @@ -33,47 +33,47 @@ .\" Updated Thu Mar 24 JST 2005 by Kentaro Shirakata .\" Updated Thu Oct 9 JST 2005 by Kentaro Shirakata .\" -.\"WORD: inline macro ¥¤¥ó¥é¥¤¥ó¡¦¥Þ¥¯¥í -.\"WORD: unresolved reference ²ò·è¤Ç¤­¤Ê¤¤»²¾È -.\"WORD: segmentation fault ¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó°ãÈ¿ +.\"WORD: inline macro インライン・マクロ +.\"WORD: unresolved reference 解決できない参照 +.\"WORD: segmentation fault セグメンテーション違反 .\" .TH OUTB 2 1995-11-29 "Linux" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 .\"O outb, outw, outl, outsb, outsw, outsl, .\"O inb, inw, inl, insb, insw, insl, .\"O outb_p, outw_p, outl_p, inb_p, inw_p, inl_p \- port I/O outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, -outb_p, outw_p, outl_p, inb_p, inw_p, inl_p \- ¥Ý¡¼¥ÈÆþ½ÐÎÏ -.SH ÀâÌÀ +outb_p, outw_p, outl_p, inb_p, inw_p, inl_p \- ポート入出力 +.SH 説明 .\"O This family of functions is used to do low-level port input and output. .\"O The out* functions do port output, the in* functions do port input; .\"O the b-suffix functions are byte-width and the w-suffix functions .\"O word-width; the _p-suffix functions pause until the I/O completes. -¤³¤Î°ìÏ¢¤Î´Ø¿ô¤Ï¥Ý¡¼¥È¤ËÂФ¹¤ëÄã¥ì¥Ù¥ë¤ÎÆþ½ÐÎϤ˻ÈÍѤ¹¤ë¡£ -out* ´Ø¿ô¤Ï¥Ý¡¼¥È½ÐÎÏ¡¢in* ´Ø¿ô¤Ï¥Ý¡¼¥ÈÆþÎϤò¹Ô¤¦¡£ -¸ìÈø¤Ë b ¤¬¤Ä¤¤¤Æ¤¤¤ë´Ø¿ô¤Ï¥Ð¥¤¥Èñ°Ì¡¢w ¤¬¤Ä¤¤¤Æ¤¤¤ë´Ø¿ô¤Ï¥ï¡¼¥Éñ°Ì¤Ç¤¢¤ë¡£ -_p ¤¬¤Ä¤¤¤Æ¤¤¤ë´Ø¿ô¤Ï I/O ¤¬½ªÎ»¤¹¤ë¤Þ¤ÇÂԤġ£ +この一連の関数はポートに対する低レベルの入出力に使用する。 +out* 関数はポート出力、in* 関数はポート入力を行う。 +語尾に b がついている関数はバイト単位、w がついている関数はワード単位である。 +_p がついている関数は I/O が終了するまで待つ。 .LP .\"O They are primarily designed for internal kernel use, .\"O but can be used from user space. .\"O .\" , given the following information .\"O .\" in addition to that given in .\"O .\" .BR outb (9). -¤³¤ì¤é¤Î´Ø¿ô¤Ï¤â¤È¤â¤È¥«¡¼¥Í¥ëÆâÉô¤Ç¤Î»ÈÍѤòÁÛÄꤷ¤ÆÀ߷פµ¤ì¤Æ¤¤¤ë¤¬¡¢ -¥æ¡¼¥¶¡¼¶õ´Ö¤«¤é¤Ç¤â»ÈÍѤǤ­¤ë¡£ -.\" ÄɲäξðÊó¤Ï +これらの関数はもともとカーネル内部での使用を想定して設計されているが、 +ユーザー空間からでも使用できる。 +.\" 追加の情報は .\" .BR outb (9) -.\" ¤Ë¤¢¤ë¡£ +.\" にある。 .\"O You compile with \fB\-O\fP or \fB\-O2\fP or similar. .\"O The functions .\"O are defined as inline macros, and will not be substituted in without .\"O optimization enabled, causing unresolved references at link time. -\fB\-O\fP ¤ä \fB\-O2\fP ¤Ê¤É¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¥¤¥ó¥é¥¤¥ó¡¦¥Þ¥¯¥í¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ -ºÇŬ²½¤ò¹Ô¤ï¤Ê¤¤¤È´Ø¿ô¤ÎŸ³«¤¬¹Ô¤ï¤ì¤º¡¢ -¥ê¥ó¥¯¤Î»þ¤Ë¡Ö²ò·è¤Ç¤­¤Ê¤¤»²¾È(unresolved reference)¡×¤¬È¯À¸¤¹¤ë¡£ +\fB\-O\fP や \fB\-O2\fP などを指定してコンパイルすること。 +これらの関数はインライン・マクロとして定義されており、 +最適化を行わないと関数の展開が行われず、 +リンクの時に「解決できない参照(unresolved reference)」が発生する。 .\"O You use .\"O .BR ioperm (2) @@ -83,14 +83,14 @@ _p .\"O I/O ports in question. .\"O Failure to do this will cause the application .\"O to receive a segmentation fault. -¥æ¡¼¥¶¡¼¶õ´Ö¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬ I/O ¥Ý¡¼¥È¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤ò -¥«¡¼¥Í¥ë¤Ë¶µ¤¨¤ë¤¿¤á¤Ë +ユーザー空間のアプリケーションが I/O ポートにアクセスすることを +カーネルに教えるために .BR ioperm (2) -¤â¤·¤¯¤Ï +もしくは .BR iopl (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£¤³¤ì¤ò˺¤ì¤ë¤È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó°ãÈ¿ -(segmentation fault) ¤ò¼õ¤±¤È¤ë¤³¤È¤Ë¤Ê¤ë¡£ -.SH ½àµò +を使用すること。これを忘れるとアプリケーションはセグメンテーション違反 +(segmentation fault) を受けとることになる。 +.SH 準拠 .\"O .BR outb () .\"O and friends are hardware-specific. .\"O The @@ -100,12 +100,12 @@ _p .\"O argument is passed second, .\"O which is the opposite order from most DOS implementations. .BR outb () -¤È¤½¤ÎÃç´Ö¤Ï¥Ï¡¼¥É¥¦¥§¥¢ÆÃÍ­¤Ç¤¢¤ë¡£ +とその仲間はハードウェア特有である。 .I value -°ú¿ô¤¬ºÇ½é¤ËÅϤµ¤ì¡¢ +引数が最初に渡され、 .I port -°ú¿ô¤¬ÆóÈÖÌܤËÅϤµ¤ì¤ë¡£ -¤³¤Î½ç½ø¤Ï¤Û¤È¤ó¤É¤Î DOS ¤Ç¤Î¼ÂÁõ¤È¤ÏµÕ¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +引数が二番目に渡される。 +この順序はほとんどの DOS での実装とは逆である。 +.SH 関連項目 .BR ioperm (2), .BR iopl (2) diff --git a/draft/man2/pause.2 b/draft/man2/pause.2 index 353ac1ac..1bd11e19 100644 --- a/draft/man2/pause.2 +++ b/draft/man2/pause.2 @@ -34,26 +34,26 @@ .\" .TH PAUSE 2 2008-10-06 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O pause \- wait for signal -pause \- ¥·¥°¥Ê¥ë¤òÂÔ¤Ä +pause \- シグナルを待つ .\"O .SH SYNOPSIS -.SH µ­½Ò +.SH 記述 .B #include .sp .B int pause(void); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR pause () .\"O causes the calling process (or thread) to sleep .\"O until a signal is delivered that either terminates the process or causes .\"O the invocation of a signal-catching function. .BR pause () -¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹ (¤Þ¤¿¤Ï¥¹¥ì¥Ã¥É) ¤ò¡¢ -¤½¤Î¥×¥í¥»¥¹¤ò½ªÎ»¤µ¤»¤¿¤ê¡¢¥·¥°¥Ê¥ëÊ᪴ؿô¤¬µ¯Æ°¤µ¤ì¤ë¤è¤¦¤Ê -¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ë¤Þ¤Ç¡¢¥¹¥ê¡¼¥×¤µ¤»¤ë¡£ +は、呼び出したプロセス (またはスレッド) を、 +そのプロセスを終了させたり、シグナル捕捉関数が起動されるような +シグナルが配送されるまで、スリープさせる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR pause () .\"O only returns when a signal was caught and the .\"O signal-catching function returned. @@ -65,26 +65,26 @@ pause \- .\"O .\" .BR ERESTARTNOHAND . .\"O .BR EINTR . .BR pause () -¤¬ÊÖ¤ë¤Î¤Ï¡¢¥·¥°¥Ê¥ë¤ò¼õ¤±¼è¤ê¥·¥°¥Ê¥ëÊá³Í´Ø¿ô¤«¤éÊ֤俾ì¹ç¤À¤±¤Ç¤¢¤ë¡£ -¤³¤Î¾ì¹ç¤Ï +が返るのは、シグナルを受け取りシグナル捕獲関数から返った場合だけである。 +この場合は .BR pause () -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤Ë +に .\" .B ERESTARTNOHAND .B EINTR -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINTR .\"O a signal was caught and the signal-catching function returned. -¥·¥°¥Ê¥ë¤ò¼õ¤±¼è¤ê¡¢¥·¥°¥Ê¥ëÊá³Í´Ø¿ô¤«¤éµ¢¤Ã¤Æ¤­¤¿¡£ +シグナルを受け取り、シグナル捕獲関数から帰ってきた。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR kill (2), .BR select (2), .BR signal (2), diff --git a/draft/man2/pciconfig_read.2 b/draft/man2/pciconfig_read.2 index b1dbd88f..19f82e33 100644 --- a/draft/man2/pciconfig_read.2 +++ b/draft/man2/pciconfig_read.2 @@ -9,11 +9,11 @@ .\" .TH PCICONFIG_READ 2 2003-07-14 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O pciconfig_read, pciconfig_write, pciconfig_iobase \- pci device information handling -pciconfig_read, pciconfig_write, pciconfig_iobase \- pci ¥Ç¥Ð¥¤¥¹¾ðÊó¤ò°·¤¦ +pciconfig_read, pciconfig_write, pciconfig_iobase \- pci デバイス情報を扱う .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -25,14 +25,14 @@ pciconfig_read, pciconfig_write, pciconfig_iobase \- pci .BI " unsigned long " devfn ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .PP .\"O Most of the interaction with PCI devices is already handled by the .\"O kernel PCI layer, .\"O and thus these calls should not normally need to be accessed from userspace. -PCI ¥Ç¥Ð¥¤¥¹¤È¤Î¤ä¤ê¼è¤ê (interaction) ¤Ï -¥«¡¼¥Í¥ë PCI ¥ì¥¤¥ä¤Ç¤¹¤Ç¤Ë½èÍý¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢ -Ä̾ï¤Ï¤³¤é¤é¤Î´Ø¿ô¤ò¥æ¡¼¥¶¶õ´Ö¤«¤é¥¢¥¯¥»¥¹¤¹¤ëɬÍפϤʤ¤¡£ +PCI デバイスとのやり取り (interaction) は +カーネル PCI レイヤですでに処理されているので、 +通常はこららの関数をユーザ空間からアクセスする必要はない。 .TP .BR pciconfig_read () .\"O Reads to @@ -42,13 +42,13 @@ PCI .\"O at offset .\"O .I off .\"O value. -¥Ç¥Ð¥¤¥¹ +デバイス .I dev -¤Î¥ª¥Õ¥»¥Ã¥È +のオフセット .I off -¤ÎÃͤò +の値を .I buf -¤ËÆɤ߹þ¤à¡£ +に読み込む。 .TP .BR pciconfig_write () .\"O Writes from @@ -58,49 +58,49 @@ PCI .\"O at offset .\"O .I off .\"O value. -¥Ç¥Ð¥¤¥¹ +デバイス .I dev -¤Î¥ª¥Õ¥»¥Ã¥È +のオフセット .I off -¤Ë +に .I buf -¤ÎÃͤò½ñ¤­¹þ¤à¡£ +の値を書き込む。 .TP .BR pciconfig_iobase () .\"O You pass it a bus/devfn pair and get a physical address for either the .\"O memory offset (for things like prep, this is 0xc0000000), .\"O the IO base for PIO cycles, or the ISA holes if any. .\"Osato: -.\"Osato: prep ¤Ï PowerPC Reference Platform ¤Î¤³¤È¤«¡£ -.\"Osato: PIO cycles ¤Ï memory offset ¤Ë¤â¤«¤«¤ë¤Î¤«¡£ -.\"Osato: if any ¤Ï¤É¤³¤Þ¤Ç¤«¤«¤ë¤Î¤«¡£ +.\"Osato: prep は PowerPC Reference Platform のことか。 +.\"Osato: PIO cycles は memory offset にもかかるのか。 +.\"Osato: if any はどこまでかかるのか。 .\"Osato: -bus/devfn ¥Ú¥¢¤ò¤³¤Î´Ø¿ô¤ËÅϤ·¡¢ -¥á¥â¥ê¥ª¥Õ¥»¥Ã¥È (prep ¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤Ï¡¢¤³¤ÎÃÍ¤Ï 0xc0000000 ¤Ç¤¢¤ë) ¤È -PIO ¥µ¥¤¥¯¥ë¤Î IO ¥Ù¡¼¥¹¤ÎʪÍý¥¢¥É¥ì¥¹¤ò¼èÆÀ¤¹¤ë¡£ -¤Þ¤¿¡¢¤â¤·¤¢¤ë¤Ê¤é¤Ð ISA hole ¤ÎʪÍý¥¢¥É¥ì¥¹¤ò¼èÆÀ¤¹¤ë¡£ +bus/devfn ペアをこの関数に渡し、 +メモリオフセット (prep のようなものでは、この値は 0xc0000000 である) と +PIO サイクルの IO ベースの物理アドレスを取得する。 +また、もしあるならば ISA hole の物理アドレスを取得する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .TP .BR pciconfig_read () .\"O On success zero is returned. .\"O On error, \-1 is returned and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合、0 が返される。 +エラーの場合、\-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .TP .BR pciconfig_write () .\"O On success zero is returned. .\"O On error, \-1 is returned and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合、0 が返される。 +エラーの場合、\-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .TP .BR pciconfig_iobase () .\"O Returns information on locations of various I/O @@ -116,17 +116,17 @@ PIO .\"O .BR IOBASE_ISA_IO , .\"O .BR IOBASE_ISA_MEM . .I which -¤ÎÃͤ˴ð¤Å¤¤¤Æ¡¢ÊªÍý¥á¥â¥êÆâ¤ÎÍÍ¡¹¤Ê I/O Îΰè¤Î°ÌÃÖ¾ðÊó¤¬ÊÖ¤µ¤ì¤ë¡£ +の値に基づいて、物理メモリ内の様々な I/O 領域の位置情報が返される。 .I which -¤ÎÃͤϡ¢ +の値は、 .BR IOBASE_BRIDGE_NUMBER , .BR IOBASE_MEMORY , .BR IOBASE_IO , .BR IOBASE_ISA_IO , .B IOBASE_ISA_MEM -¤Ç¤¢¤ë¡£ +である。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O .I len @@ -134,14 +134,14 @@ PIO .\"O This does not apply to .\"O .BR pciconfig_iobase (). .I len -¤ÎÃͤ¬Ìµ¸ú¤Ç¤¢¤ë¡£ -¤³¤Î¥¨¥é¡¼¤Ï +の値が無効である。 +このエラーは .BR pciconfig_iobase () -¤Ë¤ÏŬÍѤµ¤ì¤Ê¤¤¡£ +には適用されない。 .TP .B EIO .\"O I/O error. -I/O ¥¨¥é¡¼¡£ +I/O エラー。 .TP .B ENODEV .\"O For @@ -149,45 +149,45 @@ I/O .\"O "hose" value is NULL. .\"O For the other calls, could not find a slot. .BR pciconfig_iobase () -¤Î¾ì¹ç¡¢¤Ç¥Û¡¼¥¹ (hose) ¤ÎÃͤ¬ NULL ¤Ç¤¢¤ë¡£ -¾¤Î¸Æ¤Ó½Ð¤·¤Î¾ì¹ç¡¢¥¹¥í¥Ã¥È (slot) ¤¬¸«¤Ä¤«¤é¤Ê¤¤¡£ +の場合、でホース (hose) の値が NULL である。 +他の呼び出しの場合、スロット (slot) が見つからない。 .TP .B ENOSYS .\"O The system has not implemented these calls .\"O .RB ( CONFIG_PCI .\"O not defined). -¤³¤Î¥·¥¹¥Æ¥à¤Ï¤³¤ì¤é¤Î¸Æ¤Ó½Ð¤·¤ò¼ÂÁõ¤·¤Æ¤¤¤Ê¤¤¡£ +このシステムはこれらの呼び出しを実装していない。 .RB ( CONFIG_PCI -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤)¡£ +が定義されていない)。 .TP .B EOPNOTSUPP .\"O This return value is only valid for .\"O .BR pciconfig_iobase (). -¤³¤ÎÊÖ¤êÃÍ¤Ï +この返り値は .BR pciconfig_iobase () -¤Ç¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£ +でのみ有効である。 .\"O It is returned if the value for .\"O .I which .\"O is invalid. -¤³¤Î¥¨¥é¡¼¤Ï +このエラーは .I which -¤ÎÃͤ¬Ìµ¸ú¤Ç¤¢¤ë¤È¤­¤ËÊÖ¤µ¤ì¤ë¡£ +の値が無効であるときに返される。 .TP .B EPERM .\"O User does not have the \fBCAP_SYS_ADMIN\fP capability. .\"O This does not apply to .\"O .BR pciconfig_iobase (). -¥æ¡¼¥¶¤¬ +ユーザが .B CAP_SYS_ADMIN -¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -¤³¤Î¥¨¥é¡¼¤Ï +権限を持っていない。 +このエラーは .BR pciconfig_iobase () -¤Ë¤ÏŬÍѤµ¤ì¤Ê¤¤¡£ +には適用されない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These calls are Linux-specific, available since Linux 2.0.26/2.1.11. -¤³¤ì¤é¤Î¸Æ¤Ó½Ð¤·¤Ï Linux ÆÃÍ­¤Î¤â¤Î¤Ç¤¢¤ê¡¢ -Linux 2.0.26/2.1.11 ¤«¤é»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ +これらの呼び出しは Linux 特有のものであり、 +Linux 2.0.26/2.1.11 から使用可能である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR capabilities (7) diff --git a/draft/man2/personality.2 b/draft/man2/personality.2 index fe837c04..42f81441 100644 --- a/draft/man2/personality.2 +++ b/draft/man2/personality.2 @@ -33,24 +33,24 @@ .\" Updated 2003-04-24, Kentaro Shirakata .\" Updated 2007-05-04, Akihiro MOTOKI .\" -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: execution domain ¼Â¹Ô¥É¥á¥¤¥ó -.\"WORD: personality ¥Ñ¡¼¥½¥Ê¥ê¥Æ¥£ -.\"WORD: binary ¥Ð¥¤¥Ê¥ê -.\"WORD: operating system ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à +.\"WORD: process プロセス +.\"WORD: execution domain 実行ドメイン +.\"WORD: personality パーソナリティ +.\"WORD: binary バイナリ +.\"WORD: operating system オペレーティング・システム .\" .TH PERSONALITY 2 2003-01-01 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O personality \- set the process execution domain -personality \- ¥×¥í¥»¥¹¤ò¼Â¹Ô¤¹¤ë¥É¥á¥¤¥ó¤òÀßÄꤹ¤ë +personality \- プロセスを実行するドメインを設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int personality(unsigned long " persona ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Linux supports different execution domains, or personalities, for each .\"O process. .\"O Among other things, execution domains tell Linux how to map @@ -58,12 +58,12 @@ personality \- .\"O The execution domain system allows .\"O Linux to provide limited support for binaries compiled under other .\"O UNIX-like operating systems. -Linux ¤Ï¡¢¥×¥í¥»¥¹Ëè¤Î°Û¤Ê¤ë¼Â¹Ô¥É¥á¥¤¥ó¡¢¤¹¤Ê¤ï¤Á -¥Ñ¡¼¥½¥Ê¥ê¥Æ¥£ (personality) ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -¼Â¹Ô¥É¥á¥¤¥ó¤Ï Linux ¤Ë¥·¥°¥Ê¥ëÈÖ¹æ¤Ë¤É¤Î¥·¥°¥Ê¥ë¤ò³ä¤êÉÕ¤±¤ë¤«¤ò -¶µ¤¨¤¿¤ê¤¹¤ë¡£¤Þ¤¿¡¢¼Â¹Ô¥É¥á¥¤¥ó¡¦¥·¥¹¥Æ¥à¤Ë¤è¤ê¡¢ -Linux ¤Ï¾¤Î UNIX É÷¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿ -¥Ð¥¤¥Ê¥ê¤ËÂФ¹¤ë¸ÂÄêŪ¤Ê¥µ¥Ý¡¼¥È¤òÄ󶡤·¤Æ¤¤¤ë¡£ +Linux は、プロセス毎の異なる実行ドメイン、すなわち +パーソナリティ (personality) をサポートしている。 +実行ドメインは Linux にシグナル番号にどのシグナルを割り付けるかを +教えたりする。また、実行ドメイン・システムにより、 +Linux は他の UNIX 風のオペレーティング・システムでコンパイルされた +バイナリに対する限定的なサポートを提供している。 .\"O This function will return the current .\"O .BR personality () @@ -75,38 +75,38 @@ Linux .\"O .I persona .\"O the new execution domain of the calling process. .B personality () -´Ø¿ô¤Ï¡¢ +関数は、 .I persona -¤¬ 0xffffffff ¤Î¾ì¹ç¤Ï¸½ºß¤Î -.B ¥Ñ¡¼¥½¥Ê¥ê¥Æ¥£ -¤òÊÖ¤¹¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢ +が 0xffffffff の場合は現在の +.B パーソナリティ +を返す。 +それ以外の場合、 .I persona -¤Ë¤è¤ê»²¾È¤µ¤ì¤ë¼Â¹Ô¥É¥á¥¤¥ó¤ò¡¢ -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¿·¤·¤¤¼Â¹Ô¥É¥á¥¤¥ó¤È¤¹¤ë¡£ +により参照される実行ドメインを、 +呼び出し元のプロセスの新しい実行ドメインとする。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, the previous .\"O .I persona .\"O is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢°ÊÁ°¤Î +成功した場合、以前の .I persona -¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +が返される。エラーの場合は、\-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O The kernel was unable to change the personality. -¥«¡¼¥Í¥ë¤¬¥Ñ¡¼¥½¥Ê¥ê¥Æ¥£¤òÊѹ¹¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +カーネルがパーソナリティを変更できなかった。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR personality () .\"O is Linux-specific and should not be used in programs intended to .\"O be portable. .BR personality () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +は Linux 固有であり、移植を意図したプログラムで使用すべきではない。 diff --git a/draft/man2/pipe.2 b/draft/man2/pipe.2 index 0a8c49ba..a75d32a6 100644 --- a/draft/man2/pipe.2 +++ b/draft/man2/pipe.2 @@ -45,24 +45,24 @@ .\" .TH PIPE 2 2010-09-10 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O pipe, pipe2 \- create pipe -pipe, pipe2 \- ¥Ñ¥¤¥×¤òÀ¸À®¤¹¤ë +pipe, pipe2 \- パイプを生成する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int pipe(int " pipefd "[2]);" .sp .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "int pipe2(int " pipefd "[2], int " flags ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR pipe () .\"O creates a pipe, a unidirectional data channel that .\"O can be used for interprocess communication. @@ -78,21 +78,21 @@ pipe, pipe2 \- .\"O For further details, see .\"O .BR pipe (7). .BR pipe (2) -¤Ï¥Ñ¥¤¥×¤òÀ¸À®¤¹¤ë¡£ -¥Ñ¥¤¥×¤Ï¡¢¥×¥í¥»¥¹´ÖÄÌ¿®¤Ë»ÈÍѤǤ­¤ëñÊý¸þ¤Î¥Ç¡¼¥¿¥Á¥ã¥Í¥ë¤Ç¤¢¤ë¡£ -ÇÛÎó +はパイプを生成する。 +パイプは、プロセス間通信に使用できる単方向のデータチャネルである。 +配列 .I pipefd -¤Ï¡¢¥Ñ¥¤¥×¤Îξü¤ò»²¾È¤¹¤ëÆó¤Ä¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò -ÊÖ¤¹¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ +は、パイプの両端を参照する二つのファイルディスクリプタを +返すのに使用される。 .I pipefd[0] -¤¬¥Ñ¥¤¥×¤ÎÆɤ߽Ф·Â¦¡¢ +がパイプの読み出し側、 .I pipefd[1] -¤¬¥Ñ¥¤¥×¤Î½ñ¤­¹þ¤ß¦¤Ç¤¢¤ë¡£ -¥Ñ¥¤¥×¤Î½ñ¤­¹þ¤ß¦¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¥Ç¡¼¥¿¤Ï¡¢ -¥Ñ¥¤¥×¤ÎÆɤ߽Ф·Â¦¤«¤éÆɤ߽Фµ¤ì¤ë¤Þ¤Ç¥«¡¼¥Í¥ë¤Ç¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤ë¡£ -¤µ¤é¤Ê¤ë¾ÜºÙ¤Ï +がパイプの書き込み側である。 +パイプの書き込み側に書き込まれたデータは、 +パイプの読み出し側から読み出されるまでカーネルでバッファリングされる。 +さらなる詳細は .BR pipe (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O If .\"O .IR flags @@ -104,14 +104,14 @@ pipe, pipe2 \- .\"O .IR flags .\"O to obtain different behavior: .BR pipe2 () -¤Ï +は .I flags -¤¬ 0 ¤Î¾ì¹ç¤Ë¤Ï +が 0 の場合には .BR pipe () -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .I flags -¤Ë°Ê²¼¤ÎÃͤò¥Ó¥Ã¥ÈËè¤ÎÏÀÍýÏ (OR) ¤Ç»ØÄꤹ¤ë¤³¤È¤Ç¡¢ -°Û¤Ê¤ëÆ°ºî¤ò¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +に以下の値をビット毎の論理和 (OR) で指定することで、 +異なる動作をさせることができる。 .TP 12 .B O_NONBLOCK .\"O Set the @@ -120,14 +120,14 @@ pipe, pipe2 \- .\"O Using this flag saves extra calls to .\"O .BR fcntl (2) .\"O to achieve the same result. -¿·¤·¤¯À¸À®¤µ¤ì¤ëÆó¤Ä¤Î¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò (open file description) ¤Î +新しく生成される二つのオープンファイル記述 (open file description) の .B O_NONBLOCK -¥Õ¥¡¥¤¥ë¥¹¥Æ¡¼¥¿¥¹¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤³¤È¤Ç¡¢ +ファイルステータスフラグをセットする。 +このフラグを使うことで、 .B O_NONBLOCK -¤ò¥»¥Ã¥È¤¹¤ë¤¿¤á¤Ë +をセットするために .BR fcntl (2) -¤òÄɲäǸƤӽФ¹É¬Íפ¬¤Ê¤¯¤Ê¤ë¡£ +を追加で呼び出す必要がなくなる。 .TP .B O_CLOEXEC .\"O Set the close-on-exec @@ -136,32 +136,32 @@ pipe, pipe2 \- .\"O See the description of the same flag in .\"O .BR open (2) .\"O for reasons why this may be useful. -¿·¤·¤¯À¸À®¤µ¤ì¤ëÆó¤Ä¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î +新しく生成される二つのファイルディスクリプタの close-on-exec .RB ( FD_CLOEXEC ) -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬Ìò¤ËΩ¤ÄÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +フラグをセットする。 +このフラグが役に立つ理由については、 .BR open (2) -¤Î +の .B O_CLOEXEC -¥Õ¥é¥°¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +フラグの説明を参照のこと。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç 0 ¤¬Ê֤롣¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤¬Ê֤ꡢ +成功した場合 0 が返る。失敗した場合 \-1 が返り、 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤ˽¾¤Ã¤ÆÀßÄꤵ¤ì¤ë¡£ +がエラーの内容に従って設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O .I pipefd .\"O is not valid. .I pipefd -¤¬Ìµ¸ú¤ÊÃͤǤ¢¤ë¡£ +が無効な値である。 .TP .B EINVAL .\"O .RB ( pipe2 ()) @@ -169,63 +169,63 @@ close-on-exec .\"O .IR flags . .RB ( pipe2 ()) .I flags -¤Ë̵¸ú¤ÊÃͤ¬Æþ¤Ã¤Æ¤¤¤ë¡£ +に無効な値が入っている。 .TP .B EMFILE .\"O Too many file descriptors are in use by the process. -¤³¤Î¥×¥í¥»¥¹¤Ç»È¤ï¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Â¿¤¹¤®¤ë¡£ +このプロセスで使われているファイルディスクリプタが多すぎる。 .TP .B ENFILE .\"O The system limit on the total number of open files has been reached. -¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ÎÁí¿ô¤¬¥·¥¹¥Æ¥à¤ÎÀ©¸Â¤Ë㤷¤¿¡£ +オープンされているファイルの総数がシステムの制限に達した。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR pipe2 () .\"O was added to Linux in version 2.6.27; .\"O glibc support is available starting with .\"O version 2.9. .BR pipe2 () -¤Ï¥Ð¡¼¥¸¥ç¥ó 2.6.27 ¤Ç Linux ¤ËÄɲ䵤줿¡£ -glibc ¤Ë¤è¤ë¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.9 °Ê¹ß¤ÇÍøÍѤǤ­¤ë¡£ +はバージョン 2.6.27 で Linux に追加された。 +glibc によるサポートはバージョン 2.9 以降で利用できる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .BR pipe (): POSIX.1-2001. .\"O .BR pipe2 () .\"O is Linux-specific. .BR pipe2 () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ +は Linux 固有である。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O .\" fork.2 refers to this example program. -.\" fork.2 ¤Ï¤³¤ÎÎã¤Î¥×¥í¥°¥é¥à¤ò»²¾È¤·¤Æ¤¤¤ë¡£ +.\" fork.2 はこの例のプログラムを参照している。 .\"O The following program creates a pipe, and then .\"O .BR fork (2)s .\"O to create a child process; .\"O the child inherits a duplicate set of file .\"O descriptors that refer to the same pipe. -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¥Ñ¥¤¥×¤òÀ¸À®¤·¡¢¤½¤Î¸å +以下のプログラムではパイプを生成し、その後 .BR fork (2) -¤Ç»Ò¥×¥í¥»¥¹¤òÀ¸À®¤¹¤ë¡£ -»Ò¥×¥í¥»¥¹¤ÏƱ¤¸¥Ñ¥¤¥×¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤Î¥³¥Ô¡¼¤ò -·Ñ¾µ¤¹¤ë¡£ +で子プロセスを生成する。 +子プロセスは同じパイプを参照するファイルディスクリプタ集合のコピーを +継承する。 .\"O After the .\"O .BR fork (2), .\"O each process closes the descriptors that it doesn't need for the pipe .\"O (see .\"O .BR pipe (7)). .BR fork (2) -¤Î¸å¡¢³Æ¥×¥í¥»¥¹¤Ï¥Ñ¥¤¥× +の後、各プロセスはパイプ .RB ( pipe (7) -¤ò»²¾È) ¤ËɬÍפ¬¤Ê¤¯¤Ê¤Ã¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +を参照) に必要がなくなったディスクリプタをクローズする。 .\"O The parent then writes the string contained in the program's .\"O command-line argument to the pipe, .\"O and the child reads this string a byte at a time from the pipe .\"O and echoes it on standard output. -¿Æ¥×¥í¥»¥¹¤Ï¥×¥í¥°¥é¥à¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ë´Þ¤Þ¤ì¤ë -ʸ»úÎó¤ò¥Ñ¥¤¥×¤Ø½ñ¤­¹þ¤ß¡¢ -»Ò¥×¥í¥»¥¹¤Ï¤³¤Îʸ»úÎó¤ò¥Ñ¥¤¥×¤«¤é 1 ¥Ð¥¤¥È¤º¤ÄÆɤ߹þ¤ó¤Çɸ½à½ÐÎϤ˥¨¥³¡¼¤¹¤ë¡£ +親プロセスはプログラムのコマンドライン引き数に含まれる +文字列をパイプへ書き込み、 +子プロセスはこの文字列をパイプから 1 バイトずつ読み込んで標準出力にエコーする。 .nf #include @@ -258,9 +258,9 @@ main(int argc, char *argv[]) } .\"O if (cpid == 0) { /* Child reads from pipe */ - if (cpid == 0) { /* »Ò¥×¥í¥»¥¹¤¬¥Ñ¥¤¥×¤«¤éÆɤ߹þ¤à */ + if (cpid == 0) { /* 子プロセスがパイプから読み込む */ .\"O close(pipefd[1]); /* Close unused write end */ - close(pipefd[1]); /* »ÈÍѤ·¤Ê¤¤ write ¦¤Ï¥¯¥í¡¼¥º¤¹¤ë */ + close(pipefd[1]); /* 使用しない write 側はクローズする */ while (read(pipefd[0], &buf, 1) > 0) write(STDOUT_FILENO, &buf, 1); @@ -274,17 +274,17 @@ main(int argc, char *argv[]) .\"O write(pipefd[1], argv[1], strlen(argv[1])); .\"O close(pipefd[1]); /* Reader will see EOF */ .\"O wait(NULL); /* Wait for child */ - } else { /* ¿Æ¥×¥í¥»¥¹¤Ï argv[1] ¤ò¥Ñ¥¤¥×¤Ø½ñ¤­¹þ¤à */ - close(pipefd[0]); /* »ÈÍѤ·¤Ê¤¤ read ¦¤Ï¥¯¥í¡¼¥º¤¹¤ë */ + } else { /* 親プロセスは argv[1] をパイプへ書き込む */ + close(pipefd[0]); /* 使用しない read 側はクローズする */ write(pipefd[1], argv[1], strlen(argv[1])); - close(pipefd[1]); /* Æɤ߹þ¤ß¦¤¬ EOF ¤Ë½Ð²ñ¤¦ */ - wait(NULL); /* »Ò¥×¥í¥»¥¹¤òÂÔ¤Ä */ + close(pipefd[1]); /* 読み込み側が EOF に出会う */ + wait(NULL); /* 子プロセスを待つ */ exit(EXIT_SUCCESS); } } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fork (2), .BR read (2), .BR socketpair (2), diff --git a/draft/man2/pivot_root.2 b/draft/man2/pivot_root.2 index 0c2d91b2..20d3cd2a 100644 --- a/draft/man2/pivot_root.2 +++ b/draft/man2/pivot_root.2 @@ -10,30 +10,30 @@ .TH PIVOT_ROOT 2 2007-06-01 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O pivot_root \- change the root file system -.SH ̾Á° -pivot_root \- root ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òÊѹ¹¤¹¤ë +.SH 名前 +pivot_root \- root ファイルシステムを変更する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .BI "int pivot_root(const char *" new_root ", const char *" put_old ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR pivot_root () .\"O moves the root file system of the calling process to the .\"O directory \fIput_old\fP and makes \fInew_root\fP the new root file system .\"O of the calling process. .BR pivot_root () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î root ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò +は呼び出し元のプロセスの root ファイルシステムを .I put_old -¥Ç¥£¥ì¥¯¥È¥ê¤Ë°ÜÆ°¤·¡¢ +ディレクトリに移動し、 .I new_root -¤ò¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¿·¤·¤¤ root ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤¹¤ë¡£ +を呼び出し元のプロセスの新しい root ファイルシステムにする。 .\"O .\" .\"O .\" The .\"O .\" .B CAP_SYS_ADMIN .\"O .\" capability is required. .\" .\" .B CAP_SYS_ADMIN -.\" ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ +.\" ケーパビリティが必要である。 .\"O The typical use of .\"O .BR pivot_root () @@ -42,12 +42,12 @@ pivot_root \- root .\"O mounts the real root file system, and eventually turns the latter into .\"O the current root of all relevant processes or threads. .BR pivot_root () -¤Îŵ·¿Åª¤ÊÍøÍÑË¡¤Ï¡¢¥·¥¹¥Æ¥à¤Îµ¯Æ°Ãæ¤Ë¥·¥¹¥Æ¥à¤¬°ì»þŪ¤Ê -root ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à (Î㤨¤Ð +の典型的な利用法は、システムの起動中にシステムが一時的な +root ファイルシステム (例えば .BR initrd ) -¤ò¥Þ¥¦¥ó¥È¤·¡¢¤³¤ì¤Ë³¤¤¤ÆËÜÅö¤Î root ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥Þ¥¦¥ó¥È¤·¡¢ -¸å¼Ô¤òɬÍפÊÁ´¤Æ¤Î¥×¥í¥»¥¹¡¦¥¹¥ì¥Ã¥É¤Î -¥«¥ì¥ó¥È root ¤ËÊѹ¹¤¹¤ë¤è¤¦¤Ê¾ì¹ç¤Ç¤¢¤ë¡£ +をマウントし、これに続いて本当の root ファイルシステムをマウントし、 +後者を必要な全てのプロセス・スレッドの +カレント root に変更するような場合である。 .\"O .BR pivot_root () .\"O may or may not change the current root and the current @@ -60,19 +60,19 @@ root .\"O An easy way to ensure this is to change their .\"O root and current working directory to \fInew_root\fP before invoking .\"O .BR pivot_root (). -¸Å¤¤ root ¥Ç¥£¥ì¥¯¥È¥ê¤ò»È¤Ã¤Æ¤¤¤¿Á´¤Æ¤Î¥×¥í¥»¥¹¤ä¥¹¥ì¥Ã¥É¤Î -¥«¥ì¥ó¥È root ¤È¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤ò¡¢ +古い root ディレクトリを使っていた全てのプロセスやスレッドの +カレント root とカレントワーキングディレクトリを、 .BR pivot_root () -¤¬Êѹ¹¤¹¤ë¤«¤É¤¦¤«¤Ï¤ï¤«¤é¤Ê¤¤¡£ +が変更するかどうかはわからない。 .BR pivot_root () -¤Î¸Æ¤Ó¤À¤·¥×¥í¥»¥¹¤Ï¡¢¸Å¤¤ root ¤ä¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤ò»È¤Ã¤Æ¤¤¤¿ -¥×¥í¥»¥¹¤¬¡¢¤¤¤º¤ì¤Î¾ì¹ç¤Ç¤âÀµ¤·¤¯Æ°ºî¤¹¤ë¤³¤È¤òÊݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ì¤ò´Êñ¤Ë¹Ô¤¦¤Ë¤Ï¡¢¤½¤ì¤é¤Î¥×¥í¥»¥¹¤Î root ¤È -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤ò +の呼びだしプロセスは、古い root やカレントワーキングディレクトリを使っていた +プロセスが、いずれの場合でも正しく動作することを保証しなければならない。 +これを簡単に行うには、それらのプロセスの root と +カレントワーキングディレクトリを .BR pivot_root () -¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë +を呼び出す前に .I new_root -¤ËÊѹ¹¤·¤Æ¤ª¤¯¤³¤È¤Ç¤¢¤ë¡£ +に変更しておくことである。 .\"O The paragraph above is intentionally vague because the implementation .\"O of @@ -91,24 +91,24 @@ root .\"O kernel threads to explicitly relinquish any access to the file system, .\"O such that this fairly intrusive mechanism can be removed from .\"O .BR pivot_root (). -¾åµ­¤ÎÃÊÍî¤Ï¡¢¾­Íè +上記の段落は、将来 .BR pivot_root () -¤¬Êѹ¹¤µ¤ì¤ë¤«¤âÃΤì¤Ê¤¤¤³¤È¤ò´Õ¤ß¤Æ¡¢¤ï¤¶¤ÈÛ£Ëæ¤Ë½ñ¤¤¤Æ¤¢¤ë¡£ -ËÜ¥Ú¡¼¥¸¤òµ­½Ò¤·¤Æ¤¤¤ë»þÅÀ¤Ç¤Ï¡¢ +が変更されるかも知れないことを鑑みて、わざと曖昧に書いてある。 +本ページを記述している時点では、 .BR pivot_root () -¤Ï¸Å¤¤ root ¥Ç¥£¥ì¥¯¥È¥ê¤òÍѤ¤¤Æ¤¤¤ëÁ´¤Æ¤Î¥×¥í¥»¥¹¡¦¥¹¥ì¥Ã¥É¤Î root ¤È -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤ò +は古い root ディレクトリを用いている全てのプロセス・スレッドの root と +カレントワーキングディレクトリを .I new_root -¤ËÊѹ¹¤¹¤ë¡£¤³¤ì¤Ï¥«¡¼¥Í¥ë¤Î¥¹¥ì¥Ã¥É¤¬¸Å¤¤ root ¥Ç¥£¥ì¥¯¥È¥ê¤ò -busy ¾õÂ֤ˤ·¤Ê¤¤¤¿¤á¤ËɬÍפǤ¢¤ë¡£¤³¤ì¤é¤Î¥¹¥ì¥Ã¥É¤¬ -¸Å¤¤¥Ç¥£¥ì¥¯¥È¥ê¤ò root ¤ä¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤È¤·¤Æ¤¤¤ë¤È¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë°ìÀÚ¥¢¥¯¥»¥¹¤·¤Ê¤¤¾ì¹ç¤Ç¤â -¸Å¤¤ root ¤¬ busy ¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤«¤é¤Ç¤¢¤ë¡£ -.\"nakano: ¤Á¤È¾éĹ... -¾­Íè¤Ï¡¢¥«¡¼¥Í¥ë¥¹¥ì¥Ã¥É¤¬¤¢¤é¤æ¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ø¤Î¥¢¥¯¥»¥¹¤ò -ÌÀ¼¨Åª¤ËÊü´þ¤¹¤ë¥á¥«¥Ë¥º¥à¤¬¤Ç¤­¡¢¤³¤Î¤Ç¤·¤ã¤Ð¤ê¤Êµ¡Ç½¤Ï +に変更する。これはカーネルのスレッドが古い root ディレクトリを +busy 状態にしないために必要である。これらのスレッドが +古いディレクトリを root やカレントワーキングディレクトリとしていると、 +ファイルシステムに一切アクセスしない場合でも +古い root が busy になってしまうからである。 +.\"nakano: ちと冗長... +将来は、カーネルスレッドがあらゆるファイルシステムへのアクセスを +明示的に放棄するメカニズムができ、このでしゃばりな機能は .BR pivot_root () -¤«¤éºï½ü¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +から削除されるかもしれない。 .\"O Note that this also applies to the calling process: .\"O .BR pivot_root () @@ -117,50 +117,50 @@ busy .\"O It is therefore recommended to call .\"O \fBchdir("/")\fP immediately after .\"O .BR pivot_root (). -¤³¤ì¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ë¤Ä¤¤¤Æ¤âÅö¤Æ¤Ï¤Þ¤ë¤³¤È¤ËÃí°Õ¡£ +これは呼び出し元のプロセスについても当てはまることに注意。 .BR pivot_root () -¤¬¥«¥ì¥ó¥È¥×¥í¥»¥¹¤Î¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤Ë±Æ¶Á¤¹¤ë¤«¤É¤¦¤«¤Ï -ʬ¤«¤é¤Ê¤¤¡£¤·¤¿¤¬¤Ã¤Æ +がカレントプロセスのカレントワーキングディレクトリに影響するかどうかは +分からない。したがって .BR pivot_root () -¤Îľ¸å¤Ë +の直後に .B chdir("/") -¤ò¸Æ¤Ó½Ð¤¹¤È¤è¤¤¡£ +を呼び出すとよい。 .\"O The following restrictions apply to \fInew_root\fP and \fIput_old\fP: -.IR new_root " ¤ª¤è¤Ó " put_old -¤Ë¤Ï°Ê²¼¤ÎÀ©¸Â¤¬¤¢¤ë: +.IR new_root " および " put_old +には以下の制限がある: .IP \- 3 .\"O They must be directories. -¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ディレクトリでなければならない。 .IP \- 3 .\"O \fInew_root\fP and \fIput_old\fP must not be on the same file system as .\"O the current root. -.IR new_root " ¤È " put_old -¤Ï¸½ºß¤Î root ¤ÈƱ¤¸¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +.IR new_root " と " put_old +は現在の root と同じファイルシステムにあってはならない。 .IP \- 3 .\"O \fIput_old\fP must be underneath \fInew_root\fP, that is, adding a nonzero .\"O number of \fI/..\fP to the string pointed to by \fIput_old\fP must yield .\"O the same directory as \fInew_root\fP. -.IR put_old " ¤Ï " new_root -°Ê²¼¤Ë¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤¹¤Ê¤ï¤Á +.IR put_old " は " new_root +以下になければならない。すなわち .I put_old -¤òº¹¤¹Ê¸»úÎó¤Ë 1 ¸Ä°Ê¾å¤Î +を差す文字列に 1 個以上の .I ../ -¤òÉÕ¤±¤ë¤³¤È¤Ë¤è¤Ã¤Æ +を付けることによって .I new_root -¤ÈƱ¤¸¥Ç¥£¥ì¥¯¥È¥ê¤¬ÆÀ¤é¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +と同じディレクトリが得られなければならない。 .IP \- 3 .\"O No other file system may be mounted on \fIput_old\fP. -¾¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ +他のファイルシステムが .I put_old -¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +にマウントされていてはならない。 .PP .\"O See also .\"O .BR pivot_root (8) .\"O for additional usage examples. -ÍøÍÑÎã¤Ë¤Ä¤¤¤Æ¤Ï +利用例については .BR pivot_root (8) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O If the current root is not a mount point (e.g., after .\"O .BR chroot (2) @@ -168,112 +168,112 @@ busy .\"O .BR pivot_root (), .\"O see also below), not the old root directory, but the .\"O mount point of that file system is mounted on \fIput_old\fP. -¸½ºß¤Î root ¤¬¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ç¤Ï¤Ê¤¤ +現在の root がマウントポイントではない .RB ( chroot (2) -¤ä +や .BR pivot_root () -¤Î¸å¤Ê¤É¡£°Ê²¼¤â»²¾È) ¾ì¹ç¡¢ -¸Å¤¤ root ¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¯¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤¬ +の後など。以下も参照) 場合、 +古い root ディレクトリではなく、 +そのファイルシステムのマウントポイントが .I put_old -¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤ë¡£ +にマウントされる。 .\"O \fInew_root\fP does not have to be a mount point. .\"O In this case, .\"O \fI/proc/mounts\fP will show the mount point of the file system containing .\"O \fInew_root\fP as root (\fI/\fP). .I new_root -¤Ï¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ç¤Ê¤¯¤Æ¤â¤è¤¤¡£ -¤³¤Î¾ì¹ç +はマウントポイントでなくてもよい。 +この場合 .I /proc/mounts -¤Ï¡¢ +は、 .I new_root -¤ò root +を root .RI ( / ) -¤È¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤òɽ¼¨¤¹¤ë¡£ +とするファイルシステムのマウントポイントを表示する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O \fIerrno\fP is set appropriately. -À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤¬µ¯¤ë¤È \-1 ¤òÊÖ¤·¡¢ +成功すると 0 を返す。エラーが起ると \-1 を返し、 .I errno -¤¬Å¬ÀÚ¤ÊÃͤËÀßÄꤵ¤ì¤ë¡£ +が適切な値に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O .BR pivot_root () .\"O may return (in \fIerrno\fP) any of the errors returned by .\"O .BR stat (2). .\"O Additionally, it may return: .BR pivot_root () -¤Ï +は .BR stat (2) -¤ÎÊÖ¤¹¤¢¤é¤æ¤ë¥¨¥é¡¼¤ò +の返すあらゆるエラーを .RI ( errno -¤Ë) ÊÖ¤¹²ÄǽÀ­¤¬¤¢¤ë¡£¤µ¤é¤Ë°Ê²¼¤òÊÖ¤¹¤³¤È¤¬¤¢¤ë: +に) 返す可能性がある。さらに以下を返すことがある: .TP .B EBUSY .\"O \fInew_root\fP or \fIput_old\fP are on the current root file system, .\"O or a file system is already mounted on \fIput_old\fP. -.IR new_root " ¤Þ¤¿¤Ï " put_old -¤¬¡¢¸½ºß¤Î root ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ë¤¢¤ë¤«¡¢´û¤Ë +.IR new_root " または " put_old +が、現在の root ファイルシステム上にあるか、既に .I put_old -¤Ë¤Ê¤ó¤é¤«¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¡£ +になんらかのファイルシステムがマウントされている。 .TP .B EINVAL .\"O \fIput_old\fP is not underneath \fInew_root\fP. -.IR put_old " ¤¬ " new_root -¤Î²¼Áؤˤʤ¤¡£ +.IR put_old " が " new_root +の下層にない。 .TP .B ENOTDIR .\"O \fInew_root\fP or \fIput_old\fP is not a directory. -.IR new_root " ¤Þ¤¿¤Ï " put_old -¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +.IR new_root " または " put_old +がディレクトリでない。 .TP .B EPERM .\"O The calling process does not have the .\"O .B CAP_SYS_ADMIN .\"O capability. -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬ +呼び出し元のプロセスが .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +ケーパビリティを持っていない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR pivot_root () .\"O was introduced in Linux 2.3.41. .BR pivot_root () -¤Ï Linux 2.3.41 ¤ÇƳÆþ¤µ¤ì¤¿¡£ +は Linux 2.3.41 で導入された。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR pivot_root () .\"O is Linux-specific and hence is not portable. .BR pivot_root () -¤Ï Linux ¤Ë¸ÇÍ­¤Î¤â¤Î¤Ê¤Î¤Ç¡¢°Ü¿¢À­¤Ï¤Ê¤¤¡£ +は Linux に固有のものなので、移植性はない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Glibc does not provide a wrapper for this system call; call it using .\"O .BR syscall (2). -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +glibc はこのシステムコールに対するラッパー関数を提供していない。 .BR syscall (2) -¤ò»È¤Ã¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¡£ +を使って呼び出すこと。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O .BR pivot_root () .\"O should not have to change root and current working directory of all other .\"O processes in the system. .BR pivot_root () -¤Ï¥·¥¹¥Æ¥à¤Î¾¤Î¥×¥í¥»¥¹Á´¤Æ¤Î root ¤È -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤È¤òÊѹ¹¤·¤Ê¤¯¤Æ¤â¤è¤¤¤Ï¤º¤Ç¤¢¤ë¡£ +はシステムの他のプロセス全ての root と +カレントワーキングディレクトリとを変更しなくてもよいはずである。 .\"O Some of the more obscure uses of .\"O .BR pivot_root () .\"O may quickly lead to .\"O insanity. .BR pivot_root () -¤Î»È¤¤Êý¤¬¤â¤¦¤Á¤ç¤Ã¤ÈÛ£Ëæ¤Ë¤Ê¤ë¤È¡¢ -¤¢¤Ã¤È¤¤¤¦´Ö¤Ë¤ï¤±¤Î¤ï¤«¤é¤Ê¤¤¾õÂ֤ˤʤäƤ·¤Þ¤¦¤À¤í¤¦ +の使い方がもうちょっと曖昧になると、 +あっという間にわけのわからない状態になってしまうだろう .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chdir (2), .BR chroot (2), .BR stat (2), diff --git a/draft/man2/poll.2 b/draft/man2/poll.2 index 2de860d2..3b5b73b3 100644 --- a/draft/man2/poll.2 +++ b/draft/man2/poll.2 @@ -38,48 +38,48 @@ .\" Updated 2006-04-16, Akihiro MOTOKI, Catch up to LDP man-pages 2.28 .\" Updated 2006-07-23, Akihiro MOTOKI, Catch up to LDP man-pages 2.36 .\" -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿ +.\"WORD: descriptor ディスクリプタ .\" .TH POLL 2 2010-09-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O poll, ppoll \- wait for some event on a file descriptor -poll, ppoll \- ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤ª¤±¤ë¥¤¥Ù¥ó¥È¤òÂÔ¤Ä +poll, ppoll \- ファイルディスクリプタにおけるイベントを待つ .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int poll(struct pollfd *" fds ", nfds_t " nfds ", int " timeout ); .sp .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "int ppoll(struct pollfd *" fds ", nfds_t " nfds ", " .BI " const struct timespec *" timeout_ts ", const sigset_t *" sigmask ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR poll () .\"O performs a similar task to .\"O .BR select (2): .\"O it waits for one of a set of file descriptors to become ready .\"O to perform I/O. .BR poll () -¤Ï +は .BR select (2) -¤ÈƱÍͤλŻö¤ò¹Ô¤¦¡¢¤Ä¤Þ¤ê¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤Î¤¤¤º¤ì¤«°ì¤Ä¤¬ -I/O ¤ò¼Â¹Ô²Äǽ¤Ê¾õÂ֤ˤʤë¤Î¤òÂԤġ£ +と同様の仕事を行う、つまり、ファイルディスクリプタ集合のいずれか一つが +I/O を実行可能な状態になるのを待つ。 .\"O The set of file descriptors to be monitored is specified in the .\"O .I fds .\"O argument, which is an array of structures of the following form: -´Æ»ë¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤Ï¡¢ +監視するファイルディスクリプタ集合は、 .I fds -°ú¤­¿ô¤Ç»ØÄꤹ¤ë¡£ +引き数で指定する。 .I fds -¤Ï¡¢°Ê²¼¤Î·¿¤Î¹½Â¤ÂΤÎÇÛÎó¤Ç¤¢¤ë¡£ +は、以下の型の構造体の配列である。 .in +4n .nf @@ -96,25 +96,25 @@ struct pollfd { .\"O array in .\"O .IR nfds . .I nfds -¤Ë¤Ï¡¢ +には、 .I fds -ÇÛÎó¤ÎÍ×ÁÇ¿ô¤ò»ØÄꤹ¤ë¡£ +配列の要素数を指定する。 .\"O The field .\"O .I fd .\"O contains a file descriptor for an open file. -¹½Â¤ÂΤΠ+構造体の .I fd -¤Ë¤Ï¥ª¡¼¥×¥ó¤·¤¿¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÆþ¤ì¤ë¡£ +にはオープンしたファイルのファイルディスクリプタを入れる。 .\"O The field .\"O .I events .\"O is an input parameter, a bit mask specifying the events the application .\"O is interested in. -¹½Â¤ÂΤΠ+構造体の .I events -Í×ÁǤÏÆþÎϥѥé¥á¡¼¥¿¤Ç¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¶½Ì£¤ò»ý¤Ã¤Æ¤¤¤ë¥¤¥Ù¥ó¥È¤Î -¥Ó¥Ã¥È¥Þ¥¹¥¯¤ò»ØÄꤹ¤ë¡£ +要素は入力パラメータで、アプリケーションが興味を持っているイベントの +ビットマスクを指定する。 .\"O The field .\"O .I revents @@ -135,32 +135,32 @@ struct pollfd { .\"O .I revents .\"O field whenever the corresponding condition is true.) .I revents -Í×ÁǤϽÐÎϥѥé¥á¡¼¥¿¤Ç¡¢¼ÂºÝ¤Ëµ¯¤³¤Ã¤¿¥¤¥Ù¥ó¥È¤¬¥«¡¼¥Í¥ë¤Ë¤è¤êÀßÄꤵ¤ì¤ë¡£ +要素は出力パラメータで、実際に起こったイベントがカーネルにより設定される。 .I revents -¤ÇÊÖ¤µ¤ì¤ë¥Ó¥Ã¥ÈÎó¤Ë¤Ï¡¢ +で返されるビット列には、 .I events -¤Ç»ØÄꤷ¤¿¤â¤Î¤Î¤É¤ì¤«¡¢¤â¤·¤¯¤Ï +で指定したもののどれか、もしくは .BR POLLERR , .BR POLLHUP , .B POLLNVAL -¤Î¤¦¤Á¤Î°ì¤Ä¤¬´Þ¤Þ¤ì¤ë +のうちの一つが含まれる .RB ( POLLERR , .BR POLLHUP , .B POLLNVAL -¤Î 3¤Ä¤Î¥Ó¥Ã¥È¤Ï +の 3つのビットは .I events -¤Ë»ØÄꤷ¤Æ¤â°ÕÌ£¤¬¤Ê¤¯¡¢Âбþ¤·¤¿¾õÂÖ¤¬¿¿¤Î¾ì¹ç¤Ë +に指定しても意味がなく、対応した状態が真の場合に .I revents -¤ËÀßÄꤵ¤ì¤ë)¡£ +に設定される)。 .\"O If none of the events requested (and no error) has occurred for any .\"O of the file descriptors, then .\"O .BR poll () .\"O blocks until one of the events occurs. -¤É¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤âÍ׵ᤷ¤¿¥¤¥Ù¥ó¥È¤¬È¯À¸¤·¤Æ¤ª¤é¤º¡¢ -¥¨¥é¡¼¤âµ¯¤³¤é¤Ê¤¤¾ì¹ç¡¢ +どのファイルディスクリプタにも要求したイベントが発生しておらず、 +エラーも起こらない場合、 .BR poll () -¤Ï¥¤¥Ù¥ó¥È¤Î¤¦¤Á¤¤¤º¤ì¤«°ì¤Ä¤¬È¯À¸¤¹¤ë¤Þ¤ÇÄä»ß (block) ¤¹¤ë¡£ +はイベントのうちいずれか一つが発生するまで停止 (block) する。 .\"O The .\"O .I timeout @@ -171,11 +171,11 @@ struct pollfd { .\"O .I timeout .\"O means an infinite timeout. .I timeout -°ú¤­¿ô¤Ï +引き数は .BR poll () -¤¬Ää»ß¤¹¤ë»þ´Ö¤Î¾å¸Â¤òÀßÄꤹ¤ë¤â¤Î¤Ç¡¢¥ß¥êÉÃñ°Ì¤Ç»ØÄꤹ¤ë¡£ +が停止する時間の上限を設定するもので、ミリ秒単位で指定する。 .I timeout -¤ËÉé¤ÎÃͤò»ØÄꤹ¤ë¤È¡¢¥¿¥¤¥à¥¢¥¦¥È»þ´Ö¤¬Ìµ¸Â¤È¤Ê¤ë¡£ +に負の値を指定すると、タイムアウト時間が無限となる。 .\"O The bits that may be set/returned in .\"O .I events @@ -183,28 +183,28 @@ struct pollfd { .\"O .I revents .\"O are defined in \fI\fP: .I events -¤Ë»ØÄꤷ¤¿¤ê¡¢ +に指定したり、 .I revents -¤ÇÊÖ¤µ¤ì¤ë¥Ó¥Ã¥È¤Ï \fI\fP ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +で返されるビットは \fI\fP で定義されている: .RS .TP .B POLLIN .\"O There is data to read. -Æɤ߽Ф·²Äǽ¤Ê¥Ç¡¼¥¿¤¬¤¢¤ë¡£ +読み出し可能なデータがある。 .TP .B POLLPRI .\"O There is urgent data to read (e.g., out-of-band data on TCP socket; .\"O pseudoterminal master in packet mode has seen state change in slave). -Æɤ߽Ф·²Äǽ¤Ê¶ÛµÞ¥Ç¡¼¥¿ (urgent data) ¤¬¤¢¤ë -(Î㤨¤Ð¡¢TCP ¥½¥±¥Ã¥È¤ÎÂÓ°è³° (out-of-band data) ¥Ç¡¼¥¿¤ò¼õ¿®¤·¤¿¾ì¹ç¤ä¡¢ -¥Ñ¥±¥Ã¥È¥â¡¼¥É¤Îµ¼»÷üËö¤Î¥Þ¥¹¥¿¤¬¥¹¥ì¡¼¥Ö¦¤ÎÊѲ½¤ò¸«¤Ä¤±¤¿¤È¤­)¡£ +読み出し可能な緊急データ (urgent data) がある +(例えば、TCP ソケットの帯域外 (out-of-band data) データを受信した場合や、 +パケットモードの擬似端末のマスタがスレーブ側の変化を見つけたとき)。 .TP .B POLLOUT .\"O Writing now will not block. -½ñ¤­¹þ¤ß¤¬Ää»ß (block) ¤·¤Ê¤¤¾õÂ֤Ǥ¢¤ë¡£ +書き込みが停止 (block) しない状態である。 .TP .\"O .BR POLLRDHUP " (since Linux 2.6.17)" -.BR POLLRDHUP " (Linux 2.6.17 °Ê¹ß)" +.BR POLLRDHUP " (Linux 2.6.17 以降)" .\"O Stream socket peer closed connection, .\"O or shut down writing half of connection. .\"O The @@ -214,28 +214,28 @@ struct pollfd { .\"O .I any .\"O header files) .\"O in order to obtain this definition. -¥¹¥È¥ê¡¼¥à¥½¥±¥Ã¥È¤Î¾ü¤¬¡¢¥³¥Í¥¯¥·¥ç¥ó¤ò close ¤·¤¿¤«¡¢ -¥³¥Í¥¯¥·¥ç¥ó¤Î½ñ¤­¹þ¤ß¦¤ò shutdown ¤·¤¿¡£ -¤³¤ÎÄêµÁ¤òÍ­¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢ -(¡Ö¤É¤Î¡×¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤è¤ê¤âÁ°¤Ë) +ストリームソケットの他端が、コネクションを close したか、 +コネクションの書き込み側を shutdown した。 +この定義を有効にするには、 +(「どの」ヘッダファイルをインクルードするよりも前に) .B _GNU_SOURCE -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +機能検査マクロを定義しなければならない。 .TP .B POLLERR .\"O Error condition (output only). -¥¨¥é¡¼¾õÂÖ (½ÐÎϤξì¹ç¤Î¤ß)¡£ +エラー状態 (出力の場合のみ)。 .TP .B POLLHUP .\"O Hang up (output only). -¥Ï¥ó¥°¥¢¥Ã¥×¤·¤¿ (½ÐÎϤξì¹ç¤Î¤ß)¡£ +ハングアップした (出力の場合のみ)。 .TP .B POLLNVAL .\"O Invalid request: .\"O .I fd .\"O not open (output only). -ÉÔÀµ¤ÊÍ×µá: +不正な要求: .I fd -¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤ (½ÐÎϤξì¹ç¤Î¤ß)¡£ +がオープンされていない (出力の場合のみ)。 .RE .PP .\"O When compiling with @@ -243,38 +243,38 @@ struct pollfd { .\"O defined, one also has the following, .\"O which convey no further information beyond the bits listed above: .B _XOPEN_SOURCE -¤òÄêµÁ¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¾ì¹ç¤Ë¤Ï¡¢°Ê²¼¤ÎÄêµÁ¤â¹Ô¤ï¤ì¤ë¡£ -¤¿¤À¤·¡¢¾åµ­¤Î¥ê¥¹¥È¤Ë¤¢¤ë¥Ó¥Ã¥È°Ê¾å¤Î¾ðÊó¤¬ÆÀ¤é¤ì¤ëÌõ¤Ç¤Ï¤Ê¤¤¡£ +を定義してコンパイルした場合には、以下の定義も行われる。 +ただし、上記のリストにあるビット以上の情報が得られる訳ではない。 .RS .TP .B POLLRDNORM .\"O Equivalent to .\"O .BR POLLIN . .B POLLIN -¤ÈƱ¤¸¡£ +と同じ。 .TP .B POLLRDBAND .\"O Priority band data can be read (generally unused on Linux). -Í¥ÀèÂÓ°è¥Ç¡¼¥¿ (priority band data) ¤¬Æɤ߽Ф·²Äǽ¤Ç¤¢¤ë -(ÉáÄÌ¤Ï Linux ¤Ç¤Ï»ÈÍѤµ¤ì¤Ê¤¤)¡£ +優先帯域データ (priority band data) が読み出し可能である +(普通は Linux では使用されない)。 .\" POLLRDBAND is used in the DECnet protocol. .TP .B POLLWRNORM .\"O Equivalent to .\"O .BR POLLOUT . .B POLLOUT -¤ÈƱ¤¸¡£ +と同じ。 .TP .B POLLWRBAND .\"O Priority data may be written. -Í¥ÀèÂÓ°è¥Ç¡¼¥¿ (priority data) ¤¬½ñ¤­¹þ¤ß²Äǽ¤Ç¤¢¤ë¡£ +優先帯域データ (priority data) が書き込み可能である。 .RE .PP .\"O Linux also knows about, but does not use .\"O .BR POLLMSG . -Linux ¤Ç¤Ï +Linux では .B POLLMSG -¤âÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢»ÈÍѤµ¤ì¤Æ¤¤¤Ê¤¤¡£ +も定義されているが、使用されていない。 .SS ppoll() .\"O The relationship between .\"O .BR poll () @@ -290,18 +290,18 @@ Linux .\"O allows an application to safely wait until either a file descriptor .\"O becomes ready or until a signal is caught. .BR poll () -¤È +と .BR ppoll () -¤Î´Ø·¸¤Ï +の関係は .BR select (2) -¤È +と .BR pselect (2) -¤Î´Ø·¸¤ÈƱ¤¸¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë: +の関係と同じようなものである: .BR pselect (2) -¤ÈƱÍͤˡ¢ +と同様に、 .BR ppoll () -¤ò»È¤¦¤È¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¾õÂÖÊѲ½ -¤â¤·¤¯¤Ï¥·¥°¥Ê¥ë¤ÎÊ᪤ò°ÂÁ´¤ËÂԤĤ³¤È¤¬¤Ç¤­¤ë¡£ +を使うと、アプリケーションはファイルディスクリプタの状態変化 +もしくはシグナルの捕捉を安全に待つことができる。 .PP .\"O Other than the difference in the precision of the .\"O .I timeout @@ -309,9 +309,9 @@ Linux .\"O .BR ppoll () .\"O call: .I timeout -°ú¤­¿ô¤ÎÀºÅ٤ΰ㤤¤ò½ü¤¯¤È¡¢°Ê²¼¤Î +引き数の精度の違いを除くと、以下の .BR ppoll () -¤Î¸Æ¤Ó½Ð¤·¤Ï¡¢ +の呼び出しは、 .nf ready = ppoll(&fds, nfds, timeout_ts, &sigmask); @@ -320,9 +320,9 @@ Linux .\"O is equivalent to .\"O .I atomically .\"O executing the following calls: -¼¡¤Î¥³¡¼¥ë¤ò +次のコールを .I atomic -¤Ë¼Â¹Ô¤¹¤ë¤Î¤ÈÅù²Á¤Ç¤¢¤ë¡£ +に実行するのと等価である。 .nf sigset_t origmask; @@ -340,11 +340,11 @@ Linux .\"O for an explanation of why .\"O .BR ppoll () .\"O is necessary. -¤Ê¤¼ +なぜ .BR ppoll () -¤¬É¬ÍפʤΤ«¤Ë¤Ä¤¤¤Æ¤ÎÀâÌÀ¤Ï +が必要なのかについての説明は .BR pselect (2) -¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +の説明を参照のこと。 .\"O If the .\"O .I sigmask @@ -358,14 +358,14 @@ Linux .\"O .I timeout .\"O argument). .I sigmask -°ú¤­¿ô¤Ë NULL ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ÎÁàºî¤Ï¹Ô¤ï¤ì¤Ê¤¤ -(¤·¤¿¤¬¤Ã¤Æ¡¢ +引き数に NULL が指定された場合、シグナルマスクの操作は行われない +(したがって、 .BR ppoll () -¤Î +の .BR poll () -¤È¤Î°ã¤¤¤Ï +との違いは .I timeout -°ú¤­¿ô¤ÎÀºÅÙ¤À¤±¤È¤Ê¤ë)¡£ +引き数の精度だけとなる)。 .\"O The .\"O .I timeout @@ -374,10 +374,10 @@ Linux .\"O will block. .\"O This argument is a pointer to a structure of the following form: .I timeout -°ú¤­¿ô¤Ï +引き数は .BR ppoll () -¤¬Ää»ß¤¹¤ë»þ´Ö¤Î¾å¸Â¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î°ú¤­¿ô¤Ë¤Ï°Ê²¼¤Î·¿¤Î¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ò»ØÄꤹ¤ë¡£ +が停止する時間の上限を指定するものである。 +この引き数には以下の型の構造体へのポインタを指定する。 .in +4n .nf @@ -394,11 +394,11 @@ struct timespec { .\"O .BR ppoll () .\"O can block indefinitely. .I timeout_ts -¤Ë NULL ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +に NULL が指定された場合、 .B ppoll -¤Ï̵¸Â¤ËÄä»ß¤¹¤ë¤³¤È¤¬¤¢¤êÆÀ¤ë¡£ +は無限に停止することがあり得る。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, a positive number is returned; this is .\"O the number of structures which have nonzero .\"O .I revents @@ -408,29 +408,29 @@ struct timespec { .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤ÏÀµ¤Î¿ô¤òÊÖ¤¹¡£¤³¤Î¿ô¤Ï 0 °Ê³°¤Î +成功した場合は正の数を返す。この数は 0 以外の .I revents -Í×ÁǤò»ý¤Ä¹½Â¤ÂΤοô¤Ç¤¢¤ë (Ê̤θÀ¤¤Êý¤ò¤¹¤ë¤È¡¢¤³¤ì¤é¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿ -¤Ë¤Ï¥¤¥Ù¥ó¥È¤«¥¨¥é¡¼Êó¹ð¤¬¤¢¤ë)¡£ -ÃÍ 0 ¤Ï¡¢¥¿¥¤¥à¥¢¥¦¥È¤È¤Ê¤ê¡¢¤É¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤â¥¤¥Ù¥ó¥È¤¬ -ȯÀ¸¤·¤Ê¤«¤Ã¤¿¤³¤È¤ò¼¨¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +要素を持つ構造体の数である (別の言い方をすると、これらのディスクリプタ +にはイベントかエラー報告がある)。 +値 0 は、タイムアウトとなり、どのファイルディスクリプタでもイベントが +発生しなかったことを示す。エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O The array given as argument was not contained in the calling program's .\"O address space. -°ú¤­¿ô¤È¤·¤Æ»ØÄꤷ¤¿ÇÛÎ󤬡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë -´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¡£ +引き数として指定した配列が、呼び出したプロセスのアドレス空間に +含まれていない。 .TP .B EINTR .\"O A signal occurred before any requested event; see .\"O .BR signal (7). -Í׵ᤵ¤ì¤¿¥¤¥Ù¥ó¥È¤Î¤É¤ì¤«¤¬µ¯¤³¤ëÁ°¤Ë¥·¥°¥Ê¥ë¤¬È¯À¸¤·¤¿¡£ +要求されたイベントのどれかが起こる前にシグナルが発生した。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .\"O The @@ -439,15 +439,15 @@ struct timespec { .\"O .B RLIMIT_NOFILE .\"O value. .I nfds -¤ÎÃͤ¬ +の値が .B RLIMIT_NOFILE -¤òĶ¤¨¤¿¡£ +を超えた。 .TP .B ENOMEM .\"O There was no space to allocate file descriptor tables. -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Æ¡¼¥Ö¥ë¤ò³ÎÊݤ¹¤ë¤¿¤á¤Î¥á¥â¥ê¤¬¤Ê¤¤¡£ +ファイルディスクリプタ・テーブルを確保するためのメモリがない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The .\"O .BR poll () .\"O system call was introduced in Linux 2.1.23. @@ -461,14 +461,14 @@ struct timespec { .\"O .BR poll () .\"O system call). .BR poll () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 2.1.23 ¤ÇƳÆþ¤µ¤ì¤¿¡£ +システムコールは Linux 2.1.23 で導入された。 .BR poll () -¥é¥¤¥Ö¥é¥ê¡¦¥³¡¼¥ë¤Ï libc 5.4.28 ¤«¤éƳÆþ¤µ¤ì¤¿ -(¤³¤ì¤Ï¥«¡¼¥Í¥ë¤¬ +ライブラリ・コールは libc 5.4.28 から導入された +(これはカーネルが .BR poll () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë +システムコールをサポートしていない場合に .BR select (2) -¤ò»ÈÍѤ·¤Æ¥¨¥ß¥å¥ì¡¼¥È¤ò¹Ô¤¦)¡£ +を使用してエミュレートを行う)。 .\"O The .\"O .BR ppoll () @@ -477,24 +477,24 @@ struct timespec { .\"O .BR ppoll () .\"O library call was added in glibc 2.4. .BR ppoll () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï ¥«¡¼¥Í¥ë 2.6.16 ¤Ç Linux ¤ËÄɲ䵤줿¡£ +システムコールは カーネル 2.6.16 で Linux に追加された。 .BR ppoll () -¥é¥¤¥Ö¥é¥ê¥³¡¼¥ë¤Ï glibc 2.4 ¤ËÄɲ䵤줿¡£ +ライブラリコールは glibc 2.4 に追加された。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR poll () .\"O conforms to POSIX.1-2001. .\"O .BR ppoll () .\"O is Linux-specific. .\"O .\" NetBSD 3.0 has a pollts() which is like Linux ppoll(). .BR poll () -¤Ï POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +は POSIX.1-2001 に準拠している。 .BR ppoll () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -.\" NetBSD 3.0 ¤Ë¤Ï pollts() ¤¬¤¢¤ë¡£ -.\" pollts() ¤Ï Linux ppoll () ¤ÈƱ¤¸¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¡£ +は Linux 固有である。 +.\" NetBSD 3.0 には pollts() がある。 +.\" pollts() は Linux ppoll () と同じようなものである。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Some implementations define the nonstandard constant .\"O .B INFTIM .\"O with the value \-1 for use as a @@ -502,16 +502,16 @@ struct timespec { .\"O for .\"O .BR poll (). .\"O This constant is not provided in glibc. -¤¤¤¯¤Ä¤«¤Î¼ÂÁõ¤Ç¤Ï¡¢ÃÍ \-1 ¤ò»ý¤Ã¤¿Èóɸ½à¤ÎÄê¿ô +いくつかの実装では、値 \-1 を持った非標準の定数 .B INFTIM -¤¬ÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ +が定義されており、 .BR poll () -¤Î +の .I timeout -¤Î»ØÄê¤Ë»ÈÍѤǤ­¤ë¡£ -¤³¤ÎÄê¿ô¤Ï glibc ¤Ç¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +の指定に使用できる。 +この定数は glibc では定義されていない。 .\"O .SS "LINUX NOTES" -.SS "Linux ¤Ç¤ÎÃí°Õ" +.SS "Linux での注意" .\"O The Linux .\"O .BR ppoll () .\"O system call modifies its @@ -525,28 +525,28 @@ struct timespec { .\"O function does not modify its .\"O .I timeout_ts .\"O argument. -Linux ¤Î +Linux の .BR ppoll () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +システムコールは .I timeout_ts -°ú¤­¿ô¤òÊѹ¹¤¹¤ë¡£ -¤·¤«¤·¡¢glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÅϤ¹ timeout °ú¤­¿ô -¤È¤·¤Æ¥í¡¼¥«¥ëÊÑ¿ô¤ò»È¤¦¤³¤È¤Ç¤³¤ÎÆ°ºî¤ò±£Ê䷤Ƥ¤¤ë¡£ -¤³¤Î¤¿¤á¡¢glibc ¤Î +引き数を変更する。 +しかし、glibc のラッパー関数は、システムコールに渡す timeout 引き数 +としてローカル変数を使うことでこの動作を隠蔽している。 +このため、glibc の .BR ppoll () -´Ø¿ô¤Ç¤Ï +関数では .I timeout_ts -°ú¤­¿ô¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +引き数は変更されない。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O See the discussion of spurious readiness notifications under the .\"O BUGS section of .\"O .BR select (2). .BR select (2) -¤Î¡Ö¥Ð¥°¡×¤ÎÀá¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡¢¸í¤Ã¤¿½àÈ÷´°Î»ÄÌÃÎ (spurious readiness -notifications) ¤Ë¤Ä¤¤¤Æ¤ÎµÄÏÀ¤ò»²¾È¤Î¤³¤È¡£ +の「バグ」の節に書かれている、誤った準備完了通知 (spurious readiness +notifications) についての議論を参照のこと。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR select (2), .BR select_tut (2), .BR time (7) diff --git a/draft/man2/posix_fadvise.2 b/draft/man2/posix_fadvise.2 index ad9c94f4..9ad69b13 100644 --- a/draft/man2/posix_fadvise.2 +++ b/draft/man2/posix_fadvise.2 @@ -32,11 +32,11 @@ .\" .TH POSIX_FADVISE 2 2003-02-14 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O posix_fadvise \- predeclare an access pattern for file data -posix_fadvise \- ¥Õ¥¡¥¤¥ë¥Ç¡¼¥¿¤Î¥¢¥¯¥»¥¹¥Ñ¥¿¡¼¥ó¤ò¤¢¤é¤«¤¸¤áÀë¸À¤¹¤ë +posix_fadvise \- ファイルデータのアクセスパターンをあらかじめ宣言する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #define _XOPEN_SOURCE 600 .B #include @@ -45,81 +45,81 @@ posix_fadvise \- ", int " advice ");" .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Programs can use .\"O .BR posix_fadvise () .\"O to announce an intention to access .\"O file data in a specific pattern in the future, thus allowing the kernel .\"O to perform appropriate optimizations. -¥×¥í¥°¥é¥à¤Ï¡¢¾­ÍèÆÃÄê¤Î¥Ñ¥¿¡¼¥ó¤Ç¥Õ¥¡¥¤¥ë¥Ç¡¼¥¿¤Ë -¥¢¥¯¥»¥¹¤¹¤ë°Õ»×¤òÅÁ¤¨¤ë¤¿¤á¤Ë +プログラムは、将来特定のパターンでファイルデータに +アクセスする意思を伝えるために .BR posix_fadvise () -¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢¥«¡¼¥Í¥ë¤¬Å¬ÀڤʺÇŬ²½¤ò¼Â¹Ô¤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¡£ +を使うことができる。 +これにより、カーネルが適切な最適化を実行することが可能になる。 .\"O The \fIadvice\fP applies to a (not necessarily existent) region starting .\"O at \fIoffset\fP and extending for \fIlen\fP bytes (or until the end of .\"O the file if \fIlen\fP is 0) within the file referred to by \fIfd\fP. .\"O The advice is not binding; it merely constitutes an expectation on behalf of .\"O the application. -\fIadvice\fP ¤Ï \fIfd\fP ¤¬»²¾È¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Î -\fIoffset\fP ¤«¤é»Ï¤Þ¤ë \fIlen\fP ¥Ð¥¤¥È¤ÎÈÏ°ÏÆâ -(\fIlen\fP ¤¬ 0 ¤Î¾ì¹ç¤Ï¥Õ¥¡¥¤¥ë¤Î½ª¤ê¤Þ¤Ç) ¤Î -(ɬ¤º¤·¤â¸ºß¤·¤Ê¤¤) Îΰè¤ËŬÍѤµ¤ì¤ë¡£ -¥¢¥É¥Ð¥¤¥¹¤ÏµÁ̳¤Å¤±¤Ç¤Ï¤Ê¤¤¡£ -¥¢¥É¥Ð¥¤¥¹¤Ïñ¤Ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¤¿¤á¤Ë²ÄǽÀ­¤ò¹½À®¤¹¤ë¤À¤±¤Ç¤¢¤ë¡£ +\fIadvice\fP は \fIfd\fP が参照しているファイルの +\fIoffset\fP から始まる \fIlen\fP バイトの範囲内 +(\fIlen\fP が 0 の場合はファイルの終りまで) の +(必ずしも存在しない) 領域に適用される。 +アドバイスは義務づけではない。 +アドバイスは単にアプリケーションのために可能性を構成するだけである。 .\"O Permissible values for \fIadvice\fP include: -\fIadvice\fP ¤Ëµö¤µ¤ì¤ëÃͤˤϡ¢°Ê²¼¤Î¤â¤Î¤¬´Þ¤Þ¤ì¤ë: +\fIadvice\fP に許される値には、以下のものが含まれる: .TP .B POSIX_FADV_NORMAL .\"O Indicates that the application has no advice to give about its access .\"O pattern for the specified data. .\"O If no advice is given for an open file, .\"O this is the default assumption. -»ØÄꤵ¤ì¤¿¥Ç¡¼¥¿¤Î¥¢¥¯¥»¥¹¥Ñ¥¿¡¼¥ó¤ò»Ø¼¨¤¹¤ë¥¢¥É¥Ð¥¤¥¹¤ò -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬²¿¤â»ý¤Ã¤Æ¤¤¤Ê¤¤¤³¤È¤ò¼¨¤¹¡£ -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë¥¢¥É¥Ð¥¤¥¹¤¬»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢ -¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç²¾Äꤵ¤ì¤ë¡£ +指定されたデータのアクセスパターンを指示するアドバイスを +アプリケーションが何も持っていないことを示す。 +オープンされたファイルにアドバイスが指定されない場合、 +これがデフォルトで仮定される。 .TP .B POSIX_FADV_SEQUENTIAL .\"O The application expects to access the specified data sequentially (with .\"O lower offsets read before higher ones). -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï»ØÄꤵ¤ì¤¿¥Ç¡¼¥¿¤¬¥·¡¼¥±¥ó¥·¥ã¥ë¤Ë -(Â礭¤Ê¥ª¥Õ¥»¥Ã¥È¤ÎÁ°¤Ë¾®¤µ¤Ê¥ª¥Õ¥»¥Ã¥È¤Î¥Ç¡¼¥¿¤òÆɤà¤è¤¦¤Ë) -¥¢¥¯¥»¥¹¤µ¤ì¤ë¤³¤È¤ò´üÂÔ¤¹¤ë¡£ +アプリケーションは指定されたデータがシーケンシャルに +(大きなオフセットの前に小さなオフセットのデータを読むように) +アクセスされることを期待する。 .TP .B POSIX_FADV_RANDOM .\"O The specified data will be accessed in random order. -»ØÄꤵ¤ì¤¿¥Ç¡¼¥¿¤¬¥é¥ó¥À¥à¤Ê½çÈ֤ǥ¢¥¯¥»¥¹¤µ¤ì¤ë¡£ +指定されたデータがランダムな順番でアクセスされる。 .TP .B POSIX_FADV_NOREUSE .\"O The specified data will be accessed only once. -»ØÄꤵ¤ì¤¿¥Ç¡¼¥¿¤Ï 1 ÅÙ¤·¤«¥¢¥¯¥»¥¹¤µ¤ì¤Ê¤¤¡£ +指定されたデータは 1 度しかアクセスされない。 .TP .B POSIX_FADV_WILLNEED .\"O The specified data will be accessed in the near future. -»ØÄꤵ¤ì¤¿¥Ç¡¼¥¿¤Ï¶á¤¤¾­Í襢¥¯¥»¥¹¤µ¤ì¤ë¡£ +指定されたデータは近い将来アクセスされる。 .TP .B POSIX_FADV_DONTNEED .\"O The specified data will not be accessed in the near future. -»ØÄꤵ¤ì¤¿¥Ç¡¼¥¿¤Ï¶á¤¤¾­Í襢¥¯¥»¥¹¤µ¤ì¤Ê¤¤¡£ +指定されたデータは近い将来アクセスされない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, an error number is returned. -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¨¥é¡¼Èֹ椬ÊÖ¤µ¤ì¤ë¡£ +成功した場合は 0 が返される。 +失敗した場合はエラー番号が返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O The \fIfd\fP argument was not a valid file descriptor. -\fIfd\fP °ú¤­¿ô¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +\fIfd\fP 引き数が有効なファイルディスクリプタでない。 .TP .B EINVAL .\"O An invalid value was specified for \fIadvice\fP. -̵¸ú¤ÊÃͤ¬ \fIadvice\fP ¤Ë»ØÄꤵ¤ì¤¿¡£ +無効な値が \fIadvice\fP に指定された。 .TP .B ESPIPE .\"O returns EINVAL in this case.) @@ -128,22 +128,22 @@ posix_fadvise \- .\"O returns .\"O .B EINVAL .\"O in this case.) -»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥Ñ¥¤¥×¤Þ¤¿¤Ï FIFO ¤ò»²¾È¤·¤Æ¤¤¤ë -(¤³¤Î¾ì¹ç¡¢Linux ¤Ï¼ÂºÝ¤Ë¤Ï +指定されたファイルディスクリプタがパイプまたは FIFO を参照している +(この場合、Linux は実際には .B EINVAL -¤òÊÖ¤¹)¡£ +を返す)。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR posix_fadvise () .\"O appeared in kernel 2.5.60. .\"O .\" Actually as fadvise64() -- MTK .\"O Glibc support has been provided since version 2.2. .BR posix_fadvise () -¤Ï¥«¡¼¥Í¥ë 2.5.60 ¤ÇÅо줷¤¿¡£ -.\" ¼ÂºÝ¤Ë¤Ï fadvise64() ¤È¤·¤ÆÅо줷¤¿¡£-- MTK -glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.2 °Ê¹ß¤Ç¹Ô¤ï¤ì¤Æ¤¤¤ë¡£ +はカーネル 2.5.60 で登場した。 +.\" 実際には fadvise64() として登場した。-- MTK +glibc でのサポートは glibc バージョン 2.2 以降で行われている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O Note that the type of the .\"O .I len @@ -153,24 +153,24 @@ POSIX.1-2001. .\"O .I off_t .\"O in POSIX.1-2003 TC1. .I len -°ú¤­¿ô¤Î·¿¤¬ POSIX.1-2003 TC1 ¤Ë¤ª¤¤¤Æ +引き数の型が POSIX.1-2003 TC1 において .I size_t -¤«¤é +から .I off_t -¤ËÊѹ¹¤µ¤ì¤¿ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +に変更された点に注意すること。 .\"O .SH NOTES .\"O Under Linux, \fBPOSIX_FADV_NORMAL\fP sets the readahead window to the .\"O default size for the backing device; \fBPOSIX_FADV_SEQUENTIAL\fP doubles .\"O this size, and \fBPOSIX_FADV_RANDOM\fP disables file readahead entirely. -.SH Ãí°Õ -Linux ¤Ç¤Ï¡¢\fBPOSIX_FADV_NORMAL\fP ¤Ï¥Ð¥Ã¥­¥ó¥°¥Ç¥Ð¥¤¥¹¤Î -¥Ç¥Õ¥©¥ë¥È¥µ¥¤¥º¤ËÀèÆÉ¤ß (readahead) ¥¦¥¤¥ó¥É¥¦¤òÀßÄꤹ¤ë¡£ -\fBPOSIX_FADV_SEQUENTIAL\fP ¤Ï¤³¤Î¥µ¥¤¥º¤ò 2 Çܤ·¡¢ -\fBPOSIX_FADV_RANDOM\fP ¤ÏÀèÆɤߤòÁ´¤¯Ìµ¸ú¤Ë¤¹¤ë¡£ +.SH 注意 +Linux では、\fBPOSIX_FADV_NORMAL\fP はバッキングデバイスの +デフォルトサイズに先読み (readahead) ウインドウを設定する。 +\fBPOSIX_FADV_SEQUENTIAL\fP はこのサイズを 2 倍し、 +\fBPOSIX_FADV_RANDOM\fP は先読みを全く無効にする。 .\"O These changes affect the entire file, not just the specified region .\"O (but other open file handles to the same file are unaffected). -¤³¤ì¤é¤ÎÊѹ¹¤Ï¥Õ¥¡¥¤¥ëÁ´ÂΤ˱ƶÁ¤·¡¢»ØÄꤵ¤ì¤¿Îΰè¤Î¤ß¤Ë±Æ¶Á¤¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤ -(¤·¤«¤·Æ±¤¸¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¾¤Î¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤Ï±Æ¶Á¤ò¼õ¤±¤Ê¤¤)¡£ +これらの変更はファイル全体に影響し、指定された領域のみに影響するわけではない +(しかし同じファイルに対する他のオープンファイルハンドルは影響を受けない)。 .\"O \fBPOSIX_FADV_WILLNEED\fP initiates a .\"O nonblocking read of the specified region into the page cache. @@ -178,20 +178,20 @@ Linux .\"O on virtual memory load. .\"O (A few megabytes will usually be fully satisfied, .\"O and more is rarely useful.) -\fBPOSIX_FADV_WILLNEED\fP ¤Ï¡¢ -¥Ú¡¼¥¸¥­¥ã¥Ã¥·¥å¤Ë»ØÄêÎΰè¤Î¥Ö¥í¥Ã¥¯¤µ¤ì¤Ê¤¤Æɤ߹þ¤ß¤ò³«»Ï¤¹¤ë¡£ -Æɤ߹þ¤Þ¤ì¤ë¥Ç¡¼¥¿¤ÎÁíÎ̤ϡ¢ -²¾ÁÛ¥á¥â¥ê¤ÎÉé²Ù¤Ë°Í¤Ã¤Æ¥«¡¼¥Í¥ë¤¬¸º¤é¤¹¤«¤â¤·¤ì¤Ê¤¤ -(¿ô¥á¥¬¥Ð¥¤¥È¤Ç¤¢¤ì¤ÐÄ̾ï¤ÏÁ´¤¯½½Ê¬¤Ç¤¢¤ê¡¢ -¤½¤ì¤è¤ê¿¤¯¤Æ¤â¤á¤Ã¤¿¤ËÌò¤ËΩ¤¿¤Ê¤¤)¡£ +\fBPOSIX_FADV_WILLNEED\fP は、 +ページキャッシュに指定領域のブロックされない読み込みを開始する。 +読み込まれるデータの総量は、 +仮想メモリの負荷に依ってカーネルが減らすかもしれない +(数メガバイトであれば通常は全く十分であり、 +それより多くてもめったに役に立たない)。 .\"O In kernels before 2.6.18, \fBPOSIX_FADV_NOREUSE\fP had the .\"O same semantics as \fBPOSIX_FADV_WILLNEED\fP. .\"O This was probably a bug; since kernel 2.6.18, this flag is a no-op. -2.6.18 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢\fBPOSIX_FADV_NOREUSE\fP ¤Ï -\fBPOSIX_FADV_WILLNEED\fP ¤ÈƱ¤¸°ÕÌ£¤Ç¤¢¤Ã¤¿¡£ -¤³¤ì¤Ï¿ʬ¥Ð¥°¤Ç¤¢¤Ã¤¿¡£ -¥«¡¼¥Í¥ë 2.6.18 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¥Õ¥é¥°¤Ï²¿¤â¹Ô¤ï¤Ê¤¤¡£ +2.6.18 より前のカーネルでは、\fBPOSIX_FADV_NOREUSE\fP は +\fBPOSIX_FADV_WILLNEED\fP と同じ意味であった。 +これは多分バグであった。 +カーネル 2.6.18 以降では、このフラグは何も行わない。 .\"O \fBPOSIX_FADV_DONTNEED\fP attempts to free cached pages associated with .\"O the specified region. @@ -200,13 +200,13 @@ Linux .\"O A program may periodically request the kernel to free cached data .\"O that has already been used, so that more useful cached pages are not .\"O discarded instead. -\fBPOSIX_FADV_DONTNEED\fP ¤Ï»ØÄꤵ¤ì¤¿Îΰè¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿ -¥­¥ã¥Ã¥·¥å¥Ú¡¼¥¸¤ò²òÊü¤·¤è¤¦¤È¤¹¤ë¡£ -Î㤨¤Ð¡¢¤³¤ì¤ÏÂ礭¤Ê¥Õ¥¡¥¤¥ë¤ò¥¹¥È¥ê¡¼¥ß¥ó¥°¤¹¤ë¤È¤­¤ËÌòΩ¤Ä¡£ -¥×¥í¥°¥é¥à¤Ï¡¢»ÈÍѺѤߤΥ­¥ã¥Ã¥·¥å¤µ¤ì¤¿¥Ç¡¼¥¿¤ò²òÊü¤¹¤ë¤è¤¦¤Ë¡¢ -Äê´üŪ¤Ë¥«¡¼¥Í¥ë¤ËÍ׵᤹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤½¤¦¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢¤µ¤é¤ËÍ­¸ú¤Ê¥­¥ã¥Ã¥·¥å¤µ¤ì¤¿¥Ú¡¼¥¸¤¬¡¢ -Âå¤ï¤ê¤ËÇË´þ¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ +\fBPOSIX_FADV_DONTNEED\fP は指定された領域に関連付けられた +キャッシュページを解放しようとする。 +例えば、これは大きなファイルをストリーミングするときに役立つ。 +プログラムは、使用済みのキャッシュされたデータを解放するように、 +定期的にカーネルに要求するかもしれない。 +そうすることにより、さらに有効なキャッシュされたページが、 +代わりに破棄されることはない。 .\"O Pages that have not yet been written out will be unaffected, so if the .\"O application wishes to guarantee that pages will be released, it should @@ -215,26 +215,26 @@ Linux .\"O or .\"O .BR fdatasync (2) .\"O first. -¤Þ¤À½ñ¤­½Ð¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ú¡¼¥¸¤Ï±Æ¶Á¤ò¼õ¤±¤Ê¤¤¤Î¤Ç¡¢ -¤½¤Î¥Ú¡¼¥¸¤Î²òÊü¤¬Êݾڤµ¤ì¤ë¤³¤È¤ò¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬Ë¾¤ó¤Ç¤¤¤ë¤Ê¤é¡¢ -ºÇ½é¤Ë +まだ書き出されていないページは影響を受けないので、 +そのページの解放が保証されることをアプリケーションが望んでいるなら、 +最初に .BR fsync (2) -¤Þ¤¿¤Ï +または .BR fdatasync (2) -¤ò¸Æ¤Ö¤Ù¤­¤Ç¤¢¤ë¡£ +を呼ぶべきである。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O In kernels before 2.6.6, if .\"O .I len .\"O was specified as 0, then this was interpreted literally as "zero bytes", .\"O rather than as meaning "all bytes through to the end of the file". -2.6.6 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +2.6.6 より前のカーネルでは、 .I len -¤Ë 0 ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ -¡Ö¥Õ¥¡¥¤¥ë¤Î½ª¤ê¤Þ¤Ç¤ÎÁ´¤Æ¤Î¥Ð¥¤¥È¡×¤È¤¤¤¦°ÕÌ£¤Ç¤Ï¤Ê¤¯¡¢ -ʸ»úÄ̤ê¡Ö0 ¥Ð¥¤¥È¡×¤È¤·¤Æ²ò¼á¤µ¤ì¤Æ¤¤¤¿¡£ +に 0 が指定された場合、 +「ファイルの終りまでの全てのバイト」という意味ではなく、 +文字通り「0 バイト」として解釈されていた。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR readahead (2), .BR posix_fallocate (3), .BR posix_madvise (3) diff --git a/draft/man2/prctl.2 b/draft/man2/prctl.2 index 5da1b05a..c386f511 100644 --- a/draft/man2/prctl.2 +++ b/draft/man2/prctl.2 @@ -48,16 +48,16 @@ .\" Updated 2007-10-12, Akihiro MOTOKI, LDP v2.66 .\" Updated 2008-08-12, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: capability ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ -.\"WORD: keep capabilities ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ÊÝ»ý +.\"WORD: capability ケーパビリティ +.\"WORD: keep capabilities ケーパビリティ保持 .\" .TH PRCTL 2 2008-07-16 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O prctl \- operations on a process -prctl \- ¥×¥í¥»¥¹¤ÎÁàºî¤ò¹Ô¤Ê¤¦ +prctl \- プロセスの操作を行なう .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -65,20 +65,20 @@ prctl \- .BI " unsigned long " arg4 ", unsigned long " arg5 ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR prctl () .\"O is called with a first argument describing what to do .\"O (with values defined in \fI\fP), and further .\"O arguments with a significance depending on the first one. .\"O The first argument can be: .BR prctl () -¤ÎÆ°ºî¤ÏºÇ½é¤Î°ú¤­¿ô¤Ë¤è¤Ã¤Æ·èÄꤵ¤ì¤ë (¤³¤ÎÃÍ¤Ï -\fI\fP ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ -»Ä¤ê¤Î°ú¤­¿ô¤ÏºÇ½é¤Î°ú¤­¿ô¤Ë¤è¤Ã¤ÆÊѲ½¤¹¤ë¡£ -°ìÈÖÌܤΰú¤­¿ô¤È¤·¤Æ°Ê²¼¤Î¤â¤Î¤ò»ØÄê¤Ç¤­¤ë: +の動作は最初の引き数によって決定される (この値は +\fI\fP に定義されている)。 +残りの引き数は最初の引き数によって変化する。 +一番目の引き数として以下のものを指定できる: .TP .\"O .BR PR_CAPBSET_READ " (since Linux 2.6.25) -.BR PR_CAPBSET_READ " (Linux 2.6.25 °Ê¹ß)" +.BR PR_CAPBSET_READ " (Linux 2.6.25 以降)" .\"O Return (as the function result) 1 if the capability specified in .\"O .I arg2 .\"O is in the calling thread's capability bounding set, @@ -89,29 +89,29 @@ prctl \- .\"O whether the process can receive the capability through a .\"O file's permitted capability set on a subsequent call to .\"O .BR execve (2). -¤Ç»ØÄꤵ¤ì¤¿¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ -¥Ð¥¤¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È (capability bounding set) ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -(´Ø¿ô¤ÎÊÖ¤êÃͤȤ·¤Æ) 1 ¤òÊÖ¤·¡¢¤½¤¦¤Ç¤Ê¤¤¾ì¹ç 0 ¤òÊÖ¤¹ -(¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£Äê¿ô¤Ï +で指定されたケーパビリティが呼び出したスレッドのケーパビリティ +バインディングセット (capability bounding set) に含まれている場合、 +(関数の返り値として) 1 を返し、そうでない場合 0 を返す +(ケーパビリティ定数は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï¡¢ +で定義されている)。 +ケーパビリティバウンディングセットは、 .BR execve (2) -¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¡¢¥Õ¥¡¥¤¥ë¤Îµö²Ä (permitted) ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ÎÃæ¤Ç -¤½¤Î¥×¥í¥»¥¹¤¬³ÍÆÀ¤Ç¤­¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»Ø¼¨¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +を呼び出した際に、ファイルの許可 (permitted) ケーパビリティの中で +そのプロセスが獲得できるケーパビリティを指示するものである。 .\"O If the capability specified in .\"O .I arg2 .\"O is not valid, then the call fails with the error .\"O .BR EINVAL . .I arg2 -¤Ë»ØÄꤵ¤ì¤¿¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬Í­¸ú¤Ç¤Ê¤¤¾ì¹ç¡¢ -¸Æ¤Ó½Ð¤·¤Ï¥¨¥é¡¼ +に指定されたケーパビリティが有効でない場合、 +呼び出しはエラー .B EINVAL -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .TP .\"O .BR PR_CAPBSET_DROP " (since Linux 2.6.25)" -.BR PR_CAPBSET_DROP " (Linux 2.6.25 °Ê¹ß)" +.BR PR_CAPBSET_DROP " (Linux 2.6.25 以降)" .\"O If the calling thread has the .\"O .B CAP_SETPCAP .\"O capability, then drop the capability specified by @@ -119,14 +119,14 @@ prctl \- .\"O from the calling thread's capability bounding set. .\"O Any children of the calling thread will inherit the newly .\"O reduced bounding set. -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤¬¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ +呼び出したスレッドがケーパビリティ .B CAP_SETPCAP -¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤«¤é +を持っている場合、 +呼び出したスレッドのケーパビリティバウンディングセットから .I arg2 -¤Ç»ØÄꤵ¤ì¤¿¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò³°¤¹¡£ -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î»Ò¥×¥í¥»¥¹¤ÏÊѹ¹¸å¤Î¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤ò -·Ñ¾µ¤¹¤ë¡£ +で指定されたケーパビリティを外す。 +呼び出したスレッドの子プロセスは変更後のバウンディングセットを +継承する。 .\"O The call fails with the error: .\"O .B EPERM @@ -139,22 +139,22 @@ prctl \- .\"O .BR EINVAL .\"O if file capabilities are not enabled in the kernel, .\"O in which case bounding sets are not supported. -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤¬ +呼び出したスレッドが .B CAP_SETPCAP -¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¤Ï¥¨¥é¡¼ +を持っていない場合、呼び出しはエラー .B EPERM -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .I arg2 -¤Ë»ØÄꤵ¤ì¤¿¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬Í­¸ú¤Ç¤Ê¤¤¾ì¹ç¡¢ +に指定されたケーパビリティが有効でない場合、 .B EINVAL -¤Ç¼ºÇÔ¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¥«¡¼¥Í¥ë¤ÇÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç -(¤³¤Î¾ì¹ç¤Ë¤Ï¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Ê¤¤)¡¢ +で失敗する。 +ファイルケーパビリティがカーネルで有効になっていない場合 +(この場合にはバウンディングセットがサポートされない)、 .B EINVAL -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .TP .\"O .BR PR_SET_DUMPABLE " (since Linux 2.3.20)" -.BR PR_SET_DUMPABLE " (Linux 2.3.20 °Ê¹ß)" +.BR PR_SET_DUMPABLE " (Linux 2.3.20 以降)" .\"O Set the state of the flag determining whether core dumps are produced .\"O for this process upon delivery of a signal whose default behavior is .\"O to produce a core dump. @@ -164,25 +164,25 @@ prctl \- .\"O In kernels up to and including 2.6.12, .\"O .I arg2 .\"O must be either 0 (process is not dumpable) or 1 (process is dumpable). -(Linux 2.3.20 °Ê¹ß) -¥Ç¥Õ¥©¥ë¥È¤Î¿¶¤ëÉñ¤¤¤Ç¤Ï¥³¥¢¥À¥ó¥×¤ò°ú¤­µ¯¤³¤¹¤è¤¦¤Ê¥·¥°¥Ê¥ë¤ò¼õ¿®¤·¤¿¤È¤­¤Ë¡¢ -¥³¥¢¥À¥ó¥×¤¹¤ë¤«¤É¤¦¤«¤ò·èÄꤹ¤ë¥Õ¥é¥°¤òÀßÄꤹ¤ë -(Ä̾盧¤Î¥Õ¥é¥°¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -set-user-ID ¤¢¤ë¤¤¤Ï set-group-ID ¥×¥í¥°¥é¥à¤¬¼Â¹Ô¤µ¤ì¤¿¤ê¡¢ -¤µ¤Þ¤¶¤Þ¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤è¤Ã¤Æ¥×¥í¥»¥¹¤Î UID ¤ä GID ¤¬Áàºî¤µ¤ì¤¿¤È¤­¤Ë -¥¯¥ê¥¢¤µ¤ì¤ë)¡£ -2.6.12 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +(Linux 2.3.20 以降) +デフォルトの振る舞いではコアダンプを引き起こすようなシグナルを受信したときに、 +コアダンプするかどうかを決定するフラグを設定する +(通常このフラグは、デフォルトではセットされているが、 +set-user-ID あるいは set-group-ID プログラムが実行されたり、 +さまざまなシステムコールによってプロセスの UID や GID が操作されたときに +クリアされる)。 +2.6.12 以前のカーネルでは、 .I arg2 -¤Ï 0 (¥×¥í¥»¥¹¤Ï¥À¥ó¥×ÉÔ²Ä) ¤¢¤ë¤¤¤Ï 1 (¥×¥í¥»¥¹¤Ï¥À¥ó¥×²Äǽ) ¤Î -¤É¤Á¤é¤«¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は 0 (プロセスはダンプ不可) あるいは 1 (プロセスはダンプ可能) の +どちらかでなければならない。 .\"O Between kernels 2.6.13 and 2.6.17, the value 2 was also permitted, .\"O which caused any binary which normally would not be dumped .\"O to be dumped readable by root only; .\"O for security reasons, this feature has been removed. -2.6.13 ¤«¤é 2.6.17 ¤Þ¤Ç¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ÃÍ 2 ¤âǧ¤á¤é¤ì¤Æ¤¤¤¿¡£ -¤³¤ÎÃͤò»ØÄꤹ¤ë¤È¡¢Ä̾ï¤Ï¥À¥ó¥×¤µ¤ì¤Ê¤¤¥Ð¥¤¥Ê¥ê¤¬ root ¤À¤±¤¬ -Æɤ߹þ¤ß²Äǽ¤Ê·Á¤Ç¥À¥ó¥×¤µ¤ì¤¿¡£ -¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÍýͳ¤«¤é¡¢¤³¤Îµ¡Ç½¤Ïºï½ü¤µ¤ì¤¿ +2.6.13 から 2.6.17 までのカーネルでは、値 2 も認められていた。 +この値を指定すると、通常はダンプされないバイナリが root だけが +読み込み可能な形でダンプされた。 +セキュリティ上の理由から、この機能は削除された .\" See http://marc.theaimsgroup.com/?l=linux-kernel&m=115270289030630&w=2 .\" Subject: Fix prctl privilege escalation (CVE-2006-2451) .\" From: Marcel Holtmann @@ -192,26 +192,26 @@ set-user-ID .\"O in .\"O .BR proc (5).) .RB ( proc (5) -¤Î +の .I /proc/sys/fs/suid_dumpable -¤ÎÀâÌÀ¤â»²¾È)¡£ +の説明も参照)。 .TP .\"O .BR PR_GET_DUMPABLE " (since Linux 2.3.20)" -.BR PR_GET_DUMPABLE " (Linux 2.3.20 °Ê¹ß)" +.BR PR_GET_DUMPABLE " (Linux 2.3.20 以降)" .\"O Return (as the function result) the current state of the calling .\"O process's dumpable flag. -(Linux 2.3.20 °Ê¹ß) -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë¤ª¤±¤ë¥À¥ó¥×²Äǽ¥Õ¥é¥°¤Î -¸½ºß¤Î¾õÂÖ¤ò (´Ø¿ô¤ÎÊÖ¤êÃͤȤ·¤Æ) ÊÖ¤¹¡£ +(Linux 2.3.20 以降) +呼び出し元プロセスにおけるダンプ可能フラグの +現在の状態を (関数の返り値として) 返す。 .\"O .\" Since Linux 2.6.13, the dumpable flag can have the value 2, .\"O .\" but in 2.6.13 PR_GET_DUMPABLE simply returns 1 if the dumpable .\"O .\" flags has a nonzero value. This was fixed in 2.6.14. -.\" [Í×½¤Àµ] Linux 2.6.13 °Ê¹ß¤Ç¤Ï¡¢¥À¥ó¥×²Äǽ¥Õ¥é¥°¤ÏÃÍ 2 ¤ò¤È¤ë¤³¤È¤¬ -.\" ¤Ç¤­¤ë¤¬¡¢2.6.13 ¤Ç¤Ï PR_GET_DUMPABLE ¤Ï¥À¥ó¥×²Äǽ¥Õ¥é¥°¤¬ 0 °Ê³°¤Î -.\" Ãͤξì¹ç 1 ¤òÊÖ¤¹¤À¤±¤Ç¤¢¤ë¡£¤³¤ì¤Ï 2.6.14 ¤Ç½¤Àµ¤µ¤ì¤¿¡£ +.\" [要修正] Linux 2.6.13 以降では、ダンプ可能フラグは値 2 をとることが +.\" できるが、2.6.13 では PR_GET_DUMPABLE はダンプ可能フラグが 0 以外の +.\" 値の場合 1 を返すだけである。これは 2.6.14 で修正された。 .TP .\"O .BR PR_SET_ENDIAN " (since Linux 2.6.18, PowerPC only)" -.BR PR_SET_ENDIAN " (Linux 2.6.18 °Ê¹ß¡¢PowerPC ¤Î¤ß)" +.BR PR_SET_ENDIAN " (Linux 2.6.18 以降、PowerPC のみ)" .\"O Set the endian-ness of the calling process to the value given .\"O in \fIarg2\fP, which should be one of the following: .\"O .\" Respectively 0, 1, 2 @@ -220,51 +220,51 @@ set-user-ID .\"O or .\"O .B PR_ENDIAN_PPC_LITTLE .\"O (PowerPC pseudo little endian). -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥¨¥ó¥Ç¥£¥¢¥óÀßÄê (endian-ness) ¤ò -\fIarg2\fP ¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£ -»ØÄê¤Ç¤­¤ëÃÍ¤Ï -.\" ¤½¤ì¤¾¤ì 0, 1, 2 +呼び出し元プロセスのエンディアン設定 (endian-ness) を +\fIarg2\fP で指定された値に設定する。 +指定できる値は +.\" それぞれ 0, 1, 2 .BR PR_ENDIAN_BIG , .BR PR_ENDIAN_LITTLE , .B PR_ENDIAN_PPC_LITTLE -(PowerPC µ¼»÷¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó) -¤Î¤¤¤º¤ì¤«°ì¤Ä¤Ç¤¢¤ë¡£ +(PowerPC 擬似リトルエンディアン) +のいずれか一つである。 .TP .\"O .BR PR_GET_ENDIAN " (since Linux 2.6.18, PowerPC only)" -.BR PR_GET_ENDIAN " (Linux 2.6.18 °Ê¹ß¡¢PowerPC ¤Î¤ß)" +.BR PR_GET_ENDIAN " (Linux 2.6.18 以降、PowerPC のみ)" .\"O Return the endian-ness of the calling process, .\"O in the location pointed to by .\"O .IR "(int\ *) arg2" . -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥¨¥ó¥Ç¥£¥¢¥óÀßÄê (endian-ness) ¤ò +呼び出し元プロセスのエンディアン設定 (endian-ness) を .I "(int\ *) arg2" -¤¬»Ø¤¹¾ì½ê¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ +が指す場所に格納して返す。 .TP .\"O .BR PR_SET_FPEMU " (since Linux 2.4.18, 2.5.9, only on ia64)" -.BR PR_SET_FPEMU " (Linux 2.4.18 °Ê¹ß, 2.5.9, ia64 ¤Î¤ß)" +.BR PR_SET_FPEMU " (Linux 2.4.18 以降, 2.5.9, ia64 のみ)" .\"O Set floating-point emulation control bits to \fIarg2\fP. .\"O Pass \fBPR_FPEMU_NOPRINT\fP to silently emulate fp operations accesses, or .\"O \fBPR_FPEMU_SIGFPE\fP to not emulate fp operations and send .\"O .B SIGFPE .\"O instead. -ÉâÆ°¾®¿ôÅÀ¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó (floating-point emulation) À©¸æ¥Ó¥Ã¥È¤ò -\fIarg2\fP ¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£ -»ØÄê¤Ç¤­¤ëÃÍ¤Ï \fBPR_FPEMU_NOPRINT\fP (ÉâÆ°¾®¿ôÅÀÌ¿Îᥢ¥¯¥»¥¹¤òÌÛ¤Ã¤Æ -¥¨¥ß¥å¥ì¡¼¥È¤¹¤ë) ¤« \fBPR_FPEMU_SIGFPE\fP (ÉâÆ°¾®¿ôÅÀÌ¿Îá¤ò¥¨¥ß¥å¥ì¡¼¥È¤»¤º¡¢ -Âå¤ï¤ê¤Ë +浮動小数点エミュレーション (floating-point emulation) 制御ビットを +\fIarg2\fP で指定された値に設定する。 +指定できる値は \fBPR_FPEMU_NOPRINT\fP (浮動小数点命令アクセスを黙って +エミュレートする) か \fBPR_FPEMU_SIGFPE\fP (浮動小数点命令をエミュレートせず、 +代わりに .B SIGFPE -¤òÁ÷¤ë) ¤Ç¤¢¤ë¡£ +を送る) である。 .TP .\"O .BR PR_GET_FPEMU " (since Linux 2.4.18, 2.5.9, only on ia64)" -.BR PR_GET_FPEMU " (Linux 2.4.18 °Ê¹ß, 2.5.9, ia64 ¤Î¤ß)" +.BR PR_GET_FPEMU " (Linux 2.4.18 以降, 2.5.9, ia64 のみ)" .\"O Return floating-point emulation control bits, .\"O in the location pointed to by .\"O .IR "(int\ *) arg2" . -ÉâÆ°¾®¿ôÅÀ¥¨¥ß¥å¥ì¡¼¥·¥ç¥óÀ©¸æ¥Ó¥Ã¥È¤ÎÃͤò +浮動小数点エミュレーション制御ビットの値を .I "(int\ *) arg2" -¤¬»Ø¤¹¾ì½ê¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ +が指す場所に格納して返す。 .TP .\"O .BR PR_SET_FPEXC " (since Linux 2.4.21, 2.5.32, only on PowerPC)" -.BR PR_SET_FPEXC " (Linux 2.4.21 ¤ª¤è¤Ó 2.5.32 °Ê¹ß¡¢PowerPC ¤Î¤ß)" +.BR PR_SET_FPEXC " (Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)" .\"O Set floating-point exception mode to \fIarg2\fP. .\"O Pass \fBPR_FP_EXC_SW_ENABLE\fP to use FPEXC for FP exception enables, .\"O \fBPR_FP_EXC_DIV\fP for floating-point divide by zero, @@ -276,31 +276,31 @@ set-user-ID .\"O \fBPR_FP_EXC_NONRECOV\fP for async nonrecoverable exception mode, .\"O \fBPR_FP_EXC_ASYNC\fP for async recoverable exception mode, .\"O \fBPR_FP_EXC_PRECISE\fP for precise exception mode. -ÉâÆ°¾®¿ôÅÀÎã³°¥â¡¼¥É (floating-point exception mode) ¤ò -\fIarg2\fP ¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£ -»ØÄê¤Ç¤­¤ë¤Î¤Ï°Ê²¼¤ÎÃͤǤ¢¤ë: -\fBPR_FP_EXC_SW_ENABLE\fP (FPEXC ¤ÇÉâÆ°¾®¿ôÅÀÎã³°¤òÍ­¸ú¤Ë¤¹¤ë)¡¢ -\fBPR_FP_EXC_DIV\fP (0 ½ü»»)¡¢ -\fBPR_FP_EXC_OVF\fP (¥ª¡¼¥Ð¡¼¥Õ¥í¡¼)¡¢ -\fBPR_FP_EXC_UND\fP (¥¢¥ó¥À¡¼¥Õ¥í¡¼)¡¢ -\fBPR_FP_EXC_RES\fP (ÉÔÀµ³Î¤Ê·ë²Ì (inexact result))¡¢ -\fBPR_FP_EXC_INV\fP (ÉÔÀµ¤ÊÌ¿Îá (invalid operation))¡¢ -\fBPR_FP_EXC_DISABLED\fP (ÉâÆ°¾®¿ôÅÀÎã³°¤ò̵¸ú¤Ë¤¹¤ë)¡¢ -\fBPR_FP_EXC_NONRECOV\fP (async nonrecoverable exception mode)¡¢ -\fBPR_FP_EXC_ASYNC\fP (async recoverable exception mode)¡¢ -\fBPR_FP_EXC_PRECISE\fP (precise exception mode)¡£ +浮動小数点例外モード (floating-point exception mode) を +\fIarg2\fP で指定された値に設定する。 +指定できるのは以下の値である: +\fBPR_FP_EXC_SW_ENABLE\fP (FPEXC で浮動小数点例外を有効にする)、 +\fBPR_FP_EXC_DIV\fP (0 除算)、 +\fBPR_FP_EXC_OVF\fP (オーバーフロー)、 +\fBPR_FP_EXC_UND\fP (アンダーフロー)、 +\fBPR_FP_EXC_RES\fP (不正確な結果 (inexact result))、 +\fBPR_FP_EXC_INV\fP (不正な命令 (invalid operation))、 +\fBPR_FP_EXC_DISABLED\fP (浮動小数点例外を無効にする)、 +\fBPR_FP_EXC_NONRECOV\fP (async nonrecoverable exception mode)、 +\fBPR_FP_EXC_ASYNC\fP (async recoverable exception mode)、 +\fBPR_FP_EXC_PRECISE\fP (precise exception mode)。 .TP .\"O .BR PR_GET_FPEXC " (since Linux 2.4.21, 2.5.32, only on PowerPC)" -.BR PR_GET_FPEXC "(Linux 2.4.21 ¤ª¤è¤Ó 2.5.32 °Ê¹ß¡¢PowerPC ¤Î¤ß)" +.BR PR_GET_FPEXC "(Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)" .\"O Return floating-point exception mode, .\"O in the location pointed to by .\"O .IR "(int\ *) arg2" . -ÉâÆ°¾®¿ôÅÀÎã³°¥â¡¼¥É¤ÎÃͤò +浮動小数点例外モードの値を .I "(int\ *) arg2" -¤¬»Ø¤¹¾ì½ê¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ +が指す場所に格納して返す。 .TP .\"O .BR PR_SET_KEEPCAPS " (since Linux 2.2.18)" -.BR PR_SET_KEEPCAPS " (Linux 2.2.18 °Ê¹ß)" +.BR PR_SET_KEEPCAPS " (Linux 2.2.18 以降)" .\"O Set the state of the thread's "keep capabilities" flag, .\"O which determines whether the threads's effective and permitted .\"O capability sets are cleared when a change is made to the threads's user IDs @@ -311,54 +311,54 @@ set-user-ID .\"O must be either 0 (capabilities are cleared) or 1 (capabilities are kept). .\"O This value will be reset to 0 on subsequent calls to .\"O .BR execve (2). -¥¹¥ì¥Ã¥É¤Î¡Ö¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ÊÝ»ý¡×¥Õ¥é¥°¤òÀßÄꤹ¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï¡¢¥¹¥ì¥Ã¥É¤Î¼Â UID¡¢¼Â¸ú UID¡¢Êݸ set-user-ID ¤Î¤¦¤Á¾¯¤Ê¤¯¤È¤â -°ì¤Ä¤¬ 0 ¤Ç¤¢¤Ã¤¿¾õÂÖ¤«¤é¡¢¤³¤ì¤éÁ´¤Æ¤¬ 0 °Ê³°¤ËÊѹ¹¤µ¤ì¤¿¤È¤­¡¢ -¥¹¥ì¥Ã¥É¤Î¼Â¸ú/µö²Ä¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£½¸¹ç¤¬¥¯¥ê¥¢¤µ¤ì¤ë¤«¤É¤¦¤«¤ò·èÄꤹ¤ë -(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£½¸¹ç¤Ï¥¯¥ê¥¢¤µ¤ì¤ë)¡£ +スレッドの「ケーパビリティ保持」フラグを設定する。 +このフラグは、スレッドの実 UID、実効 UID、保存 set-user-ID のうち少なくとも +一つが 0 であった状態から、これら全てが 0 以外に変更されたとき、 +スレッドの実効/許可のケーパビリティ集合がクリアされるかどうかを決定する +(デフォルトでは、これらのケーパビリティ集合はクリアされる)。 .I arg2 -¤Ï 0 (¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥¯¥ê¥¢¤¹¤ë) ¤¢¤ë¤¤¤Ï 1 (¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÊÝ»ý¤¹¤ë) ¤Î -¤É¤Á¤é¤«¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は 0 (ケーパビリティをクリアする) あるいは 1 (ケーパビリティを保持する) の +どちらかでなければならない。 .BR execve (2) -¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤È¡¢¤³¤ÎÃÍ¤Ï 0 ¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë¡£ +が呼び出されると、この値は 0 にリセットされる。 .TP .\"O .BR PR_GET_KEEPCAPS " (since Linux 2.2.18)" -.BR PR_GET_KEEPCAPS " (Linux 2.2.18 °Ê¹ß)" +.BR PR_GET_KEEPCAPS " (Linux 2.2.18 以降)" .\"O Return (as the function result) the current state of the calling threads's .\"O "keep capabilities" flag. -¸Æ¤Ó½Ð¤·¸µ¥¹¥ì¥Ã¥É¤Ë¤ª¤±¤ë¡Ö¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ÊÝ»ý¡×¥Õ¥é¥°¤Î -¸½ºß¤Î¾õÂÖ¤ò (´Ø¿ô¤ÎÊÖ¤êÃͤȤ·¤Æ) ÊÖ¤¹¡£ +呼び出し元スレッドにおける「ケーパビリティ保持」フラグの +現在の状態を (関数の返り値として) 返す。 .TP .\"O .BR PR_SET_NAME " (since Linux 2.6.9)" -.BR PR_SET_NAME " (Linux 2.6.9 °Ê¹ß)" +.BR PR_SET_NAME " (Linux 2.6.9 以降)" .\"O Set the process name for the calling process, .\"O using the value in the location pointed to by .\"O .IR "(char\ *) arg2" . .\"O The name can be up to 16 bytes long, .\"O .\" TASK_COMM_LEN in include/linux/sched.h .\"O and should be null-terminated if it contains fewer bytes. -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹Ì¾¤ò +呼び出し元プロセスのプロセス名を .I "(char\ *) arg2" -¤¬»Ø¤¹¾ì½ê¤Ë³ÊǼ¤µ¤ì¤¿Ãͤò»È¤Ã¤ÆÀßÄꤹ¤ë¡£ -̾Á°¤ÏºÇÂç¤Ç 16 ¥Ð¥¤¥È¤Ç¤¢¤ê¡¢ +が指す場所に格納された値を使って設定する。 +名前は最大で 16 バイトであり、 .\" TASK_COMM_LEN in include/linux/sched.h -¤½¤ì¤è¤ê¾¯¤Ê¤¤¥Ð¥¤¥È¿ô¤Î¾ì¹ç¤Ï NULL ¤Ç½ªÃ¼¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +それより少ないバイト数の場合は NULL で終端すべきである。 .TP .\"O .BR PR_GET_NAME " (since Linux 2.6.11)" -.BR PR_GET_NAME " (Linux 2.6.11 °Ê¹ß)" +.BR PR_GET_NAME " (Linux 2.6.11 以降)" .\"O Return the process name for the calling process, .\"O in the buffer pointed to by .\"O .IR "(char\ *) arg2" . .\"O The buffer should allow space for up to 16 bytes; .\"O the returned string will be null-terminated if it is shorter than that. -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹Ì¾¤ò +呼び出し元プロセスのプロセス名を .I "(char\ *) arg2" -¤¬»Ø¤¹¾ì½ê¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ -¥Ð¥Ã¥Õ¥¡¤ÏºÇÂç¤Ç 16 ¥Ð¥¤¥È¤ò³ÊǼ¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -ÊÖ¤µ¤ì¤ëʸ»úÎó¤Ï¡¢Ä¹¤µ¤¬ 16 ¥Ð¥¤¥È¤è¤êû¤¤¾ì¹ç¤Ï NULL ½ªÃ¼¤µ¤ì¤ë¡£ +が指す場所に格納して返す。 +バッファは最大で 16 バイトを格納できるようにすべきである。 +返される文字列は、長さが 16 バイトより短い場合は NULL 終端される。 .TP .\"O .BR PR_SET_PDEATHSIG " (since Linux 2.1.57)" -.BR PR_SET_PDEATHSIG " (Linux 2.1.57 °Ê¹ß)" +.BR PR_SET_PDEATHSIG " (Linux 2.1.57 以降)" .\"O Set the parent process death signal .\"O of the calling process to \fIarg2\fP (either a signal value .\"O in the range 1..maxsig, or 0 to clear). @@ -366,24 +366,24 @@ set-user-ID .\"O parent dies. .\"O This value is cleared for the child of a .\"O .BR fork (2). -¿Æ¥×¥í¥»¥¹»àË´¥·¥°¥Ê¥ë (parent process death signal) ¤ò \fIarg2\fP ¤ËÀßÄꤹ¤ë -(ÀßÄê¤Ç¤­¤ë¥·¥°¥Ê¥ëÃͤÎÈÏ°Ï¤Ï 1..maxsig ¤Ç¤¢¤ê¡¢0 ¤ÏÄÌÃΤβò½ü¤Ç¤¢¤ë)¡£ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¿Æ¥×¥í¥»¥¹¤¬»à¤ó¤ÀºÝ¤Ë¡¢¤³¤³¤ÇÀßÄꤷ¤¿Ãͤ¬ -¥·¥°¥Ê¥ë¤È¤·¤ÆÄÌÃΤµ¤ì¤ë¡£¤³¤ÎÃÍ¤Ï +親プロセス死亡シグナル (parent process death signal) を \fIarg2\fP に設定する +(設定できるシグナル値の範囲は 1..maxsig であり、0 は通知の解除である)。 +呼び出し元プロセスの親プロセスが死んだ際に、ここで設定した値が +シグナルとして通知される。この値は .BR fork (2) -¤Î»Ò¥×¥í¥»¥¹¤Ç¤Ï²ò½ü¤µ¤ì¤ë¡£ +の子プロセスでは解除される。 .TP .\"O .BR PR_GET_PDEATHSIG " (since Linux 2.3.15)" -.BR PR_GET_PDEATHSIG " (Linux 2.3.15 °Ê¹ß)" +.BR PR_GET_PDEATHSIG " (Linux 2.3.15 以降)" .\"O Return the current value of the parent process death signal, .\"O in the location pointed to by .\"O .IR "(int\ *) arg2" . -¿Æ¥×¥í¥»¥¹»àË´¥·¥°¥Ê¥ë¤Î¸½ºß¤ÎÃͤò +親プロセス死亡シグナルの現在の値を .I "(int\ *) arg2" -¤¬»Ø¤¹¾ì½ê¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ +が指す場所に格納して返す。 .TP .\"O .BR PR_SET_SECCOMP " (since Linux 2.6.23)" -.BR PR_SET_SECCOMP " (Linux 2.6.23 °Ê¹ß)" +.BR PR_SET_SECCOMP " (Linux 2.6.23 以降)" .\" See http://thread.gmane.org/gmane.linux.kernel/542632 .\" [PATCH 0 of 2] seccomp updates .\" andrea@cpushare.com @@ -391,10 +391,10 @@ set-user-ID .\"O In the current implementation, .\"O .IR arg2 .\"O must be 1. -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î secure computing ¥â¡¼¥É¤òÀßÄꤹ¤ë¡£ -¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¡¢ +呼び出したスレッドの secure computing モードを設定する。 +現在の実装では、 .I arg2 -¤Ï 1 ¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は 1 にしなければならない。 .\"O After the secure computing mode has been set to 1, .\"O the only system calls that the thread is permitted to make are .\"O .BR read (2), @@ -405,29 +405,29 @@ set-user-ID .\"O Other system calls result in the delivery of a .\"O .BR SIGKILL .\"O signal. -secure computing ¥â¡¼¥É¤ò 1 ¤ËÀßÄꤹ¤ë¤È¡¢ -¤½¤Î¥¹¥ì¥Ã¥É¤¬¸Æ¤Ó½Ð¤·¤òµö²Ä¤µ¤ì¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +secure computing モードを 1 に設定すると、 +そのスレッドが呼び出しを許可されるシステムコールは .BR read (2), .BR write (2), .BR _exit (2), .BR sigreturn (2) -¤À¤±¤Ë¤Ê¤ë¡£ -¤½¤ì°Ê³°¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¥·¥°¥Ê¥ë +だけになる。 +それ以外のシステムコールを呼び出すと、シグナル .B SIGKILL -¤¬ÇÛÁ÷¤µ¤ì¤ë¡£ +が配送される。 .\"O Secure computing mode is useful for number-crunching applications .\"O that may need to execute untrusted byte code, .\"O perhaps obtained by reading from a pipe or socket. .\"O This operation is only available .\"O if the kernel is configured with CONFIG_SECCOMP enabled. -¥Ñ¥¤¥×¤ä¥½¥±¥Ã¥È¤«¤éÆɤ߹þ¤ó¤À¡¢¿®Íê¤Ç¤­¤Ê¤¤¥Ð¥¤¥È¥³¡¼¥É¤ò¼Â¹Ô¤¹¤ë -ɬÍפ¬¤¢¤ëÂçÎ̤α黻¤ò¹Ô¤¦¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤ª¤¤¤Æ¡¢ -secure computing ¥â¡¼¥É¤ÏÌòΩ¤Ä¡£ -¤³¤ÎÁàºî¤ÏÍøÍѤǤ­¤ë¤Î¤Ï¡¢¥«¡¼¥Í¥ë¤¬ CONFIG_SECCOMP ¤òÍ­¸ú¤Ë¤·¤Æ -ºîÀ®¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤À¤±¤Ç¤¢¤ë¡£ +パイプやソケットから読み込んだ、信頼できないバイトコードを実行する +必要がある大量の演算を行うアプリケーションにおいて、 +secure computing モードは役立つ。 +この操作は利用できるのは、カーネルが CONFIG_SECCOMP を有効にして +作成されている場合だけである。 .TP .\"O .BR PR_GET_SECCOMP " (since Linux 2.6.23)" -.BR PR_GET_SECCOMP " (Linux 2.6.23 °Ê¹ß)" +.BR PR_GET_SECCOMP " (Linux 2.6.23 以降)" .\"O Return the secure computing mode of the calling thread. .\"O Not very useful for the current implementation (mode equals 1), .\"O but may be useful for other possible future modes: @@ -439,44 +439,44 @@ secure computing .\"O signal to be sent to the process. .\"O This operation is only available .\"O if the kernel is configured with CONFIG_SECCOMP enabled. -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î secure computing ¥â¡¼¥É¤òÊÖ¤¹¡£ -¸½ºß¤Î¼ÂÁõ (¥â¡¼¥É¤Ï 1 ¸ÇÄê) ¤Ï¤¢¤Þ¤êÌò¤ËΩ¤¿¤Ê¤¤¤¬¡¢ -¾­Í辤Υ⡼¥É¤¬¼ÂÁõ¤µ¤ì¤ë¤ÈÌòΩ¤Ä¤è¤¦¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤¬ secure computing ¥â¡¼¥É¤Ç¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ -¤³¤ÎÁàºî¤Ï 0 ¤òÊÖ¤¹¡£ -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤¬ secure computing ¥â¡¼¥É¤Î¾ì¹ç¡¢ +呼び出したスレッドの secure computing モードを返す。 +現在の実装 (モードは 1 固定) はあまり役に立たないが、 +将来他のモードが実装されると役立つようになるかもしれない。 +呼び出したスレッドが secure computing モードでなかった場合、 +この操作は 0 を返す。 +呼び出したスレッドが secure computing モードの場合、 .BR prctl () -¤ò¸Æ¤Ó½Ð¤¹¤È¥·¥°¥Ê¥ë +を呼び出すとシグナル .B SIGKILL -¤¬¤½¤Î¥×¥í¥»¥¹¤ËÁ÷¿®¤µ¤ì¤ë¡£ -¤³¤ÎÁàºî¤¬ÍøÍѤǤ­¤ë¤Î¤Ï¡¢¥«¡¼¥Í¥ë¤¬ CONFIG_SECCOMP ¤òÍ­¸ú¤Ë¤·¤Æ -ºîÀ®¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤À¤±¤Ç¤¢¤ë¡£ +がそのプロセスに送信される。 +この操作が利用できるのは、カーネルが CONFIG_SECCOMP を有効にして +作成されている場合だけである。 .TP .\"O .BR PR_SET_SECUREBITS " (since Linux 2.6.26)" -.BR PR_SET_SECUREBITS " (Linux 2.6.26 °Ê¹ß)" +.BR PR_SET_SECUREBITS " (Linux 2.6.26 以降)" .\"O Set the "securebits" flags of the calling thread to the value supplied in .\"O .IR arg2 . .\"O See .\"O .BR capabilities (7). -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î "securebits" ¥Õ¥é¥°¤ò +呼び出したスレッドの "securebits" フラグを .I arg2 -¤ÇÅϤµ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£ +で渡された値に設定する。 .BR capabilities (7) -»²¾È¡£ +参照。 .TP .\"O .BR PR_GET_SECUREBITS " (since Linux 2.6.26)" -.BR PR_GET_SECUREBITS " (Linux 2.6.26 °Ê¹ß)" +.BR PR_GET_SECUREBITS " (Linux 2.6.26 以降)" .\"O Return (as the function result) .\"O the "securebits" flags of the calling thread. .\"O See .\"O .BR capabilities (7). -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î "securebits" ¥Õ¥é¥°¤ò -(´Ø¿ô¤ÎÊÖ¤êÃͤȤ·¤Æ) ÊÖ¤¹¡£ +呼び出したスレッドの "securebits" フラグを +(関数の返り値として) 返す。 .BR capabilities (7) -»²¾È¡£ +参照。 .TP .\"O .BR PR_SET_TIMING " (since Linux 2.6.0-test4)" -.BR PR_SET_TIMING " (Linux 2.6.0-test4 °Ê¹ß)" +.BR PR_SET_TIMING " (Linux 2.6.0-test4 以降)" .\"O Set whether to use (normal, traditional) statistical process timing or .\"O accurate timestamp based process timing, by passing .\"O .B PR_TIMING_STATISTICAL @@ -492,31 +492,31 @@ secure computing .\"O .\" PR_TIMING_TIMESTAMP doesn't do anything in 2.6.26-rc8, .\"O .\" and looking at the patch history, it appears .\"O .\" that it never did anything. -(Ä̾ï¤Î¡¢ÅÁÅýŪ¤Ë»È¤ï¤ì¤Æ¤­¤¿) Åý·×Ū¤Ê¥×¥í¥»¥¹¥¿¥¤¥ß¥ó¥°¤ò»ÈÍѤ¹¤ë¤«¡¢ -Àµ³Î¤Ê¥¿¥¤¥à¥¹¥¿¥ó¥×¤Ë´ð¤Å¤¯¥×¥í¥»¥¹¥¿¥¤¥ß¥ó¥°¤ò»ÈÍѤ¹¤ë¤«¤òÀßÄꤹ¤ë¡£ -\fIarg2\fP ¤Ë»ØÄê¤Ç¤­¤ëÃÍ¤Ï +(通常の、伝統的に使われてきた) 統計的なプロセスタイミングを使用するか、 +正確なタイムスタンプに基づくプロセスタイミングを使用するかを設定する。 +\fIarg2\fP に指定できる値は .B PR_TIMING_STATISTICAL .\" 0 -¤« +か .B PR_TIMING_TIMESTAMP .\" 1 -¤Ç¤¢¤ë¡£ +である。 .B PR_TIMING_TIMESTAMP -¤Ï¸½ºß¤Î¤È¤³¤í¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤ -(¤³¤Î¥â¡¼¥É¤ËÀßÄꤷ¤è¤¦¤È¤¹¤ë¤È¥¨¥é¡¼ +は現在のところ実装されていない +(このモードに設定しようとするとエラー .B EINVAL -¤¬µ¯¤³¤ë¤³¤È¤À¤í¤¦)¡£ -.\" 2.6.26-rc8 ¤Ç¤Ï PR_TIMING_TIMESTAMP ¤Ï²¿¤â¤·¤Ê¤¤¡£ -.\" ¥Ñ¥Ã¥Á¤ÎÍúÎò¤ò¸«¤¿¤¬¡¢²áµî¤Ë¤â²¿¤«¤ò¤·¤¿¤³¤È¤â¤Ê¤¤¡£ +が起こることだろう)。 +.\" 2.6.26-rc8 では PR_TIMING_TIMESTAMP は何もしない。 +.\" パッチの履歴を見たが、過去にも何かをしたこともない。 .TP .\"O .BR PR_GET_TIMING " (since Linux 2.6.0-test4)" -.BR PR_GET_TIMING " (Linux 2.6.0-test4 °Ê¹ß)" +.BR PR_GET_TIMING " (Linux 2.6.0-test4 以降)" .\"O Return (as the function result) which process timing method is currently .\"O in use. -¸½ºß»ÈÍÑÃæ¤Î¥×¥í¥»¥¹¥¿¥¤¥ß¥ó¥°¤ò·è¤á¤ëÊýË¡¤òÊÖ¤¹¡£ +現在使用中のプロセスタイミングを決める方法を返す。 .TP .\"O .BR PR_SET_TSC " (since Linux 2.6.26, x86 only)" -.BR PR_SET_TSC " (Linux 2.6.26 °Ê¹ß, x86 ¤Î¤ß)" +.BR PR_SET_TSC " (Linux 2.6.26 以降, x86 のみ)" .\"O Set the state of the flag determining whether the timestamp counter .\"O can be read by the process. .\"O Pass @@ -528,63 +528,63 @@ secure computing .\"O to generate a .\"O .B SIGSEGV .\"O when the process tries to read the timestamp counter. -¤½¤Î¥×¥í¥»¥¹¤¬¥¿¥¤¥à¥¹¥¿¥ó¥×¡¦¥«¥¦¥ó¥¿¤òÆɤ߽Ф»¤ë¤«¤ò·èÄꤹ¤ë -¥Õ¥é¥°¤Î¾õÂÖ¤òÀßÄꤹ¤ë¡£ -Æɤ߽Ф·¤òµö²Ä¤¹¤ë¾ì¹ç¤Ï +そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する +フラグの状態を設定する。 +読み出しを許可する場合は .I arg2 -¤Ë +に .B PR_TSC_ENABLE -¤ò¡¢¤½¤Î¥×¥í¥»¥¹¤¬¥¿¥¤¥à¥¹¥¿¥ó¥×¡¦¥«¥¦¥ó¥¿¤òÆɤ߽Ф½¤¦¤È¤·¤¿ºÝ¤Ë +を、そのプロセスがタイムスタンプ・カウンタを読み出そうとした際に .B SIGSEGV -¤òȯÀ¸¤µ¤»¤ë¾ì¹ç¤Ë¤Ï +を発生させる場合には .B PR_TSC_SIGSEGV -¤òÅϤ¹¡£ +を渡す。 .TP .\"O .BR PR_GET_TSC " (since Linux 2.6.26, x86 only)" -.BR PR_GET_TSC " (Linux 2.6.26 °Ê¹ß, x86 ¤Î¤ß)" +.BR PR_GET_TSC " (Linux 2.6.26 以降, x86 のみ)" .\"O Return the state of the flag determining whether the timestamp counter .\"O can be read, .\"O in the location pointed to by .\"O .IR "(int\ *) arg2" . -¤½¤Î¥×¥í¥»¥¹¤¬¥¿¥¤¥à¥¹¥¿¥ó¥×¡¦¥«¥¦¥ó¥¿¤òÆɤ߽Ф»¤ë¤«¤ò·èÄꤹ¤ë -¥Õ¥é¥°¤Î¾õÂÖ¤ò +そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する +フラグの状態を .I "(int\ *) arg2" -¤¬»Ø¤¹¾ì½ê¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ +が指す場所に格納して返す。 .TP .B PR_SET_UNALIGN .\"O (Only on: ia64, since Linux 2.3.48; parisc, since Linux 2.6.15; .\"O PowerPC, since Linux 2.6.18; Alpha, since Linux 2.6.22) -(ia64 ¤Ç¤Ï Linux 2.3.48 °Ê¹ß; -parisc ¤Ç¤Ï Linux 2.6.15 °Ê¹ß; -PowerPC ¤Ç¤Ï Linux 2.6.18 °Ê¹ß; -Alpha ¤Ç¤Ï¡¡Linux 2.6.22 °Ê¹ß; -¤³¤ì¤é¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î¤ß) +(ia64 では Linux 2.3.48 以降; +parisc では Linux 2.6.15 以降; +PowerPC では Linux 2.6.18 以降; +Alpha では Linux 2.6.22 以降; +これらのアーキテクチャのみ) .\"O Set unaligned access control bits to \fIarg2\fP. .\"O Pass .\"O \fBPR_UNALIGN_NOPRINT\fP to silently fix up unaligned user accesses, .\"O or \fBPR_UNALIGN_SIGBUS\fP to generate .\"O .B SIGBUS .\"O on unaligned user access. -unaligned ¥¢¥¯¥»¥¹À©¸æ¥Ó¥Ã¥È¤ò \fIarg2\fP ¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£ -»ØÄê¤Ç¤­¤ëÃÍ¤Ï \fBPR_UNALIGN_NOPRINT\fP (unaligned ¤Ê¥æ¡¼¥¶¥¢¥¯¥»¥¹¤òÌÛ¤Ã¤Æ -½¤Àµ¤¹¤ë) ¤« \fBPR_UNALIGN_SIGBUS\fP (unaligned ¤Ê¥æ¡¼¥¶¥¢¥¯¥»¥¹¤¬¤¢¤Ã¤¿¾ì¹ç +unaligned アクセス制御ビットを \fIarg2\fP で指定された値に設定する。 +指定できる値は \fBPR_UNALIGN_NOPRINT\fP (unaligned なユーザアクセスを黙って +修正する) か \fBPR_UNALIGN_SIGBUS\fP (unaligned なユーザアクセスがあった場合 .B SIGBUS -¤òÀ¸À®¤¹¤ë) ¤Ç¤¢¤ë¡£ +を生成する) である。 .TP .B PR_GET_UNALIGN .\"O (see .\"O .B PR_SET_UNALIGN .\"O for information on versions and architectures) -(¥Ð¡¼¥¸¥ç¥ó¤È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î¾ðÊó¤Ï +(バージョンとアーキテクチャの情報は .B PR_SET_UNALIGN -»²¾È) +参照) .\"O Return unaligned access control bits, in the location pointed to by .\"O .IR "(int\ *) arg2" . -unaligned ¥¢¥¯¥»¥¹À©¸æ¥Ó¥Ã¥È¤ÎÃͤò +unaligned アクセス制御ビットの値を .I "(int\ *) arg2" -¤¬»Ø¤¹¾ì½ê¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ +が指す場所に格納して返す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR PR_GET_DUMPABLE , .\"O .BR PR_GET_KEEPCAPS , @@ -594,51 +594,51 @@ unaligned .\"O and (if it returns) .\"O .BR PR_GET_SECCOMP .\"O return the nonnegative values described above. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR PR_GET_DUMPABLE , .BR PR_GET_KEEPCAPS , .BR PR_CAPBSET_READ , .BR PR_GET_TIMING , .BR PR_GET_SECUREBITS , .BR PR_GET_SECCOMP -¤Ï¾å½Ò¤ÎÉé¤Ç¤Ê¤¤ÃͤòÊÖ¤¹ +は上述の負でない値を返す .RB ( PR_GET_SECCOMP -¤ÏÊÖ¤é¤Ê¤¤¾ì¹ç¤â¤¢¤ë)¡£ +は返らない場合もある)。 .\"O All other .\"O .I option .\"O values return 0 on success. .I option -¤¬Â¾¤ÎÃͤξì¹ç¤ÏÀ®¸ù»þ¤Ë 0 ¤òÊÖ¤¹¡£ +が他の値の場合は成功時に 0 を返す。 .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +エラーの場合、\-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤòÀßÄꤹ¤ë¡£ +に適切な値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O .I arg2 .\"O is an invalid address. .I arg2 -¤¬ÉÔÀµ¤Ê¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +が不正なアドレスである。 .TP .B EINVAL .\"O The value of .\"O .I option .\"O is not recognized .I option -¤ÎÃͤ¬Íý²ò¤Ç¤­¤Ê¤¤¡£ +の値が理解できない。 .TP .B EINVAL .\"O .I arg2 .\"O is not valid value for this .\"O .IR option . .I arg2 -¤¬»ØÄꤵ¤ì¤¿ +が指定された .I option -¤ÇÍ­¸ú¤ÊÃͤǤϤʤ¤¡£ +で有効な値ではない。 .TP .B EINVAL .\"O .I option @@ -649,13 +649,13 @@ unaligned .\"O and the kernel was not configured with .\"O .BR CONFIG_SECCOMP . .I option -¤¬ +が .BR PR_SET_SECCOMP -¤« +か .BR PR_GET_SECCOMP -¤À¤¬¡¢¥«¡¼¥Í¥ë¤¬ +だが、カーネルが .B CONFIG_SECCOMP -¤òÍ­¸ú¤Ë¤·¤ÆºîÀ®¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +を有効にして作成されていなかった。 .TP .B EPERM .\"O .I option @@ -669,15 +669,15 @@ unaligned .\"O (see .\"O .BR capabilities (7)). .I option -¤¬ +が .B PR_SET_SECUREBITS -¤Ç¡¢¸Æ¤Ó½Ð¤·¸µ¤¬¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ +で、呼び出し元がケーパビリティ .B CAP_SETPCAP -¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢"locked" ¥Õ¥é¥°¤ò²ò½ü¤·¤è¤¦¤È¤·¤¿¡£ -¤Þ¤¿¤Ï¡¢locked ¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¥Õ¥é¥°¤ò¥»¥Ã¥È¤·¤è¤¦¤È¤·¤¿ +を持っていない。 +または、"locked" フラグを解除しようとした。 +または、locked フラグがセットされているフラグをセットしようとした .RB ( capabilities (7) -»²¾È)¡£ +参照)。 .TP .B EPERM .\"O .I option @@ -689,13 +689,13 @@ unaligned .\"O (see .\"O .BR capabilities (7)). .I option -¤¬ +が .B PR_SET_KEEPCAPS -¤Ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥Õ¥é¥° +で、呼び出し元のフラグ .B SECURE_KEEP_CAPS_LOCKED -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë +がセットされている .RB ( capabilities (7) -»²¾È)¡£ +参照)。 .TP .B EPERM .\"O .I option @@ -705,11 +705,11 @@ unaligned .\"O .B CAP_SETPCAP .\"O capability. .I option -¤¬ +が .B PR_CAPBSET_DROP -¤Ç¡¢¸Æ¤Ó½Ð¤·¸µ¤¬¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ +で、呼び出し元がケーパビリティ .B CAP_SETPCAP -¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +を持っていない。 .\" The following can't actually happen, because prctl() in .\" seccomp mode will cause SIGKILL. .\" .TP @@ -719,28 +719,28 @@ unaligned .\" .BR PR_SET_SECCOMP , .\" and secure computing mode is already 1. .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The .\"O .BR prctl () .\"O system call was introduced in Linux 2.1.57. .\"O .\" The library interface was added in glibc 2.0.6 .BR prctl () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 2.1.57 ¤ÇƳÆþ¤µ¤ì¤¿¡£ -.\" ¥é¥¤¥Ö¥é¥ê¡¦¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï glibc 2.0.6 ¤ÇÄɲ䵤줿¡£ +システムコールは Linux 2.1.57 で導入された。 +.\" ライブラリ・インタフェースは glibc 2.0.6 で追加された。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This call is Linux-specific. .\"O IRIX has a .\"O .BR prctl () .\"O system call (also introduced in Linux 2.1.44 .\"O as irix_prctl on the MIPS architecture), .\"O with prototype -¤³¤Î¥³¡¼¥ë¤Ï Linux ÆÃÍ­¤Ç¤¢¤ë¡£ -IRIX ¤Ë¤Ï +このコールは Linux 特有である。 +IRIX には .BR prctl () -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤¬¤¢¤ë¤¬ (MIPS ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤ª¤¤¤Æ -irix_prctl ¤È¤·¤Æ Linux 2.1.44 ¤ÇƱÍͤËƳÆþ¤µ¤ì¤¿)¡¢ -¤½¤Î¥×¥í¥È¥¿¥¤¥×¤Ï +システム・コールがあるが (MIPS アーキテクチャにおいて +irix_prctl として Linux 2.1.44 で同様に導入された)、 +そのプロトタイプは .sp .BI "ptrdiff_t prctl(int " option ", int " arg2 ", int " arg3 ); .sp @@ -748,11 +748,11 @@ irix_prctl .\"O get the maximum number of processors the calling process can use, .\"O find out whether a specified process is currently blocked, .\"O get or set the maximum stack size, etc. -¤Ç¤¢¤ë¡£¥æ¡¼¥¶¡¼Åö¤ê¤Î¥×¥í¥»¥¹ºÇÂç¿ô¤ò¼èÆÀ¤¹¤ë¥ª¥×¥·¥ç¥ó¡¢ -¥×¥í¥»¥¹¤Î»ÈÍѤǤ­¤ëºÇÂç¥×¥í¥Ã¥µ¡¼¿ô¤ò¼èÆÀ¤¹¤ë¥ª¥×¥·¥ç¥ó¡¢ -¸½ºßÆÃÄê¤Î¥×¥í¥»¥¹¤¬Ää»ß(block)¤µ¤»¤é¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«Ä´¤Ù¤ë¥ª¥×¥·¥ç¥ó¡¢ -¥¹¥¿¥Ã¥¯¥µ¥¤¥º¤ÎºÇÂçÃͤμèÆÀ¤äÀßÄê¤ò¹Ô¤Ê¤¦¥ª¥×¥·¥ç¥ó¤Ê¤É¤¬¤¢¤ë¡£ +である。ユーザー当りのプロセス最大数を取得するオプション、 +プロセスの使用できる最大プロッサー数を取得するオプション、 +現在特定のプロセスが停止(block)させられているかどうか調べるオプション、 +スタックサイズの最大値の取得や設定を行なうオプションなどがある。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR signal (2), .BR core (5) diff --git a/draft/man2/pread.2 b/draft/man2/pread.2 index eda20a7f..71c5d31f 100644 --- a/draft/man2/pread.2 +++ b/draft/man2/pread.2 @@ -25,15 +25,15 @@ .\" Translated Fri Jun 25 23:32:20 JST 1999 .\" by HANATAKA Shinya .\" -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: offset ¥ª¥Õ¥»¥Ã¥È -.\"WORD: seek ¥·¡¼¥¯ +.\"WORD: descriptor ディスクリプタ +.\"WORD: offset オフセット +.\"WORD: seek シーク .\" .TH PREAD 2 2010-09-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 .\"O pread, pwrite \- read from or write to a file descriptor at a given offset -pread, pwrite \- »ØÄꤷ¤¿¥ª¥Õ¥»¥Ã¥È¤Ç¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÆɤ߽ñ¤­¤¹¤ë -.SH ½ñ¼° +pread, pwrite \- 指定したオフセットでファイルディスクリプタを読み書きする +.SH 書式 .B #include .sp .BI "ssize_t pread(int " fd ", void *" buf ", size_t " count \ @@ -45,9 +45,9 @@ pread, pwrite \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .PD 0 .ad l @@ -58,12 +58,12 @@ glibc _XOPEN_SOURCE\ >=\ 500 .br .\"O || /* Since glibc 2.12: */ _POSIX_C_SOURCE\ >=\ 200809L -|| /* glibc 2.12 °Ê¹ß: */ _POSIX_C_SOURCE\ >=\ 200809L +|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\ >=\ 200809L .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR pread () .\"O reads up to .\"O .I count @@ -75,15 +75,15 @@ _XOPEN_SOURCE\ >=\ 500 .\"O .IR buf . .\"O The file offset is not changed. .BR pread () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +は、ファイルディスクリプタ .I fd -¤Î (¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤«¤é¤Î) ¥ª¥Õ¥»¥Ã¥È +の (ファイルの先頭からの) オフセット .I offset -¤«¤éºÇÂç +から最大 .I count -¥Ð¥¤¥È¤ò¥Ð¥Ã¥Õ¥¡ +バイトをバッファ .I buf -¤ØÆɤ߹þ¤à¡£¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤ÏÊѲ½¤·¤Ê¤¤¡£ +へ読み込む。ファイル・オフセットは変化しない。 .PP .\"O .BR pwrite () .\"O writes up to @@ -96,22 +96,22 @@ _XOPEN_SOURCE\ >=\ 500 .\"O .IR offset . .\"O The file offset is not changed. .BR pwrite () -¤Ï¡¢¥Ð¥Ã¥Õ¥¡ +は、バッファ .I buf -¤«¤éºÇÂç +から最大 .I count -¥Ð¥¤¥È¤ò¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +バイトをファイルディスクリプタ .I fd -¤Î¥ª¥Õ¥»¥Ã¥È +のオフセット .I offset -¤Ë½ñ¤­¹þ¤à¡£¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤ÏÊѲ½¤·¤Ê¤¤¡£ +に書き込む。ファイル・オフセットは変化しない。 .PP .\"O The file referenced by .\"O .I fd .\"O must be capable of seeking. .I fd -¤Ç»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ï¥·¡¼¥¯ (seek) ²Äǽ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +で参照されるファイルはシーク (seek) 可能でなければならない。 +.SH 返り値 .\"O On success, the number of bytes read or written is returned (zero .\"O indicates that nothing was written, in the case of .\"O .BR pwrite (), @@ -121,16 +121,16 @@ _XOPEN_SOURCE\ >=\ 500 .\"O or \-1 on error, in which case .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤·¤¿¾ì¹ç¡¢Æɤ߽ñ¤­¤ò¹Ô¤Ã¤¿¥Ð¥¤¥È¿ô¤¬ÊÖ¤µ¤ì¤ë (¥¼¥í¤Ï¡¢ +成功した場合、読み書きを行ったバイト数が返される (ゼロは、 .BR pwrite () -¤Î¾ì¹ç¤Ë¤Ï²¿¤â½ñ¤«¤ì¤Ê¤«¤Ã¤¿¤³¤È¤ò°ÕÌ£¤·¡¢ +の場合には何も書かれなかったことを意味し、 .BR pread () -¤Î¾ì¹ç¤Ë¤Ï¥Õ¥¡¥¤¥ë -¤ÎËöÈø¤Ë㤷¤¿¤³¤È¤ò°ÕÌ£¤¹¤ë)¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +の場合にはファイル +の末尾に達したことを意味する)。 +エラーの場合は \-1 が返され、 .I errno -¤¬¤½¤Î¥¨¥é¡¼¤ò¼¨¤¹¤è¤¦¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +がそのエラーを示すように設定される。 +.SH エラー .\"O .BR pread () .\"O can fail and set .\"O .I errno @@ -139,13 +139,13 @@ _XOPEN_SOURCE\ >=\ 500 .\"O or .\"O .BR lseek (2). .BR pread () -¤Ç¤Ï¡¢ +では、 .BR read (2) -¤ª¤è¤Ó +および .BR lseek (2) -¤Çµ¬Äꤵ¤ì¤¿Á´¤Æ¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ê¡¢ +で規定された全てのエラーが発生する可能性があり、 .I error -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ +にはエラーを示す値が設定される。 .\"O .BR pwrite () .\"O can fail and set .\"O .I errno @@ -154,15 +154,15 @@ _XOPEN_SOURCE\ >=\ 500 .\"O or .\"O .BR lseek (2). .BR pwrite () -¤Ç¤Ï¡¢ +では、 .BR write (2) -¤ª¤è¤Ó +および .BR lseek (2) -¤Çµ¬Äꤵ¤ì¤¿Á´¤Æ¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ê¡¢ +で規定された全てのエラーが発生する可能性があり、 .I error -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ +にはエラーを示す値が設定される。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The .\"O .BR pread () .\"O and @@ -173,21 +173,21 @@ _XOPEN_SOURCE\ >=\ 500 .\"O C library support (including emulation using .\"O .BR lseek (2) .\"O on older kernels without the system calls) was added in glibc 2.1. -¥·¥¹¥Æ¥à¥³¡¼¥ë +システムコール .BR pread () -¤È +と .BR pwrite () -¤Ï Linux ¤Ë¥Ð¡¼¥¸¥ç¥ó 2.1.60 ¤ÇÄɲ䵤줿¡£ -i386 ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥¨¥ó¥È¥ê¤Ï 2.1.69 ¤ÇÄɲ䵤줿¡£ -(¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»ý¤¿¤Ê¤¤¸Å¤¤¥«¡¼¥Í¥ë¤Ç¤Î +は Linux にバージョン 2.1.60 で追加された。 +i386 のシステムコールのエントリは 2.1.69 で追加された。 +(システムコールを持たない古いカーネルでの .BR lseek (2) -¤ò»È¤Ã¤¿¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤ò´Þ¤á¤ë¤È) -C ¥é¥¤¥Ö¥é¥ê¤Ë¤ª¤±¤ë¥µ¥Ý¡¼¥È¤Ï glibc 2.1 ¤ÇÄɲ䵤줿¡£ +を使ったエミュレーションを含めると) +C ライブラリにおけるサポートは glibc 2.1 で追加された。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR lseek (2), .BR read (2), .BR write (2) diff --git a/draft/man2/ptrace.2 b/draft/man2/ptrace.2 index 5a4ba135..181a465a 100644 --- a/draft/man2/ptrace.2 +++ b/draft/man2/ptrace.2 @@ -52,28 +52,28 @@ .\" Updated 2008-08-06, Akihiro MOTOKI, LDP v3.05 .\" Updated 2009-04-13, Akihiro MOTOKI, LDP v3.20 .\" -.\"WORD: child process »Ò¥×¥í¥»¥¹ -.\"WORD: parent process ¿Æ¥×¥í¥»¥¹ -.\"WORD: core image ¥á¥â¥ê¡¦¥¤¥á¡¼¥¸ -.\"WORD: break point ¥Ö¥ì¡¼¥¯¡¦¥Ý¥¤¥ó¥È -.\"WORD: single step ¥·¥ó¥°¥ë¡¦¥¹¥Æ¥Ã¥×¼Â¹Ô -.\"WORD: trap flag ¥È¥é¥Ã¥×¡¦¥Õ¥é¥° -.\"WORD: attach Àܳ -.\"WORD: detach ʬΥ -.\"WORD: process ID ¥×¥í¥»¥¹ID +.\"WORD: child process 子プロセス +.\"WORD: parent process 親プロセス +.\"WORD: core image メモリ・イメージ +.\"WORD: break point ブレーク・ポイント +.\"WORD: single step シングル・ステップ実行 +.\"WORD: trap flag トラップ・フラグ +.\"WORD: attach 接続 +.\"WORD: detach 分離 +.\"WORD: process ID プロセスID .\" .TH PTRACE 2 2009-03-30 "Linux" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 .\"O ptrace \- process trace -ptrace \- ¥×¥í¥»¥¹¤Î¥È¥ì¡¼¥¹ -.SH ½ñ¼° +ptrace \- プロセスのトレース +.SH 書式 .nf .B #include .sp .BI "long ptrace(enum __ptrace_request " request ", pid_t " pid ", " .BI " void *" addr ", void *" data ); .fi -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR ptrace () .\"O system call provides a means by which a parent process may observe @@ -82,12 +82,12 @@ ptrace \- .\"O It is primarily used to implement breakpoint debugging and system .\"O call tracing. .BR ptrace () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¿Æ¥×¥í¥»¥¹¤¬¡¢ÊÌ¤Î¥×¥í¥»¥¹¤Î¼Â¹Ô¤Î´Æ»ë/À©¸æ¤ò -¹Ô¤Ã¤¿¤ê¡¢¥³¥¢¥¤¥á¡¼¥¸ (core image) ¤ä¥ì¥¸¥¹¥¿¤ÎÄ´ºº/Êѹ¹¤ò -¹Ô¤Ã¤¿¤ê¤¹¤ë¼êÃʤòÄ󶡤¹¤ë¡£ +システムコールは、親プロセスが、別のプロセスの実行の監視/制御を +行ったり、コアイメージ (core image) やレジスタの調査/変更を +行ったりする手段を提供する。 .BR ptrace () -¤Ï¡¢¼ç¤Ë¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤Ë¤è¤ë¥Ç¥Ð¥Ã¥°¤ä¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥È¥ì¡¼¥¹¤ò -¼ÂÁõ¤¹¤ë¤Î¤ËÍѤ¤¤é¤ì¤ë¡£ +は、主にブレークポイントによるデバッグやシステムコールのトレースを +実装するのに用いられる。 .LP .\"O The parent can initiate a trace by calling .\"O .BR fork (2) @@ -97,17 +97,17 @@ ptrace \- .\"O .BR exec (3). .\"O Alternatively, the parent may commence trace of an existing process using .\"O .BR PTRACE_ATTACH . -¥È¥ì¡¼¥¹¤ò³«»Ï¤¹¤ë¤Ë¤Ï¡¢¤Þ¤º¿Æ¥×¥í¥»¥¹¤Ç +トレースを開始するには、まず親プロセスで .BR fork (2) -¤ò¸Æ¤Ó½Ð¤¹¡£À¸À®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ç +を呼び出す。生成された子プロセスで .B PTRACE_TRACEME -¤ò¹Ô¤¤¡¢Â³¤¤¤Æ (ŵ·¿Åª¤Ë¤Ï) +を行い、続いて (典型的には) .BR exec (3) -¤ò¹Ô¤Ê¤¦¡£ -Ê̤ÎÊýË¡¤È¤·¤Æ¤Ï¡¢ -¿Æ¥×¥í¥»¥¹¤¬´û¸¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ +を行なう。 +別の方法としては、 +親プロセスが既存のプロセスに対して .B PTRACE_ATTACH -¤ò»ÈÍѤ·¡¢¥È¥ì¡¼¥¹¤ò³«»Ï¤¹¤ë¡£ +を使用し、トレースを開始する。 .LP .\"O While being traced, the child will stop each time a signal is delivered, .\"O even if the signal is being ignored. @@ -120,31 +120,31 @@ ptrace \- .\"O The parent then causes the child to continue, .\"O optionally ignoring the delivered signal .\"O (or even delivering a different signal instead). -¥È¥ì¡¼¥¹¤Î¼Â¹ÔÃæ¡¢»Ò¥×¥í¥»¥¹¤Ï¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ë¤¿¤Ó¤Ë¡¢ -¤¿¤È¤¨¤½¤Î¥·¥°¥Ê¥ë¤¬Ìµ»ë¤¹¤Ù¤­¤â¤Î¤Ç¤¢¤Ã¤Æ¤âÄä»ß¤¹¤ë +トレースの実行中、子プロセスはシグナルが配送されるたびに、 +たとえそのシグナルが無視すべきものであっても停止する .RB ( SIGKILL -¤ÏÎã³°¤Ç¡¢Ä̾ï¤É¤ª¤ê¤Î¸ú²Ì¤ò¤â¤¿¤é¤¹)¡£ -¿Æ¥×¥í¥»¥¹¤Ë¤Ï¼¡¤Î +は例外で、通常どおりの効果をもたらす)。 +親プロセスには次の .BR wait (2) -¤ÇÄÌÃΤµ¤ì¡¢Ää»ß¤·¤Æ¤¤¤ë´Ö¤Ë»Ò¥×¥í¥»¥¹¤òÄ´¤Ù¤¿¤ê½¤Àµ¤·¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤½¤·¤Æ¿Æ¥×¥í¥»¥¹¤Ï»Ò¥×¥í¥»¥¹¤Î¼Â¹Ô¤òºÆ³«¤µ¤»¤ë¤¬¡¢ÇÛÁ÷¤µ¤ì¤¿ -¥·¥°¥Ê¥ë¤ò̵»ë¤¹¤ë¤³¤È¤â¤Ç¤­¤ë (¤¢¤ë¤¤¤ÏÂå¤ï¤ê¤ËÊ̤Υ·¥°¥Ê¥ë¤ò -ÇÛÁ÷¤¹¤ë¤³¤È¤â¤Ç¤­¤ë) ¡£ +で通知され、停止している間に子プロセスを調べたり修正したりすることができる。 +そして親プロセスは子プロセスの実行を再開させるが、配送された +シグナルを無視することもできる (あるいは代わりに別のシグナルを +配送することもできる) 。 .LP .\"O When the parent is finished tracing, it can terminate the child with .\"O .B PTRACE_KILL .\"O or cause it to continue executing in a normal, untraced mode .\"O via .\"O .BR PTRACE_DETACH . -¿Æ¥×¥í¥»¥¹¤¬¥È¥ì¡¼¥¹¤ò½ªÎ»¤¹¤ëºÝ¤Ë¤Ï¡¢ +親プロセスがトレースを終了する際には、 .B PTRACE_KILL -¤ò»ÈÍѤ·¤Æ»Ò¥×¥í¥»¥¹¤ò½ªÎ»¤µ¤»¤ë¤³¤È¤â¤Ç¤­¤ë¤·¡¢ +を使用して子プロセスを終了させることもできるし、 .B PTRACE_DETACH -¤òÍѤ¤¤ÆÄ̾ï¤Î¥È¥ì¡¼¥¹¤Ê¤·¤Î¥â¡¼¥É¤Ë¤·¤Æ¡¢ -¼Â¹Ô¤ò·Ñ³¤µ¤»¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +を用いて通常のトレースなしのモードにして、 +実行を継続させることもできる。 .LP .\"O The value of \fIrequest\fP determines the action to be performed: -\fIrequest\fP ¤ÎÃͤ¬¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÆ°ºî¤ò·èÄꤹ¤ë: +\fIrequest\fP の値がこのシステムコールの動作を決定する: .TP .B PTRACE_TRACEME .\"O Indicates that this process is to be traced by its parent. @@ -164,23 +164,23 @@ ptrace \- .\"O A process probably shouldn't make this request if its parent .\"O isn't expecting to trace it. .\"O (\fIpid\fP, \fIaddr\fP, and \fIdata\fP are ignored.) -¤³¤Î¥×¥í¥»¥¹¤¬¿Æ¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¥È¥ì¡¼¥¹¤µ¤ì¤ë¤³¤È¤òɽ¤¹¡£ -¤³¤Î¥×¥í¥»¥¹¤Ë +このプロセスが親プロセスによってトレースされることを表す。 +このプロセスに .RB ( SIGKILL -°Ê³°¤Î) ¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ë¤È¡¢ -¥×¥í¥»¥¹¤ÏÄä»ß¤·¡¢¿Æ¥×¥í¥»¥¹¤Ë +以外の) シグナルが配送されると、 +プロセスは停止し、親プロセスに .BR wait (2) -¤òÄ̤¸¤ÆÄÌÃΤµ¤ì¤ë¡£ -¤Þ¤¿¡¢¤³¤ì°Ê¹ß¤Ï¤³¤Î¥×¥í¥»¥¹¤¬ +を通じて通知される。 +また、これ以降はこのプロセスが .BR execve (2) -¤ò¸Æ¤Ó½Ð¤¹ÅÙ¤Ë +を呼び出す度に .B SIGTRAP -¤¬Á÷¿®¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¤³¤ì¤Ë¤è¤Ã¤Æ¡¢¿Æ¥×¥í¥»¥¹¤Ï -¿·¤·¤¤¥×¥í¥°¥é¥à¤¬¼Â¹Ô¤ò³«»Ï¤¹¤ëÁ°¤ËÀ©¸æ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¿Æ¥×¥í¥»¥¹¤¬¼«¥×¥í¥»¥¹¤ò¥È¥ì¡¼¥¹¤¹¤ë¤Ä¤â¤ê¤¬¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ -¤ª¤½¤é¤¯¤³¤Î¥×¥í¥»¥¹¤ÏËÜÍ×µá¤ò¹Ô¤¦¤Ù¤­¤Ç¤Ï¤Ê¤¤¤À¤í¤¦¡£ -(\fIpid\fP, \fIaddr\fP, \fIdata\fP ¤Ï̵»ë¤µ¤ì¤ë¡£) +が送信されるようになる。 +これによって、親プロセスは +新しいプログラムが実行を開始する前に制御することができる。 +親プロセスが自プロセスをトレースするつもりがない場合には、 +おそらくこのプロセスは本要求を行うべきではないだろう。 +(\fIpid\fP, \fIaddr\fP, \fIdata\fP は無視される。) .LP .\"O The above request is used only by the child process; .\"O the rest are used only by the parent. @@ -190,13 +190,13 @@ ptrace \- .\"O .BR PTRACE_KILL , .\"O the child process must .\"O be stopped. -¾åµ­¤ÎÍ×µá¤Ï»Ò¥×¥í¥»¥¹¤À¤±¤¬¹Ô¤Ê¤¦¤â¤Î¤Ç¤¢¤ë¡£ -»Ä¤ê¤Ï¿Æ¥×¥í¥»¥¹¤À¤±¤¬¹Ô¤Ê¤¦¤â¤Î¤Ç¤¢¤ë¡£ -°Ê²¼¤ÎÍ×µá¤Ç¤Ï¡¢\fIpid\fP ¤ÇÁàºî¤ÎÂоݤȤʤë -»Ò¥×¥í¥»¥¹¤ò»ØÄꤹ¤ë¡£ +上記の要求は子プロセスだけが行なうものである。 +残りは親プロセスだけが行なうものである。 +以下の要求では、\fIpid\fP で操作の対象となる +子プロセスを指定する。 .B PTRACE_KILL -¤ò½ü¤­¡¢Í×µá¤ò¹Ô¤Ê¤¦¤¿¤á¤Ë¤Ï -»Ò¥×¥í¥»¥¹¤ÏÄä»ß¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を除き、要求を行なうためには +子プロセスは停止していなければならない。 .TP .BR PTRACE_PEEKTEXT ", " PTRACE_PEEKDATA .\"O Reads a word at the location @@ -207,13 +207,13 @@ ptrace \- .\"O Linux does not have separate text and data address spaces, so the two .\"O requests are currently equivalent. .\"O (The argument \fIdata\fP is ignored.) -»Ò¥×¥í¥»¥¹¤Î¥á¥â¥ê¤Î +子プロセスのメモリの .I addr -¤Î°ÌÃÖ¤«¤é 1 ¥ï¡¼¥É¤òÆɤ߽Ф¹¡£Æɤ߽Ф·¤¿¥ï¡¼¥É¤Ï +の位置から 1 ワードを読み出す。読み出したワードは .BR ptrace () -¤ÎÊÖ¤êÃͤȤ·¤ÆÊÖ¤µ¤ì¤ë¡£ Linux ¤Ç¤Ï¥Æ¥­¥¹¥È (text) ¤È¥Ç¡¼¥¿ (data) ¤Ç -Ʊ¤¸¥¢¥É¥ì¥¹¶õ´Ö¤ò»ÈÍѤ¹¤ë¤¿¤á¡¢¤³¤Î 2 ¤Ä¤ÎÍ×µá¤Ï¸½ºß¤Î¤È¤³¤í -Ʊ¤¸¤â¤Î¤Ç¤¢¤ë¡£ (°ú¤­¿ô \fIdata\fP ¤Ï̵»ë¤µ¤ì¤ë¡£) +の返り値として返される。 Linux ではテキスト (text) とデータ (data) で +同じアドレス空間を使用するため、この 2 つの要求は現在のところ +同じものである。 (引き数 \fIdata\fP は無視される。) .TP .B PTRACE_PEEKUSER .\" PTRACE_PEEKUSR in kernel source, but glibc uses PTRACE_PEEKUSER, @@ -230,17 +230,17 @@ ptrace \- .\"O architecture. .\"O See NOTES. .\"O (\fIdata\fP is ignored.) -»Ò¥×¥í¥»¥¹¤Î USER Îΰè¤Î¥ª¥Õ¥»¥Ã¥È +子プロセスの USER 領域のオフセット .I addr -¤Î°ÌÃÖ¤«¤é 1 ¥ï¡¼¥É¤òÆɤ߹þ¤à¡£USER Îΰè¤Ë¤Ï¤½¤Î¥×¥í¥»¥¹¤Î -¥ì¥¸¥¹¥¿ (registers) ¤Ê¤É¤Î¾ðÊó¤¬ÊÝ»ý¤µ¤ì¤Æ¤¤¤ë -(\fI\fP ¤ò»²¾È)¡£Æɤ߹þ¤ó¤À¥ï¡¼¥É¤Ï +の位置から 1 ワードを読み込む。USER 領域にはそのプロセスの +レジスタ (registers) などの情報が保持されている +(\fI\fP を参照)。読み込んだワードは .BR ptrace () -¥³¡¼¥ë¤Î·ë²Ì¤È¤·¤ÆÊÖ¤µ¤ì¤ë¡£ -¤¿¤¤¤Æ¤¤¤Ï¥ª¥Õ¥»¥Ã¥È¤Ï¥ï¡¼¥É¶­³¦¤Ë¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤¬¡¢ -¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤è¤Ã¤Æ¤Ï¤½¤ÎɬÍפϤʤ¤¡£ -¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¡£ -(\fIdata\fP ¤Ï̵»ë¤µ¤ì¤ë¡£ ) +コールの結果として返される。 +たいていはオフセットはワード境界になければならないが、 +アーキテクチャによってはその必要はない。 +「注意」の節を参照。 +(\fIdata\fP は無視される。 ) .TP .BR PTRACE_POKETEXT ", " PTRACE_POKEDATA .\"O Copies the word @@ -249,12 +249,12 @@ ptrace \- .\"O .I addr .\"O in the child's memory. .\"O As above, the two requests are currently equivalent. -¥ï¡¼¥É +ワード .I data -¤ò»Ò¥×¥í¥»¥¹¤Î¥á¥â¥ê¤Î +を子プロセスのメモリの .I addr -¤Î°ÌÃ֤إ³¥Ô¡¼¤¹¤ë¡£¾å¤ÈƱÍͤˡ¢¸½ºß¤Î¤È¤³¤íÆó¤Ä¤Î -Í×µá¤ÏƱ¤¸¤â¤Î¤Ç¤¢¤ë¡£ +の位置へコピーする。上と同様に、現在のところ二つの +要求は同じものである。 .TP .B PTRACE_POKEUSER .\" PTRACE_POKEUSR in kernel source, but glibc uses PTRACE_POKEUSER, @@ -267,14 +267,14 @@ ptrace \- .\"O As above, the offset must typically be word-aligned. .\"O In order to maintain the integrity of the kernel, .\"O some modifications to the USER area are disallowed. -¥ï¡¼¥É +ワード .I data -¤ò»Ò¥×¥í¥»¥¹¤Î USER Îΰè¤Î¥ª¥Õ¥»¥Ã¥È +を子プロセスの USER 領域のオフセット .I addr -¤Î°ÌÃ֤˥³¥Ô¡¼¤¹¤ë¡£ -¾å¤ÈƱÍͤˡ¢Ä̾¥ª¥Õ¥»¥Ã¥È¤Ï¥ï¡¼¥É¶­³¦¤Ë¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥«¡¼¥Í¥ë¤Î´°Á´À­ (integrity) ¤ò°Ý»ý¤¹¤ë¤¿¤á¡¢ -Êѹ¹ÆâÍƤˤè¤Ã¤Æ¤Ï USER Îΰè¤ÎÊѹ¹¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¡£ +の位置にコピーする。 +上と同様に、通常、オフセットはワード境界になければならない。 +カーネルの完全性 (integrity) を維持するため、 +変更内容によっては USER 領域の変更は禁止されている。 .TP .BR PTRACE_GETREGS ", " PTRACE_GETFPREGS .\"O Copies the child's general purpose or floating-point registers, @@ -282,22 +282,22 @@ ptrace \- .\"O See \fI\fP for information on .\"O the format of this data. .\"O (\fIaddr\fP is ignored.) -¤½¤ì¤¾¤ì¡¢»Ò¥×¥í¥»¥¹¤ÎÈÆÍѥ쥸¥¹¥¿¡¢ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤ò¿Æ¥×¥í¥»¥¹¤Î -\fIdata\fP ¤Î°ÌÃ֤˥³¥Ô¡¼¤¹¤ë¡£¤³¤Î data ¤Î½ñ¼°¤Ë´Ø¤·¤Æ¤Ï -\fI\fP ¤ò»²¾È¤¹¤ë¤³¤È¡£(\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£) +それぞれ、子プロセスの汎用レジスタ、浮動小数点レジスタを親プロセスの +\fIdata\fP の位置にコピーする。この data の書式に関しては +\fI\fP を参照すること。(\fIaddr\fP は無視される。) .TP .\"O .BR PTRACE_GETSIGINFO " (since Linux 2.3.99-pre6)" -.BR PTRACE_GETSIGINFO " (Linux 2.3.99-pre6 °Ê¹ß)" +.BR PTRACE_GETSIGINFO " (Linux 2.3.99-pre6 以降)" .\"O Retrieve information about the signal that caused the stop. .\"O Copies a \fIsiginfo_t\fP structure (see .\"O .BR sigaction (2)) .\"O from the child to location \fIdata\fP in the parent. .\"O (\fIaddr\fP is ignored.) -Ää»ß¤Î¸¶°ø¤È¤Ê¤Ã¤¿¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤ò¼èÆÀ¤¹¤ë¡£ -\fIsiginfo_t\fP ¹½Â¤ÂÎ +停止の原因となったシグナルに関する情報を取得する。 +\fIsiginfo_t\fP 構造体 .RB ( sigaction (2) -»²¾È) ¤ò»Ò¥×¥í¥»¥¹¤«¤é¿Æ¥×¥í¥»¥¹¤Î \fIdata\fP ¤Î°ÌÃ֤˥³¥Ô¡¼¤¹¤ë¡£ -(\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£) +参照) を子プロセスから親プロセスの \fIdata\fP の位置にコピーする。 +(\fIaddr\fP は無視される。) .TP .BR PTRACE_SETREGS ", " PTRACE_SETFPREGS .\"O Copies the child's general purpose or floating-point registers, @@ -307,14 +307,14 @@ ptrace \- .\"O some general .\"O purpose register modifications may be disallowed. .\"O (\fIaddr\fP is ignored.) -¤½¤ì¤¾¤ì¡¢»Ò¥×¥í¥»¥¹¤ÎÈÆÍѥ쥸¥¹¥¿¡¢ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤Ë -¿Æ¥×¥í¥»¥¹¤Î \fIdate\fP ¤Î°ÌÃÖ¤«¤é¥³¥Ô¡¼¤¹¤ë¡£ +それぞれ、子プロセスの汎用レジスタ、浮動小数点レジスタに +親プロセスの \fIdate\fP の位置からコピーする。 .B PTRACE_POKEUSER -¤ÈƱÍͤˡ¢ÈÆÍѥ쥸¥¹¥¿¤Ë¤è¤Ã¤Æ¤Ï -Êѹ¹¤¬¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤¬¤¢¤ë¡£ (\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£) +と同様に、汎用レジスタによっては +変更が禁止されている場合がある。 (\fIaddr\fP は無視される。) .TP .\"O .BR PTRACE_SETSIGINFO " (since Linux 2.3.99-pre6)" -.BR PTRACE_SETSIGINFO " (Linux 2.3.99-pre6 °Ê¹ß)" +.BR PTRACE_SETSIGINFO " (Linux 2.3.99-pre6 以降)" .\"O Set signal information. .\"O Copies a \fIsiginfo_t\fP structure from location \fIdata\fP in the .\"O parent to the child. @@ -325,45 +325,45 @@ ptrace \- .\"O .BR ptrace () .\"O itself. .\"O (\fIaddr\fP is ignored.) -¥·¥°¥Ê¥ë¾ðÊó¤òÀßÄꤹ¤ë¡£ -\fIsiginfo_t\fP ¹½Â¤ÂΤò¿Æ¥×¥í¥»¥¹¤Î¥Ç¡¼¥¿ \fIdata\fP ¤Î°ÌÃÖ¤«¤é -»Ò¥×¥í¥»¥¹¤Ë¥³¥Ô¡¼¤¹¤ë¡£ -¤³¤Î½èÍý¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¤Î¤Ï¡¢»Ò¥×¥í¥»¥¹¤ËÄ̾ï¤ÏÇÛÁ÷¤µ¤ì¤ë¤Ï¤º¤Ç -¥È¥ì¡¼¥µ¤ËÊ᪤µ¤ì¤¿¥·¥°¥Ê¥ë¤Ë¤Ä¤¤¤Æ¤À¤±¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤ÎÄ̾ï¤Î¥·¥°¥Ê¥ë¤È +シグナル情報を設定する。 +\fIsiginfo_t\fP 構造体を親プロセスのデータ \fIdata\fP の位置から +子プロセスにコピーする。 +この処理を行うことができるのは、子プロセスに通常は配送されるはずで +トレーサに捕捉されたシグナルについてだけである。 +これらの通常のシグナルと .BR ptrace () -¼«¿È¤¬È¯À¸¤¹¤ë¥·¥°¥Ê¥ë¤ò¸«Ê¬¤±¤ë¤Î¤ÏÆñ¤·¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -(\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£) +自身が発生するシグナルを見分けるのは難しいかもしれない。 +(\fIaddr\fP は無視される。) .TP .\"O .BR PTRACE_SETOPTIONS " (since Linux 2.4.6; see BUGS for caveats)" -.BR PTRACE_SETOPTIONS " (Linux 2.4.6 °Ê¹ß; ¥Ð¥°¤Î¾Ï¤Ë¤¢¤ë·Ù¹ð¤â»²¾È)" +.BR PTRACE_SETOPTIONS " (Linux 2.4.6 以降; バグの章にある警告も参照)" .\"O Sets ptrace options from \fIdata\fP in the parent. .\"O (\fIaddr\fP is ignored.) .\"O \fIdata\fP is interpreted .\"O as a bit mask of options, which are specified by the following flags: -¿Æ¥×¥í¥»¥¹¤Î \fIdata\fP ¤Ë´ð¤Å¤¤¤Æ ptrace ¤Î¥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ë -(\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë)¡£ -\fIdata\fP ¤Ï¥ª¥×¥·¥ç¥ó¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤È¤·¤Æ²ò¼á¤µ¤ì¡¢ -¥ª¥×¥·¥ç¥ó¤Ë¤Ï°Ê²¼¤Î¥Õ¥é¥°¤ò»ØÄê¤Ç¤­¤ë: +親プロセスの \fIdata\fP に基づいて ptrace のオプションを設定する +(\fIaddr\fP は無視される)。 +\fIdata\fP はオプションのビットマスクとして解釈され、 +オプションには以下のフラグを指定できる: .RS .TP .\"O .BR PTRACE_O_TRACESYSGOOD " (since Linux 2.4.6)" -.BR PTRACE_O_TRACESYSGOOD " (Linux 2.4.6 °Ê¹ß)" +.BR PTRACE_O_TRACESYSGOOD " (Linux 2.4.6 以降)" .\"O When delivering syscall traps, set bit 7 in the signal number .\"O (i.e., deliver \fISIGTRAP | 0x80\fP). .\"O This makes it easy for the tracer to tell the difference .\"O between normal traps and those caused by a syscall. .\"O .RB ( PTRACE_O_TRACESYSGOOD .\"O may not work on all architectures.) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥È¥é¥Ã¥×¤¬ÇÛÁ÷¤µ¤ì¤¿¤È¤­¤Ë¡¢¥·¥°¥Ê¥ëÈÖ¹æ¤Î¥Ó¥Ã¥È 7 -¤òÀßÄꤹ¤ë (¤¹¤Ê¤ï¤Á¡¢\fISIGTRAP | 0x80\fP ¤òÇÛÁ÷¤¹¤ë)¡£ -¤³¤ì¤Ë¤è¤ê¡¢¥È¥ì¡¼¥µ¤¬Ä̾ï¤Î¥È¥é¥Ã¥×¤È¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤è¤ë¥È¥é¥Ã¥×¤ò -¶èÊ̤·¤ä¤¹¤¯¤Ê¤ë¡£ +システムコールのトラップが配送されたときに、シグナル番号のビット 7 +を設定する (すなわち、\fISIGTRAP | 0x80\fP を配送する)。 +これにより、トレーサが通常のトラップとシステムコールによるトラップを +区別しやすくなる。 .RB ( PTRACE_O_TRACESYSGOOD -¤Ï¤É¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤âÆ°ºî¤·¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ë¡£) +はどのアーキテクチャでも動作しない可能性がある。) .TP .\"O .BR PTRACE_O_TRACEFORK " (since Linux 2.5.46)" -.BR PTRACE_O_TRACEFORK " (Linux 2.5.46 °Ê¹ß)" +.BR PTRACE_O_TRACEFORK " (Linux 2.5.46 以降)" .\"O Stop the child at the next .\"O .BR fork (2) .\"O call with \fISIGTRAP | PTRACE_EVENT_FORK\ <<\ 8\fP and automatically @@ -372,19 +372,19 @@ ptrace \- .\"O .BR SIGSTOP . .\"O The PID for the new process can be retrieved with .\"O .BR PTRACE_GETEVENTMSG . -¼¡¤Î +次の .BR fork (2) -¸Æ¤Ó½Ð¤·»þ¤Ë \fISIGTRAP | PTRACE_EVENT_FORK\ <<\ 8\fP ¤Ç -»Ò¥×¥í¥»¥¹¤ÎÆ°ºî¤òÄä»ß¤µ¤»¡¢ -¿·¤¿¤Ë fork ¤µ¤ì¤¿¥×¥í¥»¥¹¤Î¥È¥ì¡¼¥¹¤ò¼«Æ°Åª¤Ë³«»Ï¤·¡¢ +呼び出し時に \fISIGTRAP | PTRACE_EVENT_FORK\ <<\ 8\fP で +子プロセスの動作を停止させ、 +新たに fork されたプロセスのトレースを自動的に開始し、 .B SIGSTOP -¤Ç¤½¤Î¥×¥í¥»¥¹¤Î¼Â¹Ô¤ò³«»Ï¤¹¤ë¡£ -¿·¤·¤¤¥×¥í¥»¥¹¤Î PID ¤Ï +でそのプロセスの実行を開始する。 +新しいプロセスの PID は .B PTRACE_GETEVENTMSG -¤Ç¼èÆÀ¤Ç¤­¤ë¡£ +で取得できる。 .TP .\"O .BR PTRACE_O_TRACEVFORK " (since Linux 2.5.46)" -.BR PTRACE_O_TRACEVFORK " (Linux 2.5.46 °Ê¹ß)" +.BR PTRACE_O_TRACEVFORK " (Linux 2.5.46 以降)" .\"O Stop the child at the next .\"O .BR vfork (2) .\"O call with \fISIGTRAP | PTRACE_EVENT_VFORK\ <<\ 8\fP and automatically start @@ -392,19 +392,19 @@ ptrace \- .\"O .BR SIGSTOP . .\"O The PID for the new process can be retrieved with .\"O .BR PTRACE_GETEVENTMSG . -¼¡¤Î +次の .BR vfork (2) -¸Æ¤Ó½Ð¤·»þ¤Ë \fISIGTRAP | PTRACE_EVENT_VFORK\ <<\ 8\fP ¤Ç -»Ò¥×¥í¥»¥¹¤ÎÆ°ºî¤òÄä»ß¤µ¤»¡¢ -¿·¤¿¤Ë vfork ¤µ¤ì¤¿¥×¥í¥»¥¹¤Î¥È¥ì¡¼¥¹¤ò¼«Æ°Åª¤Ë³«»Ï¤·¡¢ +呼び出し時に \fISIGTRAP | PTRACE_EVENT_VFORK\ <<\ 8\fP で +子プロセスの動作を停止させ、 +新たに vfork されたプロセスのトレースを自動的に開始し、 .B SIGSTOP -¤Ç¤½¤Î¥×¥í¥»¥¹¤Î¼Â¹Ô¤ò³«»Ï¤¹¤ë¡£ -¿·¤·¤¤¥×¥í¥»¥¹¤Î PID ¤Ï +でそのプロセスの実行を開始する。 +新しいプロセスの PID は .B PTRACE_GETEVENTMSG -¤Ç¼èÆÀ¤Ç¤­¤ë¡£ +で取得できる。 .TP .\"O .BR PTRACE_O_TRACECLONE " (since Linux 2.5.46)" -.BR PTRACE_O_TRACECLONE " (Linux 2.5.46 °Ê¹ß)" +.BR PTRACE_O_TRACECLONE " (Linux 2.5.46 以降)" .\"O Stop the child at the next .\"O .BR clone (2) .\"O call with \fISIGTRAP | PTRACE_EVENT_CLONE\ <<\ 8\fP and automatically start @@ -433,62 +433,62 @@ ptrace \- .\"O if .\"O .B PTRACE_O_TRACEFORK .\"O is set. -¼¡¤Î +次の .BR clone (2) -¸Æ¤Ó½Ð¤·»þ¤Ë \fISIGTRAP | PTRACE_EVENT_CLONE\ << \8\fP ¤Ç -»Ò¥×¥í¥»¥¹¤ÎÆ°ºî¤òÄä»ß¤µ¤»¡¢ -¿·¤¿¤Ë clone ¤ÇºîÀ®¤µ¤ì¤¿¥×¥í¥»¥¹¤Î¥È¥ì¡¼¥¹¤ò¼«Æ°Åª¤Ë³«»Ï¤·¡¢ +呼び出し時に \fISIGTRAP | PTRACE_EVENT_CLONE\ << \8\fP で +子プロセスの動作を停止させ、 +新たに clone で作成されたプロセスのトレースを自動的に開始し、 .B SIGSTOP -¤Ç¥×¥í¥»¥¹¤Î¼Â¹Ô¤ò³«»Ï¤¹¤ë¡£ -¿·¤·¤¤¥×¥í¥»¥¹¤Î PID ¤Ï +でプロセスの実行を開始する。 +新しいプロセスの PID は .B PTRACE_GETEVENTMSG -¤Ç¼èÆÀ¤Ç¤­¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ÇÁ´¤Æ¤Î +で取得できる。 +このオプションで全ての .BR clone (2) -¥³¡¼¥ë¤òÊá¤Þ¤¨¤é¤ì¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -»Ò¥×¥í¥»¥¹¤¬ +コールを捕まえられるわけではない。 +子プロセスが .B CLONE_VFORK -¥Õ¥é¥°ÉÕ¤­¤Ç +フラグ付きで .BR clone (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¡¢ +を呼び出した場合、 .B PTRACE_O_TRACEVFORK -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ì¤ÐÂå¤ï¤ê¤Ë +が設定されていれば代わりに .B PTRACE_EVENT_VFORK -¤¬ÇÛÁ÷¤µ¤ì¤ë¡£ -¤Þ¤¿¡¢»Ò¥×¥í¥»¥¹¤¬½ªÎ»¥·¥°¥Ê¥ë¤ò +が配送される。 +また、子プロセスが終了シグナルを .B SIGCHLD -¤ËÀßÄꤷ¤Æ +に設定して .BR clone (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¤Ï¡¢ +を呼び出した場合は、 .B PTRACE_O_TRACEFORK -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ì¤Ð +が設定されていれば .B PTRACE_EVENT_FORK -¤¬ÇÛÁ÷¤µ¤ì¤ë¡£ +が配送される。 .TP .\"O .BR PTRACE_O_TRACEEXEC " (since Linux 2.5.46)" -.BR PTRACE_O_TRACEEXEC " (Linux 2.5.46 °Ê¹ß)" +.BR PTRACE_O_TRACEEXEC " (Linux 2.5.46 以降)" .\"O Stop the child at the next .\"O .BR execve (2) .\"O call with \fISIGTRAP | PTRACE_EVENT_EXEC\ <<\ 8\fP. -¼¡¤Î +次の .BR execve (2) -¸Æ¤Ó½Ð¤·»þ¤Ë +呼び出し時に \fISIGTRAP | PTRACE_EVENT_EXEC\ <<\ 8\fP -¤Ç»Ò¥×¥í¥»¥¹¤ÎÆ°ºî¤òÄä»ß¤µ¤»¤ë¡£ +で子プロセスの動作を停止させる。 .TP .\"O .BR PTRACE_O_TRACEVFORKDONE " (since Linux 2.5.60)" -.BR PTRACE_O_TRACEVFORKDONE " (Linux 2.5.60 °Ê¹ß)" +.BR PTRACE_O_TRACEVFORKDONE " (Linux 2.5.60 以降)" .\"O Stop the child at the completion of the next .\"O .BR vfork (2) .\"O call with \fISIGTRAP | PTRACE_EVENT_VFORK_DONE\ <<\ 8\fP. -¼¡¤Î +次の .BR vfork (2) -¸Æ¤Ó½Ð¤·»þ¤Ë +呼び出し時に \fISIGTRAP | PTRACE_EVENT_VFORK_DONE\ <<\ 8\fP -¤Ç»Ò¥×¥í¥»¥¹¤ÎÆ°ºî¤òÄä»ß¤µ¤»¤ë¡£ +で子プロセスの動作を停止させる。 .TP .\"O .BR PTRACE_O_TRACEEXIT " (since Linux 2.5.60)" -.BR PTRACE_O_TRACEEXIT " (Linux 2.5.60 °Ê¹ß)" +.BR PTRACE_O_TRACEEXIT " (Linux 2.5.60 以降)" .\"O Stop the child at exit with \fISIGTRAP | PTRACE_EVENT_EXIT\ <<\ 8\fP. .\"O The child's exit status can be retrieved with .\"O .BR PTRACE_GETEVENTMSG . @@ -498,19 +498,19 @@ ptrace \- .\"O is finished exiting. .\"O Even though context is available, the tracer cannot prevent the exit from .\"O happening at this point. -½ªÎ» (exit) »þ¤Ë \fISIGTRAP | PTRACE_EVENT_EXIT\ <<\ 8\fP -¤Ç»Ò¥×¥í¥»¥¹¤ÎÆ°ºî¤òÄä»ß¤µ¤»¤ë¡£»Ò¥×¥í¥»¥¹¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ï +終了 (exit) 時に \fISIGTRAP | PTRACE_EVENT_EXIT\ <<\ 8\fP +で子プロセスの動作を停止させる。子プロセスの終了ステータスは .B PTRACE_GETEVENTMSG -¤Ç¼èÆÀ¤Ç¤­¤ë¡£ -¤³¤ÎÄä»ß¤Ï¥ì¥¸¥¹¥¿¤¬¤Þ¤À»²¾È²Äǽ¤Ç¤¢¤ë¥×¥í¥»¥¹½ªÎ»½èÍý¤Î½é´ü¤Ë¹Ô¤ï¤ì¡¢ -¥È¥ì¡¼¥µ¤Ï¤É¤³¤Ç½ªÎ»¤¬È¯À¸¤·¤¿¤«¤òÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ -Ä̾ï¤Î½ªÎ»ÄÌÃÎ (exit notification) ¤Ï¥×¥í¥»¥¹¤Î½ªÎ»½èÍý¤¬´°Î»¤·¤¿¸å¤Ë -¹Ô¤ï¤ì¤ë¡£¥³¥ó¥Æ¥­¥¹¥È¤ò»²¾È¤¹¤ë¤³¤È¤Ï¤Ç¤­¤ë¤Ë¤â´Ø¤ï¤é¤º¡¢ -¥È¥ì¡¼¥µ¤Ï¤³¤Î»þÅÀ¤«¤é½ªÎ»¤ò»ß¤á¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +で取得できる。 +この停止はレジスタがまだ参照可能であるプロセス終了処理の初期に行われ、 +トレーサはどこで終了が発生したかを知ることができる。 +通常の終了通知 (exit notification) はプロセスの終了処理が完了した後に +行われる。コンテキストを参照することはできるにも関わらず、 +トレーサはこの時点から終了を止めることはできない。 .RE .TP .\"O .BR PTRACE_GETEVENTMSG " (since Linux 2.5.46)" -.BR PTRACE_GETEVENTMSG " (Linux 2.5.46 °Ê¹ß)" +.BR PTRACE_GETEVENTMSG " (Linux 2.5.46 以降)" .\"O Retrieve a message (as an .\"O .IR "unsigned long" ) .\"O about the ptrace event @@ -529,21 +529,21 @@ ptrace \- .\"O for .\"O .BR PTRACE_EVENT_VFORK_DONE . .\"O (\fIaddr\fP is ignored.) -ȯÀ¸¤·¤¿¤Ð¤«¤ê¤Î ptrace ¥¤¥Ù¥ó¥È¤Ë´Ø¤¹¤ë¥á¥Ã¥»¡¼¥¸¤ò +発生したばかりの ptrace イベントに関するメッセージを .RI ( "unsigned long" -·¿¤Ç) ¼èÆÀ¤¹¤ë¡£ -¼èÆÀ¤·¤¿¥á¥Ã¥»¡¼¥¸¤Ï¿Æ¥×¥í¥»¥¹¤Î \fIdata\fP ¤Î°ÌÃ֤˳ÊǼ¤µ¤ì¤ë¡£ -ÆÀ¤é¤ì¤ëÆâÍƤϡ¢ +型で) 取得する。 +取得したメッセージは親プロセスの \fIdata\fP の位置に格納される。 +得られる内容は、 .B PTRACE_EVENT_EXIT -¤Î¾ì¹ç¤Ï»Ò¥×¥í¥»¥¹¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ç¤¢¤ê¡¢ +の場合は子プロセスの終了ステータスであり、 .BR PTRACE_EVENT_FORK , .BR PTRACE_EVENT_VFORK , .B PTRACE_EVENT_CLONE -¤Î¾ì¹ç¤Ï¿·¤·¤¤¥×¥í¥»¥¹¤Î PID ¤Ç¤¢¤ë¡£ -Linux 2.6.18 °Ê¹ß¤Ç¤Ï¡¢¿·¤·¤¤¥×¥í¥»¥¹¤Î PID ¤Ï +の場合は新しいプロセスの PID である。 +Linux 2.6.18 以降では、新しいプロセスの PID は .B PTRACE_EVENT_VFORK_DONE -¤ÇÆþ¼ê¤Ç¤­¤ë¡£ -(\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£) +で入手できる。 +(\fIaddr\fP は無視される。) .TP .B PTRACE_CONT .\"O Restarts the stopped child process. @@ -554,17 +554,17 @@ Linux 2.6.18 .\"O Thus, for example, the parent can control .\"O whether a signal sent to the child is delivered or not. .\"O (\fIaddr\fP is ignored.) -Ää»ß¤·¤¿»Ò¥×¥í¥»¥¹¤Î¼Â¹Ô¤òºÆ³«¤µ¤»¤ë¡£ -\fIdata\fP ¤¬¥¼¥í¤Ç¤Ê¤¯¡¢ +停止した子プロセスの実行を再開させる。 +\fIdata\fP がゼロでなく、 .B SIGSTOP -¤Ç¤â¤Ê¤±¤ì¤Ð¡¢ -»Ò¥×¥í¥»¥¹¤ËÇÛÁ÷¤µ¤ì¤ë¥·¥°¥Ê¥ë¤È²ò¼á¤µ¤ì¤ë¡£ -¥¼¥í¤ä +でもなければ、 +子プロセスに配送されるシグナルと解釈される。 +ゼロや .B SIGSTOP -¤Î¾ì¹ç¤Ï¥·¥°¥Ê¥ë¤ÏÇÛÁ÷¤µ¤ì¤Ê¤¤¡£ -¤³¤ì¤ò»È¤¦¤È¡¢Î㤨¤Ð¡¢¿Æ¥×¥í¥»¥¹¤Ï -»Ò¥×¥í¥»¥¹¤ËÁ÷¤é¤ì¤¿¥·¥°¥Ê¥ë¤ò¼ÂºÝ¤ËÇÛÁ÷¤¹¤ë¤«¤É¤¦¤«¤ò -À©¸æ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£(\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£) +の場合はシグナルは配送されない。 +これを使うと、例えば、親プロセスは +子プロセスに送られたシグナルを実際に配送するかどうかを +制御することができる。(\fIaddr\fP は無視される。) .TP .BR PTRACE_SYSCALL ", " PTRACE_SINGLESTEP .\"O Restarts the stopped child as for @@ -590,30 +590,30 @@ Linux 2.6.18 .\"O .BR PTRACE_CONT . .\"O (\fIaddr\fP is ignored.) .B PTRACE_CONT -¤ÈƱÍͤËÄä»ß¤·¤¿»Ò¥×¥í¥»¥¹¤òºÆ³«¤¹¤ë¡£¤¿¤À¤·¡¢ +と同様に停止した子プロセスを再開する。ただし、 .B PTRACE_SYSCALL -¤Î¾ì¹ç¤Ï»Ò¥×¥í¥»¥¹¤¬ -¼¡¤Ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÆþ¤ë¤«¥·¥¹¥Æ¥à¥³¡¼¥ë¤«¤éÈ´¤±¤ë¤«¤¹¤ë»þ¤Ë¡¢ +の場合は子プロセスが +次にシステムコールに入るかシステムコールから抜けるかする時に、 .B PTRACE_SINGLESTEP -¤Î¾ì¹ç¤Ï 1 Ì¿Îá (instruction) ¼Â¹Ô¤·¤¿¸å¤ËÄä»ß¤µ¤»¤ë -(Ä̾ï¤É¤ª¤ê¡¢»Ò¥×¥í¥»¥¹¤Ï¥·¥°¥Ê¥ë¤ò¼õ¤±¼è¤Ã¤¿¾ì¹ç¤Ë¤âÄä»ß¤¹¤ë)¡£ -¿Æ¥×¥í¥»¥¹¤«¤é¸«¤ë¤È¡¢»Ò¥×¥í¥»¥¹¤Ï +の場合は 1 命令 (instruction) 実行した後に停止させる +(通常どおり、子プロセスはシグナルを受け取った場合にも停止する)。 +親プロセスから見ると、子プロセスは .B SIGTRAP -¤ò¼õ¿®¤·¤ÆÄä»ß¤·¤¿¤è¤¦¤Ë¸«¤¨¤ë¡£¤½¤Î¤¿¤á¡¢Î㤨¤Ð +を受信して停止したように見える。そのため、例えば .B PTRACE_SYSCALL -¤ò»È¤¦¤È¡¢1²óÌܤÎÄä»ß¤Ç°ú¤­¿ô¤òÄ´¤Ù¤Æ +を使うと、1回目の停止で引き数を調べて .B PTRACE_SYSCALL -¤ò¼Â¹Ô¤·¡¢ 2²óÌܤÎÄä»ß¤Ç¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÊÖ¤êÃͤòÄ´¤Ù¤ë¡¢ -¤È¤¤¤¦¤è¤¦¤Ê¤³¤È¤¬¤Ç¤­¤ë¡£ -°ú¤­¿ô +を実行し、 2回目の停止でシステムコールの返り値を調べる、 +というようなことができる。 +引き数 .I data -¤Ï +は .B PTRACE_CONT -¤Î¾ì¹ç¤ÈƱ¤¸Íͤ˲ò¼á¤µ¤ì¤ë¡£ -(\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£) +の場合と同じ様に解釈される。 +(\fIaddr\fP は無視される。) .TP .\"O .BR PTRACE_SYSEMU ", " PTRACE_SYSEMU_SINGLESTEP " (since Linux 2.6.14)" -.BR PTRACE_SYSEMU ", " PTRACE_SYSEMU_SINGLESTEP " (Linux 2.6.14 °Ê¹ß)" +.BR PTRACE_SYSEMU ", " PTRACE_SYSEMU_SINGLESTEP " (Linux 2.6.14 以降)" .\"O For .\"O .BR PTRACE_SYSEMU , .\"O continue and stop on entry to the next syscall, @@ -631,29 +631,29 @@ Linux 2.6.18 .\"O (\fIaddr\fP is ignored; .\"O not supported on all architectures.) .B PTRACE_SYSEMU -¤Ï¡¢¼Â¹Ô¤òºÆ³«¤·¡¢¼¡¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÆþ¤ë»þ¤ËÄä»ß¤µ¤»¤ë¡£ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¼Â¹Ô¤µ¤ì¤Ê¤¤¡£ +は、実行を再開し、次のシステムコールに入る時に停止させる。 +システムコールは実行されない。 .B PTRACE_SYSEMU_SINGLESTEP -¤âƱÍͤÀ¤¬¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï -1 Ì¿Îá (singlestep) ¤À¤±¼Â¹Ô¤·¤¿»þÅÀ¤Ç¤âÄä»ß¤µ¤»¤ë¡£ -¤³¤Î¥³¡¼¥ë¤Ï User Mode Linux ¤Î¤è¤¦¤Ë»Ò¥×¥í¥»¥¹¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÁ´¤Æ -¥¨¥ß¥å¥ì¡¼¥È¤·¤è¤¦¤È¤¹¤ë¥×¥í¥°¥é¥à¤Ç»ÈÍѤµ¤ì¤ë¡£ -°ú¤­¿ô +も同様だが、システムコールでない場合には +1 命令 (singlestep) だけ実行した時点でも停止させる。 +このコールは User Mode Linux のように子プロセスのシステムコールを全て +エミュレートしようとするプログラムで使用される。 +引き数 .I data -¤Ï +は .B PTRACE_CONT -¤Î¾ì¹ç¤ÈƱ¤¸Íͤ˲ò¼á¤µ¤ì¤ë¡£ -(\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£ -Á´¤Æ¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£) +の場合と同じ様に解釈される。 +(\fIaddr\fP は無視される。 +全てのアーキテクチャでサポートされているわけではない。) .TP .B PTRACE_KILL .\"O Sends the child a .\"O .B SIGKILL .\"O to terminate it. .\"O (\fIaddr\fP and \fIdata\fP are ignored.) -»Ò¥×¥í¥»¥¹¤Ë +子プロセスに .B SIGKILL -¤òÁ÷¤ê½ªÎ»¤µ¤»¤ë¡£(\fIaddr\fP ¤È \fIdata\fP ¤Ï̵»ë¤µ¤ì¤ë¡£) +を送り終了させる。(\fIaddr\fP と \fIdata\fP は無視される。) .TP .B PTRACE_ATTACH .\"O Attaches to the process specified in @@ -676,22 +676,22 @@ Linux 2.6.18 .\"O to wait for the child to stop. .\"O (\fIaddr\fP and \fIdata\fP are ignored.) .I pid -¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤ËÀܳ (attach) ¤·¡¢¤½¤ì¤ò¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î -»Ò¥×¥í¥»¥¹¤È¤·¤Æ¥È¥ì¡¼¥¹¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£»Ò¥×¥í¥»¥¹¤Ï +で指定されたプロセスに接続 (attach) し、それを呼び出し元のプロセスの +子プロセスとしてトレースできるようにする。子プロセスは .B PTRACE_TRACEME -¤·¤¿¤«¤Î¤è¤¦¤Ë¿¶Éñ¤¦¡£¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ï¤½¤Î¤Û¤È¤ó¤É¤ÎÌÜŪ¤Ë¤ª¤¤¤Æ¡¢ -¤½¤Î»Ò¥×¥í¥»¥¹¤Î¼ÂºÝ¤Î¿Æ¤Ë¤Ê¤ë (Î㤨¤Ð¡¢»Ò¥×¥í¥»¥¹¤Î¥¤¥Ù¥ó¥È¤Î -ÄÌÃΤò¼õ¤±¤È¤Ã¤¿¤ê¡¢ +したかのように振舞う。呼び出し元のプロセスはそのほとんどの目的において、 +その子プロセスの実際の親になる (例えば、子プロセスのイベントの +通知を受けとったり、 .BR ps (1) -¤Ç¿Æ¤È¤·¤Æɽ¼¨¤µ¤ì¤¿¤ê¤¹¤ë)¡£¤·¤«¤·¡¢»Ò¥×¥í¥»¥¹¤Ç +で親として表示されたりする)。しかし、子プロセスで .BR getppid (2) -¤ò¼Â¹Ô¤·¤¿¾ì¹ç¤Ë¤Ï¸µ¤Î¿Æ¥×¥í¥»¥¹¤Î PID ¤¬ÊÖ¤µ¤ì¤ë¡£ -»Ò¥×¥í¥»¥¹¤Ë¤Ï +を実行した場合には元の親プロセスの PID が返される。 +子プロセスには .B SIGSTOP -¤¬Á÷¤é¤ì¤ë¤¬¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤¬´°Î»¤¹¤ë¤Þ¤Ç¤Ë -ɬ¤º¤·¤âÄä»ß¤¹¤ë¤È¤Ï¸Â¤é¤Ê¤¤¡£»Ò¥×¥í¥»¥¹¤ÎÄä»ß¤òÂÔ¤Ä¤Ë¤Ï +が送られるが、この呼び出しが完了するまでに +必ずしも停止するとは限らない。子プロセスの停止を待つには .BR wait (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£(\fIaddr\fP ¤È \fIdata\fP ¤Ï̵»ë¤µ¤ì¤ë¡£) +を使用すること。(\fIaddr\fP と \fIdata\fP は無視される。) .TP .B PTRACE_DETACH .\"O Restarts the stopped child as for @@ -706,17 +706,17 @@ Linux 2.6.18 .\"O tracing. .\"O (\fIaddr\fP is ignored.) .B PTRACE_CONT -¤ÈƱÍͤËÄä»ß¤·¤¿»Ò¥×¥í¥»¥¹¤òºÆ³«¤¹¤ë¡£¤¿¤À¤· -¤Þ¤º¤½¤Î¥×¥í¥»¥¹¤«¤é¤ÎʬΥ (detach) ¤ò¹Ô¤¤¡¢ +と同様に停止した子プロセスを再開する。ただし +まずそのプロセスからの分離 (detach) を行い、 .B PTRACE_ATTACH -¤Ç¤Î¿Æ¤ÎÀڤ괹¤¨¤Ë¤è¤ë¸ú²Ì¤È +での親の切り換えによる効果と .B PTRACE_TRACEME -¤Î¸ú²Ì¤ò¼è¤ê¾Ã¤¹¡£°Õ¿Þ¤·¤¿¤â¤Î¤Ç¤Ï¤Ê¤¤¤À¤í¤¦¤¬¡¢ -Linux ¤Ç¤Ï¡¢¥È¥ì¡¼¥¹¤µ¤ì¤Æ¤¤¤ë»Ò¥×¥í¥»¥¹¤Ï¤É¤Î¤è¤¦¤ÊÊýË¡¤Ç¥È¥ì¡¼¥¹¤ò -³«»Ï¤µ¤ì¤¿¤È¤·¤Æ¤â¡¢¤³¤ÎÊýË¡¤ÇʬΥ (detach) ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -(\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£) +の効果を取り消す。意図したものではないだろうが、 +Linux では、トレースされている子プロセスはどのような方法でトレースを +開始されたとしても、この方法で分離 (detach) することができる。 +(\fIaddr\fP は無視される。) .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .B PTRACE_PEEK* .\"O requests return the requested data, @@ -729,25 +729,25 @@ Linux .\"O request may be \-1, the caller must check .\"O .I errno .\"O after such requests to determine whether or not an error occurred. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .B PTRACE_PEEK* -¤Î¾ì¹ç¤ÏÍ׵ᤷ¤¿¥Ç¡¼¥¿¤òÊÖ¤·¡¢ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +の場合は要求したデータを返し、 +それ以外の場合は 0 を返す。 +エラーの場合は \-1 を返し、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .B PTRACE_PEEK* -¤¬À®¸ù¤·¤ÆÊÖ¤¹Ãͤ⡡\-1 ¤Ë¤Ê¤ë¤³¤È¤¬¤¢¤ë¤¿¤á¡¢ -¤½¤Î¤è¤¦¤ÊÍ×µá¤Î¾ì¹ç¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Ï +が成功して返す値も \-1 になることがあるため、 +そのような要求の場合には、呼び出し元は .I errno -¤òÄ´¤Ù¡¢¥¨¥é¡¼¤«È¯À¸¤·¤¿¤Î¤«¤É¤¦¤«¤òȽÃǤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を調べ、エラーか発生したのかどうかを判断しなければならない。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBUSY .\"O (i386 only) There was an error with allocating or freeing a debug .\"O register. -(i386 ¤Î¤ß) ¥Ç¥Ð¥Ã¥°¥ì¥¸¥¹¥¿¤Î³ÎÊݤޤ¿¤Ï²òÊü¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +(i386 のみ) デバッグレジスタの確保または解放でエラーが発生した。 .TP .B EFAULT .\"O There was an attempt to read from or write to an invalid area in @@ -759,30 +759,30 @@ Linux .\"O or .\"O .B EFAULT .\"O more or less arbitrarily. -¿Æ¥×¥í¥»¥¹¤Þ¤¿¤Ï»Ò¥×¥í¥»¥¹¤Î¥á¥â¥ê¤ÎÉÔÀµ¤ÊÎΰè¤ËÆɤ߽ñ¤­¤·¤è¤¦¤È¤·¤¿¡£ -¤ª¤½¤é¤¯¤½¤ÎÎΰ褬¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ -¤½¤ÎÎΰè¤Ø¤Î¥¢¥¯¥»¥¹¤¬µö¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¤Ç¤¢¤ë¡£ -ÉÔ±¿¤Ê¤³¤È¤Ë¡¢Linux ¤Ç¤Ï¤³¤Î¤è¤¦¤Ê¥¨¥é¡¼¤Î¾ì¹ç¡¢Â¿¤«¤ì¾¯¤Ê¤«¤ì -×ó°ÕŪ¤Ë +親プロセスまたは子プロセスのメモリの不正な領域に読み書きしようとした。 +おそらくその領域がマッピングされていないか、 +その領域へのアクセスが許されていないかである。 +不運なことに、Linux ではこのようなエラーの場合、多かれ少なかれ +恣意的に .B EIO -¤òÊÖ¤·¤¿¤ê +を返したり .B EFAULT -¤òÊÖ¤·¤¿¤ê¤¹¤ë¤³¤È¤¬¤¢¤ë¡£ +を返したりすることがある。 .TP .B EINVAL .\"O An attempt was made to set an invalid option. -ÉÔÀµ¤Ê¥ª¥×¥·¥ç¥ó¤òÀßÄꤷ¤è¤¦¤È¤·¤¿¡£ +不正なオプションを設定しようとした。 .TP .B EIO .\"O \fIrequest\fP is invalid, or an attempt was made to read from or .\"O write to an invalid area in the parent's or child's memory, .\"O or there was a word-alignment violation, .\"O or an invalid signal was specified during a restart request. -\fIrequest\fP ¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ -¤Þ¤¿¤Ï¡¢¿Æ¥×¥í¥»¥¹¤Þ¤¿¤Ï»Ò¥×¥í¥»¥¹¤Î¥á¥â¥ê¤Î -ÉÔÀµ¤ÊÎΰè¤ËÆɤ߽ñ¤­¤·¤è¤¦¤È¤·¤¿¡£ -¤Þ¤¿¤Ï¡¢¥ï¡¼¥É¶­³¦°ãÈ¿¤¬¤¢¤Ã¤¿¡£ -¤Þ¤¿¤Ï¡¢¼Â¹ÔºÆ³«¤ÎÍ×µá¤ÇÉÔÀµ¤Ê¥·¥°¥Ê¥ë¤ò»ØÄꤷ¤¿¡£ +\fIrequest\fP が不正である。 +または、親プロセスまたは子プロセスのメモリの +不正な領域に読み書きしようとした。 +または、ワード境界違反があった。 +または、実行再開の要求で不正なシグナルを指定した。 .TP .B EPERM .\"O The specified process cannot be traced. @@ -795,30 +795,30 @@ Linux .\"O Alternatively, the process may already be being traced, or be .\"O .BR init (8) .\"O (PID 1). -»ØÄꤷ¤¿¥×¥í¥»¥¹¤ò¥È¥ì¡¼¥¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£¤³¤ì¤Ï¿Æ¥×¥í¥»¥¹¤¬ -ɬÍפʸ¢¸Â (ɬÍפʥ±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ï +指定したプロセスをトレースすることができない。これは親プロセスが +必要な権限 (必要なケーパビリティは .BR CAP_SYS_PTRACE ) -¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¤³¤È¤¬¸¶°ø¤Î¾ì¹ç¤¬¤¢¤ë¡£ -ʬ¤«¤ê¤ä¤¹¤¤Íýͳ¤òµó¤²¤ë¤Ê¤é¡¢ -ÈóÆø¢¥×¥í¥»¥¹¤Ï¥·¥°¥Ê¥ë¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¥×¥í¥»¥¹¤ò¥È¥ì¡¼¥¹¤Ç¤­¤Ê¤¤¤·¡¢ -set-user-ID/set-group-ID ¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Ï¥È¥ì¡¼¥¹¤Ç¤­¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢¥×¥í¥»¥¹¤Ï¤¹¤Ç¤Ë¥È¥ì¡¼¥¹Ãæ¤Ç¤¢¤ë¡¢ -¤Þ¤¿¤Ï +を持っていないことが原因の場合がある。 +分かりやすい理由を挙げるなら、 +非特権プロセスはシグナルを送ることができないプロセスをトレースできないし、 +set-user-ID/set-group-ID プログラムを実行しているプロセスはトレースできない。 +または、プロセスはすでにトレース中である、 +または .BR init (8) -¥×¥í¥»¥¹ (PID ¤¬ 1) ¤Ç¤¢¤ë¡£ +プロセス (PID が 1) である。 .TP .B ESRCH .\"O The specified process does not exist, or is not currently being traced .\"O by the caller, or is not stopped (for requests that require that). -»ØÄꤷ¤¿¥×¥í¥»¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢»ØÄꤷ¤¿¥×¥í¥»¥¹¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬ -¸½ºß¥È¥ì¡¼¥¹Ãæ¤Î»Ò¥×¥í¥»¥¹¤Ç¤Ï¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢»ØÄꤷ¤¿¥×¥í¥»¥¹¤¬Ää»ß¤·¤Æ¤¤¤Ê¤¤ (Ää»ß¤·¤Æ¤¤¤ë¤³¤È¤¬É¬ÍפÊÍ×µá¤Î¾ì¹ç)¡£ +指定したプロセスが存在しない。 +または、指定したプロセスは呼び出したプロセスが +現在トレース中の子プロセスではない。 +または、指定したプロセスが停止していない (停止していることが必要な要求の場合)。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Although arguments to .\"O .BR ptrace () .\"O are interpreted according to the prototype given, @@ -830,38 +830,38 @@ SVr4, 4.3BSD. .\"O .BR gcc (1) .\"O behavior. .BR ptrace () -¤Î°ú¤­¿ô¤Ï¾å¤Î¤è¤¦¤Ê¥×¥í¥È¥¿¥¤¥×¤Ë´ð¤Å¤¤¤Æ²ò¼á¤µ¤ì¤ë¤¬¡¢ -glibc ¤Ç¤Ï¡¢¸½ºß¤Î¤È¤³¤í +の引き数は上のようなプロトタイプに基づいて解釈されるが、 +glibc では、現在のところ .BR ptrace () -¤Ï \fIrequest\fP °ú¤­¿ô¤À¤±¤¬¸ÇÄê¤Î²ÄÊÑĹ°ú¤­¿ô´Ø¿ô¤È¤·¤Æ -Àë¸À¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤ÏɬÍפʤ±¤ì¤Ð»Ä¤ê¤Î°ú¤­¿ô¤Ï¾Êά²Äǽ¤Ç¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¤¬¡¢ -¤½¤ì¤Ï +は \fIrequest\fP 引き数だけが固定の可変長引き数関数として +宣言されている。 +これは必要なければ残りの引き数は省略可能であることを意味するが、 +それは .BR gcc (1) -¤ÎÌÀʸ²½¤µ¤ì¤Æ¤¤¤Ê¤¤Æ°ºî¤òÍøÍѤ·¤Æ¤¤¤ë¤³¤È¤Ë¤Ê¤ë¡£ +の明文化されていない動作を利用していることになる。 .LP .\"O .BR init (8), .\"O the process with pid 1, may not be traced. .BR init (8) -¤¹¤Ê¤ï¤Á PID ¤¬ 1 ¤Î¥×¥í¥»¥¹¤Ï¥È¥ì¡¼¥¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +すなわち PID が 1 のプロセスはトレースすることができない。 .LP .\"O The layout of the contents of memory and the USER area are quite OS- and .\"O architecture-specific. -¥á¥â¥ê¤ä USER Îΰè¤ÎÆâÍƤäÇÛÃÖ¤Ï OS ¤´¤È¡¢¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤´¤È¤Ë -Èó¾ï¤Ë°Í¸¤¹¤ë¡£ +メモリや USER 領域の内容や配置は OS ごと、アーキテクチャごとに +非常に依存する。 .\"O The offset supplied, and the data returned, .\"O might not entirely match with the definition of .\"O .IR "struct user" . .\"O .\" See http://lkml.org/lkml/2008/5/8/375 -¥ª¥Õ¥»¥Ã¥È¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ÊÖ¤µ¤ì¤ë¥Ç¡¼¥¿¤Ï +オフセットが指定された場合、返されるデータは .I "struct user" -¤ÎÄêµÁ¤È´°Á´¤Ë°ìÃפ·¤Ê¤¤¤³¤È¤â¤¢¤ê¤¨¤ë¡£ -.\" http://lkml.org/lkml/2008/5/8/375 »²¾È¡£ +の定義と完全に一致しないこともありえる。 +.\" http://lkml.org/lkml/2008/5/8/375 参照。 .LP .\"O The size of a "word" is determined by the OS variant .\"O (e.g., for 32-bit Linux it is 32 bits, etc.). -¡Ö¥ï¡¼¥É (word) ¡×¤ÎÂ礭¤µ¤Ï OS ¤Ë¤è¤Ã¤Æ·è¤Þ¤ë¡£ -(Î㤨¤Ð¡¢32 ¥Ó¥Ã¥È¤Î Linux ¤Ç¤Ï 32 ¥Ó¥Ã¥È¤Ç¤¢¤ë¡¢¤Ê¤É¡£) +「ワード (word) 」の大きさは OS によって決まる。 +(例えば、32 ビットの Linux では 32 ビットである、など。) .LP .\"O Tracing causes a few subtle differences in the semantics of .\"O traced processes. @@ -871,13 +871,13 @@ glibc .\"O .BR wait (2) .\"O when it stops, and there is no way for the new parent to .\"O effectively simulate this notification. -¥È¥ì¡¼¥¹¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¥È¥ì¡¼¥¹¤µ¤ì¤ë¥×¥í¥»¥¹¤ÎÆ°ºî¤Ëº³ºÙ¤Ê°ã¤¤¤¬ -µ¯¤³¤ë¤³¤È¤¬¤¢¤ë¡£Î㤨¤Ð¡¢¥×¥í¥»¥¹¤¬ +トレースすることによってトレースされるプロセスの動作に些細な違いが +起こることがある。例えば、プロセスが .B PTRACE_ATTACH -¤Ë¤è¤Ã¤ÆÀܳ¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤¬Ää»ß¤·¤¿»þ¤Ç¤âËÜÍè¤Î¿Æ¤Ï +によって接続された場合には、そのプロセスが停止した時でも本来の親は .BR wait (2) -¤ò»È¤Ã¤ÆÄÌÃΤò¼õ¤±¤ë¤³¤È¤¬¤Ç¤­¤º¡¢¿·¤·¤¤¿Æ¤¬¸úΨ¤è¤¯ -¤³¤ÎÄÌÃΤò¿¿»÷¤ëÊýË¡¤â¤Ê¤¤¡£ +を使って通知を受けることができず、新しい親が効率よく +この通知を真似る方法もない。 .LP .\"O When the parent receives an event with .\"O .B PTRACE_EVENT_* @@ -892,22 +892,22 @@ glibc .\"O .B SIGKILL .\"O signal can be used instead to kill the child process .\"O after receiving one of these messages. -¿Æ¥×¥í¥»¥¹¤¬ +親プロセスが .B PTRACE_EVENT_* -¤¬¥»¥Ã¥È¤µ¤ì¤¿¥¤¥Ù¥ó¥È¤ò¼õ¿®¤·¤¿¾ì¹ç¡¢ -»Ò¥×¥í¥»¥¹¤ÏÄ̾ïÄ̤ê¤Î¥·¥°¥Ê¥ëÇÛÁ÷¤¬¹Ô¤ï¤ì¤ë¾õÂ֤ˤʤ¤¡£ -¤Ä¤Þ¤ê¡¢¿Æ¥×¥í¥»¥¹¤¬¡¢ -¥·¥°¥Ê¥ë¤Ë¤è¤ê +がセットされたイベントを受信した場合、 +子プロセスは通常通りのシグナル配送が行われる状態にない。 +つまり、親プロセスが、 +シグナルにより .BR ptrace (PTRACE_CONT) -¤ò¹Ô¤Ã¤¿¤ê¡¢ +を行ったり、 .BR ptrace (PTRACE_KILL) -¤ò¹Ô¤Ã¤¿¤ê¤Ç¤­¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ -¤³¤é¤é¤Î¥á¥Ã¥»¡¼¥¸¤Î¼õ¿®¸å¤Ï¡¢»Ò¥×¥í¥»¥¹¤ò½ªÎ» (kill) ¤¹¤ë¤Î¤Ë¡¢ -¥·¥°¥Ê¥ë +を行ったりできないということである。 +こららのメッセージの受信後は、子プロセスを終了 (kill) するのに、 +シグナル .B SIGKILL -¤ò»ØÄꤷ¤Æ +を指定して .BR kill (2) -¤ò¹Ô¤¦ÊýË¡¤òÂå¤ï¤ê¤Ë»ÈÍѤǤ­¤ë¡£ +を行う方法を代わりに使用できる。 .LP .\"O This page documents the way the .\"O .BR ptrace () @@ -916,13 +916,13 @@ glibc .\"O In any case, use of .\"O .BR ptrace () .\"O is highly OS- and architecture-specific. -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Ï¸½ºß¤Î Linux ¤Ë¤ª¤±¤ë +このマニュアルは現在の Linux における .BR ptrace () -¥³¡¼¥ë¤ÎÆ°ºî¤Ë¤Ä¤¤¤Æµ­½Ò¤·¤Æ¤¤¤ë¡£Â¾¤Î UNIX ¤Ç¤Ï -¤½¤ÎÆ°ºî¤ÏÃø¤·¤¯°Û¤Ê¤ë¡£ -¤¤¤«¤Ê¤ë¾ì¹ç¤â +コールの動作について記述している。他の UNIX では +その動作は著しく異なる。 +いかなる場合も .BR ptrace () -¤ò»È¤¦¤È OS ¤ä¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ËÈó¾ï¤Ë°Í¸¤·¤¿¤â¤Î¤Ë¤Ê¤ë¡£ +を使うと OS やアーキテクチャに非常に依存したものになる。 .LP .\"O The SunOS man page describes .\"O .BR ptrace () @@ -931,15 +931,15 @@ glibc .\"O present in Solaris 2 implements a superset of .\"O .BR ptrace () .\"O functionality in a more powerful and uniform way. -SunOS ¤Î¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤Ë¤Ï +SunOS のマニュアル・ページには .BR ptrace () -¤Ï¡ÖÆÈÆäÇÉԲIJò¡×¤Èµ­½Ò¤µ¤ì¤Æ¤ª¤ê¡¢¤Þ¤µ¤·¤¯¤½¤¦¤Ç¤¢¤ë¡£ -Solaris 2 ¤Ç¤Ï proc ¥Ù¡¼¥¹¤Î -¥Ç¥Ð¥Ã¥°¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤È¤·¤Æ +は「独特で不可解」と記述されており、まさしくそうである。 +Solaris 2 では proc ベースの +デバッグのインターフェースとして .BR ptrace () -¤Î¾å°Ì¸ß´¹´Ø¿ô¤¬¼ÂÁõ¤µ¤ì¡¢¤è¤ê¶¯ÎϤǰì´ÓÀ­¤Î¤¢¤ë¤â¤Î¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ +の上位互換関数が実装され、より強力で一貫性のあるものとなっている。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O On hosts with 2.6 kernel headers, .\"O .B PTRACE_SETOPTIONS .\"O is declared @@ -951,20 +951,20 @@ Solaris 2 .\"O to .\"O .BR PTRACE_OLDSETOPTIONS , .\"O if that is defined. -¥«¡¼¥Í¥ë 2.6 ¤Î¥Ø¥Ã¥À¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¥Û¥¹¥È¤Ç¤Ï¡¢ +カーネル 2.6 のヘッダがインストールされたホストでは、 .B PTRACE_SETOPTIONS -¤Ï¥«¡¼¥Í¥ë 2.4 ¤Î¥Ø¥Ã¥À¤È¤Ï°Û¤Ê¤ëÃͤÇÀë¸À¤µ¤ì¤ë¡£ -¤³¤Î¤¿¤á¡¢¥«¡¼¥Í¥ë 2.6 ¤Î¥Ø¥Ã¥À¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï -¥«¡¼¥Í¥ë 2.4 ¤Ç¤ÏÀµ¤·¤¯Æ°ºî¤·¤Ê¤¤¡£ -¤³¤ÎÌäÂê¤Ï¡¢ +はカーネル 2.4 のヘッダとは異なる値で宣言される。 +このため、カーネル 2.6 のヘッダでコンパイルされたアプリケーションは +カーネル 2.4 では正しく動作しない。 +この問題は、 .B PTRACE_SETOPTIONS -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤¿ºÝ¤Ï¡¢ +が定義されていた際は、 .B PTRACE_SETOPTIONS -¤ò +を .B PTRACE_OLDSETOPTIONS -¤ËÄêµÁ¤·Ä¾¤¹¤³¤È¤ÇÂнè¤Ç¤­¤ë¡£ +に定義し直すことで対処できる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR gdb (1), .BR strace (1), .BR execve (2), diff --git a/draft/man2/query_module.2 b/draft/man2/query_module.2 index 0df6d712..cc1f58f3 100644 --- a/draft/man2/query_module.2 +++ b/draft/man2/query_module.2 @@ -10,11 +10,11 @@ .\" .TH QUERY_MODULE 2 2007-06-03 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O query_module \- query the kernel for various bits pertaining to modules -query_module \- ¥â¥¸¥å¡¼¥ë¤Ë´ØÏ¢¤¹¤ë³Æ¼ï¤Î¾ðÊó¤ò¥«¡¼¥Í¥ë¤ËÌ䤤¹ç¤ï¤»¤ë +query_module \- モジュールに関連する各種の情報をカーネルに問い合わせる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -22,7 +22,7 @@ query_module \- .BI " size_t " bufsize ", size_t *" ret ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR query_module () .\"O requests information from the kernel about loadable modules. .\"O The returned information is placed in the buffer pointed to by @@ -40,36 +40,36 @@ query_module \- .\"O .I name .\"O to be NULL, indicating the kernel proper. .BR query_module () -¤Ï¡¢¥í¡¼¥À¥Ö¥ë¥â¥¸¥å¡¼¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤ò¥«¡¼¥Í¥ë¤ËÌ䤤¹ç¤ï¤»¤ë¡£ -¾ðÊó¤Ï +は、ローダブルモジュールに関する情報をカーネルに問い合わせる。 +情報は .I buf -¤¬»Ø¤·¼¨¤¹¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤ÆÊÖ¤µ¤ì¤ë¡£ -¸Æ¤Ó½Ð¤·¸µ¤Ï +が指し示すバッファに格納されて返される。 +呼び出し元は .I buf -¤Î¥µ¥¤¥º¤ò +のサイズを .I bufsize -¤Ë»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -ÆÀ¤é¤ì¤ë¾ðÊó¤ÎÀµ³Î¤Ê°ÕÌ£¤È¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢ +に指定しなければならない。 +得られる情報の正確な意味とフォーマットは、 .I which -¤Ç¤É¤ÎÁàºî¤ò»ØÄꤹ¤ë¤«¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¡£ -¸½ºß¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë¥â¥¸¥å¡¼¥ë¤òÆÃÄꤹ¤ë¤¿¤á¤Ë +でどの操作を指定するかによって異なる。 +現在ロードされているモジュールを特定するために .I name -¤òɬÍפȤ¹¤ëÁàºî¤¬¤¢¤ì¤Ð¡¢ -¥«¡¼¥Í¥ë¸ÇÍ­¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹ NULL ¤ò»ØÄê¤Ç¤­¤ëÁàºî¤â¤¢¤ë¡£ +を必要とする操作があれば、 +カーネル固有であることを示す NULL を指定できる操作もある。 .\"O The following values can be specified for .\"O .IR which : .I which -¤Ë¤Ï°Ê²¼¤ÎÃͤò»ØÄê¤Ç¤­¤ë: +には以下の値を指定できる: .TP .B 0 .\"O Returns success, if the kernel supports .\"O .BR query_module (). .\"O Used to probe for availability of the system call. -¥«¡¼¥Í¥ë¤¬ +カーネルが .BR query_module () -¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¡¢À®¸ù¤òÊÖ¤¹¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ÍøÍѲÄǽ¤«¤òÄ´¤Ù¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ +をサポートしている場合、成功を返す。 +このシステムコールが利用可能かを調べるために使われる。 .TP .B QM_MODULES .\"O Returns the names of all loaded modules. @@ -77,11 +77,11 @@ query_module \- .\"O .I ret .\"O is set to the number of .\"O modules. -¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¥â¥¸¥å¡¼¥ë¤Î̾Á°¤òÊÖ¤¹¡£ -¥Ð¥Ã¥Õ¥¡¤Ë¤Ï¡¢NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎ󤬽ç¤ËÆþ¤ë¡£ -ÊÖ¤µ¤ì¤ë¥Ð¥Ã¥Õ¥¡ +ロードされている全てのモジュールの名前を返す。 +バッファには、NULL 終端された文字列が順に入る。 +返されるバッファ .I ret -¤Ë¤Ï¥â¥¸¥å¡¼¥ë¤Î¿ô¤¬ÀßÄꤵ¤ì¤ë¡£ +にはモジュールの数が設定される。 .\" ret is set on ENOSPC .TP .B QM_DEPS @@ -89,11 +89,11 @@ query_module \- .\"O The returned buffer consists of a sequence of null-terminated strings; .\"O .I ret .\"O is set to the number of modules. -»ØÄꤵ¤ì¤¿¥â¥¸¥å¡¼¥ë¤¬»ÈÍѤ·¤Æ¤¤¤ëÁ´¥â¥¸¥å¡¼¥ë¤Î̾Á°¤òÊÖ¤¹¡£ -¥Ð¥Ã¥Õ¥¡¤Ë¤Ï¡¢NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎ󤬽ç¤ËÆþ¤ë¡£ -ÊÖ¤µ¤ì¤ë¥Ð¥Ã¥Õ¥¡ +指定されたモジュールが使用している全モジュールの名前を返す。 +バッファには、NULL 終端された文字列が順に入る。 +返されるバッファ .I ret -¤Ë¤Ï¥â¥¸¥å¡¼¥ë¤Î¿ô¤¬ÀßÄꤵ¤ì¤ë¡£ +にはモジュールの数が設定される。 .\" ret is set on ENOSPC .TP .B QM_REFS @@ -103,24 +103,24 @@ query_module \- .\"O The returned buffer consists of a sequence of null-terminated strings; .\"O .I ret .\"O is set to the number of modules. -»ØÄꤵ¤ì¤¿¥â¥¸¥å¡¼¥ë¤ò»ÈÍѤ·¤Æ¤¤¤ëÁ´¥â¥¸¥å¡¼¥ë¤Î̾Á°¤òÊÖ¤¹¡£ -¤³¤ì¤Ï +指定されたモジュールを使用している全モジュールの名前を返す。 +これは .B QM_DEPS -¤ÈµÕ¤Îµ¡Ç½¤Ç¤¢¤ë¡£ -¥Ð¥Ã¥Õ¥¡¤Ë¤Ï¡¢NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎ󤬽ç¤ËÆþ¤ë¡£ -ÊÖ¤µ¤ì¤ë¥Ð¥Ã¥Õ¥¡ +と逆の機能である。 +バッファには、NULL 終端された文字列が順に入る。 +返されるバッファ .I ret -¤Ë¤Ï¥â¥¸¥å¡¼¥ë¤Î¿ô¤¬ÀßÄꤵ¤ì¤ë¡£ +にはモジュールの数が設定される。 .\" ret is set on ENOSPC .TP .B QM_SYMBOLS .\"O Returns the symbols and values exported by the kernel or the indicated .\"O module. .\"O The returned buffer is an array of structures of the following form -¥«¡¼¥Í¥ë¤Þ¤¿¤Ï»ØÄꤵ¤ì¤¿¥â¥¸¥å¡¼¥ë¤¬¥¨¥¯¥¹¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥·¥ó¥Ü¥ë¤È -ÃͤòÊÖ¤¹¡£ -¥Ð¥Ã¥Õ¥¡¤Î¥Ç¡¼¥¿¤Ï¡¢ -°Ê²¼¤Î¹½Â¤ÂΤÎÇÛÎó¤Ë NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤¬Â³¤¯·Á¤È¤Ê¤ë¡£ +カーネルまたは指定されたモジュールがエクスポートしているシンボルと +値を返す。 +バッファのデータは、 +以下の構造体の配列に NULL 終端された文字列が続く形となる。 .\" ret is set on ENOSPC .in +4n .nf @@ -140,17 +140,17 @@ struct module_symbol { .\"O .I ret .\"O is set to the number of symbols. .I name -¤ÎÃͤϡ¢ +の値は、 .I buf -¤ÎÀèƬ¤«¤é¤Îʸ»úÎó¤Þ¤Ç¤Î¥ª¥Õ¥»¥Ã¥Èʸ»ú¿ô¤Ç¤¢¤ë¡£ +の先頭からの文字列までのオフセット文字数である。 .I ret -¤Ë¤Ï¥·¥ó¥Ü¥ë¤Î¿ô¤¬ÀßÄꤵ¤ì¤ë¡£ +にはシンボルの数が設定される。 .TP .B QM_INFO .\"O Returns miscellaneous information about the indicated module. .\"O The output buffer format is: -»ØÄꤵ¤ì¤¿¥â¥¸¥å¡¼¥ë¤Ë´Ø¤¹¤ëÍÍ¡¹¤Ê¾ðÊó¤òÊÖ¤¹¡£ -½ÐÎϥХåե¡¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï°Ê²¼¤Î·Á¼°¤È¤Ê¤ë: +指定されたモジュールに関する様々な情報を返す。 +出力バッファのフォーマットは以下の形式となる: .in +4n .nf @@ -179,32 +179,32 @@ struct module_info { .\"O .I module_info .\"O structure. .I address -¤Ï¤½¤Î¥â¥¸¥å¡¼¥ë¤¬ÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë¥«¡¼¥Í¥ë¶õ´Ö¾å¤Î¥¢¥É¥ì¥¹¡¢ +はそのモジュールが配置されているカーネル空間上のアドレス、 .I size -¤Ï¤½¤Î¥â¥¸¥å¡¼¥ë¤Î¥Ð¥¤¥Èñ°Ì¤Î¥µ¥¤¥º¡¢ +はそのモジュールのバイト単位のサイズ、 .I flags -¤Ï +は .BR MOD_RUNNING , .B MOD_AUTOCLEAN -Åù¤Î¥Þ¥¹¥¯¤Ç¤¢¤ê¡¢¤½¤Î¥â¥¸¥å¡¼¥ë¤Î¸½ºß¤Î¾õÂÖ¤ò¼¨¤¹ -(¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë +等のマスクであり、そのモジュールの現在の状態を示す +(カーネルのソースファイル .I include/linux/module.h -¤ò»²¾È)¡£ +を参照)。 .I ret -¤Ë¤Ï +には .I module_info -¹½Â¤ÂΤΥµ¥¤¥º¤¬ÀßÄꤵ¤ì¤ë¡£ +構造体のサイズが設定される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned and .\"O .I errno .\"O is set appropriately. -À®¸ù¤Î¾ì¹ç 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功の場合 0 が返される。エラーの場合 \-1 が返され、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬ÀßÄꤵ¤ì¤ë¡£ +に適切な値が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O At least one of @@ -216,8 +216,8 @@ struct module_info { .IR name , .IR buf , .I ret -¤Î¾¯¤Ê¤¯¤È¤â°ì¤Ä¤¬¡¢¥×¥í¥°¥é¥à¤¬¥¢¥¯¥»¥¹¤Ç¤­¤ë -¥¢¥É¥ì¥¹¶õ´Ö¤Î³°Éô¤Ç¤¢¤Ã¤¿¡£ +の少なくとも一つが、プログラムがアクセスできる +アドレス空間の外部であった。 .TP .B EINVAL .\"O Invalid @@ -228,11 +228,11 @@ struct module_info { .\"O but this is not permitted with the specified value of .\"O .IR which . .I which -¤¬ÉÔÀµ¤Ç¤¢¤ë¡£¤¢¤ë¤¤¤Ï +が不正である。あるいは .I name -¤¬ NULL ¤À¤¬ (NULL ¤Ï "¥«¡¼¥Í¥ë" ¤ò¼¨¤¹)¡¢ +が NULL だが (NULL は "カーネル" を示す)、 .I which -¤Ç»ØÄꤵ¤ì¤¿ÃͤȤÎÁȤ߹ç¤ï¤»¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +で指定された値との組み合わせは許可されていない。 .\" Not permitted with QM_DEPS, QM_REFS, or QM_INFO. .TP .B ENOENT @@ -240,29 +240,29 @@ struct module_info { .\"O .I name .\"O exists. .I name -¤È¤¤¤¦Ì¾Á°¤Î¥â¥¸¥å¡¼¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ +という名前のモジュールが存在しない。 .TP .B ENOSPC .\"O The buffer size provided was too small. .\"O .I ret .\"O is set to the minimum size needed. -Í¿¤¨¤é¤ì¤¿¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ¤¬¾®¤µ¤¹¤®¤ë¡£ +与えられたバッファの大きさが小さすぎる。 .I ret -¤Ë¤ÏºÇ¾®¸ÂɬÍפʥХåե¡¤Î¥µ¥¤¥º¤¬ÀßÄꤵ¤ì¤ë¡£ +には最小限必要なバッファのサイズが設定される。 .TP .B ENOSYS .\"O .BR query_module () .\"O is not supported in this version of the kernel. .BR query_module () -¤Ï¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +はこのバージョンのカーネルではサポートされていない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR query_module () .\"O is Linux-specific. .BR query_module () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ +は Linux 固有である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O This system call is only present on Linux up until kernel 2.4; .\"O it was removed in Linux 2.6. .\"O .\" Removed in Linux-2.5.48 @@ -273,17 +273,17 @@ struct module_info { .\"O .IR /proc/kallsyms , .\"O and .\"O .IR /sys/modules . -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Â¸ºß¤¹¤ë¤Î¤Ï¥«¡¼¥Í¥ë 2.4 ¤Þ¤Ç¤Î Linux ¤À¤±¤Ç¤¢¤ë¡£ -Linux 2.6 ¤Ç¤Ïºï½ü¤µ¤ì¤¿¡£ +このシステムコールが存在するのはカーネル 2.4 までの Linux だけである。 +Linux 2.6 では削除された。 .\" Removed in Linux 2.5.48 .BR query_module () -¤ÇÆÀ¤é¤ì¤¿¾ðÊó¤Î¤¤¤¯¤Ä¤«¤Ï¡¢ +で得られた情報のいくつかは、 .IR /proc/modules , .IR /proc/kallsyms , .I /sys/modules -¤«¤é¼èÆÀ¤Ç¤­¤ë¡£ +から取得できる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR create_module (2), .BR delete_module (2), .BR get_kernel_syms (2), diff --git a/draft/man2/quotactl.2 b/draft/man2/quotactl.2 index 7a64a996..b260ec88 100644 --- a/draft/man2/quotactl.2 +++ b/draft/man2/quotactl.2 @@ -88,11 +88,11 @@ .\" .TH QUOTACTL 2 2007-06-01 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O quotactl \- manipulate disk quota -quotactl \- ¥Ç¥£¥¹¥¯ quota ¤òÁàºî¤¹¤ë +quotactl \- ディスク quota を操作する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .br @@ -102,7 +102,7 @@ quotactl \- ", caddr_t " addr ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The quota system defines for each user and/or group a soft limit .\"O and a hard limit bounding the amount of disk space that can be .\"O used on a given file system. @@ -111,14 +111,14 @@ quotactl \- .\"O Moreover, .\"O the user cannot be above the soft limit for more than one week (by default) .\"O at a time: after this week the soft limit counts as hard limit. -quota ¥·¥¹¥Æ¥à¤Ï¡¢³Æ¡¹¤Î¥æ¡¼¥¶µÚ¤Ó/¤Þ¤¿¤Ï¥°¥ë¡¼¥×¤ËÂФ·¤Æ¡¢ -¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥ÈµÚ¤Ó¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È¤òÄê¤á¤ë¡£¤³¤ì¤Ï¤¢¤ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ç -»ÈÍѤ¹¤ë»ö¤¬½ÐÍè¤ë¥Ç¥£¥¹¥¯ÍÆÎ̤òÀ©¸Â¤¹¤ë¡£ -¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È¤ÏĶ²á¤¹¤ë¤³¤È¤Ï½ÐÍè¤Ê¤¤¡£ -¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤ÏĶ²á¤¹¤ë»ö¤¬½ÐÍè¤ë¤¬¡¢·Ù¹ð¤¬È¯¤»¤é¤ì¤ë¡£ -¹¹¤Ë¡¢(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï) °ì½µ´Ö°Ê¾å¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤òĶ²á¤·¤¿¤Þ¤Þ¤Ë -¤·¤Æ¤ª¤¯»ö¤Ï¤Ç¤­¤Ê¤¤: °ì½µ´Ö·Ð²á¤·¤¿¸å¤Ï¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È¤òĶ²á¤·¤¿¤È -¤ß¤Ê¤µ¤ì¤ë¡£ +quota システムは、各々のユーザ及び/またはグループに対して、 +ソフト・リミット及びハード・リミットを定める。これはあるファイル・システムで +使用する事が出来るディスク容量を制限する。 +ハード・リミットは超過することは出来ない。 +ソフト・リミットは超過する事が出来るが、警告が発せられる。 +更に、(デフォルトでは) 一週間以上ソフト・リミットを超過したままに +しておく事はできない: 一週間経過した後はハード・リミットを超過したと +みなされる。 .\"O The .\"O .BR quotactl () @@ -136,47 +136,47 @@ quota .\"O .I subcmd .\"O is described below. .BR quotactl () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¤³¤ì¤é¤Î quota ¤ËÂФ¹¤ëÁàºî¤ò¹Ô¤Ê¤¦¡£ -ºÇ½é¤Î°ú¤­¿ô¤Ï +システムコールはこれらの quota に対する操作を行なう。 +最初の引き数は .BI QCMD( subcmd , type ) -¤È¤¤¤¦·Á¼°¤Ç¤¢¤ë¡£ +という形式である。 .I type -¤Ë¤Ï¡¢¥æ¡¼¥¶¡¼ quota ¤Ë¤Ä¤¤¤Æ¤Ï +には、ユーザー quota については .B USRQUOTA -¤ò¡¢¥°¥ë¡¼¥× quota ¤Ë¤Ä¤¤¤Æ¤Ï +を、グループ quota については .B GRPQUOTA -¤ò»ØÄꤹ¤ë¡£ +を指定する。 .I subcmd -¤Ï°Ê²¼¤ÇÀâÌÀ¤¹¤ë¡£ +は以下で説明する。 .\"O The second argument .\"O .I special .\"O is the block special device these quota apply to. .\"O It must be mounted. -ÆóÈÖÌܤΰú¤­¿ô +二番目の引き数 .I special -¤Ï quota ¤òŬÍѤ¹¤ë¥Ç¥Ð¥¤¥¹¤Î¥Ö¥í¥Ã¥¯¡¦¥¹¥Ú¥·¥ã¥ë¡¦¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ -¤½¤Î¥Ç¥Ð¥¤¥¹¤Ï¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +は quota を適用するデバイスのブロック・スペシャル・ファイルである。 +そのデバイスはマウントされていなくてはならない。 .\"O The third argument .\"O .I id .\"O is the user or group ID these quota apply to (when relevant). -»°ÈÖÌܤΰú¤­¿ô +三番目の引き数 .I id -¤Ë¤Ï¡¢(ɬÍפʾì¹ç¤Ë) quota ¤òŬÍѤ¹¤ë¥æ¡¼¥¶¡¼¤â¤·¤¯¤Ï¥°¥ë¡¼¥×¤Î ID ¤ò»ØÄꤹ¤ë¡£ +には、(必要な場合に) quota を適用するユーザーもしくはグループの ID を指定する。 .\"O The fourth argument .\"O .I addr .\"O is the address of a data structure, depending on the command. -»ÍÈÖÌܤΰú¤­¿ô +四番目の引き数 .I addr -¤Ë¤Ï¡¢¥³¥Þ¥ó¥É¤´¤È¤Ë°Û¤Ã¤¿¥Ç¡¼¥¿¹½Â¤ÂΤΥ¢¥É¥ì¥¹¤ò»ØÄꤹ¤ë¡£ +には、コマンドごとに異ったデータ構造体のアドレスを指定する。 .\"O The .\"O .I subcmd .\"O is one of .I subcmd -¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë +は以下のいずれかである .TP 1.1i .B Q_QUOTAON .\"O Enable quota. @@ -184,14 +184,14 @@ quota .\"O .I addr .\"O argument is the pathname of the file containing .\"O the quota for the file system. -quota ¤òÍ­¸ú¤Ë¤¹¤ë¡£ +quota を有効にする。 .I addr -°ú¤­¿ô¤Ë¤Ï¡¢¤½¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î quota ¤¬µ­Ï¿¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Î -¥Ñ¥¹Ì¾¤ò»ØÄꤹ¤ë¡£ +引き数には、そのファイル・システムの quota が記録されているファイルの +パス名を指定する。 .TP .B Q_QUOTAOFF .\"O Disable quota. -quota ¤ò̵¸ú¤Ë¤¹¤ë¡£ +quota を無効にする。 .TP .B Q_GETQUOTA .\"O Get limits and current usage of disk space. @@ -199,41 +199,41 @@ quota .\"O .I addr .\"O argument is a pointer to a dqblk structure (defined in .\"O .IR ). -¥Ç¥£¥¹¥¯»ÈÍÑÎ̤ÎÀ©¸ÂÃͤȸ½ºß¤Î»ÈÍÑÎ̤òÆÀ¤ë¡£ +ディスク使用量の制限値と現在の使用量を得る。 .I addr -°ú¤­¿ô¤Ï +引き数は .RI ( -¤ÇÄêµÁ¤µ¤ì¤¿) dqblk ¹½Â¤ÂΤò»Ø¤¹¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +で定義された) dqblk 構造体を指すポインタである。 .TP .B Q_SETQUOTA .\"O Set limits and current usage; .\"O .I addr .\"O is as before. -À©¸ÂÃͤȸ½ºß¤Î»ÈÍÑÎ̤òÀßÄꤹ¤ë: +制限値と現在の使用量を設定する: .I addr -¤ÏƱ¾å¡£ +は同上。 .TP .B Q_SETQLIM .\"O Set limits; .\"O .I addr .\"O is as before. -À©¸ÂÃͤòÀßÄꤹ¤ë; +制限値を設定する; .I addr -¤ÏƱ¾å¡£ +は同上。 .TP .B Q_SETUSE .\"O Set usage. -»ÈÍÑÎ̤òÀßÄꤹ¤ë¡£ +使用量を設定する。 .TP .B Q_SYNC .\"O Sync disk copy of a file system's quota. -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î quota ¥Õ¥¡¥¤¥ë¤ò¥Ç¥£¥¹¥¯¤ÈƱ´ü¤µ¤»¤ë¡£ +ファイル・システムの quota ファイルをディスクと同期させる。 .TP .B Q_GETSTATS .\"O Get collected stats. -¼ý½¸¤µ¤ì¤¿Åý·×¤ò¼èÆÀ¤¹¤ë¡£ +収集された統計を取得する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR quotactl () .\"O returns 0. @@ -241,28 +241,28 @@ quota .\"O .I errno .\"O is set appropriately. .BR quotactl () -¤Ï¡¢À®¸ù»þ¤Ë¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼»þ¤Ï¡¢\-1 ¤òÊÖ¤¹¤È¤È¤â¤Ë¡¢ +は、成功時には 0 を返す。エラー時は、\-1 を返すとともに、 .I errno -¤¬Å¬ÀÚ¤ÊÃͤËÀßÄꤵ¤ì¤ë¡£ +が適切な値に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP 0.9i .B EACCES .\"O The quota file is not an ordinary file. -quota ¥Õ¥¡¥¤¥ë¤¬ÉáÄ̤Υե¡¥¤¥ë¤Ç¤Ï¤Ê¤¤¡£ +quota ファイルが普通のファイルではない。 .TP .B EBUSY .\"O .B Q_QUOTAON .\"O was asked, but quotas were enabled already. .B Q_QUOTAON -¤ÎÍ׵᤬¤Ê¤µ¤ì¤¿¤¬¡¢quota(s) ¤Ï´û¤ËÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +の要求がなされたが、quota(s) は既に有効になっている。 .TP .B EFAULT .\"O Bad .\"O .I addr .\"O value. .I addr -¤ÎÃͤ˸í¤ê¤¬¤¢¤ë¡£ +の値に誤りがある。 .TP .B EINVAL .\"O .I type @@ -271,33 +271,33 @@ quota .\"O .I special .\"O could not be found. .I type -¤¬´ûÃΤΠquota ¤Î·Á¼°¤Ç¤Ï¤Ê¤¤¡£¤â¤·¤¯¤Ï¡¢ +が既知の quota の形式ではない。もしくは、 .I special -¥Ç¥Ð¥¤¥¹¤¬¸«ÉÕ¤«¤é¤Ê¤«¤Ã¤¿¡£ +デバイスが見付からなかった。 .TP .B EIO .\"O Cannot read or write the quota file. -quota ¥Õ¥¡¥¤¥ë¤Ø¤ÎÆɤ߽ñ¤­¤¬½ÐÍè¤Ê¤¤¡£ +quota ファイルへの読み書きが出来ない。 .TP .B EMFILE .\"O Too many open files: cannot open quota file. -¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤·¤¹¤®¤Æ¤¤¤ë: quota ¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó½ÐÍè¤Ê¤¤¡£ +ファイルをオープンしすぎている: quota ファイルをオープン出来ない。 .TP .B ENODEV .\"O .I special .\"O cannot be found in the mount table. .I special -¤¬¥Þ¥¦¥ó¥È¡¦¥Æ¡¼¥Ö¥ëÆâ¤Ë¸«Åö¤¿¤é¤Ê¤¤¡£ +がマウント・テーブル内に見当たらない。 .TP .B ENOPKG .\"O The kernel was compiled without quota support. -quota ¤ò»ÈÍѲĤˤ·¤Æ¥«¡¼¥Í¥ë¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¤¤Ê¤¤¡£ +quota を使用可にしてカーネルをコンパイルしていない。 .TP .B ENOTBLK .\"O .I special .\"O is not a block special device. .I special -¤¬¥Ö¥í¥Ã¥¯¡¦¥¹¥Ú¥·¥ã¥ë¡¦¥Ç¥Ð¥¤¥¹¤Ç¤Ï¤Ê¤¤¡£ +がブロック・スペシャル・デバイスではない。 .TP .B EPERM .\"O The process was not root (for the file system), and @@ -309,16 +309,16 @@ quota .\"O or .\"O .B Q_SYNC .\"O was asked. -¥×¥í¥»¥¹¤¬ (¤½¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î) root ¤Î¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢ -¤«¤Ä¥×¥í¥»¥¹¼«¿È¤Î¤â¤Î¤È¤Ï°Û¤Ê¤ë +プロセスが (そのファイル・システムの) root のものではなく、 +かつプロセス自身のものとは異なる .I id -¤ËÂФ·¤Æ +に対して .B Q_GETQUOTA -Í×µá¤ò¹Ô¤Ê¤Ã¤¿¡£ -¤â¤·¤¯¤Ï¡¢ +要求を行なった。 +もしくは、 .BR Q_GETSTATS , .B Q_SYNC -°Ê³°¤ÎÍ׵᤬¤Ê¤µ¤ì¤¿¡£ +以外の要求がなされた。 .TP .B ESRCH .\"O .B Q_GETQUOTA @@ -329,17 +329,17 @@ quota .\"O or .\"O .B Q_SETQLIM .\"O was asked for a file system that didn't have quota enabled. -quota ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ËÂФ·¤Æ +quota が有効になっていないファイル・システムに対して .BR Q_GETQUOTA , .BR Q_SETQUOTA , .BR Q_SETUSE , .B Q_SETQLIM -¤Î¤¤¤º¤ì¤«¤ÎÍ׵᤬¤Ê¤µ¤ì¤¿¡£ +のいずれかの要求がなされた。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 BSD. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR quota (1), .BR getrlimit (2), .BR setrlimit (2), diff --git a/draft/man2/read.2 b/draft/man2/read.2 index c85a9deb..14732a4d 100644 --- a/draft/man2/read.2 +++ b/draft/man2/read.2 @@ -42,30 +42,30 @@ .\" Updated 2008-02-10, Akihiro MOTOKI, LDP v2.77 .\" Updated 2009-04-13, Akihiro MOTOKI, LDP v3.20 .\" -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ -.\"WORD: buffer ¥Ð¥Ã¥Õ¥¡¡¼ -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: process group ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× -.\"WORD: backgraound ¥Ð¥Ã¥¯¥°¥é¥ó¥É -.\"WORD: orphan ¸ÉΩ -.\"WORD: open ¥ª¡¼¥×¥ó -.\"WORD: directory ¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: object ¥ª¥Ö¥¸¥§¥¯¥È +.\"WORD: descriptor ディスクリプター +.\"WORD: buffer バッファー +.\"WORD: signal シグナル +.\"WORD: process group プロセス・グループ +.\"WORD: backgraound バックグランド +.\"WORD: orphan 孤立 +.\"WORD: open オープン +.\"WORD: directory ディレクトリ +.\"WORD: object オブジェクト .\" .TH READ 2 2009-02-23 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O read \- read from a file descriptor -read \- ¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤«¤éÆɤ߹þ¤à +read \- ファイル・ディスクリプターから読み込む .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "ssize_t read(int " fd ", void *" buf ", size_t " count ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR read () .\"O attempts to read up to .\"O .I count @@ -74,13 +74,13 @@ read \- .\"O into the buffer starting at .\"O .IR buf . .BR read () -¤Ï¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ (file descriptor) +はファイル・ディスクリプター (file descriptor) .I fd -¤«¤éºÇÂç +から最大 .I count -¥Ð¥¤¥È¤ò +バイトを .I buf -¤Ç»Ï¤Þ¤ë¥Ð¥Ã¥Õ¥¡¡¼¤ØÆɤ߹þ¤â¤¦¤È¤¹¤ë¡£ +で始まるバッファーへ読み込もうとする。 .PP .\"O If .\"O .I count @@ -93,15 +93,15 @@ read \- .\"O .BR SSIZE_MAX , .\"O the result is unspecified. .I count -¤¬ 0 ¤Ê¤é¤Ð¡¢ +が 0 ならば、 .BR read () -¤Ï 0 ¤òÊÖ¤·¡¢Â¾¤Ë²¿¤âµ¯¤­¤Ê¤¤¡£ +は 0 を返し、他に何も起きない。 .I count -¤¬ +が .B SSIZE_MAX -¤è¤êÂ礭¤±¤ì¤Ð¡¢·ë²Ì¤ÏÆÃÄê¤Ç¤­¤Ê¤¤¡£ +より大きければ、結果は特定できない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, the number of bytes read is returned (zero indicates end of .\"O file), and the file position is advanced by this number. .\"O It is not an error if this number is smaller than the number of bytes @@ -110,23 +110,23 @@ read \- .\"O because we are reading from a pipe, or from a terminal), or because .\"O .BR read () .\"O was interrupted by a signal. -À®¸ù¤·¤¿¾ì¹ç¡¢Æɤ߹þ¤ó¤À¥Ð¥¤¥È¿ô¤òÊÖ¤¹ (0 ¤Ï¥Õ¥¡¥¤¥ë¤Î½ª¤ê¤ò°ÕÌ£¤¹¤ë)¡£ -¥Õ¥¡¥¤¥ë°ÌÃ֤Ϥ³¤Î¿ô¤À¤±¿Ê¤á¤é¤ì¤ë¡£ -¤³¤Î¿ô¤¬Í׵ᤷ¤¿¿ô¤è¤ê¾®¤µ¤«¤Ã¤¿¤È¤·¤Æ¤â¥¨¥é¡¼¤Ç¤Ï¤Ê¤¤; -Î㤨¤Ðº£¤¹¤°¤Ë¤Ï¼ÂºÝ¤Ë¤½¤ì¤À¤±¤Î¿ô¤·¤«¤Ê¤¤¾ì¹ç (¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤Ë¶á¤¤¤Î¤«¤â -¤·¤ì¤Ê¤¤¤·¡¢¥Ñ¥¤¥× (pipe) ¤äüËö (terminal) ¤«¤éÆɤ߹þ¤ó¤Ç¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤) ¤ä +成功した場合、読み込んだバイト数を返す (0 はファイルの終りを意味する)。 +ファイル位置はこの数だけ進められる。 +この数が要求した数より小さかったとしてもエラーではない; +例えば今すぐには実際にそれだけの数しかない場合 (ファイルの最後に近いのかも +しれないし、パイプ (pipe) や端末 (terminal) から読み込んでいるかもしれない) や .BR read () -¤¬¥·¥°¥Ê¥ë (signal) ¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿¾ì¹ç¤Ë¤³¤ì¤Ïµ¯¤³¤ê¤¨¤ë¡£ +がシグナル (signal) によって割り込まれた場合にこれは起こりえる。 .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. .\"O In this case it is left unspecified whether .\"O the file position (if any) changes. -¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +エラーの場合は、\-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£¤³¤Î¾ì¹ç¤Ï¥Õ¥¡¥¤¥ë°ÌÃÖ¤¬Êѹ¹¤µ¤ì¤ë¤«¤É¤¦¤«¤Ï -ÉÔÄê¤Ç¤¢¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。この場合はファイル位置が変更されるかどうかは +不定である。 +.SH エラー .TP .B EAGAIN .\"O The file descriptor @@ -134,15 +134,15 @@ read \- .\"O refers to a file other than a socket and has been marked nonblocking .\"O .RB ( O_NONBLOCK ), .\"O and the read would block. -¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ +ファイル・ディスクリプター .I fd -¤¬¥½¥±¥Ã¥È°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤Æ¡¢ -ÈóÄä»ß (nonblocking) ¥â¡¼¥É +がソケット以外のファイルを参照していて、 +非停止 (nonblocking) モード .RB ( O_NONBLOCK ) -¤ËÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢Æɤ߹þ¤ß¤ò¹Ô¤¦¤ÈÄä»ß¤¹¤ë¾õ¶·¤Ë¤¢¤ë¡£ +に設定されており、読み込みを行うと停止する状況にある。 .TP .\"O .BR EAGAIN " or " EWOULDBLOCK -.BR EAGAIN " ¤Þ¤¿¤Ï " EWOULDBLOCK +.BR EAGAIN " または " EWOULDBLOCK .\" Actually EAGAIN on Linux .\"O The file descriptor .\"O .I fd @@ -152,35 +152,35 @@ read \- .\"O POSIX.1-2001 allows either error to be returned for this case, .\"O and does not require these constants to have the same value, .\"O so a portable application should check for both possibilities. -¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ +ファイル・ディスクリプター .I fd -¤¬¥½¥±¥Ã¥È¤ò»²¾È¤·¤Æ¤¤¤Æ¡¢ÈóÄä»ß (nonblocking) ¥â¡¼¥É +がソケットを参照していて、非停止 (nonblocking) モード .RB ( O_NONBLOCK ) -¤ËÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢Æɤ߹þ¤ß¤ò¹Ô¤¦¤ÈÄä»ß¤¹¤ë¾õ¶·¤Ë¤¢¤ë¡£ -POSIX.1-2001 ¤Ï¡¢¤³¤Î¾ì¹ç¤Ë¤É¤Á¤é¤Î¥¨¥é¡¼¤òÊÖ¤¹¤³¤È¤âǧ¤á¤Æ¤ª¤ê¡¢ -¤³¤ì¤é 2 ¤Ä¤ÎÄê¿ô¤¬Æ±¤¸Ãͤò»ý¤Ä¤³¤È¤âµá¤á¤Æ¤¤¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢Î¾Êý¤Î²ÄǽÀ­¤ò -³Îǧ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +に設定されており、読み込みを行うと停止する状況にある。 +POSIX.1-2001 は、この場合にどちらのエラーを返すことも認めており、 +これら 2 つの定数が同じ値を持つことも求めていない。 +したがって、移植性が必要なアプリケーションでは、両方の可能性を +確認すべきである。 .TP .B EBADF .\"O .I fd .\"O is not a valid file descriptor or is not open for reading. .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ç¤Ê¤¤¤«¡¢Æɤ߹þ¤ß¤Î¤¿¤á¤Ë -¥ª¡¼¥×¥ó (open) ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +が有効なファイル・ディスクリプターでないか、読み込みのために +オープン (open) されていない。 .TP .B EFAULT .\"O .I buf .\"O is outside your accessible address space. .I buf -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤Ë¤¢¤ë¡£ +がアクセス可能なアドレス空間の外にある。 .TP .B EINTR .\"O The call was interrupted by a signal before any data was read; see .\"O .BR signal (7). -²¿¤Î¥Ç¡¼¥¿¤âÆɤ߹þ¤Þ¤Ê¤¤¤¦¤Á¤Ë¥·¥°¥Ê¥ë¤Ë³ä¤ê¹þ¤Þ¤ì¤¿¡£ +何のデータも読み込まないうちにシグナルに割り込まれた。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .\"O .I fd @@ -193,16 +193,16 @@ POSIX.1-2001 .\"O .IR count , .\"O or the current file offset is not suitably aligned. .I fd -¤ÏÆɤ߹þ¤ß¤ËŬ¤·¤Æ¤¤¤Ê¤¤¥ª¥Ö¥¸¥§¥¯¥È¤ò»²¾È¤·¤Æ¤¤¤ë¡£ -¤â¤·¤¯¤Ï¡¢¥Õ¥¡¥¤¥ë¤¬ +は読み込みに適していないオブジェクトを参照している。 +もしくは、ファイルが .B O_DIRECT -¥Õ¥é¥°¤ò»ØÄꤷ¤Æ¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ +フラグを指定してオープンされているが、 .I buf -¤Ë»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¡¢ +に指定されたアドレス、 .I count -¤Ë»ØÄꤵ¤ì¤¿ÃÍ¡¢ -¸½ºß¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤Î¤¤¤º¤ì¤«¤Î -¥¢¥é¥¤¥ó¥á¥ó¥È¤¬ÉÔŬÀڤǤ¢¤ë¡£ +に指定された値、 +現在のファイルオフセットのいずれかの +アラインメントが不適切である。 .TP .B EINVAL .\"O .I fd @@ -214,14 +214,14 @@ POSIX.1-2001 .\"O .BR timerfd_create (2) .\"O for further information. .I fd -¤¬ +が .BR timerfd_create (2) -¤Î¸Æ¤Ó½Ð¤·¤ÇºîÀ®¤µ¤ì¤¿¤¬¡¢ +の呼び出しで作成されたが、 .BR read () -¤Ë´Ö°ã¤Ã¤¿¥µ¥¤¥º¤Î¥Ð¥Ã¥Õ¥¡¤¬ÅϤµ¤ì¤¿¡£ -¤µ¤é¤Ê¤ë¾ðÊó¤Ï +に間違ったサイズのバッファが渡された。 +さらなる情報は .BR timerfd_create (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .TP .B EIO .\"O I/O error. @@ -233,24 +233,24 @@ POSIX.1-2001 .\"O is orphaned. .\"O It may also occur when there is a low-level I/O error .\"O while reading from a disk or tape. -I/O ¥¨¥é¡¼¡£¤³¤ì¤ÏÎ㤨¤Ð¥×¥í¥»¥¹¤¬¥Ð¥Ã¥¯¥°¥é¥ó¥É¡¦¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Ç¡¢ -¤½¤ì¤òÀ©¸æ¤·¤Æ¤¤¤ë tty ¤«¤éÆɤ߹þ¤â¤¦¤È¤·¡¢ +I/O エラー。これは例えばプロセスがバックグランド・プロセス・グループで、 +それを制御している tty から読み込もうとし、 .B SIGTTIN -¤¬Ìµ»ë (ignore) ¤Þ¤¿¤Ï¶Ø»ß (blocking) ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤ä¡¢ -¤½¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤¬¸ÉΩ (orphan) ¤·¤Æ¤¤¤ë¾ì¹ç¤Ëµ¯¤³¤ë¡£ -¤Þ¤¿¥Ç¥£¥¹¥¯¤ä¥Æ¡¼¥×¤òÆɤó¤Ç¤¤¤ë»þ¤ËÄã¥ì¥Ù¥ë I/O ¥¨¥é¡¼ -¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¤âµ¯¤³¤ë¡£ +が無視 (ignore) または禁止 (blocking) されている場合や、 +そのプロセス・グループが孤立 (orphan) している場合に起こる。 +またディスクやテープを読んでいる時に低レベル I/O エラー +が発生した場合にも起こる。 .TP .B EISDIR .\"O .I fd .\"O refers to a directory. .I fd -¤¬¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤·¤Æ¤¤¤ë¡£ +がディレクトリを参照している。 .PP .\"O Other errors may occur, depending on the object connected to .\"O .IR fd . .I fd -¤¬Àܳ¤·¤Æ¤¤¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤è¤Ã¤Æ¤Ï¾¤Î¥¨¥é¡¼¤âµ¯¤³¤ê¤¨¤ë¡£ +が接続しているオブジェクトによっては他のエラーも起こりえる。 .\"O POSIX allows a .\"O .BR read () .\"O that is interrupted after reading some data @@ -259,20 +259,20 @@ I/O .\"O set to .\"O .BR EINTR ) .\"O or to return the number of bytes already read. -POSIX ¤Ç¤Ï¡¢ -¤¤¤¯¤é¤«¤Î¥Ç¡¼¥¿¤òÆɤó¤À¸å¤Ë³ä¤ê¹þ¤ß¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢ +POSIX では、 +いくらかのデータを読んだ後に割り込みが起こった場合、 .BR read () -¤Ï +は .RI ( errno -¤Ë +に .B EINTR -¤òÀßÄꤷ¤Æ) \-1 ¤òÊÖ¤·¤Æ¤â¤è¤¤¤·¡¢ -´û¤ËÆɤ߹þ¤ó¤À¥Ð¥¤¥È¿ô¤òÊÖ¤·¤Æ¤â¤è¤¤¡£ +を設定して) \-1 を返してもよいし、 +既に読み込んだバイト数を返してもよい。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O On NFS file systems, reading small amounts of data will only update the .\"O timestamp the first time, subsequent calls may not do so. .\"O This is caused @@ -284,15 +284,15 @@ SVr4, 4.3BSD, POSIX.1-2001. .\"O UNIX semantics can be obtained by disabling client .\"O side attribute caching, but in most situations this will substantially .\"O increase server load and decrease performance. -NFS ¤Ë¤ª¤¤¤Æ¡£¾¯Î̤Υǡ¼¥¿¤òÆɤ߹þ¤à¾ì¹ç¡¢ºÇ½é¤Î»þ¤Î¤ß¤Ë¥¿¥¤¥à -¥¹¥¿¥ó¥×¤¬¹¹¿·¤µ¤ì¡¢Â³¤¯¥³¡¼¥ë¤Ç¤Ï¹¹¿·¤µ¤ì¤Ê¤¤¤À¤í¤¦¡£ -¤³¤ì¤Ï¥¯¥é¥¤¥¢¥ó¥È¦¤Ç°À­¤Î¥­¥ã¥Ã¥·¥ó¥°¤ò¹Ô¤Ê¤¦¤¿¤á¤Ç¤¢¤ë¡£ -¤Ê¤¼¤Ê¤é¤Ð¡¢¤â¤·Á´¤Æ¤Î NFS ¥¯¥é¥¤¥¢¥ó¥È¤¬ st_atime (ºÇ½ª¥Õ¥¡¥¤¥ë¥¢¥¯¥»¥¹»þ¹ï) -¤Î¹¹¿·¤ò¥µ¡¼¥Ð¡¼¤ËÁ÷¤é¤º¡¢¥¯¥é¥¤¥¢¥ó¥È¦¤Ç¥­¥ã¥Ã¥·¥å¤òÆɤळ¤È¤ËËþ­¤·¤Æ -¤¤¤ì¤Ð¡¢¥µ¡¼¥Ð¡¼Â¦¤Ç¤Î read ¤ÏȯÀ¸¤·¤Ê¤¤¤Î¤Ç st_atime ¤Î¹¹¿·¤Ï¹Ô¤Ê¤ï¤ì¤«¤é¤À¡£ -UNIX ¤ÎÊý¼°¤Ç¤Ï¡¢¥¯¥é¥¤¥¢¥ó¥È¦¤Î°À­¤Î¥­¥ã¥Ã¥·¥ó¥°¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤Ç¡¢ -¤³¤ì¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤·¤«¤·¤Û¤È¤ó¤É¤Î¾õ¶·¤Ç¤Ï¤³¤ì¤Ï³¤¯¥µ¡¼¥Ð¡¼¤Î -Éé²Ù¤òÁý²Ã¤µ¤»¡¢¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤ÎÄã²¼¤ò¤â¤¿¤é¤¹¡£ +NFS において。少量のデータを読み込む場合、最初の時のみにタイム +スタンプが更新され、続くコールでは更新されないだろう。 +これはクライアント側で属性のキャッシングを行なうためである。 +なぜならば、もし全ての NFS クライアントが st_atime (最終ファイルアクセス時刻) +の更新をサーバーに送らず、クライアント側でキャッシュを読むことに満足して +いれば、サーバー側での read は発生しないので st_atime の更新は行なわれからだ。 +UNIX の方式では、クライアント側の属性のキャッシングを無効にすることで、 +これを得ることができる。しかしほとんどの状況ではこれは続くサーバーの +負荷を増加させ、パフォーマンスの低下をもたらす。 .PP .\"O Many file systems and disks were considered to be fast enough that the .\"O implementation of @@ -302,14 +302,14 @@ UNIX .\"O .B O_NONBLOCK .\"O may not be available on files .\"O and/or disks. -¿¤¯¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ä¥Ç¥£¥¹¥¯¤Ï +多くのファイルシステムやディスクは .B O_NONBLOCK -¤Î¼ÂÁõ¤Ï¤·¤Ê¤¯¤Æ¤âºÑ¤à¤¯¤é¤¤¤Ë½½Ê¬¤Ë¹â®¤Ç¤¢¤ë¤È¹Í¤¨¤é¤ì¤Æ¤¤¤ë¡£ -¤½¤ì¤Ç¤½¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥¹¥¯¤Ë¤Ï +の実装はしなくても済むくらいに十分に高速であると考えられている。 +それでそのようなファイルやディスクには .B O_NONBLOCK -¤ÏÍøÍѤǤ­¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ +は利用できないかもしれない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR close (2), .BR fcntl (2), .BR ioctl (2), diff --git a/draft/man2/readahead.2 b/draft/man2/readahead.2 index 8383f04a..daae4fe9 100644 --- a/draft/man2/readahead.2 +++ b/draft/man2/readahead.2 @@ -29,38 +29,38 @@ .\" all rights reserved. .\" Translated 2005-02-26, Akihiro MOTOKI .\" -.\"WORD: page cache ¥Ú¡¼¥¸¡¦¥­¥ã¥Ã¥·¥å -.\"WORD: file descriptor ¥Õ¥¡¥¤¥ëµ­½Ò»Ò +.\"WORD: page cache ページ・キャッシュ +.\"WORD: file descriptor ファイル記述子 .\" .TH READAHEAD 2 2010-09-10 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O readahead \- perform file readahead into page cache -readahead \- Á°¤â¤Ã¤Æ¥Õ¥¡¥¤¥ë¤ò¥Ú¡¼¥¸¡¦¥­¥ã¥Ã¥·¥å¤ËÆɤ߹þ¤à +readahead \- 前もってファイルをページ・キャッシュに読み込む .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "ssize_t readahead(int " fd ", off64_t " offset ", size_t " count ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR readahead () .\"O populates the page cache with data from a file so that subsequent .\"O reads from that file will not block on disk I/O. .BR readahead () -¤Ï¡¢¤³¤Î¸å¤ÎƱ¤¸¥Õ¥¡¥¤¥ë¤«¤é¤Î¥Ç¡¼¥¿Æɤ߹þ¤ß»þ¤Ë¥Ç¥£¥¹¥¯ I/O ¤Ç -Æ°ºî¤¬Ää»ß (block) ¤·¤Ê¤¤¤è¤¦¤Ë¡¢Á°¤â¤Ã¤Æ¥Õ¥¡¥¤¥ë¤ÎÆâÍƤò -¥Ú¡¼¥¸¡¦¥­¥ã¥Ã¥·¥å¤ËÆɤ߹þ¤à¡£ +は、この後の同じファイルからのデータ読み込み時にディスク I/O で +動作が停止 (block) しないように、前もってファイルの内容を +ページ・キャッシュに読み込む。 .\"O The .\"O .I fd .\"O argument is a file descriptor identifying the file which is .\"O to be read. .I fd -°ú¤­¿ô¤ÏÆɤ߹þ¤ß¤ò¹Ô¤¦¥Õ¥¡¥¤¥ë¤ò¼±Ê̤¹¤ë¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +引き数は読み込みを行うファイルを識別するファイル・ディスクリプタである。 .\"O The .\"O .I offset .\"O argument specifies the starting point from which data is to be read @@ -68,55 +68,55 @@ readahead \- .\"O .I count .\"O specifies the number of bytes to be read. .I offset -°ú¤­¿ô¤Ï¥Ç¡¼¥¿¤ÎÆɤ߹þ¤ß³«»Ï°ÌÃÖ¤ò»ØÄꤷ¡¢ +引き数はデータの読み込み開始位置を指定し、 .I count -¤ÏÆɤ߹þ¤à¥Ç¡¼¥¿¤Î¥Ð¥¤¥È¿ô¤ò»ØÄꤹ¤ë¡£ +は読み込むデータのバイト数を指定する。 .\"O I/O is performed in whole pages, so that .\"O .I offset .\"O is effectively rounded down to a page boundary .\"O and bytes are read up to the next page boundary greater than or .\"O equal to .\"O .IR "(offset+count)" . -¥Ç¥£¥¹¥¯ I/O ¤Ï¥Ú¡¼¥¸Ã±°Ì¤Ç¼Â¹Ô¤µ¤ì¤ë¤Î¤Ç¡¢ -¼ÂºÝ¤Ë¤Ï +ディスク I/O はページ単位で実行されるので、 +実際には .I offset -¤Ï¥Ú¡¼¥¸¶­³¦¤ËÀڤ겼¤²¤é¤ì¡¢Æɤ߹þ¤ß¥Ð¥¤¥È¿ô¤Ï +はページ境界に切り下げられ、読み込みバイト数は .I "(offset+count)" -¤è¤ê¾®¤µ¤¯¤Ê¤¤¼¡¤Î¥Ú¡¼¥¸¶­³¦¤Þ¤ÇÀÚ¤ê¾å¤²¤é¤ì¤ë¡£ +より小さくない次のページ境界まで切り上げられる。 .\"O .BR readahead () .\"O does not read beyond the end of the file. .\"O .BR readahead () .\"O blocks until the specified data has been read. .BR readahead () -¤Ï¥Õ¥¡¥¤¥ë¤ÎËöÈø¤ò±Û¤¨¤¿ÈϰϤޤÇÆɤ߽Ф·¤ò¹Ô¤¦¤³¤È¤Ï¤Ê¤¤¡£¤Þ¤¿¡¢ +はファイルの末尾を越えた範囲まで読み出しを行うことはない。また、 .BR readahead () -¤Ï»ØÄꤷ¤¿¥Ç¡¼¥¿¤ÎÆɤ߹þ¤ß¤¬½ª¤ï¤ë¤Þ¤ÇÄä»ß (block) ¤¹¤ë¡£ +は指定したデータの読み込みが終わるまで停止 (block) する。 .\"O The current file offset of the open file referred to by .\"O .I fd .\"O is left unchanged. .I fd -¤Ç»²¾È¤µ¤ì¤¿¥ª¡¼¥×¥óºÑ¤Î¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤Î¸½ºßÃÍ¤Ï -Êѹ¹¤µ¤ì¤Ê¤¤¡£ +で参照されたオープン済のファイルのファイルオフセットの現在値は +変更されない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR readahead () .\"O returns 0; on failure, \-1 is returned, with .\"O .I errno .\"O set to indicate the cause of the error. .BR readahead () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤òÊÖ¤·¡¢ +は成功すると 0 を返す。失敗した場合 \-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤Î¸¶°ø¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーの原因を示す値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O .I fd .\"O is not a valid file descriptor or is not open for reading. .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡¢¤Þ¤¿¤Ï -Æɤ߹þ¤ßÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +が有効なファイル・ディスクリプタでない、または +読み込み用にオープンされていない。 .TP .B EINVAL .\"O .I fd @@ -124,29 +124,29 @@ readahead \- .\"O .BR readahead () .\"O can be applied. .I fd -¤¬»²¾È¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤¬¡¢ +が参照しているファイルが、 .BR readahead () -¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Ê¤¤¥¿¥¤¥×¤Î¥Õ¥¡¥¤¥ë¤Ç¤¢¤Ã¤¿¡£ +を行うことができないタイプのファイルであった。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The .\"O .BR readahead () .\"O system call appeared in Linux 2.4.13; .\"O glibc support has been provided since version 2.3. .BR readahead () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 2.4.13 ¤ÇÅо줷¤¿¡£ -glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.3 °Ê¹ß¤Ç¹Ô¤ï¤ì¤Æ¤¤¤ë¡£ +システムコールは Linux 2.4.13 で登場した。 +glibc でのサポートは glibc バージョン 2.3 以降で行われている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The .\"O .BR readahead () .\"O system call is Linux-specific, and its use should be avoided .\"O in portable applications. .BR readahead () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò¹Íθ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï -»ÈÍѤòÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +システムコールは Linux 固有であり、移植を考慮したプログラムでは +使用を避けるべきである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR lseek (2), .BR madvise (2), .BR mmap (2), diff --git a/draft/man2/readdir.2 b/draft/man2/readdir.2 index d8d61215..5f381dcb 100644 --- a/draft/man2/readdir.2 +++ b/draft/man2/readdir.2 @@ -30,28 +30,28 @@ .\" Translated Sun Feb 23 21:06:24 JST 1997 .\" by HANATAKA Shinya .\" -.\"WORD: directory ¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: entry ¥¨¥ó¥È¥ê -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: system call ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë -.\"WORD: memory ¥á¥â¥ê -.\"WORD: inode number inode ÈÖ¹æ -.\"WORD: null ¥Ì¥ëʸ»ú +.\"WORD: directory ディレクトリ +.\"WORD: entry エントリ +.\"WORD: kernel カーネル +.\"WORD: system call システム・コール +.\"WORD: memory メモリ +.\"WORD: inode number inode 番号 +.\"WORD: null ヌル文字 .\" .TH READDIR 2 2008-10-02 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O readdir \- read directory entry -readdir \- ¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤òÆɤ߹þ¤à +readdir \- ディレクトリ・エントリを読み込む .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .sp .BI "int readdir(unsigned int " fd ", struct old_linux_dirent *" dirp "," .BI " unsigned int " count ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This is not the function you are interested in. .\"O Look at .\"O .BR readdir (3) @@ -59,14 +59,14 @@ readdir \- .\"O This page documents the bare kernel system call interface, .\"O which is superseded by .\"O .BR getdents (2). -¤³¤ì¤Ï¤¢¤Ê¤¿¤Î¶½Ì£¤ò¤â¤Ã¤Æ¤¤¤ë´Ø¿ô¤Ç¤Ï¤Ê¤¤¡£ -POSIX ½àµò¤Î C ¥é¥¤¥Ö¥é¥ê¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æ¤Ï +これはあなたの興味をもっている関数ではない。 +POSIX 準拠の C ライブラリ・インターフェースについては .BR readdir (3) -¤ò¸«¤ë¤³¤È¡£ -¤³¤Î¥Ú¡¼¥¸¤ÏÍç¤Î¥«¡¼¥Í¥ë¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æ -µ­½Ò¤·¤Æ¤¤¤ë¤¬¡¢¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï +を見ること。 +このページは裸のカーネルのシステムコール・インターフェースについて +記述しているが、このインターフェースは .BR getdents (2) -¤Ë¤è¤Ã¤Æ¼è¤Ã¤ÆÂå¤ï¤é¤ì¤¿¡£ +によって取って代わられた。 .PP .\"O .BR readdir () .\"O reads one @@ -82,23 +82,23 @@ POSIX .\"O .I old_linux_dirent .\"O structure is read. .BR readdir () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +は、ファイルディスクリプタ .I fd -¤¬»²¾È¤·¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é +が参照しているディレクトリから .I old_linux_dirent -¹½Â¤ÂΤòÆɤ߹þ¤ß¡¢ +構造体を読み込み、 .I dirp -¤Ç»Ø¤µ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤¹¤ë¡£ +で指されたバッファに格納する。 .I count -°ú¤­¿ô¤Ï(¤Û¤È¤ó¤É¤Î +引き数は(ほとんどの .I old_linux_dirent -¹½Â¤ÂΤÎÆɤ߹þ¤ß¤Ë¤ª¤¤¤Æ)̵»ë¤µ¤ì¤ë +構造体の読み込みにおいて)無視される .PP .\"O The .\"O .I old_linux_dirent .\"O structure is declared as follows: .I old_linux_dirent -¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤ë: +構造体は以下のように宣言される: .PP .in +4n .nf @@ -123,72 +123,72 @@ struct old_linux_dirent { .\"O .I d_name .\"O is a null-terminated filename. .I d_ino -¤Ï inode ÈÖ¹æ¤Ç¤¢¤ë¡£ +は inode 番号である。 .I d_off -¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤ÎºÇ½é¤«¤é¤³¤Î +はディレクトリの最初からこの .I old_linux_dirent -¤Þ¤Çµ÷Î¥¤Ç¤¢¤ë¡£ +まで距離である。 .I d_reclen -¤Ï +は .I d_name -¤ÎÂ礭¤µ¤Ç¡¢½ªÃ¼¤Î¥Ì¥ë¥Ð¥¤¥È (null byte) ¤ò´Þ¤Þ¤Ê¤¤¡£ +の大きさで、終端のヌルバイト (null byte) を含まない。 .I d_name -¤Ï¥Ì¥ë¥Ð¥¤¥È¤Ç½ª¤ï¤ë¥Õ¥¡¥¤¥ë̾¤Ç¤¢¤ë¡£ +はヌルバイトで終わるファイル名である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, 1 is returned. .\"O On end of directory, 0 is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï¡¢1 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥Ç¥£¥ì¥¯¥È¥ê¤ÎºÇ¸å¤Ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合は、1 が返される。 +ディレクトリの最後では 0 が返される。 +エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O Invalid file descriptor .\"O .IR fd . -¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ +ファイル・ディスクリプター .I fd -¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +が不正である。 .TP .B EFAULT .\"O Argument points outside the calling process's address space. -°ú¤­¿ô¤Î¥Ý¥¤¥ó¥¿¡¼¤¬¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¶õ´Ö¤Î -³°Éô¤ò»Ø¤·¤Æ¤¤¤ë¡£ +引き数のポインターが呼び出したプロセスがアクセス可能な空間の +外部を指している。 .TP .B EINVAL .\"O Result buffer is too small. -·ë²ÌÍѤΥХåե¡¡¼¤¬¾®¤µ²á¤®¤ë¡£ +結果用のバッファーが小さ過ぎる。 .TP .B ENOENT .\"O No such directory. -¤½¤Î¤è¤¦¤Ê¥Ç¥£¥ì¥¯¥È¥ê¤Ï¸ºß¤·¤Ê¤¤¡£ +そのようなディレクトリは存在しない。 .TP .B ENOTDIR .\"O File descriptor does not refer to a directory. -¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤¬¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£ +ファイル・ディスクリプターがディレクトリを参照していない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This system call is Linux-specific. -¤³¤Î¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï Linux ÆÃÍ­¤Ç¤¢¤ë¡£ +このシステム・コールは Linux 特有である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Glibc does not provide a wrapper for this system call; call it using .\"O .BR syscall (2). -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +glibc はこのシステムコールに対するラッパー関数を提供していない。 .BR syscall (2) -¤ò»È¤Ã¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¡£ +を使って呼び出すこと。 .\"O You will need to define the .\"O .I old_linux_dirent .\"O structure yourself. .I old_linux_dirent -¹½Â¤ÂΤò¼«Ê¬¼«¿È¤ÇÄêµÁ¤¹¤ëɬÍפ¬¤¢¤ë¡£ +構造体を自分自身で定義する必要がある。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getdents (2), .BR readdir (3) diff --git a/draft/man2/readlink.2 b/draft/man2/readlink.2 index ce9b4ab1..f87c6a69 100644 --- a/draft/man2/readlink.2 +++ b/draft/man2/readlink.2 @@ -42,19 +42,19 @@ .\" Updated 2006-07-19, Akihiro MOTOKI , LDP v2.36 .\" Updated 2008-08-06, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: symbolic link ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: buffer ¥Ð¥Ã¥Õ¥¡¡¼ -.\"WORD: NUL ¥Ì¥ëʸ»ú -.\"WORD: global variable ¥°¥í¡¼¥Ð¥ëÊÑ¿ô -.\"WORD: directory ¥Ç¥£¥ì¥¯¥È¥ê +.\"WORD: symbolic link シンボリック・リンク +.\"WORD: buffer バッファー +.\"WORD: NUL ヌル文字 +.\"WORD: global variable グローバル変数 +.\"WORD: directory ディレクトリ .\" .TH READLINK 2 2010-09-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O readlink \- read value of a symbolic link -readlink \- ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤ÎÃͤòÆɤà +readlink \- シンボリック・リンクの値を読む .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "ssize_t readlink(const char *" path ", char *" buf ", size_t " bufsiz ); @@ -62,9 +62,9 @@ readlink \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -75,7 +75,7 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED || _POSIX_C_SOURCE\ >=\ 200112L .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR readlink () .\"O places the contents of the symbolic link .\"O .I path @@ -84,30 +84,30 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED || _POSIX_C_SOURCE\ >=\ 200112L .\"O which has size .\"O .IR bufsiz . .BR readlink () -¤Ï +は .I path -¤ÇÍ¿¤¨¤é¤ì¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤ÎÆâÍƤò +で与えられたシンボリック・リンクの内容を .I buf -¥Ð¥Ã¥Õ¥¡¡¼¤Ø³ÊǼ¤¹¤ë¡¢ +バッファーへ格納する、 .I buf -¤Î¥µ¥¤¥º¤Ï +のサイズは .I bufsiz -¤Ç¤¢¤ë¡£ +である。 .\"O .BR readlink () .\"O does not append a null byte to .\"O .IR buf . .BR readlink () -¤Ï NULL ¥Ð¥¤¥È¤ò +は NULL バイトを .I buf -¤ËÄɲ䷤ʤ¤¡£ +に追加しない。 .\"O It will truncate the contents (to a length of .\"O .I bufsiz .\"O characters), in case the buffer is too small to hold all of the contents. -¤½¤ÎÆâÍÆÁ´¤Æ¤ò³ÊǼ¤¹¤ë¤Î¤Ë¥Ð¥Ã¥Õ¥¡¡¼¤¬¾®¤µ²á¤®¤ë¾ì¹ç¤Ï¡¢ +その内容全てを格納するのにバッファーが小さ過ぎる場合は、 .RI ( bufsiz -¥Ð¥¤¥È¤ÎŤµ¤Ë) ÆâÍƤòÀÚ¤êµÍ¤á¤ë¡£ +バイトの長さに) 内容を切り詰める。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR readlink () .\"O returns the number of bytes placed in @@ -115,36 +115,36 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED || _POSIX_C_SOURCE\ >=\ 200112L .\"O On error, \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR readlink () -¤Ï +は .I buf -¤Ë³ÊǼ¤µ¤ì¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +に格納されたバイト数を返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O Search permission is denied for a component of the path prefix. .\"O (See also .\"O .BR path_resolution (7).) -¥Ñ¥¹¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤Ë¸¡º÷µö²Ä¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤ +パスのディレクトリ部分に検索許可が与えられていない .RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È)¡£ +も参照すること)。 .TP .B EFAULT .\"O .I buf .\"O extends outside the process's allocated address space. .I buf -¤¬¥×¥í¥»¥¹¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がプロセスに割り当てられたアドレス空間の外を指している。 .TP .B EINVAL .\"O .I bufsiz .\"O is not positive. .I bufsiz -¤¬Àµ¤Ç¤Ê¤¤¡£ +が正でない。 .\" At the glibc level, bufsiz is unsigned, so this error can only occur .\" if bufsiz==0. However, the in the kernel syscall, bufsiz is signed, .\" and this error can also occur if bufsiz < 0. @@ -153,42 +153,42 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED || _POSIX_C_SOURCE\ >=\ 200112L .TP .B EINVAL .\"O The named file is not a symbolic link. -»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ç¤Ê¤¤¡£ +指定したファイルがシンボリック・リンクでない。 .TP .B EIO .\"O An I/O error occurred while reading from the file system. -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ÎÆɤ߹þ¤ßÃæ¤Ë I/O ¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£ +ファイル・システムの読み込み中に I/O エラーが起こった。 .TP .B ELOOP .\"O Too many symbolic links were encountered in translating the pathname. -¥Ñ¥¹Ì¾¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿¤¹¤®¤ë¡£ +パス名にシンボリック・リンクが多すぎる。 .TP .B ENAMETOOLONG .\"O A pathname, or a component of a pathname, was too long. -¥Ñ¥¹Ì¾¤«¥Ñ¥¹Ì¾¤Î°ìÉôʬ¤¬Ä¹²á¤®¤ë¡£ +パス名かパス名の一部分が長過ぎる。 .TP .B ENOENT .\"O The named file does not exist. -¤½¤Î̾Á°¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ +その名前のファイルが存在しない。 .TP .B ENOMEM .\"O Insufficient kernel memory was available. -¥«¡¼¥Í¥ë¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +カーネルに十分なメモリがない。 .TP .B ENOTDIR .\"O A component of the path prefix is not a directory. -¥Ñ¥¹¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +パスのディレクトリ部分がディレクトリでない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O 4.4BSD .\"O .RB ( readlink () .\"O first appeared in 4.2BSD), .\"O POSIX.1-2001. 4.4BSD .RB ( readlink () -¤Ï 4.2BSD ¤Ç½é¤á¤ÆÅо줷¤¿), POSIX.1-2001. +は 4.2BSD で初めて登場した), POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O In versions of glibc up to and including glibc 2.4, the return type of .\"O .BR readlink () .\"O was declared as @@ -196,17 +196,17 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED || _POSIX_C_SOURCE\ >=\ 200112L .\"O Nowadays, the return type is declared as .\"O .IR ssize_t , .\"O as (newly) required in POSIX.1-2001. -¥Ð¡¼¥¸¥ç¥ó 2.4 °ÊÁ°¤Î glibc (¥Ð¡¼¥¸¥ç¥ó 2.4 ¤ò´Þ¤à) ¤Ç¤Ï¡¢ +バージョン 2.4 以前の glibc (バージョン 2.4 を含む) では、 .BR readlink () -¤ÎÊÖ¤êÃͤη¿¤Ï +の返り値の型は .I int -¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤¿¡£¸½ºß¤Ç¤Ï¡¢ÊÖ¤êÃͤη¿¤Ï +で宣言されていた。現在では、返り値の型は .I ssize_t -¤Ç¤¢¤ë (ÊÖ¤êÃÍ +である (返り値 .I ssize_t -¤Ï POSIX.1-2001 ¤Ç (¿·¤¿¤Ë) ɬ¿Ü¤È¤Ê¤Ã¤¿)¡£ +は POSIX.1-2001 で (新たに) 必須となった)。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR lstat (2), .BR readlinkat (2), .BR stat (2), diff --git a/draft/man2/readlinkat.2 b/draft/man2/readlinkat.2 index 11797980..aaffb0f1 100644 --- a/draft/man2/readlinkat.2 +++ b/draft/man2/readlinkat.2 @@ -28,16 +28,16 @@ .\" .TH READLINKAT 2 2009-12-13 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O readlinkat \- read value of a symbolic link relative to .\"O a directory file descriptor -readlinkat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÁêÂÐŪ¤Ê°ÌÃ֤ˤ¢¤ë -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ÎÃͤòÆɤà +readlinkat \- ディレクトリファイルディスクリプタから相対的な位置にある +シンボリックリンクの値を読む .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .B #include /* Definition of AT_* constants */ -.B #include /* AT_* Äê¿ô¤ÎÄêµÁ */ +.B #include /* AT_* 定数の定義 */ .B #include .sp .BI "int readlinkat(int " dirfd ", const char *" pathname , @@ -47,9 +47,9 @@ readlinkat \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR readlinkat (): @@ -58,26 +58,26 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR readlinkat () .\"O system call operates in exactly the same way as .\"O .BR readlink (2), .\"O except for the differences described in this manual page. .BR readlinkat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë°ã¤¤¤¬¤¢¤ë°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明している違いがある以外は、 .BR readlink (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .\"O If the pathname given in .\"O .I pathname @@ -89,13 +89,13 @@ _ATFILE_SOURCE .\"O .BR readlink (2) .\"O for a relative pathname). .I pathname -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パスである場合、 +ファイルディスクリプタ .I dirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( readlink (2) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスの +カレントワーキングディレクトリからの相対パスとなる)。 .\"O If .\"O .I pathname @@ -109,16 +109,16 @@ _ATFILE_SOURCE .\"O directory of the calling process (like .\"O .BR readlink (2)). .I pathname -¤¬ÁêÂХѥ¹¤Ç¤¢¤ê¡¢¤«¤Ä +が相対パスであり、かつ .I dirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I pathname -¤Ï +は .RB ( readlink (2) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .\"O If .\"O .I pathname @@ -126,46 +126,46 @@ _ATFILE_SOURCE .\"O .I dirfd .\"O is ignored. .I pathname -¤¬ÀäÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ +が絶対パスである場合、 .I dirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR readlinkat () .\"O returns the number of bytes placed in .\"O .IR buf . -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR readlinkat () -¤Ï +は .I buf -¤Ë³ÊǼ¤µ¤ì¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ +に格納されたバイト数を返す。 .\"O On error, \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +エラーの場合、\-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ +にはエラーを示す値が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O The same errors that occur for .\"O .BR readlink (2) .\"O can also occur for .\"O .BR readlinkat (). .BR readlink (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR readlinkat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .\"O The following additional errors can occur for .\"O .BR readlinkat (): .BR readlinkat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .\"O .I dirfd .\"O is not a valid file descriptor. .I dirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B ENOTDIR .\"O .I pathname @@ -173,30 +173,30 @@ _ATFILE_SOURCE .\"O .I dirfd .\"O is a file descriptor referring to a file other than a directory. .I pathname -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I dirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR readlinkat () .\"O was added to Linux in kernel 2.6.16. .BR readlinkat () -¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ +は Linux カーネル 2.6.16 で追加された。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O See .\"O .BR openat (2) .\"O for an explanation of the need for .\"O .BR readlinkat (). .BR readlinkat () -¤¬É¬ÍפÊÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が必要な理由については、 .BR openat (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR openat (2), .BR readlink (2), .BR path_resolution (7) diff --git a/draft/man2/readv.2 b/draft/man2/readv.2 index 761b6f04..cbc0e173 100644 --- a/draft/man2/readv.2 +++ b/draft/man2/readv.2 @@ -40,17 +40,17 @@ .\" Updated 2005-10-07, Akihiro MOTOKI .\" Updated 2007-06-01, Akihiro MOTOKI, LDP v2.50 .\" -.\"WORD: vector ¥Ù¥¯¥¿ (vector) -.\"WORD: file descriptor ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: buffer ¥Ð¥Ã¥Õ¥¡ +.\"WORD: vector ベクタ (vector) +.\"WORD: file descriptor ファイルディスクリプタ +.\"WORD: buffer バッファ .\" .TH READV 2 2002-10-17 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O readv, writev \- read or write data into multiple buffers -.SH ̾Á° -readv, writev \- Ê£¿ô¤Î¥Ð¥Ã¥Õ¥¡¤Ø¤ÎÆɤ߽ñ¤­¤ò¹Ô¤Ê¤¦ +.SH 名前 +readv, writev \- 複数のバッファへの読み書きを行なう .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -59,7 +59,7 @@ readv, writev \- Ê£ .BI "ssize_t writev(int " fd ", const struct iovec *" iov ", int " iovcnt ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR readv () .\"O function reads @@ -70,14 +70,14 @@ readv, writev \- Ê£ .\"O .I iov .\"O ("scatter input"). .BR readv () -´Ø¿ô¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +関数は、ファイルディスクリプタ .I fd -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¤«¤é¡¢ +に関連付けられたファイルから、 .I iovcnt -¸Ä¤Î¥Ð¥Ã¥Õ¥¡Ê¬¤Î¥Ç¡¼¥¿¤òÆɤ߹þ¤ß¡¢ +個のバッファ分のデータを読み込み、 .I iov -¤Ç»ØÄꤵ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤¹¤ë -("scatter input";¡Ö¤Ð¤é¤Þ¤­ÆþÎÏ¡×)¡£ +で指定されたバッファに格納する +("scatter input";「ばらまき入力」)。 .PP .\"O The .\"O .BR writev () @@ -89,15 +89,15 @@ readv, writev \- Ê£ .\"O .I fd .\"O ("gather output"). .BR writev () -´Ø¿ô¤Ï¡¢ +関数は、 .I iov -¤Ç»ØÄꤵ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤«¤éºÇÂç +で指定されたバッファから最大 .I iovcnt -¸Ä¤Î¥Ð¥Ã¥Õ¥¡Ê¬¤Î¥Ç¡¼¥¿¤ò¼è¤ê½Ð¤·¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +個のバッファ分のデータを取り出し、 +ファイルディスクリプタ .I fd -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤à -("gather output";¡Ö¤«¤­½¸¤á½ÐÎÏ¡×)¡£ +に関連付けられたファイルに書き込む +("gather output";「かき集め出力」)。 .PP .\"O The pointer .\"O .I iov @@ -107,15 +107,15 @@ readv, writev \- Ê£ .\"O defined in .\"O .I .\"O as: -¥Ý¥¤¥ó¥¿ +ポインタ .I iov -¤Ï +は .I iovec -¹½Â¤ÂΤÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +構造体の配列へのポインタである。 .I iovec -¹½Â¤ÂÎ¤Ï +構造体は .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +で以下のように定義されている: .PP .br .in +4n @@ -133,9 +133,9 @@ struct iovec { .\"O .BR read (2) .\"O except that multiple buffers are filled. .BR readv () -´Ø¿ô¤Ï¡¢Ê£¿ô¤Î¥Ð¥Ã¥Õ¥¡¤Ë¥Ç¡¼¥¿¤òÆɤ߹þ¤àÅÀ¤ò½ü¤¤¤Æ +関数は、複数のバッファにデータを読み込む点を除いて .BR read (2) -¤ÈÁ´¤¯Æ±ÍͤÎÆ°ºî¤ò¹Ô¤¦¡£ +と全く同様の動作を行う。 .PP .\"O The .\"O .BR writev () @@ -143,9 +143,9 @@ struct iovec { .\"O .BR write (2) .\"O except that multiple buffers are written out. .BR writev () -´Ø¿ô¤Ï¡¢Ê£¿ô¤Î¥Ð¥Ã¥Õ¥¡¤Î¥Ç¡¼¥¿¤ò½ñ¤­½Ð¤¹ÅÀ°Ê³°¤Ï +関数は、複数のバッファのデータを書き出す点以外は .BR write (2) -¤ÈÁ´¤¯Æ±ÍͤÎÆ°ºî¤ò¹Ô¤¦¡£ +と全く同様の動作を行う。 .PP .\"O Buffers are processed in array order. .\"O This means that @@ -165,23 +165,23 @@ struct iovec { .\"O before proceeding to .\"O .IR iov [1], .\"O and so on. -¥Ð¥Ã¥Õ¥¡¤ÏÇÛÎó¤Î½ç½ø¤Ç½èÍý¤µ¤ì¤ë¡£¤³¤ì¤Ï¡¢ +バッファは配列の順序で処理される。これは、 .BR readv () -¤¬ +が .IR iov [0] -¤¬´°Á´¤Ë°ìÇդˤʤë¤Þ¤Ç¥Ç¡¼¥¿¤òµÍ¤á¤Æ¤«¤é¡¢ +が完全に一杯になるまでデータを詰めてから、 .IR iov [1] -¤Ê¤É¤Ë¿Ê¤à¤³¤È¤ò°ÕÌ£¤¹¤ë -(¥Ç¡¼¥¿¤¬½½Ê¬¤Ê¤¤¾ì¹ç¤Ï¡¢ +などに進むことを意味する +(データが十分ない場合は、 .I iov -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Î¤¤¤º¤ì¤â°ìÇդˤʤé¤Ê¤¤)¡£ -ƱÍͤˡ¢ +が指すバッファのいずれも一杯にならない)。 +同様に、 .BR writev () -¤Ï +は .IR iov [0] -¤ÎÆâÍƤòÁ´Éô½ñ¤­½Ð¤·¤Æ¤«¤é +の内容を全部書き出してから .IR iov [1] -¤Ê¤É¤Ë¿Ê¤à¡£ +などに進む。 .PP .\"O The data transfers performed by .\"O .BR readv () @@ -201,47 +201,47 @@ struct iovec { .\"O (see .\"O .BR open (2)). .BR readv () -¤È +と .BR writev () -¤Ë¤è¤ë¥Ç¡¼¥¿Å¾Á÷¤Ï atomic ¤Ë¹Ô¤ï¤ì¤ë¡£¤Ä¤Þ¤ê¡¢ +によるデータ転送は atomic に行われる。つまり、 .BR writev () -¤Ë¤è¤ë¥Ç¡¼¥¿½ñ¤­¹þ¤ß¤Ï°ì¤Ä¤Î¥Ö¥í¥Ã¥¯¤È¤·¤Æ¹Ô¤ï¤ì¡¢Â¾¤Î¥×¥í¥»¥¹¤Î -write ¤Ë¤è¤ë½ñ¤­¹þ¤ß¤Èº®¤¶¤ê¹ç¤¦¤³¤È¤Ï¤Ê¤¤ -(Îã³°¤Ë´Ø¤·¤Æ¤Ï +によるデータ書き込みは一つのブロックとして行われ、他のプロセスの +write による書き込みと混ざり合うことはない +(例外に関しては .BR pipe (7) -¤ò»²¾È¤Î¤³¤È)¡£Æ±Íͤˡ¢ +を参照のこと)。同様に、 .BR readv () -¤Ï¥Õ¥¡¥¤¥ë¤«¤éϢ³¤¹¤ë¥Ç¡¼¥¿¥Ö¥í¥Ã¥¯¤¬Æɤ߽Ф¹¤³¤È¤¬Êݾڤµ¤ì¡¢ -Ʊ¤¸¥Õ¥¡¥¤¥ëµ­½Ò (file description; +はファイルから連続するデータブロックが読み出すことが保証され、 +同じファイル記述 (file description; .BR open (2) -»²¾È) ¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò»ý¤Ä¾¤Î¥¹¥ì¥Ã¥É¤ä¥×¥í¥»¥¹¤¬ -¼Â¹Ô¤·¤¿ read Áàºî¤Î±Æ¶Á¤ò¼õ¤±¤ë¤³¤È¤Ï¤Ê¤¤¡£ +参照) を参照するファイルディスクリプタを持つ他のスレッドやプロセスが +実行した read 操作の影響を受けることはない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, the .\"O .BR readv () .\"O function returns the number of bytes read; the .\"O .BR writev () .\"O function returns the number of bytes written. .\"O On error, \-1 is returned, and \fIerrno\fP is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR readv () -´Ø¿ô¤ÏÆɤ߹þ¤ó¤À¥Ð¥¤¥È¿ô¤òÊÖ¤·¡¢ +関数は読み込んだバイト数を返し、 .BR writev () -´Ø¿ô¤Ï½ñ¤­¹þ¤ó¤À¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤·¡¢\fIerrno\fP ¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +関数は書き込んだバイト数を返す。 +エラーの場合 \-1 を返し、\fIerrno\fP を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O The errors are as given for .\"O .BR read (2) .\"O and .\"O .BR write (2). .BR read (2) -¤ä +や .BR write (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +と同じエラーが定義されている。 .\"O Additionally the following error is defined: -¤µ¤é¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +さらに以下のエラーが定義されている: .TP .B EINVAL .\"O The sum of the @@ -252,12 +252,12 @@ write .\"O Or, the vector count \fIiovcnt\fP is less than zero or greater than the .\"O permitted maximum. .I iov_len -¤Î¹ç·×¤¬ +の合計が .I ssize_t -¤ÎÈϰϤò¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤¿¡£¤â¤·¤¯¤Ï¡¢ -¥Ù¥¯¥¿¿ô \fIiovcnt\fP ¤¬ 0 ¤è¤ê¾®¤µ¤¤¤«µö²Ä¤µ¤ì¤¿ºÇÂçÃͤè¤ê¤âÂ礭¤«¤Ã¤¿¡£ +の範囲をオーバーフローした。もしくは、 +ベクタ数 \fIiovcnt\fP が 0 より小さいか許可された最大値よりも大きかった。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O 4.4BSD (the .\"O .BR readv () .\"O and @@ -269,17 +269,17 @@ write .\"O .\" (Says release.libc.) 4.4BSD .RB ( readv () -¤È +と .BR writev () -´Ø¿ô¤Ï 4.2BSD ¤ÇºÇ½é¤Ë¸½¤ï¤ì¤¿)¡¢POSIX.1-2001¡£ -Linux libc5 ¤Ç¤Ï \fIiovcnt\fP °ú¤­¿ô¤Î·¿¤È¤·¤Æ \fIsize_t\fP ¤ò¡¢ -¤³¤ì¤é¤Î´Ø¿ô¤ÎÊÖ¤êÃͤȤ·¤Æ \fIint\fP ¤ò»ÈÍѤ·¤Æ¤¤¤¿¡£ -.\" readv/writev ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 1.3.40 °ÊÁ°¤Ï¥Ð¥°¤À¤é¤±¤Ç¤¢¤Ã¤¿ -.\" (¤È release.libc ¤Ë½ñ¤«¤ì¤Æ¤¤¤ë)¡£ +関数は 4.2BSD で最初に現われた)、POSIX.1-2001。 +Linux libc5 では \fIiovcnt\fP 引き数の型として \fIsize_t\fP を、 +これらの関数の返り値として \fIint\fP を使用していた。 +.\" readv/writev システムコールは Linux 1.3.40 以前はバグだらけであった +.\" (と release.libc に書かれている)。 .\"O .SH NOTES .\"O .SS Linux Notes -.SH Ãí°Õ -.SS "Linux ¤Ç¤ÎÃí°Õ" +.SH 注意 +.SS "Linux での注意" .\"O POSIX.1-2001 allows an implementation to place a limit on .\"O the number of items that can be passed in .\"O .IR iov . @@ -291,18 +291,18 @@ Linux libc5 .\"O .IR sysconf(_SC_IOV_MAX) . .\"O On Linux, the limit advertised by these mechanisms is 1024, .\"O which is the true kernel limit. -POSIX.1-2001 ¤Ç¤Ï¡¢ +POSIX.1-2001 では、 .I iov -¤ÇÅϤ¹¤³¤È¤¬¤Ç¤­¤ëÍ×ÁÇ¿ô¤Ë¾å¸Â¤òÀߤ±¤ë¼ÂÁõ¤¬Ç§¤á¤é¤ì¤Æ¤¤¤ë¡£ -¼ÂÁõ¤Ï¡¢ +で渡すことができる要素数に上限を設ける実装が認められている。 +実装は、 .I -¤Î +の .B IOV_MAX -¤òÄêµÁ¤¹¤ë¤³¤È¤ä¡¢¼Â¹Ô»þ¤Ë +を定義することや、実行時に .I sysconf(_SC_IOV_MAX) -¤ÎÊÖ¤êÃÍ·Ðͳ¤Ç¡¢¤³¤Î¾å¸Â¤ò¹­¹ð¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -Linux ¤Ç¤Ï¡¢¤³¤Î»ÅÁȤߤˤè¤ê¹­¹ð¤µ¤ì¤ë¾å¸Â¤Ï 1024 ¤Ç¤¢¤ê¡¢ -¤³¤ÎÃͤϥ«¡¼¥Í¥ë¤Ç¤Î¾å¸Â¤½¤Î¤â¤Î¤Ç¤¢¤ë¡£ +の返り値経由で、この上限を広告することができる。 +Linux では、この仕組みにより広告される上限は 1024 であり、 +この値はカーネルでの上限そのものである。 .\"O However, the glibc wrapper functions do some extra work if .\"O they detect that the underlying kernel system call failed because this .\"O limit was exceeded. @@ -322,27 +322,27 @@ Linux .\"O .BR writev () .\"O performs the analogous task using a temporary buffer and a call to .\"O .BR write (2). -°ìÊý¤Ç¡¢glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢¤½¤Î´Ø¿ô¤ÎÆâÉô¤Ç¸Æ¤Ð¤ì¤ë¥«¡¼¥Í¥ë¡¦ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤³¤Î¾å¸Â¤òĶ²á¤·¤Æ¼ºÇÔ¤·¤¿¤³¤È¤ò¸¡½Ð¤¹¤ë¤È¡¢ -ÄɲäÎÆ°ºî¤ò¤¹¤ë¡£ +一方で、glibc のラッパー関数は、その関数の内部で呼ばれるカーネル・ +システムコールがこの上限を超過して失敗したことを検出すると、 +追加の動作をする。 .BR readv () -¤Î¾ì¹ç¡¢¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï +の場合、ラッパー関数は .I iov -¤Ç»ØÄꤵ¤ì¤¿Á´¤Æ¤ÎÍ×ÁǤò³ÊǼ¤Ç¤­¤ëÂ礭¤µ¤Î°ì»þ¥Ð¥Ã¥Õ¥¡¤ò³ä¤êÅö¤Æ¡¢ +で指定された全ての要素を格納できる大きさの一時バッファを割り当て、 .BR read (2) -¤ò¸Æ¤Ó½Ð¤¹ºÝ¤Ë¤½¤Î¥Ð¥Ã¥Õ¥¡¤òÅϤ·¡¢ -¤½¤Î¥Ð¥Ã¥Õ¥¡¤Î¥Ç¡¼¥¿¤ò +を呼び出す際にそのバッファを渡し、 +そのバッファのデータを .I iov -¤Î³ÆÍ×ÁǤΠ+の各要素の .I iov_base -¥Õ¥£¡¼¥ë¥É¤¬»ØÄꤹ¤ë¾ì½ê¤Ë¥³¥Ô¡¼¤·¤Æ¤«¤é¡¢ -¤½¤Î¥Ð¥Ã¥Õ¥¡¤ò²òÊü¤¹¤ë¡£ +フィールドが指定する場所にコピーしてから、 +そのバッファを解放する。 .BR writev () -¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤â¡¢Æ±¤¸¤è¤¦¤Ë°ì»þ¥Ð¥Ã¥Õ¥¡¤ò»È¤Ã¤Æ +のラッパー関数も、同じように一時バッファを使って .BR write (2) -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O It is not advisable to mix calls to functions like .\"O .BR readv () .\"O or @@ -350,19 +350,19 @@ Linux .\"O which operate on file descriptors, with the functions from the stdio .\"O library; the results will be undefined and probably not what you want. .BR readv () -¤ä +や .BR writev () -¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ¹¤ëÁàºî¤ò¹Ô¤¦´Ø¿ô¤È¡¢ -ɸ½àÆþ½ÐÎϥ饤¥Ö¥é¥ê¤Î´Ø¿ô¤ò¤´¤Á¤ã¤Þ¤¼¤Ë¤·¤Æ¸Æ¤Ö¤Î¤Ï¤ªÁ¦¤á¤·¤Ê¤¤¡£ -¤É¤ó¤Ê·ë²Ì¤Ë¤Ê¤ë¤«¤ÏÄêµÁ¤µ¤ì¤Æ¤ª¤é¤º¡¢ -¤ª¤½¤é¤¯Íߤ·¤¤·ë²Ì¤ÏÆÀ¤é¤ì¤Ê¤¤¤À¤í¤¦¡£ +のようなファイルディスクリプタに対する操作を行う関数と、 +標準入出力ライブラリの関数をごちゃまぜにして呼ぶのはお薦めしない。 +どんな結果になるかは定義されておらず、 +おそらく欲しい結果は得られないだろう。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The following code sample demonstrates the use of .\"O .BR writev (): -°Ê²¼¤Î¥µ¥ó¥×¥ë¥³¡¼¥É¤Ï +以下のサンプルコードは .BR writev () -¤Î»ÈÍÑÊýË¡¤ò¼¨¤¹¤â¤Î¤Ç¤¢¤ë¡£ +の使用方法を示すものである。 .in +4n .nf @@ -380,6 +380,6 @@ nwritten = writev(STDOUT_FILENO, iov, 2); .fi .in .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR read (2), .BR write (2) diff --git a/draft/man2/reboot.2 b/draft/man2/reboot.2 index 1489100e..c2a2f25e 100644 --- a/draft/man2/reboot.2 +++ b/draft/man2/reboot.2 @@ -30,25 +30,25 @@ .\" by NAKANO Takeo .\" Updated Sat Oct 11 JST 2003 by Kentaro Shirakata .\" -.\"WORD halt Ää»ß -.\"WORD stop Ää»ß -.\"WORD reboot ºÆµ¯Æ° +.\"WORD halt 停止 +.\"WORD stop 停止 +.\"WORD reboot 再起動 .\" .TH REBOOT 2 2008-02-11 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O reboot \- reboot or enable/disable Ctrl-Alt-Del -reboot \- ºÆµ¯Æ°¤¹¤ë¡£¤Þ¤¿¤Ï Ctrl-Alt-Del¤òÍ­¸ú¡¦Ìµ¸ú¤Ë¤¹¤ë +reboot \- 再起動する。または Ctrl-Alt-Delを有効・無効にする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .\"O /* For libc4 and libc5 the library call and the system call .\"O are identical, and since kernel version 2.1.30 there are .\"O symbolic names LINUX_REBOOT_* for the constants and a .\"O fourth argument to the call: */ -/* libc4 ¤È libc5 ¤Ç¤Î¥é¥¤¥Ö¥é¥ê¥³¡¼¥ë¤È¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏƱ¤¸¤Ç¤¢¤ë¡£ - ¤Þ¤¿¥«¡¼¥Í¥ë 2.1.30 °Ê¹ß¤Ç¤Ï¡¢Äê¿ô¤È¤·¤Æ¥·¥ó¥Ü¥ê¥Ã¥¯¤Ê̾Á° - LINUX_REBOOT_* ¤¬ÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢¸Æ¤Ó½Ð¤·¤ÎÂè 4 °ú¿ô¤È¤·¤Æ - »ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£*/ +/* libc4 と libc5 でのライブラリコールとシステムコールは同じである。 + またカーネル 2.1.30 以降では、定数としてシンボリックな名前 + LINUX_REBOOT_* が定義されており、呼び出しの第 4 引数として + 指定することができる。*/ .sp .B #include .br @@ -59,9 +59,9 @@ reboot \- .\"O /* Under glibc some of the constants involved have gotten .\"O symbolic names RB_*, and the library call is a 1-argument .\"O wrapper around the 3-argument system call: -/* glibc ¤Ç¤Ï¡¢´ØÏ¢¤¹¤ëÄê¿ô¤Ë RB_* ¤È¤¤¤¦¥·¥ó¥Ü¥ê¥Ã¥¯¤Ê̾Á°¤¬ÉÕ¤± - ¤é¤ì¤Æ¤¤¤ë¡£¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Î°ú¿ô¤Ï 1 ¤Ä¤Ç¡¢3 °ú¿ô¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î - ¥é¥Ã¥Ñ (wrapper) ¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ */ +/* glibc では、関連する定数に RB_* というシンボリックな名前が付け + られている。ライブラリ関数の引数は 1 つで、3 引数のシステムコールの + ラッパ (wrapper) となっている。 */ .sp .B #include .br @@ -69,7 +69,7 @@ reboot \- .sp .BI "int reboot(int " cmd ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR reboot () .\"O call reboots the system, or enables/disables the reboot keystroke @@ -77,11 +77,11 @@ reboot \- .\"O it can be changed using .\"O .BR loadkeys (1)). .BR reboot () -¤Ï¥·¥¹¥Æ¥à¤òºÆµ¯Æ°¤¹¤ë¡£¤Þ¤¿¤ÏºÆµ¯Æ°¤Î¥­¡¼¥¹¥È¥í¡¼¥¯¤Ç¤¢¤ë -Ctrl-Alt-Delete (CAD) ¤òÍ­¸ú/̵¸ú¤Ë¤¹¤ë¡£ -¤³¤Î¥­¡¼¥¹¥È¥í¡¼¥¯¤Ï +はシステムを再起動する。または再起動のキーストロークである +Ctrl-Alt-Delete (CAD) を有効/無効にする。 +このキーストロークは .BR loadkeys (1) -¤Ë¤è¤Ã¤ÆÊѹ¹¤Ç¤­¤ë¡£ +によって変更できる。 .PP .\"O This system call will fail (with .\"O .BR EINVAL ) @@ -110,29 +110,29 @@ Ctrl-Alt-Delete (CAD) .\"O .I cmd .\"O argument can have the following values: .I magic -¤¬ +が .B LINUX_REBOOT_MAGIC1 -(ÃÍ¤Ï 0xfee1dead) ¤Ç¤¢¤ê¡¢¤«¤Ä +(値は 0xfee1dead) であり、かつ .I magic2 -¤¬ +が .B LINUX_REBOOT_MAGIC2 -(672274793) ¤Ç¤Ê¤±¤ì¤Ð¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¼ºÇÔ¤·¡¢ +(672274793) でなければこのシステムコールは失敗し、 .B EINVAL -¤¬ÊÖ¤µ¤ì¤ë¡£ -¤·¤«¤· 2.1.17 ¤«¤é¤Ï +が返される。 +しかし 2.1.17 からは .B LINUX_REBOOT_MAGIC2A -(85072278) ¤¬¡¢ -¤Þ¤¿ 2.1.97 ¤«¤é¤Ï +(85072278) が、 +また 2.1.97 からは .B LINUX_REBOOT_MAGIC2B -(369367448) ¤¬¡¢ -2.5.71 ¤«¤é¤Ï +(369367448) が、 +2.5.71 からは .B LINUX_REBOOT_MAGIC2C -(537993216) ¤¬ +(537993216) が .I magic2 -¤ÎÃͤȤ·¤Æ»ØÄê¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿ (¤³¤ì¤é¤ÎÄê¿ô¤Î 16 ¿Ê¤Ç¤Î -ɽµ­¤Ë¤Ï¤Á¤ç¤Ã¤È¤·¤¿°ÕÌ£¤¬¤¢¤ë)¡£ +の値として指定できるようになった (これらの定数の 16 進での +表記にはちょっとした意味がある)。 .I cmd -°ú¿ô¤Ë¤Ï°Ê²¼¤ÎÃͤò»ØÄê¤Ç¤­¤ë¡£ +引数には以下の値を指定できる。 .TP .B LINUX_REBOOT_CMD_RESTART (RB_AUTOBOOT, 0x1234567) @@ -141,11 +141,11 @@ Ctrl-Alt-Delete (CAD) .\"O If not preceded by a .\"O .BR sync (2), .\"O data will be lost. -"Restarting system." ¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¡¢ -¥Ç¥Õ¥©¥ë¥È¤ÎºÆµ¯Æ°½èÍý¤¬¤¿¤À¤Á¤Ë¼Â¹Ô¤µ¤ì¤ë¡£ -Àè¤Ë +"Restarting system." というメッセージが表示され、 +デフォルトの再起動処理がただちに実行される。 +先に .BR sync (2) -¤ò¹Ô¤Ê¤ï¤Ê¤¤¤È¡¢¥Ç¡¼¥¿¤¬¼º¤ï¤ì¤ë¡£ +を行なわないと、データが失われる。 .TP .B LINUX_REBOOT_CMD_HALT .\"O (RB_HALT_SYSTEM, 0xcdef0123; since 1.1.76). @@ -154,12 +154,12 @@ Ctrl-Alt-Delete (CAD) .\"O If not preceded by a .\"O .BR sync (2), .\"O data will be lost. -(RB_HALT_SYSTEM, 0xcdef0123; 1.1.76 °Ê¹ß) -"System halted." ¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¡¢¥·¥¹¥Æ¥à¤ÏÄä»ß (halt) ¤¹¤ë¡£ -À©¸æ¤Ï ROM ¥â¥Ë¥¿¤Ë°Ü¤ë (ROM ¥â¥Ë¥¿¤¬¤¢¤ë¾ì¹ç)¡£ -Àè¤Ë +(RB_HALT_SYSTEM, 0xcdef0123; 1.1.76 以降) +"System halted." というメッセージが表示され、システムは停止 (halt) する。 +制御は ROM モニタに移る (ROM モニタがある場合)。 +先に .BR sync (2) -¤ò¹Ô¤Ê¤ï¤Ê¤¤¤È¡¢¥Ç¡¼¥¿¤¬¼º¤ï¤ì¤ë¡£ +を行なわないと、データが失われる。 .TP .B LINUX_REBOOT_CMD_POWER_OFF .\"O (0x4321fedc; since 2.1.30). @@ -168,12 +168,12 @@ Ctrl-Alt-Delete (CAD) .\"O If not preceded by a .\"O .BR sync (2), .\"O data will be lost. -(0x4321fedc; 2.1.30 °Ê¹ß) -"Power down" ¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¡¢¥·¥¹¥Æ¥à¤ÏÄä»ß (stop) ¤¹¤ë¡£ -²Äǽ¤Ê¾ì¹ç¤Ï¥·¥¹¥Æ¥à¤ÎÅŸ»¤¬Íî¤È¤µ¤ì¤ë¡£ -Àè¤Ë +(0x4321fedc; 2.1.30 以降) +"Power down" というメッセージが表示され、システムは停止 (stop) する。 +可能な場合はシステムの電源が落とされる。 +先に .BR sync (2) -¤ò¹Ô¤Ê¤ï¤Ê¤¤¤È¡¢¥Ç¡¼¥¿¤¬¼º¤ï¤ì¤ë¡£ +を行なわないと、データが失われる。 .TP .B LINUX_REBOOT_CMD_RESTART2 .\"O (0xa1b2c3d4; since 2.1.30). @@ -184,14 +184,14 @@ Ctrl-Alt-Delete (CAD) .\"O If not preceded by a .\"O .BR sync (2), .\"O data will be lost. -(0xa1b2c3d4; 2.1.30 °Ê¹ß) -"Restarting system with command \(aq%s\(aq" ¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¡¢ -¤¿¤À¤Á¤Ë ( +(0xa1b2c3d4; 2.1.30 以降) +"Restarting system with command \(aq%s\(aq" というメッセージが表示され、 +ただちに ( .I arg -¤Ë»ØÄꤵ¤ì¤¿¥³¥Þ¥ó¥É¤òÍѤ¤¤Æ) ºÆµ¯Æ° (restart) ¤¬¹Ô¤ï¤ì¤ë¡£ -Àè¤Ë +に指定されたコマンドを用いて) 再起動 (restart) が行われる。 +先に .BR sync (2) -¤ò¹Ô¤Ê¤ï¤Ê¤¤¤È¡¢¥Ç¡¼¥¿¤¬¼º¤ï¤ì¤ë¡£ +を行なわないと、データが失われる。 .TP .B LINUX_REBOOT_CMD_CAD_ON .\"O (RB_ENABLE_CAD, 0x89abcdef). @@ -200,11 +200,11 @@ Ctrl-Alt-Delete (CAD) .\"O the action associated with .\"O .BR LINUX_REBOOT_CMD_RESTART . (RB_ENABLE_CAD, 0x89abcdef) -CAD ¤òÍ­¸ú¤Ë¤¹¤ë¡£ -¤³¤ì°Ê¹ß¤Ë CAD ¥­¡¼¥¹¥È¥í¡¼¥¯¤¬ÆþÎϤµ¤ì¤ë¤È¡¢ -¤¿¤À¤Á¤Ë +CAD を有効にする。 +これ以降に CAD キーストロークが入力されると、 +ただちに .B LINUX_REBOOT_CMD_RESTART -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿Æ°ºî¤¬¹Ô¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +に関連付けられた動作が行われるようになる。 .TP .B LINUX_REBOOT_CMD_CAD_OFF .\"O (RB_DISABLE_CAD, 0). @@ -215,33 +215,33 @@ CAD .\"O sent to init (process 1), whereupon this process may decide upon a .\"O proper action (maybe: kill all processes, sync, reboot). (RB_DISABLE_CAD, 0) -CAD ¤ò̵¸ú¤Ë¤¹¤ë¡£ -¤³¤ì°Ê¹ß¤Ë CAD ¥­¡¼¥¹¥È¥í¡¼¥¯¤¬ÆþÎϤµ¤ì¤ë¤È¡¢ +CAD を無効にする。 +これ以降に CAD キーストロークが入力されると、 .B SIGINT -¥·¥°¥Ê¥ë¤¬ init (¥×¥í¥»¥¹ 1) ¤ËÁ÷¤é¤ì¤ë¡£ -¤³¤Î¥·¥°¥Ê¥ë¤ò¼õ¤±¤ë¤È¡¢¤ª¤½¤é¤¯ init ¥×¥í¥»¥¹¤Ï -Á°¤â¤Ã¤ÆÄê¤á¤é¤ì¤¿Æ°ºî¤ò¹Ô¤¦¤³¤È¤Ë¤Ê¤ë (¿ʬ¤¹¤Ù¤Æ¤Î¥×¥í¥»¥¹¤Î kill, -sync, ºÆµ¯Æ°)¡£ +シグナルが init (プロセス 1) に送られる。 +このシグナルを受けると、おそらく init プロセスは +前もって定められた動作を行うことになる (多分すべてのプロセスの kill, +sync, 再起動)。 .LP .\"O Only the superuser may call .\"O .BR reboot (). -¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¤À¤±¤¬ +スーパーユーザーだけが .BR reboot () -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +を呼び出すことができる。 .LP .\"O The precise effect of the above actions depends on the architecture. .\"O For the i386 architecture, the additional argument does not do .\"O anything at present (2.1.122), but the type of reboot can be .\"O determined by kernel command-line arguments ("reboot=...") to be .\"O either warm or cold, and either hard or through the BIOS. -¾å½Ò¤Î¥¢¥¯¥·¥ç¥ó¤Î¼ÂºÝ¤Î¸ú²Ì¤Ï¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë°Í¸¤¹¤ë¡£ -i386 ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢¸½ºß¤Î¤È¤³¤í (2.1.122) Éղðú¿ô¤Ï -²¿¤â¹Ô¤ï¤Ê¤¤¤¬¡¢ºÆµ¯Æ°¤Î¥¿¥¤¥×¤ò¥«¡¼¥Í¥ë¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¿ô -("reboot=...") ¤Ë¤è¤Ã¤ÆÄê¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤Ë¤Ï warm ¤Þ¤¿¤Ï cold ¤È¡¢ hard ¤Þ¤¿¤Ï BIOS ·Ðͳ¤ÎºÆµ¯Æ°¤ò -ÀßÄê¤Ç¤­¤ë¡£ +上述のアクションの実際の効果はアーキテクチャに依存する。 +i386 アーキテクチャでは、現在のところ (2.1.122) 付加引数は +何も行わないが、再起動のタイプをカーネルのコマンドライン引数 +("reboot=...") によって定めることができる。 +これには warm または cold と、 hard または BIOS 経由の再起動を +設定できる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O For the values of .\"O .I cmd .\"O that stop or restart the system, @@ -255,27 +255,27 @@ i386 .\"O .I errno .\"O is set appropriately. .I cmd -¤¬¥·¥¹¥Æ¥à¤ÎÄä»ß¤äºÆµ¯Æ°¤òɽ¤¹Ãͤξì¹ç¡¢¸Æ¤Ó½Ð¤·¤¬À®¸ù¤¹¤ë¤È +がシステムの停止や再起動を表す値の場合、呼び出しが成功すると .BR reboot () -¤ÏÊÖ¤é¤Ê¤¤¡£ +は返らない。 .I cmd -¤¬Â¾¤ÎÃͤξì¹ç¤Ë¤Ï¡¢À®¸ù¤¹¤ë¤È 0 ¤¬Ê֤롣 +が他の値の場合には、成功すると 0 が返る。 .I cmd -¤ÎÃͤ˴ؤï¤é¤º¡¢¼ºÇԤξì¹ç¤Ë¤Ï \-1 ¤¬Ê֤ꡢ +の値に関わらず、失敗の場合には \-1 が返り、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O Problem with getting userspace data under .\"O .BR LINUX_REBOOT_CMD_RESTART2 . .B LINUX_REBOOT_CMD_RESTART2 -¤Î»þ¤Ë¥æ¡¼¥¶¡¼¥¹¥Ú¡¼¥¹¤Î¥Ç¡¼¥¿¤Î¼èÆÀ¤ËÌäÂ꤬¤¢¤Ã¤¿¡£ +の時にユーザースペースのデータの取得に問題があった。 .TP .B EINVAL .\"O Bad magic numbers or \fIcmd\fP. -magic ¤Î¿ô»ú¤« \fIcmd\fP ¤¬´Ö°ã¤Ã¤Æ¤¤¤ë¡£ +magic の数字か \fIcmd\fP が間違っている。 .TP .B EPERM .\"O The calling process has insufficient privilege to call @@ -283,20 +283,20 @@ magic .\"O the .\"O .B CAP_SYS_BOOT .\"O capability is required. -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë +呼び出し元プロセスに .BR reboot () -¤ò¸Æ¤Ó½Ð¤¹¤Î¤Ë½½Ê¬¤Ê¸¢¸Â¤¬¤Ê¤«¤Ã¤¿¡£ +を呼び出すのに十分な権限がなかった。 .B CAP_SYS_BOOT -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティが必要である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR reboot () .\"O is Linux-specific, .\"O and should not be used in programs intended to be portable. .BR reboot () -¤Ï Linux ¤ËÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò¹Íθ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤ÏÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +は Linux に特有であり、移植を考慮したプログラムでは用いるべきではない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sync (2), .BR bootparam (7), .BR ctrlaltdel (8), diff --git a/draft/man2/recv.2 b/draft/man2/recv.2 index 1eb40a5b..8fda27e8 100644 --- a/draft/man2/recv.2 +++ b/draft/man2/recv.2 @@ -51,17 +51,17 @@ .\" Updated 2008-08-06, Akihiro MOTOKI, LDP v3.05 .\" Updated 2009-04-13, Akihiro MOTOKI, LDP v3.20 .\" -.\"WORD: ancillary data Êä½õ¥Ç¡¼¥¿ -.\"WORD: ancillary message Êä½õ¥á¥Ã¥»¡¼¥¸ -.\"WORD: invalid ÉÔÀµ¤Ê +.\"WORD: ancillary data 補助データ +.\"WORD: ancillary message 補助メッセージ +.\"WORD: invalid 不正な .\" .TH RECV 2 2011-09-16 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O recv, recvfrom, recvmsg \- receive a message from a socket -.SH ̾Á° -recv, recvfrom, recvmsg \- ¥½¥±¥Ã¥È¤«¤é¥á¥Ã¥»¡¼¥¸¤ò¼õ¤±¼è¤ë +.SH 名前 +recv, recvfrom, recvmsg \- ソケットからメッセージを受け取る .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .\" .B #include .\" .br .nf @@ -77,7 +77,7 @@ recv, recvfrom, recvmsg \- .BI "ssize_t recvmsg(int " sockfd ", struct msghdr *" msg ", int " flags ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR recvfrom () .\"O and @@ -85,11 +85,11 @@ recv, recvfrom, recvmsg \- .\"O calls are used to receive messages from a socket, and may be used .\"O to receive data on a socket whether or not it is connection-oriented. .BR recvfrom () -¤È +と .BR recvmsg () -¥³¡¼¥ë¤Ï¡¢¥½¥±¥Ã¥È¤«¤é¥á¥Ã¥»¡¼¥¸¤ò¼õ¤±¼è¤ë¤Î¤Ë»ÈÍѤ¹¤ë¡£ -¤Þ¤¿¥½¥±¥Ã¥È¤Î¥Ç¡¼¥¿¼õ¿®¤Ë¤â»È¤¦¤³¤È¤¬¤Ç¤­¡¢ -¤³¤Î¤È¤­¥½¥±¥Ã¥È¤ÏÀܳ»Ø¸þ (connection-oriened) ¤Ç¤¢¤Ã¤Æ¤â¤Ê¤¯¤Æ¤â¤è¤¤¡£ +コールは、ソケットからメッセージを受け取るのに使用する。 +またソケットのデータ受信にも使うことができ、 +このときソケットは接続指向 (connection-oriened) であってもなくてもよい。 .PP .\"O If .\"O .I src_addr @@ -109,23 +109,23 @@ recv, recvfrom, recvmsg \- .\"O .\" [The above notes on AF_UNIX and AF_INET sockets apply as at .\"O .\" Kernel 2.4.18. (MTK, 22 Jul 02)] .I src_addr -¤¬ NULL °Ê³°¤Ç¡¢²¼ÁؤΥץí¥È¥³¥ë¤«¤éÁ÷¿®¸µ¥¢¥É¥ì¥¹¤¬Ê¬¤«¤ë¾ì¹ç¡¢ +が NULL 以外で、下層のプロトコルから送信元アドレスが分かる場合、 .I src_addr -¤Ë¤Ï¤³¤ÎÁ÷¿®¸µ¥¢¥É¥ì¥¹¤¬Æþ¤ì¤é¤ì¤ë¡£ +にはこの送信元アドレスが入れられる。 .I src_addr -¤¬ NULL ¤Î¾ì¹ç¡¢ +が NULL の場合、 .I src_addr -¤Ë¤Ï²¿¤âÆþ¤é¤Ê¤¤¡£¤³¤Î¾ì¹ç¡¢ +には何も入らない。この場合、 .I addrlen -¤Ï»ÈÍѤµ¤ì¤º¡¢¤³¤Î°ú¤­¿ô¤Ï NULL ¤Ë¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£ -.\" (UNIX ¥É¥á¥¤¥ó¤È¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥É¥á¥¤¥ó¤Î¤É¤Á¤é¤Î¥Ç¡¼¥¿¥°¥é¥à¥½¥±¥Ã¥È¤Ç¤â +は使用されず、この引き数は NULL にしておくべきである。 +.\" (UNIX ドメインとインターネットドメインのどちらのデータグラムソケットでも .\" .I src_addr -.\" ¤ËÁ÷¿®¸µ¥¢¥É¥ì¥¹¤¬Æþ¤ì¤é¤ì¤ë¡£¤Þ¤¿¡¢UNIX ¥É¥á¥¤¥ó¤Î¥¹¥È¥ê¡¼¥à¥½¥±¥Ã¥È¤Ç¤â -.\" ƱÍͤÀ¤¬¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥É¥á¥¤¥ó¤Î¥¹¥È¥ê¡¼¥à¥½¥±¥Ã¥È¤Ç¤Ï +.\" に送信元アドレスが入れられる。また、UNIX ドメインのストリームソケットでも +.\" 同様だが、インターネットドメインのストリームソケットでは .\" .I src_addr -.\" ¤Ë¥¢¥É¥ì¥¹¤¬Æþ¤ì¤é¤ì¤Ê¤¤¡£) -.\" [¾åµ­¤Î AF_UNIX ¤È AF_INET ¥½¥±¥Ã¥È¤Ë´Ø¤¹¤ëÃíµ­¤Ï¥«¡¼¥Í¥ë 2.4.18 ¤Ç¤Î -.\" Æ°ºî¤ÈƱ¤¸¤Ç¤¢¤ë¡£ (MTK, 22 Jul 02)] +.\" にアドレスが入れられない。) +.\" [上記の AF_UNIX と AF_INET ソケットに関する注記はカーネル 2.4.18 での +.\" 動作と同じである。 (MTK, 22 Jul 02)] .\"O The argument .\"O .I addrlen .\"O is a value-result argument, @@ -137,16 +137,16 @@ recv, recvfrom, recvmsg \- .\"O in this case, .\"O .I addrlen .\"O will return a value greater than was supplied to the call. -°ú¤­¿ô +引き数 .I addrlen -¤ÏÆþ½ÐÎÏξÍѤΰú¤­¿ô¤Ç¤¢¤ë¡£¸Æ¤Ó½Ð¤·»þ¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤¬ +は入出力両用の引き数である。呼び出し時には、呼び出し元が .I src_addr -¤Ë³ä¤êÅö¤Æ¤¿¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ¤Ç½é´ü²½¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£ -Ê֤äƤ¯¤ë»þ¤Ë¤Ï¡¢Á÷¿®¸µ¥¢¥É¥ì¥¹¤Î¼ÂºÝ¤ÎÂ礭¤µ¤ËÊѹ¹¤µ¤ì¤ë¡£ -ÅϤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤¬¾®¤µ²á¤®¤ë¾ì¹ç¤Ë¤Ï¡¢ÊÖ¤µ¤ì¤ë¥¢¥É¥ì¥¹¤ÎËöÈø¤Ï -ÀÚ¤êµÍ¤á¤é¤ì¤ë¡£¤³¤Î¾ì¹ç¤Ë¤Ï¡¢ +に割り当てたバッファの大きさで初期化しておくべきである。 +返ってくる時には、送信元アドレスの実際の大きさに変更される。 +渡されたバッファが小さ過ぎる場合には、返されるアドレスの末尾は +切り詰められる。この場合には、 .I addrlen -¤Ç¤Ï¡¢¸Æ¤Ó½Ð¤·»þ¤ËÅϤµ¤ì¤¿Ãͤè¤ê¤âÂ礭¤ÊÃͤ¬ÊÖ¤µ¤ì¤ë¡£ +では、呼び出し時に渡された値よりも大きな値が返される。 .PP .\"O The .\"O .BR recv () @@ -160,25 +160,25 @@ recv, recvfrom, recvmsg \- .\"O .I src_addr .\"O argument. .BR recv () -¥³¡¼¥ë¤ÏÄ̾ï -.I ÀܳºÑ¤ß¤Î (connected) -¥½¥±¥Ã¥È +コールは通常 +.I 接続済みの (connected) +ソケット .RB ( connect (2) -¤ò»²¾È) ¤Ë¤Ä¤¤¤Æ¤Î¤ß»ÈÍѤµ¤ì¡¢ +を参照) についてのみ使用され、 .I src_addr -°ú¤­¿ô¤Ë NULL ¤ò»ØÄꤷ¤¿ +引き数に NULL を指定した .BR recvfrom () -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 .PP .\"O All three routines return the length of the message on successful .\"O completion. .\"O If a message is too long to fit in the supplied buffer, excess .\"O bytes may be discarded depending on the type of socket the message is .\"O received from. -¤³¤ì¤é¤Î»°¤Ä¤Î¥ë¡¼¥Á¥ó¤Ï¤¤¤º¤ì¤â¡¢À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¤ÎŤµ¤òÊÖ¤¹¡£ -¥á¥Ã¥»¡¼¥¸¤¬Ä¹²á¤®¤Æ»ØÄꤵ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤ËÆþ¤êÀÚ¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ -¥á¥Ã¥»¡¼¥¸¤ò¼õ¿®¤·¤¿¥½¥±¥Ã¥È¤Î¼ïÎà¤Ë¤è¤Ã¤Æ¤Ï;ʬ¤Î¥Ð¥¤¥È¤¬¼Î¤Æ¤é¤ì¤ë -¤«¤â¤·¤ì¤Ê¤¤¡£ +これらの三つのルーチンはいずれも、成功した場合にはメッセージの長さを返す。 +メッセージが長過ぎて指定されたバッファに入り切らなかった場合には、 +メッセージを受信したソケットの種類によっては余分のバイトが捨てられる +かもしれない。 .PP .\"O If no messages are available at the socket, the receive calls wait for a .\"O message to arrive, unless the socket is nonblocking (see @@ -189,21 +189,21 @@ recv, recvfrom, recvmsg \- .\"O .BR EAGAIN " or " EWOULDBLOCK . .\"O The receive calls normally return any data available, up to the requested .\"O amount, rather than waiting for receipt of the full amount requested. -¥½¥±¥Ã¥È¤Ë¼õ¤±¼è¤ë¥á¥Ã¥»¡¼¥¸¤¬Â¸ºß¤·¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ -¼õ¿®ÍѤΥ³¡¼¥ë¤Ï¥á¥Ã¥»¡¼¥¸¤¬ÅþÃ夹¤ë¤Þ¤ÇÂԤġ£ -¤¿¤À¤·¡¢¥½¥±¥Ã¥È¤¬ÈóÄä»ß (nonblocking) -¤ËÀßÄꤵ¤ì¤Æ¤¤¤¿¾ì¹ç +ソケットに受け取るメッセージが存在しなかった場合、 +受信用のコールはメッセージが到着するまで待つ。 +ただし、ソケットが非停止 (nonblocking) +に設定されていた場合 .RB ( fcntl (2) -¤ò»²¾È) ¤Ï \-1 ¤òÊÖ¤·¡¢³°ÉôÊÑ¿ô +を参照) は \-1 を返し、外部変数 .I errno -¤Ë +に .B EAGAIN -¤« +か .B EWOULDBLOCK -¤òÀßÄꤹ¤ë¡£ -¤³¤ì¤é¤Î¼õ¿®ÍѤΥ³¡¼¥ë¤Ï¡¢¼õ¿®¤·¤¿¥Ç¡¼¥¿¤Î¥µ¥¤¥º¤¬Í׵ᤷ¤¿¥µ¥¤¥º¤Ë -㤹¤ë¤Þ¤ÇÂԤĤΤǤϤʤ¯¡¢²¿¤é¤«¤Î¥Ç¡¼¥¿¤ò¼õ¿®¤¹¤ë¤ÈÉüµ¢¤¹¤ë -(¼õ¿®¤µ¤ì¤ë¥Ç¡¼¥¿¤ÎºÇÂ祵¥¤¥º¤ÏÍ׵ᤷ¤¿¥µ¥¤¥º¤Ç¤¢¤ë)¡£ +を設定する。 +これらの受信用のコールは、受信したデータのサイズが要求したサイズに +達するまで待つのではなく、何らかのデータを受信すると復帰する +(受信されるデータの最大サイズは要求したサイズである)。 .PP .\"O The .\"O .BR select (2) @@ -211,9 +211,9 @@ recv, recvfrom, recvmsg \- .\"O .BR poll (2) .\"O call may be used to determine when more data arrives. .BR select (2) -¤ä +や .BR poll (2) -¥³¡¼¥ë¤ò»È¤Ã¤Æ¡¢¼¡¤Î¥Ç¡¼¥¿¤¬¤¤¤ÄÆϤ¯¤«¤òȽÃǤǤ­¤ë¡£ +コールを使って、次のデータがいつ届くかを判断できる。 .PP .\"O The .\"O .I flags @@ -221,13 +221,13 @@ recv, recvfrom, recvmsg \- .\"O .BR recv () .\"O call is formed by ORing one or more of the following values: .BR recv () -¥³¡¼¥ë¤Î +コールの .I flags -°ú¤­¿ô¤Ë¤Ï¡¢°Ê²¼¤ÎÃͤò 1¤Ä°Ê¾å¡¢¥Ó¥Ã¥Èñ°Ì¤ÎÏÀÍýÏ -¤ò¼è¤Ã¤¿¤â¤Î¤ò»ØÄꤹ¤ë: +引き数には、以下の値を 1つ以上、ビット単位の論理和 +を取ったものを指定する: .TP .\"O .BR MSG_CMSG_CLOEXEC " (" recvmsg "() only; since Linux 2.6.23)" -.BR MSG_CMSG_CLOEXEC " (" recvmsg "() ¤Î¤ß; Linux 2.6.23)" +.BR MSG_CMSG_CLOEXEC " (" recvmsg "() のみ; Linux 2.6.23)" .\"O Set the close-on-exec flag for the file descriptor received .\"O via a UNIX domain file descriptor using the .\"O .B SCM_RIGHTS @@ -238,18 +238,18 @@ recv, recvfrom, recvmsg \- .\"O flag of .\"O .BR open (2). .RB ( unix (7) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë) +で説明されている) .B SCM_RIGHTS -Áàºî¤ò»È¤Ã¤Æ UNIX ¥É¥á¥¤¥ó¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿·Ðͳ¤Ç¼õ¿®¤·¤¿ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤Ä¤¤¤Æ close-on-exec ¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï¡¢ +操作を使って UNIX ドメインのファイルディスクリプタ経由で受信した +ファイルディスクリプタについて close-on-exec フラグをセットする。 +このフラグは、 .BR open (2) -¤Î +の .B O_CLOEXEC -¥Õ¥é¥°¤ÈƱ¤¸Íýͳ¤ÇÍ­ÍѤǤ¢¤ë¡£ +フラグと同じ理由で有用である。 .TP .\"O .BR MSG_DONTWAIT " (since Linux 2.2)" -.BR MSG_DONTWAIT " (Linux 2.2 °Ê¹ß)" +.BR MSG_DONTWAIT " (Linux 2.2 以降)" .\"O Enables nonblocking operation; if the operation would block, .\"O the call fails with the error .\"O .BR EAGAIN " or " EWOULDBLOCK @@ -258,21 +258,21 @@ recv, recvfrom, recvmsg \- .\"O flag with the .\"O .B F_SETFL .\"O .BR fcntl (2)). -ÈóÄä»ß (nonblocking) Áàºî¤òÍ­¸ú¤Ë¤¹¤ë¡£ -Áàºî¤¬Ää»ß¤¹¤ë¤è¤¦¤Ê¾ì¹ç¤Ë¥¨¥é¡¼ +非停止 (nonblocking) 操作を有効にする。 +操作が停止するような場合にエラー .B EAGAIN -¤« +か .B EWOULDBLOCK -¤Ç¸Æ¤Ó½Ð¤·¤¬¼ºÇÔ¤¹¤ë +で呼び出しが失敗する .RB ( fcntl (2) -¤Î +の .B F_SETFL -¤Ç +で .B O_NONBLOCK -¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤³¤È¤Ë¤è¤Ã¤Æ¤âÍ­¸ú¤Ë¤Ç¤­¤ë)¡£ +フラグを指定することによっても有効にできる)。 .TP .\"O .BR MSG_ERRQUEUE " (since Linux 2.2)" -.BR MSG_ERRQUEUE " (Linux 2.2 °Ê¹ß)" +.BR MSG_ERRQUEUE " (Linux 2.2 以降)" .\"O This flag .\"O specifies that queued errors should be received from the socket error queue. .\"O The error is passed in @@ -284,30 +284,30 @@ recv, recvfrom, recvmsg \- .\"O and .\"O .BR ip (7) .\"O for more information. -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È¡¢ -¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤¿¥¨¥é¡¼¤ò¥½¥±¥Ã¥È¤Î¥¨¥é¡¼¥­¥å¡¼¤«¤é¼è¤ê¤À¤»¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¤³¤Î¥¨¥é¡¼¤ÏÊä½õ¥á¥Ã¥»¡¼¥¸¤ËÁȤ߹þ¤Þ¤ì¤ÆÅϤµ¤ì¡¢ -¤³¤ÎÊä½õ¥á¥Ã¥»¡¼¥¸¤Î¼ïÊ̤ϥץí¥È¥³¥ë¤Ë°Í¸¤¹¤ë -(IPv4 ¤Î¾ì¹ç¤Ï -.BR IP_RECVERR )¡£ -¥æ¡¼¥¶¤Ï½½Ê¬¤Ê¥µ¥¤¥º¤Î¥Ð¥Ã¥Õ¥¡¤òÍÑ°Õ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Êä½õ¥á¥Ã¥»¡¼¥¸¤Ë´Ø¤¹¤ë¤è¤ê¾ÜºÙ¤Ê¾ðÊó¤Ï +このフラグを指定すると、 +キューに入れられたエラーをソケットのエラーキューから取りだせるようになる。 +このエラーは補助メッセージに組み込まれて渡され、 +この補助メッセージの種別はプロトコルに依存する +(IPv4 の場合は +.BR IP_RECVERR )。 +ユーザは十分なサイズのバッファを用意しなければならない。 +補助メッセージに関するより詳細な情報は .BR cmsg (3) -¤ª¤è¤Ó +および .BR ip (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O The payload of the original packet that caused the error .\"O is passed as normal data via .\"O .IR msg_iovec . .\"O The original destination address of the datagram that caused the error .\"O is supplied via .\"O .IR msg_name . -¥¨¥é¡¼¤Î¸¶°ø¤È¤Ê¤Ã¤¿¥ª¥ê¥¸¥Ê¥ë¥Ñ¥±¥Ã¥È¤Î¥Ú¥¤¥í¡¼¥É¤Ï¡¢ +エラーの原因となったオリジナルパケットのペイロードは、 .I msg_iovec -·Ðͳ¤ÇÄ̾ï¤Î¥Ç¡¼¥¿¤È¤·¤ÆÅϤµ¤ì¤ë¡£ -¥¨¥é¡¼¤òµ¯¤³¤·¤¿¥Ç¡¼¥¿¥°¥é¥à¤Î¥ª¥ê¥¸¥Ê¥ë¤Î°¸À襢¥É¥ì¥¹¤Ï¡¢ +経由で通常のデータとして渡される。 +エラーを起こしたデータグラムのオリジナルの宛先アドレスは、 .I msg_name -·Ðͳ¤Ç»²¾È¤Ç¤­¤ë¡£ +経由で参照できる。 .IP .\"O For local errors, no address is passed (this can be checked with the .\"O .I cmsg_len @@ -320,27 +320,27 @@ recv, recvfrom, recvmsg \- .\"O After an error has been passed, the pending socket error .\"O is regenerated based on the next queued error and will be passed .\"O on the next socket operation. -¥í¡¼¥«¥ë¤Ê¥¨¥é¡¼¤Î¾ì¹ç¤Ï¥¢¥É¥ì¥¹¤ÏÅϤµ¤ì¤Ê¤¤ -(¤³¤ì¤Ï +ローカルなエラーの場合はアドレスは渡されない +(これは .I cmsghdr -¤Î +の .I cmsg_len -¥á¥ó¥Ð¡¼¤Ç¥Á¥§¥Ã¥¯¤Ç¤­¤ë)¡£ -¼õ¿®¥¨¥é¡¼¤Î¾ì¹ç¤Ï +メンバーでチェックできる)。 +受信エラーの場合は .B MSG_ERRQUIE -¤¬ +が .I msghdr -¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤¬ÅϤµ¤ì¤¿¸å¤Ë¤Ï¡¢¥­¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ë¼¡¤Î¥¨¥é¡¼¤Ë´ð¤¤¤Æ¡¢ -½èÍýÂÔ¤Á¤Î¥½¥±¥Ã¥È¡¦¥¨¥é¡¼¤¬ºÆÀ¸À®¤µ¤ì¡¢¼¡¤Î¥½¥±¥Ã¥ÈÁàºî¤ÎºÝ¤ËÅϤµ¤ì¤ë¡£ +にセットされる。 +エラーが渡された後には、キューに入っている次のエラーに基いて、 +処理待ちのソケット・エラーが再生成され、次のソケット操作の際に渡される。 .IP .\"O The error is supplied in a .\"O .I sock_extended_err .\"O structure: -¤³¤Î¥¨¥é¡¼¤Ï +このエラーは .I sock_extended_err -¹½Â¤ÂΤÇÄ󶡤µ¤ì¤ë: +構造体で提供される: .in +4n .nf @@ -370,13 +370,13 @@ struct sockaddr *SO_EE_OFFENDER(struct sock_extended_err *); .\"O .I errno .\"O number of the queued error. .I ee_errno -¤Ë¤Ï¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤¿¥¨¥é¡¼¤Î +にはキューに入れられたエラーの .I errno -¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ +が入っている。 .\"O .I ee_origin .\"O is the origin code of where the error originated. .I ee_origin -¤Ë¤Ï¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì½ê¤Î¥ª¥ê¥¸¥ó¡¦¥³¡¼¥É (origin code) ¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ +にはエラーが発生した場所のオリジン・コード (origin code) が入っている。 .\"O The other fields are protocol-specific. .\"O The macro .\"O .B SOCK_EE_OFFENDER @@ -392,20 +392,20 @@ struct sockaddr *SO_EE_OFFENDER(struct sock_extended_err *); .\"O .I sockaddr .\"O are undefined. .\"O The payload of the packet that caused the error is passed as normal data. -¾¤Î¥Õ¥£¡¼¥ë¥É¤Ï¥×¥í¥È¥³¥ë°Í¸¤Ç¤¢¤ë¡£ +他のフィールドはプロトコル依存である。 .B SO_EE_OFFENDER -¥Þ¥¯¥í¤Ï¡¢¤³¤ÎÊä½õŪ¤Ê¥á¥Ã¥»¡¼¥¸¤ò°ú¤­¿ô¤Ë¼è¤Ã¤Æ¡¢ -¥¨¥é¡¼¤ÎȯÀ¸¤·¤¿¥Í¥Ã¥È¥ï¡¼¥¯¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥É¥ì¥¹¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¢¥É¥ì¥¹¤¬ÉÔÌÀ¤Î¾ì¹ç¤Ë¤Ï¡¢ +マクロは、この補助的なメッセージを引き数に取って、 +エラーの発生したネットワークオブジェクトのアドレスへのポインタを返す。 +アドレスが不明の場合には、 .I sockaddr -¤Î +の .I sa_family -¥á¥ó¥Ð¡¼¤¬ +メンバーが .B AF_UNSPEC -¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +になっている。 .I sockaddr -¤Î¾¤Î¥Õ¥£¡¼¥ë¥É¤ÏÉÔÄê¤Ç¤¢¤ë¡£ -¥¨¥é¡¼¤ÎȯÀ¸¤·¤¿¥Ñ¥±¥Ã¥È¤Î¥Ú¥¤¥í¡¼¥É¤ÏÄ̾ï¤Î¥Ç¡¼¥¿¤È¤·¤ÆÅϤµ¤ì¤ë¡£ +の他のフィールドは不定である。 +エラーの発生したパケットのペイロードは通常のデータとして渡される。 .IP .\"O For local errors, no address is passed (this .\"O can be checked with the @@ -420,19 +420,19 @@ struct sockaddr *SO_EE_OFFENDER(struct sock_extended_err *); .\"O After an error has been passed, the pending socket error .\"O is regenerated based on the next queued error and will be passed .\"O on the next socket operation. -¥í¡¼¥«¥ë¤Ç¤Î¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï¥¢¥É¥ì¥¹¤ÏÅϤµ¤ì¤Ê¤¤ (¤³¤ì¤Ï +ローカルでのエラーの場合にはアドレスは渡されない (これは .I cmsghdr -¤Î +の .I cmsg_len -¥á¥ó¥Ð¡¼¤Ç¥Á¥§¥Ã¥¯¤Ç¤­¤ë)¡£ -¥¨¥é¡¼¤ò¼õ¤±¼è¤Ã¤¿¾ì¹ç¡¢ +メンバーでチェックできる)。 +エラーを受け取った場合、 .B MSG_ERRQUEUE -¤¬ +が .I msghdr -¤ËÀßÄꤵ¤ì¤ë¡£ -¥¨¥é¡¼¤¬ÅϤµ¤ì¤¿¸å¤Ë¤Ï¡¢ -½èÍýÂÔ¤Á¤Ë¤Ê¤Ã¤Æ¤¤¤¿¥½¥±¥Ã¥È¡¦¥¨¥é¡¼¤¬¡¢¥­¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ë -¼¡¤Î¥¨¥é¡¼¤Ë´ð¤Å¤¤¤ÆºÆÀ¸À®¤µ¤ì¡¢¼¡¤Î¥½¥±¥Ã¥ÈÁàºî¤ÎºÝ¤ËÅϤµ¤ì¤ë¡£ +に設定される。 +エラーが渡された後には、 +処理待ちになっていたソケット・エラーが、キューに入っている +次のエラーに基づいて再生成され、次のソケット操作の際に渡される。 .TP .B MSG_OOB .\"O This flag requests receipt of out-of-band data that would not be received @@ -440,11 +440,11 @@ struct sockaddr *SO_EE_OFFENDER(struct sock_extended_err *); .\"O Some protocols place expedited data .\"O at the head of the normal data queue, and thus this flag cannot .\"O be used with such protocols. -¤³¤Î¥Õ¥é¥°¤Ï¡¢Ä̾ï¤Î¥Ç¡¼¥¿¡¦¥¹¥È¥ê¡¼¥à¤Ç¤Ï¼õ¿®¤Ç¤­¤Ê¤¤ -ÂÓ°è³° (out-of-band) ¥Ç¡¼¥¿¤Î¼õ¿®¤òÍ׵᤹¤ë¡£ -¥×¥í¥È¥³¥ë¤Ë¤è¤Ã¤Æ¤Ï¡¢ -Ä̾ï¤Î¥Ç¡¼¥¿¡¦¥­¥å¡¼¤ÎÀèƬ¤Ë®ã¥Ç¡¼¥¿¤òÃÖ¤¯¤â¤Î¤¬¤¢¤ë¤¬¡¢ -¤½¤Î¤è¤¦¤Ê¥×¥í¥È¥³¥ë¤Ç¤Ï¤³¤Î¥Õ¥é¥°¤Ï»ÈÍѤǤ­¤Ê¤¤¡£ +このフラグは、通常のデータ・ストリームでは受信できない +帯域外 (out-of-band) データの受信を要求する。 +プロトコルによっては、 +通常のデータ・キューの先頭に速達データを置くものがあるが、 +そのようなプロトコルではこのフラグは使用できない。 .TP .B MSG_PEEK .\"O This flag causes the receive operation to @@ -452,12 +452,12 @@ struct sockaddr *SO_EE_OFFENDER(struct sock_extended_err *); .\"O receive queue without removing that data from the queue. .\"O Thus, a .\"O subsequent receive call will return the same data. -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È¡¢ -¼õ¿®¥­¥å¡¼¤ÎºÇ½é¤Î¥Ç¡¼¥¿¤òÊÖ¤¹¤È¤­¡¢¥­¥å¡¼¤«¤é¥Ç¡¼¥¿¤òºï½ü¤·¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¤³¤Î¸å¤Ç¤â¤¦°ìÅÙ¼õ¿®¥³¡¼¥ë¤ò¸Æ¤Ó½Ð¤¹¤È¡¢Æ±¤¸¥Ç¡¼¥¿¤¬Ê֤뤳¤È¤Ë¤Ê¤ë¡£ +このフラグを指定すると、 +受信キューの最初のデータを返すとき、キューからデータを削除しない。 +したがって、この後でもう一度受信コールを呼び出すと、同じデータが返ることになる。 .TP .\"O .BR MSG_TRUNC " (since Linux 2.2)" -.BR MSG_TRUNC " (Linux 2.2 °Ê¹ß)" +.BR MSG_TRUNC " (Linux 2.2 以降)" .\"O For raw .\"O .RB ( AF_PACKET ), .\"O Internet datagram (since Linux 2.4.27/2.6.8), @@ -467,34 +467,34 @@ struct sockaddr *SO_EE_OFFENDER(struct sock_extended_err *); .\"O Not implemented for UNIX domain .\"O .RB ( unix (7)) .\"O sockets. -raw ¥½¥±¥Ã¥È -.RB ( AF_PACKET )¡¢ -Internet datagram ¥½¥±¥Ã¥È (Linux 2.4.27/2.6.8 °Ê¹ß)¡¢ -netlink (Linux 2.6.22 °Ê¹ß) ¥½¥±¥Ã¥È¤Î¾ì¹ç¡¢ -¥Ñ¥±¥Ã¥È¤ä¥Ç¡¼¥¿¥°¥é¥à¤ÎŤµ¤¬ÅϤ·¤¿¥Ð¥Ã¥Õ¥¡¤è¤ê¤âŤ«¤Ã¤¿¾ì¹ç¤Ë¤â¡¢ -¥Ñ¥±¥Ã¥È¤ä¥Ç¡¼¥¿¥°¥é¥à¤Î¼ÂºÝ¤ÎŤµ¤òÊÖ¤¹¡£ -UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È +raw ソケット +.RB ( AF_PACKET )、 +Internet datagram ソケット (Linux 2.4.27/2.6.8 以降)、 +netlink (Linux 2.6.22 以降) ソケットの場合、 +パケットやデータグラムの長さが渡したバッファよりも長かった場合にも、 +パケットやデータグラムの実際の長さを返す。 +UNIX ドメインソケット .RB ( unix (7)) -¥½¥±¥Ã¥È¤Ë¤Ä¤¤¤Æ¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +ソケットについては実装されていない。 .\"O For use with Internet stream sockets, see .\"O .BR tcp (7). -Internet ¥¹¥È¥ê¡¼¥à¥½¥±¥Ã¥È¤Ç¤ÎÍøÍѤˤĤ¤¤Æ¤Ï +Internet ストリームソケットでの利用については .BR tcp (7) -¤ò»²¾È¡£ +を参照。 .TP .\"O .BR MSG_WAITALL " (since Linux 2.2)" -.BR MSG_WAITALL " (Linux 2.2 °Ê¹ß)" +.BR MSG_WAITALL " (Linux 2.2 以降)" .\"O This flag requests that the operation block until the full request is .\"O satisfied. .\"O However, the call may still return less data than requested if .\"O a signal is caught, an error or disconnect occurs, or the next data to be .\"O received is of a different type than that returned. -¤³¤Î¥Õ¥é¥°¤Ï¡¢Í׵ᤷ¤¿Î̤¤¤Ã¤Ñ¤¤¤Î¥Ç¡¼¥¿¤¬ÅþÃ夹¤ë¤Þ¤Ç¡¢ -Áàºî¤òÄä»ß (block) ¤¹¤ë¤è¤¦Í׵᤹¤ë¡£ -⤷¡¢¥·¥°¥Ê¥ë¤ò¼õ¿®¤·¤¿¤ê¡¢¥¨¥é¡¼¤äÀÚÃÇ (disconnect) ¤¬È¯À¸¤·¤¿¤ê¡¢ -¼¡¤Ë¼õ¿®¤µ¤ì¤ë¥Ç¡¼¥¿¤¬°Û¤Ê¤ë·¿¤À¤Ã¤¿¤ê¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ -Í׵ᤷ¤¿Î̤è¤ê¥Ç¡¼¥¿¤¬¾¯¤Ê¤¯¤Æ¤âÊ֤뤳¤È¤¬¤¢¤ë¡£ +このフラグは、要求した量いっぱいのデータが到着するまで、 +操作を停止 (block) するよう要求する。 +但し、シグナルを受信したり、エラーや切断 (disconnect) が発生したり、 +次に受信されるデータが異なる型だったりした場合には、 +要求した量よりデータが少なくても返ることがある。 .PP .\"O The .\"O .BR recvmsg () @@ -504,11 +504,11 @@ Internet .\"O This structure is defined as follows in .\"O .IR : .BR recvmsg () -¥³¡¼¥ë¤Ï¡¢Ä¾ÀÜÅϤ¹°ú¤­¿ô¤Î¿ô¤ò¸º¤é¤¹¤¿¤á¤Ë +コールは、直接渡す引き数の数を減らすために .I msghdr -¹½Â¤ÂΤò»ÈÍѤ¹¤ë¡£¤³¤Î¹½Â¤ÂÎ¤Ï +構造体を使用する。この構造体は .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +で以下のように定義されている: .in +4n .nf @@ -537,12 +537,12 @@ struct msghdr { .\"O .I msg_name .\"O may be given as a NULL pointer if no names are desired or required. .I msg_name -¤È +と .I msg_namelen -¤Ï¡¢¥½¥±¥Ã¥È¤¬Àܳ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤ËÁ÷¿®¸µ¤Î¥¢¥É¥ì¥¹¤ò»ØÄꤹ¤ë¡£ -̾Á°¤¬É¬Íפʤ¤¾ì¹ç¤Ë¤Ï +は、ソケットが接続されていない場合に送信元のアドレスを指定する。 +名前が必要ない場合には .I msg_name -¤Ë NULL ¥Ý¥¤¥ó¥¿¤ò»ØÄꤹ¤ë¡£ +に NULL ポインタを指定する。 .\"O The fields .\"O .I msg_iov .\"O and @@ -550,12 +550,12 @@ struct msghdr { .\"O describe scatter-gather locations, as discussed in .\"O .BR readv (2). .I msg_iov -¤È +と .I msg_iovlen -¥Õ¥£¡¼¥ë¥É¤Ï +フィールドは .BR readv (2) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Êʬ²ò/·ë¹çÍѤΥ٥¯¥È¥ë (scatter-gather locations) -¤ò»ØÄꤹ¤ë¡£ +に記述されているような分解/結合用のベクトル (scatter-gather locations) +を指定する。 .\"O The field .\"O .IR msg_control , .\"O which has length @@ -571,20 +571,20 @@ struct msghdr { .\"O upon return from a successful call it will contain the length .\"O of the control message sequence. .I msg_control -¥Õ¥£¡¼¥ë¥É¤Ï +フィールドは .I msg_controllen -¤ÎŤµ¤ò»ý¤Á¡¢Â¾¤Î¥×¥í¥È¥³¥ëÀ©¸æ¥á¥Ã¥»¡¼¥¸¤ä -¼ï¡¹¤ÎÊä½õ¥Ç¡¼¥¿¤Î¤¿¤á¤Î¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +の長さを持ち、他のプロトコル制御メッセージや +種々の補助データのためのバッファへのポインタである。 .BR recvmsg () -¤ò¸Æ¤ÖºÝ¤Ë¤Ï¡¢ +を呼ぶ際には、 .I msg_controllen -¤Ë +に .I msg_control -¤Î¥Ð¥Ã¥Õ¥¡¤ÎŤµ¤òÆþ¤ì¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¡£ -¥³¡¼¥ë¤¬À®¸ù¤·¤ÆÊ֤俾ì¹ç¡¢À©¸æ¥á¥Ã¥»¡¼¥¸Îó¤ÎŤµ¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ +のバッファの長さを入れておく必要がある。 +コールが成功して返った場合、制御メッセージ列の長さが入っている。 .PP .\"O The messages are of the form: -¥á¥Ã¥»¡¼¥¸¤Î·Á¼°¤Ï°Ê²¼¤ÎÄ̤ê: +メッセージの形式は以下の通り: .in +4n .nf @@ -600,15 +600,15 @@ struct cmsghdr { .PP .\"O Ancillary data should only be accessed by the macros defined in .\"O .BR cmsg (3). -Êä½õ¥Ç¡¼¥¿¤Ï¡¢ +補助データは、 .BR cmsg (3) -¤ËÄêµÁ¤µ¤ì¤¿¥Þ¥¯¥í·Ðͳ¤Ç¤Î¤ß¥¢¥¯¥»¥¹¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +に定義されたマクロ経由でのみアクセスすべきである。 .PP .\"O As an example, Linux uses this ancillary data mechanism to pass extended .\"O errors, IP options or file descriptors over UNIX domain sockets. -Îã¤ò¤¢¤²¤ë¤È¡¢ Linux ¤Ï¤³¤ÎÊä½õ¥Ç¡¼¥¿¤Î¥á¥«¥Ë¥º¥à¤ò¡¢ -UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¾å¤Ç¤Î³ÈÄ¥¥¨¥é¡¼¤ä IP ¥ª¥×¥·¥ç¥ó¡¢ -¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¼õ¤±ÅϤ·¤ËÍøÍѤ·¤Æ¤¤¤ë¡£ +例をあげると、 Linux はこの補助データのメカニズムを、 +UNIX ドメインソケット上での拡張エラーや IP オプション、 +ファイル・ディスクリプタの受け渡しに利用している。 .PP .\"O The .\"O .I msg_flags @@ -618,117 +618,117 @@ UNIX .\"O .BR recvmsg (). .\"O It can contain several flags: .I msghdr -¤Î +の .I msg_flags -¥Õ¥£¡¼¥ë¥É¤Ï +フィールドは .BR recvmsg () -¤«¤é¤Î¥ê¥¿¡¼¥ó»þ¤ËÀßÄꤵ¤ì¤ë¡£¤³¤³¤Ë¤Ï¤¤¤¯¤Ä¤«¤Î¥Õ¥é¥°¤¬Æþ¤ë¡£ +からのリターン時に設定される。ここにはいくつかのフラグが入る。 .TP .B MSG_EOR .\"O indicates end-of-record; the data returned completed a record (generally .\"O used with sockets of type .\"O .BR SOCK_SEQPACKET ). -¤³¤ì¤Ï¥ì¥³¡¼¥É¤Î½ª¤ê (end-of-record) ¤ò¼¨¤·¡¢ -ÊÖ¤µ¤ì¤¿¥Ç¡¼¥¿¤¬´°Á´¤Ê¥ì¥³¡¼¥É¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹ (°ìÈÌŪ¤Ë¤Ï +これはレコードの終り (end-of-record) を示し、 +返されたデータが完全なレコードであることを示す (一般的には .B SOCK_SEQPACKET -·¿¤Î¥½¥±¥Ã¥È¤Ç»ÈÍѤµ¤ì¤ë)¡£ +型のソケットで使用される)。 .TP .B MSG_TRUNC .\"O indicates that the trailing portion of a datagram was discarded because the .\"O datagram was larger than the buffer supplied. -¥Ç¡¼¥¿¥°¥é¥à¤¬Í¿¤¨¤é¤ì¤¿¥Ð¥Ã¥Õ¥¡¤è¤êÂ礭¤«¤Ã¤¿¤¿¤á¤Ë¡¢ -¥Ç¡¼¥¿¥°¥é¥à¤Î¤Ï¤ß½Ð¤·¤¿Éôʬ¤¬¼Î¤Æ¤é¤ì¤¿¤³¤È¤ò¼¨¤¹¡£ +データグラムが与えられたバッファより大きかったために、 +データグラムのはみ出した部分が捨てられたことを示す。 .TP .B MSG_CTRUNC .\"O indicates that some control data were discarded due to lack of space in the .\"O buffer for ancillary data. -Êä½õ¥Ç¡¼¥¿¤Î¤¿¤á¤Î¥Ð¥Ã¥Õ¥¡¤¬ÉÔ­¤·¤¿¤¿¤á¤Ë¡¢ -À©¸æ¥Ç¡¼¥¿¤Î°ìÉô¤¬¼Î¤Æ¤é¤ì¤¿¤³¤È¤ò¼¨¤¹¡£ +補助データのためのバッファが不足したために、 +制御データの一部が捨てられたことを示す。 .TP .B MSG_OOB .\"O is returned to indicate that expedited or out-of-band data were received. -®ã¥Ç¡¼¥¿¤äÂÓ°è³°¥Ç¡¼¥¿¤ò¼õ¿®¤·¤¿¤³¤È¤ò¼¨¤¹¡£ +速達データや帯域外データを受信したことを示す。 .TP .B MSG_ERRQUEUE .\"O indicates that no data was received but an extended error from the socket .\"O error queue. -¥Ç¡¼¥¿¤Ï¼õ¿®¤·¤Ê¤«¤Ã¤¿¤¬ -¥½¥±¥Ã¥È¤Î¥¨¥é¡¼¡¦¥­¥å¡¼¤«¤é³ÈÄ¥¥¨¥é¡¼¤ò¼õ¿®¤·¤¿¤³¤È¤ò¼¨¤¹¡£ +データは受信しなかったが +ソケットのエラー・キューから拡張エラーを受信したことを示す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O These calls return the number of bytes received, or \-1 .\"O if an error occurred. .\"O The return value will be 0 when the .\"O peer has performed an orderly shutdown. -¤³¤ì¤é¤Î¥³¡¼¥ë¤Ï¼õ¿®¤·¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ -ÀܳÀ褬Àµ¤·¤¯¥·¥ã¥Ã¥È¥À¥¦¥ó¤ò¼Â¹Ô¤·¤¿¾ì¹ç¤Ï¡¢ÊÖ¤êÃÍ¤Ï 0 ¤È¤Ê¤ë¡£ +これらのコールは受信したバイト数を返す。 +エラーの場合は \-1 を返す。 +接続先が正しくシャットダウンを実行した場合は、返り値は 0 となる。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O These are some standard errors generated by the socket layer. .\"O Additional errors .\"O may be generated and returned from the underlying protocol modules; .\"O see their manual pages. -¤³¤ì¤é¤Ï¥½¥±¥Ã¥ÈÁؤÇȯÀ¸¤¹¤ë°ìÈÌŪ¤Ê¥¨¥é¡¼¤Ç¤¢¤ë¡£ -¾¤Î¥¨¥é¡¼¤¬²¼ÁؤΥץí¥È¥³¥ë¡¦¥â¥¸¥å¡¼¥ë¤ÇÀ¸À®¤µ¤ì¡¢ -ÊÖ¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤½¤ì¤é¤Î¥Þ¥Ë¥å¥¢¥ë¤ò»²¾È¤¹¤ë¤³¤È¡£ +これらはソケット層で発生する一般的なエラーである。 +他のエラーが下層のプロトコル・モジュールで生成され、 +返されるかもしれない。 +それらのマニュアルを参照すること。 .TP .\"O .BR EAGAIN " or " EWOULDBLOCK -.BR EAGAIN " ¤Þ¤¿¤Ï " EWOULDBLOCK +.BR EAGAIN " または " EWOULDBLOCK .\" Actually EAGAIN on Linux .\"O The socket is marked nonblocking and the receive operation .\"O would block, or a receive timeout had been set and the timeout expired .\"O before data was received. -¥½¥±¥Ã¥È¤¬ÈóÄä»ß (nonblocking) ¤ËÀßÄꤵ¤ì¤Æ¤¤¤Æ -¼õ¿®Áàºî¤¬Ää»ß¤¹¤ë¤è¤¦¤Ê¾õ¶·¤Ë¤Ê¤Ã¤¿¤«¡¢ -¼õ¿®¤Ë»þ´ÖÀÚ¤ì (timeout) ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Æ -¥Ç¡¼¥¿¤ò¼õ¿®¤¹¤ëÁ°¤Ë»þ´ÖÀÚ¤ì¤Ë¤Ê¤Ã¤¿¡£ +ソケットが非停止 (nonblocking) に設定されていて +受信操作が停止するような状況になったか、 +受信に時間切れ (timeout) が設定されていて +データを受信する前に時間切れになった。 .\"O POSIX.1-2001 allows either error to be returned for this case, .\"O and does not require these constants to have the same value, .\"O so a portable application should check for both possibilities. -POSIX.1-2001 ¤Ï¡¢¤³¤Î¾ì¹ç¤Ë¤É¤Á¤é¤Î¥¨¥é¡¼¤òÊÖ¤¹¤³¤È¤âǧ¤á¤Æ¤ª¤ê¡¢ -¤³¤ì¤é 2 ¤Ä¤ÎÄê¿ô¤¬Æ±¤¸Ãͤò»ý¤Ä¤³¤È¤âµá¤á¤Æ¤¤¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢Î¾Êý¤Î²ÄǽÀ­¤ò -³Îǧ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +POSIX.1-2001 は、この場合にどちらのエラーを返すことも認めており、 +これら 2 つの定数が同じ値を持つことも求めていない。 +したがって、移植性が必要なアプリケーションでは、両方の可能性を +確認すべきである。 .TP .B EBADF .\"O The argument .\"O .I sockfd .\"O is an invalid descriptor. -°ú¤­¿ô +引き数 .I sockfd -¤¬ÉÔÀµ¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +が不正なディスクリプタである。 .TP .B ECONNREFUSED .\"O A remote host refused to allow the network connection (typically .\"O because it is not running the requested service). -¥ê¥â¡¼¥È¤Î¥Û¥¹¥È¤Ç¥Í¥Ã¥È¥ï¡¼¥¯Àܳ¤¬µñÈݤµ¤ì¤¿ -(¤è¤¯¤¢¤ëÍýͳ¤È¤·¤Æ¤Ï¡¢Í׵ᤷ¤¿¥µ¡¼¥Ó¥¹¤¬µ¯Æ°¤µ¤ì¤Æ¤¤¤Ê¤¤¤Ê¤É¤¬¤¢¤ë)¡£ +リモートのホストでネットワーク接続が拒否された +(よくある理由としては、要求したサービスが起動されていないなどがある)。 .TP .B EFAULT .\"O The receive buffer pointer(s) point outside the process's .\"O address space. -¼õ¿®¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +受信バッファへのポインタがプロセスのアドレス空間外を指している。 .TP .B EINTR .\"O The receive was interrupted by delivery of a signal before .\"O any data were available; see .\"O .BR signal (7). -¥Ç¡¼¥¿¤ò¼õ¿®¤¹¤ëÁ°¤Ë¡¢¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤Æ³ä¤ê¹þ¤Þ¤ì¤¿¡£ +データを受信する前に、シグナルが配送されて割り込まれた。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .\"O Invalid argument passed. -ÉÔÀµ¤Ê°ú¤­¿ô¤¬ÅϤµ¤ì¤¿¡£ +不正な引き数が渡された。 .\" e.g., msg_namelen < 0 for recvmsg() or addrlen < 0 for recvfrom() .TP .B ENOMEM .\"O Could not allocate memory for .\"O .BR recvmsg (). .BR recvmsg () -¤Î¤¿¤á¤Î¥á¥â¥ê¤¬³ÎÊݤǤ­¤Ê¤«¤Ã¤¿¡£ +のためのメモリが確保できなかった。 .TP .B ENOTCONN .\"O The socket is associated with a connection-oriented protocol @@ -736,25 +736,25 @@ POSIX.1-2001 .\"O .BR connect (2) .\"O and .\"O .BR accept (2)). -¥½¥±¥Ã¥È¤ËÀܳ»Ø¸þ¥×¥í¥È¥³¥ë¤¬³ä¤êÅö¤Æ¤é¤ì¤Æ¤ª¤ê¡¢ -¤Þ¤ÀÀܳ¤µ¤ì¤Æ¤¤¤Ê¤¤ +ソケットに接続指向プロトコルが割り当てられており、 +まだ接続されていない .RB ( connect (2) -¤È +と .BR accept (2) -¤ò»²¾È¤Î¤³¤È)¡£ +を参照のこと)。 .TP .B ENOTSOCK .\"O The argument .\"O .I sockfd .\"O does not refer to a socket. -°ú¤­¿ô +引き数 .I sockfd -¤¬¥½¥±¥Ã¥È¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£ +がソケットを参照していない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O 4.4BSD (these function calls first appeared in 4.2BSD), .\"O POSIX.1-2001. -4.4BSD (¤³¤ì¤é¤Î´Ø¿ô¤Ï 4.2BSD ¤Ç¸½¤ï¤ì¤¿), POSIX.1-2001¡£ +4.4BSD (これらの関数は 4.2BSD で現われた), POSIX.1-2001。 .LP .\"O POSIX.1-2001 only describes the .\"O .BR MSG_OOB , @@ -762,13 +762,13 @@ POSIX.1-2001 .\"O and .\"O .B MSG_WAITALL .\"O flags. -POSIX.1-2001 ¤Ç¤Ï¡¢ +POSIX.1-2001 では、 .BR MSG_OOB , .BR MSG_PEEK , .B MSG_WAITALL -¥Õ¥é¥°¤À¤±¤¬µ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ +フラグだけが記載されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The prototypes given above follow glibc2. .\"O The Single UNIX Specification agrees, except that it has return values .\"O of type \fIssize_t\fP (while 4.x BSD and libc4 and libc5 all have \fIint\fP). @@ -784,19 +784,19 @@ POSIX.1-2001 .\"O The present \fIsocklen_t\ *\fP was invented by POSIX. .\"O See also .\"O .BR accept (2). -¾åµ­¤Î¥×¥í¥È¥¿¥¤¥×¤Ï glibc2 ¤Ë¤·¤¿¤¬¤Ã¤Æ¤¤¤ë¡£ -Single UNIX Specification ¤Ç¤âƱÍͤÀ¤¬¡¢ -ÊÖ¤êÃͤη¿¤¬ \fIssize_t\fP ¤È¤Ê¤Ã¤Æ¤¤¤ë -(°ìÊý¤Ç 4.x BSD ¤ä libc4 ¤ä libc5 ¤ÏÁ´¤Æ \fIint\fP ¤ò»ÈÍѤ·¤Æ¤¤¤ë)¡£ +上記のプロトタイプは glibc2 にしたがっている。 +Single UNIX Specification でも同様だが、 +返り値の型が \fIssize_t\fP となっている +(一方で 4.x BSD や libc4 や libc5 は全て \fIint\fP を使用している)。 .I flags -°ú¤­¿ô¤Ï 4.x BSD ¤Ç¤Ï \fIint\fP ¤À¤¬¡¢libc4 ¤È libc5 ¤Ç¤Ï \fIunsigned int\fP ¤Ç¤¢¤ë¡£ +引き数は 4.x BSD では \fIint\fP だが、libc4 と libc5 では \fIunsigned int\fP である。 .I len -°ú¤­¿ô¤Ï 4.x BSD ¤Ç¤Ï \fIint\fP ¤À¤¬¡¢ libc4 ¤È libc5 ¤Ç¤Ï \fIsize_t\fP ¤Ç¤¢¤ë¡£ +引き数は 4.x BSD では \fIint\fP だが、 libc4 と libc5 では \fIsize_t\fP である。 .I addrlen -°ú¤­¿ô¤Ï 4.x BSD, libc4, libc5 ¤Ç¤Ï \fIint\ *\fP ¤Ç¤¢¤ë¡£ -¸½ºß¤Î \fIsocklen_t\ *\fP ¤Ï POSIX ¤Çȯ°Æ¤µ¤ì¤¿¡£ +引き数は 4.x BSD, libc4, libc5 では \fIint\ *\fP である。 +現在の \fIsocklen_t\ *\fP は POSIX で発案された。 .BR accept (2) -¤â»²¾È¤¹¤ë¤³¤È¡£ +も参照すること。 .\"O According to POSIX.1-2001, the .\"O .I msg_controllen @@ -806,16 +806,16 @@ Single UNIX Specification .\"O .IR socklen_t , .\"O but glibc currently types it as .\"O .IR size_t . -POSIX.1-2001 ¤Ç¤Ï¡¢¹½Â¤ÂÎ +POSIX.1-2001 では、構造体 .I msghdr -¤Î¥Õ¥£¡¼¥ë¥É +のフィールド .I msg_controllen -¤Ï +は .I socklen_t -·¿¤Ç¤¢¤ë¤Ù¤­¤À¤È¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -¸½ºß¤Î glibc ¤Ç¤Ï +型であるべきだとされているが、 +現在の glibc では .I size_t -·¿¤Ç¤¢¤ë¡£ +型である。 .\" glibc bug raised 12 Mar 2006 .\" http://sourceware.org/bugzilla/show_bug.cgi?id=2448 .\" The problem is an underlying kernel issue: the size of the @@ -827,20 +827,20 @@ POSIX.1-2001 .\"O for information about a Linux-specific system call .\"O that can be used to receive multiple datagrams in a single call. .BR recvmmsg (2) -¤Ë¤Ï¡¢°ìÅ٤θƤӽФ·¤Ç¤ÎÊ£¿ô¤Î¥Ç¡¼¥¿¥°¥é¥à¤Ë»ÈÍѤǤ­¤ë Linux ¸ÇÍ­¤Î -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë´Ø¤¹¤ë¾ðÊ󤬽ñ¤«¤ì¤Æ¤¤¤ë¡£ +には、一度の呼び出しでの複数のデータグラムに使用できる Linux 固有の +システムコールに関する情報が書かれている。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O An example of the use of .\"O .BR recvfrom () .\"O is shown in .\"O .BR getaddrinfo (3). .BR recvfrom () -¤ÎÍøÍÑÎ㤬 +の利用例が .BR getaddrinfo (3) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ +に記載されている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fcntl (2), .BR getsockopt (2), .BR read (2), diff --git a/draft/man2/remap_file_pages.2 b/draft/man2/remap_file_pages.2 index e30c885d..07059336 100644 --- a/draft/man2/remap_file_pages.2 +++ b/draft/man2/remap_file_pages.2 @@ -33,30 +33,30 @@ .\" .TH REMAP_FILE_PAGES 2 2008-04-22 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O remap_file_pages \- create a nonlinear file mapping -remap_file_pages \- ÈóÀþ·Á¥Õ¥¡¥¤¥ë¥Þ¥Ã¥Ô¥ó¥°¤òºîÀ®¤¹¤ë¡£ +remap_file_pages \- 非線形ファイルマッピングを作成する。 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "int remap_file_pages(void *" addr ", size_t " size ", int " prot , .BI " ssize_t " pgoff ", int " flags ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR remap_file_pages () .\"O system call is used to create a nonlinear mapping, that is, a mapping .\"O in which the pages of the file are mapped into a nonsequential order .\"O in memory. .BR remap_file_pages () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÈóÀþ·Á¤Ê¥Þ¥Ã¥Ô¥ó¥°¡¢ -¤Ä¤Þ¤ê¥Õ¥¡¥¤¥ë¤Î¥Ú¡¼¥¸¤¬¥á¥â¥ê¾å¤ÇϢ³¤·¤Ê¤¤½çÈ֤ǥޥåפµ¤ì¤ë -¥Þ¥Ã¥Ô¥ó¥°¤òºîÀ®¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ +システムコールは非線形なマッピング、 +つまりファイルのページがメモリ上で連続しない順番でマップされる +マッピングを作成するために使われる。 .\"O The advantage of using .\"O .BR remap_file_pages () .\"O over using repeated calls to @@ -64,28 +64,28 @@ remap_file_pages \- .\"O is that the former approach does not require the kernel to create .\"O additional VMA (Virtual Memory Area) data structures. .BR remap_file_pages () -¤ò»È¤¦Êý¤¬ +を使う方が .BR mmap (2) -¤ò·«¤êÊÖ¤·¤Æ»È¤¦¤è¤êÍ¥¤ì¤Æ¤¤¤ëÅÀ¤Ï¡¢ -Á°¼Ô¤ÎÊýË¡¤Ç¤Ï¥«¡¼¥Í¥ë¤¬ VMA (Virtual Memory Area, ²¾ÁÛ¥á¥â¥êÎΰè) -¥Ç¡¼¥¿¹½Â¤ÂΤòÄɲäǺîÀ®¤¹¤ëɬÍפ¬¤Ê¤¤¤³¤È¤Ç¤¢¤ë¡£ +を繰り返して使うより優れている点は、 +前者の方法ではカーネルが VMA (Virtual Memory Area, 仮想メモリ領域) +データ構造体を追加で作成する必要がないことである。 .\"O To create a nonlinear mapping we perform the following steps: -ÈóÀþ·Á¥Þ¥Ã¥Ô¥ó¥°¤òºîÀ®¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ -°Ê²¼¤Î¤è¤¦¤Ê¥¹¥Æ¥Ã¥×¤ò¼Â¹Ô¤¹¤ë: +非線形マッピングを作成するためには、 +以下のようなステップを実行する: .TP 3 1. .\"O Use .\"O .BR mmap (2) .\"O to create a mapping (which is initially linear). .BR mmap (2) -¤ò»È¤¤¡¢¥Þ¥Ã¥Ô¥ó¥°¤òºîÀ®¤¹¤ë (¤³¤Î¥Þ¥Ã¥Ô¥ó¥°¤ÏºÇ½é¤ÏÀþ·Á¤Ç¤¢¤ë)¡£ +を使い、マッピングを作成する (このマッピングは最初は線形である)。 .\"O This mapping must be created with the .\"O .B MAP_SHARED .\"O flag. -¤³¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ï +このマッピングは .B MAP_SHARED -¥Õ¥é¥°¤ò»ØÄꤷ¤ÆºîÀ®¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +フラグを指定して作成されなければならない。 .TP 2. .\"O Use one or more calls to @@ -95,10 +95,10 @@ remap_file_pages \- .\"O It is possible to map the same page of a file .\"O into multiple locations within the mapped region. .BR remap_file_pages () -¤ò 1 ²ó°Ê¾å¸Æ¤Ó½Ð¤·¤Æ¡¢ -¥Þ¥Ã¥Ô¥ó¥°¤Î¥Ú¡¼¥¸¤È¥Õ¥¡¥¤¥ë¤Î¥Ú¡¼¥¸¤ÎÂбþ´Ø·¸¤òºÆ¹½À®¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¤ÎƱ¤¸¥Ú¡¼¥¸¤ò¥Þ¥Ã¥Ô¥ó¥°Îΰè¤ÎÊ£¿ô¤Î¾ì½ê¤Ë -¥Þ¥Ã¥×¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£ +を 1 回以上呼び出して、 +マッピングのページとファイルのページの対応関係を再構成する。 +ファイルの同じページをマッピング領域の複数の場所に +マップすることが可能である。 .LP .\"O The .\"O .I pgoff @@ -107,36 +107,36 @@ remap_file_pages \- .\"O arguments specify the region of the file that is to be relocated .\"O within the mapping: .I pgoff -¤È +と .I size -°ú¤­¿ô¤Ï¡¢¥Þ¥Ã¥Ô¥ó¥°Æâ¤ÇºÆÇÛÃÖ¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤ÎÎΰè¤ò»ØÄꤹ¤ë¡£ +引き数は、マッピング内で再配置されるファイルの領域を指定する。 .\"O .I pgoff .\"O is a file offset in units of the system page size; .I pgoff -¤Ï¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤Ç¤¢¤ê¡¢Ã±°Ì¤Ï¥·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥º¤Ç¤¢¤ë¡£ +はファイルオフセットであり、単位はシステムのページサイズである。 .\"O .I size .\"O is the length of the region in bytes. .I size -¤ÏÎΰè¤ÎŤµ¤Ç¤¢¤ê¡¢Ã±°Ì¤Ï¥Ð¥¤¥È¤Ç¤¢¤ë¡£ +は領域の長さであり、単位はバイトである。 .\"O The .\"O .I addr .\"O argument serves two purposes. .I addr -°ú¤­¿ô¤Ï 2 ¤Ä¤ÎÌÜŪ¤Ç»È¤ï¤ì¤ë¡£ +引き数は 2 つの目的で使われる。 .\"O First, it identifies the mapping whose pages we want to rearrange. -Âè 1 ¤ÎÌÜŪ¤Ï¡¢¤³¤Î°ú¤­¿ô¤Ë¤è¤Ã¤ÆºÆÊÔÀ®¤·¤¿¤¤¥Ú¡¼¥¸¤Î -¥Þ¥Ã¥Ô¥ó¥°¤ò¼±Ê̤¹¤ë¤³¤È¤Ç¤¢¤ë¡£ +第 1 の目的は、この引き数によって再編成したいページの +マッピングを識別することである。 .\"O Thus, .\"O .I addr .\"O must be an address that falls within .\"O a region previously mapped by a call to .\"O .BR mmap (2). -¤è¤Ã¤Æ +よって .I addr -¤Ï +は .BR mmap (2) -¤Î¸Æ¤Ó½Ð¤·¤Ç²áµî¤Ë¥Þ¥Ã¥×¤µ¤ì¤¿ÎΰèÆâ¤Î¥¢¥É¥ì¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +の呼び出しで過去にマップされた領域内のアドレスでなければならない。 .\"O Second, .\"O .I addr .\"O specifies the address at which the file pages @@ -145,13 +145,13 @@ remap_file_pages \- .\"O and .\"O .I size .\"O will be placed. -Âè 2 ¤ÎÌÜŪ¤Ï¡¢ +第 2 の目的は、 .I pgoff -¤È +と .I size -¤Ç¼±Ê̤µ¤ì¤ë¥Õ¥¡¥¤¥ë¥Ú¡¼¥¸¤¬ÃÖ¤«¤ì¤ëͽÄê¤Î¥¢¥É¥ì¥¹¤ò¡¢ +で識別されるファイルページが置かれる予定のアドレスを、 .I addr -¤Ë¤è¤Ã¤Æ»ØÄꤹ¤ë¤³¤È¤Ç¤¢¤ë¡£ +によって指定することである。 .\"O The values specified in .\"O .I addr @@ -167,20 +167,20 @@ remap_file_pages \- .\"O .\" the analogous arguments for munmap()/mprotect() and for mlock(). .\"O .\" MTK, 14 Sep 2005 .I addr -¤È +と .I size -¤Ë»ØÄꤹ¤ëÃͤϡ¢¥·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤È¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¥«¡¼¥Í¥ë¤Ï¡ÖξÊý¡×¤ÎÃͤò -ºÇ¤â¶á¤¤¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤Ø¡ÖÀڤ겼¤²¤ë¡×¡£ -.\" ¤³¤Î´Ý¤á½èÍý¤ÏÉ÷ÊѤï¤ê¤Ç¡¢munmap()/mprotect() ¤ä mlock() ¤Î -.\" ƱÍͤΰú¤­¿ô¤Î½èÍýÊýË¡¤È¤âÌ·½â¤¹¤ë¡£ +に指定する値は、システムのページサイズの倍数とすべきである。 +それ以外の場合、カーネルは「両方」の値を +最も近いページサイズの倍数へ「切り下げる」。 +.\" この丸め処理は風変わりで、munmap()/mprotect() や mlock() の +.\" 同様の引き数の処理方法とも矛盾する。 .\" MTK, 14 Sep 2005 .\"O The .\"O .I prot .\"O argument must be specified as 0. .I prot -°ú¤­¿ô¤Ï 0 ¤Ë»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数は 0 に指定されなければならない。 .\"O The .\"O .I flags @@ -190,27 +190,27 @@ remap_file_pages \- .\"O .B MAP_NONBLOCK .\"O are ignored. .I flags -°ú¤­¿ô¤Ï +引き数は .BR mmap (2) -¤Î¤â¤Î¤ÈƱ¤¸°ÕÌ£¤Ç¤¢¤ë¤¬¡¢ +のものと同じ意味であるが、 .B MAP_NONBLOCK -°Ê³°¤ÎÁ´¤Æ¤Î¥Õ¥é¥°¤Ï̵»ë¤µ¤ì¤ë¡£ +以外の全てのフラグは無視される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR remap_file_pages () .\"O returns 0. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR remap_file_pages () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +は 0 を返す。 +エラーの場合、\-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O .I addr @@ -219,9 +219,9 @@ remap_file_pages \- .\"O .B MAP_SHARED .\"O flag. .I addr -¤¬ +が .B MAP_SHARED -¥Õ¥é¥°¤ò»ØÄꤷ¤ÆºîÀ®¤µ¤ì¤¿Í­¸ú¤Ê¥Þ¥Ã¥Ô¥ó¥°¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£ +フラグを指定して作成された有効なマッピングを参照していない。 .TP .B EINVAL .\"O .IR addr , @@ -234,30 +234,30 @@ remap_file_pages \- .IR size , .IR prot , .I pgoff -¤Î¤¤¤º¤ì¤«¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +のいずれかが不正である。 .\"O .\" And possibly others from vma->vm_ops->populate() .\"Osato: -.\"Osato: others ¤¬²¿¤ò»Ø¤¹¤Î¤«¤è¤¯Ê¬¤«¤é¤Ê¤¤¡£ +.\"Osato: others が何を指すのかよく分からない。 .\"Osato: -.\" ¤Þ¤¿¤Ï vma->vm_ops->populate() ¤«¤é¤Î¾¤Î¥¨¥é¡¼¤«¤â¤·¤ì¤Ê¤¤¡£ +.\" または vma->vm_ops->populate() からの他のエラーかもしれない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The .\"O .BR remap_file_pages () .\"O system call appeared in Linux 2.5.46; .\"O glibc support was added in version 2.3.3. .BR remap_file_pages () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 2.5.46 ¤ÇÅо줷¤¿¡£ -glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.3.3 ¤ÇÄɲ䵤줿¡£ +システムコールは Linux 2.5.46 で登場した。 +glibc でのサポートは glibc バージョン 2.3.3 で追加された。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The .\"O .BR remap_file_pages () .\"O system call is Linux-specific. .BR remap_file_pages () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Î¤â¤Î¤Ç¤¢¤ë¡£ +システムコールは Linux 固有のものである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getpagesize (2), .BR mmap (2), .BR mmap2 (2), diff --git a/draft/man2/removexattr.2 b/draft/man2/removexattr.2 index 2317ae55..6a48e44f 100644 --- a/draft/man2/removexattr.2 +++ b/draft/man2/removexattr.2 @@ -29,16 +29,16 @@ .\" Translated Tue Jul 8 04:43:40 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: extended attributes ³Èĥ°À­ -.\"WORD: namespace ̾Á°¶õ´Ö +.\"WORD: extended attributes 拡張属性 +.\"WORD: namespace 名前空間 .\" .TH REMOVEXATTR 2 2001-12-01 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O removexattr, lremovexattr, fremovexattr \- remove an extended attribute -.SH ̾Á° -removexattr, lremovexattr, fremovexattr \- ³Èĥ°À­¤òºï½ü¤¹¤ë +.SH 名前 +removexattr, lremovexattr, fremovexattr \- 拡張属性を削除する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .fam C .nf .B #include @@ -50,7 +50,7 @@ removexattr, lremovexattr, fremovexattr \- .fi .fam T .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Extended attributes are .\"O .IR name :\c .\"O value pairs associated with inodes (files, directories, symbolic links, etc.). @@ -60,17 +60,17 @@ removexattr, lremovexattr, fremovexattr \- .\"O data). .\"O A complete overview of extended attributes concepts can be found in .\"O .BR attr (5). -³Èĥ°À­¤Ï¡¢inode (¥Õ¥¡¥¤¥ë¡¢¥Ç¥£¥ì¥¯¥È¥ê¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯Åù) ¤Ë -´ØÏ¢ÉÕ¤±¤é¤ì¤¿ +拡張属性は、inode (ファイル、ディレクトリ、シンボリックリンク等) に +関連付けられた .IR name :\c .I value -¤ÎÂФǤ¢¤ë¡£ -¤³¤ì¤é¤Ï¡¢¥·¥¹¥Æ¥à¾å¤Î¤¹¤Ù¤Æ¤Î inode ¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿Ä̾ï¤Î°À­ +の対である。 +これらは、システム上のすべての inode に関連付けられた通常の属性 .RB ( stat (2) -¤¬ÊÖ¤¹¥Ç¡¼¥¿) ¤ò³ÈÄ¥¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -³Èĥ°À­¤Î¥³¥ó¥»¥×¥È¤Ï +が返すデータ) を拡張するものである。 +拡張属性のコンセプトは .BR attr (5) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ +に書かれている。 .PP .\"O .BR removexattr () .\"O removes the extended attribute identified by @@ -79,11 +79,11 @@ removexattr, lremovexattr, fremovexattr \- .\"O .I path .\"O in the file system. .BR removexattr () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÆâ¤Î»ØÄꤵ¤ì¤¿ +は、ファイルシステム内の指定された .I path -¤ËÂбþ¤¹¤ë¡¢Ì¾Á° +に対応する、名前 .I name -¤Î³Èĥ°À­¤òºï½ü¤¹¤ë¡£ +の拡張属性を削除する。 .PP .\"O .BR lremovexattr () .\"O is identical to @@ -91,10 +91,10 @@ removexattr, lremovexattr, fremovexattr \- .\"O except in the case of a symbolic link, where the extended attribute is .\"O removed from the link itself, not the file that it refers to. .BR lremovexattr () -¤Ï +は .BR removexattr () -¤ÈƱ¤¸¤À¤¬¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¤Ë¡¢¥ê¥ó¥¯¤¬»²¾È¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë -¤Ç¤Ï¤Ê¤¯¡¢¥ê¥ó¥¯¤½¤Î¤â¤Î¤Î¾ðÊó¤òºï½ü¤¹¤ëÅÀ¤À¤±¤¬°Û¤Ê¤ë¡£ +と同じだが、シンボリックリンクの場合に、リンクが参照しているファイル +ではなく、リンクそのものの情報を削除する点だけが異なる。 .PP .\"O .BR fremovexattr () .\"O is identical to @@ -106,77 +106,77 @@ removexattr, lremovexattr, fremovexattr \- .\"O in place of .\"O .IR path . .BR fremovexattr () -¤Ï +は .BR removexattr () -¤ÈƱ¤¸¤À¤¬¡¢ +と同じだが、 .I path -¤ÎÂå¤ï¤ê¤Ë +の代わりに .I fd -¤Ç»²¾È¤µ¤ì¤¿¥ª¡¼¥×¥óºÑ¤ß¥Õ¥¡¥¤¥ë¤«¤é³Èĥ°À­¤òºï½ü¤¹¤ë¤À¤±¤Ç¤¢¤ëÅÀ¤¬°Û¤Ê¤ë +で参照されたオープン済みファイルから拡張属性を削除するだけである点が異なる .RI ( fd -¤Ï +は .BR open (2) -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë)¡£ +によって返される)。 .PP .\"O An extended attribute name is a simple null-terminated string. .\"O The .\"O .I name .\"O includes a namespace prefix; there may be several, disjoint .\"O namespaces associated with an individual inode. -³Èĥ°À­¤Î̾Á°¤Ï¡¢ÉáÄ̤ΠNULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ç¤¢¤ë¡£ +拡張属性の名前は、普通の NULL 終端された文字列である。 .I name -¤Ë¤Ï¡¢Ì¾Á°¶õ´Ö¤òɽ¤¹ÀÜƬ¼­ (prefix) ¤¬´Þ¤Þ¤ì¤ë¡£ -¸Ä¡¹¤Î inode ¤ËÂФ·¡¢¸ß¤¤¤ËÆÈΩ¤Ê̾Á°¶õ´Ö¤¬Ê£¿ô¤¢¤Ã¤Æ¤â¤è¤¤¡£ +には、名前空間を表す接頭辞 (prefix) が含まれる。 +個々の inode に対し、互いに独立な名前空間が複数あってもよい。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On failure, \-1 is returned and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢ \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合、0 が返される。 +失敗した場合、 \-1 が返され、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +に適切な値がセットされる。 .PP .\"O If the named attribute does not exist, .\"O .I errno .\"O is set to .\"O .BR ENOATTR . -»ØÄꤵ¤ì¤¿Ì¾Á°¤Î°À­¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢ +指定された名前の属性が存在しない場合、 .I errno -¤Ë +に .B ENOATTR -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .PP .\"O If extended attributes are not supported by the file system, or are disabled, .\"O .I errno .\"O is set to .\"O .BR ENOTSUP . -³Èĥ°À­¤¬¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -¤â¤·¤¯¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ +拡張属性がそのファイルシステムでサポートされていない場合、 +もしくは無効になっている場合、 .I errno -¤Ë +に .B ENOTSUP -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .PP .\"O The errors documented for the .\"O .BR stat (2) .\"O system call are also applicable here. .BR stat (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÀâÌÀ¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ï -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤âŬÍѤµ¤ì¤ë¡£ +システムコールの説明に書かれているエラーは +これらのシステムコールにも適用される。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These system calls have been available on Linux since kernel 2.4; .\"O glibc support is provided since version 2.3. -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë 2.4 °Ê¹ß¤Î Linux ¤ÇÍøÍѤǤ­¤ë¡£ -glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.3 °Ê¹ß¤Ç¹Ô¤ï¤ì¤Æ¤¤¤ë¡£ +これらのシステムコールはカーネル 2.4 以降の Linux で利用できる。 +glibc でのサポートはバージョン 2.3 以降で行われている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These system calls are Linux-specific. -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ +これらのシステムコールは Linux 独自である。 .\"O .\" .SH AUTHORS -.\" .SH Ãø¼Ô +.\" .SH 著者 .\"O .\" Andreas Gruenbacher, .\"O .\" .RI < a.gruenbacher@computer.org > .\"O .\" and the SGI XFS development team, @@ -184,11 +184,11 @@ glibc .\"O .\" Please send any bug reports or comments to these addresses. .\" Andreas Gruenbacher, .\" .RI < a.gruenbacher@computer.org > -.\" ¤È SGI XFS ³«È¯¥Á¡¼¥à, -.\" .RI < linux-xfs@oss.sgi.com >¡£ -.\" ¥Ð¥°¥ì¥Ý¡¼¥È¤ä¥³¥á¥ó¥È¤Ï¾åµ­¤Î¥¢¥É¥ì¥¹¤Þ¤ÇÁ÷¤Ã¤Æ²¼¤µ¤¤¡£ +.\" と SGI XFS 開発チーム, +.\" .RI < linux-xfs@oss.sgi.com >。 +.\" バグレポートやコメントは上記のアドレスまで送って下さい。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getfattr (1), .BR setfattr (1), .BR getxattr (2), diff --git a/draft/man2/rename.2 b/draft/man2/rename.2 index 560fda80..e3a84316 100644 --- a/draft/man2/rename.2 +++ b/draft/man2/rename.2 @@ -39,50 +39,50 @@ .\" Updated 2007-05-04, Akihiro MOTOKI , LDP v2.44 .\" Updated 2009-04-24, Akihiro MOTOKI , LDP v3.20 .\" -.\"WORD: directory ¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: hard link ¥Ï¡¼¥É¡¦¥ê¥ó¥¯ -.\"WORD: overwrite ¾å½ñ¤­(overwrite) -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: crash ¥¯¥é¥Ã¥·¥å -.\"WORD: symbolic link ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: working directory ¥ï¡¼¥­¥ó¥°¡¦¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: root directory ¥ë¡¼¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: effective uid ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: sticky bit ¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È -.\"WORD: memory ¥á¥â¥ê -.\"WORD: read-only Æɤ߹þ¤ßÀìÍÑ -.\"WORD: uid ¥æ¡¼¥¶¡¼ID -.\"WORD: dangling symbolic link ²õ¤ì¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: server ¥µ¡¼¥Ð¡¼ +.\"WORD: directory ディレクトリ +.\"WORD: hard link ハード・リンク +.\"WORD: overwrite 上書き(overwrite) +.\"WORD: process プロセス +.\"WORD: crash クラッシュ +.\"WORD: symbolic link シンボリック・リンク +.\"WORD: working directory ワーキング・ディレクトリ +.\"WORD: root directory ルート・ディレクトリ +.\"WORD: effective uid 実効ユーザーID +.\"WORD: sticky bit スティッキー・ビット +.\"WORD: memory メモリ +.\"WORD: read-only 読み込み専用 +.\"WORD: uid ユーザーID +.\"WORD: dangling symbolic link 壊れたシンボリック・リンク +.\"WORD: server サーバー .\" .TH RENAME 2 2009-03-30 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O rename \- change the name or location of a file -rename \- ¥Õ¥¡¥¤¥ë¤Î̾Á°¤ä°ÌÃÖ¤òÊѹ¹¤¹¤ë +rename \- ファイルの名前や位置を変更する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int rename(const char *" oldpath ", const char *" newpath ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR rename () .\"O renames a file, moving it between directories if required. .BR rename () -¤Ï¥Õ¥¡¥¤¥ë¤Î̾Á°¤òÊѹ¹¤·¡¢É¬Íפʤé¤Ð¥Ç¥£¥ì¥¯¥È¥ê´Ö¤Î°ÜÆ°¤ò¹Ô¤Ê¤¦¡£ +はファイルの名前を変更し、必要ならばディレクトリ間の移動を行なう。 .\"O Any other hard links to the file (as created using .\"O .BR link (2)) .\"O are unaffected. -¤½¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë +そのファイルに対する .RB ( link (2) -¤ò»ÈÍѤ·¤Æºî¤é¤ì¤¿) ¾¤Î¥Ï¡¼¥É¥ê¥ó¥¯ (hard link) ¤Ë¤Ï±Æ¶Á¤Ï¤Ê¤¤¡£ +を使用して作られた) 他のハードリンク (hard link) には影響はない。 .\"O Open file descriptors for .\"O .I oldpath .\"O are also unaffected. -¥ª¡¼¥×¥óºÑ¤Î +オープン済の .I oldpath -¤ËÂФ¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤â±Æ¶Á¤Ï¤Ê¤¤¡£ +に対するファイルディスクリプタにも影響はない。 .\"O If .\"O .I newpath @@ -92,12 +92,12 @@ rename \- .\"O .I newpath .\"O will find it missing. .I newpath -¤¬´û¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢¤½¤ì¤ÏÉÔ²ÄʬÁàºî¤Ç (atomically) ÃÖ¤­´¹¤¨¤é¤ì¤ë -(¤¿¤À¤·¡¢¤¤¤¯¤Ä¤«¤Î¾ò·ï¤¬¤¢¤ë; °Ê²¼¤Î¡Ö¥¨¥é¡¼¡×¤Î¥»¥¯¥·¥ç¥ó¤ò»²¾È)¡£ -¤½¤Î¤¿¤á¡¢ +が既に存在する場合、それは不可分操作で (atomically) 置き換えられる +(ただし、いくつかの条件がある; 以下の「エラー」のセクションを参照)。 +そのため、 .I newpath -¤Ë¥¢¥¯¥»¥¹¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¾¤Î¥×¥í¥»¥¹¤¬¥Õ¥¡¥¤¥ë¤ò¸«¼º¤¦¤³¤È¤Ï¤Ê¤¤ -(ÌõÃð: ¾ï¤Ë¥¢¥¯¥»¥¹²Äǽ¤Ç¤¢¤ë)¡£ +にアクセスしようとしている他のプロセスがファイルを見失うことはない +(訳註: 常にアクセス可能である)。 .\"O If .\"O .I oldpath @@ -107,11 +107,11 @@ rename \- .\"O .BR rename () .\"O does nothing, and returns a success status. .I oldpath -¤È +と .I newpath -¤¬¤É¤Á¤é¤â´û¸¤Î¥Ï¡¼¥É¥ê¥ó¥¯¤Ç¡¢Æ±¤¸¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¡¢ +がどちらも既存のハードリンクで、同じファイルを参照している場合、 .BR rename () -¤Ï²¿¤â¹Ô¤ï¤º¡¢¥¹¥Æ¡¼¥¿¥¹¤È¤·¤ÆÀ®¸ù¤òÊÖ¤¹¡£ +は何も行わず、ステータスとして成功を返す。 .\"O If .\"O .I newpath @@ -121,11 +121,11 @@ rename \- .\"O .I newpath .\"O in place. .I newpath -¤¬Â¸ºß¤·¡¢²¿¤é¤«¤ÎÍýͳ¤ÇÁàºî¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +が存在し、何らかの理由で操作が失敗した場合、 .BR rename () -¤Ï +は .I newpath -¤Î¼ÂÂΤò¸µ¤Î¤Þ¤Þ»Ä¤¹¤³¤È¤òÊݾڤ¹¤ë¡£ +の実体を元のまま残すことを保証する。 .\"O .I oldpath .\"O can specify a directory. @@ -133,10 +133,10 @@ rename \- .\"O .I newpath .\"O must either not exist, or it must specify an empty directory. .I oldpath -¤Ë¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¤³¤Î¾ì¹ç¡¢ +にはディレクトリを指定することもできる。 +この場合、 .I newpath -¤Ï¸ºß¤·¤Ê¤¤¤«¡¢¶õ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は存在しないか、空のディレクトリでなければならない。 .\"O However, when overwriting there will probably be a window in which .\"O both @@ -144,11 +144,11 @@ rename \- .\"O and .\"O .I newpath .\"O refer to the file being renamed. -°ìÊý¤Ç¡¢¾å½ñ¤­¤ò¹Ô¤Ê¤¦¾ì¹ç¤Ï¡¢rename ¤¬¹Ô¤Ê¤ï¤ì¤ë¥Õ¥¡¥¤¥ë¤ò +一方で、上書きを行なう場合は、rename が行なわれるファイルを .I oldpath -¤È +と .I newpath -¤ÎξÊý¤Ç»²¾È¤Ç¤­¤ë½Ö´Ö¤¬¤ª¤½¤é¤¯Â¸ºß¤¹¤ë¡£ +の両方で参照できる瞬間がおそらく存在する。 .\"O If .\"O .I oldpath @@ -156,22 +156,22 @@ rename \- .\"O .I newpath .\"O refers to a symbolic link the link will be overwritten. .I oldpath -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ (symbolic link) ¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ -¥ê¥ó¥¯¤Î̾Á°¤¬Êѹ¹¤µ¤ì¤ë¡£ -¤Þ¤¿¡¢ +がシンボリック・リンク (symbolic link) を参照している場合は、 +リンクの名前が変更される。 +また、 .I newpath -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¥ê¥ó¥¯¤¬¾å½ñ¤­¤µ¤ì¤ë¡£ +がシンボリック・リンクを参照している場合は、リンクが上書きされる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +成功した場合は 0 を返す。エラーの場合は \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O Write permission is denied for the directory containing @@ -191,18 +191,18 @@ rename \- .\"O entry). .\"O (See also .\"O .BR path_resolution (7).) -.IR oldpath " ¤Þ¤¿¤Ï " newpath -¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î½ñ¤­¹þ¤ßµö²Ä¤¬¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢ -.IR oldpath " ¤Þ¤¿¤Ï " newpath -¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤Î¤É¤ì¤«¤Ë¸¡º÷µö²Ä¤¬¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢ +.IR oldpath " または " newpath +を含んでいるディレクトリの書き込み許可がない。 +または、 +.IR oldpath " または " newpath +のディレクトリ部分のどれかに検索許可がない。 +または、 .I oldpath -¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç +がディレクトリで .RI ( .. -¥¨¥ó¥È¥ê¤ò¹¹¿·¤¹¤ë¤Î¤ËɬÍפÊ) ½ñ¤­¹þ¤ßµö²Ä¤¬¤Ê¤¤ +エントリを更新するのに必要な) 書き込み許可がない .RB ( path_resolution (7) -¤â»²¾È)¡£ +も参照)。 .TP .B EBUSY .\"O The rename fails because @@ -212,12 +212,12 @@ rename \- .\"O it was open for reading) or is in use by the system .\"O (for example as mount point), while the system considers .\"O this an error. -.IR oldpath " ¤Þ¤¿¤Ï " newpath -¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¡¢²¿¤é¤«¤Î¥×¥í¥»¥¹¤¬»ÈÍÑÃæ -(¿ʬ¡¢¥«¥ì¥ó¥È¡¦¥ï¡¼¥­¥ó¥°¡¦¥Ç¥£¥ì¥¯¥È¥ê¤«¡¢¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤«¡¢ -Æɤ߹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¤«¤Ç¤í¤¦) -¤â¤·¤¯¤Ï¡¢¥·¥¹¥Æ¥à¤¬»ÈÍÑÃæ (Î㤨¤Ð¥Þ¥¦¥ó¥È¡¦¥Ý¥¤¥ó¥È¤Ç¤¢¤ë) -¤Ç¤¢¤ê¡¢¥·¥¹¥Æ¥à¤¬¤³¤ì¤ò¥¨¥é¡¼¤Ç¤¢¤ë¤ÈȽÃǤ·¤¿¤¿¤á¤Ë rename ¤¬¼ºÇÔ¤·¤¿¡£ +.IR oldpath " または " newpath +がディレクトリで、何らかのプロセスが使用中 +(多分、カレント・ワーキング・ディレクトリか、ルートディレクトリか、 +読み込みのためにオープンされているかでろう) +もしくは、システムが使用中 (例えばマウント・ポイントである) +であり、システムがこれをエラーであると判断したために rename が失敗した。 .\"O (Note that there is no requirement to return .\"O .B EBUSY .\"O in such @@ -226,25 +226,25 @@ rename \- .\"O .B EBUSY .\"O if the system cannot otherwise .\"O handle such situations.) -(¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ë +(このような場合に .B EBUSY -¤òÊÖ¤¹¤³¤È¤Ïµ¬³Ê¤Ç¤ÏÍ׵ᤵ¤ì¤Æ¤¤¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¡¢rename ¤ò¤È¤Ë¤«¤¯¼Â¹Ô¤·¤Æ¤ß¤ë¤Î¤Ï²¿¤ÎÌäÂê¤â¤Ê¤¤¡£ -¤¿¤À¤·¡¢¤½¤Î¤è¤¦¤Ê¾õ¶·¤Ç¡¢¥·¥¹¥Æ¥à¤¬Â¾¤ËÊÖ¤¹¥¨¥é¡¼¤¬¤Ê¤¤¾ì¹ç¤Ë¤Ï +を返すことは規格では要求されていない点に注意すること。 +このような場合に、rename をとにかく実行してみるのは何の問題もない。 +ただし、そのような状況で、システムが他に返すエラーがない場合には .B EBUSY -¤òÊÖ¤¹¤³¤È¤¬µö¤µ¤ì¤Æ¤¤¤ë¡£) +を返すことが許されている。) .TP .B EFAULT .\"O .IR oldpath " or " newpath " points outside your accessible address space." -.IR oldpath " ¤Þ¤¿¤Ï " newpath -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +.IR oldpath " または " newpath +がアクセス可能なアドレス空間の外を指している。 .TP .B EINVAL .\"O The new pathname contained a path prefix of the old, or, more generally, .\"O an attempt was made to make a directory a subdirectory of itself. -.IR newpath " ¤¬ " oldpath -¤Î¥Ñ¥¹Éôʬ¤ò´Þ¤ó¤Ç¤¤¤ë¡£¥Ç¥£¥ì¥¯¥È¥ê¤ò¼«Ê¬¼«¿È¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë -Êѹ¹¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤¬¤Û¤È¤ó¤É¤Ç¤¢¤ë¡£ +.IR newpath " が " oldpath +のパス部分を含んでいる。ディレクトリを自分自身のサブディレクトリに +変更しようとした場合がほとんどである。 .TP .B EISDIR .\"O .I newpath @@ -252,15 +252,15 @@ rename \- .\"O .I oldpath .\"O is not a directory. .I newpath -¤Ï¸ºß¤·¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¤¬¡¢ +は存在しているディレクトリであるが、 .I oldpath -¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +はディレクトリでない。 .TP .B ELOOP .\"O Too many symbolic links were encountered in resolving .\"O .IR oldpath " or " newpath . -.IR oldpath " ¤Þ¤¿¤Ï " newpath -¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ +.IR oldpath " または " newpath +を解決する際に遭遇したシンボリック・リンクが多過ぎる。 .TP .B EMLINK .\"O .I oldpath @@ -269,13 +269,13 @@ rename \- .\"O .I newpath .\"O has the maximum number of links. .I oldpath -¤Ï´û¤ËºÇÂç¿ô¤Þ¤Ç¤Î¥ê¥ó¥¯¤ò»ý¤Ã¤Æ¤¤¤ë¤«¡¢¤½¤ì¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç +は既に最大数までのリンクを持っているか、それがディレクトリで .I newpath -¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤¬ºÇÂç¿ô¤Þ¤Ç¤Î¥ê¥ó¥¯¤ò»ý¤Ã¤Æ¤¤¤ë¡£ +を含んでいるディレクトリが最大数までのリンクを持っている。 .TP .B ENAMETOOLONG .\"O .IR oldpath " or " newpath " was too long." -.IR oldpath " ¤Þ¤¿¤Ï " newpath " ¤¬Ä¹²á¤®¤ë¡£" +.IR oldpath " または " newpath " が長過ぎる。" .TP .B ENOENT .\"O The link named by @@ -290,53 +290,53 @@ rename \- .\"O .I newpath .\"O is an empty string. .I oldpath -¤È¤¤¤¦Ì¾Á°¤Î¥ê¥ó¥¯¤¬Â¸ºß¤·¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢ +という名前のリンクが存在しない。 +または、 .I newpath -¤È¤¤¤¦¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢ +というディレクトリが存在しない。 +または、 .I oldpath -¤« +か .I newpath -¤¬¶õ¤Îʸ»úÎó¤Ç¤¢¤ë¡£ +が空の文字列である。 .TP .B ENOMEM .\"O Insufficient kernel memory was available. -¥«¡¼¥Í¥ë¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬Â¸ºß¤·¤Ê¤¤¡£ +カーネルに十分なメモリが存在しない。 .TP .B ENOSPC .\"O The device containing the file has no room for the new directory .\"O entry. -¥Õ¥¡¥¤¥ë¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥Ð¥¤¥¹¤Ë¿·¤·¤¤¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤ò -ºîÀ®¤¹¤ë¤¿¤á¤Î¶õ¤­¤¬¤Ê¤¤¡£ +ファイルを含んでいるデバイスに新しいディレクトリ・エントリを +作成するための空きがない。 .TP .B ENOTDIR .\"O A component used as a directory in .\"O .IR oldpath " or " newpath .\"O is not, in fact, a directory. -.IR oldpath " ¤« " newpath -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬ -¼ÂºÝ¤Ë¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +.IR oldpath " か " newpath +に含まれているディレクトリ部分が +実際にはディレクトリでない。 .\"O Or, .\"O .I oldpath .\"O is a directory, and .\"O .I newpath .\"O exists but is not a directory. -¤Þ¤¿¤Ï +または .I oldpath -¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¡¢ +がディレクトリで、 .I newpath -¤¬Â¸ºß¤·¤Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +が存在してディレクトリでない。 .TP .\"O .BR ENOTEMPTY " or " EEXIST -.B ENOTEMPTY " ¤Þ¤¿¤Ï " EEXIST +.B ENOTEMPTY " または " EEXIST .\"O .I newpath .\"O is a nonempty directory, that is, contains entries other than "." and "..". .I newpath -¤¬¶õ¤Ç¤Ê¤¤¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¡£¤¹¤Ê¤ï¤Á "." ¤È ".." °Ê³°¤ò´Þ¤ó¤Ç¤¤¤ë¡£ +が空でないディレクトリである。すなわち "." と ".." 以外を含んでいる。 .TP .\"O .BR EPERM " or " EACCES -.BR EPERM " ¤Þ¤¿¤Ï " EACCES +.BR EPERM " または " EACCES .\"O The directory containing .\"O .I oldpath .\"O has the sticky bit @@ -348,15 +348,15 @@ rename \- .\"O .B CAP_FOWNER .\"O capability); .I oldpath -¤Î¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È (sticky bit) +のあるディレクトリにスティッキー・ビット (sticky bit) .RB ( S_ISVTX ) -¤¬ÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢ -¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ -ºï½ü¤·¤è¤¦¤È¤¹¤ë¥Õ¥¡¥¤¥ë¤Î¥æ¡¼¥¶¡¼ ID ¤È -¤½¤Î¥Õ¥¡¥¤¥ë¤ò´Þ¤à¥Ç¥£¥ì¥¯¥È¥ê¤Î¥æ¡¼¥¶¡¼ ID ¤Î¤¤¤º¤ì¤È¤â°ìÃפ»¤º¡¢¤«¤Ä -¥×¥í¥»¥¹¤ËÆø¢¤¬¤Ê¤¤ (Linux ¤Ç¤Ï +が設定されており、 +プロセスの実効ユーザー ID が +削除しようとするファイルのユーザー ID と +そのファイルを含むディレクトリのユーザー ID のいずれとも一致せず、かつ +プロセスに特権がない (Linux では .B CAP_FOWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤¬¤Ê¤¤)¡£ +ケーパビリティ (capability) がない)。 .\"O or .\"O .I newpath .\"O is an existing file and the directory containing it has the sticky bit set @@ -366,47 +366,47 @@ rename \- .\"O (Linux: does not have the .\"O .B CAP_FOWNER .\"O capability); -¤Þ¤¿¤Ï¡¢ +または、 .I newpath -¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¤Ç¡¢¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥¹¥Æ¥£¥Ã¥­¡¼¥Ó¥Ã¥È¤¬ÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢ -¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ -ÃÖ¤­´¹¤¨¤è¤¦¤È¤¹¤ë¥Õ¥¡¥¤¥ë¤Î¥æ¡¼¥¶¡¼ ID ¤È -¤½¤Î¥Õ¥¡¥¤¥ë¤ò´Þ¤à¥Ç¥£¥ì¥¯¥È¥ê¤Î¥æ¡¼¥¶¡¼ ID ¤Î¤¤¤º¤ì¤È¤â°ìÃפ»¤º¡¢¤«¤Ä -¥×¥í¥»¥¹¤ËÆø¢¤¬¤Ê¤¤ (Linux ¤Ç¤Ï +がすでに存在するファイルで、親ディレクトリにスティッキービットが設定されており、 +プロセスの実効ユーザー ID が +置き換えようとするファイルのユーザー ID と +そのファイルを含むディレクトリのユーザー ID のいずれとも一致せず、かつ +プロセスに特権がない (Linux では .B CAP_FOWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¤Ê¤¤)¡£ +ケーパビリティがない)。 .\"O or the file system containing .\"O .I pathname .\"O does not support renaming of the type requested. -¤Þ¤¿¤Ï -.IR oldpath " ¤È " newpath -¤¬Â¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤¬¡¢Í׵ᤵ¤ì¤¿¼ïÎà¤Î̾Á°¤ÎÊѹ¹¤ò -¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +または +.IR oldpath " と " newpath +が存在するファイル・システムが、要求された種類の名前の変更を +サポートしていない。 .TP .B EROFS .\"O The file is on a read-only file system. -¥Õ¥¡¥¤¥ë¤¬Æɤ߹þ¤ßÀìÍÑ (read-only) ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë¤¢¤ë¡£ +ファイルが読み込み専用 (read-only) ファイル・システムにある。 .TP .B EXDEV .\"O .IR oldpath " and " newpath .\"O are not on the same mounted file system. -.IR oldpath " ¤È " newpath -¤¬Æ±¤¸¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë¸ºß¤·¤Ê¤¤¡£ +.IR oldpath " と " newpath +が同じマウントされたファイル・システムに存在しない。 .\"O (Linux permits a file system to be mounted at multiple points, but .\"O .BR rename () .\"O does not work across different mount points, .\"O even if the same file system is mounted on both.) -(Linux ¤Ï 1 ¤Ä¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤òÊ£¿ô¤Î¥Þ¥¦¥ó¥È°ÌÃÖ¤Ë -¥Þ¥¦¥ó¥È¤¹¤ë¤³¤È¤òµö²Ä¤·¤Æ¤¤¤ë¡£ -¤·¤«¤· +(Linux は 1 つのファイル・システムを複数のマウント位置に +マウントすることを許可している。 +しかし .BR rename () -¤Ï¡¢¤¿¤È¤¨Æ±¤¸¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ç¤¢¤Ã¤Æ¤â¡¢ -ÊÌ¡¹¤Î¥Þ¥¦¥ó¥È°ÌÃÖ¤ò¸Ù¤¤¤Ç¤ÏÆ°ºî¤·¤Ê¤¤¡£) +は、たとえ同じファイル・システムであっても、 +別々のマウント位置を跨いでは動作しない。) .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.3BSD, C89, C99, POSIX.1-2001. .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O On NFS file systems, you can not assume that if the operation .\"O failed the file was not renamed. .\"O If the server does the rename operation @@ -417,17 +417,17 @@ rename \- .\"O See .\"O .BR link (2) .\"O for a similar problem. -NFS ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ç¤Ï¡¢Áàºî¤¬¼ºÇÔ¤·¤¿¤«¤é¤È¤¤¤Ã¤Æ¡¢ -¥Õ¥¡¥¤¥ë¤Î̾Á°¤¬Êѹ¹¤Ç¤­¤Ê¤«¤Ã¤¿¤È·è¤á¤Æ¤«¤«¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -¥µ¡¼¥Ð¤¬ rename Áàºî¤ò½ª¤¨¤Æ¤«¤é¥¯¥é¥Ã¥·¥å¤·¤¿¾ì¹ç¡¢ -¥µ¡¼¥Ð¤¬ºÆ¤ÓΩ¤Á¾å¤¬¤Ã¤¿¤È¤­¤Ë¡¢ -ºÆÁ÷¿®¤µ¤ì¤¿ RPC ¤¬½èÍý¤µ¤ì¤ë¤¬¡¢¤³¤ì¤Ï¼ºÇԤȤʤ롣 -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¤³¤ÎÌäÂê¤òÀµ¤·¤¯¼è¤ê°·¤¦¤³¤È¤¬´üÂÔ¤µ¤ì¤Æ¤¤¤ë¡£ -ƱÍͤÎÌäÂê¤Ë¤Ä¤¤¤Æ +NFS ファイル・システムでは、操作が失敗したからといって、 +ファイルの名前が変更できなかったと決めてかかることはできない。 +サーバが rename 操作を終えてからクラッシュした場合、 +サーバが再び立ち上がったときに、 +再送信された RPC が処理されるが、これは失敗となる。 +アプリケーションはこの問題を正しく取り扱うことが期待されている。 +同様の問題について .BR link (2) -¤Ë¤â½ñ¤«¤ì¤Æ¤¤¤ë¡£ +にも書かれている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mv (1), .BR chmod (2), .BR link (2), diff --git a/draft/man2/renameat.2 b/draft/man2/renameat.2 index 37f0a638..b0af8a09 100644 --- a/draft/man2/renameat.2 +++ b/draft/man2/renameat.2 @@ -28,14 +28,14 @@ .\" .TH RENAMEAT 2 2009-12-13 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O renameat \- rename a file relative to directory file descriptors -renameat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÁêÂÐŪ¤Ê°ÌÃ֤ˤ¢¤ë¥Õ¥¡¥¤¥ë¤Î̾Á°¤òÊѹ¹¤¹¤ë +renameat \- ディレクトリファイルディスクリプタから相対的な位置にあるファイルの名前を変更する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .B #include /* Definition of AT_* constants */ -.B #include /* AT_* Äê¿ô¤ÎÄêµÁ */ +.B #include /* AT_* 定数の定義 */ .B #include .sp .BI "int renameat(int " olddirfd ", const char *" oldpath , @@ -45,9 +45,9 @@ renameat \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR renameat (): @@ -56,26 +56,26 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR renameat () .\"O system call operates in exactly the same way as .\"O .BR rename (2), .\"O except for the differences described in this manual page. .BR renameat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë°ã¤¤¤¬¤¢¤ë°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明している違いがある以外は、 .BR rename (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .\"O If the pathname given in .\"O .I oldpath @@ -87,13 +87,13 @@ _ATFILE_SOURCE .\"O .BR rename (2) .\"O for a relative pathname). .I oldpath -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パスである場合、 +ファイルディスクリプタ .I olddirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( rename (2) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤Î -ÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスのカレントワーキングディレクトリからの +相対パスとなる)。 .\"O If .\"O .I oldpath @@ -107,16 +107,16 @@ _ATFILE_SOURCE .\"O directory of the calling process (like .\"O .BR rename (2)). .I oldpath -¤¬ÁêÂХѥ¹¤Ç¤¢¤ê¡¢¤«¤Ä +が相対パスであり、かつ .I olddirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I oldpath -¤Ï +は .RB ( rename (2) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .\"O If .\"O .I oldpath @@ -124,9 +124,9 @@ _ATFILE_SOURCE .\"O .I olddirfd .\"O is ignored. .I oldpath -¤¬ÀäÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ +が絶対パスである場合、 .I olddirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\"O The interpretation of .\"O .I newpath @@ -136,40 +136,40 @@ _ATFILE_SOURCE .\"O to the directory referred to by the file descriptor .\"O .IR newdirfd . .I newpath -¤Î²ò¼á¤Ï +の解釈は .I oldpath -¤ÈƱÍͤǤ¢¤ë¤¬¡¢ -ÁêÂХѥ¹Ì¾¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +と同様であるが、 +相対パス名はファイルディスクリプタ .I newdirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +で参照されるディレクトリからの相対パス名として解釈される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR renameat () .\"O returns 0. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR renameat () -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .\"O On error, \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +エラーの場合、\-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ +にはエラーを示す値が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O The same errors that occur for .\"O .BR rename (2) .\"O can also occur for .\"O .BR renameat (). .BR rename (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR renameat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .\"O The following additional errors can occur for .\"O .BR renameat (): .BR renameat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .\"O .I olddirfd @@ -177,9 +177,9 @@ _ATFILE_SOURCE .\"O .I newdirfd .\"O is not a valid file descriptor. .I olddirfd -¤Þ¤¿¤Ï +または .I newdirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B ENOTDIR .\"O .I oldpath @@ -187,39 +187,39 @@ _ATFILE_SOURCE .\"O .I olddirfd .\"O is a file descriptor referring to a file other than a directory; .I oldpath -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I olddirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 .\"O or similar for .\"O .I newpath .\"O and .\"O .I newdirfd -¤Þ¤¿¤Ï +または .I newpath -¤È +と .I newdirfd -¤Ë¤Ä¤¤¤Æ¡¢Æ±ÍͤΤ³¤È¤¬µ¯¤­¤Æ¤¤¤ë¡£ +について、同様のことが起きている。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR renameat () .\"O was added to Linux in kernel 2.6.16. .BR renameat () -¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ +は Linux カーネル 2.6.16 で追加された。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O See .\"O .BR openat (2) .\"O for an explanation of the need for .\"O .BR renameat (). .BR renameat () -¤¬É¬ÍפÊÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が必要な理由については、 .BR openat (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR openat (2), .BR rename (2), .BR path_resolution (7) diff --git a/draft/man2/rmdir.2 b/draft/man2/rmdir.2 index a3fc08da..3e0e4b9e 100644 --- a/draft/man2/rmdir.2 +++ b/draft/man2/rmdir.2 @@ -35,46 +35,46 @@ .\" Updated 2006-07-23, Akihiro MOTOKI, LDP v2.36 .\" Updated 2008-08-06, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: directory ¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: file system ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à -.\"WORD: sticky bit ¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È -.\"WORD: dangling symbolic link ²õ¤ì¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: working directory ¥ï¡¼¥­¥ó¥°¡¦¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: root directory ¥ë¡¼¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: effective uid ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: sticky bit ¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È -.\"WORD: read-only Æɤ߹þ¤ßÀìÍÑ -.\"WORD: uid ¥æ¡¼¥¶¡¼ID -.\"WORD: entry ¥¨¥ó¥È¥ê -.\"WORD: memory ¥á¥â¥ê +.\"WORD: directory ディレクトリ +.\"WORD: file system ファイル・システム +.\"WORD: sticky bit スティッキー・ビット +.\"WORD: dangling symbolic link 壊れたシンボリック・リンク +.\"WORD: working directory ワーキング・ディレクトリ +.\"WORD: root directory ルート・ディレクトリ +.\"WORD: effective uid 実効ユーザーID +.\"WORD: sticky bit スティッキー・ビット +.\"WORD: read-only 読み込み専用 +.\"WORD: uid ユーザーID +.\"WORD: entry エントリ +.\"WORD: memory メモリ .\" .TH RMDIR 2 2008-05-08 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O rmdir \- delete a directory -rmdir \- ¥Ç¥£¥ì¥¯¥È¥ê¤òºï½ü¤¹¤ë +rmdir \- ディレクトリを削除する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int rmdir(const char *" pathname ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR rmdir () .\"O deletes a directory, which must be empty. .BR rmdir () -¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤òºï½ü¤¹¤ë¡£ºï½ü¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ï¶õ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +はディレクトリを削除する。削除するディレクトリは空でなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï¥¼¥í¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合はゼロが返される。エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O Write access to the directory containing @@ -85,14 +85,14 @@ rmdir \- .\"O (See also .\"O .BR path_resolution (7). .I pathname -¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ø¤Î½ñ¤­¹þ¤ß¥¢¥¯¥»¥¹¤¬ -¥×¥í¥»¥¹¤Î¼Â¸ú (effective) UID ¤ËÂФ·¤Æµö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ +を含んでいるディレクトリへの書き込みアクセスが +プロセスの実効 (effective) UID に対して許可されていないか、 .I pathname -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¤É¤ì¤«¤Ë¸¡º÷ (¼Â¹Ô) µö²Ä¤¬¤Ê¤¤¤«¡¢ +に含まれているディレクトリのどれかに検索 (実行) 許可がないか、 .I pathname -¤Ë»ê¤ë¤Þ¤Ç¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¤¤¤º¤ì¤«¤ËÂФ¹¤ë¸¡º÷µö²Ä¤¬¤Ê¤«¤Ã¤¿¡£ +に至るまでのディレクトリのいずれかに対する検索許可がなかった。 .RB ( path_resolution (7) -¤â»²¾È¤Î¤³¤È) +も参照のこと) .TP .B EBUSY .\"O .I pathname @@ -103,16 +103,16 @@ rmdir \- .\"O is currently used as a mount point .\"O or is the root directory of the calling process. .I pathname -¤¬¥·¥¹¥Æ¥à¤äÊÌ¤Î¥×¥í¥»¥¹¤Ë¤è¤ê»ÈÍÑÃæ¤Çºï½ü¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ -Linux ¤Ç¤Ï¡¢ +がシステムや別のプロセスにより使用中で削除することができない。 +Linux では、 .I pathname -¤¬¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤È¤·¤Æ»ÈÍѤµ¤ì¤Æ¤¤¤ë¤«¡¢ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +がマウントポイントとして使用されているか、 +呼び出したプロセスのルートディレクトリであることを意味する。 .TP .B EFAULT .\"O .IR pathname " points outside your accessible address space." .I pathname -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がアクセス可能なアドレス空間の外を指している。 .TP .B EINVAL .\"O .I pathname @@ -120,32 +120,32 @@ Linux .\"O .I . .\"O as last component. .I pathname -¤ÎºÇ¸å¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬ +の最後のディレクトリ部分が .I . -¤Ç¤¢¤ë¡£ +である。 .TP .B ELOOP .\"O Too many symbolic links were encountered in resolving .\"O .IR pathname . .I pathname -¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ +を解決する際に遭遇したシンボリック・リンクが多過ぎる。 .TP .B ENAMETOOLONG .\"O .IR pathname " was too long." .I pathname -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENOENT .\"O A directory component in .\"O .I pathname .\"O does not exist or is a dangling symbolic link. .I pathname -¤ÎÃæ¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢²õ¤ì¤¿ (dangling) -¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ (symbolic link) ¤Ç¤¢¤ë¡£ +の中のディレクトリ部分が存在しないか、壊れた (dangling) +シンボリック・リンク (symbolic link) である。 .TP .B ENOMEM .\"O Insufficient kernel memory was available. -½½Ê¬¤Ê¥«¡¼¥Í¥ë¤Î¥á¥â¥ê¤¬¤Ê¤¤¡£ +十分なカーネルのメモリがない。 .TP .B ENOTDIR .\"O .IR pathname , @@ -153,9 +153,9 @@ Linux .\"O .IR pathname , .\"O is not, in fact, a directory. .I pathname -¤« +か .I pathname -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬¡¢¼ÂºÝ¤Ë¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +に含まれているディレクトリ部分が、実際には、ディレクトリでない。 .TP .B ENOTEMPTY .\"O .I pathname @@ -169,18 +169,18 @@ Linux .\"O POSIX.1-2001 also allows .\"O .B EEXIST .\"O for this condition. -¥Ç¥£¥ì¥¯¥È¥ê +ディレクトリ .I pathname -¤Ë -.IR . " ¤È " .. -°Ê³°¤Î¥¨¥ó¥È¥ê¤¬¤¢¤ë¡£¤Þ¤¿¤Ï¡¢ +に +.IR . " と " .. +以外のエントリがある。または、 .I pathname -¤ò¹½À®¤¹¤ëºÇ¸å¤ÎÍ×ÁǤ¬ +を構成する最後の要素が .I .. -¤Ç¤¢¤ë¡£ -POSIX.1-2001 ¤Ï¡¢¤³¤Î¾õ¶·¤Ç +である。 +POSIX.1-2001 は、この状況で .B EEXIST -¤òÊÖ¤¹¤³¤È¤òǧ¤á¤Æ¤¤¤ë¡£ +を返すことを認めている。 .TP .B EPERM .\"O The directory containing @@ -193,38 +193,38 @@ POSIX.1-2001 .\"O .B CAP_FOWNER .\"O capability). .I pathname -¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È(sticky-bit) +を含んでいるディレクトリにスティッキー・ビット(sticky-bit) .RB ( S_ISVTX ) -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Æ¡¢¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶¡¼ID ¤¬ºï½ü¤·¤è¤¦¤È¤¹¤ë¥Õ¥¡¥¤¥ë¤Î -¥æ¡¼¥¶ID ¤È¤½¤Î¥Õ¥¡¥¤¥ë¤ò´Þ¤à¥Ç¥£¥ì¥¯¥È¥ê¤Î¥æ¡¼¥¶¡¼ID ¤Î¤É¤Á¤é¤È¤â°Û¤Ê¤ê¡¢ -¥×¥í¥»¥¹¤â¸¢¸Â (Linux ¤Ç¤Ï +が設定されていて、プロセスの実効ユーザーID が削除しようとするファイルの +ユーザID とそのファイルを含むディレクトリのユーザーID のどちらとも異なり、 +プロセスも権限 (Linux では .B CAP_FOWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤¬¤Ê¤¤¡£ +ケーパビリティ) がない。 .TP .B EPERM .\"O The file system containing .\"O .I pathname .\"O does not support the removal of directories. .I pathname -¤ò´Þ¤ó¤Ç¤¤¤ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Î -ºï½ü¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +を含んでいるファイル・システムがディレクトリの +削除をサポートしていない。 .TP .B EROFS .\"O .I pathname .\"O refers to a directory on a read-only file system. .I pathname -¤¬Æɤ߹þ¤ßÀìÍѤΥե¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¾å¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤·¤Æ¤¤¤ë¡£ +が読み込み専用のファイル・システム上のディレクトリを参照している。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Infelicities in the protocol underlying NFS can cause the unexpected .\"O disappearance of directories which are still being used. -NFS ¥×¥í¥È¥³¥ë¤ËÀøºß¤·¤Æ¤¤¤ë·ç´Ù¤Ë¤è¤Ã¤Æ¡¢¤Þ¤À»ÈÍÑÃæ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤¬ -ÆÍÁ³¾ÃÌǤ¹¤ë¸½¾Ý¤¬°ú¤­µ¯¤³¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ +NFS プロトコルに潜在している欠陥によって、まだ使用中のディレクトリが +突然消滅する現象が引き起こされることがある。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR rm (1), .BR rmdir (1), .BR chdir (2), diff --git a/draft/man2/sched_get_priority_max.2 b/draft/man2/sched_get_priority_max.2 index 8e2a0dd2..e7e578c3 100644 --- a/draft/man2/sched_get_priority_max.2 +++ b/draft/man2/sched_get_priority_max.2 @@ -32,28 +32,28 @@ .\" Translated 1997-02-23, HANATAKA Shinya .\" Updated 2006-04-14, Akihiro MOTOKI , LDP v2.29 .\" -.\"WORD: static ÀÅŪ -.\"WORD: priority ¥×¥é¥¤¥ª¥ê¥Æ¥£ -.\"WORD: scheduling ¥¹¥±¥¸¥å¡¼¥ê¥ó¥° -.\"WORD: algorithm ¥¢¥ë¥´¥ê¥º¥à -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: portable °Ü¿¢À­¤Î¤¢¤ë -.\"WORD: policy Êý¿Ë +.\"WORD: static 静的 +.\"WORD: priority プライオリティ +.\"WORD: scheduling スケジューリング +.\"WORD: algorithm アルゴリズム +.\"WORD: process プロセス +.\"WORD: portable 移植性のある +.\"WORD: policy 方針 .\" .TH SCHED_GET_PRIORITY_MAX 2 2006-03-23 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sched_get_priority_max, sched_get_priority_min \- get static priority range -sched_get_priority_max, sched_get_priority_min \- ÀÅŪ¥×¥é¥¤¥ª¥ê¥Æ¥£¤ÎÈϰϤò¼èÆÀ¤¹¤ë +sched_get_priority_max, sched_get_priority_min \- 静的プライオリティの範囲を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int sched_get_priority_max(int " policy ); .sp .BI "int sched_get_priority_min(int " policy ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR sched_get_priority_max () .\"O returns the maximum priority value that can be used with the .\"O scheduling algorithm identified by \fIpolicy\fP. @@ -70,19 +70,19 @@ sched_get_priority_max, sched_get_priority_min \- .\"O Further details about these policies can be found in .\"O .BR sched_setscheduler (2). .BR sched_get_priority_max () -¤Ï\fIpolicy\fP ¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤Î¥¢¥ë¥´¥ê¥º¥à¤Ç -»ÈÍѤµ¤ì¤ë¥×¥é¥¤¥ª¥ê¥Æ¥£¤ÎºÇÂçÃͤòÊÖ¤¹¡£ +は\fIpolicy\fP によって指定されたスケジューリングのアルゴリズムで +使用されるプライオリティの最大値を返す。 .BR sched_get_priority_min () -¤Ï\fIpolicy\fP ¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤Î¥¢¥ë¥´¥ê¥º¥à¤Ç -»ÈÍѤµ¤ì¤ë¥×¥é¥¤¥ª¥ê¥Æ¥£¤ÎºÇ¾®ÃͤòÊÖ¤¹¡£ -¥µ¥Ý¡¼¥È¤µ¤ì¤ë \fIpolicy\fP ¤ÎÃÍ¤Ï -.BR SCHED_FIFO ¡¢ -.BR SCHED_RR ¡¢ -.BR SCHED_OTHER ¡¢ +は\fIpolicy\fP によって指定されたスケジューリングのアルゴリズムで +使用されるプライオリティの最小値を返す。 +サポートされる \fIpolicy\fP の値は +.BR SCHED_FIFO 、 +.BR SCHED_RR 、 +.BR SCHED_OTHER 、 .B SCHED_BATCH -¤Ç¤¢¤ë¡£¤³¤ì¤é¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Êý¿Ë¤Ë´Ø¤¹¤ë¾ÜºÙ¤Ï +である。これらのスケジューリング方針に関する詳細は .BR sched_setscheduler (2) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ +に書かれている。 .\"O Processes with numerically higher priority values are scheduled before .\"O processes with numerically lower priority values. @@ -92,24 +92,24 @@ sched_get_priority_max, sched_get_priority_min \- .\"O will be greater than the .\"O value returned by .\"O .BR sched_get_priority_min (). -¿ôÃÍŪ¤ËÂ礭¤Ê¥×¥é¥¤¥ª¥ê¥Æ¥£Ãͤò»ý¤Ä¥×¥í¥»¥¹¤Ï¾®¤µ¤Ê -¥×¥é¥¤¥ª¥ê¥Æ¥£Ãͤò»ý¤Ä¥×¥í¥»¥¹¤è¤êÁ°¤Ë¥¹¥±¥¸¥å¡¼¥ë¤µ¤ì¤ë¡£ -¤³¤Î¤¿¤á +数値的に大きなプライオリティ値を持つプロセスは小さな +プライオリティ値を持つプロセスより前にスケジュールされる。 +このため .BR sched_get_priority_max () -¤¬ÊÖ¤¹ÃÍ¤Ï +が返す値は .BR sched_get_priority_min () -¤¬ÊÖ¤¹Ãͤè¤ê¤âÂ礭¤¤¡£ +が返す値よりも大きい。 .\"O Linux allows the static priority value range 1 to 99 for .\"O \fBSCHED_FIFO\fP and \fBSCHED_RR\fP and the priority 0 for .\"O \fBSCHED_OTHER\fP and \fBSCHED_BATCH\fP. .\"O Scheduling priority ranges for the various policies .\"O are not alterable. -Linux ¤Ç¤Ï \fBSCHED_FIFO\fP ¤È \fBSCHED_RR\fP ¤Ç¤Ï 1 ¤«¤é 99 ¤ÎÈϰϤΠ-ÀÅŪ¥×¥é¥¤¥ª¥ê¥Æ¥£¡¼¤ò»ý¤Á¡¢\fBSCHED_OTHER\fP ¤È \fBSCHED_BATCH\fP ¤Ç¤Ï -¥×¥é¥¤¥ª¥ê¥Æ¥£¤È¤·¤Æ 0 ¤ò»ý¤Ä¡£ -¤½¤ì¤¾¤ì¤ÎÊý¿Ë¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥×¥é¥¤¥ª¥ê¥Æ¥£¤ÎÈÏ°Ï¤Ï -Êѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +Linux では \fBSCHED_FIFO\fP と \fBSCHED_RR\fP では 1 から 99 の範囲の +静的プライオリティーを持ち、\fBSCHED_OTHER\fP と \fBSCHED_BATCH\fP では +プライオリティとして 0 を持つ。 +それぞれの方針のスケジューリング・プライオリティの範囲は +変更することができない。 .\"O The range of scheduling priorities may vary on other POSIX systems, .\"O thus it is a good idea for portable applications to use a virtual @@ -119,15 +119,15 @@ Linux .\"O .BR sched_get_priority_min (). .\"O POSIX.1-2001 requires a spread of at least 32 between the maximum and the .\"O minimum values for \fBSCHED_FIFO\fP and \fBSCHED_RR\fP. -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥×¥é¥¤¥ª¥ê¥Æ¥£¤ÎÈϰϤϾ¤Î POSIX ¥·¥¹¥Æ¥à¤È -°Û¤Ê¤Ã¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£¤½¤ì¤Ç¡¢°Ü¿¢À­(portable)¤Î¤¢¤ë -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï²¾ÁÛŪ¤ÊÈϰϤòÍѤ¤ +スケジューリング・プライオリティの範囲は他の POSIX システムと +異なっているかもしれない。それで、移植性(portable)のある +アプリケーションでは仮想的な範囲を用い .BR sched_get_priority_max () -¤È +と .BR sched_get_priority_min () -¤ÇÍ¿¤¨¤é¤ì¤¿´Ö³Ö¤Ë¥Þ¥Ã¥×¤·¤Æ»ÈÍѤ¹¤ë¤³¤È¤Ï¤¤¤¤¹Í¤¨¤Ç¤¢¤ë¡£ -POSIX.1-2001 ¤Ç¤Ï \fBSCHED_FIFO\fP ¤È \fBSCHED_RR\fP ¤Ë¤ª¤±¤ë -ºÇÂçÃͤȺǾ®Ãͤδֳ֤ò¾¯¤Ê¤¯¤È¤â 32 ¤Ë¤¹¤ë¤³¤È¤òÍ׵ᤷ¤Æ¤¤¤ë¡£ +で与えられた間隔にマップして使用することはいい考えである。 +POSIX.1-2001 では \fBSCHED_FIFO\fP と \fBSCHED_RR\fP における +最大値と最小値の間隔を少なくとも 32 にすることを要求している。 .\"O POSIX systems on which .\"O .BR sched_get_priority_max () @@ -136,15 +136,15 @@ POSIX.1-2001 .\"O are available define .\"O .B _POSIX_PRIORITY_SCHEDULING .\"O in \fI\fP. -POSIX ¥·¥¹¥Æ¥à¤Ç¤Ï +POSIX システムでは .BR sched_get_priority_max () -¤È +と .BR sched_get_priority_min () -¤Ï \fI\fP ¤Ë +は \fI\fP に .B _POSIX_PRIORITY_SCHEDULING -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Î¤ß»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ +が定義されている場合にのみ使用可能である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR sched_get_priority_max () .\"O and @@ -154,25 +154,25 @@ POSIX .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï +成功した場合は .BR sched_get_priority_max () -¤È +と .BR sched_get_priority_min () -¤Ï»ØÄꤵ¤ì¤¿¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Êý¿Ë¤Î¥×¥é¥¤¥ª¥ê¥Æ¥£¤ÎºÇÂçÃÍ/ºÇ¾®ÃͤòÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +は指定されたスケジューリング方針のプライオリティの最大値/最小値を返す。 +エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O The argument \fIpolicy\fP does not identify a defined scheduling policy. -°ú¤­¿ô \fIpolicy\fP ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Êý¿Ë¤È°ìÃפ·¤Ê¤¤¡£ +引き数 \fIpolicy\fP が定義されているスケジューリング方針と一致しない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sched_getaffinity (2), .BR sched_getparam (2) .BR sched_getscheduler (2), diff --git a/draft/man2/sched_rr_get_interval.2 b/draft/man2/sched_rr_get_interval.2 index 9176d085..3fc015d7 100644 --- a/draft/man2/sched_rr_get_interval.2 +++ b/draft/man2/sched_rr_get_interval.2 @@ -33,35 +33,35 @@ .\" Updated 2003-10-11, Kentaro Shirakata .\" Updated 2007-05-28, Akihiro MOTOKI , LDP v2.48 .\" -.\"WORD: interval ´Ö³Ö -.\"WORD: round robin ¥é¥¦¥ó¥É¡¦¥í¥Ó¥ó -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: scheduling ¥¹¥±¥¸¥å¡¼¥ê¥ó¥° -.\"WORD: policy Êý¿Ë -.\"WORD: implement ¼ÂÁõ +.\"WORD: interval 間隔 +.\"WORD: round robin ラウンド・ロビン +.\"WORD: process プロセス +.\"WORD: scheduling スケジューリング +.\"WORD: policy 方針 +.\"WORD: implement 実装 .\" .TH SCHED_RR_GET_INTERVAL 2 2007-04-06 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sched_rr_get_interval \- get the SCHED_RR interval for the named process -sched_rr_get_interval \- »ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤Î SCHED_RR ´Ö³Ö¤ò¼èÆÀ¤¹¤ë +sched_rr_get_interval \- 指定されたプロセスの SCHED_RR 間隔を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int sched_rr_get_interval(pid_t " pid ", struct timespec *" tp ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR sched_rr_get_interval () .\"O writes into the \fItimespec\fP structure pointed to by \fItp\fP the .\"O round robin time quantum for the process identified by \fIpid\fP. .BR sched_rr_get_interval () -¤Ï \fItp\fP ¤Ç»ØÄꤵ¤ì¤¿ \fItimespec\fP ¹½Â¤ÂÎ¤Ë -\fIpid\fP ¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤Î¥é¥¦¥ó¥É¡¦¥í¥Ó¥ó»þ´ÖÎÌ -(round robin time quantum) ¤ò½ñ¤­¹þ¤à¡£ +は \fItp\fP で指定された \fItimespec\fP 構造体に +\fIpid\fP で指定されたプロセスのラウンド・ロビン時間量 +(round robin time quantum) を書き込む。 .\"O The \fItimespec\fP structure has the following form: -\fItimespec\fP ¹½Â¤ÂΤϰʲ¼¤ÎÄ̤ê¤Ç¤¢¤ë: +\fItimespec\fP 構造体は以下の通りである: .in +4n .nf @@ -78,10 +78,10 @@ struct timespec { .\"O The identified process should be running under the .\"O .B SCHED_RR .\"O scheduling policy. -\fIpid\fP ¤¬¥¼¥í¤Î¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î»þ´ÖÎ̤¬ -\fI*tp\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£»ØÄꤷ¤¿¥×¥í¥»¥¹¤Ï +\fIpid\fP がゼロの場合、呼び出したプロセスの時間量が +\fI*tp\fP に書き込まれる。指定したプロセスは .B SCHED_RR -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Êý¿Ë¤Ç²ÔÆ°¤·¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ +スケジューリング方針で稼動している必要がある。 .\" FIXME . On Linux, sched_rr_get_interval() .\" returns the timeslice for SCHED_OTHER processes -- this timeslice .\" is influenced by the nice value. @@ -89,7 +89,7 @@ struct timespec { .\" .\"O .\" The round robin time quantum value is not alterable under Linux .\"O .\" 1.3.81. -.\" ¥é¥¦¥ó¥É¡¦¥í¥Ó¥ó»þ´ÖÎÌ¤Ï Linux 1.3.81 ¤Ç¤ÏÊѹ¹¤Ç¤­¤Ê¤¤¡£ +.\" ラウンド・ロビン時間量は Linux 1.3.81 では変更できない。 .\" .\"O POSIX systems on which .\"O .BR sched_rr_get_interval () @@ -97,50 +97,50 @@ struct timespec { .\"O .B _POSIX_PRIORITY_SCHEDULING .\"O in \fI\fP. .BR sched_rr_get_interval () -¤Î»ÈÍѲÄǽ¤Ê POSIX ¥·¥¹¥Æ¥à¤Ç¤Ï +の使用可能な POSIX システムでは .I -¤Ç +で .B _POSIX_PRIORITY_SCHEDULING -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +が定義されている。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR sched_rr_get_interval () .\"O returns 0. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï +成功した場合は .BR sched_rr_get_interval () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +は 0 を返す。 +エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O Problem with copying information to userspace. -¾ðÊó¤ò¥æ¡¼¥¶¶õ´Ö¤Ë¥³¥Ô¡¼¤¹¤ë»þ¤ËÌäÂ꤬µ¯¤­¤¿¡£ +情報をユーザ空間にコピーする時に問題が起きた。 .TP .B EINVAL .\"O Invalid pid. -PID ¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +PID が不正である。 .TP .B ENOSYS .\"O The system call is not yet implemented (only on rather old kernels). -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤¬¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤ (¤«¤Ê¤ê¸Å¤¤¥«¡¼¥Í¥ë¤Ë¤ª¤¤¤Æ¤Î¤ß)¡£ +システム・コールがまだ実装されていない (かなり古いカーネルにおいてのみ)。 .TP .B ESRCH .\"O The process whose ID is \fIpid\fP could not be found. -\fIpid\fP ¤Î ID ¤ò»ý¤Ä¥×¥í¥»¥¹¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£ +\fIpid\fP の ID を持つプロセスが見つからなかった。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES .\"O .SS Linux Notes -.SH Ãí°Õ -.SS Linux ¤Ç¤ÎÃí°Õ +.SH 注意 +.SS Linux での注意 .\" FIXME .\" From at least Linux 2.6.9, the following is no longer true .\" for SCHED_RR processes. For RR processes the timeslice is always @@ -158,34 +158,34 @@ POSIX.1-2001. .\"O The default quantum is 0.1 seconds; .\"O the degree to which changing the nice value affects the .\"O quantum has varied somewhat across kernel versions. -POSIX ¤Ç¤Ï¥é¥¦¥ó¥É¡¦¥í¥Ó¥ó»þ´ÖÎ̤ÎÂ礭¤µ¤òÀ©¸æ¤¹¤ë»ÅÁȤߤ¬µ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤·¤«¤·¡¢Linux ¤Ç¤Ï¤³¤ì¤òÊѹ¹¤¹¤ëÊýË¡¤¬Ä󶡤µ¤ì¤Æ¤ª¤ê (¤³¤ÎÊýË¡¤Ë°Ü¿¢À­¤Ï¤Ê¤¤)¡¢ -¥×¥í¥»¥¹¤Î nice ÃͤòÄ´À°¤¹¤ë¤³¤È¤Ç»þ´ÖÎ̤òÀ©¸æ¤Ç¤­¤ë +POSIX ではラウンド・ロビン時間量の大きさを制御する仕組みが規定されていない。 +しかし、Linux ではこれを変更する方法が提供されており (この方法に移植性はない)、 +プロセスの nice 値を調整することで時間量を制御できる .RB ( setpriority (2) -»²¾È)¡£ -Éé¤Î nice ÃÍ (¤¹¤Ê¤ï¤Á¡¢¹â¤¤ nice ÃÍ) ¤ò³ä¤êÅö¤Æ¤ë¤È»þ´ÖÎ̤ÏŤ¯¤Ê¤ê¡¢ -Àµ¤Î nice ÃÍ (¤¹¤Ê¤ï¤Á¡¢Ä㤤 nice ÃÍ) ¤ò³ä¤êÅö¤Æ¤ë¤È»þ´ÖÎ̤Ïû¤¯¤Ê¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Î»þ´ÖÎÌ¤Ï 0.1 ÉäǤ¢¤ë¡£ -nice ÃͤÎÊѹ¹¤¬»þ´ÖÎ̤ˤɤÎÄøÅٱƶÁ¤òÍ¿¤¨¤ë¤«¤Ï -¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤ê¿¾¯°Û¤Ê¤ë¡£ +参照)。 +負の nice 値 (すなわち、高い nice 値) を割り当てると時間量は長くなり、 +正の nice 値 (すなわち、低い nice 値) を割り当てると時間量は短くなる。 +デフォルトの時間量は 0.1 秒である。 +nice 値の変更が時間量にどの程度影響を与えるかは +カーネルのバージョンにより多少異なる。 .\"O .\" .SH BUGS -.\" .SH ¥Ð¥° +.\" .SH バグ .\"O .\" As of Linux 1.3.81 .\"O .\" .BR sched_rr_get_interval () .\"O .\" returns with error .\"O .\" ENOSYS, because SCHED_RR has not yet been fully implemented and tested .\"O .\" properly. -.\" Linux 1.3.81 ¤Î»þÅÀ¤Ç¤Ï +.\" Linux 1.3.81 の時点では .\" .BR sched_rr_get_interval () -.\" ¤Ï ENOSYS ¥¨¥é¡¼¤òÊÖ¤¹¡£ -.\" ¤³¤ì¤Ï SCHED_RR ¤Ï¤Þ¤À´°Á´¤Ë¤Ï¼ÂÁõ¤µ¤ì¤Æ¤ª¤é¤º¡¢ -.\" ŬÀڤ˥ƥ¹¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +.\" は ENOSYS エラーを返す。 +.\" これは SCHED_RR はまだ完全には実装されておらず、 +.\" 適切にテストされていないからである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .\"O .BR sched_setscheduler (2) .\"O has a description of the Linux scheduling scheme. .BR sched_setscheduler (2) -¤Ë Linux ¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Êý¼°¤Ë¤Ä¤¤¤Æ¤ÎÀâÌÀ¤¬¤¢¤ë¡£ +に Linux のスケジューリング方式についての説明がある。 .PP .I Programming for the real world \- POSIX.4 by Bill O. Gallmeister, O'Reilly & Associates, Inc., ISBN 1-56592-074-0 diff --git a/draft/man2/sched_setaffinity.2 b/draft/man2/sched_setaffinity.2 index fd2220b9..c97d98b0 100644 --- a/draft/man2/sched_setaffinity.2 +++ b/draft/man2/sched_setaffinity.2 @@ -41,23 +41,23 @@ .\" Updated & Modified 2006-07-14, Akihiro MOTOKI, LDP v2.34 .\" Updated & Modified 2008-12-24, Akihiro MOTOKI, LDP v3.14 .\" -.\"WORD: affinity ¿ÆÏÂÅÙ -.\"WORD: most significant bit ºÇ¾å°Ì¥Ó¥Ã¥È -.\"WORD: least significant bit ºÇ²¼°Ì¥Ó¥Ã¥È -.\"WORD: capability ¸¢¸Â +.\"WORD: affinity 親和度 +.\"WORD: most significant bit 最上位ビット +.\"WORD: least significant bit 最下位ビット +.\"WORD: capability 権限 .\" .TH SCHED_SETAFFINITY 2 2010-11-06 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sched_setaffinity, sched_getaffinity \- \ .\"O set and get a process's CPU affinity mask sched_setaffinity, sched_getaffinity \- \ -¥×¥í¥»¥¹¤Î CPU affinity ¥Þ¥¹¥¯¤òÀßÄꡦ¼èÆÀ¤¹¤ë +プロセスの CPU affinity マスクを設定・取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "int sched_setaffinity(pid_t " pid ", size_t " cpusetsize , @@ -67,12 +67,12 @@ sched_setaffinity, sched_getaffinity \- \ .BI " cpu_set_t *" mask ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"Osato: -.\"Osato: Kernel ¥É¥­¥å¥á¥ó¥È IRQ-affinity.txt ¤ÎÌõ¤Ç¤Ï¡¢ -.\"Osato: "affinity" ¤Ï¡Ö¥¢¥Õ¥£¥Ë¥Æ¥£¡×¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢ -.\"Osato: ¤³¤³¤Ë°ì²ó¤À¤±Ìõ¸ì (¿ÆÏÂÅÙ) ¤òÆþ¤ì¤Æ¤ª¤¯¤À¤±¤Ç¡¢ -.\"Osato: ÆäËÌõ¤µ¤Ê¤¤¤³¤È¤Ë¤·¤è¤¦¤È»×¤¤¤Þ¤¹¡£ +.\"Osato: Kernel ドキュメント IRQ-affinity.txt の訳では、 +.\"Osato: "affinity" は「アフィニティ」になっていますが、 +.\"Osato: ここに一回だけ訳語 (親和度) を入れておくだけで、 +.\"Osato: 特に訳さないことにしようと思います。 .\"Osato: .\"O A process's CPU affinity mask determines the set of CPUs on which .\"O it is eligible to run. @@ -87,34 +87,34 @@ sched_setaffinity, sched_getaffinity \- \ .\"O the performance cost caused by the cache invalidation that occurs .\"O when a process ceases to execute on one CPU and then .\"O recommences execution on a different CPU. -¥×¥í¥»¥¹¤Î CPU affinity (¿ÆÏÂÅÙ) ¥Þ¥¹¥¯¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤¬ -¼Â¹Ô¤òµö²Ä¤µ¤ì¤Æ¤¤¤ë CPU ¤Î½¸¹ç¤ò·èÄꤹ¤ë¡£ -¥Þ¥ë¥Á¥×¥í¥»¥Ã¥µ¡¦¥·¥¹¥Æ¥à¤Ç¤Ï¡¢CPU affinity ¥Þ¥¹¥¯¤òÀßÄꤹ¤ë¤³¤È¤Ç -À­Ç½¾å¤Î¥á¥ê¥Ã¥È¤òÆÀ¤é¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -Î㤨¤Ð¡¢ÆÃÄê¤Î¥×¥í¥»¥¹¤ò°ì¤Ä¤Î CPU ¤Ë³ç¤êÉÕ¤± -(¤¹¤Ê¤ï¤Á¡¢¤½¤Î¥×¥í¥»¥¹¤Î affinity ¥Þ¥¹¥¯¤ò°ì¤Ä¤Î CPU ¤ËÀßÄꤷ)¡¢ -¾¤ÎÁ´¤Æ¤Î¥×¥í¥»¥¹¤Î affinity ¥Þ¥¹¥¯¤«¤é¤½¤Î CPU ¤ò½ü³°¤¹¤ë¤³¤È¤Ç¡¢ -³Î¼Â¤Ë¤½¤Î¥×¥í¥»¥¹¤Î¼Â¹Ô®ÅÙ¤òºÇÂç¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤Þ¤¿¡¢¤¢¤ë¥×¥í¥»¥¹¤Î¼Â¹Ô¤ò°ì¤Ä¤Î CPU ¤Ë¸ÂÄꤹ¤ë¤³¤È¤Ç¡¢ -°ì¤Ä¤Î CPU ¤Ç¤Î¼Â¹Ô¤òÄä»ß¤·¤Æ¤«¤éÊ̤ΠCPU ¤Ç¼Â¹Ô¤òºÆ³«¤¹¤ë¤È¤­¤ËȯÀ¸¤¹¤ë -¥­¥ã¥Ã¥·¥å̵¸ú²½ (cache invalidation) ¤Ë¤è¤ëÀ­Ç½Ì̤ÎÎô²½¤òÈò¤±¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +プロセスの CPU affinity (親和度) マスクは、そのプロセスが +実行を許可されている CPU の集合を決定する。 +マルチプロセッサ・システムでは、CPU affinity マスクを設定することで +性能上のメリットを得られる可能性がある。 +例えば、特定のプロセスを一つの CPU に括り付け +(すなわち、そのプロセスの affinity マスクを一つの CPU に設定し)、 +他の全てのプロセスの affinity マスクからその CPU を除外することで、 +確実にそのプロセスの実行速度を最大にすることができる。 +また、あるプロセスの実行を一つの CPU に限定することで、 +一つの CPU での実行を停止してから別の CPU で実行を再開するときに発生する +キャッシュ無効化 (cache invalidation) による性能面の劣化を避けることもできる。 .\"O A CPU affinity mask is represented by the .\"O .I cpu_set_t .\"O structure, a "CPU set", pointed to by .\"O .IR mask . -CPU affinity ¥Þ¥¹¥¯¤Ï¡ÖCPU ¤Î½¸¹ç¡×¤òɽ¤¹ +CPU affinity マスクは「CPU の集合」を表す .I cpu_set_t -¹½Â¤ÂΤÇɽ¸½¤µ¤ì¡¢ +構造体で表現され、 .I cpu_set_t -¤Ø¤Î¥Ý¥¤¥ó¥¿ +へのポインタ .I mask -¤Ç»ØÄꤵ¤ì¤ë¡£ +で指定される。 .\"O A set of macros for manipulating CPU sets is described in .\"O .BR CPU_SET (3). -CPU ½¸¹ç¤òÁàºî¤¹¤ë¤¿¤á¤Î¥Þ¥¯¥í·²¤Ë¤Ä¤¤¤Æ¤Ï +CPU 集合を操作するためのマクロ群については .BR CPU_SET (3) -¤Çµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ +で記載されている。 .\"O .BR sched_setaffinity () .\"O sets the CPU affinity mask of the process whose ID is @@ -122,11 +122,11 @@ CPU .\"O to the value specified by .\"O .IR mask . .BR sched_setaffinity () -¤Ï¡¢¥×¥í¥»¥¹ID ¤¬ +は、プロセスID が .I pid -¤Î¥×¥í¥»¥¹¤Î CPU affinity ¥Þ¥¹¥¯¤ò +のプロセスの CPU affinity マスクを .I mask -¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£ +で指定された値に設定する。 .\"O If .\"O .I pid .\"O is zero, then the calling process is used. @@ -135,16 +135,16 @@ CPU .\"O is the length (in bytes) of the data pointed to by .\"O .IR mask . .I pid -¤¬ 0 ¤Î¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬»È¤ï¤ì¤ë¡£ +が 0 の場合、呼び出し元プロセスが使われる。 .I cpusetsize -°ú¤­¿ô¤Ë¤Ï +引き数には .I mask -¤¬»Ø¤¹¥Ç¡¼¥¿¤ÎŤµ (¥Ð¥¤¥Èñ°Ì) ¤Ç¤¢¤ë¡£ +が指すデータの長さ (バイト単位) である。 .\"O Normally this argument would be specified as .\"O .IR "sizeof(cpu_set_t)" . -Ä̾ï¤Ï¡¢¤³¤Î°ú¤­¿ô¤Ë¤Ï +通常は、この引き数には .I "sizeof(cpu_set_t)" -¤ò»ØÄꤹ¤ì¤Ð¤è¤¤¡£ +を指定すればよい。 .\"O If the process specified by .\"O .I pid @@ -153,12 +153,12 @@ CPU .\"O then that process is migrated to one of the CPUs specified in .\"O .IR mask . .I pid -¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤¬ +で指定されたプロセスが .I mask -¤Ç»ØÄꤵ¤ì¤¿ CPU ¤Î¤¤¤º¤ì¤«¤Ç¸½ºß¼Â¹Ô¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -¤½¤Î¥×¥í¥»¥¹¤Ï +で指定された CPU のいずれかで現在実行されていない場合、 +そのプロセスは .I mask -¤Ç»ØÄꤵ¤ì¤¿ CPU ¤Î¤¤¤º¤ì¤«¤Ë°ÜÆ°¤µ¤ì¤ë¡£ +で指定された CPU のいずれかに移動される。 .\"O .BR sched_getaffinity () .\"O writes the affinity mask of the process whose ID is @@ -172,57 +172,57 @@ CPU .\"O argument specifies the size (in bytes) of .\"O .IR mask . .BR sched_getaffinity () -¤Ï¡¢ -¥×¥í¥»¥¹ID ¤¬ +は、 +プロセスID が .I pid -¤Î¥×¥í¥»¥¹¤Î affinity ¥Þ¥¹¥¯¤ò +のプロセスの affinity マスクを .I mask -¤¬»Ø¤¹ +が指す .I cpu_set_t -¹½Â¤ÂΤ˽ñ¤­¹þ¤à¡£ +構造体に書き込む。 .I cpusetsize -°ú¤­¿ô¤Ë¤Ï +引き数には .I mask -¤Î (¥Ð¥¤¥Èñ°Ì¤Î) Â礭¤µ¤ò»ØÄꤹ¤ë¡£ +の (バイト単位の) 大きさを指定する。 -´Ø¿ô +関数 .BR sched_getaffinity () -¤ÏŤµ +は長さ .I len -¤Î¥Ý¥¤¥ó¥¿ +のポインタ .I mask -¤Ë¥×¥í¥»¥¹ +にプロセス .I pid -¤Î affinity ¥Þ¥¹¥¯¤ò½ñ¤­¹þ¤à¡£ +の affinity マスクを書き込む。 .\"O If .\"O .I pid .\"O is zero, then the mask of the calling process is returned. .I pid -¤¬ 0 ¤Î¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥Þ¥¹¥¯¤¬ÊÖ¤µ¤ì¤ë¡£ +が 0 の場合、呼び出し元のプロセスのマスクが返される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR sched_setaffinity () .\"O and .\"O .BR sched_getaffinity () .\"O return 0. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR sched_setaffinity () -¤È +と .BR sched_getaffinity () -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +エラーの場合は \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O A supplied memory address was invalid. -»ØÄꤵ¤ì¤¿¥á¥â¥êÈÖÃϤ¬ÉÔÀµ¤Ç¤¢¤ë¡£ +指定されたメモリ番地が不正である。 .TP .B EINVAL .\"O The affinity bit mask @@ -231,15 +231,15 @@ CPU .\"O and permitted to the process according to any restrictions that .\"O may be imposed by the "cpuset" mechanism described in .\"O .BR cpuset (7). -¥·¥¹¥Æ¥à¾å¤Ë¸½ºß¼ÂºÝ¤Ë¸ºß¤·¡¢¤«¤Ä -"cpuset" µ¡¹½¤¬²Ý¤¹À©¸Â¤Ë¤ª¤¤¤Æ¤½¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æµö²Ä¤µ¤ì¤Æ¤¤¤ë -¥×¥í¥»¥Ã¥µ¤¬¡¢ -affinity ¥Ó¥Ã¥È¥Þ¥¹¥¯ +システム上に現在実際に存在し、かつ +"cpuset" 機構が課す制限においてそのプロセスに対して許可されている +プロセッサが、 +affinity ビットマスク .I mask -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¡£ -"cpuset" µ¡¹½¤Ë¤Ä¤¤¤Æ¤Ï +に含まれていない。 +"cpuset" 機構については .BR cpuset (7) -¤ò»²¾È¡£ +を参照。 .TP .B EINVAL .\"O .RB ( sched_getaffinity () @@ -248,10 +248,10 @@ affinity .\"O .I cpusetsize .\"O is smaller than the size of the affinity mask used by the kernel. .RB ( sched_getaffinity () -¤È¡¢¥«¡¼¥Í¥ë 2.6.9 °ÊÁ°¤Î +と、カーネル 2.6.9 以前の .BR sched_setaffinity ()) .I cpusetsize -¤¬¥«¡¼¥Í¥ë¤Ç»È¤ï¤ì¤Æ¤¤¤ë affinity ¥Þ¥¹¥¯¤Î¥µ¥¤¥º¤è¤ê¾®¤µ¤¤¡£ +がカーネルで使われている affinity マスクのサイズより小さい。 .TP .B EPERM .\"O .RB ( sched_setaffinity ()) @@ -263,20 +263,20 @@ affinity .\"O .B CAP_SYS_NICE .\"O capability. .RB ( sched_setaffinity ()) -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ËŬÀÚ¤ÊÆø¢¤¬¤Ê¤«¤Ã¤¿¡£ -¸Æ¤Ó½Ð¤·¸µ¤Ï¡¢¼Â¸ú¥æ¡¼¥¶ ID ¤¬ +呼び出し元のプロセスに適切な特権がなかった。 +呼び出し元は、実効ユーザ ID が .I pid -¤Ç¼±Ê̤µ¤ì¤ë¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶ ID ¤Þ¤¿¤Ï¼Â¸ú¥æ¡¼¥¶ ID ¤ÈƱ¤¸¤Ç¤¢¤ë¤«¡¢ +で識別されるプロセスの実ユーザ ID または実効ユーザ ID と同じであるか、 .B CAP_SYS_NICE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ケーパビリティ (capability) を持たなければならない。 .TP .B ESRCH .\"O The process whose ID is \fIpid\fP could not be found. -¥×¥í¥»¥¹ ID \fIpid\fP ¤Î¥×¥í¥»¥¹¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£ +プロセス ID \fIpid\fP のプロセスが見つからなかった。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The CPU affinity system calls were introduced in Linux kernel 2.5.8. -CPU affinity ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux kernel 2.5.8 ¤ÇƳÆþ¤µ¤ì¤¿¡£ +CPU affinity システムコールは Linux kernel 2.5.8 で導入された。 .\"O The system call wrappers were introduced in glibc 2.3. .\"O Initially, the glibc interfaces included a .\"O .I cpusetsize @@ -286,23 +286,23 @@ CPU affinity .\"O .I cpusetsize .\"O argument was removed, but was then restored in glibc 2.3.4, with type .\"O .IR size_t . -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï glibc 2.3 ¤ÇƳÆþ¤µ¤ì¤¿¡£ -ºÇ½é¤Ï¡¢glibc ¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë¤Ï +これらのシステムコールのラッパー関数は glibc 2.3 で導入された。 +最初は、glibc のインタフェースには .I "unsigned int" -·¿¤Î +型の .I cpusetsize -°ú¤­¿ô¤¬Æþ¤Ã¤Æ¤¤¤¿¡£ -glibc 2.3.3 ¤Ç¤Ï +引き数が入っていた。 +glibc 2.3.3 では .I cpusetsize -°ú¤­¿ô¤¬ºï½ü¤µ¤ì¤¿¤¬¡¢glibc 2.3.4 ¤Ç +引き数が削除されたが、glibc 2.3.4 で .I size_t -·¿¤ÇÉü³è¤·¤¿¡£ +型で復活した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These system calls are Linux-specific. -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ +これらのシステムコールは Linux 固有である。 .\"O .SH "NOTES" -.SH Ãí°Õ +.SH 注意 .\"O After a call to .\"O .BR sched_setaffinity (), .\"O the set of CPUs on which the process will actually run is @@ -310,28 +310,28 @@ glibc 2.3.3 .\"O .I mask .\"O argument and the set of CPUs actually present on the system. .BR sched_setaffinity () -¤ò¸Æ¤Ó½Ð¤·¤¿¸å¤Ï¡¢¥×¥í¥»¥¹¤¬¼ÂºÝ¤Ë¼Â¹Ô¤µ¤ì¤ë CPU ¤Î½¸¹ç¤Ï¡¢ +を呼び出した後は、プロセスが実際に実行される CPU の集合は、 .I mask -°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿½¸¹ç¤È¡¢¥·¥¹¥Æ¥à¾å¤Ë¼ÂºÝ¤Ë¸ºß¤¹¤ë CPU ¤Î½¸¹ç¤Î -¶¦Ä̽¸¹ç (AND) ¤È¤Ê¤ë¡£ +引き数で指定された集合と、システム上に実際に存在する CPU の集合の +共通集合 (AND) となる。 .\"O The system may further restrict the set of CPUs on which the process .\"O runs if the "cpuset" mechanism described in .\"O .BR cpuset (7) .\"O is being used. .\"O These restrictions on the actual set of CPUs on which the process .\"O will run are silently imposed by the kernel. -"cpuset" µ¡¹½¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢¥×¥í¥»¥¹¤¬Æ°ºî¤¹¤ë CPU ½¸¹ç -¤ËÂФ·¤Æ¥·¥¹¥Æ¥à¤Ï¤µ¤é¤ËÀ©¸Â¤ò²Ã¤¨¤ë¤«¤â¤·¤ì¤Ê¤¤ -("cpuset" µ¡¹½¤Ë¤Ä¤¤¤Æ¤Ï +"cpuset" 機構が使用されている場合には、プロセスが動作する CPU 集合 +に対してシステムはさらに制限を加えるかもしれない +("cpuset" 機構については .BR cpuset (7) -¤ò»²¾È)¡£ -¥×¥í¥»¥¹¤¬Æ°ºî¤¹¤ë¼ÂºÝ¤Î CPU ½¸¹ç¤ËÂФ¹¤ëÀ©¸Â¤Ï¥«¡¼¥Í¥ë¤Ë¤è¤ê -°ÅÌۤΤ¦¤Á¤ËŬÍѤµ¤ì¤ë¡£ +を参照)。 +プロセスが動作する実際の CPU 集合に対する制限はカーネルにより +暗黙のうちに適用される。 .\"O .BR sched_setscheduler (2) .\"O has a description of the Linux scheduling scheme. .BR sched_setscheduler (2) -¤Ë¤Ï Linux ¤Ë¤ª¤±¤ë¥¹¥±¥¸¥å¡¼¥ê¥ó¥°µ¡¹½¤Ë¤Ä¤¤¤Æ¤ÎÀâÌÀ¤¬¤¢¤ë¡£ +には Linux におけるスケジューリング機構についての説明がある。 .PP .\"O The affinity mask is actually a per-thread attribute that can be .\"O adjusted independently for each of the threads in a thread group. @@ -339,12 +339,12 @@ glibc 2.3.3 .\"O .BR gettid (2) .\"O can be passed in the argument .\"O .IR pid . -¼ÂºÝ¤Ë¤Ï affinity ¥Þ¥¹¥¯¤Ï¥¹¥ì¥Ã¥Éñ°Ì¤Î°À­¤Ç¡¢¥¹¥ì¥Ã¥É¥°¥ë¡¼¥×¤Î -³Æ¥¹¥ì¥Ã¥Éñ°Ì¤ËÆÈΩ¤·¤ÆÄ´À°¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +実際には affinity マスクはスレッド単位の属性で、スレッドグループの +各スレッド単位に独立して調整することができる。 .BR gettid (2) -¥³¡¼¥ë¤«¤é¤ÎÊÖ¤êÃͤò¤³¤Î¥³¡¼¥ë¤Î +コールからの返り値をこのコールの .I pid -°ú¤­¿ô¤È¤·¤ÆÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¡£ +引き数として渡すことができる。 .\"O Specifying .\"O .I pid .\"O as 0 will set the attribute for the calling thread, @@ -356,16 +356,16 @@ glibc 2.3.3 .\"O instead of .\"O .BR sched_setaffinity ().) .I pid -¤Ë 0 ¤ò»ØÄꤹ¤ë¤È¸Æ¤Ó½Ð¤·¸µ¤Î¥¹¥ì¥Ã¥É¤Î°À­¤¬ÀßÄꤵ¤ì¡¢ +に 0 を指定すると呼び出し元のスレッドの属性が設定され、 .BR getpid (2) -¥³¡¼¥ë¤«¤é¤ÎÊÖ¤êÃͤò +コールからの返り値を .I pid -¤Ë»ØÄꤹ¤ë¤È¥¹¥ì¥Ã¥É¥°¥ë¡¼¥×¤Î¥á¥¤¥ó¥¹¥ì¥Ã¥É¤Î°À­¤¬ÀßÄꤵ¤ì¤ë -(POSIX ¥¹¥ì¥Ã¥É API ¤ò»ÈÍѤ·¤Æ¤¤¤ë¾ì¹ç¡¢ +に指定するとスレッドグループのメインスレッドの属性が設定される +(POSIX スレッド API を使用している場合、 .BR sched_setaffinity () -¤ÎÂå¤ï¤ê¤Ë +の代わりに .BR pthread_setaffinity_np (3) -¤ò»ÈÍѤ¹¤ë¤³¤È)¡£ +を使用すること)。 .\"O A child created via .\"O .BR fork (2) @@ -373,10 +373,10 @@ glibc 2.3.3 .\"O The affinity mask is preserved across an .\"O .BR execve (2). .BR fork (2) -·Ðͳ¤ÇÀ¸À®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤Î CPU affinity ¥Þ¥¹¥¯¤ò·Ñ¾µ¤¹¤ë¡£ -affinity ¥Þ¥¹¥¯¤Ï +経由で生成された子プロセスは親プロセスの CPU affinity マスクを継承する。 +affinity マスクは .BR execve (2) -¤ÎÁ°¸å¤ÇÊݸ¤µ¤ì¤ë¡£ +の前後で保存される。 .\"O This manual page describes the glibc interface for the CPU affinity calls. .\"O The actual system call interface is slightly different, with the @@ -391,23 +391,23 @@ affinity .\"O .I cpumask_t .\"O data type that is used internally by the kernel to .\"O represent the CPU set bit mask. -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Ï CPU affinity ¥³¡¼¥ë¤Î glibc ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò -ÀâÌÀ¤·¤Æ¤¤¤ë¡£¼ÂºÝ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¡¦¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¾¯¤·°ã¤Ã¤Æ¤ª¤ê¡¢ -¼ÂºÝ¤Î¼ÂÁõ¤Ç¤Ï CPU ½¸¹ç¤Ï´Êñ¤Ê¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ë¤È¤¤¤¦¼Â¾õ¤òÈ¿±Ç¤·¡¢ +このマニュアルページでは CPU affinity コールの glibc インタフェースを +説明している。実際のシステムコール・インタフェースは少し違っており、 +実際の実装では CPU 集合は簡単なビットマスクであるという実状を反映し、 .I mask -¤Î·¿¤¬ +の型が .IR "unsigned long *" -¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ -À®¸ù»þ¤Ë¤Ï¡¢À¸¤Î +となっている。 +成功時には、生の .BR sched_getaffinity () -¥·¥¹¥Æ¥à¥³¡¼¥ë¼«¿È¤Ï +システムコール自身は .I cpumask_t -¥Ç¡¼¥¿·¿¤Î (¥Ð¥¤¥Èñ°Ì¤Î) Â礭¤µ¤òÊÖ¤¹¡£ +データ型の (バイト単位の) 大きさを返す。 .I cpumask_t -¤Ï¥«¡¼¥Í¥ëÆâÉô¤Ç CPU ½¸¹ç¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤òɽ¸½¤¹¤ë¤Î¤Ë -»È¤ï¤ì¤Æ¤¤¤ë¥Ç¡¼¥¿·¿¤Ç¤¢¤ë¡£ +はカーネル内部で CPU 集合のビットマスクを表現するのに +使われているデータ型である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR clone (2), .BR getcpu (2), .BR getpriority (2), diff --git a/draft/man2/sched_setparam.2 b/draft/man2/sched_setparam.2 index aed29dd4..b34617e8 100644 --- a/draft/man2/sched_setparam.2 +++ b/draft/man2/sched_setparam.2 @@ -35,20 +35,20 @@ .\" Updated & Modified 2005-10-10, Akihiro MOTOKI .\" Updated 2006-04-14, Akihiro MOTOKI, LDP v2.29 .\" -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: scheduling ¥¹¥±¥¸¥å¡¼¥ê¥ó¥° -.\"WORD: policy Êý¿Ë -.\"WORD: implement ¼ÂÁõ -.\"WORD: parameter ¥Ñ¥é¥á¡¼¥¿ -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ID +.\"WORD: process プロセス +.\"WORD: scheduling スケジューリング +.\"WORD: policy 方針 +.\"WORD: implement 実装 +.\"WORD: parameter パラメータ +.\"WORD: effective user ID 実効ユーザーID .\" .TH SCHED_SETPARAM 2 2006-03-23 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sched_setparam, sched_getparam \- set and get scheduling parameters -sched_setparam, sched_getparam \- ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ñ¥é¥á¡¼¥¿¤ÎÀßÄê¤È¼èÆÀ¤ò¹Ô¤Ê¤¦ +sched_setparam, sched_getparam \- スケジューリング・パラメータの設定と取得を行なう .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -65,7 +65,7 @@ sched_setparam, sched_getparam \- }; .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR sched_setparam () .\"O sets the scheduling parameters associated with the scheduling policy .\"O for the process identified by \fIpid\fP. @@ -79,15 +79,15 @@ sched_setparam, sched_getparam \- .\"O .BR sched_setscheduler (2) .\"O for a description of the scheduling policies supported under Linux. .BR sched_setparam () -¤Ï \fIpid\fP ¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Êý¿Ë (scheduling policy) ¤Ë -´ØÏ¢¤¹¤ë¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ñ¥é¥á¡¼¥¿¤òÀßÄꤹ¤ë¡£ -\fIpid\fP ¤¬ 0 ¤Ê¤é¤Ð¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥Ñ¥é¥á¡¼¥¿¤¬ÀßÄꤵ¤ì¤ë¡£ -°ú¤­¿ô \fIparam\fP ¤Î²ò¼á¤Ï¡¢ +は \fIpid\fP で指定されたプロセスのスケジューリング方針 (scheduling policy) に +関連するスケジューリング・パラメータを設定する。 +\fIpid\fP が 0 ならば、呼び出し元のプロセスのパラメータが設定される。 +引き数 \fIparam\fP の解釈は、 .I pid -¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Êý¿Ë¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¡£ -Linux ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Êý¿Ë¤ÎÀâÌÀ¤Ï +で指定されたプロセスのスケジューリング方針によって異なる。 +Linux でサポートされているスケジューリング方針の説明は .BR sched_setscheduler (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .BR sched_getparam () .\"O retrieves the scheduling parameters for the @@ -95,8 +95,8 @@ Linux .\"O If \fIpid\fP is zero, then the parameters .\"O of the calling process are retrieved. .BR sched_getparam () -¤Ï \fIpid\fP ¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ñ¥é¥á¡¼¥¿¤ò¼èÆÀ¤¹¤ë¡£ -\fIpid\fP ¤¬ 0 ¤Ê¤é¤Ð¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥Ñ¥é¥á¡¼¥¿¤ò¼èÆÀ¤¹¤ë¡£ +は \fIpid\fP で指定されたプロセスのスケジューリング・パラメータを取得する。 +\fIpid\fP が 0 ならば、呼び出し元のプロセスのパラメータを取得する。 .\"O .BR sched_setparam () .\"O checks the validity of \fIparam\fP for the scheduling policy of the @@ -107,20 +107,20 @@ Linux .\"O and .\"O .BR sched_get_priority_max (2). .BR sched_setparam () -¤Ï¥×¥í¥»¥¹¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Êý¿Ë¤Ë¤ª¤±¤ë \fIparam\fP ¤ÎÂÅÅöÀ­¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ -\fIparam\->sched_priority\fP ¤ÎÃÍ¤Ï +はプロセスのスケジューリング方針における \fIparam\fP の妥当性をチェックする。 +\fIparam\->sched_priority\fP の値は .BR sched_get_priority_min (2) -¤È +と .BR sched_get_priority_max (2) -¤ÎÈϰϤËÆþ¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +の範囲に入っていなければならない。 .\"O For a discussion of the privileges and resource limits related to .\"O scheduling priority and policy, see .\"O .BR sched_setscheduler (2). -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ÎÍ¥ÀèÅÙ¤ÈÊý¿Ë¤Ë´ØÏ¢¤¹¤ëÆø¢¤È¥ê¥½¡¼¥¹À©¸Â¤Î -µÄÏÀ¤Ë´Ø¤·¤Æ¤Ï +スケジューリングの優先度と方針に関連する特権とリソース制限の +議論に関しては .BR sched_setscheduler (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O POSIX systems on which .\"O .BR sched_setparam () @@ -130,58 +130,58 @@ Linux .\"O .B _POSIX_PRIORITY_SCHEDULING .\"O in \fI\fP. .BR sched_setparam () -¤È +と .BR sched_getparam () -¤¬»ÈÍѤǤ­¤ë POSIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +が使用できる POSIX システムでは、 .I -¤Ë +に .B _POSIX_PRIORITY_SCHEDULING -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +が定義されている。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR sched_setparam () .\"O and .\"O .BR sched_getparam () .\"O return 0. -À®¸ù¤·¤¿¾ì¹ç¤Ï +成功した場合は .BR sched_setparam () -¤È +と .BR sched_getparam () -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O The argument \fIparam\fP does not make sense for the current .\"O scheduling policy. -°ú¤­¿ô \fIparam\fP ¤¬¸½ºß¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Êý¿Ë¤Ë¤ª¤¤¤Æ¤Ï -̵°ÕÌ£¤Ç¤¢¤ë¡£ +引き数 \fIparam\fP が現在のスケジューリング方針においては +無意味である。 .TP .B EPERM .\"O The calling process does not have appropriate privileges .\"O (Linux: does not have the .\"O .B CAP_SYS_NICE .\"O capability). -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬Å¬ÀÚ¤ÊÆø¢¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤ -(Linux ¤Ç¤Ï¡¢ +呼び出し元のプロセスが適切な特権を持っていない +(Linux では、 .B CAP_SYS_NICE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤)¡£ +ケーパビリティを持っていない)。 .TP .B ESRCH .\"O The process whose ID is \fIpid\fP could not be found. -\fIpid\fP ¤ò ID ¤Ë»ý¤Ä¥×¥í¥»¥¹¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£ +\fIpid\fP を ID に持つプロセスが見つからなかった。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getpriority (2), .BR nice (2), .BR sched_get_priority_max (2), diff --git a/draft/man2/sched_setscheduler.2 b/draft/man2/sched_setscheduler.2 index eb62d069..363382d4 100644 --- a/draft/man2/sched_setscheduler.2 +++ b/draft/man2/sched_setscheduler.2 @@ -58,19 +58,19 @@ .\" Updated 2007-10-13, Akihiro MOTOKI, LDP v2.65 .\" Updated 2008-08-13, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: privileges Æø¢ -.\"WORD: resource limit ¥ê¥½¡¼¥¹À©¸Â -.\"WORD: scheduling policy ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼ +.\"WORD: privileges 特権 +.\"WORD: resource limit リソース制限 +.\"WORD: scheduling policy スケジューリング・ポリシー .\" .TH SCHED_SETSCHEDULER 2 2008-11-06 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sched_setscheduler, sched_getscheduler \- .\"O set and get scheduling policy/parameters sched_setscheduler, sched_getscheduler \- -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤È¥Ñ¥é¥á¡¼¥¿¤òÀßÄê/¼èÆÀ¤¹¤ë +スケジューリング・ポリシーとパラメータを設定/取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -87,7 +87,7 @@ sched_setscheduler, sched_getscheduler \- }; .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR sched_setscheduler () .\"O sets both the scheduling policy and the associated parameters for the .\"O process whose ID is specified in \fIpid\fP. @@ -98,49 +98,49 @@ sched_setscheduler, sched_getscheduler \- .\"O Currently, Linux supports the following "normal" .\"O (i.e., non-real-time) scheduling policies: .BR sched_setscheduler () -¤Ï \fIpid\fP ¤Ç»ØÄꤵ¤ì¤¿ ID ¤ò»ý¤Ä¥×¥í¥»¥¹¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤ä -¤½¤ì¤Ë´ØÏ¢¤¹¤ë¥Ñ¥é¥á¡¼¥¿¤òÀßÄꤹ¤ë¡£\fIpid\fP ¤¬ 0 ¤Î¾ì¹ç¤Ï -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤È¥Ñ¥é¥á¡¼¥¿¤¬ÀßÄꤵ¤ì¤ë¡£ -°ú¤­¿ô \fIparam\fP ¤Î²ò¼á¤ÏÁªÂò¤µ¤ì¤¿¥Ý¥ê¥·¡¼¤Ë¤è¤ë¡£ -¸½ºß¤Î¤È¤³¤í¡¢Linux ¤Ç¤Ï -°Ê²¼¤Ë¼¨¤¹¡ÖÄ̾ï¡×(¥ê¥¢¥ë¥¿¥¤¥à¤Ç¤Ê¤¤) ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤¬ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +は \fIpid\fP で指定された ID を持つプロセスのスケジューリング・ポリシーや +それに関連するパラメータを設定する。\fIpid\fP が 0 の場合は +呼び出したプロセスのスケジューリング・ポリシーとパラメータが設定される。 +引き数 \fIparam\fP の解釈は選択されたポリシーによる。 +現在のところ、Linux では +以下に示す「通常」(リアルタイムでない) スケジューリング・ポリシーが +サポートされている。 .TP 14 .BR SCHED_OTHER .\"O the standard round-robin time-sharing policy; -ɸ½à¤Î¡¢¥é¥¦¥ó¥É¥í¥Ó¥ó¤Ë¤è¤ë»þʬ³ä·¿¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¡£ +標準の、ラウンドロビンによる時分割型のスケジューリング・ポリシー。 .\"O .\" In the 2.6 kernel sources, SCHED_OTHER is actually called .\"O .\" SCHED_NORMAL. -.\" 2.6 ¥«¡¼¥Í¥ë¥½¡¼¥¹¤Ç¤Ï¡¢SCHED_OTHER ¤Ï¼ÂºÝ¤Ë¤Ï -.\" SCHED_NORMAL ¤È¸Æ¤Ð¤ì¤Æ¤¤¤ë¡£ +.\" 2.6 カーネルソースでは、SCHED_OTHER は実際には +.\" SCHED_NORMAL と呼ばれている。 .TP .BR SCHED_BATCH .\"O for "batch" style execution of processes; and -¡Ö¥Ð¥Ã¥Á¡×·Á¼°¤Ç¤Î¥×¥í¥»¥¹¤Î¼Â¹ÔÍÑ¡£ +「バッチ」形式でのプロセスの実行用。 .TP .BR SCHED_IDLE .\"O for running .\"O .I very .\"O low priority background jobs. -¡ÖÈó¾ï¤Ë¡×Ä㤤ͥÀèÅÙ¤ÇÆ°ºî¤¹¤ë¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¡¦¥¸¥ç¥ÖÍÑ¡£ +「非常に」低い優先度で動作するバックグラウンド・ジョブ用。 .PP .\"O The following "real-time" policies are also supported, .\"O for special time-critical applications that need precise control over .\"O the way in which runnable processes are selected for execution: -¤É¤Î¼Â¹Ô²Äǽ¥×¥í¥»¥¹¤òÁªÂò¤¹¤ë¤«¤Ë¤Ä¤¤¤Æ¡¢¤è¤êÀµ³Î¤ÊÀ©¸æ¤òɬÍפȤ¹¤ë -»þ´Ö¤ÎÀ©Ì󤬸·¤·¤¤ÆÃÊ̤ʥ¢¥×¥ê¥±¡¼¥·¥ç¥óÍѤȤ·¤Æ¡¢ -°Ê²¼¤Î¡Ö¥ê¥¢¥ë¥¿¥¤¥à¡×¥Ý¥ê¥·¡¼¤â¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +どの実行可能プロセスを選択するかについて、より正確な制御を必要とする +時間の制約が厳しい特別なアプリケーション用として、 +以下の「リアルタイム」ポリシーもサポートされている。 .TP 14 .BR SCHED_FIFO .\"O a first-in, first-out policy; and -¥Õ¥¡¡¼¥¹¥È¥¤¥ó¡¢¥Õ¥¡¡¼¥¹¥È¥¢¥¦¥È·¿¤Î¥Ý¥ê¥·¡¼¡£ +ファーストイン、ファーストアウト型のポリシー。 .TP .BR SCHED_RR .\"O a round-robin policy. -¥é¥¦¥ó¥É¥í¥Ó¥ó·¿¤Î¥Ý¥ê¥·¡¼¡£ +ラウンドロビン型のポリシー。 .PP .\"O The semantics of each of these policies are detailed below. -¤³¤ì¤é¤Î¥Ý¥ê¥·¡¼¤Î¤½¤ì¤¾¤ì¤ÎÆ°ºî¤Ë¤Ä¤¤¤Æ¤Ï°Ê²¼¤ÇÀâÌÀ¤¹¤ë¡£ +これらのポリシーのそれぞれの動作については以下で説明する。 .\"O .BR sched_getscheduler () .\"O queries the scheduling policy currently applied to the process @@ -148,12 +148,12 @@ sched_setscheduler, sched_getscheduler \- .\"O If \fIpid\fP equals zero, the policy of the .\"O calling process will be retrieved. .BR sched_getscheduler () -¤Ï \fIpid\fP ¤Ç¼±Ê̤µ¤ì¤ë¥×¥í¥»¥¹¤Ë¸½ºßŬÍѤµ¤ì¤Æ¤¤¤ë -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤ò¿Ò¤Í¤ë¡£\fIpid\fP ¤¬ 0 ¤Ê¤é¤Ð¡¢¸Æ¤Ó½Ð¤·¤¿ -¥×¥í¥»¥¹¼«¿È¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ +は \fIpid\fP で識別されるプロセスに現在適用されている +スケジューリング・ポリシーを尋ねる。\fIpid\fP が 0 ならば、呼び出した +プロセス自身のスケジューリング・ポリシーが返される。 .\" .\"O .SS Scheduling Policies -.SS ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼ (scheduling policy) +.SS スケジューリング・ポリシー (scheduling policy) .\"O The scheduler is the kernel component that decides which runnable process .\"O will be executed by the CPU next. .\"O Each process has an associated scheduling policy and a \fIstatic\fP @@ -162,36 +162,36 @@ sched_setscheduler, sched_getscheduler \- .\"O .BR sched_setscheduler (). .\"O The scheduler makes it decisions based on knowledge of the scheduling .\"O policy and static priority of all processes on the system. -¥¹¥±¥¸¥å¡¼¥é (scheduler) ¤È¤Ï¥«¡¼¥Í¥ë¤Î¹½À®Í×ÁǤǡ¢ -¼¡¤Ë CPU ¤Ç¼Â¹Ô¤µ¤ì¤ë¼Â¹Ô²Äǽ¤Ê¥×¥í¥»¥¹¤ò·èÄꤹ¤ë¤â¤Î¤Ç¤¢¤ë¡£ -³Æ¡¹¤Î¥×¥í¥»¥¹¤Ë¤Ï¡¢¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤È -¡ÖÀÅŪ¡×¤Ê¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Í¥ÀèÅÙ \fIsched_priority\fP ¤¬ÂбþÉÕ¤±¤é¤ì¡¢ -¤³¤ì¤é¤ÎÀßÄê¤Ï +スケジューラ (scheduler) とはカーネルの構成要素で、 +次に CPU で実行される実行可能なプロセスを決定するものである。 +各々のプロセスには、スケジューリング・ポリシーと +「静的」なスケジューリング優先度 \fIsched_priority\fP が対応付けられ、 +これらの設定は .BR sched_setscheduler () -¤ÇÊѹ¹¤Ç¤­¤ë¡£ -¥¹¥±¥¸¥å¡¼¥é¤Ï¡¢¥·¥¹¥Æ¥à¾å¤ÎÁ´¥×¥í¥»¥¹¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤È -ÀÅŪͥÀèÅ٤˴ؤ¹¤ëÃμ±¤Ë´ð¤Å¤¤¤Æ·èÄê¤ò¹Ô¤¦¡£ +で変更できる。 +スケジューラは、システム上の全プロセスのスケジューリング・ポリシーと +静的優先度に関する知識に基づいて決定を行う。 .\"O For processes scheduled under one of the normal scheduling policies .\"O (\fBSCHED_OTHER\fP, \fBSCHED_IDLE\fP, \fBSCHED_BATCH\fP), .\"O \fIsched_priority\fP is not used in scheduling .\"O decisions (it must be specified as 0). -Ä̾ï¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼ +通常のスケジューリング・ポリシー (\fBSCHED_OTHER\fP, \fBSCHED_IDLE\fP, \fBSCHED_BATCH\fP) -¤Î²¼¤Ç¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤ë¥×¥í¥»¥¹¤Ç¤Ï¡¢ -\fIsched_priority\fP ¤Ï¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤Î·èÄê¤Ë»ÈÍѤµ¤ì¤Ê¤¤ -(\fIsched_priority\fP ¤Ë¤Ï 0 ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£ +の下でスケジューリングされるプロセスでは、 +\fIsched_priority\fP はスケジューリングの決定に使用されない +(\fIsched_priority\fP には 0 を指定しなければならない)。 .\"O Processes scheduled under one of the real-time policies .\"O (\fBSCHED_FIFO\fP, \fBSCHED_RR\fP) have a .\"O \fIsched_priority\fP value in the range 1 (low) to 99 (high). .\"O (As the numbers imply, real-time processes always have higher priority .\"O than normal processes.) -¥ê¥¢¥ë¥¿¥¤¥à¡¦¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼ (\fBSCHED_FIFO\fP, \fBSCHED_RR\fP) -¤Î²¼¤Ç¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤ë¥×¥í¥»¥¹¤Ï¡¢ -\fIsched_priority\fP ¤ÎÃÍ¤Ï 1 (ºÇÄã) ¤«¤é 99 (ºÇ¹â) ¤ÎÈϰϤȤʤë -(¿ô»ú¤«¤éʬ¤«¤ë¤è¤¦¤Ë¡¢¥ê¥¢¥ë¥¿¥¤¥à¡¦¥×¥í¥»¥¹¤Ï¾ï¤ËÄ̾ï¤Î¥×¥í¥»¥¹¤è¤ê¤â -¹â¤¤Í¥ÀèÅÙ¤ò»ý¤Ä)¡£ +リアルタイム・スケジューリング・ポリシー (\fBSCHED_FIFO\fP, \fBSCHED_RR\fP) +の下でスケジューリングされるプロセスは、 +\fIsched_priority\fP の値は 1 (最低) から 99 (最高) の範囲となる +(数字から分かるように、リアルタイム・プロセスは常に通常のプロセスよりも +高い優先度を持つ)。 .\"O Note well: POSIX.1-2001 only requires an implementation to support a .\"O minimum 32 distinct priority levels for the real-time policies, .\"O and some systems supply just this minimum. @@ -200,34 +200,34 @@ sched_setscheduler, sched_getscheduler \- .\"O and .\"O .BR sched_get_priority_max (2) .\"O to find the range of priorities supported for a particular policy. -¤³¤³¤ÇÃí°Õ¤¹¤Ù¤­¤Ê¤Î¤Ï¡¢POSIX.1-2001 ¤¬Í׵ᤷ¤Æ¤¤¤ë¤Î¤Ï¡¢ -¥ê¥¢¥ë¥¿¥¤¥à¡¦¥Ý¥ê¥·¡¼¤Î¼ÂÁõ¤Ë¤ª¤¤¤ÆºÇÄã 32 ¼ïÎà¤Î°Û¤Ê¤ëÍ¥ÀèÅÙ¥ì¥Ù¥ë¤¬ -¥µ¥Ý¡¼¥È¤µ¤ì¤ë¤³¤È¤À¤±¤Ç¤¢¤ê¡¢¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¤³¤ÎºÇÄã¸Â¤Î¿ô¤Î -Í¥ÀèÅÙ¤·¤«Ä󶡤µ¤ì¤Æ¤¤¤Ê¤¤¡¢¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ -°Ü¿¢À­¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ +ここで注意すべきなのは、POSIX.1-2001 が要求しているのは、 +リアルタイム・ポリシーの実装において最低 32 種類の異なる優先度レベルが +サポートされることだけであり、いくつかのシステムではこの最低限の数の +優先度しか提供されていない、ということである。 +移植性が必要なプログラムでは、 .BR sched_get_priority_min (2) -¤È +と .BR sched_get_priority_max (2) -¤ò»È¤Ã¤Æ¡¢¤¢¤ë¥Ý¥ê¥·¡¼¤¬¥µ¥Ý¡¼¥È¤¹¤ëÍ¥ÀèÅÙ¤ÎÈϰϤòÄ´¤Ù¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +を使って、あるポリシーがサポートする優先度の範囲を調べるべきである。 .\"O Conceptually, the scheduler maintains a list of runnable .\"O processes for each possible \fIsched_priority\fP value. .\"O In order to determine which process runs next, the scheduler looks for .\"O the nonempty list with the highest static priority and selects the .\"O process at the head of this list. -³µÇ°¤È¤·¤Æ¤Ï¡¢ -¥¹¥±¥¸¥å¡¼¥é¤Ï¤½¤Î \fIsched_priority\fP ¤ÎÃͤ½¤ì¤¾¤ì¤ËÂФ·¤Æ -¼Â¹Ô²Äǽ¤Ê¥×¥í¥»¥¹¤Î¥ê¥¹¥È¤ò´ÉÍý¤·¤Æ¤¤¤ë¡£ -¤É¤Î¥×¥í¥»¥¹¤ò¼¡¤Ë¼Â¹Ô¤¹¤ë¤«¤ò·èÄꤹ¤ë¤¿¤á¤Ë¡¢ -¥¹¥±¥¸¥å¡¼¥é¤ÏÀÅŪͥÀèÅ٤κǤâ¹â¤¤¶õ¤Ç¤Ê¤¤¥ê¥¹¥È¤òõ¤·¤Æ¡¢ -¤½¤Î¥ê¥¹¥È¤ÎÀèƬ¤Î¥×¥í¥»¥¹¤òÁªÂò¤¹¤ë¡£ +概念としては、 +スケジューラはその \fIsched_priority\fP の値それぞれに対して +実行可能なプロセスのリストを管理している。 +どのプロセスを次に実行するかを決定するために、 +スケジューラは静的優先度の最も高い空でないリストを探して、 +そのリストの先頭のプロセスを選択する。 .\"O A process's scheduling policy determines .\"O where it will be inserted into the list of processes .\"O with equal static priority and how it will move inside this list. -³Æ¥×¥í¥»¥¹¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤Ï¡¢ -¤½¤Î¥×¥í¥»¥¹¤¬Æ±¤¸ÀÅŪͥÀèÅÙ¤ò»ý¤Ä¥×¥í¥»¥¹¤Î¥ê¥¹¥È¤ÎÃæ¤Î¤É¤³¤ËÁÞÆþ¤µ¤ì¡¢ -¤³¤Î¥ê¥¹¥È¤ÎÃæ¤ò¤É¤Î¤è¤¦¤Ë°ÜÆ°¤¹¤ë¤«¤ò·èÄꤹ¤ë¡£ +各プロセスのスケジューリング・ポリシーは、 +そのプロセスが同じ静的優先度を持つプロセスのリストの中のどこに挿入され、 +このリストの中をどのように移動するかを決定する。 .\"O All scheduling is preemptive: if a process with a higher static .\"O priority becomes ready to run, the currently running process @@ -236,13 +236,13 @@ sched_setscheduler, sched_getscheduler \- .\"O The scheduling policy only determines the .\"O ordering within the list of runnable processes with equal static .\"O priority. -Á´¤Æ¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤Ï¥×¥ê¥¨¥ó¥×¥Æ¥£¥Ö (preemptive) ¤Ç¤¢¤ë: -¤è¤ê¹â¤¤Í¥ÀèÅÙ¤Î¥×¥í¥»¥¹¤¬¼Â¹Ô²Äǽ¤Ë¤Ê¤ë¤È¡¢¸½ºß¼Â¹ÔÃæ¤Î¥×¥í¥»¥¹¤Ï¼Â¹Ô¸¢¤ò -¼è¤ê¾å¤²¤é¤ì (preempted)¡¢¤½¤Î¥×¥í¥»¥¹¤ÎÀÅŪͥÀèÅÙ¥ì¥Ù¥ë¤ÎÂÔ¤Á¥ê¥¹¥È¤Ë -Ìᤵ¤ì¤ë¡£¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤ÏƱ¤¸ÀÅŪͥÀèÅÙ¤ò»ý¤Ä¼Â¹Ô²Äǽ¤Ê -¥×¥í¥»¥¹¤Î¥ê¥¹¥È¤ÎÃæ¤Ç½çÈ֤Τߤò·èÄꤹ¤ë¡£ +全てのスケジューリングはプリエンプティブ (preemptive) である: +より高い優先度のプロセスが実行可能になると、現在実行中のプロセスは実行権を +取り上げられ (preempted)、そのプロセスの静的優先度レベルの待ちリストに +戻される。スケジューリング・ポリシーは同じ静的優先度を持つ実行可能な +プロセスのリストの中で順番のみを決定する。 .\"O .SS SCHED_FIFO: First In-First Out scheduling -.SS SCHED_FIFO: ¥Õ¥¡¡¼¥¹¥È¥¤¥ó¡¦¥Õ¥¡¡¼¥¹¥È¥¢¥¦¥È¡¦¥¹¥±¥¸¥å¡¼¥ê¥ó¥° +.SS SCHED_FIFO: ファーストイン・ファーストアウト・スケジューリング .\"O \fBSCHED_FIFO\fP can only be used with static priorities higher than .\"O 0, which means that when a \fBSCHED_FIFO\fP processes becomes runnable, .\"O it will always immediately preempt any currently running @@ -251,26 +251,26 @@ sched_setscheduler, sched_getscheduler \- .\"O algorithm without time slicing. .\"O For processes scheduled under the .\"O \fBSCHED_FIFO\fP policy, the following rules apply: -\fBSCHED_FIFO\fP ¤Ï 0 ¤è¤êÂ礭¤ÊÀÅŪͥÀèÅ٤ǤΤ߻ÈÍѤǤ­¤ë¡£¤³¤Î¥Ý¥ê¥·¡¼¤Ç¤Ï¡¢ -\fBSCHED_FIFO\fP ¥×¥í¥»¥¹¤¬¼Â¹Ô²Äǽ¤Ë¤Ê¤Ã¤¿¾ì¹ç¡¢ -¤½¤Î¥Ý¥ê¥·¡¼¤¬ \fBSCHED_OTHER\fP¡¢ \fBSCHED_BATCH\fP¡¢ \fBSCHED_IDLE\fP ¤Î -¸½ºß¼Â¹ÔÃæ¤Î¥×¥í¥»¥¹¤Ïľ¤Á¤Ë¼Â¹Ô¸¢¤ò¼è¤ê¾å¤²¤é¤ì¤ë¡£ -\fBSCHED_FIFO\fP ¤Ï»þʬ³ä¤Î¤Ê¤¤Ã±½ã¤Ê¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥¢¥ë¥´¥ê¥º¥à¤Ç¤¢¤ë¡£ -\fBSCHED_FIFO\fP ¥Ý¥ê¥·¡¼¤Ç¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤Æ¤¤¤ë¥×¥í¥»¥¹¤Ë¤Ï°Ê²¼¤Î -¥ë¡¼¥ë¤¬Å¬ÍѤµ¤ì¤ë: +\fBSCHED_FIFO\fP は 0 より大きな静的優先度でのみ使用できる。このポリシーでは、 +\fBSCHED_FIFO\fP プロセスが実行可能になった場合、 +そのポリシーが \fBSCHED_OTHER\fP、 \fBSCHED_BATCH\fP、 \fBSCHED_IDLE\fP の +現在実行中のプロセスは直ちに実行権を取り上げられる。 +\fBSCHED_FIFO\fP は時分割のない単純なスケジューリング・アルゴリズムである。 +\fBSCHED_FIFO\fP ポリシーでスケジューリングされているプロセスには以下の +ルールが適用される: .IP * 3 .\"O A \fBSCHED_FIFO\fP process that has been preempted by another process of .\"O higher priority will stay at the head of the list for its priority and .\"O will resume execution as soon as all processes of higher priority are .\"O blocked again. -¤è¤ê¹â¤¤Í¥ÀèÅ٤ξ¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¼è¤Ã¤ÆÂå¤ï¤é¤ì¤¿ -\fBSCHED_FIFO\fP ¥×¥í¥»¥¹¤Ï¤½¤ÎÍ¥ÀèÅ٤Υꥹ¥È¤ÎÀèƬ¤Ëα¤Þ¤ê³¤±¡¢ -¤è¤ê¹â¤¤Í¥ÀèÅÙ¤Î¥×¥í¥»¥¹Á´¤Æ¤¬Ää»ß (block) ¤·¤¿¾ì¹ç¤Ë¼Â¹Ô¤òºÆ³«¤¹¤ë¡£ +より高い優先度の他のプロセスによって取って代わられた +\fBSCHED_FIFO\fP プロセスはその優先度のリストの先頭に留まり続け、 +より高い優先度のプロセス全てが停止 (block) した場合に実行を再開する。 .IP * .\"O When a \fBSCHED_FIFO\fP process becomes runnable, it .\"O will be inserted at the end of the list for its priority. -\fBSCHED_FIFO\fP ¥×¥í¥»¥¹¤¬¼Â¹Ô²Äǽ¤Ë¤Ê¤Ã¤¿»þ¡¢¤½¤ÎÍ¥ÀèÅ٤Υꥹ¥È¤ÎºÇ¸å -¤ËÁÞÆþ¤µ¤ì¤ë¡£ +\fBSCHED_FIFO\fP プロセスが実行可能になった時、その優先度のリストの最後 +に挿入される。 .IP * .\"O A call to .\"O .BR sched_setscheduler () @@ -280,18 +280,18 @@ sched_setscheduler, sched_getscheduler \- .\"O \fBSCHED_FIFO\fP (or \fBSCHED_RR\fP) process identified by .\"O \fIpid\fP at the start of the list if it was runnable. .BR sched_setscheduler () -¤ä +や .BR sched_setparam (2) -¤Ï -\fIpid\fP ¤Ç»ØÄꤵ¤ì¤¿ \fBSCHED_FIFO\fP (¤Þ¤¿¤Ï \fBSCHED_RR\fP) ¥×¥í¥»¥¹¤¬ -¼Â¹Ô²Äǽ¤Ê¾ì¹ç¡¢¥ê¥¹¥È¤ÎºÇ½é¤ËÃÖ¤¯¡£ +は +\fIpid\fP で指定された \fBSCHED_FIFO\fP (または \fBSCHED_RR\fP) プロセスが +実行可能な場合、リストの最初に置く。 .\"O As a consequence, it may preempt the currently running process if .\"O it has the same priority. .\"O (POSIX.1-2001 specifies that the process should go to the end .\"O of the list.) -·ë²Ì¤È¤·¤Æ¡¢¤â¤·Í¥ÀèÅÙ¤¬Æ±¤¸¤À¤Ã¤¿¾ì¹ç¡¢ -¸½ºß¼Â¹ÔÃæ¤Î¥×¥í¥»¥¹¤ËÀè¤ó¤¸¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -(POSIX.1-2001 ¤Ç¤Ï¥×¥í¥»¥¹¤Ï¥ê¥¹¥È¤ÎºÇ¸å¤Ë¹Ô¤¯¤Ù¤­¤Èµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£) +結果として、もし優先度が同じだった場合、 +現在実行中のプロセスに先んじるかもしれない。 +(POSIX.1-2001 ではプロセスはリストの最後に行くべきと規定されている。) .\" In 2.2.x and 2.4.x, the process is placed at the front of the queue .\" In 2.0.x, the Right Thing happened: the process went to the back -- MTK .IP * @@ -299,25 +299,25 @@ sched_setscheduler, sched_getscheduler \- .\"O .BR sched_yield (2) .\"O will be put at the end of the list. .BR sched_yield (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¥ê¥¹¥È¤ÎºÇ¸å¤ËÃÖ¤«¤ì¤ë¡£ +を呼び出したプロセスはリストの最後に置かれる。 .PP .\"O No other events will move a process .\"O scheduled under the \fBSCHED_FIFO\fP policy in the wait list of .\"O runnable processes with equal static priority. -¤½¤Î¾¤Î¥¤¥Ù¥ó¥È¤Ë¤è¤Ã¤Æ \fBSCHED_FIFO\fP ¥Ý¥ê¥·¡¼¤Ç -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤ë¥×¥í¥»¥¹¤¬Æ±¤¸Í¥ÀèÅ٤μ¹ԲÄǽ¤Ê -¥×¥í¥»¥¹¤ÎÂÔ¤Á¥ê¥¹¥È¤ÎÃæ¤ò°ÜÆ°¤¹¤ë¤³¤È¤Ï¤Ê¤¤¡£ +その他のイベントによって \fBSCHED_FIFO\fP ポリシーで +スケジューリングされるプロセスが同じ優先度の実行可能な +プロセスの待ちリストの中を移動することはない。 .\"O A \fBSCHED_FIFO\fP .\"O process runs until either it is blocked by an I/O request, it is .\"O preempted by a higher priority process, or it calls .\"O .BR sched_yield (2). -\fBSCHED_FIFO\fP ¥×¥í¥»¥¹¤Ï I/O Í×µá¤Ë¤è¤Ã¤ÆÄä»ß¤¹¤ë¤«¡¢ -¤è¤ê¹â¤¤Í¥ÀèÅÙ¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤ÆÃÖ¤­¤«¤¨¤é¤ì¤ë¤«¡¢ +\fBSCHED_FIFO\fP プロセスは I/O 要求によって停止するか、 +より高い優先度のプロセスによって置きかえられるか、 .BR sched_yield (2) -¤ò¸Æ¤Ó½Ð¤¹¤Þ¤Ç¼Â¹Ô¤ò³¤±¤ë¡£ +を呼び出すまで実行を続ける。 .\"O .SS SCHED_RR: Round Robin scheduling -.SS SCHED_RR: ¥é¥¦¥ó¥É¡¦¥í¥Ó¥ó (round robin) ¡¦¥¹¥±¥¸¥å¡¼¥ê¥ó¥° +.SS SCHED_RR: ラウンド・ロビン (round robin) ・スケジューリング .\"O \fBSCHED_RR\fP is a simple enhancement of \fBSCHED_FIFO\fP. .\"O Everything .\"O described above for \fBSCHED_FIFO\fP also applies to \fBSCHED_RR\fP, @@ -333,21 +333,21 @@ sched_setscheduler, sched_getscheduler \- .\"O The length of the time quantum can be .\"O retrieved using .\"O .BR sched_rr_get_interval (2). -\fBSCHED_RR\fP ¤Ï \fBSCHED_FIFO\fP ¤Îñ½ã¤Ê³ÈÄ¥¤Ç¤¢¤ë¡£ -¾å½Ò¤µ¤ì¤¿ \fBSCHED_FIFO\fP ¤Ë´Ø¤¹¤ëµ­½Ò¤ÏÁ´¤Æ \fBSCHED_RR\fP ¤Ë -ŬÍѤǤ­¤ë¡£°Û¤Ê¤ë¤Î¤Ï¤½¤ì¤¾¤ì¤Î¥×¥í¥»¥¹¤ÏºÇÂç»þ´Öñ°Ì¤Þ¤Ç¤·¤«¼Â¹Ô¤Ç¤­¤Ê¤¤ -¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£\fBSCHED_RR\fP ¥×¥í¥»¥¹¤¬»þ´Öñ°Ì¤ÈƱ¤¸¤«¤½¤ì¤è¤ê -Ť¤»þ´Ö¼Â¹Ô¤µ¤ì¤ë¤È¡¢¤½¤ÎÍ¥ÀèÅ٤Υꥹ¥È¤ÎºÇ¸å¤ËÃÖ¤«¤ì¤ë¡£ -¤è¤ê¹â¤¤Í¥ÀèÅÙ¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤ÆÃÖ¤­¤«¤¨¤é¤ì¡¢¤½¤Î¸å¼Â¹Ô¤òºÆ³«¤·¤¿ -\fBSCHED_RR\fP ¥×¥í¥»¥¹¤Ï¡¢¤½¤Î¥é¥¦¥ó¥É¡¦¥í¥Ó¥ó»þ´Öñ°Ì¤ò´°Á´¤Ë»È¤¤ÀÚ¤ë -¤Þ¤Ç¼Â¹Ô¤µ¤ì¤ë¡£¤½¤Î»þ´Öñ°Ì¤ÎŤµ¤Ï +\fBSCHED_RR\fP は \fBSCHED_FIFO\fP の単純な拡張である。 +上述された \fBSCHED_FIFO\fP に関する記述は全て \fBSCHED_RR\fP に +適用できる。異なるのはそれぞれのプロセスは最大時間単位までしか実行できない +ということである。\fBSCHED_RR\fP プロセスが時間単位と同じかそれより +長い時間実行されると、その優先度のリストの最後に置かれる。 +より高い優先度のプロセスによって置きかえられ、その後実行を再開した +\fBSCHED_RR\fP プロセスは、そのラウンド・ロビン時間単位を完全に使い切る +まで実行される。その時間単位の長さは .BR sched_rr_get_interval (2) -¤ò»È¤Ã¤Æ¼èÆÀ¤Ç¤­¤ë¡£ +を使って取得できる。 .\" On Linux 2.4, the length of the RR interval is influenced .\" by the process nice value -- MTK .\" .\"O .SS SCHED_OTHER: Default Linux time-sharing scheduling -.SS SCHED_OTHER: Linux ¤Î¥Ç¥Õ¥©¥ë¥È¤Î»þʬ³ä¥¹¥±¥¸¥å¡¼¥ê¥ó¥° +.SS SCHED_OTHER: Linux のデフォルトの時分割スケジューリング .\"O \fBSCHED_OTHER\fP can only be used at static priority 0. .\"O \fBSCHED_OTHER\fP is the standard Linux time-sharing scheduler that is .\"O intended for all processes that do not require the special @@ -362,24 +362,24 @@ sched_setscheduler, sched_getscheduler \- .\"O and increased for each time quantum the process is ready to run, .\"O but denied to run by the scheduler. .\"O This ensures fair progress among all \fBSCHED_OTHER\fP processes. -\fBSCHED_OTHER\fP ¤ÏÀÅŪͥÀèÅÙ 0 ¤Ç¤Î¤ß»ÈÍѤǤ­¤ë¡£ -\fBSCHED_OTHER\fP ¤Ï Linux ɸ½à¤Î»þʬ³ä¥¹¥±¥¸¥å¡¼¥é¤Ç¡¢ -ÆÃÊ̤ʥꥢ¥ë¥¿¥¤¥àµ¡¹½¤òɬÍפȤ·¤Æ¤¤¤Ê¤¤Á´¤Æ¤Î¥×¥í¥»¥¹¤Ç»ÈÍѤµ¤ì¤ë¡£ -¼Â¹Ô¤¹¤ë¥×¥í¥»¥¹¤Ï¡¢ÀÅŪͥÀèÅÙ 0 ¤Î¥ê¥¹¥È¤«¤é¡¢¤³¤Î¥ê¥¹¥È¤ÎÃæ¤À¤±¤Ç -·èÄꤵ¤ì¤ë¡ÖưŪ¤Ê¡×Í¥ÀèÅÙ (dynamic priority) ¤Ë´ð¤¤¤Æ·èÄꤵ¤ì¤ë¡£ -ưŪ¤ÊÍ¥ÀèÅÙ¤Ï +\fBSCHED_OTHER\fP は静的優先度 0 でのみ使用できる。 +\fBSCHED_OTHER\fP は Linux 標準の時分割スケジューラで、 +特別なリアルタイム機構を必要としていない全てのプロセスで使用される。 +実行するプロセスは、静的優先度 0 のリストから、このリストの中だけで +決定される「動的な」優先度 (dynamic priority) に基いて決定される。 +動的な優先度は .RB ( nice (2) -¤ä +や .BR setpriority (2) -¤Ë¤è¤êÀßÄꤵ¤ì¤ë) nice Ãͤ˴ð¤Å¤¤¤Æ·èÄꤵ¤ì¤ë¤â¤Î¤Ç¡¢ -ñ°Ì»þ´ÖËè¤Ë¡¢¥×¥í¥»¥¹¤¬¼Â¹Ô²Äǽ¤À¤¬¡¢¥¹¥±¥¸¥å¡¼¥é¤Ë¤è¤ê¼Â¹Ô¤¬µñÈݤµ¤ì¤¿ -¾ì¹ç¤Ë¥¤¥ó¥¯¥ê¥á¥ó¥È¤µ¤ì¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢Á´¤Æ¤Î \fBSCHED_OTHER\fP ¥×¥í¥»¥¹¤Ç¤Î¸øÊ¿À­¤¬Êݾڤµ¤ì¤ë¡£ +により設定される) nice 値に基づいて決定されるもので、 +単位時間毎に、プロセスが実行可能だが、スケジューラにより実行が拒否された +場合にインクリメントされる。 +これにより、全ての \fBSCHED_OTHER\fP プロセスでの公平性が保証される。 .\" .\"O .SS SCHED_BATCH: Scheduling batch processes -.SS SCHED_BATCH: ¥Ð¥Ã¥Á¥×¥í¥»¥¹¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥° +.SS SCHED_BATCH: バッチプロセスのスケジューリング .\"O (Since Linux 2.6.16.) -(Linux 2.6.16 °Ê¹ß) +(Linux 2.6.16 以降) .\"O \fBSCHED_BATCH\fP can only be used at static priority 0. .\"O This policy is similar to \fBSCHED_OTHER\fP in that it schedules .\"O the process according to its dynamic priority @@ -390,14 +390,14 @@ sched_setscheduler, sched_getscheduler \- .\"O Consequently, the scheduler will apply a small scheduling .\"O penalty with respect to wakeup behaviour, .\"O so that this process is mildly disfavored in scheduling decisions. -\fBSCHED_BATCH\fP ¤ÏÀÅŪͥÀèÅÙ 0 ¤Ç¤Î¤ß»ÈÍѤǤ­¤ë¡£ -¤³¤Î¥Ý¥ê¥·¡¼¤Ï (nice Ãͤ˴ð¤Å¤¯) ưŪ¤ÊÍ¥ÀèÅ٤ˤ·¤¿¤¬¤Ã¤Æ¥×¥í¥»¥¹¤Î -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤¬¹Ô¤ï¤ì¤ë¤È¤¤¤¦ÅÀ¤Ç¡¢\fBSCHED_OTHER\fP ¤Ë»÷¤Æ¤¤¤ë¡£ -°Û¤Ê¤ë¤Î¤Ï¡¢¤³¤Î¥Ý¥ê¥·¡¼¤Ç¤Ï¡¢¥×¥í¥»¥¹¤¬¾ï¤Ë CPU ¤ËÉé²Ù¤Î¤«¤«¤ë (CPU-intensive) -½èÍý¤ò¹Ô¤¦¤È¡¢¥¹¥±¥¸¥å¡¼¥é¤¬²¾Äꤹ¤ëÅÀ¤Ç¤¢¤ë¡£ -¥¹¥±¥¸¥å¡¼¥é¤Ï¥×¥í¥»¥¹¤ò¸Æ¤Óµ¯¤³¤¹Ëè¤Ë¤½¤Î¥×¥í¥»¥¹¤Ë¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¾å¤Î -¥Ú¥Ê¥ë¥Æ¥£¤ò¾¯¤·²Ý¤·¡¢¤½¤Î·ë²Ì¡¢¤³¤Î¥×¥í¥»¥¹¤Ï¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤Î·èÄê¤Ç -¼ã´³Îä¶ø¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +\fBSCHED_BATCH\fP は静的優先度 0 でのみ使用できる。 +このポリシーは (nice 値に基づく) 動的な優先度にしたがってプロセスの +スケジューリングが行われるという点で、\fBSCHED_OTHER\fP に似ている。 +異なるのは、このポリシーでは、プロセスが常に CPU に負荷のかかる (CPU-intensive) +処理を行うと、スケジューラが仮定する点である。 +スケジューラはプロセスを呼び起こす毎にそのプロセスにスケジューリング上の +ペナルティを少し課し、その結果、このプロセスはスケジューリングの決定で +若干冷遇されるようになる。 .\" The following paragraph is drawn largely from the text that .\" accompanied Ingo Molnar's patch for the implementation of @@ -406,19 +406,19 @@ sched_setscheduler, sched_getscheduler \- .\"O but do not want to lower their nice value, .\"O and for workloads that want a deterministic scheduling policy without .\"O interactivity causing extra preemptions (between the workload's tasks). -¤³¤Î¥Ý¥ê¥·¡¼¤Ï¡¢ÈóÂÐÏÃŪ¤Ê½èÍý¤À¤¬¤½¤Î nice Ãͤò²¼¤²¤¿¤¯¤Ê¤¤½èÍý¤ä¡¢ -(½èÍý¤Î¥¿¥¹¥¯´Ö¤Ç) ;·×¤Ê¥¿¥¹¥¯¤ÎÃÖ¤­´¹¤¨¤Î¸¶°ø¤È¤¢¤ëÂÐÏÃŪ¤Ê½èÍý¤Ê¤·¤Ç -³ÎÄêŪ¤Ê (deterministic) ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤òŬÍѤ·¤¿¤¤½èÍý¤Ë -ÂФ·¤ÆÍ­¸ú¤Ç¤¢¤ë¡£ +このポリシーは、非対話的な処理だがその nice 値を下げたくない処理や、 +(処理のタスク間で) 余計なタスクの置き換えの原因とある対話的な処理なしで +確定的な (deterministic) スケジューリング・ポリシーを適用したい処理に +対して有効である。 .\" .\"O .SS SCHED_IDLE: Scheduling very low priority jobs -.SS SCHED_IDLE: Èó¾ï¤ËÍ¥ÀèÅÙ¤ÎÄ㤤¥¸¥ç¥Ö¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥° +.SS SCHED_IDLE: 非常に優先度の低いジョブのスケジューリング .\"O (Since Linux 2.6.23.) -(Linux 2.6.23 °Ê¹ß) +(Linux 2.6.23 以降) .\"O \fBSCHED_IDLE\fP can only be used at static priority 0; .\"O the process nice value has no influence for this policy. -\fBSCHED_IDLE\fP ¤ÏÀÅŪͥÀèÅÙ 0 ¤Ç¤Î¤ß»ÈÍѤǤ­¤ë¡£ -¤³¤Î¥Ý¥ê¥·¡¼¤Ç¤Ï¥×¥í¥»¥¹¤Î nice Ãͤϥ¹¥±¥¸¥å¡¼¥ê¥ó¥°¤Ë±Æ¶Á¤òÍ¿¤¨¤Ê¤¤¡£ +\fBSCHED_IDLE\fP は静的優先度 0 でのみ使用できる。 +このポリシーではプロセスの nice 値はスケジューリングに影響を与えない。 .\"O This policy is intended for running jobs at extremely low .\"O priority (lower even than a +19 nice value with the @@ -426,15 +426,15 @@ sched_setscheduler, sched_getscheduler \- .\"O or .\"O .B SCHED_BATCH .\"O policies). -Èó¾ï¤ËÄ㤤ͥÀèÅ٤ǤΥ¸¥ç¥Ö¤Î¼Â¹Ô¤òÌÜŪ¤È¤·¤¿¤â¤Î¤Ç¤¢¤ë -(Èó¾ï¤ËÄ㤤ͥÀèÅ٤Ȥϡ¢¥Ý¥ê¥·¡¼ +非常に低い優先度でのジョブの実行を目的としたものである +(非常に低い優先度とは、ポリシー .B SCHED_OTHER -¤« +か .B SCHED_BATCH -¤Ç¤Î nice ÃÍ +19 ¤è¤ê¤µ¤é¤ËÄ㤤ͥÀèÅ٤Ǥ¢¤ë)¡£ +での nice 値 +19 よりさらに低い優先度である)。 .\" .\"O .SS Privileges and resource limits -.SS Æø¢¤È¥ê¥½¡¼¥¹À©¸Â +.SS 特権とリソース制限 .\"O In Linux kernels before 2.6.12, only privileged .\"O .RB ( CAP_SYS_NICE ) .\"O processes can set a nonzero static priority (i.e., set a real-time @@ -447,19 +447,19 @@ sched_setscheduler, sched_getscheduler \- .\"O (i.e., the process specified by .\"O .IR pid ) .\"O whose policy is being changed. -2.6.12 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î Linux ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -Æø¢¥×¥í¥»¥¹ +2.6.12 より前のバージョンの Linux カーネルでは、 +特権プロセス .RB ( CAP_SYS_NICE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹) ¤À¤±¤¬ 0 °Ê³°¤ÎÀÅŪͥÀèÅÙ¤òÀßÄꤹ¤ë -(¤¹¤Ê¤ï¤Á¡¢¥ê¥¢¥ë¥¿¥¤¥à¡¦¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤òÀßÄꤹ¤ë) ¤³¤È¤¬¤Ç¤­¤ë¡£ -ÈóÆø¢¥×¥í¥»¥¹¤¬¤Ç¤­¤ëÊѹ¹¤Ï +ケーパビリティを持つプロセス) だけが 0 以外の静的優先度を設定する +(すなわち、リアルタイム・スケジューリング・ポリシーを設定する) ことができる。 +非特権プロセスができる変更は .B SCHED_OTHER -¥Ý¥ê¥·¡¼¤òÀßÄꤹ¤ë¤³¤È¤À¤±¤Ç¤¢¤ê¡¢¤µ¤é¤Ë¤³¤ÎÊѹ¹¤ò¹Ô¤¨¤ë¤Î¤Ï +ポリシーを設定することだけであり、さらにこの変更を行えるのは .BR sched_setscheduler () -¤Î¸Æ¤Ó½Ð¤·¸µ¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤¬¥Ý¥ê¥·¡¼¤ÎÊѹ¹ÂÐ¾Ý¥×¥í¥»¥¹ +の呼び出し元の実効ユーザ ID がポリシーの変更対象プロセス .RI ( pid -¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹) ¤Î¼Â¥æ¡¼¥¶ ID ¤«¼Â¸ú¥æ¡¼¥¶ ID ¤È -°ìÃפ¹¤ë¾ì¹ç¤À¤±¤Ç¤¢¤ë¡£ +で指定されたプロセス) の実ユーザ ID か実効ユーザ ID と +一致する場合だけである。 .\"O Since Linux 2.6.12, the .\"O .B RLIMIT_RTPRIO @@ -469,16 +469,16 @@ sched_setscheduler, sched_getscheduler \- .\"O and .\"O .B SCHED_FIFO .\"O policies. -Linux 2.6.12 °Ê¹ß¤Ç¤Ï¡¢¥ê¥½¡¼¥¹À©¸Â +Linux 2.6.12 以降では、リソース制限 .B RLIMIT_RTPRIO -¤¬ÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤¬ +が定義されており、 +スケジューリング・ポリシーが .B SCHED_RR -¤È +と .B SCHED_FIFO -¤Î¾ì¹ç¤Î¡¢ÈóÆø¢¥×¥í¥»¥¹¤ÎÀÅŪͥÀèÅ٤ξå¸Â¤òÄê¤á¤Æ¤¤¤ë¡£ +の場合の、非特権プロセスの静的優先度の上限を定めている。 .\"O The rules for changing scheduling policy and priority are as follows: -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤ÈÍ¥ÀèÅÙ¤òÊѹ¹¤¹¤ëºÝ¤Î¥ë¡¼¥ë¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +スケジューリング・ポリシーと優先度を変更する際のルールは以下の通りである。 .IP * 2 .\"O If an unprivileged process has a nonzero .\"O .B RLIMIT_RTPRIO @@ -487,30 +487,30 @@ Linux 2.6.12 .\"O value higher than the maximum of its current priority and its .\"O .B RLIMIT_RTPRIO .\"O soft limit. -ÈóÆø¢¥×¥í¥»¥¹¤Ë 0 °Ê³°¤Î +非特権プロセスに 0 以外の .B RLIMIT_RTPRIO -¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -ÈóÆø¢¥×¥í¥»¥¹¤Ï¤½¤Î¥×¥í¥»¥¹¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤ÈÍ¥ÀèÅÙ¤ò -Êѹ¹¤Ç¤­¤ë¤¬¡¢Í¥ÀèÅÙ¤ò¸½ºß¤Î¼«¿È¤ÎÍ¥ÀèÅÙ¤È +ソフト・リミットが設定されている場合、 +非特権プロセスはそのプロセスのスケジューリング・ポリシーと優先度を +変更できるが、優先度を現在の自身の優先度と .B RLIMIT_RTPRIO -¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤ÎÂ礭¤¤Êý¤è¤ê¤â¹â¤¤ÃͤËÀßÄê¤Ç¤­¤Ê¤¤¤È¤¤¤¦À©¸Â¤¬²Ý¤µ¤ì¤ë¡£ +ソフト・リミットの大きい方よりも高い値に設定できないという制限が課される。 .IP * .\"O If the .\"O .B RLIMIT_RTPRIO .\"O soft limit is 0, then the only permitted changes are to lower the priority, .\"O or to switch to a non-real-time policy. .B RLIMIT_RTPRIO -¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤¬ 0 ¤Î¾ì¹ç¡¢Í¥ÀèÅÙ¤ò²¼¤²¤ë¤«¡¢ -¥ê¥¢¥ë¥¿¥¤¥à¤Ç¤Ê¤¤¥Ý¥ê¥·¡¼¤ØÀÚ¤êÂؤ¨¤ë¤«¤ÎÊѹ¹¤À¤±¤¬µö²Ä¤µ¤ì¤ë¡£ +ソフト・リミットが 0 の場合、優先度を下げるか、 +リアルタイムでないポリシーへ切り替えるかの変更だけが許可される。 .IP * .\"O Subject to the same rules, .\"O another unprivileged process can also make these changes, .\"O as long as the effective user ID of the process making the change .\"O matches the real or effective user ID of the target process. -¤¢¤ëÈóÆø¢¥×¥í¥»¥¹¤¬ÊÌ¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ¤³¤ì¤é¤ÎÊѹ¹¤ò¹Ô¤¦ºÝ¤Ë¤â¡¢ -Ʊ¤¸¥ë¡¼¥ë¤¬Å¬ÍѤµ¤ì¤ë¡£Êѹ¹¤ò¹Ô¤¨¤ë¤Î¤Ï¡¢Êѹ¹¤ò¹Ô¤ª¤¦¤È¤¹¤ë¥×¥í¥»¥¹ -¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤¬Êѹ¹ÂÐ¾Ý¤Î¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶ ID ¤«¼Â¸ú¥æ¡¼¥¶ ID ¤È -°ìÃפ·¤Æ¤¤¤ë¾ì¹ç¤Ë¸Â¤é¤ì¤ë¡£ +ある非特権プロセスが別のプロセスに対してこれらの変更を行う際にも、 +同じルールが適用される。変更を行えるのは、変更を行おうとするプロセス +の実効ユーザ ID が変更対象のプロセスの実ユーザ ID か実効ユーザ ID と +一致している場合に限られる。 .IP * .\"O Special rules apply for the .\"O .BR SCHED_IDLE : @@ -519,10 +519,10 @@ Linux 2.6.12 .\"O .BR RLIMIT_RTPRIO .\"O resource limit. .B SCHED_IDLE -¤Ë¤ÏÆÃÊ̤ʥ롼¥ë¤¬Å¬ÍѤµ¤ì¡¢ -¤³¤Î¥Ý¥ê¥·¡¼¤Î²¼¤ÇÆ°ºî¤¹¤ëÈóÆø¢¥×¥í¥»¥¹¤Ï¡¢¥ê¥½¡¼¥¹À©¸Â +には特別なルールが適用され、 +このポリシーの下で動作する非特権プロセスは、リソース制限 .B RLIMIT_RTPRIO -¤ÎÃͤˤ«¤«¤ï¤é¤º¼«¿È¤Î¥Ý¥ê¥·¡¼¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +の値にかかわらず自身のポリシーを変更することができない。 .PP .\"O Privileged .\"O .RB ( CAP_SYS_NICE ) @@ -530,23 +530,23 @@ Linux 2.6.12 .\"O .B RLIMIT_RTPRIO .\"O limit; as with older kernels, .\"O they can make arbitrary changes to scheduling policy and priority. -Æø¢¥×¥í¥»¥¹ +特権プロセス .RB ( CAP_SYS_NICE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹) ¤Î¾ì¹ç¡¢ +ケーパビリティを持つプロセス) の場合、 .B RLIMIT_RTPRIO -¤ÎÀ©¸Â¤Ï̵»ë¤µ¤ì¤ë; -¸Å¤¤¥«¡¼¥Í¥ë¤ÈƱ¤¸¤è¤¦¤Ë¡¢¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤ÈÍ¥ÀèÅÙ¤ËÂФ· -Ǥ°Õ¤ÎÊѹ¹¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +の制限は無視される; +古いカーネルと同じように、スケジューリング・ポリシーと優先度に対し +任意の変更を行うことができる。 .\"O See .\"O .BR getrlimit (2) .\"O for further information on .\"O .BR RLIMIT_RTPRIO . .B RLIMIT_RTPRIO -¤Ë´Ø¤¹¤ë¤â¤Ã¤È¾Ü¤·¤¤¾ðÊó¤Ï +に関するもっと詳しい情報は .BR getrlimit (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SS Response time -.SS ±þÅú»þ´Ö (response time) +.SS 応答時間 (response time) .\"O A blocked high priority process waiting for the I/O has a certain .\"O response time before it is scheduled again. .\"O The device driver writer @@ -554,34 +554,34 @@ Linux 2.6.12 .\"O interrupt handler. .\"O .\" as described in .\"O .\" .BR request_irq (9). -I/O ÂÔ¤Á¤ÇÄä»ß¤·¤¿¤è¤ê¹â¤¤Í¥ÀèÅÙ¤Î¥×¥í¥»¥¹¤ÏºÆ¤Ó¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤ë -Á°¤Ë¤¤¤¯¤é¤«¤Î±þÅú»þ´Ö¤¬¤«¤«¤ë¡£¥Ç¥Ð¥¤¥¹¡¦¥É¥é¥¤¥Ð¡¼¤ò½ñ¤¯¾ì¹ç¤Ë¤Ï +I/O 待ちで停止したより高い優先度のプロセスは再びスケジューリングされる +前にいくらかの応答時間がかかる。デバイス・ドライバーを書く場合には .\" .BR request_irq (9) -.\" ¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë -"slow interrupt" ³ä¤ê¹þ¤ß¥Ï¥ó¥É¥é¡¼¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç -¤³¤Î±þÅú»þ´Ö¤ò·àŪ¤Ë¸º¾¯¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +.\" に記述されている +"slow interrupt" 割り込みハンドラーを使用することで +この応答時間を劇的に減少させることができる。 .\"O .SS Miscellaneous -.SS ¤½¤Î¾ +.SS その他 .\"O Child processes inherit the scheduling policy and parameters across a .\"O .BR fork (2). .\"O The scheduling policy and parameters are preserved across .\"O .BR execve (2). -»Ò¥×¥í¥»¥¹¤Ï +子プロセスは .BR fork (2) -¤ÎºÝ¤Ë¿Æ¥×¥í¥»¥¹¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤È¥Ñ¥é¥á¡¼¥¿¤ò·Ñ¾µ¤¹¤ë¡£ +の際に親プロセスのスケジューリング・ポリシーとパラメータを継承する。 .BR execve (2) -¤ÎÁ°¸å¤Ç¡¢¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤È¥Ñ¥é¥á¡¼¥¿¤ÏÊÝ»ý¤µ¤ì¤ë¡£ +の前後で、スケジューリング・ポリシーとパラメータは保持される。 .\"O Memory locking is usually needed for real-time processes to avoid .\"O paging delays; this can be done with .\"O .BR mlock (2) .\"O or .\"O .BR mlockall (2). -¥ê¥¢¥ë¥¿¥¤¥à¡¦¥×¥í¥»¥¹¤ÏÂçÄñ¡¢¥Ú¡¼¥¸¥ó¥°¤ÎÂÔ¤Á»þ´Ö¤òÈò¤±¤ë¤¿¤á¤Ë +リアルタイム・プロセスは大抵、ページングの待ち時間を避けるために .BR mlock (2) -¤ä +や .BR mlockall (2) -¤ò»È¤Ã¤Æ¥á¥â¥ê¡¦¥í¥Ã¥¯¤ò¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を使ってメモリ・ロックをしなければならない。 .\"O Since a nonblocking infinite loop in a process scheduled under .\"O \fBSCHED_FIFO\fP or \fBSCHED_RR\fP will block all processes with lower @@ -590,21 +590,21 @@ I/O .\"O tested application. .\"O This will allow an emergency kill of tested .\"O real-time applications that do not block or terminate as expected. -\fBSCHED_FIFO\fP ¤ä \fBSCHED_RR\fP ¤Ç¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤ë -¥×¥í¥»¥¹¤¬Ää»ß¤»¤º¤Ë̵¸Â¥ë¡¼¥×¤Ë´Ù¤ë¤È¡¢ -¾¤ÎÁ´¤Æ¤Î¤è¤êÄ㤤ͥÀèÅÙ¤Î¥×¥í¥»¥¹¤ò±Êµ×¤ËÄä»ß (block) ¤µ¤»¤Æ¤·¤Þ¤¦¤Î¤Ç¡¢ -¥½¥Õ¥È¥¦¥§¥¢³«È¯¼Ô¤Ï¥³¥ó¥½¡¼¥ë¤Î¥·¥§¥ë¤ÎÀÅŪͥÀèÅÙ¤ò¥Æ¥¹¥È¤¹¤ë -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤è¤ê¤â¾ï¤Ë¹â¤¯ÊݤĤ٤­¤Ç¤¢¤ë¡£ -¤³¤ì¤Ë¤è¤Ã¤Æ´üÂÔÄ̤ê¤ËÄä»ß¤·¤¿¤ê½ªÎ»¤·¤¿¤ê¤·¤Ê¤¤¥ê¥¢¥ë¥¿¥¤¥à¡¦ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¶ÛµÞ½ªÎ»¤µ¤»¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¡£ +\fBSCHED_FIFO\fP や \fBSCHED_RR\fP でスケジューリングされる +プロセスが停止せずに無限ループに陥ると、 +他の全てのより低い優先度のプロセスを永久に停止 (block) させてしまうので、 +ソフトウェア開発者はコンソールのシェルの静的優先度をテストする +アプリケーションよりも常に高く保つべきである。 +これによって期待通りに停止したり終了したりしないリアルタイム・ +アプリケーションを緊急終了させることが可能になる。 .\"O See also the description of the .\"O .BR RLIMIT_RTTIME .\"O resource limit in .\"O .BR getrlimit (2). .BR getrlimit (2) -¤Î¥ê¥½¡¼¥¹À©¸Â +のリソース制限 .B RLIMIT_RTTIME -¤ÎÀâÌÀ¤â»²¾È¤Î¤³¤È¡£ +の説明も参照のこと。 .\"O POSIX systems on which .\"O .BR sched_setscheduler () @@ -613,15 +613,15 @@ I/O .\"O are available define .\"O .B _POSIX_PRIORITY_SCHEDULING .\"O in \fI\fP. -POSIX ¥·¥¹¥Æ¥à¤Ç¤Ï \fI\fP ¤Ë +POSIX システムでは \fI\fP に .B _POSIX_PRIORITY_SCHEDULING -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Î¤ß +が定義されている場合にのみ .BR sched_setscheduler () -¤È +と .BR sched_getscheduler () -¤¬»ÈÍѤǤ­¤ë¡£ +が使用できる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR sched_setscheduler () .\"O returns zero. @@ -631,39 +631,39 @@ POSIX .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR sched_setscheduler () -¤Ï 0 ¤òÊÖ¤¹¡£ -À®¸ù¤·¤¿¾ì¹ç¡¢ +は 0 を返す。 +成功した場合、 .BR sched_getscheduler () -¤Ï¸½ºß¤Î¤½¤Î¥×¥í¥»¥¹¤Î¥Ý¥ê¥·¡¼ (ÈóÉé¤ÎÀ°¿ô) ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +は現在のそのプロセスのポリシー (非負の整数) を返す。 +エラーの場合、\-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O The scheduling \fIpolicy\fP is not one of the recognized policies, .\"O or \fIparam\fP does not make sense for the \fIpolicy\fP. -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼ \fIpolicy\fP ¤¬´Ö°ã¤Ã¤Æ¤¤¤ë¤«¡¢ -\fIparam\fP ¤¬¤½¤Î¥Ý¥ê¥·¡¼¤Ç¤Ï°ÕÌ£¤ò¤Ê¤µ¤Ê¤¤¡£ +スケジューリング・ポリシー \fIpolicy\fP が間違っているか、 +\fIparam\fP がそのポリシーでは意味をなさない。 .TP .B EPERM .\"O The calling process does not have appropriate privileges. -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬Å¬ÀÚ¤ÊÆø¢¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +呼び出したプロセスが適切な特権を持っていない。 .TP .B ESRCH .\"O The process whose ID is \fIpid\fP could not be found. -ID¤¬ \fIpid\fP ¤Î¥×¥í¥»¥¹¤¬¸«¤Ä¤«¤é¤Ê¤¤¡£ +IDが \fIpid\fP のプロセスが見つからない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O POSIX.1-2001 (but see BUGS below). .\"O The \fBSCHED_BATCH\fP and \fBSCHED_IDLE\fP policies are Linux-specific. -POSIX.1-2001 (⤷¡¢²¼µ­¤Î¥Ð¥°¤ÎÀá¤â»²¾È)¡£ -\fBSCHED_BATCH\fP ¤È \fBSCHED_IDLE\fP ¥Ý¥ê¥·¡¼¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ +POSIX.1-2001 (但し、下記のバグの節も参照)。 +\fBSCHED_BATCH\fP と \fBSCHED_IDLE\fP ポリシーは Linux 固有である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O POSIX.1 does not detail the permissions that an unprivileged .\"O process requires in order to call .\"O .BR sched_setscheduler (), @@ -671,38 +671,38 @@ POSIX.1-2001 (â .\"O For example, the Solaris 7 manual page says that .\"O the real or effective user ID of the calling process must .\"O match the real user ID or the save set-user-ID of the target process. -POSIX.1 ¤Ï¡¢ÈóÆø¢¥×¥í¥»¥¹¤¬ +POSIX.1 は、非特権プロセスが .BR sched_setscheduler () -¤ò¸Æ¤Ó½Ð¤¹¤¿¤á¤ËɬÍפʸ¢¸Â¤Î¾ÜºÙ¤òµ¬Äꤷ¤Æ¤ª¤é¤º¡¢ -¾ÜºÙ¤Ï¥·¥¹¥Æ¥à¤Ë¤è¤ê°Û¤Ê¤ë¡£ -Î㤨¤Ð¡¢Solaris 7 ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Ï¡¢ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶ ID ¤Þ¤¿¤Ï¼Â¸ú¥æ¡¼¥¶ ID ¤¬ -ÀßÄêÂÐ¾Ý¤Î¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶ ID ¤«Êݸ (save) set-user-ID ¤È -°ìÃפ·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡¢¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ +を呼び出すために必要な権限の詳細を規定しておらず、 +詳細はシステムにより異なる。 +例えば、Solaris 7 のマニュアルページでは、 +呼び出し元プロセスの実ユーザ ID または実効ユーザ ID が +設定対象のプロセスの実ユーザ ID か保存 (save) set-user-ID と +一致していなければならない、となっている。 .PP .\"O Originally, Standard Linux was intended as a general-purpose operating .\"O system being able to handle background processes, interactive .\"O applications, and less demanding real-time applications (applications that .\"O need to usually meet timing deadlines). -¤â¤È¤â¤È¤Ï¡¢É¸½à¤Î Linux ¤Ï°ìÈÌÌÜŪ¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤È¤·¤Æ -À߷פµ¤ì¤Æ¤ª¤ê¡¢¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¡¦¥×¥í¥»¥¹¤äÂÐÏÃŪ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¡¢ -¥ê¥¢¥ë¥¿¥¤¥àÀ­¤ÎÍ׵᤬¸·¤·¤¯¤Ê¤¤¥ê¥¢¥ë¥¿¥¤¥à¡¦¥¢¥×¥ê¥±¡¼¥·¥ç¥ó -(ÉáÄ̤ϥ¿¥¤¥ß¥ó¥°¤Î±þÅú´ü¸Â (deadline) ¤òËþ¤¿¤¹É¬Íפ¬¤¢¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó) -¤ò°·¤¦¤³¤È¤¬¤Ç¤­¤¿¡£ +もともとは、標準の Linux は一般目的のオペレーティングシステムとして +設計されており、バックグラウンド・プロセスや対話的アプリケーション、 +リアルタイム性の要求が厳しくないリアルタイム・アプリケーション +(普通はタイミングの応答期限 (deadline) を満たす必要があるアプリケーション) +を扱うことができた。 .\"O Although the Linux kernel 2.6 .\"O allowed for kernel preemption and the newly introduced O(1) scheduler .\"O ensures that the time needed to schedule is fixed and deterministic .\"O irrespective of the number of active tasks, true real-time computing .\"O was not possible up to kernel version 2.6.17. -Linux ¥«¡¼¥Í¥ë 2.6 ¤Ç¤Ï¡¢ -¥«¡¼¥Í¥ë¤Î¥×¥ê¥¨¥ó¥×¥·¥ç¥ó (¥¿¥¹¥¯¤ÎÃÖ¤­´¹¤¨) ¤¬²Äǽ¤Ç¤¢¤ê¡¢ -¿·¤¿¤ËƳÆþ¤µ¤ì¤¿ O(1) ¥¹¥±¥¸¥å¡¼¥é¤Ë¤è¤ê¡¢ -¥¢¥¯¥Æ¥£¥Ö¤Ê¥¿¥¹¥¯¤Î¿ô¤Ë´Ø¤ï¤é¤º¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ËɬÍפʻþ´Ö¤Ï -¸ÇÄê¤Ç³ÎÄêŪ (deterministic) ¤Ç¤¢¤ë¤³¤È¤¬Êݾڤµ¤ì¤Æ¤¤¤ë¡£ -¤½¤ì¤Ë¤â´Ø¤ï¤é¤º¡¢¥«¡¼¥Í¥ë 2.6.17 ¤Þ¤Ç¤Ï -¿¿¤Î¥ê¥¢¥ë¥¿¥¤¥à¡¦¥³¥ó¥Ô¥å¡¼¥Æ¥£¥ó¥°¤Ï¼Â¸½¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +Linux カーネル 2.6 では、 +カーネルのプリエンプション (タスクの置き換え) が可能であり、 +新たに導入された O(1) スケジューラにより、 +アクティブなタスクの数に関わらずスケジューリングに必要な時間は +固定で確定的 (deterministic) であることが保証されている。 +それにも関わらず、カーネル 2.6.17 までは +真のリアルタイム・コンピューティングは実現できなかった。 .\"O .SS Real-time features in the mainline Linux kernel -.SS ËÜή¤Î Linux ¥«¡¼¥Í¥ë¤Ç¤Î¥ê¥¢¥ë¥¿¥¤¥àµ¡Ç½ +.SS 本流の Linux カーネルでのリアルタイム機能 .\" FIXME . Probably this text will need some minor tweaking .\" by about the time of 2.6.30; ask Carsten Emde about this then. .\"O From kernel version 2.6.18 onwards, however, Linux is gradually @@ -715,19 +715,19 @@ Linux .\"O mainline kernel .\"O (this is expected to be around kernel version 2.6.30), .\"O they must be installed to achieve the best real-time performance. -¥«¡¼¥Í¥ë 2.6.18 ¤«¤é¸½ºß¤Þ¤Ç¡¢ -Linux ¤Ï½ù¡¹¤Ë¥ê¥¢¥ë¥¿¥¤¥àµ¡Ç½¤òÈ÷¤¨¤Ä¤Ä¤¢¤ë¤¬¡¢ -¤³¤ì¤é¤Îµ¡Ç½¤Î¤Û¤È¤ó¤É¤Ï¡¢ -Ingo Molnar, Thomas Gleixner, Steven Rostedt ¤é¤Ë¤è¤Ã¤Æ³«È¯¤µ¤ì¤¿¡¢ -°ÊÁ°¤Î +カーネル 2.6.18 から現在まで、 +Linux は徐々にリアルタイム機能を備えつつあるが、 +これらの機能のほとんどは、 +Ingo Molnar, Thomas Gleixner, Steven Rostedt らによって開発された、 +以前の .I realtime-preempt -¥Ñ¥Ã¥Á¤«¤é¤Î¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î¥Ñ¥Ã¥Á¤¬ËÜή¤Î¥«¡¼¥Í¥ë¤Ë´°Á´¤Ë¥Þ¡¼¥¸¤µ¤ì¤ë¤Þ¤Ç¤Ï -(¥Þ¡¼¥¸¤Î´°Î»¤Ï¥«¡¼¥Í¥ë 2.6.30 ¤¢¤¿¤ê¤ÎͽÄê)¡¢ -ºÇ¹â¤Î¥ê¥¢¥ë¥¿¥¤¥àÀ­Ç½¤òãÀ®¤¹¤ë¤Ë¤Ï realtime-preempt ¥Ñ¥Ã¥Á¤ò -ÁȤ߹þ¤Þ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +パッチからのものである。 +これらのパッチが本流のカーネルに完全にマージされるまでは +(マージの完了はカーネル 2.6.30 あたりの予定)、 +最高のリアルタイム性能を達成するには realtime-preempt パッチを +組み込まなければならない。 .\"O These patches are named: -¤³¤ì¤é¤Î¥Ñ¥Ã¥Á¤Ï +これらのパッチは .in +4n .nf @@ -737,9 +737,9 @@ patch-\fIkernelversion\fP-rt\fIpatchversion\fP .\"O .PP .\"O and can be downloaded from .\"O .IR http://www.kernel.org/pub/linux/kernel/projects/rt/ . -¤È¤¤¤¦Ì¾Á°¤Ç¡¢ +という名前で、 .I http://www.kernel.org/pub/linux/kernel/projects/rt/ -¤«¤é¥À¥¦¥ó¥í¡¼¥É¤Ç¤­¤ë¡£ +からダウンロードできる。 .\"O Without the patches and prior to their full inclusion into the mainline .\"O kernel, the kernel configuration offers only the three preemption classes @@ -749,14 +749,14 @@ patch-\fIkernelversion\fP-rt\fIpatchversion\fP .\"O .B CONFIG_PREEMPT_DESKTOP .\"O which respectively provide no, some, and considerable .\"O reduction of the worst-case scheduling latency. -¤³¤Î¥Ñ¥Ã¥Á¤¬Å¬ÍѤµ¤ì¤º¡¢¤«¤Ä¥Ñ¥Ã¥Á¤ÎÆâÍƤÎËÜή¤Î¥«¡¼¥Í¥ë¤Ø¤Î¥Þ¡¼¥¸¤¬ -´°Î»¤¹¤ë¤Þ¤Ç¤Ï¡¢¥«¡¼¥Í¥ë¤ÎÀßÄê¤Ç¤Ï +このパッチが適用されず、かつパッチの内容の本流のカーネルへのマージが +完了するまでは、カーネルの設定では .BR CONFIG_PREEMPT_NONE , .BR CONFIG_PREEMPT_VOLUNTARY , .B CONFIG_PREEMPT_DESKTOP -¤Î 3¤Ä¤Î¥×¥ê¥¨¥ó¥×¥·¥ç¥ó¡¦¥¯¥é¥¹ (preemption class) ¤À¤±¤¬Ä󶡤µ¤ì¤ë¡£ -¤³¤ì¤é¤Î¥¯¥é¥¹¤Ç¤Ï¡¢ºÇ°­¤Î¾ì¹ç¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Ãٱ䤬¤½¤ì¤¾¤ì -Á´¤¯¸º¤é¤Ê¤¤¡¢¤¤¤¯¤é¤«¸º¤ë¡¢¤«¤Ê¤ê¸º¤ë¡£ +の 3つのプリエンプション・クラス (preemption class) だけが提供される。 +これらのクラスでは、最悪の場合のスケジューリング遅延がそれぞれ +全く減らない、いくらか減る、かなり減る。 .\"O With the patches applied or after their full inclusion into the mainline .\"O kernel, the additional configuration item @@ -764,22 +764,22 @@ patch-\fIkernelversion\fP-rt\fIpatchversion\fP .\"O becomes available. .\"O If this is selected, Linux is transformed into a regular .\"O real-time operating system. -¥Ñ¥Ã¥Á¤¬Å¬ÍѤµ¤ì¤¿¾ì¹ç¡¢¤Þ¤¿¤Ï¥Ñ¥Ã¥Á¤ÎÆâÍƤÎËÜή¤Î¥«¡¼¥Í¥ë¤Ø¤Î¥Þ¡¼¥¸¤¬ -´°Î»¤·¤¿¸å¤Ç¤Ï¡¢¾åµ­¤Ë²Ã¤¨¤ÆÀßÄê¹àÌܤȤ·¤Æ +パッチが適用された場合、またはパッチの内容の本流のカーネルへのマージが +完了した後では、上記に加えて設定項目として .B CONFIG_PREEMPT_RT -¤¬ÍøÍѲÄǽ¤Ë¤Ê¤ë¡£¤³¤Î¹àÌܤòÁªÂò¤¹¤ë¤È¡¢ -Linux ¤ÏÄ̾ï¤Î¥ê¥¢¥ë¥¿¥¤¥à¡¦¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤ËÊѿȤ¹¤ë¡£ +が利用可能になる。この項目を選択すると、 +Linux は通常のリアルタイム・オペレーティングシステムに変身する。 .\"O The FIFO and RR scheduling policies that can be selected using .\"O .BR sched_setscheduler () .\"O are then used to run a process .\"O with true real-time priority and a minimum worst-case scheduling latency. -¤³¤Î¾ì¹ç¤Ë¤Ï¡¢ +この場合には、 .BR sched_setscheduler () -¤ÇÁªÂò¤Ç¤­¤ë FIFO ¤È RR ¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤Ï¡¢ -¿¿¤Î¥ê¥¢¥ë¥¿¥¤¥àÍ¥ÀèÅÙ¤ò»ý¤Ä¥×¥í¥»¥¹¤òºÇ°­¤Î¾ì¹ç¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Ãٱ䤬 -ºÇ¾®¤È¤Ê¤ë´Ä¶­¤ÇÆ°ºî¤µ¤»¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ +で選択できる FIFO と RR のスケジューリング・ポリシーは、 +真のリアルタイム優先度を持つプロセスを最悪の場合のスケジューリング遅延が +最小となる環境で動作させるために使われることになる。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O POSIX says that on success, .\"O .BR sched_setscheduler () .\"O should return the previous scheduling policy. @@ -787,15 +787,15 @@ Linux .\"O .BR sched_setscheduler () .\"O does not conform to this requirement, .\"O since it always returns 0 on success. -POSIX ¤Ç¤Ï¡¢À®¸ù»þ¤Ë +POSIX では、成功時に .BR sched_setscheduler () -¤ÏľÁ°¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤òÊÖ¤¹¤Ù¤­¤È¤µ¤ì¤Æ¤¤¤ë¡£ -Linux ¤Î +は直前のスケジューリング・ポリシーを返すべきとされている。 +Linux の .BR sched_setscheduler () -¤Ï¤³¤ÎÍ×µá»ÅÍͤ˽àµò¤·¤Æ¤ª¤é¤º¡¢ -À®¸ù»þ¤Ë¤Ï¾ï¤Ë 0 ¤òÊÖ¤¹¡£ +はこの要求仕様に準拠しておらず、 +成功時には常に 0 を返す。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getpriority (2), .BR mlock (2), .BR mlockall (2), @@ -820,6 +820,6 @@ by Bill O. Gallmeister, O'Reilly & Associates, Inc., ISBN 1-56592-074-0 .\"O The kernel source file .\"O .I Documentation/scheduler/sched-rt-group.txt .\"O (since kernel 2.6.25). -¥«¡¼¥Í¥ë¡¦¥½¡¼¥¹Æâ¤Î¥Õ¥¡¥¤¥ë +カーネル・ソース内のファイル .I Documentation/scheduler/sched-rt-group.txt -(¥«¡¼¥Í¥ë 2.6.25 °Ê¹ß) +(カーネル 2.6.25 以降) diff --git a/draft/man2/sched_yield.2 b/draft/man2/sched_yield.2 index 56c4a49f..249032ec 100644 --- a/draft/man2/sched_yield.2 +++ b/draft/man2/sched_yield.2 @@ -33,80 +33,80 @@ .\" by HANATAKA Shinya .\" Updated 2008-11-10, Akihiro MOTOKI , LDP v3.13 .\" -.\"WORD: yield ¶õ¤±ÅϤ¹ -.\"WORD: block ÃæÃÇ(block) -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: processor ¥×¥í¥»¥Ã¥µ¡¼ -.\"WORD: queue ¥­¥å¡¼ -.\"WORD: static ÀÅŪ -.\"WORD: priority ¥×¥é¥¤¥ª¥ê¥Æ¥£ -.\"WORD: scheduling ¥¹¥±¥¸¥å¡¼¥ê¥ó¥° +.\"WORD: yield 空け渡す +.\"WORD: block 中断(block) +.\"WORD: process プロセス +.\"WORD: processor プロセッサー +.\"WORD: queue キュー +.\"WORD: static 静的 +.\"WORD: priority プライオリティ +.\"WORD: scheduling スケジューリング .\" .TH SCHED_YIELD 2 2008-10-18 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sched_yield \- yield the processor -sched_yield \- ¥×¥í¥»¥Ã¥µ¡¼¤ò¶õ¤±ÅϤ¹(yield) +sched_yield \- プロセッサーを空け渡す(yield) .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .B int sched_yield(void); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR sched_yield () .\"O causes the calling thread to relinquish the CPU. .BR sched_yield () -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¡¢¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤¬ CPU ¤Î»ÈÍѸ¢¤ò¼êÊü¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +を呼び出すことで、呼び出したスレッドが CPU の使用権を手放すことができる。 .\"O The thread is moved to the end of the queue for its static .\"O priority and a new thread gets to run. -¤½¤Î¥¹¥ì¥Ã¥É¤Ï¡¢¤½¤Î¥¹¥ì¥Ã¥É¤ÎÀÅŪ¥×¥é¥¤¥ª¥ê¥Æ¥£¤Î¥­¥å¡¼¤ÎËöÈø¤Ë -°ÜÆ°¤·¡¢¿·¤·¤¤¥¹¥ì¥Ã¥É¤¬Áö¤ê»Ï¤á¤ë¡£ +そのスレッドは、そのスレッドの静的プライオリティのキューの末尾に +移動し、新しいスレッドが走り始める。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR sched_yield () .\"O returns 0. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï +成功した場合は .BR sched_yield () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +は 0 を返す。 +エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O In the Linux implementation, .\"O .BR sched_yield () .\"O always succeeds. -Linux ¤Î¼ÂÁõ¤Ç¤Ï¡¢ +Linux の実装では、 .BR sched_yield () -¤Ï¾ï¤ËÀ®¸ù¤¹¤ë¡£ +は常に成功する。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O If the calling thread is the only thread in the highest .\"O priority list at that time, .\"O it will continue to run after a call to .\"O .BR sched_yield (). .BR sched_yield () -¤ò¸Æ¤Ó½Ð¤·¤¿»þÅÀ¤ÇºÇÂçÍ¥ÀèÅ٤Υꥹ¥È¤ÎÃæ¤Ë¸Æ¤Ó½Ð¤·¸µ¤Î¥¹¥ì¥Ã¥É¤·¤« -¸ºß¤·¤Ê¤±¤ì¤Ð¡¢¤½¤Î¥¹¥ì¥Ã¥É¤Ï¸Æ¤Ó½Ð¤·¸å¤âÁö¤ê³¤±¤ë¤³¤È¤Ë¤Ê¤ë¡£ +を呼び出した時点で最大優先度のリストの中に呼び出し元のスレッドしか +存在しなければ、そのスレッドは呼び出し後も走り続けることになる。 .\"O POSIX systems on which .\"O .BR sched_yield () .\"O is available define .\"O .B _POSIX_PRIORITY_SCHEDULING .\"O in \fI\fP. -POSIX ¥·¥¹¥Æ¥à¤Ç +POSIX システムで .BR sched_yield () -¤Ï \fI\fP ¤Ë +は \fI\fP に .B _POSIX_PRIORITY_SCHEDULING -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Î¤ß»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ +が定義されている場合にのみ使用可能である。 .\"O Strategic calls to .\"O .BR sched_yield () @@ -121,23 +121,23 @@ POSIX .\"O since doing so will result in unnecessary context switches, .\"O which will degrade system performance. .BR sched_yield () -¤òÀïάŪ¤Ë¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¡¢(¶ËÅÙ¤Ë) ¶¥¹ç¤¹¤ë¥ê¥½¡¼¥¹ (mutex ¤Ê¤É) -¤ò¸Æ¤Ó½Ð¤·¸µ¤¬²òÊü¤·¤¿ºÝ¤Ë¾¤Î¥¹¥ì¥Ã¥É¤ä¥×¥í¥»¥¹¤Ë¼Â¹Ôµ¡²ñ¤òÍ¿¤¨¤ë¤³¤È¤Ç¡¢ -À­Ç½¤ò¾å¤²¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を戦略的に呼び出すことで、(極度に) 競合するリソース (mutex など) +を呼び出し元が解放した際に他のスレッドやプロセスに実行機会を与えることで、 +性能を上げることができる。 .BR sched_yield () -¤òɬÍפâ¤Ê¤¤¤Î¤Ë¸Æ¤Ó½Ð¤·¤¿¤ê¡¢ÉÔŬÀڤʾìÌÌ (Î㤨¤Ð¡¢Â¾¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥° -ÂоݤȤʤ륹¥ì¥Ã¥É¤¬É¬ÍפȤ¹¤ë¥ê¥½¡¼¥¹¤ò¸Æ¤Ó½Ð¤·¸µ¤¬ÊÝ»ý¤·¤¿¤Þ¤Þ¤Î¾õÂÖ) -¤Ç¸Æ¤Ó½Ð¤·¤¿¤ê¤¹¤ë¤Î¤ÏÈò¤±¤ë¤³¤È¡£¤Ê¤¼¤Ê¤é¡¢ +を必要もないのに呼び出したり、不適切な場面 (例えば、他のスケジューリング +対象となるスレッドが必要とするリソースを呼び出し元が保持したままの状態) +で呼び出したりするのは避けること。なぜなら、 .BR sched_yield () -¤Î¸Æ¤Ó½Ð¤·¤è¤êÉÔɬÍפʥ³¥ó¥Æ¥­¥¹¥È¥¹¥¤¥Ã¥Á¤¬µ¯¤³¤ê¡¢¥·¥¹¥Æ¥àÀ­Ç½¤¬ -Îô²½¤¹¤ë·ë²Ì¤Ë¤Ê¤ë¤«¤é¤Ç¤¢¤ë¡£ +の呼び出しより不必要なコンテキストスイッチが起こり、システム性能が +劣化する結果になるからである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .\"O .BR sched_setscheduler (2) .\"O for a description of Linux scheduling. -Linux ¤Î¥¹¥±¡¼¥¸¥å¥ê¥ó¥°(scheduling)¤Ë¤Ä¤¤¤Æ¤Ï +Linux のスケージュリング(scheduling)については .BR sched_setscheduler (2) -¤ò»²¾È¤»¤è¡£ +を参照せよ。 .PP .I Programming for the real world \- POSIX.4 by Bill O. Gallmeister, O'Reilly & Associates, Inc., ISBN 1-56592-074-0 diff --git a/draft/man2/select.2 b/draft/man2/select.2 index 6dff4c6a..39e30508 100644 --- a/draft/man2/select.2 +++ b/draft/man2/select.2 @@ -49,33 +49,33 @@ .\" Updated 2007-09-08, Akihiro MOTOKI, LDP v2.64 .\" Updated 2008-08-06, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: synchronous Ʊ´ü¤µ¤»¤ë -.\"WORD: multiplexing ¿½Å²½ -.\"WORD: file descriptor ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: descriptor µ­½Ò»Ò -.\"WORD: macro ¥Þ¥¯¥í -.\"WORD: block Ää»ß(block) -.\"WORD: block ¶Ø»ß(block) -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: timeout »þ´ÖÀÚ¤ì(timeout) -.\"WORD: portable °Ü¿¢À­¤Î¤¢¤ë +.\"WORD: synchronous 同期させる +.\"WORD: multiplexing 多重化 +.\"WORD: file descriptor ファイルディスクリプタ +.\"WORD: descriptor 記述子 +.\"WORD: macro マクロ +.\"WORD: block 停止(block) +.\"WORD: block 禁止(block) +.\"WORD: signal シグナル +.\"WORD: timeout 時間切れ(timeout) +.\"WORD: portable 移植性のある .\" .TH SELECT 2 2010-08-31 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO \- .\"O synchronous I/O multiplexing -select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO \- ¿½Å²½¤µ¤ì¤¿ I/O ¤ÎƱ´ü¤ò¤È¤ë +select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO \- 多重化された I/O の同期をとる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O /* According to POSIX.1-2001 */ -/* POSIX.1-2001 ¤Ë½¾¤¦¾ì¹ç */ +/* POSIX.1-2001 に従う場合 */ .br .B #include .sp .\"O /* According to earlier standards */ -/* °ÊÁ°¤Îµ¬³Ê¤Ë½¾¤¦¾ì¹ç */ +/* 以前の規格に従う場合 */ .br .B #include .br @@ -104,15 +104,15 @@ select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO \- ¿ .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR pselect (): _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR select () .\"O and .\"O .BR pselect () @@ -124,16 +124,16 @@ _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O .BR read (2)) .\"O without blocking. .BR select () -¤ä +や .BR pselect () -¤ò»È¤¦¤È¡¢¥×¥í¥°¥é¥à¤ÇÊ£¿ô¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò´Æ»ë¤·¡¢ -°ì¤Ä°Ê¾å¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¤¢¤ë¼ï¤Î I/O Áàºî¤Î -¡Öready (½àÈ÷¤¬¤Ç¤­¤¿)¡×¾õÂÖ (Î㤨¤Ð¡¢Æɤ߹þ¤ß²Äǽ¤Ë¤Ê¤Ã¤¿¾õÂÖ) -¤Ë¤Ê¤ë¤Þ¤ÇÂԤĤ³¤È¤¬¤Ç¤­¤ë¡£ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ ready (½àÈ÷¤¬¤Ç¤­¤¿) ¤È¤Ï¡¢ -Âбþ¤¹¤ë I/O Áàºî (Î㤨¤Ð +を使うと、プログラムで複数のファイルディスクリプタを監視し、 +一つ以上のファイルディスクリプタがある種の I/O 操作の +「ready (準備ができた)」状態 (例えば、読み込み可能になった状態) +になるまで待つことができる。 +ファイルディスクリプタが ready (準備ができた) とは、 +対応する I/O 操作 (例えば .BR read (2) -¤Ê¤É) ¤¬Ää»ß (block) ¤Ê¤·¤Ë¼Â¹Ô²Äǽ¤Ê¾õÂ֤ˤ¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +など) が停止 (block) なしに実行可能な状態にあることを意味する。 .PP .\"O The operation of .\"O .BR select () @@ -141,9 +141,9 @@ _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O .BR pselect () .\"O is identical, with three differences: .BR select () -¤È +と .BR pselect () -¤ÎÆ°ºî¤ÏƱ¤¸¤Ç¤¢¤ë¤¬¡¢°Ê²¼¤Î 3 ÅÀ¤¬°Û¤Ê¤ë: +の動作は同じであるが、以下の 3 点が異なる: .TP (i) .\"O .BR select () @@ -155,14 +155,14 @@ _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O .I struct timespec .\"O (with seconds and nanoseconds). .BR select () -¤Ç¤Ï¡¢¥¿¥¤¥à¥¢¥¦¥È»þ´Ö¤Î»ØÄê¤Ë¹½Â¤ÂÎ +では、タイムアウト時間の指定に構造体 .I struct timeval -(Éᦥޥ¤¥¯¥íÉÃñ°Ì) ¤òÍѤ¤¤ë¡£ -°ìÊý¡¢ +(秒・マイクロ秒単位) を用いる。 +一方、 .BR pselect () -´Ø¿ô¤Ç¤Ï¡¢¹½Â¤ÂÎ +関数では、構造体 .I struct timespec -(ÉᦥʥÎÉÃñ°Ì) ¤òÍѤ¤¤ë¡£ +(秒・ナノ秒単位) を用いる。 .TP (ii) .\"O .BR select () @@ -172,11 +172,11 @@ _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O .BR pselect () .\"O does not change this argument. .BR select () -¤Ï»Ä¤ê»þ´Ö¤ò¼¨¤¹ +は残り時間を示す .I timeout -°ú¤­¿ô¤ò¹¹¿·¤¹¤ë¤³¤È¤¬¤¢¤ë¡£ +引き数を更新することがある。 .BR pselect () -¤Ï¤³¤Î°ú¤­¿ô¤òÊѹ¹¤·¤Ê¤¤¡£ +はこの引き数を変更しない。 .TP (iii) .\"O The @@ -188,13 +188,13 @@ _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O called with NULL .\"O .IR sigmask . .BR select () -¤Ï +は .I sigmask -°ú¤­¿ô¤ò»ý¤¿¤Ê¤¤¡£¤½¤ÎÆ°ºî¤Ï +引き数を持たない。その動作は .I sigmask -¤Ë NULL ¤ò»ØÄꤷ¤¿¾ì¹ç¤Î +に NULL を指定した場合の .BR pselect () -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .PP .\"O Three independent sets of file descriptors are watched. .\"O Those listed in @@ -213,51 +213,51 @@ _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O Each of the three file descriptor sets may be specified as NULL .\"O if no file descriptors are to be watched for the corresponding class .\"O of events. -3 ¤Ä¤ÎÆÈΩ¤·¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤Î´Æ»ë¤ò¹Ô¤¦¡£ +3 つの独立したファイルディスクリプタ集合の監視を行う。 .I readfds -¤ËÆþ¤ì¤é¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤Ä¤¤¤Æ¤Ï¡¢Æɤ߹þ¤ß¤¬²Äǽ¤«¤É¤¦¤«¤ò -´Æ»ë¤¹¤ë (¤è¤êÀµ³Î¤Ë¤¤¤¦¤È¡¢Ää»ß (block) ¤Ê¤·¤ÇÆɤळ¤È¤¬¤Ç¤­¤ë¤«¤ò -Ä´¤Ù¤ë¡£¥Õ¥¡¥¤¥ë¤Î½ªÃ¼ (end-of-file) ¤Î¾ì¹ç¤â¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÆɤ߹þ¤ß²Äǽ¤È¤·¤Æ°·¤ï¤ì¤ë)¡£ +に入れられたディスクリプタについては、読み込みが可能かどうかを +監視する (より正確にいうと、停止 (block) なしで読むことができるかを +調べる。ファイルの終端 (end-of-file) の場合も、 +ファイルディスクリプタは読み込み可能として扱われる)。 .I writefds -¤ËÆþ¤ì¤é¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤Ä¤¤¤Æ¤Ï¡¢Ää»ß¤»¤º¤Ë½ñ¤­¹þ¤ß¤¬ -²Äǽ¤«¤É¤¦¤«¤ò´Æ»ë¤¹¤ë¡£ +に入れられたディスクリプタについては、停止せずに書き込みが +可能かどうかを監視する。 .I exceptfds -¤Ë¤¢¤ë¤â¤Î¤Ë¤Ä¤¤¤Æ¤Ï¡¢Îã³°¤Î´Æ»ë¤ò¹Ô¤Ê¤¦¡£¥·¥¹¥Æ¥à¥³¡¼¥ë½ªÎ»»þ¤Ë¡¢ -¤É¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¾õÂÖ¤¬¼ÂºÝ¤ËÊѲ½¤·¤¿¤«¼¨¤¹¤¿¤á¤Ë¡¢ -½¸¹ç¤ÎÆâÍƤ¬Êѹ¹¤µ¤ì¤ë¡£ -¤¢¤ë¼ïÊ̤Υ¤¥Ù¥ó¥È¤ò´Æ»ë¤·¤¿¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬°ì¤Ä¤â¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ -Âбþ¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤Ë NULL ¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +にあるものについては、例外の監視を行なう。システムコール終了時に、 +どのファイルディスクリプタの状態が実際に変化したか示すために、 +集合の内容が変更される。 +ある種別のイベントを監視したいファイルディスクリプタが一つもない場合には、 +対応するファイルディスクリプタ集合に NULL を指定することができる。 .PP .\"O Four macros are provided to manipulate the sets. -½¸¹ç¤òÁàºî¤¹¤ë¤¿¤á¤Ë 4 ¤Ä¤Î¥Þ¥¯¥í¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¡£ +集合を操作するために 4 つのマクロが提供されている。 .\"O .BR FD_ZERO () .\"O clears a set. .BR FD_ZERO () -¤Ï½¸¹ç¤ò¾Ãµî¤¹¤ë¡£ +は集合を消去する。 .\"O .BR FD_SET () .\"O and .\"O .BR FD_CLR () .\"O respectively add and remove a given file descriptor from a set. .BR FD_SET () -¤È +と .BR FD_CLR () -¤Ï¤½¤ì¤¾¤ì»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î½¸¹ç¤Ø¤ÎÄɲᢺï½ü¤ò¹Ô¤¦¡£ +はそれぞれ指定したファイルディスクリプタの集合への追加、削除を行う。 .\"O .BR FD_ISSET () .\"O tests to see if a file descriptor is part of the set; .\"O this is useful after .\"O .BR select () .\"O returns. .BR FD_ISSET () -¤Ï½¸¹ç¤Ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¤¢¤ë¤«¤É¤¦¤«Ä´¤Ù¤ë; -¤³¤Î¥Þ¥¯¥í¤Ï +は集合にファイルディスクリプタがあるかどうか調べる; +このマクロは .BR select () -¤¬½ªÎ»¤·¤¿¸å¤Ë»È¤¦¤ÈÊØÍø¤Ç¤¢¤ë¡£ +が終了した後に使うと便利である。 .PP .\"O .I nfds .\"O is the highest-numbered file descriptor in any of the three sets, plus 1. .I nfds -¤Ï 3 ¤Ä¤Î½¸¹ç¤Ë´Þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎºÇÂçÃÍ¤Ë 1 ¤ò­¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +は 3 つの集合に含まれるファイルディスクリプタの最大値に 1 を足したものである。 .PP .\"O .I timeout .\"O is an upper bound on the amount of time elapsed before @@ -275,19 +275,19 @@ _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O .BR select () .\"O can block indefinitely. .I timeout -¤Ï +は .BR select () -¤¬Éüµ¢¤¹¤ë¤Þ¤Ç¤Î·Ð²á»þ´Ö¤Î¾å¸Â¤Ç¤¢¤ë¡£ +が復帰するまでの経過時間の上限である。 .I timeval -¹½Â¤ÂΤÎξÊý¤Î¥Õ¥£¡¼¥ë¥É¤¬ 0 ¤Î¾ì¹ç¡¢ +構造体の両方のフィールドが 0 の場合、 .BR select () -¤Ï¤¹¤°¤ËÉüµ¢¤¹¤ë -(¤³¤Îµ¡Ç½¤Ï¥Ý¡¼¥ê¥ó¥° (polling) ¤ò¹Ô¤¦¤Î¤ËÊØÍø¤Ç¤¢¤ë)¡£ +はすぐに復帰する +(この機能はポーリング (polling) を行うのに便利である)。 .I timeout -¤Ë NULL (¥¿¥¤¥à¥¢¥¦¥È¤Ê¤·) -¤¬»ØÄꤵ¤ì¤ë¤È¡¢ +に NULL (タイムアウトなし) +が指定されると、 .BR select () -¤Ï̵´ü¸Â¤ËÄä»ß (block) ¤¹¤ë¡£ +は無期限に停止 (block) する。 .PP .\"O .I sigmask .\"O is a pointer to a signal mask (see @@ -299,17 +299,17 @@ _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O then does the "select" function, and then restores the original .\"O signal mask. .I sigmask -¤Ï¡¢¥·¥°¥Ê¥ë¥Þ¥¹¥¯ +は、シグナルマスク .RB ( sigprocmask (2) -¤ò»²¾È) ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +を参照) へのポインタである。 .I sigmask -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が NULL でない場合、 .BR pselect () -¤Ï +は .I sigmask -¤¬»Ø¤·¤Æ¤¤¤ë¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ç¸½ºß¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÃÖ¤­´¹¤¨¤Æ¤«¤é¡¢ -"select" ´Ø¿ô¤ò¼Â¹Ô¤·¡¢ -½ªÎ»¸å¤Ë¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ò¸µ¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ËÌ᤹¡£ +が指しているシグナルマスクで現在のシグナルマスクを置き換えてから、 +"select" 関数を実行し、 +終了後にシグナルマスクを元のシグナルマスクに戻す。 .PP .\"O Other than the difference in the precision of the .\"O .I timeout @@ -317,9 +317,9 @@ _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O .BR pselect () .\"O call: .I timeout -°ú¤­¿ô¤ÎÀºÅ٤ΰ㤤¤ò½ü¤¯¤È¡¢°Ê²¼¤Î +引き数の精度の違いを除くと、以下の .BR pselect () -¤Î¸Æ¤Ó½Ð¤·¤Ï¡¢ +の呼び出しは、 .nf ready = pselect(nfds, &readfds, &writefds, &exceptfds, @@ -329,9 +329,9 @@ _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O is equivalent to .\"O .I atomically .\"O executing the following calls: -¼¡¤Î¥³¡¼¥ë¤ò +次のコールを .I atomic -¤Ë¼Â¹Ô¤¹¤ë¤Î¤ÈÅù²Á¤Ç¤¢¤ë¡£ +に実行するのと等価である。 .nf sigset_t origmask; @@ -353,16 +353,16 @@ _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O could hang indefinitely if the signal arrived just after the test .\"O but just before the call. .BR pselect () -¤¬É¬ÍפˤʤëÍýͳ¤Ï¡¢¥·¥°¥Ê¥ë¤ä¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¾õÂÖÊѲ½¤ò -ÂÔ¤Á¤¿¤¤¤È¤­¤Ë¤Ï¡¢¶¥¹ç¾õÂÖ¤òÈò¤±¤ë¤¿¤á¤Ë atomic ¤Ê¥Æ¥¹¥È¤¬É¬Íפˤʤë -¤«¤é¤Ç¤¢¤ë¡£ -(¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬Âç°è¥Õ¥é¥°¤òÀßÄꤷ¤ÆÌá¤ë¾ì¹ç¤ò¹Í¤¨¤Æ¤ß¤è¤¦¡£ -¤³¤ÎÂç°è¥Õ¥é¥°¤Î¥Æ¥¹¥È¤Ë³¤±¤Æ +が必要になる理由は、シグナルやファイルディスクリプタの状態変化を +待ちたいときには、競合状態を避けるために atomic なテストが必要になる +からである。 +(シグナルハンドラが大域フラグを設定して戻る場合を考えてみよう。 +この大域フラグのテストに続けて .BR select () -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢ -¥·¥°¥Ê¥ë¤¬¥Æ¥¹¥È¤Îľ¸å¤«¤Ä¸Æ¤Ó½Ð¤·¤ÎľÁ°¤ËÆϤ¤¤¿»þ¤Ë¤Ï +を呼び出すと、 +シグナルがテストの直後かつ呼び出しの直前に届いた時には .BR select () -¤Ï±Êµ×¤Ë¥Ï¥ó¥°¤·¤Æ¤·¤Þ¤¦¤«¤â¤·¤ì¤Ê¤¤¡£ +は永久にハングしてしまうかもしれない。 .\"O By contrast, .\"O .BR pselect () .\"O allows one to first block signals, handle the signals that have come in, @@ -371,22 +371,22 @@ _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O with the desired .\"O .IR sigmask , .\"O avoiding the race.) -°ìÊý¡¢ +一方、 .BR pselect () -¤ò»È¤¦¤È¡¢¤Þ¤º¥·¥°¥Ê¥ë¤ò¶Ø»ß (block) ¤·¤Æ¡¢Æþ¤Ã¤Æ¤¯¤ë¥·¥°¥Ê¥ë¤òÁàºî¤·¡¢ -˾¤ß¤Î +を使うと、まずシグナルを禁止 (block) して、入ってくるシグナルを操作し、 +望みの .I sigmask -¤Ç +で .BR pselect () -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¡¢Á°µ­¤Î¶¥¹ç¤òÈò¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£) +を呼び出すことで、前記の競合を避けることができる。) .\"O .SS "The timeout" -.SS ¥¿¥¤¥à¥¢¥¦¥È +.SS タイムアウト .\"O The time structures involved are defined in .\"O .I .\"O and look like -¤³¤ì¤é¤Î´Ø¿ô¤Ç»ÈÍѤµ¤ì¤ë»þ´Ö´ØÏ¢¤Î¹½Â¤ÂΤϡ¢ +これらの関数で使用される時間関連の構造体は、 .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で以下のように定義されている。 .\"O .in +4n .\"O .nf @@ -399,8 +399,8 @@ _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .in +4n .nf struct timeval { - long tv_sec; /* Éà */ - long tv_usec; /* ¥Þ¥¤¥¯¥íÉà */ + long tv_sec; /* 秒 */ + long tv_usec; /* マイクロ秒 */ }; .fi .in @@ -418,14 +418,14 @@ struct timeval { .in +4n .nf struct timespec { - long tv_sec; /* Éà */ - long tv_nsec; /* ¥Ê¥ÎÉà */ + long tv_sec; /* 秒 */ + long tv_nsec; /* ナノ秒 */ }; .fi .in .\"O (However, see below on the POSIX.1-2001 versions.) -(POSIX.1-2001 ¤Ç¤ÎÄêµÁ¤Ë¤Ä¤¤¤Æ¤Ï²¼µ­¤Î¡ÖÃí°Õ¡×¤ò»²¾È) +(POSIX.1-2001 での定義については下記の「注意」を参照) .PP .\"O Some code calls .\"O .BR select () @@ -434,15 +434,15 @@ struct timespec { .\"O zero, and a non-NULL .\"O .I timeout .\"O as a fairly portable way to sleep with subsecond precision. -ÉÃñ°Ì°Ê²¼¤ÎÀºÅ٤ǥ¹¥ê¡¼¥×¤ò¼Â¸½¤¹¤ë -°Ü¿¢À­¤Î¹â¤¤ÊýË¡¤È¤·¤Æ¡¢ -3 ¤Ä¤Î½¸¹çÁ´¤Æ¤ò¶õ¡¢ +秒単位以下の精度でスリープを実現する +移植性の高い方法として、 +3 つの集合全てを空、 .I nfds -¤ò 0 ¡¢ +を 0 、 .I timeout -¤ò NULL ¤Ç¤Ê¤¤ÃͤËÀßÄꤷ¤Æ +を NULL でない値に設定して .BR select () -¤ò¸Æ¤Ó½Ð¤¹¤È¤¤¤¦ÊýË¡¤ò»È¤Ã¤Æ¤¤¤ë¥³¡¼¥É¤â¤¢¤ë¡£ +を呼び出すという方法を使っているコードもある。 .PP .\"O On Linux, .\"O .BR select () @@ -462,35 +462,35 @@ struct timespec { .\"O to be undefined after .\"O .BR select () .\"O returns. -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR select () -¤Ï +は .I timeout -¤òÊѹ¹¤·¡¢»Ä¤ê¤ÎÄä»ß»þ´Ö¤òÈ¿±Ç¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¬¡¢ -¾¤Î¤Û¤È¤ó¤É¤Î¼ÂÁõ¤Ç¤Ï¤³¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤ -(POSIX.1-2001 ¤Ï¤É¤Á¤é¤ÎÆ°ºî¤âǧ¤á¤Æ¤¤¤ë)¡£ -¤³¤Î¤¿¤á¡¢ +を変更し、残りの停止時間を反映するようになっているが、 +他のほとんどの実装ではこのようになっていない +(POSIX.1-2001 はどちらの動作も認めている)。 +このため、 .I timeout -¤ò»²¾È¤·¤Æ¤¤¤ë Linux ¤Î¥³¡¼¥É¤ò¾¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤Ø -°Ü¿¢¤¹¤ë¾ì¹ç¡¢ÌäÂ꤬µ¯¤³¤ë¡£ -¤Þ¤¿¡¢¥ë¡¼¥×¤ÎÃæ¤Ç \fItimeval\fP ¹½Â¤ÂΤò½é´ü²½¤»¤º¤Ë¤½¤Î¤Þ¤ÞºÆÍøÍѤ·¤Æ +を参照している Linux のコードを他のオペレーティング・システムへ +移植する場合、問題が起こる。 +また、ループの中で \fItimeval\fP 構造体を初期化せずにそのまま再利用して .BR select () -¤òÊ£¿ô²ó¹Ô¤Ê¤Ã¤Æ¤¤¤ë¥³¡¼¥É¤ò Linux ¤Ø°Ü¿¢¤¹¤ë¾ì¹ç¤Ë¤â¡¢ÌäÂ꤬µ¯¤³¤ë¡£ +を複数回行なっているコードを Linux へ移植する場合にも、問題が起こる。 .BR select () -¤«¤éÉüµ¢¤·¤¿¸å¤Ï +から復帰した後は .I timeout -¤Ï̤ÄêµÁ¤Ç¤¢¤ë¤È¹Í¤¨¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +は未定義であると考えるべきである。 .\"O .\" .PP - it is rumored that: .\"O .\" On BSD, when a timeout occurs, the file descriptor bits are not changed. .\"O .\" - it is certainly true that: .\"O .\" Linux follows SUSv2 and sets the bit masks to zero upon a timeout. .\" .PP -.\" ¡ÖBSD ¤Ç¤Ï¥¿¥¤¥à¥¢¥¦¥È¤¬µ¯¤³¤Ã¤Æ¤â¡¢ -.\" ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¥Ó¥Ã¥È¤ÏÊѤï¤é¤Ê¤¤¡×¤Èʹ¤¤¤¿¤³¤È¤¬¤¢¤ë¡£ -.\" ¡ÖLinux ¤Ï SUSv2 ¤Ë½¾¤Ã¤Æ¤ª¤ê¡¢ -.\" ¥¿¥¤¥à¥¢¥¦¥È¤ÎºÝ¤Ë¤Ï¥Ó¥Ã¥È¥Þ¥¹¥¯¤ò 0 ¤Ë¤¹¤ë¡×¤È¤¤¤¦¤Î¤Ï³Î¤«¤Ë»ö¼Â¤Ç¤¢¤ë¡£ +.\" 「BSD ではタイムアウトが起こっても、 +.\" ファイルディスクリプタビットは変わらない」と聞いたことがある。 +.\" 「Linux は SUSv2 に従っており、 +.\" タイムアウトの際にはビットマスクを 0 にする」というのは確かに事実である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR select () .\"O and @@ -501,44 +501,44 @@ Linux .\"O .IR writefds , .\"O .IR exceptfds ) .\"O which may be zero if the timeout expires before anything interesting happens. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR select () -¤È +と .BR pselect () -¤Ï¹¹¿·¤µ¤ì¤¿ 3 ¤Ä¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¿ô (¤Ä¤Þ¤ê¡¢ +は更新された 3 つのディスクリプタ集合に含まれている +ファイルディスクリプタの数 (つまり、 .IR readfds , .IR writefds , .I exceptfds -Ãæ¤Î 1 ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥Ó¥Ã¥È¤ÎÁí¿ô) ¤òÊÖ¤¹¡£ -²¿¤âµ¯¤³¤é¤º¤Ë»þ´ÖÀÚ¤ì¤Ë¤Ê¤Ã¤¿¾ì¹ç¡¢ -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¿ô¤Ï 0 ¤Ë¤Ê¤ë¤³¤È¤â¤¢¤ë¡£ +中の 1 になっているビットの総数) を返す。 +何も起こらずに時間切れになった場合、 +ディスクリプタの数は 0 になることもある。 .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately; the sets and .\"O .I timeout .\"O become undefined, so do not .\"O rely on their contents after an error. -¥¨¥é¡¼¤Ê¤é¤Ð \-1 ¤òÊÖ¤·¡¢ +エラーならば \-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬ÀßÄꤵ¤ì¤ë; ½¸¹ç¤È +に適切な値が設定される; 集合と .I timeout -¤Ï̤ÄêµÁ¤È¤Ê¤ë¤Î¤Ç¡¢¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¸å¤Ï¤½¤ì¤é¤ÎÆâÍƤò¿®Íꤷ¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +は未定義となるので、エラーが起こった後はそれらの内容を信頼してはならない。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O An invalid file descriptor was given in one of the sets. .\"O (Perhaps a file descriptor that was already closed, .\"O or one on which an error has occurred.) -¤¤¤º¤ì¤«¤Î½¸¹ç¤Ë̵¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬»ØÄꤵ¤ì¤¿ -(¤ª¤½¤é¤¯¤Ï¡¢¤¹¤Ç¤Ë¥¯¥í¡¼¥º¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¡¢ -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬»ØÄꤵ¤ì¤¿)¡£ +いずれかの集合に無効なファイルディスクリプタが指定された +(おそらくは、すでにクローズされたファイルディスクリプタか、 +エラーが発生したファイルディスクリプタが指定された)。 .TP .B EINTR .\"O A signal was caught; see .\"O .BR signal (7). -¥·¥°¥Ê¥ë¤ò¼õ¿®¤·¤¿¡£ +シグナルを受信した。 .TP .B EINVAL .\"O .I nfds @@ -546,27 +546,27 @@ Linux .\"O .I timeout .\"O is invalid. .I n -¤¬Éé¡¢¤Þ¤¿¤Ï +が負、または .I timeout -¤ËÆþ¤Ã¤Æ¤¤¤ëÃͤ¬ÉÔÀµ¤Ç¤¢¤ë¡£ +に入っている値が不正である。 .TP .B ENOMEM .\"O unable to allocate memory for internal tables. -ÆâÉô¥Æ¡¼¥Ö¥ë¤Ë¥á¥â¥ê¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +内部テーブルにメモリを割り当てることができなかった。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR pselect () .\"O was added to Linux in kernel 2.6.16. .BR pselect () -¤Ï¥«¡¼¥Í¥ë 2.6.16 ¤Ç Linux ¤ËÄɲ䵤줿¡£ +はカーネル 2.6.16 で Linux に追加された。 .\"O Prior to this, .\"O .BR pselect () .\"O was emulated in glibc (but see BUGS). -¤½¤ì°ÊÁ°¤Ï¡¢ +それ以前は、 .BR pselect () -¤Ï glibc ¤Ç¥¨¥ß¥å¥ì¡¼¥È¤µ¤ì¤Æ¤¤¤¿ (¡Ö¥Ð¥°¡×¤Î¾Ï¤ò»²¾È)¡£ +は glibc でエミュレートされていた (「バグ」の章を参照)。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR select () .\"O conforms to POSIX.1-2001 and .\"O 4.4BSD @@ -578,21 +578,21 @@ Linux .\"O However, note that the System V variant typically .\"O sets the timeout variable before exit, but the BSD variant does not. .BR select () -¤Ï POSIX.1-2001 ¤È 4.4BSD +は POSIX.1-2001 と 4.4BSD .RB ( select () -¤Ï 4.2BSD ¤ÇºÇ½é¤ËÅо줷¤¿) ¤Ë½àµò¤¹¤ë¡£ -BSD ¥½¥±¥Ã¥ÈÁؤΥ¯¥í¡¼¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ëÈó BSD ¥·¥¹¥Æ¥à -(System V ·Ï¤â´Þ¤à) ¤È¤Î´Ö¤Ç¤À¤¤¤¿¤¤°Ü¿¢À­¤¬¤¢¤ë¡£¤·¤«¤· System V ·Ï¤Ç¤Ï -¤¿¤¤¤¬¤¤ timeout ÊÑ¿ô¤ò exit ¤ÎÁ°¤Ë¥»¥Ã¥È¤¹¤ë¤¬¡¢ -BSD ·Ï¤Ç¤Ï¤½¤¦¤Ç¤Ê¤¤¤Î¤ÇÃí°Õ¤¹¤ë¤³¤È¡£ +は 4.2BSD で最初に登場した) に準拠する。 +BSD ソケット層のクローンをサポートしている非 BSD システム +(System V 系も含む) との間でだいたい移植性がある。しかし System V 系では +たいがい timeout 変数を exit の前にセットするが、 +BSD 系ではそうでないので注意すること。 .PP .\"O .BR pselect () .\"O is defined in POSIX.1g, and in .\"O POSIX.1-2001. .BR pselect () -¤Ï POSIX.1g ¤È POSIX.1-2001 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +は POSIX.1g と POSIX.1-2001 で定義されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O An .\"O .I fd_set .\"O is a fixed size buffer. @@ -610,20 +610,20 @@ BSD .\"O .I fd .\"O to be a valid file descriptor. .I fd_set -¤Ï¸ÇÄꥵ¥¤¥º¤Î¥Ð¥Ã¥Õ¥¡¤Ç¤¢¤ë¡£ -Éé¤ä +は固定サイズのバッファである。 +負や .B FD_SETSIZE -°Ê¾å¤ÎÃͤò»ý¤Ä +以上の値を持つ .I fd -¤ËÂФ·¤Æ +に対して .BR FD_CLR () -¤ä +や .BR FD_SET () -¤ò¼Â¹Ô¤·¤¿¾ì¹ç¡¢ -¤É¤Î¤è¤¦¤ÊÆ°ºî¤ò¤¹¤ë¤«¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤Þ¤¿¡¢ POSIX ¤Ç¤Ï +を実行した場合、 +どのような動作をするかは定義されていない。 +また、 POSIX では .I fd -¤ÏÍ­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Èµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は有効なファイルディスクリプタでなければならないと規定されている。 .\"O Concerning the types involved, the classical situation is that .\"O the two fields of a @@ -632,14 +632,14 @@ BSD .\"O .I long .\"O (as shown above), and the structure is defined in .\"O .IR . -·¿Àë¸À¤Ë´Ø¤·¤Æ¤Ï¡¢ÀΤʤ¬¤é¤Î¾õ¶·¤Ç¤Ï +型宣言に関しては、昔ながらの状況では .I timeval -¹½Â¤ÂΤΠ2 ¤Ä¤Î¥Õ¥£¡¼¥ë¥É¤Ï -(¾åµ­¤Î¤è¤¦¤Ë) ξÊý¤È¤â +構造体の 2 つのフィールドは +(上記のように) 両方とも .I long -·¿¤Ç¤¢¤ê¡¢¹½Â¤ÂÎ¤Ï +型であり、構造体は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で定義されている。 .\"O The POSIX.1-2001 situation is .\"O .\"O .in +4n @@ -659,57 +659,57 @@ BSD .\"O .I suseconds_t .\"O are defined in .\"O .IR . -POSIX.1-2001 ¤Î²¼¤Ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +POSIX.1-2001 の下では、以下のようになっている。 .in +4n .nf struct timeval { - time_t tv_sec; /* Éà */ - suseconds_t tv_usec; /* ¥Þ¥¤¥¯¥íÉà */ + time_t tv_sec; /* 秒 */ + suseconds_t tv_usec; /* マイクロ秒 */ }; .fi .in -¤³¤Î¹½Â¤ÂÎ¤Ï +この構造体は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢¥Ç¡¼¥¿·¿ +で定義されており、データ型 .I time_t -¤È +と .I suseconds_t -¤Ï +は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で定義されている。 .LP .\"O Concerning prototypes, the classical situation is that one should .\"O include .\"O .I .\"O for .\"O .BR select (). -¥×¥í¥È¥¿¥¤¥×¤Ë´Ø¤·¤Æ¤Ï¡¢ÀΤʤ¬¤é¤Î¾õ¶·¤Ç +プロトタイプに関しては、昔ながらの状況で .BR select () -¤ò»È¤¤¤¿¤¤¾ì¹ç¤Ï¡¢ +を使いたい場合は、 .I -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ì¤Ð¤è¤¤¡£ +をインクルードすればよい。 .\"O The POSIX.1-2001 situation is that one should include .\"O .I .\"O for .\"O .BR select () .\"O and .\"O .BR pselect (). -POSIX.1-2001 ¤Î´Ä¶­¤Ç +POSIX.1-2001 の環境で .BR select () -¤È +と .BR pselect () -¤ò»È¤¤¤¿¤¤¾ì¹ç¤Ï¡¢ +を使いたい場合は、 .I -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ì¤Ð¤è¤¤¡£ +をインクルードすればよい。 .\"O Libc4 and libc5 do not have a .\"O .I .\"O header; under glibc 2.0 and later this header exists. -¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë +ヘッダファイル .I -¤Ï libc4 ¤È libc5 ¤Ë¤Ï¤Ê¤¯¡¢glibc 2.0 °Ê¹ß¤Ë¸ºß¤¹¤ë¡£ +は libc4 と libc5 にはなく、glibc 2.0 以降に存在する。 .\"O Under glibc 2.0 it unconditionally gives the wrong prototype for .\"O .BR pselect (). .\"O Under glibc 2.1 to 2.2.1 it gives @@ -718,29 +718,29 @@ POSIX.1-2001 .\"O .B _GNU_SOURCE .\"O is defined. .\"O Since glibc 2.2.2 the requirements are as shown in the SYNOPSIS. -°­¤¤¤³¤È¤Ë glibc 2.0 °ÊÁ°¤Ç¤Ï +悪いことに glibc 2.0 以前では .BR pselect () -¤Î¥×¥í¥È¥¿¥¤¥×¤¬´Ö°ã¤Ã¤Æ¤¤¤ë¡£ -glibc 2.1 ¤«¤é 2.2.1 ¤Ç¤Ï +のプロトタイプが間違っている。 +glibc 2.1 から 2.2.1 では .B _GNU_SOURCE -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢ +が定義されている場合に、 .BR pselect () -¤¬Ä󶡤µ¤ì¤ë¡£ -glibc 2.2.2 °Ê¹ß¤Ç¤Ï¡¢ +が提供される。 +glibc 2.2.2 以降では、 .BR pselect () -¤ò»ÈÍѤ¹¤ë¤Ë¤Ï¡¢¡Ö½ñ¼°¡×¤Ëµ­ºÜ¤µ¤ì¤¿Í×·ï¤òËþ¤¿¤¹É¬Íפ¬¤¢¤ë¡£ +を使用するには、「書式」に記載された要件を満たす必要がある。 .\"O .SS "LINUX NOTES" -.SS "Linux ¤Ç¤ÎÃí°Õ" +.SS "Linux での注意" .\"O The Linux .\"O .BR pselect () .\"O system call modifies its .\"O .I timeout .\"O argument. -Linux ¤Î +Linux の .BR pselect () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +システムコールは .I timeout -°ú¤­¿ô¤òÊѹ¹¤¹¤ë¡£ +引き数を変更する。 .\"O However, the glibc wrapper function hides this behavior .\"O by using a local variable for the timeout argument that .\"O is passed to the system call. @@ -748,24 +748,24 @@ Linux .\"O .BR pselect () .\"O function does not modify its timeout argument; .\"O this is the behavior required by POSIX.1-2001. -¤·¤«¤·¡¢ glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÅϤ¹ timeout °ú¤­¿ô -¤È¤·¤Æ¥í¡¼¥«¥ëÊÑ¿ô¤ò»È¤¦¤³¤È¤Ç¤³¤ÎÆ°ºî¤ò±£Ê䷤Ƥ¤¤ë¡£ -¤³¤Î¤¿¤á¡¢glibc ¤Î +しかし、 glibc のラッパー関数は、システムコールに渡す timeout 引き数 +としてローカル変数を使うことでこの動作を隠蔽している。 +このため、glibc の .BR pselect () -´Ø¿ô¤Ï timeout °ú¤­¿ô¤òÊѹ¹¤·¤Ê¤¤¡£ -¤³¤ì¤¬ POSIX.1-2001 ¤¬Í׵ᤷ¤Æ¤¤¤ëÆ°ºî¤Ç¤¢¤ë¡£ +関数は timeout 引き数を変更しない。 +これが POSIX.1-2001 が要求している動作である。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Glibc 2.0 provided a version of .\"O .BR pselect () .\"O that did not take a .\"O .I sigmask .\"O argument. -glibc 2.0 ¤Ç¤Ï¡¢ +glibc 2.0 では、 .I sigmask -°ú¤­¿ô¤ò¼è¤é¤Ê¤¤¥Ð¡¼¥¸¥ç¥ó¤Î +引き数を取らないバージョンの .BR pselect () -¤¬Ä󶡤µ¤ì¤Æ¤¤¤¿¡£ +が提供されていた。 .\"O Starting with version 2.1, glibc provided an emulation of .\"O .BR pselect () @@ -776,24 +776,24 @@ glibc 2.0 .\"O This implementation remained vulnerable to the very race condition that .\"O .BR pselect () .\"O was designed to prevent. -¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤Ç¤Ï¡¢ +バージョン 2.1 以降の glibc では、 .BR pselect () -¤Ï +は .BR sigprocmask (2) -¤È +と .BR select () -¤ò»È¤Ã¤Æ¥¨¥ß¥å¥ì¡¼¥È¤µ¤ì¤Æ¤¤¤¿¡£ -¤³¤Î¼ÂÁõ¤Ë¤Ï¤­¤ï¤É¤¤¶¥¹ç¾ò·ï¤Ë¤ª¤¤¤ÆÀȼåÀ­¤¬»Ä¤Ã¤Æ¤¤¤¿¡£ -¤³¤Î¶¥¹ç¾ò·ï¤Ë¤ª¤±¤ëÌäÂê¤òËɻߤ¹¤ë¤¿¤á¤Ë +を使ってエミュレートされていた。 +この実装にはきわどい競合条件において脆弱性が残っていた。 +この競合条件における問題を防止するために .BR pselect () -¤ÏÀ߷פµ¤ì¤¿¤Î¤Ç¤¢¤ë¡£ +は設計されたのである。 .\"O Modern versions of glibc use the (race-free) .\"O .BR pselect () .\"O system call on kernels where it is provided. -ºÇ¶á¤Î¥Ð¡¼¥¸¥ç¥ó¤Î glibc ¤Ç¤Ï¡¢¥«¡¼¥Í¥ë¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -(¶¥¹ç¤¬µ¯¤³¤é¤Ê¤¤) +最近のバージョンの glibc では、カーネルがサポートしている場合には、 +(競合が起こらない) .BR pselect () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬»ÈÍѤµ¤ì¤ë¡£ +システムコールが使用される。 .\"O On systems that lack .\"O .BR pselect (), @@ -804,12 +804,12 @@ glibc 2.0 .\"O .BR select () .\"O in the main program.) .BR pselect () -¤¬¤Ê¤¤¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¡¢ -¥·¥°¥Ê¥ë¤ÎÊ᪤ò¿®ÍêÀ­¤¬¤¢¤ê (°Ü¿¢À­¤â¹â¤¤) ÊýË¡¤Ç¹Ô¤¦¤Ë¤Ï¡¢ -¼«¸Ê¥Ñ¥¤¥× (self-pipe) ¤È¤¤¤¦µ»¤ò»È¤¦¤È¤è¤¤ (¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ï¥Ñ¥¤¥×¤Ø -1 ¥Ð¥¤¥È¤Î¥Ç¡¼¥¿¤ò½ñ¤­¹þ¤ß¡¢Æ±¤¸¥Ñ¥¤¥×¤Î¤â¤¦°ìü¤ò¥á¥¤¥ó¥×¥í¥°¥é¥à¤Î +がないシステムにおいて、 +シグナルの捕捉を信頼性があり (移植性も高い) 方法で行うには、 +自己パイプ (self-pipe) という技を使うとよい (シグナルハンドラはパイプへ +1 バイトのデータを書き込み、同じパイプのもう一端をメインプログラムの .BR select () -¤Ç´Æ»ë¤¹¤ë¤È¤¤¤¦ÊýË¡¤Ç¤¢¤ë)¡£ +で監視するという方法である)。 .\"O Under Linux, .\"O .BR select () @@ -825,21 +825,21 @@ glibc 2.0 .\"O Thus it may be safer to use .\"O .B O_NONBLOCK .\"O on sockets that should not block. -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR select () -¤¬¥½¥±¥Ã¥È¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç "Æɤ߹þ¤ß¤Î½àÈ÷¤¬¤Ç¤­¤¿" ¤ÈÊó¹ð¤·¤¿¾ì¹ç¤Ç¤â¡¢ -¤³¤Î¸å¤Ç read ¤ò¹Ô¤¦¤ÈÄä»ß (block) ¤¹¤ë¤³¤È¤¬¤¢¤ë¡£¤³¤Î¤è¤¦¤Ê¾õ¶·¤Ï¡¢ -Î㤨¤Ð¡¢¥Ç¡¼¥¿¤¬ÅþÃ夷¤¿¤¬¡¢¸¡ºº¤Ç¥Á¥§¥Ã¥¯¥µ¥à°Û¾ï¤¬¸«¤Ä¤«¤êÇÑ´þ¤µ¤ì¤¿»þ -¤Ê¤É¤Ëµ¯¤³¤ê¤¨¤ë¡£Â¾¤Ë¤â¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬½àÈ÷¤Ç¤­¤¿¤È´Ö°ã¤Ã¤Æ -Êó¹ð¤µ¤ì¤ë¾õ¶·¤¬µ¯¤³¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -.\" Stevens ¤¬µó¤²¤¿¤Î¤Ï¡¢select ¤¬À®¸ù¤·¤ÆÉüµ¢¤·¤Æ¤«¤é accept ¤¬ -.\" ¸Æ¤Ð¤ì¤ë¤Þ¤Ç¤Î´Ö¤Ë¡¢¥¯¥é¥¤¥¢¥ó¥È¤«¤é RST ¤¬Á÷¤é¤ì¤ë¤È¡¢ -.\" accept ¤¬Ää»ß¤¹¤ë¾ì¹ç¤Ç¤¢¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢Ää»ß¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤Ï +がソケットファイルディスクリプタで "読み込みの準備ができた" と報告した場合でも、 +この後で read を行うと停止 (block) することがある。このような状況は、 +例えば、データが到着したが、検査でチェックサム異常が見つかり廃棄された時 +などに起こりえる。他にもファイルディスクリプタが準備できたと間違って +報告される状況が起こるかもしれない。 +.\" Stevens が挙げたのは、select が成功して復帰してから accept が +.\" 呼ばれるまでの間に、クライアントから RST が送られると、 +.\" accept が停止する場合である。 +したがって、停止すべきではないソケットに対しては .B O_NONBLOCK -¤ò»È¤¦¤È¤è¤ê°ÂÁ´¤Ç¤¢¤í¤¦¡£ +を使うとより安全であろう。 .\"O .\" Maybe the kernel should have returned EIO in such a situation? -.\" ¿ʬ¡¢¤³¤Î¤è¤¦¤Ê¾õ¶·¤Ç¤Ï¥«¡¼¥Í¥ë¤Ï EIO ¤òÊÖ¤·¤Æ¤·¤Þ¤¦? +.\" 多分、このような状況ではカーネルは EIO を返してしまう? .\"O On Linux, .\"O .BR select () @@ -855,24 +855,24 @@ Linux .\"O but the glibc wrapper hides this behavior by internally copying the .\"O .I timeout .\"O to a local variable and passing that variable to the system call. -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR select () -¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¾ì¹ç (¤Ä¤Þ¤ê +がシグナルハンドラにより割り込まれた場合 (つまり .B EINTR -¥¨¥é¡¼¤¬ÊÖ¤ë¾ì¹ç)¡¢ +エラーが返る場合)、 .I timeout -¤âÊѹ¹¤¹¤ë¡£ -¤³¤ì¤Ï POSIX.1-2001 ¤Ç¤Ïǧ¤á¤é¤ì¤Æ¤¤¤Ê¤¤µóÆ°¤Ç¤¢¤ë¡£ -Linux ¤Î +も変更する。 +これは POSIX.1-2001 では認められていない挙動である。 +Linux の .BR pselect () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤âƱ¤¸µóÆ°¤ò¤¹¤ë¤¬¡¢ -glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤¬¤³¤ÎµóÆ°¤ò±£Ê䷤Ƥ¤¤ë¡£ -¶ñÂÎŪ¤Ë¤Ï¡¢glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤ÎÆâÉô¤Ç¡¢ +システムコールも同じ挙動をするが、 +glibc のラッパー関数がこの挙動を隠蔽している。 +具体的には、glibc のラッパー関数の内部で、 .I timeout -¤ò¥í¡¼¥«¥ëÊÑ¿ô¤Ë¥³¥Ô¡¼¤·¡¢ -¤³¤Î¥í¡¼¥«¥ëÊÑ¿ô¤ò¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÅϤ·¤Æ¤¤¤ë¡£ +をローカル変数にコピーし、 +このローカル変数をシステムコールに渡している。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .nf #include #include @@ -915,38 +915,38 @@ main(void) struct timeval tv; int retval; - /* stdin (fd 0) ¤ò´Æ»ë¤·¡¢ÆþÎϤ¬¤¢¤Ã¤¿¾ì¹ç¤Ëɽ¼¨¤¹¤ë¡£*/ + /* stdin (fd 0) を監視し、入力があった場合に表示する。*/ FD_ZERO(&rfds); FD_SET(0, &rfds); - /* 5 Éôִƻ뤹¤ë¡£*/ + /* 5 秒間監視する。*/ tv.tv_sec = 5; tv.tv_usec = 0; retval = select(1, &rfds, NULL, NULL, &tv); - /* ¤³¤Î»þÅÀ¤Ç¤Î tv ¤ÎÃͤò¿®Íꤷ¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£*/ + /* この時点での tv の値を信頼してはならない。*/ if (retval == \-1) perror("select()"); else if (retval) - printf("º£¡¢¥Ç¡¼¥¿¤¬¼èÆÀ¤Ç¤­¤Þ¤·¤¿¡£\\n"); - /* FD_ISSET(0, &rfds) ¤¬ true ¤Ë¤Ê¤ë¡£*/ + printf("今、データが取得できました。\\n"); + /* FD_ISSET(0, &rfds) が true になる。*/ else - printf("5 ÉðÊÆâ¤Ë¥Ç¡¼¥¿¤¬ÆþÎϤµ¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£\\n"); + printf("5 秒以内にデータが入力されませんでした。\\n"); exit(EXIT_SUCCESS); } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .\"O For a tutorial with discussion and examples, see .\"O .BR select_tut (2). -¹Í»¡¤È»ÈÍÑÎã¤Î½ñ¤«¤ì¤¿¥Á¥å¡¼¥È¥ê¥¢¥ë¤È¤·¤Æ¡¢ +考察と使用例の書かれたチュートリアルとして、 .BR select_tut (2) -¤¬¤¢¤ë¡£ +がある。 .LP .\"O For vaguely related stuff, see -´Ø·¸¤¬¤¢¤ê¤½¤¦¤Ê¤â¤Î¤òµó¤²¤Æ¤ª¤¯: +関係がありそうなものを挙げておく: .BR accept (2), .BR connect (2), .BR poll (2), diff --git a/draft/man2/select_tut.2 b/draft/man2/select_tut.2 index 44e8f6ac..4c6e7026 100644 --- a/draft/man2/select_tut.2 +++ b/draft/man2/select_tut.2 @@ -33,25 +33,25 @@ .\" Updated 2006-07-21, Akihiro MOTOKI, LDP v2.36 .\" Updated 2009-02-13, Akihiro MOTOKI, LDP v3.18 .\" -.\"WORD: file descriptor ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: exceptional condition Îã³°¾õÂÖ +.\"WORD: file descriptor ファイルディスクリプタ +.\"WORD: exceptional condition 例外状態 .\" .TH SELECT_TUT 2 2010-06-10 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO \- .\"O synchronous I/O multiplexing -select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO \- Ʊ´ü I/O ¤Î¿½Å²½ +select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO \- 同期 I/O の多重化 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O /* According to POSIX.1-2001 */ -/* POSIX.1-2001 ¤Ë½¾¤¦¾ì¹ç */ +/* POSIX.1-2001 に従う場合 */ .br .B #include .sp .\"O /* According to earlier standards */ -/* °ÊÁ°¤Îµ¬³Ê¤Ë½¾¤¦¾ì¹ç */ +/* 以前の規格に従う場合 */ .br .B #include .br @@ -80,15 +80,15 @@ select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO \- Ʊ .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR pselect (): _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR select () .\"O (or .\"O .BR pselect ()) @@ -97,18 +97,18 @@ _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O that is, to see whether I/O becomes possible, .\"O or an "exceptional condition" has occurred on any of the descriptors. .BR select () -(¤ä +(や .BR pselect ()) -¤ò»È¤¦¤È¡¢¸úΨŪ¤ËÊ£¿ô¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò´Æ»ë¤·¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¤¤º¤ì¤«¤¬ -¡Öready (½àÈ÷¤¬¤Ç¤­¤¿)¡×¾õÂÖ¡¢¤Ä¤Þ¤ê I/O (Æþ½ÐÎÏ) ¤¬²Äǽ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤ä¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¤¤º¤ì¤«¤¬ -¡ÖÎã³°¾õÂÖ (exceptional condition)¡×¤¬È¯À¸¤·¤¿¤«¡¢¤òÄ´¤Ù¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使うと、効率的に複数のファイルディスクリプタを監視し、 +そのファイルディスクリプタのいずれかが +「ready (準備ができた)」状態、つまり I/O (入出力) が可能になっているかや、 +ファイルディスクリプタのいずれかが +「例外状態 (exceptional condition)」が発生したか、を調べることができる。 .\"O Its principal arguments are three "sets" of file descriptors: .\"O \fIreadfds\fP, \fIwritefds\fP, and \fIexceptfds\fP. -¤³¤Î´Ø¿ô¤Î¼çÍפʰú¤­¿ô¤Ï¡¢3¼ïÎà¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¡Ö½¸¹ç¡× -\fIreadfds\fP, \fIwritefds\fP, \fIexceptfds\fP ¤Ç¤¢¤ë¡£ +この関数の主要な引き数は、3種類のファイルディスクリプタの「集合」 +\fIreadfds\fP, \fIwritefds\fP, \fIexceptfds\fP である。 .\"O Each set is declared as type .\"O .IR fd_set , .\"O and its contents can be manipulated with the macros @@ -119,17 +119,17 @@ _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O .BR FD_ZERO (). .\"O A newly declared set should first be cleared using .\"O .BR FD_ZERO (). -³Æ¡¹¤Î½¸¹ç¤Ï +各々の集合は .B fd_set -¤È¤·¤ÆÀë¸À¤µ¤ì¡¢¤½¤ÎÆâÍÆ¤Ï +として宣言され、その内容は .BR FD_CLR (), .BR FD_ISSET (), .BR FD_SET (), .BR FD_ZERO () -¤È¤¤¤Ã¤¿¥Þ¥¯¥í¤Ë¤è¤Ã¤ÆÁàºî¤Ç¤­¤ë¡£ -¿·¤·¤¯Àë¸À¤µ¤ì¤¿½¸¹ç¤Ï¡¢¤Þ¤ººÇ½é¤Ë +といったマクロによって操作できる。 +新しく宣言された集合は、まず最初に .BR FD_ZERO () -¤ò»È¤Ã¤Æ¥¯¥ê¥¢¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +を使ってクリアすべきである。 .\"O .BR select () .\"O modifies the contents of the sets according to the rules .\"O described below; after calling @@ -143,18 +143,18 @@ _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O .BR FD_CLR () .\"O removes a file descriptor from a set. .BR select () -¤Ï¤³¤ì¤é¤Î½¸¹ç¤ÎÆâÍƤò¡¢°Ê¹ß¤Ë½Ò¤Ù¤ëµ¬Â§¤Ë½¾¤Ã¤Æ½¤Àµ¤¹¤ë¡£ +はこれらの集合の内容を、以降に述べる規則に従って修正する。 .BR select () -¤ò¸Æ¤ó¤À¸å¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¤Þ¤À½¸¹ç¤Ë¸ºß¤·¤Æ¤¤¤ë¤«¤É¤¦¤«¤Ï¡¢ +を呼んだ後、ファイルディスクリプタがまだ集合に存在しているかどうかは、 .BR FD_ISSET () -¥Þ¥¯¥í¤Ë¤è¤Ã¤ÆÄ´¤Ù¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +マクロによって調べることができる。 .BR FD_ISSET () -¤Ï»ØÄꤵ¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬½¸¹ç¤Ë¸ºß¤·¤Æ¤¤¤ì¤Ð 0 °Ê³°¤ÎÃͤòÊÖ¤·¡¢ -¸ºß¤·¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ +は指定されたディスクリプタが集合に存在していれば 0 以外の値を返し、 +存在しなければ 0 を返す。 .BR FD_CLR () -¤Ï½¸¹ç¤«¤é¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Îºï½ü¤ò¹Ô¤¦¡£ +は集合からのファイルディスクリプタの削除を行う。 .\"O .SS Arguments -.SS °ú¤­¿ô +.SS 引き数 .TP \fIreadfds\fP .\"O This set is watched to see if data is available for reading from any of @@ -164,12 +164,12 @@ _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O has returned, \fIreadfds\fP will be .\"O cleared of all file descriptors except for those that .\"O are immediately available for reading. -¤³¤Î½¸¹ç¤Ë´Þ¤Þ¤ì¤ë¤¤¤º¤ì¤«¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¡¢ -¥Ç¡¼¥¿¤ÎÆɤ߹þ¤ß¤¬²Äǽ¤Ë¤Ê¤Ã¤¿¤«¤É¤¦¤«¤ò´Æ»ë¤¹¤ë¡£ +この集合に含まれるいずれかのファイルディスクリプタで、 +データの読み込みが可能になったかどうかを監視する。 .BR select () -¤«¤éÌá¤ë»þ¤Ë¡¢\fIreadfds\fP ¤Î¤¦¤Á¡¢ -ľ¤Á¤ËÆɤ߹þ¤ß²Äǽ¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿°Ê³°¤Ï -½¸¹ç¤«¤éºï½ü¤µ¤ì¤ë¡£ +から戻る時に、\fIreadfds\fP のうち、 +直ちに読み込み可能なファイルディスクリプタ以外は +集合から削除される。 .TP \fIwritefds\fP .\"O This set is watched to see if there is space to write data to any of @@ -179,12 +179,12 @@ _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O has returned, \fIwritefds\fP will be .\"O cleared of all file descriptors except for those that .\"O are immediately available for writing. -¤³¤Î½¸¹ç¤Ë´Þ¤Þ¤ì¤ë¤¤¤º¤ì¤«¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¡¢ -¥Ç¡¼¥¿¤ò½ñ¤­¹þ¤à¥¹¥Ú¡¼¥¹¤¬¤¢¤ë¤«¤É¤¦¤«¤ò´Æ»ë¤¹¤ë¡£ +この集合に含まれるいずれかのファイルディスクリプタで、 +データを書き込むスペースがあるかどうかを監視する。 .BR select () -¤«¤éÌá¤ë»þ¤Ë¡¢\fIwritefds\fP ¤Î¤¦¤Á¡¢ -ľ¤Á¤Ë½ñ¤­¹þ¤ß²Äǽ¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿°Ê³°¤Ï -½¸¹ç¤«¤éºï½ü¤µ¤ì¤ë¡£ +から戻る時に、\fIwritefds\fP のうち、 +直ちに書き込み可能なファイルディスクリプタ以外は +集合から削除される。 .TP \fIexceptfds\fP .\"O This set is watched for "exceptional conditions". @@ -207,23 +207,23 @@ _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O has returned, .\"O \fIexceptfds\fP will be cleared of all file descriptors except for those .\"O for which an exceptional condition has occurred. -¤³¤Î½¸¹ç¤Ë´Þ¤Þ¤ì¤ë¤¤¤º¤ì¤«¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¡¢ -¡ÖÎã³°¾õÂÖ (exceptional condition)¡×¤¬È¯À¸¤·¤¿¤«¤É¤¦¤«¤ò´Æ»ë¤¹¤ë¡£ -¼ÂºÝ¤ÎÆ°ºî¤Ç¤Ï¡¢ÉáÄ̤˵¯¤³¤êÆÀ¤ëÎã³°¾õÂ֤ϰì¤Ä¤À¤±¤Ç¤¢¤ê¡¢ -¤½¤ì¤Ï TCP ¥½¥±¥Ã¥È¤Ç \fIÂÓ°è³° (out-of-band; OOB)\fP ¥Ç¡¼¥¿¤¬ -Æɤ߹þ¤ß²Äǽ¤Ê¾ì¹ç¤Ç¤¢¤ë¡£ -OOB ¥Ç¡¼¥¿¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +この集合に含まれるいずれかのファイルディスクリプタで、 +「例外状態 (exceptional condition)」が発生したかどうかを監視する。 +実際の動作では、普通に起こり得る例外状態は一つだけであり、 +それは TCP ソケットで \fI帯域外 (out-of-band; OOB)\fP データが +読み込み可能な場合である。 +OOB データの詳細については、 .BR recv (2), .BR send (2), .BR tcp (7) -¤ò»²¾È¤Î¤³¤È¡£ -(¤³¤ì°Ê³°¤Ç¤Ï¡¢¤Þ¤ì¤Ê¤³¤È¤À¤¬¡¢ -¥Ñ¥±¥Ã¥È¥â¡¼¥É¤Îµ¼»÷üËö (pseudoterminals) ¤Ç +を参照のこと。 +(これ以外では、まれなことだが、 +パケットモードの擬似端末 (pseudoterminals) で .BR select () -¤¬Îã³°¾õÂÖ¤ò¼¨¤¹¤³¤È¤¬¤¢¤ë¡£) +が例外状態を示すことがある。) .BR select () -¤¬ÊÖ¤ë»þ¤Ë¡¢\fIexceptfds\fP ¤Î¤¦¤Á¡¢ -Îã³°¾õÂÖ¤¬È¯À¸¤·¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿°Ê³°¤Ï½¸¹ç¤«¤éºï½ü¤µ¤ì¤ë¡£ +が返る時に、\fIexceptfds\fP のうち、 +例外状態が発生したディスクリプタ以外は集合から削除される。 .TP \fInfds\fP .\"O This is an integer one more than the maximum of any file descriptor in @@ -231,11 +231,11 @@ OOB .\"O In other words, while adding file descriptors to each of the sets, .\"O you must calculate the maximum integer value of all of them, .\"O then increment this value by one, and then pass this as \fInfds\fP. -Á´¤Æ¤Î½¸¹ç¤Ë´Þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¦¤Á¡¢ -Ãͤ¬ºÇÂç¤Î¤â¤Î¤Ë 1 ¤ò­¤·¤¿À°¿ô¤Ç¤¢¤ë¡£ -¤¹¤Ê¤ï¤Á¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò³Æ½¸¹ç¤Ë²Ã¤¨¤ëºî¶È¤ÎÅÓÃæ¤Ç¡¢ -Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¸«¤ÆºÇÂçÃͤòµá¤á¡¢ -¤½¤ì¤Ë 1 ¤ò²Ã¤¨¤Æ \fInfds\fP ¤È¤·¤ÆÅϤµ¤Ê¤¤¤È¤¤¤±¤Ê¤¤¡¢¤È¤¤¤¦¤³¤È¤À¡£ +全ての集合に含まれるファイルディスクリプタのうち、 +値が最大のものに 1 を足した整数である。 +すなわち、ファイルディスクリプタを各集合に加える作業の途中で、 +全てのファイルディスクリプタを見て最大値を求め、 +それに 1 を加えて \fInfds\fP として渡さないといけない、ということだ。 .TP \fIutimeout\fP .\"O This is the longest time @@ -249,19 +249,19 @@ OOB .\"O to return immediately, with information about the readiness .\"O of file descriptors at the time of the call. .\"O The structure \fIstruct timeval\fP is defined as: -(²¿¤âµ¯¤³¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë) +(何も起こらなかった場合に) .BR select () -¤¬Ìá¤ëÁ°¤ËÂԤĺÇÂç»þ´Ö¤Ç¤¢¤ë¡£ -¤³¤ÎÃÍ¤Ë NULL ¤òÅϤ¹¤È¡¢ +が戻る前に待つ最大時間である。 +この値に NULL を渡すと、 .BR select () -¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¤¤º¤ì¤«¤¬ ready (½àÈ÷¤¬¤Ç¤­¤¿) ¾õÂÖ¤Ë -¤Ê¤ë¤Þ¤ÇÂÔ¤Á³¤±¤Æ¤º¤Ã¤ÈÄä»ß¤¹¤ë¡£ -\fIutimeout\fP ¤Ï 0 Éäˤ¹¤ë¤³¤È¤â¤Ç¤­¡¢ -¤³¤Î¾ì¹ç +はファイルディスクリプタのいずれかが ready (準備ができた) 状態に +なるまで待ち続けてずっと停止する。 +\fIutimeout\fP は 0 秒にすることもでき、 +この場合 .BR select () -¤Ïľ¤Á¤ËÊ֤ꡢ¸Æ¤Ó½Ð¤·»þÅÀ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¾õÂÖ¤Ë -´Ø¤¹¤ë¾ðÊó¤¬ÊÖ¤µ¤ì¤ë¡£ -¹½Â¤ÂÎ \fIstruct timeval\fP ¤Ï¼¡¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +は直ちに返り、呼び出し時点のファイルディスクリプタの状態に +関する情報が返される。 +構造体 \fIstruct timeval\fP は次のように定義されている: .IP .in +4n .nf @@ -281,11 +281,11 @@ struct timeval { .\"O .I "struct timespec" .\"O has nanosecond precision as follows: .BR pselect () -¤Î¤³¤Î°ú¤­¿ô¤Ï +のこの引き数は .I utimeout -¤ÈƱ¤¸°ÕÌ£¤ò»ý¤Ä¤¬¡¢ +と同じ意味を持つが、 .I "struct timespec" -¤Ï¼¡¤Ë¼¨¤¹¤è¤¦¤Ë¥Ê¥ÎÉäÎÀºÅÙ¤ò»ý¤Ä¡£ +は次に示すようにナノ秒の精度を持つ。 .in +4n .nf struct timespec { @@ -311,24 +311,24 @@ struct timespec { .\"O .BR pselect () .\"O will then behave just like .\"O .BR select (). -¤³¤Î°ú¤­¿ô¤Ï¡¢¸Æ¤Ó½Ð¤·Â¦¤¬ +この引き数は、呼び出し側が .BR pselect () -ÆâÉô¤ÇÄä»ß¤·¤Æ¤¤¤ë´Ö¤Ë¡¢¥«¡¼¥Í¥ë¤¬ÄÌÃΤòµö²Ä¤¹¤Ù¤­¥·¥°¥Ê¥ë½¸¹ç -(¤¹¤Ê¤ï¤Á¡¢¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤«¤éºï½ü¤¹¤Ù¤­¥·¥°¥Ê¥ë½¸¹ç) -¤òÊÝ»ý¤¹¤ë +内部で停止している間に、カーネルが通知を許可すべきシグナル集合 +(すなわち、呼び出したスレッドのシグナルマスクから削除すべきシグナル集合) +を保持する .RB ( sigaddset (3) -¤È +と .BR sigprocmask (2) -¤ò»²¾È)¡£ -¤³¤Î°ú¤­¿ô¤Ï NULL ¤Ë¤¹¤ë¤³¤È¤â¤Ç¤­¡¢¤½¤Î¾ì¹ç¤Ï¤³¤Î´Ø¿ô¤Ø -Æþ¤ë¤È¤­¡¦½Ð¤ë¤È¤­¤Ë¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊѹ¹¤·¤Ê¤¤¡£ -¤³¤Î¾ì¹ç¡¢ +を参照)。 +この引き数は NULL にすることもでき、その場合はこの関数へ +入るとき・出るときにシグナルマスクを変更しない。 +この場合、 .BR pselect () -¤Ï +は .BR select () -¤ÈÁ´¤¯Æ±¤¸Æ°ºî¤È¤Ê¤ë¡£ +と全く同じ動作となる。 .\"O .SS Combining Signal and Data Events -.SS ¥·¥°¥Ê¥ë¤È¥Ç¡¼¥¿¥¤¥Ù¥ó¥È¤òÁȤ߹ç¤ï¤»¤ë +.SS シグナルとデータイベントを組み合わせる .\"O .BR pselect () .\"O is useful if you are waiting for a signal as well as .\"O for file descriptor(s) to become ready for I/O. @@ -336,15 +336,15 @@ struct timespec { .\"O normally use the signal handler only to raise a global flag. .\"O The global flag will indicate that the event must be processed .\"O in the main loop of the program. -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ I/O ²Äǽ¤Ê¾õÂ֤ˤʤë¤Î¤ÈƱ»þ¤Ë -¥·¥°¥Ê¥ë¤âÂÔ¤Á¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ +ファイルディスクリプタが I/O 可能な状態になるのと同時に +シグナルも待ちたい場合には、 .BR pselect () -¤¬ÊØÍø¤Ç¤¢¤ë¡£ -¥·¥°¥Ê¥ë¤ò¼õ¿®¤¹¤ë¥×¥í¥°¥é¥à¤Ï¡¢Ä̾ï¤Ï¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò¥°¥í¡¼¥Ð¥ë¤Ê¥Õ¥é¥°¤òΩ¤Æ¤ë¤¿¤á¤À¤±¤Ë»È¤¦¡£ -¤³¤Î¥°¥í¡¼¥Ð¥ë¤Ê¥Õ¥é¥°¤Ï¡¢ -¤½¤Î¥¤¥Ù¥ó¥È¤ò¥×¥í¥°¥é¥à¤Î¥á¥¤¥ó¥ë¡¼¥×¤Ç -½èÍý¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤ò¼¨¤¹¡£ +が便利である。 +シグナルを受信するプログラムは、通常は、 +シグナルハンドラをグローバルなフラグを立てるためだけに使う。 +このグローバルなフラグは、 +そのイベントをプログラムのメインループで +処理しなければならないことを示す。 .\"O A signal will cause the .\"O .BR select () .\"O (or @@ -354,16 +354,16 @@ struct timespec { .\"O in the main loop of the program, otherwise .\"O .BR select () .\"O would block indefinitely. -¥·¥°¥Ê¥ë¤ò¼õ¤±¤ë¤È +シグナルを受けると .BR select () -(¤ä +(や .BR pselect ()) -¤Ï -\fIerrno\fP ¤Ë \fBEINTR\fP ¤ò¥»¥Ã¥È¤·¤ÆÌá¤ë¤³¤È¤Ë¤Ê¤ë¡£ -¥·¥°¥Ê¥ë¤¬¥×¥í¥°¥é¥à¤Î¥á¥¤¥ó¥ë¡¼¥×¤Ç½èÍý¤µ¤ì¤ë¤¿¤á¤Ë¤Ï¤³¤ÎÆ°ºî¤¬ÉԲķç¤Ç¡¢ -¤³¤ì¤¬¤Ê¤¤¤È +は +\fIerrno\fP に \fBEINTR\fP をセットして戻ることになる。 +シグナルがプログラムのメインループで処理されるためにはこの動作が不可欠で、 +これがないと .BR select () -¤Ï±Ê±ó¤ËÄä»ß¤·Â³¤±¤ë¤³¤È¤Ë¤Ê¤ë¡£ +は永遠に停止し続けることになる。 .\"O Now, somewhere .\"O in the main loop will be a conditional to check the global flag. .\"O So we must ask: @@ -373,16 +373,16 @@ struct timespec { .\"O The answer is that .\"O .BR select () .\"O would block indefinitely, even though an event is actually pending. -¤µ¤Æ¡¢¥á¥¤¥ó¥ë¡¼¥×¤Î¤É¤³¤«¤Ë¤³¤Î¥°¥í¡¼¥Ð¥ë¥Õ¥é¥°¤ò¥Á¥§¥Ã¥¯¤¹¤ë -¾ò·ïʸ¤¬¤¢¤ë¤È¤·¤è¤¦¡£¤³¤³¤Ç¾¯¤·¹Í¤¨¤Æ¤ß¤Ê¤¤¤È¤¤¤±¤Ê¤¤¡£ -¡Ö¥·¥°¥Ê¥ë¤¬¾ò·ïʸ¤Î¸å¡¢¤·¤«¤· +さて、メインループのどこかにこのグローバルフラグをチェックする +条件文があるとしよう。ここで少し考えてみないといけない。 +「シグナルが条件文の後、しかし .BR select () -¥³¡¼¥ë¤ÎÁ°¤ËÅþÃ夷¤¿¤é -¤É¤¦¤Ê¤ë¤Î¤«¡©¡× -Åú¤¨¤Ï¡Ö¤½¤Î +コールの前に到着したら +どうなるのか?」 +答えは「その .BR select () -¤Ï¡¢¤¿¤È¤¨²ò·èÂÔ¤Á¤Î¥¤¥Ù¥ó¥È¤¬¤¢¤Ã¤¿¤È¤·¤Æ¤â¡¢ -±Ê±ó¤ËÄä»ß¤¹¤ë¡×¤Ç¤¢¤ë¡£ +は、たとえ解決待ちのイベントがあったとしても、 +永遠に停止する」である。 .\"O This race condition is solved by the .\"O .BR pselect () .\"O call. @@ -390,12 +390,12 @@ struct timespec { .\"O that are only to be received within the .\"O .BR pselect () .\"O call. -¤³¤Î¶¥¹ç¾õÂÖ¤Ï +この競合状態は .BR pselect () -¥³¡¼¥ë¤Ë¤è¤Ã¤Æ²ò·è¤Ç¤­¤ë¡£ -¤³¤Î¥³¡¼¥ë¤ò»È¤¦¤È¡¢ +コールによって解決できる。 +このコールを使うと、 .BR pselect () -¤Ç¼õ¿®¤·¤¿¤¤¥·¥°¥Ê¥ë¤Î½¸¹ç¤À¤±¤ò¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ËÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +で受信したいシグナルの集合だけをシグナルマスクに設定することができる。 .\"O For instance, let us say that the event in question .\"O was the exit of a child process. .\"O Before the start of the main loop, we @@ -407,17 +407,17 @@ struct timespec { .\"O .B SIGCHLD .\"O by using an empty signal mask. .\"O Our program would look like: -Î㤨¤Ð¡¢ÌäÂê¤È¤Ê¤Ã¤Æ¤¤¤ë¥¤¥Ù¥ó¥È¤¬»Ò¥×¥í¥»¥¹¤Î½ªÎ»¤Î¾ì¹ç¤ò¹Í¤¨¤è¤¦¡£ -¥á¥¤¥ó¥ë¡¼¥×¤¬»Ï¤Þ¤ëÁ°¤Ë¡¢ +例えば、問題となっているイベントが子プロセスの終了の場合を考えよう。 +メインループが始まる前に、 .B SIGCHLD -¤ò +を .BR sigprocmask (2) -¤Ç¥Ö¥í¥Ã¥¯¤¹¤ë¡£ +でブロックする。 .BR pselect () -¥³¡¼¥ë¤Ç¤Ï +コールでは .B SIGCHLD -¤ò¡¢¤â¤È¤â¤È¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ò»È¤Ã¤ÆÍ­¸ú¤Ë¤¹¤ë¤Î¤À¡£ -¤³¤Î¥×¥í¥°¥é¥à¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¡£ +を、もともとのシグナルマスクを使って有効にするのだ。 +このプログラムは次のようになる。 .PP .nf static volatile sig_atomic_t got_SIGCHLD = 0; @@ -475,7 +475,7 @@ main(int argc, char *argv[]) } .fi .\"O .SS Practical -.SS ¼ÂÎã +.SS 実例 .\"O So what is the point of .\"O .BR select ()? .\"O Can't I just read and write to my descriptors whenever I want? @@ -496,28 +496,28 @@ main(int argc, char *argv[]) .\"O descriptor, while another file descriptor is unused though ready for I/O. .\"O .BR select () .\"O efficiently copes with this situation. -¼ÂºÝ¤Î¤È¤³¤í +実際のところ .BR select () -¤ÎÂç»ö¤ÊÅÀ¤Ï²¿¤Ê¤Î¤«¡© -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¹¥¤­¤Ê¤È¤­¤ËÆɤ߽ñ¤­¤Ç¤­¤ë¤ó¤¸¤ã¤Ê¤¤¤Î¡© +の大事な点は何なのか? +ディスクリプタは好きなときに読み書きできるんじゃないの? .BR select () -¤Î½ÅÍפʤȤ³¤í¤Ï¡¢Ê£¿ô¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òƱ»þ¤Ë´Æ»ë¤Ç¤­¡¢ -¤Ê¤ó¤ÎÆ°¤­¤â¤Ê¤±¤ì¤Ð¥×¥í¥»¥¹¤òŬÀڤ˥¹¥ê¡¼¥×¾õÂ֤˰ܹԤ¹¤ë¤È¤³¤í¤Ë¤¢¤ë¤Î¤À¡£ -UNIX ¥×¥í¥°¥é¥Þ¤Ï¡¢ -Ê£¿ô¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÆþ½ÐÎϤòƱ»þ¤Ë°·¤ï¤Í¤Ð¤Ê¤é¤º¡¢ -¤·¤«¤â¥Ç¡¼¥¿¤Îή¤ì¤Ï´Ö·çŪ¤Ç¤¢¤ë¡¢¤È¤¤¤¦¾õ¶·¤Ë¤è¤¯½Ð²ñ¤¦¡£ -ñ¤Ë +の重要なところは、複数のディスクリプタを同時に監視でき、 +なんの動きもなければプロセスを適切にスリープ状態に移行するところにあるのだ。 +UNIX プログラマは、 +複数のファイルディスクリプタの入出力を同時に扱わねばならず、 +しかもデータの流れは間欠的である、という状況によく出会う。 +単に .BR read (2) -¤ä +や .BR write (2) -¥³¡¼¥ë¤Î¥·¡¼¥±¥ó¥¹¤òºî¤ë¤À¤±¤Ç¤Ï¡¢¤½¤ì¤é¤Î¥³¡¼¥ë¤Î¤É¤ì¤«¤¬ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤é¤Î¥Ç¡¼¥¿¤òÂԤäƥ֥í¥Ã¥¯¤·¤Æ¤ª¤ê¡¢ -Ê̤Υե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤Ï I/O ¤¬²Äǽ¤Ê¤Î¤Ë»È¤¨¤Ê¤¤¡¢ -¤È¤¤¤¦¤³¤È¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤À¤í¤¦¡£ +コールのシーケンスを作るだけでは、それらのコールのどれかが +ファイルディスクリプタからのデータを待ってブロックしており、 +別のファイルディスクリプタには I/O が可能なのに使えない、 +ということになってしまうだろう。 .BR select () -¤ò»È¤¦¤È¤³¤Î¾õ¶·¤Ë¸ú²ÌŪ¤ËÂнè¤Ç¤­¤ë¡£ +を使うとこの状況に効果的に対処できる。 .\"O .SS Select Law -.SS SELECT ¤ÎÙÝ +.SS SELECT の掟 .\"O Many people who try to use .\"O .BR select () .\"O come across behavior that is @@ -531,17 +531,17 @@ UNIX .\"O so here is a list of essentials to watch for when using .\"O .BR select (). .BR select () -¤ò»È¤ª¤¦¤È¤·¤¿Â¿¤¯¤Î¿Í¤Ï¡¢Íý²ò¤·¤Ë¤¯¤¤µóÆ°¤Ë½Ð¤¯¤ï¤·¡¢·ë²ÌŪ¤Ë -¤Ç¤­¤¿¤â¤Î¤Ï°Ü¿¢À­¤¬¤Ê¤¤¤«¡¢¤è¤¯¤Æ¤â¥®¥ê¥®¥ê¤Î¤â¤Î¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¡£ -Î㤨¤Ð¡¢¾åµ­¤Î¥×¥í¥°¥é¥à¤Ï¡¢ -½¸¹ç¤Ë´Þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÈóÄä»ß (nonblocking) ¥â¡¼¥É -¤Ë¤·¤Ê¤¯¤Æ¤â¡¢¤É¤³¤Ë¤â¥Ö¥í¥Ã¥¯¤¬À¸¤¸¤Ê¤¤¤è¤¦Ãí°Õ¤·¤Æ½ñ¤«¤ì¤Æ¤¤¤ë¡£ -Èù̯¤Ê´Ö°ã¤¤¤Ë¤è¤Ã¤Æ¡¢ +を使おうとした多くの人は、理解しにくい挙動に出くわし、結果的に +できたものは移植性がないか、よくてもギリギリのものになってしまう。 +例えば、上記のプログラムは、 +集合に含まれるファイルディスクリプタを非停止 (nonblocking) モード +にしなくても、どこにもブロックが生じないよう注意して書かれている。 +微妙な間違いによって、 .BR select () -¤ò»È¤¦ÍøÅÀ¤Ï´Êñ¤Ë¼º¤ï¤ì¤Æ¤·¤Þ¤¦¡£ -¤½¤³¤Ç¡¢ +を使う利点は簡単に失われてしまう。 +そこで、 .BR select () -¥³¡¼¥ë¤ò»È¤¦¤È¤­¤ËÃí°Õ¤¹¤Ù¤­½ÅÍ×»ö¹à¤òÎóµó¤·¤Æ¤ª¤¯¤³¤È¤Ë¤¹¤ë¡£ +コールを使うときに注意すべき重要事項を列挙しておくことにする。 .TP 4 1. .\"O You should always try to use @@ -552,19 +552,19 @@ UNIX .\"O Code that .\"O depends on timeouts is not usually portable and is difficult to debug. .BR select () -¤ò»È¤¦¤È¤­¤Ï¡¢¥¿¥¤¥à¥¢¥¦¥È¤ÏÀßÄꤹ¤Ù¤­¤Ç¤Ê¤¤¡£ -½èÍý¤¹¤ë¥Ç¡¼¥¿¤¬Ìµ¤¤¤È¤­¤Ë¤Ï¡¢ -¤¢¤Ê¤¿¤Î¥×¥í¥°¥é¥à¤Ë¤Ï²¿¤â¤¹¤ë¤³¤È¤Ï̵¤¤¤Ï¤º¤Ç¤¢¤ë¡£ -¥¿¥¤¥à¥¢¥¦¥È¤Ë°Í¸¤·¤¿¥³¡¼¥É¤ÏÄ̾ï°Ü¿¢À­¤¬¤Ê¤¯¡¢ -¥Ç¥Ð¥Ã¥°¤âÆñ¤·¤¯¤Ê¤ë¡£ +を使うときは、タイムアウトは設定すべきでない。 +処理するデータが無いときには、 +あなたのプログラムには何もすることは無いはずである。 +タイムアウトに依存したコードは通常移植性がなく、 +デバッグも難しくなる。 .TP 2. .\"O The value \fInfds\fP must be properly calculated for efficiency as .\"O explained above. -¾å½Ò¤·¤¿¤è¤¦¤Ë¡¢ -¸úΨŪ¤Ê¥×¥í¥°¥é¥à¤ò½ñ¤¯¤Ë¤Ï +上述したように、 +効率的なプログラムを書くには .I nfds -¤ÎÃͤòŬÀڤ˷׻»¤·¤ÆÍ¿¤¨¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +の値を適切に計算して与えなければならない。 .TP 3. .\"O No file descriptor must be added to any set if you do not intend @@ -573,10 +573,10 @@ UNIX .\"O call, and respond appropriately. .\"O See next rule. .BR select () -¥³¡¼¥ë¤Î½ªÎ»¸å¤Ë·ë²Ì¤ò¥Á¥§¥Ã¥¯¤·¤Æ¡¢ -ŬÀÚ¤ËÂбþ¤¹¤ë¤Ä¤â¤ê¤Î¤Ê¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢ -¤É¤Î½¸¹ç¤Ë¤â²Ã¤¨¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -¼¡¤Î¥ë¡¼¥ë¤â»²¾È¡£ +コールの終了後に結果をチェックして、 +適切に対応するつもりのないファイルディスクリプタは、 +どの集合にも加えてはならない。 +次のルールも参照。 .TP 4. .\"O After @@ -584,8 +584,8 @@ UNIX .\"O returns, all file descriptors in all sets .\"O should be checked to see if they are ready. .BR select () -¤«¤éÊ֤俸å¤Ë¤Ï¡¢Á´¤Æ¤Î½¸¹ç¤ÎÁ´¤Æ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤Ä¤¤¤Æ -Æɤ߽ñ¤­²Äǽ¤Ê¾õÂ֤ˤʤäƤ¤¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +から返った後には、全ての集合の全てのファイルディスクリプタについて +読み書き可能な状態になっているかをチェックすべきである。 .TP 5. .\"O The functions @@ -605,11 +605,11 @@ UNIX .BR recv (2), .BR write (2), .BR send (2) -¤È¤¤¤Ã¤¿´Ø¿ô¤Ï¡¢¤³¤Á¤é¤¬Í׵ᤷ¤¿Á´¥Ç¡¼¥¿¤òÆɤ߽ñ¤­¤¹¤ëɬÍפÏ\fI¤Ê¤¤\fP¡£ -¤â¤·Á´¥Ç¡¼¥¿¤òÆɤ߽ñ¤­¤¹¤ë¤Ê¤é¡¢¤½¤ì¤Ï¥È¥é¥Õ¥£¥Ã¥¯¤ÎÉé²Ù¤¬¾®¤µ¤¯¡¢ -¥¹¥È¥ê¡¼¥à¤¬Â®¤¤¾ì¹ç¤À¤í¤¦¡£¤³¤Î¾ò·ï¤Ï¾ï¤ËËþ¤¿¤µ¤ì¤ë¤È¤Ï¸Â¤é¤Ê¤¤¡£ -¤³¤ì¤é¤Î´Ø¿ô¤¬´èÄ¥¤Ã¤Æ¤â 1 ¥Ð¥¤¥È¤·¤«Á÷¼õ¿®¤Ç¤­¤Ê¤¤¤è¤¦¤Ê¾ì¹ç¤â -¹Íθ¤ËÆþ¤ì¤Æ¤ä¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +といった関数は、こちらが要求した全データを読み書きする必要は\fIない\fP。 +もし全データを読み書きするなら、それはトラフィックの負荷が小さく、 +ストリームが速い場合だろう。この条件は常に満たされるとは限らない。 +これらの関数が頑張っても 1 バイトしか送受信できないような場合も +考慮に入れてやらなければならない。 .TP 6. .\"O Never read/write only in single bytes at a time unless you are really @@ -618,11 +618,11 @@ UNIX .\"O inefficient not to read/write as much data as you can buffer each time. .\"O The buffers in the example below are 1024 bytes although they could .\"O easily be made larger. -½èÍý¤¹¤ë¥Ç¡¼¥¿Î̤¬¾®¤µ¤¤¤³¤È¤¬¤Ï¤Ã¤­¤ê¤È¤ï¤«¤Ã¤Æ¤¤¤ë¾ì¹ç¤ò½ü¤¤¤Æ¡¢ -°ìÅÙ¤Ë 1 ¥Ð¥¤¥È¤º¤ÄÆɤ߽ñ¤­¤¹¤ë¤è¤¦¤Ê¤³¤È¤Ï¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -¥Ð¥Ã¥Õ¥¡¤Îµö¤¹¤«¤®¤ê¤Î¥Ç¡¼¥¿¤ò¤Þ¤È¤á¤ÆÆɤ߽ñ¤­¤·¤Ê¤¤¤È¡¢ -Èó¾ï¤Ë¸úΨ¤¬°­¤¤¡£²¼µ­¤ÎÎã¤Ç¤Ï¥Ð¥Ã¥Õ¥¡¤Ï 1024 ¥Ð¥¤¥È¤Ë¤·¤Æ¤¤¤ë¤¬¡¢ -¤³¤Î¥µ¥¤¥º¤òÂ礭¤¯¤¹¤ë¤Î¤Ï´Êñ¤À¤í¤¦¡£ +処理するデータ量が小さいことがはっきりとわかっている場合を除いて、 +一度に 1 バイトずつ読み書きするようなことはしてはならない。 +バッファの許すかぎりのデータをまとめて読み書きしないと、 +非常に効率が悪い。下記の例ではバッファは 1024 バイトにしているが、 +このサイズを大きくするのは簡単だろう。 .TP 7. .\"O The functions @@ -649,24 +649,24 @@ UNIX .BR recv (2), .BR write (2), .BR send (2) -¤Ê¤É¤Î´Ø¿ô¤ä +などの関数や .BR select () -¥³¡¼¥ë¤Ï¡¢ +コールは、 .I errno -¤ò -.B EINTR " ¤ä " EAGAIN +を +.B EINTR " や " EAGAIN .RB ( EWOULDBLOCK ) -¤Ë¤·¤Æ \-1 ¤òÊÖ¤¹¤³¤È¤¬¤¢¤ë¡£ -¤³¤Î¤è¤¦¤Ê·ë²Ì¤ËÂФ·¤ÆŬÀÚ¤ËÂбþ¤·¤Æ¤ä¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(¾åµ­¤ÎÎã¤Ç¤Ï¤·¤Æ¤¤¤Ê¤¤)¡£ -½ñ¤¤¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤¬¥·¥°¥Ê¥ë¤ò¼õ¤±¤ëͽÄ꤬¤Ê¤±¤ì¤Ð¡¢ +にして \-1 を返すことがある。 +このような結果に対して適切に対応してやらなければならない +(上記の例ではしていない)。 +書いているプログラムがシグナルを受ける予定がなければ、 .B EINTR -¤¬ÊÖ¤µ¤ì¤ë¤³¤È¤Ï¤¢¤Þ¤ê¹Í¤¨¤é¤ì¤Ê¤¤¡£ -½ñ¤¤¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤ÇÈó¥Ö¥í¥Ã¥¯ I/O ¤ò¥»¥Ã¥È¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢ +が返されることはあまり考えられない。 +書いているプログラムで非ブロック I/O をセットしていない場合は、 .B EAGAIN -¤¬ÊÖ¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¤À¤í¤¦¡£ -.\" ¤½¤ì¤Ç¤â¤Ê¤ª¡¢´°Á´¤ò´ü¤¹¤ë¤Ê¤é¤Ð¡¢ -.\" ¤³¤ì¤é¤Î¥¨¥é¡¼¤ò¹Íθ¤ËÆþ¤ì¤ëɬÍפ¬¤¢¤ë¡£ +が返されることはないだろう。 +.\" それでもなお、完全を期するならば、 +.\" これらのエラーを考慮に入れる必要がある。 .TP 8. .\"O Never call @@ -676,12 +676,12 @@ UNIX .\"O or .\"O .BR send (2) .\"O with a buffer length of zero. -·è¤·¤Æ¡¢°ú¤­¿ô¤ËŤµ 0 ¤Î¥Ð¥Ã¥Õ¥¡¤ò»ØÄꤷ¤Æ +決して、引き数に長さ 0 のバッファを指定して .BR read (2), .BR recv (2), .BR write (2), .BR send (2) -¤ò¸Æ¤Ó½Ð¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +を呼び出してはならない。 .TP 9. .\"O If the functions @@ -702,13 +702,13 @@ UNIX .BR recv (2), .BR write (2), .BR send (2) -¤¬ -\fB7.\fP ¤Ë¼¨¤·¤¿°Ê³°¤Î¥¨¥é¡¼¤Ç¼ºÇÔ¤·¤¿¾ì¹ç¤ä¡¢ -ÆþÎϷϤδؿô¤Î°ì¤Ä¤¬¥Õ¥¡¥¤¥ëËöÈø¤òɽ¤¹ 0 ¤òÊÖ¤·¤¿¾ì¹ç¤Ï¡¢ -¤½¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¤â¤¦°ìÅÙ select ¤ËÅϤ·¤Æ¤Ï\fI¤Ê¤é¤Ê¤¤\fP¡£ -²¼µ­¤ÎÎã¤Ç¤Ï¡¢¤½¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¤¿¤À¤Á¤Ë¥¯¥í¡¼¥º¤·¡¢ -¤½¤³¤Ë¤Ï \-1 ¤ò¥»¥Ã¥È¤·¤Æ¡¢ -¤½¤ì¤¬½¸¹ç¤Ë´Þ¤Þ¤ì³¤±¤ë¤Î¤òµö¤µ¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¤¤ë¡£ +が +\fB7.\fP に示した以外のエラーで失敗した場合や、 +入力系の関数の一つがファイル末尾を表す 0 を返した場合は、 +そのディスクリプタをもう一度 select に渡しては\fIならない\fP。 +下記の例では、そのディスクリプタをただちにクローズし、 +そこには \-1 をセットして、 +それが集合に含まれ続けるのを許さないようにしている。 .TP 10. .\"O The timeout value must be initialized with each new call to @@ -716,13 +716,13 @@ UNIX .\"O since some operating systems modify the structure. .\"O .BR pselect () .\"O however does not modify its timeout structure. -¥¿¥¤¥à¥¢¥¦¥È¤ÎÃÍ¤Ï +タイムアウトの値は .BR select () -¤ò¸Æ¤Ö¤¿¤Ó¤Ë½é´ü²½¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -OS ¤Ë¤è¤Ã¤Æ¤Ï timeout ¹½Â¤ÂΤ¬Êѹ¹¤µ¤ì¤ë¾ì¹ç¤¬¤¢¤ë¤«¤é¤Ç¤¢¤ë¡£ -⤷¡¢ +を呼ぶたびに初期化すべきである。 +OS によっては timeout 構造体が変更される場合があるからである。 +但し、 .BR pselect () -¤Ï¼«Ê¬¤Î timeout ¹½Â¤ÂΤòÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ê¤¤¡£ +は自分の timeout 構造体を変更することはない。 .TP 11. .\"O Since @@ -731,10 +731,10 @@ OS .\"O if the call is being used in a loop, .\"O then the sets must be reinitialized before each call. .BR select () -¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤òÊѹ¹¤¹¤ë¤Î¤Ç¡¢ +はファイルディスクリプタ集合を変更するので、 .BR select () -¤¬¥ë¡¼¥×¤ÎÃæ¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·¤ò¹Ô¤¦Á°¤ËËè²ó -¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤ò½é´ü²½¤·Ä¾¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +がループの中で使用されている場合には、呼び出しを行う前に毎回 +ディスクリプタ集合を初期化し直さなければならない。 .\" "I have heard" does not fill me with confidence, and doesn't .\" belong in a man page, so I've commented this point out. .\" .TP @@ -747,16 +747,16 @@ OS .\"O .\" Having no file descriptors set is a useful .\"O .\" way to sleep the process with subsecond precision by using the timeout. .\"O .\" (See further on.) -.\" ʹ¤¤¤¿¤È¤³¤í¤Ç¤Ï¡¢Windows ¤Î¥½¥±¥Ã¥ÈÁØ¤Ï -.\" OOB ¥Ç¡¼¥¿¤òÀµ¤·¤¯½èÍý¤·¤Ê¤¤¤é¤·¤¤¡£ -.\" ¤Þ¤¿¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Á´¤¯¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤è¤¦¤Ê +.\" 聞いたところでは、Windows のソケット層は +.\" OOB データを正しく処理しないらしい。 +.\" また、ファイルディスクリプタが全くセットされていないような .\" .BR select () -.\" ¥³¡¼¥ë¤âÀµ¤·¤¯½èÍý¤·¤Ê¤¤¤é¤·¤¤¡£ -.\" ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò°ìÀÚÀßÄꤷ¤Ê¤¤¤Ç timeout ¤ò»È¤¦¤ä¤êÊý¤Ï¡¢ -.\" 1 Éðʲ¼¤ÎÀºÅÙ¤Ç¥×¥í¥»¥¹¤ò¥¹¥ê¡¼¥×¤µ¤»¤ë¤Ë¤ÏÊØÍø¤ÊÊýË¡¤Ê¤Î¤À¤¬ -.\" (³¤­¤ò¸«¤è)¡£ +.\" コールも正しく処理しないらしい。 +.\" ファイルディスクリプタを一切設定しないで timeout を使うやり方は、 +.\" 1 秒以下の精度でプロセスをスリープさせるには便利な方法なのだが +.\" (続きを見よ)。 .\"O .SS Usleep Emulation -.SS usleep ¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó +.SS usleep エミュレーション .\"O On systems that do not have a .\"O .BR usleep (3) .\"O function, you can call @@ -764,11 +764,11 @@ OS .\"O with a finite timeout and no file descriptors as .\"O follows: .BR usleep (3) -´Ø¿ô¤ò»ý¤¿¤Ê¤¤¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -Í­¸Â¤Î¥¿¥¤¥à¥¢¥¦¥È¤ò»ØÄꤷ¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÁ´¤¯¥»¥Ã¥È¤»¤º¤Ë +関数を持たないシステムでは、 +有限のタイムアウトを指定し、ファイルディスクリプタを全くセットせずに .BR select () -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¡¢¤³¤ì¤òÂåÍѤǤ­¤ë¡£ -°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë¡£ +を呼び出すことで、これを代用できる。 +以下のようにする。 .PP .nf struct timeval tv; @@ -778,17 +778,17 @@ OS .fi .PP .\"O This is only guaranteed to work on UNIX systems, however. -⤷¡¢¤³¤ì¤¬Æ°¤¯¤ÈÊݾڤµ¤ì¤Æ¤¤¤ë¤Î¤Ï UNIX ¥·¥¹¥Æ¥à¤Ë¸Â¤é¤ì¤ë¡£ +但し、これが動くと保証されているのは UNIX システムに限られる。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR select () .\"O returns the total number of file descriptors .\"O still present in the file descriptor sets. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR select () -¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤Ë»Ä¤Ã¤Æ¤¤¤ë -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÁí¿ô¤òÊÖ¤¹¡£ +はファイルディスクリプタ集合に残っている +ファイルディスクリプタの総数を返す。 .\"O If .\"O .BR select () @@ -796,9 +796,9 @@ OS .\"O The file descriptors set should be all .\"O empty (but may not be on some systems). .BR select () -¤¬¥¿¥¤¥à¥¢¥¦¥È¤¹¤ë¤È¡¢ÊÖ¤êÃÍ¤Ï 0 ¤Ë¤Ê¤ë¡£ -¤½¤Î»þ¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤Ï¤¹¤Ù¤Æ¶õ¤Ç¤¢¤ë -(¤·¤«¤·¤½¤¦¤Ê¤é¤Ê¤¤¥·¥¹¥Æ¥à¤â¤¢¤ë)¡£ +がタイムアウトすると、返り値は 0 になる。 +その時、ファイルディスクリプタ集合はすべて空である +(しかしそうならないシステムもある)。 .\"O A return value of \-1 indicates an error, with \fIerrno\fP being .\"O set appropriately. @@ -806,18 +806,18 @@ OS .\"O the \fIstruct timeout\fP contents are undefined and should not be used. .\"O .BR pselect () .\"O however never modifies \fIntimeout\fP. -ÊÖ¤êÃͤ¬ \-1 ¤Î¾ì¹ç¤Ï¥¨¥é¡¼¤ò°ÕÌ£¤·¡¢ +返り値が \-1 の場合はエラーを意味し、 .I errno -¤¬Å¬Àڤ˥»¥Ã¥È¤µ¤ì¤ë¡£¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢ -ÊÖ¤µ¤ì¤¿½¸¹ç¤ÎÆâÍƤ乽¤ÂÎ \fIstruct timeout\fP ¤ÎÆâÍÆ¤Ï -̤ÄêµÁ¤È¤Ê¤Ã¤Æ¤ª¤ê¡¢»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¤·¤«¤· +が適切にセットされる。エラーが起こった場合、 +返された集合の内容や構造体 \fIstruct timeout\fP の内容は +未定義となっており、使用すべきではない。 +しかし .BR pselect () -¤Ï·è¤·¤Æ +は決して .I ntimeout -¤òÊѹ¹¤·¤Ê¤¤¡£ +を変更しない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Generally speaking, .\"O all operating systems that support sockets also support .\"O .BR select (). @@ -826,13 +826,13 @@ OS .\"O many problems in a portable and efficient way that naive programmers try .\"O to solve in a more complicated manner using .\"O threads, forking, IPCs, signals, memory sharing, and so on. -°ìÈÌŪ¤Ë¸À¤Ã¤Æ¡¢¥½¥±¥Ã¥È¤ò¥µ¥Ý¡¼¥È¤¹¤ëÁ´¤Æ¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ï +一般的に言って、ソケットをサポートする全てのオペレーティングシステムは .BR select () -¤â¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ +もサポートしている。 .BR select () -¤ò»È¤¦¤È¡¢¥×¥í¥°¥é¥Þ¤¬¥¹¥ì¥Ã¥É¡¢¥Õ¥©¡¼¥¯¡¢IPC¡¢¥·¥°¥Ê¥ë¡¢¥á¥â¥ê¶¦Í­¡¢ -Åù¡¹¤ò»È¤Ã¤Æ¤â¤Ã¤ÈÊ£»¨¤ÊÊýË¡¤Ç²ò·è¤·¤è¤¦¤È¤¹¤ë¿¤¯¤ÎÌäÂ꤬¡¢ -°Ü¿¢À­¤¬¤¢¤ê¤«¤Ä¸úΨŪ¤ÊÊýË¡¤Ç²ò·è¤Ç¤­¤ë¡£ +を使うと、プログラマがスレッド、フォーク、IPC、シグナル、メモリ共有、 +等々を使ってもっと複雑な方法で解決しようとする多くの問題が、 +移植性がありかつ効率的な方法で解決できる。 .PP .\"O The .\"O .BR poll (2) @@ -843,14 +843,14 @@ OS .\"O It is nowadays widely available, but historically was less portable than .\"O .BR select (). .BR poll (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +システムコールは .BR select () -¤ÈƱ¤¸µ¡Ç½¤ò»ý¤Ã¤Æ¤ª¤ê¡¢ -¤Þ¤Ð¤é¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤ò´Æ»ë¤¹¤ë¾ì¹ç¤Ë -¤¤¤¯¤é¤«¸úΨ¤¬¤è¤¤¡£ -¸½ºß¤Ç¤Ï¹­¤¯ÍøÍѲÄǽ¤Ç¤¢¤ë¤¬¡¢°ÊÁ°¤Ï +と同じ機能を持っており、 +まばらなファイルディスクリプタ集合を監視する場合に +いくらか効率がよい。 +現在では広く利用可能であるが、以前は .BR select () -¤è¤ê°Ü¿¢À­¤ÎÌ̤ÇÎô¤Ã¤Æ¤¤¤¿¡£ +より移植性の面で劣っていた。 .PP .\"O The Linux-specific .\"O .BR epoll (7) @@ -859,23 +859,23 @@ OS .\"O and .\"O .BR poll (2) .\"O when monitoring large numbers of file descriptors. -Linux Æȼ«¤Î +Linux 独自の .BR epoll (7) -API ¤Ï¡¢Â¿¿ô¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò´Æ»ë¤¹¤ë¾ì¹ç¤Ë +API は、多数のファイルディスクリプタを監視する場合に .BR select (2) -¤ä +や .BR poll (2) -¤è¤ê¤â¸úΨŪ¤Ê¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤·¤Æ¤¤¤ë¡£ +よりも効率的なインタフェースを提供している。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O Here is an example that better demonstrates the true utility of .\"O .BR select (). .\"O The listing below a TCP forwarding program that forwards .\"O from one TCP port to another. .BR select () -¤ÎËÜÅö¤ËÊØÍø¤ÊÅÀ¤ò¼¨¤¹¡¢¤è¤¤Îã¤ò¾Ò²ð¤¹¤ë¡£ -°Ê²¼¤Î¥ê¥¹¥È¤Ï¡¢¤¢¤ë TCP ¥Ý¡¼¥È¤«¤éÊ̤Υݡ¼¥È¤ØžÁ÷¤ò¹Ô¤¦ -TCP ¥Õ¥©¥ï¡¼¥É¥×¥í¥°¥é¥à¤Ç¤¢¤ë¡£ +の本当に便利な点を示す、よい例を紹介する。 +以下のリストは、ある TCP ポートから別のポートへ転送を行う +TCP フォワードプログラムである。 .PP .nf #include @@ -1155,30 +1155,30 @@ main(int argc, char *argv[]) .\"O .BR fcntl (2). .\"O This also has its problems because you end up using .\"O inefficient timeouts. -¾åµ­¤Î¥×¥í¥°¥é¥à¤Ï¡¢¤Û¤È¤ó¤É¤Î¼ïÎà¤Î TCP Àܳ¤ò¥Õ¥©¥ï¡¼¥É¤¹¤ë¡£ +上記のプログラムは、ほとんどの種類の TCP 接続をフォワードする。 .B telnet -¥µ¡¼¥Ð¤Ë¤è¤Ã¤ÆÃæ·Ñ¤µ¤ì¤ë OOB ¥·¥°¥Ê¥ë¥Ç¡¼¥¿¤â°·¤¨¤ë¡£ -¤³¤Î¥×¥í¥°¥é¥à¤Ï¡¢¥Ç¡¼¥¿¥Õ¥í¡¼¤òÁÐÊý¸þ¤ËƱ»þ¤ËÁ÷¤ë¤È¤¤¤¦¡¢ -¤ä¤ä¤³¤·¤¤ÌäÂê¤â½èÍý¤Ç¤­¤ë¡£ +サーバによって中継される OOB シグナルデータも扱える。 +このプログラムは、データフローを双方向に同時に送るという、 +ややこしい問題も処理できる。 .BR fork (2) -¥³¡¼¥ë¤ò»È¤Ã¤Æ¡¢³Æ¥¹¥È¥ê¡¼¥à¤´¤È¤ËÀìÍѤΥ¹¥ì¥Ã¥É¤òÍѤ¤¤ë¤Û¤¦¤¬¸úΨŪ¤À¡¢ -¤È¤¤¤¦¿Í¤â¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£¤·¤«¤·¡¢¤³¤ì¤Ï¹Í¤¨¤Æ¤¤¤ë¤è¤ê¤º¤Ã¤È¤ä¤ä¤³¤·¤¤¡£ -¤¢¤ë¤¤¤Ï¡¢ +コールを使って、各ストリームごとに専用のスレッドを用いるほうが効率的だ、 +という人もいるかもしれない。しかし、これは考えているよりずっとややこしい。 +あるいは、 .BR fcntl (2) -¤ò»È¤Ã¤ÆÈó¥Ö¥í¥Ã¥¯ I/O ¤ò¥»¥Ã¥È¤¹¤ì¤ÐÎɤ¤¡¢¤È¤¤¤¦¥¢¥¤¥Ç¥¢¤â¤¢¤ë¤À¤í¤¦¡£ -¤³¤ì¤Ë¤â¼ÂºÝ¤Ë¤ÏÌäÂ꤬¤¢¤ê¡¢¥¿¥¤¥à¥¢¥¦¥È¤¬Èó¸úΨŪ¤Ëµ¯¤³¤Ã¤Æ¤·¤Þ¤¦¡£ +を使って非ブロック I/O をセットすれば良い、というアイデアもあるだろう。 +これにも実際には問題があり、タイムアウトが非効率的に起こってしまう。 .\"O The program does not handle more than one simultaneous connection at a .\"O time, although it could easily be extended to do this with a linked list .\"O of buffers\(emone for each connection. .\"O At the moment, new .\"O connections cause the current connection to be dropped. -¤³¤Î¥×¥í¥°¥é¥à¤Ï°ìÅ٤ˤҤȤİʾå¤ÎƱ»þÀܳ¤ò°·¤¦¤³¤È¤Ï¤Ç¤­¤Ê¤¤¤¬¡¢ -¤½¤ÎÍͤ˳ÈÄ¥¤¹¤ë¤Î¤Ï´Êñ¤Ç¡¢¥Ð¥Ã¥Õ¥¡¤Î¥ê¥ó¥¯¥ê¥¹¥È¤ò -(Àܳ¤´¤È¤Ë¤Ò¤È¤Ä¤º¤Ä) »È¤¨¤Ð¤è¤¤¡£ -¸½»þÅÀ¤Î¤â¤Î¤Ç¤Ï¡¢¿·¤·¤¤Àܳ¤¬¤¯¤ë¤È¸Å¤¤Àܳ¤ÏÍî¤Á¤Æ¤·¤Þ¤¦¡£ +このプログラムは一度にひとつ以上の同時接続を扱うことはできないが、 +その様に拡張するのは簡単で、バッファのリンクリストを +(接続ごとにひとつずつ) 使えばよい。 +現時点のものでは、新しい接続がくると古い接続は落ちてしまう。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR accept (2), .BR connect (2), .BR ioctl (2), diff --git a/draft/man2/semctl.2 b/draft/man2/semctl.2 index 7c3b3bed..2811633a 100644 --- a/draft/man2/semctl.2 +++ b/draft/man2/semctl.2 @@ -45,27 +45,27 @@ .\" Updated & Modified 2005-01-03, Yuichi SATO .\" Updated & Modified 2005-10-10, Akihiro MOTOKI .\" -.\"WORD: semaphore ¥»¥Þ¥Õ¥© -.\"WORD: semaphore set ¥»¥Þ¥Õ¥©½¸¹ç -.\"WORD: union ¶¦ÍÑÂÎ -.\"WORD: buffer ¥Ð¥Ã¥Õ¥¡ -.\"WORD: member ¥á¥ó¥Ð¡¼ -.\"WORD: superuser ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶ -.\"WORD: effective uid ¼Â¸ú¥æ¡¼¥¶ ID -.\"WORD: creator ºîÀ®¼Ô -.\"WORD: owner ½êÍ­¼Ô -.\"WORD: entry ¥¨¥ó¥È¥ê -.\"WORD: undo ¥¢¥ó¥É¥¥ -.\"WORD: implement ¼ÂÁõ -.\"WORD: feature test macro µ¡Ç½¸¡ºº¥Þ¥¯¥í +.\"WORD: semaphore セマフォ +.\"WORD: semaphore set セマフォ集合 +.\"WORD: union 共用体 +.\"WORD: buffer バッファ +.\"WORD: member メンバー +.\"WORD: superuser スーパー・ユーザ +.\"WORD: effective uid 実効ユーザ ID +.\"WORD: creator 作成者 +.\"WORD: owner 所有者 +.\"WORD: entry エントリ +.\"WORD: undo アンドゥ +.\"WORD: implement 実装 +.\"WORD: feature test macro 機能検査マクロ .\" .TH SEMCTL 2 2009-09-27 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O semctl \- semaphore control operations -semctl \- ¥»¥Þ¥Õ¥©¤ÎÀ©¸æÁàºî¤ò¹Ô¤Ê¤¦ +semctl \- セマフォの制御操作を行なう .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -74,7 +74,7 @@ semctl \- .BI "int semctl(int " semid ", int " semnum ", int " cmd ", ...);" .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR semctl () .\"O performs the control operation specified by .\"O .I cmd @@ -85,43 +85,43 @@ semctl \- .\"O semaphore of that set. .\"O (The semaphores in a set are numbered starting at 0.) .BR semctl () -¤Ï¡¢ +は、 .I semid -¤Ç»ØÄꤵ¤ì¤¿¥»¥Þ¥Õ¥©½¸¹ç (semaphore set) -¤Þ¤¿¤Ï¥»¥Þ¥Õ¥©½¸¹ç¤Î +で指定されたセマフォ集合 (semaphore set) +またはセマフォ集合の .I semnun -ÈÖÌܤΥ»¥Þ¥Õ¥©¤ËÂФ·¤Æ¡¢ +番目のセマフォに対して、 .I cmd -¤Ç»ØÄꤵ¤ì¤¿À©¸æÁàºî¤ò¹Ô¤Ê¤¦ -(½¸¹çÆâ¤Î¥»¥Þ¥Õ¥©¤ÎÈÖ¹æ¤Ï 0 ¤«¤é»Ï¤Þ¤ë)¡£ +で指定された制御操作を行なう +(集合内のセマフォの番号は 0 から始まる)。 .PP .\"O This function has three or four arguments, depending on .\"O .IR cmd . .\"O When there are four, the fourth has the type .\"O .IR "union semun" . .\"O The \fIcalling program\fP must define this union as follows: -¤³¤Î´Ø¿ô¤Ï¡¢ +この関数は、 .I cmd -¤ÎÃͤ˰͸¤·¤Æ¡¢3 ¸Ä¤Þ¤¿¤Ï 4 ¸Ä¤Î°ú¤­¿ô¤ò»ý¤Ä¡£ -°ú¤­¿ô¤¬ 4 ¸Ä¤Î¾ì¹ç¡¢Âè 4 °ú¤­¿ô¤Î·¿¤Ï +の値に依存して、3 個または 4 個の引き数を持つ。 +引き数が 4 個の場合、第 4 引き数の型は .I "union semun" -¤Ç¤¢¤ë¡£ -\fI¸Æ¤Ó½Ð¤·¸µ¥×¥í¥°¥é¥à\fP¤Ï¡¢ -¤³¤Î¶¦ÍÑÂÎ (union) ¤ò°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +である。 +\fI呼び出し元プログラム\fPは、 +この共用体 (union) を以下のように定義しなければならない。 .nf .in +4n union semun { .\"O int val; /* Value for SETVAL */ - int val; /* SETVAL ¤ÎÃÍ */ + int val; /* SETVAL の値 */ .\"O struct semid_ds *buf; /* Buffer for IPC_STAT, IPC_SET */ - struct semid_ds *buf; /* IPC_STAT, IPC_SET ÍѤΥХåե¡ */ + struct semid_ds *buf; /* IPC_STAT, IPC_SET 用のバッファ */ .\"O unsigned short *array; /* Array for GETALL, SETALL */ - unsigned short *array; /* GETALL, SETALL ÍѤÎÇÛÎó */ + unsigned short *array; /* GETALL, SETALL 用の配列 */ .\"O struct seminfo *__buf; /* Buffer for IPC_INFO .\"O (Linux-specific) */ - struct seminfo *__buf; /* IPC_INFO ÍѤΥХåե¡ - (Linux ¸ÇÍ­) */ + struct seminfo *__buf; /* IPC_INFO 用のバッファ + (Linux 固有) */ }; .in .fi @@ -130,19 +130,19 @@ union semun { .\"O .I semid_ds .\"O data structure is defined in \fI\fP as follows: .I semid_ds -¥Ç¡¼¥¿¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +データ構造体は \fI\fP で以下のように定義されている: .nf .in +4n struct semid_ds { .\"O struct ipc_perm sem_perm; /* Ownership and permissions */ - struct ipc_perm sem_perm; /* ½êÍ­¸¢¤Èµö²Ä */ + struct ipc_perm sem_perm; /* 所有権と許可 */ .\"O time_t sem_otime; /* Last semop time */ - time_t sem_otime; /* ºÇ¸å¤Î semop ¤Î»þ¹ï */ + time_t sem_otime; /* 最後の semop の時刻 */ .\"O time_t sem_ctime; /* Last change time */ - time_t sem_ctime; /* ºÇ¸å¤ËÊѹ¹¤¬¹Ô¤ï¤ì¤¿»þ¹ï */ + time_t sem_ctime; /* 最後に変更が行われた時刻 */ .\"O unsigned short sem_nsems; /* No. of semaphores in set */ - unsigned short sem_nsems; /* ½¸¹çÆâ¤Î¥»¥Þ¥Õ¥©¤Î¿ô */ + unsigned short sem_nsems; /* 集合内のセマフォの数 */ }; .fi .PP @@ -155,10 +155,10 @@ struct semid_ds { .\"O (the highlighted fields are settable using .\"O .BR IPC_SET ): .I ipc_perm -¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë -(¶¯Ä´¤µ¤ì¤¿¥Õ¥£¡¼¥ë¥É¤Ï +構造体は \fI\fP で以下のように定義されている +(強調されたフィールドは .B IPC_SET -¤ò»È¤Ã¤ÆÀßÄê²Äǽ¤Ç¤¢¤ë): +を使って設定可能である): .PP .nf .in +4n @@ -168,15 +168,15 @@ struct ipc_perm { .\"O gid_t \fBgid\fP; /* Effective GID of owner */ .\"O uid_t cuid; /* Effective UID of creator */ .\"O gid_t cgid; /* Effective GID of creator */ - key_t __key; /* semget(2) ¤ËÍ¿¤¨¤é¤ì¤ë¥­¡¼ */ - uid_t \fBuid\fP; /* ½êÍ­¼Ô (owner) ¤Î¼Â¸ú UID */ - gid_t \fBgid\fP; /* ½êÍ­¼Ô¤Î¼Â¸ú GID */ - uid_t cuid; /* ºîÀ®¼Ô (creator) ¤Î¼Â¸ú UID */ - gid_t cgid; /* ºîÀ®¼Ô¤Î¼Â¸ú GID */ + key_t __key; /* semget(2) に与えられるキー */ + uid_t \fBuid\fP; /* 所有者 (owner) の実効 UID */ + gid_t \fBgid\fP; /* 所有者の実効 GID */ + uid_t cuid; /* 作成者 (creator) の実効 UID */ + gid_t cgid; /* 作成者の実効 GID */ .\"O unsigned short \fBmode\fP; /* Permissions */ - unsigned short \fBmode\fP; /* µö²Ä */ + unsigned short \fBmode\fP; /* 許可 */ .\"O unsigned short __seq; /* Sequence number */ - unsigned short __seq; /* ¥·¡¼¥±¥ó¥¹ÈÖ¹æ */ + unsigned short __seq; /* シーケンス番号 */ }; .in .fi @@ -185,7 +185,7 @@ struct ipc_perm { .\"O .I cmd .\"O are: .I cmd -¤È¤·¤ÆÍ­¸ú¤ÊÃÍ¤Ï +として有効な値は .TP 10 .B IPC_STAT .\"O Copy information from the kernel data structure associated with @@ -195,19 +195,19 @@ struct ipc_perm { .\"O structure pointed to by .\"O .IR arg.buf . .I semid -¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥«¡¼¥Í¥ë¥Ç¡¼¥¿¹½Â¤ÂΤξðÊó¤ò +に関連づけられたカーネルデータ構造体の情報を .I arg.buf -¤Ç»Ø¤µ¤ì¤¿ +で指された .I semid_ds -¹½Â¤ÂΤإ³¥Ô¡¼¤¹¤ë¡£ +構造体へコピーする。 .\"O The argument .\"O .I semnum .\"O is ignored. .\"O The calling process must have read permission on the semaphore set. .I semnum -°ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤ËÂФ¹¤ë -Æɤ߹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数は無視される。 +呼び出したプロセスはそのセマフォ集合に対する +読み込み許可を持たなければならない。 .TP .B IPC_SET .\"O Write the values of some members of the @@ -218,37 +218,37 @@ struct ipc_perm { .\"O updating also its .\"O .I sem_ctime .I arg.buf -¤Ç»ØÄꤵ¤ì¤¿ +で指定された .I semid_ds -¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤Î¤¤¤¯¤Ä¤«¤ÎÃͤò¡¢ -¤³¤Î¥»¥Þ¥Õ¥©¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥«¡¼¥Í¥ë¥Ç¡¼¥¿¹½Â¤ÂΤ˽ñ¤­¹þ¤ß¡¢ +構造体のメンバーのいくつかの値を、 +このセマフォに関連づけられたカーネルデータ構造体に書き込み、 .I sem_ctime -¥á¥ó¥Ð¡¼¤ÎÃͤ⹹¿·¤¹¤ë¡£ +メンバーの値も更新する。 .\"O The following members of the structure are updated: .\"O .IR sem_perm.uid , .\"O .IR sem_perm.gid , .\"O and (the least significant 9 bits of) .\"O .IR sem_perm.mode . -¹½Â¤ÂΤΰʲ¼¤Î¥á¥ó¥Ð¡¼¤¬¹¹¿·¤µ¤ì¤ë: +構造体の以下のメンバーが更新される: .IR sem_perm.uid , .IR sem_perm.gid , .I sem_perm.mode -(¤ÎºÇ²¼°Ì 9 ¥Ó¥Ã¥È)¡£ +(の最下位 9 ビット)。 .\"O The effective UID of the calling process must match the owner .\"O .RI ( sem_perm.uid ) .\"O or creator .\"O .RI ( sem_perm.cuid ) .\"O of the semaphore set, or the caller must be privileged. -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú UID ¤¬½êÍ­¼Ô +呼び出したプロセスの実効 UID が所有者 .RI ( sem_perm.uid ) -¤Þ¤¿¤ÏºîÀ®¼Ô +または作成者 .RI ( sem_perm.cuid ) -¤È°ìÃפ¹¤ë¤«¡¢¸Æ¤Ó½Ð¤·¤¿¿Í¤¬Æø¢¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +と一致するか、呼び出した人が特権を持たなければならない。 .\"O The argument .\"O .I semnum .\"O is ignored. .I semnum -°ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ +引き数は無視される。 .TP .B IPC_RMID .\"O Immediately remove the semaphore set, @@ -258,34 +258,34 @@ struct ipc_perm { .\"O .I errno .\"O set to .\"O .BR EIDRM ). -¥»¥Þ¥Õ¥©½¸¹ç¤ò¤¿¤À¤Á¤Ëºï½ü¤·¡¢¤½¤Î½¸¹ç¾å¤Î +セマフォ集合をただちに削除し、その集合上の .BR semop (2) -¥³¡¼¥ë¤Ç¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¥×¥í¥»¥¹¤òÌܳФᤵ¤»¤ë -(¥¨¥é¡¼Ãͤ¬ÊÖ¤µ¤ì¤Æ¡¢ +コールでブロックされている全てのプロセスを目覚めさせる +(エラー値が返されて、 .I errno -¤Ë +に .B EIDRM -¤¬ÀßÄꤵ¤ì¤ë)¡£ +が設定される)。 .\"O The effective user ID of the calling process must .\"O match the creator or owner of the semaphore set, .\"O or the caller must be privileged. .\"O The argument .\"O .I semnum .\"O is ignored. -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤¬ -¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤ÎºîÀ®¼Ô¤Þ¤¿¤Ï½êÍ­¼Ô¤È°ìÃפ¹¤ë¤«¡¢ -¸Æ¤Ó½Ð¤·¤¿¿Í¤¬Æø¢¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +呼び出したプロセスの実効ユーザ ID が +そのセマフォ集合の作成者または所有者と一致するか、 +呼び出した人が特権を持たなければならない。 .I semnum -°ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ +引き数は無視される。 .TP .\"O .BR IPC_INFO " (Linux-specific)" -.BR IPC_INFO " (Linux ¸ÇÍ­)" +.BR IPC_INFO " (Linux 固有)" .\"O Returns information about system-wide semaphore limits and .\"O parameters in the structure pointed to by .\"O .IR arg.__buf . -¥·¥¹¥Æ¥àÁ´ÂΤǤΥ»¥Þ¥Õ¥©¤ÎÀ©¸Â¤È¥Ñ¥é¥á¡¼¥¿¤Ë´Ø¤¹¤ë¾ðÊó¤ò¡¢ +システム全体でのセマフォの制限とパラメータに関する情報を、 .I arg.__buf -¤¬»Ø¤¹¹½Â¤ÂΤËÆþ¤ì¤ÆÊÖ¤¹¡£ +が指す構造体に入れて返す。 .\"O This structure is of type .\"O .IR seminfo , .\"O defined in @@ -293,15 +293,15 @@ struct ipc_perm { .\"O if the .\"O .B _GNU_SOURCE .\"O feature test macro is defined: -¤³¤Î¹½Â¤ÂÎ¤Ï +この構造体は .I seminfo -·¿¤Ç¤¢¤ë¡£ +型である。 .I seminfo -¤Ï +は .B _GNU_SOURCE -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë +機能検査マクロが定義された場合に .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë: +で以下のように定義される: .nf .in +4n @@ -323,21 +323,21 @@ struct seminfo { .\"O int semvmx; /* Maximum semaphore value */ .\"O int semaem; /* Max. value that can be recorded for .\"O semaphore adjustment (SEM_UNDO) */ - int semmap; /* ¥»¥Þ¥Õ¥©¡¦¥Þ¥Ã¥×¤ÎºÇÂ票¥ó¥È¥ê¿ô; - ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */ - int semmni; /* ¥»¥Þ¥Õ¥©½¸¹ç¤ÎºÇÂç¿ô */ - int semmns; /* Á´¥»¥Þ¥Õ¥©½¸¹çÃæ¤Î¥»¥Þ¥Õ¥©¤Î - ºÇÂç¿ô */ - int semmnu; /* ¥¢¥ó¥É¥¥¹½Â¤ÂΤΥ·¥¹¥Æ¥àÁ´ÂΤǤΠ- ºÇÂç¿ô; ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */ - int semmsl; /* °ì¤Ä¤Î¥»¥Þ¥Õ¥©½¸¹ç¤ÎºÇÂ祻¥Þ¥Õ¥©¿ô */ - int semopm; /* semop(2) ¤ËÅϤ¹Áàºî¤ÎºÇÂç¿ô */ - int semume; /* ¥×¥í¥»¥¹¤¢¤¿¤ê¤Î¥¢¥ó¥É¥¥¡¦¥¨¥ó¥È¥ê - ¤ÎºÇÂç¿ô; ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */ - int semusz; /* ¹½Â¤ÂÎ sem_undo ¤Î¥µ¥¤¥º */ - int semvmx; /* ¥»¥Þ¥Õ¥©¤ÎºÇÂçÃÍ */ - int semaem; /* ¥»¥Þ¥Õ¥©¤ÎÄ´À° (semaphore adjustment; - SEM_UNDO) ¤Î¤¿¤á¤Ëµ­Ï¿¤µ¤ì¤ëºÇÂçÃÍ */ + int semmap; /* セマフォ・マップの最大エントリ数; + カーネル内では未使用 */ + int semmni; /* セマフォ集合の最大数 */ + int semmns; /* 全セマフォ集合中のセマフォの + 最大数 */ + int semmnu; /* アンドゥ構造体のシステム全体での + 最大数; カーネル内では未使用 */ + int semmsl; /* 一つのセマフォ集合の最大セマフォ数 */ + int semopm; /* semop(2) に渡す操作の最大数 */ + int semume; /* プロセスあたりのアンドゥ・エントリ + の最大数; カーネル内では未使用 */ + int semusz; /* 構造体 sem_undo のサイズ */ + int semvmx; /* セマフォの最大値 */ + int semaem; /* セマフォの調整 (semaphore adjustment; + SEM_UNDO) のために記録される最大値 */ }; .in @@ -353,20 +353,20 @@ struct seminfo { .\"O see .\"O .BR proc (5) .\"O for details. -ÀßÄê +設定 .IR semmsl , .IR semmns , .IR semopm , .I semmni -¤Ï +は .I /proc/sys/kernel/sem -·Ðͳ¤ÇÊѹ¹²Äǽ¤Ç¤¢¤ë¡£ -¾Ü¤·¤¯¤Ï +経由で変更可能である。 +詳しくは .BR proc (5) -¤ò»²¾È¡£ +を参照。 .TP .\"O .BR SEM_INFO " (Linux-specific)" -.BR SEM_INFO " (Linux ¸ÇÍ­)" +.BR SEM_INFO " (Linux 固有)" .\"O Returns a .\"O .I seminfo .\"O structure containing the same information as for @@ -380,36 +380,36 @@ struct seminfo { .\"O field returns the total number of semaphores in all semaphore sets .\"O on the system. .B IPC_INFO -¤Î¤È¤­¤ÈƱ¤¸¾ðÊó¤ò³ÊǼ¤·¤¿ +のときと同じ情報を格納した .I seminfo -¹½Â¤ÂΤòÊÖ¤¹¡£ -⤷¡¢°Ê²¼¤Î¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¥»¥Þ¥Õ¥©¤¬¾ÃÈñ¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à»ñ¸»¤Ë -´Ø¤¹¤ë¾ðÊ󤬳ÊǼ¤µ¤ì¤ëÅÀ¤¬°Û¤Ê¤ë¡£ +構造体を返す。 +但し、以下のフィールドにはセマフォが消費しているシステム資源に +関する情報が格納される点が異なる。 .I semusz -¥Õ¥£¡¼¥ë¥É¤Ï¸½ºß¥·¥¹¥Æ¥à¾å¤Ë¸ºß¤¹¤ë¥»¥Þ¥Õ¥©½¸¹ç¤Î¿ô¤òÊÖ¤¹¡£ +フィールドは現在システム上に存在するセマフォ集合の数を返す。 .I semaem -¥Õ¥£¡¼¥ë¥É¤Ï¥·¥¹¥Æ¥à¾å¤ÎÁ´¤Æ¤Î¥»¥Þ¥Õ¥©½¸¹ç¤Ë´Þ¤Þ¤ì¤ë -¥»¥Þ¥Õ¥©¤ÎÁí¿ô¤òÊÖ¤¹¡£ +フィールドはシステム上の全てのセマフォ集合に含まれる +セマフォの総数を返す。 .TP .\"O .BR SEM_STAT " (Linux-specific)" -.BR SEM_STAT " (Linux ¸ÇÍ­)" +.BR SEM_STAT " (Linux 固有)" .\"O Returns a .\"O .I semid_ds .\"O structure as for .\"O .BR IPC_STAT . .B IPC_STAT -¤ÈƱ¤¸¤¯ +と同じく .I semid_ds -¹½Â¤ÂΤòÊÖ¤¹¡£ +構造体を返す。 .\"O However, the .\"O .I semid .\"O argument is not a semaphore identifier, but instead an index into .\"O the kernel's internal array that maintains information about .\"O all semaphore sets on the system. -⤷¡¢ +但し、 .I semid -°ú¤­¿ô¤Ï¡¢¥»¥Þ¥Õ¥©¼±Ê̻ҤǤϤʤ¯¡¢¥·¥¹¥Æ¥à¾å¤ÎÁ´¤Æ¤Î¥»¥Þ¥Õ¥©½¸¹ç -¤Ë´Ø¤¹¤ë¾ðÊó¤ò´ÉÍý¤¹¤ë¥«¡¼¥Í¥ë¤ÎÆâÉôÇÛÎó¤Ø¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤¢¤ë¡£ +引き数は、セマフォ識別子ではなく、システム上の全てのセマフォ集合 +に関する情報を管理するカーネルの内部配列へのインデックスである。 .TP .B GETALL .\"O Return @@ -421,14 +421,14 @@ struct seminfo { .\"O .I semnum .\"O is ignored. .\"O The calling process must have read permission on the semaphore set. -½¸¹ç¤ÎÁ´¤Æ¤Î¥»¥Þ¥Õ¥©¤Î +集合の全てのセマフォの .B semval -¤ÎÃÍ (¸½ºß¤ÎÃÍ) ¤ò +の値 (現在の値) を .I arg.array -¤ËÊÖ¤¹¡£ +に返す。 .I semnum -°ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤ËÆɤ߹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数は無視される。 +呼び出したプロセスはそのセマフォ集合に読み込み許可を持たなければならない。 .TP .B GETNCNT .\"O The system call returns the value of @@ -442,16 +442,16 @@ struct seminfo { .\"O .IR semnum \-th .\"O semaphore of the set). .\"O The calling process must have read permission on the semaphore set. -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï½¸¹ç¤Î +システムコールは集合の .I semnum -ÈÖÌܤΥ»¥Þ¥Õ¥©¤Î +番目のセマフォの .B semncnt -¤ÎÃͤòÊÖ¤¹ (½¸¹ç¤Î +の値を返す (集合の .I semnum -ÈÖÌܤΥ»¥Þ¥Õ¥©¤Î +番目のセマフォの .B semval -¤ÎÁý²Ã¤òÂԤäƤ¤¤ë¥×¥í¥»¥¹¤Î¿ô¤òÊÖ¤¹)¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤ËÆɤ߹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +の増加を待っているプロセスの数を返す)。 +呼び出したプロセスはそのセマフォ集合に読み込み許可を持たなければならない。 .TP .B GETPID .\"O The system call returns the value of @@ -465,16 +465,16 @@ struct seminfo { .\"O .IR semnum \-th .\"O semaphore of the set). .\"O The calling process must have read permission on the semaphore set. -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï½¸¹ç¤Î +システムコールは集合の .I semnum -ÈÖÌܤΥ»¥Þ¥Õ¥©¤Î +番目のセマフォの .B sempid -¤ÎÃÍ (½¸¹ç¤Î +の値 (集合の .I semnum -ÈÖÌܤΥ»¥Þ¥Õ¥©¤ËºÇ¸å¤Ë +番目のセマフォに最後に .BR semop (2) -¥³¡¼¥ë¤ò¼Â¹Ô¤·¤¿¥×¥í¥»¥¹¤Î PID) ¤òÊÖ¤¹¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤ËÆɤ߹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +コールを実行したプロセスの PID) を返す。 +呼び出したプロセスはそのセマフォ集合に読み込み許可を持たなければならない。 .TP .B GETVAL .\"O The system call returns the value of @@ -483,12 +483,12 @@ struct seminfo { .\"O .IR semnum \-th .\"O semaphore of the set. .\"O The calling process must have read permission on the semaphore set. -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï½¸¹ç¤Î +システムコールは集合の .I semnum -ÈÖÌܤΥ»¥Þ¥Õ¥©¤Î +番目のセマフォの .B semval -¤ÎÃͤòÊÖ¤¹¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤ËÆɤ߹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +の値を返す。 +呼び出したプロセスはそのセマフォ集合に読み込み許可を持たなければならない。 .TP .B GETZCNT .\"O The system call returns the value of @@ -502,16 +502,16 @@ struct seminfo { .\"O .IR semnum \-th .\"O semaphore of the set to become 0). .\"O The calling process must have read permission on the semaphore set. -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï½¸¹ç¤Î +システムコールは集合の .I semnum -ÈÖÌܤΥ»¥Þ¥Õ¥©¤Î +番目のセマフォの .B semzcnt -¤ÎÃͤòÊÖ¤¹ (½¸¹ç¤Î +の値を返す (集合の .I semnum -ÈÖÌܤΥ»¥Þ¥Õ¥©¤Î +番目のセマフォの .B semval -¤ÎÃͤ¬ 0 ¤Ë¤Ê¤ë¤Î¤òÂԤäƤ¤¤ë¥×¥í¥»¥¹¤Î¿ô¤òÊÖ¤¹)¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤ËÆɤ߹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +の値が 0 になるのを待っているプロセスの数を返す)。 +呼び出したプロセスはそのセマフォ集合に読み込み許可を持たなければならない。 .TP .B SETALL .\"O Set @@ -523,37 +523,37 @@ struct seminfo { .\"O member of the .\"O .I semid_ds .\"O structure associated with the set. -½¸¹ç¤ÎÁ´¤Æ¤Î¥»¥Þ¥Õ¥©¤Î +集合の全てのセマフォの .B semval -¤Ë +に .I arg.array -¤Ç»ØÄꤵ¤ì¤¿ÃͤòÀßÄꤹ¤ë¡£ -¤½¤Î½¸¹ç¤Ë´ØÏ¢¤¹¤ë +で指定された値を設定する。 +その集合に関連する .I semid_ds -¹½Â¤ÂΤΠ+構造体の .I sem_ctime -¥á¥ó¥Ð¡¼¤ÎÃͤ⹹¿·¤¹¤ë¡£ +メンバーの値も更新する。 .\"O Undo entries (see .\"O .BR semop (2)) .\"O are cleared for altered semaphores in all processes. .\"O If the changes to semaphore values would permit blocked .\"O .BR semop (2) .\"O calls in other processes to proceed, then those processes are woken up. -Á´¤Æ¤Î¥×¥í¥»¥¹¤Î¥»¥Þ¥Õ¥©¤ÎÊѹ¹¤Ë¤Ä¤¤¤Æ¤Î¥¢¥ó¥É¥¥¡¦¥¨¥ó¥È¥ê +全てのプロセスのセマフォの変更についてのアンドゥ・エントリ .RB ( semop (2) -¤ò»²¾È) ¤Ï¾Ãµî (clear) ¤µ¤ì¤ë¡£ -¥»¥Þ¥Õ¥©¤ÎÃͤÎÊѹ¹¤Ë¤è¤ê¡¢Â¾¤Î¥×¥í¥»¥¹Æâ¤Ç¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë +を参照) は消去 (clear) される。 +セマフォの値の変更により、他のプロセス内でブロックされている .BR semop (2) -¥³¡¼¥ë¤Î³¹Ô¤¬µö²Ä¤µ¤ì¤ë¤È¡¢¤½¤ì¤é¤Î¥×¥í¥»¥¹¤Ïµ¯¤³¤µ¤ì¤ë (wake up)¡£ +コールの続行が許可されると、それらのプロセスは起こされる (wake up)。 .\"O The argument .\"O .I semnum .\"O is ignored. .\"O The calling process must have alter (write) permission on .\"O the semaphore set. .I semnum -°ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤Ë -Êѹ¹ (½ñ¤­¹þ¤ß) µö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数は無視される。 +呼び出したプロセスはそのセマフォ集合に +変更 (書き込み) 許可を持たなければならない。 .TP .B SETVAL .\"O Set the value of @@ -567,72 +567,72 @@ struct seminfo { .\"O member of the .\"O .I semid_ds .\"O structure associated with the set. -½¸¹ç¤Î +集合の .I semnum -ÈÖÌܤΥ»¥Þ¥Õ¥©¤Î +番目のセマフォの .B semval -¤Ë +に .I arg.val -¤ÎÃͤòÀßÄꤹ¤ë¡£¤½¤Î½¸¹ç¤Ë´ØÏ¢¤¹¤ë +の値を設定する。その集合に関連する .I semid_ds -¹½Â¤ÂΤΠ+構造体の .I sem_ctime -¥á¥ó¥Ð¡¼¤ÎÃͤ⹹¿·¤¹¤ë¡£ +メンバーの値も更新する。 .\"O Undo entries are cleared for altered semaphores in all processes. .\"O If the changes to semaphore values would permit blocked .\"O .BR semop (2) .\"O calls in other processes to proceed, then those processes are woken up. .\"O The calling process must have alter permission on the semaphore set. -Á´¤Æ¤Î¥×¥í¥»¥¹¤Î¥»¥Þ¥Õ¥©¤ÎÊѹ¹¤Ë¤Ä¤¤¤Æ¤Î¥¢¥ó¥É¥¥¡¦¥¨¥ó¥È¥ê¤Ï¾Ãµî¤µ¤ì¤ë¡£ -¥»¥Þ¥Õ¥©¤ÎÃͤÎÊѹ¹¤Ë¤è¤ê¡¢Â¾¤Î¥×¥í¥»¥¹Æâ¤Ç¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë +全てのプロセスのセマフォの変更についてのアンドゥ・エントリは消去される。 +セマフォの値の変更により、他のプロセス内でブロックされている .BR semop (2) -¥³¡¼¥ë¤Î³¹Ô¤¬µö²Ä¤µ¤ì¤ë¤È¡¢¤½¤ì¤é¤Î¥×¥í¥»¥¹¤Ïµ¯¤³¤µ¤ì¤ë (wake up)¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤Ë -Êѹ¹ (½ñ¤­¹þ¤ß) µö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +コールの続行が許可されると、それらのプロセスは起こされる (wake up)。 +呼び出したプロセスはそのセマフォ集合に +変更 (書き込み) 許可を持たなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On failure .\"O .BR semctl () .\"O returns \-1 .\"O with .\"O .I errno .\"O indicating the error. -¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +失敗した場合、 .BR semctl () -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤Ë¤½¤Î¥¨¥é¡¼¤ò¼¨¤¹¡£ +にそのエラーを示す。 .\"O Otherwise the system call returns a nonnegative value depending on .\"O .I cmd .\"O as follows: -¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +そうでなければシステムコールは .I cmd -¤Ë¤è¤Ã¤Æ°Ê²¼¤ÎÉé¤Ç¤Ê¤¤ÃͤòÊÖ¤¹: +によって以下の負でない値を返す: .TP 12 .B GETNCNT .\"O the value of .\"O .BR semncnt . .B semncnt -¤ÎÃÍ +の値 .TP .B GETPID .\"O the value of .\"O .BR sempid . .B sempid -¤ÎÃÍ +の値 .TP .B GETVAL .\"O the value of .\"O .BR semval . .B semval -¤ÎÃÍ +の値 .TP .B GETZCNT .\"O the value of .\"O .BR semzcnt . .B semzcnt -¤ÎÃÍ +の値 .TP .B IPC_INFO .\"O the index of the highest used entry in the @@ -641,37 +641,37 @@ struct seminfo { .\"O (This information can be used with repeated .\"O .B SEM_STAT .\"O operations to obtain information about all semaphore sets on the system.) -Á´¤Æ¤Î¥»¥Þ¥Õ¥©½¸¹ç¤Ë´Ø¤¹¤ë¾ðÊó¤ò´ÉÍý¤·¤Æ¤¤¤ë¥«¡¼¥Í¥ë¤ÎÆâÉôÇÛÎó¤Î»ÈÍÑÃæ -¥¨¥ó¥È¥ê¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÎºÇÂçÃÍ -(¤³¤Î¾ðÊó¤Ï¡¢¥·¥¹¥Æ¥à¤ÎÁ´¤Æ¤Î¥»¥Þ¥Õ¥©½¸¹ç¤Ë´Ø¤¹¤ë¾ðÊó¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Ë +全てのセマフォ集合に関する情報を管理しているカーネルの内部配列の使用中 +エントリのインデックスの最大値 +(この情報は、システムの全てのセマフォ集合に関する情報を取得するために .B SEM_STAT -Áàºî¤ò·«¤êÊÖ¤·¼Â¹Ô¤¹¤ëºÝ¤Ë»ÈÍѤǤ­¤ë) +操作を繰り返し実行する際に使用できる) .TP .B SEM_INFO .\"O As for .\"O .BR IPC_INFO . .B IPC_INFO -¤ÈƱ¤¸ +と同じ .TP .B SEM_STAT .\"O the identifier of the semaphore set whose index was given in .\"O .IR semid . .I semid -¤Ç»ØÄꤵ¤ì¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»ý¤Ä¥»¥Þ¥Õ¥©½¸¹ç¤Î¼±ÊÌ»Ò +で指定されたインデックスを持つセマフォ集合の識別子 .LP .\"O All other .\"O .I cmd .\"O values return 0 on success. .I cmd -¤ÎÃͤ¬¤½¤ì°Ê³°¤Î¾ì¹ç¡¢À®¸ù¤¹¤ë¤È 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +の値がそれ以外の場合、成功すると 0 が返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O On failure, .\"O .I errno .\"O will be set to one of the following: -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï +失敗した場合は .I errno -¤Ë¤Ï°Ê²¼¤ÎÃͤΤɤ줫¤¬ÀßÄꤵ¤ì¤ë: +には以下の値のどれかが設定される: .TP .B EACCES .\"O The argument @@ -692,7 +692,7 @@ struct seminfo { .\"O .B CAP_IPC_OWNER .\"O capability. .I cmd -°ú¤­¿ô¤¬ +引き数が .BR GETALL , .BR GETPID , .BR GETVAL , @@ -702,10 +702,10 @@ struct seminfo { .BR SEM_STAT , .BR SETALL , .B SETVAL -¤Î¤¦¤Á¤Î²¿¤ì¤«¤ÎÃͤò»ý¤Á¡¢ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬¥»¥Þ¥Õ¥©¤ËÂФ·¤ÆɬÍפȤµ¤ì¤ëµö²Ä¤È +のうちの何れかの値を持ち、 +呼び出したプロセスがセマフォに対して必要とされる許可と .B CAP_IPC_OWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +ケーパビリティ (capability) を持っていない。 .TP .B EFAULT .\"O The address pointed to by @@ -714,13 +714,13 @@ struct seminfo { .\"O .I arg.array .\"O isn't accessible. .I arg.buf -¤Þ¤¿¤Ï +または .I arg.array -¤Ç»Ø¤µ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +で指されているアドレスにアクセスすることができない。 .TP .B EIDRM .\"O The semaphore set was removed. -¥»¥Þ¥Õ¥©½¸¹ç¤¬ºï½ü¤µ¤ì¤¿¡£ +セマフォ集合が削除された。 .TP .B EINVAL .\"O Invalid value for @@ -733,14 +733,14 @@ struct seminfo { .\"O .I semid .\"O referred to an array slot that is currently unused. .I cmd -¤Þ¤¿¤Ï +または .I semid -¤Ë̵¸ú¤ÊÃͤ¬»ØÄꤵ¤ì¤¿¡£ -¤â¤·¤¯¤Ï¡¢ +に無効な値が指定された。 +もしくは、 .B SEM_STAT -Áàºî¤Î¾ì¹ç¤Ë¡¢ +操作の場合に、 .I semid -¤Ç»ØÄꤵ¤ì¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹Ãͤ¬¸½ºß̤»ÈÍѤÎÇÛÎó¤Î¥¹¥í¥Ã¥È¤ò»²¾È¤¤¤Æ¤¤¤¿¡£ +で指定されたインデックス値が現在未使用の配列のスロットを参照いていた。 .TP .B EPERM .\"O The argument @@ -760,18 +760,18 @@ struct seminfo { .\"O .B CAP_SYS_ADMIN .\"O capability. .I cmd -°ú¤­¿ô¤Ë +引き数に .B IPC_SET -¤Þ¤¿¤Ï +または .B IPC_RMID -¤¬»ØÄꤵ¤ì¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤¬¥»¥Þ¥Õ¥©¤Î +が指定され、呼び出したプロセスの実効ユーザ ID がセマフォの .RI ( sem_perm.cuid -¤Ç¸«¤Ä¤«¤ë) ºîÀ®¼Ô¤Þ¤¿¤Ï +で見つかる) 作成者または .RI ( sem_perm.uid -¤Ç¸«¤Ä¤«¤ë) ½êÍ­¼Ô¤Ç¤â¤Ê¤¯¡¢ -¥×¥í¥»¥¹¤¬ +で見つかる) 所有者でもなく、 +プロセスが .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤¡£ +ケーパビリティを持たない。 .TP .B ERANGE .\"O The argument @@ -786,22 +786,22 @@ struct seminfo { .\"O or greater than the implementation limit .\"O .BR SEMVMX . .I cmd -°ú¤­¿ô¤Ë +引き数に .B SETALL -¤Þ¤¿¤Ï +または .B SETVAL -¤¬»ØÄꤵ¤ì¡¢(½¸¹ç¤Î¥»¥Þ¥Õ¥©¤Î¤É¤ì¤«¤Î) +が指定され、(集合のセマフォのどれかの) .B semval -¤ËÀßÄꤵ¤ì¤ëÃͤ¬ 0 ¤è¤ê¾®¤µ¤¤¤«¡¢¼ÂÁõ¤ÎÀ©¸Â +に設定される値が 0 より小さいか、実装の制限 .B SEMVMX -¤è¤ê¤âÂ礭¤¤¡£ +よりも大きい。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001. .\"O .\" SVr4 documents more error conditions EINVAL and EOVERFLOW. -.\" SVr4 ¤Ë¤Ï¡¢Â¾¤Ë EINVAL, EOVERFLOW ¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ +.\" SVr4 には、他に EINVAL, EOVERFLOW エラーについての記述がある。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The .\"O .BR IPC_INFO , .\"O .B SEM_STAT @@ -815,11 +815,11 @@ SVr4, POSIX.1-2001. .BR IPC_INFO , .BR SEM_STAT , .B SEM_INFO -Áàºî¤Ï +操作は .BR ipcs (1) -¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤Æ³äÅö¤é¤ì¤¿»ñ¸»¤Ë¤Ä¤¤¤Æ¾ðÊó¤òÄ󶡤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ -¾­ÍèŪ¤Ë¤Ï¤³¤ì¤é¤ÏÊѹ¹¤µ¤ì¤ë¤«¡¢ -/proc ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¡¦¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë°ÜÆ°¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +プログラムによって割当られた資源について情報を提供するために使用される。 +将来的にはこれらは変更されるか、 +/proc ファイル・システム・インタフェースに移動されるかもしれない。 .LP .\"O Various fields in a \fIstruct semid_ds\fP were typed as .\"O .I short @@ -833,59 +833,59 @@ SVr4, POSIX.1-2001. .\"O .B IPC_64 .\"O flag in .\"O .IR cmd .) -\fI¹½Â¤ÂÎ semid_ds\fP Æâ¤Î¿¤¯¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢ -Linux 2.2 ¤Ç¤Ï +\fI構造体 semid_ds\fP 内の多くのフィールドは、 +Linux 2.2 では .I short -·¿¤À¤Ã¤¿¤¬¡¢Linux 2.4 ¤Ç¤Ï +型だったが、Linux 2.4 では .I long -·¿¤Ë¤Ê¤Ã¤¿¡£ -¤³¤ÎÍøÅÀ¤òÀ¸¤«¤¹¤Ë¤Ï¡¢glibc-2.1.91 °Ê¹ß¤Î´Ä¶­²¼¤Ç -ºÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ì¤Ð½½Ê¬¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë¤Ï¿·¤·¤¤·Á¼°¤Î¸Æ¤Ó½Ð¤·¤È¸Å¤¤·Á¼°¤Î¸Æ¤Ó½Ð¤·¤ò +型になった。 +この利点を生かすには、glibc-2.1.91 以降の環境下で +再コンパイルすれば十分である。 +カーネルは新しい形式の呼び出しと古い形式の呼び出しを .I cmd -Æâ¤Î +内の .B IPC_64 -¥Õ¥é¥°¤Ç¶èÊ̤¹¤ë¡£ +フラグで区別する。 .PP .\"O In some earlier versions of glibc, the .\"O .I semun .\"O union was defined in \fI\fP, but POSIX.1-2001 requires .\"O that the caller define this union. -½é´ü¤Î¥Ð¡¼¥¸¥ç¥ó¤Î glibc ¤Ç¤Ï¡¢ +初期のバージョンの glibc では、 .I semun -¶¦ÍÑÂÎ¤Ï \fI\fP ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤¿¤¬¡¢ -POSIX.1-2001 ¤Ç¤Ï¸Æ¤Ó½Ð¤·Â¦¤¬¤³¤Î¶¦ÍÑÂΤòÄêµÁ¤¹¤ëɬÍפ¬¤¢¤ë¡£ +共用体は \fI\fP で定義されていたが、 +POSIX.1-2001 では呼び出し側がこの共用体を定義する必要がある。 .\"O On versions of glibc where this union is \fInot\fP defined, .\"O the macro .\"O .B _SEM_SEMUN_UNDEFINED .\"O is defined in \fI\fP. -¤³¤Î¶¦ÍÑÂΤ¬ÄêµÁ¤µ¤ì¤Æ\fI¤¤¤Ê¤¤\fP glibc ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ -¥Þ¥¯¥í +この共用体が定義されて\fIいない\fP glibc のバージョンでは、 +マクロ .B _SEM_SEMUN_UNDEFINED -¤¬ \fI\fP ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +が \fI\fP で定義されている。 .PP .\"O The following system limit on semaphore sets affects a .\"O .BR semctl () .\"O call: -°Ê²¼¤Ï +以下は .BR semctl () -¥³¡¼¥ë¤Ë±Æ¶Á¤¹¤ë¥»¥Þ¥Õ¥©½¸¹ç¤Î¥·¥¹¥Æ¥àÀ©¸Â: +コールに影響するセマフォ集合のシステム制限: .TP .B SEMVMX .\"O Maximum value for .\"O .BR semval : .\"O implementation dependent (32767). .B semval -¤ÎºÇÂçÃÍ : ¼ÂÁõ°Í¸ (32767)¡£ +の最大値 : 実装依存 (32767)。 .LP .\"O For greater portability it is best to always call .\"O .BR semctl () .\"O with four arguments. -°Ü¿¢À­¤ò¹â¤á¤ë¤¿¤á¤Î°ìÈÖÎɤ¤ÊýË¡¤Ï¡¢¾ï¤Ë 4 ¸Ä¤Î°ú¤­¿ô¤Ç +移植性を高めるための一番良い方法は、常に 4 個の引き数で .BR semctl () -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¤¢¤ë¡£ +を呼び出すことである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ipc (2), .BR semget (2), .BR semop (2), diff --git a/draft/man2/semget.2 b/draft/man2/semget.2 index 9946384c..bc503155 100644 --- a/draft/man2/semget.2 +++ b/draft/man2/semget.2 @@ -38,27 +38,27 @@ .\" Updated 2005-03-01, Akihiro MOTOKI .\" Updated 2006-07-20, Akihiro MOTOKI, LDP v2.36 .\" -.\"WORD: semaphore ¥»¥Þ¥Õ¥© -.\"WORD: identifier ¼±ÊÌ»Ò -.\"WORD: owner ½êÍ­¼Ô -.\"WORD: group ¥°¥ë¡¼¥× -.\"WORD: other ¾¿Í -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ ID -.\"WORD: effective group ID ¼Â¸ú¥°¥ë¡¼¥× ID -.\"WORD: calling process ¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹ -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: policy Êý¿Ë -.\"WORD: structure ¹½Â¤ÂÎ -.\"WORD: initialize ½é´ü²½ -.\"WORD: system call ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë +.\"WORD: semaphore セマフォ +.\"WORD: identifier 識別子 +.\"WORD: owner 所有者 +.\"WORD: group グループ +.\"WORD: other 他人 +.\"WORD: effective user ID 実効ユーザー ID +.\"WORD: effective group ID 実効グループ ID +.\"WORD: calling process 呼び出し元のプロセス +.\"WORD: process プロセス +.\"WORD: policy 方針 +.\"WORD: structure 構造体 +.\"WORD: initialize 初期化 +.\"WORD: system call システム・コール .\" .TH SEMGET 2 2004-05-27 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O semget \- get a semaphore set identifier -semget \- ¥»¥Þ¥Õ¥©½¸¹ç¤Î¼±Ê̻Ҥò¼èÆÀ¤¹¤ë +semget \- セマフォ集合の識別子を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -69,17 +69,17 @@ semget \- .BI "int " nsems , .BI "int " semflg ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR semget () .\"O system call returns the semaphore set identifier .\"O associated with the argument .\"O .IR key . .BR semget () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢°ú¤­¿ô +システムコールは、引き数 .I key -¤ËÂбþ¤¹¤ë¥»¥Þ¥Õ¥©½¸¹ç (semaphore set) ¤Î -¼±ÊÌ»Ò (identifier) ¤òÊÖ¤¹¡£ +に対応するセマフォ集合 (semaphore set) の +識別子 (identifier) を返す。 .\"O A new set of .\"O .I nsems .\"O semaphores is created if @@ -93,17 +93,17 @@ semget \- .\"O is specified in .\"O .IR semflg . .I key -¤ÎÃͤ¬ +の値が .B IPC_PRIVATE -¤Î¾ì¹ç¡¢¤â¤·¤¯¤Ï +の場合、もしくは .I semflg -¤Ë +に .B IPC_CREAT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢ +が指定されていて、 .I key -¤ËÂбþ¤¹¤ë¥»¥Þ¥Õ¥©½¸¹ç¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢ +に対応するセマフォ集合が存在しない場合、 .I nsems -¸Ä¤Î¥»¥Þ¥Õ¥©¤«¤é¤Ê¤ë¿·¤·¤¤½¸¹ç¤¬ºîÀ®¤µ¤ì¤ë¡£ +個のセマフォからなる新しい集合が作成される。 .PP .\"O If .\"O .I semflg @@ -124,24 +124,24 @@ semget \- .\"O for .\"O .BR open (2).) .I semflg -¤Ë +に .B IPC_CREAT -¤È +と .B IPC_EXCL -¤ÎξÊý¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +の両方が指定された場合、 .I key -¤ËÂбþ¤¹¤ë¥»¥Þ¥Õ¥©½¸¹ç¤¬´û¤Ë¸ºß¤¹¤ë¤È¡¢ +に対応するセマフォ集合が既に存在すると、 .BR semget () -¤Ï¼ºÇÔ¤·¡¢ +は失敗し、 .I errno -¤Ë +に .B EEXIST -¤¬ÀßÄꤵ¤ì¤ë -(¤³¤ì¤Ï +が設定される +(これは .BR open (2) -¤Ë +に .B O_CREAT | O_EXCL -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤ÎÆ°ºî¤ÈƱ¤¸¤Ç¤¢¤ë)¡£ +が指定された場合の動作と同じである)。 .PP .\"O Upon creation, the least significant 9 bits of the argument .\"O .I semflg @@ -155,17 +155,17 @@ semget \- .\"O (though the execute permissions are .\"O not meaningful for semaphores, and write permissions mean permission .\"O to alter semaphore values). -¥»¥Þ¥Õ¥©½¸¹çºîÀ®»þ¤Ë¡¢°ú¤­¿ô +セマフォ集合作成時に、引き数 .I semflg -¤Î²¼°Ì 9 ¥Ó¥Ã¥È¤Ï¡¢¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤Î (½êÍ­¼Ô (owner)¡¢¥°¥ë¡¼¥× (group)¡¢ -¾¿Í (others) ¤ËÂФ¹¤ë) ¥¢¥¯¥»¥¹µö²Ä¤ÎÄêµÁ¤È¤·¤Æ»ÈÍѤµ¤ì¤ë¡£ -¤³¤ì¤é¤Î¥Ó¥Ã¥È¤Ï +の下位 9 ビットは、そのセマフォ集合の (所有者 (owner)、グループ (group)、 +他人 (others) に対する) アクセス許可の定義として使用される。 +これらのビットは .BR open (2) -¤Î°ú¤­¿ô +の引き数 .I mode -¤ÈƱ¤¸·Á¼°¤ÇƱ¤¸°ÕÌ£¤Ç¤¢¤ë -(⤷¡¢¼Â¹Ô (execute) µö²Ä¤Ï¥»¥Þ¥Õ¥©¤Ç¤Ï°ÕÌ£¤ò»ý¤¿¤º¡¢ -½ñ¤­¹þ¤ß (write) µö²Ä¤Ï¥»¥Þ¥Õ¥©ÃͤÎÊѹ¹ (alter) µö²Ä¤È¤·¤Æµ¡Ç½¤¹¤ë)¡£ +と同じ形式で同じ意味である +(但し、実行 (execute) 許可はセマフォでは意味を持たず、 +書き込み (write) 許可はセマフォ値の変更 (alter) 許可として機能する)。 .PP .\"O The values of the semaphores in a newly created set are indeterminate. .\"O (POSIX.1-2001 is explicit on this point.) @@ -173,11 +173,11 @@ semget \- .\"O initializes the semaphore values to 0, .\"O a portable application cannot rely on this: .\"O it should explicitly initialize the semaphores to the desired values. -¿·¤·¤¯ºîÀ®¤µ¤ì¤¿¥»¥Þ¥Õ¥©½¸¹ç¤Î³Æ¥»¥Þ¥Õ¥©¤ÎÃͤÏÉÔÄê¤Ç¤¢¤ë -(¤³¤ÎÅÀ¤Ï POSIX.1-2001 ¤ËÌÀµ­¤µ¤ì¤Æ¤¤¤ë)¡£ -Linux ¤Ï¾¤Î¿¤¯¤Î¼ÂÁõ¤ÈƱÍͤ˥»¥Þ¥Õ¥©Ãͤò 0 ¤Ë½é´ü²½¤¹¤ë¤¬¡¢ -°Ü¿¢À­¤ò¹Íθ¤·¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤ÎÆ°ºî¤òÁ°Äó¤Ë¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÏÌÀ¼¨Åª¤Ë¥»¥Þ¥Õ¥©¤ò´õ˾¤ÎÃͤǽé´ü²½¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +新しく作成されたセマフォ集合の各セマフォの値は不定である +(この点は POSIX.1-2001 に明記されている)。 +Linux は他の多くの実装と同様にセマフォ値を 0 に初期化するが、 +移植性を考慮したアプリケーションではこの動作を前提にすべきではない。 +アプリケーションは明示的にセマフォを希望の値で初期化すべきである。 .\" In truth, every one of the many implementations that I've tested sets .\" the values to zero, but I suppose there is/was some obscure .\" implementation out there that does not. @@ -189,60 +189,60 @@ Linux .\"O (see .\"O .BR semctl (2)), .\"O as follows: -¿·µ¬¤Î¥»¥Þ¥Õ¥©½¸¹ç¤òºîÀ®¤¹¤ëºÝ¡¢ +新規のセマフォ集合を作成する際、 .BR semget () -¤Ï¥»¥Þ¥Õ¥©½¸¹ç¤Î¾ðÊó¤òÊÝ»ý¤¹¤ë¥Ç¡¼¥¿¹½Â¤ÂÎ +はセマフォ集合の情報を保持するデータ構造体 .I semid_ds -¤ò¼¡¤Î¤è¤¦¤Ë½é´ü²½¤¹¤ë +を次のように初期化する .RI ( semid_ds -¤Ë¤Ä¤¤¤Æ¤Ï +については .BR semctl (2) -¤ò»²¾È): +を参照): .IP .\"O .I sem_perm.cuid .\"O and .\"O .I sem_perm.uid .\"O are set to the effective user ID of the calling process. .I sem_perm.cuid -¤È +と .I sem_perm.uid -¤Ë¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¸ú (effective) ¥æ¡¼¥¶ ID ¤òÀßÄꤹ¤ë¡£ +に、呼び出し元のプロセスの実効 (effective) ユーザ ID を設定する。 .IP .\"O .I sem_perm.cgid .\"O and .\"O .I sem_perm.gid .\"O are set to the effective group ID of the calling process. .I sem_perm.cgid -¤È +と .I sem_perm.gid -¤Ë¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¸ú (effective) ¥°¥ë¡¼¥× ID ¤òÀßÄꤹ¤ë¡£ +に、呼び出し元のプロセスの実効 (effective) グループ ID を設定する。 .IP .\"O The least significant 9 bits of .\"O .I sem_perm.mode .\"O are set to the least significant 9 bits of .\"O .IR semflg . .I sem_perm.mode -¤Î²¼°Ì 9 ¥Ó¥Ã¥È¤Ë +の下位 9 ビットに .I semflg -¤Î²¼°Ì 9 ¥Ó¥Ã¥È¤òÀßÄꤹ¤ë¡£ +の下位 9 ビットを設定する。 .IP .\"O .I sem_nsems .\"O is set to the value of .\"O .IR nsems . .I sem_nsems -¤Ë +に .I nsems -¤ÎÃͤòÀßÄꤹ¤ë¡£ +の値を設定する。 .IP .\"O .I sem_otime .\"O is set to 0. .I sem_otime -¤Ë 0 ¤òÀßÄꤹ¤ë¡£ +に 0 を設定する。 .IP .\"O .I sem_ctime .\"O is set to the current time. .I sem_ctime -¤Ë¸½ºß¤Î»þ¹ï¤òÀßÄꤹ¤ë¡£ +に現在の時刻を設定する。 .PP .\"O The argument .\"O .I nsems @@ -254,39 +254,39 @@ Linux .\"O must be greater than 0 .\"O and less than or equal to the maximum number of semaphores per semaphore set .\"O .RB ( SEMMSL ). -¥»¥Þ¥Õ¥©½¸¹ç¤ÎºîÀ®¤ò¹Ô¤ï¤Ê¤¤¾ì¹ç¤Ï¡¢°ú¤­¿ô +セマフォ集合の作成を行わない場合は、引き数 .I nsems -¤Ë (don't care ¤ò°ÕÌ£¤¹¤ë) 0 ¤ò»ØÄꤷ¤Æ¤â¤è¤¤¡£ -¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢ +に (don't care を意味する) 0 を指定してもよい。 +そうでない場合は、 .I nsems -¤Ï 0 ¤è¤êÂ礭¤¤ÃͤǤʤ±¤ì¤Ð¤Ê¤é¤º¡¢¥»¥Þ¥Õ¥©½¸¹ç¤¢¤¿¤ê¤Î¥»¥Þ¥Õ¥©¤ÎºÇÂç¿ô +は 0 より大きい値でなければならず、セマフォ集合あたりのセマフォの最大数 .RB ( SEMMSL ) -°Ê²¼¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +以下でなければならない。 .PP .\"O If the semaphore set already exists, the permissions are .\"O verified. -¥»¥Þ¥Õ¥©½¸¹ç¤¬´û¤Ë¸ºß¤·¤¿¾ì¹ç¤Ï¡¢¥¢¥¯¥»¥¹µö²Ä¤Î¸¡ºº¤¬¹Ô¤ï¤ì¤ë¡£ +セマフォ集合が既に存在した場合は、アクセス許可の検査が行われる。 .\"O .\" and a check is made to see if it is marked for destruction. -.\" Ç˲õ (destruction) ¥Þ¡¼¥¯¤¬¤Ê¤¤¤«¥Á¥§¥Ã¥¯¤µ¤ì¤ë¡£ +.\" 破壊 (destruction) マークがないかチェックされる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O If successful, the return value will be the semaphore set identifier .\"O (a nonnegative integer), otherwise \-1 .\"O is returned, with .\"O .I errno .\"O indicating the error. -À®¸ù¤·¤¿¾ì¹ç¡¢¥»¥Þ¥Õ¥©½¸¹ç¤Î¼±ÊÌ»Ò (ÈóÉé¤ÎÀ°¿ô) ¤¬ÊÖ¤êÃͤȤʤ롣 -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合、セマフォ集合の識別子 (非負の整数) が返り値となる。 +失敗した場合は \-1 が返され、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ +にエラーを示す値が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O On failure .\"O .I errno .\"O will be set to one of the following: -¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +失敗した場合、 .I errno -¤Ë¤Ï°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«°ì¤Ä¤¬ÀßÄꤵ¤ì¤ë: +には以下の値のいずれか一つが設定される: .TP .B EACCES .\"O A semaphore set exists for @@ -296,10 +296,10 @@ Linux .\"O .B CAP_IPC_OWNER .\"O capability. .I key -¤ËÂбþ¤¹¤ë¥»¥Þ¥Õ¥©½¸¹ç¤Ï¸ºß¤¹¤ë¤¬¡¢ -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ï¤½¤Î½¸¹ç¤Ø¤Î¥¢¥¯¥»¥¹µö²Ä¤¬¤Ê¤¯¡¢ +に対応するセマフォ集合は存在するが、 +呼び出し元のプロセスはその集合へのアクセス許可がなく、 .B CAP_IPC_OWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤â»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +ケーパビリティも持っていない。 .TP .B EEXIST .\"O A semaphore set exists for @@ -311,18 +311,18 @@ Linux .\"O and .\"O .BR IPC_EXCL . .I key -¤ËÂбþ¤¹¤ë¥»¥Þ¥Õ¥©½¸¹ç¤¬Â¸ºß¤·¡¢ +に対応するセマフォ集合が存在し、 .I semflg -¤Ë¤Ï +には .B IPC_CREAT -¤È +と .B IPC_EXCL -¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¡£ +が指定されていた。 .\" .TP .\"O .\" .B EIDRM .\"O .\" The semaphore set is marked to be deleted. .\" .B EIDRM -.\" ¥»¥Þ¥Õ¥©½¸¹ç¤Ëºï½ü (delete) ¥Þ¡¼¥¯¤¬¤Ä¤±¤é¤ì¤Æ¤¤¤ë¡£ +.\" セマフォ集合に削除 (delete) マークがつけられている。 .TP .B EINVAL .\"O .I nsems @@ -330,19 +330,19 @@ Linux .\"O of semaphores per semaphore set .\"O .RB ( SEMMSL ), .I nsems -¤¬ 0 ¤è¤ê¾®¤µ¤¤¤«¡¢¥»¥Þ¥Õ¥©½¸¹ç¤¢¤¿¤ê¤Î¥»¥Þ¥Õ¥©¤ÎºÇÂç¿ô +が 0 より小さいか、セマフォ集合あたりのセマフォの最大数 .RB ( SEMMSL ) -¤è¤êÂ礭¤¤¡£ +より大きい。 .\"O or a semaphore set corresponding to .\"O .I key .\"O already exists, and .\"O .I nsems .\"O is larger than the number of semaphores in that set. -¤Þ¤¿¤Ï¡¢ +または、 .I key -¤ËÂбþ¤¹¤ë¥»¥Þ¥Õ¥©½¸¹ç¤¬´û¤Ë¸ºß¤·¡¢ +に対応するセマフォ集合が既に存在し、 .I nsems -¤¬¤½¤Î½¸¹ç¤Î¥»¥Þ¥Õ¥©¿ô¤è¤ê¤âÂ礭¤¤¡£ +がその集合のセマフォ数よりも大きい。 .TP .B ENOENT .\"O No semaphore set exists for @@ -352,17 +352,17 @@ Linux .\"O did not specify .\"O .BR IPC_CREAT . .I key -¤ËÂбþ¤¹¤ë¥»¥Þ¥Õ¥©½¸¹ç¤¬Â¸ºß¤»¤º¡¢ +に対応するセマフォ集合が存在せず、 .I semflg -¤Ë +に .B IPC_CREAT -¤¬»ØÄꤵ¤ì¤Æ¤â¤¤¤Ê¤¤¡£ +が指定されてもいない。 .TP .B ENOMEM .\"O A semaphore set has to be created but the system does not have .\"O enough memory for the new data structure. -¥»¥Þ¥Õ¥©½¸¹ç¤òºîÀ®¤·¤è¤¦¤È¤·¤¿¤¬¡¢¿·¤·¤¤¥Ç¡¼¥¿¹½Â¤ÂΤò -ºîÀ®¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¥·¥¹¥Æ¥à¤Ë¸ºß¤·¤Ê¤¤¡£ +セマフォ集合を作成しようとしたが、新しいデータ構造体を +作成するのに十分なメモリがシステムに存在しない。 .TP .B ENOSPC .\"O A semaphore set has to be created but the system limit for the maximum @@ -371,68 +371,68 @@ Linux .\"O or the system wide maximum number of semaphores .\"O .RB ( SEMMNS ), .\"O would be exceeded. -¥»¥Þ¥Õ¥©½¸¹ç¤òºîÀ®¤·¤è¤¦¤È¤¹¤ë¤È¡¢¥·¥¹¥Æ¥à¤Î¥»¥Þ¥Õ¥©½¸¹ç¤Î -ºÇÂç¿ô +セマフォ集合を作成しようとすると、システムのセマフォ集合の +最大数 .RB ( SEMMNI ) -¤«¡¢¥·¥¹¥Æ¥àÁ´ÂΤΥ»¥Þ¥Õ¥©¤ÎºÇÂç¿ô +か、システム全体のセマフォの最大数 .RB ( SEMMNS ) -¤Î¤¤¤º¤ì¤«¤òĶ¤¨¤Æ¤·¤Þ¤¦¡£ +のいずれかを超えてしまう。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001. .\"O .\" SVr4 documents additional error conditions EFBIG, E2BIG, EAGAIN, .\"O .\" ERANGE, EFAULT. -.\" SVr4 ¤Ë¤Ï¡¢ÄÉ²Ã¤Ç EFBIG, E2BIG, EAGAIN, ERANGE, EFAULT -.\" ¤Î¥¨¥é¡¼¾õÂ֤ˤĤ¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ +.\" SVr4 には、追加で EFBIG, E2BIG, EAGAIN, ERANGE, EFAULT +.\" のエラー状態についての記述がある。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .B IPC_PRIVATE .\"O isn't a flag field but a .\"O .I key_t .\"O type. .B IPC_PRIVATE -¤Ï¥Õ¥é¥°¡¦¥Õ¥£¡¼¥ë¥É¤Ë»ØÄꤹ¤ë¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢ +はフラグ・フィールドに指定するものではなく、 .I key_t -·¿¤Ç¤¢¤ë¡£ +型である。 .\"O If this special value is used for .\"O .IR key , .\"O the system call ignores everything but the least significant 9 bits of .\"O .I semflg .\"O and creates a new semaphore set (on success). -¤³¤ÎÆÃÊ̤ÊÃͤ¬ +この特別な値が .I key -¤Ë»ØÄꤵ¤ì¤ë¤È¡¢ +に指定されると、 .BR semget () .I semflg -¤Î²¼°Ì 9 ¥Ó¥Ã¥È°Ê³°¤ÏÁ´¤Æ̵»ë¤·¡¢ -(À®¸ù¤·¤¿¾ì¹ç¤Ï) ¿·¤·¤¤¥»¥Þ¥Õ¥©½¸¹ç¤òºîÀ®¤¹¤ë¡£ +の下位 9 ビット以外は全て無視し、 +(成功した場合は) 新しいセマフォ集合を作成する。 .PP .\"O The following limits on semaphore set resources affect the .\"O .BR semget () .\"O call: -¥»¥Þ¥Õ¥©½¸¹ç¤Î¥ê¥½¡¼¥¹¤Ë´Ø¤¹¤ëÀ©¸Â¤Î¤¦¤Á¡¢ +セマフォ集合のリソースに関する制限のうち、 .BR semget () -¤Ë±Æ¶Á¤òµÚ¤Ü¤¹¤â¤Î¤ò°Ê²¼¤Ëµó¤²¤ë: +に影響を及ぼすものを以下に挙げる: .TP .B SEMMNI .\"O System wide maximum number of semaphore sets: policy dependent .\"O (on Linux, this limit can be read and modified via the fourth field of .\"O .IR /proc/sys/kernel/sem ). .\"O .\" This /proc file is not available in Linux 2.2 and earlier -- MTK -¥·¥¹¥Æ¥àÁ´ÂΤΥ»¥Þ¥Õ¥©½¸¹ç¤ÎºÇÂç¿ô: Êý¿Ë°Í¸ -(Linux ¤Ç¤Ï¡¢¤³¤ÎÀ©¸ÂÃÍ¤Ï +システム全体のセマフォ集合の最大数: 方針依存 +(Linux では、この制限値は .I /proc/sys/kernel/sem -¤ÎÂè4¥Õ¥£¡¼¥ë¥É¤ËÂбþ¤·¡¢Æɤ߽Ф·¤âÊѹ¹¤â¤Ç¤­¤ë)¡£ -.\" ¤³¤Î /proc ¥Õ¥¡¥¤¥ë¤Ï Linux 2.2 °ÊÁ°¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤ -- MTK +の第4フィールドに対応し、読み出しも変更もできる)。 +.\" この /proc ファイルは Linux 2.2 以前では利用できない -- MTK .TP .B SEMMSL .\"O Maximum number of semaphores per semid: implementation dependent .\"O (on Linux, this limit can be read and modified via the first field of .\"O .IR /proc/sys/kernel/sem ). -semid ¤¢¤¿¤ê¤Î¥»¥Þ¥Õ¥©¤ÎºÇÂç¿ô: ¼ÂÁõ°Í¸ -(Linux ¤Ç¤Ï¡¢¤³¤ÎÀ©¸ÂÃÍ¤Ï +semid あたりのセマフォの最大数: 実装依存 +(Linux では、この制限値は .I /proc/sys/kernel/sem -¤ÎÂè1¥Õ¥£¡¼¥ë¥É¤ËÂбþ¤·¡¢Æɤ߽Ф·¤âÊѹ¹¤â¤Ç¤­¤ë)¡£ +の第1フィールドに対応し、読み出しも変更もできる)。 .TP .B SEMMNS .\"O System wide maximum number of semaphores: policy dependent @@ -441,23 +441,23 @@ semid .\"O Values greater than .\"O .B SEMMSL * SEMMNI .\"O makes it irrelevant. -¥·¥¹¥Æ¥àÁ´ÂΤΥ»¥Þ¥Õ¥©¤ÎºÇÂç¿ô: Êý¿Ë°Í¸ -(Linux ¤Ç¤Ï¡¢¤³¤ÎÀ©¸ÂÃÍ¤Ï +システム全体のセマフォの最大数: 方針依存 +(Linux では、この制限値は .I /proc/sys/kernel/sem -¤ÎÂè2¥Õ¥£¡¼¥ë¥É¤ËÂбþ¤·¡¢Æɤ߽Ф·¤âÊѹ¹¤â¤Ç¤­¤ë)¡£ +の第2フィールドに対応し、読み出しも変更もできる)。 .B SEMMSL * SEMMNI -¤è¤êÂ礭¤ÊÃͤϰÕÌ£¤ò»ý¤¿¤Ê¤¤¡£ +より大きな値は意味を持たない。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O The name choice .\"O .B IPC_PRIVATE .\"O was perhaps unfortunate, .\"O .B IPC_NEW .\"O would more clearly show its function. .B IPC_PRIVATE -¤È¤¤¤¦Ì¾Á°¤òÁª¤ó¤À¤Î¤Ï¤ª¤½¤é¤¯¼ºÇԤǤ¢¤í¤¦¡£ +という名前を選んだのはおそらく失敗であろう。 .B IPC_NEW -¤ÎÊý¤¬¤è¤êÌÀ³Î¤Ë¤½¤Îµ¡Ç½¤òɽ¤·¤Æ¤¤¤ë¤À¤í¤¦¡£ +の方がより明確にその機能を表しているだろう。 .LP .\"O The semaphores in a set are not initialized by .\"O .BR semget (). @@ -470,19 +470,19 @@ semid .\"O or a .\"O .B SETALL .\"O operation on the semaphore set. -¥»¥Þ¥Õ¥©½¸¹çÆâ¤Î¥»¥Þ¥Õ¥©¤Ï +セマフォ集合内のセマフォは .BR semget () -¤Ç¤Ï½é´ü²½¤µ¤ì¤Ê¤¤¡£ -.\" ¼ÂºÝ¤Ï Linux ¤Ç¤Ï¥»¥Þ¥Õ¥©¤Ï 0 ¤Ë½é´ü²½¤µ¤ì¤ë¤¬¡¢ -.\" POSIX.1-2001 ¤Ç¤Ï¤³¤¦¤Ê¤ë¤³¤È¤òµ¬Äꤷ¤Æ¤¤¤ëÌõ¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢ -.\" °Ü¿¢¤ò¹Íθ¤¹¤ë¤È¤­¤Ë¤Ï¤³¤ì¤òÁ°Äó¤Ë¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ -¤³¤Î¥»¥Þ¥Õ¥©¤ò½é´ü²½¤¹¤ë¤Ë¤Ï¡¢¥»¥Þ¥Õ¥©½¸¹ç¤ËÂФ·¤Æ +では初期化されない。 +.\" 実際は Linux ではセマフォは 0 に初期化されるが、 +.\" POSIX.1-2001 ではこうなることを規定している訳ではないので、 +.\" 移植を考慮するときにはこれを前提にしてはいけない。 +このセマフォを初期化するには、セマフォ集合に対して .BR semctl (2) -¤ò»È¤Ã¤Æ +を使って .B SETVAL -¤« +か .B SETALL -Áàºî¤ò¼Â¹Ô¤¹¤ëɬÍפ¬¤¢¤ë¡£ +操作を実行する必要がある。 .\"O (Where multiple peers do not know who will be the first to .\"O initialize the set, checking for a nonzero .\"O .I sem_otime @@ -490,17 +490,17 @@ semid .\"O .BR semctl (2) .\"O .B IPC_STAT .\"O operation can be used to avoid races.) -(Ê£¿ô²Õ½ê¤«¤é¥»¥Þ¥Õ¥©½¸¹ç¤ÎÁàºî¤¬¹Ô¤ï¤ì¤ë¾ìÌ̤Ǥϡ¢ -郎ºÇ½é¤Ë½¸¹ç¤ò½é´ü²½¤¹¤ì¤Ð¤è¤¤¤«Ê¬¤«¤é¤Ê¤¤¡£ -¤³¤Î¾õ¶·¤òÈò¤±¤ë¤Ë¤Ï¡¢ +(複数箇所からセマフォ集合の操作が行われる場面では、 +誰が最初に集合を初期化すればよいか分からない。 +この状況を避けるには、 .BR semctl (2) -¤Î +の .B IPC_STAT -Áàºî¤Ç¼èÆÀ¤Ç¤­¤ë¥»¥Þ¥Õ¥©¤Î¥Ç¡¼¥¿¹½Â¤ÂΤΠ+操作で取得できるセマフォのデータ構造体の .I sem_otime -¤¬ 0 °Ê³°¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ì¤Ð¤è¤¤¡£) +が 0 以外になっているかをチェックすればよい。) .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR semctl (2), .BR semop (2), .BR ftok (3), diff --git a/draft/man2/semop.2 b/draft/man2/semop.2 index 729e7b56..2c314af0 100644 --- a/draft/man2/semop.2 +++ b/draft/man2/semop.2 @@ -40,29 +40,29 @@ .\" Updated 2005-09-06, Akihiro MOTOKI .\" Updated 2007-05-01, Akihiro MOTOKI, LDP v2.46 .\" -.\"WORD: semaphore ¥»¥Þ¥Õ¥© -.\"WORD: member ¥á¥ó¥Ð¡¼ -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: system call ¥·¥¹¥Æ¥à¥³¡¼¥ë -.\"WORD: undo ¥¢¥ó¥É¥¥ -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: catch Êá³Í(catch) -.\"WORD: process-ID ¥×¥í¥»¥¹ID -.\"WORD: policy Êý¿Ë -.\"WORD: implement ¼ÂÁõ -.\"WORD: queue ¥­¥å¡¼ -.\"WORD: free ²òÊü(free). -.\"WORD: memory ¥á¥â¥ê -.\"WORD: anonymous structure ̵̾¹½Â¤ÂÎ -.\"WORD: time limit À©¸Â»þ´Ö +.\"WORD: semaphore セマフォ +.\"WORD: member メンバー +.\"WORD: process プロセス +.\"WORD: system call システムコール +.\"WORD: undo アンドゥ +.\"WORD: signal シグナル +.\"WORD: catch 捕獲(catch) +.\"WORD: process-ID プロセスID +.\"WORD: policy 方針 +.\"WORD: implement 実装 +.\"WORD: queue キュー +.\"WORD: free 解放(free). +.\"WORD: memory メモリ +.\"WORD: anonymous structure 無名構造体 +.\"WORD: time limit 制限時間 \" .TH SEMOP 2 2008-10-04 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O semop, semtimedop \- semaphore operations -semop, semtimedop \- ¥»¥Þ¥Õ¥©¤ÎÁàºî +semop, semtimedop \- セマフォの操作 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -77,18 +77,18 @@ semop, semtimedop \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR semtimedop (): _GNU_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Each semaphore in a semaphore set has the following associated values: -¥»¥Þ¥Õ¥©½¸¹ç (semaphore set) ¤Î¥á¥ó¥Ð¡¼¤Î³Æ¥»¥Þ¥Õ¥©¤Ï -°Ê²¼¤Î´ØÏ¢¾ðÊó¤ò»ý¤Ã¤Æ¤¤¤ë: +セマフォ集合 (semaphore set) のメンバーの各セマフォは +以下の関連情報を持っている: .sp .in +4n .nf @@ -96,10 +96,10 @@ _GNU_SOURCE .\"O unsigned short semzcnt; /* # waiting for zero */ .\"O unsigned short semncnt; /* # waiting for increase */ .\"O pid_t sempid; /* process that did last op */ -unsigned short semval; /* ¥»¥Þ¥Õ¥©ÃÍ */ -unsigned short semzcnt; /* ¥¼¥í¤òÂÔ¤Ä¥×¥í¥»¥¹¿ô */ -unsigned short semncnt; /* Áý²Ã¤òÂÔ¤Ä¥×¥í¥»¥¹¿ô */ -pid_t sempid; /* ºÇ¸å¤ËÁàºî¤ò¹Ô¤Ê¤Ã¤¿¥×¥í¥»¥¹ */ +unsigned short semval; /* セマフォ値 */ +unsigned short semzcnt; /* ゼロを待つプロセス数 */ +unsigned short semncnt; /* 増加を待つプロセス数 */ +pid_t sempid; /* 最後に操作を行なったプロセス */ .sp .in -4n .fi @@ -107,9 +107,9 @@ pid_t sempid; /* .\"O performs operations on selected semaphores in the set indicated by .\"O .IR semid . .BR semop () -¤Ï +は .I semid -¤Ç»ØÄꤵ¤ì¤¿¥»¥Þ¥Õ¥©½¸¹ç¤ÎÁªÂò¤µ¤ì¤¿¥»¥Þ¥Õ¥©¤ËÂФ·¤ÆÁàºî¤ò¹Ô¤¦¡£ +で指定されたセマフォ集合の選択されたセマフォに対して操作を行う。 .\"O Each of the .\"O .I nsops .\"O elements in the array pointed to by @@ -119,21 +119,21 @@ pid_t sempid; /* .\"O .IR "struct sembuf" , .\"O containing the following members: .I sops -¤Ï +は .I nsops -¸Ä¤ÎÍ×ÁǤÎÇÛÎó¤ò»Ø¤·¡¢ÇÛÎó¤Î³ÆÍ×ÁǤϸġ¹¤Î¥»¥Þ¥Õ¥©¤Ë -ÂФ¹¤ëÁàºî¤ò¼¨¤¹¡£¤½¤Î·¿¤Ï +個の要素の配列を指し、配列の各要素は個々のセマフォに +対する操作を示す。その型は .I struct sembuf -¤Ç¡¢¼¡¤Î¥á¥ó¥Ð¤ò»ý¤Ä: +で、次のメンバを持つ: .sp .in +4n .nf .\"O unsigned short sem_num; /* semaphore number */ .\"O short sem_op; /* semaphore operation */ .\"O short sem_flg; /* operation flags */ -unsigned short sem_num; /* ¥»¥Þ¥Õ¥©ÈÖ¹æ */ -short sem_op; /* ¥»¥Þ¥Õ¥©Áàºî */ -short sem_flg; /* Áàºî¥Õ¥é¥° */ +unsigned short sem_num; /* セマフォ番号 */ +short sem_op; /* セマフォ操作 */ +short sem_flg; /* 操作フラグ */ .sp .in -4n .fi @@ -147,13 +147,13 @@ short sem_flg; /* .\"O .BR SEM_UNDO , .\"O it will be automatically undone when the process terminates. .I sem_flg -¤Ë¤Ï +には .B IPC_NOWAIT -¤È +と .B SEM_UNDO -¤¬ÀßÄê¤Ç¤­¤ë¡£ +が設定できる。 .B SEM_UNDO -¤¬»ØÄꤵ¤ì¤¿Áàºî¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿»þ¤Ë¼«Æ°Åª¤Ë¼è¤ê¾Ã¤µ¤ì¤ë¡£ +が指定された操作は、そのプロセスが終了した時に自動的に取り消される。 .PP .\"O The set of operations contained in .\"O .I sops @@ -164,13 +164,13 @@ short sem_flg; /* .\"O that is, the operations are performed either as a complete unit, .\"O or not at all. .I sops -¤Ë´Þ¤Þ¤ì¤ëÁàºî¤Î½¸¹ç¤Ï¡¢ -.I "ÇÛÎó¤Î½ç½ø" -¤Ç¡¢ -.I ¥¢¥È¥ß¥Ã¥¯¤Ë -¼Â¹Ô¤µ¤ì¤ë¡£ -¤¹¤Ê¤ï¤Á¡¢Á´¤Æ¤ÎÁàºî¤¬´°Á´¤Ë¼Â¹Ô¤µ¤ì¤ë¤«¡¢Á´¤¯¼Â¹Ô¤µ¤ì¤Ê¤¤¤«¤Î -¤É¤Á¤é¤«¤È¤Ê¤ë¡£ +に含まれる操作の集合は、 +.I "配列の順序" +で、 +.I アトミックに +実行される。 +すなわち、全ての操作が完全に実行されるか、全く実行されないかの +どちらかとなる。 .\"O The behavior of the system call if not all operations can be .\"O performed immediately depends on the presence of the @@ -178,26 +178,26 @@ short sem_flg; /* .\"O flag in the individual .\"O .I sem_flg .\"O fields, as noted below. -Á´¤Æ¤ÎÁàºî¤¬Ä¾¤Á¤Ë¼Â¹Ô¤Ç¤­¤Ê¤¤¾ì¹ç¤Î¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¿¶¤ëÉñ¤¤¤Ï -¸Ä¡¹¤ÎÁàºî¤Î +全ての操作が直ちに実行できない場合のこのシステムコールの振る舞いは +個々の操作の .I sem_flg -¥Õ¥£¡¼¥ë¥É¤Ë +フィールドに .B IPC_NOWAIT -¤¬Â¸ºß¤¹¤ë¤«¤Ë¤è¤Ã¤Æ·è¤Þ¤ê¡¢¸å½Ò¤Î¤è¤¦¤Ë¤Ê¤ë¡£ +が存在するかによって決まり、後述のようになる。 .\"O Each operation is performed on the .\"O .IR sem_num \-th .\"O semaphore of the semaphore set, where the first semaphore of the set .\"O is numbered 0. -¤½¤ì¤¾¤ì¤ÎÁàºî¤Ï¥»¥Þ¥Õ¥©½¸¹ç¤Î -.IR sem_num ÈÖÌÜ -¤Î¥»¥Þ¥Õ¥©¤ËÂФ·¤Æ¼Â¹Ô¤µ¤ì¤ë¡£¥»¥Þ¥Õ¥©½¸¹ç¤ÎºÇ½é¤Î¥»¥Þ¥Õ¥©¤Ë¤Ï -ÈÖ¹æ 0 ¤¬¿¶¤é¤ì¤ë¡£ +それぞれの操作はセマフォ集合の +.IR sem_num 番目 +のセマフォに対して実行される。セマフォ集合の最初のセマフォには +番号 0 が振られる。 .\"O There are three types of operation, distinguished by the value of .\"O .IR sem_op . -¤½¤·¤ÆÁàºî¤Ï»°¼ïÎढ¤ê¡¢ +そして操作は三種類あり、 .I sem_op -¤ÎÃͤǶèÊ̤µ¤ì¤ë¡£ +の値で区別される。 .PP .\"O If .\"O .I sem_op @@ -212,15 +212,15 @@ short sem_flg; /* .\"O This operation can always proceed\(emit never forces a process to wait. .\"O The calling process must have alter permission on the semaphore set. .I sem_op -¤¬Àµ¤ÎÀ°¿ô¤Î¾ì¹ç¡¢Áàºî¤È¤·¤Æ¤½¤ÎÃͤò¥»¥Þ¥Õ¥©¤ÎÃÍ +が正の整数の場合、操作としてその値をセマフォの値 .RI ( semval ) -¤Ë²Ã¤¨¤ë¡£¤µ¤é¤Ë¤³¤ÎÁàºî¤Ë +に加える。さらにこの操作に .B SEM_UNDO -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¥·¥¹¥Æ¥à¤Ï¤³¤Î¥»¥Þ¥Õ¥©¤Î ¥×¥í¥»¥¹¡¦¥¢¥ó¥É¥¥¿ô +が指定されている場合は、システムはこのセマフォの プロセス・アンドゥ数 .RI ( semadj ) -¤ò¹¹¿·¤¹¤ë¡£ -¤³¤ÎÁàºî¤Ïɬ¤º¼Â¹Ô¤Ç¤­¡¢¥×¥í¥»¥¹¤ÎÄä»ß¤Ïµ¯¤³¤é¤Ê¤¤¡£ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤ÏÂоݤΥ»¥Þ¥Õ¥©½¸¹ç¤òÊѹ¹¤¹¤ëµö²Ä¤¬¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を更新する。 +この操作は必ず実行でき、プロセスの停止は起こらない。 +呼び出し元プロセスは対象のセマフォ集合を変更する許可がなければならない。 .PP .\"O If .\"O .I sem_op @@ -230,10 +230,10 @@ short sem_flg; /* .\"O .I semval .\"O is zero, the operation can immediately proceed. .I sem_op -¤¬ 0 ¤Î¾ì¹ç¡¢¡Ö¥¼¥í¤Þ¤ÇÂԤġ×Áàºî¤Ç¤¢¤ë¡£¤³¤Î¾ì¹ç¡¢¥×¥í¥»¥¹¤Ï -¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤ËÂФ¹¤ëÆɤ߹þ¤ßµö²Ä¤¬¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +が 0 の場合、「ゼロまで待つ」操作である。この場合、プロセスは +そのセマフォ集合に対する読み込み許可がなければならない。 .I semval -¤¬ 0 ¤Ê¤é¤Ð¡¢Áàºî¤Ïľ¤Á¤Ë¹Ô¤ï¤ì¤ë¡£ +が 0 ならば、操作は直ちに行われる。 .\"O Otherwise, if .\"O .B IPC_NOWAIT .\"O is specified in @@ -247,40 +247,40 @@ short sem_flg; /* .\"O .I sops .\"O is performed). .I semval -¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が 0 でない場合、 .I sem_flg -¤Ë +に .B IPC_NOWAIT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢ +が指定されていれば、 .BR semop () -¤Ï¼ºÇÔ¤·¡¢ +は失敗し、 .B errno -¤Ë +に .B EAGAIN -¤¬ÀßÄꤵ¤ì¤ë (¤³¤Î¤È¤­ +が設定される (このとき .I sops -¤ËÂФ¹¤ëÁàºî¤ÏÁ´¤¯¼Â¹Ô¤µ¤ì¤Ê¤¤)¡£ +に対する操作は全く実行されない)。 .\"O Otherwise .\"O .I semzcnt .\"O (the count of processes waiting until this semaphore's value becomes zero) .\"O is incremented by one and the process sleeps until .\"O one of the following occurs: .I sem_flg -¤Ë +に .B IPC_NOWAIT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +が指定されていない場合、 .I semzcnt -(¥»¥Þ¥Õ¥©Ãͤ¬ 0 ¤Ë¤Ê¤ë¤Î¤òÂԤäƤ¤¤ë¥×¥í¥»¥¹¤Î¿ô) ¤ò 1 Áý²Ã¤µ¤»¤Æ¡¢ -°Ê²¼¤Î¤¤¤º¤ì¤«¤¬µ¯¤³¤ë¤Þ¤Ç¥×¥í¥»¥¹¤òÄä»ß (sleep) ¤¹¤ë¡£ +(セマフォ値が 0 になるのを待っているプロセスの数) を 1 増加させて、 +以下のいずれかが起こるまでプロセスを停止 (sleep) する。 .IP \(bu 3 .\"O .I semval .\"O becomes 0, at which time the value of .\"O .I semzcnt .\"O is decremented. .I semval -¤¬ 0 ¤Ë¤Ê¤Ã¤¿: ¤³¤Î¤È¤­ +が 0 になった: このとき .I semzcnt -¤ÎÃÍ¤Ï 1 ¸º»»¤µ¤ì¤ë¡£ +の値は 1 減算される。 .IP \(bu .\"O The semaphore set .\"O is removed: @@ -289,13 +289,13 @@ short sem_flg; /* .\"O .I errno .\"O set to .\"O .BR EIDRM . -¥»¥Þ¥Õ¥©½¸¹ç¤¬ºï½ü¤µ¤ì¤¿: ¤³¤Î¤È¤­ +セマフォ集合が削除された: このとき .BR semop () -¤Ï¼ºÇÔ¤·¡¢ +は失敗し、 .I errno -¤Ë +に .B EIDRM -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .IP \(bu .\"O The calling process catches a signal: .\"O the value of @@ -306,15 +306,15 @@ short sem_flg; /* .\"O .I errno .\"O set to .\"O .BR EINTR . -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤òÊá³Í¤·¤¿: ¤³¤Î¤È¤­ +呼び出し元プロセスがシグナルを捕獲した: このとき .I semzcnt -¤ÎÃÍ¤Ï 1 ¸º»»¤µ¤ì¡¢ +の値は 1 減算され、 .BR semop () -¤Ï¼ºÇÔ¤· +は失敗し .I errno -¤Ë +に .B EINTR -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .IP \(bu .\"O The time limit specified by .\"O .I timeout @@ -326,17 +326,17 @@ short sem_flg; /* .\"O .I errno .\"O set to .\"O .BR EAGAIN . -.\" motoki: semop () ¤Ï semtimedop () ¤Î´Ö°ã¤¤¡© +.\" motoki: semop () は semtimedop () の間違い? .BR semtimedop () -¤Î +の .I timeout -¤Ç»ØÄꤵ¤ì¤¿À©¸Â»þ´Ö¤¬·Ð²á¤·¤¿: ¤³¤Î¤È¤­ +で指定された制限時間が経過した: このとき .BR semtimedop () -¤Ï¼ºÇÔ¤·¡¢ +は失敗し、 .I errno -¤Ë +に .B EAGAIN -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .PP .\"O If .\"O .I sem_op @@ -357,21 +357,21 @@ short sem_flg; /* .\"O .RI ( semadj ) .\"O for this semaphore. .I sem_op -¤¬ 0 ̤Ëþ¤Î¾ì¹ç¡¢¥×¥í¥»¥¹¤Ë¤Ï¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤òÊѹ¹¤¹¤ëµö²Ä¤¬¤Ê¤±¤ì¤Ð -¤Ê¤é¤Ê¤¤¡£ +が 0 未満の場合、プロセスにはそのセマフォ集合を変更する許可がなければ +ならない。 .I semval -¤¬ +が .I sem_op -¤ÎÀäÂÐÃͰʾå¤Î¾ì¹ç¤Ï¡¢Áàºî¤Ïľ¤Á¤Ë¼Â¹Ô¤µ¤ì¤ë: +の絶対値以上の場合は、操作は直ちに実行される: .I semval -¤«¤é +から .I sem_op -¤ÎÀäÂÐÃͤ¬¸º»»¤µ¤ì¤ë¡£ -¤µ¤é¤Ë¡¢¤³¤ÎÁàºî¤Ë +の絶対値が減算される。 +さらに、この操作に .B SEM_UNDO -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤³¤Î¥»¥Þ¥Õ¥©¤Î¥×¥í¥»¥¹¡¦¥¢¥ó¥É¥¥¿ô +が指定されている場合は、このセマフォのプロセス・アンドゥ数 .RI ( semadj ) -¤ò¹¹¿·¤¹¤ë¡£ +を更新する。 .\"O If the absolute value of .\"O .I sem_op .\"O is greater than @@ -389,31 +389,31 @@ short sem_flg; /* .\"O .I sops .\"O is performed). .I semval -¤¬ +が .I sem_op -¤ÎÀäÂÐÃͤè¤ê¾®¤µ¤¯¡¢ +の絶対値より小さく、 .I sem_flg -¤Ë +に .B IPC_NOWAIT -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢ +が指定された場合は、 .BR semop () -¤Ï¼ºÇÔ¤·¡¢ +は失敗し、 .I errno -¤Ë +に .B EAGAIN -¤¬ÀßÄꤵ¤ì¤ë (¤³¤Î¤È¤­ +が設定される (このとき .I sops -¤ÎÁàºî¤ÏÁ´¤¯¼Â¹Ô¤µ¤ì¤Ê¤¤)¡£ +の操作は全く実行されない)。 .\"O Otherwise .\"O .I semncnt .\"O (the counter of processes waiting for this semaphore's value to increase) .\"O is incremented by one and the process sleeps until .\"O one of the following occurs: .B IPC_WAIT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ +が指定されていなければ、 .I semncnt -(¤³¤Î¥»¥Þ¥Õ¥©¤ÎÃͤ¬Áý²Ã¤¹¤ë¤Î¤òÂԤäƤ¤¤ë¥×¥í¥»¥¹¿ô¤Î¥«¥¦¥ó¥¿) -¤ò 1 Áý²Ã¤µ¤»¤Æ¡¢°Ê²¼¤Î¤¤¤º¤ì¤«¤¬µ¯¤³¤ë¤Þ¤Ç¥×¥í¥»¥¹¤òÄä»ß (sleep) ¤¹¤ë¡£ +(このセマフォの値が増加するのを待っているプロセス数のカウンタ) +を 1 増加させて、以下のいずれかが起こるまでプロセスを停止 (sleep) する。 .IP \(bu 3 .\"O .I semval .\"O becomes greater than or equal to the absolute value of @@ -430,20 +430,20 @@ short sem_flg; /* .\"O .RI ( semadj ) .\"O for this semaphore. .I semval -¤¬ +が .I sem_op -¤ÎÀäÂÐÃͰʾå¤Ë¤Ê¤Ã¤¿: ¤³¤Î¤È¤­ +の絶対値以上になった: このとき .I semncnt -¤¬ 1 ¸º»»¤µ¤ì¡¢ +が 1 減算され、 .I semval -¤«¤é +から .I sem_op -¤ÎÀäÂÐÃͤ¬°ú¤«¤ì¤ë¡£ -¤³¤ÎÁàºî¤Ë +の絶対値が引かれる。 +この操作に .B SEM_UNDO -¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ë¤Ï¤³¤Î¥»¥Þ¥Õ¥©¤Î¥×¥í¥»¥¹¡¦¥¢¥ó¥É¥¥¿ô +が指定されていた場合にはこのセマフォのプロセス・アンドゥ数 .RI ( semadj ) -¤â¹¹¿·¤¹¤ë¡£ +も更新する。 .IP \(bu .\"O The semaphore set is removed from the system: .\"O .BR semop () @@ -451,13 +451,13 @@ short sem_flg; /* .\"O .I errno .\"O set to .\"O .BR EIDRM . -¥»¥Þ¥Õ¥©½¸¹ç¤¬¥·¥¹¥Æ¥à¤«¤éºï½ü¤µ¤ì¤¿: ¤³¤Î¤È¤­ +セマフォ集合がシステムから削除された: このとき .BR semop () -¤Ï¼ºÇÔ¤· +は失敗し .I errno -¤Ë +に .B EIDRM -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .IP \(bu .\"O The calling process catches a signal: .\"O the value of @@ -468,15 +468,15 @@ short sem_flg; /* .\"O .I errno .\"O set to .\"O .BR EINTR . -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤òÊá³Í¤·¤¿: ¤³¤Î¤È¤­ +呼び出したプロセスがシグナルを捕獲した: このとき .I semncnt -¤¬ 1 ¸º»»¤µ¤ì¡¢ +が 1 減算され、 .BR semop () -¤Ï¼ºÇÔ¤· +は失敗し .I errno -¤Ë +に .B EINTR -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .IP \(bu .\"O The time limit specified by .\"O .I timeout @@ -486,38 +486,38 @@ short sem_flg; /* .\"O .I errno .\"O set to .\"O .BR EAGAIN . -.\" motoki: the system call ¤Ï semtimedop () ¤Î¤³¤È¡© +.\" motoki: the system call は semtimedop () のこと? .BR semtimedop () -¤Î +の .I timeout -¤Ç»ØÄꤵ¤ì¤¿À©¸Â»þ´Ö¤¬·Ð²á¤·¤¿: ¤³¤Î¤È¤­ +で指定された制限時間が経過した: このとき .BR semtimedop () -¤Ï¼ºÇÔ¤·¡¢ +は失敗し、 .I errno -¤Ë +に .B EAGAIN -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .PP .\"O On successful completion, the .\"O .I sempid .\"O value for each semaphore specified in the array pointed to by .\"O .I sops .\"O is set to the process ID of the calling process. -Áàºî¤¬À®¸ù¤·¤¿¾ì¹ç¡¢ +操作が成功した場合、 .I sops -¤¬»Ø¤¹ÇÛÎó¤Ë¤è¤Ã¤ÆÁàºîÂоݤȤʤ俳ƥ»¥Þ¥Õ¥©¤Î +が指す配列によって操作対象となった各セマフォの .I sempid -¥á¥ó¥Ð¡¼¤Ë¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤¬ÀßÄꤵ¤ì¤ë¡£ +メンバーには呼び出したプロセスのプロセス ID が設定される。 .\"O In addition, the .\"O .I sem_otime .\"O .\" and .\"O .\" .I sem_ctime .\"O is set to the current time. -¤µ¤é¤Ë +さらに .I sem_otime -.\" ¤È +.\" と .\" .I sem_ctime -¤Ë¸½ºß»þ¹ï¤¬ÀßÄꤵ¤ì¤ë¡£ +に現在時刻が設定される。 .PP .\"O The function .\"O .BR semtimedop () @@ -531,14 +531,14 @@ short sem_flg; /* .\"O .I timeout .\"O argument. .BR semtimedop () -´Ø¿ô¤Î¿¶¤ëÉñ¤¤¤Ï +関数の振る舞いは .BR semop () -¤ÈÁ´¤¯Æ±¤¸¤À¤¬¡¢ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬Ää»ß¤¹¤ë¾ì¹ç¡¢Ää»ß´ü´Ö¤Î¾å¸Â¤¬ +と全く同じだが、 +呼び出し元プロセスが停止する場合、停止期間の上限が .I timeout -°ú¤­¿ô¤Î»Ø¤¹ +引き数の指す .I timespec -¹½Â¤ÂΤǻØÄꤵ¤ì¤¿»þ´Ö¤È¤Ê¤ëÅÀ¤À¤±¤¬°Û¤Ê¤ë¡£ +構造体で指定された時間となる点だけが異なる。 .\"O If the specified time limit has been reached, .\"O .BR semtimedop () .\"O fails with @@ -548,16 +548,16 @@ short sem_flg; /* .\"O (and none of the operations in .\"O .I sops .\"O is performed). -»ØÄꤷ¤¿À©¸Â»þ´Ö¤Ë㤷¤¿¾ì¹ç¤Ï¡¢ +指定した制限時間に達した場合は、 .BR semtimedop () -¤Ï¼ºÇÔ¤·¡¢ +は失敗し、 .I errno -¤Ë +に .B EAGAIN -¤¬ÀßÄꤵ¤ì¤ë -(¤³¤Î¤È¤­ +が設定される +(このとき .I sops -¤ÎÁàºî¤Ï¼Â¹Ô¤µ¤ì¤Ê¤¤)¡£ +の操作は実行されない)。 .\"O If the .\"O .I timeout .\"O argument is NULL, @@ -566,13 +566,13 @@ short sem_flg; /* .\"O behaves exactly like .\"O .BR semop (). .I timeout -°ú¤­¿ô¤¬ NULL ¤Î¾ì¹ç¡¢ +引き数が NULL の場合、 .BR semtimedop () -´Ø¿ô¤Î¿¶¤ëÉñ¤¤¤Ï +関数の振る舞いは .BR semop () -´Ø¿ô¤ÈÁ´¤¯Æ±¤¸¤Ë¤Ê¤ë¡£ +関数と全く同じになる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O If successful .\"O .BR semop () .\"O and @@ -582,22 +582,22 @@ short sem_flg; /* .\"O with .\"O .I errno .\"O indicating the error. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR semop () -¤È +と .BR semtimedop () -¤Ï 0 ¤òÊÖ¤¹¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð \-1 ¤òÊÖ¤·¡¢ -¥¨¥é¡¼¤ò¼¨¤¹ +は 0 を返す。そうでなければ \-1 を返し、 +エラーを示す .I errno -¤òÀßÄꤹ¤ë¡£ +を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O On failure, .\"O .I errno .\"O is set to one of the following: -¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +失敗した場合、 .I errno -¤Ë°Ê²¼¤Î¤É¤ì¤«¤¬ÀßÄꤵ¤ì¤ë: +に以下のどれかが設定される: .TP .B E2BIG .\"O The argument @@ -607,11 +607,11 @@ short sem_flg; /* .\"O the maximum number of operations allowed per system .\"O call. .I nsops -°ú¤­¿ô¤¬ +引き数が .B SEMOPM -¤è¤êÂ礭¤¤¡£ +より大きい。 .B SEMOPM -¤Ï°ì²ó¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Çµö¤µ¤ì¤ëÁàºî¤ÎºÇÂç¸Ä¿ô¤Ç¤¢¤ë¡£ +は一回のシステムコールで許される操作の最大個数である。 .TP .B EACCES .\"O The calling process does not have the permissions required @@ -619,10 +619,10 @@ short sem_flg; /* .\"O and does not have the .\"O .B CAP_IPC_OWNER .\"O capability. -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë¤Ï»ØÄꤵ¤ì¤¿¥»¥Þ¥Õ¥©Áàºî¤ò¹Ô¤¦¤Î¤Ë -ɬÍפʥ¢¥¯¥»¥¹µö²Ä¤¬¤Ê¤¯¡¢ +呼び出し元プロセスには指定されたセマフォ操作を行うのに +必要なアクセス許可がなく、 .B CAP_IPC_OWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤â¤Ê¤¤¡£ +ケーパビリティもない。 .TP .B EAGAIN .\"O An operation could not proceed immediately and either @@ -632,13 +632,13 @@ short sem_flg; /* .\"O or the time limit specified in .\"O .I timeout .\"O expired. -Áàºî¤òľ¤Á¤Ë½èÍý¤¹¤ë¤³¤È¤¬¤Ç¤­¤º¡¢¤«¤Ä +操作を直ちに処理することができず、かつ .I sem_flg -¤Ë +に .B IPC_NOWAIT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤« +が指定されているか .I timeout -¤Ç»ØÄꤵ¤ì¤¿À©¸Â»þ´Ö¤¬·Ð²á¤·¤¿¡£ +で指定された制限時間が経過した。 .TP .B EFAULT .\"O An address specified in either the @@ -646,31 +646,31 @@ short sem_flg; /* .\"O or the .\"O .I timeout .\"O arguments isn't accessible. -°ú¤­¿ô +引き数 .I sops -¤« +か .I timeout -¤¬»Ø¤·¤Æ¤¤¤ë¥¢¥É¥ì¥¹¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¡£ +が指しているアドレスにアクセスできない。 .TP .B EFBIG .\"O For some operation the value of .\"O .I sem_num .\"O is less than 0 or greater than or equal to the number .\"O of semaphores in the set. -¤¢¤ëÁàºî¤Ç¡¢ +ある操作で、 .I sem_num -¤ÎÃͤ¬ 0 ̤Ëþ¤«¡¢½¸¹çÆâ¤Î¥»¥Þ¥Õ¥©¤Î¿ô°Ê¾å¤Ç¤¢¤ë¡£ +の値が 0 未満か、集合内のセマフォの数以上である。 .TP .B EIDRM .\"O The semaphore set was removed. -¥»¥Þ¥Õ¥©½¸¹ç¤¬ºï½ü¤µ¤ì¤¿¡£ +セマフォ集合が削除された。 .TP .B EINTR .\"O While blocked in this system call, the process caught a signal; see .\"O .BR signal (7). -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÇÄä»ß¤·¤Æ¤¤¤ë»þ¤Ë¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤òÊá³Í¤·¤¿¡£ +このシステムコールで停止している時にプロセスがシグナルを捕獲した。 .BR single (7) -»²¾È¡£ +参照。 .TP .B EINVAL .\"O The semaphore set doesn't exist, or @@ -678,11 +678,11 @@ short sem_flg; /* .\"O is less than zero, or .\"O .I nsops .\"O has a nonpositive value. -¥»¥Þ¥Õ¥©½¸¹ç¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢ +セマフォ集合が存在しないか、 .I semid -¤¬ 0 ̤Ëþ¤Ç¤¢¤ë¤«¡¢ +が 0 未満であるか、 .I nsops -¤¬Àµ¤Î¿ô¤Ç¤Ê¤¤¡£ +が正の数でない。 .TP .B ENOMEM .\"O The @@ -691,11 +691,11 @@ short sem_flg; /* .\"O .B SEM_UNDO .\"O and the system does not have enough memory to allocate the undo .\"O structure. -¤¢¤ëÁàºî¤Ç +ある操作で .I sem_flg -¤Ë +に .B SEM_UNDO -¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¥·¥¹¥Æ¥à¤Ë¥¢¥ó¥É¥¥¹½Â¤ÂΤ˳ä¤êÅö¤Æ¤ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +が指定されたが、システムにアンドゥ構造体に割り当てる十分なメモリがない。 .TP .B ERANGE .\"O For some operation @@ -704,36 +704,36 @@ short sem_flg; /* .\"O .BR SEMVMX , .\"O the implementation dependent maximum value for .\"O .IR semval . -¤¢¤ëÁàºî¤Ç +ある操作で .I sem_op+semval -¤¬ +が .B SEMVMX -¤è¤êÂ礭¤¤¡£ +より大きい。 .B SEMVMX -¤Ï +は .I semval -¤ÎºÇÂçÃͤǡ¢¤½¤ÎÃͤϼÂÁõ°Í¸¤Ç¤¢¤ë¡£ +の最大値で、その値は実装依存である。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR semtimedop () .\"O first appeared in Linux 2.5.52, .\"O and was subsequently backported into kernel 2.4.22. .BR semtimedop () -¤Ï Linux 2.5.52 ¤Ç½é¤á¤ÆÅо줷¡¢ -¤½¤ì¤«¤é¥«¡¼¥Í¥ë 2.4.22 ¤Ë¤â°Ü¿¢¤µ¤ì¤¿¡£ +は Linux 2.5.52 で初めて登場し、 +それからカーネル 2.4.22 にも移植された。 .\"O Glibc support for .\"O .BR semtimedop () .\"O first appeared in version 2.3.3. .BR semtimedop () -¤Î glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.3.3 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +の glibc でのサポートはバージョン 2.3.3 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001. .\"O .\" SVr4 documents additional error conditions EINVAL, EFBIG, ENOSPC. -.\" SVr4 ¤Ë¤Ï¡¢ÄÉ²Ã¤Ç EINVAL, EFBIG, ENOSPC ¤Î¥¨¥é¡¼¾õÂ֤ˤĤ¤¤Æ¤Î -.\" µ­½Ò¤¬¤¢¤ë¡£ +.\" SVr4 には、追加で EINVAL, EFBIG, ENOSPC のエラー状態についての +.\" 記述がある。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The .\"O .I sem_undo .\"O structures of a process aren't inherited by the child produced by @@ -741,13 +741,13 @@ SVr4, POSIX.1-2001. .\"O but they are inherited across an .\"O .BR execve (2) .\"O system call. -¤¢¤ë¥×¥í¥»¥¹¤Î +あるプロセスの .I sem_undo -¹½Â¤ÂÎ¤Ï +構造体は .BR fork (2) -¤ÇÀ¸À®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ë¤Ï·Ñ¾µ¤µ¤ì¤Ê¤¤¤¬¡¢ +で生成された子プロセスには継承されないが、 .BR execve (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¾ì¹ç¤Ï·Ñ¾µ¤µ¤ì¤ë¡£ +システムコールの場合は継承される。 .PP .\"O .BR semop () .\"O is never automatically restarted after being interrupted by a signal handler, @@ -755,11 +755,11 @@ SVr4, POSIX.1-2001. .\"O .B SA_RESTART .\"O flag when establishing a signal handler. .BR semop () -¤Ï¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤Ã¤ÆÃæÃǤµ¤ì¤¿¸å¤Ë¡¢ -·è¤·¤Æ¼«Æ°Åª¤ËºÆ³«¤¹¤ë¤³¤È¤Ï¤Ê¤¤¡£ -¤¿¤È¤¨¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ÎÀßÄê»þ¤Ë +はシグナルハンドラによって中断された後に、 +決して自動的に再開することはない。 +たとえシグナルハンドラの設定時に .B SA_RESTART -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Æ¤âºÆ³«¤¹¤ë¤³¤È¤Ï¤Ê¤¤ +フラグがセットされていても再開することはない .PP .\"O .I semadj .\"O is a per-process integer which is simply the (negative) count @@ -767,9 +767,9 @@ SVr4, POSIX.1-2001. .\"O .B SEM_UNDO .\"O flag. .I semadj -¤Ï¥×¥í¥»¥¹¤´¤È¤ÎÀ°¿ô¤Ç¡¢ +はプロセスごとの整数で、 .B SEM_UNDO -¥Õ¥é¥°¤òÀßÄꤷ¤Æ¼Â¹Ô¤µ¤ì¤¿Á´¤Æ¤Î¥»¥Þ¥Õ¥©Áàºî¤Î(Éé¿ô¤Î)¥«¥¦¥ó¥¿¤Ç¤¢¤ë¡£ +フラグを設定して実行された全てのセマフォ操作の(負数の)カウンタである。 .\"O When a semaphore's value is directly set using the .\"O .B SETVAL .\"O or @@ -780,30 +780,30 @@ SVr4, POSIX.1-2001. .\"O .I semadj .\"O values in all processes are cleared. .BR semctl (2) -¤Ë +に .B SETVAL -¤Þ¤¿¤Ï +または .B SETALL -¤ò»ØÄꤷ¡¢¥»¥Þ¥Õ¥©¤ÎÃͤ¬ -ľÀÜÀßÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢Á´¤Æ¤Î¥×¥í¥»¥¹¤Ë¤ª¤¤¤ÆÂбþ¤¹¤ë +を指定し、セマフォの値が +直接設定された場合には、全てのプロセスにおいて対応する .I semadj -¤ÎÃͤ¬¥¯¥ê¥¢¤µ¤ì¤ë¡£ +の値がクリアされる。 .PP .\"O The \fIsemval\fP, \fIsempid\fP, \fIsemzcnt\fP, and \fIsemnct\fP values .\"O for a semaphore can all be retrieved using appropriate .\"O .BR semctl (2) .\"O calls. -¤¢¤ë¥»¥Þ¥Õ¥©¤Î \fIsemval\fP, \fIsempid\fP, \fIsemzcnt\fP, \fIsemnct\fP -¤ÎÃͤϤ¤¤º¤ì¤â¡¢Å¬ÀÚ¤ÊÁàºî¤ò»ØÄꤷ¤Æ +あるセマフォの \fIsemval\fP, \fIsempid\fP, \fIsemzcnt\fP, \fIsemnct\fP +の値はいずれも、適切な操作を指定して .BR semctl (2) -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¼èÆÀ¤Ç¤­¤ë¡£ +を呼び出すことで取得できる。 .PP .\"O The following limits on semaphore set resources affect the .\"O .BR semop () .\"O call: -¥»¥Þ¥Õ¥©½¸¹ç¤Î¥ê¥½¡¼¥¹¤Ë´Ø¤¹¤ëÀ©¸Â¤Î¤¦¤Á¡¢ +セマフォ集合のリソースに関する制限のうち、 .BR semop () -¤Ë±Æ¶Á¤òµÚ¤Ü¤¹¤â¤Î¤ò°Ê²¼¤Ëµó¤²¤ë: +に影響を及ぼすものを以下に挙げる: .TP .B SEMOPM .\"O Maximum number of operations allowed for one @@ -812,20 +812,20 @@ SVr4, POSIX.1-2001. .\"O (on Linux, this limit can be read and modified via the third field of .\"O .IR /proc/sys/kernel/sem ). .\"O .\" This /proc file is not available in Linux 2.2 and earlier -- MTK -°ì²ó¤Î +一回の .BR semop () -¤Çµö¤µ¤ì¤ëÁàºî¤ÎºÇÂç¿ô (32)¡£ -(Linux ¤Ç¤Ï¡¢¤³¤ÎÀ©¸ÂÃÍ¤Ï +で許される操作の最大数 (32)。 +(Linux では、この制限値は .I /proc/sys/kernel/sem -¤ÎÂè3¥Õ¥£¡¼¥ë¥É¤ËÂбþ¤·¡¢Æɤ߽Ф·¤âÊѹ¹¤â¤Ç¤­¤ë)¡£ -.\" ¤³¤Î /proc ¥Õ¥¡¥¤¥ë¤Ï Linux 2.2 °ÊÁ°¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤ -- MTK +の第3フィールドに対応し、読み出しも変更もできる)。 +.\" この /proc ファイルは Linux 2.2 以前では利用できない -- MTK .TP .B SEMVMX .\"O Maximum allowable value for .\"O .IR semval : .\"O implementation dependent (32767). .I semval -¤¬¼è¤êÆÀ¤ëºÇÂçÃÍ: ¼ÂÁõ°Í¸ (32767)¡£ +が取り得る最大値: 実装依存 (32767)。 .PP .\"O The implementation has no intrinsic limits for .\"O the adjust on exit maximum value @@ -833,52 +833,52 @@ SVr4, POSIX.1-2001. .\"O the system wide maximum number of undo structures .\"O .RB ( SEMMNU ) .\"O and the per-process maximum number of undo entries system parameters. -°Ê²¼¤ÎÃͤ˴ؤ·¤Æ¤Ï¼ÂÁõ°Í¸¤ÎÀ©¸Â¤Ï¤Ê¤¤¡£ -½ªÎ»»þ¤ÎÄ´À° (adjust on exit) ¤ÎºÇÂçÃÍ -.RB ( SEMAEM )¡¢ -¥·¥¹¥Æ¥àÁ´ÂΤΥ¢¥ó¥É¥¥¹½Â¤ÂΤκÇÂç¿ô -.RB ( SEMMNU )¡¢ -¥×¥í¥»¥¹¤¢¤¿¤ê¤Î¥¢¥ó¥É¥¥¹½Â¤ÂΤκÇÂç¿ô¡£ +以下の値に関しては実装依存の制限はない。 +終了時の調整 (adjust on exit) の最大値 +.RB ( SEMAEM )、 +システム全体のアンドゥ構造体の最大数 +.RB ( SEMMNU )、 +プロセスあたりのアンドゥ構造体の最大数。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O When a process terminates, its set of associated .\"O .I semadj .\"O structures is used to undo the effect of all of the .\"O semaphore operations it performed with the .\"O .B SEM_UNDO .\"O flag. -¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ëºÝ¡¢¥×¥í¥»¥¹¤ËÂбþ¤¹¤ë +プロセスが終了する際、プロセスに対応する .I semadj -¤Î½¸¹ç¤ò»È¤Ã¤Æ¡¢ +の集合を使って、 .B SEM_UNDO -¥Õ¥é¥°ÉÕ¤­¤Ç¼Â¹Ô¤µ¤ì¤¿Á´¤Æ¤Î¥»¥Þ¥Õ¥©Áàºî¤Î±Æ¶Á¤ò¼è¤ê¾Ã¤¹¡£ +フラグ付きで実行された全てのセマフォ操作の影響を取り消す。 .\"O This raises a difficulty: if one (or more) of these semaphore adjustments .\"O would result in an attempt to decrease a semaphore's value below zero, .\"O what should an implementation do? -¤³¤ì¤Ë¤è¤ê¤¢¤ëÌäÂ꤬ȯÀ¸¤¹¤ë: ¤³¤ì¤é¤Î¥»¥Þ¥Õ¥©¤ÎÄ´À°¤ò¹Ô¤Ã¤Æ¤¤¤ë¤È¡¢ -Ãæ¤Ë¤Ï¥»¥Þ¥Õ¥©¤ÎÃͤ¬ 0 ̤Ëþ¤ÎÃͤˤ·¤è¤¦¤È¤¹¤ë¾ì¹ç¤¬½Ð¤Æ¤¯¤ë¡£ -¤³¤Î¤è¤¦¤Ê¾ì¹ç¡¢¤É¤Î¤è¤¦¤Ë¼ÂÁõ¤¹¤ë¤Ù¤­¤«? +これによりある問題が発生する: これらのセマフォの調整を行っていると、 +中にはセマフォの値が 0 未満の値にしようとする場合が出てくる。 +このような場合、どのように実装するべきか? .\"O One possible approach would be to block until all the semaphore .\"O adjustments could be performed. .\"O This is however undesirable since it could force process termination to .\"O block for arbitrarily long periods. -¤Ò¤È¤Ä¤Î¹Í¤¨¤é¤ì¤ë¼êË¡¤Ï¡¢Á´¤Æ¤Î¥»¥Þ¥Õ¥©Ä´À°¤¬¼Â¹Ô¤µ¤ì¤ë¤Þ¤Ç -Ää»ß¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£¤·¤«¤·¡¢¤³¤ÎÊýË¡¤Ç¤Ï¥×¥í¥»¥¹¤Î½ªÎ»¤¬ -Ĺ»þ´Ö¤Ë¤ï¤¿¤Ã¤ÆÄä»ß¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¤Î¤Ç˾¤Þ¤·¤¯¤Ê¤¤¡£ -¤·¤«¤â¤É¤ì¤¯¤é¤¤Ä¹»þ´Ö¤Ë¤Ê¤ë¤«¤Ïʬ¤«¤é¤Ê¤¤¡£ +ひとつの考えられる手法は、全てのセマフォ調整が実行されるまで +停止することである。しかし、この方法ではプロセスの終了が +長時間にわたって停止されることがあるので望ましくない。 +しかもどれくらい長時間になるかは分からない。 .\"O Another possibility is that such semaphore adjustments could be ignored .\"O altogether (somewhat analogously to failing when .\"O .B IPC_NOWAIT .\"O is specified for a semaphore operation). -Ê̤ÎÁªÂò»è¤È¤·¤Æ¡¢¤³¤Î¤è¤¦¤Ê¥»¥Þ¥Õ¥©Ä´À°¤ò´°Á´¤Ë̵»ë¤·¤Æ¤·¤Þ¤¦ÊýË¡¤¬¤¢¤ë -(¤³¤ì¤Ï¥»¥Þ¥Õ¥©Áàºî¤È¤·¤Æ +別の選択肢として、このようなセマフォ調整を完全に無視してしまう方法がある +(これはセマフォ操作として .B IPC_NOWAIT -¤¬»ØÄꤹ¤ë¤Î¤È¾¯¤·»÷¤Æ¤¤¤ë)¡£ +が指定するのと少し似ている)。 .\"O Linux adopts a third approach: decreasing the semaphore value .\"O as far as possible (i.e., to zero) and allowing process .\"O termination to proceed immediately. -Linux ¤ÏÂè»°¤Î¼êË¡¤òºÎÍѤ·¤Æ¤¤¤ë: ¥»¥Þ¥Õ¥©¤ÎÃͤò½ÐÍè¤ë¤À¤± (¤Ä¤Þ¤ê -0 ¤Þ¤Ç) ¸º¾¯¤µ¤»¤Æ¡¢¥×¥í¥»¥¹¤Î½ªÎ»¤òľ¤Á¤Ë³¹Ô¤Ç¤­¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤ë¡£ +Linux は第三の手法を採用している: セマフォの値を出来るだけ (つまり +0 まで) 減少させて、プロセスの終了を直ちに続行できるようにしている。 .\"O In kernels 2.6.x, x <= 10, there is a bug that in some circumstances .\"O prevents a process that is waiting for a semaphore value to become @@ -888,24 +888,24 @@ Linux .\"O .\" http://marc.theaimsgroup.com/?l=linux-kernel&m=110260821123863&w=2 .\"O .\" the fix: .\"O .\" http://marc.theaimsgroup.com/?l=linux-kernel&m=110261701025794&w=2 -¥«¡¼¥Í¥ë 2.6.x (x <= 10) ¤Ë¤Ï¡¢¤¢¤ë¾õ¶·¤Ë¤ª¤¤¤Æ¥»¥Þ¥Õ¥©Ãͤ¬ 0 ¤Ë¤Ê¤ë¤Î¤ò -ÂԤäƤ¤¤ë¥×¥í¥»¥¹¤¬¡¢¥»¥Þ¥Õ¥©Ãͤ¬¼ÂºÝ¤Ë 0 ¤Ë¤Ê¤Ã¤¿¤È¤­¤Ëµ¯¾² (wake up) -¤µ¤ì¤Ê¤¤¡¢¤È¤¤¤¦¥Ð¥°¤¬¤¢¤ë¡£¤³¤Î¥Ð¥°¤Ï¥«¡¼¥Í¥ë 2.6.11 ¤Ç½¤Àµ¤µ¤ì¤Æ¤¤¤ë¡£ -.\" ¥Ð¥°¥ì¥Ý¡¼¥È: +カーネル 2.6.x (x <= 10) には、ある状況においてセマフォ値が 0 になるのを +待っているプロセスが、セマフォ値が実際に 0 になったときに起床 (wake up) +されない、というバグがある。このバグはカーネル 2.6.11 で修正されている。 +.\" バグレポート: .\" http://marc.theaimsgroup.com/?l=linux-kernel&m=110260821123863&w=2 -.\" ½¤Àµ: +.\" 修正: .\" http://marc.theaimsgroup.com/?l=linux-kernel&m=110261701025794&w=2 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The following code segment uses .\"O .BR semop () .\"O to atomically wait for the value of semaphore 0 to become zero, .\"O and then increment the semaphore value by one. -°Ê²¼¤ÎÉôʬŪ¤Ê¥³¡¼¥É¤Ï¡¢ -¥»¥Þ¥Õ¥© 0 ¤ÎÃͤ¬ 0 ¤Ë¤Ê¤ë¤Î¤òÂԤäƤ«¤é¡¢ -¥»¥Þ¥Õ¥©¤ÎÃͤò 1 ²Ã»»¤¹¤ë½èÍý¤ò¡¢ +以下の部分的なコードは、 +セマフォ 0 の値が 0 になるのを待ってから、 +セマフォの値を 1 加算する処理を、 .BR semop () -¤ò»È¤Ã¤Æ¥¢¥È¥ß¥Ã¥¯ (atomically) ¤Ë¹Ô¤¦¡£ +を使ってアトミック (atomically) に行う。 .nf struct sembuf sops[2]; @@ -927,7 +927,7 @@ Linux } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR semctl (2), .BR semget (2), .BR sigaction (2), diff --git a/draft/man2/send.2 b/draft/man2/send.2 index 08e4a391..f53462d7 100644 --- a/draft/man2/send.2 +++ b/draft/man2/send.2 @@ -45,26 +45,26 @@ .\" Updated 2006-04-15, Akihiro MOTOKI, LDP v2.29 .\" Updated 2008-04-13, Akihiro MOTOKI, LDP v3.20 .\" -.\"WORD: socket ¥½¥±¥Ã¥È -.\"WORD: message ¥á¥Ã¥»¡¼¥¸ -.\"WORD: protocol ¥×¥í¥È¥³¥ë -.\"WORD: nonblocking I/O ÈóÄä»ß I/O -.\"WORD: block Ää»ß(block) -.\"WORD: out-of-band ÂÓ°è³° -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: parameter ¥Ñ¥é¥á¡¼¥¿ -.\"WORD: queue ¥­¥å¡¼ -.\"WORD: buffer ¥Ð¥Ã¥Õ¥¡ -.\"WORD: routing ¥ë¡¼¥Æ¥£¥ó¥° -.\"WORD: congestion íÕíÔ +.\"WORD: socket ソケット +.\"WORD: message メッセージ +.\"WORD: protocol プロトコル +.\"WORD: nonblocking I/O 非停止 I/O +.\"WORD: block 停止(block) +.\"WORD: out-of-band 帯域外 +.\"WORD: descriptor ディスクリプタ +.\"WORD: parameter パラメータ +.\"WORD: queue キュー +.\"WORD: buffer バッファ +.\"WORD: routing ルーティング +.\"WORD: congestion 輻輳 .\" .TH SEND 2 2011-10-01 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O send, sendto, sendmsg \- send a message on a socket -send, sendto, sendmsg \- ¥½¥±¥Ã¥È¤Ø¥á¥Ã¥»¡¼¥¸¤òÁ÷¤ë +send, sendto, sendmsg \- ソケットへメッセージを送る .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -79,18 +79,18 @@ send, sendto, sendmsg \- .BI "ssize_t sendmsg(int " sockfd ", const struct msghdr *" msg \ ", int " flags ); .fi -.SH ÀâÌÀ +.SH 説明 .\"O The system calls .\"O .BR send (), .\"O .BR sendto (), .\"O and .\"O .BR sendmsg () .\"O are used to transmit a message to another socket. -¥·¥¹¥Æ¥à¥³¡¼¥ë +システムコール .BR send (), .BR sendto (), .BR sendmsg () -¤Ï¡¢¤â¤¦°ìÊý¤Î¥½¥±¥Ã¥È¤Ø¥á¥Ã¥»¡¼¥¸¤òžÁ÷¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ +は、もう一方のソケットへメッセージを転送するのに使用される。 .PP .\"O The .\"O .BR send () @@ -104,16 +104,16 @@ send, sendto, sendmsg \- .\"O is the presence of .\"O .IR flags . .BR send () -¤Ï¡¢¥½¥±¥Ã¥È¤¬ -.I "Àܳ¤µ¤ì¤¿ (connected)" -¾õÂ֤ˤ¢¤ë¾ì¹ç¤Ë¤Î¤ß»ÈÍѤǤ­¤ë -(¤Ä¤Þ¤ê¡¢¤É¤ÎÁê¼ê¤ËÁ÷¿®¤¹¤ë¤«¤Ï´ûÃΤǤ¢¤ë)¡£ +は、ソケットが +.I "接続された (connected)" +状態にある場合にのみ使用できる +(つまり、どの相手に送信するかは既知である)。 .BR send () -¤È +と .BR write (2) -¤Î°ã¤¤¤Ï¡¢°ú¤­¿ô¤Ë +の違いは、引き数に .I flags -¤¬¤¢¤ë¤«¤É¤¦¤«¤À¤±¤Ç¤¢¤ë¡£ +があるかどうかだけである。 .\"O With a zero .\"O .I flags .\"O argument, @@ -127,29 +127,29 @@ send, sendto, sendmsg \- .\"O is equivalent to .\"O .\"O sendto(sockfd, buf, len, flags, NULL, 0); -°ú¤­¿ô +引き数 .I flags -¤Ë¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢ +にフラグが指定されない場合、 .BR send () -¤Ï +は .BR write (2) -¤ÈÅù²Á¤Ç¤¢¤ë¡£ -¤Þ¤¿¡¢ +と等価である。 +また、 send(sockfd, buf, len, flags); -¤Ï +は sendto(sockfd, buf, len, flags, NULL, 0); -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 .PP .\"O The argument .\"O .I sockfd .\"O is the file descriptor of the sending socket. -°ú¤­¿ô +引き数 .I sockfd -¤Ï¡¢¥Ç¡¼¥¿¤òÁ÷¿®¤¹¤ë¥Ñ¥±¥Ã¥È¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +は、データを送信するパケットのファイル・ディスクリプタである。 .PP .\"O If .\"O .BR sendto () @@ -172,25 +172,25 @@ send, sendto, sendmsg \- .\"O .I addrlen .\"O specifying its size. .BR sendto () -¤Ï¡¢Àܳ·¿ (connection-mode) ¤Î¥½¥±¥Ã¥È +は、接続型 (connection-mode) のソケット .RB ( SOCK_STREAM , .BR SOCK_SEQPACKET ) -¤Ç -»ÈÍѤµ¤ì¤¿¾ì¹ç¡¢°ú¤­¿ô +で +使用された場合、引き数 .I dest_addr -¤È +と .I addrlen -¤Ï̵»ë¤µ¤ì¤ë (³Æ¡¹¤Î°ú¤­¿ô¤¬ NULL ¤È 0 ¤Ç¤Ê¤¤¾ì¹ç¤Ï +は無視される (各々の引き数が NULL と 0 でない場合は .B EISCONN -¥¨¥é¡¼¤âÊÖ¤µ¤ì¤ë)¡£ -¤Þ¤¿¡¢¥½¥±¥Ã¥È¤¬¼ÂºÝ¤Ë¤ÏÀܳ¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿»þ¤Ë¤Ï +エラーも返される)。 +また、ソケットが実際には接続されていなかった時には .B ENOTCONN -¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ -Àܳ·¿¤Î¥½¥±¥Ã¥È°Ê³°¤Ç»ÈÍѤµ¤ì¤¿¾ì¹ç¤Ï¡¢ÀܳÀè¤Î¥¢¥É¥ì¥¹¤Ï +エラーが返される。 +接続型のソケット以外で使用された場合は、接続先のアドレスは .I dest_addr -¤ÇÍ¿¤¨¤é¤ì¡¢¤½¤Î¥µ¥¤¥º¤Ï +で与えられ、そのサイズは .I addrlen -¤Ç»ØÄꤵ¤ì¤ë¡£ +で指定される。 .\"O For .\"O .BR sendmsg (), .\"O the address of the target is given by @@ -199,11 +199,11 @@ send, sendto, sendmsg \- .\"O .I msg.msg_namelen .\"O specifying its size. .BR sendmsg () -¤Ç¤Ï¡¢ÀܳÀè¤Î¥¢¥É¥ì¥¹¤Ï +では、接続先のアドレスは .I msg.msg_name -¤ÇÍ¿¤¨¤é¤ì¡¢¤½¤Î¥µ¥¤¥º¤Ï +で与えられ、そのサイズは .I msg.msg_namelen -¤Ç»ØÄꤵ¤ì¤ë¡£ +で指定される。 .PP .\"O For .\"O .BR send () @@ -221,36 +221,36 @@ send, sendto, sendmsg \- .\"O .BR sendmsg () .\"O call also allows sending ancillary data (also known as control information). .BR send () -¤È +と .BR sendto () -¤Ç¤Ï¡¢¥á¥Ã¥»¡¼¥¸¤Ï +では、メッセージは .I buf -¤Ë³ÊǼ¤µ¤ì¤Æ¤ª¤ê¡¢¤½¤ÎŤµ¤Ï +に格納されており、その長さは .I len -¤Ç¤¢¤ë¤È²ò¼á¤µ¤ì¤ë¡£ +であると解釈される。 .BR sendmsg () -¤Ç¤Ï¡¢¥á¥Ã¥»¡¼¥¸¤Ï -ÇÛÎó +では、メッセージは +配列 .I msg.msg_iov -¤Î³ÆÍ×ÁǤ¬»Ø¤¹°ÌÃ֤˳ÊǼ¤µ¤ì¤Æ¤¤¤ë¡£ +の各要素が指す位置に格納されている。 .BR sendmsg () -¤Ç¤Ï¡¢Êä½õ¥Ç¡¼¥¿ (À©¸æ¾ðÊó¤È¤â¸Æ¤Ð¤ì¤ë) ¤òÁ÷¿®¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +では、補助データ (制御情報とも呼ばれる) を送信することもできる。 .PP .\"O If the message is too long to pass atomically through the .\"O underlying protocol, the error .\"O .B EMSGSIZE .\"O is returned, and the message is not transmitted. -¥á¥Ã¥»¡¼¥¸Ä¹¤¬Ä¹²á¤®¤ë¤¿¤á¤Ë¡¢¤½¤Î¥½¥±¥Ã¥È¤¬»ÈÍѤ¹¤ë¥×¥í¥È¥³¥ë¤Ç¤Ï¡¢ -¥á¥Ã¥»¡¼¥¸¤ò¥½¥±¥Ã¥È¤ËÅϤµ¤ì¤¿¤Þ¤Þ¤Î·Á¤ÇÁ÷¿®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¾ì¹ç¡¢ +メッセージ長が長過ぎるために、そのソケットが使用するプロトコルでは、 +メッセージをソケットに渡されたままの形で送信することができない場合、 .B EMSGSIZE -¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¡¢¤½¤Î¥á¥Ã¥»¡¼¥¸¤ÏžÁ÷¤µ¤ì¤Ê¤¤¡£ +エラーが返され、そのメッセージは転送されない。 .PP .\"O No indication of failure to deliver is implicit in a .\"O .BR send (). .\"O Locally detected errors are indicated by a return value of \-1. .BR send () -¤Ç¤Ï¡¢ÇÛÁ÷¤Î¼ºÇÔ¤ÎÄÌÃΤÏÌÀ¼¨Åª¤Ë¹Ô¤ï¤ì¤ë¡£ -¥í¡¼¥«¥ë¦¤Ç¥¨¥é¡¼¤¬¸¡½Ð¤µ¤ì¤¿¾ì¹ç¤Ï¡¢ÊÖ¤êÃÍ \-1 ¤È¤·¤ÆÄÌÃΤµ¤ì¤ë¡£ +では、配送の失敗の通知は明示的に行われる。 +ローカル側でエラーが検出された場合は、返り値 \-1 として通知される。 .PP .\"O When the message does not fit into the send buffer of the socket, .\"O .BR send () @@ -264,37 +264,37 @@ send, sendto, sendmsg \- .\"O The .\"O .BR select (2) .\"O call may be used to determine when it is possible to send more data. -¥á¥Ã¥»¡¼¥¸¤¬¥½¥±¥Ã¥È¤ÎÁ÷¿®¥Ð¥Ã¥Õ¥¡¤ËÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¾ì¹ç¡¢ +メッセージがソケットの送信バッファに入れることができない場合、 .BR send () -¤ÏÄ̾ï¤ÏÄä»ß (block) ¤¹¤ë (¥½¥±¥Ã¥È¤¬ÈóÄä»ß (nonblocking) I/O ¥â¡¼¥É -¤Ç¤Ê¤¤¾ì¹ç)¡£ÈóÄä»ß¥â¡¼¥É¤Î¾ì¹ç¤Ë¤Ï¥¨¥é¡¼ +は通常は停止 (block) する (ソケットが非停止 (nonblocking) I/O モード +でない場合)。非停止モードの場合にはエラー .B EAGAIN -¤« +か .B EWOULDBLOCK -¤Ç¼ºÇÔ¤¹¤ë¡£ -¤¤¤Ä¥Ç¡¼¥¿¤ò¤µ¤é¤ËÁ÷¿®¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¤«¤òÃΤ뤿¤á¤Ë¡¢ +で失敗する。 +いつデータをさらに送信できるようになるかを知るために、 .BR select (2) -¥³¡¼¥ë¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +コールを使用することができる。 .PP .\"O .I flags .\"O argument is the bitwise OR .\"O of zero or more of the following flags. .I flags -°ú¤­¿ô¤Ï¡¢°Ê²¼¤Î¥Õ¥é¥°¤Î (0 ¸Ä°Ê¾å¤Î) ¥Ó¥Ã¥Èñ°Ì¤ÎÏÀÍýϤò -¤È¤Ã¤¿¤â¤Î¤ò»ØÄꤹ¤ë¡£ +引き数は、以下のフラグの (0 個以上の) ビット単位の論理和を +とったものを指定する。 .\"O .\" FIXME ? document MSG_PROXY (which went away in 2.3.15) -.\" FIXME ? MSG_PROXY ¤Ë¤Ä¤¤¤Æµ­ºÜ¤¹¤ë¤³¤È -.\" (MSG_PROXY ¤Ï 2.3.15 ¤Ç¤Ê¤¯¤Ê¤Ã¤¿) +.\" FIXME ? MSG_PROXY について記載すること +.\" (MSG_PROXY は 2.3.15 でなくなった) .TP .\"O .BR MSG_CONFIRM " (Since Linux 2.3.15)" .\"O Tell the link layer that forward progress happened: you got a successful .\"O reply from the other side. .\"O If the link layer doesn't get this .\"O it will regularly reprobe the neighbor (e.g., via a unicast ARP). -.BR MSG_CONFIRM " (Linux 2.3.15 °Ê¹ß)" -žÁ÷½èÍý¤Ë¿ÊŸ¤¬¤¢¤Ã¤¿¡¢¤Ä¤Þ¤êÁê¼ê¦¤«¤éÀ®¸ù¤Î±þÅú¤ò¼õ¤±¤¿¤³¤È¤ò¥ê¥ó¥¯ÁØ¤Ë -ÃΤ餻¤ë¡£¥ê¥ó¥¯Áؤ¬¤³¤ÎÄÌÃΤò¼õ¤±¼è¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢Ä̾ï¤É¤ª¤ê -(¥æ¥Ë¥­¥ã¥¹¥È ARP ¤ò»È¤¦¤Ê¤É¤ÎÊýË¡¤Ç) ¶á˵ (neighbor) ¤ÎºÆ¸¡º÷¤ò¹Ô¤¦¡£ +.BR MSG_CONFIRM " (Linux 2.3.15 以降)" +転送処理に進展があった、つまり相手側から成功の応答を受けたことをリンク層に +知らせる。リンク層がこの通知を受け取らなかった場合には、通常どおり +(ユニキャスト ARP を使うなどの方法で) 近傍 (neighbor) の再検索を行う。 .\"O Only valid on .\"O .B SOCK_DGRAM .\"O and @@ -304,12 +304,12 @@ send, sendto, sendmsg \- .\"O .BR arp (7) .\"O for details. .B SOCK_DGRAM -¤È +と .B SOCK_RAW -¤Î¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤Î¤ßÍ­¸ú¤Ç¡¢¸½ºß¤Î¤È¤³¤í IPv4 ¤È IPv6 ¤Î¤ß¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -¾Ü¤·¤¯¤Ï +のソケットに対してのみ有効で、現在のところ IPv4 と IPv6 のみ実装されている。 +詳しくは .BR arp (7) -»²¾È¤Î¤³¤È¡£ +参照のこと。 .TP .B MSG_DONTROUTE .\"O Don't use a gateway to send out the packet, only send to hosts on @@ -318,11 +318,11 @@ send, sendto, sendmsg \- .\"O by diagnostic or routing programs. .\"O This is only defined for protocol .\"O families that route; packet sockets don't. -¥Ñ¥±¥Ã¥È¤òÁ÷¤ê½Ð¤¹¤Î¤Ë¥²¡¼¥È¥¦¥§¥¤¤ò»ÈÍѤ»¤º¡¢ -ľÀÜÀܳ¤µ¤ì¤Æ¤¤¤ë¥Í¥Ã¥È¥ï¡¼¥¯¾å¤Î¥Û¥¹¥È¤À¤±¤ËÁ÷¤ë¡£ -Ä̾¤³¤Î¥Õ¥é¥°¤Ï¿ÇÃÇ (diagnostic) ¤ä¥ë¡¼¥Æ¥£¥ó¥°¡¦¥×¥í¥°¥é¥à¤Ë -¤è¤Ã¤Æ¤Î¤ß»ÈÍѤµ¤ì¤ë¡£¤³¤Î¥Õ¥é¥°¤Ï¡¢·ÐÏ©À©¸æ¤¬¹Ô¤ï¤ì¤ë¥×¥í¥È¥³¥ë¥Õ¥¡¥ß¥ê¡¼ -¤ËÂФ·¤Æ¤Î¤ßÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£¥Ñ¥±¥Ã¥È¥½¥±¥Ã¥È¤Ë¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +パケットを送り出すのにゲートウェイを使用せず、 +直接接続されているネットワーク上のホストだけに送る。 +通常、このフラグは診断 (diagnostic) やルーティング・プログラムに +よってのみ使用される。このフラグは、経路制御が行われるプロトコルファミリー +に対してのみ定義されている。パケットソケットには定義されていない。 .TP .B MSG_DONTWAIT .\"O Enables nonblocking operation; if the operation would block, @@ -334,28 +334,28 @@ send, sendto, sendmsg \- .\"O flag with the .\"O .B F_SETFL .\"O .BR fcntl (2)). -ÈóÄä»ß (nonblocking) Áàºî¤òÍ­¸ú¤Ë¤¹¤ë¡£Áàºî¤¬Ää»ß¤µ¤ì¤ë¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï +非停止 (nonblocking) 操作を有効にする。操作が停止されるような場合には .B EAGAIN -¤« +か .B EWOULDBLOCK -¤òÊÖ¤¹¤è¤¦¤Ë¤¹¤ë +を返すようにする .RB ( fcntl (2) -¤Î +の .B F_SETFL -¤Ç +で .B O_NONBLOCK -¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤³¤È¤Ë¤è¤Ã¤Æ¤âÍ­¸ú¤Ë¤Ç¤­¤ë)¡£ +フラグを指定することによっても有効にできる)。 .TP .\"O .BR MSG_EOR " (since Linux 2.2)" -.BR MSG_EOR " (Linux 2.2 °Ê¹ß)" +.BR MSG_EOR " (Linux 2.2 以降)" .\"O Terminates a record (when this notion is supported, as for sockets of type .\"O .BR SOCK_SEQPACKET ). -¥ì¥³¡¼¥É¤Î½ªÎ»¤ò»Ø¼¨¤¹¤ë +レコードの終了を指示する .RB ( SOCK_SEQPACKET -¤Î¤è¤¦¤Ë¤³¤Î³µÇ°¤ËÂбþ¤·¤Æ¤¤¤ë¥½¥±¥Ã¥È¼ïÊ̤ΤȤ­¤ËÍ­¸ú)¡£ +のようにこの概念に対応しているソケット種別のときに有効)。 .TP .\"O .BR MSG_MORE " (Since Linux 2.4.4)" -.BR MSG_MORE " (Linux 2.4.4 °Ê¹ß)" +.BR MSG_MORE " (Linux 2.4.4 以降)" .\"O The caller has more data to send. .\"O This flag is used with TCP sockets to obtain the same effect .\"O as the @@ -363,15 +363,15 @@ send, sendto, sendmsg \- .\"O socket option (see .\"O .BR tcp (7)), .\"O with the difference that this flag can be set on a per-call basis. -¸Æ¤Ó½Ð¤·¸µ¤Ë¤µ¤é¤ËÁ÷¤ë¥Ç¡¼¥¿¤¬¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ -¤³¤Î¥Õ¥é¥°¤Ï TCP ¥½¥±¥Ã¥È¤È¤È¤â¤Ë»ÈÍѤµ¤ì¡¢ +呼び出し元にさらに送るデータがあることを示す。 +このフラグは TCP ソケットとともに使用され、 .B TCP_CORK -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤ÈƱ¤¸¸ú²Ì¤¬ÆÀ¤é¤ì¤ë +ソケットオプションと同じ効果が得られる .RB ( tcp (7) -¤ò»²¾È)¡£ +を参照)。 .B TCP_CORK -¤È¤Î°ã¤¤¤Ï¡¢¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤È¸Æ¤Ó½Ð¤·Ã±°Ì¤Ç -¤³¤Îµ¡Ç½¤òÍ­¸ú¤Ë¤Ç¤­¤ëÅÀ¤Ç¤¢¤ë¡£ +との違いは、このフラグを使うと呼び出し単位で +この機能を有効にできる点である。 .\"O Since Linux 2.6, this flag is also supported for UDP sockets, and informs .\"O the kernel to package all of the data sent in calls with this flag set @@ -381,17 +381,17 @@ send, sendto, sendmsg \- .\"O .B UDP_CORK .\"O socket option described in .\"O .BR udp (7).) -Linux 2.6 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¥Õ¥é¥°¤Ï UDP ¥½¥±¥Ã¥È¤Ç¤â¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤ª¤ê¡¢ -¤³¤Î¥Õ¥é¥°ÉÕ¤­¤ÇÁ÷¿®¤µ¤ì¤¿Á´¤Æ¤Î¥Ç¡¼¥¿¤ò°ì¤Ä¤Î¥Ç¡¼¥¿¥°¥é¥à¤Ë¤Þ¤È¤á¤Æ -Á÷¿®¤¹¤ë¤³¤È¤ò¡¢¥«¡¼¥Í¥ë¤ËÃΤ餻¤ë¡£¤Þ¤È¤á¤é¤ì¤¿¥Ç¡¼¥¿¥°¥é¥à¤Ï¡¢ -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤻ¤º¤Ë¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¼Â¹Ô¤µ¤ì¤¿ºÝ¤Ë½é¤á¤ÆÁ÷¿®¤µ¤ì¤ë +Linux 2.6 以降では、このフラグは UDP ソケットでもサポートされており、 +このフラグ付きで送信された全てのデータを一つのデータグラムにまとめて +送信することを、カーネルに知らせる。まとめられたデータグラムは、 +このフラグを指定せずにこのシステムコールが実行された際に初めて送信される .RB ( udp (7) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó +に記載されているソケットオプション .B UDP_CORK -¤â»²¾È)¡£ +も参照)。 .TP .\"O .BR MSG_NOSIGNAL " (since Linux 2.2)" -.BR MSG_NOSIGNAL " (Linux 2.2 °Ê¹ß)" +.BR MSG_NOSIGNAL " (Linux 2.2 以降)" .\"O Requests not to send .\"O .B SIGPIPE .\"O on errors on stream oriented sockets when the other end breaks the @@ -399,11 +399,11 @@ Linux 2.6 .\"O The .\"O .B EPIPE .\"O error is still returned. -¥¹¥È¥ê¡¼¥à»Ø¸þ¤Î¥½¥±¥Ã¥È¤ÇÁê¼ê¦¤¬Àܳ¤òÀÚÃǤ·¤¿»þ¤Ë¡¢¥¨¥é¡¼¤È¤·¤Æ +ストリーム指向のソケットで相手側が接続を切断した時に、エラーとして .B SIGPIPE -¤òÁ÷¿®¤·¤Ê¤¤¤è¤¦¤ËÍ׵᤹¤ë¡£¤³¤Î¾ì¹ç¤Ç¤â +を送信しないように要求する。この場合でも .B EPIPE -¤ÏÊÖ¤µ¤ì¤ë¡£ +は返される。 .TP .B MSG_OOB .\"O Sends @@ -413,14 +413,14 @@ Linux 2.6 .\"O the underlying protocol must also support .\"O .I out-of-band .\"O data. -.I "ÂÓ°è³° (out-of-band)" -¥Ç¡¼¥¿¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥½¥±¥Ã¥È (Î㤨¤Ð +.I "帯域外 (out-of-band)" +データをサポートするソケット (例えば .BR SOCK_STREAM ) -¤Ç -.I ÂÓ°è³° -¥Ç¡¼¥¿¤òÁ÷¤ë¡£²¼°Ì¥×¥í¥È¥³¥ë¤â -.I ÂÓ°è³° -¥Ç¡¼¥¿¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ +で +.I 帯域外 +データを送る。下位プロトコルも +.I 帯域外 +データをサポートしている必要がある。 .PP .\"O The definition of the .\"O .I msghdr @@ -429,10 +429,10 @@ Linux 2.6 .\"O .BR recv (2) .\"O and below for an exact description of its fields. .I msghdr -¹½Â¤ÂΤÎÆâÍƤϰʲ¼¤ÎÄ̤ꡣ -³Æ¥Õ¥£¡¼¥ë¥É¤ÎÀµ³Î¤Êµ­½Ò¤Ë¤Ä¤¤¤Æ¤Ï +構造体の内容は以下の通り。 +各フィールドの正確な記述については .BR recv (2) -¤È°Ê²¼¤ÎÀâÌÀ¤ò»²¾È¤¹¤ë¤³¤È¡£ +と以下の説明を参照すること。 .in +4n .nf @@ -444,13 +444,13 @@ struct msghdr { .\"O void *msg_control; /* ancillary data, see below */ .\"O size_t msg_controllen; /* ancillary data buffer len */ .\"O int msg_flags; /* flags on received message */ - void *msg_name; /* ÄɲäΥ¢¥É¥ì¥¹ */ - socklen_t msg_namelen; /* ¥¢¥É¥ì¥¹¤Î¥µ¥¤¥º */ - struct iovec *msg_iov; /* scatter/gather ÇÛÎó */ - size_t msg_iovlen; /* msg_iov ¤ÎÍ×ÁÇ¿ô */ - void *msg_control; /* Êä½õ¥Ç¡¼¥¿(¸å½Ò) */ - size_t msg_controllen; /* Êä½õ¥Ç¡¼¥¿¥Ð¥Ã¥Õ¥¡Ä¹ */ - int msg_flags; /* ¼õ¿®¥á¥Ã¥»¡¼¥¸¤Î¥Õ¥é¥° */ + void *msg_name; /* 追加のアドレス */ + socklen_t msg_namelen; /* アドレスのサイズ */ + struct iovec *msg_iov; /* scatter/gather 配列 */ + size_t msg_iovlen; /* msg_iov の要素数 */ + void *msg_control; /* 補助データ(後述) */ + size_t msg_controllen; /* 補助データバッファ長 */ + int msg_flags; /* 受信メッセージのフラグ */ }; .fi .in @@ -466,37 +466,37 @@ struct msghdr { .\"O see .\"O .BR socket (7). .I msg_control -¤È +と .I msg_controllen -¥á¥ó¥Ð¡¼¤ò»ÈÍѤ·¤ÆÀ©¸æ¾ðÊó¤òÁ÷¿®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥«¡¼¥Í¥ë¤¬½èÍý¤Ç¤­¤ëÀ©¸æ¥Ð¥Ã¥Õ¥¡¤Î¥½¥±¥Ã¥È¤¢¤¿¤ê¤ÎºÇÂçĹ¤Ï¡¢ +メンバーを使用して制御情報を送信することができる。 +カーネルが処理できる制御バッファのソケットあたりの最大長は、 .I /proc/sys/net/core/optmem_max -¤ÎÃͤËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë¡£ +の値に制限されている。 .BR socket (7) -¤ò»²¾È¡£ +を参照。 .\" Still to be documented: .\" Send file descriptors and user credentials using the .\" msg_control* fields. .\" The flags returned in msg_flags. .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these calls return the number of characters sent. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÁ÷¿®¤µ¤ì¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ \-1 ¤òÊÖ¤·¡¢ +成功した場合、これらのシステムコールは送信されたバイト数を返す。 +エラーの場合、 \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄê¤Ë¤¹¤ë¡£ +を適切に設定にする。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O These are some standard errors generated by the socket layer. .\"O Additional errors .\"O may be generated and returned from the underlying protocol modules; .\"O see their respective manual pages. -¤³¤ì¤é¤Ï¥½¥±¥Ã¥ÈÁؤÇȯÀ¸¤¹¤ë°ìÈÌŪ¤Ê¥¨¥é¡¼¤Ç¤¢¤ë¡£¤³¤ì°Ê³°¤Ë¡¢²¼ÁؤΠ-¥×¥í¥È¥³¥ë¡¦¥â¥¸¥å¡¼¥ë¤ÇÀ¸À®¤µ¤ì¤¿¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤ì¤é¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤½¤ì¤¾¤ì¤Î¥Þ¥Ë¥å¥¢¥ë¤ò»²¾È¤¹¤ë¤³¤È¡£ +これらはソケット層で発生する一般的なエラーである。これ以外に、下層の +プロトコル・モジュールで生成されたエラーが返されるかもしれない。 +これらについては、それぞれのマニュアルを参照すること。 .TP .B EACCES .\"O (For UNIX domain sockets, which are identified by pathname) @@ -505,110 +505,110 @@ struct msghdr { .\"O the path prefix. .\"O (See .\"O .BR path_resolution (7).) -(UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤Ï¥Ñ¥¹Ì¾¤Ç¼±Ê̤µ¤ì¤ë¡£) -¥½¥±¥Ã¥È¡¦¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤­¹þ¤ßµö²Ä¤¬¤Ê¤«¤Ã¤¿¤«¡¢¥Ñ¥¹Ì¾¤Ø -Åþ㤹¤ë¤Þ¤Ç¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¤¤¤º¤ì¤«¤ËÂФ¹¤ë¸¡º÷µö²Ä¤¬¤Ê¤«¤Ã¤¿¡£ +(UNIX ドメインソケットはパス名で識別される。) +ソケット・ファイルへの書き込み許可がなかったか、パス名へ +到達するまでのディレクトリのいずれかに対する検索許可がなかった。 .RB ( path_resolution (7) -¤â»²¾È¤Î¤³¤È) +も参照のこと) .TP .\"O .BR EAGAIN " or " EWOULDBLOCK -.BR EAGAIN " ¤Þ¤¿¤Ï " EWOULDBLOCK +.BR EAGAIN " または " EWOULDBLOCK .\" Actually EAGAIN on Linux .\"O The socket is marked nonblocking and the requested operation .\"O would block. .\"O POSIX.1-2001 allows either error to be returned for this case, .\"O and does not require these constants to have the same value, .\"O so a portable application should check for both possibilities. -¥½¥±¥Ã¥È¤¬ÈóÄä»ß¤ËÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢ -Í׵ᤵ¤ì¤¿Áàºî¤¬Ää»ß¤·¤¿¡£ -POSIX.1-2001 ¤Ï¡¢¤³¤Î¾ì¹ç¤Ë¤É¤Á¤é¤Î¥¨¥é¡¼¤òÊÖ¤¹¤³¤È¤âǧ¤á¤Æ¤ª¤ê¡¢ -¤³¤ì¤é 2 ¤Ä¤ÎÄê¿ô¤¬Æ±¤¸Ãͤò»ý¤Ä¤³¤È¤âµá¤á¤Æ¤¤¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢Î¾Êý¤Î²ÄǽÀ­¤ò -³Îǧ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +ソケットが非停止に設定されており、 +要求された操作が停止した。 +POSIX.1-2001 は、この場合にどちらのエラーを返すことも認めており、 +これら 2 つの定数が同じ値を持つことも求めていない。 +したがって、移植性が必要なアプリケーションでは、両方の可能性を +確認すべきである。 .TP .B EBADF .\"O An invalid descriptor was specified. -̵¸ú¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤¬»ØÄꤵ¤ì¤¿¡£ +無効なディスクリプターが指定された。 .TP .B ECONNRESET .\"O Connection reset by peer. -Àܳ¤¬ÀܳÁê¼ê¤Ë¤è¤ê¥ê¥»¥Ã¥È¤µ¤ì¤¿¡£ +接続が接続相手によりリセットされた。 .TP .B EDESTADDRREQ .\"O The socket is not connection-mode, and no peer address is set. -¥½¥±¥Ã¥È¤¬Àܳ·¿ (connection-mode) ¤Ç¤Ï¤Ê¤¯¡¢ -¤«¤ÄÁ÷¿®Àè¤Î¥¢¥É¥ì¥¹¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +ソケットが接続型 (connection-mode) ではなく、 +かつ送信先のアドレスが設定されていない。 .TP .B EFAULT .\"O An invalid user space address was specified for an argument. -¥æ¡¼¥¶¡¼¶õ´Ö¤È¤·¤ÆÉÔÀµ¤Ê¥¢¥É¥ì¥¹¤¬¥Ñ¥é¥á¡¼¥¿¡¼¤È¤·¤Æ»ØÄꤵ¤ì¤¿¡£ +ユーザー空間として不正なアドレスがパラメーターとして指定された。 .TP .B EINTR .\"O A signal occurred before any data was transmitted; see .\"O .BR signal (7). -¥Ç¡¼¥¿¤¬Á÷¿®¤µ¤ì¤ëÁ°¤Ë¡¢¥·¥°¥Ê¥ë¤¬È¯À¸¤·¤¿¡£ +データが送信される前に、シグナルが発生した。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .\"O Invalid argument passed. -ÉÔÀµ¤Ê°ú¤­¿ô¤¬ÅϤµ¤ì¤¿¡£ +不正な引き数が渡された。 .TP .B EISCONN .\"O The connection-mode socket was connected already but a .\"O recipient was specified. .\"O (Now either this error is returned, or the recipient specification .\"O is ignored.) -Àܳ·¿¥½¥±¥Ã¥È¤ÎÀܳ¤¬¤¹¤Ç¤Ë³ÎΩ¤·¤Æ¤¤¤¿¤¬¡¢¼õ¿®¼Ô¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¡£ -(¸½ºß¤Î¤È¤³¤í¡¢¤³¤Î¾õ¶·¤Ç¤Ï¡¢¤³¤Î¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¤«¡¢ -¼õ¿®¼Ô¤Î»ØÄ̵꤬»ë¤µ¤ì¤ë¤«¡¢¤Î¤¤¤º¤ì¤«¤È¤Ê¤ë) +接続型ソケットの接続がすでに確立していたが、受信者が指定されていた。 +(現在のところ、この状況では、このエラーが返されるか、 +受信者の指定が無視されるか、のいずれかとなる) .TP .B EMSGSIZE .\"O The socket type .\"O .\" (e.g., SOCK_DGRAM ) .\"O requires that message be sent atomically, and the size .\"O of the message to be sent made this impossible. -¤½¤Î¥½¥±¥Ã¥È¼ïÊÌ -.\" (Î㤨¤Ð SOCK_DGRAM) -¤Ç¤Ï¥½¥±¥Ã¥È¤ËÅϤµ¤ì¤¿¤Þ¤Þ¤Î·Á¤Ç¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¤¹¤ëɬÍפ¬¤¢¤ë¤¬¡¢ -¥á¥Ã¥»¡¼¥¸¤¬Â礭²á¤®¤ë¤¿¤áÁ÷¿®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +そのソケット種別 +.\" (例えば SOCK_DGRAM) +ではソケットに渡されたままの形でメッセージを送信する必要があるが、 +メッセージが大き過ぎるため送信することができない。 .TP .B ENOBUFS .\"O The output queue for a network interface was full. .\"O This generally indicates that the interface has stopped sending, .\"O but may be caused by transient congestion. -¥Í¥Ã¥È¥ï¡¼¥¯¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î½ÐÎÏ¥­¥å¡¼¤¬°ìÇդǤ¢¤ë¡£ -°ìÈÌŪ¤Ë¤Ï¡¢°ì»þŪ¤ÊíÕíÔ (congestion) ¤Î¤¿¤á¤Ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ -Á÷¿®¤ò»ß¤á¤Æ¤¤¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +ネットワーク・インターフェースの出力キューが一杯である。 +一般的には、一時的な輻輳 (congestion) のためにインターフェースが +送信を止めていることを意味する。 .\"O (Normally, this cannot occur in Linux. .\"O Packets are just silently dropped .\"O when a device queue overflows.) -(Ä̾Linux ¤Ç¤Ï¤³¤Î¤è¤¦¤Ê¤³¤È¤Ïµ¯¤³¤é¤Ê¤¤¡£¥Ç¥Ð¥¤¥¹¤Î¥­¥å¡¼¤¬ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤¿¾ì¹ç¤Ë¤Ï¥Ñ¥±¥Ã¥È¤ÏÌۤäƼΤƤé¤ì¤ë) +(通常、Linux ではこのようなことは起こらない。デバイスのキューが +オーバーフローした場合にはパケットは黙って捨てられる) .TP .B ENOMEM .\"O No memory available. -¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£ +メモリが足りない。 .TP .B ENOTCONN .\"O The socket is not connected, and no target has been given. -¥½¥±¥Ã¥È¤¬Àܳ¤µ¤ì¤Æ¤ª¤é¤º¡¢ÀܳÀè¤â»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +ソケットが接続されておらず、接続先も指定されていない。 .TP .B ENOTSOCK .\"O The argument .\"O .I sockfd .\"O is not a socket. -°ú¤­¿ô +引き数 .I sockfd -¤¬¥½¥±¥Ã¥È¤Ç¤Ê¤¤¡£ +がソケットでない。 .TP .B EOPNOTSUPP .\"O Some bit in the .\"O .I flags .\"O argument is inappropriate for the socket type. -°ú¤­¿ô +引き数 .I flags -¤Î¤¤¤¯¤Ä¤«¤Î¥Ó¥Ã¥È¤¬¡¢¤½¤Î¥½¥±¥Ã¥È¼ïÊ̤ǤÏÉÔŬÀڤʤâ¤Î¤Ç¤¢¤ë¡£ +のいくつかのビットが、そのソケット種別では不適切なものである。 .TP .B EPIPE .\"O The local end has been shut down on a connection oriented socket. @@ -618,18 +618,18 @@ POSIX.1-2001 .\"O unless .\"O .B MSG_NOSIGNAL .\"O is set. -Àܳ»Ø¸þ¤Î¥½¥±¥Ã¥È¤Ç¥í¡¼¥«¥ë¦¤¬ÊĤ¸¤é¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¾ì¹ç¡¢ +接続指向のソケットでローカル側が閉じられている。 +この場合、 .B MSG_NOSIGNAL -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¥×¥í¥»¥¹¤Ë¤Ï +が設定されていなければ、プロセスには .B SIGPIPE -¤âƱ»þ¤ËÁ÷¤é¤ì¤ë¡£ +も同時に送られる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O 4.4BSD, SVr4, POSIX.1-2001. .\"O These function calls appeared in 4.2BSD. 4.4BSD, SVr4, POSIX.1-2001. -(¤³¤ì¤é¤Î´Ø¿ô¥³¡¼¥ë¤Ï 4.2BSD ¤ÇºÇ½é¤ËÅо줷¤¿)¡£ +(これらの関数コールは 4.2BSD で最初に登場した)。 .\"O POSIX.1-2001 only describes the .\"O .B MSG_OOB @@ -641,18 +641,18 @@ POSIX.1-2001 .\"O The .\"O .B MSG_CONFIRM .\"O flag is a Linux extension. -POSIX.1-2001 ¤Ë¤Ï¡¢ +POSIX.1-2001 には、 .B MSG_OOB -¤È +と .B MSG_EOR -¥Õ¥é¥°¤À¤±¤¬µ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ -POSIX.1-2008 ¤Ç¤Ï +フラグだけが記載されている。 +POSIX.1-2008 では .B MSG_NOSIGNAL -¤¬µ¬³Ê¤ËÄɲ䵤ì¤Æ¤¤¤ë¡£ +が規格に追加されている。 .B MSG_CONFIRM -¥Õ¥é¥°¤Ï Linux ¤Ç¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ +フラグは Linux での拡張である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The prototypes given above follow the Single UNIX Specification, .\"O as glibc2 also does; the .\"O .I flags @@ -665,18 +665,18 @@ POSIX.1-2008 .\"O argument was \fIint\fP in 4.x BSD and libc4 and libc5. .\"O See also .\"O .BR accept (2). -¾åµ­¤Î¥×¥í¥È¥¿¥¤¥×¤Ï Single UNIX Specification ¤Ë½¾¤Ã¤Æ¤¤¤ë¡£ -glibc2 ¤âƱÍͤǤ¢¤ë¡£ +上記のプロトタイプは Single UNIX Specification に従っている。 +glibc2 も同様である。 .I flags -°ú¤­¿ô¤Ï 4.x BSD ¤Ç¤Ï \fIint\fP ¤Ç¤¢¤ê¡¢ -libc4 ¤È libc5 ¤Ç¤Ï \fIunsigned int\fP ¤Ç¤¢¤ë¡£ +引き数は 4.x BSD では \fIint\fP であり、 +libc4 と libc5 では \fIunsigned int\fP である。 .I len -°ú¤­¿ô¤Ï 4.x BSD ¤È libc4 ¤Ç¤Ï \fIint\fP ¤Ç¤¢¤ê¡¢ -libc5 ¤Ç¤Ï \fIsize_t\fP ¤Ç¤¢¤ë¡£ +引き数は 4.x BSD と libc4 では \fIint\fP であり、 +libc5 では \fIsize_t\fP である。 .I addrlen -°ú¤­¿ô¤Ï 4.x BSD ¤È libc4 ¤È libc5 ¤Ç¤Ï \fIint\fP ¤Ç¤¢¤ë¡£ +引き数は 4.x BSD と libc4 と libc5 では \fIint\fP である。 .BR accept (2) -¤â»²¾È¤¹¤ë¤³¤È¡£ +も参照すること。 .\"O According to POSIX.1-2001, the .\"O .I msg_controllen @@ -686,44 +686,44 @@ libc5 .\"O .IR socklen_t , .\"O but glibc currently types it as .\"O .IR size_t . -POSIX.1-2001 ¤Ç¤Ï¡¢¹½Â¤ÂÎ +POSIX.1-2001 では、構造体 .I msghdr -¤Î¥Õ¥£¡¼¥ë¥É +のフィールド .I msg_controllen -¤Ï +は .I socklen_t -·¿¤Ç¤¢¤ë¤Ù¤­¤À¤È¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -¸½ºß¤Î glibc ¤Ç¤Ï +型であるべきだとされているが、 +現在の glibc では .I size_t -·¿¤Ç¤¢¤ë¡£ +型である。 .\" glibc bug raised 12 Mar 2006 .\" http://sourceware.org/bugzilla/show_bug.cgi?id=2448 .\" The problem is an underlying kernel issue: the size of the .\" __kernel_size_t type used to type this field varies .\" across architectures, but socklen_t is always 32 bits. .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Linux may return .\"O .B EPIPE .\"O instead of .\"O .BR ENOTCONN . -Linux ¤Ï +Linux は .B ENOTCONN -¤òÊÖ¤¹¾õ¶·¤Ç +を返す状況で .B EPIPE -¤òÊÖ¤¹¤³¤È¤¬¤¢¤ë¡£ +を返すことがある。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O An example of the use of .\"O .BR sendto () .\"O is shown in .\"O .BR getaddrinfo (3). .BR sendto () -¤ÎÍøÍÑÎ㤬 +の利用例が .BR getaddrinfo (3) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ +に記載されている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fcntl (2), .BR getsockopt (2), .BR recv (2), diff --git a/draft/man2/sendfile.2 b/draft/man2/sendfile.2 index dea3c30d..7cb62b33 100644 --- a/draft/man2/sendfile.2 +++ b/draft/man2/sendfile.2 @@ -21,22 +21,22 @@ .\" Updated 2005-04-17, Akihiro MOTOKI .\" Updated 2010-04-18, Akihiro MOTOKI , LDP v3.24 .\" -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: socket ¥½¥±¥Ã¥È -.\"WORD: lock ¥í¥Ã¥¯ +.\"WORD: descriptor ディスクリプタ +.\"WORD: socket ソケット +.\"WORD: lock ロック .\" .TH SENDFILE 2 2010-02-15 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sendfile \- ¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿´Ö¤Ç¥Ç¡¼¥¿¤òžÁ÷¤¹¤ë -.SH ½ñ¼° +.SH 名前 +sendfile \- ファイル・ディスクリプタ間でデータを転送する +.SH 書式 .B #include .sp .BI "ssize_t sendfile(int" " out_fd" ", int" " in_fd" ", off_t *" \ offset ", size_t" " count" ); .\"O .\" The below is too ugly. Comments about glibc versions belong .\"O .\" in the notes, not in the header. -.\" °Ê²¼¤Ï¡¢¤¢¤Þ¤ê¤Ë¤â±ø¤¤¡£ glibc ¥Ð¡¼¥¸¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Î¥³¥á¥ó¥È¤Ï -.\" ¡Ö¥Ø¥Ã¥À¡×¤Ç¤Ï¤Ê¤¯¡¢¡ÖÃí°Õ¡×¤Ë½ñ¤¤¤Æ¤ª¤¯¡£ +.\" 以下は、あまりにも汚い。 glibc バージョンについてのコメントは +.\" 「ヘッダ」ではなく、「注意」に書いておく。 .\" .\" .B #include .\" .br @@ -55,7 +55,7 @@ sendfile \- .\" .br .\" .B #endif .\" -.SH ÀâÌÀ +.SH 説明 .\"O .BR sendfile () .\"O copies data between one file descriptor and another. .\"O Because this copying is done within the kernel, @@ -66,28 +66,28 @@ sendfile \- .\"O .BR write (2), .\"O which would require transferring data to and from user space. .BR sendfile () -¤Ï¡¢¤¢¤ë¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÊ̤Π-¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ø¤Î¥Ç¡¼¥¿¤Î¥³¥Ô¡¼¤ò¹Ô¤¦¡£ -¤³¤Î¥³¥Ô¡¼¤Ï¥«¡¼¥Í¥ëÆâ¤Ç¹Ô¤ï¤ì¤ë¤Î¤Ç¡¢ +は、あるファイル・ディスクリプタから別の +ファイル・ディスクリプタへのデータのコピーを行う。 +このコピーはカーネル内で行われるので、 .BR sendfile () -¤Ï¡¢ +は、 .BR read (2) -¤È +と .BR write (2) -¤òÁȤ߹ç¤ï¤»¤ë¤è¤ê¤â¸úΨ¤¬¤è¤¤¡£ +を組み合わせるよりも効率がよい。 .BR read (2) -¤ä +や .BR write (2) -¤Ç¤Ï¥æ¡¼¥¶¶õ´Ö¤È¤Î´Ö¤Ç¥Ç¡¼¥¿¤ÎžÁ÷¤¬É¬ÍפȤʤ뤫¤é¤Ç¤¢¤ë¡£ +ではユーザ空間との間でデータの転送が必要となるからである。 .\"O .I in_fd .\"O should be a file descriptor opened for reading and .\"O .I out_fd .\"O should be a descriptor opened for writing. .I in_fd -¤ÏÆɤ߹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¢ +は読み込みのためにオープンされたファイル・ディスクリプタ、 .I out_fd -¤Ï½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は書き込みのためにオープンされたディスクリプタでなければならない。 .\"O If .\"O .I offset @@ -101,17 +101,17 @@ sendfile \- .\"O returns, this variable .\"O will be set to the offset of the byte following the last byte that was read. .I offset -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が NULL でない場合、 .I offset -¤Ï +は .BR sendfile () -¤¬ +が .I in_fd -¤Î¤É¤³¤«¤é¥Ç¡¼¥¿¤òÆɤ߻Ϥá¤ë¤«¤ò¼¨¤¹¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤òÊÝ»ý¤¹¤ëÊÑ¿ô¤Ø¤Î -¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +のどこからデータを読み始めるかを示すファイル・オフセットを保持する変数への +ポインタである。 .BR sendfile () -¤ÏÉüµ¢¤¹¤ë»þ¡¢¤³¤ÎÊÑ¿ô¤ËºÇ¸å¤ËÆɤ߹þ¤ó¤À¥Ð¥¤¥È¤Î -¼¡¤Î¥Ð¥¤¥È¤Î¥ª¥Õ¥»¥Ã¥È¤ò½ñ¤­¹þ¤à¡£ +は復帰する時、この変数に最後に読み込んだバイトの +次のバイトのオフセットを書き込む。 .\"O If .\"O .I offset .\"O is not NULL, then @@ -122,14 +122,14 @@ sendfile \- .\"O the number of bytes read from .\"O .IR in_fd . .I offset -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が NULL でない場合、 .BR sendfile () -¤Ï +は .I in_fd -¤Î¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤Î¸½ºßÃͤòÊѹ¹¤·¤Ê¤¤¡£ -NULL ¤Î¾ì¹ç¤Ï¡¢¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤Î¸½ºßÃͤò +のファイル・オフセットの現在値を変更しない。 +NULL の場合は、ファイル・オフセットの現在値を .I in_fd -¤«¤éÆɤ߹þ¤ó¤À¥Ð¥¤¥È¿ô¤òÈ¿±Ç¤·¤¿°ÌÃÖ¤ËÄ´À°¤¹¤ë¡£ +から読み込んだバイト数を反映した位置に調整する。 .\"O If .\"O .I offset @@ -138,15 +138,15 @@ NULL .\"O starting at the current file offset, .\"O and the file offset will be updated by the call. .I offset -¤¬ NULL ¤Î¾ì¹ç¡¢¥Ç¡¼¥¿¤Ï +が NULL の場合、データは .I in_fd -¤Î¸½ºß¤Î¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤«¤éÆɤ߽Фµ¤ì¡¢ -¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤Ï¤³¤Î¸Æ¤Ó½Ð¤·¤Ç¹¹¿·¤µ¤ì¤ë¡£ +の現在のファイル・オフセットから読み出され、 +ファイル・オフセットはこの呼び出しで更新される。 .\"O .I count .\"O is the number of bytes to copy between the file descriptors. .I count -¤Ï¡¢¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿´Ö¤Ç¥³¥Ô¡¼¤¹¤ë¥Ð¥¤¥È¿ô¤Ç¤¢¤ë¡£ +は、ファイル・ディスクリプタ間でコピーするバイト数である。 .\"O Presently (Linux 2.6.9): .\"O .IR in_fd , @@ -157,14 +157,14 @@ NULL .\"O and .\"O .I out_fd .\"O must refer to a socket. -º£¤Î¤È¤³¤í (Linux 2.6.9 ¤Ç¤Ï)¡¢ +今のところ (Linux 2.6.9 では)、 .I in_fd -¤Ï +は .BR mmap (2) -É÷¤ÎÁàºî¤¬¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¤ò»Ø¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(¥½¥±¥Ã¥È¤ò»Ø¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤)¡£¤Þ¤¿¡¢ +風の操作ができるファイルを指していなければならない +(ソケットを指してはならない)。また、 .I out_fd -¤Ï¥½¥±¥Ã¥È¤ò»Ø¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +はソケットを指していなければならない。 .\"O Applications may wish to fall back to .\"O .BR read (2)/ write (2) @@ -175,95 +175,95 @@ NULL .\"O or .\"O .BR ENOSYS . .BR sendfile () -¤¬ +が .B EINVAL -¤ä +や .B ENOSYS -¤Ç¼ºÇÔ¤¹¤ë¤è¤¦¤Ê¾ì¹ç¤Ï¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï +で失敗するような場合は、 +アプリケーションは .BR read (2)/ write (2) -¤ËÌ᤹¤³¤È¤ò¹Í¤¨¤Æ¤â¤è¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ +に戻すことを考えてもよいかもしれない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O If the transfer was successful, the number of bytes written to .\"O .I out_fd .\"O is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -žÁ÷¤ËÀ®¸ù¤·¤¿¾ì¹ç¡¢ +転送に成功した場合、 .I out_fd -¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +に書き込まれたバイト数を返す。エラーの場合、\-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤòÀßÄꤹ¤ë¡£ +に適切な値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EAGAIN .\"O Nonblocking I/O has been selected using .\"O .B O_NONBLOCK .\"O and the write would block. .B O_NONBLOCK -¤òÍѤ¤¤ÆÈó¥Ö¥í¥Ã¥¯ I/O ¤¬ÁªÂò¤µ¤ì¤¿¤¬¡¢½ñ¤­¹þ¤ß¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤¿¡£ +を用いて非ブロック I/O が選択されたが、書き込みがブロックされた。 .TP .B EBADF .\"O The input file was not opened for reading or the output file .\"O was not opened for writing. -ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬Æɤ߹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ -½ÐÎÏ¥Õ¥¡¥¤¥ë¤¬½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +入力ファイルが読み込みのためにオープンされていないか、 +出力ファイルが書き込みのためにオープンされていない。 .TP .B EFAULT .\"O Bad address. -¥¢¥É¥ì¥¹¤¬¤ª¤«¤·¤¤¡£ +アドレスがおかしい。 .TP .B EINVAL .\"O Descriptor is not valid or locked, or an .\"O .BR mmap (2)-like .\"O operation is not available for .\"O .IR in_fd . -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Í­¸ú¤Ç¤Ê¤¤¤«¡¢¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¡£¤â¤·¤¯¤Ï +ディスクリプタが有効でないか、ロックされている。もしくは .BR mmap (2) -É÷¤ÎÁàºî¤¬ +風の操作が .I in_fd -¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤¡£ +では利用できない。 .TP .B EIO .\"O Unspecified error while reading from .\"O .IR in_fd . .I in_fd -¤«¤éÆɤ߹þ¤ó¤Ç¤¤¤ë¤¦¤Á¤Ëͽ´ü¤·¤Ê¤¤¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£ +から読み込んでいるうちに予期しないエラーが起こった。 .TP .B ENOMEM .\"O Insufficient memory to read from .\"O .IR in_fd . .I in_fd -¤«¤éÆɤ߹þ¤à¤¿¤á¤Î½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +から読み込むための十分なメモリがない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .B sendfile .\"O is a new feature in Linux 2.2. .B sendfile -¤Ï Linux 2.2 ¤Î¿·¤·¤¤µ¡Ç½¤Ç¤¢¤ë¡£ +は Linux 2.2 の新しい機能である。 .\"O The include file .\"O .I .\"O is present since glibc 2.1. -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +インクルードファイル .I -¤Ï glibc 2.1 ¤«¤é¸ºß¤·¤Æ¤¤¤ë¡£ +は glibc 2.1 から存在している。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O Not specified in POSIX.1-2001, or other standards. -POSIX.1-2001 ¤ä¾¤Îɸ½à¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +POSIX.1-2001 や他の標準では規定されていない。 .\"O Other UNIX systems implement .\"O .BR sendfile () .\"O with different semantics and prototypes. .\"O It should not be used in portable programs. -¾¤Î UNIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢°Û¤Ê¤Ã¤¿Êý¼°¤ä¥×¥í¥È¥¿¥¤¥×¤Ç +他の UNIX システムでは、異なった方式やプロトタイプで .BR sendfile () -¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¡£°Ü¿¢À­¤ò¹Íθ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +を実装している。移植性を考慮したプログラムでは使用すべきではない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O If you plan to use .\"O .BR sendfile () .\"O for sending files to a TCP socket, but need @@ -274,26 +274,26 @@ POSIX.1-2001 .\"O .BR tcp (7), .\"O to minimize the number of packets and to tune performance. .BR sendfile () -¤ò»È¤Ã¤Æ TCP ¥½¥±¥Ã¥È¤Ë¥Õ¥¡¥¤¥ë¤òÁ÷¤í¤¦¤È¤·¤Æ¤¤¤Æ¡¢ -¥Õ¥¡¥¤¥ë¤ÎÆâÍƤÎÁ°¤Ë¥Ø¥Ã¥À¡¦¥Ç¡¼¥¿¤òÉÕ¤±²Ã¤¨¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ï¡¢ -¥Ñ¥±¥Ã¥È¿ô¤òºÇ¾®¤Ë¤·¤ÆÀ­Ç½¤ò¾å¤²¤ë¤¿¤á¤Ë +を使って TCP ソケットにファイルを送ろうとしていて、 +ファイルの内容の前にヘッダ・データを付け加える必要がある場合は、 +パケット数を最小にして性能を上げるために .BR tcp (7) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë +に記述されている .B TCP_CORK -¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¤¤¤¤¤À¤í¤¦¡£ +オプションを使うといいだろう。 .\"O In Linux 2.4 and earlier, .\"O .I out_fd .\"O could refer to a regular file, and .\"O .BR sendfile () .\"O changed the current offset of that file. -Linux 2.4 ¤È¤½¤ì°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ +Linux 2.4 とそれ以前のバージョンでは、 .I out_fd -¤ÏÄ̾ï¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤Ç¤­¡¢ +は通常のファイルを参照でき、 .BR sendfile () -¤Ï¤½¤Î¥Õ¥¡¥¤¥ë¤Î¥ª¥Õ¥»¥Ã¥È¤Î¸½ºßÃͤòÊѹ¹¤·¤Æ¤¤¤¿¡£ +はそのファイルのオフセットの現在値を変更していた。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mmap (2), .BR open (2), .BR socket (2), diff --git a/draft/man2/set_mempolicy.2 b/draft/man2/set_mempolicy.2 index 05ed413e..5c9951cc 100644 --- a/draft/man2/set_mempolicy.2 +++ b/draft/man2/set_mempolicy.2 @@ -30,16 +30,16 @@ .\" Updated 2008-09-02, Akihiro MOTOKI, LDP v3.08 .\" Updated 2008-11-19, Akihiro MOTOKI, LDP v3.13 .\" -.\"WORD: anonymous memory ̵̾¥á¥â¥ê +.\"WORD: anonymous memory 無名メモリ .\" .TH SET_MEMPOLICY 2 2008-08-15 Linux "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O set_mempolicy \- set default NUMA memory policy for a process and its children -set_mempolicy \- ¥×¥í¥»¥¹¤È¤½¤Î»Ò¥×¥í¥»¥¹¤Î NUMA ¥á¥â¥ê¤Î -¥Ç¥Õ¥©¥ë¥È¥Ý¥ê¥·¡¼¤òÀßÄꤹ¤ë +set_mempolicy \- プロセスとその子プロセスの NUMA メモリの +デフォルトポリシーを設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B "#include " .sp @@ -47,10 +47,10 @@ set_mempolicy \- .BI " unsigned long " maxnode ); .sp .\"O Link with \fI\-lnuma\fP. -\fI\-lnuma\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lnuma\fP でリンクする。 .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR set_mempolicy () .\"O sets the NUMA memory policy of the calling process, .\"O which consists of a policy mode and zero or more nodes, @@ -61,24 +61,24 @@ set_mempolicy \- .\"O .I maxnode .\"O arguments. .BR set_mempolicy () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î NUMA ¥Ý¥ê¥·¡¼¤ò +は、呼び出し元プロセスの NUMA ポリシーを .I policy -¤ËÀßÄꤹ¤ë¡£ -NUMA ¥Ý¥ê¥·¡¼¤Ï¥Ý¥ê¥·¡¼¥â¡¼¥É¤È 0 ¸Ä°Ê¾å¤Î¥Î¡¼¥É¤«¤é¹½À®¤µ¤ì¡¢ -ÀßÄêÆâÍƤϰú¤­¿ô +に設定する。 +NUMA ポリシーはポリシーモードと 0 個以上のノードから構成され、 +設定内容は引き数 .IR mode , .IR nodemask , .I maxnode -¤Ë¤è¤ê»ØÄꤵ¤ì¤ë¡£ +により指定される。 .\"O A NUMA machine has different .\"O memory controllers with different distances to specific CPUs. .\"O The memory policy defines from which node memory is allocated for .\"O the process. -NUMA (ÈóÂоΥá¥â¥ê¥¢¥¯¥»¥¹) ¥Þ¥·¥ó¤Ç¤Ï¡¢CPU ¤Ë¤è¤ê -¥á¥â¥ê¥³¥ó¥È¥í¡¼¥é¤¬°Û¤Ê¤ê¡¢µ÷Î¥¤â°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ -¥á¥â¥ê¥Ý¥ê¥·¡¼¤Ï¡¢¤É¤Î¥Î¡¼¥É¤«¤é¥á¥â¥ê¤ò¤½¤Î¥×¥í¥»¥¹¤Ë -³ä¤êÅö¤Æ¤é¤ì¤ë¤«¤òÄê¤á¤ë¤â¤Î¤Ç¤¢¤ë¡£ +NUMA (非対称メモリアクセス) マシンでは、CPU により +メモリコントローラが異なり、距離も異なっている。 +メモリポリシーは、どのノードからメモリをそのプロセスに +割り当てられるかを定めるものである。 .\"O This system call defines the default policy for the process. .\"O The process policy governs allocation of pages in the process's @@ -86,11 +86,11 @@ NUMA ( .\"O controlled by a more specific policy set by .\"O .BR mbind (2). .BR set_mempolicy () -¤Ï¡¢¥×¥í¥»¥¹¤Î¥Ç¥Õ¥©¥ë¥È¥Ý¥ê¥·¡¼¤òÄê¤á¤ë¡£ -¥×¥í¥»¥¹¤Î¥Ý¥ê¥·¡¼¤Ï¡¢ +は、プロセスのデフォルトポリシーを定める。 +プロセスのポリシーは、 .BR mbind (2) -¤ÇÀßÄꤵ¤ì¤ëÆÃÄê¤Î¥Ý¥ê¥·¡¼¤Ë¤è¤êÀ©¸æ¤µ¤ì¤ë¥á¥â¥êÎΰè°Ê³°¤Î -¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤ª¤±¤ë¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤ËŬÍѤµ¤ì¤ë¡£ +で設定される特定のポリシーにより制御されるメモリ領域以外の +プロセスのアドレス空間におけるページの割り当てに適用される。 .\"O The process default policy also controls allocation of any pages for .\"O memory mapped files mapped using the .\"O .BR mmap (2) @@ -102,25 +102,25 @@ NUMA ( .\"O call with the .\"O .B MAP_SHARED .\"O flag, regardless of the access type. -¥×¥í¥»¥¹¤Î¥Ç¥Õ¥©¥ë¥È¥Ý¥ê¥·¡¼¤Ï¡¢ +プロセスのデフォルトポリシーは、 .B MAP_PRIVATE -¥Õ¥é¥°¤ò»ØÄꤷ¤¿ +フラグを指定した .BR mmap (2) -¤ò»È¤Ã¤Æ¥Þ¥Ã¥×¤µ¤ì¤¿¥á¥â¥ê¥Þ¥Ã¥×¡¦¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ëÆɤ߽Ф·ÀìÍÑ -(¥í¡¼¥É¤µ¤ì¤ë¤À¤±) ¤Î¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤Ë¤âŬÍѤµ¤ì¤ë¡£ -¤Þ¤¿¡¢ +を使ってマップされたメモリマップ・ファイルに対する読み出し専用 +(ロードされるだけ) のページの割り当てにも適用される。 +また、 .B MAP_SHARED -¥Õ¥é¥°¤ò»ØÄꤷ¤¿ +フラグを指定した .BR mmap (2) -¤ò»È¤Ã¤Æ¥Þ¥Ã¥×¤µ¤ì¤¿¥á¥â¥ê¥Þ¥Ã¥×¡¦¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤Ë¤â -ŬÍѤµ¤ì¤ë (¤³¤Î¾ì¹ç¤Ï¥Ú¡¼¥¸¤Î¥¢¥¯¥»¥¹¼ïÊ̤˴ؤï¤é¤ºÅ¬ÍѤµ¤ì¤ë) ¡£ +を使ってマップされたメモリマップ・ファイルに対するページの割り当てにも +適用される (この場合はページのアクセス種別に関わらず適用される) 。 .\"O The policy is only applied when a new page is allocated .\"O for the process. .\"O For anonymous memory this is when the page is first .\"O touched by the application. -ÀßÄꤷ¤¿¥Ý¥ê¥·¡¼¤Ï¡¢¥×¥í¥»¥¹¤Ë¿·µ¬¤Î¥Ú¡¼¥¸¤¬³ä¤êÅö¤Æ¤é¤ì¤ë¤È¤­¤Ë¤Î¤ß -ŬÍѤµ¤ì¤ë¡£ÌµÌ¾¥á¥â¥ê (anonymous memory) ¤Î¾ì¹ç¡¢¿·µ¬¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤Ï -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬½é¤á¤Æ¥Ú¡¼¥¸¤Ë¥¢¥¯¥»¥¹¤·¤¿ºÝ¤Ë¹Ô¤ï¤ì¤ë¡£ +設定したポリシーは、プロセスに新規のページが割り当てられるときにのみ +適用される。無名メモリ (anonymous memory) の場合、新規ページの割り当ては +アプリケーションが初めてページにアクセスした際に行われる。 .\"O The .\"O .I mode @@ -136,16 +136,16 @@ NUMA ( .\"O .I nodemask .\"O argument one or more nodes. .I mode -°ú¤­¿ô¤Ë¤Ï +引き数には .BR MPOL_DEFAULT , .BR MPOL_BIND , .BR MPOL_INTERLEAVE , .B MPOL_PREFERRED -¤Î¤¤¤º¤ì¤«°ì¤Ä¤ò»ØÄꤷ¤Æ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +のいずれか一つを指定してしなければならない。 .B MPOL_DEFAULT -°Ê³°¤Î¥Ý¥ê¥·¡¼¤Î¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Ï +以外のポリシーの場合、呼び出し元は .I nodemask -°ú¤­¿ô¤Ç°ì¤Ä°Ê¾å¤Î¥Î¡¼¥É¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¡£ +引き数で一つ以上のノードを指定する必要がある。 .\"O The .\"O .I mode @@ -155,15 +155,15 @@ NUMA ( .\"O .I "mode flags" .\"O are: .I mode -°ú¤­¿ô¤Ë¤Ï¡¢ÄÉ²Ã¤Ç -.I "¥â¡¼¥É¥Õ¥é¥°" -¤ò´Þ¤á¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë -.I "¥â¡¼¥É¥Õ¥é¥°" -¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +引き数には、追加で +.I "モードフラグ" +を含めることもできる。 +サポートされている +.I "モードフラグ" +は以下の通りである。 .TP .\"O .BR MPOL_F_STATIC_NODES " (since Linux 2.6.26)" -.BR MPOL_F_STATIC_NODES " (Linux 2.6.26 °Ê¹ß)" +.BR MPOL_F_STATIC_NODES " (Linux 2.6.26 以降)" .\"O A nonempty .\"O .I nodemask .\"O specifies physical node ids. @@ -172,25 +172,25 @@ NUMA ( .\"O when the process moves to a different cpuset context, .\"O nor when the set of nodes allowed by the process's .\"O current cpuset context changes. -¶õ¤Ç¤Ê¤¤ +空でない .I nodemask -¤Ï¡¢ÊªÍý¥Î¡¼¥É ID ¤Ç¤¢¤ë¡£ -Linux ¤Ç¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤¬°Û¤Ê¤ë CPU ½¸¹ç¥³¥ó¥Æ¥­¥¹¥È (cpuset context) -¤Ë°ÜÆ°¤·¤¿¾ì¹ç¤Ç¤â¡¢¤½¤Î¥×¥í¥»¥¹¤Î¸½ºß¤Î CPU ½¸¹ç¥³¥ó¥Æ¥­¥¹¥È¤Ç -µö²Ä¤µ¤ì¤Æ¤¤¤ë¥Î¡¼¥É½¸¹ç¤¬ÊѲ½¤·¤¿¾ì¹ç¤Ç¤â¡¢ +は、物理ノード ID である。 +Linux では、そのプロセスが異なる CPU 集合コンテキスト (cpuset context) +に移動した場合でも、そのプロセスの現在の CPU 集合コンテキストで +許可されているノード集合が変化した場合でも、 .I nodemask -¤ò¥Þ¥Ã¥Ô¥ó¥°¤·Ä¾¤¹¤³¤È¤Ï¤Ê¤¤¡£ +をマッピングし直すことはない。 .TP .\"O .BR MPOL_F_RELATIVE_NODES " (since Linux 2.6.26)" -.BR MPOL_F_RELATIVE_NODES " (Linux 2.6.26 °Ê¹ß)" +.BR MPOL_F_RELATIVE_NODES " (Linux 2.6.26 以降)" .\"O A nonempty .\"O .I nodemask .\"O specifies node ids that are relative to the set of .\"O node ids allowed by the process's current cpuset. -¶õ¤Ç¤Ê¤¤ +空でない .I nodemask -¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤Î¸½ºß¤Î CPU ½¸¹ç¤Çµö²Ä¤µ¤ì¤Æ¤¤¤ë¥Î¡¼¥É ID ½¸¹ç -¤Ë¤ª¤±¤ëÁêÂÐŪ¤Ê¥Î¡¼¥É ID ¤Ç¤¢¤ë¡£ +は、そのプロセスの現在の CPU 集合で許可されているノード ID 集合 +における相対的なノード ID である。 .PP .\"O .I nodemask .\"O points to a bit mask of node IDs that contains up to @@ -201,14 +201,14 @@ Linux .\"O but the kernel will only use bits up to .\"O .IR maxnode . .I nodemask -¤Ï¡¢ºÇÂç¤Ç +は、最大で .I maxnode -¥Ó¥Ã¥È¤«¤é¹½À®¤µ¤ì¤ë¥Î¡¼¥É ID ¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤ò»Ø¤¹¡£ -¥Ó¥Ã¥È¥Þ¥¹¥¯¤ÎÂ礭¤µ¤Ï¡¢Ä¾¶á¤Î +ビットから構成されるノード ID のビットマスクを指す。 +ビットマスクの大きさは、直近の .I sizeof(unsigned long) -¤ÎÇÜ¿ô¤ËÀÚ¤ê¾å¤²¤é¤ì¤ë¤¬¡¢¥«¡¼¥Í¥ë¤¬»ÈÍѤ¹¤ë¤Î¤Ï +の倍数に切り上げられるが、カーネルが使用するのは .I maxnode -¸Ä¤Þ¤Ç¤Î¥Ó¥Ã¥È¤À¤±¤Ç¤¢¤ë¡£ +個までのビットだけである。 .\"O A NULL value of .\"O .I nodemask .\"O or a @@ -220,15 +220,15 @@ Linux .\"O the .\"O .I nodemask .\"O argument is ignored. -NULL ÃͤΠ+NULL 値の .I nodemask -¤â¤·¤¯¤ÏÃͤ¬ 0 ¤Î +もしくは値が 0 の .I maxnode -¤Ï¥Î¡¼¥É¤Î¶õ½¸¹ç¤òɽ¤¹¡£ +はノードの空集合を表す。 .I maxnode -¤ÎÃͤ¬ 0 ¤Î¾ì¹ç¡¢ +の値が 0 の場合、 .I nodemask -°ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ +引き数は無視される。 .\"O Where a .\"O .I nodemask @@ -239,13 +239,13 @@ NULL .\"O mode flag is specified], .\"O and contains memory. .I nodemask -¤¬É¬¿Ü¤Î¾ìÌ̤Ǥϡ¢ +が必須の場面では、 .I nodemask -¤Ë¡¢¥ª¥ó¥é¥¤¥ó¤Ç¡¢¤½¤Î¥×¥í¥»¥¹¤Î¸½ºß¤Î CPU ½¸¹ç¥³¥ó¥Æ¥­¥¹¥È¤Ç -µö²Ä¤µ¤ì¤Æ¤ª¤ê +に、オンラインで、そのプロセスの現在の CPU 集合コンテキストで +許可されており .RB ( MPOL_F_STATIC_NODES -¥â¡¼¥É¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç)¡¢¥á¥â¥ê¤¬¤¢¤ë¥Î¡¼¥É¤¬ -¾¯¤Ê¤¯¤È¤â°ì¤ÄÆþ¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +モードフラグが指定されていない場合)、メモリがあるノードが +少なくとも一つ入っていなければならない。 .\"O If the .\"O .B MPOL_F_STATIC_NODES .\"O is set in @@ -259,19 +259,19 @@ NULL .\"O cpuset context includes one or more of the nodes specified by .\"O .IR nodemask . .I mode -¤Ë +に .B MPOL_F_STATIC_NODES -¤¬¥»¥Ã¥È¤µ¤ì¡¢ +がセットされ、 .I nodemask -¤¬É¬¿Ü¤Î¾ìÌ̤ǡ¢ +が必須の場面で、 .I nodemask -¤Ë¡¢¤½¤Î¥×¥í¥»¥¹¤Î¸½ºß¤Î CPU ½¸¹ç¥³¥ó¥Æ¥­¥¹¥È¤Çµö²Ä¤µ¤ì¤¿¥Î¡¼¥É¤¬ -°ì¤Ä¤â´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢¥á¥â¥ê¤Î¥Ý¥ê¥·¡¼¤È¤·¤Æ¥Ç¥Õ¥©¥ë¥È¤Î -¡Ö¥í¡¼¥«¥ë¤«¤é³ä¤êÅö¤Æ (local allocation)¡×¤¬Å¬ÍѤµ¤ì¤ë¡£ -¤½¤Î¥×¥í¥»¥¹¤Î CPU ½¸¹ç¥³¥ó¥Æ¥­¥¹¥È¤¬ +に、そのプロセスの現在の CPU 集合コンテキストで許可されたノードが +一つも含まれていない場合には、メモリのポリシーとしてデフォルトの +「ローカルから割り当て (local allocation)」が適用される。 +そのプロセスの CPU 集合コンテキストが .I nodemask -¤Ç»ØÄꤵ¤ì¤¿¥Î¡¼¥É¤ò¾¯¤Ê¤¯¤È¤â°ì¤Ä´Þ¤à¤è¤¦¤Ë¤Ê¤ë¤Þ¤Ç¤Ï¡¢ -·ë²ÌŪ¤Ë»ØÄꤵ¤ì¤¿Æ°ºî¤¬¾å½ñ¤­¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ +で指定されたノードを少なくとも一つ含むようになるまでは、 +結果的に指定された動作が上書きされることになる。 .\"O The .\"O .B MPOL_DEFAULT @@ -284,15 +284,15 @@ NULL .\"O If the "local node" contains no free memory, the system will .\"O attempt to allocate memory from a "near by" node. .B MPOL_DEFAULT -¥â¡¼¥É¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¤Ê¤¤¥×¥í¥»¥¹¤Î¥á¥â¥ê¥Ý¥ê¥·¡¼¤òºï½ü¤¹¤ë¤³¤È¤ò -»ØÄꤹ¤ë¤â¤Î¤Ç¤¢¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢¥á¥â¥ê¥Ý¥ê¥·¡¼¤Ï¥·¥¹¥Æ¥à¤Î -¥Ç¥Õ¥©¥ë¥È¥Ý¥ê¥·¡¼¤Ë¡ÖÌá¤ë¡×¤³¤È¤Ë¤Ê¤ë¡£ -¥·¥¹¥Æ¥à¤Î¥Ç¥Õ¥©¥ë¥È¥Ý¥ê¥·¡¼¤Ï¡Ö¥í¡¼¥«¥ë¤«¤é¤Î³ä¤êÅö¤Æ (local allocation)¡×¡¢ -¤Ä¤Þ¤ê¥á¥â¥ê³ä¤êÅö¤Æ¤Î¤­¤Ã¤«¤±¤È¤Ê¤Ã¤¿ CPU ¤Î¥Î¡¼¥É¤Î¥á¥â¥ê¤¬³ä¤êÅö¤Æ¤é¤ì¤ë¡£ +モードは、デフォルトではないプロセスのメモリポリシーを削除することを +指定するものである。これにより、メモリポリシーはシステムの +デフォルトポリシーに「戻る」ことになる。 +システムのデフォルトポリシーは「ローカルからの割り当て (local allocation)」、 +つまりメモリ割り当てのきっかけとなった CPU のノードのメモリが割り当てられる。 .I nodemask -¤Ë¤Ï NULL ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¡Ö¼«¥Î¡¼¥É (local node)¡×¤Ë¶õ¤­¥á¥â¥ê¤¬Á´¤¯¤Ê¤¤¾ì¹ç¡¢¥·¥¹¥Æ¥à¤Ï -¡Ö¶á¤¯¤Î (near by) ¥Î¡¼¥É¡×¤«¤é¥á¥â¥ê¤ò³ä¤êÅö¤Æ¤è¤¦¤È»î¤ß¤ë¡£ +には NULL を指定しなければならない。 +「自ノード (local node)」に空きメモリが全くない場合、システムは +「近くの (near by) ノード」からメモリを割り当てようと試みる。 .\"O The .\"O .B MPOL_BIND @@ -311,21 +311,21 @@ NULL .\"O Pages will not be allocated from any node not specified in the .\"O .IR nodemask . .B MPOL_BIND -¥â¡¼¥É¤Ï¸·Ì©¤Ê¥Ý¥ê¥·¡¼¤Ç¡¢¥á¥â¥ê³ä¤êÅö¤Æ¤Ï +モードは厳密なポリシーで、メモリ割り当ては .I nodemask -¤Ë»ØÄꤵ¤ì¤¿¥Î¡¼¥É¤Ë¸ÂÄꤵ¤ì¤ë¡£ +に指定されたノードに限定される。 .I nodemask -¤Ë 2 ¸Ä°Ê¾å¤Î¥Î¡¼¥É¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤Ï -¥Î¡¼¥É ID ¤¬¿ô»ú¤È¤·¤ÆºÇ¾®¤Î¥Î¡¼¥É¤«¤é³«»Ï¤µ¤ì¡¢ -¤½¤Î¥Î¡¼¥É¤Ë¶õ¤­¥á¥â¥ê¤¬¤Ê¤¯¤Ê¤ë¤Þ¤Ç¤½¤Î¥Î¡¼¥É¤«¤é -¥Ú¡¼¥¸³ä¤êÅö¤Æ¤¬¹Ô¤ï¤ì¤ë¡£¤½¤Î¥Î¡¼¥É¤Ë¶õ¤­¥á¥â¥ê¤¬¤Ê¤¯¤Ê¤Ã¤¿¤é¡¢ -.\"motoki: the next highest ¤Ï the next lowest ¤Î´Ö°ã¤¤¡© -¼¡¤Ë¾®¤µ¤Ê¥Î¡¼¥É ID ¤ò»ý¤Ä¥Î¡¼¥É¤«¤é¥Ú¡¼¥¸³ä¤êÅö¤Æ¤¬¹Ô¤ï¤ì¤ë¡£ -¤³¤ì¤ò¡¢ +に 2 個以上のノードが指定された場合、ページの割り当ては +ノード ID が数字として最小のノードから開始され、 +そのノードに空きメモリがなくなるまでそのノードから +ページ割り当てが行われる。そのノードに空きメモリがなくなったら、 +.\"motoki: the next highest は the next lowest の間違い? +次に小さなノード ID を持つノードからページ割り当てが行われる。 +これを、 .I nodemask -¤Ç»ØÄꤵ¤ì¤¿Á´¤Æ¤Î¥Î¡¼¥É¤Ç¶õ¤­¥á¥â¥ê¤¬¤Ê¤¯¤Ê¤ë¤Þ¤Ç·«¤êÊÖ¤¹¡£ +で指定された全てのノードで空きメモリがなくなるまで繰り返す。 .I nodemask -¤Ç»ØÄꤵ¤ì¤¿°Ê³°¤Î¥Î¡¼¥É¤«¤é¤Ï¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ +で指定された以外のノードからはページの割り当ては行われない。 .\"O .B MPOL_INTERLEAVE .\"O interleaves page allocations across the nodes specified in @@ -337,13 +337,13 @@ NULL .\"O However, accesses to a single page will still be limited to .\"O the memory bandwidth of a single node. .B MPOL_INTERLEAVE -¤Ç¤Ï¡¢¥Ú¡¼¥¸³ä¤êÅö¤Æ¤ò +では、ページ割り当てを .I nodemask -¤Ë»ØÄꤵ¤ì¤¿¥Î¡¼¥É¤Î´Ö¤Ç¥Î¡¼¥É ID ¤Î¿ô»ú½ç¤Ç¸ò¸ß¤Ë¹Ô¤¦¡£ -¤³¤Î¥Ý¥ê¥·¡¼¤Ç¤Ï¡¢Ê£¿ô¤Î¥Î¡¼¥É¤Ë¥Ú¡¼¥¸¤ò¹­¤²¤ÆÇÛÃÖ¤·¡¢¤³¤ì¤é¤Î¥Ú¡¼¥¸¤Ø¤Î¥á¥â¥ê -¥¢¥¯¥»¥¹¤òʬ»¶¤¹¤ë¤³¤È¤Ç¡¢ÃÙ±ä¤Ç¤Ï¤Ê¤¯¡¢ÂÓ°è¤òºÇŬ²½¤¹¤ë¡£ -¤¿¤À¤·¡¢°ì¤Ä¤Î¥Ú¡¼¥¸¤Ø¤Î¥¢¥¯¥»¥¹¤Ë´Ø¤·¤Æ¤Ï°ÍÁ³¤È¤·¤Æ°ì¤Ä¤Î¥Î¡¼¥É¤Î¥á¥â¥êÂÓ°è -¤¬¾å¸Â¤È¤Ê¤ë¡£ +に指定されたノードの間でノード ID の数字順で交互に行う。 +このポリシーでは、複数のノードにページを広げて配置し、これらのページへのメモリ +アクセスを分散することで、遅延ではなく、帯域を最適化する。 +ただし、一つのページへのアクセスに関しては依然として一つのノードのメモリ帯域 +が上限となる。 .\" NOTE: the following sentence doesn't make sense in the context .\" of set_mempolicy() -- no memory area specified. .\" To be effective the memory area should be fairly large, @@ -366,19 +366,19 @@ NULL .\"O specifies "local allocation" .\"O (like the system default policy discussed above). .B MPOL_PREFERRED -¤Ï¡¢³ä¤êÅö¤Æ»þ¤ËÍ¥À褵¤ì¤ë¥Î¡¼¥É (preferred node) ¤òÀßÄꤹ¤ë¡£ -¥«¡¼¥Í¥ë¤Ï¤Þ¤ºÍ¥Àè¥Î¡¼¥É¤«¤é¥Ú¡¼¥¸³ä¤êÅö¤Æ¤ò¹Ô¤ª¤¦¤È¤·¡¢ -Í¥Àè¥Î¡¼¥É¤Ë¶õ¤­¥á¥â¥ê¤¬¾¯¤Ê¤¤¾ì¹ç¤Ë¡Ö¶á¤¯¤Î (near by)¡×¥Î¡¼¥É¤«¤é -³ä¤êÅö¤Æ¤ò¹Ô¤¦¡£ +は、割り当て時に優先されるノード (preferred node) を設定する。 +カーネルはまず優先ノードからページ割り当てを行おうとし、 +優先ノードに空きメモリが少ない場合に「近くの (near by)」ノードから +割り当てを行う。 .I nodemask -¤ËÊ£¿ô¤Î¥Î¡¼¥É ID ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢ +に複数のノード ID が指定された場合は、 .I nodemask -Æâ¤ÎºÇ½é¤Î¥Î¡¼¥É¤¬Í¥Àè¥Î¡¼¥É¤È¤·¤ÆÁªÂò¤µ¤ì¤ë¡£ -°ú¤­¿ô +内の最初のノードが優先ノードとして選択される。 +引き数 .IR nodemask , .I maxnode -¤Ç¶õ½¸¹ç¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢¥Ý¥ê¥·¡¼¤Ï (¾å½Ò¤Î¥·¥¹¥Æ¥à¤Î -¥Ç¥Õ¥©¥ë¥È¥Ý¥ê¥·¡¼¤ÈƱÍͤË) ¡Ö¥í¡¼¥«¥ë¤«¤é¤Î³ä¤êÅö¤Æ¡×¤È¤Ê¤ë¡£ +で空集合が指定された場合は、ポリシーは (上述のシステムの +デフォルトポリシーと同様に) 「ローカルからの割り当て」となる。 .\"O The process memory policy is preserved across an .\"O .BR execve (2), @@ -386,28 +386,28 @@ NULL .\"O .BR fork (2) .\"O or .\"O .BR clone (2). -¥×¥í¥»¥¹¤Î¥á¥â¥ê¥Ý¥ê¥·¡¼¤Ï +プロセスのメモリポリシーは .BR execve (2) -¤ÎÁ°¸å¤ÇÊÝ»ý¤µ¤ì¡¢ +の前後で保持され、 .BR fork (2) -¤ä +や .BR clone (2) -¤ò»È¤Ã¤ÆºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ë·Ñ¾µ¤µ¤ì¤ë¡£ +を使って作成された子プロセスに継承される。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR set_mempolicy () .\"O returns 0; .\"O on error, \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR set_mempolicy () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O Part of all of the memory range specified by @@ -415,18 +415,18 @@ NULL .\"O and .\"O .I maxnode .\"O points outside your accessible address space. -.\"motoki: Part of all of the memory ¤Ï Part or all .. ¤Î´Ö°ã¤¤¡© +.\"motoki: Part of all of the memory は Part or all .. の間違い? .I nodemask -¤È +と .I maxnode -¤Ç»ØÄꤵ¤ì¤¿¥á¥â¥êÎΰè¤Î°ìÉô¤Þ¤¿¤ÏÁ´Éô¤¬¡¢ -¸Æ¤Ó½Ð¤·¸µ¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +で指定されたメモリ領域の一部または全部が、 +呼び出し元がアクセス可能なアドレス空間外を指している。 .TP .B EINVAL .\"O .I mode .\"O is invalid. .I mode -¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +が不正である。 .\"O Or, .\"O .I mode .\"O is @@ -435,11 +435,11 @@ NULL .\"O .I nodemask .\"O is nonempty, .I mode -¤¬ +が .B MPOL_DEFAULT -¤Ç¡¢ +で、 .I nodemask -¤¬¶õ¤Ç¤Ï¤Ê¤¤¡£ +が空ではない。 .\"O or .\"O .I mode .\"O is @@ -450,32 +450,32 @@ NULL .\"O .I nodemask .\"O is empty. .I mode -¤¬ +が .B MPOL_BIND -¤« +か .B MPOL_INTERLEAVE -¤Ç¡¢ +で、 .I nodemask -¤¬¶õ¤Ç¤¢¤ë¡£ +が空である。 .\"O Or, .\"O .I maxnode .\"O specifies more than a page worth of bits. .I maxnode -¤Ç¼ÂºÝ¤Ë°ÕÌ£¤¬¤¢¤ë¥Ó¥Ã¥È¿ô¤è¤ê¿¤¯¤Î¥Ó¥Ã¥È¿ô¤¬»ØÄꤵ¤ì¤¿¡£ +で実際に意味があるビット数より多くのビット数が指定された。 .\"O Or, .\"O .I nodemask .\"O specifies one or more node IDs that are .\"O greater than the maximum supported node ID. .I nodemask -¤Ë¡¢¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ëºÇÂç¥Î¡¼¥É ID ¤è¤êÂ礭¤¤¥Î¡¼¥É¤¬»ØÄꤵ¤ì¤¿¡£ +に、サポートされている最大ノード ID より大きいノードが指定された。 .\"O Or, none of the node IDs specified by .\"O .I nodemask .\"O are on-line and allowed by the process's current cpuset context, .\"O or none of the specified nodes contain memory. .I nodemask -¤Ë¡¢¥ª¥ó¥é¥¤¥ó¤Ç¡¢¤«¤Ä¤½¤Î¥×¥í¥»¥¹¤Î¸½ºß¤Î CPU ½¸¹ç¥³¥ó¥Æ¥­¥¹¥È¤Ç -µö²Ä¤µ¤ì¤Æ¤¤¤ë¥Î¡¼¥É¤¬°ì¤Ä¤â´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ -¥á¥â¥ê¤ò´Þ¤à¥Î¡¼¥É¤¬°ì¤Ä¤â»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +に、オンラインで、かつそのプロセスの現在の CPU 集合コンテキストで +許可されているノードが一つも含まれていないか、 +メモリを含むノードが一つも指定されていない。 .\"O Or, the .\"O .I mode .\"O argument specified both @@ -483,45 +483,45 @@ NULL .\"O and .\"O .BR MPOL_F_RELATIVE_NODES . .I mode -°ú¤­¿ô¤Ë +引き数に .B MPOL_F_STATIC_NODES -¤È +と .B MPOL_F_RELATIVE_NODES -¤ÎξÊý¤¬»ØÄꤵ¤ì¤¿¡£ +の両方が指定された。 .TP .B ENOMEM .\"O Insufficient kernel memory was available. -ÍøÍѲÄǽ¤Ê¥«¡¼¥Í¥ë¥á¥â¥ê¤¬½½Ê¬¤Ç¤Ê¤«¤Ã¤¿¡£ +利用可能なカーネルメモリが十分でなかった。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The .\"O .BR set_mempolicy (), .\"O system call was added to the Linux kernel in version 2.6.7. .BR set_mempolicy () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥Ð¡¼¥¸¥ç¥ó 2.6.7 ¤Ç Linux ¥«¡¼¥Í¥ë¤ËÄɲ䵤줿¡£ +システムコールはバージョン 2.6.7 で Linux カーネルに追加された。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O This system call is Linux-specific. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ +このシステムコールは Linux 独自である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Process policy is not remembered if the page is swapped out. -¥Ú¡¼¥¸¤¬¥¹¥ï¥Ã¥×¡¦¥¢¥¦¥È¤µ¤ì¤ë¾ì¹ç¤Ë¤Ï¡¢ -¥×¥í¥»¥¹¥Ý¥ê¥·¡¼¤ÎÀßÄê¤Ï¿ä¾©¤µ¤ì¤Ê¤¤¡£ +ページがスワップ・アウトされる場合には、 +プロセスポリシーの設定は推奨されない。 .\"O When such a page is paged back in, it will use the policy of .\"O the process or memory range that is in effect at the time the .\"O page is allocated. -¥¹¥ï¥Ã¥×¡¦¥¢¥¦¥È¤µ¤ì¤¿¥Ú¡¼¥¸¤¬¥Ú¡¼¥¸¡¦¥¤¥ó¤¹¤ëºÝ¤Ë¤â¡¢ -¥Ú¡¼¥¸³ä¤êÅö¤Æ»þ¤ËŬÍѤµ¤ì¤ë¥×¥í¥»¥¹¥Ý¥ê¥·¡¼¤ä¥á¥â¥êÎΰè¥Ý¥ê¥·¡¼¤¬ -»ÈÍѤµ¤ì¤ë¡£ +スワップ・アウトされたページがページ・インする際にも、 +ページ割り当て時に適用されるプロセスポリシーやメモリ領域ポリシーが +使用される。 .\"O For information on library support, see .\"O .BR numa (7). -¥é¥¤¥Ö¥é¥ê¤Ë¤è¤ë¥µ¥Ý¡¼¥È¤Ë¤Ä¤¤¤Æ¤Ï +ライブラリによるサポートについては .BR numa (7) -¤ò»²¾È¡£ +を参照。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR get_mempolicy (2), .BR getcpu (2), .BR mbind (2), diff --git a/draft/man2/set_thread_area.2 b/draft/man2/set_thread_area.2 index 9fc24d61..2f29a7fb 100644 --- a/draft/man2/set_thread_area.2 +++ b/draft/man2/set_thread_area.2 @@ -12,17 +12,17 @@ .TH SET_THREAD_AREA 2 2008-11-27 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O set_thread_area \- Set a Thread Local Storage (TLS) area -.SH ̾Á° -set_thread_area \- ¥¹¥ì¥Ã¥É¶É½êµ­²± (TLS) Îΰè¤òÀßÄꤹ¤ë +.SH 名前 +set_thread_area \- スレッド局所記憶 (TLS) 領域を設定する .\"O .SH "SYNOPSIS" -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include .sp .BI "int set_thread_area(struct user_desc *" u_info ); .\"O .SH "DESCRIPTION" -.SH ÀâÌÀ +.SH 説明 .PP .\"O .BR set_thread_area () .\"O sets an entry in the current thread's Thread Local Storage (TLS) array. @@ -37,16 +37,16 @@ set_thread_area \- .\"O .I u_info .\"O into the thread's TLS array. .BR set_thread_area () -¤Ï¡¢¥«¥ì¥ó¥È¡¦¥¹¥ì¥Ã¥É¤Î¥¹¥ì¥Ã¥É¶É½êµ­²± (Thread Local Storage; TLS) -ÇÛÎó¤ÎÃæ¤Î¥¨¥ó¥È¥ê¤òÀßÄꤹ¤ë¡£ +は、カレント・スレッドのスレッド局所記憶 (Thread Local Storage; TLS) +配列の中のエントリを設定する。 .BR set_thread_area () -¤Ë¤è¤êÀßÄꤵ¤ì¤ë TLS ÇÛÎó¤Î¥¨¥ó¥È¥ê¤Ï¡¢¥æ¡¼¥¶¤«¤é°ú¤­¿ô¤È¤·¤ÆÅϤµ¤ì¤ë +により設定される TLS 配列のエントリは、ユーザから引き数として渡される .I u_info\->entry_number -¤ÎÃͤËÂбþ¤·¤Æ¤¤¤ë¡£Ãͤ¬ÈÏ°ÏÆâ¤Ë¤¢¤ë¾ì¹ç¡¢ +の値に対応している。値が範囲内にある場合、 .BR set_thread_area () -¤Ï +は .I u_info -¤Ç»Ø¤µ¤ì¤¿ TLS ¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¹¥ì¥Ã¥É¤Î TLS ÇÛÎó¤Ë¥³¥Ô¡¼¤¹¤ë¡£ +で指された TLS ディスクリプタをスレッドの TLS 配列にコピーする。 .PP .\"O When .\"O .BR set_thread_area () @@ -59,62 +59,62 @@ set_thread_area \- .\"O .I u_info\->entry_number .\"O is set upon return to show which entry was changed. .I entry_number -¤È¤·¤Æ \-1 ¤¬ÅϤµ¤ì¤¿¾ì¹ç¡¢ +として \-1 が渡された場合、 .BR set_thread_area () -¤Ï̤»ÈÍÑ (free) ¤Î TLS ¥¨¥ó¥È¥ê¤ò»ÈÍѤ¹¤ë¡£ -̤»ÈÍѤΠTLS ¥¨¥ó¥È¥ê¤¬¤¢¤Ã¤¿¾ì¹ç¡¢¤É¤Î¥¨¥ó¥È¥ê¤¬Êѹ¹¤µ¤ì¤¿¤«¤¬Ê¬¤«¤ë -¤è¤¦¤Ë½ªÎ»»þ¤Ë +は未使用 (free) の TLS エントリを使用する。 +未使用の TLS エントリがあった場合、どのエントリが変更されたかが分かる +ように終了時に .I u_info\->entry_number -¤ÎÃͤ¬Êѹ¹¤µ¤ì¤ë¡£ +の値が変更される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR set_thread_area () .\"O returns 0 on success, and \-1 on failure, with .\"O .I errno .\"O set appropriately. .BR set_thread_area () -¤ÏÀ®¸ù¤·¤¿¾ì¹ç 0 ¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +は成功した場合 0 を返す。失敗した場合は \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH "ERRORS" -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O \fIu_info\->entry_number\fP is out of bounds. .I u_info\->entry_number -¤¬Èϰϳ°¤Ç¤¢¤ë¡£ +が範囲外である。 .TP .B EFAULT .\"O \fIu_info\fP is an invalid pointer. .I u_info -¤¬ÉÔÀµ¤Ê¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +が不正なポインタである。 .TP .B ESRCH .\"O A free TLS entry could not be located. -̤»ÈÍѤΠTLS ¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£ +未使用の TLS エントリが見つからなかった。 .\"O .SH "VERSIONS" -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O A version of .\"O .BR set_thread_area () .\"O first appeared in Linux 2.5.29. .BR set_thread_area () -¤Ï Linux 2.5.29 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +は Linux 2.5.29 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR set_thread_area () .\"O is Linux-specific and should not be used in programs that are intended .\"O to be portable. .BR set_thread_area () -¤Ï Linux Æȼ«¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +は Linux 独自であり、移植を意図したプログラムでは使用すべきではない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Glibc does not provide a wrapper for this system call; .\"O call it using .\"O .BR syscall (2). -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ -¤³¤Î´Ø¿ô¤ò»ÈÍѤ¹¤ë¤Ë¤Ï +glibc はこのシステムコールに対するラッパー関数を提供していない。 +この関数を使用するには .BR syscall (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +を使用すること。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR get_thread_area (2) diff --git a/draft/man2/set_tid_address.2 b/draft/man2/set_tid_address.2 index e2a28ae6..db1b40ca 100644 --- a/draft/man2/set_tid_address.2 +++ b/draft/man2/set_tid_address.2 @@ -27,29 +27,29 @@ .\" .TH SET_TID_ADDRESS 2 2004-09-10 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O set_tid_address \- set pointer to thread ID -set_tid_address \- ¥¹¥ì¥Ã¥É ID ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÀßÄꤹ¤ë +set_tid_address \- スレッド ID へのポインタを設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "long set_tid_address(int *" tidptr ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The kernel keeps for each process two values called .\"O .I set_child_tid .\"O and .\"O .I clear_child_tid .\"O that are NULL by default. -¥«¡¼¥Í¥ë¤Ï³Æ¥×¥í¥»¥¹¤Ë¤Ä¤¤¤Æ +カーネルは各プロセスについて .I set_child_tid -¤È +と .I clear_child_tid -¤È¤¤¤¦ 2 ¤Ä¤ÎÃͤòÊÝ»ý¤¹¤ë¡£ -¤³¤ì¤é¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï NULL ¤Ç¤¢¤ë¡£ +という 2 つの値を保持する。 +これらはデフォルトでは NULL である。 .SS set_child_tid .\"O If a process is started using .\"O .BR clone (2) @@ -60,21 +60,21 @@ set_tid_address \- .\"O is set to .\"O .IR child_tidptr , .\"O the fifth argument of that system call. -¥×¥í¥»¥¹¤¬ +プロセスが .B CLONE_CHILD_SETTID -¥Õ¥é¥°¤ò»ØÄꤷ¤¿ +フラグを指定した .BR clone (2) -¤Ë¤è¤Ã¤Æ³«»Ï¤µ¤ì¤¿¾ì¹ç¡¢ +によって開始された場合、 .I set_child_tid -¤Ï +は .I child_tidptr -¤ËÀßÄꤵ¤ì¤ë¡£ -¤³¤ì¤Ï +に設定される。 +これは .BR clone (2) -¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î 5 ÈÖÌܤΰú¤­¿ô¤Ç¤¢¤ë¡£ +のシステムコールの 5 番目の引き数である。 .\"Osato: -.\"Osato: __syscall5 ¤Ç __NR_clone ¤ò¸Æ¤Ó½Ð¤¹¤È¤­¤Î -.\"Osato: 5 ÈÖÌܤΰú¤­¿ô¤È¤¤¤¦¤³¤È¤À¤í¤¦¤«¡£ +.\"Osato: __syscall5 で __NR_clone を呼び出すときの +.\"Osato: 5 番目の引き数ということだろうか。 .\"Osato: .LP .\"O When @@ -82,8 +82,8 @@ set_tid_address \- .\"O is set, the very first thing the new process does .\"O is writing its PID at this address. .I set_child_tid -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢°ìÈֺǽé¤Ë¿·¤·¤¤¥×¥í¥»¥¹¤¬¹Ô¤¦¤³¤È¤Ï¡¢ -¤³¤Î¥¢¥É¥ì¥¹¤Ë¼«¿È¤Î PID ¤ò½ñ¤­¹þ¤à¤³¤È¤Ç¤¢¤ë¡£ +が設定された場合、一番最初に新しいプロセスが行うことは、 +このアドレスに自身の PID を書き込むことである。 .SS clear_child_tid .\"O If a process is started using .\"O .BR clone (2) @@ -94,18 +94,18 @@ set_tid_address \- .\"O is set to .\"O .IR child_tidptr , .\"O the fifth argument of that system call. -¥×¥í¥»¥¹¤¬ +プロセスが .B CLONE_CHILD_CLEARTID -¥Õ¥é¥°¤ò»ØÄꤷ¤¿ +フラグを指定した .BR clone (2) -¤Ë¤è¤Ã¤Æ³«»Ï¤µ¤ì¤¿¾ì¹ç¡¢ +によって開始された場合、 .I clear_child_tid -¤Ï +は .I child_tidptr -¤ËÀßÄꤵ¤ì¤ë¡£ -¤³¤ì¤Ï +に設定される。 +これは .BR clone (2) -¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î 5 ÈÖÌܤΰú¤­¿ô¤Ç¤¢¤ë¡£ +のシステムコールの 5 番目の引き数である。 .LP .\"O The system call .\"O .BR set_tid_address () @@ -113,13 +113,13 @@ set_tid_address \- .\"O .I clear_child_tid .\"O value for the calling process to .\"O .IR tidptr . -¥·¥¹¥Æ¥à¥³¡¼¥ë +システムコール .BR set_tid_address () -¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î +は呼び出し元プロセスの .I clear_child_tid -¤ÎÃͤò +の値を .I tidptr -¤ËÀßÄꤹ¤ë¡£ +に設定する。 .LP .\"O When .\"O .I clear_child_tid @@ -131,36 +131,36 @@ set_tid_address \- .\"O (That is, wake a single process waiting on this futex.) .\"O Errors are ignored. .I clear_child_tid -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¤­¤Ë¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤È¡¢ -¤½¤Î¥×¥í¥»¥¹¤Ï¾¤Î¥×¥í¥»¥¹¤Þ¤¿¤Ï¥¹¥ì¥Ã¥É¤È¥á¥â¥ê¤ò¶¦Í­¤·¤Æ¤¤¤ë¤Î¤Ç¡¢ -¤³¤Î¥¢¥É¥ì¥¹¤Ë 0 ¤¬½ñ¤­¹þ¤Þ¤ì¡¢ +が設定されているときにプロセスが終了すると、 +そのプロセスは他のプロセスまたはスレッドとメモリを共有しているので、 +このアドレスに 0 が書き込まれ、 .I futex(child_tidptr, FUTEX_WAKE, 1, NULL, NULL, 0); -¤Î¸Æ¤Ó½Ð¤·¤¬¼Â¹Ô¤µ¤ì¤ë -(¤Ä¤Þ¤ê¡¢¤³¤Î futex ¤ÇÂԤäƤ¤¤ë 1 ¤Ä¤Î¥×¥í¥»¥¹¤òµ¯¤³¤¹ (wake))¡£ -¥¨¥é¡¼¤Ï̵»ë¤µ¤ì¤ë¡£ +の呼び出しが実行される +(つまり、この futex で待っている 1 つのプロセスを起こす (wake))。 +エラーは無視される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR set_tid_address () .\"O always returns the PID of the calling process. .BR set_tid_address () -¤Ï¾ï¤Ë¸½ºß¤Î¥×¥í¥»¥¹¤Î PID ¤òÊÖ¤¹¡£ +は常に現在のプロセスの PID を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O .BR set_tid_address () .\"O always succeeds. .BR set_tid_address () -¤Ï¾ï¤ËÀ®¸ù¤¹¤ë¡£ +は常に成功する。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O This call is present since Linux 2.5.48. .\"O Details as given here are valid since Linux 2.5.49. -¤³¤Î¸Æ¤Ó½Ð¤·¤Ï Linux 2.5.48 °Ê¹ß¤Ç¸ºß¤¹¤ë¡£ -¤³¤³¤Ç½ñ¤«¤ì¤¿¾ÜºÙ¤Ï Linux 2.5.49 °Ê¹ß¤ÇÍ­¸ú¤Ç¤¢¤ë¡£ +この呼び出しは Linux 2.5.48 以降で存在する。 +ここで書かれた詳細は Linux 2.5.49 以降で有効である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This system call is Linux-specific. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ +このシステムコールは Linux 独自である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR clone (2), .BR futex (2) diff --git a/draft/man2/seteuid.2 b/draft/man2/seteuid.2 index 31c7c337..091ba7d8 100644 --- a/draft/man2/seteuid.2 +++ b/draft/man2/seteuid.2 @@ -30,18 +30,18 @@ .\" Updated & Modified 2005-01-04, Yuichi SATO .\" Updated 2010-04-23, Akihiro MOTOKI , LDP v3.24 .\" -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ ID -.\"WORD: real user ID ¼Â¥æ¡¼¥¶¡¼ ID -.\"WORD: saved user ID Êݸ¥æ¡¼¥¶¡¼ ID +.\"WORD: effective user ID 実効ユーザー ID +.\"WORD: real user ID 実ユーザー ID +.\"WORD: saved user ID 保存ユーザー ID .\"WORD: .\" .TH SETEUID 2 2009-10-17 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O seteuid, setegid \- set effective user or group ID -seteuid, setegid \- ¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤ä ¼Â¸ú¥°¥ë¡¼¥× ID ¤òÀßÄꤹ¤ë +seteuid, setegid \- 実効ユーザー ID や 実効グループ ID を設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include @@ -53,9 +53,9 @@ seteuid, setegid \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -66,39 +66,39 @@ _BSD_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR seteuid () .\"O sets the effective user ID of the calling process. .\"O Unprivileged user processes may only set the effective user ID to the .\"O real user ID, the effective user ID or the saved set-user-ID. .BR seteuid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤òÀßÄꤹ¤ë¡£ -ÈóÆø¢¥æ¡¼¥¶¡¼¤Î¥×¥í¥»¥¹¤Î¾ì¹ç¡¢¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤ËÀßÄê¤Ç¤­¤ë¤Î¤Ï¡¢ -¼Â¥æ¡¼¥¶¡¼ ID¡¦¼Â¸ú¥æ¡¼¥¶¡¼ ID¡¦Êݸ set-user-ID ¤Î¤¤¤º¤ì¤«¤À¤±¤Ç¤¢¤ë¡£ +は呼び出し元のプロセスの実効ユーザー ID を設定する。 +非特権ユーザーのプロセスの場合、実効ユーザー ID に設定できるのは、 +実ユーザー ID・実効ユーザー ID・保存 set-user-ID のいずれかだけである。 .\"O Precisely the same holds for .\"O .BR setegid () .\"O with "group" instead of "user". .BR setegid () -¤Ï¡Ö¥æ¡¼¥¶¡¼¡×¤Ç¤Ï¤Ê¤¯¡Ö¥°¥ë¡¼¥×¡×¤ËÂФ·¤ÆÁ´¤¯Æ±¤¸¤³¤È¤ò¹Ô¤¦¡£ +は「ユーザー」ではなく「グループ」に対して全く同じことを行う。 .\" When .\" .I euid .\" equals \-1, nothing is changed. .\" (This is an artifact of the implementation in glibc of seteuid() .\" using setresuid(2).) .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合は 0 が返される。 +エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\" .TP .\" .B EINVAL .TP @@ -117,35 +117,35 @@ _BSD_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O .IR egid ) .\"O is not the real user (group) ID, the effective user (group) ID, .\"O or the saved set-user-ID (saved set-group-ID). -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ËÆø¢¤¬¤Ê¤¯¡¢ +呼び出し元のプロセスに特権がなく、 .I euid .RI ( egid ) -¤¬¼Â¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×) ID¡¢¤Þ¤¿¤Ï¼Â¸ú¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×) ID¡¢ -Êݸ set-user-ID (Êݸ set-group-ID) ¤Î¤¤¤º¤ì¤Ç¤â¤Ç¤Ï¤Ê¤¤ -(Linux ¤Ë¤ª¤¤¤Æ¤Ï¡¢ +が実ユーザー (グループ) ID、または実効ユーザー (グループ) ID、 +保存 set-user-ID (保存 set-group-ID) のいずれでもではない +(Linux においては、 .BR seteuid () -¤Ç¤Ï +では .B CAP_SETUID -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤¬¡¢ +ケーパビリティ (capability) が、 .BR setegid () -¤Ç¤Ï +では .B CAP_SETGID -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¤Ê¤¤¾ì¹ç¤Ë¡¢Æø¢¤¬¤Ê¤¤¤ÈȽÃǤµ¤ì¤ë)¡£ +ケーパビリティがない場合に、特権がないと判断される)。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.3BSD, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Setting the effective user (group) ID to the .\"O saved set-user-ID (set-group-ID) is .\"O possible since Linux 1.1.37 (1.1.38). .\"O On an arbitrary system one should check .\"O .BR _POSIX_SAVED_IDS . -¼Â¸ú¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×) ID ¤òÊݸ set-user-ID (Êݸ set-group-ID) ¤Ë -ÀßÄê¤Ç¤­¤ë¤Î¤Ï¡¢Linux 1.1.37 (1.1.38) °Ê¹ß¤Ç¤¢¤ë¡£ -Á´¤Æ¤Î¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ +実効ユーザー (グループ) ID を保存 set-user-ID (保存 set-group-ID) に +設定できるのは、Linux 1.1.37 (1.1.38) 以降である。 +全てのシステムにおいて .B _POSIX_SAVED_IDS -¤ò¥Á¥§¥Ã¥¯¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +をチェックすべきである。 .LP .\"O Under libc4, libc5 and glibc 2.0 .\"O .BI seteuid( euid ) @@ -157,17 +157,17 @@ _BSD_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O and hence does not change the saved set-user-ID. .\"O Similar remarks hold for .\"O .BR setegid (). -libc4, libc5, glibc 2.0 ¤Ç¤Ï¡¢ +libc4, libc5, glibc 2.0 では、 .BI seteuid( euid ) -¤Ï +は .BI setreuid(\-1, " euid" ) -¤ÈÅù²Á¤Ç¤¢¤ê¡¢Êݸ set-user-ID ¤òÊѹ¹¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -glibc 2.1 ¤Ç¤Ï¡¢ +と等価であり、保存 set-user-ID を変更するかもしれない。 +glibc 2.1 では、 .BI setresuid(\-1, " euid" ", \-1)" -¤ÈÅù²Á¤Ç¤¢¤ê¡¢Êݸ set-user-ID Êѹ¹¤·¤Ê¤¤¡£ -ƱÍͤΤ³¤È¤¬ +と等価であり、保存 set-user-ID 変更しない。 +同様のことが .BR setegid () -¤Ë¤â¸À¤¨¤ë¡£ +にも言える。 .\"O According to POSIX.1, .\"O .BR seteuid () @@ -177,20 +177,20 @@ glibc 2.1 .\"O .RI ( egid ) .\"O to be the same value as the current effective user (group) ID, .\"O and some implementations do not permit this. -POSIX.1 ¤Ç¤Ï¡¢ +POSIX.1 では、 .BR seteuid () .RB ( setegid ()) -¤Ç¡¢ +で、 .I euid .RI ( egid ) -¤È¤·¤Æ¸½ºß¤Î¼Â¸ú¥æ¡¼¥¶ (¥°¥ë¡¼¥×) ID ¤ÈƱ¤¸Ãͤò»ØÄê²Äǽ¤Ç¤¢¤ë -ɬÍפϤʤ¤¤È¤µ¤ì¤Æ¤ª¤ê¡¢¤¤¤¯¤Ä¤«¤Î¼ÂÁõ¤Ç¤Ï +として現在の実効ユーザ (グループ) ID と同じ値を指定可能である +必要はないとされており、いくつかの実装では .I euid .RI ( egid ) -¤È¤·¤Æ¸½ºß¤Î¼Â¸ú¥æ¡¼¥¶ (¥°¥ë¡¼¥×) ID ¤ÈƱ¤¸Ãͤò -»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +として現在の実効ユーザ (グループ) ID と同じ値を +指定することができない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR geteuid (2), .BR setresuid (2), .BR setreuid (2), diff --git a/draft/man2/setfsgid.2 b/draft/man2/setfsgid.2 index 9de9a55c..6714149c 100644 --- a/draft/man2/setfsgid.2 +++ b/draft/man2/setfsgid.2 @@ -36,27 +36,27 @@ .\" Modified 2005-02-24, Akihiro MOTOKI .\" .\"WORD: identity ID -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: file system ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à -.\"WORD: effective group ID ¼Â¸ú¥°¥ë¡¼¥×ID -.\"WORD: real group ID ¼Â¥°¥ë¡¼¥×ID -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: security hole ¥»¥­¥å¥ê¥Æ¥£¡¦¥Û¡¼¥ë -.\"WORD: saved set-group-ID Êݸ¥»¥Ã¥È¥°¥ë¡¼¥×ID +.\"WORD: kernel カーネル +.\"WORD: file system ファイル・システム +.\"WORD: effective group ID 実効グループID +.\"WORD: real group ID 実グループID +.\"WORD: signal シグナル +.\"WORD: security hole セキュリティ・ホール +.\"WORD: saved set-group-ID 保存セットグループID .\" .TH SETFSGID 2 2008-12-05 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O setfsgid \- set group identity used for file system checks -.SH ̾Á° -setfsgid \- ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î¥Á¥§¥Ã¥¯¤ËÍѤ¤¤é¤ì¤ë¥°¥ë¡¼¥× ID ¤òÀßÄꤹ¤ë +.SH 名前 +setfsgid \- ファイル・システムのチェックに用いられるグループ ID を設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include -/* glibc ¤Ç¤Ï */ +/* glibc では */ .sp .BI "int setfsgid(uid_t " fsgid ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The system call .\"O .BR setfsgid () .\"O sets the group ID that the Linux kernel uses to check for all accesses @@ -68,15 +68,15 @@ setfsgid \- .\"O effective group ID is changed, .\"O .I fsgid .\"O will also be changed to the new value of the effective group ID. -¥·¥¹¥Æ¥à¥³¡¼¥ë +システムコール .BR setfsgid () -¤Ï Linux ¥«¡¼¥Í¥ë¤¬¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ËÂФ¹¤ë -Á´¤Æ¤Î¥¢¥¯¥»¥¹¤Î¥Á¥§¥Ã¥¯¤Ë»ÈÍѤ¹¤ë¥°¥ë¡¼¥× ID¤òÀßÄꤹ¤ë¡£Ä̾ï¤Ï +は Linux カーネルがファイル・システムに対する +全てのアクセスのチェックに使用するグループ IDを設定する。通常は .I fsgid -¤ÎÃͤϼ¸ú (effective) ¥°¥ë¡¼¥×ID ¤ÈƱ¤¸¤Ë¤Ê¤ë¡£¼ÂºÝ¡¢ -¼Â¸ú¥°¥ë¡¼¥× ID ¤¬Êѹ¹¤µ¤ì¤ëÅÙ¤Ë +の値は実効 (effective) グループID と同じになる。実際、 +実効グループ ID が変更される度に .I fsgid -¤â¤Þ¤¿¿·¤·¤¤¼Â¸ú¥°¥ë¡¼¥×ID ¤ÎÃͤËÊѹ¹¤µ¤ì¤ë¡£ +もまた新しい実効グループID の値に変更される。 .\"O Explicit calls to .\"O .BR setfsuid (2) @@ -88,17 +88,17 @@ setfsgid \- .\"O A change in the normal user IDs for a program such as the NFS server .\"O is a security hole that can expose it to unwanted signals. .\"O (But see below.) -Ä̾ +通常、 .BR setfsuid () -¤ä +や .BR setfsgid () -¤¬ÌÀ¼¨Åª¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë¤Î¤Ï¡¢Linux NFS ¥µ¡¼¥Ð¡¼ ¤Î¤è¤¦¤Ë¡¢ -¥Õ¥¡¥¤¥ë¡¦¥¢¥¯¥»¥¹¤ËÍѤ¤¤ë¥æ¡¼¥¶ID / ¥°¥ë¡¼¥×ID ¤òÊѹ¹¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤¬¡¢ -Âбþ¤¹¤ë¼Â(real)/¼Â¸ú(effective) ¥æ¡¼¥¶ID / ¥°¥ë¡¼¥×ID ¤ÏÊѹ¹¤·¤¿¤¯¤Ê¤¤¤è¤¦¤Ê -¥×¥í¥°¥é¥à¤Ë¸Â¤é¤ì¤ë¡£ -NFS ¥µ¡¼¥Ð¡¼¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ç¡¢Ä̾ï¤Î¥æ¡¼¥¶ID ¤òÊѹ¹¤¹¤ë¤È¡¢ -¥×¥í¥»¥¹¤ò˾¤Þ¤Ê¤¤¥·¥°¥Ê¥ë¤Ë¤µ¤é¤¹²ÄǽÀ­¤¬¤¢¤ê¡¢ -¥»¥­¥å¥ê¥Æ¥£¡¦¥Û¡¼¥ë¤Ë¤Ê¤ë¡£(²¼µ­»²¾È) +が明示的に呼び出されるのは、Linux NFS サーバー のように、 +ファイル・アクセスに用いるユーザID / グループID を変更しなければならないが、 +対応する実(real)/実効(effective) ユーザID / グループID は変更したくないような +プログラムに限られる。 +NFS サーバーのようなプログラムで、通常のユーザID を変更すると、 +プロセスを望まないシグナルにさらす可能性があり、 +セキュリティ・ホールになる。(下記参照) .\"O .BR setfsgid () .\"O will only succeed if the caller is the superuser or if @@ -107,58 +107,58 @@ NFS .\"O saved set-group-ID, or the current value of .\"O .IR fsgid . .BR setfsgid () -¤Ï¡¢¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¤«¡¢ +は、スーパー・ユーザによって呼び出された場合か、 .I fsgid -¤¬¼Â¥°¥ë¡¼¥×ID¡¢¼Â¸ú¥°¥ë¡¼¥×ID¡¢ -Êݸ¥»¥Ã¥È¥°¥ë¡¼¥×ID (saved set-group-ID)¡¢¸½ºß¤Î +が実グループID、実効グループID、 +保存セットグループID (saved set-group-ID)、現在の .I fsgid -¤ÎÃͤΤ¤¤º¤ì¤«¤Ë°ìÃפ¹¤ë¾ì¹ç¤Ë¤Î¤ßÀ®¸ù¤¹¤ë¡£ +の値のいずれかに一致する場合にのみ成功する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, the previous value of .\"O .I fsgid .\"O is returned. .\"O On error, the current value of .\"O .I fsgid .\"O is returned. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .I fsgid -¤Î°ÊÁ°¤ÎÃͤòÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï +の以前の値を返す。エラーの場合は .I fsgid -¤Î¸½ºß¤ÎÃͤòÊÖ¤¹¡£ +の現在の値を返す。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O This system call is present in Linux since version 1.2. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥Ð¡¼¥¸¥ç¥ó 1.2 °Ê¹ß¤Î Linux ¤Ë¸ºß¤¹¤ë¡£ +このシステムコールはバージョン 1.2 以降の Linux に存在する。 .\" This system call is present since Linux 1.1.44 .\" and in libc since libc 4.7.6. .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR setfsgid () .\"O is Linux-specific and should not be used in programs intended .\"O to be portable. .BR setfsgid () -¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤òÁÛÄꤷ¤¿¥×¥í¥°¥é¥à¤Ç»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ +は Linux 特有であり、移植を想定したプログラムで使用してはいけない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O When glibc determines that the argument is not a valid group ID, .\"O it will return \-1 and set \fIerrno\fP to .\"O .B EINVAL .\"O without attempting .\"O the system call. -glibc ¤¬°ú¤­¿ô¤¬¥°¥ë¡¼¥×ID ¤È¤·¤ÆÉÔÀµ¤À¤ÈȽÃǤ·¤¿¾ì¹ç¤Ï¡¢ -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¹Ô¤ï¤º \fIerrno\fP ¤Ë +glibc が引き数がグループID として不正だと判断した場合は、 +システム・コールを行わず \fIerrno\fP に .B EINVAL -¤òÀßÄꤷ¤Æ \-1 ¤¬ÊÖ¤µ¤ì¤ë¡£ +を設定して \-1 が返される。 .LP .\"O Note that at the time this system call was introduced, a process .\"O could send a signal to a process with the same effective user ID. .\"O Today signal permission handling is slightly different. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Æ³Æþ¤µ¤ì¤¿Åö»þ¡¢¥×¥í¥»¥¹¤Ï -Ʊ¤¸¼Â¸ú¥æ¡¼¥¶ID¤Î¥×¥í¥»¥¹¤Ø¥·¥°¥Ê¥ë¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤¿¡£ -º£Æü¤Ç¤Ï¡¢¥·¥°¥Ê¥ëÁ÷¿®¸¢¸Â¤Î°·¤¤¤Ï¤«¤Ê¤ê°ã¤¦¤â¤Î¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +このシステムコールが導入された当時、プロセスは +同じ実効ユーザIDのプロセスへシグナルを送ることができた。 +今日では、シグナル送信権限の扱いはかなり違うものになっている。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O No error messages of any kind are returned to the caller. .\"O At the very .\"O least, @@ -166,14 +166,14 @@ glibc .\"O should be returned when the call fails (because the caller lacks the .\"O .B CAP_SETGID .\"O capability). -¤¤¤«¤Ê¤ë¼ïÎà¤Î¥¨¥é¡¼¡¦¥á¥Ã¥»¡¼¥¸¤âÊÖ¤µ¤Ê¤¤¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï (¸Æ¤Ó½Ð¤·¸µ¤Ë¤Ï +いかなる種類のエラー・メッセージも返さない。 +失敗した場合は (呼び出し元には .B CAP_SETGID -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¤Ê¤«¤Ã¤¿¤Î¤À¤«¤é) ºÇÄã¤Ç¤â +ケーパビリティがなかったのだから) 最低でも .B EPERM -¤¯¤é¤¤¤ÏÊÖ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +くらいは返すべきである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR kill (2), .BR setfsuid (2), .BR capabilities (7), diff --git a/draft/man2/setfsuid.2 b/draft/man2/setfsuid.2 index 5e3bcd64..4a331752 100644 --- a/draft/man2/setfsuid.2 +++ b/draft/man2/setfsuid.2 @@ -36,27 +36,27 @@ .\" Modified 2005-02-24, Akihiro MOTOKI .\" .\"WORD: identity ID -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: file system ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶ID -.\"WORD: real user ID ¼Â¥æ¡¼¥¶ID -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: security hole ¥»¥­¥å¥ê¥Æ¥£¡¦¥Û¡¼¥ë -.\"WORD: saved set-user-ID Êݸ¥»¥Ã¥È¥æ¡¼¥¶ID +.\"WORD: kernel カーネル +.\"WORD: file system ファイル・システム +.\"WORD: effective user ID 実効ユーザID +.\"WORD: real user ID 実ユーザID +.\"WORD: signal シグナル +.\"WORD: security hole セキュリティ・ホール +.\"WORD: saved set-user-ID 保存セットユーザID .\" .TH SETFSUID 2 2008-12-05 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O setfsuid \- set user identity used for file system checks -.SH ̾Á° -setfsuid \- ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î¥Á¥§¥Ã¥¯¤ËÍѤ¤¤é¤ì¤ë¥æ¡¼¥¶ ID ¤òÀßÄꤹ¤ë +.SH 名前 +setfsuid \- ファイル・システムのチェックに用いられるユーザ ID を設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include -/* glibc ¤Ç¤Ï */ +/* glibc では */ .sp .BI "int setfsuid(uid_t " fsuid ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The system call .\"O .BR setfsuid () .\"O sets the user ID that the Linux kernel uses to check for all accesses @@ -69,13 +69,13 @@ setfsuid \- .\"O .I fsuid .\"O will also be changed to the new value of the effective user ID. .BR setfsuid () -¤Ï Linux ¥«¡¼¥Í¥ë¤¬¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ËÂФ¹¤ë -Á´¤Æ¤Î¥¢¥¯¥»¥¹¤Î¥Á¥§¥Ã¥¯¤Ë»ÈÍѤ¹¤ë¥æ¡¼¥¶ID ¤òÀßÄꤹ¤ë¡£Ä̾ï¤Ï +は Linux カーネルがファイル・システムに対する +全てのアクセスのチェックに使用するユーザID を設定する。通常は .I fsuid -¤ÎÃͤϼ¸ú (effective) ¥æ¡¼¥¶ID ¤ÈƱ¤¸¤Ë¤Ê¤ë¡£¼ÂºÝ¡¢ -¼Â¸ú¥æ¡¼¥¶ID ¤¬Êѹ¹¤µ¤ì¤ëÅÙ¤Ë +の値は実効 (effective) ユーザID と同じになる。実際、 +実効ユーザID が変更される度に .I fsuid -¤â¤Þ¤¿¿·¤·¤¤¼Â¸ú¥æ¡¼¥¶ID ¤ÎÃͤËÊѹ¹¤µ¤ì¤ë¡£ +もまた新しい実効ユーザID の値に変更される。 .\"O Explicit calls to .\"O .BR setfsuid () @@ -87,17 +87,17 @@ setfsuid \- .\"O A change in the normal user IDs for a program such as the NFS server .\"O is a security hole that can expose it to unwanted signals. .\"O (But see below.) -Ä̾ +通常、 .BR setfsuid () -¤ä +や .BR setfsgid () -¤¬ÌÀ¼¨Åª¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë¤Î¤Ï¡¢Linux NFS ¥µ¡¼¥Ð¡¼ ¤Î¤è¤¦¤Ë¡¢ -¥Õ¥¡¥¤¥ë¡¦¥¢¥¯¥»¥¹¤ËÍѤ¤¤ë¥æ¡¼¥¶ID / ¥°¥ë¡¼¥×ID ¤òÊѹ¹¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤¬¡¢ -Âбþ¤¹¤ë¼Â(real)/¼Â¸ú(effective) ¥æ¡¼¥¶ID / ¥°¥ë¡¼¥×ID ¤ÏÊѹ¹¤·¤¿¤¯¤Ê¤¤¤è¤¦¤Ê -¥×¥í¥°¥é¥à¤Ë¸Â¤é¤ì¤ë¡£ -NFS ¥µ¡¼¥Ð¡¼¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ç¡¢Ä̾ï¤Î¥æ¡¼¥¶ID ¤òÊѹ¹¤¹¤ë¤È¡¢ -¥×¥í¥»¥¹¤ò˾¤Þ¤Ê¤¤¥·¥°¥Ê¥ë¤Ë¤µ¤é¤¹²ÄǽÀ­¤¬¤¢¤ê¡¢ -¥»¥­¥å¥ê¥Æ¥£¡¦¥Û¡¼¥ë¤Ë¤Ê¤ë¡£(²¼µ­»²¾È) +が明示的に呼び出されるのは、Linux NFS サーバー のように、 +ファイル・アクセスに用いるユーザID / グループID を変更しなければならないが、 +対応する実(real)/実効(effective) ユーザID / グループID は変更したくないような +プログラムに限られる。 +NFS サーバーのようなプログラムで、通常のユーザID を変更すると、 +プロセスを望まないシグナルにさらす可能性があり、 +セキュリティ・ホールになる。(下記参照) .\"O .BR setfsuid () .\"O will only succeed if the caller is the superuser or if @@ -106,58 +106,58 @@ NFS .\"O the current value of .\"O .IR fsuid . .BR setfsuid () -¤Ï¡¢¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¤«¡¢ +は、スーパー・ユーザによって呼び出された場合か、 .I fsuid -¤¬¼Â¥æ¡¼¥¶ID¡¢¼Â¸ú¥æ¡¼¥¶ID¡¢ -Êݸ¥»¥Ã¥È¥æ¡¼¥¶ID (saved set-user-ID)¡¢¸½ºß¤Î +が実ユーザID、実効ユーザID、 +保存セットユーザID (saved set-user-ID)、現在の .I fsuid -¤ÎÃͤΤ¤¤º¤ì¤«¤Ë°ìÃפ¹¤ë¾ì¹ç¤Ë¤Î¤ßÀ®¸ù¤¹¤ë¡£ +の値のいずれかに一致する場合にのみ成功する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, the previous value of .\"O .I fsuid .\"O is returned. .\"O On error, the current value of .\"O .I fsuid .\"O is returned. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .I fsuid -¤Î°ÊÁ°¤ÎÃͤòÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï +の以前の値を返す。エラーの場合は .I fsuid -¤Î¸½ºß¤ÎÃͤòÊÖ¤¹¡£ +の現在の値を返す。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O This system call is present in Linux since version 1.2. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥Ð¡¼¥¸¥ç¥ó 1.2 °Ê¹ß¤Î Linux ¤Ë¸ºß¤¹¤ë¡£ +このシステムコールはバージョン 1.2 以降の Linux に存在する。 .\" This system call is present since Linux 1.1.44 .\" and in libc since libc 4.7.6. .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR setfsuid () .\"O is Linux-specific and should not be used in programs intended .\"O to be portable. .BR setfsuid () -¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤òÁÛÄꤷ¤¿¥×¥í¥°¥é¥à¤Ç»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ +は Linux 特有であり、移植を想定したプログラムで使用してはいけない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O When glibc determines that the argument is not a valid user ID, .\"O it will return \-1 and set \fIerrno\fP to .\"O .B EINVAL .\"O without attempting .\"O the system call. -glibc ¤¬°ú¤­¿ô¤¬¥æ¡¼¥¶ID ¤È¤·¤ÆÉÔÀµ¤À¤ÈȽÃǤ·¤¿¾ì¹ç¤Ï¡¢ -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¹Ô¤ï¤º \fIerrno\fP ¤Ë +glibc が引き数がユーザID として不正だと判断した場合は、 +システム・コールを行わず \fIerrno\fP に .B EINVAL -¤òÀßÄꤷ¤Æ \-1 ¤¬ÊÖ¤µ¤ì¤ë¡£ +を設定して \-1 が返される。 .LP .\"O Note that at the time this system call was introduced, a process .\"O could send a signal to a process with the same effective user ID. .\"O Today signal permission handling is slightly different. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Æ³Æþ¤µ¤ì¤¿Åö»þ¡¢¥×¥í¥»¥¹¤Ï -Ʊ¤¸¼Â¸ú¥æ¡¼¥¶ID¤Î¥×¥í¥»¥¹¤Ø¥·¥°¥Ê¥ë¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤¿¡£ -º£Æü¤Ç¤Ï¡¢¥·¥°¥Ê¥ëÁ÷¿®¸¢¸Â¤Î°·¤¤¤Ï¤«¤Ê¤ê°ã¤¦¤â¤Î¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +このシステムコールが導入された当時、プロセスは +同じ実効ユーザIDのプロセスへシグナルを送ることができた。 +今日では、シグナル送信権限の扱いはかなり違うものになっている。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O No error messages of any kind are returned to the caller. .\"O At the very .\"O least, @@ -165,14 +165,14 @@ glibc .\"O should be returned when the call fails (because the caller lacks the .\"O .B CAP_SETUID .\"O capability). -¤¤¤«¤Ê¤ë¼ïÎà¤Î¥¨¥é¡¼¡¦¥á¥Ã¥»¡¼¥¸¤â¸Æ¤Ó½Ð¤·¸µ¤ËÊÖ¤µ¤Ê¤¤¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï (¸Æ¤Ó½Ð¤·¸µ¤Ë¤Ï +いかなる種類のエラー・メッセージも呼び出し元に返さない。 +失敗した場合は (呼び出し元には .B CAP_SETUID -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¤Ê¤«¤Ã¤¿¤Î¤À¤«¤é) ºÇÄã¤Ç¤â +ケーパビリティがなかったのだから) 最低でも .B EPERM -¤¯¤é¤¤¤ÏÊÖ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +くらいは返すべきである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR kill (2), .BR setfsgid (2), .BR capabilities (7), diff --git a/draft/man2/setgid.2 b/draft/man2/setgid.2 index bb56ba96..f58228ca 100644 --- a/draft/man2/setgid.2 +++ b/draft/man2/setgid.2 @@ -30,35 +30,35 @@ .\" by HANATAKA Shinya .\" Updated Fri Feb 7 JST 2003 by Kentaro Shirakata .\" -.\"WORD: identity ¼±ÊÌ -.\"WORD: effective group ID ¼Â¸ú¥°¥ë¡¼¥×ID -.\"WORD: real group ID ¼Â¥°¥ë¡¼¥×ID -.\"WORD: saved set-group-ID Êݸ¥»¥Ã¥È¥°¥ë¡¼¥×ID -.\"WORD: implement ¼ÂÁõ -.\"WORD: superuser ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ +.\"WORD: identity 識別 +.\"WORD: effective group ID 実効グループID +.\"WORD: real group ID 実グループID +.\"WORD: saved set-group-ID 保存セットグループID +.\"WORD: implement 実装 +.\"WORD: superuser スーパー・ユーザー .\" .TH SETGID 2 2009-10-17 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O setgid \- set group identity -setgid \- ¥°¥ë¡¼¥×¼±ÊÌ(identity)¤òÀßÄꤹ¤ë +setgid \- グループ識別(identity)を設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include .sp .BI "int setgid(gid_t " gid ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR setgid () .\"O sets the effective group ID of the calling process. .\"O If the caller is the .\"O superuser, the real GID and saved set-group-ID are also set. .BR setgid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¸ú (effective) ¥°¥ë¡¼¥×ID ¤òÀßÄꤹ¤ë¡£ -¤â¤·¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¤Ï¡¢ -¼Â (real) ¥°¥ë¡¼¥×ID ¤ÈÊݸ (saved) set-group-ID ¤âÀßÄꤵ¤ì¤ë¡£ +は呼び出し元のプロセスの実効 (effective) グループID を設定する。 +もしスーパー・ユーザーによって呼び出された場合は、 +実 (real) グループID と保存 (saved) set-group-ID も設定される。 .\"O Under Linux, .\"O .BR setgid () @@ -69,25 +69,25 @@ setgid \- .\"O to drop all of its group .\"O privileges, do some un-privileged work, and then reengage the original .\"O effective group ID in a secure manner. -Linux ¤Ë¤ª¤¤¤Æ¡¢ +Linux において、 .BR setgid () -¤Ï +は .B _POSIX_SAVED_IDS -¤ò¤â¤Ã¤¿ POSIX ÈǤΤ褦¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï set-user-ID-root ¤Ç¤Ê¤¤ set-group-ID ¥×¥í¥°¥é¥à¤Ë¤½¤Î¥°¥ë¡¼¥×¤Î -Æø¢¤ÎÁ´¤ÆÍî¤È¤·¡¢Æø¢¤ÎɬÍפʤ¤»Å»ö¤ò¤·¡¢ËÜÍè¤Î¼Â¸ú¥°¥ë¡¼¥×ID ¤Ë -°ÂÁ´¤ÊÊýË¡¤ÇºÆ¤ÓÌ᤹¤³¤È¤òµö¤¹¡£ +をもった POSIX 版のように実装されている。 +これは set-user-ID-root でない set-group-ID プログラムにそのグループの +特権の全て落とし、特権の必要ない仕事をし、本来の実効グループID に +安全な方法で再び戻すことを許す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï¥¼¥í¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合はゼロが返される。エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EPERM .\"O The calling process is not privileged (does not have the @@ -95,15 +95,15 @@ Linux .\"O .I gid .\"O does not match the real group ID or saved set-group-ID of .\"O the calling process. -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ë¸¢¸Â¤¬¤Ê¤¯ (\fBCAP_SETGID\fP ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¤Ê¤¯)¡¢¤«¤Ä +呼び出し元のプロセスに権限がなく (\fBCAP_SETGID\fP ケーパビリティがなく)、かつ .I gid -¤¬¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¥°¥ë¡¼¥×ID ¤ÈÊݸ¥»¥Ã¥È¥°¥ë¡¼¥×ID -¤Î¤É¤Á¤é¤È¤â°ìÃפ·¤Ê¤¤¡£ +が呼び出し元のプロセスの実グループID と保存セットグループID +のどちらとも一致しない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getgid (2), .BR setegid (2), .BR setregid (2), diff --git a/draft/man2/setpgid.2 b/draft/man2/setpgid.2 index 9123051e..26c244cb 100644 --- a/draft/man2/setpgid.2 +++ b/draft/man2/setpgid.2 @@ -52,20 +52,20 @@ .\" Updated 2007-09-25, Akihiro MOTOKI , LDP v2.64 .\" Updated 2010-04-23, Akihiro MOTOKI, LDP v3.24 .\" -.\"WORD: process group ¥×¥í¥»¥¹¥°¥ë¡¼¥× -.\"WORD: process group ID ¥×¥í¥»¥¹¥°¥ë¡¼¥× ID -.\"WORD: terminal üËö -.\"WORD: foreground ¥Õ¥©¥¢¥°¥é¥ó¥É -.\"WORD: block ÃæÃÇ(block) -.\"WORD: job control ¥¸¥ç¥Ö¡¦¥³¥ó¥È¥í¡¼¥ë +.\"WORD: process group プロセスグループ +.\"WORD: process group ID プロセスグループ ID +.\"WORD: terminal 端末 +.\"WORD: foreground フォアグランド +.\"WORD: block 中断(block) +.\"WORD: job control ジョブ・コントロール .\" .TH SETPGID 2 2010-09-26 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O setpgid, getpgid, setpgrp, getpgrp \- set/get process group -setpgid, getpgid, setpgrp, getpgrp \- ¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÎÀßÄê/¼èÆÀ¤ò¹Ô¤¦ +setpgid, getpgid, setpgrp, getpgrp \- プロセスグループの設定/取得を行う .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int setpgid(pid_t " pid ", pid_t " pgid ); @@ -85,9 +85,9 @@ setpgid, getpgid, setpgrp, getpgrp \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -98,7 +98,7 @@ _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .br .\"O || /* Since glibc 2.12: */ _POSIX_C_SOURCE\ >=\ 200809L -|| /* glibc 2.12 °Ê¹ß: */ _POSIX_C_SOURCE\ >=\ 200809L +|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\ >=\ 200809L .RE .sp .BR setpgrp "() (POSIX.1):" @@ -117,7 +117,7 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .PD .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O All of these interfaces are available on Linux, .\"O and are used for getting and setting the .\"O process group ID (PGID) of a process. @@ -126,14 +126,14 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O for retrieving the calling process's PGID; and .\"O .BR setpgid (), .\"O for setting a process's PGID. -¤³¤ì¤é¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¹¤Ù¤Æ¤¬ Linux ¤ÇÍøÍѲÄǽ¤Ç¡¢ -¤³¤ì¤é¤ò»È¤Ã¤Æ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥× ID (PGID) ¤Î -¼èÆÀ¤äÀßÄ꤬¤Ç¤­¤ë¡£ -¿ä¾©¤Î¡¢POSIX.1 ¤Çµ¬Äꤵ¤ì¤¿ÊýË¡¤Ç¤Ï¡¢ +これらのインタフェースすべてが Linux で利用可能で、 +これらを使ってプロセスのプロセスグループ ID (PGID) の +取得や設定ができる。 +推奨の、POSIX.1 で規定された方法では、 .BR getpgrp (void) -¤Ç¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î PGID ¤ò¼èÆÀ¤·¡¢ +で呼び出し元プロセスの PGID を取得し、 .BR setpgid () -¤ÇÀßÄꤹ¤ë¡£ +で設定する。 .\"O .BR setpgid () .\"O sets the PGID of the process specified by @@ -149,18 +149,18 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O .I pid .\"O is made the same as its process ID. .BR setpgid () -¤Ï +は .I pid -¤Ç»ØÄꤷ¤¿¥×¥í¥»¥¹¤Î PGID ¤Ë +で指定したプロセスの PGID に .I pgid -¤òÀßÄꤹ¤ë¡£ +を設定する。 .I pid -¤¬¥¼¥í¤Ê¤é¤Ð¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤¬ pid ¤È¤·¤Æ»ÈÍѤµ¤ì¤ë¡£ +がゼロならば、呼び出し元プロセスのプロセス ID が pid として使用される。 .I pgid -¤¬¥¼¥í¤Ê¤é¤Ð¡¢ +がゼロならば、 .I pid -¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤Î PGID ¤¬¤½¤Î¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤È -Ʊ¤¸¤ËÀßÄꤵ¤ì¤ë¡£ +で指定されたプロセスの PGID がそのプロセスのプロセス ID と +同じに設定される。 .\"O If .\"O .BR setpgid () .\"O is used to move a process from one process @@ -173,25 +173,25 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O the \fIpgid\fP specifies an existing process group to be joined and the .\"O session ID of that group must match the session ID of the joining process. .BR setpgid () -¤ò¥×¥í¥»¥¹¤ò¤¢¤ë¥×¥í¥»¥¹¥°¥ë¡¼¥×¤«¤éÊ̤Υ°¥ë¡¼¥×¤Ø -°ÜÆ°¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¾ì¹ç¤Ï (°ìÉô¤Î¥·¥§¥ë¤Ï¥Ñ¥¤¥×¥é¥¤¥ó¤òÀ¸À® -¤¹¤ë»þ¤Ë¤³¤ì¤ò¹Ô¤¦)¡¢Î¾Êý¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÏƱ¤¸¥»¥Ã¥·¥ç¥ó¤Î -°ìÉô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ +をプロセスをあるプロセスグループから別のグループへ +移動するために使用する場合は (一部のシェルはパイプラインを生成 +する時にこれを行う)、両方のプロセスグループは同じセッションの +一部でなければならない .RB ( setsid (2) -¤È +と .BR credentials (7) -»²¾È)¡£¤³¤Î¾ì¹ç¤Ï \fIpgid\fP ¤Ï»²²Ã¤¹¤Ù¤­´û¸¤Î -¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ò»ØÄꤷ¡¢¤½¤Î¥»¥Ã¥·¥ç¥ó ID ¤Ï»²²Ã¤¹¤ë¥×¥í¥»¥¹¤Î -¥»¥Ã¥·¥ç¥ó ID ¤Ë°ìÃפ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +参照)。この場合は \fIpgid\fP は参加すべき既存の +プロセスグループを指定し、そのセッション ID は参加するプロセスの +セッション ID に一致しなければならない。 .\"O The POSIX.1 version of .\"O .BR getpgrp (), .\"O which takes no arguments, .\"O returns the PGID of the calling process. -POSIX.1 ¥Ð¡¼¥¸¥ç¥ó¤Î +POSIX.1 バージョンの .BR getpgrp () -¤Ï°ú¤­¿ô¤ò°ì¤Ä¤â¤È¤é¤º¡¢ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î PGID ¤òÊÖ¤¹¡£ +は引き数を一つもとらず、 +呼び出し元プロセスの PGID を返す。 .\"O .BR getpgid () .\"O returns the PGID of the process specified by @@ -204,26 +204,26 @@ POSIX.1 .\"O .BR getpgrp () .\"O is preferred for that task.) .BR getpgid () -¤Ï +は .I pid -¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤Î PGID ¤òÊÖ¤¹¡£ +で指定されたプロセスの PGID を返す。 .I pid -¤¬¥¼¥í¤Ê¤é¤Ð¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤¬ pid ¤È¤·¤Æ»ÈÍѤµ¤ì¤ë¡£ -(¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹°Ê³°¤Î¥×¥í¥»¥¹¤Î PGID ¤Î¼èÆÀ¤¬É¬Íפˤʤ뤳¤È¤Ï -¤á¤Ã¤¿¤Ë¤Ê¤¯¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î PGID ¤ò¼èÆÀ¤¹¤ë¤Ë¤Ï -POSIX.1 ¥Ð¡¼¥¸¥ç¥ó¤Î +がゼロならば、呼び出し元プロセスのプロセス ID が pid として使用される。 +(呼び出し元プロセス以外のプロセスの PGID の取得が必要になることは +めったになく、呼び出し元プロセスの PGID を取得するには +POSIX.1 バージョンの .BR getpgrp () -¤ò»È¤¦¤Î¤¬Ë¾¤Þ¤·¤¤¡£) +を使うのが望ましい。) .\"O The System V-style .\"O .BR setpgrp (), .\"O which takes no arguments, is equivalent to .\"O .IR "setpgid(0,\ 0)" . -System V ¥Ð¡¼¥¸¥ç¥ó¤Î +System V バージョンの .BR setpgrp () -¤Ï°ú¤­¿ô¤ò°ì¤Ä¤â¤È¤é¤º¡¢ +は引き数を一つもとらず、 .I "setpgid(0,\ 0)" -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 .\"O The BSD-specific .\"O .BR setpgrp () @@ -233,15 +233,15 @@ System V .\"O .IR pgid , .\"O is equivalent to .\"O .IR "setpgid(pid, pgid)" . -BSD »ÅÍͤΠ+BSD 仕様の .BR setpgrp () -¤Ï +は .I pid -¤È +と .I pgid -¤ò°ú¤­¿ô¤Ë¤È¤ê¡¢ +を引き数にとり、 .I "setpgid(pid, pgid)" -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 .\" The true BSD setpgrp() system call differs in allowing the PGID .\" to be set to arbitrary values, rather than being restricted to .\" PGIDs in the same session. @@ -252,15 +252,15 @@ BSD .\"O .I pid .\"O argument, is equivalent to .\"O .IR "getpgid(pid)" . -BSD »ÅÍͤΠ+BSD 仕様の .BR getpgrp () -¤Ï +は .I pid -¤À¤±¤ò°ú¤­¿ô¤Ë¤È¤ê¡¢ +だけを引き数にとり、 .I "getpgid(pid)" -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR setpgid () .\"O and @@ -270,18 +270,18 @@ BSD .\"O .I errno .\"O is set appropriately. .BR setpgid () -¤È +と .BR setpgrp () -¤ÏÀ®¸ù¤·¤¿¾ì¹ç¡¢¥¼¥í¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +は成功した場合、ゼロを返す。エラーの場合は \-1 を返し、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O The POSIX.1 .\"O .BR getpgrp () .\"O always returns the PGID of the caller. -POSIX.1 ¥Ð¡¼¥¸¥ç¥ó¤Î +POSIX.1 バージョンの .BR getpgrp () -¤Ï¾ï¤Ë¸Æ¤Ó½Ð¤·¥×¥í¥»¥¹¤Î PGID ¤òÊÖ¤¹¡£ +は常に呼び出しプロセスの PGID を返す。 .\"O .BR getpgid (), .\"O and the BSD-specific @@ -291,14 +291,14 @@ POSIX.1 .\"O .I errno .\"O is set appropriately. .BR getpgid () -¤È BSD »ÅÍͤΠ+と BSD 仕様の .BR getpgrp () -¤ÏÀ®¸ù¤·¤¿¾ì¹ç¥×¥í¥»¥¹¥°¥ë¡¼¥×¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +は成功した場合プロセスグループを返す。 +エラーの場合は \-1 を返し、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O An attempt was made to change the process group ID @@ -307,10 +307,10 @@ POSIX.1 .\"O .BR execve (2) .\"O .RB ( setpgid (), .\"O .BR setpgrp ()). -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤òÊѹ¹¤·¤è¤¦¤È¤·¤¿¤¬¡¢ -¤¹¤Ç¤Ë¤½¤Î»Ò¥×¥í¥»¥¹¤Ï +呼び出し元プロセスの子プロセスのプロセスグループ ID を変更しようとしたが、 +すでにその子プロセスは .BR execve (2) -¤ò¼Â¹Ô¤·¤Æ¤¤¤¿¡£ +を実行していた。 .RB ( setpgid (), .BR setpgrp ()) .TP @@ -320,7 +320,7 @@ POSIX.1 .\"O .RB ( setpgid (), .\"O .BR setpgrp ()). .I pgid -¤¬ 0 ¤è¤ê¾®¤µ¤¤¡£ +が 0 より小さい。 .RB ( setpgid (), .BR setpgrp ()) .TP @@ -332,10 +332,10 @@ POSIX.1 .\"O a session leader .\"O .RB ( setpgid (), .\"O .BR setpgrp ()). -¥×¥í¥»¥¹¤ò°Û¤Ê¤ë¥»¥Ã¥·¥ç¥ó¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë°ÜÆ°¤µ¤»¤è¤¦¤È¤·¤¿¡£ -¤Þ¤¿¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤òÊѹ¹¤·¤è¤¦¤È -¤·¤¿¤¬¡¢¤½¤Î»Ò¥×¥í¥»¥¹¤ÏÊ̤Υ»¥Ã¥·¥ç¥ó¤À¤Ã¤¿¡£ -¤Þ¤¿¤Ï¥»¥Ã¥·¥ç¥ó¥ê¡¼¥À¡¼¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤òÊѹ¹¤·¤è¤¦¤È¤·¤¿¡£ +プロセスを異なるセッションのプロセスグループに移動させようとした。 +または呼び出し元プロセスの子プロセスのプロセスグループ ID を変更しようと +したが、その子プロセスは別のセッションだった。 +またはセッションリーダーのプロセスグループ ID を変更しようとした。 .RB ( setpgid (), .BR setpgrp ()) .TP @@ -343,45 +343,45 @@ POSIX.1 .\"O For .\"O .BR getpgid (): .BR getpgid () -¤Î¾ì¹ç: +の場合: .I pid -¤¬¤É¤Î¥×¥í¥»¥¹¤Ë¤â°ìÃפ·¤Ê¤¤¡£ +がどのプロセスにも一致しない。 .\"O For .\"O .BR setpgid (): .\"O .I pid .\"O is not the calling process and not a child of the calling process. .BR setpgid () -¤Î¾ì¹ç: +の場合: .I pid -¤¬¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ç¤Ï¤Ê¤¯¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Ç¤â¤Ê¤¤¡£ +が呼び出し元のプロセスではなく、呼び出し元のプロセスの子プロセスでもない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR setpgid () .\"O and the version of .\"O .BR getpgrp () .\"O with no arguments .\"O conform to POSIX.1-2001. .BR setpgid () -¤È¡¢°ú¤­¿ô¤Ê¤·¥Ð¡¼¥¸¥ç¥ó¤Î +と、引き数なしバージョンの .BR getpgrp () -¤Ï POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +は POSIX.1-2001 に準拠している。 .\"O POSIX.1-2001 also specifies .\"O .BR getpgid () .\"O and the version of .\"O .BR setpgrp () .\"O that takes no arguments. -POSIX.1-2001 ¤Ï¡¢ +POSIX.1-2001 は、 .BR getpgid () -¤È¡¢°ú¤­¿ô¤Ê¤·¥Ð¡¼¥¸¥ç¥ó¤Î +と、引き数なしバージョンの .BR setpgrp () -¤âµ¬Äꤷ¤Æ¤¤¤ë¡£ +も規定している。 .\"O (POSIX.1-2008 marks this .\"O .BR setpgrp () .\"O specification as obsolete.) -POSIX.1-2008 ¤Ï¡¢¤³¤Î +POSIX.1-2008 は、この .BR setpgrp () -¤Î»ÅÍͤòÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£ +の仕様を廃止予定としている。 .\"O The version of .\"O .BR getpgrp () @@ -389,29 +389,29 @@ POSIX.1-2008 .\"O .BR setpgrp () .\"O that takes two arguments derive from 4.2BSD, .\"O and are not specified by POSIX.1. -°ú¤­¿ô 1 ¸Ä¥Ð¡¼¥¸¥ç¥ó¤Î +引き数 1 個バージョンの .BR getpgrp () -¤È°ú¤­¿ô 2 ¸Ä¥Ð¡¼¥¸¥ç¥ó¤Î +と引き数 2 個バージョンの .BR setpgrp () -¤Ï 4.2BSD ¤ËͳÍ褷¡¢ -POSIX.1 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +は 4.2BSD に由来し、 +POSIX.1 では規定されていない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O A child created via .\"O .BR fork (2) .\"O inherits its parent's process group ID. .\"O The PGID is preserved across an .\"O .BR execve (2). .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢¿Æ¥×¥í¥»¥¹¤Î PGID -¤ò·Ñ¾µ¤¹¤ë¡£ +で作成された子プロセスは、親プロセスの PGID +を継承する。 .BR execve (2) -¤ÎÁ°¸å¤Ç PGID ¤ÏÊݸ¤µ¤ì¤ë¡£ +の前後で PGID は保存される。 .\"O Each process group is a member of a session and each process is a .\"O member of the session of which its process group is a member. -³Æ¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ï¥»¥Ã¥·¥ç¥ó¤Î¥á¥ó¥Ð¡¼¤Ç¤¢¤ê¡¢³Æ¥×¥í¥»¥¹¤Ï -¤½¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤¬½ê°¤·¤Æ¤¤¤ë¥»¥Ã¥·¥ç¥ó¤Î¥á¥ó¥Ð¡¼¤Ç¤¢¤ë¡£ +各プロセスグループはセッションのメンバーであり、各プロセスは +そのプロセスグループが所属しているセッションのメンバーである。 .\"O A session can have a controlling terminal. .\"O At any time, one (and only one) of the process groups @@ -425,17 +425,17 @@ POSIX.1 .\"O (See .\"O .BR termios (3) .\"O for a description of the characters that generate signals.) -¥»¥Ã¥·¥ç¥ó¤ÏÀ©¸æüËö (controlling terminal) ¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ -¤¤¤Ä¤Ç¤â¡¢¥»¥Ã¥·¥ç¥ó¤Ë½ê°¤¹¤ë¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Î°ì¤Ä (¤À¤±) ¤¬ -üËö¤Î¥Õ¥©¥¢¥°¥é¥ó¥É¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë¤Ê¤ë¤³¤È¤¬¤Ç¤­¡¢ -»Ä¤ê¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ï¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤Ë¤Ê¤ë¡£ -üËö¤«¤é¥·¥°¥Ê¥ë¤¬À¸À®¤µ¤ì¤¿¾ì¹ç (Î㤨¤Ð¡¢ÃæÃÇ¥­¡¼¤òᤤ¤Æ +セッションは制御端末 (controlling terminal) を持つことができる。 +いつでも、セッションに所属するプロセスグループの一つ (だけ) が +端末のフォアグランドのプロセスグループになることができ、 +残りのプロセスグループはバックグラウンドになる。 +端末からシグナルが生成された場合 (例えば、中断キーを叩いて .B SIGINT -¤¬À¸À®¤µ¤ì¤ë¤Ê¤É)¡¢¤½¤Î¥·¥°¥Ê¥ë¤Ï¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥× -¤ËÁ÷¤é¤ì¤ë -(¥·¥°¥Ê¥ë¤òÀ¸À®¤¹¤ëʸ»ú¤ÎÀâÌÀ¤Ï +が生成されるなど)、そのシグナルはフォアグラウンドのプロセスグループ +に送られる +(シグナルを生成する文字の説明は .BR termios (3) -¤ò»²¾È)¡£ +を参照)。 .\"O Only the foreground process group may .\"O .BR read (2) .\"O from the terminal; @@ -450,20 +450,20 @@ POSIX.1 .\"O .BR tcsetpgrp (3) .\"O functions are used to get/set the foreground .\"O process group of the controlling terminal. -¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤À¤±¤¬Ã¼Ëö¤«¤é¤Î +フォアグラウンドのプロセスグループだけが端末からの .BR read (2) -¤¬¤Ç¤­¤ë¡£ -¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤¬Ã¼Ëö¤«¤é¤Î +ができる。 +バックグラウンドのプロセスグループが端末からの .BR read (2) -¤ò¹Ô¤ª¤¦¤È¤·¤¿¾ì¹ç¡¢¤½¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë¤Ï¥·¥°¥Ê¥ë +を行おうとした場合、そのプロセスグループにはシグナル .B SIGTSTP -¤¬Á÷¤é¤ì¡¢¤½¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ï°ì»þÄä»ß (suspend) ¤¹¤ë¡£ -´Ø¿ô +が送られ、そのプロセスグループは一時停止 (suspend) する。 +関数 .BR tcgetpgrp (3) -¤È +と .BR tcsetpgrp (3) -¤ò»È¤¦¤È¡¢À©¸æüËö¤Î¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ò -¼èÆÀ/ÀßÄê¤Ç¤­¤ë¡£ +を使うと、制御端末のフォアグラウンドのプロセスグループを +取得/設定できる。 .\"O The .\"O .BR setpgid () @@ -473,12 +473,12 @@ POSIX.1 .\"O .BR bash (1) .\"O to create process groups in order to implement shell job control. .BR setpgid () -¤È +と .BR getpgrp () -¤Ï¡¢ +は、 .BR bash (1) -¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ç¡¢¥·¥§¥ë¤Î¥¸¥ç¥ÖÀ©¸æ (job control) ¤Î¼ÂÁõ¤Î¤¿¤á¤Î -¥×¥í¥»¥¹¥°¥ë¡¼¥×¤òºîÀ®¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£ +のようなプログラムで、シェルのジョブ制御 (job control) の実装のための +プロセスグループを作成するのに使われる。 .\"O If a session has a controlling terminal, and the .\"O .B CLOCAL @@ -489,16 +489,16 @@ POSIX.1 .\"O .B SIGHUP .\"O signal will also be sent to each process in the foreground .\"O process group of the controlling terminal. -¥»¥Ã¥·¥ç¥ó¤¬À©¸æüËö¤ò»ý¤Ã¤Æ¤¤¤Æ¡¢¤½¤ÎüËö¤ËÂФ·¤Æ +セッションが制御端末を持っていて、その端末に対して .B CLOCAL -¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤Æ¤ª¤é¤º¡¢Ã¼Ëö¤Î¥Ï¥ó¥°¥¢¥Ã¥×¤¬µ¯¤­¤¿¾ì¹ç¡¢ -¥»¥Ã¥·¥ç¥ó¡¦¥ê¡¼¥À¡¼¤Ë +フラグが設定されておらず、端末のハングアップが起きた場合、 +セッション・リーダーに .B SIGHUP -¤¬Á÷¤é¤ì¤ë¡£ -¥»¥Ã¥·¥ç¥ó¡¦¥ê¡¼¥À¡¼¤¬½ªÎ»¤·¤¿¾ì¹ç¤Ë¤Ï¡¢¤½¤ÎÀ©¸æüËö¤Î -¥Õ¥©¥¢¥°¥é¥ó¥É¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë½ê°¤¹¤ë³Æ¥×¥í¥»¥¹¤Ë¤â +が送られる。 +セッション・リーダーが終了した場合には、その制御端末の +フォアグランドのプロセスグループに所属する各プロセスにも .B SIGHUP -¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£ +シグナルが送られる。 .\"O If the exit of the process causes a process group to become orphaned, .\"O and if any member of the newly orphaned process group is stopped, then a @@ -507,26 +507,26 @@ POSIX.1 .\"O .B SIGCONT .\"O signal will be sent to each process .\"O in the newly orphaned process group. -¥×¥í¥»¥¹¤Î½ªÎ»¤Ë¤è¤Ã¤Æ¥×¥í¥»¥¹¥°¥ë¡¼¥×¤¬¸É»ù (orphaned) ¤Ë¤Ê¤Ã¤¿ºÝ¤Ë¡¢ -¤½¤Î¿·¤¿¤Ë¸É»ù¤Ë¤Ê¤Ã¤¿¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ËÄä»ß¤·¤Æ¤¤¤ë¥á¥ó¥Ð¡¼¤¬¤¤¤ì¤Ð¡¢ -¤½¤Î¸É»ù¤Ë¤Ê¤Ã¤¿¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë°¤¹Á´¤Æ¤Î¥×¥í¥»¥¹¤Ë +プロセスの終了によってプロセスグループが孤児 (orphaned) になった際に、 +その新たに孤児になったプロセスグループに停止しているメンバーがいれば、 +その孤児になったプロセスグループに属す全てのプロセスに .B SIGHUP -¥·¥°¥Ê¥ë¤Ë³¤±¤Æ +シグナルに続けて .B SIGCONT -¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£ +シグナルが送られる。 .\" exit.3 refers to the following text: .\"O An orphaned process group is one in which the parent of .\"O every member of process group is either itself also a member .\"O of the process group or is a member of a process group .\"O in a different session (see also .\"O .BR credentials (7)). -¸É»ù¤Ë¤Ê¤Ã¤¿ (orphaned) ¥×¥í¥»¥¹¥°¥ë¡¼¥×¤È¤Ï¡¢ -¤½¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÎÁ´¤Æ¤Î¥á¥ó¥Ð¡¼¤Ë¤Ä¤¤¤Æ¡¢¥á¥ó¥Ð¡¼¤Î¿Æ¥×¥í¥»¥¹¤¬¡¢ -¿Æ¥×¥í¥»¥¹¼«¿È¤â¤½¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð¡¼¤«¡¢ -Ê̤Υ»¥Ã¥·¥ç¥ó¤Ë°¤¹¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð¡¼¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¤è¤¦¤Ê¡¢ -¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Î¤³¤È¤Ç¤¢¤ë¡£ +孤児になった (orphaned) プロセスグループとは、 +そのプロセスグループの全てのメンバーについて、メンバーの親プロセスが、 +親プロセス自身もそのプロセスグループのメンバーか、 +別のセッションに属すプロセスグループのメンバーのいずれかであるような、 +プロセスグループのことである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getuid (2), .BR setsid (2), .BR tcgetpgrp (3), diff --git a/draft/man2/setresuid.2 b/draft/man2/setresuid.2 index fbbb4b69..fc4324b1 100644 --- a/draft/man2/setresuid.2 +++ b/draft/man2/setresuid.2 @@ -32,22 +32,22 @@ .\" Updated & Modified 2005-09-03, Akihiro MOTOKI .\" Updated & Modified 2005-11-04, Akihiro MOTOKI .\" -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: real user ID ¼Â¥æ¡¼¥¶¡¼ID -.\"WORD: saved set-user-ID Êݸ¥»¥Ã¥È¥æ¡¼¥¶¡¼ID -.\"WORD: effective group ID ¼Â¸ú¥°¥ë¡¼¥×ID -.\"WORD: real group ID ¼Â¥°¥ë¡¼¥×ID -.\"WORD: saved group ID Êݸ¥°¥ë¡¼¥×ID +.\"WORD: effective user ID 実効ユーザーID +.\"WORD: real user ID 実ユーザーID +.\"WORD: saved set-user-ID 保存セットユーザーID +.\"WORD: effective group ID 実効グループID +.\"WORD: real group ID 実グループID +.\"WORD: saved group ID 保存グループID .\" .TH SETRESUID 2 2007-07-26 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O setresuid, setresgid \- set real, effective and saved user or group ID -setresuid, setresgid \- ¥æ¡¼¥¶¤ä¥°¥ë¡¼¥×¤Î ¼Â¡¢¼Â¸ú¡¢Êݸ ID ¤òÀßÄꤹ¤ë +setresuid, setresgid \- ユーザやグループの 実、実効、保存 ID を設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp @@ -55,38 +55,38 @@ setresuid, setresgid \- .br .BI "int setresgid(gid_t " rgid ", gid_t " egid ", gid_t " sgid ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR setresuid () .\"O sets the real user ID, the effective user ID, and the .\"O saved set-user-ID of the calling process. .BR setresuid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â (real) ¥æ¡¼¥¶¡¼ID¡¢¼Â¸ú (effective) ¥æ¡¼¥¶¡¼ID¡¢ -Êݸ set-user-ID ¤òÀßÄꤹ¤ë¡£ +は呼び出し元のプロセスの実 (real) ユーザーID、実効 (effective) ユーザーID、 +保存 set-user-ID を設定する。 .\"O Unprivileged user processes .\"O may change the real UID, .\"O effective UID and saved set-user-ID, each to one of: .\"O the current real UID, the current effective UID or the .\"O current saved set-user-ID. -ÈóÆø¢¥æ¡¼¥¶¡¼¤Î¥×¥í¥»¥¹¤Ï¡¢¤½¤Î¼Â UID¡¢¼Â¸ú UID¡¢Êݸ set-user-ID ¤ò¡¢ -¸½ºß¤Î¼Â UID¡¢¸½ºß¤Î¼Â¸ú UID¡¢¸½ºß¤ÎÊݸ set-user-ID -¤Î¤É¤ì¤«¤ËÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë: +非特権ユーザーのプロセスは、その実 UID、実効 UID、保存 set-user-ID を、 +現在の実 UID、現在の実効 UID、現在の保存 set-user-ID +のどれかに変更することができる: .\"O Privileged processes (on Linux, those having the \fBCAP_SETUID\fP capability) .\"O may set the real UID, effective UID, and .\"O saved set-user-ID to arbitrary values. -Æø¢¥×¥í¥»¥¹ (Linux ¤Ç¤Ï \fBCAP_SETUID\fP ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤Ä -¥×¥í¥»¥¹) ¤Ï¡¢¼Â UID¡¢¼Â¸ú UID¡¢Êݸ set-user-ID ¤òǤ°Õ¤ÎÃͤËÀßÄê¤Ç¤­¤ë¡£ +特権プロセス (Linux では \fBCAP_SETUID\fP ケーパビリティ (capability) を持つ +プロセス) は、実 UID、実効 UID、保存 set-user-ID を任意の値に設定できる。 .\"O If one of the arguments equals \-1, the corresponding value is not changed. -°ú¤­¿ô¤Î¤É¤ì¤«¤¬ \-1 ¤Î¾ì¹ç¤Ï¤½¤ÎÃͤÏÊѹ¹¤µ¤ì¤º¤Ë»Ä¤µ¤ì¤ë¡£ +引き数のどれかが \-1 の場合はその値は変更されずに残される。 .\"O Regardless of what changes are made to the real UID, effective UID, .\"O and saved set-user-ID, the file system UID is always set to the same .\"O value as the (possibly new) effective UID. -¼Â UID¡¢¼Â¸ú UID¡¢Êݸ set-user-ID ¤Ë¤É¤ó¤ÊÊѹ¹¤¬¹Ô¤ï¤ì¤¿¤«¤Ë´Ø¤ï¤é¤º¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID ¤Ï¾ï¤Ë¼Â¸ú UID (²Äǽ¤Ç¤¢¤ì¤ÐÊѹ¹¸å¤Î¿·¤·¤¤¼Â¸ú UID) -¤ÈƱ¤¸ÃͤËÀßÄꤵ¤ì¤ë¡£ +実 UID、実効 UID、保存 set-user-ID にどんな変更が行われたかに関わらず、 +ファイルシステム UID は常に実効 UID (可能であれば変更後の新しい実効 UID) +と同じ値に設定される。 .\"O Completely analogously, .\"O .BR setresgid () @@ -94,22 +94,22 @@ setresuid, setresgid \- .\"O of the calling process (and always modifies the file system GID .\"O to be the same as the effective GID), .\"O with the same restrictions for unprivileged processes. -Á´¤¯Æ±¤¸¤è¤¦¤Ë¡¢ +全く同じように、 .BR setresgid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â GID¡¢¼Â¸ú GID¡¢Êݸ set-group-ID ¤òÀßÄꤹ¤ë -(¤µ¤é¤Ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à GID ¤ò¼Â¸ú GID ¤ÈƱ¤¸Ãͤ˽¤Àµ¤¹¤ë)¡£ -ÈóÆø¢¥×¥í¥»¥¹¤ÏƱÍͤÎÀ©¸Â¤ò¼õ¤±¤ë¡£ +は呼び出し元のプロセスの実 GID、実効 GID、保存 set-group-ID を設定する +(さらにファイルシステム GID を実効 GID と同じ値に修正する)。 +非特権プロセスは同様の制限を受ける。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合は 0 が返される。エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EAGAIN .\"O .I uid @@ -118,40 +118,40 @@ setresuid, setresgid \- .\"O .B RLIMIT_NPROC .\"O resource limit. .I uid -¤¬¸½ºß¤Î¥æ¡¼¥¶¡¼ ID ¤È°ã¤¦Ãͤǡ¢ -¤³¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤ê ¥æ¡¼¥¶¡¼ ID ¤¬ -¥ê¥½¡¼¥¹¾å¸Â +が現在のユーザー ID と違う値で、 +この呼び出しにより ユーザー ID が +リソース上限 .B RLIMIT_NPROC -¤òĶ¤¨¤Æ¤·¤Þ¤¦¡£ +を超えてしまう。 .TP .B EPERM .\"O The calling process is not privileged (did not have the \fBCAP_SETUID\fP .\"O capability) and tried to change the IDs to values that are not permitted. -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬Æø¢¤ò»ý¤¿¤Ê¤¤¤Î¤Ë -(\fBCAP_SETUID\fP ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤¤Î¤Ë)¡¢ -ID ¤òµö¤µ¤ì¤Æ¤¤¤Ê¤¤ÃͤËÊѹ¹¤·¤è¤¦¤È¤·¤¿¡£ +呼び出したプロセスが特権を持たないのに +(\fBCAP_SETUID\fP ケーパビリティを持たないのに)、 +ID を許されていない値に変更しようとした。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O It is available under Linux since Linux 2.1.44. -Linux ¤Ç¤Ï¥Ð¡¼¥¸¥ç¥ó 2.1.44 ¤è¤êÍøÍѲÄǽ¤Ë¤Ê¤Ã¤¿¡£ +Linux ではバージョン 2.1.44 より利用可能になった。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These calls are nonstandard; .\"O they also appear on HP-UX and some of the BSDs. -¤³¤ì¤é¤Î¥³¡¼¥ë¤ÏÈóɸ½à¤Ç¤¢¤ë¡£ -HP-UX ¤ä BSD ·Ï¤Î¤¤¤¯¤Ä¤«¤Ë¤â¸ºß¤¹¤ë¡£ +これらのコールは非標準である。 +HP-UX や BSD 系のいくつかにも存在する。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Under HP-UX and FreeBSD the prototype is found in .\"O .IR . -HP-UX ¤ä FreeBSD ¤Ç¤Ï +HP-UX や FreeBSD では .I -¤Ë¥×¥í¥È¥¿¥¤¥×¤¬Â¸ºß¤¹¤ë¡£ +にプロトタイプが存在する。 .\"O Under Linux the prototype is provided by glibc since version 2.3.2. -Linux ¤Ç¤Ï¡¢glibc 2.3.2 °Ê¹ß¤Ç -¥×¥í¥È¥¿¥¤¥×¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¡£ +Linux では、glibc 2.3.2 以降で +プロトタイプが提供されている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getresuid (2), .BR getuid (2), .BR setfsgid (2), diff --git a/draft/man2/setreuid.2 b/draft/man2/setreuid.2 index 4d6ac4f8..dcf9efcf 100644 --- a/draft/man2/setreuid.2 +++ b/draft/man2/setreuid.2 @@ -50,18 +50,18 @@ .\" by Yuichi SATO .\" Updated 2010-04-23, Akihiro MOTOKI , LDP v3.24 .\" -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: real user ID ¼Â¥æ¡¼¥¶¡¼ID -.\"WORD: saved user ID Êݸ¥æ¡¼¥¶¡¼ID -.\"WORD: super-user ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ +.\"WORD: effective user ID 実効ユーザーID +.\"WORD: real user ID 実ユーザーID +.\"WORD: saved user ID 保存ユーザーID +.\"WORD: super-user スーパー・ユーザー .\" .TH SETREUID 2 2010-09-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O setreuid, setregid \- set real and/or effective user or group ID -setreuid, setregid \- ¼Â (real) ¤È¼Â¸ú (effective) ¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×) ID ¤òÀßÄꤹ¤ë +setreuid, setregid \- 実 (real) と実効 (effective) ユーザー (グループ) ID を設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include @@ -73,9 +73,9 @@ setreuid, setregid \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR setreuid (), @@ -87,54 +87,54 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .ad .RE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR setreuid () .\"O sets real and effective user IDs of the calling process. .BR setreuid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â (real) ¥æ¡¼¥¶¡¼ ID ¤È -¼Â¸ú (effective) ¥æ¡¼¥¶¡¼ ID ¤òÀßÄꤹ¤ë¡£ +は呼び出し元のプロセスの実 (real) ユーザー ID と +実効 (effective) ユーザー ID を設定する。 .\"O Supplying a value of \-1 for either the real or effective user ID forces .\"O the system to leave that ID unchanged. -¼Â¥æ¡¼¥¶¡¼ ID ¤ä¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤Ë \-1 ¤òÍ¿¤¨¤¿¾ì¹ç¡¢ -¥·¥¹¥Æ¥à¤Ï¤½¤Î ID ¤òÊѹ¹¤·¤Ê¤¤¡£ +実ユーザー ID や実効ユーザー ID に \-1 を与えた場合、 +システムはその ID を変更しない。 .\"O Unprivileged processes may only set the effective user ID to the real user ID, .\"O the effective user ID, or the saved set-user-ID. -ÈóÆø¢¥×¥í¥»¥¹¤Ï¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤ò¼Â¥æ¡¼¥¶¡¼ ID ¤Þ¤¿¤Ï¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤Þ¤¿¤Ï -Êݸ set-user-ID ¤Ë¤·¤«ÀßÄê¤Ç¤­¤Ê¤¤¡£ +非特権プロセスは実効ユーザー ID を実ユーザー ID または実効ユーザー ID または +保存 set-user-ID にしか設定できない。 .\"O Unprivileged users may only set the real user ID to .\"O the real user ID or the effective user ID. -ÈóÆø¢¥æ¡¼¥¶¡¼¤Ï¡¢¼Â¥æ¡¼¥¶¡¼ ID ¤ò¼Â¥æ¡¼¥¶¡¼ ID ¤Þ¤¿¤Ï -¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤Ë¤·¤«ÀßÄê¤Ç¤­¤Ê¤¤¡£ +非特権ユーザーは、実ユーザー ID を実ユーザー ID または +実効ユーザー ID にしか設定できない。 .\"O If the real user ID is set or the effective user ID is set to a value .\"O not equal to the previous real user ID, .\"O the saved set-user-ID will be set to the new effective user ID. -¼Â¥æ¡¼¥¶¡¼ID ¤¬ÀßÄꤵ¤ì¤¿¤ê¡¢¼Â¸ú¥æ¡¼¥¶¡¼ID ¤¬Á°¤Î¼Â¥æ¡¼¥¶¡¼ID ¤È -°Û¤Ã¤¿ÃͤËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢Êݸ set-user-ID ¤Ë¤Ï¿·¤·¤¤¼Â¸ú¥æ¡¼¥¶¡¼ID -¤ÎÃͤ¬ÀßÄꤵ¤ì¤ë¡£ +実ユーザーID が設定されたり、実効ユーザーID が前の実ユーザーID と +異った値に設定された場合、保存 set-user-ID には新しい実効ユーザーID +の値が設定される。 .\"O Completely analogously, .\"O .BR setregid () .\"O sets real and effective group ID's of the calling process, .\"O and all of the above holds with "group" instead of "user". -¤³¤ì¤ÈÁ´¤¯Æ±Íͤˡ¢ +これと全く同様に、 .BR setregid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¥°¥ë¡¼¥× ID ¤È¼Â¸ú¥°¥ë¡¼¥× ID ¤òÀßÄꤷ¡¢ -¾åµ­¤ÎÀâÌÀ¤Ç¡Ö¥æ¡¼¥¶¡¼¡×¤ò¡Ö¥°¥ë¡¼¥×¡×¤ËÆɤßÂؤ¨¤¿¤³¤È¤¬À®¤êΩ¤Ä¡£ +は呼び出し元のプロセスの実グループ ID と実効グループ ID を設定し、 +上記の説明で「ユーザー」を「グループ」に読み替えたことが成り立つ。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合は 0 が返される。エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EPERM .\"O The calling process is not privileged @@ -151,23 +151,23 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O or (ii) setting one to the value of the other or (iii) setting the .\"O effective user (group) ID to the value of the .\"O saved set-user-ID (saved set-group-ID) was specified. -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ËÆø¢¤¬¤Ê¤¯ -(Linux ¤Ç¤Ï +呼び出し元のプロセスに特権がなく +(Linux では .BR setreuid () -¤Î¾ì¹ç¤Ë +の場合に .B CAP_SETUID -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤¬¤Ê¤¯¡¢ +ケーパビリティ (capability) がなく、 .BR setregid () -¤Î¾ì¹ç¤Ë +の場合に .B CAP_SETGID -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¤Ê¤¤)¡¢ -°Ê²¼¤Î¤¤¤º¤ì¤Ç¤â¤Ê¤¤Êѹ¹¤¬»ØÄꤵ¤ì¤¿: -(i) ¼Â¸ú¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×) ID ¤È¼Â¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×) ID ¤òÆþ¤ì´¹¤¨¤ë¡£ -(ii) ÊÒÊý¤ÎÃͤò¾Êý¤ËÀßÄꤹ¤ë¡£ -(iii) ¼Â¸ú¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×) ID ¤ËÊݸ set-user-ID (Êݸ set-group-ID) -¤ÎÃͤòÀßÄꤹ¤ë¡£ +ケーパビリティがない)、 +以下のいずれでもない変更が指定された: +(i) 実効ユーザー (グループ) ID と実ユーザー (グループ) ID を入れ換える。 +(ii) 片方の値を他方に設定する。 +(iii) 実効ユーザー (グループ) ID に保存 set-user-ID (保存 set-group-ID) +の値を設定する。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O POSIX.1-2001, 4.3BSD (the .\"O .BR setreuid () .\"O and @@ -175,21 +175,21 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O function calls first appeared in 4.2BSD). POSIX.1-2001, 4.3BSD .RB ( setreuid () -¤È +と .BR setregid () -´Ø¿ô¥³¡¼¥ë¤Ï 4.2BSD ¤ÇÅо줷¤¿)¡£ +関数コールは 4.2BSD で登場した)。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Setting the effective user (group) ID to the .\"O saved set-user-ID (saved set-group-ID) is .\"O possible since Linux 1.1.37 (1.1.38). -¼Â¸ú¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×) ID ¤òÊݸ¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×) ID ¤Ë -ÀßÄꤹ¤ë¤³¤È¤¬¡¢Linux 1.1.37 (1.1.38) ¤«¤é²Äǽ¤Ë¤Ê¤Ã¤¿¡£ +実効ユーザー (グループ) ID を保存ユーザー (グループ) ID に +設定することが、Linux 1.1.37 (1.1.38) から可能になった。 .\"O POSIX.1 does not specify all of possible ID changes that are permitted .\"O on Linux for an unprivileged process. -POSIX.1 ¤Ç¤Ï¡¢ÈóÆø¢¥×¥í¥»¥¹¤ËÂФ·¤Æ Linux ¾å¤Çǧ¤á¤é¤ì¤Æ¤¤¤ë ID ¤ÎÊѹ¹¤Î -Á´¥Ñ¥¿¡¼¥ó¤òµ¬Äꤷ¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ +POSIX.1 では、非特権プロセスに対して Linux 上で認められている ID の変更の +全パターンを規定しているわけではない。 .\"O For .\"O .BR setreuid (), .\"O the effective user ID can be made the same as the @@ -198,29 +198,29 @@ POSIX.1 .\"O real user ID to the real user ID, the effective user ID, or the .\"O saved set-user-ID. .BR setreuid () -¤Ç¤Ï¡¢¼Â¸ú¥æ¡¼¥¶ ID ¤ò¼Â¥æ¡¼¥¶ ID ¤â¤·¤¯¤ÏÊݸ set-user-ID ¤È -Ʊ¤¸Ãͤˤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤¬¡¢ -ÈóÆø¢¥×¥í¥»¥¹¤¬¼Â¥æ¡¼¥¶ ID ¤ò¼Â¥æ¡¼¥¶ ID¡¢¼Â¸ú¥æ¡¼¥¶ ID¡¢ -Êݸ set-user-ID ¤Î¤É¤ÎÃͤˤâÀßÄê¤Ç¤­¤ë¤«¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +では、実効ユーザ ID を実ユーザ ID もしくは保存 set-user-ID と +同じ値にすることができるが、 +非特権プロセスが実ユーザ ID を実ユーザ ID、実効ユーザ ID、 +保存 set-user-ID のどの値にも設定できるかは規定されていない。 .\"O For .\"O .BR setregid (), .\"O the real group ID can be changed to the value of the saved set-group-ID, .\"O and the effective group ID can be changed to the value of .\"O the real group ID or the saved set-group-ID. .BR setregid () -¤Ç¤Ï¡¢¼Â¥°¥ë¡¼¥× ID ¤òÊݸ set-group-ID ¤ÈƱ¤¸ÃͤËÊѹ¹¤Ç¤­¡¢ -¼Â¸ú¥°¥ë¡¼¥× ID ¤ò¼Â¥°¥ë¡¼¥× ID ¤äÊݸ set-group-ID ¤ÈƱ¤¸ÃͤËÊѹ¹¤Ç¤­¤ë¡£ +では、実グループ ID を保存 set-group-ID と同じ値に変更でき、 +実効グループ ID を実グループ ID や保存 set-group-ID と同じ値に変更できる。 .\"O The precise details of what ID changes are permitted vary .\"O across implementations. -¤É¤Î¤è¤¦¤Ê ID ¤ÎÊѹ¹¤¬Ç§¤á¤é¤ì¤Æ¤¤¤ë¤«¤ÎÀµ³Î¤Ê¾ÜºÙ¤Ï -¼ÂÁõ¤´¤È¤Ë°Û¤Ê¤ë¡£ +どのような ID の変更が認められているかの正確な詳細は +実装ごとに異なる。 .\"O POSIX.1 makes no specification about the effect of these calls .\"O on the saved set-user-ID and saved set-group-ID. -POSIX.1 ¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Êݸ set-user-ID ¤ä -Êݸ set-group-ID ¤ËÍ¿¤¨¤ë±Æ¶Á¤Ë¤Ä¤¤¤Æ¤Ïµ¬Äꤷ¤Æ¤¤¤Ê¤¤¡£ +POSIX.1 では、これらのシステムコールが保存 set-user-ID や +保存 set-group-ID に与える影響については規定していない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getgid (2), .BR getuid (2), .BR seteuid (2), diff --git a/draft/man2/setsid.2 b/draft/man2/setsid.2 index 8a0fbb56..26551022 100644 --- a/draft/man2/setsid.2 +++ b/draft/man2/setsid.2 @@ -35,17 +35,17 @@ .\" Updated & Modified Thu Feb 10 22:45:24 JST 2005 .\" by Yuichi SATO .\" -.\"WORD: session ¥»¥Ã¥·¥ç¥ó -.\"WORD: process group ID ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×ID -.\"WORD: process group leader ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¡¦¥ê¡¼¥À¡¼ +.\"WORD: session セッション +.\"WORD: process group ID プロセス・グループID +.\"WORD: process group leader プロセス・グループ・リーダー .\" .TH SETSID 2 2008-12-03 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O setsid \- creates a session and sets the process group ID -setsid \- ¥»¥Ã¥·¥ç¥ó (session) ¤òºîÀ®¤·¡¢¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× ID ¤òÀßÄꤹ¤ë +setsid \- セッション (session) を作成し、プロセス・グループ ID を設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .ad l .B #include .sp @@ -53,7 +53,7 @@ setsid \- .br .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR setsid () .\"O creates a new session if the calling process is not a .\"O process group leader. @@ -65,54 +65,54 @@ setsid \- .\"O The calling process .\"O will be the only process in this new process group and in this new session. .BR setsid () -¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¡¦¥ê¡¼¥À¡¼ -(process group leader) ¤Ç¤Ê¤±¤ì¤Ð¡¢¿·¤·¤¤¥»¥Ã¥·¥ç¥ó¤òºîÀ®¤¹¤ë¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¿·¤·¤¤¥»¥Ã¥·¥ç¥ó¤Î¥ê¡¼¥À¡¼¡¢¿·¤·¤¤¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Î -¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¡¦¥ê¡¼¥À¡¼¤È¤Ê¤ê¡¢tty ¤ÎÀ©¸æ¤ò»ý¤¿¤Ê¤¤¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× ID ¤È¥»¥Ã¥·¥ç¥ó ID ¤Ë¤Ï¡¢ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î PID ¤¬ÀßÄꤵ¤ì¤ë¡£¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¤³¤Î -¿·¤·¤¤¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¡¢¤³¤Î¿·¤·¤¤¥»¥Ã¥·¥ç¥ó¤ÎÍ£°ì¤Î¥×¥í¥»¥¹¤È¤Ê¤ë¡£ +は呼び出したプロセスがプロセス・グループ・リーダー +(process group leader) でなければ、新しいセッションを作成する。 +呼び出したプロセスは新しいセッションのリーダー、新しいプロセス・グループの +プロセス・グループ・リーダーとなり、tty の制御を持たない。 +呼び出したプロセスのプロセス・グループ ID とセッション ID には、 +呼び出したプロセスの PID が設定される。呼び出したプロセスはこの +新しいプロセス・グループ、この新しいセッションの唯一のプロセスとなる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, the (new) session ID of the calling process is returned. .\"O On error, .\"O .I "(pid_t)\ \-1" .\"O is returned, and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î (¿·¤·¤¤) ¥»¥Ã¥·¥ç¥ó ID ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢ +成功すると、呼び出したプロセスの (新しい) セッション ID が返される。 +エラーの場合は、 .I "(pid_t)\ \-1" -¤¬ÊÖ¤µ¤ì¡¢ +が返され、 .I error -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ +にエラーを示す値が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EPERM .\"O The process group ID of any process equals the PID of the calling process. .\"O Thus, in particular, .\"O .BR setsid () .\"O fails if the calling process is already a process group leader. -¤¤¤º¤ì¤«¤Î¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× ID ¤¬¡¢ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î PID ¤ÈÅù¤·¤¤¡£ -¤³¤ì¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬´û¤Ë¥×¥í¥»¥¹¡¦¥ê¡¼¥À¡¼¤Î¾ì¹ç¤Ë¤Ï +いずれかのプロセスのプロセス・グループ ID が、 +呼び出したプロセスの PID と等しい。 +これは、呼び出したプロセスが既にプロセス・リーダーの場合には .BR setsid () -¤Ï¼ºÇÔ¤¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +は失敗することを意味する。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O A child created via .\"O .BR fork (2) .\"O inherits its parent's session ID. .\"O The session ID is preserved across an .\"O .BR execve (2). .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢¿Æ¥×¥í¥»¥¹¤Î¥»¥Ã¥·¥ç¥ó ID ¤ò·Ñ¾µ¤¹¤ë¡£ +で作成された子プロセスは、親プロセスのセッション ID を継承する。 .BR execve (2) -¤ÎÁ°¸å¤Ç¥»¥Ã¥·¥ç¥ó ID ¤ÏÊݸ¤µ¤ì¤ë¡£ +の前後でセッション ID は保存される。 .\"O A process group leader is a process with process group ID equal .\"O to its PID. @@ -124,18 +124,18 @@ SVr4, POSIX.1-2001. .\"O .BR exit (2), .\"O and have the child do .\"O .BR setsid (). -¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¡¦¥ê¡¼¥À¡¼¤È¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× ID ¤¬ -¤½¤Î PID ¤ËÅù¤·¤¤¥×¥í¥»¥¹¤Ç¤¢¤ë¡£ +プロセス・グループ・リーダーとは、そのプロセスのプロセス・グループ ID が +その PID に等しいプロセスである。 .BR setsid () -¤ò³Î¼Â¤ËÀ®¸ù¤µ¤»¤ë¤¿¤á¤Ë¤Ï¡¢ +を確実に成功させるためには、 .BR fork (2) -¤·¤Æ +して .BR exit (2) -¤·¡¢»Ò¥×¥í¥»¥¹¤Ç +し、子プロセスで .BR setsid () -¤ò¹Ô¤Ê¤¨¤ÐÎɤ¤¡£ +を行なえば良い。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getsid (2), .BR setpgid (2), .BR setpgrp (2), diff --git a/draft/man2/setuid.2 b/draft/man2/setuid.2 index b4ed2faf..6b3a1d8b 100644 --- a/draft/man2/setuid.2 +++ b/draft/man2/setuid.2 @@ -37,36 +37,36 @@ .\" Updated & Modified Wed Jan 5 00:51:28 JST 2005 by Yuichi SATO .\" Updated 2010-04-10, Akihiro MOTOKI , LDP v3.24 .\" -.\"WORD: identity ¼±ÊÌ -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: real user ID ¼Â¥æ¡¼¥¶¡¼ID -.\"WORD: saved user ID Êݸ¥æ¡¼¥¶¡¼ID -.\"WORD: implement ¼ÂÁõ -.\"WORD: root ¥ë¡¼¥È -.\"WORD: super-user ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ +.\"WORD: identity 識別 +.\"WORD: effective user ID 実効ユーザーID +.\"WORD: real user ID 実ユーザーID +.\"WORD: saved user ID 保存ユーザーID +.\"WORD: implement 実装 +.\"WORD: root ルート +.\"WORD: super-user スーパー・ユーザー .\" .TH SETUID 2 2010-02-21 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O setuid \- set user identity -setuid \- ¥æ¡¼¥¶¡¼¼±ÊÌ (identity) ¤òÀßÄꤹ¤ë +setuid \- ユーザー識別 (identity) を設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include .sp .BI "int setuid(uid_t " uid ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR setuid () .\"O sets the effective user ID of the calling process. .\"O If the effective UID of the caller is root, .\"O the real UID and saved set-user-ID are also set. .BR setuid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¸ú (effective) ¥æ¡¼¥¶¡¼ ID ¤òÀßÄꤹ¤ë¡£ -¤â¤·¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú UID ¤¬ root ¤Ê¤é¤Ð¡¢ -¼Â (real) UID ¤ÈÊݸ (saved) set-user-ID ¤âÀßÄꤵ¤ì¤ë¡£ +は呼び出し元のプロセスの実効 (effective) ユーザー ID を設定する。 +もし呼び出し元プロセスの実効 UID が root ならば、 +実 (real) UID と保存 (saved) set-user-ID も設定される。 .PP .\"O Under Linux, .\"O .BR setuid () @@ -76,14 +76,14 @@ setuid \- .\"O This allows a set-user-ID (other than root) program to drop all of its user .\"O privileges, do some un-privileged work, and then reengage the original .\"O effective user ID in a secure manner. -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR setuid () -¤Ï +は .B _POSIX_SAVED_IDS -¤ò¤â¤Ã¤¿ POSIX ÈǤΤ褦¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï (¥ë¡¼¥È°Ê³°¤Î) set-user-ID ¥×¥í¥°¥é¥à¤Ë¤½¤Î¥æ¡¼¥¶¡¼¤ÎÆø¢¤ò -Á´¤ÆÍ¿¤¨¡¢Æø¢¤ÎɬÍפʤ¤»Å»ö¤ò¤·¡¢ËÜÍè¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤Ë -°ÂÁ´¤ÊÊýË¡¤ÇºÆ¤ÓÌ᤹¤³¤È¤òµö¤¹¡£ +をもった POSIX 版のように実装されている。 +これは (ルート以外の) set-user-ID プログラムにそのユーザーの特権を +全て与え、特権の必要ない仕事をし、本来の実効ユーザー ID に +安全な方法で再び戻すことを許す。 .PP .\"O If the user is root or the program is set-user-ID root, special care must be .\"O taken. @@ -94,15 +94,15 @@ Linux .\"O .IR uid . .\"O After this has occurred, it is impossible for the program to regain root .\"O privileges. -¥æ¡¼¥¶¡¼¤¬ root ¤Þ¤¿¤Ï¥×¥í¥°¥é¥à¤¬ root ¤Ë set-user-ID ¤µ¤ì¤Æ¤¤¤ë¤Ê¤é¤Ð¡¢ -ÆÃÊ̤ÎÃí°Õ¤¬Ê§¤ï¤ì¤ë¡£ +ユーザーが root またはプログラムが root に set-user-ID されているならば、 +特別の注意が払われる。 .BR setuid () -´Ø¿ô¤Ï¸Æ¤Ó½Ð¤·¼Ô¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤ò¥Á¥§¥Ã¥¯¤·¡¢ -¤½¤ì¤¬¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼¤Ê¤é¤Ð¡¢ -¥×¥í¥»¥¹¤Ë´ØÏ¢¤¹¤ëÁ´¤Æ¤Î¥æ¡¼¥¶¡¼ ID ¤Ë +関数は呼び出し者の実効ユーザー ID をチェックし、 +それがスーパー・ユーザーならば、 +プロセスに関連する全てのユーザー ID に .I uid -¤òÀßÄꤹ¤ë¡£ -¤³¤ì¤¬¹Ô¤Ê¤ï¤ì¤¿¸å¤Ë¤Ï¥×¥í¥°¥é¥à¤¬ºÆ¤Ó¥ë¡¼¥È¤ÎÆø¢¤òÆÀ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +を設定する。 +これが行なわれた後にはプログラムが再びルートの特権を得ることはできない。 .PP .\"O Thus, a set-user-ID-root program wishing to temporarily drop root .\"O privileges, assume the identity of an unprivileged user, and then regain @@ -110,24 +110,24 @@ Linux .\"O .BR setuid (). .\"O You can accomplish this with .\"O .BR seteuid (2). -¤·¤¿¤¬¤Ã¤Æ¡¢set-user-ID-root ¥×¥í¥°¥é¥à¤Ç¡¢°ì»þŪ¤Ë¥ë¡¼¥ÈÆø¢¤ò²ò½ü¤·¡¢ -ÈóÆø¢¥æ¡¼¥¶¤Ç¤¢¤ë¤«¤Î¤è¤¦¤Ë¿¶Éñ¤¤¡¢¸å¤Ç¥ë¡¼¥È¸¢¸Â¤ò¤â¤¦°ìÅÙÆÀ¤è¤¦¤È -¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢ +したがって、set-user-ID-root プログラムで、一時的にルート特権を解除し、 +非特権ユーザであるかのように振舞い、後でルート権限をもう一度得ようと +する場合には、 .BR setuid () -¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£¤½¤Î¾ì¹ç¤Ë¤Ï¡¢ +を使うことができない。その場合には、 .BR seteuid (2) -¤ò»È¤¦É¬Íפ¬¤¢¤ë¡£ +を使う必要がある。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合は 0 が返される。エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EAGAIN .\"O The @@ -138,11 +138,11 @@ Linux .\"O .B RLIMIT_NPROC .\"O resource limit. .I uid -¤¬¸½ºß¤Î¥æ¡¼¥¶¡¼ ID ¤È¥Þ¥Ã¥Á¤»¤º¡¢¤³¤Î +が現在のユーザー ID とマッチせず、この .I uid -¤Ë¤è¤Ã¤Æ¥×¥í¥»¥¹¤¬¥ê¥½¡¼¥¹¾å¸Â +によってプロセスがリソース上限 .B RLIMIT_NPROC -¤òĶ¤¨¤¿¡£ +を超えた。 .TP .B EPERM .\"O The user is not privileged (Linux: does not have the @@ -150,26 +150,26 @@ Linux .\"O capability) and .\"O .I uid .\"O does not match the real UID or saved set-user-ID of the calling process. -¥æ¡¼¥¶¡¼¤¬Æø¢¤ò»ý¤¿¤º -(Linux ¤Ç¤Ï +ユーザーが特権を持たず +(Linux では .B CAP_SETUID -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤¿¤º)¡¢ +ケーパビリティ (capability) を持たず)、 .I uid -¤¬¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â UID ¤Þ¤¿¤ÏÊݸ set-user-ID ¤È°ìÃפ·¤Ê¤¤¡£ +が呼び出し元プロセスの実 UID または保存 set-user-ID と一致しない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O SVr4, POSIX.1-2001. .\"O Not quite compatible with the 4.4BSD call, which .\"O sets all of the real, saved, and effective user IDs. .\"O .\" SVr4 documents an additional EINVAL error condition. SVr4, POSIX.1-2001. -4.4BSD ¤Î¥³¡¼¥ë¤È¤Ï´°Á´¤Ê¸ß´¹À­¤Ï¤Ê¤¤¡¢ -BSD ¤Î¥³¡¼¥ë¤Ï¼Â (real)¡¢Êݸ (saved)¡¢¼Â¸ú (effective) ID ¤ÎÁ´¤Æ¤òÀßÄꤹ¤ë¡£ -.\" SVr4 ¤Ë¤Ï¾¤Ë EINVAL ¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ +4.4BSD のコールとは完全な互換性はない、 +BSD のコールは実 (real)、保存 (saved)、実効 (effective) ID の全てを設定する。 +.\" SVr4 には他に EINVAL エラーについての記述がある。 .\"O .SH NOTES .\"O .SS Linux Notes -.SH Ãí°Õ -.SS Linux ¤Ç¤ÎÃí°Õ +.SH 注意 +.SS Linux での注意 .\"O Linux has the concept of file system user ID, normally equal to the .\"O effective user ID. .\"O The @@ -177,22 +177,22 @@ BSD .\"O call also sets the file system user ID of the calling process. .\"O See .\"O .BR setfsuid (2). -Linux ¤Ï¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¡¦¥æ¡¼¥¶¡¼ ID ¤Î³µÇ°¤ò»ý¤Ä¡£ -Ä̾¤³¤ì¤Ï¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤ËÅù¤·¤¤¡£ +Linux はファイル・システム・ユーザー ID の概念を持つ。 +通常、これは実効ユーザー ID に等しい。 .BR setuid () -¥³¡¼¥ë¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¡¦¥æ¡¼¥¶¡¼ ID ¤âÀßÄꤹ¤ë¡£ +コールは呼び出し元のプロセスのファイル・システム・ユーザー ID も設定する。 .BR setfsuid (2) -¤â»²¾È¤¹¤ë¤³¤È¡£ +も参照すること。 .PP .\"O If .\"O .I uid .\"O is different from the old effective uid, the process will .\"O be forbidden from leaving core dumps. .I uid -¤¬ÀΤμ¸ú uid ¤È°Û¤Ã¤Æ¤¤¤¿¾ì¹ç¡¢¥×¥í¥»¥¹¤Ï¥³¥¢¡¦¥À¥ó¥×¤¹¤ë¤³¤È¤ò -¶Ø»ß¤µ¤ì¤ë¡£ +が昔の実効 uid と異っていた場合、プロセスはコア・ダンプすることを +禁止される。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getuid (2), .BR seteuid (2), .BR setfsuid (2), diff --git a/draft/man2/setup.2 b/draft/man2/setup.2 index 1acfe342..8bb3f54a 100644 --- a/draft/man2/setup.2 +++ b/draft/man2/setup.2 @@ -40,83 +40,83 @@ .\" Updated Thu Mar 16 09:32:28 2000 .\" by Kentaro Shirakata .\" -.\"WORD: file systems ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -.\"WORD: root file system ¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -.\"WORD: superuser ¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼ -.\"WORD: user process ¥æ¡¼¥¶¡¼¥×¥í¥»¥¹ +.\"WORD: file systems ファイルシステム +.\"WORD: root file system ルートファイルシステム +.\"WORD: superuser スーパーユーザー +.\"WORD: user process ユーザープロセス .\" .TH SETUP 2 2008-12-03 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O setup \- setup devices and file systems, mount root file system -setup \- ¥Ç¥Ð¥¤¥¹¤È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î½é´ü²½¤ò¹Ô¤¤¡¢ -¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Þ¥¦¥ó¥È¤ò¹Ô¤¦ +setup \- デバイスとファイルシステムの初期化を行い、 +ルートファイルシステムのマウントを行う .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .B int setup(void); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR setup () .\"O is called once from within .\"O .IR linux/init/main.c . .\"O It calls initialization functions for devices and file systems .\"O configured into the kernel and then mounts the root file system. .BR setup () -¤Ï +は .I linux/init/main.c -¤ÎÃæ¤Ç°ìÅÙ¤À¤±¸Æ¤Ð¤ì¤ë¡£ -¥«¡¼¥Í¥ëÆâÉô¤Î¥Ç¥Ð¥¤¥¹¤È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î½é´ü²½´Ø¿ô¤ò¸Æ¤Ó¡¢ -¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Þ¥¦¥ó¥È¤ò¹Ô¤¦¡£ +の中で一度だけ呼ばれる。 +カーネル内部のデバイスとファイルシステムの初期化関数を呼び、 +ルートファイルシステムのマウントを行う。 .PP .\"O No user process may call .\"O .BR setup (). .\"O Any user process, even a process with superuser permission, .\"O will receive .\"O .BR EPERM . -¥æ¡¼¥¶¡¼¥×¥í¥»¥¹¤«¤é¤Ï +ユーザープロセスからは .BR setup () -¤ò¸Æ¤Ó¤À¤¹¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -¥æ¡¼¥¶¡¼¥×¥í¥»¥¹¤«¤é¤Î¥¢¥¯¥»¥¹¤Ï¡¢¤¿¤È¤¨¤½¤Î¥×¥í¥»¥¹¤¬ -¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Æ¤â +を呼びだすことはできない。 +ユーザープロセスからのアクセスは、たとえそのプロセスが +スーパーユーザー権限を持っていても .B EPERM -¤ò¼õ¤±¼è¤ë¤³¤È¤Ë¤Ê¤ë¡£ +を受け取ることになる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR setup () .\"O always returns \-1 for a user process. .BR setup () -¤Ï¥æ¡¼¥¶¡¼¥×¥í¥»¥¹¤ËÂФ·¤Æ¾ï¤Ë \-1 ¤òÊÖ¤¹¡£ +はユーザープロセスに対して常に \-1 を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EPERM .\"O Always, for a user process. -¥æ¡¼¥¶¥×¥í¥»¥¹¤ËÂФ·¤Æ¤Ï¡¢¾ï¤Ë¤³¤Î¥¨¥é¡¼¤È¤Ê¤ë¡£ +ユーザプロセスに対しては、常にこのエラーとなる。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O Since Linux 2.1.121, no such function exists anymore. -Linux 2.1.121 °Ê¹ß¤Ç¤Ï¡¢¤â¤Ï¤ä¤³¤Î´Ø¿ô¤Ï¸ºß¤·¤Ê¤¤¡£ +Linux 2.1.121 以降では、もはやこの関数は存在しない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This function is Linux-specific, and should not be used in programs .\"O intended to be portable, or indeed in any programs at all. -¤³¤Î´Ø¿ô¤Ï Linux ¤ËÆÃÍ­¤Î¤â¤Î¤Ç¤¢¤ê¡¢°Ü¿¢¤ò¹Íθ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï -ÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£¤½¤ì¤É¤³¤í¤«¡¢¤¢¤é¤æ¤ë¥×¥í¥°¥é¥à¤ÇÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +この関数は Linux に特有のものであり、移植を考慮したプログラムでは +用いるべきではない。それどころか、あらゆるプログラムで用いるべきではない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The calling sequence varied: at some times .\"O .I setup () .\"O has had a single argument .\"O .I "void *BIOS" .\"O and at other times a single argument .\"O .IR "int magic" . -¸Æ¤Ó½Ð¤·¼ê³¤­¤ÏÊѲ½¤·¤Æ¤­¤¿¡£ -¤¢¤ë»þ¤Ï +呼び出し手続きは変化してきた。 +ある時は .I setup () -¤Ï°ì¤Ä¤Î°ú¿ô +は一つの引数 .I "void *BIOS" -¤ò¼è¤Ã¤Æ¤ª¤ê¡¢¤Þ¤¿¤¢¤ë»þ¤Ë¤Ï +を取っており、またある時には .IR "int magic" -¤ò°ì¤Ä¤Î°ú¿ô¤È¤·¤Æ¼è¤Ã¤Æ¤¤¤¿¡£ +を一つの引数として取っていた。 diff --git a/draft/man2/setxattr.2 b/draft/man2/setxattr.2 index 84a43cef..56e28393 100644 --- a/draft/man2/setxattr.2 +++ b/draft/man2/setxattr.2 @@ -29,16 +29,16 @@ .\" Translated Tue Jul 8 04:43:40 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: extended attributes ³Èĥ°À­ -.\"WORD: namespace ̾Á°¶õ´Ö +.\"WORD: extended attributes 拡張属性 +.\"WORD: namespace 名前空間 .\" .TH SETXATTR 2 2001-12-31 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O setxattr, lsetxattr, fsetxattr \- set an extended attribute value -.SH ̾Á° -setxattr, lsetxattr, fsetxattr \- ³Èĥ°À­¤ÎÃͤòÀßÄꤹ¤ë +.SH 名前 +setxattr, lsetxattr, fsetxattr \- 拡張属性の値を設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .fam C .nf .B #include @@ -53,7 +53,7 @@ setxattr, lsetxattr, fsetxattr \- .fi .fam T .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Extended attributes are .\"O .IR name :\c .\"O .I value @@ -64,17 +64,17 @@ setxattr, lsetxattr, fsetxattr \- .\"O data). .\"O A complete overview of extended attributes concepts can be found in .\"O .BR attr (5). -³Èĥ°À­¤Ï¡¢inode (¥Õ¥¡¥¤¥ë¡¢¥Ç¥£¥ì¥¯¥È¥ê¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯Åù) ¤Ë -´ØÏ¢ÉÕ¤±¤é¤ì¤¿ +拡張属性は、inode (ファイル、ディレクトリ、シンボリックリンク等) に +関連付けられた .IR name :\c .I value -¤ÎÂФǤ¢¤ë¡£ -¤³¤ì¤é¤Ï¡¢¥·¥¹¥Æ¥à¾å¤Î¤¹¤Ù¤Æ¤Î inode ¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿Ä̾ï¤Î°À­ +の対である。 +これらは、システム上のすべての inode に関連付けられた通常の属性 .RB ( stat (2) -¤¬ÊÖ¤¹¥Ç¡¼¥¿) ¤ò³ÈÄ¥¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -³Èĥ°À­¤Î¥³¥ó¥»¥×¥È¤Ï +が返すデータ) を拡張するものである。 +拡張属性のコンセプトは .BR attr (5) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ +に書かれている。 .PP .\"O .BR setxattr () .\"O sets the @@ -90,17 +90,17 @@ setxattr, lsetxattr, fsetxattr \- .\"O .I value .\"O must be specified. .BR setxattr () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÆâ¤Î»ØÄꤵ¤ì¤¿ +は、ファイルシステム内の指定された .I path -¤ËÂбþ¤¹¤ë¡¢Ì¾Á° +に対応する、名前 .I name -¤Î³Èĥ°À­¤ÎÃÍ +の拡張属性の値 .I value -¤òÀßÄꤹ¤ë¡£ +を設定する。 .I value -¤Î +の .I size -¤Ïɬ¤º»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は必ず指定しなければならない。 .PP .\"O .BR lsetxattr () .\"O is identical to @@ -108,10 +108,10 @@ setxattr, lsetxattr, fsetxattr \- .\"O except in the case of a symbolic link, where the extended attribute is .\"O set on the link itself, not the file that it refers to. .BR lsetxattr () -¤Ï +は .BR setxattr () -¤ÈƱ¤¸¤À¤¬¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¤Ë¡¢¥ê¥ó¥¯¤¬»²¾È¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë -¤Ç¤Ï¤Ê¤¯¡¢¥ê¥ó¥¯¤½¤Î¤â¤Î¤Î³Èĥ°À­¤òÀßÄꤹ¤ëÅÀ¤À¤±¤¬°Û¤Ê¤ë¡£ +と同じだが、シンボリックリンクの場合に、リンクが参照しているファイル +ではなく、リンクそのものの拡張属性を設定する点だけが異なる。 .PP .\"O .BR fsetxattr () .\"O is identical to @@ -123,17 +123,17 @@ setxattr, lsetxattr, fsetxattr \- .\"O in place of .\"O .IR path . .BR fsetxattr () -¤Ï +は .BR setxattr () -¤ÈƱ¤¸¤À¤¬¡¢ +と同じだが、 .I path -¤ÎÂå¤ï¤ê¤Ë +の代わりに .I fd -¤Ç»²¾È¤µ¤ì¤¿¥ª¡¼¥×¥óºÑ¤ß¥Õ¥¡¥¤¥ë¤Î¾ðÊó¤À¤±¤òÀßÄꤹ¤ëÅÀ¤¬°Û¤Ê¤ë +で参照されたオープン済みファイルの情報だけを設定する点が異なる .RI ( filedes -¤Ï +は .BR open (2) -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë)¡£ +によって返される)。 .PP .\"O An extended attribute name is a simple null-terminated string. .\"O The @@ -144,48 +144,48 @@ setxattr, lsetxattr, fsetxattr \- .\"O .I value .\"O of an extended attribute is a chunk of arbitrary textual or .\"O binary data of specified length. -³Èĥ°À­¤Î̾Á° -¤ÏÉáÄ̤ΠNULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ç¤¢¤ë¡£ +拡張属性の名前 +は普通の NULL 終端された文字列である。 .I name -¤Ë¤Ï¡¢Ì¾Á°¶õ´Ö¤òɽ¤¹ÀÜƬ¼­ (prefix) ¤¬´Þ¤Þ¤ì¤ë¡£ -¸Ä¡¹¤Î inode ¤ËÂФ·¤Æ¡¢¸ß¤¤¤ËÆÈΩ¤Ê̾Á°¶õ´Ö¤¬Ê£¿ô¤¢¤Ã¤Æ¤â¤è¤¤¡£ -³Èĥ°À­¤ÎÃÍ +には、名前空間を表す接頭辞 (prefix) が含まれる。 +個々の inode に対して、互いに独立な名前空間が複数あってもよい。 +拡張属性の値 .I value -¤Ï¡¢¤¢¤ë°ìÄê¤ÎŤµ¤ÎǤ°Õ¤Î¥Æ¥­¥¹¥È¡¦¥Ç¡¼¥¿¤Þ¤¿¤Ï -¥Ð¥¤¥Ê¥ê¡¦¥Ç¡¼¥¿¤Î½¸¹ç¤Ç¤¢¤ë¡£ +は、ある一定の長さの任意のテキスト・データまたは +バイナリ・データの集合である。 .PP .\"O The .\"O .I flags .\"O argument can be used to refine the semantics of the operation. -Áàºî¤Î°ÕÌ£¤òÌÀ³Î¤Ë¤¹¤ë¤¿¤á¤Ë +操作の意味を明確にするために .I flags -°ú¤­¿ô¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +引き数を使用することができる。 .\"O .B XATTR_CREATE .\"O specifies a pure create, which fails if the named .\"O attribute exists already. .B XATTR_CREATE -¤Ï°À­¤ÎºîÀ®¤À¤±¤ò¹Ô¤¦¤³¤È¤ò»ØÄꤹ¤ë¡£ -»ØÄꤵ¤ì¤¿Ì¾Á°¤Î°À­¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¾ì¹ç¤Ï¼ºÇÔ¤¹¤ë¡£ +は属性の作成だけを行うことを指定する。 +指定された名前の属性がすでに存在する場合は失敗する。 .\"O .B XATTR_REPLACE .\"O specifies a pure replace operation, which fails if the .\"O named attribute does not already exist. .B XATTR_REPLACE -¤Ï°À­¤ÎÃÖ´¹¤À¤±¤ò¹Ô¤¦¤³¤È¤ò»ØÄꤹ¤ë¡£ -»ØÄꤵ¤ì¤¿Ì¾Á°¤Î°À­¤¬¤Þ¤À¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¼ºÇÔ¤¹¤ë¡£ +は属性の置換だけを行うことを指定する。 +指定された名前の属性がまだ存在しない場合は失敗する。 .\"O By default (no flags), the extended attribute will be created if .\"O need be, or will simply replace the value if the attribute exists. -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï (¥Õ¥é¥°¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç)¡¢³Èĥ°À­¤ÏɬÍפʾì¹ç¤ÏºîÀ®¤µ¤ì¡¢ -°À­¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¾ì¹ç¤Ï°À­ÃͤÎÃÖ´¹¤ò¹Ô¤¦¡£ +デフォルトでは (フラグを指定しない場合)、拡張属性は必要な場合は作成され、 +属性がすでに存在する場合は属性値の置換を行う。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On failure, \-1 is returned and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢ 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢ \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合、 0 が返される。 +失敗した場合、 \-1 が返され、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +に適切な値がセットされる。 .PP .\"O If .\"O .B XATTR_CREATE @@ -194,11 +194,11 @@ setxattr, lsetxattr, fsetxattr \- .\"O is set to .\"O .BR EEXIST . .B XATTR_CREATE -¤¬»ØÄꤵ¤ì¡¢¤«¤Ä°À­¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢ +が指定され、かつ属性がすでに存在する場合、 .I errno -¤Ë +に .B EEXIST -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .\"O If .\"O .B XATTR_REPLACE .\"O is specified, and the attribute does not exist, @@ -206,11 +206,11 @@ setxattr, lsetxattr, fsetxattr \- .\"O is set to .\"O .BR ENOATTR . .B XATTR_REPLACE -¤¬»ØÄꤵ¤ì¡¢Â°À­¤¬¤Þ¤À¸ºß¤·¤Ê¤¤¾ì¹ç¡¢ +が指定され、属性がまだ存在しない場合、 .I errno -¤Ë +に .B ENOATTR -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .PP .\"O If there is insufficient space remaining to store the extended attribute, .\"O .I errno @@ -219,43 +219,43 @@ setxattr, lsetxattr, fsetxattr \- .\"O or .\"O .B EDQUOT .\"O if quota enforcement was the cause. -³Èĥ°À­¤òµ­²±¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¥¹¥Ú¡¼¥¹¤¬»Ä¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +拡張属性を記憶するのに十分なスペースが残っていない場合、 .I errno -¤Ë +に .B ENOSPC -¤Þ¤¿¤Ï +または .B EDQUOT -(quota ¤Ë¤è¤ëÀ©¸Â¤¬¸¶°ø¤Î¾ì¹ç) ¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +(quota による制限が原因の場合) がセットされる。 .PP .\"O If extended attributes are not supported by the file system, or are disabled, .\"O .I errno .\"O is set to .\"O .BR ENOTSUP . -³Èĥ°À­¤¬¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -¤â¤·¤¯¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ +拡張属性がそのファイルシステムでサポートされていない場合、 +もしくは無効になっている場合、 .I errno -¤Ë +に .B ENOTSUP -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .PP .\"O The errors documented for the .\"O .BR stat (2) .\"O system call are also applicable here. .BR stat (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÀâÌÀ¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ï -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤âŬÍѤµ¤ì¤ë¡£ +システムコールの説明に書かれているエラーは +これらのシステムコールにも適用される。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These system calls have been available on Linux since kernel 2.4; .\"O glibc support is provided since version 2.3. -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë 2.4 °Ê¹ß¤Î Linux ¤ÇÍøÍѤǤ­¤ë¡£ -glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.3 °Ê¹ß¤Ç¹Ô¤ï¤ì¤Æ¤¤¤ë¡£ +これらのシステムコールはカーネル 2.4 以降の Linux で利用できる。 +glibc でのサポートはバージョン 2.3 以降で行われている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These system calls are Linux-specific. -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ +これらのシステムコールは Linux 独自である。 .\"O .\" .SH AUTHORS -.\" .SH Ãø¼Ô +.\" .SH 著者 .\"O .\" Andreas Gruenbacher, .\"O .\" .RI < a.gruenbacher@computer.org > .\"O .\" and the SGI XFS development team, @@ -263,11 +263,11 @@ glibc .\"O .\" Please send any bug reports or comments to these addresses. .\" Andreas Gruenbacher, .\" .RI < a.gruenbacher@computer.org > -.\" ¤È SGI XFS ³«È¯¥Á¡¼¥à, -.\" .RI < linux-xfs@oss.sgi.com >¡£ -.\" ¥Ð¥°¥ì¥Ý¡¼¥È¤ä¥³¥á¥ó¥È¤Ï¾åµ­¤Î¥¢¥É¥ì¥¹¤Þ¤ÇÁ÷¤Ã¤Æ²¼¤µ¤¤¡£ +.\" と SGI XFS 開発チーム, +.\" .RI < linux-xfs@oss.sgi.com >。 +.\" バグレポートやコメントは上記のアドレスまで送って下さい。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getfattr (1), .BR setfattr (1), .BR getxattr (2), diff --git a/draft/man2/sgetmask.2 b/draft/man2/sgetmask.2 index f87e21c6..3cb6df9d 100644 --- a/draft/man2/sgetmask.2 +++ b/draft/man2/sgetmask.2 @@ -27,40 +27,40 @@ .\" .TH SGETMASK 2 2007-07-05 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sgetmask, ssetmask \- manipulation of signal mask (obsolete) -sgetmask, ssetmask \- ¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ÎÁàºî (ÇÑ»ßͽÄê) +sgetmask, ssetmask \- シグナルマスクの操作 (廃止予定) .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B "long sgetmask(void);" .sp .BI "long ssetmask(long " newmask ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These system calls are obsolete. .\"O .IR "Do not use them" ; .\"O use .\"O .BR sigprocmask (2) .\"O instead. -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ê¡¢ -¡Ö»ÈÍѤ·¤Ê¤¤¤³¤È¡×¡£ -Âå¤ï¤ê¤Ë +これらのシステムコールは廃止予定であり、 +「使用しないこと」。 +代わりに .BR sigprocmask (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +を使用すること。 .\"O .BR sgetmask () .\"O returns the signal mask of the calling process. .BR sgetmask () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊÖ¤¹¡£ +は、呼び出し元プロセスのシグナルマスクを返す。 .\"O .BR ssetmask () .\"O sets the signal mask of the calling process to the value given in .\"O .IR newmask . .\"O The previous signal mask is returned. .BR ssetmask () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ò +は、呼び出し元プロセスのシグナルマスクを .I newmask -¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤷ¡¢Êѹ¹Á°¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊÖ¤¹¡£ +で指定された値に設定し、変更前のシグナルマスクを返す。 .\"O The signal masks dealt with by these two system calls .\"O are plain bit masks (unlike the @@ -70,55 +70,55 @@ sgetmask, ssetmask \- .\"O use .\"O .BR sigmask (3) .\"O to create and inspect these masks. -¤³¤ì¤éÆó¤Ä¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬°·¤¦¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ï¡¢ -ñ½ã¤Ê¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ë (¤³¤ÎÅÀ¤¬ +これら二つのシステムコールが扱うシグナルマスクは、 +単純なビットマスクである (この点が .BR sigprocmask (2) -¤Ç»ÈÍѤµ¤ì¤ë +で使用される .I sigset_t -¤È°Û¤Ê¤ë)¡£ -¤³¤ì¤é¤Î¥Þ¥¹¥¯¤òºîÀ®¤·¤¿¤ê¸¡ºº¤¹¤ë¤Ë¤Ï +と異なる)。 +これらのマスクを作成したり検査するには .BR sigmask (3) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +を使用すること。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR sgetmask () .\"O always successfully returns the signal mask. .\"O .BR ssetmask () .\"O always succeeds, and returns the previous signal mask. .BR sgetmask () -¤Ï¾ï¤ËÀ®¸ù¤·¡¢¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊÖ¤¹¡£ +は常に成功し、シグナルマスクを返す。 .BR ssetmask () -¤Ï¾ï¤ËÀ®¸ù¤·¡¢Ä¾Á°¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊÖ¤¹¡£ +は常に成功し、直前のシグナルマスクを返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O These system calls always succeed. -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¾ï¤ËÀ®¸ù¤¹¤ë¡£ +これらのシステムコールは常に成功する。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O These system calls are Linux-specific. -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ +これらのシステムコールは Linux 固有である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Glibc does not provide wrappers for these system calls; use .\"O .BR syscall (2). -glibc ¤Ï¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +glibc はこれらのシステムコールに対するラッパー関数を提供していない。 .BR syscall (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +を使用すること。 .\"O These system calls are unaware of signal numbers greater than 31 .\"O (i.e., real-time signals). -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ -31 ¤è¤êÂ礭¤¤¥·¥°¥Ê¥ëÈÖ¹æ (¤Ä¤Þ¤ê¡¢¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë) ¤ò°·¤¨¤Ê¤¤¡£ +これらのシステムコールは、 +31 より大きいシグナル番号 (つまり、リアルタイムシグナル) を扱えない。 .\"O It is not possible to block .\"O .B SIGSTOP .\"O or .\"O .BR SIGKILL . .B SIGSTOP -¤ä +や .B SIGKILL -¤ò¥Ö¥í¥Ã¥¯¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +をブロックすることはできない。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sigprocmask (2), .BR signal (7) diff --git a/draft/man2/shmctl.2 b/draft/man2/shmctl.2 index 97640d8a..5e0ff3c1 100644 --- a/draft/man2/shmctl.2 +++ b/draft/man2/shmctl.2 @@ -49,26 +49,26 @@ .\" Updated & Modified 2005-10-08, Akihiro MOTOKI .\" Updated 2006-07-21, Akihiro MOTOKI, LDP v2.36 .\" -.\"WORD: shared memory ¶¦Í­¥á¥â¥ê -.\"WORD: segment ¥»¥°¥á¥ó¥È -.\"WORD: owner ½êÍ­¼Ô -.\"WORD: group ¥°¥ë¡¼¥× -.\"WORD: creator ºîÀ®¼Ô -.\"WORD: super-user ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ -.\"WORD: detach ʬΥ -.\"WORD: attach Éղà -.\"WORD: swap ¥¹¥ï¥Ã¥× -.\"WORD: identifier ¼±ÊÌ»Ò -.\"WORD: member ¥á¥ó¥Ð¡¼ -.\"WORD: feature test macro µ¡Ç½¸¡ºº¥Þ¥¯¥í +.\"WORD: shared memory 共有メモリ +.\"WORD: segment セグメント +.\"WORD: owner 所有者 +.\"WORD: group グループ +.\"WORD: creator 作成者 +.\"WORD: super-user スーパー・ユーザー +.\"WORD: detach 分離 +.\"WORD: attach 付加 +.\"WORD: swap スワップ +.\"WORD: identifier 識別子 +.\"WORD: member メンバー +.\"WORD: feature test macro 機能検査マクロ .\" .TH SHMCTL 2 2008-08-07 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O shmctl \- shared memory control -shmctl \- ¶¦Í­¥á¥â¥ê (shared memory) ¤òÀ©¸æ¤¹¤ë +shmctl \- 共有メモリ (shared memory) を制御する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .ad l .B #include .br @@ -77,46 +77,46 @@ shmctl \- .BI "int shmctl(int " shmid ", int " cmd ", struct shmid_ds *" buf ); .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR shmctl () .\"O performs the control operation specified by .\"O .I cmd .\"O on the shared memory segment whose identifier is given in .\"O .IR shmid . .BR shmctl () -¤Ï¡¢¼±Ê̻Ҥ¬ +は、識別子が .I shmid -¤Î¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ËÂФ·¤Æ +の共有メモリ・セグメントに対して .I cmd -¤Ç»Ø¼¨¤·¤¿À©¸æÌ¿Îá¤ò¼Â¹Ô¤¹¤ë¡£ +で指示した制御命令を実行する。 .PP .\"O The .\"O .I buf .\"O argument is a pointer to a \fIshmid_ds\fP structure, .\"O defined in \fI\fP as follows: .I buf -°ú¤­¿ô¤Ï¡¢ \fIshmid_ds\fP ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤³¤Î¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë +引き数は、 \fIshmid_ds\fP 構造体へのポインタである。 +この構造体は \fI\fP で以下のように定義されている .PP .in +4n .nf struct shmid_ds { .\"O struct ipc_perm shm_perm; /* Ownership and permissions */ - struct ipc_perm shm_perm; /* ½êÍ­¸¢¤Èµö²Ä */ + struct ipc_perm shm_perm; /* 所有権と許可 */ .\"O size_t shm_segsz; /* Size of segment (bytes) */ - size_t shm_segsz; /* ¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º (¥Ð¥¤¥È) */ + size_t shm_segsz; /* セグメントのサイズ (バイト) */ .\"O time_t shm_atime; /* Last attach time */ - time_t shm_atime; /* ºÇ¸å¤ÎÉղà (attach) ¤Î»þ¹ï */ + time_t shm_atime; /* 最後の付加 (attach) の時刻 */ .\"O time_t shm_dtime; /* Last detach time */ - time_t shm_dtime; /* ºÇ¸å¤ÎʬΥ (detach) ¤Î»þ¹ï */ + time_t shm_dtime; /* 最後の分離 (detach) の時刻 */ .\"O time_t shm_ctime; /* Last change time */ - time_t shm_ctime; /* ºÇ¸å¤ËÊѹ¹¤¬¹Ô¤ï¤ì¤¿»þ¹ï */ + time_t shm_ctime; /* 最後に変更が行われた時刻 */ .\"O pid_t shm_cpid; /* PID of creator */ - pid_t shm_cpid; /* ºîÀ®¼Ô (creator) ¤Î PID */ + pid_t shm_cpid; /* 作成者 (creator) の PID */ .\"O pid_t shm_lpid; /* PID of last shmat(2)/shmdt(2) */ - pid_t shm_lpid; /* ºÇ¸å¤Î shmat(2)/shmdt(2) ¤Î PID */ + pid_t shm_lpid; /* 最後の shmat(2)/shmdt(2) の PID */ .\"O shmatt_t shm_nattch; /* No. of current attaches */ - shmatt_t shm_nattch; /* ¸½ºßÉղ䵤ì¤Æ¤¤¤ë¿ô */ + shmatt_t shm_nattch; /* 現在付加されている数 */ ... }; .fi @@ -128,10 +128,10 @@ struct shmid_ds { .\"O (the highlighted fields are settable using .\"O .BR IPC_SET ): .I ipc_perm -¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë -(¶¯Ä´¤µ¤ì¤¿¥Õ¥£¡¼¥ë¥É¤Ï +構造体は \fI\fP で以下のように定義されている +(強調されたフィールドは .B IPC_SET -¤ò»È¤Ã¤ÆÀßÄê²Äǽ¤Ç¤¢¤ë): +を使って設定可能である): .PP .in +4n .nf @@ -144,14 +144,14 @@ struct ipc_perm { .\"O unsigned short \fBmode\fP; /* \fBPermissions\fP + SHM_DEST and .\"O SHM_LOCKED flags */ .\"O unsigned short __seq; /* Sequence number */ - key_t __key; /* shmget(2) ¤ËÍ¿¤¨¤é¤ì¤ë¥­¡¼ */ - uid_t \fBuid\fP; /* ½êÍ­¼Ô¤Î¼Â¸ú UID */ - gid_t \fBgid\fP; /* ½êÍ­¼Ô¤Î¼Â¸ú GID */ - uid_t cuid; /* ºîÀ®¼Ô¤Î¼Â¸ú UID */ - gid_t cgid; /* ºîÀ®¼Ô¤Î¼Â¸ú GID */ - unsigned short \fBmode\fP; /* \fBµö²Ä\fP + SHM_DEST ¤È - SHM_LOCKED ¥Õ¥é¥° */ - unsigned short __seq; /* ¥·¡¼¥±¥ó¥¹ÈÖ¹æ */ + key_t __key; /* shmget(2) に与えられるキー */ + uid_t \fBuid\fP; /* 所有者の実効 UID */ + gid_t \fBgid\fP; /* 所有者の実効 GID */ + uid_t cuid; /* 作成者の実効 UID */ + gid_t cgid; /* 作成者の実効 GID */ + unsigned short \fBmode\fP; /* \fB許可\fP + SHM_DEST と + SHM_LOCKED フラグ */ + unsigned short __seq; /* シーケンス番号 */ }; .fi .in @@ -160,7 +160,7 @@ struct ipc_perm { .\"O .I cmd .\"O are: .I cmd -¤È¤·¤ÆÍ­¸ú¤ÊÃͤϰʲ¼¤ÎÄ̤ê: +として有効な値は以下の通り: .br .TP 10 .B IPC_STAT @@ -170,14 +170,14 @@ struct ipc_perm { .\"O .I shmid_ds .\"O structure pointed to by \fIbuf\fP. .I shmid -¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥«¡¼¥Í¥ë¥Ç¡¼¥¿¹½Â¤ÂΤξðÊó¤ò -\fIbuf\fP ¤Ç»Ø¤µ¤ì¤¿ +に関連づけられたカーネルデータ構造体の情報を +\fIbuf\fP で指された .I shmid_ds -¹½Â¤ÂΤ˥³¥Ô¡¼¤¹¤ë¡£ +構造体にコピーする。 .\"O The caller must have read permission on the .\"O shared memory segment. -¸Æ¤Ó½Ð¤·¸µ¤Ï¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ËÂФ¹¤ë -Æɤ߹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +呼び出し元は共有メモリ・セグメントに対する +読み込み許可を持たなければならない。 .TP .B IPC_SET .\"O Write the values of some members of the @@ -189,28 +189,28 @@ struct ipc_perm { .\"O .I shm_ctime .\"O member. .I buf -¤Ë¤è¤Ã¤Æ»Ø¤µ¤ì¤ë +によって指される .I shmid_ds -¹½Â¤ÂΤΤ¤¤¯¤Ä¤«¤Î¥á¥ó¥Ð¡¼¤ÎÃͤò¡¢ -¤³¤Î¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥«¡¼¥Í¥ë¥Ç¡¼¥¿¹½Â¤ÂΤ˽ñ¤­¹þ¤ß¡¢ +構造体のいくつかのメンバーの値を、 +この共有メモリ・セグメントに関連づけられたカーネルデータ構造体に書き込み、 .I shm_ctime -¥á¥ó¥Ð¡¼¤â¹¹¿·¤¹¤ë¡£ +メンバーも更新する。 .\"O The following fields can be changed: .\"O \fIshm_perm.uid\fP, \fIshm_perm.gid\fP, .\"O and (the least significant 9 bits of) \fIshm_perm.mode\fP. -°Ê²¼¤Î¥Õ¥£¡¼¥ë¥É¤ÏÊѹ¹¤Ç¤­¤ë¡£ +以下のフィールドは変更できる。 \fIshm_perm.uid\fP, \fIshm_perm.gid\fP, -\fIshm_perm.mode\fP (¤ÎºÇ²¼°Ì 9 ¥Ó¥Ã¥È)¡£ +\fIshm_perm.mode\fP (の最下位 9 ビット)。 .\"O The effective UID of the calling process must match the owner .\"O .RI ( shm_perm.uid ) .\"O or creator .\"O .RI ( shm_perm.cuid ) .\"O of the shared memory segment, or the caller must be privileged. -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú UID ¤¬½êÍ­¼Ô +呼び出したプロセスの実効 UID が所有者 .RI ( shm_perm.uid ) -¤Þ¤¿¤ÏºîÀ®¼Ô +または作成者 .RI ( shm_perm.cuid ) -¤È°ìÃפ¹¤ë¤«¡¢¸Æ¤Ó½Ð¤·¸µ¤¬Æø¢¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +と一致するか、呼び出し元が特権を持たなければならない。 .TP .B IPC_RMID .\"O Mark the segment to be destroyed. @@ -220,14 +220,14 @@ struct ipc_perm { .\"O member of the associated structure .\"O .I shmid_ds .\"O is zero). -¥»¥°¥á¥ó¥È¤ËÇË´þºÑ¤ß¤Î¥Þ¡¼¥¯¤òÉÕ¤±¤ë¡£ -¥»¥°¥á¥ó¥È¤Ï¡¢¼ÂºÝ¤Ë¤ÏºÇ¸å¥×¥í¥»¥¹¤¬¥»¥°¥á¥ó¥È¤òʬΥ¤·¤¿ (´ØÏ¢¤¹¤ë +セグメントに破棄済みのマークを付ける。 +セグメントは、実際には最後プロセスがセグメントを分離した (関連する .I shmid_ds -¹½Â¤ÂΤΠ+構造体の .I shm_nattch -¥á¥ó¥Ð¡¼¤¬ 0 ¤Ë¤Ê¤Ã¤¿) ¸å¤Ç¤Î¤ßÇË´þ¤µ¤ì¤ë¡£ +メンバーが 0 になった) 後でのみ破棄される。 .\"O The caller must be the owner or creator, or be privileged. -¸Æ¤Ó½Ð¤·¸µ¤Ï½êÍ­¼Ô¤«ºîÀ®¼Ô¤Ç¤¢¤ë¤«¡¢Æø¢¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +呼び出し元は所有者か作成者であるか、特権を持たなければならない。 .\"O If a segment has been marked for destruction, then the (nonstandard) .\"O .B SHM_DEST .\"O flag of the @@ -235,30 +235,30 @@ struct ipc_perm { .\"O field in the associated data structure retrieved by .\"O .B IPC_STAT .\"O will be set. -¥»¥°¥á¥ó¥È¤ËÇË´þ¤Î¥Þ¡¼¥¯¤¬ÉÕ¤±¤é¤ì¤ë¤È¡¢ -´ØÏ¢¤¹¤ë¥Ç¡¼¥¿¹½Â¤ÂΤˤª¤¤¤Æ +セグメントに破棄のマークが付けられると、 +関連するデータ構造体において .I shm_perm.mode -¥Õ¥£¡¼¥ë¥É¤Î (ɸ½à¤Ç¤Ï¤Ê¤¤) +フィールドの (標準ではない) .B SHM_DEST -¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤ë¡£ -¤³¤Î¥Ç¡¼¥¿¹½Â¤ÂÎ¤Ï +フラグが設定される。 +このデータ構造体は .B IPC_STAT -¤Ç¼èÆÀ¤µ¤ì¤ë¡£ +で取得される。 .PP .\"O The caller \fImust\fP ensure that a segment is eventually destroyed; .\"O otherwise its pages that were faulted in will remain in memory or swap. -¸Æ¤Ó½Ð¤·¸µ¤ÏºÇ½ªÅª¤Ë¤Ï¥»¥°¥á¥ó¥È¤ò˺¤ì¤º¤ËÇË´þ\fI¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤\fP¡£ -¤½¤¦¤Ç¤Ê¤ì¤Ð¡¢¥Õ¥©¡¼¥ë¥È (fault) ¤µ¤ì¤¿¥Ú¡¼¥¸¤Ï -¥á¥â¥ê¤«¥¹¥ï¥Ã¥× (swap) ¤Ë»Ä¤ê³¤±¤ë¡£ +呼び出し元は最終的にはセグメントを忘れずに破棄\fIしなければならない\fP。 +そうでなれば、フォールト (fault) されたページは +メモリかスワップ (swap) に残り続ける。 .TP 10 .\"O .BR IPC_INFO " (Linux-specific)" -.BR IPC_INFO " (Linux ¸ÇÍ­)" +.BR IPC_INFO " (Linux 固有)" .\"O Returns information about system-wide shared memory limits and .\"O parameters in the structure pointed to by .\"O .IR buf . -¥·¥¹¥Æ¥àÁ´ÂΤǤζ¦Í­¥á¥â¥ê¤ÎÀ©¸Â¤È¥Ñ¥é¥á¡¼¥¿¤Ë´Ø¤¹¤ë¾ðÊó¤ò¡¢ +システム全体での共有メモリの制限とパラメータに関する情報を、 .I buf -¤¬»Ø¤¹¹½Â¤ÂΤËÆþ¤ì¤ÆÊÖ¤¹¡£ +が指す構造体に入れて返す。 .\"O This structure is of type .\"O .I shminfo .\"O (thus, a cast is required), @@ -267,37 +267,37 @@ struct ipc_perm { .\"O if the .\"O .B _GNU_SOURCE .\"O feature test macro is defined: -¤³¤Î¹½Â¤ÂÎ¤Ï +この構造体は .I shminfo -·¿¤Ç¤¢¤ë (¤½¤Î¤¿¤á¥­¥ã¥¹¥È¤¬É¬ÍפǤ¢¤ë)¡£ +型である (そのためキャストが必要である)。 .I shminfo -¤Ï +は .B _GNU_SOURCE -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë +機能検査マクロが定義された場合に .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë: +で以下のように定義される: .nf .in +4n struct shminfo { .\"O unsigned long shmmax; /* Maximum segment size */ - unsigned long shmmax; /* ºÇÂ祻¥°¥á¥ó¥È¥µ¥¤¥º */ + unsigned long shmmax; /* 最大セグメントサイズ */ .\"O unsigned long shmmin; /* Minimum segment size; .\"O always 1 */ - unsigned long shmmin; /* ºÇ¾®¥»¥°¥á¥ó¥È¥µ¥¤¥º¡£ - ¾ï¤Ë 1 */ + unsigned long shmmin; /* 最小セグメントサイズ。 + 常に 1 */ .\"O unsigned long shmmni; /* Maximum number of segments */ - unsigned long shmmni; /* ºÇÂ祻¥°¥á¥ó¥È¿ô */ + unsigned long shmmni; /* 最大セグメント数 */ .\"O unsigned long shmseg; /* Maximum number of segments .\"O that a process can attach; .\"O unused within kernel */ - unsigned long shmseg; /* ¥×¥í¥»¥¹¤¬ÉղäǤ­¤ë - ¥»¥°¥á¥ó¥È¤ÎºÇÂç¿ô¡£ - ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */ + unsigned long shmseg; /* プロセスが付加できる + セグメントの最大数。 + カーネル内では未使用 */ .\"O unsigned long shmall; /* Maximum number of pages of .\"O shared memory, system-wide */ - unsigned long shmall; /* ¶¦Í­¥á¥â¥ê¤ÎºÇÂç¥Ú¡¼¥¸¿ô¡£ - ¥·¥¹¥Æ¥àÁ´ÂΤǤÎÃÍ */ + unsigned long shmall; /* 共有メモリの最大ページ数。 + システム全体での値 */ }; .in @@ -312,102 +312,102 @@ struct shminfo { .\"O files of the same name; see .\"O .BR proc (5) .\"O for details. -ÀßÄê +設定 .IR shmmni , .IR shmmax , .I shmall -¤Ï +は .I /proc -¤Ë¤¢¤ëƱ¤¸Ì¾Á°¤Î¥Õ¥¡¥¤¥ë·Ðͳ¤ÇÊѹ¹²Äǽ¤Ç¤¢¤ë¡£ -¾Ü¤·¤¯¤Ï +にある同じ名前のファイル経由で変更可能である。 +詳しくは .BR proc (5) -¤ò»²¾È¡£ +を参照。 .TP .\"O .BR SHM_INFO " (Linux-specific)" -.BR SHM_INFO " (Linux ¸ÇÍ­)" +.BR SHM_INFO " (Linux 固有)" .\"O Returns a .\"O .I shm_info .\"O structure whose fields contain information .\"O about system resources consumed by shared memory. -¶¦Í­¥á¥â¥ê¤¬¾ÃÈñ¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à»ñ¸»¤Ë´Ø¤¹¤ë¾ðÊó¤ò -³ÊǼ¤·¤¿ +共有メモリが消費しているシステム資源に関する情報を +格納した .I shm_info -¹½Â¤ÂΤòÊÖ¤¹¡£ +構造体を返す。 .\"O This structure is defined in .\"O .I .\"O if the .\"O .B _GNU_SOURCE .\"O feature test macro is defined: -¤³¤Î¹½Â¤ÂΤϡ¢ +この構造体は、 .B _GNU_SOURCE -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë +機能検査マクロが定義された場合に .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë: +で以下のように定義される: .nf .in +4n struct shm_info { .\"O int used_ids; /* # of currently existing .\"O segments */ - int used_ids; /* ¸½ºß¸ºß¤¹¤ë¥»¥°¥á¥ó¥È¿ô */ + int used_ids; /* 現在存在するセグメント数 */ .\"O unsigned long shm_tot; /* Total number of shared .\"O memory pages */ - unsigned long shm_tot; /* ¶¦Í­¥á¥â¥ê¤Î¥Ú¡¼¥¸Áí¿ô */ + unsigned long shm_tot; /* 共有メモリのページ総数 */ .\"O unsigned long shm_rss; /* # of resident shared .\"O memory pages */ - unsigned long shm_rss; /* ¥á¥â¥ê¾å¤Ë¤¢¤ë (¥¹¥ï¥Ã¥×¤µ¤ì¤Æ - ¤¤¤Ê¤¤) ¶¦Í­¥á¥â¥ê¥Ú¡¼¥¸¿ô */ + unsigned long shm_rss; /* メモリ上にある (スワップされて + いない) 共有メモリページ数 */ .\"O unsigned long shm_swp; /* # of swapped shared .\"O memory pages */ - unsigned long shm_swp; /* ¥¹¥ï¥Ã¥×¤µ¤ì¤Æ¤¤¤ë¶¦Í­¥á¥â¥ê - ¥Ú¡¼¥¸¿ô */ + unsigned long shm_swp; /* スワップされている共有メモリ + ページ数 */ .\"O unsigned long swap_attempts; .\"O /* Unused since Linux 2.4 */ .\"O unsigned long swap_successes; .\"O /* Unused since Linux 2.4 */ unsigned long swap_attempts; - /* Linux 2.4 °Ê¹ß¤Ç¤Ï̤»ÈÍÑ */ + /* Linux 2.4 以降では未使用 */ unsigned long swap_successes; - /* Linux 2.4 °Ê¹ß¤Ç¤Ï̤»ÈÍÑ */ + /* Linux 2.4 以降では未使用 */ }; .in .fi .TP .\"O .BR SHM_STAT " (Linux-specific)" -.BR SHM_STAT " (Linux ¸ÇÍ­)" +.BR SHM_STAT " (Linux 固有)" .\"O Returns a .\"O .I shmid_ds .\"O structure as for .\"O .BR IPC_STAT . .B IPC_STAT -¤ÈƱ¤¸¤¯ +と同じく .I shmid_ds -¹½Â¤ÂΤòÊÖ¤¹¡£ +構造体を返す。 .\"O However, the .\"O .I shmid .\"O argument is not a segment identifier, but instead an index into .\"O the kernel's internal array that maintains information about .\"O all shared memory segments on the system. -⤷¡¢ +但し、 .I shmid -°ú¤­¿ô¤Ï¡¢¥»¥°¥á¥ó¥È¼±Ê̻ҤǤϤʤ¯¡¢¥·¥¹¥Æ¥à¾å¤ÎÁ´¤Æ¤Î¶¦Í­¥á¥â¥ê -¥»¥°¥á¥ó¥È¤Ë´Ø¤¹¤ë¾ðÊó¤ò´ÉÍý¤¹¤ë¥«¡¼¥Í¥ë¤ÎÆâÉôÇÛÎó¤Ø¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹ -¤Ç¤¢¤ë¡£ +引き数は、セグメント識別子ではなく、システム上の全ての共有メモリ +セグメントに関する情報を管理するカーネルの内部配列へのインデックス +である。 .PP .\"O The caller can prevent or allow swapping of a shared .\"O memory segment with the following \fIcmd\fP values: -¸Æ¤Ó½Ð¤·¸µ¤Ï¡¢\fIcmd\fP ¤Ë°Ê²¼¤ÎÃͤò»ØÄꤹ¤ë¤³¤È¤Ç¡¢¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤¬ -¥¹¥ï¥Ã¥×¤µ¤ì¤ë¤³¤È¤òËɻߤ·¤¿¤ê¡¢µö²Ä¤·¤¿¤ê¤Ç¤­¤ë: +呼び出し元は、\fIcmd\fP に以下の値を指定することで、共有メモリ・セグメントが +スワップされることを防止したり、許可したりできる: .br .TP 10 .\"O .BR SHM_LOCK " (Linux-specific)" -.BR SHM_LOCK " (Linux ¸ÇÍ­)" +.BR SHM_LOCK " (Linux 固有)" .\"O Prevent swapping of the shared memory segment. .\"O The caller must fault in .\"O any pages that are required to be present after locking is enabled. -¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ò¥¹¥ï¥Ã¥×¤¹¤ë¤³¤È¤òËɻߤ¹¤ë¡£ -¥í¥Ã¥¯¤¬Í­¸ú¤Ë¤Ê¤Ã¤¿¸å¡¢¸Æ¤Ó½Ð¤·¸µ¤Ï¡¢ -¸ºß¤¹¤ë¤³¤È¤¬Í׵ᤵ¤ì¤¿Á´¤Æ¤Î¥Ú¡¼¥¸¤ò¥Õ¥©¡¼¥ë¥È¤µ¤»¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +共有メモリ・セグメントをスワップすることを防止する。 +ロックが有効になった後、呼び出し元は、 +存在することが要求された全てのページをフォールトさせなければならない。 .\"O If a segment has been locked, then the (nonstandard) .\"O .B SHM_LOCKED .\"O flag of the @@ -415,31 +415,31 @@ struct shm_info { .\"O field in the associated data structure retrieved by .\"O .B IPC_STAT .\"O will be set. -¥»¥°¥á¥ó¥È¤¬¥í¥Ã¥¯¤µ¤ì¤ë¤È¡¢ -´ØÏ¢¤¹¤ë¥Ç¡¼¥¿¹½Â¤ÂΤˤª¤¤¤Æ +セグメントがロックされると、 +関連するデータ構造体において .I shm_perm.mode -¥Õ¥£¡¼¥ë¥É¤Î (ɸ½àŪ¤Ç¤Ï¤Ê¤¤) +フィールドの (標準的ではない) .B SHM_LOCKED -¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤ë¡£ -¤³¤Î¥Ç¡¼¥¿¹½Â¤ÂÎ¤Ï +フラグが設定される。 +このデータ構造体は .B IPC_STAT -¤Ç¼èÆÀ¤µ¤ì¤ë¡£ +で取得される。 .TP .\"O .BR SHM_UNLOCK " (Linux-specific)" -.BR SHM_UNLOCK " (Linux ¸ÇÍ­)" +.BR SHM_UNLOCK " (Linux 固有)" .\"O Unlock the segment, allowing it to be swapped out. -¥»¥°¥á¥ó¥È¤Î¥í¥Ã¥¯¤ò²ò½ü¤·¡¢¥¹¥ï¥Ã¥×¡¦¥¢¥¦¥È¤¹¤ë¤³¤È¤ò²Äǽ¤Ë¤¹¤ë¡£ +セグメントのロックを解除し、スワップ・アウトすることを可能にする。 .PP .\"O In kernels before 2.6.10, only a privileged process .\"O could employ .\"O .B SHM_LOCK .\"O and .\"O .BR SHM_UNLOCK . -2.6.10 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢Æø¢¥×¥í¥»¥¹¤À¤±¤¬ +2.6.10 より前のカーネルでは、特権プロセスだけが .B SHM_LOCK -¤È +と .B SHM_UNLOCK -¤òÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤¿¡£ +を利用することができた。 .\"O Since kernel 2.6.10, an unprivileged process can employ these operations .\"O if its effective UID matches the owner or creator UID of the segment, and .\"O (for @@ -448,21 +448,21 @@ struct shm_info { .\"O .B RLIMIT_MEMLOCK .\"O resource limit (see .\"O .BR setrlimit (2)). -2.6.10 °Ê¹ß¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ÈóÆø¢¥×¥í¥»¥¹¤Ç¤¢¤Ã¤Æ¤â¼¡¤Î¾ò·ï¤òËþ¤¿¤»¤Ð -¤³¤ì¤é¤ÎÁàºî¤òÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤½¤Î¾ò·ï¤È¤Ï¡¢¥×¥í¥»¥¹¤Î¼Â¸ú UID -¤¬¤½¤Î¥»¥°¥á¥ó¥È¤Î½êÍ­¼Ô¤â¤·¤¯¤ÏºîÀ®¼Ô¤Î UID ¤È°ìÃפ·¡¢ +2.6.10 以降のカーネルでは、非特権プロセスであっても次の条件を満たせば +これらの操作を利用することができる。その条件とは、プロセスの実効 UID +がそのセグメントの所有者もしくは作成者の UID と一致し、 .RB ( SHM_LOCK -¤Î¾ì¹ç¤Ë¤Ï) ¥í¥Ã¥¯¤¹¤ë¥á¥â¥ê¤Î¹ç·×¤¬ +の場合には) ロックするメモリの合計が .B RLIMIT_MEMLOCK -¥ê¥½¡¼¥¹¾å¸Â +リソース上限 .RB ( setrlimit (2) -»²¾È) ¤ÎÈÏ°ÏÆâ¤ËÆþ¤Ã¤Æ¤¤¤ë¤³¤È¤Ç¤¢¤ë¡£ +参照) の範囲内に入っていることである。 .\" There was some weirdness in 2.6.9: SHM_LOCK and SHM_UNLOCK could .\" be applied to a segment, regardless of ownership of the segment. .\" This was a botch-up in the move to RLIMIT_MEMLOCK, and was fixed .\" in 2.6.10. MTK, May 2005 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O A successful .\"O .B IPC_INFO .\"O or @@ -471,39 +471,39 @@ struct shm_info { .\"O kernel's internal array recording information about all .\"O shared memory segments. .B IPC_INFO -¤È +と .B SHM_INFO -Áàºî¤Ï¡¢À®¸ù¤¹¤ë¤È¡¢Á´¤Æ¤Î¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤Ë´Ø¤¹¤ë¾ðÊó¤ò -´ÉÍý¤·¤Æ¤¤¤ë¥«¡¼¥Í¥ë¤ÎÆâÉôÇÛÎó¤Î»ÈÍÑÃ楨¥ó¥È¥ê¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Î -¤¦¤ÁºÇÂçÃͤòÊÖ¤¹ +操作は、成功すると、全ての共有メモリセグメントに関する情報を +管理しているカーネルの内部配列の使用中エントリのインデックスの +うち最大値を返す .\"O (This information can be used with repeated .\"O .B SHM_STAT .\"O operations to obtain information about all shared memory segments .\"O on the system.) -(¤³¤Î¾ðÊó¤Ï¡¢¥·¥¹¥Æ¥à¤ÎÁ´¤Æ¤Î¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤Ë´Ø¤¹¤ë¾ðÊó¤ò -¼èÆÀ¤¹¤ë¤¿¤á¤Ë¡¢ +(この情報は、システムの全ての共有メモリセグメントに関する情報を +取得するために、 .B SHM_STAT -Áàºî¤ò·«¤êÊÖ¤·¼Â¹Ô¤¹¤ëºÝ¤Ë»ÈÍѤǤ­¤ë)¡£ +操作を繰り返し実行する際に使用できる)。 .\"O A successful .\"O .B SHM_STAT .\"O operation returns the identifier of the shared memory segment .\"O whose index was given in .\"O .IR shmid . .B SHM_STAT -Áàºî¤Ï¡¢À®¸ù¤¹¤ë¤È¡¢ +操作は、成功すると、 .I shmid -¤Ç»ØÄꤵ¤ì¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»ý¤Ä¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤Î¼±Ê̻ҤòÊÖ¤¹¡£ +で指定されたインデックスを持つ共有メモリセグメントの識別子を返す。 .\"O Other operations return 0 on success. -¾¤ÎÁàºî¤Ï¡¢À®¸ù¤Î¾ì¹ç 0 ¤òÊÖ¤¹¡£ +他の操作は、成功の場合 0 を返す。 .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +エラーの場合は \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O \fBIPC_STAT\fP or \fBSHM_STAT\fP is requested and @@ -513,13 +513,13 @@ struct shm_info { .\"O and the calling process does not have the .\"O .B CAP_IPC_OWNER .\"O capability. -\fBIPC_STAT\fP ¤Þ¤¿¤Ï \fBSHM_STAT\fP ¤¬Í׵ᤵ¤ì¡¢ -\fIshm_perm.mode\fP ¤¬ +\fBIPC_STAT\fP または \fBSHM_STAT\fP が要求され、 +\fIshm_perm.mode\fP が .I shmid -¤Ø¤ÎÆɤ߹þ¤ß¥¢¥¯¥»¥¹¤òµö¤·¤Æ¤ª¤é¤º¡¢ -¤«¤Ä¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬ +への読み込みアクセスを許しておらず、 +かつ呼び出したプロセスが .B CAP_IPC_OWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +ケーパビリティ (capability) を持っていない。 .TP .B EFAULT .\"O The argument @@ -532,17 +532,17 @@ struct shm_info { .\"O .I buf .\"O isn't accessible. .I cmd -°ú¤­¿ô¤Ë +引き数に .B IPC_SET -¤« +か .B IPC_STAT -¤¬»ØÄꤵ¤ì¤¿¤¬ +が指定されたが .I buf -¤Ç»Ø¤µ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¡£ +で指されているアドレスにアクセスできない。 .TP .B EIDRM .\"O \fIshmid\fP points to a removed identifier. -\fIshmid\fP ¤¬ºï½ü (remove) ¤µ¤ì¤¿¼±ÊÌ»Ò (identifier) ¤ò»Ø¤·¤Æ¤¤¤ë¡£ +\fIshmid\fP が削除 (remove) された識別子 (identifier) を指している。 .TP .B EINVAL .\"O \fIshmid\fP is not a valid identifier, or \fIcmd\fP @@ -552,13 +552,13 @@ struct shm_info { .\"O operation, the index value specified in .\"O .I shmid .\"O referred to an array slot that is currently unused. -\fIshmid\fP ¤¬Í­¸ú¤Ê¼±Ê̻ҤǤʤ¤¤«¡¢ -\fIcmd\fP ¤¬Í­¸ú¤Ê¥³¥Þ¥ó¥É¤Ç¤Ê¤¤¡£ -¤â¤·¤¯¤Ï¡¢ +\fIshmid\fP が有効な識別子でないか、 +\fIcmd\fP が有効なコマンドでない。 +もしくは、 .B SHM_STAT -Áàºî¤Î¾ì¹ç¤Ë¡¢ +操作の場合に、 .I shmid -¤Ç»ØÄꤵ¤ì¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹Ãͤ¬¸½ºß̤»ÈÍѤÎÇÛÎó¤Î¥¹¥í¥Ã¥È¤ò»²¾È¤·¤Æ¤¤¤¿¡£ +で指定されたインデックス値が現在未使用の配列のスロットを参照していた。 .TP .B ENOMEM .\"O (In kernels since 2.6.9), @@ -566,29 +566,29 @@ struct shm_info { .\"O was specified and the size of the to-be-locked segment would mean .\"O that the total bytes in locked shared memory segments would exceed .\"O the limit for the real user ID of the calling process. -(2.6.9 °Ê¹ß¤Î¥«¡¼¥Í¥ë¤Ë¤ª¤¤¤Æ) +(2.6.9 以降のカーネルにおいて) .B SHM_LOCK -¤¬»ØÄꤵ¤ì¡¢ -¥í¥Ã¥¯¤µ¤ì¤ëͽÄê¤Î¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º -(¥í¥Ã¥¯¤µ¤ì¤ë¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Î¹ç·×¥Ð¥¤¥È¿ô) ¤¬¡¢ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶¡¼ ID ¤Ë¤Ä¤¤¤Æ¤ÎÀ©¸Â¤òĶ¤¨¤¿¡£ +が指定され、 +ロックされる予定のセグメントのサイズ +(ロックされる共有メモリ・セグメントの合計バイト数) が、 +呼び出したプロセスの実ユーザー ID についての制限を超えた。 .\"O This limit is defined by the .\"O .B RLIMIT_MEMLOCK .\"O soft resource limit (see .\"O .BR setrlimit (2)). -¤³¤ÎÀ©¸Â¤Ï +この制限は .B RLIMIT_MEMLOCK -¥½¥Õ¥È»ñ¸»À©¸Â¤ÇÄêµÁ¤µ¤ì¤ë +ソフト資源制限で定義される .RB ( setrlimit (2) -¤ò»²¾È)¡£ +を参照)。 .TP .B EOVERFLOW .\"O \fBIPC_STAT\fP is attempted, and the GID or UID value .\"O is too large to be stored in the structure pointed to by .\"O .IR buf . -\fBIPC_STAT\fP ¤¬»î¤ß¤é¤ì¡¢GID ¤ä UID ¤ÎÃͤ¬ +\fBIPC_STAT\fP が試みられ、GID や UID の値が .I buf -¤Ç»Ø¼¨¤µ¤ì¤ë¹½Â¤ÂΤ˳ÊǼ¤¹¤ë¤Ë¤ÏÂ礭²á¤®¤ë¡£ +で指示される構造体に格納するには大き過ぎる。 .TP .B EPERM .\"O \fBIPC_SET\fP or \fBIPC_RMID\fP is attempted, and the @@ -601,14 +601,14 @@ struct shm_info { .\"O and the process was not privileged (Linux: did not have the .\"O .B CAP_SYS_ADMIN .\"O capability). -\fBIPC_SET\fP ¤« \fBIPC_RMID\fP ¤¬»î¤ß¤é¤ì¡¢ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ºîÀ®¼Ô +\fBIPC_SET\fP か \fBIPC_RMID\fP が試みられ、 +呼び出したプロセスの実効ユーザー ID が作成者 .RI ( shm_perm.cuid ) -¤Ç¤â½êÍ­¼Ô +でも所有者 .RI ( shm_perm.uid ) -¤Ç¤â¤Ê¤¯¡¢¥×¥í¥»¥¹¤¬Æø¢¤ò»ý¤¿¤Ê¤¤ (Linux ¤Ç¤Ï +でもなく、プロセスが特権を持たない (Linux では .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤)¡£ +ケーパビリティを持たない)。 .\"O Or (in kernels before 2.6.9), .\"O .B SHM_LOCK @@ -618,31 +618,31 @@ struct shm_info { .\"O (Linux: did not have the .\"O .B CAP_IPC_LOCK .\"O capability). -¤Þ¤¿¤Ï (2.6.9 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç) +または (2.6.9 より前のカーネルで) .B SHM_LOCK -¤Þ¤¿¤Ï +または .B SHM_UNLOCK -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤¬¡¢¥×¥í¥»¥¹¤¬Æø¢¤ò»ý¤¿¤Ê¤¤ -(Linux ¤Ç¤Ï +が指定されているが、プロセスが特権を持たない +(Linux では .B CAP_IPC_LOCK -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤)¡£ +ケーパビリティを持たない)。 .\"O (Since Linux 2.6.9, this error can also occur if the .\"O .B RLIMIT_MEMLOCK .\"O is 0 and the caller is not privileged.) -(Linux 2.6.9 °Ê¹ß¤Ç¤Ï¡¢ +(Linux 2.6.9 以降では、 .B RLIMIT_MEMLOCK -¤¬ 0 ¤Ç¸Æ¤Ó½Ð¤·¸µ¤¬Æø¢¤ò»ý¤¿¤Ê¤¤¾ì¹ç¤Ë¤â¡¢¤³¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë¡£) +が 0 で呼び出し元が特権を持たない場合にも、このエラーが起こる。) .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001. .\"O .\" SVr4 documents additional error conditions EINVAL, .\"O .\" ENOENT, ENOSPC, ENOMEM, EEXIST. Neither SVr4 nor SVID documents .\"O .\" an EIDRM error condition. -.\" SVr4 ¤Ë¤Ï¾¤Ë EINVAL, ENOENT, ENOSPC, ENOMEM, -.\" EEXIST ¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ -.\" SVr4 ¤ª¤è¤Ó SVID ¤Ë¤Ï EIDRM ¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤Ï¤Ê¤¤¡£ +.\" SVr4 には他に EINVAL, ENOENT, ENOSPC, ENOMEM, +.\" EEXIST エラーについての記述がある。 +.\" SVr4 および SVID には EIDRM エラーについての記述はない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The .\"O .BR IPC_INFO , .\"O .B SHM_STAT @@ -656,11 +656,11 @@ SVr4, POSIX.1-2001. .BR IPC_INFO , .BR SHM_STAT , .B SHM_INFO -Áàºî¤Ï¡¢ +操作は、 .BR ipcs (1) -¥×¥í¥°¥é¥à¤Ç³ä¤êÅö¤ÆºÑ¤Î»ñ¸»¤Ë´Ø¤¹¤ë¾ðÊó¤òÄ󶡤¹¤ë¤¿¤á¤Ë -»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£¾­Íè¡¢¤³¤ì¤é¤ÎÁàºî¤ÏÊѹ¹¤µ¤ì¤¿¤ê¡¢ -/proc ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë°ÜÆ°¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +プログラムで割り当て済の資源に関する情報を提供するために +使用されている。将来、これらの操作は変更されたり、 +/proc ファイルシステムのインタフェースに移動されるかもしれない。 .\"O Linux permits a process to attach .\"O .RB ( shmat (2)) @@ -669,14 +669,14 @@ SVr4, POSIX.1-2001. .\"O .IR shmctl(IPC_RMID) . .\"O This feature is not available on other UNIX implementations; .\"O portable applications should avoid relying on it. -Linux ¤Ç¤Ï¡¢ +Linux では、 .I shmctl(IPC_RMID) -¤ò»È¤Ã¤Æ¤¹¤Ç¤Ëºï½ü¥Þ¡¼¥¯¤¬¤Ä¤±¤é¤ì¤Æ¤¤¤ë¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ò -¤¢¤ë¥×¥í¥»¥¹¤¬Éղà (attach) +を使ってすでに削除マークがつけられている共有メモリ・セグメントを +あるプロセスが付加 (attach) .RB ( shmat (2)) -¤¹¤ë¤³¤È¤òµö²Ä¤·¤Æ¤¤¤ë¡£ -¤³¤Îµ¡Ç½¤Ï¾¤Î UNIX ¤Î¼ÂÁõ¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤¡£ -°Ü¿¢À­¤ò¹Íθ¤·¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤ì¤Ë°Í¸¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +することを許可している。 +この機能は他の UNIX の実装では利用できない。 +移植性を考慮したアプリケーションではこれに依存しないようにすべきである。 .\"O Various fields in a \fIstruct shmid_ds\fP were typed as .\"O .I short @@ -690,21 +690,21 @@ Linux .\"O .B IPC_64 .\"O flag in .\"O .IR cmd .) -\fI¹½Â¤ÂÎ shmid_ds\fP Æâ¤Î¿¤¯¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢ -Linux 2.2 ¤Ç¤Ï +\fI構造体 shmid_ds\fP 内の多くのフィールドは、 +Linux 2.2 では .I short -·¿¤À¤Ã¤¿¤¬¡¢Linux 2.4 ¤Ç¤Ï +型だったが、Linux 2.4 では .I long -·¿¤Ë¤Ê¤Ã¤¿¡£ -¤³¤ÎÍøÅÀ¤òÀ¸¤«¤¹¤Ë¤Ï¡¢glibc-2.1.91 °Ê¹ß¤Î´Ä¶­²¼¤Ç -ºÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ì¤Ð½½Ê¬¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë¤Ï¿·¤·¤¤·Á¼°¤Î¸Æ¤Ó½Ð¤·¤È¸Å¤¤·Á¼°¤Î¸Æ¤Ó½Ð¤·¤ò +型になった。 +この利点を生かすには、glibc-2.1.91 以降の環境下で +再コンパイルすれば十分である。 +カーネルは新しい形式の呼び出しと古い形式の呼び出しを .I cmd -Æâ¤Î +内の .B IPC_64 -¥Õ¥é¥°¤Ç¶èÊ̤¹¤ë¡£ +フラグで区別する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mlock (2), .BR setrlimit (2), .BR shmget (2), diff --git a/draft/man2/shmget.2 b/draft/man2/shmget.2 index 23272850..1ea65db2 100644 --- a/draft/man2/shmget.2 +++ b/draft/man2/shmget.2 @@ -44,29 +44,29 @@ .\" Updated 2005-11-04, Akihiro MOTOKI .\" Updated 2006-07-21, Akihiro MOTOKI, LDP v2.36 .\" -.\"WORD: shared memory ¶¦Í­¥á¥â¥ê -.\"WORD: segment ¥»¥°¥á¥ó¥È -.\"WORD: owner ½êÍ­¼Ô -.\"WORD: group ¥°¥ë¡¼¥× -.\"WORD: world ¾¿Í -.\"WORD: creator ºîÀ®¼Ô -.\"WORD: super-user ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ -.\"WORD: detach ʬΥ -.\"WORD: attach Éղà -.\"WORD: identifier ¼±ÊÌ»Ò -.\"WORD: member ¥á¥ó¥Ð¡¼ -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: effective group ID ¼Â¸ú¥°¥ë¡¼¥×ID -.\"WORD: policy Êý¿Ë -.\"WORD: implement ¼ÂÁõ +.\"WORD: shared memory 共有メモリ +.\"WORD: segment セグメント +.\"WORD: owner 所有者 +.\"WORD: group グループ +.\"WORD: world 他人 +.\"WORD: creator 作成者 +.\"WORD: super-user スーパー・ユーザー +.\"WORD: detach 分離 +.\"WORD: attach 付加 +.\"WORD: identifier 識別子 +.\"WORD: member メンバー +.\"WORD: effective user ID 実効ユーザーID +.\"WORD: effective group ID 実効グループID +.\"WORD: policy 方針 +.\"WORD: implement 実装 .\" .TH SHMGET 2 2006-05-02 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O shmget \- allocates a shared memory segment -shmget \- ¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ò³ä¤êÅö¤Æ¤ë +shmget \- 共有メモリ・セグメントを割り当てる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .ad l .B #include .br @@ -75,7 +75,7 @@ shmget \- .BI "int shmget(key_t " key ", size_t " size ", int " shmflg ); .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR shmget () .\"O returns the identifier of the shared memory segment .\"O associated with the value of the argument @@ -99,25 +99,25 @@ shmget \- .\"O is specified in .\"O .IR shmflg . .BR shmget () -¤Ï +は .I key -°ú¤­¿ô¤ËÂбþ¤¹¤ë¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Î¼±Ê̻ҤòÊÖ¤¹¡£ +引き数に対応する共有メモリ・セグメントの識別子を返す。 .I key -¤ÎÃͤ¬ +の値が .B IPC_PRIVATE -¤Î¾ì¹ç¡¢¤â¤·¤¯¤Ï +の場合、もしくは .I key -¤ËÂбþ¤¹¤ë¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤¬Â¸ºß¤»¤º¡¢ +に対応する共有メモリ・セグメントが存在せず、 .I shmflg -¤Ë +に .B IPC_CREAT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢ -¿·¤·¤¤¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤òºîÀ®¤¹¤ë¡£ -ºîÀ®¤µ¤ì¤ë¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Ï¡¢ +が指定されていた場合、 +新しい共有メモリ・セグメントを作成する。 +作成される共有メモリ・セグメントは、 .I size -°ú¤­¿ô¤ÎÃͤò +引き数の値を .B PAGE_SIZE -¤ÎÇÜ¿ô¤Ø¤ÈÀÚ¤ê¾å¤²¤¿ (round up) Â礭¤µ¤È¤Ê¤ë¡£ +の倍数へと切り上げた (round up) 大きさとなる。 .PP .\"O If .\"O .I shmflg @@ -138,29 +138,29 @@ shmget \- .\"O for .\"O .BR open (2).) .I shmflg -¤Ë +に .B IPC_CREAT -¤È +と .B IPC_EXCL -¤ÎξÊý¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +の両方が指定された場合、 .I key -¤ËÂбþ¤¹¤ë¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤¬´û¤Ë¸ºß¤¹¤ë¤È¡¢ +に対応する共有メモリ・セグメントが既に存在すると、 .BR shmget () -¤Ï¼ºÇÔ¤·¡¢ +は失敗し、 .I errno -¤Ë +に .B EEXIST -¤¬ÀßÄꤵ¤ì¤ë (¤³¤ì¤Ï +が設定される (これは .BR open (2) -¤Ë +に .B O_CREAT | O_EXCL -¤ò»ØÄꤷ¤¿¾ì¹ç¤ÎÆ°ºî¤ÈƱ¤¸¤Ç¤¢¤ë)¡£ +を指定した場合の動作と同じである)。 .PP .\"O The value .\"O .I shmflg .\"O is composed of: .I shmflg -¤Ï°Ê²¼¤ÎÆâÍƤ«¤é¹½À®¤µ¤ì¤ë: +は以下の内容から構成される: .TP 12 .B IPC_CREAT .\"O to create a new segment. @@ -168,19 +168,19 @@ shmget \- .\"O .BR shmget () .\"O will find the segment associated with \fIkey\fP and check to see if .\"O the user has permission to access the segment. -¿·¤·¤¤¥»¥°¥á¥ó¥È¤òºîÀ®¤¹¤ë¡£¤³¤Î¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ +新しいセグメントを作成する。このフラグが指定されなかった場合、 .BR shmget () -¤Ï \fIkey\fP ¤ËÂбþ¤¹¤ë¥»¥°¥á¥ó¥È¤òõ¤·¡¢ -¥æ¡¼¥¶¤¬¤½¤Î¥»¥°¥á¥ó¥È¤Ë¥¢¥¯¥»¥¹¤¹¤ëµö²Ä¤¬¤¢¤ë¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ +は \fIkey\fP に対応するセグメントを探し、 +ユーザがそのセグメントにアクセスする許可があるかどうかをチェックする。 .TP .B IPC_EXCL .\"O used with \fBIPC_CREAT\fP to ensure failure if the segment already exists. -\fBIPC_CREAT\fP ¤È¶¦¤Ë»ÈÍѤ·¡¢¥»¥°¥á¥ó¥È¤¬´û¤Ë¸ºß¤·¤¿¾ì¹ç¤Ë¤Ï -¼ºÇÔ¤¹¤ë¤³¤È¤òÊݾڤ¹¤ë¡£ +\fBIPC_CREAT\fP と共に使用し、セグメントが既に存在した場合には +失敗することを保証する。 .TP .I mode_flags .\"O (least significant 9 bits) -(²¼°Ì 9 ¥Ó¥Ã¥È) +(下位 9 ビット) .\"O specifying the permissions granted to the owner, group, and world. .\"O These bits have the same format, and the same .\"O meaning, as the @@ -188,36 +188,36 @@ shmget \- .\"O argument of .\"O .BR open (2). .\"O Presently, the execute permissions are not used by the system. -½êÍ­¼Ô¡¢¥°¥ë¡¼¥×¡¢Â¾¿Í (world) ¤Ø¤Îµö²Ä¤ò»ØÄꤹ¤ë¡£ -¤³¤ì¤é¤Î¥Ó¥Ã¥È¤Ï +所有者、グループ、他人 (world) への許可を指定する。 +これらのビットは .BR open (2) -¤Î +の .I mode -°ú¤­¿ô¤ÈƱ¤¸·Á¼°¤ÇƱ¤¸°ÕÌ£¤ò»ý¤Ä¡£ -º£¤Î¤È¤³¤í¡¢¥·¥¹¥Æ¥à¤Ï¼Â¹Ô (execute) µö²Ä¤ò»²¾È¤·¤Ê¤¤¡£ +引き数と同じ形式で同じ意味を持つ。 +今のところ、システムは実行 (execute) 許可を参照しない。 .TP .\"O .BR SHM_HUGETLB " (since Linux 2.6)" -.BR SHM_HUGETLB " (Linux 2.6 °Ê¹ß)" +.BR SHM_HUGETLB " (Linux 2.6 以降)" .\"O Allocate the segment using "huge pages." .\"O See the kernel source file .\"O .I Documentation/vm/hugetlbpage.txt .\"O for further information. -"¥Ò¥å¡¼¥¸¥Ú¡¼¥¸ (huge page)" ¤ò»È¤¦¥»¥°¥á¥ó¥È¤ò³ä¤êÅö¤Æ¤ë¡£ -¾ÜºÙ¤Ê¾ðÊó¤Ï¡¢¥«¡¼¥Í¥ë¡¦¥½¡¼¥¹¤Î¥Õ¥¡¥¤¥ë +"ヒュージページ (huge page)" を使うセグメントを割り当てる。 +詳細な情報は、カーネル・ソースのファイル .I Documentation/vm/hugetlbpage.txt -¤ò»²¾È¡£ +を参照。 .TP .\"O .BR SHM_NORESERVE " (since Linux 2.6.15)" -.BR SHM_NORESERVE " (Linux 2.6.15 °Ê¹ß)" +.BR SHM_NORESERVE " (Linux 2.6.15 以降)" .\"O This flag serves the same purpose as the .\"O .BR mmap (2) .\"O .B MAP_NORESERVE .\"O flag. -¤³¤Î¥Õ¥é¥°¤Ï¡¢ +このフラグは、 .BR mmap (2) -¤Î +の .B MAP_NORESERVE -¥Õ¥é¥°¤ÈƱ¤¸Ìò³ä¤ò²Ì¤¿¤¹¡£ +フラグと同じ役割を果たす。 .\"O Do not reserve swap space for this segment. .\"O When swap space is reserved, one has the guarantee .\"O that it is possible to modify the segment. @@ -225,20 +225,20 @@ shmget \- .\"O .B SIGSEGV .\"O upon a write .\"O if no physical memory is available. -¤³¤Î¥»¥°¥á¥ó¥È¤ËÂФ¹¤ë¥¹¥ï¥Ã¥×¶õ´Ö¤ÎͽÌó¤ò¹Ô¤ï¤Ê¤¤¡£ -¥¹¥ï¥Ã¥×¶õ´Ö¤òͽÌó¤·¤¿¾ì¹ç¤Ï¡¢¤½¤Î¥»¥°¥á¥ó¥È¤ÎÊѹ¹¤¬É¬¤ºÀ®¸ù¤¹¤ë¤³¤È¤¬ -Êݾڤµ¤ì¤ë¡£¥¹¥ï¥Ã¥×¶õ´Ö¤ÎͽÌó¤ò¹Ô¤ï¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ÊªÍý¥á¥â¥ê¤Ë¶õ¤­¤¬ -¤Ê¤¤¤È½ñ¤­¹þ¤ß»þ¤Ë +このセグメントに対するスワップ空間の予約を行わない。 +スワップ空間を予約した場合は、そのセグメントの変更が必ず成功することが +保証される。スワップ空間の予約を行わなかった場合は、物理メモリに空きが +ないと書き込み時に .B SIGSEGV -¤ò¼õ¤±¼è¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +を受け取る可能性がある。 .\"O See also the discussion of the file .\"O .I /proc/sys/vm/overcommit_memory .\"O in .\"O .BR proc (5). .BR proc (5) -¤Ë¤¢¤ë +にある .I /proc/sys/vm/overcommit_memory -¥Õ¥¡¥¤¥ë¤Ë´Ø¤¹¤ëµÄÏÀ¤â»²¾È¤Î¤³¤È¡£ +ファイルに関する議論も参照のこと。 .\" As at 2.6.17-rc2, this flag has no effect if SHM_HUGETLB was also .\" specified. .PP @@ -249,46 +249,46 @@ shmget \- .\"O (see .\"O .BR shmctl (2)), .\"O is initialized as follows: -¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤¬¿·¤¿¤ËºîÀ®¤µ¤ì¤ëºÝ¡¢ -¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ÎÆâÍÆ¤Ï 0 ¤Ç½é´ü²½¤µ¤ì¡¢ -´ØÏ¢¾ðÊó¤òÊÝ»ý¤¹¤ë¥Ç¡¼¥¿¹½Â¤ÂÎ +共有メモリ・セグメントが新たに作成される際、 +共有メモリ・セグメントの内容は 0 で初期化され、 +関連情報を保持するデータ構造体 .I shmid_ds -¤Ï°Ê²¼¤Î¤è¤¦¤Ë½é´ü²½¤µ¤ì¤ë¡£ +は以下のように初期化される。 .IP .\"O .I shm_perm.cuid .\"O and .\"O .I shm_perm.uid .\"O are set to the effective user ID of the calling process. .I shm_perm.cuid -¤È +と .I shm_perm.uid -¤Ë¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú (effective) ¥æ¡¼¥¶¡¼ID ¤òÀßÄꤹ¤ë¡£ +に呼び出し元プロセスの実効 (effective) ユーザーID を設定する。 .IP .\"O .I shm_perm.cgid .\"O and .\"O .I shm_perm.gid .\"O are set to the effective group ID of the calling process. .I shm_perm.cgid -¤È +と .I shm_perm.gid -¤Ë¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú¥°¥ë¡¼¥×ID ¤òÀßÄꤹ¤ë¡£ +に呼び出し元プロセスの実効グループID を設定する。 .IP .\"O The least significant 9 bits of .\"O .I shm_perm.mode .\"O are set to the least significant 9 bit of .\"O .IR shmflg . .I shm_perm.mode -¤Î²¼°Ì 9 ¥Ó¥Ã¥È¤Ë +の下位 9 ビットに .I shmflg -¤Î²¼°Ì 9 ¥Ó¥Ã¥È¤òÀßÄꤹ¤ë¡£ +の下位 9 ビットを設定する。 .IP .\"O .I shm_segsz .\"O is set to the value of .\"O .IR size . .I shm_segsz -¤Ë +に .I size -¤ÎÃͤòÀßÄꤹ¤ë¡£ +の値を設定する。 .IP .\"O .IR shm_lpid , .\"O .IR shm_nattch , @@ -300,77 +300,77 @@ shmget \- .IR shm_nattch , .IR shm_atime , .I shm_dtime -¤Ë 0 ¤òÀßÄꤹ¤ë¡£ +に 0 を設定する。 .IP .\"O .I shm_ctime .\"O is set to the current time. .I shm_ctime -¤Ë¸½ºß¤Î»þ¹ï¤òÀßÄꤹ¤ë¡£ +に現在の時刻を設定する。 .PP .\"O If the shared memory segment already exists, the permissions are .\"O verified, and a check is made to see if it is marked for destruction. -¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤¬´û¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢¥¢¥¯¥»¥¹µö²Ä¤Î¸¡ºº¤È¡¢ -Ç˲õ (destruction) ¥Þ¡¼¥¯¤¬¤Ä¤±¤é¤ì¤Æ¤¤¤Ê¤¤¤«¤Î¥Á¥§¥Ã¥¯¤¬¹Ô¤ï¤ì¤ë¡£ +共有メモリ・セグメントが既に存在する場合、アクセス許可の検査と、 +破壊 (destruction) マークがつけられていないかのチェックが行われる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O A valid segment identifier, .\"O .IR shmid , .\"O is returned on success, \-1 on error. -À®¸ù¤·¤¿¾ì¹ç¡¢Í­¸ú¤Ê¥»¥°¥á¥ó¥È¼±ÊÌ»Ò +成功した場合、有効なセグメント識別子 .I shmid -¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢ \-1 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。エラーの場合、 \-1 が返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O On failure, .\"O .I errno .\"O is set to one of the following: -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï +失敗した場合は .I errno -¤¬°Ê²¼¤Î¤É¤ì¤«¤ËÀßÄꤵ¤ì¤ë: +が以下のどれかに設定される: .TP .B EACCES .\"O The user does not have permission to access the .\"O shared memory segment, and does not have the .\"O .B CAP_IPC_OWNER .\"O capability. -¥æ¡¼¥¶¡¼¤Ï¤½¤Î¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Ø¤Î¥¢¥¯¥»¥¹µö²Ä¤ò»ý¤¿¤º¡¢ +ユーザーはその共有メモリ・セグメントへのアクセス許可を持たず、 .B CAP_IPC_OWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤â»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +ケーパビリティも持っていない。 .TP .B EEXIST .\"O .B IPC_CREAT | IPC_EXCL .\"O was specified and the segment exists. .B IPC_CREAT | IPC_EXCL -¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¤¬¡¢¤½¤Î¥»¥°¥á¥ó¥È¤¬´û¤Ë¸ºß¤¹¤ë¡£ +が指定されていたが、そのセグメントが既に存在する。 .TP .B EINVAL .\"O A new segment was to be created and \fIsize\fP < \fBSHMMIN\fP .\"O or \fIsize\fP > \fBSHMMAX\fP, or no new segment was to be created, .\"O a segment with given key existed, but \fIsize\fP is greater than the size .\"O of that segment. -¿·¤·¤¤¥»¥°¥á¥ó¥È¤òºîÀ®¤·¤è¤¦¤È¤·¤¿ºÝ¤Ë -\fIsize\fP < \fBSHMMIN\fP ¤Þ¤¿¤Ï \fIsize\fP > \fBSHMMAX\fP ¤Ç¤¢¤Ã¤¿¡£ -¤â¤·¤¯¤Ï¡¢»ØÄꤵ¤ì¤¿¥­¡¼¤ËÂбþ¤¹¤ë¥»¥°¥á¥ó¥È¤¬´û¤Ë¸ºß¤·¤Æ¡¢¿·¤·¤¤ -¥»¥°¥á¥ó¥È¤òºîÀ®¤·¤è¤¦¤È¤Ï¤·¤Ê¤«¤Ã¤¿¤¬¡¢\fIsize\fP ¤¬Â¸ºß¤¹¤ë¥»¥°¥á¥ó¥È¤Î -¥µ¥¤¥º¤è¤ê¤âÂ礭¤«¤Ã¤¿¡£ +新しいセグメントを作成しようとした際に +\fIsize\fP < \fBSHMMIN\fP または \fIsize\fP > \fBSHMMAX\fP であった。 +もしくは、指定されたキーに対応するセグメントが既に存在して、新しい +セグメントを作成しようとはしなかったが、\fIsize\fP が存在するセグメントの +サイズよりも大きかった。 .TP .B ENFILE .\"O .\" [2.6.7] shmem_zero_setup()-->shmem_file_setup()-->get_empty_filp() .\"O The system limit on the total number of open files has been reached. .\" [2.6.7] shmem_zero_setup()-->shmem_file_setup()-->get_empty_filp() -¥·¥¹¥Æ¥àÁ´ÂΤǥª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ÎÁí¿ô¤¬¾å¸Â¤Ë㤷¤¿¡£ +システム全体でオープンされているファイルの総数が上限に達した。 .TP .B ENOENT .\"O No segment exists for the given \fIkey\fP, and .\"O .B IPC_CREAT .\"O was not specified. -»ØÄꤵ¤ì¤¿ \fIkey\fP ¤ËÂбþ¤¹¤ë¥»¥°¥á¥ó¥È¤¬Â¸ºß¤»¤º¡¢ +指定された \fIkey\fP に対応するセグメントが存在せず、 .B IPC_CREAT -¤â»ØÄꤵ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +も指定されていなかった。 .TP .B ENOMEM .\"O No memory could be allocated for segment overhead. -¥»¥°¥á¥ó¥È¤Î´ÉÍý¾ðÊó (overhead) ¤Ë³ä¤êÅö¤Æ¤ë¥á¥â¥ê¤¬¤Ê¤«¤Ã¤¿¡£ +セグメントの管理情報 (overhead) に割り当てるメモリがなかった。 .TP .B ENOSPC .\"O All possible shared memory ID's have been taken @@ -379,15 +379,15 @@ shmget \- .\"O .I size .\"O would cause the system to exceed the system-wide limit on shared memory .\"O .RB ( SHMALL ). -.\" motoki 2005-03-02 -- SHMMNI ¤Î°ÕÌ£¤ò¹Íθ¤·¤Æ°ÕÌõ -¥·¥¹¥Æ¥àÁ´ÂΤζ¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¿ô¤ÎÀ©¸Â +.\" motoki 2005-03-02 -- SHMMNI の意味を考慮して意訳 +システム全体の共有メモリ・セグメント数の制限 .RB ( SHMMNI ) -¤Ë㤷¤¿¡¢¤Þ¤¿¤ÏÍ׵ᤵ¤ì¤¿ +に達した、または要求された .I size -¤Î¥»¥°¥á¥ó¥È¤Î³ä¤êÅö¤Æ¤¬ -¥·¥¹¥Æ¥àÁ´ÂΤζ¦Í­¥á¥â¥ê¥µ¥¤¥º¤ÎÀ©¸Â +のセグメントの割り当てが +システム全体の共有メモリサイズの制限 .RB ( SHMALL ) -¤òĶ²á¤·¤¿¡£ +を超過した。 .TP .B EPERM .\"O The @@ -396,76 +396,76 @@ shmget \- .\"O .B CAP_IPC_LOCK .\"O capability). .B SHM_HUGETLB -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¸Æ¤Ó½Ð¤·¸µ¤Ë¤Ï¸¢¸Â¤¬¤Ê¤«¤Ã¤¿ +フラグが指定されたが、呼び出し元には権限がなかった .RB ( CAP_IPC_LOCK -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿)¡£ +ケーパビリティを持っていなかった)。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001. .\"O .\" SVr4 documents an additional error condition EEXIST. -.\" SVr4 ¤Ë¤ÏÄÉ²Ã¤Ç EEXIST ¥¨¥é¡¼¾õÂ֤ε­½Ò¤¬¤¢¤ë¡£ +.\" SVr4 には追加で EEXIST エラー状態の記述がある。 .\"O .B SHM_HUGETLB .\"O is a nonportable Linux extension. .B SHM_HUGETLB -¤Ï Linux ¤Ç¤Î³ÈÄ¥¤Ç¤¢¤ê¡¢°Ü¿¢À­¤Ï¤Ê¤¤¡£ +は Linux での拡張であり、移植性はない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .B IPC_PRIVATE .\"O isn't a flag field but a .\"O .I key_t .\"O type. .B IPC_PRIVATE -¤Ï¥Õ¥é¥°¤Ç¤Ï¤Ê¤¯ +はフラグではなく .I key_t -·¿¤Ç¤¢¤ë¡£ +型である。 .\"O If this special value is used for .\"O .IR key , .\"O the system call ignores everything but the least significant 9 bits of .\"O .I shmflg .\"O and creates a new shared memory segment (on success). -¤³¤ÎÆÃÊ̤ÊÃͤ¬ +この特別な値が .I key -¤Ë»ÈÍѤµ¤ì¤¿¾ì¹ç¤Ï¡¢ +に使用された場合は、 .BR shmget () -¤Ï +は .I shmflg -¤Î²¼°Ì 9 ¥Ó¥Ã¥È¤ò½ü¤¤¤¿Á´¤Æ¤ò̵»ë¤·¡¢ -(À®¸ù¤¹¤ì¤Ð) ¿·¤·¤¤¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤òºîÀ®¤¹¤ë¡£ +の下位 9 ビットを除いた全てを無視し、 +(成功すれば) 新しい共有メモリ・セグメントを作成する。 .PP .\"O The following limits on shared memory segment resources affect the .\"O .BR shmget () .\"O call: .BR shmget () -¥³¡¼¥ë¤Ë±Æ¶Á¤¹¤ë¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È»ñ¸»¤ÎÀ©¸Â¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë: +コールに影響する共有メモリ・セグメント資源の制限は以下の通りである: .TP .B SHMALL .\"O System wide maximum of shared memory pages .\"O (on Linux, this limit can be read and modified via .\"O .IR /proc/sys/kernel/shmall ). -¥·¥¹¥Æ¥àÁ´ÂΤζ¦Í­¥á¥â¥ê¡¦¥Ú¡¼¥¸¤ÎºÇÂç¿ô -(Linux ¤Ç¤Ï¡¢¤³¤Î¾å¸ÂÃÍ¤Ï +システム全体の共有メモリ・ページの最大数 +(Linux では、この上限値は .I /proc/sys/kernel/shmall -·Ðͳ¤Ç»²¾È¤·¤¿¤ê¡¢Êѹ¹¤·¤¿¤ê¤Ç¤­¤ë)¡£ +経由で参照したり、変更したりできる)。 .TP .B SHMMAX .\"O Maximum size in bytes for a shared memory segment: policy dependent .\"O (on Linux, this limit can be read and modified via .\"O .IR /proc/sys/kernel/shmmax ). -¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Î¥Ð¥¤¥Èñ°Ì¤ÎÂ礭¤µ¤Î¾å¸Â: Êý¿Ë°Í¸ -(Linux ¤Ç¤Ï¡¢¤³¤Î¾å¸ÂÃÍ¤Ï +共有メモリ・セグメントのバイト単位の大きさの上限: 方針依存 +(Linux では、この上限値は .I /proc/sys/kernel/shmmax -·Ðͳ¤Ç»²¾È¤·¤¿¤ê¡¢Êѹ¹¤·¤¿¤ê¤Ç¤­¤ë)¡£ +経由で参照したり、変更したりできる)。 .TP .B SHMMIN .\"O Minimum size in bytes for a shared memory segment: implementation .\"O dependent (currently 1 byte, though .\"O .B PAGE_SIZE .\"O is the effective minimum size). -¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Î¥Ð¥¤¥Èñ°Ì¤ÎÂ礭¤µ¤Î²¼¸Â: ¼ÂÁõ°Í¸ -(¸½ºß¤Ï 1 ¥Ð¥¤¥È¤À¤¬¡¢¼Â¼ÁŪ¤ÊºÇ¾®¥µ¥¤¥º¤Ï +共有メモリ・セグメントのバイト単位の大きさの下限: 実装依存 +(現在は 1 バイトだが、実質的な最小サイズは .B PAGE_SIZE -¤Ç¤¢¤ë)¡£ +である)。 .TP .B SHMMNI .\"O System wide maximum number of shared memory segments: implementation @@ -475,47 +475,47 @@ SVr4, POSIX.1-2001. .\"O .\" Kernels between 2.4.x and 2.6.8 had an off-by-one error that meant .\"O .\" that we could create one more segment than SHMMNI -- MTK .\"O .\" This /proc file is not available in Linux 2.2 and earlier -- MTK -¥·¥¹¥Æ¥àÁ´ÂΤζ¦Í­¥á¥â¥ê¡¼¤Î¿ô¤Î¾å¸Â: ¼ÂÁõ°Í¸ -(¸½ºß¤Ï 4096¡£Linux 2.3.99 ¤è¤êÁ°¤Ç¤Ï 128¡£ -Linux ¤Ç¤Ï¡¢¤³¤Î¾å¸ÂÃÍ¤Ï +システム全体の共有メモリーの数の上限: 実装依存 +(現在は 4096。Linux 2.3.99 より前では 128。 +Linux では、この上限値は .I /proc/sys/kernel/shmmni -·Ðͳ¤Ç»²¾È¤·¤¿¤ê¡¢Êѹ¹¤·¤¿¤ê¤Ç¤­¤ë)¡£ -.\" 2.4.x ¤È 2.6.8 ¤Î´Ö¤Î¥«¡¼¥Í¥ë¤Ë¤Ï¡¢SHMMNI ¤è¤ê°ì¤Ä¤Î¿¤¯¤Î -.\" ¥»¥°¥á¥ó¥È¤òºîÀ®¤Ç¤­¤ë¤È¤¤¤¦¥Ð¥°¤¬¤¢¤Ã¤¿¡£ -.\" ¤³¤Î /proc ¥Õ¥¡¥¤¥ë¤Ï Linux 2.2 °ÊÁ°¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤ -- MTK +経由で参照したり、変更したりできる)。 +.\" 2.4.x と 2.6.8 の間のカーネルには、SHMMNI より一つの多くの +.\" セグメントを作成できるというバグがあった。 +.\" この /proc ファイルは Linux 2.2 以前では利用できない -- MTK .PP .\"O The implementation has no specific limits for the per-process maximum .\"O number of shared memory segments .\"O .RB ( SHMSEG ). -¥×¥í¥»¥¹Åö¤ê¤Î¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Î¸Ä¿ô¤ÎºÇÂçÃÍ +プロセス当りの共有メモリ・セグメントの個数の最大値 .RB ( SHMSEG ) -¤Ë´Ø¤¹¤ë¼ÂÁõ¾å¤ÎÀ©¸Â¤Ï¤Ê¤¤¡£ +に関する実装上の制限はない。 .\"O .SS LINUX NOTES .\"O Until version 2.3.30 Linux would return .\"O .B EIDRM .\"O for a .\"O .BR shmget () .\"O on a shared memory segment scheduled for deletion. -.SS Linux ¤Ç¤ÎÃí°Õ -¥Ð¡¼¥¸¥ç¥ó 2.3.30 ¤Þ¤Ç¤Ï¡¢Linux ¤Ï -ºï½ü¤¬Í½Äꤵ¤ì¤Æ¤¤¤ë¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ËÂФ·¤Æ +.SS Linux での注意 +バージョン 2.3.30 までは、Linux は +削除が予定されている共有メモリ・セグメントに対して .BR shmget () -¤¬¹Ô¤ï¤ì¤ë¤È +が行われると .B EIDRM -¤òÊÖ¤·¤Æ¤¤¤¿¡£ +を返していた。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O The name choice .\"O .B IPC_PRIVATE .\"O was perhaps unfortunate, .\"O .B IPC_NEW .\"O would more clearly show its function. .B IPC_PRIVATE -¤È¤¤¤¦Ì¾Á°¤òÁª¤ó¤À¤Î¤Ï¤ª¤½¤é¤¯¼ºÇԤǤ¢¤í¤¦¡£ +という名前を選んだのはおそらく失敗であろう。 .B IPC_NEW -¤ÎÊý¤¬¤è¤êÌÀ³Î¤Ë¤½¤Îµ¡Ç½¤òɽ¤·¤Æ¤¤¤ë¤À¤í¤¦¡£ +の方がより明確にその機能を表しているだろう。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR shmat (2), .BR shmctl (2), .BR shmdt (2), diff --git a/draft/man2/shmop.2 b/draft/man2/shmop.2 index 3bf7171a..43107cbe 100644 --- a/draft/man2/shmop.2 +++ b/draft/man2/shmop.2 @@ -46,25 +46,25 @@ .\" Updated 2005-12-05, Akihiro MOTOKI, Catch up to LDP man-pages 2.16 .\" Updated 2006-04-14, Akihiro MOTOKI, Catch up to LDP man-pages 2.29 .\" -.\"WORD: shared memory ¶¦Í­¥á¥â¥ê -.\"WORD: segment ¥»¥°¥á¥ó¥È -.\"WORD: super-user ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ -.\"WORD: detach ʬΥ -.\"WORD: attach Éղà -.\"WORD: member ¥á¥ó¥Ð¡¼ -.\"WORD: implement ¼ÂÁõ -.\"WORD: page aligned ¥Ú¡¼¥¸¶­³¦¤Ë¹ç¤Ã¤¿ -.\"WORD: unaligned ¶­³¦°ãÈ¿ -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ -.\"WORD: parameter ¥Ñ¥é¥á¡¼¥¿¡¼ +.\"WORD: shared memory 共有メモリ +.\"WORD: segment セグメント +.\"WORD: super-user スーパー・ユーザー +.\"WORD: detach 分離 +.\"WORD: attach 付加 +.\"WORD: member メンバー +.\"WORD: implement 実装 +.\"WORD: page aligned ページ境界に合った +.\"WORD: unaligned 境界違反 +.\"WORD: descriptor ディスクリプター +.\"WORD: parameter パラメーター .\" .TH SHMOP 2 2008-06-03 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O shmop, shmat, shmdt \- shared memory operations -shmat, shmdt \- ¶¦Í­¥á¥â¥ê (shared memory) ¤ÎÁàºî +shmat, shmdt \- 共有メモリ (shared memory) の操作 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -74,22 +74,22 @@ shmat, shmdt \- .BI "int shmdt(const void *" shmaddr ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR shmat () .\"O attaches the shared memory segment identified by .\"O .I shmid .\"O to the address space of the calling process. .BR shmat () -¤Ï +は .I shmid -¤Ç»ØÄꤵ¤ì¤¿¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È (shared memory segment) ¤ò -¥³¡¼¥ë¤·¤¿¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ËÉղà (attach) ¤¹¤ë¡£ +で指定された共有メモリ・セグメント (shared memory segment) を +コールしたプロセスのアドレス空間に付加 (attach) する。 .\"O The attaching address is specified by .\"O .I shmaddr .\"O with one of the following criteria: -Éղ乤륢¥É¥ì¥¹¤Ï +付加するアドレスは .I shmaddr -¤Ë°Ê²¼¤Î¤É¤ì¤«¤Î·Á¼°¤Ç»ØÄꤹ¤ë: +に以下のどれかの形式で指定する: .LP .\"O If .\"O .I shmaddr @@ -97,8 +97,8 @@ shmat, shmdt \- .\"O the system chooses a suitable (unused) address at which to attach .\"O the segment. .I shmaddr -¤¬ NULL ¤Ê¤é¤Ð¡¢¥·¥¹¥Æ¥à¤Ï¥»¥°¥á¥ó¥È¤òÉղ乤뤿¤á¤Î -ŬÀÚ¤Ê (»ÈÍѤµ¤ì¤Æ¤¤¤Ê¤¤) ¥¢¥É¥ì¥¹¤òÁªÂò¤¹¤ë¡£ +が NULL ならば、システムはセグメントを付加するための +適切な (使用されていない) アドレスを選択する。 .LP .\"O If .\"O .I shmaddr @@ -112,21 +112,21 @@ shmat, shmdt \- .\"O rounded down to the nearest multiple of .\"O .BR SHMLBA . .I shmaddr -¤¬ NULL ¤Ç¤Ê¤¯ +が NULL でなく .B SHM_RND -¤¬ +が .I shmflg -¤Ë»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ +に指定されている場合は、 .I shmaddr -¤ò +を .B SHMLBA -¤ÎÇÜ¿ô¤Ø¤ÈÀÚ¤ê¼Î¤Æ¤¿ (rounding down) ¤Î¤ÈÅù¤·¤¤¥¢¥É¥ì¥¹¤ØÉղ乤롣 +の倍数へと切り捨てた (rounding down) のと等しいアドレスへ付加する。 .\"O Otherwise .\"O .I shmaddr .\"O must be a page-aligned address at which the attach occurs. -¤½¤Î¾¤Î¾ì¹ç¤Ï +その他の場合は .I shmaddr -¤ÏÉղäò¹Ô¤Ê¤¦¥¢¥É¥ì¥¹¤Ç¡¢¥Ú¡¼¥¸¶­³¦¤ò»Ø¤·¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ +は付加を行なうアドレスで、ページ境界を指している必要がある。 .PP .\"O If .\"O .B SHM_RDONLY @@ -135,17 +135,17 @@ shmat, shmdt \- .\"O the segment is attached for reading and the process must have .\"O read permission for the segment. .B SHM_RDONLY -¤¬ +が .I shmflg -¤Ë»ØÄꤵ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ï¡¢ -¥»¥°¥á¥ó¥È¤ÏÆɤ߹þ¤ßÀìÍѤËÉղ䵤졢¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥°¥á¥ó¥È¤Ø¤Î -Æɤ߹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +に指定されていた場合は、 +セグメントは読み込み専用に付加され、プロセスはそのセグメントへの +読み込み許可を持たなければならない。 .\"O Otherwise the segment is attached for read and write .\"O and the process must have read and write permission for the segment. .\"O There is no notion of a write-only shared memory segment. -¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¤½¤Î¥»¥°¥á¥ó¥È¤ÏÆɤ߹þ¤ß¤È½ñ¤­¹þ¤ß¤Î¤¿¤á¤ËÉղ䵤졢 -¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥°¥á¥ó¥È¤ËÆɤ߹þ¤ß¤È½ñ¤­¹þ¤ß¤Îµö²Ä¤ò»ý¤ÄɬÍפ¬¤¢¤ë¡£ -½ñ¤­¹þ¤ßÀìÍѤζ¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤È¤¤¤¦³µÇ°¤Ï¸ºß¤·¤Ê¤¤¡£ +そうでなければそのセグメントは読み込みと書き込みのために付加され、 +プロセスはそのセグメントに読み込みと書き込みの許可を持つ必要がある。 +書き込み専用の共有メモリ・セグメントという概念は存在しない。 .PP .\"O The (Linux-specific) .\"O .B SHM_REMAP @@ -155,40 +155,40 @@ shmat, shmdt \- .\"O any existing mapping in the range starting at .\"O .I shmaddr .\"O and continuing for the size of the segment. -(Linux ÆÃÍ­¤Î) +(Linux 特有の) .B SHM_REMAP -¥Õ¥é¥°¤¬ +フラグが .I shmflg -¤Ë»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢ -¥»¥°¥á¥ó¥È¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò´û¸¤Î¥Þ¥Ã¥Ô¥ó¥°¤ËÃÖ¤­´¹¤¨¤ë¡£ -¥Þ¥Ã¥Ô¥ó¥°¤ÎÈϰϤϡ¢ +に指定された場合は、 +セグメントのマッピングを既存のマッピングに置き換える。 +マッピングの範囲は、 .I shmaddr -¤«¤é»Ï¤Þ¤ê¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥ºÊ¬¤À¤±¤¢¤ë +から始まりセグメントのサイズ分だけある .\"O (Normally an .\"O .B EINVAL .\"O error would result if a mapping already exists in this address range.) .\"O In this case, .\"O .I shmaddr .\"O must not be NULL. -(Ä̾ï +(通常 .B EINVAL -¥¨¥é¡¼¤Ï¡¢¤³¤Î¥¢¥É¥ì¥¹ÈϰϤ˥ޥåԥ󥰤¬´û¤Ë¸ºß¤¹¤ë¤¿¤á¤Ëµ¯¤ë)¡£ -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¾ì¹ç¤Ï¡¢ +エラーは、このアドレス範囲にマッピングが既に存在するために起る)。 +このフラグを指定する場合は、 .I shmaddr -¤¬ NULL ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +が NULL であってはならない。 .PP .\"O The .\"O .BR brk (2) .\"O value of the calling process is not altered by the attach. -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î +呼び出したプロセスの .BR brk (2) -¤ÎÃͤÏÉղäˤè¤Ã¤ÆÊѲ½¤·¤Ê¤¤¡£ +の値は付加によって変化しない。 .\"O The segment will automatically be detached at process exit. -¤½¤Î¥»¥°¥á¥ó¥È¤Ï¥×¥í¥»¥¹¤¬½ªÎ» (exit) ¤·¤¿¤é¼«Æ°Åª¤ËʬΥ (detach) ¤µ¤ì¤ë¡£ +そのセグメントはプロセスが終了 (exit) したら自動的に分離 (detach) される。 .\"O The same segment may be attached as a read and as a read-write .\"O one, and more than once, in the process's address space. -Ʊ¤¸¥»¥°¥á¥ó¥È¤ò¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¡¢Æɤ߹þ¤ßÀìÍѤª¤è¤ÓÆɤ߽ñ¤­Î¾ÍÑ -¤È¤·¤ÆÉղäǤ­¡¢¤Þ¤¿Ê£¿ô²óÉղ乤뤳¤È¤â¤Ç¤­¤ë¡£ +同じセグメントをプロセスのアドレス空間に、読み込み専用および読み書き両用 +として付加でき、また複数回付加することもできる。 .PP .\"O A successful .\"O .BR shmat () @@ -197,101 +197,101 @@ shmat, shmdt \- .\"O structure (see .\"O .BR shmctl (2)) .\"O associated with the shared memory segment as follows: -À®¸ù¤·¤¿ +成功した .BR shmat () -¥³¡¼¥ë¤Ï¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Ë´ØÏ¢¤¹¤ë +コールは共有メモリ・セグメントに関連する .I shmid_ds -¹½Â¤ÂÎ +構造体 .RB ( shmctl (2) -¤ò»²¾È) ¤Î¥á¥ó¥Ð¡¼¤ò°Ê²¼¤Î¤è¤¦¤Ë¹¹¿·¤¹¤ë: +を参照) のメンバーを以下のように更新する: .IP .\"O .I shm_atime .\"O is set to the current time. .I shm_atime -¤Ë¤Ï¸½ºß¤Î»þ¹ï¤òÀßÄꤹ¤ë¡£ +には現在の時刻を設定する。 .IP .\"O .I shm_lpid .\"O is set to the process-ID of the calling process. .I shm_lpid -¤Ë¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤òÀßÄꤹ¤ë¡£ +には呼び出したプロセスのプロセス ID を設定する。 .IP .\"O .I shm_nattch .\"O is incremented by one. .I shm_nattch -¤ò 1 Áý²Ã¤µ¤»¤ë¡£ +を 1 増加させる。 .PP .\"O .BR shmdt () .\"O detaches the shared memory segment located at the address specified by .\"O .I shmaddr .\"O from the address space of the calling process. .BR shmdt () -¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤«¤é +は呼び出したプロセスのアドレス空間から .I shmaddr -¤Ç»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤ËÇÛÃÖ¤µ¤ì¤¿¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤òʬΥ (detach) ¤¹¤ë¡£ +で指定されたアドレスに配置された共有メモリ・セグメントを分離 (detach) する。 .\"O The to-be-detached segment must be currently .\"O attached with .\"O .I shmaddr .\"O equal to the value returned by the attaching .\"O .BR shmat () .\"O call. -ʬΥ¤¹¤ë¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Ï¡¢¸½ºß +分離する共有メモリ・セグメントは、現在 .I shmaddr -¤ËÉղ䵤ì¤Æ¤¤¤ë¤â¤Î¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +に付加されているものでなければならない。 .I shmaddr -¤Ï¡¢¤½¤ì¤òÉղä·¤¿»þ¤Ë +は、それを付加した時に .BR shmat () -¤¬ÊÖ¤·¤¿ÃͤËÅù¤·¤¯¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +が返した値に等しくなければならない。 .PP .\"O On a successful .\"O .BR shmdt () .\"O call the system updates the members of the .\"O .I shmid_ds .\"O structure associated with the shared memory segment as follows: -À®¸ù¤·¤¿ +成功した .BR shmdt () -¥³¡¼¥ë¤Ï¤½¤Î¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Ë´ØÏ¢¤¹¤ë +コールはその共有メモリ・セグメントに関連する .I shmid_ds -¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤ò°Ê²¼¤Î¤è¤¦¤Ë¹¹¿·¤¹¤ë: +構造体のメンバーを以下のように更新する: .IP .\"O .I shm_dtime .\"O is set to the current time. .I shm_dtime -¤Ë¤Ï¸½ºß¤Î»þ¹ï¤¬ÀßÄꤵ¤ì¤ë¡£ +には現在の時刻が設定される。 .IP .\"O .I shm_lpid .\"O is set to the process-ID of the calling process. .I shm_lpid -¤Ë¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤¬ÀßÄꤵ¤ì¤ë¡£ +には呼び出したプロセスのプロセス ID が設定される。 .IP .\"O .I shm_nattch .\"O is decremented by one. .I shm_nattch -¤ò 1 ¸º¾¯¤µ¤»¤ë¡£ +を 1 減少させる。 .\"O If it becomes 0 and the segment is marked for deletion, .\"O the segment is deleted. -¤â¤· 0 ¤Ë¤Ê¤ê¡¢ºï½ü¥Þ¡¼¥¯¤¬¤¢¤Ã¤¿¾ì¹ç¤Ï -¤½¤Î¥»¥°¥á¥ó¥È¤Ïºï½ü¤µ¤ì¤ë¡£ +もし 0 になり、削除マークがあった場合は +そのセグメントは削除される。 .PP .\"O After a .\"O .BR fork (2) .\"O the child inherits the attached shared memory segments. .BR fork (2) -¤·¤¿¸å¡¢»Ò¥×¥í¥»¥¹¤ÏÉղ䵤줿¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ò·Ñ¾µ¤¹¤ë¡£ +した後、子プロセスは付加された共有メモリ・セグメントを継承する。 .\"O After an .\"O .BR exec (2) .\"O all attached shared memory segments are detached from the process. .BR exec (2) -¤·¤¿¸å¡¢Á´¤Æ¤ÎÉղ䵤줿¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Ï¥×¥í¥»¥¹¤«¤éʬΥ¤µ¤ì¤ë¡£ +した後、全ての付加された共有メモリ・セグメントはプロセスから分離される。 .\"O Upon .\"O .BR exit (2) .\"O all attached shared memory segments are detached from the process. .BR exit (2) -¤Ë¤ª¤¤¤Æ¡¢Á´¤Æ¤ÎÉղ䵤줿¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Ï¥×¥í¥»¥¹¤«¤éʬΥ¤µ¤ì¤ë¡£ +において、全ての付加された共有メモリ・セグメントはプロセスから分離される。 .PP .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success .\"O .BR shmat () .\"O returns the address of the attached shared memory segment; on error @@ -300,13 +300,13 @@ shmat, shmdt \- .\"O .I errno .\"O is set to indicate the cause of the error. .BR shmat () -¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¡¢ -Éղ䵤줿¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Î¥¢¥É¥ì¥¹¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ +は、成功した場合、 +付加された共有メモリ・セグメントのアドレスを返す。 +エラーの場合、 .I (void\ *)\ \-1 -¤òÊÖ¤·¡¢ +を返し、 .I errno -¤Ë¥¨¥é¡¼¤Î¸¶°ø¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーの原因を示す値を設定する。 .\"O On success .\"O .BR shmdt () @@ -314,30 +314,30 @@ shmat, shmdt \- .\"O .I errno .\"O is set to indicate the cause of the error. .BR shmdt () -¤Ï¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は、成功すると 0 を返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤Î¸¶°ø¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーの原因を示す値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O When .\"O .BR shmat () .\"O fails, .\"O .I errno .\"O is set to one of the following: .BR shmat () -¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +が失敗した場合、 .I errno -¤Ë°Ê²¼¤ÎÃͤΤɤ줫¤òÀßÄꤷ¤ÆÊÖ¤¹: +に以下の値のどれかを設定して返す: .TP .B EACCES .\"O The calling process does not have the required permissions for .\"O the requested attach type, and does not have the .\"O .B CAP_IPC_OWNER .\"O capability. -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ËÍ׵ᤵ¤ì¤¿¼ïÎà¤ÎÉղäËɬÍפʵö²Ä¤¬¤Ê¤¯¡¢ +呼び出したプロセスに要求された種類の付加に必要な許可がなく、 .B CAP_IPC_OWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤¬¤Ê¤¤¡£ +ケーパビリティ (capability) がない。 .TP .B EINVAL .\"O Invalid @@ -348,28 +348,28 @@ shmat, shmdt \- .\"O value, or can't attach segment at .\"O .IR shmaddr , .I shmid -¤ÎÃͤ¬ÉÔÀµ¤Ç¤¢¤ë¡£ +の値が不正である。 .I shmaddr -¤ÎÃͤ¬¶­³¦°ãÈ¿ (unaligned) (¤Ä¤Þ¤ê¡¢¥Ú¡¼¥¸¶­³¦¤Ë¹ç¤Ã¤Æ¤ª¤é¤º¡¢ -\fBSHM_RND\fP ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤) ¤Þ¤¿¤Ï -¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +の値が境界違反 (unaligned) (つまり、ページ境界に合っておらず、 +\fBSHM_RND\fP が指定されていない) または +が不正である。 .I shmaddr -¤Ø¤Î¥»¥°¥á¥ó¥È¤ÎÉղä˼ºÇÔ¤·¤¿¡£ +へのセグメントの付加に失敗した。 .\"O or .\"O .B SHM_REMAP .\"O was specified and .\"O .I shmaddr .\"O was NULL. -¤Þ¤¿¤Ï +または .B SHM_REMAP -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤¬¡¢ +が指定されているが、 .I shmaddr -¤¬ NULL ¤Ç¤¢¤Ã¤¿¡£ +が NULL であった。 .TP .B ENOMEM .\"O Could not allocate memory for the descriptor or for the page tables. -¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ (descriptor) ¤ä¥Ú¡¼¥¸¡¦¥Æ¡¼¥Ö¥ë¤Î¤¿¤á¤Î¥á¥â¥ê¤ò -³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +ディスクリプター (descriptor) やページ・テーブルのためのメモリを +割り当てることができない。 .PP .\"O When .\"O .BR shmdt () @@ -377,9 +377,9 @@ shmat, shmdt \- .\"O .I errno .\"O is set as follows: .BR shmdt () -¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +が失敗した場合、 .B EINVAL -¤Ï°Ê²¼¤Î¤è¤¦¤Ë¥»¥Ã¥È¤µ¤ì¤ë: +は以下のようにセットされる: .TP .B EINVAL .\"O There is no shared memory segment attached at @@ -389,16 +389,16 @@ shmat, shmdt \- .\"O .I shmaddr .\"O is not aligned on a page boundary. .I shmaddr -¤ËÉղ䵤줿¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤¬Â¸ºß¤·¤Ê¤¤¡£ -¤â¤·¤¯¤Ï¡¢ -.\" ¤³¤Á¤é¤Ï 2.6.17-rc1 °Ê¹ß¤Î¾ì¹ç¤À¤±¡£ +に付加された共有メモリ・セグメントが存在しない。 +もしくは、 +.\" こちらは 2.6.17-rc1 以降の場合だけ。 .I shmaddr -¤¬¥Ú¡¼¥¸¶­³¦¤Ë¹ç¤Ã¤Æ¤¤¤Ê¤¤¡£ +がページ境界に合っていない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001. .\"O .\" SVr4 documents an additional error condition EMFILE. -.\" SVr4 ¤Ë¤Ï¾¤Ë EMFILE ¥¨¥é¡¼¾õÂ֤ˤĤ¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ +.\" SVr4 には他に EMFILE エラー状態についての記述がある。 .\"O In SVID 3 (or perhaps earlier) .\"O the type of the \fIshmaddr\fP argument was changed from @@ -415,60 +415,60 @@ SVr4, POSIX.1-2001. .\"O .I "char *" .\"O prototypes; glibc2 has .\"O .IR "void *" .) -SVID 3 ¤Ç (¤¿¤Ö¤ó¤½¤ì¤è¤êÁ°¤À¤È»×¤¦¤¬) -\fIshmaddr\fP °ú¤­¿ô¤Î·¿¤Ï +SVID 3 で (たぶんそれより前だと思うが) +\fIshmaddr\fP 引き数の型は .I "char *" -¤«¤é +から .I "const void *" -¤Ë¡¢\fIshmat\fP() ¤ÎÊÖ¤êÃͤη¿¤Ï +に、\fIshmat\fP() の返り値の型は .I "char *" -¤«¤é +から .I "void *" -¤ËÊѹ¹¤µ¤ì¤¿ -(Linux ¤Ç¤Ï libc4 ¤È libc5 ¤Î¥×¥í¥È¥¿¥¤¥×¤Ï +に変更された +(Linux では libc4 と libc5 のプロトタイプは .I "char *" -¤Ç¤¢¤ê¡¢glibc2 ¤Î¥×¥í¥È¥¿¥¤¥×¤Ï +であり、glibc2 のプロトタイプは .I "void *" -¤Ç¤¢¤ë)¡£ +である)。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Using .\"O .BR shmat () .\"O with .\"O .I shmaddr .\"O equal to NULL .\"O is the preferred, portable way of attaching a shared memory segment. -¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤òÉղ乤ë¾ì¹ç¤Î°Ü¿¢À­¤Î¹â¤¤ÊýË¡¤È¤·¤Æ¤Ï¡¢ +共有メモリセグメントを付加する場合の移植性の高い方法としては、 .I shmaddr -¤ò NULL ¤Ë¤·¤Æ +を NULL にして .BR shmat () -¤ò»ÈÍѤ¹¤ë¤Î¤¬¤è¤¤¡£ +を使用するのがよい。 .\"O Be aware that the shared memory segment attached in this way .\"O may be attached at different addresses in different processes. -¤³¤Î¤è¤¦¤ÊÊýË¡¤ÇÉղ䵤ì¤ë¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤Ï¡¢ -¥×¥í¥»¥¹¤¬°Û¤Ê¤ì¤ÐÊ̤Υ¢¥É¥ì¥¹¤ËÉղ䵤ì¤ë¡¢¤È¤¤¤¦ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +このような方法で付加される共有メモリセグメントは、 +プロセスが異なれば別のアドレスに付加される、という点に注意すること。 .\"O Therefore, any pointers maintained within the shared memory must be .\"O made relative (typically to the starting address of the segment), .\"O rather than absolute. -¤è¤Ã¤Æ¶¦Í­¥á¥â¥êÆâ¤Ç´ÉÍý¤µ¤ì¤ë¥Ý¥¤¥ó¥¿¤Ï¡¢ -ÀäÂÐ¥¢¥É¥ì¥¹¤Ç¤Ï¤Ê¤¯¡¢ -(°ìÈÌŪ¤Ë¤Ï¥»¥°¥á¥ó¥È¤Î³«»Ï¥¢¥É¥ì¥¹¤«¤é¤Î) -ÁêÂÐ¥¢¥É¥ì¥¹¤ÇºîÀ®¤¹¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +よって共有メモリ内で管理されるポインタは、 +絶対アドレスではなく、 +(一般的にはセグメントの開始アドレスからの) +相対アドレスで作成するべきである。 .PP .\"O On Linux, it is possible to attach a shared memory segment even if it .\"O is already marked to be deleted. .\"O However, POSIX.1-2001 does not specify this behavior and .\"O many other implementations do not support it. -Linux ¤Ç¤Ï¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤Ë´û¤Ëºï½ü¥Þ¡¼¥¯¤¬ÉÕ¤±¤é¤ì¤Æ¤¤¤Æ¤â¡¢ -¤½¤Î¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤òÉղ乤뤳¤È¤¬¤Ç¤­¤ë¡£ -¤·¤«¤· POSIX.1-2001 ¤Ç¤Ï¤³¤Î¤è¤¦¤ÊÆ°ºî¤ò»ØÄꤷ¤Æ¤ª¤é¤º¡¢ -¾¤Î¿¤¯¤Î¼ÂÁõ¤â¤³¤ì¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +Linux では共有メモリセグメントに既に削除マークが付けられていても、 +その共有メモリセグメントを付加することができる。 +しかし POSIX.1-2001 ではこのような動作を指定しておらず、 +他の多くの実装もこれをサポートしていない。 .LP .\"O The following system parameter affects .\"O .BR shmat (): -°Ê²¼¤Î¥·¥¹¥Æ¥à¡¦¥Ñ¥é¥á¡¼¥¿¡¼¤Ï¡¢ +以下のシステム・パラメーターは、 .BR shmat () -¤Ë±Æ¶Á¤¹¤ë: +に影響する: .TP .\" FIXME A good explanation of the rationale for the existence .\" of SHMLBA would be useful here @@ -479,12 +479,12 @@ Linux .\"O .B SHMLBA .\"O value is .\"O .BR PAGE_SIZE . -¥»¥°¥á¥ó¥È¤Î¶­³¦¥¢¥É¥ì¥¹¤ÎºÇ¾®ÇÜ¿ô¡£¥Ú¡¼¥¸¶­³¦¤Ë¹ç¤Ã¤Æ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¸½ºß¤Î¼ÂÁõ¤Ç¤Ï +セグメントの境界アドレスの最小倍数。ページ境界に合ってなければならない。 +現在の実装では .B SHMLBA -¤ÎÃÍ¤Ï +の値は .B PAGE_SIZE -¤Ç¤¢¤ë¡£ +である。 .\" FIXME That last sentence isn't true for all Linux .\" architectures (i.e., SHMLBA != PAGE_SIZE for some architectures) .\" -- MTK, Nov 04 @@ -492,12 +492,12 @@ Linux .\"O The implementation places no intrinsic limit on the per-process maximum .\"O number of shared memory segments .\"O .RB ( SHMSEG ). -¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¡¢¥×¥í¥»¥¹¤´¤È¤Î -¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ÎºÇÂç¿ô +現在の実装では、プロセスごとの +共有メモリ・セグメントの最大数 .RB ( SHMSEG ) -¤Ë´Ø¤¹¤ë¼ÂÁõ°Í¸¤ÎÀ©¸Â¤Ï¤Ê¤¤¡£ +に関する実装依存の制限はない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR brk (2), .BR mmap (2), .BR shmctl (2), diff --git a/draft/man2/shutdown.2 b/draft/man2/shutdown.2 index 4980306b..e3e09c21 100644 --- a/draft/man2/shutdown.2 +++ b/draft/man2/shutdown.2 @@ -45,13 +45,13 @@ .\" Updated Mon Oct 15 03:22:24 JST 2001 by Kentaro Shirakata .\" .TH SHUTDOWN 2 2008-12-03 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -shutdown \- Á´Æó½ÅÀܳ¤Î°ìÉô¤òÊĤ¸¤ë -.SH ½ñ¼° +.SH 名前 +shutdown \- 全二重接続の一部を閉じる +.SH 書式 .B #include .sp .BI "int shutdown(int " sockfd ", int " how ); -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR shutdown () .\"O call causes all or part of a full-duplex connection on the socket @@ -74,44 +74,44 @@ shutdown \- .\"O .BR SHUT_RDWR , .\"O further receptions and transmissions will be disallowed. .BR shutdown () -¤Ï¡¢ +は、 .I sockfd -¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ë¥½¥±¥Ã¥È¤Ë¤è¤ëÁ´Æó½ÅÀܳ (full-duplex connection) -¤Î°ìÉô¤Þ¤¿¤ÏÁ´¤Æ¤òÊĤ¸¤ë¡£ +に関連づけられているソケットによる全二重接続 (full-duplex connection) +の一部または全てを閉じる。 .I how -¤¬ +が .B SHUT_RD -¤Ê¤é¤Ð¡¢¤½¤ì°Ê¹ß¤Î¼õ¿®¤ò¶Ø»ß¤¹¤ë¡£ +ならば、それ以降の受信を禁止する。 .I how -¤¬ +が .B SHUT_WR -¤Ê¤é¤Ð¡¢¤½¤ì°Ê¹ß¤ÎÁ÷¿®¤ò¶Ø»ß¤¹¤ë¡£ +ならば、それ以降の送信を禁止する。 .I how -¤¬ +が .B SHUT_RDWR -¤Ê¤é¤Ð¡¢¤½¤ì°Ê¹ß¤ÎÁ÷¼õ¿®¤ò¶Ø»ß¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï \-1 ¤òÊÖ¤·¡¢ +ならば、それ以降の送受信を禁止する。 +.SH 返り値 +成功した場合にはゼロを返す。失敗した場合には \-1 を返し、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EBADF .I sockfd -¤¬Í­¸ú¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ç¤Ê¤¤¡£ +が有効なディスクリプターでない。 .TP .B ENOTCONN -»ØÄꤵ¤ì¤¿¥½¥±¥Ã¥È¤ÏÀܳ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +指定されたソケットは接続されていない。 .TP .B ENOTSOCK .I sockfd -¤¬¥½¥±¥Ã¥È¤Ç¤Ê¤¯¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ -.SH ½àµò +がソケットでなくファイルである。 +.SH 準拠 POSIX.1-2001, 4.4BSD .RB ( shutdown () -´Ø¿ô¥³¡¼¥ë¤Ï 4.2BSD ¤Ç½é¤á¤ÆÅо줷¤¿)¡£ +関数コールは 4.2BSD で初めて登場した)。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The constants .\"O .BR SHUT_RD , .\"O .BR SHUT_WR , @@ -123,11 +123,11 @@ POSIX.1-2001, 4.4BSD .BR SHUT_RD , .BR SHUT_WR , .B SHUT_RDWR -¤Î³ÆÄê¿ô (¤½¤ì¤¾¤ì 0, 1, 2 ¤ÎÃͤò»ý¤Ä) ¤Ï -glibc-2.1.91 °Ê¹ß¡¢ +の各定数 (それぞれ 0, 1, 2 の値を持つ) は +glibc-2.1.91 以降、 .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +で定義されている。 +.SH 関連項目 .BR connect (2), .BR socket (2), .BR socket (7) diff --git a/draft/man2/sigaction.2 b/draft/man2/sigaction.2 index 68cd72d6..fccd8d57 100644 --- a/draft/man2/sigaction.2 +++ b/draft/man2/sigaction.2 @@ -50,26 +50,26 @@ .\" Updated 2008-08-08, Akihiro MOTOKI, LDP v3.05 .\" Updated 2010-04-18, Akihiro MOTOKI, LDP v3.24 .\" -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: signal handler ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é -.\"WORD: pointer ¥Ý¥¤¥ó¥¿¡¼ -.\"WORD: mask ¥Þ¥¹¥¯ -.\"WORD: block ¶Ø»ß(block) -.\"WORD: suspend Ää»ß(suspend) -.\"WORD: stop Ää»ß(stop) -.\"WORD: catch Êá³Í(catch) -.\"WORD: architecture ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¡¼ -.\"WORD: compatible ¸ß´¹À­ -.\"WORD: pottable °Ü¿¢À­ +.\"WORD: signal シグナル +.\"WORD: process プロセス +.\"WORD: signal handler シグナルハンドラ +.\"WORD: pointer ポインター +.\"WORD: mask マスク +.\"WORD: block 禁止(block) +.\"WORD: suspend 停止(suspend) +.\"WORD: stop 停止(stop) +.\"WORD: catch 捕獲(catch) +.\"WORD: architecture アーキテクチャー +.\"WORD: compatible 互換性 +.\"WORD: pottable 移植性 .\" .TH SIGACTION 2 2009-07-25 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sigaction \- examine and change a signal action -sigaction \- ¥·¥°¥Ê¥ë¤ÎÆ°ºî¤Î³Îǧ¤ÈÊѹ¹ +sigaction \- シグナルの動作の確認と変更 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -80,9 +80,9 @@ sigaction \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -90,7 +90,7 @@ glibc _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR sigaction () .\"O system call is used to change the action taken by a process on @@ -99,11 +99,11 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O .BR signal (7) .\"O for an overview of signals.) .BR sigaction () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ÆÃÄê¤Î¥·¥°¥Ê¥ë¤ò¼õ¿®¤·¤¿ºÝ¤Î -¥×¥í¥»¥¹¤ÎÆ°ºî¤òÊѹ¹¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë -(¥·¥°¥Ê¥ë¤Î³µÍפˤĤ¤¤Æ¤Ï +システムコールは、特定のシグナルを受信した際の +プロセスの動作を変更するのに使用される +(シグナルの概要については .BR signal (7) -¤ò»²¾È)¡£ +を参照)。 .PP .\"O .I signum .\"O specifies the signal and can be any valid signal except @@ -111,11 +111,11 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O and .\"O .BR SIGSTOP . .I signum -¤Ë¤Ï¡¢ +には、 .B SIGKILL -¤È +と .B SIGSTOP -°Ê³°¤ÎÍ­¸ú¤Ê¥·¥°¥Ê¥ë¤ò¤É¤ì¤Ç¤â»ØÄê¤Ç¤­¤ë¡£ +以外の有効なシグナルをどれでも指定できる。 .PP .\"O If .\"O .I act @@ -124,25 +124,25 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O is installed from .\"O .IR act . .I act -¤¬ NULL °Ê³°¤Ç¤¢¤ì¤Ð¡¢¥·¥°¥Ê¥ë +が NULL 以外であれば、シグナル .I signum -¤Î¿·¤·¤¤Æ°ºî (action) ¤È¤·¤Æ +の新しい動作 (action) として .I act -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .\"O If .\"O .I oldact .\"O is non-NULL, the previous action is saved in .\"O .IR oldact . .I oldact -¤¬ NULL ¤Ç¤Ê¤±¤ì¤Ð¡¢º£¤Þ¤Ç¤ÎÆ°ºî¤¬ +が NULL でなければ、今までの動作が .I oldact -¤Ë³ÊǼ¤µ¤ì¤ë¡£ +に格納される。 .PP .\"O The .\"O .I sigaction .\"O structure is defined as something like: .I sigaction -¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤Ê´¶¤¸¤ËÄêµÁ¤µ¤ì¤ë¡£ +構造体は以下のような感じに定義される。 .sp .in +4n .nf @@ -160,23 +160,23 @@ struct sigaction { .\"O .I sa_handler .\"O and .\"O .IR sa_sigaction . -¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤è¤Ã¤Æ¤Ï¶¦ÍÑÂÎ (union) ¤¬ÍѤ¤¤é¤ì¤Æ¤ª¤ê¡¢¤½¤Î¾ì¹ç¤Ë¤Ï +アーキテクチャによっては共用体 (union) が用いられており、その場合には .I sa_handler -¤È +と .I sa_sigaction -¤ÎξÊý¤òƱ»þ¤Ë³ä¤êÅö¤Æ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +の両方を同時に割り当てることはできない。 .PP .\"O The .\"O .I sa_restorer .\"O element is obsolete and should not be used. .I sa_restorer -Í×ÁǤÏÇÑ»ßͽÄê¤Ç¤¢¤ê»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +要素は廃止予定であり使用すべきではない。 .\"O POSIX does not specify a .\"O .I sa_restorer .\"O element. -POSIX ¤Ë¤Ï +POSIX には .I sa_restorer -Í×ÁǤ˴ؤ¹¤ëµ¬Äê¤Ï¤Ê¤¤¡£ +要素に関する規定はない。 .PP .\"O .I sa_handler .\"O specifies the action to be associated with @@ -188,16 +188,16 @@ POSIX .\"O to ignore this signal, or a pointer to a signal handling function. .\"O This function receives the signal number as its only argument. .I sa_handler -¤Ï +は .I signum -¤ËÂбþ¤¹¤ëÆ°ºî¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¡¢ -¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤ò¹Ô¤¦ -.BR SIG_DFL ¡¢ -¤½¤Î¥·¥°¥Ê¥ë¤ò̵»ë¤¹¤ë -.BR SIG_IGN ¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬ÀßÄê¤Ç¤­¤ë¡£ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é´Ø¿ô¤Î°ú¤­¿ô¤Ï°ì¤Ä¤Ç¤¢¤ê¡¢¥·¥°¥Ê¥ëÈֹ椬°ú¤­¿ô¤È¤·¤Æ -ÅϤµ¤ì¤ë¡£ +に対応する動作を指定するもので、 +デフォルトの動作を行う +.BR SIG_DFL 、 +そのシグナルを無視する +.BR SIG_IGN 、 +シグナルハンドラ関数へのポインタが設定できる。 +シグナルハンドラ関数の引き数は一つであり、シグナル番号が引き数として +渡される。 .PP .\"O If .\"O .B SA_SIGINFO @@ -216,21 +216,21 @@ POSIX .\"O .I ucontext_t .\"O (cast to \fIvoid\ *\fP) as its third argument. .I sa_flags -¤Ë +に .B SA_SIGINFO -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +が指定された場合、 .RI ( sa_handler -¤Ç¤Ï¤Ê¤¯) +ではなく) .I sa_sigaction -¤Ë¤è¤ê +により .I signum -¤ËÂбþ¤¹¤ë¥·¥°¥Ê¥ë¥Ï¥ó¥É¥ë´Ø¿ô¤¬»ØÄꤵ¤ì¤ë¡£ -»ØÄꤵ¤ì¤ë´Ø¿ô¤Ï¡¢ºÇ½é¤Î°ú¤­¿ô¤È¤·¤Æ¥·¥°¥Ê¥ëÈÖ¹æ¤ò¡¢ -ÆóÈÖÌܤΰú¤­¿ô¤È¤·¤Æ +に対応するシグナルハンドル関数が指定される。 +指定される関数は、最初の引き数としてシグナル番号を、 +二番目の引き数として .I siginfo_t -¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò¡¢»°ÈÖÌܤΰú¤­¿ô¤È¤·¤Æ (\fIvoid\ *\fP ¤Ë¥­¥ã¥¹¥È¤·¤¿) +へのポインタを、三番目の引き数として (\fIvoid\ *\fP にキャストした) .I ucontext_t -¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò¼õ¤±¤È¤ë¡£ +へのポインタを受けとる。 .PP .\"O .I sa_mask .\"O specifies a mask of signals which should be blocked @@ -242,23 +242,23 @@ POSIX .\"O .B SA_NODEFER .\"O flag is used. .I sa_mask -¤Ï¡¢¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¼Â¹ÔÃæ¤Ë¶Ø»ß (block) ¤¹¤Ù¤­¥·¥°¥Ê¥ë¤Î¥Þ¥¹¥¯¤ò»ØÄꤹ¤ë -(¥Ï¥ó¥É¥é¼Â¹ÔÃæ¤Î¥·¥°¥Ê¥ë¤Î¶Ø»ß¤Ï¡¢¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤¬µ¯Æ°¤µ¤ì¤¿¥¹¥ì¥Ã¥É -¤Î¥·¥°¥Ê¥ë¤Î¥Þ¥¹¥¯¤ËÄɲ乤뤳¤È¤Ç¹Ô¤ï¤ì¤ë)¡£ -¤µ¤é¤Ë¡¢ +は、シグナル・ハンドラ実行中に禁止 (block) すべきシグナルのマスクを指定する +(ハンドラ実行中のシグナルの禁止は、シグナル・ハンドラが起動されたスレッド +のシグナルのマスクに追加することで行われる)。 +さらに、 .B SA_NODEFER -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢¥Ï¥ó¥É¥é¤òµ¯Æ°¤¹¤ë¤­¤Ã¤«¤±¤È¤Ê¤ë -¥·¥°¥Ê¥ë¤Ë¤â +フラグが指定されていない場合は、ハンドラを起動するきっかけとなる +シグナルにも .I sa_mask -¤¬Å¬ÍѤµ¤ì¤ë¡£ +が適用される。 .PP .\"O .I sa_flags .\"O specifies a set of flags which modify the behavior of the signal. .\"O It is formed by the bitwise OR of zero or more of the following: .I sa_flags -¤Ï¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤ÎÆ°ºî¤òÊѹ¹¤¹¤ë¤¿¤á¤Î¥Õ¥é¥°¤Î½¸¹ç¤ò»ØÄꤹ¤ë¡£ +はシグナル・ハンドラの動作を変更するためのフラグの集合を指定する。 .I sa_flags -¤Ë¤Ï¡¢°Ê²¼¤Ë¼¨¤¹¥Õ¥é¥°¤Î (0 ¸Ä°Ê¾å¤Î) ÏÀÍýϤò¤È¤Ã¤¿¤â¤Î¤ò»ØÄꤹ¤ë¡£ +には、以下に示すフラグの (0 個以上の) 論理和をとったものを指定する。 .RS 4 .TP .B SA_NOCLDSTOP @@ -278,26 +278,26 @@ POSIX .\"O This flag is only meaningful when establishing a handler for .\"O .BR SIGCHLD . .I signum -¤¬ +が .B SIGCHLD -¤Î¾ì¹ç¡¢ -»Ò¥×¥í¥»¥¹¤¬Ää»ß¤·¤¿¤ê -(»Ò¥×¥í¥»¥¹¤¬ +の場合、 +子プロセスが停止したり +(子プロセスが .BR SIGSTOP ", " SIGTSTP ", " SIGTTIN ", " SIGTTOU -¤ò¼õ¤±¤¿¤È¤­) ºÆ³«¤·¤¿¤ê (»Ò¥×¥í¥»¥¹¤¬ +を受けたとき) 再開したり (子プロセスが .B SIGCONT -¤ò¼õ¤±¤¿¤È¤­) ¤·¤¿¤È¤­¤Ë +を受けたとき) したときに .B SIGCHLD -¤ÎÄÌÃΤò¼õ¤±¤Ê¤¤¡£ -¤³¤Î¥Õ¥é¥°¤Ï¡¢ +の通知を受けない。 +このフラグは、 .B SIGCHLD -¤ËÂФ·¤Æ¥Ï¥ó¥É¥é¤òÀßÄꤹ¤ëºÝ¤Ë¤Î¤ß°ÕÌ£¤ò»ý¤Ä¡£ +に対してハンドラを設定する際にのみ意味を持つ。 .TP .\"O .BR SA_NOCLDWAIT " (Since Linux 2.6)" -.BR SA_NOCLDWAIT " (Linux 2.6 °Ê¹ß)" +.BR SA_NOCLDWAIT " (Linux 2.6 以降)" .\"O .\" To be precise: Linux 2.5.60 -- MTK -(Linux 2.6 °Ê¹ß) -.\" Àµ³Î¤Ë¤Ï Linux 2.5.60 °Ê¹ß -- MTK +(Linux 2.6 以降) +.\" 正確には Linux 2.5.60 以降 -- MTK .\"O If .\"O .I signum .\"O is @@ -306,21 +306,21 @@ POSIX .\"O See also .\"O .BR waitpid (2). .I signum -¤¬ +が .B SIGCHLD -¤Î¾ì¹ç¡¢»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿¤È¤­¤Ë -»Ò¥×¥í¥»¥¹¤ò¥¾¥ó¥Ó¥×¥í¥»¥¹¤ËÊѲ½¤µ¤»¤Ê¤¤ +の場合、子プロセスが終了したときに +子プロセスをゾンビプロセスに変化させない .RB ( waitpid (2) -¤â»²¾È)¡£ +も参照)。 .\"O This flag is only meaningful when establishing a handler for .\"O .BR SIGCHLD , .\"O or when setting that signal's disposition to .\"O .BR SIG_DFL . -¤³¤Î¥Õ¥é¥°¤Ï¡¢ +このフラグは、 .B SIGCHLD -¤ËÂФ·¤Æ¥Ï¥ó¥É¥é¤òÀßÄꤹ¤ëºÝ¡¢¤â¤·¤¯¤Ï¤½¤Î¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤ò +に対してハンドラを設定する際、もしくはそのシグナルの処理方法を .B SIG_DFL -¤ËÀßÄꤹ¤ëºÝ¤Ë¤Î¤ß°ÕÌ£¤ò»ý¤Ä¡£ +に設定する際にのみ意味を持つ。 .\"O If the .\"O .B SA_NOCLDWAIT @@ -334,17 +334,17 @@ POSIX .\"O signal is generated in this case; .\"O on some other implementations, it is not. .BR SIGCHLD -¤ËÂФ·¤Æ¥Ï¥ó¥É¥é¤òÀßÄꤹ¤ëºÝ¤Ë +に対してハンドラを設定する際に .B SA_NOCLDWAIT -¥Õ¥é¥°¤ò¥»¥Ã¥È¤·¤¿¾ì¹ç¡¢ -»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿ºÝ¤Ë +フラグをセットした場合、 +子プロセスが終了した際に .B SIGCHLD -¥·¥°¥Ê¥ë¤¬À¸À®¤µ¤ì¤ë¤«¤É¤¦¤«¤Ï¡¢ -POSIX.1 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -Linux ¤Ç¤Ï¡¢¤³¤Î¾õ¶·¤Ç +シグナルが生成されるかどうかは、 +POSIX.1 では規定されていない。 +Linux では、この状況で .B SIGCHLD -¥·¥°¥Ê¥ë¤ÏÀ¸À®¤µ¤ì¤ë¡£ -¤¤¤¯¤Ä¤«¤Î¾¤Î¼ÂÁõ¤Ç¤ÏÀ¸À®¤µ¤ì¤Ê¤¤¡£ +シグナルは生成される。 +いくつかの他の実装では生成されない。 .TP .B SA_NODEFER .\"O Do not prevent the signal from being received from within its own signal @@ -352,11 +352,11 @@ Linux .\"O This flag is only meaningful when establishing a signal handler. .\"O .B SA_NOMASK .\"O is an obsolete, nonstandard synonym for this flag. -¤½¤ì¼«¿È¤Î¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¡¼¤ÎÆâÉô¤Ë¤¤¤ë»þ¤Ç¤â -¤½¤Î¥·¥°¥Ê¥ë¤ò¥Þ¥¹¥¯¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄꤹ¤ëºÝ¤Ë¤Î¤ß°ÕÌ£¤ò»ý¤Ä¡£ +それ自身のシグナル・ハンドラーの内部にいる時でも +そのシグナルをマスクしないようにする。 +このフラグはシグナルハンドラを設定する際にのみ意味を持つ。 .B SA_NOMASK -¤Ï¤³¤Î¥Õ¥é¥°¤ÈƱ¤¸°ÕÌ£¤À¤¬¡¢Çѻߤµ¤ì¤Æ¤ª¤ê¡¢Èóɸ½à¤Ç¤¢¤ë¡£ +はこのフラグと同じ意味だが、廃止されており、非標準である。 .TP .B SA_ONSTACK .\"O Call the signal handler on an alternate signal stack provided by @@ -364,10 +364,10 @@ Linux .\"O If an alternate stack is not available, the default stack will be used. .\"O This flag is only meaningful when establishing a signal handler. .BR sigaltstack (2) -¤ÇÄ󶡤µ¤ì¤ëÊ̤Υ·¥°¥Ê¥ë¡¦¥¹¥¿¥Ã¥¯¤Ç¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò¸Æ¤Ó½Ð¤¹¡£ -Ê̤Υ·¥°¥Ê¥ë¡¦¥¹¥¿¥Ã¥¯¤¬ÍøÍѲÄǽ¤Ç¤Ê¤±¤ì¤Ð¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥¹¥¿¥Ã¥¯¤¬ -»ÈÍѤµ¤ì¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄꤹ¤ëºÝ¤Ë¤Î¤ß°ÕÌ£¤ò»ý¤Ä¡£ +で提供される別のシグナル・スタックでシグナルハンドラを呼び出す。 +別のシグナル・スタックが利用可能でなければ、デフォルトのスタックが +使用される。 +このフラグはシグナルハンドラを設定する際にのみ意味を持つ。 .TP .BR SA_RESETHAND .\"O Restore the signal action to the default state once the signal handler @@ -375,10 +375,10 @@ Linux .\"O This flag is only meaningful when establishing a signal handler. .\"O .B SA_ONESHOT .\"O is an obsolete, nonstandard synonym for this flag. -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬¸Æ¤Ð¤ì¤ëÅ٤ˡ¢¥·¥°¥Ê¥ë¤ÎÆ°ºî¤ò¥Ç¥Õ¥©¥ë¥È¤ËÌ᤹¡£ -¤³¤Î¥Õ¥é¥°¤Ï¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄꤹ¤ëºÝ¤Ë¤Î¤ß°ÕÌ£¤ò»ý¤Ä¡£ +シグナルハンドラが呼ばれる度に、シグナルの動作をデフォルトに戻す。 +このフラグはシグナルハンドラを設定する際にのみ意味を持つ。 .B SA_ONESHOT -¤Ï¤³¤Î¥Õ¥é¥°¤ÈƱ¤¸°ÕÌ£¤À¤¬¡¢Çѻߤµ¤ì¤Æ¤ª¤ê¡¢Èóɸ½à¤Ç¤¢¤ë¡£ +はこのフラグと同じ意味だが、廃止されており、非標準である。 .TP .B SA_RESTART .\"O Provide behavior compatible with BSD signal semantics by making certain @@ -387,14 +387,14 @@ Linux .\"O See .\"O .BR signal (7) .\"O for a discussion of system call restarting. -¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¥·¥°¥Ê¥ë¤ÎÄÌÃΤÎÁ°¸å¤ÇºÆ³«¤Ç¤­¤ë¤è¤¦¤Ë¤·¤Æ¡¢ -BSD ¥·¥°¥Ê¥ëÊý¼° (semantics) ¤È¸ß´¹À­¤Î¤¢¤ëÆ°ºî¤òÄ󶡤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄꤹ¤ëºÝ¤Ë¤Î¤ß°ÕÌ£¤ò»ý¤Ä¡£ +いくつかのシステムコールをシグナルの通知の前後で再開できるようにして、 +BSD シグナル方式 (semantics) と互換性のある動作を提供する。 +このフラグはシグナルハンドラを設定する際にのみ意味を持つ。 .BR signal (7) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎºÆ³«¤Ë´Ø¤¹¤ëµÄÏÀ¤ò»²¾È¤Î¤³¤È¡£ +に書かれているシステムコールの再開に関する議論を参照のこと。 .TP .\"O .BR SA_SIGINFO " (since Linux 2.2)" -.BR SA_SIGINFO " (Linux 2.2 °Ê¹ß)" +.BR SA_SIGINFO " (Linux 2.2 以降)" .\"O The signal handler takes 3 arguments, not one. .\"O In this case, .\"O .I sa_sigaction @@ -404,14 +404,14 @@ BSD .\"O .\" (The .\"O .\" .I sa_sigaction .\"O .\" field was added in Linux 2.1.86.) -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ï°ì¤Ä¤Ç¤Ï¤Ê¤¯¡¢»°¤Ä¤Î°ú¤­¿ô¤ò»ý¤Ä¡£¤³¤Î¾ì¹ç¤Ï +シグナルハンドラは一つではなく、三つの引き数を持つ。この場合は .I sa_handler -¤Î¤«¤ï¤ê¤Ë +のかわりに .I sa_sigaction -¤òÀßÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -¤³¤Î¥Õ¥é¥°¤Ï¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄꤹ¤ëºÝ¤Ë¤Î¤ß°ÕÌ£¤ò»ý¤Ä¡£ +を設定しなければならない +このフラグはシグナルハンドラを設定する際にのみ意味を持つ。 .\" .RI ( sa_sigaction -.\" ¥Õ¥£¡¼¥ë¥É¤Ï Linux 2.1.86 ¤ÇÄɲ䵤줿)¡£ +.\" フィールドは Linux 2.1.86 で追加された)。 .RE .PP .\"O The @@ -420,9 +420,9 @@ BSD .\"O .I sa_sigaction .\"O is a struct with the following elements: .I sa_sigaction -¤Î¥Ñ¥é¥á¡¼¥¿ +のパラメータ .I siginfo_t -¤Ï°Ê²¼¤ÎÍ×ÁǤò»ý¤Ä¹½Â¤ÂΤǤ¢¤ë: +は以下の要素を持つ構造体である: .sp .in +4n .nf @@ -459,24 +459,24 @@ siginfo_t { .\"O .RI ( si_errno .\"O is generally unused on Linux.) .IR si_signo ", " si_errno ", " si_code -¤ÏÁ´¤Æ¤Î¥·¥°¥Ê¥ë¤ËÂФ·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë +は全てのシグナルに対して定義されている .RI ( si_errno -¤Ï Linux ¤Ç¤Ï°ìÈÌŪ¤Ë¤Ï»ÈÍѤµ¤ì¤Ê¤¤)¡£ +は Linux では一般的には使用されない)。 .\"O The rest of the struct may be a union, so that one should only .\"O read the fields that are meaningful for the given signal: -¹½Â¤ÂΤλĤê¤ÎÉôʬ¤Ï¡¢¶¦ÍÑÂÎ (union) ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤½¤Î¾ì¹ç¤Ï³ºÅö¤¹¤ë¥·¥°¥Ê¥ë¤Ë¤ª¤¤¤Æ°ÕÌ£¤Î¤¢¤ë¥Õ¥£¡¼¥ë¥É¤Î¤ß¤òÆɤ߹þ¤à -¤³¤È¤¬¤Ç¤­¤ë¡£ +構造体の残りの部分は、共用体 (union) になっているかもしれない。 +その場合は該当するシグナルにおいて意味のあるフィールドのみを読み込む +ことができる。 .IP * 2 .\"O POSIX.1b signals and .\"O .B SIGCHLD .\"O fill in .\"O .IR si_pid " and " si_uid . -POSIX.1b ¥·¥°¥Ê¥ë¤È +POSIX.1b シグナルと .B SIGCHLD -¤Ï -.IR si_pid " ¤È " si_uid -¤òÀßÄꤹ¤ë¡£ +は +.IR si_pid " と " si_uid +を設定する。 .IP * .\"O POSIX.1b timers (since Linux 2.6) fill in .\"O .I si_overrun @@ -487,23 +487,23 @@ POSIX.1b .\"O field is an internal ID used by the kernel to identify .\"O the timer; it is not the same as the timer ID returned by .\"O .BR timer_create (2). -POSIX.1b ¥¿¥¤¥Þ (Linux 2.6 °Ê¹ß) ¤Ï +POSIX.1b タイマ (Linux 2.6 以降) は .I si_overrun -¤È +と .I si_timerid -¤òÀßÄꤹ¤ë¡£ +を設定する。 .I si_timerid -¥Õ¥£¡¼¥ë¥É¤Ï¥«¡¼¥Í¥ë¤¬¥¿¥¤¥Þ¤òÆÃÄꤹ¤ë¤Î¤Ë»ÈÍѤ¹¤ëÆâÉô ID ¤Ç¤¢¤ê¡¢ +フィールドはカーネルがタイマを特定するのに使用する内部 ID であり、 .BR timer_create (2) -¤¬ÊÖ¤¹¥¿¥¤¥Þ ID ¤ÈƱ¤¸¤Ç¤Ï¤Ê¤¤¡£ +が返すタイマ ID と同じではない。 .IP * .\"O .B SIGCHLD .\"O fills in .\"O .IR si_status ", " si_utime " and " si_stime . .B SIGCHLD -¤Ï +は .IR si_status ", " si_utime ", " si_stime -¤òÀßÄꤹ¤ë¡£ +を設定する。 .\"O The .\"O .I si_utime .\"O and @@ -520,22 +520,22 @@ POSIX.1b .\"O of the (configurable) system jiffy (see .\"O .BR time (7)). .RB ( getrusage (2) -¤ä +や .BR time (2) -¤È°Û¤Ê¤ê) ¥Õ¥£¡¼¥ë¥É +と異なり) フィールド .I si_utime -¤È +と .I si_stime -¤Ë¤Ï wait ÂÔ¤Á¤Î»Ò¥×¥í¥»¥¹¤Ë¤è¤ê»ÈÍѤµ¤ì¤¿»þ´Ö¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ -2.6 ¤è¤êÁ°¤È 2.6.27 °Ê¹ß¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Ë³ÊǼ¤µ¤ì¤ë CPU »þ´Ö¤Îñ°Ì¤Ï +には wait 待ちの子プロセスにより使用された時間は含まれない。 +2.6 より前と 2.6.27 以降のカーネルでは、 +これらのフィールドに格納される CPU 時間の単位は .I sysconf(_SC_CLK_TCK) -¤Ç¤¢¤ë¡£ -2.6.27 ¤è¤êÁ°¤Î 2.6 ·Ï¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¥Ð¥°¤¬¤¢¤ê¡¢ -¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Î CPU »þ´Ö¤Îñ°Ì¤¬ -(¥«¡¼¥Í¥ë¤Î¥³¥ó¥Õ¥£¥°¤Ç»ØÄꤵ¤ì¤ë) ¥·¥¹¥Æ¥à¤Î jiffy ¤Ç¤¢¤Ã¤¿ +である。 +2.6.27 より前の 2.6 系のカーネルでは、バグがあり、 +これらのフィールドの CPU 時間の単位が +(カーネルのコンフィグで指定される) システムの jiffy であった .RB ( time (7) -»²¾È)¡£ +参照)。 .\" FIXME . .\" When si_utime and si_stime where originally implemented, the .\" measurement unit was HZ, which was the same as clock ticks @@ -553,14 +553,14 @@ POSIX.1b .IP * .\"O .IR si_int " and " si_ptr .\"O are specified by the sender of the POSIX.1b signal. -.IR si_int " ¤È " si_ptr -¤Ï POSIX.1b ¥·¥°¥Ê¥ë¤ÎÁ÷¿®¼Ô¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤ë¡£ +.IR si_int " と " si_ptr +は POSIX.1b シグナルの送信者によって指定される。 .\"O See .\"O .BR sigqueue (2) .\"O for more details. -¾ÜºÙ¤Ï +詳細は .BR sigqueue (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .IP * .\"O .BR SIGILL , .\"O .BR SIGFPE , @@ -574,27 +574,27 @@ POSIX.1b .BR SIGFPE , .BR SIGSEGV , .B SIGBUS -¤Ï +は .I si_addr -¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¥¢¥É¥ì¥¹¤òÀßÄꤹ¤ë¡£ +にエラーが発生したアドレスを設定する。 .\"O .B SIGPOLL .\"O fills in .\"O .IR si_band " and " si_fd . -SIGPOLL ¤Ï -.IR si_band " ¤È " si_fd -¤òÀßÄꤹ¤ë¡£ +SIGPOLL は +.IR si_band " と " si_fd +を設定する。 .PP .\"O .I si_code .\"O is a value (not a bit mask) .\"O indicating why this signal was sent. .I si_code -¤Ï¡¢¤½¤Î¥·¥°¥Ê¥ë¤¬Á÷¿®¤µ¤ì¤¿Íýͳ¤ò¼¨¤¹ÃͤǤ¢¤ë (¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤Ï¤Ê¤¤)¡£ +は、そのシグナルが送信された理由を示す値である (ビットマスクではない)。 .\"O The following list shows the values which can be placed in .\"O .I si_code .\"O for any signal, along with reason that the signal was generated. -°Ê²¼¤Î¥ê¥¹¥È¤Ë¡¢¤É¤Î¥·¥°¥Ê¥ë¤Î¾ì¹ç¤Ç¤â +以下のリストに、どのシグナルの場合でも .I si_code -¤ËÆþ¤ê¤¦¤ëÃͤò¡¢¥·¥°¥Ê¥ë¤¬À¸À®¤µ¤ì¤¿Íýͳ¤È¤È¤â¤Ëµ­ºÜ¤¹¤ë¡£ +に入りうる値を、シグナルが生成された理由とともに記載する。 .RS 4 .TP 15 .B SI_USER @@ -602,33 +602,33 @@ SIGPOLL .\"O or .\"O .BR raise (3) .BR kill (2) -¤Þ¤¿¤Ï +または .BR raise (3) .TP .B SI_KERNEL .\"O Sent by the kernel. -¥«¡¼¥Í¥ë¤Ë¤è¤êÁ÷¿®¤µ¤ì¤¿ +カーネルにより送信された .TP .B SI_QUEUE .BR sigqueue (2) .TP .B SI_TIMER .\"O POSIX timer expired -POSIX ¥¿¥¤¥Þ¤¬Ëþλ¤·¤¿ +POSIX タイマが満了した .TP .B SI_MESGQ .\"O POSIX message queue state changed (since Linux 2.6.6); see .\"O .BR mq_notify (3) -POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î¾õÂÖ¤¬ÊѲ½¤·¤¿ (Linux 2.6.6 °Ê¹ß)¡£ -.BR mq_notify (3) »²¾È¡£ +POSIX メッセージキューの状態が変化した (Linux 2.6.6 以降)。 +.BR mq_notify (3) 参照。 .TP .B SI_ASYNCIO .\"O AIO completed -ÈóƱ´ü IO (AIO) ¤¬´°Î»¤·¤¿ +非同期 IO (AIO) が完了した .TP .B SI_SIGIO .\"O queued SIGIO -¥­¥å¡¼¥¤¥ó¥°¤µ¤ì¤¿ SIGIO +キューイングされた SIGIO .TP .B SI_TKILL .\"O .BR tkill (2) @@ -636,9 +636,9 @@ POSIX .\"O .BR tgkill (2) .\"O (since Linux 2.4.19) .BR tkill (2) -¤Þ¤¿¤Ï +または .BR tgkill (2) -(Linux 2.4.19 °Ê¹ß) +(Linux 2.4.19 以降) .\" SI_DETHREAD is defined in 2.6.9 sources, but isn't implemented .\" It appears to have been an idea that was tried during 2.5.6 .\" through to 2.5.24 and then was backed out. @@ -650,42 +650,42 @@ POSIX .\"O .B SIGILL .\"O signal: .B SIGILL -¥·¥°¥Ê¥ë¤Î¾ì¹ç¡¢ +シグナルの場合、 .I si_code -¤Ë¤Ï°Ê²¼¤ÎÃͤò»ØÄê¤Ç¤­¤ë: +には以下の値を指定できる: .RS 4 .TP 15 .B ILL_ILLOPC .\"O illegal opcode -ÉÔÀµ¤ÊÌ¿Îᥳ¡¼¥É (opcode) +不正な命令コード (opcode) .TP .B ILL_ILLOPN .\"O illegal operand -ÉÔÀµ¤Ê¥ª¥Ú¥é¥ó¥É +不正なオペランド .TP .B ILL_ILLADR .\"O illegal addressing mode -ÉÔÀµ¤Ê¥¢¥É¥ì¥Ã¥·¥ó¥°¥â¡¼¥É +不正なアドレッシングモード .TP .B ILL_ILLTRP .\"O illegal trap -ÉÔÀµ¤Ê¥È¥é¥Ã¥× +不正なトラップ .TP .B ILL_PRVOPC .\"O privileged opcode -Æø¢¤¬É¬ÍפÊÌ¿Îᥳ¡¼¥É (opcode) +特権が必要な命令コード (opcode) .TP .B ILL_PRVREG .\"O privileged register -Æø¢¤¬É¬Íפʥ쥸¥¹¥¿ +特権が必要なレジスタ .TP .B ILL_COPROC .\"O coprocessor error -¥³¥×¥í¥»¥Ã¥µ¤Î¥¨¥é¡¼ +コプロセッサのエラー .TP .B ILL_BADSTK .\"O internal stack error -ÆâÉô¥¹¥¿¥Ã¥¯¥¨¥é¡¼ +内部スタックエラー .RE .PP .\"O The following values can be placed in @@ -694,42 +694,42 @@ POSIX .\"O .B SIGFPE .\"O signal: .B SIGFPE -¥·¥°¥Ê¥ë¤Î¾ì¹ç¡¢ +シグナルの場合、 .I si_code -¤Ë¤Ï°Ê²¼¤ÎÃͤò»ØÄê¤Ç¤­¤ë: +には以下の値を指定できる: .RS 4 .TP 15 .B FPE_INTDIV .\"O integer divide by zero -À°¿ô¤Î 0 ¤Ë¤è¤ë½ü»» +整数の 0 による除算 .TP .B FPE_INTOVF .\"O integer overflow -À°¿ô¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ +整数のオーバーフロー .TP .B FPE_FLTDIV .\"O floating-point divide by zero -ÉâÆ°¾®¿ôÅÀ¤Î 0 ¤Ë¤è¤ë½ü»» +浮動小数点の 0 による除算 .TP .B FPE_FLTOVF .\"O floating-point overflow -ÉâÆ°¾®¿ôÅÀ¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ +浮動小数点のオーバーフロー .TP .B FPE_FLTUND .\"O floating-point underflow -ÉâÆ°¾®¿ôÅÀ¤Î¥¢¥ó¥À¡¼¥Õ¥í¡¼ +浮動小数点のアンダーフロー .TP .B FPE_FLTRES .\"O floating-point inexact result -ÉâÆ°¾®¿ôÅÀ¤ÎÉÔÀµ³Î¤Ê±é»»·ë²Ì (inexact result) +浮動小数点の不正確な演算結果 (inexact result) .TP .B FPE_FLTINV .\"O floating-point invalid operation -ÉâÆ°¾®¿ôÅÀ¤ÎÉÔÀµ¤ÊÁàºî +浮動小数点の不正な操作 .TP .B FPE_FLTSUB .\"O subscript out of range -Èϰϳ°¤Îź»ú (subscript) +範囲外の添字 (subscript) .RE .PP .\"O The following values can be placed in @@ -738,18 +738,18 @@ POSIX .\"O .B SIGSEGV .\"O signal: .B SIGSEGV -¥·¥°¥Ê¥ë¤Î¾ì¹ç¡¢ +シグナルの場合、 .I si_code -¤Ë¤Ï°Ê²¼¤ÎÃͤò»ØÄê¤Ç¤­¤ë: +には以下の値を指定できる: .RS 4 .TP 15 .B SEGV_MAPERR .\"O address not mapped to object -¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¤Æ¤¤¤Ê¤¤¥¢¥É¥ì¥¹ +オブジェクトにマッピングされていないアドレス .TP .B SEGV_ACCERR .\"O invalid permissions for mapped object -¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ¹¤ë¥¢¥¯¥»¥¹µö²Ä¤¬¤Ê¤¤ +マッピングされたオブジェクトに対するアクセス許可がない .RE .PP .\"O The following values can be placed in @@ -758,22 +758,22 @@ POSIX .\"O .B SIGBUS .\"O signal: .B SIGBUS -¥·¥°¥Ê¥ë¤Î¾ì¹ç¡¢ +シグナルの場合、 .I si_code -¤Ë¤Ï°Ê²¼¤ÎÃͤò»ØÄê¤Ç¤­¤ë: +には以下の値を指定できる: .RS 4 .TP 15 .B BUS_ADRALN .\"O invalid address alignment -ÉÔÀµ¤Ê¥¢¥É¥ì¥¹¡¦¥¢¥é¥¤¥á¥ó¥È (alignment) +不正なアドレス・アライメント (alignment) .TP .B BUS_ADRERR .\"O nonexistent physical address -¸ºß¤·¤Ê¤¤ÊªÍý¥¢¥É¥ì¥¹ +存在しない物理アドレス .TP .B BUS_OBJERR .\"O object-specific hardware error -¥ª¥Ö¥¸¥§¥¯¥È¸ÇÍ­¤Î¥Ï¡¼¥É¥¦¥§¥¢¥¨¥é¡¼ +オブジェクト固有のハードウェアエラー .RE .PP .\"O The following values can be placed in @@ -782,18 +782,18 @@ POSIX .\"O .B SIGTRAP .\"O signal: .B SIGTRAP -¥·¥°¥Ê¥ë¤Î¾ì¹ç¡¢ +シグナルの場合、 .I si_code -¤Ë¤Ï°Ê²¼¤ÎÃͤò»ØÄê¤Ç¤­¤ë: +には以下の値を指定できる: .RS 4 .TP 15 .B TRAP_BRKPT .\"O process breakpoint -¥×¥í¥»¥¹¤Î¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È +プロセスのブレークポイント .TP .B TRAP_TRACE .\"O process trace trap -¥×¥í¥»¥¹¤Î¥È¥ì¡¼¥¹¡¦¥È¥é¥Ã¥× +プロセスのトレース・トラップ .RE .PP .\"O The following values can be placed in @@ -802,34 +802,34 @@ POSIX .\"O .B SIGCHLD .\"O signal: .B SIGCHLD -¥·¥°¥Ê¥ë¤Î¾ì¹ç¡¢ +シグナルの場合、 .I si_code -¤Ë¤Ï°Ê²¼¤ÎÃͤò»ØÄê¤Ç¤­¤ë: +には以下の値を指定できる: .RS 4 .TP 15 .B CLD_EXITED .\"O child has exited -»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿ (exited) +子プロセスが終了した (exited) .TP .B CLD_KILLED .\"O child was killed -»Ò¥×¥í¥»¥¹¤¬ kill ¤µ¤ì¤¿ +子プロセスが kill された .TP .B CLD_DUMPED .\"O child terminated abnormally -»Ò¥×¥í¥»¥¹¤¬°Û¾ï½ªÎ»¤·¤¿ +子プロセスが異常終了した .TP .B CLD_TRAPPED .\"O traced child has trapped -¥È¥ì¡¼¥¹ÂÐ¾Ý¤Î»Ò¥×¥í¥»¥¹¤¬¥È¥é¥Ã¥×¤ò¾å¤²¤¿ +トレース対象の子プロセスがトラップを上げた .TP .B CLD_STOPPED .\"O child has stopped -»Ò¥×¥í¥»¥¹¤¬Ää»ß (stop) ¤·¤¿ +子プロセスが停止 (stop) した .TP .B CLD_CONTINUED .\"O stopped child has continued (since Linux 2.6.9) -Ää»ß¤·¤Æ¤¤¤¿»Ò¥×¥í¥»¥¹¤¬ºÆ³«¤·¤¿ (Linux 2.6.9 °Ê¹ß) +停止していた子プロセスが再開した (Linux 2.6.9 以降) .RE .PP .\"O The following values can be placed in @@ -838,49 +838,49 @@ POSIX .\"O .B SIGPOLL .\"O signal: .B SIGPOLL -¥·¥°¥Ê¥ë¤Î¾ì¹ç¡¢ +シグナルの場合、 .I si_code -¤Ë¤Ï°Ê²¼¤ÎÃͤò»ØÄê¤Ç¤­¤ë: +には以下の値を指定できる: .RS 4 .TP 15 .B POLL_IN .\"O data input available -ÆþÎϥǡ¼¥¿¤¬ÍøÍѲÄǽ +入力データが利用可能 .TP .B POLL_OUT .\"O output buffers available -½ÐÎϥХåե¡¤¬ÍøÍѲÄǽ +出力バッファが利用可能 .TP .B POLL_MSG .\"O input message available -ÆþÎÏ¥á¥Ã¥»¡¼¥¸¤¬ÍøÍѲÄǽ +入力メッセージが利用可能 .TP .B POLL_ERR .\"O i/o error -I/O ¥¨¥é¡¼ +I/O エラー .TP .B POLL_PRI .\"O high priority input available -¹âÍ¥Àè¤ÎÆþÎϤ¬ÍøÍѲÄǽ +高優先の入力が利用可能 .TP .B POLL_HUP .\"O device disconnected -¥Ç¥Ð¥¤¥¹¤¬Àܳ¤µ¤ì¤Æ¤¤¤Ê¤¤ +デバイスが接続されていない .RE .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR sigaction () .\"O returns 0 on success and \-1 on error. .BR sigaction () -¤ÏÀ®¸ù¤¹¤ì¤Ð 0 ¤òÊÖ¤·¡¢¥¨¥é¡¼¤Ê¤é¤Ð \-1 ¤òÊÖ¤¹¡£ +は成功すれば 0 を返し、エラーならば \-1 を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O .IR act " or " oldact .\"O points to memory which is not a valid part of the process address space. -.IR act " ¤« " oldact -¤¬»Ø¤·¤Æ¤¤¤ë¥á¥â¥ê¤¬Àµ¤·¤¤¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤Ê¤¤¡£ +.IR act " か " oldact +が指しているメモリが正しいプロセスのアドレス空間にない。 .TP .B EINVAL .\"O An invalid signal was specified. @@ -888,17 +888,17 @@ I/O .\"O is made to change the action for .\"O .BR SIGKILL " or " SIGSTOP ", " .\"O which cannot be caught or ignored. -̵¸ú¤Ê¥·¥°¥Ê¥ë¤¬»ØÄꤵ¤ì¤¿¡£Êä­ (catch) ¤·¤¿¤ê̵»ë¤·¤¿¤ê¤Ç¤­¤Ê¤¤ -¥·¥°¥Ê¥ë¤Ç¤¢¤ë -.BR SIGKILL " ¤ä " SIGSTOP -¤ËÂФ¹¤ëÆ°ºî¤òÊѹ¹¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤Ë¤âȯÀ¸¤¹¤ë¡£ +無効なシグナルが指定された。補足 (catch) したり無視したりできない +シグナルである +.BR SIGKILL " や " SIGSTOP +に対する動作を変更しようとした場合にも発生する。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001, SVr4. .\"O .\" SVr4 does not document the EINTR condition. -.\" SVr4 ¤Ë¤Ï EINTR ¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤Ï¤Ê¤¤¡£ +.\" SVr4 には EINTR についての記述はない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O A child created via .\"O .BR fork (2) .\"O inherits a copy of its parent's signal dispositions. @@ -907,11 +907,11 @@ POSIX.1-2001, SVr4. .\"O the dispositions of handled signals are reset to the default; .\"O the dispositions of ignored signals are left unchanged. .BR fork (2) -·Ðͳ¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢¿Æ¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤Î -¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£ +経由で作成された子プロセスは、親プロセスのシグナルの処理方法の +コピーを継承する。 .BR execve (2) -¤ÎÁ°¸å¤Ç¡¢¥Ï¥ó¥É¥é¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤Ï¥Ç¥Õ¥©¥ë¥È¤Ë¥ê¥»¥Ã¥È¤µ¤ì¡¢ -̵»ë¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤ÏÊѹ¹¤µ¤ì¤º¤½¤Î¤Þ¤Þ¤È¤Ê¤ë¡£ +の前後で、ハンドラが設定されているシグナルの処理方法はデフォルトにリセットされ、 +無視が設定されているシグナルの処理方法は変更されずそのままとなる。 .\"O According to POSIX, the behavior of a process is undefined after it .\"O ignores a @@ -930,23 +930,23 @@ POSIX.1-2001, SVr4. .\"O (Also dividing the most negative integer by \-1 may generate .\"O .BR SIGFPE .) .\"O Ignoring this signal might lead to an endless loop. -POSIX ¤Ç¤Ï¡¢ +POSIX では、 .BR kill (2) -¤ä +や .BR raise (3) -´Ø¿ô¤ÇÀ¸À®¤Ç¤­¤Ê¤¤¥·¥°¥Ê¥ë +関数で生成できないシグナル .BR SIGFPE , .BR SIGILL , .B SIGSEGV -¤ò̵»ë (ignore) ¤·¤¿¾ì¹ç¡¢¤½¤Î¸å¤ÎÆ°ºî¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ -¥¼¥í¤Ë¤è¤ëÀ°¿ô³ä¤ê»»¤Î·ë²Ì¤Ï̤ÄêµÁ¤È¤Ê¤ë¡£ -¥¢¡¼¥­¥Æ¥¯¥Á¥ã¡¼¤Ë¤è¤Ã¤Æ¤Ï¡¢¤³¤Î¤È¤­ +を無視 (ignore) した場合、その後の動作は未定義である。 +ゼロによる整数割り算の結果は未定義となる。 +アーキテクチャーによっては、このとき .B SIGFPE -¥·¥°¥Ê¥ë¤¬À¸À®¤µ¤ì¤ë¡£ -(ƱÍͤËÉé¤ÎºÇÂçÀ°¿ô¤ò \-1 ¤Ç³ä¤ë¤È +シグナルが生成される。 +(同様に負の最大整数を \-1 で割ると .B SIGFPE -¤¬À¸À®¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤) -¤³¤Î¥·¥°¥Ê¥ë¤ò̵»ë¤¹¤ë¤È̵¸Â¥ë¡¼¥×¤Ë´Ù¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +が生成されるかもしれない) +このシグナルを無視すると無限ループに陥るかもしれない。 .PP .\"O POSIX.1-1990 disallowed setting the action for .\"O .B SIGCHLD @@ -964,25 +964,25 @@ POSIX .\"O signal and perform a .\"O .BR wait (2) .\"O or similar. -POSIX.1-1990 ¤Ç¤Ï +POSIX.1-1990 では .B SIGCHLD -¤Ë +に .B SIG_IGN -¤òÀßÄꤹ¤ë¤³¤È¤òǧ¤á¤Æ¤¤¤Ê¤¤¡£ -POSIX.1-2001 ¤Ç¤Ïǧ¤á¤é¤ì¤Æ¤ª¤ê¡¢ +を設定することを認めていない。 +POSIX.1-2001 では認められており、 .B SIGCHLD -¤ò̵»ë¤¹¤ë¤³¤È¤Ç¥¾¥ó¥Ó¥×¥í¥»¥¹¤ÎÀ¸À®¤òËɻߤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë +を無視することでゾンビプロセスの生成を防止することができる .RB ( wait (2) -¤ò»²¾È)¡£ -¤µ¤é¤Ë¡¢BSD ¤È SystemV ¤Ç¤Ï +を参照)。 +さらに、BSD と SystemV では .B SIGCHLD -¤ò̵»ë¤·¤¿ºÝ¤ÎÆ°ºî¤¬°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤½¤Î¤¿¤á¡¢´°Á´¤Ë°Ü¿¢À­¤¬¤¢¤ëÊýË¡¤Ç¡¢½ªÎ»¤·¤¿»Ò¥×¥í¥»¥¹¤¬¥¾¥ó¥Ó¤Ë¤Ê¤é¤Ê¤¤¤³¤È -¤òÊݾڤ¹¤ë¤Ë¤Ï¡¢ +を無視した際の動作が異なっている。 +そのため、完全に移植性がある方法で、終了した子プロセスがゾンビにならないこと +を保証するには、 .B SIGCHLD -¥·¥°¥Ê¥ë¤òÊä­¤·¡¢ +シグナルを補足し、 .BR wait (2) -¤Ê¤É¤ò¼Â¹Ô¤¹¤ë¤·¤«¤Ê¤¤¡£ +などを実行するしかない。 .PP .\"O POSIX.1-1990 only specified .\"O .BR SA_NOCLDSTOP . @@ -996,25 +996,25 @@ POSIX.1-2001 .\"O .I sa_flags .\"O may be less portable in applications intended for older .\"O Unix implementations. -POSIX.1-1990 ¤Î»ÅÍÍ¤Ç¤Ï +POSIX.1-1990 の仕様では .B SA_NOCLDSTOP -¤Î¤ß¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -POSIX.1-2001 ¤Ç¤Ï +のみが定義されている。 +POSIX.1-2001 では .BR SA_NOCLDWAIT , .BR SA_RESETHAND , .BR SA_NODEFER , .B SA_SIGINFO -¤¬Äɲ䵤줿¡£ -Unix ¤Î¸Å¤¤¼ÂÁõ¤ÇÆ°¤«¤¹¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¡¢ -¾¤Î +が追加された。 +Unix の古い実装で動かすアプリケーションで、 +他の .I sa_flags -¥Õ¥é¥°¤ò»ÈÍѤ¹¤ë¤È°Ü¿¢À­¤¬²¼¤¬¤ë¡£ +フラグを使用すると移植性が下がる。 .PP .\"O The .\"O .B SA_RESETHAND .\"O flag is compatible with the SVr4 flag of the same name. .B SA_RESETHAND -¥Õ¥é¥°¤Ï SVr4 ¤ÎƱ¤¸Ì¾Á°¤Î¥Õ¥é¥°¤È¸ß´¹À­¤¬¤¢¤ë¡£ +フラグは SVr4 の同じ名前のフラグと互換性がある。 .PP .\"O The .\"O .B SA_NODEFER @@ -1026,11 +1026,11 @@ Unix .\"O .I sa_mask .\"O settings). .B SA_NODEFER -¥Õ¥é¥°¤Ï 1.3.9 °Ê¹ß¤Î¥«¡¼¥Í¥ë¤Ç¤ÏƱ¤¸Ì¾Á°¤Î SVr4 ¤Î¥Õ¥é¥°¤È¸ß´¹À­¤¬¤¢¤ë¡£ -¤¾¤ì°ÊÁ°¤Î Linux ¥«¡¼¥Í¥ë¤Î¼ÂÁõ¤Ç¤Ï¡¢¤³¤Î¥Õ¥é¥°¤òÀßÄꤷ¤Æ¤¤¤ë¥·¥°¥Ê¥ë -¤À¤±¤Ç¤Ê¤¯¡¢¤É¤Î¥·¥°¥Ê¥ë¤Ç¤â¼õ¤±¤ë¤³¤È¤òµö¤·¤Æ¤¤¤¿ (¼ÂºÝ¤Ë¤Ï +フラグは 1.3.9 以降のカーネルでは同じ名前の SVr4 のフラグと互換性がある。 +ぞれ以前の Linux カーネルの実装では、このフラグを設定しているシグナル +だけでなく、どのシグナルでも受けることを許していた (実際には .I sa_mask -¤ÎÀßÄê¤Ë¤è¤ê̵¸ú¤Ë¤Ç¤­¤ë)¡£ +の設定により無効にできる)。 .PP .\"O .BR sigaction () .\"O can be called with a null second argument to query the current signal @@ -1038,9 +1038,9 @@ Unix .\"O It can also be used to check whether a given signal is valid for .\"O the current machine by calling it with null second and third arguments. .BR sigaction () -¤ÎÆóÈÖÌܤΰú¤­¿ô¤Ë NULL ¤ò»ØÄꤷ¤Æ¸Æ¤Ó½Ð¤¹¤È¡¢¸½ºß¤Î¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò³Îǧ¤¹¤ë -¤³¤È¤¬¤Ç¤­¤ë¡£¤Þ¤¿¡¢ÆóÈÖÌܤȻ°ÈÖÌܤΰú¤­¿ô¤ò NULL ¤Ë¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¡¢ -»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë¤¬¸½ºß¤Î¥Þ¥·¥ó¤Ç»È¤¨¤ë¤«¤É¤¦¤«¥Á¥§¥Ã¥¯¤Ç¤­¤ë¡£ +の二番目の引き数に NULL を指定して呼び出すと、現在のシグナルハンドラを確認する +ことができる。また、二番目と三番目の引き数を NULL にて呼び出すことで、 +指定されたシグナルが現在のマシンで使えるかどうかチェックできる。 .PP .\"O It is not possible to block .\"O .BR SIGKILL " or " SIGSTOP @@ -1048,31 +1048,31 @@ Unix .\"O .IR sa_mask ). .\"O Attempts to do so are silently ignored. .B SIGKILL -¤ä +や .B SIGSTOP -¤ò +を .RI ( sa_mask -¤Ë»ØÄꤷ¤Æ) ¶Ø»ß¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -¶Ø»ß¤·¤è¤¦¤È¤·¤Æ¤âÌۤäÆ̵»ë¤µ¤ì¤ë¡£ +に指定して) 禁止することはできない。 +禁止しようとしても黙って無視される。 .PP .\"O See .\"O .BR sigsetops (3) .\"O for details on manipulating signal sets. -¥·¥°¥Ê¥ë½¸¹ç¤ÎÁàºî¤Ë´Ø¤¹¤ë¾ÜºÙ¤Ï +シグナル集合の操作に関する詳細は .BR sigsetops (3) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .PP .\"O See .\"O .BR signal (7) .\"O for a list of the async-signal-safe functions that can be .\"O safely called inside from inside a signal handler. -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥éÆ⤫¤é°ÂÁ´¤Ë¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡¢ -async-signal-safe functions (ÈóƱ´ü¥·¥ó¥°¥ë¤Ç°ÂÁ´¤Ê´Ø¿ô) ¤Î -¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¤Ï +シグナルハンドラ内から安全に呼び出すことができる、 +async-signal-safe functions (非同期シングルで安全な関数) の +リストについては .BR signal (7) -¤ò»²¾È¡£ +を参照。 .\"O .SS Undocumented -.SS Èó¸ø¼° +.SS 非公式 .\"O Before the introduction of .\"O .B SA_SIGINFO .\"O it was also possible to get some additional information, @@ -1083,16 +1083,16 @@ async-signal-safe functions ( .\"O See the relevant kernel sources for details. .\"O This use is obsolete now. .B SA_SIGINFO -¤¬Æ³Æþ¤µ¤ì¤ëÁ°¤Ï¡¢ +が導入される前は、 .I "struct sigcontext" -·¿¤ÎÆóÈÖÌܤΰú¤­¿ô¤È°ì½ï¤Ë +型の二番目の引き数と一緒に .I sa_handler -¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç¡¢ -¤¤¤¯¤Ä¤«¤ÎÄɲäξðÊó¤òÆþ¼ê¤¹¤ë¤³¤È¤¬¤Ç¤­¤¿¡£ -¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¥«¡¼¥Í¥ë¥½¡¼¥¹¤Î´ØÏ¢Éôʬ¤ò¸«¤Æ¤Û¤·¤¤¡£ -¸½ºß¤Ï¤³¤Î»ÈÍÑË¡¤ÏÇѻߤµ¤ì¤Æ¤¤¤ë¡£ +を使用することで、 +いくつかの追加の情報を入手することができた。 +詳細についてはカーネルソースの関連部分を見てほしい。 +現在はこの使用法は廃止されている。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O In kernels up to and including 2.6.13, specifying .\"O .B SA_NODEFER .\"O in @@ -1101,23 +1101,23 @@ async-signal-safe functions ( .\"O execution of the handler, but also the signals specified in .\"O .IR sa_mask . .\"O This bug was fixed in kernel 2.6.14. -2.6.13 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +2.6.13 以前のカーネルでは、 .I sa_flags -¤Ë +に .B SA_NODEFER -¤ò»ØÄꤷ¤¿¾ì¹ç¡¢ -¥Ï¥ó¥É¥é¤¬¼Â¹ÔÃæ¤ËÇÛÁ÷¤µ¤ì¤¿¥·¥°¥Ê¥ë¼«¿È¤¬¥Þ¥¹¥¯¤µ¤ì¤Ê¤¯¤Ê¤ë¤À¤±¤Ç¤Ê¤¯¡¢ +を指定した場合、 +ハンドラが実行中に配送されたシグナル自身がマスクされなくなるだけでなく、 .I sa_mask -¤Ë»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë¤â¥Þ¥¹¥¯¤µ¤ì¤Ê¤¯¤Ê¤ë¡£ -¤³¤Î¥Ð¥°¤Ï¡¢¥«¡¼¥Í¥ë 2.6.14 ¤Ç½¤Àµ¤µ¤ì¤¿¡£ +に指定されたシグナルもマスクされなくなる。 +このバグは、カーネル 2.6.14 で修正された。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O See .\"O .BR mprotect (2). .BR mprotect (2) -»²¾È¡£ +参照。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR kill (1), .BR kill (2), .BR killpg (2), diff --git a/draft/man2/sigaltstack.2 b/draft/man2/sigaltstack.2 index ccf2201c..404dc546 100644 --- a/draft/man2/sigaltstack.2 +++ b/draft/man2/sigaltstack.2 @@ -30,16 +30,16 @@ .\" Updated 2005-11-04, Akihiro MOTOKI .\" Updated 2006-01-04, Akihiro MOTOKI, Catch up to LDP 2.20 .\" -.\"WORD: alternate signal stack ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯ -.\"WORD: establish (¥¹¥¿¥Ã¥¯¤Î) ³ÎΩ +.\"WORD: alternate signal stack 代替シグナルスタック +.\"WORD: establish (スタックの) 確立 .\" .TH SIGALTSTACK 2 2010-09-26 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sigaltstack \- set and/or get signal stack context -sigaltstack \- ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤Î¥³¥ó¥Æ¥­¥¹¥È¤òÀßÄꡦ¼èÆÀ¤¹¤ë +sigaltstack \- シグナルスタックのコンテキストを設定・取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int sigaltstack(const stack_t *" ss ", stack_t *" oss ); @@ -47,9 +47,9 @@ sigaltstack \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR sigaltstack (): @@ -60,12 +60,12 @@ _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .br .\"O || /* Since glibc 2.12: */ _POSIX_C_SOURCE\ >=\ 200809L -|| /* glibc 2.12 °Ê¹ß: */ _POSIX_C_SOURCE\ >=\ 200809L +|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\ >=\ 200809L .PD .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR sigaltstack () .\"O allows a process to define a new alternate .\"O signal stack and/or retrieve the state of an existing @@ -75,21 +75,21 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O .BR sigaction (2)) .\"O requested it. .BR sigaltstack () -¤ò»È¤¦¤È¡¢ -¥×¥í¥»¥¹¤Ï¿·¤·¤¤ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤òÄêµÁ¤·¤¿¤ê¡¢ -´û¸¤ÎÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤Î¾õÂÖ¤ò¼èÆÀ¤Ç¤­¤ë¡£ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤òÍ׵᤹¤ë¤è¤¦¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¤È +を使うと、 +プロセスは新しい代替シグナルスタックを定義したり、 +既存の代替シグナルスタックの状態を取得できる。 +シグナルハンドラが代替シグナルスタックを要求するように設定されていると .RB ( sigaction (2) -»²¾È)¡¢¥Ï¥ó¥É¥é¤Î¼Â¹ÔÃæ¤Ï¤½¤Î¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤¬»È¤ï¤ì¤ë¡£ +参照)、ハンドラの実行中はそのシグナルスタックが使われる。 .\"O The normal sequence of events for using an alternate signal stack .\"O is the following: -ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ò»È¤¦ºÝ¤Î°ìÈÌŪ¤Ê¼ê½ç¤Ï¡¢°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë: +代替シグナルスタックを使う際の一般的な手順は、以下の通りである: .TP 3 1. .\"O Allocate an area of memory to be used for the alternate .\"O signal stack. -ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤Ç»È¤¦¥á¥â¥êÎΰè¤ò³ÎÊݤ¹¤ë¡£ +代替シグナルスタックで使うメモリ領域を確保する。 .TP 2. .\"O Use @@ -97,8 +97,8 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O to inform the system of the existence and .\"O location of the alternate signal stack. .BR sigaltstack () -¤ò»È¤Ã¤Æ¡¢ -ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤Î¸ºß¤È¾ì½ê¤ò¥·¥¹¥Æ¥à¤ËÃΤ餻¤ë¡£ +を使って、 +代替シグナルスタックの存在と場所をシステムに知らせる。 .TP 3. .\"O When establishing a signal handler using @@ -107,34 +107,34 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O on the alternate signal stack by .\"O specifying the \fBSA_ONSTACK\fP flag. .BR sigaction (2) -¤ò»È¤Ã¤Æ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò³ÎΩ¤¹¤ëºÝ¡¢ -\fBSA_ONSTACK\fP ¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤³¤È¤Ë¤è¤ê¡¢ -¤½¤Î¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¾å¤Ç¼Â¹Ô¤¹¤ë¤³¤È¤ò -¥·¥¹¥Æ¥à¤ËÃΤ餻¤ë¡£ +を使ってシグナルハンドラを確立する際、 +\fBSA_ONSTACK\fP フラグを指定することにより、 +そのシグナルハンドラを代替シグナルスタック上で実行することを +システムに知らせる。 .P .\"O The \fIss\fP argument is used to specify a new .\"O alternate signal stack, while the \fIoss\fP argument .\"O is used to retrieve information about the currently .\"O established signal stack. -\fIss\fP °ú¤­¿ô¤Ï¡¢¿·¤·¤¤¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ò»ØÄꤹ¤ë¤¿¤á¤Ë»È¤¦¡£ -¤Þ¤¿ \fIoss\fP °ú¤­¿ô¤Ï¡¢¸½ºß³ÎΩ¤µ¤ì¤Æ¤¤¤ë -¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Ë»È¤¦¡£ +\fIss\fP 引き数は、新しいシグナルスタックを指定するために使う。 +また \fIoss\fP 引き数は、現在確立されている +シグナルスタックの情報を取得するために使う。 .\"O If we are interested in performing just one .\"O of these tasks then the other argument can be specified as NULL. .\"O Each of these arguments is a structure of the following type: -¤³¤ÎÁàºî¤Î¤¦¤Á 1 ¤Ä¤À¤±¤ò¼Â¹Ô¤µ¤»¤ë¤Ë¤Ï¡¢ -»ÈÍѤ·¤Ê¤¤°ú¤­¿ô¤ò NULL ¤Ë»ØÄꤹ¤ì¤Ð¤è¤¤¡£ -°ú¤­¿ô¤È¤Ê¤ë¹½Â¤ÂΤϡ¢°Ê²¼¤Î¤è¤¦¤Ê·¿¤Ç¤¢¤ë: +この操作のうち 1 つだけを実行させるには、 +使用しない引き数を NULL に指定すればよい。 +引き数となる構造体は、以下のような型である: .sp .in +4n .nf typedef struct { .\"O void *ss_sp; /* Base address of stack */ - void *ss_sp; /* ¥¹¥¿¥Ã¥¯¤Î¥Ù¡¼¥¹¥¢¥É¥ì¥¹ */ + void *ss_sp; /* スタックのベースアドレス */ .\"O int ss_flags; /* Flags */ - int ss_flags; /* ¥Õ¥é¥° */ + int ss_flags; /* フラグ */ .\"O size_t ss_size; /* Number of bytes in stack */ - size_t ss_size; /* ¥¹¥¿¥Ã¥¯¤Î¥Ð¥¤¥È¿ô */ + size_t ss_size; /* スタックのバイト数 */ } stack_t; .fi .in @@ -143,106 +143,106 @@ typedef struct { .\"O \fIss.ss_flags\fP is set to zero, and \fIss.ss_sp\fP and .\"O \fIss.ss_size\fP specify the starting address and size of .\"O the stack. -¿·µ¬¤ÎÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ò³ÎΩ¤¹¤ë¤Ë¤Ï¡¢ -\fIss.ss_flags\fP ¤ò 0 ¤ËÀßÄꤷ¡¢ -\fIss.ss_sp\fP ¤È \fIss.ss_size\fP ¤Ë -¥¹¥¿¥Ã¥¯¤Î³«»Ï¥¢¥É¥ì¥¹¤È¥¹¥¿¥Ã¥¯¥µ¥¤¥º¤ò»ØÄꤹ¤ë¡£ +新規の代替シグナルスタックを確立するには、 +\fIss.ss_flags\fP を 0 に設定し、 +\fIss.ss_sp\fP と \fIss.ss_size\fP に +スタックの開始アドレスとスタックサイズを指定する。 .\"O The constant \fBSIGSTKSZ\fP is defined to be large enough .\"O to cover the usual size requirements for an alternate signal stack, .\"O and the constant \fBMINSIGSTKSZ\fP defines the minimum .\"O size required to execute a signal handler. -Äê¿ô \fBSIGSTKSZ\fP ¤Ï¡¢ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤¬Ä̾ïɬÍפ¹¤ë -¥µ¥¤¥º¤è¤ê¤â½¼Ê¬Â礭¤¯ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤Þ¤¿Äê¿ô \fBMINSIGSTKSZ\fP ¤Ï¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Î¼Â¹Ô¤ËɬÍפʺǾ®¥µ¥¤¥º¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +定数 \fBSIGSTKSZ\fP は、代替シグナルスタックが通常必要する +サイズよりも充分大きく定義されている。 +また定数 \fBMINSIGSTKSZ\fP は、 +シグナルハンドラの実行に必要な最小サイズに定義されている。 .\"O When a signal handler is invoked on the alternate stack, .\"O the kernel automatically aligns the address given in \fIss.ss_sp\fP .\"O to a suitable address boundary for the underlying hardware architecture. -ÂåÂØ¥¹¥¿¥Ã¥¯¤Ç¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬µ¯Æ°¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ -¥«¡¼¥Í¥ë¤Ë¤è¤ê¼«Æ°Åª¤Ë¡¢\fIss.ss_sp\fP ¤Ç»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤Ï -Æ°ºî¤·¤Æ¤¤¤ë¥Ï¡¼¥É¥¦¥§¥¢¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ËŬ¤·¤¿¥¢¥É¥ì¥¹¶­³¦¤Ë -Ä´À°¤µ¤ì¤ë¡£ +代替スタックでシグナルハンドラが起動された場合には、 +カーネルにより自動的に、\fIss.ss_sp\fP で指定されたアドレスは +動作しているハードウェアアーキテクチャに適したアドレス境界に +調整される。 .\"O To disable an existing stack, specify \fIss.ss_flags\fP .\"O as \fBSS_DISABLE\fP. .\"O In this case, the remaining fields .\"O in \fIss\fP are ignored. -´û¸¤Î¥¹¥¿¥Ã¥¯¤ò̵¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢ -\fIss.ss_flags\fP ¤ò \fBSS_DISABLE\fP ¤Ë»ØÄꤹ¤ë¡£ -¤³¤Î¾ì¹ç¡¢\fIss\fP ¤Î¾¤Î¥Õ¥£¡¼¥ë¥É¤Ï̵»ë¤µ¤ì¤ë¡£ +既存のスタックを無効にするには、 +\fIss.ss_flags\fP を \fBSS_DISABLE\fP に指定する。 +この場合、\fIss\fP の他のフィールドは無視される。 .\"O If \fIoss\fP is not NULL, then it is used to return information about .\"O the alternate signal stack which was in effect prior to the .\"O call to .\"O .BR sigaltstack (). -\fIoss\fP ¤¬ NULL °Ê³°¤Î¾ì¹ç¡¢ -\fIoss\fP ¤ËÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤Î¾ðÊó¤¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤ì¤Ï (¼Â¼ÁŪ¤Ë) +\fIoss\fP が NULL 以外の場合、 +\fIoss\fP に代替シグナルスタックの情報が返される。 +これは (実質的に) .BR sigaltstack () -¤Î¸Æ¤Ó½Ð¤·¤è¤êÀè¤Ë¹Ô¤ï¤ì¤ë¡£ +の呼び出しより先に行われる。 .\"O The \fIoss.ss_sp\fP and \fIoss.ss_size\fP fields return the starting .\"O address and size of that stack. .\"O The \fIoss.ss_flags\fP may return either of the following values: -\fIoss.ss_sp\fP ¤È \fIoss.ss_size\fP ¥Õ¥£¡¼¥ë¥É¤Ë -¥¹¥¿¥Ã¥¯¤Î³«»Ï¥¢¥É¥ì¥¹¤È¥¹¥¿¥Ã¥¯¥µ¥¤¥º¤¬ÊÖ¤µ¤ì¤ë¡£ -\fIoss.ss_flags\fP ¤Ë¤Ï°Ê²¼¤Î¤É¤Á¤é¤«¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë: +\fIoss.ss_sp\fP と \fIoss.ss_size\fP フィールドに +スタックの開始アドレスとスタックサイズが返される。 +\fIoss.ss_flags\fP には以下のどちらかの値が返される: .TP .B SS_ONSTACK .\"O The process is currently executing on the alternate signal stack. .\"O (Note that it is not possible .\"O to change the alternate signal stack if the process is .\"O currently executing on it.) -¥×¥í¥»¥¹¤¬ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¾å¤Ç¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë -(¥×¥í¥»¥¹¤¬´û¤Ë¤½¤Î¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¾å¤Ç¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ -¤½¤ì¤ÈƱ¤¸¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤Ë¤ÏÊѹ¹¤Ç¤­¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È)¡£ +プロセスが代替シグナルスタック上で実行されている +(プロセスが既にそのシグナルスタック上で実行されている場合は、 +それと同じシグナルスタックには変更できない点に注意すること)。 .TP .B SS_DISABLE .\"O The alternate signal stack is currently disabled. -ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤¬¸½ºß̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +代替シグナルスタックが現在無効になっている。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR sigaltstack () .\"O returns 0 on success, or \-1 on failure with .\"O \fIerrno\fP set to indicate the error. .BR sigaltstack () -¤ÏÀ®¸ù¤·¤¿¾ì¹ç 0 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¤Æ¡¢ -¥¨¥é¡¼¤ò¼¨¤¹ÃÍ¤Ë \fIerrno\fP ¤òÀßÄꤹ¤ë¡£ +は成功した場合 0 を返す。 +失敗した場合は \-1 を返して、 +エラーを示す値に \fIerrno\fP を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O Either \fIss\fP or \fIoss\fP is not NULL and points to an area .\"O outside of the process's address space. -\fIss\fP ¤Þ¤¿¤Ï \fIoss\fP ¤Î¤É¤Á¤é¤¬¡¢NULL °Ê³°¤Ç¡¢ -¤«¤Ä¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +\fIss\fP または \fIoss\fP のどちらが、NULL 以外で、 +かつプロセスのアドレス空間の外を指している。 .TP .B EINVAL .\"O \fIss\fP is not NULL and the \fIss_flags\fP field contains .\"O a nonzero value other than .\"O .BR SS_DISABLE . -\fIss\fP ¤¬ NULL °Ê³°¤Ç¡¢\fIss_flags\fP ¥Õ¥£¡¼¥ë¥É¤¬ +\fIss\fP が NULL 以外で、\fIss_flags\fP フィールドが .B SS_DISABLE -°Ê³°¤Î 0 ¤Ç¤Ê¤¤ÃͤˤʤäƤ¤¤ë¡£ +以外の 0 でない値になっている。 .TP .B ENOMEM .\"O The specified size of the new alternate signal stack .\"O (\fIss.ss_size\fP) was less than \fBMINSTKSZ\fP. -¿·¤·¤¤ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯ (\fIss.ss_size\fP) ¤Ë»ØÄꤷ¤¿¥µ¥¤¥º¤¬ -\fBMINSTKSZ\fP ¤è¤ê¾®¤µ¤¤¡£ +新しい代替シグナルスタック (\fIss.ss_size\fP) に指定したサイズが +\fBMINSTKSZ\fP より小さい。 .TP .B EPERM .\"O An attempt was made to change the alternate signal stack while .\"O it was active (i.e., the process was already executing .\"O on the current alternate signal stack). -ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤¬Í­¸ú¤Ç¤¢¤ë¤È¤­¤ËÊѹ¹¤ò¹Ô¤ª¤¦¤È¤·¤¿ -(¤Ä¤Þ¤ê¡¢¥×¥í¥»¥¹¤¬´û¤Ë¸½ºß¤ÎÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¾å¤Ç¼Â¹Ô¤µ¤ì¤Æ¤¤¤¿)¡£ +代替シグナルスタックが有効であるときに変更を行おうとした +(つまり、プロセスが既に現在の代替シグナルスタック上で実行されていた)。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SUSv2, SVr4, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The most common usage of an alternate signal stack is to handle the .\"O .B SIGSEGV .\"O signal that is generated if the space available for the @@ -250,46 +250,46 @@ SUSv2, SVr4, POSIX.1-2001. .\"O .B SIGSEGV .\"O cannot be invoked on the process stack; if we wish to handle it, .\"O we must use an alternate signal stack. -ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ò»ÈÍѤ¹¤ëºÇ¤â¤è¤¯¤¢¤ë¾ìÌ̤ϡ¢ +代替シグナルスタックを使用する最もよくある場面は、 .B SIGSEGV -¥·¥°¥Ê¥ë¤ò°·¤¦¤È¤­¤Ç¤¢¤ë¡£ +シグナルを扱うときである。 .B SIGSEGV -¤Ï¥×¥í¥»¥¹¤ÎÄ̾ï¤Î¥¹¥¿¥Ã¥¯¤¬ÍøÍѤǤ­¤ë¶õ´Ö¤¬»È¤¤²Ì¤¿¤µ¤ì¤¿ºÝ¤Ë -À¸À®¤µ¤ì¤ë¥·¥°¥Ê¥ë¤Ç¤¢¤ë¡£¤³¤Î¾ì¹ç¤Ë¤Ï¡¢ +はプロセスの通常のスタックが利用できる空間が使い果たされた際に +生成されるシグナルである。この場合には、 .B SIGSEGV -ÍѤΥ·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò¥×¥í¥»¥¹¤Î¥¹¥¿¥Ã¥¯¾å¤Ç¤Ïµ¯Æ°¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ -¤½¤Î¤¿¤á¡¢¤³¤Î¥·¥°¥Ê¥ë¤ò°·¤ª¤¦¤È¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢ -ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ò»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +用のシグナルハンドラをプロセスのスタック上では起動することができない。 +そのため、このシグナルを扱おうとする場合には、 +代替シグナルスタックを使用しなければならない。 .P .\"O Establishing an alternate signal stack is useful if a process .\"O expects that it may exhaust its standard stack. -¥×¥í¥»¥¹¤¬É¸½à¤Î¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ò»È¤¤²Ì¤¿¤¹¤³¤È¤¬Í½ÁÛ¤µ¤ì¤ë¾ì¹ç¤Ï¡¢ -ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ò³ÎΩ¤¹¤ë¤ÈÊØÍø¤Ç¤¢¤ë¡£ +プロセスが標準のシグナルスタックを使い果たすことが予想される場合は、 +代替シグナルスタックを確立すると便利である。 .\"O This may occur, for example, because the stack grows so large .\"O that it encounters the upwardly growing heap, or it reaches a .\"O limit established by a call to \fBsetrlimit(RLIMIT_STACK, &rlim)\fP. -Î㤨¤Ð¡¢¥¹¥¿¥Ã¥¯¤¬ºÇ¾å°Ì¥¢¥É¥ì¥¹¤«¤é -²¼°Ì¥¢¥É¥ì¥¹Êý¸þ¤ËÈó¾ï¤Ë¤¿¤¯¤µ¤óÀѤޤì¤Æ¤·¤Þ¤¦¤³¤È¤Ç¡¢ -ºÇ²¼°Ì¥¢¥É¥ì¥¹¤«¤é¾å°Ì¥¢¥É¥ì¥¹Êý¸þ¤ËÀѤޤì¤ë¥Ò¡¼¥×¤È¤Ö¤Ä¤«¤Ã¤Æ¤·¤Þ¤¦¾ì¹ç¤ä¡¢ -\fBsetrlimit(RLIMIT_STACK, &rlim)\fP ¤Î¸Æ¤Ó½Ð¤·¤Ç³ÎΩ¤µ¤ì¤¿ -À©¸Â¤Ë㤷¤Æ¤·¤Þ¤Ã¤¿¾ì¹ç¤Ë¡¢¤³¤ÎÍͤʻö¤¬µ¯¤³¤ë¡£ +例えば、スタックが最上位アドレスから +下位アドレス方向に非常にたくさん積まれてしまうことで、 +最下位アドレスから上位アドレス方向に積まれるヒープとぶつかってしまう場合や、 +\fBsetrlimit(RLIMIT_STACK, &rlim)\fP の呼び出しで確立された +制限に達してしまった場合に、この様な事が起こる。 .\"O If the standard stack is exhausted, the kernel sends .\"O the process a \fBSIGSEGV\fP signal. .\"O In these circumstances the only way to catch this signal is .\"O on an alternate signal stack. -ɸ½à¤Î¥¹¥¿¥Ã¥¯¤ò»È¤¤²Ì¤¿¤·¤Æ¤·¤Þ¤¦¤È¡¢ -¥«¡¼¥Í¥ë¤Ï¥×¥í¥»¥¹¤Ë \fBSIGSEGV\fP ¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ -¤³¤Î¤è¤¦¤Ê¾õ¶·¤Ç¤Ï¡¢ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¾å¤Ç¤·¤«¥·¥°¥Ê¥ë¤ò¥­¥ã¥Ã¥Á¤Ç¤­¤Ê¤¤¡£ +標準のスタックを使い果たしてしまうと、 +カーネルはプロセスに \fBSIGSEGV\fP シグナルを送る。 +このような状況では、代替シグナルスタック上でしかシグナルをキャッチできない。 .P .\"O On most hardware architectures supported by Linux, stacks grow .\"O downward. .\"O .BR sigaltstack () .\"O automatically takes account .\"O of the direction of stack growth. -Linux ¤¬¥µ¥Ý¡¼¥È¤¹¤ë¿¤¯¤Î¥Ï¡¼¥É¥¦¥§¥¢¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢ -¥¹¥¿¥Ã¥¯¤Ï²¼°Ì¥¢¥É¥ì¥¹Êý¸þ¤ËÀѤޤì¤ë¡£ +Linux がサポートする多くのハードウェアアーキテクチャでは、 +スタックは下位アドレス方向に積まれる。 .BR sigaltstack () -¤Ï¥¹¥¿¥Ã¥¯¤¬ÀѤޤì¤ëÊý¸þ¤ò¼«Æ°Åª¤Ë·èÄꤹ¤ë¡£ +はスタックが積まれる方向を自動的に決定する。 .P .\"O Functions called from a signal handler executing on an alternate .\"O signal stack will also use the alternate signal stack. @@ -299,14 +299,14 @@ Linux .\"O automatically extend the alternate signal stack. .\"O Exceeding the allocated size of the alternate signal stack will .\"O lead to unpredictable results. -ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¾å¤Ç¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤«¤é¸Æ¤Ð¤ì¤ë´Ø¿ô¤â¡¢ÂåÂØ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò»È¤¦ -(¥×¥í¥»¥¹¤¬ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¾å¤Ç¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¾¤Î¥·¥°¥Ê¥ë¤Ç¸Æ¤Ó½Ð¤µ¤ì¤ë¥Ï¥ó¥É¥é¤â¤³¤ÎÂåÂØ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò»È¤¦)¡£ -ɸ½à¤Î¥¹¥¿¥Ã¥¯¤È¤Ï°Û¤Ê¤ê¡¢ -¥·¥¹¥Æ¥à¤ÏÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ò¼«Æ°Åª¤Ë³ÈÄ¥¤·¤Ê¤¤¡£ -ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯ÍѤ˳ÎÊݤ·¤¿¥µ¥¤¥º¤ò±Û¤¨¤¿¾ì¹ç¡¢ -·ë²Ì¤ÏͽÁۤǤ­¤Ê¤¤¡£ +代替シグナルスタック上で実行されている +シグナルハンドラから呼ばれる関数も、代替シグナルハンドラを使う +(プロセスが代替シグナルスタック上で実行されている場合、 +他のシグナルで呼び出されるハンドラもこの代替シグナルハンドラを使う)。 +標準のスタックとは異なり、 +システムは代替シグナルスタックを自動的に拡張しない。 +代替シグナルスタック用に確保したサイズを越えた場合、 +結果は予想できない。 .P .\"O A successful call to .\"O .BR execve (2) @@ -316,11 +316,11 @@ Linux .\"O .BR fork (2) .\"O inherits a copy of its parent's alternate signal stack settings. .BR execve (2) -¤Î¸Æ¤Ó½Ð¤·¤¬À®¸ù¤¹¤ë¤È¡¢ -´û¸¤ÎÁ´¤Æ¤ÎÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤¬ºï½ü¤µ¤ì¤ë¡£ +の呼び出しが成功すると、 +既存の全ての代替シグナルスタックが削除される。 .BR fork (2) -·Ðͳ¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢¿Æ¥×¥í¥»¥¹¤ÎÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤Î -ÀßÄê¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£ +経由で作成された子プロセスは、親プロセスの代替シグナルスタックの +設定のコピーを継承する。 .P .\"O .BR sigaltstack () .\"O supersedes the older @@ -331,36 +331,36 @@ Linux .\"O All new applications should be written using .\"O .BR sigaltstack (). .BR sigaltstack () -¤Ï°ÊÁ°¤Î +は以前の .BR sigstack () -¤òÃÖ¤­´¹¤¨¤ë¤â¤Î¤Ç¤¢¤ë¡£ -²áµî¥×¥í¥°¥é¥à¤È¤Î¸ß´¹À­¤Î¤¿¤á¡¢glibc ¤Ç¤Ï +を置き換えるものである。 +過去プログラムとの互換性のため、glibc では .BR sigstack () -¤âÄ󶡤·¤Æ¤¤¤ë¡£ -¿·¤·¤¤¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÏÁ´¤Æ +も提供している。 +新しいのアプリケーションは全て .BR sigaltstack () -¤ò»È¤Ã¤Æ½ñ¤¯¤Ù¤­¤Ç¤¢¤ë¡£ +を使って書くべきである。 .\"O .SS History -.SS Îò»Ë +.SS 歴史 .\"O 4.2BSD had a .\"O .BR sigstack () .\"O system call. .\"O It used a slightly .\"O different struct, and had the major disadvantage that the caller .\"O had to know the direction of stack growth. -4.2BSD ¤Ë¤Ï +4.2BSD には .BR sigstack () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤¢¤Ã¤¿¡£ -¤³¤Î´Ø¿ô¤Ï¾¯¤·°Û¤Ê¤Ã¤¿¹½Â¤ÂΤò»È¤Ã¤Æ¤ª¤ê¡¢ -¸Æ¤Ó½Ð¤·¤¿Â¦¤¬¥¹¥¿¥Ã¥¯¤ÎÀѤޤì¤ëÊý¸þ¤òÃΤäƤ¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤È¤¤¤¦ -Â礭¤Ê·çÅÀ¤¬¤¢¤Ã¤¿¡£ +システムコールがあった。 +この関数は少し異なった構造体を使っており、 +呼び出した側がスタックの積まれる方向を知っていなければならないという +大きな欠点があった。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The following code segment demonstrates the use of .\"O .BR sigaltstack (): -°Ê²¼¤Î¥³¡¼¥É¤Ç +以下のコードで .BR sigaltstack () -¤Î»ÈÍÑË¡¤Î°ìÉô¤ò¼¨¤¹: +の使用法の一部を示す: .in +4n .nf @@ -369,16 +369,16 @@ stack_t ss; ss.ss_sp = malloc(SIGSTKSZ); if (ss.ss_sp == NULL) .\"O /* Handle error */; - /* ¥Ï¥ó¥É¥ë¥¨¥é¡¼ */; + /* ハンドルエラー */; ss.ss_size = SIGSTKSZ; ss.ss_flags = 0; if (sigaltstack(&ss, NULL) == \-1) .\"O /* Handle error */; - /* ¥Ï¥ó¥É¥ë¥¨¥é¡¼ */; + /* ハンドルエラー */; .fi .in .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR execve (2), .BR setrlimit (2), .BR sigaction (2), diff --git a/draft/man2/signal.2 b/draft/man2/signal.2 index 4945e5d6..297f4c42 100644 --- a/draft/man2/signal.2 +++ b/draft/man2/signal.2 @@ -43,23 +43,23 @@ .\" Updated 2007-06-13, Akihiro MOTOKI, LDP v2.55 .\" Updated 2008-08-08, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: signal handler ¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é -.\"WORD: library ¥é¥¤¥Ö¥é¥ê -.\"WORD: semantics Êý¼° -.\"WORD: prototype ·¿Àë¸À -.\"WORD: architecture ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¡¼ -.\"WORD: endless loop ̵¸Â¥ë¡¼¥× -.\"WORD: feature test macro µ¡Ç½¸¡ºº¥Þ¥¯¥í -.\"WORD: disposition ½èÍýÊýË¡ +.\"WORD: signal シグナル +.\"WORD: signal handler シグナル・ハンドラ +.\"WORD: library ライブラリ +.\"WORD: semantics 方式 +.\"WORD: prototype 型宣言 +.\"WORD: architecture アーキテクチャー +.\"WORD: endless loop 無限ループ +.\"WORD: feature test macro 機能検査マクロ +.\"WORD: disposition 処理方法 .\" .TH SIGNAL 2 2008-07-11 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O signal \- ANSI C signal handling -signal \- ANSI C ¥·¥°¥Ê¥ëÁàºî +signal \- ANSI C シグナル操作 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .B typedef void (*sighandler_t)(int); @@ -67,7 +67,7 @@ signal \- ANSI C .\"O .BI "sighandler_t signal(int " signum ", sighandler_t " handler ); .BI "sighandler_t signal(int " signum ", sighandler_t " sighandler ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The behavior of .\"O .BR signal () .\"O varies across UNIX versions, @@ -77,13 +77,13 @@ signal \- ANSI C .\"O instead. .\"O See \fIPortability\fP below. .BR signal () -¤ÎÆ°ºî¤Ï UNIX ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤ê°Û¤Ê¤ë¡£ -¤Þ¤¿¡¢Îò»ËŪ¤Ë¸«¤Æ Linux ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤Ã¤Æ¤â°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ -\fB¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î»ÈÍѤÏÈò¤±¡¢\fP -Âå¤ï¤ê¤Ë +の動作は UNIX のバージョンにより異なる。 +また、歴史的に見て Linux のバージョンによっても異なっている。 +\fBこのシステムコールの使用は避け、\fP +代わりに .BR sigaction (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ -²¼µ­¤Î¡Ö°Ü¿¢À­¡×¤ò»²¾È¡£ +を使用すること。 +下記の「移植性」を参照。 .\"O .BR signal () .\"O sets the disposition of the signal @@ -95,32 +95,32 @@ signal \- ANSI C .\"O .BR SIG_DFL , .\"O or the address of a programmer-defined function (a "signal handler"). .BR signal () -¤Ï¥·¥°¥Ê¥ë +はシグナル .I signum -¤Î½èÍýÊýË¡¤ò +の処理方法を .I handler -¤ËÀßÄꤹ¤ë¡£ +に設定する。 .I handler -¤Ë¤Ï¡¢ -.BR SIG_IGN "¡¢" -.BR SIG_DFL "¡¢" -¥×¥í¥°¥é¥Þ¤¬ÄêµÁ¤·¤¿´Ø¿ô (¡Ö¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¡×) ¤Î¥¢¥É¥ì¥¹¤Î -¤¤¤º¤ì¤«¤ò»ØÄꤹ¤ë¡£ +には、 +.BR SIG_IGN "、" +.BR SIG_DFL "、" +プログラマが定義した関数 (「シグナル・ハンドラ」) のアドレスの +いずれかを指定する。 .\"O If the signal .\"O .I signum .\"O is delivered to the process, then one of the following happens: -¥·¥°¥Ê¥ë +シグナル .I signum -¤¬¥×¥í¥»¥¹¤ËÇÛÁ÷¤µ¤ì¤ë¤È¡¢°Ê²¼¤Î¤¤¤º¤ì¤«¤¬È¯À¸¤¹¤ë¡£ +がプロセスに配送されると、以下のいずれかが発生する。 .TP 3 * .\"O If the disposition is set to .\"O .BR SIG_IGN , .\"O then the signal is ignored. -½èÍýÊýË¡¤¬ +処理方法が .B SIG_IGN -¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¤½¤Î¥·¥°¥Ê¥ë¤Ï̵»ë¤µ¤ì¤ë¡£ +に設定されている場合、そのシグナルは無視される。 .TP * .\"O If the disposition is set to @@ -128,12 +128,12 @@ signal \- ANSI C .\"O then the default action associated with the signal (see .\"O .BR signal (7)) .\"O occurs. -½èÍýÊýË¡¤¬ +処理方法が .B SIG_DFL -¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥·¥°¥Ê¥ë¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿ -¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤¬¹Ô¤ï¤ì¤ë +に設定されている場合、シグナルに関連づけられた +デフォルトの動作が行われる .RB ( signal (7) -»²¾È)¡£ +参照)。 .TP * .\"O If the disposition is set to a function, @@ -143,58 +143,58 @@ signal \- ANSI C .\"O .I handler .\"O is called with argument .\"O .IR signum . -½èÍýÊýË¡¤È¤·¤Æ´Ø¿ô¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¤Þ¤ººÇ½é¤Ë½èÍýÊýË¡¤¬ +処理方法として関数が設定されている場合、 +まず最初に処理方法が .B SIG_DFL -¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë¤«¤½¤Î¥·¥°¥Ê¥ë¤Î¥Ö¥í¥Ã¥¯¤¬¼Â¹Ô¤µ¤ì¤¿¸å¡¢ +にリセットされるかそのシグナルのブロックが実行された後、 .I signum -¤ò°ú¤­¿ô¤È¤·¤Æ +を引き数として .I handler -¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ +が呼び出される。 .\"O If invocation of the handler caused the signal to be blocked, .\"O then the signal is unblocked upon return from the handler. -¥Ï¥ó¥É¥é¤¬µ¯Æ°¤µ¤ì¤ëºÝ¤Ë¥·¥°¥Ê¥ë¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤¿¾ì¹ç¡¢ -¥Ï¥ó¥É¥é¤¬ÊÖ¤ëºÝ¤Ë¤½¤Î¥·¥°¥Ê¥ë¤Î¥Ö¥í¥Ã¥¯¤¬²ò½ü¤µ¤ì¤ë¡£ +ハンドラが起動される際にシグナルがブロックされた場合、 +ハンドラが返る際にそのシグナルのブロックが解除される。 .PP .\"O The signals .\"O .B SIGKILL .\"O and .\"O .B SIGSTOP .\"O cannot be caught or ignored. -¥·¥°¥Ê¥ë +シグナル .B SIGKILL -¤È +と .B SIGSTOP -¤ÏÊ᪤Ǥ­¤º¡¢Ìµ»ë¤¹¤ë¤³¤È¤â¤Ç¤­¤Ê¤¤¡£ +は捕捉できず、無視することもできない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR signal () .\"O returns the previous value of the signal handler, or .\"O .B SIG_ERR .\"O on error. .BR signal () -¤Ï¡¢º£¤Þ¤Ç¤Î¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤ÎÃͤòÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï +は、今までのシグナル・ハンドラの値を返す。エラーの場合は .B SIG_ERR -¤òÊÖ¤¹¡£ +を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O .I signum .\"O is invalid. .I signum -¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +が不正である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C89, C99, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The effects of .\"O .BR signal () .\"O in a multithreaded process are unspecified. -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥×¥í¥»¥¹¤Ë¤ª¤±¤ë +マルチスレッドプロセスにおける .BR signal () -¤Î·ë²Ì¤Ï¡¢»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +の結果は、指定されていない。 .PP .\"O According to POSIX, the behavior of a process is undefined after it .\"O ignores a @@ -206,15 +206,15 @@ C89, C99, POSIX.1-2001. .\"O .BR kill (2) .\"O or .\"O .BR raise (3). -POSIX ¤Ë¤è¤ë¤È¡¢ +POSIX によると、 .BR kill (2) -¤ä +や .BR raise (3) -¤ÇÀ¸À®¤Ç¤­¤Ê¤¤ +で生成できない .BR SIGFPE , .BR SIGILL , .B SIGSEGV -¥·¥°¥Ê¥ë¤ò̵»ë¤·¤¿¸å¤ÎÆ°ºî¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +シグナルを無視した後の動作は未定義である。 .\"O Integer division by zero has undefined result. .\"O On some architectures it will generate a .\"O .B SIGFPE @@ -222,14 +222,14 @@ POSIX .\"O (Also dividing the most negative integer by \-1 may generate .\"O .BR SIGFPE .) .\"O Ignoring this signal might lead to an endless loop. -0 ¤Ë¤è¤ëÀ°¿ô³ä¤ê»»¤Î·ë²Ì¤Ï̤ÄêµÁ¤È¤Ê¤ë¡£ -¤¢¤ë¼ï¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢¤³¤ì¤Ï +0 による整数割り算の結果は未定義となる。 +ある種のアーキテクチャでは、これは .B SIGFPE -¥·¥°¥Ê¥ë¤òÀ¸À®¤¹¤ë¡£ -(ƱÍͤËÉé¤ÎºÇÂçÀ°¿ô¤ò \-1 ¤Ç³ä¤ë¤È +シグナルを生成する。 +(同様に負の最大整数を \-1 で割ると .B SIGFPE -¤¬À¸À®¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£) -¤³¤Î¥·¥°¥Ê¥ë¤ò̵»ë¤¹¤ë¤È̵¸Â¥ë¡¼¥×¤Ë´Ù¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +が生成されるかもしれない。) +このシグナルを無視すると無限ループに陥るかもしれない。 .PP .\"O See .\"O .BR sigaction (2) @@ -238,27 +238,27 @@ POSIX .\"O is set to .\"O .BR SIG_IGN . .B SIGCHLD -¤ÎÆ°ºî¤È¤·¤Æ +の動作として .B SIG_IGN -¤òÀßÄꤷ¤¿¾ì¹ç¤Î¾ÜºÙ¤ÊÆ°ºî¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +を設定した場合の詳細な動作については、 .BR sigaction (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .PP .\"O See .\"O .BR signal (7) .\"O for a list of the async-signal-safe functions that can be .\"O safely called from inside a signal handler. -¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥éÆ⤫¤é°ÂÁ´¤Ë¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡¢ -async-signal-safe functions (ÈóƱ´ü¥·¥ó¥°¥ë¤Ç°ÂÁ´¤Ê´Ø¿ô) ¤Î -¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¤Ï +シグナル・ハンドラ内から安全に呼び出すことができる、 +async-signal-safe functions (非同期シングルで安全な関数) の +リストについては .BR signal (7) -¤ò»²¾È¡£ +を参照。 .PP .\"O The use of .\"O .I sighandler_t .\"O is a GNU extension. .I sighandler_t -¤Î»ÈÍÑ¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ë¡£ +の使用は GNU 拡張である。 .\"O Various versions of libc predefine this type; libc4 and libc5 define .\"O .IR SignalHandler ; .\"O glibc defines @@ -267,23 +267,23 @@ async-signal-safe functions ( .\"O .B _GNU_SOURCE .\"O is defined, also .\"O .IR sighandler_t . -³Æ¼ï¥Ð¡¼¥¸¥ç¥ó¤Î libc ¤Ç¤³¤Î·¿¤ÏÄêµÁºÑ¤ß¤Ç¤¢¤ë; -libc4 ¤È libc5 ¤Ç¤Ï +各種バージョンの libc でこの型は定義済みである; +libc4 と libc5 では .I SignalHandler -¤òÄêµÁ¤·¤Æ¤¤¤ë¡£ -glibc ¤Ç¤Ï +を定義している。 +glibc では .I sig_t -¤òÄêµÁ¤·¤Æ¤ª¤ê¡¢ +を定義しており、 .B _GNU_SOURCE -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï +が定義されている場合には .I sighandler_t -¤âÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +も定義されている。 .\"O Without use of such a type, the declaration of .\"O .BR signal () .\"O is the somewhat harder to read: -¤³¤Î¤è¤¦¤Ê·¿¤ò»ÈÍѤ·¤Ê¤¤¤È¡¢ +このような型を使用しないと、 .BR signal () -¤ÎÀë¸À¤ÏÆɤߤˤ¯¤¤¤â¤Î¤È¤Ê¤ë¡£ +の宣言は読みにくいものとなる。 .in +4n .nf @@ -291,7 +291,7 @@ glibc .fi .in .\"O .SS PORTABILITY -.SS °Ü¿¢À­ +.SS 移植性 .\"O The only portable use of .\"O .BR signal () .\"O is to set a signal's disposition to @@ -303,31 +303,31 @@ glibc .\"O to establish a signal handler vary across systems .\"O (and POSIX.1 explicitly permits this variation); .\"O .B do not use it for this purpose. -°Ü¿¢À­¤Î¤¢¤ë +移植性のある .BR signal () -¤Î»È¤¤Êý¤Ï¡¢¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤ò +の使い方は、シグナルの処理方法を .BR SIG_DFL -¤« +か .BR SIG_IGN -¤ËÀßÄꤹ¤ëÊýË¡¤À¤±¤Ç¤¢¤ë¡£ -¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤òÀßÄꤹ¤ë¤Î¤Ë +に設定する方法だけである。 +シグナル・ハンドラを設定するのに .BR signal () -¤ò»È¤Ã¤¿¤È¤­¤ÎÆ°ºî¤Ï¥·¥¹¥Æ¥à¤Ë¤è¤ê°Û¤Ê¤ë -(POSIX.1 ¤ÏÌÀ¼¨Åª¤Ë¤³¤Î°ã¤¤¤òǧ¤á¤Æ¤¤¤ë)¡£ -.B "°Ü¿¢À­¤¬É¬ÍפʤȤ­¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»ÈÍѤ·¤Ê¤¤¤³¤È¡£" +を使ったときの動作はシステムにより異なる +(POSIX.1 は明示的にこの違いを認めている)。 +.B "移植性が必要なときはこのシステムコールを使用しないこと。" .\"O POSIX.1 solved the portability mess by specifying .\"O .BR sigaction (2), .\"O which provides explicit control of the semantics when a .\"O signal handler is invoked; use that interface instead of .\"O .BR signal (). -POSIX.1 ¤Ï¡¢ +POSIX.1 は、 .BR sigaction (2) -¤òµ¬Äꤹ¤ë¤³¤È¤Ç°Ü¿¢À­¤Ë´Ø¤¹¤ëº®Íð¤ò²ò·è¤·¤¿¡£ +を規定することで移植性に関する混乱を解決した。 .BR sigaction (2) -¤Ï¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤¬µ¯Æ°¤µ¤ì¤ëºÝ¤ÎµóÆ°¤òÌÀ¼¨Åª¤ËÀ©¸æ¤Ç¤­¤ë¡£ +はシグナル・ハンドラが起動される際の挙動を明示的に制御できる。 .BR signal () -¤ÎÂå¤ï¤ê¤Ë¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤ò»È¤¦¤³¤È¡£ +の代わりにこのインターフェイスを使うこと。 .\"O In the original UNIX systems, when a handler that was established using .\"O .BR signal () @@ -341,20 +341,20 @@ POSIX.1 .\"O before the handler had a chance to reestablish itself. .\"O Furthermore, rapid deliveries of the same signal could .\"O result in recursive invocations of the handler. -¥ª¥ê¥¸¥Ê¥ë¤Î UNIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +オリジナルの UNIX システムでは、 .BR signal () -¤ò»È¤Ã¤ÆÀßÄꤵ¤ì¤¿¥Ï¥ó¥É¥é¤¬¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤Ë¤è¤êµ¯Æ°¤µ¤ì¤ë¤È¡¢ -¤½¤Î¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤Ï +を使って設定されたハンドラがシグナルの配送により起動されると、 +そのシグナルの処理方法は .B SIG_DFL -¤Ë¥ê¥»¥Ã¥È¤µ¤ì¡¢¥·¥¹¥Æ¥à¤ÏƱ¤¸¥·¥°¥Ê¥ë¤¬¤µ¤é¤ËÀ¸À®¤µ¤ì¤Æ¤â -¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤ò¥Ö¥í¥Ã¥¯¤·¤Ê¤«¤Ã¤¿¡£ -System V ¤Ç¤â¡¢ +にリセットされ、システムは同じシグナルがさらに生成されても +シグナルの配送をブロックしなかった。 +System V でも、 .BR signal () -¤ËÂФ·¤Æ¤³¤ì¤é¤ÎµóÆ°¤òµ¬Äꤷ¤Æ¤¤¤ë¡£ -¤³¤¦¤·¤¿µóÆ°¤Ï¤Þ¤º¤¯¡¢¥Ï¥ó¥É¥é¤¬¥Ï¥ó¥É¥é¼«¿È¤òºÆÀßÄꤹ¤ëµ¡²ñ¤¬ -Íè¤ë¤è¤êÁ°¤Ë¡¢Æ±¤¸¥·¥°¥Ê¥ë¤¬¤Þ¤¿ÇÛÁ÷¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¤µ¤é¤Ë¡¢Æ±¤¸¥·¥°¥Ê¥ë¤¬Î©¤Æ³¤±¤ËÇÛÁ÷¤µ¤ì¤ë¤È¡¢Æ±¤¸¥·¥°¥Ê¥ë¤¬ -¥Ï¥ó¥É¥é¤ò·«¤êÊÖ¤·µ¯Æ°¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ +に対してこれらの挙動を規定している。 +こうした挙動はまずく、ハンドラがハンドラ自身を再設定する機会が +来るより前に、同じシグナルがまた配送される可能性がある。 +さらに、同じシグナルが立て続けに配送されると、同じシグナルが +ハンドラを繰り返し起動されることになる。 .\"O BSD improved on this situation by changing the semantics of .\"O signal handling @@ -365,23 +365,23 @@ System V .\"O the signal disposition is not reset, .\"O and further instances of the signal are blocked from .\"O being delivered while the handler is executing. -BSD ¤Ç¤Ï¡¢¥·¥°¥Ê¥ë½èÍý¤ÎµóÆ°¤òÊѹ¹¤¹¤ë¤³¤È¤Ç¡¢¤³¤Î¾õ¶·¤ò²þÁ±¤·¤¿ -(¤·¤«¤·¡¢»ÄÇ°¤Ê¤³¤È¤Ë¡¢ +BSD では、シグナル処理の挙動を変更することで、この状況を改善した +(しかし、残念なことに、 .BR signal () -¤ò»È¤Ã¤Æ¥Ï¥ó¥É¥é¤òÀßÄꤹ¤ëºÝ¤ËµóÆ°¤¬ÌۤäÆÊѹ¹¤µ¤ì¤ë)¡£ -BSD ¤Ç¤Ï¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬µ¯Æ°¤µ¤ì¤¿ºÝ¡¢ -¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤Ï¥ê¥»¥Ã¥È¤µ¤ì¤º¡¢ -¥Ï¥ó¥É¥é¤Î¼Â¹ÔÃæ¤Ï¡¢Æ±¤¸¥·¥°¥Ê¥ë¤Î¤µ¤é¤Ê¤ëÀ¸À®¤ÏÇÛÁ÷¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¡£ +を使ってハンドラを設定する際に挙動が黙って変更される)。 +BSD では、シグナルハンドラが起動された際、 +シグナルの処理方法はリセットされず、 +ハンドラの実行中は、同じシグナルのさらなる生成は配送がブロックされる。 .\"O The situation on Linux is as follows: -Linux ¤Ç¤Î¾õ¶·¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +Linux での状況は以下の通りである。 .IP * 2 .\"O The kernel's .\"O .BR signal () .\"O system call provides System V semantics. -¥«¡¼¥Í¥ë¤Î +カーネルの .BR signal () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï System V Êý¼°¤òÄ󶡤·¤Æ¤¤¤ë¡£ +システムコールは System V 方式を提供している。 .IP * .\"O By default, in glibc 2 and later, the .\"O .BR signal () @@ -389,12 +389,12 @@ Linux .\"O Instead, it calls .\"O .BR sigaction (2) .\"O using flags that supply BSD semantics. -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢glibc 2 °Ê¹ß¤Ç¤Ï¡¢ +デフォルトでは、glibc 2 以降では、 .BR signal () -¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¥«¡¼¥Í¥ë¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤·¤Ê¤¤¡£ -Âå¤ï¤ê¤Ë¡¢¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï BSD Êý¼°¤ò¼¨¤¹¥Õ¥é¥°¤ò»È¤Ã¤Æ +ラッパー関数はカーネルのシステムコールを起動しない。 +代わりに、ラッパー関数は BSD 方式を示すフラグを使って .BR sigaction (2) -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .\"O This default behavior is provided as long as the .\"O .B _BSD_SOURCE .\"O feature test macro is defined. @@ -404,28 +404,28 @@ Linux .\"O it is also implicitly defined if one defines .\"O .BR _GNU_SOURCE , .\"O and can of course be explicitly defined. -µ¡Ç½¸¡ºº¥Þ¥¯¥í +機能検査マクロ .B _BSD_SOURCE -¤òÄêµÁ¤·¤Æ¤¤¤ì¤Ð¡¢¤³¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤È¤Ê¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +を定義していれば、このデフォルトの動作となる。 +デフォルトでは、 .B _BSD_SOURCE -¤¬ÄêµÁ¤µ¤ì¤ë¡£ +が定義される。 .B _BSD_SOURCE -¤Ï +は .B _GNU_SOURCE -¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï°ÅÌۤΤ¦¤Á¤ËÄêµÁ¤µ¤ì¡¢ -¤â¤Á¤í¤óÌÀ¼¨Åª¤ËÄêµÁ¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +が定義された場合には暗黙のうちに定義され、 +もちろん明示的に定義することもできる。 .sp .\"O On glibc 2 and later, if the .\"O .B _BSD_SOURCE .\"O feature test macro is not defined, then .\"O .BR signal () .\"O provides System V semantics. -glibc 2 °Ê¹ß¤Ç¤Ï¡¢µ¡Ç½¸¡ºº¥Þ¥¯¥í +glibc 2 以降では、機能検査マクロ .B _BSD_SOURCE -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ +が定義されていなければ、 .BR signal () -¤Ï System V Êý¼°¤È¤Ê¤ë¡£ +は System V 方式となる。 .\"O (The default implicit definition of .\"O .B _BSD_SOURCE .\"O is not provided if one invokes @@ -440,18 +440,18 @@ glibc 2 .\"O see .\"O .BR feature_test_macros (7).) .RB ( gcc (1) -¤¬É¸½à»ØÄê¥â¡¼¥É +が標準指定モード .RI ( -std=xxx " or " -ansi ) -¤Çµ¯Æ°¤µ¤ì¤¿¾ì¹ç¡¢¤â¤·¤¯¤Ï +で起動された場合、もしくは .BR _POSIX_SOURCE , .BR _XOPEN_SOURCE , .B _SVID_SOURCE -¤È¤¤¤Ã¤¿Â¾¤ÎÍÍ¡¹¤Êµ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¡¢ -¥Ç¥Õ¥©¥ë¥È¤Î +といった他の様々な機能検査マクロが定義された場合、 +デフォルトの .B _BSD_SOURCE -¤Î°ÅÌÛ¤ÎÄêµÁ¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ +の暗黙の定義は行われない。 .BR feature_test_macros (7) -¤ò»²¾È¤Î¤³¤È¡£) +を参照のこと。) .\" .\" System V semantics are also provided if one uses the separate .\" .BR sysv_signal (3) @@ -467,22 +467,22 @@ glibc 2 .\"O then .\"O .BR signal () .\"O provides BSD semantics. -Linux ¤Î libc4 ¤È libc5 ¤Î +Linux の libc4 と libc5 の .BR signal () -´Ø¿ô¤Ï System V Êý¼°¤Ç¤¢¤ë¡£ -libc5 ¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ +関数は System V 方式である。 +libc5 システムにおいて .I -¤Î¤«¤ï¤ê¤Ë +のかわりに .I -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤È¡¢ +をインクルードすると、 .BR signal () -¤Ï +は .BR __bsd_signal () -¤ËºÆÄêµÁ¤µ¤ì¡¢ +に再定義され、 .BR signal () -¤Ï BSD Êý¼°¤È¤Ê¤ë¡£ +は BSD 方式となる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR kill (1), .BR alarm (2), .BR kill (2), diff --git a/draft/man2/signalfd.2 b/draft/man2/signalfd.2 index fcf39099..cb23766f 100644 --- a/draft/man2/signalfd.2 +++ b/draft/man2/signalfd.2 @@ -24,16 +24,16 @@ .\" .TH SIGNALFD 2 2009-01-13 Linux "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O signalfd \- create a file descriptor for accepting signals -signalfd \- ¥·¥°¥Ê¥ë¼õ¤±ÉÕ¤±ÍѤΥե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÀ¸À®¤¹¤ë +signalfd \- シグナル受け付け用のファイルディスクリプタを生成する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int signalfd(int " fd ", const sigset_t *" mask ", int " flags ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR signalfd () .\"O creates a file descriptor that can be used to accept signals .\"O targeted at the caller. @@ -45,15 +45,15 @@ signalfd \- .\"O and .\"O .BR epoll (7). .BR signalfd () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ°¸¤Æ¤Î¥·¥°¥Ê¥ë¤ò¼õ¤±ÉÕ¤±¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¥Õ¥¡¥¤¥ë -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÀ¸À®¤¹¤ë¡£ -¤³¤ÎÊýË¡¤Ï¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ä +は、呼び出し元宛てのシグナルを受け付けるために使用されるファイル +ディスクリプタを生成する。 +この方法はシグナルハンドラや .BR sigwaitinfo (2) -¤òÍѤ¤¤ëÊýË¡¤ÎÂå¤ï¤ê¤È¤Ê¤ë¤â¤Î¤Ç¤¢¤ê¡¢¤³¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò +を用いる方法の代わりとなるものであり、このファイルディスクリプタを .BR select (2), .BR poll (2), .BR epoll (7) -¤Ç´Æ»ë¤Ç¤­¤ë¤È¤¤¤¦ÍøÅÀ¤¬¤¢¤ë¡£ +で監視できるという利点がある。 .\"O The .\"O .I mask @@ -63,19 +63,19 @@ signalfd \- .\"O using the macros described in .\"O .BR sigsetops (3). .I mask -°ú¤­¿ô¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤¬¤³¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿·Ðͳ¤Ç¼õ¤±ÉÕ¤±¤¿¤¤ -¥·¥°¥Ê¥ë½¸¹ç¤ò»ØÄꤹ¤ë¡£¤³¤Î°ú¤­¿ô¤Ç»ØÄꤹ¤ë¥·¥°¥Ê¥ë½¸¹ç¤ÎÆâÍƤϡ¢ +引き数には、呼び出し元がこのファイルディスクリプタ経由で受け付けたい +シグナル集合を指定する。この引き数で指定するシグナル集合の内容は、 .BR sigsetops (3) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¥Þ¥¯¥í¤ò»È¤Ã¤Æ½é´ü²½¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +で説明されているマクロを使って初期化することができる。 .\"O Normally, the set of signals to be received via the .\"O file descriptor should be blocked using .\"O .BR sigprocmask (2), .\"O to prevent the signals being handled according to their default .\"O dispositions. -Ä̾¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿·Ðͳ¤Ç¼õ¿®¤¹¤ë¥·¥°¥Ê¥ë½¸¹ç¤Ï¡¢ -¤½¤Î¥·¥°¥Ê¥ë¤¬¥Ç¥Õ¥©¥ë¥È¤ÎÇÛÁ÷ÊýË¡¤Ë´ð¤¤¤Æ½èÍý¤µ¤ì¤ë¤Î¤òËɤ°¤¿¤á¤Ë¡¢ +通常、ファイルディスクリプタ経由で受信するシグナル集合は、 +そのシグナルがデフォルトの配送方法に基いて処理されるのを防ぐために、 .BR sigprocmask (2) -¤ò»È¤Ã¤Æ¥Ö¥í¥Ã¥¯¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£ +を使ってブロックしておくべきである。 .\"O It is not possible to receive .\"O .B SIGKILL .\"O or @@ -83,14 +83,14 @@ signalfd \- .\"O signals via a signalfd file descriptor; .\"O these signals are silently ignored if specified in .\"O .IR mask . -¥·¥°¥Ê¥ë +シグナル .B SIGKILL -¤È +と .B SIGSTOP -¤ò signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿·Ðͳ¤Ç¼õ¿®¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -¤³¤ì¤é¤Î¥·¥°¥Ê¥ë¤¬ +を signalfd ファイルディスクリプタ経由で受信することはできない。 +これらのシグナルが .I mask -¤Ç»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤ÏÌۤäÆ̵»ë¤µ¤ì¤ë¡£ +で指定された場合には黙って無視される。 .\"O If the .\"O .I fd @@ -106,27 +106,27 @@ signalfd \- .\"O .I mask .\"O is used to replace the signal set associated with that descriptor. .I fd -°ú¤­¿ô¤¬ \-1 ¤Î¾ì¹ç¡¢ +引き数が \-1 の場合、 .BR signalfd () -¤Ï¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÀ¸À®¤·¡¢ +は新しいファイルディスクリプタを生成し、 .I mask -¤Ç»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë½¸¹ç¤ò¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë´ØÏ¢ÉÕ¤±¤ë¡£ +で指定されたシグナル集合をそのファイルディスクリプタに関連付ける。 .I fd -°ú¤­¿ô¤¬ \-1 °Ê³°¤Î¾ì¹ç¡¢ +引き数が \-1 以外の場合、 .I fd -¤Ë¤ÏÍ­¸ú¤Ê´û¸¤Î signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -¤½¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë½¸¹ç¤Ï +には有効な既存の signalfd ファイルディスクリプタを指定しなければならず、 +そのディスクリプタに関連付けられているシグナル集合は .I mask -¤ò»È¤Ã¤ÆÃÖ¤­´¹¤¨¤é¤ì¤ë¡£ +を使って置き換えられる。 .\"O Starting with Linux 2.6.27, the following values may be bitwise ORed in .\"O .IR flags .\"O to change the behaviour of .\"O .BR signalfd (): -Linux 2.6.27 °Ê¹ß¤Ç¤Ï¡¢ -°Ê²¼¤ÎÃͤΤ¤¤¯¤Ä¤«¤ò¥Ó¥Ã¥Èñ°Ì¤ÎÏÀÍýÏ (OR) ¤Ç»ØÄꤹ¤ë¤³¤È¤Ç¡¢ +Linux 2.6.27 以降では、 +以下の値のいくつかをビット単位の論理和 (OR) で指定することで、 .BR signalfd () -¤Î¿¶Éñ¤¤¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +の振舞いを変更することができる。 .TP 14 .B SFD_NONBLOCK .\"O Set the @@ -135,14 +135,14 @@ Linux 2.6.27 .\"O Using this flag saves extra calls to .\"O .BR fcntl (2) .\"O to achieve the same result. -¿·¤·¤¯À¸À®¤µ¤ì¤ë¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò (open file description) ¤Î +新しく生成されるオープンファイル記述 (open file description) の .B O_NONBLOCK -¥Õ¥¡¥¤¥ë¥¹¥Æ¡¼¥¿¥¹¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤³¤È¤Ç¡¢ +ファイルステータスフラグをセットする。 +このフラグを使うことで、 .B O_NONBLOCK -¤ò¥»¥Ã¥È¤¹¤ë¤¿¤á¤Ë +をセットするために .BR fcntl (2) -¤òÄɲäǸƤӽФ¹É¬Íפ¬¤Ê¤¯¤Ê¤ë¡£ +を追加で呼び出す必要がなくなる。 .TP .B SFD_CLOEXEC .\"O Set the close-on-exec @@ -153,27 +153,27 @@ Linux 2.6.27 .\"O flag in .\"O .BR open (2) .\"O for reasons why this may be useful. -¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ +新しいファイルディスクリプタに対して close-on-exec .RB ( FD_CLOEXEC ) -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬Ìò¤ËΩ¤ÄÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +フラグをセットする。 +このフラグが役に立つ理由については、 .BR open (2) -¤Î +の .B O_CLOEXEC -¥Õ¥é¥°¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +フラグの説明を参照のこと。 .PP .\"O In Linux up to version 2.6.26, the .\"O .I flags .\"O argument is unused, and must be specified as zero. -¥Ð¡¼¥¸¥ç¥ó 2.6.26 °ÊÁ°¤Î Linux ¤Ç¤Ï¡¢ +バージョン 2.6.26 以前の Linux では、 .I flags -°ú¤­¿ô¤Ï̤»ÈÍѤǤ¢¤ê¡¢0 ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数は未使用であり、0 を指定しなければならない。 .\"O .BR signalfd () .\"O returns a file descriptor that supports the following operations: .BR signalfd () -¤¬ÊÖ¤¹¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï°Ê²¼¤ÎÁàºî¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ +が返すファイルディスクリプタは以下の操作をサポートしている。 .TP .BR read (2) .\"O If one or more of the signals specified in @@ -194,20 +194,20 @@ close-on-exec .\"O .BR read (2) .\"O is the total number of bytes read. .I mask -¤Ë»ØÄꤵ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤Î¤¦¤Á°ì¤Ä°Ê¾å¤¬¤½¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ -½èÍýÂÔ¤Á (pending) ¤Ç¤¢¤ì¤Ð¡¢¤½¤ì¤é¤Î¥·¥°¥Ê¥ë¤Î¾ðÊó¤¬ +に指定されているシグナルのうち一つ以上がそのプロセスに対して +処理待ち (pending) であれば、それらのシグナルの情報が .BR read (2) -¤ËÅϤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤ò»È¤Ã¤Æ¡¢ +に渡されたバッファを使って、 .I signalfd_siginfo -¹½Â¤ÂΤ˳ÊǼ¤µ¤ì¤ÆÊÖ¤µ¤ì¤ë¡£ +構造体に格納されて返される。 .BR read (2) -¤Ï¡¢¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ²Äǽ¤ÊÈϰϤǤǤ­¤ë¤À¤±Â¿¤¯¤Î½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë¤Ë -¤Ä¤¤¤Æ¤Î¾ðÊó¤òÊÖ¤¹¡£ -¥Ð¥Ã¥Õ¥¡¤ÏºÇÄã¤Ç¤â +は、バッファに格納可能な範囲でできるだけ多くの処理待ちのシグナルに +ついての情報を返す。 +バッファは最低でも .I "sizeof(struct signalfd_siginfo)" -¥Ð¥¤¥È¤ÎÂ礭¤µ¤¬¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +バイトの大きさがなければならない。 .BR read (2) -¤ÎÊÖ¤êÃͤÏÆɤ߽Фµ¤ì¤¿¥È¡¼¥¿¥ë¤Î¥Ð¥¤¥È¿ô¤Ç¤¢¤ë¡£ +の返り値は読み出されたトータルのバイト数である。 .IP .\"O As a consequence of the .\"O .BR read (2), @@ -217,11 +217,11 @@ close-on-exec .\"O and cannot be accepted using .\"O .BR sigwaitinfo (2)). .BR read (2) -¤¬¹Ô¤ï¤ì¤¿·ë²Ì¡¢¥·¥°¥Ê¥ë¤Ï¾ÃÈñ¤µ¤ì¡¢ -¤³¤ì¤é¤Î¥·¥°¥Ê¥ë¤Ï¤½¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ¤Ï½èÍýÂÔ¤Á¤Ç¤Ï¤Ê¤¯¤Ê¤ë -(¤Ä¤Þ¤ê¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ÇÊ᪤µ¤ì¤ë¤³¤È¤â¤Ê¤¯¡¢ +が行われた結果、シグナルは消費され、 +これらのシグナルはそのプロセスに対しては処理待ちではなくなる +(つまり、シグナルハンドラで捕捉されることもなく、 .BR sigwaitinfo (2) -¤ò»È¤Ã¤Æ¼õ¤±¼è¤ë¤³¤È¤â¤Ç¤­¤Ê¤¯¤Ê¤ë)¡£ +を使って受け取ることもできなくなる)。 .IP .\"O If none of the signals in .\"O .I mask @@ -234,18 +234,18 @@ close-on-exec .\"O .B EAGAIN .\"O if the file descriptor has been made nonblocking. .I mask -¤Ë»ØÄꤵ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤¬¤½¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ°ì¤Ä¤â½èÍýÂÔ¤Á¤Ç¤Ê¤±¤ì¤Ð¡¢ +に指定されているシグナルがそのプロセスに対して一つも処理待ちでなければ、 .BR read (2) -¤Ï¡¢ +は、 .I mask -¤Ç»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë¤Î¤¦¤Á¤¤¤º¤ì¤«°ì¤Ä¤¬¤½¤Î¥×¥í¥»¥¹¤ËÂФ·¤ÆȯÀ¸¤¹¤ë¤Þ¤Ç -Ää»ß (block) ¤¹¤ë¡¢¤â¤·¤¯¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÈóÄä»ß (nonblocking) -¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¥¨¥é¡¼ +で指定されたシグナルのうちいずれか一つがそのプロセスに対して発生するまで +停止 (block) する、もしくはファイルディスクリプタが非停止 (nonblocking) +に設定されている場合はエラー .B EAGAIN -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .TP .\"O .BR poll "(2), " select "(2) (and similar)" -.BR poll "(2), " select "(2) (¤ÈƱÍͤÎÁàºî)" +.BR poll "(2), " select "(2) (と同様の操作)" .\"O The file descriptor is readable .\"O (the .\"O .BR select (2) @@ -258,16 +258,16 @@ close-on-exec .\"O .I mask .\"O is pending for the process. .I mask -¤Ë»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë¤Î¤¦¤Á°ì¤Ä°Ê¾å¤¬¤½¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ½èÍýÂÔ¤Á¤Ç¤¢¤ì¤Ð¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÆɤ߽Ф·²Äǽ¤È¤Ê¤ë +に指定されたシグナルのうち一つ以上がそのプロセスに対して処理待ちであれば、 +ファイルディスクリプタは読み出し可能となる .RB ( select (2) -¤Î +の .I readfds -°ú¤­¿ô¤ä +引き数や .BR poll (2) -¤Î +の .B POLLIN -¥Õ¥é¥°)¡£ +フラグ)。 .IP .\"O The signalfd file descriptor also supports the other file-descriptor .\"O multiplexing APIs: @@ -275,32 +275,32 @@ close-on-exec .\"O .BR ppoll (2), .\"O and .\"O .BR epoll (7). -signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢¤³¤ì°Ê³°¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ -¿½Å API ¤Ç¤¢¤ë +signalfd ファイルディスクリプタは、これ以外のファイルディスクリプタ +多重 API である .BR pselect (2), .BR ppoll (2), .BR epoll (7) -¤â¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ +もサポートしている。 .TP .BR close (2) .\"O When the file descriptor is no longer required it should be closed. .\"O When all file descriptors associated with the same signalfd object .\"O have been closed, the resources for object are freed by the kernel. -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¤½¤ì°Ê¹ß¤ÏɬÍפʤ¯¤Ê¤Ã¤¿ºÝ¤Ë¤Ï¡¢¥¯¥í¡¼¥º¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -Ʊ¤¸ signalfd ¥ª¥Ö¥¸¥§¥¯¥È¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Á´¤Æ -¥¯¥í¡¼¥º¤µ¤ì¤ë¤È¡¢¤½¤Î¥ª¥Ö¥¸¥§¥¯¥ÈÍѤλñ¸»¤¬¥«¡¼¥Í¥ë¤Ë¤è¤ê²òÊü¤µ¤ì¤ë¡£ +ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきである。 +同じ signalfd オブジェクトに関連付けられたファイルディスクリプタが全て +クローズされると、そのオブジェクト用の資源がカーネルにより解放される。 .\"O .SS The signalfd_siginfo structure -.SS signalfd_siginfo ¹½Â¤ÂÎ +.SS signalfd_siginfo 構造体 .\"O The format of the .\"O .I signalfd_siginfo .\"O structure(s) returned by .\"O .BR read (2)s .\"O from a signalfd file descriptor is as follows: -signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤é¤Î +signalfd ファイルディスクリプタからの .BR read (2) -¤ÇÊÖ¤µ¤ì¤ë +で返される .I signalfd_siginfo -¹½Â¤ÂΤΥե©¡¼¥Þ¥Ã¥È¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +構造体のフォーマットは以下の通りである。 .in +4n .nf @@ -326,26 +326,26 @@ struct signalfd_siginfo { .\"O uint8_t pad[\fIX\fP]; /* Pad size to 128 bytes (allow for .\"O additional fields in the future) */ struct signalfd_siginfo { - uint32_t ssi_signo; /* ¥·¥°¥Ê¥ëÈÖ¹æ */ - int32_t ssi_errno; /* ¥¨¥é¡¼ÈÖ¹æ (̤»ÈÍÑ) */ - int32_t ssi_code; /* ¥·¥°¥Ê¥ë¥³¡¼¥É */ - uint32_t ssi_pid; /* Á÷¿®¸µ¤Î PID */ - uint32_t ssi_uid; /* Á÷¿®¸µ¤Î¼Â UID */ - int32_t ssi_fd; /* ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ (SIGIO) */ - uint32_t ssi_tid; /* ¥«¡¼¥Í¥ë¥¿¥¤¥Þ ID (POSIX ¥¿¥¤¥Þ) - uint32_t ssi_band; /* Band ¥¤¥Ù¥ó¥È (SIGIO) */ - uint32_t ssi_overrun; /* POSIX ¥¿¥¤¥Þ¤Î¥ª¡¼¥Ð¡¼¥é¥ó²ó¿ô */ - uint32_t ssi_trapno; /* ¥·¥°¥Ê¥ë¤Î¸¶°ø¤È¤Ê¤Ã¤¿¥È¥é¥Ã¥×ÈÖ¹æ */ -.\" ¤Û¤È¤ó¤É¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç ssi_trapno ¤Ï̤»ÈÍÑ - int32_t ssi_status; /* ½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤«¥·¥°¥Ê¥ë (SIGCHLD) */ - int32_t ssi_int; /* sigqueue(3) ¤«¤éÁ÷¤é¤ì¤¿À°¿ô */ - uint64_t ssi_ptr; /* sigqueue(3) ¤«¤éÁ÷¤é¤ì¤¿¥Ý¥¤¥ó¥¿ */ - uint64_t ssi_utime; /* ¾ÃÈñ¤·¤¿¥æ¡¼¥¶ CPU »þ´Ö (SIGCHLD) */ - uint64_t ssi_stime; /* ¾ÃÈñ¤·¤¿¥·¥¹¥Æ¥à CPU »þ´Ö (SIGCHLD) */ - uint64_t ssi_addr; /* ¥·¥°¥Ê¥ë¤òÀ¸À®¤·¤¿¥¢¥É¥ì¥¹ - (¥Ï¡¼¥É¥¦¥§¥¢¤¬À¸À®¤·¤¿¥·¥°¥Ê¥ë¤Î¾ì¹ç) */ - uint8_t pad[\fIX\fP]; /* pad ¤ÎÂ礭¤µ¤Ï 128 ¥Ð¥¤¥È - (¾­Íè¤Î¥Õ¥£¡¼¥ë¥ÉÄɲÃÍѤξì½ê¤Î³ÎÊÝ) */ + uint32_t ssi_signo; /* シグナル番号 */ + int32_t ssi_errno; /* エラー番号 (未使用) */ + int32_t ssi_code; /* シグナルコード */ + uint32_t ssi_pid; /* 送信元の PID */ + uint32_t ssi_uid; /* 送信元の実 UID */ + int32_t ssi_fd; /* ファイルディスクリプタ (SIGIO) */ + uint32_t ssi_tid; /* カーネルタイマ ID (POSIX タイマ) + uint32_t ssi_band; /* Band イベント (SIGIO) */ + uint32_t ssi_overrun; /* POSIX タイマのオーバーラン回数 */ + uint32_t ssi_trapno; /* シグナルの原因となったトラップ番号 */ +.\" ほとんどのアーキテクチャで ssi_trapno は未使用 + int32_t ssi_status; /* 終了ステータスかシグナル (SIGCHLD) */ + int32_t ssi_int; /* sigqueue(3) から送られた整数 */ + uint64_t ssi_ptr; /* sigqueue(3) から送られたポインタ */ + uint64_t ssi_utime; /* 消費したユーザ CPU 時間 (SIGCHLD) */ + uint64_t ssi_stime; /* 消費したシステム CPU 時間 (SIGCHLD) */ + uint64_t ssi_addr; /* シグナルを生成したアドレス + (ハードウェアが生成したシグナルの場合) */ + uint8_t pad[\fIX\fP]; /* pad の大きさは 128 バイト + (将来のフィールド追加用の場所の確保) */ }; .fi @@ -359,13 +359,13 @@ struct signalfd_siginfo { .\"O structure is described in .\"O .BR sigaction (2). .I signalfd_siginfo -¹½Â¤ÂΤγƥե£¡¼¥ë¥É¤Ï¡¢ +構造体の各フィールドは、 .I siginfo_t -¹½Â¤ÂΤÎƱ¤¸¤è¤¦¤Ê̾Á°¤Î¥Õ¥£¡¼¥ë¥É¤ÈƱÍͤǤ¢¤ë¡£ +構造体の同じような名前のフィールドと同様である。 .I siginfo_t -¹½Â¤ÂΤˤĤ¤¤Æ¤Ï +構造体については .BR sigaction (2) -¤ËÀâÌÀ¤¬¤¢¤ë¡£ +に説明がある。 .\"O Not all fields in the returned .\"O .I signalfd_siginfo .\"O structure will be valid for a specific signal; @@ -378,21 +378,21 @@ struct signalfd_siginfo { .\"O field; see .\"O .BR sigaction (2) .\"O for details. -ÊÖ¤µ¤ì¤¿ +返された .I signalfd_siginfo -¹½Â¤ÂΤÎÁ´¤Æ¤Î¥Õ¥£¡¼¥ë¥É¤¬¤¢¤ë¥·¥°¥Ê¥ë¤ËÂФ·¤ÆÍ­¸ú¤Ê¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -¤É¤Î¥Õ¥£¡¼¥ë¥É¤¬Í­¸ú¤«¤Ï¡¢ +構造体の全てのフィールドがあるシグナルに対して有効なわけではない。 +どのフィールドが有効かは、 .I ssi_code -¥Õ¥£¡¼¥ë¥É¤ÇÊÖ¤µ¤ì¤ëÃͤ«¤éȽÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï +フィールドで返される値から判定することができる。 +このフィールドは .I siginfo_t -¤Î +の .I si_code -¥Õ¥£¡¼¥ë¥É¤ÈƱÍͤǤ¢¤ë¡£¾ÜºÙ¤Ï +フィールドと同様である。詳細は .BR sigaction (2) -¤ò»²¾È¡£ +を参照。 .\"O .SS fork(2) semantics -.SS fork(2) ¤Ç¤Î°·¤¤ +.SS fork(2) での扱い .\"O After a .\"O .BR fork (2), .\"O the child inherits a copy of the signalfd file descriptor. @@ -401,14 +401,14 @@ struct signalfd_siginfo { .\"O from the file descriptor in the child will return information .\"O about signals queued to the child. .BR fork (2) -¤¬¹Ô¤ï¤ì¤ë¤È¡¢»Ò¥×¥í¥»¥¹¤Ï signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¥³¥Ô¡¼¤ò -·Ñ¾µ¤¹¤ë¡£ -»Ò¥×¥í¥»¥¹¤Ç¤³¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤é +が行われると、子プロセスは signalfd ファイルディスクリプタのコピーを +継承する。 +子プロセスでこのファイルディスクリプタから .BR read (2) -¤ò¹Ô¤¦¤È¡¢»Ò¥×¥í¥»¥¹¤ËÂФ¹¤ë¥­¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë -¾ðÊó¤¬ÊÖ¤µ¤ì¤ë¡£ +を行うと、子プロセスに対するキューに入っているシグナルに関する +情報が返される。 .\"O .SS execve(2) semantics -.SS execve(2) ¤Ç¤Î°·¤¤ +.SS execve(2) での扱い .\"O Just like any other file descriptor, .\"O a signalfd file descriptor remains open across an .\"O .BR execve (2), @@ -420,22 +420,22 @@ struct signalfd_siginfo { .\"O (This is analogous to traditional signal semantics, .\"O where a blocked signal that is pending remains pending across an .\"O .BR execve (2).) -¾¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÈÁ´¤¯Æ±Íͤˡ¢ -signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤â +他のファイルディスクリプタと全く同様に、 +signalfd ファイルディスクリプタも .BR execve (2) -¤ÎÁ°¸å¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤¿¤Þ¤Þ¤È¤Ê¤ë¡£Ã¢¤·¡¢¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë -close-on-exec ¤Î¥Þ¡¼¥¯ +の前後でオープンされたままとなる。但し、そのファイルディスクリプタに +close-on-exec のマーク .RB ( fcntl (2) -»²¾È) ¤¬ÉÕ¤¤¤Æ¤¤¤ë¾ì¹ç¤Ï¥¯¥í¡¼¥º¤µ¤ì¤ë¡£ +参照) が付いている場合はクローズされる。 .BR execve (2) -¤ÎÁ°¤ËÆɤ߽Ф·²Äǽ¤È¤Ê¤Ã¤Æ¤¤¤¿Á´¤Æ¤Î¥·¥°¥Ê¥ë¤Ï¿·¤·¤¯µ¯Æ°¤µ¤ì¤¿¥×¥í¥°¥é¥à -¤Ç¤â°ú¤­Â³¤­Æɤ߽Ф·²Äǽ¤Ç¤¢¤ë -(¤³¤ì¤ÏÅÁÅýŪ¤Ê¥·¥°¥Ê¥ë¤Î°·¤¤¤ÈƱ¤¸¤Ç¤¢¤ê¡¢ -½èÍýÂÔ¤Á¤Î¥Ö¥í¥Ã¥¯¤µ¤ì¤¿¥·¥°¥Ê¥ë¤Ï +の前に読み出し可能となっていた全てのシグナルは新しく起動されたプログラム +でも引き続き読み出し可能である +(これは伝統的なシグナルの扱いと同じであり、 +処理待ちのブロックされたシグナルは .BR execve (2) -¤ÎÁ°¸å¤Ç½èÍýÂÔ¤Á¤Î¤Þ¤Þ¤È¤Ê¤ë)¡£ +の前後で処理待ちのままとなる)。 .\"O .SS Thread semantics -.SS ¥¹¥ì¥Ã¥É¤Ç¤Î°·¤¤ +.SS スレッドでの扱い .\"O The semantics of signalfd file descriptors in a multithreaded program .\"O mirror the standard semantics for signals. .\"O In other words, @@ -445,14 +445,14 @@ close-on-exec .\"O (i.e., the entire thread group). .\"O (A thread will not be able to read signals that are directed .\"O to other threads in the process.) -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥×¥í¥°¥é¥à¤Ë¤ª¤±¤ë signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î°·¤¤¤Ï -¥·¥°¥Ê¥ë¤Îɸ½àŪ¤Ê°·¤¤¤ÈÁ´¤¯Æ±¤¸¤Ç¤¢¤ë¡£ -¸À¤¤´¹¤¨¤ë¤È¡¢¤¢¤ë¥¹¥ì¥Ã¥É¤¬ signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤é -Æɤ߽Ф·¤ò¹Ô¤¦¤È¡¢¤½¤Î¥¹¥ì¥Ã¥É¼«¿È°¸¤Æ¤Î¥·¥°¥Ê¥ë¤È¥×¥í¥»¥¹ (¤¹¤Ê¤ï¤Á -¥¹¥ì¥Ã¥É¥°¥ë¡¼¥×Á´ÂÎ) °¸¤Æ¤Î¥·¥°¥Ê¥ë¤¬Æɤ߽Фµ¤ì¤ë¡£ -(¥¹¥ì¥Ã¥É¤ÏƱ¤¸¥×¥í¥»¥¹¤Î¾¤Î¥¹¥ì¥Ã¥É°¸¤Æ¤Î¥·¥°¥Ê¥ë¤òÆɤ߽Ф¹¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£) +マルチスレッドプログラムにおける signalfd ファイルディスクリプタの扱いは +シグナルの標準的な扱いと全く同じである。 +言い換えると、あるスレッドが signalfd ファイルディスクリプタから +読み出しを行うと、そのスレッド自身宛てのシグナルとプロセス (すなわち +スレッドグループ全体) 宛てのシグナルが読み出される。 +(スレッドは同じプロセスの他のスレッド宛てのシグナルを読み出すことはできない。) .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR signalfd () .\"O returns a signalfd file descriptor; @@ -466,35 +466,35 @@ close-on-exec .\"O On error, \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR signalfd () -¤Ï signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -ÊÖ¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢ +は signalfd ファイルディスクリプタを返す。 +返されるファイルディスクリプタは、 .IR fd -¤¬ \-1 ¤Î¾ì¹ç¤Ï¿·µ¬¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ê¡¢ +が \-1 の場合は新規のファイルディスクリプタであり、 .I fd -¤¬Í­¸ú¤Ê signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤À¤Ã¤¿¾ì¹ç¤Ï +が有効な signalfd ファイルディスクリプタだった場合は .I fd -¼«¿È¤Ç¤¢¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +自身である。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O The .\"O .I fd .\"O file descriptor is not a valid file descriptor. -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +ファイルディスクリプタ .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B EINVAL .\"O .I fd .\"O is not a valid signalfd file descriptor. .I fd -¤¬Í­¸ú¤Ê signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ +が有効な signalfd ファイルディスクリプタではない。 .\" or, the .\" .I sizemask .\" argument is not equal to @@ -507,55 +507,55 @@ close-on-exec .\"O .I flags .\"O is nonzero. .I flags -¤¬Ìµ¸ú¡£ -Linux 2.6.26 °ÊÁ°¤Ç¤Ï¡¢ +が無効。 +Linux 2.6.26 以前では、 .I flags -¤¬ 0 °Ê³°¤ÎÃÍ¡£ +が 0 以外の値。 .TP .B EMFILE .\"O The per-process limit of open file descriptors has been reached. -¥ª¡¼¥×¥óºÑ¤ß¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¿ô¤¬¥×¥í¥»¥¹¤¢¤¿¤ê¤Î¾å¸Â¤Ë -㤷¤Æ¤¤¤¿¡£ +オープン済みのファイルディスクリプタの数がプロセスあたりの上限に +達していた。 .TP .B ENFILE .\"O The system-wide limit on the total number of open files has been .\"O reached. -¥ª¡¼¥×¥óºÑ¤ß¤Î¥Õ¥¡¥¤¥ëÁí¿ô¤¬¥·¥¹¥Æ¥àÁ´ÂΤξå¸Â¤Ë㤷¤Æ¤¤¤¿¡£ +オープン済みのファイル総数がシステム全体の上限に達していた。 .TP .B ENODEV .\"O Could not mount (internal) anonymous inode device. -(¥«¡¼¥Í¥ëÆâ¤Î) ̵̾ inode ¥Ç¥Ð¥¤¥¹¤ò¥Þ¥¦¥ó¥È¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +(カーネル内の) 無名 inode デバイスをマウントできなかった。 .TP .B ENOMEM .\"O There was insufficient memory to create a new signalfd file descriptor. -¿·¤·¤¤ signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÀ¸À®¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤«¤Ã¤¿¡£ +新しい signalfd ファイルディスクリプタを生成するのに十分なメモリがなかった。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR signalfd () .\"O is available on Linux since kernel 2.6.22. .\"O Working support is provided in glibc since version 2.8. .BR signalfd () -¤Ï¥«¡¼¥Í¥ë 2.6.22 °Ê¹ß¤Î Linux ¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -Àµ¤·¤¯Æ°ºî¤¹¤ë glibc ¦¤Î¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.8 °Ê¹ß¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +はカーネル 2.6.22 以降の Linux で利用可能である。 +正しく動作する glibc 側のサポートはバージョン 2.8 以降で提供されている。 .\" signalfd() is in glibc 2.7, but reportedly does not build .\"O The .\"O .BR signalfd4 () .\"O system call (see NOTES) is available on Linux since kernel 2.6.27. .BR signalfd4 () -¥·¥¹¥Æ¥à¥³¡¼¥ë (¡ÖÃí°Õ¡×»²¾È) ¤Ï -¥«¡¼¥Í¥ë 2.6.27 °Ê¹ß¤Î Linux ¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +システムコール (「注意」参照) は +カーネル 2.6.27 以降の Linux で利用可能である。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O .BR signalfd () .\"O and .\"O .BR signalfd4 () .\"O are Linux-specific. .BR signalfd () -¤È +と .BR signalfd4 () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ +は Linux 固有である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The underlying Linux system call requires an additional argument, .\"O .IR "size_t sizemask" , .\"O which specifies the size of the @@ -565,15 +565,15 @@ Linux 2.6.26 .\"O .BR signalfd () .\"O wrapper function does not include this argument, .\"O since it provides the required value for the underlying system call. -¼ÂºÝ¤Î Linux ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤Ï +実際の Linux のシステムコールでは .I "size_t sizemask" -¤È¤¤¤¦°ú¤­¿ô¤¬ÄɲäÇɬÍפǤ¢¤ë¡£¤³¤Î°ú¤­¿ô¤Ç +という引き数が追加で必要である。この引き数で .I mask -¤Î¥µ¥¤¥º¤ò»ØÄꤹ¤ë¡£ -glibc ¤Î +のサイズを指定する。 +glibc の .BR signalfd () -¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ë¤Ï¤³¤Î°ú¤­¿ô¤Ï´Þ¤Þ¤ì¤º¡¢ -¥é¥Ã¥Ñ¡¼´Ø¿ô¤¬É¬ÍפÊÃͤò·×»»¤·¤ÆÆâÉô¤Ç¸Æ¤Ó½Ð¤¹¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÄ󶡤¹¤ë¡£ +ラッパー関数にはこの引き数は含まれず、 +ラッパー関数が必要な値を計算して内部で呼び出すシステムコールに提供する。 .\"O A process can create multiple signalfd file descriptors. .\"O This makes it possible to accept different signals @@ -588,22 +588,22 @@ glibc .\"O .I mask .\"O of more than one of the file descriptors, then occurrences .\"O of that signal can be read (once) from any one of the descriptors. -°ì¤Ä¤Î¥×¥í¥»¥¹¤ÏÊ£¿ô¤Î signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÀ¸À®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢°Û¤Ê¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç°Û¤Ê¤ë¥·¥°¥Ê¥ë¤ò¼õ¤±¼è¤ë¤³¤È¤¬ -¤Ç¤­¤ë (¤³¤Îµ¡Ç½¤Ï +一つのプロセスは複数の signalfd ファイルディスクリプタを生成することができる。 +これにより、異なるファイルディスクリプタで異なるシグナルを受け取ることが +できる (この機能は .BR select (2), .BR poll (2), .BR epoll (7) -¤ò»È¤Ã¤Æ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò´Æ»ë¤¹¤ë¾ì¹ç¤ËÍ­ÍѤ«¤â¤·¤ì¤Ê¤¤¡£ -°Û¤Ê¤ë¥·¥°¥Ê¥ë¤¬ÅþÃ夹¤ë¤È¡¢°Û¤Ê¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÍøÍѲÄǽ¤Ë -¤Ê¤ë¤«¤é¤À)¡£ -°ì¤Ä¤Î¥·¥°¥Ê¥ë¤¬Æó¤Ä°Ê¾å¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î +を使ってファイルディスクリプタを監視する場合に有用かもしれない。 +異なるシグナルが到着すると、異なるファイルディスクリプタが利用可能に +なるからだ)。 +一つのシグナルが二つ以上のファイルディスクリプタの .I mask -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¤½¤Î¥·¥°¥Ê¥ë¤ÎȯÀ¸¤Ï¤½¤Î¥·¥°¥Ê¥ë¤ò +に含まれている場合、そのシグナルの発生はそのシグナルを .I mask -¤Ë´Þ¤à¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¦¤Á¤¤¤º¤ì¤«°ì¤Ä¤«¤éÆɤ߽Ф¹¤³¤È¤¬¤Ç¤­¤ë¡£ +に含むファイルディスクリプタのうちいずれか一つから読み出すことができる。 .\"O .SS Underlying Linux system calls -.SH ²¼Áؤˤ¢¤ë Linux ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë +.SH 下層にある Linux のシステムコール .\"O There are two underlying Linux system calls: .\"O .BR signalfd () .\"O and the more recent @@ -614,47 +614,47 @@ glibc .\"O The latter system call implements the .\"O .I flags .\"O values described above. -²¼Áؤˤ¢¤ë Linux ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÆó¼ïÎढ¤ê¡¢ +下層にある Linux システムコールは二種類あり、 .BR signalfd () -¤È¡¢¤â¤Ã¤È¿·¤·¤¤ +と、もっと新しい .BR signalfd4 () -¤Ç¤¢¤ë¡£ +である。 .BR signalfd () -¤Ï +は .I flags -°ú¤­¿ô¤ò¼ÂÁõ¤·¤Æ¤¤¤Ê¤¤¡£ +引き数を実装していない。 .BR signalfd4 () -¤Ç¤Ï¾åµ­¤ÎÃͤΠ+では上記の値の .I flags -¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +が実装されている。 .\"O Starting with glibc 2.9, the .\"O .BR signalfd () .\"O wrapper function will use .\"O .BR signalfd4 () .\"O where it is available. -glibc 2.9 °Ê¹ß¤Ç¤Ï¡¢ +glibc 2.9 以降では、 .BR signalfd () -¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢ +のラッパー関数は、 .BR signalfd4 () -¤¬ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢¤³¤ì¤ò»ÈÍѤ¹¤ë¡£ +が利用可能であれば、これを使用する。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O In kernels before 2.6.25, the .\"O .I ssi_ptr .\"O and .\"O .I ssi_int .\"O fields are not filled in with the data accompanying a signal sent by .\"O .BR sigqueue (3). -¥«¡¼¥Í¥ë 2.6.25 ¤è¤êÁ°¤Ç¤Ï¡¢ +カーネル 2.6.25 より前では、 .BR sigqueue (3) -¤Ë¤è¤êÁ÷¿®¤µ¤ì¤¿¥·¥°¥Ê¥ë¤È°ì½ï¤ËÅϤµ¤ì¤ë¥Ç¡¼¥¿¤Ç¤Ï¡¢¥Õ¥£¡¼¥ë¥É +により送信されたシグナルと一緒に渡されるデータでは、フィールド .I ssi_ptr -¤È +と .I ssi_int -¤ÏÀßÄꤵ¤ì¤Ê¤¤¡£ +は設定されない。 .\" The fix also was put into 2.6.24.5 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The program below accepts the signals .\"O .B SIGINT .\"O and @@ -664,15 +664,15 @@ glibc 2.9 .\"O .B SIGQUIT .\"O signal. .\"O The following shell session demonstrates the use of the program: -²¼µ­¤Î¥×¥í¥°¥é¥à¤Ï¡¢¥·¥°¥Ê¥ë +下記のプログラムは、シグナル .B SIGINT -¤È +と .B SIGQUIT -¤ò signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿·Ðͳ¤Ç¼õ¿®¤¹¤ë¡£ -¥·¥°¥Ê¥ë +を signalfd ファイルディスクリプタ経由で受信する。 +シグナル .B SIGQUIT -¼õ¿®¸å¤Ë¥×¥í¥°¥é¥à¤Ï½ªÎ»¤¹¤ë¡£ -°Ê²¼¤Ë¼¨¤¹¥·¥§¥ë¥»¥Ã¥·¥ç¥ó¤Ë¤³¤Î¥×¥í¥°¥é¥à¤Î»È¤¤Êý¤ò¼¨¤¹¡£ +受信後にプログラムは終了する。 +以下に示すシェルセッションにこのプログラムの使い方を示す。 .in +4n .nf @@ -687,7 +687,7 @@ $ .fi .in .\"O .SS Program source -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -738,7 +738,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR eventfd (2), .BR poll (2), .BR read (2), diff --git a/draft/man2/sigpending.2 b/draft/man2/sigpending.2 index 1f6808c4..b9ee15ea 100644 --- a/draft/man2/sigpending.2 +++ b/draft/man2/sigpending.2 @@ -28,15 +28,15 @@ .\" Translated 2005-10-03, Akihiro MOTOKI .\" Updated 2005-12-05, Akihiro MOTOKI, Catch up to LDP man-pages 2.16 .\" -.\"WORD: pending ½èÍýÂÔ¤Á¤Î +.\"WORD: pending 処理待ちの .\" .TH SIGPENDING 2 2008-10-04 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sigpending \- examine pending signals -sigpending \- ½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë¤Î¸¡ºº +sigpending \- 処理待ちのシグナルの検査 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int sigpending(sigset_t *" set ); @@ -44,9 +44,9 @@ sigpending \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -54,7 +54,7 @@ glibc _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .PP .\"O .BR sigpending () .\"O returns the set of signals that are pending for delivery to the calling @@ -62,46 +62,46 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O The mask of pending signals is returned in .\"O .IR set . .BR sigpending () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥¹¥ì¥Ã¥É¤Ø¤ÎÇÛÁ÷¤òÂԤäƤ¤¤ë (pending) ¥·¥°¥Ê¥ë½¸¹ç -(¤¹¤Ê¤ï¤Á¡¢¶Ø»ßÃæ¤ËȯÀ¸¤·¤¿¥·¥°¥Ê¥ë) ¤òÊÖ¤¹¡£ -½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë¤Î¥Þ¥¹¥¯¤¬ +は、呼び出し元のスレッドへの配送を待っている (pending) シグナル集合 +(すなわち、禁止中に発生したシグナル) を返す。 +処理待ちのシグナルのマスクが .I set -¤Ë³ÊǼ¤µ¤ì¤ë¡£ +に格納される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR sigpending () .\"O returns 0 on success and \-1 on error. .BR sigpending () -¤ÏÀ®¸ù¤¹¤ì¤Ð 0 ¤òÊÖ¤·¡¢¥¨¥é¡¼¤Ê¤é¤Ð \-1 ¤òÊÖ¤¹¡£ +は成功すれば 0 を返し、エラーならば \-1 を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O .I set .\"O points to memory which is not a valid part of the process address space. .I set -¤¬»Ø¤·¤Æ¤¤¤ë¥á¥â¥ê¤¬¡¢¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ÎÍ­¸ú¤ÊÉôʬ¤Ç¤Ï¤Ê¤¤¡£ +が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O See .\"O .BR sigsetops (3) .\"O for details on manipulating signal sets. -¥·¥°¥Ê¥ë½¸¹ç¤ÎÁàºî¤Ë´Ø¤¹¤ë¾ÜºÙ¤Ï +シグナル集合の操作に関する詳細は .BR sigsetops (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O The set of signals that is pending for a thread .\"O is the union of the set of signals that is pending for that thread .\"O and the set of threads that is pending for the process as a whole; see .\"O .BR signal (7). -¤¢¤ë¥¹¥ì¥Ã¥É¤ËÂФ¹¤ë½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë¤Î½¸¹ç¤Ï¡¢ -¤½¤Î¥¹¥ì¥Ã¥É¼«ÂΤؤνèÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë½¸¹ç¤È¡¢¥×¥í¥»¥¹Á´ÂΤؤνèÍýÂÔ¤Á¤Î -¥·¥°¥Ê¥ë½¸¹ç¤ò¤¢¤ï¤»¤¿¤â¤Î¤Ç¤¢¤ë¡£ +あるスレッドに対する処理待ちのシグナルの集合は、 +そのスレッド自体への処理待ちのシグナル集合と、プロセス全体への処理待ちの +シグナル集合をあわせたものである。 .BR signal (7) -»²¾È¡£ +参照。 .\"O A child created via .\"O .BR fork (2) @@ -109,22 +109,22 @@ POSIX.1-2001. .\"O the pending signal set is preserved across an .\"O .BR execve (2). .BR fork (2) -·Ðͳ¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Î½èÍýÂÔ¤Á¥·¥°¥Ê¥ë½¸¹ç¤ÏºÇ½é¤Ï¶õ¤Ç¤¢¤ë¡£ +経由で作成された子プロセスの処理待ちシグナル集合は最初は空である。 .BR execve (2) -¤ÎÁ°¸å¤Ç¡¢½èÍýÂÔ¤Á¥·¥°¥Ê¥ë½¸¹ç¤ÏÊÝ»ý¤µ¤ì¤ë¡£ +の前後で、処理待ちシグナル集合は保持される。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O In versions of glibc up to and including 2.2.1, .\"O there is a bug in the wrapper function for .\"O .BR sigpending () .\"O which means that information about pending real-time signals .\"O is not correctly returned. -¥Ð¡¼¥¸¥ç¥ó 2.2.1 °ÊÁ°¤Î glibc ¤Ç¤Ï¡¢ +バージョン 2.2.1 以前の glibc では、 .BR sigpending () -¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ë¡¢½èÍýÂÔ¤Á¤Î¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤¬ -Àµ¤·¤¯ÊÖ¤µ¤ì¤Ê¤¤¤È¤¤¤¦¥Ð¥°¤¬¤¢¤ë¡£ +のラッパー関数に、処理待ちのリアルタイムシグナルに関する情報が +正しく返されないというバグがある。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR kill (2), .BR sigaction (2), .BR signal (2), diff --git a/draft/man2/sigprocmask.2 b/draft/man2/sigprocmask.2 index a82629bb..23b17343 100644 --- a/draft/man2/sigprocmask.2 +++ b/draft/man2/sigprocmask.2 @@ -29,11 +29,11 @@ .\" .TH SIGPROCMASK 2 2008-10-17 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sigprocmask \- examine and change blocked signals -sigprocmask \- ¶Ø»ß¤¹¤ë¥·¥°¥Ê¥ë¤Î³Îǧ¤ÈÊѹ¹ +sigprocmask \- 禁止するシグナルの確認と変更 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int sigprocmask(int " how ", const sigset_t *" set , @@ -42,9 +42,9 @@ sigprocmask \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -52,7 +52,7 @@ glibc _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR sigprocmask () .\"O is used to fetch and/or change the signal mask of the calling thread. .\"O The signal mask is the set of signals whose delivery is currently @@ -61,52 +61,52 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O .BR signal (7) .\"O for more details). .BR sigprocmask () -¤ò»È¤¦¤È¡¢¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Î¼èÆÀ/Êѹ¹¤¬¤Ç¤­¤ë¡£ -¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤ËÂФ·¤Æ¸½ºßÇÛÁ÷¤¬¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤Î -½¸¹ç¤Î¤³¤È¤Ç¤¢¤ë (¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï +を使うと、呼び出したスレッドのシグナルマスクの取得/変更ができる。 +シグナルマスクは、呼び出し元に対して現在配送が禁止されているシグナルの +集合のことである (詳細については .BR signal (7) -¤â»²¾È¤Î¤³¤È)¡£ +も参照のこと)。 .\"O The behavior of the call is dependent on the value of .\"O .IR how , .\"O as follows. -¤³¤Î¥³¡¼¥ë¤ÎÆ°ºî¤Ï +このコールの動作は .I how -¤ÎÃͤˤè¤Ã¤Æ·è¤Þ¤ë: +の値によって決まる: .TP .B SIG_BLOCK .\"O The set of blocked signals is the union of the current set and the .\"O .I set .\"O argument. -¶Ø»ß¤µ¤ì¤¿¥·¥°¥Ê¥ë¤Î½¸¹ç¤Ï¸½ºß¤ÎÃÍ¤È +禁止されたシグナルの集合は現在の値と .I set -°ú¤­¿ô¤ò·ë¹ç¤·¤¿¤â¤Î¤È¤Ê¤ë¡£ +引き数を結合したものとなる。 .TP .B SIG_UNBLOCK .\"O The signals in .\"O .I set .\"O are removed from the current set of blocked signals. .\"O It is permissible to attempt to unblock a signal which is not blocked. -¸½ºß¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤Î½¸¹ç¤«¤é +現在禁止されているシグナルの集合から .I set -¤Ë¤¢¤ë¥·¥°¥Ê¥ë¤ò¼è¤ê½ü¤¯¡£¶Ø»ß¤µ¤ì¤Æ¤¤¤Ê¤¤¥·¥°¥Ê¥ë¤ò¼è¤ê½ü¤³¤¦¤È -¤¹¤ë¤³¤È¤âǧ¤á¤é¤ì¤Æ¤¤¤ë¡£ +にあるシグナルを取り除く。禁止されていないシグナルを取り除こうと +することも認められている。 .TP .B SIG_SETMASK .\"O The set of blocked signals is set to the argument .\"O .IR set . -¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤Î½¸¹ç¤Ë +禁止されているシグナルの集合に .I set -°ú¤­¿ô¤òÀßÄꤹ¤ë¡£ +引き数を設定する。 .PP .\"O If .\"O .I oldset .\"O is non-NULL, the previous value of the signal mask is stored in .\"O .IR oldset . .I oldset -¤¬ NULL ¤Ç¤Ê¤±¤ì¤Ð¡¢¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Îº£¤Þ¤Ç¤ÎÃͤò +が NULL でなければ、シグナルマスクの今までの値を .I oldset -¤Ë³ÊǼ¤¹¤ë¡£ +に格納する。 .\"O If .\"O .I set @@ -117,55 +117,55 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O .I oldset .\"O (if it is not NULL). .I set -¤¬ NULL ¤Ç¤¢¤ì¤Ð¡¢¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ÏÊѹ¹¤µ¤ì¤Ê¤¤ (¤¹¤Ê¤ï¤Á¡¢ +が NULL であれば、シグナルマスクは変更されない (すなわち、 .I how -¤Ï̵»ë¤µ¤ì¤ë)¡£ +は無視される)。 .I set -¤ÎÃͤˤ«¤«¤ï¤é¤º¡¢¸½ºß¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ÎÃÍ¤Ï +の値にかかわらず、現在のシグナルマスクの値は .I oldset -¤ËÆþ¤ì¤ÆÊÖ¤µ¤ì¤ë (⤷¡¢ +に入れて返される (但し、 .I oldset -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç)¡£ +が NULL でない場合)。 .\"O The use of .\"O .BR sigprocmask () .\"O is unspecified in a multithreaded process; see .\"O .BR pthread_sigmask (3). -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Î¥×¥í¥»¥¹¤Ç +マルチスレッドのプロセスで .BR sigprocmask () -¤ò»ÈÍѤ·¤¿¾ì¹ç¤ÎÆ°ºî¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +を使用した場合の動作は規定されていない。 .BR pthread_sigmask (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR sigprocmask () .\"O returns 0 on success and \-1 on error. .BR sigprocmask () -¤ÏÀ®¸ù¤¹¤ì¤Ð 0 ¤òÊÖ¤·¡¢¥¨¥é¡¼¤Ê¤é¤Ð \-1 ¤òÊÖ¤¹¡£ +は成功すれば 0 を返し、エラーならば \-1 を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .B EINVAL .\"O The value specified in .\"O .I how .\"O was invalid. .I how -¤Ë»ØÄꤵ¤ì¤¿Ãͤ¬Í­¸ú¤Ç¤Ï¤Ê¤¤¡£ +に指定された値が有効ではない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O It is not possible to block .\"O .BR SIGKILL " or " SIGSTOP . .\"O Attempts to do so are silently ignored. .B SIGKILL -¤ä +や .B SIGSTOP -¤ò¶Ø»ß¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -¶Ø»ß¤·¤è¤¦¤È¤·¤Æ¤âÌۤäÆ̵»ë¤µ¤ì¤ë¡£ +を禁止することはできない。 +禁止しようとしても黙って無視される。 .\"O Each of the threads in a process has its own signal mask. -¥×¥í¥»¥¹Æâ¤Î³Æ¥¹¥ì¥Ã¥É¤Ï¤½¤ì¤¾¤ìÀìÍѤΥ·¥°¥Ê¥ë¥Þ¥¹¥¯¤ò»ý¤Ä¡£ +プロセス内の各スレッドはそれぞれ専用のシグナルマスクを持つ。 .\"O A child created via .\"O .BR fork (2) @@ -173,9 +173,9 @@ POSIX.1-2001. .\"O the signal mask is preserved across .\"O .BR execve (2). .BR fork (2) -·Ðͳ¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£ +経由で作成された子プロセスは親プロセスのシグナルマスクのコピーを継承する。 .BR execve (2) -¤ÎÁ°¸å¤Ç¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ÏÊÝ»ý¤µ¤ì¤ë¡£ +の前後でシグナルマスクは保持される。 .\"O If .\"O .BR SIGBUS , @@ -190,27 +190,27 @@ POSIX.1-2001. .\"O .BR sigqueue (3), .\"O or .\"O .BR raise (3). -¥·¥°¥Ê¥ë +シグナル .BR SIGBUS , .BR SIGFPE , .BR SIGILL , .B SIGSEGV -¤¬¶Ø»ß¤µ¤ì¤Æ¤¤¤ë´Ö¤ËÀ¸À®¤µ¤ì¤¿¾ì¹ç¤Ç¡¢ -¤½¤Î¥·¥°¥Ê¥ë¤¬ +が禁止されている間に生成された場合で、 +そのシグナルが .BR kill (2), .BR sigqueue (3), .BR raise (3) -¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤¿¤â¤Î¤Ç¤Ê¤¤¤È¤­¤Ë¤Ï¡¢ -¤½¤Î¸å¤ÎÆ°ºî¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +によって生成されたものでないときには、 +その後の動作は未定義である。 .PP .\"O See .\"O .BR sigsetops (3) .\"O for details on manipulating signal sets. -¥·¥°¥Ê¥ë½¸¹ç¤ÎÁàºî¤Ë´Ø¤¹¤ë¾ÜºÙ¤Ï +シグナル集合の操作に関する詳細は .BR sigsetops (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR kill (2), .BR pause (2), .BR sigaction (2), diff --git a/draft/man2/sigreturn.2 b/draft/man2/sigreturn.2 index 13c91721..0003fe08 100644 --- a/draft/man2/sigreturn.2 +++ b/draft/man2/sigreturn.2 @@ -29,23 +29,23 @@ .\" Updated 2005-09-04, Akihiro MOTOKI .\" Updated 2008-08-07, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: signal handler ¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é -.\"WORD: stack frame ¥¹¥¿¥Ã¥¯¡¦¥Õ¥ì¡¼¥à -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: interrupt ³ä¤ê¹þ¤ß -.\"WORD: architecture ¥¢¡¼¥­¥Æ¥¯¥Á¥ã +.\"WORD: signal シグナル +.\"WORD: signal handler シグナル・ハンドラ +.\"WORD: stack frame スタック・フレーム +.\"WORD: kernel カーネル +.\"WORD: interrupt 割り込み +.\"WORD: architecture アーキテクチャ .\" .TH SIGRETURN 2 2008-06-26 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sigreturn \- return from signal handler and cleanup stack frame -sigreturn \- ¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤«¤éÊ֤ꡢ¥¹¥¿¥Ã¥¯¤òÁݽü¤¹¤ë +sigreturn \- シグナル・ハンドラから返り、スタックを掃除する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .BI "int sigreturn(unsigned long " __unused ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O When the Linux kernel creates the stack frame for a signal handler, a .\"O call to .\"O .BR sigreturn () @@ -53,12 +53,12 @@ sigreturn \- .\"O return from the signal handler, .\"O .BR sigreturn () .\"O will be called. -Linux ¥«¡¼¥Í¥ë¤Ï¡¢ -¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥éÍѤ˥¹¥¿¥Ã¥¯¡¦¥Õ¥ì¡¼¥à¤òºîÀ®¤¹¤ëºÝ¡¢ +Linux カーネルは、 +シグナル・ハンドラ用にスタック・フレームを作成する際、 .BR sigreturn () -¤ò¥¹¥¿¥Ã¥¯¡¦¥Õ¥ì¡¼¥à¤ËÁÞÆþ¤·¡¢¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤¬ÊÖ¤ë¤È¤­¤Ë +をスタック・フレームに挿入し、シグナル・ハンドラが返るときに .BR sigreturn () -¤¬¸Æ¤Ð¤ì¤ë¤è¤¦¤Ë¤¹¤ë¡£ +が呼ばれるようにする。 .\"O This .\"O .BR sigreturn () @@ -71,34 +71,34 @@ Linux .\"O so that the process directly resumes execution .\"O at the point where it was interrupted by the signal. .BR sigreturn () -¤Ï¡¢¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤òµ¯Æ°¤¹¤ë¤¿¤á¤Ë¹Ô¤Ã¤¿¤³¤È¤ÎÁ´¤Æ \(em -¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ÎÊѹ¹¡¢¥¹¥¿¥Ã¥¯¤ÎÀÚ¤êÂؤ¨ +は、シグナル・ハンドラを起動するために行ったことの全て \(em +プロセスのシグナルマスクの変更、スタックの切り替え .RB ( sigaltstack (2) -»²¾È) \(em ¤Î¼è¤ê¾Ã¤·¤ò¹Ô¤¦¡£ -¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ÎÉü¸µ¡¢¥¹¥¿¥Ã¥¯¤ÎÀÚ¤êÂؤ¨¡¢ -¥×¥í¥»¥¹¤Î¥³¥ó¥Æ¥­¥¹¥È (¥ì¥¸¥¹¥¿¡¢¥×¥í¥»¥Ã¥µ¡¦¥Õ¥é¥°) ¤ÎÉü¸µ¤ò¹Ô¤¤¡¢ -¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¾ì½ê¤«¤é¤½¤Î¤Þ¤Þ¼Â¹Ô¤ò -ºÆ³«¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ +参照) \(em の取り消しを行う。 +プロセスのシグナルマスクの復元、スタックの切り替え、 +プロセスのコンテキスト (レジスタ、プロセッサ・フラグ) の復元を行い、 +プロセスがシグナルにより割り込まれた場所からそのまま実行を +再開できるようにする。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR sigreturn () .\"O never returns. .BR sigreturn () -¤¬Ê֤뤳¤È¤Ï¤Ê¤¤¡£ +が返ることはない。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル /usr/src/linux/arch/i386/kernel/signal.c .br /usr/src/linux/arch/alpha/kernel/entry.S .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR sigreturn () .\"O is specific to Linux and should not be used in programs intended to be .\"O portable. .BR sigreturn () -¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ +は Linux 特有であり、移植を意図したプログラムでは使用してはいけない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The .\"O .BR sigreturn () .\"O call is used by the kernel to implement signal handlers. @@ -109,14 +109,14 @@ Linux .\"O .I __unused .\"O argument varies depending on the architecture. .BR sigreturn () -¥³¡¼¥ë¤Ï¡¢¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤ò¼ÂÁõ¤¹¤ë¤¿¤á¤Ë¥«¡¼¥Í¥ë¤Ë¤è¤ê»ÈÍѤµ¤ì¤ë¡£ -¤³¤ì¤òľÀܸƤӽФ·¤Æ¤Ï -.B ·è¤·¤Æ -¤¤¤±¤Ê¤¤¡£¤µ¤é¤Ë +コールは、シグナル・ハンドラを実装するためにカーネルにより使用される。 +これを直接呼び出しては +.B 決して +いけない。さらに .I __unused -°ú¤­¿ô¤¬¤É¤Î¤è¤¦¤Ë»È¤ï¤ì¤ë¤«¤Ï¤½¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë°Í¸¤·¤ÆÊѲ½¤¹¤ë¡£ +引き数がどのように使われるかはそのアーキテクチャに依存して変化する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR kill (2), .BR sigaltstack (2), .BR signal (2), diff --git a/draft/man2/sigsuspend.2 b/draft/man2/sigsuspend.2 index 9969a566..3dd7280b 100644 --- a/draft/man2/sigsuspend.2 +++ b/draft/man2/sigsuspend.2 @@ -29,11 +29,11 @@ .\" .TH SIGSUSPEND 2 2008-08-29 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sigsuspend \- wait for a signal -sigsuspend \- ¥·¥°¥Ê¥ë¤òÂÔ¤Ä +sigsuspend \- シグナルを待つ .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int sigsuspend(const sigset_t *" mask ); @@ -41,9 +41,9 @@ sigsuspend \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -51,7 +51,7 @@ glibc _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR sigsuspend () .\"O temporarily replaces the signal mask of the calling process with the .\"O mask given by @@ -59,11 +59,11 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O and then suspends the process until delivery of a signal whose .\"O action is to invoke a signal handler or to terminate a process. .BR sigsuspend () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ò +は、呼び出し元プロセスのシグナルマスクを .I mask -¤Ç»ØÄꤵ¤ì¤¿¥Þ¥¹¥¯¤Ë°ì»þŪ¤ËÃÖ¤­´¹¤¨¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Îµ¯Æ°¤â¤·¤¯¤Ï¥×¥í¥»¥¹¤Î½ªÎ»¤¬¥¢¥¯¥·¥ç¥ó¤È¤·¤Æ -ÀßÄꤵ¤ì¤¿¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ë¤Þ¤Ç¡¢¤½¤Î¥×¥í¥»¥¹¤òÄä»ß¤¹¤ë¡£ +で指定されたマスクに一時的に置き換え、 +シグナルハンドラの起動もしくはプロセスの終了がアクションとして +設定されたシグナルが配送されるまで、そのプロセスを停止する。 .\"O If the signal terminates the process, then .\"O .BR sigsuspend () @@ -73,14 +73,14 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O returns after the signal handler returns, .\"O and the signal mask is restored to the state before the call to .\"O .BR sigsuspend (). -¥·¥°¥Ê¥ë¤¬¥×¥í¥»¥¹¤ò½ªÎ»¤µ¤»¤ë¤â¤Î¤Î¾ì¹ç¡¢ +シグナルがプロセスを終了させるものの場合、 .BR sigsuspend () -¤ÏÊÖ¤é¤Ê¤¤¡£¥·¥°¥Ê¥ë¤¬Ê᪤µ¤ì¤¿¾ì¹ç¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Î½èÍý¤¬½ª¤ï¤Ã¤¿¸å¤Ë +は返らない。シグナルが捕捉された場合、 +シグナルハンドラの処理が終わった後に .BR sigsuspend () -¤ÏÊ֤ꡢ¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ï +は返り、シグナルマスクは .BR sigsuspend () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤ëÁ°¤Î¾õÂÖ¤ËÉü¸µ¤µ¤ì¤ë¡£ +が呼び出される前の状態に復元される。 .\"O It is not possible to block .\"O .B SIGKILL @@ -90,38 +90,38 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O .IR mask , .\"O has no effect on the process's signal mask. .B SIGKILL -¤È +と .B SIGSTOP -¤ò¶Ø»ß (block) ¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤; -¤³¤ì¤é¤Î¥·¥°¥Ê¥ë¤ò +を禁止 (block) することはできない; +これらのシグナルを .I mask -¤Ë»ØÄꤷ¤Æ¤â¡¢¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ï±Æ¶Á¤ò¼õ¤±¤Ê¤¤¡£ +に指定しても、プロセスのシグナルマスクは影響を受けない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR sigsuspend () .\"O always returns \-1, normally with the error .\"O .BR EINTR . .BR sigsuspend () -¤Ï¾ï¤Ë \-1 ¤òÊÖ¤·¡¢Ä̾ï¤Ï +は常に \-1 を返し、通常は .B EINTR -¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¡£ +エラーが発生する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O .I mask .\"O points to memory which is not a valid part of the process address space. .I mask -¤¬»Ø¤·¤Æ¤¤¤ë¥á¥â¥ê¤¬¡¢¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ÎÍ­¸ú¤ÊÉôʬ¤Ç¤Ï¤Ê¤¤¡£ +が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。 .TP .B EINTR .\"O The call was interrupted by a signal. -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥·¥°¥Ê¥ë¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¡£ +システムコールはシグナルにより割り込まれた。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .PP .\"O Normally, .\"O .BR sigsuspend () @@ -140,30 +140,30 @@ POSIX.1-2001. .\"O .I oldset .\"O argument). .BR sigsuspend () -¤Ï¡¢Ä̾¥¯¥ê¥Æ¥£¥«¥ë¡¦¥³¡¼¥É¡¦¥»¥¯¥·¥ç¥ó (critical code section) ¤Î -¼Â¹ÔÃæ¤Ë¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ë¤Î¤òËɻߤ¹¤ë¤¿¤á¤Ë¡¢ +は、通常、クリティカル・コード・セクション (critical code section) の +実行中にシグナルが配送されるのを防止するために、 .BR sigprocmask (2) -¤ÈÁȤ߹ç¤ï¤»¤Æ»ÈÍѤµ¤ì¤ë¡£ -¤Þ¤ººÇ½é¤Ë¡¢¸Æ¤Ó½Ð¤·¸µ¤Ï +と組み合わせて使用される。 +まず最初に、呼び出し元は .BR sigprocmask (2) -¤ò»È¤Ã¤Æ¥·¥°¥Ê¥ë¤ò¶Ø»ß¤¹¤ë¡£ -¥¯¥ê¥Æ¥£¥«¥ë¡¦¥³¡¼¥É¤¬´°Î»¤¹¤ë¤È¡¢¸Æ¤Ó½Ð¤·¸µ¤Ï +を使ってシグナルを禁止する。 +クリティカル・コードが完了すると、呼び出し元は .BR sigprocmask (2) -¤¬ +が .RI ( oldset -°ú¤­¿ô¤Ç) ÊÖ¤¹¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ò»ØÄꤷ¤Æ +引き数で) 返すシグナルマスクを指定して .BR sigsuspend () -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¡¢¥¯¥ê¥Æ¥£¥«¥ë¡¦¥³¡¼¥É¼Â¹ÔÃæ¤ËȯÀ¸¤·¤¿ -¥·¥°¥Ê¥ë¤òÂԤĤ³¤È¤¬¤Ç¤­¤ë¡£ +を呼び出すことで、クリティカル・コード実行中に発生した +シグナルを待つことができる。 .PP .\"O See .\"O .BR sigsetops (3) .\"O for details on manipulating signal sets. -¥·¥°¥Ê¥ë½¸¹ç¤ÎÁàºî¤Ë´Ø¤¹¤ë¾ÜºÙ¤Ï +シグナル集合の操作に関する詳細は .BR sigsetops (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR kill (2), .BR pause (2), .BR sigaction (2), diff --git a/draft/man2/sigwaitinfo.2 b/draft/man2/sigwaitinfo.2 index 4caa29b7..d384c1c5 100644 --- a/draft/man2/sigwaitinfo.2 +++ b/draft/man2/sigwaitinfo.2 @@ -26,15 +26,15 @@ .\" Updated 2006-07-21, Akihiro MOTOKI , LDP v2.36 .\" Updated 2008-08-07, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: pending ÂÔµ¡Ãæ¤Ç¤¢¤ë +.\"WORD: pending 待機中である .\" .TH SIGWAITINFO 2 2011-10-03 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sigwaitinfo, sigtimedwait \- synchronously wait for queued signals -sigwaitinfo, sigtimedwait \- ¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤¿¥·¥°¥Ê¥ë¤òƱ´ü¤·¤ÆÂÔ¤Ä +sigwaitinfo, sigtimedwait \- キューに入れられたシグナルを同期して待つ .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -47,42 +47,42 @@ sigwaitinfo, sigtimedwait \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR sigwaitinfo (), .BR sigtimedwait (): _POSIX_C_SOURCE\ >=\ 199309L .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR sigwaitinfo () .\"O suspends execution of the calling thread until one of the signals in .\"O .I set .\"O is delivered. .BR sigwaitinfo () -¤Ï +は .I set -¤Î¤¦¤Á¤Î¤É¤ì¤«¤Î¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ë¤Þ¤Ç¡¢ -¸Æ¤Ó½Ð¤·¥¹¥ì¥Ã¥É¤Î¼Â¹Ô¤ò°ì»þÄä»ß¤¹¤ë +のうちのどれかのシグナルが配送されるまで、 +呼び出しスレッドの実行を一時停止する .\"O (If one of the signals in .\"O .I set .\"O is already pending for the calling thread, .\"O .BR sigwaitinfo () .\"O will return immediately with information about that signal.) -(¸Æ¤Ó½Ð¤·¥¹¥ì¥Ã¥É¤ËÂФ·¤Æ +(呼び出しスレッドに対して .I set -¤Î¤¦¤Á¤Î¤É¤ì¤«¤Î¥·¥°¥Ê¥ë¤¬´û¤ËÂÔµ¡Ãæ (pending) ¤Ç¤¢¤ë¾ì¹ç¡¢ +のうちのどれかのシグナルが既に待機中 (pending) である場合、 .BR sigwaitinfo () -¤Ï¤½¤Î¥·¥°¥Ê¥ë¤Î¾ðÊó¤òÊÖ¤·¤Æ¤¹¤°¤ËÌá¤ë)¡£ +はそのシグナルの情報を返してすぐに戻る)。 .PP .\"O .BR sigwaitinfo () .\"O removes the delivered signal from the set of pending .\"O signals and returns the signal number as its function result. .BR sigwaitinfo () -¤ÏÇÛÁ÷¤µ¤ì¤¿¥·¥°¥Ê¥ë¤òÂÔµ¡Ãæ¤Î¥·¥°¥Ê¥ë¤Î½¸¹ç¤«¤éºï½ü¤·¡¢ -´Ø¿ô¤Î·ë²Ì¤È¤·¤Æ¥·¥°¥Ê¥ëÈÖ¹æ¤òÊÖ¤¹¡£ +は配送されたシグナルを待機中のシグナルの集合から削除し、 +関数の結果としてシグナル番号を返す。 .\"O If the .\"O .I info .\"O argument is not NULL, @@ -92,11 +92,11 @@ _POSIX_C_SOURCE\ >=\ 199309L .\"O .BR sigaction (2)) .\"O containing information about the signal. .I info -°ú¤­¿ô¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ÇÛÁ÷¤µ¤ì¤¿¥·¥°¥Ê¥ë¤Î¾ðÊó¤¬Æþ¤Ã¤¿ +引き数が NULL でない場合、配送されたシグナルの情報が入った .I siginfo_t -·¿ +型 .RB ( sigaction (2) -¤ò»²¾È) ¤Î¹½Â¤ÂΤòÊÖ¤¹¡£ +を参照) の構造体を返す。 .PP .\"O Signals returned via .\"O .BR sigwaitinfo () @@ -104,10 +104,10 @@ _POSIX_C_SOURCE\ >=\ 199309L .\"O .BR signal (7) .\"O for further details. .BR sigwaitinfo () -¤ÇÊÖ¤µ¤ì¤ë¥·¥°¥Ê¥ë¤Ï¡¢Ä̾ï¤Î½çÈÖ¤ÇÇÛÁ÷¤µ¤ì¤ë¡£ -¾ÜºÙ¤Ï +で返されるシグナルは、通常の順番で配送される。 +詳細は .BR signal (7) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .PP .\"O .BR sigtimedwait () .\"O operates in exactly the same way as @@ -117,28 +117,28 @@ _POSIX_C_SOURCE\ >=\ 199309L .\"O which enables an upper bound to be placed on the time for which .\"O the thread is suspended. .BR sigtimedwait () -¤Ï¡¢ +は、 .BR sigwaitinfo () -¤È¼¡¤ÎÅÀ¤ò½ü¤¤¤ÆÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ -¤³¤Î´Ø¿ô¤Ë¤Ï¤â¤¦ 1 ¤Ä¤Î°ú¤­¿ô +と次の点を除いて全く同じように動作する。 +この関数にはもう 1 つの引き数 .I timeout -¤¬¤¢¤ê¡¢¥¹¥ì¥Ã¥É¤¬°ì»þÄä»ß¤¹¤ë»þ´Ö¤Î¾å¸Â¤òÄê¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +があり、スレッドが一時停止する時間の上限を定めることができる。 .\"O This argument is of the following type: -¤³¤Î°ú¤­¿ô¤Î·¿¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¢¤ë: +この引き数の型は以下のとおりである: .sp .in +4n .nf struct timespec { .\"O long tv_sec; /* seconds */ - long tv_sec; /* Éà */ + long tv_sec; /* 秒 */ .\"O long tv_nsec; /* nanoseconds */ - long tv_nsec; /* ¥Ê¥ÎÉà */ + long tv_nsec; /* ナノ秒 */ } .fi .in .sp .\"O If both fields of this structure are specified as 0, a poll is performed: -¤³¤Î¹½Â¤ÂΤΠ2 ¤Ä¤Î¥Õ¥£¡¼¥ë¥É¤¬¤È¤â¤Ë 0 ¤Î¾ì¹ç¡¢¥Ý¡¼¥ê¥ó¥°¤¬¹Ô¤ï¤ì¤ë: +この構造体の 2 つのフィールドがともに 0 の場合、ポーリングが行われる: .\"O .BR sigtimedwait () .\"O returns immediately, either with information about a signal that .\"O was pending for the caller, or with an error @@ -146,30 +146,30 @@ struct timespec { .\"O .I set .\"O was pending. .BR sigtimedwait () -¤Ï¡¢¸Æ¤Ó½Ð¤·Â¦¥×¥í¥»¥¹¤ËÂФ·¤Æ -ÂÔµ¡¤·¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤Î¾ðÊó¤òÊÖ¤·¤ÆÌá¤ë¤«¡¢ +は、呼び出し側プロセスに対して +待機しているシグナルの情報を返して戻るか、 .I set -¤Î¤¦¤Á¤Î¤É¤Î¥·¥°¥Ê¥ë¤âÂÔµ¡¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¥¨¥é¡¼¤òÊÖ¤·¤ÆÌá¤ë¡£ +のうちのどのシグナルも待機していない場合はエラーを返して戻る。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, both .\"O .BR sigwaitinfo () .\"O and .\"O .BR sigtimedwait () .\"O return a signal number (i.e., a value greater than zero). -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR sigwaitinfo () -¤È +と .BR sigtimedwait () -¤Ï¥·¥°¥Ê¥ëÈÖ¹æ (¤¹¤Ê¤ï¤Á 0 ¤è¤êÂ礭¤¤¿ô) ¤òÊÖ¤¹¡£ +はシグナル番号 (すなわち 0 より大きい数) を返す。 .\"O On failure both calls return \-1, with .\"O .I errno .\"O set to indicate the error. -¼ºÇÔ¤·¤¿¾ì¹ç¡¢2 ¤Ä¤Î´Ø¿ô¤Ï \-1 ¤òÊÖ¤·¡¢ +失敗した場合、2 つの関数は \-1 を返し、 .I errno -¤Ï¥¨¥é¡¼¤òɽ¤¹ÃͤËÀßÄꤵ¤ì¤ë¡£ +はエラーを表す値に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EAGAIN .\"O No signal in @@ -179,34 +179,34 @@ struct timespec { .\"O period specified to .\"O .BR sigtimedwait (). .I set -¤Î¤¦¤Á¤Î¤É¤Î¥·¥°¥Ê¥ë¤â +のうちのどのシグナルも .BR sigtimedwait () -¤Ë»ØÄꤵ¤ì¤¿ +に指定された .I timeout -¤Î´ü´ÖÆâ¤ËÇÛÁ÷¤µ¤ì¤Ê¤«¤Ã¤¿¡£ +の期間内に配送されなかった。 .TP .B EINTR .\"O The wait was interrupted by a signal handler; see .\"O .BR signal (7). .\"O (This handler was for a signal other than one of those in .\"O .IR set .) -¥·¥°¥Ê¥ëÂÔ¤Á¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤Ã¤ÆÃæÃÇ (interrupt) ¤µ¤ì¤¿ -(¤³¤Î¥Ï¥ó¥É¥é¤Ï +シグナル待ちがシグナルハンドラによって中断 (interrupt) された +(このハンドラは .I set -¤Ë¤¢¤ë¥·¥°¥Ê¥ë°Ê³°¤Î¤â¤Î¤Ç¤¢¤ë)¡£ +にあるシグナル以外のものである)。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .\"O .I timeout .\"O was invalid. .I timeout -¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +が不正である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O In normal usage, the calling program blocks the signals in .\"O .I set .\"O via a prior call to @@ -217,40 +217,40 @@ POSIX.1-2001. .\"O or .\"O .BR sigtimedwait()) .\"O and does not establish handlers for these signals. -Ä̾ï¤Î»ÈÍÑË¡¤Ç¤Ï¡¢¸Æ¤Ó½Ð¤·Â¦¥×¥í¥»¥¹¤Ï¤³¤ì¤é¤Î´Ø¿ô¤è¤êÀè¤Ë +通常の使用法では、呼び出し側プロセスはこれらの関数より先に .BR sigprocmask (2) -¤Î¸Æ¤Ó½Ð¤¹¤³¤È¤Ë¤è¤ê +の呼び出すことにより .I set -¤Ë´Þ¤Þ¤ì¤ë¥·¥°¥Ê¥ë¤ò¥Ö¥í¥Ã¥¯¤· -(¤½¤Î¤¿¤á¤Ë¤³¤ì¤é¤Î¥·¥°¥Ê¥ë¤¬¤³¤Î¸å¤Ë³¤¯ +に含まれるシグナルをブロックし +(そのためにこれらのシグナルがこの後に続く .BR sigwaitinfo () -¤ä +や .BR sigtimedwait () -¤Î¸Æ¤Ó½Ð¤·¤Î´Ö¤ËÇÛÁ÷¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ -¥Ç¥Õ¥©¥ë¥È¤ÎÇÛÃ֤ϹԤï¤ì¤º)¡¢ -¤³¤ì¤é¤Î¥·¥°¥Ê¥ë¤ËÂФ¹¤ë¥Ï¥ó¥É¥é¤ÏÀßÄꤷ¤Ê¤¤¡£ +の呼び出しの間に配送された場合には、 +デフォルトの配置は行われず)、 +これらのシグナルに対するハンドラは設定しない。 .\"O In a multithreaded program, .\"O the signal should be blocked in all threads to prevent .\"O the signal being delivered to a thread other than the one calling .\"O .BR sigwaitinfo () .\"O or .\"O .BR sigtimedwait ()). -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ +マルチスレッドプログラムでは、 .BR sigwaitinfo () -¤ä +や .BR sigtimedwait () -¤ò¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É°Ê³°¤Î¥¹¥ì¥Ã¥É¤Ë¤½¤Î¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¡¢ -Á´¤Æ¤Î¥¹¥ì¥Ã¥É¤Ç³ºÅö¥·¥°¥Ê¥ë¤ò¥Ö¥í¥Ã¥¯¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +を呼び出したスレッド以外のスレッドにそのシグナルが配送されないように、 +全てのスレッドで該当シグナルをブロックすべきである。 .\"O The set of signals that is pending for a given thread is the .\"O union of the set of signals that is pending specifically for that thread .\"O and the set of signals that is pending for the process as a whole (see .\"O .BR signal (7)). -»ØÄꤵ¤ì¤¿¥¹¥ì¥Ã¥É¤ËÂФ¹¤ë½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë¤Î½¸¹ç¤Ï¡¢ -¤½¤Î¥¹¥ì¥Ã¥É¼«Âΰ¸¤Æ¤Î½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë½¸¹ç¤È¡¢¥×¥í¥»¥¹Á´Âΰ¸¤Æ¤Î -½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë½¸¹ç¤ò¤¢¤ï¤»¤¿¤â¤Î¤Ç¤¢¤ë +指定されたスレッドに対する処理待ちのシグナルの集合は、 +そのスレッド自体宛ての処理待ちのシグナル集合と、プロセス全体宛ての +処理待ちのシグナル集合をあわせたものである .RB ( signal (7) -»²¾È)¡£ +参照)。 .\"O Attempts to wait for .\"O .B SIGKILL @@ -258,9 +258,9 @@ POSIX.1-2001. .\"O .B SIGSTOP .\"O are silently ignored. .B SIGKILL -¤È +と .B SIGSTOP -¤òÂԤȤ¦¤È¤·¤¿¾ì¹ç¡¢ÌۤäÆ̵»ë¤µ¤ì¤ë¡£ +を待とうとした場合、黙って無視される。 .\"O If multiple threads of a process are blocked .\"O waiting for the same signal(s) in @@ -270,14 +270,14 @@ POSIX.1-2001. .\"O then exactly one of the threads will actually receive the .\"O signal if it is delivered to the process as a whole; .\"O which of the threads receives the signal is indeterminate. -°ì¤Ä¤Î¥×¥í¥»¥¹Æâ¤ÎÊ£¿ô¤Î¥¹¥ì¥Ã¥É¤¬ +一つのプロセス内の複数のスレッドが .BR sigwaitinfo () -¤ä +や .BR sigtimedwait () -¤ÇƱ¤¸¥·¥°¥Ê¥ë¤òÂԤäÆÄä»ß¤·¤¿¾ì¹ç¡¢ -¥×¥í¥»¥¹Á´Âΰ¸¤Æ¤Î¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ë¤È¡¢Ê£¿ô¤Î¥¹¥ì¥Ã¥É¤Î¤¦¤Á°ì¤Ä¤À¤±¤¬ -¼ÂºÝ¤Ë¤½¤Î¥·¥°¥Ê¥ë¤ò¼õ¿®¤¹¤ë¤³¤È¤Ë¤Ê¤ë¡£ -¤É¤Î¥¹¥ì¥Ã¥É¤¬¥·¥°¥Ê¥ë¤ò¼õ¿®¤¹¤ë¤«¤Ï·è¤Þ¤Ã¤Æ¤¤¤Ê¤¤¡£ +で同じシグナルを待って停止した場合、 +プロセス全体宛てのシグナルが配送されると、複数のスレッドのうち一つだけが +実際にそのシグナルを受信することになる。 +どのスレッドがシグナルを受信するかは決まっていない。 .\"O POSIX leaves the meaning of a NULL value for the .\"O .I timeout @@ -287,26 +287,26 @@ POSIX.1-2001. .\"O as a call to .\"O .BR sigwaitinfo (), .\"O and indeed this is what is done on Linux. -POSIX ¤Ç¤Ï +POSIX では .BR sigtimedwait () -¤Î°ú¤­¿ô +の引き数 .I timeout -¤ÎÃͤò NULL ¤Ë¤·¤¿¾ì¹ç¤Î°ÕÌ£¤ò̤ÄêµÁ¤È¤·¤Æ¤¤¤ë¡£ +の値を NULL にした場合の意味を未定義としている。 .BR sigwaitinfo () -¤ò¸Æ¤Ó½Ð¤·¤¿¤Î¤ÈƱ¤¸°ÕÌ£¤È¤·¤Æ¤â¤è¤¤¤³¤È¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢ -¼ÂºÝ Linux ¤Ç¤Ï¤³¤Î¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +を呼び出したのと同じ意味としてもよいことになっており、 +実際 Linux ではこのように動作する。 .\"O On Linux, .\"O .BR sigwaitinfo () .\"O is a library function implemented on top of .\"O .BR sigtimedwait (). -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR sigwaitinfo () -¤Ï +は .BR sigtimedwait () -¤òÍѤ¤¤Æ¼ÂÁõ¤µ¤ì¤¿¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ç¤¢¤ë¡£ +を用いて実装されたライブラリ関数である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR kill (2), .BR sigaction (2), .BR signal (2), diff --git a/draft/man2/socket.2 b/draft/man2/socket.2 index 71cf588b..7959bb35 100644 --- a/draft/man2/socket.2 +++ b/draft/man2/socket.2 @@ -49,40 +49,40 @@ .\" Updated Mon Oct 26 JST 2002 by Kentaro Shirakata .\" Updated 2008-11-09, Akihiro MOTOKI , LDP v3.13 .\" -.\"WORD: endpoint üÅÀ -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ -.\"WORD: link layer ¥ê¥ó¥¯ÁØ -.\"WORD: byte stream ¥Ð¥¤¥È¡¦¥¹¥È¥ê¡¼¥à -.\"WORD: out-of-band ÂÓ°è³° -.\"WORD: sequenced ½ç½øÀ­¤Î¤¢¤ë -.\"WORD: reliable ¿®ÍêÀ­¤Î¤¢¤ë -.\"WORD: two-way ÁÐÊý¸þ¤Î -.\"WORD: datagram ¥Ç¡¼¥¿¥°¥é¥à -.\"WORD: implement ¼ÂÁõ -.\"WORD: super-user ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ -.\"WORD: full-duplex Á´Æó½Å -.\"WORD: non-blocking I/O ÈóÄä»ß I/O -.\"WORD: asynchronous ÈóƱ´ü +.\"WORD: endpoint 端点 +.\"WORD: descriptor ディスクリプター +.\"WORD: link layer リンク層 +.\"WORD: byte stream バイト・ストリーム +.\"WORD: out-of-band 帯域外 +.\"WORD: sequenced 順序性のある +.\"WORD: reliable 信頼性のある +.\"WORD: two-way 双方向の +.\"WORD: datagram データグラム +.\"WORD: implement 実装 +.\"WORD: super-user スーパー・ユーザー +.\"WORD: full-duplex 全二重 +.\"WORD: non-blocking I/O 非停止 I/O +.\"WORD: asynchronous 非同期 .\" .TH SOCKET 2 2009-01-19 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O socket \- create an endpoint for communication -socket \- ÄÌ¿®¤Î¤¿¤á¤ÎüÅÀ(endpoint)¤òºîÀ®¤¹¤ë +socket \- 通信のための端点(endpoint)を作成する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .\"O .BR "#include " " /* See NOTES */" -.BR "#include " " /* ¡ÖÃí°Õ¡×»²¾È */" +.BR "#include " " /* 「注意」参照 */" .br .B #include .sp .BI "int socket(int " domain ", int " type ", int " protocol ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR socket () .\"O creates an endpoint for communication and returns a descriptor. .BR socket () -¤ÏÄÌ¿®¤Î¤¿¤á¤ÎüÅÀ(endpoint)¤òºîÀ®¤·¡¢¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼(descriptor)¤òÊÖ¤¹¡£ +は通信のための端点(endpoint)を作成し、ディスクリプター(descriptor)を返す。 .PP .\"O The .\"O .I domain @@ -92,76 +92,76 @@ socket \- .\"O .IR . .\"O The currently understood formats include: .I domain -°ú¿ô¤ÏÄÌ¿®¤ò¹Ô¤Ê¤¦¥É¥á¥¤¥ó¤ò»ØÄꤹ¤ë; ¤³¤ì¤Ï¤É¤Î -¥×¥í¥È¥³¥ë¡¦¥Õ¥¡¥ß¥ê(protocol family)¤òÄÌ¿®¤Ë»ÈÍѤ¹¤ë¤«¤ò»ØÄꤹ¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥¡¥ß¥ê¤Ï +引数は通信を行なうドメインを指定する; これはどの +プロトコル・ファミリ(protocol family)を通信に使用するかを指定する。 +これらのファミリは .I -¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¸½ºß¡¢Íý²ò¤Ç¤­¤ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï°Ê²¼¤ÎÄ̤ꡣ +に定義されている。 +現在、理解できるフォーマットは以下の通り。 .TS tab(:); l l l. .\"O Name:Purpose:Man page -̾Á°:ÌÜŪ:¥Þ¥Ë¥å¥¢¥ë +名前:目的:マニュアル T{ .BR AF_UNIX ", " AF_LOCAL T}:T{ .\"O Local communication -¥í¡¼¥«¥ëÄÌ¿® +ローカル通信 T}:T{ .BR unix (7) T} T{ .B AF_INET .\"O T}:IPv4 Internet protocols:T{ -T}:IPv4 ¥¤¥ó¥¿¡¼¥Í¥Ã¥È¡¦¥×¥í¥È¥³¥ë:T{ +T}:IPv4 インターネット・プロトコル:T{ .BR ip (7) T} T{ .B AF_INET6 .\"O T}:IPv6 Internet protocols:T{ -T}:IPv6 ¥¤¥ó¥¿¡¼¥Í¥Ã¥È¡¦¥×¥í¥È¥³¥ë:T{ +T}:IPv6 インターネット・プロトコル:T{ .BR ipv6 (7) T} T{ .B AF_IPX .\"O T}:IPX \- Novell protocols: -T}:IPX \- Novell ¥×¥í¥È¥³¥ë: +T}:IPX \- Novell プロトコル: T{ .B AF_NETLINK T}:T{ .\"O Kernel user interface device -¥«¡¼¥Í¥ë¡¦¥æ¡¼¥¶¡¦¥Ç¥Ð¥¤¥¹ +カーネル・ユーザ・デバイス T}:T{ .BR netlink (7) T} T{ .B AF_X25 .\"O T}:ITU-T X.25 / ISO-8208 protocol:T{ -T}:ITU-T X.25 / ISO-8208 ¥×¥í¥È¥³¥ë:T{ +T}:ITU-T X.25 / ISO-8208 プロトコル:T{ .BR x25 (7) T} T{ .B AF_AX25 T}:T{ .\"O Amateur radio AX.25 protocol -¥¢¥Þ¥Á¥å¥¢ÌµÀþ AX.25 ¥×¥í¥È¥³¥ë +アマチュア無線 AX.25 プロトコル T}: T{ .B AF_ATMPVC .\"O T}:Access to raw ATM PVCs: -T}:À¸¤Î ATM PVC ¤Ë¥¢¥¯¥»¥¹¤¹¤ë: +T}:生の ATM PVC にアクセスする: T{ .B AF_APPLETALK .\"O T}:Appletalk:T{ -T}:¥¢¥Ã¥×¥ë¥È¡¼¥¯:T{ +T}:アップルトーク:T{ .BR ddp (7) T} T{ .B AF_PACKET T}:T{ .\"O Low level packet interface -Äã¥ì¥Ù¥ë¤Î¥Ñ¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ +低レベルのパケットインターフェース T}:T{ .BR packet (7) T} @@ -172,59 +172,59 @@ T} .\"O which specifies the communication semantics. .\"O Currently defined types .\"O are: -¥½¥±¥Ã¥È¤Ï +ソケットは .I type -¤Ç»ØÄꤵ¤ì¤ë·¿¤ò»ý¤Á¡¢¤½¤ì¤ÏÄÌ¿®Êý¼°(semantics)¤ò»ØÄꤹ¤ë¡£ -ÄêµÁ¤µ¤ì¤Æ¤¤¤ë·¿¤Ï¸½ºß°Ê²¼¤ÎÄ̤ꡣ +で指定される型を持ち、それは通信方式(semantics)を指定する。 +定義されている型は現在以下の通り。 .TP 16 .B SOCK_STREAM .\"O Provides sequenced, reliable, two-way, connection-based byte streams. .\"O An out-of-band data transmission mechanism may be supported. -½ç½øÀ­¤È¿®ÍêÀ­¤¬¤¢¤ê¡¢ÁÐÊý¸þ¤Î¡¢Àܳ¤µ¤ì¤¿ -¥Ð¥¤¥È¡¦¥¹¥È¥ê¡¼¥à(byte stream)¤òÄ󶡤¹¤ë¡£ -ÂÓ°è³°(out-of-band)¥Ç¡¼¥¿Å¾Á÷¥á¥«¥Ë¥º¥à¤â¥µ¥Ý¡¼¥È¤µ¤ì¤ë¡£ +順序性と信頼性があり、双方向の、接続された +バイト・ストリーム(byte stream)を提供する。 +帯域外(out-of-band)データ転送メカニズムもサポートされる。 .TP .B SOCK_DGRAM .\"O Supports datagrams (connectionless, unreliable messages of a fixed .\"O maximum length). -¥Ç¡¼¥¿¥°¥é¥à(Àܳ¡¢¿®ÍêÀ­Ìµ¤·¡¢¸ÇÄêºÇÂçĹ¥á¥Ã¥»¡¼¥¸) -¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ +データグラム(接続、信頼性無し、固定最大長メッセージ) +をサポートする。 .TP .B SOCK_SEQPACKET .\"O Provides a sequenced, reliable, two-way connection-based data .\"O transmission path for datagrams of fixed maximum length; a consumer is .\"O required to read an entire packet with each input system call. -¸ÇÄêºÇÂçĹ¤Î¥Ç¡¼¥¿¥°¥é¥àžÁ÷¥Ñ¥¹¤Ë´ð¤Å¤¤¤¿½ç½øÀ­¡¢¿®ÍêÀ­¤Î¤¢¤ë -ÁÐÊý¸þ¤ÎÀܳ¤Ë´ð¤Å¤¤¤¿ÄÌ¿®¤òÄ󶡤¹¤ë¡£¼õ¤±¼è¤ê¦¤Ç¤Ï¤½¤ì¤¾¤ì¤ÎÆþÎÏ -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ç¥Ñ¥±¥Ã¥ÈÁ´ÂΤòÆɤ߼è¤ë¤³¤È¤¬Í׵ᤵ¤ì¤ë¡£ +固定最大長のデータグラム転送パスに基づいた順序性、信頼性のある +双方向の接続に基づいた通信を提供する。受け取り側ではそれぞれの入力 +システム・コールでパケット全体を読み取ることが要求される。 .TP .B SOCK_RAW .\"O Provides raw network protocol access. -À¸¤Î¥Í¥Ã¥È¥ï¡¼¥¯¡¦¥×¥í¥È¥³¥ë¤Ø¤Î¥¢¥¯¥»¥¹¤òÄ󶡤¹¤ë¡£ +生のネットワーク・プロトコルへのアクセスを提供する。 .TP .B SOCK_RDM .\"O Provides a reliable datagram layer that does not guarantee ordering. -¿®ÍêÀ­¤Ï¤¢¤ë¤¬¡¢½ç½ø¤ÏÊݾڤ·¤Ê¤¤¥Ç¡¼¥¿¥°¥é¥àÁؤòÄ󶡤¹¤ë¡£ +信頼性はあるが、順序は保証しないデータグラム層を提供する。 .TP .B SOCK_PACKET .\"O Obsolete and should not be used in new programs; .\"O see .\"O .BR packet (7). -Çѻߤµ¤ì¤Æ¤ª¤ê¿·¤·¤¤¥×¥í¥°¥é¥à¤Ç»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ +廃止されており新しいプログラムで使用してはいけない。 .BR packet (7) -¤ò»²¾È¤¹¤ë¤³¤È +を参照すること .PP .\"O Some socket types may not be implemented by all protocol families; .\"O for example, .\"O .B SOCK_SEQPACKET .\"O is not implemented for .\"O .BR AF_INET . -¤¢¤ë¼ï¤Î¥½¥±¥Ã¥È·¿¤¬Á´¤Æ¤Î¥×¥í¥È¥³¥ë¡¦¥Õ¥¡¥ß¥ê¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -Î㤨¤Ð +ある種のソケット型が全てのプロトコル・ファミリで実装されているわけではない。 +例えば .B SOCK_SEQPACKET -¤Ï +は .B AF_INET -¤Ë¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +には実装されていない。 .PP .\"O Since Linux 2.6.27, the .\"O .I type @@ -233,13 +233,13 @@ T} .\"O it may include the bitwise OR of any of the following values, .\"O to modify the behavior of .\"O .BR socket (): -Linux 2.6.27 °Ê¹ß¤Ç¤Ï¡¢ +Linux 2.6.27 以降では、 .I type -°ú¿ô¤ÏÆó¤ÄÌܤÎÌÜŪ¤Ë¤â»ÈÍѤµ¤ì¤ë¡£ -¥½¥±¥Ã¥È¤Î·¿¤ò»ØÄꤹ¤ë¤Î¤Ë²Ã¤¨¤Æ¡¢ -°Ê²¼¤ÎÃͤΤ¤¤¯¤Ä¤«¤ò¥Ó¥Ã¥Èñ°Ì¤ÎÏÀÍýÏ (OR) ¤Ç»ØÄꤹ¤ë¤³¤È¤Ç¡¢ +引数は二つ目の目的にも使用される。 +ソケットの型を指定するのに加えて、 +以下の値のいくつかをビット単位の論理和 (OR) で指定することで、 .BR socket () -¤Î¿¶Éñ¤¤¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +の振舞いを変更することができる。 .TP 16 .B SOCK_NONBLOCK .\"O Set the @@ -248,14 +248,14 @@ Linux 2.6.27 .\"O Using this flag saves extra calls to .\"O .BR fcntl (2) .\"O to achieve the same result. -¿·¤·¤¯À¸À®¤µ¤ì¤ë¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò (open file description) ¤Î +新しく生成されるオープンファイル記述 (open file description) の .B O_NONBLOCK -¥Õ¥¡¥¤¥ë¥¹¥Æ¡¼¥¿¥¹¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤³¤È¤Ç¡¢ +ファイルステータスフラグをセットする。 +このフラグを使うことで、 .B O_NONBLOCK -¤ò¥»¥Ã¥È¤¹¤ë¤¿¤á¤Ë +をセットするために .BR fcntl (2) -¤òÄɲäǸƤӽФ¹É¬Íפ¬¤Ê¤¯¤Ê¤ë¡£ +を追加で呼び出す必要がなくなる。 .TP .B SOCK_CLOEXEC .\"O Set the close-on-exec @@ -266,15 +266,15 @@ Linux 2.6.27 .\"O flag in .\"O .BR open (2) .\"O for reasons why this may be useful. -¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤ËÂФ·¤Æ +新しいファイル・ディスクリプターに対して close-on-exec .RB ( FD_CLOEXEC ) -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬Ìò¤ËΩ¤ÄÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +フラグをセットする。 +このフラグが役に立つ理由については、 .BR open (2) -¤Î +の .B O_CLOEXEC -¥Õ¥é¥°¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +フラグの説明を参照のこと。 .PP .\"O The .\"O .I protocol @@ -292,21 +292,21 @@ close-on-exec .\"O .BR getprotoent (3) .\"O on how to map protocol name strings to protocol numbers. .I protocol -¤Ï¥½¥±¥Ã¥È¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤ë¸ÇÍ­¤Î¥×¥í¥È¥³¥ë¤ò»ØÄꤹ¤ë¡£Ä̾綠¤ì¤¾¤ì¤Î -¥½¥±¥Ã¥È¤Ï¡¢Í¿¤¨¤é¤ì¤¿¥×¥í¥È¥³¥ë¡¦¥Õ¥¡¥ß¥ê¤Î¼ïÎऴ¤È¤Ë°ì¤Ä¤Î¥×¥í¥È¥³¥ë¤Î¤ß¤ò -¥µ¥Ý¡¼¥È¤¹¤ë¡£ -¤½¤Î¾ì¹ç¤Ï +はソケットによって使用される固有のプロトコルを指定する。通常それぞれの +ソケットは、与えられたプロトコル・ファミリの種類ごとに一つのプロトコルのみを +サポートする。 +その場合は .I protocol -¤Ë 0 ¤ò»ØÄê¤Ç¤­¤ë¡£ -¤·¤«¤·¡¢Â¿¤¯¤Î¥×¥í¥È¥³¥ë¤¬Â¸ºß¤·¤Æ¤â¤«¤Þ¤ï¤Ê¤¤¡£ -¤³¤Î¾ì¹ç¤Ë¤Ï¤³¤ÎÊýË¡¤Ë¤è¤ê¸ÇÍ­¤Î¥×¥í¥È¥³¥ë¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¡£ -»ÈÍѤµ¤ì¤ë¥×¥í¥È¥³¥ëÈÖ¹æ¤ÏÄÌ¿®¤Î¹Ô¤Ê¤ï¤ì¤ë\*(lqÄÌ¿®¥É¥á¥¤¥ó\*(rq¤Ë -¸ÇÍ­¤Ç¤¢¤ë; +に 0 を指定できる。 +しかし、多くのプロトコルが存在してもかまわない。 +この場合にはこの方法により固有のプロトコルを指定する必要がある。 +使用されるプロトコル番号は通信の行なわれる\*(lq通信ドメイン\*(rqに +固有である; .BR protocols (5) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -¥×¥í¥È¥³¥ë̾¤ò¤É¤¦¤ä¤Ã¤Æ¥×¥í¥È¥³¥ëÈÖ¹æ¤ËÂбþ¤µ¤»¤ë¤«¤Ë¤Ä¤¤¤Æ¤Ï +を参照すること。 +プロトコル名をどうやってプロトコル番号に対応させるかについては .BR getprotoent (3) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .PP .\"O Sockets of type .\"O .B SOCK_STREAM @@ -338,29 +338,29 @@ close-on-exec .\"O and received as described in .\"O .BR recv (2). .B SOCK_STREAM -·¿¤Î¥½¥±¥Ã¥È¤Ï¥Ñ¥¤¥×¤Î¤è¤¦¤ÊÁ´Æó½Å¥Ð¥¤¥È¡¦¥¹¥È¥ê¡¼¥à¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Ï¥ì¥³¡¼¥É¶­³¦¤òÊݸ¤·¤Ê¤¤¡£ -¥¹¥È¥ê¡¼¥à¤Ï¡¢¥½¥±¥Ã¥È¤¬¥Ç¡¼¥¿¤òÁ÷¤Ã¤¿¤ê¼õ¤±¤¿¤ê¤¹¤ëÁ°¤Ë -.I Àܳ¤µ¤ì¤¿ -¾õÂ֤ˤʤäƤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£Â¾¤Î¥½¥±¥Ã¥È¤Ø¤ÎÀܳ¤Ï +型のソケットはパイプのような全二重バイト・ストリームである。 +これらはレコード境界を保存しない。 +ストリームは、ソケットがデータを送ったり受けたりする前に +.I 接続された +状態になってなければならない。他のソケットへの接続は .BR connect (2) -¥³¡¼¥ë¤Ë¤è¤Ã¤Æ¹Ô¤Ê¤ï¤ì¤ë¡£°ìÅÙÀܳ¤·¤¿¤é¥Ç¡¼¥¿¤Ï +コールによって行なわれる。一度接続したらデータは .BR read (2) -¤È +と .BR write (2) -¥³¡¼¥ë¤ä +コールや .BR send (2) -¤È +と .BR recv (2) -¥³¡¼¥ë¤ÎÊѼï¤ò»ÈÍѤ·¤ÆžÁ÷¤Ç¤­¤ë¡£ -¥»¥Ã¥·¥ç¥ó¤¬´°Î»¤·¤¿¤é +コールの変種を使用して転送できる。 +セッションが完了したら .BR close (2) -¤¬¹Ô¤Ê¤ï¤ì¤ë¡£ÂÓ°è³°¥Ç¡¼¥¿¤ÎžÁ÷¤â +が行なわれる。帯域外データの転送も .BR send (2) -¤Ëµ­½Ò¤µ¤ì¤Æ¤ª¤ê¡¢ -¼õ¿®¤â +に記述されており、 +受信も .BR recv (2) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +に記述されている。 .PP .\"O The communications protocols which implement a .\"O .B SOCK_STREAM @@ -374,22 +374,22 @@ close-on-exec .\"O is enabled on the socket the protocol checks in a protocol-specific .\"O manner if the other end is still alive. .B SOCK_STREAM -¤ò¼ÂÁõ¤·¤¿ÄÌ¿®¥×¥í¥È¥³¥ë¤Ï¥Ç¡¼¥¿¤Ë»¼º¤ä½ÅÊ£¤¬¤Ê¤¤¤³¤È¤òÊݾڤ¹¤ë¡£ -¤â¤·Áê¼ê¤Î¥×¥í¥È¥³¥ë¤¬¥Ð¥Ã¥Õ¥¡¡¼¶õ´Ö¤ò»ý¤Ä -¥Ç¡¼¥¿¤ÎÃÇÊÒ¤òŬÅö¤Ê»þ´Ö¤Î¤¦¤Á¤ËžÁ÷¤Ç¤­¤Ê¤±¤ì¤Ð¡¢ -Àܳ¤ÏÃǤ¿¤ì¤¿¤È¤ß¤Ê¤¹¡£¤½¤Î¥½¥±¥Ã¥È +を実装した通信プロトコルはデータに損失や重複がないことを保証する。 +もし相手のプロトコルがバッファー空間を持つ +データの断片を適当な時間のうちに転送できなければ、 +接続は断たれたとみなす。そのソケット .B SO_KEEPALIVE -¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢¥×¥í¥È¥³¥ëÆȼ«¤ÎÊýË¡¤ÇÀܳ¤ÎÁê¼ê¦¤¬¤Þ¤À -Í­¸ú¤Ç¤¢¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ +が有効になっている場合、プロトコル独自の方法で接続の相手側がまだ +有効であるかをチェックする。 .\"O A .\"O .B SIGPIPE .\"O signal is raised if a process sends or receives .\"O on a broken stream; this causes naive processes, .\"O which do not handle the signal, to exit. -¤â¤·¥×¥í¥»¥¹¤¬¡¢²õ¤ì¤¿¥¹¥È¥ê¡¼¥à¤Ç¥Ç¡¼¥¿¤òÁ÷¼õ¿®¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤Ë¤Ï +もしプロセスが、壊れたストリームでデータを送受信しようとした場合には .B SIGPIPE -¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë; ¤³¤ì¤ÏÄ̾ï¤Î¤½¤Î¥·¥°¥Ê¥ë¤ò°·¤Ã¤Æ¤¤¤Ê¤¤¥×¥í¥»¥¹¤ò -½ªÎ»¤µ¤»¤ë¡£ +シグナルが送られる; これは通常のそのシグナルを扱っていないプロセスを +終了させる。 .\"O .B SOCK_SEQPACKET .\"O sockets employ the same system calls as .\"O .B SOCK_STREAM @@ -400,14 +400,14 @@ close-on-exec .\"O and any data remaining in the arriving packet will be discarded. .\"O Also all message boundaries in incoming datagrams are preserved. .B SOCK_SEQPACKET -¥½¥±¥Ã¥È¤Ï +ソケットは .B SOCK_STREAM -¥½¥±¥Ã¥È¤ÈƱ¤¸¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò»ÈÍѤ¹¤ë¡£ -Í£°ì¤Î°ã¤¤¤Ï +ソケットと同じシステム・コールを使用する。 +唯一の違いは .BR read (2) -¥³¡¼¥ë¤¬Í׵ᤵ¤ì¤¿Î̤Υǡ¼¥¿¤Î¤ß¤òÊÖ¤·¡¢ÅþÃ夷¤¿¥Ñ¥±¥Ã¥È¤Î»Ä¤ê¤ÎÉôʬ¤ò -¼Î¤Æ¤Æ¤·¤Þ¤¦¤³¤È¤Ç¤¢¤ë¡£Æ±ÍͤËÆþ¤Ã¤Æ¤¯¤ë¥Ç¡¼¥¿¥°¥é¥à¤ÎÁ´¤Æ¤Î¥á¥Ã¥»¡¼¥¸¶­³¦¤Ï -Êݸ¤µ¤ì¤ë¡£ +コールが要求された量のデータのみを返し、到着したパケットの残りの部分を +捨ててしまうことである。同様に入ってくるデータグラムの全てのメッセージ境界は +保存される。 .PP .\"O .B SOCK_DGRAM .\"O and @@ -419,15 +419,15 @@ close-on-exec .\"O .BR recvfrom (2), .\"O which returns the next datagram along with the address of its sender. .B SOCK_DGRAM -¤È +と .B SOCK_RAW -¥½¥±¥Ã¥È¤Ï +ソケットは .BR sendto (2) -¥³¡¼¥ë¤Ç»ØÄꤵ¤ì¤¿Áê¼ê¤Ø¥Ç¡¼¥¿¥°¥é¥à¤òÁ÷¤ë¤³¤È¤¬µö¤µ¤ì¤Æ¤¤¤ë¡£ -¥Ç¡¼¥¿¥°¥é¥à¤Ï°ìÈÌ¤Ë +コールで指定された相手へデータグラムを送ることが許されている。 +データグラムは一般に .BR recvfrom (2) -¤Ç¼õ¤±¤È¤ê¡¢ -¤³¤Î¥³¡¼¥ë¤Ï¼¡¤Î¥Ç¡¼¥¿¥°¥é¥à¤òÁ÷¿®¼Ô¤Î¥¢¥É¥ì¥¹¤È°ì½ï¤ËÊÖ¤¹¡£ +で受けとり、 +このコールは次のデータグラムを送信者のアドレスと一緒に返す。 .PP .\"O .B SOCK_PACKET .\"O is an obsolete socket type to receive raw packets directly from the @@ -436,11 +436,11 @@ close-on-exec .\"O .BR packet (7) .\"O instead. .B SOCK_PACKET -¤Ï¸Å¤¤¥½¥±¥Ã¥È·¿¤Ç¡¢À¸(raw)¤Î¥Ñ¥±¥Ã¥È¤ò¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤«¤é -ľÀܼõ¿®¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ -º£¤ÏÂå¤ï¤ê¤Ë +は古いソケット型で、生(raw)のパケットをデバイスドライバから +直接受信するためのものである。 +今は代わりに .BR packet (7) -¤òÍѤ¤¤ë¤³¤È¡£ +を用いること。 .PP .\"O An .\"O .BR fcntl (2) @@ -453,27 +453,27 @@ close-on-exec .\"O .B SOCK_STREAM .\"O connection breaks unexpectedly. .BR fcntl (2) -¤Î +の .B F_SETOWN -Áàºî¤ò»È¤Ã¤Æ¡¢¥·¥°¥Ê¥ë +操作を使って、シグナル .B SIGURG -¤ä +や .B SIGPIPE -¤ò¼õ¤±¤È¤ë¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤ò»ØÄê¤Ç¤­¤ë¡£ +を受けとるプロセス・グループを指定できる。 .B SIGURG -¥·¥°¥Ê¥ë¤ÏÂÓ°è³°¥Ç¡¼¥¿¤¬ÅþÃ夷¤¿»þ¤Ë¡¢ +シグナルは帯域外データが到着した時に、 .B SIGPIPE -¥·¥°¥Ê¥ë¤Ï +シグナルは .B SOCK_STREAM -Àܳ¤¬Í½´ü¤»¤ºÀÚÃǤµ¤ì¤¿»þ¤ËÁ÷¤é¤ì¤ë¡£ +接続が予期せず切断された時に送られる。 .\"O This operation may also be used to set the process or process group .\"O that receives the I/O and asynchronous notification of I/O events via .\"O .BR SIGIO . -¤Þ¤¿¡¢ +また、 .B F_SETOWN -Áàºî¤Ï¡¢I/O ¤ä I/O ¥¤¥Ù¥ó¥È¤ÎÈóƱ´ü (asynchronous) ÄÌÃΤò +操作は、I/O や I/O イベントの非同期 (asynchronous) 通知を .B SIGIO -¤ò·Ðͳ¤Ç¼õ¤±¼è¤ë¥×¥í¥»¥¹¤ä¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤òÀßÄꤹ¤ë¤Î¤Ë¤â»ÈÍѤǤ­¤ë¡£ +を経由で受け取るプロセスやプロセス・グループを設定するのにも使用できる。 .\"O Using .\"O .B F_SETOWN .\"O is equivalent to an @@ -484,13 +484,13 @@ close-on-exec .\"O .B SIOCSPGRP .\"O argument. .B F_SETOWN -¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï +を使用することは .B FIOSETOWN -¤Þ¤¿¤Ï +または .B SIOCSPGRP -¤Î°ú¿ô¤Ç +の引数で .BR ioctl (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¤ÈÅù²Á¤Ç¤¢¤ë¡£ +を使用することと等価である。 .PP .\"O When the network signals an error condition to the protocol module (e.g., .\"O using a ICMP message for IP) the pending error flag is set for the socket. @@ -501,16 +501,16 @@ close-on-exec .\"O .B IP_RECVERR .\"O in .\"O .BR ip (7). -¥Í¥Ã¥È¥ï¡¼¥¯¤¬¥×¥í¥È¥³¥ë¡¦¥â¥¸¥å¡¼¥ë¤Ë¥¨¥é¡¼¾õÂÖ¤òÅÁ¤¨¤¿¾ì¹ç -(Î㤨¤Ð¡¢IP ¤Î ICMP ¥á¥Ã¥»¡¼¥¸¤ò»ÈÍѤ·¤Æ)¤Ë¤Ï¡¢¥½¥±¥Ã¥È¤Î -¥Ú¥ó¥Ç¥£¥ó¥°¡¦¥¨¥é¡¼¡¦¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤ë¡£¼¡¤Ë¤³¤Î¥½¥±¥Ã¥È¤òÁàºî¤·¤¿ -»þ¤Ë¥Ú¥ó¥Ç¥£¥ó¥°¤µ¤ì¤Æ¤¤¤¿¥¨¥é¡¼¡¦¥³¡¼¥É¤¬ÊÖ¤µ¤ì¤ë¡£¥×¥í¥È¥³¥ë¤Ë¤è¤Ã¤Æ¤Ï -¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Î¤è¤ê¾Ü¤·¤¤¾ðÊó¤ò¼õ¤±¼è¤ë¤¿¤á¤Ë¥½¥±¥Ã¥È¤´¤È¤Î¥¨¥é¡¼¡¦¥­¥å¡¼¤ò -¼õ¤±¼è¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£ +ネットワークがプロトコル・モジュールにエラー状態を伝えた場合 +(例えば、IP の ICMP メッセージを使用して)には、ソケットの +ペンディング・エラー・フラグが設定される。次にこのソケットを操作した +時にペンディングされていたエラー・コードが返される。プロトコルによっては +エラーについてのより詳しい情報を受け取るためにソケットごとのエラー・キューを +受け取ることが可能である。 .BR ip (7) -¤Î +の .B IP_RECVERR -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .PP .\"O The operation of sockets is controlled by socket level .\"O .IR options . @@ -521,75 +521,75 @@ close-on-exec .\"O and .\"O .BR getsockopt (2) .\"O are used to set and get options, respectively. -¥½¥±¥Ã¥È¤ÎÁàºî¤Ï¥½¥±¥Ã¥È¡¦¥ì¥Ù¥ë +ソケットの操作はソケット・レベル .I options -¤Ë¤è¤Ã¤ÆÀ©¸æ¤µ¤ì¤ë¡£ -¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Ï +によって制御される。 +これらのオプションは .I -¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +に定義されている。 .BR setsockopt (2) -¤È +と .BR getsockopt (2) -´Ø¿ô¤Ï¤½¤ì¤¾¤ì¥ª¥×¥·¥ç¥ó¤ÎÀßÄê¤È¼èÆÀ¤ò¹Ô¤Ê¤¦¡£ +関数はそれぞれオプションの設定と取得を行なう。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, a file descriptor for the new socket is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢¿·¤·¤¤¥½¥±¥Ã¥È¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +成功した場合、新しいソケットのファイル・ディスクリプターを返す。 +エラーが発生した場合は \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O Permission to create a socket of the specified type and/or protocol .\"O is denied. -»ØÄꤵ¤ì¤¿¥¿¥¤¥×¤Þ¤¿¤Ï¥×¥í¥È¥³¥ë¤Î¥½¥±¥Ã¥È¤òºîÀ®¤¹¤ëµö²Ä¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤¡£ +指定されたタイプまたはプロトコルのソケットを作成する許可が与えられていない。 .TP .B EAFNOSUPPORT .\"O The implementation does not support the specified address family. -»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +指定されたアドレスファミリーがサポートされていない。 .TP .B EINVAL .\"O Unknown protocol, or protocol family not available. -ÃΤé¤Ê¤¤¥×¥í¥È¥³¥ë¡¢¤Þ¤¿¤ÏÍøÍѤǤ­¤Ê¤¤¥×¥í¥È¥³¥ë¡¦¥Õ¥¡¥ß¥ê¤Ç¤¢¤ë¡£ +知らないプロトコル、または利用できないプロトコル・ファミリである。 .TP .B EINVAL .\" Since Linux 2.6.27 .\"O Invalid flags in .\"O .IR type . .I type -¤Ë̵¸ú¤Ê¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¡£ +に無効なフラグが指定されている。 .TP .B EMFILE .\"O Process file table overflow. -¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¥Æ¡¼¥Ö¥ë¤¬°î¤ì¤Æ¤¤¤ë¡£ +プロセスのファイルテーブルが溢れている。 .TP .B ENFILE .\"O The system limit on the total number of open files has been reached. -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ÎÁí¿ô¤¬¥·¥¹¥Æ¥à¾å¸Â¤Ë㤷¤Æ¤¤¤ë¡£ +オープンされたファイルの総数がシステム上限に達している。 .TP .\"O .BR ENOBUFS " or " ENOMEM -.BR ENOBUFS " ¤Þ¤¿¤Ï " ENOMEM +.BR ENOBUFS " または " ENOMEM .\"O Insufficient memory is available. .\"O The socket cannot be .\"O created until sufficient resources are freed. -½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£½½Ê¬¤Ê»ñ¸»¤¬²òÊü¤µ¤ì¤ë¤Þ¤Ç¤Ï¥½¥±¥Ã¥È¤ò -ºîÀ®¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +十分なメモリがない。十分な資源が解放されるまではソケットを +作成することはできない。 .TP .B EPROTONOSUPPORT .\"O The protocol type or the specified protocol is not .\"O supported within this domain. -¤³¤Î¥É¥á¥¤¥ó¤Ç¤Ï»ØÄꤵ¤ì¤¿¥×¥í¥È¥³¥ë¤Þ¤¿¤Ï¥×¥í¥È¥³¥ë¡¦¥¿¥¤¥×¤¬ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +このドメインでは指定されたプロトコルまたはプロトコル・タイプが +サポートされていない。 .PP .\"O Other errors may be generated by the underlying protocol modules. -²¼°Ì¤Î¥×¥í¥È¥³¥ë¡¦¥â¥¸¥å¡¼¥ë¤«¤é¾¤Î¥¨¥é¡¼¤¬À¸À®¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +下位のプロトコル・モジュールから他のエラーが生成されるかもしれない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.4BSD, POSIX.1-2001. .\"O The @@ -597,10 +597,10 @@ close-on-exec .\"O and .\"O .B SOCK_CLOEXEC .\"O flags are Linux-specific. -¥Õ¥é¥° +フラグ .BR SOCK_NONBLOCK , .B SOCK_CLOEXEC -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ +は Linux 固有である。 .\"O .BR socket () .\"O appeared in 4.2BSD. @@ -608,23 +608,23 @@ close-on-exec .\"O non-BSD systems supporting clones of the BSD socket layer (including .\"O System V variants). .BR socket () -¤Ï 4.2BSD ¤ÇÅо줷¤¿¡£°ìÈ̤ˡ¢(System V ¤ÎÊѼï¤ò´Þ¤á¤Æ) -BSD ¤Î¥½¥±¥Ã¥ÈÁؤθߴ¹À­¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë BSD °Ê³°¤Î¥·¥¹¥Æ¥à¤Ø¤Î¡¢ -¤Þ¤¿¤Ï¡¢BSD °Ê³°¤Î¥·¥¹¥Æ¥à¤«¤é¤Î°Ü¿¢¤¬¤Ç¤­¤ë¡£ +は 4.2BSD で登場した。一般に、(System V の変種を含めて) +BSD のソケット層の互換性をサポートしている BSD 以外のシステムへの、 +または、BSD 以外のシステムからの移植ができる。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O POSIX.1-2001 does not require the inclusion of .\"O .IR , .\"O and this header file is not required on Linux. .\"O However, some historical (BSD) implementations required this header .\"O file, and portable applications are probably wise to include it. -POSIX.1-2001 ¤Ç¤Ï +POSIX.1-2001 では .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ïɬ¿Ü¤È¤µ¤ì¤Æ¤ª¤é¤º¡¢ -Linux ¤Ç¤Ï¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÏɬÍפǤϤʤ¤¡£ -¤·¤«¤·¡¢Îò»ËŪ¤Ë¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¼ÂÁõ (BSD ·Ï) ¤Ç¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬ -ɬÍפǤ¢¤ê¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤ò -¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤Î¤¬¸­ÌÀ¤Ç¤¢¤í¤¦¡£ +のインクルードは必須とされておらず、 +Linux ではこのヘッダファイルは必要ではない。 +しかし、歴史的には、いくつかの実装 (BSD ç³») でこのヘッダファイルが +必要であり、移植性が必要なアプリケーションではこのファイルを +インクルードするのが賢明であろう。 .\"O The manifest constants used under 4.x BSD for protocol families .\"O are @@ -637,26 +637,26 @@ Linux .\"O However, already the BSD man page promises: "The protocol .\"O family generally is the same as the address family", and subsequent .\"O standards use AF_* everywhere. -4.x BSD ¤Ë¤ª¤¤¤ÆÄê¿ô¤ò»ÈÍѤ¹¤ë¾ì¹ç¡¢¥×¥í¥È¥³¥ë¡¦¥Õ¥¡¥ß¥ê¡¼¤Ë¤Ï +4.x BSD において定数を使用する場合、プロトコル・ファミリーには .BR PF_UNIX , .B PF_INET -Åù¤ò»ÈÍѤ·¤Æ¤¤¤ë¡£°ìÊý¤Ç¥¢¥É¥ì¥¹¡¦¥Õ¥¡¥ß¥ê¡¼¤Ë¤Ï +等を使用している。一方でアドレス・ファミリーには .B AF_UNIX -Åù¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£¤·¤«¤·¤Ê¤¬¤é BSD ¤Î¥Þ¥Ë¥å¥¢¥ë¤Ç¤Ï -¡Ö°ìÈ̤˥ץí¥È¥³¥ë¡¦¥Õ¥¡¥ß¥ê¡¼¤Ï¥¢¥É¥ì¥¹¡¦¥Õ¥¡¥ß¥ê¡¼¤ÈƱ¤¸¤â¤Î¤Ç¤¢¤ë¡£¡× -¤ÈÊݾڤ·¤Æ¤¤¤ë¡£¤½¤ì¤Ç¤½¤ì°Ê³°¤Îµ¬³Ê¤Ç¤ÏÁ´¤Æ¤Î¾ì½ê¤Ç AF_* ¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ +等が使用されている。しかしながら BSD のマニュアルでは +「一般にプロトコル・ファミリーはアドレス・ファミリーと同じものである。」 +と保証している。それでそれ以外の規格では全ての場所で AF_* が使用されている。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O An example of the use of .\"O .BR socket () .\"O is shown in .\"O .BR getaddrinfo (3). .BR socket () -¤ÎÍøÍÑÎ㤬 +の利用例が .BR getaddrinfo (3) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ +に記載されている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR accept (2), .BR bind (2), .BR connect (2), @@ -684,14 +684,14 @@ Linux .\"O is reprinted in .\"O .I UNIX Programmer's Supplementary Documents Volume 1. \(lqAn Introductory 4.3BSD Interprocess Communication Tutorial\(rq -¤Ï +は .I UNIX Programmer's Supplementary Documents Volume 1 -¤È¤·¤ÆºÆÈǤµ¤ì¤¿¡£ +として再版された。 .PP .\"O \(lqBSD Interprocess Communication Tutorial\(rq .\"O is reprinted in .\"O .I UNIX Programmer's Supplementary Documents Volume 1. \(lqBSD Interprocess Communication Tutorial\(rq -¤Ï +は .I UNIX Programmer's Supplementary Documents Volume 1 -¤È¤·¤ÆºÆÈǤµ¤ì¤¿¡£ +として再版された。 diff --git a/draft/man2/socketcall.2 b/draft/man2/socketcall.2 index 9e218bd2..958ee1a3 100644 --- a/draft/man2/socketcall.2 +++ b/draft/man2/socketcall.2 @@ -29,22 +29,22 @@ .\" Translated Mon Mar 3 23:45:10 JST 1997 .\" by HANATAKA Shinya .\" -.\"WORD: socket ¥½¥±¥Ã¥È -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: entry ¥¨¥ó¥È¥ê -.\"WORD: hacker ¥Ï¥Ã¥«¡¼ -.\"WORD: library ¥é¥¤¥Ö¥é¥ê +.\"WORD: socket ソケット +.\"WORD: kernel カーネル +.\"WORD: entry エントリ +.\"WORD: hacker ハッカー +.\"WORD: library ライブラリ .\" .TH SOCKETCALL 2 2007-06-28 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O socketcall \- socket system calls -socketcall \- ¥½¥±¥Ã¥È¡¦¥·¥¹¥Æ¥à¥³¡¼¥ë +socketcall \- ソケット・システムコール .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .BI "int socketcall(int " call ", unsigned long *" args ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR socketcall () .\"O is a common kernel entry point for the socket system calls. .\"O .I call @@ -53,28 +53,28 @@ socketcall \- .\"O points to a block containing the actual arguments, .\"O which are passed through to the appropriate call. .BR socketcall () -¤Ï¥½¥±¥Ã¥È¡¦¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¤¿¤á¤Î¶¦Ä̤Υ«¡¼¥Í¥ë¡¦¥¨¥ó¥È¥ê¡¦ -¥Ý¥¤¥ó¥È(kernel entry point)¤Ç¤¢¤ë¡£ +はソケット・システムコールのための共通のカーネル・エントリ・ +ポイント(kernel entry point)である。 .I call -¤Ï¤É¤Î¥½¥±¥Ã¥È´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤«¤ò»ØÄꤹ¤ë¡£ +はどのソケット関数を呼び出すかを指定する。 .I args -¤ÏŬÀڤʥ³¡¼¥ë¤ËÅϤ¹¤¿¤á¤Î¼ÂºÝ¤Î°ú¤­¿ô¤ò´Þ¤ó¤Ç¤¤¤ë¥Ö¥í¥Ã¥¯¤ò»Ø¤¹¡£ +は適切なコールに渡すための実際の引き数を含んでいるブロックを指す。 .PP .\"O User programs should call the appropriate functions by their usual names. .\"O Only standard library implementors and kernel hackers need to know about .\"O .BR socketcall (). -¥æ¡¼¥¶¡¼¡¦¥×¥í¥°¥é¥à¤ÏÄ̾ï¤Î̾Á°¤ò»ÈÍѤ·¤ÆŬÀڤʴؿô¤ò¸Æ¤Ó½Ð¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -ɸ½à¥é¥¤¥Ö¥é¥ê¤Î¼ÂÁõ¼Ô¤ä¥«¡¼¥Í¥ë¡¦¥Ï¥Ã¥«¡¼¤Î¤ß¤¬ +ユーザー・プログラムは通常の名前を使用して適切な関数を呼び出すべきである。 +標準ライブラリの実装者やカーネル・ハッカーのみが .BR socketcall () -¤Ë¤Ä¤¤¤ÆÃΤëɬÍפ¬¤¢¤ë¡£ +について知る必要がある。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This call is specific to Linux, and should not be used in programs .\"O intended to be portable. -¤³¤Î¥³¡¼¥ë¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç -»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ +このコールは Linux 特有であり、移植を意図したプログラムで +使用してはいけない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O On a few architectures, for example ia64, there is no .\"O .BR socketcall () .\"O system call; instead @@ -82,15 +82,15 @@ socketcall \- .\"O .BR accept (2), .\"O .BR bind (2), .\"O and so on really are implemented as separate system calls. -ia64 ¤Ê¤É¤Î¤¤¤¯¤Ä¤«¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë +ia64 などのいくつかのアーキテクチャでは、システムコール .BR socketcall () -¤¬Â¸ºß¤·¤Ê¤¤¡£¼ÂºÝ¤Ë¤Ï¡¢¤½¤ÎÂå¤ï¤ê¤Ë +が存在しない。実際には、その代わりに .BR socket (2), .BR accept (2), .BR bind (2) -¤Ê¤É¤¬ÆÈΩ¤·¤¿¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +などが独立したシステムコールとして実装されている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR accept (2), .BR bind (2), .BR connect (2), diff --git a/draft/man2/socketpair.2 b/draft/man2/socketpair.2 index 73c147b4..46d68dc1 100644 --- a/draft/man2/socketpair.2 +++ b/draft/man2/socketpair.2 @@ -44,29 +44,29 @@ .\" Updated 2005-02-24, Akihiro MOTOKI .\" Updated 2008-11-09, Akihiro MOTOKI , LDP v3.13 .\" -.\"WORD: socket ¥½¥±¥Ã¥È -.\"WORD: pair ¥Ú¥¢ -.\"WORD: domain ¥É¥á¥¤¥ó -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: family ¥Õ¥¡¥ß¥ê -.\"WORD: implement ¼ÂÁõ +.\"WORD: socket ソケット +.\"WORD: pair ペア +.\"WORD: domain ドメイン +.\"WORD: descriptor ディスクリプタ +.\"WORD: family ファミリ +.\"WORD: implement 実装 .\" .TH SOCKETPAIR 2 2008-10-11 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O socketpair \- create a pair of connected sockets -.SH ̾Á° -socketpair \- Àܳ¤µ¤ì¤¿¥½¥±¥Ã¥È¤Î¥Ú¥¢¤òºîÀ®¤¹¤ë +.SH 名前 +socketpair \- 接続されたソケットのペアを作成する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .\"O .BR "#include " " /* See NOTES */" -.BR "#include " " /* ¡ÖÃí°Õ¡×»²¾È */" +.BR "#include " " /* 「注意」参照 */" .br .B #include .sp .BI "int socketpair(int " domain ", int " type ", int " protocol \ ", int " sv [2]); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR socketpair () .\"O call creates an unnamed pair of connected sockets in the specified @@ -76,71 +76,71 @@ socketpair \- .\"O and using the optionally specified .\"O .IR protocol . .BR socketpair () -¤Ï¡¢»ØÄꤵ¤ì¤¿¥É¥á¥¤¥ó +は、指定されたドメイン .I domain -¤Ë»ØÄꤵ¤ì¤¿¼ïÎà +に指定された種類 .I type -¤Ç̾Á°¤Î¤Ê¤¤¥½¥±¥Ã¥È¤ÎÀܳ¤µ¤ì¤¿¥Ú¥¢¤òºîÀ®¤¹¤ë¡£ +で名前のないソケットの接続されたペアを作成する。 .I protocol -¤¬»ØÄꤵ¤ì¤ë¤È¡¢¤³¤Î¥×¥í¥È¥³¥ë¤òÍѤ¤¤ë¡£ +が指定されると、このプロトコルを用いる。 .\"O For further details of these arguments, see .\"O .BR socket (2). -¤³¤ì¤é¤Î°ú¤­¿ô¤Î¾ÜºÙ¤Ï +これらの引き数の詳細は .BR socket (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O The descriptors used in referencing the new sockets are returned in .\"O .IR sv [0] .\"O and .\"O .IR sv [1]. -¿·¤·¤¤¥½¥±¥Ã¥È¤Î»²¾È¤Ë»ÈÍѤ¹¤ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ (descriptor) ¤¬ +新しいソケットの参照に使用するディスクリプタ (descriptor) が .IR sv [0] -¤È +と .IR sv [1] -¤ËÊÖ¤µ¤ì¤ë¡£ +に返される。 .\"O The two sockets are indistinguishable. -Æó¤Ä¤Î¥½¥±¥Ã¥È¤ÏÁ´¤¯Æ±¤¸¤Ç¤¢¤ë¡£ +二つのソケットは全く同じである。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +成功した場合はゼロを返す、エラーの場合は \-1 を返し、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EAFNOSUPPORT .\"O The specified address family is not supported on this machine. -¤³¤Î¥Þ¥·¥ó¤Ç¤Ï»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¡¦¥Õ¥¡¥ß¥ê¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +このマシンでは指定されたアドレス・ファミリがサポートされていない。 .TP .B EFAULT .\"O The address .\"O .I sv .\"O does not specify a valid part of the process address space. -¥¢¥É¥ì¥¹ +アドレス .I sv -¤¬¤³¤Î¥×¥í¥»¥¹¤Ç»È¤¨¤ë¥¢¥É¥ì¥¹¶õ´Ö¤ò»ØÄꤷ¤Æ¤¤¤Ê¤¤¡£ +がこのプロセスで使えるアドレス空間を指定していない。 .TP .B EMFILE .\"O Too many descriptors are in use by this process. -¤³¤Î¥×¥í¥»¥¹¤¬»ÈÍѤ·¤Æ¤¤¤ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¿ô¤¬Â¿¤¹¤®¤ë¡£ +このプロセスが使用しているディスクリプタの数が多すぎる。 .TP .B ENFILE .\"O The system limit on the total number of open files has been reached. -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ÎÁí¿ô¤¬¥·¥¹¥Æ¥àÁ´ÂΤξå¸Â¤Ë㤷¤¿¡£ +オープンされたファイルの総数がシステム全体の上限に達した。 .TP .B EOPNOTSUPP .\"O The specified protocol does not support creation of socket pairs. -»ØÄꤵ¤ì¤¿¥×¥í¥È¥³¥ë¤Ç¤Ï¥½¥±¥Ã¥È¤Î¥Ú¥¢¤ÎºîÀ®¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +指定されたプロトコルではソケットのペアの作成がサポートされていない。 .TP .B EPROTONOSUPPORT .\"O The specified protocol is not supported on this machine. -¤³¤Î¥Þ¥·¥ó¤Ç¤Ï»ØÄꤵ¤ì¤¿¥×¥í¥È¥³¥ë¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +このマシンでは指定されたプロトコルがサポートされていない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O 4.4BSD, POSIX.1-2001. .\"O The .\"O .BR socketpair () @@ -150,22 +150,22 @@ socketpair \- .\"O System V variants). 4.4BSD, POSIX.1-2001. .BR socketpair () -´Ø¿ô¥³¡¼¥ë¤Ï 4.2BSD ¤Ç¸½¤ï¤ì¤¿¡£°ìÈÌ¤Ë (System V ¤ÎÊѼï¤ò´Þ¤á¤Æ) -BSD ¤Î¥½¥±¥Ã¥ÈÁؤΥ¯¥í¡¼¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡¢BSD °Ê³°¤Î¥·¥¹¥Æ¥à¤È¡¢ -¸ß¤¤¤Ë°Ü¿¢À­¤¬¤¢¤ë¡£ +関数コールは 4.2BSD で現われた。一般に (System V の変種を含めて) +BSD のソケット層のクローンをサポートしている、BSD 以外のシステムと、 +互いに移植性がある。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O On Linux, the only supported domain for this call is .\"O .B AF_UNIX .\"O (or synonymously, .\"O .BR AF_LOCAL ). .\"O (Most implementations have the same restriction.) -Linux ¤Ç¤Ï¡¢¤³¤Î´Ø¿ô¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥É¥á¥¤¥ó¤Ï +Linux では、この関数でサポートされているドメインは .B AF_UNIX -(¤Þ¤¿¤ÏƱµÁ¸ì¤Ç¤¢¤ë +(または同義語である .BR AF_LOCAL ) -¤À¤±¤Ç¤¢¤ë¡£ -(¤Û¤È¤ó¤É¤Î¼ÂÁõ¤ÇƱ¤¸À©¸Â¤¬¤¢¤ë) +だけである。 +(ほとんどの実装で同じ制限がある) .\"O Since Linux 2.6.27, .\"O .BR socketpair () @@ -175,30 +175,30 @@ Linux .\"O .BR SOCK_CLOEXEC .\"O flags described in .\"O .BR socket (2). -Linux 2.6.27 °Ê¹ß¤Ç¤Ï¡¢ +Linux 2.6.27 以降では、 .BR socketpair () -¤Ï¡¢¥Õ¥é¥° +は、フラグ .B SOCK_NONBLOCK -¤È +と .B SOCK_CLOEXEC -¤ËÂбþ¤·¤Æ¤¤¤ë¡£¥Õ¥é¥°¤ÎÀâÌÀ¤Ï +に対応している。フラグの説明は .BR socket (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O POSIX.1-2001 does not require the inclusion of .\"O .IR , .\"O and this header file is not required on Linux. .\"O However, some historical (BSD) implementations required this header .\"O file, and portable applications are probably wise to include it. -POSIX.1-2001 ¤Ç¤Ï +POSIX.1-2001 では .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ïɬ¿Ü¤È¤µ¤ì¤Æ¤ª¤é¤º¡¢ -Linux ¤Ç¤Ï¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÏɬÍפǤϤʤ¤¡£ -¤·¤«¤·¡¢Îò»ËŪ¤Ë¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¼ÂÁõ (BSD ·Ï) ¤Ç¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬ -ɬÍפǤ¢¤ê¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤ò -¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤Î¤¬¸­ÌÀ¤Ç¤¢¤í¤¦¡£ +のインクルードは必須とされておらず、 +Linux ではこのヘッダファイルは必要ではない。 +しかし、歴史的には、いくつかの実装 (BSD ç³») でこのヘッダファイルが +必要であり、移植性が必要なアプリケーションではこのファイルを +インクルードするのが賢明であろう。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR pipe (2), .BR read (2), .BR socket (2), diff --git a/draft/man2/splice.2 b/draft/man2/splice.2 index aadc1423..9c9a9acf 100644 --- a/draft/man2/splice.2 +++ b/draft/man2/splice.2 @@ -30,14 +30,14 @@ .\" .TH SPLICE 2 2009-09-15 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O splice \- splice data to/from a pipe -splice \- ¥Ñ¥¤¥×¤È¤Î´Ö¤Ç¥Ç¡¼¥¿¤ò·Ñ¤®¹ç¤ï¤»¤ë +splice \- パイプとの間でデータを継ぎ合わせる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .BI "ssize_t splice(int " fd_in ", loff_t *" off_in ", int " fd_out , @@ -46,7 +46,7 @@ splice \- .fi .\" Return type was long before glibc 2.7 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR splice () .\"O moves data between two file descriptors .\"O without copying between kernel address space and user address space. @@ -58,17 +58,17 @@ splice \- .\"O .IR fd_out , .\"O where one of the descriptors must refer to a pipe. .BR splice () -¤Ï¡¢¥«¡¼¥Í¥ë¥¢¥É¥ì¥¹¶õ´Ö¤È¥æ¡¼¥¶¥¢¥É¥ì¥¹¶õ´Ö¤È¤Î´Ö¤Î¥³¥Ô¡¼¤òȼ¤ï¤º¤Ë¡¢ -2 ¤Ä¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿´Ö¤Ç¥Ç¡¼¥¿¤Î°ÜÆ°¤ò¹Ô¤¦¡£ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +は、カーネルアドレス空間とユーザアドレス空間との間のコピーを伴わずに、 +2 つのファイルディスクリプタ間でデータの移動を行う。 +ファイルディスクリプタ .I fd_in -¤«¤é¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +からファイルディスクリプタ .I fd_out -¤ØºÇÂç +へ最大 .I len -¥Ð¥¤¥È¤òžÁ÷¤¹¤ë¡£ -2 ¤Ä¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¦¤Á°ì¤Ä¤Ï -¥Ñ¥¤¥×¤ò»²¾È¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +バイトを転送する。 +2 つのファイルディスクリプタのうち一つは +パイプを参照していなければならない。 .PP .\"O If .\"O .I fd_in @@ -76,9 +76,9 @@ splice \- .\"O .I off_in .\"O must be NULL. .I fd_in -¤¬¥Ñ¥¤¥×¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¡¢ +がパイプを参照している場合、 .I off_in -¤Ï NULL ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は NULL でなければならない。 .\"O If .\"O .I fd_in .\"O does not refer to a pipe and @@ -88,12 +88,12 @@ splice \- .\"O starting from the current file offset, .\"O and the current file offset is adjusted appropriately. .I fd_in -¤¬¥Ñ¥¤¥×¤ò»²¾È¤·¤Æ¤ª¤é¤º¡¢ +がパイプを参照しておらず、 .I off_in -¤¬ NULL ¤Î¾ì¹ç¡¢ +が NULL の場合、 .I fd_in -¤Î¸½ºß¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤«¤é»Ï¤Þ¤ë¥Ð¥¤¥È¤òÆɤ߽Ф¹¡£ -¸½ºß¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤ÏŬÀÚ¤ËÄ´À°¤µ¤ì¤ë¡£ +の現在のファイルオフセットから始まるバイトを読み出す。 +現在のファイルオフセットは適切に調整される。 .\"O If .\"O .I fd_in .\"O does not refer to a pipe and @@ -107,32 +107,32 @@ splice \- .\"O .I fd_in .\"O is not changed. .I fd_in -¤¬¥Ñ¥¤¥×¤ò»²¾È¤·¤Æ¤ª¤é¤º¡¢ +がパイプを参照しておらず、 .I off_in -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が NULL でない場合、 .I off_in -¤Ï +は .I fd_in -¤«¤é¤Î¥Ç¡¼¥¿Æɤ߽Ф·¤ò³«»Ï¤¹¤ëÀèƬ¥ª¥Õ¥»¥Ã¥È¤ò³ÊǼ¤·¤¿¥Ð¥Ã¥Õ¥¡ -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤Î¾ì¹ç¡¢ +からのデータ読み出しを開始する先頭オフセットを格納したバッファ +へのポインタでなければならない。この場合、 .I fd_in -¤Î¸½ºß¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +の現在のファイルオフセットは変更されない。 .\"O Analogous statements apply for .\"O .I fd_out .\"O and .\"O .IR off_out . .I fd_out -¤È +と .I off_out -¤Ë´Ø¤·¤Æ¤âƱÍͤǤ¢¤ë¡£ +に関しても同様である。 .PP .\"O The .\"O .I flags .\"O argument is a bit mask that is composed by ORing together .\"O zero or more of the following values: .I flags -°ú¤­¿ô¤Ë¤Ï¡¢°Ê²¼¤ÎÃͤΠ0 ¸Ä°Ê¾å¤Î¥Ó¥Ã¥Èñ°Ì¤ÎÏÀÍýϤò -¤È¤Ã¤¿¤â¤Î¤ò»ØÄꤹ¤ë: +引き数には、以下の値の 0 個以上のビット単位の論理和を +とったものを指定する: .TP 1.9i .B SPLICE_F_MOVE .\"O Attempt to move pages instead of copying. @@ -140,23 +140,23 @@ splice \- .\"O pages may still be copied if the kernel cannot move the .\"O pages from the pipe, or if .\"O the pipe buffers don't refer to full pages. -¥Ú¡¼¥¸¤Î¥³¥Ô¡¼¤Ç¤Ê¤¯°ÜÆ°¤ò»î¤ß¤ë¡£ -¤³¤ì¤Ï¥«¡¼¥Í¥ë¤ËÂФ¹¤ë¥Ò¥ó¥È¤Ç¤·¤«¤Ê¤¤¡£ -¤Ä¤Þ¤ê¡¢¥«¡¼¥Í¥ë¤¬¥Ñ¥¤¥×¤«¤é¥Ú¡¼¥¸¤ò°ÜÆ°¤Ç¤­¤Ê¤¤¾ì¹ç¤ä¡¢ -¥Ñ¥¤¥×¥Ð¥Ã¥Õ¥¡¤¬¥Ú¡¼¥¸Á´Éô¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢ -¥Ú¡¼¥¸¤Î¥³¥Ô¡¼¤¬¹Ô¤ï¤ì¤ë¤³¤È¤â¤¢¤ë¡£ +ページのコピーでなく移動を試みる。 +これはカーネルに対するヒントでしかない。 +つまり、カーネルがパイプからページを移動できない場合や、 +パイプバッファがページ全部を参照していない場合は、 +ページのコピーが行われることもある。 .\"O The initial implementation of this flag was buggy: .\"O therefore starting in Linux 2.6.21 it is a no-op .\"O (but is still permitted in a .\"O .BR splice () .\"O call); .\"O in the future, a correct implementation may be restored. -¤³¤Î¥Õ¥é¥°¤ÎºÇ½é¤Î¼ÂÁõ¤Ë¤Ï¥Ð¥°¤¬¤¢¤Ã¤¿¡£¤½¤Î¤¿¤á¡¢ -Linux 2.6.21 °Ê¹ß¤Ç¤Ï¤³¤Î¥Õ¥é¥°¤ÎÁàºî¤Ï¤Ç¤­¤Ê¤¤¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë -(¤¿¤À¤·¡¢ +このフラグの最初の実装にはバグがあった。そのため、 +Linux 2.6.21 以降ではこのフラグの操作はできないようになっている +(ただし、 .BR splice () -¥³¡¼¥ë¤Ç¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤³¤È¤Ïº£¤âǧ¤á¤é¤ì¤Æ¤¤¤ë)¡£ -¾­Íè¡¢Àµ¤·¤¤¼ÂÁõ¤¬¹Ô¤ï¤ì¤ë¤³¤È¤À¤í¤¦¡£ +コールでこのフラグを指定することは今も認められている)。 +将来、正しい実装が行われることだろう。 .TP .B SPLICE_F_NONBLOCK .\"O Do not block on I/O. @@ -166,15 +166,15 @@ Linux 2.6.21 .\"O are spliced to/from may block (unless they have the .\"O .B O_NONBLOCK .\"O flag set). -Æþ½ÐÎÏ»þ¤ËÄä»ß (block) ¤·¤Ê¤¤¡£ -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È¡¢ -splice ¤Ë¤è¤ë¥Ñ¥¤¥×Áàºî¤òÈóÄä»ß¥â¡¼¥É (nonblocking) ¤Ç -¹Ô¤ª¤¦¤È¤¹¤ë¤¬¡¢¤½¤Î¾ì¹ç¤Ç¤â +入出力時に停止 (block) しない。 +このフラグを指定すると、 +splice によるパイプ操作を非停止モード (nonblocking) で +行おうとするが、その場合でも .BR splice () -¤ÏÄä»ß¤¹¤ë¤³¤È¤â¤¢¤ë¡£¤Ê¤¼¤Ê¤é¡¢¥Ç¡¼¥¿¤Î¤ä¤ê¼è¤ê¤ò¹Ô¤¦ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï +は停止することもある。なぜなら、データのやり取りを行う +ファイルディスクリプタは .RB ( O_NONBLOCK -¥Õ¥é¥°¤ò¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç) Ää»ß¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¤«¤é¤Ç¤¢¤ë¡£ +フラグをセットされていない場合) 停止する可能性があるからである。 .TP .B SPLICE_F_MORE .\"O More data will be coming in a subsequent splice. @@ -189,18 +189,18 @@ splice .\"O .B TCP_CORK .\"O in .\"O .BR tcp (7)) -¤³¤Î¸å¤Î splice ¤Ç¤µ¤é¤ËžÁ÷¤µ¤ì¤ë¥Ç¡¼¥¿¤¬¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ -¤³¤Î¥Õ¥é¥°¤Ï +この後の splice でさらに転送されるデータがあることを示す。 +このフラグは .I fd_out -¤¬¥½¥±¥Ã¥È¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¤ËÍ­ÍѤʥҥó¥È¤È¤Ê¤ë +がソケットを参照している場合に有用なヒントとなる .RB ( send (2) -¤Î +の .B MSG_MORE -¤ä +や .BR tcp (7) -¤Î +の .B TCP_CORK -¤ÎÀâÌÀ¤â»²¾È)¡£ +の説明も参照)。 .TP .B SPLICE_F_GIFT .\"O Unused for @@ -208,11 +208,11 @@ splice .\"O see .\"O .BR vmsplice (2). .BR splice () -¤Ç¤Ï»ÈÍѤ·¤Ê¤¤¡£ +では使用しない。 .BR vmsplice (2) -»²¾È¡£ +参照。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O Upon successful completion, .\"O .BR splice () .\"O returns the number of bytes @@ -221,33 +221,33 @@ splice .\"O and it would not make sense to block, because there are no .\"O writers connected to the write end of the pipe referred to by .\"O .IR fd_in . -À®¸ù¤·¤Æ´°Î»¤¹¤ë¤È¡¢ +成功して完了すると、 .BR splice () -¤Ï¥Ñ¥¤¥×¤«¤é½Ð¤·Æþ¤ì¤·¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -ÊÖ¤êÃÍ 0 ¤Ï¥Ç¡¼¥¿¤ÎžÁ÷¤¬¹Ô¤ï¤Ê¤«¤Ã¤¿¤³¤È¤ò¼¨¤¹¡£ -¤³¤Î¾ì¹ç¡¢½èÍý¤òÄä»ß (block) ¤·¤Æ¤â̵°ÕÌ£¤Ç¤¢¤ë¡£ -¤Ê¤¼¤Ê¤é¡¢ +はパイプから出し入れしたバイト数を返す。 +返り値 0 はデータの転送が行わなかったことを示す。 +この場合、処理を停止 (block) しても無意味である。 +なぜなら、 .I fd_in -¤¬»²¾È¤¹¤ë¥Ñ¥¤¥×¤Î½ñ¤­¹þ¤ß¦¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¼Ô¤¬¤¤¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +が参照するパイプの書き込み側に接続されている者がいないからである。 .PP .\"O On error, .\"O .BR splice () .\"O returns \-1 and .\"O .I errno .\"O is set to indicate the error. -¥¨¥é¡¼¤Î¾ì¹ç¡¢ +エラーの場合、 .BR splice () -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O One or both file descriptors are not valid, .\"O or do not have proper read-write mode. -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î°ìÊý¤Þ¤¿¤ÏξÊý¤¬Í­¸ú¤Ç¤Ï¤Ê¤¤¡¢ -¤â¤·¤¯¤ÏŬÀÚ¤Ê read-write ¥â¡¼¥É¤Ç¤Ï¤Ê¤¤¡£ +ファイルディスクリプタの一方または両方が有効ではない、 +もしくは適切な read-write モードではない。 .TP .B EINVAL .\"O Target file system doesn't support splicing; @@ -256,16 +256,16 @@ splice .\"O .\" splice() in append mode was broken .\"O neither of the descriptors refers to a pipe; or .\"O offset given for nonseekable device. -ÂоݤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ splice ¤ËÂбþ¤·¤Æ¤¤¤Ê¤¤¡¢ -¤Þ¤¿¤ÏÂоݤΥե¡¥¤¥ë¤¬Äɵ­¥â¡¼¥É¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¡¢ -.\" Äɵ­¥â¡¼¥É¤Ç¤Î¥¨¥é¡¼¤Ï 2.6.27 °Ê¹ß¤ÇȯÀ¸¤¹¤ë¡£ -.\" ¤½¤ì¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤ÏÄɵ­¥â¡¼¥É¤Ç¤Î splice() ¤ÏÀµ¤·¤¯Æ°ºî¤·¤Ê¤¤¡£ -¤Þ¤¿¤Ï¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤É¤Á¤é¤â¥Ñ¥¤¥×¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡¢ -¤Þ¤¿¤Ï seek ¤Ç¤­¤Ê¤¤¥Ç¥Ð¥¤¥¹¤ËÂФ·¤Æ¥ª¥Õ¥»¥Ã¥È¤¬»ØÄꤵ¤ì¤¿¡£ +対象のファイルシステムが splice に対応していない、 +または対象のファイルが追記モードでオープンされている、 +.\" 追記モードでのエラーは 2.6.27 以降で発生する。 +.\" それより前のカーネルでは追記モードでの splice() は正しく動作しない。 +またはディスクリプタのどちらもパイプを参照していない、 +または seek できないデバイスに対してオフセットが指定された。 .TP .B ENOMEM .\"O Out of memory. -¥á¥â¥êÉÔ­¡£ +メモリ不足。 .TP .B ESPIPE .\"O Either @@ -274,23 +274,23 @@ splice .\"O .I off_out .\"O was not NULL, but the corresponding file descriptor refers to a pipe. .I off_in -¤« +か .I off_out -¤Î¤¤¤º¤ì¤«¤¬ NULL ¤Ç¤Ï¤Ê¤¤¤¬¡¢Âбþ¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ -¥Ñ¥¤¥×¤ò»²¾È¤·¤Æ¤¤¤ë¡£ +のいずれかが NULL ではないが、対応するファイルディスクリプタが +パイプを参照している。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The .\"O .BR splice () .\"O system call first appeared in Linux 2.6.17. .BR splice () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 2.6.17 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +システムコールは Linux 2.6.17 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This system call is Linux-specific. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ +このシステムコールは Linux 固有である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The three system calls .\"O .BR splice (), .\"O .BR vmsplice (2), @@ -299,29 +299,29 @@ splice .\"O provide userspace programs with full control over an arbitrary .\"O kernel buffer, implemented within the kernel using the same type .\"O of buffer that is used for a pipe. -3 ¤Ä¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë +3 つのシステムコール .RB ( splice (), .BR vmsplice (2), .BR tee (2)) -¤ò»È¤¦¤È¡¢¥æ¡¼¥¶¶õ´Ö¥×¥í¥°¥é¥à¤ÏǤ°Õ¤Î¥«¡¼¥Í¥ë¥Ð¥Ã¥Õ¥¡¤ËÂФ¹¤ë -´°Á´¤ÊÀ©¸æ¤¬¤Ç¤­¤ë¡£¥«¡¼¥Í¥ë¥Ð¥Ã¥Õ¥¡¤Ï¡¢¥Ñ¥¤¥×¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë¤Î¤È -Ʊ¼ï¤Î¥Ð¥Ã¥Õ¥¡¤ò»È¤Ã¤Æ¥«¡¼¥Í¥ëÆâ¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +を使うと、ユーザ空間プログラムは任意のカーネルバッファに対する +完全な制御ができる。カーネルバッファは、パイプに使用されているのと +同種のバッファを使ってカーネル内に実装されている。 .\"O In overview, these system calls perform the following tasks: -Âç¤Þ¤«¤Ë¤¤¤¦¤È¡¢¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï°Ê²¼¤Î»Å»ö¤ò¹Ô¤¦: +大まかにいうと、これらのシステムコールは以下の仕事を行う: .TP 1.2i .BR splice () .\"O moves data from the buffer to an arbitrary file descriptor, or vice versa, .\"O or from one buffer to another. -¥Ð¥Ã¥Õ¥¡¤«¤éǤ°Õ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ä¡¢¤½¤ÎµÕÊý¸þ¡¢ -¤â¤·¤¯¤Ï¤¢¤ë¥Ð¥Ã¥Õ¥¡¤«¤éÊ̤ΥХåե¡¤Ø¤Î¡¢¥Ç¡¼¥¿°ÜÆ°¤ò¹Ô¤¦¡£ +バッファから任意のファイルディスクリプタや、その逆方向、 +もしくはあるバッファから別のバッファへの、データ移動を行う。 .TP .BR tee (2) .\"O "copies" the data from one buffer to another. -¤¢¤ë¥Ð¥Ã¥Õ¥¡¤«¤éÊ̤ΥХåե¡¤Ø¤Î¥Ç¡¼¥¿¡Ö¥³¥Ô¡¼¡×¤ò¹Ô¤¦¡£ +あるバッファから別のバッファへのデータ「コピー」を行う。 .TP .BR vmsplice (2) .\"O "copies" data from user space into the buffer. -¥æ¡¼¥¶¶õ´Ö¤«¤é¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ç¡¼¥¿¡Ö¥³¥Ô¡¼¡×¤ò¹Ô¤¦¡£ +ユーザ空間からバッファへのデータ「コピー」を行う。 .PP .\"O Though we talk of copying, actual copies are generally avoided. .\"O The kernel does this by implementing a pipe buffer as a set @@ -330,13 +330,13 @@ splice .\"O pointers (for the output buffer) referring to the pages, .\"O and increasing the reference counts for the pages: .\"O only pointers are copied, not the pages of the buffer. -¤³¤³¤Ç¤Ï¥³¥Ô¡¼¤ÎÏäò¤·¤Æ¤¤¤ë¤¬¡¢¼ÂºÝ¤Î¥³¥Ô¡¼¤Ï°ìÈÌŪ¤Ë²óÈò¤µ¤ì¤ë¡£ -¥«¡¼¥Í¥ë¤Ï¡¢¥Ñ¥¤¥×¡¦¥Ð¥Ã¥Õ¥¡¤ò¥«¡¼¥Í¥ë¥á¥â¥ê¤Î¥Ú¡¼¥¸¤Ø¤Î¥Ý¥¤¥ó¥¿½¸¹ç¤È¤·¤Æ -¼ÂÁõ¤·¡¢¥Ú¡¼¥¸¤Ø¤Î»²¾È²ó¿ô¤ò´ÉÍý¤¹¤ë¤³¤È¤Ç¡¢¤³¤ì¤ò¼Â¸½¤·¤Æ¤¤¤ë¡£ -¥«¡¼¥Í¥ë¤Ï¡¢ÂоݤȤʤë¥Ú¡¼¥¸¤ò»²¾È¤¹¤ë (½ÐÎϥХåե¡ÍѤÎ) ¥Ý¥¤¥ó¥¿¤ò -¿·µ¬¤ËºîÀ®¤¹¤ë¤³¤È¤Ç¥Ð¥Ã¥Õ¥¡Æâ¤Î¥Ú¡¼¥¸¤Î¡Ö¥³¥Ô¡¼¡×¤òºîÀ®¤·¡¢ -¤½¤Î¥Ú¡¼¥¸¤Î»²¾È²ó¿ô¤òÁý¤ä¤¹¡£¤Ä¤Þ¤ê¡¢¥Ý¥¤¥ó¥¿¤À¤±¤¬¥³¥Ô¡¼¤µ¤ì¡¢ -¥Ð¥Ã¥Õ¥¡¤Î¥Ú¡¼¥¸¤Ï¥³¥Ô¡¼¤µ¤ì¤Ê¤¤¡£ +ここではコピーの話をしているが、実際のコピーは一般的に回避される。 +カーネルは、パイプ・バッファをカーネルメモリのページへのポインタ集合として +実装し、ページへの参照回数を管理することで、これを実現している。 +カーネルは、対象となるページを参照する (出力バッファ用の) ポインタを +新規に作成することでバッファ内のページの「コピー」を作成し、 +そのページの参照回数を増やす。つまり、ポインタだけがコピーされ、 +バッファのページはコピーされない。 .\" .\" Linus: Now, imagine using the above in a media server, for example. .\" Let's say that a year or two has passed, so that the video drivers @@ -361,13 +361,13 @@ splice .\" users - for things like logging etc.). .\" .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O See .\"O .BR tee (2). .BR tee (2) -»²¾È¡£ +参照。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sendfile (2), .BR tee (2), .BR vmsplice (2) diff --git a/draft/man2/spu_create.2 b/draft/man2/spu_create.2 index 7939a7a9..8d499622 100644 --- a/draft/man2/spu_create.2 +++ b/draft/man2/spu_create.2 @@ -28,11 +28,11 @@ .\" .TH SPU_CREATE 2 2007-07-10 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O spu_create \- create a new spu context -spu_create \- ¿·¤·¤¤ SPU ¥³¥ó¥Æ¥­¥¹¥È¤òÀ¸À®¤¹¤ë +spu_create \- 新しい SPU コンテキストを生成する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -40,7 +40,7 @@ spu_create \- .BI "int spu_create(const char *" pathname ", int " flags ", mode_t " mode ");" .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR spu_create () .\"O system call is used on PowerPC machines that implement the @@ -60,21 +60,21 @@ spu_create \- .\"O and it is populated with the files described in .\"O .BR spufs (7). .BR spu_create () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢Cell Broadband Engine ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ò¼ÂÁõ¤·¤¿ -PowerPC ¥Þ¥·¥ó¤Ë¤ª¤¤¤Æ¡¢Synergistic Processor Unit (SPU) ¤Ë¥¢¥¯¥»¥¹¤¹¤ë -¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢SPU ¤ËÂФ¹¤ë¿·¤·¤¤ÏÀÍý¥³¥ó¥Æ¥­¥¹¥È¤ò +システムコールは、Cell Broadband Engine アーキテクチャを実装した +PowerPC マシンにおいて、Synergistic Processor Unit (SPU) にアクセスする +ために使用される。 +このシステムコールは、SPU に対する新しい論理コンテキストを .I pathname -¤ËÀ¸À®¤·¡¢¤½¤Î¥³¥ó¥Æ¥­¥¹¥È¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ +に生成し、そのコンテキストに関連付けられたファイルディスクリプタを返す。 .I pathname -¤Ï SPU ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à (SPUFS) ¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥ÈÆâ¤Î -¸ºß¤·¤Ê¤¤¥Ç¥£¥ì¥¯¥È¥ê¤ò»Ø¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は SPU ファイルシステム (SPUFS) のマウントポイント内の +存在しないディレクトリを指していなければならない。 .BR spu_create () -¤¬À®¸ù¤¹¤ë¤È¡¢ +が成功すると、 .I pathname -¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤¬À¸À®¤µ¤ì¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë +にディレクトリが生成され、そのディレクトリに .BR spufs (7) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë·²¤¬ÇÛÃÖ¤µ¤ì¤ë¡£ +で説明されているファイル群が配置される。 .\"O The returned file handler can only be passed to .\"O .BR spu_run (2) @@ -85,23 +85,23 @@ PowerPC .\"O all the file descriptors pointing to files inside it. .\"O When an SPU context is destroyed all its directory entries in the .\"O SPUFS are removed. -ÊÖ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥é¤Ï¡¢ +返されたファイルハンドラは、 .BR spu_run (2) -¤ËÅϤ¹¤«¡¢¥¯¥í¡¼¥º¤¹¤ë¤«¤·¤«¤Ç¤­¤Ê¤¤¡£ -¾¤ÎÁàºî¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -ÏÀÍý SPU ¥³¥ó¥Æ¥­¥¹¥È¤¬ÇË´þ¤µ¤ì¤ë¤Î¤Ï¡¢ -¥³¥ó¥Æ¥­¥¹¥È¼«¿È¤Ø¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥¯¥í¡¼¥º¤µ¤ì¡¢ -¤½¤ÎÃæ¤Î¥Õ¥¡¥¤¥ë¤Ø¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Á´¤Æ¥¯¥í¡¼¥º¤µ¤ì¤¿¤È¤­¤Ç¤¢¤ë¡£ -SPU ¥³¥ó¥Æ¥­¥¹¥È¤¬ÇË´þ¤µ¤ì¤ë¤È¡¢SPUFS Æâ¤Î¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ÎÁ´¤Æ¤Î¥¨¥ó¥È¥ê -¤¬ºï½ü¤µ¤ì¤ë¡£ +に渡すか、クローズするかしかできない。 +他の操作は定義されていない。 +論理 SPU コンテキストが破棄されるのは、 +コンテキスト自身へのファイルディスクリプタがクローズされ、 +その中のファイルへのファイルディスクリプタが全てクローズされたときである。 +SPU コンテキストが破棄されると、SPUFS 内のそのディレクトリの全てのエントリ +が削除される。 .\"O The argument .\"O .I flags .\"O can be zero or the following .\"O constant: -°ú¤­¿ô +引き数 .I flags -¤Ë¤Ï¥¼¥í¤«°Ê²¼¤ÎÄê¿ô¤ò»ØÄê¤Ç¤­¤ë¡£ +にはゼロか以下の定数を指定できる。 .TP .B SPU_RAWIO .\"O Allow mapping of some of the hardware registers of the SPU into user @@ -109,10 +109,10 @@ SPU .\"O This flag requires the .\"O .B CAP_SYS_RAWIO .\"O capability. -SPU ¤Î¥Ï¡¼¥É¥¦¥§¥¢¥ì¥¸¥¹¥¿¤Î¤¤¤¯¤Ä¤«¤ò¥æ¡¼¥¶¶õ´Ö¤Ë¥Þ¥Ã¥Ô¥ó¥°¤¹¤ë¤³¤È¤ò -µö²Ä¤¹¤ë¡£¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤Ë¤Ï +SPU のハードウェアレジスタのいくつかをユーザ空間にマッピングすることを +許可する。このフラグを指定するには .B CAP_SYS_RAWIO -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティが必要である。 .PP .\"O The new directory and files are created in the SPUFS with the .\"O permissions set by the @@ -121,130 +121,130 @@ SPU .\"O .BR umask (2). .\"O The actual permissions set for each file also depend on whether the .\"O file supports read and/or write accesses. -SPUFS Æâ¤Ë¿·¤·¤¯À¸À®¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤È¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹µö²Ä¤Ï¡¢ +SPUFS 内に新しく生成されたディレクトリとファイルのアクセス許可は、 .I mode -°ú¤­¿ô¤«¤é¤½¤Î¥×¥í¥»¥¹¤Î +引き数からそのプロセスの .BR umask (2) -¤ò°ú¤¤¤¿ÃͤËÀßÄꤵ¤ì¤ë¡£ -³Æ¥Õ¥¡¥¤¥ë¤Î¼ÂºÝ¤Î¥¢¥¯¥»¥¹µö²Ä¤Ï¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤¬Æɤ߽Ф·¥¢¥¯¥»¥¹¤ä -½ñ¤­¹þ¤ß¥¢¥¯¥»¥¹¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤«¤â¹Íθ¤·¤Æ·è¤Þ¤ë¡£ +を引いた値に設定される。 +各ファイルの実際のアクセス許可は、そのファイルが読み出しアクセスや +書き込みアクセスをサポートしているかも考慮して決まる。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR spu_create (2) .\"O returns a new file descriptor. .\"O On error, \-1 is returned and .\"O .I errno .\"O is set to one of the error codes listed below. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR spu_create (2) -¤Ï¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は新しいファイルディスクリプタを返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë°Ê²¼¤Î¥ê¥¹¥È¤Ëµ­ºÜ¤Î¥¨¥é¡¼¥³¡¼¥É¤Î¤¤¤º¤ì¤«¤òÀßÄꤹ¤ë¡£ +に以下のリストに記載のエラーコードのいずれかを設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O The current user does not have write access to the SPUFS mount point. -¸½ºß¤Î¥æ¡¼¥¶¤¬ SPUFS ¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ø¤Î½ñ¤­¹þ¤ßµö²Ä¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +現在のユーザが SPUFS のマウントポイントへの書き込み許可を持っていない。 .TP .B EEXIST .\"O An SPU context already exists in the given path name. -»ØÄꤵ¤ì¤¿¥Ñ¥¹Ì¾¤Î SPU ¥³¥ó¥Æ¥­¥¹¥È¤¬¤¹¤Ç¤ËÀ¸À®¤µ¤ì¤Æ¤¤¤ë¡£ +指定されたパス名の SPU コンテキストがすでに生成されている。 .TP .B EFAULT .\"O .I pathname .\"O is not a valid string pointer in the current address space. .I pathname -¤¬¸½ºß¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ÇÍ­¸ú¤Êʸ»úÎó¥Ý¥¤¥ó¥¿¤Ç¤Ï¤Ê¤¤¡£ +が現在のアドレス空間で有効な文字列ポインタではない。 .TP .B EINVAL .\"O .I pathname .\"O is not a directory in the SPUFS mount point. .I pathname -¤¬ SPUFS ¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥¿Æâ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£ +が SPUFS マウントポインタ内のディレクトリではない。 .TP .B ELOOP .\"O Too many symlinks were found while resolving .\"O .IR pathname . .I pathname -¤ò²ò·è¤¹¤ë¤Þ¤Ç¤Ëé¤Ã¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬Â¿²á¤®¤¿¡£ +を解決するまでに辿ったシンボリックリンクが多過ぎた。 .TP .B EMFILE .\"O The process has reached its maximum open files limit. -¤½¤Î¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¿ô¤Î¾å¸Â¤Ë㤷¤Æ¤¤¤¿¡£ +そのプロセスがオープンできるファイル数の上限に達していた。 .TP .B ENAMETOOLONG .\"O .I pathname .\"O is too long. .I pathname -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENFILE .\"O The system has reached the global open files limit. -¥·¥¹¥Æ¥àÁ´ÂΤǥª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¿ô¤Î¾å¸Â¤Ë㤷¤Æ¤¤¤¿¡£ +システム全体でオープンできるファイル数の上限に達していた。 .TP .B ENOENT .\"O Part of .\"O .I pathname .\"O could not be resolved. .I pathname -¤Î°ìÉô¤¬²ò·è¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +の一部が解決できなかった。 .TP .B ENOMEM .\"O The kernel could not allocate all resources required. -¥«¡¼¥Í¥ë¤¬É¬Íפʥ꥽¡¼¥¹¤ÎÁ´¤Æ¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +カーネルが必要なリソースの全てを割り当てることができなかった。 .TP .B ENOSPC .\"O There are not enough SPU resources available to create .\"O a new context or the user specific limit for the number .\"O of SPU contexts has been reached. -¿·¤·¤¤¥³¥ó¥Æ¥­¥¹¥È¤òÀ¸À®¤¹¤ë¤Î¤Ë½½Ê¬¤Ê SPU ¥ê¥½¡¼¥¹¤¬¤Ê¤«¤Ã¤¿¡¢ -¤Þ¤¿¤Ï SPU ¥³¥ó¥Æ¥­¥¹¥È¿ô¤¬¤½¤Î¥æ¡¼¥¶¤ÎÆÃÄê¤Î¾å¸Â¤Ë㤷¤Æ¤¤¤¿¡£ +新しいコンテキストを生成するのに十分な SPU リソースがなかった、 +または SPU コンテキスト数がそのユーザの特定の上限に達していた。 .TP .B ENOSYS .\"O The functionality is not provided by the current system, because .\"O either the hardware does not provide SPUs or the spufs module is not .\"O loaded. -µ¡Ç½¤¬Æ°ºîÃæ¤Î¥·¥¹¥Æ¥à¤ÇÄ󶡤µ¤ì¤Æ¤¤¤Ê¤¤¡£Íýͳ¤Ï¡¢ -¥Ï¡¼¥É¥¦¥§¥¢¤Ç SPU ¤¬Ä󶡤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ -spufs ¥â¥¸¥å¡¼¥ë¤¬¥í¡¼¥É¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢¤Î¤É¤Á¤é¤«¤Ç¤¢¤ë¡£ +機能が動作中のシステムで提供されていない。理由は、 +ハードウェアで SPU が提供されていないか、 +spufs モジュールがロードされていないか、のどちらかである。 .TP .B ENOTDIR .\"O A part of .\"O .I pathname .\"O is not a directory. .I pathname -¤Î°ìÉô¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£ +の一部がディレクトリではない。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .\"O .I pathname .\"O must point to a location beneath the mount point of the SPUFS. .\"O By convention, it gets mounted in .\"O .IR /spu . .I pathname -¤Ï SPUFS ¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ÎÇÛ²¼¤Î¾ì½ê¤ò»Ø¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -´·Îã¤Ç¤Ï¡¢SPUFS ¤Ï +は SPUFS のマウントポイントの配下の場所を指していなければならない。 +慣例では、SPUFS は .I /spu -¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤ë¡£ +にマウントされる。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The .\"O .BR spu_create (2) .\"O system call was added to Linux in kernel 2.6.16. .BR spu_create (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë 2.6.16 ¤Ç Linux ¤ËÄɲ䵤줿¡£ +システムコールはカーネル 2.6.16 で Linux に追加された。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O This call is Linux specific and only implemented by the ppc64 .\"O architecture. .\"O Programs using this system call are not portable. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢ -ppc64 ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Î¤ß¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤¿¥×¥í¥°¥é¥à¤Ï°Ü¿¢À­¤¬¤Ê¤¤¡£ +このシステムコールは Linux 固有であり、 +ppc64 アーキテクチャでのみ実装されている。 +このシステムコールを使ったプログラムは移植性がない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Glibc does not provide a wrapper for this system call; call it using .\"O .BR syscall (2). .\"O Note however, that @@ -254,23 +254,23 @@ ppc64 .\"O See .\"O .I http://www.bsc.es/projects/deepcomputing/linuxoncell/ .\"O for the recommended libraries. -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +glibc はこのシステムコールに対するラッパー関数を提供していない。 .BR syscall (2) -¤ò»È¤¦¤³¤È¡£¤¿¤À¤·¡¢ +を使うこと。ただし、 .BR spu_create () -¤Ï ¤è¤êÃê¾ÝÅ٤ι⤤ SPU ¤Ø¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò¼ÂÁõ¤¹¤ë¥é¥¤¥Ö¥é¥ê¤«¤é -ÍøÍѤµ¤ì¤ë¤³¤È¤ò°Õ¿Þ¤·¤¿¤â¤Î¤Ç¤¢¤ê¡¢Ä̾ï¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é -»ÈÍѤϰտޤµ¤ì¤Æ¤¤¤Ê¤¤¡£¿ä¾©¤Î¥é¥¤¥Ö¥é¥ê¤Ë¤Ä¤¤¤Æ¤Ï +は より抽象度の高い SPU へのインタフェースを実装するライブラリから +利用されることを意図したものであり、通常のアプリケーションから +使用は意図されていない。推奨のライブラリについては .I http://www.bsc.es/projects/deepcomputing/linuxoncell/ -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O The code does not yet fully implement all features outlined here. -¼ÂºÝ¤Î¥³¡¼¥É¤Ç¤Ï¤³¤³¤Ç½Ò¤Ù¤¿Á´¤Æ¤Îµ¡Ç½¤¬´°Á´¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ +実際のコードではここで述べた全ての機能が完全に実装されているわけではない。 .\" .SH AUTHOR .\" Arnd Bergmann .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR close (2), .BR spu_run (2), .BR capabilities (7), diff --git a/draft/man2/spu_run.2 b/draft/man2/spu_run.2 index 9022cdc0..9caf586e 100644 --- a/draft/man2/spu_run.2 +++ b/draft/man2/spu_run.2 @@ -29,11 +29,11 @@ .\" .TH SPU_RUN 2 2007-11-25 Linux "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O spu_run \- execute an SPU context -spu_run \- SPU ¥³¥ó¥Æ¥­¥¹¥È¤ò¼Â¹Ô¤¹¤ë +spu_run \- SPU コンテキストを実行する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include @@ -41,7 +41,7 @@ spu_run \- SPU ", unsigned int *" event ");" .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR spu_run () .\"O system call is used on PowerPC machines that implement the @@ -56,17 +56,17 @@ spu_run \- SPU .\"O it starts execution at the instruction pointer passed in .\"O .IR npc . .BR spu_run () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢Cell Broadband Engine ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ò¼ÂÁõ¤·¤¿ -PowerPC ¥Þ¥·¥ó¤Ç Synergistic Processor Units (SPU) ¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Ë -»ÈÍѤµ¤ì¤ë¡£ +システムコールは、Cell Broadband Engine アーキテクチャを実装した +PowerPC マシンで Synergistic Processor Units (SPU) にアクセスするために +使用される。 .I fd -°ú¤­¿ô¤Ï¡¢ +引き数は、 .BR spu_create (2) -¤¬ÊÖ¤¹¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¡¢ -ÆÃÄê¤Î SPU ¥³¥ó¥Æ¥­¥¹¥È¤ò»²¾È¤¹¤ë¡£ -¤½¤Î¥³¥ó¥Æ¥­¥¹¥È¤¬ÊªÍý SPU ¤Ë³ä¤êÅö¤Æ¤é¤ì¤ë¤È¡¢ +が返すファイルディスクリプタで、 +特定の SPU コンテキストを参照する。 +そのコンテキストが物理 SPU に割り当てられると、 .I npc -¤ÇÅϤµ¤ì¤¿Ì¿Îá¥Ý¥¤¥ó¥¿ (instruction pointer) ¤«¤é¼Â¹Ô¤¬³«»Ï¤µ¤ì¤ë¡£ +で渡された命令ポインタ (instruction pointer) から実行が開始される。 .\"O Execution of SPU code happens synchronously, meaning that .\"O .BR spu_run () @@ -76,14 +76,14 @@ PowerPC .\"O main CPU or other SPUs, a new thread of execution must be created .\"O first (e.g., using .\"O .BR pthread_create (3)). -SPU ¥³¡¼¥É¤Î¼Â¹Ô¤ÏƱ´üŪ (synchronously) ¤Ë¹Ô¤ï¤ì¤ë¡¢¤Ä¤Þ¤ê -SPU ¤¬¼Â¹ÔÃæ¤Ï +SPU コードの実行は同期的 (synchronously) に行われる、つまり +SPU が実行中は .BR spu_run () -¤ÏÄä»ß (block) ¤¹¤ë¡£ -SPU ¥³¡¼¥É¤Î¼Â¹Ô¤ò¥á¥¤¥ó CPU ¤ä¾¤Î SPU ¤ÈʹԤ·¤Æ¹Ô¤¦É¬Íפ¬¤¢¤ë¾ì¹ç¤Ï¡¢ -ºÇ½é¤Ë¡¢¤½¤Î SPU ¥³¡¼¥É¤ò¼Â¹Ô¤¹¤ë¿·¤·¤¤¥¹¥ì¥Ã¥É¤ò¡¢(Î㤨¤Ð +は停止 (block) する。 +SPU コードの実行をメイン CPU や他の SPU と並行して行う必要がある場合は、 +最初に、その SPU コードを実行する新しいスレッドを、(例えば .BR pthread_create (3) -¤Ê¤É¤ò»È¤Ã¤Æ) À¸À®¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +などを使って) 生成しなければならない。 .\"O When .\"O .BR spu_run () @@ -95,14 +95,14 @@ SPU .\"O .I npc .\"O pointer. .BR spu_run () -¤¬ÊÖ¤ë¤È¤­¤Ë¤Ï¡¢SPU ¤Î¥×¥í¥°¥é¥à¥«¥¦¥ó¥¿¤Î¸½ºßÃͤ¬ +が返るときには、SPU のプログラムカウンタの現在値が .I npc -¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢Ï¢Â³¤¹¤ë +に書き込まれる。 +これにより、連続する .BR spu_run () -¤Î¸Æ¤Ó½Ð¤·¤ÇƱ¤¸ +の呼び出しで同じ .I npc -¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +ポインタを使うことができる。 .\"O The .\"O .I event @@ -114,43 +114,43 @@ SPU .\"O .BR spu_run () .\"O returns. .I event -°ú¤­¿ô¤Ë¤Ï¡¢³ÈÄ¥¥¹¥Æ¡¼¥¿¥¹¥³¡¼¥ÉÍѤΥХåե¡¤ò»ØÄꤹ¤ë¡£ +引き数には、拡張ステータスコード用のバッファを指定する。 .B SPU_CREATE_EVENTS_ENABLED -¥Õ¥é¥°ÉÕ¤­¤Ç SPU ¥³¥ó¥Æ¥­¥¹¥È¤¬ºîÀ®¤µ¤ì¤ë¤È¡¢ +フラグ付きで SPU コンテキストが作成されると、 .BR spu_run () -¤¬ÊÖ¤ëÁ°¤Ë Linux ¥«¡¼¥Í¥ë¤Ë¤è¤ê¤³¤Î¥Ð¥Ã¥Õ¥¡¤Ë -³ÈÄ¥¥¹¥Æ¡¼¥¿¥¹¥³¡¼¥É¤¬³ÊǼ¤µ¤ì¤ë¡£ +が返る前に Linux カーネルによりこのバッファに +拡張ステータスコードが格納される。 .\"O The status code may be one (or more) of the following constants: -¥¹¥Æ¡¼¥¿¥¹¥³¡¼¥É¤Ë¤Ï°Ê²¼¤ÎÄê¿ô¤¬°ì¤Ä°Ê¾åÆþ¤ë¡£ +ステータスコードには以下の定数が一つ以上入る。 .TP .B SPE_EVENT_DMA_ALIGNMENT .\"O A DMA alignment error occurred. -DMA (direct memory access) ¤Î¥¢¥é¥¤¥á¥ó¥È¡¦¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +DMA (direct memory access) のアライメント・エラーが発生した。 .TP .B SPE_EVENT_INVALID_DMA .\"O An invalid MFC DMA command was attempted. -̵¸ú¤Ê MFC (Memory Flow Controller) DMA ¥³¥Þ¥ó¥É¤ò¹Ô¤ª¤¦¤È¤·¤¿¡£ +無効な MFC (Memory Flow Controller) DMA コマンドを行おうとした。 .TP .B SPE_EVENT_SPE_DATA_STORAGE .\"O A DMA storage error occurred. -DMA ¥¹¥È¥ì¡¼¥¸¡¦¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +DMA ストレージ・エラーが発生した。 .TP .B SPE_EVENT_SPE_ERROR .\"O An illegal instruction was executed. -ÉÔÀµ¤ÊÌ¿Î᤬¼Â¹Ô¤µ¤ì¤¿¡£ +不正な命令が実行された。 .PP .\"O NULL .\"O is a valid value for the .\"O .I event .\"O argument. .\"O In this case, the events will not be reported to the calling process. -NULL ¤Ï +NULL は .I event -°ú¤­¿ô¤È¤·¤ÆÍ­¸ú¤ÊÃͤǤ¢¤ë¡£ -¤³¤Î¾ì¹ç¡¢¥¤¥Ù¥ó¥È¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ËÊó¹ð¤µ¤ì¤Ê¤¤¡£ +引き数として有効な値である。 +この場合、イベントは呼び出し元のプロセスに報告されない。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR spu_run () .\"O returns the value of the @@ -159,14 +159,14 @@ NULL .\"O On error it returns \-1 and sets .\"O .I errno .\"O to one of the error codes listed below. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR spu_run () -¤Ï +は .I spu_status -¥ì¥¸¥¹¥¿¤ÎÃͤòÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +レジスタの値を返す。 +エラーの場合、\-1 を返し、 .I errno -¤ò²¼µ­¤Î¥¨¥é¡¼¥³¡¼¥É¤Î¤¤¤º¤ì¤«¤ËÀßÄꤹ¤ë¡£ +を下記のエラーコードのいずれかに設定する。 .\"O The .\"O .I spu_status @@ -177,69 +177,69 @@ NULL .\"O The bit masks for the status codes .\"O are: .I spu_status -¥ì¥¸¥¹¥¿¤ÎÃͤϡ¢¥¹¥Æ¡¼¥¿¥¹¥³¡¼¥É¤È SPU ¤Î +レジスタの値は、ステータスコードと SPU の .B stop-and-signal -Ì¿Î᤬ÊÖ¤¹ 14 ¥Ó¥Ã¥È¤Î¥³¡¼¥É¤Î -¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¹½À®¤µ¤ì¤ë¡£ -¸å¼Ô¤Î 14 ¥Ó¥Ã¥È¤Î¥³¡¼¥É¤Ï¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë¡£ -¥¹¥Æ¡¼¥¿¥¹¥³¡¼¥É¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ï²¼µ­¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +命令が返す 14 ビットのコードの +ビットマスクで構成される。 +後者の 14 ビットのコードはオプションである。 +ステータスコードのビットマスクは下記の通りである。 .TP .B 0x02 .\"O SPU was stopped by a .\"O .BR stop-and-signal .\"O instruction. -SPU ¤¬ +SPU が .B stop-and-signal -Ì¿Îá¤ÇÄä»ß¤·¤¿¡£ +命令で停止した。 .TP .B 0x04 .\"O SPU was stopped by a .\"O .BR halt .\"O instruction. -SPU ¤¬ -.B "halt (Ää»ß)" -Ì¿Îá¤Ç»ß¤Þ¤Ã¤¿¡£ +SPU が +.B "halt (停止)" +命令で止まった。 .TP .B 0x08 .\"O SPU is waiting for a channel. -SPU ¤Ï¥Á¥ã¥ó¥Í¥ë¤Î¥¦¥§¥¤¥ÈÃæ¤Ç¤¢¤ë¡£ +SPU はチャンネルのウェイト中である。 .TP .B 0x10 .\"O SPU is in single-step mode. -SPU ¤Ï¥·¥ó¥°¥ë¥¹¥Æ¥Ã¥×¥â¡¼¥É¤Ç¤¢¤Ã¤¿¡£ +SPU はシングルステップモードであった。 .TP .B 0x20 .\"O SPU has tried to execute an invalid instruction. -SPU ¤¬ÉÔÀµ¤ÊÌ¿Îá¤ò¼Â¹Ô¤·¤è¤¦¤È¤·¤¿¡£ +SPU が不正な命令を実行しようとした。 .TP .B 0x40 .\"O SPU has tried to access an invalid channel. -SPU ¤¬ÉÔÀµ¤Ê¥Á¥ã¥ó¥Í¥ë¤Ë¥¢¥¯¥»¥¹¤·¤è¤¦¤È¤·¤¿¡£ +SPU が不正なチャンネルにアクセスしようとした。 .TP .B 0x3fff0000 .\"O The bits masked with this value contain the code returned from a .\"O .BR stop-and-signal .\"O instruction. .\"O These bits are only valid if the 0x02 bit is set. -¤³¤ÎÃͤΥޥ¹¥¯¤òŬÍѤ·¤ÆÆÀ¤é¤ì¤¿¥Ó¥Ã¥ÈÃͤˤϡ¢ -stop-and-signal Ì¿Îᤫ¤éÊÖ¤µ¤ì¤¿¥³¡¼¥É¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Î¥Ó¥Ã¥È¤Ï 0x02 ¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£ +この値のマスクを適用して得られたビット値には、 +stop-and-signal 命令から返されたコードが入っている。 +これらのビットは 0x02 ビットがセットされている場合にのみ有効である。 .PP .\"O If .\"O .BR spu_run () .\"O has not returned an error, one or more bits among the lower eight .\"O ones are always set. .BR spu_run () -¤¬¥¨¥é¡¼¤òÊÖ¤µ¤Ê¤«¤Ã¤¿¾ì¹ç¡¢²¼°Ì 8 ¥Ó¥Ã¥È¤Î¤¦¤Á 1 ¤Ä°Ê¾å¤Ï -¾ï¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ +がエラーを返さなかった場合、下位 8 ビットのうち 1 つ以上は +常にセットされる。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O .I fd .\"O is not a valid file descriptor. .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B EFAULT .\"O .I npc @@ -247,9 +247,9 @@ stop-and-signal Ì¿ .\"O .I event .\"O is non-NULL and an invalid pointer. .I npc -¤¬Í­¸ú¤Ê¥Ý¥¤¥ó¥¿¤Ç¤Ê¤¤¡£¤Þ¤¿¤Ï +が有効なポインタでない。または .I event -¤¬ NULL °Ê³°¤Ç¡¢¤·¤«¤â̵¸ú¤Ê¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +が NULL 以外で、しかも無効なポインタである。 .TP .B EINTR .\"O A signal occurred while @@ -261,52 +261,52 @@ stop-and-signal Ì¿ .\"O value has been updated to the new program counter value if .\"O necessary. .BR spu_run () -¤Î¼Â¹ÔÃæ¤Ë¥·¥°¥Ê¥ë¤¬È¯À¸¤·¤¿¡£ +の実行中にシグナルが発生した。 .BR signal (7) -»²¾È¡£ -ɬÍפǤ¢¤ì¤Ð¡¢ +参照。 +必要であれば、 .I npc -¤ÎÃͤϿ·¤·¤¤¥×¥í¥°¥é¥à¥«¥¦¥ó¥¿¤ÎÃͤ˹¹¿·¤µ¤ì¤ë¡£ +の値は新しいプログラムカウンタの値に更新される。 .TP .B EINVAL .\"O .I fd .\"O is not a valid file descriptor returned from .\"O .BR spu_create (2). .I fd -¤¬ +が .BR spu_create (2) -¤¬ÊÖ¤·¤¿Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が返した有効なファイルディスクリプタでない。 .TP .B ENOMEM .\"O There was not enough memory available to handle a page fault .\"O resulting from a Memory Flow Controller (MFC) direct memory access. -Memory Flow Controller (MFC) DMA ¤Ë¤è¤êȯÀ¸¤·¤¿¥Ú¡¼¥¸¥Õ¥©¡¼¥ë¥È¤ò -½èÍý¤¹¤ë¤Î¤ËɬÍפʥá¥â¥ê¤¬¤Ê¤«¤Ã¤¿¡£ +Memory Flow Controller (MFC) DMA により発生したページフォールトを +処理するのに必要なメモリがなかった。 .TP .B ENOSYS .\"O The functionality is not provided by the current system, because .\"O either the hardware does not provide SPUs or the spufs module is not .\"O loaded. -µ¡Ç½¤¬Æ°ºîÃæ¤Î¥·¥¹¥Æ¥à¤ÇÄ󶡤µ¤ì¤Æ¤¤¤Ê¤¤¡£Íýͳ¤Ï¡¢ -¥Ï¡¼¥É¥¦¥§¥¢¤Ç SPU ¤¬Ä󶡤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ -spufs ¥â¥¸¥å¡¼¥ë¤¬¥í¡¼¥É¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢¤Î¤É¤Á¤é¤«¤Ç¤¢¤ë¡£ +機能が動作中のシステムで提供されていない。理由は、 +ハードウェアで SPU が提供されていないか、 +spufs モジュールがロードされていないか、のどちらかである。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The .\"O .BR spu_run () .\"O system call was added to Linux in kernel 2.6.16. .BR spu_run () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë 2.6.16 ¤Ç Linux ¤ËÄɲ䵤줿¡£ +システムコールはカーネル 2.6.16 で Linux に追加された。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O This call is Linux-specific and only implemented by the PowerPC .\"O architecture. .\"O Programs using this system call are not portable. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢ -PowerPC ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Î¤ß¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤¿¥×¥í¥°¥é¥à¤Ï°Ü¿¢À­¤¬¤Ê¤¤¡£ +このシステムコールは Linux 固有であり、 +PowerPC アーキテクチャでのみ実装されている。 +このシステムコールを使ったプログラムは移植性がない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Glibc does not provide a wrapper for this system call; call it using .\"O .BR syscall (2). .\"O Note however, that @@ -316,24 +316,24 @@ PowerPC .\"O See .\"O .I http://www.bsc.es/projects/deepcomputing/linuxoncell/ .\"O for the recommended libraries. -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +glibc はこのシステムコールに対するラッパー関数を提供していない。 .BR syscall (2) -¤ò»È¤¦¤³¤È¡£¤¿¤À¤·¡¢ +を使うこと。ただし、 .BR spu_run () -¤Ï ¤è¤êÃê¾ÝÅ٤ι⤤ SPU ¤Ø¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò¼ÂÁõ¤¹¤ë¥é¥¤¥Ö¥é¥ê¤«¤é -ÍøÍѤµ¤ì¤ë¤³¤È¤ò°Õ¿Þ¤·¤¿¤â¤Î¤Ç¤¢¤ê¡¢Ä̾ï¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é -»ÈÍѤϰտޤµ¤ì¤Æ¤¤¤Ê¤¤¡£¿ä¾©¤Î¥é¥¤¥Ö¥é¥ê¤Ë¤Ä¤¤¤Æ¤Ï +は より抽象度の高い SPU へのインタフェースを実装するライブラリから +利用されることを意図したものであり、通常のアプリケーションから +使用は意図されていない。推奨のライブラリについては .I http://www.bsc.es/projects/deepcomputing/linuxoncell/ -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The following is an example of running a simple, one-instruction SPU .\"O program with the .\"O .BR spu_run () .\"O system call. -°Ê²¼¤Ï¡¢´Êñ¤Ê 1 Ì¿Îá¤Î SPU ¥×¥í¥°¥é¥à¤ò +以下は、簡単な 1 命令の SPU プログラムを .BR spu_run () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤Æ¼Â¹Ô¤µ¤»¤ëÎã¤Ç¤¢¤ë¡£ +システムコールを使って実行させる例である。 .nf #include @@ -387,7 +387,7 @@ int main(void) .\" .SH AUTHORS .\" Arnd Bergmann , Jeremy Kerr .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR close (2), .BR spu_create (2), .BR capabilities (7), diff --git a/draft/man2/stat.2 b/draft/man2/stat.2 index 7f6ee796..0dd06f99 100644 --- a/draft/man2/stat.2 +++ b/draft/man2/stat.2 @@ -53,28 +53,28 @@ .\" Updated 2007-06-13, Akihiro MOTOKI, LDP v2.55 .\" Updated 2008-09-19, Akihiro MOTOKI, LDP v3.08 .\" -.\"WORD: status ¾õÂÖ -.\"WORD: directory ¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: open ¥ª¡¼¥×¥ó -.\"WORD: implement ¼ÂÁõ -.\"WORD: owner ½êÍ­¼Ô -.\"WORD: group ¥°¥ë¡¼¥× -.\"WORD: user ¥æ¡¼¥¶¡¼ -.\"WORD: other ¾¿Í -.\"WORD: hard link count ¥Ï¡¼¥É¡¦¥ê¥ó¥¯¿ô -.\"WORD: symbolic link ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: socket ¥½¥±¥Ã¥È -.\"WORD: device ¥Ç¥Ð¥¤¥¹ -.\"WORD: sticky bit ¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È -.\"WORD: mandatory locking ¶¯À©¥í¥Ã¥¯ +.\"WORD: status 状態 +.\"WORD: directory ディレクトリ +.\"WORD: open オープン +.\"WORD: implement 実装 +.\"WORD: owner 所有者 +.\"WORD: group グループ +.\"WORD: user ユーザー +.\"WORD: other 他人 +.\"WORD: hard link count ハード・リンク数 +.\"WORD: symbolic link シンボリック・リンク +.\"WORD: socket ソケット +.\"WORD: device デバイス +.\"WORD: sticky bit スティッキー・ビット +.\"WORD: mandatory locking 強制ロック .\" .TH STAT 2 2010-12-03 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O stat, fstat, lstat \- get file status -stat, fstat, lstat \- ¥Õ¥¡¥¤¥ë¤Î¾õÂÖ¤ò¼èÆÀ¤¹¤ë +stat, fstat, lstat \- ファイルの状態を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include @@ -90,15 +90,15 @@ stat, fstat, lstat \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR lstat (): _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .PP .\"O These functions return information about a file. .\"O No permissions are required on the file itself, but \(em in the case of @@ -109,17 +109,17 @@ _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 .\"O execute (search) permission is required on all of the directories in .\"O .I path .\"O that lead to the file. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÊÖ¤¹¡£ -¥Õ¥¡¥¤¥ë¤½¤Î¤â¤Î¤ËÂФ¹¤ë¥¢¥¯¥»¥¹µö²Ä¤ÏɬÍפȤ·¤Ê¤¤¤¬¡¢ +これらの関数はファイルについての情報を返す。 +ファイルそのものに対するアクセス許可は必要としないが、 \(em .BR stat () -¤È +と .BR lstat () -¤Î¾ì¹ç¤Ë¤Ï +の場合には \(em -¤½¤Î¥Õ¥¡¥¤¥ë¤Ø»ê¤ë +そのファイルへ至る .I path -¤ò¹½À®¤¹¤ëÁ´¤Æ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ¹¤ë¼Â¹Ô (¸¡º÷) µö²Ä¤¬É¬ÍפǤ¢¤ë¡£ +を構成する全てのディレクトリに対する実行 (検索) 許可が必要である。 .PP .\"O .BR stat () .\"O stats the file pointed to by @@ -127,11 +127,11 @@ _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 .\"O and fills in .\"O .IR buf . .BR stat () -¤Ï +は .I path -¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¾õÂÖ¤ò¼èÆÀ¤·¤Æ +で指定されたファイルの状態を取得して .I buf -¤Ø³ÊǼ¤¹¤ë¡£ +へ格納する。 .\"O .BR lstat () .\"O is identical to @@ -141,12 +141,12 @@ _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 .\"O is a symbolic link, then the link itself is stat-ed, .\"O not the file that it refers to. .BR lstat () -¤Ï +は .BR stat () -¤ÈƱ¤¸¤Ç¤¢¤ë¤¬¡¢ +と同じであるが、 .I path -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¡¢¥ê¥ó¥¯¤¬»²¾È¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Ç¤Ï¤Ê¤¯¡¢ -¥ê¥ó¥¯¼«¿È¤Î¾õÂÖ¤ò¼èÆÀ¤¹¤ëÅÀ¤¬°Û¤Ê¤ë¡£ +がシンボリックリンクの場合、リンクが参照しているファイルではなく、 +リンク自身の状態を取得する点が異なる。 .\"O .BR fstat () .\"O is identical to @@ -154,21 +154,21 @@ _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 .\"O except that the file to be stat-ed is specified by the file descriptor .\"O .IR fd . .BR fstat () -¤Ï +は .BR stat () -¤ÈƱ¤¸¤À¤¬¡¢ -¾õÂÖ¤ò¼èÆÀ¤¹¤ë¥Õ¥¡¥¤¥ë¤ò¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿ +と同じだが、 +状態を取得するファイルをファイル・ディスクリプタ .I fd -¤Ç»ØÄꤹ¤ë¡£ +で指定する。 .PP .\"O All of these system calls return a .\"O .I stat .\"O structure, which contains the following fields: -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¤¤¤º¤ì¤â¡¢·ë²Ì¤ò +これらのシステムコールはいずれも、結果を .I stat -¹½Â¤ÂΤËÆþ¤ì¤ÆÊÖ¤¹¡£ +構造体に入れて返す。 .I stat -¹½Â¤ÂΤˤϰʲ¼¤Î¥Õ¥£¡¼¥ë¥É¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë: +構造体には以下のフィールドが含まれている: .PP .in +4n .nf @@ -186,20 +186,20 @@ struct stat { .\"O time_t st_atime; /* time of last access */ .\"O time_t st_mtime; /* time of last modification */ .\"O time_t st_ctime; /* time of last status change */ - dev_t st_dev; /* ¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¥Ç¥Ð¥¤¥¹¤Î ID */ - ino_t st_ino; /* inode ÈÖ¹æ */ - mode_t st_mode; /* ¥¢¥¯¥»¥¹Êݸî */ - nlink_t st_nlink; /* ¥Ï¡¼¥É¥ê¥ó¥¯¤Î¿ô */ - uid_t st_uid; /* ½êÍ­¼Ô¤Î¥æ¡¼¥¶ ID */ - gid_t st_gid; /* ½êÍ­¼Ô¤Î¥°¥ë¡¼¥× ID */ - dev_t st_rdev; /* ¥Ç¥Ð¥¤¥¹ ID (Æüì¥Õ¥¡¥¤¥ë¤Î¾ì¹ç) */ - off_t st_size; /* Á´ÂΤΥµ¥¤¥º (¥Ð¥¤¥Èñ°Ì) */ - blksize_t st_blksize; /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à I/O ¤Ç¤Î - ¥Ö¥í¥Ã¥¯¥µ¥¤¥º */ - blkcnt_t st_blocks; /* ³ä¤êÅö¤Æ¤é¤ì¤¿ 512B ¤Î¥Ö¥í¥Ã¥¯¿ô */ - time_t st_atime; /* ºÇ½ª¥¢¥¯¥»¥¹»þ¹ï */ - time_t st_mtime; /* ºÇ½ª½¤Àµ»þ¹ï */ - time_t st_ctime; /* ºÇ½ª¾õÂÖÊѹ¹»þ¹ï */ + dev_t st_dev; /* ファイルがあるデバイスの ID */ + ino_t st_ino; /* inode 番号 */ + mode_t st_mode; /* アクセス保護 */ + nlink_t st_nlink; /* ハードリンクの数 */ + uid_t st_uid; /* 所有者のユーザ ID */ + gid_t st_gid; /* 所有者のグループ ID */ + dev_t st_rdev; /* デバイス ID (特殊ファイルの場合) */ + off_t st_size; /* 全体のサイズ (バイト単位) */ + blksize_t st_blksize; /* ファイルシステム I/O での + ブロックサイズ */ + blkcnt_t st_blocks; /* 割り当てられた 512B のブロック数 */ + time_t st_atime; /* 最終アクセス時刻 */ + time_t st_mtime; /* 最終修正時刻 */ + time_t st_ctime; /* 最終状態変更時刻 */ }; .fi .in @@ -213,17 +213,17 @@ struct stat { .\"O .BR minor (3) .\"O macros may be useful to decompose the device ID in this field.) .I st_dev -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¥Ç¥Ð¥¤¥¹¤ò¼¨¤¹ -(¥Þ¥¯¥í +フィールドは、このファイルが存在するデバイスを示す +(マクロ .BR major (3), .BR minor (3) -¤Ï¡¢¤³¤Î¥Õ¥£¡¼¥ë¥É¤Î¥Ç¥Ð¥¤¥¹ ID ¤òʬ²ò¤¹¤ë¤Î¤ËÌòΩ¤Ä¤À¤í¤¦)¡£ +は、このフィールドのデバイス ID を分解するのに役立つだろう)。 .\"O The .\"O .I st_rdev .\"O field describes the device that this file (inode) represents. .I st_rdev -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë (inode) ¤¬É½¤¹¥Ç¥Ð¥¤¥¹¤ò¼¨¤¹¡£ +フィールドは、このファイル (inode) が表すデバイスを示す。 .\"O The .\"O .I st_size @@ -232,10 +232,10 @@ struct stat { .\"O The size of a symlink is the length of the pathname .\"O it contains, without a trailing null byte. .I st_size -¥Õ¥£¡¼¥ë¥É¤Ï¡¢(Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤«¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¤Ë) -¥Õ¥¡¥¤¥ë¤ÎÂ礭¤µ¤ò¥Ð¥¤¥Èñ°Ì¤Ç¼¨¤¹¡£ -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ÎÂ礭¤µ¤Ï¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë -¥Ñ¥¹Ì¾¤ÎŤµ (ºÇ¸å¤Î NULL ¥Ð¥¤¥È¤Ï´Þ¤Þ¤Ê¤¤) ¤Ç¤¢¤ë¡£ +フィールドは、(通常のファイルかシンボリックリンクの場合に) +ファイルの大きさをバイト単位で示す。 +シンボリックリンクの大きさは、シンボリックリンクに含まれている +パス名の長さ (最後の NULL バイトは含まない) である。 .\"O The .\"O .I st_blocks @@ -244,11 +244,11 @@ struct stat { .\"O .IR st_size /512 .\"O when the file has holes.) .I st_blocks -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥Õ¥¡¥¤¥ë¤ÎÂ礭¤µ¤ò 512 ¥Ð¥¤¥È¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥ºÃ±°Ì¤Ç¼¨¤¹ -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥Õ¥¡¥¤¥ë¤Ë³ä¤êÅö¤Æ¤µ¤ì¤¿¥Ö¥í¥Ã¥¯¿ô¤ò 512 ¥Ð¥¤¥Èñ°Ì¤Ç¼¨¤¹¡£ -(¥Õ¥¡¥¤¥ë¤Ë·ê¤¬¤¢¤ë¤è¤¦¤Ê¾ì¹ç¡¢¤³¤ÎÃÍ¤Ï +フィールドは、ファイルの大きさを 512 バイトのブロックサイズ単位で示す +フィールドは、ファイルに割り当てされたブロック数を 512 バイト単位で示す。 +(ファイルに穴があるような場合、この値は .IR st_size /512 -¤è¤ê¾®¤µ¤¯¤Ê¤ë¤³¤È¤â¤¢¤ë)¡£ +より小さくなることもある)。 .\"O The .\"O .I st_blksize @@ -256,9 +256,9 @@ struct stat { .\"O (Writing to a file in smaller chunks may cause .\"O an inefficient read-modify-rewrite.) .I st_blksize -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¸úΨŪ¤Ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à I/O ¤¬¤Ç¤­¤ë¡Ö¹¥¤Þ¤·¤¤¡× -¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ò¼¨¤¹ (¤â¤Ã¤È¾®¤µ¤¤Ã±°Ì¤Ç¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤ß¤ò¹Ô¤¦¤È¡¢ -Æɤ߽Ф·--½¤Àµ--ºÆ½ñ¤­¹þ¤ß¤È¤¤¤Ã¤¿Èó¸úΨ¤ÊÆ°ºî¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤«¤â¤·¤ì¤Ê¤¤)¡£ +フィールドは、効率的にファイル・システム I/O ができる「好ましい」 +ブロックサイズを示す (もっと小さい単位でファイルに書き込みを行うと、 +読み出し--修正--再書き込みといった非効率な動作になってしまうかもしれない)。 .PP .\"O Not all of the Linux file systems implement all of the time fields. .\"O Some file system types allow mounting in such a way that file @@ -274,32 +274,32 @@ struct stat { .\"O .BR mount (8), .\"O and related information in .\"O .BR mount (2).) -Á´¤Æ¤Î Linux ¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤¬Á´¤Æ¤Î»þ´Ö¥Õ¥£¡¼¥ë¥É¤ò -¼ÂÁõ¤·¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥ì¥¯¥È¥ê¤Î¥¢¥¯¥»¥¹¤¬ +全ての Linux のファイル・システムが全ての時間フィールドを +実装しているわけではない。 +ファイルやディレクトリのアクセスが .I st_atime -¥Õ¥£¡¼¥ë¥É¤ò¹¹¿·¤·¤Ê¤¤¤è¤¦¤Ê¤«¤¿¤Á¤Ç¥Þ¥¦¥ó¥È¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ +フィールドを更新しないようなかたちでマウントできるファイルシステムもある。 .RB ( mount (8) -¤Î +の .IR noatime , .IR nodiratime , .I relatime -¤ä +や .BR mount (2) -¤Î´ØÏ¢¤¹¤ë¾ðÊó¤ò»²¾È)¡£ +の関連する情報を参照)。 .\"O In addition, .\"O .I st_atime .\"O is not updated if a file is opened with the .\"O .BR O_NOATIME ; .\"O see .\"O .BR open (2). -¤Þ¤¿¡¢¥Õ¥¡¥¤¥ë¤¬ +また、ファイルが .B O_NOATIME -ÉÕ¤­¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï +付きでオープンされている場合には .I st_atime -¤Ï¹¹¿·¤µ¤ì¤Ê¤¤¡£ +は更新されない。 .BR open (2) -»²¾È¡£ +参照。 .\"O The field .\"O .I st_atime @@ -316,19 +316,19 @@ struct stat { .\"O may or may not update .\"O .IR st_atime . .I st_atime -¥Õ¥£¡¼¥ë¥É¤Ï¥Õ¥¡¥¤¥ë¥¢¥¯¥»¥¹¤¬¤¢¤Ã¤¿¾ì¹ç¤ËÊѹ¹¤µ¤ì¤ë -(Î㤨¤Ð¡¢ +フィールドはファイルアクセスがあった場合に変更される +(例えば、 .BR execve (2), .BR mknod (2), .BR pipe (2), .BR utime (2) -¤ò»ÈÍѤ·¤¿¾ì¹ç¤ä +を使用した場合や .BR read (2) -¤Ç 1 ¥Ð¥¤¥È°Ê¾åÆɤ߹þ¤ó¤À¾ì¹ç¤Ê¤É)¡£ +で 1 バイト以上読み込んだ場合など)。 .BR mmap (2) -¤Ê¤É¤Î¾¤Î¥ë¡¼¥Á¥ó¤Ç¤Ï¡¢ +などの他のルーチンでは、 .I st_atime -¤Ï¹¹¿·¤µ¤ì¤ë¤³¤È¤â¤¢¤ì¤Ð¡¢¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤â¤¢¤ë¡£ +は更新されることもあれば、そうでない場合もある。 .\"O The field .\"O .I st_mtime @@ -340,85 +340,85 @@ struct stat { .\"O .BR write (2) .\"O (of more than zero bytes). .I st_mtime -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥Õ¥¡¥¤¥ë¤¬½¤Àµ¤µ¤ì¤¿¾ì¹ç¤ËÊѹ¹¤µ¤ì¤ë -(Î㤨¤Ð¡¢ +フィールドは、ファイルが修正された場合に変更される +(例えば、 .BR mknod (2), .BR truncate (2), .BR utime (2) -¤ò»ÈÍѤ·¤¿¾ì¹ç¤ä +を使用した場合や .BR write (2) -¤Ç 1 ¥Ð¥¤¥È°Ê¾å½ñ¤­¹þ¤ß¤ò¤·¤¿¾ì¹ç¤Ê¤É)¡£ +で 1 バイト以上書き込みをした場合など)。 .\"O Moreover, .\"O .I st_mtime .\"O of a directory is changed by the creation or deletion of files .\"O in that directory. -¤µ¤é¤Ë¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Î +さらに、ディレクトリの .I st_mtime -¤Ï¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç -¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤¿¤êºï½ü¤µ¤ì¤¿¤ê¤¹¤ë¤ÈÊѹ¹¤µ¤ì¤ë¡£ +は、そのディレクトリで +ファイルが作成されたり削除されたりすると変更される。 .\"O The .\"O .I st_mtime .\"O field is .\"O .I not .\"O changed for changes in owner, group, hard link count, or mode. .I st_mtime -¥Õ¥£¡¼¥ë¥É¤Ï -½êÍ­¼Ô¤ä¥°¥ë¡¼¥×¤ä¥Ï¡¼¥É¡¦¥ê¥ó¥¯¿ô¤ä¥â¡¼¥É¤ÎÊѹ¹¤Ç¤ÏÊѹ¹ -.I ¤µ¤ì¤Ê¤¤¡£ +フィールドは +所有者やグループやハード・リンク数やモードの変更では変更 +.I されない。 .\"O The field .\"O .I st_ctime .\"O is changed by writing or by setting inode information .\"O (i.e., owner, group, link count, mode, etc.). .I st_ctime -¥Õ¥£¡¼¥ë¥É¤Ï½ñ¤­¹þ¤ß¤ä inode ¾ðÊó -(½êÍ­¼Ô¡¢¥°¥ë¡¼¥×¡¢¥ê¥ó¥¯¿ô¡¢¥â¡¼¥É¤Ê¤É) ¤Î -ÀßÄê¤Ë¤è¤Ã¤ÆÊѹ¹¤µ¤ì¤ë¡£ +フィールドは書き込みや inode 情報 +(所有者、グループ、リンク数、モードなど) の +設定によって変更される。 .PP .\"O The following POSIX macros are defined to check the file type using the .\"O .I st_mode .\"O field: -°Ê²¼¤Î POSIX ¥Þ¥¯¥í¤Ï¡¢ +以下の POSIX マクロは、 .I st_mode -¥Õ¥£¡¼¥ë¥É -¤Ç»ÈÍѤµ¤ì¤ë¥Õ¥¡¥¤¥ë¼ïÊ̤ΥÁ¥§¥Ã¥¯¤Î¤¿¤á¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë : +フィールド +で使用されるファイル種別のチェックのために定義されている : .RS 4 .TP 1.2i .BR S_ISREG (m) .\"O is it a regular file? -Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤«? +通常のファイルか? .TP .BR S_ISDIR (m) .\"O directory? -¥Ç¥£¥ì¥¯¥È¥ê¤«? +ディレクトリか? .TP .BR S_ISCHR (m) .\"O character device? -¥­¥ã¥é¥¯¥¿¡¼¡¦¥Ç¥Ð¥¤¥¹¤«? +キャラクター・デバイスか? .TP .BR S_ISBLK (m) .\"O block device? -¥Ö¥í¥Ã¥¯¡¦¥Ç¥Ð¥¤¥¹¤«? +ブロック・デバイスか? .TP .BR S_ISFIFO (m) .\"O FIFO (named pipe)? -FIFO (̾Á°ÉÕ¤­¥Ñ¥¤¥×) ¤«? +FIFO (名前付きパイプ) か? .TP .BR S_ISLNK (m) .\"O symbolic link? (Not in POSIX.1-1996.) -¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤«? (POSIX.1-1996 ¤Ë¤Ï¤Ê¤¤) +シンボリック・リンクか? (POSIX.1-1996 にはない) .TP .BR S_ISSOCK (m) .\"O socket? (Not in POSIX.1-1996.) -¥½¥±¥Ã¥È¤«? (POSIX.1-1996 ¤Ë¤Ï¤Ê¤¤) +ソケットか? (POSIX.1-1996 にはない) .RE .PP .\"O The following flags are defined for the .\"O .I st_mode .\"O field: -°Ê²¼¤Î¥Õ¥é¥°¤¬ +以下のフラグが .I st_mode -¥Õ¥£¡¼¥ë¥ÉÍѤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +フィールド用に定義されている: .in +4n .TS lB l l. @@ -430,44 +430,44 @@ lB l l. .\"O S_IFDIR 0040000 directory .\"O S_IFCHR 0020000 character device .\"O S_IFIFO 0010000 FIFO -S_IFMT 0170000 ¥Õ¥¡¥¤¥ë¼ïÊ̤ò¼¨¤¹¥Ó¥Ã¥ÈÎΰè¤òɽ¤¹¥Ó¥Ã¥È¥Þ¥¹¥¯ -S_IFSOCK 0140000 ¥½¥±¥Ã¥È -S_IFLNK 0120000 ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -S_IFREG 0100000 Ä̾ï¤Î¥Õ¥¡¥¤¥ë -S_IFBLK 0060000 ¥Ö¥í¥Ã¥¯¡¦¥Ç¥Ð¥¤¥¹ -S_IFDIR 0040000 ¥Ç¥£¥ì¥¯¥È¥ê -S_IFCHR 0020000 ¥­¥ã¥é¥¯¥¿¡¼¡¦¥Ç¥Ð¥¤¥¹ +S_IFMT 0170000 ファイル種別を示すビット領域を表すビットマスク +S_IFSOCK 0140000 ソケット +S_IFLNK 0120000 シンボリック・リンク +S_IFREG 0100000 通常のファイル +S_IFBLK 0060000 ブロック・デバイス +S_IFDIR 0040000 ディレクトリ +S_IFCHR 0020000 キャラクター・デバイス S_IFIFO 0010000 FIFO .\"O S_ISUID 0004000 set-user-ID bit .\"O S_ISGID 0002000 set-group-ID bit (see below) .\"O S_ISVTX 0001000 sticky bit (see below) S_ISUID 0004000 set-user-ID bit -S_ISGID 0002000 set-group-ID bit (²¼µ­»²¾È) -S_ISVTX 0001000 ¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È (²¼µ­»²¾È) +S_ISGID 0002000 set-group-ID bit (下記参照) +S_ISVTX 0001000 スティッキー・ビット (下記参照) .\"O S_IRWXU 00700 mask for file owner permissions .\"O S_IRUSR 00400 owner has read permission .\"O S_IWUSR 00200 owner has write permission .\"O S_IXUSR 00100 owner has execute permission -S_IRWXU 00700 ¥Õ¥¡¥¤¥ë½êÍ­¼Ô¤Î¥¢¥¯¥»¥¹µö²ÄÍѤΥӥåȥޥ¹¥¯ -S_IRUSR 00400 ½êÍ­¼Ô¤ÎÆɤ߹þ¤ßµö²Ä -S_IWUSR 00200 ½êÍ­¼Ô¤Î½ñ¤­¹þ¤ßµö²Ä -S_IXUSR 00100 ½êÍ­¼Ô¤Î¼Â¹Ôµö²Ä +S_IRWXU 00700 ファイル所有者のアクセス許可用のビットマスク +S_IRUSR 00400 所有者の読み込み許可 +S_IWUSR 00200 所有者の書き込み許可 +S_IXUSR 00100 所有者の実行許可 .\"O S_IRWXG 00070 mask for group permissions .\"O S_IRGRP 00040 group has read permission .\"O S_IWGRP 00020 group has write permission .\"O S_IXGRP 00010 group has execute permission -S_IRWXG 00070 ¥°¥ë¡¼¥×¤Î¥¢¥¯¥»¥¹µö²ÄÍѤΥӥåȥޥ¹¥¯ -S_IRGRP 00040 ¥°¥ë¡¼¥×¤ÎÆɤ߹þ¤ßµö²Ä -S_IWGRP 00020 ¥°¥ë¡¼¥×¤Î½ñ¤­¹þ¤ßµö²Ä -S_IXGRP 00010 ¥°¥ë¡¼¥×¤Î¼Â¹Ôµö²Ä +S_IRWXG 00070 グループのアクセス許可用のビットマスク +S_IRGRP 00040 グループの読み込み許可 +S_IWGRP 00020 グループの書き込み許可 +S_IXGRP 00010 グループの実行許可 .\"O S_IRWXO 00007 mask for permissions for others (not in group) .\"O S_IROTH 00004 others have read permission .\"O S_IWOTH 00002 others have write permission .\"O S_IXOTH 00001 others have execute permission -S_IRWXO 00007 ¾¿Í (others) ¤Î¥¢¥¯¥»¥¹µö²ÄÍѤΥӥåȥޥ¹¥¯ -S_IROTH 00004 ¾¿Í¤ÎÆɤ߹þ¤ßµö²Ä -S_IWOTH 00002 ¾¿Í¤Î½ñ¤­¹þ¤ßµö²Ä -S_IXOTH 00001 ¾¿Í¤Î¼Â¹Ôµö²Ä +S_IRWXO 00007 他人 (others) のアクセス許可用のビットマスク +S_IROTH 00004 他人の読み込み許可 +S_IWOTH 00002 他人の書き込み許可 +S_IXOTH 00001 他人の実行許可 .TE .in .P @@ -486,37 +486,37 @@ S_IXOTH 00001 ¾ .\"O the set-group-ID bit indicates mandatory file/record locking. set-group-ID bit .RB ( S_ISGID ) -¤Ë¤Ï¤¤¤¯¤Ä¤«¤ÎÆüì¤Ê»ÈÍÑË¡¤¬¤¢¤ë: -¥Ç¥£¥ì¥¯¥È¥ê¤ËÀßÄꤷ¤¿¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤¬ BSD Êý¼°¤Ç»ÈÍѤµ¤ì¤ë -¤³¤È¤ò¼¨¤¹¡£¤Ä¤Þ¤ê¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËºîÀ®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥×ID ¤Ï -ºîÀ®¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú (effective) ¥°¥ë¡¼¥×ID ¤Ç¤Ï¤Ê¤¯¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Î -¥°¥ë¡¼¥×ID ¤ò·Ñ¾µ¤¹¤ë¡£¤Þ¤¿¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËºîÀ®¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤â +にはいくつかの特殊な使用法がある: +ディレクトリに設定した場合には、そのディレクトリが BSD 方式で使用される +ことを示す。つまり、そのディレクトリに作成されたファイルのグループID は +作成したプロセスの実効 (effective) グループID ではなく、ディレクトリの +グループID を継承する。また、そのディレクトリに作成されたディレクトリにも .B S_ISGID -¥Ó¥Ã¥È¤¬ÀßÄꤵ¤ì¤ë¡£¥°¥ë¡¼¥×¼Â¹Ô¥Ó¥Ã¥È +ビットが設定される。グループ実行ビット .RB ( S_IXGRP ) -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¥Õ¥¡¥¤¥ë¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢ -set-group-ID ¥Ó¥Ã¥È¤Ï¥Õ¥¡¥¤¥ë/¥ì¥³¡¼¥É¤Î -¶¯À©Åª¤Ê (mandatory) ¥í¥Ã¥¯¤òɽ¤¹¡£ +が設定されていないファイルに設定された場合は、 +set-group-ID ビットはファイル/レコードの +強制的な (mandatory) ロックを表す。 .P .\"O The sticky bit (S_ISVTX) on a directory means that a file .\"O in that directory can be renamed or deleted only by the owner .\"O of the file, by the owner of the directory, and by a privileged .\"O process. -¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥¹¥Æ¥£¥Ã¥­¡¼¥Ó¥Ã¥È (S_ISVTX) ¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢ -¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Õ¥¡¥¤¥ë¤Î̾Á°¤òÊѹ¹¤·¤¿¤ê¡¢ºï½ü¤·¤¿¤ê¤Ç¤­¤ë¤Î¤Ï¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤«¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î½êÍ­¼Ô¤«¡¢Æø¢¥×¥í¥»¥¹ -¤À¤±¤È¤Ê¤ë¡£ +ディレクトリにスティッキービット (S_ISVTX) が設定された場合は、 +そのディレクトリのファイルの名前を変更したり、削除したりできるのは、 +そのファイルの所有者か、そのディレクトリの所有者か、特権プロセス +だけとなる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +成功した場合は 0 を返す。エラーの場合は \-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬ÀßÄꤵ¤ì¤ë¡£ +に適切な値が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O Search permission is denied for one of the directories @@ -525,30 +525,30 @@ set-group-ID .\"O (See also .\"O .BR path_resolution (7).) .I path -¤¬½ê°¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤È¤½¤Î¾å°Ì¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¤¤¤º¤ì¤«¤Ë -ÂФ¹¤ë¸¡º÷µö²Ä¤¬¤Ê¤«¤Ã¤¿ +が所属するディレクトリとその上位のディレクトリのいずれかに +対する検索許可がなかった .RB ( path_resolution (7) -¤â»²¾È¤Î¤³¤È)¡£ +も参照のこと)。 .TP .B EBADF .\"O .I fd .\"O is bad. .I fd -¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +が不正である。 .TP .B EFAULT .\"O Bad address. -¥¢¥É¥ì¥¹¤¬´Ö°ã¤Ã¤Æ¤¤¤ë¡£ +アドレスが間違っている。 .TP .B ELOOP .\"O Too many symbolic links encountered while traversing the path. -¥Ñ¥¹¤òé¤ëºÝ¤Ë²ò·è¤¹¤Ù¤­¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤¿¡£ +パスを辿る際に解決すべきシンボリック・リンクが多過ぎた。 .TP .B ENAMETOOLONG .\"O .I path .\"O is too long. .I path -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENOENT .\"O A component of @@ -557,20 +557,20 @@ set-group-ID .\"O .I path .\"O is an empty string. .I path -¤Î¹½À®Í×ÁǤ¬Â¸ºß¤·¤Ê¤¤¤«¡¢ +の構成要素が存在しないか、 .I path -¤¬¶õʸ»úÎó¤Ç¤¢¤ë¡£ +が空文字列である。 .TP .B ENOMEM .\"O Out of memory (i.e., kernel memory). -¥«¡¼¥Í¥ë¤Î¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£ +カーネルのメモリが足りない。 .TP .B ENOTDIR .\"O A component of the path prefix of .\"O .I path .\"O is not a directory. .I path -¤ÎÁ°È¾Éôʬ (prefix) ¤Î¹½À®Í×ÁǤ¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£ +の前半部分 (prefix) の構成要素がディレクトリではない。 .TP .B EOVERFLOW .\"O .RB ( stat ()) @@ -586,20 +586,20 @@ set-group-ID .\"O bits. .RB ( stat ()) .I path -¤¬¡¢¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤ò +が、ファイルサイズを .I off_t -·¿¤Çɽ¸½¤Ç¤­¤Ê¤¤¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤ë¡£ -¤³¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë¤Î¤Ï¡¢32 ¥Ó¥Ã¥È¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¾å¤Ç +型で表現できないファイルを参照している。 +このエラーが起こるのは、32 ビットプラットフォーム上で .I -D_FILE_OFFSET_BITS=64 -¤ò»ØÄꤻ¤º¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¡¢¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤¬ +を指定せずにコンパイルされたアプリケーションが、ファイルサイズが .I (1<31)-1 -¥Ó¥Ã¥È¤òĶ¤¨¤ë¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ +ビットを超えるファイルに対して .BR stat () -¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¤Ç¤¢¤ë¡£ +を呼び出した場合である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These system calls conform to SVr4, 4.3BSD, POSIX.1-2001. -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï SVr4, 4.3BSD, POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +これらのシステムコールは SVr4, 4.3BSD, POSIX.1-2001 に準拠している。 .\"O .\" SVr4 documents additional .\"O .\" .BR fstat () .\"O .\" error conditions EINTR, ENOLINK, and EOVERFLOW. SVr4 @@ -609,19 +609,19 @@ set-group-ID .\"O .\" .BR lstat () .\"O .\" error conditions EINTR, EMULTIHOP, ENOLINK, and EOVERFLOW. .BR stat () -¤È +と .BR fstat () -¥³¡¼¥ë¤Ï SVr4, SVID, POSIX, X/OPEN, 4.3BSD ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +コールは SVr4, SVID, POSIX, X/OPEN, 4.3BSD に準拠している。 .BR lstat () -¥³¡¼¥ë¤Ï 4.3BSD ¤È SVr4 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ -.\" SVr4 ¤Ë¤Ï¾¤Ë +コールは 4.3BSD と SVr4 に準拠している。 +.\" SVr4 には他に .\" .BR fstat () -.\" ¤Î¥¨¥é¡¼¤È¤·¤Æ EINTR, ENOLINK, EOVERFLOW ¤¬µ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ -.\" SVr4 ¤Ë¤Ï¾¤Ë +.\" のエラーとして EINTR, ENOLINK, EOVERFLOW が記載されている。 +.\" SVr4 には他に .\" .BR stat () -.\" ¤È +.\" と .\" .BR lstat () -.\" ¤Î¥¨¥é¡¼¤È¤·¤Æ EINTR, EMULTIHOP, ENOLINK, EOVERFLOW ¤¬µ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ +.\" のエラーとして EINTR, EMULTIHOP, ENOLINK, EOVERFLOW が記載されている。 .\"O Use of the .\"O .I st_blocks @@ -632,12 +632,12 @@ set-group-ID .\"O The interpretation differs between systems, .\"O and possibly on a single system when NFS mounts are involved.) .I st_blocks -¤È +と .I st_blksize -¥Õ¥£¡¼¥ë¥É¤Î»ÈÍѤϤ¢¤Þ¤ê°Ü¿¢À­¤¬¤Ê¤¤¡£ -(¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Ï BSD ¤Ë¤è¤Ã¤ÆƳÆþ¤µ¤ì¤¿¡£ -¥·¥¹¥Æ¥à¤´¤È¤Ë²ò¼á¤¬°Û¤Ê¤Ã¤Æ¤ª¤ê¡¢ -NFS ¥Þ¥¦¥ó¥È¤Î¾ì¹ç¤Ë¤ÏƱ¤¸¥·¥¹¥Æ¥à¤Ç¤â°Û¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ë) +フィールドの使用はあまり移植性がない。 +(これらのフィールドは BSD によって導入された。 +システムごとに解釈が異なっており、 +NFS マウントの場合には同じシステムでも異なる可能性がある) .LP .\"O POSIX does not describe the .\"O .BR S_IFMT , @@ -660,7 +660,7 @@ NFS .\"O macros are not in .\"O POSIX.1-1996, but both are present in POSIX.1-2001; .\"O the former is from SVID 4, the latter from SUSv2. -POSIX ¤Ë¤Ï +POSIX には .BR S_IFMT , .BR S_IFSOCK , .BR S_IFLNK , @@ -670,16 +670,16 @@ POSIX .BR S_IFCHR , .BR S_IFIFO , .B S_ISVTX -¥Ó¥Ã¥È¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤Ï¤Ê¤¤¡£¤«¤ï¤ê¤Ë +ビットについての記述はない。かわりに .BR S_ISDIR () -¤Î¤è¤¦¤Ê¥Þ¥¯¥í¤ò»ÈÍѤ¹¤ë¤è¤¦¤ËÍ׵ᤷ¤Æ¤¤¤ë¡£ -¥Þ¥¯¥í +のようなマクロを使用するように要求している。 +マクロ .BR S_ISLNK () -¤È +と .BR S_ISSOCK () -¤Ï POSIX.1-1996 ¤Ë¤Ï¤Ê¤¤¤¬¡¢ -POSIX.1-2001 ¤Ë¤ÏξÊý¤È¤â¸ºß¤¹¤ë¡£ -Á°¼Ô¤Ï SVID 4 ¤Ë¡¢¸å¼Ô¤Ï SUSv2 ¤ËͳÍ褷¤Æ¤¤¤ë¡£ +は POSIX.1-1996 にはないが、 +POSIX.1-2001 には両方とも存在する。 +前者は SVID 4 に、後者は SUSv2 に由来している。 .LP .\"O Unix V7 (and later systems) had S_IREAD, S_IWRITE, S_IEXEC, where POSIX .\"O prescribes the synonyms S_IRUSR, S_IWUSR, S_IXUSR. @@ -692,33 +692,33 @@ POSIX.1-2001 .\"O .BR S_IRUSR , .\"O .BR S_IWUSR , .\"O .BR S_IXUSR . -Unix V7 (¤È¤½¤Î¸å¤Î¥·¥¹¥Æ¥à) ¤Ï +Unix V7 (とその後のシステム) は .BR S_IREAD , .BR S_IWRITE , .B S_IEXEC -¤ò»ý¤Ã¤Æ¤ª¤ê¡¢ -POSIX ¤Ï¤½¤ÎƱµÁ¸ì¤È¤·¤Æ +を持っており、 +POSIX はその同義語として .BR S_IRUSR , .BR S_IWUSR , .B S_IXUSR -¤òµ¬Äꤷ¤Æ¤¤¤ë¡£ +を規定している。 .\"O .SS "Other Systems" -.SS ¾¤Î¥·¥¹¥Æ¥à +.SS 他のシステム .\"O Values that have been (or are) in use on various systems: -³Æ¼ï¥·¥¹¥Æ¥à¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤¿(¤¤¤ë)ÃÍ: +各種システムで使用されていた(いる)値: .TS l l l l l. .\"O hex name ls octal description -16¿Ê ̾Á° ls 8¿Ê¿ô ÀâÌÀ +16進 名前 ls 8進数 説明 .\"O f000 S_IFMT 170000 mask for file type .\"O 0000 000000 SCO out-of-service inode, BSD unknown .\"O type; SVID-v2 and XPG2 have both .\"O 0 and 0100000 for ordinary file -f000 S_IFMT 170000 ¥Õ¥¡¥¤¥ë¼ïÊÌ¥Õ¥£¡¼¥ë¥É¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯ -0000 000000 SCO ¤Ç¤Ï »ÈÍÑÉÔǽ inode; - BSD ¤Ç¤Ï̤ÃΤΥե¡¥¤¥ë¼ïÊÌ; - SVID-v2 ¤È XPG2 ¤Ç¤Ï 0 ¤È 0100000 ¤Î - ξÊý¤¬ÉáÄ̤Υե¡¥¤¥ë +f000 S_IFMT 170000 ファイル種別フィールドのビットマスク +0000 000000 SCO では 使用不能 inode; + BSD では未知のファイル種別; + SVID-v2 と XPG2 では 0 と 0100000 の + 両方が普通のファイル .\"O 1000 S_IFIFO p| 010000 FIFO (named pipe) .\"O 2000 S_IFCHR c 020000 character special (V7) .\"O 3000 S_IFMPC 030000 multiplexed character special (V7) @@ -728,37 +728,37 @@ f000 S_IFMT 170000 .\"O \fIst_rdev\fP values 1, 2 .\"O 0001 S_INSEM s 000001 XENIX semaphore subtype of IFNAM .\"O 0002 S_INSHD m 000002 XENIX shared data subtype of IFNAM -1000 S_IFIFO p| 010000 FIFO (̾Á°ÉÕ¤­¥Ñ¥¤¥×) -2000 S_IFCHR c 020000 ¥­¥ã¥é¥¯¥¿Æüì¥Õ¥¡¥¤¥ë (V7) -3000 S_IFMPC 030000 ¿½Å²½¤µ¤ì¤¿¥­¥ã¥é¥¯¥¿Æüì¥Õ¥¡¥¤¥ë (V7) -4000 S_IFDIR d/ 040000 ¥Ç¥£¥ì¥¯¥È¥ê (V7) -5000 S_IFNAM 050000 XENIX Æó¤Ä¤ÎÉû·¿¤ò»ý¤Ä̾Á°ÉÕ¤­¤Î - Æüì¥Õ¥¡¥¤¥ë - Éû·¿¤Ï \fIst_rdev\fP ¤ÎÃÍ 1,2 ¤Ç¶èÊ̤µ¤ì¤ë: -0001 S_INSEM s 000001 XENIX IFNAM¤Î¥»¥Þ¥Õ¥©¡¼Éû·¿ -0002 S_INSHD m 000002 XENIX IFNAM¤Î¶¦Í­¥Ç¡¼¥¿Éû·¿ +1000 S_IFIFO p| 010000 FIFO (名前付きパイプ) +2000 S_IFCHR c 020000 キャラクタ特殊ファイル (V7) +3000 S_IFMPC 030000 多重化されたキャラクタ特殊ファイル (V7) +4000 S_IFDIR d/ 040000 ディレクトリ (V7) +5000 S_IFNAM 050000 XENIX 二つの副型を持つ名前付きの + 特殊ファイル + 副型は \fIst_rdev\fP の値 1,2 で区別される: +0001 S_INSEM s 000001 XENIX IFNAMのセマフォー副型 +0002 S_INSHD m 000002 XENIX IFNAMの共有データ副型 .\"O 6000 S_IFBLK b 060000 block special (V7) .\"O 7000 S_IFMPB 070000 multiplexed block special (V7) .\"O 8000 S_IFREG - 100000 regular (V7) .\"O 9000 S_IFCMP 110000 VxFS compressed .\"O 9000 S_IFNWK n 110000 network special (HP-UX) .\"O a000 S_IFLNK l@ 120000 symbolic link (BSD) -6000 S_IFBLK b 060000 ¥Ö¥í¥Ã¥¯Æüì¥Õ¥¡¥¤¥ë (V7) -7000 S_IFMPB 070000 ¿½Å²½¤µ¤ì¤¿¥Ö¥í¥Ã¥¯Æüì¥Õ¥¡¥¤¥ë (V7) -8000 S_IFREG - 100000 Ä̾ï¥Õ¥¡¥¤¥ë (V7) -9000 S_IFCMP 110000 VxFS °µ½Ì¥Õ¥¡¥¤¥ë -9000 S_IFNWK n 110000 ¥Í¥Ã¥È¥ï¡¼¥¯Æüì¥Õ¥¡¥¤¥ë (HP-UX) -a000 S_IFLNK l@ 120000 ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ (BSD) +6000 S_IFBLK b 060000 ブロック特殊ファイル (V7) +7000 S_IFMPB 070000 多重化されたブロック特殊ファイル (V7) +8000 S_IFREG - 100000 通常ファイル (V7) +9000 S_IFCMP 110000 VxFS 圧縮ファイル +9000 S_IFNWK n 110000 ネットワーク特殊ファイル (HP-UX) +a000 S_IFLNK l@ 120000 シンボリック・リンク (BSD) .\"O b000 S_IFSHAD 130000 Solaris shadow inode for ACL .\"O (not seen by userspace) .\"O c000 S_IFSOCK s= 140000 socket (BSD; also "S_IFSOC" on VxFS) .\"O d000 S_IFDOOR D> 150000 Solaris door .\"O e000 S_IFWHT w% 160000 BSD whiteout (not used for inode) -b000 S_IFSHAD 130000 Solaris ACL ¤Î¤¿¤á¤Î±£¤µ¤ì¤¿ inode - (¥æ¡¼¥¶¶õ´Ö¤«¤é¤Ï¸«¤¨¤Ê¤¤) -c000 S_IFSOCK s= 140000 ¥½¥±¥Ã¥È (BSD; VxFS ¤Î "S_IFSOC") -d000 S_IFDOOR D> 150000 Solaris ¥É¥¢¡¦¥Õ¥¡¥¤¥ë -e000 S_IFWHT w% 160000 BSD ¶õÇò¥Õ¥¡¥¤¥ë (inode ¤ò»ÈÍѤ·¤Ê¤¤) +b000 S_IFSHAD 130000 Solaris ACL のための隠された inode + (ユーザ空間からは見えない) +c000 S_IFSOCK s= 140000 ソケット (BSD; VxFS の "S_IFSOC") +d000 S_IFDOOR D> 150000 Solaris ドア・ファイル +e000 S_IFWHT w% 160000 BSD 空白ファイル (inode を使用しない) .\"O 0200 S_ISVTX 001000 sticky bit: save swapped text even .\"O after use (V7) .\"O reserved (SVID-v2) @@ -774,25 +774,25 @@ e000 S_IFWHT w% 160000 BSD .\"O 0800 S_ISUID 004000 set-user-ID on execution (V7) .\"O 0800 S_CDF 004000 directory is a context dependent .\"O file (HP-UX) -0200 S_ISVTX 001000 `¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È':»ÈÍѸå¤â - ¥¹¥ï¥Ã¥×¤Ë»Ä¤¹ (V7) - ͽÌó (SVID-v2) - ¥Ç¥£¥ì¥¯¥È¥ê°Ê³°: ¥Õ¥¡¥¤¥ë¤ò¥­¥ã¥Ã¥·¥å - ¤·¤Ê¤¤ (SunOS) - ¥Ç¥£¥ì¥¯¥È¥ê: ºï½üÀ©¸Â¥Õ¥é¥° (SVID-v4.2) -0400 S_ISGID 002000 ¼Â¹Ô»þ¤Î set-group-ID (V7) - ¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ·¤Æ¤Ï GID ¤ÎÅÁã¤Ë - BSD Êý¼°¤ò»ÈÍѤ¹¤ë -0400 S_ENFMT 002000 System V ¥Õ¥¡¥¤¥ë¡¦¥í¥Ã¥¯¤ò¶¯À©¤¹¤ë - (S_ISGID ¤È¶¦Í­) -0800 S_ISUID 004000 ¼Â¹Ô»þ¤Î set-user-ID (V7) -0800 S_CDF 004000 ¥Ç¥£¥ì¥¯¥È¥ê¤¬¾õ¶·°Í¸¥Õ¥¡¥¤¥ë (HP-UX) +0200 S_ISVTX 001000 `スティッキー・ビット':使用後も + スワップに残す (V7) + 予約 (SVID-v2) + ディレクトリ以外: ファイルをキャッシュ + しない (SunOS) + ディレクトリ: 削除制限フラグ (SVID-v4.2) +0400 S_ISGID 002000 実行時の set-group-ID (V7) + ディレクトリに対しては GID の伝達に + BSD 方式を使用する +0400 S_ENFMT 002000 System V ファイル・ロックを強制する + (S_ISGID と共有) +0800 S_ISUID 004000 実行時の set-user-ID (V7) +0800 S_CDF 004000 ディレクトリが状況依存ファイル (HP-UX) .TE .\"O A sticky command appeared in Version 32V AT&T UNIX. -¥¹¥Æ¥£¥Ã¥­¡¼ ¥³¥Þ¥ó¥É¤Ï Version 32V AT&T UNIX ¤ÇÅо줷¤¿¡£ +スティッキー コマンドは Version 32V AT&T UNIX で登場した。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Since kernel 2.5.48, the .\"O .I stat .\"O structure supports nanosecond resolution for the three @@ -810,26 +810,26 @@ e000 S_IFWHT w% 160000 BSD .\"O if neither of these macros is defined. .\"O On file systems that do not support subsecond timestamps, .\"O these nanosecond fields are returned with the value 0. -¥«¡¼¥Í¥ë 2.5.48 °Ê¹ß¤Ç¤Ï¡¢ +カーネル 2.5.48 以降では、 .I stat -¹½Â¤ÂÎ¤Ï 3¤Ä¤Î¥Õ¥¡¥¤¥ë¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×´ØÏ¢¤Î¥Õ¥£¡¼¥ë¥É¤Ç -¥Ê¥ÎÉÃñ°Ì¤ÎÀºÅÙ¤ËÂбþ¤·¤Æ¤¤¤ë¡£ -glibc ¤Ç¤Ï¡¢³Æ¥Õ¥£¡¼¥ë¥É¤Î¥Ê¥ÎÉäξðÊó¤ò +構造体は 3つのファイルのタイムスタンプ関連のフィールドで +ナノ秒単位の精度に対応している。 +glibc では、各フィールドのナノ秒の情報を .I st_atim.tv_nsec -¤ä +や .I st_atimensec -¤È¤¤¤Ã¤¿·Á¤Ç»²¾È¤Ç¤­¤ë¡£ -µ¡Ç½¸¡ºº¥Þ¥¯¥í +といった形で参照できる。 +機能検査マクロ .B _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï +が定義されている場合には .I st_atim.tv_nsec -¤Î·Á¼°¤Ç¡¢¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï +の形式で、それ以外の場合には .I st_atimensec -¤Î·Á¼°¤È¤Ê¤ë¡£ -Éäè¤êºÙ¤«¤¤¥¿¥¤¥à¥¹¥¿¥ó¥×¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -¤³¤ì¤é¤Î¥Ê¥ÎÉäΥե£¡¼¥ë¥É¤Ï 0 ¤ËÀßÄꤵ¤ì¤ë¡£ +の形式となる。 +秒より細かいタイムスタンプをサポートしていないファイルシステムでは、 +これらのナノ秒のフィールドは 0 に設定される。 .\" As at kernel 2.6.25, XFS and JFS support nanosecond timestamps, .\" but ext2, ext3, and Reiserfs do not. .\" FIXME . SUSv4 specifies nanosecond timestamps. @@ -839,11 +839,11 @@ glibc .\"O will generally not trigger automounter action, whereas .\"O .BR stat () .\"O will. -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR lstat () -¤Ï°ìÈ̤ˤϼ«Æ°¥Þ¥¦¥ó¥ÈÆ°ºî (automounter action) ¤Î¤­¤Ã¤«¤±¤È¤Ê¤é¤Ê¤¤¤¬¡¢ +は一般には自動マウント動作 (automounter action) のきっかけとならないが、 .BR stat () -¤Ï¤­¤Ã¤«¤±¤È¤Ê¤ë¡£ +はきっかけとなる。 .\"O For most files under the .\"O .I /proc @@ -853,25 +853,25 @@ Linux .\"O .I st_size .\"O field; instead the field is returned with the value 0. .I /proc -¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤Î¤Û¤È¤ó¤É¤Ç¤Ï¡¢ +ディレクトリ以下にあるファイルのほとんどでは、 .BR stat () -¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¡¢ +を呼び出した際に、 .I st_size -¥Õ¥£¡¼¥ë¥É¤Ë¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤¬ÊÖ¤µ¤ì¤Ê¤¤¡£ -Âå¤ï¤ê¤Ë +フィールドにファイルサイズが返されない。 +代わりに .I st_size -¥Õ¥£¡¼¥ë¥É¤Ë¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +フィールドには 0 が返される。 .\"O .SS Underlying kernel interface -.SS Çظå¤Î¥«¡¼¥Í¥ë¡¦¥¤¥ó¥¿¥Õ¥§¡¼¥¹ +.SS 背後のカーネル・インタフェース .\"O Over time, increases in the size of the .\"O .I stat .\"O structure have led to three successive versions of .\"O .BR stat (): -»þ´Ö¤Î·Ð²á¤È¤È¤â¤Ë¡¢ +時間の経過とともに、 .I stat -¹½Â¤ÂΤΥµ¥¤¥º¤¬Â礭¤¯¤Ê¤ê¡¢¤³¤Î±Æ¶Á¤Ç +構造体のサイズが大きくなり、この影響で .BR stat () -¤Ë¤Ï 3¤Ä¤Î¥Ð¡¼¥¸¥ç¥ó¤¬Â¸ºß¤¹¤ë: +には 3つのバージョンが存在する: .\"O .IR sys_stat () .\"O (slot .\"O .IR __NR_oldstat ), @@ -883,32 +883,32 @@ Linux .\"O (new in kernel 2.4; slot .\"O .IR __NR_stat64 ). .IR sys_stat () -(¥¹¥í¥Ã¥È¤Ï -.IR __NR_oldstat )¡¢ +(スロットは +.IR __NR_oldstat )、 .IR sys_newstat () -(¥¹¥í¥Ã¥È¤Ï -.IR __NR_stat )¡¢ +(スロットは +.IR __NR_stat )、 .IR sys_stat64 () -(¥«¡¼¥Í¥ë 2.4 ¤ÇƳÆþ; ¥¹¥í¥Ã¥È¤Ï +(カーネル 2.4 で導入; スロットは .IR __NR_stat64 ). .\"O The glibc .\"O .BR stat () .\"O wrapper function hides these details from applications, .\"O invoking the most recent version of the system call provided by the kernel, .\"O and repacking the returned information if required for old binaries. -glibc ¤Î +glibc の .BR stat () -¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¤³¤ì¤é¤Î¾ÜºÙ¤ò¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é±£Ê䷤Ƥ¯¤ì¤ë¡£ -¶ñÂÎŪ¤Ë¤Ï¡¢¥«¡¼¥Í¥ë¤¬Ä󶡤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¤¦¤ÁºÇ¿·¤Î¥Ð¡¼¥¸¥ç¥ó¤ò -µ¯Æ°¤·¡¢¸Å¤¤¥Ð¥¤¥Ê¥ê¤Î¾ì¹ç¤Ë¤ÏɬÍפ˱þ¤¸¤ÆÊÖ¤µ¤ì¤¿¾ðÊó¤òºÆ¹½À® (repack) ¤¹¤ë¡£ +ラッパー関数はこれらの詳細をアプリケーションから隠蔽してくれる。 +具体的には、カーネルが提供しているシステムコールのうち最新のバージョンを +起動し、古いバイナリの場合には必要に応じて返された情報を再構成 (repack) する。 .\"O Similar remarks apply for .\"O .BR fstat () .\"O and .\"O .BR lstat (). .BR fstat () -¤È +と .BR lstat () -¤Ë¤Ä¤¤¤Æ¤âƱÍͤǤ¢¤ë¡£ +についても同様である。 .\" .\" A note from Andries Brouwer, July 2007 .\" @@ -938,17 +938,17 @@ glibc .\" .\" (Note that the details depend on gcc being used as c compiler.) .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The following program calls .\"O .BR stat () .\"O and displays selected fields in the returned .\"O .I stat .\"O structure. -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï +以下のプログラムは .BR stat () -¤ò¸Æ¤Ó½Ð¤·¡¢Ê֤äƤ­¤¿ +を呼び出し、返ってきた .I stat -¹½Â¤ÂΤΥե£¡¼¥ë¥É¤Î¤¤¤¯¤Ä¤«¤òɽ¼¨¤¹¤ë¡£ +構造体のフィールドのいくつかを表示する。 .nf #include @@ -1009,7 +1009,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR access (2), .BR chmod (2), .BR chown (2), diff --git a/draft/man2/statfs.2 b/draft/man2/statfs.2 index bf42bad3..22824b36 100644 --- a/draft/man2/statfs.2 +++ b/draft/man2/statfs.2 @@ -35,52 +35,52 @@ .\" Updated & Modified Sun Jan 9 22:35:28 JST 2005 by Yuichi SATO .\" Updated 2006-07-21, Akihiro MOTOKI , LDP v2.36 .\" -.\"WORD: file system ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à -.\"WORD: mount ¥Þ¥¦¥ó¥È -.\"WORD: pointer ¥Ý¥¤¥ó¥¿¡¼ -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ -.\"WORD: open ¥ª¡¼¥×¥ó -.\"WORD: symbolic link ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: open ¥ª¡¼¥×¥ó +.\"WORD: file system ファイル・システム +.\"WORD: mount マウント +.\"WORD: pointer ポインター +.\"WORD: descriptor ディスクリプター +.\"WORD: open オープン +.\"WORD: symbolic link シンボリック・リンク +.\"WORD: open オープン .\" .TH STATFS 2 2010-09-04 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O statfs, fstatfs \- get file system statistics -statfs, fstatfs \- ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ÎÅý·×¤òÆÀ¤ë +statfs, fstatfs \- ファイル・システムの統計を得る .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .\"O .BR "#include " "/* or */" -.BR "#include " "/* ¤Þ¤¿¤Ï */" +.BR "#include " "/* または */" .sp .BI "int statfs(const char *" path ", struct statfs *" buf ); .br .BI "int fstatfs(int " fd ", struct statfs *" buf ); .\"O .SH DESCRIPTION -.SH ½ñ¼° +.SH 書式 .\"O The function .\"O .BR statfs () .\"O returns information about a mounted file system. -´Ø¿ô +関数 .BR statfs () -¤Ï¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÊÖ¤¹¡£ +はマウントされたファイル・システムについての情報を返す。 .\"O .I path .\"O is the pathname of any file within the mounted file system. .I path -¤Ï¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹Ì¾¤Ç¤¢¤ë¡£ +はマウントされたファイル・システムにあるファイルのパス名である。 .\"O .I buf .\"O is a pointer to a .\"O .I statfs .\"O structure defined approximately as follows: .I buf -¤Ï +は .I statfs -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¡¼¤Ç¡¢¤ª¤è¤½°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë: +構造体へのポインターで、およそ以下のように定義される: .in +4n .nf .\"O #if __WORDSIZE == 32 /* System word size */ -#if __WORDSIZE == 32 /* ¥·¥¹¥Æ¥à¤Î¥ï¡¼¥É¥µ¥¤¥º */ +#if __WORDSIZE == 32 /* システムのワードサイズ */ # define __SWORD_TYPE int #else /* __WORDSIZE == 64 */ # define __SWORD_TYPE long int @@ -99,21 +99,21 @@ struct statfs { .\"O __SWORD_TYPE f_namelen; /* maximum length of filenames */ .\"O __SWORD_TYPE f_frsize; /* fragment size (since Linux 2.6) */ .\"O __SWORD_TYPE f_spare[5]; - __SWORD_TYPE f_type; /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¼ïÊÌ (²¼µ­»²¾È) */ - __SWORD_TYPE f_bsize; /* ºÇŬ¤ÊžÁ÷¥Ö¥í¥Ã¥¯¥µ¥¤¥º */ - fsblkcnt_t f_blocks; /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÁí¥Ç¡¼¥¿¥Ö¥í¥Ã¥¯¿ô */ - fsblkcnt_t f_bfree; /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¶õ¤­¥Ö¥í¥Ã¥¯¿ô */ - fsblkcnt_t f_bavail; /* ÈóÆø¢¥æ¡¼¥¶¤¬ÍøÍѲÄǽ¤Ê¶õ¤­¥Ö¥í¥Ã¥¯¿ô */ - fsfilcnt_t f_files; /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÁí¥Õ¥¡¥¤¥ë¥Î¡¼¥É¿ô */ - fsfilcnt_t f_ffree; /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¶õ¤­¥Õ¥¡¥¤¥ë¥Î¡¼¥É¿ô */ - fsid_t f_fsid; /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î ID */ - __SWORD_TYPE f_namelen; /* ¥Õ¥¡¥¤¥ë̾¤ÎºÇÂçĹ */ - __SWORD_TYPE f_frsize; /* ¥Õ¥é¥°¥á¥ó¥È¥µ¥¤¥º (Linux 2.6 °Ê¹ß) */ + __SWORD_TYPE f_type; /* ファイルシステムの種別 (下記参照) */ + __SWORD_TYPE f_bsize; /* 最適な転送ブロックサイズ */ + fsblkcnt_t f_blocks; /* ファイルシステムの総データブロック数 */ + fsblkcnt_t f_bfree; /* ファイルシステムの空きブロック数 */ + fsblkcnt_t f_bavail; /* 非特権ユーザが利用可能な空きブロック数 */ + fsfilcnt_t f_files; /* ファイルシステムの総ファイルノード数 */ + fsfilcnt_t f_ffree; /* ファイルシステムの空きファイルノード数 */ + fsid_t f_fsid; /* ファイルシステムの ID */ + __SWORD_TYPE f_namelen; /* ファイル名の最大長 */ + __SWORD_TYPE f_frsize; /* フラグメントサイズ (Linux 2.6 以降) */ __SWORD_TYPE f_spare[5]; }; .\"O File system types: -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î·¿: +ファイル・システムの型: ADFS_SUPER_MAGIC 0xadf5 AFFS_SUPER_MAGIC 0xADFF @@ -137,12 +137,12 @@ struct statfs { JFFS2_SUPER_MAGIC 0x72b6 JFS_SUPER_MAGIC 0x3153464a .\"O MINIX_SUPER_MAGIC 0x137F /* orig. minix */ - MINIX_SUPER_MAGIC 0x137F /* ¥ª¥ê¥¸¥Ê¥ë¤Î minix */ + MINIX_SUPER_MAGIC 0x137F /* オリジナルの minix */ .\"O MINIX_SUPER_MAGIC2 0x138F /* 30 char minix */ - MINIX_SUPER_MAGIC2 0x138F /* 30 ʸ»ú¥Õ¥¡¥¤¥ë̾¤Î minix */ + MINIX_SUPER_MAGIC2 0x138F /* 30 文字ファイル名の minix */ MINIX2_SUPER_MAGIC 0x2468 /* minix V2 */ .\"O MINIX2_SUPER_MAGIC2 0x2478 /* minix V2, 30 char names */ - MINIX2_SUPER_MAGIC2 0x2478 /* minix V2, 30 ʸ»ú¥Õ¥¡¥¤¥ë̾ */ + MINIX2_SUPER_MAGIC2 0x2478 /* minix V2, 30 文字ファイル名 */ MSDOS_SUPER_MAGIC 0x4d44 NCP_SUPER_MAGIC 0x564c NFS_SUPER_MAGIC 0x6969 @@ -170,51 +170,51 @@ struct statfs { .\"O .I f_fsid .\"O is supposed to contain (but see below). .I f_fsid -¤Ë¤É¤ó¤ÊÃͤ¬Æþ¤ë¤Ù¤­¤Ê¤Î¤«¤Ïï¤âÃΤé¤Ê¤¤ (⤷¡¢²¼µ­¤ò»²¾È)¡£ +にどんな値が入るべきなのかは誰も知らない (但し、下記を参照)。 .PP .\"O Fields that are undefined for a particular file system are set to 0. .\"O .BR fstatfs () .\"O returns the same information about an open file referenced by descriptor .\"O .IR fd . -¤½¤ì¤¾¤ì¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ̤ÄêµÁ¤Î¥Õ¥£¡¼¥ë¥É¤Ë¤Ï 0 ¤¬ -ÀßÄꤵ¤ì¤ë¡£ +それぞれのファイル・システムにおいて未定義のフィールドには 0 が +設定される。 .BR fstatfs () -¤Ï¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ +はディスクリプター .I fd -¤Ë¤è¤Ã¤Æ»²¾È¤µ¤ì¤ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¡¢Æ±¤¸¾ðÊó¤òÊÖ¤¹¡£ +によって参照されるオープンされたファイルについて、同じ情報を返す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤¹¤ì¤Ð 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功すれば 0 が返される。エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O .RB ( statfs ()) .\"O Search permission is denied for a component of the path prefix of .\"O .IR path . .RB ( statfs () -¤Î¾ì¹ç) +の場合) .I path -¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤Ë¸¡º÷µö²Ä¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤ +のディレクトリ部分に検索許可が与えられていない .\"O (See also .\"O .BR path_resolution (7).) .RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È)¡£ +も参照すること)。 .TP .B EBADF .\"O .RB ( fstatfs ()) .\"O .I fd .\"O is not a valid open file descriptor. .RB ( fstatfs () -¤Î¾ì¹ç) +の場合) .I fd -¤ÏÍ­¸ú¤Ê¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ç¤Ï¤Ê¤¤¡£ +は有効なオープンされたファイル・ディスクリプターではない。 .TP .B EFAULT .\"O .I buf @@ -222,35 +222,35 @@ struct statfs { .\"O .I path .\"O points to an invalid address. .I buf -¤Þ¤¿¤Ï +または .I path -¤¬ÉÔÀµ¤Ê¥¢¥É¥ì¥¹¤ò»Ø¤·¤Æ¤¤¤ë¡£ +が不正なアドレスを指している。 .TP .B EINTR .\"O This call was interrupted by a signal. -¤³¤Î¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¤ÇÃæÃǤµ¤ì¤¿¡£ +この呼び出しがシグナルで中断された。 .TP .B EIO .\"O An I/O error occurred while reading from the file system. -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ÎÆɤ߹þ¤ß¤Î´Ö¤Ë I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +ファイル・システムの読み込みの間に I/O エラーが発生した。 .TP .B ELOOP .\"O .RB ( statfs ()) .\"O Too many symbolic links were encountered in translating .\"O .IR path . .RB ( statfs () -¤Î¾ì¹ç) +の場合) .I path -¤ò²ò·è¤¹¤ë¤Î¤Ëé¤ë¤Ù¤­¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿¤¹¤®¤ë¡£ +を解決するのに辿るべきシンボリック・リンクが多すぎる。 .TP .B ENAMETOOLONG .\"O .RB ( statfs ()) .\"O .I path .\"O is too long. .RB ( statfs () -¤Î¾ì¹ç) +の場合) .I path -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENOENT .\"O .RB ( statfs ()) @@ -258,17 +258,17 @@ struct statfs { .\"O .I path .\"O does not exist. .RB ( statfs () -¤Î¾ì¹ç) +の場合) .I path -¤Ë¤è¤Ã¤Æ»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ +によって参照されるファイルが存在しない。 .TP .B ENOMEM .\"O Insufficient kernel memory was available. -¥«¡¼¥Í¥ë¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +カーネルに十分なメモリがない。 .TP .B ENOSYS .\"O The file system does not support this call. -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤¬¤³¤Î¸Æ¤Ó½Ð¤·¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +ファイル・システムがこの呼び出しをサポートしていない。 .TP .B ENOTDIR .\"O .RB ( statfs ()) @@ -276,27 +276,27 @@ struct statfs { .\"O .I path .\"O is not a directory. .RB ( statfs () -¤Î¾ì¹ç) +の場合) .I path -¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +のディレクトリ部分がディレクトリでない。 .TP .B EOVERFLOW .\"O Some values were too large to be represented in the returned struct. -Ãͤ¬Â礭²á¤®¤ë¤¿¤á¡¢ÊÖ¤êÃͤι½Â¤ÂΤÇɽ¸½¤Ç¤­¤Ê¤¤¡£ +値が大き過ぎるため、返り値の構造体で表現できない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O Linux-specific. .\"O The Linux .\"O .BR statfs () .\"O was inspired by the 4.4BSD one .\"O (but they do not use the same structure). -Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -Linux ¤Î +Linux 固有である。 +Linux の .BR statfs () -¤Ï 4.4BSD ¤Î¤â¤Î¤Ë±Æ¶Á¤ò¼õ¤±¤Æ¤¤¤ë¡£ -(¤·¤«¤·Æ±¤¸¹½Â¤ÂΤò»ÈÍѤ·¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤) +は 4.4BSD のものに影響を受けている。 +(しかし同じ構造体を使用しているわけではない) .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The kernel has system calls .\"O .BR statfs (), .\"O .BR fstatfs (), @@ -304,22 +304,22 @@ Linux .\"O and .\"O .BR fstatfs64 () .\"O to support this library call. -¤³¤Î¥é¥¤¥Ö¥é¥ê¥³¡¼¥ë¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¿¤á¡¢ -¥«¡¼¥Í¥ë¤Ë¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë +このライブラリコールをサポートするため、 +カーネルにはシステムコール .BR statfs (), .BR fstatfs (), .BR statfs64 (), .BR fstatfs64 () -¤¬¤¢¤ë¡£ +がある。 .\"O Some systems only have \fI\fP, other systems also have .\"O \fI\fP, where the former includes the latter. .\"O So it seems .\"O including the former is the best choice. -\fI\fP ¤·¤«»ý¤¿¤Ê¤¤¥·¥¹¥Æ¥à¤â¤¢¤ê¡¢ -\fI\fP ¤â»ý¤Ã¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ -Á°¼Ô¤Ï¸å¼Ô¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤Î¤Ç¡¢ -Á°¼Ô¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤Î¤¬Îɤ¤¤È¹Í¤¨¤é¤ì¤ë¡£ +\fI\fP しか持たないシステムもあり、 +\fI\fP も持っているシステムもある。 +前者は後者をインクルードするので、 +前者をインクルードするのが良いと考えられる。 .\"O LSB has deprecated the library calls .\"O .BR statfs () @@ -330,15 +330,15 @@ Linux .\"O and .\"O .BR fstatvfs (2) .\"O instead. -LSB ¤Ç¤Ï¥é¥¤¥Ö¥é¥ê¥³¡¼¥ë +LSB ではライブラリコール .BR statfs (), .BR fstatfs () -¤òÈó¿ä¾©¤È¤·¤Æ¡¢Âå¤ï¤ê¤Ë +を非推奨として、代わりに .BR statvfs (2), .BR fstatvfs (2) -¤ò»È¤¦¤è¤¦¤Ë»Ø¼¨¤·¤Æ¤¤¤ë¡£ +を使うように指示している。 .\"O .SS The f_fsid field -.SS f_fsid ¥Õ¥£¡¼¥ë¥É +.SS f_fsid フィールド .\"O Solaris, Irix and POSIX have a system call .\"O .BR statvfs (2) .\"O that returns a @@ -348,17 +348,17 @@ LSB .\"O containing an .\"O .I "unsigned long" .\"O .IR f_fsid . -Solaris, Irix, POSIX ¤Ë¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë +Solaris, Irix, POSIX にはシステムコール .BR statvfs (2) -¤¬¤¢¤ê¡¢ +があり、 .I "struct statvfs" -¤òÊÖ¤¹ +を返す .RI ( -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ -¤³¤Î¹½Â¤ÂΤˤϡ¢ +で定義されている)。 +この構造体には、 .I "unsigned long" .I f_fsid -¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +が含まれている。 .\"O Linux, SunOS, HP-UX, 4.4BSD have a system call .\"O .BR statfs () .\"O that returns a @@ -372,26 +372,26 @@ Solaris, Irix, POSIX .\"O .I fsid_t .\"O is defined as .\"O .IR "struct { int val[2]; }" . -Linux, SunOS, HP-UX, 4.4BSD ¤Ë¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë +Linux, SunOS, HP-UX, 4.4BSD にはシステムコール .BR statfs () -¤¬¤¢¤ê¡¢ +があり、 .I "struct statfs" -¤òÊÖ¤¹ +を返す .RI ( -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ -¤³¤Î¹½Â¤ÂÎ¤Ë¤Ï +で定義されている)。 +この構造体には .I fsid_t .IR f_fsid , -¤¬´Þ¤Þ¤ì¤Æ¤ª¤ê¡¢ +が含まれており、 .I fsid_t -¤Ï +は .I "struct { int val[2]; }" -¤ÈÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +と定義されている。 .\"O The same holds for FreeBSD, except that it uses the include file .\"O .IR . -FreeBSD ¤Ç¤âƱ¤¸¤Ç¤¢¤ë¤¬¡¢¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +FreeBSD でも同じであるが、インクルードファイル .I -¤ò»È¤¦¡£ +を使う。 .\"O The general idea is that .\"O .I f_fsid @@ -399,39 +399,39 @@ FreeBSD .\"O .RI ( f_fsid , ino ) .\"O uniquely determines a file. .I f_fsid -¤Ï¤¢¤ë¥é¥ó¥À¥à¤ÊÃͤò»ý¤Á¡¢ +はあるランダムな値を持ち、 .RI ( f_fsid , ino ) -¤È¤¤¤¦ 1 ÁȤÎÃͤǥե¡¥¤¥ë¤ò°ì°Õ¤Ë·èÄê¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡¢ -¤È¤¤¤¦¤Î¤¬´ðËÜŪ¤Ê¹Í¤¨Êý¤Ç¤¢¤ë¡£ +という 1 組の値でファイルを一意に決定できるようにする、 +というのが基本的な考え方である。 .\"O Some operating systems use (a variation on) the device number, or the device number .\"O combined with the file-system type. -¤¤¤¯¤Ä¤«¤Î OS ¤Ç¤Ï¡¢¥Ç¥Ð¥¤¥¹ÈÖ¹æ (¤ÎÊѼï) ¤ò»È¤Ã¤¿¤ê¡¢ -¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤È¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¥¿¥¤¥×¤òÁȤ߹ç¤ï¤»¤Æ»È¤Ã¤¿¤ê¤·¤Æ¤¤¤ë¡£ +いくつかの OS では、デバイス番号 (の変種) を使ったり、 +デバイス番号とファイル・システムタイプを組み合わせて使ったりしている。 .\"O Several OSes restrict giving out the .\"O .I f_fsid .\"O field to the superuser only (and zero it for unprivileged users), .\"O because this field is used in the filehandle of the file system .\"O when NFS-exported, and giving it out is a security concern. -OS ¤ÎÃæ¤Ë¤Ï +OS の中には .I f_fsid -¥Õ¥£¡¼¥ë¥É¤Î¼èÆÀ¤ò¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ë¸ÂÄꤷ¤Æ¤¤¤ë¤â¤Î¤â¤¢¤ë -(ÈóÆø¢¥æ¡¼¥¶¤¬¼èÆÀ¤¹¤ë¤È 0 ¤È¤Ê¤ë)¡£ -NFS ¤Ç¥¨¥¯¥¹¥Ý¡¼¥È¤µ¤ì¤ë¾ì¹ç¡¢ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤¬¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤Ç»È¤ï¤ì¤Æ¤ª¤ê¡¢ -¤³¤ÎÃͤòÄ󶡤¹¤ë¤È¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÌäÂ꤬¤¢¤ë¡£ +フィールドの取得をスーパーユーザに限定しているものもある +(非特権ユーザが取得すると 0 となる)。 +NFS でエクスポートされる場合、 +このフィールドがファイル・システムのファイルハンドルで使われており、 +この値を提供するとセキュリティ上の問題がある。 .LP .\"O Under some operating systems the .\"O .I fsid .\"O can be used as second argument to the .\"O .BR sysfs (2) .\"O system call. -¤¤¤¯¤Ä¤«¤Î OS ¤Ç¤Ï¡¢ +いくつかの OS では、 .I fsid -¤ò +を .BR sysfs (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÂè 2 °ú¤­¿ô¤È¤·¤Æ»ÈÍѤǤ­¤ë¡£ +システムコールの第 2 引き数として使用できる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR stat (2), .BR statvfs (2), .BR path_resolution (7) diff --git a/draft/man2/stime.2 b/draft/man2/stime.2 index 148f57f2..06378df5 100644 --- a/draft/man2/stime.2 +++ b/draft/man2/stime.2 @@ -34,13 +34,13 @@ .\" Updated 2003-09-08, Kentaro Shirakata .\" Updated 2005-02-24, Akihiro MOTOKI .\" -.\"WORD: GMT ¥°¥ê¥Ë¥Ã¥¸Ê¿¶Ñ»þ(GMT) -.\"WORD: superuser ¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼ +.\"WORD: GMT グリニッジ平均時(GMT) +.\"WORD: superuser スーパーユーザー .\" .TH STIME 2 2007-07-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -stime \- »þ´Ö¤òÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +stime \- 時間を設定する +.SH 書式 .B #include .sp .BI "int stime(time_t *" t ); @@ -48,53 +48,53 @@ stime \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR stime (): _SVID_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR stime () .\"O sets the system's idea of the time and date. .\"O The time, pointed .\"O to by \fIt\fP, is measured in seconds since the .\"O Epoch, 1970-01-01 00:00:00 +0000 (UTC). .BR stime () -¤Ï¥·¥¹¥Æ¥à¤Î»þ¹ï¤ÈÆüÉÕ¤òÀßÄꤹ¤ë¡£ -\fIt\fP ¤¬»Ø¤¹»þ¹ï¤Ï¡¢»þ¹ïµª¸µ (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) -¤«¤é¤ÎÉÿô¤Ç»ØÄꤹ¤ë¡£ +はシステムの時刻と日付を設定する。 +\fIt\fP が指す時刻は、時刻紀元 (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) +からの秒数で指定する。 .\"O .BR stime () .\"O may only be executed by the superuser. -¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¤Î¤ß¤¬ +スーパーユーザーのみが .BR stime () -¤ò¼Â¹Ô¤Ç¤­¤ë¡£ +を実行できる。 -(ÌõÃí: Àµ³Î¤Ë¤Ï¥°¥ê¥Ë¥Ã¥¸Ê¿¶Ñ»þ(GMT)¤Ç¤Ï¤Ê¤¯¶¨ÄêÀ¤³¦»þ(UTC)¤¬»ÈÍѤµ¤ì¤ë) -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï¥¼¥í¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +(訳注: 正確にはグリニッジ平均時(GMT)ではなく協定世界時(UTC)が使用される) +.SH 返り値 +成功した場合はゼロが返される。エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EFAULT .\"O Error in getting information from user space. -¥æ¡¼¥¶¡¼¶õ´Ö¤«¤é¾ðÊó¤òÆÀ¤ë¤È¤­¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +ユーザー空間から情報を得るときにエラーが発生した。 .TP .B EPERM .\"O The calling process has insufficient privilege. .\"O Under Linux the .\"O .B CAP_SYS_TIME .\"O privilege is required. -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬½½Ê¬¤Ê¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -Linux ¤Ç¤Ï +呼び出し元のプロセスが十分な権限を持っていない。 +Linux では .B CAP_SYS_TIME -¸¢¸Â¤¬É¬ÍפǤ¢¤ë¡£ -.SH ½àµò +権限が必要である。 +.SH 準拠 SVr4. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR date (1), .BR settimeofday (2), .BR capabilities (7) diff --git a/draft/man2/swapon.2 b/draft/man2/swapon.2 index 005bbb21..1e05f7a1 100644 --- a/draft/man2/swapon.2 +++ b/draft/man2/swapon.2 @@ -44,25 +44,25 @@ .\" by Yuichi SATO .\" Updated 2007-09-04, Akihiro MOTOKI , LDP v2.64 .\" -.\"WORD: swap ¥¹¥ï¥Ã¥× -.\"WORD: block device ¥Ö¥í¥Ã¥¯¡¦¥Ç¥Ð¥¤¥¹ -.\"WORD: super-user ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ -.\"WORD: round robin ¥é¥¦¥ó¥É¡¦¥í¥Ó¥ó -.\"WORD: partition ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó -.\"WORD: page ¥Ú¡¼¥¸ -.\"WORD: kernel ¥«¡¼¥Í¥ë +.\"WORD: swap スワップ +.\"WORD: block device ブロック・デバイス +.\"WORD: super-user スーパー・ユーザー +.\"WORD: round robin ラウンド・ロビン +.\"WORD: partition パーティション +.\"WORD: page ページ +.\"WORD: kernel カーネル .\" .TH SWAPON 2 2010-06-15 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O swapon, swapoff \- start/stop swapping to file/device -swapon, swapoff \- ¥Õ¥¡¥¤¥ë/¥Ç¥Ð¥¤¥¹¤Ø¤Î¥¹¥ï¥Ã¥×¤ò³«»Ï/Ää»ß¤¹¤ë +swapon, swapoff \- ファイル/デバイスへのスワップを開始/停止する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .\"O .B #include /* to find PAGE_SIZE */ -.B #include /* PAGE_SIZE ¤ò¸«¤Ä¤±¤ë¤¿¤á */ +.B #include /* PAGE_SIZE を見つけるため */ .br .B #include .sp @@ -70,46 +70,46 @@ swapon, swapoff \- .br .BI "int swapoff(const char *" path ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR swapon () .\"O sets the swap area to the file or block device specified by .\"O .IR path . .BR swapon () -¤Ï +は .I path -¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ä¥Ö¥í¥Ã¥¯¡¦¥Ç¥Ð¥¤¥¹¤Ë¥¹¥ï¥Ã¥×Îΰè¤òÀßÄꤹ¤ë¡£ +で指定されたファイルやブロック・デバイスにスワップ領域を設定する。 .\"O .BR swapoff () .\"O stops swapping to the file or block device specified by .\"O .IR path . .BR swapoff () -¤Ï +は .I path -¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ä¥Ö¥í¥Ã¥¯¡¦¥Ç¥Ð¥¤¥¹¤Ø¤Î¥¹¥ï¥Ã¥×¤òÄä»ß¤¹¤ë¡£ +で指定されたファイルやブロック・デバイスへのスワップを停止する。 .PP .\"O .BR swapon () .\"O takes a .\"O .I swapflags .\"O argument. .BR swapon () -¤Ï +は .I swapflags -°ú¤­¿ô¤ò¼è¤ë¡£ +引き数を取る。 .\"O If .\"O .I swapflags .\"O has the .\"O .B SWAP_FLAG_PREFER .\"O bit turned on, the new swap area will have a higher priority than default. .I swapflags -¤Ë +に .B SWAP_FLAG_PREFER -¥Ó¥Ã¥È¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢¿·¤·¤¤¥¹¥ï¥Ã¥×Îΰè¤Ï¥Ç¥Õ¥©¥ë¥È¤è¤ê¤â¹â¤¤ -Í¥ÀèÅÙ¤ò»ý¤Ä¡£ +ビットが設定された場合は、新しいスワップ領域はデフォルトよりも高い +優先度を持つ。 .\"O The priority is encoded within .\"O .I swapflags .\"O as: -Í¥ÀèÅÙ¤Ï +優先度は .I swapflags -¤Ë°Ê²¼¤Î¤è¤¦¤Ë¥³¡¼¥É²½¤µ¤ì¤Æ¤¤¤ë¡£ +に以下のようにコード化されている。 .br .sp .I " (prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK" @@ -118,19 +118,19 @@ swapon, swapoff \- .\"O These functions may only be used by a privileged process (one having the .\"O .B CAP_SYS_ADMIN .\"O capability). -¤³¤ì¤é¤Î´Ø¿ô¤ÏÆø¢¥×¥í¥»¥¹ +これらの関数は特権プロセス .RB ( CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤Ä¥×¥í¥»¥¹) ¤Î¤ß¤¬»ÈÍѤǤ­¤ë¡£ +ケーパビリティ (capability) を持つプロセス) のみが使用できる。 .\"O .SS Priority -.SS Í¥ÀèÅÙ +.SS 優先度 .\"O Each swap area has a priority, either high or low. .\"O The default priority is low. .\"O Within the low-priority areas, .\"O newer areas are even lower priority than older areas. -¤½¤ì¤¾¤ì¤Î¥¹¥ï¥Ã¥×Îΰè¤Ï¹â (high) ¤ÈÄã (low) ¤Î¤É¤Á¤é¤«¤ÎÍ¥ÀèÅÙ¤ò»ý¤Ä¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÍ¥ÀèÅÙ¤ÏÄã¤Ç¤¢¤ë¡£ -Ä㤤ͥÀèÅÙ¤ÎÎΰè¤Ë¤ª¤¤¤Æ¡¢¿·¤·¤¤Îΰè¤Ï¸Å¤¤Îΰè¤è¤ê¤µ¤é¤ËÄ㤤 -Í¥ÀèÅÙ¤ò»ý¤Ä¡£ +それぞれのスワップ領域は高 (high) と低 (low) のどちらかの優先度を持つ。 +デフォルトの優先度は低である。 +低い優先度の領域において、新しい領域は古い領域よりさらに低い +優先度を持つ。 .PP .\"O All priorities set with .\"O .I swapflags @@ -138,9 +138,9 @@ swapon, swapoff \- .\"O They may have any nonnegative value chosen by the caller. .\"O Higher numbers mean higher priority. .I swapflags -¤¬ÀßÄꤵ¤ì¤¿¤â¤Î¤ÏÁ´¤Æ¹â¤¤Í¥ÀèÅ٤Ȥʤꡢ¥Ç¥Õ¥©¥ë¥È¤è¤ê¤â¹â¤¤Í¥ÀèÅÙ¤ò»ý¤Ä¡£ -»ÈÍѼԤϤ½¤ì¤é¤ËÉé¤Ç¤Ê¤¤Ãͤ¬»ØÄê¤Ç¤­¤ë¡£ -Â礭¤Ê¿ô»ú¤Ï¹â¤¤Í¥ÀèÅÙ¤ò°ÕÌ£¤¹¤ë¡£ +が設定されたものは全て高い優先度となり、デフォルトよりも高い優先度を持つ。 +使用者はそれらに負でない値が指定できる。 +大きな数字は高い優先度を意味する。 .PP .\"O Swap pages are allocated from areas in priority order, .\"O highest priority first. @@ -149,27 +149,27 @@ swapon, swapoff \- .\"O If two or more areas have the same priority, .\"O and it is the highest priority available, .\"O pages are allocated on a round-robin basis between them. -¹â¤¤Í¥ÀèÅÙ¤ÎÎΰ褫¤é½ç¤Ë¥¹¥ï¥Ã¥×¡¦¥Ú¡¼¥¸¤È¤·¤Æ»ÈÍѤµ¤ì¤ë¡£ -¤è¤êÄ㤤ͥÀèÅÙ¤ÎÎΰè¤ò»ÈÍѤ¹¤ëÁ°¤Ë¤è¤ê¹â¤¤Í¥ÀèÅ٤Π-Îΰè¤ò»È¤¤Àڤ롣¤â¤·Æó¤Ä°Ê¾å¤ÎÎΰ褬Ʊ¤¸Í¥ÀèÅÙ¤ò»ý¤Á¡¢ -»È¤¨¤ëÃæ¤Ç°ìÈֹ⤤ͥÀèÅ٤Ǥ¢¤ì¤Ð¡¢¤½¤ì¤é¤Î¥Ú¡¼¥¸¤Ï´Ö¤Ç -¥é¥¦¥ó¥É¡¦¥í¥Ó¥óÊý¼°¤ÇÇÛʬ¤µ¤ì¤ë¡£ +高い優先度の領域から順にスワップ・ページとして使用される。 +より低い優先度の領域を使用する前により高い優先度の +領域を使い切る。もし二つ以上の領域が同じ優先度を持ち、 +使える中で一番高い優先度であれば、それらのページは間で +ラウンド・ロビン方式で配分される。 .PP .\"O As of Linux 1.3.6, the kernel usually follows these rules, .\"O but there are exceptions. -Linux 1.3.6 ¤Ë¤ª¤¤¤Æ¡¢¥«¡¼¥Í¥ë¤ÏÄ̾ï¤Ï¤³¤ì¤é¤Îµ¬Â§¤Ë½¾¤Ã¤Æ¤¤¤ë¡£ -¤·¤«¤·Îã³°¤â¸ºß¤·¤Æ¤¤¤ë¡£ +Linux 1.3.6 において、カーネルは通常はこれらの規則に従っている。 +しかし例外も存在している。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合は 0 が返される。エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBUSY .\"O (for @@ -178,17 +178,17 @@ Linux 1.3.6 .\"O .I path .\"O is already being used as a swap area. .RB ( swapon () -¤Ë¤ª¤¤¤Æ) »ØÄꤵ¤ì¤¿ +において) 指定された .I path -¤¬´û¤Ë¥¹¥ï¥Ã¥×Îΰè¤È¤·¤Æ»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ +が既にスワップ領域として使用されている。 .TP .B EINVAL .\"O The file .\"O .I path .\"O exists, but refers neither to a regular file nor to a block device; -¥Õ¥¡¥¤¥ë +ファイル .I path -¤Ï¸ºß¤¹¤ë¤¬¡¢Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤â¥Ö¥í¥Ã¥¯¡¦¥Ç¥Ð¥¤¥¹¤â»²¾È¤·¤Æ¤¤¤Ê¤¤¡£ +は存在するが、通常のファイルもブロック・デバイスも参照していない。 .\"O or, for .\"O .BR swapon (), .\"O the indicated path does not contain a valid swap signature or @@ -197,32 +197,32 @@ Linux 1.3.6 .\"O .BR swapoff (), .\"O .I path .\"O is not currently a swap area. -¤Þ¤¿¤Ï +または .BR swapon () -¤Ë¤ª¤¤¤Æ¡¢»ØÄꤵ¤ì¤¿ path ¤Î¥Õ¥¡¥¤¥ë¤¬Í­¸ú¤Ê¥¹¥ï¥Ã¥×¤Î½ð̾ (signature) ¤ò -´Þ¤ó¤Ç¤¤¤Ê¤¤¤«¡¢tmpfs ¤Î¤è¤¦¤Ê¥¤¥ó¥á¥â¥ê (in-memory) ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -¾å¤Ë¤¢¤ë¡£ -¤Þ¤¿¤Ï +において、指定された path のファイルが有効なスワップの署名 (signature) を +含んでいないか、tmpfs のようなインメモリ (in-memory) のファイルシステム +上にある。 +または .BR swapoff () -¤Ë¤ª¤¤¤Æ¡¢ +において、 .I path -¤¬¸½ºß¤Î¤È¤³¤í¥¹¥ï¥Ã¥×Îΰè¤Ç¤Ê¤¤¡£ +が現在のところスワップ領域でない。 .TP .B ENFILE .\"O The system limit on the total number of open files has been reached. -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ÎÁí¿ô¤¬¥·¥¹¥Æ¥à¤ÎÀ©¸Â¤Ë㤷¤¿¡£ +オープンされたファイルの総数がシステムの制限に達した。 .TP .B ENOENT .\"O The file .\"O .I path .\"O does not exist. -¥Õ¥¡¥¤¥ë +ファイル .I path -¤¬Â¸ºß¤·¤Ê¤¤¡£ +が存在しない。 .TP .B ENOMEM .\"O The system has insufficient memory to start swapping. -¥¹¥ï¥Ã¥×¤ò³«»Ï¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¥á¥â¥ê¡¼¤¬¥·¥¹¥Æ¥à¤Ë¤Ê¤¤¡£ +スワップを開始するのに十分なメモリーがシステムにない。 .TP .B EPERM .\"O The caller does not have the @@ -230,30 +230,30 @@ Linux 1.3.6 .\"O capability. .\"O Alternatively, the maximum number of swap files are already in use; .\"O see NOTES below. -»ÈÍѼԤ¬ +使用者が .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -¤â¤·¤¯¤Ï¡¢ºÇÂç¿ô¤Î¥¹¥ï¥Ã¥×¥Õ¥¡¥¤¥ë¤¬¤¹¤Ç¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë -(²¼µ­¤Î¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È)¡£ +ケーパビリティを持っていない。 +もしくは、最大数のスワップファイルがすでに使用されている +(下記の「注意」の節を参照)。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These functions are Linux-specific and should not be used in programs .\"O intended to be portable. -¤³¤ì¤é¤Î´Ø¿ô¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï -»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ +これらの関数は Linux 特有であり、移植を意図したプログラムでは +使用してはいけない。 .\"O The second .\"O .I swapflags .\"O argument was introduced in Linux 1.3.2. -ÆóÈÖÌܤΠ+二番目の .I swapflags -°ú¤­¿ô¤Ï Linux 1.3.2 ¤«¤éƳÆþ¤µ¤ì¤¿¡£ +引き数は Linux 1.3.2 から導入された。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The partition or path must be prepared with .\"O .BR mkswap (8). -¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ä¥Ñ¥¹¤Ï +パーティションやパスは .BR mkswap (8) -¤Ë¤è¤Ã¤Æ½àÈ÷¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +によって準備されていなければならない。 .\"O There is an upper limit on the number of swap files that may be used, .\"O defined by the kernel constant @@ -274,29 +274,29 @@ Linux 1.3.6 .\"O if the kernel is built with the .\"O .B CONFIG_MEMORY_FAILURE .\"O option. -»ÈÍѤǤ­¤ë¥¹¥ï¥Ã¥×¥Õ¥¡¥¤¥ë¤Î¿ô¤Ë¤Ï¾å¸Â¤¬¤¢¤ê¡¢¤½¤Î¾å¸Â¤Ï -¥«¡¼¥Í¥ëÄê¿ô +使用できるスワップファイルの数には上限があり、その上限は +カーネル定数 .B MAX_SWAPFILES -¤ÇÄêµÁ¤µ¤ì¤ë¡£ +で定義される。 .B MAX_SWAPFILES -¤ÎÃͤϡ¢¥«¡¼¥Í¥ë 2.4.10 ¤è¤êÁ°¤Ç¤Ï 8¡¢ -¥«¡¼¥Í¥ë 2.4.10 °Ê¹ß¤Ç¤Ï 32 ¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë 2.6.18 °Ê¹ß¤Ç¤Ï¡¢¥«¡¼¥Í¥ë¤¬ +の値は、カーネル 2.4.10 より前では 8、 +カーネル 2.4.10 以降では 32 である。 +カーネル 2.6.18 以降では、カーネルが .B CONFIG_MIGRATION -¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤·¤ÆºîÀ®¤µ¤ì¤¿¾ì¹ç¡¢ -¤³¤Î¾å¸Â¤¬ 2 ¾¯¤Ê¤¤ÃÍ (¤Ä¤Þ¤ê 30) ¤È¤Ê¤ë -(¤³¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +オプションを有効にして作成された場合、 +この上限が 2 少ない値 (つまり 30) となる +(このカーネルでは、 .BR mbind (2) -¤È +と .BR migrate_pages (2) -¤Î¥Ú¡¼¥¸¡¦¥Þ¥¤¥°¥ì¡¼¥·¥ç¥óµ¡Ç½ÍѤ˥¹¥ï¥Ã¥×¡¦¥Æ¡¼¥Ö¥ë¤Î¥¨¥ó¥È¥ê¡¼¤¬ -Æó¤ÄͽÌ󤵤ì¤ë)¡£ -¥«¡¼¥Í¥ë 2.6.32 °Ê¹ß¤Ç¤Ï¡¢¥«¡¼¥Í¥ë¤¬ +のページ・マイグレーション機能用にスワップ・テーブルのエントリーが +二つ予約される)。 +カーネル 2.6.32 以降では、カーネルが .B CONFIG_MEMORY_FAILURE -¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤·¤ÆºîÀ®¤µ¤ì¤¿¾ì¹ç¡¢ -¤³¤Î¾å¸Â¤¬¤µ¤é¤Ë 1 ¾¯¤Ê¤¤ÃͤȤʤ롣 +オプションを有効にして作成された場合、 +この上限がさらに 1 少ない値となる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mkswap (8), .BR swapoff (8), .BR swapon (8) diff --git a/draft/man2/symlink.2 b/draft/man2/symlink.2 index f2715985..63846643 100644 --- a/draft/man2/symlink.2 +++ b/draft/man2/symlink.2 @@ -36,25 +36,25 @@ .\" Updated & Modifed Sat Feb 12 11:20:18 JST 2005 .\" by Yuichi SATO .\" -.\"WORD: symbolic link ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: directory ¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: soft link ¥½¥Õ¥È¡¦¥ê¥ó¥¯ -.\"WORD: hard link ¥Ï¡¼¥É¡¦¥ê¥ó¥¯ -.\"WORD: dangling link ²õ¤ì¤¿¥ê¥ó¥¯ -.\"WORD: sticky bit ¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È -.\"WORD: ownership ½êÍ­¸¢ -.\"WORD: file system ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à -.\"WORD: effective uid ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: entry ¥¨¥ó¥È¥ê +.\"WORD: symbolic link シンボリック・リンク +.\"WORD: directory ディレクトリ +.\"WORD: soft link ソフト・リンク +.\"WORD: hard link ハード・リンク +.\"WORD: dangling link 壊れたリンク +.\"WORD: sticky bit スティッキー・ビット +.\"WORD: ownership 所有権 +.\"WORD: file system ファイル・システム +.\"WORD: effective uid 実効ユーザーID +.\"WORD: kernel カーネル +.\"WORD: entry エントリ .\" .TH SYMLINK 2 2010-09-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O symlink \- make a new name for a file -symlink \- ¥Õ¥¡¥¤¥ë¤Ë¿·¤·¤¤Ì¾Á°¤òÉÕ¤±¤ë +symlink \- ファイルに新しい名前を付ける .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int symlink(const char *" oldpath ", const char *" newpath ); @@ -62,9 +62,9 @@ symlink \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -75,42 +75,42 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED || _POSIX_C_SOURCE\ >=\ 200112L .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR symlink () .\"O creates a symbolic link named .\"O .I newpath .\"O which contains the string .\"O .IR oldpath . .BR symlink () -¤Ï +は .I oldpath -¤È¤¤¤¦Ê¸»úÎó¤ò¥Õ¥¡¥¤¥ë¤ÎÆâÍƤȤ·¤Æ»ý¤Ä +という文字列をファイルの内容として持つ .I newpath -¤È¤¤¤¦¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ (symbolic link) ¤òºîÀ®¤¹¤ë¡£ +というシンボリック・リンク (symbolic link) を作成する。 .\"O Symbolic links are interpreted at run time as if the contents of the .\"O link had been substituted into the path being followed to find a file or .\"O directory. -¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ï¼Â¹Ô»þ¤Ë²ò¼á¤µ¤ì¡¢ -¥ê¥ó¥¯¤ÎÆâÍƤǥѥ¹¤òÃÖ¤­´¹¤¨¤Æ¡¢¤½¤Î¥Ñ¥¹¤òé¤ë¤³¤È¤Ç¡¢ -¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥ì¥¯¥È¥ê¤ËÅþ㤹¤ë¡£ +シンボリック・リンクは実行時に解釈され、 +リンクの内容でパスを置き換えて、そのパスを辿ることで、 +ファイルやディレクトリに到達する。 .\"O Symbolic links may contain .\"O .I .. .\"O path components, which (if used at the start of the link) refer to the .\"O parent directories of that in which the link resides. -¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ï¥Ñ¥¹¤ÎÉôʬ¤Ë +シンボリック・リンクはパスの部分に .I .. -¤ò´Þ¤à¤«¤â¤·¤ì¤Ê¤¤¡£¤³¤ì¤Ï (¤â¤·¥ê¥ó¥¯¤ÎºÇ½é¤Ë»ÈÍѤµ¤ì¤¿¾ì¹ç¤Ï) ¥ê¥ó¥¯¤Î -¸ºß¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤¬»²¾È¤µ¤ì¤ë¡£ +を含むかもしれない。これは (もしリンクの最初に使用された場合は) リンクの +存在するディレクトリの親ディレクトリが参照される。 .\"O A symbolic link (also known as a soft link) may point to an existing .\"O file or to a nonexistent one; the latter case is known as a dangling .\"O link. -¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ï (¥½¥Õ¥È¡¦¥ê¥ó¥¯ (soft link) ¤È¤â¸Æ¤Ð¤ì) -¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¤ò»Ø¤·¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¤·¡¢ -¸ºß¤·¤Ê¤¤¥Õ¥¡¥¤¥ë¤ò»Ø¤·¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤; -¸å¼Ô¤Î¾ì¹ç¤Ï²õ¤ì¤¿¥ê¥ó¥¯ (dangling link) ¤È¤â¸Æ¤Ð¤ì¤ë¡£ +シンボリック・リンクは (ソフト・リンク (soft link) とも呼ばれ) +存在するファイルを指しているかもしれないし、 +存在しないファイルを指しているかもしれない; +後者の場合は壊れたリンク (dangling link) とも呼ばれる。 .\"O The permissions of a symbolic link are irrelevant; the ownership is .\"O ignored when following the link, but is checked when removal or @@ -118,12 +118,12 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED || _POSIX_C_SOURCE\ >=\ 200112L .\"O the sticky bit .\"O .RB ( S_ISVTX ) .\"O set. -¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Îµö²Ä (permission) ¤Ï̵°ÕÌ£¤Ç¤¢¤ë; -¥ê¥ó¥¯¤òÄÉÀפ¹¤ë¾ì¹ç¤Ë¤Ï½êÍ­¸¢ (ownership) ¤Ï̵»ë¤µ¤ì¤ë¡£ -¤¿¤À¤·¡¢¥ê¥ó¥¯¤Îºï½ü¤ä̾Á°¤ÎÊѹ¹¤¬Í׵ᤵ¤ì¡¢¤«¤Ä¥ê¥ó¥¯¤¬Â¸ºß¤¹¤ë -¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È (sticky bit) +シンボリック・リンクの許可 (permission) は無意味である; +リンクを追跡する場合には所有権 (ownership) は無視される。 +ただし、リンクの削除や名前の変更が要求され、かつリンクが存在する +ディレクトリにスティッキー・ビット (sticky bit) .RB ( S_ISVTX ) -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢½êÍ­¸¢¤Î¥Á¥§¥Ã¥¯¤¬¹Ô¤ï¤ì¤ë¡£ +が設定されている場合には、所有権のチェックが行われる。 .\"O If .\"O .I newpath @@ -131,18 +131,18 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED || _POSIX_C_SOURCE\ >=\ 200112L .\"O .I not .\"O be overwritten. .I newpath -¤¬´û¤Ë¸ºß¤¹¤ë¾ì¹ç¤Ë¤Ï¾å½ñ¤­¤Ï\fB¤µ¤ì¤Ê¤¤\fR¡£ +が既に存在する場合には上書きは\fBされない\fR。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï \-1 ¤òÊÖ¤·¡¢ +成功した場合には 0 を返す。エラーの場合には \-1 を返し、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O Write access to the directory containing @@ -153,35 +153,35 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED || _POSIX_C_SOURCE\ >=\ 200112L .\"O (See also .\"O .BR path_resolution (7).) .I newpath -¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ø¤Î½ñ¤­¹þ¤ß¤¬µñÈݤµ¤ì¤¿¤«¡¢ +を含んでいるディレクトリへの書き込みが拒否されたか、 .I newpath -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¤É¤ì¤«¤Ë¸¡º÷µö²Ä¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤ +に含まれているディレクトリのどれかに検索許可が与えられていない .RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È)¡£ +も参照すること)。 .TP .B EEXIST .\"O .I newpath .\"O already exists. .I newpath -¤¬´û¤Ë¸ºß¤·¤Æ¤¤¤ë¡£ +が既に存在している。 .TP .B EFAULT .\"O .IR oldpath " or " newpath " points outside your accessible address space." -.IR oldpath " ¤ä " newpath " ¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£" +.IR oldpath " や " newpath " がアクセス可能なアドレス空間の外を指している。" .TP .B EIO .\"O An I/O error occurred. -I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +I/O エラーが発生した。 .TP .B ELOOP .\"O Too many symbolic links were encountered in resolving .\"O .IR newpath . .I newpath -¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ +を解決する際に遭遇したシンボリック・リンクが多過ぎる。 .TP .B ENAMETOOLONG .\"O .IR oldpath " or " newpath " was too long." -.IR oldpath " ¤Þ¤¿¤Ï " newpath " ¤¬Ä¹²á¤®¤ë¡£" +.IR oldpath " または " newpath " が長過ぎる。" .TP .B ENOENT .\"O A directory component in @@ -190,69 +190,69 @@ I/O .\"O .I oldpath .\"O is the empty string. .I newpath -¤Ë´Þ¤Þ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢²õ¤ì¤¿¥ê¥ó¥¯¤Ç¤¢¤ë¤«¡¢ +に含まれるディレクトリ部分が存在しないか、壊れたリンクであるか、 .I oldpath -¤¬¶õʸ»úÎó¤Ç¤¢¤ë¡£ +が空文字列である。 .TP .B ENOMEM .\"O Insufficient kernel memory was available. -½½Ê¬¤Ê¥«¡¼¥Í¥ë (kernel) ¤Î¥á¥â¥ê¡¼¤¬¤Ê¤¤¡£ +十分なカーネル (kernel) のメモリーがない。 .TP .B ENOSPC .\"O The device containing the file has no room for the new directory .\"O entry. -¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¥Ç¥Ð¥¤¥¹¤Ë¿·¤·¤¤¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê -(directory entry) ¤òºîÀ®¤¹¤ë¤À¤±¤Î½½Ê¬¤ÊÍÆÎ̤¬¤Ê¤¤¡£ +ファイルが含まれているデバイスに新しいディレクトリ・エントリ +(directory entry) を作成するだけの十分な容量がない。 .TP .B ENOTDIR .\"O A component used as a directory in .\"O .I newpath .\"O is not, in fact, a directory. .I newpath -¤Ë´Þ¤Þ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬¡¢¼ÂºÝ¤Ë¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£ +に含まれるディレクトリ部分が、実際には、ディレクトリではない。 .TP .B EPERM .\"O The file system containing .\"O .I newpath .\"O does not support the creation of symbolic links. .I newpath -¤ò´Þ¤ó¤Ç¤¤¤ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à (file system) ¤¬ -¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤ÎºîÀ®¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +を含んでいるファイル・システム (file system) が +シンボリック・リンクの作成をサポートしていない。 .TP .B EROFS .\"O .I newpath .\"O is on a read-only file system. .I newpath -¤¬Æɤ߹þ¤ßÀìÍѤΥե¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë¸ºß¤·¤Æ¤¤¤ë¡£ +が読み込み専用のファイル・システムに存在している。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O .\" SVr4 documents additional error codes EDQUOT and ENOSYS. -.\" SVr4 ¤Ë¤Ï¾¤Ë EDQUOT, ENOSYS ¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ +.\" SVr4 には他に EDQUOT, ENOSYS エラーについての記述がある。 .\"O .\" See .\"O .\" .BR open (2) .\"O .\" re multiple files with the same name, and NFS. .\" .BR open (2) -.\" ¤ò¸«¤Æ¡¢Æ±¤¸Ì¾Á°¤Î½ÅÊ£¤È NFS ¤Ë¤Ä¤¤¤Æ»²¾È¤¹¤ë¤³¤È¡£ +.\" を見て、同じ名前の重複と NFS について参照すること。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O No checking of .\"O .I oldpath .\"O is done. .I oldpath -¤Ë¤Ä¤¤¤Æ¤Î¥Á¥§¥Ã¥¯¤Ï¹Ô¤Ê¤ï¤ì¤Ê¤¤¡£ +についてのチェックは行なわれない。 .\"O Deleting the name referred to by a symlink will actually delete the .\"O file (unless it also has other hard links). .\"O If this behavior is not desired, use .\"O .BR link (2). -symlink ¤Ë¤è¤Ã¤Æ»²¾È¤µ¤ì¤ë̾Á°¤òºï½ü¤¹¤ë¤È (¤½¤ì¤¬Â¾¤Ë¥Ï¡¼¥É¡¦¥ê¥ó¥¯ -(hard link) ¤ò»ý¤¿¤Ê¤±¤ì¤Ð) ¼ÂºÝ¤Ë¥Õ¥¡¥¤¥ë¤¬ºï½ü¤µ¤ì¤ë¡£ -¤³¤ÎÆ°ºî¤¬Ë¾¤ó¤À¤â¤Î¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢ +symlink によって参照される名前を削除すると (それが他にハード・リンク +(hard link) を持たなければ) 実際にファイルが削除される。 +この動作が望んだものでない場合は、 .BR link (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +を使用すること。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ln (1), .BR lchown (2), .BR link (2), diff --git a/draft/man2/symlinkat.2 b/draft/man2/symlinkat.2 index 2369806c..2ee2978a 100644 --- a/draft/man2/symlinkat.2 +++ b/draft/man2/symlinkat.2 @@ -28,14 +28,14 @@ .\" .TH SYMLINKAT 2 2009-12-13 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O symlinkat \- create a symbolic link relative to a directory file descriptor -symlinkat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÁêÂÐŪ¤Ê°ÌÃ֤˥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òºîÀ®¤¹¤ë +symlinkat \- ディレクトリファイルディスクリプタから相対的な位置にシンボリックリンクを作成する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .B #include /* Definition of AT_* constants */ -.B #include /* AT_* Äê¿ô¤ÎÄêµÁ */ +.B #include /* AT_* 定数の定義 */ .B #include .sp .BI "int symlinkat(const char *" oldpath ", int " newdirfd \ @@ -45,9 +45,9 @@ symlinkat \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR symlinkat (): @@ -56,26 +56,26 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -Since glibc 2.10 °Ê¹ß: +Since glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR symlinkat () .\"O system call operates in exactly the same way as .\"O .BR symlink (2), .\"O except for the differences described in this manual page. .BR symlinkat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë°ã¤¤¤¬¤¢¤ë°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明している違いがある以外は、 .BR symlink (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .\"O If the pathname given in .\"O .I newpath @@ -87,13 +87,13 @@ _ATFILE_SOURCE .\"O .BR symlink (2) .\"O for a relative pathname). .I newpath -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パスである場合、 +ファイルディスクリプタ .I newdirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( symlink (2) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスの +カレントワーキングディレクトリからの相対パスとなる)。 .\"O If .\"O .I newpath @@ -107,16 +107,16 @@ _ATFILE_SOURCE .\"O directory of the calling process (like .\"O .BR symlink (2)). .I newpath -¤¬ÁêÂХѥ¹¤Ç¤¢¤ê¡¢¤«¤Ä +が相対パスであり、かつ .I newdirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I newpath -¤Ï +は .RB ( symlink (2) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .\"O If .\"O .I newpath @@ -124,43 +124,43 @@ _ATFILE_SOURCE .\"O .I newdirfd .\"O is ignored. .I newpath -¤¬ÀäÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ +が絶対パスである場合、 .I newdirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR symlinkat () .\"O returns 0. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR symlinkat () -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .\"O On error, \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +エラーの場合、\-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ +にはエラーを示す値が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O The same errors that occur for .\"O .BR symlink (2) .\"O can also occur for .\"O .BR symlinkat (). .BR symlink (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR symlinkat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .\"O The following additional errors can occur for .\"O .BR symlinkat (): .BR symlinkat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .\"O .I newdirfd .\"O is not a valid file descriptor. .I newdirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B ENOTDIR .\"O .I newpath @@ -168,30 +168,30 @@ _ATFILE_SOURCE .\"O .I newdirfd .\"O is a file descriptor referring to a file other than a directory. .I newpath -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I newdirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR symlinkat () .\"O was added to Linux in kernel 2.6.16. .BR symlinkat () -¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ +は Linux カーネル 2.6.16 で追加された。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O See .\"O .BR openat (2) .\"O for an explanation of the need for .\"O .BR symlinkat (). .BR symlinkat () -¤¬É¬ÍפÊÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が必要な理由については、 .BR openat (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR openat (2), .BR symlink (2), .BR path_resolution (7), diff --git a/draft/man2/sync.2 b/draft/man2/sync.2 index ff432b89..f0a14d4b 100644 --- a/draft/man2/sync.2 +++ b/draft/man2/sync.2 @@ -40,14 +40,14 @@ .\" Updated Tue Oct 16 JST 2001 by Kentaro Shirakata .\" Updated Mon Sep 8 JST 2003 by Kentaro Shirakata .\" -.\"WORD: buffer cache ¥Ð¥Ã¥Õ¥¡¡¦¥­¥ã¥Ã¥·¥å -.\"WORD: buffers ¥Ð¥Ã¥Õ¥¡ -.\"WORD: data integrity ¥Ç¡¼¥¿¤Î´°Á´À­ +.\"WORD: buffer cache バッファ・キャッシュ +.\"WORD: buffers バッファ +.\"WORD: data integrity データの完全性 .\" .TH SYNC 2 2010-09-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sync \- ¥Ð¥Ã¥Õ¥¡¥­¥ã¥Ã¥·¥å¤ò¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤à -.SH ½ñ¼° +.SH 名前 +sync \- バッファキャッシュをディスクに書き込む +.SH 書式 .B #include .sp .B void sync(void); @@ -55,9 +55,9 @@ sync \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR sync (): @@ -67,32 +67,32 @@ _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR sync () -¤Ï¤Þ¤º inode ¤ò¥Ð¥Ã¥Õ¥¡¤Ø½ñ¤­¹þ¤ß¡¢ -¤½¤ì¤«¤é¥Ð¥Ã¥Õ¥¡(buffer)¤ò¥Ç¥£¥¹¥¯¤Ø½ñ¤­¹þ¤à¡£ +はまず inode をバッファへ書き込み、 +それからバッファ(buffer)をディスクへ書き込む。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O This function is always successful. -¤³¤Î´Ø¿ô¤Ï¾ï¤ËÀ®¸ù¤¹¤ë¡£ +この関数は常に成功する。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Since glibc 2.2.2 the Linux prototype is as listed above, .\"O following the various standards. .\"O In libc4, libc5, and glibc up to 2.2.1 .\"O it was "int sync(void)", and .\"O .BR sync () .\"O always returned 0. -¤µ¤Þ¤¶¤Þ¤Êɸ½àµ¬³Ê¤Ç¤Îµ¬Äê¤Ë¤·¤¿¤¬¤Ã¤Æ¡¢ -glibc 2.2.2 ¤«¤é Linux ¤Ç¤Î¥×¥í¥È¥¿¥¤¥×¤Ï¾å½Ò¤Î¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ -libc4, libc5 ¤È¡¢2.2.1 ¤Þ¤Ç¤Î glibc ¤Ç¤Ï "int sync(void)" ¤Ç¡¢ +さまざまな標準規格での規定にしたがって、 +glibc 2.2.2 から Linux でのプロトタイプは上述のようになった。 +libc4, libc5 と、2.2.1 までの glibc では "int sync(void)" で、 .BR sync () -¤Ï¾ï¤Ë 0 ¤òÊÖ¤·¤Æ¤¤¤¿¡£ +は常に 0 を返していた。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O According to the standard specification (e.g., POSIX.1-2001), .\"O .BR sync () .\"O schedules the writes, but may return before the actual @@ -100,14 +100,14 @@ libc4, libc5 .\"O However, since version 1.3.20 Linux does actually wait. .\"O (This still does not guarantee data integrity: modern disks have .\"O large caches.) -ɸ½àµ¬³Ê (Î㤨¤Ð POSIX.1-2001) ¤Ë¤è¤ë¤È¡¢ +標準規格 (例えば POSIX.1-2001) によると、 .BR sync () -¤Ï½ñ¤­¹þ¤à¤³¤È¤òͽÄê¤Ë -ÁȤ߹þ¤à¤Î¤ß¤Ç¼ÂºÝ¤Ë½ñ¤­¹þ¤ß¤¬½ªÎ»¤¹¤ëÁ°¤ËÌá¤Ã¤Æ¤â¤è¤¤¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -°ìÊý¤Ç Linux ¤Ï¥Ð¡¼¥¸¥ç¥ó 1.3.20 ¤«¤é¤Ï½ñ¤­¹þ¤ß¤¬½ªÎ»¤¹¤ë¤Þ¤ÇÂԤġ£ -(ºÇ¶á¤Î¥Ç¥£¥¹¥¯¤ÏÂ礭¤Ê¥­¥ã¥Ã¥·¥å¤ò»ý¤Ã¤Æ¤¤¤ë¤¿¤á¡¢ - ¤³¤ì¤Ï¥Ç¡¼¥¿¤Î´°Á´À­ (data integrity) ¤Þ¤Ç¤ÏÊݾڤ·¤Æ¤¤¤Ê¤¤¡£) -.SH ´ØÏ¢¹àÌÜ +は書き込むことを予定に +組み込むのみで実際に書き込みが終了する前に戻ってもよいことになっている。 +一方で Linux はバージョン 1.3.20 からは書き込みが終了するまで待つ。 +(最近のディスクは大きなキャッシュを持っているため、 + これはデータの完全性 (data integrity) までは保証していない。) +.SH 関連項目 .BR bdflush (2), .BR fdatasync (2), .BR fsync (2), diff --git a/draft/man2/sync_file_range.2 b/draft/man2/sync_file_range.2 index 4c540a1e..1a5354cc 100644 --- a/draft/man2/sync_file_range.2 +++ b/draft/man2/sync_file_range.2 @@ -34,31 +34,31 @@ .\" .TH SYNC_FILE_RANGE 2 2010-01-17 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sync_file_range \- sync a file segment with disk -sync_file_range \- ¥Õ¥¡¥¤¥ë¥»¥°¥á¥ó¥È¤ò¥Ç¥£¥¹¥¯¤ÈƱ´ü¤¹¤ë +sync_file_range \- ファイルセグメントをディスクと同期する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .BI "int sync_file_range(int " fd ", off64_t " offset ", off64_t " nbytes , .BI " unsigned int " flags ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR sync_file_range () .\"O permits fine control when synchronizing the open file referred to by the .\"O file descriptor .\"O .I fd .\"O with disk. .BR sync_file_range () -¤ò»È¤¦¤È¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +を使うと、ファイルディスクリプタ .I fd -¤Ç»²¾È¤µ¤ì¤ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥Ç¥£¥¹¥¯¤È¤ÎƱ´ü¤Ë´Ø¤·¤Æ¡¢ -¤­¤áºÙ¤«¤ÊÀ©¸æ¤¬²Äǽ¤È¤Ê¤ë¡£ +で参照されるオープンされたファイルのディスクとの同期に関して、 +きめ細かな制御が可能となる。 .\"O .I offset .\"O is the starting byte of the file range to be synchronized. @@ -74,70 +74,70 @@ sync_file_range \- .\"O .I (offset+nbytes-1) .\"O is rounded up to a page boundary. .I offset -¤Ï¡¢Æ±´ü¤ò¹Ô¤¦¥Õ¥¡¥¤¥ë¤ÎÎΰè¤Î³«»Ï¥Ð¥¤¥È¤Ç¤¢¤ë¡£ +は、同期を行うファイルの領域の開始バイトである。 .I nbytes -¤Ë¤ÏƱ´ü¤ò¹Ô¤¦Îΰè¤ÎŤµ¤ò¥Ð¥¤¥Èñ°Ì¤Ç»ØÄꤹ¤ë¡£ +には同期を行う領域の長さをバイト単位で指定する。 .I nbytes -¤¬ 0 ¤Î¾ì¹ç¤Ï¡¢ +が 0 の場合は、 .I offset -¤«¤é¥Õ¥¡¥¤¥ëËöÈø¤Þ¤Ç¤ÎÁ´¥Ð¥¤¥È¤òƱ´ü¤¹¤ë¡£ -Ʊ´ü¤Ï¥·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥º¤Îñ°Ì¤Ç¹Ô¤ï¤ì¤ë¡£ +からファイル末尾までの全バイトを同期する。 +同期はシステムのページサイズの単位で行われる。 .I offset -¤Ï¥Ú¡¼¥¸¶­³¦¤Ë¤¢¤ï¤»¤ÆÀڤ겼¤²¤é¤ì¡¢ +はページ境界にあわせて切り下げられ、 .I (offset+nbytes-1) -¤Ï¥Ú¡¼¥¸¶­³¦¤Ë¤¢¤ï¤»¤ÆÀÚ¤ê¾å¤²¤é¤ì¤ë¡£ +はページ境界にあわせて切り上げられる。 .\"O The .\"O .I flags .\"O bit-mask argument can include any of the following values: -¥Ó¥Ã¥È¥Þ¥¹¥¯°ú¤­¿ô +ビットマスク引き数 .I flags -¤Ë¤Ï°Ê²¼¤ÎÃͤò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë: +には以下の値を指定することができる: .TP .B SYNC_FILE_RANGE_WAIT_BEFORE .\"O Wait upon write-out of all pages in the specified range .\"O that have already been submitted to the device driver for write-out .\"O before performing any write. -²¿¤é¤«¤Î½ñ¤­¹þ¤ß¤ò¹Ô¤¦Á°¤Ë¡¢»ØÄꤵ¤ì¤¿Îΰè¤Î¥Ú¡¼¥¸¤Ç -½ñ¤­½Ð¤·¤ò¹Ô¤¦¤è¤¦¤Ë¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ë¤¹¤Ç¤ËÍ׵᤬ȯ¹Ô¤µ¤ì¤Æ¤¤¤ë -¥Ú¡¼¥¸¤Î½ñ¤­½Ð¤·¤¬Á´¤Æ´°Î»¤¹¤ë¤Î¤òÂԤġ£ +何らかの書き込みを行う前に、指定された領域のページで +書き出しを行うようにデバイスドライバにすでに要求が発行されている +ページの書き出しが全て完了するのを待つ。 .TP .B SYNC_FILE_RANGE_WRITE .\"O Initiate write-out of all dirty pages in the specified .\"O range which are not presently submitted write-out. .\"O Note that even this may block if you attempt to .\"O write more than request queue size. -»ØÄꤵ¤ì¤¿Îΰè¤Î¥Ú¡¼¥¸¤Ç¡¢½ñ¤­½Ð¤·Í׵᤬ȯ¹Ô¤µ¤ì¤Æ¤¤¤Ê¤¤ -Á´¤Æ¤Î dirty (¥­¥ã¥Ã¥·¥å¤À¤±¤¬Êѹ¹¤µ¤ì¤Æ¤¤¤ë) ¥Ú¡¼¥¸¤Î -½ñ¤­½Ð¤·¤ò³«»Ï¤¹¤ë¡£ -¥ê¥¯¥¨¥¹¥È¥­¥å¡¼¤ÎÂ礭¤µ¤è¤ê¿¤¯½ñ¤­¹þ¤â¤¦¤È¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ -¤³¤Î½èÍý¤ÏÄä»ß (block) ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +指定された領域のページで、書き出し要求が発行されていない +全ての dirty (キャッシュだけが変更されている) ページの +書き出しを開始する。 +リクエストキューの大きさより多く書き込もうとした場合には、 +この処理は停止 (block) する可能性がある点に注意すること。 .TP .B SYNC_FILE_RANGE_WAIT_AFTER .\"O Wait upon write-out of all pages in the range .\"O after performing any write. -²¿¤é¤«¤Î½ñ¤­¹þ¤ß¸å¤Ë¡¢»ØÄꤵ¤ì¤¿Îΰè¤ÎÁ´¤Æ¤Î¥Ú¡¼¥¸¤Î -½ñ¤­½Ð¤·¤¬¹Ô¤ï¤ì¤ë¤Î¤òÂԤġ£ +何らかの書き込み後に、指定された領域の全てのページの +書き出しが行われるのを待つ。 .PP .\"O Specifying .\"O .I flags .\"O as 0 is permitted, as a no-op. .I flags -¤Ë 0 ¤ò»ØÄꤷ¤¿¾ì¹ç¡¢²¿¤â¤·¤Ê¤¤¤³¤È¤òɽ¤¹¡£ +に 0 を指定した場合、何もしないことを表す。 .\"O .SS Warning -.SS ·Ù¹ð +.SS 警告 .\"O This system call is extremely dangerous and should not be used in portable .\"O programs. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÈó¾ï¤Ë´í¸±¤Ç¤¢¤ê¡¢ -°Ü¿¢À­¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +このシステムコールは非常に危険であり、 +移植性が必要なプログラムで使用すべきではない。 .\"O None of these operations writes out the file's metadata. .\"O Therefore, unless the application is strictly performing overwrites of .\"O already-instantiated disk blocks, there are no guarantees that the data will .\"O be available after a crash. -¤³¤ì¤é¤ÎÁàºî¤Ç¤Ï¤É¤ì¤â¥Õ¥¡¥¤¥ë¤Î¥á¥¿¥Ç¡¼¥¿¤Î½ñ¤­½Ð¤·¤ò¹Ô¤ï¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤è¤êºîÀ®ºÑ¤ß¤Î¥Ç¥£¥¹¥¯¥Ö¥í¥Ã¥¯¤Î -¾å½ñ¤­¤Î¼Â¹Ô¤¬³Î¼Â¤Ë¹Ô¤ï¤ì¤Ê¤¤¸Â¤ê¡¢¥¯¥é¥Ã¥·¥å¤Î¸å¤Ç¤â¥Ç¡¼¥¿¤¬ -ÍøÍѤǤ­¤ëÊݾڤϤʤ¤¡£ +これらの操作ではどれもファイルのメタデータの書き出しを行わない。 +したがって、アプリケーションにより作成済みのディスクブロックの +上書きの実行が確実に行われない限り、クラッシュの後でもデータが +利用できる保証はない。 .\"O There is no user interface to know if a write is purely an overwrite. .\"O On filesystem using copy-on-write semantics (e.g., .\"O .IR btrfs ) @@ -147,18 +147,18 @@ sync_file_range \- .\"O allocator, which this system call does not sync out to disk. .\"O This system call does not flush disk write caches and thus does not provide .\"O any data integrity on systems with volatile disk write caches. -½ñ¤­¹þ¤ß¤¬¾å½ñ¤­¤À¤±¤Ç¤¢¤ë¤«¤òÃΤ뤿¤á¤Î¥æ¡¼¥¶¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¸ºß¤·¤Ê¤¤¡£ +書き込みが上書きだけであるかを知るためのユーザインタフェースは存在しない。 .RI ( btrfs -¤Ê¤É¤Î) copy-on-write Æ°ºî¤ò»È¤Ã¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -´û¸¤Î³ä¤êÅö¤ÆºÑ¤ß¤Î¥Ö¥í¥Ã¥¯¤ËÂФ¹¤ë¾å½ñ¤­¼«ÂΤ¬¤Ç¤­¤Ê¤¤¡£ -Á°¤â¤Ã¤Æ³ä¤êÅö¤Æ¤é¤ì¤¿Îΰè¤Ë½ñ¤­¹þ¤ß¤ò¹Ô¤¦¾ì¹ç¡¢ -¿¤¯¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Ï block allocator ¤Ø¤Î½ñ¤­¹þ¤ß¤âɬÍפȤʤ뤬¡¢ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï block allocator ¤Î¥Ç¥£¥¹¥¯¤Ø¤ÎƱ´ü¤ò¹Ô¤ï¤Ê¤¤¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥Ç¥£¥¹¥¯½ñ¤­¹þ¤ß¥­¥ã¥Ã¥·¥å¤Î¥Õ¥é¥Ã¥·¥å¤ò -¹Ô¤ï¤Ê¤¤¤Î¤Ç¡¢´øȯÀ­¤Î¥Ç¥£¥¹¥¯½ñ¤­¹þ¤ß¥­¥ã¥Ã¥·¥å¤ò»È¤Ã¤¿¥·¥¹¥Æ¥à¤Ç¤Ï -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤Ï¥Ç¡¼¥¿¤Î°ì´ÓÀ­¤ò³ÎÊݤǤ­¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¡£ +などの) copy-on-write 動作を使ったファイルシステムでは、 +既存の割り当て済みのブロックに対する上書き自体ができない。 +前もって割り当てられた領域に書き込みを行う場合、 +多くのファイルシステムでは block allocator への書き込みも必要となるが、 +このシステムコールは block allocator のディスクへの同期を行わない。 +このシステムコールはディスク書き込みキャッシュのフラッシュを +行わないので、揮発性のディスク書き込みキャッシュを使ったシステムでは +このシステムコールではデータの一貫性を確保できないことになる。 .\"O .SS Some details -.SS ¾ÜºÙ +.SS 詳細 .\"O .B SYNC_FILE_RANGE_WAIT_BEFORE .\"O and .\"O .B SYNC_FILE_RANGE_WAIT_AFTER @@ -167,17 +167,17 @@ sync_file_range \- .\"O .B ENOSPC .\"O conditions and will return these to the caller. .B SYNC_FILE_RANGE_WAIT_BEFORE -¤È +と .B SYNC_FILE_RANGE_WAIT_AFTER -¤Ï I/O ¥¨¥é¡¼¤ä +は I/O エラーや .B ENOSPC -¾õÂÖ¤ò¸¡½Ð¤·¡¢¸Æ¤Ó½Ð¤·¸µ¤Ë¤³¤ì¤é¤Î¾ðÊó¤òÊÖ¤¹¡£ +状態を検出し、呼び出し元にこれらの情報を返す。 .\"O Useful combinations of the .\"O .I flags .\"O bits are: .I flags -¤ÎÌò¤ËΩ¤Ä¥Ó¥Ã¥È¤ÎÁȤ߹ç¤ï¤»¤ò°Ê²¼¤Ë¼¨¤¹: +の役に立つビットの組み合わせを以下に示す: .TP .B SYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE .\"O Ensures that all pages @@ -186,12 +186,12 @@ sync_file_range \- .\"O was called are placed .\"O under write-out. .\"O This is a start-write-for-data-integrity operation. -»ØÄꤵ¤ì¤¿ÈÏ°ÏÆâ¤Î¥Ú¡¼¥¸¤Ç¡¢ +指定された範囲内のページで、 .BR sync_file_range () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿ºÝ¤Ë dirty ¤Ç¤¢¤Ã¤¿Á´¤Æ¤Î¥Ú¡¼¥¸¤¬¡¢ -³Î¼Â¤Ë½ñ¤­½Ð¤·ÂоݤȤʤë¤è¤¦¤Ë¤¹¤ë¡£ -¤³¤ì¤Ï¡¢start-write-for-data-integrity Áàºî -(¥Ç¡¼¥¿´°Á´À­³ÎÊݤΤ¿¤á¤Î½ñ¤­¹þ¤ß³«»Ï¤ÎÁàºî) ¤Ç¤¢¤ë¡£ +が呼び出された際に dirty であった全てのページが、 +確実に書き出し対象となるようにする。 +これは、start-write-for-data-integrity 操作 +(データ完全性確保のための書き込み開始の操作) である。 .TP .B SYNC_FILE_RANGE_WRITE .\"O Start write-out of all dirty pages in the specified range which @@ -199,9 +199,9 @@ sync_file_range \- .\"O This is an asynchronous flush-to-disk .\"O operation. .\"O This is not suitable for data integrity operations. -»ØÄꤵ¤ì¤¿ÈÏ°ÏÆâ¤Î¥Ú¡¼¥¸¤Ç¡¢¸½ºß½ñ¤­½Ð¤·Ãæ¤Ç¤Ê¤¤Á´¤Æ¤Î dirty ¥Ú¡¼¥¸¤Î -½ñ¤­½Ð¤·¤ò³«»Ï¤¹¤ë¡£¤³¤ì¤ÏÈóƱ´ü¤Î¥Ç¥£¥¹¥¯¤Ø¤Î¥Õ¥é¥Ã¥·¥å (flush-to-disk) -Áàºî¤Ç¤¢¤ë¡£¥Ç¡¼¥¿´°Á´À­³ÎÊݤ¬É¬ÍפÊÁàºî¤È¤·¤Æ¤ÏŬÀڤǤϤʤ¤¡£ +指定された範囲内のページで、現在書き出し中でない全ての dirty ページの +書き出しを開始する。これは非同期のディスクへのフラッシュ (flush-to-disk) +操作である。データ完全性確保が必要な操作としては適切ではない。 .TP .BR SYNC_FILE_RANGE_WAIT_BEFORE " (or " SYNC_FILE_RANGE_WAIT_AFTER ) .\"O Wait for @@ -209,10 +209,10 @@ sync_file_range \- .\"O This can be used after an earlier .\"O .B SYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE .\"O operation to wait for completion of that operation, and obtain its result. -»ØÄꤵ¤ì¤¿ÈÏ°ÏÆâ¤ÎÁ´¤Æ¤Î¥Ú¡¼¥¸¤Î½ñ¤­½Ð¤·¤Î´°Î»¤òÂԤġ£ -¤³¤Î¥Õ¥é¥°¤Ï¡¢Á°¤Ë¹Ô¤ï¤ì¤¿Áàºî +指定された範囲内の全てのページの書き出しの完了を待つ。 +このフラグは、前に行われた操作 .B SYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE -¤Î¸å¤Ë»ÈÍѤǤ­¡¢¤³¤ÎÁàºî¤Î´°Î»¤òÂÔ¤Á¡¢·ë²Ì¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +の後に使用でき、この操作の完了を待ち、結果を取得することができる。 .TP .B SYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE | \ SYNC_FILE_RANGE_WAIT_AFTER @@ -220,31 +220,31 @@ SYNC_FILE_RANGE_WAIT_AFTER .\"O that will ensure that all pages in the specified range which were dirty when .\"O .BR sync_file_range () .\"O was called are committed to disk. -¤³¤ì¤Ï write-for-data-integrity Áàºî -(¥Ç¡¼¥¿´°Á´À­³ÎÊݤΤ¿¤á¤Î½ñ¤­¹þ¤ß) ¤Ç¤¢¤ê¡¢»ØÄꤵ¤ì¤¿ÈÏ°ÏÆâ¤Î¡¢ +これは write-for-data-integrity 操作 +(データ完全性確保のための書き込み) であり、指定された範囲内の、 .BR sync_file_range () -¤¬¸Æ¤Ð¤ì¤¿»þÅÀ¤Ç dirty ¤ÊÁ´¤Æ¤Î¥Ú¡¼¥¸¤¬ -¥Ç¥£¥¹¥¯¤Ë³ÊǼ¤µ¤ì¤ë¤³¤È¤¬Êݾڤµ¤ì¤ë¡£ +が呼ばれた時点で dirty な全てのページが +ディスクに格納されることが保証される。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR sync_file_range () .\"O returns 0; on failure \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤Î¾ì¹ç¡¢ +成功の場合、 .BR sync_file_range () -¤Ï 0 ¤òÊÖ¤¹¡£¼ºÇԤξì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。失敗の場合、\-1 を返し、 .I error -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O .I fd .\"O is not a valid file descriptor. .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ +が有効なファイルディスクリプタではない。 .TP .B EINVAL .\"O .I flags @@ -254,48 +254,48 @@ SYNC_FILE_RANGE_WAIT_AFTER .\"O .I nbytes .\"O is invalid. .I flags -¤ËÉÔÀµ¤Ê¥Ó¥Ã¥È¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¡£¤Þ¤¿¤Ï +に不正なビットが指定されている。または .I offset -¤« +か .I nbytes -¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +が不正である。 .TP .B EIO .\"O I/O error. -I/O ¥¨¥é¡¼¡£ +I/O エラー。 .TP .B ENOMEM .\"O Out of memory. -¥á¥â¥êÉÔ­¤Ç¤¢¤ë¡£ +メモリ不足である。 .TP .B ENOSPC .\"O Out of disk space. -¥Ç¥£¥¹¥¯ÎΰèÉÔ­¤Ç¤¢¤ë¡£ +ディスク領域不足である。 .TP .B ESPIPE .\"O .I fd .\"O refers to something other than a regular file, a block device, .\"O a directory, or a symbolic link. .I fd -¤¬¡¢Ä̾ï¤Î¥Õ¥¡¥¤¥ë¡¢¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¡¢¥Ç¥£¥ì¥¯¥È¥ê¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯ -°Ê³°¤Î¤â¤Î¤ò»Ø¤·¤Æ¤¤¤ë¡£ +が、通常のファイル、ブロックデバイス、ディレクトリ、シンボリックリンク +以外のものを指している。 .\" FIXME . (bug?) Actually, how can 'fd' refer to a symbolic link (S_ISLNK)? .\" (In userspace at least) it isn't possible to obtain a file descriptor .\" for a symbolic link. -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR sync_file_range () .\"O appeared on Linux in kernel 2.6.17. .BR sync_file_range () -¤Ï¥«¡¼¥Í¥ë 2.6.17 ¤Ç Linux ¤ËÅо줷¤¿¡£ +はカーネル 2.6.17 で Linux に登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This system call is Linux-specific, and should be avoided .\"O in portable programs. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ê¡¢ -°Ü¿¢À­¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤòÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +このシステムコールは Linux 独自であり、 +移植性が必要なプログラムでは使用を避けるべきである。 .\"O .SH VERSIONS .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fdatasync (2), .BR fsync (2), .BR msync (2), diff --git a/draft/man2/syscall.2 b/draft/man2/syscall.2 index df72096c..abfce1d5 100644 --- a/draft/man2/syscall.2 +++ b/draft/man2/syscall.2 @@ -42,57 +42,57 @@ .\" .TH SYSCALL 2 2007-07-26 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O syscall \- indirect system call -syscall \- ´ÖÀÜ¥·¥¹¥Æ¥à¥³¡¼¥ë +syscall \- 間接システムコール .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .BR "#include " "/* For SYS_xxx definitions */" .BI "int syscall(int " number ", ...);" .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR syscall () .\"O performs the system call whose assembly language .\"O interface has the specified .\"O .I number .\"O with the specified arguments. .BR syscall () -¤Ï +は .I number -¤Ç»ØÄꤵ¤ì¤¿¥¢¥»¥ó¥Ö¥ê¸À¸ì¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¡¢ -»ØÄꤵ¤ì¤¿°ú¤­¿ô¤ò¤Ä¤±¤Æ¼Â¹Ô¤¹¤ë¡£ +で指定されたアセンブリ言語インターフェースのシステムコールを、 +指定された引き数をつけて実行する。 .\"O Symbolic constants for system calls can be found in the header file .\"O .IR . -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥·¥ó¥Ü¥ëÄê¿ô¤Ï¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë +システムコールのシンボル定数はヘッダファイル .I -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ +に書かれている。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The return value is defined by the system call being invoked. -ÊÖ¤êÃͤϸƤӽФµ¤ì¤¿¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤è¤Ã¤ÆÄêµÁ¤µ¤ì¤ë¡£ +返り値は呼び出されたシステムコールによって定義される。 .\"O In general, a 0 return value indicates success. -°ìÈ̤ˡ¢ÊÖ¤êÃÍ 0 ¤ÏÀ®¸ù¤òɽ¤¹¡£ +一般に、返り値 0 は成功を表す。 .\"O A \-1 return value indicates an error, .\"O and an error code is stored in .\"O .IR errno . -\-1 ¤Ï¥¨¥é¡¼¤òɽ¤·¡¢¥¨¥é¡¼¥³¡¼¥É¤Ï +\-1 はエラーを表し、エラーコードは .I errno -¤ËÆþ¤ì¤é¤ì¤ë¡£ +に入れられる。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .BR syscall () .\"O first appeared in .\"O 4BSD. .BR syscall () -¤Ï 4BSD ¤ÇºÇ½é¤ËÅо줷¤¿¡£ +は 4BSD で最初に登場した。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .nf #define _GNU_SOURCE #include @@ -108,7 +108,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR _syscall (2), .BR intro (2), .BR syscalls (2) diff --git a/draft/man2/syscalls.2 b/draft/man2/syscalls.2 index 58a10b15..54b96583 100644 --- a/draft/man2/syscalls.2 +++ b/draft/man2/syscalls.2 @@ -36,21 +36,21 @@ .\" .TH SYSCALLS 2 2010-11-06 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O syscalls \- Linux system calls -syscalls \- Linux ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë +syscalls \- Linux のシステムコール .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .\"O Linux system calls. -Linux ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¡£ +Linux のシステムコール。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The system call is the fundamental interface between an application .\"O and the Linux kernel. -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤È Linux ¥«¡¼¥Í¥ë¤È¤Î´Ö¤Î -´ðËÜŪ¤Ê¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ç¤¢¤ë¡£ +システムコールは、アプリケーションと Linux カーネルとの間の +基本的なインタフェースである。 .\"O .SS System calls and library wrapper functions -.SS ¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¥é¥¤¥Ö¥é¥ê¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô +.SS システムコールとライブラリのラッパー関数 .\"O System calls are generally not invoked directly, .\"O but rather via wrapper functions in glibc (or perhaps some other library). .\"O For details of direct invocation of a system call, see @@ -60,16 +60,16 @@ Linux .\"O For example, glibc contains a function .\"O .BR truncate () .\"O which invokes the underlying "truncate" system call. -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï°ìÈ̤ˤÏľÀܵ¯Æ°¤µ¤ì¤º¡¢ -glibc (¤ä¾¤Î²¿¤é¤«¤Î¥é¥¤¥Ö¥é¥ê) ·Ðͳ¤Çµ¯Æ°¤µ¤ì¤ë¡£ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎľÀܵ¯Æ°¤Ë¤Ä¤¤¤Æ¤Ï¡¢¾ÜºÙ¤Ï +システムコールは一般には直接起動されず、 +glibc (や他の何らかのライブラリ) 経由で起動される。 +システムコールの直接起動については、詳細は .BR intro (2) -¤ò»²¾È¤Î¤³¤È¡£ -¤¤¤Ä¤â¤È¤¤¤¦Ìõ¤Ç¤Ï¤Ê¤¤¤¬¡¢ÉáÄ̤ϡ¢¥é¥Ã¥Ñ¡¼´Ø¿ô¤Î̾Á°¤Ï¤½¤Î´Ø¿ô¤¬µ¯Æ°¤¹¤ë -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î̾Á°¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -Î㤨¤Ð¡¢glibc ¤Ë¤Ï +を参照のこと。 +いつもという訳ではないが、普通は、ラッパー関数の名前はその関数が起動する +システムコールの名前と同じである。 +例えば、glibc には .BR truncate () -¤È¤¤¤¦´Ø¿ô¤¬¤¢¤ê¡¢¤³¤Î´Ø¿ô¤Ï "truncate" ¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤¹¤ë¡£ +という関数があり、この関数は "truncate" システムコールを起動する。 .\"O Often the glibc wrapper function is quite thin, doing little work .\"O other than copying arguments to the right registers @@ -88,20 +88,20 @@ glibc ( .\"O (to make it positive), copies it to .\"O .IR errno , .\"O and returns \-1 to the caller of the wrapper. -¤¿¤¤¤Æ¤¤¤Î¾ì¹ç¡¢glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¤«¤Ê¤ê´Êñ¤Ê¤â¤Î¤Ç¡¢ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤¹¤ëÁ°¤Ë°ú¤­¿ô¤òŬÀڤʥ쥸¥¹¥¿¤Ë¥³¥Ô¡¼¤·¡¢ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Ê֤俸å¤Ï +たいていの場合、glibc のラッパー関数はかなり簡単なもので、 +システムコールを起動する前に引き数を適切なレジスタにコピーし、 +システムコールが返った後は .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë°Ê³°¤Ï¡¢¤Û¤È¤ó¤É½èÍý¤ò¹Ô¤ï¤Ê¤¤ -(¤³¤ì¤é¤Ï¡¢¥é¥Ã¥Ñ¡¼´Ø¿ô¤¬Ä󶡤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë -¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤¹¤ë¤Î¤Ë»ÈÍѤ¹¤ë +を適切に設定する以外は、ほとんど処理を行わない +(これらは、ラッパー関数が提供されていない場合に +システムコールを起動するのに使用する .BR syscall (2) -¤Ë¤è¤ê¼Â¹Ô¤µ¤ì¤ë½èÍý¤ÈƱ¤¸¤Ç¤¢¤ë)¡£ -[Ãí°Õ] ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¼ºÇÔ¤ò¼¨¤¹¤Î¤ËÉé¤Î¥¨¥é¡¼ÈÖ¹æ¤ò¸Æ¤Ó½Ð¤·¸µ¤ËÊÖ¤¹¡£ -¼ºÇÔ¤¬µ¯¤³¤Ã¤¿ºÝ¤Ë¤Ï¡¢¥é¥Ã¥Ñ¡¼´Ø¿ô¤ÏÊÖ¤µ¤ì¤¿¥¨¥é¡¼ÈÖ¹æ¤òȿž¤·¤Æ -(Àµ¤ÎÃͤËÊÑ´¹¤·)¡¢¤½¤ì¤ò +により実行される処理と同じである)。 +[注意] システムコールは失敗を示すのに負のエラー番号を呼び出し元に返す。 +失敗が起こった際には、ラッパー関数は返されたエラー番号を反転して +(正の値に変換し)、それを .I errno -¤Ë¥³¥Ô¡¼¤·¡¢¥é¥Ã¥Ñ¡¼´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¸µ¤Ë \-1 ¤òÊÖ¤¹¡£ +にコピーし、ラッパー関数の呼び出し元に \-1 を返す。 .\"O Sometimes, however, the wrapper function does some extra work .\"O before invoking the system call. @@ -114,19 +114,19 @@ glibc ( .\"O .BR truncate () .\"O wrapper function checks which of those system calls .\"O are provided by the kernel and determines which should be employed. -¤·¤«¤·¤Ê¤¬¤é¡¢»þ¤Ë¤Ï¡¢¥é¥Ã¥Ñ¡¼´Ø¿ô¤¬¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤¹¤ëÁ°¤Ë -²¿¤é¤«¤ÎÄɲäνèÍý¤ò¹Ô¤¦¾ì¹ç¤¬¤¢¤ë¡£ -Î㤨¤Ð¡¢¸½ºß¡¢ -Æó¤Ä¤Î´ØÏ¢¤¹¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë +しかしながら、時には、ラッパー関数がシステムコールを起動する前に +何らかの追加の処理を行う場合がある。 +例えば、現在、 +二つの関連するシステムコール .BR truncate (2) -¤È +と .BR truncate64 (2) -¤¬¤¢¤ê¡¢glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô +があり、glibc のラッパー関数 .BR truncate () -¤Ï¡¢¥«¡¼¥Í¥ë¤¬¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¤¦¤Á¤É¤Á¤é¤òÄ󶡤·¤Æ¤¤¤ë¤«¤ò¥Á¥§¥Ã¥¯¤·¡¢ -¤É¤Á¤é¤òºÎÍѤ¹¤ë¤«¤ò·èÄꤹ¤ë¡£ +は、カーネルがこれらのシステムコールのうちどちらを提供しているかをチェックし、 +どちらを採用するかを決定する。 .\"O .SS System call list -.SS ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥ê¥¹¥È +.SS システムコールのリスト .\"O Below is a list of those system calls that are common to most platforms. .\"O In the list, the .\"O .I Kernel @@ -134,28 +134,28 @@ glibc ( .\"O for those system calls that were new in Linux 2.2, .\"O or have appeared since that kernel version. .\"O Note the following points: -°Ê²¼¤Ï¡¢¤Û¤È¤ó¤É¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë¶¦Ä̤¹¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥ê¥¹¥È¤Ç¤¢¤ë¡£ -¤³¤Î¥ê¥¹¥È¤Ç¡¢ +以下は、ほとんどのプラットフォームに共通するシステムコールのリストである。 +このリストで、 .I Kernel -¤ÎÎó¤Ï¡¢Linux 2.2 °Ê¹ß¤ÇÅо줷¤¿¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ -Åо줷¤¿¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó¤ò¼¨¤¹¡£ -°Ê²¼¤Ë¾ÜºÙ¤ÊÀâÌÀ¤òµ­¤¹¡£ +の列は、Linux 2.2 以降で登場したシステムコールが +登場したカーネルバージョンを示す。 +以下に詳細な説明を記す。 .IP * 3 .\"O Where no kernel version is indicated, .\"O the system call appeared in kernel 1.0 or earlier. -¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó¤¬¤Ê¤¤¾ì¹ç¡¢¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï -¥«¡¼¥Í¥ë 1.0 ¤â¤·¤¯¤Ï¤½¤ì°ÊÁ°¤ËÅо줷¤¿¡£ +カーネルバージョンがない場合、そのシステムコールは +カーネル 1.0 もしくはそれ以前に登場した。 .IP * .\"O Where a system call is marked "1.2" .\"O this means the system call probably appeared in a 1.1.x kernel version, .\"O and first appeared in a stable kernel with 1.2. .\"O (Development of the 1.2 kernel was initiated from a branch of kernel .\"O 1.0.6 via the 1.1.x unstable kernel series.) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë "1.2" ¤È½ñ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤ª¤½¤é¤¯¥Ð¡¼¥¸¥ç¥ó 1.1.x ¤Î¥«¡¼¥Í¥ë¤ÇÅо줷¡¢ -°ÂÄêÈǤΥ«¡¼¥Í¥ë¤Ç¤Ï 1.2 ¤Ç½é¤á¤ÆÅо줷¤¿¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -(¥Ð¡¼¥¸¥ç¥ó 1.2 ¤Î¥«¡¼¥Í¥ë¤Ï¡¢¥«¡¼¥Í¥ë 1.0.6 ¤«¤éʬ´ô¤·¡¢ -¥Ð¡¼¥¸¥ç¥ó 1.1.x ¤ÎÉÔ°ÂÄêÈǤΥ«¡¼¥Í¥ë·ÏÎó¤È¤·¤Æ³«È¯¤µ¤ì¤¿¡£) +システムコールに "1.2" と書かれている場合、 +そのシステムコールがおそらくバージョン 1.1.x のカーネルで登場し、 +安定版のカーネルでは 1.2 で初めて登場したことを意味する。 +(バージョン 1.2 のカーネルは、カーネル 1.0.6 から分岐し、 +バージョン 1.1.x の不安定版のカーネル系列として開発された。) .IP * .\"O Where a system call is marked "2.0" .\"O this means the system call probably appeared in a 1.3.x kernel version, @@ -163,11 +163,11 @@ glibc ( .\"O (Development of the 2.0 kernel was initiated from a branch of kernel .\"O 1.2.x, somewhere around 1.2.10, .\"O via the 1.3.x unstable kernel series.) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë "2.0" ¤È½ñ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤ª¤½¤é¤¯¥Ð¡¼¥¸¥ç¥ó 1.3.x ¤Î¥«¡¼¥Í¥ë¤ÇÅо줷¡¢ -°ÂÄêÈǤΥ«¡¼¥Í¥ë¤Ç¤Ï 2.0 ¤Ç½é¤á¤ÆÅо줷¤¿¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -(¥Ð¡¼¥¸¥ç¥ó 2.0 ¤Î¥«¡¼¥Í¥ë¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó 1.2.10 ¤¢¤¿¤ê¤Î¥«¡¼¥Í¥ë 1.2.x -¤«¤éʬ´ô¤·¡¢¥Ð¡¼¥¸¥ç¥ó 1.3.x ¤ÎÉÔ°ÂÄêÈǤΥ«¡¼¥Í¥ë·ÏÎó¤È¤·¤Æ³«È¯¤µ¤ì¤¿¡£) +システムコールに "2.0" と書かれている場合、 +そのシステムコールがおそらくバージョン 1.3.x のカーネルで登場し、 +安定版のカーネルでは 2.0 で初めて登場したことを意味する。 +(バージョン 2.0 のカーネルは、バージョン 1.2.10 あたりのカーネル 1.2.x +から分岐し、バージョン 1.3.x の不安定版のカーネル系列として開発された。) .\" Was kernel 2.0 started from a branch of 1.2.10? .\" At least from the timestamps of the tarballs of .\" of 1.2.10 and 1.3.0, that's how it looks, but in @@ -183,42 +183,42 @@ glibc ( .\"O and first appeared in a stable kernel with 2.2.0. .\"O (Development of the 2.2 kernel was initiated from a branch of kernel .\"O 2.0.21 via the 2.1.x unstable kernel series.) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë "2.2" ¤È½ñ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤ª¤½¤é¤¯¥Ð¡¼¥¸¥ç¥ó 2.1.x ¤Î¥«¡¼¥Í¥ë¤ÇÅо줷¡¢ -°ÂÄêÈǤΥ«¡¼¥Í¥ë¤Ç¤Ï 2.2.0 ¤Ç½é¤á¤ÆÅо줷¤¿¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -(¥Ð¡¼¥¸¥ç¥ó 2.2 ¤Î¥«¡¼¥Í¥ë¤Ï¡¢¥«¡¼¥Í¥ë 2.0.21 ¤«¤éʬ´ô¤·¡¢ -¥Ð¡¼¥¸¥ç¥ó 2.1.x ¤ÎÉÔ°ÂÄêÈǤΥ«¡¼¥Í¥ë·ÏÎó¤È¤·¤Æ³«È¯¤µ¤ì¤¿¡£) +システムコールに "2.2" と書かれている場合、 +そのシステムコールがおそらくバージョン 2.1.x のカーネルで登場し、 +安定版のカーネルでは 2.2.0 で初めて登場したことを意味する。 +(バージョン 2.2 のカーネルは、カーネル 2.0.21 から分岐し、 +バージョン 2.1.x の不安定版のカーネル系列として開発された。) .IP * .\"O Where a system call is marked "2.4" .\"O this means the system call probably appeared in a 2.3.x kernel version, .\"O and first appeared in a stable kernel with 2.4.0. .\"O (Development of the 2.4 kernel was initiated from a branch of .\"O kernel 2.2.8 via the 2.3.x unstable kernel series.) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë "2.4" ¤È½ñ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤ª¤½¤é¤¯¥Ð¡¼¥¸¥ç¥ó 2.3.x ¤Î¥«¡¼¥Í¥ë¤ÇÅо줷¡¢ -°ÂÄêÈǤΥ«¡¼¥Í¥ë¤Ç¤Ï 2.4.0 ¤Ç½é¤á¤ÆÅо줷¤¿¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -(¥Ð¡¼¥¸¥ç¥ó 2.4 ¤Î¥«¡¼¥Í¥ë¤Ï¡¢¥«¡¼¥Í¥ë 2.2.8 ¤«¤éʬ´ô¤·¡¢ -¥Ð¡¼¥¸¥ç¥ó 2.3.x ¤ÎÉÔ°ÂÄêÈǤΥ«¡¼¥Í¥ë·ÏÎó¤È¤·¤Æ³«È¯¤µ¤ì¤¿¡£) +システムコールに "2.4" と書かれている場合、 +そのシステムコールがおそらくバージョン 2.3.x のカーネルで登場し、 +安定版のカーネルでは 2.4.0 で初めて登場したことを意味する。 +(バージョン 2.4 のカーネルは、カーネル 2.2.8 から分岐し、 +バージョン 2.3.x の不安定版のカーネル系列として開発された。) .IP * .\"O Where a system call is marked "2.6" .\"O this means the system call probably appeared in a 2.5.x kernel version, .\"O and first appeared in a stable kernel with 2.6.0. .\"O (Development of kernel 2.6 was initiated from a branch .\"O of kernel 2.4.15 via the 2.5.x unstable kernel series.) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë "2.6" ¤È½ñ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤ª¤½¤é¤¯¥Ð¡¼¥¸¥ç¥ó 2.5.x ¤Î¥«¡¼¥Í¥ë¤ÇÅо줷¡¢ -°ÂÄêÈǤΥ«¡¼¥Í¥ë¤Ç¤Ï 2.6.0 ¤Ç½é¤á¤ÆÅо줷¤¿¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -(¥Ð¡¼¥¸¥ç¥ó 2.6 ¤Î¥«¡¼¥Í¥ë¤Ï¡¢¥«¡¼¥Í¥ë 2.4.15 ¤«¤éʬ´ô¤·¡¢ -¥Ð¡¼¥¸¥ç¥ó 2.5.x ¤ÎÉÔ°ÂÄêÈǤΥ«¡¼¥Í¥ë·ÏÎó¤È¤·¤Æ³«È¯¤µ¤ì¤¿¡£) +システムコールに "2.6" と書かれている場合、 +そのシステムコールがおそらくバージョン 2.5.x のカーネルで登場し、 +安定版のカーネルでは 2.6.0 で初めて登場したことを意味する。 +(バージョン 2.6 のカーネルは、カーネル 2.4.15 から分岐し、 +バージョン 2.5.x の不安定版のカーネル系列として開発された。) .IP * .\"O Starting with kernel 2.6.0, the development model changed, .\"O and new system calls may appear in each 2.6.x release. .\"O In this case, the exact version number where the system call appeared .\"O is shown. -¥«¡¼¥Í¥ë 2.6.0 ¤«¤é³«È¯¥â¥Ç¥ë¤ÏÊѹ¹¤µ¤ì¡¢ -¿·¤·¤¤¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¸Ä¡¹¤Î 2.6.x ¤Î¥ê¥ê¡¼¥¹¤Ç¤âÅо줹¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ -¤³¤Î¾ì¹ç¡¢¥ê¥¹¥È¤Ç¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Åо줷¤¿ -¸·Ì©¤Ê¥Ð¡¼¥¸¥ç¥óÈֹ椬µ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ +カーネル 2.6.0 から開発モデルは変更され、 +新しいシステムコールが個々の 2.6.x のリリースでも登場するようになった。 +この場合、リストでは、システムコールが登場した +厳密なバージョン番号が記載されている。 .IP * .\"O In some cases, a system call was added to a stable kernel .\"O series after it branched from the previous stable kernel @@ -227,18 +227,18 @@ glibc ( .\"O into a 2.4.x release after 2.4.15. .\"O When this is so, the version where the system call appeared .\"O in both of the major kernel series is listed. -Á°¤Î°ÂÄêÈÇ¥«¡¼¥Í¥ë·ÏÎ󤫤éʬ´ô¤·¤¿¸å¤Ë°ÂÄêÈÇ¥«¡¼¥Í¥ë·ÏÎó¤Ë¥·¥¹¥Æ¥à¥³¡¼¥ë -¤¬Äɲ䵤줿¾ì¹ç¡¢°ÊÁ°¤Î°ÂÄêÈÇ¥«¡¼¥Í¥ë·ÏÎó¤Ë¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ -°Ü¿¢ (backport) ¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ -Î㤨¤Ð¡¢2.6.x ¤ÇÅо줷¤¿¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¤¤¤¯¤Ä¤«¤Ï¡¢ -2.4.15 °Ê¹ß¤Î 2.4.x ¥ê¥ê¡¼¥¹¤Ë¤â backport ¤µ¤ì¤¿¡£ -¤³¤Î¾ì¹ç¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Åо줷¤¿¥Ð¡¼¥¸¥ç¥ó¤È¤·¤Æ¡¢ -ξÊý¤Î°ÂÄêÈÇ·ÏÎó¤Î¥Ð¡¼¥¸¥ç¥ó¤¬µ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ +前の安定版カーネル系列から分岐した後に安定版カーネル系列にシステムコール +が追加された場合、以前の安定版カーネル系列にそのシステムコールが +移植 (backport) されることがある。 +例えば、2.6.x で登場したシステムコールのいくつかは、 +2.4.15 以降の 2.4.x リリースにも backport された。 +この場合、システムコールが登場したバージョンとして、 +両方の安定版系列のバージョンが記載されている。 .PP .\"O The list of system calls that are available as at kernel 2.6.33 .\"O (or in a few cases only on older kernels) is as follows: -¥«¡¼¥Í¥ë 2.6.33 ¤ÇÍøÍѲÄǽ¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥ê¥¹¥È¤ò°Ê²¼¤Ë¼¨¤¹ -(¤½¤ì°ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤À¤±ÍøÍѲÄǽ¤Ê¤â¤Î¤â¾¯¿ô¤À¤¬´Þ¤Þ¤ì¤ë): +カーネル 2.6.33 で利用可能なシステムコールのリストを以下に示す +(それ以前のカーネルでだけ利用可能なものも少数だが含まれる): .\" .\" Looking at scripts/checksyscalls.sh in the kernel source is .\" instructive about i386 specifics. @@ -678,23 +678,23 @@ l l l. .\"O .BR socketcall (2) .\"O and similarly System V IPC calls are multiplexed through .\"O .BR ipc (2). -i386 ¤ò´Þ¤à¿¤¯¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï¡¢¥½¥±¥Ã¥È´ØÏ¢¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï -(glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤ò²ð¤·¤Æ¤À¤¬) ¤¹¤Ù¤Æ +i386 を含む多くのプラットフォームでは、ソケット関連のシステムコールは +(glibc のラッパー関数を介してだが) すべて .BR socketcall (2) -·Ðͳ¤Ë¿½Å¤µ¤ì¤Æ¤¤¤ë¡£ -ƱÍͤˡ¢System V IPC ´ØÏ¢¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +経由に多重されている。 +同様に、System V IPC 関連のシステムコールは .BR ipc (2) -·Ðͳ¤Ë¿½Å¤µ¤ì¤Æ¤¤¤ë¡£ +経由に多重されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Note the following points: -°Ê²¼¤ÎÅÀ¤Ëα°Õ¤¹¤ë¤³¤È: +以下の点に留意すること: .IP * 3 .\"O Although slots are reserved for them in the system call table, .\"O the following system calls are not implemented in the standard kernel: -°Ê²¼¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ -¥·¥¹¥Æ¥à¥³¡¼¥ë¡¦¥Æ¡¼¥Ö¥ë¤Ë¥¹¥í¥Ã¥È¤¬Í½Ì󤵤ì¤Æ¤¤¤ë¤¬¡¢ -ɸ½à¤Î¥«¡¼¥Í¥ë¤Ë¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤: +以下のシステムコールは、 +システムコール・テーブルにスロットが予約されているが、 +標準のカーネルには実装されていない: .BR afs_syscall (2), \" __NR_afs_syscall is 53 on Linux 2.6.22/i386 .BR break (2), \" __NR_break is 17 on Linux 2.6.22/i386 .BR ftime (2), \" __NR_ftime is 35 on Linux 2.6.22/i386 @@ -719,18 +719,18 @@ i386 .\"O (see also .\"O .BR unimplemented (2)). .RB ( unimplemented (2) -¤â»²¾È)¡£ +も参照)。 .\"O However, .\"O .BR ftime (3), .\"O .BR profil (3) .\"O and .\"O .BR ulimit (3) .\"O exist as library routines. -¤·¤«¤·¡¢ +しかし、 .BR ftime (3), .BR profil (3), .BR ulimit (3) -¤Ï¥é¥¤¥Ö¥é¥ê¡¦¥ë¡¼¥Á¥ó¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +はライブラリ・ルーチンとして実装されている。 .\"O The slot for .\"O .BR phys (2) .\"O is in use since kernel 2.1.116 for @@ -738,12 +738,12 @@ i386 .\"O .BR phys (2) .\"O will never be implemented. .BR phys (2) -ÍѤξì½ê¤Ï 2.1.116 °Ê¹ß¤Ç¤Ï +用の場所は 2.1.116 以降では .BR umount (2) -ÍѤ˻ÈÍѤµ¤ì¤Æ¤¤¤ë; -¾­Íè¤Ë¤ª¤¤¤Æ¤â +用に使用されている; +将来においても .BR phys (2) -¤Ï¼ÂÁõ¤µ¤ì¤Ê¤¤¡£ +は実装されない。 .IP * .\"O The .\"O .BR getpmsg (2) @@ -752,10 +752,10 @@ i386 .\"O calls are for kernels patched to support STREAMS, .\"O and may never be in the standard kernel. .BR getpmsg (2) -¤È +と .BR putpmsg (2) -¤Ï¡¢¥¹¥È¥ê¡¼¥àÂбþ¤Î¥Ñ¥Ã¥Á¤¬Åö¤Æ¤é¤ì¤¿¥«¡¼¥Í¥ëÍѤΤâ¤Î¤Ç¡¢ -ɸ½à¤Î¥«¡¼¥Í¥ë¤Ë¸ºß¤¹¤ë¤³¤È¤Ïº£¸å¤â¤Ê¤¤¡£ +は、ストリーム対応のパッチが当てられたカーネル用のもので、 +標準のカーネルに存在することは今後もない。 .\" The security call is for future use. .PP .\"O Roughly speaking, the code belonging to the system call @@ -765,15 +765,15 @@ i386 .\"O .IR sys_xxx (). .\"O (The dispatch table for i386 can be found in .\"O .IR /usr/src/linux/arch/i386/kernel/entry.S .) -¤¿¤¤¤Æ¤¤¤Ï¡¢ +たいていは、 .I /usr/include/asm/unistd.h -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëÈÖ¹æ __NR_xxx ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥³¡¼¥É¤Ï¡¢ -¥«¡¼¥Í¥ë¡¦¥½¡¼¥¹¤Î +で定義されている番号 __NR_xxx のシステムコールのコードは、 +カーネル・ソースの .IR sys_xxx () -¤È¤¤¤¦¥ë¡¼¥Á¥ó¤Ë½ñ¤«¤ì¤Æ¤¤¤ë -(i386 ¤Ë¤ª¤±¤ë¼Â¹Ô¥Æ¡¼¥Ö¥ë¤Ï +というルーチンに書かれている +(i386 における実行テーブルは .I /usr/src/linux/arch/i386/kernel/entry.S -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë)¡£ +に書かれている)。 .\"O There are many exceptions, however, mostly because .\"O older system calls were superseded by newer ones, .\"O and this has been treated somewhat unsystematically. @@ -781,20 +781,20 @@ i386 .\"O proprietary OS emulation, such as parisc, sparc, sparc64 and alpha, .\"O there are many additional system calls; mips64 also contains a full .\"O set of 32-bit system calls. -¤·¤«¤·¤³¤ì¤Ë¤Ï¿¤¯¤ÎÎã³°¤¬¤¢¤ë¡£¸Å¤¤¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¿·ÈǤËÃÖ¤­´¹¤¨¤é¤ì¤Æ -¤­¤¿¤¬¡¢¤³¤ÎÃÖ¤­´¹¤¨¤Ï¤¢¤Þ¤êÂηÏΩ¤Æ¤Æ¹Ô¤ï¤ì¤ÆÍè¤Ê¤«¤Ã¤¿¤«¤é¤Ç¤¢¤ë¡£ -parisc, sparc, sparc64, alpha ¤È¤¤¤Ã¤¿¥×¥í¥×¥ê¥¨¥¿¥ê OS ¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó -µ¡Ç½¤¬¤¢¤ë¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï¡¢Â¿¤¯¤ÎÄɲå·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤¢¤ë¡£ -mips64 ¤Ë¤Ï¡¢32 ¥Ó¥Ã¥È¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥Õ¥ë¥»¥Ã¥È¤â´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +しかしこれには多くの例外がある。古いシステムコールは新版に置き換えられて +きたが、この置き換えはあまり体系立てて行われて来なかったからである。 +parisc, sparc, sparc64, alpha といったプロプリエタリ OS のエミュレーション +機能があるプラットフォームでは、多くの追加システムコールがある。 +mips64 には、32 ビットシステムコールのフルセットも含まれている。 .\"O Over time, changes to the interfaces of some system calls have been .\"O necessary. .\"O One reason for such changes was the need to increase the size of .\"O structures or scalar values passed to the system call. -»þ´Ö¤Î·Ð²á¤È¤È¤â¤Ë¡¢¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤Ï¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î -Êѹ¹¤¬É¬ÍפˤʤäƤ­¤¿¡£ -¤³¤¦¤·¤¿Êѹ¹¤ÎÍýͳ¤Î°ì¤Ä¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÅϤµ¤ì¤ë¹½Â¤ÂΤ䥹¥«¥é¡¼ÃÍ -¤Î¥µ¥¤¥º¤òÁý¤ä¤¹É¬Íפ¬¤¢¤ë¤³¤È¤À¤Ã¤¿¡£ +時間の経過とともに、いくつかのシステムコールではインタフェースの +変更が必要になってきた。 +こうした変更の理由の一つは、システムコールに渡される構造体やスカラー値 +のサイズを増やす必要があることだった。 .\"O Because of these changes, there are now various groups .\"O of related system calls .\"O (e.g., @@ -803,24 +803,24 @@ mips64 .\"O .BR truncate64 (2)) .\"O which perform similar tasks, but which vary in .\"O details such as the size of their arguments. -¤³¤ì¤é¤ÎÊѹ¹¤Î·ë²Ì¡¢¸½ºß¤Ç¤Ï¡¢Æ±ÍͤνèÍý¤ò¼Â¹Ô¤¹¤ë¤¬ -°ú¤­¿ô¤Î¥µ¥¤¥º¤Ê¤É¤Î¾ÜºÙ¤Ï°Û¤Ê¤ë¡¢°ìÏ¢¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë·²¤¬ -¤¤¤¯¤Ä¤«Â¸ºß¤¹¤ë -(Î㤨¤Ð¡¢ +これらの変更の結果、現在では、同様の処理を実行するが +引き数のサイズなどの詳細は異なる、一連のシステムコール群が +いくつか存在する +(例えば、 .BR truncate (2) -¤È -.BR truncate64 (2))¡£ +と +.BR truncate64 (2))。 .\"O (As noted earlier, applications are generally unaware of this: .\"O the glibc wrapper functions do some work to ensure that the right .\"O system call is invoked, and that ABI compatibility is .\"O preserved for old binaries.) -(¤¹¤Ç¤Ë½Ò¤Ù¤¿¤è¤¦¤Ë¡¢ -°ìÈ̤ˤϥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¤³¤Î¤³¤È¤ò°Õ¼±¤¹¤ë¤³¤È¤Ï¤Ê¤¤¡£ -glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤¬¡¢Å¬Àڤʥ·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤·¡¢¸Å¤¤¥Ð¥¤¥Ê¥ê¤Ë -ÂФ·¤Æ ABI ¥ì¥Ù¥ë¤Ç¤Î¸ß´¹À­¤òÊÝ»ý¤¹¤ë¤³¤È¤òÊݾڤ¹¤ë½èÍý¤ò¹Ô¤Ã¤Æ¤¤¤ë¡£) +(すでに述べたように、 +一般にはアプリケーションがこのことを意識することはない。 +glibc のラッパー関数が、適切なシステムコールを起動し、古いバイナリに +対して ABI レベルでの互換性を保持することを保証する処理を行っている。) .\"O Examples of systems calls that exist in multiple versions are .\"O the following: -Ê£¿ô¤Î¥Ð¡¼¥¸¥ç¥ó¤¬Â¸ºß¤¹¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÎã¤ò°Ê²¼¤Ëµó¤²¤ë¡£ +複数のバージョンが存在するシステムコールの例を以下に挙げる。 .IP * 3 .\"O By now there are three different versions of .\"O .BR stat (2): @@ -835,19 +835,19 @@ glibc .\"O (slot .\"O .IR __NR_stat64 ), .\"O with the last being the most current. -¤³¤ì¤Þ¤Ç¤Ë¡¢ +これまでに、 .BR stat (2) -¤Ë¤Ï 3 ¼ïÎà¤Î°Û¤Ê¤ë¥Ð¡¼¥¸¥ç¥ó¤¬Â¸ºß¤¹¤ë¡£ +には 3 種類の異なるバージョンが存在する。 .IR sys_stat () -(¥¹¥í¥Ã¥È¤Ï -.IR __NR_oldstat )¡¢ +(スロットは +.IR __NR_oldstat )、 .IR sys_newstat () -(¥¹¥í¥Ã¥È¤Ï -.IR __NR_stat )¡¢ +(スロットは +.IR __NR_stat )、 .IR sys_stat64 () -(¥«¡¼¥Í¥ë 2.4 ¤ÇƳÆþ; ¥¹¥í¥Ã¥È¤Ï -.IR __NR_stat64 )¡£ -3¤Ä¤Î¤¦¤ÁºÇ¸å¤Î¤â¤Î¤¬ºÇ¿·¤Ç¤¢¤ë¡£ +(カーネル 2.4 で導入; スロットは +.IR __NR_stat64 )。 +3つのうち最後のものが最新である。 .\" e.g., on 2.6.22/i386: __NR_oldstat 18, __NR_stat 106, __NR_stat64 195 .\" The stat system calls deal with three different data structures, .\" defined in include/asm-i386/stat.h: __old_kernel_stat, stat, stat64 @@ -856,9 +856,9 @@ glibc .\"O and .\"O .BR fstat (2). .BR lstat (2) -¤È +と .BR fstat (2) -¤Ë¤Ä¤¤¤Æ¤âƱÍͤǤ¢¤ë¡£ +についても同様である。 .IP * .\"O Similarly, the defines .\"O .IR __NR_oldolduname , @@ -870,15 +870,15 @@ glibc .\"O .IR sys_uname () .\"O and .\"O .IR sys_newuname (). -¤Þ¤¿¡¢ +また、 .IR __NR_oldolduname , .IR __NR_olduname , .I __NR_uname -¤È¤¤¤¦ÄêµÁ¤Ï¡¢¤½¤ì¤¾¤ì +という定義は、それぞれ .IR sys_olduname (), .IR sys_uname (), .IR sys_newuname () -¤È¤¤¤¦¥ë¡¼¥Á¥ó¤ò»²¾È¤·¤Æ¤¤¤ë¡£ +というルーチンを参照している。 .IP * .\"O In Linux 2.0, a new version of .\"O .BR vm86 (2) @@ -886,13 +886,13 @@ glibc .\"O .IR sys_vm86old () .\"O and .\"O .IR sys_vm86 (). -Linux 2.0 ¤Ç¤Ï¡¢ +Linux 2.0 では、 .BR vm86 (2) -¤Î¿·¥Ð¡¼¥¸¥ç¥ó¤¬Åо줷¤¿¡£¥«¡¼¥Í¥ë¥ë¡¼¥Á¥ó¤Î -¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¡¢¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤Ï¤½¤ì¤¾¤ì +の新バージョンが登場した。カーネルルーチンの +古いバージョン、新しいバージョンはそれぞれ .IR sys_vm86old (), .IR sys_vm86 () -¤È¤¤¤¦Ì¾Á°¤Ç¤¢¤ë¡£ +という名前である。 .IP * .\"O In Linux 2.4, a new version of .\"O .BR getrlimit (2) @@ -904,21 +904,21 @@ Linux 2.0 .\"O .IR sys_getrlimit () .\"O (slot .\"O .IR __NR_ugetrlimit ). -Linux 2.4 ¤Ç¤Ï¡¢ +Linux 2.4 では、 .BR getrlimit (2) -¤Î¿·¥Ð¡¼¥¸¥ç¥ó¤¬Åо줷¤¿¡£¥«¡¼¥Í¥ë¥ë¡¼¥Á¥ó¤Î -¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¡¢¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤Ï¤½¤ì¤¾¤ì +の新バージョンが登場した。カーネルルーチンの +古いバージョン、新しいバージョンはそれぞれ .IR sys_old_getrlimit () -(¥¹¥í¥Ã¥È¤Ï +(スロットは .IR __NR_getrlimit ), .IR sys_getrlimit () -(¥¹¥í¥Ã¥È¤Ï +(スロットは .IR __NR_ugetrlimit ) -¤È¤¤¤¦Ì¾Á°¤Ç¤¢¤ë¡£ +という名前である。 .IP * .\"O Linux 2.4 increased the size of user and group IDs from 16 to 32 bits. -Linux 2.4 ¤Ç¡¢¥æ¡¼¥¶ ID ¤È¥°¥ë¡¼¥× ID ¤Î¥µ¥¤¥º¤¬ -16 ¥Ó¥Ã¥È¤«¤é 32 ¥Ó¥Ã¥È¤ËÁý¤¨¤¿¡£ +Linux 2.4 で、ユーザ ID とグループ ID のサイズが +16 ビットから 32 ビットに増えた。 .\" 64-bit off_t changes: ftruncate64, *stat64, .\" fcntl64 (because of the flock structure), getdents64, *statfs64 .\"O To support this change, a range of system calls were added @@ -929,14 +929,14 @@ Linux 2.4 .\"O .BR setresuid32 (2)), .\"O superseding earlier calls of the same name without the .\"O "32" suffix. -¤³¤ÎÊѹ¹¤ËÂбþ¤¹¤ë¤¿¤á¡¢¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Äɲ䵤줿 +この変更に対応するため、いくつかのシステムコールが追加された .RB ( chown32 (2), .BR getuid32 (2), .BR getgroups32 (2), .BR setresuid32 (2) -¤Ê¤É)¡£ -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¡¢ËöÈø¤Î "32" ¤¬ÉÕ¤«¤Ê¤¤Æ±Ì¾¤Î -¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤ËÂå¤ï¤Ã¤Æ»È¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ +など)。 +これらのシステムコールが、末尾の "32" が付かない同名の +古いバージョンに代わって使われるようになった。 .IP * .\"O Linux 2.4 added support for applications on 32-bit architectures .\"O to access large files (i.e., files for which the sizes and @@ -954,30 +954,30 @@ Linux 2.4 .\"O These system calls supersede the older system calls .\"O which, except in the case of the "stat" calls, .\"O have the same name without the "64" suffix. -Linux 2.4 ¤Ç¤Ï¡¢32 ¥Ó¥Ã¥È¡¦¥¢¡¼¥­¥Æ¥¯¥Á¥ã¾å¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬ -Â礭¤Ê¥Õ¥¡¥¤¥ë (¤Ä¤Þ¤ê¡¢32 ¥Ó¥Ã¥È¤Ç¤Ïɽ¸½¤Ç¤­¤Ê¤¤¥µ¥¤¥º¤ä -¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤¬É¬Íפʥե¡¥¤¥ë) ¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ -¤³¤ÎÊѹ¹¤ËÂбþ¤¹¤ë¤¿¤á¡¢¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤È¥µ¥¤¥º¤ò°·¤¦ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÃÖ¤­´¹¤¨¤¬É¬ÍפȤʤä¿¡£¤½¤Î·ë²Ì¡¢ +Linux 2.4 では、32 ビット・アーキテクチャ上のアプリケーションが +大きなファイル (つまり、32 ビットでは表現できないサイズや +ファイル・オフセットが必要なファイル) にアクセスできるようになった。 +この変更に対応するため、ファイル・オフセットとサイズを扱う +システムコールの置き換えが必要となった。その結果、 .BR fcntl64 (2), .BR ftruncate64 (2), .BR getdents64 (2), .BR stat64 (2), .BR statfs64 (2) -¤È¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ä¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ÇƱ¤¸µ¡Ç½¤ò»ý¤Ä -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Äɲ䵤줿¡£ -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¡¢ËöÈø¤Î "64" ¤¬ÉÕ¤«¤Ê¤¤Æ±Ì¾¤Î -¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤ËÂå¤ï¤Ã¤Æ»È¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ -⤷¡¢"stat" ·Ï¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¤½¤Î¸Â¤ê¤Ç¤Ï¤Ê¤¤¡£ +と、ファイルディスクリプタやシンボリックリンクで同じ機能を持つ +システムコールが追加された。 +これらのシステムコールが、末尾の "64" が付かない同名の +古いバージョンに代わって使われるようになった。 +但し、"stat" 系のシステムコールはその限りではない。 .\"O On newer platforms that only have 64-bit file access and 32-bit uids .\"O (e.g., alpha, ia64, s390x) there are no *64 or *32 calls. .\"O Where the *64 and *32 calls exist, the other versions are obsolete. -64-bit ¥Õ¥¡¥¤¥ë¥¢¥¯¥»¥¹¤È 32-bit UID ¤Î¤ß¤ò»ý¤Ä -¿·¤·¤¤¥×¥é¥Ã¥È¥Õ¥©¡¼¥à (alpha, ia64, s390x ¤Ê¤É) ¤Ç¤Ï¡¢ -*64 ¤ä *32 ¤È¤¤¤¦Ì¾Á°¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¤Ê¤¤¡£ -*64 ¤ä *32 ¤È¤¤¤¦¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Â¸ºß¤¹¤ë¾ì¹ç¡¢ -*64 ¤ä *32 ¤¬¤Ä¤¤¤Æ¤¤¤Ê¤¤¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÇѻ߰·¤¤¤Ç¤¢¤ë¡£ +64-bit ファイルアクセスと 32-bit UID のみを持つ +新しいプラットフォーム (alpha, ia64, s390x など) では、 +*64 や *32 という名前のシステムコールはない。 +*64 や *32 というシステムコールが存在する場合、 +*64 や *32 がついていないシステムコールは廃止扱いである。 .IP * .\"O The .\"O .I rt_sig* @@ -986,13 +986,13 @@ Linux 2.4 .\"O .BR signal (7)). .\"O These system calls supersede the older system calls of the same .\"O name without the "rt_" prefix. -¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë +リアルタイムシグナル .RB ( signal (7) -»²¾È) ¤Ø¤ÎÂбþ¤òÄɲ乤뤿¤á¤Ë¡¢ +参照) への対応を追加するために、 .I rt_sig* -·Ï¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¥«¡¼¥Í¥ë 2.2 ¤ÇÄɲ䵤줿¡£ -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¡¢ÀèƬ¤Ë "rt_" ¤¬ÉÕ¤«¤Ê¤¤Æ±Ì¾¤Î -¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤ËÂå¤ï¤Ã¤Æ»È¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ +系のシステムコールがカーネル 2.2 で追加された。 +これらのシステムコールが、先頭に "rt_" が付かない同名の +古いバージョンに代わって使われるようになった。 .IP * .\"O The .\"O .BR select (2) @@ -1002,10 +1002,10 @@ Linux 2.4 .\"O which caused problems the way .\"O argument passing on the i386 used to be set up. .BR select (2) -¤È +と .BR mmap (2) -¤Ï 5¤Ä¤â¤·¤¯¤Ï¤½¤ì°Ê¾å¤Î°ú¤­¿ô¤ò»ÈÍѤ·¤Æ¤ª¤ê¡¢ -i386 ¤Ç¤Ï°ú¤­¿ô¤Î¼õ¤±ÅϤ·¤ËÌäÂ꤬À¸¤¸¤ë¡£ +は 5つもしくはそれ以上の引き数を使用しており、 +i386 では引き数の受け渡しに問題が生じる。 .\"O Thus, while other architectures have .\"O .IR sys_select () .\"O and @@ -1020,20 +1020,20 @@ i386 .\"O .IR old_mmap () .\"O (routines that use a pointer to a .\"O argument block) instead. -¤½¤Î¤¿¤á¡¢Â¾¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï +そのため、他のアーキテクチャでは .I __NR_select -¤È +と .I __NR_mmap -¤ËÂбþ¤¹¤ë +に対応する .IR sys_select () -¤È +と .IR sys_mmap () -¤¬Â¸ºß¤¹¤ë¤¬¡¢i386 ¤Ç¤ÏÂå¤ï¤ê¤Ë +が存在するが、i386 では代わりに .IR old_select () -¤È +と .IR old_mmap () -¤È¤¤¤¦¥ë¡¼¥Á¥ó¤¬¤¢¤ë -(¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤Ï°ú¤­¿ô¥Ö¥í¥Ã¥¯¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»ÈÍѤ¹¤ë)¡£ +というルーチンがある +(これらのルーチンは引き数ブロックへのポインタを使用する)。 .\"O These days passing five arguments .\"O is not a problem any more, and there is a .\"O .I __NR__newselect @@ -1042,14 +1042,14 @@ i386 .\"O .IR sys_select () .\"O and similarly .\"O .IR __NR_mmap2 . -¸½ºß¤Ç¤Ï 5¤Ä¤Î°ú¤­¿ô¤òÅϤ¹¤³¤È¤Ï¤â¤Ï¤äÌäÂê¤Ç¤Ï¤Ê¤¯¤Ê¤Ã¤Æ¤ª¤ê¡¢ -.\" (libc 6 ¤Ç»ÈÍѤµ¤ì¤ë) +現在では 5つの引き数を渡すことはもはや問題ではなくなっており、 +.\" (libc 6 で使用される) .I __NR__newselect -¤Ï +は .IR sys_select () -¤ËľÀÜÂбþ¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +に直接対応するようになっている。 .I __NR_mmap2 -¤Ë¤Ä¤¤¤Æ¤âƱÍͤǤ¢¤ë¡£ +についても同様である。 .\" .PP .\" Two system call numbers, .\" .IR __NR__llseek @@ -1071,7 +1071,7 @@ i386 .\" and the semantics of the latter call were changed to what .\" they are today. .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR syscall (2), .BR unimplemented (2), .BR libc (7) diff --git a/draft/man2/sysctl.2 b/draft/man2/sysctl.2 index 5f20505d..3eae9306 100644 --- a/draft/man2/sysctl.2 +++ b/draft/man2/sysctl.2 @@ -31,20 +31,20 @@ .\" Modified 1998-05-11, HANATAKA Shinya .\" Updated 2007-10-11, Akihiro MOTOKI , LDP v2.66 .\" -.\"WORD: parameter ¥Ñ¥é¥á¡¼¥¿¡¼ -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: hostname ¥Û¥¹¥È¥Í¡¼¥à -.\"WORD: open ¥ª¡¼¥×¥ó -.\"WORD: directory ¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: tree ¥Ä¥ê¡¼ +.\"WORD: parameter パラメーター +.\"WORD: kernel カーネル +.\"WORD: hostname ホストネーム +.\"WORD: open オープン +.\"WORD: directory ディレクトリ +.\"WORD: tree ツリー .\" .TH SYSCTL 2 2008-11-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sysctl \- read/write system parameters -sysctl \- ¥·¥¹¥Æ¥à¡¦¥Ñ¥é¥á¡¼¥¿¡¼¤òÆɤ߽ñ¤­¤¹¤ë +sysctl \- システム・パラメーターを読み書きする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .br @@ -53,11 +53,11 @@ sysctl \- .BI "int _sysctl(struct __sysctl_args *" args ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .B Do not use this system call! .\"O See NOTES. -.B ¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»ÈÍѤ·¤Ê¤¤¤³¤È! -¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¡£ +.B このシステムコールを使用しないこと! +「注意」の節を参照。 .\"O The .\"O .BR _sysctl () @@ -66,9 +66,9 @@ sysctl \- .\"O or the maximum number of open files. .\"O The argument has the form .BR _sysctl () -¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë¥Ñ¥é¥á¡¼¥¿¡¼¤òÆɤ߽ñ¤­¤¹¤ë¡£Î㤨¤Ð¡¢ -¥Û¥¹¥È¥Í¡¼¥à¤äƱ»þ¤Ë¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¤ÎºÇÂç¿ô¤Ê¤É¡£ -°ú¤­¿ô¤Ï°Ê²¼¤Î·Á¼°¤Ç¤¢¤ë¡£ +コールはカーネルパラメーターを読み書きする。例えば、 +ホストネームや同時にオープンできるファイルの最大数など。 +引き数は以下の形式である。 .PP .in +4n .nf @@ -89,26 +89,26 @@ struct __sysctl_args { .\"O .IR /proc/sys , .\"O and if the requested item is found calls some appropriate routine .\"O to read or modify the value. -¤³¤Î¥³¡¼¥ë¤Ï +このコールは .I /proc/sys -¤Î²¼¤Î¥Ç¥£¥ì¥¯¥È¥ê¡¦¥Ä¥ê¡¼¤Ë»÷¤¿ÌÚ¹½Â¤(tree structure)¤ò¸¡º÷¤¹¤ë¡£ -¤½¤·¤Æ¡¢Í׵ᤵ¤ì¤¿¹àÌܤ¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤ÏŬÀڤʥ롼¥Á¥ó¤ò¸Æ¤Ó½Ð¤·¤Æ -ÃͤòÆɤó¤À¤ê½¤Àµ¤·¤¿¤ê¤¹¤ë¡£ +の下のディレクトリ・ツリーに似た木構造(tree structure)を検索する。 +そして、要求された項目が見つかった場合は適切なルーチンを呼び出して +値を読んだり修正したりする。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O Upon successful completion, .\"O .BR _sysctl () .\"O returns 0. .\"O Otherwise, a value of \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤·¤¿¾ì¹ç¤Ï +成功した場合は .BR _sysctl () -¤Ï 0 ¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +は 0 を返す。失敗した場合、\-1 が返され、 .I errno -¤¬¤½¤Î¥¨¥é¡¼¤ò¼¨¤¹ÃͤËÀßÄꤵ¤ì¤ë¡£ +がそのエラーを示す値に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O The invocation asked for the previous value by setting @@ -116,15 +116,15 @@ struct __sysctl_args { .\"O non-NULL, but allowed zero room in .\"O .IR oldlenp . .I oldval -¤Ë NULL ¤Ç¤Ê¤¤ÃͤòÀßÄꤷ¤Æ¡¢°ÊÁ°¤ÎÃͤòÍ׵ᤷ¤Æ¤¤¤ë¤Î¤Ë¡¢ +に NULL でない値を設定して、以前の値を要求しているのに、 .I oldlenp -¤Ë¶õ¤­¤¬¤Ê¤¤¡£ +に空きがない。 .TP .B ENOTDIR .\"O .I name .\"O was not found. .I name -¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£ +が見つからなかった。 .TP .B EPERM .\"O No search permission for one of the encountered "directories", @@ -133,17 +133,17 @@ struct __sysctl_args { .\"O was nonzero, or no write permission where .\"O .I newval .\"O was nonzero. -¡Ö¥Ç¥£¥ì¥¯¥È¥ê¡×¤Î¤É¤ì¤«¤Ë¸¡º÷µö²Ä¤¬¤Ê¤«¤Ã¤¿¤«¡¢ +「ディレクトリ」のどれかに検索許可がなかったか、 .I oldval -¤¬ 0 ¤Ç¤Ê¤¤¤Î¤ËÆɤ߹þ¤ßµö²Ä¤¬¤Ê¤«¤Ã¤¿¤«¡¢ +が 0 でないのに読み込み許可がなかったか、 .I newval -¤¬ 0 ¤Ç¤Ê¤¤¤Î¤Ë½ñ¤­¹þ¤ßµö²Ä¤¬¤Ê¤«¤Ã¤¿¡£ +が 0 でないのに書き込み許可がなかった。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This call is Linux-specific, and should not be used in programs .\"O intended to be portable. -¤³¤Î¥³¡¼¥ë¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç»ÈÍѤ·¤Æ¤Ï -¤¤¤±¤Ê¤¤¡£ +このコールは Linux 特有であり、移植を意図したプログラムで使用しては +いけない。 .\"O A .\"O .BR sysctl () .\"O call has been present in Linux since version 1.3.57. @@ -155,23 +155,23 @@ struct __sysctl_args { .\"O but the declaration of the .\"O .BR sysctl () .\"O function is the same in both. -.SH Îò»Ë +.SH 歴史 .BR sysctl () -¥³¡¼¥ë¤Ï -Linux ¤Î¥Ð¡¼¥¸¥ç¥ó 1.3.57 ¤«¤é¸ºß¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï 4.4BSD ¤ËͳÍ褷¤Æ¤¤¤ë¡£Linux ¤Ï +コールは +Linux のバージョン 1.3.57 から存在している。 +これは 4.4BSD に由来している。Linux は .I /proc/sys -¤Ë¼Ì¤·(mirror)¤ò¤â¤Ã¤Æ¤ª¤ê¡¢¹àÌܤÎ̾Á°¤ÎÉÕ¤±Êý¤¬ Linux ¤È 4.4BSD ¤Ç¤Ï -°Û¤Ã¤Æ¤¤¤ë¡£¤·¤«¤· +に写し(mirror)をもっており、項目の名前の付け方が Linux と 4.4BSD では +異っている。しかし .BR sysctl () -´Ø¿ô¤ÎÀë¸À¤ÏξÊý¤ÇƱ¤¸¤Ç¤¢¤ë¡£ +関数の宣言は両方で同じである。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Glibc does not provide a wrapper for this system call; call it using .\"O .BR syscall (2). -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +glibc はこのシステムコールに対するラッパー関数を提供していない。 .BR syscall (2) -¤ò»È¤Ã¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¡£ +を使って呼び出すこと。 .\"O Or rather... don't call it: .\"O use of this system call has long been discouraged, @@ -181,32 +181,32 @@ glibc .\"O Remove it from your programs now; use the .\"O .I /proc/sys .\"O interface instead. -¤È¤¤¤¦¤è¤ê¤Ï¡¦¡¦¡¦¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¸Æ¤Ó½Ð¤µ¤Ê¤¤¤³¤È¡£ -Ť¤´Ö¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î»ÈÍѤÏÈó¿ä¾©¤È¤µ¤ì¤Æ¤ª¤ê¡¢ -¡Ö¾­Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥«¡¼¥Í¥ë¤Çºï½ü¤µ¤ì¤ë¤è¤¦¤À¡×¤È¸À¤ï¤ì¤ë¤Û¤É¤Ç¤¢¤ë¡£ -.\" http://lwn.net/Articles/247243/ »²¾È -¤¢¤Ê¤¿¤Î¥×¥í¥°¥é¥à¤Ë¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤¢¤ì¤Ð¡¢¤¹¤°¤Ë¤Ç¤âºï½ü¤¹¤ë¤³¤È¡£ -Âå¤ï¤ê¤Ë +というよりは・・・このシステムコールを呼び出さないこと。 +長い間このシステムコールの使用は非推奨とされており、 +「将来のバージョンのカーネルで削除されるようだ」と言われるほどである。 +.\" http://lwn.net/Articles/247243/ 参照 +あなたのプログラムにこのシステムコールがあれば、すぐにでも削除すること。 +代わりに .I /proc/sys -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +インターフェースを使用すること。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O The object names vary between kernel versions, .\"O making this system call worthless for applications. -¥ª¥Ö¥¸¥§¥¯¥È¤Î̾Á°¤Ï¡¢¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤´¤È¤Ë°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤³¤Î¤¿¤á¡¢¤³¤Î¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤È¤Ã¤Æ -̵²ÁÃͤʤâ¤Î¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ +オブジェクトの名前は、カーネルのバージョンごとに異なっている。 +このため、このシステム・コールはアプリケーションにとって +無価値なものとなっている。 .PP .\"O Not all available objects are properly documented. -Á´¤Æ¤Î²Äǽ¤Ê¹àÌܤ¬Àµ³Î¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ +全ての可能な項目が正確に記述されているわけではない。 .PP .\"O It is not yet possible to change operating system by writing to .\"O .IR /proc/sys/kernel/ostype . -º£¤Î¤È¤³¤í +今のところ .I /proc/sys/kernel/ostype -¤Ë½ñ¤­¹þ¤à¤³¤È¤Ç¥ª¥Ú¡¼¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤òÊѤ¨¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +に書き込むことでオペーレーティング・システムを変えることはできない。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .nf #define _GNU_SOURCE #include @@ -245,5 +245,5 @@ main(void) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR proc (5) diff --git a/draft/man2/sysfs.2 b/draft/man2/sysfs.2 index 067476fe..729c2c24 100644 --- a/draft/man2/sysfs.2 +++ b/draft/man2/sysfs.2 @@ -29,25 +29,25 @@ .\" Updated & Modified Sat Jun 2 20:46:34 JST 2001 .\" by Yuichi SATO .\" -.\"WORD: file system ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: identifier string ¼±ÊÌʸ»úÎó -.\"WORD: type index ·¿¥¤¥ó¥Ç¥Ã¥¯¥¹ +.\"WORD: file system ファイル・システム +.\"WORD: kernel カーネル +.\"WORD: identifier string 識別文字列 +.\"WORD: type index 型インデックス .\" .TH SYSFS 2 2010-06-27 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sysfs \- get file system type information -sysfs \- ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à (file system) ¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë +sysfs \- ファイル・システム (file system) の情報を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .BI "int sysfs(int " option ", const char *" fsname ); .BI "int sysfs(int " option ", unsigned int " fs_index ", char *" buf ); .BI "int sysfs(int " option ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR sysfs () .\"O returns information about the file system types currently present in .\"O the kernel. @@ -57,20 +57,20 @@ sysfs \- .\"O .I option .\"O in effect: .BR sysfs () -¤Ï¸½ºß¥«¡¼¥Í¥ë (kernel) ¤Ë¸ºß¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î·¿ (type) ¾ðÊó¤òÊÖ¤¹¡£ -¤½¤ì¤¾¤ì¤Î +は現在カーネル (kernel) に存在しているファイル・システムの型 (type) 情報を返す。 +それぞれの .BR sysfs () -¥³¡¼¥ë¤Î·Á¼°¤ÈÊÖ¤µ¤ì¤ë¾ðÊó¤Ï +コールの形式と返される情報は .I option -¤Ë°Í¸¤·¤Æ¤ª¤ê¡¢¤½¤ì¤Ï: +に依存しており、それは: .TP 3 .B 1 .\"O Translate the file-system identifier string .\"O .I fsname .\"O into a file-system type index. -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¼±ÊÌʸ»úÎó (identifier string) +ファイル・システム識別文字列 (identifier string) .I fsname -¤ò¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î·¿¥¤¥ó¥Ç¥Ã¥¯¥¹ (type index) ¤ËËÝÌõ¤¹¤ë¡£ +をファイル・システムの型インデックス (type index) に翻訳する。 .TP .B 2 .\"O Translate the file-system type index @@ -82,24 +82,24 @@ sysfs \- .\"O Make sure that .\"O .I buf .\"O has enough space to accept the string. -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î·¿¥¤¥ó¥Ç¥Ã¥¯¥¹ +ファイル・システムの型インデックス .I fs_index -¤ò NULL ½ªÃ¼¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¼±ÊÌʸ»úÎó¤ËËÝÌõ¤¹¤ë¡£ -¤³¤Îʸ»úÎó¤Ï +を NULL 終端されたファイル・システム識別文字列に翻訳する。 +この文字列は .I buf -¤Ç»ØÄꤵ¤ì¤¿¥Ð¥Ã¥Õ¥¡¡¼¤Ø½ñ¤­¹þ¤Þ¤ì¤ë¡£ +で指定されたバッファーへ書き込まれる。 .I buf -¤Ëʸ»úÎó¤òÆþ¤ì¤ë¤À¤±¤Î½½Ê¬¤ÊÍÆÎ̤¬¤¢¤ë¤³¤È¤ò³Î¤«¤á¤ë¤³¤È¡£ +に文字列を入れるだけの十分な容量があることを確かめること。 .TP .B 3 .\"O Return the total number of file system types currently present in the .\"O kernel. -¸½ºß¥«¡¼¥Í¥ë¤Ë¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à·¿¤Î¿ô¤Î¹ç·×¤òÊÖ¤¹¡£ +現在カーネルに存在するファイル・システム型の数の合計を返す。 .PP .\"O The numbering of the file-system type indexes begins with zero. -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î·¿¥¤¥ó¥Ç¥Ã¥¯¥¹¤Î¿ô¤Ï¥¼¥í¤«¤é»Ï¤Þ¤ë¡£ +ファイル・システムの型インデックスの数はゼロから始まる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR sysfs () .\"O returns the file-system index for option @@ -108,33 +108,33 @@ sysfs \- .\"O .BR 2 , .\"O and the number of currently configured file systems for option .\"O .BR 3 . -À®¸ù¤·¤¿¾ì¹ç +成功した場合 .BR sysfs () -¤Ï¡¢ -¥ª¥×¥·¥ç¥ó +は、 +オプション .B 1 -¤Ç¤Ï -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÊÖ¤¹¡£ -¥ª¥×¥·¥ç¥ó +では +ファイル・システムのインデックスを返す。 +オプション .B 2 -¤Ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ -¥ª¥×¥·¥ç¥ó +ではゼロを返す。 +オプション .B 3 -¤Ï¸½ºßÀßÄꤵ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î¿ô¤òÊÖ¤¹¡£ +は現在設定されているファイル・システムの数を返す。 .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +エラーの場合は、\-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O .RI "Either " fsname " or " buf .\"O is outside your accessible address space. -.RI fsname " ¤È " buf -¤Î¤É¤Á¤é¤«¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤Ë¤¢¤ë¡£ +.RI fsname " と " buf +のどちらかがアクセス可能なアドレス空間の外にある。 .TP .B EINVAL .\"O .I fsname @@ -144,31 +144,31 @@ sysfs \- .\"O .I option .\"O is invalid. .I fsname -¤¬Àµ¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î·¿¼±Ê̻ҤǤϤʤ¤; +が正しいファイル・システムの型識別子ではない; .I fs_index -¤¬ÈϰϤγ°¤Ë¤¢¤ë; +が範囲の外にある; .I option -¤¬Àµ¤·¤¯¤Ê¤¤¡£ +が正しくない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O This System-V derived system call is obsolete; don't use it. .\"O On systems with .\"O .IR /proc , .\"O the same information can be obtained via .\"O .IR /proc/filesystems ; .\"O use that interface instead. -¤³¤Î System-V ͳÍè¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÇÑ»ßͽÄê (obsolete) ¤Ç¤¢¤ê¡¢ -»ÈÍѤ·¤Ê¤¤¤³¤È¡£ +この System-V 由来のシステムコールは廃止予定 (obsolete) であり、 +使用しないこと。 .I /proc -¤¬ÍøÍѤǤ­¤ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢Æ±¤¸¾ðÊó¤¬ +が利用できるシステムでは、同じ情報が .I /proc/filesystems -·Ðͳ¤Ç¼èÆÀ¤Ç¤­¡¢¤³¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +経由で取得でき、このインタフェースを使用すること。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O There is no libc or glibc support. .\"O There is no way to guess how large \fIbuf\fP should be. -libc ¤Þ¤¿¤Ï glibc ¤Î¥µ¥Ý¡¼¥È¤Ï¸ºß¤·¤Ê¤¤¡£ -\fIbuf\fP ¤ÎÂ礭¤µ¤¬¤É¤ì¤À¤±É¬Íפ«¤ò¿ä¬¤¹¤ëÊýË¡¤¬¤Ê¤¤¡£ +libc または glibc のサポートは存在しない。 +\fIbuf\fP の大きさがどれだけ必要かを推測する方法がない。 diff --git a/draft/man2/sysinfo.2 b/draft/man2/sysinfo.2 index f12bc34e..6cb1bd54 100644 --- a/draft/man2/sysinfo.2 +++ b/draft/man2/sysinfo.2 @@ -18,29 +18,29 @@ .\" Modified Mon Sep 23 21:56:40 JST 2000 .\" by HANATAKA Shinya .\" -.\"WORD: library ¥é¥¤¥Ö¥é¥ê -.\"WORD: statistic Åý·× -.\"WORD: pointer ¥Ý¥¤¥ó¥¿¡¼ -.\"WORD: prototype ·¿Àë¸À +.\"WORD: library ライブラリ +.\"WORD: statistic 統計 +.\"WORD: pointer ポインター +.\"WORD: prototype 型宣言 .\" .TH SYSINFO 2 2007-11-15 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sysinfo \- returns information on overall system statistics -sysinfo \- ¥·¥¹¥Æ¥àÁ´ÂΤÎÅý·×¾ðÊó¤òÊÖ¤¹¡£ +sysinfo \- システム全体の統計情報を返す。 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int sysinfo(struct sysinfo *" info ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Until Linux 2.3.16, .\"O .BR sysinfo () .\"O used to return information in the following structure: -Linux 2.3.16 ¤Þ¤Ç¤Ï +Linux 2.3.16 までは .BR sysinfo () -¤Ï°Ê²¼¤Î¹½Â¤ÂΤ˾ðÊó¤òÆþ¤ì¤ÆÊÖ¤¹¡£ +は以下の構造体に情報を入れて返す。 .nf .in +4n @@ -60,11 +60,11 @@ struct sysinfo { .fi .PP .\"O and the sizes were given in bytes. -¤³¤³¤Ç¥Ð¥¤¥Èñ°Ì¤ÇÍ¿¤¨¤é¤ì¤ë¡£ +ここでバイト単位で与えられる。 .\"O Since Linux 2.3.23 (i386), 2.3.48 .\"O (all architectures) the structure is: -Linux 2.3.23 (i386)¡¢2.3.48 (Á´¤Æ¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã) ¤«¤é¤Ï¹½Â¤ÂÎ¤Ï +Linux 2.3.23 (i386)、2.3.48 (全てのアーキテクチャ) からは構造体は .nf .in +4n @@ -87,51 +87,51 @@ struct sysinfo { .fi .PP .\"O and the sizes are given as multiples of \fImem_unit\fP bytes. -¤È¤Ê¤ê¡¢Â礭¤µ¤Ï \fImem_unit\fP ¥Ð¥¤¥È¤ÎÇÜ¿ô¤ÇÍ¿¤¨¤é¤ì¤ë¡£ +となり、大きさは \fImem_unit\fP バイトの倍数で与えられる。 .\"O .BR sysinfo () .\"O provides a simple way of getting overall system statistics. .\"O This is more .\"O portable than reading \fI/dev/kmem\fP. .BR sysinfo () -¤Ï¥·¥¹¥Æ¥àÁ´ÂΤÎÅý·×¤ò¼èÆÀ¤¹¤ë´Êñ¤ÊÊýË¡¤òÄ󶡤¹¤ë¡£ -¤³¤ì¤Ï \fI/dev/kmem\fP ¤òÆɤà¤è¤ê¤â°Ü¿¢À­¤Î¹â¤¤ÊýË¡¤Ç¤¢¤ë¡£ +はシステム全体の統計を取得する簡単な方法を提供する。 +これは \fI/dev/kmem\fP を読むよりも移植性の高い方法である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï¥¼¥í¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Ê¤é¤Ð \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合はゼロが返される。エラーならば \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O pointer to \fIstruct\ sysinfo\fP is invalid -.I sysinfo ¹½Â¤ÂÎ -¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +.I sysinfo 構造体 +へのポインターが不正である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This function is Linux-specific, and should not be used in programs .\"O intended to be portable. -¤³¤Î´Ø¿ô¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï -»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ +この関数は Linux 特有であり、移植を意図したプログラムでは +使用してはいけない。 .sp .\"O The Linux kernel has a .\"O .BR sysinfo () .\"O system call since 0.98.pl6. -Linux ¥«¡¼¥Í¥ë¤Ï 0.98.pl6 ¤«¤é +Linux カーネルは 0.98.pl6 から .BR sysinfo () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»ý¤Ã¤Æ¤¤¤ë¡£ +システムコールを持っている。 .\"O Linux libc contains a .\"O .BR sysinfo () .\"O routine since 5.3.5, and .\"O glibc has one since 1.90. -Linux ¤Î libc ¤Ï 5.3.5 ¤è¤ê¡¢glibc ¤Ç¤Ï 1.90 ¤è¤ê +Linux の libc は 5.3.5 より、glibc では 1.90 より .BR sysinfo () -¥ë¡¼¥Á¥ó¤ò´Þ¤ó¤Ç¤¤¤ë¡£ +ルーチンを含んでいる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR proc (5) diff --git a/draft/man2/syslog.2 b/draft/man2/syslog.2 index 14d81a49..75748fc0 100644 --- a/draft/man2/syslog.2 +++ b/draft/man2/syslog.2 @@ -35,38 +35,38 @@ .\" Updated 2008-04-04, Akihiro MOTOKI, LDP v2.79 .\" Updated 2008-07-31, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: message ring buffer ¥á¥Ã¥»¡¼¥¸¡¦¥ê¥ó¥°¡¦¥Ð¥Ã¥Õ¥¡ -.\"WORD: library ¥é¥¤¥Ö¥é¥ê -.\"WORD: kernel log buffer ¥«¡¼¥Í¥ë¡¦¥í¥°¡¦¥Ð¥Ã¥Õ¥¡ -.\"WORD: console ¥³¥ó¥½¡¼¥ë -.\"WORD: kernel panic ¥«¡¼¥Í¥ë¡¦¥Ñ¥Ë¥Ã¥¯ -.\"WORD: loglevel ¥í¥°¥ì¥Ù¥ë -.\"WORD: debug message ¥Ç¥Ð¥Ã¥°¡¦¥á¥Ã¥»¡¼¥¸ +.\"WORD: kernel カーネル +.\"WORD: message ring buffer メッセージ・リング・バッファ +.\"WORD: library ライブラリ +.\"WORD: kernel log buffer カーネル・ログ・バッファ +.\"WORD: console コンソール +.\"WORD: kernel panic カーネル・パニック +.\"WORD: loglevel ログレベル +.\"WORD: debug message デバッグ・メッセージ .\" .TH SYSLOG 2 2008-06-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O syslog, klogctl \- read and/or clear kernel message ring buffer; .\"O set console_loglevel -syslog, klogctl \- ¥«¡¼¥Í¥ë¤Î¥á¥Ã¥»¡¼¥¸¡¦¥ê¥ó¥°¡¦¥Ð¥Ã¥Õ¥¡¤òÆɤó¤À¤ê¾Ãµî¤·¤¿¤ê¤¹¤ë; -console_loglevel ¤ÎÀßÄê¤ò¹Ô¤¦ +syslog, klogctl \- カーネルのメッセージ・リング・バッファを読んだり消去したりする; +console_loglevel の設定を行う .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .BI "int syslog(int " type ", char *" bufp ", int " len ); .\"O .B " /* No wrapper provided in glibc */" -.B " /* glibc ¤Ç¤Ï¥é¥Ã¥Ñ¡¼´Ø¿ô¤ÏÄ󶡤µ¤ì¤Æ¤¤¤Ê¤¤ */" +.B " /* glibc ではラッパー関数は提供されていない */" .sp .\"O /* The glibc interface */ -/* glibc ¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹ */ +/* glibc のインタフェース */ .br .B "#include " .sp .BI "int klogctl(int " type ", char *" bufp ", int " len ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O If you need the C library function .\"O .BR syslog () .\"O (which talks to @@ -78,24 +78,24 @@ console_loglevel .\"O buffer, and the glibc version is called .\"O .BR klogctl (). .RB ( syslogd (8) -¤ÈÏä¹) C ¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Î +と話す) C ライブラリ関数の .BR syslog () -¤¬É¬Íפʾì¹ç¤Ï¡¢ +が必要な場合は、 .BR syslog (3) -¤ò¸«¤ë¤³¤È¡£ -¤³¤Î̾Á°¤Î¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë¤Î +を見ること。 +この名前のシステム・コールはカーネルの .IR printk () -¥Ð¥Ã¥Õ¥¡¤òÀ©¸æ¤¹¤ë¤â¤Î¤Ç¤¢¤ê¡¢glibc ¤Ç¤Ï +バッファを制御するものであり、glibc では .BR klogctl () -¤È¸Æ¤Ð¤ì¤Æ¤¤¤ë¡£ +と呼ばれている。 .\"O .The \fItype\fP argument determines the action taken by this function. -\fItype\fP °ú¤­¿ô¤Ï¤³¤Î´Ø¿ô¤ÎÆ°ºî¤ò·èÄꤹ¤ë¡£ +\fItype\fP 引き数はこの関数の動作を決定する。 .\"O Quoting from .\"O .IR kernel/printk.c : .I kernel/printk.c -¤«¤é¤Î°úÍÑ : +からの引用 : .nf .\"O /* .\"O * Commands to sys_syslog: @@ -115,26 +115,26 @@ console_loglevel /* * Commands to sys_syslog: * - * 0 \-\- ¥í¥°¤òÊĤ¸¤ë¡£¸½ºß¤Î¼ÂÁõ¤Ç¤Ï²¿¤â¤·¤Ê¤¤ (NOP) ¡£ - * 1 \-\- ¥í¥°¤ò³«¤¯¡£¸½ºß¤Î¼ÂÁõ¤Ç¤Ï²¿¤â¤·¤Ê¤¤ (NOP) ¡£ - * 2 \-\- ¥í¥°¤«¤éÆɤ߽Ф¹¡£ - * 3 \-\- ¥ê¥ó¥°¡¦¥Ð¥Ã¥Õ¥¡¤Ë»Ä¤Ã¤Æ¤¤¤ë¥á¥Ã¥»¡¼¥¸¤ò¤¹¤Ù¤ÆÆɤ߽Ф¹¡£ - * 4 \-\- ¥ê¥ó¥°¡¦¥Ð¥Ã¥Õ¥¡¤Ë»Ä¤Ã¤Æ¤¤¤ë¥á¥Ã¥»¡¼¥¸¤ò¤¹¤Ù¤ÆÆɤ߽Ф·¡¢¾Ãµî¤¹¤ë¡£ - * 5 \-\- ¥ê¥ó¥°¥Ð¥Ã¥Õ¥¡¤ò¾Ãµî¤¹¤ë¡£ - * 6 \-\- ¥³¥ó¥½¡¼¥ë¤Ø¤Î printk ¤ò̵¸ú¤Ë¤¹¤ë¡£ - * 7 \-\- ¥³¥ó¥½¡¼¥ë¤Ø¤Î printk ¤òÍ­¸ú¤Ë¤¹¤ë¡£ - * 8 \-\- ¥³¥ó¥½¡¼¥ë¤Ëɽ¼¨¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¤Î¥ì¥Ù¥ë¤òÀßÄꤹ¤ë¡£ - * 9 \-\- ¥í¥°¥Ð¥Ã¥Õ¥¡¤Î̤ÆɤÎʸ»ú¿ô¤òÊÖ¤¹¡£ - * 10 \-\- ¥í¥°¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤òÊÖ¤¹¡£ + * 0 \-\- ログを閉じる。現在の実装では何もしない (NOP) 。 + * 1 \-\- ログを開く。現在の実装では何もしない (NOP) 。 + * 2 \-\- ログから読み出す。 + * 3 \-\- リング・バッファに残っているメッセージをすべて読み出す。 + * 4 \-\- リング・バッファに残っているメッセージをすべて読み出し、消去する。 + * 5 \-\- リングバッファを消去する。 + * 6 \-\- コンソールへの printk を無効にする。 + * 7 \-\- コンソールへの printk を有効にする。 + * 8 \-\- コンソールに表示されるメッセージのレベルを設定する。 + * 9 \-\- ログバッファの未読の文字数を返す。 + * 10 \-\- ログバッファのサイズを返す。 */ .fi .\"O Only command types 3 and 10 are allowed to unprivileged processes. .\"O Type 9 was added in 2.4.10; type 10 in 2.6.6. -ÈóÆø¢¥×¥í¥»¥¹¤Ë¤Ï¥³¥Þ¥ó¥É 3 ¤È 10 ¤Î¤ß¤¬µö²Ä¤µ¤ì¤Æ¤¤¤ë -(¥³¥Þ¥ó¥É 9 ¤Ï Linux 2.4.10 ¤Ç¡¢¥³¥Þ¥ó¥É 10 ¤Ï Linux 2.6.6 ¤ÇÄɲ䵤줿)¡£ +非特権プロセスにはコマンド 3 と 10 のみが許可されている +(コマンド 9 は Linux 2.4.10 で、コマンド 10 は Linux 2.6.6 で追加された)。 .\"O .SS The kernel log buffer -.SS ¥«¡¼¥Í¥ë¡¦¥í¥°¡¦¥Ð¥Ã¥Õ¥¡ (kernel log buffer) +.SS カーネル・ログ・バッファ (kernel log buffer) .\"O The kernel has a cyclic buffer of length .\"O .B LOG_BUF_LEN .\"O in which messages given as arguments to the kernel function @@ -149,23 +149,23 @@ console_loglevel .\"O .\" Under "General setup" ==> "Kernel log buffer size" .\"O .\" For 2.6, precisely the option seems to have appeared in 2.5.55. .\"O In recent kernels the size can be queried with command type 10. -¥«¡¼¥Í¥ë¤ÏŤµ +カーネルは長さ .B LOG_BUF_LEN -¤Î½ä²ó¼°¤Î¥Ð¥Ã¥Õ¥¡¤ò»ý¤Ã¤Æ¤ª¤ê¡¢ -¤½¤ì¤Ë¤Ï¥«¡¼¥Í¥ë´Ø¿ô¤Î +の巡回式のバッファを持っており、 +それにはカーネル関数の .BR printk () -¤Î°ú¤­¿ô¤È¤·¤ÆÍ¿¤¨¤é¤ì¤¿ -¥á¥Ã¥»¡¼¥¸¤¬ (¤½¤Î¥í¥°¥ì¥Ù¥ë¤Ë¤«¤«¤ï¤é¤º) ³ÊǼ¤µ¤ì¤ë¡£ -½é´ü¤Î¥«¡¼¥Í¥ë¤Ç¤Ï +の引き数として与えられた +メッセージが (そのログレベルにかかわらず) 格納される。 +初期のカーネルでは .B LOG_BUF_LEN -¤ÎÃÍ¤Ï 4096 ¤Ç¤¢¤Ã¤¿¡£ -¥«¡¼¥Í¥ë 1.3.54 ¤«¤é¤Ï 8192¡¢ -¥«¡¼¥Í¥ë 2.1.113 ¤«¤é¤Ï 16384 ¤Ë¤Ê¤ê¡¢ -¥«¡¼¥Í¥ë 2.4.23 °Ê¹ß¤ª¤è¤Ó 2.6 °Ê¹ß¤Ç¤Ï¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë -ÃͤòÀßÄê¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +の値は 4096 であった。 +カーネル 1.3.54 からは 8192、 +カーネル 2.1.113 からは 16384 になり、 +カーネル 2.4.23 以降および 2.6 以降ではカーネルのコンパイル時に +値を設定できるようになっている。 .\" Under "General setup" ==> "Kernel log buffer size" .\" For 2.6, precisely the option seems to have appeared in 2.5.55. -ºÇ¶á¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¥³¥Þ¥ó¥É 10 ¤Ç¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤òÌ䤤¹ç¤ï¤»¤Ç¤­¤ë¡£ +最近のカーネルでは、コマンド 10 でバッファのサイズを問い合わせできる。 .\"O The call .\"O .I "syslog(2,buf,len)" @@ -179,13 +179,13 @@ console_loglevel .\"O reads .\"O .IR /proc/kmsg . .I "syslog(2,buf,len)" -¤Î¸Æ¤Ó½Ð¤·¤Ï¥«¡¼¥Í¥ë¡¦¥í¥°¡¦¥Ð¥Ã¥Õ¥¡¤¬¶õ¤Ç¤Ê¤¯¤Ê¤ë¤Þ¤ÇÂԤäơ¢ -ºÇÂç \fIlen\fP ¥Ð¥¤¥È¤Þ¤Ç \fIbuf\fP ¤Ø¤ÈÆɤ߽Ф·¡¢Æɤ߹þ¤ó¤À -¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£¥í¥°¤«¤éÆɤޤ줿¥Ð¥¤¥È¤Ï¥í¥°¡¦¥Ð¥Ã¥Õ¥¡¤«¤é¾Ã¤¨¤ë: -¾ðÊó¤Ï°ìÅÙ¤·¤«Æɤळ¤È¤¬¤Ç¤­¤Ê¤¤¡£ -¤³¤ì¤Ï¥æ¡¼¥¶¡¼¤Î¥×¥í¥°¥é¥à¤¬ +の呼び出しはカーネル・ログ・バッファが空でなくなるまで待って、 +最大 \fIlen\fP バイトまで \fIbuf\fP へと読み出し、読み込んだ +バイト数を返す。ログから読まれたバイトはログ・バッファから消える: +情報は一度しか読むことができない。 +これはユーザーのプログラムが .I /proc/kmsg -¤òÆɤó¤À»þ¤Ë¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ¼Â¹Ô¤µ¤ì¤ë´Ø¿ô¤Ç¤â¤¢¤ë¡£ +を読んだ時にカーネルによって実行される関数でもある。 .\"O The call .\"O .I syslog(3,buf,len) @@ -194,18 +194,18 @@ console_loglevel .\"O last "clear ring buffer" command (which does not clear the buffer at all). .\"O It returns the number of bytes read. .I syslog(3,buf,len) -¤Î¸Æ¤Ó½Ð¤·¤Ï¥í¥°¡¦¥Ð¥Ã¥Õ¥¡¤ÎºÇ¸å¤Î \fIlen\fP ¥Ð¥¤¥È¤ò -(ÈóÇ˲õŪ¤Ë)Æɤ߽Ф¹¡¢¤·¤«¤·¡¢Ä¾¶á¤Î¡Ö¥ê¥ó¥°¡¦¥Ð¥Ã¥Õ¥¡¾Ãµî¡×Ì¿Îá -(¤³¤ÎÌ¿Îá¤Ï¥Ð¥Ã¥Õ¥¡¤ò¾Ãµî¤¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤) -°Ê¹ß¤Ë¥Ð¥Ã¥Õ¥¡¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¾ðÊó¤·¤«Æɤ߽Ф»¤Ê¤¤¡£ -ÊÖ¤êÃͤÏÆɤ߹þ¤ó¤À¥Ð¥¤¥È¿ô¤Ç¤¢¤ë¡£ +の呼び出しはログ・バッファの最後の \fIlen\fP バイトを +(非破壊的に)読み出す、しかし、直近の「リング・バッファ消去」命令 +(この命令はバッファを消去するわけではない) +以降にバッファに書き込まれた情報しか読み出せない。 +返り値は読み込んだバイト数である。 .\"O The call .\"O .I syslog(4,buf,len) .\"O does precisely the same, but also executes the "clear ring buffer" command. .I syslog(4,buf,len) -¸Æ¤Ó½Ð¤·¤Ï¡Ö¥ê¥ó¥°¡¦¥Ð¥Ã¥Õ¥¡¾Ãµî¡×Ì¿Îá¤â¼Â¹Ô¤¹¤ë°Ê³°¤Ï -µ¡Ç½ 3 ¤È´°Á´¤ËƱ¤¸¤Ç¤¢¤ë¡£ +呼び出しは「リング・バッファ消去」命令も実行する以外は +機能 3 と完全に同じである。 .\"O The call .\"O .I syslog(5,dummy,dummy) @@ -216,28 +216,28 @@ console_loglevel .\"O .I len .\"O is shown as "dummy", the value of the argument is ignored by the call.) .I syslog(5,dummy,dummy) -¸Æ¤Ó½Ð¤·¤Ï¡Ö¥ê¥ó¥°¡¦¥Ð¥Ã¥Õ¥¡¾Ãµî¡×Ì¿Îá¤Î¤ß¤ò¼Â¹Ô¤¹¤ë -(¸Æ¤Ó½Ð¤·¤Î½ñ¼°¤Ç¡¢ +呼び出しは「リング・バッファ消去」命令のみを実行する +(呼び出しの書式で、 .I buf -¤ä +や .I len -¤¬ "dummy" ¤Èµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¤½¤Î°ú¤­¿ô¤ÎÃͤ¬Ìµ»ë¤µ¤ì¤ë¤³¤È¤òɽ¤¹)¡£ +が "dummy" と記載されている場合、その引き数の値が無視されることを表す)。 .\"O The call .\"O .I syslog(6,dummy,dummy) .\"O sets the console log level to minimum, so that no messages are printed .\"O to the console. .I syslog(6,dummy,dummy) -¸Æ¤Ó½Ð¤·¤Ï¥³¥ó¥½¡¼¥ë¤Î¥í¥°¥ì¥Ù¥ë¤òºÇ¾®¤ËÀßÄꤷ¡¢ -¥³¥ó¥½¡¼¥ë¤Ë¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£ +呼び出しはコンソールのログレベルを最小に設定し、 +コンソールにメッセージが表示されないようにする。 .\"O The call .\"O .I syslog(7,dummy,dummy) .\"O sets the console log level to default, so that messages are printed .\"O to the console. .I syslog(7,dummy,dummy) -¸Æ¤Ó½Ð¤·¤Ï¥³¥ó¥½¡¼¥ë¤Î¥í¥°¥ì¥Ù¥ë¤ò¥Ç¥Õ¥©¥ë¥È¤ËÀßÄꤷ¡¢ -¥³¥ó¥½¡¼¥ë¤Ë¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤ë¤è¤¦¤Ë¤¹¤ë¡£ +呼び出しはコンソールのログレベルをデフォルトに設定し、 +コンソールにメッセージが表示されるようにする。 .\"O The call .\"O .I syslog(8,dummy,level) @@ -248,29 +248,29 @@ console_loglevel .\"O .B loglevel .\"O section for details. .I syslog(8,dummy,level) -¸Æ¤Ó½Ð¤·¤Ï¥³¥ó¥½¡¼¥ë¤Î¥í¥°¥ì¥Ù¥ë¤ò +呼び出しはコンソールのログレベルを .I level -¤ËÀßÄꤹ¤ë¡£ +に設定する。 .I level -¤Ï 1 °Ê¾å 8 °Ê²¼¤ÎÀ°¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¾ÜºÙ¤Ï -.B ¥í¥°¥ì¥Ù¥ë (loglevel) -¤ÎÀá¤ò»²¾È¤Î¤³¤È¡£ +は 1 以上 8 以下の整数でなければならない。 +詳細は +.B ログレベル (loglevel) +の節を参照のこと。 .\"O The call .\"O .I syslog(9,dummy,dummy) .\"O returns the number of bytes currently available to be read .\"O on the kernel log buffer. .I syslog(9,dummy,dummy) -¸Æ¤Ó½Ð¤·¤Ï¥«¡¼¥Í¥ë¡¦¥í¥°¥Ð¥Ã¥Õ¥¡¤Ë¤¢¤ë¸½ºßÆɤ߽Ф·²Äǽ¤Ê¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ +呼び出しはカーネル・ログバッファにある現在読み出し可能なバイト数を返す。 .\"O The call .\"O .I syslog(10,dummy,dummy) .\"O returns the total size of the kernel log buffer. .I syslog(10,dummy,dummy) -¸Æ¤Ó½Ð¤·¤Ï¥«¡¼¥Í¥ë¡¦¥í¥°¥Ð¥Ã¥Õ¥¡¤ÎÁíÎ̤òÊÖ¤¹¡£ +呼び出しはカーネル・ログバッファの総量を返す。 .\"O .SS The loglevel -.SS ¥í¥°¥ì¥Ù¥ë (loglevel) +.SS ログレベル (loglevel) .\"O The kernel routine .\"O .BR printk () .\"O will only print a message on the @@ -281,31 +281,31 @@ console_loglevel .\"O (7), but is set to 10 if the .\"O kernel command line contains the word "debug", and to 15 in case .\"O of a kernel fault (the 10 and 15 are just silly, and equivalent to 8). -¥«¡¼¥Í¥ë¡¦¥ë¡¼¥Á¥ó¤Î +カーネル・ルーチンの .BR printk () -¤Ï¡¢¥í¥°¥ì¥Ù¥ë¤¬ +は、ログレベルが .I console_loglevel -ÊÑ¿ô¤è¤ê¾®¤µ¤¤¤È¤­¤Ë¤Î¤ß¡¢¥³¥ó¥½¡¼¥ë¤Ë¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¡£ +変数より小さいときにのみ、コンソールにメッセージを表示する。 .I console_loglevel -¤ÏºÇ½é +は最初 .B DEFAULT_CONSOLE_LOGLEVEL -(7) ¤ËÀßÄꤵ¤ì¤ë¤¬¡¢µ¯Æ°»þ¤Ë¥«¡¼¥Í¥ë¤Î -¥³¥Þ¥ó¥É¡¦¥é¥¤¥ó¡¦¥ª¥×¥·¥ç¥ó¤Ë "debug" ¤È¤¤¤¦Ã±¸ì¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï -10 ¤ËÀßÄꤵ¤ì¡¢¥«¡¼¥Í¥ë¡¦¥Õ¥©¡¼¥ë¥È¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¤Ï 15 ¤ËÀßÄꤵ¤ì¤ë -(⤷¡¢10 ¤ä 15 ¤È¤¤¤¦¿ô»ú¤Ë°ÕÌ£¤Ï¤Ê¤¯¡¢8 ¤ÈƱÅù¤Ç¤¢¤ë)¡£ +(7) に設定されるが、起動時にカーネルの +コマンド・ライン・オプションに "debug" という単語が含まれている場合は +10 に設定され、カーネル・フォールトが発生した場合には 15 に設定される +(但し、10 や 15 という数字に意味はなく、8 と同等である)。 .\"O This variable is set (to a value in the range 1-8) by the call .\"O .IR syslog(8,dummy,value) . .\"O The calls .\"O .I syslog(type,dummy,dummy) .\"O with \fItype\fP equal to 6 or 7, set it to 1 (kernel panics only) .\"O or 7 (all except debugging messages), respectively. -¤³¤ÎÊÑ¿ô¤Ï +この変数は .IR syslog(8,dummy,value) . -¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤ÆÀßÄꤵ¤ì¡¢ÃͤÎÈÏ°Ï¤Ï 1-8 ¤Ç¤¢¤ë¡£ +呼び出しによって設定され、値の範囲は 1-8 である。 .I syslog(type,dummy,dummy) -¸Æ¤Ó½Ð¤·¤Ç \fItype\fP ¤¬ 6 ¤â¤·¤¯¤Ï 7 ¤Î¾ì¹ç¡¢ -console_loglevel ¤Ï 1 (¥«¡¼¥Í¥ë¡¦¥Ñ¥Ë¥Ã¥¯¤Î¤ß)¡¢ -7 (¥Ç¥Ð¥Ã¥°¡¦¥á¥Ã¥»¡¼¥¸°Ê³°¤ÎÁ´¤Æ) ¤Ë¤½¤ì¤¾¤ìÀßÄꤵ¤ì¤ë¡£ +呼び出しで \fItype\fP が 6 もしくは 7 の場合、 +console_loglevel は 1 (カーネル・パニックのみ)、 +7 (デバッグ・メッセージ以外の全て) にそれぞれ設定される。 .\"O Every text line in a message has its own loglevel. .\"O This level is @@ -316,13 +316,13 @@ console_loglevel .\"O The conventional meaning of the loglevel is defined in .\"O .I .\"O as follows: -¥á¥Ã¥»¡¼¥¸¤Î³Æ¹Ô¤Ï¤½¤ì¤¾¤ì¤Ë¥í¥°¥ì¥Ù¥ë¤ò»ý¤Ä¡£¤³¤Î¥í¥°¥ì¥Ù¥ë¤Ï +メッセージの各行はそれぞれにログレベルを持つ。このログレベルは .I "DEFAULT_MESSAGE_LOGLEVEL \- 1" -(6) ¤Ç¤¢¤ë¤¬¡¢ (\fId\fP ¤Ï 1-7 ¤ÎÈϰϤοô»ú) ¤Ç»Ï¤Þ¤ë¹Ô¤Î -¥í¥°¥ì¥Ù¥ë¤Ï \fId\fP ¤Ç¤¢¤ë¡£ -¥í¥°¥ì¥Ù¥ë¤Î´·½¬Åª¤Ê°ÕÌ£¤Ï +(6) であるが、 (\fId\fP は 1-7 の範囲の数字) で始まる行の +ログレベルは \fId\fP である。 +ログレベルの慣習的な意味は .I -¤Ë°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +に以下のように定義されている: .nf .\"O #define KERN_EMERG "<0>" /* system is unusable */ @@ -333,17 +333,17 @@ console_loglevel .\"O #define KERN_NOTICE "<5>" /* normal but significant condition */ .\"O #define KERN_INFO "<6>" /* informational */ .\"O #define KERN_DEBUG "<7>" /* debug-level messages */ -#define KERN_EMERG "<0>" /* ¥·¥¹¥Æ¥à¤¬»ÈÍÑÉÔǽ */ -#define KERN_ALERT "<1>" /* ľ¤Á¤ËÂн褬ɬÍ× */ -#define KERN_CRIT "<2>" /* Ã×̿Ū¤Ê¾õÂÖ */ -#define KERN_ERR "<3>" /* ¥¨¥é¡¼¾õÂÖ */ -#define KERN_WARNING "<4>" /* ·Ù¹ð¾õÂÖ */ -#define KERN_NOTICE "<5>" /* Ä̾ï¾õÂÖ¤À¤¬Âç»ö¤Ê¾ðÊó */ -#define KERN_INFO "<6>" /* ÄÌÃÎ */ -#define KERN_DEBUG "<7>" /* ¥Ç¥Ð¥Ã¥°¥ì¥Ù¥ë¤Î¾ðÊó */ +#define KERN_EMERG "<0>" /* システムが使用不能 */ +#define KERN_ALERT "<1>" /* 直ちに対処が必要 */ +#define KERN_CRIT "<2>" /* 致命的な状態 */ +#define KERN_ERR "<3>" /* エラー状態 */ +#define KERN_WARNING "<4>" /* 警告状態 */ +#define KERN_NOTICE "<5>" /* 通常状態だが大事な情報 */ +#define KERN_INFO "<6>" /* 通知 */ +#define KERN_DEBUG "<7>" /* デバッグレベルの情報 */ .fi .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O For \fItype\fP equal to 2, 3, or 4, a successful call to .\"O .BR syslog () .\"O returns the number @@ -356,21 +356,21 @@ console_loglevel .\"O .BR syslog () .\"O returns the total size of the kernel log buffer. .\"O For other values of \fItype\fP, 0 is returned on success. -\fItype\fP ¤¬ 2, 3, 4 ¤Î¾ì¹ç¡¢À®¸ù¤¹¤ë¤È +\fItype\fP が 2, 3, 4 の場合、成功すると .BR syslog () -¤ÏÆɤ߽Ф·¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -\fItype\fP ¤¬ 9 ¤Î¾ì¹ç¡¢ -¥«¡¼¥Í¥ë¡¦¥í¥°¥Ð¥Ã¥Õ¥¡¤Ë¤¢¤ë¸½ºßÆɤ߽Ф·²Äǽ¤Ê¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -\fItype\fP ¤¬ 10 ¤Î¾ì¹ç¡¢ -¥«¡¼¥Í¥ë¡¦¥í¥°¥Ð¥Ã¥Õ¥¡¤ÎÁíÎ̤òÊÖ¤¹¡£ -\fItype\fP ¤¬¤½¤ì°Ê³°¤ÎÃͤξì¹ç¡¢À®¸ù¤¹¤ë¤È 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +は読み出したバイト数を返す。 +\fItype\fP が 9 の場合、 +カーネル・ログバッファにある現在読み出し可能なバイト数を返す。 +\fItype\fP が 10 の場合、 +カーネル・ログバッファの総量を返す。 +\fItype\fP がそれ以外の値の場合、成功すると 0 が返される。 .\"O In case of error, \-1 is returned, .\"O and \fIerrno\fP is set to indicate the error. -¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢\-1\ ¤¬Ê֤ꡢ -\fIerrno\fP ¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ +エラーの場合は、\-1\ が返り、 +\fIerrno\fP にエラーを示す値が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O Bad arguments (e.g., @@ -388,20 +388,20 @@ console_loglevel .\"O 8, the .\"O .I level .\"O is outside the range 1 to 8). -ÉÔÀµ¤Ê°ú¤­¿ô -(¶ñÂÎŪ¤Ë¤Ï¡¢ +不正な引き数 +(具体的には、 .I type -¤¬Àµ¤·¤¯¤Ê¤¤¡¢¤â¤·¤¯¤Ï +が正しくない、もしくは .I type -¤¬ 2, 3, 4 ¤Î¾ì¹ç¤Ë +が 2, 3, 4 の場合に .I buf -¤¬ NULL ¤« +が NULL か .I len -¤¬ 0 ̤Ëþ¤Ç¤¢¤ë¡¢¤â¤·¤¯¤Ï +が 0 未満である、もしくは .I type -¤¬ 8 ¤Î¾ì¹ç¤Ë +が 8 の場合に .I level -¤¬ 1 °Ê¾å 8 °Ê²¼¤ÎÈϰϤËÆþ¤Ã¤Æ¤¤¤Ê¤¤)¡£ +が 1 以上 8 以下の範囲に入っていない)。 .TP .B ENOSYS .\"O This @@ -409,11 +409,11 @@ console_loglevel .\"O system call is not available, because the kernel was compiled with the .\"O .BR CONFIG_PRINTK .\"O kernel-configuration option disabled. -¥«¡¼¥Í¥ë¤ÎÀßÄꥪ¥×¥·¥ç¥ó +カーネルの設定オプション .BR CONFIG_PRINTK -¤ò̵¸ú¤Ë¤·¤Æ¥«¡¼¥Í¥ë¤¬¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤¤¤ë¤¿¤á¡¢ +を無効にしてカーネルがコンパイルされているため、 .BR syslog () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ÍøÍѤǤ­¤Ê¤¤¡£ +システムコールが利用できない。 .TP .B EPERM .\"O An attempt was made to change console_loglevel or clear the kernel @@ -421,24 +421,24 @@ console_loglevel .\"O (more precisely: without the .\"O .B CAP_SYS_ADMIN .\"O capability). -½½Ê¬¤Ê¸¢¸Â¤ò»ý¤¿¤Ê¤¤¥×¥í¥»¥¹ (Àµ³Î¤Ë¤Ï +十分な権限を持たないプロセス (正確には .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤¥×¥í¥»¥¹) ¤¬ console_loglevel¤òÊѹ¹¤·¤è¤¦¤È¤·¤¿¤«¡¢ -¥«¡¼¥Í¥ë¡¦¥á¥Ã¥»¡¼¥¸¡¦¥ê¥ó¥°¤ò¾Ãµî¤·¤è¤¦¤È¤·¤¿¡£ +ケーパビリティを持たないプロセス) が console_loglevelを変更しようとしたか、 +カーネル・メッセージ・リングを消去しようとした。 .TP .B ERESTARTSYS .\"O System call was interrupted by a signal - nothing was read. .\"O (This can be seen only during a trace.) -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤¬¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¡¢²¿¤âÆɤ߽Ф»¤Ê¤«¤Ã¤¿¡£ -(¥È¥ì¡¼¥¹Ãæ¤Ë¤·¤«È¯À¸¤¹¤ë¤³¤È¤Ï¤Ê¤¤) +システム・コールがシグナルによって割り込まれ、何も読み出せなかった。 +(トレース中にしか発生することはない) .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This system call is Linux-specific and should not be used in programs .\"O intended to be portable. -¤³¤Î¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï -»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ +このシステム・コールは Linux 特有であり、移植を意図したプログラムでは +使用してはいけない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O From the very start people noted that it is unfortunate that .\"O a system call and a library routine of the same name are entirely .\"O different animals. @@ -446,15 +446,15 @@ console_loglevel .\"O .BR SYS_klog . .\"O In glibc 2.0 the syscall is baptized .\"O .BR klogctl (). -¤«¤Ê¤ê½é´ü¤Îº¢¤«¤é¡¢Æ±¤¸Ì¾Á°¤ò»ý¤Ä¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤È -¥é¥¤¥Ö¥é¥ê¡¦¥ë¡¼¥Á¥ó¤¬Á´¤¯°Û¤Ê¤ëÂåʪ¤Ç¤¢¤ë¤Î¤ÏÉÔ¹¬¤Ê¤³¤È¤À¤È -µ¤ÉÕ¤«¤ì¤Æ¤¤¤¿¡£ -libc4 ¤È libc5 ¤Ç¤Ï¤³¤Î¥³¡¼¥ë¤ÎÈÖ¹æ¤Ï +かなり初期の頃から、同じ名前を持つシステム・コールと +ライブラリ・ルーチンが全く異なる代物であるのは不幸なことだと +気付かれていた。 +libc4 と libc5 ではこのコールの番号は .B SYS_klog -¤ÈÄêµÁ¤µ¤ì¤Æ¤¤¤¿¡£ -glibc2.0 ¤Ç¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +と定義されていた。 +glibc2.0 でこのシステムコールは .BR klogctl () -¤È¤¤¤¦Ì¾Á°¤Ë²þ¤á¤é¤ì¤¿¡£ +という名前に改められた。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR syslog (3) diff --git a/draft/man2/tee.2 b/draft/man2/tee.2 index a6c1f903..a384bb9c 100644 --- a/draft/man2/tee.2 +++ b/draft/man2/tee.2 @@ -29,14 +29,14 @@ .\" .TH TEE 2 2009-09-15 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O tee \- duplicating pipe content -tee \- ¥Ñ¥¤¥×¤ÎÃæ¿È¤òÊ£À½¤¹¤ë +tee \- パイプの中身を複製する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .BI "ssize_t tee(int " fd_in ", int " fd_out ", size_t " len \ @@ -44,7 +44,7 @@ tee \- .fi .\" Return type was long before glibc 2.7 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\" Example programs http://brick.kernel.dk/snaps .\" .\" @@ -63,18 +63,18 @@ tee \- .\"O therefore, that data can be copied by a subsequent .\"O .BR splice (2). .BR tee () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +は、ファイルディスクリプタ .I fd_in -¤¬»²¾È¤¹¤ë¥Ñ¥¤¥×¤«¤é¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +が参照するパイプからファイルディスクリプタ .I fd_out -¤¬»²¾È¤¹¤ë¥Ñ¥¤¥×¤ØºÇÂç +が参照するパイプへ最大 .I len -¥Ð¥¤¥È¤Î¥Ç¡¼¥¿¤òÊ£À½¤¹¤ë¡£ -¤³¤ÎÁàºî¤Ç¤Ï¡¢Ê£À½¤µ¤ì¤ë¥Ç¡¼¥¿¤Ï +バイトのデータを複製する。 +この操作では、複製されるデータは .I fd_in -¤«¤é¤Ï¾ÃÈñ¤µ¤ì¤Ê¤¤¡£¤·¤¿¤¬¤Ã¤Æ¡¢¤³¤ì¤é¤Î¥Ç¡¼¥¿¤ò¤³¤Î¸å¤Î +からは消費されない。したがって、これらのデータをこの後の .BR splice (2) -¤Ç¥³¥Ô¡¼¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +でコピーすることができる。 .\"O .I flags .\"O is a series of modifier flags, which share the name space with @@ -82,42 +82,42 @@ tee \- .\"O and .\"O .BR vmsplice (2): .I flags -¤Ï°ìÏ¢¤Î½¤¾þ¥Õ¥é¥°¤Ç¤¢¤ê¡¢ +は一連の修飾フラグであり、 .BR splice (2) -¤ä +や .BR vmsplice (2) -¤È¶¦Ä̤Î̾Á°¤Ç¤¢¤ë¡£ +と共通の名前である。 .TP 1.9i .B SPLICE_F_MOVE .\"O Currently has no effect for .\"O .BR tee (); .\"O see .\"O .BR splice (2). -¸½ºß¤Î¤È¤³¤í +現在のところ .BR tee () -¤Ç¤Ï²¿¤Î¸ú²Ì¤â¤Ê¤¤¡£ +では何の効果もない。 .BR splice (2) -»²¾È¡£ +参照。 .TP .B SPLICE_F_NONBLOCK .\"O Do not block on I/O; see .\"O .BR splice (2) .\"O for further details. -Æþ½ÐÎÏ»þ¤ËÄä»ß (block) ¤·¤Ê¤¤¡£ -¾ÜºÙ¤Ï +入出力時に停止 (block) しない。 +詳細は .BR splice (2) -»²¾È¡£ +参照。 .TP .B SPLICE_F_MORE .\"O Currently has no effect for .\"O .BR tee (), .\"O but may be implemented in the future; see .\"O .BR splice (2). -¸½ºß¤Î¤È¤³¤í +現在のところ .BR tee () -¤Ç¤Ï²¿¤Î¸ú²Ì¤â¤Ê¤¤¤¬¡¢¾­ÍèŪ¤Ë¤Ï¼ÂÁõ¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +では何の効果もないが、将来的には実装される可能性がある。 .BR splice (2) -»²¾È¡£ +参照。 .TP .B SPLICE_F_GIFT .\"O Unused for @@ -125,11 +125,11 @@ tee \- .\"O see .\"O .BR vmsplice (2). .BR tee () -¤Ç¤Ï̤»ÈÍÑ¡£ +では未使用。 .BR vmsplice (2) -»²¾È¡£ +参照。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O Upon successful completion, .\"O .BR tee () .\"O returns the number of bytes that were duplicated between the input @@ -138,27 +138,27 @@ tee \- .\"O and it would not make sense to block, because there are no .\"O writers connected to the write end of the pipe referred to by .\"O .IR fd_in . -À®¸ù¤·¤Æ´°Î»¤¹¤ë¤È¡¢ +成功して完了すると、 .BR tee () -¤ÏÆþ½ÐÎÏ´Ö¤ÇÊ£À½¤µ¤ì¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -ÊÖ¤êÃÍ 0 ¤Ï¥Ç¡¼¥¿¤ÎžÁ÷¤¬¹Ô¤ï¤ì¤Ê¤«¤Ã¤¿¤³¤È¤ò¼¨¤¹¡£ -¤³¤Î¾ì¹ç¡¢½èÍý¤òÄä»ß (block) ¤·¤Æ¤â̵°ÕÌ£¤Ç¤¢¤ë¡£ -¤Ê¤¼¤Ê¤é¡¢ +は入出力間で複製されたバイト数を返す。 +返り値 0 はデータの転送が行われなかったことを示す。 +この場合、処理を停止 (block) しても無意味である。 +なぜなら、 .I fd_in -¤¬»²¾È¤¹¤ë¥Ñ¥¤¥×¤Î½ñ¤­¹þ¤ß¦¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¼Ô¤¬¤¤¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +が参照するパイプの書き込み側に接続されている者がいないからである。 .\"O On error, .\"O .BR tee () .\"O returns \-1 and .\"O .I errno .\"O is set to indicate the error. -¥¨¥é¡¼¤Î¾ì¹ç¡¢ +エラーの場合、 .BR tee () -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O .I fd_in @@ -170,30 +170,30 @@ tee \- .\"O .I fd_out .\"O refer to the same pipe. .I fd_in -¤È +と .I fd_out -¤Î¤É¤Á¤é¤«¤¬¥Ñ¥¤¥×¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£¤â¤·¤¯¤Ï +のどちらかがパイプを参照していない。もしくは .I fd_in -¤È +と .I fd_out -¤¬Æ±¤¸¥Ñ¥¤¥×¤ò»²¾È¤·¤Æ¤¤¤ë¡£ +が同じパイプを参照している。 .TP .B ENOMEM .\"O Out of memory. -¥á¥â¥êÉÔ­¡£ +メモリ不足。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The .\"O .BR tee () .\"O system call first appeared in Linux 2.6.17. .BR tee () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 2.6.17 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +システムコールは Linux 2.6.17 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This system call is Linux-specific. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ +このシステムコールは Linux 固有である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Conceptually, .\"O .BR tee () .\"O copies the data between the two pipes. @@ -202,27 +202,27 @@ tee \- .\"O .BR tee () .\"O assigns data in the output by merely grabbing .\"O a reference to the input. -³µÇ°¤È¤·¤Æ¤Ï¡¢ +概念としては、 .BR tee () -¤ÏÆó¤Ä¤Î¥Ñ¥¤¥×´Ö¤Ç¥Ç¡¼¥¿¤Î¥³¥Ô¡¼¤ò¹Ô¤¦¡£ -¤·¤«¤·¡¢¼ÂºÝ¤Ë¤Ï¼Â¥Ç¡¼¥¿¤Î¥³¥Ô¡¼¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ -ÆâÉô¤Ç¤Ï¡¢ +は二つのパイプ間でデータのコピーを行う。 +しかし、実際には実データのコピーは行われない。 +内部では、 .BR tee () -¤ÏÆþÎϦ¤ËÂФ¹¤ë»²¾È¤À¤±¤òºîÀ®¤¹¤ë¤³¤È¤Ç½ÐÎϦ¤Ë¥Ç¡¼¥¿¤ò -Äɲ乤롣 +は入力側に対する参照だけを作成することで出力側にデータを +追加する。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The following example implements a basic .\"O .BR tee (1) .\"O program using the .\"O .BR tee () .\"O system call. -°Ê²¼¤ÎÎã¤Ï¡¢ +以下の例は、 .BR tee () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤Æ¡¢ -´ðËÜŪ¤Ê +システムコールを使って、 +基本的な .BR tee (1) -¥×¥í¥°¥é¥à¤ò¼ÂÁõ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +プログラムを実装したものである。 .nf #define _GNU_SOURCE @@ -285,6 +285,6 @@ main(int argc, char *argv[]) } .fi .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR splice (2), .BR vmsplice (2) diff --git a/draft/man2/time.2 b/draft/man2/time.2 index 62de235a..62b3a971 100644 --- a/draft/man2/time.2 +++ b/draft/man2/time.2 @@ -33,64 +33,64 @@ .\" Modified Sun Mar 21 17:23:27 JST 1999 .\" by HANATAKA Shinya .\" -.\"WORD: the Epoch µª¸µ +.\"WORD: the Epoch 紀元 .\" .TH TIME 2 2010-02-25 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O time \- get time in seconds -time \- ÉÃñ°Ì¤Î»þ´Ö¤òÆÀ¤ë +time \- 秒単位の時間を得る .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "time_t time(time_t *" t ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR time () .\"O returns the time as the number of seconds since the .\"O Epoch, 1970-01-01 00:00:00 +0000 (UTC). .BR time () -¤Ï¡¢µª¸µ (Epoch; 1970-01-01 00:00:00 (UTC)) ¤«¤é¤ÎÉÿô¤ÇÊÖ¤¹¡£ +は、紀元 (Epoch; 1970-01-01 00:00:00 (UTC)) からの秒数で返す。 .\"O If .\"O .I t .\"O is non-NULL, .\"O the return value is also stored in the memory pointed to by .\"O .IR t . -¤â¤· +もし .I t -¤¬ NULL ¤Ç¤Ê¤«¤Ã¤¿¤éÊÖ¤êÃÍ¤Ï +が NULL でなかったら返り値は .I t -¤Î»Ø¤·¤Æ¤¤¤ë¥á¥â¥ê¤Ë¤â³ÊǼ¤µ¤ì¤ë¡£ +の指しているメモリにも格納される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, the value of time in seconds since the Epoch is returned. .\"O On error, \fI((time_t)\ \-1)\fP is returned, and \fIerrno\fP is set .\"O appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢µª¸µ(the Epoch)¤«¤é¤Î·Ð²áÉÿô¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï -\fI((time_t)\ \-1)\fP ¤òÊÖ¤·¡¢\fIerrno\fP ¤òÀßÄꤹ¤ë¡£ +成功した場合、紀元(the Epoch)からの経過秒数を返す。エラーの場合は +\fI((time_t)\ \-1)\fP を返し、\fIerrno\fP を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O .I t .\"O points outside your accessible address space. .I t -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がアクセス可能なアドレス空間の外を指している。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, C89, C99, POSIX.1-2001. .\" .br .\"O .\" Under 4.3BSD, this call is obsoleted by .\"O .\" .BR gettimeofday (2). .\"O POSIX does not specify any error conditions. -.\" 4.3BSD ¤Ç¤Ï¤³¤Î´Ø¿ô¤Ï +.\" 4.3BSD ではこの関数は .\" .BR gettimeofday (2) -.\" ¤Ë¼è¤Ã¤ÆÂå¤ï¤é¤ì¤Æ¤¤¤ë¡£ -POSIX ¤Ë¤Ï¥¨¥é¡¼¾õÂ֤ε¬Äê¤Ï¤Ê¤¤¡£ +.\" に取って代わられている。 +POSIX にはエラー状態の規定はない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O POSIX.1 defines .\"O .I seconds since the Epoch .\"O as a value to be interpreted as the number of seconds between a @@ -103,19 +103,19 @@ POSIX .\"O The intention is .\"O that the interpretation of seconds since the Epoch values be .\"O consistent; see POSIX.1 Annex B 2.2.2 for further rationale. -POSIX.1 ¤Ç¤Ï -.I ¡Öµª¸µ¤«¤é¤Î·Ð²áÉÿô (seconds since the Epoch)¡× -¤Ï»ØÄꤷ¤¿»þ¹ï¤Èµª¸µ¤È¤Î´Ö¤ÎÉÿô¤Ç¤¢¤ë¤ÈÄêµÁ¤·¤Æ¤¤¤ë¡£ -¤¿¤À¤·¤³¤Î¤È¤­ UTC (¶¨ÄêÀ¤³¦»þ) ¤«¤éÉäòµá¤á¤ëÊÑ´¹¤Ë¤Ï¡¢ÁÇËѤÊÊÑ´¹¼° -(±¼Éäò̵»ë¤·¡¢ 4 ¤Ç³ä¤êÀÚ¤ì¤ëǯ¤ò¤¹¤Ù¤Æ±¼Ç¯¤È¤·¤¿¼°) -¤òÍѤ¤¤ë¤â¤Î¤È¤·¤Æ¤¤¤ë¡£ -¤³¤ÎÃͤϵª¸µ¤È¸½ºß»þ¹ï¤È¤Î´Ö¤Ç¼ÂºÝ¤Ë·Ð²á¤·¤¿Éÿô¤ÈƱ¤¸¤Ç¤Ï¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¤Ð±¼Éä¬Â¸ºß¤¹¤ë¤·¡¢»þ·×(clock)¤òɸ½à»þ´Ö(standard reference)¤Ë -Ʊ´ü¤µ¤»¤ë¤³¤È¤òÍ׵ᤵ¤ì¤Æ¤¤¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ -¤³¤ÎÄêµÁ¤Î°Õ¿Þ¤Ïµª¸µ¤«¤é¤Î·Ð²áÉÿô¤Î²ò¼á¤ò°ìÄê¤Ë¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£ -¤è¤ê¾Ü¤·¤¤¸¶Íý¤Ï POSIX.1 Annex B 2.2.2 ¤ò»²¾È¤¹¤ë¤³¤È¡£ +POSIX.1 では +.I 「紀元からの経過秒数 (seconds since the Epoch)」 +は指定した時刻と紀元との間の秒数であると定義している。 +ただしこのとき UTC (協定世界時) から秒を求める変換には、素朴な変換式 +(閏秒を無視し、 4 で割り切れる年をすべて閏年とした式) +を用いるものとしている。 +この値は紀元と現在時刻との間で実際に経過した秒数と同じではない。 +なぜならば閏秒が存在するし、時計(clock)を標準時間(standard reference)に +同期させることを要求されていないからである。 +この定義の意図は紀元からの経過秒数の解釈を一定にすることである。 +より詳しい原理は POSIX.1 Annex B 2.2.2 を参照すること。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR date (1), .BR gettimeofday (2), .BR ctime (3), diff --git a/draft/man2/timerfd_create.2 b/draft/man2/timerfd_create.2 index 88537055..f01a1e16 100644 --- a/draft/man2/timerfd_create.2 +++ b/draft/man2/timerfd_create.2 @@ -22,13 +22,13 @@ .\" .TH TIMERFD_CREATE 2 2009-03-10 Linux "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O timerfd_create, timerfd_settime, timerfd_gettime \- .\"O timers that notify via file descriptors timerfd_create, timerfd_settime, timerfd_gettime \- -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿·Ðͳ¤ÇÄÌÃΤ¹¤ë¥¿¥¤¥Þ¡¼ +ファイルディスクリプタ経由で通知するタイマー .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -41,7 +41,7 @@ timerfd_create, timerfd_settime, timerfd_gettime \- .BI "int timerfd_gettime(int " fd ", struct itimerspec *" curr_value ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These system calls create and operate on a timer .\"O that delivers timer expiration notifications via a file descriptor. .\"O They provide an alternative to the use of @@ -53,17 +53,17 @@ timerfd_create, timerfd_settime, timerfd_gettime \- .\"O .BR poll (2), .\"O and .\"O .BR epoll (7). -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ËþλÄÌÃΤò¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿·Ðͳ¤ÇÇÛÁ÷¤¹¤ë -¥¿¥¤¥Þ¡¼¤ÎÀ¸À®¤ÈÁàºî¤ò¹Ô¤¦¡£ -¤³¤ì¤é¤Ï¡¢ +これらのシステムコールは、満了通知をファイルディスクリプタ経由で配送する +タイマーの生成と操作を行う。 +これらは、 .BR setitimer (2) -¤ä +や .BR timer_create (2) -¤òÍѤ¤¤ëÊýË¡¤ÎÂå¤ï¤ê¤È¤Ê¤ë¤â¤Î¤Ç¤¢¤ê¡¢¤³¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò +を用いる方法の代わりとなるものであり、このファイルディスクリプタを .BR select (2), .BR poll (2), .BR epoll (7) -¤Ç´Æ»ë¤Ç¤­¤ë¤È¤¤¤¦ÍøÅÀ¤¬¤¢¤ë¡£ +で監視できるという利点がある。 .\"O The use of these three system calls is analogous to the use of .\"O .BR timer_create (2), @@ -75,24 +75,24 @@ timerfd_create, timerfd_settime, timerfd_gettime \- .\"O since that functionality is provided by .\"O .BR read (2), .\"O as described below.) -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤¦¤Î¤Ï¡¢¤½¤ì¤¾¤ì +これらのシステムコールを使うのは、それぞれ .BR timer_create (2), .BR timer_settime (2), .BR timer_gettime (2) -¤ò»È¤¦¤Î¤ÈƱÍͤǤ¢¤ë +を使うのと同様である .RB ( timer_getoverrun (2) -¤ËÂбþ¤¹¤ë¤â¤Î¤Ï¤Ê¤¯¡¢°Ê²¼¤ÇÀâÌÀ¤¹¤ë¤è¤¦¤Ë -¤³¤Îµ¡Ç½¤Ï +に対応するものはなく、以下で説明するように +この機能は .BR read (2) -¤Ë¤è¤êÄ󶡤µ¤ì¤ë)¡£ +により提供される)。 .\" .SS timerfd_create() .\"O .BR timerfd_create () .\"O creates a new timer object, .\"O and returns a file descriptor that refers to that timer. .BR timerfd_create () -¤Ï¿·µ¬¤Î¥¿¥¤¥Þ¡¼¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤·¡¢¤½¤Î¥¿¥¤¥Þ¡¼¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ +は新規のタイマーオブジェクトを生成し、そのタイマーを参照するファイル +ディスクリプタを返す。 .\"O The .\"O .I clockid .\"O argument specifies the clock that is used to mark the progress @@ -109,28 +109,28 @@ timerfd_create, timerfd_settime, timerfd_gettime \- .\"O The current value of each of these clocks can be retrieved using .\"O .BR clock_gettime (2). .I clockid -°ú¤­¿ô¤Ï¡¢¥¿¥¤¥Þ¡¼¤Î¿ÊĽ¤ò´ÉÍý¤¹¤ë¤¿¤á¤Î¥¯¥í¥Ã¥¯¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¡¢ +引き数は、タイマーの進捗を管理するためのクロックを指定するもので、 .B CLOCK_REALTIME -¤« +か .B CLOCK_MONOTONIC -¤Î¤¤¤º¤ì¤«¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +のいずれかでなければならない。 .B CLOCK_REALTIME -¤Ï¥·¥¹¥Æ¥àÁ´ÂΤǻÈÍѤµ¤ì¤ë¥¯¥í¥Ã¥¯¤Ç¡¢¤³¤Î¥¯¥í¥Ã¥¯¤ÏÊѹ¹²Äǽ¤Ç¤¢¤ë¡£ +はシステム全体で使用されるクロックで、このクロックは変更可能である。 .B CLOCK_MONOTONIC -¤ÏÊѹ¹¤µ¤ì¤ë¤³¤È¤Î¤Ê¤¤¥¯¥í¥Ã¥¯¤Ç¡¢(¥·¥¹¥Æ¥à»þ¹ï¤Î¼êÆ°¤Ç¤ÎÊѹ¹¤Ê¤É¤Î) -¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤ÎÉÔϢ³¤ÊÊѲ½¤Î±Æ¶Á¤ò¼õ¤±¤Ê¤¤¡£ -¤³¤ì¤é¤Î¥¯¥í¥Ã¥¯¤Î¸½ºß¤ÎÃÍ¤Ï +は変更されることのないクロックで、(システム時刻の手動での変更などの) +システムクロックの不連続な変化の影響を受けない。 +これらのクロックの現在の値は .BR clock_gettime (2) -¤ò»È¤Ã¤Æ¼èÆÀ¤Ç¤­¤ë¡£ +を使って取得できる。 .\"O Starting with Linux 2.6.27, the following values may be bitwise ORed in .\"O .IR flags .\"O to change the behavior of .\"O .BR timerfd_create (): -Linux 2.6.27 °Ê¹ß¤Ç¤Ï¡¢ -°Ê²¼¤ÎÃͤΤ¤¤¯¤Ä¤«¤ò¥Ó¥Ã¥Èñ°Ì¤ÎÏÀÍýÏ (OR) ¤Ç»ØÄꤹ¤ë¤³¤È¤Ç¡¢ +Linux 2.6.27 以降では、 +以下の値のいくつかをビット単位の論理和 (OR) で指定することで、 .BR timerfd_create () -¤Î¿¶Éñ¤¤¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +の振舞いを変更することができる。 .TP 14 .B TFD_NONBLOCK .\"O Set the @@ -139,14 +139,14 @@ Linux 2.6.27 .\"O Using this flag saves extra calls to .\"O .BR fcntl (2) .\"O to achieve the same result. -¿·¤·¤¯À¸À®¤µ¤ì¤ë¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò (open file description) ¤Î +新しく生成されるオープンファイル記述 (open file description) の .B O_NONBLOCK -¥Õ¥¡¥¤¥ë¥¹¥Æ¡¼¥¿¥¹¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤³¤È¤Ç¡¢ +ファイルステータスフラグをセットする。 +このフラグを使うことで、 .B O_NONBLOCK -¤ò¥»¥Ã¥È¤¹¤ë¤¿¤á¤Ë +をセットするために .BR fcntl (2) -¤òÄɲäǸƤӽФ¹É¬Íפ¬¤Ê¤¯¤Ê¤ë¡£ +を追加で呼び出す必要がなくなる。 .TP .B TFD_CLOEXEC .\"O Set the close-on-exec @@ -157,31 +157,31 @@ Linux 2.6.27 .\"O flag in .\"O .BR open (2) .\"O for reasons why this may be useful. -¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ +新しいファイルディスクリプタに対して close-on-exec .RB ( FD_CLOEXEC ) -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬Ìò¤ËΩ¤ÄÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +フラグをセットする。 +このフラグが役に立つ理由については、 .BR open (2) -¤Î +の .B O_CLOEXEC -¥Õ¥é¥°¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +フラグの説明を参照のこと。 .PP .\"O In Linux versions up to and including 2.6.26, .\"O .I flags .\"O must be specified as zero. -¥Ð¡¼¥¸¥ç¥ó 2.6.26 °ÊÁ°¤Î Linux ¤Ç¤Ï¡¢ +バージョン 2.6.26 以前の Linux では、 .I flags -°ú¤­¿ô¤Ï̤»ÈÍѤǤ¢¤ê¡¢0 ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数は未使用であり、0 を指定しなければならない。 .SS timerfd_settime() .\"O .BR timerfd_settime () .\"O arms (starts) or disarms (stops) .\"O the timer referred to by the file descriptor .\"O .IR fd . .BR timerfd_settime () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +は、ファイルディスクリプタ .I fd -¤Ë¤è¤ê»²¾È¤µ¤ì¤ë¥¿¥¤¥Þ¡¼¤ò³«»Ï¤·¤¿¤êÄä»ß¤·¤¿¤ê¤¹¤ë¡£ +により参照されるタイマーを開始したり停止したりする。 .\"O The .\"O .I new_value @@ -192,13 +192,13 @@ close-on-exec .\"O each of which is in turn a structure of type .\"O .IR timespec : .I new_value -°ú¤­¿ô¤Ï¡¢¥¿¥¤¥Þ¡¼¤ÎËþλ»þ´Ö (expiration) ¤Î½é´üÃÍ¤È´Ö³Ö (interval) ¤ò -»ØÄꤹ¤ë¡£¤³¤Î°ú¤­¿ô¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë -.\"Omotoki: itimer structure ¤Ï itimerspec structure ¤Î´Ö°ã¤¤¤À¤í¤¦¡£ +引き数は、タイマーの満了時間 (expiration) の初期値と間隔 (interval) を +指定する。この引き数で使用されている +.\"Omotoki: itimer structure は itimerspec structure の間違いだろう。 .I itimerspec -¹½Â¤ÂÎ¤Ë¤Ï 2 ¤Ä¤Î¥Õ¥£¡¼¥ë¥É¤¬¤¢¤ê¡¢³Æ¥Õ¥£¡¼¥ë¥É¤Ï +構造体には 2 つのフィールドがあり、各フィールドは .I timespec -·¿¤Î¹½Â¤ÂΤǤ¢¤ë¡£ +型の構造体である。 .in +4n .nf @@ -224,11 +224,11 @@ struct itimerspec { .\"O .I new_value.it_value .\"O to zero disarms the timer. .I new_value.it_value -¤Ï¥¿¥¤¥Þ¡¼¤ÎËþλ»þ´Ö¤Î½é´üÃͤò¡¢ÉäȥʥÎÉäǻØÄꤹ¤ë¡£ +はタイマーの満了時間の初期値を、秒とナノ秒で指定する。 .I new_value.it_value -¤Î¥Õ¥£¡¼¥ë¥É¤Î¤¦¤Á¾¯¤Ê¤¯¤È¤â°ìÊý¤Ë 0 °Ê³°¤ÎÃͤòÀßÄꤹ¤ë¤È¡¢ -¥¿¥¤¥Þ¡¼¤¬³«»Ï¤µ¤ì¤ë¡£ -ξÊý¤Î¥Õ¥£¡¼¥ë¥É¤Ë 0 ¤òÀßÄꤹ¤ë¤È¡¢¥¿¥¤¥Þ¡¼¤¬Ää»ß¤¹¤ë¡£ +のフィールドのうち少なくとも一方に 0 以外の値を設定すると、 +タイマーが開始される。 +両方のフィールドに 0 を設定すると、タイマーが停止する。 .\"O Setting one or both fields of .\"O .I new_value.it_interval @@ -239,13 +239,13 @@ struct itimerspec { .\"O are zero, the timer expires just once, at the time specified by .\"O .IR new_value.it_value . .I new_value.it_interval -¤Ï¥¿¥¤¥Þ¡¼¤Î°ì²óÌܤÎËþλ¸å¤Ë·«¤êÊÖ¤·¥¿¥¤¥Þ¡¼¤ÎËþλ´Ö³Ö¤ò¡¢ÉäȥʥÎÉäǻØÄꤹ¤ë¡£ +はタイマーの一回目の満了後に繰り返しタイマーの満了間隔を、秒とナノ秒で指定する。 .I new_value.it_interval -¤Î¥Õ¥£¡¼¥ë¥É¤Î¤¦¤Á¾¯¤Ê¤¯¤È¤â°ìÊý¤Ë 0 °Ê³°¤ÎÃͤòÀßÄꤹ¤ë¤È¡¢ -·«¤êÊÖ¤·¥¿¥¤¥Þ¡¼¤¬Í­¸ú¤Ë¤Ê¤ë¡£ -ξÊý¤Î¥Õ¥£¡¼¥ë¥É¤Ë 0 ¤òÀßÄꤷ¤¿¾ì¹ç¡¢¥¿¥¤¥Þ¡¼¤Ï +のフィールドのうち少なくとも一方に 0 以外の値を設定すると、 +繰り返しタイマーが有効になる。 +両方のフィールドに 0 を設定した場合、タイマーは .I new_value.it_value -¤Ç»ØÄꤵ¤ì¤¿»þ´Ö¸å¤Ë¡¢°ì²ó¤À¤±Ëþλ¤·¤ÆÄä»ß¤¹¤ë¡£ +で指定された時間後に、一回だけ満了して停止する。 .\"O The .\"O .I flags @@ -263,23 +263,23 @@ struct itimerspec { .\"O clock reaches the value specified in .\"O .IR new_value.it_value ). .I flags -°ú¤­¿ô¤Ë¤Ï 0 ¤« +引き数には 0 か .B TFD_TIMER_ABSTIME -¤ò»ØÄꤹ¤ë¡£ -0 ¤ÏÁêÂлþ¹ï¥¿¥¤¥Þ¡¼¤ò°ÕÌ£¤·¡¢ +を指定する。 +0 は相対時刻タイマーを意味し、 .I new_value.it_interval -¤Ç¤Ï +では .I clockid -¤Ç»ØÄꤵ¤ì¤¿¥¯¥í¥Ã¥¯¤Î¸½ºß¤ÎÃͤ«¤é¤ÎÁêÂÐŪ¤Ê»þ¹ï¤ò»ØÄꤹ¤ë¡£ +で指定されたクロックの現在の値からの相対的な時刻を指定する。 .B TFD_TIMER_ABSTIME -¤ÏÀäÂлþ¹ï¥¿¥¤¥Þ¡¼¤ò°ÕÌ£¤·¡¢ +は絶対時刻タイマーを意味し、 .I new_value.it_interval -¤Ç¤Ï +では .I clockid -¤Ç»ØÄꤵ¤ì¤¿¥¯¥í¥Ã¥¯¤ÎÀäÂлþ¹ï¤ò»ØÄꤹ¤ë¡£¤Ä¤Þ¤ê¡¢ -¥¯¥í¥Ã¥¯¤ÎÃͤ¬ +で指定されたクロックの絶対時刻を指定する。つまり、 +クロックの値が .I new_value.it_interval -¤Ç»ØÄꤵ¤ì¤¿»þ¹ï¤Ë㤷¤¿¤é¡¢¥¿¥¤¥Þ¡¼¤¬Ëþλ¤¹¤ë¡£ +で指定された時刻に達したら、タイマーが満了する。 .\"O The .\"O .I old_value @@ -288,12 +288,12 @@ struct itimerspec { .\"O .BR timerfd_gettime () .\"O following. .I old_value -°ú¤­¿ô¤òÄ̤¸¤Æ¡¢ +引き数を通じて、 .BR timerfd_settime () -¤ò¸Æ¤Ó½Ð¤·¤¿»þÅÀ¤Ç¤Î¥¿¥¤¥Þ¡¼¤ÎÀßÄê¤òÊÝ»ý¤·¤¿¹½Â¤ÂΤ¬ÊÖ¤µ¤ì¤ë¡£ -²¼µ­¤Î +を呼び出した時点でのタイマーの設定を保持した構造体が返される。 +下記の .BR timerfd_gettime () -¤ÎÀâÌÀ¤ò»²¾È¡£ +の説明を参照。 .\" .SS timerfd_gettime() .\"O .BR timerfd_gettime () @@ -305,13 +305,13 @@ struct itimerspec { .\"O referred to by the file descriptor .\"O .IR fd . .BR timerfd_gettime () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +は、ファイルディスクリプタ .I fd -¤Ç»²¾È¤µ¤ì¤ë¥¿¥¤¥Þ¡¼¤Î¸½ºß¤ÎÀßÄ꤬Æþ¤Ã¤¿ +で参照されるタイマーの現在の設定が入った .I itimerspec -¹½Â¤ÂΤò¡¢ +構造体を、 .I curr_value -¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ +に格納して返す。 .\"O The .\"O .I it_value @@ -323,11 +323,11 @@ struct itimerspec { .\"O .BR TFD_TIMER_ABSTIME .\"O flag was specified when setting the timer. .I it_value -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥¿¥¤¥Þ¡¼¤¬¼¡¤ËËþλ¤¹¤ë¤Þ¤Ç¤Î»Ä¤ê»þ´Ö¤òÊÖ¤¹¡£ -¤³¤Î¹½Â¤ÂΤÎξÊý¤Î¥Õ¥£¡¼¥ë¥É¤¬ 0 ¤Ç¤¢¤ì¤Ð¡¢¥¿¥¤¥Þ¡¼¤Ï¸½ºßÄä»ß¤·¤Æ¤¤¤ë¡£ -¥¿¥¤¥Þ¡¼ÀßÄê»þ¤Ë +フィールドは、タイマーが次に満了するまでの残り時間を返す。 +この構造体の両方のフィールドが 0 であれば、タイマーは現在停止している。 +タイマー設定時に .B TFD_TIMER_ABSTIME -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤¿¤«¤Ë´Ø¤ï¤é¤º¡¢¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¾ï¤ËÁêÂÐÃͤ¬³ÊǼ¤µ¤ì¤ë¡£ +フラグが指定されたかに関わらず、このフィールドは常に相対値が格納される。 .\"O The .\"O .I it_interval @@ -336,17 +336,17 @@ struct itimerspec { .\"O then the timer is set to expire just once, at the time specified by .\"O .IR curr_value.it_value . .I it_interval -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥¿¥¤¥Þ¡¼¤Î´Ö³Ö¤òÊÖ¤¹¡£ -¤³¤Î¹½Â¤ÂΤÎξÊý¤Î¥Õ¥£¡¼¥ë¥É¤¬ 0 ¤Ç¤¢¤ì¤Ð¡¢¥¿¥¤¥Þ¡¼¤Ï +フィールドは、タイマーの間隔を返す。 +この構造体の両方のフィールドが 0 であれば、タイマーは .I new_value.it_value -¤Ç»ØÄꤵ¤ì¤¿»þ´Ö¸å¤Ë°ì²ó¤À¤±Ëþλ¤·¤ÆÄä»ß¤¹¤ë¤è¤¦¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¡£ +で指定された時間後に一回だけ満了して停止するように設定されている。 .\"O .SS Operating on a timer file descriptor -.SS ¥¿¥¤¥Þ¡¼¡¦¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ¹¤ëÁàºî +.SS タイマー・ファイルディスクリプタに対する操作 .\"O The file descriptor returned by .\"O .BR timerfd_create () .\"O supports the following operations: .BR timerfd_create () -¤¬ÊÖ¤¹¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï°Ê²¼¤ÎÁàºî¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ +が返すファイルディスクリプタは以下の操作をサポートしている。 .TP .BR read (2) .\"O If the timer has already expired one or more times since @@ -362,15 +362,15 @@ struct itimerspec { .\"O (The returned value is in host byte order, .\"O i.e., the native byte order for integers on the host machine.) .BR timerfd_settime () -¤ò»È¤Ã¤Æ¥¿¥¤¥Þ¡¼¤ÎÀßÄ꤬ºÇ¸åÊѹ¹¤µ¤ì¤Æ°Ê¹ß¡¢¤Þ¤¿¤Ï +を使ってタイマーの設定が最後変更されて以降、または .BR read (2) -¤Î¸Æ¤Ó½Ð¤·¤ËºÇ¸å¤ËÀ®¸ù¤·¤Æ°Ê¹ß¤Ë¡¢¥¿¥¤¥Þ¡¼¤ÎËþ뤬°ì²ó°Ê¾åȯÀ¸¤·¤Æ¤¤¤ì¤Ð¡¢ +の呼び出しに最後に成功して以降に、タイマーの満了が一回以上発生していれば、 .BR read (2) -¤ËÅϤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Ë¡¢¥¿¥¤¥Þ¡¼Ëþλ²ó¿ô¤ò¼¨¤¹ 8 ¥Ð¥¤¥È¤Î unsigned ·¿¤ÎÀ°¿ô +に渡されたバッファに、タイマー満了回数を示す 8 バイトの unsigned 型の整数 .RI ( uint64_t ) -¤¬ÊÖ¤µ¤ì¤ë -(ÊÖ¤µ¤ì¤ëÃͤϥۥ¹¥È¥Ð¥¤¥È¥ª¡¼¥À¡¢¤Ä¤Þ¤ê¤½¤Î¥Û¥¹¥È¥Þ¥·¥ó¤Ë¤ª¤±¤ë -À°¿ô¤ÎÄ̾ï¤Î¥Ð¥¤¥È¥ª¡¼¥À¤Ç¤¢¤ë)¡£ +が返される +(返される値はホストバイトオーダ、つまりそのホストマシンにおける +整数の通常のバイトオーダである)。 .IP .\"O If no timer expirations have occurred at the time of the .\"O .BR read (2), @@ -385,32 +385,32 @@ struct itimerspec { .\"O .B O_NONBLOCK .\"O flag). .BR read (2) -¤ò¹Ô¤Ã¤¿»þÅÀ¤Ç¥¿¥¤¥Þ¡¼¤ÎËþλ¤¬È¯À¸¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ +を行った時点でタイマーの満了が発生していなければ、 .BR read (2) -¤ÏÄä»ß (block) ¤¹¤ë¡¢¤â¤·¤¯¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ -ÈóÄä»ß (nonblocking) ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¥¨¥é¡¼ +は停止 (block) する、もしくはファイルディスクリプタが +非停止 (nonblocking) に設定されている場合はエラー .B EAGAIN -¤Ç¼ºÇÔ¤¹¤ë (ÈóÄä»ß¥â¡¼¥É¤Ë¤¹¤ë¤Ë¤Ï¡¢ +で失敗する (非停止モードにするには、 .BR fcntl (2) -¤Î +の .B F_SETFL -Ì¿Îá¤Ç +命令で .B O_NONBLOCK -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë)¡£ +フラグをセットする)。 .IP .\"O A .\"O .BR read (2) .\"O will fail with the error .\"O .B EINVAL .\"O if the size of the supplied buffer is less than 8 bytes. -ÅϤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤¬ 8 ¥Ð¥¤¥È̤Ëþ¤Î¾ì¹ç¡¢ +渡されたバッファのサイズが 8 バイト未満の場合、 .BR read (2) -¤Ï¥¨¥é¡¼ +はエラー .B EINVAL -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .TP .\"O .BR poll "(2), " select "(2) (and similar)" -.BR poll "(2), " select "(2) (¤ÈƱÍͤÎÁàºî)" +.BR poll "(2), " select "(2) (と同様の操作)" .\"O The file descriptor is readable .\"O (the .\"O .BR select (2) @@ -420,16 +420,16 @@ struct itimerspec { .\"O .B POLLIN .\"O flag) .\"O if one or more timer expirations have occurred. -°ì¤Ä°Ê¾å¤Î¥¿¥¤¥Þ¡¼Ëþλ¤¬È¯À¸¤·¤Æ¤¤¤ì¤Ð¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÆɤ߽Ф·²Äǽ¤È¤Ê¤ë +一つ以上のタイマー満了が発生していれば、 +ファイルディスクリプタは読み出し可能となる .RB ( select (2) -¤Î +の .I readfds -°ú¤­¿ô¤ä +引き数や .BR poll (2) -¤Î +の .B POLLIN -¥Õ¥é¥°)¡£ +フラグ)。 .IP .\"O The file descriptor also supports the other file-descriptor .\"O multiplexing APIs: @@ -437,24 +437,24 @@ struct itimerspec { .\"O .BR ppoll (2), .\"O and .\"O .BR epoll (7). -¤³¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢Â¾¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿Â¿½Å API ¤Ç¤¢¤ë +このファイルディスクリプタは、他のファイルディスクリプタ多重 API である .BR pselect (2), .BR ppoll (2), .BR epoll (7) -¤â¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ +もサポートしている。 .TP .BR close (2) .\"O When the file descriptor is no longer required it should be closed. .\"O When all file descriptors associated with the same timer object .\"O have been closed, .\"O the timer is disarmed and its resources are freed by the kernel. -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¤½¤ì°Ê¹ß¤ÏɬÍפʤ¯¤Ê¤Ã¤¿ºÝ¤Ë¤Ï¡¢¥¯¥í¡¼¥º¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -Ʊ¤¸ timer ¥ª¥Ö¥¸¥§¥¯¥È¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Á´¤Æ -¥¯¥í¡¼¥º¤µ¤ì¤ë¤È¡¢¤½¤Î¥¿¥¤¥Þ¡¼¤Ï²ò½ü¤µ¤ì¡¢ -¤½¤Î¥ª¥Ö¥¸¥§¥¯¥ÈÍѤλñ¸»¤¬¥«¡¼¥Í¥ë¤Ë¤è¤ê²òÊü¤µ¤ì¤ë¡£ +ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきである。 +同じ timer オブジェクトに関連付けられたファイルディスクリプタが全て +クローズされると、そのタイマーは解除され、 +そのオブジェクト用の資源がカーネルにより解放される。 .\" .\"O .SS fork(2) semantics -.SS fork(2) ¤Ç¤Î°·¤¤ +.SS fork(2) での扱い .\"O After a .\"O .BR fork (2), .\"O the child inherits a copy of the file descriptor created by @@ -466,41 +466,41 @@ struct itimerspec { .\"O in the child will return information about .\"O expirations of the timer. .BR fork (2) -¤¬¹Ô¤ï¤ì¤ë¤È¡¢»Ò¥×¥í¥»¥¹¤Ï +が行われると、子プロセスは .BR timerfd_create () -¤Ë¤è¤êÀ¸À®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¥³¥Ô¡¼¤ò -·Ñ¾µ¤¹¤ë¡£¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢¿Æ¥×¥í¥»¥¹¤ÎÂбþ¤¹¤ë -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÈƱ¤¸¥¿¥¤¥Þ¡¼¥ª¥Ö¥¸¥§¥¯¥È¤ò»²¾È¤·¤Æ¤ª¤ê¡¢ -»Ò¥×¥í¥»¥¹¤Î +により生成されたファイルディスクリプタのコピーを +継承する。そのファイルディスクリプタは、親プロセスの対応する +ファイルディスクリプタと同じタイマーオブジェクトを参照しており、 +子プロセスの .BR read (2) -¤Ç¤âƱ¤¸¥¿¥¤¥Þ¡¼¤ÎËþλ¤Ë´Ø¤¹¤ë¾ðÊó¤¬ÊÖ¤µ¤ì¤ë¡£ +でも同じタイマーの満了に関する情報が返される。 .\" .\"O .SS execve(2) semantics -.SS execve(2) ¤Ç¤Î°·¤¤ +.SS execve(2) での扱い .\"O A file descriptor created by .\"O .BR timerfd_create () .\"O is preserved across .\"O .BR execve (2), .\"O and continues to generate timer expirations if the timer was armed. .BR execve (2) -¤ÎÁ°¸å¤Ç +の前後で .BR timerfd_create () -¤Ë¤è¤êÀ¸À®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÊÝ»ý¤µ¤ì¡¢ -¥¿¥¤¥Þ¡¼¤¬³«»Ï¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ë¤Ï¥¿¥¤¥Þ¡¼¤ÎËþλ¤¬È¯À¸¤·Â³¤±¤ë¡£ +により生成されたファイルディスクリプタは保持され、 +タイマーが開始されていた場合にはタイマーの満了が発生し続ける。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR timerfd_create () .\"O returns a new file descriptor. .\"O On error, \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR timerfd_create () -¤Ï¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は新しいファイルディスクリプタを返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .\"O .BR timerfd_settime () .\"O and @@ -510,18 +510,18 @@ struct itimerspec { .\"O .I errno .\"O to indicate the error. .BR timerfd_settime () -¤È +と .BR timerfd_gettime () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は成功すると 0 を返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O .BR timerfd_create () .\"O can fail with the following errors: .BR timerfd_create () -¤Ï°Ê²¼¤Î¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +は以下のエラーで失敗する可能性がある。 .TP .B EINVAL .\"O The @@ -531,11 +531,11 @@ struct itimerspec { .\"O nor .\"O .BR CLOCK_REALTIME ; .I clockid -°ú¤­¿ô¤¬ +引き数が .B CLOCK_MONOTONIC -¤Ç¤â +でも .B CLOCK_REALTIME -¤Ç¤â¤Ê¤¤¡£ +でもない。 .TP .B EINVAL .\"O .I flags @@ -544,42 +544,42 @@ struct itimerspec { .\"O .I flags .\"O is nonzero. .I flags -¤¬Ìµ¸ú¤Ç¤¢¤ë¡£¤â¤·¤¯¤Ï¡¢Linux 2.6.26 °ÊÁ°¤Î¾ì¹ç¤Ï +が無効である。もしくは、Linux 2.6.26 以前の場合は .I flags -¤¬ 0 °Ê³°¤Ç¤¢¤ë¡£ +が 0 以外である。 .TP .B EMFILE .\"O The per-process limit of open file descriptors has been reached. -¥ª¡¼¥×¥óºÑ¤ß¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¿ô¤¬¥×¥í¥»¥¹¤¢¤¿¤ê¤Î¾å¸Â¤Ë -㤷¤Æ¤¤¤¿¡£ +オープン済みのファイルディスクリプタの数がプロセスあたりの上限に +達していた。 .TP .B ENFILE .\"O The system-wide limit on the total number of open files has been .\"O reached. -¥ª¡¼¥×¥óºÑ¤ß¤Î¥Õ¥¡¥¤¥ëÁí¿ô¤¬¥·¥¹¥Æ¥àÁ´ÂΤξå¸Â¤Ë㤷¤Æ¤¤¤¿¡£ +オープン済みのファイル総数がシステム全体の上限に達していた。 .TP .B ENODEV .\"O Could not mount (internal) anonymous inode device. -(¥«¡¼¥Í¥ëÆâ¤Î) ̵̾ inode ¥Ç¥Ð¥¤¥¹¤ò¥Þ¥¦¥ó¥È¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +(カーネル内の) 無名 inode デバイスをマウントできなかった。 .TP .B ENOMEM .\"O There was insufficient kernel memory to create the timer. -¥¿¥¤¥Þ¡¼¤òºîÀ®¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¥«¡¼¥Í¥ë¥á¥â¥ê¤¬¤Ê¤«¤Ã¤¿¡£ +タイマーを作成するのに十分なカーネルメモリがなかった。 .PP .\"O .BR timerfd_settime () .\"O and .\"O .BR timerfd_gettime () .\"O can fail with the following errors: .BR timerfd_settime () -¤È +と .BR timerfd_gettime () -¤Ï°Ê²¼¤Î¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +は以下のエラーで失敗する可能性がある。 .TP .B EBADF .\"O .I fd .\"O is not a valid file descriptor. .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B EFAULT .\"O .IR new_value , @@ -590,18 +590,18 @@ struct itimerspec { .IR new_value , .IR old_value , .I curr_value -¤¬Í­¸ú¤Ê¥Ý¥¤¥ó¥¿¤Ç¤Ï¤Ê¤¤¡£ +が有効なポインタではない。 .TP .B EINVAL .\"O .I fd .\"O is not a valid timerfd file descriptor. .I fd -¤¬Í­¸ú¤Ê timerfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効な timerfd ファイルディスクリプタでない。 .PP .\"O .BR timerfd_settime () .\"O can also fail with the following errors: .BR timerfd_settime () -¤Ï°Ê²¼¤Î¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë¤³¤È¤â¤¢¤ë¡£ +は以下のエラーで失敗することもある。 .TP .B EINVAL .\"O .I new_value @@ -609,9 +609,9 @@ struct itimerspec { .\"O .I tv_nsec .\"O falls outside the range zero to 999,999,999). .I new_value -¤¬Å¬Àڤ˽é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¤ +が適切に初期化されていない .RI ( tv_nsec -¤Î°ì¤Ä¤¬ 0 ¤«¤é 999,999,999 ¤Þ¤Ç¤ÎÈϰϤËÆþ¤Ã¤Æ¤¤¤Ê¤¤)¡£ +の一つが 0 から 999,999,999 までの範囲に入っていない)。 .TP .B EINVAL .\" This case only checked since 2.6.29, and 2.2.2[78].some-stable-version. @@ -619,19 +619,19 @@ struct itimerspec { .\"O .I flags .\"O is invalid. .I flags -¤¬Ìµ¸ú¤Ç¤¢¤ë¡£ +が無効である。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These system calls are available on Linux since kernel 2.6.25. .\"O Library support is provided by glibc since version 2.8. -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë 2.6.25 °Ê¹ß¤Î Linux ¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -¥é¥¤¥Ö¥é¥ê¦¤Î¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.8 °Ê¹ß¤Î glibc ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +これらのシステムコールはカーネル 2.6.25 以降の Linux で利用可能である。 +ライブラリ側のサポートはバージョン 2.8 以降の glibc で提供されている。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O These system calls are Linux-specific. -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ +これらのシステムコールは Linux 固有である。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The following program creates a timer and then monitors its progress. .\"O The program accepts up to three command-line arguments. .\"O The first argument specifies the number of seconds for @@ -640,15 +640,15 @@ struct itimerspec { .\"O The third argument specifies the number of times the program should .\"O allow the timer to expire before terminating. .\"O The second and third command-line arguments are optional. -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢¥¿¥¤¥Þ¡¼¤òºîÀ®¤·¡¢¤½¤Î¿ÊĽ¤ò¥â¥Ë¥¿¡¼¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î¥×¥í¥°¥é¥à¤ÏºÇÂç¤Ç 3 ¸Ä¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤ò¼è¤ê¡¢ -Âè°ì°ú¤­¿ô¤Ç¤Ï¥¿¥¤¥Þ¡¼¤ÎËþλ»þ´Ö¤Î½é´üÃÍ (Éÿôñ°Ì) ¤ò¡¢ -ÂèÆó°ú¤­¿ô¤Ç¤Ï¥¿¥¤¥Þ¡¼¤Î´Ö³Ö (Éÿôñ°Ì) ¤ò¡¢ -Âè»°°ú¤­¿ô¤Ç¤Ï¥¿¥¤¥Þ¡¼¤¬²¿²óËþλ¤·¤¿¤é¥×¥í¥°¥é¥à¤¬½ªÎ»¤¹¤ë¤«¤ò»ØÄꤹ¤ë¡£ -ÂèÆó°ú¤­¿ô¤ÈÂè»°°ú¤­¿ô¤Ï¾Êά²Äǽ¤Ç¤¢¤ë¡£ +以下のプログラムは、タイマーを作成し、その進捗をモニターするものである。 +このプログラムは最大で 3 個のコマンドライン引き数を取り、 +第一引き数ではタイマーの満了時間の初期値 (秒数単位) を、 +第二引き数ではタイマーの間隔 (秒数単位) を、 +第三引き数ではタイマーが何回満了したらプログラムが終了するかを指定する。 +第二引き数と第三引き数は省略可能である。 .\"O The following shell session demonstrates the use of the program: -°Ê²¼¤Î¥·¥§¥ë¤Î¥»¥Ã¥·¥ç¥ó¤Ï¤³¤Î¥×¥í¥°¥é¥à¤Î»ÈÍÑÎã¤ò¼¨¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +以下のシェルのセッションはこのプログラムの使用例を示したものである。 .in +4n .nf @@ -667,7 +667,7 @@ a.out 3 1 100 .fi .in .\"O .SS Program source -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf .\" The commented out code here is what we currently need until @@ -802,20 +802,20 @@ main(int argc, char *argv[]) } .fi .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Currently, .\"O .\" 2.6.29 .\"O .BR timerfd_create () .\"O supports fewer types of clock IDs than .\"O .BR timer_create (2). -¸½ºß¤Î¤È¤³¤í¡¢ +現在のところ、 .\" 2.6.29 .BR timerfd_create () -¤¬Âбþ¤·¤Æ¤¤¤ë clockid ¤Î¼ïÎà¤Ï +が対応している clockid の種類は .BR timer_create (2) -¤è¤ê¤â¾¯¤Ê¤¤¡£ +よりも少ない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR eventfd (2), .BR poll (2), .BR read (2), diff --git a/draft/man2/times.2 b/draft/man2/times.2 index 64a37963..a9dbf1e1 100644 --- a/draft/man2/times.2 +++ b/draft/man2/times.2 @@ -47,16 +47,16 @@ .\" Updated 2005-04-20, Kentaro Shirakata .\" Updated 2008-02-12, Akihiro MOTOKI , LDP v2.77 .\" -.\" WORD: clock ticks ¥¯¥í¥Ã¥¯¿ô +.\" WORD: clock ticks クロック数 .\" .TH TIMES 2 2008-06-25 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -times - ¥×¥í¥»¥¹»þ´Ö¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +times - プロセス時間を取得する +.SH 書式 .B #include .sp .BI "clock_t times(struct tms *" buf ); -.SH ÀâÌÀ +.SH 説明 .\"O .BR times () .\"O stores the current process times in the .\"O .B "struct tms" @@ -64,19 +64,19 @@ times - .\"O .I buf .\"O points to. .BR times () -¤Ï¸½ºß¤Î¥×¥í¥»¥¹»þ´Ö¤ò +は現在のプロセス時間を .I buf -¤¬»Ø¤·¤Æ¤¤¤ë +が指している .B "struct tms" -¤Ë³ÊǼ¤¹¤ë¡£ +に格納する。 .\"O The .\"O .I struct tms .\"O is as defined in .\"O .IR : .I struct tms -¤Ï +は .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +で以下のように定義されている: .sp .in +4n .nf @@ -94,15 +94,15 @@ struct tms { .\"O field contains the CPU time spent executing instructions .\"O of the calling process. .I tms_utime -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬Ì¿Îá¤ò¼Â¹Ô¤¹¤ë¤Î¤Ë¾ÃÈñ¤·¤¿ -CPU »þ´Ö¤Ç¤¢¤ë¡£ +フィールドは、呼び出したプロセスが命令を実行するのに消費した +CPU 時間である。 .\"O The .\"O .I tms_stime .\"O field contains the CPU time spent in the system while .\"O executing tasks on behalf of the calling process. .I tms_stime -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¤¿¤á¤Ë¼Â¹Ô¤µ¤ì¤¿¥¿¥¹¥¯¤Ç¡¢ -¥·¥¹¥Æ¥à¤¬¾ÃÈñ¤·¤¿ CPU »þ´Ö¤Ç¤¢¤ë¡£ +フィールドは、呼び出したプロセスのために実行されたタスクで、 +システムが消費した CPU 時間である。 .\"O The .\"O .I tms_cutime .\"O field contains the sum of the @@ -111,12 +111,12 @@ CPU .\"O .I tms_cutime .\"O values for all waited-for terminated children. .I tms_cutime -¥Õ¥£¡¼¥ë¥É¤Ï¡¢ -½ªÎ»¤òÂԤäƤ¤¤ëÁ´¤Æ¤Î»Ò¥×¥í¥»¥¹¤Î +フィールドは、 +終了を待っている全ての子プロセスの .I tms_utime -¤È +と .I tms_cutime -¤Î¹ç·×¤Ç¤¢¤ë¡£ +の合計である。 .\"O The .\"O .I tms_cstime .\"O field contains the sum of the @@ -125,12 +125,12 @@ CPU .\"O .I tms_cstime .\"O values for all waited-for terminated children. .I tms_cstime -¥Õ¥£¡¼¥ë¥É¤Ï¡¢ -½ªÎ»¤òÂԤäƤ¤¤ëÁ´¤Æ¤Î»Ò¥×¥í¥»¥¹¤Î +フィールドは、 +終了を待っている全ての子プロセスの .I tms_stime -¤È +と .I tms_cstime -¤Î¹ç·×¤Ç¤¢¤ë¡£ +の合計である。 .LP .\"O Times for terminated children (and their descendants) .\"O are added in at the moment @@ -140,18 +140,18 @@ CPU .\"O returns their process ID. .\"O In particular, times of grandchildren .\"O that the children did not wait for are never seen. -½ªÎ»¤¹¤ë»Ò(µÚ¤Ó¤½¤Î»Ò¹)¥×¥í¥»¥¹¤Î»þ´Ö¤Ï +終了する子(及びその子孫)プロセスの時間は .BR wait (2) -¤ä +や .BR waitpid (2) -¤¬¥×¥í¥»¥¹ ID ¤òÊÖ¤·¤¿½Ö´Ö¤Ë²Ã»»¤µ¤ì¤ë¡£ -¤Ä¤Þ¤ê¡¢»Ò¤¬¤Þ¤À½ªÎ»¤òÂԤäƤ¤¤Ê¤¤¾õÂÖ¤Ç¤Ï -¹¥×¥í¥»¥¹¤Î»þ´Ö¤Ï·è¤·¤Æ¸½¤ì¤Ê¤¤¡£ +がプロセス ID を返した瞬間に加算される。 +つまり、子がまだ終了を待っていない状態では +孫プロセスの時間は決して現れない。 .LP .\"O All times reported are in clock ticks. -Á´¤Æ¤Î»þ´Ö¤Ï¥¯¥í¥Ã¥¯¿ô¤ÇÊÖ¤µ¤ì¤ë¡£ +全ての時間はクロック数で返される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The function .\"O .BR times () .\"O returns the number of clock ticks that have elapsed since @@ -162,40 +162,40 @@ CPU .\"O .I errno .\"O is set appropriately. .BR times () -¤Ï²áµî¤Î¤¢¤ë»þÅÀ¤«¤é·Ð²á¤·¤¿¥¯¥í¥Ã¥¯¿ô (clock tick) ¤òÊÖ¤¹¡£ -¤³¤ÎÊÖ¤êÃÍ¤Ï +は過去のある時点から経過したクロック数 (clock tick) を返す。 +この返り値は .I clock_t -·¿¤¬¼è¤êÆÀ¤ëÈϰϤ«¤é¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\fI(clock_t)\ \-1\fP ¤¬ÊÖ¤µ¤ì¡¢ +型が取り得る範囲からオーバーフローするかもしれない。 +エラーの場合、\fI(clock_t)\ \-1\fP が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\" The only possible error is EFAULT. .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The number of clock ticks per second can be obtained using: .\"O .in +4n .\"O .\"O sysconf(_SC_CLK_TCK); .\"O .in -°ìÉ䢤¿¤ê¤Î¥¯¥í¥Ã¥¯¿ô¤Ï +一秒あたりのクロック数は .in +4n sysconf(_SC_CLK_TCK); .in -¤ò»È¤Ã¤ÆÆÀ¤ë¤³¤È¤¬½ÐÍè¤ë¡£ +を使って得ることが出来る。 .PP .\"O In POSIX.1-1996 the symbol \fBCLK_TCK\fP (defined in .\"O .IR ) .\"O is mentioned as obsolescent. .\"O It is obsolete now. -POSIX.1-1996 ¤Ç¤Ï¡¢\fBCLK_TCK\fP ¥·¥ó¥Ü¥ë +POSIX.1-1996 では、\fBCLK_TCK\fP シンボル .RI ( -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë) ¤Ï¸Å¤¤¤â¤Î¤Ç¤¢¤ë¤Èµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -º£¤Ç¤Ï¤³¤ì¤Ï¸Å¤¤¤â¤Î¤Ç¤¢¤ë¡£ +で定義されている) は古いものであると記述されている。 +今ではこれは古いものである。 .PP .\"O In Linux kernel versions before 2.6.9, .\"O if the disposition of @@ -212,21 +212,21 @@ POSIX.1-1996 .\"O .BR wait (2)s .\"O on its children. .\"O +This nonconformance is rectified in Linux 2.6.9 and later. -Linux 2.6.9 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ +Linux 2.6.9 より前のバージョンでは、 .B SIGCHLD -¤ò +を .B SIG_IGN -¤ËÀßÄꤹ¤ë¤È -½ªÎ»¤·¤¿»Ò¥×¥í¥»¥¹¤Î²ó¿ô¤Ï -¼«Æ°Åª¤Ë +に設定すると +終了した子プロセスの回数は +自動的に .I tms_cstime -¤È +と .I tms_cutime -¥Õ¥£¡¼¥ë¥É¤Ë´Þ¤Þ¤ì¤ë¡£ -¤·¤«¤·¡¢POSIX.1-2001 ¤Ç¤Ï¡¢¤³¤ÎÆ°ºî¤Ï¸Æ¤Ó½Ð¤·¸µ¤¬ +フィールドに含まれる。 +しかし、POSIX.1-2001 では、この動作は呼び出し元が .BR wait (2) -´Ø¿ô·²¤Ç»Ò¥×¥í¥»¥¹¤òÂԤ俾ì¹ç¤Ë¤Î¤ßµ¯¤­¤ë¤Ù¤­¤À¤È¤·¤Æ¤¤¤ë¡£ -ɸ½à¤È¤Ï°Û¤Ê¤ë¤³¤ÎÆ°ºî¤Ï Linux 2.6.9 °Ê¹ß¤Ç½¤Àµ¤µ¤ì¤Æ¤¤¤ë¡£ +関数群で子プロセスを待った場合にのみ起きるべきだとしている。 +標準とは異なるこの動作は Linux 2.6.9 以降で修正されている。 .\"O .\" See the description of times() in XSH, which says: .\"O .\" The times of a terminated child process are included... when wait() .\"O .\" or waitpid() returns the process ID of this terminated child. @@ -239,18 +239,18 @@ Linux 2.6.9 .\"O argument can be specified as NULL, with the result that .\"O .BR times () .\"O just returns a function result. -Linux ¤Ç¤Ï¡¢ +Linux では、 .I buf -°ú¿ô¤Ë NULL ¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¡¢¤½¤Î¾ì¹ç¤Ï +引数に NULL を指定することができ、その場合は .BR times () -¤Ïñ¤Ë´Ø¿ô¤Î·ë²Ì¤òÊÖ¤¹¡£ +は単に関数の結果を返す。 .\"O However, POSIX does not specify this behavior, and most .\"O other UNIX implementations require a non-NULL value for .\"O .IR buf . -¤·¤«¤·¡¢POSIX ¤Ï¤³¤Î¿¶¤ëÉñ¤¤¤Ïµ¬Äꤵ¤ì¤Æ¤ª¤é¤º¡¢ -¤½¤Î¾¤Î¤Û¤È¤ó¤É¤Î UNIX ¼ÂÁõ¤Ï +しかし、POSIX はこの振る舞いは規定されておらず、 +その他のほとんどの UNIX 実装は .I buf -¤ÎÃͤȤ·¤ÆÈó NULL ¤ÎÃͤòÍ׵᤹¤ë¡£ +の値として非 NULL の値を要求する。 .LP .\"O Note that .\"O .BR clock (3) @@ -261,13 +261,13 @@ Linux .\"O not the clock ticks used by .\"O .BR times (). .BR clock (3) -¤â +も .I clock_t -·¿¤ÎÃͤòÊÖ¤¹¤¬¡¢¤³¤ÎÃÍ¤Ï +型の値を返すが、この値は .BR times () -¤Ç»ÈÍѤµ¤ì¤ë¥¯¥í¥Ã¥¯ tick ¿ô¤Ç¤Ï¤Ê¤¯¡¢ +で使用されるクロック tick 数ではなく、 .B CLOCKS_PER_SEC -¤¬Ã±°Ì¤Ç¤¢¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +が単位である点に注意すること。 .\"O On Linux, the "arbitrary point in the past" from which the return value of .\"O .BR times () @@ -282,27 +282,27 @@ Linux .\"O To measure changes in elapsed time, use .\"O .BR gettimeofday (2) .\"O instead. -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR times () -¤ÎÊÖ¤êÃͤò·×»»¤¹¤ëµ¯ÅÀ¤È¤Ê¤ë¡Ö²áµî¤ÎǤ°Õ¤Î»þÅÀ¡×¤Ï¡¢¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó -¤Ë¤è¤ê°Û¤Ê¤ë¡£ -Linux 2.4 °ÊÁ°¤Ç¤Ï¡¢¤³¤Î»þÅÀ¤Ï¥·¥¹¥Æ¥à¤¬µ¯Æ°¤·¤¿½Ö´Ö¤Ç¤¢¤ë¡£ -Linux 2.6 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î»þÅÀ¤Ï¥·¥¹¥Æ¥àµ¯Æ°»þ¹ï¤Î \fI(2^32/HZ) \- 300\fP -(¤ª¤è¤Ó 4²¯2900Ëü) ÉÃÁ°¤Ç¤¢¤ë¡£ -¤³¤Î¤è¤¦¤Ë¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó (¤ä UNIX ¤Î¼ÂÁõ) ¤Ë¤è¤ê°Û¤Ê¤ë¤³¤È¤È¡¢ -ÊÖ¤êÃͤ¬ +の返り値を計算する起点となる「過去の任意の時点」は、カーネルのバージョン +により異なる。 +Linux 2.4 以前では、この時点はシステムが起動した瞬間である。 +Linux 2.6 以降では、この時点はシステム起動時刻の \fI(2^32/HZ) \- 300\fP +(および 4億2900万) 秒前である。 +このようにカーネルバージョン (や UNIX の実装) により異なることと、 +返り値が .I clock_t -¤ÎÈϰϤò¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¤È¤¤¤¦»ö¼Â¤ò¹Íθ¤¹¤ë¤È¡¢ -°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤ÎÃͤò»È¤¦¤Î¤ÏÈò¤±¤ë¤Î¤¬¸­ÌÀ¤Ç¤¢¤í¤¦¡£ -·Ð²á»þ´Ö¤ò¬¤ê¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢Âå¤ï¤ê¤Ë +の範囲をオーバーフローする可能性があるという事実を考慮すると、 +移植性が必要なアプリケーションではこの値を使うのは避けるのが賢明であろう。 +経過時間を測りたい場合には、代わりに .BR gettimeofday (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +を使用すること。 .\" .PP .\"O .\" On older systems the number of clock ticks per second is given .\"O .\" by the variable HZ. -.\" ¸Å¤¤¥·¥¹¥Æ¥à¤Ç¤Ï°ìÉ䢤¿¤ê¤Î¥¯¥í¥Ã¥¯¿ô¤Ï HZ ÊÑ¿ô¤ÇÍ¿¤¨¤é¤ì¤ë¡£ +.\" 古いシステムでは一秒あたりのクロック数は HZ 変数で与えられる。 .\"O .SS "Historical" -.SS Îò»Ë +.SS 歴史 .\"O SVr1-3 returns .\"O .I long .\"O and the struct members are of type @@ -313,18 +313,18 @@ Linux 2.6 .\"O for the struct members, because it had no type .\"O .I time_t .\"O yet. -SVr1-3 ¤Ç¤Ï +SVr1-3 では .I long -¤òÊÖ¤·¡¢¹½Â¤ÂΤΥá¥ó¥Ð¤Ë +を返し、構造体のメンバに .I time_t -·¿¤ò»È¤Ã¤Æ¤¤¤¿¤¬¡¢µª¸µ¤«¤é¤ÎÉÿô¤Ç¤Ï¤Ê¤¯¥¯¥í¥Ã¥¯¿ô¤ò³ÊǼ¤·¤Æ¤¤¤¿¡£ -V7 ¤Ç¤Ï¹½Â¤ÂΤΥá¥ó¥Ð¤Ë +型を使っていたが、紀元からの秒数ではなくクロック数を格納していた。 +V7 では構造体のメンバに .I long -·¿¤ò»È¤Ã¤Æ¤¤¤¿¡£¤Þ¤À +型を使っていた。まだ .I time_t -·¿¤¬¤Ê¤«¤Ã¤¿¤«¤é¤Ç¤¢¤ë¡£ +型がなかったからである。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O A limitation of the Linux system call conventions on some architectures .\"O (notably i386) means that on Linux 2.6 there is a small time window .\"O (41 seconds) soon after boot when @@ -333,13 +333,13 @@ V7 .\"O The same problem can occur when the return value wraps passed .\"O the maximum value that can be stored in .\"O .BR clockid_t . -¤¤¤¯¤Ä¤«¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã (ÆÃ¤Ë i386) ¤Ë¤ª¤±¤ë Linux ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î´·½¬¤Î -À©¸Â¤Ë¤è¤ê¡¢Linux 2.6 ¤Ç¤Ïµ¯Æ°Ä¾¸å¤Ï (41ÉäÈ) ¥¿¥¤¥à¥¦¥£¥ó¥É¥¦¤¬¾®¤µ¤¯¡¢ +いくつかのアーキテクチャ (特に i386) における Linux のシステムコールの慣習の +制限により、Linux 2.6 では起動直後は (41秒と) タイムウィンドウが小さく、 .BR times () -¤¬¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¤³¤È¤ò¼¨¤¹ \-1 ¤ò´Ö°ã¤Ã¤ÆÊÖ¤¹¤³¤È¤¬¤¢¤ë¡£ -ÊÖ¤êÃͤ¬ +がエラーが起こったことを示す \-1 を間違って返すことがある。 +返り値が .I clockid_t -¤¬³ÊǼ²Äǽ¤ÊºÇÂçÃͤòĶ²á¤·¤¿ºÝ¤Ë¤âƱ¤¸ÌäÂ꤬µ¯¤³¤êÆÀ¤ë¡£ +が格納可能な最大値を超過した際にも同じ問題が起こり得る。 .\" The problem is that a syscall return of -4095 to -1 .\" is interpreted by glibc as an error, and the wrapper converts .\" the return value to -1. @@ -347,7 +347,7 @@ V7 .\" "compat_sys_times() bogus until jiffies >= 0" .\" November 2007 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR time (1), .BR getrusage (2), .BR wait (2), diff --git a/draft/man2/tkill.2 b/draft/man2/tkill.2 index 0d2d6fc7..f6e8b2fa 100644 --- a/draft/man2/tkill.2 +++ b/draft/man2/tkill.2 @@ -33,17 +33,17 @@ .TH TKILL 2 2011-09-18 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O tkill, tgkill \- send a signal to a thread -.SH ̾Á° -tkill, tgkill \- ¥¹¥ì¥Ã¥É¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë +.SH 名前 +tkill, tgkill \- スレッドにシグナルを送る .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .BI "int tkill(int " tid ", int " sig ); .sp .BI "int tgkill(int " tgid ", int " tid ", int " sig ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR tgkill () .\"O sends the signal .\"O .I sig @@ -57,19 +57,19 @@ tkill, tgkill \- .\"O as a whole, and the signal will be delivered to an arbitrary .\"O thread within that process.) .BR tgkill () -¤Ï¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥× +はスレッド・グループ .I tgid -¤Ë°¤¹¤ë¥¹¥ì¥Ã¥É ID ¤¬ +に属するスレッド ID が .I tid -¤Î¥¹¥ì¥Ã¥É¤Ë¥·¥°¥Ê¥ë +のスレッドにシグナル .I sig -¤òÁ÷¤ë¡£ -(¤³¤ì¤ËÂФ·¡¢ +を送る。 +(これに対し、 .BR kill (2) -¤Ï°ì¤Ä¤Î¥×¥í¥»¥¹ (¤¹¤Ê¤ï¤Á¡¢¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×) ¤Ë¤Þ¤È¤á¤Æ¥·¥°¥Ê¥ë¤ò -Á÷¤ë¤Î¤Ë¤À¤±ÍøÍѤǤ­¤ë¡£ +は一つのプロセス (すなわち、スレッド・グループ) にまとめてシグナルを +送るのにだけ利用できる。 .BR kill (2) -¤ÇÁ÷¿®¤µ¤ì¤¿¥·¥°¥Ê¥ë¤Ï¥×¥í¥»¥¹Æâ¤ÎǤ°Õ¤Î¥¹¥ì¥Ã¥É¤ËÇÛÁ÷¤µ¤ì¤ë¡£) +で送信されたシグナルはプロセス内の任意のスレッドに配送される。) .\"O .BR tkill () .\"O is an obsolete predecessor to @@ -79,14 +79,14 @@ tkill, tgkill \- .\"O terminates and its thread ID is recycled. .\"O Avoid using this system call. .BR tkill () -¤Ï¤â¤¦»È¤ï¤ì¤Ê¤¯¤Ê¤Ã¤¿ +はもう使われなくなった .BR tgkill () -¤ÎÀèÁĤǤ¢¤ë¡£ +の先祖である。 .BR tkill () -¤Ç¤Ï¥·¥°¥Ê¥ë¤ÎÁ÷¤êÀè¤Î¥¹¥ì¥Ã¥É ID ¤·¤«»ØÄê¤Ç¤­¤Ê¤¤¡£ -¤½¤Î¤¿¤á¡¢¥¹¥ì¥Ã¥É¤¬½ªÎ»¤·¤Æ¡¢¤½¤Î¥¹¥ì¥Ã¥É ID ¤¬ºÆÍøÍѤµ¤ì¤ë¾ì¹ç¤Ë¡¢ -°Õ¿Þ¤·¤Ê¤¤¥¹¥ì¥Ã¥É¤Ë¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î»ÈÍѤÏÈò¤±¤ë¤³¤È¡£ +ではシグナルの送り先のスレッド ID しか指定できない。 +そのため、スレッドが終了して、そのスレッド ID が再利用される場合に、 +意図しないスレッドにシグナルが送られる可能性がある。 +このシステムコールの使用は避けること。 .\"O If .\"O .I tgid @@ -95,83 +95,83 @@ tkill, tgkill \- .\"O is equivalent to .\"O .BR tkill (). .I tgid -¤Ë \-1 ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +に \-1 が指定された場合、 .BR tgkill () -¤Ï +は .BR tkill () -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 .\"O These are the raw system call interfaces, meant for internal .\"O thread library use. -¤³¤ì¤é¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ø¤ÎľÀܤΥ¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¢¤ê¡¢ -¥¹¥ì¥Ã¥É¡¦¥é¥¤¥Ö¥é¥êÆâÉô¤Ç¤Î»ÈÍѤò°Õ¿Þ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +これらはシステムコールへの直接のインターフェースであり、 +スレッド・ライブラリ内部での使用を意図したものである。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and \fIerrno\fP .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ -\fIerrno\fP ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +成功した場合、0 が返される。エラーが発生した場合、\-1 が返され、 +\fIerrno\fP が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O An invalid thread ID, thread group ID, or signal was specified. -»ØÄꤵ¤ì¤¿¥¹¥ì¥Ã¥É ID¡¢¥¹¥ì¥Ã¥É¥°¥ë¡¼¥× ID¡¢¥·¥°¥Ê¥ë¤¬ÉÔÀµ¤Ç¤¢¤Ã¤¿¡£ +指定されたスレッド ID、スレッドグループ ID、シグナルが不正であった。 .TP .B EPERM .\"O Permission denied. .\"O For the required permissions, see .\"O .BR kill (2). -µö²Ä¤¬¤Ê¤«¤Ã¤¿¡£¤É¤Î¤è¤¦¤Êµö²Ä¤¬É¬Íפ«¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +許可がなかった。どのような許可が必要かについては、 .BR kill (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .TP .B ESRCH .\"O No process with the specified thread ID (and thread group ID) exists. -»ØÄꤵ¤ì¤¿¥¹¥ì¥Ã¥ÉID (¤È¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×ID) ¤ò»ý¤Ä¥×¥í¥»¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£ +指定されたスレッドID (とスレッド・グループID) を持つプロセスが存在しない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR tkill () .\"O is supported since Linux 2.4.19 / 2.5.4. .\"O .BR tgkill () .\"O was added in Linux 2.5.75. .BR tkill () -¤Ï Linux 2.4.19 / 2.5.4 °Ê¹ß¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¡¢ +は Linux 2.4.19 / 2.5.4 以降でサポートされ、 .BR tgkill () -¤Ï Linux 2.5.75 ¤ÇÄɲ䵤줿¡£ +は Linux 2.5.75 で追加された。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR tkill () .\"O and .\"O .BR tgkill () .\"O are Linux-specific and should not be used .\"O in programs that are intended to be portable. .BR tkill () -¤È +と .BR tgkill () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢ -°Ü¿¢¤òÁÛÄꤷ¤¿¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +は Linux 固有であり、 +移植を想定したプログラムでは使用すべきではない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O See the description of .\"O .B CLONE_THREAD .\"O in .\"O .BR clone (2) .\"O for an explanation of thread groups. -¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤ÎÀâÌÀ¤Ë¤Ä¤¤¤Æ¤Ï +スレッド・グループの説明については .BR clone (2) -¤Î +の .B CLONE_THREAD -¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +の説明を参照のこと。 .\"O Glibc does not provide wrappers for these system calls; call them using .\"O .BR syscall (2). -glibc ¤Ï¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +glibc はこれらのシステムコールに対するラッパー関数を提供していない。 .BR syscall (2) -¤ò»È¤Ã¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¡£ +を使って呼び出すこと。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR clone (2), .BR gettid (2), .BR kill (2), diff --git a/draft/man2/truncate.2 b/draft/man2/truncate.2 index 5c8220c0..29b1fdd1 100644 --- a/draft/man2/truncate.2 +++ b/draft/man2/truncate.2 @@ -50,11 +50,11 @@ .\" .TH TRUNCATE 2 2010-10-07 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O truncate, ftruncate \- truncate a file to a specified length -truncate, ftruncate \- »ØÄꤷ¤¿Ä¹¤µ¤Ë¥Õ¥¡¥¤¥ë¤òÀÚ¤êµÍ¤á¤ë +truncate, ftruncate \- 指定した長さにファイルを切り詰める .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include @@ -66,9 +66,9 @@ truncate, ftruncate \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .ad l .PD 0 @@ -79,7 +79,7 @@ _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .br .\"O || /* Since glibc 2.12: */ _POSIX_C_SOURCE\ >=\ 200809L -|| /* glibc 2.12 °Ê¹ß: */ _POSIX_C_SOURCE\ >=\ 200809L +|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\ >=\ 200809L .RE .sp .BR ftruncate (): @@ -88,12 +88,12 @@ _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .br .\"O || /* Since glibc 2.3.5: */ _POSIX_C_SOURCE\ >=\ 200112L -|| /* glibc 2.3.5 °Ê¹ß: */ _POSIX_C_SOURCE\ >=\ 200112L +|| /* glibc 2.3.5 以降: */ _POSIX_C_SOURCE\ >=\ 200112L .RE .PD .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR truncate () .\"O and @@ -107,27 +107,27 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O bytes. .\"O If the file previously was larger than this size, the extra data is lost. .BR truncate () -¤Ï +は .I path -¤Ç»ØÄꤵ¤ì¤ë¥Õ¥¡¥¤¥ë¤ò¡¢ +で指定されるファイルを、 .BR ftruncate () -¤Ï +は .I fd -¤Ç»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤ò +で参照されるファイルを .I length -¥Ð¥¤¥È¤ÎŤµ¤Ë¤Ê¤ë¤è¤¦¤Ë±äŤ¹¤ë¡¢¤â¤·¤¯¤ÏÀÚ¤êµÍ¤á¤ë¡£ -¤â¤·ÀÚ¤êµÍ¤á¤ëÁ°¤Î¥Õ¥¡¥¤¥ë¤¬ +バイトの長さになるように延長する、もしくは切り詰める。 +もし切り詰める前のファイルが .I length -¤è¤êŤ±¤ì¤Ð¡¢length ¥Ð¥¤¥È¤ò±Û¤¨¤ëÉôʬ¤Î¥Ç¡¼¥¿¤Ï¼º¤ï¤ì¤ë¡£ +より長ければ、length バイトを越える部分のデータは失われる。 .\"O If the file previously was shorter, it is extended, and .\"O the extended part reads as null bytes (\(aq\\0\(aq). -¤â¤·ÀÚ¤êµÍ¤á¤ëÁ°¤Î¥Õ¥¡¥¤¥ë¤¬ +もし切り詰める前のファイルが .I length -¤è¤êû¤«¤±¤ì¤Ð¡¢¿­Ä¥¤µ¤ì¤ë¡£ -¿­Ä¥¤µ¤ì¤¿Éôʬ¤òÆɤó¤À¾ì¹ç¤Ï NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤ÎÎó¤¬ÊÖ¤µ¤ì¤ë¡£ +より短かければ、伸張される。 +伸張された部分を読んだ場合は NULL バイト (\(aq\\0\(aq) の列が返される。 .LP .\"O The file offset is not changed. -¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +ファイルオフセットは変更されない。 .LP .\"O If the size changed, then the st_ctime and st_mtime fields .\"O (respectively, time of last status change and @@ -135,11 +135,11 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O .BR stat (2)) .\"O for the file are updated, .\"O and the set-user-ID and set-group-ID permission bits may be cleared. -Â礭¤µ¤¬Êѹ¹¤µ¤ì¤ë¤È¡¢¥Õ¥¡¥¤¥ë¤Î st_ctime ¤È st_mtime ¥Õ¥£¡¼¥ë¥É -(¤½¤ì¤¾¤ìºÇ½ª¾õÂÖÊѹ¹»þ¹ï¡¢ºÇ½ª½¤Àµ»þ¹ï; +大きさが変更されると、ファイルの st_ctime と st_mtime フィールド +(それぞれ最終状態変更時刻、最終修正時刻; .BR stat (2) -»²¾È) ¤¬¹¹¿·¤µ¤ì¤ë¡£ -¤Þ¤¿¡¢set-user-ID ¤È set-group-ID ¤Îµö²Ä¥Ó¥Ã¥È¤¬¥¯¥ê¥¢¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +参照) が更新される。 +また、set-user-ID と set-group-ID の許可ビットがクリアされるかもしれない。 .LP .\"O With .\"O .BR ftruncate (), @@ -147,65 +147,65 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O .BR truncate (), .\"O the file must be writable. .BR ftruncate () -¤Î¾ì¹ç¡¢¥Õ¥¡¥¤¥ë¤Ï½ñ¤­¹þ¤ßÍѤ˳«¤¤¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +の場合、ファイルは書き込み用に開いていなければならない。 .BR truncate () -¤Î¾ì¹ç¡¢¥Õ¥¡¥¤¥ë¤Ï½ñ¤­¹þ¤ß²Äǽ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +の場合、ファイルは書き込み可能でなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç 0 ¤¬Ê֤롣¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤¬Ê֤ꡢ +成功した場合 0 が返る。失敗した場合 \-1 が返り、 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤ˽¾¤Ã¤ÆÀßÄꤵ¤ì¤ë¡£ +がエラーの内容に従って設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O For .\"O .BR truncate (): .BR truncate () -¤Ç¤Ï°Ê²¼¤Î¥¨¥é¡¼¥³¡¼¥É¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +では以下のエラーコードが定義されている。 .TP .B EACCES .\"O Search permission is denied for a component of the path prefix, .\"O or the named file is not writable by the user. .\"O (See also .\"O .BR path_resolution (7).) -¥Ñ¥¹¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¸¡º÷µö²Ä¤Î¤Ê¤¤¤â¤Î¤¬¤¢¤ë -(ÌõÃí:x ¥Ó¥Ã¥È¤¬Î©¤Ã¤Æ¤¤¤Ê¤¤)¡£ -¤¢¤ë¤¤¤Ï¡¢»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë½ñ¤­¹þ¤ßµö²Ä¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +パスで指定されているディレクトリに検索許可のないものがある +(訳注:x ビットが立っていない)。 +あるいは、指定されたファイルに対する書き込み許可を持っていない。 .RB ( path_resolution (7) -¤â»²¾È¤Î¤³¤È) +も参照のこと) .TP .B EFAULT .\"O .I Path .\"O points outside the process's allocated address space. .I path -¤¬¥×¥í¥»¥¹¤Ë³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¶õ´Ö³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がプロセスに割り当てられているアドレス空間外を指している。 .TP .B EFBIG .\"O The argument .\"O .I length .\"O is larger than the maximum file size. (XSI) -°ú¤­¿ô +引き数 .I length -¤¬ºÇÂç¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤è¤êÂ礭¤¤¡£(XSI) +が最大ファイルサイズより大きい。(XSI) .TP .B EINTR .\"O A signal was caught during execution. -¼Â¹ÔÃæ¤Ë¥·¥°¥Ê¥ë¤ò¼õ¤±¤¿¡£ +実行中にシグナルを受けた。 .TP .B EINVAL .\"O The argument .\"O .I length .\"O is negative or larger than the maximum file size. -°ú¤­¿ô +引き数 .I length -¤¬Éé¿ô¤Ç¤¢¤ë¤«¡¢ºÇÂç¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤è¤êÂ礭¤¤¡£ +が負数であるか、最大ファイルサイズより大きい。 .TP .B EIO .\"O An I/O error occurred updating the inode. -inode ¤Î¹¹¿·»þ¤Ë I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +inode の更新時に I/O エラーが発生した。 .TP .B EINTR .\"O While blocked waiting to complete, @@ -213,50 +213,50 @@ inode .\"O .BR fcntl (2) .\"O and .\"O .BR signal (7). -´°Î»ÂÔ¤Á¤ÇÄä»ß (block) ¤·¤Æ¤¤¤ë´Ö¤Ë¡¢¸Æ¤Ó½Ð¤·¤¬ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¡£ +完了待ちで停止 (block) している間に、呼び出しが +シグナルハンドラにより割り込まれた。 .BR fcntl (2) -¤È +と .BR signal (7) -¤ò»²¾È¡£ +を参照。 .TP .B EISDIR .\"O The named file is a directory. -»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¡£ +指定されたファイルはディレクトリである。 .TP .B ELOOP .\"O Too many symbolic links were encountered in translating the pathname. -¥Ñ¥¹Ì¾¤ò²ò¼á¤¹¤ëºÝ¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬Â¿¤¹¤®¤¿¡£ +パス名を解釈する際にシンボリックリンクが多すぎた。 .TP .B ENAMETOOLONG .\"O A component of a pathname exceeded 255 characters, .\"O or an entire pathname exceeded 1023 characters. -¥Ñ¥¹Ì¾Ãæ¤Î¥Ç¥£¥ì¥¯¥È¥ê̾¤¬ 255 ʸ»ú¤ò±Û¤¨¤Æ¤¤¤ë¡¢¤â¤·¤¯¤Ï¥Ñ¥¹Ì¾Á´ÂΤ¬ -1023 ʸ»ú¤ò±Û¤¨¤Æ¤¤¤ë¡£ +パス名中のディレクトリ名が 255 文字を越えている、もしくはパス名全体が +1023 文字を越えている。 .TP .B ENOENT .\"O The named file does not exist. -»ØÄꤵ¤ì¤¿Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ +指定された名前のファイルが存在しない。 .TP .B ENOTDIR .\"O A component of the path prefix is not a directory. -¥Ñ¥¹Ì¾Ãæ¤Î¹àÌܤ˥ǥ£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¤â¤Î¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ +パス名中の項目にディレクトリではないものが入っている。 .TP .B EPERM .\" This happens for at least MSDOS and VFAT file systems .\" on kernel 2.6.13 .\"O The underlying file system does not support extending .\"O a file beyond its current size. -²¼Áؤˤ¢¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¸½ºß¤Î¥Õ¥¡¥¤¥ëŤò±Û¤¨¤Æ -¥Õ¥¡¥¤¥ë¤ò¿­Ä¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +下層にあるファイルシステムでは、現在のファイル長を越えて +ファイルを伸長することができない。 .TP .B EROFS .\"O The named file resides on a read-only file system. -»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ÏÆɤ߽Ф·ÀìÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥àÃæ¤Ë¤¢¤ë¡£ +指定されたファイルは読み出し専用のファイルシステム中にある。 .TP .B ETXTBSY .\"O The file is a pure procedure (shared text) file that is being executed. -»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ï¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ +指定されたファイルは実行されているファイルである。 .PP .\"O For .\"O .BR ftruncate () @@ -265,35 +265,35 @@ inode .\"O we now have things that can be wrong with the file descriptor, .\"O .IR fd : .BR ftruncate () -¤Ë¤âƱÍͤΥ¨¥é¡¼¤¬Å¬ÍѤµ¤ì¤ë¡£ -⤷¡¢ +にも同様のエラーが適用される。 +但し、 .I path -¤Ë´Ø¤¹¤ë¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ +に関するエラーの場合は、ファイルディスクリプター .I fd -¤Ë´Ø¤¹¤ë¥¨¥é¡¼¤È¤Ê¤ë¡£ +に関するエラーとなる。 .TP .B EBADF .\"O .I fd .\"O is not a valid descriptor. .I fd -¤¬Ìµ¸ú¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ç¤¢¤ë¡£ +が無効なディスクリプターである。 .TP .\"O .BR EBADF " or " EINVAL -.BR EBADF " ¤Þ¤¿¤Ï " EINVAL +.BR EBADF " または " EINVAL .\"O .I fd .\"O is not open for writing. .I fd -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¤â¤Î¤¬½ñ¤­¹þ¤ß¥â¡¼¥É¤Ç³«¤«¤ì¤Æ¤¤¤Ê¤¤¡£ +で指定されているものが書き込みモードで開かれていない。 .TP .B EINVAL .\"O .I fd .\"O does not reference a regular file. .I fd -¤¬Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£ +が通常のファイルを参照していない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O 4.4BSD, SVr4, POSIX.1-2001 (these calls first appeared in 4.2BSD). -4.4BSD, SVr4, POSIX.1-2001 (¤³¤ì¤é¤Î¥³¡¼¥ë¤Ï 4.2BSD ¤Ç½é¤á¤ÆÅо줷¤¿)¡£ +4.4BSD, SVr4, POSIX.1-2001 (これらのコールは 4.2BSD で初めて登場した)。 .\"O .\" POSIX 1003.1-1996 has .\"O .\" .BR ftruncate (). .\"O .\" POSIX.1-2001 also has @@ -305,21 +305,21 @@ inode .\"O .\" error conditions EMFILE, EMULTIHP, ENFILE, ENOLINK. SVr4 documents for .\"O .\" .BR ftruncate () .\"O .\" an additional EAGAIN error condition. -.\" POSIX 1003.1-1996 ¤Ë¤Ï +.\" POSIX 1003.1-1996 には .\" .BR ftruncate () -.\" ¤¬¤¢¤ë¡£ -.\" POSIX.1-2001 ¤Ë¤Ï -.\" XSI ³ÈÄ¥¤È¤·¤Æ +.\" がある。 +.\" POSIX.1-2001 には +.\" XSI 拡張として .\" .BR truncate () -.\" ¤â¤¢¤ë¡£ +.\" もある。 .\" .LP -.\" SVr4 ¤Ë¤Ï¾¤Î¥¨¥é¡¼¥³¡¼¥É¤È¤·¤Æ¡¢ +.\" SVr4 には他のエラーコードとして、 .\" .BR truncate () -.\" ¤Ë¤Ï EMFILE, EMULTIHP, ENFILE, ENOLINK ¤¬¡¢ +.\" には EMFILE, EMULTIHP, ENFILE, ENOLINK が、 .\" .BR ftruncate () -.\" ¤Ë¤Ï EAGAIN ¤¬¤½¤ì¤¾¤ìµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +.\" には EAGAIN がそれぞれ記述されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The above description is for XSI-compliant systems. .\"O For non-XSI-compliant systems, the POSIX standard allows .\"O two behaviors for @@ -331,15 +331,15 @@ inode .\"O .BR truncate () .\"O is not specified at all in such an environment): .\"O either returning an error, or extending the file. -¾åµ­¤Îµ­½Ò¤Ï XSI ½àµò¤Î¥·¥¹¥Æ¥à¤Î¤â¤Î¤Ç¤¢¤ë¡£ -XSI Èó½àµò¤Î¥·¥¹¥Æ¥à¤Î¾ì¹ç¡¢POSIX ɸ½à¤Ï +上記の記述は XSI 準拠のシステムのものである。 +XSI 非準拠のシステムの場合、POSIX 標準は .BR ftruncate () -¤ËÂФ·¤Æ +に対して .I length -¤¬¥Õ¥¡¥¤¥ë¤ÎŤµ¤è¤êŤ«¤Ã¤¿¾ì¹ç¡¢ -¥¨¥é¡¼¤òÊÖ¤¹¤«¥Õ¥¡¥¤¥ë¤ò¿­Ä¥¤¹¤ë¤«¤ÎÆó¤Ä¤ÎÆ°ºî¤òµöÍƤ·¤Æ¤¤¤ë¡£ +がファイルの長さより長かった場合、 +エラーを返すかファイルを伸張するかの二つの動作を許容している。 .BR truncate () -¤ËÂФ·¤Æ¤ÏÁ´¤¯µ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +に対しては全く規定されていない。 .\"O Like most UNIX implementations, Linux follows the XSI requirement .\"O when dealing with native file systems. .\"O However, some nonnative file systems do not permit @@ -348,17 +348,17 @@ XSI .\"O .BR ftruncate () .\"O to be used to extend a file beyond its current length: .\"O a notable example on Linux is VFAT. -¤Û¤È¤ó¤É¤Î UNIX ¼ÂÁõ¤ÈƱÍÍ¡¢Linux ¤Ï¥Í¥¤¥Æ¥£¥Ö (Linux ͳÍè) ¤Î -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î°·¤¤¤Ç¤Ï XSI Í×µá»ÅÍͤˤ·¤¿¤¬¤Ã¤Æ¤¤¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢¤¤¤¯¤Ä¤«¤ÎÈó¥Í¥¤¥Æ¥£¥Ö¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +ほとんどの UNIX 実装と同様、Linux はネイティブ (Linux 由来) の +ファイルシステムの扱いでは XSI 要求仕様にしたがっている。 +しかしながら、いくつかの非ネイティブのファイルシステムでは、 .BR truncate () -¤ä +や .BR ftruncate () -¤ò»È¤Ã¤Æ¸½ºß¤Î¥Õ¥¡¥¤¥ëŤò±Û¤¨¤Æ¥Õ¥¡¥¤¥ë¤ò¿­Ä¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ -Linux ¤Ç¤Îͭ̾¤ÊÎã¤È¤·¤Æ¤Ï VFAT ¤¬¤¢¤ë¡£ +を使って現在のファイル長を越えてファイルを伸長することができない。 +Linux での有名な例としては VFAT がある。 .\"O .\" At the very least: OSF/1, Solaris 7, and FreeBSD conform, mtk, Jan 2002 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O A header file bug in glibc 2.12 meant that the minimum value of .\"O .\" http://sourceware.org/bugzilla/show_bug.cgi?id=12037 .\"O .BR _POSIX_C_SOURCE @@ -366,14 +366,14 @@ Linux .\"O .BR ftruncate () .\"O was 200809L instead of 200112L. .\"O This has been fixed in later glibc versions. -glibc 2.12 ¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ë¤Ï¥Ð¥°¤¬¤¢¤ê¡¢ +glibc 2.12 のヘッダファイルにはバグがあり、 .BR ftruncate () -¤ÎÀë¸À¤ò¸ø³«¤¹¤ë¤Î¤ËɬÍ×¤Ê +の宣言を公開するのに必要な .B _POSIX_C_SOURCE -¤ÎºÇ¾®Ãͤ¬ 200112L ¤Ç¤Ï¤Ê¤¯ 200809L ¤È¤Ê¤Ã¤Æ¤¤¤¿¡£ -¤³¤Î¥Ð¥°¤Ï¡¢¤³¤ì°Ê¹ß¤Î¥Ð¡¼¥¸¥ç¥ó¤Î glibc ¤Ç¤Ï½¤Àµ¤µ¤ì¤Æ¤¤¤ë¡£ +の最小値が 200112L ではなく 200809L となっていた。 +このバグは、これ以降のバージョンの glibc では修正されている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR open (2), .BR stat (2), .BR path_resolution (7) diff --git a/draft/man2/umask.2 b/draft/man2/umask.2 index 1339b4db..7cf17fbe 100644 --- a/draft/man2/umask.2 +++ b/draft/man2/umask.2 @@ -42,18 +42,18 @@ .\" .TH UMASK 2 2008-01-09 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O umask \- set file mode creation mask -umask \- ¥Õ¥¡¥¤¥ë¥â¡¼¥ÉºîÀ®¥Þ¥¹¥¯¤òÀßÄꤹ¤ë +umask \- ファイルモード作成マスクを設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include .sp .BI "mode_t umask(mode_t " mask ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR umask () .\"O sets the calling process's file mode creation mask (umask) to .\"O .I mask @@ -61,12 +61,12 @@ umask \- .\"O .I mask .\"O are used), and returns the previous value of the mask. .BR umask () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¥â¡¼¥ÉºîÀ®¥Þ¥¹¥¯ (umask) ¤ò +は、呼び出し元プロセスのファイルモード作成マスク (umask) を .I mask -& 0777 ¤ËÀßÄꤷ +& 0777 に設定し .RI ( umask -¤Î¥Õ¥¡¥¤¥ëµö²Ä¤ËÂбþ¤¹¤ë¥Ó¥Ã¥È¤Î¤ß¤ò»ÈÍѤ¹¤ë)¡¢ -Êѹ¹Á°¤Î¥Þ¥¹¥¯ÃͤòÊÖ¤¹¡£ +のファイル許可に対応するビットのみを使用する)、 +変更前のマスク値を返す。 .\"O The umask is used by .\"O .BR open (2), @@ -75,33 +75,33 @@ umask \- .\"O .\" e.g., mkfifo(), creat(), mknod(), sem_open(), mq_open(), shm_open() .\"O .\" but NOT the System V IPC *get() calls .\"O to modify the permissions placed on newly created files or directories. -umask ¤Ï¡¢ +umask は、 .BR open (2), .BR mkdir (2) -¤ä¥Õ¥¡¥¤¥ëºîÀ®¤ò¹Ô¤¦¤½¤Î¾¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¡¢ -.\" Î㤨¤Ð mkfifo(), creat(), mknod(), sem_open(), mq_open(), shm_open() -.\" System V IPC *get() ¥³¡¼¥ë¤Ï³ºÅö¤·¤Ê¤¤¡£ -¿·¤·¤¯ºîÀ®¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥ì¥¯¥È¥ê¤Îµö²Ä (permission) ¤ò -½¤Àµ¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ +やファイル作成を行うその他のシステムコールで、 +.\" 例えば mkfifo(), creat(), mknod(), sem_open(), mq_open(), shm_open() +.\" System V IPC *get() コールは該当しない。 +新しく作成されるファイルやディレクトリの許可 (permission) を +修正するために使用される。 .\"O Specifically, permissions in the umask are turned off from .\"O the \fImode\fP argument to .\"O .BR open (2) .\"O and .\"O .BR mkdir (2). -¶ñÂÎŪ¤Ë¤Ï umask ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ëµö²Ä¤¬ +具体的には umask に設定されている許可が .BR open (2) -¤ä +や .BR mkdir (2) -¤Î \fImode\fP °ú¤­¿ô¤«¤é¼è¤ê¾Ã¤µ¤ì¤ë¡£ +の \fImode\fP 引き数から取り消される。 .\"O The constants that should be used to specify .\"O .I mask .\"O are described under .\"O .BR stat (2). .I mask -¤Ë»ØÄꤹ¤ë¤Î¤Ë»ÈÍѤ¹¤Ù¤­Äê¿ô¤Ë¤Ä¤¤¤Æ¤Ï +に指定するのに使用すべき定数については .BR stat (2) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡£ +で説明されている。 .\"O The typical default value for the process umask is .\"O .I S_IWGRP\ |\ S_IWOTH @@ -111,19 +111,19 @@ umask .\"O argument to .\"O .BR open (2) .\"O is specified as: -¥×¥í¥»¥¹¤Î umask ¤Î¤è¤¯¤¢¤ë¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï +プロセスの umask のよくあるデフォルト値は .I S_IWGRP\ |\ S_IWOTH -(8¿Ê¤Ç 022) ¤Ç¤¢¤ë¡£ -¿·¤·¤¤¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ëºÝ¤Ë +(8進で 022) である。 +新しいファイルを作成する際に .BR open (2) -¤Î +の .I mode -°ú¤­¿ô¤Ë +引き数に .nf S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH .fi -¤ò»ØÄꤹ¤ë¤È¤¤¤¦¤è¤¯¤¢¤ë¥±¡¼¥¹¤Ç¤Ï¡¢ºîÀ®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ï +を指定するというよくあるケースでは、作成されたファイルは .\"O (octal 0666) when creating a new file, the permissions on the .\"O resulting file will be: .nf @@ -132,27 +132,27 @@ umask .fi .\"O (because 0666 & ~022 = 0644; i.e., rw\-r\-\-r\-\-). -¤È¤¤¤¦µö²Ä¤ò»ý¤Ä¤³¤È¤Ë¤Ê¤ë -(¤Ê¤¼¤Ê¤é 0666 & ~022 = 0644¡¢¤Ä¤Þ¤ê rw\-r\-\-r\-\-)¡£ +という許可を持つことになる +(なぜなら 0666 & ~022 = 0644、つまり rw\-r\-\-r\-\-)。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O This system call always succeeds and the previous value of the mask .\"O is returned. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ïɬ¤ºÀ®¸ù¤·¡¢°ÊÁ°¤Î umask ÃͤòÊÖ¤¹¡£ +このシステムコールは必ず成功し、以前の umask 値を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O A child process created via .\"O .BR fork (2) .\"O inherits its parent's umask. .\"O The umask is left unchanged by .\"O .BR execve (2). .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢¿Æ¥×¥í¥»¥¹¤Î umask ¤ò·Ñ¾µ¤¹¤ë¡£ +で作成された子プロセスは、親プロセスの umask を継承する。 .BR execve (2) -¤Ë¤è¤Ã¤Æ umask ¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +によって umask は変更されない。 .\"O The umask setting also affects the permissions assigned to POSIX IPC objects .\"O .RB ( mq_open (3), @@ -168,23 +168,23 @@ SVr4, 4.3BSD, POSIX.1-2001. .\"O .BR msgget (2), .\"O .BR semget (2), .\"O .BR shmget (2)). -umask ¤ÎÀßÄê¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤¬À¸À®¤¹¤ë POSIX IPC ¥ª¥Ö¥¸¥§¥¯¥È +umask の設定は、そのプロセスが生成する POSIX IPC オブジェクト .RB ( mq_open (3), .BR sem_open (3), .BR shm_open (3)) -¤ä FIFO -.RB ( mkfifo (3))¡¢ -UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È +や FIFO +.RB ( mkfifo (3))、 +UNIX ドメインソケット .RB ( unix (7)) -¤ËÀßÄꤵ¤ì¤ëµö²Ä¤Ë¤â±Æ¶Á¤òÍ¿¤¨¤ë¡£ -°ìÊý¡¢umask ¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤¬ +に設定される許可にも影響を与える。 +一方、umask は、そのプロセスが .RB ( msgget (2), .BR semget (2), .BR shmget (2) -¤ò»È¤Ã¤Æ) À¸À®¤¹¤ë System V IPC ¥ª¥Ö¥¸¥§¥¯¥È¤ËÀßÄꤵ¤ì¤ëµö²Ä¤Ë¤Ï -±Æ¶Á¤òÍ¿¤¨¤Ê¤¤¡£ +を使って) 生成する System V IPC オブジェクトに設定される許可には +影響を与えない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chmod (2), .BR mkdir (2), .BR open (2), diff --git a/draft/man2/umount.2 b/draft/man2/umount.2 index 3957efc9..72f2b189 100644 --- a/draft/man2/umount.2 +++ b/draft/man2/umount.2 @@ -33,11 +33,11 @@ .\" .TH UMOUNT 2 2009-09-03 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O umount, umount2 \- unmount file system -umount, umount2 \- ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥¢¥ó¥Þ¥¦¥ó¥È¤¹¤ë +umount, umount2 \- ファイルシステムをアンマウントする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B "#include " .sp @@ -46,18 +46,18 @@ umount, umount2 \- .BI "int umount2(const char *" target ", int " flags ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR umount () .\"O and .\"O .BR umount2 () .\"O remove the attachment of the (topmost) file system mounted on .\"O .IR target . .BR umount () -¤È +と .BR umount2 () -¤Ï +は .I target -¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë (ºÇ¾å°Ì¤Î) ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò³°¤¹¡£ +にマウントされている (最上位の) ファイルシステムを外す。 .\" Note: the kernel naming differs from the glibc naming .\" umount2 is the glibc name for what the kernel now calls umount .\" and umount is the glibc name for oldumount @@ -65,10 +65,10 @@ umount, umount2 \- .\"O Appropriate privilege (Linux: the .\"O .B CAP_SYS_ADMIN .\"O capability) is required to unmount file systems. -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥¢¥ó¥Þ¥¦¥ó¥È¤ò¹Ô¤¦¤Ë¤Ï¡¢ -ŬÀڤʸ¢¸Â (Linux ¤Ç¤Ï +ファイルシステムのアンマウントを行うには、 +適切な権限 (Linux では .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティ) が必要である。 .\"O Linux 2.1.116 added the .\"O .BR umount2 () @@ -77,93 +77,93 @@ umount, umount2 \- .\"O unmounts a target, but allows additional .\"O .I flags .\"O controlling the behavior of the operation: -Linux 2.1.116 ¤«¤é¡¢ +Linux 2.1.116 から、 .BR umount2 () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Äɲ䵤줿¡£¤³¤ì¤Ï +システムコールが追加された。これは .BR umount () -¤ÈƱÍÍ¤Ë +と同様に .I target -¤ò¥¢¥ó¥Þ¥¦¥ó¥È¤¹¤ë¤¬¡¢ +をアンマウントするが、 .I flags -¤¬Äɲ䵤ì¤Æ¤ª¤ê¡¢Áàºî»þ¤Î¿¶¤ëÉñ¤¤¤òÀ©¸æ¤Ç¤­¤ë¡£ +が追加されており、操作時の振る舞いを制御できる。 .TP .\"O .BR MNT_FORCE " (since Linux 2.1.116)" -.BR MNT_FORCE " (2.1.116 °Ê¹ß)" +.BR MNT_FORCE " (2.1.116 以降)" .\"O Force unmount even if busy. .\"O This can cause data loss. .\"O (Only for NFS mounts.) -»ÈÍÑÃæ (busy) ¤Ç¤â¶¯À©Åª¤Ë¥¢¥ó¥Þ¥¦¥ó¥È¤ò¼Â¹Ô¤¹¤ë¡£ -¤³¤ì¤ò¹Ô¤¦¤È¥Ç¡¼¥¿¤ò¼º¤¦²ÄǽÀ­¤¬¤¢¤ë¡£ -(NFS ¥Þ¥¦¥ó¥ÈÀìÍÑ) +使用中 (busy) でも強制的にアンマウントを実行する。 +これを行うとデータを失う可能性がある。 +(NFS マウント専用) .TP .\"O .BR MNT_DETACH " (since Linux 2.4.11)" -.BR MNT_DETACH " (2.4.11 °Ê¹ß)" +.BR MNT_DETACH " (2.4.11 以降)" .\"O Perform a lazy unmount: make the mount point unavailable for .\"O new accesses, and actually perform the unmount when the mount point .\"O ceases to be busy. -Ãٱ䥢¥ó¥Þ¥¦¥ó¥È¤ò¹Ô¤¦¡£¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ËÂФ¹¤ë¿·µ¬¤Î¥¢¥¯¥»¥¹¤Ï -ÉÔ²Äǽ¤È¤Ê¤ê¡¢¼ÂºÝ¤Î¥¢¥ó¥Þ¥¦¥ó¥È¤Ï¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤¬¥Ó¥¸¡¼¤Ç -¤Ê¤¯¤Ê¤Ã¤¿»þÅÀ¤Ç¹Ô¤¦¡£ +遅延アンマウントを行う。マウントポイントに対する新規のアクセスは +不可能となり、実際のアンマウントはマウントポイントがビジーで +なくなった時点で行う。 .TP .\"O .BR MNT_EXPIRE " (since Linux 2.6.8)" -.BR MNT_EXPIRE " (Linux 2.6.8 °Ê¹ß)" +.BR MNT_EXPIRE " (Linux 2.6.8 以降)" .\"O Mark the mount point as expired. -¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ë´ü¸ÂÀÚ¤ì¤Î°õ¤ò¤Ä¤±¤ë¡£ +マウントポイントに期限切れの印をつける。 .\"O If a mount point is not currently in use, then an initial call to .\"O .BR umount2 () .\"O with this flag fails with the error .\"O .BR EAGAIN , .\"O but marks the mount point as expired. -¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤¬¸½ºß»ÈÍÑÃæ¤Ç¤Ê¤¤¾ì¹ç¡¢¤³¤Î¥Õ¥é¥°¤ò¤Ä¤±¤Æ +マウントポイントが現在使用中でない場合、このフラグをつけて .BR umount2 () -¤ò½é¤á¤Æ¸Æ¤Ó½Ð¤¹¤È +を初めて呼び出すと .B EAGAIN -¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë¤¬¡¢¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ë¤Ï´ü¸ÂÀÚ¤ì (expire) -¤Î°õ¤¬¤Ä¤±¤é¤ì¤ë¡£ +エラーで失敗するが、マウントポイントには期限切れ (expire) +の印がつけられる。 .\"O The mount point remains expired as long as it isn't accessed .\"O by any process. -¤½¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ï¤¤¤º¤ì¤«¤Î¥×¥í¥»¥¹¤¬¥¢¥¯¥»¥¹¤·¤Ê¤¤¸Â¤ê -´ü¸ÂÀÚ¤ì¤Î°õ¤¬¤Ä¤¤¤¿¤Þ¤Þ¤È¤Ê¤ë¡£ +そのマウントポイントはいずれかのプロセスがアクセスしない限り +期限切れの印がついたままとなる。 .\"O A second .\"O .BR umount2 () .\"O call specifying .\"O .B MNT_EXPIRE .\"O unmounts an expired mount point. -¤â¤¦°ìÅÙ +もう一度 .B MNT_EXPIRE -¤ò¤Ä¤±¤Æ +をつけて .BR umount2 () -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢´ü¸ÂÀÚ¤ì¤Î°õ¤Î¤Ä¤¤¤¿¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤¬ -¥¢¥ó¥Þ¥¦¥ó¥È¤µ¤ì¤ë¡£ +を呼び出すと、期限切れの印のついたマウントポイントが +アンマウントされる。 .\"O This flag cannot be specified with either .\"O .B MNT_FORCE .\"O or .\"O .BR MNT_DETACH . -¤³¤Î¥Õ¥é¥°¤ò +このフラグを .B MNT_FORCE -¤â¤·¤¯¤Ï +もしくは .B MNT_DETACH -¤ÈƱ»þ¤Ë»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +と同時に指定することはできない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç 0 ¤¬Ê֤롣 -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬Ê֤ꡢ +成功した場合 0 が返る。 +エラーの場合、\-1 が返り、 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤˤ·¤¿¤¬¤Ã¤ÆÀßÄꤵ¤ì¤ë¡£ +がエラーの内容にしたがって設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O The error values given below result from filesystem type independent .\"O errors. .\"O Each filesystem type may have its own special errors and its .\"O own special behavior. .\"O See the kernel source code for details. -°Ê²¼¤Ë¼¨¤¹¥¨¥é¡¼¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë°Í¸¤·¤Ê¤¤¤â¤Î¤Ç¤¢¤ë¡£ -¤½¤ì¤¾¤ì¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¿¥¤¥×¤Ë¤Ï¸ÇÍ­¤Î¥¨¥é¡¼¤¬Â¸ºß¤¹¤ë¾ì¹ç¤¬¤¢¤ê¡¢ -Æȼ«¤ÎÆ°ºî¤ò¤¹¤ë¤³¤È¤â¤¢¤ë¡£¾Ü¤·¤¯¤Ï¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹¤ò¸«¤ÆÍߤ·¤¤¡£ +以下に示すエラーは、ファイルシステムに依存しないものである。 +それぞれのファイルシステムタイプには固有のエラーが存在する場合があり、 +独自の動作をすることもある。詳しくはカーネルのソースを見て欲しい。 .TP .B EAGAIN .\"O A call to @@ -172,23 +172,23 @@ Linux 2.1.116 .\"O .B MNT_EXPIRE .\"O successfully marked an unbusy file system as expired. .B MNT_EXPIRE -¤ò»ØÄꤷ¤¿ +を指定した .BR umount2 () -¤Î¸Æ¤Ó½Ð¤·¤Ç¡¢Àµ¾ï¤Ë̤»ÈÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë´ü¸ÂÀÚ¤ì¤Î°õ¤ò -¤Ä¤±¤ë¤³¤È¤¬¤Ç¤­¤¿¡£ +の呼び出しで、正常に未使用のファイルシステムに期限切れの印を +つけることができた。 .TP .B EBUSY .\"O .I target .\"O could not be unmounted because it is busy. -»ÈÍÑÃæ (busy) ¤Î¤¿¤á¡¢ +使用中 (busy) のため、 .I target -¤ò¥¢¥ó¥Þ¥¦¥ó¥È¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +をアンマウントできなかった。 .TP .B EFAULT .\"O .I target .\"O points outside the user address space. .I target -¤¬¥æ¡¼¥¶¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がユーザアドレス空間の外を指している。 .TP .B EINVAL .\"O .I target @@ -202,80 +202,80 @@ Linux 2.1.116 .\"O or .\"O .BR MNT_FORCE . .I target -¤¬¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ç¤Ï¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢ +がマウントポイントではない。 +または、 .BR umount2 () -¤Ç¡¢ +で、 .B MNT_EXPIRE -¤¬»ØÄꤵ¤ì¤¿ +が指定された .BR umount2 () -¤Ç¡¢ +で、 .B MNT_DETACH -¤« +か .B MNT_FORCE -¤¬Æ±»þ¤Ë»ØÄꤵ¤ì¤¿¡£ +が同時に指定された。 .TP .B ENAMETOOLONG .\"O A pathname was longer than .\"O .BR MAXPATHLEN . -¥Ñ¥¹Ì¾¤ÎŤµ¤¬ +パス名の長さが .B MAXPATHLEN -¤è¤êŤ«¤Ã¤¿¡£ +より長かった。 .TP .B ENOENT .\"O A pathname was empty or had a nonexistent component. -¥Ñ¥¹Ì¾¤¬¶õ¤Ç¤¢¤ë¡£¤â¤·¤¯¤Ï»ØÄꤵ¤ì¤¿¥Ñ¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£ +パス名が空である。もしくは指定されたパスが存在しない。 .TP .B ENOMEM .\"O The kernel could not allocate a free page to copy filenames or data into. -¥«¡¼¥Í¥ë¤¬¥Õ¥¡¥¤¥ë̾¤ä¥Ç¡¼¥¿¤ò¥³¥Ô¡¼¤¹¤ë¤¿¤á¤Î¶õ¤­¥Ú¡¼¥¸¤ò³ÎÊݤǤ­¤Ê¤«¤Ã¤¿¡£ +カーネルがファイル名やデータをコピーするための空きページを確保できなかった。 .TP .B EPERM .\"O The caller does not have the required privileges. -¸Æ¤Ó½Ð¤·¸µ¤¬É¬Íפʸ¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +呼び出し元が必要な権限を持っていない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR MNT_DETACH .\"O and .\"O .BR MNT_EXPIRE .\" http://sourceware.org/bugzilla/show_bug.cgi?id=10092 .\"O are only available in glibc since version 2.11. .BR MNT_DETACH -¤È +と .BR MNT_EXPIRE -¤Ï¥Ð¡¼¥¸¥ç¥ó 2.11 °Ê¹ß¤Î glibc ¤Ç¤Î¤ßÍøÍѤǤ­¤ë¡£ +はバージョン 2.11 以降の glibc でのみ利用できる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These functions are Linux-specific and should not be used in .\"O programs intended to be portable. -¤³¤Î´Ø¿ô¤Ï Linux ¸ÇÍ­¤Î´Ø¿ô¤Ç¤¢¤ê¡¢°Ü¿¢¤ò¹Íθ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï -»ÈÍѤ¹¤Ù¤­¤Ç¤Ê¤¤¡£ +この関数は Linux 固有の関数であり、移植を考慮したプログラムでは +使用すべきでない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The original .\"O .BR umount () .\"O function was called as \fIumount(device)\fP and would return .\"O .B ENOTBLK .\"O when called with something other than a block device. -¸µ¡¹¤Î +元々の .BR umount () -´Ø¿ô¤Ï \fIumount(device)\fP ¤Î·Á¤Ç¸Æ¤Ó½Ð¤µ¤ì¡¢ -¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹°Ê³°¤ò»ØÄꤷ¤Æ¸Æ¤Ó½Ð¤¹¤È +関数は \fIumount(device)\fP の形で呼び出され、 +ブロックデバイス以外を指定して呼び出すと .B ENOTBLK -¤òÊÖ¤·¤¿¡£ +を返した。 .\"O In Linux 0.98p4 a call \fIumount(dir)\fP was added, in order to .\"O support anonymous devices. -Linux 0.98p4 ¤Ç¡¢ÌµÌ¾¥Ç¥Ð¥¤¥¹ (anonymous device) ¤ËÂбþ¤¹¤ë¤¿¤á¤Ë -\fIumount(dir)\fP ¤Î·Á¤Ç¤Î¸Æ¤Ó½Ð¤·¤¬²Ã¤¨¤é¤ì¤¿¡£ +Linux 0.98p4 で、無名デバイス (anonymous device) に対応するために +\fIumount(dir)\fP の形での呼び出しが加えられた。 .\"O In Linux 2.3.99-pre7 the call \fIumount(device)\fP was removed, .\"O leaving only \fIumount(dir)\fP (since now devices can be mounted .\"O in more than one place, so specifying the device does not suffice). -Linux 2.3.99-pre7 ¤Ç¡¢\fIumount(device)\fP ¤Ïºï½ü¤µ¤ì¡¢ -\fIumount(dir)\fP ¤À¤±¤¬»Ä¤µ¤ì¤¿ -(°ì¤Ä¤Î¥Ç¥Ð¥¤¥¹¤òÊ£¿ô¤Î°ÌÃ֤˥ޥ¦¥ó¥È½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤¿¤á¡¢ -¥Ç¥Ð¥¤¥¹¤ò»ØÄꤷ¤¿¤À¤±¤Ç¤ÏÉÔ½½Ê¬¤À¤«¤é¤Ç¤¢¤ë)¡£ +Linux 2.3.99-pre7 で、\fIumount(device)\fP は削除され、 +\fIumount(dir)\fP だけが残された +(一つのデバイスを複数の位置にマウント出来るようになったため、 +デバイスを指定しただけでは不十分だからである)。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mount (2), .BR path_resolution (7), .BR mount (8), diff --git a/draft/man2/uname.2 b/draft/man2/uname.2 index e1788d7f..ea248be3 100644 --- a/draft/man2/uname.2 +++ b/draft/man2/uname.2 @@ -32,31 +32,31 @@ .\" .TH UNAME 2 2008-12-03 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O uname \- get name and information about current kernel -uname \- ¸½ºß²ÔƯÃæ¤Î¥«¡¼¥Í¥ë¤Ë¤Ä¤¤¤Æ¤Î̾Á°¤È¾ðÊó¤òÆÀ¤ë +uname \- 現在稼働中のカーネルについての名前と情報を得る .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int uname(struct utsname *" buf ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR uname () .\"O returns system information in the structure pointed to by .\"O .IR buf . .BR uname () -¤Ï +は .I buf -¤Ç»Ø¤µ¤ì¤ë¹½Â¤ÂΤ˥·¥¹¥Æ¥à¾ðÊó¤òÊÖ¤¹¡£ +で指される構造体にシステム情報を返す。 .\"O The .\"O .I utsname .\"O struct is defined in .\"O .IR : .I utsname -¹½Â¤ÂÎ¤Ï +構造体は .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で以下のように定義されている。 .in +4n .nf @@ -67,15 +67,15 @@ struct utsname { .\"O char release[]; /* OS release (e.g., "2.6.28") */ .\"O char version[]; /* OS version */ .\"O char machine[]; /* Hardware identifier */ - char sysname[]; /* OS ¤Î̾Á° (Îã: "Linux") */ - char nodename[]; /* ¡Ö¼ÂÁõ»þ¤ËÄêµÁ¤µ¤ì¤¿¡¢²¿¤é¤«¤Î - ¥Í¥Ã¥È¥ï¡¼¥¯¡×¤Ë¤ª¤±¤ë¥Þ¥·¥ó̾ */ - char release[]; /* OS ¤Î¥ê¥ê¡¼¥¹ (Îã: "2.6.28") */ - char version[]; /* OS ¤Î¥Ð¡¼¥¸¥ç¥ó */ - char machine[]; /* ¥Ï¡¼¥É¥¦¥§¥¢¼±ÊÌ»Ò */ + char sysname[]; /* OS の名前 (例: "Linux") */ + char nodename[]; /* 「実装時に定義された、何らかの + ネットワーク」におけるマシン名 */ + char release[]; /* OS のリリース (例: "2.6.28") */ + char version[]; /* OS のバージョン */ + char machine[]; /* ハードウェア識別子 */ #ifdef _GNU_SOURCE .\"O char domainname[]; /* NIS or YP domain name */ - char domainname[]; /* NIS ¤ä YP ¤Î¥É¥á¥¤¥ó̾ */ + char domainname[]; /* NIS や YP のドメイン名 */ #endif }; @@ -86,50 +86,50 @@ struct utsname { .\"O is unspecified (see NOTES); .\"O the fields are terminated by a null byte (\(aq\\0\(aq). .I struct utsname -¤Ë¤¢¤ëÇÛÎó¤ÎŤµ¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤ (¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È)¡£ -¥Õ¥£¡¼¥ë¥É¤Ï NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Ç½ªÃ¼¤µ¤ì¤ë¡£ +にある配列の長さは指定されていない (「注意」の節を参照)。 +フィールドは NULL バイト (\(aq\\0\(aq) で終端される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç 0 ¤¬Ê֤롣¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤¬Ê֤ꡢ +成功した場合 0 が返る。失敗した場合 \-1 が返り、 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤ˽¾¤Ã¤ÆÀßÄꤵ¤ì¤ë¡£ +がエラーの内容に従って設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O .I buf .\"O is not valid. .I buf -¤¬Í­¸ú¤Ç¤Ê¤¤¡£ +が有効でない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001. .\"O There is no .\"O .BR uname () .\"O call in 4.3BSD. -4.3BSD ¤Ë¤Ï +4.3BSD には .BR uname () -¥³¡¼¥ë¤¬¤Ê¤¤¡£ +コールがない。 .PP .\"O The .\"O .I domainname .\"O member (the NIS or YP domain name) is a GNU extension. .I domainname -¥á¥ó¥Ð¡¼ (NIS ¤Þ¤¿¤Ï YP ¥É¥á¥¤¥ó̾) ¤Ï GNU ¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ +メンバー (NIS または YP ドメイン名) は GNU の拡張である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O This is a system call, and the operating system presumably knows .\"O its name, release and version. .\"O It also knows what hardware it runs on. .\"O So, four of the fields of the struct are meaningful. -¤³¤ì¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤¢¤ê¡¢OS ¤Ï̾Á°¡¦¥ê¥ê¡¼¥¹¡¦¥Ð¡¼¥¸¥ç¥ó¤Ê¤É¤ò -¤¿¤Ö¤óʬ¤«¤Ã¤Æ¤¤¤ë¤À¤í¤¦¡£ -¤µ¤é¤Ë¤½¤ì¤¬²ÔƯ¤·¤Æ¤¤¤ë¥Ï¡¼¥É¥¦¥§¥¢¤âʬ¤«¤Ã¤Æ¤¤¤ë¤À¤í¤¦¡£ -¤è¤Ã¤Æ¹½Â¤ÂΤΠ4 ¤Ä¤Î¥Õ¥£¡¼¥ë¥É¤Ë¤Ï°ÕÌ£¤¬¤¢¤ë¡£ +これはシステムコールであり、OS は名前・リリース・バージョンなどを +たぶん分かっているだろう。 +さらにそれが稼働しているハードウェアも分かっているだろう。 +よって構造体の 4 つのフィールドには意味がある。 .\"O On the other hand, the field \fInodename\fP is meaningless: .\"O it gives the name of the present machine in some undefined .\"O network, but typically machines are in more than one network @@ -137,41 +137,41 @@ SVr4, POSIX.1-2001. .\"O Moreover, the kernel has no way of knowing .\"O about such things, so it has to be told what to answer here. .\"O The same holds for the additional \fIdomainname\fP field. -°ìÊý¡¢\fInodename\fP ¥Õ¥£¡¼¥ë¥É¤Ë¤Ï°ÕÌ£¤¬¤Ê¤¤: -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¸½ºß¤Î¥Þ¥·¥ó¤Î (ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤) -¤É¤³¤«¤Î¥Í¥Ã¥È¥ï¡¼¥¯¤Ë¤ª¤±¤ë̾Á°¤òÍ¿¤¨¤ë¤¬¡¢ -Ä̾ï¥Þ¥·¥ó¤ÏÊ£¿ô¤Î¥Í¥Ã¥È¥ï¡¼¥¯¤Ë°¤·¡¢Ê£¿ô¤Î̾Á°¤ò»ý¤Ä¡£ -¤µ¤é¤Ë¡¢¥«¡¼¥Í¥ë¤Ï¤³¤Î¤è¤¦¤Ê¾ðÊó¤òÃΤë½Ñ¤ò»ý¤¿¤Ê¤¤¤Î¤Ç¡¢ -¤³¤³¤Ç¤ÎÅú¤¨¤ÏÁ°¤â¤Ã¤Æ¶µ¤¨¤Æ¤ä¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ì¤ÏÄɲåե£¡¼¥ë¥É¤Ç¤¢¤ë \fIdomainname\fP ¤Ë¤Ä¤¤¤Æ¤âƱÍͤǤ¢¤ë¡£ +一方、\fInodename\fP フィールドには意味がない: +このフィールドは現在のマシンの (定義されていない) +どこかのネットワークにおける名前を与えるが、 +通常マシンは複数のネットワークに属し、複数の名前を持つ。 +さらに、カーネルはこのような情報を知る術を持たないので、 +ここでの答えは前もって教えてやらなければならない。 +これは追加フィールドである \fIdomainname\fP についても同様である。 .LP .\"O To this end Linux uses the system calls .\"O .BR sethostname (2) .\"O and .\"O .BR setdomainname (2). -¤³¤Î¤¿¤á Linux ¤Ç¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë +このため Linux ではシステムコール .BR sethostname (2) -¤È +と .BR setdomainname (2) -¤¬»È¤ï¤ì¤ë¡£ +が使われる。 .\"O Note that there is no standard that says that the hostname set by .\"O .BR sethostname (2) .\"O is the same string as the \fInodename\fP field of the struct returned by .\"O .BR uname () -.RB ¡Ö sethostname (2) -¤ÇÀßÄꤵ¤ì¤ë¥Û¥¹¥È̾¤Ï¡¢ +.RB 「 sethostname (2) +で設定されるホスト名は、 .BR uname () -¤ÇÊÖ¤µ¤ì¤ë¹½Â¤ÂΤΠ\fInodename\fP ¥Õ¥£¡¼¥ë¥É¤ÈƱ¤¸Ê¸»úÎó¤Ç¤¢¤ë¡× -¤Èµ¬Äꤷ¤Æ¤¤¤ëɸ½àµ¬³Ê¤Ï¤Ê¤¤ +で返される構造体の \fInodename\fP フィールドと同じ文字列である」 +と規定している標準規格はない .\"O (indeed, some systems allow a 256-byte hostname and an 8-byte nodename), .\"O but this is true on Linux. .\"O The same holds for .\"O .BR setdomainname (2) .\"O and the \fIdomainname\fP field. -(¼ÂºÝ¡¢256 ¥Ð¥¤¥È¤Î¥Û¥¹¥È̾¤È 8 ¥Ð¥¤¥È¤Î¥Î¡¼¥É̾¤òµö²Ä¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤â¤¢¤ë)¡£ -¤·¤«¤·¡¢Linux ¤Ç¤ÏƱ¤¸Ê¸»úÎó¤¬ÊÖ¤µ¤ì¤ë¡£ +(実際、256 バイトのホスト名と 8 バイトのノード名を許可しているシステムもある)。 +しかし、Linux では同じ文字列が返される。 .BR setdomainname (2) -¤È \fIdomainname\fP ¥Õ¥£¡¼¥ë¥É¤Ë¤Ä¤¤¤Æ¤âƱ¤¸¤³¤È¤¬À®¤êΩ¤Ä¡£ +と \fIdomainname\fP フィールドについても同じことが成り立つ。 .LP .\"O The length of the fields in the struct varies. .\"O Some operating systems @@ -187,19 +187,19 @@ SVr4, POSIX.1-2001. .\"O Clearly, it is a bad .\"O idea to use any of these constants; just use sizeof(...). .\"O Often 257 is chosen in order to have room for an internet hostname. -¹½Â¤ÂΤΥե£¡¼¥ë¥É¤ÎŤµ¤Ï¤µ¤Þ¤¶¤Þ¤Ç¤¢¤ë¡£ -OS ¤ä¥é¥¤¥Ö¥é¥ê¤ÎÃæ¤Ë¤Ï¡¢ -¥Ï¡¼¥É¥³¡¼¥É¤µ¤ì¤¿ 9, 33, 65, 257 ¤Ê¤É¤ÎÃͤò»È¤Ã¤Æ¤¤¤ë¤â¤Î¤â¤¢¤ë¡£ -¤Þ¤¿ +構造体のフィールドの長さはさまざまである。 +OS やライブラリの中には、 +ハードコードされた 9, 33, 65, 257 などの値を使っているものもある。 +また .BR SYS_NMLN , .BR _SYS_NMLN , .BR UTSLEN , .B _UTSNAME_LENGTH -¤Ê¤É¤ò»È¤Ã¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ -¤Ï¤Ã¤­¤ê¸À¤Ã¤Æ¡¢¤³¤ì¤é¤ÎÄê¿ô¤ò»È¤¦¤Î¤Ï°­¤¤¹Í¤¨Êý¤Ç¤¢¤ê¡¢ -sizeof(...) ¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£ -¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥Û¥¹¥È̾¤Ç»È¤¦Îΰè¤ò»ý¤¿¤»¤ë¤¿¤á¤Ë¡¢ -257 ¤¬Áª¤Ð¤ì¤ë¤³¤È¤¬Â¿¤¤¡£ +などを使っているシステムもある。 +はっきり言って、これらの定数を使うのは悪い考え方であり、 +sizeof(...) を使うべきである。 +インターネットホスト名で使う領域を持たせるために、 +257 が選ばれることが多い。 .LP .\"O Part of the utsname information is also accessible via .\"O .IR /proc/sys/kernel/ { ostype , @@ -207,25 +207,25 @@ sizeof(...) .\"O .IR osrelease , .\"O .IR version , .\"O .IR domainname }. -utsname ¤Î¾ðÊó¤Ï¡¢ +utsname の情報は、 .IR /proc/sys/kernel/ { ostype , .IR hostname , .IR osrelease , .IR version , .IR domainname } -¤ò»È¤Ã¤Æ¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +を使ってアクセスすることもできる。 .\"O .SS Underlying kernel interface -.SS Çظå¤Î¥«¡¼¥Í¥ë¡¦¥¤¥ó¥¿¥Õ¥§¡¼¥¹ +.SS 背後のカーネル・インタフェース .LP .\"O Over time, increases in the size of the .\"O .I utsname .\"O structure have led to three successive versions of .\"O .BR uname (): -»þ´Ö¤Î·Ð²á¤È¤È¤â¤Ë¡¢ +時間の経過とともに、 .I utsname -¹½Â¤ÂΤΥµ¥¤¥º¤¬Â礭¤¯¤Ê¤ê¡¢¤³¤Î±Æ¶Á¤Ç +構造体のサイズが大きくなり、この影響で .BR uname () -¤Ë¤Ï 3¤Ä¤Î¥Ð¡¼¥¸¥ç¥ó¤¬Â¸ºß¤¹¤ë: +には 3つのバージョンが存在する: .\"O .IR sys_olduname () .\"O (slot .\"O .IR __NR_oldolduname ), @@ -237,14 +237,14 @@ utsname .\"O (slot .\"O .IR __NR_uname) . .IR sys_olduname () -(¥¹¥í¥Ã¥È¤Ï -.IR __NR_oldolduname )¡¢ +(スロットは +.IR __NR_oldolduname )、 .IR sys_uname () -(¥¹¥í¥Ã¥È¤Ï -.IR __NR_olduname )¡¢ +(スロットは +.IR __NR_olduname )、 .IR sys_newuname () -(¥¹¥í¥Ã¥È¤Ï -.IR __NR_uname )¡£ +(スロットは +.IR __NR_uname )。 .\"O The first one .\"O .\" That was back before Linux 1.0 .\"O used length 9 for all fields; @@ -253,24 +253,24 @@ utsname .\"O used 65; .\"O the third also uses 65 but adds the \fIdomainname\fP field. .IR sys_olduname () -.\" ¤³¤ì¤Ï Linux 1.0 ¤è¤êÁ°¤ËÁ̤ëÏäǤ¢¤ë¡£ -¤Ï¤¹¤Ù¤Æ¤Î¥Õ¥£¡¼¥ë¥É¤¬Ä¹¤µ 9 ¤ò»È¤Ã¤Æ¤¤¤¿¡£ +.\" これは Linux 1.0 より前に遡る話である。 +はすべてのフィールドが長さ 9 を使っていた。 .IR sys_uname () -.\" ¤³¤ì¤â Linux 1.0 ¤è¤êÁ°¤ËÁ̤ëÏäǤ¢¤ë¡£ -¤ÏŤµ 65 ¤ò»È¤Ã¤Æ¤¤¤¿¡£ +.\" これも Linux 1.0 より前に遡る話である。 +は長さ 65 を使っていた。 .IR sys_newuname () -¤âŤµ 65 ¤ò»È¤Ã¤Æ¤¤¤ë¤¬¡¢ -\fIdomainname\fP ¥Õ¥£¡¼¥ë¥É¤¬Äɲ䵤ì¤Æ¤¤¤ë¡£ +も長さ 65 を使っているが、 +\fIdomainname\fP フィールドが追加されている。 .\"O The glibc .\"O .BR uname () .\"O wrapper function hides these details from applications, .\"O invoking the most recent version of the system call provided by the kernel. -glibc ¤Î +glibc の .BR uname () -¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢¤³¤ì¤é¤Î¾ÜºÙ¤ò¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é±£Êä·¡¢ -¥«¡¼¥Í¥ë¤¬Ä󶡤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¤¦¤ÁºÇ¿·¤Î¥Ð¡¼¥¸¥ç¥ó¤òµ¯Æ°¤¹¤ë¡£ +ラッパー関数は、これらの詳細をアプリケーションから隠蔽し、 +カーネルが提供しているシステムコールのうち最新のバージョンを起動する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR uname (1), .BR getdomainname (2), .BR gethostname (2) diff --git a/draft/man2/unimplemented.2 b/draft/man2/unimplemented.2 index 19220085..6eb5963e 100644 --- a/draft/man2/unimplemented.2 +++ b/draft/man2/unimplemented.2 @@ -33,32 +33,32 @@ .\" .TH UNIMPLEMENTED 2 2007-07-05 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O afs_syscall, break, ftime, getpmsg, gtty, lock, madvise1, mpx, prof, profil, .\"O putpmsg, security, stty, tuxcall, ulimit, vserver \- unimplemented system calls afs_syscall, break, ftime, getpmsg, gtty, lock, madvise1, mpx, prof, profil, -putpmsg, security, stty, tuxcall, ulimit, vserver \- ¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¥·¥¹¥Æ¥à¥³¡¼¥ë +putpmsg, security, stty, tuxcall, ulimit, vserver \- 実装されていないシステムコール .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .\"O Unimplemented system calls. -¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¥·¥¹¥Æ¥à¥³¡¼¥ë +実装されていないシステムコール .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These system calls are not implemented in the Linux 2.6.22 kernel. -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 2.6.22 ¥«¡¼¥Í¥ë¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +これらのシステムコールは Linux 2.6.22 カーネルでは実装されていない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O These system calls always return \-1 and set .\"O .I errno .\"O to .\"O .BR ENOSYS . -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¾ï¤Ë \-1 ¤òÊÖ¤·¡¢ +これらのシステムコールは常に \-1 を返し、 .I errno -¤Ë +に .BR ENOSYS -¤òÀßÄꤹ¤ë¡£ +を設定する。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Note that .\"O .BR ftime (3), .\"O .BR profil (3) @@ -68,7 +68,7 @@ putpmsg, security, stty, tuxcall, ulimit, vserver \- .BR ftime (3), .BR profil (3), .BR ulimit (3) -¤Ï¥é¥¤¥Ö¥é¥ê´Ø¿ô¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +はライブラリ関数として実装されていることに注意すること。 .\"O Some system calls, like .\"O .BR alloc_hugepages (2), @@ -83,7 +83,7 @@ putpmsg, security, stty, tuxcall, ulimit, vserver \- .BR ioperm (2), .BR iopl (2), .BR vm86 (2) -¤Î¤è¤¦¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÆÃÄê¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤Î¤ß¸ºß¤¹¤ë¡£ +のようなシステムコールは特定のアーキテクチャにのみ存在する。 .\"O Some system calls, like .\"O .BR ipc (2), @@ -96,8 +96,8 @@ putpmsg, security, stty, tuxcall, ulimit, vserver \- .BR create_module (2), .BR init_module (2), .BR delete_module (2) -¤Î¤è¤¦¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¥«¡¼¥Í¥ë¤¬¤½¤ì¤é¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤è¤¦ -¤Ë¹½ÃÛ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Î¤ß¸ºß¤¹¤ë¡£ +のようなシステムコールは Linux カーネルがそれらをサポートするよう +に構築されている場合にのみ存在する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR syscalls (2) diff --git a/draft/man2/unlink.2 b/draft/man2/unlink.2 index 499d2ae0..647b28dd 100644 --- a/draft/man2/unlink.2 +++ b/draft/man2/unlink.2 @@ -40,73 +40,73 @@ .\" Updated & Modified Sun Jan 9 23:28:11 JST 2005 .\" by Yuichi SATO .\" -.\"WORD: file system ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -.\"WORD: link ¥ê¥ó¥¯ -.\"WORD: open ¥ª¡¼¥×¥ó -.\"WORD: close ¥¯¥í¡¼¥º -.\"WORD: symbolic link ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ -.\"WORD: socket ¥½¥±¥Ã¥È -.\"WORD: device ¥Ç¥Ð¥¤¥¹ -.\"WORD: effective UID ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: sticky-bit ¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È -.\"WORD: dangling symbolic link ²õ¤ì¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: memory ¥á¥â¥ê -.\"WORD: protocol ¥×¥í¥È¥³¥ë +.\"WORD: file system ファイルシステム +.\"WORD: link リンク +.\"WORD: open オープン +.\"WORD: close クローズ +.\"WORD: symbolic link シンボリック・リンク +.\"WORD: descriptor ディスクリプター +.\"WORD: socket ソケット +.\"WORD: device デバイス +.\"WORD: effective UID 実効ユーザーID +.\"WORD: sticky-bit スティッキー・ビット +.\"WORD: dangling symbolic link 壊れたシンボリック・リンク +.\"WORD: memory メモリ +.\"WORD: protocol プロトコル .\" .TH UNLINK 2 2004-06-23 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O unlink \- delete a name and possibly the file it refers to -unlink \- ̾Á°¤òºï½ü¤·¡¢¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï¤½¤ì¤¬»²¾È¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤âºï½ü¤¹¤ë +unlink \- 名前を削除し、場合によってはそれが参照しているファイルも削除する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int unlink(const char *" pathname ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR unlink () .\"O deletes a name from the file system. .\"O If that name was the .\"O last link to a file and no processes have the file open the file is .\"O deleted and the space it was using is made available for reuse. .BR unlink () -¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î̾Á°¤òºï½ü¤¹¤ë¡£ -¤â¤·¤½¤Î̾Á°¤¬¥Õ¥¡¥¤¥ë¤Ø¤ÎºÇ¸å¤Î¥ê¥ó¥¯ (link) ¤Ç¤¢¤ê¡¢ -¤É¤Î¥×¥í¥»¥¹¤â¤½¤Î¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó (open) ¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ -¥Õ¥¡¥¤¥ë¤Ïºï½ü¤µ¤ì¤ë¡£ -¥Õ¥¡¥¤¥ë¤¬»ÈÍѤ·¤Æ¤¤¤¿¥Ç¥£¥¹¥¯¾å¤ÎÎΰè¤ÏºÆÍøÍѤ¬²Äǽ¤Ë¤Ê¤ë¡£ +はファイルシステム上の名前を削除する。 +もしその名前がファイルへの最後のリンク (link) であり、 +どのプロセスもそのファイルをオープン (open) していなければ、 +ファイルは削除される。 +ファイルが使用していたディスク上の領域は再利用が可能になる。 .\"O If the name was the last link to a file but any processes still have .\"O the file open the file will remain in existence until the last file .\"O descriptor referring to it is closed. -¤â¤·ºï½ü¤¹¤ë̾Á°¤¬¥Õ¥¡¥¤¥ë¤Ø¤ÎºÇ¸å¤Î¥ê¥ó¥¯¤À¤¬¡¢¤É¤ì¤«¤Î¥×¥í¥»¥¹¤¬ -¤½¤Î¥Õ¥¡¥¤¥ë¤ò¤Þ¤À¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤ëºÇ¸å¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ (file descriptor) -¤¬¥¯¥í¡¼¥º (close) ¤µ¤ì¤ë¤Þ¤Ç¥Õ¥¡¥¤¥ë¤Ï¸ºß¤·Â³¤±¤ë¡£ +もし削除する名前がファイルへの最後のリンクだが、どれかのプロセスが +そのファイルをまだオープンしている場合は、 +そのファイルを参照している最後のファイルディスクリプター (file descriptor) +がクローズ (close) されるまでファイルは存在し続ける。 .\"O If the name referred to a symbolic link the link is removed. -¤â¤·¤½¤Î̾Á°¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ (symbolic link) ¤ò»²¾È¤·¤Æ¤¤¤ì¤Ð¡¢ -¥ê¥ó¥¯¤Ïºï½ü¤µ¤ì¤ë¡£ +もしその名前がシンボリック・リンク (symbolic link) を参照していれば、 +リンクは削除される。 .\"O If the name referred to a socket, fifo or device the name for it is .\"O removed but processes which have the object open may continue to use .\"O it. -¤â¤·Ì¾Á°¤¬¥½¥±¥Ã¥È (socket) ¤ä fifo ¤ä¥Ç¥Ð¥¤¥¹ (device) ¤ò»²¾È¤·¤Æ¤¤¤ì¤Ð -̾Á°¤Ïºï½ü¤µ¤ì¤ë¤¬¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò¥ª¡¼¥×¥ó¤·¤Æ¤¤¤¿¥×¥í¥»¥¹¤Ï -¤½¤ì¤ò»È¤¤Â³¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +もし名前がソケット (socket) や fifo やデバイス (device) を参照していれば +名前は削除されるがそのオブジェクトをオープンしていたプロセスは +それを使い続けることができる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Ê¤é¤Ð \-1 ¤òÊÖ¤·¡¢ +成功した場合は 0 を返す。エラーならば \-1 を返し、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O Write access to the directory containing @@ -118,51 +118,51 @@ unlink \- ̾ .\"O (See also .\"O .BR path_resolution (7).) .I pathname -¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î½ñ¤­¹þ¤ßµö²Ä¤¬¥×¥í¥»¥¹¤Î¼Â¸ú (effective) -¥æ¡¼¥¶¡¼ ID ¤ËÍ¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ +を含んでいるディレクトリの書き込み許可がプロセスの実効 (effective) +ユーザー ID に与えられていないか、 .I pathname -¤ÎÃæ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¤É¤ì¤«¤Ë¸¡º÷µö²Ä¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤ +の中のディレクトリのどれかに検索許可が与えられていない .RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È)¡£ +も参照すること)。 .TP .\"O .BR EBUSY " (not on Linux)" -.BR EBUSY " (Linux °Ê³°)" +.BR EBUSY " (Linux 以外)" .\"O The file .\"O .I pathname .\"O cannot be unlinked because it is being used by the system .\"O or another process and the implementation considers this an error. -¥Õ¥¡¥¤¥ë +ファイル .I pathname -¤¬¥·¥¹¥Æ¥à¤Þ¤¿¤Ï¾¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤Æ¤¤¤Æ -¥ê¥ó¥¯¤¬ºï½ü¤Ç¤­¤Ê¤«¤Ã¤¿¤Î¤Ç¡¢¤³¤Î¼ÂÁõ¤Ç¤Ï¥¨¥é¡¼¤È¤·¤¿¡£ +がシステムまたは他のプロセスによって使用されていて +リンクが削除できなかったので、この実装ではエラーとした。 .TP .B EFAULT .\"O .I pathname .\"O points outside your accessible address space. .I pathname -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がアクセス可能なアドレス空間の外を指している。 .TP .B EIO .\"O An I/O error occurred. -I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +I/O エラーが発生した。 .TP .B EISDIR .\"O .I pathname .\"O refers to a directory. .\"O (This is the non-POSIX value returned by Linux since 2.1.132.) .I pathname -¤¬¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤·¤Æ¤¤¤ë¡£ -(¤³¤ì¤Ï POSIX ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤Ãͤǡ¢Linux 2.1.132 °Ê¹ß¤ÇÊÖ¤µ¤ì¤ë¡£) +がディレクトリを参照している。 +(これは POSIX で規定されていない値で、Linux 2.1.132 以降で返される。) .TP .B ELOOP .\"O Too many symbolic links were encountered in translating .\"O .IR pathname . .I pathname -¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ +を解決する際に遭遇したシンボリック・リンクが多過ぎる。 .TP .B ENAMETOOLONG .\"O .IR pathname " was too long." -.IR pathname " ¤¬Ä¹²á¤®¤ë¡£" +.IR pathname " が長過ぎる。" .TP .B ENOENT .\"O A component in @@ -171,20 +171,20 @@ I/O .\"O .I pathname .\"O is empty. .I pathname -¤ËÂбþ¤¹¤ë¤â¤Î¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢²õ¤ì¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ç¤¢¤ë¤«¡¢ +に対応するものが存在しないか、壊れたシンボリック・リンクであるか、 .I pathname -¤¬¶õ¤Ç¤¢¤ë¡£ +が空である。 .TP .B ENOMEM .\"O Insufficient kernel memory was available. -½½Ê¬¤Ê¥«¡¼¥Í¥ë (kernel) ¤Î¥á¥â¥ê¡¼¤¬»ÈÍѤǤ­¤Ê¤¤¡£ +十分なカーネル (kernel) のメモリーが使用できない。 .TP .B ENOTDIR .\"O A component used as a directory in .\"O .I pathname .\"O is not, in fact, a directory. .I pathname -¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬¡¢¼ÂºÝ¤Ë¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +のディレクトリ部分が、実際には、ディレクトリでない。 .TP .B EPERM .\"O The system does not allow unlinking of directories, @@ -194,21 +194,21 @@ I/O .\"O as noted above, Linux returns .\"O .B EISDIR .\"O for this case.) -¥·¥¹¥Æ¥à¤¬¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ¹¤ë unlink Áàºî¤òµö²Ä¤·¤Æ¤¤¤Ê¤¤¡£ -¤Þ¤¿¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ¹¤ë unlink Áàºî¤Î¤¿¤á¤ËɬÍפÊÆø¢¤ò -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -(¤³¤ì¤Ï POSIX ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤ÎÊÖ¤·Êý¤Ç¤¢¤ë¡£ -¾å½Ò¤ÎÄ̤ꡢ¤³¤Î¾ì¹ç¤Ë¤Ï Linux ¤Ï +システムがディレクトリに対する unlink 操作を許可していない。 +またはディレクトリに対する unlink 操作のために必要な特権を +呼び出し元のプロセスが持っていない。 +(これは POSIX で規定されているエラーの返し方である。 +上述の通り、この場合には Linux は .B EISDIR -¤òÊÖ¤¹¡£) +を返す。) .TP .\"O .BR EPERM " (Linux only)" -.BR EPERM " (Linux ¤Î¤ß)" +.BR EPERM " (Linux のみ)" .\"O The file system does not allow unlinking of files. -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë unlink Áàºî¤òµö¤·¤Æ¤¤¤Ê¤¤¡£ +ファイルシステムがファイルに対する unlink 操作を許していない。 .TP .\"O .BR EPERM " or " EACCES -.BR EPERM " ¤Þ¤¿¤Ï " EACCES +.BR EPERM " または " EACCES .\"O The directory containing .\"O .I pathname .\"O has the sticky-bit @@ -219,34 +219,34 @@ I/O .\"O .B CAP_FOWNER .\"O capability). .I pathname -¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È (sticky-bit) +を含んでいるディレクトリにスティッキー・ビット (sticky-bit) .RB ( S_ISVTX ) -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Æ¡¢¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ºï½ü¤·¤è¤¦¤È¤¹¤ë¥Õ¥¡¥¤¥ë¤Î -UID ¤Ç¤â¤½¤ì¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¤â¤Î¤Ç¤â¤Ê¤¯¡¢ -¤«¤Ä¥×¥í¥»¥¹¤ËÆø¢¤¬¤Ê¤¤ (Linux ¤Ç¤Ï +が設定されていて、プロセスの実効ユーザー ID が削除しようとするファイルの +UID でもそれを含んでいるディレクトリのものでもなく、 +かつプロセスに特権がない (Linux では .B CAP_FOWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤¬¤Ê¤¤)¡£ +ケーパビリティ (capability) がない)。 .TP .B EROFS .\"O .I pathname .\"O refers to a file on a read-only file system. .I pathname -¤¬Æɤ߹þ¤ßÀìÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤ë¡£ +が読み込み専用のファイルシステムのファイルを参照している。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O .\" SVr4 documents additional error .\"O .\" conditions EINTR, EMULTIHOP, ETXTBSY, ENOLINK. -.\" SVr4 ¤Ë¤Ï¾¤Ë EINTR, EMULTIHOP, ETXTBSY, ENOLINK ¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Î -.\" µ­½Ò¤¬¤¢¤ë¡£ +.\" SVr4 には他に EINTR, EMULTIHOP, ETXTBSY, ENOLINK エラーについての +.\" 記述がある。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Infelicities in the protocol underlying NFS can cause the unexpected .\"O disappearance of files which are still being used. -NFS ¥×¥í¥È¥³¥ë (protocol) ¤ÎÀøºßŪ¤ÊÉÔÎɤˤè¤ê¡¢ -¤Þ¤À»ÈÍÑÃæ¤Î¥Õ¥¡¥¤¥ë¤ÎÆÍÁ³¤Î¾ÃÌǤò°ú¤­µ¯¤³¤¹¤³¤È¤¬¤¢¤ë¡£ +NFS プロトコル (protocol) の潜在的な不良により、 +まだ使用中のファイルの突然の消滅を引き起こすことがある。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR rm (1), .BR chmod (2), .BR link (2), diff --git a/draft/man2/unlinkat.2 b/draft/man2/unlinkat.2 index 48230d4f..62da99e6 100644 --- a/draft/man2/unlinkat.2 +++ b/draft/man2/unlinkat.2 @@ -28,11 +28,11 @@ .\" .TH UNLINKAT 2 2009-12-13 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O unlinkat \- remove a directory entry relative to a directory file descriptor -unlinkat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÁêÂÐŪ¤Ê°ÌÃ֤ˤ¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¥¨¥ó¥È¥ê¤òºï½ü¤¹¤ë +unlinkat \- ディレクトリファイルディスクリプタから相対的な位置にあるディレクトリエントリを削除する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -42,9 +42,9 @@ unlinkat \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR unlinkat (): @@ -53,17 +53,17 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR unlinkat () .\"O system call operates in exactly the same way as either @@ -77,15 +77,15 @@ _ATFILE_SOURCE .\"O flag) .\"O except for the differences described in this manual page. .BR unlinkat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë°ã¤¤¤¬¤¢¤ë°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明している違いがある以外は、 .RI ( flags -¤Ë +に .B AT_REMOVEDIR -¥Õ¥é¥°¤¬´Þ¤Þ¤ì¤ë¤«Èݤ«¤Ë¤è¤ê) +フラグが含まれるか否かにより) .BR unlink (2) -¤Þ¤¿¤Ï +または .BR rmdir (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .\"O If the pathname given in .\"O .I pathname @@ -99,15 +99,15 @@ _ATFILE_SOURCE .\"O .BR rmdir (2) .\"O for a relative pathname). .I pathname -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹Ì¾¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パス名である場合、 +ファイルディスクリプタ .I dirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( unlink (2) -¤Þ¤¿¤Ï +または .BR rmdir (2) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスの +カレントワーキングディレクトリからの相対パスとなる)。 .\"O If the pathname given in .\"O .I pathname @@ -123,18 +123,18 @@ _ATFILE_SOURCE .\"O and .\"O .BR rmdir (2)). .I pathname -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹Ì¾¤Ç¤¢¤ê¡¢¤«¤Ä +で指定されるパス名が相対パス名であり、かつ .I dirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I pathname -¤Ï +は .RB ( unlink (2) -¤Þ¤¿¤Ï +または .BR rmdir (2) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .\"O If the pathname given in .\"O .I pathname @@ -142,20 +142,20 @@ _ATFILE_SOURCE .\"O .I dirfd .\"O is ignored. .I pathname -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÀäÂХѥ¹Ì¾¤Ç¤¢¤ë¾ì¹ç¡¢ +で指定されるパス名が絶対パス名である場合、 .I dirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\"O .I flags .\"O is a bit mask that can either be specified as 0, or by ORing .\"O together flag values that control the operation of .\"O .BR unlinkat (). .I flags -¤Ï¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ê¡¢0 ¤Þ¤¿¤Ï +はビットマスクであり、0 または .BR unlinkat () -¤ÎÁàºî¤òÀ©¸æ¤¹¤ë¥Õ¥é¥°ÃͤΠOR ¤ò»ØÄê¤Ç¤­¤ë¡£ +の操作を制御するフラグ値の OR を指定できる。 .\"O Currently only one such flags is defined: -¸½ºß¤Î¤È¤³¤í 1 ¤Ä¤Î¥Õ¥é¥°¤À¤±¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +現在のところ 1 つのフラグだけが定義されている: .TP .B AT_REMOVEDIR .\"O By default, @@ -164,13 +164,13 @@ _ATFILE_SOURCE .\"O .BR unlink (2) .\"O on .\"O .IR pathname . -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +デフォルトでは、 .BR unlinkat () -¤Ï +は .I pathname -¤ËÂФ·¤Æ +に対して .BR unlink (2) -¤ÈƱ¤¸Áàºî¤ò¹Ô¤¦¡£ +と同じ操作を行う。 .\"O If the .\"O .B AT_REMOVEDIR .\"O flag is specified, then @@ -179,27 +179,27 @@ _ATFILE_SOURCE .\"O on .\"O .IR pathname . .B AT_REMOVEDIR -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤ë¤È¡¢ +フラグが指定されると、 .I pathname -¤ËÂФ·¤Æ +に対して .BR rmdir (2) -¤ÈƱ¤¸Áàºî¤ò¹Ô¤¦¡£ +と同じ操作を行う。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR unlinkat () .\"O returns 0. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR unlinkat () -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .\"O On error, \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +エラーの場合、\-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ +にはエラーを示す値が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O The same errors that occur for .\"O .BR unlink (2) .\"O and @@ -207,27 +207,27 @@ _ATFILE_SOURCE .\"O can also occur for .\"O .BR unlinkat (). .BR unlink (2) -¤Þ¤¿¤Ï +または .BR rmdir (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR unlinkat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .\"O The following additional errors can occur for .\"O .BR unlinkat (): .BR unlinkat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .\"O .I dirfd .\"O is not a valid file descriptor. .I dirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B EINVAL .\"O An invalid flag value was specified in .\"O .IR flags . .I flags -¤ËÉÔÀµ¤Ê¥Õ¥é¥°Ãͤ¬»ØÄꤵ¤ì¤¿¡£ +に不正なフラグ値が指定された。 .TP .B ENOTDIR .\"O .I pathname @@ -235,32 +235,32 @@ _ATFILE_SOURCE .\"O .I dirfd .\"O is a file descriptor referring to a file other than a directory. .I pathname -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I dirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR unlinkat () .\"O was added to Linux in kernel 2.6.16. .BR unlinkat () -¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ +は Linux カーネル 2.6.16 で追加された。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. .\"O A similar system call exists on Solaris. -Solaris ¤Ë¤Ï¡¢¤³¤ì¤ÈƱ¤¸¤è¤¦¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Â¸ºß¤¹¤ë¡£ +Solaris には、これと同じようなシステムコールが存在する。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O See .\"O .BR openat (2) .\"O for an explanation of the need for .\"O .BR unlinkat (). .BR unlinkat () -¤¬É¬ÍפÊÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が必要な理由については、 .BR openat (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR openat (2), .BR rmdir (2), .BR unlink (2), diff --git a/draft/man2/unshare.2 b/draft/man2/unshare.2 index 826a5fdb..e76cda8f 100644 --- a/draft/man2/unshare.2 +++ b/draft/man2/unshare.2 @@ -24,14 +24,14 @@ .\" .TH UNSHARE 2 2010-09-10 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O unshare \- disassociate parts of the process execution context -unshare \- ¥×¥í¥»¥¹¼Â¹Ô¥³¥ó¥Æ¥­¥¹¥È¤Î°ìÉô¤òʬΥ¤¹¤ë +unshare \- プロセス実行コンテキストの一部を分離する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .\" Actually _BSD_SOURCE || _SVID_SOURCE .\" See http://sources.redhat.com/bugzilla/show_bug.cgi?id=4749 .B #include @@ -39,13 +39,13 @@ unshare \- .BI "int unshare(int " flags ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR unshare () .\"O allows a process to disassociate parts of its execution .\"O context that are currently being shared with other processes. .BR unshare () -¤ò»È¤¦¤È¡¢¥×¥í¥»¥¹¤Ï¾¤Î¥×¥í¥»¥¹¤È¸½ºß¶¦Í­¤·¤Æ¤¤¤ë -¼Â¹Ô¥³¥ó¥Æ¥­¥¹¥È¤Î°ìÉô¤òʬΥ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使うと、プロセスは他のプロセスと現在共有している +実行コンテキストの一部を分離することができる。 .\"O Part of the execution context, such as the mount namespace, is shared .\"O implicitly when a new process is created using .\"O .BR fork (2) @@ -54,34 +54,34 @@ unshare \- .\"O while other parts, such as virtual memory, may be .\"O shared by explicit request when creating a process using .\"O .BR clone (2). -¼Â¹Ô¥³¥ó¥Æ¥­¥¹¥È¤Î°ìÉô¡¢¤¿¤È¤¨¤Ð¥Þ¥¦¥ó¥È̾Á°¶õ´Ö (mount namespace) -¤Ê¤É¤Ï¡¢¿·¤·¤¤¥×¥í¥»¥¹¤ò +実行コンテキストの一部、たとえばマウント名前空間 (mount namespace) +などは、新しいプロセスを .BR fork (2) -¤Þ¤¿¤Ï +または .BR vfork (2) -¤ò»È¤Ã¤ÆÀ¸À®¤·¤¿¤È¤­¤Ë¡¢°ÅÌۤΤ¦¤Á¤Ë¶¦Í­¤µ¤ì¤ë¡£ -°ìÊý¡¢²¾ÁÛ¥á¥â¥ê¤Ê¤É¤Ï¡¢ +を使って生成したときに、暗黙のうちに共有される。 +一方、仮想メモリなどは、 .BR clone (2) -¤ò»È¤Ã¤Æ¥×¥í¥»¥¹¤òÀ¸À®¤¹¤ë¤È¤­¤Ë¡¢ÌÀ¼¨Åª¤Ë¶¦Í­¤¹¤ë¤³¤È¤òÍ×µá¤Ç¤­¤ë¡£ +を使ってプロセスを生成するときに、明示的に共有することを要求できる。 .\"O The main use of .\"O .BR unshare () .\"O is to allow a process to control its .\"O shared execution context without creating a new process. .BR unshare () -¤Î¼ç¤ÊÍøÍÑË¡¤Ï¡¢¥×¥í¥»¥¹¤¬¿·¤·¤¤¥×¥í¥»¥¹¤òÀ¸À®¤¹¤ë¤³¤È¤Ê¤¯¡¢ -¶¦Í­¼Â¹Ô¥³¥ó¥Æ¥­¥¹¥È¤òÀ©¸æ¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£ +の主な利用法は、プロセスが新しいプロセスを生成することなく、 +共有実行コンテキストを制御することである。 .\"O The .\"O .I flags .\"O argument is a bit mask that specifies which parts of .\"O the execution context should be unshared. .I flags -°ú¤­¿ô¤Ï¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ê¡¢ -¼Â¹Ô¥³¥ó¥Æ¥­¥¹¥È¤Î¤É¤ÎÉôʬ¤Î¶¦Í­¤ò²ò½ü¤¹¤ë¤«¤òɽ¤¹¡£ +引き数はビットマスクであり、 +実行コンテキストのどの部分の共有を解除するかを表す。 .\"O This argument is specified by ORing together zero or more .\"O of the following constants: -¤³¤Î°ú¤­¿ô¤Ï¡¢°Ê²¼¤ÎÄê¿ô¤Î 0 ¸Ä°Ê¾å¤Î OR ¤Ç»ØÄꤹ¤ë: +この引き数は、以下の定数の 0 個以上の OR で指定する: .TP .B CLONE_FILES .\"O Reverse the effect of the @@ -90,11 +90,11 @@ unshare \- .\"O flag. .BR clone (2) .B CLONE_FILES -¥Õ¥é¥°¤Î¸ú²Ì¤ò¼è¤ê¾Ã¤¹¡£ +フラグの効果を取り消す。 .\"O Unshare the file descriptor table, so that the calling process .\"O no longer shares its file descriptors with any other process. -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¥Æ¡¼¥Ö¥ë¤ò¶¦Í­¤µ¤»¤º¡¢ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ï¾¤Î¥×¥í¥»¥¹¤È¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¶¦Í­¤·¤Ê¤¯¤Ê¤ë¡£ +ファイルディスクリプタテーブルを共有させず、 +呼び出し元プロセスは他のプロセスとファイルディスクリプタを共有しなくなる。 .TP .B CLONE_FS .\"O Reverse the effect of the @@ -103,13 +103,13 @@ unshare \- .\"O flag. .BR clone (2) .B CLONE_FS -¥Õ¥é¥°¤Î¸ú²Ì¤ò¼è¤ê¾Ã¤¹¡£ +フラグの効果を取り消す。 .\"O Unshare file system attributes, so that the calling process .\"O no longer shares its root directory, current directory, .\"O or umask attributes with any other process. -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à°À­¤ò¶¦Í­¤µ¤»¤º¡¢ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ï¾¤Î¥×¥í¥»¥¹¤È¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¡¦ -¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¡¦umask °À­¤ò¶¦Í­¤·¤Ê¤¯¤Ê¤ë¡£ +ファイルシステム属性を共有させず、 +呼び出し元プロセスは他のプロセスとルートディレクトリ・ +カレントディレクトリ・umask 属性を共有しなくなる。 .\"O .BR chroot (2), .\"O .BR chdir (2), .\"O or @@ -117,7 +117,7 @@ unshare \- .BR chroot (2), .BR chdir (2), .BR umask (2) -¤Ë±Æ¶Á¤¹¤ë¡£ +に影響する。 .TP .B CLONE_NEWNS .\" These flag name are inconsistent: @@ -130,21 +130,21 @@ unshare \- .\"O .BR clone (2) .\"O .B CLONE_NEWNS .\"O flag. -¤³¤Î¥Õ¥é¥°¤Ï +このフラグは .BR clone (2) .B CLONE_NEWNS -¥Õ¥é¥°¤È\fIƱ¤¸\fR¸ú²Ì¤ò»ý¤Ä¡£ +フラグと\fI同じ\fR効果を持つ。 .\"O Unshare the mount namespace, .\"O so that the calling process has a private copy of .\"O its namespace which is not shared with any other process. -¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤ò¶¦Í­¤»¤º¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ï -¾¤Î¥×¥í¥»¥¹¤È¤Ï¶¦Í­¤·¤Ê¤¤¸ÇÍ­¤Î̾Á°¶õ´Ö¤Î¥³¥Ô¡¼¤ò»ý¤Ä¡£ +マウント名前空間を共有せず、呼び出し元プロセスは +他のプロセスとは共有しない固有の名前空間のコピーを持つ。 .\"O Specifying this flag automatically implies .\"O .B CLONE_FS .\"O as well. -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È¡¢ +このフラグを指定すると、 .B CLONE_FS -¤â°ÅÌۤΤ¦¤Á¤Ë»ØÄꤵ¤ì¤ë¡£ +も暗黙のうちに指定される。 .\" As at 2.6.16, the following forced implications also apply, .\" although the relevant flags are not yet implemented. .\" If CLONE_THREAD is set force CLONE_VM. @@ -175,34 +175,34 @@ unshare \- .\"O is a no-op; .\"O no changes are made to the calling process's execution context. .I flags -¤Ë 0 ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +に 0 が指定された場合、 .BR unshare () -¤Ï²¿¤â¹Ô¤ï¤Ê¤¤¤Î¤Ç¡¢ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¹Ô¥³¥ó¥Æ¥­¥¹¥È¤Ï¡¢²¿¤âÊѹ¹¤µ¤ì¤Ê¤¤¡£ +は何も行わないので、 +呼び出し元プロセスの実行コンテキストは、何も変更されない。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero returned. .\"O On failure, \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +成功した場合は 0 が返される。 +失敗した場合は \-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ +にはエラーを示す値が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O An invalid bit was specified in .\"O .IR flags . .I flags -¤ËÉÔÀµ¤Ê¥Ó¥Ã¥È¤¬»ØÄꤵ¤ì¤¿¡£ +に不正なビットが指定された。 .TP .B ENOMEM .\"O Cannot allocate sufficient memory to copy parts of caller's .\"O context that need to be unshared. -¸Æ¤Ó½Ð¤·¸µ¤Î¥³¥ó¥Æ¥­¥¹¥È¤Î¤¦¤Á¶¦Í­¤ò²ò½ü¤¹¤ëɬÍפ¬¤¢¤ëÉôʬ¤ò¥³¥Ô¡¼¤¹¤ë¤¿¤á¤Ë¡¢ -½½Ê¬¤Ê¥á¥â¥ê¤¬³ÎÊݤǤ­¤Ê¤«¤Ã¤¿¡£ +呼び出し元のコンテキストのうち共有を解除する必要がある部分をコピーするために、 +十分なメモリが確保できなかった。 .TP .B EPERM .\"O .I flags @@ -212,42 +212,42 @@ unshare \- .\"O .B CAP_SYS_ADMIN .\"O capability). .I flags -¤Ë +に .B CLONE_NEWNS -¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤ËÆø¢ +が指定されたが、呼び出し元プロセスに特権 .RB ( CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤¬¤Ê¤«¤Ã¤¿¡£ +ケーパビリティ) がなかった。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The .\"O .BR unshare () .\"O system call was added to Linux in kernel 2.6.16. .BR unshare () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ +システムコールは Linux カーネル 2.6.16 で追加された。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O The .\"O .BR unshare () .\"O system call is Linux-specific. .BR unshare () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ +システムコールは Linux 固有である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Not all of the process attributes that can be shared when .\"O a new process is created using .\"O .BR clone (2) .\"O can be unshared using .\"O .BR unshare (). .BR clone (2) -¤Ç¿·¤·¤¤¥×¥í¥»¥¹¤òÀ¸À®¤·¤¿¤È¤­¤Ë¶¦Í­¤µ¤ì¤ëÁ´¤Æ¤Î¥×¥í¥»¥¹Â°À­¤ò¡¢ +で新しいプロセスを生成したときに共有される全てのプロセス属性を、 .BR unshare () -¤Ë¤è¤Ã¤Æ¶¦Í­¤Î²ò½ü¤¬¤Ç¤­¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ +によって共有の解除ができるわけではない。 .\"O In particular, as at kernel 2.6.16, .\"O .BR unshare () .\"O does not implement flags that reverse the effects of -Æäˡ¢¥«¡¼¥Í¥ë 2.6.16 ¤Ë¤ª¤¤¤Æ¤Ï¡¢ +特に、カーネル 2.6.16 においては、 .BR unshare () -¤Ë +に .BR CLONE_SIGHAND , .\" However, we can do unshare(CLONE_SIGHAND) if CLONE_SIGHAND .\" was not specified when doing clone(); i.e., unsharing @@ -260,13 +260,13 @@ unshare \- .\" to see if CLONE_VM gets implemented. .\"O .BR CLONE_VM . .B CLONE_VM -¤Î¸ú²Ì¤ò¼è¤ê¾Ã¤¹¤¿¤á¤Î¥Õ¥é¥°¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +の効果を取り消すためのフラグが実装されていない。 .\" However, as at 2.6.16, we can do unshare(CLONE_VM) if CLONE_VM .\" was not specified when doing clone(); i.e., unsharing .\" virtual memory is permitted if we are not actually .\" sharing virtual memory. mtk .\"O Such functionality may be added in the future, if required. -¤³¤ì¤é¤Îµ¡Ç½¤Ï¡¢É¬ÍפǤ¢¤ì¤Ð¾­ÍèÄɲ䵤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +これらの機能は、必要であれば将来追加されるかもしれない。 .\" .\"9) Future Work .\"-------------- @@ -279,7 +279,7 @@ unshare \- .\"applications using unshare. .\" .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR clone (2), .BR fork (2), .BR vfork (2), diff --git a/draft/man2/uselib.2 b/draft/man2/uselib.2 index 5209e5c9..65c938a5 100644 --- a/draft/man2/uselib.2 +++ b/draft/man2/uselib.2 @@ -35,20 +35,20 @@ .\" Updated 2005-02-28, Akihiro MOTOKI .\" Updated 2005-04-20, Akihiro MOTOKI .\" -.\"WORD: Linux-specific Linux ÆÃÍ­ +.\"WORD: Linux-specific Linux 特有 .\" .TH USELIB 2 2005-01-09 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O uselib \- select shared library -uselib \- ¶¦Í­¥é¥¤¥Ö¥é¥ê¤òÁªÂò¤¹¤ë +uselib \- 共有ライブラリを選択する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int uselib(const char *" library ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The system call .\"O .BR uselib () .\"O serves to load @@ -58,33 +58,33 @@ uselib \- .\"O in the library itself. .\"O The library can have any recognized .\"O binary format. -¥·¥¹¥Æ¥à¥³¡¼¥ë +システムコール .BR uselib () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬»ÈÍѤ¹¤ë -¶¦Í­¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤¹¤ëºÝ¤Ë»ÈÍѤµ¤ì¤ë¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤Ï¥é¥¤¥Ö¥é¥ê¤Î¥Ñ¥¹Ì¾¤ò»ØÄꤹ¤ë¡£ -¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤¹¤ë¥¢¥É¥ì¥¹¤Ï¥é¥¤¥Ö¥é¥ê¼«¿È¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ -¥é¥¤¥Ö¥é¥ê¤Ïǧ¼±²Äǽ¤Ê¥Ð¥¤¥Ê¥ê·Á¼°¤Ç¤¢¤ì¤Ð¤É¤ó¤Ê·Á¼°¤Ç¤â¤è¤¤¡£ +は、呼び出し元プロセスが使用する +共有ライブラリをロードする際に使用される。 +このシステムコールにはライブラリのパス名を指定する。 +ライブラリをロードするアドレスはライブラリ自身に書かれている。 +ライブラリは認識可能なバイナリ形式であればどんな形式でもよい。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç 0 ¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤òÊÖ¤·¡¢ +成功した場合 0 を返す。失敗した場合 \-1 を返し、 .I errno -¤ò¥¨¥é¡¼¤ÎÆâÍƤ˽¾¤Ã¤ÆÀßÄꤹ¤ë¡£ +をエラーの内容に従って設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O In addition to all of the error codes returned by .\"O .BR open (2) .\"O and .\"O .BR mmap (2), .\"O the following may also be returned: .BR open (2) -¤È +と .BR mmap (2) -¤¬ÊÖ¤¹¥¨¥é¡¼¥³¡¼¥É¤Ë²Ã¤¨¤Æ¡¢°Ê²¼¤Î¥¨¥é¡¼¥³¡¼¥É¤¬ÀßÄꤵ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ +が返すエラーコードに加えて、以下のエラーコードが設定されることがある。 .TP .B EACCES .\"O The library specified by @@ -94,16 +94,16 @@ uselib \- .\"O (See also .\"O .BR path_resolution (7).) .I library -¤Ç»ØÄꤵ¤ì¤¿¥é¥¤¥Ö¥é¥ê¤ËÂФ¹¤ëÆɤ߹þ¤ßµö²Ä¡¢¤Þ¤¿¤Ï¼Â¹Ôµö²Ä¤¬¤Ê¤¤¡£ -¤â¤·¤¯¤Ï +で指定されたライブラリに対する読み込み許可、または実行許可がない。 +もしくは .I library -¤¬Â¸ºß¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤½¤Î¾å°Ì¤Î¤¤¤º¤ì¤«¤ËÂФ¹¤ë¸¡º÷µö²Ä¤¬¤Ê¤¤ +が存在するディレクトリかその上位のいずれかに対する検索許可がない .RB ( path_resolution (7) -¤â»²¾È)¡£ +も参照)。 .TP .B ENFILE .\"O The system limit on the total number of open files has been reached. -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ÎÁí¿ô¤¬¥·¥¹¥Æ¥àÁ´ÂΤξå¸Â¤Ë㤷¤¿¡£ +オープンされたファイルの総数がシステム全体の上限に達した。 .TP .B ENOEXEC .\"O The file specified by @@ -111,56 +111,56 @@ uselib \- .\"O is not an executable of known type, .\"O e.g., does not have the correct magic numbers. .I library -¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬¡¢¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤Èǧ¼±¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¼ïÊÌ¤Ç¤Ï -¤Ê¤¤¡¢¤Ä¤Þ¤êÀµ¤·¤¤¥Þ¥¸¥Ã¥¯¡¦¥Ê¥ó¥Ð¡¼¤¬ÉÕ¤¤¤Æ¤¤¤Ê¤¤¡£ +で指定されたファイルが、実行可能ファイルと認識されるファイル種別では +ない、つまり正しいマジック・ナンバーが付いていない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR uselib () .\"O is Linux-specific, and should not be used in programs .\"O intended to be portable. .BR uselib () -¤Ï Linux ÆÃÍ­¤Î´Ø¿ô¤Ç¤¢¤ê¡¢°Ü¿¢À­¤ò»ý¤¿¤»¤¿¤¤¥×¥í¥°¥é¥à -¤Ë¤Ï»ÈÍѤ¹¤Ù¤­¤Ç¤Ê¤¤¡£ +は Linux 特有の関数であり、移植性を持たせたいプログラム +には使用すべきでない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .BR uselib () .\"O was used by early libc startup code to load .\"O the shared libraries with names found in an array of names .\"O in the binary. -½é´ü¤Î libc ¤Îµ¯Æ°¥³¡¼¥É¤Ï¡¢ +初期の libc の起動コードは、 .BR uselib () -¤ò»È¤Ã¤Æ¡¢ -¥Ð¥¤¥Ê¥êÃæ¤Î¥ê¥¹¥È¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¶¦Í­¥é¥¤¥Ö¥é¥ê¤ò -¥ê¥¹¥ÈÃæ¤Î¤½¤Î¤Þ¤Þ¤Î̾Á°¤Ç¥í¡¼¥É¤·¤Æ¤¤¤¿¡£ +を使って、 +バイナリ中のリストに書かれている共有ライブラリを +リスト中のそのままの名前でロードしていた。 .LP .\" libc 4.3.1f - changelog 1993-03-02 .\"O Since libc 4.3.2, startup code tries to prefix these names .\"O with "/usr/lib", "/lib" and "" before giving up. -libc 4.3.2 °Ê¹ß¤Ç¤Ï¡¢¤³¤ì¤é¤Î̾Á°¤ÎÁ°¤Ë "/usr/lib", "/lib", "" ¤ò -¤Ä¤±¤Æ¶¦Í­¥é¥¤¥Ö¥é¥ê¤òõ¤¹¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ +libc 4.3.2 以降では、これらの名前の前に "/usr/lib", "/lib", "" を +つけて共有ライブラリを探すようになった。 .\" libc 4.3.4 - changelog 1993-04-21 .\"O In libc 4.3.4 and later these names are looked for in the directories .\"O found in .\"O .BR LD_LIBRARY_PATH , .\"O and if not found there, .\"O prefixes "/usr/lib", "/lib" and "/" are tried. -libc 4.3.4 °Ê¹ß¤Ç¤Ï¡¢¤³¤ì¤é¤Î̾Á°¤Î¶¦Í­¥é¥¤¥Ö¥é¥ê¤ò¤Þ¤º +libc 4.3.4 以降では、これらの名前の共有ライブラリをまず .B LD_LIBRARY_PATH -¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Çõ¤·¡¢¸«¤Ä¤«¤é¤Ê¤±¤ì¤Ð¡¢ -̾Á°¤ÎÁ°¤Ë "/usr/lib", "/lib", "/" ¤ò¤Ä¤±¤Æõ¤¹¡£ +で指定されたディレクトリで探し、見つからなければ、 +名前の前に "/usr/lib", "/lib", "/" をつけて探す。 .LP .\"O From libc 4.4.4 on only the library "/lib/ld.so" is loaded, .\"O so that this dynamic library can load the remaining libraries needed .\"O (again using this call). .\"O This is also the state of affairs in libc5. -libc 4.4.4 °Ê¹ß¤Ç¤Ï¡¢¥é¥¤¥Ö¥é¥ê "/lib/ld.so" ¤À¤±¤¬¥í¡¼¥É¤µ¤ì¡¢¤½¤Î¸å¤Ç -¤³¤ÎưŪ¥é¥¤¥Ö¥é¥ê¤¬ (¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¤â¤¦°ìÅٻȤäÆ) -ɬÍפʻĤê¤Î¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +libc 4.4.4 以降では、ライブラリ "/lib/ld.so" だけがロードされ、その後で +この動的ライブラリが (このシステムコールをもう一度使って) +必要な残りのライブラリをロードできるようになっている。 .LP .\"O glibc2 does not use this call. -glibc2 ¤Ï¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»ÈÍѤ·¤Ê¤¤¡£ +glibc2 は、このシステムコールを使用しない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ar (1), .BR gcc (1), .BR ld (1), diff --git a/draft/man2/ustat.2 b/draft/man2/ustat.2 index 98a832fc..37b3620f 100644 --- a/draft/man2/ustat.2 +++ b/draft/man2/ustat.2 @@ -32,21 +32,21 @@ .\" Updated & Modified Sat May 22 19:00:40 JST 2004 .\" by Yuichi SATO .\" -.\"WORD: file system ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à -.\"WORD: mount ¥Þ¥¦¥ó¥È -.\"WORD: device ¥Ç¥Ð¥¤¥¹ -.\"WORD: member ¥á¥ó¥Ð¡¼ -.\"WORD: NUL character ¥Ì¥ëʸ»ú -.\"WORD: implement ¼ÂÁõ -.\"WORD: pointer ¥Ý¥¤¥ó¥¿¡¼ +.\"WORD: file system ファイル・システム +.\"WORD: mount マウント +.\"WORD: device デバイス +.\"WORD: member メンバー +.\"WORD: NUL character ヌル文字 +.\"WORD: implement 実装 +.\"WORD: pointer ポインター .\" .TH USTAT 2 2003-08-04 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O ustat \- get file system statistics -ustat \- ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à (file system) ¤ÎÅý·×¤òÆÀ¤ë +ustat \- ファイル・システム (file system) の統計を得る .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .br @@ -57,22 +57,22 @@ ustat \- .BI "int ustat(dev_t " dev ", struct ustat *" ubuf ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR ustat () .\"O returns information about a mounted file system. .\"O .I dev .\"O is a device number identifying a device containing .\"O a mounted file system. .BR ustat () -¤Ï¥Þ¥¦¥ó¥È (mount) ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î¾ðÊó¤òÊÖ¤¹¡£ +はマウント (mount) されたファイル・システムの情報を返す。 .I dev -¤ÏÄ´¤Ù¤ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥Ð¥¤¥¹ (device) ¤Î -¥Ç¥Ð¥¤¥¹Èֹ档 +は調べるファイル・システムを含んでいるデバイス (device) の +デバイス番号。 .\"O .I ubuf .\"O is a pointer to a \fIustat\fP structure that contains the following .\"O members: .I ubuf -¤Ï°Ê²¼¤Î¥á¥ó¥Ð¡¼¤ò´Þ¤à ustat ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¡¼: +は以下のメンバーを含む ustat 構造体へのポインター: .in +4n .nf @@ -89,13 +89,13 @@ char f_fpack[6]; /* Filsys pack name */ .\"O .IR f_fpack , .\"O are not implemented and will .\"O always be filled with null bytes (\(aq\\0\(aq). -¸å¤ÎÆó¤Ä¤Î¥Õ¥£¡¼¥ë¥É +後の二つのフィールド .I f_fname -¤È +と .I f_fpack -¤Ï¼ÂÁõ¤µ¤ì¤Æ¤ª¤é¤º¡¢¾ï¤Ë NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤ÇËä¤á¤é¤ì¤ë¡£ +は実装されておらず、常に NULL バイト (\(aq\\0\(aq) で埋められる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned and the .\"O .I ustat .\"O structure pointed to by @@ -104,28 +104,28 @@ char f_fpack[6]; /* Filsys pack name */ .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤¬ÊÖ¤µ¤ì¡¢ +成功した場合にはゼロが返され、 .I ubuf -¤¬»Ø¤¹ +が指す .I ustat -¹½Â¤ÂΤ¬Ëä¤á¤é¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +構造体が埋められる。 +エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O .I ubuf .\"O points outside of your accessible address space. .I ubuf -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¶õ´Ö¤Î³°Â¦¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がアクセス可能な空間の外側を指している。 .TP .B EINVAL .\"O .I dev .\"O does not refer to a device containing a mounted file system. .I dev -¤¬¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ò´Þ¤à¥Ç¥Ð¥¤¥¹¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£ +がマウントされたファイル・システムを含むデバイスを参照していない。 .TP .B ENOSYS .\"O The mounted file system referenced by @@ -133,29 +133,29 @@ char f_fpack[6]; /* Filsys pack name */ .\"O does not support this operation, or any version of Linux before .\"O 1.3.16. .I dev -¤Ç»²¾È¤µ¤ì¤ë¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤¬¤³¤ÎÁàºî (operation) ¤ò -¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¤«¡¢Linux ¤Î¥Ð¡¼¥¸¥ç¥ó¤¬ 1.3.16 °ÊÁ°¤Ç¤¢¤ë¡£ +で参照されるマウントされたファイル・システムがこの操作 (operation) を +サポートしていないか、Linux のバージョンが 1.3.16 以前である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4. .\"O .\" SVr4 documents additional error conditions ENOLINK, ECOMM, and EINTR .\"O .\" but has no ENOSYS condition. -.\" SVr4 ¤Ë¤Ï¾¤Ë ENOLINK, ECOMM, EINTR ¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¤¬¡¢ -.\" ENOSYS ¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤Ï¤Ê¤¤¡£ +.\" SVr4 には他に ENOLINK, ECOMM, EINTR についての記述があるが、 +.\" ENOSYS エラーについての記述はない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .BR ustat () .\"O is deprecated and has only been provided for compatibility. .BR ustat () -¤Ï¿ä¾©¤µ¤ì¤º¡¢¸ß´¹À­¤Î¤¿¤á¤À¤±¤ËÄ󶡤µ¤ì¤ë¡£ +は推奨されず、互換性のためだけに提供される。 .\"O All new programs should use .\"O .BR statfs (2) .\"O instead. -¿·¤·¤¤¥×¥í¥°¥é¥à¤ÏÁ´¤Æ¤³¤ì¤ÎÂå¤ê¤Ë +新しいプログラムは全てこれの代りに .BR statfs (2) -¤ò»ÈÍѤ¹¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +を使用するべきである。 .\"O .SS "HP-UX Notes" -.SS "HP-UX ¤Ë¤ª¤±¤ëÃí°Õ" +.SS "HP-UX における注意" .\"O The HP-UX version of the .\"O .I ustat .\"O structure has an additional field, @@ -165,25 +165,25 @@ SVr4. .\"O For some file systems, the number of free inodes does not change. .\"O Such file systems will return \-1 in the field .\"O .IR f_tinode . -HP-UX ÈǤι½Â¤ÂÎ +HP-UX 版の構造体 .I ustat -¤Ë¤Ï¡¢¤½¤Î¾¤Ë¥Õ¥£¡¼¥ë¥É +には、その他にフィールド .I f_blksize -¤¬Â¸ºß¤¹¤ë¤¬¡¢Â¾¤Ç¤Ï¸«¤«¤±¤Ê¤¤¡£ -HP-UX ¤Ï¼¡¤Î¤è¤¦¤Ë·Ù¹ð¤·¤Æ¤¤¤ë: -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÃæ¤Ë¤Ï¡¢²òÊü¤µ¤ì¤Æ¤¤¤ë inode ¤Î¿ô¤òÊѹ¹¤·¤Ê¤¤¤â¤Î¤â¤¢¤ë¡£ -¤³¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï¡¢¥Õ¥£¡¼¥ë¥É +が存在するが、他では見かけない。 +HP-UX は次のように警告している: +ファイルシステムの中には、解放されている inode の数を変更しないものもある。 +このようなファイルシステムは、フィールド .I f_tinode -¤Ë \-1 ¤òÊÖ¤¹¡£ +に \-1 を返す。 .\"O .\" Some software tries to use this in order to test whether the .\"O .\" underlying file system is NFS. -.\" ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ NFS ¤Ç¤¢¤ë¤«Èݤ«¤ò¥Æ¥¹¥È¤¹¤ë¤¿¤á¤Ë -.\" ¤³¤ì¤ò»ÈÍѤ¹¤ë¥½¥Õ¥È¥¦¥§¥¢¤â¤¢¤ë¡£ +.\" ファイルシステムが NFS であるか否かをテストするために +.\" これを使用するソフトウェアもある。 .\"O For some file systems, inodes are dynamically allocated. .\"O Such file systems will return the current number of free inodes. -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÃæ¤Ë¤Ï¡¢inode ¤òưŪ¤Ë³ÎÊݤ¹¤ë¤â¤Î¤â¤¢¤ë¡£ -¤³¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï¡¢¸½ºß²òÊü¤µ¤ì¤Æ¤¤¤ë inode ¤Î¿ô¤òÊÖ¤¹¡£ +ファイルシステムの中には、inode を動的に確保するものもある。 +このようなファイルシステムは、現在解放されている inode の数を返す。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR stat (2), .BR statfs (2) diff --git a/draft/man2/utime.2 b/draft/man2/utime.2 index 17a56b90..94af698c 100644 --- a/draft/man2/utime.2 +++ b/draft/man2/utime.2 @@ -40,11 +40,11 @@ .\" .TH UTIME 2 2008-08-06 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O utime, utimes \- change file last access and modification times -utime, utimes \- ¥Õ¥¡¥¤¥ë¤ÎºÇ½ª¥¢¥¯¥»¥¹»þ¹ï¤È½¤Àµ»þ¹ï¤òÊѹ¹¤¹¤ë +utime, utimes \- ファイルの最終アクセス時刻と修正時刻を変更する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .br @@ -57,7 +57,7 @@ utime, utimes \- .BI "int utimes(const char *" filename ", const struct timeval " times [2]); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR utime () .\"O system call @@ -69,22 +69,22 @@ utime, utimes \- .\"O .I times .\"O respectively. .BR utime () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +システムコールは .I filename -¤Ç¼¨¤µ¤ì¤ë inode ¤Î¥¢¥¯¥»¥¹»þ¹ï¤È½¤Àµ»þ¹ï¤ò +で示される inode のアクセス時刻と修正時刻を .I times -Ãæ¤Î -.IR actime " ¤È " modtime -¤Ë¤½¤ì¤¾¤ìÊѹ¹¤¹¤ë¡£ +中の +.IR actime " と " modtime +にそれぞれ変更する。 .\"O If .\"O .I times .\"O is NULL, then the access and modification times of the file are set .\"O to the current time. .I times -¤¬ +が .B NULL -¤Î¾ì¹ç¡¢¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹»þ¹ï¤È½¤Àµ»þ¹ï¤Ï¸½ºß¤Î»þ¹ï¤ËÀßÄꤵ¤ì¤ë¡£ +の場合、ファイルのアクセス時刻と修正時刻は現在の時刻に設定される。 .\"O Changing timestamps is permitted when: either .\"O the process has appropriate privileges, @@ -92,26 +92,26 @@ utime, utimes \- .\"O of the file, or .\"O .I times .\"O is NULL and the process has write permission for the file. -¥¿¥¤¥à¥¹¥¿¥ó¥×¤ÎÊѹ¹¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«¤Î¾ì¹ç¤Ëµö²Ä¤µ¤ì¤ë¡£ -¥×¥í¥»¥¹¤ËŬÀÚ¤ÊÆø¢¤¬¤¢¤ë¾ì¹ç¡¢ -¼Â¸ú (effective) ¥æ¡¼¥¶ ID ¤¬¥Õ¥¡¥¤¥ë¤Î¥æ¡¼¥¶ ID ¤ÈÅù¤·¤¤¾ì¹ç¡¢ +タイムスタンプの変更は以下のいずれかの場合に許可される。 +プロセスに適切な特権がある場合、 +実効 (effective) ユーザ ID がファイルのユーザ ID と等しい場合、 .I times -¤¬ NULL ¤«¤Ä¡¢¥×¥í¥»¥¹¤¬¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤­¹þ¤ßµö²Ä¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¡£ +が NULL かつ、プロセスがファイルへの書き込み許可を持っている場合。 .\"O The .\"O .I utimbuf .\"O structure is: -¹½Â¤ÂÎ +構造体 .I utimbuf -¤Ï°Ê²¼¤Ë¼¨¤¹¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +は以下に示すようになっている。 .in +4n .nf struct utimbuf { .\"O time_t actime; /* access time */ .\"O time_t modtime; /* modification time */ - time_t actime; /* ¥¢¥¯¥»¥¹»þ¹ï */ - time_t modtime; /* ½¤Àµ»þ¹ï */ + time_t actime; /* アクセス時刻 */ + time_t modtime; /* 修正時刻 */ }; .fi .in @@ -121,7 +121,7 @@ struct utimbuf { .\"O system call .\"O allows specification of timestamps with a resolution of 1 second. .BR utime () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï 1 ÉäÎʬ²òǽ¤Ç¥¿¥¤¥à¥¹¥¿¥ó¥×¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +システムコールは 1 秒の分解能でタイムスタンプを指定することができる。 .\"O The .\"O .BR utimes () @@ -133,28 +133,28 @@ struct utimbuf { .\"O .I timeval .\"O structures, which allow a precision of 1 microsecond for specifying timestamps. .BR utimes () -¤Ï +は .BR utime () -¤ÈƱÍͤǤ¢¤ë¤¬¡¢ +と同様であるが、 .I times -°ú¤­¿ô¤¬¹½Â¤ÂΤǤϤʤ¯ÇÛÎó¤ò»²¾È¤¹¤ë¡£ -¤³¤ÎÇÛÎó¤ÎÍ×ÁÇ¤Ï +引き数が構造体ではなく配列を参照する。 +この配列の要素は .I timeval -¹½Â¤ÂΤǡ¢¥¿¥¤¥à¥¹¥¿¥ó¥×¤Î»ØÄê¤ò 1 ¥Þ¥¤¥¯¥íÉäÎʬ²òǽ¤Ç¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +構造体で、タイムスタンプの指定を 1 マイクロ秒の分解能で行うことができる。 .\"O The .\"O .I timeval .\"O structure is: -¹½Â¤ÂÎ +構造体 .I timeval -¤Ï°Ê²¼¤Ë¼¨¤¹Ä̤ê¤Ç¤¢¤ë¡£ +は以下に示す通りである。 .in +4n .nf struct timeval { .\"O long tv_sec; /* seconds */ - long tv_sec; /* Éà */ + long tv_sec; /* 秒 */ .\"O long tv_usec; /* microseconds */ - long tv_usec; /* ¥Þ¥¤¥¯¥íÉà */ + long tv_usec; /* マイクロ秒 */ }; .fi .in @@ -164,9 +164,9 @@ struct timeval { .\"O .IR times [1] .\"O specifies the new modification time. .IR times [0] -¤Ï¿·¤·¤¤¥¢¥¯¥»¥¹»þ¹ï¤ò¡¢ +は新しいアクセス時刻を、 .IR times [1] -¤Ï¿·¤·¤¤½¤Àµ»þ¹ï¤òµ¬Äꤹ¤ë¡£ +は新しい修正時刻を規定する。 .\"O If .\"O .I times .\"O is NULL, then analogously to @@ -174,20 +174,20 @@ struct timeval { .\"O the access and modification times of the file are .\"O set to the current time. .I times -¤¬ NULL ¤Î¾ì¹ç¡¢ +が NULL の場合、 .BR utime () -ƱÍÍ¡¢¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹»þ¹ï¤È½¤Àµ»þ¹ï¤Ï¸½ºß¤Î»þ¹ï¤ËÀßÄꤵ¤ì¤ë¡£ +同様、ファイルのアクセス時刻と修正時刻は現在の時刻に設定される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç 0 ¤¬Ê֤롣¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤¬Ê֤ꡢ +成功した場合 0 が返る。失敗した場合 \-1 が返り、 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤ˽¾¤Ã¤ÆÀßÄꤵ¤ì¤ë¡£ +がエラーの内容に従って設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O Search permission is denied for one of the directories in @@ -196,9 +196,9 @@ struct timeval { .\"O (see also .\"O .BR path_resolution (7)). .I path -¤ò¹½À®¤¹¤ë²¿¤ì¤«¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¸¡º÷µö²Ä¤¬¤Ê¤¤ +を構成する何れかのディレクトリに検索許可がない .RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È)¡£ +も参照すること)。 .TP .B EACCES .\"O .I times @@ -212,20 +212,20 @@ struct timeval { .\"O .B CAP_FOWNER .\"O capability). .I times -¤¬ NULL ¤Ç¤¢¤ë¡£ -¤Þ¤¿¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤¬¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤È°ìÃפ·¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤¬¤½¤Î¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤­¹þ¤ßµö²Ä¤ò»ý¤¿¤º¡¢ -Æø¢¤â»ý¤Ã¤Æ¤¤¤Ê¤¤ (Linux ¤Î¾ì¹ç¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ +が NULL である。 +または、呼び出し元の実効ユーザ ID がファイルの所有者と一致しない。 +または、呼び出し元がそのファイルへの書き込み許可を持たず、 +特権も持っていない (Linux の場合、ケーパビリティ .B CAP_DAC_OVERRIDE -¤â +も .B CAP_FOWNER -¤â»ý¤Ã¤Æ¤¤¤Ê¤¤)¡£¤Þ¤¿¤Ï¡¢ +も持っていない)。または、 .TP .B ENOENT .\"O .I filename .\"O does not exist. .I filename -¤¬Â¸ºß¤·¤Ê¤¤¡£ +が存在しない。 .TP .B EPERM .\"O .I times @@ -236,52 +236,52 @@ struct timeval { .\"O .B CAP_FOWNER .\"O capability). .I times -¤¬ NULL ¤Ç¤Ê¤¯¡¢¤«¤Ä¸Æ¤Ó½Ð¤·¸µ¤Î¼Â¸ú UID ¤¬¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤È°ìÃפ»¤º¡¢ -¤«¤Ä¸Æ¤Ó½Ð¤·¸µ¤¬Æø¢¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤ -(Linux ¤Î¾ì¹ç¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ +が NULL でなく、かつ呼び出し元の実効 UID がファイルの所有者と一致せず、 +かつ呼び出し元が特権を持っていない +(Linux の場合、ケーパビリティ .B CAP_FOWNER -¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤)¡£ +を持っていない)。 .TP .B EROFS .\"O .I path .\"O resides on a read-only file system. .I path -¤¬Æɤ߹þ¤ßÀìÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ë¤¢¤ë¡£ +が読み込み専用のファイルシステム上にある。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .BR utime (): SVr4, POSIX.1-2001. .\"O POSIX.1-2008 marks .\"O .BR utime () .\"O as obsolete. -POSIX.1-2008 ¤Ï +POSIX.1-2008 は .BR utime () -¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£ +を廃止予定としている。 .br .BR utimes (): 4.3BSD, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Linux does not allow changing the timestamps on an immutable file, .\"O or setting the timestamps to something other than the current time .\"O on an append-only file. -Linux ¤Ç¤Ï¡¢ÉÔÊÑ (immutable) ¥Õ¥¡¥¤¥ë¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×¤òÊѹ¹¤·¤¿¤ê¡¢ -ÄɲÃÀìÍÑ (append-only) ¤Î¥Õ¥¡¥¤¥ë¤Ë¸½ºß»þ¹ï°Ê³°¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×¤ò -ÀßÄꤷ¤¿¤ê¤¹¤ë¤³¤È¤Ï¡¢µö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +Linux では、不変 (immutable) ファイルのタイムスタンプを変更したり、 +追加専用 (append-only) のファイルに現在時刻以外のタイムスタンプを +設定したりすることは、許可されていない。 .\"O In libc4 and libc5, .\"O .BR utimes () .\"O is just a wrapper for .\"O .BR utime () .\"O and hence does not allow a subsecond resolution. -libc4 ¤È libc5 ¤Ç¤Ï¡¢ +libc4 と libc5 では、 .BR utimes () -¤Ïñ¤Ë +は単に .BR utime () -¤Î¥é¥Ã¥Ñ¡¼ (wrapper) ¤Ç¤¢¤ë¡£ -¤½¤Î¤¿¤áÉðʲ¼¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +のラッパー (wrapper) である。 +そのため秒以下を指定することはできない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chattr (1), .BR futimesat (2), .BR stat (2), diff --git a/draft/man2/vfork.2 b/draft/man2/vfork.2 index 6c39d052..b20a11a8 100644 --- a/draft/man2/vfork.2 +++ b/draft/man2/vfork.2 @@ -31,11 +31,11 @@ .\" .TH VFORK 2 2010-09-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O vfork \- create a child process and block parent -vfork \- »Ò¥×¥í¥»¥¹¤òÀ¸À®¤·¿Æ¥×¥í¥»¥¹¤òÄä»ß¤µ¤»¤ë +vfork \- 子プロセスを生成し親プロセスを停止させる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include @@ -45,9 +45,9 @@ vfork \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR vfork (): @@ -56,7 +56,7 @@ glibc .PD 0 .TP 4 .\"O Since glibc 2.12: -glibc 2.12 °Ê¹ß: +glibc 2.12 以降: .nf _BSD_SOURCE || (_XOPEN_SOURCE\ >=\ 500 || @@ -65,18 +65,18 @@ _BSD_SOURCE || .fi .TP 4 .\"O Before glibc 2.12: -glibc 2.12 ¤è¤êÁ°: +glibc 2.12 より前: _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .PD .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .SS "Standard Description" -.SS µ¬³Ê¤ÎÀâÌÀ +.SS 規格の説明 .\"O (From POSIX.1) -(POSIX.1 ¤è¤ê°úÍÑ) +(POSIX.1 より引用) .\"O The .\"O .BR vfork () .\"O function has the same effect as @@ -95,24 +95,24 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O .BR exec (3) .\"O family of functions. .BR vfork () -´Ø¿ô¤Ï +関数は .BR fork (2) -¤ÈƱ¤¸Æ¯¤­¤ò¤¹¤ë¤¬¡¢ +と同じ働きをするが、 .BR vfork () -¤ÇºîÀ®¤µ¤ì¤¿¥×¥í¥»¥¹¤¬ +で作成されたプロセスが .BR vfork () -¤«¤é¤ÎÊÖ¤êÃͤò³ÊǼ¤·¤Æ¤¤¤ë +からの返り値を格納している .I pid_t -·¿¤ÎÊÑ¿ô°Ê³°¤òÊѹ¹¤·¤¿¤ê¡¢ +型の変数以外を変更したり、 .BR vfork () -¤ò¸Æ¤Ó½Ð¤·¤Æ¤¤¤ë´Ø¿ô¤«¤é return ¤·¤¿¤ê¡¢ +を呼び出している関数から return したり、 .BR _exit (2) -¤ä +や .BR exec (3) -²¤Î´Ø¿ô¤ò¥³¡¼¥ë¤¹¤ëÁ°¤Ë¾¤Î´Ø¿ô¤ò¥³¡¼¥ë¤·¤¿¾ì¹ç¤ÎÆ°ºî¤¬ -̤ÄêµÁ¤Ç¤¢¤ë¤È¤¤¤¦ÅÀ¤¬°Û¤Ê¤ë¡£ +族の関数をコールする前に他の関数をコールした場合の動作が +未定義であるという点が異なる。 .\"O .SS "Linux Description" -.SS "LINUX ¤Ç¤ÎÀâÌÀ" +.SS "LINUX での説明" .\"O .BR vfork (), .\"O just like .\"O .BR fork (2), @@ -120,12 +120,12 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O For details and return value and errors, see .\"O .BR fork (2). .BR vfork () -¤Ï +は .BR fork (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤òÀ¸À®¤¹¤ë¡£ -¾Ü¤·¤¤ÀâÌÀ¤ÈÊÖ¤êÃÍ¡¢¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Ï +と全く同じように呼び出したプロセスの子プロセスを生成する。 +詳しい説明と返り値、エラーについては .BR fork (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .PP .\"O .BR vfork () .\"O is a special case of @@ -136,14 +136,14 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O where a child is created which then immediately issues an .\"O .BR execve (2). .BR vfork () -¤Ï +は .BR clone (2) -¤ÎÆüì¤Ê¾ì¹ç¤Ç¤¢¤ë¡£ -¿Æ¥×¥í¥»¥¹¤Î¥Ú¡¼¥¸¥Æ¡¼¥Ö¥ë¤Î¥³¥Ô¡¼¤ò¹Ô¤ï¤º¤Ë¿·¤·¤¤¥×¥í¥»¥¹¤ò -ºîÀ®¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£¤³¤ì¤ÏÀ­Ç½¤ËÉÒ´¶¤Ê¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤ª¤¤¤Æ -»Ò¥×¥í¥»¥¹¤òÀ¸À®¤·¤Æ¤¹¤°¤Ë +の特殊な場合である。 +親プロセスのページテーブルのコピーを行わずに新しいプロセスを +作成するために使用する。これは性能に敏感なアプリケーションにおいて +子プロセスを生成してすぐに .BR execve (2) -¤¹¤ë¾ì¹ç¤ËÍ­ÍѤ«¤â¤·¤ì¤Ê¤¤¡£ +する場合に有用かもしれない。 .PP .\"O .BR vfork () .\"O differs from @@ -156,28 +156,28 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O or it makes a call to .\"O .BR execve (2). .BR vfork () -¤Ï +は .BR fork (2) -¤È°ã¤¤¡¢»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤«¡¢ +と違い、子プロセスが終了するか、 .BR execve (2) -¤ò¥³¡¼¥ë¤¹¤ë¤Þ¤Ç¿Æ¥×¥í¥»¥¹¤òÄä»ß (suspend) ¤µ¤»¤ë¡£ -»Ò¥×¥í¥»¥¹¤Î½ªÎ»¤Ï¡¢ +をコールするまで親プロセスを停止 (suspend) させる。 +子プロセスの終了は、 .BR _exit (2) -¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤ëÄ̾ェλ¡¢ -Ã×̿Ū¤Ê¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¸å¤Î°Û¾ï½ªÎ»¤ÎÆó¤Ä¤Î¥±¡¼¥¹¤¬¤¢¤ë¡£ +の呼び出しによる通常終了、 +致命的なシグナルの配送後の異常終了の二つのケースがある。 .\"O Until that point, the child shares all memory with its parent, .\"O including the stack. .\"O The child must not return from the current function or call .\"O .BR exit (3), .\"O but may call .\"O .BR _exit (2). -¤³¤Î»þÅÀ¤Þ¤Ç¤Ï¡¢»Ò¥×¥í¥»¥¹¤Ï¥¹¥¿¥Ã¥¯¤ò´Þ¤àÁ´¤Æ¤Î¥á¥â¥ê¤ò -¿Æ¥×¥í¥»¥¹¤È¶¦Í­¤¹¤ë¡£ -»Ò¥×¥í¥»¥¹¤Ï¸½ºß¤Î´Ø¿ô¤«¤é return ¤·¤Æ¤Ï¤Ê¤é¤º¡¢ +この時点までは、子プロセスはスタックを含む全てのメモリを +親プロセスと共有する。 +子プロセスは現在の関数から return してはならず、 .BR exit (3) -¤â¥³¡¼¥ë¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¤¬¡¢ +もコールしてはならないが、 .BR _exit (2) -¤Ê¤é¤Ð¥³¡¼¥ë¤·¤Æ¤â¤è¤¤¡£ +ならばコールしてもよい。 .PP .\"O Signal handlers are inherited, but not shared. .\"O Signals to the parent @@ -185,26 +185,26 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O (i.e., after the child terminates .\"O or calls .\"O .BR execve (2)). -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ï·Ñ¾µ¤µ¤ì¤ë¤¬¡¢¶¦Í­¤Ï¤µ¤ì¤Ê¤¤¡£ -¿Æ¥×¥í¥»¥¹¤Ø¤Î¥·¥°¥Ê¥ë¤Ï¡¢»Ò¥×¥í¥»¥¹¤¬¿Æ¥×¥í¥»¥¹¤Î¥á¥â¥ê¤ò -²òÊü¤·¤¿¸å (¤¹¤Ê¤ï¤Á¡¢»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤« +シグナルハンドラは継承されるが、共有はされない。 +親プロセスへのシグナルは、子プロセスが親プロセスのメモリを +解放した後 (すなわち、子プロセスが終了するか .BR execve (2) -¤ò¸Æ¤ó¤À¸å) ¤ËÅþÃ夹¤ë¡£ +を呼んだ後) に到着する。 .\"O .SS "Historic Description" -.SS Îò»ËŪ¤ÊÀâÌÀ +.SS 歴史的な説明 .\"O Under Linux, .\"O .BR fork (2) .\"O is implemented using copy-on-write pages, so the only penalty incurred by .\"O .BR fork (2) .\"O is the time and memory required to duplicate the parent's page tables, .\"O and to create a unique task structure for the child. -Linux ¤Ë¤ª¤¤¤Æ +Linux において .BR fork (2) -¤Ï½ñ¤­¹þ¤ß»þ¥³¥Ô¡¼ (copy-on-write) ¥Ú¡¼¥¸¤ò»ÈÍѤ·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -¤½¤Î¤¿¤á +は書き込み時コピー (copy-on-write) ページを使用して実装されている。 +そのため .BR fork (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¤Ë¤è¤Ã¤ÆÈï¤ë»³²¤Ï¿Æ¥×¥í¥»¥¹¤Î¥Ú¡¼¥¸¡¦¥Æ¡¼¥Ö¥ë¤ò -Ê£À½¤¹¤ë¤¿¤á¤ËɬÍפʻþ´Ö¤È¥á¥â¥ê¤À¤±¤Ç¤¢¤ë¡£ +を使用することによって被る損害は親プロセスのページ・テーブルを +複製するために必要な時間とメモリだけである。 .\"O However, in the bad old days a .\"O .BR fork (2) .\"O would require making a complete copy of the caller's data space, @@ -225,32 +225,32 @@ Linux .\"O was tricky: for example, not modifying data .\"O in the parent process depended on knowing which variables were .\"O held in a register. -¤·¤«¤·¤Ê¤¬¤é¡¢´÷¤·¤­ÀÎ¤Ë¤Ï +しかしながら、忌しき昔には .BR fork (2) -¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥Ç¡¼¥¿¶õ´Ö¤ÎÁ´¤Æ¤Î¥³¥Ô¡¼¤·¤Æ¤¤¤¿¤¬¡¢ -¤³¤ì¤Ï¤·¤Ð¤·¤ÐÉÔɬÍפǤ¢¤Ã¤¿¡£¤Ê¤¼¤Ê¤é¡¢¤¿¤¤¤Æ¤¤¤Ï¤¹¤°¸å¤Ë +は呼び出したプロセスのデータ空間の全てのコピーしていたが、 +これはしばしば不必要であった。なぜなら、たいていはすぐ後に .BR exec (3) -¤ò¼Â¹Ô¤·¤Æ¤¤¤¿¤«¤é¤Ç¤¢¤ë¡£ -¤³¤Î¾ì¹ç¤Î¸úΨ¤ò¾å¤²¤ë¤¿¤á¤Ë BSD ¤Ï +を実行していたからである。 +この場合の効率を上げるために BSD は .BR vfork () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤òƳÆþ¤·¤Æ¿Æ¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ò´°Á´¤Ë¥³¥Ô¡¼ -¤¹¤ë¤«¤ï¤ê¤Ë¡¢ +システムコールを導入して親プロセスのアドレス空間を完全にコピー +するかわりに、 .BR execve (2) -¤ò¥³¡¼¥ë¤¹¤ë¤« exit ¤¬µ¯¤­¤ë¤Þ¤Ç¿Æ¥×¥í¥»¥¹¤Î¥á¥â¥ê¤ÈÀ©¸æ¥¹¥ì¥Ã¥É -¤ò¼Ú¤ê¤ë¤è¤¦¤Ë¤·¤¿¡£ -¿Æ¥×¥í¥»¥¹¤Ï»Ò¥×¥í¥»¥¹¤¬¤½¤Î»ñ¸»¤ò»ÈÍѤ·¤Æ¤¤¤ë´Ö¤ÏÄä»ß¤µ¤ì¤¿¡£ +をコールするか exit が起きるまで親プロセスのメモリと制御スレッド +を借りるようにした。 +親プロセスは子プロセスがその資源を使用している間は停止された。 .BR vfork () -¤Ï»È¤¤¤Ë¤¯¤¤¤â¤Î¤Ç¤¢¤Ã¤¿: Î㤨¤Ð¡¢¿Æ¥×¥í¥»¥¹¤ÎÊÑ¿ô¤òÊѹ¹¤·¤Ê -¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¤É¤ÎÊÑ¿ô¤¬¥ì¥¸¥¹¥¿¤ËÊÝ»ý¤µ¤ì¤Æ¤¤¤ë¤«¤òÃΤé¤Ê -¤±¤ì¤Ð¤Ê¤é¤Ê¤«¤Ã¤¿¡£ +は使いにくいものであった: 例えば、親プロセスの変数を変更しな +いようにするためにはどの変数がレジスタに保持されているかを知らな +ければならなかった。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.3BSD, POSIX.1-2001. .\"O POSIX.1-2008 removes the specification of .\"O .BR vfork (). -POSIX.1-2008 ¤Ç¤Ï¡¢ +POSIX.1-2008 では、 .BR vfork () -¤Îµ¬Ä꤬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ +の規定が削除されている。 .\"O The requirements put on .\"O .BR vfork () .\"O by the standards are weaker than those put on @@ -261,22 +261,22 @@ POSIX.1-2008 .\"O .BR execve (2), .\"O and cannot rely on any specific behavior with respect to shared memory. .BR vfork () -¥³¡¼¥ë¤Ï¾¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤ÎƱ̾¤Î¥³¡¼¥ë¤È -¤Á¤ç¤Ã¤È»÷¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£µ¬³Ê¤¬ +コールは他のオペレーティング・システムの同名のコールと +ちょっと似ているかもしれない。規格が .BR vfork () -¤ËÍ׵ᤷ¤Æ¤¤¤ë¤³¤È¤Ï¡¢ +に要求していることは、 .BR fork (2) -¤ËÍ׵ᤷ¤Æ¤¤¤ë¤³¤È¤è¤ê¤Ï¼å¤¤¡£¤·¤¿¤¬¤Ã¤Æ¡¢ -ξ¼Ô¤òƱ¤¸¤â¤Î¤È¤·¤Æ¼ÂÁõ¤·¤Æ¤â¡¢µ¬³Ê¤Ë½àµò¤·¤Æ¤¤¤ë¤³¤È¤Ë¤Ê¤ë¡£ -ÆÃ¤Ë¥×¥í¥°¥é¥Þ¡¼¤Ï¡¢»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤« +に要求していることよりは弱い。したがって、 +両者を同じものとして実装しても、規格に準拠していることになる。 +特にプログラマーは、子プロセスが終了するか .BR execve (2) -¤ò¸Æ¤Ó½Ð¤¹¤Þ¤Ç¿Æ¥×¥í¥»¥¹¤¬Ää»ß¤·¤Æ¤¤¤ë¤³¤È¤ä¡¢¥á¥â¥ê¤ò¶¦Í­¤¹¤ë¤³ -¤È¤Ë¤è¤ëÆüì¤ÊÆ°ºî¤ò¤¢¤Æ¤Ë¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +を呼び出すまで親プロセスが停止していることや、メモリを共有するこ +とによる特殊な動作をあてにすべきではない。 .\" In AIXv3.1 vfork is equivalent to fork. .\"O .SH NOTES .\"O .SS Linux Notes -.SH Ãí°Õ -.SS Linux ¤Ç¤ÎÃí°Õ +.SH 注意 +.SS Linux での注意 .\"O Fork handlers established using .\"O .BR pthread_atfork (3) .\"O are not called when a multithreaded program employing @@ -288,43 +288,43 @@ POSIX.1-2008 .\"O .BR pthreads (7) .\"O for a description of Linux threading libraries.) .BR pthread_atfork (3) -¤ò»È¤Ã¤ÆÀßÄꤵ¤ì¤¿ fork ¥Ï¥ó¥É¥é¤Ï -NPTL ¥¹¥ì¥Ã¥É¥é¥¤¥Ö¥é¥ê¥³¡¼¥ë¤òºÎÍѤ·¤¿¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥×¥í¥°¥é¥à¤Ç¤Ï -¸Æ¤Ó½Ð¤µ¤ì¤Ê¤¤¡£°ìÊý¡¢LinuxThreads ¥¹¥ì¥Ã¥É¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤¿ -¥×¥í¥°¥é¥à¤Ç¤Ï¡¢fork ¥Ï¥ó¥É¥é¤Ï¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ -(Linux ¤Î¥¹¥ì¥Ã¥É¥é¥¤¥Ö¥é¥ê¤ÎÀâÌÀ¤Ï +を使って設定された fork ハンドラは +NPTL スレッドライブラリコールを採用したマルチスレッドプログラムでは +呼び出されない。一方、LinuxThreads スレッドライブラリを使った +プログラムでは、fork ハンドラは呼び出される。 +(Linux のスレッドライブラリの説明は .BR pthreads (7) -¤ò»²¾È¡£) +を参照。) .\"O .SS History -.SS Îò»Ë +.SS 歴史 .\"O The .\"O .BR vfork () .\"O system call appeared in 3.0BSD. .BR vfork () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï 3.0BSD ¤Ë¸½¤ï¤ì¤¿¡£ +システムコールは 3.0BSD に現われた。 .\" In the release notes for 4.2BSD Sam Leffler wrote: `vfork: Is still .\" present, but definitely on its way out'. .\"O In 4.4BSD it was made synonymous to .\"O .BR fork (2) .\"O but NetBSD introduced it again, .\"O cf. http://www.netbsd.org/Documentation/kernel/vfork.html . -4.4BSD ¤Ë¤ª¤¤¤Æ +4.4BSD において .BR fork (2) -¤ÎƱµÁ¸ì¤È¤Ê¤Ã¤¿¤¬¡¢NetBSD ¤Ç¤ÏºÆ¤ÓƳÆþ¤µ¤ì¤¿¡£ -http://www.netbsd.org/Documentation/kernel/vfork.html ¤ò»²¾È¡£ +の同義語となったが、NetBSD では再び導入された。 +http://www.netbsd.org/Documentation/kernel/vfork.html を参照。 .\"O In Linux, it has been equivalent to .\"O .BR fork (2) .\"O until 2.2.0-pre6 or so. .\"O Since 2.2.0-pre9 (on i386, somewhat later on .\"O other architectures) it is an independent system call. .\"O Support was added in glibc 2.0.112. -Linux ¤Ç¤Ï 2.2.0-pre6 ¤¢¤¿¤ê¤Þ¤Ç¤Ï +Linux では 2.2.0-pre6 あたりまでは .BR fork (2) -¤ÈÅù²Á¤Ç¤¢¤Ã¤¿¡£(i386 ¤Ç¤Ï) 2.2.0-pre9 ¤«¤é (¾¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï -¾¯¤·ÃÙ¤ì¤Æ) ÆÈΩ¤·¤¿¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¤Ê¤Ã¤¿¡£ -glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï glibc-2.0.112 ¤ÇÄɲ䵤줿¡£ +と等価であった。(i386 では) 2.2.0-pre9 から (他のアーキテクチャでは +少し遅れて) 独立したシステムコールとなった。 +glibc でのサポートは glibc-2.0.112 で追加された。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O It is rather unfortunate that Linux revived this specter from the past. .\"O The BSD man page states: .\"O "This system call will be eliminated when proper system sharing mechanisms @@ -334,15 +334,15 @@ glibc .\"O as it will, in that case, be made synonymous to .\"O .BR fork (2).\c .\"O " -Linux ¤¬¤³¤Î²áµî¤ÎË´Îî¤òÉü³è¤µ¤»¤¿¤³¤È¤Ï¡¢¤à¤·¤íÉÔ¹¬¤È¸À¤¦¤Ù¤­¤Ç¤¢¤ë¡£ -BSD ¤Î¥Þ¥Ë¥å¥¢¥ë¤Ë¤Ï¡¢ -¡Ö¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÂÅÅö¤Ê¥·¥¹¥Æ¥à¶¦Í­µ¡¹½¤¬¼ÂÁõ¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï -ºï½ü¤µ¤ì¤ë¡£¥æ¡¼¥¶¤Ï +Linux がこの過去の亡霊を復活させたことは、むしろ不幸と言うべきである。 +BSD のマニュアルには、 +「このシステムコールは妥当なシステム共有機構が実装された場合には +削除される。ユーザは .BR vfork () -¤Î¥á¥â¥ê¶¦Í­µ¡Ç½¤Ë°Í¸¤¹¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£²¿¸Î¤Ê¤é¤Ð¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë -¤¬ºï½ü¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢¤½¤ì¤Ï +のメモリ共有機能に依存するべきではない。何故ならば、このシステムコール +が削除された場合には、それは .BR fork (2) -¤ÎƱµÁ¸ì¤È¤µ¤ì¤ë¤«¤é¤Ç¤¢¤ë¡£¡×¤È½ñ¤«¤ì¤Æ¤¤¤ë¡£ +の同義語とされるからである。」と書かれている。 .\"O Details of the signal handling are obscure and differ between systems. .\"O The BSD man page states: @@ -356,19 +356,19 @@ BSD .\"O signals; rather, output or .\"O .IR ioctl s .\"O are allowed and input attempts result in an end-of-file indication." -¥·¥°¥Ê¥ë¤Î°·¤¤¤Î¾ÜºÙ¤ÏÉÔÌÀÎƤǥ·¥¹¥Æ¥à¤´¤È¤Ë°Û¤Ã¤Æ¤¤¤ë¡£ -BSD ¤Î¥Þ¥Ë¥å¥¢¥ë¤Ë¤Ï¡¢ -¡Ö¥Ç¥Ã¥É¥í¥Ã¥¯¾õÂ֤ˤʤë²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç +シグナルの扱いの詳細は不明瞭でシステムごとに異っている。 +BSD のマニュアルには、 +「デッドロック状態になる可能性があるので .BR vfork () -¤ÎÅÓÃæ¤Î»Ò¥×¥í¥»¥¹¤Ë +の途中の子プロセスに .B SIGTTOU -¤ä +や .B SIGTTIN -¥·¥°¥Ê¥ë¤òÁ÷¿®¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤; -¤µ¤é¤Ë½ÐÎϤä +シグナルを送信してはならない; +さらに出力や .I ioctl -¤Ïµö¤µ¤ì¤ë¤¬¡¢ÆþÎϤò»î¤ß¤¿¾ì¹ç¤Ë¤Ï·ë²Ì¤Ï¥Õ¥¡¥¤¥ë½ªÃ¼ (EOF) ¤Ë¤Ê¤ë¡£¡× -¤È½ñ¤«¤ì¤Æ¤¤¤ë¡£ +は許されるが、入力を試みた場合には結果はファイル終端 (EOF) になる。」 +と書かれている。 .\" .\" As far as I can tell, the following is not true in 2.6.19: .\"O .\" Currently (Linux 2.3.25), @@ -376,13 +376,13 @@ BSD .\"O .\" cannot follow .\"O .\" .BR vfork () .\"O .\" and requires a kernel patch. -.\" ¸½ºß¤Î¤È¤³¤í (Linux 2.3.25)¡¢ +.\" 現在のところ (Linux 2.3.25)、 .\" .BR strace (1) -.\" ¤Ï +.\" は .\" .BR vfork () -.\" ¤òÄÉÀפ¹¤ë¤³¤È¤¬¤Ç¤­¤º¡¢¥«¡¼¥Í¥ë¥Ñ¥Ã¥Á¤¬É¬ÍפǤ¢¤ë¡£ +.\" を追跡することができず、カーネルパッチが必要である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR clone (2), .BR execve (2), .BR fork (2), diff --git a/draft/man2/vhangup.2 b/draft/man2/vhangup.2 index 47c6aca0..7c0359ef 100644 --- a/draft/man2/vhangup.2 +++ b/draft/man2/vhangup.2 @@ -31,17 +31,17 @@ .\" Updated & Modified Tue Feb 15 03:38:03 JST 2005 .\" by Yuichi SATO .\" -.\"WORD: virtualy ²¾ÁÛŪ¤Ë -.\"WORD: hangup ¥Ï¥ó¥°¥¢¥Ã¥× -.\"WORD: terminal üËö +.\"WORD: virtualy 仮想的に +.\"WORD: hangup ハングアップ +.\"WORD: terminal 端末 .\" .TH VHANGUP 2 2007-07-26 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O vhangup \- virtually hangup the current tty -vhangup \- ¸½ºß¤Î tty ¤ò²¾ÁÛŪ¤Ë (virtualy) ¥Ï¥ó¥°¥¢¥Ã¥× (hangup) ¤µ¤»¤ë +vhangup \- 現在の tty を仮想的に (virtualy) ハングアップ (hangup) させる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .B int vhangup(void); @@ -49,9 +49,9 @@ vhangup \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -59,45 +59,45 @@ glibc _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR vhangup () .\"O simulates a hangup on the current terminal. .\"O This call arranges for other .\"O users to have a \*(lqclean\*(rq tty at login time. .BR vhangup () -¤Ï¸½ºß¤ÎüËö (terminal) ¤Ç¥Ï¥ó¥°¥¢¥Ã¥×¤ò¥·¥ß¥å¥ì¡¼¥È¤¹¤ë¡£ -¤³¤Î¥³¡¼¥ë¤Ï¾¤Î¥æ¡¼¥¶¡¼¤¬¥í¥°¥¤¥ó¤·¤¿»þ¤ËåºÎï (clean) ¤Ê tty ¤ò -ÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¼êÇÛ¤¹¤ë¡£ +は現在の端末 (terminal) でハングアップをシミュレートする。 +このコールは他のユーザーがログインした時に綺麗 (clean) な tty を +得ることができるよう手配する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合は 0 が返される。エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EPERM .\"O The calling process has insufficient privilege to call .\"O .BR vhangup (); -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë +呼び出し元プロセスに .BR vhangup () -¤ò¸Æ¤Ó½Ð¤¹¤¿¤á¤Î½½Ê¬¤ÊÆø¢¤¬¤Ê¤¤¡£ +を呼び出すための十分な特権がない。 .\"O the .\"O .B CAP_SYS_TTY_CONFIG .\"O capability is required. .B CAP_SYS_TTY_CONFIG -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティ (capability) が必要である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This call is Linux-specific, and should not be used in programs .\"O intended to be portable. -¤³¤Î¥³¡¼¥ë¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç -»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ +このコールは Linux 特有であり、移植を意図したプログラムで +使用してはいけない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR capabilities (7), .BR init (8) diff --git a/draft/man2/vm86.2 b/draft/man2/vm86.2 index 75c75ecb..c6b50b02 100644 --- a/draft/man2/vm86.2 +++ b/draft/man2/vm86.2 @@ -34,18 +34,18 @@ .\" .TH VM86 2 2009-02-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O vm86old, vm86 \- enter virtual 8086 mode -vm86old, vm86 \- ²¾ÁÛ 8086 ¥â¡¼¥É¤Ø°Ü¹Ô¤¹¤ë +vm86old, vm86 \- 仮想 8086 モードへ移行する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int vm86old(struct vm86_struct *" info ); .sp .BI "int vm86(unsigned long " fn ", struct vm86plus_struct *" v86 ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The system call .\"O .BR vm86 () .\"O was introduced in Linux 0.97p2. @@ -57,60 +57,60 @@ vm86old, vm86 \- .\"O The definition of \fIstruct vm86_struct\fP was changed .\"O in 1.1.8 and 1.1.9. .BR vm86 () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 0.97p2 ¤ÇƳÆþ¤µ¤ì¤¿¡£ -¤³¤ì¤Ï Linux 2.1.15 ¤È 2.0.28 ¤Ç +システムコールは Linux 0.97p2 で導入された。 +これは Linux 2.1.15 と 2.0.28 で .BR vm86old () -¤Ë̾Á°¤¬Êѹ¹¤µ¤ì¡¢ -¿·¤·¤¤ +に名前が変更され、 +新しい .BR vm86 () -¤¬Æ³Æþ¤µ¤ì¤¿¡£ -\fIstruct vm86_struct\fP ¤ÎÄêµÁ¤Ï 1.1.8 ¤È 1.1.9 ¤ÇÊѹ¹¤µ¤ì¤¿¡£ +が導入された。 +\fIstruct vm86_struct\fP の定義は 1.1.8 と 1.1.9 で変更された。 .LP .\"O These calls cause the process to enter VM86 mode (virtual-8086 in Intel .\"O literature), and are used by .\"O .BR dosemu . -¤³¤ì¤é¤Î¥³¡¼¥ë¤Ë¤è¤Ã¤Æ¥×¥í¥»¥¹¤Ï VM86 ¥â¡¼¥É -(Intel ¤Îʸ½ñ¤Ç¤Ï²¾ÁÛ 8086 ¥â¡¼¥É) ¤Ø¤È°Ü¹Ô¤¹¤ë¡£ -¤³¤ì¤é¤Î¥³¡¼¥ë¤Ï +これらのコールによってプロセスは VM86 モード +(Intel の文書では仮想 8086 モード) へと移行する。 +これらのコールは .B dosemu -¤Ç»ÈÍѤµ¤ì¤ë¡£ +で使用される。 .PP .\"O VM86 mode is an emulation of real mode within a protected mode task. -VM86 ¥â¡¼¥É¤Ï¥×¥í¥Æ¥¯¥È¥â¡¼¥É¥¿¥¹¥¯¤Ë¤ª¤±¤ë -¥ê¥¢¥ë¥â¡¼¥É¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤Ç¤¢¤ë¡£ +VM86 モードはプロテクトモードタスクにおける +リアルモードのエミュレーションである。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +成功した場合は 0 を返す。失敗した場合は \-1 を返し、 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤ˽¾¤Ã¤ÆÀßÄꤵ¤ì¤ë¡£ +がエラーの内容に従って設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EFAULT .\"O This return value is specific to i386 and indicates a problem with getting .\"O userspace data. -¤³¤ÎÊÖ¤êÃÍ¤Ï i386 ¸ÇÍ­¤Î¤â¤Î¤Ç¤¢¤ê¡¢ -¥æ¡¼¥¶¡¼¶õ´Ö¤Î¥Ç¡¼¥¿¤ò¼èÆÀ¤¹¤ëºÝ¤ËÌäÂ꤬¤¢¤Ã¤¿¤³¤È¤ò¼¨¤¹¡£ +この返り値は i386 固有のものであり、 +ユーザー空間のデータを取得する際に問題があったことを示す。 .TP .B ENOSYS .\"O This return value indicates the call is not implemented on the present .\"O architecture. -¤³¤ÎÊÖ¤êÃͤϡ¢¤³¤Î¥³¡¼¥ë¤¬¸½ºß¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò¼¨¤¹¡£ +この返り値は、このコールが現在のアーキテクチャで実装されていないことを示す。 .TP .B EPERM .\"O Saved kernel stack exists. .\"O (This is a kernel sanity check; the saved .\"O stack should only exist within vm86 mode itself.) -Êݸ¤µ¤ì¤¿¥«¡¼¥Í¥ë¥¹¥¿¥Ã¥¯¤¬´û¤Ë¸ºß¤·¤Æ¤¤¤ë¡£(¤³¤ì¤Ï¥«¡¼¥Í¥ë¤¬Ä̾ï¤Î -¾õÂ֤Ǥ¢¤ë¤«¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤¤¤ë¡£Êݸ¤µ¤ì¤¿¥¹¥¿¥Ã¥¯¤Ï vm86 ¥â¡¼¥É¤Ç -¤·¤«Â¸ºß¤·¤Ê¤¤¡£) +保存されたカーネルスタックが既に存在している。(これはカーネルが通常の +状態であるかをチェックしている。保存されたスタックは vm86 モードで +しか存在しない。) .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This call is specific to Linux on 32-bit Intel processors, .\"O and should not be used in programs intended to be portable. -¤³¤Î´Ø¿ô¤Ï 32 ¥Ó¥Ã¥È Intel ¥×¥í¥»¥Ã¥µ¾å¤Î Linux ÆÃÍ­¤Î´Ø¿ô¤Ç¤¢¤ê¡¢ -°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ¹¤Ù¤­¤Ç¤Ê¤¤¡£ +この関数は 32 ビット Intel プロセッサ上の Linux 特有の関数であり、 +移植を意図したプログラムでは使用すべきでない。 diff --git a/draft/man2/vmsplice.2 b/draft/man2/vmsplice.2 index bf2bfd91..746d0447 100644 --- a/draft/man2/vmsplice.2 +++ b/draft/man2/vmsplice.2 @@ -30,13 +30,13 @@ .TH VMSPLICE 2 2009-09-15 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O vmsplice \- splice user pages into a pipe -.SH ̾Á° -vmsplice \- ¥æ¡¼¥¶¡¦¥Ú¡¼¥¸¤ò¥Ñ¥¤¥×¤Ë·Ñ¤®¹ç¤ï¤»¤ë +.SH 名前 +vmsplice \- ユーザ・ページをパイプに継ぎ合わせる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .B #include @@ -45,7 +45,7 @@ vmsplice \- .fi .\" Return type was long before glibc 2.7 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\" Linus: vmsplice() system call to basically do a "write to .\" the buffer", but using the reference counting and VM traversal .\" to actually fill the buffer. This means that the user needs to @@ -64,13 +64,13 @@ vmsplice \- .\"O .I fd .\"O must refer to a pipe. .BR vmsplice () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ +システムコールは、 .I iov -¤Ç»ØÄꤵ¤ì¤¿¥æ¡¼¥¶¡¦¥á¥â¥ê¤Î +で指定されたユーザ・メモリの .I nr_segs -¤ÎÈϰϤò¥Ñ¥¤¥×¤Ë¥Þ¥Ã¥Ô¥ó¥°¤¹¤ë¡£ +の範囲をパイプにマッピングする。 .I fd -¤Ï¥Ñ¥¤¥×¤ò»²¾È¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +はパイプを参照していなければならない。 .\"O The pointer .\"O .I iov @@ -78,23 +78,23 @@ vmsplice \- .\"O .I iovec .\"O structures as defined in .\"O .IR : -¥Ý¥¤¥ó¥¿ +ポインタ .I iov -¤Ï +は .I iovec -¹½Â¤ÂΤÎÇÛÎó¤ò»Ø¤¹¡£ +構造体の配列を指す。 .I iovec -¹½Â¤ÂÎ¤Ï +構造体は .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +で以下のように定義されている: .in +4n .nf struct iovec { .\"O void *iov_base; /* Starting address */ .\"O size_t iov_len; /* Number of bytes */ - void *iov_base; /* ³«»Ï¥¢¥É¥ì¥¹ */ - size_t iov_len; /* ¥Ð¥¤¥È¿ô */ + void *iov_base; /* 開始アドレス */ + size_t iov_len; /* バイト数 */ }; .in .fi @@ -104,7 +104,7 @@ struct iovec { .\"O argument is a bit mask that is composed by ORing together .\"O zero or more of the following values: .I flags -°ú¤­¿ô¤Ë¤Ï¡¢°Ê²¼¤ÎÃͤΠ0 ¸Ä°Ê¾å¤ò¥Ó¥Ã¥ÈËè¤ÎÏÀÍýϤηÁ¤Ç»ØÄꤹ¤ë¡£ +引き数には、以下の値の 0 個以上をビット毎の論理和の形で指定する。 .TP 1.9i .B SPLICE_F_MOVE .\"O Unused for @@ -112,9 +112,9 @@ struct iovec { .\"O see .\"O .BR splice (2). .BR vmsplice () -¤Ç¤Ï̤»ÈÍÑ¡£ +では未使用。 .BR splice (2) -»²¾È¡£ +参照。 .TP .B SPLICE_F_NONBLOCK .\" Not used for vmsplice @@ -122,53 +122,53 @@ struct iovec { .\"O Do not block on I/O; see .\"O .BR splice (2) .\"O for further details. -Æþ½ÐÎϤÇÄä»ß (block) ¤·¤Ê¤¤¡£¾ÜºÙ¤Ï +入出力で停止 (block) しない。詳細は .BR splice (2) -»²¾È¡£ +参照。 .TP .B SPLICE_F_MORE .\"O Currently has no effect for .\"O .BR vmsplice (), .\"O but may be implemented in the future; see .\"O .BR splice (2). -¸½ºß¤Î¤È¤³¤í +現在のところ .BR vmsplice () -¤Ç¤Ï²¿¤Î¸ú²Ì¤â¤Ê¤¤¤¬¡¢¾­ÍèŪ¤Ë¤Ï¼ÂÁõ¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +では何の効果もないが、将来的には実装される可能性がある。 .BR splice (2) -»²¾È¡£ +参照。 .TP .B SPLICE_F_GIFT .\"O The user pages are a gift to the kernel. .\"O The application may not modify this memory ever, .\"O .\" FIXME Explain the following line in a little more detail: .\"O or page cache and on-disk data may differ. -¥æ¡¼¥¶¡¦¥Ú¡¼¥¸¤¬¥«¡¼¥Í¥ë¤ØÅϤ¹¤â¤Î (gift) ¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¤³¤Î¥á¥â¥ê¤òÀäÂФËÊѹ¹¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +ユーザ・ページがカーネルへ渡すもの (gift) であることを示す。 +アプリケーションはこのメモリを絶対に変更してはならない。 .\" FIXME Explain the following line in a little more detail: -¤µ¤â¤Ê¤±¤ì¤Ð¡¢¥Ú¡¼¥¸¥­¥ã¥Ã¥·¥å¤È¥Ç¥£¥¹¥¯¾å¤Î¥Ç¡¼¥¿¤Ï -°ìÃפ·¤Ê¤¯¤Ê¤ë¤À¤í¤¦¡£ +さもなければ、ページキャッシュとディスク上のデータは +一致しなくなるだろう。 .\"O Gifting pages to the kernel means that a subsequent .\"O .BR splice (2) .\"O .B SPLICE_F_MOVE .\"O can successfully move the pages; -¥Ú¡¼¥¸¤ò¥«¡¼¥Í¥ë¤ËÅϤ¹¤È¡¢¤³¤Î¼¡¤Î +ページをカーネルに渡すと、この次の .BR splice (2) .B SPLICE_F_MOVE -¤Ç¤½¤Î¥Ú¡¼¥¸¤Î°ÜÆ°¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +でそのページの移動を行うことができる。 .\"O if this flag is not specified, then a subsequent .\"O .BR splice (2) .\"O .B SPLICE_F_MOVE .\"O must copy the pages. -¤³¤Î¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¤³¤Î¼¡¤Î +このフラグが指定されなかった場合、この次の .BR splice (2) .B SPLICE_F_MOVE -¤Ç¤½¤Î¥Ú¡¼¥¸¤Î¥³¥Ô¡¼¤ò¹Ô¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +でそのページのコピーを行わなければならない。 .\"O Data must also be properly page aligned, both in memory and length. -¥Ç¡¼¥¿¤Ï¥á¥â¥ê¾å¤Ç¥Ú¡¼¥¸¶­³¦¤Ë¤¢¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -Ťµ¤â¥Ú¡¼¥¸¶­³¦¤ÎÇÜ¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +データはメモリ上でページ境界にあっていなければならず、 +長さもページ境界の倍数でなければならない。 .\" .... if we expect to later SPLICE_F_MOVE to the cache. .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O Upon successful completion, .\"O .BR vmsplice () .\"O returns the number of bytes transferred to the pipe. @@ -177,22 +177,22 @@ struct iovec { .\"O returns \-1 and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤·¤Æ´°Î»¤¹¤ë¤È¡¢ +成功して完了すると、 .BR vmsplice () -¤Ï¥Ñ¥¤¥×¤ËžÁ÷¤·¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ +はパイプに転送したバイト数を返す。 +エラーの場合、 .BR vmplice () -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤ò¥¨¥é¡¼¤ò¼¨¤¹ÃͤËÀßÄꤹ¤ë¡£ +をエラーを示す値に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O .I fd .\"O either not valid, or doesn't refer to a pipe. .I fd -¤¬Í­¸ú¤Ç¤Ê¤¤¡¢¤â¤·¤¯¤Ï¥Ñ¥¤¥×¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£ +が有効でない、もしくはパイプを参照していない。 .TP .B EINVAL .\"O .I nr_segs @@ -202,28 +202,28 @@ struct iovec { .\"O .B SPLICE_F_GIFT .\"O set. .I nr_segs -¤¬ 0 ¤â¤·¤¯¤Ï +が 0 もしくは .B IOV_MAX -¤è¤ê¤âÂ礭¤¤¡£¤Þ¤¿¤Ï +よりも大きい。または .B SPLICE_F_GIFT -¤¬ÀßÄꤵ¤ì¤¿¤¬¥á¥â¥ê¤¬¥Ú¡¼¥¸¶­³¦¤Ë¤¢¤Ã¤Æ¤¤¤Ê¤¤¡£ +が設定されたがメモリがページ境界にあっていない。 .TP .B ENOMEM .\"O Out of memory. -¥á¥â¥êÉÔ­¡£ +メモリ不足。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The .\"O .BR vmsplice () .\"O system call first appeared in Linux 2.6.17. .BR vmsplice () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 2.6.17 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +システムコールは Linux 2.6.17 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This system call is Linux-specific. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ +このシステムコールは Linux 固有である。 .\"O .SH NOTES -.SH È÷¹Í +.SH 備考 .\"O .BR vmsplice () .\"O follows the other vectorized read/write type functions when it comes to .\"O limitations on number of segments being passed in. @@ -232,16 +232,16 @@ struct iovec { .\"O as defined in .\"O .IR . .\"O At the time of this writing, that limit is 1024. -»ØÄꤵ¤ì¤¿¥»¥°¥á¥ó¥È¿ô¤¬¾å¸Â¤Ë㤷¤¿¾ì¹ç¡¢ +指定されたセグメント数が上限に達した場合、 .BR vmsplice () -¤Ï¾¤Î¥Ù¥¯¥È¥ë·Á¼°¤Î read/write ¤ò¹Ô¤¦´Ø¿ô¤ÈƱ¤¸Æ°ºî¤ò¤¹¤ë¡£ -¾å¸Â¤Ï +は他のベクトル形式の read/write を行う関数と同じ動作をする。 +上限は .B IOV_MAX -¤Ç¤¢¤ê¡¢ +であり、 .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥É¥­¥å¥á¥ó¥È¤ò½ñ¤¤¤¿»þÅÀ¤Ç¤ÎÃÍ¤Ï 1024 ¤Ç¤¢¤ë¡£ +で定義されている。 +このドキュメントを書いた時点での値は 1024 である。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR splice (2), .BR tee (2) diff --git a/draft/man2/wait.2 b/draft/man2/wait.2 index aa1ab083..1593f12d 100644 --- a/draft/man2/wait.2 +++ b/draft/man2/wait.2 @@ -61,23 +61,23 @@ .\" Updated 2005-12-26, Akihiro MOTOKI .\" Updated 2008-07-31, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: signal handling ¥·¥°¥Ê¥ë½èÍý -.\"WORD: suspend Ää»ß(suspend) -.\"WORD: zombie ¥¾¥ó¥Ó(zombie) -.\"WORD: child process »Ò¥×¥í¥»¥¹ -.\"WORD: process group ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× -.\"WORD: process group ID ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×ID -.\"WORD: stop Ää»ß(stop) -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: block ¶Ø»ß(block) +.\"WORD: signal handling シグナル処理 +.\"WORD: suspend 停止(suspend) +.\"WORD: zombie ゾンビ(zombie) +.\"WORD: child process 子プロセス +.\"WORD: process group プロセス・グループ +.\"WORD: process group ID プロセス・グループID +.\"WORD: stop 停止(stop) +.\"WORD: effective user ID 実効ユーザーID +.\"WORD: block 禁止(block) .\" .TH WAIT 2 2010-09-26 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wait, waitpid, waitid \- wait for process to change state -wait, waitpid, waitid \- ¥×¥í¥»¥¹¤Î¾õÂÖÊѲ½¤òÂÔ¤Ä +wait, waitpid, waitid \- プロセスの状態変化を待つ .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include @@ -92,9 +92,9 @@ wait, waitpid, waitid \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -106,12 +106,12 @@ _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .br .\"O || /* Since glibc 2.12: */ _POSIX_C_SOURCE\ >=\ 200809L -|| /* glibc 2.12 °Ê¹ß: */ _POSIX_C_SOURCE\ >=\ 200809L +|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\ >=\ 200809L .RE .PD .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O All of these system calls are used to wait for state changes .\"O in a child of the calling process, and obtain information .\"O about the child whose state has changed. @@ -121,16 +121,16 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O the system to release the resources associated with the child; .\"O if a wait is not performed, then the terminated child remains in .\"O a "zombie" state (see NOTES below). -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¤¤¤º¤ì¤â¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Î -¾õÂÖÊѲ½¤òÂÔ¤Á¡¢¾õÂÖ¤¬ÊѲ½¤·¤¿¤½¤Î»Ò¥×¥í¥»¥¹¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë¤Î¤Ë -»ÈÍѤµ¤ì¤ë¡£ -¾õÂÖÊѲ½¤È¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë: -»Ò¥×¥í¥»¥¹¤Î½ªÎ»¡¢¥·¥°¥Ê¥ë¤Ë¤è¤ë»Ò¥×¥í¥»¥¹¤ÎÄä»ß¡¢ -¥·¥°¥Ê¥ë¤Ë¤è¤ë»Ò¥×¥í¥»¥¹¤ÎºÆ³«¡£ -»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿¾ì¹ç¤Ï¡¢wait ¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ç¡¢ -¥·¥¹¥Æ¥à¤¬¤½¤Î»Ò¥×¥í¥»¥¹¤Ë´ØÏ¢¤¹¤ë¥ê¥½¡¼¥¹¤ò²òÊü¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -wait ¤¬¼Â¹Ô¤µ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢½ªÎ»¤·¤¿»Ò¥×¥í¥»¥¹¤Ï -¡Ö¥¾¥ó¥Ó¡×¾õÂ֤ǻĤ곤±¤ë (²¼µ­¤ÎÃí°Õ¤Î¾Ï¤ò»²¾È¤Î¤³¤È)¡£ +これらのシステムコールはいずれも、呼び出し元プロセスの子プロセスの +状態変化を待ち、状態が変化したその子プロセスの情報を取得するのに +使用される。 +状態変化とは以下のいずれかである: +子プロセスの終了、シグナルによる子プロセスの停止、 +シグナルによる子プロセスの再開。 +子プロセスが終了した場合は、wait を実行することで、 +システムがその子プロセスに関連するリソースを解放できるようになる。 +wait が実行されなかった場合には、終了した子プロセスは +「ゾンビ」状態で残り続ける (下記の注意の章を参照のこと)。 .\"O If a child has already changed state, then these calls return immediately. .\"O Otherwise they block until either a child changes state or @@ -143,21 +143,21 @@ wait .\"O and which has not yet been waited upon by one of these system .\"O calls is termed .\"O .IR waitable . -»Ò¥×¥í¥»¥¹¤Î¾õÂÖÊѲ½¤¬¤¹¤Ç¤ËȯÀ¸¤·¤Æ¤¤¤¿¾ì¹ç¡¢¤³¤ì¤é¤Î¥³¡¼¥ë¤Ï -¤¹¤°¤ËÉüµ¢¤¹¤ë¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢»Ò¥×¥í¥»¥¹¤Î¾õÂÖÊѲ½¤¬µ¯¤³¤ë¤«¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ÃæÃǤµ¤ì¤ë¤Þ¤Ç¡¢ -Ää»ß (block) ¤¹¤ë (¸å¼Ô¤Ï¡¢ +子プロセスの状態変化がすでに発生していた場合、これらのコールは +すぐに復帰する。それ以外の場合は、子プロセスの状態変化が起こるか、 +シグナルハンドラによりシステムコールが中断されるまで、 +停止 (block) する (後者は、 .BR sigaction (2) -¤Î +の .B SA_RESTART -¥Õ¥é¥°¤Ë¤è¤ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¼«Æ°Åª¤ËºÆ¥¹¥¿¡¼¥È¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤ -¾ì¹ç¤ÎÆ°ºî¤Ç¤¢¤ë)¡£ -°Ê²¼¤ÎÀâÌÀ¤Ç¤Ï¡¢¾õÂÖÊѲ½¤¬µ¯¤³¤Ã¤¿¤¬¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¤¤¤º¤ì¤«¤Ë -¤è¤Ã¤ÆÂÔ¤¿¤ì¤Æ¤¤¤Ê¤¤»Ò¥×¥í¥»¥¹¤ò +フラグによりシステムコールが自動的に再スタートするようになっていない +場合の動作である)。 +以下の説明では、状態変化が起こったがこれらのシステムコールのいずれかに +よって待たれていない子プロセスを .I waitable -(ÂÔ¤Á²Äǽ) ¤È¸Æ¤Ö¡£ +(待ち可能) と呼ぶ。 .\"O .SS "wait() and waitpid()" -.SS "wait() ¤È waitpid()" +.SS "wait() と waitpid()" .\"O The .\"O .BR wait () .\"O system call suspends execution of the calling process until one of its @@ -170,9 +170,9 @@ wait .\"O watpid(\-1, &status, 0); .\"O .fi .BR wait () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢»Ò¥×¥í¥»¥¹¤Î¤¤¤º¤ì¤«¤¬½ªÎ»¤¹¤ë¤Þ¤Ç -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¹Ô¤ò°ì»þÄä»ß¤¹¤ë¡£ -°Ê²¼¤ÎÆó¤Ä¤Î¸Æ¤Ó½Ð¤·¤ÏÅù²Á¤Ç¤¢¤ë: +システムコールは、子プロセスのいずれかが終了するまで +呼び出し元のプロセスの実行を一時停止する。 +以下の二つの呼び出しは等価である: .nf wait(&status); @@ -193,52 +193,52 @@ wait .\"O .I options .\"O argument, as described below. .BR waitpid () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ +システムコールは、 .I pid -°ú¤­¿ô¤Ç»ØÄꤷ¤¿»Ò¥×¥í¥»¥¹¤Î¾õÂÖÊѲ½¤¬µ¯¤³¤ë¤Þ¤Ç¡¢ -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¹Ô¤ò°ì»þÄä»ß¤¹¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +引き数で指定した子プロセスの状態変化が起こるまで、 +呼び出し元のプロセスの実行を一時停止する。デフォルトでは、 .BR waitpid () -¤Ï»Ò¥×¥í¥»¥¹¤Î½ªÎ»¤À¤±¤òÂԤĤ¬¡¢¤³¤ÎÆ°ºî¤Ï +は子プロセスの終了だけを待つが、この動作は .I options -°ú¤­¿ô¤Ë¤è¤êÊѹ¹²Äǽ¤Ç¤¢¤ë¡£ +引き数により変更可能である。 .\"O The value of .\"O .I pid .\"O can be: .I pid -¤Ë»ØÄê¤Ç¤­¤ëÃͤϰʲ¼¤ÎÄ̤ê: +に指定できる値は以下の通り: .IP "< \-1" .\"O meaning wait for any child process whose process group ID is .\"O equal to the absolute value of .\"O .IR pid . -¥×¥í¥»¥¹¥°¥ë¡¼¥×ID ¤¬ +プロセスグループID が .I pid -¤ÎÀäÂÐÃͤËÅù¤·¤¤»Ò¥×¥í¥»¥¹¤Î¤¤¤º¤ì¤«¤¬½ªÎ»¤¹¤ë¤Þ¤Ç¤òÂԤġ£ +の絶対値に等しい子プロセスのいずれかが終了するまでを待つ。 .IP \-1 .\"O meaning wait for any child process. -»Ò¥×¥í¥»¥¹¤Î¤É¤ì¤«¤¬½ªÎ»¤¹¤ë¤Þ¤ÇÂԤġ£ +子プロセスのどれかが終了するまで待つ。 .IP 0 .\"O meaning wait for any child process whose process group ID is .\"O equal to that of the calling process. -¥×¥í¥»¥¹¥°¥ë¡¼¥×ID ¤¬¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¤â¤Î¤ÈÅù¤·¤¤ -»Ò¥×¥í¥»¥¹¤òÂԤġ£ +プロセスグループID が呼び出したプロセスのものと等しい +子プロセスを待つ。 .IP "> 0" .\"O meaning wait for the child whose process ID is equal to the .\"O value of .\"O .IR pid . -¥×¥í¥»¥¹ID ¤¬ +プロセスID が .I pid -¤ËÅù¤·¤¤»Ò¥×¥í¥»¥¹¤òÂԤġ£ +に等しい子プロセスを待つ。 .PP .\"O The value of .\"O .I options .\"O is an OR of zero or more of the following constants: .I options -¤ÎÃͤϼ¡¤ÎÄê¿ô¤Î 0 ¸Ä°Ê¾å¤ÎÏÀÍýϤǤ¢¤ë: +の値は次の定数の 0 個以上の論理和である: .TP 12 .B WNOHANG .\"O return immediately if no child has exited. -¾õÂÖÊѲ½¤¬µ¯¤³¤Ã¤¿»Ò¥×¥í¥»¥¹¤¬¤Ê¤¤¾ì¹ç¤Ë¤¹¤°¤ËÉüµ¢¤¹¤ë¡£ +状態変化が起こった子プロセスがない場合にすぐに復帰する。 .TP .B WUNTRACED .\"O also return if a child has stopped @@ -248,22 +248,22 @@ wait .\"O .I traced .\"O children which have stopped is provided .\"O even if this option is not specified. -»Ò¥×¥í¥»¥¹¤¬Ää»ß¤·¤¿¾ì¹ç¤Ë¤âÉüµ¢¤¹¤ë (»Ò¥×¥í¥»¥¹¤¬ +子プロセスが停止した場合にも復帰する (子プロセスが .BR ptrace (2) -¤Ç¥È¥ì¡¼¥¹¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï½ü¤¯)¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ç¤â¡¢Ää»ß¤·¤¿¥×¥í¥»¥¹¤¬ -¡Ö¥È¥ì¡¼¥¹ (traced)¡×¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢»Ò¥×¥í¥»¥¹¤Î¾õÂÖ¤¬Êó¹ð¤µ¤ì¤ë¡£ +でトレースされている場合は除く)。 +このオプションが指定されていない場合でも、停止したプロセスが +「トレース (traced)」されていれば、子プロセスの状態が報告される。 .TP .\"O .BR WCONTINUED " (Since Linux 2.6.10)" -.BR WCONTINUED " (Linux 2.6.10 °Ê¹ß)" +.BR WCONTINUED " (Linux 2.6.10 以降)" .\"O also return if a stopped child has been resumed by delivery of .\"O .BR SIGCONT . -Ää»ß¤·¤¿»Ò¥×¥í¥»¥¹¤¬ +停止した子プロセスが .B SIGCONT -¤ÎÇÛÁ÷¤Ë¤è¤êºÆ³«¤·¤¿¾ì¹ç¤Ë¤âÉüµ¢¤¹¤ë¡£ +の配送により再開した場合にも復帰する。 .PP .\"O (For Linux-only options, see below.) -(Linux ÀìÍÑ¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Ï¸å½Ò¤¹¤ë) +(Linux 専用オプションについては後述する) .PP .\"O If .\"O .I status @@ -273,25 +273,25 @@ wait .\"O .BR waitpid () .\"O store status information in the \fIint\fP to which it points. .I status -¤¬ NULL ¤Ç¤Ê¤±¤ì¤Ð¡¢ +が NULL でなければ、 .BR wait () -¤ä +や .BR waitpid () -¤Ï +は .I status -¤Ç»Ø¤¹ \fIint\fP ¤Ë¾õÂÖ¾ðÊó¤ò³ÊǼ¤¹¤ë¡£ +で指す \fIint\fP に状態情報を格納する。 .\"O This integer can be inspected with the following macros (which .\"O take the integer itself as an argument, not a pointer to it, .\"O as is done in .\"O .BR wait () .\"O and .\"O .BR waitpid ()!): -¤³¤ÎÀ°¿ô¤Ï°Ê²¼¤Î¥Þ¥¯¥í¤ò»È¤Ã¤Æ¸¡ºº¤Ç¤­¤ë¡£ -(¤³¤ì¤é¤Î¥Þ¥¯¥í¤Î°ú¤­¿ô¤Ë¤Ï¡¢ +この整数は以下のマクロを使って検査できる。 +(これらのマクロの引き数には、 .BR wait () -¤ä +や .BR waitpid () -¤¬½ñ¤­¹þ¤ó¤ÀÀ°¿ô¤½¤Î¤â¤Î¤ò»ØÄꤹ¤ë¡£¥Ý¥¤¥ó¥¿¤Ç¤Ï¤Ê¤¤!) +が書き込んだ整数そのものを指定する。ポインタではない!) .TP .BI WIFEXITED( status ) .\"O returns true if the child terminated normally, that is, @@ -300,13 +300,13 @@ wait .\"O or .\"O .BR _exit (2), .\"O or by returning from main(). -»Ò¥×¥í¥»¥¹¤¬Àµ¾ï¤Ë½ªÎ»¤·¤¿¾ì¹ç¤Ë¿¿¤òÊÖ¤¹¡£ -¡ÖÀµ¾ï¤Ë¡×¤È¤Ï¡¢ +子プロセスが正常に終了した場合に真を返す。 +「正常に」とは、 .BR exit (3) -¤« +か .BR _exit (2) -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¡¢¤â¤·¤¯¤Ï -main() ¤«¤éÉüµ¢¤·¤¿¾ì¹ç¤Ç¤¢¤ë¡£ +が呼び出された場合、もしくは +main() から復帰した場合である。 .TP .BI WEXITSTATUS( status ) .\"O returns the exit status of the child. @@ -320,22 +320,22 @@ main() .\"O This macro should only be employed if .\"O .B WIFEXITED .\"O returned true. -»Ò¥×¥í¥»¥¹¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤òÊÖ¤¹¡£ -½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ï +子プロセスの終了ステータスを返す。 +終了ステータスは .I status -°ú¤­¿ô¤Î²¼°Ì 8¥Ó¥Ã¥È¤Ç¹½À®¤µ¤ì¤Æ¤ª¤ê¡¢ +引き数の下位 8ビットで構成されており、 .BR exit (3) -¤ä +や .BR _exit (2) -¤Î¸Æ¤Ó½Ð¤·»þ¤ËÅϤµ¤ì¤¿ÃÍ¡¢¤â¤·¤¯¤Ï main() ¤Î return ʸ¤Î -°ú¤­¿ô¤È¤·¤Æ»ØÄꤵ¤ì¤¿ÃͤǤ¢¤ë¡£ -¤³¤Î¥Þ¥¯¥í¤ò»ÈÍѤ¹¤ë¤Î¤Ï +の呼び出し時に渡された値、もしくは main() の return 文の +引き数として指定された値である。 +このマクロを使用するのは .B WIFEXITED -¤¬¿¿¤òÊÖ¤·¤¿¾ì¹ç¤À¤±¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +が真を返した場合だけにすべきである。 .TP .BI WIFSIGNALED( status ) .\"O returns true if the child process was terminated by a signal. -»Ò¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤Ë¤è¤ê½ªÎ»¤·¤¿¾ì¹ç¤Ë¿¿¤òÊÖ¤¹¡£ +子プロセスがシグナルにより終了した場合に真を返す。 .TP .BI WTERMSIG( status ) .\"O returns the number of the signal that caused the child process to @@ -343,10 +343,10 @@ main() .\"O This macro should only be employed if .\"O .B WIFSIGNALED .\"O returned true. -»Ò¥×¥í¥»¥¹½ªÎ»¤Î¸¶°ø¤È¤Ê¤Ã¤¿¥·¥°¥Ê¥ë¤ÎÈÖ¹æ¤òÊÖ¤¹¡£ -¤³¤Î¥Þ¥¯¥í¤ò»ÈÍѤ¹¤ë¤Î¤Ï +子プロセス終了の原因となったシグナルの番号を返す。 +このマクロを使用するのは .B WIFSIGNALED -¤¬¿¿¤òÊÖ¤·¤¿¾ì¹ç¤À¤±¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +が真を返した場合だけにすべきである。 .TP .BI WCOREDUMP( status ) .\"O returns true if the child produced a core dump. @@ -356,13 +356,13 @@ main() .\"O This macro is not specified in POSIX.1-2001 and is not available on .\"O some UNIX implementations (e.g., AIX, SunOS). .\"O Only use this enclosed in #ifdef WCOREDUMP ... #endif. -»Ò¥×¥í¥»¥¹¤¬¥³¥¢¥À¥ó¥×¤òÀ¸À®¤·¤¿¾ì¹ç¤Ë¿¿¤òÊÖ¤¹¡£ -¤³¤Î¥Þ¥¯¥í¤ò»ÈÍѤ¹¤ë¤Î¤Ï +子プロセスがコアダンプを生成した場合に真を返す。 +このマクロを使用するのは .B WIFSIGNALED -¤¬¿¿¤òÊÖ¤·¤¿¾ì¹ç¤À¤±¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¤³¤Î¥Þ¥¯¥í¤Ï POSIX.1-2001 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤ª¤é¤º¡¢ -(AIX, SunOS ¤Ê¤É¤Î) ¤¤¤¯¤Ä¤«¤Î UNIX ¤Î¼ÂÁõ¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤¡£ -ɬ¤º #ifdef WCOREDUMP ... #endif ¤Ç³ç¤Ã¤Æ»ÈÍѤ¹¤ë¤³¤È¡£ +が真を返した場合だけにすべきである。 +このマクロは POSIX.1-2001 では規定されておらず、 +(AIX, SunOS などの) いくつかの UNIX の実装では利用できない。 +必ず #ifdef WCOREDUMP ... #endif で括って使用すること。 .TP .BI WIFSTOPPED( status ) .\"O returns true if the child process was stopped by delivery of a signal; @@ -370,110 +370,110 @@ main() .\"O .B WUNTRACED .\"O or when the child is being traced (see .\"O .BR ptrace (2)). -»Ò¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤Ë¤è¤êÄä»ß¤·¤¿¾ì¹ç¤Ë¿¿¤òÊÖ¤¹¡£ -¤³¤ì¤¬¿¿¤Ë¤Ê¤ë¤Î¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ +子プロセスがシグナルの配送により停止した場合に真を返す。 +これが真になるのは、システムコールが .B WUNTRACED -¤ò»ØÄꤷ¤Æ¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¤«¡¢»Ò¥×¥í¥»¥¹¤¬¥È¥ì¡¼¥¹¤µ¤ì¤Æ¤¤¤ë¾ì¹ç +を指定して呼び出された場合か、子プロセスがトレースされている場合 .RB ( ptrace (2) -»²¾È) ¤À¤±¤Ç¤¢¤ë¡£ +参照) だけである。 .TP .BI WSTOPSIG( status ) .\"O returns the number of the signal which caused the child to stop. .\"O This macro should only be employed if .\"O .B WIFSTOPPED .\"O returned true. -»Ò¥×¥í¥»¥¹¤òÄä»ß¤µ¤»¤¿¥·¥°¥Ê¥ë¤ÎÈÖ¹æ¤òÊÖ¤¹¡£ -¤³¤Î¥Þ¥¯¥í¤ò»ÈÍѤ¹¤ë¤Î¤Ï +子プロセスを停止させたシグナルの番号を返す。 +このマクロを使用するのは .B WIFSTOPPED -¤¬ 0 °Ê³°¤òÊÖ¤·¤¿¾ì¹ç¤À¤±¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +が 0 以外を返した場合だけにすべきである。 .TP .BI WIFCONTINUED( status ) .\"O (since Linux 2.6.10) -(Linux 2.6.10 °Ê¹ß) +(Linux 2.6.10 以降) .\"O returns true if the child process was resumed by delivery of .\"O .BR SIGCONT . -»Ò¥×¥í¥»¥¹¤¬ +子プロセスが .B SIGCONT -¤ÎÇÛÁ÷¤Ë¤è¤êºÆ³«¤·¤¿¾ì¹ç¤Ë¿¿¤òÊÖ¤¹¡£ +の配送により再開した場合に真を返す。 .SS "waitid()" .\"O The .\"O .BR waitid () .\"O system call (available since Linux 2.6.9) provides more precise .\"O control over which child state changes to wait for. .BR waitid () -¥·¥¹¥Æ¥à¥³¡¼¥ë (Linux 2.6.9 °Ê¹ß¤ÇÍøÍѲÄǽ) ¤ò»È¤¦¤È¡¢ -»Ò¥×¥í¥»¥¹¤Î¤É¤Î¾õÂÖÊѲ½¤òÂԤĤ«¤Ë¤Ä¤¤¤Æ¤è¤êºÙ¤«¤ÊÀ©¸æ¤¬¤Ç¤­¤ë¡£ +システムコール (Linux 2.6.9 以降で利用可能) を使うと、 +子プロセスのどの状態変化を待つかについてより細かな制御ができる。 .\"O The .\"O .I idtype .\"O and .\"O .I id .\"O arguments select the child(ren) to wait for, as follows: -°ú¤­¿ô +引き数 .I idtype -¤È +と .I id -¤Ç¤É¤Î»Ò¥×¥í¥»¥¹¤òÂԤĤ«¤òÁªÂò¤¹¤ë: +でどの子プロセスを待つかを選択する: .IP "\fIidtype\fP == \fBP_PID\fP" .\"O Wait for the child whose process ID matches .\"O .IR id . -¥×¥í¥»¥¹ID ¤¬ +プロセスID が .I id -¤È°ìÃפ¹¤ë»Ò¥×¥í¥»¥¹¤òÂԤġ£ +と一致する子プロセスを待つ。 .IP "\fIidtype\fP == \fBP_PGID\fP" .\"O Wait for any child whose process group ID matches .\"O .IR id . -¥×¥í¥»¥¹¥°¥ë¡¼¥×ID ¤¬ +プロセスグループID が .I id -¤È°ìÃפ¹¤ë»Ò¥×¥í¥»¥¹¤òÂԤġ£ +と一致する子プロセスを待つ。 .IP "\fIidtype\fP == \fBP_ALL\fP" .\"O Wait for any child; .\"O .I id .\"O is ignored. -»Ò¥×¥í¥»¥¹Á´Éô¤òÂоݤËÂԤġ£ +子プロセス全部を対象に待つ。 .I id -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .PP .\"O The child state changes to wait for are specified by ORing .\"O one or more of the following flags in .\"O .IR options : -»Ò¥×¥í¥»¥¹¤Î¤É¤Î¾õÂÖÊѲ½¤òÂԤĤ«¤Ï°Ê²¼¤Î¥Õ¥é¥°¤Ç»ØÄꤹ¤ë +子プロセスのどの状態変化を待つかは以下のフラグで指定する .RI ( options -¤Ë¤Ï 1¸Ä°Ê¾å¤Î¥Õ¥é¥°¤ÎÏÀÍýϤò¤È¤Ã¤Æ»ØÄꤹ¤ë): +には 1個以上のフラグの論理和をとって指定する): .TP 12 .B WEXITED .\"O Wait for children that have terminated. -»Ò¥×¥í¥»¥¹¤Î½ªÎ»¤òÂԤġ£ +子プロセスの終了を待つ。 .TP .B WSTOPPED .\"O Wait for children that have been stopped by delivery of a signal. -»Ò¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤Ë¤è¤êÄä»ß¤¹¤ë¤Î¤òÂԤġ£ +子プロセスがシグナルの配送により停止するのを待つ。 .TP .B WCONTINUED .\"O Wait for (previously stopped) children that have been .\"O resumed by delivery of .\"O .BR SIGCONT . -(Ää»ß¤·¤Æ¤¤¤¿) »Ò¥×¥í¥»¥¹¤¬ +(停止していた) 子プロセスが .B SIGCONT -¤¬ÇÛÁ÷¤µ¤ì¤ÆºÆ³«¤¹¤ë¤Î¤òÂԤġ£ +が配送されて再開するのを待つ。 .PP .\"O The following flags may additionally be ORed in .\"O .IR options : -¤µ¤é¤Ë°Ê²¼¤Î¥Õ¥é¥°¤òÏÀÍýϤηÁ¤Ç +さらに以下のフラグを論理和の形で .I options -¤Ë»ØÄê¤Ç¤­¤ë: +に指定できる: .TP 12 .B WNOHANG .\"O As for .\"O .BR waitpid (). .BR waitpid () -¤ÈƱÍÍ¡£ +と同様。 .TP .B WNOWAIT .\"O Leave the child in a waitable state; a later wait call .\"O can be used to again retrieve the child status information. -waitable ¾õÂÖ¤Î¥×¥í¥»¥¹¤ò¤½¤Î¤Þ¤Þ¤Ë¤¹¤ë¡£¤³¤Î¸å¤Ç wait ¥³¡¼¥ë¤ò -»È¤Ã¤Æ¡¢Æ±¤¸»Ò¥×¥í¥»¥¹¤Î¾õÂÖ¾ðÊó¤ò¤â¤¦°ìÅÙ¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +waitable 状態のプロセスをそのままにする。この後で wait コールを +使って、同じ子プロセスの状態情報をもう一度取得することができる。 .PP .\"O Upon successful return, .\"O .BR waitid () @@ -481,30 +481,30 @@ waitable .\"O .I siginfo_t .\"O structure pointed to by .\"O .IR infop : -À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ +成功した場合には、 .BR waitid () -¤Ï +は .I infop -¤¬»Ø¤¹ +が指す .I siginfo_t -¹½Â¤ÂΤΰʲ¼¤Î¥Õ¥£¡¼¥ë¥É¤òÀßÄꤹ¤ë: +構造体の以下のフィールドを設定する: .TP 12 \fIsi_pid\fP .\"O The process ID of the child. -»Ò¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ID¡£ +子プロセスのプロセスID。 .TP \fIsi_uid\fP .\"O The real user ID of the child. .\"O (This field is not set on most other implementations.) -»Ò¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶ID -(¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¾¤Î¤Û¤È¤ó¤É¤Î¼ÂÁõ¤Ç¤ÏÀßÄꤵ¤ì¤Ê¤¤)¡£ +子プロセスの実ユーザID +(このフィールドは他のほとんどの実装では設定されない)。 .TP \fIsi_signo\fP .\"O Always set to .\"O .BR SIGCHLD . -¾ï¤Ë +常に .B SIGCHLD -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .TP \fIsi_status\fP .\"O Either the exit status of the child, as given to @@ -516,13 +516,13 @@ waitable .\"O .I si_code .\"O field can be used to determine how to interpret this field. .BR _exit (2) -(¤« +(か .BR exit (3)) -¤Ë»ØÄꤵ¤ì¤¿»Ò¥×¥í¥»¥¹¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¡¢¤â¤·¤¯¤Ï -»Ò¥×¥í¥»¥¹¤Î½ªÎ»¡¢Ää»ß¡¢ºÆ³«¤Î¸¶°ø¤È¤Ê¤Ã¤¿¥·¥°¥Ê¥ë¤¬ÀßÄꤵ¤ì¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤ò¤É¤¦²ò¼á¤¹¤ë¤«¤Ï¡¢ +に指定された子プロセスの終了ステータス、もしくは +子プロセスの終了、停止、再開の原因となったシグナルが設定される。 +このフィールドをどう解釈するかは、 .I si_code -¥Õ¥£¡¼¥ë¥É¤ò»²¾È¤·¤Æ·è¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +フィールドを参照して決めることができる。 .TP \fIsi_code\fP .\"O Set to one of: @@ -540,22 +540,22 @@ waitable .\"O .B CLD_CONTINUED .\"O (child continued by .\"O .BR SIGCONT ). -°Ê²¼¤Î¤¤¤º¤ì¤«¤¬ÀßÄꤵ¤ì¤ë: +以下のいずれかが設定される: .B CLD_EXITED -(»Ò¥×¥í¥»¥¹¤¬ +(子プロセスが .BR _exit (2) -¤ò¸Æ¤Ó½Ð¤·¤¿); +を呼び出した); .B CLD_KILLED -(¥·¥°¥Ê¥ë¤Ë¤è¤ê»Ò¥×¥í¥»¥¹¤¬ kill ¤µ¤ì¤¿); +(シグナルにより子プロセスが kill された); .B CLD_DUMPED -(¥·¥°¥Ê¥ë¤Ë¤è¤ê»Ò¥×¥í¥»¥¹¤¬ kill ¤µ¤ì¡¢¥³¥¢¡¦¥À¥ó¥×¤¬¹Ô¤ï¤ì¤¿); +(シグナルにより子プロセスが kill され、コア・ダンプが行われた); .B CLD_STOPPED -(¥·¥°¥Ê¥ë¤Ë¤è¤ê»Ò¥×¥í¥»¥¹¤¬Ää»ß¤·¤¿); +(シグナルにより子プロセスが停止した); .BR CLD_TRAPPED -(¥È¥ì¡¼¥¹¤µ¤ì¤Æ¤¤¤¿»Ò¥×¥í¥»¥¹¤¬¥È¥é¥Ã¥×¤ò¼õ¿®¤·¤¿); +(トレースされていた子プロセスがトラップを受信した); .B CLD_CONTINUED .RB ( SIGCONT -¤Ë¤è¤ê»Ò¥×¥í¥»¥¹¤¬ºÆ³«¤µ¤ì¤¿)¡£ +により子プロセスが再開された)。 .PP .\"O If .\"O .B WNOHANG @@ -570,41 +570,41 @@ waitable .\"O .I infop .\"O is unspecified. .B WNOHANG -¤¬ +が .I options -¤Ë»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢ -waitable ¾õÂÖ¤Î»Ò¥×¥í¥»¥¹¤¬¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ +に指定されていて、 +waitable 状態の子プロセスがなかった場合には、 .BR waitid () -¤Ï¤¹¤°¤Ë 0 ¤òÊÖ¤¹¡£¤³¤Î¤È¤­¡¢ +はすぐに 0 を返す。このとき、 .I infop -¤¬»Ø¤¹ +が指す .I siginfo_t -¹½Â¤ÂΤÎÆâÍƤÏÉÔÄê¤Ç¤¢¤ë¡£ +構造体の内容は不定である。 .\"O .\" POSIX.1-2001 leaves this possibility unspecified; most .\"O .\" implementations (including Linux) zero out the structure .\"O .\" in this case, but at at least one implementation (AIX 5.1) .\"O .\" does not -- MTK Nov 04 -.\" POSIX.1-2001 ¤Ç¤Ï¡¢ÉÔÄê¤Î²ÄǽÀ­¤ò»Ä¤·¤Æ¤¤¤ë¡£ -.\" (Linux ¤ò´Þ¤à) ¤Û¤È¤ó¤É¤Î¼ÂÁõ¤Ç¤Ï¡¢¤³¤Î¾ì¹ç¤Ë¹½Â¤ÂΤò 0 ¤ÇËä¤á¤ë¤¬¡¢ -.\" ¾¯¤Ê¤¯¤È¤â°ì¤Ä¤Î¼ÂÁõ (AIX 5.1) ¤Ç¤Ï¤½¤¦¤Ê¤é¤Ê¤¤¡£ -- MTK Nov 04 +.\" POSIX.1-2001 では、不定の可能性を残している。 +.\" (Linux を含む) ほとんどの実装では、この場合に構造体を 0 で埋めるが、 +.\" 少なくとも一つの実装 (AIX 5.1) ではそうならない。 -- MTK Nov 04 .\"O To distinguish this case from that where a child was in a .\"O waitable state, zero out the .\"O .I si_pid .\"O field before the call and check for a nonzero value in this field .\"O after the call returns. -¤³¤Î¾ì¹ç¤ò waitable ¾õÂÖ¤Î»Ò¥×¥í¥»¥¹¤¬¤¢¤Ã¤¿¾ì¹ç¤È¶èÊ̤¹¤ë¤Ë¤Ï¡¢ +この場合を waitable 状態の子プロセスがあった場合と区別するには、 .BR waitid () -¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë +を呼び出す前に .I si_pid -¤ò 0 ¤Ë¤·¤Æ¤ª¤­¡¢¥³¡¼¥ë¤¬Éüµ¢¤·¤¿¸å¤Ç¤³¤Î¥Õ¥£¡¼¥ë¥É¤¬ 0 °Ê³°¤ÎÃͤ«¤É¤¦¤« -¤ò¥Á¥§¥Ã¥¯¤¹¤ì¤Ð¤è¤¤¡£ +を 0 にしておき、コールが復帰した後でこのフィールドが 0 以外の値かどうか +をチェックすればよい。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .BR wait (): .\"O on success, returns the process ID of the terminated child; .\"O on error, \-1 is returned. -À®¸ù¤¹¤ë¤È¡¢½ªÎ»¤·¤¿»Ò¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ID ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤¹¡£ +成功すると、終了した子プロセスのプロセスID を返す。 +エラーの場合 \-1 を返す。 .BR waitpid (): .\"O on success, returns the process ID of the child whose state has changed; @@ -614,13 +614,13 @@ waitable .\"O.I pid .\"O exist, but have not yet changed state, then 0 is returned. .\"O On error, \-1 is returned. -À®¸ù¤¹¤ë¤È¡¢¾õÂÖ¤¬ÊѲ½¤·¤¿»Ò¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ID ¤òÊÖ¤¹¡£ +成功すると、状態が変化した子プロセスのプロセスID を返す。 .B WNOHANG -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢ +が指定されていて、 .I pid -¤Ç»Ø¼¨¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤¬°ì¤Ä°Ê¾å¸ºß¤¹¤ë¤¬¡¢¤É¤Î»Ò¥×¥í¥»¥¹¤Ç¤â -¾õÂÖÊѲ½¤¬µ¯¤³¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤¹¡£ +で指示された子プロセスが一つ以上存在するが、どの子プロセスでも +状態変化が起こっていなかった場合は、 0 を返す。 +エラーの場合 \-1 を返す。 .BR waitid (): .\"O returns 0 on success or @@ -630,13 +630,13 @@ waitable .\"O .I id .\"O has yet changed state; .\"O on error, \-1 is returned. -À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ +成功すると 0 を返す。 .B WNOHANG -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢ +が指定されていて、 .I pid -¤Ç»Ø¼¨¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ç¾õÂÖÊѲ½¤¬µ¯¤³¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤â -0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤¹¡£ +で指示された子プロセスで状態変化が起こっていなかった場合にも +0 を返す。 +エラーの場合 \-1 を返す。 .\" FIXME: As reported by Vegard Nossum, if infop is NULL, then waitid() .\" returns the PID of the child. Either this is a bug, or it is intended .\" behavior that needs to be documented. See my Jan 2009 LKML mail @@ -644,20 +644,20 @@ waitable .\"O Each of these calls sets .\"O .I errno .\"O to an appropriate value in the case of an error. -¥¨¥é¡¼¤Î¾ì¹ç¡¢¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¤¤¤º¤ì¤â +エラーの場合、これらのシステムコールはいずれも .I errno -¤ËŬÀÚ¤ÊÃͤòÀßÄꤹ¤ë¡£ +に適切な値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .\"O .B ECHILD .\"O (for .\"O .BR wait ()) .B ECHILD .RB ( wait () -¤Î¾ì¹ç) +の場合) .\"O The calling process does not have any unwaited-for children. -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë¤Ï¡¢wait ¤ò¹Ô¤Ã¤Æ¤¤¤Ê¤¤»Ò¥×¥í¥»¥¹¤Ï¤Ê¤¤¡£ +呼び出し元プロセスには、wait を行っていない子プロセスはない。 .TP .\"O .B ECHILD .\"O (for @@ -666,9 +666,9 @@ waitable .\"O .BR waitid ()) .B ECHILD .RB ( waitpid () -¤« +か .BR waitid () -¤Î¾ì¹ç) +の場合) .\"O The process specified by .\"O .I pid .\"O .RB ( waitpid ()) @@ -685,17 +685,17 @@ waitable .\"O See also the \fILinux Notes\fP section about threads.) .I pid .RB ( waitpid ()) -¤« +か .I idtype -¤È +と .I id .RB ( waitid ()) -¤Ç»ØÄꤷ¤¿¥×¥í¥»¥¹¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Ç¤Ê¤¤ +で指定したプロセスが存在しないか、呼び出し元プロセスの子プロセスでない .RB ( SIGCHLD -¤ÎÆ°ºî¤Ë +の動作に .B SIG_IGN -¤òÀßÄꤷ¤¿¾ì¹ç¤Ë¤Ï¡¢¼«Ê¬¼«¿È¤Î»Ò¥×¥í¥»¥¹¤Ç¤âµ¯¤³¤ê¤¦¤ë¡£ -¥¹¥ì¥Ã¥É¤Ë´Ø¤·¤Æ¤Ï¡ÖLinux ¤Ç¤ÎÃí°Õ¡×¤ÎÀá¤â»²¾È¤¹¤ë¤³¤È)¡£ +を設定した場合には、自分自身の子プロセスでも起こりうる。 +スレッドに関しては「Linux での注意」の節も参照すること)。 .TP .B EINTR .\"O .B WNOHANG @@ -704,23 +704,23 @@ waitable .\"O was caught; see. .\"O .BR signal (7). .B WNOHANG -¤¬ÀßÄꤵ¤ì¤Æ¤ª¤é¤º¡¢¶Ø»ß (block) ¤µ¤ì¤Æ¤¤¤Ê¤¤¥·¥°¥Ê¥ë¤ä +が設定されておらず、禁止 (block) されていないシグナルや .B SIGCHLD -¤ò¼õ¿®¤·¤¿¡£ +を受信した。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .\"O The .\"O .I options .\"O argument was invalid. .I options -°ú¤­¿ô¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +引き数が不正である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O A child that terminates, but has not been waited for becomes a "zombie". .\"O The kernel maintains a minimal set of information about the zombie .\"O process (PID, termination status, resource usage information) @@ -733,19 +733,19 @@ SVr4, 4.3BSD, POSIX.1-2001. .\"O are adopted by .\"O .BR init (8), .\"O which automatically performs a wait to remove the zombies. -½ªÎ»¤·¤¿¤¬¡¢wait ¤µ¤ì¤Æ¤¤¤Ê¤¤»Ò¥×¥í¥»¥¹¤Ï¡Ö¥¾¥ó¥Ó¡×¤Ë¤Ê¤ë¡£ -¸å¤Ç¿Æ¥×¥í¥»¥¹¤¬ wait ¤ò¼Â¹Ô¤·¤Æ»Ò¥×¥í¥»¥¹¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤ò¼èÆÀ¤Ç¤­¤ë¤è¤¦¤Ë¡¢ -¥«¡¼¥Í¥ë¤Ï¥¾¥ó¥Ó¥×¥í¥»¥¹¤Ë¤Ä¤¤¤ÆºÇ¾®¸Â¤Î¾ðÊó (PID¡¢½ªÎ»¥¹¥Æ¡¼¥¿¥¹¡¢ -¥ê¥½¡¼¥¹»ÈÍѾõ¶·) ¤òÊÝ»ý¤¹¤ë¡£ -¥¾¥ó¥Ó¥×¥í¥»¥¹¤Ï¡¢ wait ¤Ë¤è¤Ã¤Æ¥·¥¹¥Æ¥à¤«¤éºï½ü¤µ¤ì¤Ê¤¤¸Â¤ê¡¢ -¥«¡¼¥Í¥ë¤Î¥×¥í¥»¥¹¥Æ¡¼¥Ö¥ë¤Î 1 ¥¨¥ó¥È¥ê¤ò¾ÃÈñ¤¹¤ë¡£¤³¤Î¥×¥í¥»¥¹¥Æ¡¼¥Ö¥ë¤¬ -°ìÇդˤʤë¤È¡¢¿·¤¿¤Ë¥×¥í¥»¥¹¤òºî¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¯¤Ê¤ë¡£ -¿Æ¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤È¡¢¤½¤Î¿Æ¥×¥í¥»¥¹¤Î¡Ö¥¾¥ó¥Ó¡×¤Î -»Ò¥×¥í¥»¥¹¤Ï (¤â¤·¤¢¤ì¤Ð) +終了したが、wait されていない子プロセスは「ゾンビ」になる。 +後で親プロセスが wait を実行して子プロセスについての情報を取得できるように、 +カーネルはゾンビプロセスについて最小限の情報 (PID、終了ステータス、 +リソース使用状況) を保持する。 +ゾンビプロセスは、 wait によってシステムから削除されない限り、 +カーネルのプロセステーブルの 1 エントリを消費する。このプロセステーブルが +一杯になると、新たにプロセスを作ることができなくなる。 +親プロセスが終了すると、その親プロセスの「ゾンビ」の +子プロセスは (もしあれば) .BR init (8) -¤ÎÍܻҤȤʤ롣 +の養子となる。 .BR init (8) -¤Ï wait ¤ò¼«Æ°Åª¤Ë¼Â¹Ô¤·¡¢¥¾¥ó¥Ó¤òºï½ü¤¹¤ë¡£ +は wait を自動的に実行し、ゾンビを削除する。 .\"O POSIX.1-2001 specifies that if the disposition of .\"O .B SIGCHLD @@ -765,26 +765,26 @@ SVr4, 4.3BSD, POSIX.1-2001. .\"O .I errno .\"O set to .\"O .BR ECHILD . -POSIX.1-2001 ¤Ç¤Ï°Ê²¼¤Î¤è¤¦¤Ëµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +POSIX.1-2001 では以下のように規定されている。 .B SIGCHLD -¤ÎÆ°ºî¤¬ +の動作が .B SIG_IGN -¤ËÀßÄꤵ¤ì¤¿¤«¡¢ +に設定されたか、 .B SIGCHLD -¤ËÂФ·¤Æ +に対して .B SA_NOCLDWAIT -¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç +フラグが設定された場合 .RB ( sigaction (2) -»²¾È)¡¢½ªÎ»¤·¤¿»Ò¥×¥í¥»¥¹¤Ï¥¾¥ó¥Ó¤Ë¤Ï¤Ê¤é¤º¡¢ +参照)、終了した子プロセスはゾンビにはならず、 .BR wait () -¤ä +や .BR waitpid () -¤Î¸Æ¤Ó½Ð¤·¤ÏÁ´¤Æ¤Î»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤Þ¤ÇÄä»ß¤·¡¢ -»Ò¥×¥í¥»¥¹¤¬Á´Éô½ªÎ»¤·¤¿¸å +の呼び出しは全ての子プロセスが終了するまで停止し、 +子プロセスが全部終了した後 .I errno -¤Ë +に .B ECHILD -¤òÀßÄꤷ¤Æ¼ºÇÔ¤¹¤ë¡£ +を設定して失敗する。 .\"O (The original POSIX standard left the behavior of setting .\"O .B SIGCHLD .\"O to @@ -795,22 +795,22 @@ POSIX.1-2001 .\"O is "ignore", explicitly setting the disposition to .\"O .B SIG_IGN .\"O results in different treatment of zombie process children.) -(¤â¤È¤â¤È¤Î POSIX ɸ½à¤Ï +(もともとの POSIX 標準は .B SIGCHLD -¤Ë +に .B SIG_IGN -¤òÀßÄꤷ¤¿¾ì¹ç¤Î¿¶¤ëÉñ¤¤¤ò̤µ¬Äê¤Î¤Þ¤Þ¤Ë¤·¤Æ¤¤¤ë¡£ +を設定した場合の振る舞いを未規定のままにしている。 .B SIGCHLD -¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤¬¡Ö̵»ë¡×¤Ç¤¢¤ë¤Ë¤â¤«¤«¤ï¤é¤º¡¢ +のデフォルトの動作が「無視」であるにもかかわらず、 .B SIGCHLD -¤ÎÆ°ºî¤È¤·¤Æ +の動作として .B SIG_IGN -¤òÌÀ¼¨Åª¤ËÀßÄꤷ¤¿¾ì¹ç¤Ë¤Ï¥¾¥ó¥Ó¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Î°·¤¤¤¬ -°Û¤Ê¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£) +を明示的に設定した場合にはゾンビプロセスの子プロセスの扱いが +異なる点に注意すること。) .\"O Linux 2.6 conforms to this specification. .\"O However, Linux 2.4 (and earlier) does not: -Linux 2.6 ¤Ï¤³¤Î»ÅÍͤ˽àµò¤·¤Æ¤¤¤ë¡£ -¤·¤«¤·¡¢Linux 2.4 (¤È¤½¤ì°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó) ¤Ï¤½¤¦¤Ç¤Ï¤Ê¤¤: +Linux 2.6 はこの仕様に準拠している。 +しかし、Linux 2.4 (とそれ以前のバージョン) はそうではない: .\"O if a .\"O .BR wait () .\"O or @@ -822,17 +822,17 @@ Linux 2.6 .\"O were not being ignored, that is, the call blocks until the next child .\"O terminates and then returns the process ID and status of that child. .B SIGCHLD -¤¬Ìµ»ë¤µ¤ì¤ë¾õÂÖ¤Ç +が無視される状態で .BR wait () -¤Þ¤¿¤Ï +または .BR waitpid () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¡¢ +が呼び出された場合、 .B SIGCHLD -¤¬Ìµ»ë¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¤Î¤è¤¦¤Ë¿¶¤ëÉñ¤¦¡£ -¤Ä¤Þ¤ê¡¢¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤Æ¼¡¤Î»Ò¥×¥í¥»¥¹¤Î½ªÎ»¤Þ¤Ç¥Ö¥í¥Ã¥¯¤µ¤ì¡¢ -½ªÎ»¤·¤¿»Ò¥×¥í¥»¥¹¤Î PID ¤È¾õÂÖ¤¬ÊÖ¤µ¤ì¤ë¡£ +が無視されていないかのように振る舞う。 +つまり、呼び出しによって次の子プロセスの終了までブロックされ、 +終了した子プロセスの PID と状態が返される。 .\"O .SS Linux Notes -.SS Linux ¤Ç¤ÎÃí°Õ +.SS Linux での注意 .\"O In the Linux kernel, a kernel-scheduled thread is not a distinct .\"O construct from a process. .\"O Instead, a thread is simply a process @@ -844,40 +844,40 @@ Linux 2.6 .\"O .BR clone (2); .\"O they cannot be used with .\"O .BR waitid (): -Linux ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ¥¹¥±¥¸¥å¡¼¥ë¤µ¤ì¤ë¥¹¥ì¥Ã¥É¤Ï -¥×¥í¥»¥¹¤ÈÌÀ³Î¤Ë¶èÊ̤Ǥ­¤ë¹½À®Í×ÁǤǤϤʤ¤¡£¥¹¥ì¥Ã¥É¤Ï Linux ¸ÇÍ­¤Î +Linux カーネルでは、カーネルによってスケジュールされるスレッドは +プロセスと明確に区別できる構成要素ではない。スレッドは Linux 固有の .BR clone (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»ÈÍѤ·¤ÆÀ¸À®¤µ¤ì¤ë¥×¥í¥»¥¹¤Ë²á¤®¤Ê¤¤¡£ -°Ü¿¢À­¤Î¤¢¤ë +システムコールを使用して生成されるプロセスに過ぎない。 +移植性のある .BR pthread_create (3) -¥³¡¼¥ë¤Î¤è¤¦¤Ê¾¤Î¥ë¡¼¥Á¥ó¤Ï +コールのような他のルーチンは .BR clone (2) -¤ò»ÈÍѤ·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë; -¤³¤ì¤é¤Ç¤Ï +を使用して実装されている; +これらでは .BR waitid () -¤ò»È¤¦¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +を使うことはできない。 .\"O Before Linux 2.4, a thread was just a special case of a process, .\"O and as a consequence one thread could not wait on the children .\"O of another thread, even when the latter belongs to the same thread group. -Linux 2.4 ¤è¤êÁ°¤Ç¤Ï¡¢¥¹¥ì¥Ã¥É¤Ïñ¤ËÆüì¤Ê¥×¥í¥»¥¹¤Ç¤¢¤Ã¤¿¤Î¤Ç¡¢ -Î㤨Ʊ¤¸¥¹¥ì¥Ã¥É¥°¥ë¡¼¥×¤Ç¤¢¤Ã¤Æ¤â¡¢ -¤¢¤ë¥¹¥ì¥Ã¥É¤¬Ê̤Υ¹¥ì¥Ã¥É¤Î»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤Î¤òÂԤĤ³¤È¤Ï½ÐÍè¤Ê¤«¤Ã¤¿¡£ +Linux 2.4 より前では、スレッドは単に特殊なプロセスであったので、 +例え同じスレッドグループであっても、 +あるスレッドが別のスレッドの子プロセスが終了するのを待つことは出来なかった。 .\"O However, POSIX prescribes such functionality, and since Linux 2.4 .\"O a thread can, and by default will, wait on children of other threads .\"O in the same thread group. -¤·¤«¤·¡¢POSIX ¤Ç¤Ï¤³¤Î¤è¤¦¤Êµ¡Ç½¤òµ¬Äꤷ¤Æ¤ª¤ê¡¢ -Linux 2.4 °Ê¹ß¤Ç¤Ï¡¢¤¢¤ë¥¹¥ì¥Ã¥É¤¬Æ±¤¸¥¹¥ì¥Ã¥É¥°¥ë¡¼¥×¤Î¾¤Î¥¹¥ì¥Ã¥É¤Î -»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤Î¤òÂԤĤ³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ -¤½¤·¤Æ¾­Íè¤Ï¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ë¤Ê¤ë¤Ç¤¢¤í¤¦¡£ +しかし、POSIX ではこのような機能を規定しており、 +Linux 2.4 以降では、あるスレッドが同じスレッドグループの他のスレッドの +子プロセスが終了するのを待つことができるようになった。 +そして将来はこれがデフォルトの動作になるであろう。 .LP .\"O The following Linux-specific .\"O .I options .\"O are for use with children created using .\"O .BR clone (2). .BR clone (2) -¤òÍѤ¤¤Æºî¤é¤ì¤¿»Ò¥×¥í¥»¥¹¤Ë¤Ï¡¢°Ê²¼¤Î Linux ¸ÇÍ­¤Î +を用いて作られた子プロセスには、以下の Linux 固有の .I options -¤¬»ÈÍѤǤ­¤ë¡£ +が使用できる。 .TP .B __WCLONE .\" since 0.99pl10 @@ -888,38 +888,38 @@ Linux 2.4 .\"O which delivers no signal, or a signal other than .\"O .B SIGCHLD .\"O to its parent upon termination.) -"clone" ¤Ê»Ò¥×¥í¥»¥¹¤À¤±¤òÂԤġ£ -»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤ÏÈó "clone" ¤Ê»Ò¥×¥í¥»¥¹¤À¤±¤òÂÔ¤Ä -("clone" ¤Ê»Ò¥×¥í¥»¥¹¤Ï¡¢½ªÎ»»þ¤Ë¿Æ¥×¥í¥»¥¹¤ØÁ´¤¯¥·¥°¥Ê¥ë¤òÁ÷¤é¤Ê¤¤¤«¡¢ +"clone" な子プロセスだけを待つ。 +指定されなかった場合は非 "clone" な子プロセスだけを待つ +("clone" な子プロセスは、終了時に親プロセスへ全くシグナルを送らないか、 .B SIGCHLD -°Ê³°¤Î¥·¥°¥Ê¥ë¤òÁ÷¤ë)¡£ +以外のシグナルを送る)。 .\"O This option is ignored if .\"O .B __WALL .\"O is also specified. -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +このオプションは .B __WALL -¤â»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï̵»ë¤µ¤ì¤ë¡£ +も指定された場合は無視される。 .TP .\"O .BR __WALL " (since Linux 2.4)" -.BR __WALL " (Linux 2.4 °Ê¹ß)" +.BR __WALL " (Linux 2.4 以降)" .\" since patch-2.3.48 .\"O Wait for all children, regardless of .\"O type ("clone" or "non-clone"). -"clone" ¤Ç¤¢¤ë¤«¤Ê¤¤¤«¤Ë´Ø¤ï¤é¤º¡¢ -Á´¤Æ¤Î»Ò¥×¥í¥»¥¹¤òÂԤġ£ +"clone" であるかないかに関わらず、 +全ての子プロセスを待つ。 .TP .\"O .BR __WNOTHREAD " (since Linux 2.4)" -.BR __WNOTHREAD " (Linux 2.4 °Ê¹ß)" +.BR __WNOTHREAD " (Linux 2.4 以降)" .\" since patch-2.4.0-test8 .\"O Do not wait for children of other threads in .\"O the same thread group. .\"O This was the default before Linux 2.4. -Ʊ¤¸¥¹¥ì¥Ã¥É¥°¥ë¡¼¥×¤Î¾¤Î¥¹¥ì¥Ã¥É¤Î»Ò¥×¥í¥»¥¹¤ÏÂÔ¤¿¤Ê¤¤¡£ -Linux 2.4 ¤è¤êÁ°¤Ç¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤Ã¤¿¡£ +同じスレッドグループの他のスレッドの子プロセスは待たない。 +Linux 2.4 より前ではデフォルトであった。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O .\" fork.2 refers to this example program. -.\" fork.2 ¤â¤³¤Î¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤ò»²¾È¤·¤Æ¤¤¤ë¡£ +.\" fork.2 もこのサンプルプログラムを参照している。 .\"O The following program demonstrates the use of .\"O .BR fork (2) .\"O and @@ -935,28 +935,28 @@ Linux 2.4 .\"O The parent process executes a loop that monitors the child using .\"O .BR waitpid (), .\"O and uses the W*() macros described above to analyze the wait status value. -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢ +以下のプログラムは、 .BR fork (2) -¤È +と .BR waitpid () -¤Î»ÈÍÑÊýË¡¤ÎÎã¤ò¼¨¤·¤Æ¤¤¤ë¡£ -¤³¤Î¥×¥í¥°¥é¥à¤Ç¤Ï»Ò¥×¥í¥»¥¹¤òÀ¸À®¤¹¤ë¡£ -¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¤È¤­¤Ï¡¢ -»Ò¥×¥í¥»¥¹¤Ï +の使用方法の例を示している。 +このプログラムでは子プロセスを生成する。 +コマンドライン引き数が指定されなかったときは、 +子プロセスは .BR pause (2) -¤ò»È¤Ã¤Æ¤½¤Î¼Â¹Ô¤ò°ì»þÄä»ß¤·¡¢¥æ¡¼¥¶¤¬¤½¤Î»Ò¥×¥í¥»¥¹¤Ë -¥·¥°¥Ê¥ë¤òÁ÷¿®¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ -¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢ -»Ò¥×¥í¥»¥¹¤Ïľ¤Á¤Ë½ªÎ»¤·¡¢ -¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç»ØÄꤵ¤ì¤¿À°¿ô¤ò½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤È¤·¤Æ»ÈÍѤ¹¤ë¡£ -¿Æ¥×¥í¥»¥¹¤Ï¡¢ +を使ってその実行を一時停止し、ユーザがその子プロセスに +シグナルを送信できるようにする。 +コマンドライン引き数が指定された場合は、 +子プロセスは直ちに終了し、 +コマンドラインで指定された整数を終了ステータスとして使用する。 +親プロセスは、 .BR waitpid () -¤ò»È¤Ã¤Æ»Ò¥×¥í¥»¥¹¤ò´Æ»ë¤·¡¢ -wait ¤Î¥¹¥Æ¡¼¥¿¥¹Ãͤò¾åµ­¤Î W*() ¥Þ¥¯¥í¤ò»È¤Ã¤Æ²òÀϤ¹¤ë¤È¤¤¤¦ -¥ë¡¼¥×¤ò¼Â¹Ô¤¹¤ë¡£ +を使って子プロセスを監視し、 +wait のステータス値を上記の W*() マクロを使って解析するという +ループを実行する。 .\"O The following shell session demonstrates the use of the program: -²¼µ­¤Î¤Î¥·¥§¥ë¡¦¥»¥Ã¥·¥ç¥ó¤Ï¥×¥í¥°¥é¥à¤Î¼Â¹ÔÎã¤Ç¤¢¤ë: +下記ののシェル・セッションはプログラムの実行例である: .in +4n .nf @@ -974,7 +974,7 @@ $ .fi .in .\"O .SS Program source -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -1023,7 +1023,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR _exit (2), .BR clone (2), .BR fork (2), diff --git a/draft/man2/wait4.2 b/draft/man2/wait4.2 index b732e4b7..966b86fc 100644 --- a/draft/man2/wait4.2 +++ b/draft/man2/wait4.2 @@ -40,25 +40,25 @@ .\" Updated 2003-09-12, Kentaro Shirakata .\" Updated 2005-03-04, Akihiro MOTOKI .\" -.\"WORD: signal handling ¥·¥°¥Ê¥ë½èÍý -.\"WORD: suspend Ää»ß(suspend) -.\"WORD: zombie ¥¾¥ó¥Ó(zombie) -.\"WORD: child process »Ò¥×¥í¥»¥¹ -.\"WORD: process group ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× -.\"WORD: process group ID ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×ID -.\"WORD: stop Ää»ß(stop) -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: block ¶Ø»ß(block) -.\"WORD: catch Êá³Í(catch) -.\"WORD: account ¥¢¥«¥¦¥ó¥È +.\"WORD: signal handling シグナル処理 +.\"WORD: suspend 停止(suspend) +.\"WORD: zombie ゾンビ(zombie) +.\"WORD: child process 子プロセス +.\"WORD: process group プロセス・グループ +.\"WORD: process group ID プロセス・グループID +.\"WORD: stop 停止(stop) +.\"WORD: effective user ID 実効ユーザーID +.\"WORD: block 禁止(block) +.\"WORD: catch 捕獲(catch) +.\"WORD: account アカウント .\" .TH WAIT4 2 2010-09-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wait3, wait4 \- wait for process to change state, BSD style -wait3, wait4 \- BSD ¥¹¥¿¥¤¥ë¤Ç¥×¥í¥»¥¹¤Î¾õÂÖÊѲ½¤òÂÔ¤Ä +wait3, wait4 \- BSD スタイルでプロセスの状態変化を待つ .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -75,9 +75,9 @@ wait3, wait4 \- BSD .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -93,7 +93,7 @@ _BSD_SOURCE .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wait3 () .\"O and @@ -103,15 +103,15 @@ _BSD_SOURCE .\"O but additionally return resource usage information about the .\"O child in the structure pointed to by .\"O .IR rusage . -¥·¥¹¥Æ¥à¥³¡¼¥ë +システムコール .BR wait3 () -¤È +と .BR wait4 () -¤Ï +は .BR waitpid (2) -¤ÈƱÍͤÎÆ°ºî¤ò¤¹¤ë¡£¤½¤ì¤Ë²Ã¤¨¡¢»Ò¥×¥í¥»¥¹¤Î¥ê¥½¡¼¥¹»ÈÍѾõ¶·¤Î¾ðÊó¤ò +と同様の動作をする。それに加え、子プロセスのリソース使用状況の情報を .I rusage -¤¬»Ø¤¹¹½Â¤ÂΤËÆþ¤ì¤ÆÊÖ¤¹¡£ +が指す構造体に入れて返す。 .PP .\"O Other than the use of the .\"O .I rusage @@ -130,7 +130,7 @@ _BSD_SOURCE .\"O .\"O .fi .I rusage -¤ò»ÈÍѤ¹¤ëÅÀ¤ò½ü¤±¤Ð¡¢°Ê²¼¤Î 2¤Ä¤ÏÅù²Á¤Ç¤¢¤ë¡£ +を使用する点を除けば、以下の 2つは等価である。 .nf wait3(status, options, rusage); @@ -152,7 +152,7 @@ _BSD_SOURCE .\"O waitpid(pid, status, options); .\"O .\"O .fi -ƱÍͤˡ¢°Ê²¼¤Î 2¤Ä¤âÅù²Á¤Ç¤¢¤ë¡£ +同様に、以下の 2つも等価である。 .nf wait4(pid, status, options, rusage); @@ -168,11 +168,11 @@ _BSD_SOURCE .\"O See .\"O .BR wait (2) .\"O for further details. -¸À¤¤´¹¤¨¤ë¤È¡¢ +言い換えると、 .BR wait3 () -¤ÏÁ´¤Æ¤Î»Ò¥×¥í¥»¥¹¤òÂоݤËÂԤĤ¬¡¢ +は全ての子プロセスを対象に待つが、 .BR wait4 () -¤Ç¤ÏÆÃÄê¤Î»Ò¥×¥í¥»¥¹ (Ê£¿ô²Ä) ¤òÁª¤ó¤ÇÂԤĤ³¤È¤¬¤Ç¤­¤ë¡£ +では特定の子プロセス (複数可) を選んで待つことができる。 .PP .\"O If .\"O .I rusage @@ -184,31 +184,31 @@ _BSD_SOURCE .\"O .BR getrusage (2) .\"O for details. .I rusage -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が NULL でない場合、 .I rusage -¤¬»Ø¤¹ -.I rusage ¹½Â¤ÂÎ -¤Ë¤Ï»Ò¥×¥í¥»¥¹¤Î¥¢¥«¥¦¥ó¥È¾ðÊ󤬳ÊǼ¤µ¤ì¤ë¡£ -¾Ü¤·¤¯¤Ï +が指す +.I rusage 構造体 +には子プロセスのアカウント情報が格納される。 +詳しくは .BR getrusage (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O As for .\"O .BR waitpid (2). .BR waitpid (2) -¤ÈƱÍÍ¡£ +と同様。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O As for .\"O .BR waitpid (2). .BR waitpid (2) -¤ÈƱÍÍ¡£ +と同様。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.3BSD. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Including .\"O .I .\"O is not required these days, but increases portability. @@ -220,31 +220,31 @@ _BSD_SOURCE .\"O .I struct timeval .\"O defined in .\"O .IR .) -¸½ºß¤Ç¤Ï +現在では .I -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ëɬÍפϤʤ¤¤¬¡¢¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ¤ª¤¯¤È -°Ü¿¢À­¤ò¹â¤á¤ë¤³¤È¤¬¤Ç¤­¤ë (¼ÂºÝ¤Ë¤Ï +をインクルードする必要はないが、インクルードしておくと +移植性を高めることができる (実際には .I -¤Ç +で .I rusage -¹½Â¤ÂΤ¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢¤½¤Î¥Õ¥£¡¼¥ë¥É¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë +構造体が定義されているが、そのフィールドで使用されている .I struct timeval -·¿¤Ï +型は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ +で定義されている)。 .\"O On Linux, .\"O .BR wait3 () .\"O is a library function implemented on top of the .\"O .BR wait4 () .\"O system call. -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR wait3 () -¤Ï¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ç¤¢¤ê¡¢ +はライブラリ関数であり、 .BR wait4 () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +システムコールを使って実装されている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fork (2), .BR getrusage (2), .BR sigaction (2), diff --git a/draft/man2/write.2 b/draft/man2/write.2 index ba30c7ba..11651ef8 100644 --- a/draft/man2/write.2 +++ b/draft/man2/write.2 @@ -50,32 +50,32 @@ .\" Updated 2007-09-01, Akihiro MOTOKI, LDP v2.64 .\" Updated 2008-04-13, Akihiro MOTOKI, LDP v3.20 .\" -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: buffer ¥Ð¥Ã¥Õ¥¡¡¼ -.\"WORD: file system ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à -.\"WORD: object ¥ª¥Ö¥¸¥§¥¯¥È -.\"WORD: pipe ¥Ñ¥¤¥× -.\"WORD: socket ¥½¥±¥Ã¥È -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: catch Êá³Í(catch) -.\"WORD: block Ää»ß(block) -.\"WORD: interrupt ³ä¤ê¹þ¤ß -.\"WORD: nonblocking I/O ÈóÄä»ß I/O -.\"WORD: device ¥Ç¥Ð¥¤¥¹ -.\"WORD: low-level I/O Äã¥ì¤Ù¥ë I/O +.\"WORD: descriptor ディスクリプタ +.\"WORD: buffer バッファー +.\"WORD: file system ファイル・システム +.\"WORD: object オブジェクト +.\"WORD: pipe パイプ +.\"WORD: socket ソケット +.\"WORD: signal シグナル +.\"WORD: catch 捕獲(catch) +.\"WORD: block 停止(block) +.\"WORD: interrupt 割り込み +.\"WORD: nonblocking I/O 非停止 I/O +.\"WORD: device デバイス +.\"WORD: low-level I/O 低レべル I/O .\" .TH WRITE 2 2010-08-29 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O write \- write to a file descriptor -write \- ¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿ (file descriptor) ¤Ë½ñ¤­¹þ¤à +write \- ファイル・ディスクリプタ (file descriptor) に書き込む .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "ssize_t write(int " fd ", const void *" buf ", size_t " count ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR write () .\"O writes up to .\"O .I count @@ -84,13 +84,13 @@ write \- .\"O to the file referred to by the file descriptor .\"O .IR fd . .BR write () -¤Ï¡¢ +は、 .I buf -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤«¤é¡¢¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿ +が指すバッファから、ファイル・ディスクリプタ .I fd -¤¬»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¤Ø¡¢ºÇÂç +が参照するファイルへ、最大 .I count -¥Ð¥¤¥È¤ò½ñ¤­¹þ¤à¡£ +バイトを書き込む。 .\"O The number of bytes written may be less than .\"O .I count @@ -105,21 +105,21 @@ write \- .\"O bytes. .\"O (See also .\"O .BR pipe (7).) -½ñ¤­¹þ¤Þ¤ì¤ë¥Ð¥¤¥È¿ô¤Ï +書き込まれるバイト数は .I count -¤è¤ê¤â¾®¤µ¤¯¤Ê¤ë¤³¤È¤¬¤¢¤ë¡£ -Î㤨¤Ð¡¢½ñ¤­¹þ¤ßÂоݤÎʪÍý¥á¥Ç¥£¥¢¤Ë½½Ê¬¤ÊÎΰ褬¤Ê¤¤¾ì¹ç¡¢ -¥ê¥½¡¼¥¹¾å¸Â +よりも小さくなることがある。 +例えば、書き込み対象の物理メディアに十分な領域がない場合、 +リソース上限 .B RLIMIT_FSIZE -¤Ë㤷¤¿¾ì¹ç +に達した場合 .RB ( setrlimit (2) -»²¾È)¡¢ +参照)、 .I count -¥Ð¥¤¥È̤Ëþ¤Î½ñ¤­¹þ¤ß¤¬¹Ô¤ï¤ì¤¿¸å¤Ç -¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¾ì¹ç¡¢ -¤Ê¤É¤Ç¤¢¤ë¡£ +バイト未満の書き込みが行われた後で +呼び出しがシグナルハンドラにより割り込まれた場合、 +などである。 .RB ( pipe (7) -¤â»²¾È¤Î¤³¤È¡£) +も参照のこと。) .\"O For a seekable file (i.e., one to which .\"O .BR lseek (2) @@ -134,19 +134,19 @@ write \- .\"O the file offset is first set to the end of the file before writing. .\"O The adjustment of the file offset and the write operation .\"O are performed as an atomic step. -seek ²Äǽ¤Ê¥Õ¥¡¥¤¥ë (¤Ä¤Þ¤ê +seek 可能なファイル (つまり .BR lseek (2) -¤¬Å¬ÍѤǤ­¤ë¥Õ¥¡¥¤¥ë¡¢Î㤨¤ÐÄ̾ï¤Î¥Õ¥¡¥¤¥ë) ¤Ç¤Ï¡¢ -½ñ¤­¹þ¤ß¤Ï¸½ºß¤Î¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤«¤é¹Ô¤ï¤ì¡¢ -¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤Ï¼ÂºÝ¤Ë½ñ¤­¹þ¤ß¤¬¹Ô¤ï¤ì¤¿¥Ð¥¤¥È¿ôʬ -²Ã»»¤µ¤ì¤ë¡£¥Õ¥¡¥¤¥ë¤¬ +が適用できるファイル、例えば通常のファイル) では、 +書き込みは現在のファイル・オフセットから行われ、 +ファイル・オフセットは実際に書き込みが行われたバイト数分 +加算される。ファイルが .B O_APPEND -¤Ç +で .BR open (2) -¤µ¤ì¤¿¾ì¹ç¡¢¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤Ï½ñ¤­¹þ¤ßÁ°¤Ë -¥Õ¥¡¥¤¥ë¤ÎËöÈø¤ËÀßÄꤵ¤ì¤ë¡£ -¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤ÎÄ´À°¤È½ñ¤­¹þ¤ßÁàºî¤Ï¥¢¥È¥ß¥Ã¥¯¤Ê½èÍý¤È¤·¤Æ -¼Â¹Ô¤µ¤ì¤ë¡£ +された場合、ファイル・オフセットは書き込み前に +ファイルの末尾に設定される。 +ファイル・オフセットの調整と書き込み操作はアトミックな処理として +実行される。 .\"O POSIX requires that a .\"O .BR read (2) @@ -154,22 +154,22 @@ seek .\"O .BR write () .\"O has returned returns the new data. .\"O Note that not all file systems are POSIX conforming. -POSIX ¤Ï +POSIX は .BR write () -¤¬¹Ô¤Ê¤ï¤ì¤¿¸å¤Ë¼Â¹Ô¤·¤¿ +が行なわれた後に実行した .BR read (2) -¤¬ -¿·¤·¤¤¥Ç¡¼¥¿¤òÊÖ¤¹¤³¤È¤òÍ׵ᤷ¤Æ¤¤¤ë¡£ -Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤¬ POSIX ½àµò¤Ç¤Ï¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +が +新しいデータを返すことを要求している。 +全てのファイル・システムが POSIX 準拠ではない点に注意すること。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, the number of bytes written is returned (zero indicates .\"O nothing was written). .\"O On error, \-1 is returned, and \fIerrno\fP is set .\"O appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢½ñ¤­¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¿ô¤¬ÊÖ¤µ¤ì¤ë -(¥¼¥í¤Ï²¿¤â½ñ¤­¹þ¤Þ¤ì¤Ê¤«¤Ã¤¿¤³¤È¤ò¼¨¤¹)¡£ -¥¨¥é¡¼¤Ê¤é¤Ð \-1 ¤¬ÊÖ¤µ¤ì¡¢\fIerrno\fP ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +成功した場合、書き込まれたバイト数が返される +(ゼロは何も書き込まれなかったことを示す)。 +エラーならば \-1 が返され、\fIerrno\fP が適切に設定される。 .\"O If \fIcount\fP is zero and .\"O .I fd @@ -183,19 +183,19 @@ POSIX .\"O .I fd .\"O refers to a file other than a regular file, .\"O the results are not specified. -\fIcount\fP ¤¬ 0 ¤Ç¡¢ +\fIcount\fP が 0 で、 .I fd -¤¬Ä̾ï¤Î¥Õ¥¡¥¤¥ë (regular file) ¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¡¢ +が通常のファイル (regular file) を参照している場合、 .BR write () -¤Ï¸å½Ò¤Î¥¨¥é¡¼¤Î¤¤¤º¤ì¤«¤ò¸¡½Ð¤·¤¿¾ì¹ç¡¢¼ºÇÔ¤òÊÖ¤¹¤³¤È¤¬¤¢¤ë¡£ -¥¨¥é¡¼¤¬¸¡½Ð¤µ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ -0 ¤òÊÖ¤·¡¢Â¾¤Ë²¿¤Î±Æ¶Á¤âÍ¿¤¨¤Ê¤¤¡£ -\fIcount\fP ¤¬ 0 ¤Ç¡¢ +は後述のエラーのいずれかを検出した場合、失敗を返すことがある。 +エラーが検出されなかった場合は、 +0 を返し、他に何の影響も与えない。 +\fIcount\fP が 0 で、 .I fd -¤¬Ä̾ï¤Î¥Õ¥¡¥¤¥ë°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -¤½¤Î·ë²Ì¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +が通常のファイル以外のファイルを参照している場合、 +その結果は規定されていない。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EAGAIN .\"O The file descriptor @@ -203,15 +203,15 @@ POSIX .\"O refers to a file other than a socket and has been marked nonblocking .\"O .RB ( O_NONBLOCK ), .\"O and the write would block. -¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿ +ファイル・ディスクリプタ .I fd -¤¬¥½¥±¥Ã¥È°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤Æ¡¢ -ÈóÄä»ß (nonblocking) ¥â¡¼¥É +がソケット以外のファイルを参照していて、 +非停止 (nonblocking) モード .RB ( O_NONBLOCK ) -¤ËÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢½ñ¤­¹þ¤ß¤ò¹Ô¤¦¤ÈÄä»ß¤¹¤ë¾õ¶·¤Ë¤¢¤ë¡£ +に設定されており、書き込みを行うと停止する状況にある。 .TP .\"O .BR EAGAIN " or " EWOULDBLOCK -.BR EAGAIN " ¤Þ¤¿¤Ï " EWOULDBLOCK +.BR EAGAIN " または " EWOULDBLOCK .\" Actually EAGAIN on Linux .\"O The file descriptor .\"O .I fd @@ -221,54 +221,54 @@ POSIX .\"O POSIX.1-2001 allows either error to be returned for this case, .\"O and does not require these constants to have the same value, .\"O so a portable application should check for both possibilities. -¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿ +ファイル・ディスクリプタ .I fd -¤¬¥½¥±¥Ã¥È¤ò»²¾È¤·¤Æ¤¤¤Æ¡¢ÈóÄä»ß (nonblocking) ¥â¡¼¥É +がソケットを参照していて、非停止 (nonblocking) モード .RB ( O_NONBLOCK ) -¤ËÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢½ñ¤­¹þ¤ß¤ò¹Ô¤¦¤ÈÄä»ß¤¹¤ë¾õ¶·¤Ë¤¢¤ë¡£ -POSIX.1-2001 ¤Ï¡¢¤³¤Î¾ì¹ç¤Ë¤É¤Á¤é¤Î¥¨¥é¡¼¤òÊÖ¤¹¤³¤È¤âǧ¤á¤Æ¤ª¤ê¡¢ -¤³¤ì¤é 2 ¤Ä¤ÎÄê¿ô¤¬Æ±¤¸Ãͤò»ý¤Ä¤³¤È¤âµá¤á¤Æ¤¤¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢Î¾Êý¤Î²ÄǽÀ­¤ò -³Îǧ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +に設定されており、書き込みを行うと停止する状況にある。 +POSIX.1-2001 は、この場合にどちらのエラーを返すことも認めており、 +これら 2 つの定数が同じ値を持つことも求めていない。 +したがって、移植性が必要なアプリケーションでは、両方の可能性を +確認すべきである。 .TP .B EBADF .\"O .I fd .\"O is not a valid file descriptor or is not open for writing. .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¤«½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó -(open) ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +が有効なファイル・ディスクリプタでないか書き込みのためにオープン +(open) されていない。 .TP .B EDESTADDRREQ .\"O .I fd .\"O refers to a datagram socket for which a peer address has not been set using .\"O .BR connect (2). .I fd -¤¬¡¢ +が、 .BR connect (2) -¤ò»È¤Ã¤ÆÄÌ¿®Áê¼ê¤Î¥¢¥É¥ì¥¹¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¥Ç¡¼¥¿¥°¥é¥à¥½¥±¥Ã¥È¤ò -»²¾È¤·¤Æ¤¤¤ë¡£ +を使って通信相手のアドレスが設定されていないデータグラムソケットを +参照している。 .TP .B EFAULT .\"O .I buf .\"O is outside your accessible address space. .I buf -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö (address space) ¤Î³°¤Ë¤¢¤ë¡£ +がアクセス可能なアドレス空間 (address space) の外にある。 .TP .B EFBIG .\"O An attempt was made to write a file that exceeds the implementation-defined .\"O maximum file size or the process's file size limit, .\"O or to write at a position past the maximum allowed offset. -¼ÂÁõÄêµÁ¤ÎºÇÂç¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤Þ¤¿¤Ï¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¥µ¥¤¥ºÀ©¸Â¤ò -Ķ¤¨¤Æ¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤â¤¦¤È¤·¤¿¡£ -¤Þ¤¿¤Ïµö²Ä¤µ¤ì¤¿¥ª¥Õ¥»¥Ã¥ÈÃͤ賦¤òĶ¤¨¤¿Àè¤Î°ÌÃÖ¤Ë -½ñ¤­¹þ¤â¤¦¤È¤·¤¿¡£ +実装定義の最大ファイルサイズまたはプロセスのファイルサイズ制限を +超えてファイルに書き込もうとした。 +または許可されたオフセット値の限界を超えた先の位置に +書き込もうとした。 .TP .B EINTR .\"O The call was interrupted by a signal before any data was written; see .\"O .BR signal (7). -²¿¤Î¥Ç¡¼¥¿¤â½ñ¤«¤Ê¤¤´Ö¤Ë¥·¥°¥Ê¥ë¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿ (interrupt)¡£ +何のデータも書かない間にシグナルにより割り込まれた (interrupt)。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .\"O .I fd @@ -281,27 +281,27 @@ POSIX.1-2001 .\"O .IR count , .\"O or the current file offset is not suitably aligned. .I fd -¤¬½ñ¤­¹þ¤ß¤¬ÉÔŬÀڤʥª¥Ö¥¸¥§¥¯¥È¤ò»²¾È¤·¤Æ¤¤¤ë¡£ -¤â¤·¤¯¤Ï¡¢¥Õ¥¡¥¤¥ë¤¬ +が書き込みが不適切なオブジェクトを参照している。 +もしくは、ファイルが .B O_DIRECT -¥Õ¥é¥°¤ò»ØÄꤷ¤Æ¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ +フラグを指定してオープンされているが、 .I buf -¤Ë»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¡¢ +に指定されたアドレス、 .I count -¤Ë»ØÄꤵ¤ì¤¿ÃÍ¡¢ -¸½ºß¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤Î¤¤¤º¤ì¤«¤Î -¥¢¥é¥¤¥ó¥á¥ó¥È¤¬ÉÔŬÀڤǤ¢¤ë¡£ +に指定された値、 +現在のファイルオフセットのいずれかの +アラインメントが不適切である。 .TP .B EIO .\"O A low-level I/O error occurred while modifying the inode. -inode ¤Î½¤ÀµÃæ¤ËÄã¥ì¤Ù¥ë (low-level) I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +inode の修正中に低レべル (low-level) I/O エラーが発生した。 .TP .B ENOSPC .\"O The device containing the file referred to by .\"O .I fd .\"O has no room for the data. .I fd -¤Ë¤è¤Ã¤Æ»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤ò´Þ¤à¥Ç¥Ð¥¤¥¹ (device) ¤Ë½½Ê¬¤Ê¶õ¤­¤¬¤Ê¤¤¡£ +によって参照されるファイルを含むデバイス (device) に十分な空きがない。 .TP .B EPIPE .\"O .I fd @@ -312,53 +312,53 @@ inode .\"O (Thus, the write return value is seen only if the program .\"O catches, blocks or ignores this signal.) .I fd -¤¬¥Ñ¥¤¥× (pipe) ¤«¥½¥±¥Ã¥È (socket) ¤ËÀܳ¤µ¤ì¤Æ¤ª¤ê¡¢ -¤½¤ÎÈ¿ÂЦ (Æɤ߹þ¤ß¦) ¤¬¥¯¥í¡¼¥º (close) ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¤Ï¡¢½ñ¤­¹þ¤ß¤ò¹Ô¤Ê¤¦¥×¥í¥»¥¹¤Ï +がパイプ (pipe) かソケット (socket) に接続されており、 +その反対側 (読み込み側) がクローズ (close) されている。 +これが発生した場合には、書き込みを行なうプロセスは .B SIGPIPE -¥·¥°¥Ê¥ë (signal)¤â¼õ¤±¤ë¡£ -(¤·¤¿¤¬¤Ã¤Æ¡¢¥×¥í¥°¥é¥à¤¬¤³¤Î¥·¥°¥Ê¥ë¤òÊá³Í (catch)¡¢Ää»ß (block)¡¢Ìµ»ë (ignore) -¤·¤¿¾ì¹ç¤Î¤ß¡¢write ¤ÎÊÖ¤êÃͤò»²¾È¤Ç¤­¤ë¡£) +シグナル (signal)も受ける。 +(したがって、プログラムがこのシグナルを捕獲 (catch)、停止 (block)、無視 (ignore) +した場合のみ、write の返り値を参照できる。) .PP .\"O Other errors may occur, depending on the object connected to .\"O .IR fd . .I fd -¤ËÀܳ¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤è¤Ã¤Æ¤Ï¡¢Â¾¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +に接続されたオブジェクトによっては、他のエラーが起こるかもしれない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O .\" SVr4 documents additional error .\"O .\" conditions EDEADLK, ENOLCK, ENOLNK, ENOSR, ENXIO, or ERANGE. -.\" SVr4 ¤Ë¤Ï¾¤Ë EDEADLK, ENOLCK, ENOLNK, -.\" ENOSR, ENXIO, ERANGE ¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ +.\" SVr4 には他に EDEADLK, ENOLCK, ENOLNK, +.\" ENOSR, ENXIO, ERANGE エラーについての記述がある。 .\"O Under SVr4 a write may be interrupted and return .\"O .B EINTR .\"O at any point, .\"O not just before any data is written. -SVr4 ¤Ç¤Ï write ¤¬³ä¤ê¹þ¤Þ¤ì¤ë¤È¡¢¥Ç¡¼¥¿¤¬½ñ¤­¹þ¤Þ¤ì¤ëľÁ°¤Ç¤Ï¤Ê¤¯¡¢ -¤½¤Î»þÅÀ¤Ç +SVr4 では write が割り込まれると、データが書き込まれる直前ではなく、 +その時点で .B EINTR -¤¬Ê֤롣 +が返る。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O A successful return from .\"O .BR write () .\"O does not make any guarantee that data has been committed to disk. .BR write () -¤¬À®¸ù¤·¤ÆÊ֤äƤ­¤Æ¤â¡¢¥Ç¡¼¥¿¤¬¥Ç¥£¥¹¥¯¤Ëµ­Ï¿¤µ¤ì¤¿¤³¤È¤ò -Êݾڤ¹¤ë¤â¤Î¤Ç¤Ï¤Ê¤¤¡£ +が成功して返ってきても、データがディスクに記録されたことを +保証するものではない。 .\"O In fact, on some buggy implementations, it does not even guarantee .\"O that space has successfully been reserved for the data. -¼ÂºÝ¡¢¥Ç¡¼¥¿¤Î¤¿¤á¤Î¥¹¥Ú¡¼¥¹¤¬³ÎÊݤµ¤ì¤¿¤³¤È¤¹¤éÊݾڤµ¤ì¤Ê¤¤¤È¤¤¤¦ -¥Ð¥°¤Ã¤Ý¤¤¼ÂÁõ¤â¤¢¤ë¡£ +実際、データのためのスペースが確保されたことすら保証されないという +バグっぽい実装もある。 .\"O The only way to be sure is to call .\"O .BR fsync (2) .\"O after you are done writing all your data. -¤³¤ì¤ò³Î¼Â¤Ë¤¹¤ëÍ£°ì¤ÎÊýË¡¤Ï¡¢ -Á´¤Æ¤Î¥Ç¡¼¥¿¤ò write ¤·¤¿¸å¤Ë +これを確実にする唯一の方法は、 +全てのデータを write した後に .BR fsync (2) -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¤¢¤ë¡£ +を呼び出すことである。 .\"O If a .\"O .BR write () @@ -368,16 +368,16 @@ SVr4 .\"O if it is interrupted after at least one byte has been written, .\"O the call succeeds, and returns the number of bytes written. .BR write () -¤¬ 1 ¥Ð¥¤¥È¤â½ñ¤­¹þ¤Þ¤Ê¤¤¤¦¤Á¤Ë¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¾ì¹ç¡¢ +が 1 バイトも書き込まないうちにシグナルハンドラにより割り込まれた場合、 .BR write () -¤Ï¥¨¥é¡¼ +はエラー .B EINTR -¤Ç¼ºÇÔ¤¹¤ë¡£ -1¥Ð¥¤¥È¤Ç¤â½ñ¤­¹þ¤ó¤À¸å¤Ç³ä¤ê¹þ¤Þ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ +で失敗する。 +1バイトでも書き込んだ後で割り込まれた場合には、 .BR write () -¤ÏÀ®¸ù¤·¡¢½ñ¤­¹þ¤ó¤À¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ +は成功し、書き込んだバイト数を返す。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR close (2), .BR fcntl (2), .BR fsync (2), diff --git a/draft/man3/INFINITY.3 b/draft/man3/INFINITY.3 index 5eef05c5..b0b2bd41 100644 --- a/draft/man3/INFINITY.3 +++ b/draft/man3/INFINITY.3 @@ -27,14 +27,14 @@ .\" .TH INFINITY 3 2007-07-26 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O INFINITY, NAN, HUGE_VAL, HUGE_VALF, HUGE_VALL \- floating-point constants -INFINITY, NAN, HUGE_VAL, HUGE_VALF, HUGE_VALL \- ÉâÆ°¾®¿ôÅÀ¿ô¤ÎÄê¿ô +INFINITY, NAN, HUGE_VAL, HUGE_VALF, HUGE_VALL \- 浮動小数点数の定数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _ISOC99_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _ISOC99_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _ISOC99_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp @@ -49,14 +49,14 @@ INFINITY, NAN, HUGE_VAL, HUGE_VALF, HUGE_VALL \- .B HUGE_VALL .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The macro .\"O .B INFINITY .\"O expands to a \fIfloat\fP constant representing positive infinity. -¥Þ¥¯¥í +マクロ .B INFINITY -¤ÏÀµ¤Î̵¸ÂÂç¤òɽ¤¹ -\fIfloat\fP ·¿¤ÎÄê¿ô¤ËŸ³«¤µ¤ì¤ë¡£ +は正の無限大を表す +\fIfloat\fP 型の定数に展開される。 .\"O The macro .\"O .B NAN @@ -70,16 +70,16 @@ INFINITY, NAN, HUGE_VAL, HUGE_VALF, HUGE_VALL \- .\"O .I signaling .\"O NaN. .\"O See IEC 60559:1989. -(¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç) ¥Þ¥¯¥í +(サポートされている場合) マクロ .B NAN -¤Ï quiet NaN ¤òɽ¤¹ \fIfloat\fP ·¿¤ÎÄê¿ô¤ËŸ³«¤µ¤ì¤ë¡£ +は quiet NaN を表す \fIfloat\fP 型の定数に展開される。 .I quiet -NaN ¤Ï·×»»¼°¤ÎÃæ¤Ç»È¤ï¤ì¤¿¤È¤­¤ËÎã³°¤òµ¯¤³¤µ¤Ê¤¤ -NaN ("not-a-number") ¤Ç¤¢¤ë¡£ -¤³¤ÎÈ¿ÂÐ¤Ï +NaN は計算式の中で使われたときに例外を起こさない +NaN ("not-a-number") である。 +この反対は .I signalling -NaN ¤Ç¤¢¤ë¡£ -IEC 60559:1989 ¤ò»²¾È¤¹¤ë¤³¤È¡£ +NaN である。 +IEC 60559:1989 を参照すること。 .\"O The macros .\"O .BR HUGE_VAL , @@ -88,17 +88,17 @@ IEC 60559:1989 .\"O expand to constants of types \fIdouble\fP, \fIfloat\fP .\"O and \fIlong double\fP, respectively, .\"O that represent a large positive value, possibly plus infinity. -¥Þ¥¯¥í +マクロ .BR HUGE_VAL , .BR HUGE_VALF , .B HUGE_VALL -¤Ï¤½¤ì¤¾¤ì \fIdouble\fP, \fIfloat\fP, \fIlong double\fP ·¿¤ÎÄê¿ô¤Ç¡¢ -Â礭¤ÊÀµ¤ÎÃͤòɽ¤·¡¢²Äǽ¤Ê¾ì¹ç¤Ë¤ÏÀµ¤Î̵¸ÂÂç¤òɽ¤¹¡£ +はそれぞれ \fIdouble\fP, \fIfloat\fP, \fIlong double\fP 型の定数で、 +大きな正の値を表し、可能な場合には正の無限大を表す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH AVAILABILITY -.SH ²ÄÍÑÀ­ +.SH 可用性 .\"O On a glibc system, the macro .\"O .B HUGE_VAL .\"O is always available. @@ -110,17 +110,17 @@ C99. .\"O .BR INFINITY , .\"O .BR HUGE_VALF , .\"O .BR HUGE_VALL . -glibc ¥·¥¹¥Æ¥à¤Ç¤Ï¥Þ¥¯¥í +glibc システムではマクロ .B HUGE_VAL -¤¬¾ï¤Ë»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ +が常に使用可能である。 .B NAN -¥Þ¥¯¥í¤¬»ÈÍѤǤ­¤ë¤«¤Ï¡¢ +マクロが使用できるかは、 .B "#ifdef NAN" -¤ò»È¤Ã¤Æ¥Æ¥¹¥È¤Ç¤­¤ë¡£ +を使ってテストできる。 .BR INFINITY , .BR HUGE_VALF , .B HUGE_VALL -¤âƱÍͤǤ¢¤ë¡£ +も同様である。 .\"O They will be defined by .\"O .I .\"O if @@ -132,16 +132,16 @@ glibc .\"O is defined .\"O and has a value not less than 199901L. .B _ISOC99_SOURCE -¤« +か .B _GNU_SOURCE -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¤Þ¤¿¤Ï +が定義されている場合、 +または .B __STDC_VERSION__ -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Æ¡¢¤½¤ÎÃͤ¬ 199901L °Ê¾å¤Ç¤¢¤ë¾ì¹ç¡¢ -¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ï +が定義されていて、その値が 199901L 以上である場合、 +これらのマクロは .I -¤ÇÄêµÁ¤µ¤ì¤ë¡£ +で定義される。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fpclassify (3), .BR math_error (7) diff --git a/draft/man3/MB_CUR_MAX.3 b/draft/man3/MB_CUR_MAX.3 index f7db361a..efefdcc4 100644 --- a/draft/man3/MB_CUR_MAX.3 +++ b/draft/man3/MB_CUR_MAX.3 @@ -16,21 +16,21 @@ .\" all rights reserved. .\" Translated Sep 11 1999, HAYAKAWA Hitoshi .\" -.\"WORD: multibyte ¥Þ¥ë¥Á¥Ð¥¤¥È -.\"WORD: locale ¥í¥±¡¼¥ë +.\"WORD: multibyte マルチバイト +.\"WORD: locale ロケール .\" .TH MB_CUR_MAX 3 1999-07-04 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O MB_CUR_MAX \- maximum length of a multibyte character in the current locale -MB_CUR_MAX \- ¸½ºß¤Î¥í¥±¡¼¥ë¤Ç¤Î¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ÎºÇÂçĹ +MB_CUR_MAX \- 現在のロケールでのマルチバイト文字の最大長 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .B MB_CUR_MAX .\"O macro defines an integer expression giving @@ -38,23 +38,23 @@ MB_CUR_MAX \- .\"O wide character in the current locale. .\"O It is locale dependent and therefore not a compile-time constant. .B MB_CUR_MAX -¥Þ¥¯¥í¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Ç°ì¤Ä¤Î¥ï¥¤¥Éʸ»ú¤òɽ¸½¤¹¤ë¤¿¤á¤ËɬÍ×¤Ê -ºÇÂç¥Ð¥¤¥È¿ô¤òɽ¤¹À°¿ôɽ¸½¤òÄêµÁ¤¹¤ë¡£ -¤³¤ì¤Ï¥í¥±¡¼¥ë°Í¸¤Ç¤¢¤ê¡¢¥³¥ó¥Ñ¥¤¥ë»þ¤Ë·è¤Þ¤ëÄê¿ô¤Ç¤Ï¤Ê¤¤¡£ +マクロは、現在のロケールで一つのワイド文字を表現するために必要な +最大バイト数を表す整数表現を定義する。 +これはロケール依存であり、コンパイル時に決まる定数ではない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O An integer in the range [1, .\"O .BR MB_LEN_MAX ]. .\"O The value 1 denotes traditional 8-bit encoded characters. [1, .BR MB_LEN_MAX ] -¤ÎÈϰϤÎÀ°¿ô¤òÊÖ¤¹¡£ -1 ¤È¤¤¤¦ÃͤÏÅÁÅýŪ¤Ê (traditional) 8-bit ¥¨¥ó¥³¡¼¥É¤µ¤ì¤¿Ê¸»ú¤ò°ÕÌ£¤¹¤ë¡£ +の範囲の整数を返す。 +1 という値は伝統的な (traditional) 8-bit エンコードされた文字を意味する。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR MB_LEN_MAX (3), .BR mblen (3), .BR mbstowcs (3), diff --git a/draft/man3/MB_LEN_MAX.3 b/draft/man3/MB_LEN_MAX.3 index e666c638..25a955d4 100644 --- a/draft/man3/MB_LEN_MAX.3 +++ b/draft/man3/MB_LEN_MAX.3 @@ -16,33 +16,33 @@ .\" all rights reserved. .\" Translated Sep 11 1999, HAYAKAWA Hitoshi .\" -.\"WORD: locale ¥í¥±¡¼¥ë +.\"WORD: locale ロケール .\" .TH MB_LEN_MAX 3 1999-07-04 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O MB_LEN_MAX \- maximum multibyte length of a character across all locales -MB_LEN_MAX \- Á´¤Æ¤Î¥í¥±¡¼¥ë¤Ç¤Î£±Ê¸»ú¤ÎºÇÂç¥Þ¥ë¥Á¥Ð¥¤¥ÈĹ +MB_LEN_MAX \- 全てのロケールでの1文字の最大マルチバイト長 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .B MB_LEN_MAX .\"O macro is the upper bound for the number of bytes needed to represent a single .\"O wide character, across all locales. .B MB_LEN_MAX -¥Þ¥¯¥í¤Ï¡¢Á´¤Æ¤Î¥í¥±¡¼¥ë¤Ç°ì¤Ä¤Î¥ï¥¤¥Éʸ»ú¤òɽ¸½¤¹¤ë¤¿¤á¤ËɬÍפȤʤë -ºÇÂç¥Ð¥¤¥È¿ô¤Ç¤¢¤ë¡£ +マクロは、全てのロケールで一つのワイド文字を表現するために必要となる +最大バイト数である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O A constant integer greater than zero. -0 ¤è¤êÂ礭¤¤¤ÎÀ°¿ô·¿¤ÎÄê¿ô¡£ +0 より大きいの整数型の定数。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O .SH NOTES .\"O The entities @@ -55,16 +55,16 @@ C99, POSIX.1-2001. .\"O is typically 6 while .\"O .I sizeof(wchar_t) .\"O is 4. -.SH Ãí°Õ +.SH 注意 .B MB_LEN_MAX -¤È +と .I sizeof(wchar_t) -¤ÎÃͤˤϤʤó¤Î´Ø·¸¤â¤Ê¤¤¡£ -glibc ¤Ç¤Ï +の値にはなんの関係もない。 +glibc では .B MB_LEN_MAX -¤ÏÄ̾ï¤Ï 6 ¤Ç¡¢ +は通常は 6 で、 .I sizeof(wchar_t) -¤Ï 4 ¤Ç¤¢¤ë¡£ +は 4 である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR MB_CUR_MAX (3) diff --git a/draft/man3/__setfpucw.3 b/draft/man3/__setfpucw.3 index 78a6f800..130a4989 100644 --- a/draft/man3/__setfpucw.3 +++ b/draft/man3/__setfpucw.3 @@ -8,22 +8,22 @@ .\" by ISHIOKA Takashi .\" Updated Wed Sep 20 2000 by NAKANO Takeo .\" -.\"WORD: (floating-point) exception (ÉâÆ°¾®¿ôÅÀ) Îã³° -.\"WORD: rounding ´Ý¤á +.\"WORD: (floating-point) exception (浮動小数点) 例外 +.\"WORD: rounding 丸め .\" .TH __SETFPUCW 3 1997-03-08 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O __setfpucw \- set FPU control word on i386 architecture (obsolete) -__setfpucw \- i386 ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤ª¤±¤ë FPU -¤Î¥³¥ó¥È¥í¡¼¥ë¥ï¡¼¥É¤ÎÀßÄê (obsolete) +__setfpucw \- i386 アーキテクチャにおける FPU +のコントロールワードの設定 (obsolete) .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "void __setfpucw(unsigned short " control_word ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR __setfpucw () .\"O transfers .\"O .I control_word @@ -31,17 +31,17 @@ __setfpucw \- i386 .\"O This was used to control floating-point precision, .\"O rounding and floating-point exceptions. .BR __setfpucw () -¤Ï¡¢i386¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤ª¤¤¤Æ +は、i386アーキテクチャにおいて .I control_word -¤ò FPU (floating-point unit) ¤Î¥ì¥¸¥¹¥¿¤ËžÁ÷¤¹¤ë¡£ -¤³¤ì¤ÏÉâÆ°¾®¿ôÅÀ±é»»¤ÎÀºÅÙ¡¢´Ý¤áÊý¡¢ -¤ª¤è¤ÓÉâÆ°¾®¿ôÅÀÎã³°¤òÀ©¸æ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£ +を FPU (floating-point unit) のレジスタに転送する。 +これは浮動小数点演算の精度、丸め方、 +および浮動小数点例外を制御するのに使われる。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O This function was a nonstandard GNU extension. -¤³¤Î´Ø¿ô¤ÏÈóɸ½à¤Ç GNU ³ÈÄ¥¤Ç¤¢¤ë¡£ +この関数は非標準で GNU 拡張である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O As of glibc 2.1 this function does not exist anymore. .\"O There are new functions from C99, with prototypes in .\"O .IR , @@ -59,24 +59,24 @@ __setfpucw \- i386 .\"O .IR feraiseexcept , .\"O .IR fesetexceptflag , .\"O .IR fetestexcept . -glibc 2.1 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î´Ø¿ô¤Ï¸ºß¤·¤Ê¤¤¡£ -¿·¤¿¤Ê´Ø¿ô·²¤¬ C99 ¤«¤éƳÆþ¤µ¤ì¤¿¡£¤³¤ì¤é¤Î¥×¥í¥È¥¿¥¤¥×¤Ï +glibc 2.1 以降では、この関数は存在しない。 +新たな関数群が C99 から導入された。これらのプロトタイプは .I -¤ËÃÖ¤«¤ì¤Æ¤¤¤ë¡£ FPU ¤Î´Ý¤á¥â¡¼¥É¤ÎÀ©¸æ¤Ë¤Ï +に置かれている。 FPU の丸めモードの制御には .IR fegetround , .I fesetround -¤Ê¤É¤¬¡¢ÉâÆ°¾®¿ôÅÀ´ØÏ¢¤Î´Ä¶­¤Ë¤Ï +などが、浮動小数点関連の環境には .IR fegetenv , .IR feholdexcept , .IR fesetenv , .I feupdateenv -¤Ê¤É¤¬¡¢ FPU Îã³°½èÍý¤Ë¤Ï +などが、 FPU 例外処理には .IR feclearexcept , .IR fegetexceptflag , .IR feraiseexcept , .IR fesetexceptflag , .I fetestexcept -¤Ê¤É¤¬Æ³Æþ¤µ¤ì¤¿¡£ +などが導入された。 .PP .\"O If direct access to the FPU control word is still needed, the .\"O .B _FPU_GETCW @@ -85,15 +85,15 @@ glibc 2.1 .\"O macros from .\"O .I .\"O can be used. -FPU ¤Î¥³¥ó¥È¥í¡¼¥ë¥ï¡¼¥É¤Ø¤É¤¦¤·¤Æ¤âľÀÜ¥¢¥¯¥»¥¹¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢ +FPU のコントロールワードへどうしても直接アクセスする必要がある場合には、 .I -¤Î +の .B _FPU_GETCW -¥Þ¥¯¥í¤È +マクロと .B _FPU_SETCW -¥Þ¥¯¥í¤òÍѤ¤¤ë¤³¤È¤Ï²Äǽ¤Ç¤¢¤ë¡£ +マクロを用いることは可能である。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .B __setfpucw(0x1372) .\"O Set FPU control word on the i386 architecture to @@ -103,17 +103,17 @@ FPU .\"O \- rounding to nearest .\"O .br .\"O \- exceptions on overflow, zero divide and NaN -¤Ï¡¢i386¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤ª¤±¤ë FPU ¤Î¥³¥ó¥È¥í¡¼¥ë¥ï¡¼¥É¤ò¡¢ +は、i386アーキテクチャにおける FPU のコントロールワードを、 .br - \- ³ÈÄ¥ÀºÅÙ + \- 拡張精度 .br - \- ºÇ¤â¶á¤¤À°¿ô¤Ø´Ý¤á¤ë¡¢Ãæ´Ö¤Î¾ì¹ç¤Ï¶ö¿ô¤òÁªÂò¤¹¤ë¡£ + \- 最も近い整数へ丸める、中間の場合は偶数を選択する。 .br - \- ·å°î¤ì¡¢0¤Ç½ü»»¡¢µÚ¤Ó̵¸úÃÍ(NaN)¤È¤­¤ËÎã³°¤òȯÀ¸ + \- 桁溢れ、0で除算、及び無効値(NaN)ときに例外を発生 .br -¤ËÀßÄꤹ¤ë¡£ +に設定する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR feclearexcept (3) .br .I diff --git a/draft/man3/a64l.3 b/draft/man3/a64l.3 index c00ecb3a..e2880419 100644 --- a/draft/man3/a64l.3 +++ b/draft/man3/a64l.3 @@ -10,15 +10,15 @@ .\" Updated & Modified Thu Nov 27 01:02:55 JST 2003 .\" by Yuichi SATO .\" -.\"WORD: sign-extend Éä¹æ³ÈÄ¥ +.\"WORD: sign-extend 符号拡張 .\" .TH A64L 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O a64l, l64a \- convert between long and base-64 -a64l, l64a \- long ¤È base-64 ¤òÊÑ´¹¤¹¤ë +a64l, l64a \- long と base-64 を変換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "long a64l(char *" str64 ); @@ -28,9 +28,9 @@ a64l, l64a \- long .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR a64l (), @@ -43,17 +43,17 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions provide a conversion between 32-bit long integers .\"O and little-endian base-64 ASCII strings (of length zero to six). -¤³¤ì¤é¤Î´Ø¿ô¤Ï 32 ¥Ó¥Ã¥È long À°¿ô¤È -¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó base-64 ASCII ʸ»úÎó (Ťµ 0 ¡Á 6) ¤Î´Ö¤ÎÊÑ´¹¤ò¹Ô¤¦¡£ +これらの関数は 32 ビット long 整数と +リトルエンディアン base-64 ASCII 文字列 (長さ 0 〜 6) の間の変換を行う。 .\"O If the string used as argument for .\"O .BR a64l () .\"O has length greater than six, only the first six bytes are used. .BR a64l () -¤Î°ú¤­¿ô¤Îʸ»úÎó¤¬ 7 ʸ»ú°Ê¾å¤Î¾ì¹ç¡¢ -ºÇ½é¤Î 6 ¥Ð¥¤¥È¤¬»È¤ï¤ì¤ë¡£ +の引き数の文字列が 7 文字以上の場合、 +最初の 6 バイトが使われる。 .\"O If the type .\"O .I long .\"O has more than 32 bits, then @@ -64,46 +64,46 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O .BR a64l () .\"O sign-extends its 32-bit result. .I long -·¿¤¬ 32 ¥Ó¥Ã¥È¤è¤êÂ礭¤¤¾ì¹ç¡¢ +型が 32 ビットより大きい場合、 .BR l64a () -¤Ï +は .I value -¤Î²¼°Ì 32 ¥Ó¥Ã¥È¤Î¤ß¤ò»È¤¤¡¢ +の下位 32 ビットのみを使い、 .BR a64l () -¤Ï 32 ¥Ó¥Ã¥È¤Î·ë²Ì¤òÉä¹æ³ÈÄ¥ (sign-extend) ¤¹¤ë¡£ +は 32 ビットの結果を符号拡張 (sign-extend) する。 .LP .\"O The 64 digits in the base-64 system are: -base-64 ¥·¥¹¥Æ¥à¤Ç»È¤ï¤ì¤ë 64 ¸Ä¤Îʸ»ú¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë: +base-64 システムで使われる 64 個の文字は以下の通りである: .RS .nf .\"O \&\(aq.\(aq represents a 0 -\&\(aq.\(aq ¤Ï 0 ¤òɽ¤¹¡£ +\&\(aq.\(aq は 0 を表す。 .\"O \&\(aq/\(aq\& represents a 1 -\&\(aq/\(aq ¤Ï 1 ¤òɽ¤¹¡£ +\&\(aq/\(aq は 1 を表す。 .\"O 0-9 represent 2-11 -0-9 ¤Ï 2-11 ¤òɽ¤¹¡£ +0-9 は 2-11 を表す。 .\"O A-Z represent 12-37 -A-Z ¤Ï 12-37 ¤òɽ¤¹¡£ +A-Z は 12-37 を表す。 .\"O a-z represent 38-63 -a-z ¤Ï 38-63 ¤òɽ¤¹¡£ +a-z は 38-63 を表す。 .fi .RE .\"O So 123 = 59*64^0 + 1*64^1 = "v/". -¤è¤Ã¤Æ 123 = 59*64^0 + 1*64^1 = "v/" ¤Ç¤¢¤ë¡£ +よって 123 = 59*64^0 + 1*64^1 = "v/" である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The value returned by .\"O .BR l64a () .\"O may be a pointer to a static buffer, possibly overwritten .\"O by later calls. .BR l64a () -¤ÇÊÖ¤µ¤ì¤ëÃͤÏÀÅŪ¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤«¤â¤·¤ì¤Ê¤¤¤Î¤Ç¡¢ -°Ê¹ß¤Î¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +で返される値は静的バッファへのポインタかもしれないので、 +以降の呼び出しで上書きされる可能性がある。 .LP .\"O The behavior of .\"O .BR l64a () @@ -114,24 +114,24 @@ POSIX.1-2001. .\"O .I value .\"O is zero, it returns an empty string. .I value -¤¬Éé¤Î¾ì¹ç¡¢ +が負の場合、 .BR l64a () -¤ÎÆ°ºî¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +の動作は定義されていない。 .I value -¤¬ 0 ¤Î¾ì¹ç¤Ï¶õʸ»úÎó¤òÊÖ¤¹¡£ +が 0 の場合は空文字列を返す。 .LP .\"O These functions are broken in glibc before 2.2.5 .\"O (puts most significant digit first). -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc 2.2.5 °ÊÁ°¤Ç¤Ï´Ö°ã¤Ã¤Æ¤¤¤ë -(ºÇ¾å°Ì¥Ç¥¸¥Ã¥È¤òºÇ½é¤Ë¤·¤Æ¤¤¤ë)¡£ +これらの関数は glibc 2.2.5 以前では間違っている +(最上位デジットを最初にしている)。 .LP .\"O This is not the encoding used by .\"O .BR uuencode (1). -¤³¤ì¤Ï +これは .BR uuencode (1) -¤Ç»È¤ï¤ì¤ë¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Ç¤Ï¤Ê¤¤¡£ +で使われるエンコーディングではない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR uuencode (1), .\" .BR itoa (3), .BR strtoul (3) diff --git a/draft/man3/abort.3 b/draft/man3/abort.3 index 5a0fe25c..e1a77717 100644 --- a/draft/man3/abort.3 +++ b/draft/man3/abort.3 @@ -37,18 +37,18 @@ .\" .TH ABORT 3 2007-12-15 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O abort \- cause abnormal process termination -abort \- ¥×¥í¥»¥¹¤Î°Û¾ï½ªÎ»¤òÀ¸¤¸¤µ¤»¤ë +abort \- プロセスの異常終了を生じさせる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .B void abort(void); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR abort () .\"O first unblocks the @@ -60,24 +60,24 @@ abort \- .\"O (see .\"O .BR longjmp (3)). .BR abort () -´Ø¿ô¤Ï¡¢¤Þ¤º +関数は、まず .B SIGABRT -¤Î¶Ø»ß (block) ¤ò²ò½ü¤·¤Æ¤«¤é¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ë +の禁止 (block) を解除してから、呼び出し元のプロセスに .B SIGABRT -¥·¥°¥Ê¥ë¤ò¾å¤²¤ë¡£¤½¤Î·ë²Ì¡¢ +シグナルを上げる。その結果、 .B SIGABRT -¥·¥°¥Ê¥ë¤¬Ê᪠(caught) ¤µ¤ì¤ÆÂбþ¤¹¤ë¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¡¼¤¬ -Ê֤äÆÍè¤Ê¤¤¾ì¹ç°Ê³°¤Ï¡¢¥×¥í¥°¥é¥à¤Î°Û¾ï½ªÎ»¤¬µ¯¤³¤ë +シグナルが捕捉 (caught) されて対応するシグナル・ハンドラーが +返って来ない場合以外は、プログラムの異常終了が起こる .RB ( longjmp (3) -»²¾È)¡£ +参照)。 .PP .\"O If the .\"O .BR abort () .\"O function causes process termination, .\"O all open streams are closed and flushed. .BR abort () -´Ø¿ô¤Ë¤è¤Ã¤Æ¥×¥í¥»¥¹¤Î½ªÎ»¤¬°ú¤­µ¯¤³¤µ¤ì¤¿¤È¤­¤Ë¤Ï¡¢ -¤¹¤Ù¤Æ¤Î³«¤¤¤Æ¤¤¤ë¥¹¥È¥ê¡¼¥à¤ÏÊĤ¸¤é¤ì¥Õ¥é¥Ã¥·¥å¤µ¤ì¤ë¡£ +関数によってプロセスの終了が引き起こされたときには、 +すべての開いているストリームは閉じられフラッシュされる。 .PP .\"O If the .\"O .B SIGABRT @@ -88,26 +88,26 @@ abort \- .\"O .B SIGABRT .\"O and then raising the signal for a second time. .B SIGABRT -¥·¥°¥Ê¥ë¤¬Ìµ»ë¡¢¤Þ¤¿¤ÏÊ֤äÆÍè¤ë¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¡¼¤Ç -Ê᪤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢ +シグナルが無視、または返って来るシグナル・ハンドラーで +捕捉されるようになっている場合であっても、 .BR abort () -´Ø¿ô¤Ï¤½¤Î¥×¥í¥»¥¹¤ò½ªÎ»¤¹¤ë¡£ +関数はそのプロセスを終了する。 .B SIGABRT -¥·¥°¥Ê¥ë¤ËÂФ¹¤ë½èÍýÊýË¡¤ò¥Ç¥Õ¥©¥ë¥È¤ËÌᤷ¤Æ¤«¤é¡¢ºÆÅÙ +シグナルに対する処理方法をデフォルトに戻してから、再度 .B SIGABRT -¥·¥°¥Ê¥ë¤ò¾å¤²¤ë¤³¤È¤Ç¡¢¤³¤Î¤è¤¦¤ÊÆ°ºî¤Ë¤Ê¤ë¡£ +シグナルを上げることで、このような動作になる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR abort () .\"O function never returns. .BR abort () -´Ø¿ô¤¬Ê֤뤳¤È¤Ï¤Ê¤¤¡£ +関数が返ることはない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001, 4.3BSD, C89, C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR gdb (1), .BR sigaction (2), .BR exit (3), diff --git a/draft/man3/abs.3 b/draft/man3/abs.3 index b1819c95..b5f64384 100644 --- a/draft/man3/abs.3 +++ b/draft/man3/abs.3 @@ -36,10 +36,10 @@ .\" Updated Mon 29 Jan 2001 17:18:34 JST by Kentaro Shirakata .\" .TH ABS 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 .\"O abs, labs, llabs, imaxabs \- compute the absolute value of an integer -abs, labs, llabs, imaxabs \- À°¿ô¤ÎÀäÂÐÃͤò·×»»¤¹¤ë -.SH ½ñ¼° +abs, labs, llabs, imaxabs \- 整数の絶対値を計算する +.SH 書式 .nf .B #include .sp @@ -57,9 +57,9 @@ abs, labs, llabs, imaxabs \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -71,7 +71,7 @@ _POSIX_C_SOURCE\ >=\ 200112L; or .I cc\ -std=c99 .ad -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR abs () .\"O function computes the absolute value of the integer @@ -84,17 +84,17 @@ or .\"O functions compute the absolute value of the argument \fIj\fP of the .\"O appropriate integer type for the function. .BR abs () -´Ø¿ô¤Ï¡¢À°¿ô¤Î°ú¿ô \fIj\fP ¤ÎÀäÂÐÃͤò·×»»¤¹¤ë¡£ +関数は、整数の引数 \fIj\fP の絶対値を計算する。 .BR labs (), .BR llabs (), .BR imaxabs () -´Ø¿ô¤Ï¡¢ -¤½¤ì¤¾¤ì¤Î´Ø¿ô¤Î·¿¤Ë±þ¤¸¤¿°ú¿ô \fIj\fP ¤ÎÀäÂÐÃͤò·×»»¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ +関数は、 +それぞれの関数の型に応じた引数 \fIj\fP の絶対値を計算する。 +.SH 返り値 .\"O Returns the absolute value of the integer argument, of the appropriate .\"O integer type for the function. -¤½¤ì¤¾¤ì¤Î´Ø¿ô¤Î·¿¤Ë±þ¤¸¤¿À°¿ô¤Î°ú¿ô¤ÎÀäÂÐÃͤòÊÖ¤¹¡£ -.SH ½àµò +それぞれの関数の型に応じた整数の引数の絶対値を返す。 +.SH 準拠 .\"O SVr4, POSIX.1-2001, 4.3BSD, C99. .\"O .\" POSIX.1 (1996 edition) only requires the .\"O .\" .BR abs () @@ -110,22 +110,22 @@ or .\"O .BR imaxabs () .\"O were added in C99. SVr4, POSIX.1-2001, 4.3BSD, C99. -.\" POSIX.1 (1996 ǯÈÇ) ¤Ï +.\" POSIX.1 (1996 年版) は .\" .BR abs () -.\" ´Ø¿ô¤Î¤ß¤òÍ׵ᤷ¤Æ¤¤¤ë¡£ -C89 ¤Ï +.\" 関数のみを要求している。 +C89 は .BR abs () -´Ø¿ô¤È +関数と .BR labs () -´Ø¿ô¤Î¤ß¤ò´Þ¤ó¤Ç¤¤¤ë¡£ +関数のみを含んでいる。 .BR llabs () -´Ø¿ô¤È +関数と .BR imaxabs () -´Ø¿ô¤Ï C99 ¤ÇÄɲ䵤줿¡£ -.SH Ãí°Õ +関数は C99 で追加された。 +.SH 注意 .\"O Trying to take the absolute value of the most negative integer .\"O is not defined. -ºÇÂç¤ÎÉéÀ°¿ô¤ÎÀäÂÐÃͤϡ¢ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +最大の負整数の絶対値は、定義されていない。 .PP .\"O The .\"O .BR llabs () @@ -136,10 +136,10 @@ C89 .\"O function is included in .\"O glibc since version 2.1.1. .BR llabs () -´Ø¿ô¤Ï¥Ð¡¼¥¸¥ç¥ó 2.0 ¤«¤é glibc ¤Ë´Þ¤Þ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤¬¡¢ -libc5 ¤ä libc4 ¤Ë¤Ï¤Ê¤¤¡£ +関数はバージョン 2.0 から glibc に含まれるようになったが、 +libc5 や libc4 にはない。 .BR imaxabs () -´Ø¿ô¤Ï ¥Ð¡¼¥¸¥ç¥ó 2.1.1 ¤«¤é glibc ¤Ë´Þ¤Þ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ +関数は バージョン 2.1.1 から glibc に含まれるようになった。 .PP .\"O For .\"O .BR llabs () @@ -147,9 +147,9 @@ libc5 .\"O \fB_ISOC99_SOURCE\fP or \fB_ISOC9X_SOURCE\fP (depending on the .\"O version of glibc) before including any standard headers. .BR llabs () -¤¬Àë¸À¤µ¤ì¤ë¤¿¤á¤Ë¤Ï¡¢É¸½à¥Ø¥Ã¥À¤ò include ¤¹¤ëÁ°¤Ë -\fB_ISOC99_SOURCE\fP ¤« \fB_ISOC9X_SOURCE\fP(¤É¤Á¤é¤«¤Ï glibc ¤Î -¥Ð¡¼¥¸¥ç¥ó¤Ë°Í¸¤¹¤ë)¤ò define ¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¡£ +が宣言されるためには、標準ヘッダを include する前に +\fB_ISOC99_SOURCE\fP か \fB_ISOC9X_SOURCE\fP(どちらかは glibc の +バージョンに依存する)を define しておく必要がある。 .PP .\"O GCC handles .\"O .BR abs () @@ -161,17 +161,17 @@ libc5 .\"O and .\"O .BR imaxabs () .\"O as builtins. -GCC ¤Ï +GCC は .BR abs () -¤È +と .BR labs () -¤ò¥Ó¥ë¥É¥¤¥ó´Ø¿ô¤È¤·¤Æ°·¤¦¡£ -GCC 3.0 ¤Ï +をビルドイン関数として扱う。 +GCC 3.0 は .BR llabs () -¤È +と .BR imaxabs () -¤â¥Ó¥ë¥É¥¤¥ó¤È¤·¤Æ°·¤¦¡£ -.SH ´ØÏ¢¹àÌÜ +もビルドインとして扱う。 +.SH 関連項目 .BR cabs (3), .BR ceil (3), .BR fabs (3), diff --git a/draft/man3/acos.3 b/draft/man3/acos.3 index 91192f90..a332ceba 100644 --- a/draft/man3/acos.3 +++ b/draft/man3/acos.3 @@ -41,11 +41,11 @@ .\" .TH ACOS 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O acos, acosf, acosl \- arc cosine function -acos, acosf, acosl \- µÕ;¸¹¡Êarc cosine¡Ë´Ø¿ô +acos, acosf, acosl \- 逆余弦(arc cosine)関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -55,14 +55,14 @@ acos, acosf, acosl \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -77,36 +77,36 @@ or .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR acos () .\"O function calculates the arc cosine of \fIx\fP; that is .\"O the value whose cosine is \fIx\fP. .BR acos () -´Ø¿ô¤Ï \fIx\fP ¤ÎµÕ;¸¹¡Êarc cosine) ¤ò·×»»¤¹¤ë¡£ -¤¹¤Ê¤ï¤Á¡¢¤½¤Î;¸¹ (cosine) ¤¬ \fIx\fP ¤È¤Ê¤ëÃͤǤ¢¤ë¡£ +関数は \fIx\fP の逆余弦(arc cosine) を計算する。 +すなわち、その余弦 (cosine) が \fIx\fP となる値である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the arc cosine of .\"O .IR x .\"O in radians; the return value is in the range [0,\ pi]. -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I x -¤ÎµÕ;¸¹¤ò¥é¥¸¥¢¥óñ°Ì¤ÇÊÖ¤¹¡£ -ÊÖ¤êÃÍ¤Ï [0,\ pi] ¤ÎÈϰϤȤʤ롣 +の逆余弦をラジアン単位で返す。 +返り値は [0,\ pi] の範囲となる。 .\"O If .\"O .I x .\"O is a NaN, a NaN is returned. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x .\"O is +1, .\"O +0 is returned. .I x -¤¬ +1 ¤Î¾ì¹ç¡¢+0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +1 の場合、+0 が返される。 .\"O If .\"O .I x @@ -114,8 +114,8 @@ or .\"O a domain error occurs, .\"O and a NaN is returned. .I x -¤¬Àµ¤Î̵¸ÂÂ礫Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大か負の無限大の場合、 +領域エラー (domain error) が発生し、NaN が返される。 .\"O If .\"O .I x @@ -123,23 +123,23 @@ or .\"O a domain error occurs, .\"O and a NaN is returned. .I x -¤¬ [\-1,\ 1] ¤ÎÈϰϤËÆþ¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が [\-1,\ 1] の範囲に入っていない場合、 +領域エラー (domain error) が発生し、NaN が返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Domain error: \fIx\fP is outside the range [\-1,\ 1] -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬ [\-1,\ 1] ¤ÎÈϰϤËÆþ¤Ã¤Æ¤¤¤Ê¤¤ +領域エラー (domain error): \fIx\fP が [\-1,\ 1] の範囲に入っていない .\"O .I errno .\"O is set to .\"O .BR EDOM . @@ -147,23 +147,23 @@ or .\"O .RB ( FE_INVALID ) .\"O is raised. .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë¡£ -̵¸ú (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +無効 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD, C89. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR asin (3), .BR atan (3), .BR atan2 (3), diff --git a/draft/man3/acosh.3 b/draft/man3/acosh.3 index 7ba908a6..704bc753 100644 --- a/draft/man3/acosh.3 +++ b/draft/man3/acosh.3 @@ -41,11 +41,11 @@ .\" .TH ACOSH 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O acosh, acoshf, acoshl \- inverse hyperbolic cosine function -acosh, acoshf, acoshl \- µÕÁжÊÀþ;¸¹¡Êinverse hyperbolic cosine¡Ë´Ø¿ô +acosh, acoshf, acoshl \- 逆双曲線余弦(inverse hyperbolic cosine)関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -57,14 +57,14 @@ acosh, acoshf, acoshl \- .sp .fi .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -89,41 +89,41 @@ or .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR acosh () .\"O function calculates the inverse hyperbolic cosine of .\"O \fIx\fP; that is the value whose hyperbolic cosine is \fIx\fP. .BR acosh () -´Ø¿ô¤Ï \fIx\fP ¤ÎµÕÁжÊÀþ;¸¹¡Êinverse hyperbolic cosine¡Ë¤ò -·×»»¤¹¤ë¡£ -¤¹¤Ê¤ï¤Á¡¢¤½¤ÎÁжÊÀþ;¸¹¡Êhyperbolic cosine¡Ë¤¬ \fIx\fP ¤Ë -¤Ê¤ë¤è¤¦¤ÊÃͤǤ¢¤ë¡£ +関数は \fIx\fP の逆双曲線余弦(inverse hyperbolic cosine)を +計算する。 +すなわち、その双曲線余弦(hyperbolic cosine)が \fIx\fP に +なるような値である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the inverse hyperbolic cosine of .\"O .IR x . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I x -¤ÎµÕÁжÊÀþ;¸¹¤òÊÖ¤¹¡£ +の逆双曲線余弦を返す。 .\"O If .\"O .I x .\"O is a NaN, a NaN is returned. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x .\"O is +1, +0 is returned. .I x -¤¬ +1 ¤Î¾ì¹ç¡¢+0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +1 の場合、+0 が返される。 .\"O If .\"O .I x .\"O is positive infinity, positive infinity is returned. .I x -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢Àµ¤Î̵¸ÂÂ礬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大の場合、正の無限大が返される。 .\"O If .\"O .I x @@ -131,23 +131,23 @@ or .\"O a domain error occurs, .\"O and the functions return a NaN. .I x -¤¬ 1 ¤è¤ê¾®¤µ¤¤¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が 1 より小さい場合、 +領域エラー (domain error) が発生し、NaN が返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Domain error: \fIx\fP is less than 1 -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬ 1 ¤è¤ê¾®¤µ¤¤ +領域エラー (domain error): \fIx\fP が 1 より小さい .\"O .I errno .\"O is set to .\"O .BR EDOM . @@ -155,23 +155,23 @@ or .\"O .RB ( FE_INVALID ) .\"O is raised. .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë¡£ -̵¸ú (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +無効 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD, C89. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR asinh (3), .BR atanh (3), .BR cacosh (3), diff --git a/draft/man3/addseverity.3 b/draft/man3/addseverity.3 index 941d151e..741d5062 100644 --- a/draft/man3/addseverity.3 +++ b/draft/man3/addseverity.3 @@ -9,15 +9,15 @@ .\" Translated Thu Jul 1 01:12:35 JST 2004 .\" by Yuichi SATO .\" -.\"WORD: severity class ½ÅÂçÅÙ +.\"WORD: severity class 重大度 .\" .TH ADDSEVERITY 3 2008-06-14 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O addseverity \- introduce new severity classes -addseverity \- ¿·¤·¤¤½ÅÂçÅÙ (severity class) ¤òƳÆþ¤¹¤ë +addseverity \- 新しい重大度 (severity class) を導入する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .sp .B #include @@ -28,15 +28,15 @@ addseverity \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR addseverity (): _SVID_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This function allows the introduction of new severity classes .\"O which can be addressed by the .\"O .I severity @@ -50,63 +50,63 @@ _SVID_SOURCE .\"O .I s .\"O to the given value .\"O .IR severity . -¤³¤Î´Ø¿ô¤Ë¤è¤ê¡¢¿·¤·¤¤½ÅÂçÅÙ¤òƳÆþ¤Ç¤­¤ë¡£ -¤³¤Î½ÅÂçÅ٤ϡ¢ +この関数により、新しい重大度を導入できる。 +この重大度は、 .BR fmtmsg (3) -´Ø¿ô¤Î +関数の .I severity -°ú¤­¿ô¤ËÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¸å¼Ô¤Î +引き数に入れることができる。 +デフォルトでは、後者の .BR fmtmsg (3) -´Ø¿ô¤Ï½ÅÂçÅÙ 0-4 (ʸ»úÎó¤Ç¤Ï (none), HALT, ERROR, WARNING, INFO) ¤Î -¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ëÊýË¡¤·¤«ÃΤé¤Ê¤¤¡£ -¤³¤Î +関数は重大度 0-4 (文字列では (none), HALT, ERROR, WARNING, INFO) の +メッセージを表示する方法しか知らない。 +この .BR addseverity (3) -¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤ê¡¢»ØÄꤵ¤ì¤¿Ê¸»úÎó +の呼び出しにより、指定された文字列 .I s -¤Ë»ØÄꤵ¤ì¤¿ÃÍ +に指定された値 .I severity -¤òÉղ乤롣 +を付加する。 .\"O If .\"O .I s .\"O is NULL, the severity class with the numeric value .\"O .I severity .\"O is removed. .I s -¤¬ NULL ¤Î¾ì¹ç¡¢¿ôÃÍ +が NULL の場合、数値 .I severity -¤Î½ÅÂçÅÙ¤¬ºï½ü¤µ¤ì¤ë¡£ +の重大度が削除される。 .\"O It is not possible to overwrite or remove one of the default .\"O severity classes. .\"O The severity value must be nonnegative. -¥Ç¥Õ¥©¥ë¥È¤Î½ÅÂçÅ٤Τɤ줫¤ò¾å½ñ¤­¤·¤¿¤êºï½ü¤·¤¿¤ê¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -½ÅÂçÅÙ¤ÎÃͤÏÉé¤Ç¤Ê¤¤¿ô¤È¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +デフォルトの重大度のどれかを上書きしたり削除したりすることはできない。 +重大度の値は負でない数としなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O Upon success, the value .\"O .B MM_OK .\"O is returned. .\"O Upon error, the return value is .\"O .BR MM_NOTOK . -À®¸ù¤·¤¿¾ì¹ç¡¢ÃÍ +成功した場合、値 .B MM_OK -¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ÊÖ¤êÃÍ¤Ï +が返される。 +エラーの場合、返り値は .B MM_NOTOK -¤Ç¤¢¤ë¡£ +である。 .\"O Possible errors include: out of memory, attempt to remove a .\"O nonexistent or default severity class. -µ¯¤³¤ë²ÄǽÀ­¤¬¤¢¤ë¥¨¥é¡¼¤Ë¤Ï¡¢°Ê²¼¤Î¤â¤Î¤¬´Þ¤Þ¤ì¤ë: -¥á¥â¥ê¤ò»È¤¤²Ì¤¿¤·¤¿¡£ -¸ºß¤·¤Ê¤¤½ÅÂçÅÙ¤Þ¤¿¤Ï¥Ç¥Õ¥©¥ë¥È¤Î½ÅÂçÅÙ¤òºï½ü¤·¤è¤¦¤È¤·¤¿¡£ +起こる可能性があるエラーには、以下のものが含まれる: +メモリを使い果たした。 +存在しない重大度またはデフォルトの重大度を削除しようとした。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR addseverity () .\"O is provided in glibc since version 2.1. .BR addseverity () -¤Ï¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +はバージョン 2.1 以降の glibc で提供されている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This function is not specified in the X/Open Portability Guide .\"O although the .\"O .BR fmtmsg (3) @@ -114,16 +114,16 @@ _SVID_SOURCE .\"O It is available on System V .\"O systems. .BR fmtmsg (3) -´Ø¿ô¤Ï X/Open Portability Guide ¤Ë»ØÄꤵ¤ì¤Æ¤¤¤ë¤¬¡¢ -¤³¤Î´Ø¿ô¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤³¤Î´Ø¿ô¤Ï System V ¥·¥¹¥Æ¥à¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +関数は X/Open Portability Guide に指定されているが、 +この関数は指定されていない。 +この関数は System V システムで利用可能である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O New severity classes can also be added by setting the environment variable .\"O .BR SEV_LEVEL . -¿·¤·¤¤½ÅÂçÅ٤ϡ¢´Ä¶­ÊÑ¿ô +新しい重大度は、環境変数 .B SEV_LEVEL -¤òÀßÄꤹ¤ë¤³¤È¤ÇÄɲ乤뤳¤È¤â¤Ç¤­¤ë¡£ +を設定することで追加することもできる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fmtmsg (3) diff --git a/draft/man3/adjtime.3 b/draft/man3/adjtime.3 index 18441d6d..d2932056 100644 --- a/draft/man3/adjtime.3 +++ b/draft/man3/adjtime.3 @@ -25,11 +25,11 @@ .\" .TH ADJTIME 3 2008-06-22 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O adjtime \- correct the time to synchronize the system clock -adjtime \- ¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤ËƱ´ü¤¹¤ë»þ¹ï¤òÄ´À°¤¹¤ë +adjtime \- システムクロックに同期する時刻を調整する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .BI "int adjtime(const struct timeval *" delta ", struct timeval *" olddelta ); .fi @@ -37,15 +37,15 @@ adjtime \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR adjtime (): _BSD_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR adjtime () .\"O function gradually adjusts the system clock (as returned by @@ -55,21 +55,21 @@ _BSD_SOURCE .\"O .IR delta . .\"O This structure has the following form: .BR adjtime () -´Ø¿ô¤Ï +関数は .RB ( gettimeofday (2) -¤¬ÊÖ¤¹) ¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤ò½ù¡¹¤ËÄ´À°¤¹¤ë¡£ -Ä´À°¤¹¤Ù¤­¥¯¥í¥Ã¥¯¤Î»þ´ÖÎÌ¤Ï +が返す) システムクロックを徐々に調整する。 +調整すべきクロックの時間量は .I delta -¤¬»Ø¤¹¹½Â¤ÂΤǻØÄꤵ¤ì¤ë¡£ -¤³¤Î¹½Â¤ÂΤϰʲ¼¤Î·Á¤Ç¤¢¤ë: +が指す構造体で指定される。 +この構造体は以下の形である: .in +4n .nf struct timeval { .\"O time_t tv_sec; /* seconds */ .\"O suseconds_t tv_usec; /* microseconds */ - time_t tv_sec; /* Éà */ - suseconds_t tv_usec; /* ¥Þ¥¤¥¯¥íÉà */ + time_t tv_sec; /* 秒 */ + suseconds_t tv_usec; /* マイクロ秒 */ }; .fi .in @@ -84,11 +84,11 @@ struct timeval { .\"O .I delta .\"O is negative, then the clock is slowed down in a similar fashion. .I delta -¤ÎÄ´À°Î̤¬Àµ¤Î¾ì¹ç¡¢Ä´À°Î̤Ë㤹¤ë¤Þ¤Ç¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤ò -¾¯¤·³ä¹ç¤À¤±¥¹¥Ô¡¼¥É¥¢¥Ã¥×¤µ¤»¤ë (¤Ä¤Þ¤ê¡¢ËèÉÃ¥¯¥í¥Ã¥¯Ãͤ˾¯¤·¤À¤± -»þ¹ï¤ò²Ã»»¤¹¤ë)¡£ +の調整量が正の場合、調整量に達するまでシステムクロックを +少し割合だけスピードアップさせる (つまり、毎秒クロック値に少しだけ +時刻を加算する)。 .I delta -¤ÎÄ´À°Î̤¬Éé¤Î¾ì¹ç¡¢Æ±ÍͤÎÊýË¡¤Ç¥¯¥í¥Ã¥¯¤òÃÙ¤¯¤¹¤ë¡£ +の調整量が負の場合、同様の方法でクロックを遅くする。 .\"O If a clock adjustment from an earlier .\"O .BR adjtime () @@ -100,14 +100,14 @@ struct timeval { .\"O is not NULL for the later call, then the earlier adjustment is stopped, .\"O but any already completed part of that adjustment is not undone. .BR adjtime () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¤È¤­¤Ë°ÊÁ°¤Î +が呼び出されたときに以前の .BR adjtime () -¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤ë¥¯¥í¥Ã¥¯¤ÎÄ´À°¤¬¤Þ¤À¼Â¹ÔÃæ¤Ç¡¢¤«¤Ä¸å¤Î +の呼び出しによるクロックの調整がまだ実行中で、かつ後の .BR adjtime () -¤Î +の .I delta -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢¼Â¹ÔÃæ¤ÎÄ´À°¤ÏÄä»ß¤µ¤ì¤ë¡£ -¤·¤«¤·¡¢¤¹¤Ç¤Ë¼Â¹Ô¤µ¤ì¤¿Ä´À°¤Î¼è¤ê¾Ã¤·¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ +が NULL でない場合、実行中の調整は停止される。 +しかし、すでに実行された調整の取り消しは行われない。 .\"O If .\"O .I olddelta @@ -115,46 +115,46 @@ struct timeval { .\"O the amount of time remaining from any previous adjustment that .\"O has not yet been completed. .I olddelta -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が NULL でない場合、 .I olddelta -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë¡¢²áµî¤ÎÄ´À°Í×µá¤Ç¤Þ¤À´°Î»¤»¤º»Ä¤Ã¤Æ¤¤¤ë»þ´ÖÎ̤¬ -³ÊǼ¤·¤ÆÊÖ¤µ¤ì¤ë¡£ +が指すバッファに、過去の調整要求でまだ完了せず残っている時間量が +格納して返される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR adjtime () .\"O returns 0. On failure, \-1 is returned, and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR adjtime () -¤Ï 0 ¤òÊÖ¤¹¡£¼ºÇÔ¤¹¤ë¤È¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。失敗すると、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ +にエラーを示す値をセットする。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O The adjustment in .\"O .I delta .\"O is outside the permitted range. .I delta -¤Ç»ØÄꤵ¤ì¤¿Ä´À°Î̤¬µö²Ä¤µ¤ì¤¿ÈϰϤËÆþ¤Ã¤Æ¤¤¤Ê¤¤¡£ +で指定された調整量が許可された範囲に入っていない。 .TP .B EPERM .\"O The caller does not have sufficient privilege to adjust the time. .\"O Under Linux the .\"O .B CAP_SYS_TIME .\"O capability is required. -¸Æ¤Ó½Ð¤·¼Ô¤¬»þ¹ï¤òÄ´À°¤¹¤ë¤Î¤ËɬÍפʸ¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -Linux ¤Ç¤Ï +呼び出し者が時刻を調整するのに必要な権限を持っていない。 +Linux では .B CAP_SYS_TIME -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティが必要である。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 4.3BSD, System V. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The adjustment that .\"O .BR adjtime () .\"O makes to the clock is carried out in such a manner that the clock @@ -166,13 +166,13 @@ Linux .\"O .BR make (1)) .\"O by abrupt positive or negative jumps in the system time. .BR adjtime () -¤¬¹Ô¤¦¥¯¥í¥Ã¥¯¤ÎÄ´À°¤Ï¡¢¥¯¥í¥Ã¥¯¤Ï¾ï¤ËñĴÁý²Ã¤¹¤ë¤È¤¤¤¦ÈÏ°ÏÆâ¤Ç -¼Â¹Ô¤µ¤ì¤ë¡£ +が行うクロックの調整は、クロックは常に単調増加するという範囲内で +実行される。 .BR adjtime () -¤ò»È¤Ã¤Æ»þ¹ï¤òÄ´À°¤¹¤ë¤³¤È¤Ç¡¢¥·¥¹¥Æ¥à¥¿¥¤¥à¤ÎÆÍÁ³¤ÎÀµ¤äÉé¤Î¥¸¥ã¥ó¥× -¤Ë¤è¤ê¡¢¤¤¤¯¤Ä¤«¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó (Î㤨¤Ð +を使って時刻を調整することで、システムタイムの突然の正や負のジャンプ +により、いくつかのアプリケーション (例えば .BR make (1) -¤Ê¤É) ¤Ëµ¯¤³¤ëÌäÂê¤òËɤ°¤³¤È¤¬¤Ç¤­¤ë¡£ +など) に起こる問題を防ぐことができる。 .\"O .BR adjtime () .\"O is intended to be used to make small adjustments to the system time. @@ -184,16 +184,16 @@ Linux .\"O and greater than or equal to (INT_MIN / 1000000 + 2) .\"O (respectively 2145 and \-2145 seconds on i386). .BR adjtime () -¤Ï¥·¥¹¥Æ¥à»þ¹ï¤Ë¾¯¤·¤º¤ÄÄ´À°¤ò¹Ô¤¦¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¤³¤È¤ò´üÂÔ¤µ¤ì¤Æ¤¤¤ë¡£ -¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +はシステム時刻に少しずつ調整を行うために使用されることを期待されている。 +ほとんどのシステムでは、 .I delta -¤Ë»ØÄê¤Ç¤­¤ëÄ´À°Î̤ËÀ©¸Â¤ò²Ý¤·¤Æ¤¤¤ë¡£ -glibc ¤Î¼ÂÁõ¤Ç¤Ï¡¢ +に指定できる調整量に制限を課している。 +glibc の実装では、 .I delta -¤Ï (INT_MIN / 1000000 + 2) °Ê¾å (INT_MAX / 1000000 \- 2) °Ê²¼ -(i386 ¤Ç¤Ï \-2145 °Ê¾å 2145 °Ê²¼) ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は (INT_MIN / 1000000 + 2) 以上 (INT_MAX / 1000000 \- 2) 以下 +(i386 では \-2145 以上 2145 以下) でなければならない。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O A longstanding bug .\"O .\" http://sourceware.org/bugzilla/show_bug?id=2449 .\"O .\" http://bugzilla.kernel.org/show_bug.cgi?id=6761 @@ -209,20 +209,20 @@ glibc .\"O .\" Thanks to the new adjtimex() ADJ_OFFSET_SS_READ flag .\"O on systems with glibc 2.8 or later and .\"O Linux kernel 2.6.26 or later. -¤º¤Ã¤ÈÀΤ«¤é¡¢ +ずっと昔から、 .\" http://sourceware.org/bugzilla/show_bug?id=2449 .\" http://bugzilla.kernel.org/show_bug.cgi?id=6761 .I delta -¤Ë NULL ¤ò»ØÄꤹ¤ë¤È¡¢Ì¤´°Î»¤Î¥¯¥í¥Ã¥¯Ä´À°¤Ë´Ø¤¹¤ëÍ­¸ú¤Ê¾ðÊó¤¬ +に NULL を指定すると、未完了のクロック調整に関する有効な情報が .I olddelta -¤ËÊÖ¤µ¤ì¤Ê¤¤¤È¤¤¤¦¥Ð¥°¤¬¤¢¤Ã¤¿ (¤³¤Î¾ì¹ç¡¢ +に返されないというバグがあった (この場合、 .BR adjtime () -¤Ï¡¢Ì¤´°Î»¤Î¥¯¥í¥Ã¥¯Ä´À°¤Ë´Ø¤¹¤ë¾ðÊó¤ò¡¢Êѹ¹¤»¤º¤ËÊÖ¤¹¤Ù¤­¤Ç¤¢¤ë)¡£ -¤³¤Î¥Ð¥°¤Ï¡¢ -.\" adjtimex() ¤Î¿·¤·¤¤¥Õ¥é¥° ADJ_OFFSET_SS_READ ¤Î¤ª¤«¤²¤À¡£ -glibc 2.8 °Ê¹ß¤Ç¡¢Linux ¥«¡¼¥Í¥ë 2.6.26 °Ê¹ß¤Î¥·¥¹¥Æ¥à¤Ç½¤Àµ¤µ¤ì¤Æ¤¤¤ë¡£ +は、未完了のクロック調整に関する情報を、変更せずに返すべきである)。 +このバグは、 +.\" adjtimex() の新しいフラグ ADJ_OFFSET_SS_READ のおかげだ。 +glibc 2.8 以降で、Linux カーネル 2.6.26 以降のシステムで修正されている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR adjtimex (2), .BR gettimeofday (2), .BR time (7) diff --git a/draft/man3/aio_cancel.3 b/draft/man3/aio_cancel.3 index 8d77d82b..55885754 100644 --- a/draft/man3/aio_cancel.3 +++ b/draft/man3/aio_cancel.3 @@ -27,28 +27,28 @@ .\" .TH AIO_CANCEL 3 2003-11-14 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O aio_cancel \- cancel an outstanding asynchronous I/O request -aio_cancel \- ´°Î»¤·¤Æ¤¤¤Ê¤¤ÈóƱ´ü I/O ¥ê¥¯¥¨¥¹¥È¤ò¥­¥ã¥ó¥»¥ë¤¹¤ë +aio_cancel \- 完了していない非同期 I/O リクエストをキャンセルする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B "#include " .sp .BI "int aio_cancel(int " fd ", struct aiocb *" aiocbp ); .sp .\"O Link with \fI\-lrt\fP. -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR aio_cancel () .\"O function attempts to cancel outstanding asynchronous I/O requests .\"O for the file descriptor .\"O .IR fd . .BR aio_cancel () -´Ø¿ô¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +関数は、ファイルディスクリプタ .I fd -¤Ë¤Ä¤¤¤Æ¤Î´°Î»¤·¤Æ¤¤¤Ê¤¤ÈóƱ´ü I/O ¥ê¥¯¥¨¥¹¥È¤ò¥­¥ã¥ó¥»¥ë¤·¤è¤¦¤È¤¹¤ë¡£ +についての完了していない非同期 I/O リクエストをキャンセルしようとする。 .\"O If .\"O .I aiocbp .\"O is NULL, all such requests are canceled. @@ -57,23 +57,23 @@ aio_cancel \- .\"O .I aiocbp .\"O is canceled. .I aiocbp -¤¬ NULL ¤Î¾ì¹ç¡¢¤½¤Î¤è¤¦¤ÊÁ´¤Æ¤Î¥ê¥¯¥¨¥¹¥È¤¬¥­¥ã¥ó¥»¥ë¤µ¤ì¤ë¡£ +が NULL の場合、そのような全てのリクエストがキャンセルされる。 .I aiocbp -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が NULL でない場合、 .I aiocbp -¤Ç»Ø¤µ¤ì¤¿À©¸æ¥Ö¥í¥Ã¥¯¤Çµ­½Ò¤µ¤ì¤¿¥ê¥¯¥¨¥¹¥È¤Î¤ß¤¬¥­¥ã¥ó¥»¥ë¤µ¤ì¤ë¡£ +で指された制御ブロックで記述されたリクエストのみがキャンセルされる。 .LP .\"O Normal asynchronous notification occurs for canceled requests. -¥­¥ã¥ó¥»¥ë¤µ¤ì¤¿¥ê¥¯¥¨¥¹¥È¤ËÂФ·¤Æ¡¢Ä̾ï¤ÎÈóƱ´üÄÌÃΤ¬µ¯¤³¤ë¡£ +キャンセルされたリクエストに対して、通常の非同期通知が起こる。 .\"O The request return status is set to \-1, and the request error status .\"O is set to .\"O .BR ECANCELED . -¥ê¥¯¥¨¥¹¥È¤ÎÊÖ¤êÃÍ¤Ï \-1 ¤ËÀßÄꤵ¤ì¡¢ -¥ê¥¯¥¨¥¹¥È¤Î¥¨¥é¡¼¾õÂÖ¤Ï +リクエストの返り値は \-1 に設定され、 +リクエストのエラー状態は .B ECANCELED -¤ËÀßÄꤵ¤ì¤ë¡£ +に設定される。 .\"O The control block of requests that cannot be canceled is not changed. -¥­¥ã¥ó¥»¥ë¤Ç¤­¤Ê¤«¤Ã¤¿¥ê¥¯¥¨¥¹¥È¤ÎÀ©¸æ¥Ö¥í¥Ã¥¯¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +キャンセルできなかったリクエストの制御ブロックは変更されない。 .LP .\"O If .\"O .I aiocbp @@ -82,17 +82,17 @@ aio_cancel \- .\"O differs from the file descriptor with which the asynchronous operation .\"O was initiated, unspecified results occur. .I aiocbp -¤¬ NULL ¤Ç¤Ê¤¯¡¢¤«¤Ä +が NULL でなく、かつ .I fd -¤¬ÈóƱ´üÁàºî¤¬³«»Ï¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤È°Û¤Ê¤ë¾ì¹ç¡¢ -À¸¤¸¤ë·ë²Ì¤ÏÉÔÄê¤Ç¤¢¤ë¡£ +が非同期操作が開始されたファイルディスクリプタと異なる場合、 +生じる結果は不定である。 .LP .\"O Which operations are cancellable is implementation-defined. -¤É¤ÎÁàºî¤ò¥­¥ã¥ó¥»¥ë¤Ç¤­¤ë¤«¤Ï¡¢¼ÂÁõÄêµÁ¤Ç¤¢¤ë¡£ +どの操作をキャンセルできるかは、実装定義である。 .\"O .\" FreeBSD: not those on raw disk devices. -.\" FreeBSD: raw ¥Ç¥£¥¹¥¯¥Ç¥Ð¥¤¥¹¤Ø¤Î¥ê¥¯¥¨¥¹¥È¤Ï¥­¥ã¥ó¥»¥ë¤Ç¤­¤Ê¤¤¡£ +.\" FreeBSD: raw ディスクデバイスへのリクエストはキャンセルできない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O This function returns .\"O .B AIO_CANCELED .\"O if all requests were successfully @@ -101,45 +101,45 @@ aio_cancel \- .\"O .B AIO_NOTCANCELED .\"O when at least one of the .\"O requests specified was not canceled because it was in progress. -Á´¤Æ¤Î¥ê¥¯¥¨¥¹¥È¤Î¥­¥ã¥ó¥»¥ë¤¬À®¸ù¤·¤¿¾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï +全てのリクエストのキャンセルが成功した場合、この関数は .B AIO_CANCELED -¤òÊÖ¤¹¡£ -»ØÄꤵ¤ì¤¿¥ê¥¯¥¨¥¹¥È¤Î¤¦¤Á¾¯¤Ê¤¯¤È¤â 1 ¤Ä¤¬¿Ê¹ÔÃæ¤Ç¤¢¤ë¤¿¤á¤Ë -¥­¥ã¥ó¥»¥ë¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ +を返す。 +指定されたリクエストのうち少なくとも 1 つが進行中であるために +キャンセルできなかった場合は、 .B AIO_NOTCANCELED -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .\"O In this case one may check the status of individual requests using .\"O .BR aio_error (3). -¤³¤Î¾ì¹ç¤Ï¡¢ +この場合は、 .BR aio_error (3) -¤ò»È¤Ã¤Æ¸Ä¡¹¤Î¥ê¥¯¥¨¥¹¥È¤Î¾õÂÖ¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使って個々のリクエストの状態をチェックすることができる。 .\"O This function returns .\"O .B AIO_ALLDONE .\"O when all requests had .\"O been completed already before this call. -¸Æ¤Ó½Ð¤µ¤ì¤ëÁ°¤ËÁ´¤Æ¤Î¥ê¥¯¥¨¥¹¥È¤¬´°Î»¤·¤Æ¤¤¤¿¾ì¹ç¡¢ -¤³¤Î´Ø¿ô¤Ï +呼び出される前に全てのリクエストが完了していた場合、 +この関数は .B AIO_ALLDONE -¤òÊÖ¤¹¡£ +を返す。 .\"O When some error occurs, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -²¿¤é¤«¤Î¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Ï¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +何らかのエラーが起こった場合は、\-1 が返されて、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O .I fd .\"O is not a valid file descriptor. .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR aio_error (3), .BR aio_fsync (3), .BR aio_read (3), diff --git a/draft/man3/aio_error.3 b/draft/man3/aio_error.3 index 8e2294b1..78b56cbd 100644 --- a/draft/man3/aio_error.3 +++ b/draft/man3/aio_error.3 @@ -27,30 +27,30 @@ .\" .TH AIO_ERROR 3 2003-11-14 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O aio_error \- get error status of asynchronous I/O operation -aio_error \- ÈóƱ´ü I/O Áàºî¤Î¥¨¥é¡¼¾õÂÖ¤ò¼èÆÀ¤¹¤ë +aio_error \- 非同期 I/O 操作のエラー状態を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B "#include " .sp .BI "int aio_error(const struct aiocb *" aiocbp ); .sp .\"O Link with \fI\-lrt\fP. -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR aio_error () .\"O function returns the error status for the asynchronous I/O request .\"O with control block pointed to by .\"O .IR aiocbp . .BR aio_error () -´Ø¿ô¤Ï +関数は .I aiocbp -¤Ç»Ø¤µ¤ì¤¿À©¸æ¥Ö¥í¥Ã¥¯¤Ç¤ÎÈóƱ´ü I/O ¥ê¥¯¥¨¥¹¥È¤Î¥¨¥é¡¼¾õÂÖ¤òÊÖ¤¹¡£ +で指された制御ブロックでの非同期 I/O リクエストのエラー状態を返す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O This function returns .\"O .B EINPROGRESS .\"O if the request has not been @@ -59,11 +59,11 @@ aio_error \- .\"O .B ECANCELED .\"O if the request was canceled. .\"O It returns 0 if the request completed successfully. -¥ê¥¯¥¨¥¹¥È¤¬¤Þ¤À´°Î»¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï +リクエストがまだ完了していない場合、この関数は .B EINPROGRESS -¤òÊÖ¤¹¡£¥ê¥¯¥¨¥¹¥È¤¬¥­¥ã¥ó¥»¥ë¤µ¤ì¤¿¾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï +を返す。リクエストがキャンセルされた場合、この関数は .B ECANCELED -¤òÊÖ¤¹¡£¥ê¥¯¥¨¥¹¥È¤¬À®¸ù¤·¤Æ´°Î»¤·¤¿¾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï 0 ¤òÊÖ¤¹¡£ +を返す。リクエストが成功して完了した場合、この関数は 0 を返す。 .\"O Otherwise an error value is returned, the same value that would have .\"O been stored in the .\"O .I errno @@ -74,19 +74,19 @@ aio_error \- .\"O or .\"O .I fdatasync .\"O request. -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¥¨¥é¡¼Ãͤ¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤Î¥¨¥é¡¼Ãͤϡ¢Æ±´ü +それ以外の場合はエラー値が返される。 +このエラー値は、同期 .IR read , .IR write , .IR fsync , .I fdatasync -¥ê¥¯¥¨¥¹¥È¤Î¾ì¹ç¤Ë +リクエストの場合に .I errno -¤Ë³ÊǼ¤µ¤ì¤ë¤Î¤ÈƱ¤¸ÃͤǤ¢¤ë¡£ +に格納されるのと同じ値である。 .\"O On error, the error value is returned. -¥¨¥é¡¼¤Î¾ì¹ç¤Ï¥¨¥é¡¼Ãͤ¬ÊÖ¤µ¤ì¤ë¡£ +エラーの場合はエラー値が返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O .I aiocbp @@ -95,14 +95,14 @@ aio_error \- .\"O .BR aio_return (3)) .\"O has not been retrieved yet. .I aiocbp -¤¬¡¢¤Þ¤ÀÊÖ¤êÃÍ (return status) +が、まだ返り値 (return status) .RB ( aio_return (3) -¤ò»²¾È) ¤¬¼èÆÀ¤µ¤ì¤Æ¤¤¤Ê¤¤ÈóƱ´ü I/O ¥ê¥¯¥¨¥¹¥È¤ÎÀ©¸æ¥Ö¥í¥Ã¥¯¤ò»Ø¤·¤Æ¤¤¤Ê¤¤¡£ +を参照) が取得されていない非同期 I/O リクエストの制御ブロックを指していない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR aio_cancel (3), .BR aio_fsync (3), .BR aio_read (3), diff --git a/draft/man3/aio_fsync.3 b/draft/man3/aio_fsync.3 index 965d5a6f..fc4049bc 100644 --- a/draft/man3/aio_fsync.3 +++ b/draft/man3/aio_fsync.3 @@ -27,28 +27,28 @@ .\" .TH AIO_FSYNC 3 2003-11-14 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O aio_fsync \- asynchronous file synchronization -aio_fsync \- ÈóƱ´ü¥Õ¥¡¥¤¥ë¤òƱ´ü¤µ¤»¤ë +aio_fsync \- 非同期ファイルを同期させる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B "#include " .sp .BI "int aio_fsync(int " op ", struct aiocb *" aiocbp ); .sp .\"O Link with \fI\-lrt\fP. -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR aio_fsync () .\"O function does a sync on all outstanding asynchronous I/O operations .\"O associated with .\"O .IR aiocbp\->aio_fildes . .BR aio_fsync () -´Ø¿ô¤Ï¡¢ +関数は、 .I aiocbp\->aio_fildes -¤Ç´ØÏ¢ÉÕ¤±¤é¤ì¤Æ¤¤¤ë¤Þ¤À´°Î»¤·¤Æ¤¤¤Ê¤¤Á´¤Æ¤ÎÈóƱ´ü I/O Áàºî¤òƱ´ü¤µ¤»¤ë¡£ +で関連付けられているまだ完了していない全ての非同期 I/O 操作を同期させる。 .LP .\"O More precisely, if .\"O .I op @@ -63,24 +63,24 @@ aio_fsync \- .\"O .BR O_DSYNC , .\"O this call is the asynchronous analog of .\"O .BR fdatasync (2). -¤è¤êÀµ³Î¤Ë¸À¤¦¤È¡¢ +より正確に言うと、 .I op -¤¬ +が .B O_SYNC -¤Î¾ì¹ç¡¢¸½ºß¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î I/O Áàºî¤Ï¡¢ +の場合、現在キューに入れられている全ての I/O 操作は、 .BR fsync (2) -¤¬¸Æ¤Ð¤ì¤¿¤«¤Î¤è¤¦¤Ë´°Î»¤µ¤ì¤ë¤À¤í¤¦¡£ -¤Þ¤¿ +が呼ばれたかのように完了されるだろう。 +また .I op -¤¬ +が .B O_DSYNC -¤Î¾ì¹ç¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤Ï +の場合、この呼び出しは .BR fdatasync (2) -¤ÎÈóƱ´üÈǤȤʤ롣 +の非同期版となる。 .\"O Note that this is a request only \(em this call does not wait .\"O for I/O completion. -¤³¤Î´Ø¿ô¤Ï¥ê¥¯¥¨¥¹¥È¤ò¹Ô¤¦¤À¤±¤Ç¤¢¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È \(em -¤³¤Î¸Æ¤Ó½Ð¤·¤Ï I/O ¤Î´°Î»¤òÂÔ¤¿¤Ê¤¤¡£ +この関数はリクエストを行うだけである点に注意すること \(em +この呼び出しは I/O の完了を待たない。 .LP .\"O Apart from .\"O .I aio_fildes @@ -91,38 +91,38 @@ aio_fsync \- .\"O field (a \fIstruct sigevent\fP) that indicates the desired type of .\"O asynchronous notification at completion. .I aiocbp -¤Ç»Ø¤µ¤ì¤ë¹½Â¤ÂΤΥե£¡¼¥ë¥É¤Î¤¦¤Á¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤Ç +で指される構造体のフィールドのうち、この呼び出しで .I aio_fildes -°Ê³°¤Ë»ÈÍѤµ¤ì¤ë¤Î¤Ï +以外に使用されるのは .I aio_sigevent -¥Õ¥£¡¼¥ë¥É (\fIstruct sigevent\fP) ¤Î¤ß¤Ç¤¢¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢´°Î»»þ¤ÎÈóƱ´üÄÌÃΤ˻ÈÍѤ·¤¿¤¤¥¿¥¤¥×¤ò¼¨¤¹¡£ +フィールド (\fIstruct sigevent\fP) のみである。 +このフィールドは、完了時の非同期通知に使用したいタイプを示す。 .\"O All other fields are ignored. -¤½¤Î¾¤Î¥Õ¥£¡¼¥ë¥É¤Ï̵»ë¤µ¤ì¤ë¡£ +その他のフィールドは無視される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success (the sync request was successfully queued) .\"O this function returns 0. .\"O On error \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç (Ʊ´ü¥ê¥¯¥¨¥¹¥È¤ò¥­¥å¡¼¤ËÆþ¤ì¤ë¤Î¤ËÀ®¸ù¤·¤¿¾ì¹ç)¡¢ -¤³¤Î´Ø¿ô¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合 (同期リクエストをキューに入れるのに成功した場合)、 +この関数は 0 を返す。 +エラーの場合、\-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EAGAIN .\"O Out of resources. -¥ê¥½¡¼¥¹¤¬Â­¤ê¤Ê¤¤¡£ +リソースが足りない。 .TP .B EBADF .\"O .I aio_fildes .\"O is not a valid file descriptor open for writing. .I aio_fildes -¤¬½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤¿Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ +が書き込みのためにオープンされた有効なファイルディスクリプタではない。 .TP .B EINVAL .\"O No synchronized I/O for this file is supported, or @@ -131,19 +131,19 @@ aio_fsync \- .\"O .B O_SYNC .\"O or .\"O .BR O_DSYNC . -¤³¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ëƱ´ü I/O ¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤Þ¤¿¤Ï +このファイルに対する同期 I/O がサポートされていない。 +または .I op -¤¬ +が .B O_SYNC -¤Ç¤â +でも .B O_DSYNC -¤Ç¤â¤Ê¤¤¡£ +でもない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR aio_cancel (3), .BR aio_error (3), .BR aio_read (3), diff --git a/draft/man3/aio_read.3 b/draft/man3/aio_read.3 index 089ce571..684d2fda 100644 --- a/draft/man3/aio_read.3 +++ b/draft/man3/aio_read.3 @@ -27,19 +27,19 @@ .\" .TH AIO_READ 3 2003-11-14 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O aio_read \- asynchronous read -aio_read \- ÈóƱ´ü¤ÇÆɤ߹þ¤à +aio_read \- 非同期で読み込む .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B "#include " .sp .BI "int aio_read(struct aiocb *" aiocbp ); .sp .\"O Link with \fI\-lrt\fP. -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR aio_read () .\"O function requests an asynchronous "n = read(fd, buf, count)" @@ -51,37 +51,37 @@ aio_read \- .\"O The return status n can be retrieved upon completion using .\"O .BR aio_return (3). .BR aio_read () -´Ø¿ô¤ÏÈóƱ´ü¤Î "n = read(fd, buf, count)" ¤ò¥ê¥¯¥¨¥¹¥È¤¹¤ë¡£ -¤³¤³¤Ç fd, buf, count ¤Ï¡¢¤½¤ì¤¾¤ì +関数は非同期の "n = read(fd, buf, count)" をリクエストする。 +ここで fd, buf, count は、それぞれ .IR aiocbp\->aio_fildes , .IR aiocbp\->aio_buf , .I aiocbp\->aio_nbytes -¤ÇÍ¿¤¨¤é¤ì¤ë¡£ -ÊÖ¤êÃÍ (return status) n ¤Ï¡¢´°Î»»þ¤Ë +で与えられる。 +返り値 (return status) n は、完了時に .BR aio_return (3) -¤ò»È¤Ã¤Æ¼èÆÀ¤Ç¤­¤ë¡£ +を使って取得できる。 .LP .\"O The data is read starting at the absolute file offset .\"O .IR aiocbp\->aio_offset , .\"O regardless of the current file position. .\"O After this request, .\"O the value of the current file position is unspecified. -¥Ç¡¼¥¿¤Ï¡¢¥«¥ì¥ó¥È¤Î¥Õ¥¡¥¤¥ë°ÌÃ֤˴ط¸¤Ê¤¯¡¢ÀäÂÐ¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È +データは、カレントのファイル位置に関係なく、絶対ファイルオフセット .I aiocbp\->aio_offset -¤ò³«»ÏÅÀ¤È¤·¤ÆÆɤ߹þ¤Þ¤ì¤ë¡£ -¤³¤Î¥ê¥¯¥¨¥¹¥È¸å¤Î¡¢¥«¥ì¥ó¥È¤Î¥Õ¥¡¥¤¥ë°ÌÃ֤ϵ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +を開始点として読み込まれる。 +このリクエスト後の、カレントのファイル位置は規定されていない。 .LP .\"O The "asynchronous" means that this call returns as soon as the .\"O request has been enqueued; the read may or may not have completed .\"O when the call returns. .\"O One tests for completion using .\"O .BR aio_error (3). -¡ÖÈóƱ´ü¡×¤È¤Ï¡Ö¥ê¥¯¥¨¥¹¥È¤¬¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤¿¤é¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤Ï¤¹¤°¤ËÊÖ¤ë¡× -¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ -¸Æ¤Ó½Ð¤·¤«¤éÌá¤Ã¤¿»þ¤Ë¡¢Æɤ߹þ¤ß¤Ï´°Î»¤·¤Æ¤¤¤ë¤«¤âÃΤì¤Ê¤¤¤·¡¢ -´°Î»¤·¤Æ¤¤¤Ê¤¤¤«¤âÃΤì¤Ê¤¤¡£ +「非同期」とは「リクエストがキューに入れられたら、この呼び出しはすぐに返る」 +ということである。 +呼び出しから戻った時に、読み込みは完了しているかも知れないし、 +完了していないかも知れない。 .BR aio_error (3) -¤ò»È¤¦¤³¤È¤Ç´°Î»¤·¤¿¤«¤ò¥Æ¥¹¥È¤Ç¤­¤ë¡£ +を使うことで完了したかをテストできる。 .LP .\"O If .\"O .B _POSIX_PRIORITIZED_IO @@ -90,23 +90,23 @@ aio_read \- .\"O to that of the calling process minus .\"O .IR aiocbp\->aio_reqprio . .B _POSIX_PRIORITIZED_IO -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Æ¡¢ -¤«¤Ä¥Õ¥¡¥¤¥ë¤¬¤³¤ì¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -ÈóƱ´üÁàºî¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ÎÍ¥ÀèÅÙ¤«¤é +が定義されていて、 +かつファイルがこれをサポートしている場合、 +非同期操作は呼び出したプロセスの優先度から .I aiocbp\->aio_reqprio -¤ò°ú¤¤¤¿Í¥ÀèÅÙ¤ÇÅÐÏ¿ (submit) ¤µ¤ì¤ë¡£ +を引いた優先度で登録 (submit) される。 .LP .\"O The field .\"O .I aiocbp\->aio_lio_opcode .\"O is ignored. -¥Õ¥£¡¼¥ë¥É +フィールド .I aiocbp\->aio_lio_opcode -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .LP .\"O No data is read from a regular file beyond its maximum offset. -ºÇÂ祪¥Õ¥»¥Ã¥È¤òĶ¤¨¤¿Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤«¤é¤Ï¡¢²¿¤â¥Ç¡¼¥¿¤¬Æɤ߹þ¤Þ¤ì¤Ê¤¤¡£ +最大オフセットを超えた通常のファイルからは、何もデータが読み込まれない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, 0 is returned. .\"O On error the request is not enqueued, \-1 .\"O is returned, and @@ -121,33 +121,33 @@ aio_read \- .\"O .IR errno , .\"O such as .\"O .BR EBADF ). -À®¸ù¤·¤¿¾ì¹ç¡¢0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢¥ê¥¯¥¨¥¹¥È¤Ï¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤º¡¢ -\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +成功した場合、0 が返される。 +エラーの場合、リクエストはキューに入れられず、 +\-1 が返されて、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -¥¨¥é¡¼¤ÏºÇ½é¤Ë¸¡ÃΤµ¤ì¤¿¸å¤Ç¡¢ -(¾õÂÖ \-1 ¤òÊÖ¤¹) +が適切に設定される。 +エラーは最初に検知された後で、 +(状態 \-1 を返す) .BR aio_return (3) -¤È +と .RI ( errno -¤Ç¼èÆÀ¤Ç¤­¤ë +で取得できる .B EBADF -¤Î¤è¤¦¤Ê¥¨¥é¡¼¾õÂÖ¤òÊÖ¤¹) +のようなエラー状態を返す) .BR aio_error (3) -¤ÇÊó¹ð¤µ¤ì¤ë¤À¤í¤¦¡£ +で報告されるだろう。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EAGAIN .\"O Out of resources. -¥ê¥½¡¼¥¹¤¬Â­¤ê¤Ê¤¤¡£ +リソースが足りない。 .TP .B EBADF .\"O .I aio_fildes .\"O is not a valid file descriptor open for reading. .I aio_fildes -¤ÏÆɤ߹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤¿Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +は読み込みのためにオープンされた有効なファイルディスクリプタでない。 .TP .B EINVAL .\"O One or more of @@ -158,42 +158,42 @@ aio_read \- .IR aio_offset , .IR aio_reqprio , .I aio_nbytes -¤Î¤¦¤Á 1 ¤Ä°Ê¾å¤¬Ìµ¸ú¤Ç¤¢¤ë¡£ +のうち 1 つ以上が無効である。 .TP .B ENOSYS .\"O This function is not supported. -¤³¤Î´Ø¿ô¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +この関数がサポートされていない。 .TP .B EOVERFLOW .\"O The file is a regular file, we start reading before end-of-file .\"O and want at least one byte, but the starting position is past .\"O the maximum offset for this file. -¥Õ¥¡¥¤¥ë¤¬Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤¢¤ê¡¢ -¥Õ¥¡¥¤¥ë¤Î½ªÃ¼¤ÎÁ°¤«¤éÆɤ߹þ¤ß¤ò³«»Ï¤·¤Æ¡¢ -¾¯¤Ê¤¯¤È¤â 1 ¥Ð¥¤¥È¤òÆɤ߹þ¤â¤¦¤È¤·¤¿¡£ -¤·¤«¤·³«»Ï°ÌÃÖ¤¬¤³¤Î¥Õ¥¡¥¤¥ë¤ÎºÇÂ祪¥Õ¥»¥Ã¥È¤òĶ¤¨¤Æ¤¤¤¿¡£ +ファイルが通常のファイルであり、 +ファイルの終端の前から読み込みを開始して、 +少なくとも 1 バイトを読み込もうとした。 +しかし開始位置がこのファイルの最大オフセットを超えていた。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O It is a good idea to zero out the control block before use. -»ÈÍѤ¹¤ëÁ°¤ËÀ©¸æ¥Ö¥í¥Ã¥¯¤ò 0 ¤Ë¤·¤Æ¤ª¤¯¤Î¤Ï¡¢¤è¤¤¹Í¤¨¤Ç¤¢¤ë¡£ +使用する前に制御ブロックを 0 にしておくのは、よい考えである。 .\"O This control block must not be changed while the read operation .\"O is in progress. -¤³¤ÎÀ©¸æ¥Ö¥í¥Ã¥¯¤Ï¡¢Æɤ߹þ¤ßÁàºî¤¬¿Ê¹Ô¤·¤Æ¤¤¤ë´Ö¤ÏÊѹ¹¤¹¤Ù¤­¤Ç¤Ê¤¤¡£ +この制御ブロックは、読み込み操作が進行している間は変更すべきでない。 .\"O The buffer area being read into .\"O .\" or the control block of the operation .\"O must not be accessed during the operation or undefined results may .\"O occur. .\"O The memory areas involved must remain valid. -Æɤ߹þ¤Þ¤ì¤ë¥Ð¥Ã¥Õ¥¡Îΰè¤Ï -.\" ¤Þ¤¿¤ÏÁàºî¤ÎÀ©¸æ¥Ö¥í¥Ã¥¯¤Ï -Áàºî¤ÎºÇÃæ¤Ë¥¢¥¯¥»¥¹¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¤µ¤â¤Ê¤¤¤Èµ¯¤³¤ë·ë²Ì¤¬ÉÔÄê¤Ë¤Ê¤ë¡£ -¤³¤ì¤Ë´Þ¤Þ¤ì¤ë¥á¥â¥êÎΰè¤Ï¡¢Í­¸ú¤Ê¤Þ¤Þ¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +読み込まれるバッファ領域は +.\" または操作の制御ブロックは +操作の最中にアクセスすべきではない。 +さもないと起こる結果が不定になる。 +これに含まれるメモリ領域は、有効なままにしなければならない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR aio_cancel (3), .BR aio_error (3), .BR aio_fsync (3), diff --git a/draft/man3/aio_return.3 b/draft/man3/aio_return.3 index ee94c0ad..dba66872 100644 --- a/draft/man3/aio_return.3 +++ b/draft/man3/aio_return.3 @@ -27,41 +27,41 @@ .\" .TH AIO_RETURN 3 2003-11-14 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O aio_return \- get return status of asynchronous I/O operation -aio_return \- ÈóƱ´ü I/O Áàºî¤ÎÊÖ¤êÃÍ (return status) ¤ò¼èÆÀ¤¹¤ë +aio_return \- 非同期 I/O 操作の返り値 (return status) を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B "#include " .sp .BI "ssize_t aio_return(struct aiocb *" aiocbp ); .sp .\"O Link with \fI\-lrt\fP. -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR aio_return () .\"O function returns the final return status for the asynchronous I/O request .\"O with control block pointed to by .\"O .IR aiocbp . .BR aio_return () -´Ø¿ô¤Ï +関数は .I aiocbp -¤Ç»Ø¤µ¤ì¤¿À©¸æ¥Ö¥í¥Ã¥¯¤Ë¤ª¤±¤ëÈóƱ´ü I/O ¥ê¥¯¥¨¥¹¥È¤ÎºÇ½ªÅª¤ÊÊÖ¤êÃͤòÊÖ¤¹¡£ +で指された制御ブロックにおける非同期 I/O リクエストの最終的な返り値を返す。 .LP .\"O This function should be called only once for any given request, after .\"O .BR aio_error (3) .\"O returns something other than .\"O .B EINPROGRESS. -¤³¤Î´Ø¿ô¤Ï¡¢ +この関数は、 .BR aio_error (3) -¤¬ +が .B EINPROGRESS -°Ê³°¤òÊÖ¤·¤¿¸å¤Ç¡¢ -Í¿¤¨¤é¤ì¤¿¥ê¥¯¥¨¥¹¥È¤ËÂФ·¤Æ 1 ²ó¤À¤±¸Æ¤Ð¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +以外を返した後で、 +与えられたリクエストに対して 1 回だけ呼ばれるべきである。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O If the asynchronous I/O operation has completed, this function returns .\"O the value that would have been returned in case of a synchronous .\"O .IR read , @@ -69,30 +69,30 @@ aio_return \- .\"O or .\"O .I fsync .\"O request. -ÈóƱ´ü I/O Áàºî¤¬´°Î»¤·¤¿¾ì¹ç¡¢¤³¤Î´Ø¿ô¤ÏƱ´ü +非同期 I/O 操作が完了した場合、この関数は同期 .IR read , .IR write , .I fsync -¥ê¥¯¥¨¥¹¥È¤Î¤È¤­¤ËÊÖ¤µ¤ì¤ë¤Î¤ÈƱ¤¸ÃͤòÊÖ¤¹¡£ +リクエストのときに返されるのと同じ値を返す。 .\"O Otherwise the return value is undefined. -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢ÊÖ¤êÃͤÏ̤ÄêµÁ¤Ç¤¢¤ë¡£ +それ以外の場合、返り値は未定義である。 .\"O On error, the error value is returned. -¥¨¥é¡¼¤Î¾ì¹ç¡¢¥¨¥é¡¼Ãͤ¬ÊÖ¤µ¤ì¤ë¡£ +エラーの場合、エラー値が返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O .I aiocbp .\"O does not point at a control block for an asynchronous I/O request .\"O of which the return status has not been retrieved yet. .I aiocbp -¤¬¡¢ÊÖ¤êÃͤ¬¤Þ¤À¼èÆÀ¤µ¤ì¤Æ¤¤¤Ê¤¤ÈóƱ´ü I/O ¥ê¥¯¥¨¥¹¥È¤Î -À©¸æ¥Ö¥í¥Ã¥¯¤ò»Ø¤·¤Æ¤¤¤Ê¤¤¡£ +が、返り値がまだ取得されていない非同期 I/O リクエストの +制御ブロックを指していない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR aio_cancel (3), .BR aio_error (3), .BR aio_fsync (3), diff --git a/draft/man3/aio_suspend.3 b/draft/man3/aio_suspend.3 index 4bfc7b9c..56471585 100644 --- a/draft/man3/aio_suspend.3 +++ b/draft/man3/aio_suspend.3 @@ -27,11 +27,11 @@ .\" .TH AIO_SUSPEND 3 2003-11-14 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O aio_suspend \- wait for asynchronous I/O operation or timeout -aio_suspend \- ÈóƱ´ü I/O Áàºî¤Þ¤¿¤Ï¥¿¥¤¥à¥¢¥¦¥È¤òÂÔ¤Ä +aio_suspend \- 非同期 I/O 操作またはタイムアウトを待つ .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .sp .B "#include " @@ -41,10 +41,10 @@ aio_suspend \- .BI " int " n ", const struct timespec *" timeout ); .sp .\"O Link with \fI\-lrt\fP. -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP でリンクする。 .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR aio_suspend () .\"O function suspends the calling process until at least one of the @@ -56,15 +56,15 @@ aio_suspend \- .\"O .I timeout .\"O is not NULL and the time interval it indicates has passed. .BR aio_suspend () -´Ø¿ô¤Ï¡¢Ä¹¤µ +関数は、長さ .I n -¤Î¥ê¥¹¥È +のリスト .I cblist -¤Ë´Þ¤Þ¤ì¤ëÈóƱ´ü I/O ¥ê¥¯¥¨¥¹¥È¤Î¤¦¤Á¾¯¤Ê¤¯¤È¤â 1 ¤Ä¤¬´°Î»¤¹¤ë¤«¡¢ -¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ë¤«¡¢ +に含まれる非同期 I/O リクエストのうち少なくとも 1 つが完了するか、 +シグナルが配送されるか、 .I timeout -¤¬ NULL ¤Ç¤Ê¤¯¡¢¤«¤Ä¤½¤Î»þ´Ö¤¬²á¤®¤ë¤Þ¤Ç¡¢ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤òÄä»ß (suspend) ¤¹¤ë¡£ +が NULL でなく、かつその時間が過ぎるまで、 +呼び出したプロセスを停止 (suspend) する。 .LP .\"O Each item in the list must either be NULL (and then is ignored), .\"O or a pointer to a control block on which I/O was initiated using @@ -72,61 +72,61 @@ aio_suspend \- .\"O .BR aio_write (3), .\"O or .\"O .BR lio_listio (3). -¥ê¥¹¥È¤Î³Æ¥¢¥¤¥Æ¥à¤Ï¡¢NULL (¤³¤ì¤Ï̵»ë¤µ¤ì¤ë) ¤«¡¢ +リストの各アイテムは、NULL (これは無視される) か、 .BR aio_read (3), .BR aio_write (3), .BR lio_listio (3) -¤ò»È¤Ã¤Æ I/O ¤¬³«»Ï¤µ¤ì¤¿À©¸æ¥Ö¥í¥Ã¥¯¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を使って I/O が開始された制御ブロックへのポインタでなければならない。 .LP .\"O If .\"O .B CLOCK_MONOTONIC .\"O is supported, this clock is used to measure .\"O the timeout interval. .B CLOCK_MONOTONIC -¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤ë¾ì¹ç¡¢ -¤³¤Î¥¯¥í¥Ã¥¯¤ò»È¤Ã¤Æ¥¿¥¤¥à¥¢¥¦¥È¤Î´Ö³Ö¤¬·×¬¤µ¤ì¤ë¡£ +がサポートされる場合、 +このクロックを使ってタイムアウトの間隔が計測される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O If this function returns after completion of one of the indicated .\"O requests, it returns 0. .\"O Otherwise it returns \-1 and sets .\"O .I errno .\"O appropriately. -»Ø¼¨¤µ¤ì¤¿¥ê¥¯¥¨¥¹¥È¤Î 1 ¤Ä¤¬´°Î»¤·¤¿¸å¤Ë¤³¤Î´Ø¿ô¤¬ÊÖ¤ë¾ì¹ç¤Ï¡¢0 ¤òÊÖ¤¹¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¤Æ¡¢ +指示されたリクエストの 1 つが完了した後にこの関数が返る場合は、0 を返す。 +それ以外の場合は \-1 を返して、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EAGAIN .\"O The call was ended by timeout, before any of the indicated operations .\"O had completed. -»Ø¼¨¤µ¤ì¤¿Áàºî¤Î¤É¤ì¤â´°Î»¤·¤Ê¤¤¤¦¤Á¤Ë¡¢ -¤³¤Î¸Æ¤Ó½Ð¤·¤¬¥¿¥¤¥à¥¢¥¦¥È¤Ë¤è¤Ã¤Æ½ªÎ»¤µ¤»¤é¤ì¤¿¡£ +指示された操作のどれも完了しないうちに、 +この呼び出しがタイムアウトによって終了させられた。 .TP .B EINTR .\"O The call was ended by signal; see .\"O .BR signal (7). .\"O (Possibly the completion signal of one of the operations we were .\"O waiting for.) -¤³¤Î¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤Æ½ªÎ»¤µ¤»¤é¤ì¤¿¡£ +この呼び出しがシグナルによって終了させられた。 .BR signal (7) -»²¾È¡£ -(¤³¤Î¥·¥°¥Ê¥ë¤Ï¡¢´°Î»¤òÂԤäƤ¤¤¿Áàºî¤Î¤¤¤º¤ì¤«¤Î´°Î»¥·¥°¥Ê¥ë¤Î²ÄǽÀ­¤â¤¢¤ë¡£) +参照。 +(このシグナルは、完了を待っていた操作のいずれかの完了シグナルの可能性もある。) .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O One can achieve polling by using a non-NULL .\"O .I timeout .\"O that specifies a zero time interval. -»þ´Ö´Ö³Ö¤¬ 0 ¤Ç¤¢¤ë¤³¤È¤ò»ØÄꤹ¤ë NULL ¤Ç¤Ï¤Ê¤¤ +時間間隔が 0 であることを指定する NULL ではない .I timeout -¤ò»È¤Ã¤Æ¡¢¥Ý¡¼¥ê¥ó¥°¤ò¹Ô¤¦¤³¤È¤â¤Ç¤­¤ë¡£ +を使って、ポーリングを行うこともできる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR aio_cancel (3), .BR aio_error (3), .BR aio_fsync (3), diff --git a/draft/man3/aio_write.3 b/draft/man3/aio_write.3 index 06c00c04..91ce219d 100644 --- a/draft/man3/aio_write.3 +++ b/draft/man3/aio_write.3 @@ -27,19 +27,19 @@ .\" .TH AIO_WRITE 3 2003-11-14 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O aio_write \- asynchronous write -aio_write \- ÈóƱ´ü¤Ç½ñ¤­¹þ¤à +aio_write \- 非同期で書き込む .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B "#include " .sp .BI "int aio_write(struct aiocb *" aiocbp ); .sp .\"O Link with \fI\-lrt\fP. -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR aio_write () .\"O function requests an asynchronous "n = write(fd, buf, count)" @@ -51,15 +51,15 @@ aio_write \- .\"O The return status n can be retrieved upon completion using .\"O .BR aio_return (3). .BR aio_write () -´Ø¿ô¤ÏÈóƱ´ü¤Î "n = write(fd, buf, count)" ¤ò¥ê¥¯¥¨¥¹¥È¤¹¤ë¡£ -¤³¤³¤Ç fd, buf, count ¤Ï¡¢¤½¤ì¤¾¤ì +関数は非同期の "n = write(fd, buf, count)" をリクエストする。 +ここで fd, buf, count は、それぞれ .IR aiocbp\->aio_fildes , .IR aiocbp\->aio_buf , .I aiocbp\->aio_nbytes -¤ÇÍ¿¤¨¤é¤ì¤ë¡£ -ÊÖ¤êÃÍ (return status) n ¤Ï¡¢´°Î»»þ¤Ë +で与えられる。 +返り値 (return status) n は、完了時に .BR aio_return (3) -¤ò»È¤Ã¤Æ¼èÆÀ¤Ç¤­¤ë¡£ +を使って取得できる。 .LP .\"O If .\"O .B O_APPEND @@ -68,29 +68,29 @@ aio_write \- .\"O .IR aiocbp\->aio_offset , .\"O regardless of the current file position. .B O_APPEND -¤¬ÀßÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢¥«¥ì¥ó¥È¤Î¥Õ¥¡¥¤¥ë°ÌÃ֤˴ط¸¤Ê¤¯¡¢ -¥Ç¡¼¥¿¤ÏÀäÂÐ¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È +が設定されない場合、カレントのファイル位置に関係なく、 +データは絶対ファイルオフセット .I aiocbp\->aio_offset -¤ò³«»ÏÅÀ¤È¤·¤Æ½ñ¤­¹þ¤Þ¤ì¤ë¡£ +を開始点として書き込まれる。 .\"O If .\"O .B O_APPEND .\"O is set, the data is written at the end of the file. .B O_APPEND -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥Ç¡¼¥¿¤Ï¥Õ¥¡¥¤¥ë¤Î½ªÃ¼¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£ +が設定されている場合、データはファイルの終端に書き込まれる。 .\"O After this request, the value of the current file position is unspecified. -¤³¤Î¥ê¥¯¥¨¥¹¥È¤Î¸å¤Î¡¢¥«¥ì¥ó¥È¤Î¥Õ¥¡¥¤¥ë°ÌÃ֤ϵ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +このリクエストの後の、カレントのファイル位置は規定されていない。 .LP .\"O The "asynchronous" means that this call returns as soon as the .\"O request has been enqueued; the write may or may not have completed .\"O when the call returns. .\"O One tests for completion using .\"O .BR aio_error (3). -¡ÖÈóƱ´ü¡×¤È¤Ï¡Ö¥ê¥¯¥¨¥¹¥È¤¬¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤¿¤é¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤Ï¤¹¤°¤ËÊÖ¤ë¡× -¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ -¸Æ¤Ó½Ð¤·¤«¤éÌá¤Ã¤¿»þ¤Ë¡¢½ñ¤­¹þ¤ß¤Ï´°Î»¤·¤Æ¤¤¤ë¤«¤âÃΤì¤Ê¤¤¤·¡¢ -´°Î»¤·¤Æ¤¤¤Ê¤¤¤«¤âÃΤì¤Ê¤¤¡£ +「非同期」とは「リクエストがキューに入れられたら、この呼び出しはすぐに返る」 +ということである。 +呼び出しから戻った時に、書き込みは完了しているかも知れないし、 +完了していないかも知れない。 .BR aio_error (3) -¤ò»È¤¦¤³¤È¤Ç´°Î»¤·¤¿¤«¤ò¥Æ¥¹¥È¤Ç¤­¤ë¡£ +を使うことで完了したかをテストできる。 .LP .\"O If .\"O .B _POSIX_PRIORITIZED_IO @@ -99,23 +99,23 @@ aio_write \- .\"O to that of the calling process minus .\"O .IR aiocbp\->aio_reqprio . .B _POSIX_PRIORITIZED_IO -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Æ¡¢ -¤«¤Ä¥Õ¥¡¥¤¥ë¤¬¤³¤ì¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -ÈóƱ´üÁàºî¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ÎÍ¥ÀèÅÙ¤«¤é +が定義されていて、 +かつファイルがこれをサポートしている場合、 +非同期操作は呼び出したプロセスの優先度から .I aiocbp\->aio_reqprio -¤ò°ú¤¤¤¿Í¥ÀèÅÙ¤ÇÅÐÏ¿ (submit) ¤µ¤ì¤ë¡£ +を引いた優先度で登録 (submit) される。 .LP .\"O The field .\"O .I aiocbp\->aio_lio_opcode .\"O is ignored. -¥Õ¥£¡¼¥ë¥É +フィールド .I aiocbp\->aio_lio_opcode -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .LP .\"O No data is written to a regular file beyond its maximum offset. -ºÇÂ祪¥Õ¥»¥Ã¥È¤òĶ¤¨¤¿Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢²¿¤â¥Ç¡¼¥¿¤¬½ñ¤­¹þ¤Þ¤ì¤Ê¤¤¡£ +最大オフセットを超えた通常のファイルには、何もデータが書き込まれない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, 0 is returned. .\"O On error the request is not enqueued, \-1 .\"O is returned, and @@ -130,39 +130,39 @@ aio_write \- .\"O .IR errno , .\"O such as .\"O .BR EBADF ). -À®¸ù¤·¤¿¾ì¹ç¡¢0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢¥ê¥¯¥¨¥¹¥È¤Ï¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤º¡¢ -\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +成功した場合、0 が返される。 +エラーの場合、リクエストはキューに入れられず、 +\-1 が返されて、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -¥¨¥é¡¼¤ÏºÇ½é¤Ë¸¡ÃΤµ¤ì¤¿¸å¤Ç¡¢ -(¾õÂÖ \-1 ¤òÊÖ¤¹) +が適切に設定される。 +エラーは最初に検知された後で、 +(状態 \-1 を返す) .BR aio_return (3) -¤È +と .RI ( errno -¤Ç¼èÆÀ¤Ç¤­¤ë +で取得できる .B EBADF -¤Î¤è¤¦¤Ê¥¨¥é¡¼¾õÂÖ¤òÊÖ¤¹) +のようなエラー状態を返す) .BR aio_error (3) -¤ÇÊó¹ð¤µ¤ì¤ë¤À¤í¤¦¡£ +で報告されるだろう。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EAGAIN .\"O Out of resources. -¥ê¥½¡¼¥¹¤¬Â­¤ê¤Ê¤¤¡£ +リソースが足りない。 .TP .B EBADF .\"O .I aio_fildes .\"O is not a valid file descriptor open for writing. .I aio_fildes -¤Ï½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤¿Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +は書き込みのためにオープンされた有効なファイルディスクリプタでない。 .TP .B EFBIG .\"O The file is a regular file, we want to write at least one byte, .\"O but the starting position is at or beyond the maximum offset for this file. -¥Õ¥¡¥¤¥ë¤ÏÄ̾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤¢¤ê¡¢¾¯¤Ê¤¯¤È¤â 1 ¥Ð¥¤¥È¤ò½ñ¤­¹þ¤â¤¦¤È¤·¤Æ¤¤¤ë¡£ -¤·¤«¤·³«»Ï°ÌÃÖ¤¬¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ÎºÇÂ祪¥Õ¥»¥Ã¥È¤ÈƱ¤¸¤«¤½¤ì¤òĶ¤¨¤Æ¤¤¤ë¡£ +ファイルは通常のファイルであり、少なくとも 1 バイトを書き込もうとしている。 +しかし開始位置が、このファイルの最大オフセットと同じかそれを超えている。 .TP .B EINVAL .\"O One or more of @@ -173,33 +173,33 @@ aio_write \- .IR aio_offset , .IR aio_reqprio , .I aio_nbytes -¤Î¤¦¤Á 1 ¤Ä°Ê¾å¤¬Ìµ¸ú¤Ç¤¢¤ë¡£ +のうち 1 つ以上が無効である。 .TP .B ENOSYS .\"O This function is not supported. -¤³¤Î´Ø¿ô¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +この関数がサポートされていない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O It is a good idea to zero out the control block before use. -»ÈÍѤ¹¤ëÁ°¤ËÀ©¸æ¥Ö¥í¥Ã¥¯¤ò 0 ¤Ë¤·¤Æ¤ª¤¯¤Î¤Ï¡¢¤è¤¤¹Í¤¨¤Ç¤¢¤ë¡£ +使用する前に制御ブロックを 0 にしておくのは、よい考えである。 .\"O This control block must not be changed while the write operation .\"O is in progress. -¤³¤ÎÀ©¸æ¥Ö¥í¥Ã¥¯¤Ï¡¢Æɤ߹þ¤ßÁàºî¤¬¿Ê¹Ô¤·¤Æ¤¤¤ë´Ö¤ÏÊѹ¹¤¹¤Ù¤­¤Ç¤Ê¤¤¡£ +この制御ブロックは、読み込み操作が進行している間は変更すべきでない。 .\"O The buffer area being written out .\"O .\" or the control block of the operation .\"O must not be accessed during the operation or undefined results may .\"O occur. .\"O The memory areas involved must remain valid. -Æɤ߹þ¤Þ¤ì¤ë¥Ð¥Ã¥Õ¥¡Îΰè¤Ï -.\" ¤Þ¤¿¤ÏÁàºî¤ÎÀ©¸æ¥Ö¥í¥Ã¥¯¤Ï -Áàºî¤ÎºÇÃæ¤Ë¥¢¥¯¥»¥¹¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¤µ¤â¤Ê¤¤¤Èµ¯¤³¤ë·ë²Ì¤¬ÉÔÄê¤Ë¤Ê¤ë¡£ -¤³¤ì¤Ë´Þ¤Þ¤ì¤ë¥á¥â¥êÎΰè¤Ï¡¢Í­¸ú¤Ê¤Þ¤Þ¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +読み込まれるバッファ領域は +.\" または操作の制御ブロックは +操作の最中にアクセスすべきではない。 +さもないと起こる結果が不定になる。 +これに含まれるメモリ領域は、有効なままにしなければならない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR aio_cancel (3), .BR aio_error (3), .BR aio_fsync (3), diff --git a/draft/man3/alloca.3 b/draft/man3/alloca.3 index 50b5cd98..18843ed5 100644 --- a/draft/man3/alloca.3 +++ b/draft/man3/alloca.3 @@ -48,16 +48,16 @@ .\" .TH ALLOCA 3 2008-01-24 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O alloca \- allocate memory that is automatically freed -alloca \- ¼«Æ°Åª¤Ë²òÊü¤µ¤ì¤ë¥á¥â¥ê¤ò³ä¤êÅö¤Æ¤ë +alloca \- 自動的に解放されるメモリを割り当てる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "void *alloca(size_t " size ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR alloca () .\"O function allocates @@ -68,26 +68,26 @@ alloca \- .\"O .BR alloca () .\"O returns to its caller. .BR alloca () -´Ø¿ô¤Ï¡¢ +関数は、 .I size -¥Ð¥¤¥È¤ÎÎΰè¤ò¸Æ½Ð¸µ¤Î¥¹¥¿¥Ã¥¯¡¦¥Õ¥ì¡¼¥à¤Ë³ä¤êÉÕ¤±¤ë¡£ -¤³¤Î°ì»þŪ¤ÊÎΰè¤Ï¡¢ +バイトの領域を呼出元のスタック・フレームに割り付ける。 +この一時的な領域は、 .BR alloca () -¤ò¸Æ¤Ó½Ð¤·¤¿´Ø¿ô¤¬¸Æ½Ð¸µ¤ËÊÖ¤ë¤È¤­¤Ë¼«Æ°Åª¤Ë²òÊü¤µ¤ì¤ë¡£ +を呼び出した関数が呼出元に返るときに自動的に解放される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR alloca () .\"O function returns a pointer to the beginning of the allocated space. .\"O If the allocation causes stack overflow, program behavior is undefined. .BR alloca () -´Ø¿ô¤Ï¡¢³ä¤êÉÕ¤±¤¿Îΰè¤Î»Ï¤Þ¤ê¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -³ä¤êÉÕ¤±¤Ë¤è¤Ã¤Æ¥¹¥¿¥Ã¥¯¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬µ¯¤Ã¤¿¾ì¹ç¤Î -¥×¥í¥°¥é¥à¤ÎÆ°ºî¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +関数は、割り付けた領域の始まりを指すポインタを返す。 +割り付けによってスタックオーバーフローが起った場合の +プログラムの動作は定義されていない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This function is not in POSIX.1-2001. -¤³¤Î´Ø¿ô¤Ï POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ +この関数は POSIX.1-2001 にはない。 .\"O There is evidence that the .\"O .BR alloca () @@ -95,19 +95,19 @@ alloca \- .\"O There is a man page for it in 4.3BSD. .\"O Linux uses the GNU version. .\"O This function is not in POSIX.1-2001. -32V, PWB, PWB.2, 3BSD, 4BSD ¤Ë +32V, PWB, PWB.2, 3BSD, 4BSD に .BR alloca () -´Ø¿ô¤¬Åо줷¤¿¾Úµò¤¬¤¢¤ë¡£ -4.3BSD ¤Ë¤Ï¡¢¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤¬¤¢¤ë¡£ -Linux ¤Ï¡¢GNU ÈǤò»È¤Ã¤Æ¤¤¤ë¡£ -¤³¤Î´Ø¿ô¤Ï POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ +関数が登場した証拠がある。 +4.3BSD には、マニュアルページがある。 +Linux は、GNU 版を使っている。 +この関数は POSIX.1-2001 にはない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The .\"O .BR alloca () .\"O function is machine- and compiler-dependent. .BR alloca () -´Ø¿ô¤Ï¡¢µ¡¼ï¤È¥³¥ó¥Ñ¥¤¥é¤Ë°Í¸¤¹¤ë¡£ +関数は、機種とコンパイラに依存する。 .\"O For certain applications, .\"O its use can improve efficiency compared to the use of .\"O .BR malloc (3) @@ -119,17 +119,17 @@ Linux .\"O or .\"O .BR siglongjmp (3). .\"O Otherwise, its use is discouraged. -ÆÃÄê¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢¤³¤Î´Ø¿ô¤ò»È¤¦¤È +特定のアプリケーションでは、この関数を使うと .BR malloc (3) -¤È +と .BR free (3) -¤òÁȤ߹ç¤ï¤»¤Æ»È¤Ã¤¿¾ì¹ç¤ËÈæ¤Ù¤Æ¸úΨ¤ò²þÁ±¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -ÆÃÄê¤Î¾ì¹ç¤Ç¤Ï¡¢¤³¤Î´Ø¿ô¤ò»È¤¦¤³¤È¤Ç¡¢ +を組み合わせて使った場合に比べて効率を改善することができる。 +特定の場合では、この関数を使うことで、 .BR longjmp (3) -¤ä +や .BR siglongjmp (3) -¤ò»È¤¦¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Î¥á¥â¥ê¤Î³«Êü¤ò´Êñ¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ç¤Ï¡¢¤³¤Î´Ø¿ô¤Î»ÈÍѤϿ侩¤µ¤ì¤Ê¤¤¡£ +を使うアプリケーションでのメモリの開放を簡単にすることができる。 +それ以外の場合では、この関数の使用は推奨されない。 .\"O Because the space allocated by .\"O .BR alloca () @@ -140,25 +140,25 @@ Linux .\"O or .\"O .BR siglongjmp (3). .BR alloca () -¤Ë¤è¤ê³ä¤êÅö¤Æ¤é¤ì¤ë¶õ´Ö¤Ï¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤«¤é³ä¤êÅö¤Æ¤é¤ë¤Î¤Ç¡¢ -´Ø¿ô¤ÎÌá¤êÀ褬 +により割り当てられる空間はスタックフレームから割り当てらるので、 +関数の戻り先が .BR longjmp (3) -¤ä +や .BR siglongjmp (3) -¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤ê¥¸¥ã¥ó¥×¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ -³ä¤êÅö¤Æ¤é¤ì¤¿¶õ´Ö¤Ï¼«Æ°Åª¤Ë²òÊü¤µ¤ì¤ë¡£ +の呼び出しによりジャンプした場合には、 +割り当てられた空間は自動的に解放される。 .\"O Do not attempt to .\"O .BR free (3) .\"O space allocated by .\"O .BR alloca ()! .BR alloca () -¤Ç³ä¤êÅö¤Æ¤é¤ì¤¿¶õ´Ö¤ò +で割り当てられた空間を .BR free (3) -¤·¤è¤¦¤È¤¹¤ë¤³¤È¤Î¤Ê¤¤¤è¤¦¤Ë¡ª +しようとすることのないように! .\"O .SS Notes on the GNU Version -.SH Ãí°Õ -.SS GNU ÈǤˤĤ¤¤Æ¤ÎÃí°Õ +.SH 注意 +.SS GNU 版についての注意 .\"O Normally, .\"O .BR gcc (1) .\"O translates calls to @@ -186,56 +186,56 @@ Linux .\"O .\"O .fi .\"O with messy consequences if one has a private version of this function. -Ä̾ï +通常 .BR gcc (1) -¤Ï +は .BR alloca () -¤Î¸Æ¤Ó½Ð¤·¤ò¥¤¥ó¥é¥¤¥ó¥³¡¼¥É¤ËÊÑ´¹¤¹¤ë¡£ +の呼び出しをインラインコードに変換する。 .IR "\-ansi" , .IR "\-std=c89" , .IR "\-std=c99" , .IR "\-fno\-builtin" -¤Î¤¤¤º¤ì¤«¤Î¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¤³¤ÎÊÑ´¹¤Ï¹Ô¤ï¤ì¤Ê¤¤ -(¤Þ¤¿ +のいずれかのオプションが指定された場合、この変換は行われない +(また .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤â¹Ô¤ï¤ì¤Ê¤¤)¡£ -¤À¤À¤·¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï glibc ÈǤΠ+のインクルードも行われない)。 +だだし、デフォルトでは glibc 版の .I -¤Ï +は .I -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ¤ª¤ê¡¢¤³¤ì¤Ë¤Ï°Ê²¼¤Î¹Ô¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤Î¤ÇÃí°Õ¤¹¤ë¤³¤È¡£ +をインクルードしており、これには以下の行が含まれているので注意すること。 .nf #define alloca(size) __builtin_alloca (size) .fi -Æȼ«ÈǤΠ__builtin_alloca (size) ´Ø¿ô¤¬¤¢¤ë¤ÈÌñ²ð¤Ê·ë²Ì¤Ë¤Ê¤ë¡£ +独自版の __builtin_alloca (size) 関数があると厄介な結果になる。 .LP .\"O The fact that the code is inlined means that it is impossible .\"O to take the address of this function, or to change its behavior .\"O by linking with a different library. -¤³¤Î¥³¡¼¥É¤Ï¥¤¥ó¥é¥¤¥ó²½¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢ -¤³¤Î´Ø¿ô¤Î¥¢¥É¥ì¥¹¤ò¼èÆÀ¤·¤¿¤ê¡¢ -¾¤Î¥é¥¤¥Ö¥é¥ê¤ò¥ê¥ó¥¯¤·¤ÆÆ°ºî¤òÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +このコードはインライン化されているので、 +この関数のアドレスを取得したり、 +他のライブラリをリンクして動作を変更することはできない。 .LP .\"O The inlined code often consists of a single instruction adjusting .\"O the stack pointer, and does not check for stack overflow. .\"O Thus, there is no NULL error return. -Ä̾盧¤Î¥¤¥ó¥é¥¤¥ó¥³¡¼¥É¤Ï¥¹¥¿¥Ã¥¯¥Ý¥¤¥ó¥¿¤ò°ÜÆ°¤¹¤ë -1 ¤Ä¤ÎÌ¿Îá (instruction) ¤«¤é¹½À®¤µ¤ì¤Æ¤ª¤ê¡¢ -¥¹¥¿¥Ã¥¯¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤ò¥Á¥§¥Ã¥¯¤·¤Ê¤¤¡£ -¤è¤Ã¤Æ NULL ¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ +通常このインラインコードはスタックポインタを移動する +1 つの命令 (instruction) から構成されており、 +スタックオーバーフローをチェックしない。 +よって NULL エラーが返されることはない。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O There is no error indication if the stack frame cannot be extended. .\"O (However, after a failed allocation, the program is likely to receive a .\"O .B SIGSEGV .\"O signal if it attempts to access the unallocated space.) -¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤¬³ÈÄ¥¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¥¨¥é¡¼ÄÌÃΤϹԤï¤ì¤Ê¤¤¡£ -(¤·¤«¤·¤Ê¤¬¤é¡¢³ä¤êÅö¤Æ¤Ë¼ºÇÔ¤·¤¿¸å¤Ç¡¢¥×¥í¥°¥é¥à¤¬³ä¤êÅö¤Æ¤é¤ì¤Ê¤«¤Ã¤¿ -¶õ´Ö¤Ë¥¢¥¯¥»¥¹¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤Ë +スタックフレームが拡張できなかった場合、エラー通知は行われない。 +(しかしながら、割り当てに失敗した後で、プログラムが割り当てられなかった +空間にアクセスしようとした場合に .B SIGSEGV -¥·¥°¥Ê¥ë¤ò¼õ¿®¤¹¤ë¤³¤È¤À¤í¤¦¡£) +シグナルを受信することだろう。) .\"O On many systems .\"O .BR alloca () @@ -244,15 +244,15 @@ Linux .\"O .BR alloca () .\"O would appear on the stack in the middle of the space for the .\"O function arguments. -¿¤¯¤Î¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¡¢´Ø¿ô¥³¡¼¥ë¤Î°ú¤­¿ô¤Î¥ê¥¹¥ÈÆâ¤Ç¤Ï +多くのシステムにおいて、関数コールの引き数のリスト内では .BR alloca () -¤¬»È¤¨¤Ê¤¤¡£ -¤³¤ì¤Ï¡¢ +が使えない。 +これは、 .BR alloca () -¤Ë¤è¤Ã¤ÆͽÌ󤵤ì¤ë¥¹¥¿¥Ã¥¯Îΰ褬¡¢ -´Ø¿ô°ú¤­¿ô¤Ë»È¤ï¤ì¤ë¥¹¥¿¥Ã¥¯Îΰè¤ÎÃæ¤Ë¸½¤ì¤Æ¤·¤Þ¤¦¤¿¤á¤Ç¤¢¤ë¡£ +によって予約されるスタック領域が、 +関数引き数に使われるスタック領域の中に現れてしまうためである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR brk (2), .BR longjmp (3), .BR malloc (3) diff --git a/draft/man3/argz_add.3 b/draft/man3/argz_add.3 index 55d66ed9..3dc392cc 100644 --- a/draft/man3/argz_add.3 +++ b/draft/man3/argz_add.3 @@ -9,15 +9,15 @@ .\" .TH ARGZ_ADD 3 2007-05-18 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O argz_add, argz_add_sep, argz_append, argz_count, argz_create, .\"O argz_create_sep, argz_delete, argz_extract, argz_insert, .\"O argz_next, argz_replace, argz_stringify \- functions to handle an argz list argz_add, argz_add_sep, argz_append, argz_count, argz_create, argz_create_sep, argz_delete, argz_extract, argz_insert, -argz_next, argz_replace, argz_stringify \- argz ¥ê¥¹¥È¤òÁàºî¤¹¤ë¤¿¤á¤Î´Ø¿ô·² +argz_next, argz_replace, argz_stringify \- argz リストを操作するための関数群 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B "#include " .sp @@ -60,18 +60,18 @@ argz_next, argz_replace, argz_stringify \- argz .BI "void argz_stringify(char *" argz ", size_t " len ", int " sep ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions are glibc-specific. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¸ÇÍ­¤Ç¤¢¤ë¡£ +これらの関数は glibc 固有である。 .LP .\"O An argz vector is a pointer to a character buffer together with a length. .\"O The intended interpretation of the character buffer is an array .\"O of strings, where the strings are separated by null bytes (\\(aq\\0\\(aq). .\"O If the length is nonzero, the last byte of the buffer must be a null byte. -argz vector ¤ÏŤµ¾ðÊóÉÕ¤­¤Îʸ»ú¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -ʸ»ú¥Ð¥Ã¥Õ¥¡¤Ç¤Ï¡¢Ê£¿ô¤Îʸ»úÎó¤¬ NULL ¥Ð¥¤¥È (\\(aq\\0\\(aq) ¤Ç¶èÀÚ¤é¤ì¤Æ¤ª¤ê¡¢ -ʸ»úÎó¤ÎÇÛÎó¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -Ťµ¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¡¢¥Ð¥Ã¥Õ¥¡¤ÎºÇ¸å¤Î¥Ð¥¤¥È¤Ï NULL ¥Ð¥¤¥È¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +argz vector は長さ情報付きの文字バッファへのポインタである。 +文字バッファでは、複数の文字列が NULL バイト (\\(aq\\0\\(aq) で区切られており、 +文字列の配列として解釈されるようになっている。 +長さが 0 でない場合、バッファの最後のバイトは NULL バイトでなければならない。 .LP .\"O These functions are for handling argz vectors. .\"O The pair (NULL,0) is an argz vector, and, conversely, @@ -81,14 +81,14 @@ argz vector .\"O so that .\"O .BR free (3) .\"O can be used to dispose of them again. -¤³¤ì¤é¤Î´Ø¿ô¤Ï argz vector ¤òÁàºî¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ -¥Ú¥¢ (NULL,0) ¤Ï argz vector ¤Ç¤¢¤ê¡¢µÕ¤Ë¸À¤¨¤Ð -Ťµ 0 ¤Î argz vector¤Ï NULL ¥Ý¥¤¥ó¥¿¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¶õ¤Ç¤Ê¤¤ argz vector ¤Î³ä¤êÅö¤Æ¤Ï +これらの関数は argz vector を操作するためのものである。 +ペア (NULL,0) は argz vector であり、逆に言えば +長さ 0 の argz vectorは NULL ポインタを持たなければならない。 +空でない argz vector の割り当ては .BR malloc (3) -¤ò»È¤Ã¤Æ¹Ô¤ï¤ì¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢argz vector ¤ò²òÊü¤¹¤ë¤Î¤Ë +を使って行われる。したがって、argz vector を解放するのに .BR free (3) -¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +を使うことができる。 .LP .\"O .BR argz_add () .\"O adds the string @@ -100,15 +100,15 @@ argz vector .\"O and .\"O .IR *argz_len . .BR argz_add () -¤Ï¡¢Ê¸»úÎó +は、文字列 .I str -¤òÇÛÎó +を配列 .IR *argz -¤ÎËöÈø¤ËÄɲä·¡¢ +の末尾に追加し、 .IR *argz -¤È +と .IR *argz_len -¤ò¹¹¿·¤¹¤ë¡£ +を更新する。 .LP .\"O .BR argz_add_sep () .\"O is similar, but splits the string @@ -118,13 +118,13 @@ argz vector .\"O For example, one might use this on a UNIX search path with .\"O delimiter \\(aq:\\(aq. .BR argz_add_sep () -¤âƱÍͤÎÆ°ºî¤ò¤¹¤ë¤¬¡¢¶èÀÚ¤êʸ»ú +も同様の動作をするが、区切り文字 .I delim -¤Ë¤·¤¿¤¬¤Ã¤Æʸ»úÎó +にしたがって文字列 .I str -¤òÊ£¿ô¤Îʸ»úÎó¤Ëʬ³ä¤¹¤ëÅÀ¤¬°Û¤Ê¤ë¡£ -Î㤨¤Ð¡¢¶èÀÚ¤êʸ»ú \\(aq:\\(aq ¤ò»ØÄꤷ¤Æ¡¢UNIX ¥µ¡¼¥Á¡¦¥Ñ¥¹¤ËÂФ·¤Æ -¤³¤Î´Ø¿ô¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¤À¤í¤¦¡£ +を複数の文字列に分割する点が異なる。 +例えば、区切り文字 \\(aq:\\(aq を指定して、UNIX サーチ・パスに対して +この関数を使うことができるだろう。 .LP .\"O .BR argz_append () .\"O appends the argz vector @@ -140,29 +140,29 @@ argz vector .\"O will be increased by .\"O .IR buf_len .) .BR argz_append () -¤Ï argz vector +は argz vector .RI ( buf ,\ buf_len ) -¤Î¸å¤í¤Ë +の後ろに .RI (* argz ,\ *argz_len ) -¤òÉÕ¤±²Ã¤¨¡¢ +を付け加え、 .I *argz -¤È +と .I *argz_len -¤ò¹¹¿·¤¹¤ë¡£ -(¤·¤¿¤¬¤Ã¤Æ¡¢ +を更新する。 +(したがって、 .I *argz_len -¤Ï +は .I buf_len -¤À¤±Áý²Ã¤¹¤ë¡£) +だけ増加する。) .LP .\"O .BR argz_count () .\"O counts the number of strings, that is, .\"O the number of null bytes (\\(aq\\0\\(aq), in .\"O .RI ( argz ,\ argz_len ). .BR argz_count () -¤Ï +は .RI ( argz ,\ argz_len ) -Æâ¤Îʸ»úÎó¤Î¿ô¤ò¿ô¤¨¤ë¡£¼ÂºÝ¤Ë¤Ï NULL ¥Ð¥¤¥È (\\(aq\\0\\(aq) ¤Î¿ô¤ò¿ô¤¨¤Æ¤¤¤ë¡£ +内の文字列の数を数える。実際には NULL バイト (\\(aq\\0\\(aq) の数を数えている。 .LP .\"O .BR argz_create () .\"O converts a UNIX-style argument vector @@ -172,13 +172,13 @@ argz vector .\"O into an argz vector .\"O .RI ( *argz ,\ *argz_len ). .BR argz_create () -¤Ï¡¢UNIX ή¤Î°ú¤­¿ô¥Ù¥¯¥È¥ë¤Ç¤¢¤ë +は、UNIX 流の引き数ベクトルである .RI ( "(char *) 0" -¤Ç½ªÃ¼¤µ¤ì¤ë) +で終端される) .I argv -¤ò¡¢argz vector +を、argz vector .RI ( *argz ,\ *argz_len ) -¤ËÊÑ´¹¤¹¤ë¡£ +に変換する。 .LP .\"O .BR argz_create_sep () .\"O converts the null-terminated string @@ -188,13 +188,13 @@ argz vector .\"O by breaking it up at every occurrence of the separator .\"O .IR sep . .BR argz_create_sep () -¤Ï¡¢NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó +は、NULL 終端された文字列 .I str -¤ò¶èÀÚ¤êʸ»ú +を区切り文字 .I sep -¤¬¸½¤ì¤ëËè¤Ëʬ³ä¤·¤Ê¤¬¤é¡¢argz vector +が現れる毎に分割しながら、argz vector .RI (* argz ,\ *argz_len ) -¤ËÊÑ´¹¤¹¤ë¡£ +に変換する。 .LP .\"O .BR argz_delete () .\"O removes the substring pointed to by @@ -206,15 +206,15 @@ argz vector .\"O and .\"O .IR *argz_len . .BR argz_delete () -¤Ï¡¢ +は、 .I entry -¤Ç»Ø¤·¼¨¤µ¤ì¤¿Ê¸»úÎó¤ò argz vector +で指し示された文字列を argz vector .RI ( *argz ,\ *argz_len ) -¤«¤éºï½ü¤·¡¢ +から削除し、 .I *argz -¤È +と .I *argz_len -¤ò¹¹¿·¤¹¤ë¡£ +を更新する。 .LP .\"O .BR argz_extract () .\"O is the opposite of @@ -231,19 +231,19 @@ argz vector .\"O .IR argz_count ( argz , argz_len ") + 1" .\"O pointers. .BR argz_extract () -¤Ï +は .BR argz_create () -¤ÎÈ¿ÂФÎÁàºî¤ò¹Ô¤¦¡£argz vector +の反対の操作を行う。argz vector .RI ( argz ,\ argz_len ) -¤òÄ´¤Ù¡¢ +を調べ、 .I argv -¤«¤é»Ï¤Þ¤ëÇÛÎó¤ò¥µ¥Öʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤ÇËä¤á¤Æ¤¤¤­¡¢ -°ìÈֺǸå¤Ë NULL ¤òÆþ¤ì¤Æ¡¢UNIX ή¤Î argv ¥Ù¥¯¥È¥ë¤òºîÀ®¤¹¤ë¡£ -ÇÛÎó +から始まる配列をサブ文字列へのポインタで埋めていき、 +一番最後に NULL を入れて、UNIX 流の argv ベクトルを作成する。 +配列 .I argv -¤Ï +は .IR argz_count ( argz , argz_len ") + 1" -¸Ä¤Î¥Ý¥¤¥ó¥¿¤ò¼ýÍƤǤ­¤ë¶õ´Ö¤ò»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +個のポインタを収容できる空間を持っていなければならない。 .LP .\"O .BR argz_insert () .\"O is the opposite of @@ -264,23 +264,23 @@ argz vector .\"O .I entry .\"O will inserted at the end. .BR argz_insert () -¤Ï +は .BR argz_delete () -¤ÎÈ¿ÂФÎÁàºî¤ò¹Ô¤¦¡£argz vector +の反対の操作を行う。argz vector .RI ( *argz ,\ *argz_len ) -¤Î°ÌÃÖ +の位置 .I before -¤Ë°ú¤­¿ô +に引き数 .I entry -¤òÁÞÆþ¤·¡¢ +を挿入し、 .I *argz -¤È +と .I *argz_len -¤ò¹¹¿·¤¹¤ë¡£ +を更新する。 .I before -¤¬ NULL ¤Î¾ì¹ç¡¢ +が NULL の場合、 .I entry -¤ÏËöÈø¤ËÁÞÆþ¤µ¤ì¤ë¡£ +は末尾に挿入される。 .LP .\"O .BR argz_next () .\"O is a function to step trough the argz vector. @@ -291,11 +291,11 @@ argz vector .\"O following is returned. .\"O It returns NULL if there is no following entry. .BR argz_next () -¤Ï argz vector ¤ò½çÈÖ¤ËÄ´¤Ù¤ë¤¿¤á¤Î´Ø¿ô¤Ç¤¢¤ë¡£ +は argz vector を順番に調べるための関数である。 .I entry -¤¬ NULL ¤Î¾ì¹ç¡¢ºÇ½é¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£ -¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¡¢¼¡¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£ -¼¡¤Î¥¨¥ó¥È¥ê¤¬¤Ê¤¤¾ì¹ç¡¢NULL ¤òÊÖ¤¹¡£ +が NULL の場合、最初のエントリを返す。 +そうでない場合、次のエントリを返す。 +次のエントリがない場合、NULL を返す。 .LP .\"O .BR argz_replace () .\"O replaces each occurrence of @@ -309,15 +309,15 @@ argz vector .\"O .I *replace_count .\"O will be incremented by the number of replacements. .BR argz_replace () -¤Ï¡¢ +は、 .I str -¤ò¤¹¤Ù¤Æ +をすべて .I with -¤ÇÃÖ¤­´¹¤¨¤ë (ɬÍפ˱þ¤¸¤Æ argz ¤ÎºÆ³ä¤êÅö¤Æ¤ò¹Ô¤¦)¡£ +で置き換える (必要に応じて argz の再割り当てを行う)。 .I replace_count -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が NULL でない場合、 .I *replace_count -¤òÃÖ¤­´¹¤¨¤ò¹Ô¤Ã¤¿¿ô¤À¤±Áý¤ä¤¹¡£ +を置き換えを行った数だけ増やす。 .LP .\"O .BR argz_stringify () .\"O is the opposite of @@ -326,32 +326,32 @@ argz vector .\"O all null bytes (\\(aq\\0\\(aq) except the last by .\"O .IR sep . .BR argz_stringify () -¤Ï +は .BR argz_create_sep () -¤ÎÈ¿ÂФÎÁàºî¤ò¹Ô¤¦¡£ -ËöÈø¤Î NULL ¥Ð¥¤¥È°Ê³°¤ÎÁ´¤Æ¤Î NULL ¥Ð¥¤¥È (\\(aq\\0\\(aq) ¤ò +の反対の操作を行う。 +末尾の NULL バイト以外の全ての NULL バイト (\\(aq\\0\\(aq) を .I sep -¤ÇÃÖ¤­´¹¤¨¤Æ¡¢ -argz vector ¤òÄ̾ï¤Îʸ»úÎó¤ËÊÑ´¹¤¹¤ë¡£ +で置き換えて、 +argz vector を通常の文字列に変換する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O All argz functions that do memory allocation have a return type of .\"O \fIerror_t\fP, and return 0 for success, and \fBENOMEM\fP .\"O if an allocation error occurs. -¥á¥â¥ê³ä¤êÅö¤Æ¤ò¹Ô¤¦ argz ´Ø¿ô·²¤Ï¤¹¤Ù¤Æ \fIerror_t\fP ·¿¤ÎÊÖ¤êÃͤò»ý¤Ä¡£ -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤·¡¢³ä¤êÅö¤Æ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï -\fBENOMEM\fP ¤òÊÖ¤¹¡£ +メモリ割り当てを行う argz 関数群はすべて \fIerror_t\fP 型の返り値を持つ。 +成功した場合は 0 を返し、割り当てエラーが発生した場合は +\fBENOMEM\fP を返す。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O These functions are a GNU extension. .\"O Handle with care. -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£Ãí°Õ¤·¤Æ»ÈÍѤ¹¤ë¤³¤È¡£ +これらの関数は GNU による拡張である。注意して使用すること。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Argz vectors without a terminating null byte may lead to .\"O Segmentation Faults. -NULL ¥Ð¥¤¥È¤Ç½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤ argz vector ¤ò»ÈÍѤ·¤¿¾ì¹ç¡¢ -segmentation fault ¤òµ¯¤³¤¹¤«¤â¤·¤ì¤Ê¤¤¡£ +NULL バイトで終端されていない argz vector を使用した場合、 +segmentation fault を起こすかもしれない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR envz_add (3) diff --git a/draft/man3/asin.3 b/draft/man3/asin.3 index 3414d29c..957ea4d4 100644 --- a/draft/man3/asin.3 +++ b/draft/man3/asin.3 @@ -41,11 +41,11 @@ .\" .TH ASIN 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O asin, asinf, asinl \- arc sine function -asin, asinf, asinl \- µÕÀµ¸¹¡Êarc sine¡Ë´Ø¿ô +asin, asinf, asinl \- 逆正弦(arc sine)関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -57,14 +57,14 @@ asin, asinf, asinl \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -79,36 +79,36 @@ or .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR asin () .\"O function calculates the principal value of the arc sine of \fIx\fP; .\"O that is the value whose sine is \fIx\fP. .BR asin () -´Ø¿ô¤Ï \fIx\fP ¤ÎµÕÀµ¸¹¡Êarc sine) ¤Î¼çÃͤò·×»»¤¹¤ë¡£ -¤¹¤Ê¤ï¤Á¡¢¤½¤ÎÀµ¸¹¡Êsine¡Ë¤¬ \fIx\fP ¤È¤Ê¤ë¤è¤¦¤ÊÃͤǤ¢¤ë¡£ +関数は \fIx\fP の逆正弦(arc sine) の主値を計算する。 +すなわち、その正弦(sine)が \fIx\fP となるような値である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the principal value of the arc sine of .\"O .IR x .\"O in radians; the return value is in the range [\-pi/2,\ pi/2]. -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I x -¤ÎµÕÀµ¸¹¤Î¼çÃͤò¥é¥¸¥¢¥óñ°Ì¤ÇÊÖ¤¹¡£ -ÊÖ¤êÃÍ¤Ï [\-pi/2,\ pi/2] ¤ÎÈϰϤȤʤ롣 +の逆正弦の主値をラジアン単位で返す。 +返り値は [\-pi/2,\ pi/2] の範囲となる。 .\"O If .\"O .I x .\"O is a NaN, a NaN is returned. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x .\"O is +0 (\-0), .\"O +0 (\-0) is returned. .I x -¤¬ +0 (\-0) ¤Î¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 (\-0) の場合、+0 (\-0) が返される。 .\"O If .\"O .I x @@ -116,26 +116,26 @@ or .\"O a domain error occurs, .\"O and a NaN is returned. .I x -¤¬ [\-1,\ 1] ¤ÎÈϰϤËÆþ¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が [\-1,\ 1] の範囲に入っていない場合、 +領域エラー (domain error) が発生し、NaN が返される。 .\" .\" POSIX.1-2001 documents an optional range error for subnormal x; .\" glibc 2.8 does not do this. .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Domain error: \fIx\fP is outside the range [\-1,\ 1] -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬ [\-1,\ 1] ¤ÎÈϰϤËÆþ¤Ã¤Æ¤¤¤Ê¤¤ +領域エラー (domain error): \fIx\fP が [\-1,\ 1] の範囲に入っていない .\"O .I errno .\"O is set to .\"O .BR EDOM . @@ -143,23 +143,23 @@ or .\"O .RB ( FE_INVALID ) .\"O is raised. .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë¡£ -̵¸ú (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +無効 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD, C89. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR acos (3), .BR atan (3), .BR atan2 (3), diff --git a/draft/man3/asinh.3 b/draft/man3/asinh.3 index a24f5245..bb8fac5f 100644 --- a/draft/man3/asinh.3 +++ b/draft/man3/asinh.3 @@ -41,11 +41,11 @@ .\" .TH ASINH 3 2010-09-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O asinh, asinhf, asinhl \- inverse hyperbolic sine function -asinh, asinhf, asinhl \- µÕÁжÊÀþÀµ¸¹¡Êinverse hyperbolic sine¡Ë´Ø¿ô +asinh, asinhf, asinhl \- 逆双曲線正弦(inverse hyperbolic sine)関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -57,14 +57,14 @@ asinh, asinhf, asinhl \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -89,59 +89,59 @@ or .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR asinh () .\"O function calculates the inverse hyperbolic sine of .\"O \fIx\fP; that is the value whose hyperbolic sine is \fIx\fP. .BR asinh () -´Ø¿ô¤Ï \fIx\fP µÕÁжÊÀþÀµ¸¹¡Êinverse hyperbolic sine¡Ë¤ò -·×»»¤¹¤ë¡£¤¹¤Ê¤ï¤Á¡¢¤½¤ÎÁжÊÀþÀµ¸¹¡Êhyperbolic sine¡Ë¤¬ \fIx\fP ¤Ë -¤Ê¤ë¤è¤¦¤ÊÃͤǤ¢¤ë¡£ +関数は \fIx\fP 逆双曲線正弦(inverse hyperbolic sine)を +計算する。すなわち、その双曲線正弦(hyperbolic sine)が \fIx\fP に +なるような値である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the inverse hyperbolic sine of .\"O .IR x . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I x -¤ÎµÕÁжÊÀþÀµ¸¹¤òÊÖ¤¹¡£ +の逆双曲線正弦を返す。 .\"O If .\"O .I x .\"O is a NaN, a NaN is returned. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x .\"O is +0 (\-0), +0 (\-0) is returned. .I x -¤¬ +0 (\-0) ¤Î¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 (\-0) の場合、+0 (\-0) が返される。 .\"O If .\"O .I x .\"O is positive infinity (negative infinity), .\"O positive infinity (negative infinity) is returned. .I x -¤¬Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤Î¾ì¹ç¡¢Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大 (負の無限大) の場合、正の無限大 (負の無限大) が返される。 .\" .\" POSIX.1-2001 documents an optional range error for subnormal x; .\" glibc 2.8 does not do this. .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O No errors occur. -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ +エラーは発生しない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD, C89. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR acosh (3), .BR atanh (3), .BR casinh (3), diff --git a/draft/man3/asprintf.3 b/draft/man3/asprintf.3 index 20555a12..9a664389 100644 --- a/draft/man3/asprintf.3 +++ b/draft/man3/asprintf.3 @@ -28,12 +28,12 @@ .TH ASPRINTF 3 2001-12-18 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O asprintf, vasprintf \- print to allocated string -.SH ̾Á° -asprintf, vasprintf \- ʸ»úÎó¤ò³ä¤êÅö¤Æ¤Æ¤½¤ì¤Ë½ÐÎϤ¹¤ë +.SH 名前 +asprintf, vasprintf \- 文字列を割り当ててそれに出力する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp @@ -41,7 +41,7 @@ asprintf, vasprintf \- ʸ .sp .BI "int vasprintf(char **" strp ", const char *" fmt ", va_list " ap ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The functions .\"O .BR asprintf () .\"O and @@ -57,21 +57,21 @@ asprintf, vasprintf \- ʸ .\"O .BR free (3) .\"O to release the allocated storage when it is no longer needed. .BR asprintf () -´Ø¿ô¤È +関数と .BR vasprintf () -´Ø¿ô¤È¤Ï¡¢¤½¤ì¤¾¤ì +関数とは、それぞれ .BR sprintf (3) -´Ø¿ô¤È +関数と .BR vsprintf (3) -´Ø¿ô¤È¤Ë»÷¤Æ¤¤¤ë¤¬¡¢ -½ÐÎÏʸ»úÎó¤ò (½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤â´Þ¤á¤Æ) -ÊÝ»ý¤¹¤ë¤Î¤Ë½½Ê¬¤ÊÂ礭¤µ¤Î¥á¥â¥ê¤ò³ÎÊݤ·¡¢ -ºÇ½é¤Î°ú¿ô¤Ë¤½¤Îʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤Î¥Ý¥¤¥ó¥¿¤Ï¡¢ÉÔÍפˤʤ俤é +関数とに似ているが、 +出力文字列を (終端の NULL バイトも含めて) +保持するのに十分な大きさのメモリを確保し、 +最初の引数にその文字列へのポインタを返す。 +このポインタは、不要になったら .BR free (3) -¤ËÅϤ·¡¢³ä¤êÅö¤Æ¤é¤ì¤¿µ­²±Îΰè¤ò²òÊü¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +に渡し、割り当てられた記憶領域を解放すべきである。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O When successful, these functions return the number of bytes printed, .\"O just like .\"O .BR sprintf (3). @@ -79,28 +79,28 @@ asprintf, vasprintf \- ʸ .\"O these functions will return \-1, and the contents of .\"O .I strp .\"O is undefined. -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï½ÐÎϤµ¤ì¤¿¥Ð¥¤¥È¿ô¤ò +成功すると、これらの関数は出力されたバイト数を .RB ( sprintf (3) -¤Î¤è¤¦¤Ë) ÊÖ¤¹¡£ -¥á¥â¥ê¤Î³ä¤êÅö¤Æ¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¤ê¡¢ -¤½¤Î¾¥¨¥é¡¼¤¬À¸¤¸¤ë¤È¡¢ -¤³¤ì¤é¤Î´Ø¿ô¤Ï \-1 ¤òÊÖ¤·¡¢ +のように) 返す。 +メモリの割り当てができなかったり、 +その他エラーが生じると、 +これらの関数は \-1 を返し、 .I strp -¤ÎÆâÍƤÏ̤ÄêµÁ¤È¤Ê¤ë¡£ +の内容は未定義となる。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O These functions are GNU extensions, not in C or POSIX. .\"O They are also available under *BSD. .\"O The FreeBSD implementation sets .\"O .I strp .\"O to NULL on error. -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ¤Î³ÈÄ¥¤Ç¤¢¤ê¡¢C ¤ä POSIX ¤Î¤â¤Î¤Ç¤Ï¤Ê¤¤¡£ -¤³¤ì¤é¤Ï *BSD ¤Ç¤âÍøÍѤǤ­¤ë¡£ -FreeBSD ¤Î¼ÂÁõ¤Ç¤Ï¡¢¥¨¥é¡¼¤ÎºÝ¤Ë¤Ï +これらの関数は GNU の拡張であり、C や POSIX のものではない。 +これらは *BSD でも利用できる。 +FreeBSD の実装では、エラーの際には .I strp -¤ò NULL ¤Ë¥»¥Ã¥È¤¹¤ë¡£ +を NULL にセットする。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR free (3), .BR malloc (3), .BR printf (3) diff --git a/draft/man3/assert.3 b/draft/man3/assert.3 index 25eec655..e46cf9c8 100644 --- a/draft/man3/assert.3 +++ b/draft/man3/assert.3 @@ -31,15 +31,15 @@ .\" Updated Thu 19 Sep JST 2002 by Kentaro Shirakata .\" .TH ASSERT 3 2002-08-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -assert \- ¿ÇÃǤ¬µ¶¤Î»þ¤Ë¥×¥í¥°¥é¥à¤òÃæ»ß¤¹¤ë -.SH ½ñ¼° +.SH 名前 +assert \- 診断が偽の時にプログラムを中止する +.SH 書式 .nf .B #include .sp .BI "void assert(scalar " expression ); .fi -.SH ÀâÌÀ +.SH 説明 .\"O If the macro .\"O .B NDEBUG .\"O was defined at the moment @@ -48,11 +48,11 @@ assert \- .\"O .BR assert () .\"O generates no code, and hence does nothing at all. .I -¤¬ºÇ¸å¤Ë¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤¿»þÅÀ¤Ç¡¢ +が最後にインクルードされた時点で、 .B NDEBUG -¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢ +マクロが定義されていた場合、 .BR assert () -¥Þ¥¯¥í¤Ï²¿¤Î¥³¡¼¥É¤âÀ¸À®¤»¤º¡¢½¾¤Ã¤ÆÁ´¤¯²¿¤â¤·¤Ê¤¤¡£ +マクロは何のコードも生成せず、従って全く何もしない。 .\"O Otherwise, the macro .\"O .BR assert () .\"O prints an error message to standard error and terminates the program @@ -61,25 +61,25 @@ assert \- .\"O if .\"O .I expression .\"O is false (i.e., compares equal to zero). -¤µ¤â¤Ê¤±¤ì¤Ð¡¢ +さもなければ、 .BR assert (3) -¥Þ¥¯¥í¤Ï +マクロは .I expression -¤¬µ¶¤Î»þ(¤¹¤Ê¤ï¤Á¡¢Èæ³Ó¤Î·ë²Ì¤¬0¤ÈÅù¤·¤¤»þ)¤Ë -ɸ½à¥¨¥é¡¼½ÐÎϤ˥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¡¢¤µ¤é¤Ë +が偽の時(すなわち、比較の結果が0と等しい時)に +標準エラー出力にエラーメッセージを表示し、さらに .BR abort () -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ë¤è¤Ã¤Æ¡¢¥×¥í¥°¥é¥à¤ò½ªÎ»¤µ¤»¤ë¡£ +を呼び出すことによって、プログラムを終了させる。 .LP .\"O The purpose of this macro is to help the programmer find bugs in .\"O his program. .\"O The message "assertion failed in file foo.c, function .\"O do_bar(), line 1287" is of no help at all to a user. -¤³¤Î¥Þ¥¯¥í¤ÎÌÜŪ¤Ï¡¢¥×¥í¥°¥é¥Þ¡¼¤¬¥×¥í¥°¥é¥à¤Î¥Ð¥°¤òȯ¸«¤¹¤ë¼ê½õ¤±¤ò -¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£"assertion failed in file foo.c, function do_bar(), line 1287" -¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤Ï¥æ¡¼¥¶¡¼¤Ë¤Ï²¿¤Î½õ¤±¤Ë¤â¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -ÃͤÏÊÖ¤µ¤ì¤Ê¤¤¡£ -.SH ½àµò +このマクロの目的は、プログラマーがプログラムのバグを発見する手助けを +することである。"assertion failed in file foo.c, function do_bar(), line 1287" +というメッセージはユーザーには何の助けにもならない。 +.SH 返り値 +値は返されない。 +.SH 準拠 .\"O POSIX.1-2001, C89, C99. .\"O In C89, .\"O .B expression @@ -88,15 +88,15 @@ assert \- .\"O and undefined behavior results if it is not, but in C99 .\"O it may have any scalar type. POSIX.1-2001, C89, C99. -C89 ¤Ç¤Ï +C89 では .B expression -¤Ï +は .I int -·¿¤Ç¤¢¤ë¤³¤È¤¬É¬ÍפȤµ¤ì¡¢¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤ÎÆ°ºî¤Ï̤ÄêµÁ¤È¤µ¤ì¤Æ¤¤¤¿¡£ -¤·¤«¤· C99 ¤Ç¤Ï¤É¤Î¤è¤¦¤Ê¥¹¥«¥éÃͤǤâ¤è¤¤¤³¤È¤Ë¤Ê¤Ã¤¿¡£ +型であることが必要とされ、そうでない場合の動作は未定義とされていた。 +しかし C99 ではどのようなスカラ値でもよいことになった。 .\"O .\" See Defect Report 107 for more details. -.\" ¾ÜºÙ¤ÏÉÔ¶ñ¹çÊó¹ð 107 ¤ò»²¾È¤Î¤³¤È¡£ -.SH ¥Ð¥° +.\" 詳細は不具合報告 107 を参照のこと。 +.SH バグ .\"O .BR assert () .\"O is implemented as a macro; if the expression tested has side-effects, .\"O program behavior will be different depending on whether @@ -105,14 +105,14 @@ C89 .\"O This may create Heisenbugs which go away when debugging .\"O is turned on. .BR assert () -¤Ï¡¢¥Þ¥¯¥í¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£¤¹¤Ê¤ï¤Á¡¢ -»î¤µ¤ì¤Æ¤¤¤ë¼°¤¬ÉûºîÍѤò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -¥Þ¥¯¥í +は、マクロとして実装されている。すなわち、 +試されている式が副作用を持っている場合には、 +マクロ .B NDEBUG -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Ë°Í¸¤·¤Æ¡¢¥×¥í¥°¥é¥à¤Î¿¶Éñ¤¤¤Ï°Û¤Ê¤ë¤À¤í¤¦¡£ -¤³¤ì¤Ë¤è¤Ã¤Æ¡¢¥Ð¥°½Ð¤·¤¹¤ë¤È¤­¤Ë¤Ï¾Ã¤¨¤Æ¤·¤Þ¤¦ -¥Ï¥¤¥¼¥ó¥Ð¥°(Heisenbugs)¤òÀ¸¤ß½Ð¤¹¤À¤í¤¦¡£ -.SH ´ØÏ¢¹àÌÜ +が定義されているかどうかに依存して、プログラムの振舞いは異なるだろう。 +これによって、バグ出しするときには消えてしまう +ハイゼンバグ(Heisenbugs)を生み出すだろう。 +.SH 関連項目 .BR abort (3), .BR assert_perror (3), .BR exit (3) diff --git a/draft/man3/assert_perror.3 b/draft/man3/assert_perror.3 index 8485eaee..14d3cf3a 100644 --- a/draft/man3/assert_perror.3 +++ b/draft/man3/assert_perror.3 @@ -31,19 +31,19 @@ .TH ASSERT_PERROR 3 2002-08-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O assert_perror \- test errnum and abort -.SH ̾Á° +.SH 名前 assert_perror \- test errnum and abort .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "void assert_perror(int " errnum ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O If the macro .\"O .B NDEBUG .\"O was defined at the moment @@ -51,13 +51,13 @@ assert_perror \- test errnum and abort .\"O was last included, the macro .\"O .BR assert_perror () .\"O generates no code, and hence does nothing at all. -ºÇ¸å¤Ë +最後に .I -¤¬¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤¿»þ¤Ë¥Þ¥¯¥í +がインクルードされた時にマクロ .B NDEBUG -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢¥Þ¥¯¥í +が定義されていた場合、マクロ .BR assert_perror () -¤Ï²¿¤Î¥³¡¼¥É¤âÀ¸À®¤»¤º¡¢¤·¤¿¤¬¤Ã¤ÆÁ´¤¯²¿¤â¤·¤Ê¤¤¡£ +は何のコードも生成せず、したがって全く何もしない。 .\"O Otherwise, the macro .\"O .BR assert_perror () .\"O prints an error message to standard error and terminates the program @@ -69,26 +69,26 @@ assert_perror \- test errnum and abort .\"O The message contains the filename, function name and .\"O line number of the macro call, and the output of .\"O .IR strerror(errnum) . -¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¡¢¥Þ¥¯¥í +そうでない場合、マクロ .BR assert_perror () -¤Ïɸ½à¥¨¥é¡¼¤Ë¥¨¥é¡¼¡¦¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¡¢ +は標準エラーにエラー・メッセージを表示し、 .I errnum -¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï +が 0 でない場合には .BR abort (3) -¤ò¸Æ¤Ó½Ð¤·¤Æ¥×¥í¥°¥é¥à¤ò½ªÎ»¤µ¤»¤ë¡£ -¥á¥Ã¥»¡¼¥¸¤Ë¤Ï¡¢¥Õ¥¡¥¤¥ë̾¡¢¥Þ¥¯¥í¸Æ¤Ó½Ð¤·¤¬¤¢¤Ã¤¿´Ø¿ô̾¤È¹ÔÈֹ桢 +を呼び出してプログラムを終了させる。 +メッセージには、ファイル名、マクロ呼び出しがあった関数名と行番号、 .I strerror(errnum) -¤Î½ÐÎϤ¬´Þ¤Þ¤ì¤ë¡£ +の出力が含まれる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O No value is returned. -ÊÖ¤êÃͤϤʤ¤¡£ +返り値はない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This is a GNU extension. -¤³¤ì¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ +これは GNU による拡張である。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O The purpose of the assert macros is to help the programmer find bugs in .\"O his program, things that cannot happen unless there was a coding mistake. .\"O However, with system or library calls the situation is rather different, @@ -98,17 +98,17 @@ assert_perror \- test errnum and abort .\"O is defined, .\"O but by proper error handling code. .\"O Never use this macro. -assert ¥Þ¥¯¥í¤ÎÌÜŪ¤Ï¡¢¥×¥í¥°¥é¥Þ¤¬¥×¥í¥°¥é¥àÃæ¤Î¥Ð¥°¤òõ¤¹¼ê½õ¤±¤ò¤¹¤ë¤³¤È -¤Ç¤¢¤ê¡¢¥³¡¼¥Ç¥£¥ó¥°´Ö°ã¤¤¤¬¤Ê¤¤¾ì¹ç¤Ë¤Ï²¿¤¬µ¯¤³¤ë¤³¤È¤Ï¤¢¤ê¤¨¤Ê¤¤¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä¥é¥¤¥Ö¥é¥ê¥³¡¼¥ë¤Î¾ì¹ç¡¢¾õ¶·¤¬¤«¤Ê¤ê°ã¤Ã¤Æ¤¤¤Æ¡¢ -¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¤³¤È¤¬¤¢¤ê¤¨¤ë¤·¡¢¼ÂºÝ¤¢¤ë¤À¤í¤¦¡£¤½¤·¤Æ¤½¤Î¤è¤¦¤Ê¾õ¶·¤Ç¤â -¥Æ¥¹¥È¤µ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£¤³¤Î¾ì¹ç¤Ë¤Ï¡¢ +assert マクロの目的は、プログラマがプログラム中のバグを探す手助けをすること +であり、コーディング間違いがない場合には何が起こることはありえない。 +しかしながら、システムコールやライブラリコールの場合、状況がかなり違っていて、 +エラーが返されることがありえるし、実際あるだろう。そしてそのような状況でも +テストされるべきである。この場合には、 .B NDEBUG -¤òÄêµÁ¤¹¤ë¤³¤È¤Ç̵¸ú¤Ë¤Ç¤­¤ë -assert ¤Ç¤Ï¤Ê¤¯¡¢Å¬Àڤʥ¨¥é¡¼½èÍý¥³¡¼¥É¤ÇÂн褹¤Ù¤­¤Ç¤¢¤ë¡£ -¤³¤Î¥Þ¥¯¥í¤Ï·è¤·¤Æ»È¤ï¤Ê¤¤¤³¤È¡£ +を定義することで無効にできる +assert ではなく、適切なエラー処理コードで対処すべきである。 +このマクロは決して使わないこと。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR abort (3), .BR assert (3), .BR exit (3), diff --git a/draft/man3/atan.3 b/draft/man3/atan.3 index e4a84d5f..a5e245f4 100644 --- a/draft/man3/atan.3 +++ b/draft/man3/atan.3 @@ -41,11 +41,11 @@ .\" .TH ATAN 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O atan, atanf, atanl \- arc tangent function -atan, atanf, atanl \- µÕÀµÀÜ¡Êarc tangent¡Ë´Ø¿ô +atan, atanf, atanl \- 逆正接(arc tangent)関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -57,14 +57,14 @@ atan, atanf, atanl \- .sp .fi .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -79,61 +79,61 @@ or .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR atan () .\"O function calculates the principal value of the arc tangent of \fIx\fP; .\"O that is the value whose tangent is \fIx\fP. .BR atan () -\fIx\fP ¤ÎµÕÀµÀÜ¡Êarc tangent¡Ë¤Î¼çÃͤò·×»»¤¹¤ë¡£ -¤¹¤Ê¤ï¤Á¡¢ -¤½¤ÎÀµÀÜ¡Êtangent¡Ë¤¬ \fIx\fP ¤È¤Ê¤ë¤è¤¦¤ÊÃͤǤ¢¤ë¡£ +\fIx\fP の逆正接(arc tangent)の主値を計算する。 +すなわち、 +その正接(tangent)が \fIx\fP となるような値である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the principal value of the arc tangent of .\"O .IR x .\"O in radians; the return value is in the range [\-pi/2,\ pi/2]. -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I x -¤ÎµÕÀµÀܤμçÃͤò¥é¥¸¥¢¥óñ°Ì¤ÇÊÖ¤¹¡£ -ÊÖ¤êÃÍ¤Ï [\-pi/2,\ pi/2] ¤ÎÈϰϤȤʤ롣 +の逆正接の主値をラジアン単位で返す。 +返り値は [\-pi/2,\ pi/2] の範囲となる。 .\"O If .\"O .I x .\"O is a NaN, a NaN is returned. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x .\"O is +0 (\-0), .\"O +0 (\-0) is returned. .I x -¤¬ +0 (\-0) ¤Î¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 (\-0) の場合、+0 (\-0) が返される。 .\"O If .\"O .I x .\"O is positive infinity (negative infinity), +pi/2 (\-pi/2) is returned. .I x -¤¬Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤Î¾ì¹ç¡¢+pi/2 (\-pi/2) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大 (負の無限大) の場合、+pi/2 (\-pi/2) が返される。 .\" .\" POSIX.1-2001 documents an optional range error for subnormal x; .\" glibc 2.8 does not do this. .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O No errors occur. -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ +エラーは発生しない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD, C89. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR acos (3), .BR asin (3), .BR atan2 (3), diff --git a/draft/man3/atan2.3 b/draft/man3/atan2.3 index d87a1f64..e0182748 100644 --- a/draft/man3/atan2.3 +++ b/draft/man3/atan2.3 @@ -41,11 +41,11 @@ .\" .TH ATAN2 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O atan2, atan2f, atan2l \- arc tangent function of two variables -atan2, atan2f, atan2l \- Æó¤Ä¤ÎÊÑ¿ô¤ËÂФ¹¤ëµÕÀµÀÜ¡Êarc tangent¡Ë´Ø¿ô +atan2, atan2f, atan2l \- 二つの変数に対する逆正接(arc tangent)関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include @@ -55,14 +55,14 @@ atan2, atan2f, atan2l \- .fi .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -77,7 +77,7 @@ or .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR atan2 () .\"O function calculates the principal value of the arc tangent of @@ -85,19 +85,19 @@ or .\"O using the signs of the two arguments to determine .\"O the quadrant of the result. .BR atan2 () -´Ø¿ô¤Ï +関数は .I y/x -¤ÎµÕÀµÀÜ (arg tangent) ¤Î¼çÃͤò·×»»¤¹¤ë¡£ -Æó¤Ä¤Î°ú¤­¿ô¤ÎÉä¹æ¤Ï·ë²Ì¤Î¾Ý¸Â¤ò·èÄꤹ¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ +の逆正接 (arg tangent) の主値を計算する。 +二つの引き数の符号は結果の象限を決定するために使われる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the principal value of the arc tangent of .\"O .IR y/x .\"O in radians; the return value is in the range [\-pi,\ pi]. -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I y/x -¤ÎµÕÀµÀܤμçÃͤò¥é¥¸¥¢¥óñ°Ì¤ÇÊÖ¤¹¡£ -ÊÖ¤êÃÍ¤Ï [\-pi,\ pi] ¤ÎÈϰϤȤʤ롣 +の逆正接の主値をラジアン単位で返す。 +返り値は [\-pi,\ pi] の範囲となる。 .\"O If .\"O .I y @@ -105,9 +105,9 @@ or .\"O .I x .\"O is less than 0, +pi (\-pi) is returned. .I y -¤¬ +0 (\-0) ¤Ç +が +0 (\-0) で .I x -¤¬ 0 ̤Ëþ¤Î¾ì¹ç¡¢+pi (\-pi) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が 0 未満の場合、+pi (\-pi) が返される。 .\"O If .\"O .I y @@ -115,9 +115,9 @@ or .\"O .I x .\"O is greater than 0, +0 (\-0) is returned. .I y -¤¬ +0 (\-0) ¤Ç +が +0 (\-0) で .I x -¤¬ 0 ¤è¤êÂ礭¤¤¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が 0 より大きい場合、+0 (\-0) が返される。 .\"O If .\"O .I y @@ -125,9 +125,9 @@ or .\"O .I x .\"O is +0 or \-0, \-pi/2 is returned. .I y -¤¬ 0 ̤Ëþ¤Ç +が 0 未満で .I x -¤¬ +0 ¤« \-0 ¤Î¾ì¹ç¡¢\-pi/2 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 か \-0 の場合、\-pi/2 が返される。 .\"O If .\"O .I y @@ -135,9 +135,9 @@ or .\"O .I x .\"O is +0 or \-0, pi/2 is returned. .I y -¤¬ 0 ¤è¤êÂ礭¤¯ +が 0 より大きく .I x -¤¬ +0 ¤« \-0 ¤Î¾ì¹ç¡¢pi/2 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 か \-0 の場合、pi/2 が返される。 .\" POSIX.1 says: .\" If @@ -150,9 +150,9 @@ or .\"O .I y .\"O is NaN, a NaN is returned. .I x -¤« +か .I y -¤Î¤¤¤º¤«¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +のいずかが NaN の場合、NaN が返される。 .\" POSIX.1 says: .\" If the result underflows, a range error may occur and @@ -165,9 +165,9 @@ or .\"O .I x .\"O is \-0, +pi (\-pi) is returned. .I y -¤¬ +0 (\-0) ¤Ç +が +0 (\-0) で .I x -¤¬ \-0 ¤Î¾ì¹ç¡¢+pi (\-pi) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が \-0 の場合、+pi (\-pi) が返される。 .\"O If .\"O .I y @@ -175,9 +175,9 @@ or .\"O .I x .\"O is +0, +0 (\-0) is returned. .I y -¤¬ +0 (\-0) ¤Ç +が +0 (\-0) で .I x -¤¬ +0 ¤Î¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 の場合、+0 (\-0) が返される。 .\"O If .\"O .I y @@ -185,9 +185,9 @@ or .\"O .I x .\"O is negative infinity, +pi (\-pi) is returned. .I y -¤¬ 0 ¤è¤êÂ礭¤¤ (¾®¤µ¤¤) Í­¸ÂÃÍ¤Ç +が 0 より大きい (小さい) 有限値で .I x -¤¬Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢+pi (\-pi) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が負の無限大の場合、+pi (\-pi) が返される。 .\"O If .\"O .I y @@ -195,9 +195,9 @@ or .\"O .I x .\"O is positive infinity, +0 (\-0) is returned. .I y -¤¬ 0 ¤è¤êÂ礭¤¤ (¾®¤µ¤¤) Í­¸ÂÃÍ¤Ç +が 0 より大きい (小さい) 有限値で .I x -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大の場合、+0 (\-0) が返される。 .\"O If .\"O .I y @@ -206,9 +206,9 @@ or .\"O is finite, .\"O pi/2 (\-pi/2) is returned. .I y -¤¬Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤Ç +が正の無限大 (負の無限大) で .I x -¤¬Í­¸ÂÃͤξì¹ç¡¢pi/2 (\-pi/2) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が有限値の場合、pi/2 (\-pi/2) が返される。 .\"O If .\"O .I y @@ -216,9 +216,9 @@ or .\"O .I x .\"O is negative infinity, +3*pi/4 (\-3*pi/4) is returned. .I y -¤¬Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤Ç +が正の無限大 (負の無限大) で .I x -¤¬Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢+3*pi/4 (\-3*pi/4) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が負の無限大の場合、+3*pi/4 (\-3*pi/4) が返される。 .\"O If .\"O .I y @@ -226,29 +226,29 @@ or .\"O .I x .\"O is positive infinity, +pi/4 (\-pi/4) is returned. .I y -¤¬Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤Ç +が正の無限大 (負の無限大) で .I x -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢+pi/4 (\-pi/4) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大の場合、+pi/4 (\-pi/4) が返される。 .\" .\" POSIX.1 says: .\" If both arguments are 0, a domain error shall not occur. .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O No errors occur. -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ +エラーは発生しない。 .\" POSIX.1 documents an optional underflow error .\" glibc 2.8 does not do this. .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD, C89. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR acos (3), .BR asin (3), .BR atan (3), diff --git a/draft/man3/atanh.3 b/draft/man3/atanh.3 index ce1309e6..ee74b608 100644 --- a/draft/man3/atanh.3 +++ b/draft/man3/atanh.3 @@ -41,11 +41,11 @@ .\" .TH ATANH 3 2010-09-11 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O atanh, atanhf, atanhl \- inverse hyperbolic tangent function -atanh, atanhf, atanhl \- µÕÁжÊÀþÀµÀÜ¡Êinverse hyperbolic tangent¡Ë´Ø¿ô +atanh, atanhf, atanhl \- 逆双曲線正接(inverse hyperbolic tangent)関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -57,14 +57,14 @@ atanh, atanhf, atanhl \- .sp .fi .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -89,34 +89,34 @@ or .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR atanh () .\"O function calculates the inverse hyperbolic tangent of .\"O \fIx\fP; that is the value whose hyperbolic tangent is \fIx\fP. .BR atanh () -´Ø¿ô¤Ï \fIx\fP ¤ÎµÕÁжÊÀþÀµÀÜ (inverse hyperbolic tangent) ¤ò·×»»¤¹¤ë¡£ -¤¹¤Ê¤ï¤Á¡¢¤½¤ÎÁжÊÀþÀµÀÜ (hyperbolic tangent) ¤¬ \fIx\fP ¤Ë¤Ê¤ë -¤è¤¦¤ÊÃͤǤ¢¤ë¡£ +関数は \fIx\fP の逆双曲線正接 (inverse hyperbolic tangent) を計算する。 +すなわち、その双曲線正接 (hyperbolic tangent) が \fIx\fP になる +ような値である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the inverse hyperbolic tangent of .\"O .IR x . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I x -¤ÎµÕÁжÊÀþÀµÀܤòÊÖ¤¹¡£ +の逆双曲線正接を返す。 .\"O If .\"O .I x .\"O is a NaN, a NaN is returned. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x .\"O is +0 (\-0), +0 (\-0) is returned. .I x -¤¬ +0 (\-0) ¤Î¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 (\-0) の場合、+0 (\-0) が返される。 .\"O If .\"O .I x @@ -129,13 +129,13 @@ or .\"O .BR HUGE_VALL , .\"O respectively, with the mathematically correct sign. .I x -¤¬ +1 ¤« \-1 ¤Î¾ì¹ç¡¢ -¶Ë¥¨¥é¡¼ (pole error) ¤¬È¯À¸¤·¡¢ -´Ø¿ô¤Î¼ïÎà¤Ë±þ¤¸¤Æ¡¢¿ô³ØŪ¤ËÀµ¤·¤¤Éä¹æ¤Î +が +1 か \-1 の場合、 +極エラー (pole error) が発生し、 +関数の種類に応じて、数学的に正しい符号の .BR HUGE_VAL , .BR HUGE_VALF , .BR HUGE_VALL -¤¬¤½¤ì¤¾¤ìÊÖ¤µ¤ì¤ë¡£ +がそれぞれ返される。 .\"O If the absolute value of .\"O .I x @@ -143,27 +143,27 @@ or .\"O a domain error occurs, .\"O and a NaN is returned. .I x -¤ÎÀäÂÐÃͤ¬ 1 ¤è¤êÂ礭¤¤¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ -NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +の絶対値が 1 より大きい場合、 +領域エラー (domain error) が発生し、 +NaN が返される。 .\" .\" POSIX.1-2001 documents an optional range error for subnormal x; .\" glibc 2.8 does not do this. .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Domain error: \fIx\fP less than \-1 or greater than +1 -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬ \-1 ¤è¤ê¾®¤µ¤¤¤« +1 ¤è¤êÂ礭¤¤ +領域エラー (domain error): \fIx\fP が \-1 より小さいか +1 より大きい .\"O .I errno .\"O is set to .\"O .BR EDOM . @@ -171,40 +171,40 @@ NaN .\"O .RB ( FE_INVALID ) .\"O is raised. .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë¡£ -̵¸ú (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +無効 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP .\"O Pole error: \fIx\fP is +1 or \-1 -¶Ë¥¨¥é¡¼ (pole error): \fIx\fP ¤¬ +1 ¤« \-1 +極エラー (pole error): \fIx\fP が +1 か \-1 .\"O .I errno .\"O is set to .\"O .BR ERANGE .\"O (but see BUGS). .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë (⤷¡Ö¥Ð¥°¡×¤ÎÀá¤â»²¾È)¡£ +が設定される (但し「バグ」の節も参照)。 .\"O A divide-by-zero floating-point exception .\"O .RB ( FE_DIVBYZERO ) .\"O is raised. -0 ¤Ë¤è¤ë½ü»» (divide-by-zero) ÉâÆ°¾®¿ôÅÀÎã³° +0 による除算 (divide-by-zero) 浮動小数点例外 .RB ( FE_DIVBYZERO ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD, C89. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O In glibc 2.9 and earlier, .\" Bug: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6759 .\" This can be seen in sysdeps/ieee754/k_standard.c @@ -215,17 +215,17 @@ C99, POSIX.1-2001. .\"O instead of the POSIX-mandated .\"O .BR ERANGE . .\"O Since version 2.10, glibc does the right thing. -glibc 2.9 ¤È¤½¤ì°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ -¶Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¡¢POSIX ¤ÇÍ׵ᤵ¤ì¤Æ¤¤¤ë +glibc 2.9 とそれ以前のバージョンでは、 +極エラーが発生した場合、POSIX で要求されている .B ERANGE -¤Ç¤Ï¤Ê¤¯ +ではなく .B EDOM -¤¬ +が .I errno -¤ËÀßÄꤵ¤ì¤ë¡£ -¥Ð¡¼¥¸¥ç¥ó 2.10 °Ê¹ß¤Î glibc ¤Ç¤Ï¡¢Àµ¤·¤¤Æ°ºî¤ò¤¹¤ë¡£ +に設定される。 +バージョン 2.10 以降の glibc では、正しい動作をする。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR acosh (3), .BR asinh (3), .BR catanh (3), diff --git a/draft/man3/atexit.3 b/draft/man3/atexit.3 index 283f1664..0ab829a0 100644 --- a/draft/man3/atexit.3 +++ b/draft/man3/atexit.3 @@ -36,18 +36,18 @@ .\" .TH ATEXIT 3 2008-12-05 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O atexit \- register a function to be called at normal process termination -atexit \- ¥×¥í¥»¥¹¤¬Àµ¾ï½ªÎ»¤·¤¿»þ¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë´Ø¿ô¤òÅÐÏ¿¤¹¤ë +atexit \- プロセスが正常終了した時に呼び出される関数を登録する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int atexit(void (*" function )(void)); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR atexit () .\"O function registers the given \fIfunction\fP to be @@ -55,59 +55,59 @@ atexit \- .\"O .BR exit (3) .\"O or via return from the program's \fImain\fP(). .BR atexit () -´Ø¿ô¤Ï¡¢Í¿¤¨¤é¤ì¤¿ \fIfunction\fP ¤ò¡¢ +関数は、与えられた \fIfunction\fP を、 .BR exit (3) -¤ä¥×¥í¥°¥é¥à¤Î \fImain\fP() -´Ø¿ô¤«¤é¤ÎÊÖ¤ê¤òÄ̤¸¤Æ¡¢¥×¥í¥»¥¹¤¬Àµ¾ï½ªÎ»¤·¤¿»þ¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë -´Ø¿ô¤È¤·¤ÆÅÐÏ¿¤¹¤ë¡£ +やプログラムの \fImain\fP() +関数からの返りを通じて、プロセスが正常終了した時に呼び出される +関数として登録する。 .\"O Functions so registered are called in .\"O the reverse order of their registration; no arguments are passed. -¤³¤³¤ÇÄêµÁ¤µ¤ì¤¿´Ø¿ô¤Ï¡¢ÅÐÏ¿¤·¤¿½çÈ֤ȤϵդνçÈ֤ǸƤӽФµ¤ì¤ë¡£ -ÅÐÏ¿¤·¤¿´Ø¿ô¤Ë°ú¤­¿ô¤ÏÅϤµ¤ì¤Ê¤¤¡£ +ここで定義された関数は、登録した順番とは逆の順番で呼び出される。 +登録した関数に引き数は渡されない。 .\"O The same function may be registered multiple times: .\"O it is called once for each registration. -Ʊ¤¸´Ø¿ô¤òÊ£¿ô²óÅÐÏ¿¤·¤Æ¤â¤è¤¤¡£ -ÅÐÏ¿¤µ¤ì¤¿´Ø¿ô¤ÏÅÐÏ¿ 1 ²ó¤Ë¤Ä¤­ 1 ²ó¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ +同じ関数を複数回登録してもよい。 +登録された関数は登録 1 回につき 1 回呼び出される。 .LP .\"O POSIX.1-2001 requires that an implementation allow at least .\"O .B ATEXIT_MAX .\"O (32) such functions to be registered. .\"O The actual limit supported by an implementation can be obtained using .\"O .BR sysconf (3). -POSIX.1-2001 ¤Ç¤Ï¡¢¤³¤Î¤è¤¦¤Ê´Ø¿ô¤ò¾¯¤Ê¤¯¤È¤â +POSIX.1-2001 では、このような関数を少なくとも .B ATEXIT_MAX -¸Ä (32¸Ä) ÅÐÏ¿¤Ç¤­¤ë¤³¤È¤òÍ׵ᤷ¤Æ¤¤¤ë¡£ -¤½¤Î¼ÂÁõ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¼ÂºÝ¤Î¾å¸Â¤Ï +個 (32個) 登録できることを要求している。 +その実装でサポートされている実際の上限は .BR sysconf (3) -¤ò»È¤Ã¤Æ¼èÆÀ¤Ç¤­¤ë¡£ +を使って取得できる。 .LP .\"O When a child process is created via .\"O .BR fork (2), .\"O it inherits copies of its parent's registrations. .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿¾ì¹ç¡¢»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤ÎÅÐÏ¿¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£ +で作成された場合、子プロセスは親プロセスの登録のコピーを継承する。 .\"O Upon a successful call to one of the .\"O .BR exec (3) .\"O functions, .\"O all registrations are removed. .BR exec (3) -¥Õ¥¡¥ß¥ê¡¼¤Î´Ø¿ô¤Î¤¤¤º¤ì¤«¤Î¸Æ¤Ó½Ð¤·¤ËÀ®¸ù¤¹¤ë¤È¡¢ -Á´¤Æ¤ÎÅÐÏ¿¤¬ºï½ü¤µ¤ì¤ë¡£ +ファミリーの関数のいずれかの呼び出しに成功すると、 +全ての登録が削除される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR atexit () .\"O function returns the value 0 if successful; otherwise .\"O it returns a nonzero value. .BR atexit () -´Ø¿ô¤Ï¡¢´Ø¿ôÅÐÏ¿¤¬À®¸ù¤·¤¿»þ¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ -¤½¤Î¾¤Î¾ì¹ç¤Ë¤Ï 0 °Ê³°¤ÎÃͤòÊÖ¤¹¡£ +関数は、関数登録が成功した時には 0 を返す。 +その他の場合には 0 以外の値を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, C89, C99, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Functions registered using .\"O .BR atexit () .\"O (and @@ -115,10 +115,10 @@ SVr4, 4.3BSD, C89, C99, POSIX.1-2001. .\"O are not called if a process terminates abnormally because .\"O of the delivery of a signal. .BR atexit () -(¤È +(と .BR on_exit (3)) -¤ò»È¤Ã¤ÆÅÐÏ¿¤µ¤ì¤¿´Ø¿ô¤Ï¡¢ -¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤Ë¤è¤ê¥×¥í¥»¥¹¤¬°Û¾ï½ªÎ»¤·¤¿¾ì¹ç¤Ë¤Ï¸Æ¤Ó½Ð¤µ¤ì¤Ê¤¤¡£ +を使って登録された関数は、 +シグナルの配送によりプロセスが異常終了した場合には呼び出されない。 .\"O If one of the functions registered functions calls .\"O .BR _exit (2), @@ -126,11 +126,11 @@ SVr4, 4.3BSD, C89, C99, POSIX.1-2001. .\"O and the other process termination steps performed by .\"O .BR exit (3) .\"O are not performed. -ÅÐÏ¿¤µ¤ì¤¿´Ø¿ô¤Î°ì¤Ä¤¬ +登録された関数の一つが .BR _exit (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¡¢»Ä¤ê¤Î´Ø¿ô¤Ï¤É¤ì¤âµ¯Æ°¤µ¤ì¤º¡¢ +を呼び出した場合、残りの関数はどれも起動されず、 .BR exit (3) -¤Ë¤è¤ê¼Â¹Ô¤µ¤ì¤ë¾¤Î¥×¥í¥»¥¹½ªÎ»¥¹¥Æ¥Ã¥×¤Ï¼Â¹Ô¤µ¤ì¤Ê¤¤¡£ +により実行される他のプロセス終了ステップは実行されない。 .\"O POSIX.1-2001 says that the result of calling .\"O .BR exit (3) @@ -139,11 +139,11 @@ SVr4, 4.3BSD, C89, C99, POSIX.1-2001. .\"O within a function registered using .\"O .BR atexit ()) .\"O is undefined. -POSIX.1-2001 ¤Ç¤Ï¡¢ +POSIX.1-2001 では、 .BR atexit () -¤ò»È¤Ã¤ÆÅÐÏ¿¤µ¤ì¤¿°ì¤Ä¤Î´Ø¿ôÆâ¤Ç¡¢Ê£¿ô²ó +を使って登録された一つの関数内で、複数回 .BR exit (3) -¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Î·ë²Ì¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +を呼び出した際の結果は未定義である。 .\"O On some systems (but not Linux), this can result in an infinite recursion; .\" This can happen on OpenBSD 4.2 for example, and is documented .\" as occurring on FreeBSD as well. @@ -153,13 +153,13 @@ POSIX.1-2001 .\"O .BR exit (3) .\"O inside a function registered using .\"O .BR atexit (). -(Linux ¤Ç¤Ï¤Ê¤¤¤¬) ¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤Î¾ì¹ç¡¢ -·«¤êÊÖ¤·¤¬Ìµ¸Â¤Ëµ¯¤³¤ë¤³¤È¤Ë¤Ê¤ë¡£ -°Ü¿¢À­¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ +(Linux ではないが) いくつかのシステムでは、この場合、 +繰り返しが無限に起こることになる。 +移植性が必要なプログラムでは、 .BR atexit () -¤ÇÅÐÏ¿¤µ¤ì¤¿´Ø¿ôÆâ¤Ç +で登録された関数内で .BR exit (3) -¤òµ¯Æ°¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +を起動すべきではない。 .\"O The .\"O .BR atexit () @@ -170,40 +170,40 @@ POSIX.1-2001 .\"O the registered functions are invoked in reverse order .\"O of their registration by these two functions. .BR atexit () -¤È +と .BR on_exit (3) -¤Ï¡¢Æ±¤¸¥ê¥¹¥È¤ËÂФ·¤Æ´Ø¿ô¤òÅÐÏ¿¤¹¤ë¡£ -¥×¥í¥»¥¹¤¬Àµ¾ï¤Ë½ªÎ»¤·¤¿ºÝ¤Ë¤Ï¡¢ -¤³¤ì¤é¤ÎÆó¤Ä¤Î´Ø¿ô¤ÇÅÐÏ¿¤µ¤ì¤¿½ç½ø¤ÎµÕ½ç¤Ç¡¢ -ÅÐÏ¿¤µ¤ì¤¿´Ø¿ô¤¬µ¯Æ°¤µ¤ì¤ë¡£ +は、同じリストに対して関数を登録する。 +プロセスが正常に終了した際には、 +これらの二つの関数で登録された順序の逆順で、 +登録された関数が起動される。 .\"O POSIX.1-2001 says that the result is undefined if .\"O .BR longjmp (3) .\"O is used to terminate execution of one of the functions registered .\"O .BR atexit (). -POSIX.1-2001 ¤Ç¤Ï¡¢ +POSIX.1-2001 では、 .BR atexit () -¤ÇÅÐÏ¿¤µ¤ì¤¿´Ø¿ô¤Î¼Â¹Ô¤ò½ªÎ»¤¹¤ë¤¿¤á¤Ë +で登録された関数の実行を終了するために .BR longjmp (3) -¤¬»ÈÍѤµ¤ì¤¿¾ì¹ç¤Î·ë²Ì¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +が使用された場合の結果は未定義である。 .\" In glibc, things seem to be handled okay .\"O .SS "Linux Notes" -.SS Linux ¤Ç¤ÎÃí°Õ +.SS Linux での注意 .\"O Since glibc 2.2.3, .\"O .BR atexit () .\"O (and .\"O .BR on_exit (3)) .\"O can be used to within a shared library to establish functions .\"O that are called when the shared library is unloaded. -glibc 2.2.3 °Ê¹ß¤Ç¤Ï¡¢¶¦Í­¥é¥¤¥Ö¥é¥ê¤¬¥¢¥ó¥í¡¼¥É¤µ¤ì¤ë¤È¤­¤Ë¸Æ¤Ð¤ì¤ë -´Ø¿ô¤òÅÐÏ¿¤¹¤ë¤¿¤á¤Ë¡¢¶¦Í­¥é¥¤¥Ö¥é¥ê¤ÎÃæ¤Ç +glibc 2.2.3 以降では、共有ライブラリがアンロードされるときに呼ばれる +関数を登録するために、共有ライブラリの中で .BR atexit () -(¤È +(と .BR on_exit (3)) -¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使用することができる。 .PP .\"O .SH EXAMPLE -.SH Îã +.SH 例 .nf #include #include @@ -234,7 +234,7 @@ main(void) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR _exit (2), .BR exit (3), .BR on_exit (3) diff --git a/draft/man3/atof.3 b/draft/man3/atof.3 index e0808b07..ad2351f7 100644 --- a/draft/man3/atof.3 +++ b/draft/man3/atof.3 @@ -34,18 +34,18 @@ .\" .TH ATOF 3 1993-03-29 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O atof \- convert a string to a double -atof \- ʸ»úÎó¤ò double ·¿¤Î¿ôÃͤËÊÑ´¹ +atof \- 文字列を double 型の数値に変換 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "double atof(const char *" nptr ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR atof () .\"O function converts the initial portion of the string @@ -61,27 +61,27 @@ atof \- ʸ .\"O .BR atof () .\"O does not detect errors. .BR atof () -´Ø¿ô¤Ï¡¢\fInptr\fP¤Ë¤è¤Ã¤Æ»Ø¼¨¤µ¤ì¤ëʸ»úÎó¤Î¤Ï¤¸¤á¤ÎÉôʬ¤ò +関数は、\fInptr\fPによって指示される文字列のはじめの部分を .I double -·¿¤Î¿ôÃͤËÊÑ´¹¤¹¤ë¡£ -¤³¤Î¿¶¤ëÉñ¤¤¤Ï¡¢ +型の数値に変換する。 +この振る舞いは、 .BR atof () -´Ø¿ô¤¬¥¨¥é¡¼¤ò¸«¤Ä¤±¤Ê¤¤¤³¤È¤ò½ü¤¤¤Æ¤Ï¡¢ +関数がエラーを見つけないことを除いては、 .sp .in +4n strtod(nptr, (char **) NULL); .in .sp -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The converted value. -ÊÑ´¹¤µ¤ì¤¿ÃÍ¡£ +変換された値。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001, 4.3BSD, C89, C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR atoi (3), .BR atol (3), .BR strtod (3), diff --git a/draft/man3/atoi.3 b/draft/man3/atoi.3 index bf36c7f3..cf3128d7 100644 --- a/draft/man3/atoi.3 +++ b/draft/man3/atoi.3 @@ -35,10 +35,10 @@ .\" Updated Tue 30 Jan 2001 JST by Kentaro Shirakata .\" .TH ATOI 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 .\"O atoi, atol, atoll, atoq \- convert a string to an integer -atoi, atol, atoll, atoq \- ʸ»úÎó¤òÀ°¿ô·¿¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +atoi, atol, atoll, atoq \- 文字列を整数型に変換する +.SH 書式 .nf .B #include .sp @@ -54,9 +54,9 @@ atoi, atol, atoll, atoq \- ʸ .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -70,20 +70,20 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .BR atoi () -´Ø¿ô¤Ï¡¢\fInptr\fP ¤Ë¤è¤Ã¤Æ»Ø¼¨¤µ¤ì¤ëʸ»úÎó¤Î¤Ï¤¸¤á¤ÎÉôʬ¤ò +関数は、\fInptr\fP によって指示される文字列のはじめの部分を .I int -·¿À°¿ô¤ËÊÑ´¹¤¹¤ë¡£ -¤³¤Î¿¶¤ëÉñ¤¤¤Ï¡¢ +型整数に変換する。 +この振る舞いは、 .BR atoi () -´Ø¿ô¤¬¥¨¥é¡¼¤ò¸«¤Ä¤±¤Ê¤¤ÅÀ°Ê³°¤Ï¡¢ +関数がエラーを見つけない点以外は、 .sp .in +4n strtol(nptr, (char **) NULL, 10); .in .sp -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .PP .\"O The .\"O .BR atol () @@ -94,22 +94,22 @@ strtol(nptr, (char **) NULL, 10); .\"O except that they convert the initial portion of the .\"O string to their return type of \fIlong\fP or \fIlong long\fP. .BR atol () -´Ø¿ô¤È +関数と .BR atoll () -´Ø¿ô¤Ï +関数は .BR atoi () -¤ÈƱÍͤﶤëÉñ¤¤¤ò¤¹¤ë¤¬¡¢ -ʸ»úÎó¤Î¤Ï¤¸¤á¤ÎÉôʬ¤ò¤½¤ì¤¾¤ì \fIlong\fP ¤ä \fIlong long\fP ¤ËÊÑ´¹¤¹¤ë¡£ +と同様の振る舞いをするが、 +文字列のはじめの部分をそれぞれ \fIlong\fP や \fIlong long\fP に変換する。 .\"O .BR atoq () .\"O is an obsolete name for .\"O .BR atoll (). .BR atoq () -¤Ï +は .BR atoll () -¤Î¸Å¤¤Ì¾Á°¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -ÊÑ´¹¤µ¤ì¤¿ÃÍ¡£ -.SH ½àµò +の古い名前である。 +.SH 返り値 +変換された値。 +.SH 準拠 SVr4, POSIX.1-2001, 4.3BSD, C99. .\"O C89 and .\"O POSIX.1-1996 include the functions @@ -119,15 +119,15 @@ SVr4, POSIX.1-2001, 4.3BSD, C99. .\"O only. .\"O .BR atoq () .\"O is a GNU extension. -C89 ¤È POSIX.1-1996 ¤Ë¤Ï +C89 と POSIX.1-1996 には .BR atoi () -¤È +と .BR atol () -¤À¤±¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +だけが含まれている。 .BR atoq () -¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ +は GNU による拡張である。 .\"O .SH "NOTES" -.SH Ãí°Õ +.SH 注意 .\"O The nonstandard .\"O .BR atoq () .\"O function is not present in libc 4.6.27 @@ -137,15 +137,15 @@ C89 .\"O .BR atoll () .\"O function is present in glibc 2 since version 2.0.2, but .\"O not in libc4 or libc5. -Èóɸ½à¤Ç¤¢¤ë +非標準である .BR atoq () -´Ø¿ô¤Ï libc 4.6.27 ¤ä glibc 2 ¤Ë¤Ï´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -libc5 ¤È libc 4.7 ¤Ë¤Ï¸ºß¤·¤Æ¤¤¤ë (¤¿¤À¤· libc 5.4.44 ¤Þ¤Ç¤Ï -\fI\fP ¤Î¥¤¥ó¥é¥¤¥ó´Ø¿ô¤Î¤ß¤Ç¤¢¤ë)¡£ +関数は libc 4.6.27 や glibc 2 には含まれていないが、 +libc5 と libc 4.7 には存在している (ただし libc 5.4.44 までは +\fI\fP のインライン関数のみである)。 .BR atoll () -´Ø¿ô¤Ï glibc 2 ¤Î¥Ð¡¼¥¸¥ç¥ó 2.0.2 ¤«¤é¸ºß¤·¤Æ¤¤¤ë¤¬¡¢ -libc4 ¤ä libc5 ¤Ë¤Ï¸ºß¤·¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +関数は glibc 2 のバージョン 2.0.2 から存在しているが、 +libc4 や libc5 には存在しない。 +.SH 関連項目 .BR atof (3), .BR strtod (3), .BR strtol (3), diff --git a/draft/man3/backtrace.3 b/draft/man3/backtrace.3 index 12d1bb8a..9822d23b 100644 --- a/draft/man3/backtrace.3 +++ b/draft/man3/backtrace.3 @@ -29,13 +29,13 @@ .\" .TH BACKTRACE 3 2008-06-14 GNU "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O backtrace, backtrace_symbols, backtrace_symbols_fd \- support .\"O for application self-debugging backtrace, backtrace_symbols, backtrace_symbols_fd \- -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¼«¿È¤Ç¤Î¥Ç¥Ð¥Ã¥°¤Î¥µ¥Ý¡¼¥È +アプリケーション自身でのデバッグのサポート .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .B int backtrace(void @@ -55,7 +55,7 @@ backtrace, backtrace_symbols, backtrace_symbols_fd \- .B int .IB fd ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR backtrace () .\"O returns a backtrace for the calling program, .\"O in the array pointed to by @@ -67,13 +67,13 @@ backtrace, backtrace_symbols, backtrace_symbols_fd \- .\"O is of type \fIvoid *\fP, and is the return address from .\"O the corresponding stack frame. .BR backtrace () -¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥°¥é¥à¤Î¥Ð¥Ã¥¯¥È¥ì¡¼¥¹¤ò +は、呼び出したプログラムのバックトレースを .I buffer -¤¬»Ø¤¹ÇÛÎó¤ËÆþ¤ì¤ÆÊÖ¤¹¡£¥Ð¥Ã¥¯¥È¥ì¡¼¥¹¤Ï¡¢¥×¥í¥°¥é¥à¤Ç -¸½ºßÆ°ºîÃæ¤Î´Ø¿ô¸Æ¤Ó½Ð¤·¤ÎʤӤǤ¢¤ë¡£ +が指す配列に入れて返す。バックトレースは、プログラムで +現在動作中の関数呼び出しの並びである。 .I buffer -¤¬»Ø¤¹ÇÛÎó¤Î¸Ä¡¹¤ÎÍ×ÁÇ¤Ï \fIvoid *\fP ·¿¤Ç¡¢ -Âбþ¤¹¤ë¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤«¤é¤Î¥ê¥¿¡¼¥ó¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +が指す配列の個々の要素は \fIvoid *\fP 型で、 +対応するスタックフレームからのリターンアドレスである。 .\"O The .\"O .I size .\"O argument specifies the maximum number of addresses @@ -90,19 +90,19 @@ backtrace, backtrace_symbols, backtrace_symbols_fd \- .\"O .I size .\"O are large enough. .I size -°ú¤­¿ô¤Ï +引き数は .I buffer -¤Ë³ÊǼ¤Ç¤­¤ë¥¢¥É¥ì¥¹¤ÎºÇÂç¸Ä¿ô¤ò»ØÄꤹ¤ë¡£ -¥Ð¥Ã¥¯¥È¥ì¡¼¥¹¤¬ +に格納できるアドレスの最大個数を指定する。 +バックトレースが .I size -¤è¤êÂ礭¤¤¾ì¹ç¡¢ +より大きい場合、 .I size -¸Ä¤Îľ¶á¤Î´Ø¿ô¸Æ¤Ó½Ð¤·¤ËÂбþ¤¹¤ë¥¢¥É¥ì¥¹¤¬ÊÖ¤µ¤ì¤ë¡£ -´°Á´¤Ê¥Ð¥Ã¥¯¥È¥ì¡¼¥¹¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Ë¤Ï¡¢³Î¼Â¤Ë +個の直近の関数呼び出しに対応するアドレスが返される。 +完全なバックトレースを取得するためには、確実に .I buffer -¤È +と .I size -¤¬½½Ê¬Â礭¤¯¤Ê¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¡£ +が十分大きくなるようにすること。 .\"O Given the set of addresses returned by .\"O .BR backtrace () @@ -112,26 +112,26 @@ backtrace, backtrace_symbols, backtrace_symbols_fd \- .\"O translates the addresses into an array of strings that describe .\"O the addresses symbolically. .BR backtrace () -¤Ë¤è¤Ã¤Æ +によって .I buffer -¤Ë¥¢¥É¥ì¥¹¤Î½¸¹ç¤¬ÆÀ¤é¤ì¤¿¤é¡¢ +にアドレスの集合が得られたら、 .BR backtrace_symbols () -¤Ë¤è¤Ã¤Æ¡¢¥¢¥É¥ì¥¹½¸¹ç¤ò¡¢¤½¤Î¥¢¥É¥ì¥¹¤ò¥·¥ó¥Ü¥ë¤Çɽ¤·¤¿Ê¸»úÎó¤ÎÇÛÎó -¤ËËÝÌõ¤Ç¤­¤ë¡£ +によって、アドレス集合を、そのアドレスをシンボルで表した文字列の配列 +に翻訳できる。 .\"O The .\"O .I size .\"O argument specifies the number of addresses in .\"O .IR buffer . .I size -°ú¤­¿ô¤Ï +引き数は .I buffer -¤Ë³ÊǼ¤µ¤ì¤¿¥¢¥É¥ì¥¹¤Î¿ô¤ò»ØÄꤹ¤ë¡£ +に格納されたアドレスの数を指定する。 .\"O The symbolic representation of each address consists of the function name .\"O (if this can be determined), a hexadecimal offset into the function, .\"O and the actual return address (in hexadecimal). -¸Ä¡¹¤Î¥¢¥É¥ì¥¹¤Î¥·¥ó¥Ü¥ëɽ¸½¤Ï¡¢´Ø¿ô̾ (ÆÃÄê¤Ç¤­¤¿¾ì¹ç)¡¢ -´Ø¿ô¤Ø¤Î¥ª¥Õ¥»¥Ã¥È (16¿Êɽµ­)¡¢¼ÂºÝ¤Î¥ê¥¿¡¼¥ó¥¢¥É¥ì¥¹ (16¿Êɽµ­) -¤«¤é¹½À®¤µ¤ì¤ë¡£ +個々のアドレスのシンボル表現は、関数名 (特定できた場合)、 +関数へのオフセット (16進表記)、実際のリターンアドレス (16進表記) +から構成される。 .\"O The address of the array of string pointers is returned .\"O as the function result of .\"O .BR backtrace_symbols (). @@ -143,15 +143,15 @@ backtrace, backtrace_symbols, backtrace_symbols_fd \- .\"O (The strings pointed to by the array of pointers .\"O need not and should not be freed.) .BR backtrace_symbols () -¤Î¼Â¹Ô·ë²Ì¤È¤·¤Æ¤Ï¡¢ -ʸ»úÎó¥Ý¥¤¥ó¥¿¤ÎÇÛÎó¤Î¥¢¥É¥ì¥¹¤¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤ÎÇÛÎó¤Ï +の実行結果としては、 +文字列ポインタの配列のアドレスが返される。 +この配列は .BR backtrace_symbols () -¤Ë¤è¤Ã¤Æ +によって .BR malloc (3) -¤µ¤ì¡¢¸Æ¤Ó½Ð¤·Â¦¤Ç free ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(¥Ý¥¤¥ó¥¿¤ÎÇÛÎ󤬻ؤ¹¸Ä¡¹¤Îʸ»úÎó¤Ï free ¤¹¤ëɬÍפϤʤ¤¤·¡¢ -free ¤¹¤Ù¤­¤Ç¤â¤Ê¤¤)¡£ +され、呼び出し側で free しなければならない +(ポインタの配列が指す個々の文字列は free する必要はないし、 +free すべきでもない)。 .\"O .BR backtrace_symbols_fd () .\"O takes the same @@ -168,23 +168,23 @@ free .\"O .BR malloc (3), .\"O and so can be employed in situations where the latter function might fail. .BR backtrace_symbols_fd () -¤Ï¡¢ +は、 .BR backtrace_symbols () -¤ÈƱ¤¸°ú¤­¿ô +と同じ引き数 .I buffer -¤È +と .I size -¤ò¤È¤ë¤¬¡¢¸Æ¤Ó½Ð¤·Â¦¤Ëʸ»úÎó¤ÎÇÛÎó¤òÊÖ¤¹Âå¤ï¤ê¤Ë¡¢ -ʸ»úÎó¤ò¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +をとるが、呼び出し側に文字列の配列を返す代わりに、 +文字列をファイルディスクリプタ .I fd -¤Ë 1 ¹Ô¤Ë 1 ¥¨¥ó¥È¥ê¤Î·Á¤Ç½ñ¤­¹þ¤à¡£ +に 1 行に 1 エントリの形で書き込む。 .BR backtrace_symbols_fd () -¤Ï +は .BR malloc (3) -¤ò¸Æ¤Ó½Ð¤µ¤Ê¤¤¡£ -¤½¤Î¤¿¤á¡¢¤³¤ì¤Ë³¤¯´Ø¿ô¤¬¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¾õ¶·¤Ç¤âÍøÍѤǤ­¤ë¡£ +を呼び出さない。 +そのため、これに続く関数が失敗する可能性がある状況でも利用できる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR backtrace () .\"O returns the number of addresses returned in .\"O .IR buffer , @@ -197,18 +197,18 @@ free .\"O then it may have been truncated, in which case the addresses of the .\"O oldest stack frames are not returned. .BR backtrace () -¤Ï +は .I buffer -¤Ë³ÊǼ¤·¤¿¥¢¥É¥ì¥¹¤Î¸Ä¿ô¤òÊÖ¤¹¡£¤½¤Î¸Ä¿ô¤Ï +に格納したアドレスの個数を返す。その個数は .I size -¤è¤êÂ礭¤¯¤Ê¤ë¤³¤È¤Ï¤Ê¤¤¡£ -ÊÖ¤êÃͤ¬ +より大きくなることはない。 +返り値が .I size -¤è¤ê¾®¤µ¤¤¾ì¹ç¡¢¥Ð¥Ã¥¯¥È¥ì¡¼¥¹Á´ÂΤ¬³ÊǼ¤µ¤ì¤Æ¤¤¤ë¡£ÊÖ¤êÃͤ¬ +より小さい場合、バックトレース全体が格納されている。返り値が .I size -¤ÈÅù¤·¤¤¾ì¹ç¡¢¥Ð¥Ã¥¯¥È¥ì¡¼¥¹¤ÏÀÚ¤êµÍ¤á¤é¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -ÀÚ¤êµÍ¤á¤é¤ì¤¿¾ì¹ç¡¢ºÇ¤â¸Å¤¤¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤Î¥¢¥É¥ì¥¹¤Ï -ÊÖ¤µ¤ì¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¡£ +と等しい場合、バックトレースは切り詰められているかもしれない。 +切り詰められた場合、最も古いスタックフレームのアドレスは +返されないことになる。 .\"O On success, .\"O .BR backtrace_symbols () @@ -217,12 +217,12 @@ free .\"O by the call; .\"O on error, NULL is returned. .BR backtrace_symbols () -¤Ï¡¢À®¸ù¤¹¤ë¤È¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤Ç +は、成功すると、この呼び出しで .BR malloc (3) -¤µ¤ì¤¿ÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ NULL ¤òÊÖ¤¹¡£ +された配列へのポインタを返す。 +エラーの場合、 NULL を返す。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR backtrace (), .\"O .BR backtrace_symbols (), .\"O and @@ -231,19 +231,19 @@ free .BR backtrace (), .BR backtrace_symbols (), .BR backtrace_symbols_fd () -¤Ï¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +はバージョン 2.1 以降の glibc で提供されている。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O These functions are GNU extensions. -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ +これらの関数は GNU による拡張である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O These functions make some assumptions about how a function's return .\"O address is stored on the stack. .\"O Note the following: -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢´Ø¿ô¤Î¥ê¥¿¡¼¥ó¥¢¥É¥ì¥¹¤¬¥¹¥¿¥Ã¥¯¾å¤Ç¤É¤Î¤è¤¦¤Ë³ÊǼ¤µ¤ì¤ë¤« -¤Ë´Ø¤·¤Æ¤¢¤ë²¾Äê¤òÃÖ¤¤¤Æ¤¤¤ë¡£ -°Ê²¼¤ÎÅÀ¤ËÃí°Õ¡£ +これらの関数は、関数のリターンアドレスがスタック上でどのように格納されるか +に関してある仮定を置いている。 +以下の点に注意。 .IP * 3 .\"O Omission of the frame pointers (as .\"O implied by any of @@ -251,15 +251,15 @@ free .\"O nonzero optimization levels) may cause these assumptions to be .\"O violated. .RB ( gcc (1) -¤Î 0 °Ê³°¤ÎºÇŬ²½¥ì¥Ù¥ë¤Ç°ÅÌۤΤ¦¤Á¤Ë¹Ô¤ï¤ì¤ë) -¥Õ¥ì¡¼¥à¥Ý¥¤¥ó¥¿¤Î¾Êά¤ò¹Ô¤¦¤È¡¢¤³¤ì¤é¤ÎÁ°Äó¤¬Êø¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +の 0 以外の最適化レベルで暗黙のうちに行われる) +フレームポインタの省略を行うと、これらの前提が崩れる可能性がある。 .IP * .\"O Inlined functions do not have stack frames. -¥¤¥ó¥é¥¤¥ó´Ø¿ô¤Ï¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤ò»ý¤¿¤Ê¤¤¡£ +インライン関数はスタックフレームを持たない。 .IP * .\"O Tail-call optimization causes one stack frame to replace another. -ËöÈø¸Æ¤Ó½Ð¤·¤ÎºÇŬ²½ (tail-call optimization) ¤ò¹Ô¤¦¤È¡¢ -¤¢¤ë¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤¬Ê̤Υ¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤òÃÖ¤­´¹¤¨¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +末尾呼び出しの最適化 (tail-call optimization) を行うと、 +あるスタックフレームが別のスタックフレームを置き換える可能性がある。 .PP .\"O The symbol names may be unavailable without the use of special linker .\"O options. @@ -268,27 +268,27 @@ free .\"O linker option. .\"O Note that names of "static" functions are not exposed, .\"O and won't be available in the backtrace. -¥·¥ó¥Ü¥ë̾¤ÏÆÃÊ̤ʥê¥ó¥«¡¦¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Ê¤¤¤ÈÍøÍѤǤ­¤Ê¤¤¾ì¹ç¤¬¤¢¤ë¡£ -GNU ¥ê¥ó¥«¤ò»ÈÍѤ¹¤ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +シンボル名は特別なリンカ・オプションを使用しないと利用できない場合がある。 +GNU リンカを使用するシステムでは、 .I \-rdynamic -¥ê¥ó¥«¡¦¥ª¥×¥·¥ç¥ó¤ò»È¤¦É¬Íפ¬¤¢¤ë¡£ -"static" ¤Ê´Ø¿ô¤Î¥·¥ó¥Ü¥ë̾¤Ï¸ø³«¤µ¤ì¤º¡¢ -¥Ð¥Ã¥¯¥È¥ì¡¼¥¹¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +リンカ・オプションを使う必要がある。 +"static" な関数のシンボル名は公開されず、 +バックトレースでは利用できない点に注意すること。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The program below demonstrates the use of .\"O .BR backtrace () .\"O and .\"O .BR backtrace_symbols (). .\"O The following shell session shows what we might see when running the .\"O program: -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢ +以下のプログラムは、 .BR backtrace () -¤È +と .BR backtrace_symbols () -¤Î»ÈÍÑÎã¤ò¼¨¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -°Ê²¼¤Ë¼¨¤¹¥·¥§¥ë¤Î¥»¥Ã¥·¥ç¥ó¤Ï¡¢ -¤³¤Î¥×¥í¥°¥é¥à¤òÆ°¤«¤·¤¿ºÝ¤Î¼Â¹ÔÎã¤Ç¤¢¤ë¡£ +の使用例を示したものである。 +以下に示すシェルのセッションは、 +このプログラムを動かした際の実行例である。 .nf .in +4n @@ -306,7 +306,7 @@ backtrace() returned 8 addresses .in .fi .\"O .SS Program source -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -327,8 +327,8 @@ myfunc3(void) .\"O /* The call backtrace_symbols_fd(buffer, nptrs, STDOUT_FILENO) .\"O would produce similar output to the following: */ - /* backtrace_symbols_fd(buffer, nptrs, STDOUT_FILENO) ¤ò - ¸Æ¤Ó½Ð¤·¤Æ¤â¡¢°Ê²¼¤ÈƱÍͤνÐÎϤ¬ÆÀ¤é¤ì¤ë¡£ */ + /* backtrace_symbols_fd(buffer, nptrs, STDOUT_FILENO) を + 呼び出しても、以下と同様の出力が得られる。 */ strings = backtrace_symbols(buffer, nptrs); if (strings == NULL) { @@ -343,7 +343,7 @@ myfunc3(void) } .\"O static void /* "static" means don\(aqt export the symbol... */ -static void /* "static" ¤Ï¥·¥ó¥Ü¥ë¤ò¸ø³«¤·¤Ê¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë */ +static void /* "static" はシンボルを公開しないことを意味する */ myfunc2(void) { myfunc3(); @@ -371,7 +371,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR gcc (1), .BR ld (1), .BR dlopen (3), diff --git a/draft/man3/basename.3 b/draft/man3/basename.3 index 43fdfb10..cc2fd36e 100644 --- a/draft/man3/basename.3 +++ b/draft/man3/basename.3 @@ -30,10 +30,10 @@ .TH BASENAME 3 2009-03-30 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O basename, dirname \- parse pathname components -.SH ̾Á° -basename, dirname \- ¥Ñ¥¹Ì¾¤ò²òÀϤ·¤Æ³ÆÉôʬ¤ò¼è¤ê½Ð¤¹ +.SH 名前 +basename, dirname \- パス名を解析して各部分を取り出す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -42,13 +42,13 @@ basename, dirname \- .BI "char *basename(char *" path ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Warning: there are two different functions .\"O .BR basename () .\"O - see below. -·Ù¹ð: +警告: .BR basename () -¤Ë¤Ï°Û¤Ê¤ë¥Ð¡¼¥¸¥ç¥ó¤¬ 2¤Ä¸ºß¤¹¤ë¡£²¼µ­¤Î¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¤Î¤³¤È¡£ +には異なるバージョンが 2つ存在する。下記の「注意」の節を参照のこと。 .LP .\"O The functions .\"O .BR dirname () @@ -63,16 +63,16 @@ basename, dirname \- .\"O returns the component following the final \(aq/\(aq. .\"O Trailing \(aq/\(aq characters are not counted as part of the pathname. .BR dirname () -¤È +と .BR basename () -¤Ï¡¢NULL ¤Ç½ªÃ¼¤µ¤ì¤¿¥Ñ¥¹Ì¾¤Îʸ»úÎó¤ò¡¢ -¥Ç¥£¥ì¥¯¥È¥êÉôʬ¡¦¥Õ¥¡¥¤¥ë̾Éôʬ¤Ëʬ³ä¤¹¤ë¡£ -Ä̾ï¤Ï¡¢ +は、NULL で終端されたパス名の文字列を、 +ディレクトリ部分・ファイル名部分に分割する。 +通常は、 .BR dirname () -¤ÏºÇ¸å¤Î \(aq/\(aq ¤Þ¤Ç¤ÎÉôʬ (ºÇ¸å¤Î \(aq/\(aq ¤Ï´Þ¤Þ¤Ê¤¤) ¤òÊÖ¤·¡¢ +は最後の \(aq/\(aq までの部分 (最後の \(aq/\(aq は含まない) を返し、 .BR basename () -¤ÏºÇ¸å¤Î \(aq/\(aq °Ê¹ß¤ÎÉôʬ¤òÊÖ¤¹¡£ -ʸ»úÎó¤ÎËöÈø¤Ë¤Ä¤¤¤¿ \(aq/\(aq ʸ»ú¤Ï¡¢¥Ñ¥¹Ì¾¤Î°ìÉô¤È¤Ï¤ß¤Ê¤µ¤ì¤Ê¤¤¡£ +は最後の \(aq/\(aq 以降の部分を返す。 +文字列の末尾についた \(aq/\(aq 文字は、パス名の一部とはみなされない。 .PP .\"O If .\"O .I path @@ -97,25 +97,25 @@ basename, dirname \- .\"O .BR basename () .\"O return the string ".". .I path -¤Ë '/' ʸ»ú¤¬¤Ê¤¤¾ì¹ç¤Ï¡¢ +に '/' 文字がない場合は、 .BR dirname () -¤Ïʸ»úÎó "." ¤òÊÖ¤·¡¢ +は文字列 "." を返し、 .BR basename () -¤Ï +は .I path -¤ÈƱ¤¸ÆâÍƤòÊÖ¤¹¡£ +と同じ内容を返す。 .I path -¤¬Ê¸»úÎó "/" ¤ËÅù¤·¤¤¾ì¹ç¤Ï¡¢ +が文字列 "/" に等しい場合は、 .BR dirname () -¤â +も .BR basename () -¤âʸ»úÎó "/" ¤òÊÖ¤¹¡£ +も文字列 "/" を返す。 .I path -¤¬ NULL ¥Ý¥¤¥ó¥¿¤À¤Ã¤¿¤ê¡¢¶õ¤Îʸ»úÎó¤ò»Ø¤·¤Æ¤¤¤¿¾ì¹ç¤Ï¡¢ +が NULL ポインタだったり、空の文字列を指していた場合は、 .BR dirname () -¤â +も .BR basename () -¤âʸ»úÎó "." ¤òÊÖ¤¹¡£ +も文字列 "." を返す。 .PP .\"O Concatenating the string returned by .\"O .BR dirname (), @@ -123,10 +123,10 @@ basename, dirname \- .\"O .BR basename () .\"O yields a complete pathname. .BR dirname () -¤ÎÊÖ¤·¤¿Ê¸»úÎó¡¢ "/"¡¢ +の返した文字列、 "/"、 .BR basename () -¤ÎÊÖ¤·¤¿Ê¸»úÎó¡¢ -¤ò½ç¤Ë·ë¹ç¤¹¤ë¤È¡¢´°Á´¤Ê¥Ñ¥¹Ì¾¤¬ÆÀ¤é¤ì¤ë¡£ +の返した文字列、 +を順に結合すると、完全なパス名が得られる。 .PP .\"O Both .\"O .BR dirname () @@ -137,13 +137,13 @@ basename, dirname \- .\"O so it may be desirable to pass a copy when calling one of .\"O these functions. .BR dirname () -¤È +と .BR basename () -¤Ï¡¢¤¤¤º¤ì¤â +は、いずれも .I path -¤ÎÆâÍƤòÊѹ¹¤¹¤ë¤³¤È¤¬¤¢¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹ºÝ¤Ë¤Ï -¥³¥Ô¡¼¤òÅϤ¹¤Î¤¬Ë¾¤Þ¤·¤¤¡£ +の内容を変更することがある。 +したがって、これらの関数を呼び出す際には +コピーを渡すのが望ましい。 .PP .\"O These functions may return pointers to statically allocated memory .\"O which may be overwritten by subsequent calls. @@ -153,14 +153,14 @@ basename, dirname \- .\"O .I path .\"O should not be modified or freed until the pointer returned by .\"O the function is no longer required. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ÀÅŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¤³¤È¤¬¤¢¤ê¡¢ -¤³¤ì¤é¤ÎÎΰè¤Ï¸å¤Î´Ø¿ô¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤Þ¤¿¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は、静的に割り当てられたメモリへのポインタを返すことがあり、 +これらの領域は後の関数呼び出しで上書きされるかもしれない。 +また、これらの関数は .I path -¤Î°ìÉôʬ¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¤³¤È¤â¤¢¤ë¡£¤½¤Î¤¿¤á¡¢ +の一部分を指すポインタを返すこともある。そのため、 .I path -¤Ç»²¾È¤µ¤ì¤ëʸ»úÎó¤Ï¡¢´Ø¿ô¤¬ÊÖ¤¹¥Ý¥¤¥ó¥¿¤¬ÉÔÍפˤʤë¤Þ¤Ç¤Ï -Êѹ¹¤·¤¿¤ê free ¤·¤¿¤ê¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +で参照される文字列は、関数が返すポインタが不要になるまでは +変更したり free したりすべきではない。 .PP .\"O The following list of examples (taken from SUSv2) .\"O shows the strings returned by @@ -168,12 +168,12 @@ basename, dirname \- .\"O and .\"O .BR basename () .\"O for different paths: -°Ê²¼¤Î°ìÏ¢¤ÎÎã (SUSv2 ¤«¤é°úÍÑ) ¤Ï¡¢ -¤¤¤í¤¤¤í¤Ê path ¤ËÂФ·¤Æ +以下の一連の例 (SUSv2 から引用) は、 +いろいろな path に対して .BR dirname () -¤È +と .BR basename () -¤¬ÊÖ¤¹Ê¸»úÎó¤òɽ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +が返す文字列を表したものである。 .sp .nf .B "path dirname basename" @@ -185,7 +185,7 @@ basename, dirname \- ".." "." ".." .fi .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O Both .\"O .BR dirname () .\"O and @@ -194,31 +194,31 @@ basename, dirname \- .\"O (Do not pass these pointers to .\"O .BR free (3).) .BR dirname () -¤È +と .BR basename () -¤Ï¡¢¤¤¤º¤ì¤â NULL ¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -(¤³¤ì¤é¤Î¥Ý¥¤¥ó¥¿¤ò +は、いずれも NULL で終端された文字列へのポインタを返す。 +(これらのポインタを .BR free (3) -¤ËÅϤµ¤Ê¤¤¤³¤È¡£) +に渡さないこと。) .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O There are two different versions of .\"O .BR basename () .\"O - the POSIX version described above, and the GNU version, which one gets .\"O after .BR basename () -¤Ë¤Ï 2¼ïÎà¤Î°Û¤Ê¤ë¥Ð¡¼¥¸¥ç¥ó¤¬¤¢¤ë¡£ -°ì¤Ä¤Ï¤¹¤Ç¤ËÀâÌÀ¤·¤¿ POSIX ¥Ð¡¼¥¸¥ç¥ó¤Ç¤¢¤ê¡¢ -¤â¤¦°ì¤Ä¤Ï GNU ¥Ð¡¼¥¸¥ç¥ó¤Ç¤¢¤ë¡£ -GNU ¥Ð¡¼¥¸¥ç¥ó¤ò»ÈÍѤ¹¤ë¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë¡£ +には 2種類の異なるバージョンがある。 +一つはすでに説明した POSIX バージョンであり、 +もう一つは GNU バージョンである。 +GNU バージョンを使用するには以下のようにする。 .br .nf .\"O .BR " #define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR " #define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR " #define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B " #include " @@ -229,43 +229,43 @@ GNU .\"O has a trailing slash, and in particular also when it is "/". .\"O There is no GNU version of .\"O .BR dirname (). -GNU ¥Ð¡¼¥¸¥ç¥ó¤Ï°ú¤­¿ô¤òÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ê¤¯¡¢ +GNU バージョンは引き数を変更することはなく、 .I path -¤ÎËöÈø¤¬ '/'¤Î¾ì¹ç¤Ï¶õ¤Îʸ»úÎó¤òÊÖ¤¹¡£ -ÆÃ¤Ë +の末尾が '/'の場合は空の文字列を返す。 +特に .I path -¤¬ "/" ¤Î¾ì¹ç¤â¶õʸ»úÎó¤òÊÖ¤¹¡£ +が "/" の場合も空文字列を返す。 .BR dirname () -¤Ë¤Ï GNU ¥Ð¡¼¥¸¥ç¥ó¤Ï¤Ê¤¤¡£ +には GNU バージョンはない。 .LP .\"O With glibc, one gets the POSIX version of .\"O .BR basename () .\"O when .\"O .I .\"O is included, and the GNU version otherwise. -glibc ¤Ç¤Ï¡¢ +glibc では、 .I -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤È POSIX ¥Ð¡¼¥¸¥ç¥ó¤Î +をインクルードすると POSIX バージョンの .BR basename () -¤¬»ÈÍѤµ¤ì¡¢¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï GNU ¥Ð¡¼¥¸¥ç¥ó¤È¤Ê¤ë¡£ +が使用され、それ以外の場合は GNU バージョンとなる。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O In the glibc implementation of the POSIX versions of these functions .\"O they modify their argument, and segfault when called with a static string .\"O like "/usr/". -glibc ¤Î POSIX ¥Ð¡¼¥¸¥ç¥ó¤Î¼ÂÁõ¤Ç¤Ï¡¢°ú¤­¿ô¤ÎÆâÍƤ¬Êѹ¹¤µ¤ì¡¢ -°ú¤­¿ô¤Ë ("/usr/" ¤Ê¤É¤Î) Äê¿ôʸ»úÎó¤ò»ØÄꤵ¤ì¤ë¤È -¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó¥Õ¥©¡¼¥ë¥È¤òµ¯¤³¤¹¡£ +glibc の POSIX バージョンの実装では、引き数の内容が変更され、 +引き数に ("/usr/" などの) 定数文字列を指定されると +セグメンテーションフォールトを起こす。 .\"O Before glibc 2.2.1, the glibc version of .\"O .BR dirname () .\"O did not correctly handle pathnames with trailing \(aq/\(aq characters, .\"O and generated a segfault if given a NULL argument. -¥Ð¡¼¥¸¥ç¥ó 2.2.1 °ÊÁ°¤Î glibc ¤Ç¤Ï¡¢ glibc ¤Î +バージョン 2.2.1 以前の glibc では、 glibc の .BR dirname () -¤ÏËöÈø¤¬ \(aq/\(aq ʸ»ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥Ñ¥¹Ì¾¤òÀµ¤·¤¯°·¤¨¤º¡¢ -°ú¤­¿ô¤¬ NULL ¤À¤È¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó¥Õ¥©¡¼¥ë¥È¤òµ¯¤³¤·¤¿¡£ +は末尾が \(aq/\(aq 文字になっているパス名を正しく扱えず、 +引き数が NULL だとセグメンテーションフォールトを起こした。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .in +4n .nf char *dirc, *basec, *bname, *dname; @@ -279,6 +279,6 @@ printf("dirname=%s, basename=%s\\n", dname, bname); .fi .in .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR basename (1), .BR dirname (1) diff --git a/draft/man3/bcmp.3 b/draft/man3/bcmp.3 index 43479a1c..ad2b97c9 100644 --- a/draft/man3/bcmp.3 +++ b/draft/man3/bcmp.3 @@ -33,16 +33,16 @@ .\" Updated Sun Feb 23 JST 2003 by Kentaro Shirakata .\" .TH BCMP 3 2008-08-06 "Linux" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 .\"O bcmp \- compare byte sequences -bcmp \- ¥Ð¥¤¥ÈÎó¤òÈæ³Ó¤¹¤ë -.SH ½ñ¼° +bcmp \- バイト列を比較する +.SH 書式 .nf .B #include .sp .BI "int bcmp(const void *" s1 ", const void *" s2 ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR bcmp () .\"O function compares the two byte sequences @@ -59,40 +59,40 @@ bcmp \- .\"O returns 0. .\"O Otherwise it returns a nonzero result. .BR bcmp () -¤Ï¡¢2 ¤Ä¤Î¥Ð¥¤¥ÈÎó +は、2 つのバイト列 .I s1 -¤È +と .I s2 -¤ÎÀèƬ +の先頭 .I n -¥Ð¥¤¥È¤ò -Èæ³Ó¤¹¤ë¡£2 ¤Ä¤¬Åù¤·¤¤¤«¡¢ÆÃ¤Ë +バイトを +比較する。2 つが等しいか、特に .I n -¤¬ 0 ¤Î¾ì¹ç +が 0 の場合 .BR bcmp () -¤Ï 0 ¤òÊÖ¤¹¡£ -¤µ¤â¤Ê¤±¤ì¤Ð 0 °Ê³°¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ +は 0 を返す。 +さもなければ 0 以外を返す。 +.SH 返り値 .\"O The .\"O .BR bcmp () .\"O function returns 0 if the byte sequences are equal, .\"O otherwise a nonzero result is returned. -¥Ð¥¤¥ÈÎó¤¬Åù¤·¤¤¾ì¹ç¤Ï 0 ¡¢Åù¤·¤¯¤Ê¤¤¾ì¹ç¤Ï 0 °Ê³°¤òÊÖ¤¹¡£ -.SH ½àµò +バイト列が等しい場合は 0 、等しくない場合は 0 以外を返す。 +.SH 準拠 4.3BSD. .\"O This function is deprecated (marked as LEGACY in POSIX.1-2001): use .\"O .BR memcmp (3) .\"O in new programs. -¤³¤Î´Ø¿ô¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë (POSIX.1-2001 ¤Ç¤Ï -²áµî¤Î̾»Ä (LEGACY) ¤È¤µ¤ì¤Æ¤¤¤ë)¡£¿·¤·¤¤¥×¥í¥°¥é¥à¤Ç¤Ï +この関数は廃止予定である (POSIX.1-2001 では +過去の名残 (LEGACY) とされている)。新しいプログラムでは .BR memcmp (3) -¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£ +を使うべきである。 .\"O POSIX.1-2008 removes the specification of .\"O .BR bcmp (). -POSIX.1-2008 ¤Ç¤Ï +POSIX.1-2008 では .BR bcmp () -¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +の仕様が削除されている。 +.SH 関連項目 .BR memcmp (3), .BR strcasecmp (3), .BR strcmp (3), diff --git a/draft/man3/bcopy.3 b/draft/man3/bcopy.3 index a3d4f3f0..3398fce1 100644 --- a/draft/man3/bcopy.3 +++ b/draft/man3/bcopy.3 @@ -35,16 +35,16 @@ .\" Updated Sun Feb 23 JST 2003 by Kentaro Shirakata .\" .TH BCOPY 3 2009-03-15 "Linux" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 .\"O bcopy \- copy byte sequence -bcopy \- ¥Ð¥¤¥ÈÎó¤ò¥³¥Ô¡¼¤¹¤ë -.SH ½ñ¼° +bcopy \- バイト列をコピーする +.SH 書式 .nf .B #include .sp .BI "void bcopy(const void *" src ", void *" dest ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR bcopy () .\"O function copies @@ -54,19 +54,19 @@ bcopy \- .\"O to .\"O .IR dest . .BR bcopy () -¤Ï +は .I src -¤«¤éÀèƬ +から先頭 .I n -¥Ð¥¤¥È¤ò +バイトを .I dest -¤Ë¥³¥Ô¡¼¤¹¤ë¡£ +にコピーする。 .\"O The result is correct, even when both areas overlap. -Îΰ褬½Å¤Ê¤Ã¤Æ¤¤¤Æ¤â¡¢·ë²Ì¤ÏÀµ¤·¤¤¤â¤Î¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +領域が重なっていても、結果は正しいものである。 +.SH 返り値 .\"O None. -¤Ê¤·¡£ -.SH ½àµò +なし。 +.SH 準拠 4.3BSD. .\"O This function is deprecated (marked as LEGACY in POSIX.1-2001): use .\"O .BR memcpy (3) @@ -80,21 +80,21 @@ bcopy \- .\"O .BR memmove (3). .\"O POSIX.1-2008 removes the specification of .\"O .BR bcopy (). -¤³¤Î´Ø¿ô¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë (POSIX.1-2001 ¤Ç¤Ï -²áµî¤Î̾»Ä (LEGACY) ¤È¤µ¤ì¤Æ¤¤¤ë)¡£¿·¤·¤¤¥×¥í¥°¥é¥à¤Ç¤Ï +この関数は廃止予定である (POSIX.1-2001 では +過去の名残 (LEGACY) とされている)。新しいプログラムでは .BR memcpy () -¤ä +や .BR memmove () -¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +を使用すべきである。 .BR memcpy () -¤ä +や .BR memmove () -¤Ç¤Ï¡¢ºÇ½é¤Î 2 ¤Ä¤Î°ú¿ô¤Î½ç½ø¤¬Æþ¤ìÂؤï¤Ã¤Æ¤¤¤ë¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -POSIX.1-2008 ¤Ç¤Ï¡¢ +では、最初の 2 つの引数の順序が入れ替わっていることに注意すること。 +POSIX.1-2008 では、 .BR bcopy () -¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ +の仕様が削除されている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR memccpy (3), .BR memcpy (3), .BR memmove (3), diff --git a/draft/man3/bindresvport.3 b/draft/man3/bindresvport.3 index ccd3517e..c016d184 100644 --- a/draft/man3/bindresvport.3 +++ b/draft/man3/bindresvport.3 @@ -32,11 +32,11 @@ .\" .TH BINDRESVPORT 3 2008-12-03 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O bindresvport \- bind a socket to a privileged IP port -bindresvport \- ¥½¥±¥Ã¥È¤òÆø¢ IP ¥Ý¡¼¥È¤Ë¥Ð¥¤¥ó¥É¤¹¤ë +bindresvport \- ソケットを特権 IP ポートにバインドする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -44,15 +44,15 @@ bindresvport \- .BI "int bindresvport(int " sockfd ", struct sockaddr_in *" sin ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .LP .\"O .BR bindresvport () .\"O is used to bind a socket descriptor to a privileged anonymous IP port, .\"O that is, a port number arbitrarily selected from the range 512 to 1023. .BR bindresvport () -¤Ï¡¢¥½¥±¥Ã¥È¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÆø¢ÌµÌ¾ (privileged anonymous) IP ¥Ý¡¼¥È¤Ë -¥Ð¥¤¥ó¥É¤¹¤ë¤Î¤Ë»È¤¦¡£Æø¢ÌµÌ¾ IP ¥Ý¡¼¥È¤È¤Ï¡¢ -¥Ý¡¼¥ÈÈֹ椬 512 ¤«¤é 1023 ¤ÎÈϰϤ«¤éǤ°Õ¤ËÁªÂò¤µ¤ì¤ë¥Ý¡¼¥È¤Ç¤¢¤ë¡£ +は、ソケット・ディスクリプタを特権無名 (privileged anonymous) IP ポートに +バインドするのに使う。特権無名 IP ポートとは、 +ポート番号が 512 から 1023 の範囲から任意に選択されるポートである。 .\" Glibc actually starts searching with a port # in the range 600 to 1023 .\"O If the @@ -65,13 +65,13 @@ bindresvport \- .\"O .I sin\->sin_port .\"O returns the port number actually allocated. .BR bindresvport () -¤Ë¤è¤Ã¤Æ¼Â¹Ô¤µ¤ì¤¿ +によって実行された .BR bind (2) -¤¬À®¸ù¤·¡¢ +が成功し、 .I sin -¤¬ NULL °Ê³°¤Î¾ì¹ç¡¢¼ÂºÝ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥Ý¡¼¥ÈÈֹ椬 +が NULL 以外の場合、実際に割り当てられたポート番号が .I sin\->sin_port -¤ËÆþ¤ì¤ÆÊÖ¤µ¤ì¤ë¡£ +に入れて返される。 .\"O .I sin .\"O can be NULL, in which case @@ -84,72 +84,72 @@ bindresvport \- .\"O (This information can later be obtained using .\"O .BR getsockname (2).) .I sin -¤Ë¤Ï NULL ¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¡¢¤½¤Î¾ì¹ç¤Ë¤Ï +には NULL を指定することもでき、その場合には .I sin\->sin_family -¤Ï°ÅÌۤΤ¦¤Á¤Ë +は暗黙のうちに .B AF_INET -¤È¤ß¤Ê¤µ¤ì¤ë¡£ -¤·¤«¤·¡¢¤³¤Î¾ì¹ç¤Ë¤Ï¡¢ +とみなされる。 +しかし、この場合には、 .BR bindresvport () -¤Ï¼ÂºÝ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥Ý¡¼¥ÈÈÖ¹æ¤òÊÖ¤¹¼êÃʤò»ý¤¿¤Ê¤¤ -(³ä¤êÅö¤Æ¤é¤ì¤¿¥Ý¡¼¥ÈÈÖ¹æ¤Ï¡¢¸å¤Ç +は実際に割り当てられたポート番号を返す手段を持たない +(割り当てられたポート番号は、後で .BR getsockname (2) -¤ò»È¤Ã¤Æ¼èÆÀ¤Ç¤­¤ë)¡£ +を使って取得できる)。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR bindresvport () .\"O returns 0 on success; otherwise \-1 is returned and .\"O .I errno .\"O set to indicate the cause of the error. .BR bindresvport () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は成功すると 0 を返す。それ以外の場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤Î¸¶°ø¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーの原因を示す値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O .BR bindresvport () .\"O can fail for any of the same reasons as .\"O .BR bind (2). .BR bindresvport () -¤Ï +は .BR bind (2) -¤ÈƱ¤¸¸¶°ø¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +と同じ原因で失敗する可能性がある。 .\"O In addition, the following errors may occur: -¤µ¤é¤Ë¡¢°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤³¤È¤¬¤¢¤ë: +さらに、以下のエラーが発生することがある: .TP .BR EACCES .\"O The caller did not have superuser privilege (to be precise: the .\"O .B CAP_NET_BIND_SERVICE .\"O capability is required). -¸Æ¤Ó½Ð¤·¸µ¤¬¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤ÎÆø¢¤ò»ý¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿ (¤è¤êÀµ³Î¤Ë¸À¤¦¤È¡¢ +呼び出し元がスーパーユーザの特権を持っていなかった (より正確に言うと、 .B CAP_NET_BIND_SERVICE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë)¡£ +ケーパビリティが必要である)。 .TP .B EADDRINUSE .\"O All privileged ports are in use. -Á´¤Æ¤ÎÆø¢¥Ý¡¼¥È¤¬»ÈÍÑÃæ¤Ç¤¢¤ë¡£ +全ての特権ポートが使用中である。 .TP .\"O .BR EAFNOSUPPORT " (" EPFNOSUPPORT " in glibc 2.7 and earlier)" -.BR EAFNOSUPPORT " (glibc 2.7 °ÊÁ°¤Ç¤Ï " EPFNOSUPPORT ")" +.BR EAFNOSUPPORT " (glibc 2.7 以前では " EPFNOSUPPORT ")" .\"O .I sin .\"O is not NULL and .\"O .I sin->sin_family .\"O is not .\"O .BR AF_INET . .I sin -¤¬ NULL °Ê³°¤Ç¡¢¤«¤Ä +が NULL 以外で、かつ .I sin->sin_family -¤¬ +が .B AF_INET -¤Ç¤Ê¤«¤Ã¤¿¡£ +でなかった。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O Not in POSIX.1-2001. .\"O Present on the BSDs, Solaris, and many other systems. -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -BSD, Solaris ¤ª¤è¤Ó¤½¤Î¾¤Î¿¤¯¤Î¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¡£ +POSIX.1-2001 にはない。 +BSD, Solaris およびその他の多くのシステムに存在する。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .LP .\"O Unlike some .\"O .BR bindresvport () @@ -157,10 +157,10 @@ BSD, Solaris .\"O the glibc implementation ignores any value that the caller supplies in .\"O .IR sin\->sin_port . .BR bindresvport () -¤Î¤¤¤¯¤Ä¤«¤Î¼ÂÁõ¤È°Û¤Ê¤ê¡¢glibc ¤Î¼ÂÁõ¤Ç¤Ï¸Æ¤Ó½Ð¤·¸µ¤¬ +のいくつかの実装と異なり、glibc の実装では呼び出し元が .I sin\->sin_port -¤ÇÅϤ·¤¿ÃͤϤɤó¤ÊÃͤǤ¢¤Ã¤Æ¤â̵»ë¤µ¤ì¤ë¡£ +で渡した値はどんな値であっても無視される。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bind (2), .BR getsockname (2) diff --git a/draft/man3/bsd_signal.3 b/draft/man3/bsd_signal.3 index e0a888e2..50064837 100644 --- a/draft/man3/bsd_signal.3 +++ b/draft/man3/bsd_signal.3 @@ -24,19 +24,19 @@ .\" all rights reserved. .\" Translated 2007-06-02, Akihiro MOTOKI .\" -.\"WORD: reliable ¿®ÍêÀ­¤Î¤¢¤ë -.\"WORD: unreliable ¿®ÍêÀ­¤Ë·ç¤±¤ë -.\"WORD: signal semantics ¥·¥°¥Ê¥ë½èÍýÊý¼° +.\"WORD: reliable 信頼性のある +.\"WORD: unreliable 信頼性に欠ける +.\"WORD: signal semantics シグナル処理方式 .\" .TH BSD_SIGNAL 3 2009-03-15 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O bsd_signal \- signal handling with BSD semantics -bsd_signal \- BSD Êý¼°¤Î¥·¥°¥Ê¥ë½èÍý +bsd_signal \- BSD 方式のシグナル処理 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .\"O .BR "#define _XOPEN_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp @@ -44,15 +44,15 @@ bsd_signal \- BSD .sp .BI "sighandler_t bsd_signal(int " signum ", sighandler_t " handler ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR bsd_signal () .\"O function takes the same arguments, and performs the same task, as .\"O .BR signal (2). .BR bsd_signal () -´Ø¿ô¤Ï +関数は .BR signal (2) -¤ÈƱ¤¸°ú¤­¿ô¤ò¤È¤ê¡¢Æ±¤¸½èÍý¤ò¼Â¹Ô¤¹¤ë¡£ +と同じ引き数をとり、同じ処理を実行する。 .\"O The difference between the two is that .\"O .BR bsd_signal () @@ -66,62 +66,62 @@ bsd_signal \- BSD .\"O A portable application cannot rely on .\"O .BR signal (2) .\"O to provide these guarantees. -ξ¼Ô¤Î°ã¤¤¤Ï¡¢ +両者の違いは、 .BR bsd_signal () -¤Ç¤Ï¿®ÍêÀ­¤Î¤¢¤ë¥·¥°¥Ê¥ë½èÍýÊý¼°¤ÎÄ󶡤¬Êݾڤµ¤ì¤Æ¤¤¤ë¤³¤È¤Ç¤¢¤ë¡£ -¿®ÍêÀ­¤Î¤¢¤ë¥·¥°¥Ê¥ë½èÍýÊý¼°¤Ï°Ê²¼¤ÎÆÃħ¤ò»ý¤Ä¡£ -a) ¥Ï¥ó¥É¥é¤¬µ¯Æ°¤µ¤ì¤¿¾ì¹ç¤Ë¡¢¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡ (disposition) ¤¬ -¥Ç¥Õ¥©¥ë¥È¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤Ê¤¤¡¢ -b) ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Î¼Â¹ÔÃæ¤Ï¡¢¤½¤ì°Ê¹ß¤ËȯÀ¸¤·¤¿Æ±¤¸¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤¬ -¥Ö¥í¥Ã¥¯¤µ¤ì¤Ê¤¤¡¢ -c) ¥Ï¥ó¥É¥é¤¬Ää»ßÃæ¤Î (blocking ¤·¤Æ¤¤¤ë) ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò -ÃæÃǤ·¤¿¾ì¹ç¡¢¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¼«Æ°Åª¤ËºÆ³«¤µ¤ì¤ë¡£ -°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ +では信頼性のあるシグナル処理方式の提供が保証されていることである。 +信頼性のあるシグナル処理方式は以下の特徴を持つ。 +a) ハンドラが起動された場合に、シグナルの処理方法 (disposition) が +デフォルトにリセットされない、 +b) シグナルハンドラの実行中は、それ以降に発生した同じシグナルの配送が +ブロックされない、 +c) ハンドラが停止中の (blocking している) システムコールを +中断した場合、そのシステムコールが自動的に再開される。 +移植性が必要なアプリケーションでは、 .BR signal (2) -¤Ç¤³¤ì¤é¤¬Êݾڤµ¤ì¤ë¤³¤È¤òÁ°Äó¤Ë¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +でこれらが保証されることを前提にすべきではない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR bsd_signal () .\"O function returns the previous value of the signal handler, or .\"O .B SIG_ERR .\"O on error. .BR bsd_signal () -´Ø¿ô¤Ï¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ÎľÁ°¤ÎÃͤòÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ +関数はシグナルハンドラの直前の値を返す。 +エラーの場合、 .B SIG_ERR -¤òÊÖ¤¹¡£ +を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O As for .\"O .BR signal (2). .BR signal (2) -¤ÈƱ¤¸¡£ +と同じ。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.2BSD, POSIX.1-2001. .\"O POSIX.1-2008 removes the specification of .\"O .BR bsd_signal (), .\"O recommending the use of .\"O .BR sigaction (2) .\"O instead. -POSIX.1-2008 ¤Ç¤Ï +POSIX.1-2008 では .BR bsd_signal () -¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ -Âå¤ï¤ê¤Ë¡¢ +の仕様が削除されている。 +代わりに、 .BR sigaction (2) -¤Î»ÈÍѤ¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£ +の使用が推奨されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Use of .\"O .BR bsd_signal () .\"O should be avoided; use .\"O .BR sigaction (2) .\"O instead. .BR bsd_signal () -¤Î»ÈÍѤÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£Âå¤ï¤ê¤Ë +の使用は避けるべきである。代わりに .BR sigaction (2) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .\"O On modern Linux systems, .\"O .BR bsd_signal () @@ -133,16 +133,16 @@ POSIX.1-2008 .\"O provided unreliable signal semantics; see .\"O .BR signal (2) .\"O for details. -ºÇ¶á¤Î Linux ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +最近の Linux システムでは、 .BR bsd_signal () -¤È +と .BR signal (2) -¤ÏÅù²Á¤Ç¤¢¤ë¡£¤·¤«¤·¡¢°ÊÁ°¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +は等価である。しかし、以前のシステムでは、 .BR signal (2) -¤Ï¿®ÍêÀ­¤Ë·ç¤±¤ë¥·¥°¥Ê¥ë½èÍýÊý¼°¤òÄ󶡤·¤Æ¤¤¤¿¡£ -¾ÜºÙ¤Ï +は信頼性に欠けるシグナル処理方式を提供していた。 +詳細は .BR signal (2) -¤ò»²¾È¡£ +を参照。 .\"O The use of .\"O .I sighandler_t @@ -151,12 +151,12 @@ POSIX.1-2008 .\"O .B _GNU_SOURCE .\"O feature test macro is defined. .I sighandler_t -¤ò»È¤Ã¤Æ¤¤¤ë¤Î¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -¤³¤Î·¿¤Ïµ¡Ç½¸¡ºº¥Þ¥¯¥í +を使っているのは GNU による拡張である。 +この型は機能検査マクロ .B _GNU_SOURCE -¤òÄêµÁ¤·¤¿¾ì¹ç¤Ë¤Î¤ßÄêµÁ¤µ¤ì¤ë¡£ +を定義した場合にのみ定義される。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sigaction (2), .BR signal (2), .BR sysv_signal (3), diff --git a/draft/man3/bsearch.3 b/draft/man3/bsearch.3 index be0c7c4d..575a53dc 100644 --- a/draft/man3/bsearch.3 +++ b/draft/man3/bsearch.3 @@ -33,11 +33,11 @@ .\" .TH BSEARCH 3 2003-11-01 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O bsearch \- binary search of a sorted array -bsearch \- ¥½¡¼¥È¤µ¤ì¤¿ÇÛÎó¤òÆóʬÌÚ¸¡º÷ (binary search) ¤¹¤ë +bsearch \- ソートされた配列を二分木検索 (binary search) する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -46,7 +46,7 @@ bsearch \- .BI " int (*" compar ")(const void *, const void *));" .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR bsearch () .\"O function searches an array of \fInmemb\fP objects, @@ -55,10 +55,10 @@ bsearch \- .\"O The size of each member .\"O of the array is specified by \fIsize\fP. .BR bsearch () -´Ø¿ô¤Ï \fInmemb\fP ¸Ä¤Î¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¤Ê¤ëÇÛÎó¤ò¸¡º÷ -¤¹¤ë¡£ÇÛÎó¤ÎºÇ½é¤Î¥á¥ó¥Ð¡¼¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ï \fIbase\fP ¤Ë¤è¤Ã¤ÆÍ¿¤¨¤ë¡£ -¥Ý¥¤¥ó¥¿ \fIkey\fP ¤Ç»²¾È¤µ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¤È°ìÃפ¹¤ë¥á¥ó¥Ð¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ -ÇÛÎóÃæ¤Î³Æ¡¹¤Î¥á¥ó¥Ð¡¼¤Î¥µ¥¤¥º¤Ï \fIsize\fP ¤Ë¤è¤Ã¤Æ»ØÄꤹ¤ë¡£ +関数は \fInmemb\fP 個のオブジェクトからなる配列を検索 +する。配列の最初のメンバーへのポインタは \fIbase\fP によって与える。 +ポインタ \fIkey\fP で参照されるオブジェクトと一致するメンバーが返される。 +配列中の各々のメンバーのサイズは \fIsize\fP によって指定する。 .PP .\"O The contents of the array should be in ascending sorted order according .\"O to the comparison function referenced by \fIcompar\fP. @@ -68,38 +68,38 @@ bsearch \- .\"O less than, equal to, or greater than zero if the \fIkey\fP object is found, .\"O respectively, to be less than, to match, or be greater than the array .\"O member. -ÇÛÎó¤ÎÆâÍƤÏÈæ³Ó´Ø¿ô \fIcompar\fP ¤Ë´ð¤Å¤­¡¢¾º½ç¤Ë¥½¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤±¤ì -¤Ð¤Ê¤é¤Ê¤¤¡£ \fIcompar\fP ¥ë¡¼¥Á¥ó¤ÏÆó¤Ä¤Î°ú¿ô¤ò¼è¤ë´Ø¿ô¤Ç¡¢°ì¤Ä -ÌÜ¤Ë \fIkey\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¡¢¼¡¤ËÇÛÎó¤Î¥á¥ó¥Ð¡¼¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò¼è¤ë¡£ -¤³¤Î½ç¤Ë»ØÄꤷ¤¿¤È¤­¡¢ \fIkey\fP ¤¬ÇÛÎó¥á¥ó¥Ð¡¼¤è¤ê¾®¤µ¤¤¤È¤­¤Ë¤Ï -Éé¤ÎÀ°¿ô¤ò¡¢Â礭¤¤¤È¤­¤Ë¤ÏÀµ¤ÎÀ°¿ô¤ò¡¢°ìÃפ·¤¿¤È¤­¤Ë¤Ï 0 ¤ò¡¢¤½¤ì¤¾¤ì -\fIcompar\fP ¤ÏÊÖ¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +配列の内容は比較関数 \fIcompar\fP に基づき、昇順にソートされていなけれ +ばならない。 \fIcompar\fP ルーチンは二つの引数を取る関数で、一つ +目に \fIkey\fP へのポインタ、次に配列のメンバーへのポインタを取る。 +この順に指定したとき、 \fIkey\fP が配列メンバーより小さいときには +負の整数を、大きいときには正の整数を、一致したときには 0 を、それぞれ +\fIcompar\fP は返さなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR bsearch () .\"O function returns a pointer to a matching member of the .\"O array, or NULL if no match is found. If there are multiple elements that .\"O match the key, the element returned is unspecified. .BR bsearch () -´Ø¿ô¤Ï¡¢ÇÛÎó¤Î¥á¥ó¥Ð¡¼¤Î¤¦¤Á¡¢°ìÃפ·¤¿¤â¤Î¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò -ÊÖ¤¹¡£¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¤È¤­¤Ï NULL ¤òÊÖ¤¹¡£ \fIkey\fP ¤È°ìÃפ·¤¿¥á¥ó¥Ð¡¼¤¬ -Ê£¿ô¤¢¤ë¤È¤­¡¢¤½¤Î¤¦¤Á¤Î¤É¤Î¥á¥ó¥Ð¡¼¤¬ÊÖ¤µ¤ì¤ë¤«¤Ï¤ï¤«¤é¤Ê¤¤¡£ +関数は、配列のメンバーのうち、一致したものへのポインタを +返す。見つからなかったときは NULL を返す。 \fIkey\fP と一致したメンバーが +複数あるとき、そのうちのどのメンバーが返されるかはわからない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001, C89, C99. .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The example below first sorts an array of structures using .\"O .BR qsort (3), .\"O then retrieves desired elements using .\"O .BR bsearch (). -°Ê²¼¤ÎÎã¤Ï¡¢ +以下の例は、 .BR qsort (3) -¤ò»È¤Ã¤Æ¹½Â¤ÂΤÎÇÛÎó¤ÎʤӴ¹¤¨¤ò¹Ô¤Ã¤¿¸å¡¢ -½ê˾¤ÎÍ×ÁǤò +を使って構造体の配列の並び換えを行った後、 +所望の要素を .BR bsearch () -¤ò»È¤Ã¤Æ¼èÆÀ¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +を使って取得するものである。 .sp .nf #include @@ -145,9 +145,9 @@ main(int argc, char **argv) } .fi .\"O .\" this example referred to in qsort.3 -.\" ¤³¤ÎÎã¤Ï qsort.3 ¤Ç»²¾È¤µ¤ì¤Æ¤¤¤ë¡£ +.\" この例は qsort.3 で参照されている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR hsearch (3), .BR lsearch (3), .BR qsort (3), diff --git a/draft/man3/bstring.3 b/draft/man3/bstring.3 index 10b3e7df..5371e5b7 100644 --- a/draft/man3/bstring.3 +++ b/draft/man3/bstring.3 @@ -35,10 +35,10 @@ .\" Updated Wed Oct 15 JST 2003 by Kentaro Shirakata .\" .TH BSTRING 3 2002-01-20 "" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 bcmp, bcopy, bzero, memccpy, memchr, memcmp, memcpy, memfrob, memmem, -memmove, memset \- ¥Ð¥¤¥ÈÎó¤ÎÁàºî¤ò¹Ô¤Ê¤¦ -.SH ½ñ¼° +memmove, memset \- バイト列の操作を行なう +.SH 書式 .nf .B #include .sp @@ -65,15 +65,15 @@ memmove, memset \- .sp .BI "void *memset(void *" s ", int " c ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .\"O The byte string functions perform operations on strings (byte arrays) .\"O that are not necessarily null-terminated. .\"O See the individual man pages .\"O for descriptions of each function. -¤³¤ì¤é¤Î´Ø¿ô¤Ï NULL ½ªÃ¼¤¹¤ëɬÍפΤʤ¤Ê¸»úÎó (¥Ð¥¤¥ÈÇÛÎó) ¤ÎÁàºî¤ò¹Ô¤¦¡£ -´Ø¿ô¤Î¾Ü¤·¤¤ÀâÌÀ¤Ï¡¢¤½¤ì¤¾¤ì¤Î man ¥Ú¡¼¥¸¤ò»²¾È¤¹¤ë¤³¤È¡£ +これらの関数は NULL 終端する必要のない文字列 (バイト配列) の操作を行う。 +関数の詳しい説明は、それぞれの man ページを参照すること。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The functions .\"O .BR bcmp (), .\"O .BR bcopy () @@ -89,14 +89,14 @@ memmove, memset \- .BR bcmp (), .BR bcopy (), .BR bzero () -´Ø¿ô¤Ï¸Å¤¤¤â¤Î¤Ç¤¢¤ë¡£Âå¤ï¤ê¤Ë +関数は古いものである。代わりに .BR memcmp (), .BR memcpy () .BR memset () -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .\"O .\" The old functions are not even available on some non-GNU/Linux systems. -.\" ¸Å¤¤´Ø¿ô¤Ï GNU/Linux °Ê³°¤Î¥·¥¹¥Æ¥à¤Ç¤ÏÍÑ°Õ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤¹¤é¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +.\" 古い関数は GNU/Linux 以外のシステムでは用意されていない場合すらある。 +.SH 関連項目 .BR bcmp (3), .BR bcopy (3), .BR bzero (3), diff --git a/draft/man3/btowc.3 b/draft/man3/btowc.3 index 1fb20c1a..7d2d715f 100644 --- a/draft/man3/btowc.3 +++ b/draft/man3/btowc.3 @@ -15,26 +15,26 @@ .\" all rights reserved. .\" Translated Sep 11 1999, HAYAKAWA Hitoshi .\" -.\"WORD: locale ¥í¥±¡¼¥ë -.\"WORD: convert ¥³¥ó¥Ð¡¼¥È -.\"WORD: single byte ¥·¥ó¥°¥ë¥Ð¥¤¥È -.\"WORD: wide character ¥ï¥¤¥É¥­¥ã¥é¥¯¥¿¡¼ -.\"WORD: state ¾õÂÖ +.\"WORD: locale ロケール +.\"WORD: convert コンバート +.\"WORD: single byte シングルバイト +.\"WORD: wide character ワイドキャラクター +.\"WORD: state 状態 .\" .TH BTOWC 3 2011-09-22 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O btowc \- convert single byte to wide character -.SH ̾Á° -btowc \- ¥·¥ó¥°¥ë¥Ð¥¤¥È¤ò¥ï¥¤¥Éʸ»ú¤Ë¥³¥ó¥Ð¡¼¥È¤¹¤ë +.SH 名前 +btowc \- シングルバイトをワイド文字にコンバートする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "wint_t btowc(int " c ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR btowc () .\"O function converts \fIc\fP, interpreted as a multibyte sequence @@ -48,17 +48,17 @@ btowc \- .\"O function returns .\"O .BR WEOF . .BR btowc () -´Ø¿ô¤Ï½é´ü¥·¥Õ¥È¾õÂÖ¤«¤é»Ï¤Þ¤ëŤµ 1 ¤Î¥Þ¥ë¥Á¥Ð¥¤¥È¤Î¥·¡¼¥±¥ó¥¹¤È¤·¤Æ -²ò¼á¤µ¤ì¡¢\fIc\fP ¤ò¥ï¥¤¥Éʸ»ú¤Ë¥³¥ó¥Ð¡¼¥È¤·¤ÆÊÖ¤¹¡£ -\fIc\fP ¤¬ +関数は初期シフト状態から始まる長さ 1 のマルチバイトのシーケンスとして +解釈され、\fIc\fP をワイド文字にコンバートして返す。 +\fIc\fP が .B EOF -¤â¤·¤¯¤ÏŤµ 1 ¤Î̵¸ú¤Ê¥Þ¥ë¥Á¥Ð¥¤¥È¥·¡¼¥±¥ó¥¹¤Î¾ì¹ç¡¢ +もしくは長さ 1 の無効なマルチバイトシーケンスの場合、 .BR btowc () -´Ø¿ô¤Ï +関数は .B WEOF -¤òÊÖ¤¹¡£ +を返す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR btowc () .\"O function returns the wide character @@ -69,16 +69,16 @@ btowc \- .\"O it returns .\"O .BR WEOF . .BR btowc () -´Ø¿ô¤Ï¥·¥ó¥°¥ë¥Ð¥¤¥È \fIc\fP ¤«¤é¥³¥ó¥Ð¡¼¥È¤µ¤ì¤¿¥ï¥¤¥Éʸ»ú¤òÊÖ¤¹¡£ -\fIc\fP ¤¬ +関数はシングルバイト \fIc\fP からコンバートされたワイド文字を返す。 +\fIc\fP が .B EOF -¤â¤·¤¯¤ÏŤµ 1 ¤Î̵¸ú¤Ê¥Þ¥ë¥Á¥Ð¥¤¥È¥·¡¼¥±¥ó¥¹¤Î¾ì¹ç¡¢ +もしくは長さ 1 の無効なマルチバイトシーケンスの場合、 .BR btowc () -´Ø¿ô¤Ï +関数は .B WEOF -¤òÊÖ¤¹¡£ +を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O .SH NOTES .\"O The behavior of @@ -97,21 +97,21 @@ C99, POSIX.1-2001. .\"O or the thread-safe .\"O .BR mbrtowc (3) .\"O instead. -.SH Ãí°Õ +.SH 注意 .BR btowc () -¤Î¿¶¤ëÉñ¤¤¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の振る舞いは、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¡¼¤Ë°Í¸¤¹¤ë¡£ +カテゴリーに依存する。 .PP -¤³¤Î´Ø¿ô¤Ï»ÈÍѤµ¤ì¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£¾õÂÖ(state)¤ò»ý¤Ã¤¿¥¨¥ó¥³¡¼¥É¤Ë¤Ï»È¤¨¤º¡¢ -¥Þ¥ë¥Á¥Ð¥¤¥È¥·¡¼¥±¥ó¥¹¤È¤Ï°ã¤¤¡¢É¬¤º¤·¤â¥·¥ó¥°¥ë¥Ð¥¤¥È -¤ò¼è¤ê°·¤¨¤ë¤È¤Ï¸Â¤é¤Ê¤¤¡£Âå¤ï¤ê¤Ë +この関数は使用されるべきではない。状態(state)を持ったエンコードには使えず、 +マルチバイトシーケンスとは違い、必ずしもシングルバイト +を取り扱えるとは限らない。代わりに .BR mbtowc () -¤«¡¢¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ê +か、スレッドセーフな .BR mbrtowc () -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +を使用すること。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mbtowc (3), .BR mbrtowc (3), .BR wctob (3) diff --git a/draft/man3/btree.3 b/draft/man3/btree.3 index 079bdb01..30f1ef91 100644 --- a/draft/man3/btree.3 +++ b/draft/man3/btree.3 @@ -37,41 +37,41 @@ .\" by Shouichi Saito .\" Proofed Mon Aug 16 1999 by NAKANO Takeo .\" -.\"WORD: access method ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É -.\"WORD: prefix (comparison) Á°ÃÖÈæ³Ó +.\"WORD: access method アクセスメソッド +.\"WORD: prefix (comparison) 前置比較 .TH BTREE 3 1994-08-18 "" "Linux Programmer's Manual" .UC 7 -.SH ̾Á° +.SH 名前 .\"O btree \- btree database access method -btree \- btree ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤Î¥¢¥¯¥»¥¹¥á¥½¥Ã¥É -.SH ½ñ¼° +btree \- btree データベースへのアクセスメソッド +.SH 書式 .nf .ft B #include #include .ft R .fi -.SH ÀâÌÀ +.SH 説明 .\"O The routine .\"O .BR dbopen (3) .\"O is the library interface to database files. -¥ë¡¼¥Á¥ó +ルーチン .BR dbopen (3) -¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥é¥¤¥Ö¥é¥ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¢¤ë¡£ +はデータベースファイルに対するライブラリインターフェースである。 .\"O One of the supported file formats is btree files. .\"O The general description of the database access methods is in .\"O .BR dbopen (3), .\"O this manual page describes only the btree specific information. -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¤Ò¤È¤Ä¤Ë btree ¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¡£ -¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤Î¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ë´Ø¤¹¤ë°ìÈÌŪ¤Êµ­½Ò¤Ï +サポートされているファイルフォーマットのひとつに btree ファイルがある。 +データベースへのアクセスメソッドに関する一般的な記述は .BR dbopen (3) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Ï btree ÆÃÍ­¤Î¾ðÊó¤Ë¤Ä¤¤¤Æ¤Î¤ßµ­½Ò¤¹¤ë¡£ +に書かれている。 +このマニュアルページでは btree 特有の情報についてのみ記述する。 .PP .\"O The btree data structure is a sorted, balanced tree structure storing .\"O associated key/data pairs. -btree ¥Ç¡¼¥¿¹½Â¤¤Ç¤Ï¡¢¥½¡¼¥È¤µ¤ì¤¿¥Ð¥é¥ó¥¹¥Ä¥ê¡¼¹½Â¤¤Ë -¸ß¤¤¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥­¡¼/¥Ç¡¼¥¿ÂФò³ÊǼ¤·¤Æ¤¤¤ë¡£ +btree データ構造では、ソートされたバランスツリー構造に +互いに関連づけられたキー/データ対を格納している。 .PP .\"O The btree access method specific data structure provided to .\"O .BR dbopen (3) @@ -79,9 +79,9 @@ btree .\"O .I .\"O include file as follows: .BR dbopen (3) -¤ËÅϤµ¤ì¤ë btree ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤ËÆÃÍ­¤Î¥Ç¡¼¥¿¹½Â¤ÂΤϡ¢ +に渡される btree アクセスメソッドに特有のデータ構造体は、 .I -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Ç¼¡¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +インクルードファイルで次のように定義されている。 .sp .in +4n .nf @@ -100,12 +100,12 @@ typedef struct { .in .sp .\"O The elements of this structure are as follows: -¤³¤Î¹½Â¤ÂΤÎÍ×ÁǤò°Ê²¼¤Ë¼¨¤¹¡£ +この構造体の要素を以下に示す。 .TP .I flags .\"O The flag value is specified by ORing any of the following values: .I flags -¤ÎÃͤϰʲ¼¤ÎÃͤΤ¤¤º¤ì¤«¤«¡¢¤³¤ì¤é¤ÎÏÀÍýϤǻØÄꤵ¤ì¤ë¡£ +の値は以下の値のいずれかか、これらの論理和で指定される。 .RS .TP .B R_DUP @@ -118,13 +118,13 @@ typedef struct { .\"O the .\"O .B R_NOOVERWRITE .\"O flag is specified. -¥Ä¥ê¡¼¤ÎÃæ¤Ë¥­¡¼¤Î½ÅÊ£¤òµö¤¹¡£¤¹¤Ê¤ï¤Á¥Ä¥ê¡¼¤ÎÃæ¤ËÁÞÆþ¤µ¤ì¤è¤¦¤È¤·¤Æ¤¤¤ë -¥­¡¼¤¬´û¤Ë¸ºß¤·¤Æ¤¤¤Æ¤â¡¢¤½¤ÎÁÞÆþ¤òµö²Ä¤¹¤ë¡£¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï +ツリーの中にキーの重複を許す。すなわちツリーの中に挿入されようとしている +キーが既に存在していても、その挿入を許可する。デフォルトの動作は .BR dbopen (3) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë¡¢¿·¤·¤¤¥­¡¼¤¬ÁÞÆþ¤µ¤ì¤ë¤È°ìÃפ·¤¿¥­¡¼¤ò¾å½ñ¤­¤¹¤ë¡£ -¤¢¤ë¤¤¤Ï +に記述されているように、新しいキーが挿入されると一致したキーを上書きする。 +あるいは .B R_NOOVERWRITE -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤ÈÁÞÆþ¤Ë¼ºÇÔ¤¹¤ë¡£ +フラグが指定されていると挿入に失敗する。 .\"O The .\"O .B R_DUP .\"O flag is overridden by the @@ -134,11 +134,11 @@ typedef struct { .\"O flag is specified, attempts to insert duplicate keys into .\"O the tree will fail. .B R_DUP -¥Õ¥é¥°¤Ï +フラグは .B R_NOOVERWRITE -¥Õ¥é¥°¤Ë¤è¤Ã¤Æ¾å½ñ¤­¤µ¤ì¤ë¡£¤Ä¤Þ¤ê +フラグによって上書きされる。つまり .B R_NOOVERWRITE -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¥Ä¥ê¡¼¤ËÊ£À½¥­¡¼¤òÁÞÆþ¤·¤è¤¦¤È¤¹¤ë¤È¼ºÇÔ¤¹¤ë¡£ +フラグが指定された場合、ツリーに複製キーを挿入しようとすると失敗する。 .IP .\"O If the database contains duplicate keys, the order of retrieval of .\"O key/data pairs is undefined if the @@ -149,47 +149,47 @@ typedef struct { .\"O .B R_CURSOR .\"O flag set will always return the logical .\"O "first" of any group of duplicate keys. -¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¥­¡¼¤Î½ÅÊ£¤¬¤¢¤ë¤È¡¢ +データベースにキーの重複があると、 .I get -¥ë¡¼¥Á¥ó¤ò»È¤Ã¤¿¾ì¹ç¤Î¥­¡¼/¥Ç¡¼¥¿ÂФμèÆÀ½ç¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£¤½¤ì¤ËÂФ·¡¢ +ルーチンを使った場合のキー/データ対の取得順は未定義である。それに対し、 .B R_CURSOR -¥Õ¥é¥°¤ò¥»¥Ã¥È¤·¤Æ +フラグをセットして .I seq -¥ë¡¼¥Á¥ó¤ò»È¤¦¤È¡¢Ê£À½¥­¡¼¤Î¥°¥ë¡¼¥×¤ÎÃæ¤Î -ÏÀÍýŪ¤Ë¡ÖºÇ½é¡×¤Î¥­¡¼¤òɬ¤ºÊÖ¤·¤Æ¤¯¤ë¡£ +ルーチンを使うと、複製キーのグループの中の +論理的に「最初」のキーを必ず返してくる。 .RE .TP .I cachesize .\"O A suggested maximum size (in bytes) of the memory cache. -ÁÛÄꤵ¤ì¤ë¥á¥â¥ê¥­¥ã¥Ã¥·¥å¤ÎºÇÂ祵¥¤¥º (¥Ð¥¤¥Èñ°Ì)¡£ +想定されるメモリキャッシュの最大サイズ (バイト単位)。 .\"O This value is .\"O .I only .\"O advisory, and the access method will allocate more memory rather than fail. .\"O Since every search examines the root page of the tree, caching the most .\"O recently used pages substantially improves access time. -¤³¤ÎÃÍ¤Ï -.I ¤¢¤¯¤Þ¤Ç -»²¹Í¤Ç¤¢¤ê¡¢¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ï¤³¤ÎÃͤò±Û¤¨¤¿¥á¥â¥ê¤Î -³ä¤êÅö¤Æ¤ËÀ®¸ù¤¹¤ë¤³¤È¤â¤¢¤ë¡£ +この値は +.I あくまで +参考であり、アクセスメソッドはこの値を越えたメモリの +割り当てに成功することもある。 .\"O In addition, physical writes are delayed as long as possible, so a moderate .\"O cache can reduce the number of I/O operations significantly. -²Ã¤¨¤Æ¡¢ÊªÍýŪ¤Ê½ñ¤­¹þ¤ß¤Ï²Äǽ¤Ê¸Â¤êÃٱ䤵¤ì¤ë¤Î¤Ç¡¢ -¥­¥ã¥Ã¥·¥å¤ÎÂ礭¤µ¤òŬÅ٤ˤ·¤Æ¤ª¤±¤Ð I/O Áàºî¤Î²ó¿ô¤ò¤«¤Ê¤ê¸º¤é¤¹¤³¤È -¤¬¤Ç¤­¤ë¡£ +加えて、物理的な書き込みは可能な限り遅延されるので、 +キャッシュの大きさを適度にしておけば I/O 操作の回数をかなり減らすこと +ができる。 .\"O Obviously, using a cache increases (but only increases) the likelihood of .\"O corruption or lost data if the system crashes while a tree is being modified. -¤¢¤­¤é¤«¤Ë¥­¥ã¥Ã¥·¥å¤ò»È¤¦¤È¡¢¥Ä¥ê¡¼¤¬Êѹ¹¤µ¤ì¤Æ¤¤¤ëÅÓÃæ¤Ç -¥·¥¹¥Æ¥à¤¬¥¯¥é¥Ã¥·¥å¤·¤¿¾ì¹ç¤Î¥Ç¡¼¥¿Ç˲õ¤ä¥Ç¡¼¥¿¥í¥¹¥È¤Î²ÄǽÀ­¤Ï -Áý¤¨¤ë (¤Þ¤¢¤Ç¤â¤½¤ì¤À¤±¤Î¤³¤È)¡£ +あきらかにキャッシュを使うと、ツリーが変更されている途中で +システムがクラッシュした場合のデータ破壊やデータロストの可能性は +増える (まあでもそれだけのこと)。 .\"O If .I cachesize .\"O is 0 (no size is specified) a default cache is used. -¤¬ 0 (¥µ¥¤¥º¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤) ¤Î¾ì¹ç¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥­¥ã¥Ã¥·¥å¤¬»È¤ï¤ì¤ë¡£ +が 0 (サイズが指定されていない) の場合、デフォルトのキャッシュが使われる。 .TP .I maxkeypage .\"O The maximum number of keys which will be stored on any single page. .\"O Not currently implemented. -ñ°ì¥Ú¡¼¥¸¤ËǼ¤á¤é¤ì¤ëºÇÂ祭¡¼¿ô¤Ç¤¢¤ë¡£¸½ºß¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +単一ページに納められる最大キー数である。現在実装されていない。 .\" The maximum number of keys which will be stored on any single page. .\" Because of the way the btree data structure works, .\" .I maxkeypage @@ -205,64 +205,64 @@ typedef struct { .\"O pages, that is, if a key or data item is longer than the pagesize divided .\"O by the minkeypage value, it will be stored on overflow pages instead .\"O of in the page itself. -ñ°ì¥Ú¡¼¥¸¤ËǼ¤á¤é¤ì¤ëºÇ¾®¥­¡¼¿ô¤Ç¤¢¤ë¡£¤³¤ÎÃͤϡ¢¤É¤Î¥­¡¼¤ò -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¥Ú¡¼¥¸ -¤ËǼ¤á¤ë¤«·è¤á¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£¤¹¤Ê¤ï¤Á¥­¡¼¤Þ¤¿¤Ï¥Ç¡¼¥¿¤¬ -minkeypage ¤ÎÃͤÇʬ³ä¤µ¤ì¤¿¥Ú¡¼¥¸¥µ¥¤¥º¤è¤êÂ礭¤¤»þ¡¢¤½¤Î¥Ú¡¼¥¸¤ËǼ¤á -¤ëÂå¤ï¤ê¤Ë¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¥Ú¡¼¥¸¤ËǼ¤á¤ë¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ +単一ページに納められる最小キー数である。この値は、どのキーを +オーバーフローページ +に納めるか決めるのに使われる。すなわちキーまたはデータが +minkeypage の値で分割されたページサイズより大きい時、そのページに納め +る代わりにオーバーフローページに納めるということである。 .\"O If .I minkeypage .\"O is 0 (no minimum number of keys is specified) a value of 2 is used. -¤¬ 0 (¥­¡¼¤ÎºÇ¾®Ãͤ¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤) ¤Î¾ì¹ç¡¢ÃͤȤ·¤Æ 2 ¤¬»È¤ï¤ì¤ë¡£ +が 0 (キーの最小値が指定されていない) の場合、値として 2 が使われる。 .TP .I psize .\"O Page size is the size (in bytes) of the pages used for nodes in the tree. .\"O The minimum page size is 512 bytes and the maximum page size is 64K. -¥Ä¥ê¡¼¤ÎÃæ¤Î¥Î¡¼¥É¤Ë»È¤ï¤ì¤ë¥Ú¡¼¥¸¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì)¡£ -ºÇ¾®ÃÍ¤Ï 512 ¥Ð¥¤¥È¤Ç¡¢ºÇÂçÃÍ¤Ï 64K ¤Ç¤¢¤ë¡£ +ツリーの中のノードに使われるページサイズ (バイト単位)。 +最小値は 512 バイトで、最大値は 64K である。 .\"O If .I psize .\"O is 0 (no page size is specified) a page size is chosen based on the .\"O underlying file system I/O block size. -¤¬ 0 (¥Ú¡¼¥¸¥µ¥¤¥º¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤) ¤Î¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î I/O ¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤Ë´ð¤Å¤¤¤Æ·è¤á¤é¤ì¤ë¡£ +が 0 (ページサイズが指定されていない) の場合、 +ファイルシステムの I/O ブロックサイズに基づいて決められる。 .TP .I compare .\"O Compare is the key comparison function. .I compare -¤Ï¥­¡¼¤ÎÈæ³Ó´Ø¿ô¤Ç¤¢¤ë¡£ +はキーの比較関数である。 .\"O It must return an integer less than, equal to, or greater than zero if the .\"O first key argument is considered to be respectively less than, equal to, .\"O or greater than the second key argument. -ºÇ½é¤Î¥­¡¼°ú¿ô¤ËÂФ·¡¢ÆóÈÖÌܤΥ­¡¼°ú¿ô¤¬Â礭¤¤¾ì¹ç¤Ë¤ÏÀµ¤ÎÀ°¿ô¤ò¡¢ -Ʊ¤¸¾ì¹ç¤Ë¤Ï¥¼¥í¤ò¡¢¾®¤µ¤¤¾ì¹ç¤Ë¤ÏÉé¤ÎÀ°¿ô¤òÊÖ¤¹¡£ +最初のキー引数に対し、二番目のキー引数が大きい場合には正の整数を、 +同じ場合にはゼロを、小さい場合には負の整数を返す。 .\"O The same comparison function must be used on a given tree every time it .\"O is opened. -¥Ä¥ê¡¼¤ò³«¤¯ºÝ¤Ë¤Ï¡¢¾ï¤ËƱ¤¸Èæ³Ó´Ø¿ô¤¬»È¤ï¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ツリーを開く際には、常に同じ比較関数が使われなければならない。 .\"O If .I compare .\"O is NULL (no comparison function is specified), the keys are compared .\"O lexically, with shorter keys considered less than longer keys. -¤¬ NULL (Èæ³Ó´Ø¿ô¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤) ¤Î¾ì¹ç¡¢ -¼­½ñŪ¤ËÈæ³Ó¤µ¤ì¤ë¡£Ã»¤¤¥­¡¼¤ÏŤ¤¥­¡¼¤è¤ê¾®¤µ¤¤¤³¤È¤Ë¤Ê¤ë¡£ +が NULL (比較関数が指定されていない) の場合、 +辞書的に比較される。短いキーは長いキーより小さいことになる。 .TP .I prefix .\"O Prefix is the prefix comparison function. .I prefix -¤ÏÁ°ÃÖÈæ³Ó´Ø¿ô¤Ç¤¢¤ë¡£ +は前置比較関数である。 .\"O If specified, this routine must return the number of bytes of the second key .\"O argument which are necessary to determine that it is greater than the first .\"O key argument. -¤³¤Î¥ë¡¼¥Á¥ó¤Ï (»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï)¡¢ÆóÈÖÌܤΥ­¡¼°ú¿ô¤Î -¥Ð¥¤¥È¿ô¤òÊÖ¤µ¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£¤³¤ì¤ÏÆóÈÖÌܤΥ­¡¼°ú¿ô¤¬ -°ìÈÖÌܤΥ­¡¼°ú¿ô¤è¤êÂ礭¤¤¤«¤É¤¦¤«·è¤á¤ë¤Î¤ËɬÍפǤ¢¤ë¡£ -.\"NAKANO ¤Á¤ç¤Ã¤È°ÕÌ£¤ï¤«¤é¤ó... +このルーチンは (指定された場合には)、二番目のキー引数の +バイト数を返さなくてはならない。これは二番目のキー引数が +一番目のキー引数より大きいかどうか決めるのに必要である。 +.\"NAKANO ちょっと意味わからん... .\"O If the keys are equal, the key length should be returned. .\"O Note, the usefulness of this routine is very data-dependent, but, in some .\"O data sets can produce significantly reduced tree sizes and search times. -¥­¡¼¤¬Æ±¤¸¾ì¹ç¡¢¥­¡¼¤ÎŤµ¤¬Ê֤롣¤³¤Î¥ë¡¼¥Á¥ó¤¬Í­ÍѤ«¤É¤¦¤«¤Ï¡¢ -¥Ç¡¼¥¿¤Ë¶¯¤¯°Í¸¤¹¤ë¡£¤·¤«¤·¥Ç¡¼¥¿¥»¥Ã¥È¤Ë¤è¤Ã¤Æ¤Ï¡¢ÌÀ¤é¤«¤Ë¥Ä¥ê¡¼ -¤Î¥µ¥¤¥º¤È¸¡º÷»þ´Ö¤ò¸º¤é¤·¤Æ¤¯¤ì¤ë¡£ +キーが同じ場合、キーの長さが返る。このルーチンが有用かどうかは、 +データに強く依存する。しかしデータセットによっては、明らかにツリー +のサイズと検索時間を減らしてくれる。 .\"O If .\"O .I prefix .\"O is NULL (no prefix function is specified), @@ -270,15 +270,15 @@ minkeypage .\"O no comparison function is specified, a default lexical comparison routine .\"O is used. .I prefix -¤¬ NULL (prefix ´Ø¿ô¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤) ¤Ç¡¢ -.I ¤«¤Ä -Èæ³Ó´Ø¿ô¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¡¢¥Ç¥Õ¥©¥ë¥È¤Î¼­½ñÈæ³Ó¥ë¡¼¥Á¥ó¤¬»È¤ï¤ì¤ë¡£ +が NULL (prefix 関数が指定されていない) で、 +.I かつ +比較関数が指定されていないと、デフォルトの辞書比較ルーチンが使われる。 .\"O If .\"O .I prefix .\"O is NULL and a comparison routine is specified, no prefix comparison is .\"O done. .I prefix -¤¬ NULL ¤ÇÈæ³Ó´Ø¿ô¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢Á°ÃÖÈæ³Ó¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ +が NULL で比較関数が指定されている場合は、前置比較は行われない。 .TP .I lorder .\"O The byte order for integers in the stored database metadata. @@ -287,12 +287,12 @@ minkeypage .\"O If .\"O .I lorder .\"O is 0 (no order is specified) the current host order is used. -¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤ë¥á¥¿¥Ç¡¼¥¿¤ÎÀ°¿ôÃͤΥХ¤¥È¥ª¡¼¥À¡¼¡£ -¤³¤Î¿ô»ú¤Ï¡¢½ç½ø¤òÀ°¿ô¤Çɽ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -Î㤨¤Ð¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤Ê¤é¡¢¤³¤Î¿ôÃÍ¤Ï 4,321 ¤È¤Ê¤ë¡£ +データベースに格納されているメタデータの整数値のバイトオーダー。 +この数字は、順序を整数で表したものである。 +例えばビッグエンディアンなら、この数値は 4,321 となる。 .I lorder -¤¬ 0 (»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤) ¤Î¾ì¹ç¡¢¸½ºß¤Î¥Û¥¹¥È -¤Ç»È¤ï¤ì¤Æ¤¤¤ë¥Ð¥¤¥È¥ª¡¼¥À¡¼¤¬»È¤ï¤ì¤ë¡£ +が 0 (指定されていない) の場合、現在のホスト +で使われているバイトオーダーが使われる。 .PP .\"O If the file already exists (and the .\"O .B O_TRUNC @@ -304,36 +304,36 @@ minkeypage .\"O .I psize .\"O are ignored .\"O in favor of the values used when the tree was created. -¥Õ¥¡¥¤¥ë¤¬´û¤Ë¸ºß¤·¤Æ¤¤¤ë (¤Þ¤¿¤Ï +ファイルが既に存在している (または .B O_TRUCT -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤) ¤È¡¢ -°ú¤­¿ô +フラグが指定されていない) と、 +引き数 .IR flag , .IR lorder , .I psize -¤Ë»ØÄꤵ¤ì¤¿ÃͤÏ̵»ë¤µ¤ì¡¢ -¥Ä¥ê¡¼¤¬ºî¤é¤ì¤¿»þ¤Ë»È¤Ã¤¿Ãͤ¬ÍѤ¤¤é¤ì¤ë¡£ +に指定された値は無視され、 +ツリーが作られた時に使った値が用いられる。 .PP .\"O Forward sequential scans of a tree are from the least key to the greatest. -¥Ä¥ê¡¼¤ÎÁ°Êý½ç¸¡º÷¤Ï¡¢ºÇ¾®¥­¡¼¤«¤éºÇÂ祭¡¼¤Ë¸þ¤«¤Ã¤Æ¹Ô¤ï¤ì¤ë¡£ +ツリーの前方順検索は、最小キーから最大キーに向かって行われる。 .PP .\"O Space freed up by deleting key/data pairs from the tree is never reclaimed, .\"O although it is normally made available for reuse. .\"O This means that the btree storage structure is grow-only. .\"O The only solutions are to avoid excessive deletions, or to create a fresh .\"O tree periodically from a scan of an existing one. -¥Ä¥ê¡¼¤«¤é¥­¡¼/¥Ç¡¼¥¿ÂФ¬ºï½ü¤µ¤ì¤ë¤³¤È¤Ë¤è¤Ã¤Æ¤Ç¤­¤¿¥¹¥Ú¡¼¥¹¤Ï¡¢ -Ä̾ïºÆÍøÍѤǤ­¤ë·Á¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¬ºÆÍøÍѤµ¤ì¤ë¤³¤È¤Ï̵¤¤¡£ -¤Ä¤Þ¤ê brtee µ­²±¹½Â¤¤ÏÈîÂ礹¤ë°ìÊý¤Ç¤¢¤ë¡£ -Âкö¤Ï²áÅ٤κï½ü¤òÈò¤±¤ë¤«¡¢ -¸ºß¤¹¤ë¥Ä¥ê¡¼¤òÄ´¤Ù¤ÆÄê´üŪ¤Ë¿·¤·¤¤¥Ä¥ê¡¼¤òºî¤ë¤«¡¢¤À¤±¤Ç¤¢¤ë¡£ +ツリーからキー/データ対が削除されることによってできたスペースは、 +通常再利用できる形になっているが再利用されることは無い。 +つまり brtee 記憶構造は肥大する一方である。 +対策は過度の削除を避けるか、 +存在するツリーを調べて定期的に新しいツリーを作るか、だけである。 .PP .\"O Searches, insertions, and deletions in a btree will all complete in .\"O O lg base N where base is the average fill factor. .\"O Often, inserting ordered data into btrees results in a low fill factor. .\"O This implementation has been modified to make ordered insertion the best .\"O case, resulting in a much better than normal page fill factor. -.SH ¥¨¥é¡¼ +.SH エラー .\"O The .\"O .I btree .\"O access method routines may fail and set @@ -341,17 +341,17 @@ minkeypage .\"O for any of the errors specified for the library routine .\"O .BR dbopen (3). .I btree -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¥ë¡¼¥Á¥ó¤Ï¼ºÇÔ¤¹¤ë¤È¡¢¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó +アクセスメソッドルーチンは失敗すると、ライブラリルーチン .BR dbopen (3) -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Î¤¤¤º¤ì¤«¤ò +で定義されているエラーのいずれかを .I errno -¤È¤·¤ÆÊÖ¤¹¡£ +として返す。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Only big and little endian byte order is supported. -¥Ð¥¤¥È¥ª¡¼¥À¡¼¤È¤·¤Æ¤Ï¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤È¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¤Î¤ß¤¬ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +バイトオーダーとしてはビッグエンディアンとリトルエンディアンのみが +サポートされている。 +.SH 関連項目 .BR dbopen (3), .BR hash (3), .BR mpool (3), diff --git a/draft/man3/byteorder.3 b/draft/man3/byteorder.3 index 11997590..c1548c26 100644 --- a/draft/man3/byteorder.3 +++ b/draft/man3/byteorder.3 @@ -33,12 +33,12 @@ .\" .TH BYTEORDER 3 2009-01-15 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O htonl, htons, ntohl, ntohs \- convert values between host and network .\"O byte order -htonl, htons, ntohl, ntohs \- ¥Û¥¹¥È¥Ð¥¤¥È¥ª¡¼¥À¡¼¤È¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Î´Ö¤ÇÃͤòÊÑ´¹¤¹¤ë +htonl, htons, ntohl, ntohs \- ホストバイトオーダーとネットワークバイトオーダーの間で値を変換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -51,60 +51,60 @@ htonl, htons, ntohl, ntohs \- .BI "uint16_t ntohs(uint16_t " netshort ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR htonl () .\"O function converts the unsigned integer \fIhostlong\fP .\"O from host byte order to network byte order. .BR htonl () -´Ø¿ô¤Ï unsigned integer \fIhostlong\fP ¤ò -¥Û¥¹¥È¥Ð¥¤¥È¥ª¡¼¥À¡¼¤«¤é¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤ËÊÑ´¹¤¹¤ë¡£ +関数は unsigned integer \fIhostlong\fP を +ホストバイトオーダーからネットワークバイトオーダーに変換する。 .PP .\"O The .\"O .BR htons () .\"O function converts the unsigned short integer \fIhostshort\fP .\"O from host byte order to network byte order. .BR htons () -´Ø¿ô¤Ï unsigned short integer \fIhostshort\fP ¤ò -¥Û¥¹¥È¥Ð¥¤¥È¥ª¡¼¥À¡¼¤«¤é¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤ËÊÑ´¹¤¹¤ë¡£ +関数は unsigned short integer \fIhostshort\fP を +ホストバイトオーダーからネットワークバイトオーダーに変換する。 .PP .\"O The .\"O .BR ntohl () .\"O function converts the unsigned integer \fInetlong\fP .\"O from network byte order to host byte order. .BR ntohl () -´Ø¿ô¤Ï unsigned integer \fInetlong\fP ¤ò -¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤«¤é¥Û¥¹¥È¥Ð¥¤¥È¥ª¡¼¥À¡¼¤ËÊÑ´¹¤¹¤ë¡£ +関数は unsigned integer \fInetlong\fP を +ネットワークバイトオーダーからホストバイトオーダーに変換する。 .PP .\"O The .\"O .BR ntohs () .\"O function converts the unsigned short integer \fInetshort\fP .\"O from network byte order to host byte order. .BR ntohs () -´Ø¿ô¤Ï unsigned short integer \fInetshort\fP ¤ò -¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤«¤é¥Û¥¹¥È¥Ð¥¤¥È¥ª¡¼¥À¡¼¤ËÊÑ´¹¤¹¤ë¡£ +関数は unsigned short integer \fInetshort\fP を +ネットワークバイトオーダーからホストバイトオーダーに変換する。 .PP .\"O On the i386 the host byte order is Least Significant Byte first, .\"O whereas the network byte order, as used on the Internet, is Most .\"O Significant Byte first. -i80x86 ¤Î¥Û¥¹¥È¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Ç¤ÏºÇ²¼°Ì¥Ð¥¤¥È¤¬¼ã¤¤¥¢¥É¥ì¥¹¤ËÇÛÃÖ¤µ¤ì¤ë¤¬¡¢ -¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤ÇÍѤ¤¤é¤ì¤ë¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Ç¤ÏºÇ¾å°Ì¥Ð¥¤¥È -¤¬Àè¤ËÇÛÃÖ¤µ¤ì¤ë¡£ +i80x86 のホストバイトオーダーでは最下位バイトが若いアドレスに配置されるが、 +インターネットで用いられるネットワークバイトオーダーでは最上位バイト +が先に配置される。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O Some systems require the inclusion of .\"O .I .\"O instead of .\"O .IR . -¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +いくつかのシステムでは、 .I -¤ÎÂå¤ï¤ê¤Ë +の代わりに .I -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ëɬÍפ¬¤¢¤ë¡£ +をインクルードする必要がある。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR endian (3), .BR gethostbyname (3), .BR getservent (3) diff --git a/draft/man3/bzero.3 b/draft/man3/bzero.3 index 6a2aef24..8bebf306 100644 --- a/draft/man3/bzero.3 +++ b/draft/man3/bzero.3 @@ -37,17 +37,17 @@ .TH BZERO 3 2008-08-06 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O bzero \- write zero-valued bytes -.SH ̾Á° -bzero \- ÃÍ 0 ¤Î¥Ð¥¤¥È¤ÇËä¤á¤ë +.SH 名前 +bzero \- 値 0 のバイトで埋める .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "void bzero(void *" s ", size_t " n ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR bzero () .\"O function sets the first @@ -56,33 +56,33 @@ bzero \- .\"O .I s .\"O to zero (bytes containing \(aq\\0\(aq). .BR bzero () -´Ø¿ô¤Ï -¥Ð¥¤¥ÈÎó +関数は +バイト列 .I s -¤«¤é»Ï¤Þ¤ëÎΰè¤ÎÀèƬ +から始まる領域の先頭 .I n -¥Ð¥¤¥È¤ò -¿ôÃÍ¥¼¥í (Ãͤ¬ \(aq\\0\(aq ¤Î¥Ð¥¤¥È) ¤ÇËä¤á¤ë¡£ +バイトを +数値ゼロ (値が \(aq\\0\(aq のバイト) で埋める。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O None. -¤Ê¤·¡£ +なし。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.3BSD. .\"O This function is deprecated (marked as LEGACY in POSIX.1-2001): use .\"O .BR memset (3) .\"O in new programs. -¤³¤Î´Ø¿ô¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë (POSIX.1-2001 ¤Ç¤Ï -²áµî¤Î̾»Ä (LEGACY) ¤È¤µ¤ì¤Æ¤¤¤ë)¡£¿·¤·¤¤¥×¥í¥°¥é¥à¤Ç¤Ï +この関数は廃止予定である (POSIX.1-2001 では +過去の名残 (LEGACY) とされている)。新しいプログラムでは .BR memset (3) -¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +を使用すべきである。 .\"O POSIX.1-2008 removes the specification of .\"O .BR bzero (). -POSIX.1-2008 ¤Ç¤Ï +POSIX.1-2008 では .BR bzero () -¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ +の仕様が削除されている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR memset (3), .BR swab (3) diff --git a/draft/man3/cabs.3 b/draft/man3/cabs.3 index 3cfeba4b..e0c31153 100644 --- a/draft/man3/cabs.3 +++ b/draft/man3/cabs.3 @@ -6,16 +6,16 @@ .\" Translated Wed Jul 23 05:04:09 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: complex number Ê£ÁÇ¿ô -.\"WORD: alias ¥¨¥¤¥ê¥¢¥¹ +.\"WORD: complex number 複素数 +.\"WORD: alias エイリアス .\" .TH CABS 3 2008-08-06 "" "Linux Programmer's Manual" .\"O .SH NAME .\"O cabs, cabsf, cabsl \- absolute value of a complex number -.SH ̾Á° -cabs, cabsf, cabsl \- Ê£ÁÇ¿ô¤ÎÀäÂÐÃÍ +.SH 名前 +cabs, cabsf, cabsl \- 複素数の絶対値 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double cabs(double complex " z ); @@ -25,38 +25,38 @@ cabs, cabsf, cabsl \- Ê£ .BI "long double cabsl(long double complex " z ); .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR cabs () .\"O function returns the absolute value of the complex number .\"O .IR z . .\"O The result is a real number. .BR cabs () -´Ø¿ô¤ÏÊ£ÁÇ¿ô +関数は複素数 .I z -¤ÎÀäÂÐÃͤòÊÖ¤¹¡£ -·ë²Ì¤Ï¼Â¿ô¤Ç¤¢¤ë¡£ +の絶対値を返す。 +結果は実数である。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH È÷¹Í +.SH 備考 .\"O The function is actually an alias for .\"O .I "hypot(a,\ b)" .\"O (or, equivalently, .\"O .IR "sqrt(a*a\ +\ b*b)" ). -¼ÂºÝ¤Ë¤Ï¡¢¤³¤Î´Ø¿ô¤Ï +実際には、この関数は .I "hypot(a,\ b)" .RI ( "sqrt(a*a\ +\ b*b)" -¤ÈÅù²Á) ¤Ø¤Î¥¨¥¤¥ê¥¢¥¹¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +と等価) へのエイリアスになっている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR abs (3), .BR cimag (3), .BR hypot (3), diff --git a/draft/man3/cacos.3 b/draft/man3/cacos.3 index 9916e59a..9c4c00e5 100644 --- a/draft/man3/cacos.3 +++ b/draft/man3/cacos.3 @@ -7,19 +7,19 @@ .\" Translated Wed Jul 23 05:24:21 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: arc sine µÕÀµ¸¹ -.\"WORD: arc cosine µÕ;¸¹ -.\"WORD: arc tangent µÕÀµÀÜ -.\"WORD: real part ¼ÂÉô -.\"WORD: imaginary part µõÉô +.\"WORD: arc sine 逆正弦 +.\"WORD: arc cosine 逆余弦 +.\"WORD: arc tangent 逆正接 +.\"WORD: real part 実部 +.\"WORD: imaginary part 虚部 .\" .TH CACOS 3 2011-09-15 "" "Linux Programmer's Manual" .\"O .SH NAME .\"O cacos, cacosf, cacosl \- complex arc cosine -.SH ̾Á° -cacos, cacosf, cacosl \- Ê£ÁÇ¿ô¤ÎµÕ;¸¹ (arc cosine) +.SH 名前 +cacos, cacosf, cacosl \- 複素数の逆余弦 (arc cosine) .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double complex cacos(double complex " z ); @@ -29,9 +29,9 @@ cacos, cacosf, cacosl \- Ê£ .BI "long double complex cacosl(long double complex " z ); .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR cacos () .\"O function calculates the complex arc cosine of @@ -41,28 +41,28 @@ cacos, cacosf, cacosl \- Ê£ .\"O .I y .\"O is chosen in the interval [0,pi]. .BR cacos () -´Ø¿ô¤ÏÊ£ÁÇ¿ô +関数は複素数 .I z -¤ÎµÕ;¸¹ (arc cosine) ¤ò·×»»¤¹¤ë¡£ -\fIy\ =\ cacos(z)\fP ¤Ê¤é¤Ð¡¢ \fIz\ =\ ccos(y)\fP ¤¬À®Î©¤¹¤ë¡£ +の逆余弦 (arc cosine) を計算する。 +\fIy\ =\ cacos(z)\fP ならば、 \fIz\ =\ ccos(y)\fP が成立する。 .I y -¤Î¼ÂÉô¤ÎÃͤ϶è´Ö [0,pi] ¤«¤éÁªÂò¤µ¤ì¤ë¡£ +の実部の値は区間 [0,pi] から選択される。 .LP .\"O One has: -¼¡¤Î´Ø·¸¤¬À®Î©¤¹¤ë: +次の関係が成立する: .nf cacos(z) = \-i * clog(z + i * csqrt(1 \- z * z)) .fi .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH EXAMPLE -.SH Îã +.SH 例 .nf /* Link with "\-lm" */ @@ -96,7 +96,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ccos (3), .BR clog (3), .BR complex (7) diff --git a/draft/man3/cacosh.3 b/draft/man3/cacosh.3 index 435ee178..d96bdced 100644 --- a/draft/man3/cacosh.3 +++ b/draft/man3/cacosh.3 @@ -7,20 +7,20 @@ .\" Translated Thu Jul 24 00:26:52 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: hyperbolic ÁжÊ(Àþ¤Î) -.\"WORD: arc sine µÕÀµ¸¹ -.\"WORD: arc cosine µÕ;¸¹ -.\"WORD: arc tangent µÕÀµÀÜ -.\"WORD: real part ¼ÂÉô -.\"WORD: imaginary part µõÉô +.\"WORD: hyperbolic 双曲(線の) +.\"WORD: arc sine 逆正弦 +.\"WORD: arc cosine 逆余弦 +.\"WORD: arc tangent 逆正接 +.\"WORD: real part 実部 +.\"WORD: imaginary part 虚部 .\" .TH CACOSH 3 2011-09-15 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O cacosh, cacoshf, cacoshl \- complex arc hyperbolic cosine -cacosh, cacoshf, cacoshl \- Ê£ÁÇ¿ô¤ÎµÕÁжÊÀþ;¸¹ (arc hyperbolic cosine) +cacosh, cacoshf, cacoshl \- 複素数の逆双曲線余弦 (arc hyperbolic cosine) .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double complex cacosh(double complex " z ); @@ -30,9 +30,9 @@ cacosh, cacoshf, cacoshl \- Ê£ .BI "long double complex cacoshl(long double complex " z ); .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR cacosh () .\"O function calculates the complex arc hyperpolic cosine of @@ -45,31 +45,31 @@ cacosh, cacoshf, cacoshl \- Ê£ .\"O .I y .\"O is chosen nonnegative. .BR cacosh () -´Ø¿ô¤ÏÊ£ÁÇ¿ô +関数は複素数 .I z -¤ÎµÕÁжÊÀþ;¸¹ (arc hyperbolic cosine) ¤ò·×»»¤¹¤ë¡£ -\fIy\ =\ cacosh(z)\fP ¤Ê¤é¤Ð¡¢ -\fIz\ =\ ccosh(y)\fP ¤¬À®Î©¤¹¤ë¡£ +の逆双曲線余弦 (arc hyperbolic cosine) を計算する。 +\fIy\ =\ cacosh(z)\fP ならば、 +\fIz\ =\ ccosh(y)\fP が成立する。 .I y -¤ÎµõÉô¤ÎÃͤ϶è´Ö [\-pi,pi] ¤«¤éÁªÂò¤µ¤ì¡¢ +の虚部の値は区間 [\-pi,pi] から選択され、 .I y -¤Î¼ÂÉô¤ÎÃͤÏÈóÉé¤ÎÃͤ¬ÁªÂò¤µ¤ì¤ë¡£ +の実部の値は非負の値が選択される。 .LP .\"O One has: -¼¡¤Î´Ø·¸¤¬À®Î©¤¹¤ë: +次の関係が成立する: .nf cacosh(z) = 2 * clog(csqrt((z + 1) / 2) + csqrt((z \- 1) / 2)) .fi .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH EXAMPLE -.SH Îã +.SH 例 .nf /* Link with "\-lm" */ @@ -100,7 +100,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR acosh (3), .BR cabs (3), .BR ccosh (3), diff --git a/draft/man3/canonicalize_file_name.3 b/draft/man3/canonicalize_file_name.3 index 36c35580..6515889c 100644 --- a/draft/man3/canonicalize_file_name.3 +++ b/draft/man3/canonicalize_file_name.3 @@ -7,31 +7,31 @@ .\" .TH CANONICALIZE_FILE_NAME 3 2005-07-14 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O canonicalize_file_name \- return the canonicalized filename -canonicalize_file_name \- Àµµ¬²½¤µ¤ì¤¿¥Õ¥¡¥¤¥ë̾¤òÊÖ¤¹ +canonicalize_file_name \- 正規化されたファイル名を返す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "char *canonicalize_file_name(const char *" path ");" .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The call .\"O .I canonicalize_file_name(path) .\"O is equivalent to the call .\"O .IR "realpath(path,\ NULL)" . .I canonicalize_file_name(path) -¤Ï +は .I "realpath(path,\ NULL)" -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The function is a GNU extension. -¤³¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ +この関数は GNU による拡張である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR realpath (3) diff --git a/draft/man3/carg.3 b/draft/man3/carg.3 index 21afa575..e7001d11 100644 --- a/draft/man3/carg.3 +++ b/draft/man3/carg.3 @@ -6,18 +6,18 @@ .\" Translated 2003-07-24, Akihiro MOTOKI .\" Updated 2005-10-02, Akihiro MOTOKI .\" -.\"WORD: argument (¶ËºÂɸ¤Î)ÊÐ³Ñ -.\"WORD: coordinates ºÂɸ -.\"WORD: rectangular coordinates ľ¸òºÂɸ -.\"WORD: polar coordinates ¶ËºÂɸ +.\"WORD: argument (極座標の)偏角 +.\"WORD: coordinates 座標 +.\"WORD: rectangular coordinates 直交座標 +.\"WORD: polar coordinates 極座標 .\" .TH CARG 3 2008-08-06 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O carg, cargf, cargl \- calculate the complex argument -carg, cargf, cargl \- Ê£ÁÇ¿ô¤ÎÊгѤò·×»»¤¹¤ë +carg, cargf, cargl \- 複素数の偏角を計算する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double carg(double complex " z ");" @@ -27,9 +27,9 @@ carg, cargf, cargl \- Ê£ .BI "long double cargl(long double complex " z ");" .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O A complex number can be described by two real coordinates. .\"O One may use rectangular coordinates and gets .\"O @@ -38,14 +38,14 @@ carg, cargf, cargl \- Ê£ .\"O .fi .\"O .\"O where \fIx\ =\ creal(z)\fP and \fIy\ =\ cimag(z)\fP. -Ê£ÁÇ¿ô¤Ï 2¤Ä¤Î¼Â¿ôÃͤ«¤é¤Ê¤ëºÂɸ¤Çɽ¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ -ľ¸òºÂɸ¤ò»È¤¦¤È¡¢°Ê²¼¤Î¤è¤¦¤Ë½ñ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£ +複素数は 2つの実数値からなる座標で表すことができる。 +直交座標を使うと、以下のように書くことができる。 .nf z = x + I * y .fi -¤³¤³¤Ç¡¢\fIx\ =\ creal(z)\fP, \fIy\ =\ cimag(z)\fP ¤Ç¤¢¤ë¡£ +ここで、\fIx\ =\ creal(z)\fP, \fIy\ =\ cimag(z)\fP である。 .LP .\"O Or one may use polar coordinates and gets .\"O .nf @@ -57,36 +57,36 @@ carg, cargf, cargl \- Ê£ .\"O is the "radius", the "modulus", the absolute value of \fIz\fP, and .\"O \fIa\ =\ carg(z)\fP .\"O is the "phase angle", the argument of \fIz\fP. -¤Þ¤¿¡¢¶ËºÂɸ¤ò»È¤¦¤È¡¢°Ê²¼¤Î¤è¤¦¤Ë½ñ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£ +また、極座標を使うと、以下のように書くことができる。 .nf z = r * cexp(I * a) .fi -¤³¤³¤Ç¡¢ -\fIr\ =\ cabs(z)\fP ¤Ï¡ÖȾ·Â¡×¡¢¡Ö·¸¿ô¡×¤Ç¤¢¤ê¡¢ -\fIz\fP ¤ÎÀäÂÐÃͤǤ¢¤ë¡£ -\fIa\ =\ carg(z)\fP ¤Ï¡Ö°ÌÁê³Ñ¡×¤Ç¤¢¤ê¡¢ -\fIz\fP ¤ÎÊгѤǤ¢¤ë¡£ +ここで、 +\fIr\ =\ cabs(z)\fP は「半径」、「係数」であり、 +\fIz\fP の絶対値である。 +\fIa\ =\ carg(z)\fP は「位相角」であり、 +\fIz\fP の偏角である。 .LP .\"O One has: -¼¡¤Î´Ø·¸¤¬À°Íý¤¹¤ë: +次の関係が整理する: .nf tan(carg(z)) = cimag(z) / creal(z) .fi .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The return value is the range of [\-pi,pi]. -ÊÖ¤êÃÍ¤Ï [\-pi,pi] ¤ÎÈϰϤǤ¢¤ë¡£ +返り値は [\-pi,pi] の範囲である。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR complex (7) diff --git a/draft/man3/casin.3 b/draft/man3/casin.3 index 7e1ecbdd..63147799 100644 --- a/draft/man3/casin.3 +++ b/draft/man3/casin.3 @@ -6,19 +6,19 @@ .\" Translated Thu Jul 24 00:07:40 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: arc sine µÕÀµ¸¹ -.\"WORD: arc cosine µÕ;¸¹ -.\"WORD: arc tangent µÕÀµÀÜ -.\"WORD: real part ¼ÂÉô -.\"WORD: imaginary part µõÉô +.\"WORD: arc sine 逆正弦 +.\"WORD: arc cosine 逆余弦 +.\"WORD: arc tangent 逆正接 +.\"WORD: real part 実部 +.\"WORD: imaginary part 虚部 .\" .TH CASIN 3 2008-08-06 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O casin, casinf, casinl \- complex arc sine -casin, casinf, casinl \- Ê£ÁÇ¿ô¤ÎµÕÀµ¸¹ (arc sine) +casin, casinf, casinl \- 複素数の逆正弦 (arc sine) .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double complex casin(double complex " z ); @@ -28,9 +28,9 @@ casin, casinf, casinl \- Ê£ .BI "long double complex casinl(long double complex " z ); .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR casin () .\"O function calculates the complex arc sine of @@ -40,28 +40,28 @@ casin, casinf, casinl \- Ê£ .\"O .I y .\"O is chosen in the interval [\-pi/2,pi/2]. .BR casin () -´Ø¿ô¤ÏÊ£ÁÇ¿ô +関数は複素数 .I z -¤ÎµÕÀµ¸¹ (arg sine) ¤ò·×»»¤¹¤ë¡£ -\fIy\ =\ casin(z)\fP ¤Ê¤é¤Ð¡¢ \fIz\ =\ csin(y)\fP ¤¬À®Î©¤¹¤ë¡£ +の逆正弦 (arg sine) を計算する。 +\fIy\ =\ casin(z)\fP ならば、 \fIz\ =\ csin(y)\fP が成立する。 .I y -¤Î¼ÂÉô¤ÎÃͤ϶è´Ö [\-pi/2,pi/2] ¤«¤éÁªÂò¤µ¤ì¤ë¡£ +の実部の値は区間 [\-pi/2,pi/2] から選択される。 .LP .\"O One has: -¼¡¤Î´Ø·¸¤¬À®Î©¤¹¤ë: +次の関係が成立する: .nf casin(z) = \-i clog(iz + csqrt(1 \- z * z)) .fi .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR clog (3), .BR csin (3), .BR complex (7) diff --git a/draft/man3/casinh.3 b/draft/man3/casinh.3 index 17048da2..95e2b6df 100644 --- a/draft/man3/casinh.3 +++ b/draft/man3/casinh.3 @@ -6,20 +6,20 @@ .\" Translated Thu Jul 24 00:41:13 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: hyperbolic ÁжÊ(Àþ¤Î) -.\"WORD: arc sine µÕÀµ¸¹ -.\"WORD: arc cosine µÕ;¸¹ -.\"WORD: arc tangent µÕÀµÀÜ -.\"WORD: real part ¼ÂÉô -.\"WORD: imaginary part µõÉô +.\"WORD: hyperbolic 双曲(線の) +.\"WORD: arc sine 逆正弦 +.\"WORD: arc cosine 逆余弦 +.\"WORD: arc tangent 逆正接 +.\"WORD: real part 実部 +.\"WORD: imaginary part 虚部 .\" .TH CASINH 3 2008-08-06 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O casinh, casinhf, casinhl \- complex arc sine hyperbolic -casinh, casinhf, casinhl \- Ê£ÁÇ¿ô¤ÎµÕÁжÊÀþÀµ¸¹ (arc sine hyperbolic) +casinh, casinhf, casinhl \- 複素数の逆双曲線正弦 (arc sine hyperbolic) .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double complex casinh(double complex " z ); @@ -29,9 +29,9 @@ casinh, casinhf, casinhl \- Ê£ .BI "long double complex casinhl(long double complex " z ); .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR casinh () .\"O function calculates the complex arc hyperbolic sine of @@ -41,28 +41,28 @@ casinh, casinhf, casinhl \- Ê£ .\"O .I y .\"O is chosen in the interval [\-pi/2,pi/2]. .BR casinh () -´Ø¿ô¤ÏÊ£ÁÇ¿ô +関数は複素数 .I z -¤ÎµÕÁжÊÀþÀµ¸¹ (arc hyperbolic sine) ¤ò·×»»¤¹¤ë¡£ -\fIy\ =\ casinh(z)\fP ¤Ê¤é¤Ð¡¢ \fIz\ =\ csinh(y)\fP ¤¬À®Î©¤¹¤ë¡£ +の逆双曲線正弦 (arc hyperbolic sine) を計算する。 +\fIy\ =\ casinh(z)\fP ならば、 \fIz\ =\ csinh(y)\fP が成立する。 .I y -¤ÎµõÉô¤ÎÃͤ϶è´Ö [\-pi/2,pi/2] ¤«¤éÁªÂò¤µ¤ì¤ë¡£ +の虚部の値は区間 [\-pi/2,pi/2] から選択される。 .LP .\"O One has: -¼¡¤Î´Ø·¸¤¬À®Î©¤¹¤ë: +次の関係が成立する: .nf casinh(z) = clog(z + csqrt(z * z + 1)) .fi .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR asinh (3), .BR cabs (3), .BR cimag (3), diff --git a/draft/man3/catan.3 b/draft/man3/catan.3 index 44cb842a..266eb2b6 100644 --- a/draft/man3/catan.3 +++ b/draft/man3/catan.3 @@ -7,19 +7,19 @@ .\" Translated Thu Jul 24 00:22:25 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: arc sine µÕÀµ¸¹ -.\"WORD: arc cosine µÕ;¸¹ -.\"WORD: arc tangent µÕÀµÀÜ -.\"WORD: real part ¼ÂÉô -.\"WORD: imaginary part µõÉô +.\"WORD: arc sine 逆正弦 +.\"WORD: arc cosine 逆余弦 +.\"WORD: arc tangent 逆正接 +.\"WORD: real part 実部 +.\"WORD: imaginary part 虚部 .\" .TH CATAN 3 2011-09-15 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O catan, catanf, catanl \- complex arc tangents -catan, catanf, catanl \- Ê£ÁÇ¿ô¤ÎµÕÀµÀÜ (arc tangent) +catan, catanf, catanl \- 複素数の逆正接 (arc tangent) .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double complex catan(double complex " z ); @@ -29,9 +29,9 @@ catan, catanf, catanl \- Ê£ .BI "long double complex catanl(long double complex " z ); .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR catan () .\"O function calculates the complex arc tangent of @@ -39,28 +39,28 @@ catan, catanf, catanl \- Ê£ .\"O If \fIy\ =\ catan(z)\fP, then \fIz\ =\ ctan(y)\fP. .\"O The real part of y is chosen in the interval [\-pi/2,pi/2]. .BR catan () -´Ø¿ô¤ÏÊ£ÁÇ¿ô +関数は複素数 .I z -¤ÎµÕÀµÀÜ (arc tangent) ¤ò·×»»¤¹¤ë¡£ -\fIy = catan(z)\fP ¤Ê¤é¤Ð¡¢ \fIz = ctan(y)\fP ¤¬À®Î©¤¹¤ë¡£ +の逆正接 (arc tangent) を計算する。 +\fIy = catan(z)\fP ならば、 \fIz = ctan(y)\fP が成立する。 .I y -¤Î¼ÂÉô¤ÎÃͤ϶è´Ö [\-pi/2,pi/2] ¤«¤éÁªÂò¤µ¤ì¤ë¡£ +の実部の値は区間 [\-pi/2,pi/2] から選択される。 .LP .\"O One has: -¼¡¤Î´Ø·¸¤¬À®Î©¤¹¤ë: +次の関係が成立する: .nf catan(z) = (clog(1 + i * z) \- clog(1 \- i * z)) / (2 * i) .fi .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH EXAMPLE -.SH Îã +.SH 例 .nf /* Link with "\-lm" */ @@ -92,7 +92,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ccos (3), .BR clog (3), .BR ctan (3), diff --git a/draft/man3/catanh.3 b/draft/man3/catanh.3 index 3be8c74e..2548c5df 100644 --- a/draft/man3/catanh.3 +++ b/draft/man3/catanh.3 @@ -7,20 +7,20 @@ .\" Translated Thu Jul 24 00:43:35 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: hyperbolic ÁжÊ(Àþ¤Î) -.\"WORD: arc sine µÕÀµ¸¹ -.\"WORD: arc cosine µÕ;¸¹ -.\"WORD: arc tangent µÕÀµÀÜ -.\"WORD: real part ¼ÂÉô -.\"WORD: imaginary part µõÉô +.\"WORD: hyperbolic 双曲(線の) +.\"WORD: arc sine 逆正弦 +.\"WORD: arc cosine 逆余弦 +.\"WORD: arc tangent 逆正接 +.\"WORD: real part 実部 +.\"WORD: imaginary part 虚部 .\" .TH CATANH 3 2011-09-15 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O catanh, catanhf, catanhl \- complex arc tangents hyperbolic -catanh, catanhf, catanhl \- Ê£ÁÇ¿ô¤ÎµÕÁжÊÀþÀµÀÜ (arc tangents hyperbolic) +catanh, catanhf, catanhl \- 複素数の逆双曲線正接 (arc tangents hyperbolic) .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double complex catanh(double complex " z ); @@ -30,9 +30,9 @@ catanh, catanhf, catanhl \- Ê£ .BI "long double complex catanhl(long double complex " z ); .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR catanh () .\"O function calculates the complex arc hyperbolic tangent of @@ -42,28 +42,28 @@ catanh, catanhf, catanhl \- Ê£ .\"O .I y .\"O is chosen in the interval [\-pi/2,pi/2]. .BR catanh () -´Ø¿ô¤ÏÊ£ÁÇ¿ô +関数は複素数 .I z -¤ÎµÕÁжÊÀþÀµ¸¹ (arc hyperbolic tangent) ¤ò·×»»¤¹¤ë¡£ -\fIy = catanh(z)\fP ¤Ê¤é¤Ð¡¢ \fIz = ctanh(y)\fP ¤¬À®Î©¤¹¤ë¡£ +の逆双曲線正弦 (arc hyperbolic tangent) を計算する。 +\fIy = catanh(z)\fP ならば、 \fIz = ctanh(y)\fP が成立する。 .I y -¤ÎµõÉô¤ÎÃͤ϶è´Ö [\-pi/2,pi/2] ¤«¤éÁªÂò¤µ¤ì¤ë¡£ +の虚部の値は区間 [\-pi/2,pi/2] から選択される。 .LP .\"O One has: -¼¡¤Î´Ø·¸¤¬À®Î©¤¹¤ë: +次の関係が成立する: .nf catanh(z) = 0.5 * (clog(1 + z) \- clog(1 \- z)) .fi .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH EXAMPLE -.SH Îã +.SH 例 .nf /* Link with "\-lm" */ @@ -94,7 +94,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR atanh (3), .BR cabs (3), .BR cimag (3), diff --git a/draft/man3/catgets.3 b/draft/man3/catgets.3 index fb8063c0..fa0c27ac 100644 --- a/draft/man3/catgets.3 +++ b/draft/man3/catgets.3 @@ -32,10 +32,10 @@ .TH CATGETS 3 1998-08-09 "" "Linux Programmer's Manual" .\"O .SH NAME .\"O catgets \- get message from a message catalog -.SH ̾Á° -catgets \- ¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤«¤é¥á¥Ã¥»¡¼¥¸¤ò¼è¤ê½Ð¤¹ +.SH 名前 +catgets \- メッセージカタログからメッセージを取り出す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include @@ -44,7 +44,7 @@ catgets \- .BI " const char *" message ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR catgets () .\"O reads the message .\"O .IR message_number , @@ -57,17 +57,17 @@ catgets \- .\"O is a catalog descriptor returned from an earlier call to .\"O .BR catopen (3). .BR catgets () -¤Ï catalog ¤Ç»ØÄꤵ¤ì¤¿¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤«¤é¡¢ -¥»¥Ã¥È +は catalog で指定されたメッセージカタログから、 +セット .I set_number -¤Î¥á¥Ã¥»¡¼¥¸ +のメッセージ .I message_number -¤òÆɤ߼è¤ë¡£ +を読み取る。 .I catalog -¤Ï¡¢ +は、 .BR catopen (3) -¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤ÆÆÀ¤é¤ì¤¿¥«¥¿¥í¥° -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò»ØÄꤹ¤ë¡£ +の呼び出しによって得られたカタログ +ディスクリプタを指定する。 .\"O The fourth argument .\"O .I message .\"O points to a default message string which will be returned by @@ -78,38 +78,38 @@ catgets \- .\"O the application if it is to be saved or modified. .\"O The return string is .\"O always terminated with a null byte. -4ÈÖÌܤΰú¿ô +4番目の引数 .I message -¤Ï¡¢»ØÄê¤Î¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤¬¸½ºßÍøÍѤǤ­¤Ê¤¤ -¾ì¹ç¤Ë +は、指定のメッセージカタログが現在利用できない +場合に .BR catgets () -¤¬ÊÖ¤¹¥Ç¥Õ¥©¥ë¥È¤Î¥á¥Ã¥»¡¼¥¸¤ò»Ø¤¹¡£ -¥á¥Ã¥»¡¼¥¸¥Æ¥­¥¹¥È¤ÏÆâÉô¤Î¥Ð¥Ã¥Õ¥¡Îΰè¤Ë³ÊǼ¤µ¤ì¤Æ¤ª¤ê¡¢ -Êݸ¤äÊѹ¹¤ò¹Ô¤¦¾ì¹ç¤Ë¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¦¤Ç¥³¥Ô¡¼¤¹¤ëɬÍפ¬¤¢¤ë¡£ -ÊÖ¤µ¤ì¤ëʸ»úÎó¤Ï¾ï¤Ë¥Ì¥ëʸ»ú¤Ç½ªÃ¼¤µ¤ì¤ë¡£ +が返すデフォルトのメッセージを指す。 +メッセージテキストは内部のバッファ領域に格納されており、 +保存や変更を行う場合にはアプリケーション側でコピーする必要がある。 +返される文字列は常にヌル文字で終端される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .LP .\"O On success, .\"O .BR catgets () .\"O returns a pointer to an internal buffer area .\"O containing the null-terminated message string. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR catgets () -¤ÏÆâÉô¤Î¥Ð¥Ã¥Õ¥¡Îΰè¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤³¤Ë¤Ï¥Ì¥ëʸ»ú¤Ç½ªÃ¼¤µ¤ì¤¿¥á¥Ã¥»¡¼¥¸Ê¸»úÎ󤬳ÊǼ¤µ¤ì¤Æ¤¤¤ë¡£ +は内部のバッファ領域へのポインタを返す。 +ここにはヌル文字で終端されたメッセージ文字列が格納されている。 .\"O On failure, .\"O .BR catgets () .\"O returns the value .\"O .IR message . -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï +失敗した場合は .I message -¤òÊÖ¤¹¡£ +を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O These functions are only available in libc.so.4.4.4c and above. .\"O The Jan 1987 X/Open Portability Guide specifies a more subtle .\"O error return: @@ -119,22 +119,22 @@ POSIX.1-2001. .\"O is not available, while an empty string is returned .\"O when the message catalog is available but does not contain .\"O the specified message. -¤³¤ì¤é¤Î´Ø¿ô¤Ï libc.so.4.4.4c °Ê¹ß¤Ç¤·¤«»È¤¨¤Ê¤¤¡£ -Jan 1987 X/Open Portability Guide ¤Ç¤Ï¡¢¥¨¥é¡¼¤Î»þ¤Ë -ÊÖ¤µ¤ì¤ëÃͤˤè¤êÈù̯¤Ê»ØÄê¤ò¤·¤Æ¤¤¤ë¡£ +これらの関数は libc.so.4.4.4c 以降でしか使えない。 +Jan 1987 X/Open Portability Guide では、エラーの時に +返される値により微妙な指定をしている。 .I catalog -¤Ç»ØÄꤵ¤ì¤¿¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤¬ÍøÍѤǤ­¤Ê¤¤¾ì¹ç¤Ï +で指定されたメッセージカタログが利用できない場合は .I message -¤òÊÖ¤·¡¢°ìÊý¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤Ï¤¢¤ë¤¬»ØÄꤷ¤¿¥á¥Ã¥»¡¼¥¸¤¬¤Ê¤¤¾ì¹ç¤Ï -¶õ¤Îʸ»úÎó¤¬ÊÖ¤µ¤ì¤ë¡£ +を返し、一方メッセージカタログはあるが指定したメッセージがない場合は +空の文字列が返される。 .\"O These two possible error returns seem to be discarded in SUSv2 .\"O in favor of always returning .\"O .IR message . -SUSv2 ¤Ç¤Ï¤³¤ÎÆó¼ïÎà¤Î¥¨¥é¡¼¥ê¥¿¡¼¥ó¤ÏÇѻߤµ¤ì¡¢ -¾ï¤Ë +SUSv2 ではこの二種類のエラーリターンは廃止され、 +常に .I message -¤òÊÖ¤¹¤³¤È¤Ë¤·¤¿¤è¤¦¤Ç¤¢¤ë¡£ +を返すことにしたようである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR catopen (3), .BR setlocale (3) diff --git a/draft/man3/catopen.3 b/draft/man3/catopen.3 index d2459bd0..d8ecf642 100644 --- a/draft/man3/catopen.3 +++ b/draft/man3/catopen.3 @@ -32,24 +32,24 @@ .\" .TH CATOPEN 3 2001-12-14 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O catopen, catclose \- open/close a message catalog -catopen, catclose \- ¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤Î¥ª¡¼¥×¥ó/¥¯¥í¡¼¥º +catopen, catclose \- メッセージカタログのオープン/クローズ .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "nl_catd catopen(const char *" name ", int " flag ); .BI "int catclose(nl_catd " catalog ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The function .\"O .BR catopen () .\"O opens a message catalog and returns a catalog descriptor. -´Ø¿ô +関数 .BR catopen () -¤Ï¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤ò¥ª¡¼¥×¥ó¤·¡¢¥«¥¿¥í¥°¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ +はメッセージカタログをオープンし、カタログディスクリプタを返す。 .\"O The descriptor remains valid until .\"O .BR catclose () .\"O or @@ -58,22 +58,22 @@ catopen, catclose \- .\"O then the .\"O .B FD_CLOEXEC .\"O flag will be set. -¤³¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï +このディスクリプタは .BR catclose () -¤Þ¤¿¤Ï +または .BR execve (2) -¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤Þ¤ÇÍ­¸ú¤Ç¤¢¤ë¡£ -¥«¥¿¥í¥°¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¼ÂÁõ¤¹¤ë¤¿¤á¤Ë -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò»ÈÍѤ¹¤ë¤È¡¢ +が呼び出されるまで有効である。 +カタログディスクリプタを実装するために +ファイルディスクリプタを使用すると、 .B FD_CLOEXEC -¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤ë¡£ +フラグが設定される。 .LP .\"O The argument .\"O .I name .\"O specifies the name of the message catalog to be opened. -°ú¤­¿ô +引き数 .I name -¤Ï¥ª¡¼¥×¥ó¤¹¤ë¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤Î̾Á°¤ò»ØÄꤹ¤ë¡£ +はオープンするメッセージカタログの名前を指定する。 .\"O If .\"O .I name .\"O specifies and absolute path (i.e., contains a \(aq/\(aq), @@ -81,9 +81,9 @@ catopen, catclose \- .\"O .I name .\"O specifies a pathname for the message catalog. .I name -¤¬ÀäÂХѥ¹¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç (¤¹¤Ê¤ï¤Á \(aq/\(aq ¤ò´Þ¤ó¤Ç¤¤¤ë¾ì¹ç)¡¢ +が絶対パスで指定されている場合 (すなわち \(aq/\(aq を含んでいる場合)、 .I name -¤Ï¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤Ø¤Î¥Ñ¥¹Ì¾¤Ç¤¢¤ë¡£ +はメッセージカタログへのパス名である。 .\"O Otherwise, the environment variable .\"O .B NLSPATH .\"O is used with @@ -92,21 +92,21 @@ catopen, catclose \- .\"O .B %N .\"O (see .\"O .BR locale (7)). -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢´Ä¶­ÊÑ¿ô +それ以外の場合、環境変数 .B NLSPATH -¤¬ +が .I name -¤È¤È¤â¤Ë»ÈÍѤµ¤ì +とともに使用され .B %N -¤òÃÖ¤­´¹¤¨¤ë +を置き換える .RB ( locale (7) -»²¾È)¡£ +参照)。 .\"O It is unspecified whether .\"O .B NLSPATH .\"O will be used when the process has root privileges. -¥×¥í¥»¥¹¤¬ root ¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤ë¤È¤­¤Ë +プロセスが root 権限を持っているときに .B NLSPATH -¤¬»È¤ï¤ì¤ë¤«¤É¤¦¤«¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +が使われるかどうかは指定されていない。 .\"O If .\"O .B NLSPATH .\"O does not exist in the environment, @@ -114,11 +114,11 @@ catopen, catclose \- .\"O in any of the paths specified by it, .\"O then an implementation defined path is used. .B NLSPATH -´Ä¶­ÊÑ¿ô¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢ +環境変数が存在しないか、 .B NLSPATH -¤Ç»ØÄꤵ¤ì¤¿¥Ñ¥¹¤ÎÃæ¤Î -¤É¤Î¥Ñ¥¹¤Ë¤ª¤¤¤Æ¤â¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤ò¥ª¡¼¥×¥ó¤Ç¤­¤Ê¤¤¾ì¹ç¡¢ -¼ÂÁõ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥Ñ¥¹¤¬»È¤ï¤ì¤ë¡£ +で指定されたパスの中の +どのパスにおいてもメッセージカタログをオープンできない場合、 +実装で定義されているパスが使われる。 .\"O This latter default path may depend on the .\"O .B LC_MESSAGES .\"O locale setting when the @@ -130,25 +130,25 @@ catopen, catclose \- .\"O environment variable when the .\"O .I flag .\"O argument is 0. -¸å¼Ô¤Î¥Ç¥Õ¥©¥ë¥È¥Ñ¥¹¤Ï¡¢ +後者のデフォルトパスは、 .I flag -°ú¤­¿ô¤¬ +引き数が .B NL_CAT_LOCALE -¤Î¾ì¹ç¤Ë¤Ï +の場合には .B LC_MESSAGES -¤Î¥í¥±¡¼¥ëÀßÄê¤Ë°Í¸¤·¡¢ +のロケール設定に依存し、 .I flag -°ú¤­¿ô¤¬ 0 ¤Î¾ì¹ç¤Ë¤Ï +引き数が 0 の場合には .B LANG -´Ä¶­ÊÑ¿ô¤Ë°Í¸¤¹¤ë¡£ +環境変数に依存する。 .\"O Changing the .\"O .B LC_MESSAGES .\"O part of the locale may invalidate .\"O open catalog descriptors. -¥í¥±¡¼¥ë¤Î +ロケールの .B LC_MESSAGES -¤òÊѹ¹¤¹¤ë¤È¡¢ -¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥«¥¿¥í¥°¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Ìµ¸ú¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +を変更すると、 +オープンされているカタログディスクリプタが無効になるかもしれない。 .LP .\"O The .\"O .I flag @@ -156,51 +156,51 @@ catopen, catclose \- .\"O .BR catopen () .\"O is used to indicate the source for the language to use. .BR catopen () -¤Î +の .I flag -°ú¤­¿ô¤Ï¡¢»ÈÍѤµ¤ì¤ë¸À¸ì¤Î¥½¡¼¥¹¤ò¼¨¤¹¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ +引き数は、使用される言語のソースを示すために使われる。 .\"O If it is set to .\"O .B NL_CAT_LOCALE .\"O then it will use the current locale setting for .\"O .BR LC_MESSAGES . .B NL_CAT_LOCALE -¤ËÀßÄꤵ¤ì¤ë¤È¡¢ +に設定されると、 .B LC_MESSAGES -¤Î¸½ºß¤Î¥í¥±¡¼¥ëÀßÄ꤬»È¤ï¤ì¤ë¡£ +の現在のロケール設定が使われる。 .\"O Otherwise it will use the .\"O .B LANG .\"O environment variable. -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï +それ以外の場合は .B LANG -´Ä¶­ÊÑ¿ô¤¬»È¤ï¤ì¤ë¡£ +環境変数が使われる。 .LP .\"O The function .\"O .BR catclose () .\"O closes the message catalog identified by .\"O .IR catalog . -´Ø¿ô +関数 .BR catclose () -¤Ï +は .I catalog -¤Ç»ØÄꤵ¤ì¤¿¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +で指定されたメッセージカタログをクローズする。 .\"O It invalidates any subsequent references to the message catalog .\"O defined by .\"O .IR catalog . -¤³¤ì¤Ï¡¢°Ê¹ß¤Î +これは、以降の .I catalog -¤Ç»ØÄꤵ¤ì¤ë¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤Ø¤ÎÁ´¤Æ¤Î»²¾È¤ò̵¸ú¤Ë¤¹¤ë¡£ +で指定されるメッセージカタログへの全ての参照を無効にする。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The function .\"O .BR catopen () .\"O returns a message catalog descriptor of type .\"O .I nl_catd .\"O on success. -´Ø¿ô +関数 .BR catopen () -¤¬À®¸ù¤¹¤ë¤È¡¢ +が成功すると、 .I nl_catd -·¿¤Î¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ +型のメッセージカタログディスクリプタを返す。 .\"O On failure, it returns \fI(nl_catd)\ \-1\fP .\"O and sets .\"O .I errno @@ -209,21 +209,21 @@ catopen, catclose \- .\"O possible values for the .\"O .BR open (2) .\"O call. -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï \fI(nl_catdv) \-1\fP ¤òÊÖ¤·¡¢ +失敗した場合は \fI(nl_catdv) \-1\fP を返し、 .I errno -¤òÀßÄꤷ¤Æ¥¨¥é¡¼¤ò¼¨¤¹¡£ -¤³¤³¤Çµ¯¤³¤êÆÀ¤ë¥¨¥é¡¼¤ÎÃͤˤϡ¢ +を設定してエラーを示す。 +ここで起こり得るエラーの値には、 .BR open (2) -¤Î¸Æ¤Ó½Ð¤·¤ÎºÝ¤Ëµ¯¤³¤êÆÀ¤ëÁ´¤Æ¤Î¥¨¥é¡¼¤ÎÃͤ¬´Þ¤Þ¤ì¤ë¡£ +の呼び出しの際に起こり得る全てのエラーの値が含まれる。 .LP .\"O The function .\"O .BR catclose () .\"O returns 0 on success, or \-1 on failure. -´Ø¿ô +関数 .BR catclose () -¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç 0 ¤ò¡¢¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤òÊÖ¤¹¡£ +は、成功した場合 0 を、失敗した場合 \-1 を返す。 .\"O .SH ENVIRONMENT -.SH ´Ä¶­ÊÑ¿ô +.SH 環境変数 .TP .B LC_MESSAGES .\"O May be the source of the @@ -234,20 +234,20 @@ catopen, catclose \- .\"O is set to .\"O .BR NL_CAT_LOCALE . .B LC_MESSAGES -¥í¥±¡¼¥ëÀßÄê¤Î¥½¡¼¥¹¤Ë¤Ê¤ë¤³¤È¤â²Äǽ¤Ê¤Î¤Ç¡¢ +ロケール設定のソースになることも可能なので、 .I flag -¤¬ +が .B NL_CAT_LOCALE -¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢»ÈÍѤ¹¤ë¸À¸ì¤ò·èÄꤹ¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£ +に設定されている場合は、使用する言語を決定するのに使われる。 .TP .B LANG .\"O The language to use if .\"O .I flag .\"O is 0. .I flag -¤¬ 0 ¤Î¾ì¹ç¡¢»ÈÍѤ¹¤ë¸À¸ì¤ò·èÄꤹ¤ë¡£ +が 0 の場合、使用する言語を決定する。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .\" In XPG 1987, Vol. 3 it says: .\"O .\" .I "The flag argument of catopen is reserved for future use" @@ -257,16 +257,16 @@ POSIX.1-2001. .\"O and .\"O .B MCLoadAll .\"O (see below). -.\" XPG 1987, Vol. 3 ¤Ë¤Ï¡¢¡Ö\fIcatopen ¤Î flag °ú¤­¿ô¤Ï -.\" ¾­Íè»ÈÍѤ¹¤ë¤¿¤á¤ËͽÌ󤵤ì¤Æ¤¤¤ë¤Î¤Ç¡¢ -.\" 0 ¤ËÀßÄꤷ¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£\fR¡×¤È½ñ¤«¤ì¤Æ¤¤¤ë¡£ -Äê¿ô +.\" XPG 1987, Vol. 3 には、「\fIcatopen の flag 引き数は +.\" 将来使用するために予約されているので、 +.\" 0 に設定しておくべきである。\fR」と書かれている。 +定数 .B MCLoadBySet -¤È +と .B MCLoadAll -¤ËÂбþ¤¹¤ë¥½¡¼¥¹¤¬²¿¤Ç¤¢¤ë¤Î¤«¤¬¤Ï¤Ã¤­¤ê¤·¤Æ¤¤¤Ê¤¤ (²¼µ­»²¾È)¡£ +に対応するソースが何であるのかがはっきりしていない (下記参照)。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The above is the POSIX.1-2001 description. .\"O The glibc value for .\"O .B NL_CAT_LOCALE @@ -276,30 +276,30 @@ POSIX.1-2001. .\"O below.) .\"O The default path varies, but usually looks at a number of places below .\"O .IR /usr/share/locale . -°Ê¾å¤Ï POSIX.1-2001 ¤Ë¤ª¤±¤ëÀâÌÀ¤Ç¤¢¤ë¡£ -glibc ¤Ç¤Ï +以上は POSIX.1-2001 における説明である。 +glibc では .B NL_CAT_LOCALE -¤ÎÃÍ¤Ï 1 ¤Ç¤¢¤ë -(°Ê²¼¤Î +の値は 1 である +(以下の .B MCLoadAll -¤ÈÈæ³Ó¤Î¤³¤È)¡£ -¥Ç¥Õ¥©¥ë¥È¤Î¥Ñ¥¹¤Ï¾ì¹ç¤Ë¤è¤Ã¤ÆÍÍ¡¹¤Ç¤¢¤ë¤¬¡¢Ä̾ï¤Ï +と比較のこと)。 +デフォルトのパスは場合によって様々であるが、通常は .I /usr/share/locale -°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤¬Ä´¤Ù¤é¤ì¤ë¡£ +以下のファイルが調べられる。 .\"O .SS Linux Notes -.SS Linux ¤Ë¤ª¤±¤ëÃí°Õ +.SS Linux における注意 .\"O These functions are available for Linux since libc 4.4.4c. -¤³¤ì¤é¤Î´Ø¿ô¤Ï libc.so.4.4.4c °Ê¹ß¤Ç»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ +これらの関数は libc.so.4.4.4c 以降で使用可能である。 .\"O In the case of linux libc4 and libc5, the catalog descriptor .\"O .I nl_catd .\"O is a .\"O .BR mmap (2)'ed .\"O area of memory and not a file descriptor. -linux ¤Î libc4 ¤È libc5 ¤Ë¤ª¤¤¤Æ¤Ï¡¢¥«¥¿¥í¥°¥Ç¥£¥¹¥¯¥ê¥×¥¿ +linux の libc4 と libc5 においては、カタログディスクリプタ .I nl_catd -¤Ï +は .BR mmap (2) -¤µ¤ì¤¿¥á¥â¥ê¤ÎÎΰè¤Ç¤¢¤Ã¤Æ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ +されたメモリの領域であってファイルディスクリプタではない。 .\"O The .\"O .I flag .\"O argument to @@ -310,31 +310,31 @@ linux .\"O .B MCLoadAll .\"O (=1). .BR catopen () -¤Î +の .I flag -¤Ï¡¢ +は、 .B MCLoadBySet -(=0) ¤« +(=0) か .B MCLoadAll -(=1) ¤Î¤É¤Á¤é¤«¤Ç¤¢¤ë¡£ +(=1) のどちらかである。 .\"O The former value indicates that a set from the catalog is to be .\"O loaded when needed, whereas the latter causes the initial call to .\"O .BR catopen () .\"O to load the entire catalog into memory. -Á°¼Ô¤Î¾ì¹ç¡¢¥«¥¿¥í¥°¤Î¥»¥Ã¥È¤ÏɬÍ×»þ¤Ë¥í¡¼¥É¤µ¤ì¤ë¡£ -¸å¼Ô¤Î¾ì¹ç¡¢ºÇ½é¤Î +前者の場合、カタログのセットは必要時にロードされる。 +後者の場合、最初の .BR catopen () -¤Î¸Æ¤Ó½Ð¤·¤Î¤È¤­¤ËÁ´¤Æ¤Î¥«¥¿¥í¥°¤¬¥á¥â¥êÆâ¤Ë¥í¡¼¥É¤µ¤ì¤ë¡£ +の呼び出しのときに全てのカタログがメモリ内にロードされる。 .\"O The default search path varies, but usually looks at a number of places below .\"O .I /etc/locale .\"O and .\"O .IR /usr/lib/locale . -¥Ç¥Õ¥©¥ë¥È¤Î¥Ñ¥¹¤Ï¾ì¹ç¤Ë¤è¤Ã¤ÆÍÍ¡¹¤Ç¤¢¤ë¤¬¡¢Ä̾ï¤Ï +デフォルトのパスは場合によって様々であるが、通常は .I /etc/locale -¤È +と .I /usr/share/locale -°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤¬Ä´¤Ù¤é¤ì¤ë¡£ +以下のファイルが調べられる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR catgets (3), .BR setlocale (3) diff --git a/draft/man3/cbrt.3 b/draft/man3/cbrt.3 index 3b317e7b..a21cd87f 100644 --- a/draft/man3/cbrt.3 +++ b/draft/man3/cbrt.3 @@ -33,16 +33,16 @@ .\" by Akihiro MOTOKI .\" Updated 2008-09-15, Akihiro MOTOKI .\" -.\" WORD: cube root ΩÊýº¬ -.\" WORD: GNU extension GNU ¤Ë¤è¤ë³ÈÄ¥ +.\" WORD: cube root 立方根 +.\" WORD: GNU extension GNU による拡張 .\" .TH CBRT 3 2010-09-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O cbrt, cbrtf, cbrtl \- cube root function -.SH ̾Á° -cbrt, cbrtf, cbrtl \- ΩÊýº¬¤ò·×»»¤¹¤ë´Ø¿ô +.SH 名前 +cbrt, cbrtf, cbrtl \- 立方根を計算する関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -54,14 +54,14 @@ cbrt, cbrtf, cbrtl \- Ω .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -86,24 +86,24 @@ or .RS .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR cbrt () .\"O function returns the (real) cube root of \fIx\fP. .\"O This function cannot fail; every representable real value has a .\"O representable real cube root. .BR cbrt () -´Ø¿ô¤Ï \fIx\fP ¤Î (¼Â¿ô)ΩÊýº¬¤òÊÖ¤¹¡£ -¤³¤Î´Ø¿ô¤¬¼ºÇÔ¤¹¤ë¤³¤È¤Ï¤Ê¤¤¡£¤Ê¤¼¤Ê¤é¡¢ -¤¹¤Ù¤Æ¤ÎÆâÉôɽ¸½²Äǽ¤Ê (representable) ¼Â¿ô¤Ï -ɬ¤ºÆâÉôɽ¸½²Äǽ¤ÊΩÊýº¬¤ò»ý¤Ä¤¿¤á¤Ç¤¢¤ë¡£ +関数は \fIx\fP の (実数)立方根を返す。 +この関数が失敗することはない。なぜなら、 +すべての内部表現可能な (representable) 実数は +必ず内部表現可能な立方根を持つためである。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O These functions return the cube root of .\"O .IR x . -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I x -¤ÎΩÊýº¬¤òÊÖ¤¹¡£ +の立方根を返す。 .\"O If .\"O .I x @@ -111,22 +111,22 @@ or .\"O .I x .\"O is returned. .I x -¤¬ +0¡¢\-0¡¢Àµ¤Î̵¸ÂÂç¡¢Éé¤Î̵¸ÂÂç¡¢NaN ¤Î¤¤¤º¤ì¤«¤Î¾ì¹ç¡¢ +が +0、\-0、正の無限大、負の無限大、NaN のいずれかの場合、 .I x -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O No errors occur. -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ +エラーは発生しない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O .\" .BR cbrt () .\"O .\" was a GNU extension. It is now a C99 requirement. .\" .BR cbrt () -.\" ¤Ï°ÊÁ°¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤Ã¤¿¡£ -.\" ¸½ºß¤Ï C99 ¤Çɬ¿Ü¤Î´Ø¿ô¤Ç¤¢¤ë¡£ +.\" は以前は GNU による拡張であった。 +.\" 現在は C99 で必須の関数である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR pow (3), .BR sqrt (3) diff --git a/draft/man3/ccos.3 b/draft/man3/ccos.3 index 77ba54a8..db539bc3 100644 --- a/draft/man3/ccos.3 +++ b/draft/man3/ccos.3 @@ -6,17 +6,17 @@ .\" Translated Wed Jul 23 05:24:15 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: sine Àµ¸¹ -.\"WORD: cosine ;¸¹ -.\"WORD: tangent ÀµÀÜ +.\"WORD: sine 正弦 +.\"WORD: cosine 余弦 +.\"WORD: tangent 正接 .\" .TH CCOS 3 2008-08-06 "" "Linux Programmer's Manual" .\"O .SH NAME .\"O ccos, ccosf, ccosl \- complex cosine function -.SH ̾Á° -ccos, ccosf, ccosl \- Ê£ÁÇ¿ô¤Î;¸¹ (cosine) +.SH 名前 +ccos, ccosf, ccosl \- 複素数の余弦 (cosine) .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double complex ccos(double complex " z ");" @@ -26,24 +26,24 @@ ccos, ccosf, ccosl \- Ê£ .BI "long double complex ccosl(long double complex " z ");" .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The complex cosine function is defined as: -Ê£ÁÇ¿ô¤Î;¸¹ (cosine) ´Ø¿ô ccos(z) ¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë¡£ +複素数の余弦 (cosine) 関数 ccos(z) は以下のように定義される。 .nf ccos(z) = (exp(i * z) + exp(\-i * z)) / 2 .fi .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR cacos (3), .BR csin (3), diff --git a/draft/man3/ccosh.3 b/draft/man3/ccosh.3 index f3a460f9..ba9617ed 100644 --- a/draft/man3/ccosh.3 +++ b/draft/man3/ccosh.3 @@ -6,18 +6,18 @@ .\" Translated Mon Jul 28 23:42:41 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: hyperbolic ÁжÊ(Àþ¤Î) -.\"WORD: sine Àµ¸¹ -.\"WORD: cosine ;¸¹ -.\"WORD: tangent ÀµÀÜ +.\"WORD: hyperbolic 双曲(線の) +.\"WORD: sine 正弦 +.\"WORD: cosine 余弦 +.\"WORD: tangent 正接 .\" .TH CCOSH 3 2008-08-06 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O ccosh, ccoshf, ccoshl \- complex hyperbolic cosine -ccosh, ccoshf, ccoshl \- Ê£ÁÇ¿ô¤ÎÁжÊÀþ;¸¹ (hyperbolic cosine) +ccosh, ccoshf, ccoshl \- 複素数の双曲線余弦 (hyperbolic cosine) .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double complex ccosh(double complex " z ");" @@ -27,25 +27,25 @@ ccosh, ccoshf, ccoshl \- Ê£ .BI "long double complex ccoshl(long double complex " z ");" .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The complex hyperbolic cosine function is defined as: -Ê£ÁÇ¿ô¤ÎÁжÊÀþ;¸¹ (hyperbolic cosine) ´Ø¿ô ccosh(z) ¤Ï -°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë¡£ +複素数の双曲線余弦 (hyperbolic cosine) 関数 ccosh(z) は +以下のように定義される。 .nf ccosh(z) = (exp(z)+exp(\-z))/2 .fi .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR cacosh (3), .BR csinh (3), diff --git a/draft/man3/ceil.3 b/draft/man3/ceil.3 index 4af5a0f4..c4ed0554 100644 --- a/draft/man3/ceil.3 +++ b/draft/man3/ceil.3 @@ -32,16 +32,16 @@ .\" by Yuichi SATO .\" Updated 2008-09-15, Akihiro MOTOKI .\" -.\"WORD: mantissa ²¾¿ô +.\"WORD: mantissa 仮数 .\" .TH CEIL 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O ceil, ceilf, ceill \- ceiling function: smallest integral value not .\"O less than argument -ceil, ceilf, ceill \- °ú¤­¿ô¤ò²¼²ó¤é¤Ê¤¤ºÇ¾®¤ÎÀ°¿ôÃÍ +ceil, ceilf, ceill \- 引き数を下回らない最小の整数値 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -53,14 +53,14 @@ ceil, ceilf, ceill \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -75,51 +75,51 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions return the smallest integral value that is not less than .\"O .IR x . -¤³¤ì¤é¤Î´Ø¿ô¤Ï \fIx\fP ¤è¤ê¾®¤µ¤¯¤Ê¤¤ºÇ¾®¤ÎÀ°¿ôÃͤòÊÖ¤¹¡£ +これらの関数は \fIx\fP より小さくない最小の整数値を返す。 .\"O For example, .\"O .IR ceil(0.5) .\"O is 1.0, and .\"O .IR ceil(\-0.5) .\"O is 0.0. -Î㤨¤Ð¡¢ +例えば、 .I ceil(0.5) -¤Ï 1.0 ¤Ç¤¢¤ê¡¢ +は 1.0 であり、 .I ceil(\-0.5) -¤Ï 0.0 ¤Ç¤¢¤ë¡£ +は 0.0 である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O These functions return the ceiling of .\"O .IR x . -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I x -¤ò²¼²ó¤é¤Ê¤¤À°¿ôÃͤòÊÖ¤¹¡£ +を下回らない整数値を返す。 .\"O If \fIx\fP is integral, +0, \-0, NaN, or infinite, .\"O \fIx\fP itself is returned. -\fIx\fP ¤¬À°¿ô¡¢+0¡¢\-0¡¢NaN¡¢Ìµ¸Â¤Î¤¤¤º¤ì¤«¤Î¾ì¹ç¡¢ -\fIx\fP ¤½¤Î¤â¤Î¤òÊÖ¤¹¡£ +\fIx\fP が整数、+0、\-0、NaN、無限のいずれかの場合、 +\fIx\fP そのものを返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O No errors occur. -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ +エラーは発生しない。 .\"O POSIX.1-2001 documents a range error for overflows, but see NOTES. -POSIX.1-2001 ¤Ë¤Ï¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤ËÂФ·¤ÆÈÏ°Ï¥¨¥é¡¼¤¬µ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ -¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¡£ +POSIX.1-2001 にはオーバーフローに対して範囲エラーが記載されている。 +「注意」の節を参照。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD, C89. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O SUSv2 and POSIX.1-2001 contain text about overflow (which might set .\"O .I errno .\"O to @@ -127,29 +127,29 @@ C99, POSIX.1-2001. .\"O or raise an .\"O .B FE_OVERFLOW .\"O exception). -SUSv2 ¤È POSIX.1-2001 ¤Ë¤Ï¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ë´Ø¤¹¤ëµ­½Ò¤¬¤¢¤ê¡¢ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤ÎºÝ¤Ë¤Ï +SUSv2 と POSIX.1-2001 にはオーバーフローに関する記述があり、 +オーバーフローの際には .I errno -¤ò +を .B ERANGE -¤ËÀßÄꤹ¤ë¤« +に設定するか .B FE_OVERFLOW -Îã³°¤òµ¯¤³¤¹¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ +例外を起こすとなっている。 .\"O In practice, the result cannot overflow on any current machine, .\"O so this error-handling stuff is just nonsense. -¼ÂºÝ¤Î¤È¤³¤í¡¢¤É¤Î¸½¹Ô¤Î¥Þ¥·¥ó¤Ç¤â·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤òµ¯¤³¤¹¤³¤È¤Ï -¤Ê¤¤¤Î¤Ç¡¢¤³¤Î¥¨¥é¡¼½èÍý¤Ï°ÕÌ£¤¬¤Ê¤¤¡£ +実際のところ、どの現行のマシンでも結果がオーバーフローを起こすことは +ないので、このエラー処理は意味がない。 .\" The POSIX.1-2001 APPLICATION USAGE SECTION discusses this point. .\"O (More precisely, overflow can happen only when the maximum value .\"O of the exponent is smaller than the number of mantissa bits. .\"O For the IEEE-754 standard 32-bit and 64-bit floating-point numbers .\"O the maximum value of the exponent is 128 (respectively, 1024), .\"O and the number of mantissa bits is 24 (respectively, 53).) -(¤è¤êÀµ³Î¤Ë¸À¤¦¤È¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ï»Ø¿ôÉô¤ÎºÇÂçÃͤ¬ -²¾¿ôÉô¤òɽ¤¹¥Ó¥Ã¥È¤Î¿ô¤è¤ê¾®¤µ¤¤¾ì¹ç¤Ë¤·¤«µ¯¤³¤é¤Ê¤¤¡£ -IEEE-754 µ¬³Ê¤Î 32 ¥Ó¥Ã¥È¤È 64 ¥Ó¥Ã¥È¤ÎÉâÆ°¾®¿ô¤Ç¤Ï¡¢ -»Ø¿ôÉô¤ÎºÇÂçÃͤϤ½¤ì¤¾¤ì 128 ¤È 1024 ¤Ç¤¢¤ê¡¢ -²¾¿ôÉô¤Î¥Ó¥Ã¥È¿ô¤Ï¤½¤ì¤¾¤ì 24 ¤È 53 ¤Ç¤¢¤ë¡£) +(より正確に言うと、オーバーフローは指数部の最大値が +仮数部を表すビットの数より小さい場合にしか起こらない。 +IEEE-754 規格の 32 ビットと 64 ビットの浮動小数では、 +指数部の最大値はそれぞれ 128 と 1024 であり、 +仮数部のビット数はそれぞれ 24 と 53 である。) .\"O The integral value returned by these functions may be too large .\"O to store in an integer type @@ -159,15 +159,15 @@ IEEE-754 .\"O To avoid an overflow, which will produce undefined results, .\"O an application should perform a range check on the returned value .\"O before assigning it to an integer type. -¤³¤ì¤é¤Î´Ø¿ô¤¬ÊÖ¤¹À°¿ôÃͤÏÀ°¿ô·¿ +これらの関数が返す整数値は整数型 .RI ( int , .I long -¤Ê¤É) ¤Ë³ÊǼ¤¹¤ë¤Ë¤ÏÂ礭²á¤®¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Î·ë²Ì¤Ïʬ¤«¤é¤Ê¤¤¤Î¤Ç¡¢ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤òÈò¤±¤ë¤¿¤á¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤ÏÀ°¿ô·¿¤ËÂåÆþ¤¹¤ëÁ°¤Ë -ÊÖ¤µ¤ì¤¿ÃͤÎÈϰϳÎǧ¤ò¼Â¹Ô¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +など) に格納するには大き過ぎるかもしれない。 +オーバーフローが起こった場合の結果は分からないので、 +オーバーフローを避けるため、アプリケーションでは整数型に代入する前に +返された値の範囲確認を実行すべきである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR floor (3), .BR lrint (3), .BR nearbyint (3), diff --git a/draft/man3/cerf.3 b/draft/man3/cerf.3 index 1d108b3c..01978022 100644 --- a/draft/man3/cerf.3 +++ b/draft/man3/cerf.3 @@ -6,15 +6,15 @@ .\" Translated 2003-07-24, Akihiro MOTOKI .\" Updated 2005-02-26, Akihiro MOTOKI .\" -.\"WORD: error function ¸íº¹´Ø¿ô +.\"WORD: error function 誤差関数 .\" .TH CERF 3 2010-09-12 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O cerf, cerff, cerfl, cerfc, cerfcf, cerfcl \- complex error function -cerf, cerff, cerfl, cerfc, cerfcf, cerfcl \- Ê£ÁÇ¿ô¤Î¸íº¹´Ø¿ô +cerf, cerff, cerfl, cerfc, cerfcf, cerfcl \- 複素数の誤差関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double complex cerf(double complex " z ); @@ -30,38 +30,38 @@ cerf, cerff, cerfl, cerfc, cerfcf, cerfcl \- Ê£ .BI "long double complex cerfcl(long double complex " z ); .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The (unimplemented) function .\"O .BR cerf () .\"O is the complex version of the error function. .\"O erf(z) = 2/sqrt(pi) * integral from 0 to z of exp(\-t*t) dt. -(̤¼ÂÁõ¤Î) +(未実装の) .BR cerf () -´Ø¿ô¤Ï¸íº¹´Ø¿ô¤ÎÊ£ÁÇ¿ôÈǤǤ¢¤ê¡¢ +関数は誤差関数の複素数版であり、 .TP -erf(z) = 2/sqrt(pi) * exp(\-t*t) dt ¤Î 0 ¤«¤é z ¤Þ¤Ç¤ÎÀÑʬ +erf(z) = 2/sqrt(pi) * exp(\-t*t) dt の 0 から z までの積分 .PP -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で定義されている。 .\"O The function .\"O .BR cerfc () .\"O is defined as cerfc(z) = 1\-cerf(z). .BR cerfc () -´Ø¿ô¤ÎÄêµÁ¤Ï cerfc(z) = 1-cerf(z) ¤Ç¤¢¤ë¡£ +関数の定義は cerfc(z) = 1-cerf(z) である。 .\"O .\" must check 1/sqrt(2*pi) ? -.\" 1/sqrt(2*pi) ¤Î¥Á¥§¥Ã¥¯¤ò¤·¤Ê¤¯¤Æ¤â¤¤¤¤¤Î¡© +.\" 1/sqrt(2*pi) のチェックをしなくてもいいの? .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The function names are reserved for future use in C99. -´Ø¿ô̾¤Ï C99 ¤Çº£¸å»ÈÍѤ¹¤ë¤¿¤á¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ +関数名は C99 で今後使用するために予約されている。 .\"O .SH AVAILABILITY -.SH ²ÄÍÑÀ­ +.SH 可用性 .\"O Not yet in glibc, as at version 2.12. .\"O .\" But reserved in NAMESPACE. -¥Ð¡¼¥¸¥ç¥ó 2.12 »þÅÀ¤Ç¤Ï¡¢glibc ¤Ë¤Ï¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.\" ¤·¤«¤·¡¢Ì¾Á°¶õ´Ö¤ÏͽÌóºÑ¤Ç¤¢¤ë¡£ +バージョン 2.12 時点では、glibc にはまだ実装されていない。 +.\" しかし、名前空間は予約済である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR erf (3), .BR complex (7) diff --git a/draft/man3/cexp.3 b/draft/man3/cexp.3 index 96bbece9..fb0e9159 100644 --- a/draft/man3/cexp.3 +++ b/draft/man3/cexp.3 @@ -6,17 +6,17 @@ .\" Translated Thu Jul 24 02:05:20 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: exponential »Ø¿ô -.\"WORD: natural logarithm ¼«Á³Âпô -.\"WORD: base Äì +.\"WORD: exponential 指数 +.\"WORD: natural logarithm 自然対数 +.\"WORD: base 底 .\" .TH CEXP 3 2008-08-06 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O cexp, cexpf, cexpl \- complex exponential function -cexp, cexpf, cexpl \- Ê£ÁÇ¿ô¤Î»Ø¿ô´Ø¿ô +cexp, cexpf, cexpl \- 複素数の指数関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double complex cexp(double complex " z ");" @@ -26,29 +26,29 @@ cexp, cexpf, cexpl \- Ê£ .BI "long double complex cexpl(long double complex " z ");" .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The function calculates e (2.71828..., the base of natural logarithms) .\"O raised to the power of .\"O .IR z . -¤³¤Î´Ø¿ô¤Ï e (2.71828..., ¼«Á³Âпô¤ÎÄì) ¤Î \fIz\fR ¾è¤ò·×»»¤¹¤ë¡£ +この関数は e (2.71828..., 自然対数の底) の \fIz\fR 乗を計算する。 .LP .\"O One has: -¼¡¤Î´Ø·¸¤¬À®Î©¤¹¤ë: +次の関係が成立する: .nf cexp(I * z) = ccos(z) + I * csin(z) .fi .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR cexp2 (3), .BR clog (3), diff --git a/draft/man3/cexp2.3 b/draft/man3/cexp2.3 index eaca165e..ad08667d 100644 --- a/draft/man3/cexp2.3 +++ b/draft/man3/cexp2.3 @@ -6,15 +6,15 @@ .\" Translated 2003-07-24, Akihiro MOTOKI .\" Updated 2005-02-24, Akihiro MOTOKI .\" -.\"WORD: exponent Îß¾è +.\"WORD: exponent 累乗 .\" .TH CEXP2 3 2008-08-11 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O cexp2, cexp2f, cexp2l \- base-2 exponent of a complex number -cexp2, cexp2f, cexp2l \- Ê£ÁÇ¿ô¤Î 2 ¤ÎÎß¾è +cexp2, cexp2f, cexp2l \- 複素数の 2 の累乗 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double complex cexp2(double complex " z ");" @@ -24,24 +24,24 @@ cexp2, cexp2f, cexp2l \- Ê£ .BI "long double complex cexp2l(long double complex " z ");" .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The function returns 2 raised to the power of .\"O .IR z . -¤³¤Î´Ø¿ô¤Ï 2 ¤Î \fIz\fR ¾è¤òÊÖ¤¹¡£ +この関数は 2 の \fIz\fR 乗を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These function names are reserved for future use in C99. -´Ø¿ô̾¤Ï C99 ¤Çº£¸å»ÈÍѤ¹¤ë¤¿¤á¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ +関数名は C99 で今後使用するために予約されている。 .\"O .SH AVAILABILITY -.SH ²ÄÍÑÀ­ +.SH 可用性 .\"O Not yet in glibc, as at version 2.8. .\"O .\" But reserved in NAMESPACE. -¥Ð¡¼¥¸¥ç¥ó 2.8 »þÅÀ¤Ç¤Ï¡¢glibc ¤Ë¤Ï¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.\" ¤·¤«¤·¡¢Ì¾Á°¶õ´Ö¤ÏͽÌóºÑ¤Ç¤¢¤ë¡£ +バージョン 2.8 時点では、glibc にはまだ実装されていない。 +.\" しかし、名前空間は予約済である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR cexp (3), .BR clog10 (3), diff --git a/draft/man3/cfree.3 b/draft/man3/cfree.3 index d0f322b8..4fbd7cdc 100644 --- a/draft/man3/cfree.3 +++ b/draft/man3/cfree.3 @@ -27,99 +27,99 @@ .\" .TH CFREE 3 2007-07-26 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O cfree \- free allocated memory -cfree \- ³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤ò²òÊü¤¹¤ë +cfree \- 割り当てられたメモリを解放する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .sp .B "#include " .sp .\"O /* In SunOS 4 */ -/* SunOS 4 ¤Ç¤Ï */ +/* SunOS 4 では */ .BI "int cfree(void *" ptr ); .sp .\"O /* In glibc or FreeBSD libcompat */ -/* glibc ¤È FreeBSD libcompat ¤Ç¤Ï */ +/* glibc と FreeBSD libcompat では */ .BI "void cfree(void *" ptr ); .sp .\"O /* In SCO OpenServer */ -/* SCO OpenServer ¤Ç¤Ï */ +/* SCO OpenServer では */ .BI "void cfree(char *" ptr ", unsigned " num ", unsigned " size ); .sp .\"O /* In Solaris watchmalloc.so.1 */ -/* Solaris watchmalloc.so.1 ¤Ç¤Ï */ +/* Solaris watchmalloc.so.1 では */ .BI "void cfree(void *" ptr ", size_t " nelem ", size_t " elsize ); .fi .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR cfree (): _BSD_SOURCE || _SVID_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This function should never be used. .\"O Use .\"O .BR free (3) .\"O instead. -¤³¤Î´Ø¿ô¤Ï·è¤·¤Æ»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -Âå¤ï¤ê¤Ë +この関数は決して使用すべきではない。 +代わりに .BR free (3) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .\"O .SS "1-arg cfree" -.SS "°ú¤­¿ô¤¬ 1 ¤Ä¤Î cfree" +.SS "引き数が 1 つの cfree" .\"O In glibc, the function .\"O .BR cfree () .\"O is a synonym for .\"O .BR free (3), .\"O "added for compatibility with SunOS". -glibc ¤Ç¤Ï¡¢´Ø¿ô +glibc では、関数 .BR cfree () -¤Ï +は .BR free (3) -¤ÎÊÌ̾¤Ç¤¢¤ê¡¢¡ÖSunOS ¤È¤Î¸ß´¹À­¤Î¤¿¤á¤ËÄɲ䵤줿¡×¡£ +の別名であり、「SunOS との互換性のために追加された」。 .LP .\"O Other systems have other functions with this name. -¾¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤Î̾Á°¤ÎÊ̤δؿô¤¬¤¢¤ë¡£ +他のシステムでは、この名前の別の関数がある。 .\"O The declaration is sometimes in .\"O .I .\"O and sometimes in .\"O .IR . -¤³¤ÎÀë¸À¤Ï +この宣言は .I -¤Ë¸ºß¤¹¤ë¾ì¹ç¤â¤¢¤ë¤·¡¢ +に存在する場合もあるし、 .I -¤Ë¸ºß¤¹¤ë¾ì¹ç¤â¤¢¤ë¡£ +に存在する場合もある。 .\"O .SS "3-arg cfree" -.SS "°ú¤­¿ô¤¬ 3 ¤Ä¤Î cfree" +.SS "引き数が 3 つの cfree" .\"O Some SCO and Solaris versions have malloc libraries with a 3-argument .\"O .BR cfree (), .\"O apparently as an analog to .\"O .BR calloc (3). -SCO ¤È Solaris ¤Î¤¤¤¯¤Ä¤«¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ -°ú¤­¿ô¤¬ 3 ¤Ä¤Î +SCO と Solaris のいくつかのバージョンでは、 +引き数が 3 つの .BR cfree () -¤¬´Þ¤Þ¤ì¤ë malloc ¥é¥¤¥Ö¥é¥ê¤¬¤¢¤ë¡£ -¤³¤ì¤ÏÌÀ¤é¤«¤Ë +が含まれる malloc ライブラリがある。 +これは明らかに .BR calloc (3) -¤ËÎà»÷¤·¤Æ¤¤¤ë¡£ +に類似している。 .LP .\"O If you need it while porting something, add -²¿¤«¤ò°Ü¿¢¤¹¤ë»þ¤Ë¤³¤Î´Ø¿ô¤¬É¬Íפʾì¹ç¡¢ +何かを移植する時にこの関数が必要な場合、 .sp .in +4n #define cfree(p, n, s) free((p)) .in .sp .\"O to your file. -¤ò¥Õ¥¡¥¤¥ë¤ËÄɲ乤뤳¤È¡£ +をファイルに追加すること。 .LP .\"O A frequently asked question is "Can I use .\"O .BR free (3) @@ -127,37 +127,37 @@ SCO .\"O .BR calloc (3), .\"O or do I need .\"O .BR cfree ()?" -¤è¤¯¿Ò¤Í¤é¤ì¤ë¼ÁÌä¤Ï -.RB ¡Ö calloc (3) -¤Ç³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤ò²òÊü¤¹¤ë¤Î¤Ë +よく尋ねられる質問は +.RB 「 calloc (3) +で割り当てられたメモリを解放するのに .BR free (3) -¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¤«¡¢ -¤½¤ì¤È¤â +を使うことができるか、 +それとも .BR cfree () -¤ò»È¤¦É¬Íפ¬¤¢¤ë¤«¡×¤È¤¤¤¦¤â¤Î¤Ç¤¢¤ë¡£ -Åú¤¨: +を使う必要があるか」というものである。 +答え: .BR free (3) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .LP .\"O An SCO manual writes: "The cfree routine is provided for compliance .\"O to the iBCSe2 standard and simply calls free. .\"O The num and size .\"O arguments to cfree are not used." -SCO ¤Î¥Þ¥Ë¥å¥¢¥ë¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë: -¡Öcfree ¥ë¡¼¥Á¥ó¤Ï iBCSe2 µ¬³Ê¤Ë½¾¤¦¤¿¤á¤ËÄ󶡤µ¤ì¤Æ¤ª¤ê¡¢ -ñ¤Ë free ¤ò¸Æ¤ó¤Ç¤¤¤ë¤À¤±¤Ç¤¢¤ë¡£ -cfree ¤Î num ¤È size °ú¤­¿ô¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£¡× +SCO のマニュアルには以下のように記述されている: +「cfree ルーチンは iBCSe2 規格に従うために提供されており、 +単に free を呼んでいるだけである。 +cfree の num と size 引き数は使用されない。」 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The SunOS version of .\"O .BR cfree () .\"O (which is a synonym for .\"O .BR free (3)) .\"O returns 1 on success and 0 on failure. -SunOS ÈǤΠ+SunOS 版の .BR cfree () .RB ( free (3) -¤ÎÊÌ̾) ¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¤Ë 1 ¤òÊÖ¤·¡¢¼ºÇÔ¤·¤¿¾ì¹ç¤Ë 0 ¤òÊÖ¤¹¡£ +の別名) は、成功した場合に 1 を返し、失敗した場合に 0 を返す。 .\"O In case of error, .\"O .I errno .\"O is set to @@ -168,27 +168,27 @@ SunOS .\"O one of the routines in the .\"O .BR malloc () .\"O family. -¥¨¥é¡¼¤Î¾ì¹ç¡¢ +エラーの場合、 .I errno -¤¬ +が .B EINVAL -¤ËÀßÄꤵ¤ì¤ë: +に設定される: .I ptr -¤ÎÃͤ¬ +の値が .BR malloc () -·Ï¤Î¥ë¡¼¥Á¥ó¤Î 1 ¤Ä¤Ç°ÊÁ°¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿ -¥Ö¥í¥Ã¥¯¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤¤¡£ +系のルーチンの 1 つで以前に割り当てられた +ブロックへのポインタでない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The 3-argument version of .\"O .BR cfree () .\"O as used by SCO conforms to the iBCSe2 standard: .\"O Intel386 Binary Compatibility Specification, Edition 2. -SCO ¤ÇÍѤ¤¤é¤ì¤Æ¤¤¤ë°ú¤­¿ô¤¬ 3 ¤Ä¤Î +SCO で用いられている引き数が 3 つの .BR cfree () -¤Ï¡¢iBCSe2 µ¬³Ê: +は、iBCSe2 規格: Intel386 Binary Compatibility Specification, Edition 2 -(Intel386 ¥Ð¥¤¥Ê¥ê¸ß´¹»ÅÍÍ¡¢Âè 2 ÈÇ) ¤Ë½àµò¤¹¤ë¡£ +(Intel386 バイナリ互換仕様、第 2 版) に準拠する。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR malloc (3) diff --git a/draft/man3/cimag.3 b/draft/man3/cimag.3 index 675a19e8..5af1ddfb 100644 --- a/draft/man3/cimag.3 +++ b/draft/man3/cimag.3 @@ -6,16 +6,16 @@ .\" Translated Thu Jul 24 01:37:31 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: real part ¼ÂÉô -.\"WORD: imaginary part µõÉô +.\"WORD: real part 実部 +.\"WORD: imaginary part 虚部 .\" .TH CIMAG 3 2008-08-06 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O cimag, cimagf, cimagl \- get imaginary part of a complex number -cimag, cimagf, cimagl \- Ê£ÁÇ¿ô¤ÎµõÉô¤ò¼èÆÀ¤¹¤ë +cimag, cimagf, cimagl \- 複素数の虚部を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double cimag(double complex " z ");" @@ -25,39 +25,39 @@ cimag, cimagf, cimagl \- Ê£ .BI "long double cimagl(long double complex " z ");" .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR cimag () .\"O function returns the imaginary part of the complex number .\"O .IR z . .BR cimag () -´Ø¿ô¤ÏÊ£ÁÇ¿ô +関数は複素数 .I z -¤ÎµõÉô¤òÊÖ¤¹¡£ +の虚部を返す。 .LP .\"O One has: -¼¡¤Î´Ø·¸¤¬À®Î©¤¹¤ë: +次の関係が成立する: .nf z = creal(z) + I * cimag(z) .fi .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O gcc also supports __imag__. .\"O That is a GNU extension. -gcc ¤Ç¤Ï __imag__ ¤ò»È¤¦¤³¤È¤â¤Ç¤­¤ë¤¬¡¢ -¤³¤ì¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ +gcc では __imag__ を使うこともできるが、 +これは GNU による拡張である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR creal (3), .BR complex (7) diff --git a/draft/man3/clearenv.3 b/draft/man3/clearenv.3 index 1d7c7f70..53431d25 100644 --- a/draft/man3/clearenv.3 +++ b/draft/man3/clearenv.3 @@ -30,11 +30,11 @@ .\" .TH CLEARENV 3 2010-10-04 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O clearenv \- clear the environment -clearenv \- ´Ä¶­ (environment) ¤ò¥¯¥ê¥¢¤¹¤ë +clearenv \- 環境 (environment) をクリアする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -44,15 +44,15 @@ clearenv \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR clearenv (): _SVID_SOURCE || _BSD_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR clearenv () .\"O function clears the environment of all name-value @@ -60,33 +60,33 @@ _SVID_SOURCE || _BSD_SOURCE .\"O .I environ .\"O to NULL. .BR clearenv () -´Ø¿ô¤Ï¡¢Ì¾Á°¤ÈÃͤ¬ÁȤˤʤä¿Á´¤Æ¤Î´Ä¶­¤ò¥¯¥ê¥¢¤¹¤ë¡£ -¤µ¤é¤Ë³°ÉôÊÑ¿ô +関数は、名前と値が組になった全ての環境をクリアする。 +さらに外部変数 .I environ -¤ÎÃͤò NULL ¤Ë¤¹¤ë¡£ +の値を NULL にする。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR clearenv () .\"O function returns zero on success, and a nonzero .\"O value on failure. .BR clearenv () -´Ø¿ô¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤·¡¢ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï 0 °Ê³°¤òÊÖ¤¹¡£ +関数は、成功した場合は 0 を返し、 +失敗した場合は 0 以外を返す。 .\"O .\" Most versions of UNIX return -1 on error, or do not even have errors. .\"O .\" Glibc info and the Watcom C library document "a nonzero value". -.\" UNIX ·Ï OS ¤Î¿¤¯¤Ï¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ë \-1 ¤òÊÖ¤¹¡£ -.\" ¤â¤·¤¯¤Ï¥¨¥é¡¼¤Î¾ì¹ç¤Ç¤â²¿¤âÊÖ¤µ¤Ê¤¤¡£ -.\" glibc ¤Î info ¤È Watcom C ¥é¥¤¥Ö¥é¥ê¤Ë¤Ï¡¢ -.\" ¡Ö0 °Ê³°¤ÎÃÍ (¤òÊÖ¤¹)¡×¤Èµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +.\" UNIX ç³» OS の多くは、エラーの場合に \-1 を返す。 +.\" もしくはエラーの場合でも何も返さない。 +.\" glibc の info と Watcom C ライブラリには、 +.\" 「0 以外の値 (を返す)」と記述されている。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O Not in libc4, libc5. .\"O In glibc since glibc 2.0. -libc4, libc5 ¤Ç¤Ï»ÈÍѤǤ­¤Ê¤¤¡£ -glibc 2.0 °Ê¹ß¤Î glibc ¤Ç»ÈÍѤǤ­¤ë¡£ +libc4, libc5 では使用できない。 +glibc 2.0 以降の glibc で使用できる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O Various UNIX variants (DG/UX, HP-UX, QNX, ...). .\"O POSIX.9 (bindings for FORTRAN77). .\"O POSIX.1-1996 did not accept @@ -98,34 +98,34 @@ glibc 2.0 .\"O However, POSIX.1-2001 .\"O only adds \fBputenv\fP(3), and rejected .\"O .BR clearenv (). -(DG/UX, HP-UX, QNX, ¤Ê¤É¤Î) ¿¤¯¤Î UNIX ·Ï OS¡£ -(FORTRAN77 ¤Ø¤Î¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤Ç¤¢¤ë) POSIX.9¡£ -POSIX.1-1996 ¤Ç¤Ï +(DG/UX, HP-UX, QNX, などの) 多くの UNIX ç³» OS。 +(FORTRAN77 へのバインディングである) POSIX.9。 +POSIX.1-1996 では .BR clearenv () -¤È +と .BR putenv (3) -¤ÏºÎÍѤµ¤ì¤Ê¤«¤Ã¤¿¤¬¡¢ -Êý¿Ë¤¬Êѹ¹¤µ¤ì¡¢¤³¤Îɸ½àµ¬³Ê¤Î°Ê¹ß¤Î¹æ (B.4.6.1 ¤ò»²¾È) ¤Ç¤Ï -ºÎÍѤµ¤ì¤ë¤³¤È¤Ë¤Ê¤Ã¤¿¡£ -¤·¤«¤· POSIX.1-2001 ¤Ç¤Ï +は採用されなかったが、 +方針が変更され、この標準規格の以降の号 (B.4.6.1 を参照) では +採用されることになった。 +しかし POSIX.1-2001 では .BR putenv (3) -¤·¤«Äɲ䵤줺¡¢ +しか追加されず、 .BR clearenv () -¤ÎÄɲäÏÈݷ褵¤ì¤¿¡£ +の追加は否決された。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Used in security-conscious applications. .\"O If it is unavailable .\"O the assignment -¤³¤Î´Ø¿ô¤Ï¥»¥­¥å¥ê¥Æ¥£¤Ë¹Íθ¤·¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç»È¤ï¤ì¤ë¡£ -¤³¤Î´Ø¿ô¤¬»ÈÍѤǤ­¤Ê¤¤¾ì¹ç¤Ï¡¢ +この関数はセキュリティに考慮したアプリケーションで使われる。 +この関数が使用できない場合は、 .nf environ = NULL; .fi .\"O will probably do. -¤È¤¤¤¦¤è¤¦¤ËÊÑ¿ô environ ¤òÀßÄꤹ¤ì¤Ð¤è¤¤¡£ +というように変数 environ を設定すればよい。 .LP .\"O The DG/UX and Tru64 man pages write: If .\"O .I environ @@ -137,20 +137,20 @@ POSIX.1-1996 .\"O functions, then .\"O .BR clearenv () .\"O will return an error and the process environment will remain unchanged. -DG/UX ¤È Tru64 man ¥Ú¡¼¥¸¤Ë¤Ï¼¡¤Î¤è¤¦¤Ëµ­¤µ¤ì¤Æ¤¤¤ë¡§ +DG/UX と Tru64 man ページには次のように記されている: .I environ -¤¬ +が .BR putenv (3), .BR getenv (3), .BR clearenv () -´Ø¿ô°Ê³°¤ÇÊѹ¹¤µ¤ì¤¿¾ì¹ç¡¢ +関数以外で変更された場合、 .BR clearenv () -¤Ï¥¨¥é¡¼¤òÊÖ¤·¡¢¥×¥í¥»¥¹´Ä¶­¤ÏÊѹ¹Á°¤Î¤Þ¤Þ¤Ë¤µ¤ì¤ë¡£ +はエラーを返し、プロセス環境は変更前のままにされる。 .\" .LP .\"O .\" HP-UX has a ENOMEM error return. -.\" HP-UX ¤Ë¤Ï ENOMEM ¥¨¥é¡¼¤¬¤¢¤ë¡£ +.\" HP-UX には ENOMEM エラーがある。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getenv (3), .BR putenv (3), .BR setenv (3), diff --git a/draft/man3/clock.3 b/draft/man3/clock.3 index 4ac1d05e..4da83472 100644 --- a/draft/man3/clock.3 +++ b/draft/man3/clock.3 @@ -32,30 +32,30 @@ .\" Updated Fri Sep 27 JST 2002 by Kentaro Shirakata .\" Updated 2007-05-28, Akihiro MOTOKI , LDP v2.48 .\" -.\"WORD: processor time ¥×¥í¥»¥Ã¥µ»þ´Ö -.\"WORD: CPU time CPU»þ´Ö +.\"WORD: processor time プロセッサ時間 +.\"WORD: CPU time CPU時間 .\" .TH CLOCK 3 2008-08-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O clock \- Determine processor time -clock \- ¥×¥í¥»¥Ã¥µ»þ´Ö¤Î¼èÆÀ +clock \- プロセッサ時間の取得 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .B clock_t clock(void); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR clock () .\"O function returns an approximation of processor time used by the program. .BR clock () -¤Ï¥×¥í¥°¥é¥à¤Î»ÈÍѤ·¤¿¥×¥í¥»¥Ã¥µ»þ´Ö¤Î¶á»÷ÃͤòÊÖ¤¹¡£ +はプログラムの使用したプロセッサ時間の近似値を返す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The value returned is the CPU time used so far as a .\"O .IR clock_t ; .\"O to get the number of seconds used, divide by @@ -63,48 +63,48 @@ clock \- .\"O If the processor time used is not available or its value cannot .\"O be represented, the function returns the value .\"O .IR (clock_t)\ \-1 . -ÊÖ¤êÃÍ¤Ï +返り値は .I clock_t -ñ°Ì¤Ç¤Î CPU »þ´Ö¤Ç¤¢¤ë¡£ -ÉÃñ°Ì¤Ç¤ÎÃͤòÆÀ¤ë¤¿¤á¤Ë¤Ï +単位での CPU 時間である。 +秒単位での値を得るためには .B CLOCKS_PER_SEC -¤Ç³ä¤ì¤Ð¤è¤¤¡£ -»ÈÍѤ·¤¿¥×¥í¥»¥Ã¥µ»þ´Ö¤¬ÆÀ¤é¤ì¤Ê¤¤¾ì¹ç¤ä¡¢¤½¤ÎÃͤòɽ¸½¤Ç¤­¤Ê¤¤¾ì¹ç¡¢ -¤³¤Î´Ø¿ô¤Ï +で割ればよい。 +使用したプロセッサ時間が得られない場合や、その値を表現できない場合、 +この関数は .I (clock_t)\ \-1 -¤òÊÖ¤¹¡£ +を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O C89, C99, POSIX.1-2001. .\"O POSIX requires that .\"O .B CLOCKS_PER_SEC .\"O equals 1000000 independent .\"O of the actual resolution. C89, C99, POSIX.1-2001. -POSIX ¤Ï¼ÂºÝ¤ÎÀºÅ٤ˤϤè¤é¤º +POSIX は実際の精度にはよらず .B CLOCKS_PER_SEC -¤¬ 1000000 ¤Ç¤¢¤ë¤³¤È¤òÍ׵ᤷ¤Æ¤¤¤ë¡£ +が 1000000 であることを要求している。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The C standard allows for arbitrary values at the start of the program; .\"O subtract the value returned from a call to .\"O .BR clock () .\"O at the start of the program to get maximum portability. -C ¤Îɸ½àµ¬³Ê¤Ç¤Ï¥×¥í¥°¥é¥à¤Î³«»Ï¤Î»þÅÀ¤Ç¤Ï¤É¤ó¤ÊÃͤ¬Ê֤äƤ­¤Æ¤â -¤«¤Þ¤ï¤Ê¤¤¡£ -°Ü¿¢À­¤òºÇÂç¸Â³ÎÊݤ¹¤ë¤¿¤á¤Ë¤Ï¡¢¥×¥í¥°¥é¥à¤Î³«»Ï»þ¤Ë +C の標準規格ではプログラムの開始の時点ではどんな値が返ってきても +かまわない。 +移植性を最大限確保するためには、プログラムの開始時に .BR clock () -¤ò¸Æ¤Ó½Ð¤·¤Æ¤½¤ÎÃͤòº¹¤·°ú¤¯¤³¤È¡£ +を呼び出してその値を差し引くこと。 .PP .\"O Note that the time can wrap around. .\"O On a 32-bit system where .\"O .B CLOCKS_PER_SEC .\"O equals 1000000 this function will return the same .\"O value approximately every 72 minutes. -»þ¹ï¤Ï·å¤¢¤Õ¤ì¤¹¤ë²ÄǽÀ­¤¬¤¢¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +時刻は桁あふれする可能性がある点に注意すること。 .B CLOCKS_PER_SEC -¤¬ 1000000 ¤Ç¤¢¤ë 32 ¥Ó¥Ã¥È¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -¤³¤Î´Ø¿ô¤ÏÌó 72 ʬËè¤ËƱ¤¸ÃͤòÊÖ¤¹¤³¤È¤Ë¤Ê¤ë¡£ +が 1000000 である 32 ビットシステムでは、 +この関数は約 72 分毎に同じ値を返すことになる。 .PP .\"O On several other implementations, .\"O the value returned by @@ -113,18 +113,18 @@ C .\"O collected via .\"O .BR wait (2) .\"O (or another wait-type call). -¼ÂÁõ¤Ë¤è¤Ã¤Æ¤Ï¡¢ +実装によっては、 .BR clock () -¤ÇÊÖ¤µ¤ì¤ëÃÍ¤Ë +で返される値に .BR wait (2) -(¤¢¤ë¤¤¤Ï¤½¤Î¾¤Î wait ¤Î¤è¤¦¤Ê´Ø¿ô) ¤Ç¼ý½¸¤µ¤ì¤¿ -»Ò¥×¥í¥»¥¹¤Î»þ´Ö¤¬´Þ¤Þ¤ì¤ë¾ì¹ç¤â¤¢¤ë¡£ +(あるいはその他の wait のような関数) で収集された +子プロセスの時間が含まれる場合もある。 .\"O Linux does not include the times of waited-for children in the .\"O value returned by .\"O .BR clock (). -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR clock () -¤¬ÊÖ¤¹ÃÍ¤Ë¤Ï wait ¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Î»þ´Ö¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ +が返す値には wait された子プロセスの時間は含まれない。 .\" I have seen this behavior on Irix 6.3, and the OSF/1, HP/UX, and .\" Solaris manual pages say that clock() also does this on those systems. .\" POSIX.1-2001 doesn't explicitly allow this, nor is there an @@ -134,10 +134,10 @@ Linux .\"O function, which explicitly returns (separate) information about the .\"O caller and its children, may be preferable. .BR times (2) -´Ø¿ô¤Ï¸Æ¤Ó½Ð¤·¸µ¤È¤½¤Î»Ò¥×¥í¥»¥¹¤Ë´Ø¤¹¤ë¾ðÊó¤ò -(ÊÌ¡¹¤Ë) ÌÀ¼¨Åª¤ËÊÖ¤¹¤Î¤Ç¡¢¤è¤ê¹¥¤Þ¤·¤¤¤À¤í¤¦¡£ +関数は呼び出し元とその子プロセスに関する情報を +(別々に) 明示的に返すので、より好ましいだろう。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR clock_gettime (2), .BR getrusage (2), .BR times (2) diff --git a/draft/man3/clog.3 b/draft/man3/clog.3 index 097a7515..0192d444 100644 --- a/draft/man3/clog.3 +++ b/draft/man3/clog.3 @@ -6,18 +6,18 @@ .\" Translated Thu Jul 24 01:47:42 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: natural logarithm ¼«Á³Âпô -.\"WORD: logarithm Âпô -.\"WORD: exponential »Ø¿ô -.\"WORD: inverse function µÕ´Ø¿ô +.\"WORD: natural logarithm 自然対数 +.\"WORD: logarithm 対数 +.\"WORD: exponential 指数 +.\"WORD: inverse function 逆関数 .\" .TH CLOG 3 2008-08-11 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O clog, clogf, clogl \- natural logarithm of a complex number -clog, clogf, clogl \- Ê£ÁÇ¿ô¤Î¼«Á³Âпô +clog, clogf, clogl \- 複素数の自然対数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double complex clog(double complex " z ); @@ -27,9 +27,9 @@ clog, clogf, clogl \- Ê£ .BI "long double complex clogl(long double complex " z ); .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The logarithm .\"O .BR clog () .\"O is the inverse function of the exponential @@ -38,17 +38,17 @@ clog, clogf, clogl \- Ê£ .\"O The imaginary part of .\"O .I y .\"O is chosen in the interval [\-pi,pi]. -Âпô +対数 .BR clog () -¤Ï»Ø¿ô´Ø¿ô +は指数関数 .BR cexp () -¤ÎµÕ´Ø¿ô¤Ç¤¢¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢ \fIy = clog(z)\fP ¤Ê¤é¤Ð¡¢ \fIz = cexp(y)\fP ¤¬À®Î©¤¹¤ë¡£ +の逆関数である。 +したがって、 \fIy = clog(z)\fP ならば、 \fIz = cexp(y)\fP が成立する。 .I y -¤Îµõ¿ôÉô¤ÎÃͤ϶è´Ö [\-pi,pi] ¤«¤éÁªÂò¤µ¤ì¤ë¡£ +の虚数部の値は区間 [\-pi,pi] から選択される。 .LP .\"O One has: -¼¡¤Î´Ø·¸¤¬À®Î©¤¹¤ë: +次の関係が成立する: .nf clog(z) = log(cabs(z)) + I * carg(z) @@ -58,17 +58,17 @@ clog, clogf, clogl \- Ê£ .\"O .I z .\"O close to zero will cause an overflow. .I z -¤È¤·¤Æ 0 ¤Ë¶á¤¤ÃͤòÆþ¤ì¤ë¤È¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤òµ¯¤³¤¹¤¿¤á¡¢ -Ãí°Õ¤¬É¬ÍפǤ¢¤ë¡£ +として 0 に近い値を入れると、オーバーフローを起こすため、 +注意が必要である。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR cexp (3), .BR clog10 (3), diff --git a/draft/man3/clog10.3 b/draft/man3/clog10.3 index 3b8742a1..a17ca047 100644 --- a/draft/man3/clog10.3 +++ b/draft/man3/clog10.3 @@ -7,18 +7,18 @@ .\" Updated 2005-02-26, Akihiro MOTOKI .\" Updated 2007-01-05, Akihiro MOTOKI, catch up to LDP v2.43 .\" -.\"WORD: logarithm Âпô -.\"WORD: base Äì +.\"WORD: logarithm 対数 +.\"WORD: base 底 .\" .TH CLOG10 3 2008-08-11 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O clog10, clog10f, clog10l \- base-10 logarithm of a complex number -clog10, clog10f, clog10l \- Ä줬 10 ¤ÎÊ£ÁÇ¿ô¤ÎÂпô +clog10, clog10f, clog10l \- 底が 10 の複素数の対数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp @@ -29,45 +29,45 @@ clog10, clog10f, clog10l \- .BI "long double complex clog10l(long double complex " z ); .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The call .\"O .I clog10(z) .\"O is equivalent to .\"O .IR clog(z)/log(10) . .I clog10(z) -¤Î¸Æ¤Ó½Ð¤·¤Ï +の呼び出しは .I clog(z)/log(10) -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 .\"O The other functions perform the same task for .\"O .I float .\"O and .\"O .IR "long double" . -¾¤Î´Ø¿ô¤ÏƱ¤¸µ¡Ç½¤ò»ý¤Ä +他の関数は同じ機能を持つ .I float -ÈÇ¤È +版と .I "long double" -ÈǤǤ¢¤ë¡£ +版である。 .\"O Note that .\"O .I z .\"O close to zero will cause an overflow. .I z -¤È¤·¤Æ 0 ¤Ë¶á¤¤ÃͤòÆþ¤ì¤ë¤È¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤òµ¯¤³¤¹¤¿¤á¡¢ -Ãí°Õ¤¬É¬ÍפǤ¢¤ë¡£ +として 0 に近い値を入れると、オーバーフローを起こすため、 +注意が必要である。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This function is a GNU extension. .\"O It is reserved for future use in C99. -¤³¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -C99 ¤Ç¤Ïº£¸å¤Î¤¿¤á¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ +この関数は GNU による拡張である。 +C99 では今後のために予約されている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR cexp (3), .BR clog (3), diff --git a/draft/man3/clog2.3 b/draft/man3/clog2.3 index 05de6b54..184c759f 100644 --- a/draft/man3/clog2.3 +++ b/draft/man3/clog2.3 @@ -7,16 +7,16 @@ .\" Updated 2005-02-26, Akihiro MOTOKI .\" Updated 2007-01-05, Akihiro MOTOKI, catch up to LDP v2.43 .\" -.\"WORD: logarithm ¼«Á³Âпô -.\"WORD: base Äì +.\"WORD: logarithm 自然対数 +.\"WORD: base 底 .\" .TH CLOG2 3 2008-08-11 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O clog2, clog2f, clog2l \- base-2 logarithm of a complex number -clog2, clog2f, clog2l \- Ä줬 2 ¤ÎÊ£ÁÇ¿ô¤ÎÂпô +clog2, clog2f, clog2l \- 底が 2 の複素数の対数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double complex clog2(double complex " z ); @@ -26,46 +26,46 @@ clog2, clog2f, clog2l \- .BI "long double complex clog2l(long double complex " z ); .\" .sp .\"O .\" Link with \fI\-lm\fP. -.\" \fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +.\" \fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The call .\"O .I clog2(z) .\"O is equivalent to .\"O .IR clog(z)/log(2) . .I clog2(z) -¤Î¸Æ¤Ó½Ð¤·¤Ï +の呼び出しは .I clog(z)/log(2) -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 .\"O The other functions perform the same task for .\"O .I float .\"O and .\"O .IR "long double" . -¾¤Î´Ø¿ô¤ÏƱ¤¸µ¡Ç½¤ò»ý¤Ä +他の関数は同じ機能を持つ .I float -ÈÇ¤È +版と .I "long double" -ÈǤǤ¢¤ë¡£ +版である。 .\"O Note that .\"O .I z .\"O close to zero will cause an overflow. .I z -¤È¤·¤Æ 0 ¤Ë¶á¤¤ÃͤòÆþ¤ì¤ë¤È¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤òµ¯¤³¤¹¤¿¤á¡¢ -Ãí°Õ¤¬É¬ÍפǤ¢¤ë¡£ +として 0 に近い値を入れると、オーバーフローを起こすため、 +注意が必要である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These function names are reserved for future use in C99. -¤³¤ì¤é¤Î´Ø¿ô̾¤Ï C99 ¤Çº£¸å»ÈÍѤ¹¤ë¤¿¤á¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ +これらの関数名は C99 で今後使用するために予約されている。 .\"O .SH AVAILABILITY -.SH ²ÄÍÑÀ­ +.SH 可用性 .\"O Not yet in glibc, as at version 2.8. .\"O .\" But reserved in NAMESPACE. -¥Ð¡¼¥¸¥ç¥ó 2.8 »þÅÀ¤Ç¤Ï¡¢glibc ¤Ë¤Ï¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.\" ¤·¤«¤·¡¢Ì¾Á°¶õ´Ö¤ÏͽÌóºÑ¤Ç¤¢¤ë¡£ +バージョン 2.8 時点では、glibc にはまだ実装されていない。 +.\" しかし、名前空間は予約済である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR cexp (3), .BR clog (3), diff --git a/draft/man3/closedir.3 b/draft/man3/closedir.3 index 9e7e8069..936be3ab 100644 --- a/draft/man3/closedir.3 +++ b/draft/man3/closedir.3 @@ -34,15 +34,15 @@ .\" Updated & Modified Tue Feb 15 04:01:41 JST 2005 .\" by Yuichi SATO .\" -.\"WORD: directory stream descriptor ¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ +.\"WORD: directory stream descriptor ディレクトリストリームディスクリプター .\" .TH CLOSEDIR 3 2008-09-23 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O closedir \- close a directory -closedir \- ¥Ç¥£¥ì¥¯¥È¥ê¤ò¥¯¥í¡¼¥º¤¹¤ë +closedir \- ディレクトリをクローズする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -51,7 +51,7 @@ closedir \- .BI "int closedir(DIR *" dirp ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR closedir () .\"O function closes the directory stream associated with @@ -63,17 +63,17 @@ closedir \- .\"O The directory stream descriptor \fIdirp\fP is not available .\"O after this call. .BR closedir () -´Ø¿ô¤Ï \fIdirp\fP ¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿ -¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +関数は \fIdirp\fP に関連付けられた +ディレクトリストリームをクローズする。 .BR closedir () -¤Î¸Æ¤Ó½Ð¤·¤¬À®¸ù¤¹¤ë¤È¡¢ +の呼び出しが成功すると、 .I dirp -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤â¥¯¥í¡¼¥º¤µ¤ì¤ë¡£ -¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ -(directory stream descriptor) \fIdirp\fP ¤Ï¡¢ -¤³¤Î¸Æ¤Ó½Ð¤·¤Î¸å¤Ç¤Ï»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +に関連付けられたファイルディスクリプターもクローズされる。 +ディレクトリストリームディスクリプター +(directory stream descriptor) \fIdirp\fP は、 +この呼び出しの後では使用することができない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR closedir () .\"O function returns 0 on success. @@ -81,21 +81,21 @@ closedir \- .\"O .I errno .\"O is set appropriately. .BR closedir () -´Ø¿ô¤ÏÀ®¸ù»þ¤Ë 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +関数は成功時に 0 を返す。 +エラーの場合は、\-1 が返されて、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O Invalid directory stream descriptor \fIdirp\fP. -¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ \fIdirp\fP ¤¬Ìµ¸ú¤Ç¤¢¤ë¡£ +ディレクトリストリームディスクリプター \fIdirp\fP が無効である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001, 4.3BSD. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR close (2), .BR opendir (3), .BR readdir (3), diff --git a/draft/man3/cmsg.3 b/draft/man3/cmsg.3 index ed3da40b..8362f79f 100644 --- a/draft/man3/cmsg.3 +++ b/draft/man3/cmsg.3 @@ -12,10 +12,10 @@ .\" Proofed Tue Aug 17 1999 by NAKANO Takeo .\" .TH CMSG 3 2008-11-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 .\"O CMSG_ALIGN, CMSG_SPACE, CMSG_NXTHDR, CMSG_FIRSTHDR \- Access ancillary data -CMSG_ALIGN, CMSG_SPACE, CMSG_NXTHDR, CMSG_FIRSTHDR \- Êä½õ¥Ç¡¼¥¿¤Ë¥¢¥¯¥»¥¹¤¹¤ë¡£ -.SH ½ñ¼° +CMSG_ALIGN, CMSG_SPACE, CMSG_NXTHDR, CMSG_FIRSTHDR \- 補助データにアクセスする。 +.SH 書式 .B #include .sp .BI "struct cmsghdr *CMSG_FIRSTHDR(struct msghdr *" msgh ); @@ -38,58 +38,58 @@ struct cmsghdr { /* followed by unsigned char cmsg_data[]; */ }; .fi -.SH ÀâÌÀ +.SH 説明 .\"O These macros are used to create and access control messages (also called .\"O ancillary data) that are not a part of the socket payload. -¤³¤ì¤é¤Î¥Þ¥¯¥í¤ÏÀ©¸æ¥á¥Ã¥»¡¼¥¸ -(Êä½õ¥Ç¡¼¥¿ (ancillary data) ¤È¤â¸Æ¤Ð¤ì¤ë) ¤òºî¤ê¡¢ -¤½¤ì¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ -À©¸æ¥á¥Ã¥»¡¼¥¸¤Ï¥½¥±¥Ã¥È¤Ë¤Î¤ë¥Ç¡¼¥¿¤Ç¤Ï¤Ê¤¤¡£ +これらのマクロは制御メッセージ +(補助データ (ancillary data) とも呼ばれる) を作り、 +それにアクセスするために使われる。 +制御メッセージはソケットにのるデータではない。 .\"O This control information may .\"O include the interface the packet was received on, various rarely used header .\"O fields, an extended error description, a set of file descriptors or UNIX .\"O credentials. .\"O For instance, control messages can be used to send .\"O additional header fields such as IP options. -¤³¤ÎÀ©¸æ¾ðÊó¤Ï¡¢ÅþÃ夷¤¿¥Ñ¥±¥Ã¥È¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¡¢ÍÍ¡¹¤Ê¤¢¤Þ¤ê -»È¤ï¤ì¤Ê¤¤¥Ø¥Ã¥À¡¼¥Õ¥£¡¼¥ë¥É¡¢¥¨¥é¡¼µ­½Ò¤Î³ÈÄ¥¡¢¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê -¥×¥¿¤Î½¸¹ç¤ä¡¢UNIX¤Ë¤ª¤±¤ë¿®Íê¾ðÊó (credential) ¤ò´Þ¤ó¤Ç¤¤¤ë¡£ -À©¸æ¥á¥Ã¥»¡¼¥¸¤Ï¡¢Î㤨¤Ð IP ¥ª¥×¥·¥ç¥ó¤Î¤è¤¦¤ÊÄɲåإåÀ¡¼¥Õ¥£¡¼¥ë¥É¤ò -Á÷¤ë¤Î¤Ë»È¤¦»ö¤¬¤Ç¤­¤ë¡£ +この制御情報は、到着したパケットへのインターフェイス、様々なあまり +使われないヘッダーフィールド、エラー記述の拡張、ファイルデスクリ +プタの集合や、UNIXにおける信頼情報 (credential) を含んでいる。 +制御メッセージは、例えば IP オプションのような追加ヘッダーフィールドを +送るのに使う事ができる。 .\"O Ancillary data is sent by calling .\"O .BR sendmsg (2) .\"O and received by calling .\"O .BR recvmsg (2). .\"O See their manual pages for more information. -Êä½õ¥Ç¡¼¥¿¤Ï¡¢ +補助データは、 .BR sendmsg (2) -¤ò¸Æ¤Ó½Ð¤·¤ÆÁ÷¤ê¡¢ +を呼び出して送り、 .BR recvmsg (2) -¤ò¸Æ¤Ó½Ð¤·¤Æ¼õ¤±¼è¤ë¡£ -¾ÜºÙ¤Ï¤½¤ì¤é¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¡£ +を呼び出して受け取る。 +詳細はそれらのマニュアルページを参照。 .PP .\"O Ancillary data is a sequence of .\"O .I struct cmsghdr .\"O structures with appended data. .\"O This sequence should only be accessed .\"O using the macros described in this manual page and never directly. -Êä½õ¥Ç¡¼¥¿¤Ï +補助データは .I struct cmsghdr -¹½Â¤ÂΤΥ·¡¼¥±¥ó¥¹¤ËÄɲåǡ¼¥¿¤¬Éղ䵤줿¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î¥·¡¼¥±¥ó¥¹¤Ë¤Ï¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë½ñ¤«¤ì¤Æ¤¤¤ë -¥Þ¥¯¥í¤ò»È¤Ã¤Æ¥¢¥¯¥»¥¹¤¹¤Ù¤­¤Ç¡¢Ä¾ÀÜ¥¢¥¯¥»¥¹¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +構造体のシーケンスに追加データが付加されたものである。 +このシーケンスにはこのマニュアルページに書かれている +マクロを使ってアクセスすべきで、直接アクセスすべきではない。 .\"O See the specific protocol man pages for the available control message types. -»ÈÍѲÄǽ¤ÊÀ©¸æ¥á¥Ã¥»¡¼¥¸¤Î¥¿¥¤¥×¤Ë¤Ä¤¤¤Æ¤Ï¡¢ -¤½¤ì¤¾¤ì¤Î¥×¥í¥È¥³¥ë¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¤Î¤³¤È¡£ +使用可能な制御メッセージのタイプについては、 +それぞれのプロトコルのマニュアルページを参照のこと。 .\"O The maximum ancillary buffer size allowed per socket can be set using .\"O .IR /proc/sys/net/core/optmem_max ; .\"O see .\"O .BR socket (7). -ÀܳËè¤ÎºÇÂçÊä½õÍѥХåե¡¥µ¥¤¥º¤Ï +接続毎の最大補助用バッファサイズは .I /proc/sys/net/core/optmem_max -¤ò»È¤Ã¤ÆÀßÄê¤Ç¤­¤ë¡£ +を使って設定できる。 .BR socket (7) -¤ò»²¾È¡£ +を参照。 .PP .\"O .BR CMSG_FIRSTHDR () .\"O returns a pointer to the first @@ -98,11 +98,11 @@ struct cmsghdr { .\"O data buffer associated with the passed .\"O .IR msghdr . .BR CMSG_FIRSTHDR () -¤Ï¡¢ÅϤ·¤¿ +は、渡した .I msghdr -¤Ë´ØÏ¢¤·¤¿Êä½õ¥Ç¡¼¥¿¥Ð¥Ã¥Õ¥¡Ãæ¤Î¡¢ºÇ½é¤Î +に関連した補助データバッファ中の、最初の .I cmsghdr -¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +へのポインタを返す。 .PP .\"O .BR CMSG_NXTHDR () .\"O returns the next valid @@ -110,37 +110,37 @@ struct cmsghdr { .\"O after the passed .\"O .IR cmsghdr . .BR CMSG_NXTHDR () -¤Ï¡¢ÅϤ·¤¿ +は、渡した .I cmsghdr -¤Î¼¡¤Ë¤¯¤ë (Í­¸ú¤Ê) +の次にくる (有効な) .I cmsghdr -¤òÊÖ¤¹¡£ +を返す。 .\"O It returns NULL when there isn't enough space left in the buffer. -¥Ð¥Ã¥Õ¥¡¤Ë½½Ê¬¤Ê¶õ¤­¤¬Ìµ¤¤¾ì¹ç¡¢NULL ¤òÊÖ¤¹¡£ +バッファに十分な空きが無い場合、NULL を返す。 .PP .\"O .BR CMSG_ALIGN (), .\"O given a length, returns it including the required alignment. .\"O This is a .\"O constant expression. .BR CMSG_ALIGN () -¤ËŤµ¤òÍ¿¤¨¤ë¤È¡¢É¬Íפʥ¢¥é¥¤¥ó¥á¥ó¥È¤ò²ÃÌ£¤·¤¿Ä¹¤µ¤òÊÖ¤·¤Æ¤¯¤ë¡£ -¤³¤ì¤ÏÄê¿ô¼°¤Ç¤¢¤ë¡£ +に長さを与えると、必要なアラインメントを加味した長さを返してくる。 +これは定数式である。 .PP .\"O .BR CMSG_SPACE () .\"O returns the number of bytes an ancillary element with payload of the .\"O passed data length occupies. .\"O This is a constant expression. .BR CMSG_SPACE () -¤Ï¡¢Í¿¤¨¤¿¥Ç¡¼¥¿Ä¹¤¬Àê¤á¤ë¤Î¤ËɬÍפÊÊä½õÍ×ÁÇ (ancillary element) ¤Î -¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£¤³¤ì¤ÏÄê¿ô¼°¤Ç¤¢¤ë¡£ +は、与えたデータ長が占めるのに必要な補助要素 (ancillary element) の +バイト数を返す。これは定数式である。 .PP .\"O .BR CMSG_DATA () .\"O returns a pointer to the data portion of a .\"O .IR cmsghdr . .BR CMSG_DATA () -¤Ï¡¢ +は、 .I cmsghdr -¤Î¥Ç¡¼¥¿Éôʬ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +のデータ部分へのポインタを返す。 .PP .\"O .BR CMSG_LEN () .\"O returns the value to store in the @@ -153,13 +153,13 @@ struct cmsghdr { .\"O This is a constant .\"O expression. .BR CMSG_LEN () -¤Ï¡¢ +は、 .I cmsghdr -¹½Â¤ÂΤΠ+構造体の .I cmsg_len -¥á¥ó¥Ð¤Ë¥Ç¡¼¥¿¤ò³ÊǼ¤¹¤ëºÝ¤ËɬÍפÊÃͤòÊÖ¤¹¡£¥¢¥é¥¤¥ó¥á¥ó¥È¤â¹Íθ¤ËÆþ¤ì -¤é¤ì¤ë¡£ -°ú¿ô¤È¤·¤Æ¥Ç¡¼¥¿Ä¹¤ò¤È¤ë¡£¤³¤ì¤ÏÄê¿ô¼°¤Ç¤¢¤ë¡£ +メンバにデータを格納する際に必要な値を返す。アラインメントも考慮に入れ +られる。 +引数としてデータ長をとる。これは定数式である。 .PP .\"O To create ancillary data, first initialize the .\"O .I msg_controllen @@ -173,17 +173,17 @@ struct cmsghdr { .\"O to get the first control message and .\"O .BR CMSG_NXTHDR () .\"O to get all subsequent ones. -Êä½õ¥Ç¡¼¥¿¤òºî¤ë¤¿¤á¤Ë¤ÏºÇ½é¤Ë +補助データを作るためには最初に .I msghdr -¤Î¥á¥ó¥Ð¡¼ +のメンバー .I msg_controllen -¤ò¡¢À©¸æ¥á¥Ã¥»¡¼¥¸¥Ð¥Ã¥Õ¥¡¤ÎŤµ¤Ç½é´ü²½¤¹¤ë¡£ +を、制御メッセージバッファの長さで初期化する。 .BR CMSG_FIRSTHDR () -¤ò +を .I msghdr -¤ËÍѤ¤¤ë¤ÈºÇ½é¤ÎÀ©¸æ¥á¥Ã¥»¡¼¥¸¤¬ÆÀ¤é¤ì¡¢ +に用いると最初の制御メッセージが得られ、 .BR CMSG_NXTHDR () -¤ò»È¤¦¤È¼¡¤ÎÀ©¸æ¥á¥Ã¥»¡¼¥¸¤¬ÆÀ¤é¤ì¤ë¡£ +を使うと次の制御メッセージが得られる。 .\"O In each control message, initialize .\"O .I cmsg_len .\"O (with @@ -192,16 +192,16 @@ struct cmsghdr { .\"O .I cmsghdr .\"O header fields, and the data portion using .\"O .BR CMSG_DATA (). -¤½¤ì¤¾¤ì¤ÎÀ©¸æ¥á¥Ã¥»¡¼¥¸¤Ç¤Ï¡¢ +それぞれの制御メッセージでは、 .I cmsg_len -¤ò½é´ü²½¤¹¤ë +を初期化する .RB ( CMSG_LEN () -¤ò»È¤¦)¡£ -¤½¤Î¾¤Î +を使う)。 +その他の .I cmsghdr -¥Ø¥Ã¥À¡¼¥Õ¥£¡¼¥ë¥É¡¢¤½¤·¤Æ¥Ç¡¼¥¿Éôʬ¤ËÂФ·¤Æ¤â +ヘッダーフィールド、そしてデータ部分に対しても .BR CMSG_DATA () -¤ò»È¤Ã¤Æ½é´ü²½¤ò¤¹¤ë¡£ +を使って初期化をする。 .\"O Finally, the .\"O .I msg_controllen .\"O field of the @@ -214,17 +214,17 @@ struct cmsghdr { .\"O .IR msghdr , .\"O see .\"O .BR recvmsg (2). -ºÇ¸å¤Ë +最後に .I msghdr -¤Î +の .I msg_controllen -¥Õ¥£¡¼¥ë¥É¤Ë¡¢¥Ð¥Ã¥Õ¥¡Ãæ¤ÎÀ©¸æ¥á¥Ã¥»¡¼¥¸¤ÎŤµ¤Î +フィールドに、バッファ中の制御メッセージの長さの .BR CMSG_SPACE () -¤Î¹ç·×¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +の合計がセットされる。 .I msghdr -¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤Ï +についての詳細は .BR recvmsg (2) -¤ò»²¾È¡£ +を参照。 .PP .\"O When the control message buffer is too short to store all messages, the .\"O .B MSG_CTRUNC @@ -232,32 +232,32 @@ struct cmsghdr { .\"O .I msg_flags .\"O member of the .\"O .IR msghdr . -À©¸æ¥á¥Ã¥»¡¼¥¸¥Ð¥Ã¥Õ¥¡¤¬Á´¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤òǼ¤á¤ë¤Î¤Ë¤Ïû¤¹¤®¤ë¾ì¹ç¡¢ +制御メッセージバッファが全てのメッセージを納めるのには短すぎる場合、 .I msghdr -¤Î +の .I msg_flags -¥á¥ó¥Ð¡¼¤Ë +メンバーに .B MSG_CTRUNC -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +フラグがセットされる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This ancillary data model conforms to the POSIX.1g draft, 4.4BSD-Lite, .\"O the IPv6 advanced API described in RFC\ 2292 and the SUSv2. .\"O .BR CMSG_ALIGN () .\"O is a Linux extension. -¤³¤ÎÊä½õ¥Ç¡¼¥¿¥â¥Ç¥ë¤Ï¡¢POSIX.1g draft, 4.4BSD-Lite, RFC\ 2292 ¤Ë -µ­½Ò¤µ¤ì¤Æ¤¤¤ë IPv6 advanced API, ¤½¤·¤Æ SUSv2 -¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +この補助データモデルは、POSIX.1g draft, 4.4BSD-Lite, RFC\ 2292 に +記述されている IPv6 advanced API, そして SUSv2 +に準拠している。 .BR CMSG_ALIGN () -¤Ï Linux ¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH Ãí°Õ +は Linux の拡張である。 +.SH 注意 .\"O For portability, ancillary data should be accessed only using the macros .\"O described here. -°Ü¿¢À­¤Î¤¿¤á¤Ë¡¢Êä½õ¥Ç¡¼¥¿¤Ø¤Î¥¢¥¯¥»¥¹¤Ë¤Ï¡¢ -¤³¤³¤Ç½Ò¤Ù¤é¤ì¤Æ¤¤¤ë¥Þ¥¯¥í¤ò»È¤¦¤À¤±¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +移植性のために、補助データへのアクセスには、 +ここで述べられているマクロを使うだけにすべきである。 .BR CMSG_ALIGN () .\"O is a Linux extension and should be not used in portable programs. -¤Ï Linux ¤Ç¤Î³ÈÄ¥¤Ç¤¢¤ê¡¢°Ü¿¢À­¤ò¹Í¤¨¤¿¥×¥í¥°¥é¥à¤Ç¤Ï»È¤¦¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +は Linux での拡張であり、移植性を考えたプログラムでは使うべきではない。 .PP .\"O In Linux, .\"O .BR CMSG_LEN (), @@ -268,20 +268,20 @@ struct cmsghdr { .\"O this could be used to declare the size of global .\"O variables. .\"O This may be not portable, however. -Linux ¤Ç¤Ï +Linux では .BR CMSG_LEN (), .BR CMSG_DATA (), .BR CMSG_ALIGN () -¤ÏÄê¿ô¼°¤Ç¤¢¤ë (¤½¤ì¤é¤Î°ú¿ô¤¬Äê¿ô¤È¤ß¤Ê¤µ¤ì¤ë)¡£ -¤³¤Î¤³¤È¤Ï¡¢Âç°èÊÑ¿ô¤Î¥µ¥¤¥º¤òÀë¸À¤¹¤ë¤Î¤Ë»È¤¨¤ë¡£ -¤·¤«¤·°Ü¿¢À­¤Ï¤Ê¤¯¤Ê¤ë¤À¤í¤¦¡£ -.SH Îã +は定数式である (それらの引数が定数とみなされる)。 +このことは、大域変数のサイズを宣言するのに使える。 +しかし移植性はなくなるだろう。 +.SH 例 .\"O This code looks for the .\"O .B IP_TTL .\"O option in a received ancillary buffer: -¼¡¤Î¥³¡¼¥É¤Ï¡¢¼õ¤±¼è¤Ã¤¿Êä½õ¥Ð¥Ã¥Õ¥¡¤«¤é +次のコードは、受け取った補助バッファから .B IP_TTL -¥ª¥×¥·¥ç¥ó¤òõ¤¹¤â¤Î¤Ç¤¢¤ë¡£ +オプションを探すものである。 .PP .in +4n .nf @@ -312,10 +312,10 @@ if (cmsg == NULL) { .\"O The code below passes an array of file descriptors over a .\"O UNIX domain socket using .\"O .BR SCM_RIGHTS : -°Ê²¼¤Î¥³¡¼¥É¤Ï¡¢ +以下のコードは、 .B SCM_RIGHTS -¤ò»È¤¤¡¢¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤ÎÇÛÎó¤ò -UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤òÄ̤·¤ÆÁ÷¤ë¤â¤Î¤Ç¤¢¤ë¡£ +を使い、ファイルデスクリプタの配列を +UNIX ドメインソケットを通して送るものである。 .PP .in +4n .nf @@ -338,7 +338,7 @@ memcpy(fdptr, myfds, NUM_FD * sizeof(int)); msg.msg_controllen = cmsg\->cmsg_len; .fi .in -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR recvmsg (2), .BR sendmsg (2) .PP diff --git a/draft/man3/confstr.3 b/draft/man3/confstr.3 index 7468ad75..2c5a1460 100644 --- a/draft/man3/confstr.3 +++ b/draft/man3/confstr.3 @@ -35,11 +35,11 @@ .\" .TH CONFSTR 3 2010-02-03 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O confstr \- get configuration dependent string variables -confstr \- ¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¤Ë°Í¸¤·¤¿Ê¸»úÎóÊÑ¿ô¤Î¼èÆÀ +confstr \- コンフィグレーションに依存した文字列変数の取得 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -49,51 +49,51 @@ confstr \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR confstr (): _POSIX_C_SOURCE\ >=\ 2 || _XOPEN_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR confstr () .\"O gets the value of configuration-dependent string variables. .BR confstr () -¤Ï¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¤Ë°Í¸¤·¤¿Ê¸»úÎóÊÑ¿ô¤ÎÃͤò¼èÆÀ¤¹¤ë¡£ +はコンフィグレーションに依存した文字列変数の値を取得する。 .PP .\"O The .\"O .I name .\"O argument is the system variable to be queried. .\"O The following variables are supported: -°ú¤­¿ô +引き数 .I name -¤Ï¡¢Ì䤤¹ç¤ï¤»ÆâÍƤòɽ¤¹¥·¥¹¥Æ¥àÊÑ¿ô¤Ç¤¢¤ë¡£ -°Ê²¼¤ÎÊÑ¿ô¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +は、問い合わせ内容を表すシステム変数である。 +以下の変数がサポートされている。 .TP .\"O .BR _CS_GNU_LIBC_VERSION " (GNU C library only; since glibc 2.3.2)" .\"O A string which identifies the GNU C library version on this system .\"O (e.g, "glibc 2.3.4"). -.BR _CS_GNU_LIBC_VERSION " (GNU C library ¸ÂÄê; glibc 2.3.2 °Ê¹ß)" -¤½¤Î¥·¥¹¥Æ¥à¤Î GNU C ¥é¥¤¥Ö¥é¥ê¤Î¥Ð¡¼¥¸¥ç¥ó¤ò¼¨¤¹Ê¸»úÎó -(Î㤨¤Ð "glibc 2.3.4")¡£ +.BR _CS_GNU_LIBC_VERSION " (GNU C library 限定; glibc 2.3.2 以降)" +そのシステムの GNU C ライブラリのバージョンを示す文字列 +(例えば "glibc 2.3.4")。 .TP .\"O .BR _CS_GNU_LIBPTHREAD_VERSION " (GNU C library only; since glibc 2.3.2)" .\"O A string which identifies the POSIX implementation supplied by this .\"O C library (e.g, "NPTL 2.3.4" or "linuxthreads-0.10"). -.BR _CS_GNU_LIBPTHREAD_VERSION " (GNU C library ¸ÂÄê; glibc 2.3.2 °Ê¹ß)" -¤½¤Î C ¥é¥¤¥Ö¥é¥ê¤¬Ä󶡤·¤Æ¤¤¤ë POSIX ¼ÂÁõ¤ò¼¨¤¹Ê¸»úÎó -(Î㤨¤Ð "NPTL 2.3.4" ¤ä "linuxthreads-0.10")¡£ +.BR _CS_GNU_LIBPTHREAD_VERSION " (GNU C library 限定; glibc 2.3.2 以降)" +その C ライブラリが提供している POSIX 実装を示す文字列 +(例えば "NPTL 2.3.4" や "linuxthreads-0.10")。 .TP .B _CS_PATH .\"O A value for the .\"O .B PATH .\"O variable which indicates where all the POSIX.2 standard utilities can .\"O be found. -¤¹¤Ù¤Æ¤Î POSIX.2 ɸ½à¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤¬¸«¤Ä¤«¤ë¤è¤¦¤Ê +すべての POSIX.2 標準ユーティリティが見つかるような .B PATH -¤ÎÃÍ¡£ +の値。 .PP .\"O If .\"O .I buf @@ -107,24 +107,24 @@ _POSIX_C_SOURCE\ >=\ 2 || _XOPEN_SOURCE .\"O .I len \- 1 .\"O characters if necessary, with a null byte (\(aq\\0\(aq) as termination. .I buf -¤¬ NULL ¤Ç¤Ê¤¯¡¢¤«¤Ä +が NULL でなく、かつ .I len -¤¬ 0 ¤Ç¤Ê¤±¤ì¤Ð +が 0 でなければ .BR confstr () -¤Ï¼èÆÀ¤·¤¿Ê¸»úÎó¤ÎÆâÍƤò +は取得した文字列の内容を .I buf -¤Ë¥³¥Ô¡¼¤¹¤ë¡£É¬Íפʤé¤ÐŤµ¤Ï +にコピーする。必要ならば長さは .I len \- 1 -ʸ»ú¤ËÀÚ¤ê¼Î¤Æ¤é¤ì¤Æ¡¢NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Ç½ªÃ¼¤µ¤ì¤ë¡£ +文字に切り捨てられて、NULL バイト (\(aq\\0\(aq) で終端される。 .\"O This can be detected by comparing the return value of .\"O .BR confstr () .\"O against .\"O .IR len . -ËöÈø¤¬ÀÚ¤ê¼Î¤Æ¤é¤ì¤¿¤«¤É¤¦¤«¤òȽÄꤹ¤ë¤Ë¤Ï¡¢ +末尾が切り捨てられたかどうかを判定するには、 .BR confstr () -¤ÎÊÖ¤êÃͤò +の返り値を .I len -¤ÈÈæ³Ó¤¹¤ì¤Ð¤è¤¤¡£ +と比較すればよい。 .PP .\"O If .\"O .I len @@ -134,13 +134,13 @@ _POSIX_C_SOURCE\ >=\ 2 || _XOPEN_SOURCE .\"O .BR confstr () .\"O just returns the value as defined below. .I len -¤¬ 0 ¤Ç +が 0 で .I buf -¤¬ NULL ¤Ê¤é¤Ð¡¢ +が NULL ならば、 .BR confstr () -¤Ï°Ê²¼¤ÇÄêµÁ¤µ¤ì¤¿ÃÍ (ÌõÃí: ÀÚ¤ê¼Î¤Æ¤ëÁ°¤Î¡¢¼èÆÀ¤·¤¿Ê¸»úÎó¤ÎŤµ) ¤òÊÖ¤¹¡£ +は以下で定義された値 (訳注: 切り捨てる前の、取得した文字列の長さ) を返す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O If .\"O .I name .\"O is a valid configuration variable, @@ -153,14 +153,14 @@ _POSIX_C_SOURCE\ >=\ 2 || _XOPEN_SOURCE .\"O .I buf .\"O is truncated. .I name -¤¬Í­¸ú¤Ê¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥óÊÑ¿ô¤Î¾ì¹ç¡¢ +が有効なコンフィギュレーション変数の場合、 .BR confstr () -¤Ï¤½¤ÎÊÑ¿ô¤ÎÃÍÁ´ÂΤòÊÝ»ý¤¹¤ë¤Î¤ËɬÍפǤ¢¤Ã¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹ -(ʸ»úÎó½ªÃ¼¤Î¥Ì¥ë¥Ð¥¤¥È¤â´Þ¤à)¡£¤³¤ÎÃÍ¤Ï +はその変数の値全体を保持するのに必要であったバイト数を返す +(文字列終端のヌルバイトも含む)。この値は .I len -¤è¤êÂ礭¤¤¤³¤È¤â¤¢¤ë¡£¤³¤Î¾ì¹ç¤Ë¤Ï¡¢ +より大きいこともある。この場合には、 .I buf -¤Ë³ÊǼ¤µ¤ì¤¿ÃͤÎËöÈø¤¬ÀÚ¤êµÍ¤á¤é¤ì¤¿¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +に格納された値の末尾が切り詰められたことを意味する。 .\"O If .\"O .I name @@ -169,10 +169,10 @@ _POSIX_C_SOURCE\ >=\ 2 || _XOPEN_SOURCE .\"O .BR confstr () .\"O returns 0. .I name -¤¬Í­¸ú¤Ê¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥óÊÑ¿ô¤À¤¬¡¢ -ÊÑ¿ô¤¬Ãͤò»ý¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +が有効なコンフィギュレーション変数だが、 +変数が値を持っていない場合、 .BR confstr () -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .\"O If .\"O .I name .\"O does not correspond to a valid configuration variable, @@ -182,15 +182,15 @@ _POSIX_C_SOURCE\ >=\ 2 || _XOPEN_SOURCE .\"O is set to .\"O .BR EINVAL . .I name -¤¬Í­¸ú¤Ê¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥óÊÑ¿ô¤ËÂбþ¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ +が有効なコンフィグレーション変数に対応していなければ、 .BR confstr () -¤Ï 0 ¤òÊÖ¤·¡¢ +は 0 を返し、 .I errno -¤Ë +に .B EINVAL -¤òÀßÄꤹ¤ë¡£ +を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O .TP .\"O .B EINVAL .\"O If the value of @@ -199,16 +199,16 @@ _POSIX_C_SOURCE\ >=\ 2 || _XOPEN_SOURCE .TP .B EINVAL .I name -¤ÎÃͤ¬ÉÔÀµ¤Ç¤¢¤ë¡£ +の値が不正である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The following code fragment determines the path where to find .\"O the POSIX.2 system utilities: -¼¡¤ÎÉôʬŪ¤Ê¥³¡¼¥É¤Ï¡¢ POSIX.2 ¥·¥¹¥Æ¥à¤Î¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤¬¤¢¤ë¥Ñ¥¹ -¤ò¼èÆÀ¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +次の部分的なコードは、 POSIX.2 システムのユーティリティがあるパス +を取得するものである。 .br .nf .in +4n @@ -224,7 +224,7 @@ confstr(_CS_PATH, pathbuf, n); .in .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sh (1), .BR exec (3), .BR system (3) diff --git a/draft/man3/conj.3 b/draft/man3/conj.3 index 65f79f45..b699a13e 100644 --- a/draft/man3/conj.3 +++ b/draft/man3/conj.3 @@ -6,16 +6,16 @@ .\" Translated Thu Jul 24 02:38:18 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: complex conjugate Ê£ÁǶ¦Ìò -.\"WORD: imaginary part µõÉô +.\"WORD: complex conjugate 複素共役 +.\"WORD: imaginary part 虚部 .\" .TH CONJ 3 2008-08-11 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O conj, conjf, conjl \- calculate the complex conjugate -conj, conjf, conjl \- Ê£ÁǶ¦Ìò¤ò·×»»¤¹¤ë +conj, conjf, conjl \- 複素共役を計算する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double complex conj(double complex " z ); @@ -25,33 +25,33 @@ conj, conjf, conjl \- Ê£ .BI "long double complex conjl(long double complex " z ); .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR conj () .\"O function returns the complex conjugate value of .\"O .IR z . .\"O That is the value obtained by changing the sign of the imaginary part. .BR conj () -´Ø¿ô¤Ï \fIz\fR ¤ÎÊ£ÁǶ¦Ìò¤òÊÖ¤¹¡£ -¤½¤ÎÃͤϵõÉô¤ÎÉä¹æ¤òȿž¤·¤ÆÆÀ¤é¤ì¤ë¡£ +関数は \fIz\fR の複素共役を返す。 +その値は虚部の符号を反転して得られる。 .LP .\"O One has: -¼¡¤Î´Ø·¸¤¬À®Î©¤¹¤ë: +次の関係が成立する: .nf cabs(z) = csqrt(z * conj(z)) .fi .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR csqrt (3), .BR complex (7) diff --git a/draft/man3/copysign.3 b/draft/man3/copysign.3 index 841f0347..1856c262 100644 --- a/draft/man3/copysign.3 +++ b/draft/man3/copysign.3 @@ -37,10 +37,10 @@ .TH COPYSIGN 3 2010-09-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O copysign, copysignf, copysignl \- copy sign of a number -.SH ̾Á° -copysign, copysignf, copysignl \- ¿ô¤ÎÉä¹æ¤ò¥³¥Ô¡¼¤¹¤ë +.SH 名前 +copysign, copysignf, copysignl \- 数の符号をコピーする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -52,14 +52,14 @@ copysign, copysignf, copysignl \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -75,49 +75,49 @@ or .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR copysign () .\"O functions return a value whose absolute value matches .\"O that of \fIx\fP, but whose sign bit matches that of \fIy\fP. -´Ø¿ô +関数 .BR copysign () -¤ÏÀäÂÐÃͤ¬ -\fIx\fP ¤ËÅù¤·¤¯¡¢Éä¹æ¥Ó¥Ã¥È¤¬ \fIy\fP ¤ËÅù¤·¤¤ÃͤòÊÖ¤¹¡£ +は絶対値が +\fIx\fP に等しく、符号ビットが \fIy\fP に等しい値を返す。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return a value whose magnitude is taken from .\"O .I x .\"O and whose sign is taken from .\"O .IR y . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¤½¤ÎÀäÂÐÃÍ¤Ï +成功すると、これらの関数は、その絶対値は .I x -¤ËÅù¤·¤¯¡¢Éä¹æ¤Ï +に等しく、符号は .I y -¤ËÅù¤·¤¤ÃͤòÊÖ¤¹¡£ +に等しい値を返す。 .\"O If \fIx\fP is a NaN, .\"O a NaN with the sign bit of \fIy\fP is returned. .\"O .SH ERRORS .\"O No errors occur. -\fIx\fP ¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤Ë \fIy\fP ¤ÎÉä¹æ¥Ó¥Ã¥È¤ò¤Ä¤±¤ÆÊÖ¤¹¡£ +\fIx\fP が NaN の場合、NaN に \fIy\fP の符号ビットをつけて返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\" 4.3BSD. .\"O This function is defined in IEC 559 (and the appendix with .\"O recommended functions in IEEE 754/IEEE 854). -¤³¤Î´Ø¿ô¤Ï IEC 559 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -(¤Þ¤¿ IEEE 754/IEEE 854 ¤Ç¤Ï¡¢ÉÕÏ¿¤Ç¿ä¾©´Ø¿ô¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£) +この関数は IEC 559 で定義されている。 +(また IEEE 754/IEEE 854 では、付録で推奨関数として定義されている。) .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O On architectures where the floating-point formats are not IEEE 754 compliant, .\"O the .\"O .BR copysign () .\"O functions may treat a negative zero as positive. -ÉâÆ°¾®¿ôÅÀ·Á¼°¤¬ IEEE 754 ½àµò¤Ç¤Ê¤¤¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢ +浮動小数点形式が IEEE 754 準拠でないアーキテクチャでは、 .BR copysign () -¤ÏÉé¤Î 0 ¤òÀµ¤È¤·¤Æ°·¤¦¤³¤È¤¬¤¢¤ë¡£ +は負の 0 を正として扱うことがある。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR signbit (3) diff --git a/draft/man3/cos.3 b/draft/man3/cos.3 index dc9a175d..7b063a55 100644 --- a/draft/man3/cos.3 +++ b/draft/man3/cos.3 @@ -43,11 +43,11 @@ .\" .TH COS 3 2010-09-11 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O cos, cosf, cosl \- cosine function -cos, cosf, cosl \- ;¸¹ (¥³¥µ¥¤¥ó) ´Ø¿ô +cos, cosf, cosl \- 余弦 (コサイン) 関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -59,14 +59,14 @@ cos, cosf, cosl \- ; .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -81,27 +81,27 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR cos () .\"O function returns the cosine of \fIx\fP, where \fIx\fP is .\"O given in radians. .BR cos () -´Ø¿ô¤Ï \fIx\fP ¤Î;¸¹ (¥³¥µ¥¤¥ó) ¤ÎÃͤòÊÖ¤¹¡£ -\fIx\fP ¤Ï¥é¥¸¥¢¥óñ°Ì¤Ç»ØÄꤹ¤ë¡£ +関数は \fIx\fP の余弦 (コサイン) の値を返す。 +\fIx\fP はラジアン単位で指定する。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the cosine of .\"O .IR x . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I x -¤Î;¸¹¤òÊÖ¤¹¡£ +の余弦を返す。 .\"O If .\"O .I x .\"O is a NaN, a NaN is returned. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x @@ -109,63 +109,63 @@ or .\"O a domain error occurs, .\"O and a NaN is returned. .I x -¤¬Àµ¤Î̵¸ÂÂ礫Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大か負の無限大の場合、 +領域エラー (domain error) が発生し、NaN が返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Domain error: \fIx\fP is an infinity -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬Ìµ¸ÂÂç¤Ç¤¢¤ë +領域エラー (domain error): \fIx\fP が無限大である .\"O .I errno .\"O is set to .\"O .BR EDOM .\"O (but see BUGS). .I errno -¤¬ +が .B EDOM -¤ËÀßÄꤵ¤ì¤ë -(¡Ö¥Ð¥°¡×¤ÎÀá¤ò»²¾È)¡£ +に設定される +(「バグ」の節を参照)。 .\"O An invalid floating-point exception .\"O .RB ( FE_INVALID ) .\"O is raised. -̵¸ú (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +無効 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD にも準拠している。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Before version 2.10, the glibc implementation did not set .\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=6780 .\"O .I errno .\"O to .\"O .B EDOM .\"O when a domain error occurred. -¥Ð¡¼¥¸¥ç¥ó 2.10 ¤è¤êÁ°¤Î glibc ¤Î¼ÂÁõ¤Ç¤Ï¡¢ -¥É¥á¥¤¥ó¥¨¥é¡¼¤¬È¯À¸¤·¤¿ºÝ¤Ë¡¢ +バージョン 2.10 より前の glibc の実装では、 +ドメインエラーが発生した際に、 .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤Ê¤«¤Ã¤¿¡£ +が設定されなかった。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR acos (3), .BR asin (3), .BR atan (3), diff --git a/draft/man3/cosh.3 b/draft/man3/cosh.3 index eddc3f85..2aee3949 100644 --- a/draft/man3/cosh.3 +++ b/draft/man3/cosh.3 @@ -43,11 +43,11 @@ .\" .TH COSH 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O cosh, coshf, coshl \- hyperbolic cosine function -cosh, coshf, coshl \- ÁжÊÀþ;¸¹ (¥Ï¥¤¥Ñ¥Ü¥ê¥Ã¥¯¥³¥µ¥¤¥ó) ´Ø¿ô +cosh, coshf, coshl \- 双曲線余弦 (ハイパボリックコサイン) 関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -59,14 +59,14 @@ cosh, coshf, coshl \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -81,44 +81,44 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR cosh () .\"O function returns the hyperbolic cosine of \fIx\fP, which .\"O is defined mathematically as: .BR cosh () -´Ø¿ô¤ÏÁжÊÀþ;¸¹ (¥Ï¥¤¥Ñ¥Ü¥ê¥Ã¥¯¥³¥µ¥¤¥ó) ¤ÎÃͤòÊÖ¤¹¡£ -¿ô³ØŪ¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë. +関数は双曲線余弦 (ハイパボリックコサイン) の値を返す。 +数学的には以下のように定義される. .nf cosh(x) = (exp(x) + exp(\-x)) / 2 .fi .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the hyperbolic cosine of .\"O .IR x . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I x -¤ÎÁжÊÀþ;¸¹¤òÊÖ¤¹¡£ +の双曲線余弦を返す。 .\"O If .\"O .I x .\"O is a NaN, a NaN is returned. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x .\"O is +0 or \-0, 1 is returned. .I x -¤¬ +0 ¤« \-0 ¤Î¾ì¹ç¡¢ 1 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 か \-0 の場合、 1 が返される。 .\"O If .\"O .I x .\"O is positive infinity or negative infinity, .\"O positive infinity is returned. .I x -¤¬Àµ¤Î̵¸ÂÂ礫Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢Àµ¤Î̵¸ÂÂ礬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大か負の無限大の場合、正の無限大が返される。 .\"O If the result overflows, .\"O a range error occurs, @@ -128,27 +128,27 @@ or .\"O or .\"O .RB + HUGE_VALL , .\"O respectively. -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +結果がオーバーフローする場合、範囲エラーが発生し、 +各関数はそれぞれ .RB + HUGE_VAL , .RB + HUGE_VALF , .RB + HUGE_VALL -¤òÊÖ¤¹¡£ +を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Range error: result overflow -ÈÏ°Ï¥¨¥é¡¼ (range error): ·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤¿ +範囲エラー (range error): 結果がオーバーフローした .\"O .I errno .\"O is set to .\"O .BR ERANGE . @@ -156,33 +156,33 @@ or .\"O .RB ( FE_OVERFLOW ) .\"O is raised. .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD にも準拠している。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O In glibc version 2.3.4 and earlier, .\"O an overflow floating-point .\"O .RB ( FE_OVERFLOW ) .\"O exception is not raised when an overflow occurs. -glibc ¥Ð¡¼¥¸¥ç¥ó 2.3.4 °ÊÁ°¤Ç¤Ï¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬È¯À¸¤·¤¿¤È¤­¤Ë¡¢ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +glibc バージョン 2.3.4 以前では、オーバーフローが発生したときに、 +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤é¤Ê¤«¤Ã¤¿¡£ +が上がらなかった。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR acosh (3), .BR asinh (3), .BR atanh (3), diff --git a/draft/man3/cpow.3 b/draft/man3/cpow.3 index ea3da30c..fc1007f7 100644 --- a/draft/man3/cpow.3 +++ b/draft/man3/cpow.3 @@ -5,16 +5,16 @@ .\" all rights reserved. .\" Translated 2003-09-02, Akihiro MOTOKI .\" -.\"WORD: power Îß¾è -.\"WORD: branch cut ʬ»ÞÀÚÃÇ +.\"WORD: power 累乗 +.\"WORD: branch cut 分枝切断 .\" .TH CPOW 3 2008-08-11 "" "Linux Programmer's Manual" .\"O .SH NAME .\"O cpow, cpowf, cpowl \- complex power function -.SH ̾Á° -cpow, cpowf, cpowl \- Ê£ÁÇ¿ô¤ÎÎß¾è´Ø¿ô +.SH 名前 +cpow, cpowf, cpowl \- 複素数の累乗関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -26,10 +26,10 @@ cpow, cpowf, cpowl \- Ê£ .BI " complex long double " z ");" .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The function calculates .\"O .I x .\"O raised to the power @@ -37,23 +37,23 @@ cpow, cpowf, cpowl \- Ê£ .\"O (With a branch cut for .\"O .I x .\"O along the negative real axis.) -¤³¤Î´Ø¿ô¤Ï +この関数は .I x -¤Î +の .I z -¾è¤ò·×»»¤¹¤ë -(¼Â¼´¤ÎÉé¤ÎÉôʬ¤Ë±è¤Ã¤Æ +乗を計算する +(実軸の負の部分に沿って .I x -¤Îʬ»ÞÀÚÃÇ (branch cut) ¤¬¤¢¤ë)¡£ +の分枝切断 (branch cut) がある)。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR pow (3), .BR complex (7) diff --git a/draft/man3/cproj.3 b/draft/man3/cproj.3 index 10484099..2df973ee 100644 --- a/draft/man3/cproj.3 +++ b/draft/man3/cproj.3 @@ -6,18 +6,18 @@ .\" Translated 2003-07-24, Akihiro MOTOKI .\" Updated 2005-02-21, Akihiro MOTOKI .\" -.\"WORD: Riemann Sphere ¥ê¡¼¥Þ¥óµåÌÌ -.\"WORD: project ¼Í±Æ -.\"WORD: complex plane Ê£ÁÇÊ¿ÌÌ -.\"WORD: compactification ¥³¥ó¥Ñ¥¯¥È(´°Á´Ï¢Â³)¤Ë¤Ê¤ë(¤Î̾»ì·Á) +.\"WORD: Riemann Sphere リーマン球面 +.\"WORD: project 射影 +.\"WORD: complex plane 複素平面 +.\"WORD: compactification コンパクト(完全連続)になる(の名詞形) .\" .TH CPROJ 3 2010-06-10 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O cproj, cprojf, cprojl \- project into Riemann Sphere -cproj, cprojf, cprojl \- ¥ê¡¼¥Þ¥óµåÌÌ¤Ø¤Î¼Í±Æ +cproj, cprojf, cprojl \- リーマン球面への射影 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double complex cproj(double complex " z ");" @@ -27,9 +27,9 @@ cproj, cprojf, cprojl \- .BI "long double complex cprojl(long double complex " z ");" .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This function projects a point in the plane onto the surface of a .\"O Riemann Sphere, the one-point compactification of the complex plane. .\"O Each finite point @@ -39,30 +39,30 @@ cproj, cprojf, cprojl \- .\"O itself. .\"O Every complex infinite value is projected to a single infinite value, .\"O namely to positive infinity on the real axis. -¤³¤Î´Ø¿ô¤Ï¡¢Ê¿Ì̾å¤ÎÅÀ¤ò¥ê¡¼¥Þ¥óµå¤ÎɽÌ̤˼ͱƤ¹¤ë¡¢¤Ä¤Þ¤ê -Ê£ÁÇÊ¿Ì̤ΰì¤Ä¤Î¼´¤Ø¤Î¥³¥ó¥Ñ¥¯¥È²½ (one-point compactification) ¤ò¹Ô¤¦¡£ -Í­¸Â¤ÊÅÀ +この関数は、平面上の点をリーマン球の表面に射影する、つまり +複素平面の一つの軸へのコンパクト化 (one-point compactification) を行う。 +有限な点 .I z -¤Ï¤¤¤º¤ì¤â +はいずれも .I z -¼«¿È¤Ø¼Í±Æ¤µ¤ì¤ë¡£ -̵¸Â¤ÎÃͤò»ý¤ÄÁ´¤Æ¤ÎÊ£ÁÇ¿ô¤Ï¡¢°ì¤Ä¤Î̵¸ÂÃͤ˼ͱƤµ¤ì¤ë¡£ -¤â¤Ã¤È¾Ü¤·¤¯¸À¤¦¤È¡¢¼Â¿ô¼´¤ÎÀµ¤Î̵¸ÂÂç¤Ë¼Í±Æ¤µ¤ì¤ë¡£ +自身へ射影される。 +無限の値を持つ全ての複素数は、一つの無限値に射影される。 +もっと詳しく言うと、実数軸の正の無限大に射影される。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O In glibc 2.11 and earlier, the implementation does something different .\"O (a \fIstereographic\fP projection onto a Riemann Sphere). .\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=10401 -¥Ð¡¼¥¸¥ç¥ó 2.11 °ÊÁ°¤Î glibc ¤Î¼ÂÁõ¤Ï°ã¤Ã¤¿Æ°ºî -(¥ê¡¼¥Þ¥óµåÌ̤ؤΡÖΩÂΡ׼ÌÁü) ¤ò¹Ô¤¦¡£ +バージョン 2.11 以前の glibc の実装は違った動作 +(リーマン球面への「立体」写像) を行う。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR complex (7) diff --git a/draft/man3/creal.3 b/draft/man3/creal.3 index 0b7742a5..ebbddb5e 100644 --- a/draft/man3/creal.3 +++ b/draft/man3/creal.3 @@ -6,16 +6,16 @@ .\" Translated Thu Jul 24 01:33:13 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: real part ¼ÂÉô -.\"WORD: imaginary part µõÉô +.\"WORD: real part 実部 +.\"WORD: imaginary part 虚部 .\" .TH CREAL 3 2008-08-11 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O creal, crealf, creall \- get real part of a complex number -creal, crealf, creall \- Ê£ÁÇ¿ô¤Î¼ÂÉô¤ò¼èÆÀ¤¹¤ë +creal, crealf, creall \- 複素数の実部を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double creal(double complex " z ); @@ -25,39 +25,39 @@ creal, crealf, creall \- Ê£ .BI "long double creall(long double complex " z ); .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR creal () .\"O function returns the real part of the complex number .\"O .IR z . .BR creal () -´Ø¿ô¤ÏÊ£ÁÇ¿ô +関数は複素数 .I z -¤Î¼ÂÉô¤òÊÖ¤¹¡£ +の実部を返す。 .LP .\"O One has: -¼¡¤Î´Ø·¸¤¬À®Î©¤¹¤ë: +次の関係が成立する: .nf z = creal(z) + I * cimag(z) .fi .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The gcc supports also __real__. .\"O That is a GNU extension. -gcc ¤Ç¤Ï __real__ ¤ò»È¤¦¤³¤È¤â¤Ç¤­¤ë¤¬¡¢ -¤³¤ì¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ +gcc では __real__ を使うこともできるが、 +これは GNU による拡張である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR cimag (3), .BR complex (7) diff --git a/draft/man3/crypt.3 b/draft/man3/crypt.3 index e479087f..86aa7ae3 100644 --- a/draft/man3/crypt.3 +++ b/draft/man3/crypt.3 @@ -39,19 +39,19 @@ .\" Updated 2008-07-30 by Kentaro Shirakata .\" Updated 2009-09-28 by Kentaro Shirakata .\" -.\"WORD: encryption °Å¹æ²½ -.\"WORD: key ¸° +.\"WORD: encryption 暗号化 +.\"WORD: key 鍵 .\" " .TH CRYPT 3 2011-09-15 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O crypt, crypt_r \- password and data encryption -crypt, crypt_r \- ¥Ñ¥¹¥ï¡¼¥É¤È¥Ç¡¼¥¿¤Î°Å¹æ²½ +crypt, crypt_r \- パスワードとデータの暗号化 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _XOPEN_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp @@ -66,23 +66,23 @@ crypt, crypt_r \- .fi .sp .\"O Link with \fI\-lcrypt\fP. -\fI\-lcrypt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lcrypt\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR crypt () .\"O is the password encryption function. .\"O It is based on the Data Encryption .\"O Standard algorithm with variations intended (among other things) to .\"O discourage use of hardware implementations of a key search. .BR crypt () -¤Ï¥Ñ¥¹¥ï¡¼¥É°Å¹æ²½´Ø¿ô¤Ç¤¢¤ë¡£ -¸°Ãµº÷¤Î¥Ï¡¼¥É¥¦¥§¥¢¤Ë¤è¤ë¼ÂÁõ¤ò˸¤²¤ë¤è¤¦¤Ë(¤½¤Î¾¤Ë¤â¤¤¤í¤¤¤í) -Êѹ¹¤·¤¿ Data Encryption Standard ¥¢¥ë¥´¥ê¥º¥à¤ò¸µ¤Ë¤·¤Æ¤¤¤ë¡£ +はパスワード暗号化関数である。 +鍵探索のハードウェアによる実装を妨げるように(その他にもいろいろ) +変更した Data Encryption Standard アルゴリズムを元にしている。 .PP .\"O .I key .\"O is a user's typed password. .I key -¤Ï¥æ¡¼¥¶¤¬ÆþÎϤ¹¤ë¥Ñ¥¹¥ï¡¼¥É¤Ç¤¢¤ë¡£ +はユーザが入力するパスワードである。 .PP .\"O .I salt .\"O is a two-character string chosen from the set @@ -90,10 +90,10 @@ crypt, crypt_r \- .\"O This string is used to .\"O perturb the algorithm in one of 4096 different ways. .I salt -¤Ï½¸¹ç +は集合 [\fBa\fP\(en\fBzA\fP\(en\fBZ0\fP\(en\fB9./\fP] -¤«¤éÁª¤Ð¤ì¤¿ 2 ʸ»ú¤Îʸ»úÎó¤Ç¤¢¤ë¡£ -¤³¤Îʸ»úÎó¤Ï¥¢¥ë¥´¥ê¥º¥à¤Î½ÐÎϤò 4096 Ä̤ê¤Ë¤«¤­Í𤹤Τ˻Ȥï¤ì¤ë¡£ +から選ばれた 2 文字の文字列である。 +この文字列はアルゴリズムの出力を 4096 通りにかき乱すのに使われる。 .PP .\"O By taking the lowest 7 bits of each of the first eight characters of the .\"O .IR key , @@ -106,12 +106,12 @@ crypt, crypt_r \- .\"O The return value points to static data whose content is .\"O overwritten by each call. .I key -¤ÎºÇ½é¤Î 8 ʸ»ú¤Î³Æʸ»ú¤«¤é²¼°Ì 7 ¥Ó¥Ã¥È¤ò¤È¤Ã¤Æ 56 ¥Ó¥Ã¥È¤Î¸°¤¬ÆÀ¤é¤ì¤ë¡£ -¤³¤Î 56 ¥Ó¥Ã¥È¤Î¸°¤ÏÆÃÄê¤Îʸ»úÎó(¤Õ¤Ä¤¦¤Ï¤¹¤Ù¤Æ 0 ¤Îʸ»úÎó) -¤ò·«¤êÊÖ¤·°Å¹æ²½¤¹¤ë¤Î¤ËÍѤ¤¤é¤ì¤ë¡£ -ÊÖ¤êÃͤϰŹ沽¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¡¢13 ¤Î°õ»ú²Äǽ¤Ê ASCII ʸ»ú -¤«¤é¤Ê¤ë(ºÇ½é¤Î 2 ʸ»ú¤Ï salt ¤½¤Î¤â¤Î)¡£ -ÊÖ¤êÃͤϡ¢´Ø¿ô¸Æ½Ð¤·¤Î¤¿¤Ó¤Ë¾å½ñ¤­¤µ¤ì¤ëÀÅŪ¤Ê¥Ç¡¼¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +の最初の 8 文字の各文字から下位 7 ビットをとって 56 ビットの鍵が得られる。 +この 56 ビットの鍵は特定の文字列(ふつうはすべて 0 の文字列) +を繰り返し暗号化するのに用いられる。 +返り値は暗号化されたパスワードへのポインタで、13 の印字可能な ASCII 文字 +からなる(最初の 2 文字は salt そのもの)。 +返り値は、関数呼出しのたびに上書きされる静的なデータへのポインタである。 .PP .\"O Warning: The key space consists of .\"O .if t 2\s-2\u56\s0\d @@ -129,19 +129,19 @@ crypt, crypt_r \- .\"O .BR passwd (1) .\"O program that checks for crackable passwords during the selection process is .\"O recommended. -·Ù¹ð: ¸°¶õ´Ö¤Ï +警告: 鍵空間は .if t 2\s-2\u56\s0\d .if n 2**56 -= 7.2e16 ¤Î²Äǽ¤ÊÃͤ«¤éÀ®¤ë¡£ -¤³¤Î¸°¶õ´Ö¤ÎÁ´Ãµº÷¤Ï¶¯ÎϤÊÊÂÎó·×»»µ¡¤ò»È¤¨¤Ð²Äǽ¤Ç¤¢¤ë¡£¤Þ¤¿ += 7.2e16 の可能な値から成る。 +この鍵空間の全探索は強力な並列計算機を使えば可能である。また .BR crack (1) -¤Î¤è¤¦¤Ê¥½¥Õ¥È¥¦¥§¥¢¤Ï¤³¤Î¸°¶õ´Ö¤ÎÃæ¤Ç¡¢Â¿¤¯¤Î¿Í¤Ë¥Ñ¥¹¥ï¡¼¥É¤È¤·¤Æ -»È¤ï¤ì¤ë¤è¤¦¤Ê¸°¤Ë¤Ä¤¤¤Æ¤ÎÁ´Ãµº÷¤¬²Äǽ¤Ç¤¢¤ë¡£ -¤½¤ì¤æ¤¨¡¢¥Ñ¥¹¥ï¡¼¥É¤òÁªÂò¤¹¤ë¤È¤­¤Ë¤Ï¡¢¤¹¤¯¤Ê¤¯¤È¤â¡¢ -°ìÈÌŪ¤Ë»È¤ï¤ì¤ëñ¸ì¤È̾Á°¤ÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +のようなソフトウェアはこの鍵空間の中で、多くの人にパスワードとして +使われるような鍵についての全探索が可能である。 +それゆえ、パスワードを選択するときには、すくなくとも、 +一般的に使われる単語と名前は避けるべきである。 .BR passwd (1) -¤ò»È¤¦»þ¤Ë¤Ï¥¯¥é¥Ã¥¯¤µ¤ì¤¦¤ë¥Ñ¥¹¥ï¡¼¥É¤Ë¤Ä¤¤¤Æ¤Î¸¡ºº¤ò¤¹¤ë¤³¤È¤¬ -¿ä¾©¤µ¤ì¤ë¡£ +を使う時にはクラックされうるパスワードについての検査をすることが +推奨される。 .PP .\"O The DES algorithm itself has a few quirks which make the use of the .\"O .BR crypt () @@ -151,13 +151,13 @@ crypt, crypt_r \- .\"O .BR crypt () .\"O interface for a cryptography project, don't do it: get a good book on .\"O encryption and one of the widely available DES libraries. -DES ¥¢¥ë¥´¥ê¥º¥à¤Ë¤Ï¤¤¤¯¤Ä¤«¤ÎÊʤ¬¤¢¤ê¡¢¤½¤ì¤Ë¤è¤Ã¤Æ¥Ñ¥¹¥ï¡¼¥Éǧ¾Ú°Ê³°¤Ë +DES アルゴリズムにはいくつかの癖があり、それによってパスワード認証以外に .BR crypt () -¤ò»È¤¦¤Î¤Ï¤¿¤¤¤Ø¤ó¤è¤¯¤Ê¤¤ÁªÂò¤È¤Ê¤Ã¤Æ¤¤¤ë¡£¤â¤· +を使うのはたいへんよくない選択となっている。もし .BR crypt () -¤ò°Å¹æ¥×¥í¥¸¥§¥¯¥È¤Ë»È¤ª¤¦¤È¤¤¤¦°Æ¤ò¤â¤Ã¤Æ¤¤¤ë¤Ê¤é¤Ð¡¢¤½¤ì¤Ï¤ä¤á¤¿¤Û¤¦¤¬ -¤è¤¤¡£°Å¹æ²½¤Ë¤Ä¤¤¤Æ¤Î¤è¤¤ËܤÈï¤Ç¤âÆþ¼ê¤Ç¤­¤ë DES ¥é¥¤¥Ö¥é¥ê¤Î¤Ò¤È¤Ä¤ò -¼ê¤Ë¤¤¤ì¤ë¤Ù¤­¤À¡£ +を暗号プロジェクトに使おうという案をもっているならば、それはやめたほうが +よい。暗号化についてのよい本と誰でも入手できる DES ライブラリのひとつを +手にいれるべきだ。 .\"O .BR crypt_r () .\"O is a reentrant version of @@ -171,62 +171,62 @@ DES .\"O to zero before the first call to .\"O .BR crypt_r (). .BR crypt_r () -¤Ï +は .BR crypt () -¤ÎºÆÆþ²ÄǽÈǤǤ¢¤ë¡£ +の再入可能版である。 .I data -¤Ç¼¨¤µ¤ì¤ë¹½Â¤ÂΤϷë²Ì¥Ç¡¼¥¿¤ÎÊݸ¤È¾ðÊó¤Î´ÉÍý¤Ë»È¤ï¤ì¤ë¡£ -¤³¤Î¹½Â¤ÂΤËÂФ·¤Æ(¥á¥â¥ê¤ò³ä¤êÅö¤Æ¤ë¤³¤È°Ê³°¤Ë)¸Æ¤Ó½Ð¤·¸µ¤¬¤¹¤ë¤Ù¤­Í£°ì¤Î -¤³¤È¤Ï¡¢ +で示される構造体は結果データの保存と情報の管理に使われる。 +この構造体に対して(メモリを割り当てること以外に)呼び出し元がするべき唯一の +ことは、 .BR crypt_r () -¤Î½é²ó¤Î¸Æ¤Ó½Ð¤·¤ÎÁ°¤Ë +の初回の呼び出しの前に .I data->initialized -¤ò¥¼¥í¤Ë¤¹¤ë¤³¤È¤À¤±¤Ç¤¢¤ë¡£ +をゼロにすることだけである。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, a pointer to the encrypted password is returned. .\"O On error, NULL is returned. -À®¸ù¤Î¾ì¹ç¤Ë¤Ï¡¢°Å¹æ²½¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï NULL ¤¬ÊÖ¤µ¤ì¤ë¡£ +成功の場合には、暗号化されたパスワードへのポインターが返される。 +エラーの場合には NULL が返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B ENOSYS .\"O The .\"O .BR crypt () .\"O function was not implemented, probably because of U.S.A. export restrictions. .BR crypt () -´Ø¿ô¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£Â¿Ê¬¥¢¥á¥ê¥«¤ÎÍ¢½Ðµ¬À©¤Î¤¿¤á¤Ë¡£ +関数が実装されていない。多分アメリカの輸出規制のために。 .\"O .\" This level of detail is not necessary in this man page. . . -.\" ¤³¤Î¥ì¥Ù¥ë¤Î¾ÜºÙ¤Ï¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Ë¤ÏɬÍפʤ¤¤À¤í¤¦¡Ä -.\" (ÌõÃí: °Ê²¼¤Ï MAEHARA Kouichi ¤µ¤ó¤ÎÌõ) +.\" このレベルの詳細はこのマニュアルには必要ないだろう… +.\" (訳注: 以下は MAEHARA Kouichi さんの訳) .\" .PP .\"O .\" When encrypting a plain text P using DES with the key K results in the .\"O .\" encrypted text C, then the complementary plain text P' being encrypted .\"O .\" using the complementary key K' will result in the complementary encrypted .\"O .\" text C'. -.\"ʿʸ P ¤ò¸° K ¤Ç¤â¤Ã¤Æ DES ¤òÍѤ¤¤Æ°Å¹æ²½¤·¤¿¤È¤­¤Î·ë²Ì¤Î°Å¹æʸ -.\"¤ò C ¤È¤¹¤ë¤Ê¤é¤Ð¡¢P ¤ËÂФ¹¤ë 2 ¤ÎÊä¿ôŪ¤Êʿʸ P' ¤ò¸° K -.\"¤ËÂФ¹¤ëƱÍͤËÊä¿ôŪ¤Ê¸° K' ¤òÍѤ¤¤Æ°Å¹æ²½¤¹¤ë¤È C ¤ËÂФ·¤Æ¤ä¤Ï¤êÊä -.\"¿ôŪ¤Ê°Å¹æʸ C' ¤È¤Ê¤ë¡£ +.\"平文 P を鍵 K でもって DES を用いて暗号化したときの結果の暗号文 +.\"を C とするならば、P に対する 2 の補数的な平文 P' を鍵 K +.\"に対する同様に補数的な鍵 K' を用いて暗号化すると C に対してやはり補 +.\"数的な暗号文 C' となる。 .\".PP .\"O .\" Weak keys are keys which stay invariant under the DES key transformation. .\"O .\" The four known weak keys 0101010101010101, fefefefefefefefe, .\"O .\" 1f1f1f1f0e0e0e0e and e0e0e0e0f1f1f1f1 must be avoided. -.\"DES ¤Ë¤è¤ë¸°¤ÎÊÑ·Á¤Ë¤ª¤¤¤Æ¡¢¾ï¤Ë¹¶·â¤ËÂФ·¤Æ¼å¤¤¸°¤¬Â¸ºß¤¹¤ë¡£¤è¤¯ -.\"ÃΤé¤ì¤¿»Í¤Ä¤Î¼å¤¤¸°¤Ï 0101010101010101¡¢fefefefefefefefe¡¢ -.\"1f1f1f1f0e0e0e0e¡¢e0e0e0e0f1f1f1f1 ¤Ç¤¢¤ê¤³¤ì¤é¤Î»ÈÍѤÏÈò¤±¤Ê¤±¤ì¤Ð -.\"¤Ê¤é¤Ê¤¤¡£ +.\"DES による鍵の変形において、常に攻撃に対して弱い鍵が存在する。よく +.\"知られた四つの弱い鍵は 0101010101010101、fefefefefefefefe、 +.\"1f1f1f1f0e0e0e0e、e0e0e0e0f1f1f1f1 でありこれらの使用は避けなければ +.\"ならない。 .\".PP .\"O .\" There are six known half weak key pairs, which keys lead to the same .\"O .\" encrypted data. Keys which are part of such key clusters should be .\"O .\" avoided. .\"O .\" Sorry, I could not find out what they are. .\"O .\"" -.\"Ʊ°ì¤Î°Å¹æ²½·ë²Ì¤òƳ¤¤¤Æ¤·¤Þ¤¦Ï»ÁȤΤä¤ä¼å¤¤¸°¤â¤¢¤ë¡£¤³¤¦¤·¤¿¤¤¤¯ -.\"¤Ä¤«¤Î¸°¤Î»ÈÍѤϤä¤Ï¤êÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -.\"¿½¤·¤ï¤±¤Ê¤¤¤³¤È¤À¤¬¡¢¤³¤ì¤Ë¤É¤ó¤Ê¸°¤¬³ºÅö¤¹¤ë¤Î¤«¤ÏÄ´¤Ù¤­¤ì¤Ê¤«¤Ã -.\"¤¿¡£ +.\"同一の暗号化結果を導いてしまう六組のやや弱い鍵もある。こうしたいく +.\"つかの鍵の使用はやはり避けるべきである。 +.\"申しわけないことだが、これにどんな鍵が該当するのかは調べきれなかっ +.\"た。 .\".PP .\"O .\" Heavily redundant data causes trouble with DES encryption, when used in the .\"O .\" .I codebook @@ -236,55 +236,55 @@ DES .\"O .\" .BR crypt () .\"O .\" interface should be used only for its intended purpose of password .\"O .\" verification, and should not be used as part of a data encryption tool. -.\"¶Ëü¤Ë¾éĹ²½¤Ç¤¢¤ë¥Ç¡¼¥¿¤Ï¡¢ +.\"極端に冗長化であるデータは、 .\".BR crypt () -.\"¤Î¤è¤¦¤Ë -.\".I "°Å¹æɽ(codebook)" -.\"¥â¡¼¥É¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë DES ¤Ë¤è¤ë°Å¹æ²½¤Ë¤ª¤¤¤Æ¤Ï¥È¥é¥Ö¥ë¤Î¤â¤È¤È¤Ê -.\"¤ë¡£ +.\"のように +.\".I "暗号表(codebook)" +.\"モードで実装されている DES による暗号化においてはトラブルのもととな +.\"る。 .\".BR crypt () -.\"¤Ï¤½¤ÎÁÛÄêÄ̤ꡢ¥Ñ¥¹¥ï¡¼¥É¤Îǧ¾Ú¤ÎÌÜŪ¤Ë¤Î¤ßÍøÍѤ¹¤Ù¤­¤â¤Î¤Ç¤¢¤ê¡¢ -.\"¥Ç¡¼¥¿¤Î°Å¹æ²½¥Ä¡¼¥ë¤È¤·¤ÆÍѤ¤¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +.\"はその想定通り、パスワードの認証の目的にのみ利用すべきものであり、 +.\"データの暗号化ツールとして用いてはならない。 .\".PP .\"O .\" The first and last three output bits of the fourth S-box can be .\"O .\" represented as function of their input bits. Empiric studies have .\"O .\" shown that S-boxes partially compute the same output for similar input. .\"O .\" It is suspected that this may contain a back door which could allow the .\"O .\" NSA to decrypt DES encrypted data. -.\"Âè»Í S-box ¤Î¡¢ÀèƬ¤ÈËöÈø»°¤Ä¤Î½ÐÎÏ bit ·²¤Ï¡¢¤½¤ÎÆþÎÏ bit ·²¤Î´Ø¿ô -.\"¤È¤·¤Æɽ¤ï¤¹¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤Î¤è¤¦¤Ê S-box ·²¤ÏƱ¤¸ÆþÎϤËÂФ·¤Æ¤ÏÉô -.\"ʬŪ¤ËƱ¤¸°Å¹æ²½·ë²Ì¤òÀ¸À®¤·¤Æ¤·¤Þ¤¦¤³¤È¤¬¼Â¸³¤Ë¤è¤Ã¤Æ¤¢¤­¤é¤«¤Ë¤µ -.\"¤ì¤Æ¤¤¤ë¡£¤³¤ì¤Ï¡¢¹ñ²È°ÂÁ´Êݾã¶É(NSA)¤¬ DES ¤Ë¤è¤ë°Å¹æ¥Ç¡¼¥¿¤Î²òÆɤò²Äǽ -.\"¤Ë¤¹¤ë¤¿¤á¤ËÀߤ±¤¿Î¢¸ý¤Ê¤Î¤Ç¤Ï¤Ê¤¤¤«¤Èµ¿¤ï¤ì¤Æ¤¤¤ë¡£ +.\"第四 S-box の、先頭と末尾三つの出力 bit 群は、その入力 bit 群の関数 +.\"として表わすことができる。このような S-box 群は同じ入力に対しては部 +.\"分的に同じ暗号化結果を生成してしまうことが実験によってあきらかにさ +.\"れている。これは、国家安全保障局(NSA)が DES による暗号データの解読を可能 +.\"にするために設けた裏口なのではないかと疑われている。 .\".PP .\"O .\" Making encrypted data computed using crypt() publicly available has .\"O .\" to be considered insecure for the given reasons. -.\"¤³¤¦¤¤¤Ã¤¿Íýͳ¤Ë¤è¤ê¡¢crypt() ¤ò»ÈÍѤ·¤¿°Å¹æ²½¥Ç¡¼¥¿¤ò¸ø³«¤¹¤ë¤³¤È -.\"¤Ï°ÂÁ´¤Ç¤Ï¤Ê¤¤¤Èǧ¼±¤¹¤ë¤Ù¤­¤Ê¤Î¤Ç¤¢¤ë¡£ +.\"こういった理由により、crypt() を使用した暗号化データを公開すること +.\"は安全ではないと認識するべきなのである。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .BR crypt (): SVr4, 4.3BSD, POSIX.1-2001. .\"O .BR crypt_r () .\"O is a GNU extension. .BR crypt_r () -¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ë¡£ +は GNU 拡張である。 .\"O .SH NOTES .\"O .SS Glibc Notes -.SH Ãí°Õ -.SS glibc ¤Ç¤ÎÃí°Õ +.SH 注意 +.SS glibc での注意 .\"O The glibc2 version of this function supports additional .\"O encryption algorithms. -¤³¤Î´Ø¿ô¤Î glibc2 ÈǤÏÄɲäΰŹ沽¥¢¥ë¥´¥ê¥º¥à¤ËÂбþ¤·¤Æ¤¤¤ë¡£ +この関数の glibc2 版は追加の暗号化アルゴリズムに対応している。 .\"O If .\"O .I salt .\"O is a character string starting with the characters "$\fIid\fP$" .\"O followed by a string terminated by "$": -¤â¤· +もし .I salt -¤Îʸ»úÎó¤¬ "$\fIid\fP$" ¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤Æ¡¢"$" ¤Ç½ª¤ï¤Ã¤Æ¤¤¤ëʸ»úÎó¤¬ -³¤¤¤Æ¤¤¤ë¾ì¹ç: +の文字列が "$\fIid\fP$" で始まっていて、"$" で終わっている文字列が +続いている場合: .RS $\fIid\fP$\fIsalt\fP$\fIencrypted\fP @@ -297,12 +297,12 @@ $\fIid\fP$\fIsalt\fP$\fIencrypted\fP .\"O The following values of .\"O .I id .\"O are supported: -DES ¤ò»È¤¦Âå¤ï¤ê¤Ë¡¢ +DES を使う代わりに、 .I id -¤Ç»ÈÍѤ¹¤ë°Å¹æ²½¼êË¡¤ò¼±Ê̤·¡¢¤³¤ì¤¬¥Ñ¥¹¥ï¡¼¥Éʸ»úÎó¤Î»Ä¤ê¤ÎÉôʬ¤ò²ò¼á¤¹¤ë -ÊýË¡¤ò·èÄꤹ¤ë¡£ +で使用する暗号化手法を識別し、これがパスワード文字列の残りの部分を解釈する +方法を決定する。 .I id -¤ÎÃͤȤ·¤Æ¡¢°Ê²¼¤ÎÃͤËÂбþ¤·¤Æ¤¤¤ë: +の値として、以下の値に対応している: .RS .TS l l. @@ -311,8 +311,8 @@ _ 1 | MD5 .\"O 2a | Blowfish (not in mainline glibc; added in some .\"O | Linux distributions) -2a | Blowfish (ËÜή¤Î glibc ¤Ë¤ÏÆþ¤Ã¤Æ¤¤¤Ê¤¤; - | ¤¤¤¯¤Ä¤«¤Î Linux ¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤ÇÄɲ䵤ì¤Æ¤¤¤ë) +2a | Blowfish (本流の glibc には入っていない; + | いくつかの Linux ディストリビューションで追加されている) .\" openSUSE has Blowfish, but AFAICS, this option is not supported .\" natively by glibc -- mtk, Jul 08 .\" @@ -321,26 +321,26 @@ _ .\" if any distros add the support. .\"O 5 | SHA-256 (since glibc 2.7) .\"O 6 | SHA-512 (since glibc 2.7) -5 | SHA-256 (glibc 2.7 °Ê¹ß) -6 | SHA-512 (glibc 2.7 °Ê¹ß) +5 | SHA-256 (glibc 2.7 以降) +6 | SHA-512 (glibc 2.7 以降) .TE .RE .\"O So $5$\fIsalt\fP$\fIencrypted\fP is an SHA-256 encoded .\"O password and $6$\fIsalt\fP$\fIencrypted\fP is an .\"O SHA-512 encoded one. -½¾¤Ã¤Æ¡¢$5$\fIsalt\fP$\fIencrypted\fP ¤Ï SHA-256 ¤Ç¥¨¥ó¥³¡¼¥É¤µ¤ì¤¿ -¥Ñ¥¹¥ï¡¼¥É¤Ç¤¢¤ê¡¢$6$\fIsalt\fP$\fIencrypted\fP ¤Ï SHA-512 ¤Ç -¥¨¥ó¥³¡¼¥É¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤Ç¤¢¤ë¡£ +従って、$5$\fIsalt\fP$\fIencrypted\fP は SHA-256 でエンコードされた +パスワードであり、$6$\fIsalt\fP$\fIencrypted\fP は SHA-512 で +エンコードされたパスワードである。 .\"O "\fIsalt\fP" stands for the up to 16 characters .\"O following "$\fIid\fP$" in the salt. .\"O The encrypted part of the password string is the actual computed password. .\"O The size of this string is fixed: -"\fIsalt\fP" ¤Ï salt ¤Ë¤ª¤±¤ë "$\fIid\fP$" ¤Ë°ú¤­Â³¤¯ 16 ʸ»ú°Ê²¼¤Î -ʸ»úÎó¤Ç¤¢¤ë¡£ -¥Ñ¥¹¥ï¡¼¥Éʸ»úÎó¤Î°Å¹æ²½Éôʬ¤Ï¼ÂºÝ¤Ë·×»»¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤Ç¤¢¤ë¡£ -¤³¤Îʸ»úÎó¤Î¥µ¥¤¥º¤Ï¸ÇÄê¤Ç¤¢¤ë: +"\fIsalt\fP" は salt における "$\fIid\fP$" に引き続く 16 文字以下の +文字列である。 +パスワード文字列の暗号化部分は実際に計算されたパスワードである。 +この文字列のサイズは固定である: .TS l l. MD5 | 22 characters @@ -351,19 +351,19 @@ SHA-512 | 86 characters .\"O The characters in "\fIsalt\fP" and "\fIencrypted\fP" are drawn from the set .\"O The characters in "" and "" are drawn from the set .\"O [\fBa\fP\(en\fBzA\fP\(en\fBZ0\fP\(en\fB9./\fP]. -"\fIsalt\fP" ¤È "\fIencrypted\fP" ¤Îʸ»ú¤Ï -[\fBa\fP\(en\fBzA\fP\(en\fBZ0\fP\(en\fB9./\fP] ¤Î½¸¹ç¤«¤é -Áª¤Ð¤ì¤ë¡£ +"\fIsalt\fP" と "\fIencrypted\fP" の文字は +[\fBa\fP\(en\fBzA\fP\(en\fBZ0\fP\(en\fB9./\fP] の集合から +選ばれる。 .\"O In the MD5 and SHA implementations the entire .\"O .I key .\"O is significant (instead of only the first .\"O 8 bytes in DES). -MD5 ¤È SHA ¤Î¼ÂÁõ¤Ç¤Ï¡¢ +MD5 と SHA の実装では、 .I key -Á´ÂΤ¬°ÕÌ£¤¬¤¢¤ë -(DES ¤Î¾ì¹ç¤Ë¤ÏºÇ½é¤Î 8 ʸ»ú¤À¤±¤Ë°ÕÌ£¤¬¤¢¤ë)¡£ +全体が意味がある +(DES の場合には最初の 8 文字だけに意味がある)。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR login (1), .BR passwd (1), .BR encrypt (3), diff --git a/draft/man3/csin.3 b/draft/man3/csin.3 index 5d114ee0..d60fc895 100644 --- a/draft/man3/csin.3 +++ b/draft/man3/csin.3 @@ -6,17 +6,17 @@ .\" Translated Wed Jul 23 05:24:36 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: sine Àµ¸¹ -.\"WORD: cosine ;¸¹ -.\"WORD: tangent ÀµÀÜ +.\"WORD: sine 正弦 +.\"WORD: cosine 余弦 +.\"WORD: tangent 正接 .\" .TH CSIN 3 2008-08-11 "" "Linux Programmer's Manual" .\"O .SH NAME .\"O csin, csinf, csinl \- complex sine function -.SH ̾Á° -csin, csinf, csinl \- Ê£ÁÇ¿ô¤ÎÀµ¸¹ (sine) +.SH 名前 +csin, csinf, csinl \- 複素数の正弦 (sine) .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double complex csin(double complex " z ");" @@ -26,24 +26,24 @@ csin, csinf, csinl \- Ê£ .BI "long double complex csinl(long double complex " z ");" .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The complex sine function is defined as: -Ê£ÁÇ¿ô¤ÎÀµ¸¹ (sine) ´Ø¿ô csin(z) ¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë¡£ +複素数の正弦 (sine) 関数 csin(z) は以下のように定義される。 .nf csin(z) = (exp(i * z) \- exp(\-i * z)) / (2 * i) .fi .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR casin (3), .BR ccos (3), diff --git a/draft/man3/csinh.3 b/draft/man3/csinh.3 index ac08026e..1dc44416 100644 --- a/draft/man3/csinh.3 +++ b/draft/man3/csinh.3 @@ -6,18 +6,18 @@ .\" Translated Wed Jul 23 05:54:24 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: hyperbolic ÁжÊ(Àþ¤Î) -.\"WORD: sine Àµ¸¹ -.\"WORD: cosine ;¸¹ -.\"WORD: tangent ÀµÀÜ +.\"WORD: hyperbolic 双曲(線の) +.\"WORD: sine 正弦 +.\"WORD: cosine 余弦 +.\"WORD: tangent 正接 .\" .TH CSINH 3 2008-08-11 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O csinh, csinhf, csinhl \- complex hyperbolic sine -csinh, csinhf, csinhl \- Ê£ÁÇ¿ô¤ÎÁжÊÀþÀµ¸¹ (hyperbolic sine) +csinh, csinhf, csinhl \- 複素数の双曲線正弦 (hyperbolic sine) .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double complex csinh(double complex " z ");" @@ -27,24 +27,24 @@ csinh, csinhf, csinhl \- Ê£ .BI "long double complex csinhl(long double complex " z ");" .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The complex hyperbolic sine function is defined as: -Ê£ÁÇ¿ô¤ÎÁжÊÀþÀµ¸¹ (hyperbolic sine) ´Ø¿ô sinh(z) ¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë¡£ +複素数の双曲線正弦 (hyperbolic sine) 関数 sinh(z) は以下のように定義される。 .nf csinh(z) = (exp(z)\-exp(\-z))/2 .fi .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR casinh (3), .BR ccosh (3), diff --git a/draft/man3/csqrt.3 b/draft/man3/csqrt.3 index f3727ed2..66e38f82 100644 --- a/draft/man3/csqrt.3 +++ b/draft/man3/csqrt.3 @@ -6,16 +6,16 @@ .\" Translated Thu Jul 24 00:47:23 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: square root Ê¿Êýº¬ -.\"WORD: branch cut ʬ»ÞÀÚÃÇ +.\"WORD: square root 平方根 +.\"WORD: branch cut 分枝切断 .\" .TH CSQRT 3 2008-08-11 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O csqrt, csqrtf, csqrtl \- complex square root -csqrt, csqrtf, csqrtl \- Ê£ÁÇ¿ô¤ÎÊ¿Êýº¬ +csqrt, csqrtf, csqrtl \- 複素数の平方根 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double complex csqrt(double complex " z ");" @@ -25,31 +25,31 @@ csqrt, csqrtf, csqrtl \- Ê£ .BI "long double complex csqrtl(long double complex " z ");" .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Calculate the square root of a given complex number, .\"O with nonnegative real part, and .\"O with a branch cut along the negative real axis. .\"O (That means that \fIcsqrt(\-1+eps*I)\fP will be close to I while .\"O \fIcsqrt(\-1\-eps*I)\fP will be close to \-I, \fIif eps\fP is a small positive .\"O real number.) -Í¿¤¨¤é¤ì¤¿Ê£ÁÇ¿ô¤ÎÊ¿Êýº¬¤ò·×»»¤¹¤ë¡£ -⤷¡¢Ê¿Êýº¬¤Î¤¦¤Á¼Â¿ôÉô¤¬ÈóÉé¤ÎÃͤòÊÖ¤¹¡£ -¼Â¼´¤ÎÉé¤ÎÉôʬ¤Ë±è¤Ã¤Æʬ»ÞÀÚÃÇ (branch cut) ¤¬¤¢¤ë¡£ -(¤Ä¤Þ¤ê¡¢ \fIeps\fP ¤ò¾®¤µ¤ÊÀµ¤Î¼Â¿ô¤È¤·¤¿¾ì¹ç¡¢ -\fIcsqrt(\-1+eps*I)\fP ¤¬ I ¤Ë¶áÉÕ¤¤¤Æ¤¤¤­¡¢ -°ìÊý \fIcsqrt(\-1\-eps*I)\fP ¤Ï \-I ¤Ë¶áÉÕ¤¤¤Æ¤¤¤¯¡¢ -¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£) +与えられた複素数の平方根を計算する。 +但し、平方根のうち実数部が非負の値を返す。 +実軸の負の部分に沿って分枝切断 (branch cut) がある。 +(つまり、 \fIeps\fP を小さな正の実数とした場合、 +\fIcsqrt(\-1+eps*I)\fP が I に近付いていき、 +一方 \fIcsqrt(\-1\-eps*I)\fP は \-I に近付いていく、 +ということである。) .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR cexp (3), .BR complex (7) diff --git a/draft/man3/ctan.3 b/draft/man3/ctan.3 index 4180e582..ff670603 100644 --- a/draft/man3/ctan.3 +++ b/draft/man3/ctan.3 @@ -6,17 +6,17 @@ .\" Translated 2003-07-23, Akihiro MOTOKI .\" Updated 2005-02-21, Akihiro MOTOKI .\" -.\"WORD: sine Àµ¸¹ -.\"WORD: cosine ;¸¹ -.\"WORD: tangent ÀµÀÜ +.\"WORD: sine 正弦 +.\"WORD: cosine 余弦 +.\"WORD: tangent 正接 .\" .TH CTAN 3 2008-08-11 "" "Linux Programmer's Manual" .\"O .SH NAME .\"O ctan, ctanf, ctanl \- complex tangent function -.SH ̾Á° -ctan, ctanf, ctanl \- Ê£ÁÇ¿ô¤ÎÀµÀÜ (tangent) ´Ø¿ô +.SH 名前 +ctan, ctanf, ctanl \- 複素数の正接 (tangent) 関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double complex ctan(double complex " z ");" @@ -26,24 +26,24 @@ ctan, ctanf, ctanl \- Ê£ .BI "long double complex ctanl(long double complex " z ");" .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The complex tangent function is defined as: -Ê£ÁÇ¿ô¤ÎÀµÀÜ (tangent) ´Ø¿ô ctan(z) ¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë¡£ +複素数の正接 (tangent) 関数 ctan(z) は以下のように定義される。 .nf ctan(z) = csin(z) / ccos(z) .fi .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR catan (3), .BR ccos (3), diff --git a/draft/man3/ctanh.3 b/draft/man3/ctanh.3 index 7e39be12..d04b0775 100644 --- a/draft/man3/ctanh.3 +++ b/draft/man3/ctanh.3 @@ -6,18 +6,18 @@ .\" Translated 2003-07-23, Akihiro MOTOKI .\" Updated 2005-02-21, Akihiro MOTOKI .\" -.\"WORD: hyperbolic ÁжÊ(Àþ¤Î) -.\"WORD: sine Àµ¸¹ -.\"WORD: cosine ;¸¹ -.\"WORD: tangent ÀµÀÜ +.\"WORD: hyperbolic 双曲(線の) +.\"WORD: sine 正弦 +.\"WORD: cosine 余弦 +.\"WORD: tangent 正接 .\" .TH CTANH 3 2008-08-11 "" "Linux Programmer's Manual" .\"O .SH NAME .\"O ctanh, ctanhf, ctanhl \- complex hyperbolic tangent -.SH ̾Á° -ctanh, ctanhf, ctanhl \- Ê£ÁÇ¿ô¤ÎÁжÊÀþÀµÀÜ (hyperbolic tangent) +.SH 名前 +ctanh, ctanhf, ctanhl \- 複素数の双曲線正接 (hyperbolic tangent) .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double complex ctanh(double complex " z ");" @@ -27,25 +27,25 @@ ctanh, ctanhf, ctanhl \- Ê£ .BI "long double complex ctanhl(long double complex " z ");" .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The complex hyperbolic tangent function is defined .\"O mathematically as: -Ê£ÁÇ¿ô¤ÎÁжÊÀþÀµÀÜ (hyperbolic tangent) ´Ø¿ô¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë¡£ +複素数の双曲線正接 (hyperbolic tangent) 関数は以下のように定義される。 .nf ctanh(z) = csinh(z) / ccosh(z) .fi .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR catanh (3), .BR ccosh (3), diff --git a/draft/man3/ctermid.3 b/draft/man3/ctermid.3 index 8396ea2a..1e8ac97d 100644 --- a/draft/man3/ctermid.3 +++ b/draft/man3/ctermid.3 @@ -28,11 +28,11 @@ .\" .TH CTERMID 3 2007-07-26 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O ctermid \- get controlling terminal name -ctermid \- À©¸æüËö̾¤Î¼èÆÀ +ctermid \- 制御端末名の取得 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .\" POSIX also requires this function to be declared in , @@ -44,16 +44,16 @@ ctermid \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR ctermid (): _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\" From : _XOPEN_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR ctermid () .\"O returns a string which is the pathname for the current .\"O controlling terminal for this process. @@ -67,35 +67,35 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O .B L_ctermid .\"O is the maximum number of characters in the returned pathname. .BR ctermid () -¤Ï¥×¥í¥»¥¹¤Î¸½ºß¤ÎÀ©¸æüËö¤Î¥Ñ¥¹Ì¾¤òÊÖ¤¹¡£ +はプロセスの現在の制御端末のパス名を返す。 .I s -¤¬ NULL ¤Î¾ì¹ç¡¢ÀÅŪ¤Ê¥Ð¥Ã¥Õ¥¡¤òÍѤ¤¤ë¡£¤½¤ì°Ê³°¤Î¾ì¹ç¡¢ +が NULL の場合、静的なバッファを用いる。それ以外の場合、 .I s -¤ÏüËö¥Ñ¥¹Ì¾¤òÊÝ»ý¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤È¤Ê¤ë¡£ -¥·¥ó¥Ü¥ëÄê¿ô +は端末パス名を保持するのに使用されるバッファへのポインタとなる。 +シンボル定数 .B L_ctermid -¤ÏÊÖ¤µ¤ì¤ë¥Ñ¥¹Ì¾¤ÎºÇÂçʸ»ú¿ô¤Ç¤¢¤ë¡£ +は返されるパス名の最大文字数である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The pointer to the pathname. -¥Ñ¥¹Ì¾¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ +パス名へのポインタ。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001. .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O The path returned may not uniquely identify the controlling .\"O terminal; it may, for example, be .\"O .IR /dev/tty . -ÊÖ¤µ¤ì¤¿¥Ñ¥¹¤Ï¤¿¤Ö¤óÀ©¸æüËö¤ò°ì°Õ¤Ë¤ÏÆÃÄê¤Ç¤­¤Ê¤¤¡£ -¤¿¤È¤¨¤Ð +返されたパスはたぶん制御端末を一意には特定できない。 +たとえば .I /dev/tty -¤Î¤è¤¦¤Ë¡£ +のように。 .PP .\"O It is not assured that the program can open the terminal. -¥×¥í¥°¥é¥à¤¬Ã¼Ëö¤ò¥ª¡¼¥×¥ó¤Ç¤­¤ë¤³¤È¤ÏÊݾڤµ¤ì¤Æ¤¤¤Ê¤¤¡£ +プログラムが端末をオープンできることは保証されていない。 .\" in glibc 2.3.x, x >= 4, the glibc headers threw an error .\" if ctermid() was given an argument; fixed in 2.4. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ttyname (3) diff --git a/draft/man3/ctime.3 b/draft/man3/ctime.3 index 4953c61e..327c024f 100644 --- a/draft/man3/ctime.3 +++ b/draft/man3/ctime.3 @@ -41,18 +41,18 @@ .\" Updated 2008-08-08, Akihiro MOTOKI , LDP v3.05 .\" Updated 2008-11-10, Akihiro MOTOKI , LDP v3.13 .\" -.\"WORD: Coordinated Univarsal Time ¶¨ÄêÀ¤³¦»þ -.\"WORD: broken-down time Í×ÁÇÊ̤λþ¹ï +.\"WORD: Coordinated Univarsal Time 協定世界時 +.\"WORD: broken-down time 要素別の時刻 .\" .TH CTIME 3 2010-02-25 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O asctime, ctime, gmtime, localtime, mktime, asctime_r, ctime_r, gmtime_r, .\"O localtime_r \- transform date and time to broken-down time or ASCII asctime, ctime, gmtime, localtime, mktime, asctime_r, ctime_r, gmtime_r, -localtime_r \- ÆüÉդȻþ¹ï¤òÍ×ÁÇÊ̤λþ¹ï¤ä ASCII ¤ËÊÑ´¹¤¹¤ë +localtime_r \- 日付と時刻を要素別の時刻や ASCII に変換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -78,9 +78,9 @@ localtime_r \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .ad l .sp @@ -94,7 +94,7 @@ _SVID_SOURCE || _POSIX_SOURCE .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR ctime (), .\"O .BR gmtime () @@ -104,14 +104,14 @@ _SVID_SOURCE || _POSIX_SOURCE .\"O an argument of data type \fItime_t\fP which represents calendar time. .\"O When interpreted as an absolute time value, it represents the number of .\"O seconds elapsed since the Epoch, 1970-01-01 00:00:00 +0000 (UTC). -´Ø¿ô +関数 .BR ctime (), .BR gmtime (), .BR localtime () -¤Ï -\fItime_t\fP ·¿¤Î¥«¥ì¥ó¥À¡¼»þ¹ï¤ò°ú¤­¿ô¤Ë¤È¤ë¡£ -°ú¤­¿ô¤¬ÀäÂÐÃͤȤ·¤Æ²ò¼á¤µ¤ì¤ë¾ì¹ç¤Ï¡¢»þ¹ïµª¸µ (Epoch; -1970-01-01 00:00:00 +0000 (UTC)) ¤«¤é¤Î·Ð²áÉÿô¤È²ò¼á¤µ¤ì¤ë¡£ +は +\fItime_t\fP 型のカレンダー時刻を引き数にとる。 +引き数が絶対値として解釈される場合は、時刻紀元 (Epoch; +1970-01-01 00:00:00 +0000 (UTC)) からの経過秒数と解釈される。 .PP .\"O The .\"O .BR asctime () @@ -120,17 +120,17 @@ _SVID_SOURCE || _POSIX_SOURCE .\"O functions both take an argument .\"O representing broken-down time which is a representation .\"O separated into year, month, day, etc. -´Ø¿ô +関数 .BR asctime () -¤È +と .BR mktime () -¤Ï -ǯ¡¦·î¡¦Æü¤Ê¤É¤ËʬΥ¤µ¤ì¤¿Í×ÁÇÊ̤λþ¹ï¤ò°ú¤­¿ô¤È¤¹¤ë¡£ +は +年・月・日などに分離された要素別の時刻を引き数とする。 .PP .\"O Broken-down time is stored .\"O in the structure \fItm\fP which is defined in \fI\fP as follows: -Í×ÁÇÊ̤λþ¹ï¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë -\fItm\fP ¹½Â¤ÂΤËÊÝ»ý¤µ¤ì¤ë¡£ +要素別の時刻は \fI\fP で以下のように定義されている +\fItm\fP 構造体に保持される。 .sp .in +4n .nf @@ -144,55 +144,55 @@ struct tm { .\"O int tm_wday; /* day of the week */ .\"O int tm_yday; /* day in the year */ .\"O int tm_isdst; /* daylight saving time */ - int tm_sec; /* Éà */ - int tm_min; /* ʬ */ - int tm_hour; /* »þ´Ö */ - int tm_mday; /* Æü */ - int tm_mon; /* ·î */ - int tm_year; /* ǯ */ - int tm_wday; /* ÍËÆü */ - int tm_yday; /* ǯÆâÄÌ»»Æü */ - int tm_isdst; /* ²Æ»þ´Ö */ + int tm_sec; /* 秒 */ + int tm_min; /* 分 */ + int tm_hour; /* 時間 */ + int tm_mday; /* 日 */ + int tm_mon; /* 月 */ + int tm_year; /* å¹´ */ + int tm_wday; /* 曜日 */ + int tm_yday; /* 年内通算日 */ + int tm_isdst; /* 夏時間 */ }; .fi .in .PP .\"O The members of the \fItm\fP structure are: -\fItm\fP ¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤Ï°Ê²¼¤ÎÄ̤ê: +\fItm\fP 構造体のメンバーは以下の通り: .TP 10 .I tm_sec .\"O The number of seconds after the minute, normally in the range 0 to 59, .\"O but can be up to 60 to allow for leap seconds. -Éÿô¡¢¤Õ¤Ä¤¦¤Ï 0 ¤«¤é 59 ¤Þ¤Ç¤ÎÃÍ¡¢ -¤·¤«¤·±¼ÉäΤ¿¤á 60 ¤Þ¤Ç¤ÎÃͤϵö¤µ¤ì¤ë¡£ +秒数、ふつうは 0 から 59 までの値、 +しかし閏秒のため 60 までの値は許される。 .TP .I tm_min .\"O The number of minutes after the hour, in the range 0 to 59. -ʬ¿ô¡¢0 ¤«¤é 59 ¤Þ¤Ç¤ÎÃÍ¡£ +分数、0 から 59 までの値。 .TP .I tm_hour .\"O The number of hours past midnight, in the range 0 to 23. -¿¿ÌëÃ椫¤é¤ÎÄÌ»»»þ´Ö¡¢0 ¤«¤é 23 ¤Þ¤Ç¤ÎÃÍ¡£ +真夜中からの通算時間、0 から 23 までの値。 .TP .I tm_mday .\"O The day of the month, in the range 1 to 31. -·î¤Ï¤¸¤á¤«¤é¤ÎÆü¿ô¡¢1 ¤«¤é 31 ¤Þ¤Ç¤ÎÃÍ¡£ +月はじめからの日数、1 から 31 までの値。 .TP .I tm_mon .\"O The number of months since January, in the range 0 to 11. -1·î¤«¤é¤ÎÄÌ»»·î¿ô¡¢0 ¤«¤é 11 ¤Þ¤Ç¤ÎÃÍ¡£ +1月からの通算月数、0 から 11 までの値。 .TP .I tm_year .\"O The number of years since 1900. -1900 ǯ¤«¤é¤ÎÄÌ»»Ç¯¿ô¡£ +1900 年からの通算年数。 .TP .I tm_wday .\"O The number of days since Sunday, in the range 0 to 6. -ÆüÍËÆü¤«¤é¤ÎÄÌ»»Æü¿ô(ÍËÆü)¡£0 ¤«¤é 6 ¤Þ¤Ç¤ÎÃÍ¡£ +日曜日からの通算日数(曜日)。0 から 6 までの値。 .TP .I tm_yday .\"O The number of days since January 1, in the range 0 to 365. -1 ·î 1 Æü¤«¤é¤ÎÄÌ»»Æü¿ô¡¢0 ¤«¤é 365 ¤Þ¤Ç¤ÎÃÍ¡£ +1 月 1 日からの通算日数、0 から 365 までの値。 .TP .I tm_isdst .\"O A flag that indicates whether daylight saving time is in effect at the @@ -200,9 +200,9 @@ struct tm { .\"O The value is positive if daylight saving time is in .\"O effect, zero if it is not, and negative if the information is not .\"O available. -²Æ»þ´Ö¤¬Í­¸ú¤«¤É¤¦¤«¤Î¥Õ¥é¥°¡£ -Àµ¤ÎÃͤʤé¤Ð²Æ»þ´Ö¤ÏÍ­¸ú¤Ë¤Ê¤ê¡¢0 ¤Ê¤é¤Ð̵¸ú¡¢Éé¤ÎÃͤʤé¤Ð¤³¤Î¾ðÊó¤Ë¤Ï -°ÕÌ£¤¬¤Ê¤¤¡£ +夏時間が有効かどうかのフラグ。 +正の値ならば夏時間は有効になり、0 ならば無効、負の値ならばこの情報には +意味がない。 .PP .\"O The call .\"O .BI ctime( t ) @@ -216,16 +216,16 @@ struct tm { .\"O .RE .\"O .sp .BI ctime( t ) -´Ø¿ô¤Ï¡¢ +関数は、 .BI asctime(localtime( t )) -¤ÈÅù²Á¤Ç¤¢¤ë¡£ -¥«¥ì¥ó¥À¡¼»þ¹ï \fIt\fP ¤ò +と等価である。 +カレンダー時刻 \fIt\fP を .sp .RS "Wed Jun 30 21:49:08 1993\\n" .RE .sp -¤È¤¤¤¦·Á¼°¤Î NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤ØÊÑ´¹¤¹¤ë¡£ +という形式の NULL 終端された文字列へ変換する。 .\"O The abbreviations for the days of the week are "Sun", "Mon", "Tue", "Wed", .\"O "Thu", "Fri", and "Sat". .\"O The abbreviations for the months are "Jan", @@ -238,16 +238,16 @@ struct tm { .\"O variables \fItzname\fP, \fItimezone\fP, and \fIdaylight\fP (see .\"O .BR tzset (3)) .\"O with information about the current timezone. -ÍËÆü¤Îά¾Î¤Ï -"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ¤Ç¤¢¤ë¡£ -·î¤Îά¾Î¤Ï "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", -"Sep", "Oct", "Nov", "Dec" ¤Ç¤¢¤ë¡£ -ÊÖ¤êÃͤϡ¢ÀÅŪ (static) ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤³¤Îʸ»úÎó¤Ï¡¢ÆüÉÕ¡¦»þ¹ï´Ø¿ô¤Î¤¤¤º¤ì¤«¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤È¾å½ñ¤­¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ -¤Þ¤¿¤³¤Î´Ø¿ô¤ÏÂç°èÊÑ¿ô \fItzname\fP, \fItimezone\fP, \fIdaylight\fP -¤Ë¸½ºß¤Î¥¿¥¤¥à¥¾¡¼¥ó¤Î¾ðÊó¤òÀßÄꤹ¤ë +曜日の略称は +"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" である。 +月の略称は "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", +"Sep", "Oct", "Nov", "Dec" である。 +返り値は、静的 (static) に割り当てられた文字列へのポインタである。 +この文字列は、日付・時刻関数のいずれかが呼び出されると上書きされることがある。 +またこの関数は大域変数 \fItzname\fP, \fItimezone\fP, \fIdaylight\fP +に現在のタイムゾーンの情報を設定する .RB ( tzset (3) -»²¾È)¡£ +参照)。 .\"O The reentrant version .\"O .BR ctime_r () .\"O does the same, but stores the @@ -255,13 +255,13 @@ struct tm { .\"O which should have room for at least 26 bytes. .\"O It need not .\"O set \fItzname\fP, \fItimezone\fP, and \fIdaylight\fP. -¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤǤ¢¤ë +リエントラント版である .BR ctime_r () -¤âƱÍͤÀ¤¬¡¢ -ʸ»úÎó¤Ï¥æ¡¼¥¶¡¼¤¬ÍÑ°Õ¤·¤¿¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤ë¡£¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤Ï -¾¯¤Ê¤¯¤È¤â 26 ¥Ð¥¤¥È°Ê¾å¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤Î´Ø¿ô¤Ï \fItzname\fP, \fItimezone\fP, and \fIdaylight\fP -¤òÀßÄꤹ¤ëɬÍפϤʤ¤¡£ +も同様だが、 +文字列はユーザーが用意したバッファに格納される。バッファのサイズは +少なくとも 26 バイト以上でなければならない。 +この関数は \fItzname\fP, \fItimezone\fP, and \fIdaylight\fP +を設定する必要はない。 .PP .\"O The .\"O .BR gmtime () @@ -269,23 +269,23 @@ struct tm { .\"O broken-down time representation, expressed in Coordinated Universal Time .\"O (UTC). .\"O It may return NULL when the year does not fit into an integer. -´Ø¿ô +関数 .BR gmtime () -¤Ï¡¢¥«¥ì¥ó¥À¡¼»þ¹ï \fItimep\fP ¤ò -¶¨ÄêÀ¤³¦»þ (UTC) ¤Ç¤ÎÍ×ÁÇÊ̤λþ¹ï¤ØÊÑ´¹¤¹¤ë¡£ -ǯ¤¬À°¿ô·¿¤Ë¼ý¤Þ¤é¤Ê¤¤¾ì¹ç¡¢NULL ¤òÊÖ¤¹¡£ +は、カレンダー時刻 \fItimep\fP を +協定世界時 (UTC) での要素別の時刻へ変換する。 +年が整数型に収まらない場合、NULL を返す。 .\"O The return value points to a statically allocated struct which might be .\"O overwritten by subsequent calls to any of the date and time functions. -ÊÖ¤êÃͤÏÀÅŪ¤Ë³ÎÊݤµ¤ì¤¿¹½Â¤ÂΤò»Ø¤·¤Æ¤ª¤ê¡¢¤³¤Î¸å¤Ç -ÆüÉÕ¤ä»þ¹ï¤Ë´Ø¤¹¤ë´Ø¿ô¤Î¤¤¤º¤ì¤«¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤È -¾å½ñ¤­¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +返り値は静的に確保された構造体を指しており、この後で +日付や時刻に関する関数のいずれかが呼び出されると +上書きされる可能性がある。 .\"O The .\"O .BR gmtime_r () .\"O function does the same, but stores the data in a .\"O user-supplied struct. .BR gmtime_r () -¤âƱÍͤÀ¤¬¡¢ -¥Ç¡¼¥¿¤Ï¥æ¡¼¥¶¡¼¤¬ÍÑ°Õ¤·¤¿¹½Â¤ÂΤ˳ÊǼ¤µ¤ì¤ë¡£ +も同様だが、 +データはユーザーが用意した構造体に格納される。 .PP .\"O The .\"O .BR localtime () @@ -299,32 +299,32 @@ struct tm { .\"O between Coordinated Universal Time (UTC) and local standard time in .\"O seconds, and \fIdaylight\fP to a nonzero value if daylight savings .\"O time rules apply during some part of the year. -´Ø¿ô +関数 .BR localtime () -¤Ï¡¢¥«¥ì¥ó¥À¡¼»þ¹ï \fItimep\fP ¤ò -¥æ¡¼¥¶¤¬»ØÄꤷ¤¿¥¿¥¤¥à¥¾¡¼¥ó¤Ç¤Î»þ¹ïÍ×ÁÇÊ̤Îɽ¸½¤ØÊÑ´¹¤¹¤ë¡£ -¤³¤Î´Ø¿ô¤Ï +は、カレンダー時刻 \fItimep\fP を +ユーザが指定したタイムゾーンでの時刻要素別の表現へ変換する。 +この関数は .BR tzset (3) -¤ò¸Æ¤Ó½Ð¤·¤¿¤«¤Î¤è¤¦¤Ë¿¶Éñ¤¤¡¢ -Âç°èÊÑ¿ô \fItzname\fP ¤Ë¸½ºß¤Î¥¿¥¤¥à¥¾¡¼¥ó¤Î¾ðÊó¤òÀßÄꤹ¤ë¡£ -¤Þ¤¿¡¢\fItimezone\fP ¤Ë¶¨ÄêÀ¤³¦»þ (UTC) ¤È¥í¡¼¥«¥ëɸ½à»þ¤È¤Î -»þº¹¤ÎÉÿô¤òÀßÄꤷ¡¢ -°ìǯ¤Î°ìÉô¤Ç²Æ»þ´Ö¤¬Å¬ÍѤµ¤ì¤ë¾ì¹ç¤Ï \fIdaylight\fP ¤Ë 0 ¤¬ÀßÄꤵ¤ì¤ë¡£ +を呼び出したかのように振舞い、 +大域変数 \fItzname\fP に現在のタイムゾーンの情報を設定する。 +また、\fItimezone\fP に協定世界時 (UTC) とローカル標準時との +時差の秒数を設定し、 +一年の一部で夏時間が適用される場合は \fIdaylight\fP に 0 が設定される。 .\"O The return value points to a statically allocated struct which might be .\"O overwritten by subsequent calls to any of the date and time functions. -ÊÖ¤êÃͤÏÀÅŪ¤Ë³ÎÊݤµ¤ì¤¿¹½Â¤ÂΤò»Ø¤·¤Æ¤ª¤ê¡¢¤³¤Î¸å¤Ç -ÆüÉÕ¤ä»þ¹ï¤Ë´Ø¤¹¤ë´Ø¿ô¤Î¤¤¤º¤ì¤«¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤È -¾å½ñ¤­¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +返り値は静的に確保された構造体を指しており、この後で +日付や時刻に関する関数のいずれかが呼び出されると +上書きされる可能性がある。 .\"O The .\"O .BR localtime_r () .\"O function does the same, but stores the data in a .\"O user-supplied struct. .\"O It need not set \fItzname\fP, \fItimezone\fP, and \fIdaylight\fP. .BR localtime_r () -¤âƱÍͤÀ¤¬¡¢ -¥Ç¡¼¥¿¤Ï¥æ¡¼¥¶¡¼¤¬ÍÑ°Õ¤·¤¿¹½Â¤ÂΤ˳ÊǼ¤µ¤ì¤ë¡£ -¤³¤Î´Ø¿ô¤Ï \fItzname\fP, \fItimezone\fP, and \fIdaylight\fP -¤òÀßÄꤹ¤ëɬÍפϤʤ¤¡£ +も同様だが、 +データはユーザーが用意した構造体に格納される。 +この関数は \fItzname\fP, \fItimezone\fP, and \fIdaylight\fP +を設定する必要はない。 .PP .\"O The .\"O .BR asctime () @@ -333,22 +333,22 @@ struct tm { .\"O .BR ctime (). .\"O The return value points to a statically allocated string which might be .\"O overwritten by subsequent calls to any of the date and time functions. -´Ø¿ô +関数 .BR asctime () -¤Ï¡¢Í×ÁÇÊ̤λþ¹ï \fItm\fP ¤ò +は、要素別の時刻 \fItm\fP を .BR ctime () -¤ÈƱ¤¸·Á¼°¤Î NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤ØÊÑ´¹¤¹¤ë¡£ -ÊÖ¤êÃͤÏÀÅŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£¤³¤Îʸ»úÎó¤Ï¡¢ -ÆüÉÕ¡¦»þ¹ï´Ø¿ô¤Î¤¤¤º¤ì¤«¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤È¾å½ñ¤­¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ +と同じ形式の NULL 終端された文字列へ変換する。 +返り値は静的に割り当てられた文字列へのポインタである。この文字列は、 +日付・時刻関数のいずれかが呼び出されると上書きされることがある。 .\"O The .\"O .BR asctime_r () .\"O function does the same, but stores the string in .\"O a user-supplied buffer which should have room for at least 26 bytes. -¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤǤ¢¤ë +リエントラント版である .BR asctime_r () -¤âƱÍͤÀ¤¬¡¢ -ʸ»úÎó¤Ï¥æ¡¼¥¶¡¼¤¬ÍÑ°Õ¤·¤¿¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤ë¡£¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤Ï -¾¯¤Ê¤¯¤È¤â 26 ¥Ð¥¤¥È°Ê¾å¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +も同様だが、 +文字列はユーザーが用意したバッファに格納される。バッファのサイズは +少なくとも 26 バイト以上でなければならない。 .PP .\"O The .\"O .BR mktime () @@ -374,26 +374,26 @@ struct tm { .\"O .BR mktime () .\"O should (use timezone information and system databases to) .\"O attempt to determine whether DST is in effect at the specified time. -´Ø¿ô +関数 .BR mktime () -¤Ï¡¢(¥í¡¼¥«¥ë¥¿¥¤¥à¤Çµ­½Ò¤µ¤ì¤Æ¤¤¤ë) Í×ÁÇÊ̤λþ¹ï¤ò -¥«¥ì¥ó¥À¡¼»þ¹ï¤ØÊÑ´¹¤¹¤ë¡£¤³¤ÎºÝ¡¢¸Æ¤Ó½Ð¤·¸µ¤¬¥Õ¥£¡¼¥ë¥É +は、(ローカルタイムで記述されている) 要素別の時刻を +カレンダー時刻へ変換する。この際、呼び出し元がフィールド .I tm_wday -¤È +と .I tm_yday -¤Ç»ØÄꤷ¤¿ÃͤÏ̵»ë¤µ¤ì¤ë¡£ +で指定した値は無視される。 .BR mktime () -¤Ï¡¢¥Õ¥£¡¼¥ë¥É +は、フィールド .I tm_isdst -¤Ç»ØÄꤵ¤ì¤¿Ãͤˤè¤ê¡¢ +で指定された値により、 .I tm -¹½Â¤ÂΤÇÅϤµ¤ì¤¿»þ¹ï¤Ç²Æ»þ´Ö (daylight saving time; DST) ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ -¤¤¤ë¤«¤òÃΤ롣 -Àµ¤ÎÃͤϲƻþ´Ö¤¬Í­¸ú¤Ç¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -Éé¤ÎÃͤǤ¢¤ì¤Ð¡¢ +構造体で渡された時刻で夏時間 (daylight saving time; DST) が有効になって +いるかを知る。 +正の値は夏時間が有効であることを意味する。 +負の値であれば、 .BR mktime () -¤Ï (¥¿¥¤¥à¥¾¡¼¥ó¾ðÊó¤È¥·¥¹¥Æ¥à¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò»È¤Ã¤Æ) -»ØÄꤵ¤ì¤¿»þ¹ï¤Ç²Æ»þ´Ö¤¬Í­¸ú¤«¤É¤¦¤«¤òȽÃǤ¹¤ëɬÍפ¬¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +は (タイムゾーン情報とシステムのデータベースを使って) +指定された時刻で夏時間が有効かどうかを判断する必要があることを意味する。 .\"O The .\"O .BR mktime () @@ -405,33 +405,33 @@ struct tm { .\"O .I tm_yday .\"O are set to values determined from the contents of the other fields; .BR mktime () -¤Ï +は .I tm -¹½Â¤ÂΤγƥե£¡¼¥ë¥É¤ò°Ê²¼¤Î¤è¤¦¤Ë½¤Àµ¤¹¤ë¡£ +構造体の各フィールドを以下のように修正する。 .I tm_wday -¤È +と .I tm_yday -¤Ë¤Ï¾¤Î¥Õ¥£¡¼¥ë¥É¤ÎÆâÍƤ«¤éµá¤á¤¿ÃͤòÀßÄꤹ¤ë¡£ +には他のフィールドの内容から求めた値を設定する。 .\"O if structure members are outside their valid interval, they will be .\"O normalized (so that, for example, 40 October is changed into 9 November); .\"O .I tm_isdst .\"O is set (regardless of its initial value) .\"O to a positive value or to 0, respectively, .\"O to indicate whether DST is or is not in effect at the specified time. -¹½Â¤ÂΤÎÍ×ÁǤ¬Í­¸ú¤ÊÈϰϤˤʤ¤¾ì¹ç¡¢Àµµ¬²½¤µ¤ì¤ë -(Î㤨¤Ð¡¢10 ·î 40 Æü¤Ï 11 ·î 9 Æü¤ËÊѹ¹¤µ¤ì¤ë)¡£ +構造体の要素が有効な範囲にない場合、正規化される +(例えば、10 月 40 日は 11 月 9 日に変更される)。 .I tm_isdst -¤Ë¤Ï (ºÇ½é¤ÎÃͤˤ«¤«¤ï¤é¤º) Àµ¤ÎÃͤ« 0 ¤¬ÀßÄꤵ¤ì¤ë¡£ -Àµ¤ÎÃͤϻØÄꤵ¤ì¤¿»þ´Ö¤Ç²Æ»þ´Ö¤¬Í­¸ú¤Ç¤¢¤ë¤³¤È¤ò¼¨¤·¡¢ -0 ¤Ï̵¸ú¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ +には (最初の値にかかわらず) 正の値か 0 が設定される。 +正の値は指定された時間で夏時間が有効であることを示し、 +0 は無効であることを示す。 .\"O Calling .\"O .BR mktime () .\"O also sets the external variable \fItzname\fP with .\"O information about the current timezone. -´Ø¿ô +関数 .BR mktime () -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢ -Âç°èÊÑ¿ô \fItzname\fP ¤¬¸½ºß¤Î¥¿¥¤¥à¥¾¡¼¥ó¤ËÀßÄꤵ¤ì¤ë¡£ +を呼び出すと、 +大域変数 \fItzname\fP が現在のタイムゾーンに設定される。 .\"O If the specified broken-down .\"O time cannot be represented as calendar time (seconds since the Epoch), @@ -440,21 +440,21 @@ struct tm { .\"O .I (time_t)\ \-1 .\"O and does not alter the .\"O members of the broken-down time structure. -Í×ÁÇÊ̤λþ¹ï¤ò¥«¥ì¥ó¥À¡¼»þ¹ï (µª¸µ (Epoch) ¤«¤é¤ÎÉÿô) ¤Çɽ¸½¤Ç¤­¤Ê¤¤¾ì¹ç¡¢ +要素別の時刻をカレンダー時刻 (紀元 (Epoch) からの秒数) で表現できない場合、 .BR mktime () -¤Ï +は .I (time_t)\ (-1) -¤òÊÖ¤·¡¢Í×ÁÇÊ̤λþ¹ï¤Î¹½Â¤ÂÎ¥á¥ó¥Ð¡¼¤òÊѹ¹¤·¤Ê¤¤¡£ +を返し、要素別の時刻の構造体メンバーを変更しない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O Each of these functions returns the value described, or NULL .\"O (\-1 in case of .\"O .BR mktime ()) .\"O in case an error was detected. -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ìÁ°½Ò¤·¤¿ÃͤòÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï NULL +各関数はそれぞれ前述した値を返す。エラーの場合は NULL .RB ( mktime () -¤Ç¤Ï \-1) ¤òÊÖ¤¹¡£ -.SH ½àµò +では \-1) を返す。 +.SH 準拠 .\"O POSIX.1-2001. .\"O C89 and C99 specify .\"O .BR asctime (), @@ -464,13 +464,13 @@ struct tm { .\"O and .\"O .BR mktime (). POSIX.1-2001. -C89 ¤È C99 ¤Ç¤Ï +C89 と C99 では .BR asctime (), .BR ctime (), .BR gmtime (), .BR localtime (), .BR mktime () -¤¬µ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +が規定されている。 .\"O POSIX.1-2008 marks .\"O .BR asctime (), .\"O .BR asctime_r (), @@ -481,17 +481,17 @@ C89 .\"O recommending the use of .\"O .BR strftime (3) .\"O instead. -POSIX.1-2008 ¤Ï¡¢ +POSIX.1-2008 は、 .BR asctime (), .BR asctime_r (), .BR ctime (), .BR ctime_r () -¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£ -Âå¤ï¤ê¤Ë¡¢ +を廃止予定としている。 +代わりに、 .BR strftime (3) -¤Î»ÈÍѤ¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£ +の使用が推奨されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The four functions .\"O .BR asctime (), .\"O .BR ctime (), @@ -503,7 +503,7 @@ POSIX.1-2008 .BR ctime (), .BR gmtime (), .BR localtime () -¤Î 4 ¤Ä¤Î´Ø¿ô¤ÏÀÅŪ¥Ç¡¼¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¤Î¤Ç¡¢¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤Ï¤Ê¤¤¡£ +の 4 つの関数は静的データへのポインタを返すので、スレッドセーフではない。 .\"O Thread-safe versions .\"O .BR asctime_r (), .\"O .BR ctime_r (), @@ -511,13 +511,13 @@ POSIX.1-2008 .\"O and .\"O .BR localtime_r () .\"O are specified by SUSv2, and available since libc 5.2.5. -¤³¤ì¤é¤Î´Ø¿ô¤Î¥¹¥ì¥Ã¥É¥»¡¼¥ÕÈǤǤ¢¤ë +これらの関数のスレッドセーフ版である .BR asctime_r (), .BR ctime_r (), .BR gmtime_r (), .BR localtime_r () -¤Ï SUSv2 ¤Çµ¬Äꤵ¤ì¤Æ¤ª¤ê¡¢ -libc 5.2.5 °Ê¹ß¤ÇÍøÍѤǤ­¤ë¡£ +は SUSv2 で規定されており、 +libc 5.2.5 以降で利用できる。 .\"O POSIX.1-2001 says: .\"O "The @@ -532,25 +532,25 @@ libc 5.2.5 .\"O Execution of any of the functions may overwrite the information returned .\"O in either of these objects by any of the other functions." .\"O This can occur in the glibc implementation. -POSIX.1-2001 ¤Ç¤Ï¡¢¡Ö´Ø¿ô +POSIX.1-2001 では、「関数 .BR asctime (), .BR ctime (), .BR gmtime (), .BR localtime () -¤Ï¡¢Í×ÁÇÊ̤λþ¹ï¤Î¹½Â¤ÂΤ« +は、要素別の時刻の構造体か .I char -·¿¤ÎÇÛÎ󤫤ΤɤÁ¤é¤«¤ÎÀÅŪ¥ª¥Ö¥¸¥§¥¯¥È¤òÊÖ¤¹¤â¤Î¤È¤¹¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Î¤¤¤º¤ì¤«¤ò¼Â¹Ô¤¹¤ë¤È¡¢Â¾¤Î´Ø¿ô¤Î¤É¤ì¤«¤¬¤³¤ì¤é¤Î -ÀÅŪ¥ª¥Ö¥¸¥§¥¯¥È¤Î¤É¤Á¤é¤«¤Ë³ÊǼ¤·¤ÆÊÖ¤·¤¿¾ðÊ󤬾å½ñ¤­¤µ¤ì¤ë¤«¤â -¤·¤ì¤Ê¤¤¡£¡×¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤³¤Î¤³¤È¤Ï glibc ¤Î¼ÂÁõ¤Çµ¯¤³¤ê¤¦¤ë¡£ +型の配列かのどちらかの静的オブジェクトを返すものとする。 +これらの関数のいずれかを実行すると、他の関数のどれかがこれらの +静的オブジェクトのどちらかに格納して返した情報が上書きされるかも +しれない。」となっている。 +このことは glibc の実装で起こりうる。 .LP .\"O In many implementations, including glibc, a 0 in .\"O .I tm_mday .\"O is interpreted as meaning the last day of the preceding month. -glibc ¤ò´Þ¤à¿¤¯¤Î¼ÂÁõ¤Ç¤Ï¡¢ +glibc を含む多くの実装では、 .I tm_mday -¤Ë 0 ¤ò»ØÄꤹ¤ë¤ÈÁ°·î¤ÎºÇ½ªÆü¤ò°ÕÌ£¤·¤Æ¤¤¤ë¤È²ò¼á¤µ¤ì¤ë¡£ +に 0 を指定すると前月の最終日を意味していると解釈される。 .LP .\"O The glibc version of \fIstruct tm\fP has additional fields .\"O .sp @@ -565,12 +565,12 @@ glibc .\"O .B _BSD_SOURCE .\"O was set before including .\"O .IR . -glibc ¤Ç¤Ï¡¢ +glibc では、 .I -¤¬¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤ëÁ°¤Ë +がインクルードされる前に .B _BSD_SOURCE -¤¬ÄêµÁ¤µ¤ì¤ë¤È¡¢ -\fIstruct tm\fP ¤Ë°Ê²¼¤Î¥Õ¥£¡¼¥ë¥É¤¬Äɲ䵤ì¤ë¡£ +が定義されると、 +\fIstruct tm\fP に以下のフィールドが追加される。 .sp .RS .nf @@ -580,7 +580,7 @@ const char *tm_zone; /* Timezone abbreviation */ .RE .sp .\"O This is a BSD extension, present in 4.3BSD-Reno. -¤³¤ì¤Ï BSD ³ÈÄ¥¤Ç¤¢¤ê¡¢4.3BSD-Reno ¤«¤é¸½¤ì¤¿¡£ +これは BSD 拡張であり、4.3BSD-Reno から現れた。 .\"O According to POSIX.1-2004, .\"O .BR localtime () @@ -594,21 +594,21 @@ const char *tm_zone; /* Timezone abbreviation */ .\"O .BR tzset (3) .\"O should be called before .\"O .BR localtime_r (). -POSIX.1-2004 ¤Ë¤è¤ë¤È¡¢ +POSIX.1-2004 によると、 .BR localtime () -¤Ï¤¢¤¿¤«¤â +はあたかも .BR tzset (3) -¤¬¸Æ¤Ð¤ì¤¿¤«¤Î¤è¤¦¤Ë¿¶Éñ¤¦¤³¤È¤¬Í׵ᤵ¤ì¤Æ¤¤¤ë¤¬¡¢ +が呼ばれたかのように振舞うことが要求されているが、 .BR localtime_r () -¤Ë¤Ï¤³¤ÎÍ×·ï¤Ï¤Ê¤¤¡£ -.\" http://thread.gmane.org/gmane.comp.time.tz/2034/ ¤ò»²¾È¡£ -°Ü¿¢À­¤¬É¬Íפʥ³¡¼¥É¤Ç¤Ï¡¢ +にはこの要件はない。 +.\" http://thread.gmane.org/gmane.comp.time.tz/2034/ を参照。 +移植性が必要なコードでは、 .BR localtime_r () -¤ÎÁ°¤Ë +の前に .BR tzset (3) -¤ò¸Æ¤Ó½Ð¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£ +を呼び出しておくべきである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR date (1), .BR gettimeofday (2), .BR time (2), diff --git a/draft/man3/daemon.3 b/draft/man3/daemon.3 index 2e2b117d..91c4e037 100644 --- a/draft/man3/daemon.3 +++ b/draft/man3/daemon.3 @@ -39,18 +39,18 @@ .\" Updated & Modified Mon Jan 14 06:50:04 JST 2002 .\" by Yuichi SATO .\" -.\"WORD: detach ʬΥ -.\"WORD: controlling terminal À©¸æüËö -.\"WORD: current working directory ¥«¥ì¥ó¥È¡¦¥ï¡¼¥­¥ó¥°¡¦¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: global variable Âç°èÊÑ¿ô +.\"WORD: detach 分離 +.\"WORD: controlling terminal 制御端末 +.\"WORD: current working directory カレント・ワーキング・ディレクトリ +.\"WORD: global variable 大域変数 .\" .TH DAEMON 3 2009-12-05 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O daemon \- run in the background -daemon \- ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤ÇÆ°ºî¤µ¤»¤ë +daemon \- バックグラウンドで動作させる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int daemon(int " nochdir ", int " noclose ); @@ -58,22 +58,22 @@ daemon \- .\"O .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .\"O .in .\"O .sp .\"O .BR daemon (): .\"O _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR daemon () .\"O function is for programs wishing to detach themselves from the .\"O controlling terminal and run in the background as system daemons. .BR daemon () -¤Ï¡¢À©¸æüËö¤«¤éʬΥ¤µ¤»¤Æ¥·¥¹¥Æ¥à¥Ç¡¼¥â¥ó¤È¤·¤ÆÆ°ºî¤µ¤»¤¿¤¤ -¥×¥í¥°¥é¥à¤Î¤¿¤á¤Î´Ø¿ô¤Ç¤¢¤ë¡£ +は、制御端末から分離させてシステムデーモンとして動作させたい +プログラムのための関数である。 .PP .\"O If .\"O .I nochdir @@ -83,11 +83,11 @@ glibc .\"O to the root directory ("/"); .\"O otherwise, the current working directory is left unchanged. .I nochdir -¤¬ 0 ¤Î¾ì¹ç¡¢ +が 0 の場合、 .BR daemon () -¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê (current working directory) -¤ò¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê ("/") ¤ËÊѹ¹¤¹¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +は呼び出したプロセスの現在の作業ディレクトリ (current working directory) +をルートディレクトリ ("/") に変更する。 +それ以外の場合、現在の作業ディレクトリは変更されない。 .PP .\"O If .\"O .I noclose @@ -97,12 +97,12 @@ glibc .\"O to \fI/dev/null\fP; .\"O otherwise, no changes are made to these file descriptors. .I noclose -¤¬ 0 ¤Î¾ì¹ç¡¢ +が 0 の場合、 .BR daemon () -¤Ïɸ½àÆþÎÏ¡¦É¸½à½ÐÎÏ¡¦É¸½à¥¨¥é¡¼¤ò \fI/dev/null\fP ¤Ë¥ê¥À¥¤¥ì¥¯¥È¤¹¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +は標準入力・標準出力・標準エラーを \fI/dev/null\fP にリダイレクトする。 +それ以外の場合、これらのファイル・ディスクリプタは変更されない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O (This function forks, and if the .\"O .BR fork (2) .\"O succeeds, the parent calls @@ -112,15 +112,15 @@ glibc .\"O On success .\"O .BR daemon () .\"O returns zero. -(¤³¤Î´Ø¿ô¤¬ fork ¤·¤Æ +(この関数が fork して .BR fork (2) -¤¬À®¸ù¤¹¤ë¤È¡¢¿Æ¥×¥í¥»¥¹¤Ç¤Ï +が成功すると、親プロセスでは .BR _exit (2) -¤ò¸Æ¤Ó½Ð¤¹¤Î¤Ç¡¢¤³¤ì°Ê¹ß¤Î¥¨¥é¡¼¤Ï»Ò¥×¥í¥»¥¹¤«¤é¤·¤«¸«¤ì¤Ê¤¤)¡£ -.\" ¥¢¥ó¥À¡¼¥¹¥³¥¢ _ ¤Ë²¼Àþ¤ò°ú¤«¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á .IR ¤Ï»È¤ï¤Ê¤¤¡£ -À®¸ù¤·¤¿¾ì¹ç¡¢ +を呼び出すので、これ以降のエラーは子プロセスからしか見れない)。 +.\" アンダースコア _ に下線を引かないようにするため .IR は使わない。 +成功した場合、 .BR daemon () -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .\"O If an error occurs, .\"O .BR daemon () .\"O returns \-1 and sets @@ -129,29 +129,29 @@ glibc .\"O .BR fork (2) .\"O and .\"O .BR setsid (2). -¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢ +エラーが起こった場合、 .BR daemon () -¤Ï \-1 ¤òÊÖ¤¹¡£ -¤µ¤é¤Ë¡¢ +は \-1 を返す。 +さらに、 .I errno -¤Ë +に .BR fork (2) -¤È +と .BR setsid (2) -¤Ë´Ø¤·¤Æµ¬Äꤵ¤ì¤¿¥¨¥é¡¼¤òÀßÄꤹ¤ë¡£ +に関して規定されたエラーを設定する。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O Not in POSIX.1-2001. .\"O A similar function appears on the BSDs. .\"O The .\"O .BR daemon () .\"O function first appeared in 4.4BSD. -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -ƱÍͤδؿô¤¬ BSD ¤Ë¤Ï¸«¤é¤ì¤ë¡£ +POSIX.1-2001 にはない。 +同様の関数が BSD には見られる。 .BR daemon () -´Ø¿ô¤Ï 4.4BSD ¤Ç»Ï¤á¤ÆÅо줷¤¿¡£ +関数は 4.4BSD で始めて登場した。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The glibc implementation can also return \-1 when .\"O .I /dev/null .\"O exists but is not a character device with the expected @@ -160,13 +160,13 @@ POSIX.1-2001 .\"O .I errno .\"O need not be set. .I /dev/null -¤Ï¸ºß¤¹¤ë¤¬¡¢ÁÛÄꤹ¤ë¥á¥¸¥ã¡¼ÈÖ¹æ¤È¥Þ¥¤¥Ê¡¼ÈÖ¹æ¤Î -¥­¥ã¥é¥¯¥¿¥Ç¥Ð¥¤¥¹¤Ç¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ -glibc ¤Î¼ÂÁõ¤Ç¤â \-1 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤Î¾ì¹ç¡¢ +は存在するが、想定するメジャー番号とマイナー番号の +キャラクタデバイスでなかった場合、 +glibc の実装でも \-1 が返される。 +この場合、 .I errno -¤¬ÀßÄꤵ¤ì¤ëɬÍפϤʤ¤¡£ +が設定される必要はない。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fork (2), .BR setsid (2) diff --git a/draft/man3/dbopen.3 b/draft/man3/dbopen.3 index bc822aee..c42c20ee 100644 --- a/draft/man3/dbopen.3 +++ b/draft/man3/dbopen.3 @@ -37,15 +37,15 @@ .\" by Shouichi Saito .\" Proofed Tue Aug 19 1999 by NAKANO Takeo .\" -.\"WORD: descriptor ¥Ç¥¹¥¯¥ê¥×¥¿ +.\"WORD: descriptor デスクリプタ .TH DBOPEN 3 1994-01-02 "" "Linux Programmer's Manual" .UC 7 .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O dbopen \- database access methods -dbopen \- ¥Ç¡¼¥¿¥Ù¡¼¥¹¥¢¥¯¥»¥¹¥á¥½¥Ã¥É +dbopen \- データベースアクセスメソッド .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -56,50 +56,50 @@ dbopen \- .BI " const void *" openinfo ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR dbopen () .\"O is the library interface to database files. .BR dbopen () -¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥é¥¤¥Ö¥é¥ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¢¤ë¡£ +はデータベースファイルに対するライブラリインターフェースである。 .\"O The supported file formats are btree, hashed and UNIX file oriented. .\"O The btree format is a representation of a sorted, balanced tree structure. .\"O The hashed format is an extensible, dynamic hashing scheme. .\"O The flat-file format is a byte stream file with fixed or variable length .\"O records. -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï btree, hash, -UNIX ¥Õ¥¡¥¤¥ë¤Ë»Ø¸þ¤·¤¿¥Õ¥©¡¼¥Þ¥Ã¥È, ¤Î 3 ¤Ä¤Ç¤¢¤ë¡£ -btree ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢¥½¡¼¥È¤µ¤ì¤¿¥Ð¥é¥ó¥¹¥Ä¥ê¡¼¹½Â¤¤Ç¤¢¤ë¡£ -hashed ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢³ÈÄ¥²Äǽ¤ÊưŪ hash ¥¹¥­¡¼¥à¤Ç¤¢¤ë¡£ -¥Õ¥é¥Ã¥È¥Õ¥¡¥¤¥ë (flat-file) ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢ -¸ÇÄêĹ/²ÄÊÑĹ¤Î¥ì¥³¡¼¥É¤«¤é¤Ê¤ë¥Ð¥¤¥È¥¹¥È¥ê¡¼¥à¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ +サポートされているファイルフォーマットは btree, hash, +UNIX ファイルに指向したフォーマット, の 3 つである。 +btree フォーマットは、ソートされたバランスツリー構造である。 +hashed フォーマットは、拡張可能な動的 hash スキームである。 +フラットファイル (flat-file) フォーマットは、 +固定長/可変長のレコードからなるバイトストリームファイルである。 .\"O The formats and file format specific information are described in detail .\"O in their respective manual pages .\"O .BR btree (3), .\"O .BR hash (3) .\"O and .\"O .BR recno (3). -¤½¤ì¤¾¤ì¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤È¡¢¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤ËÆÃÍ­¤Î¾ðÊó¤Ï -¤½¤ì¤¾¤ìÂбþ¤¹¤ë¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸ +それぞれのフォーマットと、ファイルフォーマットに特有の情報は +それぞれ対応するマニュアルページ .BR btree (3), .BR hash (3), .BR recno (3) -¤Ë¾ÜºÙ¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +に詳細に記述されている。 .PP .\"O .BR dbopen () .\"O opens .\"O .I file .\"O for reading and/or writing. .BR dbopen () -¤Ï +は .I file -¤òÆɤ߹þ¤ß (Æɤ߽ñ¤­) ¤¹¤ë¤¿¤á¤Ë¥ª¡¼¥×¥ó¤¹¤ë¡£ +を読み込み (読み書き) するためにオープンする。 .\"O Files never intended to be preserved on disk may be created by setting .\"O the .\"O .I file .\"O argument to NULL. .I file -°ú¤­¿ô¤ò NULL ¤Ë¤¹¤ì¤Ð¡¢ -¥Ç¥£¥¹¥¯¾å¤ËÊݸ¤·¤¿¤¯¤Ê¤¤¥Õ¥¡¥¤¥ë¤òºî¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +引き数を NULL にすれば、 +ディスク上に保存したくないファイルを作ることもできる。 .PP .\"O The .\"O .I flags @@ -119,12 +119,12 @@ hashed .\"O .B O_TRUNC .\"O flags are meaningful. .I flags -¤È +と .I mode -°ú¤­¿ô¤Ï +引き数は .BR open (2) -¥ë¡¼¥Á¥ó¤Ç»ØÄꤹ¤ë¤Î¤ÈƱÍͤǤ¢¤ë¡£¤¿¤À¤· -°ÕÌ£¤ò»ý¤Ä¥Õ¥é¥°¤Ï +ルーチンで指定するのと同様である。ただし +意味を持つフラグは .BR O_CREAT , .BR O_EXCL , .BR O_EXLOCK , @@ -133,13 +133,13 @@ hashed .BR O_RDWR , .BR O_SHLOCK , .B O_TRUNC -¤À¤±¤Ç¤¢¤ë¡£ +だけである。 .\"O (Note, opening a database file .\"O .B O_WRONLY .\"O is not possible.) -(Ãí°Õ: +(注意: .B O_WRONLY -¤Ç¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤ò³«¤¯»ö¤Ï½ÐÍè¤Ê¤¤) +でデータベースファイルを開く事は出来ない) .\"Three additional options may be specified by ORing .\"them into the .\".I flags @@ -173,15 +173,15 @@ hashed .\"O or .\"O .BR DB_RECNO . .I type -°ú¤­¿ô¤Ï +引き数は .I DBTYPE -·¿¤Ç¤¢¤ë (¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +型である (インクルードファイル .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ +で定義されている)。 .BR DB_BTREE , .BR DB_HASH , .B DB_RECNO -¤Î¤¤¤º¤ì¤«¤ò¥»¥Ã¥È¤Ç¤­¤ë¡£ +のいずれかをセットできる。 .PP .\"O The .\"O .I openinfo @@ -192,12 +192,12 @@ hashed .\"O is NULL, each access method will use defaults appropriate for the system .\"O and the access method. .I openinfo -°ú¤­¿ô¤Ï¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ë¸ÇÍ­¤Ê¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤½¤ì¤¾¤ì¤Î¹½Â¤ÂΤ˴ؤ·¤Æ¤Ï³Æ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Î -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +引き数はアクセスメソッドに固有な構造体へのポインタである。 +それぞれの構造体に関しては各アクセスメソッドの +マニュアルページに記述されている。 .I openinfo -¤¬ NULL ¤Î¾ì¹ç¡¢¤½¤ì¤¾¤ì¤Î¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤È¥·¥¹¥Æ¥à¤È¤ËŬ¹ç¤·¤¿ -¥Ç¥Õ¥©¥ë¥È¤¬ÍѤ¤¤é¤ì¤ë¡£ +が NULL の場合、それぞれのアクセスメソッドとシステムとに適合した +デフォルトが用いられる。 .PP .\"O .BR dbopen () .\"O returns a pointer to a @@ -210,14 +210,14 @@ hashed .\"O include file, and contains at .\"O least the following fields: .BR dbopen () -¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç +は、成功した場合 .I DB -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ò¡¢¥¨¥é¡¼¤Î¾ì¹ç NULL ¤òÊÖ¤¹¡£ +構造体へのポインタを、エラーの場合 NULL を返す。 .I DB -¹½Â¤ÂÎ¤Ï +構造体は .I -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤ÎÃæ¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ -¾¯¤Ê¤¯¤È¤â°Ê²¼¤Î¤è¤¦¤Ê¥Õ¥£¡¼¥ë¥É¤ò»ý¤Ã¤Æ¤¤¤ë¡£ +インクルードファイルの中で定義されており、 +少なくとも以下のようなフィールドを持っている。 .sp .in +4n .nf @@ -242,58 +242,58 @@ typedef struct { .\"O These functions take a pointer to a structure as returned by .\"O .BR dbopen (), .\"O and sometimes one or more pointers to key/data structures and a flag value. -³ÆÍ×ÁǤˤϡ¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥¿¥¤¥×¤È¡¢ -ÍÍ¡¹¤ÊÆ°ºî¤ò¤¹¤ë´Ø¿ô¤Î¥»¥Ã¥È¤¬µ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ï +各要素には、データベースのタイプと、 +様々な動作をする関数のセットが記述されている。 +これらの関数は .BR dbopen () -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ò°ú¤­¿ô¤Ë¤È¤ë¡£ -¥­¡¼/¥Ç¡¼¥¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ä¥Õ¥é¥°Ãͤò¼è¤ë¤â¤Î¤â¤¢¤ë¡£ +によって返される構造体へのポインタを引き数にとる。 +キー/データ構造体へのポインタやフラグ値を取るものもある。 .TP .I type .\"O The type of the underlying access method (and file format). -ÍѤ¤¤é¤ì¤Æ¤¤¤ë¥¢¥¯¥»¥¹¥á¥½¥Ã¥É (¤È¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È) ¤Î·¿¡£ +用いられているアクセスメソッド (とファイルフォーマット) の型。 .TP .I close .\"O A pointer to a routine to flush any cached information to disk, free any .\"O allocated resources, and close the underlying file(s). -¥­¥ã¥Ã¥·¥å¤µ¤ì¤¿¾ðÊó¤ò¥Ç¥£¥¹¥¯¤ËÁݤ­¤À¤¹¤¿¤á¤Î¥ë¡¼¥Á¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ -³ä¤êÅö¤Æ¤é¤ì¤¿¥ê¥½¡¼¥¹¤ò²òÊü¤·¡¢ÍøÍѤ·¤¿¥Õ¥¡¥¤¥ë(·²)¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +キャッシュされた情報をディスクに掃きだすためのルーチンへのポインタ。 +割り当てられたリソースを解放し、利用したファイル(群)をクローズする。 .\"O Since key/data pairs may be cached in memory, failing to sync the file .\"O with a .\"O .I close .\"O or .\"O .I sync .\"O function may result in inconsistent or lost information. -¥­¡¼/¥Ç¡¼¥¿ÂФ¬¥á¥â¥ê¤Ë¥­¥ã¥Ã¥·¥å¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ +キー/データ対がメモリにキャッシュされている場合、 .I close -¤ä +や .I sync -´Ø¿ô¤Ç¤ÎƱ´ü¤Ë¼ºÇÔ¤¹¤ë¤È¡¢¾ðÊó¤ËÌ·½â¤¬À¸¤¸¤ë¤«¾ðÊó¤ò¼º¤¦²ÄǽÀ­¤¬¤¢¤ë¡£ +関数での同期に失敗すると、情報に矛盾が生じるか情報を失う可能性がある。 .\"O .I close .\"O routines return \-1 on error (setting .\"O .IR errno ) .\"O and 0 on success. .I close -¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤· +ルーチンはエラーの場合 \-1 を返し .RI ( errno -¤ò¥»¥Ã¥È¤¹¤ë)¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ +をセットする)、成功すると 0 を返す。 .TP .I del .\"O A pointer to a routine to remove key/data pairs from the database. -¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¥­¡¼/¥Ç¡¼¥¿ÂФòºï½ü¤¹¤ë¥ë¡¼¥Á¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ +データベースからキー/データ対を削除するルーチンへのポインタ。 .IP .\"O The argument .\"O .I flag .\"O may be set to the following value: .I flag -°ú¤­¿ô¤Ï¼¡¤ÎÃͤ¬¥»¥Ã¥È¤Ç¤­¤ë¡£ +引き数は次の値がセットできる。 .RS .TP .B R_CURSOR .\"O Delete the record referenced by the cursor. .\"O The cursor must have previously been initialized. -¥«¡¼¥½¥ë (cursor) ¤¬»²¾È¤·¤Æ¤¤¤ë¥ì¥³¡¼¥É¤òºï½ü¤¹¤ë¡£ -¥«¡¼¥½¥ë¤ÏÁ°¤â¤Ã¤Æ½é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +カーソル (cursor) が参照しているレコードを削除する。 +カーソルは前もって初期化されていなくてはならない。 .RE .IP .\"O .I delete @@ -303,39 +303,39 @@ typedef struct { .\"O .I key .\"O was not in the file. .I delete -¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤· +ルーチンはエラーの場合 \-1 を返し .RI ( errno -¤ò¥»¥Ã¥È¤¹¤ë)¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¤Þ¤¿»ØÄê¤Î +をセットする)、成功すると 0 を返す。また指定の .I key -¤¬¥Õ¥¡¥¤¥ëÃæ¤Ë̵¤¤¾ì¹ç 1 ¤òÊÖ¤¹¡£ +がファイル中に無い場合 1 を返す。 .TP .I fd .\"O A pointer to a routine which returns a file descriptor representative .\"O of the underlying database. -ÍѤ¤¤Æ¤¤¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¥ë¡¼¥Á¥ó -¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ +用いているデータベースのファイルデスクリプタを返すルーチン +へのポインタ。 .\"O A file descriptor referencing the same file will be returned to all .\"O processes which call .\"O .BR dbopen () .\"O with the same .\"O .I file .\"O name. -Ʊ¤¸¥Õ¥¡¥¤¥ë̾ +同じファイル名 .I file -¤Ç +で .BR dbopen () -¤ò¸Æ¤Ó½Ð¤·¤¿Á´¤Æ¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¤ò¼¨¤¹Ã±°ì¤Î¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤¬ÊÖ¤µ¤ì¤ë¡£ +を呼び出した全てのプロセスに対して、 +そのファイルを示す単一のファイルデスクリプタが返される。 .\"O This file descriptor may be safely used as an argument to the .\"O .BR fcntl (2) .\"O and .\"O .BR flock (2) .\"O locking functions. -¤³¤Î¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤Ï¥í¥Ã¥¯´Ø¿ô +このファイルデスクリプタはロック関数 .BR fcntl (2) -¤È +と .BR flock (2) -¤Ø¤Î°ú¤­¿ô¤È¤·¤Æ°ÂÁ´¤Ë»ÈÍѤǤ­¤ë¡£ +への引き数として安全に使用できる。 .\"O The file descriptor is not necessarily associated with any of the .\"O underlying files used by the access method. .\"O No file descriptor is available for in memory databases. @@ -343,28 +343,28 @@ typedef struct { .\"O routines return \-1 on error (setting .\"O .IR errno ), .\"O and the file descriptor on success. -¤³¤Î¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤Ï¡¢É¬¤º¤·¤â¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ç -ÍѤ¤¤é¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Î¤¤¤º¤ì¤«¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤Ê¤¯¤Æ¤âÎɤ¤¡£ -¥á¥â¥êÆâ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤Ï¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤Ï̵¤¤¡£ +このファイルデスクリプタは、必ずしもアクセスメソッドで +用いられているファイルのいずれかに関連づけられていなくても良い。 +メモリ内のデータベースにはファイルデスクリプタは無い。 .I fd -¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤· +ルーチンはエラーの場合 \-1 を返し .RI ( errno -¤ò¥»¥Ã¥È¤¹¤ë)¡¢À®¸ù¤¹¤ë¤È¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ +をセットする)、成功するとファイルデスクリプタを返す。 .TP .I get .\"O A pointer to a routine which is the interface for keyed retrieval from .\"O the database. -¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¥­¡¼¤òÍѤ¤¤Æ¥Ç¡¼¥¿¤ò¼è¤ê½Ð¤¹¤¿¤á¤Î -¥ë¡¼¥Á¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ +データベースからキーを用いてデータを取り出すための +ルーチンへのポインタ。 .\"O The address and length of the data associated with the specified .\"O .I key .\"O are returned in the structure referenced by .\"O .IR data . -»ØÄꤷ¤¿ +指定した .I key -¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥Ç¡¼¥¿¤Î¥¢¥É¥ì¥¹¤ÈŤµ¤¬ +に関連づけられたデータのアドレスと長さが .I data -¤¬»²¾È¤¹¤ë¹½Â¤ÂΤËÊÖ¤µ¤ì¤ë¡£ +が参照する構造体に返される。 .\"O .I get .\"O routines return \-1 on error (setting .\"O .IR errno ), @@ -372,28 +372,28 @@ typedef struct { .\"O .I key .\"O was not in the file. .I get -¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤· +ルーチンはエラーの場合 \-1 を返し .RI ( errno -¤ò¥»¥Ã¥È¤¹¤ë)¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¤Þ¤¿ +をセットする)、成功すると 0 を返す。また .I key -¤¬¥Õ¥¡¥¤¥ëÃæ¤Ë̵¤¤¾ì¹ç 1 ¤òÊÖ¤¹¡£ +がファイル中に無い場合 1 を返す。 .TP .I put .\"O A pointer to a routine to store key/data pairs in the database. -¥­¡¼/¥Ç¡¼¥¿ÂФò¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËǼ¤á¤ë¥ë¡¼¥Á¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ +キー/データ対をデータベースに納めるルーチンへのポインタ。 .IP .\"O The argument .\"O .I flag .\"O may be set to one of the following values: .I flag -°ú¤­¿ô¤Ë¤Ï¼¡¤ÎÃͤΤ¦¤Á¤Î¤É¤ì¤«°ì¤Ä¤¬¥»¥Ã¥È¤Ç¤­¤ë¡£ +引き数には次の値のうちのどれか一つがセットできる。 .RS .TP .B R_CURSOR .\"O Replace the key/data pair referenced by the cursor. .\"O The cursor must have previously been initialized. -¥«¡¼¥½¥ë¤¬»²¾È¤·¤Æ¤¤¤ë¥­¡¼/¥Ç¡¼¥¿ÂФòÃÖ¤­´¹¤¨¤ë¡£ -¥«¡¼¥½¥ë¤ÏÁ°¤â¤Ã¤Æ½é´ü²½¤µ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ +カーソルが参照しているキー/データ対を置き換える。 +カーソルは前もって初期化されている必要がある。 .TP .B R_IAFTER .\"O Append the data immediately after the data referenced by @@ -406,13 +406,13 @@ typedef struct { .\"O .B DB_RECNO .\"O access method.) .I key -¤Ç»²¾È¤µ¤ì¤ë¥Ç¡¼¥¿¤Îľ¸å¤Ë¡¢ -¿·¤·¤¤¥­¡¼/¥Ç¡¼¥¿ÂФòºî¤Ã¤Æ¥Ç¡¼¥¿¤òÄɲ乤롣 -Äɲ䵤줿¥­¡¼/¥Ç¡¼¥¿ÂФΥ쥳¡¼¥ÉÈÖ¹æ¤Ï +で参照されるデータの直後に、 +新しいキー/データ対を作ってデータを追加する。 +追加されたキー/データ対のレコード番号は .I key -¹½Â¤ÂΤËÊÖ¤µ¤ì¤ë¡£ +構造体に返される。 .RB ( DB_RECNO -¥¢¥¯¥»¥¹ÊýË¡¤Ç¤Î¤ß»È¤¨¤ë¡£) +アクセス方法でのみ使える。) .TP .B R_IBEFORE .\"O Insert the data immediately before the data referenced by @@ -425,17 +425,17 @@ typedef struct { .\"O .B DB_RECNO .\"O access method.) .I key -¤Ç»²¾È¤µ¤ì¤ë¥Ç¡¼¥¿¤ÎľÁ°¤Ë¡¢ -¿·¤·¤¤¥­¡¼/¥Ç¡¼¥¿ÂФòºî¤Ã¤Æ¥Ç¡¼¥¿¤òÁÞÆþ¤¹¤ë¡£ -Äɲ䵤줿¥­¡¼/¥Ç¡¼¥¿ÂФΥ쥳¡¼¥ÉÈÖ¹æ¤Ï +で参照されるデータの直前に、 +新しいキー/データ対を作ってデータを挿入する。 +追加されたキー/データ対のレコード番号は .I key -¹½Â¤ÂΤËÊÖ¤µ¤ì¤ë¡£ +構造体に返される。 .RB ( DB_RECNO -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ç¤Î¤ß»È¤¨¤ë¡£) +アクセスメソッドでのみ使える。) .TP .B R_NOOVERWRITE .\"O Enter the new key/data pair only if the key does not previously exist. -¥­¡¼¤¬¤¢¤é¤«¤¸¤á¸ºß¤·¤Ê¤¤¾ì¹ç¤Ë¸Â¤ê¡¢¿·¤·¤¤¥­¡¼/¥Ç¡¼¥¿ÂФò¤¤¤ì¤ë¡£ +キーがあらかじめ存在しない場合に限り、新しいキー/データ対をいれる。 .TP .B R_SETCURSOR .\"O Store the key/data pair, setting or initializing the position of the @@ -445,12 +445,12 @@ typedef struct { .\"O and .\"O .B DB_RECNO .\"O access methods.) -¥­¡¼/¥Ç¡¼¥¿ÂФòǼ¤á¡¢¤½¤ì¤ò»Ø¤¹¤è¤¦¤Ë¥«¡¼¥½¥ë°ÌÃÖ¤ò¥»¥Ã¥È¤¢¤ë¤¤¤Ï½é´ü -²½¤¹¤ë¡£ +キー/データ対を納め、それを指すようにカーソル位置をセットあるいは初期 +化する。 .RB ( DB_BTREE -¤È +と .B DB_RECNO -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ç¤Î¤ß»È¤¨¤ë¡£) +アクセスメソッドでのみ使える。) .RE .IP .\"O .B R_SETCURSOR @@ -462,15 +462,15 @@ typedef struct { .\"O methods because it implies that the keys have an inherent order .\"O which does not change. .B R_SETCURSOR -¤Ï +は .B DB_BTREE -¤È +と .B DB_RECNO -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ç¤·¤«ÍøÍѤǤ­¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é +アクセスメソッドでしか利用できない。 +なぜなら .B R_SETCURSOR -¤òÍѤ¤¤ë¤Ë¤Ï¡¢Êѹ¹¤µ¤ì¤ë»ö¤Î̵¤¤¸ÇÍ­¤Î½ç½ø¤ò¥­¡¼ -¤¬»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +を用いるには、変更される事の無い固有の順序をキー +が持っていなければならないからである。 .IP .\"O .B R_IAFTER .\"O and @@ -482,22 +482,22 @@ typedef struct { .\"O This is only true if the keys are ordered and independent, record numbers .\"O for example. .B R_IAFTER -¤È +と .B R_IBEFORE -¤Ï +は .B DB_RECNO -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ç¤·¤«ÍøÍѤǤ­¤Ê¤¤¡£ -¤³¤ì¤é¤ò¼Â¸½¤¹¤ë¤Ë¤Ï¡¢¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤¬ -¿·¤·¤¤¥­¡¼¤òºî¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ -¤³¤ì¤¬À®Î©¤¹¤ë¤Î¤Ï¡¢Î㤨¤Ð¡¢½ç½ø¤Å¤±¤é¤¿ÆÈΩ¤Ê¥ì¥³¡¼¥ÉÈֹ椬 -¥­¡¼¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤è¤¦¤Ê¾ì¹ç¤À¤±¤Ç¤¢¤ë¡£ +アクセスメソッドでしか利用できない。 +これらを実現するには、アクセスメソッドが +新しいキーを作れなければならないからである。 +これが成立するのは、例えば、順序づけらた独立なレコード番号が +キーになっているような場合だけである。 .IP .\"O The default behavior of the .I put .\"O routines is to enter the new key/data pair, replacing any previously .\"O existing key. -¥ë¡¼¥Á¥ó¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¡¢¿·¤·¤¤¥­¡¼/¥Ç¡¼¥¿ÂФò -´û¤Ë¸ºß¤¹¤ë¥­¡¼¤òÃÖ¤­´¹¤¨¤ë»ö¤Æ³ÊǼ¤¹¤ëÆ°ºî¤Ç¤¢¤ë¡£ +ルーチンのデフォルトの動作は、新しいキー/データ対を +既に存在するキーを置き換える事て格納する動作である。 .IP .I put .\"O routines return \-1 on error (setting @@ -506,13 +506,13 @@ typedef struct { .\"O .B R_NOOVERWRITE .\"O .I flag .\"O was set and the key already exists in the file. -¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤· +ルーチンはエラーの場合 \-1 を返し .RI ( errno -¤ò¥»¥Ã¥È¤¹¤ë)¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¤Þ¤¿ +をセットする)、成功すると 0 を返す。また .I flag -¤Ë +に .B R_NOOVERWRITE -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Æ¥­¡¼¤¬´û¤Ë¸ºß¤¹¤ë¾ì¹ç 1 ¤òÊÖ¤¹¡£ +がセットされていてキーが既に存在する場合 1 を返す。 .TP .I seq .\"O A pointer to a routine which is the interface for sequential @@ -524,38 +524,38 @@ typedef struct { .\"O structure referenced .\"O by .\"O .IR data . -¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¥·¡¼¥±¥ó¥·¥ã¥ë¤Ë¥Ç¡¼¥¿¤ò¼è¤ê½Ð¤¹¤¿¤á¤Î -¥ë¡¼¥Á¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ -¥­¡¼¤Î¥¢¥É¥ì¥¹¤ÈŤµ¤¬ +データベースからシーケンシャルにデータを取り出すための +ルーチンへのポインタ。 +キーのアドレスと長さが .I key -¤¬»²¾È¤¹¤ë¹½Â¤ÂΤËÊÖ¤µ¤ì¤ë¡£¥Ç¡¼¥¿¤Î¥¢¥É¥ì¥¹¤ÈŤµ¤¬ +が参照する構造体に返される。データのアドレスと長さが .I data -¤¬»²¾È¤¹¤ë¹½Â¤ÂΤËÊÖ¤µ¤ì¤ë¡£ +が参照する構造体に返される。 .IP .\"O Sequential key/data pair retrieval may begin at any time, and the .\"O position of the "cursor" is not affected by calls to the -¥·¡¼¥±¥ó¥·¥ã¥ë¤Ê¥­¡¼/¥Ç¡¼¥¿ÂФμèÆÀ¤Ï¤¤¤Ä¤Ç¤â¹Ô¤¨¤ë¡£¤Þ¤¿ -¡Ö¥«¡¼¥½¥ë¡×¤Î°ÌÃÖ¤Ï +シーケンシャルなキー/データ対の取得はいつでも行える。また +「カーソル」の位置は .IR del , .IR get , .IR put , .\"O or .I sync .\"O routines. -¥ë¡¼¥Á¥ó¤Î¸Æ¤Ó½Ð¤·¤Ë¤Ï±Æ¶Á¤µ¤ì¤Ê¤¤¡£ +ルーチンの呼び出しには影響されない。 .\"O Modifications to the database during a sequential scan will be reflected .\"O in the scan, that is, .\"O records inserted behind the cursor will not be returned .\"O while records inserted in front of the cursor will be returned. -¥·¡¼¥±¥ó¥·¥ã¥ë¤Ê¥¹¥­¥ã¥ó¤ÎÅÓÃæ¤Ë¹Ô¤ï¤ì¤¿¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÊѹ¹¤Ï -¥¹¥­¥ã¥ó¤ËÈ¿±Ç¤µ¤ì¤ë¡£¤¹¤Ê¤ï¤Á¡¢¥«¡¼¥½¥ë¤Î¸å¤í¤ËÁÞÆþ¤µ¤ì¤¿¥ì¥³¡¼¥É¤Ï -ÊÖ¤µ¤ì¤Ê¤¤¤¬¡¢¥«¡¼¥½¥ë¤ÎÁ°¤ËÁÞÆþ¤µ¤ì¤¿¥ì¥³¡¼¥É¤ÏÊÖ¤µ¤ì¤ë¡£ +シーケンシャルなスキャンの途中に行われたデータベースへの変更は +スキャンに反映される。すなわち、カーソルの後ろに挿入されたレコードは +返されないが、カーソルの前に挿入されたレコードは返される。 .IP .\"O The flag value .\"O .B must .\"O be set to one of the following values: -¥Õ¥é¥°ÃͤˤÏ\fBɬ¤º\fP°Ê²¼¤Ë¼¨¤¹¤¦¤Á¤Î -¤É¤ì¤«°ì¤Ä¤ò¥»¥Ã¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +フラグ値には\fB必ず\fP以下に示すうちの +どれか一つをセットしなければならない。 .RS .TP .B R_CURSOR @@ -570,23 +570,23 @@ typedef struct { .\"O exact match for the specified key. .\"O The returned key is the smallest key greater than or equal to the specified .\"O key, permitting partial key matches and range searches.) -»ØÄꤷ¤¿¥­¡¼¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥Ç¡¼¥¿¤¬ÊÖ¤µ¤ì¤ë¡£ +指定したキーに関連づけられたデータが返される。 .I get -¥ë¡¼¥Á¥ó¤È¤Î°ã¤¤¤Ï¡¢¥«¡¼¥½¥ë¤¬¥­¡¼¤Î°ÌÃ֤˥»¥Ã¥È¤¢¤ë¤¤¤Ï -½é´ü²½¤µ¤ì¤ëÅÀ¤Ç¤¢¤ë¡£ -(Ãí°Õ: +ルーチンとの違いは、カーソルがキーの位置にセットあるいは +初期化される点である。 +(注意: .B DB_BTREE -¥¢¥¯¥»¥¹ÊýË¡¤Ç¤Ï¡¢ÊÖ¤µ¤ì¤¿¥­¡¼¤¬ -ɬ¤º¤·¤â»ØÄꤷ¤¿¥­¡¼¤ËÀµ¤·¤¯¥Þ¥Ã¥Á¤·¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -ÊÖ¤µ¤ì¤¿¥­¡¼¤Ï¡¢»ØÄꤵ¤ì¤¿¥­¡¼¤ËÅù¤·¤¤¤«¤è¤êÂ礭¤¤¤â¤Î¤Î¤¦¤Á -ºÇ¾®¤Î¤â¤Î¤Ë¤Ê¤ë -(Éôʬ¥­¡¼¥Þ¥Ã¥Á¤«Èϰϸ¡º÷¤¬µö²Ä¤µ¤ì¤Æ¤¤¤ë¾ì¹ç)¡£) +アクセス方法では、返されたキーが +必ずしも指定したキーに正しくマッチしないかもしれない。 +返されたキーは、指定されたキーに等しいかより大きいもののうち +最小のものになる +(部分キーマッチか範囲検索が許可されている場合)。) .TP .B R_FIRST .\"O The first key/data pair of the database is returned, and the cursor .\"O is set or initialized to reference it. -¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºÇ½é¤Î¥­¡¼/¥Ç¡¼¥¿ÂФ¬ÊÖ¤µ¤ì¤ë¡£ -¥«¡¼¥½¥ë¤Ï¤½¤ì¤ò»²¾È¤¹¤ë¤è¤¦¤Ë¥»¥Ã¥È¤Þ¤¿¤Ï½é´ü²½¤µ¤ì¤ë¡£ +データベースの最初のキー/データ対が返される。 +カーソルはそれを参照するようにセットまたは初期化される。 .TP .B R_LAST .\"O The last key/data pair of the database is returned, and the cursor @@ -596,22 +596,22 @@ typedef struct { .\"O and .\"O .B DB_RECNO .\"O access methods.) -¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºÇ¸å¤Î¥­¡¼/¥Ç¡¼¥¿ÂФ¬ÊÖ¤µ¤ì¤ë¡£¥«¡¼¥½¥ë¤Ï¤½¤ì¤ò»²¾È¤¹¤ë -¤è¤¦¤Ë¥»¥Ã¥È¤Þ¤¿¤Ï½é´ü²½¤µ¤ì¤ë¡£ +データベースの最後のキー/データ対が返される。カーソルはそれを参照する +ようにセットまたは初期化される。 .RB ( DB_BTREE -¤È +と .B DB_RECNO -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤À¤±¤Ç»È¤¨¤ë¡£) +アクセスメソッドだけで使える。) .TP .B R_NEXT .\"O Retrieve the key/data pair immediately after the cursor. .\"O If the cursor is not yet set, this is the same as the .\"O .B R_FIRST .\"O flag. -¥«¡¼¥½¥ëľ¸å¤Î¥­¡¼/¥Ç¡¼¥¿ÂФò¼èÆÀ¤¹¤ë¡£ -¥«¡¼¥½¥ë¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï +カーソル直後のキー/データ対を取得する。 +カーソルがセットされていない場合は .B R_FIRST -¥Õ¥é¥°¤ÈƱ¤¸¡£ +フラグと同じ。 .TP .B R_PREV .\"O Retrieve the key/data pair immediately before the cursor. @@ -623,14 +623,14 @@ typedef struct { .\"O and .\"O .B DB_RECNO .\"O access methods.) -¥«¡¼¥½¥ëľÁ°¤Î¥­¡¼/¥Ç¡¼¥¿ÂФò¼èÆÀ¤¹¤ë¡£ -¥«¡¼¥½¥ë¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï +カーソル直前のキー/データ対を取得する。 +カーソルがセットされていない場合は .B R_LAST -¥Õ¥é¥°¤ÈƱ¤¸¡£ +フラグと同じ。 .RB ( DB_BTREE -¤È +と .B DB_RECNO -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤À¤±¤Ç»È¤¨¤ë¡£) +アクセスメソッドだけで使える。) .RE .IP .\"O .B R_LAST @@ -643,16 +643,16 @@ typedef struct { .\"O access methods because they each imply that the keys have an inherent .\"O order which does not change. .B R_LAST -¤È +と .B R_PREV -¤Ï¡¢ +は、 .B DB_BTREE -¤È +と .B DB_RECNO -¥¢¥¯¥»¥¹ÊýË¡¤Ç¤·¤«»È¤¨¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é +アクセス方法でしか使えない。 +なぜなら .B R_SETCURSOR -¤òÍѤ¤¤ë¤Ë¤Ï¡¢Êѹ¹¤µ¤ì¤ë»ö¤Î̵¤¤¸ÇÍ­¤Î½ç½ø¤ò¥­¡¼¤¬»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +を用いるには、変更される事の無い固有の順序をキーが持っていなければならないからである。 .IP .I seq .\"O routines return \-1 on error (setting @@ -666,31 +666,31 @@ typedef struct { .\"O available, the .\"O .I seq .\"O routines return 2. -¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤· +ルーチンはエラーの場合 \-1 を返し .RI ( errno -¤ò¥»¥Ã¥È¤¹¤ë)¡¢ -À®¸ù¤Î¾ì¹ç 0 ¤òÊÖ¤¹¡£ -»ØÄꤷ¤¿¥­¡¼¤ä¥«¥ì¥ó¥È¥­¡¼¤è¤ê¤âÂ礭¤¤/¾®¤µ¤¤¥­¡¼/¥Ç¡¼¥¿ÂФ¬¤Ê¤¤¾ì¹ç¤Ï -1 ¤òÊÖ¤¹¡£ +をセットする)、 +成功の場合 0 を返す。 +指定したキーやカレントキーよりも大きい/小さいキー/データ対がない場合は +1 を返す。 .B DB_RECNO -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤ò»È¤Ã¤Æ¤¤¤Æ¡¢ -¤«¤Ä¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤¬Ê¸»ú·¿¤Î¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤Ç¡¢ -´°À®¤·¤Æ¤¤¤ë¥­¡¼/¥Ç¡¼¥¿ÂФ¬Ìµ¤¤¾ì¹ç¤Ë¤Ï¡¢ +アクセスメソッドを使っていて、 +かつデータベースファイルが文字型のスペシャルファイルで、 +完成しているキー/データ対が無い場合には、 .I seq -¥ë¡¼¥Á¥ó¤Ï 2 ¤òÊÖ¤¹¡£ +ルーチンは 2 を返す。 .TP .I sync .\"O A pointer to a routine to flush any cached information to disk. .\"O If the database is in memory only, the .\"O .I sync .\"O routine has no effect and will always succeed. -¥­¥ã¥Ã¥·¥å¤µ¤ì¤¿¾ðÊó¤ò¥Ç¥£¥¹¥¯¤ËÁݤ­½Ð¤¹¥ë¡¼¥Á¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ -¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬¥á¥â¥ê¤ÎÃæ¤À¤±¤Ë¤¢¤ë¾ì¹ç¡¢ +キャッシュされた情報をディスクに掃き出すルーチンへのポインタ。 +データベースがメモリの中だけにある場合、 .I sync -¥ë¡¼¥Á¥ó¤Ï²¿¤Î¸ú²Ì¤â¤Ê¤¯¾ï¤ËÀ®¸ù¤¹¤ë¡£ +ルーチンは何の効果もなく常に成功する。 .IP .\"O The flag value may be set to the following value: -flag ¤Ë¤Ï°Ê²¼¤ÎÃͤ¬¥»¥Ã¥È¤Ç¤­¤ë¡£ +flag には以下の値がセットできる。 .RS .TP .B R_RECNOSYNC @@ -700,36 +700,36 @@ flag .\"O the sync routine to apply to the btree file which underlies the .\"O recno file, not the recno file itself. .B DB_RECNO -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤ò»È¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë -¤³¤Î¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢ -recno ¥Õ¥¡¥¤¥ë¤½¤Î¤â¤Î¤Ë¤Ç¤Ï¤Ê¤¯¡¢ -¤½¤Î¥Ù¡¼¥¹¤Ë¤Ê¤Ã¤Æ¤¤¤ë btree ¥Õ¥¡¥¤¥ë¤Ë sync ¤¬¹Ô¤ï¤ì¤ë¡£ +アクセスメソッドを使っている場合に +このフラグをセットすると、 +recno ファイルそのものにではなく、 +そのベースになっている btree ファイルに sync が行われる。 .\"O (See the .\"O .I bfname .\"O field of the .\"O .BR recno (3) .\"O manual page for more information.) -(¾ÜºÙ¤Ï +(詳細は .BR recno (3) -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç +マニュアルページで .I bfname -¥Õ¥£¡¼¥ë¥É¤òÀâÌÀ¤·¤Æ¤¤¤ëÉôʬ¤ò»²¾È¤Î¤³¤È¡£) +フィールドを説明している部分を参照のこと。) .RE .IP .I sync .\"O routines return \-1 on error (setting .\"O .IR errno ) .\"O and 0 on success. -¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤· +ルーチンはエラーの場合 \-1 を返し .RI ( errno -¤ò¥»¥Ã¥È¤¹¤ë)¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ +をセットする)、成功すると 0 を返す。 .\"O .SS "Key/Data Pairs" -.SS ¥­¡¼/¥Ç¡¼¥¿ÂÐ +.SS キー/データ対 .\"O Access to all file types is based on key/data pairs. .\"O Both keys and data are represented by the following data structure: -Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤Ë¤ª¤¤¤Æ¡¢ -¥­¡¼/¥Ç¡¼¥¿ÂФò¥Ù¡¼¥¹¤Ë¤·¤Æ¥¢¥¯¥»¥¹¤¬¹Ô¤ï¤ì¤ë¡£ -¥­¡¼¤È¥Ç¡¼¥¿¤Î¤¤¤º¤ì¤â¡¢¼¡¤Î¥Ç¡¼¥¿¹½Â¤¤Çµ­½Ò¤µ¤ì¤ë¡£ +全てのファイルタイプにおいて、 +キー/データ対をベースにしてアクセスが行われる。 +キーとデータのいずれも、次のデータ構造で記述される。 .in +4n .nf @@ -743,27 +743,27 @@ typedef struct { .\"O .I DBT .\"O structure are defined as follows: .I DBT -¹½Â¤ÂΤγÆÍ×ÁǤϼ¡¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +構造体の各要素は次のように定義されている。 .TP .I data .\"O A pointer to a byte string. -¥Ð¥¤¥Èʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ +バイト文字列へのポインタ。 .TP .I size .\"O The length of the byte string. -¥Ð¥¤¥Èʸ»úÎó¤ÎŤµ¡£ +バイト文字列の長さ。 .PP .\"O Key and data byte strings may reference strings of essentially unlimited .\"O length although any two of them must fit into available memory at the same .\"O time. -¥­¡¼¤È¥Ç¡¼¥¿¤Î¥Ð¥¤¥Èʸ»úÎó¤Ï¡¢ -´ðËÜŪ¤Ë¤Ï̵À©¸Â¤ÎŤµ¤Îʸ»úÎó¤ò»²¾È¤Ç¤­¤ë¤¬¡¢ -¤·¤«¤·¤¤¤º¤ì¤â»ÈÍѲÄǽ¤Ê¥á¥â¥ê¤Ë¼ý¤Þ¤Ã¤Æ¤¤¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +キーとデータのバイト文字列は、 +基本的には無制限の長さの文字列を参照できるが、 +しかしいずれも使用可能なメモリに収まっていなくてはならない。 .\"O It should be noted that the access methods provide no guarantees about .\"O byte string alignment. -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ï¥Ð¥¤¥Èʸ»úÎó¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤Ë¤Ä¤¤¤Æ¤Ï -²¿¤âÊݾڤ·¤Æ¤¤¤Ê¤¤»ö¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -.SH ¥¨¥é¡¼ +アクセスメソッドはバイト文字列のアラインメントについては +何も保証していない事に注意すること。 +.SH エラー .\"O The .\"O .BR dbopen () .\"O routine may fail and set @@ -774,17 +774,17 @@ typedef struct { .\"O .BR malloc (3) .\"O or the following: .BR dbopen () -¥ë¡¼¥Á¥ó¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó +ルーチンは失敗するとライブラリルーチン .BR open (2) -¤È +と .BR malloc (3) -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿ +で指定されているエラーに応じた .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£¤¢¤ë¤¤¤Ï°Ê²¼¤ò¥»¥Ã¥È¤¹¤ë¡£ +をセットする。あるいは以下をセットする。 .TP .B [EFTYPE] .\"O A file is incorrectly formatted. -¥Õ¥¡¥¤¥ë¤¬Àµ¤·¤¯¥Õ¥©¡¼¥Þ¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +ファイルが正しくフォーマットされていない。 .TP .B [EINVAL] .\"O A parameter has been specified (hash function, pad byte etc.) that is @@ -792,15 +792,15 @@ typedef struct { .\"O meaningful for the function (for example, use of the cursor without .\"O prior initialization) or there is a mismatch between the version .\"O number of file and the software. -»ØÄꤷ¤¿¥Ñ¥é¥á¡¼¥¿(¥Ï¥Ã¥·¥å´Ø¿ô¡¢¥Ð¥¤¥ÈËä¤á¤Ê¤É)¤¬¸½ºß¤Î¥Õ¥¡¥¤¥ë»ÅÍÍ¤Ë -¹ç¤Ã¤Æ¤¤¤Ê¤¤¡¢¥Ñ¥é¥á¡¼¥¿¤¬´Ø¿ô¤Ë¤È¤Ã¤Æ̵°ÕÌ£ -(Î㤨¤Ð¤¢¤é¤«¤¸¤á½é´ü²½¤·¤Ê¤¤¤Ç¥«¡¼¥½¥ë¤ò»È¤¦¤È¤«)¡¢ -¥Õ¥¡¥¤¥ë¤È¥½¥Õ¥È¥¦¥§¥¢¤Î¥Ð¡¼¥¸¥ç¥ó¤¬¹ç¤Ã¤Æ¤¤¤Ê¤¤¡£ +指定したパラメータ(ハッシュ関数、バイト埋めなど)が現在のファイル仕様に +合っていない、パラメータが関数にとって無意味 +(例えばあらかじめ初期化しないでカーソルを使うとか)、 +ファイルとソフトウェアのバージョンが合っていない。 .PP .\"O The .I close .\"O routines may fail and set -¥ë¡¼¥Á¥ó¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó +ルーチンは失敗するとライブラリルーチン .\"O .I errno .\"O for any of the errors specified for the library routines .BR close (2), @@ -809,19 +809,19 @@ typedef struct { .BR free (3), .\"O or .BR fsync (2) -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿ +で指定されているエラーに応じた .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ +をセットする。 .PP .\"O The .IR del , .IR get , .I put .\"O and -¤È +と .I seq .\"O routines may fail and set -¥ë¡¼¥Á¥ó¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó +ルーチンは失敗するとライブラリルーチン .\"O .I errno .\"O for any of the errors specified for the library routines .BR read (2), @@ -829,9 +829,9 @@ typedef struct { .BR free (3), .\"O or .BR malloc (3) -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿ +で指定されているエラーに応じた .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ +をセットする。 .PP .\"O The .\"O .I fd @@ -841,42 +841,42 @@ typedef struct { .\"O .B ENOENT .\"O for in memory databases. .I fd -¥ë¡¼¥Á¥ó¤Ï¥á¥â¥êÆâ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÂФ·¼ºÇÔ¤¹¤ë¤È +ルーチンはメモリ内データベースに対し失敗すると .I errno -¤Ë +に .B ENOENT -¤ò¥»¥Ã¥È¤¹¤ë¡£ +をセットする。 .PP .\"O The .I sync .\"O routines may fail and set -¥ë¡¼¥Á¥ó¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó +ルーチンは失敗するとライブラリルーチン .\"O .I errno .\"O for any of the errors specified for the library routine .BR fsync (2) -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿ +で指定されているエラーに応じた .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ -.SH ¥Ð¥° +をセットする。 +.SH バグ .\"O The typedef .\"O .I DBT .\"O is a mnemonic for "data base thang", and was used .\"O because no-one could think of a reasonable name that wasn't already used. typedef .I DBT -¤Ï ``data base thang''¤Îά¸ì¤Ç¤¢¤ë¤¬¡¢¤³¤ì¤¬»È¤ï¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢ -¤Þ¤À»È¤ï¤ì¤Æ¤¤¤Ê¤¤ÂÅÅö¤Ê̾Á°¤¬»×¤¤ÉÕ¤«¤Ê¤«¤Ã¤¿¤¿¤á¤Ç¤¢¤ë¡£ +は ``data base thang''の略語であるが、これが使われているのは、 +まだ使われていない妥当な名前が思い付かなかったためである。 .PP .\"O The file descriptor interface is a kludge and will be deleted in a .\"O future version of the interface. -¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤ò»È¤Ã¤¿¤ä¤ê¤È¤ê¤Ï¤Ò¤É¤¤Âåʪ¤Ç¤¢¤ê¡¢ -¾­Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ïºï½ü¤µ¤ì¤ë¤À¤í¤¦¡£ +ファイルデスクリプタを使ったやりとりはひどい代物であり、 +将来のバージョンでは削除されるだろう。 .PP .\"O None of the access methods provide any form of concurrent access, .\"O locking, or transactions. -¤É¤Î¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤â¡¢Æ±»þ¥¢¥¯¥»¥¹¡¢¥í¥Ã¥¯¡¢¥È¥é¥ó¥¶¥¯¥·¥ç¥ó -¤Î»ÅÁȤߤÏÈ÷¤¨¤Æ¤¤¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +どのアクセスメソッドも、同時アクセス、ロック、トランザクション +の仕組みは備えていない。 +.SH 関連項目 .BR btree (3), .BR hash (3), .BR mpool (3), diff --git a/draft/man3/des_crypt.3 b/draft/man3/des_crypt.3 index ee1680b2..2c8e7bdc 100644 --- a/draft/man3/des_crypt.3 +++ b/draft/man3/des_crypt.3 @@ -14,15 +14,15 @@ .\" .TH DES_CRYPT 3 2007-05-18 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O des_crypt, ecb_crypt, cbc_crypt, des_setparity, DES_FAILED \- fast .\"O DES encryption -des_crypt, ecb_crypt, cbc_crypt, des_setparity, DES_FAILED \- ¹â®¤Ê DES °Å¹æ²½ +des_crypt, ecb_crypt, cbc_crypt, des_setparity, DES_FAILED \- 高速な DES 暗号化 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .\" Sun version -.\" Sun ¤Î¾ì¹ç¤Ï +.\" Sun の場合は .\" .B #include .B #include .LP @@ -37,7 +37,7 @@ des_crypt, ecb_crypt, cbc_crypt, des_setparity, DES_FAILED \- .BI "int DES_FAILED(int " status ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR ecb_crypt () .\"O and .\"O .BR cbc_crypt () @@ -46,33 +46,33 @@ des_crypt, ecb_crypt, cbc_crypt, des_setparity, DES_FAILED \- .\"O DES .\"O (Data Encryption Standard). .BR ecb_crypt () -¤È +と .BR cbc_crypt () -¤Ï +は NBS DES -(Data Encryption Standard, ¥Ç¡¼¥¿°Å¹æ²½µ¬³Ê) ¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¡£ +(Data Encryption Standard, データ暗号化規格) を実装している。 .\"O These routines are faster and more general purpose than .\"O .BR crypt (3). -¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤Ï +これらのルーチンは .BR crypt (3) -¤è¤ê¤â¹â®¤Ç¤è¤ê°ìÈÌŪ¤ÊÌÜŪ¤Ë»ÈÍѤǤ­¤ë¡£ +よりも高速でより一般的な目的に使用できる。 .\"O They also are able to utilize .\"O DES .\"O hardware if it is available. -ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤Ï +利用可能であれば、これらのルーチンは DES -¥Ï¡¼¥É¥¦¥§¥¢¤ò»ÈÍѤ¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +ハードウェアを使用することもできる。 .\"O .BR ecb_crypt () .\"O encrypts in .\"O ECB .\"O (Electronic Code Book) .\"O mode, which encrypts blocks of data independently. .BR ecb_crypt () -¤Ï +は ECB -(Electronic Code Book) ¥â¡¼¥É¤Ç°Å¹æ²½¤¹¤ë¡£ -¤³¤Î¥â¡¼¥É¤Ç¤Ï (¸Ä¡¹¤Î) ¥Ç¡¼¥¿¤Î¥Ö¥í¥Ã¥¯¤òÆÈΩ¤·¤Æ°Å¹æ²½¤¹¤ë +(Electronic Code Book) モードで暗号化する。 +このモードでは (個々の) データのブロックを独立して暗号化する .\"O .BR cbc_crypt () .\"O encrypts in .\"O CBC @@ -80,88 +80,88 @@ ECB .\"O mode, which chains together .\"O successive blocks. .BR cbc_crypt () -¤Ï +は CBC -(Cipher Block Chaining) ¥â¡¼¥É¤Ç°Å¹æ²½¤¹¤ë¡£ -¤³¤Î¥â¡¼¥É¤Ç¤ÏϢ³¤¹¤ë¥Ö¥í¥Ã¥¯¤ò¸ß¤¤¤ËÏ¢º¿¤µ¤»¤Æ°Å¹æ²½¤¹¤ë¡£ +(Cipher Block Chaining) モードで暗号化する。 +このモードでは連続するブロックを互いに連鎖させて暗号化する。 .\"O CBC .\"O mode protects against insertions, deletions and .\"O substitutions of blocks. .\"O Also, regularities in the clear text will .\"O not appear in the cipher text. CBC -¤Ï¥Ö¥í¥Ã¥¯¤ÎÁÞÆþ¡¦ºï½ü¡¦ÃÖ¤­´¹¤¨¤«¤éÊݸ¤ë¡£ -¤Þ¤¿Ê¿Ê¸¤Îµ¬Â§À­¤¬°Å¹æʸ¤Ë¸½¤ì¤Ê¤¤¡£ +はブロックの挿入・削除・置き換えから保護する。 +また平文の規則性が暗号文に現れない。 .LP .\"O Here is how to use these routines. .\"O The first argument, .\"O .IR key , .\"O is the 8-byte encryption key with parity. -¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤Î»ÈÍÑË¡¤ò¼¨¤¹¡£ -Âè 1 °ú¤­¿ô +これらのルーチンの使用法を示す。 +第 1 引き数 .I key -¤Ï¥Ñ¥ê¥Æ¥£ÉÕ¤­¤Î 8 ¥Ð¥¤¥È¤Î°Å¹æ²½¸°¤Ç¤¢¤ë¡£ +はパリティ付きの 8 バイトの暗号化鍵である。 .\"O To set the key's parity, which for .\"O DES .\"O is in the low bit of each byte, use .\"O .BR des_setparity (). -¸°¤Î¥Ñ¥ê¥Æ¥£¤òÀßÄꤹ¤ë¤Ë¤Ï +鍵のパリティを設定するには .BR des_setparity () -¤ò»È¤¦¤³¤È¡£ +を使うこと。 DES -¤Î¾ì¹ç¡¢¸°¤Î¥Ñ¥ê¥Æ¥£¤Ï³Æ¥Ð¥¤¥È¤ÎºÇ²¼°Ì¥Ó¥Ã¥È¤Ç¤¢¤ë¡£ +の場合、鍵のパリティは各バイトの最下位ビットである。 .\"O The second argument, .\"O .IR data , .\"O contains the data to be encrypted or decrypted. -Âè 2 °ú¤­¿ô +第 2 引き数 .I data -¤Ï°Å¹æ²½¤Þ¤¿¤ÏÉü¹æ²½¤µ¤ì¤ë¥Ç¡¼¥¿¤ò´Þ¤à¡£ +は暗号化または復号化されるデータを含む。 .\"O The .\"O third argument, .\"O .IR datalen , .\"O is the length in bytes of .\"O .IR data , .\"O which must be a multiple of 8. -Âè 3 °ú¤­¿ô +第 3 引き数 .I datalen -¤Ï +は .I data -¤Î¥Ð¥¤¥ÈŤǤ¢¤ê¡¢8 ¤ÎÇÜ¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +のバイト長であり、8 の倍数でなければならない。 .\"O The fourth argument, .\"O .IR mode , .\"O is formed by ORing together some things. -Âè 4 °ú¤­¿ô +第 4 引き数 .I mode -¤Ï¤¤¤¯¤Ä¤«¤ÎÃͤò OR ¤¹¤ë¤³¤È¤ÇºîÀ®¤¹¤ë¡£ +はいくつかの値を OR することで作成する。 .\"O For the encryption direction OR in either .\"O .BR DES_ENCRYPT .\"O or .\"O .BR DES_DECRYPT . -°Å¹æ²½¤ÎÊý¸þ (ÌõÃð: °Å¹æ²½¤Ê¤Î¤«Éü¹æ²½¤Ê¤Î¤«) ¤ò»ØÄꤹ¤ë¤¿¤á¡¢ +暗号化の方向 (訳註: 暗号化なのか復号化なのか) を指定するため、 .BR DES_ENCRYPT -¤Þ¤¿¤Ï +または .BR DES_DECRYPT -¤ò OR ¤¹¤ë¡£ +を OR する。 .\"O For software versus hardware .\"O encryption, OR in either .\"O .BR DES_HW .\"O or .\"O .BR DES_SW . -°Å¹æ²½¤ò¥½¥Õ¥È¥¦¥§¥¢¤Ç¹Ô¤¦¤«¥Ï¡¼¥É¥¦¥§¥¢¤Ç¹Ô¤¦¤«¤ò»ØÄꤹ¤ë¤¿¤á¡¢ +暗号化をソフトウェアで行うかハードウェアで行うかを指定するため、 .BR DES_HW -¤Þ¤¿¤Ï +または .BR DES_SW -¤ò OR ¤¹¤ë¡£ +を OR する。 .\"O If .\"O .BR DES_HW .\"O is specified, and there is no hardware, then the encryption is performed .\"O in software and the routine returns .\"O .BR DESERR_NOHWDEVICE . .BR DES_HW -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢¤«¤Ä¥Ï¡¼¥É¥¦¥§¥¢¤¬¤Ê¤¤¾ì¹ç¡¢ -°Å¹æ²½¤Ï¥½¥Õ¥È¥¦¥§¥¢¤Ç¼Â¹Ô¤µ¤ì¤Æ¡¢¥ë¡¼¥Á¥ó¤Ï +が指定されていて、かつハードウェアがない場合、 +暗号化はソフトウェアで実行されて、ルーチンは .BR DESERR_NOHWDEVICE -¤òÊÖ¤¹¡£ +を返す。 .\"O For .\"O .BR cbc_crypt (), .\"O the argument @@ -171,33 +171,33 @@ DES .\"O It is updated to the next initialization .\"O vector upon return. .BR cbc_crypt () -¤Ë¤ª¤¤¤Æ¡¢°ú¤­¿ô +において、引き数 .I ivec -¤Ï¥Ç¡¼¥¿¥Ö¥í¥Ã¥¯¤òÏ¢º¿¤µ¤»¤ëºÝ¤Î 8 ¥Ð¥¤¥È¤Î½é´ü²½¥Ù¥¯¥È¥ë¤Ç¤¢¤ë¡£ -¤³¤Î°ú¤­¿ô¤Ï¥ë¡¼¥Á¥ó¤«¤éÌá¤ë¤È¤­¤Ë¼¡¤Î½é´ü²½¥Ù¥¯¥È¥ë¤Ë¹¹¿·¤µ¤ì¤ë¡£ +はデータブロックを連鎖させる際の 8 バイトの初期化ベクトルである。 +この引き数はルーチンから戻るときに次の初期化ベクトルに更新される。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .PD 0 .TP 20 .\"O .BR DESERR_NONE .B DESERR_NONE .\"O No error. -¥¨¥é¡¼¤Ê¤·¡£ +エラーなし。 .TP .\"O .BR DESERR_NOHWDEVICE .B DESERR_NOHWDEVICE .\"O Encryption succeeded, but done in software instead of the requested hardware. -°Å¹æ²½¤ÏÀ®¸ù¤·¤¿¤¬¡¢Í׵ᤵ¤ì¤¿¥Ï¡¼¥É¥¦¥§¥¢¤ÎÂå¤ï¤ê¤Ë¥½¥Õ¥È¥¦¥§¥¢¤Ç¼Â¹Ô¤µ¤ì¤¿¡£ +暗号化は成功したが、要求されたハードウェアの代わりにソフトウェアで実行された。 .TP .\"O .BR DESERR_HWERROR .B DESERR_HWERROR .\"O An error occurred in the hardware or driver. -¥Ï¡¼¥É¥¦¥§¥¢¤Þ¤¿¤Ï¥É¥é¥¤¥Ð¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +ハードウェアまたはドライバでエラーが発生した。 .TP .\"O .BR DESERR_BADPARAM .B DESERR_BADPARAM .\"O Bad argument to routine. -¥ë¡¼¥Á¥ó¤Ø¤Î°ú¤­¿ô¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +ルーチンへの引き数が不正である。 .PD .LP .\"O Given a result status @@ -207,29 +207,29 @@ DES .\"O .\" .BR ( stat ) .\"O .BI DES_FAILED( stat ) .\"O is false only for the first two statuses. -·ë²Ì¤Î¾õÂÖ +結果の状態 .I stat -¤òÍ¿¤¨¤¿¤È¤­¡¢¥Þ¥¯¥í +を与えたとき、マクロ .\" .BR DES_FAILED\c .\" .BR ( stat ) .BI DES_FAILED( stat ) -¤¬ false ¤Ë¤Ê¤ë¤Î¤Ï¡¢ºÇ½é¤Î 2 ¤Ä¤À¤±¤Ç¤¢¤ë¡£ +が false になるのは、最初の 2 つだけである。 .\"O .\" So far the Sun page .\"O .\" Some additions - aeb -.\" ¤³¤³¤Þ¤Ç¤¬ Sun ¤Î man ¥Ú¡¼¥¸¤Ç¤¢¤ë¡£ -.\" aeb ¤¬¤¤¤¯¤Ä¤«Äɲäò¹Ô¤Ã¤¿¡£ +.\" ここまでが Sun の man ページである。 +.\" aeb がいくつか追加を行った。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These routines are present in libc 4.6.27 and later, and in .\"O glibc 2.1 and later. -¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤Ï libc 4.6.27 °Ê¹ß¤È glibc 2.1 °Ê¹ß¤Ë¸ºß¤¹¤ë¡£ +これらのルーチンは libc 4.6.27 以降と glibc 2.1 以降に存在する。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O 4.3BSD. .\"O Not in POSIX.1-2001. -4.3BSD. POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ +4.3BSD. POSIX.1-2001 にはない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR des (1), .BR crypt (3), .BR xcrypt (3) diff --git a/draft/man3/difftime.3 b/draft/man3/difftime.3 index c2f68564..191f7bd3 100644 --- a/draft/man3/difftime.3 +++ b/draft/man3/difftime.3 @@ -32,22 +32,22 @@ .\" Updated & Modified Sat Mar 23 23:57:43 JST 2002 .\" by Yuichi SATO .\" -.\"WORD: epoch µª¸µ +.\"WORD: epoch 紀元 .\" .TH DIFFTIME 3 2010-02-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O difftime \- calculate time difference -difftime \- »þ¹ï¤Î´Ö³Ö¤Î·×»» +difftime \- 時刻の間隔の計算 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "double difftime(time_t " time1 ", time_t " time0 ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR difftime () .\"O function returns the number of seconds elapsed @@ -56,27 +56,27 @@ difftime \- .\"O Each of the times is specified in calendar time, which means its .\"O value is a measurement (in seconds) relative to the .\"O Epoch, 1970-01-01 00:00:00 +0000 (UTC). -´Ø¿ô +関数 .BR difftime () -¤Ï»þ¹ï \fItime0\fP ¤«¤é -»þ¹ï \fItime1\fP ¤Þ¤Ç¤Î·Ð²á»þ´Ö¤ò +は時刻 \fItime0\fP から +時刻 \fItime1\fP までの経過時間を .I double -·¿¤ÇÊÖ¤¹¡£³Æ¡¹¤Î»þ¹ï¤Ï¥«¥ì¥ó¥À¡¼»þ´Ö¤Ç»ØÄꤹ¤ë¡£ -¤Ä¤Þ¤ê¡¢µª¸µ (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) ¤«¤é¤Î -·Ð²á»þ´Ö¤òÉÃñ°Ì¤Ç»ØÄꤹ¤ë¡£ +型で返す。各々の時刻はカレンダー時間で指定する。 +つまり、紀元 (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) からの +経過時間を秒単位で指定する。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, C89, C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O On a POSIX system, .\"O .I time_t .\"O is an arithmetic type, and one could just .\"O define -POSIX ¥·¥¹¥Æ¥à¤Ç¤Ï +POSIX システムでは .I time_t -¤Ï¿ôÃÍ·¿¤Ê¤Î¤Ç¡¢°ú¤­»»¤ÎºÝ¤Ëµ¯¤³¤ë²ÄǽÀ­¤Î¤¢¤ë¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤ò -µ¤¤Ë¤·¤Ê¤¤¾ì¹ç¤Ï¡¢Ã±½ã¤Ë +は数値型なので、引き算の際に起こる可能性のあるオーバーフローを +気にしない場合は、単純に .RS .nf @@ -85,17 +85,17 @@ POSIX .fi .RE .\"O when the possible overflow in the subtraction is not a concern. -¤ÈÄêµÁ¤Ç¤­¤ë¡£ +と定義できる。 .\"O On other systems, the data type .\"O .I time_t .\"O might use some other encoding .\"O where subtraction doesn't work directly. -¾¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥Ç¡¼¥¿·¿ +他のシステムでは、データ型 .I time_t -¤Ë²¿¤«Ê̤Υ¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤¬»È¤ï¤ì¤Æ¤¤¤ë¤³¤È¤¬¤¢¤ê¡¢ -¤½¤Î¾ì¹ç¤Ë¤ÏľÀÜ°ú¤­»»¤ò¹Ô¤¦¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +に何か別のエンコーディングが使われていることがあり、 +その場合には直接引き算を行うことはできない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR date (1), .BR gettimeofday (2), .BR time (2), diff --git a/draft/man3/dirfd.3 b/draft/man3/dirfd.3 index 95a2b00e..64fb15e6 100644 --- a/draft/man3/dirfd.3 +++ b/draft/man3/dirfd.3 @@ -30,11 +30,11 @@ .\" .TH DIRFD 3 2010-09-26 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O dirfd \- get directory stream file descriptor -dirfd \- ¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¹¥È¥ê¡¼¥à¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¼èÆÀ¤¹¤ë +dirfd \- ディレクトリ・ストリームのファイル・ディスクリプタを取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include @@ -44,9 +44,9 @@ dirfd \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR dirfd (): @@ -57,7 +57,7 @@ glibc _BSD_SOURCE || _SVID_SOURCE .br .\"O || /* Since glibc 2.10: */ -|| /* glibc 2.10 °Ê¹ß: */ +|| /* glibc 2.10 以降: */ .RS 4 (_POSIX_C_SOURCE\ >=\ 200809L || _XOPEN_SOURCE\ >=\ 700) .RE @@ -65,72 +65,72 @@ _BSD_SOURCE || _SVID_SOURCE .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The function .\"O .BR dirfd () .\"O returns the file descriptor associated with the directory stream .\"O .IR dirp . -´Ø¿ô +関数 .BR dirfd () -¤Ï¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¹¥È¥ê¡¼¥à +はディレクトリ・ストリーム .I dirp -¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ +に関連づけられたファイル・ディスクリプタを返す。 .LP .\"O This descriptor is the one used internally by the directory stream. -¤³¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¹¥È¥ê¡¼¥à¤¬ÆâÉô¤Ç»ÈÍѤ¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +このディスクリプタはディレクトリ・ストリームが内部で使用するものである。 .\"O As a result, it is only useful for functions which do not depend on .\"O or alter the file position, such as .\"O .BR fstat (2) .\"O and .\"O .BR fchdir (2). -¤è¤Ã¤Æ¡¢¥Õ¥¡¥¤¥ë¤Î°ÌÃ֤˰͸¤»¤º¡¢¤«¤Ä¤½¤Î°ÌÃÖ¤òÊѹ¹¤·¤Ê¤¤´Ø¿ô +よって、ファイルの位置に依存せず、かつその位置を変更しない関数 .BR fstat (2) -¤ä +や .BR fchdir (2) -¤Ê¤É¤Ç¤·¤«Ìò¤ËΩ¤¿¤Ê¤¤¡£ +などでしか役に立たない。 .\"O It will be automatically closed when .\"O .BR closedir (3) .\"O is called. -¤³¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï +このディスクリプタは .BR closedir (3) -¤¬¸Æ¤Ð¤ì¤¿¤È¤­¤Ë¼«Æ°Åª¤Ë¥¯¥í¡¼¥º¤µ¤ì¤ë¡£ +が呼ばれたときに自動的にクローズされる。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, a nonnegative file descriptor is returned. .\"O On error, \-1 is returned. -À®¸ù¤¹¤ë¤È¡¢Éé¤Ç¤Ê¤¤ÃͤΥե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¤ë¡£ +成功すると、負でない値のファイルディスクリプタが返される。 +エラーの場合は \-1 が返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O POSIX.1-2008 specifies two errors, .\"O neither of which is returned by the current .\"O .\" glibc 2.8 .\"O implementation. -POSIX.1-2008 ¤Ç¤Ï 2 ¤Ä¤Î¥¨¥é¡¼¤¬µ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¤É¤Á¤é¤Î¥¨¥é¡¼¤âÊÖ¤µ¤ì¤Ê¤¤¡£ +POSIX.1-2008 では 2 つのエラーが規定されている。 +現在の実装ではどちらのエラーも返されない。 .\" glibc 2.8 .TP .B EINVAL .\"O .I dirp .\"O does not refer to a valid directory stream. .I dirp -¤¬Í­¸ú¤Ê¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¹¥È¥ê¡¼¥à¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£ +が有効なディレクトリ・ストリームを参照していない。 .TP .B ENOTSUP .\"O The implementation does not support the association of a file .\"O descriptor with a directory. -¤³¤Î¼ÂÁõ¤Ç¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¥Ç¥£¥ì¥¯¥È¥ê¤È¤Î´ØÏ¢ÉÕ¤±¤¬ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +この実装では、ファイルディスクリプタのディレクトリとの関連付けが +サポートされていない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. .\"O This function was a BSD extension, present in 4.3BSD-Reno, not in 4.2BSD. .\"O .\" It is present in libc5 (since 5.1.2) and in glibc2. -¤³¤Î´Ø¿ô¤Ï BSD ³ÈÄ¥¤Ç¤¢¤Ã¤¿¡£ -4.3BSD-Reno ¤Ë¤Ï¸ºß¤¹¤ë¤¬¡¢4.2BSD ¤Ë¤Ï¸ºß¤·¤Ê¤¤¡£ -.\" libc5 (5.1.2 °Ê¹ß) ¤È glibc2 ¤Ë¸ºß¤¹¤ë¡£ +この関数は BSD 拡張であった。 +4.3BSD-Reno には存在するが、4.2BSD には存在しない。 +.\" libc5 (5.1.2 以降) と glibc2 に存在する。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The prototype for .\"O .BR dirfd () .\"O is only available if @@ -139,13 +139,13 @@ POSIX.1-2008. .\"O .B _SVID_SOURCE .\"O is defined. .BR dirfd () -¤Î¥×¥í¥È¥¿¥¤¥×¤¬»ÈÍѲÄǽ¤Ê¤Î¤Ï¡¢ +のプロトタイプが使用可能なのは、 .B _BSD_SOURCE -¤Þ¤¿¤Ï +または .B _SVID_SOURCE -¤¬ÄêµÁ¤µ¤ì¤¿¤È¤­¤Î¤ß¤Ç¤¢¤ë¡£ +が定義されたときのみである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR open (2), .BR closedir (3), .BR opendir (3), diff --git a/draft/man3/div.3 b/draft/man3/div.3 index 7f368fb0..1dd893e3 100644 --- a/draft/man3/div.3 +++ b/draft/man3/div.3 @@ -39,12 +39,12 @@ .\" .TH DIV 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O div, ldiv, lldiv, imaxdiv \- compute quotient and remainder of .\"O an integer division -div, ldiv, lldiv, imaxdiv \- integer ·¿¤Î³ä»»¤Î¾¦¤È;¤ê¤ò·×»»¤¹¤ë +div, ldiv, lldiv, imaxdiv \- integer 型の割算の商と余りを計算する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -62,9 +62,9 @@ div, ldiv, lldiv, imaxdiv \- integer .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .ad l .sp @@ -78,7 +78,7 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR div () .\"O function computes the value @@ -87,15 +87,15 @@ or .\"O named \fIdiv_t\fP that contains .\"O two integer members (in unspecified order) named \fIquot\fP and \fIrem\fP. .BR div () -´Ø¿ô¤Ï \fInumerator\fP/\fIdenominator\fP ¤ÎÃͤò·×»»¤¹¤ë¡£ -¾¦¤È;¤ê¤Ï¡¢ -\fIquot\fP (¾¦) ¤È \fIrem\fP (;¤ê) ¤È¤¤¤¦Ì¾Á°¤Î 2 ¤Ä¤Î integer ·¿¥á¥ó¥Ð¤ò´Þ¤à -\fIdiv_t\fP ¤È¤¤¤¦¹½Â¤ÂΤÎÃæ¤ËÊÖ¤µ¤ì¤ë -(¥á¥ó¥Ð¤Î½çÈÖ¤ÏÉÔÄê¤Ç¤¢¤ë)¡£ +関数は \fInumerator\fP/\fIdenominator\fP の値を計算する。 +商と余りは、 +\fIquot\fP (商) と \fIrem\fP (余り) という名前の 2 つの integer 型メンバを含む +\fIdiv_t\fP という構造体の中に返される +(メンバの順番は不定である)。 .\"O The quotient is rounded toward zero. -¾¦¤Ï 0 ¤Ë¶á¤¤Êý¤Ë´Ý¤á¤é¤ì¤ë¡£ +商は 0 に近い方に丸められる。 .\"O The result satisfies \fIquot\fP*\fIdenominator\fP+\fIrem\fP = \fInumerator\fP. -·ë²Ì¤Ï \fIquot\fP*\fIdenominator\fP+\fIrem\fP = \fInumerator\fP ¤òËþ¤¿¤¹¡£ +結果は \fIquot\fP*\fIdenominator\fP+\fIrem\fP = \fInumerator\fP を満たす。 .LP .\"O The .\"O .BR ldiv (), @@ -110,29 +110,29 @@ or .BR ldiv (), .BR lldiv (), .BR imaxdiv () -´Ø¿ô¤ÏƱÍͤÊÆ°ºî¤ò¤·¡¢ -¾å¤Ë¼¨¤·¤¿·¿¤Î¿ôÃͤò³ä»»¤·¤Æ¡¢¾å¤Ë¼¨¤·¤¿Ì¾Á°¤Î¹½Â¤ÂΤ˷ë²Ì¤òÊÖ¤¹¡£ -¤É¤Î¾ì¹ç¤Ç¤â¥Õ¥£¡¼¥ë¥É \fIquot\fP ¤È \fIrem\fP ¤Ï¡¢ -´Ø¿ô¤Î°ú¤­¿ô¤ÈƱ¤¸·¿¤Ç¤¢¤ë¡£ +関数は同様な動作をし、 +上に示した型の数値を割算して、上に示した名前の構造体に結果を返す。 +どの場合でもフィールド \fIquot\fP と \fIrem\fP は、 +関数の引き数と同じ型である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The \fIdiv_t\fP (etc.) structure. -\fIdiv_t\fP (¤Ê¤É¤Î) ¹½Â¤ÂΡ£ +\fIdiv_t\fP (などの) 構造体。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, C89. .\"O The functions .\"O .BR lldiv () .\"O and .\"O .BR imaxdiv () .\"O were added in C99. -´Ø¿ô +関数 .BR lldiv () -¤È +と .BR imaxdiv () -¤Ï C99 ¤ËÄɲ䵤줿¡£ +は C99 に追加された。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O After .nf @@ -140,8 +140,8 @@ SVr4, 4.3BSD, C89. .fi .\"O the values \fIq.quot\fP and \fIq.rem\fP are \-1 and \-2, respectively. -¤ò·×»»¤¹¤ë¤È¡¢\fIq.quot\fP ¤È \fIq.rem\fP ¤Ï¤½¤ì¤¾¤ì \-1 ¤È \-2 ¤Ë¤Ê¤ë¡£ +を計算すると、\fIq.quot\fP と \fIq.rem\fP はそれぞれ \-1 と \-2 になる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR abs (3), .BR remainder (3) diff --git a/draft/man3/dl_iterate_phdr.3 b/draft/man3/dl_iterate_phdr.3 index 86e9b0f4..1a4af608 100644 --- a/draft/man3/dl_iterate_phdr.3 +++ b/draft/man3/dl_iterate_phdr.3 @@ -28,14 +28,14 @@ .\" .TH DL_ITERATE_PHDR 3 2007-05-18 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O dl_iterate_phdr \- walk through list of shared objects -dl_iterate_phdr \- ¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Î¥ê¥¹¥È¤òé¤ë +dl_iterate_phdr \- 共有オブジェクトのリストを辿る .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include \fBint dl_iterate_phdr(\fP @@ -45,14 +45,14 @@ dl_iterate_phdr \- \fBvoid *\fPdata\fB);\fP .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR dl_iterate_phdr () .\"O function allows an application to inquire at run time to find .\"O out which shared objects it has loaded. .BR dl_iterate_phdr () -´Ø¿ô¤ò»È¤¦¤È¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¼Â¹Ô»þ¤Ë -¤É¤Î¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤ò¥í¡¼¥É¤·¤¿¤«¤ò¸«¤Ä¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +関数を使うと、アプリケーションは実行時に +どの共有オブジェクトをロードしたかを見つけることができる。 .\"O The .\"O .BR dl_iterate_phdr () @@ -64,32 +64,32 @@ dl_iterate_phdr \- .\"O .I callback .\"O returns a nonzero value. .BR dl_iterate_phdr () -´Ø¿ô¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Î¥ê¥¹¥È¤òé¤ê¡¢ -³Æ¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ·¤Æ´Ø¿ô +関数はアプリケーションの共有オブジェクトのリストを辿り、 +各オブジェクトに対して関数 .I callback -¤ò 1 ²ó¤º¤Ä¸Æ¤Ó½Ð¤¹¡£ -¤³¤ì¤ÏÁ´¤Æ¤Î¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤¬½èÍý¤µ¤ì¤ë¤«¡¢ +を 1 回ずつ呼び出す。 +これは全ての共有オブジェクトが処理されるか、 .I callback -¤¬ 0 °Ê³°¤ÎÃͤòÊÖ¤¹¤Þ¤Ç¹Ô¤ï¤ì¤ë¡£ +が 0 以外の値を返すまで行われる。 .\"O Each call to .\"O .I callback .\"O receives three arguments: -³Æ¡¹¤Î +各々の .I callback -¸Æ¤Ó½Ð¤·¤Ï 3 ¤Ä¤Î°ú¤­¿ô¤ò¼õ¤±¼è¤ë: +呼び出しは 3 つの引き数を受け取る: .\"O .IR info , .\"O which is a pointer to a structure containing information .\"O about the shared object; .I info -¤Ï¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ðÊó¤òÊÝ»ý¤¹¤ë¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ +は共有オブジェクトの情報を保持する構造体へのポインタである。 .\"O .IR size , .\"O which is the size of the structure pointed to by .\"O .IR info ; .I size -¤Ï +は .I info -¤Ç»Ø¤µ¤ì¤ë¹½Â¤ÂΤΥµ¥¤¥º¤Ç¤¢¤ë¡£ +で指される構造体のサイズである。 .\"O and .\"O .IR data , .\"O which is a copy of whatever value was passed by the calling @@ -98,35 +98,35 @@ dl_iterate_phdr \- .\"O in the call to .\"O .BR dl_iterate_phdr (). .I data -¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥°¥é¥à¤«¤é +は呼び出し元プログラムから .BR dl_iterate_phdr () -¤Î¸Æ¤Ó½Ð¤·¤Î (Ʊ¤¸¤¯ +の呼び出しの (同じく .I data -¤È¤¤¤¦Ì¾Á°¤Î) Âè 2 °ú¤­¿ô¤È¤·¤ÆÅϤµ¤ì¤ëÃͤΥ³¥Ô¡¼¤Ç¤¢¤ë¡£ +という名前の) 第 2 引き数として渡される値のコピーである。 .\"O The .\"O .I info .\"O argument is a structure of the following type: .I info -°ú¤­¿ô¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ê·¿¤Î¹½Â¤ÂΤǤ¢¤ë¡£ +引き数は、以下のような型の構造体である。 .in +4n .nf struct dl_phdr_info { .\"O ElfW(Addr) dlpi_addr; /* Base address of object */ - ElfW(Addr) dlpi_addr; /* ¥ª¥Ö¥¸¥§¥¯¥È¤Î¥Ù¡¼¥¹¥¢¥É¥ì¥¹ */ + ElfW(Addr) dlpi_addr; /* オブジェクトのベースアドレス */ .\"O const char *dlpi_name; /* (Null-terminated) name of .\"O object */ - const char *dlpi_name; /* (null ʸ»ú¤Ç½ªÃ¼¤µ¤ì¤¿) - ¥ª¥Ö¥¸¥§¥¯¥È̾ */ + const char *dlpi_name; /* (null 文字で終端された) + オブジェクト名 */ .\"O const ElfW(Phdr) *dlpi_phdr; /* Pointer to array of .\"O ELF program headers .\"O for this object */ - const ElfW(Phdr) *dlpi_phdr; /* ¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î - ELF ¥×¥í¥°¥é¥à¥Ø¥Ã¥À¤Î - ÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿ */ + const ElfW(Phdr) *dlpi_phdr; /* このオブジェクトの + ELF プログラムヘッダの + 配列へのポインタ */ .\"O ElfW(Half) dlpi_phnum; /* # of items in \fIdlpi_phdr\fP */ - ElfW(Half) dlpi_phnum; /* \fIdlpi_phdr\fP ¤Î¥¢¥¤¥Æ¥à¿ô */ + ElfW(Half) dlpi_phnum; /* \fIdlpi_phdr\fP のアイテム数 */ }; .fi .in @@ -136,18 +136,18 @@ struct dl_phdr_info { .\"O macro definition turns its argument into the name of an ELF data .\"O type suitable for the hardware architecture. .RI ( ElfW () -¥Þ¥¯¥íÄêµÁ¤Ï°ú¤­¿ô¤ò¥Ï¡¼¥É¥¦¥§¥¢¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ËŬ¤·¤¿ -ELF ¥Ç¡¼¥¿·¿¤Î̾Á°¤ËÊÑ´¹¤¹¤ë¡£ +マクロ定義は引き数をハードウェアアーキテクチャに適した +ELF データ型の名前に変換する。 .\"O For example, on a 32-bit platform, .\"O ElfW(Addr) yields the data type name Elf32_Addr. -¤¿¤È¤¨¤Ð¡¢32 ¥Ó¥Ã¥È¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï -ElfW(Addr) ¤Ï¥Ç¡¼¥¿·¿Ì¾ Elf32_Addr ¤òÀ¸À®¤¹¤ë¡£ +たとえば、32 ビットプラットフォームでは +ElfW(Addr) はデータ型名 Elf32_Addr を生成する。 .\"O Further information on these types can be found in the .\"O .IR " and " .\"O header files.) -¤³¤ì¤é¤Î·¿¤Ë¤Ä¤¤¤Æ¤Î¹¹¤Ë¾ÜºÙ¤Ê¾ðÊó¤Ï¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë -.IR " ¤È " -¤Ë¤¢¤ë¡£ +これらの型についての更に詳細な情報は、ヘッダファイル +.IR " と " +にある。 .\"O The .\"O .I dlpi_addr @@ -156,17 +156,17 @@ ElfW(Addr) .\"O the shared object and the offset of that object in the file .\"O from which it was loaded). .I dlpi_addr -¥Õ¥£¡¼¥ë¥É¤Ï¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Î¥Ù¡¼¥¹¥¢¥É¥ì¥¹ -(¤Ä¤Þ¤ê¡¢¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Î²¾ÁÛ¥á¥â¥ê¥¢¥É¥ì¥¹¤È¡¢ -¥Õ¥¡¥¤¥ë (¤³¤Î¥Õ¥¡¥¤¥ë¤«¤é¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤¬¥í¡¼¥É¤µ¤ì¤ë) ¤Ë¤ª¤±¤ë -¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Î¥ª¥Õ¥»¥Ã¥È¤È¤Îº¹Ê¬) ¤òɽ¤¹¡£ +フィールドは共有オブジェクトのベースアドレス +(つまり、共有オブジェクトの仮想メモリアドレスと、 +ファイル (このファイルから共有オブジェクトがロードされる) における +共有オブジェクトのオフセットとの差分) を表す。 .\"O The .\"O .I dlpi_name .\"O field is a null-terminated string giving the pathname .\"O from which the shared object was loaded. .I dlpi_name -¤Ï null ʸ»ú¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ç¤¢¤ê¡¢ -¤³¤Î¥Ñ¥¹Ì¾¤Î¥Õ¥¡¥¤¥ë¤«¤é¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤¬¥í¡¼¥É¤µ¤ì¤ë¡£ +は null 文字で終端された文字列であり、 +このパス名のファイルから共有オブジェクトがロードされる。 .\"O To understand the meaning of the .\"O .I dlpi_phdr @@ -176,47 +176,47 @@ ElfW(Addr) .\"O of a number of segments, each of which has a corresponding .\"O program header describing the segment. .I dlpi_phdr -¤È +と .I dlpi_phnum -¥Õ¥£¡¼¥ë¥É¤Î°ÕÌ£¤òÍý²ò¤¹¤ë¤Ë¤Ï¡¢ -ELF ¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤¬´ö¤Ä¤«¤Î¥»¥°¥á¥ó¥È¤«¤é¹½À®¤µ¤ì¤Æ¤¤¤ë¤³¤È¤È¡¢ -³Æ¥»¥°¥á¥ó¥È¤¬¤½¤ì¤ËÂбþ¤¹¤ë¥×¥í¥°¥é¥à¥Ø¥Ã¥À -(¤½¤Î¥»¥°¥á¥ó¥È¤òÀâÌÀ¤¹¤ë) ¤ò»ý¤Ã¤Æ¤¤¤ë¤³¤È¤òÃΤäƤ¤¤ëɬÍפ¬¤¢¤ë¡£ +フィールドの意味を理解するには、 +ELF 共有オブジェクトが幾つかのセグメントから構成されていることと、 +各セグメントがそれに対応するプログラムヘッダ +(そのセグメントを説明する) を持っていることを知っている必要がある。 .\"O The .\"O .I dlpi_phdr .\"O field is a pointer to an array of the program headers for this .\"O shared object. .I dlpi_phdr -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¤³¤Î¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Î¥×¥í¥°¥é¥à¥Ø¥Ã¥À¤ÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +フィールドは、この共有オブジェクトのプログラムヘッダの配列へのポインタである。 .\"O The .\"O .I dlpi_phnum .\"O field indicates the size of this array. .I dlpi_phnum -¤Ï¡¢¤³¤ÎÇÛÎó¤Î¥µ¥¤¥º¤òɽ¤¹¡£ +は、この配列のサイズを表す。 .\"O These program headers are structures of the following form: -¤³¤ì¤é¤Î¥×¥í¥°¥é¥à¥Ø¥Ã¥À¤Ï°Ê²¼¤Î¤è¤¦¤Ê·Á¼°¤Î¹½Â¤ÂΤǤ¢¤ë: +これらのプログラムヘッダは以下のような形式の構造体である: .in +4n .nf typedef struct { .\"O Elf32_Word p_type; /* Segment type */ - Elf32_Word p_type; /* ¥»¥°¥á¥ó¥È¤Î·¿ */ + Elf32_Word p_type; /* セグメントの型 */ .\"O Elf32_Off p_offset; /* Segment file offset */ - Elf32_Off p_offset; /* ¥»¥°¥á¥ó¥È¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È */ + Elf32_Off p_offset; /* セグメントのファイルオフセット */ .\"O Elf32_Addr p_vaddr; /* Segment virtual address */ - Elf32_Addr p_vaddr; /* ¥»¥°¥á¥ó¥È¤Î²¾ÁÛ¥¢¥É¥ì¥¹ */ + Elf32_Addr p_vaddr; /* セグメントの仮想アドレス */ .\"O Elf32_Addr p_paddr; /* Segment physical address */ - Elf32_Addr p_paddr; /* ¥»¥°¥á¥ó¥È¤ÎʪÍý¥¢¥É¥ì¥¹ */ + Elf32_Addr p_paddr; /* セグメントの物理アドレス */ .\"O Elf32_Word p_filesz; /* Segment size in file */ - Elf32_Word p_filesz; /* ¥Õ¥¡¥¤¥ë¤Ë¤ª¤±¤ë¥»¥°¥á¥ó¥È¥µ¥¤¥º */ + Elf32_Word p_filesz; /* ファイルにおけるセグメントサイズ */ .\"O Elf32_Word p_memsz; /* Segment size in memory */ - Elf32_Word p_memsz; /* ¥á¥â¥ê¤Ë¤ª¤±¤ë¥»¥°¥á¥ó¥È¥µ¥¤¥º */ + Elf32_Word p_memsz; /* メモリにおけるセグメントサイズ */ .\"O Elf32_Word p_flags; /* Segment flags */ - Elf32_Word p_flags; /* ¥»¥°¥á¥ó¥È¥Õ¥é¥° */ + Elf32_Word p_flags; /* セグメントフラグ */ .\"O Elf32_Word p_align; /* Segment alignment */ - Elf32_Word p_align; /* ¥»¥°¥á¥ó¥È¤ÎÇÛÃÖ (alignment) */ + Elf32_Word p_align; /* セグメントの配置 (alignment) */ } Elf32_Phdr; .fi .in @@ -224,47 +224,47 @@ typedef struct .\"O Note that we can calculate the location of a particular program header, .\"O .IR x , .\"O in virtual memory using the formula: -ÆÃÄê¤Î¥×¥í¥°¥é¥à¥Ø¥Ã¥À +特定のプログラムヘッダ .I x -¤Î²¾ÁÛ¥á¥â¥ê¤Ë¤ª¤±¤ë°ÌÃ֤ϡ¢°Ê²¼¤Î¼°¤Ç·×»»¤Ç¤­¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È: +の仮想メモリにおける位置は、以下の式で計算できる点に注意すること: .nf addr == info\->dlpi_addr + info\->dlpi_phdr[x].p_vaddr; .fi .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR dl_iterate_phdr () .\"O function returns whatever value was returned by the last call to .\"O .IR callback . .BR dl_iterate_phdr () -´Ø¿ô¤ÏºÇ¸å¤Î +関数は最後の .I callback -¤Î¸Æ¤Ó½Ð¤·¤ÇÊÖ¤µ¤ì¤¿ÃͤòÊÖ¤¹¡£ +の呼び出しで返された値を返す。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR dl_iterate_phdr () .\"O has been supported in glibc since version 2.2.4. .BR dl_iterate_phdr () -¤Ï glibc ¤Î¥Ð¡¼¥¸¥ç¥ó 2.2.4 °Ê¹ß¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +は glibc のバージョン 2.2.4 以降でサポートされている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The .\"O .BR dl_iterate_phdr () .\"O function is Linux-specific and should be avoided in portable applications. .BR dl_iterate_phdr () -´Ø¿ô¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò¹Í¤¨¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤ÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +関数は Linux 固有であり、移植を考えたアプリケーションでは避けるべきである。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The following program displays a list of pathnames of the .\"O shared objects it has loaded. -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤¬¥í¡¼¥É¤µ¤ì¤¿ -¥Ñ¥¹Ì¾¤Î°ìÍ÷¤òɽ¼¨¤¹¤ë¡£ +以下のプログラムは、共有オブジェクトがロードされた +パス名の一覧を表示する。 .\"O For each shared object, the program lists the virtual addresses .\"O at which the object's ELF segments are loaded. -³Æ¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ä¤¤¤Æ¡¢¤³¤Î¥×¥í¥°¥é¥à¤Ï -¥ª¥Ö¥¸¥§¥¯¥È¤Î ELF ¥»¥°¥á¥ó¥È¤¬¥í¡¼¥É¤µ¤ì¤¿ -²¾ÁÛ¥¢¥É¥ì¥¹¤Î°ìÍ÷¤òɽ¼¨¤¹¤ë¡£ +各共有オブジェクトについて、このプログラムは +オブジェクトの ELF セグメントがロードされた +仮想アドレスの一覧を表示する。 .nf #define _GNU_SOURCE @@ -295,7 +295,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ldd (1), .BR objdump (1), .BR readelf (1), @@ -305,5 +305,5 @@ main(int argc, char *argv[]) .\"O and the .\"O .I "Executable and Linking Format Specification" .\"O available at various locations online. -¥ª¥ó¥é¥¤¥ó¤Î¤¤¤í¤¤¤í¤Ê¾ì½ê¤ÇÆþ¼ê¤Ç¤­¤ë +オンラインのいろいろな場所で入手できる .I "Executable and Linking Format Specification" diff --git a/draft/man3/dlopen.3 b/draft/man3/dlopen.3 index 6a42f41d..6e7fdf68 100644 --- a/draft/man3/dlopen.3 +++ b/draft/man3/dlopen.3 @@ -44,18 +44,18 @@ .\" Updated 2006-01-20, Akihiro MOTOKI .\" Updated 2009-03-02, Akihiro MOTOKI, LDP v3.19 .\" -.\"WORD: linker ¥ê¥ó¥« -.\"WORD: dynamic linking ưŪ¥ê¥ó¥¯ -.\"WORD: dynamic library ưŪ¥é¥¤¥Ö¥é¥ê +.\"WORD: linker リンカ +.\"WORD: dynamic linking 動的リンク +.\"WORD: dynamic library 動的ライブラリ .\" .TH DLOPEN 3 2008-12-06 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O dlclose, dlerror, dlopen, dlsym \- Programming interface to dynamic linking loader -.SH ̾Á° -dlclose, dlerror, dlopen, dlsym \- ưŪ¥ê¥ó¥¯¤ò¹Ô¤¦¥í¡¼¥À¤Ø¤Î -¥×¥í¥°¥é¥ß¥ó¥°¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ +.SH 名前 +dlclose, dlerror, dlopen, dlsym \- 動的リンクを行うローダへの +プログラミングインターフェース .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "void *dlopen(const char *" filename ", int " flag ); @@ -67,9 +67,9 @@ dlclose, dlerror, dlopen, dlsym \- ưŪ .BI "int dlclose(void *" handle ); .sp .\"O Link with \fI\-ldl\fP. -\fI\-ldl\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-ldl\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The four functions .\"O .BR dlopen (), .\"O .BR dlsym (), @@ -80,8 +80,8 @@ dlclose, dlerror, dlopen, dlsym \- ưŪ .BR dlsym (), .BR dlclose (), .BR dlerror () -¤Î 4¤Ä¤Î´Ø¿ô¤Ï¡¢Æ°Åª¥ê¥ó¥¯ (dynamic linking) ¤ò¹Ô¤¦¥í¡¼¥À¤Ø¤Î -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò¼ÂÁõ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +の 4つの関数は、動的リンク (dynamic linking) を行うローダへの +インタフェースを実装したものである。 .SS "dlerror()" .\"O The function .\"O .BR dlerror () @@ -95,16 +95,16 @@ dlclose, dlerror, dlopen, dlsym \- ưŪ .\"O .BR dlerror (). .\"O It returns NULL if no errors have occurred since initialization or since .\"O it was last called. -´Ø¿ô +関数 .BR dlerror () -¤Ï¡¢Á°²ó +は、前回 .BR dlerror () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¸å¤Ë¡¢ +が呼び出された後に、 .BR dlopen (), .BR dlsym (), .BR dlclose () -¤Î¤¤¤º¤ì¤«¤ÇºÇ¸å¤ËȯÀ¸¤·¤¿¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤ÎÀâÌÀ¥á¥Ã¥»¡¼¥¸¤òÊÖ¤¹¡£ -½é´ü²½¸å¤Þ¤¿¤ÏÁ°²ó¸Æ¤Ó½Ð¤µ¤ì¤¿¸å¤Ç¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤Æ¤¤¤Ê¤±¤ì¤Ð NULL ¤òÊÖ¤¹¡£ +のいずれかで最後に発生したエラーについての説明メッセージを返す。 +初期化後または前回呼び出された後で、エラーが発生していなければ NULL を返す。 .SS "dlopen()" .\"O The function .\"O .BR dlopen () @@ -112,12 +112,12 @@ dlclose, dlerror, dlopen, dlsym \- ưŪ .\"O string .\"O .I filename .\"O and returns an opaque "handle" for the dynamic library. -´Ø¿ô +関数 .BR dlopen () -¤Ï¡¢NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó +は、NULL 終端された文字列 .I filename -¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë̾¤ÎưŪ¥é¥¤¥Ö¥é¥ê (dynamic library) ¤ò¥í¡¼¥É¤·¡¢ -¤½¤ÎưŪ¥é¥¤¥Ö¥é¥ê¤Ø¤ÎÆâÉô¡Ö¥Ï¥ó¥É¥ë¡×¤òÊÖ¤¹¡£ +で指定されたファイル名の動的ライブラリ (dynamic library) をロードし、 +その動的ライブラリへの内部「ハンドル」を返す。 .\"O If .\"O .I filename .\"O is NULL, then the returned handle is for the main program. @@ -126,24 +126,24 @@ dlclose, dlerror, dlopen, dlsym \- ưŪ .\"O contains a slash ("/"), then it is interpreted as a (relative .\"O or absolute) pathname. .I filename -¤¬ NULL ¤Î¾ì¹ç¡¢¥á¥¤¥ó¡¦¥×¥í¥°¥é¥à¤Ø¤Î¥Ï¥ó¥É¥ë¤¬ÊÖ¤µ¤ì¤ë¡£ +が NULL の場合、メイン・プログラムへのハンドルが返される。 .I filename -¤¬¥¹¥é¥Ã¥·¥å ("/") ¤ò´Þ¤à¾ì¹ç¡¢(ÁêÂФ«ÀäÂФ«¤Î)¥Ñ¥¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +がスラッシュ ("/") を含む場合、(相対か絶対かの)パス名として解釈される。 .\"O Otherwise, the dynamic linker searches for the library as follows .\"O (see .\"O .BR ld.so (8) .\"O for further details): -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢Æ°Åª¥ê¥ó¥«¤Ï°Ê²¼¤Î¼ê½ç¤Ç¥é¥¤¥Ö¥é¥ê¤ò¸¡º÷¤¹¤ë -(¾ÜºÙ¤Ï +それ以外の場合、動的リンカは以下の手順でライブラリを検索する +(詳細は .BR ld.so (8) -¤ò»²¾È): +を参照): .IP o 4 .\"O (ELF only) If the executable file for the calling program .\"O contains a DT_RPATH tag, and does not contain a DT_RUNPATH tag, .\"O then the directories listed in the DT_RPATH tag are searched. -(ELF ¤Î¤ß) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥°¥é¥à¤Î¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ë DT_RPATH ¥¿¥°¤¬´Þ¤Þ¤ì¤Æ¤ª¤ê¡¢ -DT_RUNPATH ¥¿¥°¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢DT_RPATH ¥¿¥°¤Ë½ñ¤«¤ì¤Æ¤¤¤ë -¥Ç¥£¥ì¥¯¥È¥ê¡¦¥ê¥¹¥È¤ò¸¡º÷¤¹¤ë¡£ +(ELF のみ) 呼び出し元プログラムの実行ファイルに DT_RPATH タグが含まれており、 +DT_RUNPATH タグが含まれていない場合、DT_RPATH タグに書かれている +ディレクトリ・リストを検索する。 .IP o .\"O If, at the time that the program was started, the environment variable .\"O .B LD_LIBRARY_PATH @@ -151,18 +151,18 @@ DT_RUNPATH .\"O then these are searched. .\"O (As a security measure this variable is ignored for set-user-ID and .\"O set-group-ID programs.) -¥×¥í¥°¥é¥à¤Î³«»Ï»þ¤Ë´Ä¶­ÊÑ¿ô +プログラムの開始時に環境変数 .B LD_LIBRARY_PATH -¤Ë¥³¥í¥ó¶èÀÚ¤ê¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢ -¤³¤Î´Ä¶­ÊÑ¿ô¤ËÄêµÁ¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤¬¸¡º÷¤µ¤ì¤ë -(¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÍýͳ¤Ç¡¢¤³¤ÎÊÑ¿ô¤Ï set-UID ¤ä set-GID ¤µ¤ì¤¿ -¥×¥í¥°¥é¥à¤Î¾ì¹ç¤Ï̵»ë¤µ¤ì¤ë)¡£ +にコロン区切りのディレクトリのリストが定義されていれば、 +この環境変数に定義されたディレクトリが検索される +(セキュリティ上の理由で、この変数は set-UID や set-GID された +プログラムの場合は無視される)。 .IP o .\"O (ELF only) If the executable file for the calling program .\"O contains a DT_RUNPATH tag, then the directories listed in that tag .\"O are searched. -(ELF ¤Î¤ß) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥°¥é¥à¤Î¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ë DT_RUNPATH ¥¿¥°¤¬´Þ¤Þ¤ì¤Æ -¤¤¤ë¾ì¹ç¡¢¤½¤Î¥¿¥°¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¡¦¥ê¥¹¥È¤ò¸¡º÷¤¹¤ë¡£ +(ELF のみ) 呼び出し元プログラムの実行ファイルに DT_RUNPATH タグが含まれて +いる場合、そのタグに書かれているディレクトリ・リストを検索する。 .IP o .\"O The cache file .\"O .I /etc/ld.so.cache @@ -170,41 +170,41 @@ DT_RUNPATH .\"O .BR ldconfig (8)) .\"O is checked to see whether it contains an entry for .\"O .IR filename . -¥­¥ã¥Ã¥·¥å¥Õ¥¡¥¤¥ë +キャッシュファイル .I /etc/ld.so.cache -¤ÎÃæ¤Ë +の中に .I filename -¤Î¥¨¥ó¥È¥ê¤¬Æþ¤Ã¤Æ¤¤¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë +のエントリが入っているかをチェックする .RB ( /etc/ld.so.cache -¤Ï +は .BR ldconfig (8) -¤Ë¤è¤Ã¤Æ´ÉÍý¤µ¤ì¤Æ¤¤¤ë)¡£ +によって管理されている)。 .IP o .\"O The directories .\"O .I /lib .\"O and .\"O .I /usr/lib .\"O are searched (in that order). -¥Ç¥£¥ì¥¯¥È¥ê +ディレクトリ .I /lib -¤È +と .I /usr/lib -¤ò¤³¤Î½çÈ֤Ǹ¡º÷¤¹¤ë¡£ +をこの順番で検索する。 .PP .\"O If the library has dependencies on other shared libraries, .\"O then these are also automatically loaded by the dynamic linker .\"O using the same rules. .\"O (This process may occur recursively, .\"O if those libraries in turn have dependencies, and so on.) -¤½¤Î¥é¥¤¥Ö¥é¥ê¤¬Â¾¤Î¶¦Í­¥é¥¤¥Ö¥é¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ -°Í¸¤·¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥ê¤âưŪ¥ê¥ó¥«¤¬Æ±¤¸¸¡º÷¥ë¡¼¥ë¤Ë´ð¤Å¤¤¤Æ -¼«Æ°Åª¤Ë¥í¡¼¥É¤¹¤ë (¤½¤ì¤é¤Î¥é¥¤¥Ö¥é¥ê¤Ë¤µ¤é¤Ë°Í¸´Ø·¸¤¬¤¢¤ë¾ì¹ç¤Ê¤É¤Ï -¤³¤Î½èÍý¤ÏºÆµ¢Åª¤Ë¹Ô¤ï¤ì¤ë)¡£ +そのライブラリが他の共有ライブラリに依存している場合は、 +依存しているライブラリも動的リンカが同じ検索ルールに基づいて +自動的にロードする (それらのライブラリにさらに依存関係がある場合などは +この処理は再帰的に行われる)。 .PP .\"O One of the following two values must be included in .\"O .IR flag : .I flag -¤Ë¤Ï°Ê²¼¤Î 2 ¤Ä¤ÎÃͤΤ¤¤º¤ì¤«¤ò´Þ¤á¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤: +には以下の 2 つの値のいずれかを含めなければならない: .TP .B RTLD_LAZY .\"O Perform lazy binding. @@ -213,12 +213,12 @@ DT_RUNPATH .\"O (Lazy binding is only performed for function references; .\"O references to variables are always immediately bound when .\"O the library is loaded.) -lazy binding (¼êÈ´¤­¤Ê¥·¥ó¥Ü¥ë¤Î·ë¤ÓÉÕ¤±) ¤¬¹Ô¤¦¡£ -¥·¥ó¥Ü¥ë¤Î²ò·è¤Ï¤½¤Î¥·¥ó¥Ü¥ë¤ò»²¾È¤¹¤ë¥³¡¼¥É¤¬¼Â¹Ô¤µ¤ì¤ë¤È¤­¤Ë¤Î¤ß -¹Ô¤ï¤ì¤ë¡£¥·¥ó¥Ü¥ë¤¬°ìÅ٤⻲¾È¤µ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¥·¥ó¥Ü¥ë¤Ï -²ò·è¤µ¤ì¤Ê¤¤¤Þ¤Þ¤È¤Ê¤ë¡£ -(lazy binding ¤Ï´Ø¿ô»²¾È¤Ë¤Ä¤¤¤Æ¤Î¤ß¼Â»Ü¤µ¤ì¤ë; ÊÑ¿ô¤Ø¤Î»²¾È¤Ï¾ï¤Ë -¥é¥¤¥Ö¥é¥ê¤¬¥í¡¼¥É¤µ¤ì¤¿»þÅÀ¤Çľ¤Á¤Ë²ò·è¤µ¤ì¤ë¡£) +lazy binding (手抜きなシンボルの結び付け) が行う。 +シンボルの解決はそのシンボルを参照するコードが実行されるときにのみ +行われる。シンボルが一度も参照されなかった場合には、そのシンボルは +解決されないままとなる。 +(lazy binding は関数参照についてのみ実施される; 変数への参照は常に +ライブラリがロードされた時点で直ちに解決される。) .TP .B RTLD_NOW .\"O If this value is specified, or the environment variable @@ -228,24 +228,24 @@ lazy binding ( .\"O .BR dlopen () .\"O returns. .\"O If this cannot be done, an error is returned. -¤³¤ÎÃͤ¬»ØÄꤵ¤ì¤ë¤«¡¢´Ä¶­ÊÑ¿ô +この値が指定されるか、環境変数 .B LD_BIND_NOW -¤Ë¶õ¤Ç¤Ê¤¤Ê¸»úÎó¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ -¥é¥¤¥Ö¥é¥êÃæ¤Î̤ÄêµÁ¤Î¥·¥ó¥Ü¥ë¤òÁ´¤Æ²ò·è¤·¤Æ¤«¤é +に空でない文字列が設定された場合、 +ライブラリ中の未定義のシンボルを全て解決してから .BR dlopen () -¤ÏÉüµ¢¤¹¤ë¡£²ò·è¤Ç¤­¤Ê¤«¤Ã¤¿¤È¤­¤Ë¤Ï¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ +は復帰する。解決できなかったときにはエラーが返される。 .PP .\"O Zero or more of the following values may also be ORed in .\"O .IR flag : -°Ê²¼¤ÎÃͤΤ¦¤Á 0 ¸Ä°Ê¾å¤òÏÀÍýÏ (OR) ¤Î·Á¤Ç +以下の値のうち 0 個以上を論理和 (OR) の形で .I flag -¤ËÄɲ乤뤳¤È¤â¤Ç¤­¤ë: +に追加することもできる: .TP .B RTLD_GLOBAL .\"O The symbols defined by this library will be .\"O made available for symbol resolution of subsequently loaded libraries. -¤³¤Î¥é¥¤¥Ö¥é¥ê¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥·¥ó¥Ü¥ë¤¬¡¢¤³¤ì¤è¤ê¸å¤Ç¥í¡¼¥É¤µ¤ì¤ë -¥é¥¤¥Ö¥é¥ê¤Î¥·¥ó¥Ü¥ë²ò·è¤ÇÍøÍѤǤ­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +このライブラリで定義されているシンボルが、これより後でロードされる +ライブラリのシンボル解決で利用できるようになる。 .TP .B RTLD_LOCAL .\"O This is the converse of @@ -253,15 +253,15 @@ lazy binding ( .\"O and the default if neither flag is specified. .\"O Symbols defined in this library are not made available to resolve .\"O references in subsequently loaded libraries. -¤³¤Î¥Õ¥é¥°¤Ï +このフラグは .B RTLD_GLOBAL -¤ÎÈ¿ÂФΰÕÌ£¤Ç¤¢¤ê¡¢¤É¤Á¤é¤Î¥Õ¥é¥°¤â»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï -¤³¤Á¤é¤¬¥Ç¥Õ¥©¥ë¥È¤È¤Ê¤ë¡£ -¤³¤Î¥é¥¤¥Ö¥é¥ê¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥·¥ó¥Ü¥ë¤Ï¡¢¤³¤ì¤è¤ê¸å¤Ç¥í¡¼¥É¤µ¤ì¤ë -¥é¥¤¥Ö¥é¥ê¤Ç¤Î¥·¥ó¥Ü¥ë»²¾È¤ÇÍøÍѤǤ­¤Ê¤¤¡£ +の反対の意味であり、どちらのフラグも指定されなかった場合は +こちらがデフォルトとなる。 +このライブラリで定義されているシンボルは、これより後でロードされる +ライブラリでのシンボル参照で利用できない。 .TP .\"O .BR RTLD_NODELETE " (since glibc 2.2)" -.BR RTLD_NODELETE " (glibc 2.2 °Ê¹ß)" +.BR RTLD_NODELETE " (glibc 2.2 以降)" .\"O Do not unload the library during .\"O .BR dlclose (). .\"O Consequently, the library's static variables are not reinitialized @@ -271,15 +271,15 @@ lazy binding ( .\"O This flag is not specified in POSIX.1-2001. .\"O .\" (But it is present on Solaris.) .BR dlclose () -Ãæ¤Ë¤½¤Î¥é¥¤¥Ö¥é¥ê¤ò¥¢¥ó¥í¡¼¥É¤·¤Ê¤¤¡£ -¤½¤Î¤¿¤á¡¢Æ±¤¸¥é¥¤¥Ö¥é¥ê¤ò¤³¤ì°Ê¹ß¤Ë +中にそのライブラリをアンロードしない。 +そのため、同じライブラリをこれ以降に .BR dlopen () -¤ÇºÆÅÙ¥í¡¼¥É¤·¤¿¾ì¹ç¤Ë¡¢¥é¥¤¥Ö¥é¥êÆâ¤ÎÀÅŪÊÑ¿ô¤ÏºÆ½é´ü²½¤µ¤ì¤Ê¤¤¡£ -¤³¤Î¥Õ¥é¥°¤Ï POSIX.1-2001 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -.\" (¤·¤«¤· Solaris ¤Ë¸ºß¤¹¤ë) +で再度ロードした場合に、ライブラリ内の静的変数は再初期化されない。 +このフラグは POSIX.1-2001 では規定されていない。 +.\" (しかし Solaris に存在する) .TP .\"O .BR RTLD_NOLOAD " (since glibc 2.2)" -.BR RTLD_NOLOAD " (glibc 2.2 °Ê¹ß)" +.BR RTLD_NOLOAD " (glibc 2.2 以降)" .\"O Don't load the library. .\"O This can be used to test if the library is already resident .\"O .RB ( dlopen () @@ -293,23 +293,23 @@ lazy binding ( .\"O This flag is not specified in POSIX.1-2001. .\"O .\" (But it is present on Solaris.) .\"O .\" -¤½¤Î¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤·¤Ê¤¤¡£ -¤³¤Î¥Õ¥é¥°¤Ï¤½¤Î¥é¥¤¥Ö¥é¥ê¤¬¤¹¤Ç¤ËÁȤ߹þ¤Þ¤ì¤Æ¤¤¤ë¤«¤ò¸¡ºº¤¹¤ë¤Î¤Ë -ÍøÍѤǤ­¤ë +そのライブラリをロードしない。 +このフラグはそのライブラリがすでに組み込まれているかを検査するのに +利用できる .RB ( dlopen () -¤Ï¡¢¥é¥¤¥Ö¥é¥ê¤¬ÁȤ߹þ¤Þ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð NULL ¤òÊÖ¤·¡¢ -¤¹¤Ç¤ËÁȤ߹þ¤Þ¤ì¤Æ¤¤¤ì¤Ð¤½¤Î¥é¥¤¥Ö¥é¥ê¤Î¥Ï¥ó¥É¥ë¤òÊÖ¤¹)¡£ -¤Þ¤¿¡¢¤¹¤Ç¤Ë¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥ê¤Î¥Õ¥é¥°¤ò¾º³Ê¤µ¤»¤ë¤Î¤Ë¤â -ÍøÍѤǤ­¤ë¡£Î㤨¤Ð¡¢²áµî¤Ë +は、ライブラリが組み込まれていなければ NULL を返し、 +すでに組み込まれていればそのライブラリのハンドルを返す)。 +また、すでにロードされているライブラリのフラグを昇格させるのにも +利用できる。例えば、過去に .B RTLD_LOCAL -¤Ç¥í¡¼¥É¤·¤¿¥é¥¤¥Ö¥é¥ê¤ò +でロードしたライブラリを .BR RTLD_NOLOAD\ |\ RTLD_GLOBAL -¤ÇºÆ¥ª¡¼¥×¥ó¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï POSIX.1-2001 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -.\" (¤·¤«¤· Solaris ¤Ë¸ºß¤¹¤ë) +で再オープンすることができる。 +このフラグは POSIX.1-2001 では規定されていない。 +.\" (しかし Solaris に存在する) .TP .\"O .BR RTLD_DEEPBIND " (since glibc 2.3.4)" -.BR RTLD_DEEPBIND " (glibc 2.3.4 °Ê¹ß)" +.BR RTLD_DEEPBIND " (glibc 2.3.4 以降)" .\" Inimitably described by UD in .\" http://sources.redhat.com/ml/libc-hacker/2004-09/msg00083.html. .\"O Place the lookup scope of the symbols in this @@ -318,18 +318,18 @@ lazy binding ( .\"O its own symbols in preference to global symbols with the same name .\"O contained in libraries that have already been loaded. .\"O This flag is not specified in POSIX.1-2001. -¤³¤Î¥é¥¤¥Ö¥é¥êÆâ¤Î¥·¥ó¥Ü¥ë¤Î»²¾ÈÎΰè¤ò¥°¥í¡¼¥Ð¥ëÎΰè¤è¤ê¤âÁ°¤ËÇÛÃÖ¤¹¤ë¡£ -¤Ä¤Þ¤ê¡¢Æ⢷¿¤Î¥é¥¤¥Ö¥é¥ê¤Ç¤Ï¡¢¤¹¤Ç¤Ë¥í¡¼¥É¤µ¤ì¤¿¥é¥¤¥Ö¥é¥ê¤Ë´Þ¤Þ¤ì¤ë -Ʊ¤¸Ì¾Á°¤Î¥°¥í¡¼¥Ð¥ë¤Ê¥·¥ó¥Ü¥ë¤è¤ê¤â¼«¥é¥¤¥Ö¥é¥êÆâ¤Î¥·¥ó¥Ü¥ë¤¬Í¥À褷¤Æ -»È¤ï¤ì¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï POSIX.1-2001 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +このライブラリ内のシンボルの参照領域をグローバル領域よりも前に配置する。 +つまり、内蔵型のライブラリでは、すでにロードされたライブラリに含まれる +同じ名前のグローバルなシンボルよりも自ライブラリ内のシンボルが優先して +使われる。 +このフラグは POSIX.1-2001 では規定されていない。 .PP .\"O If .\"O .I filename .\"O is a NULL pointer, then the returned handle is for the main program. .I filename -¤¬ NULL ¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¾ì¹ç¤Ï¡¢ -ÊÖ¤µ¤ì¤ë¥Ï¥ó¥É¥ë¤Ï¥á¥¤¥ó¡¦¥×¥í¥°¥é¥à¤Î¤â¤Î¤Ë¤Ê¤ë¡£ +が NULL ポインタである場合は、 +返されるハンドルはメイン・プログラムのものになる。 .\"O When given to .\"O .BR dlsym (), .\"O this handle causes a search for a symbol in the main program, @@ -338,14 +338,14 @@ lazy binding ( .\"O .BR dlopen () .\"O with the flag .\"O .BR RTLD_GLOBAL . -¤³¤Î¥Ï¥ó¥É¥ë¤¬ +このハンドルが .BR dlsym () -¤ËÅϤµ¤ì¤ë¤È¡¢¥·¥ó¥Ü¥ë¤Î¸¡º÷¤Ï¡¢¥á¥¤¥ó¡¦¥×¥í¥°¥é¥àÆâ¡¢ -¥×¥í¥°¥é¥à¤Îµ¯Æ°»þ¤Ë¥í¡¼¥É¤µ¤ì¤ëÁ´¤Æ¤Î¶¦Í­¥é¥¤¥Ö¥é¥ê¡¢ +に渡されると、シンボルの検索は、メイン・プログラム内、 +プログラムの起動時にロードされる全ての共有ライブラリ、 .BR dlopen () -¤Ë¤è¤Ã¤Æ +によって .B RTLD_GLOBAL -¥Õ¥é¥°ÉÕ¤­¤Ç¥í¡¼¥É¤µ¤ì¤¿Á´¤Æ¤Î¶¦Í­¥é¥¤¥Ö¥é¥ê¡¢¤Î½ç½ø¤Ç¹Ô¤ï¤ì¤ë¡£ +フラグ付きでロードされた全ての共有ライブラリ、の順序で行われる。 .PP .\"O External references in the library are resolved using the libraries .\"O in that library's dependency list and any other libraries previously @@ -356,13 +356,13 @@ lazy binding ( .\"O (or, synonymously, "\-\-export\-dynamic"), .\"O then the global symbols in the executable will also be used .\"O to resolve references in a dynamically loaded library. -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥é¥¤¥Ö¥é¥êÃæ¤Ç¤Î³°Éô»²¾È¤Ï¡¢ -¤½¤Î¥é¥¤¥Ö¥é¥ê¤Î°Í¸¥ê¥¹¥È¤Ë¤¢¤ë¥é¥¤¥Ö¥é¥ê¤«¡¢ +オープンされたライブラリ中での外部参照は、 +そのライブラリの依存リストにあるライブラリか、 .B RTLD_GLOBAL -¥Õ¥é¥°ÉÕ¤­¤Ç´û¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤Æ²ò·è¤µ¤ì¤ë¡£ -¼Â¹Ô¥Õ¥¡¥¤¥ë¤¬ "\-rdynamic" ¥Õ¥é¥° ("\-\-export\-dynamic" ¤âƱµÁ) -ÉÕ¤­¤Ç¥ê¥ó¥¯¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¼Â¹Ô¥Õ¥¡¥¤¥ëÃæ¤Î¥°¥í¡¼¥Ð¥ë¥·¥ó¥Ü¥ë¤â¡¢ -ưŪ¤Ë¥í¡¼¥É¤µ¤ì¤ë¥é¥¤¥Ö¥é¥êÆâ¤Î»²¾È²ò·è¤ËÍѤ¤¤é¤ì¤ë¡£ +フラグ付きで既にオープンされているライブラリを使って解決される。 +実行ファイルが "\-rdynamic" フラグ ("\-\-export\-dynamic" も同義) +付きでリンクされている場合は、実行ファイル中のグローバルシンボルも、 +動的にロードされるライブラリ内の参照解決に用いられる。 .PP .\"O If the same library is loaded again with .\"O .BR dlopen (), @@ -381,31 +381,31 @@ lazy binding ( .\"O .B RTLD_NOW .\"O may force symbol resolution for a library earlier loaded with .\"O .BR RTLD_LAZY . -Ʊ¤¸¥é¥¤¥Ö¥é¥ê¤¬ +同じライブラリが .BR dlopen () -¤Ë¤è¤Ã¤ÆºÆÅÙ¥í¡¼¥É¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢Æ±¤¸¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤¬ÊÖ¤µ¤ì¤ë¡£ -dl ¥é¥¤¥Ö¥é¥ê¤Ï¥é¥¤¥Ö¥é¥ê¥Ï¥ó¥É¥ë¤Î¥ê¥ó¥¯¿ô¤ò´ÉÍý¤·¤Æ¤¤¤ë¡£ -¤·¤¿¤¬¤Ã¤ÆưŪ¥é¥¤¥Ö¥é¥ê¤Ï +によって再度ロードされた場合には、同じファイルハンドルが返される。 +dl ライブラリはライブラリハンドルのリンク数を管理している。 +したがって動的ライブラリは .BR dlclose () -¤¬ +が .BR dlopen () -¤ÈƱ¤¸²ó¿ô¤À¤±¸Æ¤Ó½Ð¤µ¤ì¤Ê¤¤¸Â¤ê¥¢¥ó¥í¡¼¥É¤µ¤ì¤Ê¤¤¡£ +と同じ回数だけ呼び出されない限りアンロードされない。 .BR _init () -¥ë¡¼¥Á¥ó¤Ï°ìÅÙ¤À¤±¸Æ¤Ó½Ð¤µ¤ì¤ë +ルーチンは一度だけ呼び出される .RB ( _init () -¤¬Â¸ºß¤¹¤ë¾ì¹ç¤Î¤ß)¡£ +が存在する場合のみ)。 .B RTLD_NOW -¤¬»ØÄꤵ¤ì¤Æ +が指定されて .BR dlopen () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¡¢ +が呼び出された場合、 .B RTLD_LAZY -¤Ç°ÊÁ°¤Ë¥í¡¼¥É¤µ¤ì¤¿¥é¥¤¥Ö¥é¥ê¤Î¥·¥ó¥Ü¥ë²ò·è¤¬¼Â¹Ô¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ +で以前にロードされたライブラリのシンボル解決が実行されることがある。 .PP .\"O If .\"O .BR dlopen () .\"O fails for any reason, it returns NULL. .BR dlopen () -¤Ï¡¢²¿¤é¤«¤ÎÍýͳ¤Ç¼ºÇÔ¤¹¤ë¤È NULL ¤òÊÖ¤¹¡£ +は、何らかの理由で失敗すると NULL を返す。 .SS "dlsym()" .\"O The function @@ -421,24 +421,24 @@ dl .\"O when that library was loaded, .\"O .BR dlsym () .\"O returns NULL. -´Ø¿ô +関数 .BR dlsym () -¤Ï¡¢ +は、 .BR dlopen () -¤¬ÊÖ¤·¤¿Æ°Åª¥é¥¤¥Ö¥é¥ê¤Î¡Ö¥Ï¥ó¥É¥ë¡×¤È¡¢ -NULL ½ªÃ¼¤µ¤ì¤¿¥·¥ó¥Ü¥ë̾¤Îʸ»úÎó¤ò°ú¤­¿ô¤Ë¼è¤ê¡¢ -¤½¤Î¥·¥ó¥Ü¥ë¤¬¥í¡¼¥É¤µ¤ì¤¿¥á¥â¥ê¤Î¥¢¥É¥ì¥¹¤òÊÖ¤¹¡£ -¥·¥ó¥Ü¥ë¤¬¡¢»ØÄꤵ¤ì¤¿¥é¥¤¥Ö¥é¥ê¤È¡¢»ØÄꤵ¤ì¤¿¥é¥¤¥Ö¥é¥ê¤¬¥í¡¼¥É¤µ¤ì¤ëºÝ¤Ë +が返した動的ライブラリの「ハンドル」と、 +NULL 終端されたシンボル名の文字列を引き数に取り、 +そのシンボルがロードされたメモリのアドレスを返す。 +シンボルが、指定されたライブラリと、指定されたライブラリがロードされる際に .BR dlopen () -¤¬¼«Æ°Åª¤Ë¥í¡¼¥É¤·¤Æ¥é¥¤¥Ö¥é¥ê¤Î¤¤¤º¤ì¤Ë¤â¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ +が自動的にロードしてライブラリのいずれにも見つからない場合には、 .BR dlsym () -¤Ï NULL ¤òÊÖ¤¹ +は NULL を返す .\"O (The search performed by .\"O .BR dlsym () .\"O is breadth first through the dependency tree of these libraries.) .RB ( dlsym () -¤Ë¤è¤ë¸¡º÷¤Ï¡¢¤³¤ì¤é¤Î¥é¥¤¥Ö¥é¥ê¤Î°Í¸´Ø·¸¤Î¥Ä¥ê¡¼¤òÀèƬ¤«¤é -é¤Ã¤Æ¹Ô¤ï¤ì¤ë)¡£ +による検索は、これらのライブラリの依存関係のツリーを先頭から +辿って行われる)。 .\"O Since the value of the symbol could actually be NULL (so that a .\"O NULL return from .\"O .BR dlsym () @@ -451,27 +451,27 @@ NULL .\"O .BR dlerror () .\"O again, saving its return value into a variable, and check whether .\"O this saved value is not NULL. -¼ÂºÝ¤Ë¤Ï¥·¥ó¥Ü¥ë¤ÎÃͼ«ÂΤ¬ NULL ¤Ë¤Ê¤ë¤³¤È¤â¤¢¤ë (¤½¤Î¤¿¤á¡¢ +実際にはシンボルの値自体が NULL になることもある (そのため、 .BR dlsym () -¤ÎÊÖ¤êÃͤ¬ NULL ¤Ç¤¢¤Ã¤¿¤È¤·¤Æ¤âɬ¤º¤·¤â¥¨¥é¡¼¤È¤¤¤¦Ìõ¤Ç¤Ï¤Ê¤¤)¡£ -¥¨¥é¡¼¤«¤É¤¦¤«¤ò³Îǧ¤¹¤ëÀµ¤·¤¤ÊýË¡¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë: +の返り値が NULL であったとしても必ずしもエラーという訳ではない)。 +エラーかどうかを確認する正しい方法は以下の通りである: .BR dlerror () -¤ò¸Æ¤Ó½Ð¤·¤Æ°ÊÁ°¤Î¥¨¥é¡¼¾õÂÖ¤ò¥¯¥ê¥¢¤·¤Æ¤«¤é¡¢ +を呼び出して以前のエラー状態をクリアしてから、 .BR dlsym () -¤ò¸Æ¤Ó½Ð¤¹¡£¤½¤Î¸å¤Ç¤â¤¦°ìÅÙ +を呼び出す。その後でもう一度 .BR dlerror () -¤ò¸Æ¤Ó½Ð¤·¤Æ¡¢ +を呼び出して、 .BR dlerror () -¤ÎÊÖ¤êÃͤòÊÑ¿ô¤ËÊݸ¤·¡¢Êݸ¤·¤¿Ãͤ¬ NULL ¤Ç¤¢¤ë¤«È½Äꤹ¤ë¡£ +の返り値を変数に保存し、保存した値が NULL であるか判定する。 .PP .\"O There are two special pseudo-handles, .\"O .B RTLD_DEFAULT .\"O and .\"O .BR RTLD_NEXT . .B RTLD_DEFAULT -¤È +と .B RTLD_NEXT -¤È¤¤¤¦Æó¤Ä¤ÎÆÃÊ̤ʵ¼»÷¥Ï¥ó¥É¥ë¤¬¤¢¤ë¡£ +という二つの特別な擬似ハンドルがある。 .\"O The former will find the first occurrence of the desired symbol .\"O using the default library search order. .\"O The latter @@ -480,12 +480,12 @@ NULL .\"O This allows one to provide a wrapper .\"O around a function in another shared library. .B RTLD_DEFAULT -¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥é¥¤¥Ö¥é¥ê¸¡º÷½ç½ø¤Ë¤·¤¿¤¬¤Ã¤Æ¡¢ -¸¡º÷ÂоݤΥ·¥ó¥Ü¥ë¤¬ºÇ½é¤Ë¸½¤ì¤ë¤È¤³¤í¤òõ¤¹¡£ +は、デフォルトのライブラリ検索順序にしたがって、 +検索対象のシンボルが最初に現れるところを探す。 .B RTLD_NEXT -¤Ï¡¢¥é¥¤¥Ö¥é¥ê¸¡º÷½ç½ø¤ÎÃæ¤Ç¸½ºß¤Î¥é¥¤¥Ö¥é¥ê°Ê¹ß¤ÇºÇ½é¤Ë -´Ø¿ô¤¬¸½¤ì¤ë¤È¤³¤í¤òõ¤¹¡£¤³¤Îµ¡Ç½¤ò»È¤¦¤³¤È¤Ç¡¢Ê̤ζ¦Í­¥é¥¤¥Ö¥é¥ê¤Î -´Ø¿ô¤Ø¤Î¥é¥Ã¥Ñ¡¼¤òÄ󶡤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +は、ライブラリ検索順序の中で現在のライブラリ以降で最初に +関数が現れるところを探す。この機能を使うことで、別の共有ライブラリの +関数へのラッパーを提供することができる。 .SS "dlclose()" .\"O The function .\"O .BR dlclose () @@ -493,22 +493,22 @@ NULL .\"O .IR handle . .\"O If the reference count drops to zero and no other loaded libraries use .\"O symbols in it, then the dynamic library is unloaded. -´Ø¿ô +関数 .BR dlclose () -¤ÏưŪ¥é¥¤¥Ö¥é¥ê¤Î¥Ï¥ó¥É¥ë +は動的ライブラリのハンドル .I handle -¤Î»²¾È¥«¥¦¥ó¥È¤ò 1 ¸º¤é¤¹¡£»²¾È¥«¥¦¥ó¥È¤¬ 0 ¤Ë¤Ê¤ê¡¢¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë -¾¤Î¥é¥¤¥Ö¥é¥ê¤«¤é¤½¤Î¥é¥¤¥Ö¥é¥êÆâ¤Î¥·¥ó¥Ü¥ë¤¬»È¤ï¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ -¤½¤ÎưŪ¥é¥¤¥Ö¥é¥ê¤ò¥¢¥ó¥í¡¼¥É¤¹¤ë¡£ +の参照カウントを 1 減らす。参照カウントが 0 になり、ロードされている +他のライブラリからそのライブラリ内のシンボルが使われていなければ、 +その動的ライブラリをアンロードする。 .LP .\"O The function .\"O .BR dlclose () .\"O returns 0 on success, and nonzero on error. -´Ø¿ô +関数 .BR dlclose () -¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤·¡¢¥¨¥é¡¼¤Î¾ì¹ç 0 °Ê³°¤òÊÖ¤¹¡£ +は、成功した場合は 0 を返し、エラーの場合 0 以外を返す。 .\"O .SS "The obsolete symbols _init(0 and _fini()" -.SS "Çѻߤµ¤ì¤¿¥·¥ó¥Ü¥ë _init() ¤È _fini()" +.SS "廃止されたシンボル _init() と _fini()" .\"O The linker recognizes special symbols .\"O .B _init .\"O and @@ -521,31 +521,31 @@ NULL .\"O If the dynamic library exports a routine named .\"O .BR _fini (), .\"O then that routine is called just before the library is unloaded. -¥ê¥ó¥«¤Ï +リンカは .B _init -¤È +と .B _fini -¤òÆÃÊ̤ʥ·¥ó¥Ü¥ë¤È²ò¼á¤¹¤ë¡£ -¤¢¤ëưŪ¥é¥¤¥Ö¥é¥ê¤Ç +を特別なシンボルと解釈する。 +ある動的ライブラリで .BR _init () -¤È¤¤¤¦Ì¾Á°¤Î¥ë¡¼¥Á¥ó¤¬¥¨¥¯¥¹¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢ -¤½¤Î¥³¡¼¥É¤Ï¡¢¥é¥¤¥Ö¥é¥ê¤Î¥í¡¼¥É¸å¡¢¤«¤Ä +という名前のルーチンがエクスポートされていれば、 +そのコードは、ライブラリのロード後、かつ .BR dlopen () -¤¬Éüµ¢¤¹¤ëÁ°¤Ë¼Â¹Ô¤µ¤ì¤ë¡£ -¤½¤ÎưŪ¥é¥¤¥Ö¥é¥ê¤Ç +が復帰する前に実行される。 +その動的ライブラリで .BR _fini () -¤È¤¤¤¦Ì¾Á°¤Î¥ë¡¼¥Á¥ó¤¬¥¨¥¯¥¹¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢ -¥é¥¤¥Ö¥é¥ê¤¬¥¢¥ó¥í¡¼¥É¤µ¤ì¤ëľÁ°¤Ë¤½¤Î¥ë¡¼¥Á¥ó¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ +という名前のルーチンがエクスポートされていれば、 +ライブラリがアンロードされる直前にそのルーチンが呼び出される。 .\"O In case you need to avoid linking against the system startup files, .\"O this can be done by using the .\"O .BR gcc (1) .\"O .I \-nostartfiles .\"O command-line option. -¥·¥¹¥Æ¥à¤Îµ¯Æ°¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥ê¥ó¥¯¤òÈò¤±¤ëɬÍפ¬¤¢¤ë¾ì¹ç¡¢ +システムの起動ファイルに対するリンクを避ける必要がある場合、 .BR gcc (1) -¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ë +のコマンドラインに .I \-nostartfiles -¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ì¤Ð¤è¤¤¡£ +オプションを指定すればよい。 .LP .\"O Using these routines, or the gcc .\"O .B \-nostartfiles @@ -557,14 +557,14 @@ NULL .\"O (unless special measures are taken). .\"O .\" void _init(void) __attribute__((constructor)); .\"O .\" void _fini(void) __attribute__((destructor)); -¤³¤Î¥ë¡¼¥Á¥ó¤ä¡¢gcc ¤Î¥ª¥×¥·¥ç¥ó +このルーチンや、gcc のオプション .B \-nostartfiles -¤ä +や .B \-nostdlib -¤Ï»ÈÍѤ·¤Ê¤¤¤³¤È¤ò¿ä¾©¤¹¤ë¡£ -¤³¤ì¤é¤ò»È¤¦¤È¡¢Ë¾¤Þ¤·¤¯¤Ê¤¤Æ°ºî¤ò¤¹¤ë¤³¤È¤¬¤¢¤ë¡£ -¤Ê¤¼¤Ê¤é¡¢(ÆÃÊ̤ÊÁ¼ÃÖ¤¬¹Ô¤ï¤ì¤Ê¤¤¸Â¤ê) ¤³¤ì¤é¤Î constructor/destructor -¥ë¡¼¥Á¥ó¤Ï¼Â¹Ô¤µ¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +は使用しないことを推奨する。 +これらを使うと、望ましくない動作をすることがある。 +なぜなら、(特別な措置が行われない限り) これらの constructor/destructor +ルーチンは実行されないからである。 .\" void _init(void) __attribute__((constructor)); .\" void _fini(void) __attribute__((destructor)); .LP @@ -579,27 +579,27 @@ NULL .\"O returns, and destructor routines are executed before .\"O .BR dlclose () .\"O returns. -Âå¤ï¤ê¤Ë¡¢¥é¥¤¥Ö¥é¥ê¤Ï +代わりに、ライブラリは .B __attribute__((constructor)) -¤ä +や .B __attribute__((destructor)) -¤Î´Ø¿ô°À­¤ò»È¤Ã¤ÆɬÍפʥ롼¥Á¥ó¤ò¥¨¥¯¥¹¥Ý¡¼¥È¤¹¤ë¤Î¤¬¤è¤¤¡£ -¤³¤ì¤é¤Ë¤Ä¤¤¤Æ¤Ï gcc ¤Î info ¥Ú¡¼¥¸¤ò»²¾È¤Î¤³¤È¡£ -constructor ¥ë¡¼¥Á¥ó¤Ï +の関数属性を使って必要なルーチンをエクスポートするのがよい。 +これらについては gcc の info ページを参照のこと。 +constructor ルーチンは .BR dlopen () -¤¬Éüµ¢¤¹¤ëÁ°¤Ë¼Â¹Ô¤µ¤ì¡¢ -destructor ¥ë¡¼¥Á¥ó¤Ï +が復帰する前に実行され、 +destructor ルーチンは .BR dlclose () -¤¬Éüµ¢¤¹¤ëÁ°¤Ë¼Â¹Ô¤µ¤ì¤ë¡£ +が復帰する前に実行される。 .\"O .SS Glibc extensions: dladdr() and dlvsym() -.SS GNU ¤Ç¤Î³ÈÄ¥: dladdr() ¤È dlvsym() +.SS GNU での拡張: dladdr() と dlvsym() .\"O Glibc adds two functions not described by POSIX, with prototypes -glibc ¤Ç¤Ï POSIX ¤Ë¤Ïµ­ºÜ¤µ¤ì¤Æ¤¤¤Ê¤¤´Ø¿ô¤¬ 2¤ÄÄɲ䵤ì¤Æ¤¤¤ë¡£ -¥×¥í¥È¥¿¥¤¥×¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +glibc では POSIX には記載されていない関数が 2つ追加されている。 +プロトタイプは以下の通りである。 .sp .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "int dladdr(void *" addr ", Dl_info *" info ); @@ -614,12 +614,12 @@ glibc .\"O Information is stored in the .\"O .I Dl_info .\"O structure: -´Ø¿ô +関数 .BR dladdr () -¤Ï¡¢´Ø¿ô¤Î¥Ý¥¤¥ó¥¿¤ò°ú¤­¿ô¤Ë¤È¤ê¡¢´Ø¿ô¤Î̾Á°¤È´Ø¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë -¥Õ¥¡¥¤¥ë¤Î²ò·è¤ò»î¤ß¤ë¡£¾ðÊó¤Ï +は、関数のポインタを引き数にとり、関数の名前と関数が定義されている +ファイルの解決を試みる。情報は .I Dl_info -¹½Â¤ÂΤ˳ÊǼ¤µ¤ì¤ë¡£ +構造体に格納される。 .sp .in +4n .nf @@ -644,16 +644,16 @@ typedef struct { .\"O .I dli_saddr .\"O are set to NULL. .I addr -¤Ë¥Þ¥Ã¥Á¤¹¤ë¥·¥ó¥Ü¥ë¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ +にマッチするシンボルが見つからなかった場合、 .I dli_sname -¤È +と .I dli_saddr -¤Ï NULL ¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ +は NULL にセットされる。 .PP .\"O .BR dladdr () .\"O returns 0 on error, and nonzero on success. .BR dladdr () -¤Ï¡¢¥¨¥é¡¼»þ¤Ë¤Ï 0 ¤òÊÖ¤·¡¢À®¸ù¤·¤¿¾ì¹ç¤Ï 0 °Ê³°¤òÊÖ¤¹¡£ +は、エラー時には 0 を返し、成功した場合は 0 以外を返す。 .PP .\"O The function .\"O .BR dlvsym (), @@ -661,30 +661,30 @@ typedef struct { .\"O does the same as .\"O .BR dlsym () .\"O but takes a version string as an additional argument. -´Ø¿ô +関数 .BR dlvsym () -¤Ï +は .BR dlsym () -¤ÈƱ¤¸Æ°ºî¤ò¤¹¤ë¤¬¡¢¥Ð¡¼¥¸¥ç¥ó¤Îʸ»úÎó¤òÅϤ¹°ú¤­¿ô¤¬ -Äɲ䵤ì¤Æ¤¤¤ëÅÀ¤¬°Û¤Ê¤ë +と同じ動作をするが、バージョンの文字列を渡す引き数が +追加されている点が異なる .RB ( dlvsym () -¤Ï¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë)¡£ +はバージョン 2.1 以降の glibc で提供されている)。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O POSIX.1-2003 describes .\"O .BR dlclose (), .\"O .BR dlerror (), .\"O .BR dlopen (), .\"O and .\"O .BR dlsym (). -POSIX.1-2003 ¤Ë¤Ï +POSIX.1-2003 には .BR dlclose (), .BR dlerror (), .BR dlopen (), .BR dlsym (). -¤Îµ­ºÜ¤¬¤¢¤ë¡£ +の記載がある。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The symbols .\"O .B RTLD_DEFAULT .\"O and @@ -694,17 +694,17 @@ POSIX.1-2003 .\"O only when .\"O .B _GNU_SOURCE .\"O was defined before including it. -¥·¥ó¥Ü¥ë +シンボル .B RTLD_DEFAULT -¤È +と .B RTLD_NEXT -¤Ï +は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ +で定義されており、 .I -¤Î¥¤¥ó¥¯¥ë¡¼¥ÉÁ°¤Ë +のインクルード前に .B _GNU_SOURCE -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Î¤ßÍ­¸ú¤È¤Ê¤ë¡£ +が定義されている場合のみ有効となる。 .\" .LP .\"O .\" The string returned by .\"O .\" .BR dlerror () @@ -715,8 +715,8 @@ POSIX.1-2003 .\"O .\" .B "const char *dlerror(void);" .\"O .\" .in .\" .BR dlerror () -.\" ¤¬ÊÖ¤¹Ê¸»úÎó¤ÏÊѹ¹¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¡¢ -.\" °Ê²¼¤Î¤è¤¦¤Ê¥×¥í¥È¥¿¥¤¥×¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +.\" が返す文字列は変更すべきではない。システムによっては、 +.\" 以下のようなプロトタイプになっている。 .\" .sp .\" .in +5 .\" .B "const char *dlerror(void);" @@ -726,25 +726,25 @@ POSIX.1-2003 .\"O .BR atexit (3) .\"O can be used to register an exit handler that is automatically .\"O called when a library is unloaded. -glibc 2.2.3 °Ê¹ß¤Ç¤Ï¡¢ +glibc 2.2.3 以降では、 .BR atexit (3) -¤ò»È¤Ã¤Æ¡¢¥é¥¤¥Ö¥é¥ê¤¬¥¢¥ó¥í¡¼¥É¤µ¤ì¤ëºÝ¤Ë¼«Æ°Åª¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë -½ªÎ»¥Ï¥ó¥É¥é (exit handler) ¤òÅÐÏ¿¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使って、ライブラリがアンロードされる際に自動的に呼び出される +終了ハンドラ (exit handler) を登録することができる。 .\"O .SS History -.SS Îò»Ë +.SS 歴史 .\"O The dlopen interface standard comes from SunOS. .\"O That system also has .\"O .BR dladdr (), .\"O but not .\"O .BR dlvsym (). -dlopen ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Îɸ½à¤Ï SunOS ¤ò¤â¤È¤Ë¤·¤Æ¤¤¤ë¡£ -SunOS ¤Ë¤Ï +dlopen インターフェースの標準は SunOS をもとにしている。 +SunOS には .BR dladdr () -¤â¤¢¤Ã¤¿¤¬¡¢ +もあったが、 .BR dlvsym () -¤Ï¤Ê¤«¤Ã¤¿¡£ +はなかった。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Sometimes, the function pointers you pass to .\"O .BR dladdr () .\"O may surprise you. @@ -756,18 +756,18 @@ SunOS .\"O .BR dladdr (), .\"O even if the function used as an argument should come from .\"O a dynamically linked library. -»þ¤È¤·¤Æ¡¢ +時として、 .BR dladdr () -¤ËÅϤ·¤¿´Ø¿ô¥Ý¥¤¥ó¥¿¤Ï¶Ã¤¯¤è¤¦¤ÊÃͤˤʤ뤳¤È¤¬¤¢¤ë¡£ -¤¤¤¯¤Ä¤«¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã (ÆÃ¤Ë i386 ¤È x86_64) ¤Ç¤Ï¡¢ -°ú¤­¿ô¤È¤·¤Æ»ÈÍѤ·¤¿´Ø¿ô¤¬Æ°Åª¥ê¥ó¥¯¥é¥¤¥Ö¥é¥ê¤ÇÄêµÁ¤µ¤ì¤ë¤â¤Î¤Ç -¤¢¤Ã¤¿¤È¤·¤Æ¤â¡¢ +に渡した関数ポインタは驚くような値になることがある。 +いくつかのアーキテクチャ (特に i386 と x86_64) では、 +引き数として使用した関数が動的リンクライブラリで定義されるもので +あったとしても、 .I dli_fname -¤È +と .I dli_fbase -¤¬ +が .BR dladdr () -¤ò¸Æ¤Ó½Ð¤·¤¿¥ª¥Ö¥¸¥§¥¯¥È¤ò»²¾È¤·¤¿¾õÂ֤ǽª¤ï¤Ã¤Æ¤¤¤ë¤³¤È¤¬¤¢¤ë¡£ +を呼び出したオブジェクトを参照した状態で終わっていることがある。 .PP .\"O The problem is that the function pointer will still be resolved .\"O at compile time, but merely point to the @@ -784,29 +784,29 @@ SunOS .\"O .I got .\"O (Global Offset Table) at run time before passing it to .\"O .BR dladdr (). -.\"O motoki: ³ç¸ÌÆâ (which dispatches ¡Á) ¤ÎÉôʬ¤ÎÌõ¤Ë¼«¿®¤Ê¤·¡£ -.\"O which ¤Î¼ç¸ì¤Ï original object ¤Ç¤¤¤¤¤Î¤«? -ÌäÂê¤Ï¡¢´Ø¿ô¥Ý¥¤¥ó¥¿¤Î²ò·è¤Ïº£¤Ê¤ª¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¹Ô¤ï¤ì¤ë¤¬¡¢ -¤½¤Î¥Ý¥¤¥ó¥¿¤Ï¸µ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î +.\"O motoki: 括弧内 (which dispatches 〜) の部分の訳に自信なし。 +.\"O which の主語は original object でいいのか? +問題は、関数ポインタの解決は今なおコンパイル時に行われるが、 +そのポインタは元のオブジェクトの .I plt -(Procedure Linkage Table) ¥»¥¯¥·¥ç¥ó¤ò»Ø¤·¤Æ¤¤¤ë¤À¤±¤À¤È¤¤¤¦ÅÀ¤Ë¤¢¤ë -(¥ª¥Ö¥¸¥§¥¯¥È¼«ÂΤϡ¢¥À¥¤¥Ê¥ß¥Ã¥¯¥ê¥ó¥«¤Ë¤è¤Ã¤Æ¥·¥ó¥Ü¥ë¤Î²ò·è¤¬¹Ô¤ï¤ì¤¿¸å¤Ë¡¢ -´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤ò¹Ô¤¦)¡£ -¤³¤ì¤ËÂн褹¤ëÊýË¡¤È¤·¤Æ¤Ï¡¢ -¥³¡¼¥É¤ò position-independent ¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤¤¤¦ÊýË¡¤¬¤¢¤ë¡£ -¤½¤¦¤¹¤ë¤È¡¢¥³¥ó¥Ñ¥¤¥é¤Ï¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¥Ý¥¤¥ó¥¿¤òÍÑ°Õ¤¹¤ë¤³¤È¤¬¤Ç¤­¤º¡¢ -º£Æü¤Î +(Procedure Linkage Table) セクションを指しているだけだという点にある +(オブジェクト自体は、ダイナミックリンカによってシンボルの解決が行われた後に、 +関数の呼び出しを行う)。 +これに対処する方法としては、 +コードを position-independent でコンパイルするという方法がある。 +そうすると、コンパイラはコンパイル時にポインタを用意することができず、 +今日の .BR gcc (1) -¤Ç¤Ï¡¢¼Â¹Ô»þ¤Ë +では、実行時に .BR dladdr () -¤Ë´Ø¿ô¥Ý¥¤¥ó¥¿¤òÅϤ¹Á°¤Ë¡¢ +に関数ポインタを渡す前に、 .I got -(Global Offset Table) ¤«¤éºÇ½ªÅª¤Ê¥·¥ó¥Ü¥ë¤Î¥¢¥É¥ì¥¹¤ò¥í¡¼¥É¤¹¤ë¤À¤±¤Î -¥³¡¼¥É¤¬À¸À®¤µ¤ì¤ë¡£ +(Global Offset Table) から最終的なシンボルのアドレスをロードするだけの +コードが生成される。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O Load the math library, and print the cosine of 2.0: -math ¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤·¡¢2.0 ¤Î;¸¹¤òɽ¼¨¤¹¤ë +math ライブラリをロードし、2.0 の余弦を表示する .nf #include @@ -851,8 +851,8 @@ main(int argc, char **argv) .PP .\"O If this program were in a file named "foo.c", you would build the program .\"O with the following command: -¤³¤Î¥×¥í¥°¥é¥à¤ò "foo.c" ¤Ë½ñ¤¤¤¿¤È¤¹¤ë¤È¡¢°Ê²¼¤Î¥³¥Þ¥ó¥É¤Ç¥×¥í¥°¥é¥à¤ò -¥Ó¥ë¥É¤Ç¤­¤ë¡£ +このプログラムを "foo.c" に書いたとすると、以下のコマンドでプログラムを +ビルドできる。 .in +4n .LP gcc \-rdynamic \-o foo foo.c \-ldl @@ -865,17 +865,17 @@ main(int argc, char **argv) .\"O will want to be compiled as .\"O follows, using \fIbar.c\fP as the example name: .BR _init () -¤È +と .BR _fini () -¤ò¥¨¥¯¥¹¥Ý¡¼¥È¤¹¤ë¥é¥¤¥Ö¥é¥ê¤Î¾ì¹ç¤Ï -°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ëɬÍפ¬¤¢¤ë¡£ -Îã¤È¤·¤Æ \fIbar.c\fP ¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¾ì¹ç: +をエクスポートするライブラリの場合は +以下のようにしてコンパイルする必要がある。 +例として \fIbar.c\fP をコンパイルする場合: .in +4n .LP gcc \-shared \-nostartfiles \-o bar bar.c .in .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ld (1), .BR ldd (1), .BR dl_iterate_phdr (3), diff --git a/draft/man3/dprintf.3 b/draft/man3/dprintf.3 index c3b485f2..1223f39f 100644 --- a/draft/man3/dprintf.3 +++ b/draft/man3/dprintf.3 @@ -27,11 +27,11 @@ .\" .TH DPRINTF 3 2010-09-15 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O dprintf, vdprintf \- print to a file descriptor -dprintf, vdprintf \- ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ëʸ»ú½ÐÎϤ¹¤ë +dprintf, vdprintf \- ファイルディスクリプターに文字出力する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int dprintf(int " fd ", const char *" format ", ...);" @@ -41,9 +41,9 @@ dprintf, vdprintf \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR dprintf (), @@ -53,17 +53,17 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The functions .\"O .BR dprintf () .\"O and @@ -77,28 +77,28 @@ _GNU_SOURCE .\"O instead of to a .\"O .I stdio .\"O stream. -(glibc2 ¥é¥¤¥Ö¥é¥ê¤Ë¤ª¤±¤ë) +(glibc2 ライブラリにおける) .BR dprintf () -´Ø¿ô¤È +関数と .BR vdprintf () -´Ø¿ô¤È¤Ï¡¢¤½¤ì¤¾¤ì +関数とは、それぞれ .BR fprintf (3) -´Ø¿ô¤È +関数と .BR vfprintf (3) -´Ø¿ô¤È¤Ë¤Á¤ç¤¦¤ÉÂбþ¤¹¤ë¤¬¡¢ -¤³¤ì¤é¤Ï +関数とにちょうど対応するが、 +これらは .I stdio -¥¹¥È¥ê¡¼¥à¤Ç¤Ï¤Ê¤¯¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ +ストリームではなくファイルディスクリプター .I fd -¤ËÂФ·¤Æ½ÐÎϤò¹Ô¤¦¡£ +に対して出力を行う。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These functions are GNU extensions that are nowadays specified in .\"O POSIX.1-2008. -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ê¡¢ -¸½ºß¤Ç¤Ï POSIX.1-2008 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +これらの関数は GNU による拡張であり、 +現在では POSIX.1-2008 で規定されている。 .\"O .\" .SH NOTES -.\" .SH Ãí°Õ +.\" .SH 注意 .\"O .\" These functions are GNU extensions, not in C or POSIX. .\"O .\" Clearly, the names were badly chosen. .\"O .\" Many systems (like MacOS) have incompatible functions called @@ -111,21 +111,21 @@ _GNU_SOURCE .\"O .\" .\"O .\" where the first parameter is a debugging level (and output is to .\"O .\" .IR stderr ). -.\" ¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ¤Î³ÈÄ¥¤Ç¤¢¤ê¡¢C ¤ä POSIX ¤Î¤â¤Î¤Ç¤Ï¤Ê¤¤¡£ -.\" ¸«¤Æ¤ï¤«¤ë¤È¤ª¤ê¡¢Ì¾Á°¤ÎÉÕ¤±Êý¤Ï¤¢¤Þ¤êÎɤ¯¤Ê¤¤¡£ -.\" ¿¤¯¤Î¥·¥¹¥Æ¥à (MacOS ¤Ê¤É) ¤Ë¤Ï¡¢ +.\" これらの関数は GNU の拡張であり、C や POSIX のものではない。 +.\" 見てわかるとおり、名前の付け方はあまり良くない。 +.\" 多くのシステム (MacOS など) には、 .\" .BR dprintf () -.\" ¤È¤¤¤¦Ì¾Á°¤Î¡¢¤³¤ì¤È¤Ï¸ß´¹¤Ç¤Ê¤¤´Ø¿ô¤¬¤¢¤ê¡¢ -.\" ¤¿¤¤¤Æ¤¤¤Ï¤Ê¤ó¤é¤«¤Î¥Ç¥Ð¥Ã¥°ÍѤΠ+.\" という名前の、これとは互換でない関数があり、 +.\" たいていはなんらかのデバッグ用の .\" .BR printf (3) -.\" ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¥×¥í¥È¥¿¥¤¥×¤Ï +.\" になっている。プロトタイプは .\" .\" .BI "void dprintf(int level, const char *" format ", ...);" .\" -.\" ¤Ç¡¢ºÇ½é¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¥Ç¥Ð¥Ã¥°¥ì¥Ù¥ë¤Ë¤Ê¤Ã¤Æ¤¤¤ë -.\" (¤Þ¤¿½ÐÎÏ¤Ï +.\" で、最初のパラメータはデバッグレベルになっている +.\" (また出力は .\" .I stderr -.\" ¤Ë¹Ô¤ï¤ì¤ë)¡£ +.\" に行われる)。 .\"O .\" Moreover, .\"O .\" .BR dprintf () .\"O .\" (or @@ -136,17 +136,17 @@ _GNU_SOURCE .\"O .\" .\"O .\" A better name would have been .\"O .\" .BR fdprintf (). -.\" ¤µ¤é¤Ë¡¢ +.\" さらに、 .\" .BR dprintf () -.\" (¤¢¤ë¤¤¤Ï +.\" (あるいは .\" .BR DPRINTF ) -.\" ¤Ï¥Ç¥Ð¥Ã¥°½èÍýÍѤΠprintf ¤Î¥Þ¥¯¥í¤È¤·¤Æ¤âÎɤ¯ÍѤ¤¤é¤ì¤ë¡£ -.\" ¤·¤¿¤¬¤Ã¤Æ¶²¤é¤¯¡¢°Ü¿¢À­¤òɬÍפȤ¹¤ë¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ -.\" ¤³¤Î´Ø¿ô¤ÏÍѤ¤¤Ê¤¤¤Û¤¦¤¬Îɤ¤¤À¤í¤¦¡£ +.\" はデバッグ処理用の printf のマクロとしても良く用いられる。 +.\" したがって恐らく、移植性を必要とするプログラムでは、 +.\" この関数は用いないほうが良いだろう。 .\" -.\" ¤è¤êÎɤ¤Ì¾Á°¤Ï +.\" より良い名前は .\" .BR fdprintf () -.\" ¤À¤Ã¤¿¤«¤È»×¤ï¤ì¤ë¡£ +.\" だったかと思われる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR printf (3) diff --git a/draft/man3/drand48.3 b/draft/man3/drand48.3 index 2fbe0268..ac7bdcea 100644 --- a/draft/man3/drand48.3 +++ b/draft/man3/drand48.3 @@ -31,17 +31,17 @@ .\" Translated Mon Jan 20 20:04:05 JST 1997 .\" by YOSHINO Takashi .\" -.\" WORD: internal buffer ÆâÉô¥Ð¥Ã¥Õ¥¡ +.\" WORD: internal buffer 内部バッファ .\" .TH DRAND48 3 2007-07-26 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O drand48, erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48, .\"O lcong48 \- generate uniformly distributed pseudo-random numbers drand48, erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48, -lcong48 \- °ìÍÍʬÉÛ¤¹¤ëµ¿»÷Íð¿ô¤òÀ¸À®¤¹¤ë´Ø¿ô +lcong48 \- 一様分布する疑似乱数を生成する関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -67,14 +67,14 @@ lcong48 \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l .\"O All functions shown above: -¾åµ­¤ÎÁ´¤Æ¤Î´Ø¿ô: +上記の全ての関数: .\" .BR drand48 (), .\" .BR erand48 (), .\" .BR lrand48 (), @@ -87,11 +87,11 @@ glibc _SVID_SOURCE || _XOPEN_SOURCE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions generate pseudo-random numbers using the linear congruential .\"O algorithm and 48-bit integer arithmetic. -¤³¤ì¤é¤Î´Ø¿ô¤ÏÀþ·Á¹çƱ¥¢¥ë¥´¥ê¥º¥à¤È 48¥Ó¥Ã¥ÈÀ°¿ô±é»»¤òÍѤ¤¤Æ -µ¿»÷Íð¿ô¤òÀ¸À®¤¹¤ë¡£ +これらの関数は線形合同アルゴリズムと 48ビット整数演算を用いて +疑似乱数を生成する。 .PP .\"O The .\"O .BR drand48 () @@ -100,12 +100,12 @@ _SVID_SOURCE || _XOPEN_SOURCE .\"O functions return nonnegative .\"O double-precision floating-point values uniformly distributed between .\"O [0.0, 1.0). -´Ø¿ô +関数 .BR drand48 () -¤È +と .BR erand48 () -¤Ï¡¢¶è´Ö [0.0, 1.0) ¤Ç -°ìÍÍʬÉÛ¤¹¤ëÈóÉé¤ÎÇÜÀºÅÙÉâÆ°¾®¿ôÅÀ¼Â¿ôÃͤòÊÖ¤¹¡£ +は、区間 [0.0, 1.0) で +一様分布する非負の倍精度浮動小数点実数値を返す。 .PP .\"O The .\"O .BR lrand48 () @@ -113,12 +113,12 @@ _SVID_SOURCE || _XOPEN_SOURCE .\"O .BR nrand48 () .\"O functions return nonnegative .\"O long integers uniformly distributed between 0 and 2^31. -´Ø¿ô +関数 .BR lrand48 () -¤È +と .BR nrand48 () -¤Ï 0 ¤È 2^31 ¤Î´Ö¤Ç°ìÍÍʬÉÛ¤¹¤ë -ÈóÉé¤Î¥í¥ó¥°À°¿ô¤òÊÖ¤¹¡£ +は 0 と 2^31 の間で一様分布する +非負のロング整数を返す。 .PP .\"O The .\"O .BR mrand48 () @@ -126,12 +126,12 @@ _SVID_SOURCE || _XOPEN_SOURCE .\"O .BR jrand48 () .\"O functions return signed long .\"O integers uniformly distributed between \-2^31 and 2^31. -´Ø¿ô +関数 .BR mrand48 () -¤È +と .BR jrand48 () -¤Ï -\-2^31 ¤È 2^31 ¤Î´Ö¤Ç°ìÍÍʬÉÛ¤¹¤ëÉä¹æÉÕ¤­¥í¥ó¥°À°¿ô¤òÊÖ¤¹¡£ +は +\-2^31 と 2^31 の間で一様分布する符号付きロング整数を返す。 .PP .\"O The .\"O .BR srand48 (), @@ -151,30 +151,30 @@ _SVID_SOURCE || _XOPEN_SOURCE .\"O .BR jrand48 () .\"O do not require .\"O an initialization function to be called first. -´Ø¿ô +関数 .BR srand48 (), .BR seed48 (), .BR lcong48 () -¤Ï½é´ü²½´Ø¿ô -¤Ç¤¢¤ë¡£ -´Ø¿ô +は初期化関数 +である。 +関数 .BR drand48 (), .BR lrand48 (), .BR mrand48 () -¤ò -»ÈÍѤ¹¤ëÁ°¤Ë¡¢¤³¤ì¤é¤Î½é´ü²½´Ø¿ô¤Î¤¤¤º¤ì¤«¤ò¸Æ¤Ö¤Ù¤­¤Ç¤¢¤ë¡£ -´Ø¿ô +を +使用する前に、これらの初期化関数のいずれかを呼ぶべきである。 +関数 .BR erand48 (), .BR nrand48 (), .BR jrand48 () -¤Ï½é¤á¤Ë -½é´ü²½´Ø¿ô¤ò¸Æ¤Ö¤³¤È¤òɬÍפȤ·¤Ê¤¤¡£ +は初めに +初期化関数を呼ぶことを必要としない。 .PP .\"O All the functions work by generating a sequence of 48-bit integers, .\"O \fIXi\fP, according to the linear congruential formula: -¤³¤³¤ÇÀâÌÀ¤·¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î´Ø¿ô¤Ï 48¥Ó¥Ã¥È¤ÎÀ°¿ô¤Î -¥·¡¼¥±¥ó¥¹ (\fIXi\fP) ¤òÀ¸À®¤¹¤ë¤³¤È¤Ç -µ¡Ç½¤·¤Æ¤¤¤ë¡£À¸À®ÊýË¡¤Ï°Ê²¼¤ÎÀþ·Á¹çƱ¤Î¼°¤Ë¤è¤ë¡£ +ここで説明しているすべての関数は 48ビットの整数の +シーケンス (\fIXi\fP) を生成することで +機能している。生成方法は以下の線形合同の式による。 .sp .nf .RS @@ -186,10 +186,10 @@ _SVID_SOURCE || _XOPEN_SOURCE .\"O Unless .\"O .BR lcong48 () .\"O is called, \fIa\fP and \fIc\fP are given by: -¤³¤³¤Ç n >= 0 ¤Ç¤¢¤ë¡£ -¥Ñ¥é¥á¡¼¥¿¤¬ \fIm\fP = 2^48 ¤Ç¤¢¤ë¤¿¤á¡¢48¥Ó¥Ã¥ÈÀ°¿ô±é»»¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë¡£ +ここで n >= 0 である。 +パラメータが \fIm\fP = 2^48 であるため、48ビット整数演算が行われている。 .BR lcong48 () -¤¬¸Æ¤Ð¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢\fIa\fP ¤È \fIc\fP ¤Ï°Ê²¼¤Î¼°¤ÇÍ¿¤¨¤é¤ì¤ë¡£ +が呼ばれていない場合、\fIa\fP と \fIc\fP は以下の式で与えられる。 .sp .nf .RS @@ -211,18 +211,18 @@ _SVID_SOURCE || _XOPEN_SOURCE .\"O Then the appropriate number of bits, according to the type of data item to .\"O be returned, is copied from the high-order bits of \fIXi\fP and transformed .\"O into the returned value. -´Ø¿ô +関数 .BR drand48 (), .BR erand48 (), .BR lrand48 (), .BR nrand48 (), .BR mrand48 (), .BR jrand48 () -¤ÇÊÖ¤µ¤ì¤ëÃͤϼ¡¤Î¤è¤¦¤Ë¤·¤Æ·×»»¤µ¤ì¤ë¡£ -¤Ï¤¸¤á¤Ë¡¢¼¡¤Î48¥Ó¥Ã¥È¤Î \fIXi\fP ¤¬·×»»¤µ¤ì¤ë¡£ -¤½¤·¤Æ¡¢ÊÖ¤¹¤Ù¤­¥Ç¡¼¥¿¤Î·¿¤Ë°Í¸¤·¤¿Å¬ÀÚ¤Ê -¥Ó¥Ã¥È¿ô¤¬ \fIXi\fP ¤Î¾å°Ì¥Ó¥Ã¥È¤«¤é¥³¥Ô¡¼¤µ¤ì¤ë¡£ -ºÇ¸å¤Ë¡¢¤³¤ÎÃͤòÊÖ¤êÃͤËÊÑ´¹¤¹¤ë¡£ +で返される値は次のようにして計算される。 +はじめに、次の48ビットの \fIXi\fP が計算される。 +そして、返すべきデータの型に依存した適切な +ビット数が \fIXi\fP の上位ビットからコピーされる。 +最後に、この値を返り値に変換する。 .PP .\"O The functions .\"O .BR drand48 (), @@ -242,22 +242,22 @@ _SVID_SOURCE || _XOPEN_SOURCE .\"O The functions are initialized by placing the initial .\"O value of \fIXi\fP into the array before calling the function for the first .\"O time. -´Ø¿ô +関数 .BR drand48 (), .BR lrand48 (), .BR mrand48 () -¤Ï -ºÇ¸å¤ËÀ¸À®¤µ¤ì¤¿48¥Ó¥Ã¥È¤Î \fIXi\fP ¤òÆâÉô¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤¹¤ë¡£ -ÇÛÎó¤Î·Á¤Î°ú¿ô \fIxsubi\fP ¤Ë¸Ä¡¹¤Î \fIXi\fP ¤ÎÃͤò -³ÊǼ¤Ç¤­¤ë¤è¤¦¤ÊÎΰè¤ò³ÎÊݤ¹¤ë¤³¤È¤ò¡¢ -´Ø¿ô +は +最後に生成された48ビットの \fIXi\fP を内部バッファに格納する。 +配列の形の引数 \fIxsubi\fP に個々の \fIXi\fP の値を +格納できるような領域を確保することを、 +関数 .BR erand48 (), .BR nrand48 (), .BR jrand48 () -¤Ï¡¢ -¸Æ¤Ó½Ð¤·Â¦¤Î¥×¥í¥°¥é¥à¤ËÍ׵᤹¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¤Ï¤¸¤á¤Æ¤½¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤ÖÁ°¤Ë \fIXi\fP ¤Î½é´üÃͤòÇÛÎó¤Ë -ÂåÆþ¤¹¤ë¤³¤È¤Ç½é´ü²½¤µ¤ì¤ë¡£ +は、 +呼び出し側のプログラムに要求する。 +これらの関数は、はじめてそれらの関数を呼ぶ前に \fIXi\fP の初期値を配列に +代入することで初期化される。 .PP .\"O The initializer function .\"O .BR srand48 () @@ -265,11 +265,11 @@ _SVID_SOURCE || _XOPEN_SOURCE .\"O \fIXi\fP to the argument \fIseedval\fP. .\"O The low order 16-bits are set .\"O to the arbitrary value 0x330E. -½é´ü²½´Ø¿ô +初期化関数 .BR srand48 () -¤Ï¡¢\fIXi\fP ¤Î -¾å°Ì32¥Ó¥Ã¥È¤ò°ú¿ô \fIseedval\fP ¤ËÀßÄꤹ¤ë¡£ -²¼°Ì¤Î16¥Ó¥Ã¥È¤Ï¡¢Å¬Åö¤Ë·è¤á¤é¤ì¤¿ÃͤǤ¢¤ë0x330E¤ËÀßÄꤵ¤ì¤ë¡£ +は、\fIXi\fP の +上位32ビットを引数 \fIseedval\fP に設定する。 +下位の16ビットは、適当に決められた値である0x330Eに設定される。 .PP .\"O The initializer function .\"O .BR seed48 () @@ -279,13 +279,13 @@ _SVID_SOURCE || _XOPEN_SOURCE .\"O previous value of \fIXi\fP is copied into an internal buffer and a .\"O pointer to this buffer is returned by .\"O .BR seed48 (). -½é´ü²½´Ø¿ô +初期化関数 .BR seed48 () -¤Ï¡¢\fIXi\fP ¤ÎÃͤò¡¢ -ÇÛÎó¤Î·Á¤ò¤·¤¿°ú¿ô¤Ç¤¢¤ë \fIseed16v\fP ¤ÎÃæ¤Ç»ØÄꤵ¤ì¤¿ 48¥Ó¥Ã¥È¤ÎÃͤËÀßÄꤹ¤ë¡£ -\fIXi\fP ¤ÎÁ°¤ÎÃͤÏÆâÉô¥Ð¥Ã¥Õ¥¡¤Ë¥³¥Ô¡¼¤µ¤ì¡¢¤³¤Î¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬ +は、\fIXi\fP の値を、 +配列の形をした引数である \fIseed16v\fP の中で指定された 48ビットの値に設定する。 +\fIXi\fP の前の値は内部バッファにコピーされ、このバッファへのポインタが .BR seed48 () -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë¡£ +によって返される。 .PP .\"O The initialization function .\"O .BR lcong48 () @@ -301,32 +301,32 @@ _SVID_SOURCE || _XOPEN_SOURCE .\"O or .\"O .BR seed48 () .\"O will restore the standard values of \fIa\fP and \fIc\fP. -½é´ü²½´Ø¿ô +初期化関数 .BR lcong48 () -¤Ï»ÈÍѼԤ¬ \fIXi\fP, \fIa\fP, \fIc\fP ¤Î -½é´üÃͤò»ØÄꤹ¤ë¤¿¤á¤Î´Ø¿ô¤Ç¤¢¤ë¡£ -ÇÛÎó¤Î·Á¤ò¤·¤¿°ú¿ô¤ÎÍ×ÁǤϤ½¤ì¤¾¤ì¡¢\fIparam[0-2]\fP ¤Ï \fIXi\fP ¤ò¡¢ -\fIparam[3-5]\fP ¤Ï \fIa\fP ¤ò¡¢\fIparam[6]\fP ¤Ï \fIc\fP ¤ò»ØÄꤹ¤ë¤â¤Î -¤Ç¤¢¤ë¡£ +は使用者が \fIXi\fP, \fIa\fP, \fIc\fP の +初期値を指定するための関数である。 +配列の形をした引数の要素はそれぞれ、\fIparam[0-2]\fP は \fIXi\fP を、 +\fIparam[3-5]\fP は \fIa\fP を、\fIparam[6]\fP は \fIc\fP を指定するもの +である。 .BR lcong48 () -¤¬¸Æ¤Ð¤ì¤¿¸å¤Ç¡¢ +が呼ばれた後で、 .BR srand48 () -¤« +か .BR seed48 () -¤ò¸Æ¤Ö¤È¡¢Á°½Ò¤Î \fIa\fP ¤È \fIc\fP ¤Î -ɸ½àÃͤ¬ºÆ¤ÓÀßÄꤵ¤ì¤ë¡£ -.SH ½àµò +を呼ぶと、前述の \fIa\fP と \fIc\fP の +標準値が再び設定される。 +.SH 準拠 SVr4, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O These functions are declared obsolete by SVID 3, which states that .\"O .BR rand (3) .\"O should be used instead. -SVID 3 ¤Ç¤Ï¤³¤ì¤é¤Î´Ø¿ô¤Ï»þÂåÃÙ¤ì¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤ë¡£ -SVID 3 ¤Ç¤Ï +SVID 3 ではこれらの関数は時代遅れと宣言されている。 +SVID 3 では .BR rand (3) -¤¬Âå¤ï¤ê¤Ë»ÈÍѤµ¤ì¤ë¤Ù¤­¤À¤Èµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +が代わりに使用されるべきだと記述されている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR rand (3), .BR random (3) diff --git a/draft/man3/drand48_r.3 b/draft/man3/drand48_r.3 index 9009a0e9..0abda65d 100644 --- a/draft/man3/drand48_r.3 +++ b/draft/man3/drand48_r.3 @@ -29,13 +29,13 @@ .\" .TH DRAND48_R 3 2007-07-26 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O drand48_r, erand48_r, lrand48_r, nrand48_r, mrand48_r, jrand48_r, .\"O srand48_r, seed48_r, lcong48_r .\"O \- generate uniformly distributed pseudo-random numbers reentrantly -drand48_r, erand48_r, lrand48_r, nrand48_r, mrand48_r, jrand48_r, srand48_r, seed48_r, lcong48_r \- °ìÍÍʬÉÛ¤¹¤ëµ¿»÷Íð¿ô¤ò¥ê¥¨¥ó¥È¥é¥ó¥È (reentrant) ¤ËÀ¸À®¤¹¤ë +drand48_r, erand48_r, lrand48_r, nrand48_r, mrand48_r, jrand48_r, srand48_r, seed48_r, lcong48_r \- 一様分布する疑似乱数をリエントラント (reentrant) に生成する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -71,14 +71,14 @@ drand48_r, erand48_r, lrand48_r, nrand48_r, mrand48_r, jrand48_r, srand48_r, see .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l .\"O All functions shown above: -¾åµ­¤ÎÁ´¤Æ¤Î´Ø¿ô: +上記の全ての関数: .\" .BR drand48_r (), .\" .BR erand48_r (), .\" .BR lrand48_r (), @@ -91,19 +91,19 @@ glibc _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions are the reentrant analogs of the functions described in .\"O .BR drand48 (3). .\"O Instead of modifying the global random generator state, they use .\"O the supplied data .\"O .IR buffer . -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .BR drand48 (3) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤ËÎà»÷¤¹¤ë¥ê¥¨¥ó¥È¥é¥ó¥È¤Ê´Ø¿ô¤Ç¤¢¤ë¡£ -Âç°èŪ¤ÊÍð¿ôÀ¸À®¤Î¾õÂÖ¤òÊѹ¹¤¹¤ëÂå¤ï¤ê¤Ë¡¢ -¤³¤ì¤é¤Î´Ø¿ô¤Ï»ØÄꤵ¤ì¤¿¥Ç¡¼¥¿ +で説明されている関数に類似するリエントラントな関数である。 +大域的な乱数生成の状態を変更する代わりに、 +これらの関数は指定されたデータ .I buffer -¤ò»È¤¦¡£ +を使う。 .\"O Before the first use, this struct must be initialized, for example, .\"O by filling it with zeros, or by calling one of the functions @@ -111,22 +111,22 @@ _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE .\"O .BR seed48_r (), .\"O or .\"O .BR lcong48_r (). -ºÇ½é¤Ë»È¤¦Á°¤Ë¡¢¤³¤Î¹½Â¤ÂΤϽé´ü²½¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -½é´ü²½¤Ï¡¢¤¿¤È¤¨¤Ð 0 ¤ÇËä¤á¤¿¤ê¡¢´Ø¿ô +最初に使う前に、この構造体は初期化されていなければならない。 +初期化は、たとえば 0 で埋めたり、関数 .BR srand48_r (), .BR seed48_r (), .BR lcong48_r () -¤Î¤¤¤º¤ì¤«¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ë¤è¤Ã¤Æ¹Ô¤ï¤ì¤ë¡£ +のいずれかを呼び出すことによって行われる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The return value is 0. -ÊÖ¤êÃÍ¤Ï 0 ¤Ç¤¢¤ë¡£ +返り値は 0 である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These functions are GNU extensions and are not portable. -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ê¡¢°Ü¿¢À­¤Ï¤Ê¤¤¡£ +これらの関数は GNU による拡張であり、移植性はない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR drand48 (3), .BR rand (3), .BR random (3) diff --git a/draft/man3/dysize.3 b/draft/man3/dysize.3 index 98fad9f8..1eb7e8f0 100644 --- a/draft/man3/dysize.3 +++ b/draft/man3/dysize.3 @@ -28,10 +28,10 @@ .TH DYSIZE 3 2010-09-22 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O dysize \- get number of days for a given year -.SH ̾Á° -dysize \- Í¿¤¨¤¿Ç¯¤ÎÆü¿ô¤òÊÖ¤¹ +.SH 名前 +dysize \- 与えた年の日数を返す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B "#include " .sp .BI "int dysize(int " year ); @@ -39,19 +39,19 @@ dysize \- Í¿ .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR dysize (): _BSD_SOURCE || _SVID_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The function returns 365 for a normal year and 366 for a leap year. .\"O The calculation for leap year is based on: -¤³¤Î´Ø¿ô¤ÏÄ̾ï¤Îǯ¤Ë¤Ï 365 ¤òÊÖ¤·¡¢¤¦¤ë¤¦Ç¯¤Ë¤Ï 366 ¤òÊÖ¤¹¡£ -¤¦¤ë¤¦Ç¯¤Î·×»»¤Ï¼¡¤Î¼°¤Ë¤è¤ë: +この関数は通常の年には 365 を返し、うるう年には 366 を返す。 +うるう年の計算は次の式による: .sp (year) %4 == 0 && ((year) %100 != 0 || (year) %400 == 0) .sp @@ -59,22 +59,22 @@ _BSD_SOURCE || _SVID_SOURCE .\"O .I __isleap(year) .\"O also found in .\"O .IR . -¤³¤Î¼°¤Ï +この式は .I __isleap(year) -¥Þ¥¯¥í¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ +マクロで定義されており、 .I -¤Ë¤â¤¢¤ë¡£ +にもある。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This function occurs in SunOS 4.x. -¤³¤Î´Ø¿ô¤Ï SunOS 4.x ¤ÇÀ¸¤Þ¤ì¤¿¡£ +この関数は SunOS 4.x で生まれた。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O This is a compatibility function only. .\"O Don't use it in new programs. .\"O .\" The SCO version of this function had a year-2000 problem. -¤³¤ì¤Ï¸ß´¹ÍѤδؿô¤Ë²á¤®¤Ê¤¤¡£¿·¤·¤¤¥×¥í¥°¥é¥à¤Ç¤Ï»È¤ï¤Ê¤¤¤³¤È¡£ -.\" ¤³¤Î´Ø¿ô¤Î SCO ÈÇ¤Ë¤Ï 2000 ǯÌäÂ꤬´Þ¤Þ¤ì¤Æ¤¤¤¿¡£ +これは互換用の関数に過ぎない。新しいプログラムでは使わないこと。 +.\" この関数の SCO 版には 2000 年問題が含まれていた。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strftime (3) diff --git a/draft/man3/ecvt.3 b/draft/man3/ecvt.3 index 1e43ede9..e9072f47 100644 --- a/draft/man3/ecvt.3 +++ b/draft/man3/ecvt.3 @@ -35,11 +35,11 @@ .\" .TH ECVT 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O ecvt, fcvt \- convert a floating-point number to a string -ecvt, fcvt \- ÉâÆ°¾®¿ôÅÀ¿ô¤Îʸ»úÎó¤Ø¤ÎÊÑ´¹ +ecvt, fcvt \- 浮動小数点数の文字列への変換 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "char *ecvt(double " number ", int " ndigits ", int *" decpt , @@ -51,9 +51,9 @@ ecvt, fcvt \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR ecvt (), @@ -63,7 +63,7 @@ glibc .PD 0 .TP 4 .\"O Since glibc 2.12: -glibc 2.12 °Ê¹ß: +glibc 2.12 以降: .nf _SVID_SOURCE || (_XOPEN_SOURCE\ >=\ 500 || @@ -72,14 +72,14 @@ _SVID_SOURCE || .fi .TP 4 .\"O Before glibc 2.12: -glibc 2.12 ¤è¤êÁ°: +glibc 2.12 より前: _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .PD .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR ecvt () .\"O function converts \fInumber\fP to a null-terminated @@ -91,17 +91,17 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O .I number .\"O is zero. .\"O The low order digit is rounded. -´Ø¿ô +関数 .BR ecvt () -¤Ï \fInumber\fP ¤ò NUL ʸ»ú¤Ç½ªÃ¼¤µ¤ì¤¿ -\fIndigits\fP ʸ»ú¤Îʸ»úÎó¤ØÊÑ´¹¤·¡¢¤½¤Îʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹ -(\fIndigits\fP ¤¬ +は \fInumber\fP を NUL 文字で終端された +\fIndigits\fP 文字の文字列へ変換し、その文字列へのポインタを返す +(\fIndigits\fP が .I double -¤ÎÀºÅ٤ˤè¤Ã¤Æ·èÄꤵ¤ì¤ë¥·¥¹¥Æ¥à°Í¸¤Î¾å¸ÂÃͤè¤êÂ礭¤¤¾ì¹ç¤Ï¡¢ -¤½¤Î¾ò·ïÃͤ¬ \fIndigits\fP ¤ÎÃͤȤʤë)¡£ +の精度によって決定されるシステム依存の上限値より大きい場合は、 +その条件値が \fIndigits\fP の値となる)。 .I number -¤¬ 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢ºÇ¾å°Ì¤Î·å¤Ï 0 °Ê³°¤Ç¤¢¤ë¡£ -ºÇ²¼°Ì¤Î·å¤Ï´Ý¤á¤é¤ì¤ë¡£ +が 0 でなければ、最上位の桁は 0 以外である。 +最下位の桁は丸められる。 .\"O The string itself does not contain a decimal point; however, .\"O the position of the decimal point relative to the start of the string .\"O is stored in \fI*decpt\fP. @@ -113,13 +113,13 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O If .\"O .I number .\"O is zero, it is unspecified whether \fI*decpt\fP is 0 or 1. -ʸ»úÎó¤Ë¤Ï¾®¿ôÅÀ¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£¤½¤Î¤«¤ï¤ê¤Ë¡¢Ê¸»úÎó¤ÎÀèƬ¤«¤é¤Î¾®¿ôÅÀ¤Î -°ÌÃÖ¤¬ \fI*decpt\fP ¤ËÊÝ»ý¤µ¤ì¤ë¡£ -\fI*decpt\fP ¤¬Éé¤ÎÃͤξì¹ç¡¢¾®¿ôÅÀ¤¬Ê¸»úÎó¤ÎÀèƬ¤Îº¸Â¦¤Ë¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -¤â¤·(\fInumber\fP¤Î)Éä¹æ¤¬Éé¤Ê¤é¤Ð \fI*sign\fP ¤Ï 0 °Ê³°¤ÎÃͤˡ¢ -¤½¤¦¤Ç¤Ê¤±¤ì¤Ð 0 ¤ËÀßÄꤵ¤ì¤ë¡£ +文字列には小数点は含まれない。そのかわりに、文字列の先頭からの小数点の +位置が \fI*decpt\fP に保持される。 +\fI*decpt\fP が負の値の場合、小数点が文字列の先頭の左側にあることを意味する。 +もし(\fInumber\fPの)符号が負ならば \fI*sign\fP は 0 以外の値に、 +そうでなければ 0 に設定される。 .I number -¤¬ 0 ¤Ê¤é¡¢\fI*decpt\fP ¤¬ 0 ¤« 1 ¤«¤Ï̤µ¬Äê¤Ç¤¢¤ë¡£ +が 0 なら、\fI*decpt\fP が 0 か 1 かは未規定である。 .PP .\"O The .\"O .BR fcvt () @@ -127,40 +127,40 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O .BR ecvt (), .\"O except that .\"O \fIndigits\fP specifies the number of digits after the decimal point. -´Ø¿ô +関数 .BR fcvt () -¤Ï +は .BR ecvt () -¤ÈƱ¤¸µ¡Ç½¤ò»ý¤Ä¤¬¡¢\fIndigits\fP ¤Ï¾®¿ôÅÀ°Ê²¼¤Îʸ»ú¿ô¤ò»ØÄꤹ¤ë¡£ +と同じ機能を持つが、\fIndigits\fP は小数点以下の文字数を指定する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O Both the .\"O .BR ecvt () .\"O and .\"O .BR fcvt () .\"O functions return a pointer to a .\"O static string containing the ASCII representation of \fInumber\fP. -´Ø¿ô +関数 .BR ecvt () -¤È +と .BR fcvt () -¤Ï \fInumber\fP ¤Î ASCII ɽ¸½¤ò´Þ¤à -ÀÅŪ¤ÊÎΰèÆâ¤Îʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +は \fInumber\fP の ASCII 表現を含む +静的な領域内の文字列へのポインタを返す。 .\"O The static string is overwritten by each call to .\"O .BR ecvt () .\"O or .\"O .BR fcvt (). -¤³¤Îʸ»úÎó¤Ï +この文字列は .BR ecvt () -¤ä +や .BR fcvt () -¤Î¸Æ¤Ó½Ð¤·¤Î¤¿¤Ó¤Ë¾å½ñ¤­¤µ¤ì¤ë¡£ +の呼び出しのたびに上書きされる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O SVr2; .\"O marked as LEGACY in POSIX.1-2001. -SVr2¡£ -POSIX.1-2001 ¤Ç¤Ï¡Ö²áµî¤Î̾»Ä (LEGACY)¡×¤È°ÌÃÖÉÕ¤±¤é¤ì¤Æ¤¤¤ë¡£ +SVr2。 +POSIX.1-2001 では「過去の名残 (LEGACY)」と位置付けられている。 .\"O POSIX.1-2008 removes the specifications of .\"O .BR ecvt () .\"O and @@ -170,30 +170,30 @@ POSIX.1-2001 .\"O instead (though .\"O .BR snprintf (3) .\"O may be preferable). -POSIX.1-2008 ¤Ç¤Ï +POSIX.1-2008 では .BR ecvt () -¤È +と .BR fcvt () -¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¡¢Âå¤ï¤ê¤Ë +の仕様が削除され、代わりに .BR sprintf (3) -¤Î»ÈÍѤ¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë(¤·¤«¤· +の使用が推奨されている(しかし .BR snprintf (3) -¤¬¤è¤êŬÀÚ¤«¤â¤·¤ì¤Ê¤¤)¡£ +がより適切かもしれない)。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Linux libc4 and libc5 specified the type of .\"O .I ndigits .\"O as .\"O .IR size_t . -Linux libc4 ¤È libc5 ¤Ç¤Ï +Linux libc4 と libc5 では .I ndigits -¤Î·¿¤Ï +の型は .I size_t -¤È¤Ê¤Ã¤Æ¤¤¤¿¡£ +となっていた。 .\"O Not all locales use a point as the radix character ("decimal point"). -¾®¿ôÅÀ¤Ë¥Ô¥ê¥ª¥É¤ò»È¤ï¤Ê¤¤¥í¥±¡¼¥ë¤â¤¢¤ë¡£ +小数点にピリオドを使わないロケールもある。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ecvt_r (3), .BR gcvt (3), .BR qecvt (3), diff --git a/draft/man3/ecvt_r.3 b/draft/man3/ecvt_r.3 index 47be8f85..2514e506 100644 --- a/draft/man3/ecvt_r.3 +++ b/draft/man3/ecvt_r.3 @@ -30,15 +30,15 @@ .\" Translated Sun Sep 22 09:46:55 2002 .\" by Akihiro MOTOKI .\" -.\"WORD: obsolete Çѻߤµ¤ì¤¿ +.\"WORD: obsolete 廃止された .\" .TH ECVT_R 3 2007-07-26 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O ecvt_r, fcvt_r, qecvt_r, qfcvt_r \- convert a floating-point number to a string -ecvt_r, fcvt_r, qecvt_r, qfcvt_r \- ÉâÆ°¾®¿ôÅÀ¿ô¤Îʸ»úÎó¤Ø¤ÎÊÑ´¹ +ecvt_r, fcvt_r, qecvt_r, qfcvt_r \- 浮動小数点数の文字列への変換 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -58,9 +58,9 @@ ecvt_r, fcvt_r, qecvt_r, qfcvt_r \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -73,7 +73,7 @@ _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The functions .\"O .BR ecvt_r (), .\"O .BR fcvt_r (), @@ -95,44 +95,44 @@ _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 .\"O .BR ecvt (3) .\"O and .\"O .BR qecvt (3). -´Ø¿ô +関数 .BR ecvt_r (), .BR fcvt_r (), .BR qecvt_r (), .BR qfcvt_r () -¤Ï¡¢¤½¤ì¤¾¤ì +は、それぞれ .BR ecvt (3), .BR fcvt (3), .BR qecvt (3), .BR qfcvt (3) -¤ÈƱ¤¸¤Ç¤¢¤ë¤¬¡¢ -ÀÅŪ¥Ð¥Ã¥Õ¥¡¤ÎÂå¤ï¤ê¤Ë¡¢Ä¹¤µ +と同じであるが、 +静的バッファの代わりに、長さ .I len -¤Î»ØÄꤵ¤ì¤¿ +の指定された .I buf -¤Ë·ë²Ì¤ò³ÊǼ¤¹¤ëÅÀ¤¬°Û¤Ê¤ë¡£ +に結果を格納する点が異なる。 .BR ecvt (3), .BR qecvt (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O These functions return 0 on success, and \-1 otherwise. -¤³¤ì¤é¤Î´Ø¿ô¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤ò¡¢¤½¤ì°Ê³°¤Ï \-1 ¤òÊÖ¤¹¡£ +これらの関数は成功すると 0 を、それ以外は \-1 を返す。 .\"O .SH "CONFORMING TO" .\"O These functions are GNU extensions. -.SH ½àµò -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ +.SH 準拠 +これらの関数は GNU による拡張である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O These functions are obsolete. .\"O Instead, .\"O .BR sprintf (3) .\"O is recommended. -¤³¤ì¤é¤Î´Ø¿ô¤ÏÇѻߤµ¤ì¤¿¡£Âå¤ï¤ê¤Ë +これらの関数は廃止された。代わりに .BR sprintf (3) -¤Î»ÈÍѤò¿ä¾©¤¹¤ë¡£ +の使用を推奨する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ecvt (3), .BR qecvt (3), .BR sprintf (3) diff --git a/draft/man3/encrypt.3 b/draft/man3/encrypt.3 index b3df94c2..0fcc6d47 100644 --- a/draft/man3/encrypt.3 +++ b/draft/man3/encrypt.3 @@ -29,32 +29,32 @@ .\" by Yuichi SATO .\" Updated & Modified Sat Jan 17 01:27:31 JST 2004 by Yuichi SATO .\" -.\"WORD: encrypt °Å¹æ²½ -.\"WORD: decrypt Éü¹æ²½ +.\"WORD: encrypt 暗号化 +.\"WORD: decrypt 復号化 .\" .TH ENCRYPT 3 2003-04-04 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O encrypt, setkey, encrypt_r, setkey_r \- encrypt 64-bit messages -encrypt, setkey, encrypt_r, setkey_r \- 64 ¥Ó¥Ã¥È¤Î¥á¥Ã¥»¡¼¥¸¤ò°Å¹æ²½¤¹¤ë +encrypt, setkey, encrypt_r, setkey_r \- 64 ビットのメッセージを暗号化する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .\"O .BR "#define _XOPEN_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "void encrypt(char " block "[64], int " edflag ); .sp .\"O .BR "#define _XOPEN_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "void setkey(const char *" key ); .sp .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp @@ -64,30 +64,30 @@ encrypt, setkey, encrypt_r, setkey_r \- 64 ", struct crypt_data *" data ); .sp .\"O Each of these requires linking with \fI\-lcrypt\fP. -¤³¤ì¤é¤Î´Ø¿ô¤Ï \fI\-lcrypt\fP ¤Ç¥ê¥ó¥¯¤¹¤ëɬÍפ¬¤¢¤ë¡£ +これらの関数は \fI\-lcrypt\fP でリンクする必要がある。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions encrypt and decrypt 64-bit messages. .\"O The .\"O .BR setkey () .\"O function sets the key used by .\"O .BR encrypt (). -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢64 ¥Ó¥Ã¥È¤Î¥á¥Ã¥»¡¼¥¸¤Î°Å¹æ²½¤ÈÉü¹æ²½¤ò¹Ô¤¦¡£ +これらの関数は、64 ビットのメッセージの暗号化と復号化を行う。 .BR setkey () -´Ø¿ô¤Ï +関数は .BR encrypt () -¤Ë¤è¤Ã¤Æ»È¤ï¤ì¤ë°Å¹æ¸°¤òÀßÄꤹ¤ë¡£ +によって使われる暗号鍵を設定する。 .\"O The .\"O .I key .\"O argument used here is an array of 64 bytes, each of which has .\"O numerical value 1 or 0. .\"O The bytes key[n] where n=8*i-1 are ignored, .\"O so that the effective key length is 56 bits. -¤³¤³¤Ç»È¤ï¤ì¤ë°ú¤­¿ô +ここで使われる引き数 .I key -¤Ï 64 ¥Ð¥¤¥È¤ÎÇÛÎó¤Ç¤¢¤ê¡¢³Æ¥Ð¥¤¥È¤Ï¿ôÃÍ 1 ¤Þ¤¿¤Ï 0 ¤Ç¤¢¤ë¡£ -n=8*i-1 ¤ËÂФ¹¤ë¥Ð¥¤¥È key[n] ¤Ï̵»ë¤µ¤ì¤ë¤Î¤Ç¡¢ -Í­¸ú¤Ê°Å¹æ¸°¤ÎŤµ¤Ï 56 ¥Ó¥Ã¥È¤Ë¤Ê¤ë¡£ +は 64 バイトの配列であり、各バイトは数値 1 または 0 である。 +n=8*i-1 に対するバイト key[n] は無視されるので、 +有効な暗号鍵の長さは 56 ビットになる。 .PP .\"O The .\"O .BR encrypt () @@ -101,16 +101,16 @@ n=8*i-1 .\"O is a bit vector representation of the actual value that is encoded. .\"O The result is returned in that same vector. .BR encrypt () -´Ø¿ô¤Ï¡¢ +関数は、 .I edflag -¤¬ 0 ¤Î¾ì¹ç¤Ï°Å¹æ²½¤·¡¢1 ¤¬ÅϤµ¤ì¤¿¾ì¹ç¤ÏÉü¹æ²½¤¹¤ë¤È¤¤¤¦¤è¤¦¤Ë¡¢ -ÅϤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤òÊѹ¹¤¹¤ë¡£ -°ú¤­¿ô +が 0 の場合は暗号化し、1 が渡された場合は復号化するというように、 +渡されたバッファを変更する。 +引き数 .I key -¤ÈƱÍͤˡ¢ +と同様に、 .I block -¤Ï¥¨¥ó¥³¡¼¥É¤µ¤ì¤¿¼ÂºÝ¤ÎÃͤòɽ¸½¤¹¤ë¥Ó¥Ã¥È¤ÎÇÛÎó¤Ç¤¢¤ë¡£ -·ë²Ì¤Ï¤³¤ÎƱ¤¸ÇÛÎó¤ò»È¤Ã¤ÆÊÖ¤µ¤ì¤ë¡£ +はエンコードされた実際の値を表現するビットの配列である。 +結果はこの同じ配列を使って返される。 .PP .\"O These two functions are not reentrant, that is, the key data is .\"O kept in static storage. @@ -121,14 +121,14 @@ n=8*i-1 .\"O are the reentrant versions. .\"O They use the following .\"O structure to hold the key data: -¤³¤ì¤é 2 ¤Ä¤Î´Ø¿ô¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È (reentrant) ¤Ç¤Ï¤Ê¤¤¡£ -¤Ä¤Þ¤ê°Å¹æ¸°¥Ç¡¼¥¿¤ÏÀÅŪ¤ÊÎΰè¤ËÊݸ¤µ¤ì¤ë¡£ -´Ø¿ô +これら 2 つの関数はリエントラント (reentrant) ではない。 +つまり暗号鍵データは静的な領域に保存される。 +関数 .BR setkey_r () -¤È +と .BR encrypt_r () -¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È¤Ê¥Ð¡¼¥¸¥ç¥ó¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ï°Å¹æ¸°¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¤¿¤á¤Ë°Ê²¼¤Î¤è¤¦¤Ê¹½Â¤ÂΤò»È¤¦¡£ +はリエントラントなバージョンである。 +これらの関数は暗号鍵データを保持するために以下のような構造体を使う。 .in +4n .nf @@ -153,69 +153,69 @@ struct crypt_data { .\"O .I data\->initialized .\"O to zero. .BR setkey_r () -¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¤Ï¡¢ +を呼び出す前には、 .I data\->initialized -¤ò 0 ¤ËÀßÄꤹ¤ë¤³¤È¡£ +を 0 に設定すること。 .\"O .SH "RETURN VALUES" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O These functions do not return any value. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¤Ê¤Ë¤âÃͤòÊÖ¤µ¤Ê¤¤¡£ +これらの関数は、なにも値を返さない。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O Set .\"O .I errno .\"O to zero before calling the above functions. -¾åµ­¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë +上記の関数を呼び出す前に .I errno -¤ò 0 ¤ËÀßÄꤹ¤ë¤³¤È¡£ +を 0 に設定すること。 .\"O On success, it is unchanged. -À®¸ù¤·¤¿¾ì¹ç¡¢¤³¤ÎÃͤÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +成功した場合、この値は変更されない。 .TP .B ENOSYS .\"O The function is not provided. .\"O (For example because of former USA export restrictions.) -(Î㤨¤Ð°ÊÁ°¤Î¥¢¥á¥ê¥«¹ç½°¹ñÍ¢½Ðµ¬À©¤Ê¤É¤Ë¤è¤ê) -¤³¤Î´Ø¿ô¤¬Ä󶡤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +(例えば以前のアメリカ合衆国輸出規制などにより) +この関数が提供されていない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The functions .\"O .BR encrypt () .\"O and .\"O .BR setkey () .\"O conform to SVr4, SUSv2, and POSIX.1-2001. -´Ø¿ô +関数 .BR encrypt () -¤È +と .BR setkey () -¤Ï SVr4, SUSv2, and POSIX.1-2001 ¤Ë½àµò¤¹¤ë¡£ +は SVr4, SUSv2, and POSIX.1-2001 に準拠する。 .\"O The functions .\"O .BR encrypt_r () .\"O and .\"O .BR setkey_r () .\"O are GNU extensions. -´Ø¿ô +関数 .BR encrypt_r () -¤È +と .BR setkey_r () -¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ë¡£ +は GNU 拡張である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O In glibc 2.2 these functions use the DES algorithm. -glibc 2.2 ¤Ç¤Ï¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï DES ¥¢¥ë¥´¥ê¥º¥à¤ò»È¤¦¡£ +glibc 2.2 では、これらの関数は DES アルゴリズムを使う。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O You need to link with libcrypt to compile this example with glibc. .\"O To do useful work the .\"O .I key[] .\"O and .\"O .I txt[] .\"O arrays must be filled with a useful bit pattern. -¤³¤ÎÎã¤ò glibc ¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤Ë¤Ï libcrypt ¤È¥ê¥ó¥¯¤¹¤ëɬÍפ¬¤¢¤ë¡£ -¼ÂºÝ¤ËÆ°ºî¤µ¤»¤ë¤¿¤á¤Ë¤Ï¡¢ÇÛÎó +この例を glibc でコンパイルするには libcrypt とリンクする必要がある。 +実際に動作させるためには、配列 .I key[] -¤È +と .I txt[] -¤ËÍ­¸ú¤Ê¥Ó¥Ã¥È¥Ñ¥¿¡¼¥ó¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +に有効なビットパターンを指定しなければならない。 .sp .nf #define _XOPEN_SOURCE @@ -234,7 +234,7 @@ main(void) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cbc_crypt (3), .BR crypt (3), .BR ecb_crypt (3) diff --git a/draft/man3/end.3 b/draft/man3/end.3 index 5855dd24..06725edd 100644 --- a/draft/man3/end.3 +++ b/draft/man3/end.3 @@ -28,49 +28,49 @@ .\" .TH END 3 2008-07-17 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O etext, edata, end \- end of program segments -etext, edata, end \- ¥×¥í¥°¥é¥à¥»¥°¥á¥ó¥È¤Î½ª¤ï¤ê +etext, edata, end \- プログラムセグメントの終わり .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .BI extern " etext" ; .BI extern " edata" ; .BI extern " end" ; .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The addresses of these symbols indicate the end of various program .\"O segments: -¤³¤ì¤é¤Î¥·¥ó¥Ü¥ë¤Î¥¢¥É¥ì¥¹¤Ï³Æ¼ï¤Î¥×¥í¥°¥é¥à¥»¥°¥á¥ó¥È¤Î½ª¤ï¤ê¤ò¼¨¤¹¡£ +これらのシンボルのアドレスは各種のプログラムセグメントの終わりを示す。 .TP .I etext .\"O This is the first address past the end of the text segment .\"O (the program code). -¥Æ¥­¥¹¥È¥»¥°¥á¥ó¥È (¥×¥í¥°¥é¥à¤Î¥³¡¼¥É) ¤ÎËöÈø¤Î¼¡¤Î¥¢¥É¥ì¥¹¡£ +テキストセグメント (プログラムのコード) の末尾の次のアドレス。 .TP .I edata .\"O This is the first address past the end of the .\"O initialized data segment. -½é´ü²½¤µ¤ì¤¿¥Ç¡¼¥¿¤Î¥»¥°¥á¥ó¥È¤ÎËöÈø¤Î¼¡¤Î¥¢¥É¥ì¥¹¡£ +初期化されたデータのセグメントの末尾の次のアドレス。 .TP .I end .\"O This is the first address past the end of the .\"O uninitialized data segment (also known as the BSS segment). -½é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ç¡¼¥¿¤Î¥»¥°¥á¥ó¥È (BSS ¥»¥°¥á¥ó¥È¤È¤â¸À¤ï¤ì¤ë) -¤ÎËöÈø¤Î¼¡¤Î¥¢¥É¥ì¥¹¡£ +初期化されていないデータのセグメント (BSS セグメントとも言われる) +の末尾の次のアドレス。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O Although these symbols have long been provided on most UNIX systems, .\"O they are not standardized; use with caution. -¤³¤ì¤é¤Î¥·¥ó¥Ü¥ë¤ÏĹǯ¤Û¤È¤ó¤É¤Î UNIX ¥·¥¹¥Æ¥à¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -ɸ½à²½¤µ¤ì¤Æ¤Ï¤¤¤Ê¤¤¡£Ãí°Õ¤·¤Æ»È¤¦¤³¤È¡£ +これらのシンボルは長年ほとんどの UNIX システムで提供されているが、 +標準化されてはいない。注意して使うこと。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The program must explicitly declare these symbols; .\"O they are not defined in any header file. -¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤ì¤é¤Î¥·¥ó¥Ü¥ë¤ÏÌÀ¼¨Åª¤ËÀë¸À¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ì¤é¤Ï¤É¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç¤âÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +プログラムではこれらのシンボルは明示的に宣言しなければならない。 +これらはどのヘッダファイルでも定義されていない。 .\"O On some systems the names of these symbols are preceded by underscores, .\"O thus: @@ -79,14 +79,14 @@ etext, edata, end \- .\"O and .\"O .IR _end . .\"O These symbols are also defined for programs compiled on Linux. -¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥·¥ó¥Ü¥ë¤Î̾Á°¤ÏÁ°¤Ë¥¢¥ó¥À¡¼¥¹¥³¥¢¤¬ -ÉÕ¤¤¤Æ¤¤¤Æ¡¢ +いくつかのシステムでは、これらのシンボルの名前は前にアンダースコアが +付いていて、 .IR _etext , .IR _edata , .I _end -¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ -Linux ¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ -¤³¤ì¤é¤Î¥·¥ó¥Ü¥ë¤Ç¤âÄêµÁ¤µ¤ì¤ë¡£ +となっている。 +Linux でコンパイルされたプログラムでは、 +これらのシンボルでも定義される。 .\"O At the start of program execution, .\"O the program break will be somewhere near @@ -99,21 +99,21 @@ Linux .\"O Use .\"O .BR sbrk (2) .\"O with an argument of zero to find the current value of the program break. -¥×¥í¥°¥é¥à¤Î¼Â¹Ô³«»Ï»þ¤Ë¡¢¥×¥í¥°¥é¥à¡¦¥Ö¥ì¡¼¥¯¤Ï +プログラムの実行開始時に、プログラム・ブレークは .I &end -¤Î¶á¤¯¤Î¤É¤³¤« (¤ª¤½¤é¤¯¼¡¤Î¥Ú¡¼¥¸¤ÎÀèƬ) ¤Ë¤Ê¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢ +の近くのどこか (おそらく次のページの先頭) になる。 +しかしながら、 .BR brk (2) -¤ä +や .BR malloc (3) -¤Ç¥á¥â¥ê¤¬³ä¤êÅö¤Æ¤é¤ì¤ë¤ËÏ¢¤ì¤Æ¡¢¥×¥í¥°¥é¥à¡¦¥Ö¥ì¡¼¥¯¤ÏÊѲ½¤·¤Æ¤¤¤¯¡£ -°ú¤­¿ô¤Ë 0 ¤ò»ØÄꤷ¤Æ +でメモリが割り当てられるに連れて、プログラム・ブレークは変化していく。 +引き数に 0 を指定して .BR sbrk (2) -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¡¢¥×¥í¥°¥é¥à¡¦¥Ö¥ì¡¼¥¯¤Î¸½ºßÃͤòÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ +を呼び出すことで、プログラム・ブレークの現在値を知ることができる。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O When run, the program below produces output such as the following: -²¼µ­¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ê½ÐÎϤ¬ÆÀ¤é¤ì¤ë¡£ +下記のプログラムを実行すると、次のような出力が得られる。 .in +4n .nf @@ -124,7 +124,7 @@ First address past: uninitialized data (end) 0x804a024 .fi .\"O .SS Program source -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .in .nf @@ -146,7 +146,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR objdump (1), .BR readelf (1), .BR sbrk (2), diff --git a/draft/man3/envz_add.3 b/draft/man3/envz_add.3 index 34962aa2..976797e6 100644 --- a/draft/man3/envz_add.3 +++ b/draft/man3/envz_add.3 @@ -9,13 +9,13 @@ .\" .TH ENVZ_ADD 3 2007-05-18 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O envz_add, envz_entry, envz_get, envz_merge, .\"O envz_remove, envz_strip \- environment string support envz_add, envz_entry, envz_get, envz_merge, -envz_remove, envz_strip \- ´Ä¶­ÊÑ¿ôʸ»úÎó¤ÎÁàºî +envz_remove, envz_strip \- 環境変数文字列の操作 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B "#include " @@ -39,9 +39,9 @@ envz_remove, envz_strip \- .BI "void envz_strip(char **" envz ", size_t *" envz_len ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions are glibc-specific. -¤³¤ì¤é¤Î´Ø¿ô glibc ¸ÇÍ­¤Ç¤¢¤ë¡£ +これらの関数 glibc 固有である。 .LP .\"O An argz vector is a pointer to a character buffer together with a length, .\"O see @@ -52,17 +52,17 @@ envz_remove, envz_strip \- .\"O to be the value. .\"O If there is no \(aq=\(aq, the value is taken to be NULL. .\"O (While the value in case of a trailing \(aq=\(aq is the empty string "".) -argz vector ¤ÏŤµ¾ðÊóÉÕ¤­¤Îʸ»ú¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +argz vector は長さ情報付きの文字バッファへのポインタである。 .BR argz_add (3) -¤ò»²¾È¤Î¤³¤È¡£ -envz vector ¤Ï¡¢Ê¸»úÎó¤¬ "name=value (̾Á°=ÃÍ)" ¤Î·Á¼°¤Ë¤Ê¤Ã¤Æ¤¤¤ëÆÃÊÌ¤Ê -argz vector ¤Ç¤¢¤ë¡£ -ºÇ½é¤Î \(aq=\(aq °Ê¹ß¤Ï¤¹¤Ù¤ÆÃͤȤߤʤµ¤ì¤ë¡£\(aq=\(aq ¤¬¤Ê¤±¤ì¤Ð¡¢ -ÃÍ¤Ï NULL ¤È²ò¼á¤µ¤ì¤ë¡£(ʸ»úÎó¤Î°ìÈֺǸå¤Îʸ»ú¤¬ \(aq=\(aq ¤Î¾ì¹ç¡¢Ãͤ϶õʸ»úÎó -"" ¤È²ò¼á¤µ¤ì¤ë¡£) +を参照のこと。 +envz vector は、文字列が "name=value (名前=値)" の形式になっている特別な +argz vector である。 +最初の \(aq=\(aq 以降はすべて値とみなされる。\(aq=\(aq がなければ、 +値は NULL と解釈される。(文字列の一番最後の文字が \(aq=\(aq の場合、値は空文字列 +"" と解釈される。) .LP .\"O These functions are for handling envz vectors. -¤³¤ì¤é¤Î´Ø¿ô¤Ï envz vector ¤òÁàºî¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ +これらの関数は envz vector を操作するためのものである。 .LP .\"O .BR envz_add () .\"O adds the string @@ -83,22 +83,22 @@ argz vector .\"O .I name .\"O existed, it is removed. .BR envz_add () -¤Ï¡¢Ê¸»úÎó +は、文字列 .RI \&" name = value \&" .RI ( value -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç) ¤Þ¤¿¤Ï +が NULL でない場合) または .RI \&" name \&" .RI ( value -¤¬ NULL ¤Î¾ì¹ç) ¤ò +が NULL の場合) を envz vector .RI ( *envz ,\ *envz_len ) -¤ËÄɲä·¡¢ +に追加し、 .I *envz -¤È +と .I *envz_len -¤ò¹¹¿·¤¹¤ë¡£ +を更新する。 .I name -¤ÈƱ¤¸Ì¾Á°¤ò»ý¤Ä¥¨¥ó¥È¥ê¤¬¤¢¤Ã¤¿¾ì¹ç¡¢¸µ¤Î¥¨¥ó¥È¥ê¤Ïºï½ü¤µ¤ì¤ë¡£ +と同じ名前を持つエントリがあった場合、元のエントリは削除される。 .LP .\"O .BR envz_entry () .\"O looks for @@ -107,12 +107,12 @@ envz vector .\"O .RI ( envz ,\ envz_len ) .\"O and returns the entry if found, or NULL if not. .BR envz_entry () -¤Ï¡¢envz vector +は、envz vector .RI ( envz ,\ envz_len ) -¤«¤é̾Á°¤¬ +から名前が .I name -¤Î¥¨¥ó¥È¥ê¤ò¸¡º÷¤¹¤ë¡£ -¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤Ï¤½¤Î¥¨¥ó¥È¥ê¤òÊÖ¤·¡¢¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +のエントリを検索する。 +見つかった場合はそのエントリを返し、見つからなかった場合は NULL を返す。 .LP .\"O .BR envz_get () .\"O looks for @@ -125,15 +125,15 @@ envz vector .\"O .I name .\"O without \(aq=\(aq sign.) .BR envz_get () -¤Ï¡¢envz vector +は、envz vector .RI ( envz ,\ envz_len ) -¤«¤é̾Á°¤¬ +から名前が .I name -¤Î¥¨¥ó¥È¥ê¤ò¸¡º÷¤¹¤ë¡£ -¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤Ï¥¨¥ó¥È¥ê¤ÎÃͤòÊÖ¤·¡¢¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ -(ÃÍ¤Ï NULL ¤Î¾ì¹ç¤â¤¢¤ë¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£Ì¾Á°¤¬ +のエントリを検索する。 +見つかった場合はエントリの値を返し、見つからなかった場合は NULL を返す。 +(値は NULL の場合もあることに注意すること。名前が .I name -¤Î¥¨¥ó¥È¥ê¤Ë \(aq=\(aq Éä¹æ¤¬¤Ê¤¤¾ì¹ç¤¬³ºÅö¤¹¤ë¡£) +のエントリに \(aq=\(aq 符号がない場合が該当する。) .LP .\"O .BR envz_merge () .\"O adds each entry in @@ -150,20 +150,20 @@ envz vector .\"O .IR *envz , .\"O otherwise not. .BR envz_merge () -¤Ï¡¢ +は、 .BR envz_add () -¤ÈƱ¤¸¤è¤¦¤Ë +と同じように .I envz2 -¤Î³Æ¥¨¥ó¥È¥ê¤ò +の各エントリを .I *envz -¤ËÄɲ乤롣 +に追加する。 .I override -¤¬¿¿¤Î¾ì¹ç¡¢ +が真の場合、 .I envz2 -¤ÎÃÍ¤Ç +の値で .I *envz -Æâ¤ÎƱ¤¸Ì¾Á°¤ò¤â¤ÄÃͤϾå½ñ¤­¤µ¤ì¤ë¡£ -µ¶¤Î¾ì¹ç¤Ï¾å½ñ¤­¤µ¤ì¤Ê¤¤¡£ +内の同じ名前をもつ値は上書きされる。 +偽の場合は上書きされない。 .LP .\"O .BR envz_remove () .\"O removes the entry for @@ -172,31 +172,31 @@ envz vector .\"O .RI ( *envz ,\ *envz_len ) .\"O if there was one. .BR envz_remove () -¤Ï¡¢Ì¾Á°¤¬ +は、名前が .I name -¤Î¥¨¥ó¥È¥ê¤¬¤¢¤ì¤Ð +のエントリがあれば .RI ( *envz ,\ *envz_len ) -¤«¤éºï½ü¤¹¤ë¡£ +から削除する。 .LP .\"O .BR envz_strip () .\"O removes all entries with value NULL. .BR envz_strip () -¤Ï¡¢Ãͤ¬ NULL ¤Î¥¨¥ó¥È¥ê¤ò¤¹¤Ù¤Æºï½ü¤¹¤ë¡£ +は、値が NULL のエントリをすべて削除する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O All envz functions that do memory allocation have a return type of .\"O \fIerror_t\fP, and return 0 for success, and \fBENOMEM\fP .\"O if an allocation error occurs. -¥á¥â¥ê³ä¤êÅö¤Æ¤ò¹Ô¤¦ envz ´Ø¿ô·²¤Ï¤¹¤Ù¤Æ \fIerror_t\fP ·¿¤ÎÊÖ¤êÃͤò»ý¤Ä¡£ -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤·¡¢³ä¤êÅö¤Æ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï -\fBENOMEM\fP ¤òÊÖ¤¹¡£ +メモリ割り当てを行う envz 関数群はすべて \fIerror_t\fP 型の返り値を持つ。 +成功した場合は 0 を返し、割り当てエラーが発生した場合は +\fBENOMEM\fP を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These functions are a GNU extension. .\"O Handle with care. -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£Ãí°Õ¤·¤Æ»ÈÍѤ¹¤ë¤³¤È¡£ +これらの関数は GNU による拡張である。注意して使用すること。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .nf #include #include @@ -219,5 +219,5 @@ main(int argc, char *argv[], char *envp[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR argz_add (3) diff --git a/draft/man3/erf.3 b/draft/man3/erf.3 index b282c399..e4dcf0fa 100644 --- a/draft/man3/erf.3 +++ b/draft/man3/erf.3 @@ -39,16 +39,16 @@ .\" Updated & Modified Tue Feb 15 04:46:24 JST 2005 .\" by Yuichi SATO .\" -.\"WORD: complementary error function ÁêÊä¸íº¹´Ø¿ô -.\"WORD: subnormal ÈóÀµµ¬²½¤Î +.\"WORD: complementary error function 相補誤差関数 +.\"WORD: subnormal 非正規化の .\" .TH ERF 3 2010-09-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O erf, erff, erfl, \- error function -erf, erff, erfl \- ¸íº¹´Ø¿ô +erf, erff, erfl \- 誤差関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include @@ -58,14 +58,14 @@ erf, erff, erfl \- .fi .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -89,43 +89,43 @@ or .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR erf () .\"O function returns the error function of \fIx\fP, defined .\"O as .BR erf () -¤Ï \fIx\fP ¤Î¸íº¹´Ø¿ô¤òÊÖ¤¹´Ø¿ô¤Ç¡¢°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +は \fIx\fP の誤差関数を返す関数で、以下のように定義されている。 .TP erf(x) = 2/sqrt(pi)* integral from 0 to x of exp(\-t*t) dt .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the error function of .\"O .IR x , .\"O a value in the range [\-1,\ 1]. -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I x -¤Î¸íº¹´Ø¿ô¤òÊÖ¤¹¡£ -ÊÖ¤êÃÍ¤Ï [\-1,\ 1] ¤ÎÈϰϤȤʤ롣 +の誤差関数を返す。 +返り値は [\-1,\ 1] の範囲となる。 .\"O If .\"O .I x .\"O is a NaN, a NaN is returned. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x .\"O is +0 (\-0), +0 (\-0) is returned. .I x -¤¬ +0 (\-0) ¤Î¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 (\-0) の場合、+0 (\-0) が返される。 .\"O If .\"O .I x .\"O is positive infinity (negative infinity), .\"O +1 (\-1) is returned. .I x -¤¬Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤Î¾ì¹ç¡¢+1 (\-1) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大 (負の無限大) の場合、+1 (\-1) が返される。 .\"O If .\"O .I x @@ -133,51 +133,51 @@ or .\"O a range error occurs, .\"O and the return value is 2*x/sqrt(pi). .I x -¤¬ÈóÀµµ¬²½¿ô¤Î¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢ -ÊÖ¤êÃÍ¤Ï 2*x/sqrt(pi) ¤È¤Ê¤ë¡£ +が非正規化数の場合、範囲エラー (range error) が発生し、 +返り値は 2*x/sqrt(pi) となる。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Range error: result underflow (\fIx\fP is subnormal) -ÈÏ°Ï¥¨¥é¡¼ (range error): ·ë²Ì¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¹¤ë (\fIx\fP ¤¬ÈóÀµµ¬²½¿ô) +範囲エラー (range error): 結果がアンダーフローする (\fIx\fP が非正規化数) .\" .I errno .\" is set to .\" .BR ERANGE . .\"O An underflow floating-point exception .\"O .RB ( FE_UNDERFLOW ) .\"O is raised. -¥¢¥ó¥À¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +アンダーフロー浮動小数点例外 .RB ( FE_UNDERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP .\"O These functions do not set .\"O .IR errno . -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6785 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD にも準拠している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cerf (3), .BR erfc (3), .BR exp (3) diff --git a/draft/man3/erfc.3 b/draft/man3/erfc.3 index 8fa8c617..dfc327e7 100644 --- a/draft/man3/erfc.3 +++ b/draft/man3/erfc.3 @@ -25,15 +25,15 @@ .\" all rights reserved. .\" Translated 2008-09-15, Akihiro MOTOKI .\" -.\"WORD: subnormal ÈóÀµµ¬²½¤Î +.\"WORD: subnormal 非正規化の .\" .TH ERFC 3 2010-09-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O erfc, erfcf, erfcl \- complementary error function -erfc, erfcf, erfcl \- ÁêÊä¸íº¹´Ø¿ô +erfc, erfcf, erfcl \- 相補誤差関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include @@ -43,14 +43,14 @@ erfc, erfcf, erfcl \- .fi .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -74,109 +74,109 @@ or .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR erfc () .\"O function returns the complementary error function of .\"O .IR x , .\"O that is, 1.0 \- erf(x). .BR erfc () -´Ø¿ô¤Ï +関数は .I x -¤ÎÁêÊä¸íº¹´Ø¿ô¡¢¤Ä¤Þ¤ê 1.0 \- erf(x) ¤òÊÖ¤¹¡£ +の相補誤差関数、つまり 1.0 \- erf(x) を返す。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the complementary error function of .\"O .IR x , .\"O a value in the range [0,2]. -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I x -¤ÎÁêÊä¸íº¹´Ø¿ô¤òÊÖ¤¹¡£ -ÊÖ¤êÃÍ¤Ï [0,2] ¤ÎÈϰϤȤʤ롣 +の相補誤差関数を返す。 +返り値は [0,2] の範囲となる。 .\"O If .\"O .I x .\"O is a NaN, a NaN is returned. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x .\"O is +0 or \-0, 1 is returned. .I x -¤¬ +0 ¤« \-0 ¤Î¾ì¹ç¡¢1 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 か \-0 の場合、1 が返される。 .\"O If .\"O .I x .\"O is positive infinity, .\"O +0 is returned. .I x -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢+0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大の場合、+0 が返される。 .\"O If .\"O .I x .\"O is negative infinity, .\"O +2 is returned. .I x -¤¬Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢+2 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が負の無限大の場合、+2 が返される。 .\"O If the function result underflows and produces an unrepresentable value, .\"O the return value is 0.0. -´Ø¿ô¤Î·ë²Ì¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤·¡¢É½¸½¤Ç¤­¤Ê¤¤ÃͤȤʤë¾ì¹ç¤Ï¡¢ -ÊÖ¤êÃÍ¤Ï 0.0 ¤È¤Ê¤ë¡£ +関数の結果がアンダーフローし、表現できない値となる場合は、 +返り値は 0.0 となる。 .\"O If the function result underflows but produces a representable .\"O (i.e., subnormal) value, .\"O .\" e.g., erfc(27) on x86-32 .\"O that value is returned, and .\"O a range error occurs. -´Ø¿ô¤Î·ë²Ì¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¹¤ë¤¬¡¢ -ɽ¸½¤Ç¤­¤ëÃÍ (¤Ä¤Þ¤êÈóÀµµ¬²½¿ô (subnormal)) ¤È¤Ê¤ë¾ì¹ç¤Ï¡¢ -.\" Î㤨¤Ð x86-32 ¤Ç¤Î erfc(27) -¤½¤ÎÃͤ¬ÊÖ¤µ¤ì¡¢ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤¹¤ë¡£ +関数の結果がアンダーフローするが、 +表現できる値 (つまり非正規化数 (subnormal)) となる場合は、 +.\" 例えば x86-32 での erfc(27) +その値が返され、範囲エラー (range error) が発生する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Range error: result underflow (result is subnormal) -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤Î¥¢¥ó¥À¡¼¥Õ¥í¡¼ (·ë²Ì¤¬ÈóÀµµ¬²½¿ô) +範囲エラー: 結果のアンダーフロー (結果が非正規化数) .\" .I errno .\" is set to .\" .BR ERANGE . .\"O An underflow floating-point exception .\"O .RB ( FE_UNDERFLOW ) .\"O is raised. -¥¢¥ó¥À¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +アンダーフロー浮動小数点例外 .RB ( FE_UNDERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP .\"O These functions do not set .\"O .IR errno . -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6785 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD にも準拠している。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The .\"O .BR erfc () .\"O functions are provided to avoid the loss accuracy that @@ -184,12 +184,12 @@ C99, POSIX.1-2001. .\"O .IR x .\"O (for which the value of erf(x) approaches 1). .BR erfc () -´Ø¿ô¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢ +関数が提供されているのは、 .I x -¤¬Â礭¤ÊÃͤξì¹ç¤Ë (erf(x) ¤ÎÃÍ¤Ï 1 ¤Ë¶áÉÕ¤¤¤Æ¤¤¤¯¤³¤È¤Ç) -1-erf(x) ¤Î·×»»¤Ë¤ª¤¤¤ÆÀºÅÙ¤¬¼º¤ï¤ì¤ë¤Î¤òÈò¤±¤ë¤¿¤á¤Ç¤¢¤ë¡£ +が大きな値の場合に (erf(x) の値は 1 に近付いていくことで) +1-erf(x) の計算において精度が失われるのを避けるためである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cerf (3), .BR erf (3), .BR exp (3) diff --git a/draft/man3/err.3 b/draft/man3/err.3 index 66ed9588..48463dae 100644 --- a/draft/man3/err.3 +++ b/draft/man3/err.3 @@ -41,11 +41,11 @@ .TH ERR 3 2011-09-15 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O err, verr, errx, verrx, warn, vwarn, warnx, vwarnx \- formatted error messages -.SH ̾Á° -err, verr, errx, verrx, warn, vwarn, warnx, vwarnx \- ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òÀ°·Á¤¹¤ë +.SH 名前 +err, verr, errx, verrx, warn, vwarn, warnx, vwarnx \- エラーメッセージを整形する .Nd .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -68,7 +68,7 @@ err, verr, errx, verrx, warn, vwarn, warnx, vwarnx \- .BI "void vwarnx(const char *" fmt ", va_list " args ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR err () .\"O and @@ -76,24 +76,24 @@ err, verr, errx, verrx, warn, vwarn, warnx, vwarnx \- .\"O family of functions display a formatted error message on the standard .\"O error output. .BR err () -´Ø¿ô·²¤È +関数群と .BR warn () -´Ø¿ô·²¤Ï¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òÀ°·Á¤·¤Æɸ½à¥¨¥é¡¼½ÐÎϤËɽ¼¨¤¹¤ë¡£ +関数群は、エラーメッセージを整形して標準エラー出力に表示する。 .\"O In all cases, the last component of the program name, a colon character, .\"O and a space are output. -¤É¤Î´Ø¿ô¤Î¾ì¹ç¤â¡¢(¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤ò¾Ê¤¤¤¿)¥×¥í¥°¥é¥à̾¡¢ -¥³¥í¥ó 1¸Ä¡¢¥¹¥Ú¡¼¥¹ 1¸Ä¤¬½ÐÎϤµ¤ì¤ë¡£ +どの関数の場合も、(ディレクトリ部分を省いた)プログラム名、 +コロン 1個、スペース 1個が出力される。 .\"O If the .\"O .I fmt .\"O argument is not NULL, the .\"O .BR printf (3)-like .\"O formatted error message is output. .I fmt -°ú¤­¿ô¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ +引き数が NULL でない場合、 .BR printf (3) -¤ÈƱÍͤËÀ°·Á¤¬¹Ô¤ï¤ì¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬½ÐÎϤµ¤ì¤ë¡£ +と同様に整形が行われ、エラーメッセージが出力される。 .\"O The output is terminated by a newline character. -½ÐÎϤϲþ¹Ôʸ»ú¤Ç½ª¤ï¤ë¡£ +出力は改行文字で終わる。 .PP .\"O The .\"O .BR err (), @@ -109,30 +109,30 @@ err, verr, errx, verrx, warn, vwarn, warnx, vwarnx \- .\"O .I fmt .\"O argument is .\"O NULL. -\"O motoki: based on a code or ¡Á ¤Î¡Öa code¡×¤È¤Ï¡© -´Ø¿ô +\"O motoki: based on a code or 〜 の「a code」とは? +関数 .BR err (), .BR verr (), .BR warn (), .BR vwarn () -¤Ï¡¢¥°¥í¡¼¥Ð¥ëÊÑ¿ô +は、グローバル変数 .I errno -¤Ë´ð¤Å¤¤¤Æ +に基づいて .BR strerror (3) -¤«¤éÆÀ¤¿¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ¹¤ë¡£ +から得たエラーメッセージを出力する。 .I fmt -°ú¤­¿ô¤¬ NULL -¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢°ì¸Ä¤º¤Ä¤Î¥³¥í¥ó¤È¥¹¥Ú¡¼¥¹¤Ë³¤±¤Æ½ÐÎϤ¹¤ë¡£ +引き数が NULL +でない場合は、一個ずつのコロンとスペースに続けて出力する。 .PP .\"O The .\"O .BR errx () .\"O and .\"O .BR warnx () .\"O functions do not append an error message. -´Ø¿ô +関数 .BR errx (), .BR warnx () -¤Ï¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òÉÕ¤±²Ã¤¨¤Ê¤¤¡£ +はエラーメッセージを付け加えない。 .PP .\"O The .\"O .BR err (), @@ -142,22 +142,22 @@ err, verr, errx, verrx, warn, vwarn, warnx, vwarnx \- .\"O .BR verrx () .\"O functions do not return, but exit with the value of the argument .\"O .I eval . -´Ø¿ô +関数 .BR err (), .BR verr (), .BR errx (), .BR verrx () -¤ÏÊÖ¤êÃͤòÊÖ¤µ¤Ê¤¤¤¬¡¢°ú¤­¿ô +は返り値を返さないが、引き数 .I eval -¤ÎÃͤò exit status ¤ËÀßÄꤷ½ªÎ»¤¹¤ë¡£ +の値を exit status に設定し終了する。 .\"O .SH EXAMPLES -.SH Îã +.SH 例 .\"O Display the current .\"O .I errno .\"O information string and exit: -¸½ºß¤Î +現在の .I errno -¤Î¾ðÊó¤òɽ¼¨¤·¡¢½ªÎ»¤¹¤ë: +の情報を表示し、終了する: .in +4n .nf @@ -169,7 +169,7 @@ if ((fd = open(file_name, O_RDONLY, 0)) == \-1) .in .PP .\"O Display an error message and exit: -¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¡¢½ªÎ»¤¹¤ë: +エラーメッセージを表示し、終了する: .in +4n .nf @@ -179,7 +179,7 @@ if (tm.tm_hour < START_TIME) .in .PP .\"O Warn of an error: -¥¨¥é¡¼¤ò·Ù¹ðɽ¼¨¤¹¤ë: +エラーを警告表示する: .in +4n .nf @@ -191,26 +191,26 @@ if ((fd = open(block_device, O_RDONLY, 0)) == \-1) .fi .in .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These functions are nonstandard BSD extensions. -¤³¤ì¤é¤Î´Ø¿ô¤ÏÈóɸ½à¤Î BSD ³ÈÄ¥¤Ç¤¢¤ë¡£ +これらの関数は非標準の BSD 拡張である。 .\"O .\" .SH HISTORY -.\" .SH Îò»Ë +.\" .SH 歴史 .\"O .\" The .\"O .\" .BR err () .\"O .\" and .\"O .\" .BR warn () .\"O .\" functions first appeared in .\"O .\" 4.4BSD. -.\" ´Ø¿ô +.\" 関数 .\" .BR err () -.\" ¤È +.\" と .\" .BR warn () -.\" ¤Ï +.\" は .\" 4.4BSD -.\" ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +.\" で初めて登場した。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR error (3), .BR exit (3), .BR perror (3), diff --git a/draft/man3/errno.3 b/draft/man3/errno.3 index 5218d9be..69bf0862 100644 --- a/draft/man3/errno.3 +++ b/draft/man3/errno.3 @@ -40,16 +40,16 @@ .\" .TH ERRNO 3 2008-07-09 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O errno \- number of last error -errno \- ľ¶á¤ËȯÀ¸¤·¤¿¥¨¥é¡¼¤ÎÈÖ¹æ +errno \- 直近に発生したエラーの番号 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .\".sp .\".BI "extern int " errno ; .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .I .\"O header file defines the integer variable @@ -64,24 +64,24 @@ errno \- ľ .\"O .I is .\"O allowed to change .\"O .IR errno . -¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë +ヘッダファイル .I -¤ÇÀ°¿ô·¿¤ÎÊÑ¿ô +で整数型の変数 .I errno -¤¬ÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä¤¤¤¯¤Ä¤«¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ï¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿ºÝ¤Ë -¤³¤ÎÊÑ¿ô¤Ë¤½¤Î¸¶°ø¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -¤³¤ÎÃͤϸƤӽФ·¤ÎÊÖ¤êÃͤ¬¥¨¥é¡¼ (¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤Ï -\-1 ¤Ç¡¢¤Û¤È¤ó¤É¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ç¤Ï \-1 ¤« NULL) ¤ò¼¨¤·¤¿¤È¤­¤Ë -¤Î¤ß°ÕÌ£¤ò»ý¤Ä¤¬¡¢¥é¥¤¥Ö¥é¥ê´Ø¿ô¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤â +が定義されており、 +システムコールやいくつかのライブラリ関数は、エラーが発生した際に +この変数にその原因を示す値を設定する。 +この値は呼び出しの返り値がエラー (ほとんどのシステムコールでは +\-1 で、ほとんどのライブラリ関数では \-1 か NULL) を示したときに +のみ意味を持つが、ライブラリ関数は成功した場合も .I errno -¤òÊѹ¹¤¹¤ë¤³¤È¤¬µö¤µ¤ì¤Æ¤¤¤ë¡£ +を変更することが許されている。 .\"O Valid error numbers are all nonzero; \fIerrno\fP is never set to zero .\"O by any system call or library function. -Í­¸ú¤Ê¥¨¥é¡¼ÈÖ¹æ¤Ï¤¤¤º¤ì¤â 0 °Ê³°¤ÎÃͤò»ý¤Ä¡£ -¤É¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤â¥é¥¤¥Ö¥é¥ê´Ø¿ô¤â -\fIerrno\fP ¤ò 0 ¤ËÀßÄꤹ¤ë¤³¤È¤Ï¤Ê¤¤¡£ +有効なエラー番号はいずれも 0 以外の値を持つ。 +どのシステムコールもライブラリ関数も +\fIerrno\fP を 0 に設定することはない。 .\"O For some system calls and library functions (e.g., .\"O .BR getpriority (2)), @@ -94,28 +94,28 @@ errno \- ľ .\"O may have occurred, checking to see if .\"O .I errno .\"O has a nonzero value. -¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä¥é¥¤¥Ö¥é¥ê´Ø¿ô (Î㤨¤Ð +いくつかのシステムコールやライブラリ関数 (例えば .BR getpriority (2)) -¤Ç¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¤ÎÍ­¸ú¤ÊÊÖ¤êÃͤȤ·¤Æ \-1 ¤¬ÊÖ¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ -¤³¤Î¤è¤¦¤Ê¾ì¹ç¡¢À®¸ù¤Ê¤Î¤«¥¨¥é¡¼¤Ê¤Î¤«¤ò¶èÊ̤¹¤ë¤¿¤á¤Ë¤Ï¡¢ -¸Æ¤Ó½Ð¤·¤ÎÁ°¤Ë +では、成功した場合の有効な返り値として \-1 が返されることがある。 +このような場合、成功なのかエラーなのかを区別するためには、 +呼び出しの前に .I errno -¤ò 0 ¤ËÀßÄꤷ¤Æ¤ª¤±¤Ð¤è¤¤¡£¸Æ¤Ó½Ð¤·¤ÎÊÖ¤êÃͤ¬¥¨¥é¡¼È¯À¸¤Î²ÄǽÀ­¤ò -¼¨¤¹¤â¤Î¤À¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ +を 0 に設定しておけばよい。呼び出しの返り値がエラー発生の可能性を +示すものだった場合には、 .I errno -¤¬ 0 °Ê³°¤ÎÃͤ«¤ò¸«¤Æ³Îǧ¤¹¤ì¤Ð¤è¤¤¡£ +が 0 以外の値かを見て確認すればよい。 .\"O \fIerrno\fP is defined by the ISO C standard to be a modifiable lvalue .\"O of type \fIint\fP, and must not be explicitly declared; \fIerrno\fP .\"O may be a macro. .\"O \fIerrno\fP is thread-local; setting it in one thread .\"O does not affect its value in any other thread. -\fIerrno\fP ¤Ï¡¢ISO C standard ¤Ç \fIint\fP ·¿¤ÎÊѹ¹²Äǽ¤Êº¸ÊÕÃÍ -¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ÌÀ¼¨Åª¤ËÀë¸À¤ò¹Ô¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤; -\fIerrno\fP ¤Ï¥Þ¥¯¥í¤Î¾ì¹ç¤â¤¢¤ê¤¨¤ë¡£ -\fIerrno\fP ¤Ï¥¹¥ì¥Ã¥ÉËè¤ËÃͤò»ý¤Ä¡£ -¤Ä¤Þ¤ê¤¢¤ë¥¹¥ì¥Ã¥É¤Ç \fIerrno\fP ¤¬ÀßÄꤵ¤ì¤Æ¤â¡¢ -¾¤Î¥¹¥ì¥Ã¥É¤Î \fIerrno\fP ¤Ë¤Ï±Æ¶Á¤·¤Ê¤¤¡£ +\fIerrno\fP は、ISO C standard で \fIint\fP 型の変更可能な左辺値 +として定義されており、明示的に宣言を行ってはならない; +\fIerrno\fP はマクロの場合もありえる。 +\fIerrno\fP はスレッド毎に値を持つ。 +つまりあるスレッドで \fIerrno\fP が設定されても、 +他のスレッドの \fIerrno\fP には影響しない。 .\"O All the error names specified by POSIX.1 .\"O must have distinct values, with the exception of @@ -123,24 +123,24 @@ errno \- ľ .\"O and .\"O .BR EWOULDBLOCK , .\"O which may be the same. -POSIX.1 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥¨¥é¡¼Ì¾¤Ë¤Ï¡¢ -¤½¤ì¤¾¤ì°Û¤Ê¤ëÃͤ¬Âбþ¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -⤷¡¢ +POSIX.1 で定義されているすべてのエラー名には、 +それぞれ異なる値が対応していなければならない。 +但し、 .B EAGAIN -¤È +と .B EWOULDBLOCK -¤ÏÎã³°¤Ç¡¢¤³¤ì¤é¤ÏƱ¤¸Ãͤò»ý¤Ã¤Æ¤â¤è¤¤¡£ +は例外で、これらは同じ値を持ってもよい。 .\" The following is now .\"O .\" POSIX.1 (2001 edition) lists the following symbolic error names. Of .\"O .\" these, \fBEDOM\fP and \fBERANGE\fP are in the ISO C standard. ISO C .\"O .\" Amendment 1 defines the additional error number \fBEILSEQ\fP for .\"O .\" coding errors in multibyte or wide characters. -.\" POSIX.1 (2001 ǯÈÇ) ¤Ç¤Î¥¨¥é¡¼Ì¾¥·¥ó¥Ü¥ë¤Î¥ê¥¹¥È¤ò°Ê²¼¤Ë¼¨¤¹¡£ -.\" ¤³¤ì¤é¤Î¤¦¤Á¡¢ \fBEDOM\fP ¤È \fBERANGE\fP ¤Ï ISO C standard ¤Ë¤¢¤ë¡£ -.\" ¤µ¤é¤Ë¡¢ISO C Amendment 1 ¤Ç¤Ï¡¢¥¨¥é¡¼ÈÖ¹æ \fBEILSEQ\fP ¤¬ -.\" ¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ä¥ï¥¤¥Éʸ»ú¤Ç¤ÎÉä¹æ²½¥¨¥é¡¼¤òɽ¤¹¤¿¤á¤Ë -.\" ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +.\" POSIX.1 (2001 年版) でのエラー名シンボルのリストを以下に示す。 +.\" これらのうち、 \fBEDOM\fP と \fBERANGE\fP は ISO C standard にある。 +.\" さらに、ISO C Amendment 1 では、エラー番号 \fBEILSEQ\fP が +.\" マルチバイト文字やワイド文字での符号化エラーを表すために +.\" 定義されている。 .\" .\"O Below is a list of the symbolic error names that are defined on Linux. .\"O Some of these are marked @@ -151,540 +151,540 @@ POSIX.1 .TP 16 .B E2BIG .\"O Argument list too long (POSIX.1) -°ú¤­¿ô¥ê¥¹¥È¤¬Ä¹²á¤®¤ë (POSIX.1) +引き数リストが長過ぎる (POSIX.1) .TP .B EACCES .\"O Permission denied (POSIX.1) -µö²Ä¤¬¤Ê¤¤ (POSIX.1) +許可がない (POSIX.1) .TP .B EADDRINUSE .\"O Address already in use (POSIX.1) -¥¢¥É¥ì¥¹¤¬¤¹¤Ç¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë (POSIX.1) +アドレスがすでに使用されている (POSIX.1) .TP .B EADDRNOTAVAIL .\"O Address not available (POSIX.1) -¥¢¥É¥ì¥¹¤¬»ÈÍѤǤ­¤Ê¤¤ (POSIX.1) +アドレスが使用できない (POSIX.1) .\"O .\" EADV is only an error on HURD(?) -.\" EADV ¤Ï HURD ¤Ë¤ª¤¤¤Æ¤À¤±¤Î¥¨¥é¡¼(?) +.\" EADV は HURD においてだけのエラー(?) .TP .B EAFNOSUPPORT .\"O Address family not supported (POSIX.1) -¥¢¥É¥ì¥¹¡¦¥Õ¥¡¥ß¥ê¡¼¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤ (POSIX.1) +アドレス・ファミリーがサポートされていない (POSIX.1) .TP .B EAGAIN .\"O Resource temporarily unavailable (may be the same value as .\"O .BR EWOULDBLOCK ) .\"O (POSIX.1) -¥ê¥½¡¼¥¹¤¬°ì»þŪ¤ËÍøÍÑÉÔ²Ä +リソースが一時的に利用不可 .RB ( EWOULDBLOCK -¤ÈƱ¤¸ÃͤǤâ¤è¤¤) (POSIX.1) +と同じ値でもよい) (POSIX.1) .TP .B EALREADY .\"O Connection already in progress (POSIX.1) -Àܳ¤¬´û¤Ë½èÍýÃæ¤Ç¤¢¤ë (POSIX.1) +接続が既に処理中である (POSIX.1) .TP .B EBADE .\"O Invalid exchange -ÉÔÀµ¤Ê¤ä¤ê¼è¤ê (exchange) ¤Ç¤¢¤ë +不正なやり取り (exchange) である .TP .B EBADF .\"O Bad file descriptor (POSIX.1) -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÉÔÀµ¤Ç¤¢¤ë (POSIX.1) +ファイルディスクリプタが不正である (POSIX.1) .TP .B EBADFD .\"O File descriptor in bad state -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÉÔÀµ¤Ê¾õÂ֤Ǥ¢¤ë +ファイルディスクリプタが不正な状態である .TP .B EBADMSG .\"O Bad message (POSIX.1) -¥á¥Ã¥»¡¼¥¸¤¬ÉÔÀµ¤Ç¤¢¤ë (POSIX.1) +メッセージが不正である (POSIX.1) .TP .B EBADR .\"O Invalid request descriptor -ÉÔÀµ¤Ê¥ê¥¯¥¨¥¹¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿ +不正なリクエストディスクリプタ .TP .B EBADRQC .\"O Invalid request code -ÉÔÀµ¤Ê¥ê¥¯¥¨¥¹¥È¥³¡¼¥É +不正なリクエストコード .TP .B EBADSLT .\"O Invalid slot -ÉÔÀµ¤Ê¥¹¥í¥Ã¥È +不正なスロット .\" EBFONT is defined but appears not to be used by kernel or glibc. .TP .B EBUSY .\"O Device or resource busy (POSIX.1) -¥ê¥½¡¼¥¹¤¬»ÈÍÑÃæ¤Ç¤¢¤ë (POSIX.1) +リソースが使用中である (POSIX.1) .TP .B ECANCELED .\"O Operation canceled (POSIX.1) -Áàºî¤¬¥­¥ã¥ó¥»¥ë¤µ¤ì¤¿ (POSIX.1) +操作がキャンセルされた (POSIX.1) .TP .B ECHILD .\"O No child processes (POSIX.1) -»Ò¥×¥í¥»¥¹¤¬Ìµ¤¤ (POSIX.1) +子プロセスが無い (POSIX.1) .TP .B ECHRNG .\"O Channel number out of range -¥Á¥ã¥ó¥Í¥ëÈֹ椬Èϰϳ°¤Ç¤¢¤ë +チャンネル番号が範囲外である .TP .B ECOMM .\"O Communication error on send -Á÷¿®»þ¤ËÄÌ¿®¥¨¥é¡¼¤¬È¯À¸¤·¤¿ +送信時に通信エラーが発生した .TP .B ECONNABORTED .\"O Connection aborted (POSIX.1) -Àܳ¤¬Ãæ»ß¤µ¤ì¤¿ (POSIX.1) +接続が中止された (POSIX.1) .TP .B ECONNREFUSED .\"O Connection refused (POSIX.1) -Àܳ¤¬µñÈݤµ¤ì¤¿ (POSIX.1) +接続が拒否された (POSIX.1) .TP .B ECONNRESET .\"O Connection reset (POSIX.1) -Àܳ¤¬¥ê¥»¥Ã¥È¤µ¤ì¤¿ (POSIX.1) +接続がリセットされた (POSIX.1) .TP .B EDEADLK .\"O Resource deadlock avoided (POSIX.1) -¥ê¥½¡¼¥¹¤Î¥Ç¥Ã¥É¥í¥Ã¥¯¤ò²óÈò¤·¤¿ (POSIX.1) +リソースのデッドロックを回避した (POSIX.1) .TP .B EDEADLOCK .\"O Synonym for .\"O .B EDEADLK .B EDEADLK -¤ÎƱµÁ¸ì +の同義語 .TP .B EDESTADDRREQ .\"O Destination address required (POSIX.1) -°¸À襢¥É¥ì¥¹¤¬É¬ÍפǤ¢¤ë (POSIX.1) +宛先アドレスが必要である (POSIX.1) .TP .B EDOM .\"O Mathematics argument out of domain of function (POSIX.1, C99) -¿ô³Ø´Ø¿ô¤Ç°ú¤­¿ô¤¬Îΰ賰¤Ç¤¢¤ë (out of domain) +数学関数で引き数が領域外である (out of domain) .\" EDOTDOT is defined but appears to be unused .TP .B EDQUOT .\" POSIX just says "Reserved" .\"O Disk quota exceeded (POSIX.1) -¥Ç¥£¥¹¥¯¡¦¥¯¥©¡¼¥¿ (quota) ¤òĶ²á¤·¤¿ (POSIX.1) +ディスク・クォータ (quota) を超過した (POSIX.1) .TP .B EEXIST .\"O File exists (POSIX.1) -¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë (POSIX.1) +ファイルが存在する (POSIX.1) .TP .B EFAULT .\"O Bad address (POSIX.1) -¥¢¥É¥ì¥¹¤¬ÉÔÀµ¤Ç¤¢¤ë (POSIX.1) +アドレスが不正である (POSIX.1) .TP .B EFBIG .\"O File too large (POSIX.1) -¥Õ¥¡¥¤¥ë¤¬Â礭²á¤®¤ë (POSIX.1) +ファイルが大き過ぎる (POSIX.1) .TP .B EHOSTDOWN .\"O Host is down -¥Û¥¹¥È¤¬¥À¥¦¥ó¤·¤Æ¤¤¤ë +ホストがダウンしている .TP .B EHOSTUNREACH .\"O Host is unreachable (POSIX.1) -¥Û¥¹¥È¤ËÅþãÉÔǽ¤Ç¤¢¤ë (POSIX.1) +ホストに到達不能である (POSIX.1) .TP .B EIDRM .\"O Identifier removed (POSIX.1) -¼±Ê̻Ҥ¬ºï½ü¤µ¤ì¤¿ (POSIX.1) +識別子が削除された (POSIX.1) .TP .B EILSEQ .\"O Illegal byte sequence (POSIX.1, C99) -ÉÔÀµ¤Ê¥Ð¥¤¥ÈÎó (POSIX.1, C99) +不正なバイト列 (POSIX.1, C99) .TP .B EINPROGRESS .\"O Operation in progress (POSIX.1) -Áàºî¤¬¼Â¹ÔÃæ¤Ç¤¢¤ë (POSIX.1) +操作が実行中である (POSIX.1) .TP .B EINTR .\"O Interrupted function call (POSIX.1); see .\"O .BR signal (7). -´Ø¿ô¸Æ¤Ó½Ð¤·¤¬³ä¤ê¹þ¤Þ¤ì¤¿ (POSIX.1); +関数呼び出しが割り込まれた (POSIX.1); .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .\"O Invalid argument (POSIX.1) -°ú¿ô¤¬Ìµ¸ú¤Ç¤¢¤ë (POSIX.1) +引数が無効である (POSIX.1) .TP .B EIO .\"O Input/output error (POSIX.1) -Æþ½ÐÎÏ¥¨¥é¡¼ (POSIX.1) +入出力エラー (POSIX.1) .TP .B EISCONN .\"O Socket is connected (POSIX.1) -¥½¥±¥Ã¥È¤¬Àܳ¤µ¤ì¤Æ¤¤¤ë (POSIX.1) +ソケットが接続されている (POSIX.1) .TP .B EISDIR .\"O Is a directory (POSIX.1) -¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë (POSIX.1) +ディレクトリである (POSIX.1) .TP .B EISNAM .\"O Is a named type file -̾Á°ÉÕ¤­¤Î¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë +名前付きのファイルである .TP .B EKEYEXPIRED .\"O Key has expired -¸°¤¬´ü¸ÂÀÚ¤ì¤È¤Ê¤Ã¤¿ +鍵が期限切れとなった .TP .B EKEYREJECTED .\"O Key was rejected by service -¸°¤¬¥µ¡¼¥Ð¤Ë¤è¤êµñÈݤµ¤ì¤¿ +鍵がサーバにより拒否された .TP .B EKEYREVOKED .\"O Key has been revoked -¸°¤¬Ìµ¸ú¤È¤Ê¤Ã¤¿ +鍵が無効となった .TP .B EL2HLT .\"O Level 2 halted -Ää»ß (¥ì¥Ù¥ë 2) +停止 (レベル 2) .TP .B EL2NSYNC .\"O Level 2 not synchronized -Ʊ´ü¤Ç¤­¤Æ¤¤¤Ê¤¤ (¥ì¥Ù¥ë 2) +同期できていない (レベル 2) .TP .B EL3HLT .\"O Level 3 halted -Ää»ß (¥ì¥Ù¥ë 3) +停止 (レベル 3) .TP .B EL3RST .\"O Level 3 halted -¥ê¥»¥Ã¥È (¥ì¥Ù¥ë 3) +リセット (レベル 3) .TP .B ELIBACC .\"O Cannot access a needed shared library -ɬÍפʶ¦Í­¥é¥¤¥Ö¥é¥ê¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤«¤Ã¤¿ +必要な共有ライブラリにアクセスできなかった .TP .B ELIBBAD .\"O Accessing a corrupted shared library -²õ¤ì¤¿¶¦Í­¥é¥¤¥Ö¥é¥ê¤Ë¥¢¥¯¥»¥¹¤·¤è¤¦¤È¤·¤¿ +壊れた共有ライブラリにアクセスしようとした .TP .B ELIBMAX .\"O Attempting to link in too many shared libraries -¥ê¥ó¥¯¤·¤è¤¦¤È¤·¤¿¶¦Í­¥é¥¤¥Ö¥é¥ê¤¬Â¿²á¤®¤ë +リンクしようとした共有ライブラリが多過ぎる .TP .B ELIBSCN .\"O lib section in a.out corrupted -a.out ¤Î¥é¥¤¥Ö¥é¥ê¥»¥¯¥·¥ç¥ó¤¬²õ¤ì¤Æ¤¤¤ë (corrupted) +a.out のライブラリセクションが壊れている (corrupted) .TP .B ELIBEXEC .\"O Cannot exec a shared library directly -¶¦Í­¥é¥¤¥Ö¥é¥ê¤òľÀܼ¹ԤǤ­¤Ê¤«¤Ã¤¿ +共有ライブラリを直接実行できなかった .TP .B ELOOP .\"O Too many levels of symbolic links (POSIX.1) -¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Î²ó¿ô¤¬Â¿²á¤®¤ë (POSIX.1) +シンボリック・リンクの回数が多過ぎる (POSIX.1) .\" ELNRNG is defined but appears to be unused .TP .B EMEDIUMTYPE .\"O Wrong medium type -´Ö°ã¤Ã¤¿¥á¥Ç¥£¥¢¼ïÊ̤Ǥ¢¤ë +間違ったメディア種別である .TP .B EMFILE .\"O Too many open files (POSIX.1) -¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤¬Â¿²á¤®¤ë (POSIX.1) +オープンされているファイルが多過ぎる (POSIX.1) .TP .B EMLINK .\"O Too many links (POSIX.1) -¥ê¥ó¥¯¤¬Â¿²á¤®¤ë (POSIX.1) +リンクが多過ぎる (POSIX.1) .TP .B EMSGSIZE .\"O Message too long (POSIX.1) -¥á¥Ã¥»¡¼¥¸¤¬Ä¹²á¤®¤ë (POSIX.1) +メッセージが長過ぎる (POSIX.1) .TP .B EMULTIHOP .\" POSIX says "Reserved" .\"O Multihop attempted (POSIX.1) -¥Þ¥ë¥Á¥Û¥Ã¥× (multihop) ¤ò»î¤ß¤¿ (POSIX.1) +マルチホップ (multihop) を試みた (POSIX.1) .TP .B ENAMETOOLONG .\"O Filename too long (POSIX.1) -¥Õ¥¡¥¤¥ë̾¤¬Ä¹²á¤®¤ë (POSIX.1) +ファイル名が長過ぎる (POSIX.1) .\" ENAVAIL is defined, but appears not to be used .TP .B ENETDOWN .\"O Network is down (POSIX.1) -¥Í¥Ã¥È¥ï¡¼¥¯¤¬ÉÔÄ̤Ǥ¢¤ë (POSIX.1) +ネットワークが不通である (POSIX.1) .TP .B ENETRESET .\"O Connection aborted by network (POSIX.1) -Àܳ¤¬¥Í¥Ã¥È¥ï¡¼¥¯Â¦¤«¤éÃæ»ß¤µ¤ì¤¿ (POSIX.1) +接続がネットワーク側から中止された (POSIX.1) .TP .B ENETUNREACH .\"O Network unreachable (POSIX.1) -¥Í¥Ã¥È¥ï¡¼¥¯¤¬ÅþãÉÔǽ¤Ç¤¢¤ë (POSIX.1) +ネットワークが到達不能である (POSIX.1) .TP .B ENFILE .\"O Too many open files in system (POSIX.1) -¥·¥¹¥Æ¥àÁ´ÂΤǥª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤¬Â¿²á¤®¤ë (POSIX.1) +システム全体でオープンされているファイルが多過ぎる (POSIX.1) .\" ENOANO is defined but appears to be unused. .TP .B ENOBUFS .\"O No buffer space available (POSIX.1 (XSI STREAMS option)) -»ÈÍѲÄǽ¤Ê¥Ð¥Ã¥Õ¥¡¶õ´Ö¤¬¤Ê¤¤ (POSIX.1 (XSI STREAMS option)) +使用可能なバッファ空間がない (POSIX.1 (XSI STREAMS option)) .\" ENOCSI is defined but appears to be unused. .TP .B ENODATA .\"O No message is available on the STREAM head read queue (POSIX.1) -¥¹¥È¥ê¡¼¥à¤ÎÆɤ߽Ф·¥­¥å¡¼¤ÎÀèƬ¤ËÆɤ߽Ф·²Äǽ¤Ê¥á¥Ã¥»¡¼¥¸¤¬¤Ê¤¤ +ストリームの読み出しキューの先頭に読み出し可能なメッセージがない (POSIX.1) .TP .B ENODEV .\"O No such device (POSIX.1) -¤½¤Î¤è¤¦¤Ê¥Ç¥Ð¥¤¥¹¤Ï̵¤¤ (POSIX.1) +そのようなデバイスは無い (POSIX.1) .TP .B ENOENT .\"O No such file or directory (POSIX.1) -¤½¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥ì¥¯¥È¥ê¤Ï̵¤¤ (POSIX.1) +そのようなファイルやディレクトリは無い (POSIX.1) .TP .B ENOEXEC .\"O Exec format error (POSIX.1) -¼Â¹Ô¥Õ¥¡¥¤¥ë·Á¼°¤Î¥¨¥é¡¼ (POSIX.1) +実行ファイル形式のエラー (POSIX.1) .TP .B ENOKEY .\"O Required key not available -Í׵ᤵ¤ì¤¿¸°¤¬ÍøÍѤǤ­¤Ê¤¤ +要求された鍵が利用できない .TP .B ENOLCK .\"O No locks available (POSIX.1) -ÍøÍѤǤ­¤ë¥í¥Ã¥¯¤¬Ìµ¤¤ (POSIX.1) +利用できるロックが無い (POSIX.1) .TP .B ENOLINK .\" POSIX says "Reserved" .\"O Link has been severed (POSIX.1) -¥ê¥ó¥¯¤¬ÀÚ¤ì¤Æ¤¤¤ë (POSIX.1) +リンクが切れている (POSIX.1) .TP .B ENOMEDIUM .\"O No medium found -¥á¥Ç¥£¥¢¤¬¸«¤Ä¤«¤é¤Ê¤¤ +メディアが見つからない .TP .B ENOMEM .\"O Not enough space (POSIX.1) -½½Ê¬¤Ê¶õ¤­¥á¥â¥êÎΰ褬̵¤¤ (POSIX.1) +十分な空きメモリ領域が無い (POSIX.1) .TP .B ENOMSG .\"O No message of the desired type (POSIX.1) -Í׵ᤵ¤ì¤¿·¿¤Î¥á¥Ã¥»¡¼¥¸¤¬Â¸ºß¤·¤Ê¤¤ (POSIX.1) +要求された型のメッセージが存在しない (POSIX.1) .TP .B ENONET .\"O Machine is not on the network -¥Þ¥·¥ó¤¬¥Í¥Ã¥È¥ï¡¼¥¯¾å¤Ë¤Ê¤¤ +マシンがネットワーク上にない .TP .B ENOPKG .\"O Package not installed -¥Ñ¥Ã¥±¡¼¥¸¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Ê¤¤ +パッケージがインストールされていない .TP .B ENOPROTOOPT .\"O Protocol not available (POSIX.1) -»ØÄꤵ¤ì¤¿¥×¥í¥È¥³¥ë¤¬ÍøÍѤǤ­¤Ê¤¤ (POSIX.1) +指定されたプロトコルが利用できない (POSIX.1) .TP .B ENOSPC .\"O No space left on device (POSIX.1) -¥Ç¥Ð¥¤¥¹¤Ë¶õ¤­Îΰ褬̵¤¤ (POSIX.1) +デバイスに空き領域が無い (POSIX.1) .TP .B ENOSR .\"O No STREAM resources (POSIX.1 (XSI STREAMS option)) -»ØÄꤵ¤ì¤¿¥¹¥È¥ê¡¼¥à¡¦¥ê¥½¡¼¥¹¤¬Â¸ºß¤·¤Ê¤¤ (POSIX.1 (XSI STREAMS option)) +指定されたストリーム・リソースが存在しない (POSIX.1 (XSI STREAMS option)) .TP .B ENOSTR .\"O Not a STREAM (POSIX.1 (XSI STREAMS option)) -¥¹¥È¥ê¡¼¥à¤Ç¤Ï¤Ê¤¤ (POSIX.1 (XSI STREAMS option)) +ストリームではない (POSIX.1 (XSI STREAMS option)) .TP .B ENOSYS .\"O Function not implemented (POSIX.1) -´Ø¿ô¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤ (POSIX.1) +関数が実装されていない (POSIX.1) .TP .B ENOTBLK .\"O Block device required -¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤¬É¬ÍפǤ¢¤ë +ブロックデバイスが必要である .TP .B ENOTCONN .\"O The socket is not connected (POSIX.1) -¥½¥±¥Ã¥È¤¬Àܳ¤µ¤ì¤Æ¤¤¤Ê¤¤ (POSIX.1) +ソケットが接続されていない (POSIX.1) .TP .B ENOTDIR .\"O Not a directory (POSIX.1) -¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤ (POSIX.1) +ディレクトリではない (POSIX.1) .TP .B ENOTEMPTY .\"O Directory not empty (POSIX.1) -¥Ç¥£¥ì¥¯¥È¥ê¤¬¶õ¤Ç¤Ï¤Ê¤¤ (POSIX.1) +ディレクトリが空ではない (POSIX.1) .\" ENOTNAM is defined but appears to be unused. .TP .B ENOTSOCK .\"O Not a socket (POSIX.1) -¥½¥±¥Ã¥È¤Ç¤Ï¤Ê¤¤ (POSIX.1) +ソケットではない (POSIX.1) .TP .B ENOTSUP .\"O Operation not supported (POSIX.1) -Áàºî¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤ (POSIX.1) +操作がサポートされていない (POSIX.1) .TP .B ENOTTY .\"O Inappropriate I/O control operation (POSIX.1) -I/O À©¸æÁàºî¤¬Å¬ÀڤǤʤ¤ (POSIX.1) +I/O 制御操作が適切でない (POSIX.1) .TP .B ENOTUNIQ .\"O Name not unique on network -̾Á°¤¬¥Í¥Ã¥È¥ï¡¼¥¯¤Ç°ì°Õ¤Ç¤Ï¤Ê¤¤ +名前がネットワークで一意ではない .TP .B ENXIO .\"O No such device or address (POSIX.1) -¤½¤Î¤è¤¦¤Ê¥Ç¥Ð¥¤¥¹¤ä¥¢¥É¥ì¥¹¤Ï¤Ê¤¤ (POSIX.1) +そのようなデバイスやアドレスはない (POSIX.1) .TP .B EOPNOTSUPP .\"O Operation not supported on socket (POSIX.1) -¥½¥±¥Ã¥È¤Ç¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤Áàºî¤Ç¤¢¤ë (POSIX.1) +ソケットでサポートしていない操作である (POSIX.1) .sp .\"O .RB ( ENOTSUP .\"O and .\"O .B EOPNOTSUPP .\"O have the same value on Linux, but .\"O according to POSIX.1 these error values should be distinct.) -(Linux ¤Ç¤Ï +(Linux では .B ENOTSUP -¤È +と .B EOPNOTSUPP -¤ÏƱ¤¸Ãͤò»ý¤Ä¤¬¡¢ -POSIX.1 ¤Ë½¾¤¨¤Ðξ¼Ô¤Î¥¨¥é¡¼Ãͤ϶èÊ̤µ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£) +は同じ値を持つが、 +POSIX.1 に従えば両者のエラー値は区別されるべきである。) .TP .B EOVERFLOW .\"O Value too large to be stored in data type (POSIX.1) -»ØÄꤵ¤ì¤¿¥Ç¡¼¥¿·¿¤Ë³ÊǼ¤¹¤ë¤Ë¤ÏÃͤ¬Â礭²á¤®¤ë (POSIX.1) +指定されたデータ型に格納するには値が大き過ぎる (POSIX.1) .TP .B EPERM .\"O Operation not permitted (POSIX.1) -Áàºî¤¬µö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤ (POSIX.1) +操作が許可されていない (POSIX.1) .TP .B EPFNOSUPPORT .\"O Protocol family not supported -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥×¥í¥È¥³¥ë¥Õ¥¡¥ß¥ê¡¼¤Ç¤¢¤ë +サポートされていないプロトコルファミリーである .TP .B EPIPE .\"O Broken pipe (POSIX.1) -¥Ñ¥¤¥×¤¬²õ¤ì¤Æ¤¤¤ë (POSIX.1) +パイプが壊れている (POSIX.1) .TP .B EPROTO .\"O Protocol error (POSIX.1) -¥×¥í¥È¥³¥ë¡¦¥¨¥é¡¼ (POSIX.1) +プロトコル・エラー (POSIX.1) .TP .B EPROTONOSUPPORT .\"O Protocol not supported (POSIX.1) -¥×¥í¥È¥³¥ë¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤ (POSIX.1) +プロトコルがサポートされていない (POSIX.1) .TP .B EPROTOTYPE .\"O Protocol wrong type for socket (POSIX.1) -¥½¥±¥Ã¥È¤Ë»ØÄê¤Ç¤­¤Ê¤¤¥×¥í¥È¥³¥ë¡¦¥¿¥¤¥×¤Ç¤¢¤ë (POSIX.1) +ソケットに指定できないプロトコル・タイプである (POSIX.1) .TP .B ERANGE .\"O Result too large (POSIX.1, C99) -·ë²Ì¤¬Â礭²á¤®¤ë (POSIX.1, C99) +結果が大き過ぎる (POSIX.1, C99) .TP .B EREMCHG .\"O Remote address changed -¥ê¥â¡¼¥È¥¢¥É¥ì¥¹¤¬ÊѤï¤Ã¤¿ +リモートアドレスが変わった .TP .B EREMOTE .\"O Object is remote -¥ª¥Ö¥¸¥§¥¯¥È¤¬¥ê¥â¡¼¥È¤Ë¤¢¤ë +オブジェクトがリモートにある .TP .B EREMOTEIO .\"O Remote I/O error -¥ê¥â¡¼¥È I/O ¥¨¥é¡¼ +リモート I/O エラー .TP .B ERESTART .\"O Interrupted system call should be restarted -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ÃæÃǤµ¤ìºÆ¥¹¥¿¡¼¥È¤¬É¬ÍפǤ¢¤ë +システムコールが中断され再スタートが必要である .TP .B EROFS .\"O Read-only file system (POSIX.1) -Æɤ߽Ф·ÀìÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë (POSIX.1) +読み出し専用のファイルシステムである (POSIX.1) .TP .B ESHUTDOWN .\"O Cannot send after transport endpoint shutdown -ÄÌ¿®Áê¼ê¤¬¥·¥ã¥Ã¥È¥À¥¦¥ó¤µ¤ì¤ÆÁ÷¿®¤Ç¤­¤Ê¤¤ +通信相手がシャットダウンされて送信できない .TP .B ESPIPE .\"O Invalid seek (POSIX.1) -̵¸ú¤Ê¥·¡¼¥¯ (POSIX.1) +無効なシーク (POSIX.1) .TP .B ESOCKTNOSUPPORT .\"O Socket type not supported -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥½¥±¥Ã¥È¼ïÊ̤Ǥ¢¤ë +サポートされていないソケット種別である .TP .B ESRCH .\"O No such process (POSIX.1) -¤½¤Î¤è¤¦¤Ê¥×¥í¥»¥¹¤Ï̵¤¤ (POSIX.1) +そのようなプロセスは無い (POSIX.1) .\" ESRMNT is defined but appears not to be used .TP .B ESTALE .\"O Stale file handle (POSIX.1) -¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤¬¸Å¤¤¾õÂ֤ˤʤäƤ¤¤ë (POSIX.1) +ファイルハンドルが古い状態になっている (POSIX.1) .sp .\"O This error can occur for NFS and for other file systems -NFS ¤ä¾¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Çµ¯¤³¤ê¤¦¤ë¡£ +NFS や他のファイルシステムで起こりうる。 .TP .B ESTRPIPE .\"O Streams pipe error -¥¹¥È¥ê¡¼¥à¡¦¥Ñ¥¤¥×¡¦¥¨¥é¡¼ +ストリーム・パイプ・エラー .TP .B ETIME .\"O Timer expired .\"O (POSIX.1 (XSI STREAMS option)) -»þ´Ö¤¬·Ð²á¤·¤¿ +時間が経過した (POSIX.1 (XSI STREAMS option)) .sp .\"O (POSIX.1 says "STREAM .\"O .BR ioctl (2) .\"O timeout") -(POSIX.1 ¤Ç¤Ï "STREAM +(POSIX.1 では "STREAM .BR ioctl (2) -timeout" ¤È½ñ¤«¤ì¤Æ¤¤¤ë) +timeout" と書かれている) .TP .B ETIMEDOUT .\"O Connection timed out (POSIX.1) -Áàºî¤¬¥¿¥¤¥à¥¢¥¦¥È¤·¤¿ (POSIX.1) +操作がタイムアウトした (POSIX.1) .\" ETOOMANYREFS is defined, but appears not to be used. .TP .B ETXTBSY .\"O Text file busy (POSIX.1) -¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤¬»ÈÍÑÃæ¤Ç¤¢¤ë (POSIX.1) +テキストファイルが使用中である (POSIX.1) .TP .B EUCLEAN -.\"Omotoki: °ÕÌ£¤¬Ê¬¤«¤é¤Ê¤¤¤Î¤Ç¡¢¤½¤Î¤Þ¤Þ¸¶Ê¸¤ò»Ä¤·¤Æ¤¢¤ë¡£ +.\"Omotoki: 意味が分からないので、そのまま原文を残してある。 .\"O Structure needs cleaning Structure needs cleaning .TP .B EUNATCH .\"O Protocol driver not attached -¥×¥í¥È¥³¥ë¤Î¥É¥é¥¤¥Ð¤¬ÉÕÍ¿ (attach) ¤µ¤ì¤Æ¤¤¤Ê¤¤ +プロトコルのドライバが付与 (attach) されていない .TP .B EUSERS .\"O Too many users -¥æ¡¼¥¶¿ô¤¬Â¿²á¤®¤ë +ユーザ数が多過ぎる .TP .B EWOULDBLOCK .\"O Operation would block (may be same value as .\"O .BR EAGAIN ) .\"O (POSIX.1) -Áàºî¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¸«¹þ¤ß¤Ç¤¢¤ë +操作がブロックされる見込みである .RB ( EAGAIN -¤ÈƱ¤¸ÃͤǤâ¤è¤¤) (POSIX.1) +と同じ値でもよい) (POSIX.1) .TP .B EXDEV .\"O Improper link (POSIX.1) -ÉÔŬÀڤʥê¥ó¥¯ (POSIX.1) +不適切なリンク (POSIX.1) .TP .B EXFULL .\"O Exchange full -ÊÑ´¹¥Æ¡¼¥Ö¥ë¤¬°ìÇդǤ¢¤ë +変換テーブルが一杯である .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O A common mistake is to do -°Ê²¼¤Ï¤è¤¯¤ä¤ë´Ö°ã¤¤¤Ç¤¢¤ë¡£ +以下はよくやる間違いである。 .in +4n .nf @@ -701,19 +701,19 @@ if (somecall() == \-1) { .\"O .IR somecall () .\"O (i.e., it may have been changed by the .\"O .BR printf (3)). -¤³¤Î¤è¤¦¤Ë¤¹¤ë¤È¡¢»²¾È¤·¤Æ¤¤¤ë»þÅÀ¤Ç¤Ï +このようにすると、参照している時点では .I errno -¤Ï¤â¤Ï¤ä +はもはや .IR somecall () -¤«¤éÊÖ¤µ¤ì¤¿ÃͤòÊÝ»ý¤·¤Æ¤¤¤ë¤È¤Ï¸Â¤é¤Ê¤¤ +から返された値を保持しているとは限らない .RB ( printf (3) -¤Ë¤è¤êÊѹ¹¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤)¡£ +により変更されているかもしれない)。 .\"O If the value of .\"O .I errno .\"O should be preserved across a library call, it must be saved: -¥é¥¤¥Ö¥é¥ê¥³¡¼¥ë¤ò¤Þ¤¿¤¤¤Ç +ライブラリコールをまたいで .I errno -¤ÎÃͤòÊݸ¤·¤¿¤¤¾ì¹ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤ËÊݸ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤: +の値を保存したい場合は、以下のように保存しなければならない: .in +4n .nf @@ -737,18 +737,18 @@ if (somecall() == \-1) { .\"O However, on (very) old UNIX systems, there may be no .\"O .I .\"O and the declaration is needed. -ÀΤΠC ¤Ç¤Ï¡¢ +昔の C では、 .I -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯ +をインクルードするのではなく .I errno -¤ò¼êÆ°¤Ç +を手動で .RI ( "extern int errno" -¤Î¤è¤¦¤Ë) ÄêµÁ¤¹¤ë¤Î¤¬°ìÈÌŪ¤Ç¤¢¤Ã¤¿¡£ -.BR "¤³¤Î¤è¤¦¤Ê¤³¤È¤Ï¤·¤Ê¤¤¤³¤È" "¡£" -¤³¤¦¤¹¤ë¤È¡¢ºÇ¶á¤Î¥Ð¡¼¥¸¥ç¥ó¤Î C ¥é¥¤¥Ö¥é¥ê¤Ç¤ÏÀµ¤·¤¯Æ°ºî¤·¤Ê¤¤¤À¤í¤¦¡£ -¤·¤«¤·¡¢(Èó¾ï¤Ë) ¸Å¤¤ UNIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +のように) 定義するのが一般的であった。 +.BR "このようなことはしないこと" "。" +こうすると、最近のバージョンの C ライブラリでは正しく動作しないだろう。 +しかし、(非常に) 古い UNIX システムでは、 .I -¤¬¤Ê¤¯¡¢Àë¸À¤¬É¬Íפʤ³¤È¤¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +がなく、宣言が必要なことがあるかもしれない。 .\"O .SH "SEE ALSO" .BR err (3), .BR error (3), diff --git a/draft/man3/error.3 b/draft/man3/error.3 index 62d7bc26..3922197f 100644 --- a/draft/man3/error.3 +++ b/draft/man3/error.3 @@ -29,12 +29,12 @@ .\" .TH ERROR 3 2010-08-29 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O error, error_at_line, error_message_count, error_on_per_line, \ .\"O error_print_progname \- glibc error reporting functions -error, error_at_line, error_message_count, error_on_per_line, error_print_progname \- glibc ¤Î¥¨¥é¡¼½ñ¤­½Ð¤·´Ø¿ô +error, error_at_line, error_message_count, error_on_per_line, error_print_progname \- glibc のエラー書き出し関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf \fB#include @@ -53,11 +53,11 @@ error, error_at_line, error_message_count, error_on_per_line, error_print_progna \fBextern void (* \fIerror_print_progname\fB) (void); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR error () .\"O is a general error-reporting function. .BR error () -¤ÏÈÆÍÑŪ¤Ê¥¨¥é¡¼½ñ¤­½Ð¤·´Ø¿ô¤Ç¤¢¤ë¡£ +は汎用的なエラー書き出し関数である。 .\"O It flushes .\"O .IR stdout , .\"O and then outputs to @@ -67,64 +67,64 @@ error, error_at_line, error_message_count, error_on_per_line, error_print_progna .\"O format string \fIformat\fP, and, if \fIerrnum\fP is .\"O nonzero, a second colon and a space followed by the string given by .\"O .IR strerror(errnum) . -¤³¤Î´Ø¿ô¤Ïɸ½à½ÐÎÏ +この関数は標準出力 .RI ( stdout ) -¤Ë½ñ¤­½Ð¤·¤Æ¤«¤é¡¢É¸½à¥¨¥é¡¼½ÐÎÏ +に書き出してから、標準エラー出力 .RI ( stderr ) -¤Ë½ñ¤­½Ð¤¹¡£ -½ñ¤­½Ð¤¹ÆâÍƤϡ¢¥×¥í¥°¥é¥à̾¡¦¥³¥í¥ó¡¦¥¹¥Ú¡¼¥¹¡¦ +に書き出す。 +書き出す内容は、プログラム名・コロン・スペース・ .BR printf (3) -·Á¼°¤Î -¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó \fIformat\fP ¤Ç»ØÄꤵ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤Ç¤¢¤ë¡£ -\fIerrnum\fP ¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢2 ¤ÄÌܤΥ³¥í¥ó¤È¥¹¥Ú¡¼¥¹¤Î¸å¤Ë +形式の +フォーマット文字列 \fIformat\fP で指定されたメッセージである。 +\fIerrnum\fP が 0 以外の場合、2 つ目のコロンとスペースの後に .I strerror(errnum) -¤Ç»ØÄꤵ¤ì¤¿Ê¸»úÎó¤â½ñ¤­½Ð¤¹¡£ +で指定された文字列も書き出す。 .\"O Any arguments required for .\"O .I format .\"O should follow .\"O .I format .\"O in the argument list. .I format -¤ËɬÍפÊǤ°Õ¤Î°ú¤­¿ô¤¬¡¢°ú¤­¿ô¥ê¥¹¥È¤Î +に必要な任意の引き数が、引き数リストの .I format -¤Î¸å¤Ë³¤¯¡£ +の後に続く。 .\"O The output is terminated by a newline character. -½ÐÎϤνªÃ¼¤Ë¤Ï²þ¹Ôʸ»ú¤¬ÉÕ¤¯¡£ +出力の終端には改行文字が付く。 .\"O The program name printed by .\"O .BR error () .\"O is the value of the global variable .\"O .BR program_invocation_name (3). .BR error () -¤Ç½ÐÎϤµ¤ì¤ë¥×¥í¥°¥é¥à̾¤Ï¡¢Âç°èÊÑ¿ô +で出力されるプログラム名は、大域変数 .BR program_invocation_name (3) -¤ÎÃͤǤ¢¤ë¡£ +の値である。 .\"O .I program_invocation_name .\"O initially has the same value as .\"O .IR main ()'s .\"O .IR argv[0] . .I program_invocation_name -¤Î½é´üÃÍ¤Ï +の初期値は .IR main () -¤Î +の .I argv[0] -¤ÎÃͤÈÅù¤·¤¤¡£ +の値と等しい。 .\"O The value of this variable can be modified to change the output of .\"O .BR error (). -¤³¤ÎÊÑ¿ô¤ÎÃͤÏÊѹ¹²Äǽ¤Ç¤¢¤ê¡¢Êѹ¹¤¹¤ë¤È +この変数の値は変更可能であり、変更すると .BR error () -¤Î½ÐÎϤ¬ÊѤï¤ë¡£ +の出力が変わる。 .\"O If \fIstatus\fP has a nonzero value, then .\"O .BR error () .\"O calls .\"O .BR exit (3) .\"O to terminate the program using the given value as the exit status. -\fIstatus\fP ¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢ +\fIstatus\fP が 0 以外の場合、 .BR error () -¤Ï +は .BR exit (3) -¤ò¸Æ¤Ó½Ð¤·¤Æ¡¢»ØÄꤵ¤ì¤¿½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ç¥×¥í¥°¥é¥à¤ò½ªÎ»¤µ¤»¤ë¡£ +を呼び出して、指定された終了ステータスでプログラムを終了させる。 .\"O The .\"O .BR error_at_line () @@ -135,33 +135,33 @@ error, error_at_line, error_message_count, error_on_per_line, error_print_progna .\"O and .\"O .IR linenum . .BR error_at_line () -´Ø¿ô¤Ï¡¢°ú¤­¿ô +関数は、引き数 .I filename -¤È +と .I linenum -¤¬Äɲ䵤ì¤Æ¤¤¤ë°Ê³°¤Ï¡¢ +が追加されている以外は、 .BR error () -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .\"O The output produced is as for .\"O .BR error (), .\"O except that after the program name are written: a colon, the value of .\"O .IR filename , .\"O a colon, and the value of .\"O .IR linenum . -À¸À®¤µ¤ì¤ë½ÐÎϤϡ¢¥×¥í¥°¥é¥à̾¤Î¸å¤Ë -¥³¥í¥ó¡¦\fIfilename\fR ¤ÎÃÍ¡¦¥³¥í¥ó¡¦\fIlinenum\fR ¤ÎÃͤ¬½ñ¤­½Ð¤µ¤ì¤ë°Ê³°¤Ï¡¢ +生成される出力は、プログラム名の後に +コロン・\fIfilename\fR の値・コロン・\fIlinenum\fR の値が書き出される以外は、 .BR error () -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .\"O The preprocessor values \fB__LINE__\fP and .\"O \fB__FILE__\fP may be useful when calling .\"O .BR error_at_line (), .\"O but other values can also be used. .\"O For example, these arguments could refer to a location in an input file. -¥×¥ê¥×¥í¥»¥Ã¥µ¤ÎÃÍ \fB__LINE__\fP ¤È \fB__FILE__\fP ¤Ï¡¢ +プリプロセッサの値 \fB__LINE__\fP と \fB__FILE__\fP は、 .BR error_at_line () -¤ò¸Æ¤Ó½Ð¤¹¤È¤­¤ËÌò¤ËΩ¤Ä¡£ -¤½¤Î¾¤Î¥×¥ê¥×¥í¥»¥Ã¥µ¤ÎÃͤâ»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -Î㤨¤Ð¡¢¤³¤ì¤é¤Î°ú¤­¿ô¤ÇÆþÎÏ¥Õ¥¡¥¤¥ë¤Ë¤ª¤±¤ë°ÌÃÖ¤ò»²¾È¤Ç¤­¤ë¡£ +を呼び出すときに役に立つ。 +その他のプリプロセッサの値も使うことができる。 +例えば、これらの引き数で入力ファイルにおける位置を参照できる。 .\"O If the global variable \fIerror_one_per_line\fP is set nonzero, .\"O a sequence of @@ -169,22 +169,22 @@ error, error_at_line, error_message_count, error_on_per_line, error_print_progna .\"O calls with the .\"O same value of \fIfilename\fP and \fIlinenum\fP will result in only .\"O one message (the first) being output. -Âç°èÊÑ¿ô \fIerror_one_per_line\fP ¤¬ 0 °Ê³°¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -\fIfilename\fP ¤È \fIlinenum\fP ¤ÎÃͤ¬¶¦¤ËÅù¤·¤¤ +大域変数 \fIerror_one_per_line\fP が 0 以外に設定されている場合、 +\fIfilename\fP と \fIlinenum\fP の値が共に等しい .BR error_at_line () -¤Î¸Æ¤Ó½Ð¤·¤Ï¡¢ -1 ¤Ä¤Î (ºÇ½é¤Î) ¥á¥Ã¥»¡¼¥¸¤Î½ÐÎϤˤޤȤá¤é¤ì¤ë¡£ +の呼び出しは、 +1 つの (最初の) メッセージの出力にまとめられる。 .\"O The global variable \fIerror_message_count\fP counts the number of .\"O messages that have been output by .\"O .BR error () .\"O and .\"O .BR error_at_line (). -Âç°èÊÑ¿ô \fIerror_message_count\fP ¤Ï¡¢ +大域変数 \fIerror_message_count\fP は、 .BR error () -¤È +と .BR error_at_line () -¤Ç½ÐÎϤµ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤Î¿ô¤òɽ¤¹¡£ +で出力されたメッセージの数を表す。 .\"O If the global variable \fIerror_print_progname\fP .\"O is assigned the address of a function @@ -192,21 +192,21 @@ error, error_at_line, error_message_count, error_on_per_line, error_print_progna .\"O instead of prefixing the message with the program name and colon. .\"O The function should print a suitable string to .\"O .IR stderr . -Âç°èÊÑ¿ô \fIerror_print_progname\fP ¤Ë -´Ø¿ô¤Î¥¢¥É¥ì¥¹¤¬³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¾ì¹ç (¤Ä¤Þ¤ê NULL ¤Ç¤Ï¤Ê¤¤¾ì¹ç)¡¢ -¥á¥Ã¥»¡¼¥¸¤ÎÁ°¤Ë¥×¥í¥°¥é¥à̾¤È¥³¥í¥ó¤ò½ñ¤­½Ð¤¹¤Î¤Ç¤Ï¤Ê¤¯¡¢ -¤³¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¡£ -¤³¤Î´Ø¿ô¤Ïɸ½à¥¨¥é¡¼½ÐÎÏ +大域変数 \fIerror_print_progname\fP に +関数のアドレスが割り当てられている場合 (つまり NULL ではない場合)、 +メッセージの前にプログラム名とコロンを書き出すのではなく、 +この関数を呼び出す。 +この関数は標準エラー出力 .RI ( stderr ) -¤ËÂФ·¤Æ¤ÎŬÀÚ¤Êʸ»úÎó¤ò½ñ¤­½Ð¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +に対しての適切な文字列を書き出さなければならない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These functions and variables are GNU extensions, and should not be .\"O used in programs intended to be portable. -¤³¤ì¤é¤Î´Ø¿ô¤ÈÊÑ¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ê¡¢ -°Ü¿¢À­¤ò¹Í¤¨¤¿¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +これらの関数と変数は GNU による拡張であり、 +移植性を考えたプログラムでは使用すべきではない。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR err (3), .BR errno (3), .BR exit (3), diff --git a/draft/man3/ether_aton.3 b/draft/man3/ether_aton.3 index 7495d31f..2964f131 100644 --- a/draft/man3/ether_aton.3 +++ b/draft/man3/ether_aton.3 @@ -34,13 +34,13 @@ .\" .TH ETHER_ATON 3 2002-07-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O ether_aton, ether_ntoa, ether_ntohost, ether_hostton, ether_line, .\"O ether_ntoa_r, ether_aton_r \- Ethernet address manipulation routines ether_aton, ether_ntoa, ether_ntohost, ether_hostton, ether_line, -ether_ntoa_r, ether_aton_r \- Ethernet ¥¢¥É¥ì¥¹¤ÎÁàºîÍÑ´Ø¿ô +ether_ntoa_r, ether_aton_r \- Ethernet アドレスの操作用関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -56,7 +56,7 @@ ether_ntoa_r, ether_aton_r \- Ethernet .BI " char *" hostname ); .sp .\"O /* GNU extensions */ -/* GNU ³ÈÄ¥ */ +/* GNU 拡張 */ .br .BI "char *ether_ntoa_r(const struct ether_addr *" addr ", char *" buf ); .sp @@ -64,7 +64,7 @@ ether_ntoa_r, ether_aton_r \- Ethernet .BI " struct ether_addr *" addr ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR ether_aton () .\"O converts the 48-bit Ethernet host address \fIasc\fP .\"O from the standard hex-digits-and-colons notation into binary data in @@ -73,15 +73,15 @@ ether_ntoa_r, ether_aton_r \- Ethernet .\"O overwrite. .\"O .BR ether_aton () .\"O returns NULL if the address is invalid. -´Ø¿ô +関数 .BR ether_aton () -¤Ï¡¢É¸½àŪ¤Ê 16¿Ê¿ô¤È¥³¥í¥ó¤Î·Á¼°¤Ç½ñ¤«¤ì¤¿ 48¥Ó¥Ã¥È¤Î -Ethernet ¥Û¥¹¥È¥¢¥É¥ì¥¹ \fIasc\fP ¤ò¡¢¥Í¥Ã¥È¥ï¡¼¥¯¤Ç¤Î¥Ð¥¤¥È½ç (byte order) -¤Î¥Ð¥¤¥Ê¥ê¥Ç¡¼¥¿¤ËÊÑ´¹¤·¡¢ÀÅŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤¿¥Ç¡¼¥¿ -¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£¤³¤Î¥Ð¥Ã¥Õ¥¡¤Ï¡¢¤³¤ì°Ê¹ß¤Î´Ø¿ô¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë¡£ -¥¢¥É¥ì¥¹¤¬ÉÔÀµ¤Ê¾ì¹ç¡¢ +は、標準的な 16進数とコロンの形式で書かれた 48ビットの +Ethernet ホストアドレス \fIasc\fP を、ネットワークでのバイト順 (byte order) +のバイナリデータに変換し、静的に割り当てられたバッファに格納されたデータ +へのポインタを返す。このバッファは、これ以降の関数呼び出しで上書きされる。 +アドレスが不正な場合、 .BR ether_aton () -¤Ï NULL ¤òÊÖ¤¹¡£ +は NULL を返す。 .PP .\"O The .\"O .BR ether_ntoa () @@ -90,12 +90,12 @@ Ethernet .\"O hex-digits-and-colons notation, omitting leading zeros. .\"O The string is returned in a statically allocated buffer, .\"O which subsequent calls will overwrite. -´Ø¿ô +関数 .BR ether_ntoa () -¤Ï¡¢¥Í¥Ã¥È¥ï¡¼¥¯¤Î¥Ð¥¤¥È½ç¤Çɽ¤µ¤ì¤¿ Ethernet -¥Û¥¹¥È¥¢¥É¥ì¥¹ \fIaddr\fP ¤ò¡¢É¸½àŪ¤Ê 16¿Ê¿ô¤È¥³¥í¥ó¤Î·Á¼°¤Îʸ»úÎó¤ËÊÑ´¹¤¹¤ë¡£ -⤷¡¢ÀèƬ¤Î 0 ¤Ï¾Êά¤µ¤ì¤ë¡£ÊÑ´¹¸å¤Îʸ»úÎó¤ÏÀÅŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥Ð¥Ã¥Õ¥¡ -¤Ë³ÊǼ¤µ¤ì¤ÆÊÖ¤µ¤ì¤ë¡£¤³¤Î¥Ð¥Ã¥Õ¥¡¤Ï¡¢¤³¤ì°Ê¹ß¤Î´Ø¿ô¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë¡£ +は、ネットワークのバイト順で表された Ethernet +ホストアドレス \fIaddr\fP を、標準的な 16進数とコロンの形式の文字列に変換する。 +但し、先頭の 0 は省略される。変換後の文字列は静的に割り当てられたバッファ +に格納されて返される。このバッファは、これ以降の関数呼び出しで上書きされる。 .PP .\"O The .\"O .BR ether_ntohost () @@ -103,12 +103,12 @@ Ethernet .\"O corresponding hostname in .\"O .I /etc/ethers .\"O and returns nonzero if it cannot be found. -´Ø¿ô +関数 .BR ether_ntohost () -¤Ï¡¢Ethernet ¥¢¥É¥ì¥¹¤ËÂбþ¤¹¤ë¥Û¥¹¥È̾¤ò +は、Ethernet アドレスに対応するホスト名を .I /etc/ethers -¤ò¸¡º÷¤·¤Æ³ä¤êÅö¤Æ¤ë¡£Âбþ¤¹¤ë¥Û¥¹¥È̾¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ -Èó 0 ¤òÊÖ¤¹¡£ +を検索して割り当てる。対応するホスト名が見つからなかった場合は、 +非 0 を返す。 .PP .\"O The .\"O .BR ether_hostton () @@ -116,12 +116,12 @@ Ethernet .\"O corresponding Ethernet address in .\"O .I /etc/ethers .\"O and returns nonzero if it cannot be found. -´Ø¿ô +関数 .BR ether_hostton () -¤Ï¡¢¥Û¥¹¥È̾¤ËÂбþ¤¹¤ë Ethernet ¥¢¥É¥ì¥¹¤ò +は、ホスト名に対応する Ethernet アドレスを .I /etc/ethers -¤ò¸¡º÷¤·¤Æ³ä¤êÅö¤Æ¤ë¡£Âбþ¤¹¤ë¥Û¥¹¥È̾¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ -Èó 0 ¤òÊÖ¤¹¡£ +を検索して割り当てる。対応するホスト名が見つからなかった場合は、 +非 0 を返す。 .PP .\"O The .\"O .BR ether_line () @@ -134,20 +134,20 @@ Ethernet .\"O .I hostname .\"O must be sufficiently long, for example, have the same length as .\"O .IR line . -´Ø¿ô +関数 .BR ether_line () -¤Ï¡¢ +は、 .I /etc/ethers -·Á¼°¤Ë¤Ê¤Ã¤¿¹Ô¤ò²òÀϤ·¡¢ -¥¢¥É¥ì¥¹¤È¥Û¥¹¥È̾¤ÎÁȤòÊÖ¤¹ +形式になった行を解析し、 +アドレスとホスト名の組を返す .RI ( /etc/ethers -·Á¼°¤Ï¡¢Ethernet ¥¢¥É¥ì¥¹¡¢¥Û¥¹¥È̾¤¬¶õÇòʸ»ú (whitespace) -¤Ç¶èÀÚ¤é¤ì¤¿½ñ¼°¤Ç¡¢\(aq#\(aq °Ê¹ß¤Ï¥³¥á¥ó¥È¤È¤ß¤Ê¤µ¤ì¤ë)¡£ -²òÀϤǤ­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢Èó 0 ¤òÊÖ¤¹¡£ +形式は、Ethernet アドレス、ホスト名が空白文字 (whitespace) +で区切られた書式で、\(aq#\(aq 以降はコメントとみなされる)。 +解析できなかった場合は、非 0 を返す。 .I hostname -¤Ç»ØÄꤵ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Ï½½Ê¬¤ÊŤµ¤¬É¬ÍפǤ¢¤ë¡£¤Ä¤Þ¤ê¡¢ +で指定されたバッファは十分な長さが必要である。つまり、 .I line -¤ÈƱ¤¸Ä¹¤µ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +と同じ長さでなければならない。 .PP .\"O The functions .\"O .BR ether_ntoa_r () @@ -157,25 +157,25 @@ Ethernet .\"O thread-safe versions of \fBether_ntoa\fP() and .\"O .BR ether_aton () .\"O respectively, and do not use static buffers. -´Ø¿ô +関数 .BR ether_ntoa_r () -¤È +と .BR ether_aton_r () -¤Ï¡¢ -¤½¤ì¤¾¤ì +は、 +それぞれ .BR ether_ntoa () -¤È +と .BR ether_aton () -¤Î -¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ê¥Ð¡¼¥¸¥ç¥ó¤Ç¤¢¤ê¡¢ -ÀÅŪ¤Ê¥Ð¥Ã¥Õ¥¡¤ò»ÈÍѤ·¤Ê¤¤¡£ +の +リエントラントでスレッドセーフなバージョンであり、 +静的なバッファを使用しない。 .PP .\"O The structure \fIether_addr\fP is defined in .\"O .I .\"O as: -\fIether_addr\fP ¹½Â¤ÂÎ¤Ï +\fIether_addr\fP 構造体は .I -¤Ç¼¡¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +で次のように定義されている: .sp .in +4n .nf @@ -185,16 +185,16 @@ struct ether_addr { .fi .in .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.3BSD, SunOS. .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O The glibc 2.2.5 implementation of .\"O .BR ether_line () .\"O is broken. -glibc 2.2.5 ¤Ç¤Î +glibc 2.2.5 での .BR ether_line () -¤Î¼ÂÁõ¤Ï¤ª¤«¤·¤¤¡£ +の実装はおかしい。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ethers (5) diff --git a/draft/man3/euidaccess.3 b/draft/man3/euidaccess.3 index dca009c5..213ae1b4 100644 --- a/draft/man3/euidaccess.3 +++ b/draft/man3/euidaccess.3 @@ -28,21 +28,21 @@ .\" .TH EUIDACCESS 3 2010-09-10 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O euidaccess, eaccess \- check effective user's permissions for a file -euidaccess, eaccess \- ¥Õ¥¡¥¤¥ë¤Ø¤Î¥¢¥¯¥»¥¹¸¢¤ò¼Â¸ú¥æ¡¼¥¶¤Ç¥Á¥§¥Ã¥¯¤¹¤ë +euidaccess, eaccess \- ファイルへのアクセス権を実効ユーザでチェックする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "int euidaccess(const char *" pathname ", int " mode ); .BI "int eaccess(const char *" pathname ", int " mode ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Like .\"O .BR access (2), .\"O .BR euidaccess () @@ -54,15 +54,15 @@ euidaccess, eaccess \- .\"O .BR euidaccess () .\"O uses the effective identifiers. .BR access (2) -¤ÈƱÍÍ¡¢ +と同様、 .BR euidaccess () -¤Ï°ú¤­¿ô +は引き数 .I pathname -¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤Îµö²Ä (permission) ¤È¸ºß¤Î¥Á¥§¥Ã¥¯¤ò¹Ô¤¦¡£ +で指定されたファイルの許可 (permission) と存在のチェックを行う。 .BR access (2) -¤Ï¥×¥í¥»¥¹¤Î¼Â (real) ¥æ¡¼¥¶ID / ¼Â¥°¥ë¡¼¥×ID ¤òÍѤ¤¤Æ¥Á¥§¥Ã¥¯¤ò¹Ô¤¦¤Î¤ËÂФ·¡¢ +はプロセスの実 (real) ユーザID / 実グループID を用いてチェックを行うのに対し、 .BR euidaccess () -¤Ï¼Â¸ú (effective) ID ¤òÍѤ¤¤ë¡£ +は実効 (effective) ID を用いる。 .\"O .I mode .\"O is a mask consisting of one or more of @@ -70,24 +70,24 @@ euidaccess, eaccess \- .\"O with the same meanings as for .\"O .BR access (2). .I mode -¤Ï +は .BR R_OK ", " W_OK ", " X_OK ", " F_OK -¤Î°ì¤Ä°Ê¾å¤«¤é¹½À®¤µ¤ì¤ë¥Þ¥¹¥¯¤Ç¤¢¤ë¡£ +の一つ以上から構成されるマスクである。 .BR R_OK ", " W_OK ", " X_OK ", " F_OK -¤Ï +は .BR access (2) -¤ÈƱ¤¸°ÕÌ£¤ò»ý¤Ä¡£ +と同じ意味を持つ。 .\"O .BR eaccess () .\"O is a synonym for .\"O .BR euidaccess (), .\"O provided for compatibility with some other systems. .BR eaccess () -¤Ï +は .BR euidaccess () -¤ÎƱµÁ¸ì¤Ç¤¢¤ê¡¢Â¾¤Î¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤È¤Î¸ß´¹À­¤Î¤¿¤á¤ËÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +の同義語であり、他のいくつかのシステムとの互換性のために提供されている。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success (all requested permissions granted), zero is returned. .\"O On error (at least one bit in .\"O .I mode @@ -95,40 +95,40 @@ euidaccess, eaccess \- .\"O \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç (Í׵ᤷ¤¿Á´¤Æ¤Ë¤Ä¤¤¤Æ¤Îµö²Ä¤¬ÆÀ¤é¤ì¤¿¤é)¡¢¥¼¥í¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç +成功した場合 (要求した全てについての許可が得られたら)、ゼロが返される。 +エラーの場合 .RI ( mode -¤Î¾¯¤Ê¤¯¤È¤â°ì¤Ä¤Î¥Ó¥Ã¥È¤ÇÍ׵ᤷ¤¿µö²Ä¤¬¤Ê¤«¤Ã¤¿¾ì¹ç¤ä¡¢ -¾¤Î¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç)¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +の少なくとも一つのビットで要求した許可がなかった場合や、 +他のエラーが起こった場合)、\-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O As for .\"O .BR access (2). .BR access (2) -¤ÈƱ¤¸¡£ +と同じ。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The .\"O .BR eaccess () .\"O function was added to glibc in version 2.4. .BR eaccess () -´Ø¿ô¤Ï glibc ¤Î¥Ð¡¼¥¸¥ç¥ó 2.4 ¤ÇÄɲ䵤줿¡£ +関数は glibc のバージョン 2.4 で追加された。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These functions are nonstandard. .\"O Some other systems have an .\"O .\" e.g., FreeBSD 6.1. .\"O .BR eaccess () .\"O function. -¤³¤ì¤é¤Î´Ø¿ô¤ÏÈóɸ½à¤Ç¤¢¤ë¡£ -¾¤Î¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ë¤Ï -.\" Î㤨¤Ð¡¢FreeBSD 6.1. +これらの関数は非標準である。 +他のいくつかのシステムには +.\" 例えば、FreeBSD 6.1. .BR eaccess () -´Ø¿ô¤¬¤¢¤ë¡£ +関数がある。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR access (2), .BR chmod (2), .BR chown (2), diff --git a/draft/man3/exec.3 b/draft/man3/exec.3 index f634ea8c..1696bc17 100644 --- a/draft/man3/exec.3 +++ b/draft/man3/exec.3 @@ -44,21 +44,21 @@ .\" Modified 2005-02-26, Akihiro MOTOKI .\" Updated 2010-10-27, Akihiro Motoki , LDP v3.29 .\" -.\"WORD: null-terminated strings NULL¤Ç½ª¤ï¤ëʸ»úÎó -.\"WORD: anti-Trojan-horse measure ¥È¥í¥¤¤ÎÌÚÇÏÂкö -.\"WORD: external variable ³°ÉôÊÑ¿ô -.\"WORD: current directory first ¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤¬ºÇ½é -.\"WORD: the attempted execve ¸Æ¤Ó½Ð¤½¤¦¤È¤·¤¿execve -.\"WORD: variadic function ²ÄÊÑĹ°ú¤­¿ô´Ø¿ô -.\"WORD: semantics (¥×¥í¥°¥é¥à¤Î)Æ°ºî +.\"WORD: null-terminated strings NULLで終わる文字列 +.\"WORD: anti-Trojan-horse measure トロイの木馬対策 +.\"WORD: external variable 外部変数 +.\"WORD: current directory first カレントディレクトリが最初 +.\"WORD: the attempted execve 呼び出そうとしたexecve +.\"WORD: variadic function 可変長引き数関数 +.\"WORD: semantics (プログラムの)動作 .\" .TH EXEC 3 2010-09-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O execl, execlp, execle, execv, execvp, execvpe \- execute a file -execl, execlp, execle, execv, execvp, execvpe \- ¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤¹¤ë +execl, execlp, execle, execv, execvp, execvpe \- ファイルを実行する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .B extern char **environ; @@ -82,15 +82,15 @@ execl, execlp, execle, execv, execvp, execvpe \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR execvpe (): _GNU_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR exec () .\"O family of functions replaces the current process image with a new process @@ -101,17 +101,17 @@ _GNU_SOURCE .\"O .BR execve (2) .\"O for further details about the replacement of the current process image.) .BR exec () -¥Õ¥¡¥ß¥ê¡¼¤Î´Ø¿ô¤Ï¸½ºß¤Î¥×¥í¥»¥¹¥¤¥á¡¼¥¸¤ò¿·¤·¤¤¥×¥í¥»¥¹¥¤¥á¡¼¥¸¤ÇÃÖ¤­ -´¹¤¨¤ë¡£¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤Ï +ファミリーの関数は現在のプロセスイメージを新しいプロセスイメージで置き +換える。このマニュアルで説明されている関数は .BR execve (2) -¤Î¥Õ¥í¥ó¥È¥¨¥ó¥É¤Ç¤¢¤ë¡£ -(¸½ºß¤Î¥×¥í¥»¥¹¥¤¥á¡¼¥¸¤ÎÃÖ¤­´¹¤¨¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤Ï +のフロントエンドである。 +(現在のプロセスイメージの置き換えについての詳細は .BR execve (2) -¤Î¥Þ¥Ë¥å¥¢¥ë¤ò»²¾È) +のマニュアルを参照) .PP .\"O The initial argument for these functions is the name of a file that is .\"O to be executed. -¤³¤ì¤é¤Î´Ø¿ô¤ÎºÇ½é¤Î°ú¤­¿ô¤Ï¡¢¼Â¹Ô¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Î̾Á°¤Ç¤¢¤ë¡£ +これらの関数の最初の引き数は、実行されるファイルの名前である。 .PP .\"O The .\"O .I "const char *arg" @@ -125,18 +125,18 @@ _GNU_SOURCE .\"O .IR arg1 , .\"O \&..., .\"O .IR argn . -´Ø¿ô +関数 .BR execl (), .BR execlp (), .BR execle () -¤Î +の .I "const char *arg" -¤È¤½¤ì¤Ë³¤¯¾ÊάÉôʬ¤Ï +とそれに続く省略部分は .IR arg0 , .IR arg1 , \&..., .I argn -¤È¤ß¤Ê¤µ¤ì¤ë¡£ +とみなされる。 .\"O Together they describe a list of one or more pointers to null-terminated .\"O strings that represent the argument list available to the executed program. .\"O The first argument, by convention, should point to the filename associated @@ -146,14 +146,14 @@ _GNU_SOURCE .\"O be terminated by a NULL .\"O pointer, and, since these are variadic functions, this pointer must be cast .\"O .IR "(char *) NULL" . -¤³¤ì¤é¤Ë¤Ï¡¢¼Â¹Ô¤µ¤ì¤ë¥×¥í¥°¥é¥à¤ÇÍøÍѲÄǽ¤Ê°ú¤­¿ô¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë -(°ú¤­¿ô¤Î¥ê¥¹¥È¤Ï NULL ¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤«¤é¹½À®¤µ¤ì¤ë)¡£ -´·½¬¤È¤·¤Æ¡¢ºÇ½é¤Î°ú¤­¿ô¤Ï¡¢¼Â¹Ô¤µ¤ì¤ë¥Õ¥¡¥¤¥ë̾ -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ë¤¹¤ë¡£°ú¤­¿ô¤Î¥ê¥¹¥È¤Ïɬ¤º NULL -¤Ç½ª¤ï¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï²ÄÊÑĹ°ú¤­¿ô´Ø¿ô¤Ê¤Î¤Ç¡¢ -¤³¤Î¥Ý¥¤¥ó¥¿¤Ï +これらには、実行されるプログラムで利用可能な引き数のリストを指定する +(引き数のリストは NULL で終端された文字列へのポインタから構成される)。 +慣習として、最初の引き数は、実行されるファイル名 +へのポインタにする。引き数のリストは必ず NULL +で終わらなければならず、これらの関数は可変長引き数関数なので、 +このポインタは .I "(char *) NULL" -¤È¥­¥ã¥¹¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +とキャストしなければならない。 .PP .\"O The .\"O .BR execv (), @@ -167,15 +167,15 @@ _GNU_SOURCE .\"O The array of pointers .\"O .I must .\"O be terminated by a NULL pointer. -´Ø¿ô +関数 .BR execv (), .BR execvp (), .BR execvpe () -¤Ï¡¢ÍøÍѲÄǽ¤Ê°ú¤­¿ô¥ê¥¹¥È (NULL ¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ø¤Î -¥Ý¥¤¥ó¥¿¤ÎÇÛÎó) ¤ò¿·¤·¤¤¥×¥í¥°¥é¥à¤ËÅϤ¹¡£ -´·½¬¤È¤·¤Æ¡¢ºÇ½é¤Î°ú¤­¿ô¤Ï¼Â¹Ô¤µ¤ì¤ë¥Õ¥¡¥¤¥ë̾¤Ø -¤Î¥Ý¥¤¥ó¥¿¤Ë¤¹¤ë¡£¥Ý¥¤¥ó¥¿¤ÎÇÛÎó¤Ïɬ¤º -NULL ¤Ç½ª¤ï¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は、利用可能な引き数リスト (NULL で終端された文字列への +ポインタの配列) を新しいプログラムに渡す。 +慣習として、最初の引き数は実行されるファイル名へ +のポインタにする。ポインタの配列は必ず +NULL で終わらなければならない。 .PP .\"O The .\"O .BR execle () @@ -184,12 +184,12 @@ NULL .\"O functions allow the caller to specify the environment of the .\"O executed program via the argument .\"O .IR envp . -´Ø¿ô +関数 .BR execle (), .BR execvpe () -¤Ç¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤¬°ú¤­¿ô +では、呼び出し元が引き数 .I envp -·Ðͳ¼Â¹Ô¤µ¤ì¤ë¥×¥í¥°¥é¥à¤Î´Ä¶­¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +経由実行されるプログラムの環境を指定することができる。 .\"O The .\"O .I envp .\"O argument is an array of pointers to null-terminated strings and @@ -200,13 +200,13 @@ NULL .\"O .I environ .\"O in the calling process. .I envp -°ú¤­¿ô¤Ï¡¢NULL ¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤ÎÇÛÎó¤Ç¤¢¤ê¡¢ -NULL ¥Ý¥¤¥ó¥¿¤Ç½ª¤ï¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¾¤Î´Ø¿ô¤Ç¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î³°ÉôÊÑ¿ô +引き数は、NULL で終端された文字列へのポインタの配列であり、 +NULL ポインタで終わらなければならない。 +他の関数では、呼び出し元のプロセスの外部変数 .B environ -¤«¤é¿·¤·¤¤¥×¥í¥»¥¹ÍѤδĶ­¤òÍ¿¤¨¤ë¡£ +から新しいプロセス用の環境を与える。 .\"O .SS Special semantics for execlp() and execvp() -.SS execlp() ¤È execvp() ¤ÎÆÃÊ̤ÊÆ°ºî +.SS execlp() と execvp() の特別な動作 .PP .\"O The .\"O .BR execlp (), @@ -216,12 +216,12 @@ NULL .\"O functions duplicate the actions of the shell in .\"O searching for an executable file .\"O if the specified filename does not contain a slash (/) character. -´Ø¿ô +関数 .BR execlp (), .BR execvp (), .BR execvpe () -¤Ï¡¢»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë̾¤¬¥¹¥é¥Ã¥·¥å (/) ¤ò´Þ¤ó¤Ç¤¤¤Ê¤¤¾ì¹ç¡¢ -¥·¥§¥ë¤ÈƱ¤¸Æ°ºî¤Ç¼Â¹Ô²Äǽ¤Ê¥Õ¥¡¥¤¥ë¤òõº÷¤¹¤ë¡£ +は、指定されたファイル名がスラッシュ (/) を含んでいない場合、 +シェルと同じ動作で実行可能なファイルを探索する。 .\"O The file is sought in the colon-separated list of directory pathnames .\"O specified in the .\"O .B PATH @@ -232,25 +232,25 @@ NULL .\"O (This .\"O .BR confstr (3) .\"O call typically returns the value "/bin:/usr/bin".) -¥Õ¥¡¥¤¥ë¤Î¸¡º÷¤Ï¡¢´Ä¶­ÊÑ¿ô +ファイルの検索は、環境変数 .B PATH -¤Ç»ØÄꤵ¤ì¤¿¥³¥í¥ó¶èÀÚ¤ê¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Ñ¥¹Ì¾¤Î¥ê¥¹¥È¤òÂоݤ˹Ԥï¤ì¤ë¡£ -¤³¤ÎÊÑ¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¥Ñ¥¹Ì¾¤Î¥ê¥¹¥È¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤȤ·¤Æ¡¢ -¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Î¸å¤í¤Ë¡¢ +で指定されたコロン区切りのディレクトリのパス名のリストを対象に行われる。 +この変数が定義されていない場合、パス名のリストのデフォルト値として、 +カレントディレクトリの後ろに、 .I confstr(_CS_PATH) -¤¬ÊÖ¤¹¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤ò¤Ä¤Ê¤²¤¿Ãͤ¬»ÈÍѤµ¤ì¤ë (¤³¤Î +が返すディレクトリのリストをつなげた値が使用される (この .BR confstr (3) -¤Î¸Æ¤Ó½Ð¤·¤Ç¤ÏÄ̾ï "/bin:/usr/bin" ¤¬ÊÖ¤µ¤ì¤ë)¡£ +の呼び出しでは通常 "/bin:/usr/bin" が返される)。 .\"O If the specified filename includes a slash character, then .\"O .B PATH .\"O is ignored, and the file at the specified pathname is executed. -»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë̾¤¬¥¹¥é¥Ã¥·¥å¤ò´Þ¤à¾ì¹ç¡¢ +指定されたファイル名がスラッシュを含む場合、 .B PATH -¤Ï̵»ë¤µ¤ì¡¢»ØÄꤵ¤ì¤¿¥Ñ¥¹Ì¾¤Î¥Õ¥¡¥¤¥ë¤¬¼Â¹Ô¤µ¤ì¤ë¡£ +は無視され、指定されたパス名のファイルが実行される。 .\"O In addition, certain errors are treated specially. -¤µ¤é¤Ë¡¢¤¤¤¯¤Ä¤«¤Î¥¨¥é¡¼¤ÏÆÃÊ̤˽èÍý¤µ¤ì¤ë¡£ +さらに、いくつかのエラーは特別に処理される。 .\"O If permission is denied for a file (the attempted .\"O .BR execve (2) @@ -262,17 +262,17 @@ NULL .\"O .I errno .\"O set to .\"O .BR EACCES . -¥Õ¥¡¥¤¥ë¤¬¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ç¤Ê¤¤¾ì¹ç (¤³¤Î¤È¤­¸Æ¤Ó½Ð¤½¤¦¤È¤·¤¿ +ファイルが実行ファイルでない場合 (このとき呼び出そうとした .BR execve (2) -¤Ï¥¨¥é¡¼ +はエラー .B EACCES -¤Ç¼ºÇÔ¤¹¤ë)¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï»Ä¤ê¤Î¸¡º÷¥Ñ¥¹¤Î¸¡º÷¤ò³¤±¤ë¡£ -¾¤Ë¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤é¤Ê¤¯¤Ê¤Ã¤¿¾ì¹ç +で失敗する)、これらの関数は残りの検索パスの検索を続ける。 +他にファイルが見つからなくなった場合 .I errno -¤Ë +に .B EACCES -¤òÀßÄꤷÉüµ¢¤¹¤ë¡£ -.\" fujiwara: ¸Ä¿ÍŪ¤Ë¤Ï¡ÖÉüµ¢¤¹¤ë¡×¤ÎÊý¤¬¹¥¤­(^_^; +を設定し復帰する。 +.\" fujiwara: 個人的には「復帰する」の方が好き(^_^; .\"O If the header of a file isn't recognized (the attempted .\"O .BR execve (2) @@ -282,16 +282,16 @@ NULL .\"O .RI ( /bin/sh ) .\"O with the path of the file as its first argument. .\"O (If this attempt fails, no further searching is done.) -¥Õ¥¡¥¤¥ë¤Î¥Ø¥Ã¥À¤¬¼Â¹Ô·Á¼°¤È¤·¤Æǧ¼±¤Ç¤­¤Ê¤¤¾ì¹ç -(¤³¤Î¤È¤­¸Æ¤Ó½Ð¤½¤¦¤È¤·¤¿ +ファイルのヘッダが実行形式として認識できない場合 +(このとき呼び出そうとした .BR execve (2) -¤Ï¥¨¥é¡¼ +はエラー .B ENOEXEC -¤Ç¼ºÇÔ¤¹¤ë)¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï¤½¤Î¥Õ¥¡¥¤¥ë¤òºÇ½é¤Î°ú¤­¿ô¤È¤·¤¿¥·¥§¥ë +で失敗する)、これらの関数はそのファイルを最初の引き数としたシェル .RI ( /bin/sh ) -¤ò¼Â¹Ô¤¹¤ë (¤³¤ì¤Ë¤â¼ºÇÔ¤·¤¿¾ì¹ç¡¢¤³¤ì°Ê¾å¤Î¸¡º÷¤Ï¹Ô¤ï¤ì¤Ê¤¤)¡£ +を実行する (これにも失敗した場合、これ以上の検索は行われない)。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR exec () .\"O functions only return if an error has have occurred. @@ -299,39 +299,39 @@ NULL .\"O .I errno .\"O is set to indicate the error. .BR exec () -·²¤Î´Ø¿ô¤¬Éüµ¢¤¹¤ë¤Î¤Ï¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Î¤ß¤Ç¤¢¤ë¡£ -ÊÖ¤êÃÍ¤Ï \-1 ¤Ç¡¢ +群の関数が復帰するのは、エラーが発生した場合のみである。 +返り値は \-1 で、 .I errno -¤Ë¥¨¥é¡¼¤ÎÆâÍƤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +にエラーの内容がセットされる。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O All of these functions may fail and set .\"O .I errno .\"O for any of the errors specified for .\"O .BR execve (2). -¤³¤ì¤éÁ´¤Æ¤Î´Ø¿ô¤Ï¼ºÇÔ¤¹¤ë¾ì¹ç¤¬¤¢¤ë¡£¤½¤Î¾ì¹ç¡¢ +これら全ての関数は失敗する場合がある。その場合、 .BR execve (2) -¤ËÂФ·¤Æµ¬Äꤵ¤ì¤¿¥¨¥é¡¼¤¬ +に対して規定されたエラーが .I errno -¤ËÀßÄꤵ¤ì¤ë¡£ +に設定される。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The .\"O .BR execvpe () .\"O function first appeared in glibc 2.11. .BR execvpe () -´Ø¿ô¤Ï glibc 2.11 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +関数は glibc 2.11 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001, POSIX.1-2008. .\"O The .\"O .BR execvpe () .\"O function is a GNU extension. .BR execvpe () -´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ +関数は GNU による拡張である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O On some other systems, the default path (used when the environment .\"O does not contain the variable \fBPATH\fR) has the current working .\"O directory listed after @@ -341,16 +341,16 @@ POSIX.1-2001, POSIX.1-2008. .\"O as an anti-Trojan-horse measure. .\"O Linux uses here the .\"O traditional "current directory first" default path. -Linux °Ê³°¤Î¥·¥¹¥Æ¥à¤Ë¤Ï¡¢ -(´Ä¶­ÊÑ¿ô \fBPATH\fR ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¤­¤Î) -¥Ç¥Õ¥©¥ë¥È¤Î¥Ñ¥¹¤Ë¤ª¤¤¤Æ¡¢¥«¥ì¥ó¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤¬ +Linux 以外のシステムには、 +(環境変数 \fBPATH\fR が定義されていないときの) +デフォルトのパスにおいて、カレント・ディレクトリが .I /bin -¤È +と .I /usr/bin -¤Î¸å¤í¤ËÇÛÃÖ¤µ¤ì¤ë¤â¤Î¤â¤¢¤ë¡£ -¤³¤ì¤Ï¥È¥í¥¤¤ÎÌÚÇÏÂкö¤Î¤¿¤á¤Ç¤¢¤ë¡£ -Linux ¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥Ñ¥¹¤Ë¡¢ÀΤʤ¬¤é¤Î¡Ö¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò -Àè¤Ëõº÷¡×¤È¤¤¤¦¥ë¡¼¥ë¤ò»È¤Ã¤Æ¤¤¤ë¡£ +の後ろに配置されるものもある。 +これはトロイの木馬対策のためである。 +Linux では、デフォルトのパスに、昔ながらの「現在のディレクトリを +先に探索」というルールを使っている。 .PP .\"O The behavior of .\"O .BR execlp () @@ -365,15 +365,15 @@ Linux .\"O is encountered. .\"O Linux treats it as a hard .\"O error and returns immediately. -¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤·¤è¤¦¤È¤·¤Æ¤¤¤ë´Ö¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿»þ¤Î +ファイルを実行しようとしている間にエラーが発生した時の .BR execlp () -¤È +と .BR execvp () -¤Î¤Õ¤ë¤Þ¤¤¤Ë¤Ä¤¤¤ÆÎò»ËŪ¤Ê´·½¬¤Ï¤¢¤ë¤¬¡¢ÅÁÅýŪ¤Ëʸ½ñ¤È¤·¤Æµ­ºÜ¤µ¤ì¤Æ¤ª¤é¤º¡¢ -POSIX ɸ½à¤Ç¤âµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£BSD (¤Þ¤¿¤ª¤½¤é¤¯Â¾¤Î¥·¥¹¥Æ¥à) ¤Ç¤Ï¡¢ +のふるまいについて歴史的な慣習はあるが、伝統的に文書として記載されておらず、 +POSIX 標準でも規定されていない。BSD (またおそらく他のシステム) では、 .B ETXTBSY -¤¬È¯À¸¤·¤¿¾ì¹ç¡¢¼«Æ°Åª¤ËÃæÃÇ (sleep) ¤·ºÆ»î¹Ô¤ò¹Ô¤¦¡£ -Linux ¤Ï¤½¤ì¤ò¥Ï¡¼¥É¥¨¥é¡¼¤È¤·¤Æ¼è¤ê°·¤¤Â¨ºÂ¤ËÉüµ¢¤¹¤ë¡£ +が発生した場合、自動的に中断 (sleep) し再試行を行う。 +Linux はそれをハードエラーとして取り扱い即座に復帰する。 .PP .\"O Traditionally, the functions .\"O .BR execlp () @@ -386,19 +386,19 @@ Linux .\"O upon which they returned. .\"O They now return if any error other than the ones .\"O described above occurs. -ÅÁÅýŪ¤Ë¡¢´Ø¿ô +伝統的に、関数 .BR execlp () -¤È +と .BR execvp () -¤Ï¡¢¾å¤ÇÀâÌÀ¤·¤¿¥¨¥é¡¼¤È¡¢¤³¤ì¤é 2 ¤Ä¤Î´Ø¿ô¼«¿È¤¬ÊÖ¤¹ +は、上で説明したエラーと、これら 2 つの関数自身が返す .B ENOMEM -¤È +と .B E2BIG -°Ê³°¤ÎÁ´¤Æ¤Î¥¨¥é¡¼¤ò̵»ë¤·¤Æ¤¤¤¿¤¬¡¢ -º£¤Ç¤Ï¡¢¾å¤ÇÀâÌÀ¤·¤¿°Ê³°¤Î¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ç¤â¡¢ -Ê֤äƤ¯¤ë¤è¤¦Êѹ¹¤µ¤ì¤¿¡£ +以外の全てのエラーを無視していたが、 +今では、上で説明した以外のエラーが発生した場合でも、 +返ってくるよう変更された。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sh (1), .BR execve (2), .BR fork (2), diff --git a/draft/man3/exit.3 b/draft/man3/exit.3 index 9f0e12d1..87fcb0f1 100644 --- a/draft/man3/exit.3 +++ b/draft/man3/exit.3 @@ -30,18 +30,18 @@ .\" .TH EXIT 3 2009-09-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O exit \- cause normal process termination -exit \- ¥×¥í¥»¥¹¤ÎÀµ¾ï½ªÎ» +exit \- プロセスの正常終了 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "void exit(int " status ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR exit () .\"O function causes normal process termination and the @@ -49,10 +49,10 @@ exit \- .\"O (see .\"O .BR wait (2)). .BR exit () -´Ø¿ô¤Ï¡¢¥×¥í¥»¥¹¤òÀµ¾ï¤Ë½ªÎ»¤µ¤»¡¢ -\fIstatus & 0377\fP ¤È¤¤¤¦Ãͤò¿Æ¥×¥í¥»¥¹¤ØÊÖ¤¹ +関数は、プロセスを正常に終了させ、 +\fIstatus & 0377\fP という値を親プロセスへ返す .RB ( wait (2) -¤ò»²¾È)¡£ +を参照)。 .LP .\"O All functions registered with .\"O .BR atexit (3) @@ -68,18 +68,18 @@ exit \- .\"O the new registration is added to the front of the list of functions .\"O that remain to be called.) .BR atexit (3) -¤ä +や .BR on_exit (3) -¤Ë¤è¤Ã¤Æ -ÅÐÏ¿¤µ¤ì¤¿Á´¤Æ¤Î´Ø¿ô¤Ï¡¢¤½¤ì¤é¤¬ÅÐÏ¿¤µ¤ì¤¿½çÈ֤ȵսç¤Ë¥³¡¼¥ë¤µ¤ì¤ë¡£ -(ÅÐÏ¿¤µ¤ì¤¿´Ø¿ô¤ÎÃæ¤Ç +によって +登録された全ての関数は、それらが登録された順番と逆順にコールされる。 +(登録された関数の中で .BR atexit (3) or .BR on_exit (3) -¤ò»È¤Ã¤Æ -exit ½èÍýÃæ¤Ë¼Â¹Ô¤µ¤ì¤ëÄɲäδؿô¤òÅÐÏ¿¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë; -¿·µ¬¤ËÅÐÏ¿¤µ¤ì¤¿´Ø¿ô¤Ï¡¢¤³¤Î¸å¤Ç¼Â¹Ô¤µ¤ì¤ë´Ø¿ô¥ê¥¹¥È¤ÎÀèƬ¤Ë -Äɲ䵤ì¤ë¡£) +を使って +exit 処理中に実行される追加の関数を登録することができる; +新規に登録された関数は、この後で実行される関数リストの先頭に +追加される。) .\"O If one of these functions does not return .\"O (e.g., it calls .\"O .BR _exit (2), @@ -93,20 +93,20 @@ exit .\"O or .\"O .BR on_exit (3), .\"O then it is called as many times as it was registered. -¤³¤ì¤é¤Î´Ø¿ô¤Î°ì¤Ä¤¬ÊÖ¤é¤Ê¤«¤Ã¤¿¾ì¹ç -(Î㤨¤Ð¡¢¤½¤Î´Ø¿ô¤¬ +これらの関数の一つが返らなかった場合 +(例えば、その関数が .BR _exit (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¤ê¡¢¥·¥°¥Ê¥ë¤Ç¼«Ê¬¼«¿È¤ò kill ¤·¤¿¾ì¹ç)¡¢ -»Ä¤ê¤Î´Ø¿ô¤Ï¤É¤ì¤â¸Æ¤Ó½Ð¤µ¤ì¤º¡¢¤½¤ì°Ê¹ß¤Î exit ½èÍý -(ÆÃ¤Ë +を呼び出したり、シグナルで自分自身を kill した場合)、 +残りの関数はどれも呼び出されず、それ以降の exit 処理 +(特に .BR stdio (3) -¥¹¥È¥ê¡¼¥à¤Î¥Õ¥é¥Ã¥·¥å¤Ê¤É) ¤ÏÃæ»ß¤µ¤ì¤ë¡£ -¤¢¤ë´Ø¿ô¤¬ +ストリームのフラッシュなど) は中止される。 +ある関数が .BR atexit (3) -¤ä +や .BR on_exit (3) -¤ò»È¤Ã¤ÆÊ£¿ô²óÅÐÏ¿¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢ -¤½¤Î´Ø¿ô¤ÏÅÐÏ¿¤µ¤ì¤¿¤Î¤ÈƱ¤¸²ó¿ô¤À¤±¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ +を使って複数回登録されていた場合、 +その関数は登録されたのと同じ回数だけ呼び出される。 .LP .\"O All open .\"O .BR stdio (3) @@ -114,11 +114,11 @@ exit .\"O Files created by .\"O .BR tmpfile (3) .\"O are removed. -¥ª¡¼¥×¥óÃæ¤Î +オープン中の .BR stdio (3) -¥¹¥È¥ê¡¼¥à¤ÏÁ´¤Æ¥Õ¥é¥Ã¥·¥å¤µ¤ì¤Æ¡¢¥¯¥í¡¼¥º¤µ¤ì¤ë¡£ +ストリームは全てフラッシュされて、クローズされる。 .BR tmpfile (3) -¤Ë¤è¤Ã¤ÆºîÀ®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ïºï½ü¤µ¤ì¤ë¡£ +によって作成されたファイルは削除される。 .LP .\"O The C standard specifies two constants, .\"O \fBEXIT_SUCCESS\fP and \fBEXIT_FAILURE\fP, @@ -126,26 +126,26 @@ exit .\"O .BR exit () .\"O to indicate successful or unsuccessful .\"O termination, respectively. -C ɸ½à¤Ç¤Ï +C 標準では .B EXIT_SUCCESS -¤È +と .B EXIT_FAILURE -¤È¤¤¤¦ 2¤Ä¤ÎÄê¿ô¤¬ -ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£¤½¤ì¤¾¤ìÀµ¾ï½ªÎ»¤È°Û¾ï½ªÎ»¤ò¼¨¤¹¤â¤Î¤Ç¡¢ +という 2つの定数が +定義されている。それぞれ正常終了と異常終了を示すもので、 .BR exit () -¤È¤·¤ÆÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¡£ +として渡すことができる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR exit () .\"O function does not return. .BR exit () -´Ø¿ô¤ÏÊÖ¤é¤Ê¤¤¡£ +関数は返らない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001, C89, C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .LP .\"O It is undefined what happens if one of the .\"O functions registered using @@ -157,14 +157,14 @@ SVr4, 4.3BSD, POSIX.1-2001, C89, C99. .\"O or .\"O .BR longjmp (3). .BR atexit (3) -¤ä +や .BR on_exit (3) -¤ò»È¤Ã¤ÆÅÐÏ¿¤µ¤ì¤¿´Ø¿ô¤ÎÃæ¤Ç +を使って登録された関数の中で .BR exit () -¤« +か .BR longjmp (3) -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¡¢ -²¿¤¬µ¯¤³¤ë¤«¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +が呼び出された場合、 +何が起こるかは未定義である。 .LP .\"O The use of .\"O .B EXIT_SUCCESS @@ -175,17 +175,17 @@ SVr4, 4.3BSD, POSIX.1-2001, C89, C99. .\"O like 1 or \-1. .\"O In particular, VMS uses a different convention. .B EXIT_SUCCESS -¤È +と .B EXIT_FAILURE -¤ò»È¤¦¤È¡¢0 ¤ä (1 ¤ä \-1 ¤È¤¤¤Ã¤¿) 0 °Ê³°¤ÎÃͤò»È¤¦¤Î¤ËÈæ¤Ù¤Æ -(UNIX °Ê³°¤Î´Ä¶­¤Ë) °Ü¿¢¤¹¤ë¤Î¤¬¤¤¤¯¤é¤«´Êñ¤Ë¤Ê¤ë¡£ -ÆÃ¤Ë VMS ¤ÏÊ̤ÎÊý¼°¤òÍѤ¤¤Æ¤¤¤ë¡£ +を使うと、0 や (1 や \-1 といった) 0 以外の値を使うのに比べて +(UNIX 以外の環境に) 移植するのがいくらか簡単になる。 +特に VMS は別の方式を用いている。 .LP .\"O BSD has attempted to standardize exit codes; see the file .\"O .IR . -BSD ¤Ï½ªÎ»¥³¡¼¥É¤òɸ½à²½¤·¤è¤¦¤È¤·¤Æ¤¤¤ë; +BSD は終了コードを標準化しようとしている; .I -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .LP .\"O After .\"O .BR exit (), @@ -212,28 +212,28 @@ BSD .\"O .BR wait (2) .\"O functions. .BR exit () -¤Î¸å¡¢¿Æ¥×¥í¥»¥¹¤Ë½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤¬ÅϤµ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤ÎÅϤ·Êý¤Ë¤Ï 3 ¤Ä¤Î¾ì¹ç¤¬¤¢¤ë¡£ -¿Æ¥×¥í¥»¥¹¤¬ +の後、親プロセスに終了ステータスが渡されなければならない。 +終了ステータスの渡し方には 3 つの場合がある。 +親プロセスが .B SA_NOCLDWAIT -¤òÀßÄꤷ¤¿¾ì¹ç¡¢ -¤Þ¤¿¤Ï +を設定した場合、 +または .B SIGCHLD -¥Ï¥ó¥É¥é¤ò +ハンドラを .B SIG_IGN -¤ËÀßÄꤷ¤¿¾ì¹ç¡¢ -¥¹¥Æ¡¼¥¿¥¹¤ÏÇË´þ¤µ¤ì¤ë¡£ -¿Æ¥×¥í¥»¥¹¤¬»Ò¥×¥í¥»¥¹¤Î½ªÎ»¤òÂԤäƤ¤¤ë¾ì¹ç¡¢ -¿Æ¥×¥í¥»¥¹¤Ë½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤¬ÅÁ¤¨¤é¤ì¤ë¡£ -¤É¤Á¤é¤Î¾ì¹ç¤Ç¤â exit ¤Î¥×¥í¥»¥¹¤Ïľ¤Á¤Ë½ªÎ»¤¹¤ë¡£ -¡Ö½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤ò´ØÃΤ»¤º½ªÎ»¤âÂÔ¤¿¤Ê¤¤¡× -¤È¤¤¤¦¤³¤È¤ò¿Æ¥×¥í¥»¥¹¤¬»Ø¼¨¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -exit ¥×¥í¥»¥¹¤Ï (½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤òɽ¤¹ 1 ¥Ð¥¤¥È¤Î¤ß¤òÊÝ»ý¤¹¤ë) -¡Ö¥¾¥ó¥Ó¡×¥×¥í¥»¥¹¤Ë¤Ê¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢¸å¤«¤é +に設定した場合、 +ステータスは破棄される。 +親プロセスが子プロセスの終了を待っている場合、 +親プロセスに終了ステータスが伝えられる。 +どちらの場合でも exit のプロセスは直ちに終了する。 +「終了ステータスを関知せず終了も待たない」 +ということを親プロセスが指示していない場合、 +exit プロセスは (終了ステータスを表す 1 バイトのみを保持する) +「ゾンビ」プロセスになる。 +これにより、後から .BR wait (2) -´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¡¢ -¿Æ¥×¥í¥»¥¹¤Ï½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤òÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ +関数を呼び出すことで、 +親プロセスは終了ステータスを知ることができる。 .LP .\"O If the implementation supports the .\"O .B SIGCHLD @@ -245,13 +245,13 @@ exit .\"O .B SIGCHLD .\"O signal is sent. .B SIGCHLD -¥·¥°¥Ê¥ë¤Î¥µ¥Ý¡¼¥È¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¤³¤Î¥·¥°¥Ê¥ë¤Ï¿Æ¥×¥í¥»¥¹¤ËÁ÷¤é¤ì¤ë¡£ -¿Æ¥×¥í¥»¥¹¤¬ +シグナルのサポートが実装されている場合、 +このシグナルは親プロセスに送られる。 +親プロセスが .B SA_NOCLDWAIT -¤òÀßÄꤷ¤¿¾ì¹ç¡¢ +を設定した場合、 .B SIGCHLD -¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¤«¤É¤¦¤«¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +シグナルが送られるかどうかは定義されていない。 .LP .\"O If the process is a session leader and its controlling terminal .\"O is the controlling terminal of the session, then each process in @@ -261,13 +261,13 @@ exit .\"O signal, and the terminal is disassociated .\"O from this session, allowing it to be acquired by a new controlling .\"O process. -¤½¤Î¥×¥í¥»¥¹¤¬¥»¥Ã¥·¥ç¥ó¤Î¥ê¡¼¥À¡¼¤Ç¡¢ -¤½¤Î¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤¬¤½¤Î¥»¥Ã¥·¥ç¥ó¤ÎÀ©¸æüËö¤Ç¤¢¤ë¾ì¹ç¡¢ -¤³¤ÎÀ©¸æüËö¤Î¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë¤¢¤ë -³Æ¥×¥í¥»¥¹¤Ë +そのプロセスがセッションのリーダーで、 +そのプロセスの制御端末がそのセッションの制御端末である場合、 +この制御端末のフォアグラウンドプロセスグループにある +各プロセスに .B SIGHUP -¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¡¢Ã¼Ëö¤¬¥»¥Ã¥·¥ç¥ó¤«¤éÀÚ¤êÎ¥¤µ¤ì¤ë¡£ -¤³¤ì¤Ë¤è¤ê¿·¤·¤¤À©¸æ¥×¥í¥»¥¹¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +シグナルが送られ、端末がセッションから切り離される。 +これにより新しい制御プロセスを取得することができる。 .LP .\"O If the exit of the process causes a process group to become orphaned, .\"O and if any member of the newly orphaned process group is stopped, @@ -277,21 +277,21 @@ exit .\"O .B SIGCONT .\"O signal will be .\"O sent to each process in this process group. -¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢¥×¥í¥»¥¹¥°¥ë¡¼¥×¤¬¸ÉΩ¤·¤Æ¡¢ -¤½¤Î¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð¡¼¤Î¤¦¤Á¤Î¤É¤ì¤«¤¬Ää»ß¤·¤¿¾ì¹ç¡¢ -¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Î³Æ¥×¥í¥»¥¹¤ËÂФ·¤Æ +プロセスが終了することにより、プロセスグループが孤立して、 +そのグループのメンバーのうちのどれかが停止した場合、 +プロセスグループの各プロセスに対して .B SIGHUP -¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¡¢Â³¤¤¤Æ +シグナルが送られ、続いて .B SIGCONT -¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£ +シグナルが送られる。 .\"O See .\"O .BR setpgid (2) .\"O for an explanation of orphaned process groups. -¸ÉΩ¤·¤¿ (orphaned) ¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÎÀâÌÀ¤Ï +孤立した (orphaned) プロセスグループの説明は .BR setpgid (2) -¤ò»²¾È¡£ +を参照。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR _exit (2), .BR setpgid (2), .BR wait (2), diff --git a/draft/man3/exp.3 b/draft/man3/exp.3 index ea0d13ba..75461fd3 100644 --- a/draft/man3/exp.3 +++ b/draft/man3/exp.3 @@ -39,11 +39,11 @@ .\" .TH EXP 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O exp, expf, expl \- base-e exponential function -exp, expf, expl \- Ä줬 e ¤Î»Ø¿ô´Ø¿ô +exp, expf, expl \- 底が e の指数関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -55,14 +55,14 @@ exp, expf, expl \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -77,48 +77,48 @@ or .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR exp () .\"O function returns the value of e (the base of natural .\"O logarithms) raised to the power of \fIx\fP. .BR exp () -´Ø¿ô¤Ï e ¤Î \fIx\fP ¾è¤ÎÃͤòÊÖ¤¹ -(e ¤Ï¼«Á³Âпô¤ÎÄì)¡£ +関数は e の \fIx\fP 乗の値を返す +(e は自然対数の底)。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the exponential value of .\"O .IR x . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï e ¤Î +成功すると、これらの関数は e の .I x -¾è¤òÊÖ¤¹¡£ +乗を返す。 .\"O If .\"O .I x .\"O is a NaN, .\"O a NaN is returned. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x .\"O is positive infinity, .\"O positive infinity is returned. .I x -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢Àµ¤Î̵¸ÂÂ礬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大の場合、正の無限大が返される。 .\"O If .\"O .I x .\"O is negative infinity, .\"O +0 is returned. .I x -¤¬Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢+0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が負の無限大の場合、+0 が返される。 .\"O If the result underflows, .\"O a range error occurs, .\"O and zero is returned. -·ë²Ì¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ -ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +結果がアンダーフローする場合、 +範囲エラー (range error) が発生し、0 が返される。 .\"O If the result overflows, .\"O a range error occurs, @@ -128,27 +128,27 @@ or .\"O or .\"O .RB + HUGE_VALL , .\"O respectively. -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +結果がオーバーフローする場合、範囲エラーが発生し、 +各関数はそれぞれ .RB + HUGE_VAL , .RB + HUGE_VALF , .RB + HUGE_VALL -¤òÊÖ¤¹¡£ +を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Range error, overflow -ÈÏ°Ï¥¨¥é¡¼ (range error)¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Î¾ì¹ç +範囲エラー (range error)、オーバーフローの場合 .\"O .I errno .\"O is set to .\"O .BR ERANGE . @@ -156,15 +156,15 @@ or .\"O .RB ( FE_OVERFLOW ) .\"O is raised. .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP .\"O Range error, underflow -ÈÏ°Ï¥¨¥é¡¼¡¢¥¢¥ó¥À¡¼¥Õ¥í¡¼¤Î¾ì¹ç +範囲エラー、アンダーフローの場合 .\"O .I errno .\"O is set to .\"O .BR ERANGE . @@ -172,23 +172,23 @@ or .\"O .RB ( FE_UNDERFLOW ) .\"O is raised. .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -¥¢¥ó¥À¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +アンダーフロー浮動小数点例外 .RB ( FE_UNDERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD, C89. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cbrt (3), .BR cexp (3), .BR exp10 (3), diff --git a/draft/man3/exp10.3 b/draft/man3/exp10.3 index 547d4836..46bfd4f8 100644 --- a/draft/man3/exp10.3 +++ b/draft/man3/exp10.3 @@ -38,14 +38,14 @@ .\" .TH EXP10 3 2008-08-11 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O exp10, exp10f, exp10l \- base-10 exponential function -exp10, exp10f, exp10l \- ´ð¿ô¤¬ 10 ¤Î»Ø¿ô´Ø¿ô +exp10, exp10f, exp10l \- 基数が 10 の指数関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp @@ -57,57 +57,57 @@ exp10, exp10f, exp10l \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR exp10 () .\"O function returns the value of 10 .\"O raised to the power of \fIx\fP. .BR exp10 () -´Ø¿ô¤Ï 10 ¤Î \fIx\fP ¾è¤ÎÃͤòÊÖ¤¹¡£ +関数は 10 の \fIx\fP 乗の値を返す。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the base-10 exponential value of .\"O .IR x . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï 10 ¤Î +成功すると、これらの関数は 10 の .I x -¾è¤òÊÖ¤¹¡£ +乗を返す。 .\"O For various special cases, including the handling of infinity and NaN, .\"O as well as overflows and underflows, see .\"O .BR exp (3). -̵¸ÂÂç¤ä NaN ¤Î°·¤¤¤ä¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤È¥¢¥ó¥À¡¼¥Õ¥í¡¼¤Ê¤É¤Î -¤µ¤Þ¤¶¤Þ¤ÊÆÃÊ̤ʾõ¶·¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +無限大や NaN の扱いや、オーバーフローとアンダーフローなどの +さまざまな特別な状況については、 .BR exp (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O For a discussion of the errors that can occur for these functions, see .\"O .BR exp (3). -¤³¤ì¤é¤Î´Ø¿ô¤ÇȯÀ¸¤¹¤ë¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +これらの関数で発生するエラーについては、 .BR exp (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\" FIXME . exp10 doesn't give ERANGE for an underflow, unlike exp() and exp2() .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6787 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These functions are GNU extensions. -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ +これらの関数は GNU による拡張である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cbrt (3), .BR exp (3), .BR exp2 (3), diff --git a/draft/man3/exp2.3 b/draft/man3/exp2.3 index 8559c680..cbcf0c82 100644 --- a/draft/man3/exp2.3 +++ b/draft/man3/exp2.3 @@ -38,11 +38,11 @@ .\" .TH EXP2 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O exp2, exp2f, exp2l \- base-2 exponential function -exp2, exp2f, exp2l \- Ä줬 2 ¤Î»Ø¿ô´Ø¿ô +exp2, exp2f, exp2l \- 底が 2 の指数関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -54,14 +54,14 @@ exp2, exp2f, exp2l \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -76,58 +76,58 @@ or .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR exp2 () .\"O function returns the value of 2 .\"O raised to the power of \fIx\fP. .BR exp2 () -´Ø¿ô¤Ï 2 ¤Î \fIx\fP ¾è¤ÎÃͤòÊÖ¤¹¡£ +関数は 2 の \fIx\fP 乗の値を返す。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the base-2 exponential value of .\"O .IR x . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï 2 ¤Î +成功すると、これらの関数は 2 の .I x -¾è¤òÊÖ¤¹¡£ +乗を返す。 .\"O For various special cases, including the handling of infinity and NaN, .\"O as well as overflows and underflows, see .\"O .BR exp (3). -̵¸ÂÂç¤ä NaN ¤Î°·¤¤¤ä¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤È¥¢¥ó¥À¡¼¥Õ¥í¡¼¤Ê¤É¤Î -¤µ¤Þ¤¶¤Þ¤ÊÆÃÊ̤ʾõ¶·¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +無限大や NaN の扱いや、オーバーフローとアンダーフローなどの +さまざまな特別な状況については、 .BR exp (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O For a discussion of the errors that can occur for these functions, see .\"O .BR exp (3). -¤³¤ì¤é¤Î´Ø¿ô¤ÇȯÀ¸¤¹¤ë¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +これらの関数で発生するエラーについては、 .BR exp (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD, C89. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cbrt (3), .BR cexp2 (3), .BR exp (3), diff --git a/draft/man3/expm1.3 b/draft/man3/expm1.3 index bcbbd396..a806fac5 100644 --- a/draft/man3/expm1.3 +++ b/draft/man3/expm1.3 @@ -32,11 +32,11 @@ .\" .TH EXPM1 3 2010-09-12 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O expm1, expm1f, expm1l \- exponential minus 1 -expm1, expm1f, expm1l \- °ú¤­¿ô¤Î»Ø¿ô¤«¤é 1 ¤ò°ú¤¤¤¿ÃÍ +expm1, expm1f, expm1l \- 引き数の指数から 1 を引いた値 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -48,14 +48,14 @@ expm1, expm1f, expm1l \- .sp .fi .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -80,11 +80,11 @@ or .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .I expm1(x) .\"O returns a value equivalent to .BI expm1( x ) -¤Ï°Ê²¼¤ÈÅù¤·¤¤ÃͤòÊÖ¤¹¡£ +は以下と等しい値を返す。 .nf exp(x) \- 1 @@ -97,41 +97,41 @@ or .\"O would be inaccurate due to .\"O subtraction of two numbers that are nearly equal. .I "exp(x) \- 1" -¤Î·×»»¤Ë¤Ï¡¢\fIx\fP ¤¬ 0 ¤Î¶á˵¤Ç°ú¤­»»»þ¤Î·åÍî¤Á¤Î¤¿¤á¤Ë -ÉÔÀµ³Î¤È¤Ê¤ë¤è¤¦¤Ê¾ì¹ç¤Ç¤âÀµ³Î¤ÊÃͤ¬·×»»¤Ç¤­¤ëÊýË¡¤¬ÍѤ¤¤é¤ì¤ë¡£ +の計算には、\fIx\fP が 0 の近傍で引き算時の桁落ちのために +不正確となるような場合でも正確な値が計算できる方法が用いられる。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return .\"O .IR "exp(x)\ \-\ 1" . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I "exp(x)\ \-\ 1" -¤òÊÖ¤¹¡£ +を返す。 .\"O If .\"O .I x .\"O is a NaN, .\"O a NaN is returned. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x .\"O is +0 (\-0), .\"O +0 (\-0) is returned. .I x -¤¬ +0 (\-0) ¤Î¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 (\-0) の場合、+0 (\-0) が返される。 .\"O If .\"O .I x .\"O is positive infinity, positive infinity is returned. .I x -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢Àµ¤Î̵¸ÂÂ礬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大の場合、正の無限大が返される。 .\"O If .\"O .I x .\"O is negative infinity, \-1 is returned. .I x -¤¬Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が負の無限大の場合、\-1 が返される。 .\"O If the result overflows, a range error occurs, .\"O and the functions return @@ -140,27 +140,27 @@ or .\"O or .\"O .RB - HUGE_VALL , .\"O respectively. -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +結果がオーバーフローする場合、範囲エラー (range error) が発生し、 +各関数はそれぞれ .RB - HUGE_VAL , .RB - HUGE_VALF , .RB - HUGE_VALL -¤òÊÖ¤¹¡£ +を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Range error, overflow -ÈÏ°Ï¥¨¥é¡¼ (range error)¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Î¾ì¹ç +範囲エラー (range error)、オーバーフローの場合 .\"O .I errno .\"O is set to .\"O .BR ERANGE @@ -169,31 +169,31 @@ or .\"O .RB ( FE_OVERFLOW ) .\"O is raised. .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë (¡Ö¥Ð¥°¡×¤ÎÀá¤â»²¾È)¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +が設定される (「バグ」の節も参照)。 +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP .\" .\" POSIX.1 specifies an optional range error (underflow) if .\" x is subnormal. Glibc does not implement this. .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\" BSD. .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O For some large negative .\"O .I x .\"O values (where the function result approaches \-1), .\"O .BR expm1 () .\"O raises a bogus underflow floating-point exception. .I x -¤¬Éé¤ÎÂ礭¤ÊÃͤξì¹ç (¤³¤Î¾ì¹ç¤Ë¤Ï´Ø¿ô¤Î·ë²Ì¤Ï \-1 ¤Ë¶áÉÕ¤¤¤Æ¤¤¤¯)¡¢ +が負の大きな値の場合 (この場合には関数の結果は \-1 に近付いていく)、 .BR expm1 () -¤Ï´Ö°ã¤Ã¤Æ¥¢¥ó¥À¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³°¤ò¾å¤²¤ë¤³¤È¤¬¤¢¤ë¡£ +は間違ってアンダーフロー浮動小数点例外を上げることがある。 .\" FIXME . .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6778 @@ -204,11 +204,11 @@ C99, POSIX.1-2001. .\"O raises a bogus invalid floating-point exception in addition to the expected .\"O overflow exception, and returns a NaN instead of positive infinity. .I x -¤¬Àµ¤ÎÂ礭¤ÊÃͤξì¹ç¡¢ +が正の大きな値の場合、 .BR expm1 () -¤Ï´üÂÔÄ̤ê¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼Îã³°¤À¤±¤Ç¤Ê¤¯ -´Ö°ã¤Ã¤ÆÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³°¤ò¾å¤²¡¢ -Àµ¤Î̵¸ÂÂç¤Ç¤Ï¤Ê¤¯ NaN ¤òÊÖ¤¹¤³¤È¤¬¤¢¤ë¡£ +は期待通りのオーバーフロー例外だけでなく +間違って不正 (invalid) 浮動小数点例外を上げ、 +正の無限大ではなく NaN を返すことがある。 .\" FIXME . .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6814 .\" e.g., expm1(1e5) through expm1(1.00199970127e5), @@ -225,14 +225,14 @@ C99, POSIX.1-2001. .\"O to .\"O .B ERANGE .\"O when a range error occurred. -¥Ð¡¼¥¸¥ç¥ó 2.11 ¤è¤êÁ°¤Î glibc ¤Î¼ÂÁõ¤Ç¤Ï¡¢ -ÈÏ°Ï¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¡¢ +バージョン 2.11 より前の glibc の実装では、 +範囲エラーが発生した場合に、 .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤Ê¤«¤Ã¤¿¡£ +が設定されなかった。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR exp (3), .BR log (3), .BR log1p (3) diff --git a/draft/man3/fabs.3 b/draft/man3/fabs.3 index 83e2091f..1586c25b 100644 --- a/draft/man3/fabs.3 +++ b/draft/man3/fabs.3 @@ -39,11 +39,11 @@ .\" .TH FABS 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fabs, fabsf, fabsl \- absolute value of floating-point number -fabs, fabsf, fabsl \- ÉâÆ°¾®¿ôÅÀ¼Â¿ô¤ÎÀäÂÐÃÍ +fabs, fabsf, fabsl \- 浮動小数点実数の絶対値 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -55,14 +55,14 @@ fabs, fabsf, fabsl \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -77,53 +77,53 @@ or .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR fabs () .\"O functions return the absolute value of the floating-point .\"O number \fIx\fP. .BR fabs () -´Ø¿ô·²¤ÏÉâÆ°¾®¿ôÅÀ¼Â¿ô \fIx\fP ¤ÎÀäÂÐÃͤòÊÖ¤¹¡£ +関数群は浮動小数点実数 \fIx\fP の絶対値を返す。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O These functions return the absolute value of .\"O .IR x . -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I x -¤ÎÀäÂÐÃͤòÊÖ¤¹¡£ +の絶対値を返す。 .\"O If .\"O .I x .\"O is a NaN, a NaN is returned. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x .\"O is \-0, +0 is returned. .I x -¤¬ \-0 ¤Î¾ì¹ç¡¢+0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が \-0 の場合、+0 が返される。 .\"O If .\"O .I x .\"O is negative infinity or positive infinity, positive infinity is returned. .I x -¤¬Éé¤Î̵¸ÂÂ礫Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢Àµ¤Î̵¸ÂÂ礬ÊÖ¤µ¤ì¤ë¡£ +が負の無限大か正の無限大の場合、正の無限大が返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O No errors occur. -¥¨¥é¡¼¤Ïµ¯¤³¤é¤Ê¤¤¡£ +エラーは起こらない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD, C89. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR abs (3), .BR cabs (3), .BR ceil (3), diff --git a/draft/man3/fclose.3 b/draft/man3/fclose.3 index 24f9f736..e39596bc 100644 --- a/draft/man3/fclose.3 +++ b/draft/man3/fclose.3 @@ -52,16 +52,16 @@ .\" .TH FCLOSE 3 2009-02-23 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fclose \- close a stream -fclose \- ¥¹¥È¥ê¡¼¥à¤òÊĤ¸¤ë +fclose \- ストリームを閉じる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int fclose(FILE *" fp ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR fclose () .\"O function will flushes the stream pointed to by @@ -70,51 +70,51 @@ fclose \- .\"O .BR fflush (3)) .\"O and closes the underlying file descriptor. .BR fclose () -´Ø¿ô¤Ï +関数は .I fp -¤Ç»Ø¤µ¤ì¤ë¥¹¥È¥ê¡¼¥à¤ò (¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤Æ¤¤¤¿Á´¤Æ¤Î½ÐÎϥǡ¼¥¿¤ò +で指されるストリームを (バッファリングされていた全ての出力データを .BR fflush (3) -¤òÍѤ¤¤Æ½ñ¤­¹þ¤ó¤Ç) ¥Õ¥é¥Ã¥·¥å¤·¡¢ -¤½¤Î´ð¤È¤Ê¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +を用いて書き込んで) フラッシュし、 +その基となるファイルディスクリプタをクローズする。 .\"O .SH "RETURN VALUES" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O Upon successful completion 0 is returned. -´Ø¿ô¤¬Àµ¾ï¤Ë½ªÎ»¤¹¤ë¤È 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +関数が正常に終了すると 0 が返される。 .\"O Otherwise, .\"O .B EOF .\"O is returned and .\"O .I errno .\"O is set to indicate the error. -Àµ¾ï¤Ë½ªÎ»¤·¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï +正常に終了しなかった場合には .B EOF -¤¬ÊÖ¤µ¤ì¡¢ +が返され、 .I errno -¤¬¥¨¥é¡¼¤ò¼¨¤¹¤¿¤á¤ËÀßÄꤵ¤ì¤ë¡£ +がエラーを示すために設定される。 .\"O In either case any further access .\"O (including another call to .\"O .BR fclose ()) .\"O to the stream results in undefined behavior. -¤É¤Á¤é¤Î¾ì¹ç¤â¡¢¤½¤Î¥¹¥È¥ê¡¼¥à¤ËÂФ¹¤ë +どちらの場合も、そのストリームに対する .RB ( fclose () -¤Ø¤Î¤µ¤é¤Ê¤ë¸Æ¤Ó½Ð¤·¤ò´Þ¤à) ¤½¤ì°Ê¾å¤Î¥¢¥¯¥»¥¹¤Ï -̤ÄêµÁ¤ÎÆ°ºî¤òÀ¸¤¸¤µ¤»¤ë¡£ +へのさらなる呼び出しを含む) それ以上のアクセスは +未定義の動作を生じさせる。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O The file descriptor underlying .\"O .I fp .\"O is not valid. .I fp -¤Î´ð¤È¤Ê¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +の基となるファイルディスクリプタが不正である。 .\"O .\" This error cannot occur unless you are mixing ANSI C stdio operations and .\"O .\" low-level file operations on the same stream. If you do get this error, .\"O .\" you must have closed the stream's low-level file descriptor using .\"O .\" something like close(fileno(fp)). -.\" Ʊ¤¸¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ ANSI C stdio ¤ÎÁàºî¤ÈÄã¥ì¥Ù¥ë¥Õ¥¡¥¤¥ëÁàºî¤ò -.\" ¼è¤êº®¤¼¤Æ¹Ô¤ï¤Ê¤¤¸Â¤ê¡¢¤³¤Î¥¨¥é¡¼¤Ïµ¯¤³¤é¤Ê¤¤¡£ -.\" ¤³¤Î¥¨¥é¡¼¤ò¼õ¤±¼è¤Ã¤¿¤Î¤Ï¡¢¥¹¥È¥ê¡¼¥à¤ÎÄã¥ì¥Ù¥ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¡¢ -.\" close(fileno(fp)) ¤Ê¤É¤Ç¡¢´û¤Ë¥¯¥í¡¼¥º¤·¤Æ¤·¤Þ¤Ã¤¿¤«¤é¤Ë°ã¤¤¤Ê¤¤¡£ +.\" 同じストリームに対して ANSI C stdio の操作と低レベルファイル操作を +.\" 取り混ぜて行わない限り、このエラーは起こらない。 +.\" このエラーを受け取ったのは、ストリームの低レベルファイルディスクリプタを、 +.\" close(fileno(fp)) などで、既にクローズしてしまったからに違いない。 .PP .\"O The .\"O .BR fclose () @@ -126,18 +126,18 @@ fclose \- .\"O or .\"O .BR fflush (3). .BR fclose () -´Ø¿ô¤Ï¤³¤ì°Ê³°¤Ë¤â +関数はこれ以外にも .BR close (2), .BR write (2), .BR fflush (3) -¤Î¥ë¡¼¥Á¥ó¤Ç¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ë¡£¤½¤Î¾ì¹ç¤Ï +のルーチンで失敗することがある。その場合は .I errno -¤¬¡¢¼ºÇÔ¤·¤¿¥ë¡¼¥Á¥ó¤ÇÀßÄꤵ¤ì¤¿ÃͤËÀßÄꤵ¤ì¤ë¡£ +が、失敗したルーチンで設定された値に設定される。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C89, C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Note that .\"O .BR fclose () .\"O only flushes the user space buffers provided by the @@ -148,16 +148,16 @@ C89, C99. .\"O or .\"O .BR fsync (2). .BR fclose () -¤Ï C ¥é¥¤¥Ö¥é¥ê¤ÇÄ󶡤µ¤ì¤¿¥æ¡¼¥¶¡¼¶õ´Ö¥Ð¥Ã¥Õ¥¡¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë¤À¤±¤Ç -¤¢¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¥Ç¡¼¥¿¤ò³Î¼Â¤ËʪÍýŪ¤Ë¥Ç¥£¥¹¥¯¤Ëµ­Ï¿¤¹¤ë¤¿¤á¤Ë¤Ï -¥«¡¼¥Í¥ë¥Ð¥Ã¥Õ¥¡¤â +は C ライブラリで提供されたユーザー空間バッファをフラッシュするだけで +ある点に注意すること。 +データを確実に物理的にディスクに記録するためには +カーネルバッファも .RB ( sync (2) -¤ä +や .BR fsync (2) -¤òÍѤ¤¤Æ) ¥Õ¥é¥Ã¥·¥å¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を用いて) フラッシュしなければならない。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR close (2), .BR fcloseall (3), .BR fflush (3), diff --git a/draft/man3/fcloseall.3 b/draft/man3/fcloseall.3 index fe43e64e..25c4bc34 100644 --- a/draft/man3/fcloseall.3 +++ b/draft/man3/fcloseall.3 @@ -26,24 +26,24 @@ .\" Translated 2000-06-24, Yuichi SATO .\" Updated 2007-05-04, Akihiro MOTOKI , LDP v2.46 .\" -.\"WORD: standard streams ɸ½àÆþ½ÐÎÏ +.\"WORD: standard streams 標準入出力 .\" .TH FCLOSEALL 3 2006-12-27 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fcloseall \- close all open streams -fcloseall \- ³«¤¤¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥¹¥È¥ê¡¼¥à¤òÊĤ¸¤ë +fcloseall \- 開いているすべてのストリームを閉じる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .B int fcloseall(void); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR fcloseall () .\"O function closes all of the calling process's open streams. @@ -52,11 +52,11 @@ fcloseall \- .\"O .BR fflush (3)); .\"O buffered input is discarded. .BR fcloseall () -´Ø¿ô¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬³«¤¤¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥¹¥È¥ê¡¼¥à¤òÊĤ¸¤ë¡£ -¥¹¥È¥ê¡¼¥à¤òÊĤ¸¤ëÁ°¤Ë¡¢ +関数は、呼び出し元プロセスが開いているすべてのストリームを閉じる。 +ストリームを閉じる前に、 .RB ( fflush (3) -¤ÈƱ¤¸¤è¤¦¤Ë) ³Æ¥¹¥È¥ê¡¼¥à¤Î¥Ð¥Ã¥Õ¥¡¤Ëί¤Ã¤Æ¤¤¤ë½ÐÎϥǡ¼¥¿¤Ï½ñ¤­½Ð¤µ¤ì¤ë¡£ -ÆþÎϥХåե¡Æâ¤Î¥Ç¡¼¥¿¤ÏÇË´þ¤µ¤ì¤ë¡£ +と同じように) 各ストリームのバッファに溜っている出力データは書き出される。 +入力バッファ内のデータは破棄される。 .\"O The standard streams, .\"O .IR stdin , @@ -64,27 +64,27 @@ fcloseall \- .\"O and .\"O .I stderr .\"O are also closed. -ɸ½àÆþ½ÐÎÏ +標準入出力 .IR stdin , .IR stdout , .I stderr -¤âÊĤ¸¤é¤ì¤ë¡£ +も閉じられる。 .\"O .SH "RETURN VALUES" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O This function returns 0 if all files were successfully closed; .\"O on error, .\"O .B EOF .\"O is returned. -¤³¤Î´Ø¿ô¤Ï¡¢¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤¬Àµ¾ï¤ËÊĤ¸¤é¤ì¤¿¾ì¹ç 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ +この関数は、すべてのファイルが正常に閉じられた場合 0 を返す。 +エラーの場合、 .B EOF -¤òÊÖ¤¹¡£ +を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This function is a GNU extension. -¤³¤Î´Ø¿ô¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ë¡£ +この関数は GNU 拡張である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR close (2), .BR fclose (3), .BR fflush (3), diff --git a/draft/man3/fdim.3 b/draft/man3/fdim.3 index 470b13e2..4f64168e 100644 --- a/draft/man3/fdim.3 +++ b/draft/man3/fdim.3 @@ -12,11 +12,11 @@ .\" .TH FDIM 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fdim, fdimf, fdiml \- positive difference -fdim, fdimf, fdiml \- Àµ¤Îº¹Ê¬¤ò·×»»¤¹¤ë +fdim, fdimf, fdiml \- 正の差分を計算する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double fdim(double " x ", double " y ); @@ -26,14 +26,14 @@ fdim, fdimf, fdiml \- .BI "long double fdiml(long double " x ", long double " y ); .sp .\"O Link with \fI\-lm\fP. -\fI-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -48,14 +48,14 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions return the positive difference, max(\fIx\fP-\fIy\fP,0), .\"O between their arguments. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢Æó¤Ä¤Î°ú¤­¿ô´Ö¤ÎÀµ¤Îº¹Ê¬ max(\fIx\fP-\fIy\fP,0) ¤òÊÖ¤¹¡£ +これらの関数は、二つの引き数間の正の差分 max(\fIx\fP-\fIy\fP,0) を返す。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the positive difference. -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤ÏÀµ¤Îº¹Ê¬¤òÊÖ¤¹¡£ +成功すると、これらの関数は正の差分を返す。 .\"O If .\"O .I x @@ -63,9 +63,9 @@ or .\"O .I y .\"O is a NaN, a NaN is returned. .I x -¤« +か .I y -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If the result overflows, .\"O a range error occurs, @@ -75,51 +75,51 @@ or .\"O or .\"O .BR HUGE_VALL , .\"O respectively. -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +結果がオーバーフローする場合、範囲エラーが発生し、 +各関数はそれぞれ .BR HUGE_VAL , .BR HUGE_VALF , .B HUGE_VALL -¤òÊÖ¤¹¡£ +を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Range error: result overflow -ÈÏ°Ï¥¨¥é¡¼ (range error)¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Î¾ì¹ç +範囲エラー (range error)、オーバーフローの場合 .\" .I errno .\" is set to .\" .BR ERANGE . .\"O An overflow floating-point exception .\"O .RB ( FE_OVERFLOW ) .\"O is raised. -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP .\"O These functions do not set .\"O .IR errno . -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6796 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fmax (3) diff --git a/draft/man3/fenv.3 b/draft/man3/fenv.3 index 293f5aee..d90ad872 100644 --- a/draft/man3/fenv.3 +++ b/draft/man3/fenv.3 @@ -30,13 +30,13 @@ .\" Updated 2005-02-26, Akihiro MOTOKI .\" Updated 2008-09-16, Akihiro MOTOKI .\" -.\"WORD: (floating-point) exception (ÉâÆ°¾®¿ôÅÀ) Îã³° -.\"WORD: rounding ´Ý¤á -.\"WORD: opaque ÆâÉô¤Î +.\"WORD: (floating-point) exception (浮動小数点) 例外 +.\"WORD: rounding 丸め +.\"WORD: opaque 内部の .\" .TH FENV 3 2010-10-31 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O feclearexcept, fegetexceptflag, feraiseexcept, fesetexceptflag, .\"O fetestexcept, fegetenv, fegetround, feholdexcept, fesetround, .\"O fesetenv, feupdateenv, feenableexcept, fedisableexcept, @@ -44,9 +44,9 @@ feclearexcept, fegetexceptflag, feraiseexcept, fesetexceptflag, fetestexcept, fegetenv, fegetround, feholdexcept, fesetround, fesetenv, feupdateenv, feenableexcept, fedisableexcept, -fegetexcept \- ÉâÆ°¾®¿ôÅÀ¤Î´Ý¤á¤ÈÎã³°¤Î¼è¤ê°·¤¤ +fegetexcept \- 浮動小数点の丸めと例外の取り扱い .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -74,23 +74,23 @@ fegetexcept \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These eleven functions were defined in C99, and describe the handling .\"O of floating-point rounding and exceptions (overflow, zero-divide etc.). -¤³¤ì¤é¤Î 11 ¸Ä¤Î´Ø¿ô¤Ï C99 ¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ -ÉâÆ°¾®¿ôÅÀ¤Î´Ý¤á¤ÈÎã³° (¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¡¢¥¼¥í¤Ë¤è¤ë½ü»»¤Ê¤É) -¤Î¼è¤ê°·¤¤¤òµ¬Äꤹ¤ë¡£ +これらの 11 個の関数は C99 で定義されており、 +浮動小数点の丸めと例外 (オーバーフロー、ゼロによる除算など) +の取り扱いを規定する。 .\"O .SS Exceptions -.SS Îã³° +.SS 例外 .\"O The .\"O .I divide-by-zero .\"O exception occurs when an operation on finite numbers .\"O produces infinity as exact answer. .I divide-by-zero -Îã³°¤Ï¡¢Í­¸Â¤Î¿ôÃͤËÂФ¹¤ë±é»»¤¬¡¢ -̵¸ÂÂç¤ÎÅú¤¨¤òÀ¸À®¤¹¤ë¤è¤¦¤Ê¾ì¹ç¤Ëµ¯¤³¤ë¡£ +例外は、有限の数値に対する演算が、 +無限大の答えを生成するような場合に起こる。 .LP .\"O The .\"O .I overflow @@ -98,9 +98,9 @@ fegetexcept \- .\"O floating-point number, but has (much) larger absolute value than the .\"O largest (finite) floating-point number that is representable. .I overflow -Îã³°¤Ï¡¢·ë²Ì¤¬ÉâÆ°¾®¿ôÅÀ¿ôÃͤÇɽµ­¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Î¤Ë¡¢ -¤½¤ÎÀäÂÐÃͤ¬É½¸½²Äǽ¤ÊÉâÆ°¾®¿ôÅÀ¿ô¤Î (Í­¸Â¤Î) ºÇÂçÃͤè¤ê¤â -(¤º¤Ã¤È) Â礭¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤è¤¦¤Ê¾ì¹ç¤Ëµ¯¤³¤ë¡£ +例外は、結果が浮動小数点数値で表記されなければならないのに、 +その絶対値が表現可能な浮動小数点数の (有限の) 最大値よりも +(ずっと) 大きくなってしまうような場合に起こる。 .LP .\"O The .\"O .I underflow @@ -109,11 +109,11 @@ fegetexcept \- .\"O positive normalized floating-point number (and would lose much accuracy .\"O when represented as a denormalized number). .I underflow -Îã³°¤Ï¡¢·ë²Ì¤¬ÉâÆ°¾®¿ôÅÀ¿ôÃͤÇɽµ­¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Î¤Ë¡¢ -¤½¤ÎÀäÂÐÃͤ¬Àµ¤ÎÀµµ¬²½ÉâÆ°¾®¿ôÅÀ¿ô¤ÎºÇ¾®Ãͤè¤ê¤â -¾®¤µ¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦ -(¤½¤·¤Æ ÈóÀµµ¬²½¿ô¤Çɽ¸½¤·¤¿¾ì¹ç¤ËÈó¾ï¤ËÀºÅÙ¤ò¼º¤Ã¤Æ¤·¤Þ¤¦) -¤è¤¦¤Ê¾ì¹ç¤Ëµ¯¤³¤ë¡£ +例外は、結果が浮動小数点数値で表記されなければならないのに、 +その絶対値が正の正規化浮動小数点数の最小値よりも +小さくなってしまう +(そして 非正規化数で表現した場合に非常に精度を失ってしまう) +ような場合に起こる。 .LP .\"O The .\"O .I inexact @@ -125,33 +125,33 @@ fegetexcept \- .\"O .I underflow .\"O occurs. .I inexact -Îã³°¤Ï¡¢´Ý¤á¸å¤Î±é»»·ë²Ì¤¬¡¢ -̵¸ÂÀºÅ٤ηë²Ì¤È°Û¤Ê¤ë¤è¤¦¤Ê¾ì¹ç¤Ëµ¯¤³¤ë¡£ +例外は、丸め後の演算結果が、 +無限精度の結果と異なるような場合に起こる。 .I overflow -Îã³°¤« +例外か .I underflow -Îã³°¤¬µ¯¤­¤¿¤È¤­¤Ë¤Ï¡¢¾ï¤Ë¤³¤ÎÎã³°¤âµ¯¤³¤ë¡£ +例外が起きたときには、常にこの例外も起こる。 .LP .\"O The .\"O .I invalid .\"O exception occurs when there is no well-defined result .\"O for an operation, as for 0/0 or infinity \- infinity or sqrt(\-1). .I invalid -Îã³°¤Ï¡¢±é»»·ë²Ì¤¬¤¦¤Þ¤¯ÄêµÁ¤Ç¤­¤Ê¤¤·ë²Ì¤òÀ¸¤¸¤ë¤è¤¦¤Ê¾ì¹ç¤Ëµ¯¤³¤ë¡£ -Î㤨¤Ð 0/0¡¢Ìµ¸ÂÂç \- ̵¸ÂÂç¡¢sqrt(\-1) ¤Ê¤É¡£ +例外は、演算結果がうまく定義できない結果を生じるような場合に起こる。 +例えば 0/0、無限大 \- 無限大、sqrt(\-1) など。 .\"O .SS "Exception handling" -.SS Îã³°½èÍý +.SS 例外処理 .\"O Exceptions are represented in two ways: as a single bit .\"O (exception present/absent), and these bits correspond in some .\"O implementation-defined way with bit positions in an integer, .\"O and also as an opaque structure that may contain more information .\"O about the exception (perhaps the code address where it occurred). -Îã³°¤Îɽ¤·Êý¤Ë¤Ï 2 ¤Ä¤ÎÊýË¡¤¬¤¢¤ë¡£ -¤Ò¤È¤Ä¤Ï¡¢Ã±°ì¤Î¥Ó¥Ã¥È¤Ç (Îã³°¤¬¤¢¤Ã¤¿¤«¤Ê¤«¤Ã¤¿¤«¤ò) ɽ¤¹ÊýË¡¤Ç¡¢ -¤³¤ì¤é¤Î¥Ó¥Ã¥È¤ÏÀ°¿ô¤Î¤¢¤ë¥Ó¥Ã¥È°ÌÃÖ¤ËÂбþ¤·¡¢¥Ó¥Ã¥È¤ÎÂбþÉÕ¤±¤Ï -¼ÂÁõ°Í¸¤Ç¤¢¤ë¡£¤â¤¦°ì¤Ä¤Ï¡¢ÆâÉô¹½Â¤ÂΤò»È¤Ã¤Æɽ¤¹ÊýË¡¤Ç¡¢ -¤³¤ÎÊýË¡¤ÎÊý¤¬Îã³°¤Ë´Ø¤¹¤ë¤è¤ê¿¤¯¤Î¾ðÊó -(Î㤨¤ÐÎã³°¤¬µ¯¤³¤Ã¤¿¥³¡¼¥É¤Î¥¢¥É¥ì¥¹¤Ê¤É) ¤¬´Þ¤Þ¤ì¤ë¡£ +例外の表し方には 2 つの方法がある。 +ひとつは、単一のビットで (例外があったかなかったかを) 表す方法で、 +これらのビットは整数のあるビット位置に対応し、ビットの対応付けは +実装依存である。もう一つは、内部構造体を使って表す方法で、 +この方法の方が例外に関するより多くの情報 +(例えば例外が起こったコードのアドレスなど) が含まれる。 .LP .\"O Each of the macros .\"O .BR FE_DIVBYZERO , @@ -173,26 +173,26 @@ fegetexcept \- .BR FE_INVALID , .BR FE_OVERFLOW , .B FE_UNDERFLOW -¤Î³Æ¥Þ¥¯¥í¤Ï¡¢¤½¤ì¤¾¤ìÂбþ¤¹¤ëÎã³°¤Î½èÍý¤ò -¼ÂÁõ¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¤ËÄêµÁ¤µ¤ì¤ë¡£ -¤³¤Î¤È¤­Âбþ¤¹¤ë¥Ó¥Ã¥È¤ò¤½¤ì¤¾¤ìÄêµÁ¤¹¤ë¤³¤È¤Ë¤Ê¤ë¤Î¤Ç¡¢ -Îã³°½èÍý´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤ò¡¢Î㤨¤Ð +の各マクロは、それぞれ対応する例外の処理を +実装がサポートしている場合に定義される。 +このとき対応するビットをそれぞれ定義することになるので、 +例外処理関数の呼び出しを、例えば .BR FE_OVERFLOW | FE_UNDERFLOW -¤È¤¤¤¦À°¿ô¤Î°ú¤­¿ô¤òÍѤ¤¤Æ¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¾¤ÎÎã³°¤â¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +という整数の引き数を用いて行うことができる。 +他の例外もサポートされているかもしれない。 .B FE_ALL_EXCEPT -¥Þ¥¯¥í¤Ï¡¢¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ëÎã³°¤ËÂбþ¤¹¤ë¥Ó¥Ã¥È¤¬Á´¤Æ¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë -(¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ëÎã³°Á´¤Æ¤ÎÏÀÍýϤǤ¢¤ë)¡£ +マクロは、サポートされている例外に対応するビットが全てセットされている +(サポートされている例外全ての論理和である)。 .PP .\"O The .\"O .BR feclearexcept () .\"O function clears the supported exceptions represented by the bits .\"O in its argument. .BR feclearexcept () -´Ø¿ô¤Ï¡¢°ú¤­¿ô +関数は、引き数 .I excepts -¤Î¥Ó¥Ã¥ÈÎó¤Ç»ØÄꤵ¤ì¤¿Îã³°¤ò¥¯¥ê¥¢¤¹¤ë -(½èÍý¤Ï¼ÂÁõ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ëÎã³°¤Ë¤Ä¤¤¤Æ¤Î¤ß¹Ô¤ï¤ì¤ë)¡£ +のビット列で指定された例外をクリアする +(処理は実装でサポートされている例外についてのみ行われる)。 .LP .\"O The .\"O .BR fegetexceptflag () @@ -202,21 +202,21 @@ fegetexcept \- .\"O in the opaque object .\"O .IR *flagp . .BR fegetexceptflag () -´Ø¿ô¤Ï¡¢°ú¤­¿ô +関数は、引き数 .I excepts -¤Ç»ØÄꤵ¤ì¤¿Îã³°¥Õ¥é¥°¤Î¾õÂÖ¤ò +で指定された例外フラグの状態を .I *flagp -¤¬»Ø¤¹ÆâÉô¥ª¥Ö¥¸¥§¥¯¥È¤ËÊݸ¤¹¤ë¡£ +が指す内部オブジェクトに保存する。 .LP .\"O The .\"O .BR feraiseexcept () .\"O function raises the supported exceptions represented by the bits in .\"O .IR excepts . .BR feraiseexcept () -´Ø¿ô¤Ï¡¢ +関数は、 .I excepts -¤Î¥Ó¥Ã¥ÈÎó¤Ç»ØÄꤵ¤ì¤¿Îã³°¤Î¤¦¤Á¡¢ -¼ÂÁõ¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤â¤Î¤òȯÀ¸¤µ¤»¤ë¡£ +のビット列で指定された例外のうち、 +実装がサポートしているものを発生させる。 .LP .\"O The .\"O .BR fesetexceptflag () @@ -229,22 +229,22 @@ fegetexcept \- .\"O with a last argument that contained all bits in .\"O .IR excepts . .BR fesetexceptflag () -´Ø¿ô¤Ï¡¢ +関数は、 .I excepts -¤Ç»ØÄꤵ¤ì¤¿Îã³°¤ËÂбþ¤¹¤ë¥Õ¥é¥°¤Î¾õÂÖ¤ò +で指定された例外に対応するフラグの状態を .I *flagp -¤ÎÃͤËÀßÄꤹ¤ë¡£ +の値に設定する。 .I *flagp -¤ÎÃͤϡ¢¤³¤Î´Ø¿ô¤ò¸Æ¤ÖÁ°¤Ë +の値は、この関数を呼ぶ前に .BR fegetexceptflag () -´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤Æ¼èÆÀ¤·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(¤³¤Î¤È¤­¡¢ +関数を呼び出して取得しておかなければならない +(このとき、 .BR fegetexceptflag () -¤ÎºÇ¸å¤Î°ú¤­¿ô¤Ë¤Ï¡¢ +の最後の引き数には、 .BR fesetexceptflag () -¤ËÅϤ¹ +に渡す .I excepts -¤Î¤¹¤Ù¤Æ¤Î¥Ó¥Ã¥È¤ò´Þ¤àÃͤò»ØÄꤹ¤ë¤³¤È)¡£ +のすべてのビットを含む値を指定すること)。 .LP .\"O The .\"O .BR fetestexcept () @@ -253,12 +253,12 @@ fegetexcept \- .\"O .I excepts .\"O and for which the corresponding exception is currently set. .BR fetestexcept () -´Ø¿ô¤Ï¡¢ +関数は、 .I excepts -°ú¤­¿ô¤Ç¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¥Ó¥Ã¥È¤Î¤¦¤Á¡¢ -¸½ºßÀßÄꤵ¤ì¤Æ¤¤¤ëÎã³°¤ËÂбþ¤¹¤ë¥Ó¥Ã¥È¤¬ 1 ¤Ë¤Ê¤Ã¤¿¥ï¡¼¥É¤òÊÖ¤¹¡£ +引き数でセットされているビットのうち、 +現在設定されている例外に対応するビットが 1 になったワードを返す。 .\"O .SS Rounding mode -.SS ´Ý¤á¥â¡¼¥É +.SS 丸めモード .\"O The rounding mode determines how the result of floating-point operations .\"O is treated when the result cannot be exactly represented in the significand. .\"O Various rounding modes may be provided: @@ -266,13 +266,13 @@ fegetexcept \- .\"O round up (toward positive infinity), .\"O round down (toward negative infinity), and .\"O round toward zero. -´Ý¤á¥â¡¼¥É¤Ï¡¢·ë²Ì¤¬²¾¿ôÉô¤À¤±¤ÇÀµ³Î¤Ëɽ¸½¤Ç¤­¤Ê¤¤ºÝ¤Ë¡¢ -ÉâÆ°¾®¿ôÅÀÁàºî¤Î·ë²Ì¤ò¤É¤Î¤è¤¦¤Ë°·¤¦¤«¤ò·è¤á¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¤µ¤Þ¤¶¤Þ¤Ê´Ý¤á¥â¡¼¥É¤òÄ󶡤¹¤ë¤³¤È¤¬¤Ç¤­¤ë: -ºÇ¤â¶á¤¤Ãͤ˴ݤá¤ë (¥Ç¥Õ¥©¥ë¥È)¡¢ -(Àµ¤Î̵¸ÂÂç¤Ë¸þ¤«¤Ã¤Æ) Â礭¤¯¤Ê¤ëÊý¸þ¤Ë´Ý¤á¤ë¡¢ -(Éé¤Î̵¸ÂÂç¤Ë¸þ¤«¤Ã¤Æ) ¾®¤µ¤¯¤Ê¤ëÊý¸þ¤Ë´Ý¤á¤ë¡¢ -0 ¤Ë¸þ¤±¤Æ´Ý¤á¤ë¡¢¤Ç¤¢¤ë¡£ +丸めモードは、結果が仮数部だけで正確に表現できない際に、 +浮動小数点操作の結果をどのように扱うかを決めるものである。 +さまざまな丸めモードを提供することができる: +最も近い値に丸める (デフォルト)、 +(正の無限大に向かって) 大きくなる方向に丸める、 +(負の無限大に向かって) 小さくなる方向に丸める、 +0 に向けて丸める、である。 .\"O Each of the macros .\"O .BR FE_TONEAREST , @@ -286,23 +286,23 @@ fegetexcept \- .BR FE_UPWARD , .BR FE_DOWNWARD , .BR FE_TOWARDZERO -¤Î³Æ¥Þ¥¯¥í¤Ï¡¢¤½¤ì¤¾¤ìÂбþ¤¹¤ë´Ý¤á¤ÎÊý¸þ¤ò -¼ÂÁõ¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¤ËÄêµÁ¤µ¤ì¤ë¡£ +の各マクロは、それぞれ対応する丸めの方向を +実装がサポートしている場合に定義される。 .LP .\"O The .\"O .BR fegetround () .\"O function returns the macro corresponding to the current .\"O rounding mode. .BR fegetround () -´Ø¿ô¤Ï¸½ºß¤Î´Ý¤á¥â¡¼¥É¤ËÂбþ¤¹¤ë¥Þ¥¯¥í¤òÊÖ¤¹¡£ +関数は現在の丸めモードに対応するマクロを返す。 .LP .\"O The .\"O .BR fesetround () .\"O function sets the rounding mode as specified by its argument .\"O and returns zero when it was successful. .BR fesetround () -´Ø¿ô¤Ï´Ý¤á¥â¡¼¥É¤ò°ú¤­¿ô¤ËÍ¿¤¨¤é¤ì¤¿Ãͤˤ·¡¢ -À®¸ù¤·¤¿¤é¥¼¥í¤òÊÖ¤¹¡£ +関数は丸めモードを引き数に与えられた値にし、 +成功したらゼロを返す。 .\"O C99 and POSIX.1-2008 specify an identifier, .\"O .BR FLT_ROUNDS , @@ -311,31 +311,31 @@ fegetexcept \- .\"O which indicates the implementation-defined rounding .\"O behavior for floating-point addition. .\"O This identifier has one of the following values: -C99 ¤È POSIX.1-2008 ¤Ç¤Ï +C99 と POSIX.1-2008 では .B FLT_ROUNDS -¤È¤¤¤¦¼±Ê̻Ҥ¬µ¬Äꤵ¤ì¤Æ¤ª¤ê¡¢ +という識別子が規定されており、 .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£¤³¤Î¼±ÊÌ»Ò¤Ï -ÉâÆ°¾®¿ôÅÀ¿ô¤Î²Ã»»¤Ë¤Ä¤¤¤Æ¤Î¼ÂÁõÄêµÁ¤µ¤ì¤¿´Ý¤áÆ°ºî¤òɽ¤·¡¢ -°Ê²¼¤Î¤¤¤º¤ì¤«¤ÎÃͤò»ý¤Ä¡£ +で定義されている。この識別子は +浮動小数点数の加算についての実装定義された丸め動作を表し、 +以下のいずれかの値を持つ。 .IP \-1 .\"O The rounding mode is not determinable. -´Ý¤á¥â¡¼¥É¤Ï·è¤á¤é¤ì¤Æ¤¤¤Ê¤¤¡£ +丸めモードは決められていない。 .IP 0 .\"O Rounding is toward 0. -0 ¤Ë¸þ¤±¤Æ´Ý¤á¤ë¡£ +0 に向けて丸める。 .IP 1 .\"O Rounding is toward nearest number. -ºÇ¤â¶á¤¤¿ô¤Ë´Ý¤á¤ë¡£ +最も近い数に丸める。 .IP 2 .\"O Rounding is toward positive infinity. -Àµ¤Î̵¸ÂÂç¤Ë¸þ¤±¤Æ´Ý¤á¤ë¡£ +正の無限大に向けて丸める。 .IP 3 .\"O Rounding is toward negative infinity. -Éé¤Î̵¸ÂÂç¤Ë¸þ¤±¤Æ´Ý¤á¤ë¡£ +負の無限大に向けて丸める。 .PP .\"O Other values represent machine-dependent, nonstandard rounding modes. -¾¤ÎÃͤϥޥ·¥ó°Í¸¤Ç¤¢¤ê¡¢É¸½àŪ¤Ç¤Ï¤Ê¤¤´Ý¤á¥â¡¼¥É¤Ç¤¢¤ë¡£ +他の値はマシン依存であり、標準的ではない丸めモードである。 .PP .\"O The value of .\"O .BR FLT_ROUNDS @@ -343,12 +343,12 @@ C99 .\"O .BR fesetround () .\"O (but see BUGS). .BR FLT_ROUNDS -¤ÎÃͤˤϡ¢ +の値には、 .BR fesetround () -¤ÇÀßÄꤵ¤ì¤¿¸½ºß¤Î´Ý¤á¥â¡¼¥É¤¬È¿±Ç¤µ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë -(⤷¡¢¡Ö¥Ð¥°¡×¤ÎÀá¤ò»²¾È)¡£ +で設定された現在の丸めモードが反映されるべきである +(但し、「バグ」の節を参照)。 .\"O .SS "Floating-point environment" -.SS ÉâÆ°¾®¿ôÅÀ´ØÏ¢¤Î´Ä¶­ +.SS 浮動小数点関連の環境 .\"O The entire floating-point environment, including .\"O control modes and status flags, can be handled .\"O as one opaque object, of type @@ -357,32 +357,32 @@ C99 .\"O .B FE_DFL_ENV .\"O (of type .\"O .IR "const fenv_t *" ). -ÉâÆ°¾®¿ôÅÀ´ØÏ¢¤Î´Ä¶­¤ÎÁ´ÂΤϡ¢ -À©¸æ¥â¡¼¥É¤ä¾õÂ֥ե饰¤â´Þ¤á¡¢ +浮動小数点関連の環境の全体は、 +制御モードや状態フラグも含め、 .I fenv_t -·¿¤ÎÆâÉô¥ª¥Ö¥¸¥§¥¯¥È°ì¤Ä¤Ç¼è¤ê°·¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Î´Ä¶­¤Ï¡¢ +型の内部オブジェクト一つで取り扱うことができる。 +デフォルトの環境は、 .RI ( "const fenv_t *" -·¿¤Î) +型の) .B FE_DFL_ENV -¤Ç¼¨¤µ¤ì¤ë¤â¤Î¤Ç¤¢¤ë¡£ +で示されるものである。 .\"O This is the environment setup at program start and it is defined by .\"O ISO C to have round to nearest, all exceptions cleared and a nonstop .\"O (continue on exceptions) mode. -¤³¤ì¤Ï¥×¥í¥°¥é¥à¤Î³«»Ï»þ¤Ë¹½ÃÛ¤µ¤ì¤ë´Ä¶­¤Ç¤¢¤ê¡¢ -ISO C ¤Ç¤Ï¡¢´Ý¤á¥â¡¼¥É¤òºÇ¤â¶á¤¤Ãͤؤδݤá +これはプログラムの開始時に構築される環境であり、 +ISO C では、丸めモードを最も近い値への丸め .RB ( FE_TONEAREST ) -¤ËÀßÄꤷ¡¢¤¹¤Ù¤Æ¤ÎÎã³°¤ò¥¯¥ê¥¢¤·¡¢ÉÔÄä»ß (nonstop) -(Îã³°¤¬µ¯¤­¤Æ¤â·Ñ³¤¹¤ë) ¥â¡¼¥É¤È¤¹¤ë¤è¤¦¤Ëµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +に設定し、すべての例外をクリアし、不停止 (nonstop) +(例外が起きても継続する) モードとするように規定されている。 .LP .\"O The .\"O .BR fegetenv () .\"O function saves the current floating-point environment in the object .\"O .IR *envp . .BR fegetenv () -´Ø¿ô¤Ï¡¢¸½ºß¤ÎÉâÆ°¾®¿ôÅÀ´Ä¶­¤ò¡¢¥ª¥Ö¥¸¥§¥¯¥È +関数は、現在の浮動小数点環境を、オブジェクト .I *envp -¤ËÊݸ¤¹¤ë¡£ +に保存する。 .LP .\"O The .\"O .BR feholdexcept () @@ -391,9 +391,9 @@ ISO C .\"O if available. .\"O It returns zero when successful. .BR feholdexcept () -´Ø¿ô¤âƱ¤¸Æ°ºî¤ò¹Ô¤¤¡¢ -¤µ¤é¤Ë²Äǽ¤Ç¤¢¤ì¤Ð¡¢Á´¤Æ¤ÎÎã³°¥Õ¥é¥°¤ò¥¯¥ê¥¢¤·¡¢ -nonstop (Îã³°»þ¤Ë¤â¼Â¹Ô¤ò·Ñ³) ¥â¡¼¥É¤ËÀßÄꤹ¤ë¡£ +関数も同じ動作を行い、 +さらに可能であれば、全ての例外フラグをクリアし、 +nonstop (例外時にも実行を継続) モードに設定する。 .LP .\"O The .\"O .BR fesetenv () @@ -408,18 +408,18 @@ nonstop ( .\"O .BR FE_DFL_ENV . .\"O This call does not raise exceptions. .BR fesetenv () -´Ø¿ô¤Ï¡¢ÉâÆ°¾®¿ôÅÀ´Ä¶­¤ò¡¢¥ª¥Ö¥¸¥§¥¯¥È +関数は、浮動小数点環境を、オブジェクト .I *envp -¤«¤é¼è¤ê½Ð¤·¤¿ÃͤËÌ᤹¡£ -¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢Í­¸ú¤Ç¤¢¤ë¤³¤È¤¬»öÁ°¤Ëʬ¤«¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Î㤨¤Ð¡¢ +から取り出した値に戻す。 +このオブジェクトは、有効であることが事前に分かっていなければならない。 +例えば、 .BR fegetenv () -¤ä +や .BR feholdexcept () -¤ò¸Æ¤Ó½Ð¤·¤¿·ë²Ì¤Ç¤¢¤ë¤È¤«¡¢ +を呼び出した結果であるとか、 .B FE_DFL_ENV -¤ËÅù¤·¤¤¤È¤«¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤Î´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤ÏÎã³°¤òȯÀ¸¤·¤Ê¤¤¡£ +に等しいとかでなければならない。 +この関数の呼び出しは例外を発生しない。 .LP .\"O The .\"O .BR feupdateenv () @@ -434,38 +434,38 @@ nonstop ( .\"O .I *envp .\"O must be known to be valid. .BR feupdateenv () -´Ø¿ô¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È +関数は、オブジェクト .I *envp -¤¬É½¸½¤¹¤ëÉâÆ°¾®¿ôÅÀ´Ä¶­¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¡£ -¤¿¤À¤·¡¢¸½ºßȯÀ¸¤·¤Æ¤¤¤ëÎã³°¤Ï¥¯¥ê¥¢¤µ¤ì¤Ê¤¤¡£ -¤³¤Î´Ø¿ô¤ò¸Æ¤ó¤À¸å¤ËΩ¤Ã¤Æ¤¤¤ëÎã³°¤Ï¡¢ -´Ø¿ô¤ò¸Æ¤ÖÁ°¤ÎÃÍ¤È +が表現する浮動小数点環境をインストールする。 +ただし、現在発生している例外はクリアされない。 +この関数を呼んだ後に立っている例外は、 +関数を呼ぶ前の値と .I *envp -¤ÎÃͤȤΥӥåȤ´¤È¤Î OR ¤ò¼è¤Ã¤¿¤â¤Î¤Ë¤Ê¤ë¡£ -¾åµ­¤ÈƱÍͤˡ¢¥ª¥Ö¥¸¥§¥¯¥È +の値とのビットごとの OR を取ったものになる。 +上記と同様に、オブジェクト .I *envp -¤Ï¡¢»öÁ°¤ËÍ­¸ú¤Ç¤¢¤ë¤³¤È¤¬Ê¬¤«¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は、事前に有効であることが分かっていなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O These functions return zero on success and nonzero if an error occurred. .\"O .\" Earlier seven of these functions were listed as returning void. .\"O .\" This was corrected in Corrigendum 1 (ISO/IEC 9899:1999/Cor.1:2001(E)) .\"O .\" of the C99 Standard. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢À®¸ù¤Î¾ì¹ç 0 ¤òÊÖ¤·¡¢¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤È 0 °Ê³°¤òÊÖ¤¹¡£ -.\" °ÊÁ°¤Ï¡¢¤³¤ì¤é¤Î´Ø¿ô¤Î¤¦¤Á 7¤Ä¤Ï void ¤òÊÖ¤¹¤â¤Î¤È½ñ¤«¤ì¤Æ¤¤¤¿¡£ -.\" ¤³¤ì¤Ï C99 ɸ½à¤Î Corrigendum 1 (ISO/IEC 9899:1999/Cor.1:2001(E)) -.\" ¤Ç½¤Àµ¤µ¤ì¤¿¡£ +これらの関数は、成功の場合 0 を返し、エラーが発生すると 0 以外を返す。 +.\" 以前は、これらの関数のうち 7つは void を返すものと書かれていた。 +.\" これは C99 標準の Corrigendum 1 (ISO/IEC 9899:1999/Cor.1:2001(E)) +.\" で修正された。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 IEC 60559 (IEC 559:1989), ANSI/IEEE 854, C99, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .SS Glibc Notes -.SS glibc ¤Ç¤ÎÃí°Õ +.SS glibc での注意 .\"O If possible, the GNU C Library defines a macro .\"O .B FE_NOMASK_ENV .\"O which represents an environment where every exception raised causes a @@ -475,13 +475,13 @@ IEC 60559 (IEC 559:1989), ANSI/IEEE 854, C99, POSIX.1-2001. .\"O It is only defined if .\"O .B _GNU_SOURCE .\"O is defined. -²Äǽ¤Ê¾ì¹ç¤Ë¤Ï¡¢GNU C Library ¤Ï¥Þ¥¯¥í +可能な場合には、GNU C Library はマクロ .B FE_NOMASK_ENV -¤òÄêµÁ¤¹¤ë¡£¤³¤Î¥Þ¥¯¥í¤Ï¤¹¤Ù¤Æ¤ÎÎã³°¤Ç¥È¥é¥Ã¥×¤¬À¸¤¸¤ë¤è¤¦¤Ê´Ä¶­¤òɽ¤¹¡£ +を定義する。このマクロはすべての例外でトラップが生じるような環境を表す。 .B #ifdef -¤ò»È¤Ã¤Æ¤³¤Î¥Þ¥¯¥í¤ò¥Æ¥¹¥È¤Ç¤­¤ë¡£¤³¤ì¤Ï +を使ってこのマクロをテストできる。これは .B _GNU_SOURCE -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¸Â¤Ã¤ÆÄêµÁ¤µ¤ì¤ë¡£ +が定義されている場合に限って定義される。 .\"O The C99 standard does not define a way to set individual bits in the .\"O floating-point mask, for example, to trap on specific flags. .\"O Since version 2.2, glibc supports the functions @@ -491,21 +491,21 @@ IEC 60559 (IEC 559:1989), ANSI/IEEE 854, C99, POSIX.1-2001. .\"O to set individual floating-point traps, and .\"O .BR fegetexcept () .\"O to query the state. -C99 ɸ½à¤ÏÉâÆ°¾®¿ôÅÀ¥Þ¥¹¥¯ (Î㤨¤ÐÆÃÄê¤Î¥Õ¥é¥°¤Ç¤Î¥È¥é¥Ã¥×¤Ê¤É) -¤Î³Æ¥Ó¥Ã¥È¤ÎÀßÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤ÏÄêµÁ¤·¤Æ¤¤¤Ê¤¤¡£ -¥Ð¡¼¥¸¥ç¥ó 2.2 °Ê¹ß¤Î glibc ¤Ï¡¢ +C99 標準は浮動小数点マスク (例えば特定のフラグでのトラップなど) +の各ビットの設定方法については定義していない。 +バージョン 2.2 以降の glibc は、 .BR feenableexcept () -´Ø¿ô¤È +関数と .BR fedisableexcept () -´Ø¿ô¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤ª¤ê¡¢ -³Æ¡¹¤ÎÉâÆ°¾®¿ôÅÀ¥È¥é¥Ã¥×¤òÀßÄê¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤Þ¤¿ +関数をサポートしており、 +各々の浮動小数点トラップを設定できるようになっている。 +また .BR fegetexcept () -¤Ë¤è¤Ã¤Æ¾õÂÖ¤ÎÌ䤤¹ç¤ï¤»¤â¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +によって状態の問い合わせもできるようになっている。 .sp .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B "#define _GNU_SOURCE" .br .B "#include " @@ -530,36 +530,36 @@ C99 ɸ .\"O .BR fegetexcept () .\"O function returns the set of all currently enabled exceptions. .BR feenableexcept () -´Ø¿ô¤È +関数と .BR fedisableexcept () -´Ø¿ô¤Ï +関数は .I excepts -¤Ë¤è¤Ã¤Æɽ¸½¤µ¤ì¤ë³ÆÎã³°¤Î¥È¥é¥Ã¥×¤òÍ­¸ú (̵¸ú) ¤Ë¤¹¤ë¡£ -À®¸ù¤·¤¿¾ì¹ç¤ÏľÁ°¤ËÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤¿Îã³°¤Î¥»¥Ã¥È¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ +によって表現される各例外のトラップを有効 (無効) にする。 +成功した場合は直前に有効になっていた例外のセットを返す。 +失敗した場合は \-1 を返す。 .BR fegetexcept () -´Ø¿ô¤Ï¸½ºßÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ëÎã³°Á´¤Æ¤«¤é¤Ê¤ë¥»¥Ã¥È¤òÊÖ¤¹¡£ +関数は現在有効になっている例外全てからなるセットを返す。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O C99 specifies that the value of .\"O .B FLT_ROUNDS .\"O should reflect changes to the current rounding mode, as set by .\"O .BR fesetround (). -C99 ¤Îµ¬Äê¤Ç¤Ï¡¢ +C99 の規定では、 .BR FLT_ROUNDS -¤ÎÃÍ¤Ë¤Ï +の値には .BR fesetround () -¤ÇÀßÄꤵ¤ì¤¿¸½ºß¤Î´Ý¤á¥â¡¼¥É¤¬È¿±Ç¤µ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¤È¤µ¤ì¤Æ¤¤¤ë¡£ +で設定された現在の丸めモードが反映されるべきであるとされている。 .\"O Currently, -¸½ºß¤Î¤È¤³¤í¡¢ +現在のところ、 .\" Aug 08, glibc 2.8 .\"O this does not occur: .\"O .B FLT_ROUNDS .\"O always has the value 1. -¤³¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤ª¤é¤º¡¢ +このようになっておらず、 .B FLT_ROUNDS -¤Ï¾ï¤ËÃÍ 1 ¤È¤Ê¤ë¡£ +は常に値 1 となる。 .\" See http://gcc.gnu.org/ml/gcc/2002-02/msg01535.html .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR math_error (7) diff --git a/draft/man3/ferror.3 b/draft/man3/ferror.3 index f62c4c66..a3e311ef 100644 --- a/draft/man3/ferror.3 +++ b/draft/man3/ferror.3 @@ -48,11 +48,11 @@ .\" .TH FERROR 3 2008-08-29 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O clearerr, feof, ferror, fileno \- check and reset stream status -clearerr, feof, ferror, fileno \- ¥¹¥È¥ê¡¼¥à¥¹¥Æ¡¼¥¿¥¹¤Î¥Á¥§¥Ã¥¯¤È¥ê¥»¥Ã¥È +clearerr, feof, ferror, fileno \- ストリームステータスのチェックとリセット .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "void clearerr(FILE *" stream ); @@ -66,24 +66,24 @@ clearerr, feof, ferror, fileno \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR fileno (): _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The function .\"O .BR clearerr () .\"O clears the end-of-file and error indicators for the stream pointed to by .\"O .IR stream . -´Ø¿ô +関数 .BR clearerr () -¤Ï +は .I stream -¤Ç¼¨¤µ¤ì¤ë¥¹¥È¥ê¡¼¥à¤Î EOF(end-of-file) »Ø¼¨»Ò¤È¥¨¥é¡¼»Ø¼¨»Ò¤ò¥¯¥ê¥¢¤¹¤ë¡£ +で示されるストリームの EOF(end-of-file) 指示子とエラー指示子をクリアする。 .PP .\"O The function .\"O .BR feof () @@ -93,15 +93,15 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O The end-of-file indicator can only be .\"O cleared by the function .\"O .BR clearerr (). -´Ø¿ô +関数 .BR feof () -¤Ï +は .I stream -¤Ç¼¨¤µ¤ì¤ë¥¹¥È¥ê¡¼¥à¤Î EOF »Ø¼¨»Ò¤ò¥Æ¥¹¥È¤·¡¢ -¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ì¤Ð 0 °Ê³°¤Î¿ô¤òÊÖ¤¹¡£ -EOF »Ø¼¨»Ò¤Ï¡¢´Ø¿ô +で示されるストリームの EOF 指示子をテストし、 +セットされていれば 0 以外の数を返す。 +EOF 指示子は、関数 .BR clearerr () -¤Ë¤è¤Ã¤Æ¤Î¤ß¥¯¥ê¥¢¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +によってのみクリアすることができる。 .PP .\"O The function .\"O .BR ferror () @@ -111,39 +111,39 @@ EOF .\"O The error indicator can only be reset by the .\"O .BR clearerr () .\"O function. -´Ø¿ô +関数 .BR ferror () -¤Ï +は .I stream -¤Ç¼¨¤µ¤ì¤ë¥¹¥È¥ê¡¼¥à¤Î¥¨¥é¡¼»Ø¼¨»Ò¤ò¥Æ¥¹¥È¤·¡¢ -¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ì¤Ð 0 °Ê³°¤Î¿ô¤òÊÖ¤¹¡£ -¥¨¥é¡¼»Ø¼¨»Ò¤Ï¡¢´Ø¿ô +で示されるストリームのエラー指示子をテストし、 +セットされていれば 0 以外の数を返す。 +エラー指示子は、関数 .BR clearerr () -¤Ë¤è¤Ã¤Æ¤Î¤ß¥ê¥»¥Ã¥È¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +によってのみリセットすることができる。 .PP .\"O The function .\"O .BR fileno () .\"O examines the argument .\"O .I stream .\"O and returns its integer descriptor. -´Ø¿ô +関数 .BR fileno () -¤Ï¡¢°ú¿ô +は、引数 .I stream -¤òÄ´¤Ù¡¢¤½¤ÎÀ°¿ô¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤òÊÖ¤¹¡£ +を調べ、その整数のディスクリプターを返す。 .PP .\"O For nonlocking counterparts, see .\"O .BR unlocked_stdio (3). -¥í¥Ã¥¯¤»¤º¤Ë¤³¤ì¤é¤Î½èÍý¤ò¹Ô¤¤¤¿¤¤¤È¤­¤Ï¡¢ +ロックせずにこれらの処理を行いたいときは、 .BR unlocked_stdio (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O These functions should not fail and do not set the external variable .\"O .IR errno . -¤³¤ì¤é¤Î´Ø¿ô¤Ï¼ºÇÔ¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¯¡¢¤Þ¤¿¡¢³°ÉôÊÑ¿ô +これらの関数は失敗すべきではなく、また、外部変数 .I errno -¤ËÃͤò¥»¥Ã¥È¤·¤Ê¤¤¡£ +に値をセットしない。 .\"O (However, in case .\"O .BR fileno () .\"O detects that its argument is not a valid stream, it must @@ -151,29 +151,29 @@ EOF .\"O .I errno .\"O to .\"O .BR EBADF .) -(¤·¤«¤·¡¢ +(しかし、 .BR fileno () -´Ø¿ô¤Î¾ì¹ç¤Ç¡¢°ú¿ô¤¬Í­¸ú¤Ê¥¹¥È¥ê¡¼¥à¤Ç¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ -´Ø¿ô¤Ï \-1 ¤òÊÖ¤·¡¢ +関数の場合で、引数が有効なストリームでなかった場合、 +関数は \-1 を返し、 .I errno -¤Ë +に .B EBADF -¤òÀßÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£) +を設定しなければならない。) .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The functions .\"O .BR clearerr (), .\"O .BR feof (), .\"O and .\"O .BR ferror () .\"O conform to C89 and C99. -´Ø¿ô +関数 .BR clearerr (), .BR feof (), .BR ferror () -¤Ï C89 ¤È C99 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +は C89 と C99 に準拠している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR open (2), .BR fdopen (3), .BR stdio (3), diff --git a/draft/man3/fexecve.3 b/draft/man3/fexecve.3 index fd53dcfd..7d871f64 100644 --- a/draft/man3/fexecve.3 +++ b/draft/man3/fexecve.3 @@ -28,11 +28,11 @@ .\" .TH FEXECVE 3 2010-09-15 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fexecve \- execute program specified via file descriptor -fexecve \- ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë +fexecve \- ファイルディスクリプタで指定されたプログラムを実行する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -42,9 +42,9 @@ fexecve \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR fexecve (): @@ -53,17 +53,17 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR fexecve () .\"O performs the same task as .\"O .BR execve (2), @@ -72,26 +72,26 @@ _GNU_SOURCE .\"O .IR fd , .\"O rather than via a pathname. .BR fexecve () -¤Ï +は .BR execve (2) -¤ÈƱ¤¸ºî¶È¤ò¹Ô¤¦¡£°ã¤¦¤Î¤Ï¡¢ -¼Â¹Ô¤¹¤ë¥Õ¥¡¥¤¥ë¤ò¡¢¥Ñ¥¹Ì¾¤Ç¤Ï¤Ê¤¯¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +と同じ作業を行う。違うのは、 +実行するファイルを、パス名ではなく、 +ファイルディスクリプタ .I fd -¤òÍѤ¤¤Æ»ØÄꤹ¤ëÅÀ¤Ç¤¢¤ë¡£ +を用いて指定する点である。 .\"O The file descriptor .\"O .I fd .\"O must be opened read-only, .\"O and the caller must have permission to execute the file that it refers to. -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +ファイルディスクリプタ .I fd -¤Ï¡¢Æɤ߹þ¤ßÀìÍѤǥª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -¸Æ¤Ó½Ð¤·¸µ¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë -¼Â¹Ôµö²Ä¤ò»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は、読み込み専用でオープンされていなければならず、 +呼び出し元はファイルディスクリプタが参照するファイルに対する +実行許可を持っていなければならない。 .\" POSIX.1-2008 specifies the O_EXEC flag for open as an alternative, .\" but Linux doesn't support this flag yet. .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O A successful call to .\"O .BR fexecve () .\"O never returns. @@ -99,18 +99,18 @@ _GNU_SOURCE .\"O .I errno .\"O is set appropriately. .BR fexecve () -¤Ï¸Æ¤Ó½Ð¤·¤ËÀ®¸ù¤·¤¿¾ì¹ç¡¢Ìá¤ë¤³¤È¤Ï¤Ê¤¤¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ÊÖ¤êÃͤȤ·¤Æ \-1 ¤¬ÊÖ¤µ¤ì¡¢ +は呼び出しに成功した場合、戻ることはない。 +エラーの場合、返り値として \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O Errors are as for .\"O .BR execve (2), .\"O with the following additions: -¥¨¥é¡¼¤Ï +エラーは .BR execve (2) -¤ÈƱ¤¸¤À¤¬¡¢°Ê²¼¤Î¥¨¥é¡¼¤¬ÄɲäˤʤäƤ¤¤ë: +と同じだが、以下のエラーが追加になっている: .TP .B EINVAL .\"O .I fd @@ -120,33 +120,33 @@ _GNU_SOURCE .\"O .I envp .\"O is NULL. .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£¤Þ¤¿¤Ï +が有効なファイルディスクリプタでない。または .I argv -¤¬ NULL ¤Ç¤¢¤ë¡£¤Þ¤¿¤Ï +が NULL である。または .I envp -¤¬ NULL ¤Ç¤¢¤ë¡£ +が NULL である。 .TP .B ENOSYS .\"O The .\"O .I /proc .\"O file system could not be accessed. .I /proc -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +ファイルシステムにアクセスできなかった。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR fexecve () .\"O is implemented since glibc 2.3.2. .BR fexecve () -¤Ï glibc 2.3.2 °Ê¹ß¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +は glibc 2.3.2 以降で実装されている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. .\"O This function is not specified in POSIX.1-2001, .\"O and is not widely available on other systems. -¤³¤Î´Ø¿ô¤Ï POSIX.1-2001 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤ª¤é¤º¡¢ -¾¤Î¥·¥¹¥Æ¥à¤Ç¹­¤¯ÍøÍѤǤ­¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ +この関数は POSIX.1-2001 では規定されておらず、 +他のシステムで広く利用できるわけではない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O On Linux, .\"O .BR fexecve () .\"O is implemented using the @@ -154,14 +154,14 @@ POSIX.1-2008. .\"O file system, so .\"O .I /proc .\"O needs to be mounted and available at the time of the call. -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR fexecve () -¤Ï +は .BR proc (5) -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò»È¤Ã¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -¤½¤Î¤¿¤á¡¢¤³¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹»þÅÀ¤Ç¤Ï +ファイルシステムを使って実装されている。 +そのため、この関数を呼び出す時点では .I /proc -¤¬¥Þ¥¦¥ó¥È¤µ¤ì¤ÆÍøÍѲÄǽ¤È¤Ê¤Ã¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ +がマウントされて利用可能となっている必要がある。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR execve (2) diff --git a/draft/man3/fflush.3 b/draft/man3/fflush.3 index 62851197..d460600a 100644 --- a/draft/man3/fflush.3 +++ b/draft/man3/fflush.3 @@ -37,7 +37,7 @@ .\" .\" Converted for Linux, Mon Nov 29 15:22:01 1993, faith@cs.unc.edu .\" -.\" Modified 2000-07-22 by NicoláÔ Lichtmaier +.\" Modified 2000-07-22 by Nicol疽 Lichtmaier .\" Modified 2001-10-16 by John Levon .\" .\" Japanese Version Copyright (c) 1997-2000 YOSHINO Takashi and NAKANO Takeo @@ -48,21 +48,21 @@ .\" Updated 2001-11-02, Kentaro Shirakata .\" Updated 2010-04-10, Akihiro MOTOKI , LDP v3.24 .\" -.\"WORD: global variable Âç°èÊÑ¿ô -.\"WORD: buffered ¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤¿ +.\"WORD: global variable 大域変数 +.\"WORD: buffered バッファリングされた .\" .TH FFLUSH 3 2009-09-06 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O fflush \- flush a stream -.SH ̾Á° -fflush \- ¥¹¥È¥ê¡¼¥à¤ÎÆâÍƤò¶¯À©Åª¤Ë½ÐÎÏ(¥Õ¥é¥Ã¥·¥å)¤¹¤ë +.SH 名前 +fflush \- ストリームの内容を強制的に出力(フラッシュ)する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int fflush(FILE *" stream ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O For output streams, .\"O .BR fflush () .\"O forces a write of all user-space buffered data for the given output or update @@ -74,19 +74,19 @@ fflush \- .\"O but has not been consumed by the application. .\"O The open status of the stream .\"O is unaffected. -½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Ë´Ø¤·¤Æ¤Ï¡¢ +出力ストリームに関しては、 .BR fflush () -¤Ï¡¢¥æ¡¼¥¶¡¼¶õ´Ö¤Ç¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥Ç¡¼¥¿¤ò -»ØÄꤵ¤ì¤¿½ÐÎϤ˽ñ¤­½Ð¤¹ (¥Õ¥é¥Ã¥·¥å¤¹¤ë)¡¢ -¤â¤·¤¯¤Ï¥¹¥È¥ê¡¼¥à +は、ユーザー空間でバッファリングされているすべてのデータを +指定された出力に書き出す (フラッシュする)、 +もしくはストリーム .I stream -¤Î²¼°Ì¤Ë¤¢¤ë½ñ¤­¹þ¤ß´Ø¿ô¤òÍѤ¤¤Æ¤³¤Î¥¹¥È¥ê¡¼¥à¤ò¹¹¿·¤¹¤ë¡£ -ÆþÎÏ¥¹¥È¥ê¡¼¥à¤Ë´Ø¤·¤Æ¤Ï¡¢ +の下位にある書き込み関数を用いてこのストリームを更新する。 +入力ストリームに関しては、 .BR fflush () -¤Ï¡¢Âбþ¤¹¤ë¥Õ¥¡¥¤¥ë¤«¤é¼èÆÀ¤µ¤ì¤¿¤¬¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é¤Ï -Æɤ߽Фµ¤ì¤Æ¤¤¤Ê¤¤¥Ð¥Ã¥Õ¥¡¥Ç¡¼¥¿¤òÁ´¤ÆÇË´þ¤¹¤ë¡£ -¥¹¥È¥ê¡¼¥à¤Ï³«¤¤¤¿¾õÂ֤ΤޤޤǤ¢¤ê¡¢ -¤³¤Î´Ø¿ô¤Ë¤è¤Ã¤Æ²¿¤Î±Æ¶Á¤â¼õ¤±¤Ê¤¤¡£ +は、対応するファイルから取得されたが、アプリケーションからは +読み出されていないバッファデータを全て破棄する。 +ストリームは開いた状態のままであり、 +この関数によって何の影響も受けない。 .PP .\"O If the .\"O .I stream @@ -96,38 +96,38 @@ fflush \- .\"O .I all .\"O open output streams. .I stream -°ú¿ô¤¬ .BR NULL ¤Ê¤é¤Ð¡¢ +引数が .BR NULL ならば、 .BR fflush () -¤Ï³«¤¤¤Æ¤¤¤ë\fI¤¹¤Ù¤Æ¤Î\fR½ÐÎÏ¥¹¥È¥ê¡¼¥à¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë¡£ +は開いている\fIすべての\fR出力ストリームをフラッシュする。 .PP .\"O For nonlocking counterparts, see .\"O .BR unlocked_stdio (3). -¤³¤ì¤é¤Î½èÍý¤ò¥í¥Ã¥¯¤»¤º¤Ë¹Ô¤¤¤¿¤¤¤È¤­¤Ï¡¢ +これらの処理をロックせずに行いたいときは、 .BR unlocked_stdio (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH "RETURN VALUES" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O Upon successful completion 0 is returned. .\"O Otherwise, .\"O .B EOF .\"O is returned and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤¹¤ë¤È 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¤½¤Î¾¤Î¾ì¹ç¤Ë¤Ï +成功すると 0 が返される。 +その他の場合には .B EOF -¤¬ÊÖ¤µ¤ì¡¢ +が返され、 .I errno -¤¬¡¢¥¨¥é¡¼¤ËÂбþ¤·¤¿ÃͤËÀßÄꤵ¤ì¤ë¡£ +が、エラーに対応した値に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O .I Stream .\"O is not an open stream, or is not open for writing. .I Stream -¤Ï³«¤¤¤Æ¤¤¤ë¥¹¥È¥ê¡¼¥à¤Ç¤Ï¤Ê¤¤¡£ -¤¢¤ë¤¤¤Ï¥¹¥È¥ê¡¼¥à¤Ï½ñ¤­¹þ¤ßÍѤǤϤʤ¤¡£ +は開いているストリームではない。 +あるいはストリームは書き込み用ではない。 .PP .\"O The function .\"O .BR fflush () @@ -136,23 +136,23 @@ fflush \- .\"O for any of the errors specified for .\"O .BR write (2). .BR fflush () -´Ø¿ô¤Ï +関数は .BR write (2) -¤Ë´Ø¤·¤Æµ¬Äꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë¤³¤È¤â¤¢¤ë¡£ -¤³¤Î¾ì¹ç +に関して規定されているエラーで失敗することもある。 +この場合 .I errno -¤â¤½¤ÎÃͤËÀßÄꤵ¤ì¤ë¡£ +もその値に設定される。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C89, C99, POSIX.1-2001, POSIX.1-2008. .\"O The standards do not specify the behavior for input streams. .\"O Most other implementations behave the same as Linux. -ɸ½à¤Ç¤Ï¡¢ÆþÎÏ¥¹¥È¥ê¡¼¥à¤ËÂФ¹¤ëÆ°ºî¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -¾¤Î¤Û¤È¤ó¤É¤Î¼ÂÁõ¤Ï Linux ¤ÈƱ¤¸Æ°ºî¤ò¤¹¤ë¡£ +標準では、入力ストリームに対する動作は規定されていない。 +他のほとんどの実装は Linux と同じ動作をする。 .\" Verified on: Solaris 8. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Note that .\"O .BR fflush () .\"O only flushes the user space buffers provided by the C library. @@ -162,16 +162,16 @@ C89, C99, POSIX.1-2001, POSIX.1-2008. .\"O or .\"O .BR fsync (2). .BR fflush () -¤Ï¡¢ C ¥é¥¤¥Ö¥é¥ê¤¬Í¿¤¨¤Æ¤¤¤ë¥æ¡¼¥¶¡¼¶õ´Ö¤Î¥Ð¥Ã¥Õ¥¡¤·¤«¥Õ¥é¥Ã¥·¥å¤·¤Ê¤¤¡£ -¥Ç¡¼¥¿¤¬ÊªÍýŪ¤Ë¥Ç¥£¥¹¥¯¤ËÊݸ¤µ¤ì¤ë¤³¤È¤òÊݾڤ·¤¿¤±¤ì¤Ð¡¢ -¥«¡¼¥Í¥ë¥Ð¥Ã¥Õ¥¡¤â¥Õ¥é¥Ã¥·¥å¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ì¤Ë¤ÏÎ㤨¤Ð +は、 C ライブラリが与えているユーザー空間のバッファしかフラッシュしない。 +データが物理的にディスクに保存されることを保証したければ、 +カーネルバッファもフラッシュしなければならない。 +これには例えば .BR sync (2) -¤ä +や .BR fsync (2) -¤òÍѤ¤¤ë¡£ +を用いる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fsync (2), .BR sync (2), .BR write (2), diff --git a/draft/man3/ffs.3 b/draft/man3/ffs.3 index 0ad79f87..1936ae95 100644 --- a/draft/man3/ffs.3 +++ b/draft/man3/ffs.3 @@ -37,10 +37,10 @@ .\" Updated Mon Sep 1 JST 2003 by Kentaro Shirakata .\" .TH FFS 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 .\"O ffs, ffsl, ffsll \- find first bit set in a word -ffs, ffsl, ffsll \- ¥ï¡¼¥É¤ÎÃæ¤ÇºÇ½é¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¥Ó¥Ã¥È¤Î¸¡½Ð -.SH ½ñ¼° +ffs, ffsl, ffsll \- ワードの中で最初にセットされているビットの検出 +.SH 書式 .nf .B #include .sp @@ -56,9 +56,9 @@ ffs, ffsl, ffsll \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .PD 0 .ad l @@ -67,12 +67,12 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _SVID_SOURCE || _BSD_SOURCE || _POSIX_C_SOURCE\ >=\ 200809L || _XOPEN_SOURCE\ >=\ 700 || .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: none .RE .PP @@ -83,7 +83,7 @@ _GNU_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR ffs () .\"O function returns the position of the first @@ -91,9 +91,9 @@ _GNU_SOURCE .\"O The least significant bit is position 1 and the .\"O most significant position is, for example, 32 or 64. .BR ffs () -´Ø¿ô¤Ï¡¢¥ï¡¼¥É \fIi\fP ¤ÎÃæ¤ÇºÇ½é¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë -(ºÇ²¼°Ì)¥Ó¥Ã¥È¤Î°ÌÃÖ¤òÊÖ¤¹¡£ -ºÇ²¼°Ì¥Ó¥Ã¥È¤Î°ÌÃÖ¤Ï 1¡¢ºÇ¾å°Ì¥Ó¥Ã¥È¤Î°ÌÃÖ¤ÏÎ㤨¤Ð 32 ¤ä 64 ¤Ç¤¢¤ë¡£ +関数は、ワード \fIi\fP の中で最初にセットされている +(最下位)ビットの位置を返す。 +最下位ビットの位置は 1、最上位ビットの位置は例えば 32 や 64 である。 .\"O The functions .\"O .BR ffsll () .\"O and @@ -101,19 +101,19 @@ _GNU_SOURCE .\"O do the same but take .\"O arguments of possibly different size. .BR ffsll () -´Ø¿ô¤È +関数と .BR ffsl () -´Ø¿ô¤âƱÍͤÀ¤¬¡¢ -°Û¤Ê¤Ã¤¿¥µ¥¤¥º¤Î°ú¿ô¤ò¤È¤ë¡£ -.SH ÊÖ¤êÃÍ +関数も同様だが、 +異なったサイズの引数をとる。 +.SH 返り値 .\"O These functions return the position of the first bit set, .\"O or 0 if no bits are set in .\"O .IR i . -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ºÇ½é¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¥Ó¥Ã¥È¤Î°ÌÃÖ¤òÊÖ¤·¡¢ +これらの関数は、最初にセットされているビットの位置を返し、 .I i -¤Î¤É¤Î¥Ó¥Ã¥È¤â¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ +のどのビットもセットされていなければ 0 を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .BR ffs (): 4.3BSD, POSIX.1-2001. @@ -122,18 +122,18 @@ _GNU_SOURCE .\"O and .\"O .BR ffsll () .\"O functions are glibc extensions. -´Ø¿ô +関数 .BR ffsl () -¤È +と .BR ffsll () -¤Ï glibc ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ +は glibc による拡張である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O BSD systems have a prototype in .\"O .IR . -BSD ¥·¥¹¥Æ¥à¤Ç¤Ï +BSD システムでは .I -¤Ë¥×¥í¥È¥¿¥¤¥×¤¬¤¢¤ë¡£ +にプロトタイプがある。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR memchr (3) diff --git a/draft/man3/fgetgrent.3 b/draft/man3/fgetgrent.3 index b4207953..8718dbd6 100644 --- a/draft/man3/fgetgrent.3 +++ b/draft/man3/fgetgrent.3 @@ -33,11 +33,11 @@ .\" .TH FGETGRENT 3 2008-07-10 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fgetgrent \- get group file entry -fgetgrent \- ¥°¥ë¡¼¥×¥Õ¥¡¥¤¥ë¥¨¥ó¥È¥ê¤Î¼è¤ê½Ð¤· +fgetgrent \- グループファイルエントリの取り出し .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -49,15 +49,15 @@ fgetgrent \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR fgetgrent (): _SVID_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR fgetgrent () .\"O function returns a pointer to a structure containing @@ -72,20 +72,20 @@ _SVID_SOURCE .\"O (see .\"O .BR group (5)). .BR fgetgrent () -´Ø¿ô¤Ï¡¢ +関数は、 .I stream -¤Ç»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤«¤é¼è¤ê½Ð¤·¤¿¥°¥ë¡¼¥×¾ðÊó -¤ò´Þ¤à¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ºÇ½é¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿»þ¤Ï -ºÇ½é¤Î¥¨¥ó¥È¥ê¤òÊÖ¤·¡¢¤½¤ì°Ê¹ß¤Ï¡¢¼¡¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£ +で参照されるファイルから取り出したグループ情報 +を含む構造体へのポインタを返す。最初に呼び出された時は +最初のエントリを返し、それ以降は、次のエントリを返す。 .I stream -¤Ç»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ï¡¢ +で参照されるファイルは、 .I /etc/group -¤ÈƱ¤¸·Á¼°¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ +と同じ形式でなければならない .RB ( group (5) -»²¾È)¡£ +参照)。 .PP .\"O The \fIgroup\fP structure is defined in \fI\fP as follows: -\fIgroup\fP ¹½Â¤ÂΤϡ¢\fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +\fIgroup\fP 構造体は、\fI\fP で以下のように定義されている: .sp .in +4n .nf @@ -94,15 +94,15 @@ struct group { .\"O char *gr_passwd; /* group password */ .\"O gid_t gr_gid; /* group ID */ .\"O char **gr_mem; /* group members */ - char *gr_name; /* ¥°¥ë¡¼¥×̾ */ - char *gr_passwd; /* ¥°¥ë¡¼¥×¤Î¥Ñ¥¹¥ï¡¼¥É */ - gid_t gr_gid; /* ¥°¥ë¡¼¥× ID */ - char **gr_mem; /* ¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð */ + char *gr_name; /* グループ名 */ + char *gr_passwd; /* グループのパスワード */ + gid_t gr_gid; /* グループ ID */ + char **gr_mem; /* グループのメンバ */ }; .fi .in .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR fgetgrent () .\"O function returns a pointer to a @@ -110,23 +110,23 @@ struct group { .\"O structure, .\"O or NULL if there are no more entries or an error occurs. .BR fgetgrent () -´Ø¿ô¤Ï +関数は .I group -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤ì°Ê¾å¥¨¥ó¥È¥ê¤¬Ìµ¤¤¤«¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +構造体へのポインタを返す。 +これ以上エントリが無いか、エラーが発生した場合は NULL を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B ENOMEM .\"O Insufficient memory to allocate .\"O .I group .\"O structure. .I group -¹½Â¤ÂΤò³ä¤êÅö¤Æ¤ë¤¿¤á¤Î¥á¥â¥ê¤¬ÉÔ½½Ê¬¡£ +構造体を割り当てるためのメモリが不十分。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR endgrent (3), .BR fgetgrent_r (3), .BR fopen (3), diff --git a/draft/man3/fgetpwent.3 b/draft/man3/fgetpwent.3 index 8d070d32..6722d9fd 100644 --- a/draft/man3/fgetpwent.3 +++ b/draft/man3/fgetpwent.3 @@ -35,11 +35,11 @@ .\" .TH FGETPWENT 3 2008-07-10 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fgetpwent \- get password file entry -fgetpwent \- ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¥¨¥ó¥È¥ê¤Î¼è¤ê½Ð¤· +fgetpwent \- パスワードファイルエントリの取り出し .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -51,15 +51,15 @@ fgetpwent \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR fgetpwent (): _SVID_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR fgetpwent () .\"O function returns a pointer to a structure containing @@ -73,19 +73,19 @@ _SVID_SOURCE .\"O (see .\"O .BR passwd (5)). .BR fgetpwent () -´Ø¿ô¤Ï¡¢\fIstream\fP ¤«¤éÆÀ¤é¤ì¤¿¹Ô¤òʬ²ò¤·¤¿¥Õ¥£¡¼¥ë¥É -¤ò´Þ¤à¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -ºÇ½é¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿»þ¤Ë¤ÏºÇ½é¤Î¥¨¥ó¥È¥ê¤òÊÖ¤·¡¢¤½¤ì°Ê¹ß¤Ï -¼¡¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£ +関数は、\fIstream\fP から得られた行を分解したフィールド +を含む構造体へのポインタを返す。 +最初に呼び出された時には最初のエントリを返し、それ以降は +次のエントリを返す。 .I stream -¤Ç»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ï +で参照されるファイルは .I /etc/passwd -¤ÈƱ¤¸·Á¼°¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ +と同じ形式でなければならない .RB ( passwd (5) -»²¾È)¡£ +参照)。 .PP .\"O The \fIpasswd\fP structure is defined in \fI\fP as follows: -\fIpasswd\fP ¹½Â¤ÂΤϡ¢\fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +\fIpasswd\fP 構造体は、\fI\fP で以下のように定義されている: .sp .nf .in +4n @@ -97,18 +97,18 @@ struct passwd { .\"O char *pw_gecos; /* real name */ .\"O char *pw_dir; /* home directory */ .\"O char *pw_shell; /* shell program */ - char *pw_name; /* ¥æ¡¼¥¶Ì¾ */ - char *pw_passwd; /* ¥æ¡¼¥¶¤Î¥Ñ¥¹¥ï¡¼¥É */ - uid_t pw_uid; /* ¥æ¡¼¥¶ ID */ - gid_t pw_gid; /* ¥°¥ë¡¼¥× ID */ - char *pw_gecos; /* ËÜ̾ */ - char *pw_dir; /* ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê */ - char *pw_shell; /* ¥·¥§¥ë¥×¥í¥°¥é¥à */ + char *pw_name; /* ユーザ名 */ + char *pw_passwd; /* ユーザのパスワード */ + uid_t pw_uid; /* ユーザ ID */ + gid_t pw_gid; /* グループ ID */ + char *pw_gecos; /* 本名 */ + char *pw_dir; /* ホームディレクトリ */ + char *pw_shell; /* シェルプログラム */ }; .fi .in .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR fgetpwent () .\"O function returns a pointer to a @@ -116,30 +116,30 @@ struct passwd { .\"O structure, or NULL if .\"O there are no more entries or an error occurs. .BR fgetpwent () -´Ø¿ô¤Ï¡¢ +関数は、 .I passwd -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤ì°Ê¾å¥¨¥ó¥È¥ê¤¬Ìµ¤¤¤«¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +構造体へのポインタを返す。 +これ以上エントリが無いか、エラーが発生した場合は NULL を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B ENOMEM .\"O Insufficient memory to allocate .\"O .I passwd .\"O structure. .I passwd -¹½Â¤ÂΤò³ä¤êÅö¤Æ¤ë¤¿¤á¤Î¥á¥â¥ê¤¬ÉÔ½½Ê¬¡£ +構造体を割り当てるためのメモリが不十分。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .TP .I /etc/passwd .\"O password database file -¥Ñ¥¹¥ï¡¼¥É¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë +パスワードデータベースファイル .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR endpwent (3), .BR fgetpwent_r (3), .BR fopen (3), diff --git a/draft/man3/fgetwc.3 b/draft/man3/fgetwc.3 index fcff86bd..7a608327 100644 --- a/draft/man3/fgetwc.3 +++ b/draft/man3/fgetwc.3 @@ -22,11 +22,11 @@ .\" .TH FGETWC 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\") .SH NAME -.SH ̾Á° +.SH 名前 .\"O fgetwc, getwc \- read a wide character from a FILE stream -fgetwc, getwc \- ¥ï¥¤¥Éʸ»ú¤ò FILE ¥¹¥È¥ê¡¼¥à¤«¤éÆɤ߹þ¤à +fgetwc, getwc \- ワイド文字を FILE ストリームから読み込む .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .br @@ -36,7 +36,7 @@ fgetwc, getwc \- .BI "wint_t getwc(FILE *" stream ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR fgetwc () .\"O function is the wide-character equivalent @@ -51,63 +51,63 @@ fgetwc, getwc \- .\"O \fIerrno\fP to \fBEILSEQ\fP and returns .\"O .BR WEOF . .BR fgetwc () -´Ø¿ô¤Ï¡¢ +関数は、 .BR fgetc (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï \fIstream\fP ¤«¤é¥ï¥¤¥Éʸ»ú¤ò 1 ʸ»úÆɤ߹þ¤ß¡¢¤³¤ì¤òÊÖ¤¹¡£ -¥¹¥È¥ê¡¼¥à¤Î½ªÃ¼¤Ë㤹¤ë¤«¡¢\fIferror(stream)\fP ¤¬¿¿¤Ë¤Ê¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ -¤³¤Î´Ø¿ô¤Ï +に対応するワイド文字関数である。 +この関数は \fIstream\fP からワイド文字を 1 文字読み込み、これを返す。 +ストリームの終端に達するか、\fIferror(stream)\fP が真になった場合には、 +この関数は .B WEOF -¤òÊÖ¤¹¡£ -¥ï¥¤¥Éʸ»úÊÑ´¹¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï¡¢ -\fIerrno\fP ¤Ë \fBEILSEQ\fP ¤ò¥»¥Ã¥È¤·¡¢ +を返す。 +ワイド文字変換でエラーが発生した場合は、 +\fIerrno\fP に \fBEILSEQ\fP をセットし、 .B WEOF -¤òÊÖ¤¹¡£ +を返す。 .PP .\"O The .\"O .BR getwc () .\"O function or macro functions identically to .\"O .BR fgetwc (). .BR getwc () -´Ø¿ô¤¢¤ë¤¤¤Ï¥Þ¥¯¥í¤Ï¡¢ +関数あるいはマクロは、 .BR fgetwc () -¤ÈÁ´¤¯Æ±¤¸Æ°ºî¤ò¤¹¤ë¡£ +と全く同じ動作をする。 .\"O It may be implemented as a macro, and may evaluate its argument .\"O more than once. .\"O There is no reason ever to use it. -¤³¤Î´Ø¿ô¤Ï¥Þ¥¯¥í¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¤Î¤Ç¡¢°ú¤­¿ô¤¬Ê£¿ô²óɾ²Á¤µ -¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£¤³¤Î´Ø¿ô¤ò»È¤¦Íýͳ¤Ï¤â¤Ï¤ä¸ºß¤·¤Ê¤¤¡£ +この関数はマクロとして実装されるかもしれないので、引き数が複数回評価さ +れるかもしれない。この関数を使う理由はもはや存在しない。 .PP .\"O For nonlocking counterparts, see .\"O .BR unlocked_stdio (3). -¤³¤ì¤é¤Î½èÍý¤ò¥í¥Ã¥¯¤»¤º¤Ë¹Ô¤¤¤¿¤¤¤È¤­¤Ï¡¢ +これらの処理をロックせずに行いたいときは、 .BR unlocked_stdio (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR fgetwc () .\"O function returns the next wide-character .\"O from the stream, or .\"O .BR WEOF . .BR fgetwc () -´Ø¿ô¤Ï¥¹¥È¥ê¡¼¥à¤Î¼¡¤Î¥ï¥¤¥Éʸ»ú¤«¡¢¤¢¤ë¤¤¤Ï +関数はストリームの次のワイド文字か、あるいは .B WEOF -¤òÊÖ¤¹¡£ +を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O Apart from the usual ones, there is -Ä̾ï¤Î¥¨¥é¡¼¤Ë²Ã¤¨¤Æ¡¢°Ê²¼¤Î¥¨¥é¡¼¤¬¤¢¤ë: +通常のエラーに加えて、以下のエラーがある: .TP .B EILSEQ .\"O The data obtained from the input stream does not .\"O form a valid character. -ÆþÎÏ¥¹¥È¥ê¡¼¥à¤«¤é¼èÆÀ¤·¤¿¥Ç¡¼¥¿¤¬¡¢Àµ¤·¤¤Ê¸»ú¤Ç¤Ê¤¤¡£ +入力ストリームから取得したデータが、正しい文字でない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR fgetwc () .\"O depends on the @@ -115,9 +115,9 @@ C99, POSIX.1-2001. .\"O category of the .\"O current locale. .BR fgetwc () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .PP .\"O In the absence of additional information passed to the .\"O .BR fopen (3) @@ -127,13 +127,13 @@ C99, POSIX.1-2001. .\"O will actually read a multibyte sequence .\"O from the stream and then convert it to a wide character. .BR fopen (3) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÅϤ¹ÄɲþðÊ󤬤ʤ¤¾ì¹ç¤Ë¤Ï¡¢ +システムコールに渡す追加情報がない場合には、 .BR fgetwc () -¤¬¼ÂºÝ -¤Ë¤Ï¥Þ¥ë¥Á¥Ð¥¤¥È¥·¡¼¥±¥ó¥¹¤ò¥¹¥È¥ê¡¼¥à¤«¤éÆɤ߹þ¤ß¡¢¤³¤ì¤ò¥ï¥¤¥Éʸ»ú¤Ë -ÊÑ´¹¤¹¤ë¤È´üÂÔ¤¹¤ë¤³¤È¤ÏŬÀڤǤ¢¤ë¡£ +が実際 +にはマルチバイトシーケンスをストリームから読み込み、これをワイド文字に +変換すると期待することは適切である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fgetws (3), .BR fputwc (3), .BR ungetwc (3), diff --git a/draft/man3/fgetws.3 b/draft/man3/fgetws.3 index b02d73a2..f8af5042 100644 --- a/draft/man3/fgetws.3 +++ b/draft/man3/fgetws.3 @@ -20,22 +20,22 @@ .\" Updated Sat Oct 27 09:01:41 JST 2001 .\" by Yuichi SATO .\" -.\" WORD: null wide characters ¥Ê¥ë¥ï¥¤¥Éʸ»ú +.\" WORD: null wide characters ナルワイド文字 .\" .TH FGETWS 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fgetws \- read a wide-character string from a FILE stream -fgetws \- ¥ï¥¤¥Éʸ»ú¤Îʸ»úÎó¤ò FILE ¥¹¥È¥ê¡¼¥à¤«¤éÆɤ߹þ¤à +fgetws \- ワイド文字の文字列を FILE ストリームから読み込む .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "wchar_t *fgetws(wchar_t *" ws ", int " n ", FILE *" stream ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR fgetws () .\"O function is the wide-character equivalent @@ -49,40 +49,40 @@ fgetws \- .\"O stored a newline wide character. .\"O It also stops when end of stream is reached. .BR fgetws () -´Ø¿ô¤Ï +関数は .BR fgets (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢ºÇÂç \fIn\-1\fP ʸ»ú¤Î¥ï¥¤¥Éʸ»ú¤ò -\fIws\fP ¤¬¼¨¤¹¥ï¥¤¥Éʸ»ú¤ÎÇÛÎó¤ËÆɤ߹þ¤ß¡¢ -½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤òÄɲ乤롣 -¤³¤Î´Ø¿ô¤Ï¡¢¥ï¥¤¥Éʸ»ú¤Î²þ¹Ôʸ»ú¤ò¸«¤Ä¤±¡¢¤³¤ì¤ò³ÊǼ¤¹¤ë¤ÈÆɤ߹þ¤à¤Î¤ò»ß¤á¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¥¹¥È¥ê¡¼¥à¤Î½ª¤ï¤ê¤Ë㤷¤¿¾ì¹ç¤âÆɤ߹þ¤ß¤ò»ß¤á¤ë¡£ +に対応するワイド文字関数である。 +この関数は、最大 \fIn\-1\fP 文字のワイド文字を +\fIws\fP が示すワイド文字の配列に読み込み、 +終端の NULL ワイド文字 (L\(aq\\0\(aq) を追加する。 +この関数は、ワイド文字の改行文字を見つけ、これを格納すると読み込むのを止める。 +この関数はストリームの終わりに達した場合も読み込みを止める。 .PP .\"O The programmer must ensure that there is room for at least \fIn\fP wide .\"O characters at \fIws\fP. -¥×¥í¥°¥é¥Þ¤Ï¡¢\fIws\fP ¤Ë¤Ï¾¯¤Ê¤¯¤È¤â \fIn\fP ʸ»ú¤Î¥ï¥¤¥Éʸ»ú¤ò -³ÊǼ¤Ç¤­¤ëÎΰè¤òɬ¤º³ÎÊݤ·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +プログラマは、\fIws\fP には少なくとも \fIn\fP 文字のワイド文字を +格納できる領域を必ず確保していなければならない。 .PP .\"O For a nonlocking counterpart, see .\"O .BR unlocked_stdio (3). -¤³¤ì¤é¤Î½èÍý¤ò¥í¥Ã¥¯¤»¤º¤Ë¹Ô¤¤¤¿¤¤¤È¤­¤Ï¡¢ +これらの処理をロックせずに行いたいときは、 .BR unlocked_stdio (3) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR fgetws () .\"O function, if successful, returns \fIws\fP. .\"O If end of stream .\"O was already reached or if an error occurred, it returns NULL. .BR fgetws () -¤ÏÀ®¸ù¤¹¤ë¤È \fIws\fP ¤òÊÖ¤¹¡£ -´û¤Ë¥¹¥È¥ê¡¼¥à¤Î½ª¤ï¤ê¤Ë㤷¤Æ¤¤¤ë¤«¡¢¥¨¥é¡¼¤¬µ¯¤­¤¿¾ì¹ç¤Ë¤Ï NULL ¤òÊÖ¤¹¡£ +は成功すると \fIws\fP を返す。 +既にストリームの終わりに達しているか、エラーが起きた場合には NULL を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR fgetws () .\"O depends on the @@ -90,9 +90,9 @@ C99, POSIX.1-2001. .\"O category of the .\"O current locale. .BR fgetws () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .PP .\"O In the absence of additional information passed to the .\"O .BR fopen (3) @@ -102,17 +102,17 @@ C99, POSIX.1-2001. .\"O will actually read a multibyte string .\"O from the stream and then convert it to a wide-character string. .BR fopen (3) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÅϤ¹ÄɲäξðÊ󤬤ʤ¤¾ì¹ç¤Ë¤Ï¡¢ +システムコールに渡す追加の情報がない場合には、 .BR fgetws () -¤¬¼ÂºÝ¤Ë¤Ï¥Þ¥ë¥Á¥Ð¥¤¥È¥·¡¼¥±¥ó¥¹¤ò¥¹¥È¥ê¡¼¥à¤«¤éÆɤ߹þ¤ß¡¢ -¤³¤ì¤ò¥ï¥¤¥Éʸ»ú¤ËÊÑ´¹¤¹¤ë¤È´üÂÔ¤¹¤ë¤³¤È¤ÏŬÀڤǤ¢¤ë¡£ +が実際にはマルチバイトシーケンスをストリームから読み込み、 +これをワイド文字に変換すると期待することは適切である。 .PP .\"O This function is unreliable, .\"O because it does not permit to deal properly with .\"O null wide characters that may be present in the input. -¤³¤Î´Ø¿ô¤Ï¿®Íê¤Ç¤­¤Ê¤¤¡£¤Ê¤¼¤Ê¤é¡¢ÆþÎϤ˴ޤޤì¤ë¤«¤â¤·¤ì¤Ê¤¤ -¥Ê¥ë¥ï¥¤¥Éʸ»ú¤òŬÀڤ˽èÍý¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +この関数は信頼できない。なぜなら、入力に含まれるかもしれない +ナルワイド文字を適切に処理することができないからである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fgetwc (3), .BR unlocked_stdio (3) diff --git a/draft/man3/finite.3 b/draft/man3/finite.3 index 7a4d77fa..18bfa2c2 100644 --- a/draft/man3/finite.3 +++ b/draft/man3/finite.3 @@ -25,20 +25,20 @@ .\" Translated 2005-02-21, Akihiro MOTOKI .\" Updated 2008-09-16, Akihiro MOTOKI .\" -.\"WORD: classification ʬÎà -.\"WORD: infinite ̵¸ÂÂç -.\"WORD: not-a-number ̵¸úÃÍ -.\"WORD: NaN ̵¸úÃÍ +.\"WORD: classification 分類 +.\"WORD: infinite 無限大 +.\"WORD: not-a-number 無効値 +.\"WORD: NaN 無効値 .\" .TH FINITE 3 2008-08-05 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O finite, finitef, finitel, isinf, isinff, isinfl, isnan, isnanf, isnanl \- .\"O BSD floating-point classification functions finite, finitef, finitel, isinf, isinff, isinfl, isnan, isnanf, isnanl \- -BSD ¤ÎÉâÆ°¾®¿ôÅÀʬÎà´Ø¿ô +BSD の浮動小数点分類関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -64,9 +64,9 @@ BSD .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -103,32 +103,32 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 600 .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR finite () .\"O functions return a nonzero value if \fIx\fP is neither infinite .\"O nor a "not-a-number" (NaN) value, and 0 otherwise. .BR finite () -´Ø¿ô¤Ï¡¢ \fIx\fP ¤¬Ìµ¸ÂÂç¤ä̵¸úÃÍ (NaN) ¤Î¤¤¤º¤ì¤Ç¤â¤Ê¤¤ -¾ì¹ç¤Ë 0 °Ê³°¤ÎÃͤòÊÖ¤·¡¢¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +関数は、 \fIx\fP が無限大や無効値 (NaN) のいずれでもない +場合に 0 以外の値を返し、それ以外の場合は 0 を返す。 .\"O The .\"O .BR isnan () .\"O functions return a nonzero value if \fIx\fP is a NaN value, .\"O and 0 otherwise. .BR isnan () -´Ø¿ô¤Ï¡¢ \fIx\fP ¤¬ NaN ¤Î¾ì¹ç 0 °Ê³°¤ÎÃͤòÊÖ¤·¡¢ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +関数は、 \fIx\fP が NaN の場合 0 以外の値を返し、 +それ以外の場合は 0 を返す。 .\"O The .\"O .BR isinf () .\"O functions return 1 if \fIx\fP is positive infinity, \-1 if \fIx\fP .\"O is negative infinity, and 0 otherwise. .BR isinf () -´Ø¿ô¤Ï¡¢ \fIx\fP ¤¬Àµ¤Î̵¸ÂÂç¤Ç¤¢¤ì¤Ð 1 ¤òÊÖ¤·¡¢\fIx\fP ¤¬Éé¤Î̵¸ÂÂç¤Ç -¤¢¤ì¤Ð \-1 ¤òÊÖ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +関数は、 \fIx\fP が正の無限大であれば 1 を返し、\fIx\fP が負の無限大で +あれば \-1 を返す。それ以外の場合は 0 を返す。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Note that these functions are obsolete. .\"O C99 defines macros .\"O .BR isfinite (), @@ -143,29 +143,29 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 600 .\"O .BR fpclassify (3). .\"O .\" .\"O .\" finite* not on HP-UX; they exist on Tru64. -¤³¤ì¤é¤Î´Ø¿ô¤ÏÇѻߤµ¤ì¤¿ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -C99 ¤Ç¤Ï¡¢¤³¤ì¤é¤ÎÃÖ¤­´¹¤¨¤È¤·¤Æ (¤É¤ó¤Ê·¿¤Ë¤âŬÍѤǤ­¤ë) +これらの関数は廃止された点に注意すること。 +C99 では、これらの置き換えとして (どんな型にも適用できる) .BR isfinite (), .BR isinf (), .BR isnan () -¤È¤¤¤¦¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤µ¤é¤Ë C99 ¤Î +というマクロが定義されている。 +さらに C99 の .BR isinf () -¤ÏÊÖ¤êÃͤ˴ؤ·¤Æ¼å¤¤°ÕÌ£¤Ç¤ÎÊݾڤ·¤«¤Ê¤¤¤³¤È¤Ë¤â -Ãí°Õ¤¹¤ë¤³¤È¡£¾ÜºÙ¤Ï +は返り値に関して弱い意味での保証しかないことにも +注意すること。詳細は .BR fpclassify (3) -¤ò»²¾È¡£ +を参照。 .\" .\" finite* not on HP-UX; they exist on Tru64. .\"O .\" .SH HISTORY -.\" .SH Îò»Ë +.\" .SH 歴史 .\"O .\" The .\"O .\" .BR finite () .\"O .\" function occurs in 4.3BSD. .\"O .\" see IEEE.3 in the 4.3BSD manual .\" .BR finite () -.\" ´Ø¿ô¤Ï 4.3BSD ¤ÇÅо줷¤¿¡£ -.\" 4.3BSD ¤Î¥Þ¥Ë¥å¥¢¥ë¤Î IEEE.3 ¤ò»²¾È +.\" 関数は 4.3BSD で登場した。 +.\" 4.3BSD のマニュアルの IEEE.3 を参照 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fpclassify (3) diff --git a/draft/man3/flockfile.3 b/draft/man3/flockfile.3 index f5399215..2e5fbadf 100644 --- a/draft/man3/flockfile.3 +++ b/draft/man3/flockfile.3 @@ -25,16 +25,16 @@ .\" Translated Sun Nov 4 14:09:45 2001 .\" by Akihiro MOTOKI .\" -.\"WORD: lockcount ¥í¥Ã¥¯¿ô -.\"WORD: owner thread ½êÍ­¼Ô¥¹¥ì¥Ã¥É +.\"WORD: lockcount ロック数 +.\"WORD: owner thread 所有者スレッド .\" .TH FLOCKFILE 3 2008-08-29 "" "Linux Programmer's Manual" .\"O .SH NAME .\"O flockfile, ftrylockfile, funlockfile \- lock FILE for stdio -.SH ̾Á° -flockfile, ftrylockfile, funlockfile \- ɸ½àÆþ½ÐÎÏ FILE ¤Î¥í¥Ã¥¯¤ò¹Ô¤¦ +.SH 名前 +flockfile, ftrylockfile, funlockfile \- 標準入出力 FILE のロックを行う .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -48,54 +48,54 @@ flockfile, ftrylockfile, funlockfile \- ɸ .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .ad l .sp .\"O All functions shown above: -¾åµ­¤ÎÁ´¤Æ¤Î´Ø¿ô: +上記の全ての関数: .RS 4 _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE || _POSIX_SOURCE .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The stdio functions are thread-safe. .\"O This is achieved by assigning .\"O to each .\"O .I FILE .\"O object a lockcount and (if the lockcount is nonzero) .\"O an owning thread. -ɸ½àÆþ½ÐÎÏ´Ø¿ô¤Ï¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤¢¤ë¡£¤³¤ì¤Ï¡¢³Æ +標準入出力関数はスレッドセーフである。これは、各 .I FILE -¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ·¡¢¥í¥Ã¥¯¿ô (lockcount) ¤È -(¥í¥Ã¥¯¿ô¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¤Ï) ½êÍ­¼Ô¥¹¥ì¥Ã¥É (owner thread) -¤ò´ÉÍý¤¹¤ë¤³¤È¤Ç¼Â¸½¤µ¤ì¤ë¡£ +オブジェクトに対し、ロック数 (lockcount) と +(ロック数が 0 でない場合は) 所有者スレッド (owner thread) +を管理することで実現される。 .\"O For each library call, these functions wait until the .\"O .I FILE .\"O object .\"O is no longer locked by a different thread, then lock it, do the .\"O requested I/O, and unlock the object again. -¥é¥¤¥Ö¥é¥ê¤Î¸Æ¤Ó½Ð¤·¤¬¹Ô¤ï¤ì¤ëËè¤Ë¡¢É¸½àÆþ½ÐÎÏ´Ø¿ô¤Ï +ライブラリの呼び出しが行われる毎に、標準入出力関数は .I FILE -¥ª¥Ö¥¸¥§¥¯¥È¤¬Â¾¤Î¥¹¥ì¥Ã¥É¤Ë¤è¤Ã¤Æ¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤Ê¤¤¾õÂ֤ˤʤë¤Þ¤ÇÂÔ¤Á¡¢ +オブジェクトが他のスレッドによってロックされていない状態になるまで待ち、 .I FILE -¥ª¥Ö¥¸¥§¥¯¥È¤ò¥í¥Ã¥¯¤·¡¢Í׵ᤵ¤ì¤ÆÆþ½ÐÎϤò¹Ô¤¤¡¢ -¥ª¥Ö¥¸¥§¥¯¥È¤Î¥í¥Ã¥¯¤ò²ò½ü¤¹¤ë¡£ +オブジェクトをロックし、要求されて入出力を行い、 +オブジェクトのロックを解除する。 .LP .\"O (Note: this locking has nothing to do with the file locking done .\"O by functions like .\"O .BR flock (2) .\"O and .\"O .BR lockf (3).) -(Ãí: ¤³¤Î¥í¥Ã¥¯¤Ï¡¢ +(注: このロックは、 .BR flock (2) -¤ä +や .BR lockf (3) -¤È¤¤¤Ã¤¿´Ø¿ô¤¬¹Ô¤¦¥í¥Ã¥¯¤È¤ÏÁ´¤¯Ìµ´Ø·¸¤Ç¤¢¤ë¡£) +といった関数が行うロックとは全く無関係である。) .LP .\"O All this is invisible to the C-programmer, but there may be two .\"O reasons to wish for more detailed control. @@ -104,11 +104,11 @@ _SVID_SOURCE || _POSIX_SOURCE .\"O not be interrupted by the I/O of some other thread. .\"O On the other hand, maybe the locking overhead should be avoided .\"O for greater efficiency. -¤³¤ì¤é¤Î¤³¤È¤Ï¤¹¤Ù¤Æ C ¥×¥í¥°¥é¥Þ¤Ë¤Ï¸«¤¨¤Ê¤¤Éôʬ¤Ç¹Ô¤ï¤ì¤ë¤¬¡¢ -¤è¤êºÙ¤«¤¤À©¸æ¤¬¤Ç¤­¤¿Êý¤¬¤è¤¤Íýͳ¤¬2¤Ä¤¢¤ë¤À¤í¤¦¡£°ì¤Ä¤Ï¡¢°ì¤Ä¤Î¥¹¥ì¥Ã¥É¤¬ -¹Ô¤¦°ìÏ¢¤ÎÆþ½ÐÎÏÆ°ºî¤Ï°ì½ï¤Ë¹Ô¤ï¤ì¡¢Â¾¤Î¥¹¥ì¥Ã¥É¤ÎÆþ½ÐÎϤˤè¤Ã¤ÆÃæÃǤµ¤ì¤Ê¤¤ -Êý¤¬¤è¤¤¤È¤¤¤¦¤³¤È¤Ç¤¢¤í¤¦¡£¤â¤¦°ì¤Ä¤Ï¡¢¸úΨ¤òÂ礭¤¯¾å¤²¤ë¤¿¤á¤Ë¤Ï -¥í¥Ã¥¯¤Î¥ª¡¼¥Ð¥Ø¥Ã¥É¤òÈò¤±¤ëɬÍפ¬¤¢¤ë¤È¤¤¤¦¤³¤È¤Ç¤¢¤í¤¦¡£ +これらのことはすべて C プログラマには見えない部分で行われるが、 +より細かい制御ができた方がよい理由が2つあるだろう。一つは、一つのスレッドが +行う一連の入出力動作は一緒に行われ、他のスレッドの入出力によって中断されない +方がよいということであろう。もう一つは、効率を大きく上げるためには +ロックのオーバヘッドを避ける必要があるということであろう。 .LP .\"O To this end, a thread can explicitly lock the .\"O .I FILE @@ -126,22 +126,22 @@ _SVID_SOURCE || _POSIX_SOURCE .\"O .BR getc (3) .\"O and .\"O .BR putc (3). -¤³¤ÎÌÜŪ¤ò¼Â¸½¤¹¤ë¤¿¤á¤Ë¡¢ +この目的を実現するために、 .I FILE -¥ª¥Ö¥¸¥§¥¯¥È¤Î¥í¥Ã¥¯¡¢°ìÏ¢¤ÎÆþ½ÐÎÏÆ°ºî¤Î¼Â¹Ô¡¢ -¥í¥Ã¥¯¤Î²ò½ü¤ò¥¹¥ì¥Ã¥É¤¬ÌÀ¼¨Åª¤Ë»Ø¼¨¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢Â¾¤Î¥¹¥ì¥Ã¥É¤¬ÅÓÃæ¤ÇÆþ½ÐÎϤò¹Ô¤¦¤Î¤òËɻߤ¹¤ë¡£ -¤³¤Î¤è¤¦¤Ê¤³¤È¤ò¹Ô¤¦Íýͳ¤¬¸úΨ¤Î¸þ¾å¤Ç¤¢¤ë¤Ê¤é¤Ð¡¢ -¥í¥Ã¥¯¤ò¹Ô¤ï¤Ê¤¤¥Ð¡¼¥¸¥ç¥ó¤Îɸ½àÆþ½ÐÎÏ´Ø¿ô¤ò»È¤¦¤³¤È¤â¤Ç¤­¤ë¡£ -Î㤨¤Ð¡¢ +オブジェクトのロック、一連の入出力動作の実行、 +ロックの解除をスレッドが明示的に指示することができる。 +これにより、他のスレッドが途中で入出力を行うのを防止する。 +このようなことを行う理由が効率の向上であるならば、 +ロックを行わないバージョンの標準入出力関数を使うこともできる。 +例えば、 .BR getc (3) -¤ä +や .BR putc (3) -¤ÎÂå¤ï¤ê¤Ë +の代わりに .BR getc_unlocked (3) -¤ä +や .BR putc_unlocked (3) -¤ò»ÈÍѤ¹¤ë¡£ +を使用する。 .LP .\"O The .\"O .BR flockfile () @@ -150,15 +150,15 @@ _SVID_SOURCE || _POSIX_SOURCE .\"O current thread owner of \fI*filehandle\fP, and increments .\"O the lockcount. .BR flockfile () -´Ø¿ô¤Ï¡¢\fI*filehandle\fP ¤¬Â¾¤Î¥¹¥ì¥Ã¥É¤Ë¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤Ê -¤¤¾õÂ֤ˤʤë¤Þ¤ÇÂԤ俤ΤÁ¡¢¸½ºß¤Î¥¹¥ì¥Ã¥É¤ò \fI*filehandle\fP ¤Î¥ª¡¼¥Ê¤ËÀß -Äꤷ¡¢¥í¥Ã¥¯¿ô¤ò²Ã»»¤¹¤ë¡£ +関数は、\fI*filehandle\fP が他のスレッドにロックされていな +い状態になるまで待ったのち、現在のスレッドを \fI*filehandle\fP のオーナに設 +定し、ロック数を加算する。 .LP .\"O The .\"O .BR funlockfile () .\"O function decrements the lock count. .BR funlockfile () -´Ø¿ô¤Ï¡¢¥í¥Ã¥¯¿ô¤ò¸º»»¤¹¤ë¡£ +関数は、ロック数を減算する。 .LP .\"O The .\"O .BR ftrylockfile () @@ -169,38 +169,38 @@ _SVID_SOURCE || _POSIX_SOURCE .\"O owns \fI*filehandle\fP, and it obtains ownership and increments .\"O the lockcount otherwise. .BR ftrylockfile () -´Ø¿ô¤Ï +関数は .BR flockfile () -¤Î¥Ö¥í¥Ã¥­¥ó¥°¤ò¹Ô¤ï¤Ê¤¤ -¥Ð¡¼¥¸¥ç¥ó¤Ç¤¢¤ë¡£Â¾¤Î¥¹¥ì¥Ã¥É¤¬ \fI*filehandle\fP ¤ò¥í¥Ã¥¯¤·¤Æ¤¤¤ë»þ¤Ï -²¿¤â¹Ô¤ï¤º¡¢¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï \fI*filehandle\fP ¤Î½êÍ­¸¢¤ò³ÍÆÀ¤·¡¢ -¥í¥Ã¥¯¿ô¤ò²Ã»»¤¹¤ë¡£ +のブロッキングを行わない +バージョンである。他のスレッドが \fI*filehandle\fP をロックしている時は +何も行わず、そうでない場合は \fI*filehandle\fP の所有権を獲得し、 +ロック数を加算する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR ftrylockfile () .\"O function returns zero for success .\"O (the lock was obtained), and nonzero for failure. .BR ftrylockfile () -´Ø¿ô¤Ï¥í¥Ã¥¯¤ËÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤·¡¢ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï 0 °Ê³°¤ÎÃͤòÊÖ¤¹¡£ +関数はロックに成功すると 0 を返し、 +失敗した場合は 0 以外の値を返す。 .\"O .SH ERRORS .\"O None. -.SH ¥¨¥é¡¼ -¤Ê¤·¡£ +.SH エラー +なし。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH AVAILABILITY -.SH ²ÄÍÑÀ­ +.SH 可用性 .\"O These functions are available when .\"O .B _POSIX_THREAD_SAFE_FUNCTIONS .\"O is defined. .\"O They are in libc since libc 5.1.1 and in glibc .\"O since glibc 2.0. .B _POSIX_THREAD_SAFE_FUNCTIONS -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ë¤³¤ì¤é¤Î´Ø¿ô¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -5.1.1 °Ê¹ß¤Î libc ¤È 2.0 °Ê¹ß¤Î glibc ¤Ë¸ºß¤¹¤ë¡£ +が定義されているときにこれらの関数を使用することができる。 +5.1.1 以降の libc と 2.0 以降の glibc に存在する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR unlocked_stdio (3) diff --git a/draft/man3/floor.3 b/draft/man3/floor.3 index dbd55155..871d137e 100644 --- a/draft/man3/floor.3 +++ b/draft/man3/floor.3 @@ -32,15 +32,15 @@ .\" by Yuichi SATO .\" Updated 2008-09-16, Akihiro MOTOKI .\" -.\"WORD: mantissa ²¾¿ô +.\"WORD: mantissa 仮数 .\" .TH FLOOR 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O floor, floorf, floorl \- largest integral value not greater than argument -floor, floorf, floorl \- °ú¤­¿ô¤ò±Û¤¨¤Ê¤¤ºÇÂç¤ÎÀ°¿ôÃÍ +floor, floorf, floorl \- 引き数を越えない最大の整数値 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -52,14 +52,14 @@ floor, floorf, floorl \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -74,53 +74,53 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions return the largest integral value that is not greater than .\"O .IR x . -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I x -¤è¤êÂ礭¤¯¤Ê¤¤ºÇÂç¤ÎÀ°¿ôÃͤòÊÖ¤¹¡£ +より大きくない最大の整数値を返す。 .\"O For example, .\"O .IR floor(0.5) .\"O is 0.0, and .\"O .IR floor(\-0.5) .\"O is \-1.0. -Î㤨¤Ð¡¢ +例えば、 .I floor(0.5) -¤Ï 0.0 ¤Ç¡¢ +は 0.0 で、 .I floor(\-0.5) -¤Ï \-1.0 ¤Ç¤¢¤ë¡£ +は \-1.0 である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O These functions return the floor of .\"O .IR x . -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I x -¤ò±Û¤¨¤Ê¤¤ºÇ¾®¤ÎÀ°¿ôÃͤòÊÖ¤¹¡£ +を越えない最小の整数値を返す。 .\"O If \fIx\fP is integral, +0, \-0, NaN, or an infinity, .\"O \fIx\fP itself is returned. -\fIx\fP ¤¬À°¿ô¡¢+0¡¢\-0¡¢NaN¡¢Ìµ¸ÂÂç¤Î¤¤¤º¤ì¤«¤Î¾ì¹ç¡¢ -\fIx\fP ¤½¤Î¤â¤Î¤¬ÊÖ¤µ¤ì¤ë¡£ +\fIx\fP が整数、+0、\-0、NaN、無限大のいずれかの場合、 +\fIx\fP そのものが返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O No errors occur. -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ +エラーは発生しない。 .\"O POSIX.1-2001 documents a range error for overflows, but see NOTES. -POSIX.1-2001 ¤Ë¤Ï¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤ËÂФ·¤ÆÈÏ°Ï¥¨¥é¡¼¤¬µ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ -¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¡£ +POSIX.1-2001 にはオーバーフローに対して範囲エラーが記載されている。 +「注意」の節を参照。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD, C89. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O SUSv2 and POSIX.1-2001 contain text about overflow (which might set .\"O .I errno .\"O to @@ -128,31 +128,31 @@ C99, POSIX.1-2001. .\"O or raise an .\"O .B FE_OVERFLOW .\"O exception). -SUSv2 ¤È POSIX.1-2001 ¤Ë¤Ï¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ë´Ø¤¹¤ëµ­½Ò¤¬¤¢¤ê¡¢ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Î¾ì¹ç¤Ë¤Ï¡¢ +SUSv2 と POSIX.1-2001 にはオーバーフローに関する記述があり、 +オーバーフローの場合には、 .I errno -¤ò +を .B ERANGE -¤ËÀßÄꤹ¤ë¤«¡¢ +に設定するか、 .B FE_OVERFLOW -Îã³°¤òȯÀ¸¤¹¤ë¤³¤È¤È¤µ¤ì¤Æ¤¤¤ë¡£ +例外を発生することとされている。 .\"O In practice, the result cannot overflow on any current machine, .\"O so this error-handling stuff is just nonsense. -¼ÂºÝ¤Î¤È¤³¤í¡¢¸½¹Ô¤Î¥Þ¥·¥ó¤Ç¤Ï·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤òµ¯¤³¤¹¤³¤È¤Ï¤Ê¤¤¤Î¤Ç¡¢ -¤³¤Î¥¨¥é¡¼½èÍý¤Ï°ÕÌ£¤¬¤Ê¤¤¡£ +実際のところ、現行のマシンでは結果がオーバーフローを起こすことはないので、 +このエラー処理は意味がない。 .\" The POSIX.1-2001 APPLICATION USAGE SECTION discusses this point. .\"O (More precisely, overflow can happen only when the maximum value .\"O of the exponent is smaller than the number of mantissa bits. .\"O For the IEEE-754 standard 32-bit and 64-bit floating-point numbers .\"O the maximum value of the exponent is 128 (respectively, 1024), .\"O and the number of mantissa bits is 24 (respectively, 53).) -(¤è¤êÀµ³Î¤Ë¸À¤¦¤È¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ï»Ø¿ôÉô¤ÎºÇÂçÃͤ¬ -²¾¿ôÉô¤òɽ¤¹¥Ó¥Ã¥È¤Î¿ô¤è¤ê¾®¤µ¤¤¾ì¹ç¤Ë¤·¤«µ¯¤³¤é¤Ê¤¤¡£ -IEEE-754 µ¬³Ê¤Î 32 ¥Ó¥Ã¥È¤È 64 ¥Ó¥Ã¥È¤ÎÉâÆ°¾®¿ô¤Ç¤Ï¡¢ -»Ø¿ôÉô¤ÎºÇÂçÃͤϤ½¤ì¤¾¤ì 128 ¤È 1024 ¤Ç¤¢¤ê¡¢ -²¾¿ôÉô¤Î¥Ó¥Ã¥È¿ô¤Ï¤½¤ì¤¾¤ì 24 ¤È 53 ¤Ç¤¢¤ë¡£) +(より正確に言うと、オーバーフローは指数部の最大値が +仮数部を表すビットの数より小さい場合にしか起こらない。 +IEEE-754 規格の 32 ビットと 64 ビットの浮動小数では、 +指数部の最大値はそれぞれ 128 と 1024 であり、 +仮数部のビット数はそれぞれ 24 と 53 である。) .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ceil (3), .BR lrint (3), .BR nearbyint (3), diff --git a/draft/man3/fma.3 b/draft/man3/fma.3 index 670166a3..1b7d53ed 100644 --- a/draft/man3/fma.3 +++ b/draft/man3/fma.3 @@ -14,11 +14,11 @@ .\" .TH FMA 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fma, fmaf, fmal \- floating-point multiply and add -fma, fmaf, fmal \- ÉâÆ°¾®¿ôÅÀ¿ô¤ÎÀѤÈϤò·×»»¤¹¤ë +fma, fmaf, fmal \- 浮動小数点数の積と和を計算する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -30,14 +30,14 @@ fma, fmaf, fmal \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -53,29 +53,29 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR fma () .\"O function computes .\"O .IR x " * " y " + " z . .BR fma () -´Ø¿ô¤Ï +関数は .IR x " * " y " + " z -¤ò·×»»¤¹¤ë¡£ +を計算する。 .\"O The result is rounded as one ternary operation according to the .\"O current rounding mode (see .\"O .BR fenv (3)). -·ë²Ì¤Ï¡¢°ì¤Ä¤Î»°¹à±é»»¤È¤·¤Æ¸½ºß¤Î´Ý¤á¥â¡¼¥É¤Ë¤·¤¿¤¬¤Ã¤Æ´Ý¤á¤é¤ì¤ë +結果は、一つの三項演算として現在の丸めモードにしたがって丸められる .RB ( fenv (3) -»²¾È)¡£ +参照)。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O These functions return the value of .\"O .IR x " * " y " + " z , .\"O rounded as one ternary operation. -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .IR x " * " y " + " z -¤Î¡¢°ì¤Ä¤Î»°¹à±é»»¤È¤·¤Æ´Ý¤á¤é¤ì¤¿ÃͤòÊÖ¤¹¡£ +の、一つの三項演算として丸められた値を返す。 .\"O If .\"O .I x @@ -83,9 +83,9 @@ or .\"O .I y .\"O is a NaN, a NaN is returned. .I x -¤« +か .I y -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x @@ -97,12 +97,12 @@ or .\"O a domain error occurs, .\"O and a NaN is returned. .I y -¤Î +の .I x -Çܤ¬¤Á¤ç¤¦¤É̵¸ÂÂç¤Ç¡¢ +倍がちょうど無限大で、 .I z -¤¬¤½¤ì¤È¤ÏÈ¿ÂФÎÉä¹æ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +がそれとは反対の符号の無限大の場合、 +領域エラー (domain error) が発生し、NaN が返される。 .\" POSIX.1-2008 allows some possible differences for the following two .\" domain error cases, but on Linux they are treated the same (AFAICS). @@ -118,11 +118,11 @@ or .\"O a domain error occurs, and .\"O a NaN is returned. .I x -¤È +と .I y -¤Î¤¦¤Á°ìÊý¤¬Ìµ¸ÂÂç¤Ç¡¢¤â¤¦°ìÊý¤¬ 0 ¤Ç¡¢ +のうち一方が無限大で、もう一方が 0 で、 .I z -¤¬ NaN ¤Ç¤Ê¤¤¾ì¹ç¡¢Îΰ襨¥é¡¼¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN でない場合、領域エラーが発生し、NaN が返される。 .\" POSIX.1 says that a NaN or an implementation-defined value shall .\" be returned for this case. @@ -137,11 +137,11 @@ or .\"O a domain error occurs, and .\"O a NaN is returned. .I x -¤È +と .I y -¤Î¤¦¤Á°ìÊý¤¬Ìµ¸ÂÂç¤Ç¡¢¤â¤¦°ìÊý¤¬ 0 ¤Ç¡¢ +のうち一方が無限大で、もう一方が 0 で、 .I z -¤¬ NaN ¤Î¾ì¹ç¡¢Îΰ襨¥é¡¼¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、領域エラーが発生し、NaN が返される。 .\"O If .\"O .I x @@ -152,89 +152,89 @@ or .\"O is a NaN, .\"O a NaN is returned. .I y -¤Î +の .I x -Çܤ¬ 0 ¤Î̵¸ÂÂçÇÜ (¤â¤·¤¯¤Ï¤½¤ÎµÕ) ¤Ç¤Ï¤Ê¤¯¡¢ +倍が 0 の無限大倍 (もしくはその逆) ではなく、 .I z -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If the result overflows, .\"O a range error occurs, and .\"O an infinity with the correct sign is returned. -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢ -Àµ¤·¤¤Éä¹æ¤Î̵¸ÂÂ礬ÊÖ¤µ¤ì¤ë¡£ +結果がオーバーフローする場合、範囲エラー (range error) が発生し、 +正しい符号の無限大が返される。 .\"O If the result underflows, .\"O a range error occurs, and .\"O a signed 0 is returned. -·ë²Ì¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ -ÈÏ°Ï¥¨¥é¡¼¤¬È¯À¸¤·¡¢Éä¹æÉÕ¤­¤Î 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +結果がアンダーフローする場合、 +範囲エラーが発生し、符号付きの 0 が返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Domain error: \fIx\fP * \fIy\fP + \fIz\fP, \ .\"O or \fIx\fP * \fIy\fP is invalid and \fIz\fP is not a NaN -Îΰ襨¥é¡¼: \fIx\fP * \fIy\fP + \fIz\fP ¤« \ -\fIx\fP * \fIy\fP ¤¬Ìµ¸ú¤Ç¡¢\fIz\fP ¤¬ NaN ¤Ç¤Ï¤Ê¤¤ +領域エラー: \fIx\fP * \fIy\fP + \fIz\fP か \ +\fIx\fP * \fIy\fP が無効で、\fIz\fP が NaN ではない .\" .I errno .\" is set to .\" .BR EDOM . .\"O An invalid floating-point exception .\"O .RB ( FE_INVALID ) .\"O is raised. -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP .\"O Range error: result overflow -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ +範囲エラー: 結果のオーバーフロー .\" .I errno .\" is set to .\" .BR ERANGE . .\"O An overflow floating-point exception .\"O .RB ( FE_OVERFLOW ) .\"O is raised. -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP .\"O Range error: result underflow -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤Î¥¢¥ó¥À¡¼¥Õ¥í¡¼ +範囲エラー: 結果のアンダーフロー .\" .I errno .\" is set to .\" .BR ERANGE . .\"O An underflow floating-point exception .\"O .RB ( FE_UNDERFLOW ) .\"O is raised. -¥¢¥ó¥À¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +アンダーフロー浮動小数点例外 .RB ( FE_UNDERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP .\"O These functions do not set .\"O .IR errno . -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6801 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR remainder (3), .BR remquo (3) diff --git a/draft/man3/fmax.3 b/draft/man3/fmax.3 index ebcb982f..2fddad1c 100644 --- a/draft/man3/fmax.3 +++ b/draft/man3/fmax.3 @@ -12,11 +12,11 @@ .\" .TH FMAX 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fmax, fmaxf, fmaxl \- determine maximum of two floating-point numbers -fmax, fmaxf, fmaxl \- Æó¤Ä¤ÎÉâÆ°¾®¿ôÅÀ¿ô¤ÎºÇÂçÃͤòµá¤á¤ë +fmax, fmaxf, fmaxl \- 二つの浮動小数点数の最大値を求める .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double fmax(double " x ", double " y ); @@ -26,14 +26,14 @@ fmax, fmaxf, fmaxl \- .BI "long double fmaxl(long double " x ", long double " y ); .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -49,44 +49,44 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions return the larger value of .\"O .I x .\"O and .\"O .IR y . -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I x -¤È +と .I y -¤Î¤¦¤ÁÂ礭¤¤Êý¤ÎÃͤòÊÖ¤¹¡£ +のうち大きい方の値を返す。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O These functions return the maximum of .\"O .I x .\"O and .\"O .IR y . -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I x -¤È +と .I y -¤ÎºÇÂçÃͤòÊÖ¤¹¡£ +の最大値を返す。 .\"O If one argument is a NaN, the other argument is returned. -°ìÊý¤Î°ú¤­¿ô¤¬ NaN ¤Î¾ì¹ç¡¢¤â¤¦°ìÊý¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¡£ +一方の引き数が NaN の場合、もう一方の値が返される。 .\"O If both arguments are NaN, a NaN is returned. -ξÊý¤Î°ú¤­¿ô¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +両方の引き数が NaN の場合、NaN が返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O No errors occur. -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ +エラーは発生しない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fmin (3) diff --git a/draft/man3/fmemopen.3 b/draft/man3/fmemopen.3 index f5c63b5e..a7f6a8a8 100644 --- a/draft/man3/fmemopen.3 +++ b/draft/man3/fmemopen.3 @@ -13,11 +13,11 @@ .\" .TH FMEMOPEN 3 2010-09-15 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fmemopen, open_memstream, open_wmemstream \- open memory as stream -fmemopen, open_memstream, open_wmemstream \- ¥á¥â¥ê¤ò¥¹¥È¥ê¡¼¥à¤È¤·¤Æ¥ª¡¼¥×¥ó¤¹¤ë +fmemopen, open_memstream, open_wmemstream \- メモリをストリームとしてオープンする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include @@ -34,9 +34,9 @@ fmemopen, open_memstream, open_wmemstream \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR fmemopen (), @@ -47,17 +47,17 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR fmemopen () .\"O function opens a stream that permits the access specified by @@ -69,15 +69,15 @@ _GNU_SOURCE .\"O .I size .\"O bytes long. .BR fmemopen () -´Ø¿ô¤Ï¡¢¥¹¥È¥ê¡¼¥à¤ò¥ª¡¼¥×¥ó¤·¡¢¤½¤Î¥¹¥È¥ê¡¼¥à¤Ë +関数は、ストリームをオープンし、そのストリームに .I mode -¤Ç»ØÄꤵ¤ì¤¿¥¢¥¯¥»¥¹µö²Ä¤òÀßÄꤹ¤ë¡£ -¤½¤Î¥¹¥È¥ê¡¼¥à¤òÄ̤¸¤Æ¡¢ +で指定されたアクセス許可を設定する。 +そのストリームを通じて、 .I buf -¤Ç»ØÄꤵ¤ì¤¿Ê¸»úÎó¤ä¥á¥â¥ê¥Ð¥Ã¥Õ¥¡¤Ø¤ÎÆɤ߽ñ¤­¤¬¤Ç¤­¤ë¡£ -¤³¤Î¥Ð¥Ã¥Õ¥¡¤Ï¾¯¤Ê¤¯¤È¤â +で指定された文字列やメモリバッファへの読み書きができる。 +このバッファは少なくとも .I size -¥Ð¥¤¥È¤ÎŤµ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +バイトの長さでなければならない。 .PP .\"O The argument .\"O .I mode @@ -88,15 +88,15 @@ _GNU_SOURCE .\"O specifies an append mode, then the initial file position is set to .\"O the location of the first null byte (\(aq\\0\(aq) in the buffer; .\"O otherwise the initial file position is set to the start of the buffer. -°ú¤­¿ô +引き数 .I mode -¤Ï +は .BR fopen (3) -¤Î¾ì¹ç¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +の場合と同じである。 .I mode -¤ÇÄɵ­¥â¡¼¥É (append mode) ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¥Õ¥¡¥¤¥ë°ÌÃ֤νé´üÃÍ¤Ï -¥Ð¥Ã¥Õ¥¡Ãæ¤ÎºÇ½é¤Î NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Î°ÌÃÖ¤ËÀßÄꤵ¤ì¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢¥Õ¥¡¥¤¥ë°ÌÃ֤νé´üÃͤϥХåե¡¤ÎÀèƬ¤Ë¤Ê¤ë¡£ +で追記モード (append mode) が指定された場合、ファイル位置の初期値は +バッファ中の最初の NULL バイト (\(aq\\0\(aq) の位置に設定される。 +それ以外の場合は、ファイル位置の初期値はバッファの先頭になる。 .\"O Since glibc 2.9, .\"O the letter 'b' may be specified as the second character in .\"O .IR mode . @@ -107,17 +107,17 @@ _GNU_SOURCE .\"O is relative to the end of the buffer (i.e., the value specified by the .\"O .I size .\"O argument), rather than the current string length. -glibc 2.9 °Ê¹ß¤Ç¤Ï¡¢Ê¸»ú 'b' ¤ò +glibc 2.9 以降では、文字 'b' を .I mode -¤ÎÆóÈÖÌܤÎʸ»ú¤È¤·¤Æ»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Îʸ»ú¤Ï¡Ö¥Ð¥¤¥Ê¥ê¡×¥â¡¼¥É¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î¥â¡¼¥É¤Ç¤Ï¡¢½ñ¤­¹þ¤ß»þ¤Ëʸ»úÎó½ªÃ¼¤Î¥Ì¥ë¥Ð¥¤¥È¤¬ÌۤäÆÄɲà -¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£¤Þ¤¿¡¢ +の二番目の文字として指定することができる。 +この文字は「バイナリ」モードを指定するものである。 +このモードでは、書き込み時に文字列終端のヌルバイトが黙って追加 +されることはない。また、 .BR fseek (3) .B SEEK_END -¤Ï¡¢Ê¸»úÎó¤ÎŤµ¤«¤é¤ÎÁêÂÐÃͤǤϤʤ¯¡¢¥Ð¥Ã¥Õ¥¡¤ÎËöÈø +は、文字列の長さからの相対値ではなく、バッファの末尾 .RI ( size -¤Ç»ØÄꤷ¤¿ÃÍ) ¤«¤é¤ÎÁêÂÐÃͤȤʤ롣 +で指定した値) からの相対値となる。 .PP .\"O When a stream that has been opened for writing is flushed .\"O .RB ( fflush (3)) @@ -130,23 +130,23 @@ glibc 2.9 .\"O .I size .\"O counts that byte) .\"O to allow for this. -½ñ¤­¹þ¤ßÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤¿¥¹¥È¥ê¡¼¥à¤ò¥Õ¥é¥Ã¥·¥å +書き込み用にオープンされたストリームをフラッシュ .RB ( fflush (3)) -¤ä¥¯¥í¡¼¥º +やクローズ .RB ( fclose (3)) -¤·¤¿»þ¤Ë¡¢ -(¥Ð¥Ã¥Õ¥¡¤Ë¶õ¤­¤¬¤¢¤ì¤Ð) NULL ¥Ð¥¤¥È¤¬¥Ð¥Ã¥Õ¥¡¤ÎËöÈø¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£ -¤³¤Î¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Ï -¥Ð¥Ã¥Õ¥¡¤Ë 1¥Ð¥¤¥È;͵¤òºî¤ë +した時に、 +(バッファに空きがあれば) NULL バイトがバッファの末尾に書き込まれる。 +このようにするためには、呼び出し元は +バッファに 1バイト余裕を作る .RI ( size -¤Ë¤³¤Î 1¥Ð¥¤¥È¤ò´Þ¤á¤¿Ãͤò»ØÄꤹ¤ë) ɬÍפ¬¤¢¤ë¡£ +にこの 1バイトを含めた値を指定する) 必要がある。 .\"O Attempts to write more than .\"O .I size .\"O bytes to the buffer result in an error. -¥Ð¥Ã¥Õ¥¡¤Ë +バッファに .I size -¥Ð¥¤¥È¤è¤ê¤¿¤¯¤µ¤ó½ñ¤­¹þ¤â¤¦¤È¤·¤¿¾ì¹ç¤Ë¤Ï¡¢¥¨¥é¡¼¤È¤Ê¤ë¡£ +バイトよりたくさん書き込もうとした場合には、エラーとなる。 .\"O (By default, such errors will only be visible when the .\"O .I stdio .\"O buffer is flushed. @@ -158,19 +158,19 @@ glibc 2.9 .\"O as the stdio stream buffer, at the same time informing stdio .\"O of the buffer's size, using .\"O .IR "setbuffer(fp, buf, size)" .) -(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¤è¤¦¤Ê¥¨¥é¡¼¤¬¸«¤¨¤ë¤Î¤Ï +(デフォルトでは、このようなエラーが見えるのは .I stdio -¥Ð¥Ã¥Õ¥¡¤¬¥Õ¥é¥Ã¥·¥å¤µ¤ì¤¿»þ¤À¤±¤Ç¤¢¤ë¡£ +バッファがフラッシュされた時だけである。 .I setbuf(fp,\ NULL) -¤ò»È¤Ã¤Æ¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤ò̵¸ú¤Ë¤¹¤ëÊýË¡¤Ï¡¢ -½ÐÎÏÁàºî¤ò¹Ô¤Ã¤¿»þÅÀ¤Ç¥¨¥é¡¼¤ò¸¡½Ð¤¹¤ë¤Î¤ËÌòΩ¤Ä¡£ -Ê̤ÎÊýË¡¤È¤·¤Æ¤Ï¡¢ +を使ってバッファリングを無効にする方法は、 +出力操作を行った時点でエラーを検出するのに役立つ。 +別の方法としては、 .IR "setbuffer(fp, buf, size)" -¤ò»È¤Ã¤Æ¡¢¸Æ¤Ó½Ð¤·Â¦¤¬ÌÀ¼¨Åª¤Ë -stdio ¥¹¥È¥ê¡¼¥à¥Ð¥Ã¥Õ¥¡¤È¤·¤Æ +を使って、呼び出し側が明示的に +stdio ストリームバッファとして .I buf -¤ò»ØÄꤷ¡¢¥Ð¥Ã¥Õ¥¡¤Î»ØÄê»þ¤Ë¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤ò -stdio ¤Ë¶µ¤¨¤ëÊýË¡¤¬¤¢¤ë¡£) +を指定し、バッファの指定時にバッファのサイズを +stdio に教える方法がある。) .\" See http://sourceware.org/bugzilla/show_bug.cgi?id=1995 .\" and .\" http://sources.redhat.com/ml/libc-alpha/2006-04/msg00064.html @@ -182,13 +182,13 @@ stdio .\"O when the file pointer advances .\"O .I size .\"O bytes past the start of the buffer. -Æɤ߽Ф·ÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤¿¥¹¥È¥ê¡¼¥à¤Ç¤Ï¡¢ -¥Ð¥Ã¥Õ¥¡Æâ¤Ë NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤¬¤¢¤Ã¤Æ¤â -Æɤ߽Ф·Áàºî¤¬¥Õ¥¡¥¤¥ëËöÈø (end-of-file) ¤òÊÖ¤¹¤³¤È¤Ï¤Ê¤¤¡£ -¥Ð¥Ã¥Õ¥¡¤«¤é¤ÎÆɤ߽Ф·¤Ç¥Õ¥¡¥¤¥ëËöÈø¤¬ÊÖ¤ë¤Î¤Ï¡¢ -¥Õ¥¡¥¤¥ë¥Ý¥¤¥ó¥¿¤¬¥Ð¥Ã¥Õ¥¡¤ÎÀèƬ¤«¤é +読み出し用にオープンされたストリームでは、 +バッファ内に NULL バイト (\(aq\\0\(aq) があっても +読み出し操作がファイル末尾 (end-of-file) を返すことはない。 +バッファからの読み出しでファイル末尾が返るのは、 +ファイルポインタがバッファの先頭から .I size -¥Ð¥¤¥È¤ò±Û¤¨¤ÆÀè¤Ë¿Ê¤â¤¦¤È¤·¤¿¾ì¹ç¤À¤±¤Ç¤¢¤ë¡£ +バイトを越えて先に進もうとした場合だけである。 .PP .\"O If .\"O .I buf @@ -198,11 +198,11 @@ stdio .\"O .I size .\"O bytes long. .I buf -¤Ë NULL ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +に NULL が指定された場合、 .BR fmemopen () -¤ÏưŪ¤Ë +は動的に .I size -¥Ð¥¤¥È¤ÎŤµ¤Î¥Ð¥Ã¥Õ¥¡¤ò³ÎÊݤ¹¤ë¡£ +バイトの長さのバッファを確保する。 .\"O This is useful for an application that wants to write data to .\"O a temporary buffer and then read it back again. .\"O The buffer is automatically freed when the stream is closed. @@ -210,13 +210,13 @@ stdio .\"O temporary buffer allocated by this call (but see .\"O .BR open_memstream () .\"O below). -¤³¤ÎÊýË¡¤Ï¡¢°ì»þ¥Ð¥Ã¥Õ¥¡¤Ë¥Ç¡¼¥¿¤Î½ñ¤­¹þ¤ß¤ò¹Ô¤Ã¤Æ¤«¤é¡¢ -¤½¤ÎÆâÍƤòºÆÅÙÆɤ߽Ф¹¤è¤¦¤Ê¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÇÍ­ÍѤǤ¢¤ë¡£ -¤³¤Î¥Ð¥Ã¥Õ¥¡¤Ï¥¹¥È¥ê¡¼¥à¤¬¥¯¥í¡¼¥º¤µ¤ì¤ë¤È¤­¤Ë¼«Æ°Åª¤Ë²òÊü¤µ¤ì¤ë¡£ -¸Æ¤Ó½Ð¤·¸µ¤«¤é¤Ï¤³¤Î´Ø¿ô¤¬³ä¤êÅö¤Æ¤¿°ì»þ¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿Ãͤò -ÃΤëÊýË¡¤Ï¸ºß¤·¤Ê¤¤ÅÀ¤ËÃí°Õ (²¼µ­¤Î +この方法は、一時バッファにデータの書き込みを行ってから、 +その内容を再度読み出すようなアプリケーションで有用である。 +このバッファはストリームがクローズされるときに自動的に解放される。 +呼び出し元からはこの関数が割り当てた一時バッファへのポインタ値を +知る方法は存在しない点に注意 (下記の .BR open_memstream () -¤â»²¾È)¡£ +も参照)。 .\"O The .\"O .BR open_memstream () @@ -229,13 +229,13 @@ stdio .\"O .BR free (3) .\"O this buffer. .BR open_memstream () -´Ø¿ô¤Ï¡¢¥Ð¥Ã¥Õ¥¡¤Ø¤Î½ñ¤­¹þ¤ßÍѤ˥¹¥È¥ê¡¼¥à¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£ -¥Ð¥Ã¥Õ¥¡¤Ï +関数は、バッファへの書き込み用にストリームをオープンする。 +バッファは .RB ( malloc (3) -¤ò»È¤Ã¤Æ) ưŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¡¢É¬Íפ˱þ¤¸¤Æ¼«Æ°Åª¤Ë¿­Ä¹¤¹¤ë¡£ -¥¹¥È¥ê¡¼¥à¤ò¥¯¥í¡¼¥º¤·¤¿¸å¤Ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Ï¤³¤Î¥Ð¥Ã¥Õ¥¡¤ò +を使って) 動的に割り当てられ、必要に応じて自動的に伸長する。 +ストリームをクローズした後で、呼び出し元はこのバッファを .BR free (3) -¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +すべきである。 .\"O When the stream is closed .\"O .RB ( fclose (3)) @@ -251,30 +251,30 @@ stdio .\"O performs no further output on the stream. .\"O If further output is performed, then the stream .\"O must again be flushed before trying to access these variables. -¤³¤Î¥¹¥È¥ê¡¼¥à¤¬ -¥¯¥í¡¼¥º +このストリームが +クローズ .RB ( fclose (3)) -¤µ¤ì¤¿¤ê¥Õ¥é¥Ã¥·¥å +されたりフラッシュ .RB ( fflush (3)) -¤µ¤ì¤¿»þ¤Ë¡¢ +された時に、 .I ptr -¤È +と .I sizeloc -¤ÎÃͤϤ½¤ì¤¾¤ì¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤È¤½¤Î¥µ¥¤¥º¤Ë¹¹¿·¤µ¤ì¤ë¡£ -¤³¤ì¤é¤ÎÃͤϡ¢¸Æ¤Ó½Ð¤·¸µ¤¬¤½¤Î¥¹¥È¥ê¡¼¥à¤Ë¿·¤¿¤Ê½ñ¤­¹þ¤ß¤ò -¹Ô¤ï¤Ê¤¤¾ì¹ç¤Ë¸Â¤êÍ­¸ú¤Ç¤¢¤ë¡£ -¥¹¥È¥ê¡¼¥à¤Ë½ñ¤­¹þ¤ß¤ò¹Ô¤Ã¤¿ºÝ¤Ë¤Ï¡¢¤³¤ì¤é¤ÎÊÑ¿ô¤ò»²¾È¤¹¤ëÁ°¤Ë -¥¹¥È¥ê¡¼¥à¤òºÆÅÙ¥Õ¥é¥Ã¥·¥å¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +の値はそれぞれバッファへのポインタとそのサイズに更新される。 +これらの値は、呼び出し元がそのストリームに新たな書き込みを +行わない場合に限り有効である。 +ストリームに書き込みを行った際には、これらの変数を参照する前に +ストリームを再度フラッシュしなければならない。 .\"O A null byte is maintained at the end of the buffer. .\"O This byte is .\"O .I not .\"O included in the size value stored at .\"O .IR sizeloc . -¥Ð¥Ã¥Õ¥¡ËöÈø¤Î NULL ¥Ð¥¤¥È¤ÏÊÝ»ý¤µ¤ì¤ë¡£ -¤³¤Î NULL ¥Ð¥¤¥È¤Ï +バッファ末尾の NULL バイトは保持される。 +この NULL バイトは .I sizeloc -¤Ë³ÊǼ¤µ¤ì¤ë¥µ¥¤¥º¤Ë¤Ï¡Ö´Þ¤Þ¤ì¤Ê¤¤¡×¡£ +に格納されるサイズには「含まれない」。 .\"O The stream's file position can be changed with .\"O .BR fseek (3) @@ -283,13 +283,13 @@ stdio .\"O Moving the file position past the end .\"O of the data already written fills the intervening space with .\"O zeros. -¥¹¥È¥ê¡¼¥à¤Î¥Õ¥¡¥¤¥ë°ÌÃÖ¤Ï +ストリームのファイル位置は .BR fseek (3) -¤ä +や .BR fseeko (3) -¤ÇÊѹ¹¤Ç¤­¤ë¡£ -¤¹¤Ç¤Ë¥Ç¡¼¥¿¤¬½ñ¤­¹þ¤Þ¤ì¤¿Îΰè¤ÎËöÈø¤è¤êÀè¤Ë¥Õ¥¡¥¤¥ë°ÌÃÖ¤òÆ°¤«¤¹¤È¡¢ -¤½¤Î´Ö¤ÎÎΰè¤Ï 0 ¤ÇËä¤á¤é¤ì¤ë¡£ +で変更できる。 +すでにデータが書き込まれた領域の末尾より先にファイル位置を動かすと、 +その間の領域は 0 で埋められる。 .\"O The .\"O .BR open_wmemstream () @@ -297,11 +297,11 @@ stdio .\"O .BR open_memstream (), .\"O but operates on wide characters instead of bytes. .BR open_wmemstream () -¤Ï +は .BR open_memstream () -¤ÈƱÍͤÀ¤¬¡¢¥Ð¥¤¥È¤Ç¤Ï¤Ê¤¯¥ï¥¤¥Éʸ»ú¤ËÂФ·¤ÆÁàºî¤ò¹Ô¤¦ÅÀ¤¬°Û¤Ê¤ë¡£ +と同様だが、バイトではなくワイド文字に対して操作を行う点が異なる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O Upon successful completion .\"O .BR fmemopen (), .\"O .BR open_memstream () @@ -313,18 +313,18 @@ stdio .\"O Otherwise, NULL is returned and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤·¤Æ½ªÎ»¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ +成功して終了した場合には、 .BR fmemopen (), .BR open_memstream (), .BR open_wmemstream () -¤Ï +は .I FILE -¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¡¢ NULL ¤òÊÖ¤·¡¢ +ポインタを返す。 +失敗した場合は、 NULL を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ +にエラーを示す値をセットする。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR fmemopen () .\"O and .\"O .BR open_memstream () @@ -332,46 +332,46 @@ stdio .\"O .BR open_wmemstream () .\"O is available since glibc 2.4. .BR fmemopen () -¤È +と .BR open_memstream () -¤Ï glibc 1.0.x ¤Ç¤¹¤Ç¤ËÍøÍѲÄǽ¤Ç¤¢¤Ã¤¿¡£ +は glibc 1.0.x ですでに利用可能であった。 .BR open_wmemstream () -¤Ï glibc 2.4 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +は glibc 2.4 以降で利用可能である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. .\"O These functions are not specified in POSIX.1-2001, .\"O and are not widely available on other systems. -¤³¤ì¤é¤Î´Ø¿ô¤Ï POSIX.1-2001 ¤Ç¤Ïµ¬Äê¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -Linux °Ê³°¤Î¥·¥¹¥Æ¥à¤Ç¹­¤¯ÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +これらの関数は POSIX.1-2001 では規定れていないが、 +Linux 以外のシステムで広く利用可能である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O There is no file descriptor associated with the file stream .\"O returned by these functions .\"O (i.e., .\"O .BR fileno (3) .\"O will return an error if called on the returned stream). -¤³¤ì¤é¤Î´Ø¿ô¤¬ÊÖ¤¹¥Õ¥¡¥¤¥ë¥¹¥È¥ê¡¼¥à¤ËÂбþ¤¹¤ë¥Õ¥¡¥¤¥ë -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¤Ê¤¤ (¤Ä¤Þ¤ê¡¢ÊÖ¤µ¤ì¤¿¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ +これらの関数が返すファイルストリームに対応するファイル +ディスクリプタはない (つまり、返されたストリームに対して .BR fileno (3) -¤ò¸Æ¤Ó½Ð¤¹¤È¥¨¥é¡¼¤¬Ê֤뤳¤È¤Ë¤Ê¤ë)¡£ +を呼び出すとエラーが返ることになる)。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O In glibc before version 2.7, seeking past the end of a stream created by .\"O .BR open_memstream () .\"O does not enlarge the buffer; instead the .\"O .BR fseek (3) .\"O call fails, returning \-1. .\"O .\" http://sourceware.org/bugzilla/show_bug.cgi?id=1996 -¥Ð¡¼¥¸¥ç¥ó 2.7 ¤è¤êÁ°¤Î glibc ¤Ç¤Ï¡¢ +バージョン 2.7 より前の glibc では、 .BR open_memstream () -¤ÇºîÀ®¤µ¤ì¤¿¥¹¥È¥ê¡¼¥à¤ÎËöÈø¤è¤êÀè¤Ë¥Õ¥¡¥¤¥ë°ÌÃÖ¤òÆ°¤«¤·¤Æ¤â¡¢ -¥Ð¥Ã¥Õ¥¡¤¬¿­Ä¹¤µ¤ì¤º¡¢ +で作成されたストリームの末尾より先にファイル位置を動かしても、 +バッファが伸長されず、 .BR fseek (3) -¤¬¼ºÇÔ¤· \-1 ¤¬Ê֤롣 +が失敗し \-1 が返る。 .\" http://sourceware.org/bugzilla/show_bug.cgi?id=1996 .\"O .SH "EXAMPLE" -.SH Îã +.SH 例 .\"O The program below uses .\"O .BR fmemopen () .\"O to open an input buffer, and @@ -381,14 +381,14 @@ Linux .\"O first command-line argument) reading integers, .\"O and writes the squares of these integers to the output buffer. .\"O An example of the output produced by this program is the following: -¤³¤Î¥×¥í¥°¥é¥à¤Ï +このプログラムは .BR fmemopen () -¤ò»È¤Ã¤Æ½ÐÎϥХåե¡¤ò¥ª¡¼¥×¥ó¤·¡¢ +を使って出力バッファをオープンし、 .BR open_memstream () -¤ò»È¤Ã¤ÆưŪ¤Ë¥µ¥¤¥º¤¬ÊѲ½¤¹¤ë½ÐÎϥХåե¡¤ò¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¡£ -(¥×¥í¥°¥é¥à¤ÎÂè°ì¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤«¤é¼è¤Ã¤¿) ÆþÎÏʸ»úÎó¤ò -¥¹¥­¥ã¥ó¤·¤ÆÀ°¿ô¤òÆɤ߹þ¤ß¡¢¤³¤ì¤é¤ÎÀ°¿ô¤ÎÆó¾è¤ò½ÐÎϥХåե¡¤Ë½ñ¤­½Ð¤¹¡£ -¤³¤Î¥×¥í¥°¥é¥à¤Î¼Â¹ÔÎã¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¡£ +を使って動的にサイズが変化する出力バッファをオープンしている。 +(プログラムの第一コマンドライン引き数から取った) 入力文字列を +スキャンして整数を読み込み、これらの整数の二乗を出力バッファに書き出す。 +このプログラムの実行例は以下のようになる。 .in +4n .nf @@ -397,7 +397,7 @@ size=11; ptr=1 529 1849 .fi .in .\"O .SS Program source -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #define _GNU_SOURCE @@ -446,6 +446,6 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fopen (3), .BR fopencookie (3) diff --git a/draft/man3/fmin.3 b/draft/man3/fmin.3 index c4290b8a..b020f5ad 100644 --- a/draft/man3/fmin.3 +++ b/draft/man3/fmin.3 @@ -12,11 +12,11 @@ .\" .TH FMIN 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fmin, fminf, fminl \- determine minimum of two floating-point numbers -fmin, fminf, fminl \- Æó¤Ä¤ÎÉâÆ°¾®¿ôÅÀ¿ô¤ÎºÇ¾®Ãͤòµá¤á¤ë +fmin, fminf, fminl \- 二つの浮動小数点数の最小値を求める .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double fmin(double " x ", double " y ); @@ -26,14 +26,14 @@ fmin, fminf, fminl \- .BI "long double fminl(long double " x ", long double " y ); .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -49,44 +49,44 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions the lesser value of .\"O .I x .\"O and .\"O .IR y . -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I x -¤È +と .I y -¤Î¤¦¤Á¾®¤µ¤¤Êý¤ÎÃͤòÊÖ¤¹¡£ +のうち小さい方の値を返す。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O These functions return the minimum of .\"O .I x .\"O and .\"O .IR y . -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I x -¤È +と .I y -¤ÎºÇ¾®ÃͤòÊÖ¤¹¡£ +の最小値を返す。 .\"O If one argument is a NaN, the other argument is returned. -°ìÊý¤Î°ú¤­¿ô¤¬ NaN ¤Î¾ì¹ç¡¢¤â¤¦°ìÊý¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¡£ +一方の引き数が NaN の場合、もう一方の値が返される。 .\"O If both arguments are NaN, a NaN is returned. -ξÊý¤Î°ú¤­¿ô¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +両方の引き数が NaN の場合、NaN が返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O No errors occur. -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ +エラーは発生しない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fmax (3) diff --git a/draft/man3/fmod.3 b/draft/man3/fmod.3 index d732560d..24a463c9 100644 --- a/draft/man3/fmod.3 +++ b/draft/man3/fmod.3 @@ -37,15 +37,15 @@ .\" Updated Wed Oct 15 JST 2003 by Kentaro Shirakata .\" Updated 2008-09-16, Akihiro MOTOKI .\" -.\" WORD: remainder function ¾ê;´Ø¿ô +.\" WORD: remainder function 剰余関数 .\" .TH FMOD 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fmod, fmodf, fmodl \- floating-point remainder function -fmod, fmodf, fmodl \- ÉâÆ°¾®¿ôÅÀ¾ê;´Ø¿ô +fmod, fmodf, fmodl \- 浮動小数点剰余関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -57,14 +57,14 @@ fmod, fmodf, fmodl \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -79,7 +79,7 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR fmod () .\"O function computes the floating-point remainder of dividing \fIx\fP by @@ -87,12 +87,12 @@ or .\"O The return value is \fIx\fP \- \fIn\fP * \fIy\fP, where \fIn\fP .\"O is the quotient of \fIx\fP / \fIy\fP, rounded toward zero to an integer. .BR fmod () -´Ø¿ô¤Ï \fIx\fP ¤ò \fIy\fP ¤Ç³ä¤Ã¤¿ÉâÆ°¾®¿ôÅÀ¾ê;¤ò·×»»¤¹¤ë¡£ -ÊÖ¤êÃÍ¤Ï \fIx\fP \- \fIn\fP * \fIy\fP ¤Ç¤¢¤ë¡£ -¤³¤³¤Ç¡¢\fIn\fP ¤Ï \fIx\fP / \fIy\fP ¤Î¾¦¤ò -¥¼¥í¤Ë¸þ¤«¤¦Êý¸þ¤ÇÀ°¿ôÃͤ˴ݤ᤿¤â¤Î¤Ç¤¢¤ë¡£ +関数は \fIx\fP を \fIy\fP で割った浮動小数点剰余を計算する。 +返り値は \fIx\fP \- \fIn\fP * \fIy\fP である。 +ここで、\fIn\fP は \fIx\fP / \fIy\fP の商を +ゼロに向かう方向で整数値に丸めたものである。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these .\"O functions return the value \fIx\fP\ \-\ \fIn\fP*\fIy\fP, .\"O for some integer \fIn\fP, @@ -100,12 +100,12 @@ or .\"O .I x .\"O and a magnitude less than the magnitude of .\"O .IR y . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï \fIx\fP\ \-\ \fIn\fP*\fIy\fP ¤òÊÖ¤¹¡£ -\fIn\fP ¤Ï¡¢ÊÖ¤êÃͤ¬ +成功すると、これらの関数は \fIx\fP\ \-\ \fIn\fP*\fIy\fP を返す。 +\fIn\fP は、返り値が .I x -¤ÈƱ¤¸Éä¹æ¤Ç¡¢¤½¤ÎÀäÂÐÃͤ¬ +と同じ符号で、その絶対値が .I y -¤ÎÀäÂÐÃͤè¤ê¤â¾®¤µ¤¯¤Ê¤ë¤è¤¦¤ÊÀ°¿ô¤Ç¤¢¤ë¡£ +の絶対値よりも小さくなるような整数である。 .\"O If .\"O .I x @@ -113,9 +113,9 @@ or .\"O .I y .\"O is a NaN, a NaN is returned. .I x -¤« +か .I y -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x @@ -123,8 +123,8 @@ or .\"O a domain error occurs, and .\"O a NaN is returned. .I x -¤¬Ìµ¸ÂÂç¤Î¾ì¹ç¡¢Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ -NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が無限大の場合、領域エラー (domain error) が発生し、 +NaN が返される。 .\"O If .\"O .I y @@ -132,8 +132,8 @@ NaN .\"O a domain error occurs, and .\"O a NaN is returned. .I y -¤¬ 0 ¤Î¾ì¹ç¡¢Îΰ襨¥é¡¼¤¬È¯À¸¤·¡¢ -NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が 0 の場合、領域エラーが発生し、 +NaN が返される。 .\"O If .\"O .I x @@ -141,24 +141,24 @@ NaN .\"O .I y .\"O is not zero, +0 (\-0) is returned. .I x -¤¬ +0 (\-0) ¤Ç +が +0 (\-0) で .I y -¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が 0 でない場合、+0 (\-0) が返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Domain error: \fIx\fP is an infinity -Îΰ襨¥é¡¼: \fIx\fP ¤¬Ìµ¸ÂÂç +領域エラー: \fIx\fP が無限大 .\"O .I errno .\"O is set to .\"O .BR EDOM @@ -167,15 +167,15 @@ NaN .\"O .RB ( FE_INVALID ) .\"O is raised. .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë (¡Ö¥Ð¥°¡×¤ÎÀá¤â»²¾È)¡£ -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される (「バグ」の節も参照)。 +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP .\"O Domain error: \fIy\fP is zero -Îΰ襨¥é¡¼: \fIy\fP ¤¬¥¼¥í +領域エラー: \fIy\fP がゼロ .\"O .I errno .\"O is set to .\"O .BR EDOM . @@ -183,16 +183,16 @@ NaN .\"O .RB ( FE_INVALID ) .\"O is raised. .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë¡£ -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .\" POSIX.1 documents an optional underflow error, but AFAICT it doesn't .\" (can't?) occur -- mtk, Jul 2008 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Before version 2.10, the glibc implementation did not set .\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=6784 .\"O .I errno @@ -200,21 +200,21 @@ NaN .\"O .B EDOM .\"O when a domain error occurred for an infinite .\"O .IR x . -¥Ð¡¼¥¸¥ç¥ó 2.10 ¤è¤êÁ°¤Î glibc ¤Î¼ÂÁõ¤Ç¤Ï¡¢ -̵¸ÂÂç¤ÇÎΰ襨¥é¡¼¤¬È¯À¸¤·¤¿ºÝ¤Ë¡¢ +バージョン 2.10 より前の glibc の実装では、 +無限大で領域エラーが発生した際に、 .I error -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤Ê¤«¤Ã¤¿¡£ +が設定されなかった。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD, C89. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR remainder (3) diff --git a/draft/man3/fmtmsg.3 b/draft/man3/fmtmsg.3 index 96848c13..e75cb92b 100644 --- a/draft/man3/fmtmsg.3 +++ b/draft/man3/fmtmsg.3 @@ -14,11 +14,11 @@ .\" .TH FMTMSG 3 2008-06-14 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fmtmsg \- print formatted error messages -fmtmsg \- À°·Á¤µ¤ì¤¿¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë +fmtmsg \- 整形されたエラーメッセージを表示する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -29,7 +29,7 @@ fmtmsg \- .BI " const char *" action ", const char *" tag ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This function displays a message described by its arguments on the device(s) .\"O specified in the .\"O .I classification @@ -39,13 +39,13 @@ fmtmsg \- .\"O the format depends on the .\"O .B MSGVERB .\"O environment variable. -¤³¤Î´Ø¿ô¤Ï¡¢°ú¤­¿ô¤Çµ­½Ò¤µ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤ò¡¢ +この関数は、引き数で記述されたメッセージを、 .I classification -°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿¥Ç¥Ð¥¤¥¹¾å¤Ëɽ¼¨¤¹¤ë¡£ +引き数で指定されたデバイス上に表示する。 .I stderr -¤Ë½ñ¤­½Ð¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢ +に書き出されるメッセージのフォーマットは、 .B MSGVERB -´Ä¶­ÊÑ¿ô¤Ë°Í¸¤¹¤ë¡£ +環境変数に依存する。 .LP .\"O The .\"O .I label @@ -54,24 +54,24 @@ fmtmsg \- .\"O of two colon separated parts where the first part has not more .\"O than 10 and the second part not more than 14 characters. .I label -°ú¤­¿ô¤Ï¥á¥Ã¥»¡¼¥¸¤ÎȯÀ¸¸»¤ò¼±Ê̤¹¤ë¡£ -¤³¤Îʸ»úÎó¤Ï¥³¥í¥ó¤Ç¶èÀÚ¤é¤ì¤¿ 2 ¤Ä¤ÎÉôʬ¤«¤é¹½À®¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -1 ¤ÄÌܤÎÉôʬ¤Ï 10 ʸ»ú°ÊÆâ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -2 ¤ÄÌܤÎÉôʬ¤Ï 14 ʸ»ú°ÊÆâ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数はメッセージの発生源を識別する。 +この文字列はコロンで区切られた 2 つの部分から構成されていなければならない。 +1 つ目の部分は 10 文字以内でなければならず、 +2 つ目の部分は 14 文字以内でなければならない。 .LP .\"O The .\"O .I text .\"O argument describes the condition of the error. .I text -°ú¤­¿ô¤Ë¤Ï¥¨¥é¡¼¾ò·ï¤òµ­½Ò¤¹¤ë¡£ +引き数にはエラー条件を記述する。 .LP .\"O The .\"O .I action .\"O argument describes possible steps to recover from the error. .\"O If it is printed, it is prefixed by "TO FIX: ". .I action -°ú¤­¿ô¤Ë¤Ï¥¨¥é¡¼¤«¤é²óÉü¤¹¤ë¤¿¤á¤ËÍøÍѲÄǽ¤Ê¥¹¥Æ¥Ã¥×¤òµ­½Ò¤¹¤ë¡£ -¤³¤ì¤¬É½¼¨¤µ¤ì¤ë¾ì¹ç¡¢"TO FIX: " ¤¬Á°¤ËÉÕ¤¯¡£ +引き数にはエラーから回復するために利用可能なステップを記述する。 +これが表示される場合、"TO FIX: " が前に付く。 .LP .\"O The .\"O .I tag @@ -81,30 +81,30 @@ fmtmsg \- .\"O .I label .\"O value and a unique identification number. .I tag -°ú¤­¿ô¤Ï¤è¤ê¿¤¯¤Î¾ðÊó¤ò¸«¤Ä¤±¤ë¤¿¤á¤Î¥ª¥ó¥é¥¤¥ó¥É¥­¥å¥á¥ó¥È¤Ø¤Î»²¾È¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï +引き数はより多くの情報を見つけるためのオンラインドキュメントへの参照である。 +これは .I label -Ãͤȥæ¥Ë¡¼¥¯¤Ê¼±ÊÌÈÖ¹æ¤ò´Þ¤ó¤Ç¤¤¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +値とユニークな識別番号を含んでいるべきである。 .\"O .SS "Dummy arguments" -.SS ¥À¥ß¡¼°ú¤­¿ô +.SS ダミー引き数 .\"O Each of the arguments can have a dummy value. .\"O The dummy classification value .\"O .B MM_NULLMC .\"O (0L) does not specify any output, so nothing is printed. -³Æ°ú¤­¿ô¤Ë¤Ï¥À¥ß¡¼¤ÎÃͤòÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥À¥ß¡¼¤Î +各引き数にはダミーの値を入れることができる。 +ダミーの .I classification -ÃÍ +値 .B MM_NULLMC -(0L) ¤Ï½ÐÎϤò²¿¤â»ØÄꤷ¤Ê¤¤¡£¤½¤Î¤¿¤á²¿¤âɽ¼¨¤µ¤ì¤Ê¤¤¡£ +(0L) は出力を何も指定しない。そのため何も表示されない。 .\"O The dummy severity value .\"O .B NO_SEV .\"O (0) says that no severity is supplied. -¥À¥ß¡¼¤Î +ダミーの .I severity -ÃÍ +値 .B NO_SEV -(0) ¤Ï½ÅÂçÅÙ (severity) ¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤òɽ¤¹¡£ +(0) は重大度 (severity) が与えられていないことを表す。 .\"O The values .\"O .BR MM_NULLLBL , .\"O .BR MM_NULLTXT , @@ -116,111 +116,111 @@ fmtmsg \- .\"O .B MM_NULLSEV .\"O is a synonym for .\"O .BR NO_SEV . -ÃÍ +値 .BR MM_NULLLBL , .BR MM_NULLTXT , .BR MM_NULLACT , .B MM_NULLTAG -¤Ï +は .I "((char *) 0)" -¤È¶õʸ»úÎó¤ÎÊÌ̾¤Ç¤¢¤ê¡¢ +と空文字列の別名であり、 .B MM_NULLSEV -¤Ï +は .B NO_SEV -¤ÎÊÌ̾¤Ç¤¢¤ë¡£ +の別名である。 .\"O .SS "The classification argument" -.SS "classification °ú¤­¿ô" +.SS "classification 引き数" .\"O The .\"O .I classification .\"O argument is the sum of values describing 4 types of information. .I classification -°ú¤­¿ô¤Ï 4 ¼ïÎà¤Î¾ðÊó¤òµ­½Ò¤¹¤ëÃͤÎϤǤ¢¤ë¡£ +引き数は 4 種類の情報を記述する値の和である。 .br .sp .\"O The first value defines the output channel. -ºÇ½é¤ÎÃͤϽÐÎÏ¥Á¥ã¥ó¥Í¥ë¤òÄêµÁ¤¹¤ë¡£ +最初の値は出力チャンネルを定義する。 .TP 12n .B MM_PRINT .\"O Output to .\"O .IR stderr . .I stderr -¤Ë½ÐÎϤ¹¤ë¡£ +に出力する。 .TP .B MM_CONSOLE .\"O Output to the system console. -¥·¥¹¥Æ¥à¥³¥ó¥½¡¼¥ë¤Ë½ÐÎϤ¹¤ë¡£ +システムコンソールに出力する。 .TP .B "MM_PRINT | MM_CONSOLE" .\"O Output to both. -ξÊý¤Ë½ÐÎϤ¹¤ë¡£ +両方に出力する。 .PP .\"O The second value is the source of the error: -2 ÈÖÌܤÎÃͤϥ¨¥é¡¼¤ÎȯÀ¸¸»¤Ç¤¢¤ë: +2 番目の値はエラーの発生源である: .TP 12n .B MM_HARD .\"O A hardware error occurred. -¥Ï¡¼¥É¥¦¥§¥¢¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£ +ハードウェアエラーが起こった。 .TP .B MM_FIRM .\"O A firmware error occurred. -¥Õ¥¡¡¼¥à¥¦¥§¥¢¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£ +ファームウェアエラーが起こった。 .TP .B MM_SOFT .\"O A software error occurred. -¥½¥Õ¥È¥¦¥§¥¢¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£ +ソフトウェアエラーが起こった。 .PP .\"O The third value encodes the detector of the problem: -3 ÈÖÌܤÎÃͤÏÌäÂê¤Î¸¡ÃΤò¹Ô¤Ã¤¿¤â¤Î¤ò¥¨¥ó¥³¡¼¥É¤¹¤ë: +3 番目の値は問題の検知を行ったものをエンコードする: .TP 12n .B MM_APPL .\"O It is detected by an application. -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤è¤Ã¤Æ¸¡ÃΤµ¤ì¤¿¡£ +アプリケーションによって検知された。 .TP .B MM_UTIL .\"O It is detected by a utility. -¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ë¤è¤Ã¤Æ¸¡ÃΤµ¤ì¤¿¡£ +ユーティリティによって検知された。 .TP .B MM_OPSYS .\"O It is detected by the operating system. -¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¸¡ÃΤµ¤ì¤¿¡£ +オペレーティングシステムによって検知された。 .PP .\"O The fourth value shows the severity of the incident: -4 ÈÖÌܤÎÃͤÏÌäÂê¤Î½ÅÂçÅÙ¤òɽ¤¹: +4 番目の値は問題の重大度を表す: .TP 12n .B MM_RECOVER .\"O It is a recoverable error. -²óÉü²Äǽ¤Ê¥¨¥é¡¼¤Ç¤¢¤ë¡£ +回復可能なエラーである。 .TP .B MM_NRECOV .\"O It is a nonrecoverable error. -²óÉüÉÔ²Äǽ¤Ê¥¨¥é¡¼¤Ç¤¢¤ë¡£ +回復不可能なエラーである。 .\"O .SS "The severity argument" -.SS "severity °ú¤­¿ô" +.SS "severity 引き数" .\"O The .\"O .I severity .\"O argument can take one of the following values: .I severity -°ú¤­¿ô¤Ï°Ê²¼¤Î 1 ¤Ä¤ÎÃͤò¤È¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +引き数は以下の 1 つの値をとることができる。 .TP 12n .B MM_NOSEV .\"O No severity is printed. -½ÅÂçÅÙ¤Ïɽ¼¨¤µ¤ì¤Ê¤¤¡£ +重大度は表示されない。 .TP .B MM_HALT .\"O This value is printed as HALT. -¤³¤ÎÃÍ¤Ï HALT ¤È¤·¤Æɽ¼¨¤µ¤ì¤ë¡£ +この値は HALT として表示される。 .TP .B MM_ERROR .\"O This value is printed as ERROR. -¤³¤ÎÃÍ¤Ï ERROR ¤È¤·¤Æɽ¼¨¤µ¤ì¤ë¡£ +この値は ERROR として表示される。 .TP .B MM_WARNING .\"O This value is printed as WARNING. -¤³¤ÎÃÍ¤Ï WARNING ¤È¤·¤Æɽ¼¨¤µ¤ì¤ë¡£ +この値は WARNING として表示される。 .TP .B MM_INFO .\"O This value is printed as INFO. -¤³¤ÎÃÍ¤Ï INFO ¤È¤·¤Æɽ¼¨¤µ¤ì¤ë¡£ +この値は INFO として表示される。 .PP .\"O The numeric values are between 0 and 4. .\"O Using @@ -228,71 +228,71 @@ fmtmsg \- .\"O or the environment variable .\"O .B SEV_LEVEL .\"O you can add more levels and strings to print. -¿ôÃͤξì¹ç¤Ï 0 ¤«¤é 4 ¤Ç¤¢¤ë¡£ +数値の場合は 0 から 4 である。 .BR addseverity (3) -¤Þ¤¿¤Ï´Ä¶­ÊÑ¿ô +または環境変数 .B SEV_LEVEL -¤ò»È¤¦¤³¤È¤Ë¤è¤ê¡¢É½¼¨¤¹¤ë¥ì¥Ù¥ë¤Èʸ»úÎó¤ò¹¹¤ËÄɲäǤ­¤ë¡£ +を使うことにより、表示するレベルと文字列を更に追加できる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The function can return 4 values: -´Ø¿ô¤Ï 4 ¤Ä¤ÎÃͤòÊÖ¤¹: +関数は 4 つの値を返す: .TP 12n .B MM_OK .\"O Everything went smooth. -Á´¤Æ¤¬¤¦¤Þ¤¯¤¤¤Ã¤¿¡£ +全てがうまくいった。 .TP .B MM_NOTOK .\"O Complete failure. -´°Á´¤Ë¼ºÇÔ¤·¤¿¡£ +完全に失敗した。 .TP .B MM_NOMSG .\"O Error writing to .\"O .IR stderr . .I stderr -¤Ë½ñ¤­¹þ¤à¤È¤­¤Ë¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£ +に書き込むときにエラーが起こった。 .TP .B MM_NOCON .\"O Error writing to the console. -¥³¥ó¥½¡¼¥ë¤Ë½ñ¤­¹þ¤à¤È¤­¤Ë¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£ +コンソールに書き込むときにエラーが起こった。 .\"O .SH ENVIRONMENT -.SH ´Ä¶­ÊÑ¿ô +.SH 環境変数 .\"O The environment variable .\"O .B MSGVERB .\"O ("message verbosity") can be used to suppress parts of .\"O the output to .\"O .IR stderr . -´Ä¶­ÊÑ¿ô +環境変数 .B MSGVERB -("message verbosity") ¤Ï +("message verbosity") は .I stderr -¤Ø¤Î½ÐÎϤΰìÉô¤òÍÞÀ©¤¹¤ë¤Î¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +への出力の一部を抑制するのに使うことができる。 .\"O (It does not influence output to the console.) -(¥³¥ó¥½¡¼¥ë¤Ø¤Î½ÐÎϤˤϱƶÁ¤·¤Ê¤¤¡£) +(コンソールへの出力には影響しない。) .\"O When this variable is defined, is non-NULL, and is a colon-separated .\"O list of valid keywords, then only the parts of the message corresponding .\"O to these keywords is printed. -¤³¤ÎÊÑ¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¡¢NULL ¤Ç¤Ê¤¯¡¢ -¥³¥í¥ó¤Ç¶èÀÚ¤é¤ì¤¿Í­¸ú¤Ê¥­¡¼¥ï¡¼¥É¤Î¥ê¥¹¥È¤Ç¤¢¤ë¾ì¹ç¡¢ -¥­¡¼¥ï¡¼¥É¤ËÂбþ¤¹¤ë¥á¥Ã¥»¡¼¥¸¤Î°ìÉô¤Î¤ß¤¬É½¼¨¤µ¤ì¤ë¡£ +この変数が定義されて、NULL でなく、 +コロンで区切られた有効なキーワードのリストである場合、 +キーワードに対応するメッセージの一部のみが表示される。 .\"O Valid keywords are "label", "severity", "text", "action" and "tag". -Í­¸ú¤Ê¥­¡¼¥ï¡¼¥É¤Ï "label", "severity", "text", "action", "tag" ¤Ç¤¢¤ë¡£ +有効なキーワードは "label", "severity", "text", "action", "tag" である。 .PP .\"O The environment variable .\"O .B SEV_LEVEL .\"O can be used to introduce new severity levels. -´Ä¶­ÊÑ¿ô +環境変数 .B SEV_LEVEL -¤Ï¿·¤·¤¤½ÅÂçÅÙ¥ì¥Ù¥ë¤òƳÆþ¤¹¤ë¤Î¤Ë»ÈÍѤǤ­¤ë¡£ +は新しい重大度レベルを導入するのに使用できる。 .\"O By default, only the five severity levels described .\"O above are available. .\"O Any other numeric value would make .\"O .BR fmtmsg () .\"O print nothing. -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¾åµ­¤Î 5 ¤Ä¤Î½ÅÂçÅÙ¥ì¥Ù¥ë¤Î¤ß¤¬ÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -¾¤Î¿ôÃͤξì¹ç¡¢ +デフォルトでは、上記の 5 つの重大度レベルのみが利用可能である。 +他の数値の場合、 .BR fmtmsg () -¤Ï²¿¤âɽ¼¨¤·¤Ê¤¤¡£ +は何も表示しない。 .\"O If the user puts .\"O .B SEV_LEVEL .\"O with a format like @@ -315,36 +315,36 @@ fmtmsg \- .\"O the standard levels 0-4), and use the indicated printstring when .\"O such a level occurs. .BR fmtmsg () -¤ò½é¤á¤Æ¸Æ¤Ó½Ð¤¹Á°¤Ë¡¢¥æ¡¼¥¶¤¬ +を初めて呼び出す前に、ユーザが .B SEV_LEVEL -¤ò +を .sp .RS SEV_LEVEL=[description[:description[:...]]] .RE .sp -¤Î¤è¤¦¤Ê·Á¼°¤Ç¥×¥í¥»¥¹¤Î´Ä¶­¤ËÀßÄꤹ¤ë¤È¡¢ +のような形式でプロセスの環境に設定すると、 .BR fmtmsg () -¤Ï (ɸ½à¤Î¥ì¥Ù¥ë 0-4 ¤Ë²Ã¤¨¤Æ) level ¤Ë»ØÄꤵ¤ì¤¿Ãͤâ¼õ¤±ÉÕ¤±¡¢ -¤½¤Î¤è¤¦¤Ê¥ì¥Ù¥ë¤ÎÌäÂ꤬ȯÀ¸¤¹¤ë¤È»ØÄꤵ¤ì¤¿ printstring ¤òɽ¼¨¤¹¤ë¡£ -³Æ description ¤Ï +は (標準のレベル 0-4 に加えて) level に指定された値も受け付け、 +そのようなレベルの問題が発生すると指定された printstring を表示する。 +各 description は .sp .RS severity-keyword,level,printstring .RE .sp -¤È¤¤¤¦·Á¼°¤Ç¤¢¤ë¡£ +という形式である。 .LP .\"O The severity-keyword part is not used by .\"O .BR fmtmsg () .\"O but it has to be present. -severity-keyword Éô¤Ï +severity-keyword 部は .BR fmtmsg () -¤Ë»ÈÍѤµ¤ì¤Ê¤¤¤¬¡¢Â¸ºß¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +に使用されないが、存在しなければならない。 .\"O The level part is a string representation of a number. -level Éô¤Ï¿ôÃͤòʸ»úÎó¤Çɽ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +level 部は数値を文字列で表したものである。 .\"O The numeric value must be a number greater than 4. -¿ôÃÍ¤Ï 4 ¤è¤êÂ礭¤¤ÃͤǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +数値は 4 より大きい値でなければならない。 .\"O This value must be used in the severity argument of .\"O .BR fmtmsg () .\"O to select this class. @@ -353,22 +353,22 @@ level .\"O The printstring .\"O is the string printed when a message of this class is processed by .\"O .BR fmtmsg (). -¤³¤ÎÃÍ¤Ï +この値は .BR fmtmsg () -¤Î severity °ú¤­¿ô¤Ç»ÈÍѤµ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢¤³¤Î½ÅÂçÅÙ¤òÁªÂò¤¹¤ë¡£ -Á°¤â¤Ã¤ÆÀë¸À¤µ¤ì¤¿½ÅÂçÅÙ¤ò¾å½ñ¤­¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -printstring ¤Ï¡¢ -¤³¤Î½ÅÂçÅ٤Υá¥Ã¥»¡¼¥¸¤¬ +の severity 引き数で使用されなければならず、この重大度を選択する。 +前もって宣言された重大度を上書きすることはできない。 +printstring は、 +この重大度のメッセージが .BR fmtmsg () -¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤¿¾ì¹ç¤Ëɽ¼¨¤µ¤ì¤ëʸ»úÎó¤Ç¤¢¤ë¡£ +によって生成された場合に表示される文字列である。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR fmtmsg () .\"O is provided in glibc since version 2.1. .BR fmtmsg () -¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +は、バージョン 2.1 以降の glibc で提供されている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The functions .\"O .BR fmtmsg () .\"O and @@ -378,36 +378,36 @@ printstring .\"O and .\"O .B SEV_LEVEL .\"O come from System V. -´Ø¿ô +関数 .BR fmtmsg () -¤È +と .BR addseverity (3) -¤È´Ä¶­ÊÑ¿ô +と環境変数 .B MSGVERB -¤È +と .B SEV_LEVEL -¤Ï System V ¤ËͳÍ褷¤Æ¤¤¤ë¡£ +は System V に由来している。 .\"O The function .\"O .BR fmtmsg () .\"O and the environment variable .\"O .B MSGVERB .\"O are described in POSIX.1-2001. -´Ø¿ô +関数 .BR fmtmsg () -¤È´Ä¶­ÊÑ¿ô +と環境変数 .B MSGVERB -¤Ï POSIX.1-2001 ¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +は POSIX.1-2001 に記述されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O System V and UnixWare man pages tell us that these functions .\"O have been replaced by "pfmt() and addsev()" or by "pfmt(), .\"O vpfmt(), lfmt(), and vlfmt()", and will be removed later. -System V ¤È UnixWare ¤Î man ¥Ú¡¼¥¸¤Ë¤Ï¡¢ -¡Ö¤³¤ì¤é¤Î´Ø¿ô¤Ï "pfmt() ¤È addsev()" -¤Þ¤¿¤Ï "pfmt(), vpfmt(), lfmt(), vlfmt()" ¤ÇÃÖ¤­´¹¤¨¤é¤ì¤Æ¤ª¤ê¡¢ -¾­Íè¤Ïºï½ü¤µ¤ì¤ëͽÄê¤Ç¤¢¤ë¡×¤È½ñ¤«¤ì¤Æ¤¤¤ë¡£ +System V と UnixWare の man ページには、 +「これらの関数は "pfmt() と addsev()" +または "pfmt(), vpfmt(), lfmt(), vlfmt()" で置き換えられており、 +将来は削除される予定である」と書かれている。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .nf #include #include @@ -442,7 +442,7 @@ main(void) .fi .PP .\"O The output should be: -½ÐÎÏ¤Ï +出力は .nf util\-linux:mount: ERROR: unknown mount option @@ -450,22 +450,22 @@ main(void) .fi .\"O and after -¤Î¤è¤¦¤Ë¤Ê¤ê¡¢ +のようになり、 .nf MSGVERB=text:action; export MSGVERB .fi .\"O the output becomes: -¤ò¼Â¹Ô¤·¤¿¸å¤Ç¤Ï +を実行した後では .nf unknown mount option TO FIX: See mount(8). .fi -¤È¤Ê¤ë¡£ +となる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR addseverity (3), .BR perror (3) diff --git a/draft/man3/fnmatch.3 b/draft/man3/fnmatch.3 index fa9f1610..b261573e 100644 --- a/draft/man3/fnmatch.3 +++ b/draft/man3/fnmatch.3 @@ -30,18 +30,18 @@ .\" .TH FNMATCH 3 2000-10-15 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fnmatch \- match filename or pathname -fnmatch \- ¥Õ¥¡¥¤¥ë̾¤Þ¤¿¤Ï¥Ñ¥¹Ì¾¤Ø¤Î¥Þ¥Ã¥Á¤ò¹Ô¤¦ +fnmatch \- ファイル名またはパス名へのマッチを行う .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int fnmatch(const char *" "pattern" ", const char *" string ", int " flags ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR fnmatch () .\"O function checks whether the @@ -50,28 +50,28 @@ fnmatch \- .\"O .I pattern .\"O argument, which is a shell wildcard pattern. .BR fnmatch () -´Ø¿ô¤Ï +関数は .I strings -°ú¤­¿ô¤¬ +引き数が .I pattern -°ú¤­¿ô¤Ë¥Þ¥Ã¥Á¤¹¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ +引き数にマッチするかをチェックする。 .I pattern -¤Ë¤Ï¥·¥§¥ë¤Î¥ï¥¤¥ë¥É¥«¡¼¥É¥Ñ¥¿¡¼¥ó¤òÍ¿¤¨¤ë¡£ +にはシェルのワイルドカードパターンを与える。 .PP .\"O The .\"O .I flags .\"O argument modifies the behavior; it is the bitwise OR of zero or more .\"O of the following flags: .I flags -°ú¤­¿ô¤Ë¤è¤êÆ°ºî¤òÊѹ¹¤Ç¤­¤ë¡£ +引き数により動作を変更できる。 .I flags -¤Ï°Ê²¼¤Î¥Õ¥é¥°¤Î¥Ó¥Ã¥ÈËè¤Î OR ¤Ç»ØÄꤹ¤ë¡£ +は以下のフラグのビット毎の OR で指定する。 .TP .B FNM_NOESCAPE .\"O If this flag is set, treat backslash as an ordinary character, .\"O instead of an escape character. -¤³¤Î¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å (\\) ¤ò¥¨¥¹¥±¡¼¥×ʸ»ú -¤Ç¤Ï¤Ê¤¯Ä̾ï¤Îʸ»ú¤È¤·¤Æ°·¤¦¡£ +このフラグがセットされていると、バックスラッシュ (\\) をエスケープ文字 +ではなく通常の文字として扱う。 .TP .B FNM_PATHNAME .\"O If this flag is set, match a slash in @@ -80,13 +80,13 @@ fnmatch \- .\"O .I pattern .\"O and not by an asterisk (*) or a question mark (?) metacharacter, .\"O nor by a bracket expression ([]) containing a slash. -¤³¤Î¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢ +このフラグがセットされていると、 .I string -Ãæ¤Î¥¹¥é¥Ã¥·¥å (/) ¤ò +中のスラッシュ (/) を .I pattern -¤Ë¤¢¤ë¥¹¥é¥Ã¥·¥å¤½¤Î¤â¤Î¤Ë¤À¤±¥Þ¥Ã¥Á¤µ¤»¡¢ -¥¢¥¹¥¿¥ê¥¹¥¯ (*) ¤äµ¿ÌäÉä (?) ¤Î¥á¥¿¥­¥ã¥é¥¯¥¿¤ä¡¢ -¥¹¥é¥Ã¥·¥å¤ò´Þ¤à¥Ö¥é¥±¥Ã¥Èɽ¸½ ([]) ¤Ë¤Ï¥Þ¥Ã¥Á¤µ¤»¤Ê¤¤¡£ +にあるスラッシュそのものにだけマッチさせ、 +アスタリスク (*) や疑問符 (?) のメタキャラクタや、 +スラッシュを含むブラケット表現 ([]) にはマッチさせない。 .TP .B FNM_PERIOD .\"O If this flag is set, a leading period in @@ -98,20 +98,20 @@ fnmatch \- .\"O or if both .\"O .B FNM_PATHNAME .\"O is set and the period immediately follows a slash. -¤³¤Î¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢ +このフラグがセットされていると、 .I string -¤ÎÀèƬ¥Ô¥ê¥ª¥É (leading period) ¤Ï +の先頭ピリオド (leading period) は .I pattern -Ãæ¤Î¥Ô¥ê¥ª¥É¤½¤Î¤â¤Î¤Ë¤·¤«¥Þ¥Ã¥Á¤·¤Ê¤¤¡£ÀèƬ¥Ô¥ê¥ª¥É¤È¤Ï¡¢ +中のピリオドそのものにしかマッチしない。先頭ピリオドとは、 .I string -¤ÎºÇ½é¤Îʸ»ú°ÌÃ֤ˤ¢¤ë¥Ô¥ê¥ª¥É¤Î¤³¤È¤Ç¤¢¤ë¡£¤¿¤À¤· +の最初の文字位置にあるピリオドのことである。ただし .B FNM_PATHNAME -¥Õ¥é¥°¤¬Æ±»þ¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢¥¹¥é¥Ã¥·¥å¤Îľ¸å¤Ë³¤¯¥Ô¥ê¥ª¥É -¤âÀèƬ¥Ô¥ê¥ª¥É¤È¤ß¤Ê¤µ¤ì¤ë¡£ +フラグが同時にセットされている場合には、スラッシュの直後に続くピリオド +も先頭ピリオドとみなされる。 .TP .B FNM_FILE_NAME .\"O This is a GNU synonym for \fBFNM_PATHNAME\fR. -¤³¤ì¤Ï \fBFNM_PATHNAME\fR ¤ËÂФ¹¤ë GNU ¤Ç¤ÎƱµÁ¸ì¤Ç¤¢¤ë. +これは \fBFNM_PATHNAME\fR に対する GNU での同義語である. .TP .B FNM_LEADING_DIR .\"O If this flag (a GNU extension) is set, the pattern is considered to be @@ -120,20 +120,20 @@ fnmatch \- .\"O which is followed by a slash. .\"O This flag is mainly for the internal .\"O use of glibc and is only implemented in certain cases. -¤³¤Î¥Õ¥é¥°¤Ï GNU ¤Ç¤Î³ÈÄ¥¤Ç¤¢¤ë¡£¤³¤ì¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -¥Ñ¥¿¡¼¥ó¤¬ +このフラグは GNU での拡張である。これがセットされている場合には、 +パターンが .I string -¤ÎºÇ½é¤ÎÉôʬ (¤Ë¥¹¥é¥Ã¥·¥å¤òÉÕ¤±¤¿¤â¤Î) ¤Ë¥Þ¥Ã¥Á¤¹¤ì¤Ð¡¢ -¥Þ¥Ã¥Á¤·¤¿¤â¤Î¤È¤ß¤Ê¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï¼ç¤È¤·¤Æ glibc ¤ÇÆâÉôŪ¤Ë»ÈÍѤ·¡¢¤½¤Î¤¿¤á¤Î¤ß¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +の最初の部分 (にスラッシュを付けたもの) にマッチすれば、 +マッチしたものとみなされる。 +このフラグは主として glibc で内部的に使用し、そのためのみ実装されている。 .TP .B FNM_CASEFOLD .\"O If this flag (a GNU extension) is set, the pattern is matched .\"O case-insensitively. -¤³¤Î¥Õ¥é¥°¤Ï GNU ¤Ç¤Î³ÈÄ¥¤Ç¤¢¤ë¡£¤³¤ì¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -¥Ñ¥¿¡¼¥ó¤Î¥Þ¥Ã¥Á¤ËÂçʸ»ú¾®Ê¸»ú¤¬¶èÊ̤µ¤ì¤Ê¤¤¡£ +このフラグは GNU での拡張である。これがセットされている場合には、 +パターンのマッチに大文字小文字が区別されない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O Zero if .\"O .I string .\"O matches @@ -141,21 +141,21 @@ fnmatch \- .\"O .B FNM_NOMATCH .\"O if there is no match or another nonzero value if there is an error. .I string -¤¬ +が .I pattern -¤Ë¥Þ¥Ã¥Á¤¹¤ì¤Ð 0 ¤òÊÖ¤¹¡£¥Þ¥Ã¥Á¤·¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï +にマッチすれば 0 を返す。マッチしなかった場合には .B FNM_NOMATCH -¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï¤½¤ì°Ê³°¤ÎÈó¥¼¥íÃͤòÊÖ¤¹¡£ +を返す。エラーの場合にはそれ以外の非ゼロ値を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.2. .\"O The .\"O .BR FNM_FILE_NAME ", " FNM_LEADING_DIR ", and " FNM_CASEFOLD .\"O flags are GNU extensions. .BR FNM_FILE_NAME ", " FNM_LEADING_DIR ", " FNM_CASEFOLD -¥Õ¥é¥°¤Ï GNU ¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ +フラグは GNU の拡張である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sh (1), .BR glob (3), .BR scandir (3), diff --git a/draft/man3/fopen.3 b/draft/man3/fopen.3 index 62190d1a..936ed40a 100644 --- a/draft/man3/fopen.3 +++ b/draft/man3/fopen.3 @@ -51,17 +51,17 @@ .\" Updated 2005-10-15, Kentaro Shirakata .\" Updated 2006-07-20, Akihiro MOTOKI .\" -.\"WORD: file descriptor ¥Õ¥¡¥¤¥ëµ­½Ò»Ò -.\"WORD: file position indicator ¥Õ¥¡¥¤¥ë°ÌÃֻؼ¨»Ò -.\"WORD: indicator »Ø¼¨»Ò -.\"WORD: global variable Âç°èÊÑ¿ô -.\"WORD: cancellation points ¼è¤ê¾Ã¤·¥Ý¥¤¥ó¥È +.\"WORD: file descriptor ファイル記述子 +.\"WORD: file position indicator ファイル位置指示子 +.\"WORD: indicator 指示子 +.\"WORD: global variable 大域変数 +.\"WORD: cancellation points 取り消しポイント .\" .TH FOPEN 3 2009-02-23 "GNU" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 .\"O fopen, fdopen, freopen \- stream open functions -fopen, fdopen, freopen \- ¥¹¥È¥ê¡¼¥à¤ò³«¤¯´Ø¿ô -.SH ½ñ¼° +fopen, fdopen, freopen \- ストリームを開く関数 +.SH 書式 .nf .B #include .sp @@ -75,79 +75,79 @@ fopen, fdopen, freopen \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR fdopen (): _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR fopen () .\"O function opens the file whose name is the string pointed to by .\"O .I path .\"O and associates a stream with it. .BR fopen () -´Ø¿ô¤Ï¡¢ +関数は、 .I path -¤Ç»ØÄꤵ¤ì¤¿Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤ò³«¤­¡¢¥¹¥È¥ê¡¼¥à¤È·ë¤Ó¤Ä¤±¤ë¡£ +で指定された名前のファイルを開き、ストリームと結びつける。 .PP .\"O The argument .\"O .I mode .\"O points to a string beginning with one of the following sequences .\"O (Additional characters may follow these sequences.): -°ú¿ô +引数 .I mode -¤Ï¡¢°Ê²¼¤Ë³¤¯Ê¸»ú¤Î¤Ò¤È¤Ä¤«¤é»Ï¤Þ¤ëʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë -(ÄɲäÎʸ»ú¤¬¤³¤Îʸ»ú¤Î¸å¤Ë³¤¯¤³¤È¤â¤¢¤ë): +は、以下に続く文字のひとつから始まる文字列へのポインタである +(追加の文字がこの文字の後に続くこともある): .TP .B r .\"O Open text file for reading. .\"O The stream is positioned at the beginning of the file. -¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤òÆɤ߽Ф¹¤¿¤á¤Ë³«¤¯¡£ -¥¹¥È¥ê¡¼¥à¤Ï¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤Ë°ÌÃÖ¤µ¤ì¤ë¡£ +テキストファイルを読み出すために開く。 +ストリームはファイルの先頭に位置される。 .TP .B r+ .\"O Open for reading and writing. .\"O The stream is positioned at the beginning of the file. -Æɤ߽Ф·¤ª¤è¤Ó½ñ¤­¹þ¤ß¤¹¤ë¤¿¤á¤Ë³«¤¯¡£ -¥¹¥È¥ê¡¼¥à¤Ï¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤Ë°ÌÃÖ¤µ¤ì¤ë¡£ +読み出しおよび書き込みするために開く。 +ストリームはファイルの先頭に位置される。 .TP .B w .\"O Truncate file to zero length or create text file for writing. .\"O The stream is positioned at the beginning of the file. -¥Õ¥¡¥¤¥ë¤ò½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë³«¤¯¡£ -¥Õ¥¡¥¤¥ë¤¬´û¤Ë¸ºß¤¹¤ë¾ì¹ç¤Ë¤ÏŤµ¥¼¥í¤ËÀÚ¤êµÍ¤á¤ë¡£ -¥Õ¥¡¥¤¥ë¤¬¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¿·¤¿¤ËºîÀ®¤¹¤ë¡£ -¥¹¥È¥ê¡¼¥à¤Ï¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤Ë°ÌÃÖ¤µ¤ì¤ë¡£ +ファイルを書き込みのために開く。 +ファイルが既に存在する場合には長さゼロに切り詰める。 +ファイルがなかった場合には新たに作成する。 +ストリームはファイルの先頭に位置される。 .TP .B w+ .\"O Open for reading and writing. .\"O The file is created if it does not exist, otherwise it is truncated. .\"O The stream is positioned at the beginning of the file. -Æɤ߽Ф·¤ª¤è¤Ó½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë³«¤¯¡£ -¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¿·¤¿¤ËºîÀ®¤¹¤ë¡£ -¸ºß¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤ÏŤµ¥¼¥í¤ËÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ -¥¹¥È¥ê¡¼¥à¤Ï¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤Ë°ÌÃÖ¤µ¤ì¤ë¡£ +読み出しおよび書き込みのために開く。 +ファイルが存在していない場合には新たに作成する。 +存在している場合には長さゼロに切り詰められる。 +ストリームはファイルの先頭に位置される。 .TP .B a .\"O Open for appending (writing at end of file). .\"O The file is created if it does not exist. .\"O The stream is positioned at the end of the file. -Äɲà (¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤Ë½ñ¤­¹þ¤à) ¤Î¤¿¤á¤Ë³«¤¯¡£ -¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¿·¤¿¤ËºîÀ®¤¹¤ë¡£ -¥¹¥È¥ê¡¼¥à¤Ï¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤Ë°ÌÃÖ¤µ¤ì¤ë¡£ +追加 (ファイルの最後に書き込む) のために開く。 +ファイルが存在していない場合には新たに作成する。 +ストリームはファイルの最後に位置される。 .TP .B a+ .\"O Open for reading and appending (writing at end of file). .\"O The file is created if it does not exist. .\"O The initial file position for reading is at the beginning of the file, .\"O but output is always appended to the end of the file. -Æɤ߽Ф·¤ª¤è¤ÓÄɲà (¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤Ë½ñ¤­¹þ¤à) ¤Î¤¿¤á¤Ë³«¤¯¡£ -¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¿·¤¿¤ËºîÀ®¤¹¤ë¡£ -Æɤ߽Ф·¤Î½é´ü¥Õ¥¡¥¤¥ë°ÌÃ֤ϥե¡¥¤¥ë¤ÎÀèƬ¤Ç¤¢¤ë¤¬¡¢ -½ñ¤­¹þ¤ß¤Ï¾ï¤Ë¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤ËÄɲ䵤ì¤ë¡£ +読み出しおよび追加 (ファイルの最後に書き込む) のために開く。 +ファイルが存在していない場合には新たに作成する。 +読み出しの初期ファイル位置はファイルの先頭であるが、 +書き込みは常にファイルの最後に追加される。 .PP .\"O The .\"O .I mode @@ -158,38 +158,38 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O and has no effect; the \(aqb\(aq is ignored on all POSIX .\"O conforming systems, including Linux. .I mode -ʸ»úÎó¤Ë¤Ïʸ»ú \(aqb\(aq ¤òÄɲûØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¡¢ +文字列には文字 \(aqb\(aq を追加指定することができ、 .I mode -ʸ»úÎó¤ÎºÇ¸å¤Îʸ»ú¤È¤·¤Æ»ØÄꤹ¤ë¡£ -¾åµ­¤Î¤¦¤Á 2 ʸ»ú¤Î¥â¡¼¥É¤Î¾ì¹ç¤Ë¤Ï 2 ¤Ä¤Îʸ»ú¤Î´Ö¤Ë»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¤³¤ì¤Ï C89 ¤È¤Î¸ß´¹À­¤Î¤¿¤á¤À¤±¤ËÍÑ°Õ¤µ¤ì¤¿ -¤â¤Î¤Ç¤¢¤ê¡¢´Ø¿ô¤Î¼Â¹Ô¤ËÂФ·¤Æ¤Ï¤¤¤«¤Ê¤ë±Æ¶Á¤â»ý¤¿¤Ê¤¤¡£ -¤¹¤Ê¤ï¤Á¡¢Linux ¤ò´Þ¤àÁ´¤Æ¤Î POSIX ½àµò¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -¤³¤Î \(aqb\(aq ¤Ï̵»ë¤µ¤ì¤ë¡£ +文字列の最後の文字として指定する。 +上記のうち 2 文字のモードの場合には 2 つの文字の間に指定することもできる。 +これは C89 との互換性のためだけに用意された +ものであり、関数の実行に対してはいかなる影響も持たない。 +すなわち、Linux を含む全ての POSIX 準拠システムでは、 +この \(aqb\(aq は無視される。 .\"O (Other systems may treat text files and binary files differently, .\"O and adding the \(aqb\(aq may be a good idea if you do I/O to a binary .\"O file and expect that your program may be ported to non-UNIX .\"O environments.) -(¤½¤Î¾¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤È¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤òÊÌ¡¹¤Ë°·¤¦¤â¤Î¤â¤¢¤ë¤Î¤Ç¡¢ -¤â¤·¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤ÎÆþ½ÐÎϤò¹Ô¤¤¡¢ -¤½¤Î¥×¥í¥°¥é¥à¤¬Èó UNIX ´Ä¶­¤Ø°Ü¿¢¤µ¤ì¤ë¤Èͽ¬¤¹¤ë¤Ê¤é¡¢ -\(aqb\(aq¤òÉÕ¤±¤Æ¤ª¤¯¤Î¤ÏÎɤ¤¹Í¤¨¤Ç¤¢¤ë) +(その他のシステムではテキストファイルとバイナリファイルを別々に扱うものもあるので、 +もしバイナリファイルの入出力を行い、 +そのプログラムが非 UNIX 環境へ移植されると予測するなら、 +\(aqb\(aqを付けておくのは良い考えである) .PP .\"O See NOTES below for details of glibc extensions for .\"O .IR mode . .I mode -¤Î glibc ¤Ë¤è¤ë³ÈÄ¥¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï²¼µ­¤Î¡ÖÃí°Õ¡×¤ò»²¾È¡£ +の glibc による拡張の詳細については下記の「注意」を参照。 .PP .\"O Any created files will have mode .\"O .BR S_IRUSR " | " S_IWUSR " | " S_IRGRP " | " S_IWGRP " | " S_IROTH " | " S_IWOTH .\"O (0666), as modified by the process's umask value (see .\"O .BR umask (2)). -¤¹¤Ù¤Æ¤ÎÀ¸À®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ï¡¢ +すべての生成されたファイルは、 .BR S_IRUSR " | " S_IWUSR " | " S_IRGRP " | " S_IWGRP " | " S_IROTH " | " S_IWOTH -(0666) ¤Î¥â¡¼¥É¤ò -¤½¤Î¥×¥í¥»¥¹¤Î umask Ãͤˤè¤Ã¤Æ½¤Àµ¤·¤¿¥â¡¼¥É¤ò»ý¤Ä +(0666) のモードを +そのプロセスの umask 値によって修正したモードを持つ .RB ( umask (2) -¤ò¸«¤è)¡£ +を見よ)。 .PP .\"O Reads and writes may be intermixed on read/write streams in any order. .\"O Note that ANSI C requires that a file positioning function intervene @@ -205,23 +205,23 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O This operation may be an apparent no-op .\"O (as in \fIfseek(..., 0L, SEEK_CUR)\fP .\"O called for its synchronizing side effect. -Æɤ߽Ф·/½ñ¤­¹þ¤ß¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ¤ÏǤ°Õ¤Î½ç½ø¤ÇÆɤ߽ñ¤­¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¤¿¤À¤· ANSI C ¤Ç¤Ï¡¢ -(ÆþÎÏÁàºî¤¬¥Õ¥¡¥¤¥ë¤ÎËöÈø¤ËÅþ㤷¤¿¾ì¹ç¤ò½ü¤¤¤Æ) -½ÐÎϤÈÆþÎϤδ֤ˤϥե¡¥¤¥ë¤Î°ÌÃÖ·è¤á´Ø¿ô¤ò -¶´¤Þ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤ËÃí°Õ¤µ¤ì¤¿¤¤ -(¤³¤Î¾ò·ï¤òËþ­¤·¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢Æɤ߹þ¤ßÁàºî¤Ï¡¢ -ºÇ¸å¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¤â¤Î¤Ç¤Ê¤¯¡¢°ÊÁ°¤Ë½ñ¤­¹þ¤Þ¤ì¤¿ -ÃͤòÊÖ¤¹¤³¤È¤òµö¤µ¤ì¤Æ¤¤¤ë)¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¤³¤Î¤è¤¦¤Ê¥¹¥È¥ê¡¼¥à¤Ç¤ÎÆɤ߽ñ¤­Áàºî¤Î´Ö¤Ë¤Ï +読み出し/書き込みストリームに対しては任意の順序で読み書きを行うことができる。 +ただし ANSI C では、 +(入力操作がファイルの末尾に到達した場合を除いて) +出力と入力の間にはファイルの位置決め関数を +挟まなければならないことになっていることに注意されたい +(この条件を満足しない場合には、読み込み操作は、 +最後に書き込まれたものでなく、以前に書き込まれた +値を返すことを許されている)。 +したがって、このようなストリームでの読み書き操作の間には .BR fseek (3) -¤Þ¤¿¤Ï +または .BR fgetpos (3) -Áàºî¤ò¶´¤ó¤Ç¤ª¤¯¤ÈÎɤ¤¤À¤í¤¦ -(Linux ¤Ç¤ÏËÜÅö¤ËɬÍפȤʤ뤳¤È¤â¤È¤­¤É¤­¤¢¤ë)¡£ -¤³¤ÎÁàºî¤Ï¸«¤«¤±¾å²¿¤â¤·¤Ê¤¤Áàºî (no-op) ¤Ç¤âÎɤ¤ -(Î㤨¤Ð \fIfseek(..., 0L, SEEK_CUR)\fP ¤ò -¤½¤ÎÉû¼¡Åª¸ú²Ì¤Ç¤¢¤ëƱ´ü¤Î¤¿¤á¤À¤±¤Ë¸Æ¤Ù¤ÐÎɤ¤)¡£ +操作を挟んでおくと良いだろう +(Linux では本当に必要となることもときどきある)。 +この操作は見かけ上何もしない操作 (no-op) でも良い +(例えば \fIfseek(..., 0L, SEEK_CUR)\fP を +その副次的効果である同期のためだけに呼べば良い)。 .PP .\"O Opening a file in append mode (\fBa\fP as the first character of .\"O .IR mode ) @@ -233,43 +233,43 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O .fi .\"O .PP .\"O call. -¥Õ¥¡¥¤¥ë¤òÄɲå⡼¥É +ファイルを追加モード .RI ( mode -¤ÎºÇ½é¤Îʸ»ú¤ò \fBa\fP ¤Ë¤¹¤ë) ¤Ç³«¤¯¤È¡¢ -¤³¤Î¥¹¥È¥ê¡¼¥à¤ËÂФ¹¤ë½ñ¤­¹þ¤ßÁàºî¤Ï (Àè¤Ë +の最初の文字を \fBa\fP にする) で開くと、 +このストリームに対する書き込み操作は (先に .nf fseek(stream,0,SEEK_END); .fi -¤Î¸Æ¤Ó½Ð¤·¤ò¼Â¹Ô¤·¤¿¤«¤Î¤è¤¦¤Ë) ¥Õ¥¡¥¤¥ëËöÈø¤ËÂФ·¤Æ¹Ô¤ï¤ì¤ë¡£ +の呼び出しを実行したかのように) ファイル末尾に対して行われる。 .PP .\"O The .\"O .BR fdopen () .\"O function associates a stream with the existing file descriptor, .\"O .IR fd . .BR fdopen () -´Ø¿ô¤Ï¡¢´û¸¤Î¥Õ¥¡¥¤¥ëµ­½Ò»Ò +関数は、既存のファイル記述子 .I fd -¤Ë¥¹¥È¥ê¡¼¥à¤ò·ë¤Ó¤Ä¤±¤ë¡£ +にストリームを結びつける。 .\"O The .\"O .I mode .\"O of the stream (one of the values "r", "r+", "w", "w+", "a", "a+") .\"O must be compatible with the mode of the file descriptor. -¥¹¥È¥ê¡¼¥à¤Î +ストリームの .I mode -("r", "r+", "w", "w+", "a", "a+" ¤Î¤¤¤º¤ì¤«) ¤Ï -¥Õ¥¡¥¤¥ëµ­½Ò»Ò¤Î¥â¡¼¥É¤È¸ß´¹¤Î¤â¤Î¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +("r", "r+", "w", "w+", "a", "a+" のいずれか) は +ファイル記述子のモードと互換のものでなければならない。 .\"O The file position indicator of the new stream is set to that .\"O belonging to .\"O .IR fd , .\"O and the error and end-of-file indicators are cleared. .\"O Modes "w" or "w+" do not cause truncation of the file. -¿·¤·¤¤¥¹¥È¥ê¡¼¥à¤Î¥Õ¥¡¥¤¥ë°ÌÃֻؼ¨»Ò¤Ï +新しいストリームのファイル位置指示子は .I fd -¤Ë°¤·¤Æ¤¤¤ëÃͤËÀßÄꤵ¤ì¤ë¡£ -error ¤È end-of-file ¤Î³Æ»Ø¼¨»Ò¤Ï¥¯¥ê¥¢¤µ¤ì¤ë¡£ -"w" ¤ª¤è¤Ó "w+" ¥â¡¼¥É¤Ç¤Î¥Õ¥¡¥¤¥ë¤ÎÀÚ¤êµÍ¤á¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ +に属している値に設定される。 +error と end-of-file の各指示子はクリアされる。 +"w" および "w+" モードでのファイルの切り詰めは行われない。 .\"O The file descriptor is not dup'ed, and will be closed when .\"O the stream created by .\"O .BR fdopen () @@ -277,13 +277,13 @@ error .\"O The result of applying .\"O .BR fdopen () .\"O to a shared memory object is undefined. -¥Õ¥¡¥¤¥ëµ­½Ò»Ò¤ÎÊ£À½¤Ï¹Ô¤Ê¤ï¤ì¤Ê¤¤¡£ +ファイル記述子の複製は行なわれない。 .BR fdopen () -¤ÇºîÀ®¤µ¤ì¤¿¥¹¥È¥ê¡¼¥à¤¬ÊĤ¸¤é¤ì¤¿¤È¤­¤Ë¥Õ¥¡¥¤¥ëµ­½Ò»Ò¤â -ÊĤ¸¤é¤ì¤ë¡£ -¶¦Í­¥á¥â¥ê¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ø +で作成されたストリームが閉じられたときにファイル記述子も +閉じられる。 +共有メモリのオブジェクトへ .BR fdopen () -¤ò¹Ô¤Ã¤¿¤È¤­¤Î·ë²Ì¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +を行ったときの結果は定義されていない。 .PP .\"O The .\"O .BR freopen () @@ -303,21 +303,21 @@ error .\"O function is to change the file associated with a standard text stream .\"O .RI ( stderr ", " stdin ", or " stdout ). .BR freopen () -´Ø¿ô¤Ï +関数は .I path -¤Ç̾Á°¤¬»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ò³«¤­¡¢ +で名前が指定されたファイルを開き、 .I stream -¤Ç»ØÄꤵ¤ì¤¿¥¹¥È¥ê¡¼¥à¤Ë¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤ò·ë¤Ó¤Ä¤±¤ë¡£ -¤â¤È¤Î¥¹¥È¥ê¡¼¥à¤Ï (¤â¤·Â¸ºß¤¹¤ë¾ì¹ç¤Ë¤Ï) ÊĤ¸¤é¤ì¤ë¡£ +で指定されたストリームに、そのファイルを結びつける。 +もとのストリームは (もし存在する場合には) 閉じられる。 .I mode -°ú¿ô¤Ï +引数は .BR fopen () -´Ø¿ô¤ÈƱ¤¸·Á¤Ç»È¤ï¤ì¤ë¡£ +関数と同じ形で使われる。 .BR freopen () -´Ø¿ô¤Î¼ç¤ÊÍÑÅӤϡ¢É¸½à¥Æ¥­¥¹¥È¥¹¥È¥ê¡¼¥à +関数の主な用途は、標準テキストストリーム .RI ( stderr ", " stdin ", " stdout ) -¤ÈÂбþÉÕ¤±¤é¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤òÊѹ¹¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +と対応付けられているファイルを変更することである。 +.SH 返り値 .\"O Upon successful completion .\"O .BR fopen (), .\"O .BR fdopen () @@ -332,13 +332,13 @@ error .BR fopen (), .BR fdopen (), .BR freopen () -¤ÏÀ®¸ù¤¹¤ë¤È +は成功すると .I FILE -·¿¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¼ºÇÔ¤¹¤ë¤È NULL ¤¬ÊÖ¤µ¤ì¡¢ +型のポインタを返す。 +失敗すると NULL が返され、 .I errno -¤¬¥¨¥é¡¼¤ò¼¨¤¹Ãͤ˥»¥Ã¥È¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +がエラーを示す値にセットされる。 +.SH エラー .TP .B EINVAL .\"O The @@ -352,9 +352,9 @@ error .BR fopen (), .BR fdopen (), .BR freopen () -¤ÇÍ¿¤¨¤é¤ì¤¿ +で与えられた .I mode -¤¬ÉÔŬÀڤǤ¢¤ë¡£ +が不適切である。 .PP .\"O The .\"O .BR fopen (), @@ -368,12 +368,12 @@ error .BR fopen (), .BR fdopen (), .BR freopen () -´Ø¿ô¤Ï +関数は .BR malloc (3) -¥ë¡¼¥Á¥ó¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ç¤â¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ê¡¢ -¤½¤Î»þ¤ÏÂбþ¤¹¤ëÃÍ¤Ë +ルーチンで規定されているエラーでも失敗することがあり、 +その時は対応する値に .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ +をセットする。 .PP .\"O The .\"O .BR fopen () @@ -382,12 +382,12 @@ error .\"O for any of the errors specified for the routine .\"O .BR open (2). .BR fopen () -´Ø¿ô¤Ï +関数は .BR open (2) -¥ë¡¼¥Á¥ó¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ç¤â¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ê¡¢ -¤½¤Î»þ¤ÏÂбþ¤¹¤ëÃÍ¤Ë +ルーチンで規定されているエラーでも失敗することがあり、 +その時は対応する値に .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ +をセットする。 .PP .\"O The .\"O .BR fdopen () @@ -396,12 +396,12 @@ error .\"O for any of the errors specified for the routine .\"O .BR fcntl (2). .BR fdopen () -´Ø¿ô¤Ï +関数は .BR fcntl (2) -¥ë¡¼¥Á¥ó¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ç¤â¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ê¡¢ -¤½¤Î»þ¤ÏÂбþ¤¹¤ëÃÍ¤Ë +ルーチンで規定されているエラーでも失敗することがあり、 +その時は対応する値に .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ +をセットする。 .PP .\"O The .\"O .BR freopen () @@ -413,15 +413,15 @@ error .\"O and .\"O .BR fflush (3). .BR freopen () -´Ø¿ô¤Ï +関数は .BR open (2), .BR fclose (3), .BR fflush (3) -³Æ¥ë¡¼¥Á¥ó¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ç¤â¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ê¡¢ -¤½¤Î»þ¤ÏÂбþ¤¹¤ëÃÍ¤Ë +各ルーチンで規定されているエラーでも失敗することがあり、 +その時は対応する値に .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ -.SH ½àµò +をセットする。 +.SH 準拠 .\"O The .\"O .BR fopen () .\"O and @@ -431,32 +431,32 @@ error .\"O .BR fdopen () .\"O function conforms to POSIX.1-1990. .BR fopen () -´Ø¿ô¤È +関数と .BR freopen () -´Ø¿ô¤Ï C89¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +関数は C89に準拠している。 .BR fdopen () -´Ø¿ô¤Ï POSIX.1-1990 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +関数は POSIX.1-1990 に準拠している。 .\"O .SH NOTES .\"O .SS Glibc Notes -.SH Ãí°Õ -.SS glibc ¤Ç¤ÎÃí°Õ +.SH 注意 +.SS glibc での注意 .\"O The GNU C library allows the following extensions for the string specified in .\"O .IR mode : -GNU C ¥é¥¤¥Ö¥é¥ê¤Ç¤Ï¡¢ +GNU C ライブラリでは、 .I mode -¤Ë»ØÄê¤Ç¤­¤ëʸ»úÎó¤È¤·¤Æ¡¢°Ê²¼¤Î³ÈÄ¥¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë: +に指定できる文字列として、以下の拡張が行われている: .TP .\"O .BR c " (since glibc 2.3.3)" -.BR c " (glibc 2.3.3 °Ê¹ß)" +.BR c " (glibc 2.3.3 以降)" .\"O Do not make the open operation, .\"O or subsequent read and write operations, .\"O thread cancellation points. -open Áàºî¡¢¤½¤ì¤Ë³¤¯ read/write Áàºî¤Î¡¢ -¥¹¥ì¥Ã¥É¤Î¼è¤ê¾Ã¤·¥Ý¥¤¥ó¥È (cancellation points) -¤òºîÀ®¤·¤Ê¤¤¡£ +open 操作、それに続く read/write 操作の、 +スレッドの取り消しポイント (cancellation points) +を作成しない。 .TP .\"O .BR e " (since glibc 2.7)" -.BR e " (glibc 2.7 °Ê¹ß)" +.BR e " (glibc 2.7 以降)" .\"O Open the file with the .\"O .B O_CLOEXEC .\"O flag. @@ -464,13 +464,13 @@ open .\"O .BR open (2) .\"O for more information. .B O_CLOEXEC -¥Õ¥é¥°¤òÍ­¸ú¤Ë¤·¤Æ¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£ -¾ÜºÙ¤Ï +フラグを有効にしてファイルをオープンする。 +詳細は .BR open (2) -¤ò»²¾È¡£ +を参照。 .TP .\"O .BR m " (since glibc 2.3)" -.BR m " (glibc 2.3 °Ê¹ß)" +.BR m " (glibc 2.3 以降)" .\"O Attempt to access the file using .\"O .BR mmap (2), .\"O rather than I/O system calls @@ -481,15 +481,15 @@ open .\"O use of .\"O .BR mmap (2) .\"O is only attempted for a file opened for reading. -I/O ¥·¥¹¥Æ¥à¥³¡¼¥ë +I/O システムコール .RB ( read (2), .BR write (2)) -¤Ç¤Ï¤Ê¤¯¡¢ +ではなく、 .BR mmap (2) -¤ò»È¤Ã¤Æ¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤·¤è¤¦¤È¤¹¤ë¡£ -.\" glibc 2.4 ¤Ç¤Ï +を使ってファイルにアクセスしようとする。 +.\" glibc 2.4 では .BR mmap (2) -¤ò»È¤ª¤¦¤È¤¹¤ë¤Î¤Ï¡¢Æɤ߽Ф·ÍѤ˥ª¡¼¥×¥ó¤¹¤ë¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¤À¤±¤Ç¤¢¤ë¡£ +を使おうとするのは、読み出し用にオープンするファイルについてだけである。 .TP .B x .\"O Open the file exclusively @@ -503,26 +503,26 @@ I/O .\"O .I errno .\"O to .\"O .BR EEXIST . -¥Õ¥¡¥¤¥ë¤òÇÓ¾Ū¤Ë¥ª¡¼¥×¥ó¤¹¤ë +ファイルを排他的にオープンする .RB ( open (2) -¤Î +の .B O_EXCL -¥Õ¥é¥°¤ÈƱÍÍ)¡£ -¥Õ¥¡¥¤¥ë¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢ +フラグと同様)。 +ファイルがすでに存在する場合、 .BR fopen () -¤Ï¼ºÇÔ¤·¡¢ +は失敗し、 .I errno -¤Ë +に .B EEXIST -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .\"O This flag is ignored for .\"O .BR fdopen (). -¤³¤Î¥Õ¥é¥°¤Ï +このフラグは .BR fdopen () -¤Ç¤Ï̵»ë¤µ¤ì¤ë¡£ +では無視される。 .\" FIXME document /,ccs= charset/ .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR open (2), .BR fclose (3), .BR fileno (3), diff --git a/draft/man3/fpathconf.3 b/draft/man3/fpathconf.3 index 2a380f17..5f48a9e0 100644 --- a/draft/man3/fpathconf.3 +++ b/draft/man3/fpathconf.3 @@ -27,11 +27,11 @@ .\" .TH FPATHCONF 3 1993-04-04 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fpathconf, pathconf \- get configuration values for files -fpathconf, pathconf \- ¥Õ¥¡¥¤¥ë¤ÎÀßÄêÃͤò¼èÆÀ¤¹¤ë +fpathconf, pathconf \- ファイルの設定値を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -40,18 +40,18 @@ fpathconf, pathconf \- .BI "long pathconf(char *" path ", int " name ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR fpathconf () .\"O gets a value for the configuration option .\"O .I name .\"O for the open file descriptor .\"O .IR fd . .BR fpathconf () -¤Ï¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¡¼ +はオープンされているファイルデスクリプター .I fd -¤ËÂФ·¤ÆÀßÄꤵ¤ì¤Æ¤¤¤ë¥ª¥×¥·¥ç¥ó +に対して設定されているオプション .I name -¤ÎÃͤò¼èÆÀ¤¹¤ë¡£ +の値を取得する。 .PP .\"O .BR pathconf () .\"O gets a value for configuration option @@ -59,11 +59,11 @@ fpathconf, pathconf \- .\"O for the filename .\"O .IR path . .BR pathconf () -¤Ï¥Õ¥¡¥¤¥ë̾ +はファイル名 .I path -¤ËÂФ·¤ÆÀßÄꤵ¤ì¤Æ¤¤¤ë¥ª¥×¥·¥ç¥ó +に対して設定されているオプション .I name -¤ÎÃͤò¼èÆÀ¤¹¤ë¡£ +の値を取得する。 .PP .\"O The corresponding macros defined in .\"O .I @@ -73,21 +73,21 @@ fpathconf, pathconf \- .\"O or .\"O .BR pathconf () .\"O can be made, which may yield more liberal results. -Âбþ¤¹¤ë¥Þ¥¯¥í¤Î¤¦¤Á +対応するマクロのうち .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤ÏºÇ¾®ÃͤǤ¢¤ë¡£¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤è¤Ã¤Æ¤Ï¤³¤ì¤é¤Î -ÃͤòÊѹ¹¤·¤Æ¤è¤êÍ­Íø¤ÊÆ°ºî¤ò¹Ô¤ª¤¦¤È¤¹¤ë¤â¤Î¤¬¤¢¤ë¡£¤³¤Î¾ì¹ç¤Ç¤â +で定義されているものは最小値である。アプリケーションによってはこれらの +値を変更してより有利な動作を行おうとするものがある。この場合でも .BR fpathconf () -¤Þ¤¿¤Ï +または .BR pathconf () -¤Ï¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤Î¾ì¹ç¤Ï¤è¤êÂ礭¤ÊÃͤ¬Ê֤뤳¤È¤Ë¤Ê¤í¤¦¡£ +は呼び出すことができる。この場合はより大きな値が返ることになろう。 .PP .\"O Setting .\"O .I name .\"O equal to one of the following constants returns the following .\"O configuration options: .I name -¤ò°Ê²¼¤ÎÄê¿ô¤Î¤É¤ì¤«¤Ë¤¹¤ë¤È¡¢Âбþ¤¹¤ëÀßÄꥪ¥×¥·¥ç¥ó¤¬ÊÖ¤µ¤ì¤ë¡£ +を以下の定数のどれかにすると、対応する設定オプションが返される。 .TP .B _PC_LINK_MAX .\"O returns the maximum number of links to the file. @@ -98,14 +98,14 @@ fpathconf, pathconf \- .\"O refer to a directory, then the value applies to the whole directory. .\"O The corresponding macro is .\"O .BR _POSIX_LINK_MAX . -¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯¤ÎºÇÂç¿ô¤òÊÖ¤¹¡£ +ファイルへのリンクの最大数を返す。 .I fd -¤Þ¤¿¤Ï +または .I path -¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Î¾ì¹ç¤Ï¡¢¤³¤ÎÃͤϥǥ£¥ì¥¯¥È¥êÁ´ÂΤËŬÍѤµ¤ì¤ë¡£Âбþ¤¹¤ë -¥Þ¥¯¥í¤Ï +がディレクトリの場合は、この値はディレクトリ全体に適用される。対応する +マクロは .B _POSIX_LINK_MAX -¤Ç¤¢¤ë¡£ +である。 .TP .B _PC_MAX_CANON .\"O returns the maximum length of a formatted input line, where @@ -115,14 +115,14 @@ fpathconf, pathconf \- .\"O must refer to a terminal. .\"O The corresponding macro is .\"O .BR _POSIX_MAX_CANON . -¥Õ¥©¡¼¥Þ¥Ã¥ÈÉÕ¤­ÆþÎϹԤκÇÂçŤòÊÖ¤¹¡£¤³¤Î¤È¤­ +フォーマット付き入力行の最大長を返す。このとき .I fd -¤Þ¤¿¤Ï +または .I path -¤ÏüËö¤ò»²¾È¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Âбþ¤¹¤ë¥Þ¥¯¥í¤Ï +は端末を参照していなければならない。 +対応するマクロは .B _POSIX_MAX_CANON -¤Ç¤¢¤ë¡£ +である。 .TP .B _PC_MAX_INPUT .\"O returns the maximum length of an input line, where @@ -132,14 +132,14 @@ fpathconf, pathconf \- .\"O must refer to a terminal. .\"O The corresponding macro is .\"O .BR _POSIX_MAX_INPUT . -ÆþÎϹԤκÇÂçŤòÊÖ¤¹¡£¤³¤Î¤È¤­ +入力行の最大長を返す。このとき .I fd -¤Þ¤¿¤Ï +または .I path -¤ÏüËö¤ò»²¾È¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Âбþ¤¹¤ë¥Þ¥¯¥í¤Ï +は端末を参照していなければならない。 +対応するマクロは .B _POSIX_MAX_INPUT -¤Ç¤¢¤ë¡£ +である。 .TP .B _PC_NAME_MAX .\"O returns the maximum length of a filename in the directory @@ -149,14 +149,14 @@ fpathconf, pathconf \- .\"O that the process is allowed to create. .\"O The corresponding macro is .\"O .BR _POSIX_NAME_MAX . -¥Ç¥£¥ì¥¯¥È¥ê +ディレクトリ .I path -¤Þ¤¿¤Ï +または .I fd -Æâ¤Ë¡¢¤½¤Î¥×¥í¥»¥¹¤¬ºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¥Õ¥¡¥¤¥ë̾¤ÎºÇÂçŤòÊÖ¤¹¡£ -Âбþ¤¹¤ë¥Þ¥¯¥í¤Ï +内に、そのプロセスが作成することができるファイル名の最大長を返す。 +対応するマクロは .B _POSIX_NAME_MAX -¤Ç¤¢¤ë¡£ +である。 .TP .B _PC_PATH_MAX .\"O returns the maximum length of a relative pathname when @@ -167,12 +167,12 @@ fpathconf, pathconf \- .\"O The corresponding macro is .\"O .BR _POSIX_PATH_MAX . .I path -¤Þ¤¿¤Ï +または .I fd -¤¬¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Î¾ì¹ç¡¢ÁêÂХѥ¹Ì¾¤ÎºÇÂçŤòÊÖ¤¹¡£ -Âбþ¤¹¤ë¥Þ¥¯¥í¤Ï +がカレントディレクトリの場合、相対パス名の最大長を返す。 +対応するマクロは .B _POSIX_PATH_MAX -¤Ç¤¢¤ë¡£ +である。 .TP .B _PC_PIPE_BUF .\"O returns the size of the pipe buffer, where @@ -182,14 +182,14 @@ fpathconf, pathconf \- .\"O must refer to a FIFO. .\"O The corresponding macro is .\"O .BR _POSIX_PIPE_BUF . -¥Ñ¥¤¥× (pipe) ¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤òÊÖ¤¹¡£¤³¤Î¤È¤­ +パイプ (pipe) バッファのサイズを返す。このとき .I fd -¤Ï¥Ñ¥¤¥×¤« FIFO ¤ò»²¾È¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ +はパイプか FIFO を参照していなければならず、 .I path -¤Ï FIFO ¤ò»²¾È¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Âбþ¤¹¤ë¥Þ¥¯¥í¤Ï +は FIFO を参照していなければならない。 +対応するマクロは .B _POSIX_PIPE_BUF -¤Ç¤¢¤ë¡£ +である。 .TP .B _PC_CHOWN_RESTRICTED .\"O returns nonzero if the @@ -203,17 +203,17 @@ fpathconf, pathconf \- .\"O directory. .\"O The corresponding macro is .\"O .BR _POSIX_CHOWN_RESTRICTED . -¤³¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë +このファイルに対する .BR chown (2) -¤Î¸Æ¤Ó½Ð¤·¤¬µö¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï 0 °Ê³°¤ÎÃͤòÊÖ¤¹¡£ +の呼び出しが許されていない場合には 0 以外の値を返す。 .I fd -¤Þ¤¿¤Ï +または .I path -¤¬¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤³¤ÎÀ©¸Â¤Ï¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¤¹¤Ù¤Æ -¤Î¥Õ¥¡¥¤¥ë¤ËŬÍѤµ¤ì¤ë¡£ -Âбþ¤¹¤ë¥Þ¥¯¥í¤Ï +がディレクトリを参照している場合は、この制限はそのディレクトリのすべて +のファイルに適用される。 +対応するマクロは .B _POSIX_CHOWN_RESTRICTED -¤Ç¤¢¤ë¡£ +である。 .TP .B _PC_NO_TRUNC .\"O returns nonzero if accessing filenames longer than @@ -221,12 +221,12 @@ fpathconf, pathconf \- .\"O generates an error. .\"O The corresponding macro is .\"O .BR _POSIX_NO_TRUNC . -¥¢¥¯¥»¥¹Ãæ¤Î¥Õ¥¡¥¤¥ë̾¤¬ +アクセス中のファイル名が .B _POSIX_NAME_MAX -¤è¤ê¤âŤ¯¡¢¥¨¥é¡¼¤È¤Ê¤ë¾ì¹ç¤Ë¤Ï 0 °Ê³°¤ÎÃͤòÊÖ¤¹¡£ -Âбþ¤¹¤ë¥Þ¥¯¥í¤Ï +よりも長く、エラーとなる場合には 0 以外の値を返す。 +対応するマクロは .B _POSIX_NAME_MAX -¤Ç¤¢¤ë¡£ +である。 .TP .B _PC_VDISABLE .\"O returns nonzero if special character processing can be disabled, where @@ -234,14 +234,14 @@ fpathconf, pathconf \- .\"O or .\"O .I path .\"O must refer to a terminal. -Æüìʸ»ú (special character) ¤Î½èÍý¤¬µö¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï 0 °Ê³°¤ÎÃͤò -ÊÖ¤¹¡£¤³¤Î¤È¤­ +特殊文字 (special character) の処理が許されていない場合は 0 以外の値を +返す。このとき .I fd -¤Þ¤¿¤Ï +または .I path -¤ÏüËö¤ò»²¾È¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は端末を参照していなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The limit is returned, if one exists. .\"O If the system does not have a .\"O limit for the requested resource, \-1 is returned, and @@ -250,34 +250,34 @@ fpathconf, pathconf \- .\"O If there is an error, \-1 is returned, and .\"O .I errno .\"O is set to reflect the nature of the error. -(¸ºß¤·¤Æ¤¤¤ì¤Ð) À©¸ÂÃͤ¬ÊÖ¤µ¤ì¤ë¡£Í׵ᤵ¤ì¤¿¥ê¥½¡¼¥¹¤Ø¤Î¥·¥¹¥Æ¥à¤ÎÀ© -¸Â¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤Ð \-1 ¤¬ÊÖ¤µ¤ì¡¢ +(存在していれば) 制限値が返される。要求されたリソースへのシステムの制 +限が存在していなければ \-1 が返され、 .I errno -¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Ë¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +は変更されない。エラーが起こった場合には \-1 が返され、 .I errno -¤¬¥¨¥é¡¼¤ËÂбþ¤·¤¿ÃͤËÀßÄꤵ¤ì¤ë¡£ +がエラーに対応した値に設定される。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Files with name lengths longer than the value returned for .\"O .I name .\"O equal to .\"O .B _PC_NAME_MAX .\"O may exist in the given directory. .I name -¤Ë +に .B _PC_NAME_MAX -¤òÆþ¤ì¤ÆÊÖ¤µ¤ì¤¿Ãͤè¤ê¤âŤ¤¥Õ¥¡¥¤¥ë̾¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤¬¡¢Í¿¤¨¤é¤ì¤¿¥Ç¥£ -¥ì¥¯¥È¥ê¤Ë¸ºß¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +を入れて返された値よりも長いファイル名を持つファイルが、与えられたディ +レクトリに存在するかもしれない。 .PP .\"O Some returned values may be huge; they are not suitable for allocating .\"O memory. -ÊÖ¤êÃͤÏÈó¾ï¤ËÂ礭¤ÊÃͤˤʤ뤳¤È¤â¤¢¤ë¡£¥á¥â¥ê¡¼¤Î³ä¤êÅö¤ÆÍѤÎÃͤˤÏÂç -¤­¤¹¤®¤ÆŬ¤µ¤Ê¤¤¤«¤âÃΤì¤Ê¤¤¡£ +返り値は非常に大きな値になることもある。メモリーの割り当て用の値には大 +きすぎて適さないかも知れない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getconf (1), .BR open (2), .BR statfs (2), diff --git a/draft/man3/fpclassify.3 b/draft/man3/fpclassify.3 index 5d096fbe..454d60ee 100644 --- a/draft/man3/fpclassify.3 +++ b/draft/man3/fpclassify.3 @@ -13,12 +13,12 @@ .\" .TH FPCLASSIFY 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fpclassify, isfinite, isnormal, isnan, isinf \- floating-point .\"O classification macros -fpclassify, isfinite, isnormal, isnan, isinf \- ÉâÆ°¾®¿ôÅÀ¿ô¤ÎʬÎà¥Þ¥¯¥í +fpclassify, isfinite, isnormal, isnan, isinf \- 浮動小数点数の分類マクロ .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -34,14 +34,14 @@ fpclassify, isfinite, isnormal, isnan, isinf \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .\" I haven't fully grokked the source to determine the FTM requirements; @@ -75,7 +75,7 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Floating point numbers can have special values, such as .\"O infinite or NaN. .\"O With the macro @@ -84,67 +84,67 @@ or .\"O .I x .\"O is. .\"O The macro takes any floating-point expression as argument. -ÉâÆ°¾®¿ôÅÀ¿ô¤Ï̵¸ÂÂç¤ä NaN ¤Î¤è¤¦¤ÊÆÃÊ̤ÊÃͤò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ -¥Þ¥¯¥í +浮動小数点数は無限大や NaN のような特別な値を持つことができる。 +マクロ .BI fpclassify( x ) -¤Ç +で .I x -¤¬¤É¤Î¤è¤¦¤Ê¼ïÊ̤«¤òÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ -¥Þ¥¯¥í¤ÏǤ°Õ¤ÎÉâÆ°¾®¿ôÅÀ¿ôɽ¸½¤ò°ú¤­¿ô¤È¤·¤Æ¤È¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +がどのような種別かを知ることができる。 +マクロは任意の浮動小数点数表現を引き数としてとることができる。 .\"O The result is one of the following values: -·ë²Ì¤Ï°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«°ì¤Ä¤Ç¤¢¤ë: +結果は以下の値のいずれか一つである: .TP 14 .B FP_NAN .\"O .I x .\"O is "Not a Number". .I x -¤¬ "Not a Number" ¤Ç¤¢¤ë (¿ôÃͤǤϤʤ¤)¡£ +が "Not a Number" である (数値ではない)。 .TP .B FP_INFINITE .\"O .I x .\"O is either positive infinity or negative infinity. .I x -¤¬Àµ¤Î̵¸ÂÂç¤Þ¤¿¤ÏÉé¤Î̵¸ÂÂç¤Ç¤¢¤ë¡£ +が正の無限大または負の無限大である。 .TP .B FP_ZERO .\"O .I x .\"O is zero. .I x -¤¬ 0 ¤Ç¤¢¤ë¡£ +が 0 である。 .TP .B FP_SUBNORMAL .\"O .I x .\"O is too small to be represented in normalized format. .I x -¤òÀµµ¬²½·Á¼°¤Çɽ¸½¤¹¤ë¤Ë¤Ï¾®¤µ¤¹¤®¤ë¡£ +を正規化形式で表現するには小さすぎる。 .TP .B FP_NORMAL .\"O if nothing of the above is correct then it must be a .\"O normal floating-point number. -¾åµ­¤Î¤É¤ì¤Ë¤âÅö¤Æ¤Ï¤Þ¤é¤Ê¤¤¾ì¹ç¤Ç¤¢¤ê¡¢ -ÃͤÏÄ̾ï¤ÎÉâÆ°¾®¿ôÅÀ¿ô¤Ç¤¢¤ë¤Ï¤º¤À¡£ +上記のどれにも当てはまらない場合であり、 +値は通常の浮動小数点数であるはずだ。 .LP .\"O The other macros provide a short answer to some standard questions. -¾¤Î¥Þ¥¯¥í¤Ï¡¢¤¤¤¯¤Ä¤«¤Îɸ½àŪ¤ÊÌ䤤¤ËÂФ·¤Æ¡¢´Êñ¤ÊÅú¤¨¤òÄ󶡤¹¤ë¡£ +他のマクロは、いくつかの標準的な問いに対して、簡単な答えを提供する。 .TP 14 .BI isfinite( x ) .\"O returns a nonzero value if .\"O .br .\"O (fpclassify(x) != FP_NAN && fpclassify(x) != FP_INFINITE) (fpclassify(x) != FP_NAN && fpclassify(x) != FP_INFINITE) -¤Î¾ì¹ç¤Ë 0 °Ê³°¤ÎÃͤòÊÖ¤¹¡£ +の場合に 0 以外の値を返す。 .TP .BI isnormal( x ) .\"O returns a nonzero value if .\"O (fpclassify(x) == FP_NORMAL) (fpclassify(x) == FP_NORMAL) -¤Î¾ì¹ç¤Ë 0 °Ê³°¤ÎÃͤòÊÖ¤¹¡£ +の場合に 0 以外の値を返す。 .TP .BI isnan( x ) .\"O returns a nonzero value if .\"O (fpclassify(x) == FP_NAN) (fpclassify(x) == FP_NAN) -¤Î¾ì¹ç¤Ë 0 °Ê³°¤ÎÃͤòÊÖ¤¹¡£ +の場合に 0 以外の値を返す。 .TP .BI isinf( x ) .\"O returns 1 if @@ -153,10 +153,10 @@ or .\"O .I x .\"O is negative infinity. .I x -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¤Ï 1 ¤ò¡¢ -Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ +が正の無限大の場合は 1 を、 +負の無限大の場合は \-1 を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1. .\"O For @@ -164,26 +164,26 @@ C99, POSIX.1. .\"O the standards merely say that the return value is nonzero .\"O if and only if the argument has an infinite value. .BR isinf () -¤Ë´Ø¤·¤Æ¡¢É¸½àµ¬³Ê¤ÇÄê¤á¤é¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢ -ÊÖ¤êÃͤ¬ 0 °Ê³°¤Ë¤Ê¤ë¤Î¤Ï°ú¤­¿ô¤¬Ìµ¸ÂÂç¤Î¾ì¹ç¤À¤±¤È¤¤¤¦¤³¤È¤À¤±¤Ç¤¢¤ë¡£ +に関して、標準規格で定められているのは、 +返り値が 0 以外になるのは引き数が無限大の場合だけということだけである。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O In glibc 2.01 and earlier, .\"O .BR isinf () .\"O returns a nonzero value (actually: 1) if .\"O .I x .\"O is positive infinity or negative infinity. .\"O (This is all that C99 requires.) -glibc 2.01 °ÊÁ°¤Ç¤Ï¡¢ +glibc 2.01 以前では、 .BR isinf () -¤Ï +は .I x -¤¬Àµ¤Î̵¸ÂÂ礫Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ -0 °Ê³°¤ÎÃÍ (¼ÂºÝ¤Ë¤Ï 1) ¤òÊÖ¤¹ -(C99 ¤ÎÍ×µá»ÅÍͤǷè¤Þ¤Ã¤Æ¤¤¤ë¤Î¤Ï -0 °Ê³°¤ÎÃͤòÊÖ¤¹¤È¤¤¤¦¤³¤È¤À¤±¤Ç¤¢¤ë)¡£ +が正の無限大か負の無限大の場合、 +0 以外の値 (実際には 1) を返す +(C99 の要求仕様で決まっているのは +0 以外の値を返すということだけである)。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR finite (3), .BR INFINITY (3), .BR isgreater (3), diff --git a/draft/man3/fpurge.3 b/draft/man3/fpurge.3 index f77dfac0..1e862025 100644 --- a/draft/man3/fpurge.3 +++ b/draft/man3/fpurge.3 @@ -26,10 +26,10 @@ .TH FPURGE 3 2001-12-15 "" "Linux Programmer's Manual" .\"O .SH NAME .\"O fpurge, __fpurge \- purge a stream -.SH ̾Á° -fpurge, __fpurge \- ¥¹¥È¥ê¡¼¥à¤ò°ìÁÝ (purge) ¤¹¤ë +.SH 名前 +fpurge, __fpurge \- ストリームを一掃 (purge) する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf /* unsupported */ .B #include @@ -44,7 +44,7 @@ fpurge, __fpurge \- .BI "void __fpurge(FILE *" stream ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The function .\"O .BR fpurge () .\"O clears the buffers of the given stream. @@ -57,47 +57,47 @@ fpurge, __fpurge \- .\"O See also .\"O .BR fflush (3). .BR fpurge () -´Ø¿ô¤Ï¡¢Í¿¤¨¤é¤ì¤¿¥¹¥È¥ê¡¼¥à¤Î¥Ð¥Ã¥Õ¥¡¤ò¥¯¥ê¥¢¤¹¤ë¡£ -½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Ç¤³¤ì¤ò¹Ô¤¦¤È¡¢½ñ¤­½Ð¤µ¤ì¤Æ¤¤¤Ê¤¤½ÐÎϤϼΤƤé¤ì¤ë¡£ -ÆþÎÏ¥¹¥È¥ê¡¼¥à¤Ç¤³¤ì¤ò¹Ô¤¦¤È¡¢ -²¼Áؤˤ¢¤ë¥ª¥Ö¥¸¥§¥¯¥È¤«¤éÆɤ߹þ¤Þ¤ì +関数は、与えられたストリームのバッファをクリアする。 +出力ストリームでこれを行うと、書き出されていない出力は捨てられる。 +入力ストリームでこれを行うと、 +下層にあるオブジェクトから読み込まれ .BR getc (3) -¤Ë¤è¤ë¼èÆÀ¤òÂԤäƤ¤¤ëÆþÎϤ¬¡¢¤¹¤Ù¤Æ¼Î¤Æ¤é¤ì¤ë¡£ -¤³¤ì¤Ë¤Ï +による取得を待っている入力が、すべて捨てられる。 +これには .BR ungetc (3) -¤Ë¤è¤Ã¤ÆÌᤵ¤ì¤¿¥Æ¥­¥¹¥È¤â´Þ¤Þ¤ì¤ë¡£ +によって戻されたテキストも含まれる。 .BR fflush (3) -¤â»²¾È¤Î¤³¤È¡£ +も参照のこと。 .LP .\"O The function .\"O .BR __fpurge () .\"O does precisely the same, but without returning a value. .BR __fpurge () -´Ø¿ô¤âÁ´¤¯Æ±¤¸¤³¤È¤ò¹Ô¤¦¤¬¡¢¤¿¤À¤·ÊÖ¤êÃͤòÊÖ¤µ¤Ê¤¤¡£ +関数も全く同じことを行うが、ただし返り値を返さない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O Upon successful completion .\"O .BR fpurge () .\"O returns 0. .\"O On error, it returns \-1 and sets .\"O .I errno .\"O appropriately. -À®¸ù¤¹¤ë¤È +成功すると .BR fpurge () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬µ¯¤³¤ë¤È \-1 ¤òÊÖ¤·¡¢ +は 0 を返す。 +エラーが起こると \-1 を返し、 .I errno -¤òŬÀÚ¤ÊÃͤËÀßÄꤹ¤ë¡£ +を適切な値に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O .I stream .\"O is not an open stream. .I stream -¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +がオープンされていない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These functions are nonstandard and not portable. .\"O The function .\"O .BR fpurge () @@ -105,17 +105,17 @@ fpurge, __fpurge \- .\"O The function .\"O .BR __fpurge () .\"O was introduced in Solaris, and is present in glibc 2.1.95 and later. -¤³¤ì¤é¤Î´Ø¿ô¤Ïɸ½à¤Ç¤Ï¤Ê¤¯¡¢¤è¤Ã¤Æ°Ü¿¢À­¤â¤Ê¤¤¡£ +これらの関数は標準ではなく、よって移植性もない。 .BR fpurge () -´Ø¿ô¤Ï 4.4BSD ¤ÇƳÆþ¤µ¤ì¤¿¤¬¡¢Linux ¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤¡£ +関数は 4.4BSD で導入されたが、Linux では利用できない。 .BR __fpurge () -´Ø¿ô¤Ï Solaris ¤ÇƳÆþ¤µ¤ì¡¢glibc 2.1.95 °Ê¹ß¤Ë¤Ï¸ºß¤·¤Æ¤¤¤ë¡£ +関数は Solaris で導入され、glibc 2.1.95 以降には存在している。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Usually it is a mistake to want to discard input buffers. -Ä̾ï¤ÏÆþÎϥХåե¡¤ò¼Î¤Æ¤è¤¦¤È¤¹¤ë¤Î¤Ï´Ö°ã¤Ã¤Æ¤¤¤ë¡£ +通常は入力バッファを捨てようとするのは間違っている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .\" .BR fclean (3), .BR fflush (3), .BR setbuf (3), diff --git a/draft/man3/fputwc.3 b/draft/man3/fputwc.3 index b9052bcc..b624ede1 100644 --- a/draft/man3/fputwc.3 +++ b/draft/man3/fputwc.3 @@ -19,11 +19,11 @@ .\" .TH FPUTWC 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fputwc, putwc \- write a wide character to a FILE stream -fputwc, putwc \- ¥ï¥¤¥Éʸ»ú¤ò FILE ¥¹¥È¥ê¡¼¥à¤Ë½ñ¤­¹þ¤à +fputwc, putwc \- ワイド文字を FILE ストリームに書き込む .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .br @@ -33,7 +33,7 @@ fputwc, putwc \- .BI "wint_t putwc(wchar_t " wc ", FILE *" stream ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR fputwc () .\"O function is the wide-character @@ -49,18 +49,18 @@ fputwc, putwc \- .\"O .BR WEOF . .\"O Otherwise it returns \fIwc\fP. .BR fputwc () -´Ø¿ô¤Ï¡¢ +関数は、 .BR fputc (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£¤³¤Î -´Ø¿ô¤Ï¡¢¥ï¥¤¥Éʸ»ú \fIwc\fP ¤ò \fIstream\fP ¤Ë½ñ¤­¹þ¤à¡£ -\fIferror(stream)\fP ¤¬¿¿¤Ë¤Ê¤ë¤È¡¢¤³¤Î´Ø¿ô¤Ï +に対応するワイド文字関数である。この +関数は、ワイド文字 \fIwc\fP を \fIstream\fP に書き込む。 +\fIferror(stream)\fP が真になると、この関数は .B WEOF -¤òÊÖ¤¹¡£ -¥ï¥¤¥Éʸ»úÊÑ´¹¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï¡¢ -\fIerrno\fP ¤Ë \fBEILSEQ\fP ¤ò¥»¥Ã¥È¤·¡¢ +を返す。 +ワイド文字変換でエラーが発生した場合は、 +\fIerrno\fP に \fBEILSEQ\fP をセットし、 .B WEOF -¤òÊÖ¤¹¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ç¤Ï¡¢¤³¤Î´Ø¿ô¤Ï \fIwc\fP ¤òÊÖ¤¹¡£ +を返す。 +それ以外の場合では、この関数は \fIwc\fP を返す。 .PP .\"O The .\"O .BR putwc () @@ -70,41 +70,41 @@ fputwc, putwc \- .\"O more than once. .\"O There is no reason ever to use it. .BR putwc () -´Ø¿ô¤¢¤ë¤¤¤Ï¥Þ¥¯¥í¤Ï¡¢ +関数あるいはマクロは、 .BR fputwc () -¤ÈÁ´¤¯Æ±¤¸Æ°ºî¤ò¤¹¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¥Þ¥¯¥í¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¤Î¤Ç¡¢°ú¤­¿ô¤¬Ê£¿ô²óɾ²Á¤µ -¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£¤³¤Î´Ø¿ô¤ò»È¤¦Íýͳ¤Ï¤â¤Ï¤ä¸ºß¤·¤Ê¤¤¡£ +と全く同じ動作をする。 +この関数はマクロとして実装されるかもしれないので、引き数が複数回評価さ +れるかもしれない。この関数を使う理由はもはや存在しない。 .PP .\"O For nonlocking counterparts, see .\"O .BR unlocked_stdio (3). -¤³¤ì¤é¤Î½èÍý¤òÄä»ß¤»¤º¤Ë¹Ô¤¤¤¿¤¤¤È¤­¤Ï¡¢ +これらの処理を停止せずに行いたいときは、 .BR unlocked_stdio (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR fputwc () .\"O function returns \fIwc\fP if no error occurred, or .\"O .B WEOF .\"O to indicate an error. .BR fputwc () -´Ø¿ô¤Ï¡¢¥¨¥é¡¼¤¬µ¯¤­¤Ê¤±¤ì¤Ð \fIwc\fP ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï +関数は、エラーが起きなければ \fIwc\fP を返す。エラーの場合には .B WEOF -¤òÊÖ¤¹¡£ +を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O Apart from the usual ones, there is -ÉáÄ̤Τâ¤Î¤Î¾¤Ë¡¢°Ê²¼¤Î¤â¤Î¤¬¤¢¤ë¡£ +普通のものの他に、以下のものがある。 .TP .B EILSEQ .\"O Conversion of \fIwc\fP to the stream's encoding fails. -\fIwc\fP ¤«¤é¥¹¥È¥ê¡¼¥à¤ÎÉä¹æ¤Ø¤ÎÊÑ´¹¤Ë¼ºÇÔ¤·¤¿¡£ +\fIwc\fP からストリームの符号への変換に失敗した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR fputwc () .\"O depends on the @@ -112,9 +112,9 @@ C99, POSIX.1-2001. .\"O category of the .\"O current locale. .BR fputwc () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .PP .\"O In the absence of additional information passed to the .\"O .BR fopen (3) @@ -124,13 +124,13 @@ C99, POSIX.1-2001. .\"O will actually write the multibyte .\"O sequence corresponding to the wide character \fIwc\fP. .BR fopen (3) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÅϤ¹ÄɲþðÊ󤬤ʤ¤¾ì¹ç¤Ë¤Ï¡¢ +システムコールに渡す追加情報がない場合には、 .BR fputwc () -¤Ï -¼ÂºÝ¤Ë¤Ï¥ï¥¤¥Éʸ»ú \fIwc\fP ¤ËÂбþ¤¹¤ë¥Þ¥ë¥Á¥Ð¥¤¥È¥·¡¼¥±¥ó¥¹¤ò½ñ¤­¹þ¤à¤È -´üÂÔ¤·¤Æ¤è¤¤¡£ +は +実際にはワイド文字 \fIwc\fP に対応するマルチバイトシーケンスを書き込むと +期待してよい。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fgetwc (3), .BR fputws (3), .BR unlocked_stdio (3) diff --git a/draft/man3/fputws.3 b/draft/man3/fputws.3 index acf3669a..47ba1704 100644 --- a/draft/man3/fputws.3 +++ b/draft/man3/fputws.3 @@ -18,18 +18,18 @@ .\" .TH FPUTWS 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fputws \- write a wide-character string to a FILE stream -fputws \- ¥ï¥¤¥Éʸ»ú¤Îʸ»úÎó¤ò FILE ¥¹¥È¥ê¡¼¥à¤Ë½ñ¤­¹þ¤à +fputws \- ワイド文字の文字列を FILE ストリームに書き込む .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int fputws(const wchar_t *" ws ", FILE *" stream ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR fputws () .\"O function is the wide-character equivalent of @@ -39,33 +39,33 @@ fputws \- .\"O It writes the wide character string starting at \fIws\fP, up to but .\"O not including the terminating null wide character (L\(aq\\0\(aq), to \fIstream\fP. .BR fputws () -´Ø¿ô¤Ï¡¢ +関数は、 .BR fputs (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIws\fP ¤«¤é»Ï¤Þ¤ë¥ï¥¤¥Éʸ»úÎó¤ò½ªÃ¼¤Î L'\\0' -¤Þ¤Ç \fIstream\fP ¤Ë½ñ¤­½Ð¤¹¡£¤¿¤À¤·½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú -(L\(aq\\0\(aq) ¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ +に対応するワイド文字関数である。 +この関数は、\fIws\fP から始まるワイド文字列を終端の L'\\0' +まで \fIstream\fP に書き出す。ただし終端の NULL ワイド文字 +(L\(aq\\0\(aq) は含まれない。 .PP .\"O For nonlocking counterparts, see .\"O .BR unlocked_stdio (3). -¤³¤ì¤é¤Î½èÍý¤òÄä»ß¤»¤º¤Ë¹Ô¤¤¤¿¤¤¤È¤­¤Ï¡¢ +これらの処理を停止せずに行いたいときは、 .BR unlocked_stdio (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR fputws () .\"O function returns a .\"O nonnegative integer if the operation was .\"O successful, or \-1 to indicate an error. .BR fputws () -¤Ï¡¢Áàºî¤¬À®¸ù¤·¤¿»þ¤Ë¤ÏÉé¤Ç¤Ê¤¤À°¿ôÃͤòÊÖ¤¹¡£¥¨¥é¡¼¤Î»þ -¤Ë¤Ï \-1 ¤òÊÖ¤¹¡£ +は、操作が成功した時には負でない整数値を返す。エラーの時 +には \-1 を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR fputws () .\"O depends on the @@ -73,9 +73,9 @@ C99, POSIX.1-2001. .\"O category of the .\"O current locale. .BR fputws () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .PP .\"O In the absence of additional information passed to the .\"O .BR fopen (3) @@ -85,12 +85,12 @@ C99, POSIX.1-2001. .\"O will actually write the multibyte .\"O string corresponding to the wide-character string \fIws\fP. .BR fopen (3) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÅϤ¹ÄɲþðÊ󤬤ʤ¤¾ì¹ç¤Ë¤Ï¡¢ +システムコールに渡す追加情報がない場合には、 .BR fputws () -¤¬¼ÂºÝ -¤Ë¤Ï¥ï¥¤¥Éʸ»ú¤Îʸ»úÎó¤Ç¤¢¤ë \fIws\fP ¤ËÂбþ¤¹¤ë¥Þ¥ë¥Á¥Ð¥¤¥È¥·¡¼¥±¥ó¥¹ -¤ò½ñ¤­¹þ¤à¤È´üÂÔ¤¹¤ë¤³¤È¤ÏŬÀڤǤ¢¤ë¡£ +が実際 +にはワイド文字の文字列である \fIws\fP に対応するマルチバイトシーケンス +を書き込むと期待することは適切である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fputwc (3), .BR unlocked_stdio (3) diff --git a/draft/man3/fread.3 b/draft/man3/fread.3 index d81603b2..181793d0 100644 --- a/draft/man3/fread.3 +++ b/draft/man3/fread.3 @@ -49,9 +49,9 @@ .\" Updated Sat Nov 3 JST 2001 by Kentaro Shirakata .\" .TH FREAD 3 1996-05-17 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -fread, fwrite \- ¥Ð¥¤¥Ê¥ê¥¹¥È¥ê¡¼¥à¤ÎÆþ½ÐÎÏ -.SH ½ñ¼° +.SH 名前 +fread, fwrite \- バイナリストリームの入出力 +.SH 書式 .nf .B #include .sp @@ -61,55 +61,55 @@ fread, fwrite \- .BI "size_t fwrite(const void *" ptr ", size_t " size ", size_t " nmemb , .BI " FILE *" stream ); .fi -.SH ÀâÌÀ +.SH 説明 .BR fread () -´Ø¿ô¤Ï +関数は .I stream -¥Ý¥¤¥ó¥¿¤Ç»ØÄꤵ¤ì¤¿¥¹¥È¥ê¡¼¥à¤«¤é +ポインタで指定されたストリームから .I nmemb -¸Ä¤Î¥Ç¡¼¥¿¤òÆɤ߹þ¤ß¡¢ +個のデータを読み込み、 .I ptr -¤ÇÍ¿¤¨¤é¤ì¤¿¾ì½ê¤Ë³ÊǼ¤¹¤ë¡£ -¸Ä¡¹¤Î¥Ç¡¼¥¿¤Ï +で与えられた場所に格納する。 +個々のデータは .I size -¥Ð¥¤¥È¤ÎŤµ¤ò»ý¤Ä¡£ +バイトの長さを持つ。 .PP .BR fwrite () -´Ø¿ô¤Ï +関数は .I ptr -¤Ç»ØÄꤵ¤ì¤¿¾ì½ê¤«¤éÆÀ¤¿ +で指定された場所から得た .I nmemb -¸Ä¤Î¥Ç¡¼¥¿¤ò¡¢ +個のデータを、 .I stream -¥Ý¥¤¥ó¥¿¤Ç»ØÄꤵ¤ì¤¿¥¹¥È¥ê¡¼¥à¤Ë½ñ¤­¹þ¤à¡£ -¸Ä¡¹¤Î¥Ç¡¼¥¿¤Ï +ポインタで指定されたストリームに書き込む。 +個々のデータは .I size -¥Ð¥¤¥È¤ÎŤµ¤ò»ý¤Ä¡£ +バイトの長さを持つ。 .PP .\"O For nonlocking counterparts, see .\"O .BR unlocked_stdio (3). -¤³¤ì¤é¤Î½èÍý¤òÄä»ß¤»¤º¤Ë¹Ô¤¤¤¿¤¤¤È¤­¤Ï¡¢ +これらの処理を停止せずに行いたいときは、 .BR unlocked_stdio (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ +を参照のこと。 +.SH 返り値 .BR fread () -¤È +と .BR fwrite () -¤ÏÆɤ߽ñ¤­¤ËÀ®¸ù¤·¤¿Í×ÁǤθĿô¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬À¸¤¸¤¿¾ì¹ç¤ä¡¢end-of-file(¥Õ¥¡¥¤¥ë¤ÎºÇ¸å)¤Ë㤷¤¿¾ì¹ç¡¢ -ÊÖ¤êÃͤϻØÄꤷ¤¿¸Ä¿ô¤è¤ê¤â¾®¤µ¤¤ÃÍ(¤Þ¤¿¤Ï¥¼¥í)¤È¤Ê¤ë¡£ +は読み書きに成功した要素の個数を返す。 +エラーが生じた場合や、end-of-file(ファイルの最後)に達した場合、 +返り値は指定した個数よりも小さい値(またはゼロ)となる。 .PP .BR fread () -¤Ï end-of-file ¤È¥¨¥é¡¼¤ò¶èÊ̤·¤Ê¤¤¤Î¤Ç¡¢ -¤É¤Á¤é¤¬À¸¤¸¤¿¤«¤òȽÃǤ¹¤ë¤¿¤á¤Ë¤Ï¡¢ -¸Æ¤Ó½Ð¤·Â¦¤Ç +は end-of-file とエラーを区別しないので、 +どちらが生じたかを判断するためには、 +呼び出し側で .BR feof (3) -¤È +と .BR ferror (3) -¤È¤ò»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ½àµò +とを使用しなければならない。 +.SH 準拠 C89, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR read (2), .BR write (2), .BR feof (3), diff --git a/draft/man3/frexp.3 b/draft/man3/frexp.3 index c960a13c..56fd56fe 100644 --- a/draft/man3/frexp.3 +++ b/draft/man3/frexp.3 @@ -36,12 +36,12 @@ .\" .TH FREXP 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O frexp, frexpf, frexpl \- convert floating-point number to fractional .\"O and integral components -frexp, frexpf, frexpl \- ÉâÆ°¾®¿ôÅÀ¼Â¿ô¤ò¾®¿ôÀ®Ê¬¤ÈÀ°¿ôÀ®Ê¬¤ËÊÑ´¹¤¹¤ë +frexp, frexpf, frexpl \- 浮動小数点実数を小数成分と整数成分に変換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -53,14 +53,14 @@ frexp, frexpf, frexpl \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -75,16 +75,16 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR frexp () .\"O function is used to split the number \fIx\fP into a .\"O normalized fraction and an exponent which is stored in \fIexp\fP. .BR frexp () -´Ø¿ô¤ÏÉâÆ°¾®¿ôÅÀ¼Â¿ô \fIx\fP ¤òÀµµ¬²½¾®¿ô¤È»Ø¿ô¤Ëʬ²ò¤·¡¢ -»Ø¿ô¤ò *\fIexp\fP ¤Ë³ÊǼ¤¹¤ë¡£ +関数は浮動小数点実数 \fIx\fP を正規化小数と指数に分解し、 +指数を *\fIexp\fP に格納する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR frexp () .\"O function returns the normalized fraction. @@ -93,15 +93,15 @@ or .\"O and its absolute value is always in the range 1/2 (inclusive) to .\"O 1 (exclusive), that is, [0.5,1). .BR frexp () -´Ø¿ô¤ÏÀµµ¬²½¾®¿ô¤òÊÖ¤¹¡£ -°ú¿ô \fIx\fP ¤¬¥¼¥í¤Ç¤Ê¤¤¾ì¹ç¡¢¤³¤ÎÀµµ¬²½¾®¿ô¤Ï -\fIx\fP ¤Ë 2 ¤ÎÎß¾è¤ò¾è¤¸¤¿¤â¤Î¤Ç¤¢¤ê¡¢¤½¤ÎÀäÂÐÃÍ¤Ï -¾ï¤Ë 1/2 °Ê¾å 1 ̤Ëþ¡¢¤Ä¤Þ¤ê [0.5,1) ¤È¤Ê¤ë¡£ +関数は正規化小数を返す。 +引数 \fIx\fP がゼロでない場合、この正規化小数は +\fIx\fP に 2 の累乗を乗じたものであり、その絶対値は +常に 1/2 以上 1 未満、つまり [0.5,1) となる。 .\"O If \fIx\fP is zero, then the normalized fraction is .\"O zero and zero is stored in \fIexp\fP. -\fIx\fP ¤¬¥¼¥í¤Î¾ì¹ç¡¢Àµµ¬²½¾®¿ô¤Ï¥¼¥í¤Ë¤Ê¤ê -*\fIexp\fP ¤Ë¤Ï¥¼¥í¤¬³ÊǼ¤µ¤ì¤ë¡£ +\fIx\fP がゼロの場合、正規化小数はゼロになり +*\fIexp\fP にはゼロが格納される。 .\"O If .\"O .I x @@ -110,9 +110,9 @@ or .\"O .I *exp .\"O is unspecified. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I *exp -¤ÎÃͤÏÉÔÄê¤Ç¤¢¤ë¡£ +の値は不定である。 .\"O If .\"O .I x @@ -121,27 +121,27 @@ or .\"O .I *exp .\"O is unspecified. .I x -¤¬Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤Î¾ì¹ç¡¢ -Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大 (負の無限大) の場合、 +正の無限大 (負の無限大) が返される。 .I *exp -¤ÎÃͤÏÉÔÄê¤Ç¤¢¤ë¡£ +の値は不定である。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O No errors occur. -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ +エラーは発生しない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD, C89. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The program below produces results such as the following: -¤³¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤È°Ê²¼¤Î¤è¤¦¤Ê·ë²Ì¤È¤Ê¤ë: +このプログラムを実行すると以下のような結果となる: .sp .nf .in +4n @@ -152,7 +152,7 @@ frexp(\-4, &e) = \-0.5: \-0.5 * 2^3 = \-4 .in .fi .\"O .SS Program source -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -175,6 +175,6 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ldexp (3), .BR modf (3) diff --git a/draft/man3/fseek.3 b/draft/man3/fseek.3 index faa0e58e..28004bc7 100644 --- a/draft/man3/fseek.3 +++ b/draft/man3/fseek.3 @@ -41,16 +41,16 @@ .\" Japanese Version Copyright (c) 1998 NAKANO Takeo all rights reserved. .\" Translated Mon Apr 27 1998 by NAKANO Takeo .\" -.\" WORD: file position indicator ¥Õ¥¡¥¤¥ë°ÌÃÖɽ¼¨»Ò -.\" WORD: error indicator ¥¨¥é¡¼É½¼¨»Ò +.\" WORD: file position indicator ファイル位置表示子 +.\" WORD: error indicator エラー表示子 .\" .TH FSEEK 3 1993-11-29 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O fgetpos, fseek, fsetpos, ftell, rewind \- reposition a stream -.SH ̾Á° -fgetpos, fseek, fsetpos, ftell, rewind \- ¥¹¥È¥ê¡¼¥à¤Î°ÌÃÖ¤òÊѹ¹¤¹¤ë +.SH 名前 +fgetpos, fseek, fsetpos, ftell, rewind \- ストリームの位置を変更する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int fseek(FILE *" stream ", long " offset ", int " whence ); @@ -63,7 +63,7 @@ fgetpos, fseek, fsetpos, ftell, rewind \- .br .BI "int fsetpos(FILE *" stream ", fpos_t *" pos ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR fseek () .\"O function sets the file position indicator for the stream pointed to by @@ -73,15 +73,15 @@ fgetpos, fseek, fsetpos, ftell, rewind \- .\"O bytes to the position specified by .\"O .IR whence . .BR fseek () -´Ø¿ô¤Ï +関数は .I stream -¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿¥¹¥È¥ê¡¼¥à¤Ë¤ª¤¤¤Æ¡¢¥Õ¥¡¥¤¥ë°ÌÃÖɽ¼¨»Ò -(file position indicator) ¤ò¥»¥Ã¥È¤¹¤ë¡£¿·¤¿¤Ê°ÌÃÖ (¥Ð¥¤¥Èñ°Ì) -¤Ï +によって指定されたストリームにおいて、ファイル位置表示子 +(file position indicator) をセットする。新たな位置 (バイト単位) +は .I whence -¤Ç»ØÄꤵ¤ì¤¿°ÌÃÖ¤Ë +で指定された位置に .I offset -¥Ð¥¤¥È¤ò²Ã¤¨¤ë¤³¤È¤Ë¤è¤Ã¤ÆÍ¿¤¨¤é¤ì¤ë¡£ +バイトを加えることによって与えられる。 .\"O If .\"O .I whence .\"O is set to @@ -98,17 +98,17 @@ fgetpos, fseek, fsetpos, ftell, rewind \- .\"O .BR ungetc (3) .\"O function on the same stream. .I whence -¤¬ +が .BR SEEK_SET , .BR SEEK_CUR , .B SEEK_END -¤Î¤É¤ì¤«¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤½¤ì¤¾¤ì¥Õ¥¡¥¤¥ë¤ÎÀèƬ¡¢¸½ºß¤Î°ÌÃÖɽ¼¨»Ò¡¢ -¥Õ¥¡¥¤¥ë¤ÎËöÈø¤«¤é¤Î¥ª¥Õ¥»¥Ã¥È¤¬¼è¤é¤ì¤ë¡£ +のどれかになっている場合は、それぞれファイルの先頭、現在の位置表示子、 +ファイルの末尾からのオフセットが取られる。 .BR fseek () -´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤¬À®¸ù¤¹¤ë¤È¡¢¥¹¥È¥ê¡¼¥à¤Î end-of-file ɽ¼¨»Ò¤Ï -¥¯¥ê¥¢¤µ¤ì¡¢¤½¤ì¤Þ¤Ç¤Ë +関数の呼び出しが成功すると、ストリームの end-of-file 表示子は +クリアされ、それまでに .BR ungetc (3) -´Ø¿ô¤ÇÌᤷ¤¿¥Ç¡¼¥¿¤Ï¤Ê¤«¤Ã¤¿¤³¤È¤Ë¤Ê¤ë¡£ +関数で戻したデータはなかったことになる。 .PP .\"O The .\"O .BR ftell () @@ -116,10 +116,10 @@ fgetpos, fseek, fsetpos, ftell, rewind \- .\"O stream pointed to by .\"O .IR stream . .BR ftell () -´Ø¿ô¤Ï +関数は .I stream -¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿¥¹¥È¥ê¡¼¥à¤Ë¤ª¤±¤ë¡¢¥Õ¥¡¥¤¥ë°ÌÃÖɽ¼¨»Ò -¤Î¸½»þÅÀ¤Ç¤ÎÃͤòÍ¿¤¨¤ë¡£ +によって指定されたストリームにおける、ファイル位置表示子 +の現時点での値を与える。 .PP .\"O The .\"O .BR rewind () @@ -128,10 +128,10 @@ fgetpos, fseek, fsetpos, ftell, rewind \- .\"O to the beginning of the file. .\"O It is equivalent to: .BR rewind () -´Ø¿ô¤Ï +関数は .I stream -¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿¥¹¥È¥ê¡¼¥à¤Ë¤ª¤¤¤Æ¡¢¥Õ¥¡¥¤¥ë°ÌÃÖɽ¼¨»Ò -¤ò¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤Ë¥»¥Ã¥È¤¹¤ë¡£¤³¤Î´Ø¿ô¤Ï°Ê²¼¤ÈÅù²Á¤Ç¤¢¤ë¡£ +によって指定されたストリームにおいて、ファイル位置表示子 +をファイルの先頭にセットする。この関数は以下と等価である。 .PP .RS (void) fseek(stream, 0L, SEEK_SET) @@ -139,12 +139,12 @@ fgetpos, fseek, fsetpos, ftell, rewind \- .PP .\"O except that the error indicator for the stream is also cleared (see .\"O .BR clearerr (3)). -¤¿¤À¤· +ただし .BR rewind () -¤Ç¤Ï¥¹¥È¥ê¡¼¥à¤ËÂФ¹¤ë¥¨¥é¡¼É½¼¨»Ò (error indicator) ¤âƱ»þ¤Ë -¥¯¥ê¥¢¤µ¤ì¤ë ( +ではストリームに対するエラー表示子 (error indicator) も同時に +クリアされる ( .BR clearerr (3) -¤ò¸«¤è)¡£ +を見よ)。 .PP .\"O The .\"O .BR fgetpos () @@ -160,36 +160,36 @@ fgetpos, fseek, fsetpos, ftell, rewind \- .\"O object referenced by .\"O .IR pos . .BR fgetpos () -´Ø¿ô¤È +関数と .BR fsetpos () -´Ø¿ô¤Ï¡¢¤½¤ì¤¾¤ì +関数は、それぞれ .BR ftell () -¤È +と .BR fseek () -¤Ç +で .I whence -¤Ë +に .B SEEK_SET -¤ò»ØÄꤷ¤¿¾ì¹ç¤ÈƱÍͤε¡Ç½¤ò¡¢°Û¤Ê¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÇÄ󶡤¹¤ë¡£ +を指定した場合と同様の機能を、異なるインターフェースで提供する。 .BR fgetpos () -¤Ï¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤Î¸½ºß¤ÎÃͤò +はファイルオフセットの現在の値を .I pos -¤¬»²¾È¤¹¤ë¥ª¥Ö¥¸¥§¥¯¥È¤ËÊݸ¤·¡¢ +が参照するオブジェクトに保存し、 .BR fsetpos () -¤Ï¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤ò +はファイルオフセットを .I pos -¤ËÀßÄꤹ¤ë¡£ +に設定する。 .\"O On some non-UNIX systems an .\"O .I fpos_t .\"O object may be a complex object and these routines may be the only way to .\"O portably reposition a text stream. -UNIX °Ê³°¤Î¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¤Ï¡¢ +UNIX 以外のシステムにおいては、 .I fpos_t -¤¬¹½Â¤ÂΤʤɤÎÊ£»¨¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ê¤Ã¤Æ¤¤¤Æ¡¢¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤¬¥Æ¥­¥¹ -¥È¥¹¥È¥ê¡¼¥à¤Ç¥Õ¥¡¥¤¥ë°ÌÃÖ¤òÊѹ¹¤¹¤ëÊýË¡¤Î¤¦¤Á¡¢°Ü¿¢À­¤Î¤¢¤ëÍ£°ì¤Î¤â¤Î -¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤â¤¢¤ë¡£ +が構造体などの複雑なオブジェクトになっていて、これらのルーチンがテキス +トストリームでファイル位置を変更する方法のうち、移植性のある唯一のもの +になっている場合もある。 .\"O .SH "RETURN VALUES" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR rewind () .\"O function returns no value. @@ -205,25 +205,25 @@ UNIX .\"O .I errno .\"O is set to indicate the error. .BR rewind () -¤ÏÊÖ¤êÃͤò»ý¤¿¤Ê¤¤¡£ +は返り値を持たない。 .BR fgetpos (), .BR fseek (), .BR fsetpos () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ +は成功すると 0 を返す。 .BR ftell () -¤Ï¸½ºß¤Î¥ª¥Õ¥»¥Ã¥È¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¤ÏÊÖ¤êÃÍ¤Ï \-1 ¤È¤Ê¤ê¡¢ +は現在のオフセットを返す。失敗した場合は返り値は \-1 となり、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +にエラーを示す値がセットされる。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O The .\"O .I stream .\"O specified is not a seekable stream. -»ØÄꤷ¤¿ +指定した .I stream -¤¬¥·¡¼¥¯¤Ç¤­¤Ê¤¤¡£ +がシークできない。 .TP .B EINVAL .\"O The @@ -236,13 +236,13 @@ UNIX .\"O or .\"O .BR SEEK_CUR . .BR fseek () -´Ø¿ô¤ËÂФ·¤ÆÍ¿¤¨¤¿ +関数に対して与えた .I whence -°ú¿ô¤¬ +引数が .BR SEEK_SET , .BR SEEK_END , .B SEEK_CUR -°Ê³°¤ÎÃͤǤ¢¤Ã¤¿¡£ +以外の値であった。 .PP .\"O The function .\"O .BR fgetpos (), @@ -262,15 +262,15 @@ UNIX .BR fseek (), .BR fsetpos (), .BR ftell () -¤Ï¡¢¤½¤ì¤¾¤ì +は、それぞれ .BR fflush (3), .BR fstat (2), .BR lseek (2), .BR malloc (3) -¤Ê¤É¤Î¥ë¡¼¥Á¥ó¤ò¸Æ¤Ó½Ð¤¹ºÝ¤Ë¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£¤³¤Î¾ì¹ç¤Ï -¤½¤ì¤¾¤ìÂбþ¤·¤¿ +などのルーチンを呼び出す際に失敗する可能性がある。この場合は +それぞれ対応した .I errno -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .\"O .SH STANDARDS .\"O The .\"O .BR fgetpos (), @@ -280,9 +280,9 @@ UNIX .\"O and .\"O .BR rewind () .\"O functions conform to ANSI C3.159-1989 (``ANSI C''). -.SH ½àµò +.SH 準拠 C89, C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR lseek (2), .BR fseeko (3) diff --git a/draft/man3/fseeko.3 b/draft/man3/fseeko.3 index d4d21b60..1f508f39 100644 --- a/draft/man3/fseeko.3 +++ b/draft/man3/fseeko.3 @@ -27,10 +27,10 @@ .TH FSEEKO 3 2001-11-05 "" "Linux Programmer's Manual" .\"O .SH NAME .\"O fseeko, ftello \- seek to or report file position -.SH ̾Á° -fseeko, ftello \- ¥Õ¥¡¥¤¥ë°ÌÃÖ¤òõ¤¹/Êó¹ð¤¹¤ë +.SH 名前 +fseeko, ftello \- ファイル位置を探す/報告する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -40,7 +40,7 @@ fseeko, ftello \- .BI .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR fseeko () .\"O and @@ -58,26 +58,26 @@ fseeko, ftello \- .\"O is of type \fIoff_t\fP .\"O instead of \fIlong\fP. .BR fseeko () -´Ø¿ô¤ª¤è¤Ó +関数および .BR ftello () -´Ø¿ô¤Ï¡¢ -¤½¤ì¤¾¤ì +関数は、 +それぞれ .BR fseek (3) -¤ª¤è¤Ó +および .BR ftell (3) -¤ÈƱ°ì¤Îµ¡Ç½¤ò»ý¤Ä +と同一の機能を持つ .RB ( fseek (3) -¤ò¸«¤è) ¤¬¡¢¤¿¤À¤· +を見よ) が、ただし .BR fseeko () -´Ø¿ô¤Î \fIoffset\fP °ú¿ô¤È +関数の \fIoffset\fP 引数と .BR ftello () -¤ÎÊÖ¤êÃͤ¬¡¢ -\fIlong\fP ¤Ç¤Ï¤Ê¤¯ \fIoff_t\fP ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +の返り値が、 +\fIlong\fP ではなく \fIoff_t\fP になっている。 .LP .\"O On many architectures both \fIoff_t\fP and \fIlong\fP are 32-bit types, .\"O but compilation with -¿¤¯¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï -\fIoff_t\fP ¤â \fIlong\fP ¤â¶¦¤Ë 32 ¥Ó¥Ã¥È¤Î·¿¤Ç¤¢¤ë¤¬¡¢ +多くのアーキテクチャでは +\fIoff_t\fP も \fIlong\fP も共に 32 ビットの型であるが、 .RS .nf @@ -87,9 +87,9 @@ fseeko, ftello \- .RE .\"O .PP .\"O will turn \fIoff_t\fP into a 64-bit type. -¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È \fIoff_t\fP ¤Ï 64 ¥Ó¥Ã¥È·¿¤È¤Ê¤ë¡£ +でコンパイルすると \fIoff_t\fP は 64 ビット型となる。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On successful completion, .\"O .BR fseeko () .\"O returns 0, while @@ -98,31 +98,31 @@ fseeko, ftello \- .\"O Otherwise, \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR fseeko () -¤Ï 0 ¤ò¡¢ +は 0 を、 .BR ftello () -¤Ï¸½ºß¤Î¥ª¥Õ¥»¥Ã¥È¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は現在のオフセットを返す。 +失敗した場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ +にエラーを示す値をセットする。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See the ERRORS in .\"O .BR fseek (3). .BR fseek (3) -¤Î¡Ö¥¨¥é¡¼¡×¤ÎÀá¤ò»²¾È¡£ +の「エラー」の節を参照。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SUSv2, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O These functions are found on System V-like systems. .\"O They are not present in libc4, libc5, glibc 2.0 .\"O but are available since glibc 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï System V Ū¤Ê¥·¥¹¥Æ¥à¤Ë¤¢¤ë¡£ -libc4, libc5, glibc 2.0 ¤Ë¤Ï¤Ê¤«¤Ã¤¿¤¬¡¢ -glibc 2.1 ¤«¤é»È¤¨¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ +これらの関数は System V 的なシステムにある。 +libc4, libc5, glibc 2.0 にはなかったが、 +glibc 2.1 から使えるようになった。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fseek (3) diff --git a/draft/man3/ftime.3 b/draft/man3/ftime.3 index 529c5042..451ede1b 100644 --- a/draft/man3/ftime.3 +++ b/draft/man3/ftime.3 @@ -40,28 +40,28 @@ .TH FTIME 3 2010-02-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O ftime \- return date and time -.SH ̾Á° -ftime \- ÆüÉդȻþ´Ö¤òÊÖ¤¹ +.SH 名前 +ftime \- 日付と時間を返す .\"O .SH SYNOPSIS .\"O .B "#include " .\"O .sp .\"O .BI "int ftime(struct timeb *" tp ); -.SH ½ñ¼° +.SH 書式 .B "#include " .sp .BI "int ftime(struct timeb *" tp ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This function returns the current time as seconds and milliseconds .\"O since the Epoch, 1970-01-01 00:00:00 +0000 (UTC). .\"O The time is returned in .\"O .IR tp , .\"O which is declared as follows: -¤³¤Î´Ø¿ô¤Ï¸½ºß¤Î»þ¹ï¤ò¡¢µª¸µ (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) -¤«¤é¤ÎÉÿô¤È¥ß¥êÉÿô¤ÇÊÖ¤¹¡£ -»þ¹ï¤Ï +この関数は現在の時刻を、紀元 (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) +からの秒数とミリ秒数で返す。 +時刻は .I tp -¤ÇÊÖ¤µ¤ì¡¢¤³¤ì¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +で返され、これは以下のように定義されている: .sp .in +4n .nf @@ -83,33 +83,33 @@ struct timeb { .\"O The \fIdstflag\fP field .\"O is a flag that, if nonzero, indicates that Daylight Saving time .\"O applies locally during the appropriate part of the year. -¤³¤³¤Ç¡¢\fItime\fP ¤Ïµª¸µ (the Epoch) ¤«¤é¤ÎÉÿô¡¢ -\fImillitm\fP ¤Ï µª¸µ¤«¤é \fItime\fP Éø夫¤é¤Î¥ß¥êÉÿô¤Ç¤¢¤ë¡£ -\fItimezone\fP ¥Õ¥£¡¼¥ë¥É¤Ï¥°¥ê¥Ë¥Ã¥¸¤«¤éÀ¾¼þ¤ê¤Îʬ¤Ç·×¬¤µ¤ì¤ë -¥í¡¼¥«¥ë¥¿¥¤¥à¥¾¡¼¥ó¤Ç¤¢¤ë(Éé¿ô¤Î¾ì¹ç¤Ï¥°¥ê¥Ë¥Ã¥¸¤«¤é¤ÎÅì²ó¤ê¤Îʬ¤ò -¼¨¤¹)¡£ -\fIdstflag\fP ¥Õ¥£¡¼¥ë¥É¤Ï¡¢¤â¤· 0 ¤Ç¤Ê¤±¤ì¤Ð°ìǯ¤Î°ìÉô¤Ç²Æ»þ´Ö¤¬ -¸ºß¤¹¤ë¤³¤È¤ò¼¨¤¹¥Õ¥é¥°¤Ç¤¢¤ë¡£ +ここで、\fItime\fP は紀元 (the Epoch) からの秒数、 +\fImillitm\fP は 紀元から \fItime\fP 秒後からのミリ秒数である。 +\fItimezone\fP フィールドはグリニッジから西周りの分で計測される +ローカルタイムゾーンである(負数の場合はグリニッジからの東回りの分を +示す)。 +\fIdstflag\fP フィールドは、もし 0 でなければ一年の一部で夏時間が +存在することを示すフラグである。 .LP .\"O POSIX.1-2001 says that the contents of the \fItimezone\fP and \fIdstflag\fP .\"O fields are unspecified; avoid relying on them. -POSIX.1-2001 ¤Ç¤Ï¡¢\fItimezone\fP ¤È \fIdstflag\fP ¤ÎÆâÍƤÏ̤ÄêµÁ¤Ç¤¢¤ë; -¤³¤ì¤ËÍê¤ë¤Î¤ÏÈò¤±¤ë¤³¤È¡£ +POSIX.1-2001 では、\fItimezone\fP と \fIdstflag\fP の内容は未定義である; +これに頼るのは避けること。 \"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 \"O This function always returns 0. -¤³¤Î´Ø¿ô¤Ï¾ï¤Ë 0 ¤òÊÖ¤¹¡£ +この関数は常に 0 を返す。 .\"O (POSIX.1-2001 specifies, and some systems document, a \-1 error return.) -(POSIX.1-2001 »ÅÍ͵ڤӤ¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Î¥É¥­¥å¥á¥ó¥È¤Ç¤Ï¡¢ -¥¨¥é¡¼»þ¤Ë \-1 ¤òÊÖ¤¹¡£) +(POSIX.1-2001 仕様及びいくつかのシステムのドキュメントでは、 +エラー時に \-1 を返す。) \"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.2BSD, POSIX.1-2001. .\"O POSIX.1-2008 removes the specification of .\"O .BR ftime (). -POSIX.1-2008 ¤Ç¤Ï +POSIX.1-2008 では .BR ftime () -¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ +の仕様が削除されている。 .\"O This function is obsolete. .\"O Don't use it. @@ -121,31 +121,31 @@ POSIX.1-2008 .\"O gives microseconds; .\"O .BR clock_gettime (2) .\"O gives nanoseconds but is not as widely available. -¤³¤Î´Ø¿ô¤Ï¸Å¤¤¤â¤Î¤Ç¤¢¤ë¡£»È¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -ÉÃñ°Ì¤Î»þ´Ö¤Ç½½Ê¬¤Ê¤é¡¢ +この関数は古いものである。使ってはならない。 +秒単位の時間で十分なら、 .BR time (2) -¤¬ÍøÍѤǤ­¤ë¡£ +が利用できる。 .BR gettimeofday (2) -¤Ç¥Þ¥¤¥¯¥íÉä¬ÆÀ¤é¤ì¤ë¡£ +でマイクロ秒が得られる。 .BR clock_gettime (2) -¤Ç¥Ê¥ÎÉä¬ÆÀ¤é¤ì¤ë¤¬¡¢¹­¤¯ÍøÍѲÄǽ¤ÊÌõ¤Ç¤Ï¤Ê¤¤¡£ +でナノ秒が得られるが、広く利用可能な訳ではない。 \"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .LP .\"O Under libc4 and libc5 the \fImillitm\fP field is meaningful. .\"O But early glibc2 is buggy and returns 0 there; \"O glibc 2.1.1 is correct again. -\fImillitm\fP ¥Õ¥£¡¼¥ë¥É¤Ï¡¢libc4 ¤È libc5 ¤Ç¤ÏÀµ¤·¤¯Æ°ºî¤¹¤ë¡£ -¤·¤«¤·¡¢½é´ü¤Î glibc2 ¤Ç¤Ï¥Ð¥°¤¬¤¢¤ê¡¢¾ï¤Ë 0 ¤òÊÖ¤¹¡£ -glibc 2.1.1 ¤«¤éºÆ¤ÓÀµ¾ï¤Ë¤Ê¤Ã¤¿¡£ +\fImillitm\fP フィールドは、libc4 と libc5 では正しく動作する。 +しかし、初期の glibc2 ではバグがあり、常に 0 を返す。 +glibc 2.1.1 から再び正常になった。 \"O .\" .SH HISTORY \"O .\" The \"O .\" .B ftime() \"O .\" function appeared in 4.2BSD. -.\" .SH Îò»Ë +.\" .SH 歴史 .\" .BR ftime () -.\" ´Ø¿ô¤Ï 4.2BSD ¤Ë¸½¤ì¤¿¡£ +.\" 関数は 4.2BSD に現れた。 \"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR gettimeofday (2), .BR time (2) diff --git a/draft/man3/ftok.3 b/draft/man3/ftok.3 index 07046d41..75afe1ad 100644 --- a/draft/man3/ftok.3 +++ b/draft/man3/ftok.3 @@ -31,10 +31,10 @@ .TH FTOK 3 2001-11-28 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O ftok \- convert a pathname and a project identifier to a System V IPC key -.SH ̾Á° -ftok \- ¥Ñ¥¹Ì¾¤È¥×¥í¥¸¥§¥¯¥È¼±Ê̻Ҥò System V IPC ¥­¡¼¤ËÊÑ´¹¤¹¤ë +.SH 名前 +ftok \- パス名とプロジェクト識別子を System V IPC キーに変換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -42,7 +42,7 @@ ftok \- .sp .BI "key_t ftok(const char *" pathname ", int " proj_id ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR ftok () .\"O function uses the identity of the file named by the given @@ -58,19 +58,19 @@ ftok \- .\"O or .\"O .BR shmget (2). .BR ftok () -´Ø¿ô¤Ï +関数は .I pathname -¤ÇÍ¿¤¨¤é¤ì¤¿¥Õ¥¡¥¤¥ë (¸ºß¤·¡¢¥¢¥¯¥»¥¹²Äǽ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤) -¤Î¥Õ¥¡¥¤¥ë̾¤Î¼±Ê̾ðÊó (identity) ¤È¡¢ +で与えられたファイル (存在し、アクセス可能でなければならない) +のファイル名の識別情報 (identity) と、 .I proj_id -(0 ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤) ¤ÎÄã°Ì 8 ¥Ó¥Ã¥È¤È¤òÍѤ¤¤Æ¡¢ +(0 であってはならない) の低位 8 ビットとを用いて、 .I key_t -·¿¤Î System V IPC ¥­¡¼¤òÀ¸À®¤¹¤ë¡£ -¤³¤Î¥­¡¼¤Ï +型の System V IPC キーを生成する。 +このキーは .BR msgget (2), .BR semget (2), .BR shmget (2) -¤Ê¤É¤Ç¤ÎÍøÍѤËŬ¤·¤Æ¤¤¤ë¡£ +などでの利用に適している。 .LP .\"O The resulting value is the same for all pathnames that .\"O name the same file, when the same value of @@ -78,14 +78,14 @@ ftok \- .\"O is used. .\"O The value returned should be different when the .\"O (simultaneously existing) files or the project IDs differ. -Ʊ¤¸¥Õ¥¡¥¤¥ë¤ò¼¨¤¹¤¢¤é¤æ¤ë¥Ñ¥¹Ì¾¤È¡¢Æ±¤¸ +同じファイルを示すあらゆるパス名と、同じ .I proj_id -¤ËÂФ·¤Æ¤Ï¡¢·ë²Ì¤ÎÃͤÏÅù¤·¤¯¤Ê¤ë¡£ -¥Õ¥¡¥¤¥ë¤¬°ã¤Ã¤¿¤ê (¤³¤Î¾ì¹çξ¼Ô¤ÏƱ»þ¤Ë¸ºß¤·¤Æ¤¤¤ë¤Ï¤º)¡¢ +に対しては、結果の値は等しくなる。 +ファイルが違ったり (この場合両者は同時に存在しているはず)、 .I proj_id -¤¬°Û¤Ê¤ë¤È¡¢ÊÖ¤êÃͤâ°Û¤Ê¤ë¡£ +が異なると、返り値も異なる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, the generated .\"O .I key_t .\"O value is returned. @@ -94,22 +94,22 @@ ftok \- .\"O indicating the error as for the .\"O .BR stat (2) .\"O system call. -À®¸ù¤·¤¿¾ì¹ç¤ÏÀ¸À®¤µ¤ì¤¿ +成功した場合は生成された .I key_t -¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¡£ -¼ºÇÔ¤¹¤ë¤È \-1 ¤¬ÊÖ¤µ¤ì¡¢¥¨¥é¡¼¤ÎÆâÍƤ¬ +の値が返される。 +失敗すると \-1 が返され、エラーの内容が .B errno -¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£¤³¤ÎÆâÍƤϥ·¥¹¥Æ¥à¥³¡¼¥ë +に書き込まれる。この内容はシステムコール .BR stat (2) -¤Î¤â¤Î¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +のものと同じである。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Under libc4 and libc5 (and under SunOS 4.x) the prototype was: -libc4 ¤È libc5 (¤ª¤è¤Ó SunOS 4.x) ¤Ç¤Ï¡¢ -¥×¥í¥È¥¿¥¤¥×¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +libc4 と libc5 (および SunOS 4.x) では、 +プロトタイプは以下のようになっている。 .sp .RS .BI "key_t ftok(char *" pathname ", char " proj_id ); @@ -125,16 +125,16 @@ libc4 .\"O that is why the behavior is said to be undefined when .\"O .I proj_id .\"O is zero. -¸½ºß¤Ç¤Ï +現在では .I proj_id -¤Ï +は .I int -¤À¤¬¡¢°ÍÁ³¤È¤·¤Æ 8 ¥Ó¥Ã¥È¤·¤«ÍѤ¤¤é¤ì¤Ê¤¤¡£ -Ä̾ï¤Ï ASCII ¥­¥ã¥é¥¯¥¿¤¬ +だが、依然として 8 ビットしか用いられない。 +通常は ASCII キャラクタが .I proj_id -¤ËÍѤ¤¤é¤ì¤ë¡£ +に用いられる。 .I proj_id -¤¬ 0 ¤Î¤È¤­¤Î¿¶¤ëÉñ¤¤¤¬Ì¤ÄêµÁ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ï¡¢¤³¤ì¤¬Íýͳ¤Ç¤¢¤ë¡£ +が 0 のときの振る舞いが未定義になっているのは、これが理由である。 .LP .\"O Of course no guarantee can be given that the resulting .\"O .I key_t @@ -147,20 +147,20 @@ libc4 .\"O .I /dev/hda1 .\"O and files on .\"O .IR /dev/sda1 . -¤â¤Á¤í¤ó +もちろん .I key_t -¤¬Â¾¤È½Å¤Ê¤é¤Ê¤¤¤â¤Î¤Ç¤¢¤ë¤«¤É¤¦¤«¤ÏÊݾڤµ¤ì¤Ê¤¤¡£ -ºÇÁ±¤Î¾ì¹ç¤ÎÁȤ߹ç¤ï¤»¤ò¹Í¤¨¤Æ¤â¡¢ +が他と重ならないものであるかどうかは保証されない。 +最善の場合の組み合わせを考えても、 .I proj_id -¤Î 1 ¥Ð¥¤¥È¡¢i ¥Î¡¼¥ÉÈÖ¹æ¤ÎÄã°Ì 16 ¥Ó¥Ã¥È¡¢¤ª¤è¤Ó -¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤ÎÄã°Ì 8 ¥Ó¥Ã¥È¤Ê¤Î¤Ç¡¢·ë²Ì¤Ï 32 ¥Ó¥Ã¥È¤Ë²á¤®¤Ê¤¤¡£ -Î㤨¤Ð +の 1 バイト、i ノード番号の低位 16 ビット、および +デバイス番号の低位 8 ビットなので、結果は 32 ビットに過ぎない。 +例えば .I /dev/hda1 -¤È +と .I /dev/sda1 -¤½¤ì¤¾¤ì¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡¢¾×ÆͤÏÍưפ˵¯¤³¤ê¤¦¤ë¡£ +それぞれにあるファイルに対して、衝突は容易に起こりうる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR msgget (2), .BR semget (2), .BR shmget (2), diff --git a/draft/man3/fts.3 b/draft/man3/fts.3 index 9c30ac48..c2b1cac7 100644 --- a/draft/man3/fts.3 +++ b/draft/man3/fts.3 @@ -40,21 +40,21 @@ .\" Translated Tue Jul 11 19:02:58 JST 2000 .\" by Yuichi SATO .\" -.\"WORD: hierarchy ³¬ÁØ -.\"WORD: traverse ¤¿¤É¤ë -.\"WORD: pointer ¥Ý¥¤¥ó¥¿ -.\"WORD: restore Éü¸µ¤¹¤ë -.\"WORD: null-terminated NULL ½ªÃ¼¤µ¤ì¤¿ +.\"WORD: hierarchy 階層 +.\"WORD: traverse たどる +.\"WORD: pointer ポインタ +.\"WORD: restore 復元する +.\"WORD: null-terminated NULL 終端された .\" .TH FTS 3 2007-12-28 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fts, fts_open, fts_read, fts_children, fts_set, fts_close \- \ .\"O traverse a file hierarchy fts, fts_open, fts_read, fts_children, fts_set, fts_close \- \ -¥Õ¥¡¥¤¥ë³¬Áؤò¤¿¤É¤ë +ファイル階層をたどる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -72,7 +72,7 @@ fts, fts_open, fts_read, fts_children, fts_set, fts_close \- \ .BI "int fts_close(FTS *" ftsp ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O fts functions are provided for traversing .\"O file hierarchies. @@ -81,10 +81,10 @@ fts, fts_open, fts_read, fts_children, fts_set, fts_close \- \ .\"O function returns a "handle" on a file hierarchy, which is then supplied to .\"O the other .\"O fts functions. -fts ´Ø¿ô·²¤Ï¡¢¥Õ¥¡¥¤¥ë³¬Áؤò¤¿¤É¤ë¤¿¤á¤ËÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ -´Êñ¤Ë³µÎ¬¤¹¤ë¤È¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¡£ +fts 関数群は、ファイル階層をたどるために提供されている。 +簡単に概略すると次のようになる。 .BR fts_open () -´Ø¿ô¤Ï¡¢Â¾¤Î fts ´Ø¿ô·²¤ËÅϤ¹¤¿¤á¤Î¡¢¥Õ¥¡¥¤¥ë³¬ÁؤΡ֥ϥó¥É¥ë¡×¤òÊÖ¤¹¡£ +関数は、他の fts 関数群に渡すための、ファイル階層の「ハンドル」を返す。 .\"O The function .\"O .BR fts_read () .\"O returns a pointer to a structure describing one of the files in the file @@ -101,18 +101,18 @@ fts .\"O or physically (visiting symbolic links), order the walk of the hierarchy or .\"O prune and/or revisit portions of the hierarchy. .BR fts_read () -´Ø¿ô¤Ï¡¢¥Õ¥¡¥¤¥ë³¬ÁØÃæ¤Ë¤¢¤ë 1 ¤Ä¤Î¥Õ¥¡¥¤¥ë¤òµ­½Ò¤¹¤ë¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ +関数は、ファイル階層中にある 1 つのファイルを記述する構造体へのポインタを返す。 .BR fts_children () -´Ø¿ô¤Ï¡¢³¬ÁØÃæ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤òµ­½Ò¤¹¤ë¹½Â¤ÂΤΠ-¥ê¥ó¥¯¥ê¥¹¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -°ìÈ̤˥ǥ£¥ì¥¯¥È¥ê¤Ï¡¢ -preorder (ÀµÊý¸þ¡§²¼¤Î³¬ÁؤΥǥ£¥ì¥¯¥È¥ê¤ò¤¿¤É¤ëÁ°) ¤È -postorder (µÕÊý¸þ¡§²¼¤Î³¬ÁؤΥǥ£¥ì¥¯¥È¥ê¤ò¤¹¤Ù¤Æ¤¿¤É¤Ã¤¿¸å) ¤È¤¤¤¦¡¢ -°Û¤Ê¤ëÊý¸þ¤Ç 2 ²ó¤¿¤É¤é¤ì¤ë¡£¥Õ¥¡¥¤¥ë¤Ï 1 ²ó¤¿¤É¤é¤ì¤ë¡£ -¥Ç¥£¥ì¥¯¥È¥ê³¬Áؤò¡ÖÏÀÍýŪ¤Ë¡×(¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥°¤ò̵»ë¤·¤Æ) °ÜÆ°¤¹¤ë¤³¤È¤â¡¢ -ʪÍýŪ¤Ë (¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ò¤¿¤É¤Ã¤Æ) °ÜÆ°¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¢¤ë¡£ -¤Þ¤¿¡¢³¬ÁØÃæ¤Î°ÜÆ°¤ÎÆ»¶Ú¤ò»Ø¼¨¤¹¤ë¤³¤È¡¦ -;ʬ¤Ê¤â¤Î¤ò¼è¤ê½ü¤¯¤³¤È¡¦³¬ÁؤΰìÉô¤òºÆ¤Ó¤¿¤É¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£ +関数は、階層中のディレクトリにあるファイルを記述する構造体の +リンクリストへのポインタを返す。 +一般にディレクトリは、 +preorder (正方向:下の階層のディレクトリをたどる前) と +postorder (逆方向:下の階層のディレクトリをすべてたどった後) という、 +異なる方向で 2 回たどられる。ファイルは 1 回たどられる。 +ディレクトリ階層を「論理的に」(シンボリックリングを無視して) 移動することも、 +物理的に (シンボリックリンクをたどって) 移動することも可能である。 +また、階層中の移動の道筋を指示すること・ +余分なものを取り除くこと・階層の一部を再びたどることが可能である。 .PP .\"O Two structures are defined (and typedef'd) in the include file .\"O .IR . @@ -134,23 +134,23 @@ postorder ( .\"O .I FTSENT .\"O structure contains at least the following fields, which are .\"O described in greater detail below: -2 ¤Ä¤Î¹½Â¤ÂΤ¬¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +2 つの構造体がインクルードファイル .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë (¤µ¤é¤Ë typedef ¤µ¤ì¤Æ¤¤¤ë)¡£ -1 ¤ÄÌܤϡ¢¥Õ¥¡¥¤¥ë³¬Áؤ½¤Î¤â¤Î¤òɽ¸½¤¹¤ë +で定義されている (さらに typedef されている)。 +1 つ目は、ファイル階層そのものを表現する .I FTS -¹½Â¤ÂΤǤ¢¤ë¡£ -2 ¤ÄÌܤϡ¢¥Õ¥¡¥¤¥ë³¬ÁØÃæ¤Î¥Õ¥¡¥¤¥ë¤òɽ¸½¤¹¤ë +構造体である。 +2 つ目は、ファイル階層中のファイルを表現する .I FTSENT -¹½Â¤ÂΤǤ¢¤ë¡£ +構造体である。 .I FTSENT -¹½Â¤ÂΤÏÄ̾¥Õ¥¡¥¤¥ë³¬ÁØÃæ¤Î¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤ÆÊÖ¤µ¤ì¤ë¡£ -¤³¤Î man ¥Ú¡¼¥¸¤Ç¤Ï¡¢¡Ö¥Õ¥¡¥¤¥ë¡×¤È -.RI ¡Ö FTSENT -¹½Â¤ÂΡפò°ìÈ̤ËÆɤßÊѤ¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +構造体は通常、ファイル階層中のすべてのファイルに対して返される。 +この man ページでは、「ファイル」と +.RI 「 FTSENT +構造体」を一般に読み変えることができる。 .I FTSENT -¹½Â¤ÂΤϡ¢¾¯¤Ê¤¯¤È¤â¼¡¤Î¤è¤¦¤Ê¥Õ¥£¡¼¥ë¥É¤ò»ý¤Ã¤Æ¤ª¤ê¡¢ -°Ê²¼¤Ç¤è¤ê¾Ü¤·¤¯ÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡£ +構造体は、少なくとも次のようなフィールドを持っており、 +以下でより詳しく説明されている。 .in +4n .nf @@ -171,26 +171,26 @@ postorder ( .\"O struct stat *fts_statp; /* stat(2) information */ .\"O } FTSENT; typedef struct _ftsent { - unsigned short fts_info; /* FTSENT ¹½Â¤ÂΤΤ¿¤á¤Î¥Õ¥é¥° */ - char *fts_accpath; /* ¥¢¥¯¥»¥¹¥Ñ¥¹ */ - char *fts_path; /* ¥ë¡¼¥È¥Ñ¥¹ */ - short fts_pathlen; /* fts_path ¤ÎŤµ */ - char *fts_name; /* ¥Õ¥¡¥¤¥ë̾ */ - short fts_namelen; /* fts_name ¤ÎŤµ */ - short fts_level; /* ¿¼¤µ (\-1 ¡Á N) */ - int fts_errno; /* ¥Õ¥¡¥¤¥ë¤Î¥¨¥é¡¼ÈÖ¹æ */ - long fts_number; /* ¥í¡¼¥«¥ë¤ÊÈÖ¹æ */ - void *fts_pointer; /* ¥í¡¼¥«¥ë¤Ê¥¢¥É¥ì¥¹ÈÖ¹æ */ - struct ftsent *fts_parent; /* ¿Æ¥Ç¥£¥ì¥¯¥È¥ê */ - struct ftsent *fts_link; /* ¼¡¤Î¥Õ¥¡¥¤¥ë¹½Â¤ÂÎ */ - struct ftsent *fts_cycle; /* ½Û´Ä¤·¤Æ¤¤¤ë¹½Â¤ÂÎ */ - struct stat *fts_statp; /* stat(2) ¤Î¾ðÊó */ + unsigned short fts_info; /* FTSENT 構造体のためのフラグ */ + char *fts_accpath; /* アクセスパス */ + char *fts_path; /* ルートパス */ + short fts_pathlen; /* fts_path の長さ */ + char *fts_name; /* ファイル名 */ + short fts_namelen; /* fts_name の長さ */ + short fts_level; /* 深さ (\-1 〜 N) */ + int fts_errno; /* ファイルのエラー番号 */ + long fts_number; /* ローカルな番号 */ + void *fts_pointer; /* ローカルなアドレス番号 */ + struct ftsent *fts_parent; /* 親ディレクトリ */ + struct ftsent *fts_link; /* 次のファイル構造体 */ + struct ftsent *fts_cycle; /* 循環している構造体 */ + struct stat *fts_statp; /* stat(2) の情報 */ } FTSENT; .fi .in .PP .\"O These fields are defined as follows: -¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢¼¡¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +これらのフィールドは、次のように定義されている。 .\" .Bl -tag -width "fts_namelen" .TP 12 .IR fts_info @@ -203,20 +203,20 @@ typedef struct _ftsent { .\"O all of these .\"O entries are terminal, that is, they will not be revisited, nor will any .\"O of their descendants be visited. -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢ÊÖ¤µ¤ì¤¿ +このフィールドは、返された .I FTSENT -¹½Â¤ÂΤȥե¡¥¤¥ë¤òÀâÌÀ¤¹¤ë°Ê²¼¤Î¥Õ¥é¥°¤Î¤¤¤º¤ì¤«¤òɽ¤·¤Æ¤¤¤ë¡£ -¥¨¥é¡¼¤Î¤Ê¤¤¥Ç¥£¥ì¥¯¥È¥ê +構造体とファイルを説明する以下のフラグのいずれかを表している。 +エラーのないディレクトリ .RB ( FTS_D ), -¤Î¾ì¹ç¤ÏÎã³°¤È¤·¤Æ¡¢¤½¤ì°Ê³°¤Î¤¹¤Ù¤Æ¤Î¥¨¥ó¥È¥ê¤Ï½ªÃ¼¤Ç¤¢¤ë¡£ -¤Ä¤Þ¤ê¡¢¥¨¥ó¥È¥ê¤ÏºÆ¤Ó¤¿¤É¤é¤ì¤ë¤³¤È¤â¤Ê¤¯¡¢ -¤½¤ì¤è¤ê²¼¤Î³¬Áؤ¬¤¿¤É¤é¤ì¤ë¤³¤È¤â¤Ê¤¤¡£ +の場合は例外として、それ以外のすべてのエントリは終端である。 +つまり、エントリは再びたどられることもなく、 +それより下の階層がたどられることもない。 .\" .Bl -tag -width FTS_DEFAULT .RS 12 .TP 12 .BR FTS_D .\"O A directory being visited in preorder. -preorder ¤Ç¤¿¤É¤é¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¡£ +preorder でたどられるディレクトリ。 .TP .BR FTS_DC .\"O A directory that causes a cycle in the tree. @@ -225,11 +225,11 @@ preorder .\"O field of the .\"O .I FTSENT .\"O structure will be filled in as well.) -¥Ä¥ê¡¼¤ÎÃæ¤Ç½Û´Ä¤·¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¡£ +ツリーの中で循環しているディレクトリ。 .RI ( FTSENT -¹½Â¤ÂΤΠ+構造体の .I fts_cycle -¥Õ¥£¡¼¥ë¥É¤âƱÍͤËËä¤á¤é¤ì¤ë¡£) +フィールドも同様に埋められる。) .TP .BR FTS_DEFAULT .\"O Any @@ -238,22 +238,22 @@ preorder .\"O by one of the other .\"O .I fts_info .\"O values. -¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤òɽ¸½¤¹¤ë +ファイルタイプを表現する .I FTSENT -¹½Â¤ÂΤ¬¡¢ +構造体が、 .I fts_info -¤Î¾¤Î¤¤¤º¤ì¤«¤ÎÃͤÇÌÀ¼¨Åª¤ËÀâÌÀ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +の他のいずれかの値で明示的に説明されていない。 .TP .BR FTS_DNR .\"O A directory which cannot be read. .\"O This is an error return, and the .\"O .I fts_errno .\"O field will be set to indicate what caused the error. -Æɤ߹þ¤ß¤¬¤Ç¤­¤Ê¤¤¥Ç¥£¥ì¥¯¥È¥ê¡£ -¤³¤ì¤Ï¥¨¥é¡¼¤Î¾ì¹ç¤ÎÊÖ¤êÃͤǤ¢¤ê¡¢ -²¿¤¬¥¨¥é¡¼¤òµ¯¤³¤·¤¿¤«¤ò¼¨¤¹¤¿¤á¤Ë +読み込みができないディレクトリ。 +これはエラーの場合の返り値であり、 +何がエラーを起こしたかを示すために .I fts_errno -¥Õ¥£¡¼¥ë¥É¤¬ÀßÄꤵ¤ì¤ë¡£ +フィールドが設定される。 .TP .BR FTS_DOT .\"O A file named @@ -265,11 +265,11 @@ preorder .\"O (see .\"O .BR FTS_SEEDOT ). .BR fts_open () -¤Ø¤Î¥Õ¥¡¥¤¥ë̾¤È¤·¤Æ»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿ -"." ¤Þ¤¿¤Ï ".." -¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë +へのファイル名として指定されなかった +"." または ".." +という名前のファイル .RB ( FTS_SEEDOT -¤ò»²¾È¤¹¤ë¤³¤È)¡£ +を参照すること)。 .TP .BR FTS_DP .\"O A directory being visited in postorder. @@ -280,26 +280,26 @@ preorder .\"O .I fts_info .\"O field set to .\"O .BR FTS_D . -postorder ¤Ç¤¿¤É¤é¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¡£ +postorder でたどられるディレクトリ。 .I FTSENT -¹½Â¤ÂΤÎÆâÍƤϡ¢preorder ¤Î¤È¤­¤ËÊÖ¤µ¤ì¤¿¾õÂÖ -(¤Ä¤Þ¤ê¡¢ +構造体の内容は、preorder のときに返された状態 +(つまり、 .I fts_info -¥Õ¥£¡¼¥ë¥É¤¬ +フィールドが .B FTS_D -¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾õÂÖ) ¤«¤éÊѹ¹¤µ¤ì¤Ê¤¤¡£ +に設定されている状態) から変更されない。 .TP .B FTS_ERR .\"O This is an error return, and the .\"O .I fts_errno .\"O field will be set to indicate what caused the error. -¤³¤ì¤Ï¥¨¥é¡¼¤Î¾ì¹ç¤ÎÊÖ¤êÃͤǤ¢¤ê¡¢ +これはエラーの場合の返り値であり、 .I fts_errno -¥Õ¥£¡¼¥ë¥É¤Ï¡¢²¿¤¬¥¨¥é¡¼¤òµ¯¤³¤·¤¿¤«¤ò¼¨¤¹ÃͤËÀßÄꤵ¤ì¤ë¡£ +フィールドは、何がエラーを起こしたかを示す値に設定される。 .TP .B FTS_F .\"O A regular file. -Ä̾ï¤Î¥Õ¥¡¥¤¥ë¡£ +通常のファイル。 .TP .B FTS_NS .\"O A file for which no @@ -312,12 +312,12 @@ postorder .\"O .I fts_errno .\"O field will be set to indicate what caused the error. .BR stat (2) -¾ðÊó¤¬ÆÀ¤é¤ì¤Ê¤«¤Ã¤¿¥Õ¥¡¥¤¥ë¡£ +情報が得られなかったファイル。 .I fts_statp -¥Õ¥£¡¼¥ë¥É¤ÎÆâÍƤÏÄêµÁ¤µ¤ì¤Ê¤¤¡£ -¤³¤ì¤Ï¥¨¥é¡¼¤Î¾ì¹ç¤ÎÊÖ¤êÃͤǤ¢¤ê¡¢ +フィールドの内容は定義されない。 +これはエラーの場合の返り値であり、 .I fts_errno -¥Õ¥£¡¼¥ë¥É¤Ï¡¢²¿¤¬¥¨¥é¡¼¤òµ¯¤³¤·¤¿¤«¤ò¼¨¤¹ÃͤËÀßÄꤵ¤ì¤ë¡£ +フィールドは、何がエラーを起こしたかを示す値に設定される。 .TP .B FTS_NSOK .\"O A file for which no @@ -327,13 +327,13 @@ postorder .\"O .I fts_statp .\"O field are undefined. .BR stat (2) -¾ðÊó¤¬Í׵ᤵ¤ì¤Ê¤«¤Ã¤¿¥Õ¥¡¥¤¥ë¡£ +情報が要求されなかったファイル。 .I fts_statp -¥Õ¥£¡¼¥ë¥É¤ÎÆâÍƤÏÄêµÁ¤µ¤ì¤Ê¤¤¡£ +フィールドの内容は定義されない。 .TP .B FTS_SL .\"O A symbolic link. -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¡£ +シンボリックリンク。 .TP .B FTS_SLNONE .\"O A symbolic link with a non-existent target. @@ -341,41 +341,41 @@ postorder .\"O .I fts_statp .\"O field reference the file characteristic information for the symbolic link .\"O itself. -¥ê¥ó¥¯Àè¤Î¸ºß¤·¤Ê¤¤¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¡£ +リンク先の存在しないシンボリックリンク。 .I fts_statp -¥Õ¥£¡¼¥ë¥É¤ÎÆâÍƤϡ¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤½¤Î¤â¤Î¤Î¥Õ¥¡¥¤¥ëÆÃÀ­¾ðÊó¤ò»²¾È¤¹¤ë¡£ +フィールドの内容は、シンボリックリンクそのもののファイル特性情報を参照する。 .\" .El .RE .TP .IR fts_accpath .\"O A path for accessing the file from the current directory. -¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Î¥Ñ¥¹¡£ +現在のディレクトリからファイルにアクセスするためのパス。 .TP .IR fts_path .\"O The path for the file relative to the root of the traversal. .\"O This path contains the path specified to .\"O .BR fts_open () .\"O as a prefix. -³¬Áؤò¤¿¤É¤ë¤È¤­¤Î¥ë¡¼¥È¤«¤é¤ß¤¿¥Õ¥¡¥¤¥ë¤ÎÁêÂÐŪ¤Ê¥Ñ¥¹¡£ -¤³¤Î¥Ñ¥¹¤Ë¤Ï¡¢ +階層をたどるときのルートからみたファイルの相対的なパス。 +このパスには、 .BR fts_open () -¤Ë»ØÄꤷ¤¿¥Ñ¥¹¤¬¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤È¤·¤Æ´Þ¤Þ¤ì¤ë¡£ +に指定したパスがプレフィックスとして含まれる。 .TP .IR fts_pathlen .\"O The length of the string referenced by .\"O .IR fts_path . .I fts_path -¤Ç»²¾È¤µ¤ì¤ëʸ»úÎó¤ÎŤµ¡£ +で参照される文字列の長さ。 .TP .IR fts_name .\"O The name of the file. -¥Õ¥¡¥¤¥ë¤Î̾Á°¡£ +ファイルの名前。 .TP .IR fts_namelen .\"O The length of the string referenced by .\"O .IR fts_name . .I fts_name -¤Ç»²¾È¤µ¤ì¤ëʸ»úÎó¤ÎŤµ¡£ +で参照される文字列の長さ。 .TP .IR fts_level .\"O The depth of the traversal, numbered from \-1 to N, where this file @@ -387,14 +387,14 @@ postorder .\"O .I FTSENT .\"O structure for the root .\"O itself is numbered 0. -³¬Áؤò¤¿¤É¤Ã¤Æ¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤¬¤ß¤Ä¤«¤Ã¤¿¿¼¤µ¡£ -\-1 ¡Á N ¤Î¿ôÃͤÇɽ¤µ¤ì¤ë¡£ -³¬Áؤò¤¿¤É¤ë¤È¤­¤Î½ÐȯÅÀ (¥ë¡¼¥È) ¤Î¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤òɽ¤¹ +階層をたどって、このファイルがみつかった深さ。 +\-1 〜 N の数値で表される。 +階層をたどるときの出発点 (ルート) の親ディレクトリを表す .I FTSENT -¹½Â¤ÂÎ¤Ç¤Ï \-1 ¤È¤Ê¤ë¡£ -¤Þ¤¿¡¢¥ë¡¼¥È¼«¿È¤Î +構造体では \-1 となる。 +また、ルート自身の .I FTSENT -¹½Â¤ÂÎ¤Ç¤Ï 0 ¤Ë¤Ê¤ë¡£ +構造体では 0 になる。 .TP .IR fts_errno .\"O Upon return of a @@ -418,35 +418,35 @@ postorder .\"O Otherwise, the contents of the .\"O .I fts_errno .\"O field are undefined. -´Ø¿ô +関数 .BR fts_children () -¤È +と .BR fts_read () -¤«¤éÊÖ¤µ¤ì¤ë +から返される .I FTSENT -¹½Â¤ÂΤΠ+構造体の .I fts_info -¥Õ¥£¡¼¥ë¥É¤¬ +フィールドが .BR FTS_DNR , .BR FTS_ERR , .B FTS_NS -¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ +に設定されている場合、 .I fts_errno -¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¥¨¥é¡¼¤Î¸¶°ø¤ò¼¨¤¹³°ÉôÊÑ¿ô +フィールドにはエラーの原因を示す外部変数 .I errno -¤ÎÃͤ¬Æþ¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢ +の値が入る。 +それ以外の場合、 .I fts_errno -¥Õ¥£¡¼¥ë¥É¤ÎÆâÍƤÏÄêµÁ¤µ¤ì¤Ê¤¤¡£ +フィールドの内容は定義されない。 .TP .IR fts_number .\"O This field is provided for the use of the application program and is .\"O not modified by the .\"O fts functions. .\"O It is initialized to 0. -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤é»ÈÍѤ¹¤ë¤¿¤á¤ËÄ󶡤µ¤ì¡¢ -fts ´Ø¿ô·²¤Ç¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï 0 ¤Ç½é´ü²½¤µ¤ì¤ë¡£ +このフィールドは、アプリケーションプログラムから使用するために提供され、 +fts 関数群では変更されない。 +このフィールドは 0 で初期化される。 .TP .IR fts_pointer .\"O This field is provided for the use of the application program and is @@ -454,11 +454,11 @@ fts .\"O fts functions. .\"O It is initialized to .\"O .BR NULL . -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤é»ÈÍѤ¹¤ë¤¿¤á¤ËÄ󶡤µ¤ì¡¢ -fts ´Ø¿ô·²¤Ç¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï +このフィールドは、アプリケーションプログラムから使用するために提供され、 +fts 関数群では変更されない。 +このフィールドは .B NULL -¤Ç½é´ü²½¤µ¤ì¤ë¡£ +で初期化される。 .TP .IR fts_parent .\"O A pointer to the @@ -473,16 +473,16 @@ fts .\"O and .\"O .I fts_pointer .\"O fields are guaranteed to be initialized. -¸½ºß¤Î¥Õ¥¡¥¤¥ë¤Î¤¹¤°¾å¤Î³¬Áؤˤ¢¤ë¥Õ¥¡¥¤¥ë -(¤Ä¤Þ¤ê¡¢¸½ºß¤Î¥Õ¥¡¥¤¥ë¤¬¥á¥ó¥Ð¡¼¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê) ¤ò»²¾È¤¹¤ë +現在のファイルのすぐ上の階層にあるファイル +(つまり、現在のファイルがメンバーになっているディレクトリ) を参照する .I FTSENT -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¡£ -ºÇ½é¤Î½ÐȯÅÀ¤ËÂФ·¤Æ¤â¡¢¿Æ¤È¤Ê¤ë¹½Â¤ÂΤÏÍ¿¤¨¤é¤ì¤ë¡£ -¤·¤«¤·¡¢ +構造体へのポインタ。 +最初の出発点に対しても、親となる構造体は与えられる。 +しかし、 .IR fts_level , .IR fts_number , .I fts_pointer -¥Õ¥£¡¼¥ë¥É¤Î¤ß¤Î½é´ü²½¤·¤«Êݾڤµ¤ì¤Ê¤¤¡£ +フィールドのみの初期化しか保証されない。 .TP .IR fts_link .\"O Upon return from the @@ -495,13 +495,13 @@ fts .\"O .I fts_link .\"O field are undefined. .BR fts_children () -¤«¤éÊÖ¤µ¤ì¤ë¾ì¹ç¡¢ +から返される場合、 .I fts_link -¥Õ¥£¡¼¥ë¥É¤Ï¥Ç¥£¥ì¥¯¥È¥ê¥á¥ó¥Ð¡¼¤Î NUL ½ªÃ¼¤µ¤ì¤¿¥ê¥ó¥¯¥ê¥¹¥È¤Î·Á¼°¤Ç¡¢ -¼¡¤Î¹½Â¤ÂΤò»Ø¤·¼¨¤¹¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢ +フィールドはディレクトリメンバーの NUL 終端されたリンクリストの形式で、 +次の構造体を指し示す。 +それ以外の場合、 .I fts_link -¥Õ¥£¡¼¥ë¥É¤ÏÄêµÁ¤µ¤ì¤Ê¤¤¡£ +フィールドは定義されない。 .TP .IR fts_cycle .\"O If a directory causes a cycle in the hierarchy (see @@ -518,29 +518,29 @@ fts .\"O Otherwise, the contents of the .\"O .I fts_cycle .\"O field are undefined. -2 ¤Ä¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥Ï¡¼¥É¥ê¥ó¥¯¤¬Ä¥¤é¤ì¤Æ¤¤¤ë¤¿¤á¡¢ -¤Þ¤¿¤Ï¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ò»Ø¤·¤Æ¤¤¤ë¤¿¤á¤Ë¡¢ -¥Ç¥£¥ì¥¯¥È¥ê¤¬½Û´Ä¤¹¤ë³¬Áع½Â¤¤òºî¤Ã¤Æ¤¤¤ë¾ì¹ç +2 つのディレクトリにハードリンクが張られているため、 +または、シンボリックリンクがあるディレクトリを指しているために、 +ディレクトリが循環する階層構造を作っている場合 .RB ( FTS_DC -¤ò»²¾È)¡¢ -¹½Â¤ÂΤΠ+を参照)、 +構造体の .I fts_cycle -¥Õ¥£¡¼¥ë¥É¤Ï¡¢³¬ÁØÃæ¤Ç¸½ºß¤Î +フィールドは、階層中で現在の .I FTSENT -¹½Â¤ÂΤÈƱ¤¸¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤ë +構造体と同じファイルを参照している .I FTSENT -¹½Â¤ÂΤò»Ø¤·¼¨¤¹¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢ +構造体を指し示す。 +それ以外の場合、 .I fts_cycle -¥Õ¥£¡¼¥ë¥É¤ÏÄêµÁ¤µ¤ì¤Ê¤¤¡£ +フィールドは定義されない。 .TP .IR fts_statp .\"O A pointer to .\"O .BR stat (2) .\"O information for the file. -¤³¤Î¥Õ¥¡¥¤¥ë¤Î +このファイルの .BR stat (2) -¾ðÊó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ +情報へのポインタ。 .\" .El .PP .\"O A single buffer is used for all of the paths of all of the files in the @@ -569,30 +569,30 @@ fts .\"O .I fts_name .\"O field is always .\"O null-terminated. -¥Õ¥¡¥¤¥ë³¬ÁØÃæ¤Î¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹¤ËÂФ·¤Æ¡¢ -¤¿¤À 1 ¤Ä¤Î¥Ð¥Ã¥Õ¥¡¡¼¤¬»È¤ï¤ì¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢ +ファイル階層中のすべてのファイルのパスに対して、 +ただ 1 つのバッファーが使われる。 +したがって、 .I fts_path -¤È +と .I fts_accpath -¥Õ¥£¡¼¥ë¥É¤Ï¡¢ +フィールドは、 .BR fts_read () -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤¿ºÇ¤â¿·¤·¤¤¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡Ö¤Î¤ß¡× -NULL ½ªÃ¼¤µ¤ì¤ë¤³¤È¤¬Êݾڤµ¤ì¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤ò¡¢Â¾¤Î +によって返された最も新しいファイルに対して「のみ」 +NULL 終端されることが保証される。 +これらのフィールドを、他の .I FTSENT -¹½Â¤ÂΤÇɽ¸½¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¤¿¤á¤Ë»È¤¦¤Ë¤Ï¡¢ +構造体で表現されるファイルを参照するために使うには、 .I FTSENT -¹½Â¤ÂΤΠ+構造体の .I fts_pathlen -¥Õ¥£¡¼¥ë¥É¤Ë¤¢¤ë¾ðÊó¤ò»È¤Ã¤Æ¥Ñ¥¹¤Î¥Ð¥Ã¥Õ¥¡¡¼¤ò½¤Àµ¤¹¤ëɬÍפ¬¤¢¤ë¡£ -¤³¤ì¤é¤Î½¤Àµ¤Ï¡¢¤µ¤é¤Ë +フィールドにある情報を使ってパスのバッファーを修正する必要がある。 +これらの修正は、さらに .BR fts_read () -¤ò¸Æ¤Ó½Ð¤½¤¦¤È¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢¸µ¤ËÌᤷ¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を呼び出そうとする場合には、元に戻しておかなければならない。 .I fts_name -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¾ï¤Ë +フィールドは、常に .B NUL -½ªÃ¼¤µ¤ì¤ë¡£ +終端される。 .SS fts_open() .\"O The .\"O .BR fts_open () @@ -602,11 +602,11 @@ NULL .\"O .B NULL .\"O pointer. .BR fts_open () -´Ø¿ô¤Ï¡¢Ê¸»úÎó¥Ý¥¤¥ó¥¿¤ÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò°ú¤­¿ô¤Ë¼è¤ë¡£ -¤³¤Îʸ»úÎó¥Ý¥¤¥ó¥¿¤Ï¡¢ÏÀÍý¥Õ¥¡¥¤¥ë³¬Áؤò¤Ä¤¯¤ë 1 ¤Ä°Ê¾å¤Î¥Ñ¥¹¤Î̾Á°¤Ë¤Ê¤ë¡£ -ÇÛÎó¤Ï¡¢ +関数は、文字列ポインタの配列へのポインタを引き数に取る。 +この文字列ポインタは、論理ファイル階層をつくる 1 つ以上のパスの名前になる。 +配列は、 .B NULL -¥Ý¥¤¥ó¥¿¤Ç½ªÃ¼¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ポインタで終端されなければならない。 .PP .\"O There are .\"O a number of options, at least one of which (either @@ -616,12 +616,12 @@ NULL .\"O must be specified. .\"O The options are selected by ORing .\"O the following values: -¿¤¯¤Î¥ª¥×¥·¥ç¥ó¤¬¤¢¤ê¡¢¾¯¤Ê¤¯¤È¤â 1 ¤Ä +多くのオプションがあり、少なくとも 1 つ .RB ( FTS_LOGICAL -¤Þ¤¿¤Ï +または .BR FTS_PHYSICAL ) -¤¬»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥ª¥×¥·¥ç¥ó¤Ï°Ê²¼¤ÎÃͤÎÏÀÍýϤò¤È¤Ã¤ÆÁªÂò¤¹¤ë¡£ +が指定されなければならない。 +オプションは以下の値の論理和をとって選択する。 .\" .Bl -tag -width "FTS_PHYSICAL" .TP .B FTS_COMFOLLOW @@ -629,10 +629,10 @@ NULL .\"O followed immediately whether or not .\"O .B FTS_LOGICAL .\"O is also specified. -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ +このオプションは、 .B FTS_LOGICAL -¤Î»ØÄê¤Ë¤«¤«¤ï¤é¤º¡¢ -¥ë¡¼¥È¥Ñ¥¹¤Ë»ØÄꤵ¤ì¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ò¤¹¤°¤Ë¤¿¤É¤é¤»¤ë¡£ +の指定にかかわらず、 +ルートパスに指定されたシンボリックリンクをすぐにたどらせる。 .TP .B FTS_LOGICAL .\"O This option causes the @@ -652,21 +652,21 @@ NULL .\"O be provided to the .\"O .BR fts_open () .\"O function. -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ -fts ¥ë¡¼¥Á¥ó¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤½¤Î¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢ -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬»Ø¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Î +このオプションは、 +fts ルーチンにシンボリックリンクそのものではなく、 +シンボリックリンクが指しているファイルの .I FTSENT -¹½Â¤ÂΤòÊÖ¤µ¤»¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ +構造体を返させる。 +このオプションが設定された場合、 .I FTSENT -¹½Â¤ÂΤ¬¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ËÊÖ¤µ¤ì¤ë¤è¤¦¤Ê -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¤ß¤¬¡¢Â¸ºß¤·¤Ê¤¤¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤ë¡£ +構造体がアプリケーションに返されるような +シンボリックリンクのみが、存在しないファイルを参照している。 .B FTS_LOGICAL -¤Þ¤¿¤Ï +または .B FTS_PHYSICAL -¤Î¤É¤Á¤é¤«¤ò¡¢ +のどちらかを、 .BR fts_open () -´Ø¿ô¤ËÍ¿¤¨¤Ê¤±¤ì¤Ð¡Ö¤Ê¤é¤Ê¤¤¡×¡£ +関数に与えなければ「ならない」。 .TP .B FTS_NOCHDIR .\"O As a performance optimization, the @@ -683,20 +683,20 @@ fts .\"O is specified and absolute .\"O pathnames were provided as arguments to .\"O .BR fts_open (). -¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤ÎºÇŬ²½¤Î¤¿¤á¡¢ -fts ´Ø¿ô·²¤Ï¥Õ¥¡¥¤¥ë³¬Áؤò¤¿¤É¤ë¤È¤­¥Ç¥£¥ì¥¯¥È¥ê¤òÊѤ¨¤ë¡£ -¤³¤ì¤Ë¤Ï¡¢³¬Áؤò¤¿¤É¤Ã¤Æ¤¤¤ë´Ö¤Ï -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¤¢¤ëÆÃÄê¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¤¤ë¤È¤¤¤¦¤³¤È¤Ë -°Í¸¤Ç¤­¤Ê¤¤¡¢¤È¤¤¤¦ÉûºîÍѤ¬¤¢¤ë¡£ +パフォーマンスの最適化のため、 +fts 関数群はファイル階層をたどるときディレクトリを変える。 +これには、階層をたどっている間は +アプリケーションがある特定のディレクトリにいるということに +依存できない、という副作用がある。 .B FTS_NOCHDIR -¥ª¥×¥·¥ç¥ó¤ÇºÇŬ²½¤ò̵¸ú¤Ë¤¹¤ë¤È¡¢ -fts ´Ø¿ô·²¤Ï¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òÊѹ¹¤·¤Ê¤¤¡£ +オプションで最適化を無効にすると、 +fts 関数群は現在のディレクトリを変更しない。 .B FTS_NOCHDIR -¤¬»ØÄꤵ¤ì¡¢¤«¤Ä +が指定され、かつ .BR fts_open () -¤Î°ú¤­¿ô¤È¤·¤ÆÀäÂХѥ¹Ì¾¤¬Í¿¤¨¤é¤ì¤¿¤È¤­°Ê³°¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢ -¼«¤é¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤òÊѹ¹¤·¤¿¤ê¡¢ -¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤·¤¿¤ê¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡¢¤È¤¤¤¦ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +の引き数として絶対パス名が与えられたとき以外、アプリケーションは、 +自らカレントディレクトリを変更したり、 +ファイルにアクセスしたりすべきではない、という点に注意すること。 .TP .B FTS_NOSTAT .\"O By default, returned @@ -713,20 +713,20 @@ fts .\"O and leave the contents of the .\"O .I statp .\"O field undefined. -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ÊÖ¤µ¤ì¤¿ +デフォルトでは、返された .I FTSENT -¹½Â¤ÂΤϡ¢¤¿¤É¤é¤ì¤¿³Æ¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¤Î¥Õ¥¡¥¤¥ëÆÃħ¾ðÊó +構造体は、たどられた各ファイルについてのファイル特徴情報 .I ( statp -¥Õ¥£¡¼¥ë¥É) ¤ò»²¾È¤¹¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ -fts ´Ø¿ô·²¤¬ +フィールド) を参照する。 +このオプションは、 +fts 関数群が .I fts_info -¥Õ¥£¡¼¥ë¥É¤ò +フィールドを .B FTS_NSOK -¤ËÀßÄꤷ +に設定し .I statp -¤ÎÆâÍƤòÄêµÁ¤µ¤ì¤Ê¤¤¤Þ¤Þ¤Ë¤¹¤ë¤³¤È¤òµö¤¹¤³¤È¤Ë¤è¤ê¡¢ -¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤ÎºÇŬ²½¤ËɬÍפʤâ¤Î¤ò´ËϤ¹¤ë¡£ +の内容を定義されないままにすることを許すことにより、 +パフォーマンスの最適化に必要なものを緩和する。 .TP .B FTS_PHYSICAL .\"O This option causes the @@ -746,20 +746,20 @@ fts .\"O be provided to the .\"O .BR fts_open () .\"O function. -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ -fts ¥ë¡¼¥Á¥ó¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬»Ø¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Ç¤Ï¤Ê¤¯¡¢ -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¼«¿È¤Î +このオプションは、 +fts ルーチンにシンボリックリンクが指しているファイルではなく、 +シンボリックリンク自身の .I FTSENT -¹½Â¤ÂΤòÊÖ¤µ¤»¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬ÀßÄꤵ¤ì¤ë¤È¡¢³¬ÁØÃæ¤Î¤¹¤Ù¤Æ¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î +構造体を返させる。 +このオプションが設定されると、階層中のすべてのシンボリックリンクの .I FTSENT -¹½Â¤ÂΤ¬¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ËÊÖ¤µ¤ì¤ë¡£ +構造体がアプリケーションに返される。 .B FTS_LOGICAL -¤Þ¤¿¤Ï +または .B FTS_PHYSICAL -¤Î¤É¤Á¤é¤«¤ò +のどちらかを .BR fts_open () -´Ø¿ô¤ËÍ¿¤¨¤Ê¤±¤ì¤Ð¡Ö¤Ê¤é¤Ê¤¤¡×¡£ +関数に与えなければ「ならない」。 .TP .B FTS_SEEDOT .\"O By default, unless they are specified as path arguments to @@ -773,22 +773,22 @@ fts .\"O fts routines to return .\"O .I FTSENT .\"O structures for them. -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +デフォルトでは、 .BR fts_open () -¤Î¥Ñ¥¹°ú¤­¿ô¤È¤·¤Æ»ØÄꤵ¤ì¤Ê¤¤¸Â¤ê¡¢¥Õ¥¡¥¤¥ë³¬ÁØÃæ¤Ë¤¢¤ë -"." ¤Þ¤¿¤Ï ".." ¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤Ï̵»ë¤µ¤ì¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ -fts ¥ë¡¼¥Á¥ó¤Ë¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Î +のパス引き数として指定されない限り、ファイル階層中にある +"." または ".." という名前のファイルは無視される。 +このオプションは、 +fts ルーチンにこれらのファイルの .I FTSENT -¹½Â¤ÂΤòÊÖ¤µ¤»¤ë¡£ +構造体を返させる。 .TP .B FTS_XDEV .\"O This option prevents .\"O fts from descending into directories that have a different device number .\"O than the file from which the descent began. -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ -fts ¤¬²¼¤ê»Ï¤á¤Î¥Õ¥¡¥¤¥ë¤È¤Ï°Û¤Ê¤ë¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤ò»ý¤Ã¤Æ¤¤¤ë -¥Ç¥£¥ì¥¯¥È¥ê¤Ë²¼¤ê¤ë¤Î¤òÁ˻ߤ¹¤ë¡£ +このオプションは、 +fts が下り始めのファイルとは異なるデバイス番号を持っている +ディレクトリに下りるのを阻止する。 .\" .El .PP .\"O The argument @@ -829,37 +829,37 @@ fts .\"O .I path_argv .\"O for the root paths, and in the order listed in the directory for .\"O everything else. -°ú¤­¿ô +引き数 .BR compar () -¤Ï¡¢³¬Áؤò¤¿¤É¤ë½çÈÖ¤ò·è¤á¤ë¤Î¤Ë»È¤ï¤ì¤ë¥æ¡¼¥¶¡¼ÄêµÁ´Ø¿ô¤ò»ØÄꤹ¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢°ú¤­¿ô¤È¤·¤Æ +は、階層をたどる順番を決めるのに使われるユーザー定義関数を指定する。 +この関数は、引き数として .I FTSENT -¹½Â¤ÂΤΥݥ¤¥ó¥¿¤Î¥Ý¥¤¥ó¥¿¤ò 2 ¤Ä¤È¤ê¡¢ -1 ÈÖÌܤΰú¤­¿ô¤Ç»²¾È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤¬ -2 ÈÖÌܤΰú¤­¿ô¤Ç»²¾È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤è¤ê -Á°¤Ë¤¢¤ë¾ì¹ç¤ÏÉé¤ÎÃÍ¡¦Æ±¤¸¾ì¹ç¤Ï¥¼¥í¡¦¸å¤Ë¤¢¤ë¾ì¹ç¤ÏÀµ¤ÎÃͤò -ÊÖ¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +構造体のポインタのポインタを 2 つとり、 +1 番目の引き数で参照されているファイルが +2 番目の引き数で参照されているファイルより +前にある場合は負の値・同じ場合はゼロ・後にある場合は正の値を +返さなければならない。 .I FTSENT -¹½Â¤ÂΤΠ+構造体の .IR fts_accpath , .IR fts_path , .I fts_pathlen -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¤³¤ÎÈæ³Ó¤Ë¡ÖÀäÂС׻ȤäƤϤ¤¤±¤Ê¤¤¡£ +フィールドは、この比較に「絶対」使ってはいけない。 .I fts_info -¥Õ¥£¡¼¥ë¥É¤¬ +フィールドが .B FTS_NS -¤Þ¤¿¤Ï +または .B FTS_NSOK -¤ËÀßÄꤵ¤ì¤ë¾ì¹ç¡¢ +に設定される場合、 .I fts_statp -¥Õ¥£¡¼¥ë¥É¤Ï¤³¤ì¤é¤Î¤É¤Á¤é¤Ç¤â¤Ê¤¤¡£ +フィールドはこれらのどちらでもない。 .BR compar () -°ú¤­¿ô¤¬ +引き数が .B NULL -¤Î¾ì¹ç¡¢¥Ç¥£¥ì¥¯¥È¥ê¤ò¤¿¤É¤ë½çÈ֤ϡ¢¥ë¡¼¥È¥Ñ¥¹¤Ë¤Ä¤¤¤Æ¤Ï +の場合、ディレクトリをたどる順番は、ルートパスについては .I path_argv -¤Î¤Ê¤«¤Ç¥ê¥¹¥È¤µ¤ì¤¿½çÈ֤ǡ¢ -¤½¤Î¾¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¤Ï¥Ç¥£¥ì¥¯¥È¥êÆâ¤Ç¥ê¥¹¥È¤µ¤ì¤¿½çÈ֤Ȥʤ롣 +のなかでリストされた順番で、 +その他のファイルについてはディレクトリ内でリストされた順番となる。 .SS fts_read() .\"O The .\"O .BR fts_read () @@ -874,15 +874,15 @@ fts .\"O links to symbolic links may cause files to be visited more than once, .\"O or directories more than twice.) .BR fts_read () -´Ø¿ô¤Ï¡¢³¬ÁØÃæ¤Î¥Õ¥¡¥¤¥ë¤òµ­½Ò¤¹¤ë +関数は、階層中のファイルを記述する .I FTSENT -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -(Æɤ߹þ¤ß²Äǽ¤Ç¡¢½Û´Ä¤·¤Æ¤¤¤Ê¤¤) ¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢ -1 ²ó¤Ï preorder ¤Ç¡¢¤â¤¦ 1 ²ó¤Ï postorder ¤Ç¡¢¾¯¤Ê¤¯¤È¤â 2 ²ó¤¿¤É¤é¤ì¤ë¡£ -¾¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¾¯¤Ê¤¯¤È¤â 1 ²ó¤¿¤É¤é¤ì¤ë¡£ -(¥Ç¥£¥ì¥¯¥È¥ê´Ö¤Î¥Ï¡¼¥É¥ê¥ó¥¯¤Ë¤è¤Ã¤Æ -½Û´Ä¤ä¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ø¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬µ¯¤³¤é¤Ê¤¤¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¤Ï 2 ²ó°Ê¾å¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ï 3 ²ó°Ê¾å¤¿¤É¤é¤ì¤ë¡£) +構造体へのポインタを返す。 +(読み込み可能で、循環していない) ディレクトリは、 +1 回は preorder で、もう 1 回は postorder で、少なくとも 2 回たどられる。 +他のファイルは、少なくとも 1 回たどられる。 +(ディレクトリ間のハードリンクによって +循環やシンボリックリンクへのシンボリックリンクが起こらない場合、 +ファイルは 2 回以上、ディレクトリは 3 回以上たどられる。) .PP .\"O If all the members of the hierarchy have been returned, .\"O .BR fts_read () @@ -904,27 +904,27 @@ fts .\"O .I errno .\"O may or may not have been set (see .\"O .IR fts_info ). -³¬ÁØÃæ¤Î¤¹¤Ù¤Æ¤Î¥á¥ó¥Ð¡¼¤¬ÊÖ¤µ¤ì¤¿¾ì¹ç¡¢ +階層中のすべてのメンバーが返された場合、 .BR fts_read () -¤Ï +は .B NULL -¤òÊÖ¤·¡¢³°ÉôÊÑ¿ô +を返し、外部変数 .I errno -¤ò 0 ¤Ë¤¹¤ë¡£ -³¬ÁØÃæ¤Î¥Õ¥¡¥¤¥ë¤Ë´Ø·¸¤·¤Ê¤¤¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢ +を 0 にする。 +階層中のファイルに関係しないエラーが起こった場合、 .BR fts_read () -¤Ï +は .B NULL -¤òÊÖ¤·¡¢ +を返し、 .I errno -¤ò¥¨¥é¡¼¤ËÂбþ¤·¤¿Ãͤˤ¹¤ë¡£ -³¬ÁØÃæ¤Î¥Õ¥¡¥¤¥ë¤Ë´Ø·¸¤·¤¿¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢ +をエラーに対応した値にする。 +階層中のファイルに関係したエラーが起こった場合、 .I FTSENT -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤¬ÊÖ¤µ¤ì¡¢ +構造体へのポインタが返され、 .I errno -¤ÏÀßÄꤵ¤ì¤ë¾ì¹ç¤ÈÀßÄꤵ¤ì¤Ê¤¤¾ì¹ç¤¬¤¢¤ë +は設定される場合と設定されない場合がある .RI ( fts_info -¤ò»²¾È¤¹¤ë¤³¤È)¡£ +を参照すること)。 .PP .\"O The .\"O .I FTSENT @@ -943,22 +943,22 @@ fts .\"O .BR fts_read () .\"O in postorder. .BR fts_read () -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë +によって返される .I FTSENT -¹½Â¤ÂΤϡ¢Æ±¤¸¥Õ¥¡¥¤¥ë³¬ÁØ¥¹¥È¥ê¡¼¥à¤Ø¤Î +構造体は、同じファイル階層ストリームへの .BR fts_close () -¤Î¸Æ½Ð¤·¤Î¸å¤Ë¾å½ñ¤­¤µ¤ì¤ë¡£ -¤Þ¤¿¡¢Æ±¤¸¥Õ¥¡¥¤¥ë³¬ÁØ¥¹¥È¥ê¡¼¥à¤Ø¤Î +の呼出しの後に上書きされる。 +また、同じファイル階層ストリームへの .BR fts_read () -¤Î¸Æ½Ð¤·¤Î¸å¤Ç¤â¡¢¹½Â¤ÂΤ¬¥Ç¥£¥ì¥¯¥È¥ê¤òɽ¸½¤·¤Æ¤¤¤Ê¤¤¸Â¤ê¾å½ñ¤­¤µ¤ì¤ë¡£ -¤³¤Î¾ì¹ç¡¢ +の呼出しの後でも、構造体がディレクトリを表現していない限り上書きされる。 +この場合、 .BR fts_read () -´Ø¿ô¤Ë¤è¤Ã¤Æ postorder ¤Ç +関数によって postorder で .I FTSENT -¹½Â¤ÂΤ¬ÊÖ¤µ¤ì¤¿¸å¡¢ +構造体が返された後、 .BR fts_read () -¤Î¸Æ½Ð¤·¤¬¤¢¤ë¤Þ¤Ç¡¢ -¤³¤ì¤é¤Î¹½Â¤ÂΤϾå½ñ¤­¤µ¤ì¤Ê¤¤¡£ +の呼出しがあるまで、 +これらの構造体は上書きされない。 .SS fts_children() .\"O The .\"O .BR fts_children () @@ -978,24 +978,24 @@ fts .\"O .BR fts_children () .\"O will recreate this linked list. .BR fts_children () -´Ø¿ô¤Ï¡¢ +関数は、 .I FTSENT -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤Î¹½Â¤ÂΤϡ¢( +構造体へのポインタを返す。 +この構造体は、( .BR fts_read () -¤ÇºÇ¤â¿·¤·¤¯ÊÖ¤µ¤ì¤¿ +で最も新しく返された .I FTSENT -¹½Â¤ÂΤÇɽ¸½¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤Î) -NUL ½ªÃ¼¤µ¤ì¤¿¥ê¥ó¥¯¥ê¥¹¥È¤ÎºÇ½é¤Î¥¨¥ó¥È¥ê¤òµ­½Ò¤¹¤ë¡£ -¤³¤Î¥ê¥¹¥È¤Ï¡¢ +構造体で表現されるディレクトリにあるファイルの) +NUL 終端されたリンクリストの最初のエントリを記述する。 +このリストは、 .I FTSENT -¹½Â¤ÂΤΠ+構造体の .I fts_link -¥Õ¥£¡¼¥ë¥É¤ò»È¤Ã¤Æ¥ê¥ó¥¯¤µ¤ì¡¢ -¥æ¡¼¥¶¡¼»ØÄê¤ÎÈæ³Ó´Ø¿ô¤¬¤¢¤ë¾ì¹ç¤Ï¡¢¤½¤ì¤Ç½ç½ø¤Å¤±¤é¤ì¤ë¡£ +フィールドを使ってリンクされ、 +ユーザー指定の比較関数がある場合は、それで順序づけられる。 .BR fts_children () -¤Î¸Æ½Ð¤·¤ò·«¤êÊÖ¤¹¤³¤È¤Ç¡¢ -¤³¤Î¥ê¥ó¥¯¥ê¥¹¥È¤ÏºÆÀ¸À®¤µ¤ì¤ë¡£ +の呼出しを繰り返すことで、 +このリンクリストは再生成される。 .PP .\"O As a special case, if .\"O .BR fts_read () @@ -1024,34 +1024,34 @@ NUL .\"O and sets .\"O .I errno .\"O appropriately. -ÆÃÊ̤ʾì¹ç¤È¤·¤Æ¡¢ +特別な場合として、 .BR fts_read () -¤¬¥Õ¥¡¥¤¥ë³¬ÁؤˤĤ¤¤Æ¸Æ¤Ð¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +がファイル階層について呼ばれていない場合、 .BR fts_children () -¤Ï +は .BR fts_open () -¤Ë»ØÄꤵ¤ì¤¿ÏÀÍý¥Ç¥£¥ì¥¯¥È¥ê (¤Ä¤Þ¤ê¡¢ +に指定された論理ディレクトリ (つまり、 .BR fts_open () -¤Ë»ØÄꤵ¤ì¤¿°ú¤­¿ô) ¤ÎÃæ¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ç¡¢ +に指定された引き数) の中にあるファイルへのポインタを返す。 +それ以外の場合で、 .BR fts_read () -¤Ë¤è¤Ã¤ÆºÇ¤â¿·¤·¤¯ÊÖ¤µ¤ì¤¿ +によって最も新しく返された .I FTSENT -¹½Â¤ÂΤ¬ preorder ¤Ç¤¿¤É¤é¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¾ì¹ç¤ä -²¿¤â´Þ¤ó¤Ç¤¤¤Ê¤¤¥Ç¥£¥ì¥¯¥È¥ê¤Î¾ì¹ç¤Ï¡¢ +構造体が preorder でたどられたディレクトリでない場合や +何も含んでいないディレクトリの場合は、 .BR fts_children () -¤Ï +は .B NULL -¤òÊÖ¤·¡¢ +を返し、 .I errno -¤ò 0 ¤Ë¤¹¤ë¡£ -¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢ +を 0 にする。 +エラーが起こった場合、 .BR fts_children () -¤Ï +は .B NULL -¤òÊÖ¤·¡¢ +を返し、 .I errno -¤ò¥¨¥é¡¼¤ËÂбþ¤·¤¿Ãͤˤ¹¤ë¡£ +をエラーに対応した値にする。 .PP .\"O The .\"O .I FTSENT @@ -1064,18 +1064,18 @@ NUL .\"O .BR fts_read () .\"O on the same file hierarchy stream. .BR fts_children () -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë +によって返される .I FTSENT -¹½Â¤ÂΤϡ¢Æ±¤¸¥Õ¥¡¥¤¥ë³¬ÁØ¥¹¥È¥ê¡¼¥à¤Ø¤Î +構造体は、同じファイル階層ストリームへの .BR fts_children (), .BR fts_close (), .BR fts_read () -¤Î¸Æ½Ð¤·¤Î¸å¤Ë¾å½ñ¤­¤µ¤ì¤ë¾ì¹ç¤¬¤¢¤ë¡£ +の呼出しの後に上書きされる場合がある。 .PP .\"O .I Option .\"O may be set to the following value: .I option -¤Ï¡¢¼¡¤ÎÃͤËÀßÄê¤Ç¤­¤ë¡£ +は、次の値に設定できる。 .\" .Bl -tag -width FTS_NAMEONLY .TP .B FTS_NAMEONLY @@ -1086,12 +1086,12 @@ NUL .\"O and .\"O .I fts_namelen .\"O fields. -¥Õ¥¡¥¤¥ë̾¤Î¤ß¤¬É¬ÍפȤµ¤ì¤Æ¤¤¤ë¡£ -ÊÖ¤µ¤ì¤¿¹½Â¤ÂΤΥê¥ó¥¯¥ê¥¹¥È¤Î +ファイル名のみが必要とされている。 +返された構造体のリンクリストの .IR fts_name , .I fts_namelen -¥Õ¥£¡¼¥ë¥É°Ê³°¤Î -¤¹¤Ù¤Æ¤Î¥Õ¥£¡¼¥ë¥É¤ÎÆâÍƤÏÄêµÁ¤µ¤ì¤Ê¤¤¡£ +フィールド以外の +すべてのフィールドの内容は定義されない。 .\" .El .SS fts_set() .\"O The function @@ -1107,18 +1107,18 @@ NUL .\"O returns 0 on success, and \-1 if an error occurs. .\"O .I Option .\"O must be set to one of the following values: -´Ø¿ô +関数 .BR fts_set () -¤Ï¡¢¥æ¡¼¥¶¡¼¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬ -¥¹¥È¥ê¡¼¥à +は、ユーザーアプリケーションが +ストリーム .I ftsp -¤Î¥Õ¥¡¥¤¥ë +のファイル .I f -¤Ë¤Ä¤¤¤Æ¹¹¤Ê¤ë½èÍý¤ò·èÄꤹ¤ë¤³¤Èµö¤¹¡£ +について更なる処理を決定すること許す。 .BR fts_set () -´Ø¿ô¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤ò¡¢¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ +関数は、成功した場合は 0 を、エラーが起こった場合は \-1 を返す。 .I option -¤Ï¡¢¼¡¤ÎÃͤΤ¤¤º¤ì¤« 1 ¤Ä¤ËÀßÄꤵ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は、次の値のいずれか 1 つに設定されなければならない。 .\" .Bl -tag -width FTS_PHYSICAL .TP .B FTS_AGAIN @@ -1138,20 +1138,20 @@ NUL .\"O Normal use is for postorder directory visits, where it causes the .\"O directory to be revisited (in both preorder and postorder) as well as all .\"O of its descendants. -¥Õ¥¡¥¤¥ë¤òºÆ¤Ó¤¿¤É¤ë¡£¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤¬ºÆ¤Ó¤¿¤É¤é¤ì¤ë¡£ -¼¡¤Î +ファイルを再びたどる。すべてのファイルタイプが再びたどられる。 +次の .BR fts_read () -¤Î¸Æ½Ð¤·¤Ë¤è¤ê¡¢»²¾È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤¬ÊÖ¤µ¤ì¤ë¡£ -¹½Â¤ÂΤΠ+の呼出しにより、参照されているファイルが返される。 +構造体の .IR fts_stat , .I fts_info -¥Õ¥£¡¼¥ë¥É¤Ï¤³¤Î»þ¤Ë½é´ü²½¤µ¤ì¤ë¤¬¡¢Â¾¤Î¥Õ¥£¡¼¥ë¥É¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ +フィールドはこの時に初期化されるが、他のフィールドは変更されない。 +このオプションは、 .BR fts_read () -¤Ë¤è¤Ã¤ÆºÇ¤â¿·¤·¤¯ÊÖ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¤Î¤ß°ÕÌ£¤ò»ý¤Ä¡£ -Ä̾ï¤Ï¡¢postorder ¤Ç¥Ç¥£¥ì¥¯¥È¥ê¤ò¤¿¤É¤ë¾ì¹ç¤Ë»ÈÍѤ·¡¢ -¤½¤Î²¼¤Î³¬ÁؤÈƱÍͤˡ¢ -¥Ç¥£¥ì¥¯¥È¥ê¤ò (preorder ¤È postorder ¤ÎξÊý¤Ç) ºÆ¤Ó¤¿¤É¤é¤»¤ë¡£ +によって最も新しく返されたファイルについてのみ意味を持つ。 +通常は、postorder でディレクトリをたどる場合に使用し、 +その下の階層と同様に、 +ディレクトリを (preorder と postorder の両方で) 再びたどらせる。 .TP .B FTS_FOLLOW .\"O The referenced file must be a symbolic link. @@ -1185,38 +1185,38 @@ NUL .\"O If the target of the link is a directory, the preorder return, followed .\"O by the return of all of its descendants, followed by a postorder return, .\"O is done. -»²¾È¤µ¤ì¤Æ¤ë¥Õ¥¡¥¤¥ë¤Ï¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -»²¾È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤¬ +参照されてるファイルは、シンボリックリンクでなければならない。 +参照されているファイルが .BR fts_read () -¤Ë¤è¤Ã¤ÆºÇ¤â¿·¤·¤¯ÊÖ¤µ¤ì¤¿¤â¤Î¤Ç¤¢¤ë¾ì¹ç¡¢¼¡¤Î +によって最も新しく返されたものである場合、次の .BR fts_read () -¤Î¸Æ½Ð¤·¤Ç¤Ï¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤½¤Î¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢ -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬»Ø¤·¤Æ¤¤¤ëÀè¤òÈ¿±Ç¤¹¤ë¤è¤¦¤Ë +の呼出しでは、シンボリックリンクそのものではなく、 +シンボリックリンクが指している先を反映するように .IR fts_info , .I fts_statp -¤òºÆ¤Ó½é´ü²½¤·¤¿¥Õ¥¡¥¤¥ë¤¬ÊÖ¤µ¤ì¤ë¡£ -¥Õ¥¡¥¤¥ë¤¬ +を再び初期化したファイルが返される。 +ファイルが .BR fts_children () -¤Ë¤è¤Ã¤ÆºÇ¤â¿·¤·¤¯ÊÖ¤µ¤ì¤¿¤â¤Î¤Î 1 ¤Ä¤Ç¤¢¤ë¾ì¹ç¡¢ +によって最も新しく返されたものの 1 つである場合、 .BR fts_read () -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤¿¤È¤­¡¢¹½Â¤ÂΤΠ+によって返されたとき、構造体の .IR fts_info , .I fts_statp -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤½¤Î¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢ -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬»Ø¤·¤Æ¤¤¤ëÀè¤òÈ¿±Ç¤¹¤ë¡£ -¤É¤Á¤é¤Î¾ì¹ç¤Ç¤â¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬»Ø¤·¤Æ¤¤¤ëÀ褬¤Ê¤¤¤È¤­¤Ï¡¢ -ÊÖ¤µ¤ì¤¿¹½Â¤ÂΤΥե£¡¼¥ë¥É¤ÏÊѹ¹¤µ¤ì¤º¡¢ +フィールドは、シンボリックリンクそのものではなく、 +シンボリックリンクが指している先を反映する。 +どちらの場合でも、シンボリックリンクが指している先がないときは、 +返された構造体のフィールドは変更されず、 .I fts_info -¥Õ¥£¡¼¥ë¥É¤¬ +フィールドが .B FTS_SLNONE -¤ËÀßÄꤵ¤ì¤ë¡£ +に設定される。 .PP .\"O If the target of the link is a directory, the preorder return, followed .\"O by the return of all of its descendants, followed by a postorder return, .\"O is done. -¥ê¥ó¥¯À褬¥Ç¥£¥ì¥¯¥È¥ê¤Î¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¤¬ preorder ¤ÇÊÖ¤µ¤ì¤¿¸å¡¢²¼¤Î³¬ÁؤΤ¹¤Ù¤Æ¥Õ¥¡¥¤¥ë¤¬ÊÖ¤µ¤ì¡¢ -¤½¤Î¸å¤Ç postorder ¤ÇÊÖ¤µ¤ì¤ë¡£ +リンク先がディレクトリの場合、 +ファイルが preorder で返された後、下の階層のすべてファイルが返され、 +その後で postorder で返される。 .TP .B FTS_SKIP .\"O No descendants of this file are visited. @@ -1224,12 +1224,12 @@ NUL .\"O .BR fts_children () .\"O or .\"O .BR fts_read (). -¤³¤Î¥Õ¥¡¥¤¥ë¤Î²¼¤Î³¬ÁؤϤ¿¤É¤é¤ì¤Ê¤¤¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢ +このファイルの下の階層はたどられない。 +このファイルは、 .BR fts_children () -¤Þ¤¿¤Ï +または .BR fts_read () -¤Î¤É¤Á¤é¤«¤Ë¤è¤Ã¤ÆºÇ¤â¿·¤·¤¯ÊÖ¤µ¤ì¤¿¤â¤Î¤Î 1 ¤Ä¤Ç¤¢¤ë¡£ +のどちらかによって最も新しく返されたものの 1 つである。 .\" .El .SS fts_close() .\"O The @@ -1245,17 +1245,17 @@ NUL .\"O function .\"O returns 0 on success, and \-1 if an error occurs. .BR fts_close () -´Ø¿ô¤Ï¡¢¥Õ¥¡¥¤¥ë³¬ÁØ¥¹¥È¥ê¡¼¥à +関数は、ファイル階層ストリーム .I ftsp -¤òÊĤ¸¤ë¡£¤½¤·¤Æ¡¢¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò +を閉じる。そして、現在のディレクトリを .I ftsp -¤ò³«¤¯¤¿¤á¤Ë +を開くために .BR fts_open () -¤¬¸Æ¤Ð¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ËÉü¸µ¤¹¤ë¡£ +が呼ばれたディレクトリに復元する。 .BR fts_close () -´Ø¿ô¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤ò¡¢¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ +関数は、成功した場合は 0 を、エラーが起こった場合は \-1 を返す。 .\"O .SS ERRORS -.SS ¥¨¥é¡¼ +.SS エラー .\"O The function .\"O .BR fts_open () .\"O may fail and set @@ -1264,15 +1264,15 @@ NUL .\"O .BR open (2) .\"O and .\"O .BR malloc (3). -´Ø¿ô +関数 .BR fts_open () -¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +が失敗した場合、 .I errno -¤Ï¡¢¥é¥¤¥Ö¥é¥ê´Ø¿ô +は、ライブラリ関数 .BR open (2) -¤È +と .BR malloc (3) -¤ËÂФ·¤Æ»ØÄꤵ¤ì¤ë¥¨¥é¡¼¤ËÀßÄꤵ¤ì¤ë¡£ +に対して指定されるエラーに設定される。 .PP .\"O The function .\"O .BR fts_close () @@ -1282,15 +1282,15 @@ NUL .\"O .BR chdir (2) .\"O and .\"O .BR close (2). -´Ø¿ô +関数 .BR fts_close () -¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +が失敗した場合、 .I errno -¤Ï¡¢¥é¥¤¥Ö¥é¥ê´Ø¿ô +は、ライブラリ関数 .BR chdir (2) -¤È +と .BR close (2) -¤ËÂФ·¤Æ»ØÄꤵ¤ì¤ë¥¨¥é¡¼¤ËÀßÄꤵ¤ì¤ë¡£ +に対して指定されるエラーに設定される。 .PP .\"O The functions .\"O .BR fts_read () @@ -1305,19 +1305,19 @@ NUL .\"O .BR readdir (3) .\"O and .\"O .BR stat (2). -´Ø¿ô +関数 .BR fts_read () -¤È +と .BR fts_children () -¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +が失敗した場合、 .I errno -¤Ï¡¢¥é¥¤¥Ö¥é¥ê´Ø¿ô +は、ライブラリ関数 .BR chdir (2), .BR malloc (3), .BR opendir (3), .BR readdir (3), .BR stat (2) -¤ËÂФ·¤Æ»ØÄꤵ¤ì¤ë¥¨¥é¡¼¤ËÀßÄꤵ¤ì¤ë¡£ +に対して指定されるエラーに設定される。 .PP .\"O In addition, .\"O .BR fts_children (), @@ -1327,23 +1327,23 @@ NUL .\"O may fail and set .\"O .I errno .\"O as follows: -¹¹¤Ë¡¢ +更に、 .BR fts_children (), .BR fts_open (), .BR fts_set () -¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +が失敗した場合、 .I errno -¤¬¼¡¤ÎÃͤˤµ¤ì¤ë¡£ +が次の値にされる。 .TP .B EINVAL .\"O The options were invalid. -¥ª¥×¥·¥ç¥ó¤¬Ìµ¸ú¤Ç¤¢¤Ã¤¿¡£ +オプションが無効であった。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions are available in Linux since glibc2. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢Linux ¤Ç¤Ï glibc2 ¤«¤é»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ +これらの関数は、Linux では glibc2 から使用可能である。 .\"O SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.4BSD. .\" The following statement is years old, and seems no closer to .\" being true -- mtk @@ -1353,11 +1353,11 @@ NUL .\"O .\" POSIX.1 .\"O .\" revision. .\" .I fts -.\" ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ï¡¢¾­Íè¤Î +.\" ユーティリティは、将来の .\" POSIX.1 -.\" ¥ê¥Ó¥¸¥ç¥ó¤Ë´Þ¤Þ¤ì¤ë¤È´üÂÔ¤µ¤ì¤Æ¤¤¤ë¡£ +.\" リビジョンに含まれると期待されている。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR find (1), .BR chdir (2), .BR stat (2), diff --git a/draft/man3/ftw.3 b/draft/man3/ftw.3 index be64a0d1..a15f211f 100644 --- a/draft/man3/ftw.3 +++ b/draft/man3/ftw.3 @@ -38,15 +38,15 @@ .\" Updated & Modified 2005-11-04, Akihiro MOTOKI .\" Updated 2006-07-26, Akihiro MOTOKI , LDP v2.36 .\" -.\" WORD: file descriptor ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ +.\" WORD: file descriptor ファイルディスクリプター .\" .TH FTW 3 2010-09-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O ftw, nftw \- file tree walk -ftw, nftw \- ¥Õ¥¡¥¤¥ë¥Ä¥ê¡¼¤òÊ⤭¤Þ¤ï¤ë +ftw, nftw \- ファイルツリーを歩きまわる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -56,7 +56,7 @@ ftw, nftw \- .BI " int " nopenfd ); .sp .\"O .BR "#define _XOPEN_SOURCE 500" " /* See feature_test_macros(7) */" -.BR "#define _XOPEN_SOURCE 500" " /* feature_test_macros(7) »²¾È */" +.BR "#define _XOPEN_SOURCE 500" " /* feature_test_macros(7) 参照 */" .B #define _XOPEN_SOURCE 500 .B #include .sp @@ -66,7 +66,7 @@ ftw, nftw \- .BI " int " nopenfd ", int " flags ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR ftw () .\"O walks through the directory tree that is .\"O located under the directory \fIdirpath\fP, @@ -74,14 +74,14 @@ ftw, nftw \- .\"O By default, directories are handled before the files and .\"O subdirectories they contain (preorder traversal). .BR ftw () -¤Ï¡¢ +は、 .I dirpath -¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Î¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼Á´ÂΤòÊ⤭¤Þ¤ï¤ê¡¢ -¥Ä¥ê¡¼Ãæ¤Ç¥¨¥ó¥È¥ê¤¬¸«ÉÕ¤«¤ë¤´¤È¤Ë¡¢ +で指定されたディレクトリ以下のディレクトリツリー全体を歩きまわり、 +ツリー中でエントリが見付かるごとに、 .IR fn () -¤ò¸Æ¤Ó½Ð¤¹¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤½¤Î¤â¤Î¤¬¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤ä -¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤è¤ê¤âÀè¤Ë½èÍý¤µ¤ì¤ë (¹Ô¤­¤¬¤±½çõº÷; preorder traversal)¡£ +を呼び出す。 +デフォルトでは、ディレクトリそのものが、そのディレクトリにあるファイルや +サブディレクトリよりも先に処理される (行きがけ順探索; preorder traversal)。 .\"O To avoid using up all of the calling process's file descriptors, .\"O \fInopenfd\fP specifies the maximum number of directories that @@ -95,20 +95,20 @@ ftw, nftw \- .\"O .BR ftw () .\"O uses at most .\"O one file descriptor for each level in the directory tree. -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬ÍøÍѲÄǽ¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò»È¤¤ÀÚ¤Ã¤Æ -¤·¤Þ¤ï¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¡¢ +呼び出し元プロセスが利用可能なファイルディスクリプタを使い切って +しまわないようにするため、 .BR ftw () -¤¬Æ±»þ¤Ë¥ª¡¼¥×¥ó¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ÎºÇÂç¿ô¤ò +が同時にオープンするディレクトリの最大数を .I nopenfd -¤Ç»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -õº÷¤Î¿¼¤µ¤¬¤³¤ÎÃͤò±Û¤¨¤ë¤È¡¢ -°ì¤Ä¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òÊĤ¸¤Æ¤«¤é¾¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¥ª¡¼¥×¥ó¤·Ä¾¤¹¤³¤È -¤Ë¤Ê¤ë¤Î¤Ç¡¢ +で指定することができる。 +探索の深さがこの値を越えると、 +一つのディレクトリを閉じてから他のディレクトリをオープンし直すこと +になるので、 .BR ftw () -¤ÎÆ°ºî¤ÏÃÙ¤¯¤Ê¤ë¡£ +の動作は遅くなる。 .BR ftw () -¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Î³¬ÁØ 1 ¥ì¥Ù¥ë¤Ë¤Ä¤­¡¢ -ºÇÂç¤Ç¤â°ì¤Ä¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤·¤«»ÈÍѤ·¤Ê¤¤¡£ +は、ディレクトリツリーの階層 1 レベルにつき、 +最大でも一つのファイルディスクリプタしか使用しない。 .\"O For each entry found in the tree, .\"O .BR ftw () @@ -118,15 +118,15 @@ ftw, nftw \- .\"O .IR sb , .\"O and .\"O .IR typeflag . -¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Ç¸«¤Ä¤«¤Ã¤¿¥¨¥ó¥È¥êËè¤Ë¡¢ +ディレクトリツリーで見つかったエントリ毎に、 .BR ftw () -¤Ï +は .IR fpath , .IR sb , .I typeflag -¤Î 3¤Ä¤ò°ú¤­¿ô¤È¤·¤Æ +の 3つを引き数として .IR fn () -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .\"O .I fpath .\"O is the pathname of the entry, .\"O and is expressed either as a pathname relative to the calling process's @@ -139,18 +139,18 @@ ftw, nftw \- .\"O .I dirpath .\"O was expressed as an absolute pathname. .I fpath -¤Ï¥¨¥ó¥È¥ê¤Î¥Ñ¥¹Ì¾¤Ç¤¢¤ë¡£ +はエントリのパス名である。 .I dirpath -¤¬ÁêÂХѥ¹Ì¾¤Ç»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ +が相対パス名で指定された場合には、 .I fpath -¤Ï +は .BR ftw () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿»þÅÀ¤Î¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê -¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤Ê¤ë¡£ +が呼び出された時点の呼び出し元プロセスのカレントワーキングディレクトリ +からの相対パス名となる。 .I dirpath -¤¬ÀäÂХѥ¹Ì¾¤Ç»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ +が絶対パス名で指定された場合には、 .I fpath -¤ÏÀäÂХѥ¹Ì¾¤È¤Ê¤ë¡£ +は絶対パス名となる。 .\"O .I sb .\"O is a pointer to the .\"O .I stat @@ -159,35 +159,35 @@ ftw, nftw \- .\"O for .\"O .IR fpath . .I sb -¤Ï +は .I fpath -¤ËÂФ¹¤ë +に対する .BR stat (2) -¤Î¸Æ¤Ó½Ð¤·¤ÇÊÖ¤µ¤ì¤ë +の呼び出しで返される .I stat -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ +構造体へのポインタである。 .\"O .I typeflag .\"O is an integer that has one of the following values: .I typeflag -¤ÏÀ°¿ô¤Ç¡¢°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«°ì¤Ä¤Ç¤¢¤ë: +は整数で、以下の値のいずれか一つである: .TP .B FTW_F .\"O .I fpath .\"O is a regular file. .I fpath -¤¬Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë +が通常のファイルである .TP .B FTW_D .\"O .I fpath .\"O is a directory. .I fpath -¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë +がディレクトリである .TP .B FTW_DNR .\"O .I fpath .\"O is a directory which can't be read. .I fpath -¤¬Æɤ߹þ¤ß¤Ç¤­¤Ê¤¤¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë +が読み込みできないディレクトリである .TP .B FTW_NS .\"O The @@ -195,11 +195,11 @@ ftw, nftw \- .\"O call failed on .\"O .IR fpath , .\"O which is not a symbolic link. -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¤Ï¤Ê¤¤ +シンボリックリンクではない .I fpath -¤ËÂФ¹¤ë +に対する .BR stat (2) -¸Æ¤Ó½Ð¤·¤¬¼ºÇÔ¤·¤¿¡£ +呼び出しが失敗した。 .sp .\"O If .\"O .I fpath @@ -210,15 +210,15 @@ ftw, nftw \- .\"O is passed in .\"O .IR typeflag . .I fpath -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¡¢¤«¤Ä +がシンボリックリンクで、かつ .BR stat (2) -¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +が失敗した場合、 .B FTW_NS -¤È +と .B FTW_SL -(¸å½Ò) ¤Î¤É¤Á¤é¤¬ +(後述) のどちらが .I typeflag -¤ËÅϤµ¤ì¤ë¤«¤Ï̤ÄêµÁ¤Ç¤¢¤ë¤È¡¢POSIX.1-2001 ¤Ë¤Ï½ñ¤«¤ì¤Æ¤¤¤ë¡£ +に渡されるかは未定義であると、POSIX.1-2001 には書かれている。 .PP .\"O To stop the tree walk, \fIfn\fP() returns a nonzero value; this .\"O value will become the return value of @@ -230,18 +230,18 @@ ftw, nftw \- .\"O or until it encounters an error (such as a .\"O .BR malloc (3) .\"O failure), in which case it will return \-1. -¥Ä¥ê¡¼¤Îõº÷¤ò»ß¤á¤¿¤¤¾ì¹ç¤Ï¡¢ +ツリーの探索を止めたい場合は、 .IR fn () -¤¬ 0 °Ê³°¤ÎÃͤòÊÖ¤»¤ÐÎɤ¤ -(¤³¤ÎÃÍ¤Ï +が 0 以外の値を返せば良い +(この値は .BR ftw () -¼«¿È¤ÎÌá¤êÃͤȤʤë)¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï +自身の戻り値となる)。 +それ以外の場合は .BR ftw () -¤Ï¥Ä¥ê¡¼Á´ÂΤÎõº÷¤ò³¤±¡¢¤¹¤Ù¤Æ¤Î¥Ä¥ê¡¼¤òõº÷¤·½ª¤¨¤¿¤È¤³¤í¤Ç -0 ¤òÊÖ¤¹¡£Ãµº÷Ãæ¤Ë +はツリー全体の探索を続け、すべてのツリーを探索し終えたところで +0 を返す。探索中に .RB ( malloc (3) -¤Î¼ºÇԤʤɤÎ) ¥¨¥é¡¼¤¬µ¯¤³¤ë¤È \-1 ¤òÊÖ¤¹¡£ +の失敗などの) エラーが起こると \-1 を返す。 .PP .\"O Because .\"O .BR ftw () @@ -253,43 +253,43 @@ ftw, nftw \- .\"O .BR longjmp (3) .\"O unless the program is going to terminate. .BR ftw () -¤ÏưŪ¤Ê¥Ç¡¼¥¿¹½Â¤¤òÍѤ¤¤ë¤Î¤Ç¡¢¥Ä¥ê¡¼Ãµº÷¤ò°ÂÁ´¤ËÃæÃǤ¹¤ëÍ£°ì¤ÎÊýË¡¤Ï -0 °Ê³°¤ÎÃͤò +は動的なデータ構造を用いるので、ツリー探索を安全に中断する唯一の方法は +0 以外の値を .IR fn () -¤ÎÊÖ¤êÃͤȤ¹¤ë¤³¤È¤Ç¤¢¤ë¡£³ä¤ê¹þ¤ß¤ò°·¤¦¤Ë¤Ï¡¢ -Î㤨¤ÐȯÀ¸¤·¤¿³ä¤ê¹þ¤ß¤ò¥Þ¡¼¥¯¤·¤Æ¤ª¤¤¤Æ¡¢ 0 °Ê³°¤ÎÃͤòÊÖ¤¹¤è¤¦¤Ë¤¹¤ë -¥·¥°¥Ê¥ë¤Ë¤è¤ê¥á¥â¥ê¥ê¡¼¥¯¤òµ¯¤³¤µ¤º¤Ëõº÷¤ò½ªÎ»¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ç +の返り値とすることである。割り込みを扱うには、 +例えば発生した割り込みをマークしておいて、 0 以外の値を返すようにする +シグナルによりメモリリークを起こさずに探索を終了できるようにするには、 +シグナルハンドラで .IR fn () -¤¬¥Á¥§¥Ã¥¯¤¹¤ë¥°¥í¡¼¥Ð¥ë¤Ê¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤è¤¦¤Ë¤¹¤ì¤Ð¤è¤¤¡£ -¥×¥í¥°¥é¥à¤ò½ªÎ»¤µ¤»¤ë¾ì¹ç°Ê³°¤Ï¡¢ +がチェックするグローバルなフラグをセットするようにすればよい。 +プログラムを終了させる場合以外は、 .BR longjmp (3) -¤ò»ÈÍѤ·¤Ê¤¤¤³¤È¡£ +を使用しないこと。 .SS nftw() .\"O The function \fBnftw\fP() is the same as .\"O .BR ftw (), .\"O except that it has one additional argument, \fIflags\fP, .\"O and calls \fIfn\fP() with one more argument, \fIftwbuf\fP. -´Ø¿ô +関数 .BR nftw () -¤Ï +は .BR ftw () -¤ÈƱ¤¸¤À¤¬¡¢°ú¤­¿ô +と同じだが、引き数 .I flags -¤¬Äɲ䵤ì¤ëÅÀ¤È¡¢ +が追加される点と、 .IR fn () -¤Î°ú¤­¿ô¤Ë +の引き数に .I ftwbuf -¤¬Äɲ䵤ì¤ëÅÀ¤¬°Û¤Ê¤ë¡£ +が追加される点が異なる。 .\"O This \fIflags\fP argument is formed by ORing zero or more of the .\"O following flags: -¤³¤Î +この .I flags -°ú¤­¿ô¤Ï²¼µ­¤Î¥Õ¥é¥°¤Î 0 ¸Ä°Ê¾å¤ÎÏÀÍýϤò¼è¤Ã¤¿¤â¤Î¤Ç¤¢¤ë: +引き数は下記のフラグの 0 個以上の論理和を取ったものである: .TP .\"O .BR FTW_ACTIONRETVAL " (since glibc 2.3.3)" -.BR FTW_ACTIONRETVAL " (glibc 2.3.3 °Ê¹ß)" +.BR FTW_ACTIONRETVAL " (glibc 2.3.3 以降)" .\"O If this glibc-specific flag is set, then .\"O .BR nftw () .\"O handles the return value from @@ -297,14 +297,14 @@ ftw, nftw \- .\"O differently. .\"O .IR fn () .\"O should return one of the following values: -¤³¤Î¥Õ¥é¥°¤Ï glibc ¸ÇÍ­¤Ç¤¢¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢ +このフラグは glibc 固有である。 +このフラグをセットすると、 .BR nftw () -¤Î +の .IR fn () -¤ÎÊÖ¤êÃͤΰ·¤¤¤¬ÊѤï¤ë¡£ +の返り値の扱いが変わる。 .IR fn () -¤Ï°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«°ì¤Ä¤òÊÖ¤¹É¬Íפ¬¤¢¤ë¡£ +は以下の値のいずれか一つを返す必要がある。 .RS .TP .B FTW_CONTINUE @@ -312,15 +312,15 @@ ftw, nftw \- .\"O .BR nftw () .\"O to continue normally. .BR nftw () -¤ÏÄ̾ïÄ̤ê½èÍý¤ò³¤±¤ë¡£ +は通常通り処理を続ける。 .TP .B FTW_SKIP_SIBLINGS .\"O If \fIfn\fP() returns this value, then .\"O siblings of the current entry will be skipped, .\"O and processing continues in the parent. .IR fn () -¤¬¤³¤ÎÃͤòÊÖ¤·¤¿¾ì¹ç¡¢½èÍýÃæ¤Î¥¨¥ó¥È¥ê¤Î·»Äï (Ʊ¤¸³¬ÁؤΥ¨¥ó¥È¥ê) -¤Î½èÍý¤Ï¥¹¥­¥Ã¥×¤µ¤ì¡¢¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ç³¤­¤Î½èÍý¤¬¹Ô¤ï¤ì¤ë¡£ +がこの値を返した場合、処理中のエントリの兄弟 (同じ階層のエントリ) +の処理はスキップされ、親ディレクトリで続きの処理が行われる。 .\" If \fBFTW_DEPTH\fP .\" is set, the entry's parent directory is processed next (with .\" \fIflag\fP set to \fBFTW_DP\fP). @@ -333,15 +333,15 @@ ftw, nftw \- .\"O .BR nftw () .\"O continues processing with the next sibling of the directory. .IR fn () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¥¨¥ó¥È¥ê¤¬¥Ç¥£¥ì¥¯¥È¥ê +が呼び出されたエントリがディレクトリ .RI ( typeflag -¤¬ +が .BR FTW_D ) -¤Î¾ì¹ç¤Ë¡¢¤³¤ÎÃͤòÊÖ¤¹¤È +の場合に、この値を返すと .IR fn () -¤Î°ú¤­¿ô¤È¤·¤ÆÅϤµ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥¨¥ó¥È¥ê¤Î½èÍý¤¬¹Ô¤ï¤ì¤Ê¤¯¤Ê¤ë¡£ +の引き数として渡されたディレクトリ内のエントリの処理が行われなくなる。 .BR nftw () -¤Ï½èÍýÃæ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î·»Äï (Ʊ¤¸³¬ÁؤΥ¨¥ó¥È¥ê) ¤«¤é½èÍý¤ò³¤±¤ë¡£ +は処理中のディレクトリの兄弟 (同じ階層のエントリ) から処理を続ける。 .TP .B FTW_STOP .\"O Causes @@ -349,15 +349,15 @@ ftw, nftw \- .\"O to return immediately with the return value .\"O \fBFTW_STOP\fP. .B nftw () -¤Ï¡¢ÊÖ¤êÃÍ +は、返り値 .B FTW_STOP -¤Ç¤¹¤°¤ËÉüµ¢¤¹¤ë¡£ +ですぐに復帰する。 .PP .\"O Other return values could be associated with new actions in the future; .\"O \fIfn\fP() should not return values other than those listed above. -¾¤ÎÊÖ¤êÃͤϾ­Íè¿·¤·¤¤Æ°ºî¤ËÂбþÉÕ¤±¤é¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +他の返り値は将来新しい動作に対応付けられる可能性がある。 .IR fn () -¤Ï¾åµ­¤Î¥ê¥¹¥È¤Ë¤¢¤ëÃͰʳ°¤òÊÖ¤µ¤Ê¤¤¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +は上記のリストにある値以外を返さないようにすべきである。 .\"O The feature test macro .\"O .B _GNU_SOURCE @@ -368,13 +368,13 @@ ftw, nftw \- .\"O in order to .\"O obtain the definition of \fBFTW_ACTIONRETVAL\fP from \fI\fP. .I -¤Ç +で .B FTW_ACTIONRETVAL -¤ÎÄêµÁ¤¬Í­¸ú¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ -(¡Ö¤É¤Î¡×¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤è¤ê¤âÁ°¤Ë) -µ¡Ç½¸¡ºº¥Þ¥¯¥í +の定義が有効にするためには、 +(「どの」ヘッダファイルをインクルードするよりも前に) +機能検査マクロ .B _GNU_SOURCE -¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を定義しなければならない。 .RE .TP .B FTW_CHDIR @@ -383,52 +383,52 @@ ftw, nftw \- .\"O to each directory before handling its contents. .\"O This is useful if the program needs to perform some action .\"O in the directory in which \fIfpath\fP resides. -¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢¥Ç¥£¥ì¥¯¥È¥ê¤ÎÆâÍƤò½èÍý¤¹¤ëÁ°¤Ë -¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë +セットされると、ディレクトリの内容を処理する前に +そのディレクトリに .BR chdir (2) -¤¹¤ë¡£¤³¤Î¥Õ¥é¥°¤Ï¡¢ +する。このフラグは、 .I fpath -¤¬Â°¤¹¥Ç¥£¥ì¥¯¥È¥ê¤Ç²¿¤é¤«¤ÎÆ°ºî¤ò¼Â¹Ô¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ë -ÊØÍø¤Ç¤¢¤ë¡£ +が属すディレクトリで何らかの動作を実行する必要がある場合に +便利である。 .TP .B FTW_DEPTH .\"O If set, do a post-order traversal, that is, call \fIfn\fP() for .\"O the directory itself \fIafter\fP handling the contents of the directory .\"O and its subdirectories. .\"O (By default, each directory is handled \fIbefore\fP its contents.) -¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢µ¢¤ê¤¬¤±½çõº÷ (post-order traversal) ¤ò¹Ô¤¦¡£ -¤Ä¤Þ¤ê¡¢¥Ç¥£¥ì¥¯¥È¥ê¤½¤Î¤â¤Î¤ò°ú¤­¿ô¤È¤·¤¿ +セットされると、帰りがけ順探索 (post-order traversal) を行う。 +つまり、ディレクトリそのものを引き数とした .IR fn () -¸Æ½Ð¤·¤Ï¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë´Þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¤È¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë -ÂФ¹¤ë½èÍý¤Î¡Ö¸å¤Ç¡×¹Ô¤ï¤ì¤ë -(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¼«¿È¤Î½èÍý¤Ï¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥¨¥ó¥È¥ê -¤è¤ê¡ÖÁ°¤Ë¡×¹Ô¤Ê¤ï¤ì¤ë)¡£ +呼出しは、そのディレクトリに含まれるファイルとサブディレクトリに +対する処理の「後で」行われる +(デフォルトでは、ディレクトリ自身の処理はディレクトリ内のエントリ +より「前に」行なわれる)。 .TP .B FTW_MOUNT .\"O If set, stay within the same file system .\"O (i.e., do not cross mount points). -¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢Æ±¤¸¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÃæ¤À¤±¤òõº÷ÂоݤȤ¹¤ë -(¤Ä¤Þ¤ê¡¢¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ò¤Þ¤¿¤°¤³¤È¤Ï¤Ê¤¤)¡£ +セットされると、同じファイルシステムの中だけを探索対象とする +(つまり、マウントポイントをまたぐことはない)。 .TP .B FTW_PHYS .\"O If set, do not follow symbolic links. .\"O (This is what you want.) .\"O If not set, symbolic links are followed, but no file is reported twice. -¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òé¤é¤Ê¤¤ (¤ª¤½¤é¤¯¤³¤Á¤é¤¬ -Ä̾ï˾¤Þ¤·¤¤Æ°ºî¤À¤í¤¦)¡£¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ò -é¤ë¤¬¡¢Æ±¤¸¥Õ¥¡¥¤¥ë¤¬Æó²óÊó¹ð¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ +セットされると、シンボリックリンクを辿らない (おそらくこちらが +通常望ましい動作だろう)。セットされていないとシンボリックリンクを +辿るが、同じファイルが二回報告されることはない。 .sp .\"O If \fBFTW_PHYS\fP is not set, but \fBFTW_DEPTH\fP is set, .\"O then the function .\"O .IR fn () .\"O is never called for a directory that would be a descendant of itself. .B FTW_PHYS -¤¬¥»¥Ã¥È¤µ¤ì¤º¤Ë +がセットされずに .B FTW_DEPTH -¤¬¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢¼«Ê¬¼«¿È¤ËÂФ¹¤ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òÇÛ²¼¤Ë»ý¤Ä -¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ·¤Æ +がセットされると、自分自身に対するシンボリックリンクを配下に持つ +ディレクトリに対して .IR fn () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤³¤È¤Ï·è¤·¤Æ¤Ê¤¤¡£ +が呼び出されることは決してない。 .LP .\"O For each entry in the directory tree, .\"O .BR nftw () @@ -444,21 +444,21 @@ ftw, nftw \- .\"O may receive any of the same values as with .\"O .BR ftw (), .\"O or any of the following values: -¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Î¥¨¥ó¥È¥êËè¤Ë¡¢ +ディレクトリツリーのエントリ毎に、 .BR nftw () -¤Ï 4¤Ä¤Î°ú¤­¿ô¤Ç +は 4つの引き数で .IR fn () -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .I fpath -¤È +と .I sb -¤Ï +は .BR ftw () -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .I typeflag -¤Ë¤Ï¡¢ +には、 .BR ftw () -¤Ç¼è¤êÆÀ¤ëÃͤΤ¤¤º¤ì¤«¡¢¤Þ¤¿¤Ï°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«¤¬ÅϤµ¤ì¤ë: +で取り得る値のいずれか、または以下の値のいずれかが渡される: .TP .B FTW_DP .\"O .I fpath @@ -466,20 +466,20 @@ ftw, nftw \- .\"O All of the files .\"O and subdirectories within \fIfpath\fP have been processed. .I fpath -¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¡¢¤«¤Ä +がディレクトリで、かつ .I flags -¤Ç +で .B FTW_DEPTH -¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¡£ +が指定されていた。 .I fpath -ÇÛ²¼¤Î¥Õ¥¡¥¤¥ë¤È¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ÏÁ´¤Æ½èÍý¤¬½ª¤ï¤Ã¤Æ¤¤¤ë¡£ +配下のファイルとサブディレクトリは全て処理が終わっている。 .TP .B FTW_SL .\"O .I fpath .\"O is a symbolic link, and \fBFTW_PHYS\fP was set in \fIflags\fP. .I fpath -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¡¢¤«¤Ä \fBFTW_PHYS\fP ¤¬ \fIflags\fP ¤Ë -¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤¿¡£ +がシンボリックリンクで、かつ \fBFTW_PHYS\fP が \fIflags\fP に +セットされていた。 .\" To obtain the definition of this constant from .\" .IR , .\" either @@ -493,10 +493,10 @@ ftw, nftw \- .\"O is a symbolic link pointing to a nonexistent file. .\"O (This occurs only if \fBFTW_PHYS\fP is not set.) .I fpath -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¡¢Â¸ºß¤·¤Ê¤¤¥Õ¥¡¥¤¥ë¤ò»Ø¤·¤Æ¤¤¤ë -(¤³¤ì¤¬¥»¥Ã¥È¤µ¤ì¤ë¤Î¤Ï +がシンボリックリンクで、存在しないファイルを指している +(これがセットされるのは .B FTW_PHYS -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤À¤±¤Ç¤¢¤ë)¡£ +がセットされていない場合だけである)。 .LP .\"O The fourth argument that .\"O .BR nftw () @@ -504,11 +504,11 @@ ftw, nftw \- .\"O \fIfn\fP() .\"O is a structure of type \fIFTW\fP: .BR nftw () -¤¬ +が .IR fn () -¤ò¸Æ¤Ó½Ð¤¹ºÝ¤ËÅϤ¹ 4¤Ä¤á¤Î°ú¤­¿ô¤Ï +を呼び出す際に渡す 4つめの引き数は .I FTW -·¿¤Î¹½Â¤ÂΤǤ¢¤ë¡£ +型の構造体である。 .in +4n .nf @@ -530,33 +530,33 @@ struct FTW { .\"O .RI ( dirpath , .\"O which has depth 0). .I base -¤Ï¡¢¥Õ¥¡¥¤¥ë̾ (basename Í×ÁÇ) ¤Î¡¢ +は、ファイル名 (basename 要素) の、 .I fpath -¤ÇÅϤµ¤ì¤ë¥Ñ¥¹Ì¾¤ÎÃæ¤Ç¤Î¥ª¥Õ¥»¥Ã¥È¤Ç¤¢¤ë¡£ +で渡されるパス名の中でのオフセットである。 .I level -¤Ï¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Ç¤Î +はディレクトリツリーでの .I fpath -¤Î¿¼¤µ¤ò¼¨¤¹¡£¿¼¤µ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Î¥È¥Ã¥× (root) ¤«¤é¤Î -ÁêÂÐÃͤǤ¢¤ë +の深さを示す。深さはディレクトリツリーのトップ (root) からの +相対値である .RI ( dirpath -¤Ï¿¼¤µ 0 ¤Ç¤¢¤ë)¡£ +は深さ 0 である)。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O These functions return 0 on success, and \-1 if an error occurs. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢À®¸ù¤¹¤ë¤È 0 ¤ò¡¢¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤È \-1 ¤òÊÖ¤¹¡£ +これらの関数は、成功すると 0 を、エラーが発生すると \-1 を返す。 .\"O If \fIfn\fP() returns nonzero, .\"O then the tree walk is terminated and the value returned by \fIfn\fP() .\"O is returned as the result of \fBftw\fP() or .\"O .BR nftw (). .IR fn () -¤¬ 0 °Ê³°¤òÊÖ¤·¤¿¾ì¹ç¡¢¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Îõº÷¤ò½ªÎ»¤·¡¢ +が 0 以外を返した場合、ディレクトリツリーの探索を終了し、 .IR fn () -¤¬ÊÖ¤·¤¿Ãͤò +が返した値を .BR ftw () -¤ä +や .BR nftw () -¤Î·ë²Ì¤È¤·¤ÆÊÖ¤¹¡£ +の結果として返す。 .\"O If .\"O .BR nftw () @@ -566,34 +566,34 @@ struct FTW { .\"O and that value is returned as the result of .\"O .BR nftw (). .BR nftw () -¤¬ +が .B FTW_ACTIONRETVAL -¥Õ¥é¥°ÉÕ¤­¤Ç¸Æ¤Ð¤ì¤¿¾ì¹ç¡¢¥Ä¥ê¡¼¤Îõº÷¤ò½ªÎ»¤µ¤»¤ë¤¿¤á¤Ë +フラグ付きで呼ばれた場合、ツリーの探索を終了させるために .IR fn () -¤¬»ÈÍѤǤ­¤ë¡¢Èó 0 ¤ÎÃÍ¤Ï +が使用できる、非 0 の値は .B FTW_STOP -¤À¤±¤Ç¤¢¤ê¡¢ -¤³¤ÎÃÍ¤Ï +だけであり、 +この値は .BR nftw () -¤ÎÊÖ¤êÃͤȤ·¤ÆÊÖ¤µ¤ì¤ë¡£ +の返り値として返される。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001, SVr4, SUSv1. .\"O POSIX.1-2008 marks .\"O .BR ftw () .\"O as obsolete. -POSIX.1-2008 ¤Ï +POSIX.1-2008 は .BR ftw () -¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£ +を廃止予定としている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O POSIX.1-2001 note that the results are unspecified if .\"O .I fn .\"O does not preserve the current working directory. -POSIX.1-2001 ¤ÎÃíµ­¤Ë¤è¤ë¤È¡¢ +POSIX.1-2001 の注記によると、 .I fn -¤¬¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤òÊÝ»ý¤·¤Ê¤«¤Ã¤¿¾ì¹ç¤Î -·ë²Ì¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¤µ¤ì¤Æ¤¤¤ë¡£ +がカレントワーキングディレクトリを保持しなかった場合の +結果は規定されていないとされている。 .PP .\"O The function .\"O .BR nftw () @@ -601,11 +601,11 @@ POSIX.1-2001 .\"O .BR ftw () .\"O were introduced in SUSv1. .BR nftw () -´Ø¿ô¤È¡¢ +関数と、 .BR ftw () -¤Ë¤ª¤±¤ë +における .B FTW_SL -¤Ï¡¢SUSv1 ¤ÇƳÆþ¤µ¤ì¤¿¡£ +は、SUSv1 で導入された。 .LP .\"O On some systems .\"O .BR ftw () @@ -617,41 +617,41 @@ POSIX.1-2001 .\"O For predictable control, use .\"O .BR nftw (). .BR ftw () -¤Ç +で .B FTW_SL -¤ò°ìÀڻȤï¤Ê¤¤¥·¥¹¥Æ¥à¤ä¡¢ -¸ºß¤·¤Ê¤¤¥Õ¥¡¥¤¥ë¤ò»Ø¤·¤Æ¤¤¤ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¤Ë¤Î¤ß +を一切使わないシステムや、 +存在しないファイルを指しているシンボリックリンクの場合にのみ .B FTW_SL -¤ò»È¤¦¥·¥¹¥Æ¥à¡¢¤Þ¤¿ +を使うシステム、また .BR ftw () -¤¬Á´¤Æ¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ËÂФ·¤Æ +が全てのシンボリックリンクに対して .B FTW_SL -¤ò»È¤¦¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ -ͽ¬²Äǽ¤ÊÆ°ºî¤ò¤µ¤»¤ë¤¿¤á¤Ë¤Ï¡¢ +を使うシステムもある。 +予測可能な動作をさせるためには、 .BR nftw () -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .LP .\"O Under Linux, libc4 and libc5 and glibc 2.0.6 will .\"O use \fBFTW_F\fP for all objects (files, symbolic links, FIFOs, etc.) .\"O that can be stat'ed but are not a directory. -Linux ¤Ç¤Ï¡¢ libc4, libc5, glibc 2.0.6 ¤Ï -¡Östat ¤Ç¤­¤ë¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¥ª¥Ö¥¸¥§¥¯¥È¡× -(¥Õ¥¡¥¤¥ë, ¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯, fifo Åù) -¤ËÂФ·¤Æ¤Ï¤¹¤Ù¤Æ +Linux では、 libc4, libc5, glibc 2.0.6 は +「stat できるがディレクトリではないオブジェクト」 +(ファイル, シンボリックリンク, fifo 等) +に対してはすべて .B FTW_F -¤ò»È¤¦¡£ +を使う。 .\"O The function .\"O .BR nftw () .\"O is available since glibc 2.1. .BR nftw () -´Ø¿ô¤Ï glibc 2.1 °Ê¹ß¤ÇÍøÍѤǤ­¤ë¡£ +関数は glibc 2.1 以降で利用できる。 .\"O \fBFTW_ACTIONRETVAL\fP is glibc-specific. .B FTW_ACTIONRETVAL -¤Ï glibc ¸ÇÍ­¤Ç¤¢¤ë¡£ +は glibc 固有である。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The following program traverses the directory tree under the path named .\"O in its first command-line argument, or under the current directory .\"O if no argument is supplied. @@ -660,15 +660,15 @@ Linux .\"O control the value assigned to the \fIflags\fP .\"O argument when calling .\"O .BR nftw (). -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢°ì¤ÄÌܤΥ³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤ò̾Á°¤Ë»ý¤Ä¥Ñ¥¹°Ê²¼¤Î -¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤òõº÷¤¹¤ë¡£°ú¤­¿ô¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ -¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤òõº÷¤¹¤ë¡£ -³Æ¡¹¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤ÆÍÍ¡¹¤Î¾ðÊó¤¬É½¼¨¤µ¤ì¤ë¡£ -ÆóÈÖÌܤΥ³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ëʸ»ú¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢ +以下のプログラムは、一つ目のコマンドライン引き数を名前に持つパス以下の +ディレクトリツリーを探索する。引き数が指定されなかった場合は、 +カレントディレクトリ以下を探索する。 +各々のファイルについて様々の情報が表示される。 +二番目のコマンドライン引き数に文字を指定することで、 .BR nftw () -¤ò¸Æ¤Ó½Ð¤¹ºÝ¤Ë +を呼び出す際に .I flags -°ú¤­¿ô¤ËÅϤ¹ÃͤòÀ©¸æ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +引き数に渡す値を制御することができる。 .nf #define _XOPEN_SOURCE 500 @@ -711,7 +711,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR stat (2), .BR fts (3), .BR readdir (3) diff --git a/draft/man3/futimes.3 b/draft/man3/futimes.3 index 5be7db2b..41129888 100644 --- a/draft/man3/futimes.3 +++ b/draft/man3/futimes.3 @@ -26,16 +26,16 @@ .\" Translated 2006-07-31, Akihiro MOTOKI .\" Updated 2008-08-07, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: access time ¥¢¥¯¥»¥¹»þ¹ï -.\"WORD: modification time ½¤Àµ»þ¹ï +.\"WORD: access time アクセス時刻 +.\"WORD: modification time 修正時刻 .\" .TH FUTIMES 3 2008-04-07 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O futimes, lutimes \- change file timestamps -futimes, lutimes \- ¥Õ¥¡¥¤¥ë¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×¤òÊѹ¹¤¹¤ë +futimes, lutimes \- ファイルのタイムスタンプを変更する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include @@ -47,16 +47,16 @@ futimes, lutimes \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR futimes (), .BR lutimes (): _BSD_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR futimes () .\"O changes the access and modification times of a file in the same way as .\"O .BR utimes (2), @@ -65,13 +65,13 @@ _BSD_SOURCE .\"O .IR fd , .\"O rather than via a pathname. .BR futimes () -¤Ï +は .BR utimes (2) -¤ÈƱ¤¸ÊýË¡¤Ç¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹»þ¹ï¤È½¤Àµ»þ¹ï¤òÊѹ¹¤¹¤ë¡£ -°ã¤¤¤Ï¡¢¥¿¥¤¥à¥¹¥¿¥ó¥×¤òÊѹ¹¤¹¤ë¥Õ¥¡¥¤¥ë¤ò¡¢ -¥Ñ¥¹Ì¾¤Ç¤Ï¤Ê¤¯¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +と同じ方法でファイルのアクセス時刻と修正時刻を変更する。 +違いは、タイムスタンプを変更するファイルを、 +パス名ではなく、ファイルディスクリプタ .I fd -¤òÍѤ¤¤Æ»ØÄꤹ¤ëÅÀ¤Ç¤¢¤ë¡£ +を用いて指定する点である。 .\"O .BR lutimes () .\"O changes the access and modification times of a file in the same way as @@ -81,70 +81,70 @@ _BSD_SOURCE .\"O refers to a symbolic link, then the link is not dereferenced: .\"O instead, the timestamps of the symbolic link are changed. .BR lutimes () -¤Ï +は .BR utimes (2) -¤ÈƱ¤¸ÊýË¡¤Ç¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹»þ¹ï¤È½¤Àµ»þ¹ï¤òÊѹ¹¤¹¤ë¡£ -°ã¤¤¤Ï¡¢ +と同じ方法でファイルのアクセス時刻と修正時刻を変更する。 +違いは、 .I filename -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢¥ê¥ó¥¯¤ÎŸ³«¤ò¹Ô¤ï¤º¡¢ -Âå¤ï¤ê¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×¤òÊѹ¹¤¹¤ë¡£ +がシンボリック・リンクを参照している場合に、リンクの展開を行わず、 +代わりにシンボリック・リンクのタイムスタンプを変更する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤·¡¢ +成功すると 0 を返す。エラーの場合 \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O Errors are as for .\"O .BR utimes (2), .\"O with the following additions for .\"O .BR futimes (): -¥¨¥é¡¼¤Ï +エラーは .BR utimes (2) -¤ÈƱ¤¸¤À¤¬¡¢ +と同じだが、 .BR futimes () -¤Ç¤Ï°Ê²¼¤Î¥¨¥é¡¼¤¬ÄɲäˤʤäƤ¤¤ë: +では以下のエラーが追加になっている: .TP .B EBADF .\"O .I fd .\"O is not a valid file descriptor. .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B ENOSYS .\"O The .\"O .I /proc .\"O file system could not be accessed. .I /proc -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +ファイルシステムにアクセスできなかった。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR futimes () .\"O is available since glibc 2.3. .BR futimes () -¤Ï glibc 2.3 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +は glibc 2.3 以降で利用可能である。 .\"O .BR lutimes () .\"O is available since glibc 2.6, and is implemented using the .\"O .BR utimensat (2) .\"O system call, which is supported since kernel 2.6.22. .BR lutimes () -¤Ï glibc 2.6 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ê¡¢ +は glibc 2.6 以降で利用可能であり、 .BR utimensat (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +システムコールを使って実装されている。 .BR utimensat (2) -¤Ï¥«¡¼¥Í¥ë 2.6.22 °Ê¹ß¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +はカーネル 2.6.22 以降でサポートされている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These functions are not specified in any standard. .\"O Other than Linux, they are only available on the BSDs. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¤É¤Îɸ½à¤Ç¤âµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -Linux °Ê³°¤Ç¤Ï¡¢¤³¤ì¤é¤Ï BSD ¤Ç¤Î¤ßÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +これらの関数はどの標準でも規定されていない。 +Linux 以外では、これらは BSD でのみ利用可能である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR utime (2), .BR utimensat (2), .BR symlink (7) diff --git a/draft/man3/fwide.3 b/draft/man3/fwide.3 index e0529c04..aeb2dd3a 100644 --- a/draft/man3/fwide.3 +++ b/draft/man3/fwide.3 @@ -18,11 +18,11 @@ .\" .TH FWIDE 3 2011-09-17 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fwide \- set and determine the orientation of a FILE stream -fwide \- FILE ¥¹¥È¥ê¡¼¥à¤ÎÆþ½ÐÎÏñ°Ì¤òÀßÄê¤Þ¤¿¤Ï¼èÆÀ¤¹¤ë +fwide \- FILE ストリームの入出力単位を設定または取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -48,7 +48,7 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O When \fImode\fP is zero, the .\"O .BR fwide () .\"O function determines the current @@ -61,25 +61,25 @@ or .\"O It .\"O returns zero if \fIstream\fP has no orientation yet; in this case the next .\"O I/O operation might change the orientation (to byte oriented if it is a char -\fImode\fP ¤¬¥¼¥í¤Ê¤é¤Ð +\fImode\fP がゼロならば .BR fwide () -´Ø¿ô¤Ï \fIstream\fP ¤Î¸½ºß¤Î +関数は \fIstream\fP の現在の .\"O I/O operation, or to wide-character oriented if it is a wide-character I/O .\"O operation). -Æþ½ÐÎÏñ°Ì¤ò·èÄꤷ¤ÆÊÖ¤¹¡£\fIstream\fP ¤¬¥ï¥¤¥Éʸ»úñ°Ì¤Î¤È¤­¡¢ -¤¹¤Ê¤ï¤Á¥ï¥¤¥Éʸ»ú I/O ¤Ïµö¤µ¤ì¤Æ¥Ð¥¤¥È (char) I/O ¤Ïµö¤µ¤ì¤Æ¤¤¤Ê¤¤ -¤È¤­¤Ë¤Ï¡¢Àµ¤ÎÃͤòÊÖ¤¹¡£ -\fIstream\fP ¤¬¥Ð¥¤¥Èñ°Ì¤Î¤È¤­¡¢¤¹¤Ê¤ï¤Á¥Ð¥¤¥È I/O ¤Ïµö¤µ¤ì¤Æ -¥ï¥¤¥Éʸ»ú I/O ¤Ïµö¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¤­¤Ë¤Ï¡¢Éé¤ÎÃͤòÊÖ¤¹¡£ -\fIstream\fP ¤ÎÆþ½ÐÎÏñ°Ì¤¬¤Þ¤À·èÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¥¼¥í¤¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤Î¾ì¹ç¤Ë¤Ï¼¡¤Î I/O Áàºî¤Ë¤è¤Ã¤ÆÆþ½ÐÎÏñ°Ì¤¬Êѹ¹¤µ¤ì¤ë -(¥Ð¥¤¥È I/O Áàºî¤Î¾ì¹ç¤Ë¤Ï¥Ð¥¤¥Èñ°Ì¤Ë¡¢¥ï¥¤¥Éʸ»ú I/O Áàºî¤Î¾ì¹ç¤Ë¤Ï -¥ï¥¤¥Éʸ»úñ°Ì¤Ë¤Ê¤ë)¡£ +入出力単位を決定して返す。\fIstream\fP がワイド文字単位のとき、 +すなわちワイド文字 I/O は許されてバイト (char) I/O は許されていない +ときには、正の値を返す。 +\fIstream\fP がバイト単位のとき、すなわちバイト I/O は許されて +ワイド文字 I/O は許されていないときには、負の値を返す。 +\fIstream\fP の入出力単位がまだ決定されていない場合にはゼロが返される。 +この場合には次の I/O 操作によって入出力単位が変更される +(バイト I/O 操作の場合にはバイト単位に、ワイド文字 I/O 操作の場合には +ワイド文字単位になる)。 .PP .\"O Once a stream has an orientation, it cannot be changed and persists until .\"O the stream is closed. -°ìÅÙ¥¹¥È¥ê¡¼¥à¤ÎÆþ½ÐÎÏñ°Ì¤¬·è¤Þ¤ë¤È¡¢Êѹ¹¤¹¤ë¤³¤È¤Ï¤Ç¤­¤º¡¢ -¥¹¥È¥ê¡¼¥à¤¬¥¯¥í¡¼¥º (close) ¤µ¤ì¤ë¤Þ¤ÇÊÝ»ý¤µ¤ì¤ë¡£ +一度ストリームの入出力単位が決まると、変更することはできず、 +ストリームがクローズ (close) されるまで保持される。 .PP .\"O When \fImode\fP is nonzero, the .\"O .BR fwide () @@ -89,16 +89,16 @@ or .\"O to byte oriented if \fImode\fP is less than 0). .\"O It then returns a value denoting the .\"O current orientation, as above. -\fImode\fP ¤¬¥¼¥í¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï +\fImode\fP がゼロでない場合には .BR fwide () -´Ø¿ô¤ÏºÇ½é¤Ë \fIstream\fP -¤ÎÆþ½ÐÎÏñ°Ì¤òÀßÄꤷ¤è¤¦¤È¤¹¤ë -(\fImode\fP ¤¬ 0 ¤è¤êÂ礭¤¤¾ì¹ç¤Ë¤Ï¥ï¥¤¥Éʸ»úñ°Ì¤Ë¡¢ -\fImode\fP ¤¬ 0 ¤è¤ê¾®¤µ¤¤¾ì¹ç¤Ë¤Ï¥Ð¥¤¥Èñ°Ì¤ËÀßÄꤷ¤è¤¦¤È¤¹¤ë)¡£ -¤½¤·¤Æ¾åµ­¤ÈƱÍͤ˸½ºß¤ÎÆþ½ÐÎÏñ°Ì¤òÊÖ¤¹¡£ +関数は最初に \fIstream\fP +の入出力単位を設定しようとする +(\fImode\fP が 0 より大きい場合にはワイド文字単位に、 +\fImode\fP が 0 より小さい場合にはバイト単位に設定しようとする)。 +そして上記と同様に現在の入出力単位を返す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR fwide () .\"O function returns the stream's orientation, after possibly @@ -107,14 +107,14 @@ or .\"O A negative return value means byte oriented. .\"O A return value of zero means undecided. .BR fwide () -´Ø¿ô¤Ï¥¹¥È¥ê¡¼¥à¤ÎÆþ½ÐÎÏñ°Ì¤ÎÀßÄê¤ò»î¤ß¤¿¸å¤Ë¤½¤ÎÃͤòÊÖ¤¹¡£ -Àµ¤ÎÊÖ¤êÃͤϥ磻¥Éʸ»úñ°Ì¤ò¡¢Éé¤ÎÊÖ¤êÃͤϥХ¤¥Èñ°Ì¤ò°ÕÌ£¤¹¤ë¡£ -ÊÖ¤êÃͤ¬ 0 ¤Ê¤é¤Ð̤·èÄê¤ò°ÕÌ£¤¹¤ë¡£ +関数はストリームの入出力単位の設定を試みた後にその値を返す。 +正の返り値はワイド文字単位を、負の返り値はバイト単位を意味する。 +返り値が 0 ならば未決定を意味する。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Wide-character output to a byte oriented stream can be performed through the .\"O .BR fprintf (3) .\"O function with the @@ -122,13 +122,13 @@ C99, POSIX.1-2001. .\"O and .\"O .B %ls .\"O directives. -¥Ð¥¤¥Èñ°Ì¤Î¥¹¥È¥ê¡¼¥à¤Ë¥ï¥¤¥Éʸ»ú¤ò½ÐÎϤˤ¹¤ë¤Ë¤Ï +バイト単位のストリームにワイド文字を出力にするには .BR fprintf (3) -´Ø¿ô¤Î +関数の .B %lc -ÊÑ´¹¤ä +変換や .B %ls -ÊÑ´¹¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +変換を使用することができる。 .PP .\"O Char oriented output to a wide-character oriented stream can be performed .\"O through the @@ -138,14 +138,14 @@ C99, POSIX.1-2001. .\"O and .\"O .B %s .\"O directives. -¥ï¥¤¥Éʸ»úñ°Ì¤Î¥¹¥È¥ê¡¼¥à¤Ë¥Ð¥¤¥Èñ°Ì¤Î½ÐÎϤò¹Ô¤¦¤Ë¤Ï +ワイド文字単位のストリームにバイト単位の出力を行うには .BR fwprintf (3) -´Ø¿ô¤Î +関数の .B %c -ÊÑ´¹¤ä +変換や .B %s -ÊÑ´¹¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +変換を使用することができる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fprintf (3), .BR fwprintf (3) diff --git a/draft/man3/gamma.3 b/draft/man3/gamma.3 index abd409e5..eb2142c0 100644 --- a/draft/man3/gamma.3 +++ b/draft/man3/gamma.3 @@ -16,10 +16,10 @@ .TH GAMMA 3 2008-08-05 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O gamma, gammaf, gammal \- (logarithm of the) gamma function -.SH ̾Á° -gamma, gammaf, gammal \- ¥¬¥ó¥Þ´Ø¿ô (¤Î¼«Á³Âпô) +.SH 名前 +gamma, gammaf, gammal \- ガンマ関数 (の自然対数) .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double gamma(double " x ");" @@ -29,14 +29,14 @@ gamma, gammaf, gammal \- .BI "long double gammal(long double " x ");" .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -52,65 +52,65 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 600 .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions are deprecated: instead, use either the .\"O .BR tgamma (3) .\"O or the .\"O .BR lgamma (3) .\"O functions, as appropriate. -¤³¤ì¤é¤Î´Ø¿ô¤ÏÈó¿ä¾©¤Ç¤¢¤ë¡£¤½¤ÎÂå¤ï¤ê¡¢¾ìÌ̤˱þ¤¸¤Æ +これらの関数は非推奨である。その代わり、場面に応じて .BR tgamma (3) -¤« +か .BR lgamma (3) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .\"O For the definition of the Gamma function, see .\"O .BR tgamma (3). -¥¬¥ó¥Þ´Ø¿ô¤ÎÄêµÁ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +ガンマ関数の定義については、 .BR tgamma (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SS "*BSD version" -.SS *BSDÈÇ +.SS *BSD版 .\"O The libm in 4.4BSD and some versions of FreeBSD had a .\"O .BR gamma () .\"O function that computes the Gamma function, as one would expect. -4.4BSD ¤Î libm ¤È FreeBSD ¤Î¤¤¤¯¤Ä¤«¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤Ï¡¢´Ø¿ô +4.4BSD の libm と FreeBSD のいくつかのバージョンには、関数 .BR gamma () -¤¬´Þ¤Þ¤ì¤Æ¤ª¤ê¡¢´üÂÔÄ̤ꥬ¥ó¥Þ´Ø¿ô¤ò·×»»¤Ç¤­¤ë¡£ +が含まれており、期待通りガンマ関数を計算できる。 .\"O .SS "glibc version" -.SS glibcÈÇ +.SS glibc版 .\"O Glibc has a .\"O .BR gamma () .\"O function that is equivalent to .\"O .BR lgamma (3) .\"O and computes the natural logarithm of the Gamma function. -Glibc¤Ï¡¢´Ø¿ô +Glibcは、関数 .BR gamma () -¤ò´Þ¤ó¤Ç¤¤¤ë¤¬¡¢¤³¤ì¤Ï +を含んでいるが、これは .BR lgamma (3) -¤ÈÅù²Á¤Ç¤¢¤ê¡¢¥¬¥ó¥Þ´Ø¿ô¤Î¼«Á³Âпô¤ò·×»»¤¹¤ë¡£ +と等価であり、ガンマ関数の自然対数を計算する。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O See .\"O .BR lgamma (3). .BR lgamma (3) -¤ò»²¾È¡£ +を参照。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR lgamma (3). .BR lgamma (3) -¤ò»²¾È¡£ +を参照。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O Because of historical variations in behavior across systems, .\"O this function is not specified in any standard. -¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¿¶Éñ¤¤¤¬°Û¤Ê¤ë¤È¤¤¤¦Îò»ËŪ¤Ê·Ð°Þ¤Î¤¿¤á¡¢ -¤³¤Î´Ø¿ô¤Ï¤É¤Îɸ½àµ¬³Ê¤Ç¤âµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +システムによって振舞いが異なるという歴史的な経緯のため、 +この関数はどの標準規格でも規定されていない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .SS History -.SS Îò»Ë +.SS 歴史 .\"O 4.2BSD had a .\"O .BR gamma () .\"O that computed @@ -119,13 +119,13 @@ Glibc .\"O .RI Gamma(| x |) .\"O in the external integer .\"O .IR signgam . -4.2BSD¤Ë¤ª¤¤¤Æ¤Ï¡¢´Ø¿ô +4.2BSDにおいては、関数 .BR gamma () -¤¬¼ÂºÝ¤Ë·×»»¤¹¤ë¤Î¤Ï +が実際に計算するのは .RI ln(|Gamma(| x |)|) -¤Ç¤¢¤ê¡¢ +であり、 .RI Gamma(| x |) -¤ÎÉä¹æ¤¬ extern int \fIsigngam\fP ¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤¿¡£ +の符号が extern int \fIsigngam\fP に格納されていた。 .\"O In 4.3BSD the name was changed to .\"O .BR lgamma (3), .\"O and the man page promises @@ -135,15 +135,15 @@ Glibc .\"O and used for the Gamma function" .\"O .in .\"O .sp -4.3BSD¤Ë¤Ê¤Ã¤Æ´Ø¿ô̾¤¬Êѹ¹¤µ¤ì¡¢ +4.3BSDになって関数名が変更され、 .BR lgamma (3) -¤È¤Ê¤ê¡¢¤½¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Ï +となり、そのマニュアルページでは .sp .in +4n -¡Ö¤¤¤Ä¤ÎÆü¤« gamma ¤Î̾¤ÏÉü³è¤·¡¢¥¬¥ó¥Þ´Ø¿ô¤Ë´§¤µ¤ì¤ë¤Ç¤¢¤í¤¦¡× +「いつの日か gamma の名は復活し、ガンマ関数に冠されるであろう」 .in .sp -¤È¤¤¤¦ÀÀ¤¤¤¬½Ò¤Ù¤é¤ì¤Æ¤¤¤¿¡£ +という誓いが述べられていた。 .\"O This did indeed happen in 4.4BSD, where .\"O .BR gamma () .\"O computes the Gamma function (with no effect on @@ -154,21 +154,21 @@ Glibc .\" The FreeBSD man page says about gamma() that it is like lgamma() .\" except that is does not set signgam. .\" Also, that 4.4BSD has a gamma() that computes the true gamma function. -¤³¤ì¤Ï4.4BSD¤Ë¤Ê¤Ã¤Æ¼Â¸½¤µ¤ì¡¢ +これは4.4BSDになって実現され、 .BR gamma () -¤Ï¤Þ¤µ¤Ë¥¬¥ó¥Þ´Ø¿ô¤ò·×»»¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ -(¤â¤¦ \fIsigngam\fP ¤Ë¤ÏºîÍѤ·¤Ê¤¤¡£) -¤È¤³¤í¤¬¡¢¤³¤ì¤¬Åо줹¤ë»þ´ü¤¬ÃÙ¤¹¤®¤¿¤¿¤á¡¢ +はまさにガンマ関数を計算するようになった。 +(もう \fIsigngam\fP には作用しない。) +ところが、これが登場する時期が遅すぎたため、 .BR tgamma (3) -¤È¤¤¤¦¡ÖËÜÅö¤Î¥¬¥ó¥Þ´Ø¿ô¡×¤¬¤¹¤Ç¤Ë¸ºß¤·¤Æ¤¤¤ë¤Î¤Ç¤¢¤ë¡£ -.\" FreeBSD¤Î¥Þ¥Ë¥å¥¢¥ë¤Ë¤è¤ì¤Ð¡¢gamma()¤Ïsigngam¤ò¥»¥Ã¥È¤·¤Ê¤¤ -.\" ¤³¤È¤ò½ü¤±¤Ðlgamma()¤ÈƱÍͤÀ¤È¤¤¤¦¡£ -.\" ¤Þ¤¿¡¢4.4BSD¤Ç¤Ïgamma()¤ÏËÜÅö¤Î¥¬¥ó¥Þ´Ø¿ô¤ò·×»»¤¹¤ë¤È¤â¤¤¤¦¡£ +という「本当のガンマ関数」がすでに存在しているのである。 +.\" FreeBSDのマニュアルによれば、gamma()はsigngamをセットしない +.\" ことを除けばlgamma()と同様だという。 +.\" また、4.4BSDではgamma()は本当のガンマ関数を計算するともいう。 .\"O .SH "SEE ALSO" .\"O .BR lgamma (3), .\"O .BR signgam (3), .\"O .BR tgamma (3) -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR lgamma (3), .BR signgam (3), .BR tgamma (3) diff --git a/draft/man3/gcvt.3 b/draft/man3/gcvt.3 index d1b0cd47..a5634d28 100644 --- a/draft/man3/gcvt.3 +++ b/draft/man3/gcvt.3 @@ -36,11 +36,11 @@ .\" .TH GCVT 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O gcvt \- convert a floating-point number to a string -gcvt \- ÉâÆ°¾®¿ôÅÀ¿ô¤òʸ»úÎó¤ØÊÑ´¹¤¹¤ë +gcvt \- 浮動小数点数を文字列へ変換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -50,9 +50,9 @@ gcvt \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR gcvt (): @@ -61,7 +61,7 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: .nf _SVID_SOURCE || (_XOPEN_SOURCE\ >=\ 500 || @@ -70,14 +70,14 @@ _SVID_SOURCE || .fi .TP 4 .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED .RE .PD .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR gcvt () .\"O function converts \fInumber\fP to a minimal length null-terminated @@ -85,27 +85,27 @@ _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED .\"O It produces \fIndigit\fP significant digits in either .\"O .BR printf (3) .\"O F format or E format. -´Ø¿ô +関数 .BR gcvt () -¤Ï¡¢ \fInumber\fP ¤ò¡¢ºÇû¤ÎŤµ¤Î NULL ½ªÃ¼¤µ¤ì¤¿ ASCII -ʸ»úÎó¤ØÊÑ´¹¤·¡¢ÊÑ´¹¸å¤Îʸ»úÎó¤ò \fIbuf\fP ¤Ë³ÊǼ¤¹¤ë¡£ +は、 \fInumber\fP を、最短の長さの NULL 終端された ASCII +文字列へ変換し、変換後の文字列を \fIbuf\fP に格納する。 .BR printf (3) -¤Î F ¥Õ¥©¡¼¥Þ¥Ã¥È¤ä E ¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¤è¤¦¤Ë \fIndigit\fP ·å¤Î -Í­¸ú¿ô»ú¤òÀ¸À®¤¹¤ë¡£ +の F フォーマットや E フォーマットのように \fIndigit\fP 桁の +有効数字を生成する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR gcvt () .\"O function returns the address of the string pointed to .\"O by \fIbuf\fP. -´Ø¿ô +関数 .BR gcvt () -¤Ïʸ»úÎó \fIbuf\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +は文字列 \fIbuf\fP へのポインタを返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O Marked as LEGACY in POSIX.1-2001. -POSIX.1-2001 ¤Ç¤Ï¡¢ -¤³¤Î´Ø¿ô¤Ï¡Ö²áµî¤Î̾»Ä (LEGACY)¡×¤È°ÌÃÖÉÕ¤±¤é¤ì¤Æ¤¤¤ë¡£ +POSIX.1-2001 では、 +この関数は「過去の名残 (LEGACY)」と位置付けられている。 .\"O POSIX.1-2008 removes the specification of .\"O .BR gcvt (), .\"O recommending the use of @@ -113,16 +113,16 @@ POSIX.1-2001 .\"O instead (though .\"O .BR snprintf (3) .\"O may be preferable). -POSIX.1-2008 ¤Ç¤Ï¡¢ +POSIX.1-2008 では、 .BR gcvt () -¤Î»ÅÍͤϺï½ü¤µ¤ì¡¢ -Âå¤ï¤ê¤Ë +の仕様は削除され、 +代わりに .BR sprintf (3) -¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë +を使用することが推奨されている .RB ( snprintf (3) -¤ÎÊý¤¬Å¬ÀÚ¤«¤â¤·¤ì¤Ê¤¤¤¬)¡£ +の方が適切かもしれないが)。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ecvt (3), .BR fcvt (3), .BR sprintf (3) diff --git a/draft/man3/getaddrinfo.3 b/draft/man3/getaddrinfo.3 index 2d91bd4a..a8a12181 100644 --- a/draft/man3/getaddrinfo.3 +++ b/draft/man3/getaddrinfo.3 @@ -49,17 +49,17 @@ .\" Updated 2008-12-26, Akihiro MOTOKI, LDP v3.15 .\" Updated 2010-04-18, Akihiro MOTOKI, LDP v3.24 .\" -.\"WORD: null pointer ¥Ì¥ë¡¦¥Ý¥¤¥ó¥¿ +.\"WORD: null pointer ヌル・ポインタ .\" .TH GETADDRINFO 3 2010-09-27 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O getaddrinfo, freeaddrinfo, gai_strerror \- network address and .\"O service translation -.SH ̾Á° +.SH 名前 getaddrinfo, freeaddrinfo, gai_strerror \- -¥Í¥Ã¥È¥ï¡¼¥¯¤Î¥¢¥É¥ì¥¹¤È¥µ¡¼¥Ó¥¹¤òÊÑ´¹¤¹¤ë +ネットワークのアドレスとサービスを変換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -77,9 +77,9 @@ getaddrinfo, freeaddrinfo, gai_strerror \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .ad l .in .sp @@ -91,7 +91,7 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Given .\"O .I node .\"O and @@ -106,19 +106,19 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O or .\"O .BR connect (2). .BR getaddrinfo () -¤Ï¡¢(¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Î¥Û¥¹¥È¤È¥µ¡¼¥Ó¥¹¤ò¼±Ê̤¹¤ë) +は、(インターネットのホストとサービスを識別する) .I node -¤È +と .I service -¤òÅϤ¹¤È¡¢°ì¤Ä°Ê¾å¤Î +を渡すと、一つ以上の .I addrinfo -¹½Â¤ÂΤòÊÖ¤¹¡£¤½¤ì¤¾¤ì¤Î +構造体を返す。それぞれの .I addrinfo -¹½Â¤ÂΤˤϡ¢ +構造体には、 .BR bind (2) -¤ä +や .BR connect (2) -¤ò¸Æ¤Ó½Ð¤¹ºÝ¤Ë»ØÄê¤Ç¤­¤ë¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥¢¥É¥ì¥¹¤¬³ÊǼ¤µ¤ì¤Æ¤¤¤ë¡£ +を呼び出す際に指定できるインターネットアドレスが格納されている。 .\"O The .\"O .BR getaddrinfo () .\"O function combines the functionality provided by the @@ -131,19 +131,19 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O .BR getaddrinfo () .\"O is reentrant and allows programs to eliminate IPv4-versus-IPv6 dependencies. .BR getaddrinfo () -´Ø¿ô¤Ï¡¢ +関数は、 .\" .BR getipnodebyname (3), .\" .BR getipnodebyaddr (3), .BR getservbyname (3) -¤È +と .BR getservbyport (3) -¤Îµ¡Ç½¤ò¤Þ¤È¤á¤Æ°ì¤Ä¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤·¤¿¤â¤Î¤Ç¤¢¤ë¤¬¡¢ -¤³¤ì¤é¤Î´Ø¿ô¤È°ã¤¤¡¢ +の機能をまとめて一つのインターフェースにしたものであるが、 +これらの関数と違い、 .BR getaddrinfo () -¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤¢¤ê¡¢ +はリエントラントであり、 .BR getaddrinfo () -¤ò»È¤¦¤³¤È¤Ç¥×¥í¥°¥é¥à¤Ï IPv4 ¤È IPv6 ¤Î°ã¤¤¤Ë´Ø¤¹¤ë°Í¸´Ø·¸¤ò -¤Ê¤¯¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +を使うことでプログラムは IPv4 と IPv6 の違いに関する依存関係を +なくすことができる。 .PP .\"O The .\"O .I addrinfo @@ -151,9 +151,9 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O .BR getaddrinfo () .\"O contains the following fields: .BR getaddrinfo () -¤¬ÍѤ¤¤ë +が用いる .I addrinfo -¹½Â¤ÂΤϰʲ¼¤Î¥Õ¥£¡¼¥ë¥É¤ò´Þ¤à¡£ +構造体は以下のフィールドを含む。 .sp .in +4n .nf @@ -190,23 +190,23 @@ struct addrinfo { .\"O .BR getaddrinfo (), .\"O as follows: .I hints -°ú¤­¿ô¤Ï +引き数は .I addrinfo -¹½Â¤ÂΤò»Ø¤·¼¨¤·¡¢¤³¤Î¹½Â¤ÂΤòÍѤ¤¤Æ +構造体を指し示し、この構造体を用いて .I res -¤¬»Ø¤¹¥ê¥¹¥È¤ËÆþ¤ì¤ÆÊÖ¤¹¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¹½Â¤ÂΤòÁªÂò¤¹¤ë¤¿¤á¤Î´ð½à¤ò»ØÄꤹ¤ë¡£ +が指すリストに入れて返すソケットアドレス構造体を選択するための基準を指定する。 .I hints -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が NULL でない場合、 .I hints -¤Ï +は .I addrinfo -¹½Â¤ÂΤò»Ø¤·¼¨¤·¡¢¤½¤Î¹½Â¤ÂΤΥե£¡¼¥ë¥É +構造体を指し示し、その構造体のフィールド .IR ai_family , .IR ai_socktype , .I ai_protocol -¤Ç +で .BR getaddrinfo () -¤¬ÊÖ¤¹¥½¥±¥Ã¥È¥¢¥É¥ì¥¹½¸¹ç¤ËÂФ¹¤ë´ð½à¤ò»ØÄꤹ¤ë¡£ +が返すソケットアドレス集合に対する基準を指定する。 .TP 12 .I ai_family .\"O This field specifies the desired address family for the returned addresses. @@ -223,22 +223,22 @@ struct addrinfo { .\"O .I node .\"O and .\"O .IR service . -¤³¤Î¥Õ¥£¡¼¥ë¥É¤ÏÊÖ¤µ¤ì¤ë¥¢¥É¥ì¥¹¤Î´õ˾¤Î¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤ò»ØÄꤹ¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ë»ØÄê¤Ç¤­¤ëÍ­¸ú¤ÊÃͤȤ·¤Æ¤Ï +このフィールドは返されるアドレスの希望のアドレスファミリーを指定する。 +このフィールドに指定できる有効な値としては .B AF_INET -¤È +と .B AF_INET6 -¤¬¤¢¤ë¡£ -¤Þ¤¿¡¢ÃÍ +がある。 +また、値 .B AF_UNSPEC -¤ò»ØÄꤹ¤ë¤È¡¢ +を指定すると、 .BR getaddrinfo () -¤Ï +は .I node -¤È +と .I service -¤Ç»ÈÍѤǤ­¤ë¤¤¤º¤ì¤«¤Î¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼ (Î㤨¤Ð IPv4 ¤« IPv6) ¤Î -¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤òÊÖ¤¹¤³¤È¤òµá¤á¤é¤ì¤ë¡£ +で使用できるいずれかのアドレスファミリー (例えば IPv4 か IPv6) の +ソケットアドレスを返すことを求められる。 .TP .I ai_socktype .\"O This field specifies the preferred socket type, for example @@ -248,37 +248,37 @@ struct addrinfo { .\"O Specifying 0 in this field indicates that socket addresses of any type .\"O can be returned by .\"O .BR getaddrinfo (). -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¿ä¾©¤Î¥½¥±¥Ã¥È·¿ (Î㤨¤Ð +このフィールドは推奨のソケット型 (例えば .B SOCK_STREAM -¤ä +や .BR SOCK_DGRAM ) -¤ò»ØÄꤹ¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ë 0 ¤ò»ØÄꤹ¤ë¤È¡¢Ç¤°Õ¤Î¥½¥±¥Ã¥È·¿¤Î¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤ò +を指定する。 +このフィールドに 0 を指定すると、任意のソケット型のソケットアドレスを .BR getaddrinfo () -¤¬ÊÖ¤·¤Æ¤è¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +が返してよいことを意味する。 .TP .I ai_protocol .\"O This field specifies the protocol for the returned socket addresses. .\"O Specifying 0 in this field indicates that socket addresses with .\"O any protocol can be returned by .\"O .BR getaddrinfo (). -¤³¤Î¥Õ¥£¡¼¥ë¥É¤ÏÊÖ¤µ¤ì¤ë¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Î¥×¥í¥È¥³¥ë¤ò»ØÄꤹ¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ë 0 ¤ò»ØÄꤹ¤ë¤È¡¢Ç¤°Õ¤Î¥×¥í¥È¥³¥ë¤Î¤Î¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤ò +このフィールドは返されるソケットアドレスのプロトコルを指定する。 +このフィールドに 0 を指定すると、任意のプロトコルののソケットアドレスを .BR getaddrinfo () -¤¬ÊÖ¤·¤Æ¤è¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +が返してよいことを意味する。 .TP .I ai_flags .\"O This field specifies additional options, described below. .\"O Multiple flags are specified by bitwise OR-ing them together. -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢ÄɲäΥª¥×¥·¥ç¥ó (²¼µ­) ¤ò»ØÄꤹ¤ë¡£ -Ê£¿ô¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ëºÝ¤Ë¤Ï¡¢¤½¤ì¤é¤Î¥Ó¥Ã¥Èñ°Ì¤Î OR ¤ò¤È¤Ã¤Æ»ØÄꤹ¤ë¡£ +このフィールドは、追加のオプション (下記) を指定する。 +複数のフラグを指定する際には、それらのビット単位の OR をとって指定する。 .PP .\"O All the other fields in the structure pointed to by .\"O .I hints .\"O must contain either 0 or a NULL pointer, as appropriate. .I hints -¤¬»Ø¤·¼¨¤¹¹½Â¤ÂΤξ¤Î¤¹¤Ù¤Æ¤Î¥Õ¥£¡¼¥ë¥É¤Ë¤Ï -0 ¤« NULL ¥Ý¥¤¥ó¥¿¤òŬÀÚ¤ËÆþ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +が指し示す構造体の他のすべてのフィールドには +0 か NULL ポインタを適切に入れなければならない。 .\"O Specifying .\"O .I hints .\"O as NULL is equivalent to setting @@ -294,19 +294,19 @@ struct addrinfo { .\"O to .\"O .BR "(AI_V4MAPPED\ |\ AI_ADDRCONFIG)" . .I hints -¤Ë NULL ¤ò»ØÄꤹ¤ë¤Î¤Ï¡¢ +に NULL を指定するのは、 .I ai_socktype -¤È +と .I ai_protocol -¤Ë 0 ¤ò¡¢ +に 0 を、 .I ai_family -¤Ë +に .B AF_UNSPEC -¤ò¡¢ +を、 .I ai_flags -¤Ë +に .B "(AI_V4MAPPED\ |\ AI_ADDRCONFIG)" -¤òÀßÄꤹ¤ë¤Î¤ÈÅù²Á¤Ç¤¢¤ë¡£ +を設定するのと等価である。 .\"O .I node .\"O specifies either a numerical network address @@ -326,25 +326,25 @@ struct addrinfo { .\"O .B AI_NUMERICHOST .\"O flag suppresses any potentially lengthy network host address lookups. .I node -¤Ë¤Ï¡¢¿ôÃÍ·Á¼°¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹ -(IPv4 ¤Î¾ì¹ç¤Ï +には、数値形式のネットワークアドレス +(IPv4 の場合は .BR inet_aton (3) -¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥É¥Ã¥È¶èÀÚ¤ê¤Î¿ô»ú¤Ë¤è¤ëɽµ­¡¢ -IPv6 ¤Î¾ì¹ç¤Ï +でサポートされているドット区切りの数字による表記、 +IPv6 の場合は .BR inet_pton (3) -¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë 16 ¿Ê¿ô¤Îʸ»úÎó·Á¼°) ¤â¤·¤¯¤Ï -¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È̾¤ò»ØÄꤹ¤ë¡£ -¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È̾¤ò»ØÄꤷ¤¿¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤¬¸¡º÷¤µ¤ì¡¢ -̾Á°²ò·è¤¬¹Ô¤Ê¤ï¤ì¤ë¡£ +でサポートされている 16 進数の文字列形式) もしくは +ネットワークホスト名を指定する。 +ネットワークホスト名を指定した場合には、そのネットワークアドレスが検索され、 +名前解決が行なわれる。 .I hints.ai_flags -¤Ë +に .B AI_NUMERICHOST -¥Õ¥é¥°¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ +フラグが含まれている場合は、 .I node -¤Ï¿ôÃÍ·Á¼°¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は数値形式のネットワークアドレスでなければならない。 .B AI_NUMERICHOST -¥Õ¥é¥°¤ò»È¤¦¤È¡¢»þ´Ö¤Î³Ý¤«¤ë²ÄǽÀ­¤Î¤¢¤ë¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È¥¢¥É¥ì¥¹¤Î¸¡º÷¤Ï -¤¹¤Ù¤ÆÍÞÀ©¤µ¤ì¤ë¡£ +フラグを使うと、時間の掛かる可能性のあるネットワークホストアドレスの検索は +すべて抑制される。 .PP .\"O If the .\"O .B AI_PASSIVE @@ -371,29 +371,29 @@ IPv6 .\"O .B AI_PASSIVE .\"O flag is ignored. .IR hints.ai_flags -¤Ë +に .B AI_PASSIVE -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¡¢¤«¤Ä +フラグが指定され、かつ .I node -¤¬ NULL ¤Î¾ì¹ç¡¢ -ÊÖ¤µ¤ì¤ë¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Ï -¥³¥Í¥¯¥·¥ç¥ó¤ò +が NULL の場合、 +返されるソケットアドレスは +コネクションを .BR accept (2) -¤¹¤ë¤¿¤á¤Î¥½¥±¥Ã¥È¤ò +するためのソケットを .BR bind (2) -¤¹¤ë¤Î¤ËŬ¤·¤¿¤â¤Î¤È¤Ê¤ë¡£ -ÊÖ¤µ¤ì¤ë¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Ë¤Ï¡Ö¥ï¥¤¥ë¥É¥«¡¼¥É¡¦¥¢¥É¥ì¥¹¡× -(IPv4 ¥¢¥É¥ì¥¹¤Î¾ì¹ç¤Ï -.BR INADDR_ANY ¡¢ -IPv6 ¥¢¥É¥ì¥¹¤Î¾ì¹ç¤Ï +するのに適したものとなる。 +返されるソケットアドレスには「ワイルドカード・アドレス」 +(IPv4 アドレスの場合は +.BR INADDR_ANY 、 +IPv6 アドレスの場合は .BR IN6ADDR_ANY_INIT ) -¤¬Æþ¤ë¡£ -¥ï¥¤¥ë¥É¥«¡¼¥É¡¦¥¢¥É¥ì¥¹¤Ï¡¢Ç¤°Õ¤Î¥Û¥¹¥È¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤ÇÀܳ¤ò -¼õ¤±ÉÕ¤±¤è¤¦¤È¤¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó (Ä̾ï¤Ï¥µ¡¼¥Ð¡¼) ¤ÇÍѤ¤¤é¤ì¤ë¡£ +が入る。 +ワイルドカード・アドレスは、任意のホストのネットワークアドレスで接続を +受け付けようとするアプリケーション (通常はサーバー) で用いられる。 .I node -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が NULL でない場合、 .B AI_PASSIVE -¥Õ¥é¥°¤Ï̵»ë¤µ¤ì¤ë¡£ +フラグは無視される。 .PP .\"O If the .\"O .B AI_PASSIVE @@ -415,22 +415,22 @@ IPv6 .\"O this is used by applications that intend to communicate .\"O with peers running on the same host. .I hints.ai_flags -¤Ë +に .B AI_PASSIVE -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -ÊÖ¤µ¤ì¤ë¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Ï +フラグがセットされていない場合、 +返されるソケットアドレスは .BR connect (2), .BR sendto (2), .BR sendmsg (2) -¤Ç¤Î»ÈÍѤËŬ¤·¤¿¤â¤Î¤È¤Ê¤ë¡£ +での使用に適したものとなる。 .I node -¤¬ NULL ¤Î¾ì¹ç¡¢¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤Ë¤Ï¥ë¡¼¥×¥Ð¥Ã¥¯¡¦¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Î -¥¢¥É¥ì¥¹ (IPv4 ¥¢¥É¥ì¥¹¤Î¾ì¹ç¤Ï +が NULL の場合、ネットワークアドレスにはループバック・インターフェイスの +アドレス (IPv4 アドレスの場合は .BR INADDR_LOOPBACK -IPv6 ¥¢¥É¥ì¥¹¤Î¾ì¹ç¤Ï -.BR IN6ADDR_LOOPBACK_INIT ) ¤¬ÀßÄꤵ¤ì¤ë¡£ -¤³¤ì¤ÏƱ¤¸¥Û¥¹¥È¾å¤ÇÆ°ºî¤·¤Æ¤¤¤ëÀܳÁê¼ê¤ÈÄÌ¿®¤¹¤ë¤è¤¦¤Ê -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÇÍѤ¤¤é¤ì¤ë¡£ +IPv6 アドレスの場合は +.BR IN6ADDR_LOOPBACK_INIT ) が設定される。 +これは同じホスト上で動作している接続相手と通信するような +アプリケーションで用いられる。 .PP .\"O .I service .\"O sets the port in each returned address structure. @@ -440,19 +440,19 @@ IPv6 .\"O This argument can also be specified as a decimal number, .\"O which is simply converted to binary. .I service -¤Ë¤è¤ê¡¢ÊÖ¤µ¤ì¤ë³Æ¥¢¥É¥ì¥¹¹½Â¤ÂΤΥݡ¼¥ÈÈֹ椬·è¤Þ¤ë¡£ -¤³¤Î°ú¤­¿ô¤¬¥µ¡¼¥Ó¥¹Ì¾ +により、返される各アドレス構造体のポート番号が決まる。 +この引き数がサービス名 .RB ( services (5) -»²¾È) ¤Î¾ì¹ç¡¢Âбþ¤¹¤ë¥Ý¡¼¥ÈÈÖ¹æ¤ËËÝÌõ¤µ¤ì¤ë¡£ -¤³¤Î°ú¤­¿ô¤Ë¤Ï 10 ¿Ê¿ô¤â»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¡¢ -¤³¤Î¾ì¹ç¤Ë¤Ï¥Ð¥¤¥Ê¥ê¤Ø¤ÎÊÑ´¹¤À¤±¤¬¹Ô¤ï¤ì¤ë¡£ +参照) の場合、対応するポート番号に翻訳される。 +この引き数には 10 進数も指定することができ、 +この場合にはバイナリへの変換だけが行われる。 .\"O If .\"O .I service .\"O is NULL, then the port number of the returned socket addresses .\"O will be left uninitialized. .I service -¤¬ NULL ¤Î¾ì¹ç¡¢ÊÖ¤µ¤ì¤ë¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Î¥Ý¡¼¥ÈÈÖ¹æ¤Ï -½é´ü²½¤µ¤ì¤Ê¤¤¤Þ¤Þ¤È¤Ê¤ë¡£ +が NULL の場合、返されるソケットアドレスのポート番号は +初期化されないままとなる。 .\"O If .\"O .B AI_NUMERICSERV .\"O is specified in @@ -463,17 +463,17 @@ IPv6 .\"O .I service .\"O must point to a string containing a numeric port number. .I hints.ai_flags -¤Ë +に .B AI_NUMERICSERV -¤¬»ØÄꤵ¤ì¡¢¤«¤Ä +が指定され、かつ .I service -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が NULL でない場合、 .I service -¤Ï¿ôÃͤΥݡ¼¥ÈÈÖ¹æ¤ò´Þ¤àʸ»úÎó¤ò»Ø¤·¼¨¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は数値のポート番号を含む文字列を指し示さなければならない。 .\"O This flag is used to inhibit the invocation of a name resolution service .\"O in cases where it is known not to be required. -¤³¤Î¥Õ¥é¥°¤Ï¡¢Ì¾Á°²ò·è¥µ¡¼¥Ó¥¹¤¬ÉÔÍפǤ¢¤ë¤³¤È¤¬Ê¬¤«¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢ -¥µ¡¼¥Ó¥¹¤Îµ¯Æ°¤òÍÞÀ©¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ +このフラグは、名前解決サービスが不要であることが分かっている場合に、 +サービスの起動を抑制するために用いられる。 .PP .\"O Either .\"O .I node @@ -481,9 +481,9 @@ IPv6 .\"O .IR service , .\"O but not both, may be NULL. .I node -¤È +と .I service -¤Î¤É¤Á¤é¤«¤Ï NULL ¤Ë¤·¤Æ¤è¤¤¤¬¡¢Î¾ÊýƱ»þ¤Ë NULL ¤Ë¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +のどちらかは NULL にしてよいが、両方同時に NULL にしてはならない。 .PP .\"O The .\"O .BR getaddrinfo () @@ -501,23 +501,23 @@ IPv6 .\"O .I ai_next .\"O field. .BR getaddrinfo () -´Ø¿ô¤Ï¡¢ +関数は、 .I addrinfo -¹½Â¤ÂΤΥá¥â¥ê³ÎÊݤò¹Ô¤¤¡¢ +構造体のメモリ確保を行い、 .I addrinfo -¹½Â¤ÂΤΥê¥ó¥¯¥ê¥¹¥È¤ò½é´ü²½¤·¡¢ +構造体のリンクリストを初期化し、 .I res -¤Ë¥ê¥¹¥È¤ÎÀèƬ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÆþ¤ì¤ÆÊÖ¤¹¡£ -¤³¤Î¤È¤­¡¢³Æ¹½Â¤ÂΤΥͥåȥ¥¯¥¢¥É¥ì¥¹¤Ï +にリストの先頭へのポインタを入れて返す。 +このとき、各構造体のネットワークアドレスは .I node -¤È +と .I service -¤Ë°ìÃפ·¡¢ +に一致し、 .I hints -¤Ç²Ý¤µ¤ì¤¿¤¹¤Ù¤Æ¤ÎÀ©¸Â¤òËþ¤¿¤¹¤â¤Î¤È¤Ê¤ë¡£ -¥ê¥ó¥¯¥ê¥¹¥È¤ÎÍ×ÁÇ¤Ï +で課されたすべての制限を満たすものとなる。 +リンクリストの要素は .I ai_next -¥Õ¥£¡¼¥ë¥É¤Ë¤è¤êÏ¢·ë¤µ¤ì¤ë¡£ +フィールドにより連結される。 .\"O There are several reasons why .\"O the linked list may have more than one @@ -532,21 +532,21 @@ IPv6 .\"O address and another .\"O .B SOCK_DGRAM .\"O address, for example). -¥ê¥ó¥¯¥ê¥¹¥È¤Î +リンクリストの .I addrinfo -¹½Â¤ÂΤÏÊ£¿ô¸Ä¤Ë¤Ê¤ë¤³¤È¤â¤¢¤ê¡¢¤½¤ÎÍýͳ¤Ï¤¤¤¯¤Ä¤«¤¢¤ë¡£ -¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È¤¬¥Þ¥ë¥Á¥Û¡¼¥à¤Ç¤¢¤ë¡¢ -Ê£¿ô¤Î¥×¥í¥È¥³¥ë¤Ç¥¢¥¯¥»¥¹¤Ç¤­¤ë (Î㤨¤Ð +構造体は複数個になることもあり、その理由はいくつかある。 +ネットワークホストがマルチホームである、 +複数のプロトコルでアクセスできる (例えば .B AF_INET -¤È +と .B AF_INET6 -¤ÎξÊý) ¡¢ -Ê£¿ô¤Î¥½¥±¥Ã¥È¼ïÊ̤ÇƱ¤¸¥µ¡¼¥Ó¥¹¤¬ÍøÍѤǤ­¤ë -(Î㤨¤Ð¡¢¤Ò¤È¤Ä¤¬ +の両方) 、 +複数のソケット種別で同じサービスが利用できる +(例えば、ひとつが .B SOCK_STREM -¥¢¥É¥ì¥¹¤Ç¡¢¤â¤¦¤Ò¤È¤Ä¤¬ +アドレスで、もうひとつが .B SOCK_DGRAM -¥¢¥É¥ì¥¹¤Ç¤¢¤ë)¡¢¤¬¤¢¤ë¡£ +アドレスである)、がある。 .\"O Normally, the application should try .\"O using the addresses in the order in which they are returned. .\"O The sorting function used within @@ -555,14 +555,14 @@ IPv6 .\"O system by editing .\"O .IR /etc/gai.conf .\"O (available since glibc 2.5). -Ä̾ï¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÏÊÖ¤µ¤ì¤¿½ç½ø¤Ç¥¢¥É¥ì¥¹¤ò»î¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +通常は、アプリケーションは返された順序でアドレスを試すべきである。 .BR getaddrinfo () -¤ÎÃæ¤Ç»ÈÍѤµ¤ì¤ëʤÙÂؤ¨´Ø¿ô¤Ï RFC\ 3484 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -Æüì¤Ê¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +の中で使用される並べ替え関数は RFC\ 3484 で定義されている。 +特殊なシステムでは、 .I /etc/gai.conf -¤òÊÔ½¸¤¹¤ë¤³¤È¤Ç¡¢¤³¤Î½ç½ø¤òÈùÄ´À°¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë +を編集することで、この順序を微調整することができる .RI ( /etc/gai.conf -¤Ï glibc 2.5 °Ê¹ß¤ÇÍøÍѤǤ­¤ë)¡£ +は glibc 2.5 以降で利用できる)。 .PP .\"O If .\"O .I hints.ai_flags @@ -575,13 +575,13 @@ IPv6 .\"O structures in the returned list is set to point to the .\"O official name of the host. .I hints.ai_flags -¤Ë +に .B AI_CANONNAME -¥Õ¥é¥°¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ÊÖ¤µ¤ì¤ë¥ê¥¹¥È¤ÎºÇ½é¤Î +フラグが含まれている場合、返されるリストの最初の .I addrinfo -¹½Â¤ÂΤΠ+構造体の .I ai_canonname -¥Õ¥£¡¼¥ë¥É¤Ï¥Û¥¹¥È¤Î¸ø¼°¤Ê̾Á°¤ò»Ø¤¹¤è¤¦¤ËÀßÄꤵ¤ì¤ë¡£ +フィールドはホストの公式な名前を指すように設定される。 .\" In glibc prior to 2.3.4, the ai_canonname of each addrinfo .\" structure was set pointing to the canonical name; that was .\" more than POSIX.1-2001 specified, or other implementations provided. @@ -590,9 +590,9 @@ IPv6 .\"O The remaining fields of each returned .\"O .I addrinfo .\"O structure are initialized as follows: -ÊÖ¤µ¤ì¤ë³Æ¡¹¤Î +返される各々の .I addrinfo -¹½Â¤ÂΤλĤê¤Î¥Õ¥£¡¼¥ë¥É¤Ï°Ê²¼¤Î¤è¤¦¤Ë½é´ü²½¤µ¤ì¤ë¡£ +構造体の残りのフィールドは以下のように初期化される。 .IP * 2 .\"O The .\"O .IR ai_family , @@ -605,10 +605,10 @@ IPv6 .IR ai_family , .IR ai_socktype , .I ai_protocol -¥Õ¥£¡¼¥ë¥É¤Ï¥½¥±¥Ã¥ÈÀ¸À®¥Ñ¥é¥á¡¼¥¿¤òÊÖ¤¹ -(¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Î°ÕÌ£¤Ï +フィールドはソケット生成パラメータを返す +(これらのフィールドの意味は .BR socket (2) -¤ÎƱ¤¸Ì¾Á°¤Î°ú¤­¿ô¤ÈƱ¤¸¤Ç¤¢¤ë)¡£ +の同じ名前の引き数と同じである)。 .\"O For example, .\"O .I ai_family .\"O might return @@ -623,21 +623,21 @@ IPv6 .\"O and .\"O .I ai_protocol .\"O returns the protocol for the socket. -Î㤨¤Ð¡¢ +例えば、 .I ai_family -¤Ï +は .B AF_INET -¤ä +や .B AF_INET6 -¤òÊÖ¤·¡¢ +を返し、 .I ai_socktype -¤Ï +は .B SOCK_DGRAM -¤ä +や .BR SOCK_STREAM -¤òÊÖ¤·¡¢ +を返し、 .I ai_protocol -¤Ï¤½¤Î¥½¥±¥Ã¥È¤Î¥×¥í¥È¥³¥ë¤òÊÖ¤¹¡£ +はそのソケットのプロトコルを返す。 .IP * .\"O A pointer to the socket address is placed in the .\"O .I ai_addr @@ -646,9 +646,9 @@ IPv6 .\"O .I ai_addrlen .\"O field. .I ai_addr -¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬½ñ¤­¹þ¤Þ¤ì¡¢ +フィールドにはソケットアドレスへのポインタが書き込まれ、 .I ai_addrlen -¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤ÎŤµ¤¬¥Ð¥¤¥Èñ°Ì¤Ç½ñ¤­¹þ¤Þ¤ì¤ë¡£ +フィールドにはソケットアドレスの長さがバイト単位で書き込まれる。 .PP .\"O If .\"O .I hints.ai_flags @@ -660,15 +660,15 @@ IPv6 .\"O IPv4 address configured, and IPv6 addresses are only returned .\"O if the local system has at least one IPv6 address configured. .I hints.ai_flags -¤¬ +が .B AI_ADDRCONFIG -¤ò´Þ¤à¾ì¹ç¡¢ +を含む場合、 .I res -¤¬»Ø¤¹¥ê¥¹¥È¤Ë¤Ï¡¢ -¥í¡¼¥«¥ë¥·¥¹¥Æ¥à¤ËºÇÄã°ì¤Ä¤Î IPv4 ¥¢¥É¥ì¥¹¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï -IPv4 ¥¢¥É¥ì¥¹¤¬ÊÖ¤µ¤ì¡¢ -¥í¡¼¥«¥ë¥·¥¹¥Æ¥à¤ËºÇÄã°ì¤Ä¤Î IPv6 ¥¢¥É¥ì¥¹¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï -IPv6 ¥¢¥É¥ì¥¹¤¬ÊÖ¤µ¤ì¤ë¡£ +が指すリストには、 +ローカルシステムに最低一つの IPv4 アドレスが設定されている場合は +IPv4 アドレスが返され、 +ローカルシステムに最低一つの IPv6 アドレスが設定されている場合は +IPv6 アドレスが返される。 .PP .\"O If .\"O .I hint.ai_flags @@ -682,16 +682,16 @@ IPv6 .\"O then return IPv4-mapped IPv6 addresses in the list pointed to by .\"O .IR res . .I hint.ai_flags -¤Ë +に .B AI_V4MAPPED -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢ +が指定されていて、 .I hints.ai_family -¤Ë +に .B AF_INET6 -¤¬»ØÄꤵ¤ì¡¢ -¥Þ¥Ã¥Á¤¹¤ë IPv6 ¥¢¥É¥ì¥¹¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ +が指定され、 +マッチする IPv6 アドレスが見つからなかった場合、 .I res -¤¬»Ø¤¹¥ê¥¹¥È¤Ë¤Ï IPv4-mapped IPv6 ¥¢¥É¥ì¥¹¤¬ÊÖ¤µ¤ì¤ë¡£ +が指すリストには IPv4-mapped IPv6 アドレスが返される。 .\"O If both .\"O .B AI_V4MAPPED .\"O and @@ -702,22 +702,22 @@ IPv6 .\"O in the list pointed to by .\"O .IR res . .I hints.ai_flags -¤Ë +に .B AI_V4MAPPED -¤È +と .B AI_ALL -¤ÎξÊý¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ +の両方が指定されている場合、 .I res -¤¬»Ø¤¹¥ê¥¹¥È¤Ë¤Ï IPv6 ¥¢¥É¥ì¥¹¤È IPv4-mapped IPv6 ¥¢¥É¥ì¥¹¤Î -ξÊý¤¬ÊÖ¤µ¤ì¤ë¡£ +が指すリストには IPv6 アドレスと IPv4-mapped IPv6 アドレスの +両方が返される。 .\"O .B AI_ALL .\"O is ignored if .\"O .B AI_V4MAPPED .\"O is not also specified. .B AI_V4MAPPED -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +が指定されていない場合、 .B AI_ALL -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .PP .\"O The .\"O .BR freeaddrinfo () @@ -725,12 +725,12 @@ IPv6 .\"O for the dynamically allocated linked list .\"O .IR res . .BR freeaddrinfo () -´Ø¿ô¤Ï¡¢ -¥ê¥ó¥¯¥ê¥¹¥È +関数は、 +リンクリスト .I res -¤ËÂФ·¤ÆưŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤ò²òÊü¤¹¤ë¡£ +に対して動的に割り当てられたメモリを解放する。 .\"O .SS "Extensions to getaddrinfo() for Internationalized Domain Names" -.SS "¹ñºÝ²½¥É¥á¥¤¥ó̾¤Î¤¿¤á¤Î getaddrinfo() ¤Î³ÈÄ¥" +.SS "国際化ドメイン名のための getaddrinfo() の拡張" .PP .\"O Starting with glibc 2.3.4, .\"O .BR getaddrinfo () @@ -739,33 +739,33 @@ IPv6 .\"O Internationalized Domain Name (IDN) format (see RFC 3490, .\"O .IR "Internationalizing Domain Names in Applications (IDNA)" ). .\"O Four new flags are defined: -glibc 2.3.4 ¤«¤é¡¢ +glibc 2.3.4 から、 .BR getaddrinfo () -¤ÏÆþ½ÐÎϤ¹¤ë¥Û¥¹¥È̾¤òÆ©²áŪ¤Ë¹ñºÝ²½¥É¥á¥¤¥ó̾ (IDN) ·Á¼° (RFC 3490 ¤Î +は入出力するホスト名を透過的に国際化ドメイン名 (IDN) 形式 (RFC 3490 の .I "Internationalizing Domain Names in Applications (IDNA)" -¤ò»²¾È¤Î¤³¤È) ¤ÈÊÑ´¹¤¹¤ë¤³¤È¤òÁªÂòŪ¤Ëǧ¤á¤ë¤è¤¦¤Ë³ÈÄ¥¤µ¤ì¤Æ¤¤¤ë¡£ -4 ¤Ä¤Î¿·¤·¤¤¥Õ¥é¥°¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +を参照のこと) と変換することを選択的に認めるように拡張されている。 +4 つの新しいフラグが定義されている: .TP .B AI_IDN .\"O If this flag is specified, then the node name given in .\"O .I node .\"O is converted to IDN format if necessary. .\"O The source encoding is that of the current locale. -¤³¤Î¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤ë¤È¡¢ +このフラグが指定されると、 .I node -¤ÇÍ¿¤¨¤é¤ì¤¿¥Î¡¼¥É̾¤ÏɬÍפ¬¤¢¤ì¤Ð IDN ·Á¼°¤ËÊÑ´¹¤µ¤ì¤ë¡£ -¥½¡¼¥¹Éä¹æ²½·Á¼°¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î¤â¤Î¤Ç¤¢¤ë¡£ +で与えられたノード名は必要があれば IDN 形式に変換される。 +ソース符号化形式は現在のロケールのものである。 .\"O If the input name contains non-ASCII characters, then the IDN encoding .\"O is used. .\"O Those parts of the node name (delimited by dots) that contain .\"O non-ASCII characters are encoded using ASCII Compatible Encoding (ACE) .\"O before being passed to the name resolution functions. -ÆþÎÏ̾¤ËÈó ASCII ʸ»ú¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -IDN Éä¹æ²½·Á¼°¤¬»È¤ï¤ì¤ë¡£ -Èó ASCII ʸ»ú¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë(¥Ô¥ê¥ª¥É¤Ç¶èÀÚ¤é¤ì¤ë)Éôʬ¥Î¡¼¥É̾¤Ï¡¢ -̾Á°²ò·èµ¡Ç½¤ËÅϤµ¤ì¤ëÁ°¤Ë ASCII ¸ß´¹Éä¹æ²½·Á¼° (ACE) ¤ò»È¤Ã¤Æ -Éä¹æ²½¤µ¤ì¤ë¡£ +入力名に非 ASCII 文字が含まれている場合、 +IDN 符号化形式が使われる。 +非 ASCII 文字が含まれている(ピリオドで区切られる)部分ノード名は、 +名前解決機能に渡される前に ASCII 互換符号化形式 (ACE) を使って +符号化される。 .\" Implementation Detail: .\" To minimize effects on system performance the implementation might .\" want to check whether the input string contains any non-ASCII @@ -785,13 +785,13 @@ IDN .\"O The return value is an exact copy of the value returned by the name .\"O resolution function. .B AI_CANONNAME -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ +が指定されている場合、 .BR getaddrinfo () -¤Ï̾Á°¤Î¸¡º÷¤ËÀ®¸ù¤·¤¿¸å¡¢ -ÊÖ¤µ¤ì¤¿ +は名前の検索に成功した後、 +返された .I addrinfo -¹½Â¤ÂΤËÂбþ¤¹¤ë¥Î¡¼¥É¤ÎÀµµ¬Ì¾¤òÊÖ¤¹¡£ -ÊÖ¤êÃͤÏ̾Á°²ò·èµ¡Ç½¤«¤éÊÖ¤µ¤ì¤¿ÃͤÎÀµ³Î¤Ê¥³¥Ô¡¼¤Ç¤¢¤ë¡£ +構造体に対応するノードの正規名を返す。 +返り値は名前解決機能から返された値の正確なコピーである。 .\"O If the name is encoded using ACE, then it will contain the .\"O .I xn\-\- @@ -801,15 +801,15 @@ IDN .\"O flag can be passed in addition to .\"O .BR AI_CANONNAME . .\"O The resulting string is encoded using the current locale's encoding. -̾Á°¤¬ ACE ¤ÇÉä¹æ²½¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢°ì¤Ä¤Þ¤¿¤ÏÊ£¿ô¤Î̾Á°¤Î¹½À®Í×ÁǤÎÀèƬ¤Ë +名前が ACE で符号化されている場合、一つまたは複数の名前の構成要素の先頭に .I xn\-\- -¤ò´Þ¤ó¤Ç¤¤¤ë¡£ -¤³¤ì¤é¤Î¹½À®Í×ÁǤòÆɤ߹þ¤ß²Äǽ¤Ê·Á¤ËÊÑ´¹¤¹¤ë¤¿¤á¤Ë¡¢ +を含んでいる。 +これらの構成要素を読み込み可能な形に変換するために、 .B AI_CANONNAME -¤È¶¦¤Ë +と共に .B AI_CANONIDN -¥Õ¥é¥°¤òÅϤ¹¤³¤È¤â½ÐÍè¤ë¡£ -ÊÖ¤µ¤ì¤ëʸ»úÎó¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤ÎÉä¹æ²½·Á¼°¤ÇÉä¹æ²½¤µ¤ì¤Æ¤¤¤ë¡£ +フラグを渡すことも出来る。 +返される文字列は現在のロケールの符号化形式で符号化されている。 .\" .\"Implementation Detail: .\"If no component of the returned name starts with xn\-\- the IDN @@ -821,14 +821,14 @@ IDN .\"O IDNA_USE_STD3_ASCII_RULES (check output to make sure it is a STD3 .\"O conforming hostname) .\"O flags respectively to be used in the IDNA handling. -¤³¤ì¤é¤Î¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤ë¤È¡¢ -IDNA ¥Ï¥ó¥É¥ê¥ó¥°¤ò»È¤¦¤È¤­¤Ë¤½¤ì¤¾¤ì -IDNA_ALLOW_UNASSIGNED (Èó³ä¤êÅö¤Æ Unicode ¥³¡¼¥É¥Ý¥¤¥ó¥È¤òµö²Ä¤¹¤ë) ¤È -IDNA_USE_STD3_ASCII_RULES (½ÐÎϤ¬ STD3 ½àµò¥Û¥¹¥È̾¤Ç¤¢¤ë¤³¤È¤ò³Îǧ¤¹¤ë) -¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤ë¡£ +これらのフラグが設定されると、 +IDNA ハンドリングを使うときにそれぞれ +IDNA_ALLOW_UNASSIGNED (非割り当て Unicode コードポイントを許可する) と +IDNA_USE_STD3_ASCII_RULES (出力が STD3 準拠ホスト名であることを確認する) +フラグが有効になる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\" FIXME glibc defines the following additional errors, some which .\" can probably be returned by getaddrinfo(); they need to .\" be documented. @@ -843,20 +843,20 @@ IDNA_USE_STD3_ASCII_RULES ( .\"O .BR getaddrinfo () .\"O returns 0 if it succeeds, or one of the following nonzero error codes: .BR getaddrinfo () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤·¡¢¼ºÇÔ¤¹¤ë¤È°Ê²¼¤ÎÈó 0 ¤Î¥¨¥é¡¼¥³¡¼¥É¤Î¤¤¤º¤ì¤«¤òÊÖ¤¹¡£ +は成功すると 0 を返し、失敗すると以下の非 0 のエラーコードのいずれかを返す。 .TP .B EAI_ADDRFAMILY .\" Not in SUSv3 .\"O The specified network host does not have any network addresses in the .\"O requested address family. -»ØÄꤵ¤ì¤¿¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È¤Ë¤Ï¡¢ -Í׵ᤵ¤ì¤¿¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤¬¤Ê¤¤¡£ +指定されたネットワークホストには、 +要求されたアドレスファミリーのネットワークアドレスがない。 .TP .B EAI_AGAIN .\"O The name server returned a temporary failure indication. .\"O Try again later. -¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤«¤é°ì»þŪ¤Ê¼ºÇÔ (temporary failure) -¤ò°ÕÌ£¤¹¤ëÊÖ»ö¤¬ÊÖ¤µ¤ì¤¿¡£¸å¤Ç¤â¤¦°ìÅٻ¤Æ¤ß¤è¡£ +ネームサーバーから一時的な失敗 (temporary failure) +を意味する返事が返された。後でもう一度試してみよ。 .TP .B EAI_BADFLAGS .\"O .I hints.ai_flags @@ -868,33 +868,33 @@ IDNA_USE_STD3_ASCII_RULES ( .\"O .I name .\"O was NULL. .I hints.ai_flags -¤Î¥Õ¥é¥°¤ËÉÔÀµ¤Ê¥Õ¥é¥°¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£¤Þ¤¿¤Ï¡¢ +のフラグに不正なフラグが含まれている。または、 .I hints.ai_flags -¤Ë +に .B AI_CANONNAME -¤¬´Þ¤Þ¤ì¤Æ¤¤¤Æ¡¢¤«¤Ä +が含まれていて、かつ .I name -¤¬ NULL ¤Ç¤¢¤Ã¤¿¡£ +が NULL であった。 .TP .B EAI_FAIL .\"O The name server returned a permanent failure indication. -¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤«¤é¹±µ×Ū¤Ê¼ºÇÔ (permanent failure) -¤ò°ÕÌ£¤¹¤ëÊÖ»ö¤¬ÊÖ¤µ¤ì¤¿¡£ +ネームサーバーから恒久的な失敗 (permanent failure) +を意味する返事が返された。 .TP .B EAI_FAMILY .\"O The requested address family is not supported. -Í׵ᤵ¤ì¤¿¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +要求されたアドレスファミリーがサポートされていない。 .TP .B EAI_MEMORY .\"O Out of memory. -¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£ +メモリが足りない。 .TP .B EAI_NODATA .\" Not in SUSv3 .\"O The specified network host exists, but does not have any .\"O network addresses defined. -»ØÄꤵ¤ì¤¿¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È¤Ï¸ºß¤¹¤ë¤¬¡¢ -¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤¬¤Ò¤È¤Ä¤âÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +指定されたネットワークホストは存在するが、 +ネットワークアドレスがひとつも定義されていない。 .TP .B EAI_NONAME .\"O The @@ -913,27 +913,27 @@ IDNA_USE_STD3_ASCII_RULES ( .\"O .I service .\"O was not a numeric port-number string. .I node -¤È +と .I service -¤Î¤É¤Á¤é¤«¤¬ÉÔÌÀ¡¢¤Þ¤¿¤Ï +のどちらかが不明、または .I node -¤È +と .I service -¤ÎξÊý¤¬ NULL ¤À¤Ã¤¿¾ì¹ç¡¢¤Þ¤¿¤Ï +の両方が NULL だった場合、または .B AI_NUMERICSERV -¤¬ +が .I hints.ai_flags -¤Ë»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢ +に指定されていて、 .I hints.ai_flags -¤È +と .I service -¤¬¿ôÃͤΥݡ¼¥ÈÈÖ¹æ¤Îʸ»úÎó¤Ç¤Ê¤¤¡£ +が数値のポート番号の文字列でない。 .TP .B EAI_SERVICE .\"O The requested service is not available for the requested socket type. .\"O It may be available through another socket type. -Í׵ᤵ¤ì¤¿¥µ¡¼¥Ó¥¹¤Ï¡¢Í׵ᤵ¤ì¤¿¥½¥±¥Ã¥È¥¿¥¤¥×¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤¡£ -¾¤Î¥½¥±¥Ã¥È¥¿¥¤¥×¤Ç¤Ê¤éÍøÍѲÄǽ¤«¤â¤·¤ì¤Ê¤¤¡£ +要求されたサービスは、要求されたソケットタイプでは利用できない。 +他のソケットタイプでなら利用可能かもしれない。 .\"O For example, this error could occur if .\"O .I service .\"O was "shell" (a service only available on stream sockets), and either @@ -951,29 +951,29 @@ IDNA_USE_STD3_ASCII_RULES ( .\"O was .\"O .BR SOCK_RAW .\"O (a socket type that does not support the concept of services). -¤³¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ëÎã¤È¤·¤Æ¤Ï¡¢ +このエラーが発生する例としては、 .I service -¤¬ "shell" (¥¹¥È¥ê¡¼¥à¡¦¥½¥±¥Ã¥È¤Ç¤Î¤ßÍøÍѤǤ­¤ë¥µ¡¼¥Ó¥¹) ¤Ç¡¢ +が "shell" (ストリーム・ソケットでのみ利用できるサービス) で、 .I hints.ai_protocol -¤Ë +に .B IPPROTO_UDP -¤¬»ØÄꤵ¤ì¤¿¤ê¡¢ +が指定されたり、 .I hints.ai_socktype -¤Ë +に .B SOCK_DGRAM -¤¬»ØÄꤵ¤ì¤¿¤ê¤·¤¿¾ì¹ç¤¬¤¢¤ë¡£ -¤Þ¤¿¡¢ +が指定されたりした場合がある。 +また、 .I service -¤¬ NULL °Ê³°¤Ç¡¢ +が NULL 以外で、 .I hints.ai_socktype -¤Ë +に .B SOCK_RAW -(¥µ¡¼¥Ó¥¹¤Î¹Í¤¨Êý¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¥½¥±¥Ã¥È¼ïÊÌ) -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤â¡¢¤³¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¡£ +(サービスの考え方をサポートしていないソケット種別) +が指定された場合にも、このエラーが発生する。 .TP .B EAI_SOCKTYPE .\"O The requested socket type is not supported. -Í׵ᤵ¤ì¤¿¥½¥±¥Ã¥È¥¿¥¤¥×¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +要求されたソケットタイプがサポートされていない。 .\"O This could occur, for example, if .\"O .I hints.ai_socktype .\"O and @@ -983,57 +983,57 @@ IDNA_USE_STD3_ASCII_RULES ( .\"O and .\"O .BR IPPROTO_TCP , .\"O respectively). -¤³¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ëÎã¤È¤·¤Æ¤Ï¡¢ +このエラーが発生する例としては、 .I hints.ai_socktype -¤È +と .I hints.ai_protocol -¤¬Ì·½â¤·¤Æ¤¤¤ë¾ì¹ç (Î㤨¤Ð +が矛盾している場合 (例えば .I hints.ai_socktype -¤¬ +が .B SOCK_DGRAM -¤Ç +で .I hints.ai_protocol -¤¬ +が .BR IPPROTO_TCP ) -¤¬¤¢¤ë¡£ +がある。 .TP .B EAI_SYSTEM .\"O Other system error, check .\"O .I errno .\"O for details. -¤½¤Î¾¤Î¥·¥¹¥Æ¥à¥¨¥é¡¼¡£¾Ü¤·¤¯¤Ï +その他のシステムエラー。詳しくは .I errno -¤òÄ´¤Ù¤ë¤³¤È¡£ +を調べること。 .PP .\"O The .\"O .BR gai_strerror () .\"O function translates these error codes to a human readable string, .\"O suitable for error reporting. .BR gai_strerror () -´Ø¿ô¤òÍѤ¤¤ë¤È¡¢¤³¤ì¤é¤Î¥¨¥é¡¼¥³¡¼¥É¤ò¿Í´Ö¤Ë²ÄÆɤÊʸ»úÎó¤ËÊÑ´¹¤Ç¤­¤ë¤Î¤Ç¡¢ -¥¨¥é¡¼Êó¹ð¤ËŬ¤¹¤ë¤À¤í¤¦¡£ +関数を用いると、これらのエラーコードを人間に可読な文字列に変換できるので、 +エラー報告に適するだろう。 .\"O .SH "FILES" -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .I /etc/gai.conf .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O POSIX.1-2001. .\"O The .\"O .BR getaddrinfo () .\"O function is documented in RFC\ 2553. POSIX.1-2001. .BR getaddrinfo () -´Ø¿ô¤Ï RFC 2553 ¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ +関数は RFC 2553 に記載されている。 .\"O .SH "NOTES" -.SH Ãí°Õ +.SH 注意 .\"O .BR getaddrinfo () .\"O supports the .\"O .IB address % scope-id .\"O notation for specifying the IPv6 scope-ID. .BR getaddrinfo () -¤Ï¡¢IPv6 scope-ID ¤ò»ØÄꤹ¤ë¤¿¤á¤Ë +は、IPv6 scope-ID を指定するために .IB address % scope-id -µ­Ë¡¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ +記法をサポートしている。 .\"O .BR AI_ADDRCONFIG , .\"O .BR AI_ALL , @@ -1045,9 +1045,9 @@ POSIX.1-2001. .BR AI_ADDRCONFIG , .BR AI_ALL , .B AI_V4MAPPED -¤Ï glibc 2.3.3 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +は glibc 2.3.3 以降で利用可能である。 .B AI_NUMERICSERV -¤Ï glibc 2.3.4 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +は glibc 2.3.4 以降で利用可能である。 .\"O According to POSIX.1-2001, specifying .\"O .I hints @@ -1058,19 +1058,19 @@ POSIX.1-2001. .\"O .BR "(AI_V4MAPPED\ |\ AI_ADDRCONFIG)" .\"O for this case, .\"O since this value is considered an improvement on the specification. -POSIX.1-2001 ¤Ë¤è¤ë¤È¡¢ +POSIX.1-2001 によると、 .I hints -¤Ë NULL ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +に NULL が指定された場合、 .I ai_flags -¤ò 0 ¤È¤ß¤Ê¤¹¤Ù¤­¤È¤µ¤ì¤Æ¤¤¤ë¡£ -GNU C ¥é¥¤¥Ö¥é¥ê¤Ç¤Ï¡¢¤³¤Î¾ì¹ç¤Ë¡¢Âå¤ï¤ê¤Ë +を 0 とみなすべきとされている。 +GNU C ライブラリでは、この場合に、代わりに .I ai_flags -¤ò +を .BR "(AI_V4MAPPED\ |\ AI_ADDRCONFIG)" -¤È¤ß¤Ê¤¹¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤³¤ÎÃͤÎÊý¤¬É¸½àµ¬³Ê¤Î²þÁ±¤Ë¤Ê¤ë¤È¹Í¤¨¤é¤ì¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£ +とみなすようになっている。 +この値の方が標準規格の改善になると考えられているからである。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\" getnameinfo.3 refers to this example .\" socket.2 refers to this example .\" bind.2 refers to this example @@ -1084,15 +1084,15 @@ GNU C .\"O and .\"O .BR getnameinfo (3). .\"O The programs are an echo server and client for UDP datagrams. -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢ +以下のプログラムは、 .BR getaddrinfo (), .BR gai_strerror (), .BR freeaddrinfo (), .BR getnameinfo (3) -¤Î»È¤¤Êý¤ò¼¨¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -¥×¥í¥°¥é¥à¤Ï UDP ¥Ç¡¼¥¿¥°¥é¥à¤Î echo ¥µ¡¼¥Ð¤È¥¯¥é¥¤¥¢¥ó¥È¤Ç¤¢¤ë¡£ +の使い方を示したものである。 +プログラムは UDP データグラムの echo サーバとクライアントである。 .\"O .SS Server program -.SS ¥µ¡¼¥Ð¤Î¥×¥í¥°¥é¥à +.SS サーバのプログラム \& .nf #include @@ -1188,7 +1188,7 @@ main(int argc, char *argv[]) } .fi .\"O .SS Client program -.SS ¥¯¥é¥¤¥¢¥ó¥È¤Î¥×¥í¥°¥é¥à +.SS クライアントのプログラム \& .nf #include @@ -1285,7 +1285,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .\" .BR getipnodebyaddr (3), .\" .BR getipnodebyname (3) .BR getaddrinfo_a (3), diff --git a/draft/man3/getcwd.3 b/draft/man3/getcwd.3 index 0a68e641..30709478 100644 --- a/draft/man3/getcwd.3 +++ b/draft/man3/getcwd.3 @@ -41,16 +41,16 @@ .\" Updated 2007-01-01 by Kentaro Shirakata .\" Updated 2008-08-21, Akihiro MOTOKI , LDP v3.07 .\" -.\" WORD: current working directory ¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê -.\" WORD: LEGACY ¡Ö²áµî¤Î̾»Ä(LEGACY)¡× +.\" WORD: current working directory カレントワーキングディレクトリ +.\" WORD: LEGACY 「過去の名残(LEGACY)」 .\" .TH GETCWD 3 2010-09-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getcwd, getwd, get_current_dir_name \- Get current working directory -getcwd, getwd, get_current_dir_name \- ¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê̾¤Î¼èÆÀ +getcwd, getwd, get_current_dir_name \- カレントワーキングディレクトリ名の取得 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -64,9 +64,9 @@ getcwd, getwd, get_current_dir_name \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .sp .in .BR get_current_dir_name (): @@ -80,7 +80,7 @@ _GNU_SOURCE .PD 0 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: .nf _BSD_SOURCE || (_XOPEN_SOURCE\ >=\ 500 || @@ -89,28 +89,28 @@ _BSD_SOURCE || .fi .TP 4 .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .PD .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions return a null-terminated string containing an .\"O absolute pathname that is the current working directory of .\"O the calling process. .\"O The pathname is returned as the function result and via the argument .\"O .IR buf , .\"O if present. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤Î -ÀäÂХѥ¹Ì¾ (absolute pathname) ¤¬Æþ¤Ã¤¿Ê¸»úÎó¤òÊÖ¤¹¡£ -ÊÖ¤µ¤ì¤ëʸ»úÎó¤Ï NULL ¤Ç½ªÃ¼¤µ¤ì¤ë¡£ -¥Ñ¥¹Ì¾¤Ï´Ø¿ô¤Î·ë²Ì¤È¤·¤ÆÊÖ¤µ¤ì¡¢°ú¿ô +これらの関数は、呼び出したプロセスのカレントワーキングディレクトリの +絶対パス名 (absolute pathname) が入った文字列を返す。 +返される文字列は NULL で終端される。 +パス名は関数の結果として返され、引数 .I buf -¤¬¤¢¤ë¾ì¹ç¤Ï +がある場合は .I buf -·Ðͳ¤Ç¤âÊÖ¤µ¤ì¤ë¡£ +経由でも返される。 .\"O The .\"O .BR getcwd () @@ -120,11 +120,11 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O which is of length .\"O .IR size . .BR getcwd () -´Ø¿ô¤Ï¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤ÎÀäÂХѥ¹Ì¾¤ò +関数はカレントワーキングディレクトリの絶対パス名を .I buf -¤Ç¼¨¤µ¤ì¤¿ +で示された .I size -ŤÎÇÛÎó¤Ë¥³¥Ô¡¼¤¹¤ë¡£ +長の配列にコピーする。 .PP .\"O If the length of the absolute pathname of the current working directory, .\"O including the terminating null byte, exceeds @@ -135,16 +135,16 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O .BR ERANGE ; .\"O an application should check for this error, and allocate a larger .\"O buffer if necessary. -½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤â´Þ¤á¤¿¡¢¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤Î -ÀäÂХѥ¹Ì¾¤ÎŤµ¤¬ +終端の NULL バイトも含めた、カレントワーキングディレクトリの +絶対パス名の長さが .I size -¥Ð¥¤¥È¤òĶ¤¨¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ÊÖ¤êÃͤȤ·¤Æ NULL ¤¬ÊÖ¤ê +バイトを超えている場合は、返り値として NULL が返り .I errno -¤Ë +に .B ERANGE -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¤³¤Î¥¨¥é¡¼¤ò¥Á¥§¥Ã¥¯¤·¡¢ -ɬÍפ˱þ¤¸¤Æ¤è¤êŤ¤¥Ð¥Ã¥Õ¥¡¤òÍÑ°Õ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +がセットされる。 +アプリケーションはこのエラーをチェックし、 +必要に応じてより長いバッファを用意すべきである。 .PP .\"O As an extension to the POSIX.1-2001 standard, Linux (libc4, libc5, glibc) .\"O .BR getcwd () @@ -163,24 +163,24 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O The caller should .\"O .BR free (3) .\"O the returned buffer. -POSIX.1-2001 ɸ½à¤Î³ÈÄ¥¤È¤·¤Æ¡¢ -Linux (libc4, libc5, glibc) ¤Ç¤Ï +POSIX.1-2001 標準の拡張として、 +Linux (libc4, libc5, glibc) では .I buf -¤¬ NULL ¤Î¾ì¹ç¡¢ +が NULL の場合、 .BR getcwd () -¤ÏɬÍפʥХåե¡¤ò +は必要なバッファを .BR malloc (3) -¤òÍѤ¤¤ÆưŪ¤Ë³ä¤êÅö¤Æ¤ë¡£ -¤³¤Î¾ì¹ç¡¢ +を用いて動的に割り当てる。 +この場合、 .I size -¤¬ 0 ¤Î¾ì¹ç¤ò½ü¤­¡¢¥Ð¥Ã¥Õ¥¡¤ÎŤµ¤Ï +が 0 の場合を除き、バッファの長さは .I size -¤È¤Ê¤ë¡£ +となる。 .I size -¤¬ 0 ¤Î¾ì¹ç¤Ë¤ÏɬÍפÊÂ礭¤µ¤¬³ÎÊݤµ¤ì¤ë¡£ -¸Æ¤Ó½Ð¤·Â¦¤Ç¡¢ÊÖ¤µ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤ò +が 0 の場合には必要な大きさが確保される。 +呼び出し側で、返されたバッファを .BR free (3) -¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +すべきである。 .\"O .BR get_current_dir_name () .\"O will @@ -192,18 +192,18 @@ Linux (libc4, libc5, glibc) .\"O .B PWD .\"O is set, and its value is correct, then that value will be returned. .BR get_current_dir_name () -¤Ï¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤ÎÀäÂХѥ¹Ì¾¤ò¼ý¤á¤ë¤Î¤Ë -½½Ê¬¤ÊÂ礭¤µ¤ÎÇÛÎó¤ò +はカレントワーキングディレクトリの絶対パス名を収めるのに +十分な大きさの配列を .BR malloc (3) -¤Ç³ÍÆÀ¤¹¤ë¡£´Ä¶­ÊÑ¿ô +で獲得する。環境変数 .B PWD -¤¬ÀßÄꤵ¤ì¤Æ¤ª¤ê¤½¤ÎÃͤ¬Àµ¤·¤±¤ì¤Ð¡¢¤½¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¡£ +が設定されておりその値が正しければ、その値が返される。 .\"O The caller should .\"O .BR free (3) .\"O the returned buffer. -¸Æ¤Ó½Ð¤·Â¦¤Ç¡¢ÊÖ¤µ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤ò +呼び出し側で、返されたバッファを .BR free (3) -¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +すべきである。 .\"O .BR getwd () .\"O does not @@ -222,22 +222,22 @@ Linux (libc4, libc5, glibc) .\"O is set to .\"O .BR ENAMETOOLONG . .BR getwd () -¤Ï +は .BR malloc (3) -¤Ë¤è¤ë¥á¥â¥ê³ÍÆÀ¤ò°ìÀڹԤʤï¤Ê¤¤¡£ +によるメモリ獲得を一切行なわない。 .I buf -°ú¿ô¤Ï¾¯¤Ê¤¯¤È¤â +引数は少なくとも .B PATH_MAX -¥Ð¥¤¥È¤ÎŤµ¤ò»ý¤ÄÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ëɬÍפ¬¤¢¤ë¡£ -½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤â´Þ¤á¤¿¡¢¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤Î -ÀäÂХѥ¹Ì¾¤ÎŤµ¤¬ +バイトの長さを持つ配列へのポインタである必要がある。 +終端の NULL バイトも含めた、カレントワーキングディレクトリの +絶対パス名の長さが .B PATH_MAX -¥Ð¥¤¥È¤òĶ¤¨¤Æ¤¤¤ë¾ì¹ç¡¢ -NULL ¤¬ÊÖ¤µ¤ì¡¢ +バイトを超えている場合、 +NULL が返され、 .I errno -¤Ë +に .B ENAMETOOLONG -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .\"O (Note that on some systems, .\"O .B PATH_MAX .\"O may not be a compile-time constant; @@ -246,17 +246,17 @@ NULL .\"O For portability and security reasons, use of .\"O .BR getwd () .\"O is deprecated. -(¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¡¢ +(システムによっては、 .B PATH_MAX -¤Ïɬ¤º¤·¤â¥³¥ó¥Ñ¥¤¥ë»þ¤Ë·è¤Þ¤ëÄê¿ô¤Ç¤Ï¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¤Þ¤¿¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë°Í¸¤¹¤ë¾ì¹ç¤â¤¢¤ë¡£ +は必ずしもコンパイル時に決まる定数ではない点に注意すること。 +また、ファイルシステムに依存する場合もある。 .BR pathconf (3) -¤ò»²¾È¡£) -°Ü¿¢À­¤È¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÍýͳ¤«¤é¡¢ +を参照。) +移植性とセキュリティ上の理由から、 .BR getwd () -¤ÎÍøÍѤϿ侩¤µ¤ì¤Ê¤¤¡£ +の利用は推奨されない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return a pointer to a string containing .\"O the pathname of the current working directory. .\"O In the case @@ -265,14 +265,14 @@ NULL .\"O .BR getwd () .\"O this is the same value as .\"O .IR buf . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤ÎÀäÂХѥ¹Ì¾ -¤¬Æþ¤Ã¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +成功すると、これらの関数はカレントワーキングディレクトリの絶対パス名 +が入った文字列へのポインタを返す。 .BR getcwd () -¤È +と .BR getwd () -¤Î¾ì¹ç¡¢ÊÖ¤êÃÍ¤Ï +の場合、返り値は .I buf -¤ÈƱ¤¸Ãͤˤʤ롣 +と同じ値になる。 .\"O On failure, these functions return NULL, and .\"O .I errno @@ -280,23 +280,23 @@ NULL .\"O The contents of the array pointed to by .\"O .I buf .\"O are undefined on error. -¼ºÇÔ¤·¤¿¾ì¹ç¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï NULL ¤òÊÖ¤·¡¢ +失敗した場合、これらの関数は NULL を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .I buf -¤¬»Ø¤¹ÇÛÎó¤ÎÆâÍƤÏ̤ÄêµÁ¤Ç¤¢¤ë¡£ +が指す配列の内容は未定義である。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O Permission to read or search a component of the filename was denied. -¥Õ¥¡¥¤¥ë̾¤Î¹½À®Í×ÁǤËÂФ¹¤ëÆɤ߹þ¤ß¤¢¤ë¤¤¤Ï¸¡º÷¤Î¸¢¸Â¤¬¤Ê¤¤¡£ +ファイル名の構成要素に対する読み込みあるいは検索の権限がない。 .TP .B EFAULT .\"O .I buf .\"O points to a bad address. .I buf -¤¬ÉÔÀµ¤Ê¥¢¥É¥ì¥¹¤ò»Ø¤·¤Æ¤¤¤ë¡£ +が不正なアドレスを指している。 .TP .B EINVAL .\"O The @@ -305,9 +305,9 @@ NULL .\"O .I buf .\"O is not a NULL pointer. .I size -°ú¿ô¤¬ 0 ¤«¤Ä¡¢ +引数が 0 かつ、 .I buf -°ú¿ô¤¬ NULL ¥Ý¥¤¥ó¥¿¤Ç¤Ê¤¤¡£ +引数が NULL ポインタでない。 .TP .B EINVAL .\"O .BR getwd (): @@ -315,7 +315,7 @@ NULL .\"O is NULL. .BR getwd (): .I buf -¤¬ NULL ¤Ç¤¢¤ë¡£ +が NULL である。 .TP .B ENAMETOOLONG .\"O .BR getwd (): @@ -323,13 +323,13 @@ NULL .\"O .B PATH_MAX .\"O bytes. .BR getwd (): -ÀäÂХѥ¹Ì¾¤¬Æþ¤Ã¤¿ NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤ÎŤµ¤¬ +絶対パス名が入った NULL 終端された文字列の長さが .B PATH_MAX -¥Ð¥¤¥È¤òĶ¤¨¤Æ¤¤¤ë¡£ +バイトを超えている。 .TP .B ENOENT .\"O The current working directory has been unlinked. -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤¬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ +カレントワーキングディレクトリが削除されている。 .TP .B ERANGE .\"O The @@ -338,30 +338,30 @@ NULL .\"O working directory, including the terminating null byte. .\"O You need to allocate a bigger array and try again. .I size -°ú¿ô¤ÎÃͤ¬¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤ÎÀäÂХѥ¹Ì¾¤ÎŤµ¤è¤ê¾®¤µ¤¤¡£ -Ťµ¤Ë¤Ïʸ»úÎó¤Î½ªÃ¼¥Ð¥¤¥È¤â´Þ¤Þ¤ì¤ë¡£ -¤è¤êÂ礭¤¤ÇÛÎó¤ò³ÎÊݤ·¤Æ¤â¤¦°ìÅټ¹Ԥ¹¤ëɬÍפ¬¤¢¤ë¡£ +引数の値がワーキングディレクトリの絶対パス名の長さより小さい。 +長さには文字列の終端バイトも含まれる。 +より大きい配列を確保してもう一度実行する必要がある。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR getcwd () .\"O conforms to POSIX.1-2001. .BR getcwd () -¤Ï POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +は POSIX.1-2001 に準拠している。 .\"O Note however that POSIX.1-2001 leaves the behavior of .\"O .BR getcwd () .\"O unspecified if .\"O .I buf .\"O is NULL. -POSIX.1-2001 ¤Ï¡¢ +POSIX.1-2001 は、 .I buf -¤¬ NULL ¤Î¾ì¹ç¤Î +が NULL の場合の .BR getcwd () -¤ÎÆ°ºî¤òµ¬Äꤷ¤Ê¤¤¤Þ¤Þ¤È¤·¤Æ¤¤¤ë¡£ +の動作を規定しないままとしている。 .\"O .BR getwd () .\"O is present in POSIX.1-2001, but marked LEGACY. .BR getwd () -¤Ï POSIX.1-2001 ¤Ë¸ºß¤·¤Æ¤¤¤ë¤¬¡¢¡Ö²áµî¤Î̾»Ä(LEGACY)¡×¤È¤µ¤ì¤Æ¤¤¤ë¡£ +は POSIX.1-2001 に存在しているが、「過去の名残(LEGACY)」とされている。 .\"O POSIX.1-2008 removes the specification of .\"O .BR getwd (). .\"O Use @@ -370,43 +370,43 @@ POSIX.1-2001 .\"O POSIX.1-2001 .\"O does not define any errors for .\"O .BR getwd (). -POSIX.1-2008 ¤Ç¤Ï¡¢ +POSIX.1-2008 では、 .BR getwd () -¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ -Âå¤ï¤ê¤Ë +の仕様が削除されている。 +代わりに .BR getcwd () -¤ò»È¤¦¤³¤È¡£ -POSIX.1-2001 ¤Ï +を使うこと。 +POSIX.1-2001 は .BR getwd () -¤Ë´Ø¤¹¤ë¥¨¥é¡¼¤òÄêµÁ¤·¤Æ¤¤¤Ê¤¤¡£ +に関するエラーを定義していない。 .\"O .BR get_current_dir_name () .\"O is a GNU extension. .BR get_current_dir_name () -¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ë¡£ +は GNU 拡張である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Under Linux, the function .\"O .BR getcwd () .\"O is a system call (since 2.1.92). -Linux ¤Ç¤Ï (2.1.92 °Ê¹ß)¡¢ +Linux では (2.1.92 以降)、 .BR getcwd () -¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤¢¤ë¡£ +はシステムコールである。 .\"O On older systems it would query .\"O .IR /proc/self/cwd . -¸Å¤¤¥·¥¹¥Æ¥à¤Ç¤Ï +古いシステムでは .I /proc/self/cwd -¤ò»²¾È¤¹¤ë¡£ +を参照する。 .\"O If both system call and proc file system are missing, a .\"O generic implementation is called. .\"O Only in that case can .\"O these calls fail under Linux with .\"O .BR EACCES . -¥·¥¹¥Æ¥à¥³¡¼¥ë¤â proc ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤â¤Ê¤¤¾ì¹ç¡¢ -°ìÈÌŪ¤Ê¼ÂÁõ¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ -¤³¤Î¾ì¹ç¤Ë¤ª¤¤¤Æ¤Î¤ß¡¢(Linux ¤Ç¤Ï) ¤³¤Î´Ø¿ô¤Ï +システムコールも proc ファイルシステムもない場合、 +一般的な実装が呼び出される。 +この場合においてのみ、(Linux では) この関数は .B EACCES -¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +で失敗する可能性がある。 .LP .\"O These functions are often used to save the location of the current working .\"O directory for the purpose of returning to it later. @@ -415,15 +415,15 @@ Linux .\"O .BR fchdir (2) .\"O to return is usually a faster and more reliable alternative when sufficiently .\"O many file descriptors are available, especially on platforms other than Linux. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¤·¤Ð¤·¤Ð¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤Î°ÌÃÖ¤òÊݸ¤·¡¢ -¸å¤ÇÌá¤Ã¤Æ¤¯¤ë¤¿¤á¤ËÍøÍѤµ¤ì¤ë¡£ -̤»ÈÍѤΥե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬½½Ê¬¤¢¤ë¾ì¹ç¤Ï¡¢ -¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê (".") ¤ò³«¤¤¤Æ +これらの関数はしばしばカレントワーキングディレクトリの位置を保存し、 +後で戻ってくるために利用される。 +未使用のファイルディスクリプタが十分ある場合は、 +現在のディレクトリ (".") を開いて .BR fchdir (2) -¤ò¸Æ¤Ó½Ð¤¹¤Û¤¦¤¬ÉáÄ̤Ϲ⮤ǿ®ÍêÀ­¤¬¤¢¤ë¡£ -ÆÃ¤Ë Linux °Ê³°¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Î¾ì¹ç¤Ï¤½¤¦¤Ç¤¢¤ë¡£ +を呼び出すほうが普通は高速で信頼性がある。 +特に Linux 以外のプラットフォームの場合はそうである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chdir (2), .BR fchdir (2), .BR open (2), diff --git a/draft/man3/getdate.3 b/draft/man3/getdate.3 index 9fb7dbb2..99e29099 100644 --- a/draft/man3/getdate.3 +++ b/draft/man3/getdate.3 @@ -31,15 +31,15 @@ .\" Translated 2002-01-12, NAKANO Takeo .\" Updated 2008-09-20, Akihiro MOTOKI , LDP v3.09 .\" -.\"WORD: broken-down time Í×ÁÇÊ̤λþ¹ï +.\"WORD: broken-down time 要素別の時刻 .\" .TH GETDATE 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getdate, getdate_r \- convert a date-plus-time string to broken-down time -getdate, getdate_r \- ÆüÉդȻþ¹ï¤Îʸ»úÎó¤òÍ×ÁÇÊ̤λþ¹ï¤ËÊÑ´¹¤¹¤ë +getdate, getdate_r \- 日付と時刻の文字列を要素別の時刻に変換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B "#include " .sp .BI "struct tm *getdate(const char *" string ); @@ -53,9 +53,9 @@ getdate, getdate_r \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR getdate (): @@ -72,7 +72,7 @@ _GNU_SOURCE .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The function .\"O .BR getdate () .\"O converts a string representation of a date and time, @@ -80,10 +80,10 @@ _GNU_SOURCE .\"O .IR string , .\"O into a broken-down time. .BR getdate () -´Ø¿ô¤Ï¡¢ +関数は、 .I string -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤¿Ê¸»úÎóɽ¸½¤ÎÆüÉդȻþ¹ï¤ò¡¢ -Í×ÁÇÊ̤λþ¹ï (broken-down time) ¤ËÊÑ´¹¤¹¤ë¡£ +が指すバッファに格納された文字列表現の日付と時刻を、 +要素別の時刻 (broken-down time) に変換する。 .\"O The broken-down time is stored in a .\"O .I tm .\"O structure, and a pointer to this @@ -93,14 +93,14 @@ _GNU_SOURCE .\"O structure is allocated in static storage, .\"O and consequently it will be overwritten by further calls to .\"O .BR getdate (). -Í×ÁÇÊ̤λþ¹ï¤Ï +要素別の時刻は .I tm -¹½Â¤ÂΤ˳ÊǼ¤µ¤ì¡¢¤³¤Î¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤¬´Ø¿ô¤Î·ë²Ì¤È¤·¤ÆÊÖ¤µ¤ì¤ë¡£ -¤³¤Î +構造体に格納され、この構造体へのポインタが関数の結果として返される。 +この .I tm -¹½Â¤ÂΤÏÀÅŪ¤Ê¥á¥â¥êÎΰè¤Ë¤¢¤ê¡¢ +構造体は静的なメモリ領域にあり、 .BR getdate () -¤Î¤½¤ì°Ê¹ß¤Î¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë¤«¤â¤µ¤ì¤Ê¤¤¡£ +のそれ以降の呼び出しで上書きされるかもされない。 .\"O .PP .\"O In contrast to @@ -115,35 +115,35 @@ _GNU_SOURCE .\"O The first line in the file that matches the given input string .\"O is used for the conversion. .RI ( format -°ú¤­¿ô¤Ç¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»ØÄꤹ¤ë) +引き数でフォーマットを指定する) .BR strptime (3) -¤È¤Ï°ã¤¤¡¢ +とは違い、 .BR getdate () -¤Ï´Ä¶­ÊÑ¿ô +は環境変数 .B DATEMSK -¤Ç»ØÄꤵ¤ì¤¿¥Õ¥ë¥Ñ¥¹Ì¾¤Î¥Õ¥¡¥¤¥ë¤Ë½ñ¤¤¤Æ¤¢¤ë¥Õ¥©¡¼¥Þ¥Ã¥È¤òÍѤ¤¤ë¡£ +で指定されたフルパス名のファイルに書いてあるフォーマットを用いる。 .\"O .PP .\"O The matching is done case insensitively. .\"O Superfluous whitespace, either in the pattern or in the string to .\"O be converted, is ignored. -¥Þ¥Ã¥Á¤ÎºÝ¤Ë¤ÏÂçʸ»ú¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤¡£ -¥Ñ¥¿¡¼¥óÃæ¤Ç¤âÊÑ´¹¤µ¤ì¤ëʸ»úÎóÃæ¤Ç¤â¡¢Í¾Ê¬¤Ê¶õÇòʸ»ú¤Ï̵»ë¤µ¤ì¤ë¡£ +マッチの際には大文字小文字を区別しない。 +パターン中でも変換される文字列中でも、余分な空白文字は無視される。 .\"O .PP .\"O The conversion specifications that a pattern can contain are those given for .\"O .BR strptime (3). .\"O One more conversion specification is specified in POSIX.1-2001: -¥Ñ¥¿¡¼¥ó¤Ë»ØÄê¤Ç¤­¤ëÊÑ´¹»ØÄê¤Ï¡¢ +パターンに指定できる変換指定は、 .BR strptime (3) -¤Î¤â¤Î¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -POSIX.1-2001 ¤Ç¤Ï°ì¤Ä¤ÎÊÑ´¹»ØÄ꤬Äɲäǵ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +のものと同じである。 +POSIX.1-2001 では一つの変換指定が追加で規定されている。 .TP .B %Z .\"O Timezone name. .\"O This is not implemented in glibc. -¥¿¥¤¥à¥¾¡¼¥ó¤Î̾Á°¡£ -glibc ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +タイムゾーンの名前。 +glibc では実装されていない。 .LP .\"O When .\"O .B %Z @@ -154,35 +154,35 @@ glibc .\"O corresponding to the current local time (as by a call to .\"O .BR localtime (3)). .B %Z -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢Í×ÁÇÊ̤λþ¹ï¤ò³ÊǼ¤¹¤ë¹½Â¤ÂΤϡ¢ -»ØÄꤵ¤ì¤¿¥¿¥¤¥à¥¾¡¼¥ó¤Ë¤ª¤±¤ë¸½ºß»þ¹ï¤ËÂбþ¤¹¤ëÃͤǽé´ü²½¤µ¤ì¤ë¡£ -»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¤³¤Î¹½Â¤ÂΤϸ½ºß¤Î¥í¡¼¥«¥ë¥¿¥¤¥à¤ËÂбþ¤¹¤ë -Í×ÁÇÊ̤λþ¹ï¤Ç½é´ü²½¤µ¤ì¤ë +が指定された場合、要素別の時刻を格納する構造体は、 +指定されたタイムゾーンにおける現在時刻に対応する値で初期化される。 +指定されていない場合、この構造体は現在のローカルタイムに対応する +要素別の時刻で初期化される .RB ( localtime (3) -¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¤ÈƱ¤¸)¡£ +を呼び出した場合と同じ)。 .LP .\"O When only the weekday is given, the day is taken to be the first such day .\"O on or after today. -ÍËÆü¤À¤±¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ -º£Æü¤Þ¤¿¤Ïº£Æü°Ê¹ß¤Ç¡¢ -¤½¤ÎÍËÆü¤Ë¹çÃפ¹¤ëºÇ½é¤ÎÆü¤¬ºÎÍѤµ¤ì¤ë¡£ +曜日だけが指定された場合、 +今日または今日以降で、 +その曜日に合致する最初の日が採用される。 .LP .\"O When only the month is given (and no year), the month is taken to .\"O be the first such month equal to or after the current month. .\"O If no day is given, it is the first day of the month. -(ǯ¤Ê¤·¤Ç) ·î¤À¤±¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ -º£·î¤Þ¤¿¤Ïº£·î°Ê¹ß¤Ç¡¢ -¤½¤Î·î¤Ë¹çÃפ¹¤ëºÇ½é¤Î·î¤¬ºÎÍѤµ¤ì¤ë¡£ +(年なしで) 月だけが指定された場合、 +今月または今月以降で、 +その月に合致する最初の月が採用される。 .LP .\"O When no hour, minute and second are given, the current .\"O hour, minute and second are taken. -»þ¡¦Ê¬¡¦É䬤¤¤º¤ì¤â»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ -¸½ºß¤Î»þ¡¦Ê¬¡¦É䬺ÎÍѤµ¤ì¤ë¡£ +時・分・秒がいずれも指定されなかった場合、 +現在の時・分・秒が採用される。 .LP .\"O If no date is given, but we know the hour, then that hour is taken .\"O to be the first such hour equal to or after the current hour. -ÆüÉդλØÄ꤬¤Ê¤«¤Ã¤¿¤¬¡¢»þ´Ö (hour) ¤À¤±»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢ -¸½ºß¤Î»þ´Ö¤Þ¤¿¤Ï¤½¤ì°Ê¹ß¤Ç¡¢¤½¤Î»ØÄê¤Ë¹çÃפ¹¤ëºÇ½é¤Î»þ´Ö¤¬ºÎÍѤµ¤ì¤ë¡£ +日付の指定がなかったが、時間 (hour) だけ指定された場合は、 +現在の時間またはそれ以降で、その指定に合致する最初の時間が採用される。 .\"O .BR getdate_r () .\"O is a GNU extension that provides a reentrant version of @@ -194,18 +194,18 @@ glibc .\"O caller-allocated buffer pointed to by the argument .\"O .IR res . .BR getdate_r () -¤Ï GNU ³ÈÄ¥¤Ç +は GNU 拡張で .BR getdate () -¤Î¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤòÄ󶡤·¤Æ¤¤¤ë¡£ +のリエントラント版を提供している。 .BR getdate_r () -¤Ç¤Ï¡¢¥¨¥é¡¼¤òÊó¹ð¤¹¤ë¤Î¤Ë¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤ò»ÈÍѤ·¤¿¤ê¡¢ -Í×ÁÇÊ̤λþ¹ï¤òÊÖ¤¹¤Î¤ËÀÅŪ¤Ê¥Ð¥Ã¥Õ¥¡¤ò»ÈÍѤ·¤¿¤ê¤»¤º¡¢ -¥¨¥é¡¼¤ò´Ø¿ô¤ÎÊÖ¤êÃÍ·Ðͳ¤ÇÊó¹ð¤·¡¢Í×ÁÇÊ̤λþ¹ï¤ò -°ú¤­¿ô +では、エラーを報告するのにグローバル変数を使用したり、 +要素別の時刻を返すのに静的なバッファを使用したりせず、 +エラーを関数の返り値経由で報告し、要素別の時刻を +引き数 .I res -¤¬»Ø¤·¼¨¤¹¸Æ¤Ó½Ð¤·Â¦¤Ç³ä¤êÅö¤Æ¤¿¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ +が指し示す呼び出し側で割り当てたバッファに格納して返す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O When successful, .\"O .BR getdate () .\"O returns a pointer to a @@ -216,99 +216,99 @@ glibc .\"O Changes to .\"O .I errno .\"O are unspecified. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR getdate () -¤Ï +は .I struct tm -¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¼ºÇÔ¤¹¤ë¤È NULL ¤òÊÖ¤·¡¢¥°¥í¡¼¥Ð¥ëÊÑ¿ô +へのポインタを返す。 +失敗すると NULL を返し、グローバル変数 .I getdate_err -¤Ë°Ê²¼¤Ë¼¨¤¹¥¨¥é¡¼ÈÖ¹æ¤Î¤¤¤º¤ì¤«°ì¤Ä¤òÀßÄꤹ¤ë¡£ +に以下に示すエラー番号のいずれか一つを設定する。 .I errno -¤ÎÊѹ¹¤Ë¤Ä¤¤¤Æ¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +の変更については規定されていない。 .\"O On success .\"O .BR getdate_r () .\"O returns 0; .\"O on error it returns one of the error numbers shown below. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR getdate_r () -¤Ï 0 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤¹¤ë¤È¡¢°Ê²¼¤Ë¼¨¤¹¥¨¥é¡¼ÈÖ¹æ¤Î¤¤¤º¤ì¤«°ì¤Ä¤òÊÖ¤¹¡£ +は 0 を返す。 +失敗すると、以下に示すエラー番号のいずれか一つを返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O The following errors are returned via .\"O .IR getdate_err .\"O (for .\"O .BR getdate ()) .\"O or as the function result (for .\"O .BR getdate_r ()): -°Ê²¼¤Î¥¨¥é¡¼¤¬¡¢ +以下のエラーが、 .RB ( getdate () -¤Ç¤Ï) +では) .I getdate_err -·Ðͳ¤ÇÊÖ¤µ¤ì¡¢ +経由で返され、 .RB ( getdate_r () -¤Ç¤Ï) ´Ø¿ô¤ÎÊÖ¤êÃͤȤ·¤ÆÊÖ¤µ¤ì¤ë¡£ +では) 関数の返り値として返される。 .TP 4n .B 1 .\"O The .\"O .B DATEMSK .\"O environment variable is not defined, or its value is an empty string. -´Ä¶­ÊÑ¿ô +環境変数 .B DATEMASK -¤¬Ì¤ÄêµÁ¡¢¤Þ¤¿¤Ï¤½¤ÎÃͤ¬¶õʸ»úÎó¤Ç¤¢¤ë¡£ +が未定義、またはその値が空文字列である。 .TP .B 2 .\"O The template file specified by .\"O .B DATEMSK .\"O cannot be opened for reading. .B DATEMSK -¤Ç»ØÄꤵ¤ì¤¿¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ßÍѤ˥ª¡¼¥×¥ó¤Ç¤­¤Ê¤¤¡£ +で指定されたテンプレートファイルを読み込み用にオープンできない。 .TP .B 3 .\"O Failed to get file status information. -¥Õ¥¡¥¤¥ë¤Î¥¹¥Æ¡¼¥¿¥¹¾ðÊ󤬼èÆÀ¤Ç¤­¤Ê¤¤¡£ +ファイルのステータス情報が取得できない。 .\" stat() .TP .B 4 .\"O The template file is not a regular file. -¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤¬Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤Ê¤¤¡£ +テンプレートファイルが通常のファイルでない。 .TP .B 5 .\"O An error was encountered while reading the template file. -¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤ÎÆɤ߹þ¤ßÃæ¤Ë¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£ +テンプレートファイルの読み込み中にエラーが起こった。 .TP .B 6 .\"O Memory allocation failed (not enough memory available). .\"O .\" Error 6 doesn't seem to occur in glibc -¥á¥â¥ê¤Î³ä¤êÅö¤Æ¤Ë¼ºÇÔ¤·¤¿ (¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤)¡£ -.\" ¥¨¥é¡¼ 6 ¤Ï glibc ¤Ç¤ÏȯÀ¸¤·¤Ê¤¤¤è¤¦¤Ë¸«¤¨¤ë¡£ +メモリの割り当てに失敗した (メモリが足りない)。 +.\" エラー 6 は glibc では発生しないように見える。 .TP .B 7 .\"O There is no line in the file that matches the input. -ÆþÎϤ˥ޥåÁ¤·¤¿¥Õ¥¡¥¤¥ë¤Ë¡¢¹Ô¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¡£ +入力にマッチしたファイルに、行が含まれていない。 .TP .B 8 .\"O Invalid input specification. -ÆþÎÏ»ØÄ꤬Àµ¤·¤¯¤Ê¤¤¡£ +入力指定が正しくない。 .\"O .SH ENVIRONMENT -.SH ´Ä¶­ÊÑ¿ô +.SH 環境変数 .TP .B DATEMSK .\"O File containing format patterns. -½ñ¼°¥Ñ¥¿¡¼¥ó¤ò´Þ¤à¥Õ¥¡¥¤¥ë¡£ +書式パターンを含むファイル。 .TP .BR TZ ", " LC_TIME .\"O Variables used by .\"O .BR strptime (3). .BR strptime (3) -¤¬ÍѤ¤¤ëÊÑ¿ô¡£ +が用いる変数。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The POSIX.1-2001 specification for .\"O .BR strptime (3) .\"O contains conversion specifications using the @@ -322,23 +322,23 @@ POSIX.1-2001. .\"O is implemented using .\"O .BR strptime (3), .\"O so that precisely the same conversions are supported by both. -POSIX.1-2001 »ÅÍͤǤϡ¢ +POSIX.1-2001 仕様では、 .BR strptime (3) -¤Ë¤Ä¤¤¤Æ¤Ï +については .B %E -¤ä +や .B %O -¤È¤¤¤Ã¤¿½¤Àµ»Ò¤òÍѤ¤¤¿ÊÑ´¹»ØÄê¤òµ¬Äꤷ¤Æ¤¤¤ë¤¬¡¢ +といった修正子を用いた変換指定を規定しているが、 .BR getdate () -¤Ë¤Ä¤¤¤Æ¤Ï¤³¤Î¤è¤¦¤Ê½¤¾þ»Ò¤Îµ¬Äê¤Ï¤Ê¤¤¡£ -glibc ¤Ç¤Ï¡¢ +についてはこのような修飾子の規定はない。 +glibc では、 .BR getdate () -¤Ï +は .BR strptime (3) -¤òÍѤ¤¤Æ¼ÂÁõ¤µ¤ì¤Æ¤ª¤ê¡¢ -ξ¼Ô¤Ç¤ÏÁ´¤¯Æ±¤¸ÊÑ´¹¤¬Î¾¼Ô¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +を用いて実装されており、 +両者では全く同じ変換が両者でサポートされている。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The program below calls .\"O .BR getdate () .\"O for each of its command-line arguments, @@ -346,12 +346,12 @@ glibc .\"O .I tm .\"O structure. .\"O The following shell session demonstrates the operation of the program: -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Î¤½¤ì¤¾¤ì¤Ë¤Ä¤¤¤Æ +以下のプログラムは、コマンドライン引き数のそれぞれについて .BR getdate () -¤ò¸Æ¤Ó½Ð¤·¡¢¤½¤ì¤¾¤ì¤Ë¤Ä¤¤¤ÆÊÖ¤µ¤ì¤¿ +を呼び出し、それぞれについて返された .I tm -¹½Â¤ÂΤΥե£¡¼¥ë¥ÉÃͤòɽ¼¨¤¹¤ë¡£ -¼¡¤Î¥·¥§¥ë¡¦¥»¥Ã¥·¥ç¥ó¤Ï¡¢¥×¥í¥°¥é¥à¤ÎÆ°ºîÎã¤Ç¤¢¤ë¡£ +構造体のフィールド値を表示する。 +次のシェル・セッションは、プログラムの動作例である。 .in +4n .nf @@ -396,7 +396,7 @@ Call 3 ("12:22:33") succeeded: .fi .in .\"O .SS Program source -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #define _GNU_SOURCE 500 @@ -435,7 +435,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR time (2), .BR localtime (3), .BR setlocale (3), diff --git a/draft/man3/getdirentries.3 b/draft/man3/getdirentries.3 index 914c42bb..d9e2439e 100644 --- a/draft/man3/getdirentries.3 +++ b/draft/man3/getdirentries.3 @@ -30,17 +30,17 @@ .TH GETDIRENTRIES 3 2007-07-26 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O getdirentries \- get directory entries in a file system-independent format -.SH ̾Á° -getdirentries \- ¥Ç¥£¥ì¥¯¥È¥ê¤Î¥¨¥ó¥È¥ê¤ò¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë°Í¸¤·¤Ê¤¤·Á¼°¤Ç¼èÆÀ¤¹¤ë +.SH 名前 +getdirentries \- ディレクトリのエントリをファイルシステムに依存しない形式で取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR getdirentries (): @@ -50,7 +50,7 @@ _BSD_SOURCE || _SVID_SOURCE .BI "ssize_t getdirentries(int " fd ", char *" buf ", size_t " nbytes .BI ", off_t *" basep ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Read directory entries from the directory specified by .\"O .I fd .\"O into @@ -64,33 +64,33 @@ _BSD_SOURCE || _SVID_SOURCE .\"O .I *basep .\"O is updated with the new position after reading. .I fd -¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¥¨¥ó¥È¥ê¤òÆɤߡ¢ +で指定されたディレクトリからエントリを読み、 .I buf -¤Ë³ÊǼ¤¹¤ë¡£ºÇÂç¤Ç +に格納する。最大で .I nbytes -¤¬Æɤ߹þ¤Þ¤ì¤ë¡£Æɤ߹þ¤ß¤Ï¥ª¥Õ¥»¥Ã¥È +が読み込まれる。読み込みはオフセット .I *basep -¤«¤é³«»Ï¤µ¤ì¡¢Æɤ߹þ¤ß½ªÎ»»þ¤Ë¤Ï +から開始され、読み込み終了時には .I *basep -¤Ï¿·¤·¤¤°ÌÃ֤˹¹¿·¤µ¤ì¤ë¡£ +は新しい位置に更新される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR getdirentries () .\"O returns the number of bytes read or zero when at the end of the directory. .\"O If an error occurs, \-1 is returned, and .\"O .I errno .\"O is set appropriately. .BR getdirentries () -¤ÏÆɤ߹þ¤ó¤À¥Ð¥¤¥È¿ô¤òÊÖ¤¹¤«¡¢¥Ç¥£¥ì¥¯¥È¥ê¤ÎºÇ¸å¤Ë¤­¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¤é \-1 ¤òÊÖ¤·¡¢ +は読み込んだバイト数を返すか、ディレクトリの最後にきた場合は 0 を返す。 +エラーが起こったら \-1 を返し、 .I errno -¤ò¥¨¥é¡¼¤ËÂбþ¤¹¤ëÃͤ˥»¥Ã¥È¤¹¤ë¡£ +をエラーに対応する値にセットする。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See the Linux library source code for details. -¾ÜºÙ¤Ï Linux ¤Î¥é¥¤¥Ö¥é¥ê¥½¡¼¥¹¥³¡¼¥É¤òÆɤó¤Ç¤Û¤·¤¤¡£ +詳細は Linux のライブラリソースコードを読んでほしい。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O Not in POSIX.1-2001. .\"O Present on the BSDs, and a few other systems. .\"O Use @@ -98,14 +98,14 @@ _BSD_SOURCE || _SVID_SOURCE .\"O and .\"O .BR readdir (3) .\"O instead. -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -BSD ¤Ë¸ºß¤·¡¢Â¾¤Ë¤â¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ë¤â¤¢¤ë¡£ -Âå¤ï¤ê¤Ë +POSIX.1-2001 にはない。 +BSD に存在し、他にもいくつかのシステムにもある。 +代わりに .BR opendir (3) -¤È +と .BR readdir (3) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +を使用すること。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR lseek (2), .BR open (2) diff --git a/draft/man3/getenv.3 b/draft/man3/getenv.3 index cfa4f24d..6fec0ce1 100644 --- a/draft/man3/getenv.3 +++ b/draft/man3/getenv.3 @@ -38,17 +38,17 @@ .TH GETENV 3 2008-03-17 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O getenv \- get an environment variable -.SH ̾Á° -getenv \- ´Ä¶­ÊÑ¿ô¤òÆÀ¤ë +.SH 名前 +getenv \- 環境変数を得る .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "char *getenv(const char *" name ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR getenv () .\"O function searches the environment list to find the @@ -57,41 +57,41 @@ getenv \- .\"O and returns a pointer to the corresponding .\"O .I value .\"O string. -´Ø¿ô +関数 .BR getenv () -¤Ï¡¢´Ä¶­¥ê¥¹¥È¤«¤é̾Á°¤¬ +は、環境リストから名前が .I name -¤Î´Ä¶­ÊÑ¿ô¤ò¸¡º÷¤·¡¢Âбþ¤¹¤ë +の環境変数を検索し、対応する .I value -ʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +文字列へのポインタを返す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR getenv () .\"O function returns a pointer to the value in the .\"O environment, or NULL if there is no match. -´Ø¿ô +関数 .BR getenv () -¤Ï¡¢´Ä¶­¤Ë¤ª¤±¤ëÃÍ value ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -\fIname\fP ¤Ë¥Þ¥Ã¥Á¤¹¤ë´Ä¶­ÊÑ¿ô¤¬Â¸ºß¤·¤Ê¤¤¤È¤­¤Ë¤Ï NULL ¤òÊÖ¤¹¡£ +は、環境における値 value へのポインタを返す。 +\fIname\fP にマッチする環境変数が存在しないときには NULL を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001, 4.3BSD, C89, C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The strings in the environment list are of the form \fIname=value\fP. -´Ä¶­¥ê¥¹¥È¤Îʸ»úÎó¤Ï \fIname=value\fP ¤È¤¤¤¦·Á¼°¤ò¤·¤Æ¤¤¤ë¡£ +環境リストの文字列は \fIname=value\fP という形式をしている。 .\"O As typically implemented, .\"O .BR getenv () .\"O returns a pointer to a string within the environment list. .\"O The caller must take care not to modify this string, .\"O since that would change the environment of the process. -Ä̾ï¤Î¼ÂÁõ¤Ç¤Ï¡¢ +通常の実装では、 .BR getenv () -¤Ï´Ä¶­¥ê¥¹¥ÈÆâ¤Îʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¸Æ¤Ó½Ð¤·¸µ¤Ï¤³¤Îʸ»úÎó¤òÊѹ¹¤·¤Ê¤¤¤è¤¦¤ËÃí°Õ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤Îʸ»úÎó¤òÊѹ¹¤¹¤ë¤È¡¢¤½¤Î¥×¥í¥»¥¹¤Î´Ä¶­¤òÊѲ½¤µ¤»¤ë¤³¤È¤Ë¤Ê¤ë¤«¤é¤Ç¤¢¤ë¡£ +は環境リスト内の文字列へのポインタを返す。 +呼び出し元はこの文字列を変更しないように注意しなければならない。 +この文字列を変更すると、そのプロセスの環境を変化させることになるからである。 .\"O The implementation of .\"O .BR getenv () @@ -106,17 +106,17 @@ SVr4, POSIX.1-2001, 4.3BSD, C89, C99. .\"O or .\"O .BR unsetenv (3). .BR getenv () -¤Î¼ÂÁõ¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È (ºÆÆþ²Äǽ) ¤Ç¤¢¤ë¤³¤È¤òÍ׵ᤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +の実装はリエントラント (再入可能) であることを要求されていない。 .BR getenv () -¤ÎÊÖ¤êÃͤˤè¤ê»²¾È¤µ¤ì¤ëʸ»úÎó¤ÏÀÅŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¤Æ¤â¤è¤¯¡¢ -ʸ»úÎó¤ÎÆâÍƤϸ峤Π+の返り値により参照される文字列は静的に割り当てられてもよく、 +文字列の内容は後続の .BR getenv (), .BR putenv (3), .BR setenv (3), .BR unsetenv (3) -¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤êÊѹ¹¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ +の呼び出しにより変更されることがある。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR clearenv (3), .BR putenv (3), .BR setenv (3), diff --git a/draft/man3/getfsent.3 b/draft/man3/getfsent.3 index 5a8c4542..04718c49 100644 --- a/draft/man3/getfsent.3 +++ b/draft/man3/getfsent.3 @@ -28,10 +28,10 @@ .TH GETFSENT 3 2002-02-28 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O getfsent, getfsspec, getfsfile, setfsent, endfsent \- handle fstab entries -.SH ̾Á° -getfsent, getfsspec, getfsfile, setfsent, endfsent \- fstab ¥¨¥ó¥È¥ê¤Î½èÍý +.SH 名前 +getfsent, getfsspec, getfsfile, setfsent, endfsent \- fstab エントリの処理 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .B "void endfsent(void);" @@ -44,13 +44,13 @@ getfsent, getfsspec, getfsfile, setfsent, endfsent \- fstab .sp .B "int setfsent(void);" .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions read from the file .\"O .IR /etc/fstab . .\"O The \fIstruct fstab\fP is defined by: -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I /etc/fstab -¥Õ¥¡¥¤¥ë¤«¤é¾ðÊó¤òÆɤ߹þ¤à¡£\fIfstab\fP ¹½Â¤ÂΤϼ¡¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +ファイルから情報を読み込む。\fIfstab\fP 構造体は次のように定義されている。 .LP .in +4n .nf @@ -71,36 +71,36 @@ struct fstab { .\"O contains (on a *BSD system) .\"O one of the five strings "rw", "rq", "ro", "sw", "xx" .\"O (read-write, read-write with quota, read-only, swap, ignore). -*BSD ¥·¥¹¥Æ¥à¤Î¾ì¹ç¡¢ +*BSD システムの場合、 .I fs_type -¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¡¢5 ¤Ä¤Îʸ»úÎó +フィールドには、5 つの文字列 "rw", "rq", "ro", "sw", "xx" -¤Î¤¤¤º¤ì¤«¤¬Æþ¤ë -(¤½¤ì¤¾¤ì read-write, quota ÉÕ¤­ read-write, read-only, swap, ignore)¡£ +のいずれかが入る +(それぞれ read-write, quota 付き read-write, read-only, swap, ignore)。 .\"O The function .\"O .BR setfsent () .\"O opens the file when required and positions it at the first line. -´Ø¿ô +関数 .BR setfsent () -¤Ï¸Æ¤Ó½Ð¤µ¤ì¤ë¤È fstab ¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤·¡¢ -ºÇ½é¤Î¹Ô¤Ë°ÜÆ°¤¹¤ë¡£ +は呼び出されると fstab ファイルをオープンし、 +最初の行に移動する。 .LP .\"O The function .\"O .BR getfsent () .\"O parses the next line from the file. .\"O (After opening it when required.) -´Ø¿ô +関数 .BR getfsent () -¤Ï fstab ¥Õ¥¡¥¤¥ë¤«¤é¼¡¤Î¹Ô¤ò¥Ñ¡¼¥¹¤¹¤ë -(ɬÍפʾì¹ç¤Ï¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë)¡£ +は fstab ファイルから次の行をパースする +(必要な場合はファイルをオープンする)。 .LP .\"O The function .\"O .BR endfsent () .\"O closes the file when required. -´Ø¿ô +関数 .BR endfsent () -¤Ï¸Æ¤Ó½Ð¤µ¤ì¤ë¤È fstab ¥Õ¥¡¥¤¥ë¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +は呼び出されると fstab ファイルをクローズする。 .LP .\"O The function .\"O .BR getfsspec () @@ -110,13 +110,13 @@ struct fstab { .\"O field matches the .\"O .I special_file .\"O argument. -´Ø¿ô +関数 .BR getfsspec () -¤Ï fstab ¥Õ¥¡¥¤¥ë¤òÀèƬ¤«¤é¸¡º÷¤·¡¢ +は fstab ファイルを先頭から検索し、 .I fs_spec -¥Õ¥£¡¼¥ë¥É¤¬ +フィールドが .I special_file -°ú¿ô¤Ë¥Þ¥Ã¥Á¤¹¤ë¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤Ã¤¿¤é¡¢¤½¤ÎºÇ½é¤Î¤â¤Î¤òÊÖ¤¹¡£ +引数にマッチするエントリが見つかったら、その最初のものを返す。 .LP .\"O The function .\"O .BR getfsfile () @@ -126,15 +126,15 @@ struct fstab { .\"O field matches the .\"O .I mount_point .\"O argument. -´Ø¿ô +関数 .BR getfsfile () -¤Ï fstab ¥Õ¥¡¥¤¥ë¤òÀèƬ¤«¤é¸¡º÷¤·¡¢ +は fstab ファイルを先頭から検索し、 .I fs_file -¥Õ¥£¡¼¥ë¥É¤¬ +フィールドが .I mount_point -°ú¿ô¤Ë¥Þ¥Ã¥Á¤¹¤ë¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤Ã¤¿¤é¡¢¤½¤ÎºÇ½é¤Î¤â¤Î¤òÊÖ¤¹¡£ +引数にマッチするエントリが見つかったら、その最初のものを返す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O Upon success, the functions .\"O .BR getfsent (), .\"O .BR getfsfile (), @@ -144,25 +144,25 @@ struct fstab { .\"O .BR setfsent () .\"O returns 1. .\"O Upon failure or end-of-file, these functions return NULL and 0, respectively. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR getfsent (), .BR getfsfile (), .BR getfsspec () -¤Î³Æ´Ø¿ô¤Ï \fIfstab\fP ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤·¡¢ +の各関数は \fIfstab\fP 構造体へのポインタを返し、 .BR setfsent () -´Ø¿ô¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤¹¤ë¤È¤³¤ì¤é¤Î´Ø¿ô¤Ï NULL ¤òÊÖ¤·¡¢ -end-of-file ¤Ë¤Ê¤Ã¤¿¤é 0 ¤òÊÖ¤¹¡£ +関数は 1 を返す。 +失敗するとこれらの関数は NULL を返し、 +end-of-file になったら 0 を返す。 .\"O .\" .SH HISTORY -.\" .SH ÍúÎò +.\" .SH 履歴 .\"O .\" The .\"O .\" .BR getfsent () .\"O .\" function appeared in 4.0BSD; the other four functions appeared in 4.3BSD. .\" .BR getfsent () -.\" ´Ø¿ô¤Ï 4.0BSD ¤ÇÅо줷¤¿¡£ -.\" ¾¤Î 4 ¤Ä¤Î´Ø¿ô¤Ï 4.3BSD ¤ÇÅо줷¤¿¡£ +.\" 関数は 4.0BSD で登場した。 +.\" 他の 4 つの関数は 4.3BSD で登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These functions are not in POSIX.1-2001. .\"O Several operating systems have them, .\"O e.g., *BSD, SunOS, Digital UNIX, AIX (which also has a @@ -172,21 +172,21 @@ end-of-file .\"O instead of a \fIstruct fstab\fP, .\"O and calls these functions obsolete, superseded by .\"O .BR getmntent (3). -POSIX.1-2001 ¤Ë¤Ï¤³¤ì¤é¤Î´Ø¿ô¤Ï¸ºß¤·¤Ê¤¤¡£ -¤³¤ì¤é¤Î´Ø¿ô¤ò¤â¤Ä OS ¤Ï¤¤¤¯¤Ä¤«¤¢¤ê¡¢ -*BSD, SunOS, Digital UNIX, AIX Åù¤Ç¤¢¤ë -(AIX ¤Ë¤Ï +POSIX.1-2001 にはこれらの関数は存在しない。 +これらの関数をもつ OS はいくつかあり、 +*BSD, SunOS, Digital UNIX, AIX 等である +(AIX には .BR getfstype () -¤â¤¢¤ë)¡£ -HP-UX ¤Ë¤âƱ̾¤Î´Ø¿ô·²¤¬¤¢¤ë¤¬¡¢ -HP-UX ¤Î¤â¤Î¤Ï \fIfstab\fP ¹½Â¤ÂΤǤϤʤ¯ \fIchecklist\fP ¹½Â¤ÂΤòÍѤ¤¤ë¡£ -¤Þ¤¿¤³¤ì¤é¤Î´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤Ï obsolete ¤Ç¡¢ +もある)。 +HP-UX にも同名の関数群があるが、 +HP-UX のものは \fIfstab\fP 構造体ではなく \fIchecklist\fP 構造体を用いる。 +またこれらの関数の呼び出しは obsolete で、 .BR getmntent (3) -¤Ë¼è¤Ã¤ÆÂå¤ï¤é¤ì¤Æ¤¤¤ë¡£ +に取って代わられている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O These functions are not thread-safe. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤Ï¤Ê¤¤¡£ +これらの関数はスレッドセーフではない。 .LP .\"O Since Linux allows mounting a block special device in several places, .\"O and since several devices can have the same mount point, where the @@ -197,16 +197,16 @@ HP-UX .\"O .BR getfsspec () .\"O only return the first occurrence, these two functions are not suitable .\"O for use under Linux. -Linux ¤Ç¤Ï¥Ö¥í¥Ã¥¯¥¹¥Ú¥·¥ã¥ë¥Ç¥Ð¥¤¥¹¤òÊ£¿ô¤Î¾ì½ê¤Ë¥Þ¥¦¥ó¥È¤Ç¤­¡¢ -¤Þ¤¿Ê£¿ô¤Î¥Ç¥Ð¥¤¥¹¤¬Æ±¤¸¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ò¶¦Í­¤Ç¤­¤ë -(¤³¤Î¾ì¹ç¤Ï¤½¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ËºÇ¸å¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Ç¥Ð¥¤¥¹¤¬°ÕÌ£¤ò»ý¤Ä) -¤¬¡¢ +Linux ではブロックスペシャルデバイスを複数の場所にマウントでき、 +また複数のデバイスが同じマウントポイントを共有できる +(この場合はそのマウントポイントに最後にマウントされたデバイスが意味を持つ) +が、 .BR getfsfile () -¤È +と .BR getfsspec () -¤Ï¥Þ¥Ã¥Á¤·¤¿ºÇ½é¤Î¥¨¥ó¥È¥ê¤·¤«ÊÖ¤µ¤Ê¤¤¤Î¤Ç¡¢ -¤³¤ì¤é¤Î 2 ¤Ä¤Î´Ø¿ô¤Ï Linux ¤Ç¤ÎÍøÍѤˤÏŬ¤·¤Æ¤¤¤Ê¤¤¡£ +はマッチした最初のエントリしか返さないので、 +これらの 2 つの関数は Linux での利用には適していない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getmntent (3), .BR fstab (5) diff --git a/draft/man3/getgrent.3 b/draft/man3/getgrent.3 index f5ba2bdf..0ff93745 100644 --- a/draft/man3/getgrent.3 +++ b/draft/man3/getgrent.3 @@ -34,11 +34,11 @@ .\" .TH GETGRENT 3 2010-10-21 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getgrent, setgrent, endgrent \- get group file entry -getgrent, setgrent, endgrent \- ¥°¥ë¡¼¥×¥Õ¥¡¥¤¥ë¥¨¥ó¥È¥ê¤Î¼èÆÀ +getgrent, setgrent, endgrent \- グループファイルエントリの取得 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -53,9 +53,9 @@ getgrent, setgrent, endgrent \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .PD 0 @@ -77,7 +77,7 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .PD .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR getgrent () .\"O function returns a pointer to a structure containing @@ -90,34 +90,34 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O is called, .\"O it returns the first entry; thereafter, it returns successive entries. .BR getgrent () -´Ø¿ô¤Ï¡¢¥°¥ë¡¼¥×¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¼èÆÀ¤·¤¿¥¨¥ó¥È¥ê¤ò -Í×ÁÇËè¤Ëʬ²ò¤·¡¢³ÆÍ×ÁǤò³ÊǼ¤·¤¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹ -(¥°¥ë¡¼¥×¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÎã: -¥í¡¼¥«¥ë¤Î¥°¥ë¡¼¥×¥Õ¥¡¥¤¥ë +関数は、グループ・データベースから取得したエントリを +要素毎に分解し、各要素を格納した構造体へのポインタを返す +(グループ・データベースの例: +ローカルのグループファイル .IR /etc/group , -NIS, LDAP)¡£ +NIS, LDAP)。 .BR getgrent () -¤Ï¡¢ºÇ½é¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿»þ¤ÏºÇ½é¤Î¥¨¥ó¥È¥ê¤òÊÖ¤·¡¢ -¤½¤ì°Ê¹ß¤Ï¸Æ¤Ó½Ð¤µ¤ì¤ëËè¤Ë¼¡¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£ +は、最初に呼び出された時は最初のエントリを返し、 +それ以降は呼び出される毎に次のエントリを返す。 .PP .\"O The .\"O .BR setgrent () .\"O function rewinds to the beginning .\"O of the group database, to allow repeated scans. .BR setgrent () -´Ø¿ô¤ò»È¤¦¤È¡¢¤â¤¦°ìÅÙÆɤ߹þ¤á¤ë¤è¤¦¤Ë¡¢ -¥°¥ë¡¼¥×¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÀèƬ¤ËÌá¤ë¡£ +関数を使うと、もう一度読み込めるように、 +グループ・データベースの先頭に戻る。 .PP .\"O The .\"O .BR endgrent () .\"O function is used to close the group database .\"O after all processing has been performed. .BR endgrent () -´Ø¿ô¤Ï¡¢Á´¤Æ¤Î½èÍý¤¬½ª¤ï¤Ã¤¿¸å¤Ë¥°¥ë¡¼¥×¡¦ -¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +関数は、全ての処理が終わった後にグループ・ +データベースをクローズする。 .PP .\"O The \fIgroup\fP structure is defined in \fI\fP as follows: -\fIgroup\fP ¹½Â¤ÂΤϡ¢\fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +\fIgroup\fP 構造体は、\fI\fP で以下のように定義されている: .sp .in +4n .nf @@ -126,21 +126,21 @@ struct group { .\"O char *gr_passwd; /* group password */ .\"O gid_t gr_gid; /* group ID */ .\"O char **gr_mem; /* group members */ - char *gr_name; /* ¥°¥ë¡¼¥×̾ */ - char *gr_passwd; /* ¥°¥ë¡¼¥×¤Î¥Ñ¥¹¥ï¡¼¥É */ - gid_t gr_gid; /* ¥°¥ë¡¼¥× ID */ - char **gr_mem; /* ¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð */ + char *gr_name; /* グループ名 */ + char *gr_passwd; /* グループのパスワード */ + gid_t gr_gid; /* グループ ID */ + char **gr_mem; /* グループのメンバ */ }; .fi .in .PP .\"O For more information about the fields of this structure, see .\"O .BR group (5). -¤³¤Î¹½Â¤ÂΤΥե£¡¼¥ë¥É¤Î¾ÜºÙ¤Ï +この構造体のフィールドの詳細は .BR group (5) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR getgrent () .\"O function returns a pointer to a @@ -148,10 +148,10 @@ struct group { .\"O structure, .\"O or NULL if there are no more entries or an error occurs. .BR getgrent () -´Ø¿ô¤Ï +関数は .I group -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤ì°Ê¾å¥¨¥ó¥È¥ê¤¬Ìµ¤¤¤«¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +構造体へのポインタを返す。 +これ以上エントリが無いか、エラーが発生した場合は NULL を返す。 .LP .\"O Upon error, .\"O .I errno @@ -159,14 +159,14 @@ struct group { .\"O If one wants to check .\"O .I errno .\"O after the call, it should be set to zero before the call. -¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤È¡¢ +エラーが発生すると、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -¤³¤Î´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¸å¤Ë +が適切に設定される。 +この関数の呼び出し後に .I errno -¤ò¥Á¥§¥Ã¥¯¤·¤¿¤¤¾ì¹ç¤Ï¡¢¸Æ¤Ó½Ð¤·Á°¤Ë +をチェックしたい場合は、呼び出し前に .I errno -¤ò 0 ¤ËÀßÄꤷ¤Æ¤ª¤«¤Ê¤¤¤È¤¤¤±¤Ê¤¤¡£ +を 0 に設定しておかないといけない。 .\"O The return value may point to a static area, and may be overwritten .\"O by subsequent calls to @@ -176,55 +176,55 @@ struct group { .\"O .BR getgrnam (3). .\"O (Do not pass the returned pointer to .\"O .BR free (3).) -ÊÖ¤êÃͤÏÀÅŪ¤ÊÎΰè¤ò»Ø¤·¤Æ¤ª¤ê¡¢¤½¤Î¸å¤Î +返り値は静的な領域を指しており、その後の .BR getgrent (), .BR getgrgid (3), .BR getgrnam (3) -¤Î¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -(ÊÖ¤µ¤ì¤¿¥Ý¥¤¥ó¥¿¤ò +の呼び出しで上書きされるかもしれない。 +(返されたポインタを .BR free (3) -¤ËÅϤµ¤Ê¤¤¤³¤È¡£) +に渡さないこと。) .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINTR .\"O A signal was caught. -¥·¥°¥Ê¥ë¤¬¥­¥ã¥Ã¥Á¤µ¤ì¤¿¡£ +シグナルがキャッチされた。 .TP .B EIO .\"O I/O error. -I/O ¥¨¥é¡¼¡£ +I/O エラー。 .TP .B EMFILE .\"O The calling process already has too many open files. -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬´û¤Ë¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤·²á¤®¤Æ¤¤¤ë¡£ +呼び出したプロセスが既にファイルをオープンし過ぎている。 .TP .B ENFILE .\"O Too many open files in the system. -¥·¥¹¥Æ¥à¾å¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬Â¿²á¤®¤ë¡£ +システム上にオープンされたファイルが多過ぎる。 .TP .B ENOMEM .\"O .\" not in POSIX .\"O Insufficient memory to allocate .\"O .I group .\"O structure. -.\" POSIX ¤Ë¤Ï¤Ê¤¤¡£ +.\" POSIX にはない。 .I group -¹½Â¤ÂΤò³ä¤êÅö¤Æ¤ë¤¿¤á¤Î¥á¥â¥ê¤¬ÉÔ½½Ê¬¡£ +構造体を割り当てるためのメモリが不十分。 .TP .B ERANGE .\"O Insufficient buffer space supplied. -½½Ê¬¤Ê¥Ð¥Ã¥Õ¥¡¶õ´Ö¤¬¤Ê¤¤¡£ -.SH ¥Õ¥¡¥¤¥ë +十分なバッファ空間がない。 +.SH ファイル .TP .I /etc/group .\"O local group database file -¥í¡¼¥«¥ë¤Î¥°¥ë¡¼¥×¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë +ローカルのグループ・データベースファイル .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fgetgrent (3), .BR getgrent_r (3), .BR getgrgid (3), diff --git a/draft/man3/getgrent_r.3 b/draft/man3/getgrent_r.3 index 0ee37f78..8f98fd3f 100644 --- a/draft/man3/getgrent_r.3 +++ b/draft/man3/getgrent_r.3 @@ -27,11 +27,11 @@ .\" .TH GETGRENT_R 3 2010-10-21 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getgrent_r, fgetgrent_r \- get group file entry reentrantly -getgrent_r, fgetgrent_r \- ¥°¥ë¡¼¥×¥Õ¥¡¥¤¥ë¥¨¥ó¥È¥ê¤ò¥ê¥¨¥ó¥È¥é¥ó¥È (reentrant) ¤Ë¼è¤ê½Ð¤¹ +getgrent_r, fgetgrent_r \- グループファイルエントリをリエントラント (reentrant) に取り出す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -47,9 +47,9 @@ getgrent_r, fgetgrent_r \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR getgrent_r (): @@ -59,7 +59,7 @@ _GNU_SOURCE .BR fgetgrent_r (): _SVID_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The functions .\"O .BR getgrent_r () .\"O and @@ -68,32 +68,32 @@ _SVID_SOURCE .\"O .BR getgrent (3) .\"O and .\"O .BR fgetgrent (3). -´Ø¿ô +関数 .BR getgrent_r () -¤È +と .BR fgetgrent_r () -¤Ï +は .BR getgrent (3) -¤È +と .BR fgetgrent (3) -¤Î¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤǤ¢¤ë¡£ +のリエントラント版である。 .\"O The former reads the next group entry from the stream initialized by .\"O .BR setgrent (3). -Á°¼Ô¤Ï¡¢ +前者は、 .BR setgrent (3) -¤Ë¤è¤Ã¤Æ½é´ü²½¤µ¤ì¤¿¥¹¥È¥ê¡¼¥à¤«¤é¡¢¼¡¤Î¥°¥ë¡¼¥×¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥È¥ê¤òÆɤ߹þ¤à¡£ +によって初期化されたストリームから、次のグループファイルのエントリを読み込む。 .\"O The latter reads the next group entry from the stream .\"O .IR fp . -¸å¼Ô¤Ï¡¢¥¹¥È¥ê¡¼¥à +後者は、ストリーム .I fp -¤«¤é¼¡¤Î¥°¥ë¡¼¥×¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥È¥ê¤òÆɤ߹þ¤à¡£ +から次のグループファイルのエントリを読み込む。 .PP .\"O The \fIgroup\fP structure is defined in .\"O .I .\"O as follows: -\fIgroup\fP ¹½Â¤ÂÎ¤Ï +\fIgroup\fP 構造体は .I -¤Ë¤ª¤¤¤Æ°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +において以下のように定義されている: .sp .in +4n .nf @@ -102,26 +102,26 @@ struct group { .\"O char *gr_passwd; /* group password */ .\"O gid_t gr_gid; /* group ID */ .\"O char **gr_mem; /* group members */ - char *gr_name; /* ¥°¥ë¡¼¥×̾ */ - char *gr_passwd; /* ¥°¥ë¡¼¥×¥Ñ¥¹¥ï¡¼¥É */ - gid_t gr_gid; /* ¥°¥ë¡¼¥× ID */ - char **gr_mem; /* ¥°¥ë¡¼¥×¥á¥ó¥Ð */ + char *gr_name; /* グループ名 */ + char *gr_passwd; /* グループパスワード */ + gid_t gr_gid; /* グループ ID */ + char **gr_mem; /* グループメンバ */ }; .fi .in .PP .\"O For more information about the fields of this structure, see .\"O .BR group (5). -¤³¤Î¹½Â¤ÂΤΥե£¡¼¥ë¥É¤Î¾ÜºÙ¤Ï +この構造体のフィールドの詳細は .BR group (5) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The nonreentrant functions return a pointer to static storage, .\"O where this static storage contains further pointers to group .\"O name, password and members. -¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤Ê¤¤´Ø¿ô¤ÏÀÅŪ¤Ê³ÊǼÎΰè¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤ÎÀÅŪ¤Ê³ÊǼÎΰè¤Ë¤Ï¡¢¹¹¤Ë¥°¥ë¡¼¥×̾¡¦¥Ñ¥¹¥ï¡¼¥É¡¦ -¥á¥ó¥Ð¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬´Þ¤Þ¤ì¤ë¡£ +リエントラントでない関数は静的な格納領域へのポインタを返す。 +この静的な格納領域には、更にグループ名・パスワード・ +メンバへのポインタが含まれる。 .\"O The reentrant functions described here return all of that in .\"O caller-provided buffers. .\"O First of all there is the buffer @@ -132,63 +132,63 @@ struct group { .\"O of size .\"O .I buflen .\"O that can hold additional strings. -¤³¤³¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¥ê¥¨¥ó¥È¥é¥ó¥È¤Ê´Ø¿ô¤Ï¡¢ -¸Æ¤Ó½Ð¤·Â¦¤«¤éÄ󶡤µ¤ì¤ë¥Ð¥Ã¥Õ¥¡¤Ë¥°¥ë¡¼¥×̾¤Ê¤ÉÁ´¤Æ¤òÊÖ¤¹¡£ -ºÇ½é¤Î°ú¤­¿ô¤È¤·¤Æ \fIstruct group\fP ¤òÊÝ»ý¤Ç¤­¤ë¥Ð¥Ã¥Õ¥¡ +ここで説明されているリエントラントな関数は、 +呼び出し側から提供されるバッファにグループ名など全てを返す。 +最初の引き数として \fIstruct group\fP を保持できるバッファ .I gbuf -¤¬¤¢¤ë¡£ -¼¡¤Ë¤½¤Î¾¤Îʸ»úÎó¤òÊÝ»ý¤Ç¤­¤ë¥µ¥¤¥º +がある。 +次にその他の文字列を保持できるサイズ .I buflen -¤Î¥Ð¥Ã¥Õ¥¡ +のバッファ .I buf -¤¬¤¢¤ë¡£ +がある。 .\"O The result of these functions, the \fIstruct group\fP read from the stream, .\"O is stored in the provided buffer .\"O .IR *gbuf , .\"O and a pointer to this \fIstruct group\fP is returned in .\"O .IR *gbufp . -¤³¤ì¤é¤Î´Ø¿ô¤Î·ë²Ì (¥¹¥È¥ê¡¼¥à¤«¤éÆɤ߹þ¤Þ¤ì¤¿ \fIstruct group\fP) ¤Ï¡¢ -Ä󶡤µ¤ì¤¿¥Ð¥Ã¥Õ¥¡ +これらの関数の結果 (ストリームから読み込まれた \fIstruct group\fP) は、 +提供されたバッファ .IR *gbuf -¤Ë³ÊǼ¤µ¤ì¡¢¤³¤Î \fIstruct group\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ï +に格納され、この \fIstruct group\fP へのポインタは .IR *gbufp -¤ËÊÖ¤µ¤ì¤ë¡£ +に返される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return 0 and .\"O .RI * gbufp .\"O is a pointer to the \fIstruct group\fP. -À®¸ù¤·¤¿¾ì¹ç¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï 0 ¤òÊÖ¤·¡¢ +成功した場合、これらの関数は 0 を返し、 .RI * gbufp -¤Ï \fIstruct group\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¤È¤Ê¤ë¡£ +は \fIstruct group\fP へのポインタとなる。 .\"O On error, these functions return an error value and .\"O .RI * gbufp .\"O is NULL. -¥¨¥é¡¼¤Î¾ì¹ç¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï¥¨¥é¡¼ÃͤòÊÖ¤·¡¢ +エラーの場合、これらの関数はエラー値を返し、 .RI * gbufp -¤Ï NULL ¤Ë¤Ê¤ë¡£ +は NULL になる。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B ENOENT .\"O No more entries. -¼¡¤Î¥¨¥ó¥È¥ê¤¬¤Ê¤¤¡£ +次のエントリがない。 .TP .B ERANGE .\"O Insufficient buffer space supplied. .\"O Try again with larger buffer. -½½Ê¬¤Ê¥Ð¥Ã¥Õ¥¡¶õ´Ö¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤¡£ -¤â¤Ã¤ÈÂ礭¤Ê¥Ð¥Ã¥Õ¥¡¤ÇºÆÅټ¹Ԥ¹¤ë¤³¤È¡£ +十分なバッファ空間が与えられていない。 +もっと大きなバッファで再度実行すること。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These functions are GNU extensions, done in a style resembling .\"O the POSIX version of functions like .\"O .BR getpwnam_r (3). -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ê¡¢POSIX ÈǤδؿô +これらの関数は GNU 拡張であり、POSIX 版の関数 .BR getpwnam_r (3) -¤Î·Á¼°¤Ë»÷¤»¤Æ¤¢¤ë¡£ +の形式に似せてある。 .\"O Other systems use prototype -¾¤Î¥·¥¹¥Æ¥à¤Ç¤Ï°Ê²¼¤Î¥×¥í¥È¥¿¥¤¥×¤¬»È¤ï¤ì¤Æ¤¤¤ë¡£ +他のシステムでは以下のプロトタイプが使われている。 .sp .nf .in +4n @@ -198,7 +198,7 @@ struct group *getgrent_r(struct group *grp, char *buf, .fi .sp .\"O or, better, -¤è¤êÎɤ¤¤â¤Î¤Ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +より良いものでは、以下のようになっている。 .sp .nf .in +4n @@ -207,18 +207,18 @@ int getgrent_r(struct group *grp, char *buf, int buflen, .in .fi .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The function .\"O .BR getgrent_r () .\"O is not really reentrant since it shares the reading position .\"O in the stream with all other threads. -´Ø¿ô +関数 .BR getgrent_r () -¤ÏËÜÅö¤Î¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤Ï¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¡¢¥¹¥È¥ê¡¼¥à¤ÎÆɤ߹þ¤ß°ÌÃÖ¤ò -¾¤ÎÁ´¤Æ¤Î¥¹¥ì¥Ã¥É¤È¶¦Í­¤·¤Æ¤¤¤ë¤¿¤á¤Ç¤¢¤ë¡£ +は本当のリエントラントではない。 +なぜなら、ストリームの読み込み位置を +他の全てのスレッドと共有しているためである。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .nf #define _GNU_SOURCE #include @@ -251,7 +251,7 @@ main(void) } .fi .\"O .\" perhaps add error checking - should use strerror_r -.\" ¤¿¤Ö¤ó¥¨¥é¡¼¥Á¥§¥Ã¥¯¤òÄɲ䷤ơ¢strerror_r ¤ò»È¤¦¤Ù¤­¤À¤í¤¦¡£ +.\" たぶんエラーチェックを追加して、strerror_r を使うべきだろう。 .\" #include .\" #include .\" if (i) { @@ -261,7 +261,7 @@ main(void) .\" exit(EXIT_FAILURE); .\" } .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fgetgrent (3), .BR getgrent (3), .BR getgrgid (3), diff --git a/draft/man3/getgrnam.3 b/draft/man3/getgrnam.3 index baf79b4a..5372b82c 100644 --- a/draft/man3/getgrnam.3 +++ b/draft/man3/getgrnam.3 @@ -39,11 +39,11 @@ .\" .TH GETGRNAM 3 2009-03-30 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getgrnam, getgrnam_r, getgrgid, getgrgid_r \- get group file entry -getgrnam, getgrnam_r, getgrgid, getgrgid_r \- ¥°¥ë¡¼¥×¥Õ¥¡¥¤¥ë¥¨¥ó¥È¥ê¤Î¼è¤ê½Ð¤· +getgrnam, getgrnam_r, getgrgid, getgrgid_r \- グループファイルエントリの取り出し .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -64,9 +64,9 @@ getgrnam, getgrnam_r, getgrgid, getgrgid_r \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .ad l .in .sp @@ -78,7 +78,7 @@ _SVID_SOURCE || _POSIX_SOURCE .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR getgrnam () .\"O function returns a pointer to a structure containing @@ -89,14 +89,14 @@ _SVID_SOURCE || _POSIX_SOURCE .\"O that matches the group name .\"O .IR name . .BR getgrnam () -´Ø¿ô¤Ï¡¢¥°¥ë¡¼¥×̾ +関数は、グループ名 .I name -¤Ë¥Þ¥Ã¥Á¤¹¤ë¥°¥ë¡¼¥×¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥¨¥ó¥È¥ê¤ò -Í×ÁÇËè¤Ëʬ²ò¤·¡¢³ÆÍ×ÁǤò³ÊǼ¤·¤¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹ -(¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÎã: -¥í¡¼¥«¥ë¤Î¥°¥ë¡¼¥×¥Õ¥¡¥¤¥ë +にマッチするグループ・データベースのエントリを +要素毎に分解し、各要素を格納した構造体へのポインタを返す +(パスワード・データベースの例: +ローカルのグループファイル .IR /etc/group , -NIS, LDAP)¡£ +NIS, LDAP)。 .PP .\"O The .\"O .BR getgrgid () @@ -105,10 +105,10 @@ NIS, LDAP) .\"O that matches the group ID .\"O .IR gid . .BR getgrgid () -´Ø¿ô¤Ï¡¢¥°¥ë¡¼¥× ID +関数は、グループ ID .I uid -¤Ë¥Þ¥Ã¥Á¤¹¤ë¥°¥ë¡¼¥×¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥¨¥ó¥È¥ê¤ò -Í×ÁÇËè¤Ëʬ²ò¤·¡¢³ÆÍ×ÁǤò³ÊǼ¤·¤¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ +にマッチするグループ・データベースのエントリを +要素毎に分解し、各要素を格納した構造体へのポインタを返す。 .PP .\"O The .\"O .BR getgrnam_r () @@ -120,14 +120,14 @@ NIS, LDAP) .\"O in the space pointed to by .\"O .IR grp . .BR getgrnam_r () -¤È +と .BR getgrgid_r () -´Ø¿ô¤Ï (¾åµ­¤Î´Ø¿ô¤È) Ʊ¤¸¾ðÊó¤ò¼èÆÀ¤¹¤ë¤¬¡¢ -¼èÆÀ¤·¤¿ +関数は (上記の関数と) 同じ情報を取得するが、 +取得した .I group -¹½Â¤ÂΤò +構造体を .I grp -¤¬»Ø¤¹Îΰè¤Ë³ÊǼ¤¹¤ë¡£ +が指す領域に格納する。 .\"O This .\"O .I group .\"O structure contains pointers to strings, and these strings @@ -135,26 +135,26 @@ NIS, LDAP) .\"O .I buf .\"O of size .\"O .IR buflen . -¤³¤Î +この .I group -¹½Â¤ÂΤˤÏʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬´Þ¤Þ¤ì¡¢ -¤³¤ì¤é¤Îʸ»úÎó¤Ï¥µ¥¤¥º +構造体には文字列へのポインタが含まれ、 +これらの文字列はサイズ .I buflen -¤Î¥Ð¥Ã¥Õ¥¡ +のバッファ .I buf -¤Ë³ÊǼ¤µ¤ì¤ë¡£ +に格納される。 .\"O A pointer to the result (in case of success) or NULL (in case no entry .\"O was found or an error occurred) is stored in .\"O .IR *result . -À®¸ù¤·¤¿¾ì¹ç +成功した場合 .I *gbufp -¤Ë¤Ï·ë²Ì¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬³ÊǼ¤µ¤ì¤ë¡£ -¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤ä¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¤Ï +には結果へのポインタが格納される。 +エントリが見つからなかった場合やエラーが発生した場合には .I *result -¤Ë¤Ï NULL ¤¬Æþ¤ë¡£ +には NULL が入る。 .PP .\"O The \fIgroup\fP structure is defined in \fI\fP as follows: -\fIgroup\fP ¹½Â¤ÂΤϡ¢\fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +\fIgroup\fP 構造体は、\fI\fP で以下のように定義されている: .sp .in +4n .nf @@ -163,10 +163,10 @@ struct group { .\"O char *gr_passwd; /* group password */ .\"O gid_t gr_gid; /* group ID */ .\"O char **gr_mem; /* group members */ - char *gr_name; /* ¥°¥ë¡¼¥×̾ */ - char *gr_passwd; /* ¥°¥ë¡¼¥×¤Î¥Ð¥¹¥ï¡¼¥É */ - gid_t gr_gid; /* ¥°¥ë¡¼¥× ID */ - char **gr_mem; /* ¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð */ + char *gr_name; /* グループ名 */ + char *gr_passwd; /* グループのバスワード */ + gid_t gr_gid; /* グループ ID */ + char **gr_mem; /* グループのメンバ */ }; .fi .in @@ -178,13 +178,13 @@ struct group { .\"O with the argument .\"O .BR _SC_GETGR_R_SIZE_MAX . .I buf -¤ËºÇÂçɬÍפʥµ¥¤¥º¤Ï¡¢ +に最大必要なサイズは、 .BR sysconf (3) -¤Ë°ú¤­¿ô +に引き数 .B _SC_GETGR_R_SIZE_MAX -¤ò»ØÄꤷ¤Æ¼Â¹Ô¤¹¤ë¤³¤È¤Çʬ¤«¤ë¡£ +を指定して実行することで分かる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR getgrnam () .\"O and @@ -194,26 +194,26 @@ struct group { .\"O structure, or NULL if the matching entry .\"O is not found or an error occurs. .BR getgrnam () -¤È +と .BR getgrgid () -´Ø¿ô¤Ï¡¢ +関数は、 .I group -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¥Þ¥Ã¥Á¤¹¤ë¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤ä¡¢ -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +構造体へのポインタを返す。 +マッチするエントリが見つからなかった場合や、 +エラーが発生した場合は NULL を返す。 .\"O If an error occurs, .\"O .I errno .\"O is set appropriately. .\"O If one wants to check .\"O .I errno .\"O after the call, it should be set to zero before the call. -¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢ +エラーが起こった場合、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -¸Æ¤Ó½Ð¤·¤Î¸å¤Ç +が適切に設定される。 +呼び出しの後で .I errno -¤ò¥Á¥§¥Ã¥¯¤·¤¿¤¤¾ì¹ç¤Ï¡¢ -¸Æ¤Ó½Ð¤·¤ÎÁ°¤Ë (¤³¤ÎÃͤò) 0 ¤ËÀßÄꤷ¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£ +をチェックしたい場合は、 +呼び出しの前に (この値を) 0 に設定しておくべきである。 .LP .\"O The return value may point to a static area, and may be overwritten .\"O by subsequent calls to @@ -223,14 +223,14 @@ struct group { .\"O .BR getgrnam (). .\"O (Do not pass the returned pointer to .\"O .BR free (3).) -ÊÖ¤êÃͤÏÀÅŪ¤ÊÎΰè¤ò»Ø¤·¤Æ¤ª¤ê¡¢¤½¤Î¸å¤Î +返り値は静的な領域を指しており、その後の .BR getgrent (3), .BR getgrgid (), .BR getgrnam () -¤Î¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -(ÊÖ¤µ¤ì¤¿¥Ý¥¤¥ó¥¿¤ò +の呼び出しで上書きされるかもしれない。 +(返されたポインタを .BR free (3) -¤ËÅϤµ¤Ê¤¤¤³¤È¡£) +に渡さないこと。) .LP .\"O On success, .\"O .BR getgrnam_r () @@ -245,58 +245,58 @@ struct group { .\"O .IR *result . .\"O In case of error, an error number is returned, and NULL is stored in .\"O .IR *result . -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR getgrnam_r () -¤È +と .BR getgrgid_r () -¤Ï 0 ¤òÊÖ¤·¡¢ +は 0 を返し、 .I *result -¤Ë +に .I grp -¤òÀßÄꤹ¤ë¡£ -¥Þ¥Ã¥Á¤¹¤ë¥°¥ë¡¼¥×¡¦¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ -0 ¤òÊÖ¤·¡¢ +を設定する。 +マッチするグループ・エントリが見つからなかった場合には、 +0 を返し、 .I *result -¤Ë NULL ¤òÀßÄꤹ¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢¥¨¥é¡¼ÈÖ¹æ¤òÊÖ¤·¡¢ +に NULL を設定する。 +エラーの場合、エラー番号を返し、 .I *result -¤Ë NULL ¤òÀßÄꤹ¤ë¡£ +に NULL を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .\"O .BR 0 " or " ENOENT " or " ESRCH " or " EBADF " or " EPERM " or ... " -.BR 0 " ¤Þ¤¿¤Ï " ENOENT " ¤Þ¤¿¤Ï " ESRCH " ¤Þ¤¿¤Ï " EBADF " ¤Þ¤¿¤Ï " EPERM " ¤Þ¤¿¤Ï ... " +.BR 0 " または " ENOENT " または " ESRCH " または " EBADF " または " EPERM " または ... " .\"O The given .\"O .I name .\"O or .\"O .I gid .\"O was not found. -»ØÄꤵ¤ì¤¿ +指定された .I name -¤Þ¤¿¤Ï +または .I gid -¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£ +が見つからなかった。 .TP .B EINTR .\"O A signal was caught. -¥·¥°¥Ê¥ë¤¬¥­¥ã¥Ã¥Á¤µ¤ì¤¿¡£ +シグナルがキャッチされた。 .TP .B EIO .\"O I/O error. -I/O ¥¨¥é¡¼¡£ +I/O エラー。 .TP .B EMFILE .\"O The maximum number .\"O .RB ( OPEN_MAX ) .\"O of files was open already in the calling process. -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ë¤ª¤¤¤Æ¡¢ -´û¤ËºÇÂç¿ô +呼び出したプロセスにおいて、 +既に最大数 .RB ( OPEN_MAX ) -¤Î¥Õ¥¡¥¤¥ë¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¡£ +のファイルがオープンされている。 .TP .B ENFILE .\"O The maximum number of files was open already in the system. -¥·¥¹¥Æ¥à¾å¤Ç´û¤ËºÇÂç¿ô¤Î¥Õ¥¡¥¤¥ë¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¡£ +システム上で既に最大数のファイルがオープンされている。 .TP .B ENOMEM .\"O .\" not in POSIX @@ -304,27 +304,27 @@ I/O .\"O .I group .\"O structure. .\"O .\" to allocate the group structure, or to allocate buffers -.\" POSIX ¤Ë¤Ï¤Ê¤¤ +.\" POSIX にはない .I group -¹½Â¤ÂΤò³ä¤êÅö¤Æ¤ë¤¿¤á¤Î¥á¥â¥ê¤¬ÉÔ½½Ê¬¡£ -.\" ¥°¥ë¡¼¥×¾ðÊó¹½Â¤ÂΤò³ä¤êÅö¤Æ¤ë¤¿¤á¡¢¤Þ¤¿¤Ï¥Ð¥Ã¥Õ¥¡¤ò³ä¤êÅö¤Æ¤ë¤¿¤á¤Î +構造体を割り当てるためのメモリが不十分。 +.\" グループ情報構造体を割り当てるため、またはバッファを割り当てるための .TP .B ERANGE .\"O Insufficient buffer space supplied. -Í¿¤¨¤é¤ì¤¿¥Ð¥Ã¥Õ¥¡¶õ´Ö¤¬ÉÔ½½Ê¬¤Ç¤¢¤ë¡£ +与えられたバッファ空間が不十分である。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .TP .I /etc/group .\"O local group database file -¥í¡¼¥«¥ë¤Î¥°¥ë¡¼¥×¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë +ローカルのグループ・データベースファイル .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The formulation given above under "RETURN VALUE" is from POSIX.1-2001. -¾åµ­¤Î¡ÖÊÖ¤êÃ͡װʲ¼¤Îµ­½Ò¤Ï POSIX.1-2001 ¤Ëµò¤ë¡£ +上記の「返り値」以下の記述は POSIX.1-2001 に拠る。 .\"O It does not call "not found" an error, hence does not specify what value .\"O .I errno .\"O might have in this situation. @@ -336,17 +336,17 @@ SVr4, 4.3BSD, POSIX.1-2001. .\"O Experiments on various .\"O UNIX-like systems shows that lots of different values occur in this .\"O situation: 0, ENOENT, EBADF, ESRCH, EWOULDBLOCK, EPERM and probably others. -¤³¤Îɸ½à¤Ï¡Ö(¥¨¥ó¥È¥ê¤¬) ¸«¤Ä¤«¤é¤Ê¤¤¤³¤È¡×¤ò¥¨¥é¡¼¤È¤·¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢ -¤½¤Î¤è¤¦¤Ê¾ì¹ç¤Ë +この標準は「(エントリが) 見つからないこと」をエラーとしていないので、 +そのような場合に .I errno -¤¬¤É¤Î¤è¤¦¤ÊÃͤˤʤ뤫¤òÄê¤á¤Æ¤¤¤Ê¤¤¡£ -¤½¤Î¤¿¤á¡¢¥¨¥é¡¼¤òǧ¼±¤¹¤ë¤³¤È¤ÏÉÔ²Äǽ¤Ç¤¢¤ë¡£ -POSIX ¤Ë½àµò¤·¤Æ¡¢¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï +がどのような値になるかを定めていない。 +そのため、エラーを認識することは不可能である。 +POSIX に準拠して、エントリが見つからない場合は .I errno -¤òÊѹ¹¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡¢¤È¼çÄ¥¤¹¤ë¿Í¤â¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -ÍÍ¡¹¤Ê UNIX ·Ï¤Î¥·¥¹¥Æ¥à¤Ç»î¤·¤Æ¤ß¤ë¤È¡¢¤½¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï -0, ENOENT, EBADF, ESRCH, EWOULDBLOCK, EPERM ¤È¤¤¤Ã¤¿ÍÍ¡¹¤ÊÃͤ¬ÊÖ¤µ¤ì¤ë¡£ -¾¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +を変更しないようにすべきである、と主張する人もいるかもしれない。 +様々な UNIX 系のシステムで試してみると、そのような場合には +0, ENOENT, EBADF, ESRCH, EWOULDBLOCK, EPERM といった様々な値が返される。 +他の値が返されるかもしれない。 .\"O .\" more precisely: .\"O .\" AIX 5.1 - gives ESRCH .\"O .\" OSF1 4.0g - gives EWOULDBLOCK @@ -355,16 +355,16 @@ POSIX .\"O .\" FreeBSD 4.8, OpenBSD 3.2, NetBSD 1.6 - give EPERM .\"O .\" SunOS 5.8 - gives EBADF .\"O .\" Tru64 5.1b, HP-UX-11i, SunOS 5.7 - give 0 -.\" ¤è¤êÀµ³Î¤Ë¤Ï: -.\" AIX 5.1 ¤Ï ESRCH ¤òÊÖ¤¹¡£ -.\" OSF1 4.0g ¤Ï EWOULDBLOCK ¤òÊÖ¤¹¡£ -.\" libc, glibc (¥Ð¡¼¥¸¥ç¥ó 2.6 ¤Þ¤Ç), Irix 6.5 ¤Ï ENOENT ¤òÊÖ¤¹¡£ -.\" glibc (¥Ð¡¼¥¸¥ç¥ó 2.7 °Ê¹ß) ¤Ï 0 ¤òÊÖ¤¹¡£ -.\" FreeBSD 4.8, OpenBSD 3.2, NetBSD 1.6 ¤Ï EPERM ¤òÊÖ¤¹¡£ -.\" SunOS 5.8 ¤Ï EBADF ¤òÊÖ¤¹¡£ -.\" Tru64 5.1b, HP-UX-11i, SunOS 5.7 ¤Ï 0 ¤òÊÖ¤¹¡£ +.\" より正確には: +.\" AIX 5.1 は ESRCH を返す。 +.\" OSF1 4.0g は EWOULDBLOCK を返す。 +.\" libc, glibc (バージョン 2.6 まで), Irix 6.5 は ENOENT を返す。 +.\" glibc (バージョン 2.7 以降) は 0 を返す。 +.\" FreeBSD 4.8, OpenBSD 3.2, NetBSD 1.6 は EPERM を返す。 +.\" SunOS 5.8 は EBADF を返す。 +.\" Tru64 5.1b, HP-UX-11i, SunOS 5.7 は 0 を返す。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR endgrent (3), .BR fgetgrent (3), .BR getgrent (3), diff --git a/draft/man3/getgrouplist.3 b/draft/man3/getgrouplist.3 index 1196e6e6..6ec9f39b 100644 --- a/draft/man3/getgrouplist.3 +++ b/draft/man3/getgrouplist.3 @@ -31,11 +31,11 @@ .\" .TH GETGROUPLIST 3 2009-07-03 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getgrouplist \- get list of groups to which a user belongs -getgrouplist \- ¥æ¡¼¥¶¤¬½ê°¤¹¤ë¥°¥ë¡¼¥×¤Î¥ê¥¹¥È¤ò¼èÆÀ¤¹¤ë +getgrouplist \- ユーザが所属するグループのリストを取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int getgrouplist(const char *" user ", gid_t " group , @@ -45,15 +45,15 @@ getgrouplist \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR getgrouplist (): _BSD_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR getgrouplist () .\"O function scans the group database (see @@ -66,16 +66,16 @@ _BSD_SOURCE .\"O of these groups are returned in the array .\"O .IR groups . .BR getgrouplist () -´Ø¿ô¤Ï¡¢¥°¥ë¡¼¥×¥Ç¡¼¥¿¥Ù¡¼¥¹ +関数は、グループデータベース .RB ( group (5) -»²¾È) ¤òÄ´¤Ù¤Æ¡¢ +参照) を調べて、 .I user -¤¬½ê°¤¹¤ë¥°¥ë¡¼¥×¤Î¥ê¥¹¥È¤ò¼èÆÀ¤¹¤ë¡£ -¸«¤Ä¤«¤Ã¤¿¥°¥ë¡¼¥×¤Î¤¦¤ÁºÇÂç +が所属するグループのリストを取得する。 +見つかったグループのうち最大 .I *ngroups -¸Ä¤Î¥°¥ë¡¼¥×¤¬¡¢ÇÛÎó +個のグループが、配列 .I groups -¤Ë³ÊǼ¤µ¤ì¤ÆÊÖ¤µ¤ì¤ë¡£ +に格納されて返される。 .\"O If it was not among the groups defined for .\"O .I user @@ -86,18 +86,18 @@ _BSD_SOURCE .\"O typically this argument is specified as the group ID from .\"O the password record for .\"O .IR user . -°ú¤­¿ô +引き数 .I group -¤¬¥°¥ë¡¼¥×¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë +がグループデータベースに .I user -¤¬½ê°¤¹¤ë¥°¥ë¡¼¥×¤¬¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ +が所属するグループがなかった場合、 .BR getgrouplist () -¤¬ÊÖ¤¹¥°¥ë¡¼¥×¤Î¥ê¥¹¥È¤Ë°ú¤­¿ô +が返すグループのリストに引き数 .I group -¤âÄɲ䵤ì¤ë¡£ -Ä̾ï¤Ï¡¢¤³¤Î°ú¤­¿ô¤Ë¤Ï¥æ¡¼¥¶ +も追加される。 +通常は、この引き数にはユーザ .I user -¤Î¥Ñ¥¹¥ï¡¼¥É¥ì¥³¡¼¥É¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¥°¥ë¡¼¥× ID ¤ò»ØÄꤹ¤ë¡£ +のパスワードレコードに書かれているグループ ID を指定する。 .\"O The .\"O .I ngroups @@ -108,19 +108,19 @@ _BSD_SOURCE .\"O .IR group ; .\"O this value may be greater than the number of groups stored in .\"O .IR groups . -°ú¤­¿ô +引き数 .I ngroups -¤Ï¡¢ÃÍÅϤ·¤È·ë²Ì¤ÎξÊý¤Ë»ÈÍѤµ¤ì¤ë°ú¤­¿ô (value-result argument) ¤Ç¤¢¤ê¡¢ -¥ê¥¿¡¼¥ó»þ¤Ë¤Ï¡¢¾ï¤Ë +は、値渡しと結果の両方に使用される引き数 (value-result argument) であり、 +リターン時には、常に .I group -¤â´Þ¤á¤¿ +も含めた .I user -¤¬½ê°¤¹¤ë¥°¥ë¡¼¥×¿ô¤¬³ÊǼ¤µ¤ì¤ë¡£ -¤³¤ÎÃÍ¤Ï +が所属するグループ数が格納される。 +この値は .I groups -¤Ë³ÊǼ¤µ¤ì¤¿¥°¥ë¡¼¥×¿ô¤è¤êÂ礭¤¯¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +に格納されたグループ数より大きくなる可能性がある。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O If the number of groups of which .\"O .I user .\"O is a member is less than or equal to @@ -129,41 +129,41 @@ _BSD_SOURCE .\"O .I *ngroups .\"O is returned. .I user -¤¬½ê°¤·¤Æ¤¤¤ë¥°¥ë¡¼¥×¿ô¤¬ +が所属しているグループ数が .I *ngroups -°Ê²¼¤Î¾ì¹ç¡¢ +以下の場合、 .I *ngroups -¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¡£ +の値が返される。 .\"O If the user is a member of more than .\"O .I *ngroups .\"O groups, then .\"O .BR getgrouplist () .\"O returns \-1. -»ØÄꤵ¤ì¤¿¥æ¡¼¥¶¤¬ +指定されたユーザが .I *ngroups -¤è¤ê¿¤¯¤Î¥°¥ë¡¼¥×¤Ë½ê°¤·¤Æ¤¤¤ë¾ì¹ç¡¢ +より多くのグループに所属している場合、 .BR getgrouplist () -¤Ï \-1 ¤òÊÖ¤¹¡£ +は \-1 を返す。 .\"O In this case the value returned in .\"O .IR *ngroups .\"O can be used to resize the buffer passed to a further call .\"O .BR getgrouplist (). -¤³¤Î¾ì¹ç¡¢ +この場合、 .I *ngroups -¤ÇÊÖ¤µ¤ì¤ëÃͤò»È¤Ã¤Æ¡¢¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤òÊѹ¹¤·¤Æ¤«¤é¡¢ +で返される値を使って、バッファのサイズを変更してから、 .BR getgrouplist () -¤ò¤â¤¦°ìÅٸƤӽФ¹¤³¤È¤¬¤Ç¤­¤ë¡£ +をもう一度呼び出すことができる。 .\"O .SH "VERSIONS" -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O This function is present since glibc 2.2.4. -¤³¤Î´Ø¿ô¤Ï glibc 2.2.4 ¤«¤é¸ºß¤¹¤ë¡£ +この関数は glibc 2.2.4 から存在する。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This function is nonstandard; it appears on most BSDs. -¤³¤Î´Ø¿ô¤ÏÈóɸ½à¤Ç¤¢¤ë¡£¤Û¤È¤ó¤É¤Î BSD ¤Ë¸ºß¤¹¤ë¡£ +この関数は非標準である。ほとんどの BSD に存在する。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O In glibc versions before 2.3.3, .\"O the implementation of this function contains a buffer-overrun bug: .\"O it returns the complete list of groups for @@ -172,18 +172,18 @@ _BSD_SOURCE .\"O .IR groups , .\"O even when the number of groups exceeds .\"O .IR *ngroups . -¥Ð¡¼¥¸¥ç¥ó 2.3.3 ¤è¤êÁ°¤Î glibc ¤Ç¤Ï¡¢ -¤³¤Î´Ø¿ô¤Î¼ÂÁõ¤Ë¤Ï¥Ð¥Ã¥Õ¥¡¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Î¥Ð¥°¤¬¤¢¤ê¡¢ +バージョン 2.3.3 より前の glibc では、 +この関数の実装にはバッファオーバーフローのバグがあり、 .I user -¤¬½ê°¤¹¤ë¥°¥ë¡¼¥×¿ô¤¬ +が所属するグループ数が .I *ngroups -¤è¤ê¿¤¤¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢ +より多い場合であっても、 .I user -¤¬½ê°¤¹¤ë¥°¥ë¡¼¥×¤ÎÁ´¥ê¥¹¥È¤òÇÛÎó +が所属するグループの全リストを配列 .I groups -¤Ë³ÊǼ¤·¤Æ¤·¤Þ¤¦¡£ +に格納してしまう。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .PP .\"O The program below displays the group list for the user named in its .\"O first command-line argument. @@ -192,14 +192,14 @@ _BSD_SOURCE .\"O value to be supplied to .\"O .BR getgrouplist (). .\"O The following shell session shows examples of the use of this program: -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢°ì¤ÄÌܤΥ³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿Ì¾Á°¤Î¥æ¡¼¥¶ -¤¬½ê°¤¹¤ë¥°¥ë¡¼¥×¤Î¥ê¥¹¥È¤òɽ¼¨¤¹¤ë¡£ -ÆóÈÖÌܤΥ³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ë¤Ï¡¢ +以下のプログラムは、一つ目のコマンドライン引き数で指定された名前のユーザ +が所属するグループのリストを表示する。 +二番目のコマンドライン引き数には、 .BR getgrouplist () -¤ËÅϤ¹ +に渡す .I ngroups -¤ÎÃͤò»ØÄꤹ¤ë¡£ -°Ê²¼¤Î¥·¥§¥ë¤Î¥»¥Ã¥·¥ç¥ó¤Ï¤³¤Î¥×¥í¥°¥é¥à¤Î»ÈÍÑÎã¤ò¼¨¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +の値を指定する。 +以下のシェルのセッションはこのプログラムの使用例を示したものである。 .in +4n .nf @@ -213,7 +213,7 @@ ngroups = 3 .fi .in .\"O .SS Program source -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -273,7 +273,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getgroups (2), .BR setgroups (2), .BR getgrent (3), diff --git a/draft/man3/gethostbyname.3 b/draft/man3/gethostbyname.3 index 6ae1a51f..9075b180 100644 --- a/draft/man3/gethostbyname.3 +++ b/draft/man3/gethostbyname.3 @@ -53,15 +53,15 @@ .\"O gethostbyaddr_r, .\"O gethostbyname2, gethostbyname2_r, gethostbyname_r, .\"O gethostent_r \- get network host entry -.SH ̾Á° +.SH 名前 gethostbyname, gethostbyaddr, sethostent, gethostent, endhostent, h_errno, herror, hstrerror, gethostbyaddr_r, gethostbyname2, gethostbyname2_r, gethostbyname_r, -gethostent_r \- ¥Í¥Ã¥È¥ï¡¼¥¯¾å¤Î¥Û¥¹¥È¤Î¥¨¥ó¥È¥ê¤ò¼èÆÀ¤¹¤ë +gethostent_r \- ネットワーク上のホストのエントリを取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B extern int h_errno; @@ -69,7 +69,7 @@ gethostent_r \- .BI "struct hostent *gethostbyname(const char *" name ); .sp .\"O .BR "#include " " /* for AF_INET */" -.BR "#include " " /* AF_INET ¤ò»È¤¦¾ì¹ç */" +.BR "#include " " /* AF_INET を使う場合 */" .BI "struct hostent *gethostbyaddr(const void *" addr , .BI " socklen_t " len ", int " type ); .sp @@ -82,12 +82,12 @@ gethostent_r \- .BI "const char *hstrerror(int " err ); .sp .\"O /* System V/POSIX extension */ -/* System V/POSIX ³ÈÄ¥ */ +/* System V/POSIX 拡張 */ .br .B struct hostent *gethostent(void); .sp .\"O /* GNU extensions */ -/* GNU ³ÈÄ¥ */ +/* GNU 拡張 */ .br .BI "struct hostent *gethostbyname2(const char *" name ", int " af ); .sp @@ -111,9 +111,9 @@ gethostent_r \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .PD 0 @@ -132,18 +132,18 @@ _BSD_SOURCE || _SVID_SOURCE .RS 4 .TP 4 .\"O Since glibc 2.8: -glibc 2.8 °Ê¹ß: +glibc 2.8 以降: _BSD_SOURCE || _SVID_SOURCE || _GNU_SOURCE .TP .\"O Before glibc 2.8: .\"O none -glibc 2.8 ¤è¤êÁ°: -¤Ê¤· +glibc 2.8 より前: +なし .RE .ad b .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR gethostbyname* () .\"O and @@ -155,14 +155,14 @@ glibc 2.8 .\"O .BR getnameinfo (3) .\"O instead. .BR gethostbyname* () -¤È +と .BR gethostbyaddr* () -¤Ï²áµî¤Î¤â¤Î¤Ç¤¢¤ë¡£ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢Âå¤ï¤ê¤Ë +は過去のものである。 +アプリケーションでは、代わりに .BR getaddrinfo (3) -¤È +と .BR getnameinfo (3) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +を使用すること。 .\"O The .\"O .BR gethostbyname () @@ -177,17 +177,17 @@ glibc 2.8 .\"O or an IPv6 address in colon (and possibly dot) notation. .\"O (See RFC\ 1884 for the description of IPv6 addresses.) .BR gethostbyname () -´Ø¿ô¤ÏÍ¿¤¨¤é¤ì¤¿¥Û¥¹¥È̾ +関数は与えられたホスト名 .I name -¤ËÂбþ¤¹¤ë¹½Â¤ÂÎ +に対応する構造体 .I hostent -¤òÊÖ¤¹¡£ +を返す。 .I name -¤Ë¤Ï¥Û¥¹¥È̾¡¢¥É¥Ã¥È¶èÀÚ¤ê¤Î IPv4 ¥¢¥É¥ì¥¹ +にはホスト名、ドット区切りの IPv4 アドレス .RB ( inet_addr (3) -»²¾È)¡¢¥³¥í¥ó¶èÀÚ¤ê¤Î IPv6 ¥¢¥É¥ì¥¹ (¤ª¤½¤é¤¯¥É¥Ã¥È¶èÀÚ¤ê¤Ç¤âÂç¾æÉ×) -¤Î¤¤¤º¤ì¤«¤ò»ØÄꤹ¤ë -(IPv6 ¥¢¥É¥ì¥¹¤Îµ­½ÒÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï RFC\ 1884 ¤ò»²¹Í¤Ë¤·¤Æ¤Û¤·¤¤)¡£ +参照)、コロン区切りの IPv6 アドレス (おそらくドット区切りでも大丈夫) +のいずれかを指定する +(IPv6 アドレスの記述方法については RFC\ 1884 を参考にしてほしい)。 .\"O If .\"O .I name .\"O is an IPv4 or IPv6 address, no lookup is performed and @@ -204,27 +204,27 @@ glibc 2.8 .\"O .I hostent .\"O structure. .I name -¤¬ IPv4 ¤« IPv6 ¤Î¥¢¥É¥ì¥¹¤À¤Ã¤¿¾ì¹ç¡¢ -̾Á°²ò·è (lookup) ¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£¤½¤Î¾ì¹ç¤Ë¤Ï¡¢ +が IPv4 か IPv6 のアドレスだった場合、 +名前解決 (lookup) は行われない。その場合には、 .BR gethostbyname () -¤Ï +は .I name -¤ò¤½¤Î¤Þ¤Þ +をそのまま .I hostent -¹½Â¤ÂΤΠ+構造体の .I h_name -¥Õ¥£¡¼¥ë¥É¤Ë¥³¥Ô¡¼¤·¡¢ -¤µ¤é¤Ë +フィールドにコピーし、 +さらに .I name -¤ò +を .I struct in_addr -·Á¼°¤Çɽ¤·¤¿¥Ç¡¼¥¿¤ò +形式で表したデータを .I hostent -¹½Â¤ÂΤΠ+構造体の .I h_addr_list[0] -¥Õ¥£¡¼¥ë¥É¤ËÆþ¤ì¤Æ¡¢¤½¤Î +フィールドに入れて、その .I hostent -¹½Â¤ÂΤòÊÖ¤¹¡£ +構造体を返す。 .\"O If .\"O .I name .\"O doesn't end in a dot and the environment variable @@ -237,19 +237,19 @@ glibc 2.8 .\"O .BR hostname (7) .\"O for the file format). .I name -¤¬¥É¥Ã¥È¤Ç½ªÎ»¤·¤Æ¤¤¤Æ¡¢¤«¤Ä´Ä¶­ÊÑ¿ô +がドットで終了していて、かつ環境変数 .B HOSTALIASES -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¤Þ¤º +が設定されている場合、まず .B HOSTALIASES -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥¤¥ê¥¢¥¹¥Õ¥¡¥¤¥ë¤«¤é +で指定されているエイリアスファイルから .I name -¤Î¥¨¥ó¥È¥ê¤¬¸¡º÷¤µ¤ì¤ë (¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¤Ä¤¤¤Æ¤Ï +のエントリが検索される (ファイルのフォーマットについては .BR hostname (7) -¤ò»²¾È¤Î¤³¤È)¡£ +を参照のこと)。 .\"O The current domain and its parents are searched unless \fIname\fP .\"O ends in a dot. .I name -¤¬¥É¥Ã¥È¤Ç½ªÎ»¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¸½ºß¤Î¥É¥á¥¤¥ó¤È¤½¤Î¿Æ¥É¥á¥¤¥ó¤¬¸¡º÷¤µ¤ì¤ë¡£ +がドットで終了していなければ、現在のドメインとその親ドメインが検索される。 .PP .\"O The .\"O .BR gethostbyaddr () @@ -261,30 +261,30 @@ glibc 2.8 .\"O and .\"O .BR AF_INET6 . .BR gethostbyaddr () -´Ø¿ô¤ÏÍ¿¤¨¤é¤ì¤¿¥Û¥¹¥È¥¢¥É¥ì¥¹ +関数は与えられたホストアドレス .I addr -(Ťµ \fIlen\fP¡¢ ¥¿¥¤¥× \fItype\fP) ¤ËÂбþ¤¹¤ë¹½Â¤ÂÎ +(長さ \fIlen\fP、 タイプ \fItype\fP) に対応する構造体 .I hostent -¤òÊÖ¤¹¡£ -ÍѤ¤¤ë¤³¤È¤Î¤Ç¤­¤ë¥¿¥¤¥×¤Ï +を返す。 +用いることのできるタイプは .B AF_INET -¤È +と .B AF_INET6 -¤Ç¤¢¤ë¡£ +である。 .\"O The host address argument is a pointer to a struct of a type depending .\"O on the address type, for example a \fIstruct in_addr *\fP (probably .\"O obtained via a call to .\"O .BR inet_addr (3)) .\"O for address type .\"O .BR AF_INET . -¥Û¥¹¥È¥¢¥É¥ì¥¹°ú¤­¿ô¤Ï¥¢¥É¥ì¥¹¥¿¥¤¥×¤Ë°Í¸¤·¤¿ -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ -Î㤨¤Ð¡¢¥¢¥É¥ì¥¹¥¿¥¤¥× +ホストアドレス引き数はアドレスタイプに依存した +構造体へのポインタである。 +例えば、アドレスタイプ .B AF_INET -¤ËÂФ·¤Æ¤Ï +に対しては .RB ( inet_addr (3) -¤Î¸Æ¤Ó½Ð¤·¤ÇÆÀ¤é¤ì¤ë) -\fIstruct in_addr *\fP ¤Ç¤¢¤ë¡£ +の呼び出しで得られる) +\fIstruct in_addr *\fP である。 .PP .\"O The .\"O .BR sethostent () @@ -293,37 +293,37 @@ glibc 2.8 .\"O that the connection should remain open during successive queries. .\"O Otherwise, name server queries will use UDP datagrams. .BR sethostent () -´Ø¿ô¤Ï¡¢¥Í¡¼¥à¥µ¡¼¥Ð¤Ø¤ÎÀܳ·ÁÂÖ¤ò»ØÄꤹ¤ë¡£ +関数は、ネームサーバへの接続形態を指定する。 .I stayopen -¤¬¿¿ (1) ¤Ê¤é¤Ð¡¢¥Í¡¼¥à¥µ¡¼¥Ð¤Ø¤ÎÌ䤤¹ç¤ï¤»¤Ë¤Ï¡¢ -Àܳ¤µ¤ì¤¿ TCP ¥½¥±¥Ã¥È¤òÍѤ¤¡¢Ï¢Â³¤·¤¿Ì䤤¹ç¤ï¤»¤Î´Ö¤ËÀܳ¤ò°Ý»ý¤¹¤ë¡£ -µ¶¤Ê¤é¤Ð¥Í¡¼¥à¥µ¡¼¥Ð¤Ø¤ÎÌ䤤¹ç¤ï¤»¤Ë UDP ¥Ç¡¼¥¿¥°¥é¥à¤òÍѤ¤¤ë¡£ +が真 (1) ならば、ネームサーバへの問い合わせには、 +接続された TCP ソケットを用い、連続した問い合わせの間に接続を維持する。 +偽ならばネームサーバへの問い合わせに UDP データグラムを用いる。 .PP .\"O The .\"O .BR endhostent () .\"O function ends the use of a TCP connection for name .\"O server queries. .BR endhostent () -´Ø¿ô¤Ï¥Í¡¼¥à¥µ¡¼¥Ð¤Ø¤ÎÌ䤤¹ç¤ï¤»¤ËÍѤ¤¤¿ TCP Àܳ¤ÎÍøÍѤò½ªÎ»¤¹¤ë¡£ +関数はネームサーバへの問い合わせに用いた TCP 接続の利用を終了する。 .PP .\"O The (obsolete) .\"O .BR herror () .\"O function prints the error message associated .\"O with the current value of \fIh_errno\fP on \fIstderr\fP. -(ÇÑ»ßͽÄê¤Î) +(廃止予定の) .BR herror () -´Ø¿ô¤Ï¸½ºß¤Î +関数は現在の .I h_errno -¤ËÂбþ¤¹¤ë¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɸ½à¥¨¥é¡¼ \fIstderr\fP ¤Ë½ÐÎϤ¹¤ë¡£ +に対応するエラーメッセージを標準エラー \fIstderr\fP に出力する。 .PP .\"O The (obsolete) .\"O .BR hstrerror () .\"O function takes an error number .\"O (typically \fIh_errno\fP) and returns the corresponding message string. -(ÇÑ»ßͽÄê¤Î) +(廃止予定の) .BR hstrerror () -´Ø¿ô¤Ï¥¨¥é¡¼ÈÖ¹æ (Ä̾ï¤Ï \fIh_errno\fP) ¤ò°ú¤­¿ô¤Ë¼è¤ê¡¢ -Âбþ¤¹¤ë¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸Ê¸»úÎó¤òÊÖ¤¹¡£ +関数はエラー番号 (通常は \fIh_errno\fP) を引き数に取り、 +対応するエラーメッセージ文字列を返す。 .PP .\"O The domain name queries carried out by .\"O .BR gethostbyname () @@ -342,32 +342,32 @@ glibc 2.8 .\"O followed by .\"O .IR /etc/hosts . .BR gethostbyname () -¤È +と .BR gethostbyaddr () -¤Ë¤è¤Ã¤Æ¼Â¹Ô¤µ¤ì¤ë¥É¥á¥¤¥ó̾¤ÎÌ䤤¹ç¤ï¤»¤Ç¤Ï¡¢¥Í¡¼¥à¥µ¡¼¥Ð -.BR named (8)¡¢ +によって実行されるドメイン名の問い合わせでは、ネームサーバ +.BR named (8)、 .I /etc/hosts -¤Î¥Ç¡¼¥¿¹Ô¡¢¤ª¤è¤Ó -Network Information Service (NIS ¤Þ¤¿¤Ï YP) -¤¬ÁȤ߹ç¤ï¤»¤Æ»ÈÍѤµ¤ì¤ë¡£²¿¤¬»ÈÍѤµ¤ì¤ë¤«¤Ï¡¢ +のデータ行、および +Network Information Service (NIS または YP) +が組み合わせて使用される。何が使用されるかは、 .I /etc/host.conf -¤Î +の .I order -¹Ô¤ÎÆâÍƤˤè¤ê·è¤Þ¤ë¡£ -.\" (¾Ü¤·¤¯¤Ï +行の内容により決まる。 +.\" (詳しくは .\" .BR resolv+ (8) -.\" ¤ò»²¾È)¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤Þ¤º +.\" を参照)。 +デフォルトでは、まず .BR named (8) -¤ËÌ䤤¹ç¤ï¤»¤ò¹Ô¤¤¡¢¼¡¤¤¤Ç +に問い合わせを行い、次いで .I /etc/hosts -¤ò»²¾È¤¹¤ë¡£ +を参照する。 .PP .\"O The \fIhostent\fP structure is defined in \fI\fP as follows: .I hostent -¹½Â¤ÂÎ¤Ï +構造体は .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +で以下のように定義されている: .sp .in +4n .nf @@ -380,21 +380,21 @@ struct hostent { char **h_addr_list; /* list of addresses */ } .\"O #define h_addr h_addr_list[0] /* for backward compatibility */ -#define h_addr h_addr_list[0] /* ²áµî¤È¤Î¸ß´¹À­¤Î¤¿¤á */ +#define h_addr h_addr_list[0] /* 過去との互換性のため */ .fi .in .PP .\"O The members of the \fIhostent\fP structure are: .I hostent -¹½Â¤ÂΤΥá¥ó¥Ð¤Ï°Ê²¼¤ÎÄ̤ꡣ +構造体のメンバは以下の通り。 .TP .I h_name .\"O The official name of the host. -¥Û¥¹¥È¤ÎÀµ¼°Ì¾ (official name)¡£ +ホストの正式名 (official name)。 .TP .I h_aliases .\"O An array of alternative names for the host, terminated by a NULL pointer. -¥Û¥¹¥È¤ÎÊÌ̾¤ÎÇÛÎó¡£ÇÛÎó¤Ï NULL ¥Ý¥¤¥ó¥¿¤Ç½ªÃ¼¤µ¤ì¤ë¡£ +ホストの別名の配列。配列は NULL ポインタで終端される。 .TP .I h_addrtype .\"O The type of address; always @@ -402,29 +402,29 @@ struct hostent { .\"O or .\"O .B AF_INET6 .\"O at present. -¥¢¥É¥ì¥¹¤Î¥¿¥¤¥×¡£¸½ºß¤Ï¤¹¤Ù¤Æ +アドレスのタイプ。現在はすべて .B AF_INET -¤Þ¤¿¤Ï +または .B AF_INET6 -¤Ç¤¢¤ë¡£ +である。 .TP .I h_length .\"O The length of the address in bytes. -¥Ð¥¤¥Èñ°Ì¤Çɽ¤·¤¿¥¢¥É¥ì¥¹¤ÎŤµ¡£ +バイト単位で表したアドレスの長さ。 .TP .I h_addr_list .\"O An array of pointers to network addresses for the host (in network byte .\"O order), terminated by a NULL pointer. -¥Û¥¹¥È¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤Ø¤Î¥Ý¥¤¥ó¥¿¤ÎÇÛÎó¡£ -ÇÛÎó¤Ï NULL ¥Ý¥¤¥ó¥¿¤Ç½ªÃ¼¤µ¤ì¤ë¡£ -¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À·Á¼°¤Ç¤¢¤ë¡£ +ホストのネットワークアドレスへのポインタの配列。 +配列は NULL ポインタで終端される。 +ネットワークアドレスはネットワークバイトオーダ形式である。 .TP .I h_addr .\"O The first address in \fIh_addr_list\fP for backward compatibility. .I h_addr_list -¤ÎºÇ½é¤Î¥¢¥É¥ì¥¹¡£²áµî¤È¤Î¸ß´¹À­¤òÊݤĤ¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ +の最初のアドレス。過去との互換性を保つためのものである。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR gethostbyname () .\"O and @@ -436,56 +436,56 @@ struct hostent { .\"O .I h_errno .\"O variable holds an error number. .BR gethostbyname () -¤ª¤è¤Ó +および .BR gethostbyaddr () -´Ø¿ô¤Ï +関数は .I hostent -¹½Â¤ÂΤòÊÖ¤¹¡£¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¤é NULL ¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£¥¨¥é¡¼¤ÎºÝ¤Ë¤Ï +構造体を返す。エラーが起こったら NULL ポインタを返す。エラーの際には .I h_errno -ÊÑ¿ô¤¬¥¨¥é¡¼¤ÎÈÖ¹æ¤òÊÝ»ý¤¹¤ë¡£ +変数がエラーの番号を保持する。 .\"O When non-NULL, the return value may point at static data, see the notes below. -ÊÖ¤êÃͤ¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ÀÅŪ¥Ç¡¼¥¿¤ò¥Ý¥¤¥ó¥¿¤Ç»Ø¤·¤Æ¤¤¤ë¤³¤È¤â¤¢¤ë¡£ -°Ê²¼¤Î¡ÖÃí°Õ¡×¤ò»²¾È¤¹¤ë¤³¤È¡£ +返り値が NULL でない場合、静的データをポインタで指していることもある。 +以下の「注意」を参照すること。 .\"O .SH "ERRORS" -.SH ¥¨¥é¡¼ +.SH エラー .\"O The variable \fIh_errno\fP can have the following values: .I h_errno -ÊÑ¿ô¤Ï°Ê²¼¤ÎÃͤò¼è¤ê¤¦¤ë¡£ +変数は以下の値を取りうる。 .TP .B HOST_NOT_FOUND .\"O The specified host is unknown. -»ØÄꤷ¤¿¥Û¥¹¥È¤¬¸«¤Ä¤«¤é¤Ê¤¤¡£ +指定したホストが見つからない。 .TP .\"O .B NO_ADDRESS " or " NO_DATA -.B NO_ADDRESS " ¤Þ¤¿¤Ï " NO_DATA +.B NO_ADDRESS " または " NO_DATA .\"O The requested name is valid but does not have an IP address. -»ØÄꤷ¤¿Ì¾Á°¤ÏÍ­¸ú¤À¤¬ IP ¥¢¥É¥ì¥¹¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +指定した名前は有効だが IP アドレスを持っていない。 .TP .B NO_RECOVERY .\"O A nonrecoverable name server error occurred. -¥Í¡¼¥à¥µ¡¼¥Ð¤ÎÉüµìÉÔǽ¤Ê¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£ +ネームサーバの復旧不能なエラーが起こった。 .TP .B TRY_AGAIN .\"O A temporary error occurred on an authoritative name server. .\"O Try again later. -authoritative ¤Ê¥Í¡¼¥à¥µ¡¼¥Ð¤Ç°ì»þŪ¤Ê¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£ -»þ´Ö¤ò¤ª¤¤¤Æ¤â¤¦°ìÅٻ¤³¤È¡£ +authoritative なネームサーバで一時的なエラーが起こった。 +時間をおいてもう一度試すこと。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .TP .I /etc/host.conf .\"O resolver configuration file -̾Á°²ò·è¤ÎÀßÄê¥Õ¥¡¥¤¥ë +名前解決の設定ファイル .TP .I /etc/hosts .\"O host database file -¥Û¥¹¥È¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë +ホストのデータベースファイル .TP .I /etc/nsswitch.conf .\"O name service switch configuration -¥Í¡¼¥à¥µ¡¼¥Ó¥¹ÀÚÂØÀßÄê +ネームサービス切替設定 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O POSIX.1-2001 specifies .\"O .BR gethostbyname (), .\"O .BR gethostbyaddr (), @@ -499,18 +499,18 @@ authoritative .\"O and .\"O .IR h_errno .\"O are marked obsolescent in that standard. -POSIX.1-2001 ¤Ç¤Ï¡¢ +POSIX.1-2001 では、 .BR gethostbyname (), .BR gethostbyaddr (), .BR sethostent (), .BR endhostent (), .BR gethostent (), .I h_errno -¤¬µ¬Äꤵ¤ì¤Æ¤ª¤ê¡¢ +が規定されており、 .BR gethostbyaddr () -¤È +と .BR gethostbyname () -¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¤È¤µ¤ì¤Æ¤¤¤ë¡£ +は廃止予定であるとされている。 .\"O POSIX.1-2008 removes the specifications of .\"O .BR gethostbyname (), .\"O .BR gethostbyaddr (), @@ -521,18 +521,18 @@ POSIX.1-2001 .\"O and .\"O .BR getnameinfo (3) .\"O instead. -POSIX.1-2008 ¤Ç¤Ï +POSIX.1-2008 では .BR gethostbyname (), .BR gethostbyaddr (), .I h_errno -¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ -Âå¤ï¤ê¤Ë¡¢ +の仕様が削除されている。 +代わりに、 .BR getaddrinfo (3) -¤È +と .BR getnameinfo (3) -¤Î»ÈÍѤ¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£ +の使用が推奨されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The functions .\"O .BR gethostbyname () .\"O and @@ -543,13 +543,13 @@ POSIX.1-2008 .\"O .I struct hostent .\"O does not suffice, since it contains pointers; a deep copy is required. .BR gethostbyname () -¤ª¤è¤Ó +および .BR gethostbyaddr () -´Ø¿ô¤ÏÀÅŪ¥Ç¡¼¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤Î¥Ý¥¤¥ó¥¿¤Ï¡¢¤½¤Î¸å¤Î¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +関数は静的データへのポインタを返す。 +このポインタは、その後の呼び出しで上書きされるかもしれない。 .I hostent -¹½Â¤ÂΤϥݥ¤¥ó¥¿¤ò´Þ¤ó¤Ç¤¤¤ë¤Î¤Ç¡¢¹½Â¤ÂΤΥ³¥Ô¡¼¤À¤±¤Ç¤ÏÉÔ½½Ê¬¤Ç¤¢¤ë; -¤è¤ê¿¼¤¤¥³¥Ô¡¼¤¬É¬ÍפǤ¢¤ë¡£ +構造体はポインタを含んでいるので、構造体のコピーだけでは不十分である; +より深いコピーが必要である。 .LP .\"O In the original BSD implementation the .\"O .I len @@ -558,13 +558,13 @@ POSIX.1-2008 .\"O .BR gethostbyname () .\"O was an .\"O .IR int . -¥ª¥ê¥¸¥Ê¥ë¤Î BSD ¤Î¼ÂÁõ¤Ç¤Ï¡¢ +オリジナルの BSD の実装では、 .BR gethostbyname () -¤Î +の .I len -°ú¤­¿ô¤Ï +引き数は .I int -¤Ç¤¢¤Ã¤¿¡£ +であった。 .\"O The SUSv2 standard is buggy and declares the .\"O .I len .\"O argument of @@ -581,23 +581,23 @@ POSIX.1-2008 .\"O which is OK.) .\"O See also .\"O .BR accept (2). -SUSv2 ɸ½à¤Ï¥Ð¥°¤¬Â¿¤¯¡¢ +SUSv2 標準はバグが多く、 .BR gethostbyaddr () -¤Î +の .I len -¥Ñ¥é¥á¡¼¥¿¤ò +パラメータを .I size_t -·¿¤È¤·¤ÆÀë¸À¤·¤Æ¤¤¤ë¡£ -(¤³¤ì¤Ï¸í¤ê¤Ç¡¢ +型として宣言している。 +(これは誤りで、 .I size_t -·¿¤Ç¤Ï¤Ê¤¯ +型ではなく .I int -·¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -POSIX.1-2001 ¤Ç¤Ï¤³¤ì¤ò +型でなければならない。 +POSIX.1-2001 ではこれを .I socklen_t -¤È¤·¤Æ¤¤¤ë¤¬¡¢¤³¤ì¤Ï OK¡£) +としているが、これは OK。) .BR accept (2) -¤â»²¾È¡£ +も参照。 .LP .\"O The BSD prototype for .\"O .BR gethostbyaddr () @@ -605,29 +605,29 @@ POSIX.1-2001 .\"O .I const char * .\"O for the first argument. .BR gethostbyaddr () -¤Î BSD ¤Î¥×¥í¥È¥¿¥¤¥×¤Ï¡¢ºÇ½é¤Î°ú¤­¿ô¤È¤·¤Æ +の BSD のプロトタイプは、最初の引き数として .I const char * -¤ò»È¤¦¡£ +を使う。 .\"O .SS "System V/POSIX Extension" -.SS "System V/POSIX ³ÈÄ¥" +.SS "System V/POSIX 拡張" .\"O POSIX requires the .\"O .BR gethostent () .\"O call, that should return the next entry in the host data base. -POSIX ¤Ç¤Ï¡¢ +POSIX では、 .BR gethostent () -¤¬É¬¿Ü¤È¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¥Û¥¹¥È¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¼¡¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£ +が必須とされている。 +この関数はホストデータベースの次のエントリを返す。 .\"O When using DNS/BIND this does not make much sense, but it may .\"O be reasonable if the host data base is a file that can be read .\"O line by line. .\"O On many systems a routine of this name reads .\"O from the file .\"O .IR /etc/hosts . -DNS/BIND ¤ò»È¤¦¾ì¹ç¤Ï¤¢¤Þ¤ê°ÕÌ£¤ò»ý¤¿¤Ê¤¤¤¬¡¢ -¥Û¥¹¥È¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬ 1 ¹Ô¤º¤ÄÆɤ߹þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¾ì¹ç¤Ï°ÕÌ£¤¬¤¢¤ë¡£ -¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤Î̾Á°¤Î¥ë¡¼¥Á¥ó¤Ï¥Õ¥¡¥¤¥ë +DNS/BIND を使う場合はあまり意味を持たないが、 +ホストデータベースが 1 行ずつ読み込まれるファイルである場合は意味がある。 +多くのシステムでは、この名前のルーチンはファイル .I /etc/hosts -¤òÆɤ߹þ¤à¡£ +を読み込む。 .\"O .\" e.g., Linux, FreeBSD, UnixWare, HP-UX .\"O It may be available only when the library was built without DNS support. .\"O .\" e.g., FreeBSD, AIX @@ -635,27 +635,27 @@ DNS/BIND .\"O This function is not reentrant, .\"O and glibc adds a reentrant version .\"O .BR gethostent_r (). -.\" Î㤨¤Ð¡¢Linux, FreeBSD, UnixWare, HP-UX -DNS ¥µ¥Ý¡¼¥È¤Ê¤·¤Ç¥é¥¤¥Ö¥é¥ê¤¬¥Ó¥ë¥É¤µ¤ì¤¿¾ì¹ç¤Ë¤Î¤ßÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.\" Î㤨¤Ð¡¢FreeBSD, AIX -glibc ÈÇ¤Ï ipv6 ¥¨¥ó¥È¥ê¤ò̵»ë¤¹¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È (reentrant) ¤Ç¤Ï¤Ê¤¯¡¢ -glibc ¤Ë¤Ï¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤΠ+.\" 例えば、Linux, FreeBSD, UnixWare, HP-UX +DNS サポートなしでライブラリがビルドされた場合にのみ利用可能である。 +.\" 例えば、FreeBSD, AIX +glibc 版は ipv6 エントリを無視する。 +この関数はリエントラント (reentrant) ではなく、 +glibc にはリエントラント版の .BR gethostent_r () -¤¬Äɲ䵤줿¡£ +が追加された。 .\"O .SS "GNU Extensions" -.SS "GNU ³ÈÄ¥" +.SS "GNU 拡張" .\"O Glibc2 also has a .\"O .BR gethostbyname2 () .\"O that works like .\"O .BR gethostbyname (), .\"O but permits to specify the address family to which the address must belong. -glibc2 ¤Ë¤Ï +glibc2 には .BR gethostbyname2 () -¤â¤¢¤ê¡¢ +もあり、 .BR gethostbyname () -¤ÈƱ¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¤¬¡¢ -¤³¤Á¤é¤Ï¥¢¥É¥ì¥¹¤¬Â°¤¹¤ë¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +と同じように動作するが、 +こちらはアドレスが属するアドレスファミリーを指定することができる。 .LP .\"O Glibc2 also has reentrant versions .\"O .BR gethostent_r (), @@ -663,13 +663,13 @@ glibc2 .\"O .BR gethostbyname_r () .\"O and .\"O .BR gethostbyname2_r (). -glibc2 ¤Ë¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È¤Ê +glibc2 にはリエントラントな .BR gethostent_r (), .BR gethostbyaddr_r (), .BR gethostbyname_r () -¤È +と .BR gethostbyname2_r () -¤â¤¢¤ë¡£ +もある。 .\"O The caller supplies a .\"O .I hostent .\"O structure @@ -678,15 +678,15 @@ glibc2 .\"O .I buf .\"O of size .\"O .IR buflen . -¸Æ¤Ó½Ð¤·Â¦¤Ï¡¢À®¸ù»þ¤Ë·ë²Ì¤¬³ÊǼ¤µ¤ì¤ë +呼び出し側は、成功時に結果が格納される .I hostent -¹½Â¤ÂÎ +構造体 .I ret -¤È¡¢Â礭¤µ +と、大きさ .I buflen -¤Î°ì»þŪ¤Êºî¶È¥Ð¥Ã¥Õ¥¡ +の一時的な作業バッファ .I buf -¤òÄ󶡤¹¤ë¡£ +を提供する。 .\"O After the call, .\"O .I result .\"O will point to the result on success. @@ -694,12 +694,12 @@ glibc2 .\"O or if no entry is found .\"O .I result .\"O will be NULL. -¥³¡¼¥ë½ªÎ»¸å¡¢À®¸ù¤·¤¿¾ì¹ç +コール終了後、成功した場合 .I result -¤Ï·ë²Ì¤ò»Ø¤·¤Æ¤¤¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢¤Þ¤¿¤Ï¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ +は結果を指している。 +エラーの場合、またはエントリが見つからなかった場合、 .I result -¤Ï NULL ¤Ë¤Ê¤ë¡£ +は NULL になる。 .\"O The functions return 0 on success and a nonzero error number on failure. .\"O In addition to the errors returned by the nonreentrant .\"O versions of these functions, if @@ -707,34 +707,34 @@ glibc2 .\"O is too small, the functions will return .\"O .BR ERANGE , .\"O and the call should be retried with a larger buffer. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç 0 ¤òÊÖ¤·¡¢¼ºÇԤξì¹ç¤Ï 0 °Ê³°¤Î¥¨¥é¡¼ÈÖ¹æ¤òÊÖ¤¹¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Î¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤Ê¤¤¥Ð¡¼¥¸¥ç¥ó¤¬ÊÖ¤¹¥¨¥é¡¼¤Ë²Ã¤¨¤Æ¡¢ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ +これらの関数は、成功した場合 0 を返し、失敗の場合は 0 以外のエラー番号を返す。 +これらの関数のリエントラントでないバージョンが返すエラーに加えて、 +これらの関数は、 .I buf -¤¬¾®¤µ¤¹¤®¤¿¾ì¹ç¤Ë +が小さすぎた場合に .B ERANGE -¤òÊÖ¤¹¡£¤³¤Î¾ì¹ç¤Ï¤â¤Ã¤ÈÂ礭¤Ê¥Ð¥Ã¥Õ¥¡¤òÍÑ°Õ¤·¤Æ -´Ø¿ô¸Æ¤Ó½Ð¤·¤òºÆÅÙ¹Ô¤¦¤Ù¤­¤Ç¤¢¤ë¡£ +を返す。この場合はもっと大きなバッファを用意して +関数呼び出しを再度行うべきである。 .\"O The global variable .\"O .I h_errno .\"O is not modified, but the address of a variable in which to store error numbers .\"O is passed in .\"O .IR h_errnop . -Âç°èÊÑ¿ô +大域変数 .I h_errno -¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¤¬¡¢¥¨¥é¡¼ÈÖ¹æ¤ò³ÊǼ¤¹¤ëÊÑ¿ô¤Î¥¢¥É¥ì¥¹¤¬ +は変更されないが、エラー番号を格納する変数のアドレスが .I h_errnop -¤ËÅϤµ¤ì¤ë¡£ +に渡される。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O .BR gethostbyname () .\"O does not recognize components of a dotted IPv4 address string .\"O that are expressed in hexadecimal. .BR gethostbyname () -¤Ï¡¢16¿Ê¿ôɽ¸½¤Î¥É¥Ã¥È¶èÀÚ¤ê¤Î IPv4 ¥¢¥É¥ì¥¹Ê¸»úÎó¤ÎÍ×ÁǤòǧ¼±¤·¤Ê¤¤¡£ +は、16進数表現のドット区切りの IPv4 アドレス文字列の要素を認識しない。 .\" http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=482973 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getaddrinfo (3), .\" .BR getipnodebyaddr (3), .\" .BR getipnodebyname (3), diff --git a/draft/man3/gethostid.3 b/draft/man3/gethostid.3 index 4c7db826..30968092 100644 --- a/draft/man3/gethostid.3 +++ b/draft/man3/gethostid.3 @@ -38,11 +38,11 @@ .\" .TH GETHOSTID 3 2010-09-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O gethostid, sethostid \- get or set the unique identifier of the current host -gethostid, sethostid \- ¸½ºß¤Î¥Û¥¹¥È¤Î¸ÇÍ­¤Î¼±Ê̻Ҥò¼èÆÀ/ÀßÄꤹ¤ë +gethostid, sethostid \- 現在のホストの固有の識別子を取得/設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .B long gethostid(void); @@ -52,9 +52,9 @@ gethostid, sethostid \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -70,7 +70,7 @@ _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR gethostid () .\"O and .\"O .BR sethostid () @@ -82,61 +82,61 @@ _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) .\"O .BR gethostbyname (3), .\"O and thus usually never needs to be set. .BR gethostid () -¤È +と .BR sethostid () -¤Ï¡¢¤½¤ì¤¾¤ì¡¢¸½ºß»ÈÍѤ·¤Æ¤¤¤ë¥Û¥¹¥È¤Ë¸ÇÍ­¤Î 32 ¥Ó¥Ã¥È¤Î¼±Ê̻ҤΠ-¼èÆÀ/ÀßÄê¤ò¹Ô¤¦¡£ -¤³¤Î 32 ¥Ó¥Ã¥È¤Î¼±Ê̻Ҥϡ¢¸½ºß¸ºß¤·¤Æ¤¤¤ëÁ´¤Æ¤Î UNIX ¥·¥¹¥Æ¥à -¤ÎÃæ¤ÇÍ£°ì¤Ë¤Ê¤ë¤è¤¦¤Ë·è¤á¤é¤ì¤ë¡£Ä̾ï¤Ï +は、それぞれ、現在使用しているホストに固有の 32 ビットの識別子の +取得/設定を行う。 +この 32 ビットの識別子は、現在存在している全ての UNIX システム +の中で唯一になるように決められる。通常は .BR gethostbyname (3) -¤Ë¤è¤êÊÖ¤µ¤ì¤ë¥í¡¼¥«¥ë¥Þ¥·¥ó¤Î Internet ¥¢¥É¥ì¥¹¤¬Âå¤ï¤ê¤Ë»ÈÍѤµ¤ì¡¢ -ÉáÄ̤ϼ±Ê̻Ҥò¤¢¤¨¤ÆÀßÄꤹ¤ëɬÍפϤʤ¤¡£ +により返されるローカルマシンの Internet アドレスが代わりに使用され、 +普通は識別子をあえて設定する必要はない。 .\"O The .\"O .BR sethostid () .\"O call is restricted to the superuser. .BR sethostid () -¤Ï¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤·¤«»ÈÍѤǤ­¤Ê¤¤¡£ +はスーパーユーザしか使用できない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR gethostid () .\"O returns the 32-bit identifier for the current host as set by .\"O .BR sethostid (). .BR gethostid () -¤Ï¡¢ +は、 .BR sethostid () -¤Ë¤è¤Ã¤ÆÀßÄꤵ¤ì¤¿¡¢¸½ºß»ÈÍѤ·¤Æ¤¤¤ë¥Û¥¹¥È¤Î 32 ¥Ó¥Ã¥È¤Î¼±Ê̻ҤÎÃͤòÊÖ¤¹¡£ +によって設定された、現在使用しているホストの 32 ビットの識別子の値を返す。 .\"O On success, .\"O .BR sethostid () .\"O returns 0; on error, \-1 is returned, and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR sethostid () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O .BR sethostid () .\"O can fail with the following errors: .BR sethostid () -¤Ï°Ê²¼¤Î¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +は以下のエラーで失敗する可能性がある。 .TP .B EACCES .\"O The caller did not have permission to write to the file used .\"O to store the host ID. -¸Æ¤Ó½Ð¤·¸µ¤¬¥Û¥¹¥È ID ¤òÊݸ¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ø¤Î -½ñ¤­¹þ¤ßµö²Ä¤ò»ý¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +呼び出し元がホスト ID を保存するのに使用されるファイルへの +書き込み許可を持っていなかった。 .TP .B EPERM .\"O The calling process's effective user or group ID is not the same .\"O as its corresponding real ID. -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú UID/GID ¤¬Âбþ¤¹¤ë¼Â UID/GID ¤ÈƱ¤¸¤Ç¤Ï¤Ê¤¤¡£ +呼び出し元プロセスの実効 UID/GID が対応する実 UID/GID と同じではない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O 4.2BSD; these functions were dropped in 4.4BSD. .\"O SVr4 includes .\"O .BR gethostid () @@ -146,19 +146,19 @@ _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) .\"O .BR gethostid () .\"O but not .\"O .BR sethostid (). -4.2BSD¡£4.4BSD ¤Ç¤Ï¤³¤ì¤é¤Î´Ø¿ô¤Ï¤Ê¤¯¤Ê¤Ã¤¿¡£ -SVr4 ¤Ë¤Ï +4.2BSD。4.4BSD ではこれらの関数はなくなった。 +SVr4 には .BR gethostid () -¤Ï´Þ¤Þ¤ì¤Æ¤¤¤ë¤¬¡¢ +は含まれているが、 .BR sethostid () -¤Ï´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¡£ -POSIX.1-2001 ¤Ç¤Ï¡¢ +は含まれていない。 +POSIX.1-2001 では、 .BR gethostid () -¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤ë¤¬¡¢ +は規定されているが、 .BR sethostid () -¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +は規定されていない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O In the glibc implementation, the .\"O .I hostid .\"O is stored in the file @@ -166,14 +166,14 @@ POSIX.1-2001 .\"O (In glibc versions before 2.2, the file .\"O .I /var/adm/hostid .\"O was used.) -glibc ¤Î¼ÂÁõ¤Ç¤Ï¡¢ +glibc の実装では、 .I hostid -¤Ï¥Õ¥¡¥¤¥ë +はファイル .I /etc/hostid -¤ËÊݸ¤µ¤ì¤ë -(¥Ð¡¼¥¸¥ç¥ó 2.2 ¤è¤êÁ°¤Î glibc ¤Ç¤Ï¡¢ +に保存される +(バージョン 2.2 より前の glibc では、 .I /var/adm/hostid -¤¬»ÈÍѤµ¤ì¤Æ¤¤¤¿)¡£ +が使用されていた)。 .\" libc5 used /etc/hostid; libc4 didn't have these functions .\"O In the glibc implementation, if @@ -186,20 +186,20 @@ glibc .\"O in order to obtain the host's IPv4 address, .\"O and returns a value obtained by bit-twiddling the IPv4 address. .\"O (This value may not be unique.) -glibc ¤Î¼ÂÁõ¤Ç¤Ï¡¢¥Û¥¹¥È ID ¤òÊݸ¤·¤¿¥Õ¥¡¥¤¥ë¤ò -¥ª¡¼¥×¥ó¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ +glibc の実装では、ホスト ID を保存したファイルを +オープンできなかった場合、 .BR gethostid () -¤Ï +は .BR gethostname (2) -¤ò»È¤Ã¤Æ¥Û¥¹¥È̾¤òÆþ¼ê¤·¡¢¤½¤Î¥Û¥¹¥È̾¤ò +を使ってホスト名を入手し、そのホスト名を .BR gethostbyname_r (3) -¤ËÅϤ·¥Û¥¹¥È¤Î IPv4 ¥¢¥É¥ì¥¹¤ò¼èÆÀ¤·¤Æ¡¢ -¤½¤Î IPv4 ¥¢¥É¥ì¥¹¤Î¥Ó¥Ã¥ÈÆþ¤ìÂؤ¨¤ò¹Ô¤Ã¤¿ÃͤòÊÖ¤¹¡£ +に渡しホストの IPv4 アドレスを取得して、 +その IPv4 アドレスのビット入れ替えを行った値を返す。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O It is impossible to ensure that the identifier is globally unique. -¼±Ê̻Ҥ¬À¤³¦Ãæ¤Ç°ì°Õ¤Ç¤¢¤ë¤³¤È¤òÊݾڤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +識別子が世界中で一意であることを保証することはできない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR hostid (1), .BR gethostbyname (3) diff --git a/draft/man3/getipnodebyname.3 b/draft/man3/getipnodebyname.3 index f770919f..322eacb3 100644 --- a/draft/man3/getipnodebyname.3 +++ b/draft/man3/getipnodebyname.3 @@ -26,16 +26,16 @@ .\" Translated Sun Jan 14 2001 by NAKANO Takeo .\" Updated Tue Nov 26 2002 by Kentaro Shirakata .\" -.\"WORD: null pointer ¥Ì¥ë¡¦¥Ý¥¤¥ó¥¿¡¼ +.\"WORD: null pointer ヌル・ポインター .\" .TH GETIPNODEBYNAME 3 2010-09-04 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O getipnodebyname, getipnodebyaddr, freehostent \- get network .\"O hostnames and addresses -.SH ̾Á° -getipnodebyname, getipnodebyaddr, freehostent \- ¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È¤Î̾Á°¤È¥¢¥É¥ì¥¹¤Î¼èÆÀ +.SH 名前 +getipnodebyname, getipnodebyaddr, freehostent \- ネットワークホストの名前とアドレスの取得 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -50,19 +50,19 @@ getipnodebyname, getipnodebyaddr, freehostent \- .BI "void freehostent(struct hostent *" "ip" ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions are deprecated (and unavailable in glibc). .\"O Use .\"O .BR getaddrinfo (3) .\"O and .\"O .BR getnameinfo (3) .\"O instead. -¤³¤ì¤é¤Î´Ø¿ô¤ÏÈó¿ä¾©¤Ç¤¢¤ë (glibc ¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤)¡£ -Âå¤ï¤ê¤Ë +これらの関数は非推奨である (glibc では利用できない)。 +代わりに .BR getaddrinfo (3) -¤È +と .BR getnameinfo (3) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .LP .\"O The .\"O .BR getipnodebyname () @@ -72,10 +72,10 @@ getipnodebyname, getipnodebyaddr, freehostent \- .\"O These functions return a pointer to the .\"O following structure: .BR getipnodebyname () -¤È +と .BR getipnodebyaddr () -¤Ï¡¢¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È¤Î̾Á°¤È¥¢¥É¥ì¥¹¤òÊÖ¤¹¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢°Ê²¼¤Î¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ +は、ネットワークホストの名前とアドレスを返す。 +これらの関数は、以下の構造体へのポインタを返す。 .sp .in +4n .nf @@ -99,15 +99,15 @@ struct hostent { .\"O and .\"O .BR getipnodebyaddr () .\"O functions can access multiple network address families. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ IPv4 ¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¤Ë¤·¤«¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤ +これらの関数は、 IPv4 ネットワークアドレスファミリにしかアクセスできない .BR gethostbyname (3) -¤ä +や .BR gethostbyaddr (3) -¤òÃÖ¤­´¹¤¨¤ë¤â¤Î¤Ç¤¢¤ë¡£ +を置き換えるものである。 .BR getipnodebyname () -´Ø¿ô¤È +関数と .BR getipnodebyaddr () -´Ø¿ô¤ÏÊ£¿ô¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤Ë¥¢¥¯¥»¥¹²Äǽ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +関数は複数のネットワークアドレスファミリーにアクセス可能になっている。 .PP .\"O Unlike the .\"O .B gethostby @@ -119,16 +119,16 @@ struct hostent { .\"O after the caller no longer needs the .\"O .I hostent .\"O structure. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ +これらの関数は、 .B gethostby -¤Î´Ø¿ô·²¤È°Û¤Ê¤ê¡¢Æ°Åª¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¸Æ¤Ó½Ð¤·¸µ¤¬¤³¤ì¤é¤Î +の関数群と異なり、動的に割り当てられたメモリへのポインタを返す。 +呼び出し元がこれらの .I hostent -¹½Â¤ÂΤòɬÍפȤ·¤Ê¤¯¤Ê¤Ã¤¿¸å¤Ï¡¢ +構造体を必要としなくなった後は、 .BR freehostent () -´Ø¿ô¤òÍѤ¤¤ì¤ÐưŪ¤Ê³ä¤êÅö¤Æ¥á¥â¥ê¤ò²òÊü¤Ç¤­¤ë¡£ +関数を用いれば動的な割り当てメモリを解放できる。 .\"O .SS getipnodebyname() arguments -.SS getipnodebyname() ¤Î°ú¤­¿ô +.SS getipnodebyname() の引き数 .\"O The .\"O .BR getipnodebyname () .\"O function @@ -140,11 +140,11 @@ struct hostent { .\"O .I af .\"O argument specifies one of the following values: .BR getipnodebyname () -´Ø¿ô¤Ï +関数は .I name -°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿¥Û¥¹¥È¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤ò°ú¤¯¡£ +引き数で指定されたホストのネットワークアドレスを引く。 .I af -°ú¤­¿ô¤Ë¤Ï°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«¤ò»ØÄꤹ¤ë¡£ +引き数には以下の値のいずれかを指定する。 .TP .B AF_INET .\"O The @@ -152,8 +152,8 @@ struct hostent { .\"O argument points to a dotted-quad IPv4 address or a name .\"O of an IPv4 network host. .I name -°ú¤­¿ô¤Ï¡¢¥É¥Ã¥È¤Ç 4 ¤Ä¤Ë¶èÀÚ¤é¤ì¤¿ IPv4 ¥¢¥É¥ì¥¹¤«¡¢ -IPv4 ¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È¤Î̾Á°¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +引き数は、ドットで 4 つに区切られた IPv4 アドレスか、 +IPv4 ネットワークホストの名前へのポインタである。 .TP .B AF_INET6 .\"O The @@ -161,8 +161,8 @@ IPv4 .\"O argument points to a hexadecimal IPv6 address or a name .\"O of an IPv6 network host. .I name -°ú¤­¿ô¤Ï¡¢16 ¿Ê¤Î IPv6 ¥¢¥É¥ì¥¹¤«¡¢ -IPv6 ¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È¤Î̾Á°¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +引き数は、16 進の IPv6 アドレスか、 +IPv6 ネットワークホストの名前へのポインタである。 .PP .\"O The .\"O .I flags @@ -173,11 +173,11 @@ IPv6 .\"O should be set to 0 .\"O if no options are desired. .I flags -¥Ñ¥é¥á¡¼¥¿¤Ë¤ÏÄɲäΥª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¡£ -Ê£¿ô¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤Ë¤Ï¡¢¤½¤ì¤é¤Î¥Ó¥Ã¥Èñ°Ì¤Î OR ¤ò¤È¤Ã¤Æ»ØÄꤹ¤ì¤Ð¤è¤¤¡£ -¥ª¥×¥·¥ç¥ó¤ò¤Ò¤È¤Ä¤â»ØÄꤷ¤¿¤¯¤Ê¤¤¤È¤­¤Ë¤Ï¡¢ +パラメータには追加のオプションを指定する。 +複数のフラグを指定するには、それらのビット単位の OR をとって指定すればよい。 +オプションをひとつも指定したくないときには、 .I flags -¤Ë 0 ¤òÀßÄꤹ¤ëɬÍפ¬¤¢¤ë¡£ +に 0 を設定する必要がある。 .TP .B AI_V4MAPPED .\"O This flag is used with @@ -185,20 +185,20 @@ IPv6 .\"O to request a query for IPv4 addresses instead of .\"O IPv6 addresses; the IPv4 addresses will .\"O be mapped to IPv6 addresses. -¤³¤Î¥Õ¥é¥°¤Ï +このフラグは .B AF_INET6 -¤È¶¦¤ËÍѤ¤¤é¤ì¡¢IPv6 ¥¢¥É¥ì¥¹¤ÎÂå¤ï¤ê¤Ë IPv4 ¥¢¥É¥ì¥¹¤òÌ䤤¹ç¤ï¤»¤ë¡£ -Ì䤤¹ç¤ï¤»¤ë IPv4 ¥¢¥É¥ì¥¹¤Ï IPv6 ¥¢¥É¥ì¥¹¤Ë¥Þ¥Ã¥×¤µ¤ì¤ë¡£ +と共に用いられ、IPv6 アドレスの代わりに IPv4 アドレスを問い合わせる。 +問い合わせる IPv4 アドレスは IPv6 アドレスにマップされる。 .TP .B AI_ALL .\"O This flag is used with .\"O .B AI_V4MAPPED .\"O to request a query for both IPv4 and IPv6 addresses. .\"O Any IPv4 address found will be mapped to an IPv6 address. -¤³¤Î¥Õ¥é¥°¤Ï +このフラグは .B AI_V4MAPPED -¤È¶¦¤ËÍѤ¤¤é¤ì¡¢IPv4 ¥¢¥É¥ì¥¹¤È IPv6 ¥¢¥É¥ì¥¹¤ÎξÊý¤òÌ䤤¹ç¤ï¤»¤ë¡£ -¸«¤Ä¤«¤Ã¤¿ IPv4 ¥¢¥É¥ì¥¹¤Ï¡¢¤¹¤Ù¤Æ IPv6 ¥¢¥É¥ì¥¹¤Ë¥Þ¥Ã¥×¤µ¤ì¤ë¡£ +と共に用いられ、IPv4 アドレスと IPv6 アドレスの両方を問い合わせる。 +見つかった IPv4 アドレスは、すべて IPv6 アドレスにマップされる。 .TP .B AI_ADDRCONFIG .\"O This flag is used with @@ -211,25 +211,25 @@ IPv6 .\"O This flag may be used by itself or with the .\"O .B AI_V4MAPPED .\"O flag. -¤³¤Î¥Õ¥é¥°¤Ï +このフラグは .B AF_INET6 -¤È¶¦¤ËÍѤ¤¤é¤ì¡¢ -IPv6 ¤¬³ä¤êÅö¤Æ¤é¤ì¤¿¥Í¥Ã¥È¥ï¡¼¥¯¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ -¥·¥¹¥Æ¥à¤Ë¤Ò¤È¤Ä¤â¤Ê¤±¤ì¤Ð IPv6 ¥¢¥É¥ì¥¹¤ÎÌ䤤¹ç¤ï¤»¤ò¹Ô¤ï¤º¡¢ -IPv4 ¤¬³ä¤êÅö¤Æ¤é¤ì¤¿¥Í¥Ã¥È¥ï¡¼¥¯¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ -¥·¥¹¥Æ¥à¤Ë¤Ò¤È¤Ä¤â¤Ê¤±¤ì¤Ð IPv4 ¥¢¥É¥ì¥¹¤ÎÌ䤤¹ç¤ï¤»¤ò¹Ô¤ï¤Ê¤¤¤è¤¦¤ËÍ׵᤹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ÏñÆȤǤ⡢¤¢¤ë¤¤¤Ï +と共に用いられ、 +IPv6 が割り当てられたネットワークインターフェースが +システムにひとつもなければ IPv6 アドレスの問い合わせを行わず、 +IPv4 が割り当てられたネットワークインターフェースが +システムにひとつもなければ IPv4 アドレスの問い合わせを行わないように要求する。 +このフラグは単独でも、あるいは .B AI_V4MAPPED -¥Õ¥é¥°¤È¶¦¤Ë¤Ç¤âÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +フラグと共にでも用いることができる。 .TP .B AI_DEFAULT .\"O This flag is equivalent to .\"O .BR "(AI_ADDRCONFIG | AI_V4MAPPED)" . -¤³¤Î¥Õ¥é¥°¤Ï +このフラグは .BR (AI_ADDRCONFIG | AI_V4MAPPED) -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 .\"O .SS getipnodebyaddr() arguments -.SS "getipnodebyaddr() ¤Î°ú¤­¿ô" +.SS "getipnodebyaddr() の引き数" .\"O The .\"O .BR getipnodebyaddr () .\"O function @@ -242,11 +242,11 @@ IPv4 .\"O .I af .\"O argument specifies one of the following values: .BR getipnodebyaddr () -´Ø¿ô¤Ï¡¢¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤¬ +関数は、ネットワークアドレスが .I addr -°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿¥Û¥¹¥È¤Î̾Á°¤ò°ú¤¯¡£ +引き数で指定されたホストの名前を引く。 .I af -°ú¤­¿ô¤Ë¤Ï°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«¤ò»ØÄꤹ¤ë¡£ +引き数には以下の値のいずれかを指定する。 .TP .B AF_INET .\"O The @@ -258,13 +258,13 @@ IPv4 .\"O must be set to .\"O .IR "sizeof(struct in_addr)" . .I addr -°ú¤­¿ô¤Ï +引き数は .I struct in_addr -¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ê¡¢ +へのポインターであり、 .I len -°ú¤­¿ô¤Ï +引き数は .I sizeof(struct in_addr) -¤ËÀßÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +に設定しなければならない。 .TP .B AF_INET6 .\"O The @@ -276,65 +276,65 @@ IPv4 .\"O must be set to .\"O .IR "sizeof(struct in6_addr)" . .I addr -°ú¤­¿ô¤Ï +引き数は .I struct in6_addr -¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ê¡¢ +へのポインターであり、 .I len -°ú¤­¿ô¤Ï +引き数は .I sizeof(struct in6_addr) -¤ËÀßÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +に設定しなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O A NULL pointer is returned if an error occurred, and .\"O .I error_num .\"O will contain an error code from the following list: -¥¨¥é¡¼¤¬µ¯¤³¤ë¤È¥Ì¥ë¡¦¥Ý¥¤¥ó¥¿¡¼¤¬ÊÖ¤µ¤ì¡¢ +エラーが起こるとヌル・ポインターが返され、 .I error_num -¤Ë°Ê²¼¤Ë¥ê¥¹¥È¤µ¤ì¤¿¥¨¥é¡¼¥³¡¼¥É¤Î¤¤¤º¤ì¤«¤¬ÀßÄꤵ¤ì¤ë¡£ +に以下にリストされたエラーコードのいずれかが設定される。 .TP .B HOST_NOT_FOUND .\"O The hostname or network address was not found. -¥Û¥¹¥È̾¤Þ¤¿¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£ +ホスト名またはネットワークアドレスが見つからなかった。 .TP .B NO_ADDRESS .\"O The domain name server recognized the network address or name, .\"O but no answer was returned. .\"O This can happen if the network host has only IPv4 addresses and .\"O a request has been made for IPv6 information only, or vice versa. -¥É¥á¥¤¥ó¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤Ï -¤½¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤Þ¤¿¤Ï¥Í¥Ã¥È¥ï¡¼¥¯Ì¾¤òǧ¼±¤·¤¿¤¬¡¢ -ÊÖ»ö¤¬Ê֤äƤ³¤Ê¤«¤Ã¤¿¡£¸¶°ø¤È¤·¤Æ¤Ï¡¢ -Î㤨¤Ð IPv4 ¥¢¥É¥ì¥¹¤·¤«»ý¤¿¤Ê¤¤¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È¤ËÂФ·¤Æ -IPv6 ¤Î¾ðÊó¤ÎÌ䤤¹ç¤ï¤»¤¬¹Ô¤ï¤ì¤¿ (¤ª¤è¤Ó¤½¤ÎµÕ) ¤Ê¤É¤¬¹Í¤¨¤é¤ì¤ë¡£ +ドメインネームサーバーは +そのネットワークアドレスまたはネットワーク名を認識したが、 +返事が返ってこなかった。原因としては、 +例えば IPv4 アドレスしか持たないネットワークホストに対して +IPv6 の情報の問い合わせが行われた (およびその逆) などが考えられる。 .TP .B NO_RECOVERY .\"O The domain name server returned a permanent failure response. -¥É¥á¥¤¥ó¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤«¤é¹±µ×Ū¤Ê¼ºÇÔ (permanent failure) -¤ò°ÕÌ£¤¹¤ëÊÖ»ö¤¬ÊÖ¤µ¤ì¤¿¡£ +ドメインネームサーバーから恒久的な失敗 (permanent failure) +を意味する返事が返された。 .TP .B TRY_AGAIN .\"O The domain name server returned a temporary failure response. .\"O You might have better luck next time. -¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤«¤é°ì»þŪ¤Ê¼ºÇÔ (temporary failure) -¤ò°ÕÌ£¤¹¤ëÊÖ»ö¤¬ÊÖ¤µ¤ì¤¿¡£¼¡¤Ë¤Ï¤â¤¦¤Á¤ç¤Ã¤È±¿¤¬É¬Íפ«¤â¡£ +ネームサーバーから一時的な失敗 (temporary failure) +を意味する返事が返された。次にはもうちょっと運が必要かも。 .PP .\"O A successful query returns a pointer to a .\"O .I hostent .\"O structure that contains the following fields: -Ì䤤¹ç¤ï¤»¤ËÀ®¸ù¤¹¤ë¤È¡¢ +問い合わせに成功すると、 .I hostent -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤Î¹½Â¤ÂΤϰʲ¼¤Î¥Õ¥£¡¼¥ë¥É¤«¤é¤Ê¤ë¡£ +構造体へのポインタが返される。 +この構造体は以下のフィールドからなる。 .TP .I h_name .\"O This is the official name of this network host. -¤³¤ì¤Ï¤³¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È¤Î¥ª¥Õ¥£¥·¥ã¥ë¤Ê̾Á°¤Ç¤¢¤ë¡£ +これはこのネットワークホストのオフィシャルな名前である。 .TP .I h_aliases .\"O This is an array of pointers to unofficial aliases for the same host. .\"O The array is terminated by a NULL pointer. -¤³¤ì¤Ï¡¢¤½¤Î¥Û¥¹¥È¤Î¥ª¥Õ¥£¥·¥ã¥ë¤Ç¤Ê¤¤ÊÌ̾¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤ÎÇÛÎó¤Ç¤¢¤ë¡£ -ÇÛÎó¤Ï¥Ì¥ë¡¦¥Ý¥¤¥ó¥¿¡¼¤Ç½ªÃ¼¤¹¤ë¡£ +これは、そのホストのオフィシャルでない別名へのポインターの配列である。 +配列はヌル・ポインターで終端する。 .TP .I h_addrtype .\"O This is a copy of the @@ -357,29 +357,29 @@ IPv6 .\"O .I af .\"O argument was .\"O .BR AF_INET6 . -¤³¤ì¤Ï +これは .BR getipnodebyname () -¤Þ¤¿¤Ï +または .BR getipnodebyaddr () -¤ËÍ¿¤¨¤é¤ì¤¿ +に与えられた .I af -°ú¤­¿ô¤Î¥³¥Ô¡¼¤Ç¤¢¤ë¡£ +引き数のコピーである。 .I af -°ú¤­¿ô¤¬ +引き数が .B AF_INET -¤Ê¤é +なら .I h_addrtype -¤Ï¾ï¤Ë +は常に .B AF_INET -¤Ë¤Ê¤ê¡¢ +になり、 .I af -°ú¤­¿ô¤¬ +引き数が .B AF_INET6 -¤Ê¤é +なら .I h_addrtype -¤â¾ï¤Ë +も常に .B AF_INET6 -¤Ë¤Ê¤ë¡£ +になる。 .TP .I h_length .\"O This field will be set to @@ -394,44 +394,44 @@ IPv6 .\"O .I h_addrtype .\"O is .\"O .BR AF_INET6 . -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢ +このフィールドは、 .I h_addrtype -¤¬ +が .B AF_INET -¤Ê¤é +なら .I sizeof(struct in_addr) -¤Ë¡¢ +に、 .I h_addrtype -¤¬ +が .B AF_INET6 -¤Ê¤é +なら .I sizeof(struct in6_addr) -¤ËÀßÄꤵ¤ì¤ë¡£ +に設定される。 .TP .I h_addr_list .\"O This is an array of one or more pointers to network address structures for the .\"O network host. .\"O The array is terminated by a NULL pointer. -¤³¤ì¤Ï¤Ò¤È¤Ä°Ê¾å¤Î¥Ý¥¤¥ó¥¿¡¼¤ÎÇÛÎó¤Ç¡¢ -¤½¤ì¤¾¤ì¤Î¥Ý¥¤¥ó¥¿¡¼¤Ï¡¢ -¤½¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È¤ËÂбþ¤¹¤ë¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¹½Â¤ÂΤò»Ø¤¹¡£ -¤³¤ÎÇÛÎó¤Ï¥Ì¥ë¡¦¥Ý¥¤¥ó¥¿¡¼¤Ç½ªÃ¼¤¹¤ë¡£ +これはひとつ以上のポインターの配列で、 +それぞれのポインターは、 +そのネットワークホストに対応するネットワークアドレス構造体を指す。 +この配列はヌル・ポインターで終端する。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 RFC\ 2553. .\"O .\" Not in POSIX.1-2001. -.\" POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ +.\" POSIX.1-2001 にはない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O These functions were present in glibc 2.1.91-95, but were .\"O removed again. .\"O Several UNIX-like systems support them, but all .\"O call them deprecated. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc 2.1.91-95 ¤Ë¸ºß¤·¤¿¤¬¡¢ºÆ¤Óºï½ü¤µ¤ì¤¿¡£ -¤¤¤¯¤Ä¤«¤Î UNIX É÷¥·¥¹¥Æ¥à¤Ï¤³¤ì¤é¤Î´Ø¿ô¤ËÂбþ¤·¤Æ¤¤¤ë¤¬¡¢ -¤³¤ì¤é¤Î´Ø¿ô¤ÏÁ´¤Æ¿ä¾©¤µ¤ì¤Ê¤¤¡£ +これらの関数は glibc 2.1.91-95 に存在したが、再び削除された。 +いくつかの UNIX 風システムはこれらの関数に対応しているが、 +これらの関数は全て推奨されない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getaddrinfo (3), .BR getnameinfo (3), .BR inet_ntop (3), diff --git a/draft/man3/getline.3 b/draft/man3/getline.3 index a886887b..d8d120a4 100644 --- a/draft/man3/getline.3 +++ b/draft/man3/getline.3 @@ -28,15 +28,15 @@ .\" Updated 2006-07-20, Akihiro MOTOKI , LDP v2.34 .\" Updated 2010-04-18, Akihiro MOTOKI, LDP v3.24 .\" -.\"WORD: delimiter ¶èÀÚ¤êʸ»ú +.\"WORD: delimiter 区切り文字 .\" .TH GETLINE 3 2010-06-12 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getline, getdelim \- delimited string input -getline, getdelim \- ¶èÀÚ¤êʸ»ú¤Þ¤Ç¤Îʸ»úÎóÆþÎϤòÆɤ߹þ¤à +getline, getdelim \- 区切り文字までの文字列入力を読み込む .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -49,9 +49,9 @@ getline, getdelim \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -61,29 +61,29 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _POSIX_C_SOURCE\ >=\ 200809L || _XOPEN_SOURCE\ >=\ 700 .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .PD .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR getline () .\"O reads an entire line from \fIstream\fP, .\"O storing the address of the buffer containing the text into .\"O .IR "*lineptr" . .BR getline () -¤Ï \fIstream\fP ¤«¤é 1 ¹ÔÁ´¤Æ¤òÆɤ߹þ¤ß¡¢¥Æ¥­¥¹¥È¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¥Ð¥Ã¥Õ¥¡¤Î¥¢¥É¥ì¥¹¤ò +は \fIstream\fP から 1 行全てを読み込み、テキストが含まれているバッファのアドレスを .I "*lineptr" -¤Ë³ÊǼ¤¹¤ë¡£ +に格納する。 .\"O The buffer is null-terminated and includes the newline character, if .\"O one was found. -¥Ð¥Ã¥Õ¥¡¤Ï¥Ì¥ëʸ»ú (\e0) ¤Ç½ªÃ¼¤µ¤ì¤ë¡£ -²þ¹Ôʸ»ú¤¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤Ï¡¢²þ¹Ôʸ»ú¤â¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤ë¡£ +バッファはヌル文字 (\e0) で終端される。 +改行文字が見つかった場合は、改行文字もバッファに格納される。 .\"O If .\"O .I "*lineptr" @@ -95,13 +95,13 @@ _GNU_SOURCE .\"O .I *n .\"O is ignored.) .I "*lineptr" -¤¬ NULL ¤Î¾ì¹ç¡¢ +が NULL の場合、 .BR getline () -¤Ï¹Ô¤ÎÆâÍƤò³ÊǼ¤¹¤ë¤¿¤á¤Î¥Ð¥Ã¥Õ¥¡¤ò³ÎÊݤ¹¤ë¡£ -¤³¤Î¥Ð¥Ã¥Õ¥¡¤Ï¥æ¡¼¥¶¡¼¤Î¥×¥í¥°¥é¥à¤Ç²òÊü¤¹¤Ù¤­¤Ç¤¢¤ë -(¤³¤Î¾ì¹ç¡¢ +は行の内容を格納するためのバッファを確保する。 +このバッファはユーザーのプログラムで解放すべきである +(この場合、 .I *n -¤ÎÃͤÏ̵»ë¤µ¤ì¤ë)¡£ +の値は無視される)。 .\"O Alternatively, before calling .\"O .BR getline (), @@ -111,15 +111,15 @@ _GNU_SOURCE .\"O buffer .\"O .I "*n" .\"O bytes in size. -Ê̤ÎÊýË¡¤È¤·¤Æ¡¢ +別の方法として、 .BR getline () -¤ò¸Æ¤Ó½Ð¤¹ºÝ¤Ë¡¢ +を呼び出す際に、 .I "*lineptr" -¤Ë +に .BR malloc (3) -¤Ç³ÎÊݤ·¤¿Â礭¤µ +で確保した大きさ .I "*n" -¥Ð¥¤¥È¤Î¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÆþ¤ì¤ÆÅϤ¹¤³¤È¤â¤Ç¤­¤ë¡£ +バイトのバッファへのポインタを入れて渡すこともできる。 .\"O If the buffer is not large enough to hold the line, .\"O .BR getline () .\"O resizes it with @@ -129,26 +129,26 @@ _GNU_SOURCE .\"O and .\"O .I "*n" .\"O as necessary. -Æɤ߹þ¤ó¤À¹Ô¤òÊÝ»ý¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¥Ð¥Ã¥Õ¥¡¤¬¤Ê¤¤¾ì¹ç¡¢ +読み込んだ行を保持するのに十分なバッファがない場合、 .BR getline () -¤Ï +は .BR realloc (3) -¤ò»È¤Ã¤Æ¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤òÊѹ¹¤·¡¢É¬Íפ˱þ¤¸¤Æ +を使ってバッファのサイズを変更し、必要に応じて .I "*lineptr" -¤È +と .I "*n" -¤ò¹¹¿·¤¹¤ë¡£ +を更新する。 .\"O In either case, on a successful call, .\"O .I "*lineptr" .\"O and .\"O .I "*n" .\"O will be updated to reflect the buffer address and allocated size respectively. -¤É¤Á¤é¤Î¾ì¹ç¤Ç¤â¡¢¸Æ¤Ó½Ð¤·¤ËÀ®¸ù¤·¤¿¤È¤­¤Ë¤Ï¡¢ +どちらの場合でも、呼び出しに成功したときには、 .I "*lineptr" -¤È +と .I "*n" -¤¬¥Ð¥Ã¥Õ¥¡¤Î¥¢¥É¥ì¥¹¤È³ä¤êÅö¤Æ¤¿¥µ¥¤¥º¤òÈ¿±Ç¤·¤¿Ãͤ˹¹¿·¤µ¤ì¤ë¡£ +がバッファのアドレスと割り当てたサイズを反映した値に更新される。 .\"O .BR getdelim () .\"O works like @@ -157,20 +157,20 @@ _GNU_SOURCE .\"O .I delimiter .\"O argument. .BR getdelim () -¤Ï +は .BR getline () -¤ÈƱ¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¤¬¡¢²þ¹Ôʸ»ú°Ê³°¤Î¶èÀÚ¤êʸ»ú¤ò°ú¤­¿ô +と同じように動作するが、改行文字以外の区切り文字を引き数 .I delim -¤Ë»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +に指定することができる。 .\"O As with .\"O .BR getline (), .\"O a delimiter character is not added if one was not present .\"O in the input before end of file was reached. .BR getline () -¤ÈƱÍͤˡ¢¥Õ¥¡¥¤¥ë½ªÃ¼¤Ë㤹¤ë¤Þ¤Ç¤ËÆþÎϹԤ˶èÀÚ¤êʸ»ú¤¬¸«ÉÕ¤«¤é¤Ê¤¤¾ì¹ç¤Ï¡¢ -¶èÀÚ¤êʸ»ú¤ò¥Ð¥Ã¥Õ¥¡¤ËÄɲ䷤ʤ¤¡£ +と同様に、ファイル終端に達するまでに入力行に区切り文字が見付からない場合は、 +区切り文字をバッファに追加しない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR getline () .\"O and @@ -179,20 +179,20 @@ _GNU_SOURCE .\"O but not including the terminating null byte. .\"O This value can be used .\"O to handle embedded null bytes in the line read. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR getline () -¤È +と .BR getdelim () -¤ÏÆɤ߹þ¤ó¤Àʸ»ú¿ô¤òÊÖ¤¹¡£ -ʸ»ú¿ô¤Ë¤Ï¶èÀÚ¤êʸ»ú¤Ï´Þ¤Þ¤ì¤ë¤¬¡¢½ªÃ¼¤Ë»È¤¦ NULL ¥Ð¥¤¥È¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ -¤³¤ÎÃͤˤè¤Ã¤Æ¡¢Æɤ߹þ¤ó¤À¹Ô¤Ë´Þ¤Þ¤ì¤ë NULL ¥Ð¥¤¥È¤òÁàºî¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +は読み込んだ文字数を返す。 +文字数には区切り文字は含まれるが、終端に使う NULL バイトは含まれない。 +この値によって、読み込んだ行に含まれる NULL バイトを操作することができる。 .\"O Both functions return \-1 on failure to read a line (including end-of-file .\"O condition). -¤É¤Á¤é¤Î´Ø¿ô¤â¡¢¹Ô¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï \-1 ¤òÊÖ¤¹ -(¥Õ¥¡¥¤¥ë¤Î½ªÃ¼¤Ë㤷¤¿¾ì¹ç¤Ë¤â \-1 ¤òÊÖ¤¹)¡£ +どちらの関数も、行の読み込みに失敗した場合には \-1 を返す +(ファイルの終端に達した場合にも \-1 を返す)。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O Bad arguments @@ -202,20 +202,20 @@ _GNU_SOURCE .\"O is NULL, or .\"O .I stream .\"O is not valid). -°ú¤­¿ô¤¬ÉÔÀµ¤Ç¤¢¤ë +引き数が不正である .RI ( n -¤Þ¤¿¤Ï +または .I lineptr -¤¬ NULL ¤Ç¤¢¤ë¡£ -¤â¤·¤¯¤Ï +が NULL である。 +もしくは .I stream -¤¬Í­¸ú¤Ç¤Ê¤¤)¡£ +が有効でない)。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions are available since libc 4.6.27. -¤³¤ì¤é¤Î´Ø¿ô¤Ï libc 4.6.27 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +これらの関数は libc 4.6.27 以降で利用可能である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O Both .\"O .BR getline () .\"O and @@ -223,12 +223,12 @@ _GNU_SOURCE .\"O were originally GNU extensions. .\"O They were standardized in POSIX.1-2008. .BR getline () -¤È +と .BR getdelim () -¤Ï¡¢¤É¤Á¤é¤â¸µ¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤Ã¤¿¤¬¡¢ -POSIX.1-2008 ¤Çɸ½à²½¤µ¤ì¤¿¡£ +は、どちらも元は GNU による拡張であったが、 +POSIX.1-2008 で標準化された。 .\"O .SH "EXAMPLE" -.SH Îã +.SH 例 .nf #define _GNU_SOURCE #include @@ -256,7 +256,7 @@ main(void) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR read (2), .BR fgets (3), .BR fopen (3), diff --git a/draft/man3/getloadavg.3 b/draft/man3/getloadavg.3 index e0c80278..2879462c 100644 --- a/draft/man3/getloadavg.3 +++ b/draft/man3/getloadavg.3 @@ -32,24 +32,24 @@ .\" Japanese Version Copyright (c) 2002 NAKANO Takeo all rights reserved. .\" Translated Sun 6 Jan 2002 by NAKANO Takeo .\" -.\"WORD: load average Éé²ÙÊ¿¶Ñ +.\"WORD: load average 負荷平均 .\" .TH GETLOADAVG 3 2007-12-08 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° -.\"O getloadavg \- ¥·¥¹¥Æ¥à¤ÎÉé²ÙÊ¿¶Ñ¤ò¼èÆÀ¤¹¤ë +.SH 名前 +.\"O getloadavg \- システムの負荷平均を取得する getloadavg \- get system load averages .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _BSD_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _BSD_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _BSD_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "int getloadavg(double " loadavg[] ", int " nelem ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR getloadavg () .\"O function returns the number of processes in the system run queue @@ -61,42 +61,42 @@ getloadavg \- get system load averages .\"O The system imposes a maximum of 3 samples, representing averages .\"O over the last 1, 5, and 15 minutes, respectively. .BR getloadavg () -´Ø¿ô¤Ï¥·¥¹¥Æ¥à¤Î¼Â¹Ô¥­¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î¿ô¤ò¡¢ -ÍÍ¡¹¤Ê´ü´Ö¤Ë¤Ä¤¤¤ÆÊ¿¶Ñ¤·¤¿ÃͤòÊÖ¤¹¡£ +関数はシステムの実行キューに入っているプロセスの数を、 +様々な期間について平均した値を返す。 .I nelem -¸Ä¤Þ¤Ç¤Î¥µ¥ó¥×¥ëÃͤò¼èÆÀ¤·¡¢ +個までのサンプル値を取得し、 .IR loadavg [] -¤ÎϢ³¤¹¤ëÍ×ÁǤËÂåÆþ¤¹¤ë¡£ -¥·¥¹¥Æ¥à¤¬Ä󶡤¹¤ë¥µ¥ó¥×¥ë¿ô¤Ï 3 ¸Ä¤Þ¤Ç¤Ç¡¢ -¤½¤ì¤¾¤ìºÇ¶á 1, 5, 15 ʬ¤ÎÊ¿¶Ñ¤òɽ¤·¤Æ¤¤¤ë¡£ +の連続する要素に代入する。 +システムが提供するサンプル数は 3 個までで、 +それぞれ最近 1, 5, 15 分の平均を表している。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O If the load average was unobtainable, \-1 is returned; otherwise, .\"O the number of samples actually retrieved is returned. -Éé²ÙÊ¿¶Ñ¤¬¼èÆÀ¤Ç¤­¤Ê¤¤¤È \-1 ¤òÊÖ¤¹¡£ -¼èÆÀ¤Ç¤­¤¿¾ì¹ç¤Ï¡¢¼ÂºÝ¤Ë¼èÆÀ¤·¤¿¥µ¥ó¥×¥ëÃͤοô¤òÊÖ¤¹¡£ +負荷平均が取得できないと \-1 を返す。 +取得できた場合は、実際に取得したサンプル値の数を返す。 .\"O .\" .SH HISTORY -.\" .SH ÍúÎò +.\" .SH 履歴 .\"O .\" The .\"O .\" .BR getloadavg () .\"O .\" function appeared in .\"O .\" 4.3BSD Reno. .\" .BR getloadavg () -.\" ´Ø¿ô¤Ï +.\" 関数は .\" 4.3BSD Reno -.\" ¤ÇÅо줷¤¿¡£ +.\" で登場した。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O This function is available in glibc since version 2.2. -¤³¤Î´Ø¿ô¤Ï glibc ¤Î¥Ð¡¼¥¸¥ç¥ó 2.2 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +この関数は glibc のバージョン 2.2 以降で利用可能である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O Not in POSIX.1-2001. .\"O Present on the BSDs and Solaris. -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -BSD ·Ï¤È Solaris ¤Ë¸ºß¤¹¤ë¡£ +POSIX.1-2001 にはない。 +BSD 系と Solaris に存在する。 .\" mdoc seems to have a bug - there must be no newline here .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR uptime (1), .BR proc (5) diff --git a/draft/man3/getlogin.3 b/draft/man3/getlogin.3 index cdfb3913..e416c1b5 100644 --- a/draft/man3/getlogin.3 +++ b/draft/man3/getlogin.3 @@ -34,10 +34,10 @@ .TH GETLOGIN 3 2008-06-29 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O getlogin, getlogin_r, cuserid \- get username -.SH ̾Á° -getlogin, getlogin_r, cuserid \- ¥æ¡¼¥¶¡¼Ì¾¤ò¼èÆÀ¤¹¤ë +.SH 名前 +getlogin, getlogin_r, cuserid \- ユーザー名を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .B "char *getlogin(void);" @@ -51,9 +51,9 @@ getlogin, getlogin_r, cuserid \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR getlogin_r (): @@ -62,7 +62,7 @@ _REENTRANT || _POSIX_C_SOURCE\ >=\ 199506L .BR cuserid (): _XOPEN_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR getlogin () .\"O returns a pointer to a string containing the name of .\"O the user logged in on the controlling terminal of the process, or a @@ -72,11 +72,11 @@ _XOPEN_SOURCE .\"O this function or to .\"O .BR cuserid (). .BR getlogin () -¤Ï¡¢¸½ºß¤Î¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤Ë¥í¥°¥¤¥ó¤·¤Æ¤¤¤ë¥æ¡¼¥¶¡¼Ì¾¤Îʸ»úÎó¤Ø¤Î -¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£¥æ¡¼¥¶¡¼Ì¾¤¬·èÄê¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï NULL ¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -ʸ»úÎó¤ÏÀÅŪÎΰè¤Ë³ä¤êÅö¤Æ¤é¤ì¤Æ¤ª¤ê¡¢¤³¤Î¸å¤Ç¤³¤Î´Ø¿ô¤ä +は、現在のプロセスの制御端末にログインしているユーザー名の文字列への +ポインタを返す。ユーザー名が決定できない場合は NULL ポインタを返す。 +文字列は静的領域に割り当てられており、この後でこの関数や .BR cuserid () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿ºÝ¤Ë¾å½ñ¤­¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ +が呼び出された際に上書きされることがある。 .PP .\"O .BR getlogin_r () .\"O returns this same username in the array @@ -84,11 +84,11 @@ _XOPEN_SOURCE .\"O of size .\"O .IR bufsize . .BR getlogin_r () -¤Ï¡¢¾åµ­¤ÎƱ¤¸¥æ¡¼¥¶Ì¾¤ò¡¢Â礭¤µ +は、上記の同じユーザ名を、大きさ .I bufsize -¤ÎÇÛÎó +の配列 .I buf -¤ËÆþ¤ì¤ÆÊÖ¤¹¡£ +に入れて返す。 .PP .\"O .BR cuserid () .\"O returns a pointer to a string containing a username @@ -102,22 +102,22 @@ _XOPEN_SOURCE .\"O calls to this function or to .\"O .BR getlogin (). .BR cuserid () -¤Ï¡¢¸½ºß¤Î¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶¡¼ID ¤ËÂбþ¤¹¤ë¥æ¡¼¥¶¡¼Ì¾¤Î -ʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -\fIstring\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿°Ê³°¤Î¾ì¹ç¡¢\fIstring\fP ¤Ï¾¯¤Ê¤¯¤È¤â -\fBL_cuserid\fP ʸ»ú¤òÊÝ»ý¤Ç¤­¤ëÇÛÎó¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -\fIstring\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¤Î¾ì¹ç¤Ë¤Ï¡¢ÀÅŪÎΰè¤ËÃÖ¤«¤ì¤¿Ê¸»úÎó¤Ø¤Î -¥Ý¥¤¥ó¥¿¤¬ÊÖ¤µ¤ì¤ë¡£¤³¤Îʸ»úÎó¤ÏÀÅŪÎΰè¤Ë³ä¤êÅö¤Æ¤é¤ì¤Æ¤ª¤ê¡¢¸å¤Ç -¤³¤Î´Ø¿ô¤ä +は、現在のプロセスの実効ユーザーID に対応するユーザー名の +文字列へのポインタを返す。 +\fIstring\fP が NULL ポインタ以外の場合、\fIstring\fP は少なくとも +\fBL_cuserid\fP 文字を保持できる配列でなければならない。 +\fIstring\fP が NULL ポインタの場合には、静的領域に置かれた文字列への +ポインタが返される。この文字列は静的領域に割り当てられており、後で +この関数や .BR getlogin () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿ºÝ¤Ë¾å½ñ¤­¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ +が呼び出された際に上書きされることがある。 .PP .\"O The macro \fBL_cuserid\fP is an integer constant that indicates how .\"O long an array you might need to store a username. \fBL_cuserid\fP is .\"O declared in \fBstdio.h\fP. -¥Þ¥¯¥í \fBL_cuserid\fP ¤Ï integer ¤ÎÄê¿ô¤Ç¡¢¥æ¡¼¥¶¡¼Ì¾¤òÊÝ»ý¤¹¤ë¤¿¤á¤Ë -ɬÍפÊÇÛÎó¤ÎŤµ¤ò¼¨¤¹¡£ \fBL_cuserid\fP ¤Ï \fBstdio.h\fP ¤ÇÀë¸À¤µ¤ì¤Æ -¤¤¤ë¡£ +マクロ \fBL_cuserid\fP は integer の定数で、ユーザー名を保持するために +必要な配列の長さを示す。 \fBL_cuserid\fP は \fBstdio.h\fP で宣言されて +いる。 .PP .\"O These functions let your program identify positively the user who is .\"O running @@ -126,96 +126,96 @@ _XOPEN_SOURCE .\"O .RB ( getlogin ()). .\"O (These can differ when set-user-ID programs are .\"O involved.) -¤³¤ì¤é¤Î´Ø¿ô¤ò»È¤¦¤È¡¢¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Æ¤¤¤ë¥æ¡¼¥¶¡¼ +これらの関数を使うと、プログラムを実行しているユーザー .RB ( cuserid ()) -¤ä -¤³¤Î¥»¥Ã¥·¥ç¥ó¤Ë¥í¥°¥¤¥ó¤·¤Æ¤¤¤ë¥æ¡¼¥¶¡¼ +や +このセッションにログインしているユーザー .RB ( getlogin ()) -¤òÌÀ³Î¤ËÆÃÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë -(¤¿¤À¤· set-user-ID ¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¾õ¶·¤¬°ã¤¦¤³¤È¤â¤¢¤ë)¡£ +を明確に特定することができる +(ただし set-user-ID プログラムでは、状況が違うこともある)。 .PP .\"O For most purposes, it is more useful to use the environment variable .\"O \fBLOGNAME\fP to find out who the user is. .\"O This is more flexible .\"O precisely because the user can set \fBLOGNAME\fP arbitrarily. -¤¿¤¤¤Æ¤¤¤ÎÌÜŪ¤Ç¤Ï¡¢¥æ¡¼¥¶¡¼¤ÎÆÃÄê¤Ë¤Ï´Ä¶­ÊÑ¿ô \fBLOGNAME\fP ¤òÄ´¤Ù -¤ë¤Û¤¦¤¬ÊØÍø¤Ç¤¢¤ë¡£LOGNAME ÊÑ¿ô¤Ï¥æ¡¼¥¶¡¼¤¬¼«Í³¤ËÀßÄê¤Ç¤­¤ë¤Î¤Ç -¤è¤ê½ÀÆð¤ÊÂбþ¤¬²Äǽ¤Ë¤Ê¤ë¡£ +たいていの目的では、ユーザーの特定には環境変数 \fBLOGNAME\fP を調べ +るほうが便利である。LOGNAME 変数はユーザーが自由に設定できるので +より柔軟な対応が可能になる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR getlogin () .\"O returns a pointer to the username when successful, .\"O and NULL on failure. .\"O .BR getlogin_r () .\"O returns 0 when successful, and nonzero on failure. .BR getlogin () -¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï¥æ¡¼¥¶Ì¾¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤·¡¢¼ºÇÔ¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +は成功した場合はユーザ名へのポインタを返し、失敗した場合は NULL を返す。 .BR getlogin_r () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤·¡¢¼ºÇÔ¤¹¤ë¤È 0 °Ê³°¤òÊÖ¤¹¡£ +は成功すると 0 を返し、失敗すると 0 以外を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O POSIX specifies -POSIX ¤Ç¤Ï°Ê²¼¤Î¥¨¥é¡¼¤¬µ¬Äꤵ¤ì¤Æ¤¤¤ë: +POSIX では以下のエラーが規定されている: .TP .B EMFILE .\"O The calling process already has the maximum allowed number of open files. -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¿ô¤¬¤¹¤Ç¤Ë¥×¥í¥»¥¹¤¢¤¿¤ê¤Î -¾å¸Â¤Ë㤷¤Æ¤¤¤ë¡£ +呼び出し元プロセスがオープンしているファイル数がすでにプロセスあたりの +上限に達している。 .TP .B ENFILE .\"O The system already has the maximum allowed number of open files. -¥·¥¹¥Æ¥àÁ´ÂΤǥª¡¼¥×¥ó¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¿ô¤¬¤¹¤Ç¤Ë¾å¸Â¤Ë㤷¤Æ¤¤¤ë¡£ +システム全体でオープンしているファイル数がすでに上限に達している。 .TP .B ENXIO .\"O The calling process has no controlling tty. -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë¤ÏÀ©¸æüËö¤¬¤Ê¤¤¡£ +呼び出し元プロセスには制御端末がない。 .TP .B ERANGE (getlogin_r) .\"O The length of the username, including the terminating null byte, .\"O is larger than .\"O .IR bufsize . -(½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤â´Þ¤á¤¿) ¥æ¡¼¥¶Ì¾¤ÎŤµ¤¬ +(終端の NULL バイトも含めた) ユーザ名の長さが .I bufsize -¤è¤ê¤âŤ¤¡£ +よりも長い。 .LP .\"O Linux/glibc also has -Linux/glibc ¤Ë¤Ï°Ê²¼¤Î¥¨¥é¡¼¤â¤¢¤ë¡£ +Linux/glibc には以下のエラーもある。 .TP .B ENOENT .\"O There was no corresponding entry in the utmp-file. -utmp ¥Õ¥¡¥¤¥ë¤ËÂбþ¤¹¤ë¥¨¥ó¥È¥ê¤¬¤Ê¤«¤Ã¤¿¡£ +utmp ファイルに対応するエントリがなかった。 .TP .B ENOMEM .\"O Insufficient memory to allocate passwd structure. -passwd ¹½Â¤ÂΤò³ä¤êÅö¤Æ¤ë¤Î¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +passwd 構造体を割り当てるのに十分なメモリがない。 .TP .B ENOTTY .\"O Standard input didn't refer to a terminal. .\"O (See BUGS.) -ɸ½àÆþÎϤ¬Ã¼Ëö¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤ (¡Ö¥Ð¥°¡×¤ÎÀá¤ò»²¾È)¡£ +標準入力が端末を参照していない (「バグ」の節を参照)。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .TP \fI/etc/passwd\fP .\"O password database file -¥Ñ¥¹¥ï¡¼¥É¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Õ¥¡¥¤¥ë +パスワードデータベースのファイル .TP \fI/var/run/utmp\fP .\"O (traditionally \fI/etc/utmp\fP; .\"O some libc versions used \fI/var/adm/utmp\fP) -(ÅÁÅýŪ¤Ë¤Ï \fI/etc/utmp\fP ¤¬»È¤ï¤ì¤Æ¤¤¤ë; -libc ¤ÎÃæ¤Ë¤Ï \fI/var/adm/utmp\fP ¤ò»È¤¦¤â¤Î¤â¤¢¤ë) +(伝統的には \fI/etc/utmp\fP が使われている; +libc の中には \fI/var/adm/utmp\fP を使うものもある) .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR getlogin () .\"O and .\"O .BR getlogin_r () .\"O specified in POSIX.1-2001. .BR getlogin () -¤È +と .BR getlogin_r () -¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は POSIX.1-2001 で規定されている。 .\"O System V has a .\"O .BR cuserid () @@ -227,14 +227,14 @@ libc .\"O was included in the 1988 version of POSIX, .\"O but removed from the 1990 version. .\"O It was present in SUSv2, but removed in POSIX.1-2001. -System V ¤Ë¤â +System V にも .BR cuserid () -¤¬¤¢¤ë¤¬¡¢ -¤³¤ì¤Ï¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤Ç¤Ï¤Ê¤¯¡¢¼Â¥æ¡¼¥¶¡¼ ID ¤ò»ÈÍѤ¹¤ë¡£ +があるが、 +これは実効ユーザー ID ではなく、実ユーザー ID を使用する。 .BR cuserid () -´Ø¿ô¤Ï 1988 ǯÈǤΠPOSIX ¤Ë¤Ï´Þ¤Þ¤ì¤Æ¤¤¤¿¤¬¡¢ -1990 ǯÈǤǤϺï½ü¤µ¤ì¤¿¡£ -SUSv2 ¤Ë¸ºß¤·¤¿¤¬¡¢POSIX.1-2001 ¤Çºï½ü¤µ¤ì¤¿¡£ +関数は 1988 年版の POSIX には含まれていたが、 +1990 年版では削除された。 +SUSv2 に存在したが、POSIX.1-2001 で削除された。 .LP .\"O OpenBSD has .\"O .BR getlogin () @@ -242,15 +242,15 @@ SUSv2 .\"O .BR setlogin (), .\"O and a username .\"O associated with a session, even if it has no controlling tty. -OpenBSD ¤Ë¤Ï +OpenBSD には .BR getlogin () -¤È +と .BR setlogin () -¤¬¤¢¤ê¡¢ -¥»¥Ã¥·¥ç¥ó¤ËÂбþ¤·¤¿¥æ¡¼¥¶Ì¾¤¬¤¢¤ë¡£À©¸æüËö¤¬¤Ê¤¤ -¥»¥Ã¥·¥ç¥ó¤Î¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢Âбþ¤¹¤ë¥æ¡¼¥¶Ì¾¤¬¤¢¤ë¡£ +があり、 +セッションに対応したユーザ名がある。制御端末がない +セッションの場合であっても、対応するユーザ名がある。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Unfortunately, it is often rather easy to fool .\"O .BR getlogin (). .\"O Sometimes it does not work at all, because some program messed up @@ -262,16 +262,16 @@ OpenBSD .\"O Avoid .\"O .BR getlogin () .\"O for security-related purposes. -»ÄÇ°¤Ê¤¬¤é¡¢ +残念ながら、 .BR getlogin () -¤ò¤À¤Þ¤¹¤Î¤Ï¤½¤ì¤Û¤ÉÆñ¤·¤¤¤³¤È¤Ç¤Ï¤Ê¤¤¡£ÊÌ¤Î¥×¥í¥°¥é¥à¤¬ utmp ¥Õ¥¡¥¤¥ë¤ò -²õ¤·¤Æ¤·¤Þ¤¦¤È¡¢Á´¤¯Æ°ºî¤·¤Ê¤¤¤³¤È¤â¤¢¤ë¡£¤Þ¤¿¥í¥°¥¤¥ó̾¤ÎºÇ½é¤Î 8 ʸ»ú -¤·¤«ÊÖ¤µ¤Ê¤¤¤³¤È¤â¿¤¤¡£¤Þ¤¿¥×¥í¥°¥é¥à¤òÀ©¸æ¤·¤Æ¤¤¤ë tty ¤Ë -¸½ºß¥í¥°¥¤¥ó¤·¤Æ¤¤¤ë¥æ¡¼¥¶¡¼¤Ï¡¢¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤¿ -¥æ¡¼¥¶¡¼¤Ç¤Ê¤¤¾ì¹ç¤â¤¢¤ë¡£ -¥»¥­¥å¥ê¥Æ¥£¤ÎÍí¤àÍÑÅÓ¤Ë¤Ï +をだますのはそれほど難しいことではない。別のプログラムが utmp ファイルを +壊してしまうと、全く動作しないこともある。またログイン名の最初の 8 文字 +しか返さないことも多い。またプログラムを制御している tty に +現在ログインしているユーザーは、プログラムを実行した +ユーザーでない場合もある。 +セキュリティの絡む用途には .BR getlogin () -¤òÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +を用いるべきではない。 .LP .\"O Note that glibc does not follow the POSIX specification and uses .\"O .I stdin @@ -282,14 +282,14 @@ OpenBSD .\"O all return the login name also when .\"O .I stdin .\"O is redirected.) -glibc ¤Ï POSIX »ÅÍͤˤϽ¾¤Ã¤Æ¤ª¤é¤º¡¢ +glibc は POSIX 仕様には従っておらず、 .I /dev/tty -¤Ç¤Ï¤Ê¤¯ -.I "ɸ½àÆþÎÏ (stdin)" -¤ò»È¤¦¡£¤³¤ì¤Ï¥Ð¥°¤Ç¤¢¤ë¡£ -(SunOS 5.8 ¤ä HP-UX 11.11 ¤ä FreeBSD 4.8 ¤È¤¤¤Ã¤¿Â¾¤ÎºÇ¶á¤Î¥·¥¹¥Æ¥à¤Ï¤¤¤º¤ì¤â¡¢ -.I ɸ½àÆþÎÏ -¤¬¥ê¥À¥¤¥ì¥¯¥È¤µ¤ì¤¿¾ì¹ç¤Ç¤â¥í¥°¥¤¥ó̾¤òÊÖ¤¹¡£) +ではなく +.I "標準入力 (stdin)" +を使う。これはバグである。 +(SunOS 5.8 や HP-UX 11.11 や FreeBSD 4.8 といった他の最近のシステムはいずれも、 +.I 標準入力 +がリダイレクトされた場合でもログイン名を返す。) .LP .\"O Nobody knows precisely what .\"O .BR cuserid () @@ -301,19 +301,19 @@ glibc .\"O .B Do not use .\"O .BR cuserid (). .BR cuserid () -¤¬²¿¤ò¹Ô¤Ã¤Æ¤¤¤ë¤Î¤«¡¢¼ÂºÝ¤Î¤È¤³¤í¤òÃΤäƤ¤¤ë¼Ô¤Ïï¤â¤¤¤Ê¤¤; -°Ü¿¢À­¤¬µá¤á¤é¤ì¤ë¥×¥í¥°¥é¥à¤Ç¤Ï +が何を行っているのか、実際のところを知っている者は誰もいない; +移植性が求められるプログラムでは .BR cuserid () -¤Ï»È¤¦¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¤È¤¤¤¦¤«¤É¤ó¤Ê¥×¥í¥°¥é¥à¤Ç¤â»È¤¦¤Ù¤­¤Ç¤Ï¤Ê¤¤: -Âå¤ï¤ê¤Ë +は使うべきではない。 +というかどんなプログラムでも使うべきではない: +代わりに .I getpwuid(geteuid()) -¤òÍѤ¤¤ë¤Ù¤­¤Ç¤¢¤ë -(¤³¤ì¤¬°Õ¿Þ¤·¤Æ¤¤¤ë¤³¤È¤Ê¤é¤Ð¡¢¤À¤¬)¡£ +を用いるべきである +(これが意図していることならば、だが)。 .BR cuserid () -¤Ï¡Ö»È¤ï¤Ê¤¤¡×¤³¤È¡£ +は「使わない」こと。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR geteuid (2), .BR getuid (2), .BR utmp (5) diff --git a/draft/man3/getmntent.3 b/draft/man3/getmntent.3 index 4fe1626a..ae20388f 100644 --- a/draft/man3/getmntent.3 +++ b/draft/man3/getmntent.3 @@ -36,11 +36,11 @@ .\"O .SH NAME .\"O getmntent, setmntent, addmntent, endmntent, hasmntopt, .\"O getmntent_r \- get file system descriptor file entry -.SH ̾Á° +.SH 名前 getmntent, setmntent, addmntent, endmntent, hasmntopt, -getmntent_r \- ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àµ­½Ò¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥È¥ê¤ò¼èÆÀ¤¹¤ë +getmntent_r \- ファイルシステム記述ファイルのエントリを取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -56,7 +56,7 @@ getmntent_r \- .BI "char *hasmntopt(const struct mntent *" mnt ", const char *" opt ); .sp .\"O /* GNU extension */ -/* GNU ¤Ë¤è¤ë³ÈÄ¥ */ +/* GNU による拡張 */ .B #include .sp .BI "struct mntent *getmntent_r(FILE *" fp ", struct mntent *" mntbuf , @@ -66,21 +66,21 @@ getmntent_r \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR getmntent_r (): _BSD_SOURCE || _SVID_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These routines are used to access the file system description file .\"O \fI/etc/fstab\fP and the mounted file system description file .\"O \fI/etc/mtab\fP. -¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òµ­½Ò¤·¤¿¥Õ¥¡¥¤¥ë \fI/etc/fstab\fP -¤È¡¢¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òµ­½Ò¤·¤¿¥Õ¥¡¥¤¥ë -\fI/etc/mtab\fP ¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ +これらのルーチンは、ファイルシステムを記述したファイル \fI/etc/fstab\fP +と、マウントされているファイルシステムを記述したファイル +\fI/etc/mtab\fP にアクセスするために用いられる。 .PP .\"O The .\"O .BR setmntent () @@ -91,12 +91,12 @@ _BSD_SOURCE || _SVID_SOURCE .\"O required and can take the same values as the \fImode\fP argument of .\"O .BR fopen (3). .BR setmntent () -´Ø¿ô¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Îµ­½Ò¥Õ¥¡¥¤¥ë \fIfilename\fP ¤ò¥ª¡¼¥×¥ó¤·¤Æ¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£¤³¤Î¥Õ¥¡¥¤¥ë¥Ý¥¤¥ó¥¿¤Ï +関数は、ファイルシステムの記述ファイル \fIfilename\fP をオープンして、 +そのファイルポインタを返す。このファイルポインタは .BR getmntent () -¤Ë¤è¤Ã¤ÆÍѤ¤¤é¤ì¤ë¡£°ú¤­¿ô \fItype\fP ¤ÏÍ׵᤹¤ë¥¢¥¯¥»¥¹·Á¼°¤Ç¡¢ +によって用いられる。引き数 \fItype\fP は要求するアクセス形式で、 .BR fopen (3) -¤Î \fImode\fP °ú¤­¿ô¤ÈƱ¤¸Ãͤò¼è¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +の \fImode\fP 引き数と同じ値を取ることができる。 .PP .\"O The .\"O .BR getmntent () @@ -108,11 +108,11 @@ _BSD_SOURCE || _SVID_SOURCE .\"O calls to .\"O .BR getmntent (). .BR getmntent () -´Ø¿ô¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Îµ­½Ò¥Õ¥¡¥¤¥ë \fIfp\fP ¤«¤é¿·¤·¤¤¹Ô¤òÆÉ -¤ß¹þ¤ß¡¢¹Ô¤ò¥Õ¥£¡¼¥ë¥É¤Ëʬ³ä¤·¤¿ÆâÍƤò¼ý¤á¤¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¥Ý¥¤¥ó¥¿¤Ï¥á¥â¥ê¤ÎÀÅŪ¤ÊÎΰè¤ò»Ø¤·¤Æ¤ª¤ê¡¢¤³¤ÎÎΰè¤Ï +関数はファイルシステムの記述ファイル \fIfp\fP から新しい行を読 +み込み、行をフィールドに分割した内容を収めた構造体へのポインタを返す。 +ポインタはメモリの静的な領域を指しており、この領域は .BR getmntent () -¤ò¼¡¤Ë¸Æ¤Ó½Ð¤·¤¿¤È¤­¤Ë¾å½ñ¤­¤µ¤ì¤Æ¤·¤Þ¤¦¡£ +を次に呼び出したときに上書きされてしまう。 .PP .\"O The .\"O .BR addmntent () @@ -121,17 +121,17 @@ _BSD_SOURCE || _SVID_SOURCE .\"O structure \fImnt\fP to .\"O the end of the open file \fIfp\fP. .BR addmntent () -´Ø¿ô¤Ï +関数は .I mntent -¹½Â¤ÂÎ \fImnt\fP ¤ÎÆâÍƤò¡¢¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë -\fIfp\fP ¤ÎºÇ¸å¤ËÄɲ乤롣 +構造体 \fImnt\fP の内容を、オープンされているファイル +\fIfp\fP の最後に追加する。 .PP .\"O The .\"O .BR endmntent () .\"O function closes the file system description file .\"O \fIfp\fP. .BR endmntent () -´Ø¿ô¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Îµ­½Ò¥Õ¥¡¥¤¥ë \fIfp\fP ¤òÊĤ¸¤ë¡£ +関数はファイルシステムの記述ファイル \fIfp\fP を閉じる。 .PP .\"O The .\"O .BR hasmntopt () @@ -143,13 +143,13 @@ _BSD_SOURCE || _SVID_SOURCE .\"O .BR mount (8) .\"O for valid mount options. .BR hasmntopt () -´Ø¿ô¤Ï +関数は .I mntent -¹½Â¤ÂÎ \fImnt\fP ¤Î \fImnt_opts\fP ¥Õ¥£¡¼¥ë¥É (²¼µ­ -»²¾È) ¤ò¥¹¥­¥ã¥ó¤·¡¢ \fIopt\fP ¤Ë°ìÃפ¹¤ëÉôʬʸ»úÎ󤬤¢¤ë¤«¤òÄ´¤Ù¤ë¡£ -Í­¸ú¤Ê¥Þ¥¦¥ó¥È¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Ï \fI\fP ¤È +構造体 \fImnt\fP の \fImnt_opts\fP フィールド (下記 +参照) をスキャンし、 \fIopt\fP に一致する部分文字列があるかを調べる。 +有効なマウントオプションについては \fI\fP と .BR mount (8) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The reentrant \fBgetmntent_r\fP() function is similar to .\"O .BR getmntent (), @@ -160,23 +160,23 @@ _BSD_SOURCE || _SVID_SOURCE .\"O .I buf .\"O of size .\"O .IR buflen . -¥ê¥¨¥ó¥È¥é¥ó¥È¤Ê´Ø¿ô +リエントラントな関数 .BR getmntent_r () -¤Ï +は .BR getmntent () -¤ÈƱ¤¸¤À¤¬¡¢ -¥æ¡¼¥¶¤¬ÍÑ°Õ¤·¤¿ +と同じだが、 +ユーザが用意した .I *mntbuf -¤Ë \fIstruct mount\fP ¤ò³ÊǼ¤·¡¢¤½¤Î¹½Â¤ÂΤγƥ¨¥ó¥È¥ê¤¬»Ø¤·¼¨¤¹Ê¸»úÎó¤ò -¥æ¡¼¥¶¤¬ÍÑ°Õ¤·¤¿Â礭¤µ +に \fIstruct mount\fP を格納し、その構造体の各エントリが指し示す文字列を +ユーザが用意した大きさ .I buflen -¤ÎÇÛÎó +の配列 .I buf -¤Ë½ñ¤­¹þ¤à¡£ +に書き込む。 .PP .\"O The \fImntent\fP structure is defined in \fI\fP as follows: -\fImntent\fP ¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +\fImntent\fP 構造体は \fI\fP で以下のように定義されている。 .sp .in +4n .nf @@ -203,20 +203,20 @@ struct mntent { .\"O .BR getmntent () .\"O will convert .\"O from string representation to escaped representation and back. -mtab ¤ä fstab ¥Õ¥¡¥¤¥ë¤Ç¤Ï¡¢³Æ¥Õ¥£¡¼¥ë¥É¤Ï¶õÇò¤Ç¶èÀÚ¤é¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢ -¥¹¥Ú¡¼¥¹¡¢¥¿¥Ö¡¢²þ¹Ô¡¢¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤Î 4ʸ»ú¤ò¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ç -»È¤¤¤¿¤¤¾ì¹ç¤Ç¡¢¤«¤Ä +mtab や fstab ファイルでは、各フィールドは空白で区切られているので、 +スペース、タブ、改行、バックスラッシュの 4文字をこれらのファイルで +使いたい場合で、かつ .I mntent -¹½Â¤ÂΤΠ4¤Ä¤Îʸ»úÎó¥á¥ó¥Ð¡¼¤Î¤¤¤º¤ì¤«¤ËÂбþ¤¹¤ë¥Õ¥£¡¼¥ë¥ÉÆâ¤Ç -»È¤¤¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢8¿Ê¤Î¥¨¥¹¥±¡¼¥×ɽµ­¤ò»È¤Ã¤Æɽ¸½¤¹¤ë: -¥¹¥Ú¡¼¥¹ (\e040), ¥¿¥Ö (\e011), ²þ¹Ô (\e012), ¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å (\e134)¡£ +構造体の 4つの文字列メンバーのいずれかに対応するフィールド内で +使いたい場合には、8進のエスケープ表記を使って表現する: +スペース (\e040), タブ (\e011), 改行 (\e012), バックスラッシュ (\e134)。 .BR addmntent () -¤È +と .BR getmntent () -¤Ï¡¢Ê¸»úÎóɽ¸½¤«¤é -¥¨¥¹¥±¡¼¥×ɽ¸½¤Ø¤ÎÊÑ´¹¡¢¤ª¤è¤Ó¤½¤ÎµÕ¤ò¹Ô¤¦¡£ +は、文字列表現から +エスケープ表現への変換、およびその逆を行う。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR getmntent () .\"O and @@ -226,52 +226,52 @@ mtab .\"O .I mntent .\"O structure or NULL on failure. .BR getmntent () -¤È +と .BR getmntent_r () -¤Ï +は .I mntent -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +構造体へのポインタを返す。 +失敗した場合は NULL を返す。 .PP .\"O The .\"O .BR addmntent () .\"O function returns 0 on success and 1 on failure. -.\Baddmntent\fP() ´Ø¿ô¤ÏÀ®¸ù¤·¤¿¤é 0 ¤òÊÖ¤·¡¢¼ºÇÔ¤·¤¿¤é 1 ¤òÊÖ¤¹¡£ +.\Baddmntent\fP() 関数は成功したら 0 を返し、失敗したら 1 を返す。 .PP .\"O The .\"O .BR endmntent () .\"O function always returns 1. .BR endmntent () -´Ø¿ô¤Ï¤Ä¤Í¤Ë 1 ¤òÊÖ¤¹¡£ +関数はつねに 1 を返す。 .PP .\"O The .\"O .BR hasmntopt () .\"O function returns the address of the substring if .\"O a match is found and NULL otherwise. .BR hasmntopt () -´Ø¿ô¤Ï¡¢¥Þ¥Ã¥Á¤·¤¿¾ì¹ç¤ÏÉôʬʸ»úÎó¤Ø¤Î¥¢¥É¥ì¥¹¤òÊÖ¤·¡¢ -¥Þ¥Ã¥Á¤·¤Ê¤±¤ì¤Ð NULL ¤òÊÖ¤¹¡£ +関数は、マッチした場合は部分文字列へのアドレスを返し、 +マッチしなければ NULL を返す。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .nf .\"O /etc/fstab file system description file .\"O /etc/mtab mounted file system description file -/etc/fstab ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àµ­½Ò¥Õ¥¡¥¤¥ë -/etc/mtab ¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Îµ­½Ò¥Õ¥¡¥¤¥ë +/etc/fstab ファイルシステム記述ファイル +/etc/mtab マウントされたファイルシステムの記述ファイル .fi .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The nonreentrant functions are from SunOS 4.1.3. .\"O A routine .\"O .BR getmntent_r () .\"O was introduced in HP-UX 10, but it returns an int. .\"O The prototype shown above is glibc-only. -¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤Ê¤¤´Ø¿ô¤Ï SunOS 4.1.3 ͳÍè¤Î¤â¤Î¤Ç¤¢¤ë¡£ +リエントラントでない関数は SunOS 4.1.3 由来のものである。 .BR getmntent_r () -´Ø¿ô¤Ï HPUX 10 ¤ÇƳÆþ¤µ¤ì¤¿¤¬¡¢¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï int ¤òÊÖ¤¹¡£ -¾åµ­¤Ë¼¨¤·¤¿¥×¥í¥È¥¿¥¤¥×¤Ï glibc Æȼ«¤Î¤â¤Î¤Ç¤¢¤ë¡£ +関数は HPUX 10 で導入されたが、このバージョンでは int を返す。 +上記に示したプロトタイプは glibc 独自のものである。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O System V also has a .\"O .BR getmntent () .\"O function but the calling sequence @@ -279,25 +279,25 @@ mtab .\"O Under System V .\"O .I /etc/mnttab .\"O is used. -System V ¤Ë¤â +System V にも .BR getmntent () -´Ø¿ô¤Ï¤¢¤ë¤¬¡¢ -¸Æ¤Ó½Ð¤·¼ê½ç¤¬°Û¤Ê¤ê¡¢ÊÖ¤µ¤ì¤ë¹½Â¤ÂΤâ°Û¤Ê¤ë¡£ -System V ¤Ç¤Ï +関数はあるが、 +呼び出し手順が異なり、返される構造体も異なる。 +System V では .I /etc/mnttab -¤¬ÍѤ¤¤é¤ì¤ë¡£ +が用いられる。 .\"O 4.4BSD and Digital UNIX have a routine .\"O .BR getmntinfo (), .\"O a wrapper around the system call .\"O .BR getfsstat (). -4.4BSD ¤È Digital UNIX ¤Ë¤Ï +4.4BSD と Digital UNIX には .BR getmntinfo () -¤¬¤¢¤ë¤¬¡¢ -¥·¥¹¥Æ¥à¥³¡¼¥ë +があるが、 +システムコール .BR getfsstat () -¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ç¤¢¤ë¡£ +のラッパー関数である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fopen (3), .BR fstab (5), .BR mount (8) diff --git a/draft/man3/getnameinfo.3 b/draft/man3/getnameinfo.3 index ee882e39..d426fb82 100644 --- a/draft/man3/getnameinfo.3 +++ b/draft/man3/getnameinfo.3 @@ -11,11 +11,11 @@ .\" .TH GETNAMEINFO 3 2009-12-03 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getnameinfo \- address-to-name translation in protocol-independent manner -getnameinfo \- ¥¢¥É¥ì¥¹¤«¤é̾Á°¤Ø¤ÎÊÑ´¹¤ò¥×¥í¥È¥³¥ë¤Ë°Í¸¤·¤Ê¤¤¤«¤¿¤Á¤Ç¹Ô¤¦ +getnameinfo \- アドレスから名前への変換をプロトコルに依存しないかたちで行う .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -28,9 +28,9 @@ getnameinfo \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .ad l .in .sp @@ -38,7 +38,7 @@ glibc _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR getnameinfo () .\"O function is the inverse of @@ -54,19 +54,19 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O is reentrant and allows programs to eliminate .\"O IPv4-versus-IPv6 dependencies. .BR getnameinfo () -´Ø¿ô¤Ï¡¢ +関数は、 .BR getaddrinfo (3) -¤ÎµÕ¤ÎÆ°ºî¤ò¹Ô¤¦¡£¤Ä¤Þ¤ê¡¢¥×¥í¥È¥³¥ë¤Ë°Í¸¤·¤Ê¤¤¤«¤¿¤Á¤Ç -¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤«¤éÂбþ¤¹¤ë¥Û¥¹¥È̾¤È¥µ¡¼¥Ó¥¹¤Ø¤ÎÊÑ´¹¤ò¹Ô¤¦¡£ -¤³¤Î´Ø¿ô¤Ï +の逆の動作を行う。つまり、プロトコルに依存しないかたちで +ソケットアドレスから対応するホスト名とサービスへの変換を行う。 +この関数は .BR gethostbyaddr (3) -¤È +と .BR getservbyport (3) -¤Îµ¡Ç½¤ò°ì¤Ä¤Ë¤·¤¿¤â¤Î¤À¤¬¡¢ -¤³¤ì¤é¤Î´Ø¿ô¤È°ã¤¤¡¢ +の機能を一つにしたものだが、 +これらの関数と違い、 .BR getnameinfo (3) -¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤¢¤ê¡¢IPv4 ¤È IPv6 ¤Îº¹Ê¬¤Ë°Í¸¤·¤Ê¤¤¤«¤¿¤Á¤Ç -¥×¥í¥°¥é¥à¤ò½ñ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£ +はリエントラントであり、IPv4 と IPv6 の差分に依存しないかたちで +プログラムを書くことができる。 .\"O The .\"O .I sa @@ -79,17 +79,17 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O .I salen .\"O that holds the input IP address and port number. .I sa -°ú¤­¿ô¤Ï¡¢ -IP ¥¢¥É¥ì¥¹¤È¥Ý¡¼¥ÈÈÖ¹æ¤Î¾ðÊó¤òÊÝ»ý¤·¤Æ¤¤¤ë -ÈÆÍÑŪ¤Ê¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¹½Â¤ÂÎ +引き数は、 +IP アドレスとポート番号の情報を保持している +汎用的なソケットアドレス構造体 .RI ( sockaddr_in -·¿¤Þ¤¿¤Ï +型または .I sockaddr_in6 -·¿) ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +型) へのポインタである。 .I salen -¤Ï +は .I sa -¤Î¥µ¥¤¥º¤Ç¤¢¤ë¡£ +のサイズである。 .\"O The arguments .\"O .I host .\"O and @@ -103,15 +103,15 @@ IP .\"O places null-terminated strings containing the host and .\"O service names respectively. .I host -¤È +と .I serv -°ú¤­¿ô¤Ï¡¢(¤½¤ì¤¾¤ì¥µ¥¤¥º¤¬ +引き数は、(それぞれサイズが .I hostlen -¤È +と .I servlen -¤Î) ¸Æ¤Ó½Ð¤·Â¦¤Ç³ÎÊݤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ê¡¢ -¥Û¥¹¥È̾¤È¥µ¡¼¥Ó¥¹Ì¾¤ò´Þ¤à NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤¬ -¤½¤ì¤¾¤ì¤Î¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤ë¡£ +の) 呼び出し側で確保されたバッファへのポインタであり、 +ホスト名とサービス名を含む NULL 終端された文字列が +それぞれのバッファに格納される。 .\"O The caller can specify that no hostname (or no service name) .\"O is required by providing a NULL @@ -125,17 +125,17 @@ IP .\"O argument. .\"O However, at least one of hostname or service name .\"O must be requested. -¥Û¥¹¥È̾¤¬ÉÔÍפǤ¢¤ë¤³¤È¤ò¤³¤Î´Ø¿ô¤ËÅÁ¤¨¤ë¤Ë¤Ï¡¢ +ホスト名が不要であることをこの関数に伝えるには、 .I host -¤Ë NULL ¤ò»ØÄꤹ¤ë¤«¡¢ +に NULL を指定するか、 .I hostlen -¤Ë 0 ¤ò»ØÄꤹ¤ë¡£Æ±Íͤˡ¢¥µ¡¼¥Ó¥¹Ì¾¤¬ÉÔÍפʾì¹ç¤Ï¡¢ +に 0 を指定する。同様に、サービス名が不要な場合は、 .I serv -¤Ë NULL ¤ò»ØÄꤹ¤ë¤«¡¢ +に NULL を指定するか、 .I servlen -¤Ë 0 ¤ò»ØÄꤹ¤ë¡£ -¤·¤«¤·¡¢¥Û¥¹¥È̾¤È¥µ¡¼¥Ó¥¹Ì¾¤ÎξÊý¤òÉÔÍפÀ¤È»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤ -(¤¤¤º¤ì¤«°ìÊý¤ÏÍ׵᤹¤ë¤³¤È)¡£ +に 0 を指定する。 +しかし、ホスト名とサービス名の両方を不要だと指定することはできない +(いずれか一方は要求すること)。 .\"O The .\"O .I flags @@ -143,29 +143,29 @@ IP .\"O .BR getnameinfo () .\"O as follows: .I flags -°ú¤­¿ô¤Ç +引き数で .BR getnameinfo () -¤ÎÆ°ºî¤òÊѤ¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£»ØÄê¤Ç¤­¤ëÃͤϰʲ¼¤ÎÄ̤ê: +の動作を変えることができる。指定できる値は以下の通り: .TP .B NI_NAMEREQD .\"O If set, then an error is returned if the hostname cannot be determined. -»ØÄꤹ¤ë¤È¡¢¥Û¥¹¥È̾¤¬·èÄê¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¥¨¥é¡¼¤òÊÖ¤¹¡£ +指定すると、ホスト名が決定できなかった場合にエラーを返す。 .TP .B NI_DGRAM .\"O If set, then the service is datagram (UDP) based rather than .\"O stream (TCP) based. .\"O This is required for the few ports (512-514) .\"O that have different services for UDP and TCP. -»ØÄꤹ¤ë¤È¡¢¥¹¥È¥ê¡¼¥à¥Ù¡¼¥¹ (TCP) ¤Ç¤Ê¤¯¥Ç¡¼¥¿¥°¥é¥à¥Ù¡¼¥¹ (UDP) -¤Î¥µ¡¼¥Ó¥¹¤òÂоݤˤ¹¤ë¡£¿ô¤Ï¾¯¤Ê¤¤¤¬¡¢ -UDP ¤È TCP ¤Ç°ã¤¦¥µ¡¼¥Ó¥¹¤òÄ󶡤·¤Æ¤¤¤ë¥Ý¡¼¥È -(512-514) ¤ËÂФ·¤ÆɬÍפȤʤ롣 +指定すると、ストリームベース (TCP) でなくデータグラムベース (UDP) +のサービスを対象にする。数は少ないが、 +UDP と TCP で違うサービスを提供しているポート +(512-514) に対して必要となる。 .TP .B NI_NOFQDN .\"O If set, return only the hostname part of the fully qualified domain name .\"O for local hosts. -»ØÄꤹ¤ë¤È¡¢¥í¡¼¥«¥ë¤Ê¥Û¥¹¥È¤Ë¤Ï fully qualified domain name (FQDN) ¤Î -¥Û¥¹¥È̾¤ÎÉôʬ¤Î¤ß¤òÊÖ¤¹¡£ +指定すると、ローカルなホストには fully qualified domain name (FQDN) の +ホスト名の部分のみを返す。 .TP .B NI_NUMERICHOST .\"O If set, then the numeric form of the hostname is returned. @@ -175,24 +175,24 @@ UDP .\"O .\" .BR gethostbyaddr (). .\"O (When not set, this will still happen in case the node's name .\"O cannot be determined.) -»ØÄꤹ¤ë¤È¡¢¿ôÃÍ·Á¼°¤Î¥Û¥¹¥È̾¤¬ÊÖ¤µ¤ì¤ë¡£ -.\" Î㤨¤Ð +指定すると、数値形式のホスト名が返される。 +.\" 例えば .\" .BR gethostbyaddr () -.\" ¤ÎÂå¤ï¤ê¤Ë +.\" の代わりに .\" .BR inet_ntop () -.\" ¤ò¸Æ¤Ö -(»ØÄꤷ¤Ê¤¯¤Æ¤â¡¢¥Î¡¼¥É¤Î̾Á°¤¬·èÄê¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¿ôÃÍ·Á¼°¤¬Ê֤뤳¤È¤¬¤¢¤ë)¡£ +.\" を呼ぶ +(指定しなくても、ノードの名前が決定できない場合は数値形式が返ることがある)。 .\" POSIX.1-2003 has NI_NUMERICSCOPE, but glibc doesn't have it. .TP .B NI_NUMERICSERV .\"O If set, then the numeric form of the service address is returned. .\"O (When not set, this will still happen in case the service's name .\"O cannot be determined.) -»ØÄꤹ¤ë¤È¡¢¿ôÃÍ·Á¼°¤Î¥µ¡¼¥Ó¥¹Ì¾ (Î㤨¤Ð¥Ý¡¼¥ÈÈÖ¹æ) ¤¬ÊÖ¤µ¤ì¤ë -(»ØÄꤷ¤Ê¤¯¤Æ¤â¡¢¥µ¡¼¥Ó¥¹Ì¾¤¬·èÄê¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¿ôÃÍ·Á¼°¤¬Ê֤뤳¤È¤¬¤¢¤ë)¡£ +指定すると、数値形式のサービス名 (例えばポート番号) が返される +(指定しなくても、サービス名が決定できない場合は数値形式が返ることがある)。 .\"O .SS "Extensions to getaddrinfo() for Internationalized Domain Names" -.SS "¹ñºÝ²½¥É¥á¥¤¥ó̾¤Î¤¿¤á¤Î getnameinfo() ¤Î³ÈÄ¥" -.\"O motoki: ¸¶Ê¸¤Î getaddrinfo() ¤Ï getnameinfo() ¤Î´Ö°ã¤¤¤È»×¤ï¤ì¤ë¡£ +.SS "国際化ドメイン名のための getnameinfo() の拡張" +.\"O motoki: 原文の getaddrinfo() は getnameinfo() の間違いと思われる。 .PP .\"O Starting with glibc 2.3.4, .\"O .BR getnameinfo () @@ -201,24 +201,24 @@ UDP .\"O Internationalized Domain Name (IDN) format (see RFC 3490, .\"O .IR "Internationalizing Domain Names in Applications (IDNA)" ). .\"O Three new flags are defined: -glibc 2.3.4 ¤«¤é¡¢ +glibc 2.3.4 から、 .BR getnameinfo () -¤Ë³ÈÄ¥¤¬¹Ô¤ï¤ì¡¢¥Û¥¹¥È̾¤È -¹ñºÝ²½¥É¥á¥¤¥ó̾ (Internationalized Domain Name; IDN) ·Á¼°¤È¤Î´Ö¤Ç -Æ©²áŪ¤ÊÊÑ´¹¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë -(IDN ·Á¼°¤Ë¤Ä¤¤¤Æ¤Ï RFC 3490 ¤Î +に拡張が行われ、ホスト名と +国際化ドメイン名 (Internationalized Domain Name; IDN) 形式との間で +透過的な変換ができるようになっている +(IDN 形式については RFC 3490 の .I "Internationalizing Domain Names in Applications (IDNA)" -¤ò»²¾È)¡£3¤Ä¤Î¥Õ¥é¥°¤¬¿·¤¿¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +を参照)。3つのフラグが新たに定義されている: .TP .B NI_IDN .\"O If this flag is used, then the name found in the lookup process is .\"O converted from IDN format to the locale's encoding if necessary. .\"O ASCII-only names are not affected by the conversion, which .\"O makes this flag usable in existing programs and environments. -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È¡¢É¬ÍפǤ¢¤ì¤Ð¡¢¸¡º÷½èÍý¤Ç¸«¤Ä¤«¤Ã¤¿Ì¾Á°¤Ï -IDN ·Á¼°¤«¤é¥í¥±¡¼¥ë¤Ë±þ¤¸¤¿Éä¹æ²½·Á¼°¤ËÊÑ´¹¤µ¤ì¤ë¡£ -ASCII ʸ»ú¤À¤±¤Î̾Á°¤Ï¤³¤ÎÊÑ´¹¤Ç¤Ï±Æ¶Á¤ò¼õ¤±¤Ê¤¤¡£¤³¤Î¤¿¤á¡¢ -´û¸¤Î¥×¥í¥°¥é¥à¤ä´Ä¶­¤Ç¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +このフラグを指定すると、必要であれば、検索処理で見つかった名前は +IDN 形式からロケールに応じた符号化形式に変換される。 +ASCII 文字だけの名前はこの変換では影響を受けない。このため、 +既存のプログラムや環境でこのフラグを使うことができる。 .TP .BR NI_IDN_ALLOW_UNASSIGNED ", " NI_IDN_USE_STD3_ASCII_RULES .\"O Setting these flags will enable the @@ -226,12 +226,12 @@ ASCII ʸ .\"O IDNA_USE_STD3_ASCII_RULES (check output to make sure it is a STD3 .\"O conforming host name) .\"O flags respectively to be used in the IDNA handling. -¤³¤ì¤é¤Î¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢IDNA ½èÍý¤Ç»ÈÍѤµ¤ì¤ë¥Õ¥é¥° -IDNA_ALLOW_UNASSIGNED (̤³ä¤êÅö¤Æ¤Î Unicode ¤Î¥³¡¼¥É¥Ý¥¤¥ó¥È¤òµöÍÆ) ¤È -IDNA_USE_STD3_ASCII_RULES (½ÐÎϤ¬ STD3 ½àµò¤Î¥Û¥¹¥È̾¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë) -¤¬¤½¤ì¤¾¤ìÍ­¸ú¤Ë¤Ê¤ë¡£ +これらのフラグをセットすると、IDNA 処理で使用されるフラグ +IDNA_ALLOW_UNASSIGNED (未割り当ての Unicode のコードポイントを許容) と +IDNA_USE_STD3_ASCII_RULES (出力が STD3 準拠のホスト名かをチェックする) +がそれぞれ有効になる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\" FIXME glibc defines the following additional errors, some which .\" can probably be returned by getnameinfo(); they need to .\" be documented. @@ -247,47 +247,47 @@ IDNA_USE_STD3_ASCII_RULES ( .\"O are filled with null-terminated strings, possibly truncated to fit .\"O the specified buffer lengths. .\"O On error one of the following nonzero error codes is returned: -À®¸ù¤¹¤ë¤È 0 ¤¬Ê֤ꡢ(Í׵ᤵ¤ì¤Æ¤¤¤ì¤Ð) ¥Î¡¼¥É¤È¥µ¡¼¥Ó¥¹¤Î̾Á°¤¬ -NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Î·Á¼°¤Ç¤½¤ì¤¾¤ì¤Î»ØÄê¥Ð¥Ã¥Õ¥¡¤ËÊÖ¤µ¤ì¤ë -(¥Ð¥Ã¥Õ¥¡¤ÎŤµ¤Ë¤¢¤¦¤è¤¦¤Ë½Ì¤á¤é¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤)¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢°Ê²¼¤Î 0 °Ê³°¤Î¥¨¥é¡¼¡¦¥³¡¼¥É¤¬ÊÖ¤µ¤ì¤ë: +成功すると 0 が返り、(要求されていれば) ノードとサービスの名前が +NULL 終端された文字列の形式でそれぞれの指定バッファに返される +(バッファの長さにあうように縮められるかもしれない)。 +エラーの場合は、以下の 0 以外のエラー・コードが返される: .TP .B EAI_AGAIN .\"O The name could not be resolved at this time. .\"O Try again later. -»ØÄꤵ¤ì¤¿Ì¾Á°¤¬¸½»þÅÀ¤Ç¤Ï²ò·è¤Ç¤­¤Ê¤«¤Ã¤¿¡£ -¸å¤ÇºÆ»î¹Ô¤·¤Æ¤ß¤ë¤³¤È¡£ +指定された名前が現時点では解決できなかった。 +後で再試行してみること。 .TP .B EAI_BADFLAGS .\"O The .\"O .I flags .\"O argument has an invalid value. .I flags -°ú¤­¿ô¤ËÉÔÀµ¤ÊÃͤ¬Í¿¤¨¤é¤ì¤¿¡£ +引き数に不正な値が与えられた。 .TP .B EAI_FAIL .\"O A nonrecoverable error occurred. -²óÉü¤Ç¤­¤Ê¤¤¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +回復できないエラーが発生した。 .TP .B EAI_FAMILY .\"O The address family was not recognized, .\"O or the address length was invalid for the specified family. -»ØÄꤷ¤¿¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤¬Ç§¼±¤Ç¤­¤Ê¤«¤Ã¤¿¡£ -¤¢¤ë¤¤¤Ï¥¢¥É¥ì¥¹¤ÎŤµ¤¬»ØÄꤵ¤ì¤¿¥Õ¥¡¥ß¥ê¡¼¤Ë¹ç¤¦¤â¤Î¤Ç¤Ê¤«¤Ã¤¿¡£ +指定したアドレスファミリーが認識できなかった。 +あるいはアドレスの長さが指定されたファミリーに合うものでなかった。 .TP .B EAI_MEMORY .\"O Out of memory. -¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£ +メモリが足りない。 .TP .B EAI_NONAME .\"O The name does not resolve for the supplied arguments. .\"O .B NI_NAMEREQD .\"O is set and the host's name cannot be located, .\"O or neither hostname nor service name were requested. -Í¿¤¨¤é¤ì¤¿¥Ñ¥é¥á¡¼¥¿¤Ç¤Ï̾Á°¤¬²ò·è¤Ç¤­¤Ê¤¤¡£ +与えられたパラメータでは名前が解決できない。 .B NI_NAMEREQD -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤¿¤¬¥Û¥¹¥È̾¤¬·èÄê¤Ç¤­¤Ê¤«¤Ã¤¿¤«¡¢ -¥Û¥¹¥È̾¤â¥µ¡¼¥Ó¥¹Ì¾¤âÍ׵ᤵ¤ì¤Ê¤«¤Ã¤¿¡£ +が設定されていたがホスト名が決定できなかったか、 +ホスト名もサービス名も要求されなかった。 .TP .B EAI_OVERFLOW .\"O The buffer pointed to by @@ -296,51 +296,51 @@ NULL .\"O .I serv .\"O was too small. .I host -¤Þ¤¿¤Ï +または .I serv -¤¬»Ø¤·¤Æ¤¤¤ë¥Ð¥Ã¥Õ¥¡¤¬¾®¤µ¤¹¤®¤¿¡£ +が指しているバッファが小さすぎた。 .TP .B EAI_SYSTEM .\"O A system error occurred. .\"O The error code can be found in .\"O .IR errno . -¥·¥¹¥Æ¥à¥¨¥é¡¼¤¬µ¯¤Ã¤¿¡£ -¥¨¥é¡¼¥³¡¼¥É¤Ï +システムエラーが起った。 +エラーコードは .I errno -¤ËÀßÄꤵ¤ì¤ë¡£ +に設定される。 .PP .\"O The .\"O .BR gai_strerror (3) .\"O function translates these error codes to a human readable string, .\"O suitable for error reporting. .BR gai_strerror (3) -´Ø¿ô¤ò»È¤¦¤È¡¢¤³¤ì¤é¤Î¥¨¥é¡¼¡¦¥³¡¼¥É¤ò¡¢¥¨¥é¡¼¡¦¥ì¥Ý¡¼¥È¤ËŬ¤·¤¿ -¿Í´Ö¤¬Æɤߤ䤹¤¤Ê¸»úÎó¤ËËÝÌõ¤·¤Æ¤¯¤ì¤ë¡£ +関数を使うと、これらのエラー・コードを、エラー・レポートに適した +人間が読みやすい文字列に翻訳してくれる。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル /etc/hosts .br /etc/nsswitch.conf .br /etc/resolv.conf .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR getnameinfo () .\"O is provided in glibc since version 2.1. .BR getnameinfo () -¤Ï¡¢glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +は、glibc バージョン 2.1 以降で提供されている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 RFC\ 2553, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O In order to assist the programmer in choosing reasonable sizes .\"O for the supplied buffers, .\"O .I .\"O defines the constants -ŬÀڤʥХåե¡¥µ¥¤¥º¤òÁªÂò¤Ç¤­¤ë¤è¤¦¤Ë¡¢ +適切なバッファサイズを選択できるように、 .I -¤Ë°Ê²¼¤ÎÄê¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +に以下の定数が定義されている。 .in +4n .nf @@ -356,11 +356,11 @@ RFC\ 2553, POSIX.1-2001. .\"O or .\"O .BR _GNU_SOURCE .\"O is defined. -glibc 2.8 °Ê¹ß¤Ç¤Ï¡¢µ¡Ç½¸¡ºº¥Þ¥¯¥í +glibc 2.8 以降では、機能検査マクロ .BR _BSD_SOURCE , .BR _SVID_SOURCE , .BR _GNU_SOURCE -¤Î¤¤¤º¤ì¤«¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë¤Î¤ß¡¢¤³¤ì¤é¤ÎÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£ +のいずれかが定義された場合にのみ、これらの定義が公開される。 .PP .\"O The former is the constant .\"O .B MAXDNAME @@ -369,23 +369,23 @@ glibc 2.8 .\"O header file. .\"O The latter is a guess based on the services listed .\"O in the current Assigned Numbers RFC. -Á°¼Ô¤Ï¡¢ºÇ¶á¤Î¥Ð¡¼¥¸¥ç¥ó¤Î BIND ¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë +前者は、最近のバージョンの BIND のヘッダファイル .I -Ãæ¤ÎÄê¿ô +中の定数 .B MAXDNAME -¤ÈƱ¤¸ÃͤǤ¢¤ë¡£ -¸å¼Ô¤Ï¡¢³ä¤êÅö¤ÆºÑ¤Î¿ôÃͤˤĤ¤¤Æµ­¤·¤¿¸½ºß¤Î RFC ¤Ë -Îóµó¤µ¤ì¤Æ¥µ¡¼¥Ó¥¹¤«¤é¿äÎ̤·¤¿ÃͤǤ¢¤ë¡£ +と同じ値である。 +後者は、割り当て済の数値について記した現在の RFC に +列挙されてサービスから推量した値である。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The following code tries to get the numeric hostname and service name, .\"O for a given socket address. .\"O Note that there is no hardcoded reference to .\"O a particular address family. -°Ê²¼¤Î¥³¡¼¥É¤Ï¡¢»ØÄꤵ¤ì¤¿¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤ËÂФ¹¤ë -¥Û¥¹¥È¤È¥µ¡¼¥Ó¥¹¤Î¿ôÃÍɽ¼°¤ò¼èÆÀ¤·¤è¤¦¤È»î¤ß¤ë¡£ -ÆÃÄê¤Î¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤ËÂФ¹¤ë»²¾È¾ðÊó¤Ï -°ìÀڥϡ¼¥É¥³¡¼¥É¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ËÃåÌܤ·¤Æ¤Û¤·¤¤¡£ +以下のコードは、指定されたソケットアドレスに対する +ホストとサービスの数値表式を取得しようと試みる。 +特定のアドレスファミリーに対する参照情報は +一切ハードコードされていないことに着目してほしい。 .in +4n .nf @@ -401,8 +401,8 @@ if (getnameinfo(sa, len, hbuf, sizeof(hbuf), sbuf, .\"O The following version checks if the socket address has a .\"O reverse address mapping. -°Ê²¼¤Ç¤Ï¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Ë -µÕ¸þ¤­¤Î¥¢¥É¥ì¥¹¥Þ¥Ã¥Ô¥ó¥°¤¬Â¸ºß¤¹¤ë¤«¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤¤¤ë¡£ +以下ではソケットアドレスに +逆向きのアドレスマッピングが存在するかをチェックしている。 .in +4n .nf @@ -423,11 +423,11 @@ else .\"O can be found in .\"O .BR getaddrinfo (3). .BR getnameinfo () -¤ò»È¤Ã¤¿¥×¥í¥°¥é¥àÎ㤬 +を使ったプログラム例が .BR getaddrinfo (3) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ +に記載されている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR accept (2), .BR getpeername (2), .BR getsockname (2), diff --git a/draft/man3/getnetent.3 b/draft/man3/getnetent.3 index 5eea8ba3..8020aae0 100644 --- a/draft/man3/getnetent.3 +++ b/draft/man3/getnetent.3 @@ -33,12 +33,12 @@ .\" .TH GETNETENT 3 2008-08-19 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getnetent, getnetbyname, getnetbyaddr, setnetent, endnetent \- .\"O get network entry -getnetent, getnetbyname, getnetbyaddr, setnetent, endnetent \- ¥Í¥Ã¥È¥ï¡¼¥¯¥¨¥ó¥È¥ê¤ò¼èÆÀ¤¹¤ë +getnetent, getnetbyname, getnetbyaddr, setnetent, endnetent \- ネットワークエントリを取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -53,7 +53,7 @@ getnetent, getnetbyname, getnetbyaddr, setnetent, endnetent \- .B void endnetent(void); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR getnetent () .\"O function reads the next entry from the networks database @@ -61,10 +61,10 @@ getnetent, getnetbyname, getnetbyaddr, setnetent, endnetent \- .\"O the broken-out fields from the entry. .\"O A connection is opened to the database if necessary. .BR getnetent () -´Ø¿ô¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¼¡¤Î¥¨¥ó¥È¥ê¤òÆɤ߹þ¤ß¡¢ -¤½¤Î¥¨¥ó¥È¥ê¤ò \fInetent\fP ¹½Â¤ÂΤÎÍ×ÁÇÊ̤Υե£¡¼¥ë¥É¤Ë³ÊǼ¤·¡¢ -¤½¤Î¹½Â¤ÂΤòÊÖ¤¹¡£ -ɬÍפǤ¢¤ì¤Ð¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤¬¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£ +関数はネットワークデータベースから次のエントリを読み込み、 +そのエントリを \fInetent\fP 構造体の要素別のフィールドに格納し、 +その構造体を返す。 +必要であれば、データベースへの接続がオープンされる。 .PP .\"O The .\"O .BR getnetbyname () @@ -72,8 +72,8 @@ getnetent, getnetbyname, getnetbyaddr, setnetent, endnetent \- .\"O for the entry from the database .\"O that matches the network \fIname\fP. .BR getnetbyname () -´Ø¿ô¤Ï¡¢¥Í¥Ã¥È¥ï¡¼¥¯Ì¾ \fIname\fP ¤Ë¥Þ¥Ã¥Á¤¹¤ë¥¨¥ó¥È¥ê¤ò -¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éõ¤·¡¢¤½¤Î¥¨¥ó¥È¥ê¤ò¼ý¤á¤¿ \fInetent\fP ¹½Â¤ÂΤòÊÖ¤¹¡£ +関数は、ネットワーク名 \fIname\fP にマッチするエントリを +データベースから探し、そのエントリを収めた \fInetent\fP 構造体を返す。 .PP .\"O The .\"O .BR getnetbyaddr () @@ -85,10 +85,10 @@ getnetent, getnetbyname, getnetbyaddr, setnetent, endnetent \- .\"O .I net .\"O argument must be in host byte order. .BR getnetbyaddr () -´Ø¿ô¤Ï¡¢\fItype\fP ·¿¤Î¥Í¥Ã¥È¥ï¡¼¥¯ÈÖ¹æ \fInet\fP ¤Ë¥Þ¥Ã¥Á¤¹¤ë¥¨¥ó¥È¥ê¤ò -¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éõ¤·¡¢¤½¤Î¥¨¥ó¥È¥ê¤ò¼ý¤á¤¿ \fInetent\fP ¹½Â¤ÂΤòÊÖ¤¹¡£ +関数は、\fItype\fP 型のネットワーク番号 \fInet\fP にマッチするエントリを +データベースから探し、そのエントリを収めた \fInetent\fP 構造体を返す。 .I net -°ú¤­¿ô¤Ï¥Û¥¹¥È¡¦¥Ð¥¤¥È¥ª¡¼¥À¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数はホスト・バイトオーダでなければならない。 .PP .\"O The .\"O .BR setnetent () @@ -100,21 +100,21 @@ getnetent, getnetbyname, getnetbyaddr, setnetent, endnetent \- .\"O .BR getnet* () .\"O functions. .BR setnetent () -´Ø¿ô¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤ò¥ª¡¼¥×¥ó¤·¡¢ -¼¡¤ÎÆɤ߹þ¤ß¥¨¥ó¥È¥ê¤òÀèƬ¤Î¥¨¥ó¥È¥ê¤ËÀßÄꤹ¤ë¡£ -\fIstayopen\fP ¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¡¢ -°ì¤Ä°ì¤Ä¤Î +関数はデータベースへの接続をオープンし、 +次の読み込みエントリを先頭のエントリに設定する。 +\fIstayopen\fP が 0 でない場合、 +一つ一つの .BR getnet* () -´Ø¿ô¤Î¸Æ¤Ó½Ð¤·´Ö¤Ç¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤ò¥¯¥í¡¼¥º¤·¤Ê¤¤¡£ +関数の呼び出し間でデータベースへの接続をクローズしない。 .PP .\"O The .\"O .BR endnetent () .\"O function closes the connection to the database. .BR endnetent () -´Ø¿ô¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +関数はデータベースへの接続をクローズする。 .PP .\"O The \fInetent\fP structure is defined in \fI\fP as follows: -\fInetent\fP ¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +\fInetent\fP 構造体は \fI\fP で以下のように定義されている。 .sp .in +4n .nf @@ -128,31 +128,31 @@ struct netent { .in .PP .\"O The members of the \fInetent\fP structure are: -\fInetent\fP ¹½Â¤ÂΤΥá¥ó¥Ð¤Ï°Ê²¼¤ÎÄ̤ꡣ +\fInetent\fP 構造体のメンバは以下の通り。 .RS .TP 12 .I n_name .\"O The official name of the network. -¥Í¥Ã¥È¥ï¡¼¥¯¤ÎÀµ¼°Ì¾ (official name)¡£ +ネットワークの正式名 (official name)。 .TP .I n_aliases .\"O A NULL-terminated list of alternative names for the network. -¥Í¥Ã¥È¥ï¡¼¥¯¤ÎÊÌ̾¤«¤é¤Ê¤ë¥ê¥¹¥È¡£ -¥ê¥¹¥È¤Ï NULL ¤Ç½ªÃ¼¤µ¤ì¤ë¡£ +ネットワークの別名からなるリスト。 +リストは NULL で終端される。 .TP .I n_addrtype .\"O The type of the network number; always .\"O .BR AF_INET . -¥Í¥Ã¥È¥ï¡¼¥¯ÈÖ¹æ¤Î·Á¼°¡£¸½ºß¤Ï +ネットワーク番号の形式。現在は .B AF_INET -¤Î¤ß¡£ +のみ。 .TP .I n_net .\"O The network number in host byte order. -¥Û¥¹¥È¡¦¥Ð¥¤¥È¥ª¡¼¥À·Á¼°¤Î¥Í¥Ã¥È¥ï¡¼¥¯Èֹ档 +ホスト・バイトオーダ形式のネットワーク番号。 .RE .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR getnetent (), .\"O .BR getnetbyname () @@ -164,35 +164,35 @@ struct netent { .BR getnetent (), .BR getnetbyname (), .BR getnetbyaddr () -´Ø¿ô¤Ï¡¢ÀÅŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿ \fInetent\fP ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¤ê¡¢¥Õ¥¡¥¤¥ë¤ÎËöÈø¤Ë㤷¤¿¾ì¹ç¤Ï NULL ¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +関数は、静的に割り当てられた \fInetent\fP 構造体へのポインタを返す。 +エラーが起こったり、ファイルの末尾に達した場合は NULL ポインタを返す。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .TP .\"O .I /etc/networks .\"O networks database file .I /etc/networks -¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë +ネットワークデータベースファイル .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.3BSD, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O In glibc versions before 2.2, the .\"O .I net .\"O argument of .\"O .BR getnetbyaddr () .\"O was of type .\"O .IR long . -¥Ð¡¼¥¸¥ç¥ó 2.2 ¤è¤êÁ°¤Î glibc ¤Ç¤Ï¡¢ +バージョン 2.2 より前の glibc では、 .BR getnetbyaddr () -¤Î°ú¤­¿ô +の引き数 .I net -¤Ï +は .I long -·¿¤À¤Ã¤¿¡£ +型だった。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getnetent_r (3), .BR getprotoent (3), .BR getservent (3) diff --git a/draft/man3/getopt.3 b/draft/man3/getopt.3 index c4749d1b..42639fb4 100644 --- a/draft/man3/getopt.3 +++ b/draft/man3/getopt.3 @@ -48,17 +48,17 @@ .\" Updated & Modified 2007-05-01, Akihiro MOTOKI, LDP v2.46 .\" Updated 2008-08-11, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: argv-element argv Í×ÁÇ +.\"WORD: argv-element argv 要素 .\" .TH GETOPT 3 2010-11-01 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getopt, getopt_long, getopt_long_only, .\"O optarg, optind, opterr, optopt \- Parse command-line options getopt, getopt_long, getopt_long_only, -optarg, optind, opterr, optopt \- ¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤ò²ò¼á¤¹¤ë +optarg, optind, opterr, optopt \- コマンドラインオプションを解釈する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -82,9 +82,9 @@ optarg, optind, opterr, optopt \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .ad l .in .sp @@ -96,7 +96,7 @@ _POSIX_C_SOURCE\ >=\ 2 || _XOPEN_SOURCE _GNU_SOURCE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR getopt () .\"O function parses the command-line arguments. @@ -108,15 +108,15 @@ _GNU_SOURCE .\"O .IR main () .\"O function on program invocation. .BR getopt () -´Ø¿ô¤Ï¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤ò²ò¼á¤¹¤ë¡£ +関数はコマンドライン引き数を解釈する。 .BR getopt () -¤¬¤È¤ë°ú¤­¿ô +がとる引き数 .I argc -¤È +と .I argv -¤Ï¡¢¤½¤ì¤¾¤ì¥×¥í¥°¥é¥à¤Îµ¯Æ°»þ¤Ë +は、それぞれプログラムの起動時に .IR main () -´Ø¿ô¤ËÅϤµ¤ì¤¿°ú¤­¿ô¤Î¸Ä¿ô¤ÈÇÛÎó¤Ç¤¢¤ë¡£ +関数に渡された引き数の個数と配列である。 .\"O An element of \fIargv\fP that starts with \(aq\-\(aq .\"O (and is not exactly "\-" or "\-\-") .\"O is an option element. @@ -126,13 +126,13 @@ _GNU_SOURCE .\"O .BR getopt () .\"O is called repeatedly, it returns successively each of the option characters .\"O from each of the option elements. -\fIargv\fP ¤ÎÍ×ÁǤΤ¦¤Á \(aq\-\(aq ¤Ç»Ï¤Þ¤ë¤â¤Î -(¤«¤Ä "\-" ñÆȤä "\-\-" ñÆȤǤϤʤ¤¤â¤Î) ¤Ï -¥ª¥×¥·¥ç¥óÍ×ÁÇ (option element) ¤È¤ß¤Ê¤µ¤ì¤ë¡£ -¤³¤ÎÍ×ÁǤ«¤éÀèƬ¤Î \(aq\-\(aq ¤ò½ü¤¤¤¿Ê¸»ú¤Ï -¥ª¥×¥·¥ç¥óʸ»ú (option character) ¤È¤µ¤ì¤ë¡£ +\fIargv\fP の要素のうち \(aq\-\(aq で始まるもの +(かつ "\-" 単独や "\-\-" 単独ではないもの) は +オプション要素 (option element) とみなされる。 +この要素から先頭の \(aq\-\(aq を除いた文字は +オプション文字 (option character) とされる。 .BR getopt () -¤Ï¡¢·«¤êÊÖ¤·¸Æ¤Ó½Ð¤µ¤ì¤ë¤´¤È¤Ë¡¢¼¡¤Î¥ª¥×¥·¥ç¥óʸ»ú¤òÊÖ¤¹¡£ +は、繰り返し呼び出されるごとに、次のオプション文字を返す。 .PP .\"O The variable .\"O .I optind @@ -142,15 +142,15 @@ _GNU_SOURCE .\"O The caller can reset it to 1 to restart scanning of the same .\"O .IR argv , .\"O or when scanning a new argument vector. -ÊÑ¿ô +変数 .I optind -¤Ï¡¢ +は、 .I argv -¤Î¼¡¤Ë½èÍý¤µ¤ì¤ëÍ×ÁǤΥ¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤¢¤ë¡£ -¥·¥¹¥Æ¥à¤Ë¤è¤ê¤³¤ÎÊÑ¿ô¤ÎÃÍ¤Ï 1 ¤Ë½é´ü²½¤µ¤ì¤ë¡£ -¸Æ¤Ó½Ð¤·Â¦¤Ç¤³¤ÎÃͤò 1 ¤Ë¥ê¥»¥Ã¥È¤¹¤ë¤³¤È¤Ç¡¢Æ±¤¸ +の次に処理される要素のインデックスである。 +システムによりこの変数の値は 1 に初期化される。 +呼び出し側でこの値を 1 にリセットすることで、同じ .I argv -¤Î¥¹¥­¥ã¥ó¤ò¤ä¤êľ¤·¤¿¤ê¡¢¿·¤·¤¤°ú¤­¿ô¥Ù¥¯¥È¥ë¤ò¥¹¥­¥ã¥ó¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +のスキャンをやり直したり、新しい引き数ベクトルをスキャンすることができる。 .PP .\"O If .\"O .BR getopt () @@ -161,25 +161,25 @@ _GNU_SOURCE .\"O can .\"O resume the scan with the following option character or .\"O \fIargv\fP-element. -¿·¤¿¤Ê¥ª¥×¥·¥ç¥óʸ»ú¤ò¸«¤Ä¤±¤ë¤È¡¢ +新たなオプション文字を見つけると、 .BR getopt () -¤Ï¤½¤Îʸ»ú¤òÊÖ¤·¡¢ -³°ÉôÊÑ¿ô \fIoptind\fP ¤È¥¹¥¿¥Æ¥£¥Ã¥¯¤ÊÊÑ¿ô \fInextchar\fP ¤ò¹¹¿·¤¹¤ë¡£ -¤³¤ì¤é¤Ë¤è¤Ã¤Æ¡¢ +はその文字を返し、 +外部変数 \fIoptind\fP とスタティックな変数 \fInextchar\fP を更新する。 +これらによって、 .BR getopt () -¤Ï¼¡²ó¤Î¸Æ¤Ó½Ð¤·¤ÎºÝ¤Ë¡¢ -°Ê¹ß¤Î¥ª¥×¥·¥ç¥óʸ»ú¤ä \fIargv\fP Í×ÁǤΥ¹¥­¥ã¥ó¤ò·Ñ³¤Ç¤­¤ë¡£ +は次回の呼び出しの際に、 +以降のオプション文字や \fIargv\fP 要素のスキャンを継続できる。 .PP .\"O If there are no more option characters, .\"O .BR getopt () .\"O returns \-1. .\"O Then \fIoptind\fP is the index in \fIargv\fP of the first .\"O \fIargv\fP-element that is not an option. -¥ª¥×¥·¥ç¥óʸ»ú¤¬¤½¤ì°Ê¾å¸«¤Ä¤«¤é¤Ê¤¯¤Ê¤ë¤È¡¢ +オプション文字がそれ以上見つからなくなると、 .BR getopt () -¤Ï -\-1 ¤òÊÖ¤¹¡£¤½¤·¤Æ \fIoptind\fP ¤Ï¡¢\fIargv\fP ¤ÎÍ×ÁǤΤ¦¤Á¡¢ -¥ª¥×¥·¥ç¥ó¤Ç¤Ê¤¤ºÇ½é¤ÎÍ×ÁǤò¼¨¤¹¤è¤¦¤Ë¤Ê¤ë¡£ +は +\-1 を返す。そして \fIoptind\fP は、\fIargv\fP の要素のうち、 +オプションでない最初の要素を示すようになる。 .PP .\"O .I optstring .\"O is a string containing the legitimate option characters. @@ -190,16 +190,16 @@ _GNU_SOURCE .\"O \fIargv\fP-element, or the text of the following \fIargv\fP-element, in .\"O .IR optarg . .I optstring -¤Ï¼õ¤±ÉÕ¤±¤ë¥ª¥×¥·¥ç¥óʸ»ú¤«¤é¤Ê¤ëʸ»úÎó¤Ç¤¢¤ë¡£ -ʸ»ú¤Î¤¢¤È¤Ë¥³¥í¥ó (:) ¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ -¥ª¥×¥·¥ç¥ó¤Ë¤Ï°ú¤­¿ô¤¬É¬ÍפǤ¢¤ë¤³¤È¤ò¼¨¤¹¡£ -¤³¤Î¤È¤­ +は受け付けるオプション文字からなる文字列である。 +文字のあとにコロン (:) が置かれている場合は、 +オプションには引き数が必要であることを示す。 +このとき .BR getopt () -¤Ï¡¢¸½ºßÃíÌܤ·¤Æ¤¤¤ë -\fIargv\fP Í×ÁǤǡ¢¥ª¥×¥·¥ç¥óʸ»ú¤Ë°ú¤­Â³¤¯¥Æ¥­¥¹¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤«¡¢ -¤¢¤ë¤¤¤Ï¼¡¤Î \fIargv\fP Í×ÁǤΥƥ­¥¹¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò +は、現在注目している +\fIargv\fP 要素で、オプション文字に引き続くテキストへのポインタか、 +あるいは次の \fIargv\fP 要素のテキストへのポインタを .I optarg -¤ËÂåÆþ¤¹¤ë¡£ +に代入する。 .\"O Two colons mean an option takes .\"O an optional arg; if there is text in the current \fIargv\fP-element .\"O (i.e., in the same word as the option name itself, for example, "\-oarg"), @@ -213,31 +213,31 @@ _GNU_SOURCE .\"O .B \-W foo .\"O is treated as the long option .\"O .BR \-\-foo . -2 ¸ÄϢ³¤·¤Æ¥³¥í¥ó¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ -¤½¤Î¥ª¥×¥·¥ç¥ó¤Ï°ú¤­¿ô¤ò¤È¤Ã¤Æ¤â¤È¤é¤Ê¤¯¤Æ¤â¤è¤¤¡£ -¸½ºß¤Î \fIargv\fP Í×ÁǤ˥ƥ­¥¹¥È¤¬¤¢¤ì¤Ð -(¤Ä¤Þ¤ê¡¢"\-oarg" ¤Î¤è¤¦¤Ë¡¢¥ª¥×¥·¥ç¥ó̾¼«¿È¤ÈƱ¤¸¥ï¡¼¥ÉÆâ¤Ë -¥Æ¥­¥¹¥È¤¬¤¢¤ë¾ì¹ç)¡¢¤½¤ì¤¬ \fIoptarg\fP ¤ËÊÖ¤µ¤ì¤ë¡£ -¤Ê¤±¤ì¤Ð \fIoptarg\fP ¤Ï 0 ¤ËÀßÄꤵ¤ì¤ë¡£ -¤³¤ì¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ +2 個連続してコロンが置かれている場合は、 +そのオプションは引き数をとってもとらなくてもよい。 +現在の \fIargv\fP 要素にテキストがあれば +(つまり、"\-oarg" のように、オプション名自身と同じワード内に +テキストがある場合)、それが \fIoptarg\fP に返される。 +なければ \fIoptarg\fP は 0 に設定される。 +これは GNU による拡張である。 .I optstring -¤Ë +に .B W -¤È¤½¤ì¤Ë³¤¯¥»¥ß¥³¥í¥ó¤¬Æþ¤Ã¤Æ¤¤¤ë¤È¡¢ +とそれに続くセミコロンが入っていると、 .B \-W foo -¤ÏŤ¤¥ª¥×¥·¥ç¥ó +は長いオプション .B \-\-foo -¤ÈƱ¤¸¤è¤¦¤Ë°·¤ï¤ì¤ë +と同じように扱われる .\"O (The .\"O .B \-W .\"O option is reserved by POSIX.2 for implementation extensions.) .\"O This behavior is a GNU extension, not available with libraries before .\"O glibc 2. -(POSIX.2 ¤Ï +(POSIX.2 は .B \-W -¥ª¥×¥·¥ç¥ó¤ò¼ÂÁõ°Í¸¤Î³ÈÄ¥¤È¤·¤ÆͽÌ󤷤Ƥ¤¤ë)¡£ -¤³¤ÎÆ°ºî¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ê¡¢glibc 2 °ÊÁ°¤Î¥é¥¤¥Ö¥é¥ê¤Ç¤Ï -ÍøÍѤǤ­¤Ê¤¤¡£ +オプションを実装依存の拡張として予約している)。 +この動作は GNU による拡張であり、glibc 2 以前のライブラリでは +利用できない。 .PP .\"O By default, .\"O .BR getopt () @@ -256,22 +256,22 @@ _GNU_SOURCE .\"O and that care about the ordering of the two.) .\"O The special argument "\-\-" forces an end of option-scanning regardless .\"O of the scanning mode. -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï +デフォルトでは .BR getopt () -¤Ï \fIargv\fP ¤ò¥¹¥­¥ã¥ó¤¹¤ëºÝ¤Ë½ç½ø¤òÊѹ¹¤·¡¢ -¥ª¥×¥·¥ç¥ó°Ê³°¤ÎÍ×ÁǤòºÇ¸å¤Ë°ÜÆ°¤¹¤ë¡£ -¾¤Ë¤â 2 ¤Ä¤Î¥â¡¼¥É¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -\fIoptstring\fP ¤ÎÀèƬʸ»ú¤¬ \(aq+\(aq ¤Ç¤¢¤ë¤«¡¢´Ä¶­ÊÑ¿ô +は \fIargv\fP をスキャンする際に順序を変更し、 +オプション以外の要素を最後に移動する。 +他にも 2 つのモードが実装されている。 +\fIoptstring\fP の先頭文字が \(aq+\(aq であるか、環境変数 .B POSIXLY_CORRECT -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢¥ª¥×¥·¥ç¥ó¤òÂоݤȤ¹¤ëÆ°ºî¤Ï¡¢ -È󥪥ץ·¥ç¥ó¤Î°ú¤­¿ô¤¬¸½¤ì¤¿Ãʳ¬¤Ç½ªÎ»¤¹¤ë¡£ -\fIoptstring\fP ¤ÎÀèƬʸ»ú¤¬ \(aq\-\(aq ¤Ç¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢ -¥ª¥×¥·¥ç¥ó¤Ç¤Ê¤¤ \fIargv\fP Í×ÁǤϡ¢ -ʸ»ú¥³¡¼¥É 1 ¤Î¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë¤«¤Î¤è¤¦¤Ë°·¤ï¤ì¤ë (¤³¤ì¤òÍѤ¤¤ë¥×¥í¥°¥é¥à¤Ï¡¢ -¥ª¥×¥·¥ç¥ó¤ä \fIargv\fP Í×ÁǤòǤ°Õ¤Î½ç½ø¤Ç¼õ¤±Æþ¤ì¡¢¤«¤Ä¤½¤ì¤é¤Î½ç½ø¤¬ -°ÕÌ£¤ò»ý¤Ä¤è¤¦¤Ë½ñ¤«¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ë)¡£ -"\-\-" ¤ÏÆüì¤Ê°ú¤­¿ô¤Ç¡¢¥¹¥­¥ã¥ó¤Î¥â¡¼¥É¤Ë¤è¤é¤º¡¢ -¥ª¥×¥·¥ç¥ó¤Î¥¹¥­¥ã¥ó¤ò¶¯À©Åª¤Ë½ªÎ»¤µ¤»¤ë¡£ +が設定されている場合には、オプションを対象とする動作は、 +非オプションの引き数が現れた段階で終了する。 +\fIoptstring\fP の先頭文字が \(aq\-\(aq である場合には、 +オプションでない \fIargv\fP 要素は、 +文字コード 1 のオプションであるかのように扱われる (これを用いるプログラムは、 +オプションや \fIargv\fP 要素を任意の順序で受け入れ、かつそれらの順序が +意味を持つように書かれている必要がある)。 +"\-\-" は特殊な引き数で、スキャンのモードによらず、 +オプションのスキャンを強制的に終了させる。 .PP .\"O If .\"O .BR getopt () @@ -280,12 +280,12 @@ _GNU_SOURCE .\"O returns \(aq?\(aq. .\"O The calling program may prevent the error message by .\"O setting \fIopterr\fP to 0. -ǧ¼±¤Ç¤­¤Ê¤¤¥ª¥×¥·¥ç¥óʸ»ú¤¬¤¢¤ë¤È¡¢ +認識できないオプション文字があると、 .BR getopt () -¤Ï¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɸ½à¥¨¥é¡¼½ÐÎÏ \fIstderr\fP ¤Ëɽ¼¨¤·¡¢ -¤½¤Îʸ»ú¤ò \fIoptopt\fP ¤ËÊݸ¤·¤Æ \(aq?\(aq ¤òÊÖ¤¹¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥°¥é¥à¤Ç \fIopterr\fP ¤ò 0 ¤Ë¤·¤Æ¤ª¤±¤Ð¡¢ -¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Îɽ¼¨¤òÍÞÀ©¤Ç¤­¤ë¡£ +はエラーメッセージを標準エラー出力 \fIstderr\fP に表示し、 +その文字を \fIoptopt\fP に保存して \(aq?\(aq を返す。 +呼び出したプログラムで \fIopterr\fP を 0 にしておけば、 +エラーメッセージの表示を抑制できる。 .PP .\"O If .\"O .BR getopt () @@ -306,21 +306,21 @@ _GNU_SOURCE .\"O .BR getopt () .\"O prints an error message. .BR getopt () -¤Ï \fIargv\fP ¤ÎÃæ¤Ë -\fIoptstring\fP ¤Ë¤Ê¤¤¥ª¥×¥·¥ç¥óʸ»ú¤ò¸«¤Ä¤±¤¿¾ì¹ç¡¢ -¤Þ¤¿¤Ï¥ª¥×¥·¥ç¥ó°ú¤­¿ô¤¬Â­¤ê¤Ê¤¤¤³¤È¤¬Ê¬¤«¤Ã¤¿¾ì¹ç¡¢ -\&\(aq?\(aq ¤òÊÖ¤·¤Æ³°ÉôÊÑ¿ô \fIoptopt\fP ¤ò¤½¤Î¥ª¥×¥·¥ç¥óʸ»ú¤ËÀßÄꤹ¤ë¡£ -\fIoptstring\fP ¤Î (¾å¤ÇÀâÌÀ¤·¤¿¥ª¥×¥·¥ç¥ó¤Ç»ØÄê¤Ç¤­¤ë -\&\(aq+\(aq ¤Þ¤¿¤Ï \(aq\-\(aq ¸å¤Ë³¤¯) ºÇ½é¤Îʸ»ú¤¬ -¥³¥í¥ó (\(aq:\(aq) ¤Î¤È¤­¡¢ +は \fIargv\fP の中に +\fIoptstring\fP にないオプション文字を見つけた場合、 +またはオプション引き数が足りないことが分かった場合、 +\&\(aq?\(aq を返して外部変数 \fIoptopt\fP をそのオプション文字に設定する。 +\fIoptstring\fP の (上で説明したオプションで指定できる +\&\(aq+\(aq または \(aq\-\(aq 後に続く) 最初の文字が +コロン (\(aq:\(aq) のとき、 .BR getopt () -¤Ï¥ª¥×¥·¥ç¥ó°ú¤­¿ô¤¬Â­¤ê¤Ê¤¤¾ì¹ç¤Ë \(aq?\(aq ¤Ç¤Ï¤Ê¤¯ \(aq:\(aq ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤ò¸«¤Ä¤±¤¿¾ì¹ç¤Ç¡¢¤«¤Ä \fIoptstring\fP ¤ÎºÇ½é¤Îʸ»ú¤¬¥³¥í¥ó¤Ç¤Ê¤¯¡¢ -¤«¤Ä³°ÉôÊÑ¿ô \fIopterr\fP ¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç (¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È)¡¢ +はオプション引き数が足りない場合に \(aq?\(aq ではなく \(aq:\(aq を返す。 +エラーを見つけた場合で、かつ \fIoptstring\fP の最初の文字がコロンでなく、 +かつ外部変数 \fIopterr\fP が 0 でない場合 (これがデフォルト)、 .BR getopt () -¤Ï¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¡£ +はエラーメッセージを表示する。 .\"O .SS getopt_long() and getopt_long_only() -.SS getopt_long() ¤È getopt_long_only() +.SS getopt_long() と getopt_long_only() .\"O The .\"O .BR getopt_long () .\"O function works like @@ -337,20 +337,20 @@ _GNU_SOURCE .\"O or .\"O .BR "\-\-arg param" . .BR getopt_long () -´Ø¿ô¤Ï¡¢Ä¹¤¤¥ª¥×¥·¥ç¥ó (2 ¤Ä¤Î¥À¥Ã¥·¥å "\-\-" ¤Ç»Ï¤Þ¤ë¥ª¥×¥·¥ç¥ó) ¤ò -¼õ¤±Æþ¤ì¤ë¤³¤È¤ò½ü¤¤¤Æ +関数は、長いオプション (2 つのダッシュ "\-\-" で始まるオプション) を +受け入れることを除いて .BR getopt () -¤ÈƱ¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë -(¥×¥í¥°¥é¥à¤ËŤ¤¥ª¥×¥·¥ç¥ó¤À¤±¤¬ÅϤµ¤ì¤¿¾ì¹ç¡¢ +と同じように動作する +(プログラムに長いオプションだけが渡された場合、 .I optstring -¤Ï NULL ¤Ç¤Ï¤Ê¤¯¶õʸ»úÎó ("") ¤È¤Ê¤ë)¡£ -Ť¤¥ª¥×¥·¥ç¥ó¤Î̾Á°¤Ï¡¢Â¾¤È½Å¤Ê¤é¤Ê¤¤ÈϰϤˤª¤¤¤Æû½Ì¤Ç¤­¤ë¡£ -¤¢¤ë¤¤¤ÏÄêµÁ¤µ¤ì¤¿¥ª¥×¥·¥ç¥ó¤ËÀµ³Î¤Ë¥Þ¥Ã¥Á¤¹¤ë¤â¤Î¤Ç¤â (ÅöÁ³) ¤«¤Þ¤ï¤Ê¤¤¡£ -Ť¤¥ª¥×¥·¥ç¥ó¤Ï°ú¤­¿ô¤ò¼è¤ë¤³¤È¤¬¤Ç¤­¡¢ +は NULL ではなく空文字列 ("") となる)。 +長いオプションの名前は、他と重ならない範囲において短縮できる。 +あるいは定義されたオプションに正確にマッチするものでも (当然) かまわない。 +長いオプションは引き数を取ることができ、 .B \-\-arg=param -¤Þ¤¿¤Ï +または .B "\-\-arg param" -¤È¸À¤¦·Á¼°¤Ç»ØÄꤹ¤ë¡£ +と言う形式で指定する。 .PP .\"O .I longopts .\"O is a pointer to the first element of an array of @@ -359,13 +359,13 @@ _GNU_SOURCE .\"O .I .\"O as .I longopts -¤Ï +は .I struct option -¤ÎÍ×ÁǤ«¤é¤Ê¤ëÇÛÎó¤Î¡¢ÀèƬÍ×ÁǤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ +の要素からなる配列の、先頭要素へのポインタである。 .I struct option -¤Ï +は .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で以下のように定義されている。 .in +4n .nf .sp @@ -379,21 +379,21 @@ struct option { .in .PP .\"O The meanings of the different fields are: -¤½¤ì¤¾¤ì¤Î¥Õ¥£¡¼¥ë¥É¤Î°ÕÌ£¤Ï°Ê²¼¤ÎÄ̤ꡣ +それぞれのフィールドの意味は以下の通り。 .TP .I name .\"O is the name of the long option. -Ť¤¥ª¥×¥·¥ç¥ó¤Î̾Á°¡£ +長いオプションの名前。 .TP .I has_arg .\"O is: .\"O \fBno_argument\fP (or 0) if the option does not take an argument; .\"O \fBrequired_argument\fP (or 1) if the option requires an argument; or .\"O \fBoptional_argument\fP (or 2) if the option takes an optional argument. -\fBno_argument\fP (¤Þ¤¿¤Ï 0) ¤Ê¤é¡¢¥ª¥×¥·¥ç¥ó¤Ï°ú¤­¿ô¤ò¤È¤é¤Ê¤¤¡£ -\fBrequired_argument\fP (¤Þ¤¿¤Ï 1) ¤Ê¤é¡¢¥ª¥×¥·¥ç¥ó¤Ï°ú¤­¿ô¤òɬÍפȤ¹¤ë¡£ -\fBoptional_argument\fP (¤Þ¤¿¤Ï 2) ¤Ê¤é¡¢¥ª¥×¥·¥ç¥ó¤Ï°ú¤­¿ô¤ò¤È¤Ã¤Æ¤â -¤È¤é¤Ê¤¯¤Æ¤âÎɤ¤¡£ +\fBno_argument\fP (または 0) なら、オプションは引き数をとらない。 +\fBrequired_argument\fP (または 1) なら、オプションは引き数を必要とする。 +\fBoptional_argument\fP (または 2) なら、オプションは引き数をとっても +とらなくても良い。 .TP .I flag .\"O specifies how results are returned for a long option. @@ -408,33 +408,33 @@ struct option { .\"O returns 0, and .\"O \fIflag\fP points to a variable which is set to \fIval\fP if the .\"O option is found, but left unchanged if the option is not found. -Ť¤¥ª¥×¥·¥ç¥ó¤ËÂФ¹¤ë·ë²Ì¤ÎÊÖ¤·Êý¤ò»ØÄꤹ¤ë¡£\fIflag\fP ¤¬ -NULL ¤Ê¤é +長いオプションに対する結果の返し方を指定する。\fIflag\fP が +NULL なら .BR getopt_long () -¤Ï \fIval\fP ¤òÊÖ¤¹ -(Î㤨¤Ð¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥°¥é¥à¤Ï¡¢ -\fIval\fP ¤ËÅù²Á¤Ê¥ª¥×¥·¥ç¥óʸ»ú¤òÂåÆþ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë)¡£ -NULL °Ê³°¤Î¾ì¹ç¤Ë¤Ï¡¢ +は \fIval\fP を返す +(例えば呼び出し元のプログラムは、 +\fIval\fP に等価なオプション文字を代入することができる)。 +NULL 以外の場合には、 .BR getopt_long () -¤Ï 0 ¤òÊÖ¤¹¡£ -¤³¤Î¤È¤­¥ª¥×¥·¥ç¥ó¤¬¸«¤Ä¤«¤ë¤È \fIflag\fP ¤¬¥Ý¥¤¥ó¥È¤¹¤ëÊÑ¿ô¤Ë -\fIval\fP ¤¬ÂåÆþ¤µ¤ì¤ë¡£¸«¤Ä¤«¤é¤Ê¤¤¤È¤³¤ÎÊÑ¿ô¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +は 0 を返す。 +このときオプションが見つかると \fIflag\fP がポイントする変数に +\fIval\fP が代入される。見つからないとこの変数は変更されない。 .TP \fIval\fP .\"O is the value to return, or to load into the variable pointed .\"O to by \fIflag\fP. -ÊÖ¤êÃÍ¡¢¤Þ¤¿¤Ï \fIflag\fP ¤¬¥Ý¥¤¥ó¥È¤¹¤ëÊÑ¿ô¤Ø¥í¡¼¥É¤µ¤ì¤ëÃÍ¡£ +返り値、または \fIflag\fP がポイントする変数へロードされる値。 .PP .\"O The last element of the array has to be filled with zeros. -ÇÛÎó¤ÎºÇ¸å¤ÎÍ×ÁǤϡ¢Á´¤Æ 0 ¤ÇËä¤á¤é¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +配列の最後の要素は、全て 0 で埋められていなければならない。 .PP .\"O If \fIlongindex\fP is not NULL, it .\"O points to a variable which is set to the index of the long option relative to .\"O .IR longopts . -\fIlongindex\fP ¤Ï¡¢NULL ¤Ç¤Ê¤±¤ì¤Ð¡¢ -Ť¤¥ª¥×¥·¥ç¥ó¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò +\fIlongindex\fP は、NULL でなければ、 +長いオプションのインデックスを .I longopts -¤«¤é¤ÎÁêÂаÌÃ֤Ȥ·¤ÆÊÝ»ý¤·¤Æ¤¤¤ëÊÑ¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤È¤Ê¤ë¡£ +からの相対位置として保持している変数へのポインタとなる。 .PP .\"O .BR getopt_long_only () .\"O is like @@ -445,14 +445,14 @@ NULL .\"O (not "\-\-") doesn't match a long option, but does match a short option, .\"O it is parsed as a short option instead. .BR getopt_long_only () -¤Ï +は .BR getopt_long () -¤ÈƱÍͤÎÆ°ºî¤ò¤¹¤ë¤¬¡¢ \(aq\-\(aq ¤â "\-\-" ¤ÈƱÍͤˡ¢ -Ť¤¥ª¥×¥·¥ç¥ó¤È¤·¤Æ°·¤ï¤ì¤ë¡£\(aq\-\(aq ¤Ç»Ï¤Þ¤ë -("\-\-" °Ê³°¤Î) ¥ª¥×¥·¥ç¥ó¤¬¡¢Ä¹¤¤¤â¤Î¤Ë¤Ï¥Þ¥Ã¥Á¤·¤Ê¤¤¤¬Ã»¤¤¤â¤Î¤Ë -¥Þ¥Ã¥Á¤¹¤ë¾ì¹ç¤Ë¤ª¤¤¤Æ¤Ï¡¢¤½¤ì¤Ïû¤¤¥ª¥×¥·¥ç¥ó¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同様の動作をするが、 \(aq\-\(aq も "\-\-" と同様に、 +長いオプションとして扱われる。\(aq\-\(aq で始まる +("\-\-" 以外の) オプションが、長いものにはマッチしないが短いものに +マッチする場合においては、それは短いオプションとして解釈される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O If an option was successfully found, then .\"O .BR getopt () .\"O returns the option character. @@ -470,19 +470,19 @@ NULL .\"O then the return value depends on the first character in .\"O .IR optstring : .\"O if it is \(aq:\(aq, then \(aq:\(aq is returned; otherwise \(aq?\(aq is returned. -¥ª¥×¥·¥ç¥ó¤¬Àµ¾ï¤Ë¸«¤Ä¤«¤ì¤Ð +オプションが正常に見つかれば .BR getopt () -¤Ï¤½¤Î¥ª¥×¥·¥ç¥óʸ»ú¤òÊÖ¤¹¡£ -¤¹¤Ù¤Æ¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤Î²òÀϤ¬½ª¤ï¤Ã¤¿¤é¡¢ +はそのオプション文字を返す。 +すべてのコマンドラインオプションの解析が終わったら、 .BR getopt () -¤Ï \-1 ¤òÊÖ¤¹¡£ +は \-1 を返す。 .I optstring -¤Ë´Þ¤Þ¤ì¤Ê¤¤¥ª¥×¥·¥ç¥óʸ»ú¤¬¸«¤Ä¤«¤ë¤È¡¢\(aq?\(aq ¤òÊÖ¤¹¡£ -°ú¤­¿ô¤¬Â­¤ê¤Ê¤¤¥ª¥×¥·¥ç¥ó¤¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç¡¢ -ÊÖ¤êÃÍ¤Ï +に含まれないオプション文字が見つかると、\(aq?\(aq を返す。 +引き数が足りないオプションが見つかった場合、 +返り値は .I optstring -¤ÎºÇ½é¤Îʸ»ú¤Ë¤è¤ë°Û¤Ê¤ë: ºÇ½é¤Îʸ»ú¤¬ \(aq:\(aq ¤Ç¤¢¤ì¤Ð \(aq:\(aq ¤òÊÖ¤·¡¢ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï \(aq?\(aq ¤òÊÖ¤¹¡£ +の最初の文字による異なる: 最初の文字が \(aq:\(aq であれば \(aq:\(aq を返し、 +それ以外の場合は \(aq?\(aq を返す。 .PP .\"O .BR getopt_long () .\"O and @@ -496,25 +496,25 @@ NULL .\"O plus \(aq?\(aq for an .\"O ambiguous match or an extraneous parameter. .BR getopt_long () -¤È +と .BR getopt_long_only () -¤â¡¢ -û¤¤¥ª¥×¥·¥ç¥óʸ»ú¤òǧ¼±¤·¤¿¾ì¹ç¤Ë¤Ï¤½¤Îʸ»ú¤òÊÖ¤¹¡£ -Ť¤¥ª¥×¥·¥ç¥ó¤ËÂФ·¤Æ¤Ï¡¢ -\fIflag\fP ¤¬ NULL ¤Ê¤é \fIval\fP ¤òÊÖ¤·¡¢ -\fIflag\fP ¤¬ NULL °Ê³°¤Ê¤é 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤È \-1 ¤ÎÊÖ¤êÃÍ¤Ï +も、 +短いオプション文字を認識した場合にはその文字を返す。 +長いオプションに対しては、 +\fIflag\fP が NULL なら \fIval\fP を返し、 +\fIflag\fP が NULL 以外なら 0 を返す。 +エラーと \-1 の返り値は .BR getopt () -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -¤µ¤é¤Ë \(aq?\(aq ¤Ï¡¢¥Þ¥Ã¥Á¤¬³ÎÄê¤Ç¤­¤Ê¤¤¾ì¹ç¤ä;ʬ¤Ê¥Ñ¥é¥á¡¼¥¿¡¼¤¬¤¢¤ë¾ì¹ç¤Ë¤âÊ֤롣 +と同じである。 +さらに \(aq?\(aq は、マッチが確定できない場合や余分なパラメーターがある場合にも返る。 .\"O .SH ENVIRONMENT -.SH ´Ä¶­ +.SH 環境 .TP .B POSIXLY_CORRECT .\"O If this is set, then option processing stops as soon as a nonoption .\"O argument is encountered. -¤³¤ì¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢È󥪥ץ·¥ç¥ó¤Î°ú¤­¿ô¤ËÅþ㤷¤¿»þÅÀ¤Ç¥ª¥×¥·¥ç¥ó -¤ËÂФ¹¤ëÁàºî¤¬Ää»ß¤µ¤ì¤ë¡£ +これが設定されていると、非オプションの引き数に到達した時点でオプション +に対する操作が停止される。 .TP .B __GNU_nonoption_argv_flags_ .\"O This variable was used by @@ -524,16 +524,16 @@ NULL .\"O This behavior was removed in .\"O .BR bash (1) .\"O version 2.01, but the support remains in glibc. -¤³¤ÎÊÑ¿ô¤Ï +この変数は .BR bash (1) -2.0 ¤¬ glibc ¤ÈÄÌ¿®¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤¿¡£ -¤É¤Î°ú¤­¿ô¤¬¥ï¥¤¥ë¥É¥«¡¼¥É¤òŸ³«¤·¤¿·ë²Ì¤Ç¡¢ -¤·¤¿¤¬¤Ã¤Æ¥ª¥×¥·¥ç¥ó¤È¤ß¤Ê¤¹¤Ù¤­¤Ç¤Ê¤¤¤«¤òÃΤ餻¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Îµ¡Ç½¤Ï +2.0 が glibc と通信するために用いられた。 +どの引き数がワイルドカードを展開した結果で、 +したがってオプションとみなすべきでないかを知らせるものである。 +この機能は .BR bash (1) -¤Î¥Ð¡¼¥¸¥ç¥ó 2.01 ¤Çºï½ü¤µ¤ì¤¿¤¬¡¢glibc ¤Ë¤Ï¤Þ¤À»Ä¤Ã¤Æ¤¤¤ë¡£ +のバージョン 2.01 で削除されたが、glibc にはまだ残っている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .TP .BR getopt (): .\"O POSIX.2 and POSIX.1-2001, @@ -544,19 +544,19 @@ NULL .\"O permute them. .\"O We pretend they're const in the prototype to be .\"O compatible with other systems. -´Ä¶­ÊÑ¿ô +環境変数 .B POSIXLY_CORRECT -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï POSIX.2 ¤È POSIX.1-2001 ¤Ë½àµò¤¹¤ë¡£ -¾¤Î¾ì¹ç¤Ï \fIargv\fP ¤ÎÍ×ÁǤÏËÜÅö¤Î°ÕÌ£¤Ç¤ÎÄê¿ô¤Ë¤Ï¤Ê¤é¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é½ç½ø¤¬Êѹ¹¤µ¤ì¤Æ¤·¤Þ¤¦¤«¤é¤Ç¤¢¤ë¡£ -¤¿¤À¤·¤½¤ì¤é¤Ï¡¢¥×¥í¥È¥¿¥¤¥×¤Ç¤ÏÄê¿ô¤Ç¤¢¤ë¤«¤Î¤è¤¦¤Ë¤·¤Æ¤¢¤ë¡£ -¤³¤ì¤Ï¾¤Î¥·¥¹¥Æ¥à¤È¤Î¸ß´¹À­¤Î¤¿¤á¤Ç¤¢¤ë¡£ +が設定されている場合は POSIX.2 と POSIX.1-2001 に準拠する。 +他の場合は \fIargv\fP の要素は本当の意味での定数にはならない。 +なぜなら順序が変更されてしまうからである。 +ただしそれらは、プロトタイプでは定数であるかのようにしてある。 +これは他のシステムとの互換性のためである。 .\"O The use of \(aq+\(aq and \(aq\-\(aq in .\"O .I optstring .\"O is a GNU extension. .I optstring -¤Ç \(aq+\(aq ¤ä \(aq\-\(aq ¤ò»È¤¦¤Î¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë. +で \(aq+\(aq や \(aq\-\(aq を使うのは GNU による拡張である. .\"O On some older implementations, .\"O .BR getopt () @@ -571,32 +571,32 @@ NULL .\"O for this purpose as LEGACY. .\"O POSIX.1-2001 does not allow the declaration to appear in .\"O .IR . -¸Å¤¤¼ÂÁõ¤Î¤¤¤¯¤Ä¤«¤Ç¤Ï¡¢ +古い実装のいくつかでは、 .BR getopt () -¤Ï +は .I -¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤¿¡£ -SUSv1 ¤Ç¤Ï¡¢ +で宣言されていた。 +SUSv1 では、 .I -¤« +か .I -¤Î¤É¤Á¤é¤«¤Ç -Àë¸À¤·¤Æ¤â¤è¤«¤Ã¤¿¡£ -POSIX.1-2001 ¤Ç¤Ï¡¢ +のどちらかで +宣言してもよかった。 +POSIX.1-2001 では、 .B getopt -¤ÎÀë¸À¤ò +の宣言を .I -¤Ç¹Ô¤¦¤Î¤Ï¡Ö²áµî¤Î̾»Ä¡×¤Ç¤¢¤ë¤È¤µ¤ì¤¿¡£ -POSIX.1-2001 ¤Ç¤Ï +で行うのは「過去の名残」であるとされた。 +POSIX.1-2001 では .I -¤ÇÀë¸À¤ò¹Ô¤¦¤³¤È¤òǧ¤á¤Æ¤¤¤Ê¤¤¡£ +で宣言を行うことを認めていない。 .TP .\"O .BR getopt_long "() and " getopt_long_only (): .\"O These functions are GNU extensions. .BR getopt_long "(), " getopt_long_only (): -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ +これらの関数は GNU による拡張である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O A program that scans multiple argument vectors, .\"O or rescans the same vector more than once, .\"O and wants to make use of GNU extensions such as \(aq+\(aq @@ -615,38 +615,38 @@ POSIX.1-2001 .\"O .B POSIXLY_CORRECT .\"O and checks for GNU extensions in .\"O .IR optstring .) -Ê£¿ô¤Î°ú¤­¿ô¥Ù¥¯¥È¥ë¤ò¥¹¥­¥ã¥ó¤·¤¿¤ê¡¢Æ±¤¸°ú¤­¿ô¥Ù¥¯¥È¥ë¤òÆó²ó°Ê¾å -¥¹¥­¥ã¥ó¤¹¤ë¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ç¡¢ +複数の引き数ベクトルをスキャンしたり、同じ引き数ベクトルを二回以上 +スキャンするようなプログラムで、 .I optstring -¤ÎÀèƬ¤Ç \(aq+\(aq ¤ä \(aq\-\(aq ¤È¤¤¤Ã¤¿ GNU ¤Ë¤è¤ë³ÈÄ¥µ¡Ç½¤ò»ÈÍѤ·¤¿¤ê¡¢ -°ú¤­¿ô¥Ù¥¯¥È¥ë¤ÎÀÚ¤êÂؤ¨»þ¤Ë +の先頭で \(aq+\(aq や \(aq\-\(aq といった GNU による拡張機能を使用したり、 +引き数ベクトルの切り替え時に .B POSIXLY_CORRECT -¤ÎÃͤòÊѹ¹¤·¤¿¤ê¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢ +の値を変更したりする場合には、 .I optind -¤òÅÁÅýŪ¤Ê 1 ¤Ç¤Ï¤Ê¤¯ 0 ¤Ë¥ê¥»¥Ã¥È¤¹¤ë¤³¤È¤Ç +を伝統的な 1 ではなく 0 にリセットすることで .BR getopt () -¤òºÆ½é´ü²½¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(0 ¤Ë¥ê¥»¥Ã¥È¤¹¤ë¤³¤È¤Ç¡¢ +を再初期化しなければならない +(0 にリセットすることで、 .B POSIXLY_CORRECT -¤ä +や .I optstring -¤Î GNU ³ÈÄ¥µ¡Ç½¤Î¥Á¥§¥Ã¥¯¤ò¹Ô¤¦ÆâÉô½é´ü²½¥ë¡¼¥Á¥ó¤¬µ¯Æ°¤µ¤ì¤ë)¡£ +の GNU 拡張機能のチェックを行う内部初期化ルーチンが起動される)。 .\"O .SH "BUGS" -.SH ¥Ð¥° +.SH バグ .\"O The POSIX.2 specification of .\"O .BR getopt () .\"O has a technical error described in POSIX.2 Interpretation 150. .\"O The GNU .\"O implementation (and probably all other implementations) implements the .\"O correct behavior rather than that specified. -POSIX.2 ¤Ë¤ª¤±¤ë +POSIX.2 における .BR getopt () -¤Î»ÅÍͤˤϵ»½ÑŪ¤ÊÌäÂ꤬¤¢¤ê¡¢ -¤½¤ÎÆâÍÆ¤Ï POSIX.2 Interpretation 150 ¤Ëµ­¤µ¤ì¤Æ¤¤¤ë¡£ -GNU ¤Ë¤è¤ë¼ÂÁõ¤Ç¤Ï (¤ª¤½¤é¤¯Â¾¤Î¤¹¤Ù¤Æ¤Î¼ÂÁõ¤Ç¤â)¡¢ -»ÅÍͤȰۤʤëÀµ¤·¤¤Æ°ºî¤ò¤¹¤ë¤è¤¦¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +の仕様には技術的な問題があり、 +その内容は POSIX.2 Interpretation 150 に記されている。 +GNU による実装では (おそらく他のすべての実装でも)、 +仕様と異なる正しい動作をするように実装されている。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The following trivial example program uses .\"O .BR getopt () .\"O to handle two program options: @@ -654,14 +654,14 @@ GNU .\"O with no associated value; and .\"O .IR "\-t val" , .\"O which expects an associated value. -°Ê²¼¤Ë¼¨¤¹´Êñ¤Ê¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ -Æó¼ïÎà¤Î¥×¥í¥°¥é¥à¥ª¥×¥·¥ç¥ó¤ò°·¤¦¤Î¤Ë +以下に示す簡単なサンプルプログラムでは、 +二種類のプログラムオプションを扱うのに .BR getopt () -¤ò»ÈÍѤ·¤Æ¤¤¤ë¡£°ì¤Ä¤ÏÃͤòȼ¤ï¤Ê¤¤ +を使用している。一つは値を伴わない .I \-n -¤Ç¡¢¤â¤¦°ì¤Ä¤ÏÂбþ¤¹¤ëÃͤ¬É¬Í×¤Ê +で、もう一つは対応する値が必要な .I "\-t val" -¤Ç¤¢¤ë¡£ +である。 .nf .sp #include @@ -711,9 +711,9 @@ main(int argc, char *argv[]) .\"O The following example program illustrates the use of .\"O .BR getopt_long () .\"O with most of its features. -°Ê²¼¤Ï¡¢ +以下は、 .BR getopt_long () -¤Î»ÈÍÑË¡¤ò¡¢¤Û¤Ü¤¹¤Ù¤Æ¤Îµ¡Ç½¤Ë¤Ä¤¤¤Æ¼¨¤·¤¿¥×¥í¥°¥é¥à¤ÎÎã¤Ç¤¢¤ë¡£ +の使用法を、ほぼすべての機能について示したプログラムの例である。 .nf .sp #include /* for printf */ @@ -795,5 +795,5 @@ main(int argc, char **argv) { } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getsubopt (3) diff --git a/draft/man3/getpass.3 b/draft/man3/getpass.3 index 456470fc..06b4010e 100644 --- a/draft/man3/getpass.3 +++ b/draft/man3/getpass.3 @@ -28,10 +28,10 @@ .TH GETPASS 3 2010-09-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O getpass \- get a password -.SH ̾Á° -getpass \- ¥Ñ¥¹¥ï¡¼¥É¤ò¼èÆÀ¤¹¤ë +.SH 名前 +getpass \- パスワードを取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "char *getpass( const char *" prompt ); @@ -39,9 +39,9 @@ getpass \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR getpass (): @@ -50,7 +50,7 @@ glibc .PD 0 .TP 4 .\"O Since glibc 2.2.2: -glibc 2.2.2 °Ê¹ß: +glibc 2.2.2 以降: .nf _BSD_SOURCE || (_XOPEN_SOURCE\ >=\ 500 || @@ -59,15 +59,15 @@ _BSD_SOURCE || .fi .TP 4 .\"O Before glibc 2.2.2: none -glibc 2.2.2 ¤è¤êÁ°: ¤Ê¤· +glibc 2.2.2 より前: なし .PD .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This function is obsolete. .\"O Do not use it. -¤³¤Î´Ø¿ô¤Ï obsolete ¤Ç¤¢¤ë¡£ÍѤ¤¤Ê¤¤¤³¤È¡£ +この関数は obsolete である。用いないこと。 .PP .\"O The .\"O .BR getpass () @@ -80,16 +80,16 @@ glibc 2.2.2 .\"O .I /dev/tty .\"O again. .BR getpass () -´Ø¿ô¤Ï +関数は .I /dev/tty -(¥×¥í¥»¥¹¤ÎÀ©¸æüËö) ¤ò¥ª¡¼¥×¥ó¤·¡¢Ê¸»úÎó +(プロセスの制御端末) をオープンし、文字列 .I prompt -¤ò½ÐÎϤ¹¤ë¡£¤½¤·¤Æ echo ¤ò¥ª¥Õ¤Ë¤·¡¢°ì¹Ô (¡Ö¥Ñ¥¹¥ï¡¼¥É¡×) -¤òÆɤ߹þ¤ß¡¢Ã¼Ëö¤Î¾õÂÖ¤ò¸µ¤ËÌᤷ¤Æ¡¢ºÆ¤Ó +を出力する。そして echo をオフにし、一行 (「パスワード」) +を読み込み、端末の状態を元に戻して、再び .I /dev/tty -¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +をクローズする。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The function .\"O .BR getpass () .\"O returns a pointer to a static buffer containing (the first @@ -101,42 +101,42 @@ glibc 2.2.2 .\"O .I errno .\"O is set appropriately, and NULL is returned. .BR getpass () -´Ø¿ô¤ÏÆþÎϤµ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É -(¤ÎºÇ½é¤Î +関数は入力されたパスワード +(の最初の .B PASS_MAX -¥Ð¥¤¥È¤Þ¤Ç) ¤¬½ñ¤­¤³¤Þ¤ì¤¿¡¢ -¥¹¥¿¥Æ¥£¥Ã¥¯¤Ê¥Ð¥Ã¥Õ¥¡¡¼¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£ -ËöÈø¤Î²þ¹Ô¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£¤³¤Îʸ»úÎó¤Ï NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Ç½ªÃ¼¤µ¤ì¤ë¡£ -¤³¤Î¥Ð¥Ã¥Õ¥¡¡¼¤Ï¡¢°Ê¹ß¤Î´Ø¿ô¥³¡¼¥ë¤Ç¾å½ñ¤­¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¥¨¥é¡¼¤¬µ¯¤³¤ë¤È¡¢Ã¼Ëö¤Î¾õÂÖ¤òÉü¸µ¤·¡¢ +バイトまで) が書きこまれた、 +スタティックなバッファーへのポインターを返す。 +末尾の改行は含まれない。この文字列は NULL バイト (\(aq\\0\(aq) で終端される。 +このバッファーは、以降の関数コールで上書きされるかもしれない。 +エラーが起こると、端末の状態を復元し、 .I errno -¤òŬÀÚ¤ÊÃͤËÀßÄꤷ¤Æ¡¢NULL ¤òÊÖ¤¹¡£ +を適切な値に設定して、NULL を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O The function may fail if -¤³¤Î´Ø¿ô¤Ï°Ê²¼¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¼ºÇÔ¤·¤¦¤ë¡£ +この関数は以下のような場合に失敗しうる。 .TP .B ENXIO .\"O The process does not have a controlling terminal. -¥×¥í¥»¥¹¤¬À©¸æüËö¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +プロセスが制御端末を持っていない。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .I /dev/tty .\"O .\" .SH HISTORY -.\" .SH ÍúÎò +.\" .SH 履歴 .\"O .\" A .\"O .\" .BR getpass () .\"O .\" function appeared in Version 7 AT&T UNIX. .\" .BR getpass () -.\" ´Ø¿ô¤Ï Version 7 AT&T UNIX ¤ÇÅо줷¤¿¡£ +.\" 関数は Version 7 AT&T UNIX で登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O Present in SUSv2, but marked LEGACY. .\"O Removed in POSIX.1-2001. -SUSv2 ¤Ë¤Ï¸ºß¤¹¤ë¤¬¡¢²áµî¤Î̾»Ä (LEGACY) ¤È°ÌÃÖÉÕ¤±¤é¤ì¤Æ¤¤¤ë¡£ -POSIX.1-2001 ¤Çºï½ü¤µ¤ì¤¿¡£ +SUSv2 には存在するが、過去の名残 (LEGACY) と位置付けられている。 +POSIX.1-2001 で削除された。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O For libc4 and libc5, the prompt is not written to .\"O .I /dev/tty .\"O but to @@ -157,29 +157,29 @@ POSIX.1-2001 .\"O are transmitted as part of the password. .\"O Since libc 5.4.19 also line editing is disabled, so that also .\"O backspace and the like will be seen as part of the password. -libc4 ¤È libc5 ¤Ç¤Ï¡¢ +libc4 と libc5 では、 .I prompt -¤Ï +は .I /dev/tty -¤Ë¤Ç¤Ï¤Ê¤¯ +にではなく .I stderr -¤Ë½ÐÎϤµ¤ì¤¿¡£¤µ¤é¤Ë¡¢ +に出力された。さらに、 .I /dev/tty -¤¬¥ª¡¼¥×¥ó¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¡¢¥Ñ¥¹¥ï¡¼¥É¤Ï +がオープンできない場合は、パスワードは .I stdin -¤«¤éÆɤ߹þ¤Þ¤ì¤¿¡£ -¥¹¥¿¥Æ¥£¥Ã¥¯¤Ê¥Ð¥Ã¥Õ¥¡¡¼¤ÎŤµ¤Ï 128 ¥Ð¥¤¥È¤À¤Ã¤¿¤Î¤Ç¡¢ -¥Ñ¥¹¥ï¡¼¥É¤ÎºÇ½é¤Î 127 ʸ»ú¤À¤±¤¬ÊÖ¤µ¤ì¤¿¡£ -¥Ñ¥¹¥ï¡¼¥É¤òÆɤó¤Ç¤¤¤ëÅÓÃæ¤Ë¤Ï¡¢¥·¥°¥Ê¥ë¤Îȯ¹Ô +から読み込まれた。 +スタティックなバッファーの長さは 128 バイトだったので、 +パスワードの最初の 127 文字だけが返された。 +パスワードを読んでいる途中には、シグナルの発行 .RB ( SIGINT , .BR SIGQUIT , .BR SIGSTOP , .BR SIGSTOP ) -¤Ï̵¸ú¤Ë¤µ¤ì¡¢ -¤½¤ì¤¾¤ì¤ËÂбþ¤¹¤ëʸ»ú (Ä̾ï¤Ï Ctrl-C, Ctrl-\e, Ctrl-Z, Ctrl-Y) -¤Ï¤½¤Î¤Þ¤Þ¥Ñ¥¹¥ï¡¼¥É¤Î°ìÉô¤È¤·¤ÆÅϤµ¤ì¤¿¡£ -libc 5.4.19 ¤«¤é¤Ï¹ÔÊÔ½¸¤¬Ìµ¸ú¤Ë¤µ¤ì¡¢ -¤·¤¿¤¬¤Ã¤Æ¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹¤Ê¤É¤â¥Ñ¥¹¥ï¡¼¥É¤Î°ìÉô¤È¤ß¤Ê¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ +は無効にされ、 +それぞれに対応する文字 (通常は Ctrl-C, Ctrl-\e, Ctrl-Z, Ctrl-Y) +はそのままパスワードの一部として渡された。 +libc 5.4.19 からは行編集が無効にされ、 +したがってバックスペースなどもパスワードの一部とみなされるようになった。 .PP .\"O For glibc2, if .\"O .I /dev/tty @@ -189,17 +189,17 @@ libc 5.4.19 .\"O .IR stdin . .\"O There is no limit on the length of the password. .\"O Line editing is not disabled. -glibc2 ¤Ç¤Ï¡¢ +glibc2 では、 .I /dev/tty -¤¬¥ª¡¼¥×¥ó¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï +がオープンできない場合は .I prompt -¤Ï +は .I stderr -¤Ë½ñ¤­½Ð¤µ¤ì¡¢¥Ñ¥¹¥ï¡¼¥É¤Ï +に書き出され、パスワードは .I stdin -¤«¤éÆɤ߹þ¤Þ¤ì¤¿¡£ -¥Ñ¥¹¥ï¡¼¥É¤ÎŤµ¤Ë¤ÏÀ©¸Â¤Ï¤Ê¤¯¡¢ -¹ÔÊÔ½¸¤â̵¸ú¤Ë¤Ï¤µ¤ì¤Ê¤«¤Ã¤¿¡£ +から読み込まれた。 +パスワードの長さには制限はなく、 +行編集も無効にはされなかった。 .PP .\"O According to the SUSv2, the value of .\"O .B PASS_MAX @@ -222,38 +222,38 @@ glibc2 .\"O and returns .\"O .B BUFSIZ .\"O (e.g., 8192). -SUSv2 ¤Ë¤è¤ì¤Ð¡¢ +SUSv2 によれば、 .B PASS_MAX -¤ÎÃͤ¬ 8 °Ê²¼¤Î¾ì¹ç¤Ï¡¢¤³¤ÎÃÍ¤Ï +の値が 8 以下の場合は、この値は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤¤¤º¤ì¤Î¾ì¹ç¤Ç¤â¤³¤ÎÃÍ¤Ï +で定義されていなければならない。 +いずれの場合でもこの値は .I sysconf(_SC_PASS_MAX) -¤Ë¤è¤Ã¤Æ¼èÆÀ¤Ç¤­¤ë¡£ -¤·¤«¤·¡¢POSIX.2 ¤ÏÄê¿ô +によって取得できる。 +しかし、POSIX.2 は定数 .BR PASS_MAX , .B _SC_PASS_MAX -¤È´Ø¿ô +と関数 .BR getpass () -¤ò¼è¤ê²¼¤²¤¿¡£ -libc4 ¤È libc5 ¤Ç¤Ï¡¢ +を取り下げた。 +libc4 と libc5 では、 .B PASS_MAX -¤È +と .B _SC_PASS_MAX -¤Ï°ìÅ٤⥵¥Ý¡¼¥È¤µ¤ì¤¿¤³¤È¤Ï¤Ê¤¤¡£ -glibc2 ¤Ï +は一度もサポートされたことはない。 +glibc2 は .B _SC_PASS_MAX -¤ò¼õÉÕ¤±¡¢ +を受付け、 .B BUFSIZE -(Î㤨¤Ð 8192) ¤òÊÖ¤¹¡£ +(例えば 8192) を返す。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O The calling process should zero the password as soon as possible to avoid .\"O leaving the cleartext password visible in the process's address space. -¤³¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¡¢ -¤Ç¤­¤ë¸Â¤êÁ᤯¤½¤Î¥Ñ¥¹¥ï¡¼¥É¤ò¾Ãµî (¥¼¥í¥¯¥ê¥¢) ¤·¡¢ -¥¯¥ê¥¢¥Æ¥­¥¹¥È¤Î¥Ñ¥¹¥ï¡¼¥É¤¬ -¤½¤Î¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ç¸«¤¨¤Ê¤¤¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +この関数を呼び出したプロセスは、 +できる限り早くそのパスワードを消去 (ゼロクリア) し、 +クリアテキストのパスワードが +そのプロセスのアドレス空間で見えないようにすべきである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR crypt (3) diff --git a/draft/man3/getprotoent.3 b/draft/man3/getprotoent.3 index 4c18aca8..21a53310 100644 --- a/draft/man3/getprotoent.3 +++ b/draft/man3/getprotoent.3 @@ -34,11 +34,11 @@ .\"O .SH NAME .\"O getprotoent, getprotobyname, getprotobynumber, setprotoent, .\"O endprotoent \- get protocol entry -.SH ̾Á° +.SH 名前 getprotoent, getprotobyname, getprotobynumber, setprotoent, endprotoent \- -¥×¥í¥È¥³¥ë¤Î¥¨¥ó¥È¥ê¤ò¼èÆÀ¤¹¤ë +プロトコルのエントリを取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -53,7 +53,7 @@ getprotoent, getprotobyname, getprotobynumber, setprotoent, endprotoent \- .B void endprotoent(void); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR getprotoent () .\"O function reads the next entry from the protocols database (see @@ -62,12 +62,12 @@ getprotoent, getprotobyname, getprotobynumber, setprotoent, endprotoent \- .\"O containing the broken-out fields from the entry. .\"O A connection is opened to the database if necessary. .BR getprotoent () -´Ø¿ô¤Ï¡¢¥×¥í¥È¥³¥ë¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹ +関数は、プロトコルのデータベース .RB ( protocols (5) -»²¾È) ¤«¤é¼¡¤Î¥¨¥ó¥È¥ê¤òÆɤ߹þ¤ß¡¢ -¤½¤Î¥¨¥ó¥È¥ê¤ò \fIprotoent\fP ¹½Â¤ÂΤÎÍ×ÁÇÊ̤Υե£¡¼¥ë¥É¤Ë³ÊǼ¤·¡¢ -¤½¤Î¹½Â¤ÂΤòÊÖ¤¹¡£ -ɬÍפǤ¢¤ì¤Ð¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤¬¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£ +参照) から次のエントリを読み込み、 +そのエントリを \fIprotoent\fP 構造体の要素別のフィールドに格納し、 +その構造体を返す。 +必要であれば、データベースへの接続がオープンされる。 .PP .\"O The .\"O .BR getprotobyname () @@ -76,9 +76,9 @@ getprotoent, getprotobyname, getprotobynumber, setprotoent, endprotoent \- .\"O that matches the protocol name \fIname\fP. .\"O A connection is opened to the database if necessary. .BR getprotobyname () -´Ø¿ô¤Ï¡¢¥×¥í¥È¥³¥ë̾ \fIname\fP ¤Ë¥Þ¥Ã¥Á¤¹¤ë¥¨¥ó¥È¥ê¤ò -¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éõ¤·¡¢¤½¤Î¥¨¥ó¥È¥ê¤ò¼ý¤á¤¿ \fIprotoent\fP ¹½Â¤ÂΤòÊÖ¤¹¡£ -ɬÍפǤ¢¤ì¤Ð¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤¬¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£ +関数は、プロトコル名 \fIname\fP にマッチするエントリを +データベースから探し、そのエントリを収めた \fIprotoent\fP 構造体を返す。 +必要であれば、データベースへの接続がオープンされる。 .PP .\"O The .\"O .BR getprotobynumber () @@ -87,9 +87,9 @@ getprotoent, getprotobyname, getprotobynumber, setprotoent, endprotoent \- .\"O that matches the protocol number \fInumber\fP. .\"O A connection is opened to the database if necessary. .BR getprotobynumber () -´Ø¿ô¤Ï¡¢¥×¥í¥È¥³¥ëÈÖ¹æ \fInumber\fP ¤Ë¥Þ¥Ã¥Á¤¹¤ë¥¨¥ó¥È¥ê¤ò -¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éõ¤·¡¢¤½¤Î¥¨¥ó¥È¥ê¤ò¼ý¤á¤¿ \fIprotoent\fP ¹½Â¤ÂΤòÊÖ¤¹¡£ -ɬÍפǤ¢¤ì¤Ð¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤¬¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£ +関数は、プロトコル番号 \fInumber\fP にマッチするエントリを +データベースから探し、そのエントリを収めた \fIprotoent\fP 構造体を返す。 +必要であれば、データベースへの接続がオープンされる。 .PP .\"O The .\"O .BR setprotoent () @@ -101,21 +101,21 @@ getprotoent, getprotobyname, getprotobynumber, setprotoent, endprotoent \- .\"O .BR getproto* () .\"O functions. .BR setprotoent () -´Ø¿ô¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤ò¥ª¡¼¥×¥ó¤·¡¢ -¼¡¤ÎÆɤ߹þ¤ß¥¨¥ó¥È¥ê¤òÀèƬ¤Î¥¨¥ó¥È¥ê¤ËÀßÄꤹ¤ë¡£ -\fIstayopen\fP ¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¡¢ -°ì¤Ä°ì¤Ä¤Î +関数はデータベースへの接続をオープンし、 +次の読み込みエントリを先頭のエントリに設定する。 +\fIstayopen\fP が 0 でない場合、 +一つ一つの .BR getproto* () -´Ø¿ô¤Î¸Æ¤Ó½Ð¤·´Ö¤Ç¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤ò¥¯¥í¡¼¥º¤·¤Ê¤¤¡£ +関数の呼び出し間でデータベースへの接続をクローズしない。 .PP .\"O The .\"O .BR endprotoent () .\"O function closes the connection to the database. .BR endprotoent () -´Ø¿ô¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +関数はデータベースへの接続をクローズする。 .PP .\"O The \fIprotoent\fP structure is defined in \fI\fP as follows: -\fIprotoent\fP ¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +\fIprotoent\fP 構造体は \fI\fP で以下のように定義されている。 .sp .in +4n .nf @@ -128,24 +128,24 @@ struct protoent { .in .PP .\"O The members of the \fIprotoent\fP structure are: -\fIprotoent\fP ¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤Ï°Ê²¼¤ÎÄ̤ꡣ +\fIprotoent\fP 構造体のメンバーは以下の通り。 .RS .TP 12 .I p_name .\"O The official name of the protocol. -¥×¥í¥È¥³¥ë¤ÎÀµ¼°Ì¾ (official name)¡£ +プロトコルの正式名 (official name)。 .TP .I p_aliases .\"O A NULL-terminated list of alternative names for the protocol. -¥×¥í¥È¥³¥ë¤ÎÊÌ̾¤Î¥ê¥¹¥È¡£ -¥ê¥¹¥È¤Ï NULL ¤Ç½ªÃ¼¤µ¤ì¤ë¡£ +プロトコルの別名のリスト。 +リストは NULL で終端される。 .TP .I p_proto .\"O The protocol number. -¥×¥í¥È¥³¥ë¤ÎÈÖ¹æ +プロトコルの番号 .RE .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR getprotoent (), .\"O .BR getprotobyname () @@ -157,21 +157,21 @@ struct protoent { .BR getprotoent (), .BR getprotobyname (), .BR getprotobynumber () -´Ø¿ô¤Ï¡¢ÀÅŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿ \fIprotoent\fP ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¤ê¡¢¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤Ë㤷¤¿¾ì¹ç¤Ï NULL ¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +関数は、静的に割り当てられた \fIprotoent\fP 構造体へのポインタを返す。 +エラーが起こったり、ファイルの最後に達した場合は NULL ポインタを返す。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .PD 0 .TP .I /etc/protocols .\"O protocol database file -¥×¥í¥È¥³¥ë¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë +プロトコルのデータベースファイル .PD .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.3BSD, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getnetent (3), .BR getprotoent_r (3), .BR getservent (3), diff --git a/draft/man3/getpt.3 b/draft/man3/getpt.3 index d942079b..a8530dc9 100644 --- a/draft/man3/getpt.3 +++ b/draft/man3/getpt.3 @@ -7,29 +7,29 @@ .\" Translated Tue Jul 8 01:44:54 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: pseudoterminal µ¼»÷üËö -.\"WORD: specific Æȼ«¤Î +.\"WORD: pseudoterminal 擬似端末 +.\"WORD: specific 独自の .\" .TH GETPT 3 2010-09-10 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O getpt \- open the pseudoterminal master (PTM) -.SH ̾Á° -getpt \- µ¼»÷üËö¥Þ¥¹¥¿ (PTM) ¤ò¥ª¡¼¥×¥ó¤¹¤ë +.SH 名前 +getpt \- 擬似端末マスタ (PTM) をオープンする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .B "int getpt(void);" .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR getpt () .\"O opens a pseudoterminal master and returns its file descriptor. .BR getpt () -¤Ï¡¢µ¼»÷üËö¥Þ¥¹¥¿¤ò¥ª¡¼¥×¥ó¤·¡¢¤½¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ +は、擬似端末マスタをオープンし、そのファイル・ディスクリプタを返す。 .\"O It is equivalent to .\"O .nf .\"O @@ -38,56 +38,56 @@ getpt \- .\"O .fi .\"O on Linux systems, though the pseudoterminal master is located .\"O elsewhere on some systems that use GNU Libc. -¤³¤ì¤Ï¡¢ Linux ¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¤Ï +これは、 Linux システムにおいては .nf open(/dev/ptmx, O_RDWR | O_NOCTTY); .fi -¤ÈÅù²Á¤Ç¤¢¤ë¡£Ã¢¤·¡¢ GNU Libc ¤ò»ÈÍѤ·¤Æ¤¤¤Æ¤â¡¢ -µ¼»÷üËö¥Þ¥¹¥¿¤¬¤É¤³¤«Â¾¤Î¾ì½ê¤Ë¤¢¤ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ +と等価である。但し、 GNU Libc を使用していても、 +擬似端末マスタがどこか他の場所にあるシステムもある。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR getpt () .\"O returns an open file descriptor upon successful completion. .\"O Otherwise, it .\"O returns \-1 and sets .\"O .I errno .\"O to indicate the error. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR getpt () -¤Ï¥ª¡¼¥×¥ó¤·¤¿¥Õ¥¡¥¤¥ë¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +はオープンしたファイルのディスクリプタを返す。 +そうでない場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +にエラーを示す値がセットされる。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O .BR getpt () .\"O can fail with various errors described in .\"O .BR open (2). .BR getpt () -¤Ï +は .BR open (2) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¼ï¡¹¤Î¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +で説明されている種々のエラーで失敗する可能性がある。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR getpt () .\"O is provided in glibc since version 2.1. .BR getpt () -¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +は、バージョン 2.1 以降の glibc で提供されている。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O .BR getpt () .\"O is glibc-specific; .\"O use .\"O .BR posix_openpt (3) .\"O instead. .BR getpt () -¤Ï glibc Æȼ«¤Ç¤¢¤ë¡£Âå¤ï¤ê¤Ë +は glibc 独自である。代わりに .BR posix_openpt (3) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +を使用すること。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR grantpt (3), .BR posix_openpt (3), .BR ptsname (3), diff --git a/draft/man3/getpw.3 b/draft/man3/getpw.3 index c9990388..f09cff4c 100644 --- a/draft/man3/getpw.3 +++ b/draft/man3/getpw.3 @@ -36,37 +36,37 @@ .\" .TH GETPW 3 2010-10-21 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getpw \- Re-construct password line entry -getpw \- ¥Ñ¥¹¥ï¡¼¥É¹Ô¥¨¥ó¥È¥ê¤ò¼èÆÀ¤¹¤ë +getpw \- パスワード行エントリを取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .B #include .sp .BI "int getpw(uid_t " uid ", char *" buf ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR getpw () .\"O function reconstructs the password line entry for .\"O the given user ID \fIuid\fP in the buffer \fIbuf\fP. .\"O The returned buffer contains a line of format .BR getpw () -´Ø¿ô¤Ï¡¢¥Ð¥Ã¥Õ¥¡ \fIbuf\fP ¤Ë»ØÄê¥æ¡¼¥¶ ID \fIuid\fP ¤Î -¥Ñ¥¹¥ï¡¼¥É¹Ô¥¨¥ó¥È¥ê¤ò¼èÆÀ¤¹¤ë¡£ -ÊÖ¤µ¤ì¤ë¥Ð¥Ã¥Õ¥¡¤Ï¡¢°Ê²¼¤Î·Á¼°¤Î¹Ô¤ò´Þ¤à¡£ +関数は、バッファ \fIbuf\fP に指定ユーザ ID \fIuid\fP の +パスワード行エントリを取得する。 +返されるバッファは、以下の形式の行を含む。 .sp .in +4n .B name:passwd:uid:gid:gecos:dir:shell .in .PP .\"O The \fIpasswd\fP structure is defined in \fI\fP as follows: -\fIpasswd\fP ¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +\fIpasswd\fP 構造体は \fI\fP で以下のように定義されている: .sp .in +4n .nf @@ -84,69 +84,69 @@ struct passwd { .PP .\"O For more information about the fields of this structure, see .\"O .BR passwd (5). -¤³¤Î¹½Â¤ÂΤΥե£¡¼¥ë¥É¤Î¾ÜºÙ¤Ï +この構造体のフィールドの詳細は .BR passwd (5) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR getpw () .\"O function returns 0 on success; on error, it returns \-1, and .\"O .I errno .\"O is set to indicate the error. .BR getpw () -´Ø¿ô¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç 0 ¤òÊÖ¤¹; ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç \-1 ¤òÊÖ¤·¡¢¥¨¥é¡¼¤ò -¼¨¤¹¤¿¤á¤Ë +関数は、成功した場合 0 を返す; エラーが発生した場合 \-1 を返し、エラーを +示すために .I error -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O .I buf .\"O is NULL. .I buf -¤¬ NULL¡£ +が NULL。 .TP .B ENOENT .\"O No user corresponding to .\"O .IR uid . .I uid -¤ËÂбþ¤¹¤ë¥æ¡¼¥¶¤¬¤¤¤Ê¤¤¡£ +に対応するユーザがいない。 .TP .B ENOMEM .\"O Insufficient memory to allocate .\"O .I passwd .\"O structure. .I passwd -¹½Â¤ÂΤò³ä¤êÅö¤Æ¤ë¤¿¤á¤Î¥á¥â¥ê¤¬ÉÔ½½Ê¬¡£ +構造体を割り当てるためのメモリが不十分。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .TP .I /etc/passwd .\"O password database file -¥Ñ¥¹¥ï¡¼¥É¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë +パスワードデータベースファイル .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O SVr2. SVr2 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O The .\"O .BR getpw () .\"O function is dangerous as it may overflow the provided buffer .\"O .IR buf . .BR getpw () -´Ø¿ô¤Ï¡¢Í¿¤¨¤é¤ì¤¿¥Ð¥Ã¥Õ¥¡ +関数は、与えられたバッファ .I buf -¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¤Î¤Ç´í¸±¤Ç¤¢¤ë¡£ +がオーバーフローするかもしれないので危険である。 .\"O It is obsoleted by .\"O .BR getpwuid (3). -¤³¤Î´Ø¿ô¤Ï +この関数は .BR getpwuid (3) -¤Ë¤è¤Ã¤Æ¸Å¤¤¤â¤Î¤È¤Ê¤Ã¤¿¡£ +によって古いものとなった。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR endpwent (3), .BR fgetpwent (3), .BR getpwent (3), diff --git a/draft/man3/getpwent.3 b/draft/man3/getpwent.3 index 16991344..dce59e25 100644 --- a/draft/man3/getpwent.3 +++ b/draft/man3/getpwent.3 @@ -35,11 +35,11 @@ .\" .TH GETPWENT 3 2010-10-21 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getpwent, setpwent, endpwent \- get password file entry -getpwent, setpwent, endpwent \- ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥È¥ê¤Î¼èÆÀ +getpwent, setpwent, endpwent \- パスワードファイルのエントリの取得 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -54,9 +54,9 @@ getpwent, setpwent, endpwent \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -69,7 +69,7 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR getpwent () .\"O function returns a pointer to a structure containing @@ -82,33 +82,33 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O is called, it returns the first entry; thereafter, it returns successive .\"O entries. .BR getpwent () -´Ø¿ô¤Ï¡¢¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¼èÆÀ¤·¤¿¥¨¥ó¥È¥ê¤ò -Í×ÁÇËè¤Ëʬ²ò¤·¡¢³ÆÍ×ÁǤò³ÊǼ¤·¤¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹ -(¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÎã: -¥í¡¼¥«¥ë¤Î¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë +関数は、パスワード・データベースから取得したエントリを +要素毎に分解し、各要素を格納した構造体へのポインタを返す +(パスワード・データベースの例: +ローカルのパスワードファイル .IR /etc/passwd , -NIS, LDAP)¡£ +NIS, LDAP)。 .BR getpwent () -¤Ï¡¢ºÇ½é¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿»þ¤ÏºÇ½é¤Î¥¨¥ó¥È¥ê¤òÊÖ¤·¡¢¤½¤ì°Ê¹ß¤Ï -¸Æ¤Ó½Ð¤µ¤ì¤ëËè¤Ë¼¡¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£ +は、最初に呼び出された時は最初のエントリを返し、それ以降は +呼び出される毎に次のエントリを返す。 .PP .\"O The .\"O .BR setpwent () .\"O function rewinds to the beginning .\"O of the password database. .BR setpwent () -´Ø¿ô¤ò»È¤¦¤È¡¢¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÀèƬ¤ËÌá¤ë¡£ +関数を使うと、パスワード・データベースの先頭に戻る。 .PP .\"O The .\"O .BR endpwent () .\"O function is used to close the password database .\"O after all processing has been performed. .BR endpwent () -´Ø¿ô¤Ï¡¢Á´¤Æ¤Î½èÍý¤¬½ª¤ï¤Ã¤¿¸å¤Ë¥Ñ¥¹¥ï¡¼¥É¡¦ -¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +関数は、全ての処理が終わった後にパスワード・ +データベースをクローズする。 .PP .\"O The \fIpasswd\fP structure is defined in \fI\fP as follows: -\fIpasswd\fP ¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +\fIpasswd\fP 構造体は \fI\fP で以下のように定義されている: .sp .in +4n .nf @@ -120,24 +120,24 @@ struct passwd { .\"O char *pw_gecos; /* user information */ .\"O char *pw_dir; /* home directory */ .\"O char *pw_shell; /* shell program */ -.\"O char *pw_name; /* ¥æ¡¼¥¶Ì¾ */ - char *pw_passwd; /* ¥æ¡¼¥¶¤Î¥Ñ¥¹¥ï¡¼¥É */ - uid_t pw_uid; /* ¥æ¡¼¥¶ ID */ - gid_t pw_gid; /* ¥°¥ë¡¼¥× ID */ - char *pw_gecos; /* ¥æ¡¼¥¶¾ðÊó */ - char *pw_dir; /* ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê */ - char *pw_shell; /* ¥·¥§¥ë¥×¥í¥°¥é¥à */ +.\"O char *pw_name; /* ユーザ名 */ + char *pw_passwd; /* ユーザのパスワード */ + uid_t pw_uid; /* ユーザ ID */ + gid_t pw_gid; /* グループ ID */ + char *pw_gecos; /* ユーザ情報 */ + char *pw_dir; /* ホームディレクトリ */ + char *pw_shell; /* シェルプログラム */ }; .fi .in .PP .\"O For more information about the fields of this structure, see .\"O .BR passwd (5). -¤³¤Î¹½Â¤ÂΤΥե£¡¼¥ë¥É¤Î¾ÜºÙ¤Ï +この構造体のフィールドの詳細は .BR passwd (5) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR getpwent () .\"O function returns a pointer to a @@ -151,18 +151,18 @@ struct passwd { .\"O .I errno .\"O after the call, it should be set to zero before the call. .BR getpwent () -´Ø¿ô¤Ï +関数は .I passwd -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤ì°Ê¾å¥¨¥ó¥È¥ê¤¬Ìµ¤¤¤«¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤È¡¢ +構造体へのポインタを返す。 +これ以上エントリが無いか、エラーが発生した場合は NULL を返す。 +エラーが発生すると、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -¤³¤Î´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¸å¤Ë +が適切に設定される。 +この関数の呼び出し後に .I errno -¤ò¥Á¥§¥Ã¥¯¤·¤¿¤¤¾ì¹ç¤Ï¡¢¸Æ¤Ó½Ð¤·Á°¤Ë +をチェックしたい場合は、呼び出し前に .I errno -¤ò 0 ¤ËÀßÄꤷ¤Æ¤ª¤«¤Ê¤¤¤È¤¤¤±¤Ê¤¤¡£ +を 0 に設定しておかないといけない。 .\"O The return value may point to a static area, and may be overwritten .\"O by subsequent calls to @@ -172,37 +172,37 @@ struct passwd { .\"O .BR getpwuid (3). .\"O (Do not pass the returned pointer to .\"O .BR free (3).) -ÊÖ¤êÃͤÏÀÅŪ¤ÊÎΰè¤ò»Ø¤·¤Æ¤ª¤ê¡¢¤½¤Î¸å¤Î +返り値は静的な領域を指しており、その後の .BR getpwent (), .BR getpwnam (3), .BR getpwuid (3) -¤Î¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -(ÊÖ¤µ¤ì¤¿¥Ý¥¤¥ó¥¿¤ò +の呼び出しで上書きされるかもしれない。 +(返されたポインタを .BR free (3) -¤ËÅϤµ¤Ê¤¤¤³¤È¡£) +に渡さないこと。) .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINTR .\"O A signal was caught. -¥·¥°¥Ê¥ë¤¬Ê᪤µ¤ì¤¿¡£ +シグナルが捕捉された。 .TP .B EIO .\"O I/O error. -Æþ½ÐÎÏ¥¨¥é¡¼¡£ +入出力エラー。 .TP .B EMFILE .\"O The maximum number .\"O .RB ( OPEN_MAX ) .\"O of files was open already in the calling process. -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¿ô¤¬ -¤¹¤Ç¤Ë¾å¸Â +呼び出し元プロセスがオープンされているファイル数が +すでに上限 .RB ( OPEN_MAX ) -¤Ç¤¢¤Ã¤¿¡£ +であった。 .TP .B ENFILE .\"O The maximum number of files was open already in the system. -¥·¥¹¥Æ¥à¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¿ô¤¬¤¹¤Ç¤Ë¾å¸Â¤Ç¤¢¤Ã¤¿¡£ +システムでオープンされているファイル数がすでに上限であった。 .TP .B ENOMEM .\"O .\" not in POSIX @@ -210,30 +210,30 @@ struct passwd { .\"O .I passwd .\"O structure. .\"O .\" to allocate the passwd structure, or to allocate buffers -.\" POSIX ¤Ë¤Ï¤Ê¤¤¡£ +.\" POSIX にはない。 .I passwd -¹½Â¤ÂΤ˳ä¤êÅö¤Æ¤ë¥á¥â¥ê¤¬½½Ê¬¤Ê¤«¤Ã¤¿¡£ +構造体に割り当てるメモリが十分なかった。 .TP .B ERANGE .\"O Insufficient buffer space supplied. -½½Ê¬¤Ê¥Ð¥Ã¥Õ¥¡¶õ´Ö¤¬¤Ê¤¤¡£ +十分なバッファ空間がない。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .TP .I /etc/passwd .\"O local password database file -¥í¡¼¥«¥ë¤Î¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë +ローカルのパスワード・データベースファイル .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O The .\"O .I pw_gecos .\"O field is not specified in POSIX, but is present on most implementations. .I pw_gecos -¥Õ¥£¡¼¥ë¥É¤Ï POSIX ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -¤Û¤È¤ó¤É¤Î¼ÂÁõ¤Ë¸ºß¤¹¤ë¡£ +フィールドは POSIX では規定されていないが、 +ほとんどの実装に存在する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fgetpwent (3), .BR getpw (3), .BR getpwent_r (3), diff --git a/draft/man3/getpwent_r.3 b/draft/man3/getpwent_r.3 index 38ef7b4b..2024141b 100644 --- a/draft/man3/getpwent_r.3 +++ b/draft/man3/getpwent_r.3 @@ -27,12 +27,12 @@ .\" .TH GETPWENT_R 3 2010-10-21 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getpwent_r, fgetpwent_r \- get passwd file entry reentrantly -getpwent_r, fgetpwent_r \- ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥È¥ê¤ò -¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¼è¤ê½Ð¤¹ +getpwent_r, fgetpwent_r \- パスワードファイルのエントリを +リエントラントで取り出す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -48,9 +48,9 @@ getpwent_r, fgetpwent_r \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR getpwent_r (), @@ -59,7 +59,7 @@ _BSD_SOURCE || _SVID_SOURCE .BR fgetpwent_r (): _SVID_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The functions .\"O .BR getpwent_r () .\"O and @@ -68,32 +68,32 @@ _SVID_SOURCE .\"O .BR getpwent (3) .\"O and .\"O .BR fgetpwent (3). -´Ø¿ô +関数 .BR getpwent_r () -¤È +と .BR fgetpwent_r () -¤Ï +は .BR getpwent (3) -¤È +と .BR fgetpwent (3) -¤Î¥ê¥¨¥ó¥È¥é¥ó¥È (reentrant) ÈǤǤ¢¤ë¡£ +のリエントラント (reentrant) 版である。 .\"O The former reads the next passwd entry from the stream initialized by .\"O .BR setpwent (3). -Á°¼Ô¤Ï¡¢ +前者は、 .BR setpwent (3) -¤Ë¤è¤Ã¤Æ½é´ü²½¤µ¤ì¤¿¥¹¥È¥ê¡¼¥à¤«¤é¡¢¼¡¤Î¥Ñ¥¹¥ï¡¼¥É¥¨¥ó¥È¥ê¤òÆɤ߹þ¤à¡£ +によって初期化されたストリームから、次のパスワードエントリを読み込む。 .\"O The latter reads the next passwd entry from the stream .\"O .IR fp . -¸å¼Ô¤Ï¡¢¥¹¥È¥ê¡¼¥à +後者は、ストリーム .I fp -¤«¤é¼¡¤Î¥Ñ¥¹¥ï¡¼¥É¥¨¥ó¥È¥ê¤òÆɤ߹þ¤à¡£ +から次のパスワードエントリを読み込む。 .PP .\"O The \fIpasswd\fP structure is defined in .\"O .I .\"O as follows: -\fIpasswd\fP ¹½Â¤ÂÎ¤Ï +\fIpasswd\fP 構造体は .I -¤Ë¤ª¤¤¤Æ°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +において以下のように定義されている。 .sp .in +4n .nf @@ -105,29 +105,29 @@ struct passwd { .\"O char *pw_gecos; /* user information */ .\"O char *pw_dir; /* home directory */ .\"O char *pw_shell; /* shell program */ - char *pw_name; /* ¥æ¡¼¥¶Ì¾ */ - char *pw_passwd; /* ¥æ¡¼¥¶¤Î¥Ñ¥¹¥ï¡¼¥É */ - uid_t pw_uid; /* ¥æ¡¼¥¶ ID */ - gid_t pw_gid; /* ¥°¥ë¡¼¥× ID */ - char *pw_gecos; /* ¥æ¡¼¥¶¾ðÊó */ - char *pw_dir; /* ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê */ - char *pw_shell; /* ¥·¥§¥ë¥×¥í¥°¥é¥à */ + char *pw_name; /* ユーザ名 */ + char *pw_passwd; /* ユーザのパスワード */ + uid_t pw_uid; /* ユーザ ID */ + gid_t pw_gid; /* グループ ID */ + char *pw_gecos; /* ユーザ情報 */ + char *pw_dir; /* ホームディレクトリ */ + char *pw_shell; /* シェルプログラム */ }; .fi .in .PP .\"O For more information about the fields of this structure, see .\"O .BR passwd (5). -¤³¤Î¹½Â¤ÂΤΥե£¡¼¥ë¥É¤Î¾ÜºÙ¤Ï +この構造体のフィールドの詳細は .BR passwd (5) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O The nonreentrant functions return a pointer to static storage, .\"O where this static storage contains further pointers to user .\"O name, password, gecos field, home directory and shell. -¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤Ê¤¤´Ø¿ô¤ÏÀÅŪ¤Ê³ÊǼÎΰè¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤ÎÀÅŪ¤Ê³ÊǼÎΰè¤Ë¤Ï¡¢¹¹¤Ë¥æ¡¼¥¶Ì¾¡¦¥Ñ¥¹¥ï¡¼¥É¡¦gecos ¥Õ¥£¡¼¥ë¥É¡¦ -¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¡¦¥·¥§¥ë¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬´Þ¤Þ¤ì¤ë¡£ +リエントラントでない関数は静的な格納領域へのポインタを返す。 +この静的な格納領域には、更にユーザ名・パスワード・gecos フィールド・ +ホームディレクトリ・シェルへのポインタが含まれる。 .\"O The reentrant functions described here return all of that in .\"O caller-provided buffers. .\"O First of all there is the buffer @@ -138,60 +138,60 @@ struct passwd { .\"O of size .\"O .I buflen .\"O that can hold additional strings. -¤³¤³¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤδؿô¤Ï¡¢ -¸Æ¤Ó½Ð¤·Â¦¤«¤éÄ󶡤µ¤ì¤ë¥Ð¥Ã¥Õ¥¡¤Ë¥æ¡¼¥¶Ì¾¤Ê¤ÉÁ´¤Æ¤òÊÖ¤¹¡£ -ºÇ½é¤Î°ú¤­¿ô¤È¤·¤Æ \fIstruct passwd\fP ¤òÊÝ»ý¤Ç¤­¤ë¥Ð¥Ã¥Õ¥¡ +ここで説明されているリエントラント版の関数は、 +呼び出し側から提供されるバッファにユーザ名など全てを返す。 +最初の引き数として \fIstruct passwd\fP を保持できるバッファ .I pwbuf -¤¬¤¢¤ë¡£ -¼¡¤Ë¤½¤Î¾¤Îʸ»úÎó¤òÊÝ»ý¤Ç¤­¤ë¥µ¥¤¥º +がある。 +次にその他の文字列を保持できるサイズ .I buflen -¤Î¥Ð¥Ã¥Õ¥¡ +のバッファ .I buf -¤¬¤¢¤ë¡£ +がある。 .\"O The result of these functions, the \fIstruct passwd\fP read from the stream, .\"O is stored in the provided buffer .\"O .IR *pwbuf , .\"O and a pointer to this \fIstruct passwd\fP is returned in .\"O .IR *pwbufp . -¤³¤ì¤é¤Î´Ø¿ô¤Î·ë²Ì (¥¹¥È¥ê¡¼¥à¤«¤éÆɤ߹þ¤Þ¤ì¤¿ \fIstruct passwd\fP) ¤Ï¡¢ -Ä󶡤µ¤ì¤¿¥Ð¥Ã¥Õ¥¡ +これらの関数の結果 (ストリームから読み込まれた \fIstruct passwd\fP) は、 +提供されたバッファ .I *pwbuf -¤Ë³ÊǼ¤µ¤ì¡¢¤³¤Î \fIstruct passwd\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ï +に格納され、この \fIstruct passwd\fP へのポインタは .I *pwbufp -¤ËÊÖ¤µ¤ì¤ë¡£ +に返される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return 0 and .\"O .I *pwbufp .\"O is a pointer to the \fIstruct passwd\fP. -À®¸ù¤·¤¿¾ì¹ç¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï 0 ¤òÊÖ¤·¡¢ +成功した場合、これらの関数は 0 を返し、 .I *pwbufp -¤Ï \fIstruct passwd\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¤È¤Ê¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï¥¨¥é¡¼ÃͤòÊÖ¤·¡¢ +は \fIstruct passwd\fP へのポインタとなる。 +エラーの場合、これらの関数はエラー値を返し、 .I *pwbufp -¤Ï NULL ¤Ë¤Ê¤ë¡£ +は NULL になる。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B ENOENT .\"O No more entries. -¼¡¤Î¥¨¥ó¥È¥ê¤¬¤Ê¤¤¡£ +次のエントリがない。 .TP .B ERANGE .\"O Insufficient buffer space supplied. .\"O Try again with larger buffer. -½½Ê¬¤Ê¥Ð¥Ã¥Õ¥¡¶õ´Ö¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤¡£ -¤â¤Ã¤ÈÂ礭¤Ê¥Ð¥Ã¥Õ¥¡¤ÇºÆÅټ¹Ԥ¹¤ë¤³¤È¡£ +十分なバッファ空間が与えられていない。 +もっと大きなバッファで再度実行すること。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These functions are GNU extensions, done in a style resembling .\"O the POSIX version of functions like .\"O .BR getpwnam_r (3). -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ê¡¢POSIX ÈǤδؿô +これらの関数は GNU 拡張であり、POSIX 版の関数 .BR getpwnam_r (3) -¤Î·Á¼°¤Ë»÷¤»¤Æ¤¢¤ë¡£ +の形式に似せてある。 .\"O Other systems use prototype -¾¤Î¥·¥¹¥Æ¥à¤Ç¤Ï°Ê²¼¤Î¥×¥í¥È¥¿¥¤¥×¤¬»È¤ï¤ì¤Æ¤¤¤ë¡£ +他のシステムでは以下のプロトタイプが使われている。 .sp .nf .in +4n @@ -201,7 +201,7 @@ getpwent_r(struct passwd *pwd, char *buf, int buflen); .fi .sp .\"O or, better, -¤è¤êÎɤ¤¤â¤Î¤Ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +より良いものでは、以下のようになっている。 .sp .nf .in +4n @@ -211,18 +211,18 @@ getpwent_r(struct passwd *pwd, char *buf, int buflen, .in .fi .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The function .\"O .BR getpwent_r () .\"O is not really reentrant since it shares the reading position .\"O in the stream with all other threads. -´Ø¿ô +関数 .BR getpwent_r () -¤ÏËÜÅö¤Î¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤Ï¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¡¢¥¹¥È¥ê¡¼¥à¤ÎÆɤ߹þ¤ß°ÌÃÖ¤ò -¾¤ÎÁ´¤Æ¤Î¥¹¥ì¥Ã¥É¤È¶¦Í­¤·¤Æ¤¤¤ë¤¿¤á¤Ç¤¢¤ë¡£ +は本当のリエントラントではない。 +なぜなら、ストリームの読み込み位置を +他の全てのスレッドと共有しているためである。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .nf #define _GNU_SOURCE #include @@ -249,7 +249,7 @@ main(void) } .fi .\"O .\" perhaps add error checking - should use strerror_r -.\" ¤¿¤Ö¤ó¥¨¥é¡¼¥Á¥§¥Ã¥¯¤òÄɲ䷤ơ¢strerror_r ¤ò»È¤¦¤Ù¤­¤À¤í¤¦¡£ +.\" たぶんエラーチェックを追加して、strerror_r を使うべきだろう。 .\" #include .\" #include .\" if (i) { @@ -259,7 +259,7 @@ main(void) .\" exit(EXIT_SUCCESS); .\" } .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fgetpwent (3), .BR getpw (3), .BR getpwent (3), diff --git a/draft/man3/getpwnam.3 b/draft/man3/getpwnam.3 index 49a200de..e4c957b8 100644 --- a/draft/man3/getpwnam.3 +++ b/draft/man3/getpwnam.3 @@ -42,11 +42,11 @@ .\" .TH GETPWNAM 3 2009-03-30 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getpwnam, getpwnam_r, getpwuid, getpwuid_r \- get password file entry -getpwnam, getpwnam_r, getpwuid, getpwuid_r \- ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥È¥ê¤Î¼èÆÀ +getpwnam, getpwnam_r, getpwuid, getpwuid_r \- パスワードファイルのエントリの取得 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -67,9 +67,9 @@ getpwnam, getpwnam_r, getpwuid, getpwuid_r \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -81,7 +81,7 @@ _SVID_SOURCE || _POSIX_SOURCE .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR getpwnam () .\"O function returns a pointer to a structure containing @@ -92,14 +92,14 @@ _SVID_SOURCE || _POSIX_SOURCE .\"O that matches the username .\"O .IR name . .BR getpwnam () -´Ø¿ô¤Ï¡¢¥æ¡¼¥¶Ì¾ +関数は、ユーザ名 .I name -¤Ë¥Þ¥Ã¥Á¤¹¤ë¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥¨¥ó¥È¥ê¤ò -Í×ÁÇËè¤Ëʬ²ò¤·¡¢³ÆÍ×ÁǤò³ÊǼ¤·¤¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹ -(¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÎã: -¥í¡¼¥«¥ë¤Î¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë +にマッチするパスワード・データベースのエントリを +要素毎に分解し、各要素を格納した構造体へのポインタを返す +(パスワード・データベースの例: +ローカルのパスワードファイル .IR /etc/passwd , -NIS, LDAP)¡£ +NIS, LDAP)。 .PP .\"O The .\"O .BR getpwuid () @@ -108,10 +108,10 @@ NIS, LDAP) .\"O that matches the user ID .\"O .IR uid . .BR getpwuid () -´Ø¿ô¤Ï¡¢¥æ¡¼¥¶ ID +関数は、ユーザ ID .I uid -¤Ë¥Þ¥Ã¥Á¤¹¤ë¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥¨¥ó¥È¥ê¤ò -Í×ÁÇËè¤Ëʬ²ò¤·¡¢³ÆÍ×ÁǤò³ÊǼ¤·¤¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ +にマッチするパスワード・データベースのエントリを +要素毎に分解し、各要素を格納した構造体へのポインタを返す。 .PP .\"O The .\"O .BR getpwnam_r () @@ -122,14 +122,14 @@ NIS, LDAP) .\"O structure in the space pointed to by .\"O .IR pwd . .BR getpwnam_r () -¤È +と .BR getpwuid_r () -´Ø¿ô¤Ï (¾åµ­¤Î´Ø¿ô¤È) Ʊ¤¸¾ðÊó¤ò¼èÆÀ¤¹¤ë¤¬¡¢ -¼èÆÀ¤·¤¿ +関数は (上記の関数と) 同じ情報を取得するが、 +取得した .I passwd -¹½Â¤ÂΤò +構造体を .I pwd -¤¬»Ø¤¹Îΰè¤Ë³ÊǼ¤¹¤ë¡£ +が指す領域に格納する。 .\"O This .\"O .I passwd .\"O structure contains pointers to strings, and these strings @@ -137,26 +137,26 @@ NIS, LDAP) .\"O .I buf .\"O of size .\"O .IR buflen . -¤³¤Î +この .I passwd -¹½Â¤ÂΤˤÏʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬´Þ¤Þ¤ì¡¢ -¤³¤ì¤é¤Îʸ»úÎó¤Ï¥µ¥¤¥º +構造体には文字列へのポインタが含まれ、 +これらの文字列はサイズ .I buflen -¤Î¥Ð¥Ã¥Õ¥¡ +のバッファ .I buf -¤Ë³ÊǼ¤µ¤ì¤ë¡£ +に格納される。 .\"O A pointer to the result (in case of success) or NULL (in case no entry .\"O was found or an error occurred) is stored in .\"O .IR *result . -À®¸ù¤·¤¿¾ì¹ç +成功した場合 .I *result -¤Ë¤Ï·ë²Ì¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬³ÊǼ¤µ¤ì¤ë¡£ -¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤ä¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¤Ï +には結果へのポインタが格納される。 +エントリが見つからなかった場合やエラーが発生した場合には .I *result -¤Ë¤Ï NULL ¤¬Æþ¤ë¡£ +には NULL が入る。 .PP .\"O The \fIpasswd\fP structure is defined in \fI\fP as follows: -\fIpasswd\fP ¹½Â¤ÂΤϡ¢\fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +\fIpasswd\fP 構造体は、\fI\fP で以下のように定義されている: .sp .in +4n .nf @@ -168,13 +168,13 @@ struct passwd { .\"O char *pw_gecos; /* real name */ .\"O char *pw_dir; /* home directory */ .\"O char *pw_shell; /* shell program */ - char *pw_name; /* ¥æ¡¼¥¶Ì¾ */ - char *pw_passwd; /* ¥æ¡¼¥¶¤Î¥Ñ¥¹¥ï¡¼¥É */ - uid_t pw_uid; /* ¥æ¡¼¥¶ ID */ - gid_t pw_gid; /* ¥°¥ë¡¼¥× ID */ - char *pw_gecos; /* ¼Â̾ */ - char *pw_dir; /* ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê */ - char *pw_shell; /* ¥·¥§¥ë¥×¥í¥°¥é¥à */ + char *pw_name; /* ユーザ名 */ + char *pw_passwd; /* ユーザのパスワード */ + uid_t pw_uid; /* ユーザ ID */ + gid_t pw_gid; /* グループ ID */ + char *pw_gecos; /* 実名 */ + char *pw_dir; /* ホームディレクトリ */ + char *pw_shell; /* シェルプログラム */ }; .fi .in @@ -186,13 +186,13 @@ struct passwd { .\"O with the argument .\"O .BR _SC_GETPW_R_SIZE_MAX . .I buf -¤ËºÇÂçɬÍפʥµ¥¤¥º¤Ï¡¢ +に最大必要なサイズは、 .BR sysconf (3) -¤Ë°ú¤­¿ô +に引き数 .B _SC_GETPW_R_SIZE_MAX -¤ò»ØÄꤷ¤Æ¼Â¹Ô¤¹¤ë¤³¤È¤Çʬ¤«¤ë¡£ +を指定して実行することで分かる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR getpwnam () .\"O and @@ -202,25 +202,25 @@ struct passwd { .\"O structure, or NULL if the matching entry is not found or .\"O an error occurs. .BR getpwnam () -¤È +と .BR getpwuid () -´Ø¿ô¤Ï¡¢ +関数は、 .I passwd -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -°ìÃפ¹¤ë¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤ä¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +構造体へのポインタを返す。 +一致するエントリが見つからなかった場合や、エラーが発生した場合は NULL を返す。 .\"O If an error occurs, .\"O .I errno .\"O is set appropriately. .\"O If one wants to check .\"O .I errno .\"O after the call, it should be set to zero before the call. -¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢ +エラーが起こった場合、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -¸Æ¤Ó½Ð¤·¤Î¸å¤Ç +が適切に設定される。 +呼び出しの後で .I errno -¤ò¥Á¥§¥Ã¥¯¤·¤¿¤¤¾ì¹ç¤Ï¡¢ -¸Æ¤Ó½Ð¤·¤ÎÁ°¤Ë (¤³¤ÎÃͤò) 0 ¤ËÀßÄꤷ¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£ +をチェックしたい場合は、 +呼び出しの前に (この値を) 0 に設定しておくべきである。 .LP .\"O The return value may point to a static area, and may be overwritten .\"O by subsequent calls to @@ -230,14 +230,14 @@ struct passwd { .\"O .BR getpwuid (). .\"O (Do not pass the returned pointer to .\"O .BR free (3).) -ÊÖ¤êÃͤÏÀÅŪ¤ÊÎΰè¤ò»Ø¤·¤Æ¤ª¤ê¡¢¤½¤Î¸å¤Î +返り値は静的な領域を指しており、その後の .BR getpwent (3), .BR getpwnam (), .BR getpwuid () -¤Î¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -(ÊÖ¤µ¤ì¤¿¥Ý¥¤¥ó¥¿¤ò +の呼び出しで上書きされるかもしれない。 +(返されたポインタを .BR free (3) -¤ËÅϤµ¤Ê¤¤¤³¤È¡£) +に渡さないこと。) .LP .\"O On success, .\"O .BR getpwnam_r () @@ -252,56 +252,56 @@ struct passwd { .\"O .IR *result . .\"O In case of error, an error number is returned, and NULL is stored in .\"O .IR *result . -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR getpwnam_r () -¤È +と .BR getpwuid_r () -¤Ï 0 ¤òÊÖ¤·¡¢ +は 0 を返し、 .I *result -¤Ë +に .I pwd -¤òÀßÄꤹ¤ë¡£ -¥Þ¥Ã¥Á¤¹¤ë¥Ñ¥¹¥ï¡¼¥É¡¦¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ -0 ¤òÊÖ¤·¡¢ +を設定する。 +マッチするパスワード・エントリが見つからなかった場合には、 +0 を返し、 .I *result -¤Ë NULL ¤òÀßÄꤹ¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢¥¨¥é¡¼ÈÖ¹æ¤òÊÖ¤·¡¢ +に NULL を設定する。 +エラーの場合、エラー番号を返し、 .I *result -¤Ë NULL ¤òÀßÄꤹ¤ë¡£ +に NULL を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .\"O .BR 0 " or " ENOENT " or " ESRCH " or " EBADF " or " EPERM " or ... " -.BR 0 " ¤Þ¤¿¤Ï " ENOENT " ¤Þ¤¿¤Ï " ESRCH " ¤Þ¤¿¤Ï " EBADF " ¤Þ¤¿¤Ï " EPERM " ¤Þ¤¿¤Ï ... " +.BR 0 " または " ENOENT " または " ESRCH " または " EBADF " または " EPERM " または ... " .\"O The given .\"O .I name .\"O or .\"O .I uid .\"O was not found. -»ØÄꤵ¤ì¤¿ +指定された .I name -¤Þ¤¿¤Ï +または .I uid -¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£ +が見つからなかった。 .TP .B EINTR .\"O A signal was caught. -¥·¥°¥Ê¥ë¤¬¥­¥ã¥Ã¥Á¤µ¤ì¤¿¡£ +シグナルがキャッチされた。 .TP .B EIO .\"O I/O error. -I/O ¥¨¥é¡¼¡£ +I/O エラー。 .TP .B EMFILE .\"O The maximum number .\"O .RB ( OPEN_MAX ) .\"O of files was open already in the calling process. -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ë¤ª¤¤¤Æ¡¢ -´û¤ËºÇÂç¿ô (OPEN_MAX) ¤Î¥Õ¥¡¥¤¥ë¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¡£ +呼び出したプロセスにおいて、 +既に最大数 (OPEN_MAX) のファイルがオープンされている。 .TP .B ENFILE .\"O The maximum number of files was open already in the system. -¥·¥¹¥Æ¥à¾å¤Ç´û¤ËºÇÂç¿ô¤Î¥Õ¥¡¥¤¥ë¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¡£ +システム上で既に最大数のファイルがオープンされている。 .TP .B ENOMEM .\" not in POSIX @@ -309,28 +309,28 @@ I/O .\"O .I passwd .\"O structure. .\"O .\" This structure is static, allocated 0 or 1 times. No memory leak. (libc45) -.\" POSIX ¤Ë¤Ï¤Ê¤¤¡£ +.\" POSIX にはない。 .I passwd -¹½Â¤ÂΤò³ä¤êÅö¤Æ¤ë¤¿¤á¤Î¥á¥â¥ê¤¬ÉÔ½½Ê¬¡£ -.\" ¤³¤Î¹½Â¤ÂΤÏÀÅŪ¤Ç¤¢¤ê¡¢0 ²ó¤Þ¤¿¤Ï 1 ²ó³ä¤êÅö¤Æ¤é¤ì¤ë¡£ -.\" ¥á¥â¥ê¥ê¡¼¥¯¤Ï̵¤¤¡£(libc45) +構造体を割り当てるためのメモリが不十分。 +.\" この構造体は静的であり、0 回または 1 回割り当てられる。 +.\" メモリリークは無い。(libc45) .TP .B ERANGE .\"O Insufficient buffer space supplied. -Í¿¤¨¤é¤ì¤¿¥Ð¥Ã¥Õ¥¡¶õ´Ö¤¬ÉÔ½½Ê¬¤Ç¤¢¤ë¡£ +与えられたバッファ空間が不十分である。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .TP .I /etc/passwd .\"O local password database file -¥í¡¼¥«¥ë¤Î¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë +ローカルのパスワード・データベースファイル .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The formulation given above under "RETURN VALUE" is from POSIX.1-2001. -¾åµ­¤Î¡ÖÊÖ¤êÃ͡װʲ¼¤Îµ­½Ò¤Ï POSIX.1-2001 ¤Ëµò¤ë¡£ +上記の「返り値」以下の記述は POSIX.1-2001 に拠る。 .\"O It does not call "not found" an error, and hence does not specify what value .\"O .I errno .\"O might have in this situation. @@ -342,17 +342,17 @@ SVr4, 4.3BSD, POSIX.1-2001. .\"O Experiments on various .\"O UNIX-like systems show that lots of different values occur in this .\"O situation: 0, ENOENT, EBADF, ESRCH, EWOULDBLOCK, EPERM and probably others. -¤³¤Îɸ½à¤Ï¡Ö(¥¨¥ó¥È¥ê¤¬) ¸«¤Ä¤«¤é¤Ê¤¤¤³¤È¡×¤ò¥¨¥é¡¼¤È¤·¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢ -¤½¤Î¤è¤¦¤Ê¾ì¹ç¤Ë +この標準は「(エントリが) 見つからないこと」をエラーとしていないので、 +そのような場合に .I errno -¤¬¤É¤Î¤è¤¦¤ÊÃͤˤʤ뤫¤òÄê¤á¤Æ¤¤¤Ê¤¤¡£ -¤½¤Î¤¿¤á¡¢¥¨¥é¡¼¤òǧ¼±¤¹¤ë¤³¤È¤ÏÉÔ²Äǽ¤Ç¤¢¤ë¡£ -POSIX ¤Ë½àµò¤·¤Æ¡¢¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï +がどのような値になるかを定めていない。 +そのため、エラーを認識することは不可能である。 +POSIX に準拠して、エントリが見つからない場合は .I errno -¤òÊѹ¹¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡¢¤È¼çÄ¥¤¹¤ë¿Í¤â¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -ÍÍ¡¹¤Ê UNIX ·Ï¤Î¥·¥¹¥Æ¥à¤Ç»î¤·¤Æ¤ß¤ë¤È¡¢¤½¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï -0, ENOENT, EBADF, ESRCH, EWOULDBLOCK, EPERM ¤È¤¤¤Ã¤¿ÍÍ¡¹¤ÊÃͤ¬ÊÖ¤µ¤ì¤ë¡£ -¾¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +を変更しないようにすべきである、と主張する人もいるかもしれない。 +様々な UNIX 系のシステムで試してみると、そのような場合には +0, ENOENT, EBADF, ESRCH, EWOULDBLOCK, EPERM といった様々な値が返される。 +他の値が返されるかもしれない。 .\"O .\" more precisely: .\"O .\" AIX 5.1 - gives ESRCH .\"O .\" OSF1 4.0g - gives EWOULDBLOCK @@ -361,21 +361,21 @@ POSIX .\"O .\" FreeBSD 4.8, OpenBSD 3.2, NetBSD 1.6 - give EPERM .\"O .\" SunOS 5.8 - gives EBADF .\"O .\" Tru64 5.1b, HP-UX-11i, SunOS 5.7 - give 0 -.\" ¤è¤êÀµ³Î¤Ë¤Ï: -.\" AIX 5.1 ¤Ï ESRCH ¤òÊÖ¤¹¡£ -.\" OSF1 4.0g ¤Ï EWOULDBLOCK ¤òÊÖ¤¹¡£ -.\" libc, glibc (¥Ð¡¼¥¸¥ç¥ó 2.6 ¤Þ¤Ç), Irix 6.5 ¤Ï ENOENT ¤òÊÖ¤¹¡£ -.\" glibc (¥Ð¡¼¥¸¥ç¥ó 2.7 °Ê¹ß) ¤Ï 0 ¤òÊÖ¤¹¡£ -.\" FreeBSD 4.8, OpenBSD 3.2, NetBSD 1.6 ¤Ï EPERM ¤òÊÖ¤¹¡£ -.\" SunOS 5.8 ¤Ï EBADF ¤òÊÖ¤¹¡£ -.\" Tru64 5.1b, HP-UX-11i, SunOS 5.7 ¤Ï 0 ¤òÊÖ¤¹¡£ +.\" より正確には: +.\" AIX 5.1 は ESRCH を返す。 +.\" OSF1 4.0g は EWOULDBLOCK を返す。 +.\" libc, glibc (バージョン 2.6 まで), Irix 6.5 は ENOENT を返す。 +.\" glibc (バージョン 2.7 以降) は 0 を返す。 +.\" FreeBSD 4.8, OpenBSD 3.2, NetBSD 1.6 は EPERM を返す。 +.\" SunOS 5.8 は EBADF を返す。 +.\" Tru64 5.1b, HP-UX-11i, SunOS 5.7 は 0 を返す。 .\"O The .\"O .I pw_dir .\"O field contains the name of the initial working directory of the user. -¥Õ¥£¡¼¥ë¥É +フィールド .I pw_dir -¤Ë¤Ï¡¢¥æ¡¼¥¶¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê̾¤Î½é´üÃͤ¬³ÊǼ¤µ¤ì¤ë¡£ +には、ユーザの作業ディレクトリ名の初期値が格納される。 .\"O Login programs use the value of this field to initialize the .\"O .B HOME .\"O environment variable for the login shell. @@ -390,30 +390,30 @@ POSIX .\"O it is necessary to use .\"O .I getpwnam("username")\->pw_dir .\"O or similar. -¥í¥°¥¤¥ó¥×¥í¥»¥¹¤Ï¡¢¤³¤Î¥Õ¥£¡¼¥ë¥É¤ÎÃͤò»È¤Ã¤Æ¡¢ -¥í¥°¥¤¥ó¥·¥§¥ë¤Î +ログインプロセスは、このフィールドの値を使って、 +ログインシェルの .B HOME -´Ä¶­ÊÑ¿ô¤ò½é´ü²½¤¹¤ë¡£ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¡¢¥æ¡¼¥¶¤Î¥Û¡¼¥à¡¦¥Ç¥£¥ì¥¯¥È¥ê¤ò·èÄꤹ¤ë¾ì¹ç¤Ë¤Ï¡¢ +環境変数を初期化する。 +アプリケーションが、ユーザのホーム・ディレクトリを決定する場合には、 .RI ( getpwuid(getuid())\->pw_dir -¤ÎÃͤǤϤʤ¯) +の値ではなく) .B HOME -¤ÎÃͤò¸¡ºº¤¹¤ë¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¤Ê¤¼¤Ê¤é¡¢¤³¤Î¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ç¡¢¥æ¡¼¥¶¤¬¥í¥°¥¤¥ó¡¦¥»¥Ã¥·¥ç¥óÃæ¤Ç -¡Ö¥Û¡¼¥à¡¦¥Ç¥£¥ì¥¯¥È¥ê¡×¤Î°ÕÌ£¤òÊѹ¹¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¤«¤é¤Ç¤¢¤ë¡£ -Ê̤Υ桼¥¶¤Î¥Û¡¼¥à¡¦¥Ç¥£¥ì¥¯¥È¥ê (¤Î½é´üÃÍ) ¤òÃΤë¤Ë¤Ï +の値を検査するようにすべきである。 +なぜなら、このようにすることで、ユーザがログイン・セッション中で +「ホーム・ディレクトリ」の意味を変更できるようになるからである。 +別のユーザのホーム・ディレクトリ (の初期値) を知るには .I getpwnam("username")\->pw_dir -¤«Æ±ÍͤÎÊýË¡¤ò»È¤¦É¬Íפ¬¤¢¤ë¡£ +か同様の方法を使う必要がある。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The program below demonstrates the use of .\"O .BR getpwnam_r () .\"O to find the full username and user ID for the username .\"O supplied as a command-line argument. -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï +以下のプログラムは .BR getpwnam_r () -¤Î»ÈÍÑÎã¤ò¼¨¤·¤¿¤â¤Î¤Ç¡¢¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤ÇÅϤµ¤ì¤¿¥æ¡¼¥¶Ì¾¤ËÂФ¹¤ë -´°Á´¤Ê¥æ¡¼¥¶Ì¾¤È¥æ¡¼¥¶ ID ¤òõ¤¹¤â¤Î¤Ç¤¢¤ë¡£ +の使用例を示したもので、コマンドライン引き数で渡されたユーザ名に対する +完全なユーザ名とユーザ ID を探すものである。 .nf #include @@ -439,8 +439,8 @@ main(int argc, char *argv[]) bufsize = sysconf(_SC_GETPW_R_SIZE_MAX); .\"O if (bufsize == \-1) /* Value was indeterminate */ .\"O bufsize = 16384; /* Should be more than enough */ - if (bufsize == \-1) /* Ãͤò·èÄê¤Ç¤­¤Ê¤«¤Ã¤¿ */ - bufsize = 16384; /* ½½Ê¬Â礭¤ÊÃͤˤ¹¤Ù¤­ */ + if (bufsize == \-1) /* 値を決定できなかった */ + bufsize = 16384; /* 十分大きな値にすべき */ buf = malloc(bufsize); if (buf == NULL) { @@ -464,7 +464,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR endpwent (3), .BR fgetpwent (3), .BR getgrnam (3), diff --git a/draft/man3/getrpcent.3 b/draft/man3/getrpcent.3 index a0a9e64f..0b368fee 100644 --- a/draft/man3/getrpcent.3 +++ b/draft/man3/getrpcent.3 @@ -9,13 +9,13 @@ .\" .TH GETRPCENT 3 2008-08-19 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getrpcent, getrpcbyname, getrpcbynumber, setrpcent, endrpcent \- get .\"O RPC entry getrpcent, getrpcbyname, getrpcbynumber, setrpcent, endrpcent \- -RPC ¥¨¥ó¥È¥ê¤ò¼èÆÀ¤¹¤ë +RPC エントリを取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include @@ -30,7 +30,7 @@ RPC .BI "void endrpcent(void);" .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .LP .BR getrpcent (), .BR getrpcbyname (), @@ -39,9 +39,9 @@ RPC .\"O each return a pointer to an object with the .\"O following structure containing the broken-out .\"O fields of an entry in the RPC program number data base. -¤Ï¤½¤ì¤¾¤ì°Ê²¼¤Î¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤Î¹½Â¤ÂÎ¤Ï RPC ¥×¥í¥°¥é¥àÈÖ¹æ¥Ç¡¼¥¿¥Ù¡¼¥¹ -¤Î³Æ¹Ô¤Î¥Õ¥£¡¼¥ë¥É¤ò´Þ¤ó¤Ç¤¤¤ë¡£ +はそれぞれ以下の構造体へのポインタを返す。 +この構造体は RPC プログラム番号データベース +の各行のフィールドを含んでいる。 .in +4n .nf @@ -54,28 +54,28 @@ struct rpcent { .in .LP .\"O The members of this structure are: -¤³¤Î¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤Ï°Ê²¼¤ÎÄ̤ꡣ +この構造体のメンバーは以下の通り。 .RS 4 .TP 12 .I r_name .\"O The name of the server for this RPC program. -¤³¤Î RPC ¥×¥í¥°¥é¥à¤Î¥µ¡¼¥Ð¤Î̾Á° +この RPC プログラムのサーバの名前 .TP .I r_aliases .\"O A zero terminated list of alternate names for the RPC program. -RPC ¥×¥í¥°¥é¥à¤ÎÊÌ̾¤Î¥ê¥¹¥È¡£¥¼¥í¤Ç½ªÃ¼¤µ¤ì¤Æ¤¤¤ë¡£ +RPC プログラムの別名のリスト。ゼロで終端されている。 .TP .I r_number .\"O The RPC program number for this service. -¤³¤Î¥µ¡¼¥Ó¥¹¤Î RPC ¥×¥í¥°¥é¥àÈֹ档 +このサービスの RPC プログラム番号。 .RE .LP .\"O .BR getrpcent () .\"O reads the next entry from the database. .\"O A connection is opened to the database if necessary. .BR getrpcent () -¤Ï¥Õ¥¡¥¤¥ë¤Î¼¡¤Î¥¨¥ó¥È¥ê¤òÆɤ߹þ¤à¡£ -ɬÍפʤé¤Ð¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤¬¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£ +はファイルの次のエントリを読み込む。 +必要ならばデータベースへの接続がオープンされる。 .LP .\"O .BR setrpcent () .\"O function opens a connection to the database, @@ -86,18 +86,18 @@ RPC .\"O .BR getrpc* () .\"O functions. .BR setrpcent () -¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤ò¥ª¡¼¥×¥ó¤·¡¢ -¼¡¤ÎÆɤ߹þ¤ß¥¨¥ó¥È¥ê¤òÀèƬ¤Î¥¨¥ó¥È¥ê¤ËÀßÄꤹ¤ë¡£ -\fIstayopen\fP ¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¡¢ -°ì¤Ä°ì¤Ä¤Î +はデータベースへの接続をオープンし、 +次の読み込みエントリを先頭のエントリに設定する。 +\fIstayopen\fP が 0 でない場合、 +一つ一つの .BR getrpc* () -´Ø¿ô¤Î¸Æ¤Ó½Ð¤·´Ö¤Ç¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤ò¥¯¥í¡¼¥º¤·¤Ê¤¤¡£ +関数の呼び出し間でデータベースへの接続をクローズしない。 .LP .\"O The .\"O .BR endrpcent () .\"O function closes the connection to the database. .BR endrpcent () -¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +はデータベースへの接続をクローズする。 .LP .\"O .BR getrpcbyname () .\"O and @@ -106,13 +106,13 @@ RPC .\"O of the file until a matching RPC program name or .\"O program number is found, or until end-of-file is encountered. .BR getrpcbyname () -¤È +と .BR getrpcbynumber () -¤Ï¥Õ¥¡¥¤¥ë¤ÎºÇ½é¤«¤é°ìÃפ¹¤ë RPC ¥×¥í¥°¥é¥à̾¤«¥×¥í¥°¥é¥àÈֹ椬 -¸«¤Ä¤«¤ë¤«¡¢¥Õ¥¡¥¤¥ë¤ÎºÇ¸å (end-of-file) ¤ËÅþ㤹¤ë¤Þ¤Ç¡¢½çÈÖ¤Ë -õ¤·¤Æ¤¤¤¯¡£ +はファイルの最初から一致する RPC プログラム名かプログラム番号が +見つかるか、ファイルの最後 (end-of-file) に到達するまで、順番に +探していく。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR getrpcent (), .\"O .BR getrpcbyname (), @@ -121,37 +121,37 @@ RPC .\"O return a pointer to a statically allocated .\"O .I rpcent .\"O structure. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR getrpcent (), .BR getrpcbyname (), .BR getrpcbynumber () -¤Ï¡¢ÀÅŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿ +は、静的に割り当てられた .I rpcent -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ +構造体へのポインタを返す。 .\"O A NULL pointer is returned on EOF or error. -EOF ¤« ¥¨¥é¡¼¤ËÁø¶ø¤·¤¿¾ì¹ç¤Ë¤Ï NULL ¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +EOF か エラーに遭遇した場合には NULL ポインタを返す。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .TP .I /etc/rpc .\"O RPC program number database. -RPC ¥×¥í¥°¥é¥àÈÖ¹æ¥Ç¡¼¥¿¥Ù¡¼¥¹ +RPC プログラム番号データベース .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O Not in POSIX.1-2001. .\"O Present on the BSDs, Solaris, and many other systems. -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -BSD ·Ï¡¢Solaris ¤ä¾¤Î¿¤¯¤Î¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¡£ +POSIX.1-2001 にはない。 +BSD 系、Solaris や他の多くのシステムに存在する。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O All information .\"O is contained in a static area .\"O so it must be copied if it is .\"O to be saved. -Á´¤Æ¤Î¾ðÊó¤ÏÀÅŪÎΰè¤Ë³ÊǼ¤µ¤ì¤ë¡£ -Êݸ¤¹¤ë¤¿¤á¤Ë¤ÏÁ´¤Æ¤ò¥³¥Ô¡¼¤¹¤ëɬÍפ¬¤¢¤ë¡£ +全ての情報は静的領域に格納される。 +保存するためには全てをコピーする必要がある。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getrpcent_r (3), .BR rpc (5), .BR rpcinfo (8), diff --git a/draft/man3/getrpcport.3 b/draft/man3/getrpcport.3 index 61430d22..f55583e5 100644 --- a/draft/man3/getrpcport.3 +++ b/draft/man3/getrpcport.3 @@ -9,17 +9,17 @@ .\" .TH GETRPCPORT 3 2007-12-23 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getrpcport \- get RPC port number -getrpcport \- RPC ¥Ý¡¼¥ÈÈÖ¹æ¤ò¼èÆÀ¤¹¤ë +getrpcport \- RPC ポート番号を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .BI "int getrpcport(char *" host ", int " prognum ", int " versnum \ ", int " proto ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .BR getrpcport () .\"O returns the port number for version .\"O .I versnum @@ -29,15 +29,15 @@ getrpcport \- RPC .\"O .I host .\"O and using protocol .\"O .IR proto . -¤Ï +は .I host -¾å¤Ç +上で .I proto -¥×¥í¥È¥³¥ë¤ò»ÈÍѤ·¤Æ¤¤¤ë¥Ð¡¼¥¸¥ç¥ó +プロトコルを使用しているバージョン .I versnum -¤Î RPC ¥×¥í¥°¥é¥à +の RPC プログラム .I prognum -¤Î¥Ý¡¼¥ÈÈÖ¹æ¤òÊÖ¤¹¡£ +のポート番号を返す。 .\"O It returns 0 if it cannot contact the portmapper, or if .\"O .I prognum .\"O is not registered. @@ -48,18 +48,18 @@ getrpcport \- RPC .\"O it will still return a port number (for some version of the program) .\"O indicating that the program is indeed registered. .\"O The version mismatch will be detected upon the first call to the service. -¥Ý¡¼¥È¥Þ¥Ã¥Ñ¡¼¤ÈÏ¢Íí¤¬¼è¤ì¤Ê¤¤¾ì¹ç¤ä +ポートマッパーと連絡が取れない場合や .I prognum -¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ +が登録されていない場合には 0 を返す。 .I prognum -¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤¬¡¢¥Ð¡¼¥¸¥ç¥ó +が登録されているが、バージョン .I versnum -¤Ç¤Ê¤¤¾ì¹ç¤Ë¤â¡¢¤½¤Î¥×¥í¥°¥é¥à¤¬¼ÂºÝ¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò¼¨¤¹¤¿¤á¤Ë -(¤½¤Î¥×¥í¥°¥é¥à¤Î¥Ð¡¼¥¸¥ç¥ó¤Î)¥Ý¡¼¥ÈÈÖ¹æ¤òÊÖ¤¹¡£ -¥Ð¡¼¥¸¥ç¥ó¤ÎÉÔ°ìÃפϺǽé¤Ë¤½¤Î¥µ¡¼¥Ó¥¹¤ò¸Æ¤Ó½Ð¤·¤¿»þ¤Ë¸¡½Ð¤µ¤ì¤ë¡£ +でない場合にも、そのプログラムが実際に登録されていることを示すために +(そのプログラムのバージョンの)ポート番号を返す。 +バージョンの不一致は最初にそのサービスを呼び出した時に検出される。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O Not in POSIX.1-2001. .\"O Present on the BSDs, Solaris, and many other systems. -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -BSD ·Ï¡¢Solaris ¤ä¾¤Î¿¤¯¤Î¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¡£ +POSIX.1-2001 にはない。 +BSD 系、Solaris や他の多くのシステムに存在する。 diff --git a/draft/man3/gets.3 b/draft/man3/gets.3 index 894c5740..81ace4be 100644 --- a/draft/man3/gets.3 +++ b/draft/man3/gets.3 @@ -31,11 +31,11 @@ .\" .TH GETS 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fgetc, fgets, getc, getchar, gets, ungetc \- input of characters and strings -fgetc, fgets, getc, getchar, gets, ungetc \- ʸ»ú¤Èʸ»úÎó¤ÎÆþÎÏ +fgetc, fgets, getc, getchar, gets, ungetc \- 文字と文字列の入力 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -52,7 +52,7 @@ fgetc, fgets, getc, getchar, gets, ungetc \- ʸ .BI "int ungetc(int " c ", FILE *" stream ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR fgetc () .\"O reads the next character from .\"O .I stream @@ -64,15 +64,15 @@ fgetc, fgets, getc, getchar, gets, ungetc \- ʸ .\"O .B EOF .\"O on end of file or error. .BR fgetc () -¤Ï¡¢ +は、 .I stream -¤«¤é¼¡¤Îʸ»ú¤ò +から次の文字を .I unsigned char -¤È¤·¤ÆÆɤߡ¢ +として読み、 .I int -¤Ë¥­¥ã¥¹¥È¤·¤ÆÊÖ¤¹¡£¥Õ¥¡¥¤¥ë¤Î½ª¤ï¤ê¤ä¥¨¥é¡¼¤È¤Ê¤Ã¤¿¾ì¹ç¤Ï +にキャストして返す。ファイルの終わりやエラーとなった場合は .B EOF -¤òÊÖ¤¹¡£ +を返す。 .PP .\"O .BR getc () .\"O is equivalent to @@ -81,19 +81,19 @@ fgetc, fgets, getc, getchar, gets, ungetc \- ʸ .\"O .I stream .\"O more than once. .BR getc () -¤Ï +は .BR fgetc () -¤ÈƱÍͤÀ¤¬¡¢ +と同様だが、 .I stream -¤òÊ£¿ô²óɾ²Á¤¹¤ë¥Þ¥¯¥í¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +を複数回評価するマクロとして実装されているかもしれない。 .PP .\"O .BR getchar () .\"O is equivalent to .\"O .BI "getc(" stdin ) \fR. .BR getchar () -¤Ï +は .BI "getc(" stdin ) \fR -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .PP .\"O .BR gets () .\"O reads a line from @@ -104,18 +104,18 @@ fgetc, fgets, getc, getchar, gets, ungetc \- ʸ .\"O .BR EOF , .\"O which it replaces with a null byte (\(aq\e0\(aq). .BR gets () -¤Ï¡¢²þ¹Ôʸ»ú¤« +は、改行文字か .B EOF -¤Þ¤Ç¤Î 1¹Ô¤ò +までの 1行を .I stdin -¤«¤éÆɤ߹þ¤ß +から読み込み .I s -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤¹¤ë -(ËöÈø¤Î²þ¹Ôʸ»ú¤ä +が指すバッファに格納する +(末尾の改行文字や .B EOF -¤Ï NULL ¥Ð¥¤¥È (\(aq\e0\(aq) ¤ËÃÖ¤­´¹¤¨¤é¤ì¤ë)¡£ +は NULL バイト (\(aq\e0\(aq) に置き換えられる)。 .\"O No check for buffer overrun is performed (see BUGS below). -¥Ð¥Ã¥Õ¥¡¡¦¥ª¡¼¥Ð¡¼¥é¥ó¤Î¥Á¥§¥Ã¥¯¤Ï¹Ô¤ï¤ì¤Ê¤¤ (²¼µ­¤Î¡Ö¥Ð¥°¡×¤ò»²¾È)¡£ +バッファ・オーバーランのチェックは行われない (下記の「バグ」を参照)。 .PP .\"O .BR fgets () .\"O reads in at most one less than @@ -131,18 +131,18 @@ fgetc, fgets, getc, getchar, gets, ungetc \- ʸ .\"O A terminating null byte (\(aq\e0\(aq) .\"O is stored after the last character in the buffer. .BR fgets () -¤Ï +は .I stream -¤«¤éºÇÂç¤Ç +から最大で .IR size " - 1" -¸Ä¤Îʸ»ú¤òÆɤ߹þ¤ß¡¢ +個の文字を読み込み、 .I s -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤¹¤ë¡£Æɤ߹þ¤ß¤Ï +が指すバッファに格納する。読み込みは .B EOF -¤Þ¤¿¤Ï²þ¹Ôʸ»ú¤òÆɤ߹þ¤ó¤À¸å¤ÇÄä»ß¤¹¤ë¡£ -Æɤ߹þ¤Þ¤ì¤¿²þ¹Ôʸ»ú¤Ï¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤ë¡£ -½ªÃ¼¤Î NULL ¥Ð¥¤¥È (\(aq\e0\(aq) -¤¬°ì¤Ä¥Ð¥Ã¥Õ¥¡¤ÎÃæ¤ÎºÇ¸å¤Îʸ»ú¤Î¸å¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£ +または改行文字を読み込んだ後で停止する。 +読み込まれた改行文字はバッファに格納される。 +終端の NULL バイト (\(aq\e0\(aq) +が一つバッファの中の最後の文字の後に書き込まれる。 .PP .\"O .BR ungetc () .\"O pushes @@ -155,31 +155,31 @@ fgetc, fgets, getc, getchar, gets, ungetc \- ʸ .\"O Pushed-back characters .\"O will be returned in reverse order; only one pushback is guaranteed. .BR ungetc () -¤Ï¡¢¸å¤Î read Áàºî¤ÇÆɤá¤ë¤è¤¦¤Ë¡¢ +は、後の read 操作で読めるように、 .I c -¤ò +を .I "unsigned char" -¤Ë¥­¥ã¥¹¥È¤·¤Æ +にキャストして .I stream -¤Ë½ñ¤­Ì᤹¡£ -½ñ¤­Ìᤵ¤ì¤¿Ê¸»ú¤ÏµÕ½ç¤ËÌᤵ¤ì¤ë; -½ñ¤­Ìᤷ¤È¤·¤ÆÊݾڤµ¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢°ìʸ»ú¤À¤±¤Ç¤¢¤ë¡£ +に書き戻す。 +書き戻された文字は逆順に戻される; +書き戻しとして保証されているのは、一文字だけである。 .PP .\"O Calls to the functions described here can be mixed with each other and with .\"O calls to other input functions from the .\"O .I stdio .\"O library for the same input stream. -¤³¤³¤Ç½Ò¤Ù¤¿´Ø¿ô¤ä +ここで述べた関数や .I stdio -¥é¥¤¥Ö¥é¥ê¤ÎÆþÎÏ´Ø¿ô¤òƱ¤¸ÆþÎÏ¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ¸ß¤¤¤Ëº®¤¼¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +ライブラリの入力関数を同じ入力ストリームに対して互いに混ぜて使うことができる。 .PP .\"O For nonlocking counterparts, see .\"O .BR unlocked_stdio (3). -¤³¤ì¤é¤Î½èÍý¤ò¥í¥Ã¥¯¤»¤º¤Ë¹Ô¤¤¤¿¤¤¤È¤­¤Ï¡¢ +これらの処理をロックせずに行いたいときは、 .BR unlocked_stdio (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH "RETURN VALUES" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR fgetc (), .\"O .BR getc () .\"O and @@ -194,13 +194,13 @@ fgetc, fgets, getc, getchar, gets, ungetc \- ʸ .BR fgetc (), .BR getc (), .BR getchar () -¤Ï¡¢Ê¸»ú¤ò +は、文字を .I unsigned char -¤È¤·¤ÆÆɤó¤Ç +として読んで .I int -¤Ë¥­¥ã¥¹¥È¤·¤ÆÊÖ¤¹¡£¥Õ¥¡¥¤¥ë¤Î½ª¤ï¤ê¤ä¥¨¥é¡¼¤Î¾ì¹ç¤Ï +にキャストして返す。ファイルの終わりやエラーの場合は .B EOF -¤òÊÖ¤¹¡£ +を返す。 .PP .\"O .BR gets () .\"O and @@ -210,12 +210,12 @@ fgetc, fgets, getc, getchar, gets, ungetc \- ʸ .\"O on success, and NULL .\"O on error or when end of file occurs while no characters have been read. .BR gets () -¤È +と .BR fgets () -¤Ï¡¢À®¸ù¤¹¤ë¤È +は、成功すると .I s -¤òÊÖ¤·¡¢¥¨¥é¡¼¤ä 1 ʸ»ú¤âÆɤ߹þ¤ó¤Ç¤¤¤Ê¤¤¤Î¤Ë¥Õ¥¡¥¤¥ë¤Î½ª¤ï¤ê¤Ë¤Ê¤Ã¤¿ -¾ì¹ç¤Ë NULL ¤òÊÖ¤¹¡£ +を返し、エラーや 1 文字も読み込んでいないのにファイルの終わりになった +場合に NULL を返す。 .PP .\"O .BR ungetc () .\"O returns @@ -224,27 +224,27 @@ fgetc, fgets, getc, getchar, gets, ungetc \- ʸ .\"O .B EOF .\"O on error. .BR ungetc () -¤ÏÀ®¸ù¤¹¤ë¤È +は成功すると .I c -¤òÊÖ¤·¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ï +を返し、エラーの場合は .B EOF -¤òÊÖ¤¹¡£ +を返す。 .\"O .SH "CONFORMS TO" -.SH ½àµò +.SH 準拠 C89, C99, POSIX.1-2001. .\"O LSB deprecates .\"O .BR gets (). -LSB ¤Ç¤Ï +LSB では .BR gets () -¤ÏÈó¿ä¾©¤Ç¤¢¤ë¡£ +は非推奨である。 .\"O POSIX.1-2008 marks .\"O .BR gets () .\"O obsolescent. -POSIX.1-2008 ¤Ç¤Ï +POSIX.1-2008 では .BR gets () -¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¤È¤µ¤ì¤Æ¤¤¤ë¡£ +は廃止予定であるとされている。 .\"O .SH "BUGS" -.SH ¥Ð¥° +.SH バグ .\"O Never use .\"O .BR gets (). .\"O Because it is impossible to tell without knowing the data in advance how many @@ -259,18 +259,18 @@ POSIX.1-2008 .\"O .BR fgets () .\"O instead. .BR gets () -¤ÏÀäÂФ˻ÈÍѤ·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -Á°¤â¤Ã¤Æ¥Ç¡¼¥¿¤òÃΤ뤳¤È¤Ê¤·¤Ë +は絶対に使用してはならない。 +前もってデータを知ることなしに .BR gets () -¤¬²¿Ê¸»úÆɤफ¤òÃΤ뤳¤È¤Ï¤Ç¤­¤º¡¢ +が何文字読むかを知ることはできず、 .BR gets () -¤¬¥Ð¥Ã¥Õ¥¡¤Î½ª¤ï¤ê¤ò±Û¤¨¤Æ½ñ¤­¹þ¤ß³¤±¤ë¤¿¤á¡¢ +がバッファの終わりを越えて書き込み続けるため、 .BR gets () -¤ò»È¤¦¤Î¤Ï¶Ë¤á¤Æ´í¸±¤Ç¤¢¤ë¡£ -¤³¤ì¤òÍøÍѤ·¤Æ¥³¥ó¥Ô¥å¡¼¥¿¤Î¥»¥­¥å¥ê¥Æ¥£¤¬Çˤé¤ì¤Æ¤­¤¿¡£ -Âå¤ï¤ê¤Ë +を使うのは極めて危険である。 +これを利用してコンピュータのセキュリティが破られてきた。 +代わりに .BR fgets () -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .PP .\"O It is not advisable to mix calls to input functions from the .\"O .I stdio @@ -278,15 +278,15 @@ POSIX.1-2008 .\"O .BR read (2) .\"O for the file descriptor associated with the input stream; the results .\"O will be undefined and very probably not what you want. -ÆþÎÏ¥¹¥È¥ê¡¼¥à¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ¡¢ +入力ストリームのファイルディスクリプタに対して、 .I stdio -¥é¥¤¥Ö¥é¥ê¤ÎÆþÎÏ´Ø¿ô¤È¡¢Äã¥ì¥Ù¥ë¸Æ¤Ó½Ð¤·¤Î +ライブラリの入力関数と、低レベル呼び出しの .BR read (2) -¤òº®¤¼¤Æ¸Æ¤Ó½Ð¤¹»ö¤Ï´«¤á¤é¤ì¤Ê¤¤¡£ -·ë²Ì¤¬¤É¤¦¤Ê¤ë¤«¤Ïʬ¤«¤é¤º¡¢¤ª¤½¤é¤¯¤¢¤Ê¤¿¤Î -˾¤ó¤Ç¤¤¤ë·ë²Ì¤Ë¤Ï¤Ê¤é¤Ê¤¤¤À¤í¤¦¡£ +を混ぜて呼び出す事は勧められない。 +結果がどうなるかは分からず、おそらくあなたの +望んでいる結果にはならないだろう。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR read (2), .BR write (2), .BR ferror (3), diff --git a/draft/man3/getservent.3 b/draft/man3/getservent.3 index 8afe0782..7ae2050d 100644 --- a/draft/man3/getservent.3 +++ b/draft/man3/getservent.3 @@ -38,10 +38,10 @@ .\"O .SH NAME .\"O getservent, getservbyname, getservbyport, setservent, endservent \- .\"O get service entry -.SH ̾Á° -getservent, getservbyname, getservbyport, setservent, endservent \- ¥µ¡¼¥Ó¥¹¤Î¥¨¥ó¥È¥ê¤ò¼èÆÀ¤¹¤ë +.SH 名前 +getservent, getservbyname, getservbyport, setservent, endservent \- サービスのエントリを取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -56,7 +56,7 @@ getservent, getservbyname, getservbyport, setservent, endservent \- .B void endservent(void); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR getservent () .\"O function reads the next entry from the services database (see @@ -65,12 +65,12 @@ getservent, getservbyname, getservbyport, setservent, endservent \- .\"O the broken-out fields from the entry. .\"O A connection is opened to the database if necessary. .BR getservent () -´Ø¿ô¤Ï¥µ¡¼¥Ó¥¹¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹ +関数はサービスのデータベース .RB ( services (5) -»²¾È) ¤«¤é¼¡¤Î¥¨¥ó¥È¥ê¤òÆɤ߹þ¤ß¡¢ -¤½¤Î¥¨¥ó¥È¥ê¤ò \fIservent\fP ¹½Â¤ÂΤÎÍ×ÁÇÊ̤Υե£¡¼¥ë¥É¤Ë³ÊǼ¤·¡¢ -¤½¤Î¹½Â¤ÂΤòÊÖ¤¹¡£ -ɬÍפǤ¢¤ì¤Ð¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤¬¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£ +参照) から次のエントリを読み込み、 +そのエントリを \fIservent\fP 構造体の要素別のフィールドに格納し、 +その構造体を返す。 +必要であれば、データベースへの接続がオープンされる。 .PP .\"O The .\"O .BR getservbyname () @@ -80,12 +80,12 @@ getservent, getservbyname, getservbyport, setservent, endservent \- .\"O If \fIproto\fP is NULL, any protocol will be matched. .\"O A connection is opened to the database if necessary. .BR getservbyname () -´Ø¿ô¤Ï¡¢ -¥×¥í¥È¥³¥ë \fIproto\fP ¤òÍѤ¤¤ë¥µ¡¼¥Ó¥¹¤Î̾Á° \fIname\fP -¤Ë¥Þ¥Ã¥Á¤¹¤ë¥¨¥ó¥È¥ê¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éõ¤·¡¢ -¤½¤Î¥¨¥ó¥È¥ê¤ò¼ý¤á¤¿ \fIservent\fP ¹½Â¤ÂΤòÊÖ¤¹¡£ -\fIproto\fP ¤¬ NULL ¤Î¾ì¹ç¤Ï¡¢Ç¤°Õ¤Î¥×¥í¥È¥³¥ë¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -ɬÍפǤ¢¤ì¤Ð¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤¬¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£ +関数は、 +プロトコル \fIproto\fP を用いるサービスの名前 \fIname\fP +にマッチするエントリをデータベースから探し、 +そのエントリを収めた \fIservent\fP 構造体を返す。 +\fIproto\fP が NULL の場合は、任意のプロトコルにマッチする。 +必要であれば、データベースへの接続がオープンされる。 .PP .\"O The .\"O .BR getservbyport () @@ -96,13 +96,13 @@ getservent, getservbyname, getservbyport, setservent, endservent \- .\"O If \fIproto\fP is NULL, any protocol will be matched. .\"O A connection is opened to the database if necessary. .BR getservbyport () -´Ø¿ô¤Ï¡¢ -¥×¥í¥È¥³¥ë \fIproto\fP ¤òÍѤ¤¤ë¥µ¡¼¥Ó¥¹¤Î¥Ý¡¼¥ÈÈÖ¹æ \fIport\fP -¤Ë¥Þ¥Ã¥Á¤¹¤ë¥¨¥ó¥È¥ê¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éõ¤·¡¢ -¤½¤Î¥¨¥ó¥È¥ê¤ÎÆâÍƤò¼ý¤á¤¿ \fIservent\fP ¹½Â¤ÂΤòÊÖ¤¹ -(¥Ý¡¼¥ÈÈÖ¹æ \fIport\fP ¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¡¦¥Ð¥¤¥È¥ª¡¼¥À¤Ç»ØÄꤹ¤ë)¡£ -\fIproto\fP ¤¬ NULL ¤Î¾ì¹ç¤ÏǤ°Õ¤Î¥×¥í¥È¥³¥ë¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -ɬÍפǤ¢¤ì¤Ð¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤¬¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£ +関数は、 +プロトコル \fIproto\fP を用いるサービスのポート番号 \fIport\fP +にマッチするエントリをデータベースから探し、 +そのエントリの内容を収めた \fIservent\fP 構造体を返す +(ポート番号 \fIport\fP はネットワーク・バイトオーダで指定する)。 +\fIproto\fP が NULL の場合は任意のプロトコルにマッチする。 +必要であれば、データベースへの接続がオープンされる。 .PP .\"O The .\"O .BR setservent () @@ -114,21 +114,21 @@ getservent, getservbyname, getservbyport, setservent, endservent \- .\"O .BR getserv* () .\"O functions. .BR setservent () -´Ø¿ô¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤ò¥ª¡¼¥×¥ó¤·¡¢ -¼¡¤ÎÆɤ߹þ¤ß¥¨¥ó¥È¥ê¤òÀèƬ¤Î¥¨¥ó¥È¥ê¤ËÀßÄꤹ¤ë¡£ -\fIstayopen\fP ¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¡¢ -°ì¤Ä°ì¤Ä¤Î +関数はデータベースへの接続をオープンし、 +次の読み込みエントリを先頭のエントリに設定する。 +\fIstayopen\fP が 0 でない場合、 +一つ一つの .BR getserv* () -´Ø¿ô¤Î¸Æ¤Ó½Ð¤·´Ö¤Ç¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤ò¥¯¥í¡¼¥º¤·¤Ê¤¤¡£ +関数の呼び出し間でデータベースへの接続をクローズしない。 .PP .\"O The .\"O .BR endservent () .\"O function closes the connection to the database. .BR endservent () -´Ø¿ô¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +関数はデータベースへの接続をクローズする。 .PP .\"O The \fIservent\fP structure is defined in \fI\fP as follows: -\fIservent\fP ¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +\fIservent\fP 構造体は \fI\fP で以下のように定義されている。 .sp .in +4n .nf @@ -142,28 +142,28 @@ struct servent { .in .PP .\"O The members of the \fIservent\fP structure are: -\fIservent\fP ¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤Ï°Ê²¼¤ÎÄ̤ꡣ +\fIservent\fP 構造体のメンバーは以下の通り。 .RS .TP 12 .I s_name .\"O The official name of the service. -¥µ¡¼¥Ó¥¹¤ÎÀµ¼°Ì¾ (official name)¡£ +サービスの正式名 (official name)。 .TP .I s_aliases .\"O A NULL-terminated list of alternative names for the service. -¥µ¡¼¥Ó¥¹¤ÎÊÌ̾¤Î¥ê¥¹¥È¡£ -¥ê¥¹¥È¤Ï NULL ¤Ç½ªÃ¼¤µ¤ì¤ë¡£ +サービスの別名のリスト。 +リストは NULL で終端される。 .TP .I s_port .\"O The port number for the service given in network byte order. -¥µ¡¼¥Ó¥¹¤Î¥Ý¡¼¥ÈÈֹ档¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¤Ç»ØÄꤵ¤ì¤ë¡£ +サービスのポート番号。ネットワークバイトオーダで指定される。 .TP .I s_proto .\"O The name of the protocol to use with this service. -¤³¤Î¥µ¡¼¥Ó¥¹¤È¶¦¤ËÍѤ¤¤ë¥×¥í¥È¥³¥ë¤Î̾Á°¡£ +このサービスと共に用いるプロトコルの名前。 .RE .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR getservent (), .\"O .BR getservbyname () @@ -175,20 +175,20 @@ struct servent { .BR getservent (), .BR getservbyname (), .BR getservbyport () -´Ø¿ô¤Ï¡¢ -ÀÅŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿ \fIservent\fP ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¤ê¡¢¥Õ¥¡¥¤¥ë¤ÎËöÈø¤Ë㤷¤¿¾ì¹ç¤Ï NULL ¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +関数は、 +静的に割り当てられた \fIservent\fP 構造体へのポインタを返す。 +エラーが起こったり、ファイルの末尾に達した場合は NULL ポインタを返す。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .TP .I /etc/services .\"O services database file -¥µ¡¼¥Ó¥¹¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë +サービスのデータベースファイル .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.3BSD, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getnetent (3), .BR getprotoent (3), .BR getservent_r (3), diff --git a/draft/man3/getspnam.3 b/draft/man3/getspnam.3 index 63d816d4..d0b7a6b8 100644 --- a/draft/man3/getspnam.3 +++ b/draft/man3/getspnam.3 @@ -9,16 +9,16 @@ .\" .TH GETSPNAM 3 2010-02-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getspnam, getspnam_r, getspent, getspent_r, setspent, endspent, .\"O fgetspent, fgetspent_r, sgetspent, sgetspent_r, putspent, .\"O lckpwdf, ulckpwdf \- get shadow password file entry -getspnam, getspnam_r, getspent, getspent_r, setspent, endspent,fgetspent, fgetspent_r, sgetspent, sgetspent_r, putspent, lckpwdf, ulckpwdf \- shadow ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥È¥ê¤ò¼èÆÀ¤¹¤ë +getspnam, getspnam_r, getspent, getspent_r, setspent, endspent,fgetspent, fgetspent_r, sgetspent, sgetspent_r, putspent, lckpwdf, ulckpwdf \- shadow パスワードファイルのエントリを取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O /* General shadow password file API */ -/* °ìÈÌŪ¤Ê shadow ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë API */ +/* 一般的な shadow パスワードファイル API */ .br .B #include .sp @@ -41,7 +41,7 @@ getspnam, getspnam_r, getspent, getspent_r, setspent, endspent,fgetspent, fgetsp .B int ulckpwdf(void); .sp .\"O /* GNU extension */ -/* GNU ÈǤˤª¤±¤ë³ÈÄ¥ */ +/* GNU 版における拡張 */ .br .B #include .sp @@ -65,9 +65,9 @@ getspnam, getspnam_r, getspent, getspent_r, setspent, endspent,fgetspent, fgetsp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -80,13 +80,13 @@ _BSD_SOURCE || _SVID_SOURCE .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Long ago it was considered safe to have encrypted passwords openly .\"O visible in the password file. .\"O When computers got faster and people .\"O got more security-conscious, this was no longer acceptable. -ÀΤϰŹ沽¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤ò¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Ë -¸«¤¨¤ë¤è¤¦¤Ë¸ø³«¤·¤Æ¤ª¤¤¤Æ¤â°ÂÁ´¤À¤È¹Í¤¨¤é¤ì¤Æ¤¤¤¿¡£ +昔は暗号化されたパスワードをパスワードファイルに +見えるように公開しておいても安全だと考えられていた。 .\"O Julianne Frances Haugh implemented the shadow password suite .\"O that keeps the encrypted passwords in .\"O the shadow password database @@ -94,13 +94,13 @@ _BSD_SOURCE || _SVID_SOURCE .\"O .IR /etc/shadow , .\"O NIS, and LDAP), .\"O readable only by root. -Julianne Frances Haugh ¤Ï shadow ¥Ñ¥¹¥ï¡¼¥É¡¦¥¹¥¤¡¼¥È¤ò¼ÂÁõ¤·¤¿¡£ -¤³¤ì¤Ï°Å¹æ²½¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤ò¡¢root ¤Î¤ß¤¬Æɤळ¤È¤¬¤Ç¤­¤ë -shadow ¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹ (Î㤨¤Ð¡¢ -¥í¡¼¥«¥ë¤Î shadow ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë +Julianne Frances Haugh は shadow パスワード・スイートを実装した。 +これは暗号化されたパスワードを、root のみが読むことができる +shadow パスワード・データベース (例えば、 +ローカルの shadow パスワードファイル .IR /etc/shadow , NIS, LDAP) -¤ËÊÝ»ý¤¹¤ë¡£ +に保持する。 .LP .\"O The functions described below resemble those for .\"O the traditional password database @@ -108,12 +108,12 @@ NIS, LDAP) .\"O .BR getpwnam (3) .\"O and .\"O .BR getpwent (3)). -°Ê²¼¤ÇÀâÌÀ¤¹¤ë´Ø¿ô¤Ï¡¢ÅÁÅýŪ¤Ê¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÂФ¹¤ë -´Ø¿ô¤Ë»÷¤Æ¤¤¤ë (Î㤨¤Ð +以下で説明する関数は、伝統的なパスワード・データベースに対する +関数に似ている (例えば .BR getpwnam (3) -¤ä +や .BR getpwent (3) -¤ò»²¾È)¡£ +を参照)。 .\"O .\" FIXME I've commented out the following for the .\"O .\" moment. The relationship between PAM and nsswitch.conf needs .\"O .\" to be clearly documented in one place, which is pointed to by @@ -124,17 +124,17 @@ NIS, LDAP) .\"O .\" (pluggable authentication modules), and the file .\"O .\" .I /etc/nsswitch.conf .\"O .\" now describes the sources to be used. -.\" FIXME °Ê²¼¤ò°ì»þŪ¤Ë¥³¥á¥ó¥È¥¢¥¦¥È¤·¤¿¡£ -.\" PAM ¤È nsswitch.conf ¤Î´Ø·¸¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥æ¡¼¥¶¡¢¥°¥ë¡¼¥×¡¢shadow -.\" ¥Ñ¥¹¥ï¡¼¥É¤Î´Ø¿ô¤Ë¤Ä¤¤¤Æ¤Î¥Ú¡¼¥¸¤«¤é»²¾È¤µ¤ì¤ë¤É¤³¤«¤Ë¤Ï¤Ã¤­¤ê¤È -.\" µ­ºÜ¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¡£ +.\" FIXME 以下を一時的にコメントアウトした。 +.\" PAM と nsswitch.conf の関係については、ユーザ、グループ、shadow +.\" パスワードの関数についてのページから参照されるどこかにはっきりと +.\" 記載しておく必要がある。 .\" (Jul 2005, mtk) .\" -.\" ¤³¤Î shadow ¥Ñ¥¹¥ï¡¼¥É¤ÎÀßÄê¤Ï -.\" PAM (pluggable authentication modules) ¤Ç¼è¤êÂؤ¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.\" ¸½ºß¤Î¤È¤³¤í¡¢¤É¤Î¾ðÊ󸻤ò»ÈÍѤ¹¤ë¤«¤Ï +.\" この shadow パスワードの設定は +.\" PAM (pluggable authentication modules) で取り替えることができる。 +.\" 現在のところ、どの情報源を使用するかは .\" .I /etc/nsswitch.conf -.\" ¥Õ¥¡¥¤¥ë¤Ëµ­½Ò¤µ¤ì¤ë¡£ +.\" ファイルに記述される。 .LP .\"O The .\"O .BR getspnam () @@ -143,33 +143,33 @@ NIS, LDAP) .\"O that matches the username .\"O .IR name . .BR getspnam () -´Ø¿ô¤Ï¡¢¥æ¡¼¥¶Ì¾ +関数は、ユーザ名 .I name -¤Ë¥Þ¥Ã¥Á¤¹¤ë shadow ¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥¨¥ó¥È¥ê¤ò -Í×ÁÇËè¤Ëʬ²ò¤·¡¢³ÆÍ×ÁǤò³ÊǼ¤·¤¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ +にマッチする shadow パスワード・データベースのエントリを +要素毎に分解し、各要素を格納した構造体へのポインタを返す。 .LP .\"O The .\"O .BR getspent () .\"O function returns a pointer to the next entry in the shadow password .\"O database. .BR getspent () -´Ø¿ô¤Ï shadow ¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤ª¤±¤ë¼¡¤Î¥¨¥ó¥È¥ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +関数は shadow パスワード・データベースにおける次のエントリへのポインタを返す。 .\"O The position in the input stream is initialized by .\"O .BR setspent (). -ÆþÎÏ¥¹¥È¥ê¡¼¥à¤Ë¤ª¤±¤ë°ÌÃ֤ϡ¢ +入力ストリームにおける位置は、 .BR setspent () -¤Ç½é´ü²½¤µ¤ì¤ë¡£ +で初期化される。 .\"O When done reading, the program may call .\"O .BR endspent () .\"O so that resources can be deallocated. -Æɤ߹þ¤ß¤¬½ª¤ï¤Ã¤¿¸å¤Ë¡¢ +読み込みが終わった後に、 .BR endspent () -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¥ê¥½¡¼¥¹¤ò²òÊü¤Ç¤­¤ë¡£ +を呼び出すと、リソースを解放できる。 .\"O .\" some systems require a call of setspent() before the first getspent() .\"O .\" glibc does not -.\" ºÇ½é¤Ë getspent() ¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¡¢ -.\" setspent() ¤ò¸Æ¤Ó½Ð¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ -.\" glibc ¤Ç¤Ï¤½¤ÎɬÍפ¬¤Ê¤¤¡£ +.\" 最初に getspent() を呼び出す前に、 +.\" setspent() を呼び出さなければならないシステムもある。 +.\" glibc ではその必要がない。 .LP .\"O The .\"O .BR fgetspent () @@ -178,11 +178,11 @@ NIS, LDAP) .\"O but uses the supplied stream instead of the one implicitly opened by .\"O .BR setspent (). .BR fgetspent () -´Ø¿ô¤Ï +関数は .BR getspent () -¤Ë»÷¤Æ¤¤¤ë¤¬¡¢ +に似ているが、 .BR setspent () -¤Ç°ÅÌۤΤ¦¤Á¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤ë¥¹¥È¥ê¡¼¥à¤Ç¤Ï¤Ê¤¯¡¢Í¿¤¨¤é¤ì¤¿¥¹¥È¥ê¡¼¥à¤ò»È¤¦¡£ +で暗黙のうちにオープンされるストリームではなく、与えられたストリームを使う。 .LP .\"O The .\"O .BR sgetspent () @@ -191,11 +191,11 @@ NIS, LDAP) .\"O into a struct .\"O .IR spwd . .BR sgetspent () -´Ø¿ô¤ÏÍ¿¤¨¤é¤ì¤¿Ê¸»úÎó +関数は与えられた文字列 .I s -¤ò²òÀϤ· struct +を解析し struct .I spwd -¤Ë³ÊǼ¤¹¤ë¡£ +に格納する。 .LP .\"O The .\"O .BR putspent () @@ -205,17 +205,17 @@ NIS, LDAP) .\"O as a text line in the shadow password file format to the stream .\"O .IR fp . .BR putspent () -´Ø¿ô¤ÏÍ¿¤¨¤é¤ì¤¿ struct +関数は与えられた struct .I spwd .I *p -¤ÎÆâÍƤò shadow ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë·Á¼°¤Î¥Æ¥­¥¹¥È¹Ô¤Ç¥¹¥È¥ê¡¼¥à +の内容を shadow パスワードファイル形式のテキスト行でストリーム .I fp -¤Ë½ñ¤­½Ð¤¹¡£ +に書き出す。 .\"O String entries with value NULL and numerical entries with value \-1 .\"O are written as an empty string. -¶õʸ»úÎó¤È¤·¤Æ¡¢ -Ãͤ¬ NULL ¤Îʸ»úÎ󥨥ó¥È¥ê¤ÈÃͤ¬ \-1 ¤Î¿ôÃÍ¥¨¥ó¥È¥ê¤¬ -½ñ¤­½Ð¤µ¤ì¤ë¡£ +空文字列として、 +値が NULL の文字列エントリと値が \-1 の数値エントリが +書き出される。 .LP .\"O The .\"O .BR lckpwdf () @@ -224,40 +224,40 @@ NIS, LDAP) .\"O It tries to acquire a lock, and returns 0 on success, .\"O or \-1 on failure (lock not obtained within 15 seconds). .BR lckpwdf () -´Ø¿ô¤Ï¡¢ shadow ¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò -¿½ÅƱ»þ¥¢¥¯¥»¥¹¤«¤é¼é¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¥í¥Ã¥¯¤Î³ÍÆÀ¤ò»î¤ß¡¢ -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç (15 ÉðÊÆâ¤Ë¥í¥Ã¥¯¤¬¼èÆÀ¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç) ¤Ï \-1 ¤òÊÖ¤¹¡£ +関数は、 shadow パスワード・データベースを +多重同時アクセスから守るためのものである。 +この関数はロックの獲得を試み、 +成功した場合は 0 を返す。 +失敗した場合 (15 秒以内にロックが取得できなかった場合) は \-1 を返す。 .\"O The .\"O .BR ulckpwdf () .\"O function releases the lock again. .BR ulckpwdf () -´Ø¿ô¤Ï¥í¥Ã¥¯¤òºÆ¤Ó²òÊü¤¹¤ë¡£ +関数はロックを再び解放する。 .\"O Note that there is no protection against direct access of the shadow .\"O password file. .\"O Only programs that use .\"O .BR lckpwdf () .\"O will notice the lock. -shadow ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Ø¤ÎľÀÜ¥¢¥¯¥»¥¹¤«¤é -Êݸ¤ë¼êÃʤ¬¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +shadow パスワードファイルへの直接アクセスから +保護する手段がない点に注意すること。 .BR lckpwdf () -¤ò»È¤¦¥×¥í¥°¥é¥à¤À¤±¤¬¥í¥Ã¥¯¤òÄÌÃΤǤ­¤ë¡£ +を使うプログラムだけがロックを通知できる。 .LP .\"O These were the functions that formed the original shadow API. .\"O They are widely available. .\"O .\" Also in libc5 .\"O .\" SUN doesn't have sgetspent() -¤³¤ì¤é¤Î´Ø¿ô¤Ï¥ª¥ê¥¸¥Ê¥ë¤Î shadow API ¤ò¹½À®¤·¤Æ¤¤¤¿´Ø¿ô¤Ç¤¢¤ê¡¢ -¤¤¤í¤¤¤í¤Ê¥·¥¹¥Æ¥à¤Ç¹­¤¯ÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.\" libc5 ¤Ç¤âÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.\" SUN ¤Ë¤Ï sgetspent() ¤¬¤Ê¤¤¡£ +これらの関数はオリジナルの shadow API を構成していた関数であり、 +いろいろなシステムで広く利用可能である。 +.\" libc5 でも利用可能である。 +.\" SUN には sgetspent() がない。 .\"O .SS "Reentrant versions" -.SS ¥ê¥¨¥ó¥È¥é¥ó¥ÈÈÇ +.SS リエントラント版 .\"O Analogous to the reentrant functions for the password database, glibc .\"O also has reentrant functions for the shadow password database. -¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÂФ¹¤ë¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤÈƱ¤¸¤è¤¦¤Ë¡¢ -glibc ¤Ë¤Ï shadow ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤ¬¤¢¤ë¡£ +パスワード・データベースに対するリエントラント版と同じように、 +glibc には shadow パスワードファイルに対してリエントラント版がある。 .\"O The .\"O .BR getspnam_r () .\"O function is like @@ -265,29 +265,29 @@ glibc .\"O but stores the retrieved shadow password structure in the space pointed to by .\"O .IR spbuf . .BR getspnam_r () -´Ø¿ô¤Ï +関数は .BR getspnam () -¤È»÷¤Æ¤¤¤ë¤¬¡¢¼èÆÀ¤·¤¿ shadow ¥Ñ¥¹¥ï¡¼¥É¹½Â¤ÂΤò +と似ているが、取得した shadow パスワード構造体を .I spbuf -¤¬»Ø¤¹Îΰè¤Ë³ÊǼ¤¹¤ë¡£ +が指す領域に格納する。 .\"O This shadow password structure contains pointers to strings, and these strings .\"O are stored in the buffer .\"O .I buf .\"O of size .\"O .IR buflen . -shadow ¥Ñ¥¹¥ï¡¼¥É¹½Â¤ÂΤÏʸ»úÎ󷲤ؤΥݥ¤¥ó¥¿¤ò´Þ¤ß¡¢ -¤³¤ì¤é¤Îʸ»úÎ󷲤ϥµ¥¤¥º +shadow パスワード構造体は文字列群へのポインタを含み、 +これらの文字列群はサイズ .I buflen -¤Î¥Ð¥Ã¥Õ¥¡ +のバッファ .I buf -¤Ë³ÊǼ¤µ¤ì¤ë¡£ +に格納される。 .\"O A pointer to the result (in case of success) or NULL (in case no entry .\"O was found or an error occurred) is stored in .\"O .IR *spbufp . .I *spbufp -¤Ë¤Ï (À®¸ù¤·¤¿¾ì¹ç¤Ï) ·ë²Ì¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬³ÊǼ¤µ¤ì¡¢ -(¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Þ¤¿¤Ï¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Ï) -NULL ¤¬³ÊǼ¤µ¤ì¤ë¡£ +には (成功した場合は) 結果へのポインタが格納され、 +(エントリが見つからなかった場合またはエラーが起こった場合は) +NULL が格納される。 .LP .\"O The functions .\"O .BR getspent_r (), @@ -295,22 +295,22 @@ NULL .\"O and .\"O .BR sgetspent_r () .\"O are similarly analogous to their nonreentrant counterparts. -´Ø¿ô +関数 .BR getspent_r (), .BR fgetspent_r (), .BR sgetspent_r () -¤Ï¤½¤ì¤¾¤ì¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤Ê¤¤¥Ð¡¼¥¸¥ç¥ó¤ÈƱÍͤε¡Ç½¤ò»ý¤Ä¡£ +はそれぞれリエントラントでないバージョンと同様の機能を持つ。 .LP .\"O Some non-glibc systems also have functions with these names, .\"O often with different prototypes. .\"O .\" SUN doesn't have sgetspent_r() -glibc ¤Ç¤Ê¤¤¥·¥¹¥Æ¥à¤Ë¤â¤³¤ì¤é¤ÈƱ¤¸Ì¾Á°¤Î´Ø¿ô¤¬¤¢¤ë¤¬¡¢ -¥×¥í¥È¥¿¥¤¥×¤¬°Û¤Ê¤ë¤³¤È¤â¿¤¤¡£ -.\" SUN ¤Ë¤Ï sgetspent_r() ¤¬¤Ê¤¤¡£ +glibc でないシステムにもこれらと同じ名前の関数があるが、 +プロトタイプが異なることも多い。 +.\" SUN には sgetspent_r() がない。 .\"O .SS Structure -.SS ¹½Â¤ÂÎ +.SS 構造体 .\"O The shadow password structure is defined in \fI\fP as follows: -shadow ¥Ñ¥¹¥ï¡¼¥É¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +shadow パスワード構造体は \fI\fP で以下のように定義されている: .sp .in +4n .nf @@ -328,80 +328,80 @@ struct spwd { .\"O long sp_expire; /* Date when account expires (measured .\"O in days since 1970-01-01 00:00:00 +0000 (UTC)) */ .\"O unsigned long sp_flag; /* Reserved */ - char *sp_namp; /* ¥í¥°¥¤¥ó̾ */ - char *sp_pwdp; /* °Å¹æ²½¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É */ - long sp_lstchg; /* ºÇ½ª¹¹¿·Æü - (1970-01-01 00:00:00 +0000 (UTC)) ¤«¤é¤ÎÆü¿ô) */ - long sp_min; /* Êѹ¹¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ë¤Þ¤Ç¤ÎºÇûÆü¿ô */ - long sp_max; /* Êѹ¹¤ò¤·¤Ê¤¯¤Æ¤â¤è¤¤ºÇĹÆü¿ô */ - long sp_warn; /* ¥Ñ¥¹¥ï¡¼¥É¤¬´ü¸ÂÀÚ¤ì¤Ë¤Ê¤ëÁ°¤Ë - ¥æ¡¼¥¶¤ËÊѹ¹¤Î·Ù¹ð¤ò½Ð¤¹Æü¿ô */ - long sp_inact; /* ¥Ñ¥¹¥ï¡¼¥É¤¬´ü¸ÂÀÚ¤ì¤Ë¤Ê¤Ã¤Æ¤«¤é - ¥¢¥«¥¦¥ó¥È¤¬Ìµ¸ú¤Ë¤Ê¤ë¤Þ¤Ç¤ÎÆü¿ô */ - long sp_expire; /* ¥¢¥«¥¦¥ó¥È¤¬Ìµ¸ú¤Ë¤Ê¤ëÆüÉÕ - (1970-01-01 00:00:00 +0000 (UTC)) ¤«¤é¤ÎÆü¿ô) */ - unsigned long sp_flag; /* ͽÌó¥Õ¥£¡¼¥ë¥É */ + char *sp_namp; /* ログイン名 */ + char *sp_pwdp; /* 暗号化されたパスワード */ + long sp_lstchg; /* 最終更新日 + (1970-01-01 00:00:00 +0000 (UTC)) からの日数) */ + long sp_min; /* 変更が出来るようになるまでの最短日数 */ + long sp_max; /* 変更をしなくてもよい最長日数 */ + long sp_warn; /* パスワードが期限切れになる前に + ユーザに変更の警告を出す日数 */ + long sp_inact; /* パスワードが期限切れになってから + アカウントが無効になるまでの日数 */ + long sp_expire; /* アカウントが無効になる日付 + (1970-01-01 00:00:00 +0000 (UTC)) からの日数) */ + unsigned long sp_flag; /* 予約フィールド */ }; .fi .in .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The functions that return a pointer return NULL if no more entries .\"O are available or if an error occurs during processing. -¥Ý¥¤¥ó¥¿¤òÊÖ¤¹´Ø¿ô¤Ï¡¢¤³¤ì°Ê¾å¥¨¥ó¥È¥ê¤¬¤Ê¤¤¾ì¹ç¤ä -½èÍýÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç NULL ¤òÊÖ¤¹¡£ +ポインタを返す関数は、これ以上エントリがない場合や +処理中にエラーが発生した場合 NULL を返す。 .\"O The functions which have \fIint\fP as the return value return 0 for .\"O success and \-1 for failure. -\fIint\fP ¤òÊÖ¤êÃͤȤ·¤Æ»ý¤Ä´Ø¿ô¤Ï¡¢ -À®¸ù¤·¤¿¾ì¹ç 0 ¤òÊÖ¤·¡¢¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤òÊÖ¤¹¡£ +\fIint\fP を返り値として持つ関数は、 +成功した場合 0 を返し、失敗した場合 \-1 を返す。 .LP .\"O For the nonreentrant functions, the return value may point to static area, .\"O and may be overwritten by subsequent calls to these functions. -¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤǤʤ¤´Ø¿ô¤Ç¤Ï¡¢ÊÖ¤êÃͤ¬ÀÅŪ¤ÊÎΰè¤ò»Ø¤·¤Æ¤ª¤ê¡¢ -°ú¤­Â³¤¤¤Æ¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¤Ë¾å½ñ¤­¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +リエントラント版でない関数では、返り値が静的な領域を指しており、 +引き続いてこれらの関数を呼び出した場合に上書きされる可能性がある。 .LP .\"O The reentrant functions return zero on success. -¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤδؿô¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¤Ë 0 ¤òÊÖ¤¹¡£ +リエントラント版の関数は、成功した場合に 0 を返す。 .\"O In case of error, an error number is returned. -¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢¥¨¥é¡¼Èֹ椬ÊÖ¤µ¤ì¤ë¡£ +エラーの場合は、エラー番号が返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B ERANGE .\"O Supplied buffer is too small. -Í¿¤¨¤é¤ì¤¿¥Ð¥Ã¥Õ¥¡¤¬¾®¤µ¤¹¤®¤ë¡£ +与えられたバッファが小さすぎる。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .TP .I /etc/shadow .\"O local shadow password database file -¥í¡¼¥«¥ë¤Î shadow ¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë +ローカルの shadow パスワード・データベースファイル .TP .I /etc/.pwd.lock .\"O lock file -¥í¥Ã¥¯¥Õ¥¡¥¤¥ë +ロックファイル .LP .\"O The include file .\"O .I .\"O defines the constant .\"O .B _PATH_SHADOW .\"O to the pathname of the shadow password file. -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +インクルードファイル .I -¤ÏÄê¿ô +は定数 .B _PATH_SHADOW -¤òÄêµÁ¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï shadow ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹Ì¾¤Ç¤¢¤ë¡£ +を定義している。 +これは shadow パスワードファイルのパス名である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The shadow password database and its associated API are .\"O not specified in POSIX.1-2001. .\"O However, many other systems provide a similar API. -shadow ¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤È´ØÏ¢ API ¤Ï POSIX.1-2001 -¤Ë¤Ïµ­ºÜ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£¤·¤«¤·¤Ê¤¬¤é¡¢Â¿¤¯¤Î¾¤Î¥·¥¹¥Æ¥à¤Ç¤â -ƱÍͤΠAPI ¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¡£ +shadow パスワード・データベースと関連 API は POSIX.1-2001 +には記載されていない。しかしながら、多くの他のシステムでも +同様の API が提供されている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getgrnam (3), .BR getpwnam (3), .BR getpwnam_r (3), diff --git a/draft/man3/getsubopt.3 b/draft/man3/getsubopt.3 index 8f32e395..7e650853 100644 --- a/draft/man3/getsubopt.3 +++ b/draft/man3/getsubopt.3 @@ -26,11 +26,11 @@ .\" .TH GETSUBOPT 3 2010-09-26 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getsubopt \- parse suboption arguments from a string -getsubopt \- ʸ»úÎóÃæ¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó°ú¤­¿ô¤Î²ò¼á¤ò¹Ô¤¦ +getsubopt \- 文字列中のサブオプション引き数の解釈を行う .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .BI "int getsubopt(char **"optionp ", char * const *" tokens \ @@ -39,9 +39,9 @@ getsubopt \- ʸ .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR getsubopt (): @@ -56,7 +56,7 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR getsubopt () .\"O parses the list of comma-separated suboptions provided in .\"O .IR optionp . @@ -71,20 +71,20 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O that might be passed in .\"O .IR optionp : .BR getsubopt () -¤Ï¡¢ +は、 .I optionp -¤ÇÍ¿¤¨¤é¤ì¤¿¥«¥ó¥Þ¶èÀÚ¤ê¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó¡¦¥ê¥¹¥È¤ò²òÀϤ¹¤ë¡£ -(¤³¤Î¤è¤¦¤Ê¥µ¥Ö¥ª¥×¥·¥ç¥ó¡¦¥ê¥¹¥È¤Ï +で与えられたカンマ区切りのサブオプション・リストを解析する。 +(このようなサブオプション・リストは .BR getopt (3) -¤ò»È¤Ã¤Æ¥³¥Þ¥ó¥É¥é¥¤¥ó¤ò²ò¼á¤·¤¿¾ì¹ç¤Ë¸½¤ì¤ë¤³¤È¤¬Â¿¤¤¡£ -Î㤨¤Ð¡¢ +を使ってコマンドラインを解釈した場合に現れることが多い。 +例えば、 .BR mount (8) -¤Î \fI-o\fP ¥ª¥×¥·¥ç¥ó¤ò¸«¤ë¤È¤è¤¤¡£) -¤½¤ì¤¾¤ì¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Ë¤ÏÂбþ¤¹¤ëÃͤò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Î̾Á°¤ÈÂбþ¤¹¤ëÃͤÏÅù¹æ (\(aq=\(aq) ¤Ç¶èÀÚ¤é¤ì¤ë¡£ -Î㤨¤Ð¡¢°Ê²¼¤Î¤è¤¦¤Êʸ»úÎó¤ò +の \fI-o\fP オプションを見るとよい。) +それぞれのサブオプションには対応する値を指定することができる。 +サブオプションの名前と対応する値は等号 (\(aq=\(aq) で区切られる。 +例えば、以下のような文字列を .I optionp -¤ËÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¡£ +に渡すことができる。 .sp .in +4n .B ro,name=xyz @@ -99,32 +99,32 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O The tokens should be distinct, null-terminated strings containing at .\"O least one character, with no embedded equal signs or commas. .I tokens -°ú¤­¿ô¤Ï¥È¡¼¥¯¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¤ÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¡¢ -ÇÛÎó¤Ï NULL ¤Ç½ªÃ¼¤µ¤ì¤ë¡£ +引き数はトークンへのポインタの配列へのポインタで、 +配列は NULL で終端される。 .BR getsubopt () -¤Ï¤³¤Î¥È¡¼¥¯¥ó¤ò +はこのトークンを .I optionp -Æâ¤Çõ¤¹¡£ -¤½¤ì¤¾¤ì¤Î¥È¡¼¥¯¥ó¤Ï¡¢NULL ½ªÃ¼¤µ¤ì¤¿ 1ʸ»ú°Ê¾å¤Îʸ»úÎó¤Ç¡¢ -¾¤Î¥È¡¼¥¯¥ó¤È¶èÊ̤Ǥ­¤ëɬÍפ¬¤¢¤ë¡£ -¤Þ¤¿¡¢Åù¹æ¤È¥«¥ó¥Þ¤ò´Þ¤ó¤Ç¤Ï¤Ê¤é¤Ê¤¤¡£ +内で探す。 +それぞれのトークンは、NULL 終端された 1文字以上の文字列で、 +他のトークンと区別できる必要がある。 +また、等号とカンマを含んではならない。 .\"O Each call to .\"O .BR getsubopt () .\"O returns information about the next unprocessed suboption in .\"O .IR optionp . .BR getsubopt () -¤Ï¸Æ¤Ó½Ð¤µ¤ì¤ë¤¿¤Ó¤Ë¡¢ +は呼び出されるたびに、 .I optionp -Ãæ¤Î¼¡¤Î̤½èÍý¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Î¾ðÊó¤òÊÖ¤¹¡£ +中の次の未処理のサブオプションの情報を返す。 .\"O The first equal sign in a suboption (if any) is interpreted as a .\"O separator between the name and the value of that suboption. .\"O The value extends to the next comma, .\"O or (for the last suboption) to the end of the string. -¥µ¥Ö¥ª¥×¥·¥ç¥óÆâ¤ËÅù¹æ¤¬¤¢¤Ã¤¿¾ì¹ç¡¢ºÇ½é¤ÎÅù¹æ¤Ï -¤½¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Î̾Á°¤ÈÃͤζèÀÚ¤ê¤È²ò¼á¤µ¤ì¤ë¡£ -¶èÀڤ꤫¤é¼¡¤Î¥«¥ó¥Þ (ºÇ¸å¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Î¾ì¹ç¡¢Ê¸»úÎó¤ÎËöÈø) -¤Þ¤Ç¤¬¡¢¥µ¥Ö¥ª¥×¥·¥ç¥ó¤ÎÃͤȤʤ롣 +サブオプション内に等号があった場合、最初の等号は +そのサブオプションの名前と値の区切りと解釈される。 +区切りから次のカンマ (最後のサブオプションの場合、文字列の末尾) +までが、サブオプションの値となる。 .\"O If the name of the suboption matches a known name from .\"O .IR tokens , .\"O and a value string was found, @@ -132,29 +132,29 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O sets .\"O .I *valuep .\"O to the address of that string. -¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Î̾Á°¤¬ +サブオプションの名前が .I tokens -Æâ¤Î̾Á°¤È°ìÃפ·¡¢Ãͤòɽ¤¹Ê¸»úÎ󤬸«¤Ä¤«¤Ã¤¿¾ì¹ç¡¢ +内の名前と一致し、値を表す文字列が見つかった場合、 .BR getsubopt () -¤Ï +は .I *valuep -¤òÃͤòɽ¤¹Ê¸»úÎó¤Î¥¢¥É¥ì¥¹¤ËÀßÄꤹ¤ë¡£ +を値を表す文字列のアドレスに設定する。 .\"O The first comma in .\"O .I optionp .\"O is overwritten with a null byte, so .\"O .I *valuep .\"O is precisely the "value string" for that suboption. .I optionp -Ãæ¤ÎºÇ½é¤Î¥«¥ó¥Þ¤Ï¥Ì¥ë¥Ð¥¤¥È¤Ç¾å½ñ¤­¤µ¤ì¤ë¡£¤½¤Î¤¿¤á¡¢ +中の最初のカンマはヌルバイトで上書きされる。そのため、 .I *valuep -¤Ï¤½¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Î¡ÖÃͤÎʸ»úÎó¡×¤½¤Î¤â¤Î¤È¤Ê¤ë¡£ +はそのサブオプションの「値の文字列」そのものとなる。 .\"O If the suboption is recognized, but no value string was found, .\"O .RI * valuep .\"O is set to NULL. -¥µ¥Ö¥ª¥×¥·¥ç¥ó¤¬Ç§¼±¤µ¤ì¤¿¤¬¡¢Ãͤòɽ¤¹Ê¸»úÎ󤬸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ +サブオプションが認識されたが、値を表す文字列が見つからなかった場合、 .RI * valuep -¤Ï NULL ¤ËÀßÄꤵ¤ì¤ë¡£ +は NULL に設定される。 .\"O When .\"O .BR getsubopt () @@ -164,13 +164,13 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O or to the null byte (\(aq\\0\(aq) at the end of the .\"O string if the last suboption was just processed. .BR getsubopt () -¤¬ÊÖ¤ë»þ¡¢ +が返る時、 .I optionp -¤Ï¼¡¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó¤ò»Ø¤·¤Æ¤¤¤ë¡£ -¤Á¤ç¤¦¤ÉºÇ¸å¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó¤¬½èÍý¤µ¤ì¤¿¾ì¹ç¤Ï¡¢ -ʸ»úÎóËöÈø¤Î¥Ì¥ë¥Ð¥¤¥È (\(aq\\0\(aq) ¤ò»Ø¤·¤Æ¤¤¤ë¡£ +は次のサブオプションを指している。 +ちょうど最後のサブオプションが処理された場合は、 +文字列末尾のヌルバイト (\(aq\\0\(aq) を指している。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O If the first suboption in .\"O .I optionp .\"O is recognized, @@ -183,16 +183,16 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O .IB name [= value ] .\"O string. .I optionp -Æâ¤Ç¥µ¥Ö¥ª¥×¥·¥ç¥ó¤¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç¡¢ +内でサブオプションが見つかった場合、 .BR getsubopt () -¤ÏºÇ½é¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Ë¥Þ¥Ã¥Á¤¹¤ë +は最初のサブオプションにマッチする .I tokens -¤ÎÍ×ÁǤÎź»ú¤òÊÖ¤¹¡£ -¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢\-1 ¤òÊÖ¤¹¡£¤³¤Î¾ì¹ç¡¢ +の要素の添字を返す。 +見つからなかった場合、\-1 を返す。この場合、 .I *valuep -¤Ï +は .IB name [= value ] -¤Îʸ»úÎóÁ´ÂΤȤʤ롣 +の文字列全体となる。 .\"O Since .\"O .I *optionp @@ -201,16 +201,16 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O is not (necessarily) the same as the first suboption after .\"O .BR getsubopt (). .I *optionp -¤ÏÊѹ¹¤µ¤ì¤ë¤Î¤Ç¡¢ +は変更されるので、 .BR getsubopt () -¤ò¸Æ¤Ó½Ð¤¹Á°¤ÎºÇ½é¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Ï +を呼び出す前の最初のサブオプションは .BR getsubopt () -¤ò¸Æ¤Ó½Ð¤·¸å¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Èɬ¤º¤·¤âƱ¤¸¤È¤Ï¸Â¤é¤Ê¤¤¡£ +を呼び出し後のサブオプションと必ずしも同じとは限らない。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Since .\"O .BR getsubopt () @@ -218,17 +218,17 @@ POSIX.1-2001. .\"O .I *optionp , .\"O that string must be writable; it cannot be a string constant. .BR getsubopt () -¤Ï¡¢Ê¸»úÎó +は、文字列 .RI * optionp -Ãæ¤Ë¸«¤Ä¤±¤¿¥«¥ó¥Þ¤ò¾å½ñ¤­¤¹¤ë¤Î¤Ç¡¢Ê¸»úÎó +中に見つけたカンマを上書きするので、文字列 .I *optionp -¤Ï½ñ¤­¹þ¤ß²Äǽ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -ʸ»úÎóÄê¿ô¤Ë¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +は書き込み可能でなければならず、 +文字列定数にすることはできない。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The following program expects suboptions following a "\-o" option. -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï "\-o" ¥ª¥×¥·¥ç¥ó¤Ë³¤¤¤Æ¥µ¥Ö¥ª¥×¥·¥ç¥ó¤¬¤¢¤ë¤³¤È¤ò -´üÂÔ¤·¤Æ¤¤¤ë¡£ +以下のプログラムは "\-o" オプションに続いてサブオプションがあることを +期待している。 .nf #define _XOPEN_SOURCE 500 @@ -316,5 +316,5 @@ int main(int argc, char **argv) } .fi .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getopt (3) diff --git a/draft/man3/getttyent.3 b/draft/man3/getttyent.3 index c118babd..8b444fce 100644 --- a/draft/man3/getttyent.3 +++ b/draft/man3/getttyent.3 @@ -8,11 +8,11 @@ .\" .TH GETTTYENT 3 2002-07-18 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getttyent, getttynam, setttyent, endttyent \- get ttys file entry -getttyent, getttynam, setttyent, endttyent \- ttys ¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥È¥ê¤ò¼èÆÀ¤¹¤ë +getttyent, getttynam, setttyent, endttyent \- ttys ファイルのエントリを取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B "#include " .sp .B "struct ttyent *getttyent(void);" @@ -23,31 +23,31 @@ getttyent, getttynam, setttyent, endttyent \- ttys .sp .B "int endttyent(void);" .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions provide an interface to the file .\"O .B _PATH_TTYS .\"O (e.g., .\"O .IR /etc/ttys ). -¤³¤ì¤é¤Î´Ø¿ô¤Ï¥Õ¥¡¥¤¥ë +これらの関数はファイル .B _PATH_TTYS -(Î㤨¤Ð +(例えば .IR /etc/ttys ) -¤Ø¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤¹¤ë¡£ +へのインタフェースを提供する。 .\"O The function .\"O .BR setttyent () .\"O opens the file or rewinds it if already open. -´Ø¿ô +関数 .BR setttyent () -¤Ï¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£ -¤Þ¤¿´û¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢´¬¤­Ì᤹¡£ +はファイルをオープンする。 +また既にオープンされている場合は、巻き戻す。 .\"O The function .\"O .BR endttyent () .\"O closes the file. -´Ø¿ô +関数 .BR endttyent () -¤Ï¥Õ¥¡¥¤¥ë¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +はファイルをクローズする。 .\"O The function .\"O .BR getttynam () @@ -55,12 +55,12 @@ getttyent, getttynam, setttyent, endttyent \- ttys .\"O It returns a pointer to a .\"O .I ttyent .\"O structure (description below). -´Ø¿ô +関数 .BR getttynam () -¤Ï»ØÄꤵ¤ì¤¿Ã¼Ëö̾¤Ë¤Ä¤¤¤Æ¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤¹¤ë¡£ -¤³¤Î´Ø¿ô¤Ï (°Ê²¼¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë) +は指定された端末名についてファイルを検索する。 +この関数は (以下で説明されている) .I ttyent -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ +構造体へのポインタを返す。 .\"O The function .\"O .BR getttyent () @@ -68,17 +68,17 @@ getttyent, getttynam, setttyent, endttyent \- ttys .\"O .B _PATH_TTYS .\"O (if necessary) and returns the first entry. .\"O If the file is already open, the next entry. -´Ø¿ô +関数 .BR getttyent () -¤Ï (¤â¤·É¬ÍפǤ¢¤ì¤Ð) ¥Õ¥¡¥¤¥ë +は (もし必要であれば) ファイル .B _PATH_TTYS -¤ò¥ª¡¼¥×¥ó¤·¡¢ºÇ½é¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£ -¥Õ¥¡¥¤¥ë¤¬´û¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¼¡¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£ +をオープンし、最初のエントリを返す。 +ファイルが既にオープンされている場合は、次のエントリを返す。 .\"O The .\"O .I ttyent .\"O structure has the form: .I ttyent -¹½Â¤ÂΤϰʲ¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +構造体は以下の通りである。 .in +4n .nf @@ -89,12 +89,12 @@ struct ttyent { .\"O int ty_status; /* status flags */ .\"O char *ty_window; /* command to start up window manager */ .\"O char *ty_comment; /* comment field */ - char *ty_name; /* üËö¥Ç¥Ð¥¤¥¹Ì¾ */ - char *ty_getty; /* ¼Â¹Ô¤¹¤ë¥³¥Þ¥ó¥É¡£Ä̾ï¤Ï getty */ - char *ty_type; /* termcap ¤Î¤¿¤á¤ÎüËö¥¿¥¤¥× */ - int ty_status; /* ¾õÂ֥ե饰 */ - char *ty_window; /* ¥¦¥£¥ó¥É¥¦¥Þ¥Í¡¼¥¸¥ã¤òµ¯Æ°¤¹¤ë¥³¥Þ¥ó¥É */ - char *ty_comment; /* ¥³¥á¥ó¥È¥Õ¥£¡¼¥ë¥É */ + char *ty_name; /* 端末デバイス名 */ + char *ty_getty; /* 実行するコマンド。通常は getty */ + char *ty_type; /* termcap のための端末タイプ */ + int ty_status; /* 状態フラグ */ + char *ty_window; /* ウィンドウマネージャを起動するコマンド */ + char *ty_comment; /* コメントフィールド */ }; .fi .in @@ -102,30 +102,30 @@ struct ttyent { .\"O .I ty_status .\"O can be: .I ty_status -¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«Ãͤò¤È¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +は以下のいずれか値をとることができる。 .br .nf .\"O #define TTY_ON 0x01 /* enable logins (start ty_getty program) */ .\"O #define TTY_SECURE 0x02 /* allow UID 0 to login */ -#define TTY_ON 0x01 /* ¥í¥°¥¤¥ó¤òÍ­¸ú¤Ë¤¹¤ë (ty_getty ¥×¥í¥°¥é¥à¤ò³«»Ï¤¹¤ë) */ -#define TTY_SECURE 0x02 /* ¥æ¡¼¥¶ ID 0 ¤Ç¤Î¥í¥°¥¤¥ó¤òµö²Ä¤¹¤ë */ +#define TTY_ON 0x01 /* ログインを有効にする (ty_getty プログラムを開始する) */ +#define TTY_SECURE 0x02 /* ユーザ ID 0 でのログインを許可する */ .fi .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O Not in POSIX.1-2001. .\"O Present on the BSDs, and perhaps other systems. -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -BSD ·Ï¤Ë¸ºß¤·¡¢¤ª¤½¤é¤¯Â¾¤Î¥·¥¹¥Æ¥à¤Ë¤â¤¢¤ë¤À¤í¤¦¡£ +POSIX.1-2001 にはない。 +BSD 系に存在し、おそらく他のシステムにもあるだろう。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Under Linux the file .\"O .IR /etc/ttys , .\"O and the functions described above, are not used. -Linux ¤Ç¤Ï¡¢¥Õ¥¡¥¤¥ë +Linux では、ファイル .I /etc/ttys -¤È¾å¤ÇÀâÌÀ¤·¤¿´Ø¿ô¤Ï»È¤ï¤ì¤Æ¤¤¤Ê¤¤¡£ +と上で説明した関数は使われていない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ttyname (3), .BR ttyslot (3) diff --git a/draft/man3/getumask.3 b/draft/man3/getumask.3 index c8a0a95b..01b72e81 100644 --- a/draft/man3/getumask.3 +++ b/draft/man3/getumask.3 @@ -28,14 +28,14 @@ .\" .TH GETUMASK 3 2010-09-10 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getumask \- get file creation mask -getumask \- ¥Õ¥¡¥¤¥ëºîÀ®¥Þ¥¹¥¯¤ò¼èÆÀ¤¹¤ë +getumask \- ファイル作成マスクを取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B "#include " .br @@ -44,11 +44,11 @@ getumask \- .B "mode_t getumask(void);" .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This function returns the current file creation mask. -¤³¤Î´Ø¿ô¤Ï¸½ºß¤Î¥Õ¥¡¥¤¥ëºîÀ®¥Þ¥¹¥¯¤òÊÖ¤¹¡£ +この関数は現在のファイル作成マスクを返す。 .\"O It is equivalent to -´ðËÜŪ¤Ë¤Ï°Ê²¼¤ÈÅù²Á¤Ç¤¢¤ë¡£ +基本的には以下と等価である。 .in +4n .nf @@ -65,21 +65,21 @@ mode_t getumask(void) .\"O a lock with the .\"O .BR umask (2) .\"O library call). -¥É¥­¥å¥á¥ó¥È¤Ë¤è¤ë¤È¡¢¤³¤Î´Ø¿ô¤Ï -¥¹¥ì¥Ã¥É¡¦¥»¡¼¥Õ¤Ç¤¢¤ë +ドキュメントによると、この関数は +スレッド・セーフである .RB ( umask (2) -¥é¥¤¥Ö¥é¥ê¡¦¥³¡¼¥ë¤È¥í¥Ã¥¯¤ò¶¦Í­¤¹¤ë) -ÅÀ¤¬°Û¤Ê¤ë¡£ +ライブラリ・コールとロックを共有する) +点が異なる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This is a vaporware GNU extension. -¥É¥­¥å¥á¥ó¥È¤Ë½ñ¤¤¤Æ¤¢¤ë¤À¤±¤Î GNU ³ÈÄ¥¤Ç¤¢¤ë¡£ +ドキュメントに書いてあるだけの GNU 拡張である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O This function is documented but not implemented yet in glibc, .\"O as at version 2.9. -¥Ð¡¼¥¸¥ç¥ó 2.9 »þÅÀ¤Î glibc ¤Ç¤Ï¡¢ -¤³¤Î´Ø¿ô¤Ë¤Ä¤¤¤Æ¤Îµ­ºÜ¤Ï¤¢¤ë¤¬¡¢¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +バージョン 2.9 時点の glibc では、 +この関数についての記載はあるが、まだ実装されていない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR umask (2) diff --git a/draft/man3/getusershell.3 b/draft/man3/getusershell.3 index a3911dd4..55e531af 100644 --- a/draft/man3/getusershell.3 +++ b/draft/man3/getusershell.3 @@ -31,11 +31,11 @@ .\" by ISHIOKA Takashi .TH GETUSERSHELL 3 2007-07-26 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getusershell, setusershell, endusershell \- get permitted user shells -getusershell, setusershell, endusershell \- µö²Ä¤µ¤ì¤¿¥æ¡¼¥¶¥·¥§¥ë¤òÆÀ¤ë +getusershell, setusershell, endusershell \- 許可されたユーザシェルを得る .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -49,9 +49,9 @@ getusershell, setusershell, endusershell \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -63,7 +63,7 @@ _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR getusershell () .\"O function returns the next line from the file @@ -76,42 +76,42 @@ _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) .\"O behaves as if \fI/bin/sh\fP and .\"O \fI/bin/csh\fP were listed in the file. .BR getusershell () -´Ø¿ô¤Ï \fI/etc/shells\fP ¥Õ¥¡¥¤¥ë¤«¤é -(³«¤¯É¬Íפ¬¤¢¤ì¤Ð¤³¤Î¥Õ¥¡¥¤¥ë¤ò³«¤¤¤Æ¤«¤é) ¸½ºß¹Ô¤Î¼¡¤Î°ì¹Ô¤òÊÖ¤¹¡£ -ÊÖ¤µ¤ì¤¿¹Ô¤ÎÃæ¿È¤ÏÍ­¸ú¤Ê¥æ¡¼¥¶¥·¥§¥ë¤Î¤¦¤Á¤Î°ì¤Ä¤Î¥Ñ¥¹Ì¾¤Ç¤¢¤ë¡£ -(ÌõÃí. °ì¹Ô¤ËÉÕ¤­°ì¤Ä¤Î¥·¥§¥ë¤Î¥Ñ¥¹Ì¾¤¬½ñ¤«¤ì¤Æ¤¤¤ë¡£) -¤â¤· \fI/etc/shells\fP ¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢Æɤ߹þ¤ßÉԲĤξì¹ç¤Ë¤Ï¡¢ +関数は \fI/etc/shells\fP ファイルから +(開く必要があればこのファイルを開いてから) 現在行の次の一行を返す。 +返された行の中身は有効なユーザシェルのうちの一つのパス名である。 +(訳注. 一行に付き一つのシェルのパス名が書かれている。) +もし \fI/etc/shells\fP が存在しないか、読み込み不可の場合には、 .BR getusershell () -¤Ï \fI/bin/sh\fP ¤È \fI/bin/csh\fP -¤¬¥Õ¥¡¥¤¥ë¤Ëµ­¤µ¤ì¤Æ¤¤¤ë¤«¤Î¤è¤¦¤Ë¤Õ¤ë¤Þ¤¦¡£ +は \fI/bin/sh\fP と \fI/bin/csh\fP +がファイルに記されているかのようにふるまう。 .PP .\"O The .\"O .BR setusershell () .\"O function rewinds \fI/etc/shells\fP. .BR setusershell () -´Ø¿ô¤Ï \fI/etc/shells\fP ¥Õ¥¡¥¤¥ë¤Î -¥Õ¥¡¥¤¥ë¥Ý¥¤¥ó¥¿¤òÀèƬ¤ËÌ᤹¡£ +関数は \fI/etc/shells\fP ファイルの +ファイルポインタを先頭に戻す。 .PP .\"O The .\"O .BR endusershell () .\"O function closes \fI/etc/shells\fP. .BR endusershell () -´Ø¿ô¤Ï \fI/etc/shells\fP ¥Õ¥¡¥¤¥ë¤òÊĤ¸¤ë¡£ +関数は \fI/etc/shells\fP ファイルを閉じる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR getusershell () .\"O function returns a NULL pointer on end-of-file. .BR getusershell () -´Ø¿ô¤Ï¥Õ¥¡¥¤¥ë¤Î½ªÃ¼¤Ç¤ÏNULL ¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +関数はファイルの終端ではNULL ポインタを返す。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .nf /etc/shells .fi .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.3BSD. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR shells (5) diff --git a/draft/man3/getutent.3 b/draft/man3/getutent.3 index 75596b67..3ac5b309 100644 --- a/draft/man3/getutent.3 +++ b/draft/man3/getutent.3 @@ -36,13 +36,13 @@ .\" .TH GETUTENT 3 2008-06-29 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getutent, getutid, getutline, pututline, setutent, endutent, .\"O utmpname \- access utmp file entries getutent, getutid, getutline, pututline, setutent, endutent, utmpname \- -utmp ¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥È¥ê¤Ë¥¢¥¯¥»¥¹¤¹¤ë +utmp ファイルのエントリにアクセスする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .B struct utmp *getutent(void); @@ -59,11 +59,11 @@ utmp .sp .BI "int utmpname(const char *" file ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O New applications should use the POSIX.1-specified "utmpx" versions of .\"O these functions; see CONFORMING TO. -¿·¤·¤¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢¤³¤ì¤é¤Î´Ø¿ô¤Î "utmpx" ÈǤò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Ï POSIX.1 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£¡Ö½àµò¡×¤ÎÀá¤ò»²¾È¡£ +新しいアプリケーションでは、これらの関数の "utmpx" 版を使用すべきである。 +これらは POSIX.1 で規定されている。「準拠」の節を参照。 .\"O .BR utmpname () .\"O sets the name of the utmp-format file for the other utmp @@ -74,42 +74,42 @@ utmp .\"O before the other functions are used, they assume \fB_PATH_UTMP\fP, as .\"O defined in \fI\fP. .BR utmpname () -¤Ï¡¢Â¾¤Î utmp ´Ø¿ô¤¬¥¢¥¯¥»¥¹¤¹¤ë (utmp ¥Õ¥©¡¼¥Þ¥Ã¥È¤Î) -¥Õ¥¡¥¤¥ë¤Î̾Á°¤ò»ØÄꤹ¤ë¡£Â¾¤Î´Ø¿ô¤ò»È¤¦Á°¤Ë +は、他の utmp 関数がアクセスする (utmp フォーマットの) +ファイルの名前を指定する。他の関数を使う前に .BR utmpname () -¤ò»È¤Ã¤Æ -¥Õ¥¡¥¤¥ë̾¤Î»ØÄê¤ò¹Ô¤ï¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ \fI\fP ¤Ç -ÄêµÁ¤µ¤ì¤Æ¤¤¤ë \fB_PATH_UTMP\fP ¤¬¥Õ¥¡¥¤¥ë̾¤È¤ß¤Ê¤µ¤ì¤ë¡£ +を使って +ファイル名の指定を行わなかった場合は、 \fI\fP で +定義されている \fB_PATH_UTMP\fP がファイル名とみなされる。 .PP .\"O .BR setutent () .\"O rewinds the file pointer to the beginning of the utmp file. .\"O It is generally a good idea to call it before any of the other .\"O functions. .BR setutent () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ý¥¤¥ó¥¿¤ò utmp ¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤Ë°ÜÆ°¤¹¤ë¡£ -°ìÈÌŪ¤Ë¤Ï¡¢Â¾¤Î´Ø¿ô¤ò»È¤¦Á°¤Ë¤³¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤Æ¤ª¤¯¤ÈÎɤ¤¤À¤í¤¦¡£ +は、ファイルポインタを utmp ファイルの先頭に移動する。 +一般的には、他の関数を使う前にこの関数を呼び出しておくと良いだろう。 .PP .\"O .BR endutent () .\"O closes the utmp file. .\"O It should be called when the user .\"O code is done accessing the file with the other functions. .BR endutent () -¤Ï utmp ¥Õ¥¡¥¤¥ë¤ò¥¯¥í¡¼¥º¤¹¤ë¡£¥æ¡¼¥¶¡¼¥³¡¼¥É¤Ç -¾¤Î´Ø¿ô¤ò»È¤Ã¤Æ¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤ò¹Ô¤Ã¤¿»þ¤Ï¡¢ºÇ¸å¤Ë¤³¤Î´Ø¿ô¤ò -¸Æ¤Ó½Ð¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +は utmp ファイルをクローズする。ユーザーコードで +他の関数を使ってこのファイルにアクセスを行った時は、最後にこの関数を +呼び出すべきである。 .PP .\"O .BR getutent () .\"O reads a line from the current file position in the utmp file. .\"O It returns a pointer to a structure containing the fields of .\"O the line. .BR getutent () -¤Ï utmp ¥Õ¥¡¥¤¥ë¤Î¸½ºß¤Î¥Õ¥¡¥¤¥ë°ÌÃÖ¤«¤é°ì¹ÔÆɤ߹þ¤ß¡¢ -¹Ô¤Î³Æ¥Õ¥£¡¼¥ë¥É¤ÎÆâÍƤò¼ý¤á¤¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ +は utmp ファイルの現在のファイル位置から一行読み込み、 +行の各フィールドの内容を収めた構造体へのポインタを返す。 .\"O The definition of this structure is shown in .\"O .BR utmp (5). -¤³¤Î¹½Â¤ÂΤÎÄêµÁ¤Ï +この構造体の定義は .BR utmp (5) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ +に書かれている。 .PP .\"O .BR getutid () .\"O searches forward from the current file position in the utmp @@ -127,20 +127,20 @@ utmp .\"O .I ut_id .\"O field matches \fIut\fP\->ut_id. .BR getutid () -¤Ï¡¢ utmp ¥Õ¥¡¥¤¥ëÃæ¤Î¸½ºß¤Î°ÌÃÖ¤«¤é½çÊý¸þ -(ËöÈø¤Ë¸þ¤«¤¦Êý¸þ) ¤Ø \fIut\fP ¤Ë´ð¤¯¸¡º÷¤ò¹Ô¤¦¡£ \fIut\fP\->ut_type ¤¬ -\fBRUN_LVL\fP, \fBBOOT_TIME\fP, \fBNEW_TIME\fP, \fBOLD_TIME\fP ¤Î -¤¤¤º¤ì¤«¤Ê¤é¡¢ +は、 utmp ファイル中の現在の位置から順方向 +(末尾に向かう方向) へ \fIut\fP に基く検索を行う。 \fIut\fP\->ut_type が +\fBRUN_LVL\fP, \fBBOOT_TIME\fP, \fBNEW_TIME\fP, \fBOLD_TIME\fP の +いずれかなら、 .BR getutid () -¤Ï \fBut_type\fP ¥Õ¥£¡¼¥ë¥É¤¬ -\fIut\fP\->ut_type ¤Ë°ìÃפ¹¤ëºÇ½é¤Î¥¨¥ó¥È¥ê¤òõ¤¹¡£ -\fIut\fP\->ut_type ¤¬ \fBINIT_PROCESS\fP, \fBLOGIN_PROCESS\fP, -\fBUSER_PROCESS\fP, \fBDEAD_PROCESS\fP ¤Î¤¤¤º¤ì¤«¤Ê¤é¡¢ +は \fBut_type\fP フィールドが +\fIut\fP\->ut_type に一致する最初のエントリを探す。 +\fIut\fP\->ut_type が \fBINIT_PROCESS\fP, \fBLOGIN_PROCESS\fP, +\fBUSER_PROCESS\fP, \fBDEAD_PROCESS\fP のいずれかなら、 .BR getutid () -¤Ï +は .I ut_id -¥Õ¥£¡¼¥ë¥É¤¬ \fIut\fP\->ut_id ¤Ë -°ìÃפ¹¤ëºÇ½é¤Î¥¨¥ó¥È¥ê¤òõ¤¹¡£ +フィールドが \fIut\fP\->ut_id に +一致する最初のエントリを探す。 .PP .\"O .BR getutline () .\"O searches forward from the current file position in the utmp file. @@ -152,11 +152,11 @@ utmp .\"O field .\"O matches \fIut\->ut_line\fP. .BR getutline () -¤Ï¡¢ utmp ¥Õ¥¡¥¤¥ë¤Î¸½ºß¤Î°ÌÃÖ¤«¤éËöÈø¤Ë¸þ¤«¤Ã¤Æ¸¡º÷¤ò¹Ô¤¦¡£ +は、 utmp ファイルの現在の位置から末尾に向かって検索を行う。 .I ut_type -¤¬ \fBUSER_PROCESS\fP ¤Þ¤¿¤Ï \fBLOGIN_PROCESS\fP ¤Ç¡¢ +が \fBUSER_PROCESS\fP または \fBLOGIN_PROCESS\fP で、 .I ut_line -¥Õ¥£¡¼¥ë¥É¤¬ \fIut\fP->ut_line ¤Ë¥Þ¥Ã¥Á¤¹¤ëºÇ½é¤Î¹Ô¤òÊÖ¤¹¡£ +フィールドが \fIut\fP->ut_line にマッチする最初の行を返す。 .PP .\"O .BR pututline () .\"O writes the @@ -170,17 +170,17 @@ utmp .\"O .BR pututline () .\"O will append the new entry to the end of the file. .BR pututline () -¤Ï +は .I utmp -¹½Â¤ÂÎ \fIut\fP ¤ÎÆâÍƤò utmp ¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤¹¡£ +構造体 \fIut\fP の内容を utmp ファイルに書き出す。 .BR pututline () -¤Ï +は .BR getutid () -¤òÍѤ¤¤Æ¡¢¿·¤¿¤Ê¥¨¥ó¥È¥ê¤ò -ÁÞÆþ¤¹¤ë¤Î¤Ë¤Õ¤µ¤ï¤·¤¤¾ì½ê¤òõ¤¹¡£ \fIut\fP ¤òÁÞÆþ¤¹¤ë¤Õ¤µ¤ï¤·¤¤¾ì½ê¤¬ -¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï¡¢¿·¤¿¤Ê¥¨¥ó¥È¥ê¤ò¥Õ¥¡¥¤¥ë¤ÎËöÈø¤ËÄɲ乤롣 +を用いて、新たなエントリを +挿入するのにふさわしい場所を探す。 \fIut\fP を挿入するふさわしい場所が +見つからない場合は、新たなエントリをファイルの末尾に追加する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR getutent (), .\"O .BR getutid (), .\"O and @@ -192,10 +192,10 @@ utmp .BR getutent (), .BR getutid (), .BR getutline () -¤Ï¡¢À®¸ù¤¹¤ë¤È \fIstruct utmp\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¼ºÇÔ¤¹¤ë¤È NULL ¤òÊÖ¤¹ (¥ì¥³¡¼¥É¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤â¼ºÇԤȤʤë)¡£ -¤³¤Î \fIstruct utmp\fP ¤ÏÀÅŪ¤Êµ­²±Îΰè¤Ë³ÎÊݤµ¤ì¡¢¼¡¤Ë¤³¤ì¤é¤Î´Ø¿ô¤ò -¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¾å½ñ¤­¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +は、成功すると \fIstruct utmp\fP へのポインタを返す。 +失敗すると NULL を返す (レコードが見つからなかった場合も失敗となる)。 +この \fIstruct utmp\fP は静的な記憶領域に確保され、次にこれらの関数を +呼び出した際に上書きされるかもしれない。 .\"O On success .\"O .BR pututline () @@ -203,24 +203,24 @@ utmp .\"O .IR ut ; .\"O on failure, it returns NULL. .BR pututline () -¤ÏÀ®¸ù¤¹¤ë¤È +は成功すると .I ut -¤òÊÖ¤¹¡£¼ºÇÔ¤¹¤ë¤È NULL ¤òÊÖ¤¹¡£ +を返す。失敗すると NULL を返す。 .\"O .BR utmpname () .\"O returns 0 if the new name was successfully stored, or \-1 on failure. .BR utmpname () -¤Ï¡¢¿·¤·¤¤Ì¾Á°¤Î³ÊǼ¤ËÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤·¡¢¼ºÇÔ¤¹¤ë¤È \-1 ¤òÊÖ¤¹¡£ +は、新しい名前の格納に成功すると 0 を返し、失敗すると \-1 を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B ENOMEM .\"O Out of memory. -¥á¥â¥êÉÔ­¡£ +メモリ不足。 .TP .B ESRCH .\"O Record not found. -¥ì¥³¡¼¥É¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£ +レコードが見つからなかった。 .PP .\"O .BR setutent (), .\"O .BR pututline (), @@ -228,23 +228,23 @@ utmp .\"O .B getut* () .\"O functions can also fail for the reasons described in .\"O .BR open (2). -´Ø¿ô +関数 .BR setutent (), .BR pututline (), .BR getut* () -¤Ï +は .BR open (2) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ëÍýͳ¤Ç¤â¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ë¡£ +に書かれている理由でも失敗することがある。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .\"O /var/run/utmp database of currently logged-in users .\"O .br .\"O /var/log/wtmp database of past user logins -/var/run/utmp ¸½ºß¥í¥°¥¤¥óÃæ¤Î¥æ¡¼¥¶¡¼¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹ +/var/run/utmp 現在ログイン中のユーザーのデータベース .br -/var/log/wtmp ²áµî¤Î¥æ¡¼¥¶¡¼¥í¥°¥¤¥ó¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹ +/var/log/wtmp 過去のユーザーログインのデータベース .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 XPG2, SVr4. .LP .\"O In XPG2 and SVID 2 the function @@ -252,29 +252,29 @@ XPG2, SVr4. .\"O is documented .\"O to return void, and that is what it does on many systems .\"O (AIX, HP-UX, Linux libc5). -XPG2 ¤È SVID 2 ¤Ç¤Ï¡¢ +XPG2 と SVID 2 では、 .BR pututline () -´Ø¿ô¤ÏÃͤòÊÖ¤µ¤Ê¤¤¤È¤µ¤ì¤Æ¤ª¤ê¡¢ -(AIX, HP-UX, Linux libc5 ¤Ê¤É¤Î) ¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¤½¤¦¤Ê¤Ã¤Æ¤¤¤ë¡£ +関数は値を返さないとされており、 +(AIX, HP-UX, Linux libc5 などの) 多くのシステムではそうなっている。 .\"O HP-UX introduces a new function .\"O .BR _pututline () .\"O with the prototype given above for .\"O .BR pututline () .\"O (also found in Linux libc5). -HP-UX ¤Ç¤Ï¡¢¾å½Ò¤Î +HP-UX では、上述の .BR pututline () -¤ÈƱ¤¸¥×¥í¥È¥¿¥¤¥×¤ò»ý¤Ä -¿·¤·¤¤´Ø¿ô +と同じプロトタイプを持つ +新しい関数 .BR _pututline () -¤¬Æ³Æþ¤µ¤ì¤Æ¤¤¤ë -(¤³¤Î´Ø¿ô¤Ï Linux libc5 ¤Ë¤â¤¢¤ë)¡£ +が導入されている +(この関数は Linux libc5 にもある)。 .LP .\"O All these functions are obsolete now on non-Linux systems. -¸½ºß¤Ç¤Ï¡¢Linux °Ê³°¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤ì¤é¤Î´Ø¿ô¤ÏÁ´¤ÆÇѻߤµ¤ì¤Æ¤¤¤ë¡£ +現在では、Linux 以外のシステムでは、これらの関数は全て廃止されている。 .\"O POSIX.1-2001, following SUSv1, .\"O does not have any of these functions, but instead uses -SUSv1 ¤Î¸å¤Ë½Ð¤Æ¤­¤¿ POSIX.1-2001 ¤Ç¤Ï¡¢¤â¤Ï¤ä¤³¤ì¤é¤Î´Ø¿ô¤Ï¤Ê¤¯¡¢ -Âå¤ï¤ê¤Ë°Ê²¼¤Î¤â¤Î¤ò»È¤¦¡£ +SUSv1 の後に出てきた POSIX.1-2001 では、もはやこれらの関数はなく、 +代わりに以下のものを使う。 .sp .B #include .sp @@ -298,16 +298,16 @@ SUSv1 .\"O For completeness, glibc also provides .\"O .BR utmpxname (), .\"O although this function is not specified by POSIX.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¤Ë¤è¤êÄ󶡤µ¤ì¤Æ¤ª¤ê¡¢ -"x" ¤¬¤Ê¤¤´Ø¿ô¤ÈƱ¤¸½èÍý¤ò¹Ô¤¦¤¬¡¢ +これらの関数は glibc により提供されており、 +"x" がない関数と同じ処理を行うが、 .I "struct utmpx" -¤ò»ÈÍѤ¹¤ë¡£ -Linux ¤Ç¤Ï¡¢¤³¤Î¹½Â¤ÂΤÎÄêµÁ¤Ï +を使用する。 +Linux では、この構造体の定義は .I "struct utmp" -¤ÈƱ¤¸¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -´°Á´¤ò´ü¤¹¤¿¤á¤Ë¡¢glibc ¤Ç¤Ï +と同じになっている。 +完全を期すために、glibc では .BR utmpxname () -¤âÄ󶡤·¤Æ¤¤¤ë¡£¤³¤Î´Ø¿ô¤Ï POSIX.1 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +も提供している。この関数は POSIX.1 では規定されていない。 .PP .\"O On some other systems, .\"O the \fIutmpx\fP structure is a superset of the \fIutmp\fP structure, @@ -316,35 +316,35 @@ Linux .\"O .I /var/*/utmpx .\"O and .\"O .IR /var/*/wtmpx . -Linux °Ê³°¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -\fIutmpx\fP ¹½Â¤ÂÎ¤Ï \fIutmp\fP ¹½Â¤ÂΤξå°Ì½¸¹ç (superset) ¤Ë¤Ê¤Ã¤Æ¤¤¤Æ¡¢ -ÄɲäΥե£¡¼¥ë¥É¤¬¤¢¤Ã¤¿¤ê¡¢´û¸¤Î¥Õ¥£¡¼¥ë¥É¤Î¥µ¥¤¥º¤¬Â礭¤¯¤Ê¤Ã¤Æ¤¤¤¿¤ê -¤¹¤ë¤â¤Î¤â¤¢¤ë¡£Ê£¿ô¤Î¥Õ¥¡¥¤¥ë¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¾ì¹ç¤â¤¢¤ê¡¢Â¿¤¯¤Î¾ì¹ç +Linux 以外のシステムでは、 +\fIutmpx\fP 構造体は \fIutmp\fP 構造体の上位集合 (superset) になっていて、 +追加のフィールドがあったり、既存のフィールドのサイズが大きくなっていたり +するものもある。複数のファイルが使用されている場合もあり、多くの場合 .I /var/*/utmpx -¤È +と .I /var/*/wtmpx -¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬»È¤ï¤ì¤ë¡£ +というファイルが使われる。 .LP .\"O Linux glibc on the other hand does not use a parallel \fIutmpx\fP file .\"O since its \fIutmp\fP structure is already large enough. .\"O The functions \fBgetutxent\fP() .\"O etc. are aliases for \fBgetutent\fP() etc. -°ìÊý¡¢ Linux glibc ¤Ç¤ÏÊ£¿ô¤Î \fIutmpx\fP ¥Õ¥¡¥¤¥ë ¤Ï»È¤ï¤ì¤Æ¤¤¤Ê¤¤¡£ -\fIutmp\fP ¹½Â¤ÂΤ¬½½Ê¬¤ËÂ礭¤¤¤«¤é¤Ç¤¢¤ë¡£ -\fIgetutxent\fP() ¤Ê¤É¤Î´Ø¿ô¤Ï \fIgetutent\fP() ¤Ê¤É¤ÎÊÌ̾¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ +一方、 Linux glibc では複数の \fIutmpx\fP ファイル は使われていない。 +\fIutmp\fP 構造体が十分に大きいからである。 +\fIgetutxent\fP() などの関数は \fIgetutent\fP() などの別名となっている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .SS Glibc Notes -.SS glibc ¤Ç¤ÎÃí°Õ +.SS glibc での注意 .\"O The above functions are not thread-safe. .\"O Glibc adds reentrant versions -¾åµ­¤Î´Ø¿ô·²¤Ï¥¹¥ì¥Ã¥É¡¦¥»¡¼¥Õ¤Ç¤Ï¤Ê¤¤¡£ -glibc ¤Ë¤Ï¥ê¥¨¥ó¥È¥é¥ó¥ÈÈÇ (reentrant) ¤¬Äɲ䵤ì¤Æ¤¤¤ë¡£ +上記の関数群はスレッド・セーフではない。 +glibc にはリエントラント版 (reentrant) が追加されている。 .sp .nf .BR "#define _GNU_SOURCE" " /* or _SVID_SOURCE or _BSD_SOURCE; .\"O .RB "\& see " feature_test_macros(7) " */" -.RB "\& " feature_test_macros(7) " »²¾È */" +.RB "\& " feature_test_macros(7) " 参照 */" .B #include .sp .BI "int getutent_r(struct utmp *" ubuf ", struct utmp **" ubufp ); @@ -366,17 +366,17 @@ glibc .\"O On error these functions return \-1. .\"O There are no utmpx equivalents of the above functions. .\"O (POSIX.1 does not specify such functions.) -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ¤Ç¤Î³ÈÄ¥¤Ç¤¢¤ê¡¢ËöÈø¤Î _r ¤ò¤È¤Ã¤¿Ì¾Á°¤Î´Ø¿ô¤È -ƱÍͤε¡Ç½¤ò»ý¤Ä¡£ +これらの関数は GNU での拡張であり、末尾の _r をとった名前の関数と +同様の機能を持つ。 .I ubuf -¥Ñ¥é¥á¡¼¥¿¤Ï·ë²Ì¤ò³ÊǼ¤¹¤ë¾ì½ê¤ò»ØÄꤹ¤ë¡£ -À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤·¡¢·ë²Ì¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò +パラメータは結果を格納する場所を指定する。 +成功すると 0 を返し、結果へのポインタを .I *ubufp -¤Ë½ñ¤­¹þ¤à¡£¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤¹¡£ -¾åµ­¤Î´Ø¿ô¤ËÂбþ¤¹¤ë utmpx ÈǤϸºß¤·¤Ê¤¤ -(POSIX.1 ¤Ç¤Ï¤³¤ì¤é¤Î´Ø¿ô¤òµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤)¡£ +に書き込む。エラーの場合 \-1 を返す。 +上記の関数に対応する utmpx 版は存在しない +(POSIX.1 ではこれらの関数を規定されていない)。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The following example adds and removes a utmp record, assuming it is run .\"O from within a pseudo terminal. .\"O For usage in a real application, you @@ -384,13 +384,13 @@ glibc .\"O .BR getpwuid (3) .\"O and .\"O .BR ttyname (3). -°Ê²¼¤ÎÎã¤Ç¤Ï¡¢ utmp ¤Î¥ì¥³¡¼¥É¤ÎÄɲᦺï½ü¤ò¹Ô¤Ã¤Æ¤¤¤ë¡£¤³¤Î¥³¡¼¥É¤Ï¡¢ -µ¼»÷üËö (pseudo terminal) ¤«¤é¼Â¹Ô¤µ¤ì¤ë¤³¤È¤òÁÛÄꤷ¤Æ¤¤¤ë¡£ -¼ÂºÝ¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï +以下の例では、 utmp のレコードの追加・削除を行っている。このコードは、 +擬似端末 (pseudo terminal) から実行されることを想定している。 +実際のアプリケーションでは .BR getpwuid (3) -¤È +と .BR ttyname (3) -¤ÎÌá¤êÃͤò¸¡ºº¤¹¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +の戻り値を検査するべきである。 .PP .nf #include @@ -434,6 +434,6 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getutmp (3), .BR utmp (5) diff --git a/draft/man3/getw.3 b/draft/man3/getw.3 index 3c238c8c..c513a648 100644 --- a/draft/man3/getw.3 +++ b/draft/man3/getw.3 @@ -29,11 +29,11 @@ .\" License. .TH GETW 3 2010-09-26 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getw, putw \- input and output of words (ints) -getw, putw \- ¥ï¡¼¥É(int)¤ÎÆþ½ÐÎÏ +getw, putw \- ワード(int)の入出力 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -45,9 +45,9 @@ getw, putw \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR getw (), @@ -57,20 +57,20 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.3.3: -glibc 2.3.3 °Ê¹ß: +glibc 2.3.3 以降: _SVID_SOURCE || _BSD_SOURCE || .br (_XOPEN_SOURCE && !(_POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600)) .TP .\"O Before glibc 2.3.3: -glibc 2.3.3 ¤è¤êÁ°: +glibc 2.3.3 より前: _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE .RE .PD .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR getw () .\"O reads a word (that is, an \fIint\fP) from \fIstream\fP. .\"O It's provided for compatibility with SVr4. @@ -78,11 +78,11 @@ _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE .\"O .BR fread (3) .\"O instead. .BR getw () -¤Ï \fIstream\fP ¤«¤é¥ï¡¼¥É (\fIint\fP·¿) ¤òÆɤ߹þ¤à¡£ -¤³¤Î´Ø¿ô¤Ï¡¢SVr4 ¤È¤Î¸ß´¹À­¤Î¤¿¤á¤ËÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î´Ø¿ô¤ÎÂå¤ï¤ê¤Ë +は \fIstream\fP からワード (\fIint\fP型) を読み込む。 +この関数は、SVr4 との互換性のために提供されている。 +この関数の代わりに .BR fread (3) -¤ò»ÈÍѤ¹¤ë¤³¤È¤ò´«¤á¤ë¡£ +を使用することを勧める。 .P .\"O .BR putw () .\"O writes the word \fIw\fP (that is, @@ -91,38 +91,38 @@ _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE .\"O .BR fwrite (3) .\"O instead. .BR putw () -¤Ï \fIstream\fP ¤Ë¥ï¡¼¥É \fIw\fP (\fIint\fP·¿) ¤ò½ñ¤­¹þ¤à¡£ -¤³¤Î´Ø¿ô¤Ï SVr4 ¤È¤Î¸ß´¹À­¤Î¤¿¤á¤ËÄ󶡤µ¤ì¤Æ¤¤¤ë¤¬¡¢¤³¤Î´Ø¿ô¤ÎÂå¤ï¤ê¤Ë +は \fIstream\fP にワード \fIw\fP (\fIint\fP型) を書き込む。 +この関数は SVr4 との互換性のために提供されているが、この関数の代わりに .BR fwrite (3) -¤ò»ÈÍѤ¹¤ë¤³¤È¤ò´«¤á¤ë¡£ +を使用することを勧める。 .\"O .SH "RETURN VALUES" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O Normally, .\"O .BR getw () .\"O returns the word read, and .\"O .BR putw () .\"O returns 0. -Ä̾ +通常、 .BR getw () -¤ÏÆɤ߹þ¤ó¤À¥ï¡¼¥É¤òÊÖ¤·¡¢ +は読み込んだワードを返し、 .BR putw () -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .\"O On error, they return \fBEOF\fP. -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï \fBEOF\fP ¤òÊÖ¤¹¡£ +エラーが発生した場合、これらの関数は \fBEOF\fP を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O SVr4, SUSv2. Not present in POSIX.1-2001. -SVr4, SUSv2. POSIX.1-2001 ¤Ë¤Ï¸ºß¤·¤Ê¤¤¡£ +SVr4, SUSv2. POSIX.1-2001 には存在しない。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O The value returned on error is also a legitimate data value. -¥¨¥é¡¼¤Î»þ¤ËÊÖ¤µ¤ì¤ëÃͤϡ¢Àµ¤·¤¤¥Ç¡¼¥¿¤È¤·¤ÆÊÖ¤µ¤ì¤ë¤³¤È¤â¤¢¤ë¡£ +エラーの時に返される値は、正しいデータとして返されることもある。 .\"O .BR ferror (3) .\"O can be used to distinguish between the two cases. .BR ferror (3) -¤òÍѤ¤¤ë¤È¡¢¤³¤ÎÆó¤Ä¤Î¾ì¹ç¤ò¶èÊ̤¹¤ë¤³¤È¤¬½ÐÍè¤ë¡£ +を用いると、この二つの場合を区別することが出来る。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ferror (3), .BR fread (3), .BR fwrite (3), diff --git a/draft/man3/getwchar.3 b/draft/man3/getwchar.3 index b1a38be6..0a073b98 100644 --- a/draft/man3/getwchar.3 +++ b/draft/man3/getwchar.3 @@ -20,18 +20,18 @@ .\" .TH GETWCHAR 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O getwchar \- read a wide character from standard input -getwchar \- ɸ½àÆþÎϤè¤ê¥ï¥¤¥Éʸ»ú¤òÆɤ߹þ¤à +getwchar \- 標準入力よりワイド文字を読み込む .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .B "wint_t getwchar(void);" .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR getwchar () .\"O function is the wide-character equivalent of the @@ -46,38 +46,38 @@ getwchar \- ɸ .\"O \fIerrno\fP to \fBEILSEQ\fP and returns .\"O .BR WEOF . .BR getwchar () -´Ø¿ô¤Ï +関数は .BR getchar (3) -´Ø¿ô¤Î¥ï¥¤¥Éʸ»úÈǤǤ¢¤ë¡£ -\fBstdin\fP ¤«¤é¥ï¥¤¥Éʸ»ú¤òÆɤ߹þ¤ó¤Ç¤½¤ì¤òÊÖ¤¹¡£ -¥¹¥È¥ê¡¼¥à¤ÎºÇ¸å¤Ë㤷¤Æ¤¤¤ë¾ì¹ç¤ä \fIferror(stdin)\fP ¤¬¿¿¤Î¾ì¹ç¤Ë¤Ï +関数のワイド文字版である。 +\fBstdin\fP からワイド文字を読み込んでそれを返す。 +ストリームの最後に達している場合や \fIferror(stdin)\fP が真の場合には .B WEOF -¤òÊÖ¤¹¡£¥ï¥¤¥Éʸ»úÊÑ´¹¤Ç¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Ë¤Ï \fIerrno\fP ¤Ë -\fBEILSEQ\fP ¤òÀßÄꤷ¤Æ +を返す。ワイド文字変換でエラーが起こった場合には \fIerrno\fP に +\fBEILSEQ\fP を設定して .B WEOF -¤òÊÖ¤¹¡£ +を返す。 .PP .\"O For nonlocking counterparts, see .\"O .BR unlocked_stdio (3). -¤³¤ì¤é¤Î½èÍý¤ò¥í¥Ã¥¯¤»¤º¤Ë¹Ô¤¤¤¿¤¤¤È¤­¤Ï¡¢ +これらの処理をロックせずに行いたいときは、 .BR unlocked_stdio (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR getwchar () .\"O function returns the next wide-character from .\"O standard input, or .\"O .BR WEOF . .BR getwchar () -´Ø¿ô¤Ïɸ½àÆþÎϤμ¡¤Î¥ï¥¤¥Éʸ»ú¤òÊÖ¤¹¤«¡¢ +関数は標準入力の次のワイド文字を返すか、 .B WEOF -¤òÊÖ¤¹¡£ +を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR getwchar () .\"O depends on the @@ -85,18 +85,18 @@ C99. .\"O category of the .\"O current locale. .BR getwchar () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ +カテゴリに依存している。 .PP .\"O It is reasonable to expect that .\"O .BR getwchar () .\"O will actually read a multibyte .\"O sequence from standard input and then convert it to a wide character. .BR getwchar () -¤¬¼ÂºÝ¤Ë¤Ïɸ½àÆþÎϤ«¤é¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤òÆɤ߹þ¤ó¤Ç -¥ï¥¤¥Éʸ»ú¤ËÊÑ´¹¤¹¤ë¤³¤È¤ò´üÂÔ¤·¤Æ¤âÎɤ¤¡£ +が実際には標準入力からマルチバイト列を読み込んで +ワイド文字に変換することを期待しても良い。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fgetwc (3), .BR unlocked_stdio (3) diff --git a/draft/man3/glob.3 b/draft/man3/glob.3 index c2bfb79e..e705232a 100644 --- a/draft/man3/glob.3 +++ b/draft/man3/glob.3 @@ -36,12 +36,12 @@ .\" .TH GLOB 3 2007-10-10 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O glob, globfree \- find pathnames matching a pattern, free memory from glob() -glob, globfree \- ¥Ñ¥¿¡¼¥ó¤Ë¥Þ¥Ã¥Á¤¹¤ë¥Ñ¥¹Ì¾¤ò¸«ÉÕ¤±¤ë¡£glob() ¤Ë¤è¤Ã -¤Æ³ÎÊݤµ¤ì¤¿¥á¥â¥êÎΰè¤ò²òÊü¤¹¤ë¡£ +glob, globfree \- パターンにマッチするパス名を見付ける。glob() によっ +て確保されたメモリ領域を解放する。 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -54,7 +54,7 @@ glob, globfree \- .BI "void globfree(glob_t *" pglob ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR glob () .\"O function searches for all the pathnames matching @@ -62,17 +62,17 @@ glob, globfree \- .\"O according to the rules used by the shell (see .\"O .BR glob (7)). .BR glob () -´Ø¿ô¤Ï¥·¥§¥ë¤¬ÍѤ¤¤Æ¤¤¤ë¥ë¡¼¥ë +関数はシェルが用いているルール .RB ( glob (7) -»²¾È) ¤Ë´ð¤Å¤¤¤Æ¥Ñ¥¿¡¼¥ó +参照) に基づいてパターン .I pattern -¤Ë¥Þ¥Ã¥Á¤¹¤ë¤¹¤Ù¤Æ¤Î¥Ñ¥¹Ì¾¤ò¸¡º÷¤¹¤ë¡£ +にマッチするすべてのパス名を検索する。 .\"O No tilde expansion or parameter substitution is done; if you want .\"O these, use .\"O .BR wordexp (3). -¥Á¥ë¥À (~) ¤ÎŸ³«¤ä¥Ñ¥é¥á¡¼¥¿ÃÖ´¹¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£¤½¤ì¤é¤ò¹Ô¤¤¤¿¤¤¾ì¹ç¤Ï +チルダ (~) の展開やパラメータ置換は行われない。それらを行いたい場合は .BR wordexp (3) -¤ò»È¤¦¤È¤è¤¤¡£ +を使うとよい。 .PP .\"O The .\"O .BR globfree () @@ -80,9 +80,9 @@ glob, globfree \- .\"O to .\"O .BR glob (). .BR globfree () -´Ø¿ô¤ÏÁ°¤Ë¸Æ¤Ð¤ì¤¿ +関数は前に呼ばれた .BR glob () -¤Ë¤è¤êưŪ¤Ë³ÎÊݤµ¤ì¤¿µ­²±Îΰè¤ò²òÊü¤¹¤ë¡£ +により動的に確保された記憶領域を解放する。 .PP .\"O The results of a .\"O .BR glob () @@ -95,18 +95,18 @@ glob, globfree \- .\"O and includes the following elements defined by POSIX.2 (more may be .\"O present as an extension): .BR glob () -¤Î·ë²Ì¤Ï +の結果は .I pglob -¤¬¥Ý¥¤¥ó¥È¤¹¤ë¹½Â¤ÂΤËÊÖ¤µ¤ì¤ë¡£ +がポイントする構造体に返される。 .I pglob -¤Ï +は .I glob_t -·¿¤Î¹½Â¤ÂΤǤ¢¤ë¡£ +型の構造体である。 .I glob_t -·¿¤Ï +型は .I -Æâ¤ÇÀë¸À¤µ¤ì¤Æ¤ª¤ê¡¢°Ê²¼¤ÎÍ×ÁǤò´Þ¤ó¤Ç¤¤¤ë¡£¤³¤ì¤é¤ÎÍ×ÁÇ¤Ï POSIX.2 ¤ÇÄêµÁ -¤µ¤ì¤Æ¤¤¤ë (¤µ¤é¤Ë¿¤¯¤ÎÍ×ÁǤ¬³ÈÄ¥¤È¤·¤ÆÆþ¤Ã¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤)¡£ +内で宣言されており、以下の要素を含んでいる。これらの要素は POSIX.2 で定義 +されている (さらに多くの要素が拡張として入っているかもしれない)。 .PP .br .in +4n @@ -115,28 +115,28 @@ typedef struct { .\"O size_t gl_pathc; /* Count of paths matched so far */ .\"O char **gl_pathv; /* List of matched pathnames. */ .\"O size_t gl_offs; /* Slots to reserve in \fIgl_pathv\fP. */ - size_t gl_pathc; /* º£¤Þ¤Ç¤Ë¥Þ¥Ã¥Á¤·¤¿¥Ñ¥¹¤Î¿ô */ - char **gl_pathv; /* ¥Þ¥Ã¥Á¤·¤¿¥Ñ¥¹Ì¾¤Î¥ê¥¹¥È */ - size_t gl_offs; /* \fIgl_pathv\fP Æâ¤Ë³ÎÊݤ¹¤ë¥¹¥í¥Ã¥È¿ô */ + size_t gl_pathc; /* 今までにマッチしたパスの数 */ + char **gl_pathv; /* マッチしたパス名のリスト */ + size_t gl_offs; /* \fIgl_pathv\fP 内に確保するスロット数 */ } glob_t; .fi .in .PP .\"O Results are stored in dynamically allocated storage. -·ë²Ì¤ÏưŪ¤Ë³ÎÊݤµ¤ì¤¿µ­²±Îΰè¤ËÆþ¤ì¤é¤ì¤ë¡£ +結果は動的に確保された記憶領域に入れられる。 .PP .\"O The argument .\"O .I flags .\"O is made up of the bitwise OR of zero or more the following symbolic .\"O constants, which modify the behavior of .\"O .BR glob (): -¥Ñ¥é¥á¡¼¥¿ +パラメータ .I flags -¤Ë¤Ï°Ê²¼¤Î¼¨¤¹Äê¿ô¤Î¤¦¤Á¡¢»ØÄꤷ¤¿¤¤¤â¤Î¤ò¥Ó¥Ã¥È¤´¤È¤Î OR ¤ÇÍ¿¤¨¤ë -(°ì¤Ä¤â -»ØÄꤷ¤Ê¤¯¤Æ¤â¤è¤¤)¡£¤³¤ì¤Ë¤è¤Ã¤Æ +には以下の示す定数のうち、指定したいものをビットごとの OR で与える +(一つも +指定しなくてもよい)。これによって .BR glob () -¤ÎÆ°ºî¤òÊѹ¹¤Ç¤­¤ë¡£ +の動作を変更できる。 .TP .B GLOB_ERR .\"O Return upon a read error (because a directory does not @@ -145,22 +145,22 @@ typedef struct { .\"O .BR glob () .\"O attempts carry on despite errors, .\"O reading all of the directories that it can. -(Î㤨¤Ð¡¢¥Ç¥£¥ì¥¯¥È¥ê¤ËÆɤ߼è¤êµö²Ä°À­¤¬Ìµ¤¤¾ì¹ç¤Ê¤É¤Ç) -Æɤ߼è¤ê¥¨¥é¡¼¤¬È¯À¸¤·¤¿ºÝ¤Ë´Ø¿ô¤«¤éÌá¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥¨¥é¡¼¤Ë´Ø¤ï¤é¤º -Æɤ߼è¤ê²Äǽ¤Ê¥Ç¥£¥ì¥¯¥È¥ê¤òÁ´¤Æ¤Ë¤Ä¤¤¤ÆÆɤ߼è¤ê¤ò¼Â¹Ô¤·¤è¤¦¤È¤¹¤ë¡£ +(例えば、ディレクトリに読み取り許可属性が無い場合などで) +読み取りエラーが発生した際に関数から戻る。 +デフォルトでは、エラーに関わらず +読み取り可能なディレクトリを全てについて読み取りを実行しようとする。 .TP .B GLOB_MARK .\"O Append a slash to each path which corresponds to a directory. -¥Ç¥£¥ì¥¯¥È¥ê¤ËÂбþ¤¹¤ë³Æ¡¹¤Î¥Ñ¥¹¤Ë¥¹¥é¥Ã¥·¥å¤òÉղ乤롣 +ディレクトリに対応する各々のパスにスラッシュを付加する。 .TP .B GLOB_NOSORT .\"O Don't sort the returned pathnames. .\"O The only reason to do this is to save processing time. .\"O By default, the returned pathnames are sorted. -ÊÖ¤µ¤ì¤ë¥Ñ¥¹Ì¾¤Î¥½¡¼¥È¤ò¹Ô¤ï¤Ê¤¤¡£ -¥½¡¼¥È¤ò¹Ô¤ï¤Ê¤¤Íýͳ¤Ï¡¢½èÍý»þ´Ö¤òÀáÌ󤹤뤿¤á¤À¤±¤Ç¤¢¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ÊÖ¤µ¤ì¤ë¥Ñ¥¹Ì¾¤Ï¥½¡¼¥È¤µ¤ì¤ë¡£ +返されるパス名のソートを行わない。 +ソートを行わない理由は、処理時間を節約するためだけである。 +デフォルトでは、返されるパス名はソートされる。 .TP .B GLOB_DOOFFS .\"O Reserve @@ -169,10 +169,10 @@ typedef struct { .\"O .IR pglob\->pathv . .\"O The reserved slots contain NULL pointers. .I pglob->pathv -¤Îʸ»úÎó¥ê¥¹¥È¤ÎÀèƬ¤Ë +の文字列リストの先頭に .I pglob->gl_offs -¥¹¥í¥Ã¥Èʬ¤ÎÎΰè¤òͽÌ󤹤롣 -ͽÌ󤵤줿¥¹¥í¥Ã¥È¤Ë¤Ï NULL ¥Ý¥¤¥ó¥¿¤¬Æþ¤ë¡£ +スロット分の領域を予約する。 +予約されたスロットには NULL ポインタが入る。 .TP .B GLOB_NOCHECK .\"O If no pattern matches, return the original pattern. @@ -181,12 +181,12 @@ typedef struct { .\"O returns .\"O .B GLOB_NOMATCH .\"O if there are no matches. -¥Þ¥Ã¥Á¤¹¤ë¥Ñ¥¿¡¼¥ó¤¬¤Ê¤±¤ì¤Ð¡¢¸µ¤Î¥Ñ¥¿¡¼¥ó¤òÊÖ¤¹¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +マッチするパターンがなければ、元のパターンを返す。 +デフォルトでは、 .BR glob () -¤Ï¥Þ¥Ã¥Á¤¹¤ë¥Ñ¥¿¡¼¥ó¤¬¤Ê¤±¤ì¤Ð +はマッチするパターンがなければ .B GLOB_NOMATCH -¤òÊÖ¤¹¡£ +を返す。 .TP .B GLOB_APPEND .\"O Append the results of this call to the vector of results @@ -194,11 +194,11 @@ typedef struct { .\"O .BR glob (). .\"O Do not set this flag on the first invocation of .\"O .BR glob (). -¤³¤Î¸Æ¤Ó½Ð¤·¤Ç¤Î·ë²Ì¤òľÁ°¤Î +この呼び出しでの結果を直前の .BR glob () -¤Î¸Æ¤Ó½Ð¤·¤ÇÊÖ¤µ¤ì¤¿·ë²Ì¤Î¥Ù¥¯¥È¥ë¤ËÄɲ乤롣ºÇ½é¤Î +の呼び出しで返された結果のベクトルに追加する。最初の .BR glob () -¤Î¸Æ¤Ó½Ð¤·¤ÎºÝ¤Ë¤Ï¤³¤Î¥Õ¥é¥°¤òÀßÄꤷ¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ +の呼び出しの際にはこのフラグを設定してはいけない。 .TP .B GLOB_NOESCAPE .\"O Don't allow backslash (\(aq\\\(aq) to be used as an escape @@ -206,22 +206,22 @@ typedef struct { .\"O Normally, a backslash can be used to quote the following character, .\"O providing a mechanism to turn off the special meaning .\"O metacharacters. -¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å (\(aq\\\(aq) ¤ò¥¨¥¹¥±¡¼¥×ÍÑʸ»ú¤È¤·¤Æ»ÈÍѤǤ­¤Ê¤¤¡£ -Ä̾ï¤Ï¡¢¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤ò»È¤Ã¤Æ¡¢¼¡¤Ë³¤¯Ê¸»ú¤ò¥¯¥©¡¼¥È¤¹¤ë¤³¤È¤Ç¡¢ -ÆÃÊ̤ʰÕÌ£¤ò»ý¤Ä¥á¥¿¥­¥ã¥é¥¯¥¿¤ò̵¸ú¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +バックスラッシュ (\(aq\\\(aq) をエスケープ用文字として使用できない。 +通常は、バックスラッシュを使って、次に続く文字をクォートすることで、 +特別な意味を持つメタキャラクタを無効することができる。 .PP .\"O .I flags .\"O may also include any of the following, which are GNU .\"O extensions and not defined by POSIX.2: .I flags -¤Ë¤Ï°Ê²¼¤Ë¼¨¤¹¤â¤Î¤â»ØÄê¤Ç¤­¤ë¡£ -¤³¤ì¤é¤Ï GNU ¤Ç³ÈÄ¥¤µ¤ì¤¿¤â¤Î¤Ç¡¢POSIX.2 ¤Ç¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +には以下に示すものも指定できる。 +これらは GNU で拡張されたもので、POSIX.2 では定義されていない。 .TP .B GLOB_PERIOD .\"O Allow a leading period to be matched by metacharacters. .\"O By default, metacharacters can't match a leading period. -ÀèƬ¤Î¥Ô¥ê¥ª¥É¤¬¥á¥¿¥­¥ã¥é¥¯¥¿¤Ë¥Þ¥Ã¥Á¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥á¥¿¥­¥ã¥é¥¯¥¿¤ÏÀèƬ¤Î¥Ô¥ê¥ª¥É¤Ë¤Ï¥Þ¥Ã¥Á¤Ç¤­¤Ê¤¤¡£ +先頭のピリオドがメタキャラクタにマッチできるようにする。 +デフォルトでは、メタキャラクタは先頭のピリオドにはマッチできない。 .TP .B GLOB_ALTDIRFUNC .\"O Use alternative functions @@ -232,14 +232,14 @@ typedef struct { .\"O .I pglob\->gl_stat .\"O for file system access instead of the normal library .\"O functions. -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¥¢¥¯¥»¥¹¤¹¤ëºÝ¤Ë¡¢Ä̾ï¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤ÎÂå¤ï¤ê¤Ë -ÂåÂشؿô +ファイルシステムにアクセスする際に、通常のライブラリ関数の代わりに +代替関数 .IR pglob\->gl_closedir , .IR pglob\->gl_readdir , .IR pglob\->gl_opendir , .IR pglob\->gl_lstat , .I pglob\->gl_stat -¤¬ÍѤ¤¤é¤ì¤ë¡£ +が用いられる。 .TP .B GLOB_BRACE .\"O Expand @@ -256,24 +256,24 @@ typedef struct { .\"O and .\"O "bar". \fB{a,b}\fR -¤È¤¤¤¦·Á¼°¤Î +という形式の .BR csh (1) -¥¹¥¿¥¤¥ë¤Î³ç¸Ìɽ¸½¤òŸ³«¤¹¤ë¡£ -³ç¸Ìɽ¸½¤ÏÆþ¤ì»Ò¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢Î㤨¤Ð¡¢"{foo/{,cat,dog},bar}" ¤È¤¤¤¦¥Ñ¥¿¡¼¥ó¤ò -»ØÄꤷ¤¿¾ì¹ç¤ËÆÀ¤é¤ì¤ë·ë²Ì¤Ï¡¢ -4¤Ä¤Îʸ»úÎó "foo/", "foo/cat", "foo/dog", "bar" ¤Î¤½¤ì¤¾¤ì¤Ë¤Ä¤¤¤Æ +スタイルの括弧表現を展開する。 +括弧表現は入れ子にすることができる。 +したがって、例えば、"{foo/{,cat,dog},bar}" というパターンを +指定した場合に得られる結果は、 +4つの文字列 "foo/", "foo/cat", "foo/dog", "bar" のそれぞれについて .BR glob () -¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¤ÈƱ¤¸¤Ë¤Ê¤ë¡£ +を呼び出した場合と同じになる。 .TP .B GLOB_NOMAGIC .\"O If the pattern contains no metacharacters .\"O then it should be returned as the sole matching word, .\"O even if there is no file with that name. -¥Ñ¥¿¡¼¥ó¤Ë¥á¥¿¥­¥ã¥é¥¯¥¿¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -¥Þ¥Ã¥Á·ë²Ì¤È¤·¤Æ»ØÄꤵ¤ì¤¿¥Ñ¥¿¡¼¥ó¤À¤±¤òÊÖ¤¹¡£ -¥Ñ¥¿¡¼¥ó¤Ç»ØÄꤵ¤ì¤¿Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢ -¤½¤Î¥Ñ¥¿¡¼¥ó¤¬ÊÖ¤µ¤ì¤ë¡£ +パターンにメタキャラクタが含まれていない場合、 +マッチ結果として指定されたパターンだけを返す。 +パターンで指定された名前のファイルが存在しない場合であっても、 +そのパターンが返される。 .TP .B GLOB_TILDE .\"O Carry out tilde expansion. @@ -286,13 +286,13 @@ typedef struct { .\"O of that user. .\"O If the username is invalid, or the home directory cannot be .\"O determined, then no substitution is performed. -¥Á¥ë¥À¤ÎŸ³«¤ò¹Ô¤¦¡£ -¥Á¥ë¥À (\(aq~\(aq) ¤¬¥Ñ¥¿¡¼¥óÆâ¤ÎÍ£°ì¤Îʸ»ú¤Î¾ì¹ç¤«¡¢ÀèƬ¤Î¥Á¥ë¥À¤Îľ¸å¤Îʸ»ú¤¬ -¥¹¥é¥Ã¥·¥å (\(aq/\(aq) ¤Î¾ì¹ç¡¢¥Á¥ë¥À¤ò¸Æ¤Ó½Ð¤·¼Ô¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤ÇÃÖ´¹¤¹¤ë¡£ -ÀèƬ¤Î¥Á¥ë¥À¤Ë¥æ¡¼¥¶Ì¾¤¬Â³¤¯¾ì¹ç (Î㤨¤Ð "~andrea/bin")¡¢ -¥Á¥ë¥À¤È¥æ¡¼¥¶Ì¾¤ò¤½¤Î¥æ¡¼¥¶¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤ÇÃÖ´¹¤¹¤ë¡£ -¥æ¡¼¥¶Ì¾¤¬Ìµ¸ú¤Ê¾ì¹ç¤ä¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤¬·èÄê¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¡¢ -ÃÖ´¹¤Ï¼Â¹Ô¤µ¤ì¤Ê¤¤¡£ +チルダの展開を行う。 +チルダ (\(aq~\(aq) がパターン内の唯一の文字の場合か、先頭のチルダの直後の文字が +スラッシュ (\(aq/\(aq) の場合、チルダを呼び出し者のホームディレクトリで置換する。 +先頭のチルダにユーザ名が続く場合 (例えば "~andrea/bin")、 +チルダとユーザ名をそのユーザのホームディレクトリで置換する。 +ユーザ名が無効な場合やホームディレクトリが決定できない場合は、 +置換は実行されない。 .TP .B GLOB_TILDE_CHECK .\"O This provides behavior similar to that of @@ -304,17 +304,17 @@ typedef struct { .\"O returns .\"O .BR GLOB_NOMATCH .\"O to indicate an error. -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È +このフラグを指定すると .B GLOB_TILDE -¤ÈƱÍͤο¶Éñ¤¤¤ò¤¹¤ë¡£ +と同様の振舞いをする。 .B GLOB_TILDE -¤È¤Î°ã¤¤¤Ï¡¢¥æ¡¼¥¶Ì¾¤¬Ìµ¸ú¤À¤Ã¤¿¾ì¹ç¤ä -¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤¬·èÄê¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¡¢ -¥Ñ¥¿¡¼¥ó¼«¿È¤ò»ÈÍѤ¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ +との違いは、ユーザ名が無効だった場合や +ホームディレクトリが決定できなかった場合に、 +パターン自身を使用するのではなく、 .BR glob () -¤¬¥¨¥é¡¼¤ò¼¨¤¹ +がエラーを示す .B GLOB_NOMATCH -¤òÊÖ¤¹¤³¤È¤Ç¤¢¤ë¡£ +を返すことである。 .TP .B GLOB_ONLYDIR .\"O This is a @@ -328,15 +328,15 @@ typedef struct { .\"O are directories. .\"O (The purpose of this flag is merely to optimize performance when .\"O the caller is interested only in directories.) -¤³¤Î¥Õ¥é¥°¤Ï¡¢ +このフラグは、 .BR glob () -¤ËÂФ¹¤ë¡Ö¥Ò¥ó¥È¡×¤Ç¤¢¤ê¡¢ -¸Æ¤Ó½Ð¤·Â¦¤¬¥Ñ¥¿¡¼¥ó¤Ë¥Þ¥Ã¥Á¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤·¤«¶½Ì£¤¬¤Ê¤¤¤³¤È¤òÃΤ餻¤ë¡£ -¼ÂÁõ¤Ë¤ª¤¤¤Æ¥Õ¥¡¥¤¥ë¤Î¼ïÊ̾ðÊó¤ò´Êñ¤Ë·èÄê¤Ç¤­¤ë¾ì¹ç¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤ -¥Õ¥¡¥¤¥ë¤Ï¸Æ¤Ó½Ð¤·Â¦¤ËÊÖ¤µ¤ì¤Ê¤¤¡£¤·¤«¤·¤Ê¤¬¤é¡¢¸Æ¤Ó½Ð¤·Â¦¤Ç¤Ï¡¢ÊÖ¤µ¤ì¤¿ -¥Õ¥¡¥¤¥ë¥ê¥¹¥È¤¬¥Ç¥£¥ì¥¯¥È¥ê¤«¤É¤¦¤«¤ò³Îǧ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -(¤³¤Î¥Õ¥é¥°¤¬Â¸ºß¤¹¤ë¤Î¤Ï¡¢¸Æ¤Ó½Ð¤·Â¦¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤·¤«¶½Ì£¤¬¤Ê¤¤ºÝ¤Ë -À­Ç½¤òºÇŬ²½¤¹¤ëÌÜŪ¤Î¤¿¤á¤À¤±¤Ç¤¢¤ë¡£) +に対する「ヒント」であり、 +呼び出し側がパターンにマッチするディレクトリにしか興味がないことを知らせる。 +実装においてファイルの種別情報を簡単に決定できる場合は、ディレクトリでない +ファイルは呼び出し側に返されない。しかしながら、呼び出し側では、返された +ファイルリストがディレクトリかどうかを確認しなければならない。 +(このフラグが存在するのは、呼び出し側がディレクトリにしか興味がない際に +性能を最適化する目的のためだけである。) .PP .\"O If .\"O .I errfunc @@ -353,17 +353,17 @@ typedef struct { .\"O or .\"O .BR stat (2). .I errfunc -¤¬ NULL ¤Ç¤Ê¤±¤ì¤Ð¡¢ -¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Ë¤Ï´Ø¿ô +が NULL でなければ、 +エラーが起こった場合には関数 .I errfunc -¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£´Ø¿ô¤Î°ú¿ô¤Ë¤Ï¡¢¼ºÇÔ¤·¤¿¥Ñ¥¹Ì¾ +が呼び出される。関数の引数には、失敗したパス名 .I epath -¤È +と .I errno .RB ( opendir (3), .BR readdir (3), .BR stat (2). -¤Î¤¤¤º¤ì¤«¤Ë¤è¤Ã¤Æ¥»¥Ã¥È¤µ¤ì¤¿ÃÍ) ¤¬Í¿¤¨¤é¤ì¤ë¡£ +のいずれかによってセットされた値) が与えられる。 .\"O If .\"O .I errfunc .\"O returns nonzero, or if @@ -373,13 +373,13 @@ typedef struct { .\"O will terminate after the call to .\"O .IR errfunc . .I errfunc -¤¬ 0 °Ê³°¤ÎÃͤòÊÖ¤¹¤«¤â¤·¤¯¤Ï +が 0 以外の値を返すかもしくは .B GLOB_ERR -¤¬¥»¥Ã¥È¤µ¤ì¤¿¾ì¹ç +がセットされた場合 .BR glob () -¤Ï +は .I errfunc -¤Î¸Æ¤Ó½Ð¤·¸å¤Ë½ªÎ»¤¹¤ë¡£ +の呼び出し後に終了する。 .PP .\"O Upon successful return, .\"O .I pglob\->gl_pathc @@ -387,12 +387,12 @@ typedef struct { .\"O .I pglob\->gl_pathv .\"O contains a pointer to the list of pointers to matched pathnames. .\"O The list of pointers is terminated by a NULL pointer. -¸Æ¤Ó½Ð¤·¤¬À®¸ù¤·¤ÆÌá¤Ã¤¿¾ì¹ç +呼び出しが成功して戻った場合 .I pglob\->gl_pathc -¤Ë¤Ï¥Þ¥Ã¥Á¤·¤¿¥Ñ¥¹Ì¾¤¬´Þ¤Þ¤ì¡¢ +にはマッチしたパス名が含まれ、 .I pglob\->gl_pathv -¤Ï¥Þ¥Ã¥Á¤·¤¿¥Ñ¥¹Ì¾¤Ø¤Î¥Ý¥¤¥ó¥¿¤Î¥ê¥¹¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤È¤Ê¤ë¡£ -¥Ý¥¤¥ó¥¿¤Î¥ê¥¹¥È¤Ï NULL ¥Ý¥¤¥ó¥¿¤Ç½ªÃ¼¤µ¤ì¤ë¡£ +はマッチしたパス名へのポインタのリストへのポインタとなる。 +ポインタのリストは NULL ポインタで終端される。 .PP .\"O It is possible to call .\"O .BR glob () @@ -403,51 +403,51 @@ typedef struct { .\"O .I flags .\"O on the second and later invocations. .BR glob () -¤ò²¿ÅÙ¤«Â³¤±¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡£¤½¤ÎºÝ2²óÌܰʹߤθƤӽФ·¤Ç¤Ï +を何度か続けて呼び出すことができる。その際2回目以降の呼び出しでは .B GLOB_APPEND -¥Õ¥é¥°¤¬ +フラグが .I flags -¤ËÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +に設定されていなければならない。 .PP .\"O As a GNU extension, .\"O .I pglob\->gl_flags .\"O is set to the flags specified, \fBor\fRed with .\"O .B GLOB_MAGCHAR .\"O if any metacharacters were found. -GNU ¤Î³ÈÄ¥¤È¤·¤Æ¡¢ +GNU の拡張として、 .I pglob\->gl_flags -¤Ë¤Ï»ØÄꤷ¤¿¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£¤â¤·°ì¤Ä¤Ç¤â¥á¥¿¥­¥ã¥é¥¯¥¿¤¬¸«ÉÕ¤«¤ì¤Ð -¤³¤Î¥Õ¥é¥°¤È +には指定したフラグがセットされる。もし一つでもメタキャラクタが見付かれば +このフラグと .B GLOB_MAGCHAR -¤È¤Î \fBOR\fR ¤ò¼è¤Ã¤¿·ë²Ì¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +との \fBOR\fR を取った結果がセットされる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On successful completion, .\"O .BR glob () .\"O returns zero. .\"O Other possible returns are: -¸Æ¤Ó½Ð¤·¤¬À®¸ù¤·¤Æ´°Î»¤¹¤ë¤È +呼び出しが成功して完了すると .BR glob () -¤Ï 0 ¤òÊÖ¤¹¡£ -¤½¤ì°Ê³°¤ÎÊÖ¤êÃͤϰʲ¼¤ÎÄ̤ê: +は 0 を返す。 +それ以外の返り値は以下の通り: .TP .B GLOB_NOSPACE .\"O for running out of memory, -¥á¥â¥ê¤ò»È¤¤²Ì¤¿¤·¤¿ +メモリを使い果たした .TP .B GLOB_ABORTED .\"O for a read error, and -Æɤ߼è¤ê¥¨¥é¡¼ +読み取りエラー .TP .B GLOB_NOMATCH .\"O for no found matches. -°ì¤Ä¤â¥Þ¥Ã¥Á¤·¤Ê¤«¤Ã¤¿ +一つもマッチしなかった .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.2, POSIX.1-2001. .\"O .SH BUGS .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The structure elements .\"O .I gl_pathc .\"O and @@ -458,17 +458,17 @@ POSIX.2, POSIX.1-2001. .\"O but are declared as .\"O .I int .\"O in libc4, libc5 and glibc 2.0. -glibc 2.1 ¤Ç¤Ï¡¢ +glibc 2.1 では、 .I gl_pathc -¤È +と .I gl_offs -¤Ï POSIX.2 ¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë +は POSIX.2 で指定されているように .I size_t -¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤ë¡£ -libc4, libc5, glibc 2.0 ¤Ç¤Ï¡¢ +として宣言されている。 +libc4, libc5, glibc 2.0 では、 .I int -¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ¥Ð¥° +として宣言されている。 +.SH バグ .\"O .BR glob () .\"O function may fail due to failure of underlying function calls, such as .\"O .BR malloc (3) @@ -477,16 +477,16 @@ libc4, libc5, glibc 2.0 .\"O These will store their error code in .\"O .IR errno . .BR glob () -´Ø¿ô¤Ï¤½¤ÎÃæ¤Ç¸Æ¤Ó½Ð¤·¤Æ¤¤¤ë +関数はその中で呼び出している .BR malloc (3) -¤ä +や .BR opendir (3) -¤Ê¤É¤Î´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤Ç¼ºÇÔ¤¬µ¯¤³¤ë¤È¼ºÇÔ¤¹¤ë¡£ -¤³¤ì¤Ë¤è¤ê +などの関数の呼び出しで失敗が起こると失敗する。 +これにより .I errno -¤Ë¤½¤Î¥¨¥é¡¼¥³¡¼¥É¤¬Æþ¤ë¡£ +にそのエラーコードが入る。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O One example of use is the following code, which simulates typing .\"O .sp .\"O .in +4n @@ -494,13 +494,13 @@ libc4, libc5, glibc 2.0 .\"O .in .\"O .sp .\"O in the shell: -»ÈÍÑË¡¤Î°ìÎã¤ò°Ê²¼¤Ë¼¨¤¹¡£°Ê²¼¤Ï¥·¥§¥ë¤Ç +使用法の一例を以下に示す。以下はシェルで .sp .in +4n ls \-l *.c ../*.c .in .sp -¤ò¥¿¥¤¥×¤·¤¿¾ì¹ç¤ò¥·¥ß¥å¥ì¡¼¥È¤·¤Æ¤¤¤ë¡£ +をタイプした場合をシミュレートしている。 .nf .in +4n @@ -515,7 +515,7 @@ execvp("ls", &globbuf.gl_pathv[0]); .in .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ls (1), .BR sh (1), .BR stat (2), diff --git a/draft/man3/gnu_get_libc_version.3 b/draft/man3/gnu_get_libc_version.3 index 40f7b823..44f2cb2b 100644 --- a/draft/man3/gnu_get_libc_version.3 +++ b/draft/man3/gnu_get_libc_version.3 @@ -27,27 +27,27 @@ .\" .TH GNU_GET_LIBC_VERSION 3 2010-09-10 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O gnu_get_libc_version, gnu_get_libc_release \- get glibc version and release -gnu_get_libc_version, gnu_get_libc_release \- glibc ¤Î¥Ð¡¼¥¸¥ç¥ó¤È -¥ê¥ê¡¼¥¹¾õÂÖ¤ò¼èÆÀ¤¹¤ë +gnu_get_libc_version, gnu_get_libc_release \- glibc のバージョンと +リリース状態を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .B const char *gnu_get_libc_version(void); .B const char *gnu_get_libc_release(void); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The function .\"O .BR gnu_get_libc_version () .\"O returns a string that identifies the glibc version available on the system. .BR gnu_get_libc_version () -´Ø¿ô¤Ï¡¢¥·¥¹¥Æ¥à¤ÇÍøÍѲÄǽ¤Ê glibc ¤Î¥Ð¡¼¥¸¥ç¥ó¤òÆÃÄꤹ¤ëʸ»úÎó¤òÊÖ¤¹¡£ +関数は、システムで利用可能な glibc のバージョンを特定する文字列を返す。 .\"O The function .\"O .BR gnu_get_libc_release () @@ -56,22 +56,22 @@ gnu_get_libc_version, gnu_get_libc_release \- glibc .\"O This will be a string such as .\"O .IR "stable" . .BR gnu_get_libc_release () -´Ø¿ô¤Ï¡¢¥·¥¹¥Æ¥à¤ÇÍøÍѲÄǽ¤Ê glibc ¥Ð¡¼¥¸¥ç¥ó¤Î¥ê¥ê¡¼¥¹¾õÂÖ¤ò¼¨¤¹ -ʸ»úÎó¤òÊÖ¤¹¡£ +関数は、システムで利用可能な glibc バージョンのリリース状態を示す +文字列を返す。 .I "stable" -¤È¤¤¤Ã¤¿Ê¸»úÎó¤¬ÊÖ¤µ¤ì¤ë¡£ +といった文字列が返される。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O These functions are glibc-specific. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¸ÇÍ­¤Ç¤¢¤ë¡£ +これらの関数は glibc 固有である。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O When run, the program below will produce output such as the following: -²¼µ­¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ê½ÐÎϤ¬ÆÀ¤é¤ì¤ë¡£ +下記のプログラムを実行すると、次のような出力が得られる。 .in +4n .nf @@ -81,7 +81,7 @@ GNU libc release: stable .fi .in .\"O .SS Program source -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -97,5 +97,5 @@ main(int argc, char *argv[]) } .fi .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR confstr (3) diff --git a/draft/man3/grantpt.3 b/draft/man3/grantpt.3 index 3e1b37ff..3453681d 100644 --- a/draft/man3/grantpt.3 +++ b/draft/man3/grantpt.3 @@ -6,42 +6,42 @@ .\" Translated Tue Jul 8 01:56:27 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: pseudoterminal µ¼»÷üËö -.\"WORD: pseudotty µ¼»÷üËö +.\"WORD: pseudoterminal 擬似端末 +.\"WORD: pseudotty 擬似端末 .\" .TH GRANTPT 3 2008-06-14 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O grantpt \- grant access to the slave pseudoterminal -.SH ̾Á° -grantpt \- ¥¹¥ì¡¼¥Öµ¼»÷üËö¤Ø¤Î¥¢¥¯¥»¥¹¤òµö²Ä¤¹¤ë +.SH 名前 +grantpt \- スレーブ擬似端末へのアクセスを許可する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _XOPEN_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "int grantpt(int " fd ");" .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR grantpt () .\"O function changes the mode and owner of the slave pseudoterminal device .\"O corresponding to the master pseudoterminal referred to by .\"O .IR fd . .BR grantpt () -´Ø¿ô¤Ï¡¢ +関数は、 .I fd -¤Ç»²¾È¤µ¤ì¤¿¥Þ¥¹¥¿µ¼»÷üËö¤ËÂбþ¤¹¤ë¥¹¥ì¡¼¥Öµ¼»÷üËö¥Ç¥Ð¥¤¥¹ -¤Î¥â¡¼¥É¤È½êÍ­¼Ô¤òÊѹ¹¤¹¤ë¡£ +で参照されたマスタ擬似端末に対応するスレーブ擬似端末デバイス +のモードと所有者を変更する。 .\"O The user ID of the slave is set to the real UID of the calling process. .\"O The group ID is set to an unspecified value (e.g., \fItty\fP). .\"O The mode of the slave is set to 0620 (crw\-\-w\-\-\-\-). -¥¹¥ì¡¼¥Ö¤Î¥æ¡¼¥¶ID ¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â UID ¤ËÀßÄꤵ¤ì¤ë¡£ -¥°¥ë¡¼¥×ID ¤È¤·¤ÆÀßÄꤵ¤ì¤ëÃͤϵ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤ (Î㤨¤Ð \fItty\fP ¤Ë¤Ê¤ë)¡£ -¥¹¥ì¡¼¥Ö¤Î¥â¡¼¥É¤Ï 0620 (crw\-\-w\-\-\-\-) ¤ËÀßÄꤵ¤ì¤ë¡£ +スレーブのユーザID は呼び出したプロセスの実 UID に設定される。 +グループID として設定される値は規定されていない (例えば \fItty\fP になる)。 +スレーブのモードは 0620 (crw\-\-w\-\-\-\-) に設定される。 .PP .\"O The behavior of .\"O .BR grantpt () @@ -49,68 +49,68 @@ grantpt \- .\"O .B SIGCHLD .\"O signals. .B SIGCHLD -¥·¥°¥Ê¥ë¤òÊ᪤¹¤ë¤¿¤á¤Ë¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Î +シグナルを捕捉するためにシグナル・ハンドラが設定されている場合の .BR grantpt () -¤ÎÆ°ºî¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +の動作は規定されていない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O When successful, .\"O .BR grantpt () .\"O returns 0. .\"O Otherwise, it returns \-1 and sets .\"O .I errno .\"O appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR grantpt () -¤Ï 0 ¤òÊÖ¤¹¡£¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。そうでない場合、\-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +に適切な値がセットされる。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O The corresponding slave pseudoterminal could not be accessed. -Âбþ¤¹¤ë¥¹¥ì¡¼¥Öµ¼»÷üËö¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +対応するスレーブ擬似端末にアクセスできなかった。 .TP .B EBADF .\"O The .\"O .I fd .\"O argument is not a valid open file descriptor. -°ú¤­¿ô +引き数 .I fd -¤¬Í­¸ú¤Ê¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なオープンされたファイル・ディスクリプタでない。 .TP .B EINVAL .\"O The .\"O .I fd .\"O argument is valid but not associated with a master pseudoterminal. -°ú¤­¿ô +引き数 .I fd -¤ÏÍ­¸ú¤À¤¬¡¢¥Þ¥¹¥¿µ¼»÷üËö¤ËÂбþ¤¹¤ë¤â¤Î¤Ç¤Ï¤Ê¤¤¡£ +は有効だが、マスタ擬似端末に対応するものではない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR grantpt () .\"O is provided in glibc since version 2.1. .BR grantpt () -¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +は、バージョン 2.1 以降の glibc で提供されている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH È÷¹Í +.SH 備考 .\"O This is part of the UNIX 98 pseudoterminal support, see .\"O .BR pts (4). .\"O Many systems implement this function via a set-user-ID helper binary .\"O called "pt_chown". .\"O With Linux devpts no such helper binary is required. -¤³¤ì¤Ï UNIX 98 µ¼»÷üËö (pseudoterminal) »ÅÍͤΰìÉô¤Ç¤¢¤ë¡£ +これは UNIX 98 擬似端末 (pseudoterminal) 仕様の一部である。 .BR pts (4) -¤ò»²¾È¤Î¤³¤È¡£ -¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤Î´Ø¿ô¤Ï "pt_chown" ¤È¸Æ¤Ð¤ì¤ë set-user-ID ¤µ¤ì¤¿ -Êä½õ¥Ð¥¤¥Ê¥ê¤òÍѤ¤¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -Linux ¤Î devpts ¤Ç¤Ï¡¢¤³¤Î¤è¤¦¤ÊÊä½õ¥Ð¥¤¥Ê¥ê¤òɬÍפȤ·¤Ê¤¤¡£ +を参照のこと。 +多くのシステムでは、この関数は "pt_chown" と呼ばれる set-user-ID された +補助バイナリを用いて実装されている。 +Linux の devpts では、このような補助バイナリを必要としない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR open (2), .BR posix_openpt (3), .BR ptsname (3), diff --git a/draft/man3/gsignal.3 b/draft/man3/gsignal.3 index 74fb2404..2c2176c6 100644 --- a/draft/man3/gsignal.3 +++ b/draft/man3/gsignal.3 @@ -26,15 +26,15 @@ .\" Japanese Version Copyright (c) 2002 Akihiro MOTOKI, all rights reserved. .\" Translated Mon Feb 2 2003 by Akihiro MOTOKI .\" -.\"WORD: broken Àµ¤·¤¯¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤ +.\"WORD: broken 正しく実装されていない .\" .TH GSIGNAL 3 2007-07-26 "" "Linux Programmer's Manual" .\"O .SH NAME .\"O gsignal, ssignal \- software signal facility -.SH ̾Á° -gsignal, ssignal \- ¥½¥Õ¥È¥¦¥§¥¢¡¦¥·¥°¥Ê¥ëµ¡Ç½ +.SH 名前 +gsignal, ssignal \- ソフトウェア・シグナル機能 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -48,33 +48,33 @@ gsignal, ssignal \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR gsignal (), .BR ssignal (): _SVID_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Don't use these functions under Linux. -Linux ¤Ç¤Ï¤³¤ì¤é¤Î´Ø¿ô¤ò»ÈÍѤ·¤Ê¤¤¤³¤È¡£ +Linux ではこれらの関数を使用しないこと。 .\"O Due to a historical mistake, under Linux these functions are .\"O aliases for .\"O .BR raise (3) .\"O and .\"O .BR signal (2), .\"O respectively. -²áµî¤Ë´Ö°ã¤¤¤¬¤¢¤ê¡¢Linux ¤Ç¤Ï +過去に間違いがあり、Linux では .BR gsignal () -¤È +と .BR ssignal () -¤Ï¤½¤ì¤¾¤ì +はそれぞれ .BR raise (3) -¤È +と .BR signal (2) -¤ÎÊÌ̾¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +の別名になっている。 .LP .\"O Elsewhere, on System V-like systems, these functions implement .\"O software signaling, entirely independent of the classical @@ -91,23 +91,23 @@ Linux .\"O .BR gsignal (), .\"O and returns the previous such action or .\"O .BR SIG_DFL . -°ìÊý¡¢System V É÷¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ç¡¢ -½¾Íè¤Î +一方、System V 風のシステムでは、これらの関数で、 +従来の .BR signal (2) -¤ä +や .BR kill (2) -¤Î´Ø¿ô·²¤È¤Ï´°Á´¤ËÆÈΩ¤Ê¡¢ -¥½¥Õ¥È¥¦¥§¥¢¡¦¥·¥°¥Ê¥ê¥ó¥°¤ò¼Â¸½¤·¤Æ¤¤¤ë¡£ +の関数群とは完全に独立な、 +ソフトウェア・シグナリングを実現している。 .BR ssignal () -´Ø¿ô¤Ï¡¢ÈÖ¹æ +関数は、番号 .I signum -¤Î¥½¥Õ¥È¥¦¥§¥¢¡¦¥·¥°¥Ê¥ë¤¬ +のソフトウェア・シグナルが .BR gsignal () -´Ø¿ô¤ò»È¤Ã¤ÆȯÀ¸¤µ¤ì¤¿»þ¤Ë¤È¤ë¤Ù¤­¥¢¥¯¥·¥ç¥ó¤òÄêµÁ¤¹¤ë¡£ +関数を使って発生された時にとるべきアクションを定義する。 .BR gsignal () -¤ÎÊÖ¤êÃͤϡ¢°ì¤ÄÁ°¤Ë»ØÄꤵ¤ì¤Æ¤¤¤¿¥¢¥¯¥·¥ç¥ó¡¢¤â¤·¤¯¤Ï +の返り値は、一つ前に指定されていたアクション、もしくは .B SIG_DFL -¤Ç¤¢¤ë¡£ +である。 .\"O The function .\"O .BR gsignal () .\"O does the following: if no action (or the action @@ -131,40 +131,40 @@ Linux .\"O .I signum .\"O varies (often 1-15 or 1-17). .BR gsignal () -¤Ï°Ê²¼¤Î¤è¤¦¤ÊÆ°ºî¤ò¹Ô¤¦: +は以下のような動作を行う: .I signum -¤ËÂФ·¤Æ¥¢¥¯¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢¥¢¥¯¥·¥ç¥ó +に対してアクションが指定されていないか、アクション .B SIG_DFL -¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢²¿¤â¤»¤º¤Ë 0 ¤òÊÖ¤¹¡£ +が指定されていた場合、何もせずに 0 を返す。 .I signum -¤ËÂФ·¤Æ ¥¢¥¯¥·¥ç¥ó +に対して アクション .B SIG_IGN -¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢²¿¤â¤»¤º¤Ë 1 ¤òÊÖ¤¹¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¥¢¥¯¥·¥ç¥ó¤ò +が指定されていた場合、何もせずに 1 を返す。 +それ以外の場合、アクションを .B SIG_DFL -¤Ë¥ê¥»¥Ã¥È¤·¡¢°ú¤­¿ô¤Ë +にリセットし、引き数に .I signum -¤ò»ØÄꤷ¤Æ¥¢¥¯¥·¥ç¥ó´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤Æ¡¢¥¢¥¯¥·¥ç¥ó´Ø¿ô¤ÎÊÖ¤êÃͤòÊÖ¤¹¡£ +を指定してアクション関数を呼び出して、アクション関数の返り値を返す。 .I signum -¤¬¤È¤êÆÀ¤ëÃͤÎÈϰϤϼÂÁõ¤Ë¤è¤ê°Û¤Ê¤ë (¿¤¯¤Î¾ì¹ç 1¡Á15 ¤« 1¡Á17 ¤Ç¤¢¤ë)¡£ +がとり得る値の範囲は実装により異なる (多くの場合 1〜15 か 1〜17 である)。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These functions are available under AIX, DG/UX, HP-UX, SCO, Solaris, Tru64. .\"O They are called obsolete under most of these systems, and are .\"O broken under Linux libc and glibc. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢AIX, DG/UX, HP-UX, SCO, Solaris, Tru64 ¤Ç»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¤Î¤Û¤È¤ó¤É¤ÇÇѻߤµ¤ì¤¿¤³¤È¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢ -Linux ¤Î libc ¤ª¤è¤Ó glibc ¤Ç¤ÏÀµ¤·¤¯¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +これらの関数は、AIX, DG/UX, HP-UX, SCO, Solaris, Tru64 で使用可能である。 +これらのシステムのほとんどで廃止されたことになっており、 +Linux の libc および glibc では正しく実装されていない。 .\"O Some systems also have .\"O .BR gsignal_r () .\"O and .\"O .BR ssignal_r (). .BR gsignal_r () -¤È +と .BR ssignal_r () -¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ +が実装されているシステムもある。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR kill (2), .BR signal (2), .BR raise (3) diff --git a/draft/man3/hash.3 b/draft/man3/hash.3 index 3014ac65..afb2fde7 100644 --- a/draft/man3/hash.3 +++ b/draft/man3/hash.3 @@ -38,40 +38,40 @@ .\" Proofed Tue Aug 17 1999 by NAKANO Takeo .\" Updated 2008-02-10, Akihiro MOTOKI , LDP v2.77 .\" -.\"WORD: access method ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É -.\"WORD: bucket ¥Ð¥±¥Ã¥È +.\"WORD: access method アクセスメソッド +.\"WORD: bucket バケット .\" .TH HASH 3 1994-08-18 "" "Linux Programmer's Manual" .UC 7 -.SH ̾Á° +.SH 名前 .\"O hash \- hash database access method -hash \- hash ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤Î¥¢¥¯¥»¥¹¥á¥½¥Ã¥É -.SH ½ñ¼° +hash \- hash データベースへのアクセスメソッド +.SH 書式 .nf .ft B #include #include .ft R .fi -.SH ÀâÌÀ +.SH 説明 .\"O The routine .\"O .BR dbopen (3) .\"O is the library interface to database files. .\"O One of the supported file formats is hash files. -¥ë¡¼¥Á¥ó +ルーチン .BR dbopen (3) -¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥é¥¤¥Ö¥é¥ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¢¤ë¡£ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¤Ò¤È¤Ä¤Ë hash ¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¡£ +はデータベースファイルに対するライブラリインターフェースである。 +サポートされているファイルフォーマットのひとつに hash ファイルがある。 .\"O The general description of the database access methods is in .\"O .BR dbopen (3), .\"O this manual page describes only the hash specific information. -¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤Î¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ë´Ø¤¹¤ë°ìÈÌŪ¤Êµ­½Ò¤Ï +データベースへのアクセスメソッドに関する一般的な記述は .BR dbopen (3) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Ï hash ÆÃÍ­¤Î¾ðÊó¤Ë¤Ä¤¤¤Æ¤Î¤ßµ­½Ò¤¹¤ë¡£ +に書かれている。 +このマニュアルページでは hash 特有の情報についてのみ記述する。 .PP .\"O The hash data structure is an extensible, dynamic hashing scheme. -hash ¥Ç¡¼¥¿¹½Â¤¤Ï¡¢³ÈÄ¥²Äǽ¤ÊưŪ¥Ï¥Ã¥·¥å¥¹¥­¡¼¥à¤Ç¤¢¤ë¡£ +hash データ構造は、拡張可能な動的ハッシュスキームである。 .PP .\"O The access method specific data structure provided to .\"O .BR dbopen (3) @@ -79,9 +79,9 @@ hash .\"O .I .\"O include file as follows: .BR dbopen (3) -¤ËÅϤµ¤ì¤ë hash ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤ËÆÃÍ­¤Î¥Ç¡¼¥¿¹½Â¤ÂΤϡ¢ +に渡される hash アクセスメソッドに特有のデータ構造体は、 .I -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +インクルードファイルで以下のように定義されている。 .in +4n .nf @@ -97,80 +97,80 @@ typedef struct { .in .PP .\"O The elements of this structure are as follows: -¤³¤Î¹½Â¤ÂΤÎÍ×ÁǤò°Ê²¼¤Ë¼¨¤¹¡£ +この構造体の要素を以下に示す。 .TP 10 .I bsize .\"O defines the hash table bucket size, and is, by default, 256 bytes. .\"O It may be preferable to increase the page size for disk-resident tables .\"O and tables with large data items. -hash ¥Æ¡¼¥Ö¥ë¥Ð¥±¥Ã¥È (table bucket) ¤Î¥µ¥¤¥º¤òÄêµÁ¤¹¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 256 ¥Ð¥¤¥È¤Ç¤¢¤ë¡£ -¥Ç¥£¥¹¥¯¤ËÃÖ¤«¤ì¤ë¥Æ¡¼¥Ö¥ë¤ä¥Ç¡¼¥¿¥¢¥¤¥Æ¥à¤¬Â礭¤¤¥Æ¡¼¥Ö¥ë¤Ç¤Ï -¥Ú¡¼¥¸¥µ¥¤¥º¤òÂ礭¤¯¤¹¤ë¤Û¤¦¤¬Îɤ¤¤À¤í¤¦¡£ +hash テーブルバケット (table bucket) のサイズを定義する。 +デフォルトは 256 バイトである。 +ディスクに置かれるテーブルやデータアイテムが大きいテーブルでは +ページサイズを大きくするほうが良いだろう。 .TP .I ffactor .\"O indicates a desired density within the hash table. .\"O It is an approximation of the number of keys allowed to accumulate in any .\"O one bucket, determining when the hash table grows or shrinks. .\"O The default value is 8. -¥æ¡¼¥¶¤¬Ë¾¤à hash ¥Æ¡¼¥Ö¥ëÃæ¤ÎÌ©Å٤Ǥ¢¤ë¡£ -¤³¤ì¤Ï¤½¤ì¤¾¤ì¤Î¥Ð¥±¥Ã¥È¤Ë³ÊǼ¤Ç¤­¤ë¥­¡¼¤Î³µ¿ô¤Ç¤¢¤ê¡¢ -hash ¥Æ¡¼¥Ö¥ë¤ò³ÈÂ硦½Ì¾®¤òºîÍѤ¹¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 8 ¤Ç¤¢¤ë¡£ +ユーザが望む hash テーブル中の密度である。 +これはそれぞれのバケットに格納できるキーの概数であり、 +hash テーブルを拡大・縮小を作用する。 +デフォルトは 8 である。 .TP .I nelem .\"O is an estimate of the final size of the hash table. .\"O If not set or set too low, hash tables will expand gracefully as keys .\"O are entered, although a slight performance degradation may be noticed. .\"O The default value is 1. -hash ¥Æ¡¼¥Ö¥ë¤ÎºÇ½ª¥µ¥¤¥º¤òÂç¤Þ¤«¤Ë¸«ÀѤâ¤Ã¤¿ÃͤǤ¢¤ë¡£ -¤³¤ÎÃͤ¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¤ê¡¢¤¢¤Þ¤ê¤ËÄ㤯¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢ -hash ¥Æ¡¼¥Ö¥ë¤Ï¥­¡¼¤¬Æþ¤Ã¤Æ¤¯¤ë¤Ë±þ¤¸¤Æ³ÈÄ¥¤µ¤ì¤ë¡£ -¤·¤«¤·¾¯¤·¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤¬ (¤ª¤½¤é¤¯µ¤ÉÕ¤¯ÄøÅÙ¤Ë) Íî¤Á¤ë¡£ -¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 1 ¤Ç¤¢¤ë¡£ +hash テーブルの最終サイズを大まかに見積もった値である。 +この値がセットされていなかったり、あまりに低くセットされていると、 +hash テーブルはキーが入ってくるに応じて拡張される。 +しかし少しパフォーマンスが (おそらく気付く程度に) 落ちる。 +デフォルト値は 1 である。 .TP .I cachesize .\"O is the suggested maximum size, in bytes, of the memory cache. .\"O This value is .\"O .IR "only advisory" , .\"O and the access method will allocate more memory rather than fail. -¥á¥â¥ê¥­¥ã¥Ã¥·¥å¤ÎºÇÂçÃÍ (¥Ð¥¤¥Èñ°Ì) ¤Î»²¹ÍÃÍ¡£ -¤³¤ÎÃÍ¤Ï -.BR ¤¢¤¯¤Þ¤Ç»²¹Í¤Ç¤¢¤ê ¡¢ -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ï¤³¤ÎÃͤò±Û¤¨¤¿¥á¥â¥ê¤Î³ä¤êÅö¤Æ¤ËÀ®¸ù¤¹¤ë¤³¤È¤â¤¢¤ë¡£ +メモリキャッシュの最大値 (バイト単位) の参考値。 +この値は +.BR あくまで参考であり 、 +アクセスメソッドはこの値を越えたメモリの割り当てに成功することもある。 .TP .I hash .\"O is a user-defined hash function. .\"O Since no hash function performs equally well on all possible data, the .\"O user may find that the built-in hash function does poorly on a particular .\"O data set. -¤Ï¥æ¡¼¥¶¡¼ÄêµÁ¤Î hash ´Ø¿ô¤Ç¤¢¤ë¡£ -Á´¤Æ¤Î¥Ç¡¼¥¿¤ËÂФ·¤Æ¤¦¤Þ¤¯ºîÍѤ¹¤ë hash ´Ø¿ô¤È¸À¤¦¤Î¤Ï¤Ê¤¤¤«¤é¡¢ -ÆÃÄê¤Î¥Ç¡¼¥¿¥»¥Ã¥È¤ËÂФ·¤Æ¤ÏÁȤ߹þ¤ß¤Î hash ´Ø¿ô¤Ç¤Ï -¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤¬Ä㤤¤³¤È¤â¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +はユーザー定義の hash 関数である。 +全てのデータに対してうまく作用する hash 関数と言うのはないから、 +特定のデータセットに対しては組み込みの hash 関数では +パフォーマンスが低いこともあるかもしれない。 .\"O A user-specified hash functions must take two arguments (a pointer to a byte .\"O string and a length) and return a 32-bit quantity to be used as the hash .\"O value. -¥æ¡¼¥¶¡¼ÄêµÁ¤Î hash ´Ø¿ô¤ÏÆó¤Ä¤Î°ú¿ô¤ò¤È¤é¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤ (¥Ð¥¤¥Èʸ»ú -Îó¤Ø¤Î¥Ý¥¤¥ó¥¿¤È¡¢Ä¹¤µ)¡£ -¤½¤·¤Æ hash ÃͤȤ·¤Æ»È¤ï¤ì¤ë 32¥Ó¥Ã¥È¤ÎÃͤòÊÖ¤µ¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +ユーザー定義の hash 関数は二つの引数をとらなくてはならない (バイト文字 +列へのポインタと、長さ)。 +そして hash 値として使われる 32ビットの値を返さなくてはならない。 .TP .I lorder .\"O is the byte order for integers in the stored database metadata. .\"O The number should represent the order as an integer; for example, .\"O big endian order would be the number 4,321. -¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤ë¥á¥¿¥Ç¡¼¥¿¤ÎÀ°¿ôÃͤΥХ¤¥È¥ª¡¼¥À¡¼¡£ -¤³¤Î¿ô»ú¤Ï¡¢½ç½ø¤òÀ°¿ô¤Çɽ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -Î㤨¤Ð¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤Ê¤é¡¢¤³¤Î¿ôÃÍ¤Ï 4,321 ¤È¤Ê¤ë¡£ +データベースに格納されているメタデータの整数値のバイトオーダー。 +この数字は、順序を整数で表したものである。 +例えばビッグエンディアンなら、この数値は 4,321 となる。 .\"O If .I lorder .\"O is 0 (no order is specified) the current host order is used. .\"O If the file already exists, the specified value is ignored and the .\"O value specified when the tree was created is used. -¤¬ 0 (»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤)¾ì¹ç¡¢¸½ºß¤Î¥Û¥¹¥È -¤Ç»È¤ï¤ì¤Æ¤¤¤ëʤӽ礬»È¤ï¤ì¤ë¡£ -¥Õ¥¡¥¤¥ë¤¬´û¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢»ØÄꤷ¤¿ÃͤÏ̵»ë¤µ¤ì¥Ä¥ê¡¼¤¬ºî¤é¤ì -¤¿»þ¤Ë»ØÄꤵ¤ì¤Æ¤¤¤¿Ãͤ¬»È¤ï¤ì¤ë¡£ +が 0 (指定されていない)場合、現在のホスト +で使われている並び順が使われる。 +ファイルが既に存在する場合、指定した値は無視されツリーが作られ +た時に指定されていた値が使われる。 .PP .\"O If the file already exists (and the .\"O .B O_TRUNC @@ -183,37 +183,37 @@ hash .\"O .I nelem .\"O are .\"O ignored and the values specified when the tree was created are used. -.\"NAKANO the tree ¢ª the hash, ¤Ç¤·¤ç¤¦. -¥Õ¥¡¥¤¥ë¤¬´û¤Ë¸ºß¤·¤Æ¤¤¤ë (¤Þ¤¿¤Ï +.\"NAKANO the tree → the hash, でしょう. +ファイルが既に存在している (または .B O_TRUNC -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤) ¤È¡¢ +フラグが指定されていない) と、 .IR bsize , .IR ffactor , .IR lorder , .I nelem -¤Ë»ØÄꤵ¤ì¤¿ÃͤÏ̵»ë¤µ¤ì¡¢ -¥Ï¥Ã¥·¥å¤¬ºî¤é¤ì¤¿»þ¤Ë»È¤Ã¤¿Ãͤ¬»È¤ï¤ì¤ë¡£ +に指定された値は無視され、 +ハッシュが作られた時に使った値が使われる。 .PP .\"O If a hash function is specified, -hash ´Ø¿ô¤¬»ØÄꤵ¤ì¤ë¤È¡¢ +hash 関数が指定されると、 .I hash_open .\"O will attempt to determine if the hash function specified is the same as .\"O the one with which the database was created, and will fail if it is not. -¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬ºî¤é¤ì¤¿»þ¤Ë»ØÄꤵ¤ì¤Æ¤¤¤¿ -hash ´Ø¿ô¤Èº£²ó»ØÄꤵ¤ì¤¿ hash ´Ø¿ô¤¬Æ±¤¸¤«¤É¤¦¤«¤òÄ´¤Ù¡¢ -Ʊ¤¸¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¼ºÇÔ¤¹¤ë¡£ +はデータベースが作られた時に指定されていた +hash 関数と今回指定された hash 関数が同じかどうかを調べ、 +同じでない場合には失敗する。 .PP .\"O Backward-compatible interfaces to the routines described in .BR dbm (3), -¤È +と .\"O and .BR ndbm (3) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¥ë¡¼¥Á¥ó¤Ø¤Î²áµî¸ß´¹¤ò¼è¤ë¤¿¤á¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤¬ -¸ºß¤¹¤ë¡£¤·¤«¤·¤³¤ì¤é¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï°ÊÁ°¤Î¥Õ¥¡¥¤¥ë¥Õ¥©¡¼ -¥Þ¥Ã¥È¤È¤Ï¸ß´¹À­¤¬¤Ê¤¤¡£ +に記述されているルーチンへの過去互換を取るためのインターフェイスが +存在する。しかしこれらのインターフェイスは以前のファイルフォー +マットとは互換性がない。 .\"O are provided, however these interfaces are not compatible with .\"O previous file formats. -.SH ¥¨¥é¡¼ +.SH エラー .\"O The .\"O .I hash .\"O access method routines may fail and set @@ -221,16 +221,16 @@ hash .\"O for any of the errors specified for the library routine .\"O .BR dbopen (3). .I hash -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¥ë¡¼¥Á¥ó¤Ï¡¢¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó +アクセスメソッドルーチンは、失敗するとライブラリルーチン .BR dbopen (3) -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿ +で指定されているエラーに応じた .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ -.SH ¥Ð¥° +をセットする。 +.SH バグ .\"O Only big and little endian byte order are supported. -¥Ð¥¤¥È¥ª¡¼¥À¡¼¤È¤·¤Æ¤Ï¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤È¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¤Î¤ß¤¬ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +バイトオーダーとしてはビッグエンディアンとリトルエンディアンのみが +サポートされている。 +.SH 関連項目 .BR btree (3), .BR dbopen (3), .BR mpool (3), diff --git a/draft/man3/hsearch.3 b/draft/man3/hsearch.3 index 8aced056..edd36a58 100644 --- a/draft/man3/hsearch.3 +++ b/draft/man3/hsearch.3 @@ -42,23 +42,23 @@ .\" Updated & Modified 2005-01-10, Yuichi SATO .\" Updated 2008-09-20, Akihiro MOTOKI .\" -.\"WORD: hash table ¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë -.\"WORD: entry ¥¨¥ó¥È¥ê¡¼ -.\"WORD: allocate ³ä¤êÅö¤Æ -.\"WORD: NUL-terminated ¥Ì¥ëʸ»ú \0 ¤Ç½ªÃ¼¤µ¤ì¤¿ -.\"WORD: pointer ¥Ý¥¤¥ó¥¿ -.\"WORD: character ʸ»ú·¿ -.\"WORD: item ¹àÌÜ +.\"WORD: hash table ハッシュテーブル +.\"WORD: entry エントリー +.\"WORD: allocate 割り当て +.\"WORD: NUL-terminated ヌル文字 \0 で終端された +.\"WORD: pointer ポインタ +.\"WORD: character 文字型 +.\"WORD: item 項目 .\" .TH HSEARCH 3 2011-09-10 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O hcreate, hdestroy, hsearch, hcreate_r, hdestroy_r, .\"O hsearch_r \- hash table management hcreate, hdestroy, hsearch, hcreate_r, hdestroy_r, -hsearch_r \- ¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Î´ÉÍý +hsearch_r \- ハッシュテーブルの管理 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -69,7 +69,7 @@ hsearch_r \- .B "void hdestroy(void);" .sp .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp @@ -81,7 +81,7 @@ hsearch_r \- .BI "void hdestroy_r(struct hsearch_data *" htab ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The three functions .\"O .BR hcreate (), .\"O .BR hsearch (), @@ -93,9 +93,9 @@ hsearch_r \- .BR hcreate (), .BR hsearch (), .BR hdestroy () -¤Î 3 ¤Ä¤Î´Ø¿ô¤òÍøÍѤ¹¤ë¤È¡¢¥­¡¼ (ʸ»úÎó) ¤ÈÂбþ¤¹¤ë¥Ç¡¼¥¿¤«¤é¹½À®¤µ¤ì¤ë -¥¨¥ó¥È¥ê¤ò³ÊǼ¤Ç¤­¤ë¥Ï¥Ã¥·¥å¸¡º÷¥Æ¡¼¥Ö¥ë¤òºîÀ®¡¢´ÉÍý¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤ò»È¤Ã¤Æ¡¢°ìÅ٤˻ÈÍѤǤ­¤ë¤Î¤Ï°ì¤Ä¤Î¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤À¤±¤Ç¤¢¤ë¡£ +の 3 つの関数を利用すると、キー (文字列) と対応するデータから構成される +エントリを格納できるハッシュ検索テーブルを作成、管理することができる。 +これらの関数を使って、一度に使用できるのは一つのハッシュテーブルだけである。 .\"O The three functions .\"O .BR hcreate_r (), @@ -113,14 +113,14 @@ hsearch_r \- .BR hcreate_r (), .BR hsearch_r (), .BR hdestroy_r () -¤Î 3 ¤Ä¤Î´Ø¿ô¤Ï¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤǡ¢¤³¤ì¤é¤òÍøÍѤ¹¤ë¤È¡¢ -°ì¤Ä¤Î¥×¥í¥°¥é¥à¤ÇƱ»þ¤ËÊ£¿ô¤Î¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -ºÇ¸å¤Î°ú¤­¿ô +の 3 つの関数はリエントラント版で、これらを利用すると、 +一つのプログラムで同時に複数のハッシュテーブルを使うことができる。 +最後の引き数 .I htab -¤Ï´Ø¿ô¤ÎÁàºîÂоݤȤʤë¥Æ¡¼¥Ö¥ë¤ò¼¨¤¹¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ -¥×¥í¥°¥é¥Þ¤Ï¤³¤Î¹½Â¤ÂΤò¥Ö¥é¥Ã¥¯¥Ü¥Ã¥¯¥¹¤È¤·¤Æ°·¤¦¤Ù¤­¤Ç¤¢¤ë -(¤Ä¤Þ¤ê¡¢¤³¤Î¹½Â¤ÂΤΥե£¡¼¥ë¥É¤ËľÀÜ¥¢¥¯¥»¥¹¤·¤¿¤êÊѹ¹¤·¤¿¤ê -¤·¤Ê¤¤¤³¤È)¡£ +は関数の操作対象となるテーブルを示す構造体へのポインタである。 +プログラマはこの構造体をブラックボックスとして扱うべきである +(つまり、この構造体のフィールドに直接アクセスしたり変更したり +しないこと)。 .\"O First a hash table must be created using .\"O .BR hcreate (). @@ -129,13 +129,13 @@ hsearch_r \- .\"O (This maximum cannot be changed later, so choose it wisely.) .\"O The implementation may adjust this value upward to improve the .\"O performance of the resulting hash table. -ºÇ½é¤Ë¡¢ +最初に、 .BR hcreate () -´Ø¿ô¤Ë¤è¤Ã¤Æ¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤òºîÀ®¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -°ú¤­¿ô \fInel\fP ¤Ç¥Æ¡¼¥Ö¥ë¤ÎºÇÂ票¥ó¥È¥ê¿ô¤ò»ØÄꤹ¤ë -(¤³¤ÎºÇÂçÃͤϸå¤ÇÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¤Î¤Ç¡¢¤è¤¯¹Í¤¨¤ÆÁªÂò¤¹¤ë¤³¤È)¡£ -ºîÀ®¤µ¤ì¤ë¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤ÎÀ­Ç½¤ò¸þ¾å¤µ¤»¤ë¤¿¤á¤Ë¡¢ -´Ø¿ôÆâÉô¤Î¼ÂÁõ¤Ë¤è¤ê¤³¤ÎÃͤÏÁý¤ä¤µ¤ì¤ë¾ì¹ç¤â¤¢¤ë¡£ +関数によってハッシュテーブルを作成しなければならない。 +引き数 \fInel\fP でテーブルの最大エントリ数を指定する +(この最大値は後で変更することはできないので、よく考えて選択すること)。 +作成されるハッシュテーブルの性能を向上させるために、 +関数内部の実装によりこの値は増やされる場合もある。 .\" e.g., in glibc it is raised to the next higher prime number .\"O The @@ -149,15 +149,15 @@ hsearch_r \- .\"O must be zeroed before the first call to .\"O .BR hcreate_r (). .BR hcreate_r () -´Ø¿ô¤Ï +関数は .BR hcreate () -¤ÈƱ¤¸Æ°ºî¤ò¤¹¤ë¤¬¡¢¹½Â¤ÂÎ +と同じ動作をするが、構造体 .I *htab -¤Ç¼¨¤µ¤ì¤ë¥Æ¡¼¥Ö¥ë¤òÂоݤȤ·¤ÆÆ°ºî¤¹¤ë¡£ +で示されるテーブルを対象として動作する。 .I htab -¤¬»Ø¤·¼¨¤¹¹½Â¤ÂΤϡ¢ +が指し示す構造体は、 .BR hcreate_r () -¤ò½é¤á¤Æ¸Æ¤Ó½Ð¤¹Á°¤Ë 0 ¤ÇËä¤á¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を初めて呼び出す前に 0 で埋めておかなければならない。 .\"O The function .\"O .BR hdestroy () @@ -174,21 +174,21 @@ hsearch_r \- .\"O which was previously created using .\"O .BR hcreate_r (). .BR hdestroy () -´Ø¿ô¤Ï¡¢ +関数は、 .BR hcreate () -¤ÇºîÀ®¤µ¤ì¤¿¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤¬ÀêÍ­¤·¤Æ¤¤¤¿¥á¥â¥ê¤ò²òÊü¤¹¤ë¡£ -¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Ë¤è¤Ã¤ÆÀêÍ­¤µ¤ì¤Æ¤¤¤¿¥á¥â¥ê¤ò²òÊü¤·¡¢ -¿·¤·¤¤¥Æ¡¼¥Ö¥ë¤òºîÀ®¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ +で作成されたハッシュテーブルが占有していたメモリを解放する。 +ハッシュテーブルによって占有されていたメモリを解放し、 +新しいテーブルを作成できるようにする。 .BR hdestroy () -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¤½¤Î¸å¤Ï +を呼び出すと、その後は .BR hcreate () -¤ò»È¤Ã¤Æ¿·¤·¤¤¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤òºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使って新しいハッシュテーブルを作成することができる。 .BR hdestroy_r () -´Ø¿ô¤Ï¡¢Æ±ÍͤνèÍý¤ò¡¢¤½¤ì°ÊÁ°¤Ë +関数は、同様の処理を、それ以前に .BR hcreate_r () -¤ò»È¤Ã¤ÆºîÀ®¤·¤¿ +を使って作成した .I *htab -¤Ç¼¨¤µ¤ì¤ë¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤ËÂФ·¤Æ¼Â¹Ô¤¹¤ë¡£ +で示されるハッシュテーブルに対して実行する。 .\"O The .\"O .BR hsearch () @@ -197,16 +197,16 @@ hsearch_r \- .\"O .BR strcmp (3)), .\"O and if successful returns a pointer to it. .BR hsearch () -´Ø¿ô¤Ï¡¢\fIitem\fP ¤ÈƱ¤¸¥­¡¼¤ò»ý¤Ä¹àÌܤò¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤«¤é -¸¡º÷¤·¡¢¹àÌܤ¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¤½¤Î¹àÌܤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹ -(¡ÖƱ¤¸¡×¤«¤É¤¦¤«¤Ï +関数は、\fIitem\fP と同じキーを持つ項目をハッシュテーブルから +検索し、項目が見つかった場合にはその項目へのポインタを返す +(「同じ」かどうかは .BR strcmp (3) -¤ò»È¤Ã¤ÆȽÄꤹ¤ë)¡£ +を使って判定する)。 .\"O The argument \fIitem\fP is of type \fIENTRY\fP, which is defined in .\"O \fI\fP as follows: -°ú¤­¿ô \fIitem\fP ¤Ï \fBENTRY\fP ·¿¤Ç¤¢¤ê¡¢\fI\fP ¤ÎÃæ¤Ç -°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +引き数 \fIitem\fP は \fBENTRY\fP 型であり、\fI\fP の中で +以下のように定義されている。 .in +4n .sp .nf @@ -220,13 +220,13 @@ typedef struct entry { .\"O The field \fIkey\fP points to a null-terminated string which is the .\"O search key. .\"O The field \fIdata\fP points to data that is associated with that key. -¥Õ¥£¡¼¥ë¥É \fIkey\fP ¤Ï¸¡º÷¥­¡¼¤È¤Ê¤ë NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤ò»Ø¤¹¡£ -¥Õ¥£¡¼¥ë¥É \fIdata\fP ¤Ï¡¢¤³¤Î¥­¡¼¤ËÂбþ¤¹¤ë¥Ç¡¼¥¿¤ò»Ø¤¹¡£ +フィールド \fIkey\fP は検索キーとなる NULL 終端された文字列を指す。 +フィールド \fIdata\fP は、このキーに対応するデータを指す。 .\"O The argument \fIaction\fP determines what .\"O .BR hsearch () .\"O does after an unsuccessful search. -¸¡º÷¤¬¼ºÇÔ¤·¤¿¸å¤ÎÆ°ºî¤Ï¡¢°ú¤­¿ô \fIaction\fP ¤Ë¤è¤ê·è¤Þ¤ë¡£ +検索が失敗した後の動作は、引き数 \fIaction\fP により決まる。 .\"O This argument must either have the value .\"O .BR ENTER , .\"O meaning insert a copy of @@ -242,24 +242,24 @@ typedef struct entry { .\"O then .\"O .I data .\"O is ignored.) -¤³¤Î°ú¤­¿ô¤Ë¤Ï +この引き数には .B ENTER -¤« +か .B FIND -¤Î¤¤¤º¤ì¤«¤ÎÃͤò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +のいずれかの値を指定しなければならない。 .B ENTER -¤Ï +は .I item -¤Î¥³¥Ô¡¼¤òÁÞÆþ¤¹¤ë¤³¤È¤ò -(´Ø¿ô¤Î·ë²Ì¤È¤·¤Æ¿·¤·¤¤¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹)¡¢ +のコピーを挿入することを +(関数の結果として新しいハッシュテーブルエントリへのポインタを返す)、 .B FIND -¤Ï NULL ¤òÊÖ¤¹¤³¤È¤ò°ÕÌ£¤¹¤ë +は NULL を返すことを意味する .RI ( action -¤¬ +が .B FIND -¤Î¾ì¹ç¡¢ +の場合、 .I data -¤Ï̵»ë¤µ¤ì¤ë)¡£ +は無視される)。 .\"O The .\"O .BR hsearch_r () @@ -275,30 +275,30 @@ typedef struct entry { .\"O .IR *retval , .\"O rather than as the function result. .BR hsearch_r () -´Ø¿ô¤Ï +関数は .BR hsearch () -¤ÈƱÍͤÀ¤¬¡¢ +と同様だが、 .I *htab -¤Ç¼¨¤µ¤ì¤ë¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤ËÂФ·¤Æ½èÍý¤ò¹Ô¤¦¡£ +で示されるハッシュテーブルに対して処理を行う。 .BR hsearch_r () -´Ø¿ô¤¬ +関数が .BR hsearch () -¤È°Û¤Ê¤ë¤Î¤Ï¡¢¸«¤Ä¤«¤Ã¤¿¹àÌܤؤΥݥ¤¥ó¥¿¤ò¡¢ -´Ø¿ô¤Î·ë²Ì¤È¤·¤Æ¤Ç¤Ï¤Ê¤¯¡¢ +と異なるのは、見つかった項目へのポインタを、 +関数の結果としてではなく、 .I *retval -¤Ë³ÊǼ¤·¤ÆÊÖ¤¹ÅÀ¤Ç¤¢¤ë¡£ +に格納して返す点である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR hcreate () .\"O and .\"O .BR hcreate_r () .\"O return nonzero on success. .\"O They return 0 on error. .BR hcreate () -¤È +と .BR hcreate_r () -¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç 0 °Ê³°¤ÎÃͤòÊÖ¤·¡¢ -¥¨¥é¡¼¤Î¾ì¹ç 0 ¤òÊÖ¤¹¡£ +は、成功した場合 0 以外の値を返し、 +エラーの場合 0 を返す。 .\"O On success, .\"O .BR hsearch () @@ -308,46 +308,46 @@ typedef struct entry { .\"O if \fIaction\fP is \fBENTER\fP and .\"O the hash table is full, or \fIaction\fP is \fBFIND\fP and \fIitem\fP .\"O cannot be found in the hash table. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR hsearch () -¤Ï¡¢¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ëÆâ¤Î¥¨¥ó¥È¥ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ +は、ハッシュテーブル内のエントリへのポインタを返す。 +エラーの場合、 .BR hsearch () -¤Ï NULL ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤È¤Ê¤ë¤Î¤Ï¡¢ -\fIaction\fP ¤¬ \fBENTER\fP ¤Ç¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤¬¤¤¤Ã¤Ñ¤¤¤Î¾ì¹ç¤«¡¢ -\fIaction\fP ¤¬ \fBFIND\fP ¤Ç \fIitem\fP ¤¬¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ëÆâ¤Ë -¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ç¤¢¤ë¡£ +は NULL を返す。 +エラーとなるのは、 +\fIaction\fP が \fBENTER\fP でハッシュテーブルがいっぱいの場合か、 +\fIaction\fP が \fBFIND\fP で \fIitem\fP がハッシュテーブル内に +見つからない場合である。 .\"O .BR hsearch_r () .\"O returns nonzero on success, and 0 on error. .BR hsearch_r () -¤Ï¡¢À®¸ù¤¹¤ë¤È 0 °Ê³°¤òÊÖ¤·¡¢¥¨¥é¡¼¤Î¾ì¹ç 0 ¤òÊÖ¤¹¡£ +は、成功すると 0 以外を返し、エラーの場合 0 を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .LP .\"O .BR hcreate_r () .\"O and .\"O .BR hdestroy_r () .\"O can fail for the following reasons: .BR hcreate_r () -¤È +と .BR hdestroy_r () -¤Ï°Ê²¼¤ÎÍýͳ¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +は以下の理由で失敗する可能性がある。 .TP .B EINVAL .\"O .I htab .\"O is NULL. .I htab -¤¬ NULL ¤Ç¤¢¤ë¡£ +が NULL である。 .PP .\"O .BR hsearch () .\"O and .\"O .BR hsearch_r () .\"O can fail for the following reasons: .BR hsearch () -¤È +と .BR hsearch_r () -¤Ï°Ê²¼¤ÎÍýͳ¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +は以下の理由で失敗する可能性がある。 .TP .B ENOMEM .\"O .I action @@ -357,12 +357,12 @@ typedef struct entry { .\"O was not found in the table, .\"O and there was no room in the table to add a new entry. .I action -¤¬ +が .B ENTER -¤Ç¡¢ +で、 .I key -¤¬¥Æ¡¼¥Ö¥ëÆâ¤Ë¸«¤Ä¤«¤é¤º¡¢ -¥Æ¡¼¥Ö¥ë¤Ë¿·¤·¤¤¥¨¥ó¥È¥ê¤òÄɲ乤ë;ÃϤ¬¤Ê¤«¤Ã¤¿¡£ +がテーブル内に見つからず、 +テーブルに新しいエントリを追加する余地がなかった。 .TP .B ESRCH .\"O .I action @@ -372,56 +372,56 @@ typedef struct entry { .\"O .I key .\"O was not found in the table. .I action -¤¬ +が .B FIND -¤Ç¡¢ +で、 .I key -¤¬¥Æ¡¼¥Ö¥ëÆâ¤Ë¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£ +がテーブル内に見つからなかった。 .PP .\"O POSIX.1-2001 only specifies the .\"O .B ENOMEM .\"O error. -POSIX.1-2001 ¤¬µ¬Äꤷ¤Æ¤¤¤ë¤Î¤Ï¡¢¥¨¥é¡¼ +POSIX.1-2001 が規定しているのは、エラー .B ENOMEM -¤À¤±¤Ç¤¢¤ë¡£ +だけである。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The functions .\"O .BR hcreate (), .\"O .BR hsearch (), .\"O and .\"O .BR hdestroy () .\"O are from SVr4, and are described in POSIX.1-2001. -´Ø¿ô +関数 .BR hcreate (), .BR hsearch (), .BR hdestroy () -¤Ï SVr4 ¤«¤éƳÆþ¤µ¤ì¤¿¤â¤Î¤Ç¡¢POSIX.1-2001 ¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +は SVr4 から導入されたもので、POSIX.1-2001 に記述されている。 .\"O The functions .\"O .BR hcreate_r , .\"O .BR hsearch_r , .\"O and .\"O .BR hdestroy_r .\"O are GNU extensions. -´Ø¿ô +関数 .BR hcreate_r , .BR hsearch_r , .B hdestroy_r -¤Ï GNU ¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ +は GNU の拡張である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Hash table implementations are usually more efficient when the .\"O table contains enough free space to minimize collisions. .\"O Typically, this means that .\"O .I nel .\"O should be at least 25% larger than the maximum number of elements .\"O that the caller expects to store in the table. -Ä̾¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Î¼ÂÁõ¤Ï¡¢¾×ÆͤòºÇ¾®¸Â¤Ë¤¹¤ë¤¿¤á¤Ë -¥Æ¡¼¥Ö¥ë¤Ë½½Ê¬¤Ê¶õ¤­Îΰ褬¤¢¤ë¾ì¹ç¤Ë¸úΨ¤¬¤è¤¯¤Ê¤ë¡£ -¤³¤Î¤¿¤á¡¢ÉáÄ̤ϡ¢ +通常、ハッシュテーブルの実装は、衝突を最小限にするために +テーブルに十分な空き領域がある場合に効率がよくなる。 +このため、普通は、 .I nel -¤ò¡¢¸Æ¤Ó½Ð¤·Â¦¤¬¥Æ¡¼¥Ö¥ë¤Ë³ÊǼ¤·¤è¤¦¤È»×¤Ã¤Æ¤¤¤ë -¥¨¥ó¥È¥ê¤ÎºÇÂç¿ô¤è¤ê¾¯¤Ê¤¯¤È¤â 25% ¤ÏÂ礭¤ÊÃͤˤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +を、呼び出し側がテーブルに格納しようと思っている +エントリの最大数より少なくとも 25% は大きな値にすべきである。 .\"O The .\"O .BR hdestroy () @@ -435,51 +435,51 @@ POSIX.1-2001 .\"O (It can't do this because it doesn't know .\"O whether these buffers were allocated dynamically.) .BR hdestroy () -¤È +と .BR hdestroy_r () -¤Ï¡¢¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Î¥¨¥ó¥È¥ê¤ÎÍ×ÁǤǤ¢¤ë +は、ハッシュテーブルのエントリの要素である .I key -¤È +と .I data -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤ò²òÊü¤·¤Ê¤¤ -(¤³¤ì¤¬¤Ç¤­¤Ê¤¤¤Î¤Ï¡¢¤³¤ì¤é¤Î¥Ð¥Ã¥Õ¥¡¤¬Æ°Åª¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¤Î¤«¤ò -ÃΤ뤳¤È¤¬¤Ç¤­¤Ê¤¤¤«¤é¤Ç¤¢¤ë)¡£ +が指すバッファを解放しない +(これができないのは、これらのバッファが動的に割り当てられたのかを +知ることができないからである)。 .\"O If these buffers need to be freed (perhaps because the program .\"O is repeatedly creating and destroying hash tables, .\"O rather than creating a single table whose lifetime .\"O matches that of the program), .\"O then the program must maintain bookkeeping data structures that .\"O allow it to free them. -¤³¤ì¤é¤Î¥Ð¥Ã¥Õ¥¡¤ò²òÊü¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¡¢ -¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥Ð¥Ã¥Õ¥¡¤ò²òÊü¤Ç¤­¤ë¤è¤¦¤Ë´ÉÍýÍѤΥǡ¼¥¿¹½Â¤¤ò -Àߤ±¤Æ¡¢¤³¤ì¤ò´ÉÍý¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(²òÊü¤¬É¬ÍפȤʤëÍýͳ¤Ï¡¢¤¿¤¤¤Æ¤¤¤Ï¡¢¥×¥í¥°¥é¥à¼«¿È¤ÈÀ¸Â¸´ü´Ö¤¬Æ±¤¸ -¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤ò°ì¤Ä¤À¤±ºîÀ®¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢¤½¤Î¥×¥í¥°¥é¥à¤Ç¤ÏÊ£¿ô¤Î -¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤ò·«¤êÊÖ¤·¤ÆºîÀ®¤·¤¿¤êÇË´þ¤·¤¿¤ê¤¹¤ë¤«¤é¤Ç¤¢¤í¤¦)¡£ +これらのバッファを解放する必要がある場合、 +プログラムでは、これらのバッファを解放できるように管理用のデータ構造を +設けて、これを管理しなければならない +(解放が必要となる理由は、たいていは、プログラム自身と生存期間が同じ +ハッシュテーブルを一つだけ作成するのではなく、そのプログラムでは複数の +ハッシュテーブルを繰り返して作成したり破棄したりするからであろう)。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O SVr4 and POSIX.1-2001 specify that \fIaction\fP .\"O is significant only for unsuccessful searches, so that an \fBENTER\fP .\"O should not do anything for a successful search. .\"O In libc and glibc (before version 2.3), the .\"O implementation violates the specification, .\"O updating the \fIdata\fP for the given \fIkey\fP in this case. -SVr4 ¤È POSIX.1-2001 ¤Îµ¬Äê¤Ç¤Ï¡¢ -\fIaction\fP ¤Ï¸¡º÷¤¬¼ºÇÔ¤·¤¿¤È¤­¤Ë¤À¤±°ÕÌ£¤ò»ý¤Ä¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤è¤Ã¤Æ¡¢¸¡º÷¤¬À®¸ù¤·¤¿¾ì¹ç¡¢\fIaction\fP ¤ÎÃͤ¬ \fBENTER\fP ¤Ç¤â -²¿¤â¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -(¥Ð¡¼¥¸¥ç¥ó 2.3 ¤è¤êÁ°¤Î) libc ¤È glibc ¤Î¼ÂÁõ¤Ï¤³¤Îµ¬³Ê¤Ë°ãÈ¿¤·¤Æ¤ª¤ê¡¢ -¤³¤Î¾õ¶·¤Ç¡¢»ØÄꤵ¤ì¤¿ \fIkey\fP ¤ËÂбþ¤¹¤ë \fIdata\fP ¤¬¹¹¿·¤µ¤ì¤ë¡£ +SVr4 と POSIX.1-2001 の規定では、 +\fIaction\fP は検索が失敗したときにだけ意味を持つとなっている。 +よって、検索が成功した場合、\fIaction\fP の値が \fBENTER\fP でも +何もすべきではない。 +(バージョン 2.3 より前の) libc と glibc の実装はこの規格に違反しており、 +この状況で、指定された \fIkey\fP に対応する \fIdata\fP が更新される。 .\"O Individual hash table entries can be added, but not deleted. -¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¡¼¤ÎÄɲäϤǤ­¤ë¤¬¡¢ºï½ü¤¬¤Ç¤­¤Ê¤¤¡£ +ハッシュテーブルエントリーの追加はできるが、削除ができない。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .PP .\"O The following program inserts 24 items into a hash table, then prints .\"O some of them. -¼¡¤Î¥×¥í¥°¥é¥à¤Ï¡¢¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Ë 24 ¸Ä¤Î¹àÌܤòÁÞÆþ¤·¡¢ -¤½¤ì¤«¤é¤½¤Î¤¦¤Á¤Î¤¤¤¯¤Ä¤«¤òɽ¼¨¤¹¤ë¡£ +次のプログラムは、ハッシュテーブルに 24 個の項目を挿入し、 +それからそのうちのいくつかを表示する。 .nf #include @@ -504,11 +504,11 @@ int main() e.key = data[i]; .\"O /* data is just an integer, instead of a .\"O pointer to something */ - /* ¥Ç¡¼¥¿¤Ï¡¢¥Ý¥¤¥ó¥¿¤Ç¤Ï¤Ê¤¯¡¢Ã±¤Ê¤ëÀ°¿ôÃͤǤ¢¤ë¡£ */ + /* データは、ポインタではなく、単なる整数値である。 */ e.data = (void *) i; ep = hsearch(e, ENTER); .\"O /* there should be no failures */ - /* ¥¨¥é¡¼¤Ïµ¯¤³¤é¤Ê¤¤¤Ï¤º¤Ç¤¢¤ë¡£ */ + /* エラーは起こらないはずである。 */ if (ep == NULL) { fprintf(stderr, "entry failed\\n"); exit(EXIT_FAILURE); @@ -518,8 +518,8 @@ int main() for (i = 22; i < 26; i++) { .\"O /* print two entries from the table, and .\"O show that two are not in the table */ - /* ¥Æ¡¼¥Ö¥ë¤Ë¤¢¤ë 2 ¤Ä¤Î¥¨¥ó¥È¥ê¤òɽ¼¨¤·¡¢ - ¤¢¤È¤Î 2 ¤Ä¤¬¥Æ¡¼¥Ö¥ë¤Ë¤Ê¤¤¤³¤È¤ò¼¨¤¹¡£ */ + /* テーブルにある 2 つのエントリを表示し、 + あとの 2 つがテーブルにないことを示す。 */ e.key = data[i]; ep = hsearch(e, FIND); printf("%9.9s \-> %9.9s:%d\\n", e.key, @@ -530,7 +530,7 @@ int main() } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bsearch (3), .BR lsearch (3), .BR malloc (3), diff --git a/draft/man3/hypot.3 b/draft/man3/hypot.3 index f2931548..defd2157 100644 --- a/draft/man3/hypot.3 +++ b/draft/man3/hypot.3 @@ -40,11 +40,11 @@ .\" .TH HYPOT 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O hypot, hypotf, hypotl \- Euclidean distance function -hypot, hypotf, hypotl \- ¥æ¡¼¥¯¥ê¥Ã¥Éµ÷Î¥´Ø¿ô +hypot, hypotf, hypotl \- ユークリッド距離関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -56,14 +56,14 @@ hypot, hypotf, hypotl \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -87,15 +87,15 @@ or .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR hypot () .\"O function returns .\"O .RI sqrt( x * x + y * y ). .BR hypot () -´Ø¿ô¤Ï +関数は .RI sqrt( x * x + y * y ) -¤ÎÃͤòÊÖ¤¹¡£ +の値を返す。 .\"O This is the length of the hypotenuse of a right-angled triangle .\"O with sides of length .\"O .I x @@ -104,35 +104,35 @@ or .\"O or the distance of the point .\"O .RI ( x , y ) .\"O from the origin. -¤³¤ì¤Ï -ľ³Ñ¤ò¶´¤à 2 ÊÕ¤ÎŤµ¤¬ +これは +直角を挟む 2 辺の長さが .I x -¤È +と .I y -¤Ç¤¢¤ëľ³Ñ»°³Ñ·Á¤Î¼ÐÊÕ¤ÎŤµ¡¢ -¤¹¤Ê¤ï¤Á¡¢¸¶ÅÀ¤ÈÅÀ +である直角三角形の斜辺の長さ、 +すなわち、原点と点 .RI ( x , y ) -¤È¤Îµ÷Î¥¤Ç¤¢¤ë¡£ +との距離である。 .\"O The calculation is performed without undue overflow or underflow .\"O during the intermediate steps of the calculation. -·×»»¤ÎÃæ´Ö¥¹¥Æ¥Ã¥×¤Ç¤Ï¡¢É¬Íװʾå¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤ä¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¬ -µ¯¤­¤Ê¤¤¤è¤¦¤Ë¤·¤Æ·×»»¤¬¼Â¹Ô¤µ¤ì¤ë¡£ +計算の中間ステップでは、必要以上のオーバーフローやアンダーフローが +起きないようにして計算が実行される。 .\" e.g., hypot(DBL_MIN, DBL_MIN) does the right thing, as does, say .\" hypot(DBL_MAX/2.0, DBL_MAX/2.0). .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the length of a right-angled triangle .\"O with sides of length .\"O .I x .\"O and .\"O .IR y . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ -ľ³Ñ¤ò¶´¤à 2 ÊÕ¤ÎŤµ¤¬ +成功すると、これらの関数は、 +直角を挟む 2 辺の長さが .I x -¤È +と .I y -¤Ç¤¢¤ëľ³Ñ»°³Ñ·Á¤Î¼ÐÊÕ¤ÎŤµ¤òÊÖ¤¹¡£ +である直角三角形の斜辺の長さを返す。 .\"O If .\"O .I x @@ -141,9 +141,9 @@ or .\"O is an infinity, .\"O positive infinity is returned. .I x -¤« +か .I y -¤¬Ìµ¸ÂÂç¤Î¾ì¹ç¡¢Àµ¤Î̵¸ÂÂ礬ÊÖ¤µ¤ì¤ë¡£ +が無限大の場合、正の無限大が返される。 .\"O If .\"O .I x @@ -153,10 +153,10 @@ or .\"O and the other argument is not an infinity, .\"O a NaN is returned. .I x -¤« +か .I y -¤Î°ìÊý¤¬ NaN ¤Ç¡¢¤â¤¦°ìÊý¤¬Ìµ¸ÂÂç¤Ç¤Ê¤¤¾ì¹ç¡¢ -NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +の一方が NaN で、もう一方が無限大でない場合、 +NaN が返される。 .\"O If the result overflows, .\"O a range error occurs, @@ -166,35 +166,35 @@ NaN .\"O or .\"O .BR HUGE_VALL , .\"O respectively. -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +結果がオーバーフローする場合、範囲エラー (range error) が発生し、 +各関数はそれぞれ .BR HUGE_VAL , .BR HUGE_VALF , .B HUGE_VALL -¤òÊÖ¤¹¡£ +を返す。 .\"O If both arguments are subnormal, and the result is subnormal, -ξÊý¤Î°ú¤­¿ô¤¬ÈóÀµµ¬²½¿ô (subnormal) ¤Ç¡¢·ë²Ì¤âÈóÀµµ¬²½¿ô (subnormal) ¤Î¾ì¹ç¡¢ +両方の引き数が非正規化数 (subnormal) で、結果も非正規化数 (subnormal) の場合、 .\" Actually, could the result not be subnormal if both arguments .\" are subnormal? I think not -- mtk, Jul 2008 .\"O a range error occurs, .\"O and the correct result is returned. -ÈÏ°Ï¥¨¥é¡¼¤¬È¯À¸¤·¡¢Àµ¤·¤¤·ë²Ì¤¬ÊÖ¤µ¤ì¤ë¡£ +範囲エラーが発生し、正しい結果が返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Range error: result overflow -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ +範囲エラー: 結果のオーバーフロー .\"O .I errno .\"O is set to .\"O .BR ERANGE . @@ -202,44 +202,44 @@ NaN .\"O .RB ( FE_OVERFLOW ) .\"O is raised. .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP .\"O Range error: result underflow -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤Î¥¢¥ó¥À¡¼¥Õ¥í¡¼ +範囲エラー: 結果のアンダーフロー .\" .I errno .\" is set to .\" .BR ERANGE . .\"O An underflow floating-point exception .\"O .RB ( FE_UNDERFLOW ) .\"O is raised. -¥¢¥ó¥À¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +アンダーフロー浮動小数点例外 .RB ( FE_UNDERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .IP .\"O These functions do not set .\"O .IR errno .\"O for this case. -¤³¤Î¾ì¹ç¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +この場合、これらの関数は .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" They do set errno for the overflow case. .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6795 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD にも準拠している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR sqrt (3) diff --git a/draft/man3/iconv.3 b/draft/man3/iconv.3 index 4c6147bf..0716c3ed 100644 --- a/draft/man3/iconv.3 +++ b/draft/man3/iconv.3 @@ -17,18 +17,18 @@ .\" Translated 2000-07-11, Yuichi SATO .\" Updated 2008-09-14, Akihiro MOTOKI , LDP v3.09 .\" -.\"WORD: conversion ÊÑ´¹ -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ -.\"WORD: sequence ʸ»úÎó +.\"WORD: conversion 変換 +.\"WORD: descriptor ディスクリプター +.\"WORD: sequence 文字列 .\"WORD: .\" .TH ICONV 3 2008-09-08 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O iconv \- perform character set conversion -iconv \- ʸ»ú¥»¥Ã¥ÈÊÑ´¹¤ò¹Ô¤¦ +iconv \- 文字セット変換を行う .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -37,14 +37,14 @@ iconv \- ʸ .BI " char **" outbuf ", size_t *" outbytesleft ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The argument \fIcd\fP must be a conversion descriptor created using the .\"O function .\"O .BR iconv_open (3). -°ú¤­¿ô \fIcd\fP ¤Ï¡¢´Ø¿ô +引き数 \fIcd\fP は、関数 .BR iconv_open (3) -¤ò»È¤Ã¤ÆÀ¸À®¤µ¤ì¤ë -ÊÑ´¹¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を使って生成される +変換ディスクリプターでなければならない。 .PP .\"O The main case is when \fIinbuf\fP is not NULL and \fI*inbuf\fP is not NULL. .\"O In this case, the @@ -53,16 +53,16 @@ iconv \- ʸ .\"O starting at \fI*inbuf\fP to a multibyte sequence starting at \fI*outbuf\fP. .\"O At most \fI*inbytesleft\fP bytes, starting at \fI*inbuf\fP, will be read. .\"O At most \fI*outbytesleft\fP bytes, starting at \fI*outbuf\fP, will be written. -¼ç¤Ë»È¤ï¤ì¤ë¤Î¤Ï¡¢ -¡Ö\fIinbuf\fP ¤¬ NULL ¤Ç¤Ê¤¯¡¢¤«¤Ä \fI*inbuf\fP ¤¬ NULL ¤Ç¤Ê¤¤¡× -¤È¤¤¤¦¾ì¹ç¤Ç¤¢¤ë¡£ -¤³¤Î¾ì¹ç¡¢ +主に使われるのは、 +「\fIinbuf\fP が NULL でなく、かつ \fI*inbuf\fP が NULL でない」 +という場合である。 +この場合、 .BR iconv () -´Ø¿ô¤Ï¡¢ -\fI*inbuf\fP ¤Ç»Ï¤Þ¤ë¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ò -\fI*outbuf\fP ¤Ç»Ï¤Þ¤ë¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ËÊÑ´¹¤¹¤ë¡£ -\fI*inbuf\fP ¤òÀèƬ¤È¤·¤ÆºÇÂç \fI*inbytesleft\fP ¥Ð¥¤¥È¤¬Æɤ߹þ¤Þ¤ì¡¢ -\fI*outbuf\fP ¤òÀèƬ¤È¤·¤ÆºÇÂç \fI*outbytesleft\fP ¥Ð¥¤¥È¤¬½ñ¤­½Ð¤µ¤ì¤ë¡£ +関数は、 +\fI*inbuf\fP で始まるマルチバイト文字列を +\fI*outbuf\fP で始まるマルチバイト文字列に変換する。 +\fI*inbuf\fP を先頭として最大 \fI*inbytesleft\fP バイトが読み込まれ、 +\fI*outbuf\fP を先頭として最大 \fI*outbytesleft\fP バイトが書き出される。 .PP .\"O The .\"O .BR iconv () @@ -78,17 +78,17 @@ iconv \- ʸ .\"O such input is called a \fIshift sequence\fP. .\"O The conversion can stop for four reasons: .BR iconv () -´Ø¿ô¤Ï 1 ÅÙ¤Ë 1 ¤Ä¤Î¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤òÊÑ´¹¤¹¤ë¡£ -¤½¤·¤Æ¡¢³Æʸ»úÊÑ´¹Ëè¤Ë¡¢ÊÑ´¹¤µ¤ì¤¿ÆþÎϥХ¤¥È¤Î¿ô¤À¤± -\fI*inbuf\fP ¤òÁý²Ã¤µ¤»¡¢\fI*inbytesleft\fP ¤ò¸º¾¯¤µ¤»¤ë¡£ -¤Þ¤¿¡¢ÊÑ´¹¤µ¤ì¤¿½ÐÎϥХ¤¥È¤Î¿ô¤À¤± -\fI*outbuf\fP ¤òÁý²Ã¤µ¤»¡¢\fI*outbytesleft\fP ¤ò¸º¾¯¤µ¤»¤ë¡£ -¤µ¤é¤Ë¡¢\fIcd\fP ¤Ë´Þ¤Þ¤ì¤ëÊÑ´¹¾õÂÖ¤ò¹¹¿·¤¹¤ë¡£ -ÆþÎϤÎʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤¬¤¬¾õÂÖ¤ò»ý¤Ä¾ì¹ç¡¢ +関数は 1 度に 1 つのマルチバイト文字を変換する。 +そして、各文字変換毎に、変換された入力バイトの数だけ +\fI*inbuf\fP を増加させ、\fI*inbytesleft\fP を減少させる。 +また、変換された出力バイトの数だけ +\fI*outbuf\fP を増加させ、\fI*outbytesleft\fP を減少させる。 +さらに、\fIcd\fP に含まれる変換状態を更新する。 +入力の文字エンコーディングがが状態を持つ場合、 .BR iconv () -´Ø¿ô¤ÏÆþÎϥХ¤¥È¤ÎÎó¤ËÂФ·¤ÆÊÑ´¹¤Ë¤âÂбþ¤·¤Æ¤ª¤ê¡¢ -¥Ð¥¤¥È½ÐÎϤòȼ¤ï¤º¤ËÊÑ´¹¾õÂÖ¤ò¹¹¿·¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -ÊÑ´¹¤Ï¡¢¼¡¤Î 4 ¤Ä¤Î¾ì¹ç¤ËÄä»ß¤¹¤ë¡£ +関数は入力バイトの列に対して変換にも対応しており、 +バイト出力を伴わずに変換状態を更新することができる。 +変換は、次の 4 つの場合に停止する。 .PP .\"O 1. An invalid multibyte sequence is encountered in the input. .\"O In this case @@ -96,11 +96,11 @@ iconv \- ʸ .\"O .IR (size_t)\ \-1 . .\"O \fI*inbuf\fP .\"O is left pointing to the beginning of the invalid multibyte sequence. -1. ÆþÎϤË̵¸ú¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎ󤬤¢¤Ã¤¿¾ì¹ç¡£ -¤³¤Î¾ì¹ç¡¢´Ø¿ô¤Ï \fIerrno\fP ¤ò \fBEILSEQ\fP ¤ËÀßÄꤷ¡¢ +1. 入力に無効なマルチバイト文字列があった場合。 +この場合、関数は \fIerrno\fP を \fBEILSEQ\fP に設定し、 .I (size_t)\ \-1 -¤òÊÖ¤¹¡£ -\fI*inbuf\fP ¤Ï¡¢Ìµ¸ú¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ÎÀèƬ¤ò»Ø¤·¤¿¤Þ¤Þ¤Ë¤Ê¤ë¡£ +を返す。 +\fI*inbuf\fP は、無効なマルチバイト文字列の先頭を指したままになる。 .PP .\"O 2. The input byte sequence has been entirely converted, .\"O that is, \fI*inbytesleft\fP has gone down to 0. @@ -108,10 +108,10 @@ iconv \- ʸ .\"O .BR iconv () .\"O returns the number of .\"O nonreversible conversions performed during this call. -2. ÆþÎϥХ¤¥Èʸ»úÎ󤬴°Á´¤ËÊÑ´¹¤µ¤ì¡¢\fI*inbytesleft\fP ¤¬ 0 ¤Ë¤Ê¤Ã¤¿¾ì¹ç¡£ -¤³¤Î¾ì¹ç¡¢ +2. 入力バイト文字列が完全に変換され、\fI*inbytesleft\fP が 0 になった場合。 +この場合、 .BR iconv () -¤Ï¡¢¸Æ½Ð¤·¤Î´Ö¤ËÈó²ÄµÕÊÑ´¹¤¬¹Ô¤ï¤ì¤¿²ó¿ô¤òÊÖ¤¹¡£ +は、呼出しの間に非可逆変換が行われた回数を返す。 .PP .\"O 3. An incomplete multibyte sequence is encountered in the input, and the .\"O input byte sequence terminates after it. @@ -120,20 +120,20 @@ iconv \- ʸ .\"O .IR (size_t)\ \-1 . .\"O \fI*inbuf\fP is left pointing to the .\"O beginning of the incomplete multibyte sequence. -3. ÆþÎϤËÉÔ´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎ󤬤¢¤ê¡¢ -ÆþÎϥХ¤¥Èʸ»úÎ󤬤½¤Î¸å¤Ç½ªÎ»¤·¤Æ¤¤¤ë¾ì¹ç¡£ -¤³¤Î¾ì¹ç¡¢´Ø¿ô¤Ï¡¢\fIerrno\fP ¤ò \fBEINVAL\fP ¤ËÀßÄꤷ¡¢ +3. 入力に不完全なマルチバイト文字列があり、 +入力バイト文字列がその後で終了している場合。 +この場合、関数は、\fIerrno\fP を \fBEINVAL\fP に設定し、 .I (size_t)\ \-1 -¤òÊÖ¤¹¡£ -\fI*inbuf\fP ¤Ï¡¢ÉÔ´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ÎÀèƬ¤ò»Ø¤·¤¿¤Þ¤Þ¤Ë¤µ¤ì¤ë¡£ +を返す。 +\fI*inbuf\fP は、不完全なマルチバイト文字列の先頭を指したままにされる。 .PP .\"O 4. The output buffer has no more room for the next converted character. .\"O In this case it sets \fIerrno\fP to \fBE2BIG\fP and returns .\"O .IR (size_t)\ \-1 . -4. ½ÐÎϥХåե¡¡¼¤Ë¼¡¤ÎÊÑ´¹¤µ¤ì¤¿Ê¸»úÎó¤Î¤¿¤á¤Î¶õ¤­¤¬¤Ê¤¤¾ì¹ç¡£ -¤³¤Î¾ì¹ç¡¢\fIerrno\fP ¤¬ \fBE2BIG\fP ¤ËÀßÄꤵ¤ì¡¢ +4. 出力バッファーに次の変換された文字列のための空きがない場合。 +この場合、\fIerrno\fP が \fBE2BIG\fP に設定され、 .I (size_t)\ \-1 -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .PP .\"O A different case is when \fIinbuf\fP is NULL or \fI*inbuf\fP is NULL, but .\"O \fIoutbuf\fP is not NULL and \fI*outbuf\fP is not NULL. @@ -148,36 +148,36 @@ iconv \- ʸ .\"O Otherwise it increments .\"O \fI*outbuf\fP and decrements \fI*outbytesptr\fP by the number of bytes .\"O written. -Ê̤Υ±¡¼¥¹¤È¤·¤Æ¤Ï¡¢ -¡Ö\fIinbuf\fP ¤¬ NULL¡¢¤Þ¤¿¤Ï \fI*inbuf\fP ¤¬ NULL ¤Ç¤¢¤ë¡£ -¤·¤«¤·¡¢\fIoutbuf\fP ¤¬ NULL ¤Ç¤Ê¤¯¡¢¤«¤Ä \fI*outbuf\fP ¤¬ NULL ¤Ç¤Ê¤¤¡× -¤È¤¤¤¦¾ì¹ç¤¬¤¢¤ë¡£ -¤³¤Î¾ì¹ç¡¢ +別のケースとしては、 +「\fIinbuf\fP が NULL、または \fI*inbuf\fP が NULL である。 +しかし、\fIoutbuf\fP が NULL でなく、かつ \fI*outbuf\fP が NULL でない」 +という場合がある。 +この場合、 .BR iconv () -´Ø¿ô¤Ï¡¢\fIcd\fP ¤ÎÊÑ´¹¾õÂÖ¤ò½é´ü¾õÂ֤ˤ·¤Æ¡¢ -Âбþ¤¹¤ë¥·¥Õ¥Èʸ»úÎó¤ò \fI*outbuf\fP ¤ËÊݸ¤·¤è¤¦¤È¤¹¤ë¡£ -ºÇÂç \fI*outbytesleft\fP ¥Ð¥¤¥È¤¬¡¢\fI*outbuf\fP ¤ò»Ï¤á¤È¤·¤Æ½ñ¤­½Ð¤µ¤ì¤ë¡£ -¤³¤Î¥ê¥»¥Ã¥È¤µ¤ì¤¿Ê¸»úÎó¤ËÂФ·¤Æ¡¢½ÐÎϥХåե¡¡¼¤Ë¶õ¤­¤¬¤Ê¤¤¾ì¹ç¡¢ -¤³¤Î´Ø¿ô¤Ï \fIerrno\fP ¤ò \fBE2BIG\fP ¤ËÀßÄꤷ¡¢ +関数は、\fIcd\fP の変換状態を初期状態にして、 +対応するシフト文字列を \fI*outbuf\fP に保存しようとする。 +最大 \fI*outbytesleft\fP バイトが、\fI*outbuf\fP を始めとして書き出される。 +このリセットされた文字列に対して、出力バッファーに空きがない場合、 +この関数は \fIerrno\fP を \fBE2BIG\fP に設定し、 .I (size_t)\ \-1 -¤òÊÖ¤¹¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï¡¢½ñ¤­¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¤Î¿ô¤À¤± -\fI*outbuf\fP ¤òÁý²Ã¤µ¤»¡¢\fI*outbytesleft\fP ¤ò¸º¾¯¤µ¤»¤ë¡£ +を返す。 +それ以外の場合、この関数は、書き込まれたバイトの数だけ +\fI*outbuf\fP を増加させ、\fI*outbytesleft\fP を減少させる。 .PP .\"O A third state is when \fIinbuf\fP is NULL or \fI*inbuf\fP is NULL, and .\"O \fIoutbuf\fP is NULL or \fI*outbuf\fP is NULL. .\"O In this case, the .\"O .BR iconv () .\"O function sets \fIcd\fP's conversion state to the initial state. -3 ÈÖÌܤΥ±¡¼¥¹¤·¤Æ¤Ï¡¢ -¡Ö\fIinbuf\fP ¤¬ NULL¡¢¤Þ¤¿¤Ï \fI*inbuf\fP ¤¬ NULL ¤Ç¤¢¤ë¡£ -¤«¤Ä¡¢\fIoutbuf\fP ¤¬ NULL¡¢¤Þ¤¿¤Ï \fI*outbuf\fP ¤¬ NULL ¤Ç¤¢¤ë¡× -¤È¤¤¤¦¾ì¹ç¤¬¤¢¤ë¡£ -¤³¤Î¾ì¹ç¡¢ +3 番目のケースしては、 +「\fIinbuf\fP が NULL、または \fI*inbuf\fP が NULL である。 +かつ、\fIoutbuf\fP が NULL、または \fI*outbuf\fP が NULL である」 +という場合がある。 +この場合、 .BR iconv () -´Ø¿ô¤Ï¡¢\fIcd\fP ¤ÎÊÑ´¹¾õÂÖ¤ò½é´ü¾õÂ֤ˤ¹¤ë¡£ +関数は、\fIcd\fP の変換状態を初期状態にする。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR iconv () .\"O function returns the number of characters converted in a @@ -185,35 +185,35 @@ iconv \- ʸ .\"O In case of error, it sets \fIerrno\fP and returns .\"O .IR (size_t)\ \-1 . .BR iconv () -´Ø¿ô¤Ï¡¢¸Æ½Ð¤·¤Î´Ö¤ËÈó²ÄµÕ¤ÊÊýË¡¤ÇÊÑ´¹¤µ¤ì¤¿Ê¸»ú¿ô¤òÊÖ¤¹¡£ -¤Ä¤Þ¤ê¡¢²ÄµÕÊÑ´¹¤Ï¥«¥¦¥ó¥È¤µ¤ì¤Ê¤¤¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï \fIerrno\fP ¤òÀßÄꤷ¡¢ +関数は、呼出しの間に非可逆な方法で変換された文字数を返す。 +つまり、可逆変換はカウントされない。 +エラーの場合、この関数は \fIerrno\fP を設定し、 .I (size_t)\ \-1 -¤òÊÖ¤¹¡£ +を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O The following errors can occur, among others: -¾¤Î¤¤¤í¤¤¤í¤Ê¥¨¥é¡¼¤Î¤¦¤Á¤«¤é¡¢°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ê¤¦¤ë¡£ +他のいろいろなエラーのうちから、以下のエラーが起こりうる。 .TP .B E2BIG .\"O There is not sufficient room at \fI*outbuf\fP. -\fI*outbuf\fP ¤Ë½½Ê¬¤Ê¶õ¤­¤¬¤Ê¤¤¡£ +\fI*outbuf\fP に十分な空きがない。 .TP .B EILSEQ .\"O An invalid multibyte sequence has been encountered in the input. -ÆþÎϤË̵¸ú¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎ󤬤¢¤Ã¤¿¡£ +入力に無効なマルチバイト文字列があった。 .TP .B EINVAL .\"O An incomplete multibyte sequence has been encountered in the input. -ÆþÎϤËÉÔ´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎ󤬤¢¤Ã¤¿¡£ +入力に不完全なマルチバイト文字列があった。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O This function is available in glibc since version 2.1. -¤³¤Î´Ø¿ô¤Ï¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +この関数はバージョン 2.1 以降の glibc で利用可能である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR iconv_close (3), .BR iconv_open (3) diff --git a/draft/man3/iconv_close.3 b/draft/man3/iconv_close.3 index 56801ab2..94047e4f 100644 --- a/draft/man3/iconv_close.3 +++ b/draft/man3/iconv_close.3 @@ -14,57 +14,57 @@ .\" Translated Tue Jul 11 19:02:58 JST 2000 .\" by Yuichi SATO .\" -.\"WORD: conversion ÊÑ´¹ -.\"WORD: deallocate ²òÊü¤¹¤ë -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ +.\"WORD: conversion 変換 +.\"WORD: deallocate 解放する +.\"WORD: descriptor ディスクリプター .\"WORD: .\" .TH ICONV_CLOSE 3 2008-08-11 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O iconv_close \- deallocate descriptor for character set conversion -iconv_close \- ʸ»ú¥»¥Ã¥ÈÊÑ´¹¤Î¤¿¤á¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤ò²òÊü¤¹¤ë +iconv_close \- 文字セット変換のためのディスクリプターを解放する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int iconv_close(iconv_t " cd ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR iconv_close () .\"O function deallocates a conversion descriptor \fIcd\fP .\"O previously allocated using .\"O .BR iconv_open (3). .BR iconv_close () -´Ø¿ô¤Ï¡¢ +関数は、 .BR iconv_open (3) -¤ò»È¤Ã¤Æ°ÊÁ°¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿ -ÊÑ´¹¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ \fIcd\fP ¤ò²òÊü¤¹¤ë¡£ +を使って以前に割り当てられた +変換ディスクリプター \fIcd\fP を解放する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O When successful, the .\"O .BR iconv_close () .\"O function returns 0. .\"O In case of error, it sets .\"O .I errno .\"O and returns \-1. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR iconv_close () -´Ø¿ô¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï +関数は 0 を返す。 +エラーの場合、この関数は .I errno -¤òÀßÄꤷ \-1 ¤òÊÖ¤¹¡£ +を設定し \-1 を返す。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O This function is available in glibc since version 2.1. -¤³¤Î´Ø¿ô¤Ï¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +この関数はバージョン 2.1 以降の glibc で利用可能である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 UNIX98, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR iconv (3), .BR iconv_open (3) diff --git a/draft/man3/iconv_open.3 b/draft/man3/iconv_open.3 index c3365f63..60c3b415 100644 --- a/draft/man3/iconv_open.3 +++ b/draft/man3/iconv_open.3 @@ -19,49 +19,49 @@ .\" by Yuichi SATO .\" Updated 2007-06-01, Akihiro MOTOKI , LDP v2.50 .\" -.\"WORD: allocate ³ä¤êÅö¤Æ¤ë -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: conversion ÊÑ´¹ -.\"WORD: sequence ʸ»úÎó +.\"WORD: allocate 割り当てる +.\"WORD: descriptor ディスクリプタ +.\"WORD: conversion 変換 +.\"WORD: sequence 文字列 .\" .TH ICONV_OPEN 3 2008-08-11 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O iconv_open \- allocate descriptor for character set conversion -iconv_open \- ʸ»ú¥»¥Ã¥ÈÊÑ´¹¤Î¤¿¤á¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò³ä¤êÅö¤Æ¤ë +iconv_open \- 文字セット変換のためのディスクリプタを割り当てる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "iconv_t iconv_open(const char *" tocode ", const char *" fromcode ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR iconv_open () .\"O function allocates a conversion descriptor suitable .\"O for converting byte sequences from character encoding \fIfromcode\fP to .\"O character encoding \fItocode\fP. .BR iconv_open () -´Ø¿ô¤Ï¡¢Ê¸»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥° \fIfromcode\fP ¤«¤é -ʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥° \fItocode\fP ¤Ø¤Î¥Ð¥¤¥Èʸ»úÎóÊÑ´¹¤ËŬ¤·¤¿ -ÊÑ´¹¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò³ä¤êÅö¤Æ¤ë¡£ +関数は、文字エンコーディング \fIfromcode\fP から +文字エンコーディング \fItocode\fP へのバイト文字列変換に適した +変換ディスクリプタを割り当てる。 .PP .\"O The values permitted for \fIfromcode\fP and \fItocode\fP and the supported .\"O combinations are system-dependent. .\"O For the GNU C library, the permitted .\"O values are listed by the \fBiconv \-\-list\fP command, and all combinations .\"O of the listed values are supported. -\fIfromcode\fP ¤È \fItocode\fP ¤Ë»È¤¦¤³¤È¤Î¤Ç¤­¤ëÃͤȡ¢ -¥µ¥Ý¡¼¥È¤µ¤ì¤ëÁȤ߹ç¤ï¤»¤Ï¡¢¥·¥¹¥Æ¥à¤Ë°Í¸¤¹¤ë¡£ -GNU C ¥é¥¤¥Ö¥é¥ê¤Ç¤Ï¡¢»È¤¦¤³¤È¤Î¤Ç¤­¤ëÃÍ¤Ï -\fBiconv \-\-list\fP ¥³¥Þ¥ó¥É¤Ç¥ê¥¹¥È¤µ¤ì¡¢ -¥ê¥¹¥È¤µ¤ì¤¿¤¹¤Ù¤Æ¤ÎÃͤÎÁȤ߹ç¤ï¤»¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤ë¡£ +\fIfromcode\fP と \fItocode\fP に使うことのできる値と、 +サポートされる組み合わせは、システムに依存する。 +GNU C ライブラリでは、使うことのできる値は +\fBiconv \-\-list\fP コマンドでリストされ、 +リストされたすべての値の組み合わせがサポートされる。 .\"O Furthermore the GNU C library and the .\"O GNU libiconv library support the following two suffixes: -¤µ¤é¤Ë¡¢ GNU C ¥é¥¤¥Ö¥é¥ê¤È GNU libiconv ¥é¥¤¥Ö¥é¥ê¤Ç¤Ï¡¢ -°Ê²¼¤ÎÀÜÈø¼­¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +さらに、 GNU C ライブラリと GNU libiconv ライブラリでは、 +以下の接尾辞がサポートされている。 .TP //TRANSLIT .\"O When the string "//TRANSLIT" is appended to \fItocode\fP, transliteration @@ -69,29 +69,29 @@ GNU C .\"O This means that when a character cannot be represented in the .\"O target character set, it can be approximated through one or several .\"O similarly looking characters. -\fItocode\fP ¤Î¸å¤í¤Ëʸ»úÎó "//TRANSLIT" ¤¬ÉÕ¤¤¤Æ¤¤¤ë¾ì¹ç¡¢ -ËÝÌõ (transliteration) ¤¬Í­¸ú¤Ë¤Ê¤ë¡£¤³¤Î¾ì¹ç¡¢ -ÊÑ´¹Àè¤Îʸ»ú¥»¥Ã¥È¤Çɽ¸½¤Ç¤­¤Ê¤¤Ê¸»ú¤ò¡¢¤½¤Îʸ»ú¤ÈƱ¤¸¤è¤¦¤Ë¸«¤¨¤ë -ʸ»ú (Ê£¿ôʸ»ú¤Î¾ì¹ç¤â¤¢¤ë) ¤Çɽ¸½¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +\fItocode\fP の後ろに文字列 "//TRANSLIT" が付いている場合、 +翻訳 (transliteration) が有効になる。この場合、 +変換先の文字セットで表現できない文字を、その文字と同じように見える +文字 (複数文字の場合もある) で表現することができる。 .TP //IGNORE .\"O When the string "//IGNORE" is appended to \fItocode\fP, characters that .\"O cannot be represented in the target character set will be silently discarded. -\fItocode\fP ¤Î¸å¤í¤Ëʸ»úÎó "//IGNORE" ¤¬ÉÕ¤¤¤Æ¤¤¤ë¾ì¹ç¡¢ -ÊÑ´¹Àè¤Îʸ»ú¥»¥Ã¥È¤Çɽ¸½¤Ç¤­¤Ê¤¤Ê¸»ú¤ÏÌۤäÆ̵»ë¤µ¤ì¤ë¡£ +\fItocode\fP の後ろに文字列 "//IGNORE" が付いている場合、 +変換先の文字セットで表現できない文字は黙って無視される。 .PP .\"O The resulting conversion descriptor can be used with .\"O .BR iconv (3) .\"O any number of times. .\"O It remains valid until deallocated using .\"O .BR iconv_close (3). -¤³¤Î´Ø¿ô¤òÆɤó¤ÇÆÀ¤é¤ì¤¿ÊÑ´¹¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢ +この関数を読んで得られた変換ディスクリプタは、 .BR iconv (3) -¤Ç -²¿Å٤Ǥâ»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤Ï +で +何度でも使うことができる。 +これは .BR iconv_close (3) -¤ò»È¤Ã¤Æ²òÊü¤µ¤ì¤ë¤Þ¤ÇÍ­¸ú¤Ç¤¢¤ë¡£ +を使って解放されるまで有効である。 .PP .\"O A conversion descriptor contains a conversion state. .\"O After creation using @@ -105,19 +105,19 @@ GNU C .\"O To bring the state back to the initial state, use .\"O .BR iconv (3) .\"O with NULL as \fIinbuf\fP argument. -ÊÑ´¹¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÊÑ´¹¾õÂÖ¤ò»ý¤Ä¡£ +変換ディスクリプタは変換状態を持つ。 .BR iconv_open () -¤òÍѤ¤¤ÆÀ¸À®¤µ¤ì¤¿¸å¡¢ÊÑ´¹¾õÂ֤Ͻé´ü¾õÂ֤Ǥ¢¤ë¡£ +を用いて生成された後、変換状態は初期状態である。 .BR iconv (3) -¤ò»È¤¦¤³¤È¤Ë¤è¤ê¡¢¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÊÑ´¹¾õÂÖ¤¬Êѹ¹¤µ¤ì¤ë¡£ -(ÊÑ´¹¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Ç -Ʊ»þ¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤Ê¤¤¤³¤È¤ò°ÕÌ£¤·¤Æ¤¤¤ë¡£) -ÊÑ´¹¾õÂÖ¤ò½é´ü¾õÂÖ¤ËÌ᤹¤Ë¤Ï¡¢ -\fIinbuf\fP °ú¤­¿ô¤ò NULL ¤È¤·¤Æ +を使うことにより、ディスクリプタの変換状態が変更される。 +(変換ディスクリプタはマルチスレッドで +同時に使うことができないことを意味している。) +変換状態を初期状態に戻すには、 +\fIinbuf\fP 引き数を NULL として .BR iconv (3) -¤òÍѤ¤¤ë¤³¤È¡£ +を用いること。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR iconv_open () .\"O function returns a freshly allocated conversion @@ -125,30 +125,30 @@ GNU C .\"O In case of error, it sets \fIerrno\fP and returns .\"O .IR (iconv_t)\ \-1 . .BR iconv_open () -´Ø¿ô¤Ï¡¢¿·¤¿¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿ÊÑ´¹¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï \fIerrno\fP ¤òÀßÄꤷ¡¢ +関数は、新たに割り当てられた変換ディスクリプタを返す。 +エラーの場合、この関数は \fIerrno\fP を設定し、 .I (iconv_t)\ \-1 -¤òÊÖ¤¹¡£ +を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O The following error can occur, among others: .\"O .TP .\"O .B EINVAL .\"O The conversion from \fIfromcode\fP to \fItocode\fP is not supported by the .\"O implementation. -¾¤Î¤¤¤í¤¤¤í¤Ê¥¨¥é¡¼¤Î¤¦¤Á¡¢°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ê¤¦¤ë¡£ +他のいろいろなエラーのうち、以下のエラーが起こりうる。 .TP .B EINVAL -\fIfromcode\fP ¤«¤é \fItocode\fP ¤Ø¤ÎÊÑ´¹¤Ï¡¢¤³¤Î¼ÂÁõ¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +\fIfromcode\fP から \fItocode\fP への変換は、この実装ではサポートされていない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O This function is available in glibc since version 2.1. -¤³¤Î´Ø¿ô¤Ï¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +この関数はバージョン 2.1 以降の glibc で利用可能である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 UNIX98, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR iconv (1), .BR iconv (3), .BR iconv_close (3) diff --git a/draft/man3/ilogb.3 b/draft/man3/ilogb.3 index c3a7e396..c93496ba 100644 --- a/draft/man3/ilogb.3 +++ b/draft/man3/ilogb.3 @@ -32,11 +32,11 @@ .\" .TH ILOGB 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O ilogb, ilogbf, ilogbl \- get integer exponent of a floating-point value -ilogb, ilogbf, ilogbl \- ÉâÆ°¾®¿ôÅÀ¿ô¤Î»Ø¿ôÉô¤òÀ°¿ô¤È¤·¤Æ¼èÆÀ¤¹¤ë +ilogb, ilogbf, ilogbl \- 浮動小数点数の指数部を整数として取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int ilogb(double " x ); @@ -46,14 +46,14 @@ ilogb, ilogbf, ilogbl \- .BI "int ilogbl(long double " x ); .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -79,7 +79,7 @@ or .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions return the exponent part of their argument .\"O as a signed integer. .\"O When no error occurs, these functions @@ -87,20 +87,20 @@ or .\"O .BR logb (3) .\"O functions, cast to .\"O .IR int . -¤³¤ì¤é¤Î´Ø¿ô¤Ï°ú¤­¿ô¤Î»Ø¿ôÉô¤òÉä¹æÉÕ¤­À°¿ô¤È¤·¤ÆÊÖ¤¹¡£ -¥¨¥é¡¼¤¬µ¯¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢Âбþ¤¹¤ë +これらの関数は引き数の指数部を符号付き整数として返す。 +エラーが起らなかった場合、これらの関数は、対応する .BR logb (3) -´Ø¿ô¤ò +関数を .I int -¤Ç¥­¥ã¥¹¥È¤·¤¿¤â¤Î¤ÈÅù²Á¤Ç¤¢¤ë¡£ +でキャストしたものと等価である。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the exponent of .\"O .IR x , .\"O as a signed integer. -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I x -¤Î»Ø¿ôÉô¤òÉä¹æÉÕ¤­À°¿ô¤È¤·¤ÆÊÖ¤¹¡£ +の指数部を符号付き整数として返す。 .\"O If .\"O .I x @@ -110,9 +110,9 @@ or .\"O .BR FP_ILOGB0 . .\" glibc: The numeric value is either `INT_MIN' or `-INT_MAX'. .I x -¤¬¥¼¥í¤Î¾ì¹ç¡¢Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ +がゼロの場合、領域エラー (domain error) が発生し、 .B FP_ILOGB0 -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .\"O If .\"O .I x @@ -121,9 +121,9 @@ or .\" glibc: The numeric value is either `INT_MIN' or `INT_MAX'. .\" On i386, FP_ILOGB0 and FP_ILOGBNAN have the same value. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ +が NaN の場合、領域エラー (domain error) が発生し、 .B FP_ILOGBNAN -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .\"O If .\"O .I x @@ -131,10 +131,10 @@ or .\"O a domain error occurs, and the functions return .\"O .BR INT_MAX . .I x -¤¬Éé¤Î̵¸ÂÂ礫Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ +が負の無限大か正の無限大の場合、 +領域エラー (domain error) が発生し、 .B INT_MAX -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .\" .\" POSIX.1-2001 also says: .\" If the correct value is greater than {INT_MAX}, {INT_MAX} @@ -143,40 +143,40 @@ or .\" If the correct value is less than {INT_MIN}, {INT_MIN} .\" shall be returned and a domain error shall occur. .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Domain error: \fIx\fP is 0 or a NaN -Îΰ襨¥é¡¼: \fIx\fP ¤¬ 0 ¤« NaN +領域エラー: \fIx\fP が 0 か NaN .\" .I errno .\" is set to .\" .BR EDOM . .\"O An invalid floating-point exception .\"O .RB ( FE_INVALID ) .\"O is raised. -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .IP .\"O These functions do not set .\"O .IR errno .\"O for this case. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¤³¤Î¾õ¶·¤Ç +これらの関数は、この状況で .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6794 .TP .\"O Domain error: \fIx\fP is an infinity -Îΰ襨¥é¡¼: \fIx\fP ¤¬Ìµ¸ÂÂç +領域エラー: \fIx\fP が無限大 .\" .I errno .\" is set to .\" .BR EDOM . @@ -187,18 +187,18 @@ or .\"O These functions do not set .\"O .IR errno .\"O or raise an exception for this case. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¤³¤Î¾õ¶·¤Ç +これらの関数は、この状況で .I errno -¤òÀßÄꤻ¤º¡¢Îã³°¤â¾å¤²¤Ê¤¤¡£ +を設定せず、例外も上げない。 .\" FIXME . Is it intentional that these functions do not set errno, .\" or raise an exception? .\" log(), log2(), log10() do set errno .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6794 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR log (3), .BR logb (3), .BR significand (3) diff --git a/draft/man3/index.3 b/draft/man3/index.3 index 5553f094..6edc7ef1 100644 --- a/draft/man3/index.3 +++ b/draft/man3/index.3 @@ -34,11 +34,11 @@ .\" .TH INDEX 3 2011-09-21 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O index, rindex \- locate character in string -index, rindex \- ʸ»úÎóÃæ¤Îʸ»ú¤Î°ÌÃÖ¤ò¼¨¤¹ +index, rindex \- 文字列中の文字の位置を示す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -47,28 +47,28 @@ index, rindex \- ʸ .BI "char *rindex(const char *" s ", int " c ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR index () .\"O function returns a pointer to the first occurrence .\"O of the character \fIc\fP in the string \fIs\fP. .BR index () -´Ø¿ô¤Ï¡¢Ê¸»úÎó \fIs\fP Ãæ¤ËºÇ½é¤Ëʸ»ú \fIc\fP ¤¬ -¸½¤ì¤¿°ÌÃ֤ؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ +関数は、文字列 \fIs\fP 中に最初に文字 \fIc\fP が +現れた位置へのポインタを返す。 .PP .\"O The .\"O .BR rindex () .\"O function returns a pointer to the last occurrence .\"O of the character \fIc\fP in the string \fIs\fP. .BR rindex () -´Ø¿ô¤Ï¡¢Ê¸»úÎó \fIs\fP Ãæ¤ËºÇ¸å¤Ëʸ»ú \fIc\fP ¤¬ -¸½¤ì¤¿°ÌÃ֤ؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ +関数は、文字列 \fIs\fP 中に最後に文字 \fIc\fP が +現れた位置へのポインタを返す。 .PP .\"O The terminating null byte (\(aq\\0\(aq) is considered to be a part of the .\"O strings. -ʸ»úÎó¤ò½ªÃ¼¤¹¤ë NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Ï¡¢Ê¸»úÎó¤Î°ìÉô¤È¤ß¤Ê¤µ¤ì¤ë¡£ +文字列を終端する NULL バイト (\(aq\\0\(aq) は、文字列の一部とみなされる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR index () .\"O and @@ -76,15 +76,15 @@ index, rindex \- ʸ .\"O functions return a pointer to .\"O the matched character or NULL if the character is not found. .BR index () -¤È +と .BR rindex () -´Ø¿ô¤Ï¡¢°ìÃפ·¤¿Ê¸»ú¤Ø¤Î¥Ý¥¤¥ó¥¿¤«¡¢ -¤â¤·Ê¸»ú¤¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +関数は、一致した文字へのポインタか、 +もし文字が見つからない場合は NULL を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O 4.3BSD; marked as LEGACY in POSIX.1-2001. 4.3BSD; -POSIX.1-2001 ¤Ç¤Ï¡Ö²áµî¤Î̾»Ä (LEGACY)¡×¤È°ÌÃÖÉÕ¤±¤é¤ì¤Æ¤¤¤ë¡£ +POSIX.1-2001 では「過去の名残 (LEGACY)」と位置付けられている。 .\"O POSIX.1-2008 removes the specifications of .\"O .BR index () .\"O and @@ -94,18 +94,18 @@ POSIX.1-2001 .\"O and .\"O .BR strrchr (3) .\"O instead. -POSIX.1-2008 ¤Ç¤Ï +POSIX.1-2008 では .BR index () -¤È +と .BR rindex () -¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ -Âå¤ï¤ê¤Ë¡¢ +の仕様が削除されている。 +代わりに、 .BR strchr (3) -¤È +と .BR strrchr (3) -¤Î»ÈÍѤ¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£ +の使用が推奨されている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR memchr (3), .BR strchr (3), .BR string (3), diff --git a/draft/man3/inet.3 b/draft/man3/inet.3 index a94205c5..bfb8f16a 100644 --- a/draft/man3/inet.3 +++ b/draft/man3/inet.3 @@ -48,19 +48,19 @@ .\" Updated 2007-05-01, Akihiro MOTOKI , LDP v2.46 .\" Updated 2008-08-13, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: numbers-and-dots notation ¿ôÃͤȥɥåȤˤè¤ëµ­Ë¡ -.\"WORD: dotted-decimal notation ¥É¥Ã¥È¶èÀÚ¤ê¤Î 10 ¿Ê¿ôµ­Ë¡ -.\"WORD: feature test macro µ¡Ç½¸¡ºº¥Þ¥¯¥í +.\"WORD: numbers-and-dots notation 数値とドットによる記法 +.\"WORD: dotted-decimal notation ドット区切りの 10 進数記法 +.\"WORD: feature test macro 機能検査マクロ .\" .TH INET 3 2008-06-19 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O inet_aton, inet_addr, inet_network, inet_ntoa, inet_makeaddr, inet_lnaof, .\"O inet_netof \- Internet address manipulation routines inet_aton, inet_addr, inet_network, inet_ntoa, inet_makeaddr, inet_lnaof, -inet_netof \- ¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥¢¥É¥ì¥¹Áàºî¥ë¡¼¥Á¥ó +inet_netof \- インターネットアドレス操作ルーチン .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -84,16 +84,16 @@ inet_netof \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR inet_aton (), .BR inet_ntoa (): _BSD_SOURCE || _SVID_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR inet_aton () .\"O converts the Internet host address \fIcp\fP from the .\"O IPv4 numbers-and-dots notation into binary form (in network byte order) @@ -104,18 +104,18 @@ _BSD_SOURCE || _SVID_SOURCE .\"O .I cp .\"O can have one of the following forms: .BR inet_aton () -¤Ï¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥Û¥¹¥È¤Î¥¢¥É¥ì¥¹ \fIcp\fP ¤ò¡¢ -IPv4 ¤Î¿ôÃͤȥɥåȤˤè¤ëɽµ­¤«¤é (¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¤Î) ¥Ð¥¤¥Ê¥êÃÍ¤Ø -ÊÑ´¹¤·¡¢ÊÑ´¹·ë²Ì¤ò \fIinp\fP ¤¬»Ø¤·¤Æ¤¤¤ë¹½Â¤ÂΤ˳ÊǼ¤¹¤ë¡£ -¥¢¥É¥ì¥¹¤¬Í­¸ú¤Ê¾ì¹ç 0 °Ê³°¤òÊÖ¤·¡¢¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +は、インターネットホストのアドレス \fIcp\fP を、 +IPv4 の数値とドットによる表記から (ネットワークバイトオーダの) バイナリ値へ +変換し、変換結果を \fIinp\fP が指している構造体に格納する。 +アドレスが有効な場合 0 以外を返し、そうでない場合は 0 を返す。 .I cp -¤ÇÅϤ¹¥¢¥É¥ì¥¹¤È¤·¤Æ¡¢°Ê²¼¤Î·Á¼°¤òÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +で渡すアドレスとして、以下の形式を用いることができる。 .TP 10 .I a.b.c.d .\"O Each of the four numeric parts specifies a byte of the address; .\"O the bytes are assigned in left-to-right order to produce the binary address. -4 ¤Ä¤Î¿ô»ú¤Î¤½¤ì¤¾¤ì¤Ï¥¢¥É¥ì¥¹¤Î³Æ¥Ð¥¤¥È¤ò¼¨¤¹¡£ -¤³¤ì¤é¤Î¥Ð¥¤¥È¤Ïº¸¤«¤é±¦¤Î½ç½ø¤Ç¥Ð¥¤¥Ê¥ê¥¢¥É¥ì¥¹¤Ë³ä¤êÅö¤Æ¤é¤ì¤ë¡£ +4 つの数字のそれぞれはアドレスの各バイトを示す。 +これらのバイトは左から右の順序でバイナリアドレスに割り当てられる。 .TP .I a.b.c .\"O Parts @@ -130,13 +130,13 @@ IPv4 .\"O This notation is suitable for specifying (outmoded) Class B .\"O network addresses. .I a -¤È +と .I b -¤Ï¥Ð¥¤¥Ê¥ê¥¢¥É¥ì¥¹¤ÎºÇ½é¤Î 2 ¥Ð¥¤¥È¤ò¼¨¤¹¡£ +はバイナリアドレスの最初の 2 バイトを示す。 .I c -¤Ï 16 ¥Ó¥Ã¥ÈÃͤȲò¼á¤µ¤ì¡¢¥Ð¥¤¥Ê¥ê¥¢¥É¥ì¥¹¤Î±¦Â¦¤Î 2 ¥Ð¥¤¥È¤òɽ¤¹¡£ -¤³¤Îɽµ­¤Ï¡¢(²áµî¤Î¤â¤Î¤È¤Ê¤Ã¤¿) ¥¯¥é¥¹ B ¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤ò -»ØÄꤹ¤ë¤Î¤ËŬ¤·¤Æ¤¤¤ë¡£ +は 16 ビット値と解釈され、バイナリアドレスの右側の 2 バイトを表す。 +この表記は、(過去のものとなった) クラス B ネットワークアドレスを +指定するのに適している。 .TP .I a.b .\"O Part @@ -149,21 +149,21 @@ IPv4 .\"O This notation is suitable for specifying (outmoded) Class C .\"O network addresses. .I a -¤Ï¥Ð¥¤¥Ê¥ê¥¢¥É¥ì¥¹¤ÎºÇ½é¤Î¥Ð¥¤¥È¤ò¼¨¤¹¡£ +はバイナリアドレスの最初のバイトを示す。 .I b -¤Ï 24 ¥Ó¥Ã¥ÈÃͤȲò¼á¤µ¤ì¡¢¥Ð¥¤¥Ê¥ê¥¢¥É¥ì¥¹¤Î±¦Â¦¤Î 3 ¥Ð¥¤¥È¤òɽ¤¹¡£ -¤³¤Îɽµ­¤Ï¡¢(²áµî¤Î¤â¤Î¤È¤Ê¤Ã¤¿) ¥¯¥é¥¹ C ¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤ò -»ØÄꤹ¤ë¤Î¤ËŬ¤·¤Æ¤¤¤ë¡£ +は 24 ビット値と解釈され、バイナリアドレスの右側の 3 バイトを表す。 +この表記は、(過去のものとなった) クラス C ネットワークアドレスを +指定するのに適している。 .TP .I a .\"O The value .\"O .I a .\"O is interpreted as a 32-bit value that is stored directly .\"O into the binary address without any byte rearrangement. -ÃÍ +値 .I a -¤Ï 32 ¥Ó¥Ã¥ÈÃͤȲò¼á¤µ¤ì¡¢¥Ð¥¤¥È¤ÎºÆÇÛÃ֤ϹԤï¤ì¤º¡¢ -¤½¤Î¤Þ¤Þ¥Ð¥¤¥Ê¥ê¥¢¥É¥ì¥¹¤È¤·¤Æ³ÊǼ¤µ¤ì¤ë¡£ +は 32 ビット値と解釈され、バイトの再配置は行われず、 +そのままバイナリアドレスとして格納される。 .PP .\"O In all of the above forms, .\"O components of the dotted address can be specified in decimal, @@ -177,21 +177,21 @@ IPv4 .\"O .IR "IPv4 dotted-decimal notation" .\"O (or sometimes: .\"O .IR "IPv4 dotted-quad notation" ). -¾åµ­¤ÎÁ´¤Æ¤Î·Á¼°¤Ç¡¢¥É¥Ã¥È¶èÀÚ¤ê¤Î¥¢¥É¥ì¥¹¤Î³ÆÍ×ÁǤϡ¢10 ¿Ê¿ô¡¢ -8 ¿Ê¿ô (ÀèƬ¤Ë +上記の全ての形式で、ドット区切りのアドレスの各要素は、10 進数、 +8 進数 (先頭に .I 0 -¤òÉÕ¤±¤ë)¡¢ -16 ¿Ê¿ô (ÀèƬ¤Ë +を付ける)、 +16 進数 (先頭に .I 0X -¤òÉÕ¤±¤ë) ¤Ç»ØÄê¤Ç¤­¤ë¡£ -¤³¤ì¤é¤Î·Á¼°¤Î¥¢¥É¥ì¥¹¤ò¤Þ¤È¤á¤Æ -.I "IPv4 ¤Î¿ôÃͤȥɥåȤˤè¤ëɽµ­ (IPv4 numbers-and-dots notation)" -¤È¸Æ¤Ö¡£ -¤Þ¤¿¡¢10 ¿Ê¿ô 4 ¤Ä¤À¤±¤ò»È¤Ã¤¿·Á¼°¤ò -.I "IPv4 ¤Î¥É¥Ã¥È¶èÀÚ¤ê¤Î 10 ¿Ê¿ôɽµ­ (IPv4 dotted-decimal notation)" -¤È¸Æ¤Ö -.RI ( "IPv4 ¤Î¥É¥Ã¥È¶èÀÚ¤ê 4 ʬ³äɽµ­ (IPv4 dotted-decimal notation)" -¤È¸Æ¤Ö¤³¤È¤â¤¢¤ë)¡£ +を付ける) で指定できる。 +これらの形式のアドレスをまとめて +.I "IPv4 の数値とドットによる表記 (IPv4 numbers-and-dots notation)" +と呼ぶ。 +また、10 進数 4 つだけを使った形式を +.I "IPv4 のドット区切りの 10 進数表記 (IPv4 dotted-decimal notation)" +と呼ぶ +.RI ( "IPv4 のドット区切り 4 分割表記 (IPv4 dotted-decimal notation)" +と呼ぶこともある)。 .PP .\"O The .\"O .BR inet_addr () @@ -210,20 +210,20 @@ IPv4 .\"O .BR getaddrinfo (3) .\"O which provide a cleaner way to indicate error return. .BR inet_addr () -´Ø¿ô¤Ï¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥Û¥¹¥È¤Î¥¢¥É¥ì¥¹ \fIcp\fP ¤ò¡¢ -IPv4 ¤Î¿ôÃͤȥɥåȤˤè¤ëɽµ­¤«¤é¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¤Ç¤Î -¥Ð¥¤¥Ê¥êÃͤØÊÑ´¹¤·¤ÆÊÖ¤¹¡£ -ÆþÎϤ¬ÉÔÀµ¤Ê¾ì¹ç¡¢ +関数は、インターネットホストのアドレス \fIcp\fP を、 +IPv4 の数値とドットによる表記からネットワークバイトオーダでの +バイナリ値へ変換して返す。 +入力が不正な場合、 .B INADDR_NONE -(ÉáÄÌ¤Ï \-1) ¤òÊÖ¤¹¡£ -\-1 ¤ÏÍ­¸ú¤Ê¥¢¥É¥ì¥¹ (255.255.255.255) ¤Ê¤Î¤Ç¡¢¤³¤Î´Ø¿ô¤ò»È¤¦¤È -ÌäÂê¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤Î´Ø¿ô¤ò»È¤¦¤Î¤ÏÈò¤±¡¢Âå¤ï¤ê¤Ë +(普通は \-1) を返す。 +\-1 は有効なアドレス (255.255.255.255) なので、この関数を使うと +問題になるかもしれない。 +この関数を使うのは避け、代わりに .BR inet_aton (), .BR inet_pton (3), .BR getaddrinfo (3) -¤ò»È¤¦¤Î¤¬¤è¤¤¡£ -¤³¤ì¤é¤Î´Ø¿ô¤ÎÊý¤¬¡¢¥¨¥é¡¼¤ÎÄÌÃΤ¬¤è¤ê¤­¤ì¤¤¤ÊÊýË¡¤Ç¹Ô¤ï¤ì¤ë¡£ +を使うのがよい。 +これらの関数の方が、エラーの通知がよりきれいな方法で行われる。 .PP .\"O The .\"O .BR inet_network () @@ -235,12 +235,12 @@ IPv4 .\"O On success, the converted address is returned. .\"O If the input is invalid, \-1 is returned. .BR inet_network () -´Ø¿ô¤Ï¡¢ -IPv4 ¤Î¿ôÃͤȥɥåȤˤè¤ëɽµ­¤Îʸ»úÎó \fIcp\fP ¤ò¡¢ -¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥¢¥É¥ì¥¹¤È¤·¤Æ¤Î»ÈÍѤËŬ¤·¤¿ -¥Û¥¹¥È¥Ð¥¤¥È¥ª¡¼¥À¤Î¿ôÃͤËÊÑ´¹¤¹¤ë¡£ -À®¸ù¤¹¤ë¤È¡¢ÊÑ´¹¤µ¤ì¤¿¥¢¥É¥ì¥¹¤òÊÖ¤¹¡£ -ÆþÎϤ¬ÉÔÀµ¤Ê¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ +関数は、 +IPv4 の数値とドットによる表記の文字列 \fIcp\fP を、 +インターネットアドレスとしての使用に適した +ホストバイトオーダの数値に変換する。 +成功すると、変換されたアドレスを返す。 +入力が不正な場合は \-1 を返す。 .PP .\"O The .\"O .BR inet_ntoa () @@ -250,10 +250,10 @@ IPv4 .\"O The string is returned in a statically .\"O allocated buffer, which subsequent calls will overwrite. .BR inet_ntoa () -´Ø¿ô¤Ï¡¢¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¤ÇÅϤµ¤ì¤¿¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥Û¥¹¥È¥¢¥É¥ì¥¹ -\fIin\fP ¤ò¡¢ IPv4 ¤Î¥É¥Ã¥È¶èÀÚ¤ê¤Î 10 ¿Ê¿ôɽµ­¤Îʸ»úÎó¤ËÊÑ´¹¤¹¤ë¡£ -ʸ»úÎó¤ÏÀÅŪ¤Ë³äÅö¤Æ¤é¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤ÆÊÖ¤µ¤ì¤ë¤Î¤Ç¡¢ -¤³¤Î¸å¤Ç¤³¤Î´Ø¿ô¤òºÆÅٸƤӽФ¹¤Èʸ»úÎó¤Ï¾å½ñ¤­¤µ¤ì¤ë¡£ +関数は、ネットワークバイトオーダで渡されたインターネットホストアドレス +\fIin\fP を、 IPv4 のドット区切りの 10 進数表記の文字列に変換する。 +文字列は静的に割当てられたバッファに格納されて返されるので、 +この後でこの関数を再度呼び出すと文字列は上書きされる。 .PP .\"O The .\"O .BR inet_lnaof () @@ -261,8 +261,8 @@ IPv4 .\"O of the Internet address \fIin\fP. .\"O The returned value is in host byte order. .BR inet_lnaof () -´Ø¿ô¤Ï¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥¢¥É¥ì¥¹ \fIin\fP ¤Î¥í¡¼¥«¥ë¥Í¥Ã¥È¥ï¡¼¥¯Éôʬ¤òÊÖ¤¹¡£ -¤³¤ÎÊÖ¤êÃͤϥۥ¹¥È¥Ð¥¤¥È¥ª¡¼¥À¤Ç¤¢¤ë¡£ +関数は、インターネットアドレス \fIin\fP のローカルネットワーク部分を返す。 +この返り値はホストバイトオーダである。 .PP .\"O The .\"O .BR inet_netof () @@ -270,8 +270,8 @@ IPv4 .\"O the Internet address \fIin\fP. .\"O The returned value is in host byte order. .BR inet_netof () -´Ø¿ô¤Ï¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥¢¥É¥ì¥¹ \fIin\fP ¤Î¥Í¥Ã¥È¥ï¡¼¥¯Éôʬ¤òÊÖ¤¹¡£ -¤³¤ÎÊÖ¤êÃͤϥۥ¹¥È¥Ð¥¤¥È¥ª¡¼¥À¤Ç¤¢¤ë¡£ +関数は、インターネットアドレス \fIin\fP のネットワーク部分を返す。 +この返り値はホストバイトオーダである。 .PP .\"O The .\"O .BR inet_makeaddr () @@ -284,15 +284,15 @@ IPv4 .\"O with the local address \fIhost\fP, both in .\"O host byte order. .BR inet_makeaddr () -´Ø¿ô¤Ï +関数は .BR inet_netof () -¤È +と .BR inet_lnaof () -¤ÎµÕ¤Îµ¡Ç½¤ò»ý¤Ä¡£ -¥Í¥Ã¥È¥ï¡¼¥¯ÈÖ¹æ \fInet\fP ¤È¡¢¥í¡¼¥«¥ë¥¢¥É¥ì¥¹ \fIhost\fP ¤ò -ÁȤ߹ç¤ï¤»¤ÆÀ¸À®¤·¤¿¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥Û¥¹¥È¥¢¥É¥ì¥¹¤ò -¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¤ÇÊÖ¤¹¡£ -\fIhost\fP, \fInet\fP ¤Ï¤È¤â¤Ë¥Û¥¹¥È¥Ð¥¤¥È¥ª¡¼¥À¤Ç¤¢¤ë¡£ +の逆の機能を持つ。 +ネットワーク番号 \fInet\fP と、ローカルアドレス \fIhost\fP を +組み合わせて生成した、インターネットホストアドレスを +ネットワークバイトオーダで返す。 +\fIhost\fP, \fInet\fP はともにホストバイトオーダである。 .PP .\"O The structure \fIin_addr\fP as used in .\"O .BR inet_ntoa (), @@ -307,9 +307,9 @@ IPv4 .BR inet_makeaddr (), .BR inet_lnaof (), .BR inet_netof () -¤Ç»ÈÍѤ¹¤ë¹½Â¤ÂÎ \fIin_addr\fP ¤Ï +で使用する構造体 \fIin_addr\fP は .I -¤Ç¼¡¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +で次のように定義されている: .sp .in +4n .nf @@ -321,7 +321,7 @@ struct in_addr { .fi .in .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.3BSD. .\"O .BR inet_addr () .\"O and @@ -329,21 +329,21 @@ struct in_addr { .\"O are specified in POSIX.1-2001. .BR inet_addr (), .BR inet_ntoa () -¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は POSIX.1-2001 で規定されている。 .\"O .BR inet_aton () .\"O is not specified in POSIX.1-2001, but is available on most systems. .BR inet_aton () -¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +は POSIX.1-2001 で規定されていないが、ほとんどのシステムで利用可能である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O On the i386 the host byte order is Least Significant Byte .\"O first (little endian), whereas the network byte order, as used on the .\"O Internet, is Most Significant Byte first (big endian). -i386 ¤Ç¤Ï¥Û¥¹¥È¥Ð¥¤¥È¥ª¡¼¥À¤Ï Least Significant Byte (LSB) first -(¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó) ¤À¤¬¡¢ -¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ç»È¤ï¤ì¤ë¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¤Ï -Most Significant Byte (MSB) first (¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó) -¤Ç¤¢¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +i386 ではホストバイトオーダは Least Significant Byte (LSB) first +(リトルエンディアン) だが、 +インターネットで使われるネットワークバイトオーダは +Most Significant Byte (MSB) first (ビッグエンディアン) +である点に注意すること。 .\"O .BR inet_lnaof (), .\"O .BR inet_netof (), @@ -356,63 +356,63 @@ Most Significant Byte (MSB) first ( .BR inet_lnaof (), .BR inet_netof (), .BR inet_makeaddr () -¤Ï²áµî¤Î̾»Ä¤Ç¤¢¤ê¡¢ÅϤµ¤ì¤¿¥¢¥É¥ì¥¹¤¬ -.I "¥¯¥é¥¹¥Õ¥ë¡¦¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹ (classful network addresses)" -¤Ç¤¢¤ë¤È²¾Äꤷ¤Æ½èÍý¤ò¹Ô¤¦¡£ -¥¯¥é¥¹¥Õ¥ë¡¦¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤Ç¤Ï¡¢°Ê²¼¤Ë¤¢¤ë¤è¤¦¤Ë¡¢ -IPv4 ¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤ò¥Ð¥¤¥È¶­³¦¤Ç¥Í¥Ã¥È¥ï¡¼¥¯Éô¤È¥Û¥¹¥ÈÉô¤Ëʬ³ä¤¹¤ë¡£ +は過去の名残であり、渡されたアドレスが +.I "クラスフル・ネットワークアドレス (classful network addresses)" +であると仮定して処理を行う。 +クラスフル・ネットワークアドレスでは、以下にあるように、 +IPv4 ネットワークアドレスをバイト境界でネットワーク部とホスト部に分割する。 .TP 10 Class A .\"O This address type is indicated by the value 0 in the .\"O most significant bit of the (network byte ordered) address. .\"O The network address is contained in the most significant byte, .\"O and the host address occupies the remaining three bytes. -(¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¤Î) ¥¢¥É¥ì¥¹¤ÎºÇ¾å°Ì¥Ó¥Ã¥È¤¬ 0 ¤Î¾ì¹ç¡¢ -¤³¤Î¥¢¥É¥ì¥¹¼ïÊ̤Ȥʤ롣¤³¤Î¥¢¥É¥ì¥¹¼ïÊ̤Ǥϡ¢ -ºÇ¾å°Ì¥Ð¥¤¥È¤¬¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤òɽ¤·¡¢ -»Ä¤ê¤Î 3 ¥Ð¥¤¥È¤¬¥Û¥¹¥È¥¢¥É¥ì¥¹¤òɽ¤¹¡£ +(ネットワークバイトオーダの) アドレスの最上位ビットが 0 の場合、 +このアドレス種別となる。このアドレス種別では、 +最上位バイトがネットワークアドレスを表し、 +残りの 3 バイトがホストアドレスを表す。 .TP Class B .\"O This address type is indicated by the binary value 10 in the .\"O most significant two bits of the address. .\"O The network address is contained in the two most significant bytes, .\"O and the host address occupies the remaining two bytes. -(¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¤Î) ¥¢¥É¥ì¥¹¤Î¾å°Ì¦ 2 ¥Ó¥Ã¥È¤¬¥Ð¥¤¥Ê¥êÃÍ¤Ç -10 ¤Î¾ì¹ç¡¢¤³¤Î¥¢¥É¥ì¥¹¼ïÊ̤Ȥʤ롣¤³¤Î¥¢¥É¥ì¥¹¼ïÊ̤Ǥϡ¢ -¾å°Ì 2 ¥Ð¥¤¥È¤¬¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤òɽ¤·¡¢ -»Ä¤ê¤Î 2 ¥Ð¥¤¥È¤¬¥Û¥¹¥È¥¢¥É¥ì¥¹¤òɽ¤¹¡£ +(ネットワークバイトオーダの) アドレスの上位側 2 ビットがバイナリ値で +10 の場合、このアドレス種別となる。このアドレス種別では、 +上位 2 バイトがネットワークアドレスを表し、 +残りの 2 バイトがホストアドレスを表す。 .TP Class C .\"O This address type is indicated by the binary value 110 in the .\"O most significant three bits of the address. .\"O The network address is contained in the three most significant bytes, .\"O and the host address occupies the remaining byte. -(¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¤Î) ¥¢¥É¥ì¥¹¤Î¾å°Ì¦ 3 ¥Ó¥Ã¥È¤¬¥Ð¥¤¥Ê¥êÃÍ¤Ç -110 ¤Î¾ì¹ç¡¢¤³¤Î¥¢¥É¥ì¥¹¼ïÊ̤Ȥʤ롣¤³¤Î¥¢¥É¥ì¥¹¼ïÊ̤Ǥϡ¢ -¾å°Ì 3 ¥Ð¥¤¥È¤¬¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤òɽ¤·¡¢ -»Ä¤ê¤Î 1 ¥Ð¥¤¥È¤¬¥Û¥¹¥È¥¢¥É¥ì¥¹¤òɽ¤¹¡£ +(ネットワークバイトオーダの) アドレスの上位側 3 ビットがバイナリ値で +110 の場合、このアドレス種別となる。このアドレス種別では、 +上位 3 バイトがネットワークアドレスを表し、 +残りの 1 バイトがホストアドレスを表す。 .PP .\"O Classful network addresses are now obsolete, .\"O having been superseded by Classless Inter-Domain Routing (CIDR), .\"O which divides addresses into network and host components at .\"O arbitrary bit (rather than byte) boundaries. -¥¯¥é¥¹¥Õ¥ë¡¦¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤Ï¸½ºß¤Ç¤ÏÇѻߤµ¤ì¡¢ -¥¯¥é¥¹¥ì¥¹¡¦¥É¥á¥¤¥ó´Ö¥ë¡¼¥Á¥ó (CIDR) ¤Ë¼è¤Ã¤ÆÂå¤ï¤é¤ì¤¿¡£ -CIDR ¤Ç¤Ï¡¢¥¢¥É¥ì¥¹¤òǤ°Õ¤Î¥Ó¥Ã¥È¶­³¦ (¥Ð¥¤¥È¶­³¦¤Ç¤Ï¤Ê¤¤) ¤Ç -¥Í¥Ã¥È¥ï¡¼¥¯Éô¤È¥Û¥¹¥ÈÉô¤Ëʬ³ä¤¹¤ë¡£ +クラスフル・ネットワークアドレスは現在では廃止され、 +クラスレス・ドメイン間ルーチン (CIDR) に取って代わられた。 +CIDR では、アドレスを任意のビット境界 (バイト境界ではない) で +ネットワーク部とホスト部に分割する。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O An example of the use of .\"O .BR inet_aton () .\"O and .\"O .BR inet_ntoa () .\"O is shown below. .\"O Here are some example runs: -°Ê²¼¤Ï +以下は .BR inet_aton () -¤È +と .BR inet_ntoa () -¤Î»ÈÍÑÎã¤Ç¤¢¤ë¡£¤³¤Î¤è¤¦¤Ë¼Â¹Ô¤¹¤ë¡£ +の使用例である。このように実行する。 .in +4n .nf @@ -423,7 +423,7 @@ CIDR .fi .in .\"O .SS Program source -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #define _BSD_SOURCE @@ -451,7 +451,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR byteorder (3), .BR getaddrinfo (3), .BR gethostbyname (3), diff --git a/draft/man3/inet_ntop.3 b/draft/man3/inet_ntop.3 index a0a9639b..ab7add66 100644 --- a/draft/man3/inet_ntop.3 +++ b/draft/man3/inet_ntop.3 @@ -29,11 +29,11 @@ .\" .TH INET_NTOP 3 2008-11-11 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O inet_ntop \- convert IPv4 and IPv6 addresses from binary to text form -inet_ntop \- IPv4/IPv6 ¥¢¥É¥ì¥¹¤ò¥Ð¥¤¥Ê¥ê·Á¼°¤«¤é¥Æ¥­¥¹¥È·Á¼°¤ËÊÑ´¹¤¹¤ë +inet_ntop \- IPv4/IPv6 アドレスをバイナリ形式からテキスト形式に変換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -41,7 +41,7 @@ inet_ntop \- IPv4/IPv6 .BI " char *" "dst" ", socklen_t " "size" ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This function converts the network address structure .\"O .I src .\"O in the @@ -53,20 +53,20 @@ inet_ntop \- IPv4/IPv6 .\"O The caller specifies the number of bytes available in this buffer in .\"O the argument .\"O .IR size . -¤³¤Î´Ø¿ô¤Ï¡¢ +この関数は、 .I af -¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¹½Â¤ÂÎ +アドレスファミリーのネットワークアドレス構造体 .I src -¤òʸ»úÎó¤ËÊÑ´¹¤¹¤ë¡£ -ÊÑ´¹·ë²Ì¤Îʸ»úÎó¤Ï¡¢ +を文字列に変換する。 +変換結果の文字列は、 .I dst -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¡£ +が指すバッファにコピーされる。 .I dst -¤Ï NULL ¤Ç¤Ê¤¤¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¸Æ¤Ó½Ð¤·»þ¤Ë¡¢¤³¤Î¥Ð¥Ã¥Õ¥¡¤ÇÍøÍѤǤ­¤ë¥Ð¥¤¥È¿ô¤ò -°ú¤­¿ô +は NULL でないポインタでなければならない。 +呼び出し時に、このバッファで利用できるバイト数を +引き数 .I size -¤Ë»ØÄꤹ¤ë¡£ +に指定する。 .PP .\"O .BR inet_ntop () .\"O extends the @@ -77,15 +77,15 @@ inet_ntop \- IPv4/IPv6 .\"O .BR inet_ntop (). .\"O The following address families are currently supported: .BR inet_ntop () -¤Ï +は .BR inet_ntoa (3) -´Ø¿ô¤ò³ÈÄ¥¤·¤ÆÊ£¿ô¤Î¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤ò°·¤¨¤ë¤è¤¦¤Ë¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -º£¸å¤Ï +関数を拡張して複数のアドレスファミリーを扱えるようにしたものである。 +今後は .BR inet_ntoa (3) -¤Ï»È¤ï¤º¡¢ +は使わず、 .BR inet_ntop () -¤ò»È¤¦¤è¤¦¤Ë¤¹¤ë¤ÈÎɤ¤¤À¤í¤¦¡£ -¸½ºß¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤Ï°Ê²¼¤ÎÄ̤ê: +を使うようにすると良いだろう。 +現在サポートされているアドレスファミリーは以下の通り: .TP .B AF_INET .\"O .I src @@ -99,18 +99,18 @@ inet_ntop \- IPv4/IPv6 .\"O must be at least .\"O .B INET_ADDRSTRLEN .\"O bytes long. -¤³¤Î¾ì¹ç +この場合 .I src -¤Ï (¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Î) +は (ネットワークバイトオーダーの) .I "struct in_addr" -¤Ø¤Î¥Ý¥¤¥ó¥¿¤È¤ß¤Ê¤µ¤ì¡¢¤³¤Î¹½Â¤ÂΤÎÆâÍƤ¬ -¥É¥Ã¥È¶èÀÚ¤ê¤Î 10 ¿Ê¿ô·Á¼° "\fIddd.ddd.ddd.ddd\fP" ¤Î -IPv4 ¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤ËÊÑ´¹¤µ¤ì¤ë¡£ -¥Ð¥Ã¥Õ¥¡ +へのポインタとみなされ、この構造体の内容が +ドット区切りの 10 進数形式 "\fIddd.ddd.ddd.ddd\fP" の +IPv4 ネットワークアドレスに変換される。 +バッファ .I dst -¤Ï¾¯¤Ê¤¯¤È¤â +は少なくとも .B INET_ADDRSTRLEN -¥Ð¥¤¥È¤ÎŤµ¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +バイトの長さを持たなければならない。 .TP .B AF_INET6 .\"O .I src @@ -124,20 +124,20 @@ IPv4 .\"O must be at least .\"O .B INET6_ADDRSTRLEN .\"O bytes long. -¤³¤Î¾ì¹ç +この場合 .I src -¤Ï (¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Î) +は (ネットワークバイトオーダーの) .I "struct in6_addr" -¤Ø¤Î¥Ý¥¤¥ó¥¿¤È¤ß¤Ê¤µ¤ì¡¢¤³¤Î¹½Â¤ÂΤÎÆâÍƤ¬¡¢ -(¤³¤Î¥¢¥É¥ì¥¹¤ËÂФ·¤Æ¤â¤Ã¤È¤âŬÀÚ¤Ê) -IPv6 ¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤Îɽ¼¨·Á¼°¤ËÊÑ´¹¤µ¤ì¤ë¡£ -¥Ð¥Ã¥Õ¥¡ +へのポインタとみなされ、この構造体の内容が、 +(このアドレスに対してもっとも適切な) +IPv6 ネットワークアドレスの表示形式に変換される。 +バッファ .I dst -¤Ï¾¯¤Ê¤¯¤È¤â +は少なくとも .B INET6_ADDRSTRLEN -¥Ð¥¤¥È¤ÎŤµ¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +バイトの長さを持たなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR inet_ntop () .\"O returns a non-NULL pointer to @@ -145,31 +145,31 @@ IPv6 .\"O NULL is returned if there was an error, with .\"O .I errno .\"O set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR inet_ntop () -¤Ï +は .I dst -¤Ø¤Î (NULL ¤Ç¤Ê¤¤) ¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬¤¢¤Ã¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤·¡¢ +への (NULL でない) ポインタを返す。 +エラーがあった場合は NULL を返し、 .I errno -¤ò¥¨¥é¡¼¤ò¼¨¤¹ÃͤËŬÀÚ¤ËÀßÄꤹ¤ë¡£ +をエラーを示す値に適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EAFNOSUPPORT .\"O .I af .\"O was not a valid address family. .I af -¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤Ç¤Ê¤«¤Ã¤¿¡£ +がサポートされているアドレスファミリーでなかった。 .TP .B ENOSPC .\"O The converted address string would exceed the size given by .\"O .IR size . -ÊÑ´¹¤µ¤ì¤¿¥¢¥É¥ì¥¹Ê¸»úÎó¤ÎŤµ¤¬ +変換されたアドレス文字列の長さが .I size -¤Ç»ØÄꤵ¤ì¤¿¥µ¥¤¥º¤òĶ²á¤·¤Æ¤·¤Þ¤¦¡£ +で指定されたサイズを超過してしまう。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O Note that RFC\ 2553 defines a prototype where the last argument .\"O .I size @@ -181,33 +181,33 @@ POSIX.1-2001. .\"O but 2.2 and later have .\"O .IR socklen_t . .\"O .\" 2.1.3: size_t, 2.1.91: socklen_t -RFC\ 2553 ¤Ç¤ÏºÇ¸å¤Î°ú¤­¿ô +RFC\ 2553 では最後の引き数 .I size -¤Î¥×¥í¥È¥¿¥¤¥×¤ò +のプロトタイプを .I size_t -·¿¤ÈÄêµÁ¤·¤Æ¤¤¤ë¡£Â¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï RFC\ 2553 ¤Ë¤·¤¿¤¬¤Ã¤Æ¤¤¤ë¡£ -glibc 2.0 ¤È 2.1 ¤Ç¤Ï +型と定義している。多くのシステムでは RFC\ 2553 にしたがっている。 +glibc 2.0 と 2.1 では .I size_t -¤À¤¬¡¢ -glibc 2.2 °Ê¹ß¤Ç¤Ï +だが、 +glibc 2.2 以降では .I socklen_t -¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ +となっている。 .\" 2.1.3: size_t, 2.1.91: socklen_t .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O .B AF_INET6 .\"O converts IPv6-mapped IPv4 addresses into an IPv6 format. .B AF_INET6 -¤Ï IPv4 ¤¬¥Þ¥Ã¥×¤µ¤ì¤¿ IPv6 ¥¢¥É¥ì¥¹¤ò -IPv6 ·Á¼°¤ËÊÑ´¹¤·¤Æ¤·¤Þ¤¦¡£ +は IPv4 がマップされた IPv6 アドレスを +IPv6 形式に変換してしまう。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O See .\"O .BR inet_pton (3). .BR inet_pton (3) -¤ò»²¾È¡£ +を参照。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getnameinfo (3), .BR inet (3), .BR inet_pton (3) diff --git a/draft/man3/inet_pton.3 b/draft/man3/inet_pton.3 index afb9c551..d15c4f42 100644 --- a/draft/man3/inet_pton.3 +++ b/draft/man3/inet_pton.3 @@ -30,17 +30,17 @@ .TH INET_PTON 3 2008-06-18 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O inet_pton \- convert IPv4 and IPv6 addresses from text to binary form -.SH ̾Á° -inet_pton \- IPv4/IPv6 ¥¢¥É¥ì¥¹¤ò¥Æ¥­¥¹¥È·Á¼°¤«¤é¥Ð¥¤¥Ê¥ê·Á¼°¤ËÊÑ´¹¤¹¤ë +.SH 名前 +inet_pton \- IPv4/IPv6 アドレスをテキスト形式からバイナリ形式に変換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .BI "int inet_pton(int " "af" ", const char *" "src" ", void *" "dst" ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This function converts the character string .\"O .I src .\"O into a network address structure in the @@ -49,13 +49,13 @@ inet_pton \- IPv4/IPv6 .\"O copies .\"O the network address structure to .\"O .IR dst . -¤³¤Î´Ø¿ô¤Ïʸ»úÎó +この関数は文字列 .I src -¤ò¡¢¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼ +を、アドレスファミリー .I af -¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¹½Â¤ÂΤËÊÑ´¹¤·¡¢ +のネットワークアドレス構造体に変換し、 .I dst -¤Ë¥³¥Ô¡¼¤¹¤ë¡£ +にコピーする。 .\"O The .\"O .I af .\"O argument must be either @@ -63,14 +63,14 @@ inet_pton \- IPv4/IPv6 .\"O or .\"O .BR AF_INET6 . .I af -°ú¤­¿ô¤Ï +引き数は .B AF_INET -¤« +か .B AF_INET6 -¤Î¤É¤Á¤é¤«¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +のどちらかでなければならない。 .PP .\"O The following address families are currently supported: -¸½ºß¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +現在サポートされているアドレスファミリーは以下の通りである。 .TP .B AF_INET .\"O .I src @@ -86,19 +86,19 @@ inet_pton \- IPv4/IPv6 .\"O .I sizeof(struct in_addr) .\"O (4) bytes (32 bits) long. .I src -¤Ï¥É¥Ã¥È¶èÀÚ¤ê¤Î 10 ¿Ê¿ô·Á¼° "\fIddd.ddd.ddd.ddd\fP" -¤Î IPv4 ¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +はドット区切りの 10 進数形式 "\fIddd.ddd.ddd.ddd\fP" +の IPv4 ネットワークアドレス文字列へのポインタである。 .I ddd -¤Ï 0 ¤«¤é 255 ¤Þ¤Ç¤ÎÈϰϤκÇÂç 3 ·å¤Î 10 ¿Ê¿ô¤Ç¤¢¤ë¡£ -¤³¤Î¥¢¥É¥ì¥¹¤Ï +は 0 から 255 までの範囲の最大 3 桁の 10 進数である。 +このアドレスは .I "struct in_addr" -¤ËÊÑ´¹¤µ¤ì¤Æ +に変換されて .I dst -¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¡£ +にコピーされる。 .I dst -¤ÎŤµ¤Ï +の長さは .I "sizeof(struct in_addr)" -(4) ¥Ð¥¤¥È (32¥Ó¥Ã¥È) ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +(4) バイト (32ビット) でなければならない。 .TP .B AF_INET6 .\"O .I src @@ -111,18 +111,18 @@ inet_pton \- IPv4/IPv6 .\"O .I sizeof(struct in6_addr) .\"O (16) bytes (128 bits) long. .I src -¤Ï IPv6 ¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤¬³ÊǼ¤µ¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤³¤Î¥¢¥É¥ì¥¹¤Ï +は IPv6 ネットワークアドレスが格納された文字列へのポインタである。 +このアドレスは .I "struct in6_addr" -¤ËÊÑ´¹¤µ¤ì¤Æ +に変換されて .I dst -¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¡£ +にコピーされる。 .I dst -¤ÎŤµ¤Ï +の長さは .I "sizeof(struct in6_addr)" -(16) ¥Ð¥¤¥È (128 ¥Ó¥Ã¥È) ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +(16) バイト (128 ビット) でなければならない。 .\"O The allowed formats for IPv6 addresses follow these rules: -°Ê²¼¤Î 3 ¤Ä¤Î¥ë¡¼¥ë¤Ë¤·¤¿¤¬¤Ã¤¿·Á¼°¤¬ IPv6 ¥¢¥É¥ì¥¹¤È¤·¤ÆÆþÎϤǤ­¤ë¡£ +以下の 3 つのルールにしたがった形式が IPv6 アドレスとして入力できる。 .RS .IP 1. 3 .\"O The preferred format is @@ -131,12 +131,12 @@ inet_pton \- IPv4/IPv6 .\"O each of which expresses a 16-bit value (i.e., each .\"O .I x .\"O can be up to 4 hex digits). -¿ä¾©·Á¼°¤Ï +推奨形式は .I x:x:x:x:x:x:x:x -¤Ç¤¢¤ë¡£¤³¤Î·Á¼°¤Ï 8 ¸Ä¤Î 16 ¿Ê¿ô¤«¤é¹½À®¤µ¤ì¡¢ -³Æ¡¹¤Î 16 ¿Ê¿ô¤Ï 16 ¥Ó¥Ã¥ÈÃͤòɽ¤¹ +である。この形式は 8 個の 16 進数から構成され、 +各々の 16 進数は 16 ビット値を表す .RI ( x -¤ÏºÇÂç 4 ·å¤Î 16 ¿Ê¿ô¤Ç¤¢¤ë)¡£ +は最大 4 桁の 16 進数である)。 .IP 2. .\"O A series of contiguous zero values in the preferred format .\"O can be abbreviated to @@ -150,19 +150,19 @@ inet_pton \- IPv4/IPv6 .\"O .IR ::1 . .\"O The wildcard address, consisting of all zeros, can be written as .\"O .IR :: . -¿ä¾©·Á¼°¤ÎÃæ¤ÎϢ³¤¹¤ë 0 ¤ÎÎó¤Ï +推奨形式の中の連続する 0 の列は .I :: -¤Ëû½Ì¤Ç¤­¤ë¡£¥¢¥É¥ì¥¹Ãæ¤Ç»ÈÍѤǤ­¤ë +に短縮できる。アドレス中で使用できる .I :: -¤Ï 1 ¸Ä¤À¤±¤Ç¤¢¤ë¡£ -Î㤨¤Ð¡¢¥ë¡¼¥×¥Ð¥Ã¥¯¥¢¥É¥ì¥¹ +は 1 個だけである。 +例えば、ループバックアドレス .I 0:0:0:0:0:0:0:1 -¤Ï +は .I ::1 -¤Èû½Ì¤Ç¤­¤ë¡£ -Á´¥Ó¥Ã¥È¤¬ 0 ¤Ç¹½À®¤µ¤ì¤ë¥ï¥¤¥ë¥É¥«¡¼¥É¥¢¥É¥ì¥¹¤Ï +と短縮できる。 +全ビットが 0 で構成されるワイルドカードアドレスは .I :: -¤Èµ­ºÜ¤Ç¤­¤ë¡£ +と記載できる。 .IP 3. .\"O An alternate format is useful for expressing IPv4-mapped IPv6 addresses. .\"O This form is written as @@ -176,24 +176,24 @@ inet_pton \- IPv4/IPv6 .\"O defines the least significant 32 bits of the address. .\"O An example of such an address is .\"O .IR ::FFFF:204.152.189.116 . -IPv4 ¤ò¥Þ¥Ã¥Ô¥ó¥°¤·¤¿ IPv6 ¥¢¥É¥ì¥¹¤òɽµ­¤¹¤ë¤Ë¤ÏÊ̤ηÁ¼°¤¬ÊØÍø¤Ç¤¢¤ë¡£ -¤³¤ÎÊ̤ηÁ¼°¤Ï +IPv4 をマッピングした IPv6 アドレスを表記するには別の形式が便利である。 +この別の形式は .I x:x:x:x:x:x:d.d.d.d -¤È½ñ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£ -ºÇ½é¤Î 6 ¸Ä¤Î +と書くことができる。 +最初の 6 個の .I x -¤Ï¥¢¥É¥ì¥¹¤ò 16 ¥Ó¥Ã¥Èñ°Ì¤Ë¶èÀڤ俤Ȥ­¤Î¾å°Ì¦ 6 ¸Äʬ (¤Ä¤Þ¤ê 96 ¥Ó¥Ã¥Èʬ) -¤òÄêµÁ¤¹¤ë 16 ¿Ê¿ô¤Ç¤¢¤ê¡¢ +はアドレスを 16 ビット単位に区切ったときの上位側 6 個分 (つまり 96 ビット分) +を定義する 16 進数であり、 .I d -¤ÎÉôʬ¤Ï¥¢¥É¥ì¥¹¤Î²¼°Ì 32 ¥Ó¥Ã¥È¤ò¥É¥Ã¥È¶èÀÚ¤ê¤Î 10 ¿Ê¿ôɽµ­¤Çɽ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +の部分はアドレスの下位 32 ビットをドット区切りの 10 進数表記で表したものである。 .I ::FFFF:204.152.189.116 -¤Ï¤³¤Î·Á¼°¤ÎÎã¤Ç¤¢¤ë¡£ +はこの形式の例である。 .RE .IP .\"O See RFC 2373 for further details on the representation of IPv6 addresses. -IPv6 ¥¢¥É¥ì¥¹¤Îɽ¸½ÊýË¡¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï RFC 2373 ¤ò»²¾È¤Î¤³¤È¡£ +IPv6 アドレスの表現方法の詳細については RFC 2373 を参照のこと。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR inet_pton () .\"O returns 1 on success (network address was successfully converted). .\"O 0 is returned if @@ -206,25 +206,25 @@ IPv6 .\"O .I errno .\"O is set to .\"O .BR EAFNOSUPPORT . -À®¸ù¤¹¤ë (¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤¬Àµ¾ï¤ËÊÑ´¹¤µ¤ì¤ë) ¤È¡¢ +成功する (ネットワークアドレスが正常に変換される) と、 .BR inet_pton () -¤Ï 1 ¤òÊÖ¤¹¡£ +は 1 を返す。 .I src -¤¬»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤ËÂФ¹¤ë -Àµ¤·¤¤¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹É½µ­¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ -0 ¤òÊÖ¤¹¡£ +が指定されたアドレスファミリーに対する +正しいネットワークアドレス表記でない場合には、 +0 を返す。 .I af -¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ -\-1 ¤òÊÖ¤·¡¢ +がサポートされているアドレスファミリーでない場合には、 +\-1 を返し、 .I errno -¤Ë +に .B EAFNOSUPPORT -¤òÀßÄꤹ¤ë¡£ +を設定する。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Unlike .\"O .BR inet_aton (3) .\"O and @@ -232,11 +232,11 @@ POSIX.1-2001. .\"O .BR inet_pton () .\"O supports IPv6 addresses. .BR inet_aton (3) -¤ä +や .BR inet_addr (3) -¤È°Û¤Ê¤ê¡¢ +と異なり、 .BR inet_pton () -¤Ï IPv6 ¥¢¥É¥ì¥¹¤ËÂбþ¤·¤Æ¤¤¤ë¡£ +は IPv6 アドレスに対応している。 .\"O On the other hand, .\"O .BR inet_pton () .\"O only accepts IPv4 addresses in dotted-decimal notation, whereas @@ -249,44 +249,44 @@ POSIX.1-2001. .\"O For an interface that handles both IPv6 addresses, and IPv4 .\"O addresses in numbers-and-dots notation, see .\"O .BR getaddrinfo (3). -°ìÊý¤Ç¡¢ +一方で、 .BR inet_pton () -¤¬¼õ¤±ÉÕ¤±¤ë IPv4 ¥¢¥É¥ì¥¹¤Ï¥É¥Ã¥È¶èÀÚ¤ê¤Î 10 ¿Ê¿ôɽµ­¤À¤±¤Ç¤¢¤ë¡£ -¤³¤ì¤ËÂФ·¡¢ +が受け付ける IPv4 アドレスはドット区切りの 10 進数表記だけである。 +これに対し、 .BR inet_aton (3) -¤ä +や .BR inet_addr (3) -¤Ç¤Ï¤â¤Ã¤È°ìÈÌŪ¤Ê¥É¥Ã¥È¶èÀÚ¤ê¤Î¿ô»úɽµ­ (16 ¿Ê¿ô¤ä 8 ¿Ê¿ô¤Î·Á¼°¤ä¡¢ -4 ¥Ð¥¤¥ÈÁ´¤Æ¤òÌÀ¼¨Åª¤Ë½ñ¤«¤Ê¤¯¤Æ¤â¤è¤¤·Á¼°) ¤¬»ÈÍѤǤ­¤ë¡£ -¥É¥Ã¥È¶èÀÚ¤ê¤Î¿ô»úɽµ­¤Ç IPv6 ¥¢¥É¥ì¥¹¤È IPv4 ¥¢¥É¥ì¥¹¤ÎξÊý¤ò°·¤¨¤ë -¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +ではもっと一般的なドット区切りの数字表記 (16 進数や 8 進数の形式や、 +4 バイト全てを明示的に書かなくてもよい形式) が使用できる。 +ドット区切りの数字表記で IPv6 アドレスと IPv4 アドレスの両方を扱える +インターフェイスについては、 .BR getaddrinfo (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O .B AF_INET6 .\"O does not recognize IPv4 addresses. .\"O An explicit IPv4-mapped IPv6 address must be supplied in .\"O .I src .\"O instead. .B AF_INET6 -¤Ï IPv4 ¥¢¥É¥ì¥¹¤òǧ¼±¤·¤Ê¤¤¡£ -Âå¤ï¤ê¤Ë IPv4 ¥¢¥É¥ì¥¹¤ò¥Þ¥Ã¥Ô¥ó¥°¤·¤¿ IPv6 ¥¢¥É¥ì¥¹¤ò +は IPv4 アドレスを認識しない。 +代わりに IPv4 アドレスをマッピングした IPv6 アドレスを .I src -¤ËÍ¿¤¨¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +に与えなければならない。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The program below demonstrates the use of .\"O .BR inet_pton () .\"O and .\"O .BR inet_ntop (3). .\"O Here are some example runs: -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï +以下のプログラムは .BR inet_pton () -¤È +と .BR inet_ntop (3) -¤Î»ÈÍÑÎã¤ò¼¨¤¹¤â¤Î¤Ç¤¢¤ë¡£ -¼Â¹Ô¤¹¤ë¤È°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¡£ +の使用例を示すものである。 +実行すると以下のようになる。 .in +4n .nf @@ -299,7 +299,7 @@ POSIX.1-2001. .fi .in .\"O .SS Program source -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -342,7 +342,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getaddrinfo (3), .BR inet (3), .BR inet_ntop (3) diff --git a/draft/man3/infnan.3 b/draft/man3/infnan.3 index a68a3ad1..4e6683f9 100644 --- a/draft/man3/infnan.3 +++ b/draft/man3/infnan.3 @@ -37,11 +37,11 @@ .\" .TH INFNAN 3 1993-06-02 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O infnan \- deal with infinite or not-a-number (NaN) result -infnan \- ̵¸ÂÂç¤È̵¸úÃÍ (NaN) ¤ò¼è°·¤¦ +infnan \- 無限大と無効値 (NaN) を取扱う .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -50,9 +50,9 @@ infnan \- ̵ .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR infnan () .\"O function returns a suitable value for infinity and @@ -62,48 +62,48 @@ infnan \- ̵ .\"O to represent infinity or anything else to represent NaN. .\"O \fIerrno\fP .\"O is also set. -´Ø¿ô +関数 .BR infnan () -¤Ï̵¸ÂÂç¤È̵¸úÃÍ (NaN) ¤Î·ë²Ì¤ËÂФ¹¤ëŬÀÚ¤ÊÃͤòÊÖ¤¹¡£ -\fIerror\fP ¤ÎÃͤϡ¢Ìµ¸ÂÂç¤òɽ¤¹ +は無限大と無効値 (NaN) の結果に対する適切な値を返す。 +\fIerror\fP の値は、無限大を表す .B ERANGE -¤« NaN ¤òɽ¤¹¤½¤ì°Ê³°¤ÎÃͤǤ¢¤ë¡£ -\fIerrno\fP ¤âƱÍͤËÀßÄꤵ¤ì¤ë¡£ +か NaN を表すそれ以外の値である。 +\fIerrno\fP も同様に設定される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O If \fIerror\fP is .\"O .B ERANGE .\"O (Infinity), .\"O .B HUGE_VAL .\"O is returned. -\fIerror\fP ¤¬ +\fIerror\fP が .B ERANGE -(̵¸ÂÂç) ¤Î¾ì¹ç¡¢ +(無限大) の場合、 .B HUGE_VAL -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .PP .\"O If \fIerror\fP is \-\fBERANGE\fP (\-Infinity), \-\fBHUGE_VAL\fP is returned. -\fIerror\fP ¤¬ \-\fBERANGE\fP (Éé¤Î̵¸ÂÂç) ¤Î¾ì¹ç¡¢ -\-\fBHUGE_VAL\fP ¤¬ÊÖ¤µ¤ì¤ë¡£ +\fIerror\fP が \-\fBERANGE\fP (負の無限大) の場合、 +\-\fBHUGE_VAL\fP が返される。 .PP .\"O If \fIerror\fP is anything else, NAN is returned. -\fIerror\fP ¤¬¤½¤ì°Ê³°¤ÎÃͤξì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +\fIerror\fP がそれ以外の値の場合、NaN が返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EDOM .\"O The value of \fIerror\fP is "not-a-number" (NaN). -\fIerror\fP ¤ÎÃͤ¬Ìµ¸úÃÍ (NaN) ¤Ç¤¢¤ë¡£ +\fIerror\fP の値が無効値 (NaN) である。 .TP .B ERANGE .\"O The value of \fIerror\fP is positive infinity or negative infinity. -\fIerror\fP ¤ÎÃͤ¬Àµ¤Î̵¸ÂÂç¤â¤·¤¯¤ÏÉé¤Î̵¸ÂÂç¤Ç¤¢¤ë¡£ +\fIerror\fP の値が正の無限大もしくは負の無限大である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.3BSD. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O This obsolete function was provided in .\"O libc4 and libc5, but is not available in glibc2. -¤³¤ÎÇѻߤµ¤ì¤¿ (obsolete) ´Ø¿ô¤Ï¡¢ -libc4 ¤È libc5 ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤¿¤¬¡¢ glibc2 ¤Ç¤ÏÄ󶡤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +この廃止された (obsolete) 関数は、 +libc4 と libc5 で提供されていたが、 glibc2 では提供されていない。 diff --git a/draft/man3/initgroups.3 b/draft/man3/initgroups.3 index 289eb755..55a1c21a 100644 --- a/draft/man3/initgroups.3 +++ b/draft/man3/initgroups.3 @@ -35,11 +35,11 @@ .\" .TH INITGROUPS 3 2007-07-26 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O initgroups \- initialize the supplementary group access list -initgroups \- ÄɲäΥ°¥ë¡¼¥×¥¢¥¯¥»¥¹¥ê¥¹¥È¤Î½é´ü²½ +initgroups \- 追加のグループアクセスリストの初期化 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -50,15 +50,15 @@ initgroups \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR initgroups (): _BSD_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR initgroups () .\"O function initializes the group access list by @@ -67,18 +67,18 @@ _BSD_SOURCE .\"O The additional group \fIgroup\fP is .\"O also added to the list. .BR initgroups () -´Ø¿ô¤Ï¥°¥ë¡¼¥×¥Ç¡¼¥¿¥Ù¡¼¥¹ \fI/etc/group\fP ¤òÆÉ¤ß -¹þ¤ó¤Ç¡¢\fIuser\fP ¤¬½ê°¤·¤Æ¤¤¤ëÁ´¤Æ¤Î¥°¥ë¡¼¥×¤ò»È¤Ã¤Æ¡¢¥°¥ë¡¼¥×¥¢¥¯ -¥»¥¹¥ê¥¹¥È¤ò½é´ü²½¤¹¤ë¡£¤µ¤é¤Ë¡¢\fIgroup\fP ¤Ë¼¨¤µ¤ì¤ë¥°¥ë¡¼¥×¤â¥°¥ë¡¼ -¥×¥¢¥¯¥»¥¹¥ê¥¹¥È¤ËÄɲ䵤ì¤ë¡£ +関数はグループデータベース \fI/etc/group\fP を読み +込んで、\fIuser\fP が所属している全てのグループを使って、グループアク +セスリストを初期化する。さらに、\fIgroup\fP に示されるグループもグルー +プアクセスリストに追加される。 .\"O The .\"O .I user .\"O argument must be non-NULL. .I user -°ú¿ô¤Ï NULL ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +引数は NULL であってはならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR initgroups () .\"O function returns 0 on success. @@ -86,36 +86,36 @@ _BSD_SOURCE .\"O .I errno .\"O is set appropriately. .BR initgroups () -´Ø¿ô¤Ï¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +関数は、成功すると 0 を返す。 +エラーの場合は \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B ENOMEM .\"O Insufficient memory to allocate group information structure. -¥°¥ë¡¼¥×¾ðÊó¹½Â¤ÂΤòÇÛÃÖ¤¹¤ë¤¿¤á¤Î¥á¥â¥ê¤¬ÉÔ­¤·¤Æ¤¤¤ë¡£ +グループ情報構造体を配置するためのメモリが不足している。 .TP .B EPERM .\"O The calling process has insufficient privilege. .\"O See the underlying system call .\"O .BR setgroups (2). -¸Æ½Ð¤·¥×¥í¥»¥¹¤¬½½Ê¬¤ÊÆø¢¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -¤³¤Î´Ø¿ô¤Î΢¤Ç¼Â¹Ô¤µ¤ì¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë +呼出しプロセスが十分な特権を持っていない。 +この関数の裏で実行されるシステムコール .BR setgroups (2) -¤â»²¾È¤Î¤³¤È¡£ +も参照のこと。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .nf .\"O \fI/etc/group\fP group database file -\fI/etc/group\fP ¥°¥ë¡¼¥×¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë +\fI/etc/group\fP グループデータベースファイル .fi .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getgroups (2), .BR setgroups (2), .BR credentials (7) diff --git a/draft/man3/insque.3 b/draft/man3/insque.3 index ce78ef58..a3bf0112 100644 --- a/draft/man3/insque.3 +++ b/draft/man3/insque.3 @@ -35,9 +35,9 @@ .\" Updated Sun Sep 14 JST 2003 by Kentaro Shirakata .\" .TH INSQUE 3 2008-07-11 "" "Linux Programmer's Manual" -.SH ̾Á° -insque, remque \- ¥­¥å¡¼¤Ë¥¢¥¤¥Æ¥à¤òÁÞÆþ/ºï½ü¤¹¤ë -.SH ½ñ¼° +.SH 名前 +insque, remque \- キューにアイテムを挿入/削除する +.SH 書式 .nf .B #include .sp @@ -49,15 +49,15 @@ insque, remque \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR insque (), .BR remque (): _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 -.SH ÀâÌÀ +.SH 説明 .\"O .BR insque () .\"O and .\"O .BR remque () @@ -67,28 +67,28 @@ _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 .\"O which the first two structure elements are a forward and a .\"O backward pointer. .BR insque () -¤È +と .BR remque () -¤ÏÁÐÊý¸þÏ¢·ë¥ê¥¹¥È (doubly-linked list) ¤òÁàºî¤¹¤ë´Ø¿ô¤Ç¤¢¤ë¡£ -¥ê¥¹¥ÈÃæ¤Î¤½¤ì¤¾¤ì¤ÎÍ×ÁǤϡ¢ºÇ½é¤ÎÆó¤Ä¤Î¹½Â¤ÂÎÍ×ÁǤ¬ -¼¡¤ÈÁ°¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤è¤¦¤Ê¹½Â¤ÂΤǤ¢¤ë¡£ +は双方向連結リスト (doubly-linked list) を操作する関数である。 +リスト中のそれぞれの要素は、最初の二つの構造体要素が +次と前へのポインタであるような構造体である。 .BR insque () -¤Ï \fIelem\fP ¤Ç¼¨¤µ¤ì¤ëÍ×ÁǤò \fIprev\fP ¤Ç¼¨¤µ¤ì¤ë -Í×ÁǤÎľ¸å¤ËÁÞÆþ¤¹¤ë¡£ \fIprev\fP ¤Ï NULL ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +は \fIelem\fP で示される要素を \fIprev\fP で示される +要素の直後に挿入する。 \fIprev\fP は NULL であってはならない。 .BR remque () -¤Ï \fIelem\fP ¤Ç¼¨¤µ¤ì¤ëÍ×ÁǤòÁÐÊý¸þÏ¢·ë¥ê¥¹¥È¤«¤é¼è¤ê½ü¤¯¡£ +は \fIelem\fP で示される要素を双方向連結リストから取り除く。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH "NOTES" -.SH Ãí°Õ +.SH 注意 .\"O Traditionally (e.g., SunOS, Linux libc 4 and libc 5), .\"O the arguments of these functions were of type \fIstruct qelem *\fP, .\"O defined as: -ÅÁÅýŪ¤Ë (SunOS, Linux libc 4,5 ¤Ç¤Ï) ¤³¤ì¤é¤Î´Ø¿ô¤Î°ú¿ô¤Ï -\fIstruct qelem *\fP·¿¤Ç¤¢¤ê¡¢¤³¤ì¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +伝統的に (SunOS, Linux libc 4,5 では) これらの関数の引数は +\fIstruct qelem *\fP型であり、これは以下のように定義されている。 .in +4n .nf @@ -104,9 +104,9 @@ struct qelem { .\"O .B _GNU_SOURCE .\"O is defined before .\"O including \fI\fP. -¤³¤ÎÄêµÁ¤Ï \fI\fP ¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ëÁ°¤Ë +この定義は \fI\fP をインクルードする前に .B _GNU_SOURCE -¤òÄêµÁ¤¹¤ë¤³¤È¤ÇÆÀ¤é¤ì¤ë¡£ +を定義することで得られる。 .\"O The location of the prototypes for these functions differs among several .\"O versions of Unix. @@ -114,7 +114,7 @@ struct qelem { .\"O Some systems place them in \fI\fP. .\"O Linux libc4 and libc 5 placed them .\"O in \fI\fP. -¤³¤ì¤é¤Î´Ø¿ô¤Î¥×¥í¥È¥¿¥¤¥×¤ÎÃÖ¤«¤ì¤ë¾ì½ê¤Ï¡¢Unix ¤Î¼ïÎà¤Ë¤è¤ê°Û¤Ê¤ë¡£ -¾åµ­¤Ï POSIX ÈǤǤ¢¤ë¡£ -\fI\fP ¤Ë¤¢¤ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ -Linux libc4 ¤È libc5 ¤Ï \fI\fP ¤Ë¥×¥í¥È¥¿¥¤¥×¤òÃÖ¤¤¤Æ¤¤¤ë¡£ +これらの関数のプロトタイプの置かれる場所は、Unix の種類により異なる。 +上記は POSIX 版である。 +\fI\fP にあるシステムもある。 +Linux libc4 と libc5 は \fI\fP にプロトタイプを置いている。 diff --git a/draft/man3/intro.3 b/draft/man3/intro.3 index de574c5a..dd1e8985 100644 --- a/draft/man3/intro.3 +++ b/draft/man3/intro.3 @@ -29,16 +29,16 @@ .TH INTRO 3 2010-11-11 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O intro \- Introduction to library functions -.SH ̾Á° -intro \- ¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Î¾Ò²ð +.SH 名前 +intro \- ライブラリ関数の紹介 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Section 3 of the manual describes all library functions excluding the library .\"O functions (system call wrappers) described in section 2, .\"O which implement system calls. -¥Þ¥Ë¥å¥¢¥ë¤Î 3 ¾Ï¤Ç¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¼ÂÁõ¤·¤¿ 2 ¾Ï¤ÇÀâÌÀ¤µ¤ì¤¿ -¥é¥¤¥Ö¥é¥ê´Ø¿ô (¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥é¥Ã¥Ñ¡¼) ¤ò½ü¤¤¤¿ -Á´¤Æ¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤ë¡£ +マニュアルの 3 章では、システムコールを実装した 2 章で説明された +ライブラリ関数 (システムコールのラッパー) を除いた +全てのライブラリ関数について説明している。 .\"O Many of the functions described in the section are part of the .\"O Standard C Library @@ -56,20 +56,20 @@ intro \- .\"O .IR \-lrt , .\"O respectively, .\"O for the aforementioned libraries). -¤³¤Î¾Ï¤ÇÀâÌÀ¤·¤Æ¤¤¤ë´Ø¿ô¤Î¿¤¯¤Ïɸ½à C ¥é¥¤¥Ö¥é¥ê +この章で説明している関数の多くは標準 C ライブラリ .RI ( libc ) -¤Î¤â¤Î¤Ç¤¢¤ë¡£ -¤Þ¤¿¡¢¤¤¤¯¤Ä¤«¤Î´Ø¿ô¤Ï¡¢Â¾¤Î¥é¥¤¥Ö¥é¥ê (Î㤨¤Ð¡¢¿ô³Ø¥é¥¤¥Ö¥é¥ê¤Î +のものである。 +また、いくつかの関数は、他のライブラリ (例えば、数学ライブラリの .I libm -¤ä¥ê¥¢¥ë¥¿¥¤¥à¥é¥¤¥Ö¥é¥ê +やリアルタイムライブラリ .I librt ) -¤Î¤â¤Î¤Ç¤¢¤ë¡£¸å¼Ô¤Î¾ì¹ç¤Ï¡¢¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë¡¢ -ɬÍפʥ饤¥Ö¥é¥ê¤È¥ê¥ó¥¯¤¹¤ë¤¿¤á¤ËɬÍפʥê¥ó¥«¥ª¥×¥·¥ç¥ó¤¬ -¼¨¤µ¤ì¤Æ¤¤¤ë (Î㤨¤Ð¡¢Á°½Ò¤Î¥é¥¤¥Ö¥é¥ê¤Î¾ì¹ç¤Ï¤½¤ì¤¾¤ì +のものである。後者の場合は、マニュアルページに、 +必要なライブラリとリンクするために必要なリンカオプションが +示されている (例えば、前述のライブラリの場合はそれぞれ .I \-lm -¤ä +や .I \-lrt -¤Ç¤¢¤ë)¡£ +である)。 .\"O In some cases, .\"O the programmer must define a feature test macro in order to obtain @@ -81,35 +81,35 @@ intro \- .\"O In such cases, the required macro is described in the man page. .\"O For further information on feature test macros, see .\"O .BR feature_test_macros (7). -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¡Ö½ñ¼°¡×¤ÎÀá¤Ëµ¬Äꤵ¤ì¤¿¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤«¤é´Ø¿ô¤ÎÄêµÁ¤ò -ÆÀ¤ë¤¿¤á¤Ë¡¢¥×¥í¥°¥é¥Þ¤¬µ¡Ç½¸¡ºº¥Þ¥¯¥í¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¾ì¹ç¤¬¤¢¤ë¡£ -¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï¡¢É¬Íפʥޥ¯¥í¤¬¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡£ -(µ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÄêµÁ¤¬É¬Íפʾì¹ç¡¢¤³¤ì¤é¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÄêµÁ¤Ï -¡Ö¤É¤Î¡×¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Î¥¤¥ó¥¯¥ë¡¼¥É¤è¤ê¤âÁ°¤Ç¹Ô¤ï¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£ -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤Î¤µ¤é¤Ê¤ë¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +マニュアルページの「書式」の節に規定されたヘッダファイルから関数の定義を +得るために、プログラマが機能検査マクロを定義しなければならない場合がある。 +このような場合には、必要なマクロがマニュアルページで説明されている。 +(機能検査マクロの定義が必要な場合、これらの機能検査マクロの定義は +「どの」ヘッダファイルのインクルードよりも前で行われなければならない)。 +機能検査マクロのさらなる情報については、 .BR feature_test_macros (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\" .\"O .\" There .\"O .\" are various function groups which can be identified by a letter which .\"O .\" is appended to the chapter number: -.\" ¾ÏÈÖ¹æ¤ËÉÕ¤±²Ã¤¨¤é¤ì¤Æ¤¤¤ëʸ»ú¤Ë¤è¤Ã¤Æ¼±Ê̤Ǥ­¤ëÍÍ¡¹¤Ê´Ø¿ô¤Î¥°¥ë¡¼¥×¤¬¤¢¤ë: +.\" 章番号に付け加えられている文字によって識別できる様々な関数のグループがある: .\" .IP (3C) .\"O .\" These functions, the functions from chapter 2 and from chapter 3S are .\"O .\" contained in the C standard library libc, which will be used by .\"O .\" .BR cc (1) .\"O .\" by default. -.\" ¤³¤ì¤é2¾Ï¤È3S¾Ï¤«¤é¤Î´Ø¿ô¤Ïɸ½àC¥é¥¤¥Ö¥é¥ê libc Ãæ¤Ë´Þ¤Þ¤ì¤ë¤â¤Î¤Ç¤¢¤ê¡¢ -.\" ¥Ç¥Õ¥©¥ë¥È¤Ç +.\" これら2章と3S章からの関数は標準Cライブラリ libc 中に含まれるものであり、 +.\" デフォルトで .\" .BR cc (1) -.\" ¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤ë¤Ç¤¢¤í¤¦¡£ +.\" によって使用されるであろう。 .\" .IP (3S) .\"O .\" These functions are parts of the .\"O .\" .BR stdio (3) .\"O .\" library. They are contained in the standard C library libc. -.\" ¤³¤ì¤é¤Î´Ø¿ô¤Ï +.\" これらの関数は .\" .BR stdio (3) -.\" ¥é¥¤¥Ö¥é¥ê¤Î°ìÉô¤Ç¤¢¤ë¡£É¸½àC¥é¥¤¥Ö¥é¥ê libc ¤Ë´Þ¤Þ¤ì¤ë¡£ +.\" ライブラリの一部である。標準Cライブラリ libc に含まれる。 .\" .IP (3M) .\"O .\" These functions are contained in the arithmetic library libm. They are .\"O .\" used by the @@ -117,43 +117,43 @@ intro \- .\"O .\" FORTRAN compiler by default, but not by the .\"O .\" .BR cc (1) .\"O .\" C compiler, which needs the option \fI\-lm\fP. -.\" ¤³¤ì¤é¤Î´Ø¿ô¤Ï¿ô³Ø´Ø¿ô¥é¥¤¥Ö¥é¥ê libm ¤Ë´Þ¤Þ¤ì¤ë¡£¤³¤ì¤é¤Ï -.\" ¥Ç¥Õ¥©¥ë¥È¤Ç +.\" これらの関数は数学関数ライブラリ libm に含まれる。これらは +.\" デフォルトで .\" .BR f77 (1) -.\" ¥Õ¥©¡¼¥È¥é¥ó¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤ë¡¢¤·¤«¤· +.\" フォートランコンパイラによって使用される、しかし .\" .BR cc (1) -.\" C¥³¥ó¥Ñ¥¤¥é¤Ç»ÈÍѤ¹¤ë¤È¤­¤Ï¡¢\fI\-lm\fP ¥ª¥×¥·¥ç¥ó¤¬É¬ÍפȤʤ롣 +.\" Cコンパイラで使用するときは、\fI\-lm\fP オプションが必要となる。 .\" .IP (3F) .\"O .\" These functions are part of the FORTRAN library libF77. There are no .\"O .\" special compiler flags needed to use these functions. -.\" ¤³¤ì¤é¤Î´Ø¿ô¤Ï¥Õ¥©¡¼¥È¥é¥ó¥é¥¤¥Ö¥é¥ê libF77 ¤Î°ìÉô¤Ç¤¢¤ë¡£ -.\" ¤³¤ì¤é¤Î´Ø¿ô¤ò»ÈÍѤ¹¤ë¤¿¤á¤ËÆÃÊ̤ʥ³¥ó¥Ñ¥¤¥é¥Õ¥é¥°¤ÏɬÍפʤ¤¡£ +.\" これらの関数はフォートランライブラリ libF77 の一部である。 +.\" これらの関数を使用するために特別なコンパイラフラグは必要ない。 .\" .IP (3X) .\"O .\" Various special libraries. The manual pages documenting their functions .\"O .\" specify the library names. -.\" ÍÍ¡¹¤ÊÆÃÊ̤ʥ饤¥Ö¥é¥ê¤Ç¤¢¤ë¡£¤³¤ì¤é¤Î´Ø¿ô¤òʸ½ñ²½¤·¤¿¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï -.\" ¥é¥¤¥Ö¥é¥ê̾¤ò»ØÄꤹ¤ë¡£ +.\" 様々な特別なライブラリである。これらの関数を文書化したマニュアルページは +.\" ライブラリ名を指定する。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O Certain terms and abbreviations are used to indicate UNIX variants .\"O and standards to which calls in this section conform. .\"O See .\"O .BR standards (7). -¤³¤Î¾Ï¤Î´Ø¿ô¤¬½àµò¤¹¤ë UNIX ¥·¥¹¥Æ¥à¤äɸ½à¤ò¼¨¤¹¤Î¤Ë¤¤¤¯¤Ä¤«¤Îñ¸ì¤äά¹æ¤¬ -»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ +この章の関数が準拠する UNIX システムや標準を示すのにいくつかの単語や略号が +使用されている。 .BR standards (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH NOTES -.SH È÷¹Í +.SH 備考 .\"O .SS Authors and Copyright Conditions -.SS Ãø¼Ô¤ÈÃøºî¸¢ +.SS 著者と著作権 .\"O Look at the header of the manual page source for the author(s) and copyright .\"O conditions. .\"O Note that these can be different from page to page! -Ãø¼Ô¤ÈÃøºî¸¢¤Î¾õÂ֤ϥޥ˥奢¥ë¥Ú¡¼¥¸¤Î¥Ø¥Ã¥À¤ò¸«¤ë¤³¤È¡£ -¤³¤ì¤é¤Ï¥Ú¡¼¥¸Ëè¤Ë°Û¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ë¤³¤È¤ËÃí°Õ¡£ +著者と著作権の状態はマニュアルページのヘッダを見ること。 +これらはページ毎に異なる可能性があることに注意。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR intro (2), .BR errno (3), .BR capabilities (7), diff --git a/draft/man3/isalpha.3 b/draft/man3/isalpha.3 index 75a7ec3b..bf1f6b6e 100644 --- a/draft/man3/isalpha.3 +++ b/draft/man3/isalpha.3 @@ -35,14 +35,14 @@ .\" .TH ISALPHA 3 2010-09-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O isalnum, isalpha, isascii, isblank, iscntrl, isdigit, isgraph, islower, .\"O isprint, ispunct, isspace, isupper, isxdigit \- character .\"O classification routines isalnum, isalpha, isascii, isblank, iscntrl, isdigit, isgraph, islower, -isprint, ispunct, isspace, isupper, isxdigit \- ʸ»ú¤òʬÎह¤ë +isprint, ispunct, isspace, isupper, isxdigit \- 文字を分類する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -76,9 +76,9 @@ isprint, ispunct, isspace, isupper, isxdigit \- ʸ .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -97,7 +97,7 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions check whether .\"O .IR c , .\"O which must have the value of an @@ -105,22 +105,22 @@ or .\"O or .\"O .BR EOF , .\"O falls into a certain character class according to the current locale. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Ë½¾¤Ã¤Æ +これらの関数は、現在のロケールに従って .I c -¤òʬÎह¤ë¡£ +を分類する。 .I c -¤Ï +は .I unsigned char -¤« +か .B EOF -¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +でなければならない。 .TP .BR isalnum () .\"O checks for an alphanumeric character; it is equivalent to .\"O .BI "(isalpha(" c ") || isdigit(" c "))" \fR. -±Ñ»ú¤Þ¤¿¤Ï¿ô»ú¤Ç¤¢¤ë¤«¤òÄ´¤Ù¤ë¡£ +英字または数字であるかを調べる。 .BI "(isalpha(" c ") || isdigit(" c "))" \fR -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 .TP .BR isalpha () .\"O checks for an alphabetic character; in the standard \fB"C"\fP @@ -130,49 +130,49 @@ or .\"O .BR isalpha () .\"O is true\-\-letters which are neither upper case nor lower .\"O case. -¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤«¤É¤¦¤«Ä´¤Ù¤ë¡£É¸½à¤Î \fB"C"\fP ¥í¥±¡¼¥ë¤Ç¤Ï +アルファベットかどうか調べる。標準の \fB"C"\fP ロケールでは .BI "(isupper(" c ") || islower(" c "))" \fR -¤ÈÅù²Á¤Ç¤¢¤ë¡£Â¾¤Î¥í¥±¡¼¥ë¤Ç¤Ï¡¢Âçʸ»ú¤Ç¤â¾®Ê¸»ú¤Ç¤â¤Ê¤¤Â¾¤Îʸ»ú¤Ç¤â +と等価である。他のロケールでは、大文字でも小文字でもない他の文字でも .BR isalpha () -¤¬ true ¤òÊÖ¤¹¤³¤È¤¬¤¢¤ë¡£ +が true を返すことがある。 .TP .BR isascii () .\"O checks whether \fIc\fP is a 7-bit .\"O .I unsigned char .\"O value that fits into .\"O the ASCII character set. -\fIc\fP ¤¬¡¢ASCIIʸ»ú¥»¥Ã¥È¤Ë¹çÃפ¹¤ë 7¥Ó¥Ã¥È¤Î +\fIc\fP が、ASCII文字セットに合致する 7ビットの .I unsigned char -¤Ç¤¢¤ë¤«¤òÄ´¤Ù¤ë¡£ +であるかを調べる。 .TP .BR isblank () .\"O checks for a blank character; that is, a space or a tab. -¶õÇòʸ»ú (¥¹¥Ú¡¼¥¹¤«¥¿¥Ö) ¤Ç¤¢¤ë¤«¤òÄ´¤Ù¤ë¡£ +空白文字 (スペースかタブ) であるかを調べる。 .TP .BR iscntrl () .\"O checks for a control character. -À©¸æʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£ +制御文字かどうかを調べる。 .TP .BR isdigit () .\"O checks for a digit (0 through 9). -¿ô»ú (0¡Á9) ¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£ +数字 (0〜9) かどうかを調べる。 .TP .BR isgraph () .\"O checks for any printable character except space. -ɽ¼¨²Äǽ¤Êʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£¥¹¥Ú¡¼¥¹¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ +表示可能な文字かどうかを調べる。スペースは含まれない。 .TP .BR islower () .\"O checks for a lower-case character. -¾®Ê¸»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£ +小文字かどうかを調べる。 .TP .BR isprint () .\"O checks for any printable character including space. -ɽ¼¨²Äǽ¤Êʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£¥¹¥Ú¡¼¥¹¤â´Þ¤Þ¤ì¤ë¡£ +表示可能な文字かどうかを調べる。スペースも含まれる。 .TP .BR ispunct () .\"O checks for any printable character which is not a space or an .\"O alphanumeric character. -ɽ¼¨²Äǽ¤Êʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£¥¹¥Ú¡¼¥¹¤È±Ñ¿ô»ú¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ +表示可能な文字かどうかを調べる。スペースと英数字は含まれない。 .TP .BR isspace () .\"O checks for white-space characters. @@ -193,46 +193,46 @@ or .\"O .TP .\"O .BR isupper () .\"O checks for an uppercase letter. -¶õÇòʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£ +空白文字かどうかを調べる。 .B """C""" -¥í¥±¡¼¥ë¤« +ロケールか .B """POSIX""" -¥í¥±¡¼¥ë¤Ç¤Ï¡¢¶õÇòʸ»ú¤È¤Ï¡¢¥¹¥Ú¡¼¥¹¡¢¥Õ¥©¡¼¥à¥Õ¥£¡¼¥É +ロケールでは、空白文字とは、スペース、フォームフィード .RB ( \(aq\ef\(aq ) -¡¢²þ¹Ô(newline) +、改行(newline) .RB ( \(aq\en\(aq ) -¡¢Éüµ¢(carriage return) +、復帰(carriage return) .RB ( \(aq\er\(aq ) -¡¢¿åÊ¿¥¿¥Ö +、水平タブ .RB ( \(aq\et\(aq ) -¡¢¿âľ¥¿¥Ö +、垂直タブ .RB ( \(aq\ev\(aq ) -¤Ç¤¢¤ë¡£ +である。 .TP .BR isupper () .\"O checks for an uppercase letter. -Âçʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£ +大文字かどうかを調べる。 .TP .BR isxdigit () .\"O checks for a hexadecimal digits, that is, one of .\"O .br .\"O .BR "0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F" . -16¿Ê¿ô¤Ç¤Î¿ô»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£ +16進数での数字かどうかを調べる。 .br .B "0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F" -¤Îʸ»ú¤Ç¤¢¤ë¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¤³¤È¤ÈÅù²Á¤Ç¤¢¤ë¡£ +の文字であるかどうかを調べることと等価である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The values returned are nonzero if the character .\"O .I c .\"O falls into the tested class, and a zero value .\"O if not. -ʸ»ú +文字 .I c -¤¬Ä´¤Ù¤¿Ê¸»ú¤Î¼ïÎà¤Ë¹ç¤Ã¤Æ¤¤¤ì¤Ð 0 °Ê³°¤òÊÖ¤¹¡£ -¤½¤¦¤Ç¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ +が調べた文字の種類に合っていれば 0 以外を返す。 +そうでなければ 0 を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O C99, 4.3BSD. .\"O C89 specifies all of these functions except .\"O .BR isascii () @@ -244,27 +244,27 @@ or .\"O .BR isblank () .\"O conforms to POSIX.1-2001 and C99 7.4.1.3. C99, 4.3BSD. -C89 ¤Ç¤Ï¡¢¤³¤ì¤é¤Î´Ø¿ô¤Î¤¦¤Á +C89 では、これらの関数のうち .BR isascii () -¤È +と .BR isblank () -°Ê³°¤Î -¤¹¤Ù¤Æ¤¬µ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +以外の +すべてが規定されている。 .BR isascii () -¤Ï BSD ¤ä SVr4 ¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ +は BSD や SVr4 の拡張である。 .BR isblank () -¤Ï POSIX.1-2001 ¤È C99 7.4.1.3 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +は POSIX.1-2001 と C99 7.4.1.3 に準拠している。 .\"O POSIX.1-2008 marks .\"O .BR isascii () .\"O as obsolete, .\"O noting that it cannot be used portably in a localized application. -POSIX.1-2008 ¤Ï¡¢ +POSIX.1-2008 は、 .BR isascii () -¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£ -¥í¡¼¥«¥é¥¤¥º¤µ¤ì¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢°Ü¿¢À­¤ò³ÎÊݤ·¤Ä¤Ä¡¢ -¤³¤Î´Ø¿ô¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +を廃止予定としている。 +ローカライズされたアプリケーションでは、移植性を確保しつつ、 +この関数を使用することはできない点に注意すること。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The details of what characters belong into which class depend on the current .\"O locale. .\"O For example, @@ -272,14 +272,14 @@ POSIX.1-2008 .\"O will not recognize an A-umlaut (\(:A) as an uppercase letter in the default .\"O .B "C" .\"O locale. -¤¢¤ëʸ»ú¤¬¤É¤Î¼ïÎà¤ËÆþ¤ë¤«¤È¤¤¤¦¤³¤È¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Ë°Í¸¤¹¤ë¡£ -¤¿¤È¤¨¤Ð¡¢¥Ç¥Õ¥©¥ë¥È¤Î +ある文字がどの種類に入るかということは、現在のロケールに依存する。 +たとえば、デフォルトの .B "C" -¥í¥±¡¼¥ë¤Ç¤Ï +ロケールでは .BR isupper () -¤Ï A ¤Î¥¦¥à¥é¥¦¥È¤òǧ¼±¤Ç¤­¤Ê¤¤¤Î¤Ç¡¢¤½¤ì¤¬Âçʸ»ú¤À¤È¤¤¤¦¤³¤È¤¬¤ï¤«¤é¤Ê¤¤¡£ +は A のウムラウトを認識できないので、それが大文字だということがわからない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR iswalnum (3), .BR iswalpha (3), .BR iswblank (3), diff --git a/draft/man3/isatty.3 b/draft/man3/isatty.3 index f59a1868..f47c605f 100644 --- a/draft/man3/isatty.3 +++ b/draft/man3/isatty.3 @@ -27,30 +27,30 @@ .\" .TH ISATTY 3 2008-12-03 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O isatty \- test whether a file descriptor refers to a terminal -isatty \- ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Ã¼Ëö¤ò»²¾È¤·¤Æ¤¤¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë +isatty \- ファイルディスクリプタが端末を参照しているかをチェックする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int isatty(int " fd ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR isatty () .\"O function tests whether .\"O .I fd .\"O is an open file descriptor referring to a terminal. .BR isatty () -´Ø¿ô¤Ï¡¢ +関数は、 .I fd -¤¬Ã¼Ëö¤ò»²¾È¤¹¤ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤É¤¦¤«¤ò -¥Á¥§¥Ã¥¯¤¹¤ë¡£ +が端末を参照するオープンされたファイルディスクリプタかどうかを +チェックする。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR isatty () .\"O returns 1 if .\"O .I fd @@ -59,20 +59,20 @@ isatty \- .\"O .I errno .\"O is set to indicate the error. .BR isatty () -¤Ï¡¢ +は、 .I fd -¤¬Ã¼Ëö¤ò»²¾È¤¹¤ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ì¤Ð 1 ¤òÊÖ¤¹¡£ -¤½¤¦¤Ç¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤·¡¢ +が端末を参照するオープンされたファイルディスクリプタであれば 1 を返す。 +そうでなければ 0 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O .I fd .\"O is not a valid file descriptor. .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ +が有効なファイルディスクリプタではない。 .TP .B EINVAL .\"O .I fd @@ -82,14 +82,14 @@ isatty \- .\" FIXME File a bug for this? .\"O for this case. .I fd -¤¬Ã¼Ëö°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤ë¡£ -POSIX.1-2001 ¤Ç¤Ï¡¢¤³¤Î¾ì¹ç¤Ë¥¨¥é¡¼ +が端末以外のファイルを参照している。 +POSIX.1-2001 では、この場合にエラー .B ENOTTY -¤òÊÖ¤¹¤Èµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +を返すと規定されている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fstat (2), .BR ttyname (3) diff --git a/draft/man3/isgreater.3 b/draft/man3/isgreater.3 index c356402c..b615b983 100644 --- a/draft/man3/isgreater.3 +++ b/draft/man3/isgreater.3 @@ -12,13 +12,13 @@ .\" .TH ISGREATER 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O isgreater, isgreaterequal, isless, islessequal, islessgreater, .\"O isunordered \- floating-point relational tests without exception for NaN isgreater, isgreaterequal, isless, islessequal, islessgreater, isunordered \- -NaN ¤ËÂФ·¤ÆÎã³°¤òȯÀ¸¤»¤º¤Ë¡¢ÉâÆ°¾®¿ôÅÀ¿ô¤ÎÂç¾®´Ø·¸¤ÎȽÄê¤ò¹Ô¤¦ +NaN に対して例外を発生せずに、浮動小数点数の大小関係の判定を行う .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -36,19 +36,19 @@ NaN .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l .\"O All functions described here: -¤³¤³¤ÇÀâÌÀ¤¹¤ëÁ´¤Æ¤Î´Ø¿ô: +ここで説明する全ての関数: .RS _XOPEN_SOURCE\ >=\ 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L; @@ -58,94 +58,94 @@ or .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The normal relation operations (like \fB<\fP, "less than") .\"O will fail if one of the operands is NaN. .\"O This will cause an exception. .\"O To avoid this, C99 defines these macros. .\"O The macros are guaranteed to evaluate their operands only once. .\"O The operands can be of any real floating-point type. -(\fB<\fP¡¢¡Ö¾®¤Ê¤ê¡×¤Î¤è¤¦¤Ê) Ä̾ï¤Î´Ø·¸Áàºî (relation operations) ¤Ï¡¢ -¥ª¥Ú¥é¥ó¥É¤Î°ìÊý¤¬ NaN ¤Î¾ì¹ç¤Ë¤Ï¼ºÇÔ¤¹¤ë¡£ -¤³¤ì¤ÏÎã³°¤Î¸¶°ø¤Ë¤Ê¤ë¡£ -¤³¤ì¤òÈò¤±¤ë¤¿¤á¡¢C99 ¤Ç¤Ï¼¡¤Î¤è¤¦¤Ê¥Þ¥¯¥í¤òÄêµÁ¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ï¥ª¥Ú¥é¥ó¥É¤ò 1 ²ó¤À¤±É¾²Á¤¹¤ë¤³¤È¤¬Êݾڤµ¤ì¤Æ¤¤¤ë¡£ -¥ª¥Ú¥é¥ó¥É¤Ë¤ÏǤ°Õ¤Î¼Â¿ô¤ÎÉâÆ°¾®¿ôÅÀ¿ô·¿¤ò»ØÄê¤Ç¤­¤ë¡£ +(\fB<\fP、「小なり」のような) 通常の関係操作 (relation operations) は、 +オペランドの一方が NaN の場合には失敗する。 +これは例外の原因になる。 +これを避けるため、C99 では次のようなマクロを定義している。 +これらのマクロはオペランドを 1 回だけ評価することが保証されている。 +オペランドには任意の実数の浮動小数点数型を指定できる。 .TP .BR isgreater () .\"O determines \fI(x)\ >\ (y)\fP without an exception .\"O if \fIx\fP or \fIy\fP is NaN. -\fI(x)\ >\ (y)\fP ¤ò·èÄꤹ¤ë¡£ -\fIx\fP ¤Þ¤¿¤Ï \fIy\fP ¤¬ NaN ¤Ç¤âÎã³°¤òȯÀ¸¤·¤Ê¤¤¡£ +\fI(x)\ >\ (y)\fP を決定する。 +\fIx\fP または \fIy\fP が NaN でも例外を発生しない。 .TP .BR isgreaterequal () .\"O determines \fI(x)\ >=\ (y)\fP without an exception .\"O if \fIx\fP or \fIy\fP is NaN. -\fI(x)\ >=\ (y)\fP ¤ò·èÄꤹ¤ë¡£ -\fIx\fP ¤Þ¤¿¤Ï \fIy\fP ¤¬ NaN ¤Ç¤âÎã³°¤òȯÀ¸¤·¤Ê¤¤¡£ +\fI(x)\ >=\ (y)\fP を決定する。 +\fIx\fP または \fIy\fP が NaN でも例外を発生しない。 .TP .BR isless () .\"O determines \fI(x)\ <\ (y)\fP without an exception .\"O if \fIx\fP or \fIy\fP is NaN. -\fI(x)\ <\ (y)\fP ¤ò·èÄꤹ¤ë¡£ -\fIx\fP ¤Þ¤¿¤Ï \fIy\fP ¤¬ NaN ¤Ç¤âÎã³°¤òȯÀ¸¤·¤Ê¤¤¡£ +\fI(x)\ <\ (y)\fP を決定する。 +\fIx\fP または \fIy\fP が NaN でも例外を発生しない。 .TP .BR islessequal () .\"O determines \fI(x)\ <=\ (y)\fP without an exception .\"O if \fIx\fP or \fIy\fP is NaN. -\fI(x)\ <=\ (y)\fP ¤ò·èÄꤹ¤ë¡£ -\fIx\fP ¤Þ¤¿¤Ï \fIy\fP ¤¬ NaN ¤Ç¤âÎã³°¤òȯÀ¸¤·¤Ê¤¤¡£ +\fI(x)\ <=\ (y)\fP を決定する。 +\fIx\fP または \fIy\fP が NaN でも例外を発生しない。 .TP .BR islessgreater () .\"O determines \fI(x)\ < (y) || (x) >\ (y)\fP .\"O without an exception if \fIx\fP or \fIy\fP is NaN. .\"O This macro is not equivalent to \fIx\ !=\ y\fP because that expression is .\"O true if \fIx\fP or \fIy\fP is NaN. -\fI(x)\ < (y) || (x) >\ (y)\fP ¤ò·èÄꤹ¤ë¡£ -\fIx\fP ¤Þ¤¿¤Ï \fIy\fP ¤¬ NaN ¤Ç¤âÎã³°¤òȯÀ¸¤·¤Ê¤¤¡£ -¤³¤Î¥Þ¥¯¥í¤Ï \fIx\ !=\ y\fP ¤ÈÅù²Á¤Ç¤Ï¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¡¢¤³¤Îɾ²Á¼°¤Ï \fIx\fP ¤Þ¤¿¤Ï \fIy\fP ¤¬ NaN ¤Î¾ì¹ç¤Ë -true ¤È¤Ê¤ë¤¿¤á¤Ç¤¢¤ë¡£ +\fI(x)\ < (y) || (x) >\ (y)\fP を決定する。 +\fIx\fP または \fIy\fP が NaN でも例外を発生しない。 +このマクロは \fIx\ !=\ y\fP と等価ではない。 +なぜなら、この評価式は \fIx\fP または \fIy\fP が NaN の場合に +true となるためである。 .TP .BR isunordered () .\"O determines whether its arguments are unordered, that is, whether .\"O at least one of the arguments is a NaN. -°ú¤­¿ô¤¬ unordered ¤«¤É¤¦¤«¡¢¤Ä¤Þ¤ê°ú¤­¿ô¤Î¾¯¤Ê¤¯¤È¤â°ìÊý¤¬ NaN ¤«¤É¤¦¤« -¤òȽÄꤹ¤ë¡£ +引き数が unordered かどうか、つまり引き数の少なくとも一方が NaN かどうか +を判定する。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The macros other than .\"O .BR isunordered () .\"O return the result of the relational comparison; .\"O these macros return 0 if either argument is a NaN. .BR isunordered () -°Ê³°¤Î¥Þ¥¯¥í¤Ï´Ø·¸Áàºî¤Î·ë²Ì¤òÊÖ¤¹¡£ -°ìÊý¤Î°ú¤­¿ô¤¬ NaN ¤Î¾ì¹ç¡¢¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ï 0 ¤òÊÖ¤¹¡£ +以外のマクロは関係操作の結果を返す。 +一方の引き数が NaN の場合、これらのマクロは 0 を返す。 .\"O .BR isunordered () .\"O returns 1 if \fIx\fP or \fIy\fP is NaN and 0 otherwise. .BR isunordered () -¤Ï \fIx\fP ¤« \fIy\fP ¤¬ NaN ¤Î¾ì¹ç 1 ¤ò¡¢ -¤½¤ì°Ê³°¤Î¾ì¹ç 0 ¤òÊÖ¤¹¡£ +は \fIx\fP か \fIy\fP が NaN の場合 1 を、 +それ以外の場合 0 を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O No errors occur. -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ +エラーは発生しない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Not all hardware supports these functions, .\"O and where hardware support isn't provided, they will be emulated by macros. .\"O This will result in a performance penalty. -¤³¤ì¤é¤Î´Ø¿ô¤ÏÁ´¤Æ¤Î¥Ï¡¼¥É¥¦¥§¥¢¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢¥Þ¥¯¥í¤Ç¥¨¥ß¥å¥ì¡¼¥È¤µ¤ì¤ë¡£ -¥¨¥ß¥å¥ì¡¼¥È¤µ¤ì¤ë¾ì¹ç¤Ï¡¢À­Ç½¾å¤Ç¤ÎÉÔÍø¤È¤Ê¤ë¡£ +これらの関数は全てのハードウェアでサポートされているわけではない。 +サポートされていない場合は、マクロでエミュレートされる。 +エミュレートされる場合は、性能上での不利となる。 .\"O Don't use these functions if NaN is of no concern for you. -NaN ¤Ë¤Ä¤¤¤Æ¿´ÇÛ¤·¤Ê¤¯¤Æ¹½¤ï¤Ê¤¤¾ì¹ç¤Ï¡¢ -¤³¤ì¤é¤Î´Ø¿ô¤ò»È¤ï¤Ê¤¤¤³¤È¡£ +NaN について心配しなくて構わない場合は、 +これらの関数を使わないこと。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fpclassify (3), .BR isnan (3) diff --git a/draft/man3/iswalnum.3 b/draft/man3/iswalnum.3 index cd5a87e2..2c3b5a1d 100644 --- a/draft/man3/iswalnum.3 +++ b/draft/man3/iswalnum.3 @@ -19,18 +19,18 @@ .\" .TH ISWALNUM 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O iswalnum \- test for alphanumeric wide character -iswalnum \- ±Ñ¿ô»ú¥ï¥¤¥Éʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë +iswalnum \- 英数字ワイド文字かどうかを調べる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int iswalnum(wint_t " wc ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR iswalnum () .\"O function is the wide-character equivalent of the @@ -39,48 +39,48 @@ iswalnum \- .\"O It tests whether \fIwc\fP is a wide character .\"O belonging to the wide character class "alnum". .BR iswalnum () -´Ø¿ô¤Ï¡¢ +関数は、 .BR isalnum (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢¤¢¤ë¥ï¥¤¥Éʸ»ú¤¬Ê¸»ú¥¯¥é¥¹ "alnum" ¤Ë°¤¹¤ë¤«¤É¤¦¤«¤òÄ´¤Ù -¤ë¡£ +に対応するワイド文字関数である。 +この関数は、あるワイド文字が文字クラス "alnum" に属するかどうかを調べ +る。 .PP .\"O The wide-character class "alnum" is a subclass of the wide-character class .\"O "graph", and therefore also a subclass of the wide-character class "print". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤Ï¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢ -¤ê¡¢¤·¤¿¤¬¤Ã¤Æ¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤â¤¢¤ë¡£ +ワイド文字クラス "alnum" は、ワイド文字クラス "graph" のサブクラスであ +り、したがってワイド文字クラス "print" のサブクラスでもある。 .PP .\"O Being a subclass of the wide-character class "print", .\"O the wide-character class .\"O "alnum" is disjoint from the wide-character class "cntrl". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "cntrl" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "print" のサブクラスなので、ワイド文字クラス "alnum" +はワイド文字クラス "cntrl" と共通部分を持たない。 .PP .\"O Being a subclass of the wide-character class "graph", .\"O the wide-character class "alnum" is disjoint from .\"O the wide-character class "space" and its subclass "blank". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤È¤½¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë "blank" ¤È¶¦ÄÌ -Éôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "graph" のサブクラスなので、ワイド文字クラス "alnum" +はワイド文字クラス "space" とそのサブクラスである "blank" と共通 +部分を持たない。 .PP .\"O The wide-character class "alnum" is disjoint from the wide-character class .\"O "punct". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤Ï¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "punct" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "alnum" は、ワイド文字クラス "punct" と共通部分を持たない。 .PP .\"O The wide-character class "alnum" is the union of the wide character classes .\"O "alpha" and "digit". .\"O As such, it also contains the wide character class .\"O "xdigit". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤Ï¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" ¤È "digit" ¤ÎÏ -½¸¹ç¤Ç¤¢¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢¤³¤Î¥¯¥é¥¹¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "xdigit" ¤â´Þ¤à¡£ +ワイド文字クラス "alnum" は、ワイド文字クラス "alpha" と "digit" の和 +集合である。したがって、このクラスはワイド文字クラス "xdigit" も含む。 .PP .\"O The wide-character class "alnum" always contains at least the letters \(aqA\(aq .\"O to \(aqZ\(aq, \(aqa\(aq to \(aqz\(aq and the digits \(aq0\(aq to \(aq9\(aq. -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤Ï¡¢¾¯¤Ê¤¯¤È¤â \(aqA\(aq ¤«¤é \(aqZ\(aq, -\(aqa\(aq ¤«¤é \(aqz\(aq ¤Þ¤Ç¤Îʸ»ú¤È \(aq0\(aq ¤«¤é \(aq9\(aq ¤Þ¤Ç¤Î¿ô»ú¤ò -¾ï¤Ë´Þ¤à¡£ +ワイド文字クラス "alnum" は、少なくとも \(aqA\(aq から \(aqZ\(aq, +\(aqa\(aq から \(aqz\(aq までの文字と \(aq0\(aq から \(aq9\(aq までの数字を +常に含む。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR iswalnum () .\"O function returns nonzero @@ -88,13 +88,13 @@ iswalnum \- .\"O belonging to the wide-character class "alnum". .\"O Otherwise it returns zero. .BR iswalnum () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬Ê¸»ú¥¯¥é¥¹ "alnum" ¤Ë°¤¹¤ë¥ï¥¤¥Éʸ»ú -¤Ê¤é¤Ð 0 ¤Ç¤Ê¤¤ÃͤòÊÖ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ +関数は、\fIwc\fP が文字クラス "alnum" に属するワイド文字 +ならば 0 でない値を返す。それ以外の場合には 0 を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR iswalnum () .\"O depends on the @@ -102,10 +102,10 @@ C99. .\"O category of the .\"O current locale. .BR iswalnum () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR isalnum (3), .BR iswctype (3) diff --git a/draft/man3/iswalpha.3 b/draft/man3/iswalpha.3 index 2231adbf..288b96e5 100644 --- a/draft/man3/iswalpha.3 +++ b/draft/man3/iswalpha.3 @@ -19,18 +19,18 @@ .\" .TH ISWALPHA 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O iswalpha \- test for alphabetic wide character -iswalpha \- ±Ñ»ú¥ï¥¤¥Éʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë +iswalpha \- 英字ワイド文字かどうかを調べる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int iswalpha(wint_t " wc ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR iswalpha () .\"O function is the wide-character equivalent of the @@ -39,53 +39,53 @@ iswalpha \- .\"O It tests whether \fIwc\fP is a wide character .\"O belonging to the wide-character class "alpha". .BR iswalpha () -´Ø¿ô¤Ï +関数は .BR isalpha (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï \fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£ +に対応するワイド文字関数である。 +この関数は \fIwc\fP がワイド文字かどうかを調べる。 .PP .\"O The wide-character class "alpha" is a subclass of the .\"O wide-character class "alnum", .\"O and therefore also a subclass of the wide-character class "graph" and .\"O of the wide-character class "print". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" ¤Ï¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢ -¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤È¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Î -¥µ¥Ö¥¯¥é¥¹¤Ç¤â¤¢¤ë¡£ +ワイド文字クラス "alpha" は、ワイド文字クラス "alnum" のサブクラスであ +る。したがって、ワイド文字クラス "graph" とワイド文字クラス "print" の +サブクラスでもある。 .PP .\"O Being a subclass of the wide-character class "print", .\"O the wide-character class .\"O "alpha" is disjoint from the wide-character class "cntrl". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "cntrl" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "print" のサブクラスなので、ワイド文字クラス "alpha" +はワイド文字クラス "cntrl" と共通部分を持たない。 .PP .\"O Being a subclass of the wide-character class "graph", .\"O the wide-character class "alpha" is disjoint from .\"O the wide-character class "space" and its subclass "blank". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤È¤½¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë "blank" ¤È¶¦ÄÌ -Éôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "graph" のサブクラスなので、ワイド文字クラス "alpha" +はワイド文字クラス "space" とそのサブクラスである "blank" と共通 +部分を持たない。 .PP .\"O Being a subclass of the wide-character class "alnum", .\"O the wide-character class "alpha" is disjoint from .\"O the wide-character class "punct". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "punct" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "alnum" のサブクラスなので、ワイド文字クラス "alpha" +はワイド文字クラス "punct" と共通部分を持たない。 .PP .\"O The wide-character class "alpha" is disjoint from the wide-character class .\"O "digit". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" ¤Ï¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "digit" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "alpha" は、ワイド文字クラス "digit" と共通部分を持たない。 .PP .\"O The wide-character class "alpha" contains the wide-character classes "upper" .\"O and "lower". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" ¤Ï¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "upper" ¤È "lower" ¤ò´Þ -¤à¡£ +ワイド文字クラス "alpha" は、ワイド文字クラス "upper" と "lower" を含 +む。 .PP .\"O The wide-character class "alpha" always contains at least the .\"O letters \(aqA\(aq to \(aqZ\(aq and \(aqa\(aq to \(aqz\(aq. -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" ¤Ï¡¢¾¯¤Ê¤¯¤È¤â \(aqA\(aq ¤«¤é \(aqZ\(aq, -\(aqa\(aq ¤«¤é \(aqz\(aq ¤Þ¤Ç¤Îʸ»ú¤ò¾ï¤Ë´Þ¤à¡£ +ワイド文字クラス "alpha" は、少なくとも \(aqA\(aq から \(aqZ\(aq, +\(aqa\(aq から \(aqz\(aq までの文字を常に含む。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR iswalpha () .\"O function returns nonzero @@ -93,13 +93,13 @@ iswalpha \- .\"O belonging to the wide-character class "alpha". .\"O Otherwise it returns zero. .BR iswalpha () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" ¤Ë°¤¹¤ë -¥ï¥¤¥Éʸ»ú¤Ê¤é¤Ð 0 ¤Ç¤Ê¤¤ÃͤòÊÖ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ +関数は、\fIwc\fP がワイド文字クラス "alpha" に属する +ワイド文字ならば 0 でない値を返す。それ以外の場合には 0 を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR iswalpha () .\"O depends on the @@ -107,10 +107,10 @@ C99. .\"O category of the .\"O current locale. .BR iswalpha () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR isalpha (3), .BR iswctype (3) diff --git a/draft/man3/iswblank.3 b/draft/man3/iswblank.3 index 41ad6c40..018aed3e 100644 --- a/draft/man3/iswblank.3 +++ b/draft/man3/iswblank.3 @@ -19,11 +19,11 @@ .\" .TH ISWBLANK 3 2010-09-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O iswblank \- test for whitespace wide character -iswblank \- ¶õÇò¥ï¥¤¥Éʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë +iswblank \- 空白ワイド文字かどうかを調べる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -33,9 +33,9 @@ iswblank \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -49,7 +49,7 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR iswblank () .\"O function is the wide-character equivalent of the @@ -58,33 +58,33 @@ or .\"O It tests whether \fIwc\fP is a wide character .\"O belonging to the wide-character class "blank". .BR iswblank () -´Ø¿ô¤Ï¡¢ +関数は、 .BR isblank (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "blank" ¤Ë°¤¹¤ë¥ï¥¤¥Éʸ»ú¤«¤É -¤¦¤«¤òÄ´¤Ù¤ë¡£ +に対応するワイド文字関数である。 +この関数は、\fIwc\fP がワイド文字クラス "blank" に属するワイド文字かど +うかを調べる。 .PP .\"O The wide-character class "blank" is a subclass of the wide-character class .\"O "space". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "blank" ¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë¡£ +ワイド文字クラス "blank" はワイド文字クラス "space" のサブクラスである。 .PP .\"O Being a subclass of the wide-character class "space", .\"O the wide-character class "blank" is disjoint from the .\"O wide-character class "graph" and therefore also disjoint .\"O from its subclasses "alnum", "alpha", "upper", "lower", "digit", .\"O "xdigit", "punct". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "blank" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤È¤Ï¶¦ÄÌÉôʬ¤ò»ý¤¿¤º¡¢¤·¤¿¤¬¤Ã¤Æ¤½¤Î¥µ¥Ö¥¯¥é¥¹ -¤Ç¤¢¤ë "alnum", "alpha", "upper", "lower", "digit", "xdigit", "punct" -¤È¤â¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "space" のサブクラスなので、ワイド文字クラス "blank" +はワイド文字クラス "graph" とは共通部分を持たず、したがってそのサブクラス +である "alnum", "alpha", "upper", "lower", "digit", "xdigit", "punct" +とも共通部分を持たない。 .PP .\"O The wide-character class "blank" always contains .\"O at least the space character .\"O and the control character \(aq\\t\(aq. -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "blank" ¤Ï¡¢¾¯¤Ê¤¯¤È¤â¶õÇòʸ»ú¤ÈÀ©¸æʸ»ú \(aq\\t\(aq ¤ò¾ï¤Ë -´Þ¤à¡£ +ワイド文字クラス "blank" は、少なくとも空白文字と制御文字 \(aq\\t\(aq を常に +含む。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR iswblank () .\"O function returns nonzero @@ -92,13 +92,13 @@ or .\"O belonging to the wide-character class "blank". .\"O Otherwise it returns zero. .BR iswblank () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "blank" ¤Ë°¤¹¤ë -¥ï¥¤¥Éʸ»ú¤Ê¤é¤Ð 0 ¤Ç¤Ê¤¤ÃͤòÊÖ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ +関数は、\fIwc\fP がワイド文字クラス "blank" に属する +ワイド文字ならば 0 でない値を返す。それ以外の場合には 0 を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR iswblank () .\"O depends on the @@ -106,10 +106,10 @@ POSIX.1-2001. .\"O category of the .\"O current locale. .BR iswblank () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR isblank (3), .BR iswctype (3) diff --git a/draft/man3/iswcntrl.3 b/draft/man3/iswcntrl.3 index 083c5ae1..ff3a3808 100644 --- a/draft/man3/iswcntrl.3 +++ b/draft/man3/iswcntrl.3 @@ -17,18 +17,18 @@ .\" .TH ISWCNTRL 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O iswcntrl \- test for control wide character -iswcntrl \- ¥ï¥¤¥ÉÀ©¸æʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë +iswcntrl \- ワイド制御文字かどうかを調べる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int iswcntrl(wint_t " wc ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR iswcntrl () .\"O function is the wide-character equivalent of the @@ -37,40 +37,40 @@ iswcntrl \- .\"O It tests whether \fIwc\fP is a wide character .\"O belonging to the wide-character class "cntrl". .BR iswcntrl () -´Ø¿ô¤Ï¡¢ +関数は、 .BR iscntrl (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "cntrl" ¤Ë°¤¹¤ë¥ï¥¤¥Éʸ»ú¤«¤É -¤¦¤«¤òÄ´¤Ù¤ë¡£ +に対応するワイド文字関数である。 +この関数は、\fIwc\fP がワイド文字クラス "cntrl" に属するワイド文字かど +うかを調べる。 .PP .\"O The wide-character class "cntrl" is disjoint from the wide-character class .\"O "print" and therefore also disjoint from its subclasses "graph", "alpha", .\"O "upper", "lower", "digit", "xdigit", "punct". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "cntrl" ¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤È¤Ï¶¦ÄÌÉôʬ¤ò»ý¤¿ -¤º¡¢¤·¤¿¤¬¤Ã¤Æ¤½¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë "graph", "alpha", "upper", "lower", -"digit", "xdigit", "punct" ¤È¤â¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "cntrl" はワイド文字クラス "print" とは共通部分を持た +ず、したがってそのサブクラスである "graph", "alpha", "upper", "lower", +"digit", "xdigit", "punct" とも共通部分を持たない。 .PP .\"O For an unsigned char \fIc\fP, \fIiscntrl(c)\fP .\"O implies \fIiswcntrl(btowc(c))\fP, .\"O but not vice versa. -unsigned char ·¿¤Ç¤¢¤ë \fIc\fP ¤ËÂФ·¤Æ¤Ï¡¢\fIiscntrl(c)\fP ¤Ï°ÅÌÛŪ¤Ë -\fIiswcntrl(btowc(c))\fP ¤ò¹Ô¤¦¡£ +unsigned char 型である \fIc\fP に対しては、\fIiscntrl(c)\fP は暗黙的に +\fIiswcntrl(btowc(c))\fP を行う。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR iswcntrl () .\"O function returns nonzero if \fIwc\fP is a .\"O wide character belonging to the wide-character class "cntrl". .\"O Otherwise it returns zero. -´Ø¿ô +関数 .BR iswcntrl () -¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "cntrl" ¤Ë°¤¹¤ë -¥ï¥¤¥Éʸ»ú¤Ê¤é¤Ð 0 ¤Ç¤Ê¤¤ÃͤòÊÖ¤¹¡£¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ +は、\fIwc\fP がワイド文字クラス "cntrl" に属する +ワイド文字ならば 0 でない値を返す。そうでない場合には 0 を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR iswcntrl () .\"O depends on the @@ -78,10 +78,10 @@ C99. .\"O category of the .\"O current locale. .BR iswcntrl () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR iscntrl (3), .BR iswctype (3) diff --git a/draft/man3/iswctype.3 b/draft/man3/iswctype.3 index 6d20e9ff..41d241a0 100644 --- a/draft/man3/iswctype.3 +++ b/draft/man3/iswctype.3 @@ -15,22 +15,22 @@ .\" Translated Thu Sep 2 21:47:20 JST 1999 .\" by FUJIWARA Teruyoshi .\" -.\" WORD: character property descriptor ʸ»ú°À­»Ø¼¨»Ò +.\" WORD: character property descriptor 文字属性指示子 .\" .TH ISWCTYPE 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O iswctype \- wide-character classification -iswctype \- ¥ï¥¤¥Éʸ»ú¤ÎʬÎà +iswctype \- ワイド文字の分類 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int iswctype(wint_t " wc ", wctype_t " desc ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O If \fIwc\fP is a wide character having the character property designated by .\"O \fIdesc\fP (or in other words: belongs to the character class designated by .\"O \fIdesc\fP), the @@ -41,24 +41,24 @@ iswctype \- .\"O If \fIwc\fP is .\"O .BR WEOF , .\"O zero is returned. -\fIwc\fP ¤¬ -\fIdesc\fP ¤Ç»Ø¼¨¤µ¤ì¤¿Ê¸»ú°À­¤ò»ý¤Ä (¸À¤¤´¹¤¨¤ë¤È¡¢\fIdesc\fP ¤Ç»Ø¼¨ -¤µ¤ì¤¿Ê¸»ú¥¯¥é¥¹¤Ë°¤¹¤ë) ¥ï¥¤¥Éʸ»ú¤Ê¤é¤Ð¡¢ +\fIwc\fP が +\fIdesc\fP で指示された文字属性を持つ (言い換えると、\fIdesc\fP で指示 +された文字クラスに属する) ワイド文字ならば、 .BR iswctype () -´Ø¿ô¤Ï 0 ¤Ç -¤Ê¤¤ÃͤòÊÖ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï¤³¤Î´Ø¿ô¤Ï 0 ¤òÊÖ¤¹¡£\fIwc\fP ¤¬ +関数は 0 で +ない値を返す。それ以外の場合にはこの関数は 0 を返す。\fIwc\fP が .B WEOF -¤Ê¤é¤Ð 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +ならば 0 が返される。 .PP .\"O \fIdesc\fP must be a character property descriptor .\"O returned by the .\"O .BR wctype () .\"O function. -\fIdesc\fP ¤Ï +\fIdesc\fP は .BR wctype () -´Ø¿ô¤¬ÊÖ¤¹Ê¸»ú°À­»Ø¼¨»Ò¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +関数が返す文字属性指示子でなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR iswctype () .\"O function returns nonzero if @@ -66,13 +66,13 @@ iswctype \- .\"O property. .\"O Otherwise it returns 0. .BR iswctype () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬»Ø¼¨¤µ¤ì¤¿Â°À­¤ò»ý¤Ä¤Ê¤é¤Ð 0 ¤Ç¤Ê¤¤ -ÃͤòÊÖ¤¹¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ +関数は、\fIwc\fP が指示された属性を持つならば 0 でない +値を返す。そうでなければ 0 を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR iswctype () .\"O depends on the @@ -80,11 +80,11 @@ C99. .\"O category of the .\"O current locale. .BR iswctype () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR iswalnum (3), .BR iswalpha (3), .BR iswblank (3), diff --git a/draft/man3/iswdigit.3 b/draft/man3/iswdigit.3 index 1f95527f..d8d90c58 100644 --- a/draft/man3/iswdigit.3 +++ b/draft/man3/iswdigit.3 @@ -19,18 +19,18 @@ .\" .TH ISWDIGIT 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O iswdigit \- test for decimal digit wide character -iswdigit \- ¿ô»ú¥ï¥¤¥Éʸ»ú¤Ç¤¢¤ë¤«¤É¤¦¤«¤òÄ´¤Ù¤ë +iswdigit \- 数字ワイド文字であるかどうかを調べる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int iswdigit(wint_t " wc ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR iswdigit () .\"O function is the wide-character equivalent of the @@ -39,53 +39,53 @@ iswdigit \- .\"O It tests whether \fIwc\fP is a wide character .\"O belonging to the wide-character class "digit". .BR iswdigit () -´Ø¿ô¤Ï¡¢ +関数は、 .BR isdigit (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "digit" ¤Ë°¤¹¤ë¥ï¥¤¥Éʸ»ú¤«¤É -¤¦¤«¤òÄ´¤Ù¤ë¡£ +に対応するワイド文字関数である。 +この関数は、\fIwc\fP がワイド文字クラス "digit" に属するワイド文字かど +うかを調べる。 .PP .\"O The wide-character class "digit" is a subclass of the wide-character class .\"O "xdigit", and therefore also a subclass .\"O of the wide-character class "alnum", of .\"O the wide-character class "graph" and of the wide-character class "print". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "digit" ¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "xdigit" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢ -¤ë¡£¤·¤¿¤¬¤Ã¤Æ¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤ä¡¢¤½¤Î¿Æ¥¯¥é¥¹¤Ç¤¢¤ë "graph", -¤µ¤é¤Ë¤½¤Î¿Æ¥¯¥é¥¹¤Ç¤¢¤ë "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤â¤¢¤ë¡£ +ワイド文字クラス "digit" はワイド文字クラス "xdigit" のサブクラスであ +る。したがってワイド文字クラス "alnum" や、その親クラスである "graph", +さらにその親クラスである "print" のサブクラスでもある。 .PP .\"O Being a subclass of the wide-character .\"O class "print", the wide-character class .\"O "digit" is disjoint from the wide-character class "cntrl". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "digit" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "cntrl" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "print" のサブクラスなので、ワイド文字クラス "digit" +はワイド文字クラス "cntrl" と共通部分を持たない。 .PP .\"O Being a subclass of the wide-character class "graph", .\"O the wide-character class .\"O "digit" is disjoint from the wide-character class "space" and its subclass .\"O "blank". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "digit" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤È¤½¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë "blank" ¤È¶¦ÄÌ -Éôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "graph" のサブクラスなので、ワイド文字クラス "digit" +はワイド文字クラス "space" とそのサブクラスである "blank" と共通 +部分を持たない。 .PP .\"O Being a subclass of the wide-character .\"O class "alnum", the wide-character class .\"O "digit" is disjoint from the wide-character class "punct". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "digit" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "punct" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "alnum" のサブクラスなので、ワイド文字クラス "digit" +はワイド文字クラス "punct" と共通部分を持たない。 .PP .\"O The wide-character class "digit" is .\"O disjoint from the wide-character class .\"O "alpha" and therefore also disjoint from its subclasses "lower", "upper". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "digit" ¤Ï¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿ -¤Ê¤¤¡£¤·¤¿¤¬¤Ã¤Æ¡¢¤½¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë "lower", "upper" ¤È¤â¶¦ÄÌÉôʬ¤ò -»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "digit" は、ワイド文字クラス "alpha" と共通部分を持た +ない。したがって、そのサブクラスである "lower", "upper" とも共通部分を +持たない。 .PP .\"O The wide-character class "digit" always .\"O contains exactly the digits \(aq0\(aq to \(aq9\(aq. -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "digit" ¤Ïɬ¤º¡¢\(aq0\(aq ¤«¤é \(aq9\(aq ¤Þ¤Ç¤Î -¿ô»ú¤À¤±¤«¤é¤Ê¤ë¡£ +ワイド文字クラス "digit" は必ず、\(aq0\(aq から \(aq9\(aq までの +数字だけからなる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR iswdigit () .\"O function returns nonzero @@ -93,13 +93,13 @@ iswdigit \- .\"O belonging to the wide-character class "digit". .\"O Otherwise it returns zero. .BR iswdigit () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "digit" ¤Ë°¤¹¤ë¥ï -¥¤¥Éʸ»ú¤Ê¤é¤Ð 0 ¤Ç¤Ê¤¤ÃͤòÊÖ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ +関数は、\fIwc\fP がワイド文字クラス "digit" に属するワ +イド文字ならば 0 でない値を返す。それ以外の場合には 0 を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR iswdigit () .\"O depends on the @@ -107,10 +107,10 @@ C99. .\"O category of the .\"O current locale. .BR iswdigit () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR isdigit (3), .BR iswctype (3) diff --git a/draft/man3/iswgraph.3 b/draft/man3/iswgraph.3 index 08b32b1c..c6f0e03b 100644 --- a/draft/man3/iswgraph.3 +++ b/draft/man3/iswgraph.3 @@ -19,18 +19,18 @@ .\" .TH ISWGRAPH 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O iswgraph \- test for graphic wide character -iswgraph \- ¥°¥é¥Õ¥£¥Ã¥¯¥ï¥¤¥Éʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë +iswgraph \- グラフィックワイド文字かどうかを調べる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int iswgraph(wint_t " wc ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR iswgraph () .\"O function is the wide-character equivalent of the @@ -39,42 +39,42 @@ iswgraph \- .\"O It tests whether \fIwc\fP is a wide character .\"O belonging to the wide-character class "graph". .BR iswgraph () -´Ø¿ô¤Ï¡¢ +関数は、 .BR isgraph (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Ë°¤¹¤ë¥ï¥¤¥Éʸ»ú¤«¤É -¤¦¤«¤òÄ´¤Ù¤ë¡£ +に対応するワイド文字関数である。 +この関数は、\fIwc\fP がワイド文字クラス "graph" に属するワイド文字かど +うかを調べる。 .PP .\"O The wide-character class "graph" is disjoint from the wide-character class .\"O "space" and therefore also disjoint from its subclass "blank". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Ï¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿ -¤Ê¤¤¡£¤·¤¿¤¬¤Ã¤Æ¡¢¤½¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë "blank" ¤È¤â¶¦ÄÌÉôʬ¤ò -»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "graph" は、ワイド文字クラス "space" と共通部分を持た +ない。したがって、そのサブクラスである "blank" とも共通部分を +持たない。 .\" Note: UNIX98 (susv2/xbd/locale.html) says that "graph" and "space" may .\" have characters in common, except U+0020. But C99 (ISO/IEC 9899:1999 .\" section 7.25.2.1.10) says that "space" and "graph" are disjoint. .PP .\"O The wide-character class "graph" is a subclass of the wide-character class .\"O "print". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Ï¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢ -¤ë¡£ +ワイド文字クラス "graph" は、ワイド文字クラス "print" のサブクラスであ +る。 .PP .\"O Being a subclass of the wide-character class "print", .\"O the wide-character class .\"O "graph" is disjoint from the wide-character class "cntrl". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "cntrl" ¤È¤Ï¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "print" のサブクラスなので、ワイド文字クラス "graph" +はワイド文字クラス "cntrl" とは共通部分を持たない。 .PP .\"O The wide-character class "graph" contains all the wide characters from the .\"O wide-character class "print" except the space character. .\"O It therefore contains .\"O the wide-character classes "alnum" and "punct". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Ï¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Ë°¤¹¤ëʸ»ú¤Î¤¦ -¤Á¶õÇòʸ»ú¤ò½ü¤¯Á´¤Æ¤Î¥ï¥¤¥Éʸ»ú¤ò´Þ¤ó¤Ç¤¤¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢ -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Ë¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "almun" ¤È "punct" ¤¬´Þ -¤Þ¤ì¤ë¡£ +ワイド文字クラス "graph" は、ワイド文字クラス "print" に属する文字のう +ち空白文字を除く全てのワイド文字を含んでいる。したがって、 +ワイド文字クラス "graph" にはワイド文字クラス "almun" と "punct" が含 +まれる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR iswgraph () .\"O function returns nonzero @@ -82,13 +82,13 @@ iswgraph \- .\"O belonging to the wide-character class "graph". .\"O Otherwise it returns zero. .BR iswgraph () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Ë°¤¹¤ë¥ï -¥¤¥Éʸ»ú¤Ê¤é¤Ð 0 ¤Ç¤Ê¤¤ÃͤòÊÖ¤¹¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ +関数は、\fIwc\fP がワイド文字クラス "graph" に属するワ +イド文字ならば 0 でない値を返す。そうでなければ 0 を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR iswgraph () .\"O depends on the @@ -96,10 +96,10 @@ C99. .\"O category of the .\"O current locale. .BR iswgraph () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR isgraph (3), .BR iswctype (3) diff --git a/draft/man3/iswlower.3 b/draft/man3/iswlower.3 index 699f4683..356f867c 100644 --- a/draft/man3/iswlower.3 +++ b/draft/man3/iswlower.3 @@ -19,18 +19,18 @@ .\" .TH ISWLOWER 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O iswlower \- test for lowercase wide character -iswlower \- ¾®Ê¸»ú¥ï¥¤¥Éʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë +iswlower \- 小文字ワイド文字かどうかを調べる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int iswlower(wint_t " wc ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR iswlower () .\"O function is the wide-character equivalent of the @@ -39,58 +39,58 @@ iswlower \- .\"O It tests whether \fIwc\fP is a wide character .\"O belonging to the wide-character class "lower". .BR iswlower () -´Ø¿ô¤Ï¡¢ +関数は、 .BR islower (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬Ê¸»ú¥¯¥é¥¹ "lower" ¤Ë°¤¹¤ë¥ï¥¤¥Éʸ»ú¤«¤É¤¦¤«¤ò -Ä´¤Ù¤ë¡£ +に対応するワイド文字関数である。 +この関数は、\fIwc\fP が文字クラス "lower" に属するワイド文字かどうかを +調べる。 .PP .\"O The wide-character class "lower" is a subclass of the wide-character class .\"O "alpha", and therefore also a subclass .\"O of the wide-character class "alnum", of .\"O the wide-character class "graph" and of the wide-character class "print". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "lower" ¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ê¡¢ -¤·¤¿¤¬¤Ã¤Æ¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤È¤½¤Î¿Æ¥¯¥é¥¹¤Ç¤¢¤ë "graph", ¤µ¤é¤Ë -¤½¤Î¿Æ¥¯¥é¥¹¤Ç¤¢¤ë "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤â¤¢¤ë¡£ +ワイド文字クラス "lower" はワイド文字クラス "alpha" のサブクラスであり、 +したがってワイド文字クラス "alnum" とその親クラスである "graph", さらに +その親クラスである "print" のサブクラスでもある。 .PP .\"O Being a subclass of the wide-character class "print", .\"O the wide-character class .\"O "lower" is disjoint from the wide-character class "cntrl". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "lower" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "cntrl" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "print" のサブクラスなので、ワイド文字クラス "lower" +はワイド文字クラス "cntrl" と共通部分を持たない。 .PP .\"O Being a subclass of the wide-character class "graph", .\"O the wide-character class "lower" is disjoint from the .\"O wide-character class "space" and its subclass .\"O "blank". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "lower" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤È¤½¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë "blank" ¤È¶¦ÄÌ -Éôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "graph" のサブクラスなので、ワイド文字クラス "lower" +はワイド文字クラス "space" とそのサブクラスである "blank" と共通 +部分を持たない。 .PP .\"O Being a subclass of the wide-character class "alnum", .\"O the wide-character class .\"O "lower" is disjoint from the wide-character class "punct". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "lower" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "punct" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "alnum" のサブクラスなので、ワイド文字クラス "lower" +はワイド文字クラス "punct" と共通部分を持たない。 .PP .\"O Being a subclass of the wide-character class "alpha", .\"O the wide-character class .\"O "lower" is disjoint from the wide-character class "digit". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "lower" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "digit" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "alpha" のサブクラスなので、ワイド文字クラス "lower" +はワイド文字クラス "digit" と共通部分を持たない。 .PP .\"O The wide-character class "lower" contains at least .\"O those characters \fIwc\fP .\"O which are equal to \fItowlower(wc)\fP and different .\"O from \fItowupper(wc)\fP. -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "lower" ¤Ï¾¯¤Ê¤¯¤È¤â¡¢\fIwc\fP ¤È \fItowlower(wc)\fP -¤¬Åù¤·¤¯¤Ê¤ê¡¢¤«¤Ä \fItowupper(wc)\fP ¤È°Û¤Ê¤ë¤è¤¦¤Êʸ»ú¤ò´Þ¤à¡£ +ワイド文字クラス "lower" は少なくとも、\fIwc\fP と \fItowlower(wc)\fP +が等しくなり、かつ \fItowupper(wc)\fP と異なるような文字を含む。 .PP .\"O The wide-character class "lower" always contains .\"O at least the letters \(aqa\(aq to \(aqz\(aq. -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "lower" ¤Ï¾¯¤Ê¤¯¤È¤â \(aqa\(aq ¤«¤é \(aqz\(aq ¤òɬ¤º´Þ¤à¡£ +ワイド文字クラス "lower" は少なくとも \(aqa\(aq から \(aqz\(aq を必ず含む。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR iswlower () .\"O function returns nonzero @@ -98,13 +98,13 @@ iswlower \- .\"O belonging to the wide-character class "lower". .\"O Otherwise it returns zero. .BR iswlower () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "lower" ¤Ë°¤¹¤ë¥ï -¥¤¥Éʸ»ú¤Ê¤é¤Ð 0 ¤Ç¤Ê¤¤ÃͤòÊÖ¤¹¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ +関数は、\fIwc\fP がワイド文字クラス "lower" に属するワ +イド文字ならば 0 でない値を返す。そうでなければ 0 を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR iswlower () .\"O depends on the @@ -112,18 +112,18 @@ C99. .\"O category of the .\"O current locale. .BR iswlower () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .PP .\"O This function is not very appropriate for dealing with Unicode characters, .\"O because Unicode knows about three cases: upper, lower and title case. -¤³¤Î´Ø¿ô¤Ç Unicode ¤ò°·¤¦¤Î¤Ï¤¢¤Þ¤êŬÀڤǤʤ¤¡£ -¤Ê¤¼¤Ê¤é¡¢Unicode ¤Ë¤Ï -Âçʸ»ú (upper case)¡¦¾®Ê¸»ú (lower case)¡¦¥¿¥¤¥È¥ëʸ»ú (title case) -¤Î 3 ¤Ä¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£ +この関数で Unicode を扱うのはあまり適切でない。 +なぜなら、Unicode には +大文字 (upper case)・小文字 (lower case)・タイトル文字 (title case) +の 3 つが含まれているからである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR islower (3), .BR iswctype (3), .BR towlower (3) diff --git a/draft/man3/iswprint.3 b/draft/man3/iswprint.3 index fdc47e8e..a8883fbc 100644 --- a/draft/man3/iswprint.3 +++ b/draft/man3/iswprint.3 @@ -17,18 +17,18 @@ .\" .TH ISWPRINT 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O iswprint \- test for printing wide character -iswprint \- °õ»ú²Äǽ¥ï¥¤¥Éʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë +iswprint \- 印字可能ワイド文字かどうかを調べる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int iswprint(wint_t " wc ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR iswprint () .\"O function is the wide-character equivalent of the @@ -37,34 +37,34 @@ iswprint \- .\"O It tests whether \fIwc\fP is a wide character .\"O belonging to the wide-character class "print". .BR iswprint () -´Ø¿ô¤Ï¡¢ +関数は、 .BR isprint (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Ë°¤¹¤ë¥ï¥¤¥Éʸ»ú¤«¤É -¤¦¤«¤òÄ´¤Ù¤ë¡£ +に対応するワイド文字関数である。 +この関数は、\fIwc\fP がワイド文字クラス "print" に属するワイド文字かど +うかを調べる。 .PP .\"O The wide-character class "print" is disjoint from the wide-character class .\"O "cntrl". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Ï¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "cntrl" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿ -¤Ê¤¤¡£ +ワイド文字クラス "print" は、ワイド文字クラス "cntrl" と共通部分を持た +ない。 .PP .\"O The wide-character class "print" contains the wide-character class "graph". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Ï¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤ò´Þ¤à¡£ +ワイド文字クラス "print" は、ワイド文字クラス "graph" を含む。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR iswprint () .\"O function returns nonzero if \fIwc\fP is a .\"O wide character belonging to the wide-character class "print". .\"O Otherwise it returns zero. .BR iswprint () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Ë°¤¹¤ë¥ï -¥¤¥Éʸ»ú¤Ê¤é¤Ð 0 ¤Ç¤Ê¤¤ÃͤòÊÖ¤¹¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ +関数は、\fIwc\fP がワイド文字クラス "print" に属するワ +イド文字ならば 0 でない値を返す。そうでなければ 0 を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR iswprint () .\"O depends on the @@ -72,10 +72,10 @@ C99. .\"O category of the .\"O current locale. .BR iswprint () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR isprint (3), .BR iswctype (3) diff --git a/draft/man3/iswpunct.3 b/draft/man3/iswpunct.3 index 52f06aa6..3bd6e4ec 100644 --- a/draft/man3/iswpunct.3 +++ b/draft/man3/iswpunct.3 @@ -19,18 +19,18 @@ .\" .TH ISWPUNCT 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O iswpunct \- test for punctuation or symbolic wide character -iswpunct \- ¶çÆÉÅÀ¡¦µ­¹æ¥ï¥¤¥Éʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë +iswpunct \- 句読点・記号ワイド文字かどうかを調べる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int iswpunct(wint_t " wc ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR iswpunct () .\"O function is the wide-character equivalent of the @@ -39,39 +39,39 @@ iswpunct \- .\"O It tests whether \fIwc\fP is a wide character .\"O belonging to the wide-character class "punct". .BR iswpunct () -´Ø¿ô¤Ï¡¢ +関数は、 .BR ispunct (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "punct" ¤Ë°¤¹¤ë¥ï¥¤¥Éʸ»ú¤«¤É -¤¦¤«¤òÄ´¤Ù¤ë¡£ +に対応するワイド文字関数である。 +この関数は、\fIwc\fP がワイド文字クラス "punct" に属するワイド文字かど +うかを調べる。 .PP .\"O The wide-character class "punct" is a subclass of the wide-character class .\"O "graph", and therefore also a subclass of the wide-character class "print". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "punct" ¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤â¤¢¤ë¡£ +ワイド文字クラス "punct" はワイド文字クラス "graph" のサブクラスである。 +したがって、ワイド文字クラス "print" のサブクラスでもある。 .PP .\"O The wide-character class "punct" is disjoint from the wide-character class .\"O "alnum" and therefore also disjoint from its subclasses "alpha", "upper", .\"O "lower", "digit", "xdigit". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "punct" ¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê -¤¤¡£¤·¤¿¤¬¤Ã¤Æ¡¢¤½¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë "alpha", "upper", "lower", "digit", "xdigit" -¤È¤â¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "punct" はワイド文字クラス "alnum" と共通部分を持たな +い。したがって、そのサブクラスである "alpha", "upper", "lower", "digit", "xdigit" +とも共通部分を持たない。 .PP .\"O Being a subclass of the wide-character class "print", .\"O the wide-character class .\"O "punct" is disjoint from the wide-character class "cntrl". -¥ï¥¤¥Éʸ»ú "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "punct" ¤Ï -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "cntrl" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字 "print" のサブクラスなので、ワイド文字クラス "punct" は +ワイド文字クラス "cntrl" と共通部分を持たない。 .PP .\"O Being a subclass of the wide-character class "graph", .\"O the wide-character class .\"O "punct" is disjoint from the wide-character class "space" and its subclass .\"O "blank". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "punct" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤È¤½¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë "blank" ¤È¶¦ÄÌ -Éôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "graph" のサブクラスなので、ワイド文字クラス "punct" +はワイド文字クラス "space" とそのサブクラスである "blank" と共通 +部分を持たない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR iswpunct () .\"O function returns nonzero @@ -79,13 +79,13 @@ iswpunct \- .\"O belonging to the wide-character class "punct". .\"O Otherwise it returns zero. .BR iswpunct () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "punct" ¤Ë°¤¹¤ë -¥ï¥¤¥Éʸ»ú¤Ê¤é¤Ð 0 ¤Ç¤Ê¤¤ÃͤòÊÖ¤¹¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ +関数は、\fIwc\fP がワイド文字クラス "punct" に属する +ワイド文字ならば 0 でない値を返す。そうでなければ 0 を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR iswpunct () .\"O depends on the @@ -93,17 +93,17 @@ C99. .\"O category of the .\"O current locale. .BR iswpunct () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .PP .\"O This function's name is a misnomer when dealing with Unicode characters, .\"O because the wide-character class "punct" contains both punctuation characters .\"O and symbol (math, currency, etc.) characters. -¤³¤Î´Ø¿ô¤Î̾Á°¤Ï Unicode ʸ»ú¤ò°·¤¦ºÝ¤Ë¤ÏÀµ¤·¤¯¤Ê¤¤¡£¤Ê¤¼¤Ê¤é¡¢¥ï¥¤¥É -ʸ»ú¥¯¥é¥¹ "punct" ¤Ï¶çÆÉÅÀʸ»ú¤Èµ­¹æʸ»ú(¿ô³Øµ­¹æ¡¢²ßʾµ­¹æ¤Ê¤É)¤Îξ -Êý¤ò´Þ¤à¤«¤é¤Ç¤¢¤ë¡£ +この関数の名前は Unicode 文字を扱う際には正しくない。なぜなら、ワイド +文字クラス "punct" は句読点文字と記号文字(数学記号、貨幣記号など)の両 +方を含むからである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ispunct (3), .BR iswctype (3) diff --git a/draft/man3/iswspace.3 b/draft/man3/iswspace.3 index 35249302..27d46fd7 100644 --- a/draft/man3/iswspace.3 +++ b/draft/man3/iswspace.3 @@ -19,18 +19,18 @@ .\" .TH ISWSPACE 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O iswspace \- test for whitespace wide character -iswspace \- ¶õÇò¥ï¥¤¥Éʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë +iswspace \- 空白ワイド文字かどうかを調べる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int iswspace(wint_t " wc ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR iswspace () .\"O function is the wide-character equivalent of the @@ -39,45 +39,45 @@ iswspace \- .\"O It tests whether \fIwc\fP is a wide character .\"O belonging to the wide-character class "space". .BR iswspace () -´Ø¿ô¤Ï¡¢ +関数は、 .BR isspace (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤Ë°¤¹¤ë¥ï¥¤¥Éʸ»ú¤«¤É -¤¦¤«¤òÄ´¤Ù¤ë¡£ +に対応するワイド文字関数である。 +この関数は、\fIwc\fP がワイド文字クラス "space" に属するワイド文字かど +うかを調べる。 .PP .\"O The wide-character class "space" is disjoint from the wide-character class .\"O "graph" and therefore also disjoint from its subclasses "alnum", "alpha", .\"O "upper", "lower", "digit", "xdigit", "punct". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¤½¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë "alnum", "alpha", "upper", "lower", -"digit", "xdigit", "punct" ¤È¤â¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "space" はワイド文字クラス "graph" と共通部分を持たない。 +したがって、そのサブクラスである "alnum", "alpha", "upper", "lower", +"digit", "xdigit", "punct" とも共通部分を持たない。 .\" Note: UNIX98 (susv2/xbd/locale.html) says that "space" and "graph" may .\" have characters in common, except U+0020. But C99 (ISO/IEC 9899:1999 .\" section 7.25.2.1.10) says that "space" and "graph" are disjoint. .PP .\"O The wide-character class "space" contains the wide-character class "blank". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "blank" ¤ò´Þ¤à¡£ +ワイド文字クラス "space" はワイド文字クラス "blank" を含む。 .PP .\"O The wide-character class "space" always contains at least the space character .\"O and the control .\"O characters \(aq\\f\(aq, \(aq\\n\(aq, \(aq\\r\(aq, \(aq\\t\(aq, \(aq\\v\(aq. -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤Ï¾¯¤Ê¤¯¤È¤â¡¢¶õÇòʸ»ú¤ª¤è¤ÓÀ©¸æʸ»ú \(aq\\f\(aq, -\(aq\\n\(aq, \(aq\\r\(aq, \(aq\\t\(aq, \(aq\\v\(aq ¤òɬ¤º´Þ¤à¡£ +ワイド文字クラス "space" は少なくとも、空白文字および制御文字 \(aq\\f\(aq, +\(aq\\n\(aq, \(aq\\r\(aq, \(aq\\t\(aq, \(aq\\v\(aq を必ず含む。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR iswspace () .\"O function returns nonzero if \fIwc\fP is a wide character .\"O belonging to the wide-character class "space". .\"O Otherwise it returns zero. .BR iswspace () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤Ë´Þ¤Þ¤ì¤ë -¤Ê¤é¤Ð 0 ¤Ç¤Ê¤¤ÃͤòÊÖ¤¹¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ +関数は、\fIwc\fP がワイド文字クラス "space" に含まれる +ならば 0 でない値を返す。そうでなければ 0 を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR iswspace () .\"O depends on the @@ -85,10 +85,10 @@ C99. .\"O category of the .\"O current locale. .BR iswspace () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR isspace (3), .BR iswctype (3) diff --git a/draft/man3/iswupper.3 b/draft/man3/iswupper.3 index 2f8d29c7..172af4e6 100644 --- a/draft/man3/iswupper.3 +++ b/draft/man3/iswupper.3 @@ -19,18 +19,18 @@ .\" .TH ISWUPPER 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O iswupper \- test for uppercase wide character -iswupper \- Âçʸ»ú¥ï¥¤¥Éʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë +iswupper \- 大文字ワイド文字かどうかを調べる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int iswupper(wint_t " wc ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR iswupper () .\"O function is the wide-character equivalent of the @@ -39,64 +39,64 @@ iswupper \- .\"O It tests whether \fIwc\fP is a wide character .\"O belonging to the wide-character class "upper". .BR iswupper () -´Ø¿ô¤Ï¡¢ +関数は、 .BR isupper (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "upper" ¤Ë°¤¹¤ë¥ï¥¤¥Éʸ»ú¤«¤É -¤¦¤«¤òÄ´¤Ù¤ë¡£ +に対応するワイド文字関数である。 +この関数は、\fIwc\fP がワイド文字クラス "upper" に属するワイド文字かど +うかを調べる。 .PP .\"O The wide-character class "upper" is a subclass of the wide-character class .\"O "alpha", and therefore also a subclass of the wide-character class "alnum", of .\"O the wide-character class "graph" and of the wide-character class "print". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "upper" ¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ê¡¢ -¤·¤¿¤¬¤Ã¤Æ¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤È¤½¤Î¿Æ¥¯¥é¥¹¤Ç¤¢¤ë "graph", ¤µ¤é¤Ë -¤½¤Î¿Æ¥¯¥é¥¹¤Ç¤¢¤ë "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤â¤¢¤ë¡£ +ワイド文字クラス "upper" はワイド文字クラス "alpha" のサブクラスであり、 +したがってワイド文字クラス "alnum" とその親クラスである "graph", さらに +その親クラスである "print" のサブクラスでもある。 .PP .\"O Being a subclass of the wide-character class "print", the wide-character class .\"O "upper" is disjoint from the wide-character class "cntrl". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "upper" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "cntrl" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "print" のサブクラスなので、ワイド文字クラス "upper" +はワイド文字クラス "cntrl" と共通部分を持たない。 .PP .\"O Being a subclass of the wide-character class "graph", the wide-character class .\"O "upper" is disjoint from the wide-character class "space" and its subclass .\"O "blank". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "upper" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤È¤½¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë "blank" ¤È¶¦ÄÌ -Éôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "graph" のサブクラスなので、ワイド文字クラス "upper" +はワイド文字クラス "space" とそのサブクラスである "blank" と共通 +部分を持たない。 .PP .\"O Being a subclass of the wide-character class "alnum", the wide-character class .\"O "upper" is disjoint from the wide-character class "punct". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "upper" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "punct" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "alnum" のサブクラスなので、ワイド文字クラス "upper" +はワイド文字クラス "punct" と共通部分を持たない。 .PP .\"O Being a subclass of the wide-character class "alpha", the wide-character class .\"O "upper" is disjoint from the wide-character class "digit". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "upper" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "digit" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "alpha" のサブクラスなので、ワイド文字クラス "upper" +はワイド文字クラス "digit" と共通部分を持たない。 .PP .\"O The wide-character class "upper" contains at least those characters \fIwc\fP .\"O which are equal to \fItowupper(wc)\fP and different from \fItowlower(wc)\fP. -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "upper" ¤Ï¾¯¤Ê¤¯¤È¤â¡¢\fIwc\fP ¤È \fItowupper(wc)\fP -¤¬Åù¤·¤¯¤Ê¤ê¡¢¤«¤Ä \fItowupper(wc)\fP ¤È°Û¤Ê¤ë¤è¤¦¤Êʸ»ú¤ò´Þ¤à¡£ +ワイド文字クラス "upper" は少なくとも、\fIwc\fP と \fItowupper(wc)\fP +が等しくなり、かつ \fItowupper(wc)\fP と異なるような文字を含む。 .PP .\"O The wide-character class "upper" always contains at least the .\"O letters \(aqA\(aq to \(aqZ\(aq. -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "upper" ¤Ï¾¯¤Ê¤¯¤È¤â \(aqA\(aq ¤«¤é \(aqZ\(aq ¤òɬ¤º´Þ¤à¡£ +ワイド文字クラス "upper" は少なくとも \(aqA\(aq から \(aqZ\(aq を必ず含む。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR iswupper () .\"O function returns nonzero if \fIwc\fP is a wide character .\"O belonging to the wide-character class "upper". .\"O Otherwise it returns zero. .BR iswupper () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "upper" ¤Ë°¤¹¤ë¥ï¥¤¥Éʸ»ú¤Ê¤é¤Ð -0 ¤Ç¤Ê¤¤ÃͤòÊÖ¤¹¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ +関数は、\fIwc\fP がワイド文字クラス "upper" に属するワイド文字ならば +0 でない値を返す。そうでなければ 0 を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR iswupper () .\"O depends on the @@ -104,16 +104,16 @@ C99. .\"O category of the .\"O current locale. .BR iswupper () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .PP .\"O This function is not very appropriate for dealing with Unicode characters, .\"O because Unicode knows about three cases: upper, lower and title case. -¤³¤Î´Ø¿ô¤Ç Unicode ¤ò°·¤¦¤Î¤Ï¤¢¤Þ¤êŬÀڤǤʤ¤¡£¤Ê¤¼¤Ê¤é¡¢Unicode ¤Ë¤Ï -Âçʸ»ú¡¦¾®Ê¸»ú¡¦¥¿¥¤¥È¥ëʸ»ú¤Î 3 ¤Ä¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£ +この関数で Unicode を扱うのはあまり適切でない。なぜなら、Unicode には +大文字・小文字・タイトル文字の 3 つが含まれているからである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR isupper (3), .BR iswctype (3), .BR towupper (3) diff --git a/draft/man3/iswxdigit.3 b/draft/man3/iswxdigit.3 index 6eec64b4..8a14be14 100644 --- a/draft/man3/iswxdigit.3 +++ b/draft/man3/iswxdigit.3 @@ -19,18 +19,18 @@ .\" .TH ISWXDIGIT 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O iswxdigit \- test for hexadecimal digit wide character -iswxdigit \- 16 ¿Ê¿ô¥ï¥¤¥Éʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë +iswxdigit \- 16 進数ワイド文字かどうかを調べる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int iswxdigit(wint_t " wc ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR iswxdigit () .\"O function is the wide-character equivalent of the @@ -39,56 +39,56 @@ iswxdigit \- 16 .\"O It tests whether \fIwc\fP is a wide character .\"O belonging to the wide-character class "xdigit". .BR iswxdigit () -´Ø¿ô¤Ï¡¢ +関数は、 .BR isxdigit (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "xdigit" ¤Ë°¤¹¤ë¥ï¥¤¥Éʸ»ú¤« -¤É¤¦¤«¤òÄ´¤Ù¤ë¡£ +に対応するワイド文字関数である。 +この関数は、\fIwc\fP がワイド文字クラス "xdigit" に属するワイド文字か +どうかを調べる。 .PP .\"O The wide-character class "xdigit" is a subclass of the wide-character class .\"O "alnum", and therefore also a subclass of the wide-character class "graph" and .\"O of the wide-character class "print". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "xdigit" ¤Ï¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç -¤¢¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤È¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" -¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤â¤¢¤ë¡£ +ワイド文字クラス "xdigit" は、ワイド文字クラス "alnum" のサブクラスで +ある。したがって、ワイド文字クラス "graph" とワイド文字クラス "print" +のサブクラスでもある。 .PP .\"O Being a subclass of the wide-character class "print", the wide-character class .\"O "xdigit" is disjoint from the wide-character class "cntrl". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "xdigit" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "cntrl" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "print" のサブクラスなので、ワイド文字クラス "xdigit" +はワイド文字クラス "cntrl" と共通部分を持たない。 .PP .\"O Being a subclass of the wide-character class "graph", the wide-character class .\"O "xdigit" is disjoint from the wide-character class "space" and its subclass .\"O "blank". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "xdigit" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤È¤½¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë "blank" ¤È¶¦ÄÌ -Éôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "graph" のサブクラスなので、ワイド文字クラス "xdigit" +はワイド文字クラス "space" とそのサブクラスである "blank" と共通 +部分を持たない。 .PP .\"O Being a subclass of the wide-character class "alnum", the wide-character class .\"O "xdigit" is disjoint from the wide-character class "punct". -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "xdigit" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "punct" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "alnum" のサブクラスなので、ワイド文字クラス "xdigit" +はワイド文字クラス "punct" と共通部分を持たない。 .PP .\"O The wide-character class "xdigit" always contains at least the .\"O letters \(aqA\(aq to \(aqF\(aq, \(aqa\(aq to \(aqf\(aq .\"O and the digits \(aq0\(aq to \(aq9\(aq. -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "xdigit" ¤Ï¾¯¤Ê¤¯¤È¤â¡¢Ê¸»ú \(aqA\(aq ¤«¤é \(aqF\(aq, -\(aqa\(aq ¤«¤é \(aqf\(aq ¤È¿ô»ú \(aq0\(aq ¤«¤é \(aq9\(aq ¤òɬ¤º´Þ¤à¡£ +ワイド文字クラス "xdigit" は少なくとも、文字 \(aqA\(aq から \(aqF\(aq, +\(aqa\(aq から \(aqf\(aq と数字 \(aq0\(aq から \(aq9\(aq を必ず含む。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR iswxdigit () .\"O function returns nonzero if \fIwc\fP is a wide character .\"O belonging to the wide-character class "xdigit". .\"O Otherwise it returns zero. .BR iswxdigit () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "xdigit" ¤Ë°¤¹¤ë -¥ï¥¤¥Éʸ»ú¤Ê¤é¤Ð 0 ¤Ç¤Ê¤¤ÃͤòÊÖ¤¹¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ +関数は、\fIwc\fP がワイド文字クラス "xdigit" に属する +ワイド文字ならば 0 でない値を返す。そうでなければ 0 を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR iswxdigit () .\"O depends on the @@ -96,10 +96,10 @@ C99. .\"O category of the .\"O current locale. .BR iswxdigit () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR iswctype (3), .BR isxdigit (3) diff --git a/draft/man3/j0.3 b/draft/man3/j0.3 index e467e4f8..65bb207e 100644 --- a/draft/man3/j0.3 +++ b/draft/man3/j0.3 @@ -38,12 +38,12 @@ .\" .TH J0 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O j0, j0f, j0l, j1, j1f, j1l, jn, jnf, jnl \- .\"O Bessel functions of the first kind -j0, j0f, j0l, j1, j1f, j1l, jn, jnf, jnl \- Âè°ì¼ï¥Ù¥Ã¥»¥ë´Ø¿ô +j0, j0f, j0l, j1, j1f, j1l, jn, jnf, jnl \- 第一種ベッセル関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -68,14 +68,14 @@ j0, j0f, j0l, j1, j1f, j1l, jn, jnf, jnl \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -98,7 +98,7 @@ _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 600 .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR j0 () .\"O and @@ -109,15 +109,15 @@ _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 600 .\"O .BR jn () .\"O function .\"O returns the Bessel function of \fIx\fP of the first kind of order \fIn\fP. -´Ø¿ô +関数 .BR j0 (), .BR j1 () -¤Ï¤½¤ì¤¾¤ì \fIx\fP ¤Î0¼¡¡¢1¼¡¤Î -Âè°ì¼ï¥Ù¥Ã¥»¥ë´Ø¿ô¤ÎÃͤòÊÖ¤¹¡£ -´Ø¿ô +はそれぞれ \fIx\fP の0次、1次の +第一種ベッセル関数の値を返す。 +関数 .BR jn () -¤Ï \fIx\fP ¤Î \fIn\fP ¼¡¤Î -Âè°ì¼ï¥Ù¥Ã¥»¥ë´Ø¿ô¤ÎÃͤòÊÖ¤¹¡£ +は \fIx\fP の \fIn\fP 次の +第一種ベッセル関数の値を返す。 .PP .\"O The .\"O .BR j0f () @@ -129,27 +129,27 @@ _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 600 .\"O .I "long double" .\"O values, respectively. .BR j0f () -·²¤Î´Ø¿ô¡¢ +群の関数、 .BR j0l () -·²¤Î´Ø¿ô¤Ï¡¢¤½¤ì¤¾¤ì +群の関数は、それぞれ .I float -·¿¡¢ +型、 .I "long double" -·¿¤ÎÊÖ¤êÃͤòÊÖ¤¹¡£ +型の返り値を返す。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the appropriate .\"O Bessel value of the first kind for .\"O .IR x . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I x -¤ËÂФ¹¤ëÂè°ì¼ï¥Ù¥Ã¥»¥ë´Ø¿ô¤ÎÃͤòÊÖ¤¹¡£ +に対する第一種ベッセル関数の値を返す。 .\"O If .\"O .I x .\"O is a NaN, a NaN is returned. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x @@ -158,66 +158,66 @@ _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 600 .\"O a range error occurs, .\"O and the return value is 0. .I x -¤ÎÀäÂÐÃͤ¬Â礭²á¤®¤ë¾ì¹ç¤ä·ë²Ì¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ -ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢ÊÖ¤êÃͤ¬ 0 ¤È¤Ê¤ë¡£ +の絶対値が大き過ぎる場合や結果がアンダーフローする場合、 +範囲エラー (range error) が発生し、返り値が 0 となる。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Range error: result underflow, or \fIx\fP is too large in magnitude -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤Î¥¢¥ó¥À¡¼¥Õ¥í¡¼¤ä¡¢\fIx\fP ¤ÎÀäÂÐÃͤ¬Â礭²á¤®¤ë +範囲エラー: 結果のアンダーフローや、\fIx\fP の絶対値が大き過ぎる .\"O .I errno .\"O is set to .\"O .BR ERANGE . .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .\" An underflow floating-point exception .\" .RB ( FE_UNDERFLOW ) .\" is raised. .PP .\"O These functions do not raise exceptions for .\"O .BR fetestexcept (3). -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ +これらの関数は、 .BR fetestexcept (3) -¤Ç¥Á¥§¥Ã¥¯¤Ç¤­¤ëÎã³°¤ò¾å¤²¤Ê¤¤¡£ +でチェックできる例外を上げない。 .\" FIXME . Is it intentional that these functions do not raise exceptions? .\" e.g., j0(1.5e16) .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6805 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The functions returning .\"O .I double .\"O conform to SVr4, 4.3BSD, .\"O POSIX.1-2001. .I double -·¿¤ÎÃͤòÊÖ¤¹´Ø¿ô¤Ï¡¢SVr4, 4.3BSD, POSIX.1-2001 -¤Ë½àµò¤¹¤ë¡£ +型の値を返す関数は、SVr4, 4.3BSD, POSIX.1-2001 +に準拠する。 .\"O The others are nonstandard functions that also exist on the BSDs. -¤½¤ì°Ê³°¤ÏÈóɸ½à¤Î´Ø¿ô¤Ç¡¢BSD ¤Ë¤â¸ºß¤¹¤ë¡£ +それ以外は非標準の関数で、BSD にも存在する。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O There are errors of up to 2e\-16 in the values returned by .\"O .BR j0 (), .\"O .BR j1 () .\"O and .\"O .BR jn () .\"O for values of \fIx\fP between \-8 and 8. -\-8 ¤«¤é 8 ¤Þ¤Ç¤Î \fIx\fP ¤ÎÃͤˤĤ¤¤Æ +\-8 から 8 までの \fIx\fP の値について .BR j0 (), .BR j1 (), .BR jn () -¤¬ÊÖ¤¹Ãͤˤϡ¢ºÇÂç¤Ç 2e\-16 ¤Î¸íº¹¤¬¤¢¤ë¡£ +が返す値には、最大で 2e\-16 の誤差がある。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR y0 (3) diff --git a/draft/man3/key_setsecret.3 b/draft/man3/key_setsecret.3 index 49c9795a..44a83f28 100644 --- a/draft/man3/key_setsecret.3 +++ b/draft/man3/key_setsecret.3 @@ -6,19 +6,19 @@ .\" Japanese Version Copyright (c) 2003 Akihiro MOTOKI all rights reserved. .\" Translated Mon Jan 27 2003 by Akihiro MOTOKI .\" -.\"WORD: authentication ǧ¾Ú -.\"WORD: asymmetric ÈóÂоθ°(°Å¹æ) -.\"WORD: symmetric Âоθ°(°Å¹æ) +.\"WORD: authentication 認証 +.\"WORD: asymmetric 非対称鍵(暗号) +.\"WORD: symmetric 対称鍵(暗号) .\" .TH KEY_SETSECRET 3 2002-07-18 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O key_decryptsession, key_encryptsession, key_setsecret, key_gendes, .\"O key_secretkey_is_set \- interfaces to rpc keyserver daemon key_decryptsession, key_encryptsession, key_setsecret, key_gendes, -key_secretkey_is_set \- rpc ¸°¥µ¡¼¥Ð¡¦¥Ç¡¼¥â¥ó¤È¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹ +key_secretkey_is_set \- rpc 鍵サーバ・デーモンとのインタフェース .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B "#include " .sp .BI "int key_decryptsession(const char *" remotename , @@ -33,13 +33,13 @@ key_secretkey_is_set \- rpc .sp .B "int key_secretkey_is_set(void);" .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The functions here are used within the RPC's secure authentication .\"O mechanism (AUTH_DES). .\"O There should be no need for user programs to .\"O use this functions. -¤³¤ì¤é¤Î´Ø¿ô¤Ï RPC ¤Î°ÂÁ´¤Êǧ¾Úµ¡¹½ (AUTH_DES) ¤Ç»ÈÍѤµ¤ì¤ë¡£ -¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤Ç¤³¤ì¤é¤Î´Ø¿ô¤ò»ÈÍѤ¹¤ëɬÍפϤʤ¤¡£ +これらの関数は RPC の安全な認証機構 (AUTH_DES) で使用される。 +ユーザ・プログラムでこれらの関数を使用する必要はない。 .\"O The function .\"O .BR key_decryptsession () @@ -47,10 +47,10 @@ key_secretkey_is_set \- rpc .\"O for decrypting. .\"O It uses the public key of the server and the .\"O secret key associated with the effective UID of the calling process. -´Ø¿ô +関数 .BR key_decryptsession () -¤Ï(¥ê¥â¡¼¥È)¥µ¡¼¥Ð¤Î¥Í¥Ã¥È̾¤òÍѤ¤¤Æ¡¢Éü¹æÍѤΠDES ¸°¤ò¼èÆÀ¤¹¤ë¡£ -¥µ¡¼¥Ð¤Î¸ø³«¸°¤È¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú UID ¤ËÂбþ¤¹¤ëÈëÌ©¸°¤¬»ÈÍѤµ¤ì¤ë¡£ +は(リモート)サーバのネット名を用いて、復号用の DES 鍵を取得する。 +サーバの公開鍵と、呼び出し元プロセスの実効 UID に対応する秘密鍵が使用される。 .\"O The function .\"O .BR key_encryptsession () @@ -58,53 +58,53 @@ key_secretkey_is_set \- rpc .\"O .BR key_decryptsession (). .\"O It encrypts the DES keys with the public key of the server and .\"O the secret key associated with the effective UID of the calling process. -´Ø¿ô +関数 .BR key_encryptsession () -¤Ï +は .BR key_decryptsession () -¤ÎµÕ¤Î½èÍý¤ò¹Ô¤¦¡£ -¥µ¡¼¥Ð¤Î¸ø³«¸°¤È¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú UID ¤ËÂбþ¤¹¤ëÈëÌ©¸°¤Ç -DES ¸°¤ò°Å¹æ¤¹¤ë¡£ +の逆の処理を行う。 +サーバの公開鍵と、呼び出し元プロセスの実効 UID に対応する秘密鍵で +DES 鍵を暗号する。 .\"O The function .\"O .BR key_gendes () .\"O is used to ask the keyserver for a secure conversation key. -´Ø¿ô +関数 .BR key_gendes () -¤Ï¡¢¸°¥µ¡¼¥Ð¤Ë°ÂÁ´¤ÊÄÌ¿®¤ò¹Ô¤¦¤¿¤á¤Î¸°¤òÍ׵᤹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ +は、鍵サーバに安全な通信を行うための鍵を要求するために使用される。 .\"O The function .\"O .BR key_setsecret () .\"O is used to set the key for the effective UID of the calling process. -´Ø¿ô +関数 .BR key_setsecret () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú UID ¤ËÂФ·¤Æ¸°¤òÀßÄꤹ¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ +は、呼び出し元プロセスの実効 UID に対して鍵を設定するために使用される。 .\"O The function .\"O .BR key_secretkey_is_set () .\"O can be used to determine whether a key has been .\"O set for the effective UID of the calling process. -´Ø¿ô +関数 .BR key_secretkey_is_set () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú UID ¤ËÂФ·¤Æ¸°¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò -Ä´¤Ù¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ +は、呼び出し元プロセスの実効 UID に対して鍵が設定されているかどうかを +調べるために使用される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O These functions return 1 on success and 0 on failure. -¤³¤ì¤é¤Î´Ø¿ô¤ÏÀ®¸ù¤·¤¿¾ì¹ç 1 ¤ò¡¢¼ºÇÔ¤·¤¿¾ì¹ç 0 ¤òÊÖ¤¹¡£ +これらの関数は成功した場合 1 を、失敗した場合 0 を返す。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Note that we talk about two types of encryption here. .\"O One is asymmetric using a public and secret key. .\"O The other is symmetric, the .\"O 64-bit DES. -¤³¤³¤Ç¤Ï 2 ¼ïÎà¤Î°Å¹æÊý¼°¤¬Åо줹¤ë¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -°ì¤Ä¤Ï¸ø³«¸°¤ÈÈëÌ©¸°¤ò»ÈÍѤ¹¤ëÈóÂоθ°°Å¹æ¤Ç¤¢¤ê¡¢ -¤â¤¦°ì¤Ä¤ÏÂоθ°°Å¹æ¤Ç¤¢¤ë 64 ¥Ó¥Ã¥È DES ¤Ç¤¢¤ë¡£ +ここでは 2 種類の暗号方式が登場することに注意すること。 +一つは公開鍵と秘密鍵を使用する非対称鍵暗号であり、 +もう一つは対称鍵暗号である 64 ビット DES である。 .PP .\"O These routines were part of the Linux/Doors-project, abandoned by now. -¤³¤ì¤é¤Î´Ø¿ô¤Ï Linux/Doors-project ¤ÎÀ®²Ì¤Î°ìÉô¤À¤Ã¤¿¤¬¡¢ -¸½ºß¤Þ¤Ç¤Ë³ºÅö²Õ½ê¤Ï¤¹¤Ù¤ÆÇË´þ¤µ¤ì¤¿¡£ +これらの関数は Linux/Doors-project の成果の一部だったが、 +現在までに該当箇所はすべて破棄された。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR crypt (3) diff --git a/draft/man3/ldexp.3 b/draft/man3/ldexp.3 index c562e920..b1eefe53 100644 --- a/draft/man3/ldexp.3 +++ b/draft/man3/ldexp.3 @@ -40,11 +40,11 @@ .\" .TH LDEXP 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O ldexp, ldexpf, ldexpl \- multiply floating-point number by integral power of 2 -ldexp, ldexpf, ldexpl \- ÉâÆ°¾®¿ôÅÀ¼Â¿ô¤È 2 ¤ÎÀ°¿ô¾è¤È¤ÎÀѤò·×»»¤¹¤ë +ldexp, ldexpf, ldexpl \- 浮動小数点実数と 2 の整数乗との積を計算する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -56,14 +56,14 @@ ldexp, ldexpf, ldexpl \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -78,7 +78,7 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR ldexp () .\"O function returns the result of multiplying the floating-point number @@ -86,18 +86,18 @@ or .\"O by 2 raised to the power .\"O .IR exp . .BR ldexp () -´Ø¿ô¤Ï¡¢ÉâÆ°¾®¿ôÅÀ¼Â¿ô +関数は、浮動小数点実数 .I x -¤È 2 ¤Î +と 2 の .I exp -¾è¤È¤ÎÀѤòÊÖ¤¹¡£ +乗との積を返す。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return .\"O .IR "x * (2^exp)" . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I "x * (2^exp)" -¤òÊÖ¤¹¡£ +を返す。 .\"O If .\"O .I exp @@ -105,30 +105,30 @@ or .\"O .I x .\"O is returned. .I exp -¤¬¥¼¥í¤Î¾ì¹ç¡¢ +がゼロの場合、 .I x -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .\"O If .\"O .I x .\"O is a NaN, .\"O a NaN is returned. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x .\"O is positive infinity (negative infinity), .\"O positive infinity (negative infinity) is returned. .I x -¤¬Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤Î¾ì¹ç¡¢ -Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大 (負の無限大) の場合、 +正の無限大 (負の無限大) が返される。 .\"O If the result underflows, .\"O a range error occurs, .\"O and zero is returned. -·ë²Ì¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ -ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢¥¼¥í¤¬ÊÖ¤µ¤ì¤ë¡£ +結果がアンダーフローする場合、 +範囲エラー (range error) が発生し、ゼロが返される。 .\"O If the result overflows, .\"O a range error occurs, @@ -139,29 +139,29 @@ or .\"O .BR HUGE_VALL , .\"O respectively, with a sign the same as .\"O .IR x . -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +結果がオーバーフローする場合、範囲エラーが発生し、 +各関数はそれぞれ .BR HUGE_VAL , .BR HUGE_VALF , .B HUGE_VALL -¤òÊÖ¤¹¡£ÊÖ¤êÃͤÎÉä¹æ¤Ï +を返す。返り値の符号は .I x -¤ÈƱ¤¸¤È¤Ê¤ë¡£ +と同じとなる。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Range error, overflow -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ +範囲エラー: 結果のオーバーフロー .\"O .I errno .\"O is set to .\"O .BR ERANGE . @@ -169,15 +169,15 @@ or .\"O .RB ( FE_OVERFLOW ) .\"O is raised. .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP .\"O Range error, underflow -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤Î¥¢¥ó¥À¡¼¥Õ¥í¡¼ +範囲エラー: 結果のアンダーフロー .\"O .I errno .\"O is set to .\"O .BR ERANGE . @@ -185,23 +185,23 @@ or .\"O .RB ( FE_UNDERFLOW ) .\"O is raised. .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -¥¢¥ó¥À¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +アンダーフロー浮動小数点例外 .RB ( FE_UNDERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD, C89. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR frexp (3), .BR modf (3), .BR scalbln (3) diff --git a/draft/man3/lgamma.3 b/draft/man3/lgamma.3 index ebc8a121..78ef0a7b 100644 --- a/draft/man3/lgamma.3 +++ b/draft/man3/lgamma.3 @@ -16,11 +16,11 @@ .\"O .SH NAME .\"O lgamma, lgammaf, lgammal, lgamma_r, lgammaf_r, lgammal_r, signgam \- .\"O log gamma function -.SH ̾Á° +.SH 名前 lgamma, lgammaf, lgammal, lgamma_r, lgammaf_r, lgammal_r, signgam \- -¥¬¥ó¥Þ´Ø¿ô¤ÎÂпô¤ò·×»»¤¹¤ë +ガンマ関数の対数を計算する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -40,14 +40,14 @@ lgamma, lgammaf, lgammal, lgamma_r, lgammaf_r, lgammal_r, signgam \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -84,10 +84,10 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE .\"O For the definition of the Gamma function, see .\"O .BR tgamma (3). .\"O .PP -.SH ÀâÌÀ -¥¬¥ó¥Þ´Ø¿ô¤ÎÄêµÁ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +.SH 説明 +ガンマ関数の定義については、 .BR tgamma (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The .\"O .BR lgamma () @@ -99,14 +99,14 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE .\"O It is 1 when the Gamma function is positive or zero, \-1 .\"O when it is negative. .\"O .PP -´Ø¿ô +関数 .BR lgamma () -¤Ï¡¢¥¬¥ó¥Þ´Ø¿ô¤ÎÀäÂÐÃͤμ«Á³Âпô¤òÊÖ¤¹¡£ -¥¬¥ó¥Þ´Ø¿ô¤ÎÉä¹æ¤Ï¡¢ +は、ガンマ関数の絶対値の自然対数を返す。 +ガンマ関数の符号は、 .I -¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤ë extern int \fIsigngam\fP ¤Ë³ÊǼ¤µ¤ì¤ë¡£ -³ÊǼ¤µ¤ì¤ëÃͤϡ¢¥¬¥ó¥Þ´Ø¿ô¤¬Àµ¤Þ¤¿¤Ï 0 ¤Î¾ì¹ç 1¡¢ -Éé¤Î¾ì¹ç \-1 ¤Ç¤¢¤ë¡£ +で宣言されている extern int \fIsigngam\fP に格納される。 +格納される値は、ガンマ関数が正または 0 の場合 1、 +負の場合 \-1 である。 .PP .\"O Since using a constant location .\"O .I signgam @@ -116,37 +116,37 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE .\"O been introduced; they return the sign via the argument .\"O .IR signp . .I signgam -¤È¤¤¤¦¸ÇÄꤵ¤ì¤¿¾ì½ê¤ò»È¤¦¤³¤È¤Ï¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢ -´Ø¿ô +という固定された場所を使うことはスレッドセーフではないので、 +関数 .BR lgamma_r () -¤Ê¤É¤¬Æ³Æþ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ç¤Ï¡¢Éä¹æ¤Ï°ú¤­¿ô +などが導入されている。 +これらの関数では、符号は引き数 .I signp -·Ðͳ¤ÇÊÖ¤µ¤ì¤ë¡£ +経由で返される。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the natural logarithm of Gamma(x). -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï Gamma(x) ¤Î¼«Á³Âпô¤òÊÖ¤¹¡£ +成功すると、これらの関数は Gamma(x) の自然対数を返す。 .\"O If .\"O .I x .\"O is a NaN, a NaN is returned. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x .\"O is 1 or 2, +0 is returned. .I x -¤¬ 1 ¤« 2 ¤Î¾ì¹ç¡¢+0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が 1 か 2 の場合、+0 が返される。 .\"O If .\"O .I x .\"O is positive infinity or negative infinity, .\"O positive infinity is returned. .I x -¤¬Àµ¤Î̵¸ÂÂ礫Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ -Àµ¤Î̵¸ÂÂ礬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大か負の無限大の場合、 +正の無限大が返される。 .\"O If .\"O .I x @@ -159,12 +159,12 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE .\"O .RB + HUGE_VALL , .\"O respectively. .I x -¤¬Àµ¤Ç¤Ê¤¤À°¿ô¤Î¾ì¹ç¡¢¶Ë¥¨¥é¡¼ (pole error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +が正でない整数の場合、極エラー (pole error) が発生し、 +各関数はそれぞれ .RB + HUGE_VAL , .RB + HUGE_VALF , .RB + HUGE_VALL -¤òÊÖ¤¹¡£ +を返す。 .\"O If the result overflows, .\"O a range error occurs, @@ -175,27 +175,27 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE .\"O or .\"O .BR HUGE_VALL , .\"O respectively, with the correct mathematical sign. -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +結果がオーバーフローする場合、範囲エラーが発生し、 +各関数はそれぞれ .BR HUGE_VAL , .BR HUGE_VALF , .B HUGE_VALL -¤òÊÖ¤¹¡£ÊÖ¤êÃͤˤϿô³ØŪ¤ËÀµ¤·¤¤Éä¹æ¤¬ÉÕÍ¿¤µ¤ì¤ë¡£ +を返す。返り値には数学的に正しい符号が付与される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Pole error: \fIx\fP is a nonpositive integer -¶Ë¥¨¥é¡¼: \fIx\fP ¤¬Àµ¤Ç¤Ê¤¤À°¿ô +極エラー: \fIx\fP が正でない整数 .\"O .I errno .\"O is set to .\"O .BR ERANGE @@ -204,15 +204,15 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE .\"O .RB ( FE_DIVBYZERO ) .\"O is raised. .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë (¡Ö¥Ð¥°¡×¤ÎÀá¤ò»²¾È)¡£ -0 ¤Ë¤è¤ë½ü»» (divide-by-zero) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される (「バグ」の節を参照)。 +0 による除算 (divide-by-zero) 浮動小数点例外 .RB ( FE_DIVBYZERO ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP .\"O Range error: result overflow -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ +範囲エラー: 結果のオーバーフロー .\"O .I errno .\"O is set to .\"O .BR ERANGE . @@ -220,16 +220,16 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE .\"O .RB ( FE_OVERFLOW ) .\"O is raised. .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .\" glibc (as at 2.8) also supports an inexact .\" exception for various cases. .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The .\"O .BR lgamma () .\"O functions are specified in C99 and POSIX.1-2001. @@ -238,16 +238,16 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE .\"O The .\"O .BR lgamma_r () .\"O functions are nonstandard, but present on several other systems. -´Ø¿ô +関数 .BR lgamma () -¤Ï C99 ¤È POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は C99 と POSIX.1-2001 で規定されている。 .I signgam -¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¤¬¡¢C99 ¤Ë¤Ï¤Ê¤¤¡£ -´Ø¿ô +は POSIX.1-2001 で規定されているが、C99 にはない。 +関数 .BR lgamma_r () -¤ÏÈóɸ½à¤À¤¬¡¢¤¤¤¯¤Ä¤«¤Î¾¤Î¥·¥¹¥Æ¥à¤Ë¤â¸ºß¤¹¤ë¡£ +は非標準だが、いくつかの他のシステムにも存在する。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O In glibc 2.9 and earlier, .\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=6777 .\"O when a pole error occurs, @@ -257,18 +257,18 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE .\"O instead of the POSIX-mandated .\"O .BR ERANGE . .\"O Since version 2.10, glibc does the right thing. -glibc 2.9 ¤È¤½¤ì°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ -¶Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¡¢POSIX ¤ÇÍ׵ᤵ¤ì¤Æ¤¤¤ë +glibc 2.9 とそれ以前のバージョンでは、 +極エラーが発生した場合、POSIX で要求されている .B ERANGE -¤Ç¤Ï¤Ê¤¯ +ではなく .B EDOM -¤¬ +が .I errno -¤ËÀßÄꤵ¤ì¤ë¡£ -POSIX.1 ¤Ç¤Ï¡¢ +に設定される。 +POSIX.1 では、 .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¤Ù¤­¤È¤µ¤ì¤Æ¤¤¤ë¡£ -¥Ð¡¼¥¸¥ç¥ó 2.10 °Ê¹ß¤Î glibc ¤Ç¤Ï¡¢Àµ¤·¤¤Æ°ºî¤ò¤¹¤ë¡£ +が設定されるべきとされている。 +バージョン 2.10 以降の glibc では、正しい動作をする。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR tgamma (3) diff --git a/draft/man3/localeconv.3 b/draft/man3/localeconv.3 index bd05ee5a..8738eda5 100644 --- a/draft/man3/localeconv.3 +++ b/draft/man3/localeconv.3 @@ -29,18 +29,18 @@ .\" .TH LOCALECONV 3 1993-04-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O localeconv \- get numeric formatting information -localeconv \- ¿ôÃͤ˴ؤ¹¤ë½ñ¼°¾ðÊó¤òÆÀ¤ë +localeconv \- 数値に関する書式情報を得る .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .B struct lconv *localeconv(void); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR localeconv () .\"O function returns a pointer to a @@ -53,40 +53,40 @@ localeconv \- .\"O and .\"O .BR LC_MONETARY . .BR localeconv () -´Ø¿ô¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¾ðÊó¤òɽ¤¹ +関数は、現在のロケール情報を表す .I struct lconv -¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤Î¹½Â¤ÂÎ¤Ï +へのポインタを返す。 +この構造体は .BR locale (7) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤ª¤ê¡¢¥í¥±¡¼¥ë¡¦¥«¥Æ¥´¥ê +で説明されており、ロケール・カテゴリ .B LC_NUMERIC -¤È +と .B LC_MONETARY -¤Ë´ØÏ¢¤¹¤ë¤¹¤Ù¤Æ¤ÎÃͤò´Þ¤ó¤Ç¤¤¤ë¡£ +に関連するすべての値を含んでいる。 .\"O Programs may also use the functions .\"O .BR printf (3) .\"O and .\"O .BR strfmon (3) .\"O which behave according to the actual locale in use. -¤³¤Î´Ø¿ô¤òÍѤ¤¤ë¥×¥í¥°¥é¥à¤Ï¡¢¤ª¤½¤é¤¯Æ±»þ¤Ë +この関数を用いるプログラムは、おそらく同時に .BR printf (3) -¤ä +や .BR strfmon (3) -¤Î¤è¤¦¤Ê´Ø¿ô¤âÍѤ¤¤ë¤À¤í¤¦¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¸½ºß»ÈÍѤµ¤ì¤Æ¤¤¤ë¥í¥±¡¼¥ë¤Ë½¾¤Ã¤¿Æ°ºî¤ò¤¹¤ë¡£ +のような関数も用いるだろう。 +これらの関数は、現在使用されているロケールに従った動作をする。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C89, C99 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O The .\"O .BR printf (3) .\"O family of functions may or may not honor the current locale. .BR printf (3) -¥°¥ë¡¼¥×¤Î´Ø¿ô¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤òÈ¿±Ç¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¤·¡¢ -¤·¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ +グループの関数は現在のロケールを反映するかもしれないし、 +しないかもしれない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR locale (1), .BR localedef (1), .BR isalpha (3), diff --git a/draft/man3/lockf.3 b/draft/man3/lockf.3 index 581d36d8..cbbdaec7 100644 --- a/draft/man3/lockf.3 +++ b/draft/man3/lockf.3 @@ -26,19 +26,19 @@ .\" Updated & Modified Mon Jul 15 02:10:29 JST 2002 by Yuichi SATO .\" Updated 2010-04-18, Akihiro MOTOKI , LDP v3.24 .\" -.\"WORD: apply ŬÍÑ -.\"WORD: remove ²ò½ü -.\"WORD: exclusive ÇÓ¾ -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿ +.\"WORD: apply 適用 +.\"WORD: remove 解除 +.\"WORD: exclusive 排他 +.\"WORD: descriptor ディスクリプタ .\"WORD: .\" .TH LOCKF 3 2011-09-11 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O lockf \- apply, test or remove a POSIX lock on an open file -lockf \- ¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë POSIX ¥í¥Ã¥¯¤ÎŬÍÑ¡¦¥Æ¥¹¥È¡¦²ò½ü¤ò¹Ô¤¦ +lockf \- オープンされたファイルに対する POSIX ロックの適用・テスト・解除を行う .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int lockf(int " fd ", int " cmd ", off_t " len ); @@ -46,9 +46,9 @@ lockf \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR lockf (): @@ -59,22 +59,22 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Apply, test or remove a POSIX lock on a section of an open file. -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥»¥¯¥·¥ç¥ó¤ËÂФ·¤Æ¡¢ -POSIX ¥í¥Ã¥¯¤ÎŬÍÑ¡¦¥Æ¥¹¥È¡¦²ò½ü¤ò¤¹¤ë¡£ +オープンされたファイルのセクションに対して、 +POSIX ロックの適用・テスト・解除をする。 .\"O The file is specified by .\"O .IR fd , .\"O a file descriptor open for writing, the action by .\"O .IR cmd , -¥Õ¥¡¥¤¥ë¤Ï +ファイルは .I fd -¤Ç»ØÄꤵ¤ì¤ë¡£ +で指定される。 .I fd -¤Ï½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤·¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ -¥¢¥¯¥·¥ç¥ó¤Ï +は書き込みのためにオープンしたファイルディスクリプタである。 +アクションは .I cmd -¤Ç»ØÄꤵ¤ì¤ë¡£ +で指定される。 .\"O and the section consists of byte positions .\"O .IR pos .. pos + len \-1 .\"O if @@ -87,34 +87,34 @@ POSIX .\"O .I pos .\"O is the current file position, and if .I pos -¤ò¸½ºß¤Î¥Õ¥¡¥¤¥ë°ÌÃ֤Ȥ¹¤ë¤È¡¢ +を現在のファイル位置とすると、 .I len -¤¬Àµ¤Î¾ì¹ç¡¢¥»¥¯¥·¥ç¥ó¤Ï¥Ð¥¤¥È°ÌÃÖ +が正の場合、セクションはバイト位置 .IR pos .. pos + len \-1 -¤È¤Ê¤ê¡¢ +となり、 .I len -¤¬Éé¤Î¾ì¹ç¡¢¥»¥¯¥·¥ç¥ó¤Ï¥Ð¥¤¥È°ÌÃÖ +が負の場合、セクションはバイト位置 .IR pos - len .. pos \-1 -¤È¤Ê¤ë¡£ +となる。 .\"O .I len .\"O is zero, the section extends from the current file position to .\"O infinity, encompassing the present and future end-of-file positions. .I len -¤¬ 0 ¤Î¾ì¹ç¡¢¥»¥¯¥·¥ç¥ó¤Ï¸½ºß¤Î¥Õ¥¡¥¤¥ë°ÌÃÖ¤«¤é̵¸ÂÂç¤Þ¤Ç¤È¤Ê¤ë -(¤Ä¤Þ¤ê¸½ºß¤Î¡¢¤¢¤ë¤¤¤ÏÊѹ¹¤µ¤ì¤¿¾ì¹ç¤Ï¾­Íè¤Î¡¢¥Õ¥¡¥¤¥ë½ªÃ¼°ÌÃÖ¤Þ¤Ç)¡£ +が 0 の場合、セクションは現在のファイル位置から無限大までとなる +(つまり現在の、あるいは変更された場合は将来の、ファイル終端位置まで)。 .\"O In all cases, the section may extend past current end-of-file. -¤É¤Î¾ì¹ç¤Ë¤ª¤¤¤Æ¤â¡¢¥»¥¯¥·¥ç¥ó¤Ï°ÊÁ°¤Î¥Õ¥¡¥¤¥ë½ªÃ¼¤è¤ê¤â³ÈÂ礵¤ì¤¦¤ë¡£ +どの場合においても、セクションは以前のファイル終端よりも拡大されうる。 .LP .\"O On Linux, .\"O .BR lockf () .\"O is just an interface on top of .\"O .BR fcntl (2) .\"O locking. -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR lockf () -¤Ïñ¤Ë +は単に .BR fcntl (2) -¤Î¥í¥Ã¥¯¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¢¤ë¡£ +のロックへのインターフェースである。 .\"O Many other systems implement .\"O .BR lockf () .\"O in this way, but note that POSIX.1-2001 leaves the relationship between @@ -124,42 +124,42 @@ Linux .\"O locks unspecified. .\"O A portable application should probably avoid mixing calls .\"O to these interfaces. -¿¤¯¤Î¾¤Î¥·¥¹¥Æ¥à¤Ç +多くの他のシステムで .BR lockf () -¤Ï¤³¤Î¤è¤¦¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -POSIX.1-2001 ¤Ç¤Ï +はこのように実装されているが、 +POSIX.1-2001 では .BR lockf () -¤È +と .BR fcntl (2) -¤Î¥í¥Ã¥¯¤È¤Î´Ø·¸¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤ª¤½¤é¤¯¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ +のロックとの関係は規定されていない。 +おそらく、移植性が必要なアプリケーションでは、 .BR lockf () -¤È +と .BR fcntl (2) -¤Î¥í¥Ã¥¯¤òº®¤¼¤Æ¸Æ¤Ó½Ð¤¹¤Î¤ÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤í¤¦¡£ +のロックを混ぜて呼び出すのは避けるべきであろう。 .LP .\"O Valid operations are given below: -Í­¸ú¤Ê¥ª¥×¥·¥ç¥ó¤ò°Ê²¼¤Ëµó¤²¤ë¡£ +有効なオプションを以下に挙げる。 .TP .B F_LOCK .\"O Set an exclusive lock on the specified section of the file. .\"O If (part of) this section is already locked, the call .\"O blocks until the previous lock is released. -¥Õ¥¡¥¤¥ë¤Î»ØÄꤵ¤ì¤¿¥»¥¯¥·¥ç¥ó¤ËÇÓ¾¥í¥Ã¥¯¤òÀßÄꤹ¤ë¡£ -¤½¤Î¥»¥¯¥·¥ç¥ó (¤Î°ìÉô) ¤¬´û¤Ë¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢ -Á°¤Î¥í¥Ã¥¯¤¬²ò½ü¤µ¤ì¤ë¤Þ¤Ç´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¡£ +ファイルの指定されたセクションに排他ロックを設定する。 +そのセクション (の一部) が既にロックされていた場合、 +前のロックが解除されるまで関数の呼び出しがブロックされる。 .\"O If this section overlaps an earlier locked section, .\"O both are merged. -¤³¤Î¥»¥¯¥·¥ç¥ó¤¬Á°¤Ë¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¥»¥¯¥·¥ç¥ó¤È½Å¤Ê¤Ã¤¿¾ì¹ç¡¢ -2 ¤Ä¤Î¥»¥¯¥·¥ç¥ó¤Ï·ë¹ç¤µ¤ì¤ë¡£ +このセクションが前にロックされているセクションと重なった場合、 +2 つのセクションは結合される。 .\"O File locks are released as soon as the process holding the locks .\"O closes some file descriptor for the file. .\"O A child process does not .\"O inherit these locks. -¥í¥Ã¥¯¤òÊÝ»ý¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤¬¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¯¥í¡¼¥º¤¹¤ë¤È¡¢ -¥Õ¥¡¥¤¥ë¥í¥Ã¥¯¤Ï²òÊü¤µ¤ì¤ë¡£ -»Ò¥×¥í¥»¥¹¤Ï¥í¥Ã¥¯¤ò·Ñ¾µ¤·¤Ê¤¤¡£ +ロックを保持しているプロセスが、 +そのファイルのファイルディスクリプタをクローズすると、 +ファイルロックは解放される。 +子プロセスはロックを継承しない。 .TP .B F_TLOCK .\"O Same as @@ -167,14 +167,14 @@ POSIX.1-2001 .\"O but the call never blocks and returns an error instead if the file is .\"O already locked. .B F_LOCK -¤ÈƱÍͤǤ¢¤ë¤¬¡¢¥Õ¥¡¥¤¥ë¤¬´û¤Ë¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤Ï¥Ö¥í¥Ã¥¯¤ò¹Ô¤ï¤º¤Ë¥¨¥é¡¼¤òÊÖ¤¹¡£ +と同様であるが、ファイルが既にロックされている場合、 +関数の呼び出しはブロックを行わずにエラーを返す。 .TP .B F_ULOCK .\"O Unlock the indicated section of the file. .\"O This may cause a locked section to be split into two locked sections. -¥Õ¥¡¥¤¥ë¤Î»ØÄꤵ¤ì¤¿¥»¥¯¥·¥ç¥ó¤Î¥í¥Ã¥¯¤ò²ò½ü¤¹¤ë¡£ -¤³¤ì¤Ë¤è¤ê¥í¥Ã¥¯¤µ¤ì¤¿¥»¥¯¥·¥ç¥ó¤¬ 2 ¤Ä¤Ëʬ³ä¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +ファイルの指定されたセクションのロックを解除する。 +これによりロックされたセクションが 2 つに分割されるかもしれない。 .TP .B F_TEST .\"O Test the lock: return 0 if the specified section @@ -185,44 +185,44 @@ POSIX.1-2001 .\"O .RB ( EACCES .\"O on some other systems), .\"O if another process holds a lock. -¼¡¤Î¤è¤¦¤Ë¥í¥Ã¥¯¤Î¥Æ¥¹¥È¤ò¤¹¤ë¡£ -»ØÄꤵ¤ì¤¿¥»¥¯¥·¥ç¥ó¤¬¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ -¤³¤Î¥×¥í¥»¥¹¤Ë¤è¤ê¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢0 ¤òÊÖ¤¹¡£ -¾¤Î¥×¥í¥»¥¹¤¬¥í¥Ã¥¯¤òÊÝ»ý¤·¤Æ¤¤¤ë¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +次のようにロックのテストをする。 +指定されたセクションがロックされていないか、 +このプロセスによりロックされている場合、0 を返す。 +他のプロセスがロックを保持している場合、\-1 を返し、 .I errno -¤ò +を .B EAGAIN -(¤¤¤¯¤Ä¤«¤Î¾¤Î¥·¥¹¥Æ¥à¤Ç¤Ï +(いくつかの他のシステムでは .BR EACCES ) -¤ËÀßÄꤹ¤ë¡£ +に設定する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合、0 が返される。 +エラーの場合、\-1 が返され、 .I errno -¤¬¥¨¥é¡¼¤ËÂбþ¤·¤¿ÃͤËÀßÄꤵ¤ì¤ë¡£ +がエラーに対応した値に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .\"O .BR EACCES " or " EAGAIN -.BR EACCES " ¤â¤·¤¯¤Ï " EAGAIN +.BR EACCES " もしくは " EAGAIN .\"O The file is locked and .\"O .B F_TLOCK .\"O or .\"O .B F_TEST .\"O was specified, or the operation is prohibited because the file has .\"O been memory-mapped by another process. -¥í¥Ã¥¯¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡¢ +ロックされたファイルに対して、 .B F_TLOCK -¤Þ¤¿¤Ï +または .B F_TEST -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¡£ -¤Þ¤¿¤Ï¡¢¥Õ¥¡¥¤¥ë¤¬Â¾¤Î¥×¥í¥»¥¹¤Ë¤è¤ê¥á¥â¥ê¡¼¥Þ¥Ã¥×¤µ¤ì¤Æ¤ª¤ê¡¢ -»ØÄꤵ¤ì¤¿Áàºî¤¬¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¡£ +が指定されている。 +または、ファイルが他のプロセスによりメモリーマップされており、 +指定された操作が禁止されている。 .TP .B EBADF .\"O .I fd @@ -236,39 +236,39 @@ POSIX.1-2001 .\"O .I fd .\"O is not a writable file descriptor. .I fd -¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢ +がオープンされたファイルのディスクリプタではない。 +または、 .I cmd -¤¬ +が .B F_LOCK -¤« +か .B F_TLOCK -¤Ç¡¢ +で、 .I fd -¤¬½ñ¤­¹þ¤ß²Äǽ¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が書き込み可能なファイルディスクリプタでない。 .TP .B EDEADLK .\"O The command was .\"O .B T_LOCK .\"O and this lock operation would cause a deadlock. -¥³¥Þ¥ó¥É¤¬ +コマンドが .B T_LOCK -¤Ç¤¢¤ê¡¢¤³¤Î¥í¥Ã¥¯Áàºî¤ò¹Ô¤¦¤È¥Ç¥Ã¥É¥í¥Ã¥¯¤¬È¯À¸¤·¤Æ¤·¤Þ¤¦¡£ +であり、このロック操作を行うとデッドロックが発生してしまう。 .TP .B EINVAL .\"O An invalid operation was specified in .\"O .IR fd . .I fd -¤Ë̵¸ú¤ÊÁàºî¤¬»ØÄꤵ¤ì¤¿¡£ +に無効な操作が指定された。 .TP .B ENOLCK .\"O Too many segment locks open, lock table is full. -Èó¾ï¤Ë¿¤¯¤Î¥»¥°¥á¥ó¥È¥í¥Ã¥¯¤¬³«¤«¤ì¡¢¥í¥Ã¥¯¥Æ¡¼¥Ö¥ë¤¬°ìÇդǤ¢¤ë¡£ +非常に多くのセグメントロックが開かれ、ロックテーブルが一杯である。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .\"O .BR fcntl (2), .\"O .BR flock (2) .\"O .br @@ -287,16 +287,16 @@ SVr4, POSIX.1-2001. .BR fcntl (2), .BR flock (2) .br -¥«¡¼¥Í¥ë¥½¡¼¥¹¤Î +カーネルソースの .I Documentation/filesystems -¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë +ディレクトリにある .I locks.txt -¤È +と .I mandatory-locking.txt -(°ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï +(以前のカーネルでは、これらのファイルは .I Documentation -¥Ç¥£¥ì¥¯¥È¥êľ²¼¤Ë¤¢¤ê¡¢ +ディレクトリ直下にあり、 .I mandatory-locking.txt -¤Ï +は .I mandatory.txt -¤È¤¤¤¦Ì¾Á°¤Ç¤¢¤Ã¤¿¡£) +という名前であった。) diff --git a/draft/man3/log.3 b/draft/man3/log.3 index ff629212..600e6139 100644 --- a/draft/man3/log.3 +++ b/draft/man3/log.3 @@ -40,10 +40,10 @@ .TH LOG 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME .\"O log, logf, logl \- natural logarithmic function -.SH ̾Á° -log, logf, logl \- ¼«Á³Âпô´Ø¿ô +.SH 名前 +log, logf, logl \- 自然対数関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -55,14 +55,14 @@ log, logf, logl \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -77,39 +77,39 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR log () .\"O function returns the natural logarithm of \fIx\fP. .BR log () -´Ø¿ô¤Ï \fIx\fP ¤Î¼«Á³Âпô¤òÊÖ¤¹¡£ +関数は \fIx\fP の自然対数を返す。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the natural logarithm of .\"O .IR x . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I x -¤Î¼«Á³Âпô¤òÊÖ¤¹¡£ +の自然対数を返す。 .\"O If .\"O .I x .\"O is a NaN, .\"O a NaN is returned. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x .\"O is 1, the result is +0. .I x -¤¬ 1 ¤Î¾ì¹ç¡¢+0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が 1 の場合、+0 が返される。 .\"O If .\"O .I x .\"O is positive infinity, .\"O positive infinity is returned. .I x -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢Àµ¤Î̵¸ÂÂ礬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大の場合、正の無限大が返される。 .\"O If .\"O .I x @@ -121,35 +121,35 @@ or .\"O .RB - HUGE_VALL , .\"O respectively. .I x -¤¬ 0 ¤Î¾ì¹ç¡¢¶Ë¥¨¥é¡¼ (pole error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +が 0 の場合、極エラー (pole error) が発生し、 +各関数はそれぞれ .RB - HUGE_VAL , .RB - HUGE_VALF , .RB - HUGE_VALL -¤òÊÖ¤¹¡£ +を返す。 .\"O If .\"O .I x .\"O is negative (including negative infinity), then .\"O a domain error occurs, and a NaN (not a number) is returned. .I x -¤¬Éé¤Î¾ì¹ç (Éé¤Î̵¸ÂÂç¤â´Þ¤à)¡¢Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ -NaN (not a number) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が負の場合 (負の無限大も含む)、領域エラー (domain error) が発生し、 +NaN (not a number) が返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Domain error: \fIx\fP is negative -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬Éé¤Ç¤¢¤ë +領域エラー (domain error): \fIx\fP が負である .\"O .I errno .\"O is set to .\"O .BR EDOM . @@ -157,15 +157,15 @@ NaN (not a number) .\"O .RB ( FE_INVALID ) .\"O is raised. .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë¡£ -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP .\"O Pole error: \fIx\fP is zero -¶Ë¥¨¥é¡¼ (pole error): \fIx\fP ¤¬ 0 ¤Ç¤¢¤ë +極エラー (pole error): \fIx\fP が 0 である .\"O .I errno .\"O is set to .\"O .BR ERANGE . @@ -173,37 +173,37 @@ NaN (not a number) .\"O .RB ( FE_DIVBYZERO ) .\"O is raised. .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -0 ¤Ë¤è¤ë½ü»» (divide-by-zero) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +0 による除算 (divide-by-zero) 浮動小数点例外 .RB ( FE_DIVBYZERO ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD, C89. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O In glibc 2.5 and earlier, .\"O taking the .\"O .BR log () .\"O of a NaN produces a bogus invalid floating-point .\"O .RB ( FE_INVALID ) .\"O exception. -glibc 2.5 °ÊÁ°¤Ç¤Ï¡¢ -NaN ¤ËÂФ·¤Æ +glibc 2.5 以前では、 +NaN に対して .BR log () -¤ò¤È¤ë¤È¡¢´Ö°ã¤Ã¤ÆÉÔÀµÉâÆ°¾®¿ôÅÀÎã³° +をとると、間違って不正浮動小数点例外 .RB ( FE_INVALID ) -¤¬È¯À¸¤·¤Æ¤¤¤¿¡£ +が発生していた。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cbrt (3), .BR clog (3), .BR log10 (3), diff --git a/draft/man3/log10.3 b/draft/man3/log10.3 index 59028f60..20c750ab 100644 --- a/draft/man3/log10.3 +++ b/draft/man3/log10.3 @@ -39,11 +39,11 @@ .\" .TH LOG10 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O log10, log10f, log10l \- base-10 logarithmic function -log10, log10f, log10l \- Ä줬 10 ¤ÎÂпô´Ø¿ô +log10, log10f, log10l \- 底が 10 の対数関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -55,14 +55,14 @@ log10, log10f, log10l \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -77,54 +77,54 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR log10 () .\"O function returns the base 10 logarithm of \fIx\fP. .BR log10 () -´Ø¿ô¤Ï \fIx\fP ¤Î¾ïÍÑÂпô (Ä줬 10 ¤ÎÂпô) ¤òÊÖ¤¹¡£ +関数は \fIx\fP の常用対数 (底が 10 の対数) を返す。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the base 10 logarithm of .\"O .IR x . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I x -¤Î¾ïÍÑÂпô (Ä줬 10 ¤ÎÂпô) ¤òÊÖ¤¹¡£ +の常用対数 (底が 10 の対数) を返す。 .\"O For special cases, including where .\"O .I x .\"O is 0, 1, negative, infinity, or NaN, see .\"O .BR log (3). .I x -¤¬ 0¡¢1¡¢É顢̵¸ÂÂç¡¢NaN ¤Ê¤É¤Î¤µ¤Þ¤¶¤Þ¤ÊÆÃÊ̤ʾõ¶·¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が 0、1、負、無限大、NaN などのさまざまな特別な状況については、 .BR log (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O For a discussion of the errors that can occur for these functions, see .\"O .BR log (3). -¤³¤ì¤é¤Î´Ø¿ô¤ÇȯÀ¸¤¹¤ë¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +これらの関数で発生するエラーについては、 .BR log (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD, C89. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cbrt (3), .BR clog10 (3), .BR exp10 (3), diff --git a/draft/man3/log1p.3 b/draft/man3/log1p.3 index d0fba78f..138595d4 100644 --- a/draft/man3/log1p.3 +++ b/draft/man3/log1p.3 @@ -33,11 +33,11 @@ .\" .TH LOG1P 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O log1p, log1pf, log1pl \- logarithm of 1 plus argument -log1p, log1pf, log1pl \- °ú¤­¿ô¤Ë 1 ¤ò²Ã¤¨¤¿ÃͤÎÂпô +log1p, log1pf, log1pl \- 引き数に 1 を加えた値の対数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -49,14 +49,14 @@ log1p, log1pf, log1pl \- .sp .fi .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -81,11 +81,11 @@ or .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .I log1p(x) .\"O returns a value equivalent to .I log1p(x) -¤Ï°Ê²¼¤ÈÅù²Á¤ÊÃͤòÊÖ¤¹¡£ +は以下と等価な値を返す。 .nf log (1 + \fIx\fP) @@ -93,27 +93,27 @@ or .fi .\"O It is computed in a way .\"O that is accurate even if the value of \fIx\fP is near zero. -\fIx\fP ¤ÎÃͤ¬ 0 ¤Ë¶á¤¤¾ì¹ç¤Ç¤âÀµ³Î¤Ë·×»»¤Ç¤­¤ëÊýË¡¤¬ÍѤ¤¤é¤ì¤ë¡£ +\fIx\fP の値が 0 に近い場合でも正確に計算できる方法が用いられる。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the natural logarithm of .\"O .IR "(1\ +\ x)" . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I "(1\ +\ x)" -¤Î¼«Á³Âпô¤òÊÖ¤¹¡£ +の自然対数を返す。 .\"O If .\"O .I x .\"O is a NaN, .\"O a NaN is returned. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x .\"O is positive infinity, positive infinity is returned. .I x -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢Àµ¤Î̵¸ÂÂ礬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大の場合、正の無限大が返される。 .\"O If .\"O .I x @@ -125,12 +125,12 @@ or .\"O .RB - HUGE_VALL , .\"O respectively. .I x -¤¬ \-1 ¤Î¾ì¹ç¡¢¶Ë¥¨¥é¡¼ (pole error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +が \-1 の場合、極エラー (pole error) が発生し、 +各関数はそれぞれ .RB - HUGE_VAL , .RB - HUGE_VALF , .RB - HUGE_VALL -¤òÊÖ¤¹¡£ +を返す。 .\"O If .\"O .I x @@ -138,62 +138,62 @@ or .\"O a domain error occurs, .\"O and a NaN (not a number) is returned. .I x -¤¬ \-1 ¤è¤ê¾®¤µ¤¤¾ì¹ç (Éé¤Î̵¸ÂÂç¤â´Þ¤à)¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ -NaN (not a number) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が \-1 より小さい場合 (負の無限大も含む)、 +領域エラー (domain error) が発生し、 +NaN (not a number) が返される。 .\" POSIX.1 specifies a possible range error if x is subnormal .\" glibc 2.8 doesn't do this .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Domain error: \fIx\fP is less than \-1 -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬ \-1 ¤è¤ê¾®¤µ¤¤ +領域エラー (domain error): \fIx\fP が \-1 より小さい .\" .I errno .\" is set to .\" .BR EDOM . .\"O An invalid floating-point exception .\"O .RB ( FE_INVALID ) .\"O is raised. -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP .\"O Pole error: \fIx\fP is \-1 -¶Ë¥¨¥é¡¼ (pole error): \fIx\fP ¤¬ \-1 ¤Ç¤¢¤ë +極エラー (pole error): \fIx\fP が \-1 である .\" .I errno .\" is set to .\" .BR ERANGE . .\"O A divide-by-zero floating-point exception .\"O .RB ( FE_DIVBYZERO ) .\"O is raised. -0 ¤Ë¤è¤ë½ü»» (divide-by-zero) ÉâÆ°¾®¿ôÅÀÎã³° +0 による除算 (divide-by-zero) 浮動小数点例外 .RB ( FE_DIVBYZERO ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP .\"O These functions do not set .\"O .IR errno . -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" log(), log2(), log10() do set errno .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6792 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\" BSD .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR exp (3), .BR expm1 (3), .BR log (3) diff --git a/draft/man3/log2.3 b/draft/man3/log2.3 index 9376e10f..7c9d2a9d 100644 --- a/draft/man3/log2.3 +++ b/draft/man3/log2.3 @@ -40,11 +40,11 @@ .\" .TH LOG2 3 2010-09-12 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O log2, log2f, log2l \- base-2 logarithmic function -log2, log2f, log2l \- Ä줬 2 ¤ÎÂпô´Ø¿ô +log2, log2f, log2l \- 底が 2 の対数関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -56,14 +56,14 @@ log2, log2f, log2l \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -78,58 +78,58 @@ or .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR log2 () .\"O function returns the base 2 logarithm of \fIx\fP. .BR log2 () -´Ø¿ô¤ÏÄì¤ò 2 ¤È¤¹¤ë \fIx\fP ¤ÎÂпô¤òÊÖ¤¹¡£ +関数は底を 2 とする \fIx\fP の対数を返す。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the base 2 logarithm of .\"O .IR x . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I x -¤ÎÄì¤ò 2 ¤È¤¹¤ëÂпô¤òÊÖ¤¹¡£ +の底を 2 とする対数を返す。 .\"O For special cases, including where .\"O .I x .\"O is 0, 1, negative, infinity, or NaN, see .\"O .BR log (3). .I x -¤¬ 0¡¢1¡¢É顢̵¸ÂÂç¡¢NaN ¤Ê¤É¤Î¤µ¤Þ¤¶¤Þ¤ÊÆÃÊ̤ʾõ¶·¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が 0、1、負、無限大、NaN などのさまざまな特別な状況については、 .BR log (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O For a discussion of the errors that can occur for these functions, see .\"O .BR log (3). -¤³¤ì¤é¤Î´Ø¿ô¤ÇȯÀ¸¤¹¤ë¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +これらの関数で発生するエラーについては、 .BR log (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD にも準拠している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cbrt (3), .BR clog2 (3), .BR log (3), diff --git a/draft/man3/logb.3 b/draft/man3/logb.3 index 261a7514..39e2defb 100644 --- a/draft/man3/logb.3 +++ b/draft/man3/logb.3 @@ -30,17 +30,17 @@ .\" by Yuichi SATO .\" Updated 2008-09-16, Akihiro MOTOKI .\" -.\"WORD: exponent »Ø¿ôÉô -.\"WORD: radix ´ð¿ô -.\"WORD: subnormal ÈóÀµµ¬²½¤Î +.\"WORD: exponent 指数部 +.\"WORD: radix 基数 +.\"WORD: subnormal 非正規化の .\" .TH LOGB 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O logb, logbf, logbl \- get exponent of a floating-point value -logb, logbf, logbl \- ÉâÆ°¾®¿ôÅÀ¿ô¤Î»Ø¿ô¤ò¼èÆÀ¤¹¤ë +logb, logbf, logbl \- 浮動小数点数の指数を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double logb(double " x ); @@ -50,14 +50,14 @@ logb, logbf, logbl \- .BI "long double logbl(long double " x ); .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -82,23 +82,23 @@ or .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions extract the exponent from the .\"O internal floating-point representation of .\"O .I x .\"O and return it as a floating-point value. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ +これらの関数は、 .I x -¤ÎÉâÆ°¾®¿ôÅÀ¤ÎÆâÉôɽ¸½¤«¤é»Ø¿ôÉô¤òÃê½Ð¤·¡¢ÉâÆ°¾®¿ôÅÀ¿ôÃͤȤ·¤ÆÊÖ¤¹¡£ +の浮動小数点の内部表現から指数部を抽出し、浮動小数点数値として返す。 .\"O The integer constant .\"O .BR FLT_RADIX , .\"O defined in .\"O .IR , .\"O indicates the radix used for the system's floating-point representation. .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëÀ°¿ôÄê¿ô +で定義されている整数定数 .B FLT_RADIX -¤Ï¡¢¥·¥¹¥Æ¥à¤ÎÉâÆ°¾®¿ôÅÀɽ¸½¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë´ð¿ô¤òɽ¤¹¡£ +は、システムの浮動小数点表現で使用されている基数を表す。 .\"O If .\"O .B FLT_RADIX .\"O is 2, @@ -107,11 +107,11 @@ or .\"O .BI floor(log2( x ))\fR, .\"O except that is probably faster. .B FLT_RADIX -¤¬ 2 ¤Î¾ì¹ç¡¢ +が 2 の場合、 .BI logb( x ) -¤Ï +は .BI floor(log2( x ))\fR -¤ÈÅù¤·¤¤¤¬¡¢¸å¼Ô¤ÎÊý¤¬¤¿¤Ö¤ó¹â®¤Ç¤¢¤ë¡£ +と等しいが、後者の方がたぶん高速である。 .LP .\"O If .\"O .I x @@ -121,25 +121,25 @@ or .\"O .I x .\"O would have if it were normalized. .I x -¤¬ÈóÀµµ¬²½¿ô¤Î¾ì¹ç¡¢ +が非正規化数の場合、 .BR logb () -¤Ï +は .I x -¤¬Àµµ¬²½¤µ¤ì¤¿¾ì¹ç¤Î»Ø¿ô¤òÊÖ¤¹¡£ +が正規化された場合の指数を返す。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the exponent of .\"O .IR x . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I x -¤Î»Ø¿ôÉô¤òÊÖ¤¹¡£ +の指数部を返す。 .\"O If .\"O .I x .\"O is a NaN, .\"O a NaN is returned. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x @@ -150,70 +150,70 @@ or .\"O .RB - HUGE_VALL , .\"O respectively. .I x -¤¬ 0 ¤Î¾ì¹ç¡¢¶Ë¥¨¥é¡¼ (pole error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +が 0 の場合、極エラー (pole error) が発生し、 +各関数はそれぞれ .RB - HUGE_VAL , .RB - HUGE_VALF , .RB - HUGE_VALL -¤òÊÖ¤¹¡£ +を返す。 .\"O If .\"O .I x .\"O is negative infinity or positive infinity, then .\"O positive infinity is returned. .I x -¤¬Éé¤Î̵¸ÂÂ礫Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢Àµ¤Î̵¸ÂÂ礬ÊÖ¤µ¤ì¤ë¡£ +が負の無限大か正の無限大の場合、正の無限大が返される。 .\"O .\" .SH "RETURN VALUE" .\"O .\" These functions return the exponent part of their argument. -.\" .SH ÊÖ¤êÃÍ -.\" ¤³¤ì¤é¤Î´Ø¿ô¤Ï°ú¤­¿ô¤Î»Ø¿ôÉô¤òÊÖ¤¹¡£ +.\" .SH 返り値 +.\" これらの関数は引き数の指数部を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Pole error: \fIx\fP is 0 -¶Ë¥¨¥é¡¼ (pole error): \fIx\fP ¤¬ 0 ¤Ç¤¢¤ë +極エラー (pole error): \fIx\fP が 0 である .\" .I errno .\" is set to .\" .BR ERANGE . .\"O A divide-by-zero floating-point exception .\"O .RB ( FE_DIVBYZERO ) .\"O is raised. -0 ¤Ë¤è¤ë½ü»» (divide-by-zero) ÉâÆ°¾®¿ôÅÀÎã³° +0 による除算 (divide-by-zero) 浮動小数点例外 .RB ( FE_DIVBYZERO ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP .\"O These functions do not set .\"O .IR errno . -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" log(), log2(), log10() do set errno .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6793 .\" .\"O .\" .SH HISTORY -.\" .SH ÍúÎò +.\" .SH 履歴 .\"O .\" The .\"O .\" .BR logb () .\"O .\" function occurs in 4.3BSD. .\"O .\" see IEEE.3 in the 4.3BSD manual .\" .BR logb () -.\" ´Ø¿ô¤Ï 4.3BSD ¤ÇƳÆþ¤µ¤ì¤¿¡£ -.\" 4.3BSD ¥Þ¥Ë¥å¥¢¥ë¤Î IEEE.3 ¤ò»²¾È¤¹¤ë¤³¤È¡£ +.\" 関数は 4.3BSD で導入された。 +.\" 4.3BSD マニュアルの IEEE.3 を参照すること。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ilogb (3), .BR log (3) diff --git a/draft/man3/login.3 b/draft/man3/login.3 index f7c1b697..ec1f5068 100644 --- a/draft/man3/login.3 +++ b/draft/man3/login.3 @@ -29,11 +29,11 @@ .\" .TH LOGIN 3 2004-05-06 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O login, logout \- write utmp and wtmp entries -login, logout \- utmp ¤È wtmp ¥¨¥ó¥È¥ê¤ò½ñ¤­¹þ¤à +login, logout \- utmp と wtmp エントリを書き込む .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "void login(const struct utmp *" ut ); @@ -41,37 +41,37 @@ login, logout \- utmp .BI "int logout(const char *" ut_line ); .sp .\"O Link with \fI\-lutil\fP. -\fI\-lutil\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lutil\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The utmp file records who is currently using the system. -utmp ¥Õ¥¡¥¤¥ë¤Ï¸½ºß¥·¥¹¥Æ¥à¤ò»ÈÍѤ·¤Æ¤¤¤ë¥æ¡¼¥¶¤òµ­Ï¿¤¹¤ë¡£ +utmp ファイルは現在システムを使用しているユーザを記録する。 .\"O The wtmp file records all logins and logouts. .\"O See .\"O .BR utmp (5). -wtmp ¥Õ¥¡¥¤¥ë¤Ï¤¹¤Ù¤Æ¤Î¥í¥°¥¤¥ó¤È¥í¥°¥¢¥¦¥È¤òµ­Ï¿¤¹¤ë¡£ +wtmp ファイルはすべてのログインとログアウトを記録する。 .BR utmp (5) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .LP .\"O The function .\"O .BR login () .\"O takes the supplied \fIstruct utmp\fP .\"O .IR ut , .\"O and writes it to both the utmp and the wtmp file. -´Ø¿ô +関数 .BR login () -¤ÏÍ¿¤¨¤é¤ì¤¿ \fIstruct utmp\fP +は与えられた \fIstruct utmp\fP .I ut -¤ò utmp ¤È wtmp ¥Õ¥¡¥¤¥ë¤ÎξÊý¤Ë½ñ¤­¹þ¤à¡£ +を utmp と wtmp ファイルの両方に書き込む。 .LP .\"O The function .\"O .BR logout () .\"O clears the entry in the utmp file again. -´Ø¿ô +関数 .BR logout () -¤Ï utmp ¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë¥¨¥ó¥È¥ê¤ò¥¯¥ê¥¢¤¹¤ë¡£ +は utmp ファイルにあるエントリをクリアする。 .\"O .SS "GNU Details" -.SS "GNU ÈǤξܺÙ" +.SS "GNU 版の詳細" .\"O More precisely, .\"O .BR login () .\"O takes the argument @@ -83,36 +83,36 @@ wtmp .\"O and fills the field .\"O .I ut\->ut_pid .\"O (if there is such a field) with the process ID of the calling process. -¤è¤êÀµ³Î¤Ë¤Ï¡¢ +より正確には、 .BR login () -¤Ï°ú¤­¿ô +は引き数 .I ut -¹½Â¤ÂΤò¤È¤ê¡¢(¤â¤·Â¸ºß¤¹¤ë¤Ê¤é¤Ð) ¥Õ¥£¡¼¥ë¥É +構造体をとり、(もし存在するならば) フィールド .I ut\->ut_type -¤ò +を .B USER_PROCESS -¤È¤¤¤¦Ãͤˤ·¡¢(¤â¤·Â¸ºß¤¹¤ë¤Ê¤é¤Ð) ¥Õ¥£¡¼¥ë¥É +という値にし、(もし存在するならば) フィールド .I ut\->ut_pid -¤ò¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤ÎÃͤˤ¹¤ë¡£ +を呼び出し元プロセスのプロセス ID の値にする。 .\"O Then it tries to fill the field .\"O .IR ut\->ut_line . -¼¡¤Ë¥Õ¥£¡¼¥ë¥É +次にフィールド .I ut\->ut_line -¤ÎÃͤòÀßÄꤷ¤è¤¦¤È¤¹¤ë¡£ +の値を設定しようとする。 .\"O It takes the first of \fIstdin\fP, \fIstdout\fP, \fIstderr\fP .\"O that is a tty, and .\"O stores the corresponding pathname minus a possible leading \fI/dev/\fP .\"O into this field, and then writes the struct to the utmp file. -¤³¤Î´Ø¿ô¤Ï¡¢É¸½àÆþÎÏ¡¦É¸½à½ÐÎÏ¡¦É¸½à¥¨¥é¡¼½ÐÎϤÎÃ椫¤é -üËö (tty) ¤Ç¤¢¤ëºÇ½é¤Î¤â¤Î¤ò¤È¤ê¡¢ -Âбþ¤¹¤ë¥Ñ¥¹Ì¾¤«¤éÀèƬ¤Î \fI/dev/\fP ¤ò°ú¤¤¤¿¤â¤Î¤ò -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ë³ÊǼ¤·¤Æ¡¢¤³¤Î¹½Â¤ÂΤò utmp ¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤à¡£ +この関数は、標準入力・標準出力・標準エラー出力の中から +端末 (tty) である最初のものをとり、 +対応するパス名から先頭の \fI/dev/\fP を引いたものを +このフィールドに格納して、この構造体を utmp ファイルに書き込む。 .\"O On the other hand, if no tty name was found, this field is filled with "???" .\"O and the struct is not written to the utmp file. .\"O After this, the struct is written to the wtmp file. -°ìÊý¡¢Ã¼Ëö̾¤¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï¡¢¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï "???" ¤È¤µ¤ì¤Æ¡¢ -¤³¤Î¹½Â¤ÂÎ¤Ï utmp ¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤Þ¤ì¤Ê¤¤¡£ -¤½¤Î¸å¤Ë¤³¤Î¹½Â¤ÂÎ¤Ï wtmp ¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£ +一方、端末名が見つからない場合は、このフィールドは "???" とされて、 +この構造体は utmp ファイルに書き込まれない。 +その後にこの構造体は wtmp ファイルに書き込まれる。 .LP .\"O The .\"O .BR logout () @@ -130,63 +130,63 @@ wtmp .\"O (if there is such a field) to .\"O .BR DEAD_PROCESS . .BR logout () -´Ø¿ô¤Ï utmp ¥Õ¥¡¥¤¥ë¤«¤é +関数は utmp ファイルから .I ut_line -°ú¤­¿ô¤Ë¥Þ¥Ã¥Á¤¹¤ë¥¨¥ó¥È¥ê¤òõ¤¹¡£ -¥ì¥³¡¼¥É¤¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç¡¢ +引き数にマッチするエントリを探す。 +レコードが見つかった場合、 .I ut_name -¤È +と .I ut_host -¥Õ¥£¡¼¥ë¥É¤ò¥¯¥ê¥¢¤·¤Æ¡¢ +フィールドをクリアして、 .I ut_tv -¥¿¥¤¥à¥¹¥¿¥ó¥×¥Õ¥£¡¼¥ë¥É¤ò¹¹¿·¤·¡¢ -(¤â¤·Â¸ºß¤¹¤ë¤Ê¤é¤Ð) +タイムスタンプフィールドを更新し、 +(もし存在するならば) .I ut_type -¥Õ¥£¡¼¥ë¥É¤ò +フィールドを .B DEAD_PROCESS -¤Ë¹¹¿·¤¹¤ë¡£ +に更新する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR logout () .\"O function returns 1 if the entry was successfully written to the .\"O database, or 0 if an error occurred. -¥¨¥ó¥È¥ê¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë½ñ¤­¹þ¤à¤Î¤ËÀ®¸ù¤·¤¿¾ì¹ç¡¢ +エントリをデータベースに書き込むのに成功した場合、 .BR logout () -´Ø¿ô¤Ï 1 ¤òÊÖ¤¹¡£ -¤Þ¤¿¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢0 ¤òÊÖ¤¹¡£ +関数は 1 を返す。 +またエラーが起こった場合、0 を返す。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .TP .I /var/run/utmp .\"O user accounting database, configured through .\"O .B _PATH_UTMP .\"O in .\"O .I -¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¥Ç¡¼¥¿¥Ù¡¼¥¹¡£ +ユーザアカウントデータベース。 .I -¤Ë¤ª¤±¤ë +における .B _PATH_UTMP -¤ÇÀßÄꤵ¤ì¤Æ¤¤¤ë¡£ +で設定されている。 .TP .I /var/log/wtmp .\"O user accounting log file, configured through .\"O .B _PATH_WTMP .\"O in .\"O .I -¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¥í¥°¥Õ¥¡¥¤¥ë¡£ +ユーザアカウントログファイル。 .I -¤Ë¤ª¤±¤ë +における .B _PATH_WTMP -¤ÇÀßÄꤵ¤ì¤Æ¤¤¤ë¡£ +で設定されている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O Not in POSIX.1-2001. .\"O Present on the BSDs. -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -BSD ·Ï¤Ë¸ºß¤¹¤ë¡£ +POSIX.1-2001 にはない。 +BSD 系に存在する。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Note that the .\"O member .\"O .I ut_user @@ -202,19 +202,19 @@ BSD .\"O in .\"O .IR . .I struct utmp -¤Î¥á¥ó¥Ð +のメンバ .I ut_user -¤Ï¡¢BSD ¤Ç¤Ï +は、BSD では .I ut_name -¤È¤¤¤¦Ì¾Á°¤Ç¤¢¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¤½¤Î¤¿¤á +という名前である点に注意すること。 +そのため .I ut_name -¤Ï +は .I -¤Ë¤ª¤¤¤Æ +において .I ut_user -¤Î¥¨¥¤¥ê¥¢¥¹¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +のエイリアスとして定義されている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getutent (3), .BR utmp (5) diff --git a/draft/man3/longjmp.3 b/draft/man3/longjmp.3 index 7f384c7b..cf1c20cf 100644 --- a/draft/man3/longjmp.3 +++ b/draft/man3/longjmp.3 @@ -28,20 +28,20 @@ .\" Translated 1998-05-27, Seiiti Obara .\" Updated 2009-02-24, Akihiro MOTOKI, LDP v3.19 .\" -.\"WORD: stack context ¥¹¥¿¥Ã¥¯¥³¥ó¥Æ¥­¥¹¥È -.\"WORD: signal masks ¥·¥°¥Ê¥ë¥Þ¥¹¥¯ -.\"WORD: signal context ¥·¥°¥Ê¥ë¥³¥ó¥Æ¥­¥¹¥È -.\"WORD: flag ¥Õ¥é¥° -.\"WORD: low-level Äã¥ì¥Ù¥ë +.\"WORD: stack context スタックコンテキスト +.\"WORD: signal masks シグナルマスク +.\"WORD: signal context シグナルコンテキスト +.\"WORD: flag フラグ +.\"WORD: low-level 低レベル .\" .TH LONGJMP 3 2009-01-13 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O longjmp, siglongjmp \- nonlocal jump to a saved stack context -longjmp, siglongjmp \- Êݸ¤µ¤ì¤¿¥¹¥¿¥Ã¥¯¥³¥ó¥Æ¥­¥¹¥È (stack context) -¤Ø¤ÎÈó¶É½êŪ¤Ê¥¸¥ã¥ó¥× +longjmp, siglongjmp \- 保存されたスタックコンテキスト (stack context) +への非局所的なジャンプ .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include @@ -53,15 +53,15 @@ longjmp, siglongjmp \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR siglongjmp (): _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_C_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR longjmp () .\"O and .\"O .BR setjmp (3) @@ -84,23 +84,23 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_C_SOURCE .\"O .BR longjmp () .\"O is invoked with a second argument of 0, 1 will be returned instead. .BR longjmp () -¤È +と .BR setjmp (3) -¤Ï¡¢¥×¥í¥°¥é¥à¤ÎÄã¥ì¥Ù¥ë¤Ê¥µ¥Ö¥ë¡¼¥Á¥ó¤Ë¤ª¤¤¤Æ¡¢ -¥¨¥é¡¼¤ä³ä¤ê¹þ¤ß¤¬È¯À¸¤·¤¿»þ¤Î½èÍý¤ËÊØÍø¤Ç¤¢¤ë¡£ +は、プログラムの低レベルなサブルーチンにおいて、 +エラーや割り込みが発生した時の処理に便利である。 .BR longjmp () -¤Ï¡¢\fIenv\fP °ú¤­¿ô¤ò»ØÄꤷ¤Æ¸Æ¤Ó½Ð¤µ¤ì¤¿ºÇ¸å¤Î +は、\fIenv\fP 引き数を指定して呼び出された最後の .BR setjmp (3) -¤Ë¤è¤Ã¤ÆÊݸ¤µ¤ì¤¿´Ä¶­¤òÉü¸µ¤¹¤ë¡£ +によって保存された環境を復元する。 .BR longjmp () -¤Î´°Î»¸å¡¢¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤Ï¡¢¤Þ¤ë¤ÇÂбþ¤¹¤ë +の完了後、プログラムの実行は、まるで対応する .BR setjmp (3) -¤Î¸Æ¤Ó½Ð¤·¤¬ÃÍ \fIval\fP ¤ÇÊ֤äÆÍ褿¤«¤è¤¦¤Ë³¹Ô¤µ¤ì¤ë¡£ +の呼び出しが値 \fIval\fP で返って来たかように続行される。 .BR longjmp () -¤Ï 0 ¤òÊÖ¤¹¤è¤¦¤Ë»Ø¼¨¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -ÆóÈÖÌܤΰú¤­¿ô¤Ë 0 ¤ò»ØÄꤷ¤Æ +は 0 を返すように指示することはできない。 +二番目の引き数に 0 を指定して .BR longjmp () -¤¬¸Æ¤Ð¤ì¤¿¾ì¹ç¤Ï¡¢Âå¤ï¤ê¤Ë 1 ¤¬ÊÖ¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ +が呼ばれた場合は、代わりに 1 が返されることになる。 .P .\"O .BR siglongjmp () .\"O is similar to @@ -115,33 +115,33 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_C_SOURCE .\"O also restores the signal mask that was saved by .\"O .BR sigsetjmp (3). .BR siglongjmp () -¤Ï¡¢°ú¤­¿ô \fIenv\fP ¤Î·¿¤¬°Û¤Ê¤ëÅÀ°Ê³°¤Ï¡¢ +は、引き数 \fIenv\fP の型が異なる点以外は、 .BR longjmp () -¤ÈƱÍͤǤ¢¤ë¡£ -\fIenv\fP ¤òÊݸ¤·¤¿ +と同様である。 +\fIenv\fP を保存した .BR sigsetjmp (3) -¤¬ 0 °Ê³°¤Î \fIsavesigs\fP ¥Õ¥é¥°¤Ç¸Æ¤Ó½Ð¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ç¡¢ -¤«¤Ä¡¢¤½¤Î¾ì¹ç¤Ë¤Î¤ß¡¢ +が 0 以外の \fIsavesigs\fP フラグで呼び出されていた場合で、 +かつ、その場合にのみ、 .BR siglongjmp (3) -¤Ï +は .BR sigsetjmp (3) -¤è¤êÊݸ¤µ¤ì¤Æ¤¤¤¿¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ÎÉü¸µ¤ò¹Ô¤¦¡£ +より保存されていたシグナルマスクの復元を行う。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O These functions never return. -¤³¤ì¤é¤Î´Ø¿ô¤¬Ê֤뤳¤È¤Ï¤Ê¤¤¡£ +これらの関数が返ることはない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O C89, C99, and POSIX.1-2001 specify .\"O .BR longjmp (). .\"O POSIX.1-2001 specifies .\"O .BR siglongjmp (). .BR longjmp () -¤Ï C89, C99, POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は C89, C99, POSIX.1-2001 で規定されている。 .BR siglongjmp () -¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は POSIX.1-2001 で規定されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O POSIX does not specify whether .\"O .BR longjmp () .\"O will restore the signal context (see @@ -151,52 +151,52 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_C_SOURCE .\"O .BR sigsetjmp () .\"O and .\"O .BR siglongjmp (). -POSIX ¤Ç¤Ï¡¢ +POSIX では、 .BR longjmp () -¤¬¥·¥°¥Ê¥ë¥³¥ó¥Æ¥­¥¹¥È (signal context) ¤òÉü¸µ¤¹¤ë¤«¤É¤¦¤«µ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤ +がシグナルコンテキスト (signal context) を復元するかどうか規定されていない .RB ( setjmp (3) -¤Ë¤â¾¯¤·¾Ü¤·¤¤¾ðÊ󤬤¢¤ë)¡£ -°Ü¿¢À­¤Î¤¢¤ëÊýË¡¤Ç¡¢¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊݸ¤·Éü¸µ¤µ¤»¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ +にも少し詳しい情報がある)。 +移植性のある方法で、シグナルマスクを保存し復元させたい場合には、 .BR sigsetjmp (3) -¤È +と .BR siglongjmp () -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .P .\"O The values of automatic variables are unspecified after a call to .\"O .BR longjmp () .\"O if they meet all the following criteria: -°Ê²¼¤Î¾ò·ï¤¬Á´¤ÆÀ®Î©¤¹¤ë¾ì¹ç¡¢ +以下の条件が全て成立する場合、 .BR longjmp () -¤Î¸Æ¤Ó½Ð¤·¤¬¹Ô¤ï¤ì¤¿¸å¤Î¼«Æ°ÊÑ¿ô¤ÎÃͤÏ̤ÄêµÁ (unspecified) ¤È¤Ê¤ë¡£ +の呼び出しが行われた後の自動変数の値は未定義 (unspecified) となる。 .IP \(bu 3 .\"O they are local to the function that made the corresponding .\"O .BR setjmp (3) .\"O call; -¤½¤Î¼«Æ°ÊÑ¿ô¤¬¡¢Âбþ¤¹¤ë +その自動変数が、対応する .BR setjmp (3) -¸Æ¤Ó½Ð¤·¤ò¹Ô¤Ã¤¿´Ø¿ô¤Î¥í¡¼¥«¥ëÊÑ¿ô¤Ç¤¢¤ë¡£ +呼び出しを行った関数のローカル変数である。 .IP \(bu .\"O their values are changed between the calls to .\"O .BR setjmp (3) .\"O and .\"O .BR longjmp (); .\"O and -¼«Æ°ÊÑ¿ô¤ÎÃͤ¬ +自動変数の値が .BR setjmp (3) -¤È +と .BR longjmp () -¤Î´Ö¤ÇÊѹ¹¤µ¤ì¤Æ¤¤¤ë¡£ +の間で変更されている。 .IP \(bu .\"O they are not declared as .\"O .IR volatile . .I volatile -¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +として宣言されていない。 .P .\"O Analogous remarks apply for .\"O .BR siglongjmp (). -ƱÍͤÎÃí°Õ¤¬ +同様の注意が .BR siglongjmp () -¤Ë¤â¤¢¤Æ¤Ï¤Þ¤ë¡£ +にもあてはまる。 .P .\"O .BR longjmp () .\"O and @@ -205,11 +205,11 @@ POSIX .\"O understand and maintain. .\"O If possible an alternative should be used. .BR longjmp () -¤ä +や .BR siglongjmp () -¤ò»È¤¦¤È¡¢¥×¥í¥°¥é¥à¤ÏÍý²ò¤·¤Å¤é¤¯¡¢Êݼ餷¤Ë¤¯¤¤¤â¤Î¤Ë¤Ê¤ë¡£ -Ê̤ÎÊýË¡¤¬²Äǽ¤Ê¤é¡¢¤½¤ì¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£ +を使うと、プログラムは理解しづらく、保守しにくいものになる。 +別の方法が可能なら、それを使うべきである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR setjmp (3), .BR sigsetjmp (3) diff --git a/draft/man3/lrint.3 b/draft/man3/lrint.3 index ea2f8cfb..9b92d8f1 100644 --- a/draft/man3/lrint.3 +++ b/draft/man3/lrint.3 @@ -32,11 +32,11 @@ .\" .TH LRINT 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O lrint, lrintf, lrintl, llrint, llrintf, llrintl \- round to nearest integer -lrint, lrintf, lrintl, llrint, llrintf, llrintl \- ºÇ¤â¶á¤¤À°¿ôÃͤ˴ݤá¤ë +lrint, lrintf, lrintl, llrint, llrintf, llrintl \- 最も近い整数値に丸める .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -54,19 +54,19 @@ lrint, lrintf, lrintl, llrint, llrintf, llrintl \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l .\"O All functions shown above: -¾åµ­¤ÎÁ´¤Æ¤Î´Ø¿ô: +上記の全ての関数: .RS 4 _XOPEN_SOURCE\ >=\ 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L; @@ -76,25 +76,25 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions round their argument to the nearest integer value, .\"O using the current rounding direction (see .\"O .BR fesetround (3)). -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¸½ºß¤Î´Ý¤áÊý¸þ¤Ë´ð¤Å¤­¡¢ºÇ¤â¶á¤¤À°¿ô¤Ë°ú¤­¿ô¤ò´Ý¤á¤ë -(¸½ºß¤Î´Ý¤áÊý¸þ¤Ë¤Ä¤¤¤Æ¤Ï +これらの関数は、現在の丸め方向に基づき、最も近い整数に引き数を丸める +(現在の丸め方向については .BR fesetround (3) -¤ò»²¾È)¡£ +を参照)。 .\"O Note that unlike .\"O .BR rint (3), .\"O etc., the return type of these functions differs from .\"O that of their arguments. .BR rint (3) -¤È°ã¤¤¡¢¤³¤ì¤é¤Î´Ø¿ô¤ÎÊÖ¤êÃͤη¿¤Ï°ú¤­¿ô¤Î·¿¤È°Û¤Ê¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +と違い、これらの関数の返り値の型は引き数の型と異なる点に注意すること。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O These functions return the rounded integer value. -¤³¤ì¤é¤Î´Ø¿ô¤Ï´Ý¤á¤¿À°¿ôÃͤòÊÖ¤¹¡£ +これらの関数は丸めた整数値を返す。 .\"O If .\"O .I x @@ -107,55 +107,55 @@ or .\"O functions) .\"O then a domain error occurs, and the return value is unspecified. .I x -¤¬ NaN ¤«Ìµ¸ÂÂç¤Î¾ì¹ç¡¢¤â¤·¤¯¤Ï´Ý¤á¤¿Ãͤ¬Â礭²á¤®¤Æ +が NaN か無限大の場合、もしくは丸めた値が大き過ぎて .I long .RB ( ll* -´Ø¿ô¤Î¾ì¹ç¤Ë¤Ï +関数の場合には .IR "long long" ) -¤Ë³ÊǼ¤Ç¤­¤Ê¤¤¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ÊÖ¤êÃͤÏÉÔÄê¤È¤Ê¤ë¡£ +に格納できない場合、 +領域エラー (domain error) が発生し、返り値は不定となる。 .\" The return value is -(LONG_MAX - 1) or -(LLONG_MAX -1) .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Domain error: \fIx\fP is a NaN or infinite, or the rounded value is too large -Îΰ襨¥é¡¼: \fIx\fP ¤¬ NaN ¤«Ìµ¸ÂÂç¡¢¤â¤·¤¯¤Ï´Ý¤á¤¿Ãͤ¬Â礭²á¤®¤ë +領域エラー: \fIx\fP が NaN か無限大、もしくは丸めた値が大き過ぎる .\" .I errno .\" is set to .\" .BR EDOM . .\"O An invalid floating-point exception .\"O .RB ( FE_INVALID ) .\"O is raised. -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP .\"O These functions do not set .\"O .IR errno . -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6798 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ceil (3), .BR floor (3), .BR lround (3), diff --git a/draft/man3/lround.3 b/draft/man3/lround.3 index 0732674a..7119589b 100644 --- a/draft/man3/lround.3 +++ b/draft/man3/lround.3 @@ -32,11 +32,11 @@ .\" .TH LROUND 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O lround, lroundf, lroundl, llround, llroundf, llroundl \- round to .\"O nearest integer, away from zero lround, lroundf, lroundl, llround, llroundf, llroundl \- -(0 ¤«¤é±ó¤¤Êý¤Î) ºÇ¤â¶á¤¤À°¿ôÃͤ˴ݤá¤ë +(0 から遠い方の) 最も近い整数値に丸める .\"O .SH SYNOPSIS .nf .B #include @@ -55,19 +55,19 @@ lround, lroundf, lroundl, llround, llroundf, llroundl \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l .\"O All functions shown above: -¤³¤³¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î´Ø¿ô: +ここに記載されている全ての関数: .RS 4 _XOPEN_SOURCE\ >=\ 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L; @@ -77,17 +77,17 @@ or .RE .ad \"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions round their argument to the nearest integer value, .\"O rounding away from zero, .\"O regardless of the current rounding direction (see .\"O .BR fenv (3)). -¤³¤ì¤é¤Î´Ø¿ô¤ÏºÇ¤â¶á¤¤À°¿ô¤Ë°ú¤­¿ô¤ò´Ý¤á¤ë¡£ -¸½ºß¤Î´Ý¤áÊý¸þ¤Ë´Ø·¸¤Ê¤¯¡¢ -0 ¤«¤é±ó¤¤Êý¤ÎºÇ¤â¶á¤¤À°¿ô¤Ë°ú¤­¿ô¤Ï´Ý¤á¤é¤ì¤ë -(¸½ºß¤Î´Ý¤áÊý¸þ¤Ë¤Ä¤¤¤Æ¤Ï +これらの関数は最も近い整数に引き数を丸める。 +現在の丸め方向に関係なく、 +0 から遠い方の最も近い整数に引き数は丸められる +(現在の丸め方向については .BR fenv (3) -»²¾È)¡£ +参照)。 .\"O Note that unlike .\"O .BR round (3), @@ -96,11 +96,11 @@ or .\"O that of their arguments. .BR round (3), .BR ceil (3) -¤Ê¤É¤È°ã¤¤¡¢¤³¤ì¤é¤Î´Ø¿ô¤ÎÊÖ¤êÃͤη¿¤Ï°ú¤­¿ô¤Î·¿¤È°Û¤Ê¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +などと違い、これらの関数の返り値の型は引き数の型と異なる点に注意すること。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O These functions return the rounded integer value. -¤³¤ì¤é¤Î´Ø¿ô¤Ï´Ý¤á¤¿À°¿ôÃͤòÊÖ¤¹¡£ +これらの関数は丸めた整数値を返す。 .\"O If .\"O .I x @@ -113,55 +113,55 @@ or .\"O functions) .\"O then a domain error occurs, and the return value is unspecified. .I x -¤¬ NaN ¤«Ìµ¸ÂÂç¤Î¾ì¹ç¡¢¤â¤·¤¯¤Ï´Ý¤á¤¿Ãͤ¬Â礭²á¤®¤Æ +が NaN か無限大の場合、もしくは丸めた値が大き過ぎて .I long .RB ( ll* -´Ø¿ô¤Î¾ì¹ç¤Ë¤Ï +関数の場合には .IR "long long" ) -¤Ë³ÊǼ¤Ç¤­¤Ê¤¤¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ÊÖ¤êÃͤÏÉÔÄê¤È¤Ê¤ë¡£ +に格納できない場合、 +領域エラー (domain error) が発生し、返り値は不定となる。 .\" The return value is -(LONG_MAX - 1) or -(LLONG_MAX -1) .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Domain error: \fIx\fP is a NaN or infinite, or the rounded value is too large -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬ NaN ¤«Ìµ¸ÂÂç¡¢¤â¤·¤¯¤Ï´Ý¤á¤¿Ãͤ¬Â礭²á¤®¤ë +領域エラー (domain error): \fIx\fP が NaN か無限大、もしくは丸めた値が大き過ぎる .\" .I errno .\" is set to .\" .BR EDOM . .\"O An invalid floating-point exception .\"O .RB ( FE_INVALID ) .\"O is raised. -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP .\"O These functions do not set .\"O .IR errno . -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6797 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ceil (3), .BR floor (3), .BR lrint (3), diff --git a/draft/man3/lsearch.3 b/draft/man3/lsearch.3 index 6ce9d631..70ca7532 100644 --- a/draft/man3/lsearch.3 +++ b/draft/man3/lsearch.3 @@ -28,15 +28,15 @@ .\" Translated 1998-05-23, Ueyama Rui .\" Updated 2005-02-26, Akihiro MOTOKI .\" -.\"WORD: linear search Àþ·Á¸¡º÷ +.\"WORD: linear search 線形検索 .\" .TH LSEARCH 3 1999-09-27 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O lfind, lsearch \- linear search of an array -lfind, lsearch \- ÇÛÎó¤òÀþ·Á¸¡º÷¤¹¤ë +lfind, lsearch \- 配列を線形検索する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -47,7 +47,7 @@ lfind, lsearch \- .BI " size_t " size ", int(*" compar ")(const void *, const void *));" .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR lfind () .\"O and .\"O .BR lsearch () @@ -60,27 +60,27 @@ lfind, lsearch \- .\"O returns zero if the \fIkey\fP object matches the array member, and .\"O nonzero otherwise. .BR lfind () -¤È +と .BR lsearch () -¤Ï¡¢ +は、 .I size -¥Ð¥¤¥È¤ÎÍ×ÁÇ +バイトの要素 .I *nmemb -¸Ä¤«¤é¤Ê¤ëÇÛÎó +個からなる配列 .I base -¤«¤é¡¢ +から、 .I key -¤òÀþ·Á¸¡º÷¤¹¤ë¡£Èæ³Ó¤ò¹Ô¤¦¤Î¤Ï +を線形検索する。比較を行うのは .I compar -¤¬»²¾È¤·¤Æ¤¤¤ë´Ø¿ô¤Ç¡¢ -¤³¤ì¤Ï 2¤Ä¤Î°ú¤­¿ô¤ò»ý¤Á¡¢1¤Ä¤á¤Î°ú¤­¿ô¤¬ +が参照している関数で、 +これは 2つの引き数を持ち、1つめの引き数が .I key -¤ò¡¢2¤Ä¤á¤Î°ú¤­¿ô¤ÏÇÛÎó¥á¥ó¥Ð¡¼¤ò»Ø¤¹¡£¤Þ¤¿ +を、2つめの引き数は配列メンバーを指す。また .I compar -¤Ï¡¢ +は、 .I key -¤¬ÇÛÎó¤Î¥á¥ó¥Ð¡¼¤È¥Þ¥Ã¥Á¤·¤¿¤Ê¤é 0¡¢¤½¤¦¤Ç¤Ê¤±¤ì¤Ð -0 °Ê³°¤òÊÖ¤¹¤³¤È¤¬´üÂÔ¤µ¤ì¤Æ¤¤¤ë¡£ +が配列のメンバーとマッチしたなら 0、そうでなければ +0 以外を返すことが期待されている。 .PP .\"O If .\"O .BR lsearch () @@ -88,18 +88,18 @@ lfind, lsearch \- .\"O object is inserted at the end of the table, and \fI*nmemb\fP is .\"O incremented. .BR lsearch () -¤Ï¡¢¥Þ¥Ã¥Á¤¹¤ëÍ×ÁǤò¸«¤Ä¤±¤é¤ì¤Ê¤«¤Ã¤¿¤È¤­¡¢ -ÇÛÎó¤ÎºÇ¸å¤Ë +は、マッチする要素を見つけられなかったとき、 +配列の最後に .I key -¤ò¤Ä¤±²Ã¤¨¤ë¡£¤½¤·¤Æ +をつけ加える。そして .I *nmemb -¤ò 1 ¤Õ¤ä¤¹¡£ +を 1 ふやす。 .\"O In particular, one should know that a matching element .\"O exists, or that more room is available. -¤·¤¿¤¬¤Ã¤Æ¡¢¤³¤Î´Ø¿ô¤ò»ÈÍѤ¹¤ëºÝ¤Ë¤Ï¡¢¥Þ¥Ã¥Á¤¹¤ëÍ×ÁǤ¬Â¸ºß¤¹¤ë¤«¡¢ -¤â¤·¤¯¤ÏÇÛÎó¤ËÍ×ÁǤòÄɲ乤뤿¤á¤ÎÎΰ褬¤¢¤ë¤«¡¢¤òÇÄ°®¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¡£ +したがって、この関数を使用する際には、マッチする要素が存在するか、 +もしくは配列に要素を追加するための領域があるか、を把握しておく必要がある。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR lfind () .\"O returns a pointer to a matching member of the array, or .\"O NULL if no match is found. @@ -108,23 +108,23 @@ lfind, lsearch \- .\"O a matching member of the array, or to the newly added member if no .\"O match is found. .BR lfind () -¤ÎÊÖ¤êÃͤϡ¢ÇÛÎó¤Î¥Þ¥Ã¥Á¤·¤¿¥á¥ó¥Ð¡¼¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤â¤·¥Þ¥Ã¥Á¤¹¤ë¥á¥ó¥Ð¡¼¤¬¸«¤Ä¤«¤é¤Ê¤¤¤È NULL ¤òÊÖ¤¹¡£ +の返り値は、配列のマッチしたメンバーへのポインタである。 +もしマッチするメンバーが見つからないと NULL を返す。 .BR lsearch () -¤ÎÊÖ¤êÃͤ⡢ÇÛÎó¤Î¥Þ¥Ã¥Á¤·¤¿¥á¥ó¥Ð¡¼¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -¥Þ¥Ã¥Á¤¹¤ë¥á¥ó¥Ð¡¼¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¤È¤­¤Ï¡¢ -¿·¤¿¤Ë¤Ä¤±²Ã¤¨¤¿¥á¥ó¥Ð¡¼¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +の返り値も、配列のマッチしたメンバーへのポインタである。 +マッチするメンバーが見つからなかったときは、 +新たにつけ加えたメンバーへのポインタを返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O Present in libc since libc-4.6.27. -libc ¤Ë¤Ï libc-4.6.27 °Ê¹ß¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +libc には libc-4.6.27 以降で実装されている。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O The naming is unfortunate. -´Ø¿ô¤Î̾Á°¤ÎÁª¤ÓÊý¤¬¤è¤¯¤Ê¤¤¡£ +関数の名前の選び方がよくない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bsearch (3), .BR hsearch (3), .BR tsearch (3) diff --git a/draft/man3/lseek64.3 b/draft/man3/lseek64.3 index d2e565ac..0ac073a9 100644 --- a/draft/man3/lseek64.3 +++ b/draft/man3/lseek64.3 @@ -27,13 +27,13 @@ .\" .TH LSEEK64 3 2004-12-11 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O lseek64 \- reposition 64-bit read/write file offset -lseek64 \- ¥Õ¥¡¥¤¥ë¤Î 64 ¥Ó¥Ã¥È¤ÎÆɤ߽ñ¤­¥ª¥Õ¥»¥Ã¥È¤Î°ÌÃÖ¤òÊѤ¨¤ë +lseek64 \- ファイルの 64 ビットの読み書きオフセットの位置を変える .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .\"O .BR "#define _LARGEFILE64_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _LARGEFILE64_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _LARGEFILE64_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .br @@ -41,7 +41,7 @@ lseek64 \- .sp .BI "off64_t lseek64(int " fd ", off64_t " offset ", int " whence ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR lseek (2) .\"O family of functions reposition the offset of the open file associated @@ -59,25 +59,25 @@ lseek64 \- .\"O .BR SEEK_END , .\"O respectively. .BR lseek (2) -´Ø¿ô¥Õ¥¡¥ß¥ê¡¼¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +関数ファミリーは、ファイルディスクリプタ .I fd -¤Ë´ØÏ¢¤¹¤ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥ª¥Õ¥»¥Ã¥È¤ò¡¢ -¥Õ¥¡¥¤¥ë¤Î³«»Ï°ÌÃÖ¡¦¸½ºß°ÌÃÖ¡¦½ªÃ¼¤«¤é +に関連するオープンされたファイルのオフセットを、 +ファイルの開始位置・現在位置・終端から .I offset -¤Î°ÌÃÖ¤ØÊѹ¹¤¹¤ë¡£ -¤³¤ì¤Ï +の位置へ変更する。 +これは .I whence -¤¬¤½¤ì¤¾¤ì +がそれぞれ .BR SEEK_SET , .BR SEEK_CUR , .B SEEK_END -¤Î¾ì¹ç¤ËÂбþ¤¹¤ë¡£ +の場合に対応する。 .LP .\"O For more details, return value, and errors, see .\"O .BR lseek (2). -¹¹¤Ë¾Ü¤·¤¤ÀâÌÀ¡¦ÊÖ¤êÃÍ¡¦¥¨¥é¡¼¤Ï¡¢ +更に詳しい説明・返り値・エラーは、 .BR lseek (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .PP .\"O Four interfaces are available: .\"O .BR lseek (2), @@ -85,16 +85,16 @@ lseek64 \- .\"O .BR llseek (2), .\"O and the raw system call .\"O .BR _llseek (2). -4 ¤Ä¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¬»ÈÍѲÄǽ¤Ç¤¢¤ë: +4 つのインタフェースが使用可能である: .BR lseek (2), .BR lseek64 (), .BR llseek (2) -¤È¸µ¤È¤Ê¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë +と元となるシステムコール .BR _llseek (2) -¤Ç¤¢¤ë¡£ +である。 .SS lseek .\"O Prototype: -¥×¥í¥È¥¿¥¤¥×: +プロトタイプ: .nf .sp .in +4n @@ -106,13 +106,13 @@ lseek64 \- .\"O uses the type .\"O .IR off_t . .BR lseek (2) -¤Ï·¿ +は型 .I off_t -¤ò»È¤¦¡£ +を使う。 .\"O This is a 32-bit signed type on 32-bit architectures, unless one .\"O compiles with -¤³¤ì¤Ï 32 ¥Ó¥Ã¥È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¾å¤Ç¤Ï 32 ¥Ó¥Ã¥ÈÉä¹æÉÕ¤­·¿¤Ç¤¢¤ë¡£ -¤¿¤À¤·¡¢ +これは 32 ビットアーキテクチャ上では 32 ビット符号付き型である。 +ただし、 .nf .sp .in +4n @@ -121,10 +121,10 @@ lseek64 \- .sp .fi .\"O in which case it is a 64-bit signed type. -¤òÄêµÁ¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¾ì¹ç¤Ï 64 ¥Ó¥Ã¥ÈÉä¹æÉÕ¤­·¿¤Ç¤¢¤ë¡£ +を定義してコンパイルした場合は 64 ビット符号付き型である。 .SS lseek64 .\"O Prototype: -¥×¥í¥È¥¿¥¤¥×: +プロトタイプ: .nf .sp .in +4n @@ -140,14 +140,14 @@ lseek64 \- .\"O Its prototype (and the type .\"O .IR off64_t ) .\"O is available only when one compiles with -¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó +ライブラリルーチン .BR lseek64 () -¤Ï +は .I off_t -¤¬ 32 ¥Ó¥Ã¥È·¿¤Ç¤¢¤Ã¤Æ¤â 64 ¥Ó¥Ã¥È·¿¤ò»È¤¦¡£ -¤³¤Î¥×¥í¥È¥¿¥¤¥× (¤È·¿ +が 32 ビット型であっても 64 ビット型を使う。 +このプロトタイプ (と型 .IR off64_t ) -¤Ï¡¢°Ê²¼¤ÎÄêµÁ¤ò¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¾ì¹ç¤Ë¤Î¤ß»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ +は、以下の定義をしてコンパイルした場合にのみ使用可能である。 .nf .sp .in +4n @@ -160,15 +160,15 @@ lseek64 \- .\"O .\" in glibc 2.0.94, not in 2.0.6 .\"O is available since glibc 2.1, and is defined to be an alias for .\"O .BR llseek (). -´Ø¿ô +関数 .BR lseek64 () -.\" glibc 2.0.94 ¤Ë¤Ï¸ºß¤¹¤ë¤¬ 2.0.6 ¤Ë¤Ï¸ºß¤·¤Ê¤¤ -¤Ï glibc 2.1 °Ê¹ß¤Ç»ÈÍѲÄǽ¤Ç¤¢¤ê¡¢ +.\" glibc 2.0.94 には存在するが 2.0.6 には存在しない +は glibc 2.1 以降で使用可能であり、 .BR llseek () -¤Î¥¨¥¤¥ê¥¢¥¹¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +のエイリアスとして定義されている。 .SS llseek .\"O Prototype: -¥×¥í¥È¥¿¥¤¥×: +プロトタイプ: .nf .sp .in +4n @@ -179,36 +179,36 @@ lseek64 \- .\"O The type .\"O .I loff_t .\"O is a 64-bit signed type. -·¿ +型 .I loff_t -¤Ï 64 ¥Ó¥Ã¥ÈÉä¹æÉÕ¤­·¿¤Ç¤¢¤ë¡£ +は 64 ビット符号付き型である。 .\"O The library routine .\"O .BR llseek () .\"O .\" in libc 5.0.9, not in 4.7.6 .\"O is available in libc5 and glibc and works without special defines. -¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó +ライブラリルーチン .BR llseek () -.\" libc 5.0.9 ¤Ë¤Ï¸ºß¤¹¤ë¤¬ 4.7.6 ¤Ï¸ºß¤·¤Ê¤¤ -¤Ï libc5 ¤È glibc ¤Ç»ÈÍѲÄǽ¤Ç¤¢¤ê¡¢ÆÃÊ̤ÊÄêµÁ¤Ê¤·¤ËÆ°ºî¤¹¤ë¡£ +.\" libc 5.0.9 には存在するが 4.7.6 は存在しない +は libc5 と glibc で使用可能であり、特別な定義なしに動作する。 .\"O Its prototype was given in .\"O .I .\"O with libc5, but glibc does not provide a prototype. -¤³¤Î¥×¥í¥È¥¿¥¤¥×¤Ï¡¢libc5 ¤Ç¤Ï +このプロトタイプは、libc5 では .I -¤ÇÍ¿¤¨¤é¤ì¤ë¤¬¡¢glibc ¤Ï¥×¥í¥È¥¿¥¤¥×¤òÄ󶡤·¤Ê¤¤¡£ +で与えられるが、glibc はプロトタイプを提供しない。 .\"O This is bad, since a prototype is needed. .\"O Users should add .\"O the above prototype, or something equivalent, to their own source. -¤³¤ì¤Ï¥×¥í¥È¥¿¥¤¥×¤¬É¬Íפˤʤë¤Î¤ÇÎɤ¯¤Ê¤¤¡£ -¥æ¡¼¥¶¤Ï¾åµ­¤Î¥×¥í¥È¥¿¥¤¥×¤Þ¤¿¤Ï¤½¤ì¤ÈƱÅù¤Î¤â¤Î¤ò¡¢ -¼«¿È¤Î¥½¡¼¥¹¤ËÄɲ䷤ʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +これはプロトタイプが必要になるので良くない。 +ユーザは上記のプロトタイプまたはそれと同等のものを、 +自身のソースに追加しなければならない。 .\"O When users complained about data loss caused by a miscompilation of .\"O .BR e2fsck (8), .\"O glibc 2.1.3 added the link-time warning -¤³¤Î¥Ç¡¼¥¿¤¬¤Ê¤¤¤³¤È¤Ë¤è¤Ã¤Æ +このデータがないことによって .BR e2fsck (8) -¤Î¥³¥ó¥Ñ¥¤¥ë¤¬¼ºÇÔ¤¹¤ë¤È¤¤¤¦¶ì¾ð¤¬¥æ¡¼¥¶¤«¤é½Ð¤¿¤Î¤Ç¡¢ -glibc 2.1.3 ¤Ç¤Ï°Ê²¼¤Î¤è¤¦¤Ê¥ê¥ó¥¯»þ¤Î·Ù¹ð¤¬Äɲ䵤줿¡£ +のコンパイルが失敗するという苦情がユーザから出たので、 +glibc 2.1.3 では以下のようなリンク時の警告が追加された。 .sp .in +4n "the \`llseek\' function may be dangerous; use \`lseek64\' instead." @@ -216,12 +216,12 @@ glibc 2.1.3 .sp .\"O This makes this function unusable if one desires a warning-free .\"O compilation. -¤³¤ì¤Ë¤è¤ê¡¢·Ù¹ð¤Ê¤·¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢¤³¤Î´Ø¿ô¤ò»ÈÍÑÉԲĤˤǤ­¤ë¡£ +これにより、警告なしでコンパイルしたい場合には、この関数を使用不可にできる。 .SS _llseek .\"O All the above functions are implemented in terms of this system call. .\"O The prototype is: -¾åµ­¤ÎÁ´¤Æ¤Î´Ø¿ô¤Ï¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë´ð¤Å¤¤¤Æ¼ÂÁõ¤µ¤ì¤ë¡£ -¥×¥í¥È¥¿¥¤¥×¤Ï°Ê²¼¤ÎÄ̤ê: +上記の全ての関数は、このシステムコールに基づいて実装される。 +プロトタイプは以下の通り: .nf .sp .in +4n @@ -232,10 +232,10 @@ glibc 2.1.3 .sp .\"O For more details, see .\"O .BR llseek (2). -¹¹¤Ë¾Ü¤·¤¤¾ðÊó¤Ï¡¢ +更に詳しい情報は、 .BR llseek (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR llseek (2), .BR lseek (2) diff --git a/draft/man3/makecontext.3 b/draft/man3/makecontext.3 index 7b5effbe..12b657a7 100644 --- a/draft/man3/makecontext.3 +++ b/draft/man3/makecontext.3 @@ -29,10 +29,10 @@ .TH MAKECONTEXT 3 2009-03-31 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O makecontext, swapcontext \- manipulate user context -.SH ̾Á° -makecontext, swapcontext \- ¥æ¡¼¥¶¥³¥ó¥Æ¥­¥¹¥È¤òÁàºî¤¹¤ë +.SH 名前 +makecontext, swapcontext \- ユーザコンテキストを操作する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "void makecontext(ucontext_t *" ucp ", void (*" func )(), @@ -40,7 +40,7 @@ makecontext, swapcontext \- .sp .BI "int swapcontext(ucontext_t *" oucp ", ucontext_t *" ucp ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O In a System V-like environment, one has the type \fIucontext_t\fP defined in .\"O .I .\"O and the four functions @@ -51,22 +51,22 @@ makecontext, swapcontext \- .\"O .BR swapcontext () .\"O that allow user-level context switching .\"O between multiple threads of control within a process. -System V Ū¤Ê´Ä¶­¤Ç¤Ï¡¢ -\fBmcontext_t\fP ¤ª¤è¤Ó \fBucontext_t\fP ¤È¤¤¤¦ 2 ¤Ä¤Î·¿¤È¡¢ +System V 的な環境では、 +\fBmcontext_t\fP および \fBucontext_t\fP という 2 つの型と、 .BR getcontext (2), .BR setcontext (2), .BR makecontext (), .BR swapcontext () -¤È¤¤¤¦ 4 ¤Ä¤Î´Ø¿ô¤¬ +という 4 つの関数が .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢¤¢¤ë¥×¥í¥»¥¹ÆâÉô¤ÇÀ©¸æ²¼¤Ë¤¢¤ëÊ£¿ô¤Î¥¹¥ì¥Ã¥É´Ö¤Ç¡¢ -¥æ¡¼¥¶¥ì¥Ù¥ë¤Î¥³¥ó¥Æ¥­¥¹¥ÈÀÚÂؤ¨¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +で定義されており、あるプロセス内部で制御下にある複数のスレッド間で、 +ユーザレベルのコンテキスト切替えができるようになっている。 .LP .\"O For the type and the first two functions, see .\"O .BR getcontext (2). -¤³¤ì¤é¤Î·¿¤È¡¢ºÇ½é¤Î 2 ¤Ä¤Î´Ø¿ô¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +これらの型と、最初の 2 つの関数については、 .BR getcontext (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .LP .\"O The .\"O .BR makecontext () @@ -80,15 +80,15 @@ System V Ū .\"O and define a successor context and .\"O assign its address to \fIucp\->uc_link\fP. .BR makecontext () -´Ø¿ô¤Ï¡¢¥Ý¥¤¥ó¥¿ \fIucp\fP ¤¬»Ø¤¹¥³¥ó¥Æ¥­¥¹¥È¤òÊѹ¹¤¹¤ë -(\fIucp\fP ¤Ï°ÊÁ°¤Î +関数は、ポインタ \fIucp\fP が指すコンテキストを変更する +(\fIucp\fP は以前の .BR getcontext (2) -¸Æ¤Ó½Ð¤·¤ÇÆÀ¤é¤ì¤¿¤â¤Î¤Ç¤¢¤ë)¡£ +呼び出しで得られたものである)。 .BR makecontext () -¤òµ¯Æ°¤¹¤ëÁ°¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·¼Ô¤Ï¡¢¤³¤Î¥³¥ó¥Æ¥­¥¹¥ÈÍÑ¤Ë -¿·¤·¤¤¥¹¥¿¥Ã¥¯¤ò³ÎÊݤ·¡¢¤½¤Î¥¢¥É¥ì¥¹¤ò \fIucp\->uc_stack\fP ¤ËÂåÆþ¤·¡¢ -¤µ¤é¤Ë¸å·Ñ¤Î¥³¥ó¥Æ¥­¥¹¥È¤òÄêµÁ¤·¡¢¤½¤Î¥¢¥É¥ì¥¹¤ò \fIucp\->uc_link\fP ¤Ë -ÂåÆþ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を起動する前には、呼び出し者は、このコンテキスト用に +新しいスタックを確保し、そのアドレスを \fIucp\->uc_stack\fP に代入し、 +さらに後継のコンテキストを定義し、そのアドレスを \fIucp\->uc_link\fP に +代入しなければならない。 .\"O When this context is later activated (using .\"O .BR setcontext (2) @@ -103,22 +103,22 @@ System V Ū .\"O .IR argc . .\"O When this function returns, the successor context is activated. .\"O If the successor context pointer is NULL, the thread exits. -¤³¤Î¥³¥ó¥Æ¥­¥¹¥È¤¬¾­Íè +このコンテキストが将来 .RB ( setcontext (2) -¤Þ¤¿¤Ï +または .BR swapcontext () -¤Ë¤è¤Ã¤Æ) -Í­¸ú¤Ë¤µ¤ì¤ë¤È¡¢´Ø¿ô \fIfunc\fP ¤¬¸Æ¤Ð¤ì¡¢ -°ú¤­¿ô¤È¤·¤Æ +によって) +有効にされると、関数 \fIfunc\fP が呼ばれ、 +引き数として .I argc -°Ê¹ß¤ÎÀ°¿ô +以降の整数 .RI ( int ) -°ú¤­¿ô¤ÎÎó¤¬ÅϤµ¤ì¤ë¡£ -¸Æ¤Ó½Ð¤·¼Ô¤Ï +引き数の列が渡される。 +呼び出し者は .I argc -¤Ë¤³¤ì¤é¤Î°ú¤­¿ô¤Î¸Ä¿ô¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤Î´Ø¿ô¤¬Ìá¤ë¤È¡¢¸å·Ñ¤Î¥³¥ó¥Æ¥­¥¹¥È¤¬Í­¸ú¤Ë¤Ê¤ë¡£ -¸å·Ñ¥³¥ó¥Æ¥­¥¹¥È¤Î¥Ý¥¤¥ó¥¿¤¬ NULL ¤Î¾ì¹ç¡¢¤½¤Î¥¹¥ì¥Ã¥É¤¬½ªÎ»¤¹¤ë¡£ +にこれらの引き数の個数を指定しなければならない。 +この関数が戻ると、後継のコンテキストが有効になる。 +後継コンテキストのポインタが NULL の場合、そのスレッドが終了する。 .LP .\"O The .\"O .BR swapcontext () @@ -126,11 +126,11 @@ System V Ū .\"O the structure pointed to by \fIoucp\fP, and then activates the .\"O context pointed to by \fIucp\fP. .BR swapcontext () -´Ø¿ô¤Ï¸½ºß¤Î¥³¥ó¥Æ¥­¥¹¥È¤ò -¥Ý¥¤¥ó¥¿ \fIoucp\fP ¤¬»Ø¤¹¹½Â¤ÂΤËÊݸ¤·¡¢ -¥Ý¥¤¥ó¥¿ \fIucp\fP ¤¬»Ø¤¹¥³¥ó¥Æ¥­¥¹¥È¤òÍ­¸ú¤Ë¤¹¤ë¡£ +関数は現在のコンテキストを +ポインタ \fIoucp\fP が指す構造体に保存し、 +ポインタ \fIucp\fP が指すコンテキストを有効にする。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O When successful, .\"O .BR swapcontext () .\"O does not return. @@ -142,35 +142,35 @@ System V Ū .\"O .BR swapcontext () .\"O returns \-1 and .\"O sets \fIerrno\fP appropriately. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR swapcontext () -¤ÏÊÖ¤é¤Ê¤¤ -(¤·¤«¤·¸å¤Ë \fIoucp\fP ¤¬Í­¸ú¤Ë¤Ê¤Ã¤¿¾ì¹ç¤Ë¤ÏÊ֤뤳¤È¤¬¤¢¤ë¡£ -¤³¤Î¤È¤­¤Ë¤Ï +は返らない +(しかし後に \fIoucp\fP が有効になった場合には返ることがある。 +このときには .BR swapcontext () -¤Ï 0 ¤òÊÖ¤¹¤è¤¦¤Ë¸«¤¨¤ë¡£) -¼ºÇÔ¤¹¤ë¤È¡¢ +は 0 を返すように見える。) +失敗すると、 .BR swapcontext () -¤Ï \-1 ¤òÊÖ¤·¡¢ -\fIerrno\fP ¤ò¥¨¥é¡¼¤Ë±þ¤¸¤ÆÀßÄꤹ¤ë¡£ +は \-1 を返し、 +\fIerrno\fP をエラーに応じて設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B ENOMEM .\"O Insufficient stack space left. -¥¹¥¿¥Ã¥¯¤Ë³ä¤êÅö¤Æ¤ë¶õ´Ö¤¬»Ä¤Ã¤Æ¤¤¤Ê¤¤¡£ +スタックに割り当てる空間が残っていない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR makecontext () .\"O and .\"O .BR swapcontext () .\"O are provided in glibc since version 2.1. .BR makecontext () -¤È +と .BR swapcontext () -¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +は、バージョン 2.1 以降の glibc で提供されている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SUSv2, POSIX.1-2001. .\"O POSIX.1-2008 removes the specifications of .\"O .BR makecontext () @@ -178,15 +178,15 @@ SUSv2, POSIX.1-2001. .\"O .BR swapcontext (), .\"O citing portability issues, and .\"O recommending that applications be rewritten to use POSIX threads instead. -POSIX.1-2008 ¤Ç¤Ï¡¢°Ü¿¢À­¤ÎÌäÂ꤫¤é +POSIX.1-2008 では、移植性の問題から .BR makecontext () -¤È +と .BR swapcontext () -¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ -Âå¤ï¤ê¤Ë¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò POSIX ¥¹¥ì¥Ã¥É¤ò»È¤Ã¤Æ½ñ¤­Ä¾¤¹¤³¤È¤¬ -¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£ +の仕様が削除されている。 +代わりに、アプリケーションを POSIX スレッドを使って書き直すことが +推奨されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The interpretation of \fIucp\->uc_stack\fP is just as in .\"O .BR sigaltstack (2), .\"O namely, this struct contains the start and length of a memory area @@ -194,13 +194,13 @@ POSIX.1-2008 .\"O the stack. .\"O Thus, it is not necessary for the user program to .\"O worry about this direction. -\fIucp\->uc_stack\fP ¤Î²ò¼á¤Ï +\fIucp\->uc_stack\fP の解釈は .BR sigaltstack (2) -¤Î¾ì¹ç¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -¤¹¤Ê¤ï¤Á¤³¤Î¹½Â¤ÂΤˤϡ¢ -¥¹¥¿¥Ã¥¯¤È¤·¤ÆÍѤ¤¤é¤ì¤ë¥á¥â¥êÎΰè¤Î³«»Ï¥¢¥É¥ì¥¹¤ÈŤµ¤¬´Þ¤Þ¤ì¡¢ -¤³¤ì¤Ï¥¹¥¿¥Ã¥¯¤¬¿­¤Ó¤ëÊý¸þ¤¬¤É¤Á¤é¤Ç¤¢¤ë¤«¤Ë¤Ï´Ø·¸¤·¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¥æ¡¼¥¶¥×¥í¥°¥é¥à¤Ï¤³¤Î·ï¤Ë¤Ä¤¤¤Æ¤Ï¿´ÇÛ¤·¤Ê¤¯¤Æ¤è¤¤¡£ +の場合と同じである。 +すなわちこの構造体には、 +スタックとして用いられるメモリ領域の開始アドレスと長さが含まれ、 +これはスタックが伸びる方向がどちらであるかには関係しない。 +したがって、ユーザプログラムはこの件については心配しなくてよい。 .\"O On architectures where .\"O .I int @@ -218,22 +218,22 @@ POSIX.1-2008 .\"O .BR makecontext (), .\"O to permit this on some 64-bit architectures (e.g., x86-64). .I int -¤È¥Ý¥¤¥ó¥¿·¿¤¬Æ±¤¸Â礭¤µ¤Ç¤¢¤ë¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï -(x86-32 ¤Ï¤½¤ÎÎã¤Ç¤¢¤ê¡¢Î¾Êý¤Î·¿¤È¤â 32 ¥Ó¥Ã¥È¤Ç¤¢¤ë)¡¢ +とポインタ型が同じ大きさであるアーキテクチャでは +(x86-32 はその例であり、両方の型とも 32 ビットである)、 .BR makecontext () -¤Î +の .I argc -°Ê¹ß¤Î°ú¤­¿ô¤È¤·¤Æ¥Ý¥¤¥ó¥¿¤òÅϤ·¤Æ¤â¤¦¤Þ¤¯Æ°¤¯¤«¤â¤·¤ì¤Ê¤¤¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢¤³¤Î¤è¤¦¤Ë¤¹¤ë¤È¡¢°Ü¿¢À­¤ÏÊݾڤµ¤ì¤º¡¢ -ɸ½à¤Ë½¾¤¨¤ÐÆ°ºî¤Ï̤ÄêµÁ¤Ç¤¢¤ê¡¢¥Ý¥¤¥ó¥¿¤¬ +以降の引き数としてポインタを渡してもうまく動くかもしれない。 +しかしながら、このようにすると、移植性は保証されず、 +標準に従えば動作は未定義であり、ポインタが .I int -¤è¤ê¤âÂ礭¤¤¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤ÏÀµ¤·¤¯Æ°ºî¤·¤Ê¤¤¤³¤È¤À¤í¤¦¡£ -¤½¤ì¤Ë¤â´Ø¤ï¤é¤º¡¢¥Ð¡¼¥¸¥ç¥ó 2.8 °Ê¹ß¤Î glibc ¤Ç¤Ï¡¢ +よりも大きいアーキテクチャでは正しく動作しないことだろう。 +それにも関わらず、バージョン 2.8 以降の glibc では、 .BR makecontext () -¤ËÊѹ¹¤¬¹Ô¤ï¤ì¡¢(x86-64 ¤Ê¤É¤Î) ¤¤¤¯¤Ä¤«¤Î 64 ¥Ó¥Ã¥È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç -°ú¤­¿ô¤È¤·¤Æ¥Ý¥¤¥ó¥¿¤òÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +に変更が行われ、(x86-64 などの) いくつかの 64 ビットアーキテクチャで +引き数としてポインタを渡すことができるようになっている。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .PP .\"O The example program below demonstrates the use of .\"O .BR getcontext (2), @@ -241,12 +241,12 @@ POSIX.1-2008 .\"O and .\"O .BR swapcontext (). .\"O Running the program produces the following output: -°Ê²¼¤Î¥µ¥ó¥×¥ë¡¦¥×¥í¥°¥é¥à¤Ï¡¢ +以下のサンプル・プログラムは、 .BR getcontext (2), .BR makecontext (), .BR swapcontext () -¤Î»ÈÍÑÊýË¡¤ÎÎã¤ò¼¨¤¹¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤È¡¢°Ê²¼¤Î¤è¤¦¤Ê½ÐÎϤ¬ÆÀ¤é¤ì¤ë: +の使用方法の例を示すものである。 +このプログラムを実行すると、以下のような出力が得られる: .in +4n .nf @@ -262,7 +262,7 @@ main: exiting .fi .in .\"O .SS Program source -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -324,7 +324,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getcontext (2), .BR sigaction (2), .BR sigaltstack (2), diff --git a/draft/man3/malloc.3 b/draft/man3/malloc.3 index bdc37fa5..8dadc83b 100644 --- a/draft/man3/malloc.3 +++ b/draft/man3/malloc.3 @@ -34,15 +34,15 @@ .\" Modified 2005-03-15, Akihiro MOTOKI .\" Modified 2007-10-12, Akihiro MOTOKI, LDP v2.66 .\" -.\" WORD: OOM killer ¥á¥â¥êÉÔ­²ò·è´ï +.\" WORD: OOM killer メモリ不足解決器 .\" .TH MALLOC 3 2009-01-13 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O calloc, malloc, free, realloc \- Allocate and free dynamic memory -.SH ̾Á° -calloc, malloc, free, realloc \- ưŪ¤Ê¥á¥â¥ê¤Î³ä¤êÅö¤Æ¤È²òÊü¤ò¹Ô¤¦ +.SH 名前 +calloc, malloc, free, realloc \- 動的なメモリの割り当てと解放を行う .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -55,7 +55,7 @@ calloc, malloc, free, realloc \- ưŪ .BI "void *realloc(void " "*ptr" ", size_t " "size" ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR calloc () .\"O allocates memory for an array of .\"O .I nmemb @@ -64,13 +64,13 @@ calloc, malloc, free, realloc \- ưŪ .\"O bytes each and returns a pointer to the allocated memory. .\"O The memory is set to zero. .BR calloc () -¤Ï +は .I size -¥Ð¥¤¥È¤ÎÍ×ÁÇ +バイトの要素 .I nmemb -¸Ä¤«¤é¤Ê¤ëÇÛÎó¤Ë¥á¥â¥ê¤ò³ä¤êÅö¤Æ¡¢ -³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤ËÂФ¹¤ë¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥á¥â¥ê¤ÎÆâÍƤϿôÃÍ¥¼¥í (Á´¥Ó¥Ã¥È¤¬¥¼¥í¤Î¥Ð¥¤¥È) ¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ +個からなる配列にメモリを割り当て、 +割り当てられたメモリに対するポインタを返す。 +メモリの内容は数値ゼロ (全ビットがゼロのバイト) にセットされる。 .\"O If .\"O .I nmemb .\"O or @@ -82,15 +82,15 @@ calloc, malloc, free, realloc \- ưŪ .\"O or a unique pointer value that can later be successfully passed to .\"O .BR free (). .I nmemb -¤« +か .I size -¤¬ 0 ¤Î¾ì¹ç¡¢ +が 0 の場合、 .BR calloc () -¤Ï NULL -.\" glibc ¤Ï¤³¤Á¤é -¤Þ¤¿¤Ï +は NULL +.\" glibc はこちら +または .BR free () -¤Ë¸å¤ÇÅϤ·¤Æ¤âÌäÂê¤Îµ¯¤³¤é¤Ê¤¤°ì°Õ¤Ê¥Ý¥¤¥ó¥¿ÃͤòÊÖ¤¹¡£ +に後で渡しても問題の起こらない一意なポインタ値を返す。 .PP .\"O .BR malloc () .\"O allocates @@ -98,11 +98,11 @@ calloc, malloc, free, realloc \- ưŪ .\"O bytes and returns a pointer to the allocated memory. .\"O The memory is not cleared. .BR malloc () -¤Ï +は .I size -¥Ð¥¤¥È¤ò³ä¤êÅö¤Æ¡¢ -³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤ËÂФ¹¤ë¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥á¥â¥ê¤ÎÆâÍƤϥ¯¥ê¥¢¤µ¤ì¤Ê¤¤¡£ +バイトを割り当て、 +割り当てられたメモリに対するポインタを返す。 +メモリの内容はクリアされない。 .\"O If .\"O .I size .\"O is 0, then @@ -112,13 +112,13 @@ calloc, malloc, free, realloc \- ưŪ .\"O or a unique pointer value that can later be successfully passed to .\"O .BR free (). .I size -¤¬ 0 ¤Î¾ì¹ç¡¢ +が 0 の場合、 .BR malloc () -¤Ï NULL -.\" glibc ¤Ï¤³¤Á¤é -¤Þ¤¿¤Ï +は NULL +.\" glibc はこちら +または .BR free () -¤Ë¸å¤ÇÅϤ·¤Æ¤âÌäÂê¤Îµ¯¤³¤é¤Ê¤¤°ì°Õ¤Ê¥Ý¥¤¥ó¥¿ÃͤòÊÖ¤¹¡£ +に後で渡しても問題の起こらない一意なポインタ値を返す。 .PP .\"O .BR free () .\"O frees the memory space pointed to by @@ -135,18 +135,18 @@ calloc, malloc, free, realloc \- ưŪ .\"O .I ptr .\"O is NULL, no operation is performed. .BR free () -¤Ï¥Ý¥¤¥ó¥¿ +はポインタ .I ptr -¤¬»Ø¤¹¥á¥â¥ê¶õ´Ö¤ò²òÊü¤¹¤ë¡£¤³¤Î¥Ý¥¤¥ó¥¿¤Ï¡¢°ÊÁ°¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿ +が指すメモリ空間を解放する。このポインタは、以前に呼び出された .BR malloc (), .BR calloc (), .BR realloc () -¤Î¤¤¤º¤ì¤«¤¬ÊÖ¤·¤¿ÃͤǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ì°Ê³°¤Î¥Ý¥¤¥ó¥¿¤ò»ØÄꤷ¤¿¤ê¡¢¤¹¤Ç¤Ë +のいずれかが返した値でなければならない。 +これ以外のポインタを指定したり、すでに .I free(ptr) -¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤¿¤ê¤·¤¿¾ì¹ç¤ÎÆ°ºî¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +が実行されていたりした場合の動作は定義されていない。 .I ptr -¤¬ NULL ¤Î¾ì¹ç¤Ë¤Ï¡¢¤Ê¤ó¤ÎÆ°ºî¤â¹Ô¤ï¤ì¤Ê¤¤¡£ +が NULL の場合には、なんの動作も行われない。 .PP .\"O .BR realloc () .\"O changes the size of the memory block pointed to by @@ -155,15 +155,15 @@ calloc, malloc, free, realloc \- ưŪ .\"O .I size .\"O bytes. .BR realloc () -¤Ï¡¢¥Ý¥¤¥ó¥¿ +は、ポインタ .I ptr -¤¬¼¨¤¹¥á¥â¥ê¥Ö¥í¥Ã¥¯¤Î¥µ¥¤¥º¤òÊѹ¹¤·¤Æ +が示すメモリブロックのサイズを変更して .I size -¥Ð¥¤¥È¤Ë¤¹¤ë¡£ +バイトにする。 .\"O The contents will be unchanged to the minimum of the old and new sizes; .\"O newly allocated memory will be uninitialized. -¿·µì¤Î¥µ¥¤¥º¤Î¤¦¤Á¡¢¾®¤µ¤¤¤Û¤¦¤Î¥Ö¥í¥Ã¥¯¤Ë´Þ¤Þ¤ì¤ëÆâÍƤÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ -¿·¤·¤¯³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤ÎÆâÍƤϽé´ü²½¤µ¤ì¤Ê¤¤¡£ +新旧のサイズのうち、小さいほうのブロックに含まれる内容は変更されない。 +新しく割り当てられたメモリの内容は初期化されない。 .\"O If .\"O .I ptr .\"O is NULL, then the call is equivalent to @@ -178,17 +178,17 @@ calloc, malloc, free, realloc \- ưŪ .\"O is not NULL, then the call is equivalent to .\"O .IR free(ptr) . .I size -¤¬¤É¤ÎÃͤǤ¢¤Ã¤Æ¤â¡¢ +がどの値であっても、 .I ptr -¤¬ NULL ¤Î¾ì¹ç¤Ë¤Ï +が NULL の場合には .I malloc(size) -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 .I size -¤¬ 0 ¤Ç +が 0 で .I ptr -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ +が NULL でない場合には、 .I free(ptr) -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 .\"O Unless .\"O .I ptr .\"O is NULL, it must have been returned by an earlier call to @@ -197,22 +197,22 @@ calloc, malloc, free, realloc \- ưŪ .\"O or .\"O .BR realloc (). .I ptr -¤¬ NULL °Ê³°¤Î¾ì¹ç¡¢ +が NULL 以外の場合、 .I ptr -¤Ï°ÊÁ°¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿ +は以前に呼び出された .BR malloc (), .BR calloc (), .BR realloc () -¤Î¤¤¤º¤ì¤«¤¬ÊÖ¤·¤¿ÃͤǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +のいずれかが返した値でなければならない。 .\"O If the area pointed to was moved, a .\"O .I free(ptr) .\"O is done. .I ptr -¤¬»Ø¤¹Îΰ褬°ÜÆ°¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ï +が指す領域が移動されていた場合は .I free(ptr) -¤¬¼Â¹Ô¤µ¤ì¤ë¡£ +が実行される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O For .\"O .BR calloc () .\"O and @@ -233,27 +233,27 @@ calloc, malloc, free, realloc \- ưŪ .\"O .I size .\"O equal to zero. .BR calloc () -¤È +と .BR malloc () -¤Ï¡¢³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤Ï¡¢¤¢¤é¤æ¤ë¼ïÎà¤ÎÊÑ¿ô¤ËÂбþ¤Ç¤­¤ë¤è¤¦¤Ë -¥¢¥é¥¤¥ó¥á¥ó¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï NULL ¤òÊÖ¤¹¡£ +は、割り当てられたメモリへのポインタを返す。 +割り当てられたメモリは、あらゆる種類の変数に対応できるように +アラインメントされている。 +エラーの場合、これらの関数は NULL を返す。 .I size -¤¬ 0 ¤Ç¸Æ¤Ó½Ð¤·¤¿ +が 0 で呼び出した .BR malloc () -¤ä¡¢ +や、 .I nmemb -¤« +か .I size -¤¬ 0 ¤Ç¸Æ¤Ó½Ð¤·¤¿ +が 0 で呼び出した .BR calloc () -¤¬À®¸ù¤·¤¿¾ì¹ç¤Ë¤â NULL ¤¬ÊÖ¤µ¤ì¤ë¡£ +が成功した場合にも NULL が返される。 .PP .\"O .BR free () .\"O returns no value. .BR free () -¤ÏÃͤòÊÖ¤µ¤Ê¤¤¡£ +は値を返さない。 .PP .\"O .BR realloc () .\"O returns a pointer to the newly allocated memory, which is suitably @@ -269,33 +269,33 @@ calloc, malloc, free, realloc \- ưŪ .\"O .BR realloc () .\"O fails the original block is left untouched; it is not freed or moved. .BR realloc () -¤Ï¿·¤¿¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤ì¤Ï¤¢¤é¤æ¤ë¼ïÎà¤ÎÊÑ¿ô¤ËÂбþ¤Ç¤­¤ë¤è¤¦¤Ë¥¢¥é¥¤¥ó¥á¥ó¥È¤µ¤ì¤Æ¤ª¤ê¡¢ +は新たに割り当てられたメモリへのポインタを返す。 +これはあらゆる種類の変数に対応できるようにアラインメントされており、 .I ptr -¤È¤Ï°Û¤Ê¤ë¤³¤È¤â¤¢¤ë¡£ -³ä¤êÅö¤ÆÍ×µá¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ï NULL ¤¬Ê֤롣 +とは異なることもある。 +割り当て要求に失敗した場合は NULL が返る。 .I size -¤¬ 0 ¤Î¾ì¹ç¤Ë¤Ï¡¢NULL ¤â¤·¤¯¤Ï +が 0 の場合には、NULL もしくは .BR free () -¤ËÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¥Ý¥¤¥ó¥¿¤¬Ê֤롣 +に渡すことができるポインタが返る。 .BR realloc () -¤¬¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¡¢¸µ¤Î¥Ö¥í¥Ã¥¯¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ -¤Ä¤Þ¤ê¡¢²òÊü¤µ¤ì¤¿¤ê°ÜÆ°¤µ¤ì¤¿¤ê¤Ï¤·¤Ê¤¤¡£ +が失敗した場合には、元のブロックは変更されない。 +つまり、解放されたり移動されたりはしない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C89, C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Normally, .\"O .BR malloc () .\"O allocates memory from the heap, and adjusts the size of the heap .\"O as required, using .\"O .BR sbrk (2). -Ä̾ +通常、 .BR malloc () -¤Ï¡¢¥Ò¡¼¥×¤«¤é¥á¥â¥ê¤ò³ä¤êÅö¤Æ¡¢É¬Íפ˱þ¤¸¤Æ¥Ò¡¼¥×¤Î¥µ¥¤¥º¤ò +は、ヒープからメモリを割り当て、必要に応じてヒープのサイズを .BR sbrk (2) -¤ò»È¤Ã¤ÆÄ´À᤹¤ë¡£ +を使って調節する。 .\"O When allocating blocks of memory larger than .\"O .B MMAP_THRESHOLD .\"O bytes, the glibc @@ -306,18 +306,18 @@ C89, C99. .\"O is 128 kB by default, but is adjustable using .\"O .BR mallopt (3). .B MMAP_THRESHOLD -¥Ð¥¤¥È¤è¤ê¤âÂ礭¤Ê¥á¥â¥ê¥Ö¥í¥Ã¥¯¤ò³ä¤êÅö¤Æ¤ë¾ì¹ç¡¢ -glibc ¤Î +バイトよりも大きなメモリブロックを割り当てる場合、 +glibc の .BR malloc () -¼ÂÁõ¤Ï +実装は .BR mmap (2) -¤ò»È¤Ã¤Æ¥×¥é¥¤¥Ù¡¼¥È¤Ê̵̾¥Þ¥Ã¥Ô¥ó¥° (anonymous mapping) ¤È¤·¤Æ -¥á¥â¥ê¤ò³ä¤êÅö¤Æ¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï +を使ってプライベートな無名マッピング (anonymous mapping) として +メモリを割り当てる。 +デフォルトでは .B MMAP_THRESHOLD -¤Ï 128 kB ¤À¤¬¡¢ +は 128 kB だが、 .BR mallopt (3) -¤ò»È¤Ã¤ÆÄ´À°¤Ç¤­¤ë¡£ +を使って調整できる。 .\" FIXME . there is no mallopt(3) man page yet. .\"O Allocations performed using .\"O .BR mmap (2) @@ -326,11 +326,11 @@ glibc .\"O resource limit (see .\"O .BR getrlimit (2)). .BR mmap (2) -¤ò»È¤Ã¤Æ¹Ô¤ï¤ì¤¿¥á¥â¥ê³ä¤êÅö¤Æ¤Ï +を使って行われたメモリ割り当ては .B RLIMIT_DATA -¥ê¥½¡¼¥¹¾å¸Â¤Î±Æ¶Á¤ò¼õ¤±¤Ê¤¤ +リソース上限の影響を受けない .RB ( getrlimit (2) -»²¾È)¡£ +参照)。 .\"O The Unix98 standard requires .\"O .BR malloc (), @@ -349,22 +349,22 @@ glibc .\"O then certain library routines may fail without having .\"O a reason in .\"O .IR errno . -Unix98 ɸ½à¤Ç¤Ï¡¢ +Unix98 標準では、 .BR malloc (), .BR calloc (), .BR realloc () -¤Ï¼Â¹Ô¤Ë¼ºÇÔ¤·¤¿¤È¤­¤Ë +は実行に失敗したときに .I errno -¤ò +を .B ENOMEM -¤ËÀßÄꤹ¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -Glibc ¤Ç¤Ï¤³¤ì¤¬¼é¤é¤ì¤Æ¤¤¤ë¤³¤È¤ò²¾Äꤷ¤Æ¤¤¤ë -(¤Þ¤¿¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤Î glibc ¥Ð¡¼¥¸¥ç¥ó¤Ï¤³¤Î¤³¤È¤ò¼é¤Ã¤Æ¤¤¤ë)¡£ -¸Ä¿ÍŪ¤ËÊ̤Πmalloc ¤Î¼ÂÁõ¤ò»È¤Ã¤Æ¤¤¤Æ¡¢¤½¤Î malloc ¤¬ +に設定することになっている。 +Glibc ではこれが守られていることを仮定している +(またこれらのルーチンの glibc バージョンはこのことを守っている)。 +個人的に別の malloc の実装を使っていて、その malloc が .I errno -¤òÀßÄꤷ¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢¼ºÇÔ¤·¤¿ºÝ¤Ë +を設定しない場合には、失敗した際に .I errno -¤Ë¥¨¥é¡¼¤ÎÍýͳ¤òÀßÄꤷ¤Ê¤¤¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +にエラーの理由を設定しないライブラリルーチンがあるかもしれない。 .LP .\"O Crashes in .\"O .BR malloc (), @@ -378,10 +378,10 @@ Glibc .BR calloc (), .BR realloc (), .BR free () -¤Ë¤ª¤±¤ë»ö¸Î¤Ï¡¢ -¤Û¤È¤ó¤É¤Î¾ì¹ç¤Ï¥Ò¡¼¥×¤ÎÇ˲õ (corruption) ¤¬¸¶°ø¤Ç¤¢¤ë¡£ -Î㤨¤Ð¡¢³ä¤êÅö¤Æ¤é¤ì¤¿Îΰè¤ò¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¡¢ -Ʊ¤¸¥Ý¥¤¥ó¥¿¤ËÆóÅÙ free ¤¹¤ë¡¢¤Ê¤É¤¬¤³¤ì¤Ë¤¢¤¿¤ë¡£ +における事故は、 +ほとんどの場合はヒープの破壊 (corruption) が原因である。 +例えば、割り当てられた領域をオーバーフローする、 +同じポインタに二度 free する、などがこれにあたる。 .PP .\"O Recent versions of Linux libc (later than 5.4.23) and glibc (2.x) .\"O include a @@ -397,17 +397,17 @@ Glibc .\"O bugs). .\"O Not all such errors can be protected against, however, and .\"O memory leaks can result. -ºÇ¶á¤Î¥Ð¡¼¥¸¥ç¥ó¤Î Linux libc (5.4.23 °Ê¹ß) ¤È glibc (2.x) ¤Ç¤Ï¡¢ +最近のバージョンの Linux libc (5.4.23 以降) と glibc (2.x) では、 .BR malloc () -¤ÎÆ°ºî¤ò´Ä¶­ÊÑ¿ô¤Ë¤è¤Ã¤ÆÀ©¸æ¤Ç¤­¤ë¤è¤¦¤Ê¼ÂÁõ¤¬¤µ¤ì¤Æ¤¤¤ë¡£ +の動作を環境変数によって制御できるような実装がされている。 .B MALLOC_CHECK_ -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢Æüì¤Ê¼ÂÁõ¤¬ÍѤ¤¤é¤ì¡¢ -ñ½ã¤Ê¥¨¥é¡¼¤Ë¤ÏÂѤ¨¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë (¸úΨ¤Ï°­¤¯¤Ê¤ë)¡£Î㤨¤Ð¡¢ +が設定されていると、特殊な実装が用いられ、 +単純なエラーには耐えることができるようになる (効率は悪くなる)。例えば、 .BR free () -¤òƱ¤¸°ú¤­¿ô¤ÇÆóÅٸƤӽФ·¤Æ¤·¤Þ¤¦¡¢ -1 ¥Ð¥¤¥È¤À¤±¹Ô¤­¤¹¤®¤Æ¤·¤Þ¤¦ (off-by-one ¥Ð¥°) ¤Ê¤É¤¬¤³¤ì¤ËÅö¤¿¤ë¡£ -¤·¤«¤·¡¢¤³¤ì¤é¤Î¥¨¥é¡¼¤ÎÁ´¤Æ¤òËɤ°¤³¤È¤¬¤Ç¤­¤ë¤ï¤±¤Ç¤Ï¤Ê¤¯¡¢ -¤½¤Î¾ì¹ç¤Ë¤Ï¥á¥â¥ê¥ê¡¼¥¯¤¬µ¯¤³¤Ã¤Æ¤·¤Þ¤¦¡£ +を同じ引き数で二度呼び出してしまう、 +1 バイトだけ行きすぎてしまう (off-by-one バグ) などがこれに当たる。 +しかし、これらのエラーの全てを防ぐことができるわけではなく、 +その場合にはメモリリークが起こってしまう。 .\"O If .\"O .B MALLOC_CHECK_ .\"O is set to 0, any detected heap corruption is silently ignored; @@ -423,21 +423,21 @@ Glibc .\"O a crash may happen much later, and the true cause for the problem .\"O is then very hard to track down. .B MALLOC_CHECK_ -¤¬ 0 ¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢¥Ò¡¼¥×¤ÎÇ˲õ¤òÌۤäÆ̵»ë¤¹¤ë¡£ -1 ¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤¬É¸½à¥¨¥é¡¼½ÐÎϤËɽ¼¨¤µ¤ì¤ë¡£ -2 ¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢¤¿¤À¤Á¤Ë +が 0 にセットされていると、ヒープの破壊を黙って無視する。 +1 にセットされていると、診断メッセージが標準エラー出力に表示される。 +2 にセットされていると、ただちに .BR abort (3) -¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ -3 ¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤¬É¸½à¥¨¥é¡¼½ÐÎϤËɽ¼¨¤µ¤ì¡¢ -¥×¥í¥°¥é¥à¤Ï¶¯À©½ªÎ» (abort) ¤µ¤ì¤ë¡£ +が呼び出される。 +3 にセットされていると、診断メッセージが標準エラー出力に表示され、 +プログラムは強制終了 (abort) される。 .B MALLOC_CHECK_ -¤Ë 0 °Ê³°¤ÎÃͤò¥»¥Ã¥È¤·¤ÆÌò¤ËΩ¤Ä¾õ¶·¤È¤·¤Æ¤Ï¡¢ -¼ÂºÝ¤Î¥×¥í¥»¥¹¤Î¥¯¥é¥Ã¥·¥å¤¬¤º¤Ã¤È¸å¤Ëµ¯¤³¤ê¡¢ -ËÜÅö¤Î¸¶°ø¤òõ¤·½Ð¤¹¤Î¤¬Èó¾ï¤Ëº¤Æñ¤Ê¾ì¹ç¤Ê¤É¤¬µó¤²¤é¤ì¤ë¤À¤í¤¦¡£ +に 0 以外の値をセットして役に立つ状況としては、 +実際のプロセスのクラッシュがずっと後に起こり、 +本当の原因を探し出すのが非常に困難な場合などが挙げられるだろう。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O By default, Linux follows an optimistic memory allocation strategy. -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢Linux ¤Ï³Ú´ÑŪ¥á¥â¥êÇÛÃÖÀïά¤òÍѤ¤¤Æ¤¤¤ë¡£ +デフォルトでは、Linux は楽観的メモリ配置戦略を用いている。 .\"O This means that when .\"O .BR malloc () .\"O returns non-NULL there is no guarantee that the memory really @@ -445,20 +445,20 @@ Glibc .\"O This is a really bad bug. .\"O In case it turns out that the system is out of memory, .\"O one or more processes will be killed by the infamous OOM killer. -¤Ä¤Þ¤ê¡¢ +つまり、 .BR malloc () -¤¬ NULL ¤Ç¤Ê¤¤ÃͤòÊÖ¤·¤Æ¤â¡¢¤½¤Î¥á¥â¥ê¤¬¼ÂºÝ¤ËÍøÍѲÄǽ¤Ç¤¢¤ë¤³¤È¤¬ -Êݾڤµ¤ì¤Ê¤¤¡£¤³¤ì¤ÏËÜÅö¤Ë¤Þ¤º¤¤¥Ð¥°¤Ç¤¢¤ë¡£ -¥·¥¹¥Æ¥à¤¬¥á¥â¥êÉÔ­¾õÂ֤ˤʤ俤Ȥ­¡¢°­Ì¾¹â¤¤¥á¥â¥êÉÔ­²ò·è´ï (OOM killer) -¤Ë¤è¤Ã¤Æ°ì¤Ä¤Þ¤¿¤ÏÊ£¿ô¤Î¥×¥í¥»¥¹¤¬ºï½ü¤µ¤ì¤ë¡£ +が NULL でない値を返しても、そのメモリが実際に利用可能であることが +保証されない。これは本当にまずいバグである。 +システムがメモリ不足状態になったとき、悪名高いメモリ不足解決器 (OOM killer) +によって一つまたは複数のプロセスが削除される。 .\"O In case Linux is employed under circumstances where it would be .\"O less desirable to suddenly lose some randomly picked processes, .\"O and moreover the kernel version is sufficiently recent, .\"O one can switch off this overcommitting behavior using a command like: -ÆÍÁ³¤¢¤ë¥×¥í¥»¥¹¤¬ºï½ü¤µ¤ì¤ë¤Î¤¬Ë¾¤Þ¤·¤¯¤Ê¤¤¾õ¶·¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤Æ¡¢ -¤·¤«¤â¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤¬½½Ê¬¤ËºÇ¶á¤Î¤â¤Î¤Ç¤¢¤ì¤Ð¡¢¤³¤Î¥á¥â¥ê¤ò -³ä¤êÅö¤Æ²á¤®¤ëÆ°ºî (overcommitting behavior) ¤ò°Ê²¼¤Î¥³¥Þ¥ó¥É¤Ç -̵¸ú¤Ë¤Ç¤­¤ë¡£ +突然あるプロセスが削除されるのが望ましくない状況で使用されていて、 +しかもカーネルのバージョンが十分に最近のものであれば、このメモリを +割り当て過ぎる動作 (overcommitting behavior) を以下のコマンドで +無効にできる。 .in +4n .sp .nf @@ -470,13 +470,13 @@ Glibc .\"O .I vm/overcommit-accounting .\"O and .\"O .IR sysctl/vm.txt . -¥«¡¼¥Í¥ë¤ÎÉÕ°ʸ½ñ¤Î +カーネルの付属文書の .I vm/overcommit-accounting -¤È +と .I sysctl/vm.txt -¤â»²¾È¤Î¤³¤È¡£ +も参照のこと。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR brk (2), .BR posix_memalign (3) .\" .BR mallopt (3), diff --git a/draft/man3/malloc_hook.3 b/draft/man3/malloc_hook.3 index e066dc43..a42b1f89 100644 --- a/draft/man3/malloc_hook.3 +++ b/draft/man3/malloc_hook.3 @@ -13,15 +13,15 @@ .\" .TH MALLOC_HOOK 3 2002-07-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O __malloc_hook, __malloc_initialize_hook, .\"O __memalign_hook, __free_hook, __realloc_hook, .\"O __after_morecore_hook \- malloc debugging variables __malloc_hook, __malloc_initialize_hook, __memalign_hook, __free_hook, __realloc_hook, -__after_morecore_hook \- malloc ¥Ç¥Ð¥Ã¥°ÍѤÎÊÑ¿ô +__after_morecore_hook \- malloc デバッグ用の変数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B "#include " .sp @@ -40,7 +40,7 @@ __after_morecore_hook \- malloc .B "void (*__after_morecore_hook)(void);" .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The GNU C library lets you modify the behavior of .\"O .BR malloc (3), .\"O .BR realloc (3), @@ -50,12 +50,12 @@ __after_morecore_hook \- malloc .\"O You can use these hooks .\"O to help you debug programs that use dynamic memory allocation, .\"O for example. -GNU C ¥é¥¤¥Ö¥é¥ê¤Ç¤Ï¡¢Å¬Àڤʥե寴ؿô (hook function) ¤ò»ØÄꤹ¤ë¤³¤È¤Ç +GNU C ライブラリでは、適切なフック関数 (hook function) を指定することで .BR malloc (3), .BR realloc (3), .BR free (3) -¤ÎÆ°ºî¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£Î㤨¤Ð¡¢Æ°Åª¤Ë¥á¥â¥ê³ä¤êÅö¤Æ¤ò¹Ô¤¦ -¥×¥í¥°¥é¥à¤Î¥Ç¥Ð¥Ã¥°¤Ë¤³¤ì¤é¤Î¥Õ¥Ã¥¯¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +の動作を変更することができる。例えば、動的にメモリ割り当てを行う +プログラムのデバッグにこれらのフックを使うことができる。 .LP .\"O The variable .\"O .B __malloc_initialize_hook @@ -63,11 +63,11 @@ GNU C .\"O is initialized. .\"O This is a weak variable, so it can be overridden in .\"O the application with a definition like the following: -ÊÑ¿ô +変数 .B __malloc_initialize_hook -¤Ï malloc ¤Î¼ÂÁõ¤¬½é´ü²½¤µ¤ì¤ëºÝ¤Ë°ìÅÙ¤À¤±¸Æ¤Ð¤ì¤ë´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤³¤ÎÊÑ¿ô¤Ï½ñ¤­´¹¤¨²Äǽ (weak) ¤Ç¤¢¤ê¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥óÆâ¤Ç -°Ê²¼¤Î¤è¤¦¤ÊÄêµÁ¤Ç¾å½ñ¤­¤Ç¤­¤ë: +は malloc の実装が初期化される際に一度だけ呼ばれる関数へのポインタである。 +この変数は書き換え可能 (weak) であり、アプリケーション内で +以下のような定義で上書きできる: .nf void (*__malloc_initialize_hook)(void) = my_init_hook; @@ -76,9 +76,9 @@ GNU C .\"O Now the function .\"O .IR my_init_hook () .\"O can do the initialization of all hooks. -¤Ê¤ª¡¢´Ø¿ô +なお、関数 .IR my_init_hook () -¤ÇÁ´¤Æ¤Î¥Õ¥Ã¥¯¤Î½é´ü²½¤ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +で全てのフックの初期化をすることができる。 .LP .\"O The four functions pointed to by .\"O .BR __malloc_hook , @@ -99,55 +99,55 @@ GNU C .BR __realloc_hook , .BR __memalign_hook , .B __free_hook -¤Ç»Ø¤µ¤ì¤ë 4 ¤Ä¤Î´Ø¿ô¤Ï¡¢³Æ¡¹ +で指される 4 つの関数は、各々 .BR malloc (3), .BR realloc (3), .BR memalign (3), .BR free (3) -¤È¤è¤¯»÷¤¿¥×¥í¥È¥¿¥¤¥×¤ò»ý¤Ã¤Æ¤¤¤ë¤¬¡¢ -°ìÈֺǸå¤Î°ú¤­¿ô +とよく似たプロトタイプを持っているが、 +一番最後の引き数 .I caller -¤ò¤È¤ëÅÀ¤¬°Û¤Ê¤ë¡£ -°ú¤­¿ô +をとる点が異なる。 +引き数 .I caller -¤Ë¤Ï¡¢ +には、 .BR malloc (3) -¤Ê¤É¤Î¸Æ¤Ó½Ð¤·¸µ (caller) ¤Î¥¢¥É¥ì¥¹¤¬³ÊǼ¤µ¤ì¤ë¡£ +などの呼び出し元 (caller) のアドレスが格納される。 .LP .\"O The variable .\"O .B __after_morecore_hook .\"O points at a function that is called each time after .\"O .BR sbrk (2) .\"O was asked for more memory. -ÊÑ¿ô +変数 .B __after_morecore_hook -¤Ï¡¢Îΰè¤ÎÄɲÃÍ׵᤬¤¢¤ê +は、領域の追加要求があり .BR sbrk (2) -¤¬¸Æ¤Ð¤ì¤¿¸å¤ÇËè²ó¸Æ¤Ó½Ð¤µ¤ì¤ë´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +が呼ばれた後で毎回呼び出される関数へのポインタである。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These functions are GNU extensions. -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ +これらの関数は GNU による拡張である。 .\"O .SH "EXAMPLE" -.SH Îã +.SH 例 .\"O Here is a short example of how to use these variables. -¤³¤ì¤é¤ÎÊÑ¿ô¤Î»È¤¤Êý¤Î´Êñ¤ÊÎã¤ò°Ê²¼¤Ë¼¨¤¹¡£ +これらの変数の使い方の簡単な例を以下に示す。 .sp .nf #include #include .\"O /* Prototypes for our hooks. */ -/* »È¤ª¤¦¤È¤¹¤ë¥Õ¥Ã¥¯¤Î¥×¥í¥È¥¿¥¤¥×Àë¸À */ +/* 使おうとするフックのプロトタイプ宣言 */ static void my_init_hook(void); static void *my_malloc_hook(size_t, const void *); .\"O /* Variables to save original hooks. */ -/* ¸µ¡¹¤Î¥Õ¥Ã¥¯¤òÊݸ¤¹¤ë¤¿¤á¤ÎÊÑ¿ô */ +/* 元々のフックを保存するための変数 */ static void *(*old_malloc_hook)(size_t, const void *); .\"O /* Override initializing hook from the C library. */ -/* C ¥é¥¤¥Ö¥é¥ê¤«¤é¸Æ¤Ð¤ì¤ë½é´ü²½¥Õ¥Ã¥¯¤ò¾å½ñ¤­¤¹¤ë */ +/* C ライブラリから呼ばれる初期化フックを上書きする */ void (*__malloc_initialize_hook) (void) = my_init_hook; static void @@ -163,32 +163,32 @@ my_malloc_hook(size_t size, const void *caller) void *result; .\"O /* Restore all old hooks */ - /* ¸µ¡¹¤Î¥Õ¥Ã¥¯¤òÁ´¤ÆÌ᤹ */ + /* 元々のフックを全て戻す */ __malloc_hook = old_malloc_hook; .\"O /* Call recursively */ - /* malloc ¤ÎºÆµ¢Åª¸Æ¤Ó½Ð¤· */ + /* malloc の再帰的呼び出し */ result = malloc(size); .\"O /* Save underlying hooks */ - /* ¸½ºßÀßÄꤵ¤ì¤Æ¤¤¤ë¥Õ¥Ã¥¯ (underlying hook) ¤òÊݸ¤¹¤ë */ + /* 現在設定されているフック (underlying hook) を保存する */ old_malloc_hook = __malloc_hook; .\"O /* printf() might call malloc(), so protect it too. */ - /* printf() ¤Ï malloc() ¤ò¸Æ¤Ó½Ð¤¹²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç - ¤³¤³¤Ç¤â¥¬¡¼¥É¤ò¹Ô¤¦ (¸µ¡¹¤Î¥Õ¥Ã¥¯¤Î¤Þ¤Þ¤Ë¤·¤Æ¤ª¤¯) */ + /* printf() は malloc() を呼び出す可能性があるので + ここでもガードを行う (元々のフックのままにしておく) */ printf("malloc(%u) called from %p returns %p\\n", (unsigned int) size, caller, result); .\"O /* Restore our own hooks */ - /* ¥æ¡¼¥¶¤¬»È¤ª¤¦¤È¤¹¤ë¥Õ¥Ã¥¯¤òºÆÀßÄꤹ¤ë */ + /* ユーザが使おうとするフックを再設定する */ __malloc_hook = my_malloc_hook; return result; } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mallinfo (3), .BR malloc (3), .BR mcheck (3), diff --git a/draft/man3/mblen.3 b/draft/man3/mblen.3 index 27e615aa..744f50d3 100644 --- a/draft/man3/mblen.3 +++ b/draft/man3/mblen.3 @@ -19,18 +19,18 @@ .\" .TH MBLEN 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mblen \- determine number of bytes in next multibyte character -mblen \- ¼¡¤Î¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤Î¥Ð¥¤¥È¿ô¤òÊÖ¤¹ +mblen \- 次のマルチバイト文字のバイト数を返す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int mblen(const char *" s ", size_t " n ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O If \fIs\fP is not a NULL pointer, the .\"O .BR mblen () .\"O function inspects at most @@ -43,14 +43,14 @@ mblen \- .\"O If the multibyte character is not the null wide .\"O character, it returns the number of bytes that were consumed from \fIs\fP. .\"O If the multibyte character is the null wide character, it returns 0. -\fIs\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¡¼¤Ç¤Ê¤±¤ì¤Ð¡¢ +\fIs\fP が NULL ポインターでなければ、 .BR mblen () -´Ø¿ô¤Ï \fIs\fP ¤«¤é»Ï¤Þ¤ëºÇÂç \fIn\fP ¥Ð¥¤¥È¤Î¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ò¸¡ºº¤·¤Æ¡¢ -¼¡¤Î´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò¼è¤ê½Ð¤¹¡£¤³¤ì¤Ë¤Ï +関数は \fIs\fP から始まる最大 \fIn\fP バイトのマルチバイト文字列を検査して、 +次の完全なマルチバイト文字を取り出す。これには .BR mblen () -´Ø¿ô¤Î¤ß¤¬»ÈÍѤ¹¤ëÀÅŪ¤Ç̾Á°¤Î¤Ê¤¤¥·¥Õ¥È¾õÂÖ¤¬»ÈÍѤµ¤ì¤ë¡£ -¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤¬¥Ê¥ë¥ï¥¤¥Éʸ»ú¤Ç¤Ê¤±¤ì¤Ð \fIs\fP ¤«¤é¾ÃÈñ¤µ¤ì¤ë -¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤¬¥Ê¥ë¥ï¥¤¥Éʸ»ú¤Ê¤é¤Ð 0 ¤òÊÖ¤¹¡£ +関数のみが使用する静的で名前のないシフト状態が使用される。 +マルチバイト文字がナルワイド文字でなければ \fIs\fP から消費される +バイト数を返す。マルチバイト文字がナルワイド文字ならば 0 を返す。 .PP .\"O If the \fIn\fP bytes starting at \fIs\fP do not contain a complete multibyte .\"O character, @@ -59,22 +59,22 @@ mblen \- .\"O This can happen even if .\"O \fIn\fP is greater than or equal to \fIMB_CUR_MAX\fP, .\"O if the multibyte string contains redundant shift sequences. -\fIs\fP ¤«¤é»Ï¤Þ¤ë \fIn\fP ¥Ð¥¤¥È¤¬´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò´Þ¤ó¤Ç -¤¤¤Ê¤±¤ì¤Ð¡¢ +\fIs\fP から始まる \fIn\fP バイトが完全なマルチバイト文字を含んで +いなければ、 .BR mblen () -¤Ï \-1 ¤òÊÖ¤¹¡£¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó -¤Ë¾éĹ¤Ê¥·¥Õ¥È¥·¡¼¥±¥ó¥¹¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤È¡¢ -\fIn\fP ¤¬ \fIMB_CUR_MAX\fP °Ê¾å¤Î¾ì¹ç¤Ë¤â -¤³¤Î¤è¤¦¤Ê¤³¤È¤¬µ¯¤³¤ê¤¨¤ë¡£ +は \-1 を返す。マルチバイト文字列 +に冗長なシフトシーケンスが含まれていると、 +\fIn\fP が \fIMB_CUR_MAX\fP 以上の場合にも +このようなことが起こりえる。 .PP .\"O If the multibyte string starting at \fIs\fP contains an invalid multibyte .\"O sequence before the next complete character, .\"O .BR mblen () .\"O also returns \-1. -\fIs\fP ¤«¤é»Ï¤Þ¤ë¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎ󤬼¡¤Î´°Á´¤Êʸ»ú¤ÎÁ°¤Ë -ÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ò´Þ¤ó¤Ç¤¤¤ë¾ì¹ç¤Ë¤â¡¢ +\fIs\fP から始まるマルチバイト文字列が次の完全な文字の前に +不正なマルチバイト列を含んでいる場合にも、 .BR mblen () -¤Ï \-1 ¤òÊÖ¤¹¡£ +は \-1 を返す。 .PP .\"O If \fIs\fP is a NULL pointer, the .\"O .BR mblen () @@ -84,13 +84,13 @@ mblen \- .\"O resets the shift state, only known to this function, to the initial state, and .\"O returns nonzero if the encoding has nontrivial shift state, or zero if the .\"O encoding is stateless. -\fIs\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¡¼¤Ê¤é¤Ð¡¢ +\fIs\fP が NULL ポインターならば、 .BR mblen () -´Ø¿ô¤Ï¤³¤Î´Ø¿ô¤Î¤ß¤¬ -»ÈÍѤ¹¤ë¥·¥Õ¥È¾õÂÖ¤ò½é´ü²½¾õÂÖ¤ËÌᤷ¡¢¥·¥Õ¥È¾õÂÖ¤ò»ÈÍѤ·¤¿Ê¸»úÉä¹æ¤Î¾ì¹ç¤Ë -¤Ï¥¼¥í°Ê³°¤ò¡¢Ê¸»úÉä¹æ¤¬¥·¥Õ¥È¾õÂÖ¤ò»ý¤¿¤Ê¤¤¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£ +関数はこの関数のみが +使用するシフト状態を初期化状態に戻し、シフト状態を使用した文字符号の場合に +はゼロ以外を、文字符号がシフト状態を持たない場合にはゼロを返す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR mblen () .\"O function returns the number of @@ -101,15 +101,15 @@ mblen \- .\"O invalid multibyte sequence was encountered or if it couldn't parse a complete .\"O multibyte character. .BR mblen () -´Ø¿ô¤Ï \fIs\fP ¤«¤é»Ï¤Þ¤ë¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ò¸¡ºº¤·¤Æ -¥Ê¥ë¥ï¥¤¥Éʸ»ú°Ê³°¤ò³Îǧ¤·¤¿¾ì¹ç¤Ë¤Ï¤½¤Î¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -¥Ê¥ë¥ï¥¤¥Éʸ»ú¤ò³Îǧ¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£ÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤Ë -Áø¶ø¤·¤¿¾ì¹ç¤ä´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò²òÀϤǤ­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï \-1 ¤òÊÖ¤¹¡£ +関数は \fIs\fP から始まるマルチバイト列を検査して +ナルワイド文字以外を確認した場合にはそのバイト数を返す。 +ナルワイド文字を確認した場合にはゼロを返す。不正なマルチバイト列に +遭遇した場合や完全なマルチバイト文字を解析できなかった場合には \-1 を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR mblen () .\"O depends on the @@ -117,16 +117,16 @@ C99. .\"O category of the .\"O \"O current locale. .BR mblen () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ +カテゴリに依存している。 .PP .\"O The function .\"O .BR mbrlen (3) .\"O provides a better interface to the same .\"O functionality. .BR mbrlen (3) -´Ø¿ô¤ÏƱ¤¸µ¡Ç½¤Î¤è¤êÎɤ¤¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤¹¤ë¡£ +関数は同じ機能のより良いインタフェースを提供する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mbrlen (3) diff --git a/draft/man3/mbrlen.3 b/draft/man3/mbrlen.3 index 7eee26e5..01b61dee 100644 --- a/draft/man3/mbrlen.3 +++ b/draft/man3/mbrlen.3 @@ -18,18 +18,18 @@ .\" .TH MBRLEN 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mbrlen \- determine number of bytes in next multibyte character -mbrlen \- ¼¡¤Î¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ÎŤµ¤ò¥Ð¥¤¥È¿ô¤ÇÊÖ¤¹ +mbrlen \- 次のマルチバイト文字の長さをバイト数で返す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "size_t mbrlen(const char *" s ", size_t " n ", mbstate_t *" ps ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR mbrlen () .\"O function inspects at most \fIn\fP bytes of the multibyte @@ -41,12 +41,12 @@ mbrlen \- .\"O If the multibyte character is the null wide character, it resets the .\"O shift state \fI*ps\fP to the initial state and returns 0. .BR mbrlen () -´Ø¿ô¤Ï \fIs\fP ¤«¤é»Ï¤Þ¤ë¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ò -ºÇÂç \fIn\fP ¥Ð¥¤¥ÈÄ´¤Ù¤Æ¼¡¤Î´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò¼è¤ê½Ð¤¹¡£ -Ʊ»þ¤Ë¥·¥Õ¥È¾õÂÖ \fI*ps\fP ¤ò¹¹¿·¤¹¤ë¡£ -¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤¬¥Ê¥ë¥ï¥¤¥Éʸ»ú¤Ç¤Ê¤±¤ì¤Ð \fIs\fP ¤«¤é -¾ÃÈñ¤¹¤ë¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£¥Ê¥ë¥ï¥¤¥Éʸ»ú¤Ê¤é¤Ð¥·¥Õ¥È¾õÂÖ \fI*ps\fP ¤ò -½é´ü¾õÂÖ¤ËÌᤷ¤Æ¡¢0 ¤òÊÖ¤¹¡£ +関数は \fIs\fP から始まるマルチバイト文字列を +最大 \fIn\fP バイト調べて次の完全なマルチバイト文字を取り出す。 +同時にシフト状態 \fI*ps\fP を更新する。 +マルチバイト文字がナルワイド文字でなければ \fIs\fP から +消費するバイト数を返す。ナルワイド文字ならばシフト状態 \fI*ps\fP を +初期状態に戻して、0 を返す。 .PP .\"O If the \fIn\fP bytes starting at \fIs\fP do not contain a complete multibyte .\"O character, @@ -55,12 +55,12 @@ mbrlen \- .\"O This can happen even if .\"O \fIn\fP >= \fIMB_CUR_MAX\fP, if the multibyte string contains redundant shift .\"O sequences. -\fIs\fP ¤«¤é»Ï¤Þ¤ë \fIn\fP ¥Ð¥¤¥È¤Îʸ»úÎ󤬴°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò´Þ¤ó¤Ç -¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï +\fIs\fP から始まる \fIn\fP バイトの文字列が完全なマルチバイト文字を含んで +いない場合には .BR mbrlen () -¤Ï \fI(size_t)\ \-2\fP ¤òÊÖ¤¹¡£ -¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤Ë¾éĹ¤Ê¥·¥Õ¥È¥·¡¼¥±¥ó¥¹¤ò´Þ¤Þ¤ì¤Æ¤¤¤ë¤È -\fIn\fP >= \fIMB_CUR_MAX\fP ¤Î»þ¤Ë¤â¤³¤Î¤è¤¦¤Ê¤³¤È¤¬µ¯¤³¤ê¤¨¤ë¡£ +は \fI(size_t)\ \-2\fP を返す。 +マルチバイト文字列に冗長なシフトシーケンスを含まれていると +\fIn\fP >= \fIMB_CUR_MAX\fP の時にもこのようなことが起こりえる。 .PP .\"O If the multibyte string starting at \fIs\fP contains an invalid multibyte .\"O sequence before the next complete character, @@ -69,30 +69,30 @@ mbrlen \- .\"O \fI(size_t)\ \-1\fP and sets \fIerrno\fP to \fBEILSEQ\fP. .\"O In this case, .\"O the effects on \fI*ps\fP are undefined. -\fIs\fP ¤«¤é»Ï¤Þ¤ë¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎ󤬡¢¼¡¤Î´°Á´¤Êʸ»ú¤ÎÁ°¤Ë -ÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ò´Þ¤ó¤Ç¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ +\fIs\fP から始まるマルチバイト文字列が、次の完全な文字の前に +不正なマルチバイト列を含んでいる場合には、 .BR mbrlen () -¤Ï -\fI(size_t)\ \-1\fP ¤òÊÖ¤· \fIerrno\fP ¤Ë \fBEILSEQ\fP ¤¬ÀßÄꤵ¤ì¤ë¡£ -¤³¤Î¾ì¹ç¤Î \fI*ps\fP ¤Ø¤Î±Æ¶Á¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +は +\fI(size_t)\ \-1\fP を返し \fIerrno\fP に \fBEILSEQ\fP が設定される。 +この場合の \fI*ps\fP への影響は未定義である。 .PP .\"O If \fIps\fP is a NULL pointer, a static anonymous state only known to the .\"O .BR mbrlen () .\"O function is used instead. -\fIps\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¡¼¤Ê¤é¤Ð¡¢Âå¤ê¤Ë +\fIps\fP が NULL ポインターならば、代りに .BR mbrlen () -´Ø¿ô¤Î¤ß¤¬»ÈÍѤ¹¤ëÀÅŪ¤Ç̾Á°¤Î¤Ê¤¤¾õÂÖ¤¬»ÈÍѤµ¤ì¤ë¡£ +関数のみが使用する静的で名前のない状態が使用される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR mbrlen () .\"O function returns the number of bytes .\"O parsed from the multibyte .\"O sequence starting at \fIs\fP, if a non-null wide character was recognized. -¥Ê¥ë¥ï¥¤¥Éʸ»ú°Ê³°¤Îʸ»ú¤ò³Îǧ¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ +ナルワイド文字以外の文字を確認した場合には、 .BR mbrlen () -´Ø¿ô¤Ï \fIs\fP -¤«¤é»Ï¤Þ¤ë¥Þ¥ë¥Á¥Ð¥¤¥ÈÎ󤫤é»ÈÍѤ·¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ +関数は \fIs\fP +から始まるマルチバイト列から使用したバイト数を返す。 .\"O It returns 0, if a null wide character was recognized. .\"O It returns .\"O .I "(size_t)\ \-1" @@ -100,18 +100,18 @@ mbrlen \- .\"O encountered. .\"O It returns \fI(size_t)\ \-2\fP if it couldn't parse a complete multibyte .\"O character, meaning that \fIn\fP should be increased. -¥Ê¥ë¥ï¥¤¥Éʸ»ú¤¬³Îǧ¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£ -ÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ËÁø¶ø¤·¤¿¾ì¹ç¤Ë¤Ï +ナルワイド文字が確認された場合にはゼロを返す。 +不正なマルチバイト列に遭遇した場合には .I "(size_t)\ \-1" -¤òÊÖ¤· -\fIerrno\fP ¤Ë \fBEILSEQ\fP ¤òÀßÄꤹ¤ë¡£ -´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò²òÀϤǤ­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï \fI(size_t)\ \-2\fP ¤òÊÖ¤¹¡£ -¤³¤ì¤Ï \fIn\fP ¤òÁý¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +を返し +\fIerrno\fP に \fBEILSEQ\fP を設定する。 +完全なマルチバイト文字を解析できなかった場合には \fI(size_t)\ \-2\fP を返す。 +これは \fIn\fP を増さなければならないことを意味する。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR mbrlen () .\"O depends on the @@ -119,9 +119,9 @@ C99. .\"O category of the .\"O current locale. .BR mbrlen () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ +カテゴリに依存している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mbrtowc (3) diff --git a/draft/man3/mbrtowc.3 b/draft/man3/mbrtowc.3 index 3d2953c1..03148a1c 100644 --- a/draft/man3/mbrtowc.3 +++ b/draft/man3/mbrtowc.3 @@ -20,11 +20,11 @@ .\" .TH MBRTOWC 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mbrtowc \- convert a multibyte sequence to a wide character -mbrtowc \- ¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ò¥ï¥¤¥Éʸ»ú¤ËÊÑ´¹¤¹¤ë +mbrtowc \- マルチバイト列をワイド文字に変換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -32,7 +32,7 @@ mbrtowc \- ", mbstate_t *" ps ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The main case for this function is when \fIs\fP is not NULL and \fIpwc\fP is .\"O not NULL. .\"O In this case, the @@ -49,17 +49,17 @@ mbrtowc \- .\"O from \fIs\fP. .\"O If the converted wide character is L\(aq\\0\(aq, it resets the shift .\"O state \fI*ps\fP to the initial state and returns 0. -¤³¤Î´Ø¿ô¤¬ÍѤ¤¤é¤ì¤ë¾ì¹ç¡¢Ä̾ï \fIs\fP ¤¬ NULL ¤Ç¤Ê¤¯ \fIpwc\fP ¤â NULL ¤Ç -¤Ê¤¤¡£¤³¤Î¾ì¹ç¤Ï¡¢ +この関数が用いられる場合、通常 \fIs\fP が NULL でなく \fIpwc\fP も NULL で +ない。この場合は、 .BR mbrtowc () -´Ø¿ô¤Ï \fIs\fP ¤«¤é»Ï¤Þ¤ëºÇÂç \fIn\fP ¥Ð¥¤¥È¤Î -¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò¸¡ºº¤·¤Æ¡¢¼¡¤Î´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ò¼è¤ê½Ð¤·¡¢ -¤½¤ì¤ò¥ï¥¤¥Éʸ»ú¤ËÊÑ´¹¤·¤Æ \fI*pwc\fP ¤Ë³ÊǼ¤¹¤ë¡£ -Ʊ»þ¤Ë¥·¥Õ¥È¾õÂÖ \fI*ps\fP ¤ò¹¹¿·¤¹¤ë¡£ -ÊÑ´¹¤·¤¿¥ï¥¤¥Éʸ»ú¤¬ L\(aq\\0\(aq (NULL ¥ï¥¤¥Éʸ»ú) ¤Ç¤Ê¤±¤ì¤Ð¡¢ -\fIs\fP ¤«¤é¾ÃÈñ¤¹¤ë¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -ÊÑ´¹¤·¤¿¥ï¥¤¥Éʸ»ú¤¬ L\(aq\\0\(aq ¤Î¾ì¹ç¤Ë¤Ï¥·¥Õ¥È¾õÂÖ \fI*ps\fP ¤ò -½é´ü¾õÂÖ¤ËÌᤷ¤Æ 0 ¤òÊÖ¤¹¡£ +関数は \fIs\fP から始まる最大 \fIn\fP バイトの +マルチバイト文字を検査して、次の完全なマルチバイト文字列を取り出し、 +それをワイド文字に変換して \fI*pwc\fP に格納する。 +同時にシフト状態 \fI*ps\fP を更新する。 +変換したワイド文字が L\(aq\\0\(aq (NULL ワイド文字) でなければ、 +\fIs\fP から消費するバイト数を返す。 +変換したワイド文字が L\(aq\\0\(aq の場合にはシフト状態 \fI*ps\fP を +初期状態に戻して 0 を返す。 .PP .\"O If the \fIn\fP bytes starting at \fIs\fP do not contain a complete multibyte .\"O character, @@ -68,12 +68,12 @@ mbrtowc \- .\"O This can happen even if .\"O \fIn\fP >= \fIMB_CUR_MAX\fP, if the multibyte string contains redundant shift .\"O sequences. -\fIs\fP ¤«¤é»Ï¤Þ¤ë \fIn\fP ¥Ð¥¤¥È¤¬´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò´Þ¤ó¤Ç¤¤¤Ê¤¤ -¾ì¹ç¤Ë¤Ï¡¢ +\fIs\fP から始まる \fIn\fP バイトが完全なマルチバイト文字を含んでいない +場合には、 .BR mbrtowc () -¤Ï \fI(size_t)\ \-2\fP ¤òÊÖ¤¹¡£ -¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤Ë¾éĹ¤Ê¥·¥Õ¥È¥·¡¼¥±¥ó¥¹¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤È¡¢ -\fIn\fP >= \fIMB_CUR_MAX\fP ¤Î»þ¤Ë¤â¤³¤Î¤è¤¦¤Ê¤³¤È¤¬µ¯¤³¤ê¤¨¤ë¡£ +は \fI(size_t)\ \-2\fP を返す。 +マルチバイト文字列に冗長なシフトシーケンスが含まれていると、 +\fIn\fP >= \fIMB_CUR_MAX\fP の時にもこのようなことが起こりえる。 .PP .\"O If the multibyte string starting at \fIs\fP contains an invalid multibyte .\"O sequence before the next complete character, @@ -82,12 +82,12 @@ mbrtowc \- .\"O \fI(size_t)\ \-1\fP and sets \fIerrno\fP to \fBEILSEQ\fP. .\"O In this case, .\"O the effects on \fI*ps\fP are undefined. -\fIs\fP ¤«¤é»Ï¤Þ¤ë¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎ󤬡¢¼¡¤Î´°Á´¤Êʸ»ú¤ÎÁ°¤Ë -ÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ò´Þ¤ó¤Ç¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ +\fIs\fP から始まるマルチバイト文字列が、次の完全な文字の前に +不正なマルチバイト列を含んでいる場合には、 .BR mbrtowc () -¤Ï -\fI(size_t)\ \-1\fP ¤òÊÖ¤·¡¢\fIerrno\fP ¤Ë \fBEILSEQ\fP ¤òÀßÄꤹ¤ë¡£ -¤³¤Î¾ì¹ç¤Ï \fI*ps\fP ¤Ø¤Î±Æ¶Á¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +は +\fI(size_t)\ \-1\fP を返し、\fIerrno\fP に \fBEILSEQ\fP を設定する。 +この場合は \fI*ps\fP への影響は未定義である。 .PP .\"O A different case is when \fIs\fP is not NULL but \fIpwc\fP is NULL. .\"O In this @@ -95,10 +95,10 @@ mbrtowc \- .\"O .BR mbrtowc () .\"O function behaves as above, except that it does not .\"O store the converted wide character in memory. -\fIs\fP ¤¬ NULL ¤Ç¤Ê¤¯ \fIpwc\fP ¤¬ NULL ¤Î¾ì¹ç¤Ï +\fIs\fP が NULL でなく \fIpwc\fP が NULL の場合は .BR mbrtowc () -´Ø¿ô¤Ï -¾åµ­¤ÈƱÍͤËÆ°ºî¤¹¤ë¤¬¡¢ÊÑ´¹¤·¤¿¥ï¥¤¥Éʸ»ú¤Ï¥á¥â¥ê¤Ë¤Ï½ñ¤­¹þ¤Þ¤ì¤Ê¤¤¡£ +関数は +上記と同様に動作するが、変換したワイド文字はメモリには書き込まれない。 .PP .\"O A third case is when \fIs\fP is NULL. .\"O In this case, \fIpwc\fP and \fIn\fP are @@ -113,43 +113,43 @@ mbrtowc \- .\"O .BR mbrtowc () .\"O function puts \fI*ps\fP in the initial state and returns 0. -»°ÈÖÌܤξì¹ç¤È¤·¤Æ \fIs\fP ¤¬ NULL ¤Î¾ì¹ç¡¢ \fIpwc\fP ¤È \fIn\fP ¤Ï -̵»ë¤µ¤ì¤ë¡£ -\fI*ps\fP ¤¬É½¸½¤¹¤ëÊÑ´¹¾õÂÖ¤¬ÉÔ´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÊÑ´¹¤ò¼¨¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ +三番目の場合として \fIs\fP が NULL の場合、 \fIpwc\fP と \fIn\fP は +無視される。 +\fI*ps\fP が表現する変換状態が不完全なマルチバイト文字変換を示している場合は、 .BR mbrtowc () -´Ø¿ô¤Ï \fI(size_t)\ \-1\fP ¤òÊÖ¤·¡¢ -\fIerrno\fP ¤Ë \fBEILSEQ\fP ¤ò¥»¥Ã¥È¤·¡¢ -\fI*ps\fP ¤Ï̤ÄêµÁ¾õÂ֤Τޤޤˤ¹¤ë¡£ -¤µ¤â¤Ê¤±¤ì¤Ð¡¢ +関数は \fI(size_t)\ \-1\fP を返し、 +\fIerrno\fP に \fBEILSEQ\fP をセットし、 +\fI*ps\fP は未定義状態のままにする。 +さもなければ、 .BR mbrtowc () -´Ø¿ô¤Ï \fI*ps\fP ¤ò½é´ü¾õÂ֤ˤ·¤Æ 0 ¤òÊÖ¤¹¡£ +関数は \fI*ps\fP を初期状態にして 0 を返す。 .PP .\"O In all of the above cases, if \fIps\fP is a NULL pointer, a static anonymous .\"O state only known to the mbrtowc function is used instead. -¾åµ­¤ÎÁ´¤Æ¤Î¾ì¹ç¤Ë¤ª¤¤¤Æ¡¢\fIps\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¡¼¤Ê¤é¤ÐÂå¤ï¤ê¤Ë -mbrtowc ´Ø¿ô¤Î¤ß¤¬»ÈÍѤ¹¤ëÀÅŪ¤Ç̾Á°¤Î¤Ê¤¤¾õÂÖ¤¬»ÈÍѤµ¤ì¤ë¡£ +上記の全ての場合において、\fIps\fP が NULL ポインターならば代わりに +mbrtowc 関数のみが使用する静的で名前のない状態が使用される。 .\"O Otherwise, \fI*ps\fP must be a valid \fImbstate_t\fP object. -¤µ¤â¤Ê¤±¤ì¤Ð¡¢\fI*ps\fP ¤ÏÍ­¸ú¤Ê \fImbstate_t\fP ¥ª¥Ö¥¸¥§¥¯¥È¤Ç -¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +さもなければ、\fI*ps\fP は有効な \fImbstate_t\fP オブジェクトで +なければならない。 .\"O An \fImbstate_t\fP object \fIa\fP can be initialized to the initial state .\"O by zeroing it, for example using -\fImbstate_t\fP ¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¢¤ë \fIa\fP ¤Ï¥¼¥í¤ÇËä¤á¤ë¤³¤È¤Ë¤è¤Ã¤Æ -½é´ü¾õÂ֤˽é´ü²½¤Ç¤­¤ë¡£°Ê²¼¤ËÎã¤ò¼¨¤¹¡£ +\fImbstate_t\fP オブジェクトである \fIa\fP はゼロで埋めることによって +初期状態に初期化できる。以下に例を示す。 .sp .in +4n memset(&a, 0, sizeof(a)); .in .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR mbrtowc () .\"O function returns the number of bytes parsed from the .\"O multibyte sequence starting at \fIs\fP, if a non-L\(aq\\0\(aq wide character .\"O was recognized. -L\(aq\\0\(aq °Ê³°¤Î¥ï¥¤¥Éʸ»ú¤òǧ¼±¤·¤¿¾ì¹ç¤Ë¤Ï +L\(aq\\0\(aq 以外のワイド文字を認識した場合には .BR mbrtowc () -´Ø¿ô¤Ï \fIs\fP -¤«¤é»Ï¤Þ¤ë¥Þ¥ë¥Á¥Ð¥¤¥ÈÎ󤫤é²òÀϤ·¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ +関数は \fIs\fP +から始まるマルチバイト列から解析したバイト数を返す。 .\"O It returns 0, if a L\(aq\\0\(aq wide character was recognized. .\"O It returns .\"O .I (size_t)\ \-1 @@ -157,19 +157,19 @@ L\(aq\\0\(aq .\"O encountered. .\"O It returns \fI(size_t)\ \-2\fP if it couldn't parse a complete multibyte .\"O character, meaning that \fIn\fP should be increased. -L\(aq\\0\(aq ¥ï¥¤¥Éʸ»ú¤òǧ¼±¤·¤¿¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ -ÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ËÁø¶ø¤·¤¿¾ì¹ç¤Ë¤Ï +L\(aq\\0\(aq ワイド文字を認識した場合には 0 を返す。 +不正なマルチバイト列に遭遇した場合には .I (size_t)\ \-1 -¤òÊÖ¤·¡¢ -\fIerrno\fP ¤Ë \fBEILSEQ\fP ¤òÀßÄꤹ¤ë¡£´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò -²òÀϤǤ­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï +を返し、 +\fIerrno\fP に \fBEILSEQ\fP を設定する。完全なマルチバイト文字を +解析できなかった場合には .I (size_t)\ \-2 -¤òÊÖ¤· \fIn\fP ¤òÁý²Ã¤µ¤»¤ëɬÍפ¬¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ +を返し \fIn\fP を増加させる必要があることを示す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR mbrtowc () .\"O depends on the @@ -177,9 +177,9 @@ C99. .\"O category of the .\"O current locale. .BR mbrtowc () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ +カテゴリに依存している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mbsrtowcs (3) diff --git a/draft/man3/mbsinit.3 b/draft/man3/mbsinit.3 index ba639600..899ebab0 100644 --- a/draft/man3/mbsinit.3 +++ b/draft/man3/mbsinit.3 @@ -16,22 +16,22 @@ .\" Translated Tue Jan 11 00:56:13 JST 2000 .\" by HANATAKA Shinya .\" -.\"WORD: initial shift state ½é´ü¥·¥Õ¥È¾õÂÖ +.\"WORD: initial shift state 初期シフト状態 .\" .TH MBSINIT 3 2000-11-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mbsinit \- test for initial shift state -mbsinit \- ½é´ü¥·¥Õ¥È¾õÂÖ¤«¤É¤¦¤«¤ò¸¡ºº¤¹¤ë +mbsinit \- 初期シフト状態かどうかを検査する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int mbsinit(const mbstate_t *" ps ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Character conversion between the multibyte representation and the wide .\"O character representation uses conversion state, of type \fImbstate_t\fP. .\"O Conversion of a string uses a finite-state machine; when it is interrupted @@ -39,11 +39,11 @@ mbsinit \- .\"O save a state for processing the remaining characters. .\"O Such a conversion .\"O state is needed for the sake of encodings such as ISO-2022 and UTF-7. -ʸ»ú¤ò¥Þ¥ë¥Á¥Ð¥¤¥Èɽ¸½¤È¥ï¥¤¥Éʸ»úɽ¸½¤Î´Ö¤ÇÊÑ´¹¤¹¤ë¾ì¹ç¤Ë¤Ï -\fImbstate_t\fP ·¿¤ÎÊÑ´¹¾õÂÖ¤ò»ÈÍѤ¹¤ë¡£Ê¸»úÎó¤ÎÊÑ´¹¤ÏÍ­¸Â¾õÂÖ¥Þ¥·¥ó -¤ò»ÈÍѤ¹¤ë¡£¤¤¤¯¤é¤«¤Îʸ»ú¤ÎÊÑ´¹¤ò´°Î»¤·¤¿¸å¤Ë¡¢»Ä¤ê¤Îʸ»ú¤ò½èÍý¤¹¤ë -¤¿¤á¤Ë¾õÂÖ¤òÊݸ¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£¤³¤Î¤è¤¦¤ÊÊÑ´¹¾õÂÖ¤Ï -ISO-2022 ¤ä UTF-7 ¤Î¤è¤¦¤ÊÉä¹æ¤ò°·¤¦¤Î¤ËɬÍפȤµ¤ì¤ë¡£ +文字をマルチバイト表現とワイド文字表現の間で変換する場合には +\fImbstate_t\fP 型の変換状態を使用する。文字列の変換は有限状態マシン +を使用する。いくらかの文字の変換を完了した後に、残りの文字を処理する +ために状態を保存しておく必要があるかもしれない。このような変換状態は +ISO-2022 や UTF-7 のような符号を扱うのに必要とされる。 .PP .\"O The initial state is the state at the beginning of conversion of a string. .\"O There are two kinds of state: The one used by multibyte to wide character @@ -54,15 +54,15 @@ ISO-2022 .\"O .BR wcsrtombs (3), .\"O but they both fit in a \fImbstate_t\fP, and they both have the same .\"O representation for an initial state. -½é´ü¾õÂ֤ȤÏʸ»úÎó¤ÎÊÑ´¹¤ò³«»Ï¤¹¤ë»þ¤Î¾õÂ֤Ǥ¢¤ë¡£¾õÂ֤ˤÏÆó¼ïÎब -¸ºß¤·¡¢°ì¤Ä¤Ï +初期状態とは文字列の変換を開始する時の状態である。状態には二種類が +存在し、一つは .BR mbsrtowcs (3) -¤Î¤è¤¦¤Ê¥Þ¥ë¥Á¥Ð¥¤¥È¤ò¥ï¥¤¥Éʸ»ú¤Ë -ÊÑ´¹¤¹¤ë´Ø¿ô¤Ç»ÈÍѤµ¤ì¤ë¡£¤â¤¦°ì¤Ä¤Ï +のようなマルチバイトをワイド文字に +変換する関数で使用される。もう一つは .BR wcsrtombs (3) -¤Î¤è¤¦¤Ê -¥ï¥¤¥Éʸ»ú¤ò¥Þ¥ë¥Á¥Ð¥¤¥È¤ËÊÑ´¹¤¹¤ë´Ø¿ô¤Ç»ÈÍѤµ¤ì¤ë¡£¤·¤«¤·Î¾Êý¤È¤â -\fImbstate_t\fP ¤Ë³ÊǼ¤µ¤ì¡¢½é´ü¾õÂ֤Ȥ·¤ÆƱ¤¸É½¸½¤ò»ý¤Ä¡£ +のような +ワイド文字をマルチバイトに変換する関数で使用される。しかし両方とも +\fImbstate_t\fP に格納され、初期状態として同じ表現を持つ。 .PP .\"O For 8-bit encodings, all states are equivalent to the initial state. .\"O For multibyte encodings like UTF-8, EUC-*, BIG5 or SJIS, the wide character @@ -71,21 +71,21 @@ ISO-2022 .\"O .BR mbrtowc (3) .\"O do .\"O produce non-initial states when interrupted in the middle of a character. -8¥Ó¥Ã¥ÈÉä¹æ¤Ë¤ª¤¤¤Æ¤ÏÁ´¤Æ¤Î¾õÂ֤Ͻé´ü¾õÂÖ¤ÈÅù²Á¤Ç¤¢¤ë¡£ -UTF-8, EUC-*, BIG5, SJIS ¤Î¤è¤¦¤Ê¿¥Ð¥¤¥ÈÉä¹æ¤Ë¤ª¤¤¤Æ¥ï¥¤¥Éʸ»ú¤«¤é -¿¥Ð¥¤¥Èʸ»ú¤Ø¤ÎÊÑ´¹´Ø¿ô¤ÏÈó½é´ü¾õÂ֤ˤϤʤé¤Ê¤¤¡£ -¤·¤«¤· +8ビット符号においては全ての状態は初期状態と等価である。 +UTF-8, EUC-*, BIG5, SJIS のような多バイト符号においてワイド文字から +多バイト文字への変換関数は非初期状態にはならない。 +しかし .BR mbrtowc (3) -¤Î¤è¤¦¤Ê¿¥Ð¥¤¥Èʸ»ú¤«¤é¥ï¥¤¥Éʸ»ú¤Ø¤ÎÊÑ´¹´Ø¿ô¤Ç¤Ï -ʸ»ú¤Î²ò¼á¤ÎÅÓÃæ¤ÇÈó½é´ü¾õÂ֤Ȥʤë¾ì¹ç¤¬¤¢¤ë¡£ +のような多バイト文字からワイド文字への変換関数では +文字の解釈の途中で非初期状態となる場合がある。 .PP .\"O One possible way to create an .\"O .I mbstate_t .\"O in initial .\"O state is to set it to zero: -½é´ü¾õÂ֤Π+初期状態の .I mbstate_t -¤òºîÀ®¤¹¤ëÊýË¡¤Î°ì¤Ä¤Ï¡¢¤½¤ì¤ò¥¼¥í¤ËÀßÄꤹ¤ë¤³¤È¤Ç¤¢¤ë: +を作成する方法の一つは、それをゼロに設定することである: .nf mbstate_t state; @@ -93,8 +93,8 @@ UTF-8, EUC-*, BIG5, SJIS .fi .PP .\"O On Linux, the following works as well, but might generate compiler warnings: -Linux ¤Ë¤ª¤¤¤Æ¤Ï°Ê²¼¤ÎÊýË¡¤Ç¤âƱÍͤǤ¢¤ë¤¬¡¢¥³¥ó¥Ñ¥¤¥é¡¼¤Î·Ù¹ð¤¬ -À¸À®¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +Linux においては以下の方法でも同様であるが、コンパイラーの警告が +生成されるかもしれない。 .nf mbstate_t state = { 0 }; @@ -105,21 +105,21 @@ Linux .\"O tests whether \fI*ps\fP corresponds to an .\"O initial state. .BR mbsinit () -¤Ï \fI*ps\fP ¤¬½é´ü¾õÂ֤˰ìÃפ¹¤ë¤«¤É¤¦¤«¤ò¸¡ºº¤¹¤ë¡£ +は \fI*ps\fP が初期状態に一致するかどうかを検査する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR mbsinit () .\"O returns nonzero if \fI*ps\fP is an initial state, or if .\"O \fIps\fP is a NULL pointer. .\"O Otherwise it returns 0. .BR mbsinit () -¤Ï \fI*ps\fP ¤¬½é´ü¾õÂ֤ξì¹ç¤ä NULL ¥Ý¥¤¥ó¥¿¡¼¤Î¾ì¹ç¤Ë¤Ï -¥¼¥í°Ê³°¤òÊÖ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£ +は \fI*ps\fP が初期状態の場合や NULL ポインターの場合には +ゼロ以外を返す。それ以外の場合にはゼロを返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR mbsinit () .\"O depends on the @@ -127,10 +127,10 @@ C99. .\"O category of the .\"O current locale. .BR mbsinit () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ +カテゴリに依存している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mbsrtowcs (3), .BR wcsrtombs (3) diff --git a/draft/man3/mbsnrtowcs.3 b/draft/man3/mbsnrtowcs.3 index ce05d46b..75522883 100644 --- a/draft/man3/mbsnrtowcs.3 +++ b/draft/man3/mbsnrtowcs.3 @@ -17,11 +17,11 @@ .\" .TH MBSNRTOWCS 3 2011-10-01 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mbsnrtowcs \- convert a multibyte string to a wide-character string -mbsnrtowcs \- ¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ò¥ï¥¤¥Éʸ»úÎó¤ËÊÑ´¹¤¹¤ë +mbsnrtowcs \- マルチバイト文字列をワイド文字列に変換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -32,9 +32,9 @@ mbsnrtowcs \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR mbsnrtowcs (): @@ -43,17 +43,17 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR mbsnrtowcs () .\"O function is like the @@ -62,11 +62,11 @@ _GNU_SOURCE .\"O the number of bytes to be converted, starting at \fI*src\fP, is limited to .\"O \fInms\fP. .BR mbsnrtowcs () -´Ø¿ô¤Ï +関数は .BR mbsrtowcs (3) -´Ø¿ô¤Ë»÷¤Æ¤¤¤ë¤¬ -ÊÑ´¹¤¹¤ë¥Ð¥¤¥È¿ô¤¬ \fI*src\fP ¤«¤é»Ï¤Þ¤ë \fInms\fP ¥Ð¥¤¥È¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë -ÅÀ¤¬°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ +関数に似ているが +変換するバイト数が \fI*src\fP から始まる \fInms\fP バイトに制限されている +点が異なっている。 .PP .\"O If \fIdest\fP is not a NULL pointer, the .\"O .BR mbsnrtowcs () @@ -84,19 +84,19 @@ _GNU_SOURCE .\"O \fIdest\fP by one and \fI*src\fP by the number of bytes consumed. .\"O The .\"O conversion can stop for three reasons: -\fIdest\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¡¼¤Ç¤Ê¤±¤ì¤Ð +\fIdest\fP が NULL ポインターでなければ .BR mbsnrtowcs () -´Ø¿ô¤Ï -\fI*src\fP ¤«¤é¤Î¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ÎºÇÂç \fInms\fP ¤Þ¤Ç¤ò -\fIdest\fP ¤«¤é¤Î¥ï¥¤¥Éʸ»úÎó¤ËÊÑ´¹¤¹¤ë¡£ -ºÇÂç \fIlen\fP ʸ»ú¤Î¥ï¥¤¥Éʸ»ú¤¬ \fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£ -Ʊ»þ¤Ë¥·¥Õ¥È¾õÂÖ \fI*ps\fP ¤ò¹¹¿·¤¹¤ë¡£ -ÊÑ´¹¤Ï +関数は +\fI*src\fP からのマルチバイト文字列の最大 \fInms\fP までを +\fIdest\fP からのワイド文字列に変換する。 +最大 \fIlen\fP 文字のワイド文字が \fIdest\fP に書き込まれる。 +同時にシフト状態 \fI*ps\fP を更新する。 +変換は .I "mbrtowc(dest, *src, n, ps)" -¤ò¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤¬À®¸ù¤¹¤ë¸Â¤ê¡¢·«¤êÊÖ¤·¼Â¹Ô¤·¤¿¤Î¤È¼Â¼ÁŪ¤ËƱÍͤǤ¢¤ë¡£ -¤³¤³¤Ç¤Î \fIn\fP ¤ÏÀµ¤Î¿ô¤Ç¤¢¤ê¡¢·«¤êÊÖ¤·¤´¤È¤Ë \fIdest\fP ¤¬ 1 Áý²Ã¤µ¤»¤é¤ì¡¢ -\fI*src\fP ¤¬¾ÃÈñ¤·¤¿¥Ð¥¤¥È¿ô¤À¤±Áý²Ã¤µ¤»¤é¤ì¤ë¡£ÊÑ´¹¤Ï°Ê²¼¤Î»°¤Ä¤Î -¤¤¤º¤ì¤«¤Î¾ò·ï¤ÇÄä»ß¤¹¤ë: +を、この呼び出しが成功する限り、繰り返し実行したのと実質的に同様である。 +ここでの \fIn\fP は正の数であり、繰り返しごとに \fIdest\fP が 1 増加させられ、 +\fI*src\fP が消費したバイト数だけ増加させられる。変換は以下の三つの +いずれかの条件で停止する: .IP 1. 3 .\"O An invalid multibyte sequence has been encountered. .\"O In this case \fI*src\fP @@ -104,10 +104,10 @@ _GNU_SOURCE .\"O .I (size_t)\ \-1 .\"O is returned, .\"O and \fIerrno\fP is set to \fBEILSEQ\fP. -ÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ËÁø¶ø¤·¤¿¡£¤³¤Î¾ì¹ç¤Ë¤Ï \fI*src\fP ¤ÏÉÔÀµ¤Ê -¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ò»Ø¤¹¤è¤¦¤Ë¤·¤Æ¡¢ +不正なマルチバイト列に遭遇した。この場合には \fI*src\fP は不正な +マルチバイト列を指すようにして、 .I (size_t)\ \-1 -¤òÊÖ¤·¡¢\fIerrno\fP ¤Ë \fBEILSEQ\fP ¤òÀßÄꤹ¤ë¡£ +を返し、\fIerrno\fP に \fBEILSEQ\fP を設定する。 .IP 2. .\"O The \fInms\fP limit forces a stop, .\"O or \fIlen\fP non-L\(aq\\0\(aq wide characters @@ -115,10 +115,10 @@ _GNU_SOURCE .\"O In this case \fI*src\fP is left pointing to the .\"O next multibyte sequence to be converted, and the number of wide characters .\"O written to \fIdest\fP is returned. -\fInms\fP À©¸Â¤Ë¤è¤Ã¤Æ¶¯À©Åª¤ËÄä»ß¤¹¤ë¤«¡¢\fIlen\fP ʸ»ú¤Î L\(aq\\0\(aq °Ê³°¤Î -¥ï¥¤¥Éʸ»ú¤ò \fIdest\fP ¤Ë³ÊǼ¤·¤¿¾ì¹ç¡£¤³¤Î¾ì¹ç¤Ï \fI*src\fP ¤Ï -¼¡¤ËÊÑ´¹¤µ¤ì¤ë¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ò»Ø¤¹¤è¤¦¤Ë¤·¤Æ¡¢\fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤¿ -¥ï¥¤¥Éʸ»ú¤Î¿ô¤òÊÖ¤¹¡£ +\fInms\fP 制限によって強制的に停止するか、\fIlen\fP 文字の L\(aq\\0\(aq 以外の +ワイド文字を \fIdest\fP に格納した場合。この場合は \fI*src\fP は +次に変換されるマルチバイト列を指すようにして、\fIdest\fP に書き込まれた +ワイド文字の数を返す。 .IP 3. .\"O The multibyte string has been completely converted, including the .\"O terminating null wide character (\(aq\\0\(aq) @@ -128,31 +128,31 @@ _GNU_SOURCE .\"O characters written to \fIdest\fP, .\"O excluding the terminating null wide character, .\"O is returned. -¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎ󤬽ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú (\(aq\\0\(aq) -¤Þ¤Ç´Þ¤á¤Æ´°Á´¤ËÊÑ´¹¤µ¤ì¤¿¾ì¹ç¡£ -(¤³¤Î»þ¡¢ÉûºîÍѤȤ·¤Æ \fI*ps\fP ¤¬½é´ü¾õÂÖ¤ËÌᤵ¤ì¤ë¡£) -¤³¤Î¾ì¹ç¤Ï \fI*src\fP ¤Ë¤Ï NULL ¤¬ÀßÄꤵ¤ì¡¢ -\fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤¿Ê¸»ú¿ô (½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú¤Ï´Þ¤Þ¤ì¤Ê¤¤) ¤òÊÖ¤¹¡£ +マルチバイト文字列が終端の NULL ワイド文字 (\(aq\\0\(aq) +まで含めて完全に変換された場合。 +(この時、副作用として \fI*ps\fP が初期状態に戻される。) +この場合は \fI*src\fP には NULL が設定され、 +\fIdest\fP に書き込まれた文字数 (終端の NULL ワイド文字は含まれない) を返す。 .PP .\"O If \fIdest\fP is NULL, \fIlen\fP is ignored, and the conversion proceeds as .\"O above, except that the converted wide characters .\"O are not written out to memory, .\"O and that no destination length limit exists. -\fIdest\fP ¤¬ NULL ¤Î¾ì¹ç¡¢\fIlen\fP ¤Ï̵»ë¤µ¤ì¡¢¾åµ­¤ÈƱÍͤÎÊÑ´¹¤¬ -¹Ô¤ï¤ì¤ë¤¬¡¢ÊÑ´¹¤µ¤ì¤¿¥ï¥¤¥Éʸ»ú¤Ï¥á¥â¥ê¤Ë½ñ¤­¹þ¤Þ¤ì¤º¡¢ÊÑ´¹Àè¤Î¾å¸Â -¤¬Â¸ºß¤·¤Ê¤¤¡£ +\fIdest\fP が NULL の場合、\fIlen\fP は無視され、上記と同様の変換が +行われるが、変換されたワイド文字はメモリに書き込まれず、変換先の上限 +が存在しない。 .PP .\"O In both of the above cases, if \fIps\fP is a NULL pointer, a static anonymous .\"O state only known to the mbsnrtowcs function is used instead. -¾åµ­¤Î¤É¤Á¤é¤Î¾ì¹ç¤Ç¤â¡¢\fIps\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¡¼¤Ê¤é¤Ð¡¢Âå¤ê¤Ë -mbsnrtowcs ´Ø¿ô¤Î¤ß¤¬»ÈÍѤ¹¤ëÀÅŪ¤Ç̾Á°¤Î¤Ê¤¤¾õÂÖ¤¬»ÈÍѤµ¤ì¤ë¡£ +上記のどちらの場合でも、\fIps\fP が NULL ポインターならば、代りに +mbsnrtowcs 関数のみが使用する静的で名前のない状態が使用される。 .PP .\"O The programmer must ensure that there is room for at least \fIlen\fP wide .\"O characters at \fIdest\fP. -¥×¥í¥°¥é¥Þ¡¼¤Ï \fIdest\fP ¤ËºÇÄã¤Ç¤â \fIlen\fP ¥ï¥¤¥Éʸ»ú¤ò½ñ¤­¹þ¤à¤³ -¤È¤¬¤Ç¤­¤ë¶õ´Ö¤¬¤¢¤ë¤³¤È¤òÊݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +プログラマーは \fIdest\fP に最低でも \fIlen\fP ワイド文字を書き込むこ +とができる空間があることを保証しなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR mbsnrtowcs () .\"O function returns the number of wide characters @@ -163,15 +163,15 @@ mbsnrtowcs .\"O .I (size_t)\ \-1 .\"O is returned, and \fIerrno\fP set to \fBEILSEQ\fP. .BR mbsnrtowcs () -´Ø¿ô¤Ï¥ï¥¤¥Éʸ»úÎó¤ËÊÑ´¹´°Î»¤·¤¿¥ï¥¤¥Éʸ»ú¤Î¿ô¤òÊÖ¤¹¡£ -½ªÃ¼¤Î¥Ê¥ë¥ï¥¤¥Éʸ»ú¤Ï´Þ¤Þ¤Ê¤¤¡£ÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ËÁø¶ø¤·¤¿¾ì¹ç¤Ë¤Ï +関数はワイド文字列に変換完了したワイド文字の数を返す。 +終端のナルワイド文字は含まない。不正なマルチバイト列に遭遇した場合には .I (size_t)\ \-1 -¤òÊÖ¤·¡¢\fIerrno\fP ¤Ë \fBEILSEQ\fP ¤òÀßÄꤹ¤ë¡£ +を返し、\fIerrno\fP に \fBEILSEQ\fP を設定する。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR mbsnrtowcs () .\"O depends on the @@ -179,13 +179,13 @@ POSIX.1-2008. .\"O category of the .\"O current locale. .BR mbsnrtowcs () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ +カテゴリに依存している。 .PP .\"O Passing NULL as \fIps\fP is not multithread safe. -\fIps\fP ¤È¤·¤Æ NULL ¤òÅϤ¹¤³¤È¤Ï¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Ç¤Ï°ÂÁ´¤Ç¤Ê¤¤¡£ +\fIps\fP として NULL を渡すことはマルチスレッドでは安全でない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR iconv (3), .BR mbsrtowcs (3) diff --git a/draft/man3/mbsrtowcs.3 b/draft/man3/mbsrtowcs.3 index d0f08518..90decea0 100644 --- a/draft/man3/mbsrtowcs.3 +++ b/draft/man3/mbsrtowcs.3 @@ -18,11 +18,11 @@ .\" .TH MBSRTOWCS 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mbsrtowcs \- convert a multibyte string to a wide-character string -mbsrtowcs \- ¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ò¥ï¥¤¥Éʸ»úÎó¤ËÊÑ´¹¤¹¤ë +mbsrtowcs \- マルチバイト文字列をワイド文字列に変換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -30,7 +30,7 @@ mbsrtowcs \- .BI " size_t " len ", mbstate_t *" ps ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O If \fIdest\fP is not a NULL pointer, the .\"O .BR mbsrtowcs () .\"O function converts the @@ -45,18 +45,18 @@ mbsrtowcs \- .\"O positive number, as long as this call succeeds, and then incrementing .\"O \fIdest\fP by one and \fI*src\fP by the number of bytes consumed. .\"O The conversion can stop for three reasons: -\fIdest\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¡¼¤Ç¤Ê¤±¤ì¤Ð¡¢ +\fIdest\fP が NULL ポインターでなければ、 .BR mbsrtowcs () -´Ø¿ô¤Ï -¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó \fI*src\fP ¤ò \fIdest\fP ¤«¤é»Ï¤Þ¤ë¥ï¥¤¥Éʸ»úÎó¤Ë -ÊÑ´¹¤¹¤ë¡£\fIdest\fP ¤Ë¤ÏºÇÂç¤Ç \fIlen\fP ʸ»ú¤Î¥ï¥¤¥Éʸ»ú¤¬ -½ñ¤­¹þ¤Þ¤ì¤ë¡£Æ±»þ¤Ë¥·¥Õ¥È¾õÂÖ \fI*ps\fP ¤ò¹¹¿·¤¹¤ë¡£ -ÊÑ´¹¤Ï +関数は +マルチバイト文字列 \fI*src\fP を \fIdest\fP から始まるワイド文字列に +変換する。\fIdest\fP には最大で \fIlen\fP 文字のワイド文字が +書き込まれる。同時にシフト状態 \fI*ps\fP を更新する。 +変換は .I "mbrtowc(dest, *src, n, ps)" -¤ò¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤¬À®¸ù¤¹¤ë¸Â¤ê·«¤êÊÖ¤·¼Â¹Ô¤·¤¿¤Î¤È¼Â¼ÁŪ¤ËƱÍͤǤ¢¤ë¡£ -¤³¤³¤Ç \fIn\fP ¤ÏÀµ¤Î¿ô¤Ç¤¢¤ê¡¢·«¤êÊÖ¤·¤´¤È¤Ë \fIdest\fP ¤¬ 1 Áý²Ã¤µ¤»¤é¤ì¡¢ -\fI*src\fP ¤¬¾ÃÈñ¤·¤¿¥Ð¥¤¥È¿ô¤À¤±Áý²Ã¤µ¤»¤é¤ì¤ë¡£ÊÑ´¹¤Ï°Ê²¼¤Î»°¤Ä¤Î -¤¤¤º¤ì¤«¤Î¾ò·ï¤ÇÄä»ß¤¹¤ë: +を、この呼び出しが成功する限り繰り返し実行したのと実質的に同様である。 +ここで \fIn\fP は正の数であり、繰り返しごとに \fIdest\fP が 1 増加させられ、 +\fI*src\fP が消費したバイト数だけ増加させられる。変換は以下の三つの +いずれかの条件で停止する: .IP 1. 3 .\"O An invalid multibyte sequence has been encountered. .\"O In this case \fI*src\fP @@ -64,19 +64,19 @@ mbsrtowcs \- .\"O .I (size_t)\ \-1 .\"O is returned, .\"O and \fIerrno\fP is set to \fBEILSEQ\fP. -ÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ËÁø¶ø¤·¤¿¡£¤³¤Î¾ì¹ç¤Ë¤Ï \fI*src\fP ¤ÏÉÔÀµ¤Ê -¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ò»Ø¤¹¤è¤¦¤Ë¤·¤Æ¡¢ +不正なマルチバイト列に遭遇した。この場合には \fI*src\fP は不正な +マルチバイト列を指すようにして、 .I (size_t)\ \-1 -¤òÊÖ¤·¡¢\fIerrno\fP ¤Ë \fBEILSEQ\fP ¤òÀßÄꤹ¤ë¡£ +を返し、\fIerrno\fP に \fBEILSEQ\fP を設定する。 .IP 2. .\"O \fIlen\fP non-L\(aq\\0\(aq wide characters have been stored at \fIdest\fP. .\"O In this .\"O case \fI*src\fP is left pointing to the next .\"O multibyte sequence to be converted, .\"O and the number of wide characters written to \fIdest\fP is returned. -\fIlen\fP ʸ»ú¤Î L\(aq\\0\(aq °Ê³°¤Î¥ï¥¤¥Éʸ»ú¤ò \fIdest\fP ¤Ë³ÊǼ¤·¤¿¾ì¹ç¡£ -¤³¤Î¾ì¹ç¤Ï \fI*src\fP ¤Ï¼¡¤ËÊÑ´¹¤µ¤ì¤ë¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ò»Ø¤¹¤è¤¦¤Ë¤·¤Æ¡¢ -\fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¥ï¥¤¥Éʸ»ú¤Î¿ô¤òÊÖ¤¹¡£ +\fIlen\fP 文字の L\(aq\\0\(aq 以外のワイド文字を \fIdest\fP に格納した場合。 +この場合は \fI*src\fP は次に変換されるマルチバイト列を指すようにして、 +\fIdest\fP に書き込まれたワイド文字の数を返す。 .IP 3. .\"O The multibyte string has been completely converted, including the .\"O terminating null wide character (\(aq\\0\(aq), which has the side @@ -85,35 +85,35 @@ mbsrtowcs \- .\"O In this case \fI*src\fP is set to NULL, and the number of wide .\"O characters written to \fIdest\fP, .\"O excluding the terminating null wide character, is returned. -¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎ󤬽ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú (\(aq\\0\(aq) ¤Þ¤Ç´Þ¤á¤Æ´°Á´¤Ë -ÊÑ´¹¤µ¤ì¤¿¾ì¹ç¡£¤³¤Î»þ¡¢ÉûºîÍѤȤ·¤Æ \fI*ps\fP ¤¬½é´ü¾õÂÖ¤ËÌᤵ¤ì¤ë¡£ -¤³¤Î¾ì¹ç¤Ï \fI*src\fP ¤Ë¤Ï NULL ¤¬ÀßÄꤵ¤ì¡¢½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú¤ò½ü¤¤¤Æ -\fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤¿Ê¸»ú¿ô¤òÊÖ¤¹¡£ +マルチバイト文字列が終端の NULL ワイド文字 (\(aq\\0\(aq) まで含めて完全に +変換された場合。この時、副作用として \fI*ps\fP が初期状態に戻される。 +この場合は \fI*src\fP には NULL が設定され、終端の NULL ワイド文字を除いて +\fIdest\fP に書き込まれた文字数を返す。 .PP .\"O If \fIdest\fP is NULL, \fIlen\fP is ignored, .\"O and the conversion proceeds as above, .\"O except that the converted wide characters are not written out to memory, .\"O and that no length limit exists. -\fIdest\fP ¤¬ NULL ¤Î¾ì¹ç¡¢\fIlen\fP ¤Ï̵»ë¤µ¤ì¡¢¾åµ­¤ÈƱÍͤÎÊÑ´¹¤¬ -¹Ô¤ï¤ì¤ë¤¬¡¢ÊÑ´¹¤µ¤ì¤¿¥ï¥¤¥Éʸ»ú¤Ï¥á¥â¥ê¤Ë½ñ¤­¹þ¤Þ¤ì¤º¡¢ÊÑ´¹Àè¤Î¾å¸Â -¤¬Â¸ºß¤·¤Ê¤¤¡£ +\fIdest\fP が NULL の場合、\fIlen\fP は無視され、上記と同様の変換が +行われるが、変換されたワイド文字はメモリに書き込まれず、変換先の上限 +が存在しない。 .PP .\"O In both of the above cases, .\"O if \fIps\fP is a NULL pointer, a static anonymous .\"O state only known to the .\"O .BR mbsrtowcs () .\"O function is used instead. -¾åµ­¤Î¤É¤Á¤é¤Î¾ì¹ç¤Ç¤â¡¢\fIps\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¡¼¤Ê¤é¤Ð¡¢ -Âå¤ê¤Ë +上記のどちらの場合でも、\fIps\fP が NULL ポインターならば、 +代りに .BR mbsrtowcs () -´Ø¿ô¤Î¤ß¤¬»ÈÍѤ¹¤ëÀÅŪ¤Ç̾Á°¤Î¤Ê¤¤¾õÂÖ¤¬»ÈÍѤµ¤ì¤ë¡£ +関数のみが使用する静的で名前のない状態が使用される。 .PP .\"O The programmer must ensure that there is room for at least \fIlen\fP wide .\"O characters at \fIdest\fP. -¥×¥í¥°¥é¥Þ¡¼¤Ï \fIdest\fP ¤ËºÇÄã¤Ç¤â \fIlen\fP ¥ï¥¤¥Éʸ»ú¤ò½ñ¤­¹þ¤à¤³ -¤È¤¬¤Ç¤­¤ë¶õ´Ö¤¬¤¢¤ë¤³¤È¤òÊݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +プログラマーは \fIdest\fP に最低でも \fIlen\fP ワイド文字を書き込むこ +とができる空間があることを保証しなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR mbsrtowcs () .\"O function returns the number of wide characters that make @@ -124,15 +124,15 @@ mbsrtowcs \- .\"O .I (size_t)\ \-1 .\"O is returned, and \fIerrno\fP set to \fBEILSEQ\fP. .BR mbsrtowcs () -´Ø¿ô¤Ï¥ï¥¤¥Éʸ»úÎó¤ËÊÑ´¹´°Î»¤·¤¿¥ï¥¤¥Éʸ»ú¤Î¿ô¤òÊÖ¤¹¡£ -½ªÃ¼¤Î¥Ê¥ë¥ï¥¤¥Éʸ»ú¤Ï´Þ¤Þ¤Ê¤¤¡£ÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ËÁø¶ø¤·¤¿¾ì¹ç¤Ë¤Ï +関数はワイド文字列に変換完了したワイド文字の数を返す。 +終端のナルワイド文字は含まない。不正なマルチバイト列に遭遇した場合には .I (size_t)\ \-1 -¤òÊÖ¤·¡¢\fIerrno\fP ¤Ë \fBEILSEQ\fP ¤òÀßÄꤹ¤ë¡£ +を返し、\fIerrno\fP に \fBEILSEQ\fP を設定する。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR mbsrtowcs () .\"O depends on the @@ -140,14 +140,14 @@ C99. .\"O category of the .\"O current locale. .BR mbsrtowcs () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ +カテゴリに依存している。 .PP .\"O Passing NULL as \fIps\fP is not multithread safe. -\fIps\fP ¤È¤·¤Æ NULL ¤òÅϤ¹¤³¤È¤Ï¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Ç¤Ï°ÂÁ´¤Ç¤Ê¤¤¡£ +\fIps\fP として NULL を渡すことはマルチスレッドでは安全でない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR iconv (3), .BR mbsnrtowcs (3), .BR mbstowcs (3) diff --git a/draft/man3/mbstowcs.3 b/draft/man3/mbstowcs.3 index ee3d6132..08d3ad6c 100644 --- a/draft/man3/mbstowcs.3 +++ b/draft/man3/mbstowcs.3 @@ -18,18 +18,18 @@ .\" .TH MBSTOWCS 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mbstowcs \- convert a multibyte string to a wide-character string -mbstowcs \- ¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ò¥ï¥¤¥Éʸ»úÎó¤ËÊÑ´¹¤¹¤ë +mbstowcs \- マルチバイト文字列をワイド文字列に変換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "size_t mbstowcs(wchar_t *" dest ", const char *" src ", size_t " n ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O If \fIdest\fP is not a NULL pointer, the .\"O .BR mbstowcs () .\"O function converts the @@ -38,57 +38,57 @@ mbstowcs \- .\"O The conversion starts .\"O in the initial state. .\"O The conversion can stop for three reasons: -\fIdest\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¡¼¤Ç¤Ê¤±¤ì¤Ð +\fIdest\fP が NULL ポインターでなければ .BR mbstowcs () -´Ø¿ô¤Ï -¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó \fI*src\fP ¤ò \fIdest\fP ¤«¤é»Ï¤Þ¤ë¥ï¥¤¥Éʸ»úÎó¤Ë -ÊÑ´¹¤¹¤ë¡£\fIdest\fP ¤Ë¤ÏºÇÂç¤Ç \fIn\fP ʸ»ú¤Î¥ï¥¤¥Éʸ»ú¤¬ -½ñ¤­¹þ¤Þ¤ì¤ë¡£ÊÑ´¹¤Ï½é´ü¾õÂ֤dz«»Ï¤µ¤ì¡¢ -°Ê²¼¤Î»°¤Ä¤Î¤¤¤º¤ì¤«¤Î¾ò·ï¤ÇÄä»ß¤¹¤ë: +関数は +マルチバイト文字列 \fI*src\fP を \fIdest\fP から始まるワイド文字列に +変換する。\fIdest\fP には最大で \fIn\fP 文字のワイド文字が +書き込まれる。変換は初期状態で開始され、 +以下の三つのいずれかの条件で停止する: .IP 1. 3 .\"O An invalid multibyte sequence has been encountered. .\"O In this case .\"O .I (size_t)\ \-1 .\"O is returned. -ÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ËÁø¶ø¤·¤¿¡£¤³¤Î¾ì¹ç¤Ë¤Ï +不正なマルチバイト列に遭遇した。この場合には .I (size_t)\ \-1 -¤òÊÖ¤¹¡£ +を返す。 .IP 2. .\"O \fIn\fP non-L\(aq\\0\(aq wide characters have been stored at \fIdest\fP. .\"O In this .\"O case the number of wide characters written to \fIdest\fP is returned, but the .\"O shift state at this point is lost. -\fIn\fP ʸ»ú¤Î L\(aq\\0\(aq °Ê³°¤Î¥ï¥¤¥Éʸ»ú¤ò \fIdest\fP ¤Ë³ÊǼ¤·¤¿¾ì¹ç¡£ -¤³¤Î¾ì¹ç¤Ï \fI*src\fP ¤¬¼¡¤ËÊÑ´¹¤µ¤ì¤ë¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ò»Ø¤¹¤è¤¦¤Ë¤·¤Æ¡¢ -\fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¥ï¥¤¥Éʸ»ú¤Î¿ô¤òÊÖ¤¹¡£¤·¤«¤·¤³¤Î»Ø¤·¤Æ¤¤¤ë -¾ì½ê¤Î¥·¥Õ¥È¾õÂ֤ϼº¤ï¤ì¤ë¡£ +\fIn\fP 文字の L\(aq\\0\(aq 以外のワイド文字を \fIdest\fP に格納した場合。 +この場合は \fI*src\fP が次に変換されるマルチバイト列を指すようにして、 +\fIdest\fP に書き込まれたワイド文字の数を返す。しかしこの指している +場所のシフト状態は失われる。 .IP 3. .\"O The multibyte string has been completely converted, including the .\"O terminating null wide character (\(aq\\0\(aq). .\"O In this case the number of wide characters written to .\"O \fIdest\fP, excluding the terminating null wide character, is returned. -¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎ󤬽ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú (\(aq\\0\(aq) ¤Þ¤Ç´Þ¤á¤Æ´°Á´¤Ë -ÊÑ´¹¤µ¤ì¤¿¾ì¹ç¡£¤³¤Î¾ì¹ç¤Ï½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú¤ò½ü¤¤¤Æ -\fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤¿Ê¸»ú¿ô¤òÊÖ¤¹¡£ +マルチバイト文字列が終端の NULL ワイド文字 (\(aq\\0\(aq) まで含めて完全に +変換された場合。この場合は終端の NULL ワイド文字を除いて +\fIdest\fP に書き込まれた文字数を返す。 .PP .\"O The programmer must ensure that there is room for at least \fIn\fP wide .\"O characters at \fIdest\fP. -¥×¥í¥°¥é¥Þ¡¼¤Ï \fIdest\fP ¤ËºÇÄã¤Ç¤â \fIn\fP ¥ï¥¤¥Éʸ»ú¤ò½ñ¤­¹þ¤à¤³ -¤È¤¬¤Ç¤­¤ë¶õ´Ö¤¬¤¢¤ë¤³¤È¤òÊݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +プログラマーは \fIdest\fP に最低でも \fIn\fP ワイド文字を書き込むこ +とができる空間があることを保証しなければならない。 .PP .\"O If \fIdest\fP is NULL, \fIn\fP is ignored, and the conversion proceeds as .\"O above, except that the converted wide characters are not written out to memory, .\"O and that no length limit exists. -\fIdest\fP ¤¬ NULL ¤Î¾ì¹ç¡¢\fIn\fP ¤Ï̵»ë¤µ¤ì¡¢¾åµ­¤ÈƱÍͤÎÊÑ´¹¤¬ -¹Ô¤ï¤ì¤ë¤¬¡¢ÊÑ´¹¤µ¤ì¤¿¥ï¥¤¥Éʸ»ú¤Ï¥á¥â¥ê¤Ë½ñ¤­¹þ¤Þ¤ì¤º¡¢ÊÑ´¹Àè¤Î¾å¸Â -¤¬Â¸ºß¤·¤Ê¤¤¡£ +\fIdest\fP が NULL の場合、\fIn\fP は無視され、上記と同様の変換が +行われるが、変換されたワイド文字はメモリに書き込まれず、変換先の上限 +が存在しない。 .PP .\"O In order to avoid the case 2 above, the programmer should make sure \fIn\fP is .\"O greater or equal to \fImbstowcs(NULL,src,0)+1\fP. -¾åµ­¤Î 2. ¤Î¾ì¹ç¤òÈò¤±¤ë¤¿¤á¤Ë¥×¥í¥°¥é¥Þ¡¼¤Ï \fIn\fP ¤¬ -\fImbstowcs(NULL,src,0)+1\fP °Ê¾å¤Ç¤¢¤ë¤³¤È¤òÊݾڤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +上記の 2. の場合を避けるためにプログラマーは \fIn\fP が +\fImbstowcs(NULL,src,0)+1\fP 以上であることを保証すべきである。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR mbstowcs () .\"O function returns the number of wide characters that make @@ -99,15 +99,15 @@ mbstowcs \- .\"O .I (size_t)\ \-1 .\"O is returned. .BR mbstowcs () -´Ø¿ô¤Ï¥ï¥¤¥Éʸ»úÎó¤ËÊÑ´¹´°Î»¤·¤¿¥ï¥¤¥Éʸ»ú¤Î¿ô¤òÊÖ¤¹¡£ -½ªÃ¼¤Î¥Ê¥ë¥ï¥¤¥Éʸ»ú¤Ï´Þ¤Þ¤Ê¤¤¡£ÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ËÁø¶ø¤·¤¿¾ì¹ç¤Ë¤Ï +関数はワイド文字列に変換完了したワイド文字の数を返す。 +終端のナルワイド文字は含まない。不正なマルチバイト列に遭遇した場合には .I (size_t)\ \-1 -¤òÊÖ¤¹¡£ +を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR mbstowcs () .\"O depends on the @@ -115,17 +115,17 @@ C99. .\"O category of the .\"O current locale. .BR mbstowcs () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ +カテゴリに依存している。 .PP .\"O The function .\"O .BR mbsrtowcs (3) .\"O provides a better interface to the same .\"O functionality. .BR mbsrtowcs (3) -´Ø¿ô¤ÏƱ¤¸µ¡Ç½¤Î¤è¤êÎɤ¤¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÄ󶡤¹¤ë¡£ +関数は同じ機能のより良いインターフェースを提供する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mbsrtowcs (3), .BR wcstombs(3) diff --git a/draft/man3/mbtowc.3 b/draft/man3/mbtowc.3 index 416fa429..a35dbc65 100644 --- a/draft/man3/mbtowc.3 +++ b/draft/man3/mbtowc.3 @@ -18,18 +18,18 @@ .\" .TH MBTOWC 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mbtowc \- convert a multibyte sequence to a wide character -mbtowc \- ¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ò¥ï¥¤¥Éʸ»ú¤ËÊÑ´¹¤¹¤ë +mbtowc \- マルチバイト列をワイド文字に変換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int mbtowc(wchar_t *" pwc ", const char *" s ", size_t " n ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The main case for this function is when \fIs\fP is not NULL and \fIpwc\fP is .\"O not NULL. .\"O In this case, the @@ -43,15 +43,15 @@ mbtowc \- .\"O function. .\"O If \fIs\fP does not point to a null byte (\(aq\\0\(aq), it returns the number .\"O of bytes that were consumed from \fIs\fP, otherwise it returns 0. -¤³¤Î´Ø¿ô¤¬ÍѤ¤¤é¤ì¤ë¾ì¹ç¡¢Ä̾ï \fIs\fP ¤¬ NULL ¤Ç¤Ê¤¯ \fIpwc\fP ¤â NULL -¤Ç¤Ê¤¤¡£¤³¤Î¾ì¹ç¤Ï +この関数が用いられる場合、通常 \fIs\fP が NULL でなく \fIpwc\fP も NULL +でない。この場合は .BR mbtowc () -´Ø¿ô¤Ï \fIs\fP ¤«¤é»Ï¤Þ¤ë -ºÇÂç \fIn\fP ¥Ð¥¤¥È¤Î¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ò¸¡ºº¤·¤Æ¡¢¼¡¤Î´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥È -ʸ»ú¤ò¼è¤ê½Ð¤·¡¢¤½¤ì¤ò¥ï¥¤¥Éʸ»ú¤ËÊÑ´¹¤·¤Æ \fI*pwc\fP ¤Ë³ÊǼ¤¹¤ë¡£ -Ʊ»þ¤Ë mbtowc ´Ø¿ô¤Î¤ß¤¬»ÈÍѤ¹¤ëÆâÉô¾õÂÖ¤ò¹¹¿·¤¹¤ë¡£\fIs\fP ¤¬ NULL ¥Ð¥¤¥È -(\(aq\\0\(aq) °Ê³°¤ò»Ø¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢\fIs\fP ¤«¤é¾ÃÈñ¤¹¤ë¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -\fIs\fP ¤¬ NULL ¥Ð¥¤¥È¤ò»Ø¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ +関数は \fIs\fP から始まる +最大 \fIn\fP バイトのマルチバイト文字列を検査して、次の完全なマルチバイト +文字を取り出し、それをワイド文字に変換して \fI*pwc\fP に格納する。 +同時に mbtowc 関数のみが使用する内部状態を更新する。\fIs\fP が NULL バイト +(\(aq\\0\(aq) 以外を指している場合は、\fIs\fP から消費するバイト数を返す。 +\fIs\fP が NULL バイトを指している場合には 0 を返す。 .PP .\"O If the \fIn\fP bytes starting at \fIs\fP do not contain a complete multibyte .\"O character, or if they contain an invalid multibyte sequence, @@ -59,13 +59,13 @@ mbtowc \- .\"O returns \-1. .\"O This can happen even if \fIn\fP >= \fIMB_CUR_MAX\fP, .\"O if the multibyte string contains redundant shift sequences. -\fIs\fP ¤«¤é»Ï¤Þ¤ë \fIn\fP ¥Ð¥¤¥È¤¬´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò´Þ¤ó¤Ç -¤¤¤Ê¤¤¾ì¹ç¤äÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ò´Þ¤ó¤Ç¤¤¤ë¾ì¹ç¤Ë¤Ï +\fIs\fP から始まる \fIn\fP バイトが完全なマルチバイト文字を含んで +いない場合や不正なマルチバイト列を含んでいる場合には .BR mbtowc () -¤Ï -\-1 ¤òÊÖ¤¹¡£¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤Ë¾éĹ¤Ê¥·¥Õ¥È¥·¡¼¥±¥ó¥¹¤¬ -´Þ¤Þ¤ì¤Æ¤¤¤ë¤È \fIn\fP >= \fIMB_CUR_MAX\fP ¤Î¾ì¹ç¤â¤³¤Î¤è¤¦¤Ê¤³¤È¤¬ -µ¯¤³¤ê¤¨¤ë¡£ +は +\-1 を返す。マルチバイト文字列に冗長なシフトシーケンスが +含まれていると \fIn\fP >= \fIMB_CUR_MAX\fP の場合もこのようなことが +起こりえる。 .PP .\"O A different case is when \fIs\fP is not NULL but \fIpwc\fP is NULL. .\"O In this @@ -73,10 +73,10 @@ mbtowc \- .\"O .BR mbtowc () .\"O function behaves as above, except that it does not .\"O store the converted wide character in memory. -\fIs\fP ¤¬ NULL ¤Ç¤Ê¤¯ \fIpwc\fP ¤¬ NULL ¤Î¾ì¹ç¤Ï +\fIs\fP が NULL でなく \fIpwc\fP が NULL の場合は .BR mbtowc () -´Ø¿ô¤Ï -¾åµ­¤ÈƱÍͤËÆ°ºî¤¹¤ë¤¬¡¢ÊÑ´¹¤·¤¿¥ï¥¤¥Éʸ»ú¤Ï¥á¥â¥ê¤Ë¤Ï½ñ¤­¹þ¤Þ¤ì¤Ê¤¤¡£ +関数は +上記と同様に動作するが、変換したワイド文字はメモリには書き込まれない。 .PP .\"O A third case is when \fIs\fP is NULL. .\"O In this case, \fIpwc\fP and \fIn\fP are @@ -90,39 +90,39 @@ mbtowc \- .\"O to the initial state, and .\"O returns nonzero if the encoding has nontrivial shift state, or zero if the .\"O encoding is stateless. -»°ÈÖÌܤξì¹ç¤È¤·¤Æ \fIs\fP ¤¬ NULL ¤Î¾ì¹ç¤Ï \fIpwc\fP ¤È \fIn\fP ¤Ï -̵»ë¤µ¤ì¤ë¡£ +三番目の場合として \fIs\fP が NULL の場合は \fIpwc\fP と \fIn\fP は +無視される。 .BR mbtowc () -´Ø¿ô¤Î¤ß¤¬»ÈÍѤ¹¤ë¥·¥Õ¥È¾õÂ֤Ͻé´ü¾õÂÖ¤Ë -Ìᤵ¤ì¤ë¡£¤½¤·¤Æʸ»úÉä¹æ¤¬¥·¥Õ¥È¾õÂ֤˰͸¤¹¤ë¤Ê¤é¤Ð¥¼¥í°Ê³°¤ò¡¢Ê¸»úÉä¹æ¤¬ -¾õÂ֤ˤè¤é¤Ê¤¤¤Ê¤é¤Ð¥¼¥í¤òÊÖ¤¹¡£ +関数のみが使用するシフト状態は初期状態に +戻される。そして文字符号がシフト状態に依存するならばゼロ以外を、文字符号が +状態によらないならばゼロを返す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O If \fIs\fP is not NULL, the .\"O .BR mbtowc () .\"O function returns the number of .\"O consumed bytes starting at \fIs\fP, or 0 if \fIs\fP points to a null byte, .\"O or \-1 upon failure. -\fIs\fP ¤¬ NULL ¤Ç¤Ê¤±¤ì¤Ð +\fIs\fP が NULL でなければ .BR mbtowc () -´Ø¿ô¤Ï \fIs\fP ¤«¤é¾ÃÈñ¤·¤¿ -¥Ð¥¤¥È¿ô¤ò¡¢\fIs\fP ¤¬¥Ê¥ëʸ»ú¤ò»Ø¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¥¼¥í¤ò¡¢ -ÊÑ´¹¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ +関数は \fIs\fP から消費した +バイト数を、\fIs\fP がナル文字を指している場合はゼロを、 +変換に失敗した場合は \-1 を返す。 .PP .\"O If \fIs\fP is NULL, the .\"O .BR mbtowc () .\"O function .\"O returns nonzero if the encoding .\"O has nontrivial shift state, or zero if the encoding is stateless. -\fIs\fP ¤¬ NULL ¤Ê¤é¤Ð +\fIs\fP が NULL ならば .BR mbtowc () -´Ø¿ô¤Ïʸ»úÉä¹æ¤¬¥·¥Õ¥È¾õÂ֤˰͸ -¤·¤Æ¤¤¤ì¤Ð¥¼¥í°Ê³°¤ò¡¢¾õÂ֤ˤè¤é¤Ê¤±¤ì¤Ð¥¼¥í¤òÊÖ¤¹¡£ +関数は文字符号がシフト状態に依存 +していればゼロ以外を、状態によらなければゼロを返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR mbtowc () .\"O depends on the @@ -130,21 +130,21 @@ C99. .\"O category of the .\"O current locale. .BR mbtowc () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ +カテゴリに依存している。 .PP .\"O This function is not multithread safe. .\"O The function .\"O .BR mbrtowc (3) .\"O provides .\"O a better interface to the same functionality. -¤³¤Î´Ø¿ô¤Ï¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Ç¤Ï°ÂÁ´¤Ç¤Ï¤Ê¤¤¡£ +この関数はマルチスレッドでは安全ではない。 .BR mbrtowc (3) -´Ø¿ô¤Ï -Ʊ¤¸µ¡Ç½¤Î¤è¤êÎɤ¤¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÄ󶡤¹¤ë¡£ +関数は +同じ機能のより良いインターフェースを提供する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR MB_CUR_MAX (3), .BR mbrtowc (3), .BR mbstowcs (3) diff --git a/draft/man3/memccpy.3 b/draft/man3/memccpy.3 index 355a34cf..26073fa7 100644 --- a/draft/man3/memccpy.3 +++ b/draft/man3/memccpy.3 @@ -32,48 +32,48 @@ .\" by Ueyama Rui .TH MEMCCPY 3 1993-04-10 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O memccpy \- copy memory area -memccpy \- ¥á¥â¥êÎΰè¤ò¥³¥Ô¡¼¤¹¤ë +memccpy \- メモリ領域をコピーする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "void *memccpy(void *" dest ", const void *" src ", int " c ", size_t " n ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR memccpy () .\"O function copies no more than \fIn\fP bytes from .\"O memory area \fIsrc\fP to memory area \fIdest\fP, stopping when the .\"O character \fIc\fP is found. .BR memccpy () -¤Ï¡¢¥á¥â¥êÎΰè \fIsrc\fP ¤«¤é¥á¥â¥êÎΰè \fIdest\fP ¤Ë -ºÇÂç¤Ç \fIn\fP ¥Ð¥¤¥È¤Î¥³¥Ô¡¼¤ò¹Ô¤¦¡£ -\fIn\fP ¥Ð¥¤¥È¥³¥Ô¡¼¤¹¤ëÁ°¤Ëʸ»ú \fIc\fP ¤¬¸«¤Ä¤«¤ë¤È¡¢ -¤½¤³¤Ç¥³¥Ô¡¼¤òÃæ»ß¤¹¤ë¡£ +は、メモリ領域 \fIsrc\fP からメモリ領域 \fIdest\fP に +最大で \fIn\fP バイトのコピーを行う。 +\fIn\fP バイトコピーする前に文字 \fIc\fP が見つかると、 +そこでコピーを中止する。 .\"O If the memory areas overlap, the results are undefined. -¥³¥Ô¡¼¸µ¤È¥³¥Ô¡¼Àè¤Î¥á¥â¥êÎΰ褬½Å¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -·ë²Ì¤ÏÉÔÄê¤Ç¤¢¤ë¡£ +コピー元とコピー先のメモリ領域が重なっている場合、 +結果は不定である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR memccpy () .\"O function returns a pointer to the next character .\"O in \fIdest\fP after \fIc\fP, or NULL if \fIc\fP was not found in the .\"O first \fIn\fP characters of \fIsrc\fP. .BR memccpy () -¤Ï¡¢\fIdest\fP Ãæ¤Ë¸«¤Ä¤«¤Ã¤¿ \fIc\fP ¤Î -¼¡¤Ë¤¢¤ë¥­¥ã¥é¥¯¥¿¡¼·¿¤ÎÊÑ¿ô¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢NULL ¤òÊÖ¤¹¡£ +は、\fIdest\fP 中に見つかった \fIc\fP の +次にあるキャラクター型の変数を指すポインタを返す。 +見つからなかった場合、NULL を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bcopy (3), .BR memcpy (3), .BR memmove (3), diff --git a/draft/man3/memchr.3 b/draft/man3/memchr.3 index ea8c4cad..b50d32e4 100644 --- a/draft/man3/memchr.3 +++ b/draft/man3/memchr.3 @@ -36,11 +36,11 @@ .\" .TH MEMCHR 3 2009-12-04 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O memchr, memrchr, rawmemchr \- scan memory for a character -memchr, memrchr, rawmemchr \- ʸ»ú¤òõ¤¹¤¿¤á¤Ë¥á¥â¥ê¤ò¥¹¥­¥ã¥ó¤¹¤ë +memchr, memrchr, rawmemchr \- 文字を探すためにメモリをスキャンする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include @@ -54,16 +54,16 @@ memchr, memrchr, rawmemchr \- ʸ .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR memrchr (): .BR rawmemchr (): _GNU_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR memchr () .\"O function scans the first \fIn\fP bytes of the memory @@ -71,9 +71,9 @@ _GNU_SOURCE .\"O The first byte to .\"O match \fIc\fP (interpreted as an unsigned character) stops the operation. .BR memchr () -´Ø¿ô¤Ï¡¢¥Ý¥¤¥ó¥¿ \fIs\fP ¤¬»Ø¤·¼¨¤¹¥á¥â¥ê¥Ö¥í¥Ã¥¯¤Î -ÀèƬ¤Î \fIn\fP ¥Ð¥¤¥È¤«¤éʸ»ú \fIc\fP ¤òõ¤¹¡£ -ºÇ½é¤Ë \fIc\fP (unsigned char ¤È²ò¼á¤µ¤ì¤ë) ¤¬¸«¤Ä¤«¤Ã¤¿»þÅÀ¤ÇÆ°ºî¤¬Ää»ß¤¹¤ë¡£ +関数は、ポインタ \fIs\fP が指し示すメモリブロックの +先頭の \fIn\fP バイトから文字 \fIc\fP を探す。 +最初に \fIc\fP (unsigned char と解釈される) が見つかった時点で動作が停止する。 .PP .\"O The .\"O .BR memrchr () @@ -83,12 +83,12 @@ _GNU_SOURCE .\"O except that it searches backward from the end of the \fIn\fP bytes .\"O pointed to by \fIs\fP instead of forward from the beginning. .BR memrchr () -´Ø¿ô¤Ï +関数は .BR memchr () -´Ø¿ô¤Ë»÷¤Æ¤¤¤ë¤¬¡¢ -ÀèƬ¤«¤é½çÊý¸þ¤Ëõ¤¹¤Î¤Ç¤Ï¤Ê¤¯¡¢ -¥Ý¥¤¥ó¥¿ \fIs\fP ¤¬»Ø¤·¼¨¤¹ \fIn\fP ¥Ð¥¤¥È¤Î¥á¥â¥ê¥Ö¥í¥Ã¥¯¤Î -ËöÈø¤«¤éµÕ¸þ¤­¤Ëõ¤¹¡£ +関数に似ているが、 +先頭から順方向に探すのではなく、 +ポインタ \fIs\fP が指し示す \fIn\fP バイトのメモリブロックの +末尾から逆向きに探す。 .\"O The .\"O .BR rawmemchr () @@ -106,22 +106,22 @@ _GNU_SOURCE .\"O .IR n , .\"O to limit the range of the search). .BR rawmemchr () -´Ø¿ô¤Ï +関数は .BR memchr () -¤ÈƱÍͤÀ¤¬¡¢ -ʸ»ú +と同様だが、 +文字 .I c -¤¬Ê¸»úÎó +が文字列 .I s -Æâ¤Î¤É¤³¤«¤Ë¤¢¤ë¤³¤È¤òÁ°Äó¤Ë¤·¤Æ -(¤Ä¤Þ¤ê¡¢¥×¥í¥°¥é¥Þ¤Ï¤½¤Î¤³¤È¤òÃΤäƤ¤¤ë)¡¢ -ºÇŬ²½¤·¤¿ÊýË¡¤Çʸ»ú +内のどこかにあることを前提にして +(つまり、プログラマはそのことを知っている)、 +最適化した方法で文字 .I c -¤Î¸¡º÷¤ò¼Â¹Ô¤¹¤ë -(¤¹¤Ê¤ï¤Á¡¢½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤Î¥Á¥§¥Ã¥¯¤â¹Ô¤ï¤ì¤Ê¤¤¤·¡¢ -¸¡º÷ÈϰϤξå¸Â¤ò¼¨¤¹°ú¤­¿ô +の検索を実行する +(すなわち、終端の NULL バイトのチェックも行われないし、 +検索範囲の上限を示す引き数 .I n -¤â»ÈÍѤµ¤ì¤Ê¤¤)¡£ +も使用されない)。 .\"O If the character .\"O .I c .\"O is not in the string @@ -130,17 +130,17 @@ _GNU_SOURCE .\"O .BR rawmemchr () .\"O may proceed to search beyond the end of the string, .\"O and the result is unspecified. -ʸ»ú +文字 .I c -¤¬Ê¸»úÎó +が文字列 .I s -Æâ¤Ë¤Ê¤¤¾ì¹ç¡¢ +内にない場合、 .BR rawmemchr () -¤Ïʸ»úÎóËöÈø¤ò±Û¤¨¤Æ¸¡º÷¤ò¼Â¹Ô¤¹¤ë¤«¤â¤·¤ì¤º¡¢·ë²Ì¤ÏÉÔÄê¤Ç¤¢¤ë¡£ +は文字列末尾を越えて検索を実行するかもしれず、結果は不定である。 .\"O The following call is a fast means of locating a string's .\"O terminating null byte: -¼¡¤Ë¼¨¤¹¸Æ¤Ó½Ð¤·¤Ï¡¢Ê¸»úÎó½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤Î°ÌÃÖ¤òÆÃÄꤹ¤ë -¹â®¤Ê¼êÃʤǤ¢¤ë¡£ +次に示す呼び出しは、文字列終端の NULL バイトの位置を特定する +高速な手段である。 .in +4n .nf @@ -148,7 +148,7 @@ char *p = rawmemchr(s,\ \(aq\\0\(aq); .fi .in .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR memchr () .\"O and @@ -157,50 +157,50 @@ char *p = rawmemchr(s,\ \(aq\\0\(aq); .\"O to the matching byte or NULL if the character does not occur in .\"O the given memory area. .BR memchr () -´Ø¿ô¤È +関数と .BR memrchr () -´Ø¿ô¤Ï°ìÃפ¹¤ëʸ»ú¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤·¡¢ -¤â¤·Ê¸»ú¤¬»ØÄê¥á¥â¥êÎΰè¤Ë¸½¤ì¤Ê¤¤¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +関数は一致する文字へのポインタを返し、 +もし文字が指定メモリ領域に現れない場合は NULL を返す。 .\"O The .\"O .BR rawmemchr () .\"O function returns a pointer to the matching byte, if one is found. .\"O If no matching byte is found, the result is unspecified. .BR rawmemchr () -´Ø¿ô¤Ï¥Þ¥Ã¥Á¤¹¤ë¥Ð¥¤¥È¤¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤Ï¥Þ¥Ã¥Á¤·¤¿¥Ð¥¤¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥Þ¥Ã¥Á¤¹¤ë¥Ð¥¤¥È¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢·ë²Ì¤ÏÉÔÄê¤Ç¤¢¤ë¡£ +関数はマッチするバイトが見つかった場合はマッチしたバイトへのポインタを返す。 +マッチするバイトが見つからなかった場合、結果は不定である。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR rawmemchr () .\"O first appeared in glibc in version 2.1. .BR rawmemchr () -¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +は glibc バージョン 2.1 で初めて登場した。 .\"O .BR memrchr () .\"O first appeared in glibc in version 2.2. .BR memrchr () -¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.2 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +は glibc バージョン 2.2 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The .\"O .BR memchr () .\"O function conforms to SVr4, 4.3BSD, C89, C99, POSIX.1-2001. .BR memchr () -´Ø¿ô¤Ï SVr4, 4.3BSD, C89, C99, POSIX.1-2001 ¤Ë½àµò¤¹¤ë¡£ +関数は SVr4, 4.3BSD, C89, C99, POSIX.1-2001 に準拠する。 .\"O The .\"O .BR memrchr () .\"O function is a GNU extension, available since glibc 2.1.91. .BR memrchr () -´Ø¿ô¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ê¡¢glibc 2.1.91 ¤«¤é»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ +関数は GNU 拡張であり、glibc 2.1.91 から使用可能である。 .\"O The .\"O .BR rawmemchr () .\"O function is a GNU extension, available since glibc 2.1. .BR rawmemchr () -´Ø¿ô¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ê¡¢glibc 2.1 ¤«¤é»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ +関数は GNU 拡張であり、glibc 2.1 から使用可能である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ffs (3), .BR index (3), .BR rindex (3), diff --git a/draft/man3/memcmp.3 b/draft/man3/memcmp.3 index a64ec282..e4193982 100644 --- a/draft/man3/memcmp.3 +++ b/draft/man3/memcmp.3 @@ -33,18 +33,18 @@ .\" .TH MEMCMP 3 2011-09-14 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O memcmp \- compare memory areas -memcmp \- ¥á¥â¥êÎΰè¤òÈæ³Ó¤¹¤ë +memcmp \- メモリ領域を比較する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int memcmp(const void *" s1 ", const void *" s2 ", size_t " n ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR memcmp () .\"O function compares the first \fIn\fP bytes (each interpreted as @@ -54,14 +54,14 @@ memcmp \- .\"O equal to, or greater than zero if \fIs1\fP is found, respectively, to .\"O be less than, to match, or be greater than \fIs2\fP. .BR memcmp () -´Ø¿ô¤Ï¡¢¥á¥â¥êÎΰè \fIs1\fP ¤È\fIs2\fP ¤ÎºÇ½é¤Î \fIn\fP -¥Ð¥¤¥È¤òÈæ³Ó¤¹¤ë (³Æ¥Ð¥¤¥È¤Ï +関数は、メモリ領域 \fIs1\fP と\fIs2\fP の最初の \fIn\fP +バイトを比較する (各バイトは .I "unsigned char" -¤È¤·¤Æ²ò¼á¤µ¤ì¤ë)¡£ -\fIs1\fP ¤¬ \fIs2\fP ¤è¤ê¾®¤µ¤¤¤«¡¢Æ±¤¸¤«¡¢¤¢¤ë¤¤¤ÏÂ礭¤¤¤«¤Ë¤è¤Ã¤Æ -¤½¤ì¤¾¤ì¡¢Éé¤ÎÀ°¿ô¡¢0¡¢Àµ¤ÎÀ°¿ô¤òÊÖ¤¹¡£ +として解釈される)。 +\fIs1\fP が \fIs2\fP より小さいか、同じか、あるいは大きいかによって +それぞれ、負の整数、0、正の整数を返す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR memcmp () .\"O function returns an integer less than, equal to, or @@ -69,15 +69,15 @@ memcmp \- .\"O respectively, to be less than, to match, or be greater than the first .\"O \fIn\fP bytes of \fIs2\fP. .BR memcmp () -´Ø¿ô¤Ï¡¢\fIs1\fP ¤ÎºÇ½é¤Î \fIn\fP ¥Ð¥¤¥È¤¬ -\fIs2\fP ¤ÎºÇ½é¤Î \fIn\fP ¥Ð¥¤¥È¤è¤ê¤â -¾®¤µ¤¤¤«¡¢Æ±¤¸¤«¡¢¤¢¤ë¤¤¤ÏÂ礭¤¤¤«¤Ë¤è¤Ã¤Æ¤½¤ì¤¾¤ì¡¢Éé¤ÎÀ°¿ô¡¢0¡¢ -Àµ¤ÎÀ°¿ô¤òÊÖ¤¹¡£ +関数は、\fIs1\fP の最初の \fIn\fP バイトが +\fIs2\fP の最初の \fIn\fP バイトよりも +小さいか、同じか、あるいは大きいかによってそれぞれ、負の整数、0、 +正の整数を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, C89, C99, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bcmp (3), .BR strcasecmp (3), .BR strcmp (3), diff --git a/draft/man3/memcpy.3 b/draft/man3/memcpy.3 index 5a6a8b5d..220ec6f0 100644 --- a/draft/man3/memcpy.3 +++ b/draft/man3/memcpy.3 @@ -33,18 +33,18 @@ .\" .TH MEMCPY 3 2010-11-15 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O memcpy \- copy memory area -memcpy \- ¥á¥â¥êÎΰè¤ò¥³¥Ô¡¼¤¹¤ë¡£ +memcpy \- メモリ領域をコピーする。 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "void *memcpy(void *" dest ", const void *" src ", size_t " n ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR memcpy () .\"O function copies \fIn\fP bytes from memory area @@ -54,23 +54,23 @@ memcpy \- .\"O .BR memmove (3) .\"O if the memory areas do overlap. .BR memcpy () -¤Ï¥á¥â¥êÎΰè \fIsrc\fP ¤ÎÀèƬ \fPn\fP ¥Ð¥¤¥È¤ò -¥á¥â¥êÎΰè \fIdest\fP ¤Ë¥³¥Ô¡¼¤¹¤ë¡£¥³¥Ô¡¼¸µ¤ÎÎΰè¤È -¥³¥Ô¡¼Àè¤ÎÎΰ褬½Å¤Ê¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£½Å¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï +はメモリ領域 \fIsrc\fP の先頭 \fPn\fP バイトを +メモリ領域 \fIdest\fP にコピーする。コピー元の領域と +コピー先の領域が重なってはならない。重なっている場合は .BR memmove (3) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR memcpy () .\"O function returns a pointer to \fIdest\fP. .BR memcpy () -¤Ï \fIdest\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +は \fIdest\fP へのポインタを返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, C89, C99, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bcopy (3), .BR memccpy (3), .BR memmove (3), diff --git a/draft/man3/memfrob.3 b/draft/man3/memfrob.3 index 13d8d450..e732a490 100644 --- a/draft/man3/memfrob.3 +++ b/draft/man3/memfrob.3 @@ -34,19 +34,19 @@ .TH MEMFROB 3 2010-09-10 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O memfrob \- frobnicate (encrypt) a memory area -.SH ̾Á° -memfrob \- ¥á¥â¥ê¥¨¥ê¥¢¤ÎÁàºî (°Å¹æ²½) +.SH 名前 +memfrob \- メモリエリアの操作 (暗号化) .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "void *memfrob(void *" s ", size_t " n ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR memfrob () .\"O function encrypts the first \fIn\fP bytes of the @@ -57,33 +57,33 @@ memfrob \- .\"O on the .\"O encrypted memory area. .BR memfrob () -´Ø¿ô¤Ï¡¢¥á¥â¥ê¥¨¥ê¥¢ \fIs\fP ¤ÎºÇ½é¤Î \fIn\fP ¥Ð¥¤¥È¤Î -¤½¤ì¤¾¤ì¤Îʸ»ú¤ò 42 ¤È¤ÎÇÓ¾ŪÏÀÍý¤ò¤È¤ë¤³¤È¤Ë¤è¤Ã¤Æ°Å¹æ²½¤¹¤ë¡£ -ÊÑ´¹¸å¤Î¥Ç¡¼¥¿¤Ï¡¢°Å¹æ²½¤µ¤ì¤Æ¤¤¤ë¥á¥â¥ê¥¨¥ê¥¢¤Ë (ºÆÅÙ) +関数は、メモリエリア \fIs\fP の最初の \fIn\fP バイトの +それぞれの文字を 42 との排他的論理をとることによって暗号化する。 +変換後のデータは、暗号化されているメモリエリアに (再度) .BR memfrob () -´Ø¿ô¤ò»Ü¤¹¤³¤È¤Ç¡¢¸µ¤ËÌ᤹¤³¤È¤¬¤Ç¤­¤ë¡£ +関数を施すことで、元に戻すことができる。 .PP .\"O Note that this function is not a proper encryption routine as the XOR .\"O constant is fixed, and is only suitable for hiding strings. -¤³¤Î´Ø¿ô¤ÏÂÅÅö¤Ê°Å¹æ²½¥ë¡¼¥Á¥ó¤Ç¤¢¤ë¤È¤Ï¸À¤¨¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤ÆÍߤ·¤¤¡£ -XOR ¤ò¤È¤ëÄê¿ô¤ò¸ÇÄꤷ¤Æ¤¤¤ë¤Î¤Ç¡¢¤»¤¤¤¼¤¤¡¢Ê¸»úÎó¤ò±£¤¹ÄøÅÙ¤ÎÍÑË¡¤Ë¤· -¤«¸þ¤¤¤Æ¤¤¤Ê¤¤¡£ +この関数は妥当な暗号化ルーチンであるとは言えないことに注意して欲しい。 +XOR をとる定数を固定しているので、せいぜい、文字列を隠す程度の用法にし +か向いていない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR memfrob () .\"O function returns a pointer to the encrypted memory .\"O area. .BR memfrob () -´Ø¿ô¤Ï¡¢°Å¹æ²½¤µ¤ì¤¿¥á¥â¥ê¥¨¥ê¥¢¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +関数は、暗号化されたメモリエリアへのポインタを返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The .\"O .BR memfrob () .\"O function is unique to the .\"O GNU C Library. .BR memfrob () -´Ø¿ô¤Ï GNU C ¥é¥¤¥Ö¥é¥ê¤Ë¸ÇÍ­¤Ç¤¢¤ë¡£ +関数は GNU C ライブラリに固有である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strfry (3) diff --git a/draft/man3/memmem.3 b/draft/man3/memmem.3 index e06e5c64..8a831fd9 100644 --- a/draft/man3/memmem.3 +++ b/draft/man3/memmem.3 @@ -33,67 +33,67 @@ .\" .TH MEMMEM 3 2008-12-05 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O memmem \- locate a substring -memmem \- Éôʬʸ»úÎó¤Î°ÌÃÖ¤ò¼¨¤¹ +memmem \- 部分文字列の位置を示す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "void *memmem(const void *" haystack ", size_t " haystacklen , .BI " const void *" needle ", size_t " needlelen ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR memmem () .\"O function finds the start of the first occurrence .\"O of the substring \fIneedle\fP of length \fIneedlelen\fP in the memory .\"O area \fIhaystack\fP of length \fIhaystacklen\fP. .BR memmem () -´Ø¿ô¤Ï¡¢ -\fIhaystacklen\fP ¤ÎÂ礭¤µ¤ò»ý¤Ä¥á¥â¥êÎΰè \fIhaystack\fP ¤ÎÃæ¤Ç -\fIneedlelen\fP ¤ÎÂ礭¤µ¤ò»ý¤ÄÉôʬʸ»úÎó \fIneedle\fP ¤¬ -ºÇ½é¤Ë¸½¤ì¤ë°ÌÃÖ¤ò¸«¤Ä¤±¤ë¡£ +関数は、 +\fIhaystacklen\fP の大きさを持つメモリ領域 \fIhaystack\fP の中で +\fIneedlelen\fP の大きさを持つ部分文字列 \fIneedle\fP が +最初に現れる位置を見つける。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR memmem () .\"O function returns a pointer to the beginning of the .\"O substring, or NULL if the substring is not found. .BR memmem () -´Ø¿ô¤Ï¡¢Éôʬʸ»úÎó¤Î³«»Ï¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤òÊÖ¤·¡¢¤â¤·Éôʬʸ»úÎó¤¬ -¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +関数は、部分文字列の開始を指すポインタを返し、もし部分文字列が +見つからない場合は NULL を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This function is a GNU extension. -¤³¤Î´Ø¿ô¤Ï GNU extension ¤Ç¤¢¤ë¡£ +この関数は GNU extension である。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O This function was broken in Linux libraries up to and including libc 5.0.9; .\"O there the \fIneedle\fP and \fIhaystack\fP arguments were interchanged, .\"O and a pointer to the end of the first occurrence of \fIneedle\fP .\"O was returned. -Linux ¤Î¥é¥¤¥Ö¥é¥ê¤Ë´Ø¤·¤Æ¤¤¤¦¤È¡¢ libc 5.0.9 ¤È -¤½¤ì°ÊÁ°¤Î¤¹¤Ù¤Æ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¡¢¤³¤Î´Ø¿ô¤Ï²õ¤ì¤Æ¤¤¤ë¡£ -¤½¤ì¤é¤Î¥é¥¤¥Ö¥é¥ê¤Ç¤Ï \fIneedle\fP ¤È \fIhaystack\fP °ú¿ô¤¬ -Æþ¤ìÂؤï¤Ã¤Æ¤ª¤ê¡¢ \fIneedle\fP ¤¬ºÇ½é¤Ë½Ð¸½¤¹¤ëÉôʬ¤ÎºÇ¸å¤ò -¼¨¤¹¥Ý¥¤¥ó¥¿¤¬ÊÖ¤µ¤ì¤Æ¤¤¤¿¤Î¤Ç¤¢¤ë¡£ +Linux のライブラリに関していうと、 libc 5.0.9 と +それ以前のすべてのバージョンで、この関数は壊れている。 +それらのライブラリでは \fIneedle\fP と \fIhaystack\fP 引数が +入れ替わっており、 \fIneedle\fP が最初に出現する部分の最後を +示すポインタが返されていたのである。 .\"O Both old and new libc's have the bug that if \fIneedle\fP is empty, .\"O \fIhaystack-1\fP\ (instead of \fIhaystack\fP) is returned. -¿·µìξÊý¤Î libc ¥é¥¤¥Ö¥é¥ê¤¬¡¢ -\fIneedle\fP ¤¬¶õ¤Î¾ì¹ç (\fIhaystack\fP ¤Î¤«¤ï¤ê¤Ë) \fIhaystack-1\fP\ ¤¬ -ÊÖ¤µ¤ì¤ë¤È¤¤¤¦¥Ð¥°¤ò»ý¤Ã¤Æ¤¤¤ë¡£ +新旧両方の libc ライブラリが、 +\fIneedle\fP が空の場合 (\fIhaystack\fP のかわりに) \fIhaystack-1\fP\ が +返されるというバグを持っている。 .\"O And glibc 2.0 makes it worse, returning a pointer to the .\"O last byte of \fIhaystack\fP. .\"O This is fixed in glibc 2.1. -¤½¤·¤Æ¡¢glibc 2.0 ¤Ç¤Ï¤µ¤é¤Ë°­¤¯¤Ê¤Ã¤Æ¤ª¤ê¡¢ -\fIhaystack\fP ¤ÎºÇ¸å¤Î¥Ð¥¤¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤ì¤Ï glibc 2.1 ¤Ç½¤Àµ¤µ¤ì¤¿¡£ +そして、glibc 2.0 ではさらに悪くなっており、 +\fIhaystack\fP の最後のバイトへのポインタを返す。 +これは glibc 2.1 で修正された。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strstr (3) diff --git a/draft/man3/memmove.3 b/draft/man3/memmove.3 index 592472f6..97d4fc43 100644 --- a/draft/man3/memmove.3 +++ b/draft/man3/memmove.3 @@ -34,18 +34,18 @@ .\" .TH MEMMOVE 3 1993-04-10 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O memmove \- copy memory area -memmove \- ¥á¥â¥êÎΰè¤ò¥³¥Ô¡¼¤¹¤ë +memmove \- メモリ領域をコピーする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "void *memmove(void *" dest ", const void *" src ", size_t " n ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR memmove () .\"O function copies \fIn\fP bytes from memory area @@ -60,30 +60,30 @@ memmove \- .\"O and the bytes are then copied from the temporary array to .\"O .IR dest . .BR memmove () -¤Ï¡¢¥á¥â¥êÎΰè \fIsrc\fP ¤ÎÀèƬ \fIn\fP ¥Ð¥¤¥È¤ò -¥á¥â¥êÎΰè \fIdest\fP ¤Ë¥³¥Ô¡¼¤¹¤ë¡£¥³¥Ô¡¼¸µ¤È¥³¥Ô¡¼Àè¤Î -Îΰ褬½Å¤Ê¤Ã¤Æ¤¤¤Æ¤â¤è¤¤¡£ -ºÇ½é¤Ë +は、メモリ領域 \fIsrc\fP の先頭 \fIn\fP バイトを +メモリ領域 \fIdest\fP にコピーする。コピー元とコピー先の +領域が重なっていてもよい。 +最初に .I src -¤Î¥Ð¥¤¥È¤¬ +のバイトが .I src -¤È¤â +とも .I dest -¤È¤â½Å¤Ê¤é¤Ê¤¤°ì»þŪ¤ÊÇÛÎó¤Ë¥³¥Ô¡¼¤µ¤ì¤Æ¤«¤é¡¢°ì»þŪ¤ÊÇÛÎ󤫤é +とも重ならない一時的な配列にコピーされてから、一時的な配列から .I dest -¤Ë¥Ð¥¤¥È¤Î¥³¥Ô¡¼¤¬¹Ô¤ï¤ì¤¿¤«¤Î¤è¤¦¤Ë¡¢¥³¥Ô¡¼¤¬¹Ô¤ï¤ì¤ë¡£ +にバイトのコピーが行われたかのように、コピーが行われる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR memmove () .\"O function returns a pointer to \fIdest\fP. .BR memmove () -¤Ï \fIdest\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +は \fIdest\fP へのポインタを返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, C89, C99, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bcopy (3), .BR memccpy (3), .BR memcpy (3), diff --git a/draft/man3/mempcpy.3 b/draft/man3/mempcpy.3 index 2611e63d..d04a12f1 100644 --- a/draft/man3/mempcpy.3 +++ b/draft/man3/mempcpy.3 @@ -11,62 +11,62 @@ .\" .TH MEMPCPY 3 2008-08-11 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mempcpy, wmempcpy \- copy memory area -mempcpy, wmempcpy \- ¥á¥â¥êÎΰè¤ò¥³¥Ô¡¼¤¹¤ë +mempcpy, wmempcpy \- メモリ領域をコピーする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "void *mempcpy(void *" dest ", const void *" src ", size_t " n ); .sp .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "wchar_t *wmempcpy(wchar_t *" dest ", const wchar_t *" src ", size_t " n ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR mempcpy () .\"O function is nearly identical to the .\"O .BR memcpy (3) .\"O function. .BR mempcpy () -´Ø¿ô¤Ï +関数は .BR memcpy (3) -´Ø¿ô¤È¤Û¤ÜƱ°ì¤Ç¤¢¤ë¡£ +関数とほぼ同一である。 .\"O It copies .\"O .I n .\"O bytes from the object beginning at .\"O .I src .\"O into the object pointed to by .\"O .IR dest . -¤³¤Î´Ø¿ô¤Ï¡¢ +この関数は、 .I src -¤Ç»Ï¤Þ¤ë¥ª¥Ö¥¸¥§¥¯¥È¤«¤é +で始まるオブジェクトから .I n -¥Ð¥¤¥È¤ò¡¢ +バイトを、 .I dest -¤Ç»Ø¤µ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥³¥Ô¡¼¤¹¤ë¡£ +で指されるオブジェクトにコピーする。 .\"O But instead of returning the value of .\"O .I dest .\"O it returns a pointer to the byte following the last written byte. -¤¿¤À¤· +ただし .I dest -¤ÎÃͤòÊÖ¤¹¤Î¤Ç¤Ï¤Ê¤¯¡¢ -ºÇ¸å¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¤Î¸å¤Ë³¤¯¥Ð¥¤¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +の値を返すのではなく、 +最後に書き込まれたバイトの後に続くバイトへのポインタを返す。 .PP .\"O This function is useful in situations where a number of objects .\"O shall be copied to consecutive memory positions. -¤³¤Î´Ø¿ô¤Ï¤¤¤¯¤Ä¤«¤Î¥ª¥Ö¥¸¥§¥¯¥È¤¬ -Ϣ³Ū¤Ê¥á¥â¥ê¤Î¾ì½ê¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¤è¤¦¤Ê¾õ¶·¤ÇÌò¤ËΩ¤Ä¡£ +この関数はいくつかのオブジェクトが +連続的なメモリの場所にコピーされるような状況で役に立つ。 .PP .\"O The .\"O .BR wmempcpy () @@ -76,26 +76,26 @@ mempcpy, wmempcpy \- .\"O .I n .\"O wide characters. .BR wmempcpy () -´Ø¿ô¤Ï¤³¤Î´Ø¿ô¤ÈƱ¤¸¤Ç¤¢¤ë¤¬¡¢ +関数はこの関数と同じであるが、 .I wchar_t -·¿¤Î°ú¤­¿ô¤ò¤È¤ê¡¢ +型の引き数をとり、 .I n -¥ï¥¤¥Éʸ»úÎó¤ò¥³¥Ô¡¼¤¹¤ë¡£ +ワイド文字列をコピーする。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 \fIdest\fP + \fIn\fP. .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR mempcpy () .\"O first appeared in glibc in version 2.1. .BR mempcpy () -¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This function is a GNU extension. -¤³¤Î´Ø¿ô¤Ï GNU ¤Ë¤ª¤±¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ +この関数は GNU における拡張である。 .\"O .SH "EXAMPLE" -.SH Îã +.SH 例 .nf void * combine (void *o1, size_t s1, void *o2, size_t s2) @@ -107,7 +107,7 @@ combine (void *o1, size_t s1, void *o2, size_t s2) .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR memccpy (3), .BR memcpy (3), .BR memmove (3), diff --git a/draft/man3/memset.3 b/draft/man3/memset.3 index 704c5a87..c0c90f5a 100644 --- a/draft/man3/memset.3 +++ b/draft/man3/memset.3 @@ -32,24 +32,24 @@ .\" by Ueyama Rui .\" .TH MEMSET 3 1993-04-11 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -memset \- ¤¢¤ë°ìÄê¤Î¥Ð¥¤¥È¤Ç¥á¥â¥êÎΰè¤òËä¤á¤ë¡£ -.SH ½ñ¼° +.SH 名前 +memset \- ある一定のバイトでメモリ領域を埋める。 +.SH 書式 .nf .B #include .sp .BI "void *memset(void *" s ", int " c ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .BR memset () -¤Ï \fIs\fP ¤Ç¼¨¤µ¤ì¤ë¥á¥â¥êÎΰè¤ÎÀèƬ¤«¤é \fIn\fP ¥Ð¥¤¥È¤ò -\fIc\fP ¤ÇËä¤á¤ë¡£ -.SH ÊÖ¤êÃÍ +は \fIs\fP で示されるメモリ領域の先頭から \fIn\fP バイトを +\fIc\fP で埋める。 +.SH 返り値 .BR memset () -¤Ï \fIs\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -.SH ½àµò +は \fIs\fP へのポインタを返す。 +.SH 準拠 SVr4, 4.3BSD, C89, C99, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bzero (3), .BR swab (3), .BR wmemset (3) diff --git a/draft/man3/mkdtemp.3 b/draft/man3/mkdtemp.3 index c40a4fc3..da574efe 100644 --- a/draft/man3/mkdtemp.3 +++ b/draft/man3/mkdtemp.3 @@ -29,11 +29,11 @@ .\" .TH MKDTEMP 3 2010-09-26 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mkdtemp \- create a unique temporary directory -mkdtemp \- ¾¤È½Å¤Ê¤é¤Ê¤¤°ì»þŪ¤Ê¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤¹¤ë +mkdtemp \- 他と重ならない一時的なディレクトリを作成する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -43,9 +43,9 @@ mkdtemp \- ¾ .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR mkdtemp (): @@ -62,7 +62,7 @@ _BSD_SOURCE .PD .RE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR mkdtemp () .\"O function generates a uniquely named temporary @@ -73,62 +73,62 @@ _BSD_SOURCE .\"O The directory is then created with .\"O permissions 0700. .BR mkdtemp () -´Ø¿ô¤Ï¡¢Â¾¤È½Å¤Ê¤é¤Ê¤¤Ì¾Á°¤Î°ì»þŪ¤Ê¥Ç¥£¥ì¥¯¥È¥ê¤ò -\fItemplate\fP ¤«¤éºîÀ®¤¹¤ë¡£ -\fItemplate\fP ¤Î¸å¤«¤é 6 ʸ»ú¤Ï XXXXXX ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ÎÉôʬ¤Ï¥Ç¥£¥ì¥¯¥È¥ê̾¤ò¾¤È½Å¤Ê¤é¤Ê¤¯¤¹¤ë¤¿¤á¤Î -ʸ»úÎó¤ÇÃÖ¤­´¹¤¨¤é¤ì¤ë¡£ -¥Ç¥£¥ì¥¯¥È¥ê¤Ïµö²Ä°À­¤ò 0700 ¤È¤·¤ÆºîÀ®¤µ¤ì¤ë¡£ +関数は、他と重ならない名前の一時的なディレクトリを +\fItemplate\fP から作成する。 +\fItemplate\fP の後から 6 文字は XXXXXX でなければならない。 +この部分はディレクトリ名を他と重ならなくするための +文字列で置き換えられる。 +ディレクトリは許可属性を 0700 として作成される。 .\"O Since it will be modified, .\"O .I template .\"O must not be a string constant, but should be declared as a character array. .I template -¤ÏÊѹ¹¤µ¤ì¤ë¤Î¤Ç¡¢Ê¸»úÎóÄê¿ô¤Ë¤·¤Æ¤Ï¤Ê¤é¤º¡¢Ê¸»úÇÛÎó¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +は変更されるので、文字列定数にしてはならず、文字配列にすべきである。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR mkdtemp () .\"O function returns a pointer to the modified template .\"O string on success, and NULL on failure, in which case .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR mkdtemp () -´Ø¿ô¤Ï -Êѹ¹¤µ¤ì¤¿ template ʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¡¢NULL ¤òÊÖ¤·¤Æ¡¢ +関数は +変更された template 文字列へのポインタを返す。 +失敗した場合は、NULL を返して、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O The last six characters of \fItemplate\fP were not XXXXXX. .\"O Now \fItemplate\fP is unchanged. -\fItemplate\fP ¤Î¸å¤í¤«¤é 6 ʸ»ú¤¬ XXXXXX ¤Ç¤Ê¤¤¡£ -¤³¤Î¾ì¹ç¡¢\fItemplate\fP ¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +\fItemplate\fP の後ろから 6 文字が XXXXXX でない。 +この場合、\fItemplate\fP は変更されない。 .PP .\"O Also see .\"O .BR mkdir (2) .\"O for other possible values for \fIerrno\fP. -\fIerrno\fP ¤ËÀßÄꤵ¤ì¤ë¾¤ÎÃͤˤĤ¤¤Æ¤Ï¡¢ +\fIerrno\fP に設定される他の値については、 .BR mkdir (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O Available since glibc 2.1.91. -OpenBSD 2.2 ¤ÇƳÆþ¤µ¤ì¤¿¡£ +OpenBSD 2.2 で導入された。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. .\"O This function is present on the BSDs. .\"O .\" As at 2006, this function is being considered for a revision of POSIX.1 .\"O .\" Also in NetBSD 1.4. -¤³¤Î´Ø¿ô¤Ï BSD ¤Ë¸ºß¤¹¤ë¡£ -.\" 2006 ǯ»þÅÀ¤Ç¤Ï¡¢¤³¤Î´Ø¿ô¤Ï POSIX.1 ¤ËÆþ¤ì¤ë¤«¸¡Æ¤Ãæ¤Ç¤¢¤ë¡£ -.\" NetBSD 1.4 ¤Ë¤â¤¢¤ë¡£ +この関数は BSD に存在する。 +.\" 2006 年時点では、この関数は POSIX.1 に入れるか検討中である。 +.\" NetBSD 1.4 にもある。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mkdir (2), .BR mkstemp (3), .BR mktemp (3), diff --git a/draft/man3/mkfifo.3 b/draft/man3/mkfifo.3 index a8fd6b2c..b39b4229 100644 --- a/draft/man3/mkfifo.3 +++ b/draft/man3/mkfifo.3 @@ -31,18 +31,18 @@ .\" Updated 1999-12-11 by Kentaro Shirakata .\" Updated 2008-07-30 by Kentaro Shirakata .\" -.\"WORD: named pipe ̾Á°ÉÕ¤­¥Ñ¥¤¥× -.\"WORD: permission µö²Ä¥â¡¼¥É -.\"WORD: filename ¥Õ¥¡¥¤¥ë̾ -.\"WORD: filename component ¥Õ¥¡¥¤¥ë̾Éôʬ -.\"WORD: directory component ¥Ç¥£¥ì¥¯¥È¥êÉôʬ +.\"WORD: named pipe 名前付きパイプ +.\"WORD: permission 許可モード +.\"WORD: filename ファイル名 +.\"WORD: filename component ファイル名部分 +.\"WORD: directory component ディレクトリ部分 .TH MKFIFO 3 2008-06-12 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mkfifo \- make a FIFO special file (a named pipe) -mkfifo \- FIFO¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë(̾Á°ÉÕ¤­¥Ñ¥¤¥×)¤òºîÀ®¤¹¤ë +mkfifo \- FIFOスペシャルファイル(名前付きパイプ)を作成する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -50,7 +50,7 @@ mkfifo \- FIFO .BI "int mkfifo(const char *" pathname ", mode_t " mode ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR mkfifo () .\"O makes a FIFO special file with name \fIpathname\fP. .\"O \fImode\fP specifies the FIFO's permissions. @@ -58,10 +58,10 @@ mkfifo \- FIFO .\"O process's \fBumask\fP in the usual way: the permissions of the created .\"O file are \fB(\fP\fImode\fP\fB & ~umask)\fP. .BR mkfifo () -¤Ï̾Á° \fIpathname\fP ¤ò»ý¤ÄFIFO¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤òºîÀ® -¤¹¤ë¡£FIFO¤Îµö²Ä¥â¡¼¥É¤Ï \fImode\fP ¤Ç»ØÄꤵ¤ì¡¢¥×¥í¥»¥¹¤Î -\fBumask\fP ¤Ë¤è¤Ã¤ÆÄ̾ï¤ÎÊý¼°¤ÇÊѹ¹¤ò¼õ¤±¤ë: ºîÀ®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Îµö²Ä -¥â¡¼¥É¤Ï \fB(\fP\fImode\fP\fB & ~umask)\fP ¤È¤Ê¤ë¡£ +は名前 \fIpathname\fP を持つFIFOスペシャルファイルを作成 +する。FIFOの許可モードは \fImode\fP で指定され、プロセスの +\fBumask\fP によって通常の方式で変更を受ける: 作成されたファイルの許可 +モードは \fB(\fP\fImode\fP\fB & ~umask)\fP となる。 .PP .\"O A FIFO special file is similar to a pipe, except that it is created .\"O in a different way. @@ -69,10 +69,10 @@ mkfifo \- FIFO .\"O channel, a FIFO special file is entered into the file system by .\"O calling .\"O .BR mkfifo (). -FIFO¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤Ï¥Ñ¥¤¥×¤Ë»÷¤Æ¤¤¤ë¤¬¡¢ºîÀ®¤Î¤µ¤ìÊý¤Î¤ß¤¬°Û¤Ê¤Ã¤Æ -¤¤¤ë¡£FIFO¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤Ï̾Á°¤Î¤Ê¤¤ÄÌ¿®Ï©¤Ç¤Ï¤Ê¤¯¡¢ +FIFOスペシャルファイルはパイプに似ているが、作成のされ方のみが異なって +いる。FIFOスペシャルファイルは名前のない通信路ではなく、 .BR mkfifo () -¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÃæ¤Ë²Ã¤¨¤é¤ì¤ë¡£ +の呼び出しによりファイルシステムの中に加えられる。 .PP .\"O Once you have created a FIFO special file in this way, any process can .\"O open it for reading or writing, in the same way as an ordinary file. @@ -83,43 +83,43 @@ FIFO .\"O See .\"O .BR fifo (7) .\"O for nonblocking handling of FIFO special files. -¤Ò¤È¤¿¤Ó¤³¤Î¤è¤¦¤Ë¤·¤ÆFIFO¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤ë¤È¡¢Ä̾ï¤Î¥Õ¥¡ -¥¤¥ë¤ÈƱ¤¸¤è¤¦¤Ë¡¢¤É¤Î¥×¥í¥»¥¹¤«¤é¤Ç¤âÆɤ߽Ф·¡¢½ñ¤­¹þ¤ßÍѤˤ³¤ì¤ò¥ª¡¼ -¥×¥ó¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤¿¤À¤·¡¢¤³¤ì¤ËÂФ¹¤ëÁ´¤Æ¤ÎÆþ½ÐÎÏÁàºî¤ËÀèΩ¤Ã¤Æ -¤½¤Îξü¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£FIFO¤òÆɤ߽Ф·ÍѤ˥ª¡¼¥×¥ó¤¹¤ë -¤È¡¢Ä̾ï¾¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤ÆƱ¤¸FIFO¤¬½ñ¤­¹þ¤ßÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤ë¤Þ¤Ç¥Ö -¥í¥Ã¥¯¤µ¤ì¡¢µÕ¤Î¾ì¹ç¤âƱÍͤǤ¢¤ë¡£ -FIFO¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤ò¥Ö¥í¥Ã¥¯¤»¤º¤Ë°·¤¦ÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï +ひとたびこのようにしてFIFOスペシャルファイルが作成されると、通常のファ +イルと同じように、どのプロセスからでも読み出し、書き込み用にこれをオー +プンすることができる。ただし、これに対する全ての入出力操作に先立って +その両端がオープンされている必要がある。FIFOを読み出し用にオープンする +と、通常他のプロセスによって同じFIFOが書き込み用にオープンされるまでブ +ロックされ、逆の場合も同様である。 +FIFOスペシャルファイルをブロックせずに扱う方法については .BR fifo (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success .\"O .BR mkfifo () .\"O returns 0. .\"O In the case of an error, \-1 is returned (in which case, \fIerrno\fP .\"O is set appropriately). -À®¸ù¤·¤¿¾ì¹ç +成功した場合 .BR mkfifo () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤¹ (¤Þ¤¿ \fIerrno\fP ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë)¡£ +は 0 を返す。 +エラーの場合 \-1 を返す (また \fIerrno\fP が適切に設定される)。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O One of the directories in \fIpathname\fP did not allow search .\"O (execute) permission. -\fIpathname\fP ¤ÎÃæ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î°ì¤Ä¤ËÂФ·¸¡º÷(¼Â¹Ô)µö²Ä¤¬¤Ê¤¤¡£ +\fIpathname\fP の中のディレクトリの一つに対し検索(実行)許可がない。 .TP .B EEXIST .\"O \fIpathname\fP already exists. .\"O This includes the case where .\"O .I pathname .\"O is a symbolic link, dangling or not. -\fIpathname\fP ¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¡£ -¤³¤ì¤Ë¤Ï¡¢ +\fIpathname\fP がすでに存在する。 +これには、 .I pathname -¤¬(¥ê¥ó¥¯Àڤ줫¤É¤¦¤«¤Ë´Ø¤ï¤é¤º)¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¤¢¤ë¾ì¹ç¤â´Þ¤à¡£ +が(リンク切れかどうかに関わらず)シンボリックリンクである場合も含む。 .TP .B ENAMETOOLONG .\"O Either the total length of \fIpathname\fP is greater than @@ -128,35 +128,35 @@ FIFO .\"O In the GNU system, there is no imposed .\"O limit on overall filename length, but some file systems may place .\"O limits on the length of a component. -\fIpathname\fP ¤ÎŤµ¤¬ \fBPATH_MAX\fP ¤òĶ¤¨¤Æ¤¤¤ë¤«¡¢¸Ä¡¹¤Î¥Õ¥¡¥¤¥ë -̾Éôʬ¤ÎŤµ¤¬ \fBNAME_MAX\fP ¤òĶ¤¨¤Æ¤¤¤ë¡£GNU¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¤Ï¡¢¥Õ¥¡ -¥¤¥ë̾¤ÎÁ´ÂΤÎŤµ¤ËÂФ·¤Æ¤ÏÀ©¸Â¤Ï²Ý¤»¤é¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -¤Ë¤è¤Ã¤Æ¤Ï³ÆÉôʬ¤ÎŤµ¤ËÀ©¸Â¤Î¤¢¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +\fIpathname\fP の長さが \fBPATH_MAX\fP を超えているか、個々のファイル +名部分の長さが \fBNAME_MAX\fP を超えている。GNUシステムにおいては、ファ +イル名の全体の長さに対しては制限は課せられていないが、ファイルシステム +によっては各部分の長さに制限のある可能性がある。 .TP .B ENOENT .\"O A directory component in \fIpathname\fP does not exist or is a .\"O dangling symbolic link. -\fIpathname\fP ¤ÎÃæ¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢¥ê¥ó¥¯Àè¤Î¤Ê¤¤¥· -¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¤¢¤ë¡£ +\fIpathname\fP の中のディレクトリ部分が存在しないか、リンク先のないシ +ンボリックリンクである。 .TP .B ENOSPC .\"O The directory or file system has no room for the new file. -¥Ç¥£¥ì¥¯¥È¥ê¤Þ¤¿¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¿·µ¬¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë;ÃϤ¬¤Ê¤¤¡£ +ディレクトリまたはファイルシステムに新規ファイルを作成する余地がない。 .TP .B ENOTDIR .\"O A component used as a directory in \fIpathname\fP is not, in fact, a .\"O directory. -\fIpathname\fP Ãæ¤Ç¥Ç¥£¥ì¥¯¥È¥ê¤È¤·¤Æ»ÈÍѤµ¤ì¤Æ¤¤¤ëÉôʬ¤¬¼ÂºÝ¤Ë¤Ï¥Ç¥£ -¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£ +\fIpathname\fP 中でディレクトリとして使用されている部分が実際にはディ +レクトリではない。 .TP .B EROFS .\"O \fIpathname\fP refers to a read-only file system. -\fIpathname\fP ¤¬Æɤ߼è¤êÀìÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¤ò»Ø¤·¤Æ¤¤¤ë¡£ +\fIpathname\fP が読み取り専用のファイルシステムを指している。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mkfifo (1), .BR close (2), .BR open (2), diff --git a/draft/man3/mkfifoat.3 b/draft/man3/mkfifoat.3 index b1a58158..0551eb77 100644 --- a/draft/man3/mkfifoat.3 +++ b/draft/man3/mkfifoat.3 @@ -28,14 +28,14 @@ .\" .TH MKFIFOAT 3 2009-12-13 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mkfifoat \- make a FIFO (named pipe) relative to a directory file descriptor -mkfifoat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤é¤ÎÁêÂаÌÃÖ¤Ë FIFO (̾Á°ÉÕ¤­¥Ñ¥¤¥×) ¤òºî¤ë +mkfifoat \- ディレクトリファイルディスクリプタからの相対位置に FIFO (名前付きパイプ) を作る .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .B #include /* Definition of AT_* constants */ -.B #include /* AT_* Äê¿ô¤ÎÄêµÁ */ +.B #include /* AT_* 定数の定義 */ .B #include .sp .BI "int mkfifoat(int " dirfd ", const char *" pathname ", mode_t " mode ); @@ -44,9 +44,9 @@ mkfifoat \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR mkfifoat (): @@ -56,26 +56,26 @@ glibc .TP 4 .\"O Since glibc 2.10: .\"O _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR mkfifoat () .\"O system call operates in exactly the same way as .\"O .BR mkfifo (3), .\"O except for the differences described in this manual page. .BR mkfifoat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë°ã¤¤¤¬¤¢¤ë°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明している違いがある以外は、 .BR mkfifo (3) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .\"O If the pathname given in .\"O .I pathname @@ -87,13 +87,13 @@ _ATFILE_SOURCE .\"O .BR mkfifo (3) .\"O for a relative pathname). .I pathname -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹Ì¾¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パス名である場合、 +ファイルディスクリプタ .I dirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( mkfifo (3) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスの +カレントワーキングディレクトリからの相対パスとなる)。 .\"O If .\"O .I pathname @@ -107,16 +107,16 @@ _ATFILE_SOURCE .\"O directory of the calling process (like .\"O .BR mkfifo (3)). .I pathname -¤¬ÁêÂХѥ¹¤Ç¤¢¤ê¡¢¤«¤Ä +が相対パスであり、かつ .I dirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I pathname -¤Ï +は .RB ( mkfifo (3) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .\"O If .\"O .I pathname @@ -124,43 +124,43 @@ _ATFILE_SOURCE .\"O .I dirfd .\"O is ignored. .I pathname -¤¬ÀäÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ +が絶対パスである場合、 .I dirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR mkfifoat () .\"O returns 0. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR mkfifoat () -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .\"O On error, \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +エラーの場合、\-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ +にはエラーを示す値が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O The same errors that occur for .\"O .BR mkfifo (3) .\"O can also occur for .\"O .BR mkfifoat (). .BR mkfifo (3) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR mkfifoat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .\"O The following additional errors can occur for .\"O .BR mkfifoat (): .BR mkfifoat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .\"O .I dirfd .\"O is not a valid file descriptor. .I dirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B ENOTDIR .\"O .I pathname @@ -168,37 +168,37 @@ _ATFILE_SOURCE .\"O .I dirfd .\"O is a file descriptor referring to a file other than a directory. .I pathname -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I dirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR mkfifoat () .\"O was added to glibc in version 2.4. .BR mkfifoat () -¤Ï glibc ¤Î¥Ð¡¼¥¸¥ç¥ó 2.4 ¤ÇÄɲ䵤줿¡£ +は glibc のバージョン 2.4 で追加された。 .\"O It is implemented using .\"O .BR mknod (2), .\"O available on Linux since kernel 2.6.16. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ -¥«¡¼¥Í¥ë 2.6.16 °Ê¹ß¤Î Linux ¤ÇÍøÍѤǤ­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿ +このシステムコールは、 +カーネル 2.6.16 以降の Linux で利用できるようになった .BR mknod (2) -¤ò»È¤Ã¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +を使って実装されている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O See .\"O .BR openat (2) .\"O for an explanation of the need for .\"O .BR mkfifoat (). .BR mkfifoat () -¤¬É¬ÍפÊÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が必要な理由については、 .BR openat (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR openat (2), .BR mkfifo (3), .BR path_resolution (7) diff --git a/draft/man3/mkstemp.3 b/draft/man3/mkstemp.3 index 872410f5..0b449b6f 100644 --- a/draft/man3/mkstemp.3 +++ b/draft/man3/mkstemp.3 @@ -41,17 +41,17 @@ .\" Updated 2005-02-26, Akihiro MOTOKI .\" Updated 2008-08-10, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: temporary file °ì»þ¥Õ¥¡¥¤¥ë -.\"WORD: read/write ¥ê¡¼¥É¡¿¥é¥¤¥È -.\"WORD: permissions µö²Ä +.\"WORD: temporary file 一時ファイル +.\"WORD: read/write リード/ライト +.\"WORD: permissions 許可 .\" .TH MKSTEMP 3 2008-06-19 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mkstemp, mkostemp \- create a unique temporary file -mkstemp, mkostemp \- ¾¤È½Å¤Ê¤é¤Ê¤¤Ì¾Á°¤ò»ý¤Ä°ì»þ¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë +mkstemp, mkostemp \- 他と重ならない名前を持つ一時ファイルを作成する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -63,9 +63,9 @@ mkstemp, mkostemp \- ¾ .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR mkstemp (): @@ -74,35 +74,35 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 .BR mkostemp (): _GNU_SOURCE \"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR mkstemp () .\"O function generates a unique temporary filename from .\"O .IR template , .\"O creates and opens the file, .\"O and returns an open file descriptor for the file. -´Ø¿ô +関数 .BR mkstemp () -¤Ï°ú¿ô +は引数 .I template -¤«¤é¾¤È½Å¤Ê¤é¤Ê¤¤°ì»þ¥Õ¥¡¥¤¥ë̾¤òÀ¸À®¤·¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¤ÎºîÀ®¤È¥ª¡¼¥×¥ó¤ò¹Ô¤¤¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥ª¡¼¥×¥óºÑ¤ß¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ +から他と重ならない一時ファイル名を生成し、 +そのファイルの作成とオープンを行い、 +そのファイルに対するオープン済みのファイルディスクリプタを返す。 .\"O The last six characters of .\"O .I template .\"O must be "XXXXXX" and these are replaced with a string that makes the .\"O filename unique. -°ú¿ô +引数 .I template -¤Ç»Ø¼¨¤¹¤ëʸ»úÎó¤Î¸å¤í¤Î 6 ʸ»ú¤Ï XXXXXX ¤Ç¤¢¤ëɬÍפ¬¤¢¤ë¡£ -¤³¤ÎÉôʬ¤¬¥Õ¥¡¥¤¥ë̾¤ò¾¤È½Å¤Ê¤é¤Ê¤¤¤è¤¦¤Ë¤¹¤ëʸ»ú¤ÇÃÖ¤­´¹¤¨¤é¤ì¤ë¡£ +で指示する文字列の後ろの 6 文字は XXXXXX である必要がある。 +この部分がファイル名を他と重ならないようにする文字で置き換えられる。 .\"O Since it will be modified, .\"O .I template .\"O must not be a string constant, but should be declared as a character array. .I template -¤Ï½ñ¤­´¹¤¨¤é¤ì¤ë¤¿¤á¡¢Ê¸»úÎóÄê¿ô¤Ç¤Ï¤Ê¤¯Ê¸»úÇÛÎó¤È¤·¤Æ -Àë¸À¤¹¤ë¤è¤¦¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は書き換えられるため、文字列定数ではなく文字配列として +宣言するようにしなければならない。 .\"O The file is created with .\"O permissions 0600, that is, read plus write for owner only. @@ -113,17 +113,17 @@ _GNU_SOURCE .\"O .BR open (2) .\"O .B O_EXCL .\"O flag, guaranteeing that the caller is the process that creates the file. -¥Õ¥¡¥¤¥ë¤Ïµö²Ä¥â¡¼¥É 0600 ¤ÇºîÀ®¤µ¤ì¡¢½êÍ­¼Ô¤Î¤ß¤¬Æɤ߽ñ¤­²Äǽ¤Ç¤¢¤ë -(glibc ¥Ð¡¼¥¸¥ç¥ó 2.06 °ÊÁ°¤Ç¤Ï¡¢¥Õ¥¡¥¤¥ë¤Ïµö²Ä¥â¡¼¥É 0666 ¤ÇºîÀ®¤µ¤ì¡¢ -Á´¤Æ¤Î¥æ¡¼¥¶¤¬Æɤ߽ñ¤­²Äǽ¤Ç¤¢¤Ã¤¿)¡£ -ÊÖ¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ø¤ÎÆɤ߽ñ¤­Î¾Êý¤Î¥¢¥¯¥»¥¹¤¬ -²Äǽ¤Ç¤¢¤ë¡£ -¸Æ¤Ó½Ð¤·¼Ô¤¬¤½¤Î¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¥×¥í¥»¥¹¤Ç¤¢¤ë¤³¤È¤òÊݾڤ¹¤ë¤¿¤á¤Ë¡¢ -¥Õ¥¡¥¤¥ë¤Ï +ファイルは許可モード 0600 で作成され、所有者のみが読み書き可能である +(glibc バージョン 2.06 以前では、ファイルは許可モード 0666 で作成され、 +全てのユーザが読み書き可能であった)。 +返されるファイルディスクリプタで、このファイルへの読み書き両方のアクセスが +可能である。 +呼び出し者がそのファイルを作成するプロセスであることを保証するために、 +ファイルは .BR open (2) -¤Î +の .B O_EXCL -¥Õ¥é¥°ÉÕ¤­¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£ +フラグ付きでオープンされる。 .\"O .BR mkostemp () .\"O is like @@ -136,70 +136,70 @@ _GNU_SOURCE .\"O .BR O_APPEND , .\"O .BR O_SYNC ). .BR mkostemp () -¤Ï +は .BR mkstemp () -¤ÈƱÍͤÀ¤¬¡¢ +と同様だが、 .BR open (2) -¤ËÅϤµ¤ì¤ë¥Õ¥é¥° +に渡されるフラグ .RB O_APPEND , .B O_SYNC -¤Ê¤É) ¤ò +など) を .I flags -¤Ç»ØÄê¤Ç¤­¤ëÅÀ¤¬°Û¤Ê¤ë +で指定できる点が異なる .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the file descriptor .\"O of the temporary file. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï°ì»þ¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢\-1 ¤òÊÖ¤·¡¢ +成功すると、これらの関数は一時ファイルのファイルディスクリプタを返す。 +エラーの場合は、\-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EEXIST .\"O Could not create a unique temporary filename. .\"O Now the contents of \fItemplate\fP are undefined. -¤¹¤Ç¤ËƱ¤¸Ì¾Á°¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤¿¡£ -\fItemplate\fP ¤ÎÆâÍƤÏÉÔÄê¤Ç¤¢¤ë¡£ +すでに同じ名前を持つファイルが存在した。 +\fItemplate\fP の内容は不定である。 .TP .B EINVAL .\"O The last six characters of \fItemplate\fP were not XXXXXX. .\"O Now \fItemplate\fP is unchanged. -°ú¿ô \fItemplate\fP ¤Ç»Ø¼¨¤µ¤ì¤¿Ê¸»úÇÛÎó¤Î¸å¤í¤Î 6 ʸ»ú¤¬ XXXXXX ¤Ç¤Ê¤¤¡£ -\fItemplate\fP ¤ÎÆâÍƤÏÊѲ½¤·¤Ê¤¤¡£ +引数 \fItemplate\fP で指示された文字配列の後ろの 6 文字が XXXXXX でない。 +\fItemplate\fP の内容は変化しない。 .PP .\"O These functions may also fail with any of the errors described for .\"O .BR open (2). -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .BR open (2) -¤Ë½ñ¤«¤ï¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Î¤¤¤º¤ì¤«¤Ç¼ºÇÔ¤¹¤ë¤³¤È¤â¤¢¤ë¡£ +に書かわれているエラーのいずれかで失敗することもある。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR mkostemp () .\"O is available since glibc 2.7. .BR mkostemp () -¤Ï glibc 2.7 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +は glibc 2.7 以降で利用可能である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .BR mkstemp (): 4.3BSD, POSIX.1-2001. .BR mkostemp (): .\"O is a glibc extension. -glibc ¤Ë¤è¤ë³ÈÄ¥¡£ +glibc による拡張。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The old behavior of creating a file with mode 0666 may be .\"O a security risk, especially since other Unix flavors use 0600, .\"O and somebody might overlook this detail when porting programs. -µö²Ä¥â¡¼¥É 0666 ¤Ç¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¤È¤¤¤¦¸Å¤¤Æ°ºî¤Ï¡¢ -¥»¥­¥å¥ê¥Æ¥£¾å¤Î¥ê¥¹¥¯¤Ë¤Ê¤ë¾ì¹ç¤¬¤¢¤ë¡£ -Æä˾¤Î Unix ¤Ç¤Ïµö²Ä¥â¡¼¥É¤È¤·¤Æ 0600 ¤ò»È¤¦¤¿¤á¡¢ -¥×¥í¥°¥é¥à¤ò°Ü¿¢¤¹¤ëºÝ¡¢¤³¤ÎºÙ¤«¤Ê°ã¤¤¤ò¸«Íî¤È¤¹²ÄǽÀ­¤¬ -¤¢¤ë¤«¤é¤À¡£ +許可モード 0666 でファイルを作成するという古い動作は、 +セキュリティ上のリスクになる場合がある。 +特に他の Unix では許可モードとして 0600 を使うため、 +プログラムを移植する際、この細かな違いを見落とす可能性が +あるからだ。 .\"O More generally, the POSIX specification of .\"O .BR mkstemp () @@ -211,16 +211,16 @@ glibc .\"O .BR mkstemp () .\"O (and .\"O .BR mkostemp ()). -¤è¤ê°ìÈÌŪ¤Ë¤Ï¡¢ +より一般的には、 .BR mkstemp () -¤Î POSIX µ¬Äê¤Ç¤Ï¥Õ¥¡¥¤¥ë¥â¡¼¥É¤Ë¤Ä¤¤¤Æ²¿¤â½Ò¤Ù¤Æ¤¤¤Ê¤¤¡£ -½¾¤Ã¤Æ¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï +の POSIX 規定ではファイルモードについて何も述べていない。 +従って、アプリケーションは .BR mkstemp () -(¤ä +(や .BR mkostemp ()) -¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¥Õ¥¡¥¤¥ë¥â¡¼¥ÉÀ¸À®¥Þ¥¹¥¯ +を呼び出す前にファイルモード生成マスク .RB ( umask (2) -»²¾È) ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¤«³Îǧ¤¹¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +参照) が適切に設定されているか確認するべきである。 .\"O The prototype for .\"O .BR mktemp () @@ -229,13 +229,13 @@ glibc .\"O for libc4, libc5, glibc1; glibc2 follows POSIX.1 and has the prototype in .\"O .IR . .BR mktemp () -¤Î¥×¥í¥È¥¿¥¤¥×Àë¸À¤Ï¡¢libc4, libc5, glibc1 ¤Ç¤Ï +のプロトタイプ宣言は、libc4, libc5, glibc1 では .I -¤Ë´Þ¤Þ¤ì¤ë; glibc2 ¤Ç¤Ï POSIX.1 ¤Ë½àµò¤· +に含まれる; glibc2 では POSIX.1 に準拠し .I -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +に含まれている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mkdtemp (3), .BR mktemp (3), .BR tempnam (3), diff --git a/draft/man3/mktemp.3 b/draft/man3/mktemp.3 index beb09e13..c9c72635 100644 --- a/draft/man3/mktemp.3 +++ b/draft/man3/mktemp.3 @@ -34,18 +34,18 @@ .\" Translated Sat Apr 10 02:12:40 JST 1999 .\" by Kazuyuki Tanisako .\" -.\"WORD: temporary file ¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë -.\"WORD: filename ¥Õ¥¡¥¤¥ë̾ -.\"WORD: pointer ¥Ý¥¤¥ó¥¿¡¼ -.\"WORD: function ´Ø¿ô +.\"WORD: temporary file テンポラリファイル +.\"WORD: filename ファイル名 +.\"WORD: pointer ポインター +.\"WORD: function 関数 .\" .TH MKTEMP 3 2010-09-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mktemp \- make a unique temporary filename -mktemp \- ¾¤È½Å¤Ê¤é¤Ê¤¤¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë̾¤òºîÀ®¤¹¤ë +mktemp \- 他と重ならないテンポラリファイル名を作成する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -55,9 +55,9 @@ mktemp \- ¾ .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR mktemp (): @@ -66,21 +66,21 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.12: -glibc 2.12 °Ê¹ß: +glibc 2.12 以降: _BSD_SOURCE || _SVID_SOURCE || (_XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED) && !(_POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600) .TP .\"O Before glibc 2.12: -glibc 2.12 ¤è¤êÁ°: +glibc 2.12 より前: _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .RE .PD .ad b \"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR mktemp () .\"O function generates a unique temporary filename @@ -91,17 +91,17 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O Since it will be modified, .\"O .I template .\"O must not be a string constant, but should be declared as a character array. -´Ø¿ô +関数 .BR mktemp () -¤Ï°ú¿ô \fItemplate\fP ¤«¤é¾¤È½Å¤Ê¤é¤Ê¤¤ -¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë̾¤òºîÀ®¤¹¤ë¡£°ú¿ô \fItemplate\fP ¤Ç»Ø¼¨¤¹¤ëʸ»úÇÛÎó -¤Î¸å6ʸ»ú¤Ï XXXXXX ¤Ç¤¢¤ëɬÍפ¬¤¢¤ë¡£¤³¤ÎÉôʬ¤¬¥Õ¥¡¥¤¥ë̾¤ò¾¤È -½Å¤Ê¤é¤Ê¤¤¤Ë¤¹¤ë¤è¤¦¤Êʸ»ú¤ÇÃÖ¤­´¹¤¨¤é¤ì¤ë¡£ +は引数 \fItemplate\fP から他と重ならない +テンポラリファイル名を作成する。引数 \fItemplate\fP で指示する文字配列 +の後6文字は XXXXXX である必要がある。この部分がファイル名を他と +重ならないにするような文字で置き換えられる。 .I template -¤Ï½ñ¤­´¹¤¨¤é¤ì¤ë¤¿¤á¡¢Ê¸»úÎóÄê¿ô¤Ç¤Ï¤Ê¤¯Ê¸»úÇÛÎó¤È¤·¤ÆÀë¸À¤¹¤ë¤è¤¦¤Ë -¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は書き換えられるため、文字列定数ではなく文字配列として宣言するように +しなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR mktemp () .\"O function always returns \fItemplate\fP. @@ -110,51 +110,51 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O (i.e., does not exist already) .\"O If a unique name could not be created, .\"O \fItemplate\fP is made an empty string. -´Ø¿ô +関数 .BR mktemp () -¤Ï¾ï¤Ë \fItemplate\fP ¤òÌ᤹¡£ -°ì°Õ¤Ê̾Á°¤¬ºîÀ®¤µ¤ì¤¿¾ì¹ç¡¢ -\fItemplate\fP ¤ÎºÇ¸å¤Î 6 ¥Ð¥¤¥È¤Ë -¾¤È½Å¤Ê¤é¤Ê¤¤Ì¾Á° (¤½¤ì¤Þ¤Ç¤Ë½Ð¤Æ¤¤¤Ê¤¤Ì¾Á°) ¤Ë¤Ê¤ë¤è¤¦¤ÊÃͤ¬³ÊǼ¤µ¤ì¤ë¡£ -°ì°Õ¤Ê̾Á°¤¬ºîÀ®¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ -\fItemplate\fP ¤Ë¤Ï¶õʸ»úÎ󤬥»¥Ã¥È¤µ¤ì¤ë¡£ +は常に \fItemplate\fP を戻す。 +一意な名前が作成された場合、 +\fItemplate\fP の最後の 6 バイトに +他と重ならない名前 (それまでに出ていない名前) になるような値が格納される。 +一意な名前が作成できなかった場合には、 +\fItemplate\fP には空文字列がセットされる。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O The last six characters of \fItemplate\fP were not XXXXXX. -°ú¿ô \fItemplate\fP ¤Ç»Ø¼¨¤µ¤ì¤¿Ê¸»úÎó¤Î¸å6ʸ»ú¤¬ XXXXXX ¤Ç¤Ê¤¤¡£ +引数 \fItemplate\fP で指示された文字列の後6文字が XXXXXX でない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.3BSD, POSIX.1-2001. .\"O POSIX.1-2008 removes the specification of .\"O .BR mktemp (). -POSIX.1-2008 ¤Ç¤Ï +POSIX.1-2008 では .BR mktemp () -¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ +の仕様が削除されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The prototype is in .\"O .I .\"O for libc4, libc5, glibc1; glibc2 follows the Single UNIX Specification .\"O and has the prototype in .\"O .IR . -libc4, libc5, glibc1 ¤Ç¤Î¥×¥í¥È¥¿¥¤¥×Àë¸À¤Ï +libc4, libc5, glibc1 でのプロトタイプ宣言は .I -¤Ë´Þ¤Þ¤ì¤ë; glibc2 ¤Ç¤Ï Single UNIX Specification ¤Ë½¾¤Ã¤Æ +に含まれる; glibc2 では Single UNIX Specification に従って .I -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +に含まれている。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Never use .\"O .BR mktemp (). .\"O Some implementations follow 4.3BSD .\"O and replace XXXXXX by the current process ID and a single letter, .\"O so that at most 26 different names can be returned. .BR mktemp () -¤ò·è¤·¤Æ»È¤ï¤Ê¤¤¤³¤È¡£4.3BSD ·Ï¤Î¼ÂÁõ¤ä XXXXXX ¤ò -¥×¥í¥»¥¹ ID ¤È1ʸ»ú¤Ë¤è¤êÃÖ¤­´¹¤¨¤ëÊý¼°¤Ç¤Ï¤»¤¤¤¼¤¤26¤Î̾Á°¤òÊÖ¤¹ -¤³¤È¤¬¤Ç¤­¤ë¤Ë¤¹¤®¤Ê¤¤¡£ +を決して使わないこと。4.3BSD 系の実装や XXXXXX を +プロセス ID と1文字により置き換える方式ではせいぜい26の名前を返す +ことができるにすぎない。 .\"O Since on the one hand the names are easy to guess, and on the other .\"O hand there is a race between testing whether the name exists and .\"O opening the file, every use of @@ -162,15 +162,15 @@ libc4, libc5, glibc1 .\"O is a security risk. .\"O The race is avoided by .\"O .BR mkstemp (3). -¤³¤Î̾Á°¤Ï´Êñ¤Ë¿ä¬¤Ç¤­¤ë¤³¤È¤ä¡¢¤½¤Î̾Á°¤¬¤¹¤Ç¤Ë¸ºß¤·¤Æ¤¤¤ë¤«¤É¤¦¤« -¥Æ¥¹¥È¤·¤Æ¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë´Ö¤Ë¶¥¹ç¤¬¤¢¤ë»ö¤«¤é¡¢ +この名前は簡単に推測できることや、その名前がすでに存在しているかどうか +テストして、そのファイルをオープンする間に競合がある事から、 .BR mktemp () -¤ò»È¤¦¤Î¤ÏËè²ó¥»¥­¥å¥ê¥Æ¥£¥ê¥¹¥¯¤ò¤ª¤«¤¹¤³¤È¤Ë¤Ê¤ë¡£ -¤³¤Î¶¥¹ç¤Ï +を使うのは毎回セキュリティリスクをおかすことになる。 +この競合は .BR mkstemp (3) -¤ò»È¤¦¤³¤È¤ÇÈò¤±¤é¤ì¤ë¡£ +を使うことで避けられる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mkstemp (3), .BR tempnam (3), .BR tmpfile (3), diff --git a/draft/man3/modf.3 b/draft/man3/modf.3 index f667fdc9..a3f4f9ac 100644 --- a/draft/man3/modf.3 +++ b/draft/man3/modf.3 @@ -36,11 +36,11 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH MODF 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 .\"O modf, modff, modfl \- extract signed integral and fractional values from .\"O floating-point number -modf, modff, modfl \- ÉâÆ°¾®¿ôÅÀ¼Â¿ô¤«¤é¡¢Éä¹æÉÕ¤­À°¿ô¤È¾®¿ôÉôʬ¤ò¼è¤ê½Ð¤¹´Ø¿ô -.SH ½ñ¼° +modf, modff, modfl \- 浮動小数点実数から、符号付き整数と小数部分を取り出す関数 +.SH 書式 .nf .B #include .sp @@ -51,14 +51,14 @@ modf, modff, modfl \- .BI "long double modfl(long double " x ", long double *" iptr ); .fi .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -73,23 +73,23 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR modf () .\"O function breaks the argument \fIx\fP into an integral .\"O part and a fractional part, each of which has the same sign as \fIx\fP. .\"O The integral part is stored in the location pointed to by \fIiptr\fP. .BR modf () -´Ø¿ô¤Ï¡¢°ú¿ô \fIx\fP ¤òÀ°¿ôÉôʬ¤È¾®¿ôÉôʬ¤Ëʬ³ä¤¹¤ë¡£ -¤³¤Î¤È¤­¡¢¤Õ¤¿¤Ä¤ÎÃͤϤȤâ¤Ë \fIx\fP ¤ÈƱ¤¸Éä¹æ¤ò»ý¤Ä¡£ -À°¿ôÉôʬ¤Ï \fIiptr\fP ¤¬»Ø¤¹¾ì½ê¤Ë³ÊǼ¤µ¤ì¤ë¡£ +関数は、引数 \fIx\fP を整数部分と小数部分に分割する。 +このとき、ふたつの値はともに \fIx\fP と同じ符号を持つ。 +整数部分は \fIiptr\fP が指す場所に格納される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR modf () .\"O function returns the fractional part of \fIx\fP. .BR modf () -´Ø¿ô¤Ï \fIx\fP ¤Î¾®¿ôÉôʬ¤òÊÖ¤¹¡£ +関数は \fIx\fP の小数部分を返す。 .\"O If .\"O .I x @@ -97,9 +97,9 @@ or .\"O .IR *iptr .\"O is set to a NaN. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¡¢ +が NaN の場合、NaN が返され、 .IR *iptr -¤Ë NaN ¤¬ÀßÄꤵ¤ì¤ë¡£ +に NaN が設定される。 .\"O If .\"O .I x @@ -107,24 +107,24 @@ or .\"O .IR *iptr .\"O is set to positive infinity (negative infinity). .I x -¤¬Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤Î¾ì¹ç¡¢ -+0 (\-0) ¤¬ÊÖ¤µ¤ì¡¢ +が正の無限大 (負の無限大) の場合、 ++0 (\-0) が返され、 .IR *iptr -¤ËÀµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤¬ÀßÄꤵ¤ì¤ë¡£ +に正の無限大 (負の無限大) が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O No errors occur. -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ +エラーは発生しない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD, C89. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR frexp (3), .BR ldexp (3) diff --git a/draft/man3/mpool.3 b/draft/man3/mpool.3 index 510b0900..85815bd2 100644 --- a/draft/man3/mpool.3 +++ b/draft/man3/mpool.3 @@ -37,13 +37,13 @@ .\" by Shouichi Saito .\" Proofed Tue Aug 19 1999 by NAKANO Takeo .\" -.\"WORD: descriptor ¥Ç¥¹¥¯¥ê¥×¥¿ +.\"WORD: descriptor デスクリプタ .TH MPOOL 3 1993-06-04 "" "Linux Programmer's Manual" .UC 7 -.SH ̾Á° +.SH 名前 .\"O mpool \- shared memory buffer pool -mpool \- ¶¦Í­¥á¥â¥ê¥Ð¥Ã¥Õ¥¡¥×¡¼¥ë -.SH ½ñ¼° +mpool \- 共有メモリバッファプール +.SH 書式 .nf .B #include .B #include @@ -65,21 +65,21 @@ mpool \- .sp .BI "int mpool_close(MPOOL *" mp ); .fi -.SH ÀâÌÀ +.SH 説明 .\"O .I Mpool .\"O is the library interface intended to provide page oriented buffer management .\"O of files. .\"O The buffers may be shared between processes. .I mpool -¤Ï¡¢¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥Ú¡¼¥¸»Ø¸þ¤Î¥Ð¥Ã¥Õ¥¡´ÉÍý¤ò¼ÂÁõ¤·¤¿ -¥é¥¤¥Ö¥é¥ê¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ç¤¢¤ë¡£ +は、ファイルに対するページ指向のバッファ管理を実装した +ライブラリインターフェイスである。 .PP .\"O The function .\"O .BR mpool_open () .\"O initializes a memory pool. -´Ø¿ô +関数 .BR mpool_open () -¤Ï¥á¥â¥ê¥×¡¼¥ë¤ò½é´ü²½¤¹¤ë¡£ +はメモリプールを初期化する。 .\"O The .\"O .I key .\"O argument is the byte string used to negotiate between multiple @@ -87,104 +87,104 @@ mpool \- .\"O If the file buffers are mapped in shared memory, all processes using .\"O the same key will share the buffers. .I key -°ú¿ô¤Ï¥Ð¥¤¥Èʸ»úÎó¤Ç¤¢¤ê¡¢¥Ð¥Ã¥Õ¥¡¤ò¶¦Í­¤·¤¿¤¤Ê£¿ô¥×¥í¥»¥¹´Ö -¤Ç¤Î¥Í¥´¥·¥¨¡¼¥·¥ç¥ó¤Ë»È¤ï¤ì¤ë¡£ -¥Õ¥¡¥¤¥ë¥Ð¥Ã¥Õ¥¡¤¬¶¦Í­¥á¥â¥ê¤Ë¥Þ¥Ã¥×¤µ¤ì¤ë¤È¡¢ -Ʊ¤¸¥­¡¼¤ò»È¤¦¥×¥í¥»¥¹¤ÏÁ´¤Æ¥Ð¥Ã¥Õ¥¡¤ò¶¦Í­¤¹¤ë¡£ +引数はバイト文字列であり、バッファを共有したい複数プロセス間 +でのネゴシエーションに使われる。 +ファイルバッファが共有メモリにマップされると、 +同じキーを使うプロセスは全てバッファを共有する。 .\"O If .\"O .I key .\"O is NULL, the buffers are mapped into private memory. .I key -¤¬ NULL ¤À¤È¡¢¥Ð¥Ã¥Õ¥¡¤Ï¥×¥é¥¤¥Ù¡¼¥È¤Ê¥á¥â¥ê¤Ë³ä¤êÉÕ¤±¤é¤ì¤ë¡£ +が NULL だと、バッファはプライベートなメモリに割り付けられる。 .\"O The .\"O .I fd .\"O argument is a file descriptor for the underlying file, which must be seekable. .I fd -°ú¿ô¤Ï¤â¤È¤Ë¤Ê¤ë¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤Ï¥·¡¼¥¯²Äǽ¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +引数はもとになるファイルのファイルデスクリプタである。 +このファイルデスクリプタはシーク可能でなくてはならない。 .\"O If .\"O .I key .\"O is non-NULL and matches a file already being mapped, the .\"O .I fd .\"O argument is ignored. .I key -¤¬ NULL ¤Ç¤Ê¤¯¡¢¤«¤Ä´û¤Ë¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Ë¥Þ¥Ã¥Á¤·¤¿¾ì¹ç¡¢ +が NULL でなく、かつ既にマップされているファイルにマッチした場合、 .I fd -°ú¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ +引数は無視される。 .PP .\"O The .\"O .I pagesize .\"O argument is the size, in bytes, of the pages into which the file is broken up. .I pagesize -°ú¿ô¤Ï¥Ð¥¤¥Èñ°Ì¤Ç¤Î¥Ú¡¼¥¸¥µ¥¤¥º¤Ç¤¢¤ê¡¢¥Õ¥¡¥¤¥ë¤Ï¤³¤Î¥µ¥¤¥º¤Ëʬ³ä¤µ¤ì¤ë¡£ +引数はバイト単位でのページサイズであり、ファイルはこのサイズに分割される。 .\"O The .\"O .I maxcache .\"O argument is the maximum number of pages from the underlying file to cache .\"O at any one time. .I maxcache -°ú¿ô¤Ï´ð¥Õ¥¡¥¤¥ë¤ò¥­¥ã¥Ã¥·¥å¤¹¤ë¤È¤­¤ËÍѤ¤¤ëºÇÂç¥Ú¡¼¥¸¿ô¤Ç¤¢¤ë¡£ -.\"NAKANO "at any one time" ¤Ï¡Ö¤É¤ó¤Ê½Ö´Ö¤Ë¤ª¤¤¤Æ¤â (ºÇÂç)¡×¤Ç¤¹¤¬¡¢ -.\"NAKANO ¾Êά²Äǽ¤Ç¤·¤ç¤¦¡£ +引数は基ファイルをキャッシュするときに用いる最大ページ数である。 +.\"NAKANO "at any one time" は「どんな瞬間においても (最大)」ですが、 +.\"NAKANO 省略可能でしょう。 .\"O This value is not relative to the number of processes which share a file's .\"O buffers, but will be the largest value specified by any of the processes .\"O sharing the file. -¤³¤ÎÃͤϥե¡¥¤¥ë¥Ð¥Ã¥Õ¥¡¤ò¶¦Í­¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î¿ô¤Ë¤Ï´Ø·¸¤Ê¤¤¤¬¡¢ -¥Õ¥¡¥¤¥ë¤ò¶¦Í­¤¹¤ë¥×¥í¥»¥¹¤¬»ØÄꤷ¤¿¤¦¤Á¤ÎºÇÂçÃͤ¬¼ÂºÝ¤ËÍѤ¤¤é¤ì¤ë¡£ +この値はファイルバッファを共有しているプロセスの数には関係ないが、 +ファイルを共有するプロセスが指定したうちの最大値が実際に用いられる。 .PP .\"O The .\"O .BR mpool_filter () .\"O function is intended to make transparent input and output processing of the .\"O pages possible. -´Ø¿ô +関数 .BR mpool_filter () -¤ÏÆ©²áŪ¤Ê¥Ú¡¼¥¸Æþ½ÐÎϽèÍý¤ò²Äǽ¤Ë¤¹¤ë¡£ +は透過的なページ入出力処理を可能にする。 .\"O If the .\"O .I pgin .\"O function is specified, it is called each time a buffer is read into the memory .\"O pool from the backing file. -´Ø¿ô +関数 .I pgin -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢ -¥Õ¥¡¥¤¥ë¤«¤é¥á¥â¥ê¥×¡¼¥ë¤ËÆɤ߹þ¤Þ¤ì¤ëÅ٤ˤ³¤Î´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ +が指定されていると、 +ファイルからメモリプールに読み込まれる度にこの関数が呼び出される。 .\"O If the .\"O .I pgout .\"O function is specified, it is called each time a buffer is written into the .\"O backing file. -´Ø¿ô +関数 .I pgout -¤¬»ØÄꤵ¤ì¤Æ¤¤¤È¡¢ -¥Ð¥Ã¥Õ¥¡¤«¤é¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤µ¤ì¤ëÅ٤ˤ³¤Î´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ +が指定されていと、 +バッファからファイルに書き出される度にこの関数が呼び出される。 .\"O Both functions are called with the .\"O .I pgcookie .\"O pointer, the page number and a pointer to the page to being read or written. -¤É¤Á¤é¤Î´Ø¿ô¤â¡¢ +どちらの関数も、 .I pgcookie -¥Ý¥¤¥ó¥¿¡¢¥Ú¡¼¥¸¿ô¡¢Æɤ߽ñ¤­¤µ¤ì¤ë¥Ú¡¼¥¸¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò°ú¿ô¤Ë¤È¤ë¡£ +ポインタ、ページ数、読み書きされるページへのポインタを引数にとる。 .PP .\"O The function .\"O .BR mpool_new () .\"O takes an .\"O .I MPOOL .\"O pointer and an address as arguments. -´Ø¿ô +関数 .BR mpool_new () -¤Ï +は .I MPOOL -¥Ý¥¤¥ó¥¿¤È¥¢¥É¥ì¥¹¤ò°ú¿ô¤Ë¤È¤ë¡£ +ポインタとアドレスを引数にとる。 .\"O If a new page can be allocated, a pointer to the page is returned and .\"O the page number is stored into the .\"O .I pgnoaddr .\"O address. -¿·¤·¤¤¥Ú¡¼¥¸¤¬³ä¤êÅö¤Æ²Äǽ¤Ê¾ì¹ç¡¢¥Ú¡¼¥¸¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬ÊÖ¤µ¤ì¡¢ -¥Ú¡¼¥¸¿ô¤¬ +新しいページが割り当て可能な場合、ページへのポインタが返され、 +ページ数が .I pgnoaddr -¥¢¥É¥ì¥¹¤ËǼ¤á¤é¤ì¤ë¡£ +アドレスに納められる。 .\"O Otherwise, NULL is returned and .\"O .I errno .\"O is set. -³ä¤êÅö¤Æ¤¬ÉÔ²Äǽ¤Ê¾ì¹ç¤Ï NULL ¤¬ÊÖ¤µ¤ì¡¢ +割り当てが不可能な場合は NULL が返され、 .I errno -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .PP .\"O The function .\"O .BR mpool_get () @@ -198,50 +198,50 @@ mpool \- .\"O The .\"O .I flags .\"O argument is not currently used. -´Ø¿ô +関数 .BR mpool_get () -¤Ï +は .I MPOOL -¥Ý¥¤¥ó¥¿¤È¥Ú¡¼¥¸¿ô¤ò°ú¿ô¤Ë¤È¤ë¡£¥Ú¡¼¥¸¤¬Â¸ºß¤·¤Æ¤¤¤ë¤È¡¢ -¥Ú¡¼¥¸¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬ÊÖ¤µ¤ì¤ë¡£ -¸ºß¤·¤Æ¤¤¤Ê¤¤¤È NULL ¤¬ÊÖ¤µ¤ì¡¢ +ポインタとページ数を引数にとる。ページが存在していると、 +ページへのポインタが返される。 +存在していないと NULL が返され、 .I errno -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .I flags -°ú¤­¿ô¤Ï¸½ºß»ÈÍѤµ¤ì¤Æ¤¤¤Ê¤¤¡£ +引き数は現在使用されていない。 .PP .\"O The function .\"O .BR mpool_put () .\"O unpins the page referenced by .\"O .IR pgaddr . -´Ø¿ô +関数 .BR mpool_put () -¤Ï +は .I pgaddr -¤¬»²¾È¤¹¤ë¥Ú¡¼¥¸¤ò²òÊü¤¹¤ë¡£ +が参照するページを解放する。 .\"O .I pgaddr .\"O must be an address previously returned by .\"O .BR mpool_get () .\"O or .\"O .BR mpool_new (). .I pgaddr -¤Ï°ÊÁ°¤Ë +は以前に .BR mpool_get () -¤« +か .BR mpool_new () -¤¬ÊÖ¤·¤¿¥¢¥É¥ì¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +が返したアドレスでなければならない。 .\"O The flag value is specified by ORing .\"O any of the following values: -flag ¤ÎÃͤϰʲ¼¤ÎÃͤÎÏÀÍýϤǻØÄꤹ¤ë¡£ +flag の値は以下の値の論理和で指定する。 .TP .B MPOOL_DIRTY .\"O The page has been modified and needs to be written to the backing file. -¥Ú¡¼¥¸¤ÏÊѹ¹¤µ¤ì¤Æ¤ª¤ê¡¢¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤¹É¬Íפ¬¤¢¤ë¡£ +ページは変更されており、ファイルに書き出す必要がある。 .PP .\"O .BR mpool_put () .\"O returns 0 on success and \-1 if an error occurs. .BR mpool_put () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤ò¡¢¥¨¥é¡¼¤¬¤¢¤ë¤È \-1 ¤òÊÖ¤¹¡£ +は成功すると 0 を、エラーがあると \-1 を返す。 .PP .\"O The function .\"O .BR mpool_sync () @@ -249,61 +249,61 @@ flag .\"O .I MPOOL .\"O pointer to the .\"O backing file. -´Ø¿ô +関数 .BR mpool_sync () -¤Ï +は .I MPOOL -¥Ý¥¤¥ó¥¿¤Î¼¨¤¹¥Ú¡¼¥¸¤Î¤¦¤Á¡¢ -Êѹ¹¤µ¤ì¤¿¤â¤Î¤òÁ´¤Æ¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤¹¡£ +ポインタの示すページのうち、 +変更されたものを全てファイルに書き出す。 .\"O .BR mpool_sync () .\"O returns 0 on success and \-1 if an error occurs. .BR mpool_sync () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤ò¡¢¥¨¥é¡¼¤¬¤¢¤ë¤È \-1 ¤òÊÖ¤¹¡£ +は成功すると 0 を、エラーがあると \-1 を返す。 .PP .\"O The .\"O .BR mpool_close () .\"O function free's up any allocated memory associated with the memory pool .\"O cookie. -´Ø¿ô +関数 .BR mpool_close () -¤Ï¥á¥â¥ê¥×¡¼¥ë¥¯¥Ã¥­¡¼¤Î¼¨¤¹³ä¤êÅö¤ÆºÑ¤ß¤Î¥á¥â¥ê¤ò²òÊü¤¹¤ë¡£ +はメモリプールクッキーの示す割り当て済みのメモリを解放する。 .\"O Modified pages are .\"O .B not .\"O written to the backing file. -Êѹ¹¤µ¤ì¤¿¥Ú¡¼¥¸¤Ï¥Õ¥¡¥¤¥ë¤Ë\fB½ñ¤­½Ð¤µ¤ì¤Ê¤¤\fP¡£ +変更されたページはファイルに\fB書き出されない\fP。 .\"O .BR mpool_close () .\"O returns 0 on success and \-1 if an error occurs. .I mpool_close () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤ò¡¢¥¨¥é¡¼¤¬¤¢¤ë¤È \-1 ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +は成功すると 0 を、エラーがあると \-1 を返す。 +.SH エラー .\"O The .\"O .BR mpool_open () .\"O function may fail and set .\"O .I errno .\"O for any of the errors specified for the library routine .\"O .BR malloc (3). -´Ø¿ô +関数 .BR mpool_open () -¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó +は失敗するとライブラリルーチン .BR malloc (3) -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿ +で指定されているエラーに応じた .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ +をセットする。 .PP .\"O The .\"O .BR mpool_get () .\"O function may fail and set .\"O .I errno .\"O for the following: -´Ø¿ô +関数 .BR mpool_get () -¤Ï¼ºÇÔ¤¹¤ë¤È¼¡¤Î¤è¤¦¤Ê +は失敗すると次のような .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ +をセットする。 .TP 15 .B EINVAL .\"O The requested record doesn't exist. -Í×µá¤Î¤¢¤Ã¤¿¥ì¥³¡¼¥É¤Ï¸ºß¤·¤Ê¤¤¡£ +要求のあったレコードは存在しない。 .PP .\"O The .\"O .BR mpool_new () @@ -316,17 +316,17 @@ flag .\"O .BR write (2), .\"O and .\"O .BR malloc (3). -´Ø¿ô +関数 .BR mpool_new () -¤È +と .BR mpool_get () -¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó +は失敗するとライブラリルーチン .BR read (2), .BR write (2), .BR malloc (3) -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿ +で指定されているエラーに応じた .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ +をセットする。 .PP .\"O The .\"O .BR mpool_sync () @@ -334,13 +334,13 @@ flag .\"O .I errno .\"O for any of the errors specified for the library routine .\"O .BR write (2). -´Ø¿ô +関数 .BR mpool_sync () -¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó +は失敗するとライブラリルーチン .BR write (2) -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿ +で指定されているエラーに応じた .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ +をセットする。 .PP .\"O The .\"O .BR mpool_close () @@ -348,20 +348,20 @@ flag .\"O .I errno .\"O for any of the errors specified for the library routine .\"O .BR free (3). -´Ø¿ô +関数 .BR mpool_close () -¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó +は失敗するとライブラリルーチン .BR free (3) -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿ +で指定されているエラーに応じた .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ +をセットする。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O Not in POSIX.1-2001. .\"O Present on the BSDs. -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -BSD ·Ï¤Ë¸ºß¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +POSIX.1-2001 にはない。 +BSD 系に存在する。 +.SH 関連項目 .BR btree (3), .BR dbopen (3), .BR hash (3), diff --git a/draft/man3/mq_close.3 b/draft/man3/mq_close.3 index aaed4a95..f3d73e47 100644 --- a/draft/man3/mq_close.3 +++ b/draft/man3/mq_close.3 @@ -28,11 +28,11 @@ .\" .TH MQ_CLOSE 3 2010-08-29 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mq_close \- close a message queue descriptor -mq_close \- ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò»Ò¤ò¥¯¥í¡¼¥º¤¹¤ë +mq_close \- メッセージキュー記述子をクローズする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -40,63 +40,63 @@ mq_close \- .fi .sp .\"O Link with \fI\-lrt\fP. -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR mq_close () .\"O closes the message queue descriptor .\"O .IR mqdes . .BR mq_close () -¤Ï¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò»Ò (message queue descriptor) +はメッセージキュー記述子 (message queue descriptor) .I mqdes -¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +をクローズする。 .\"O If the calling process has attached a notification request .\"O to this message queue via .\"O .IR mqdes , .\"O then this request is removed, .\"O and another process can now attach a notification request. -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬ +呼び出し元のプロセスが .I mqdes -·Ðͳ¤Ç¤³¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤ËÄÌÃÎÍ×µá (notification request) -¤òÀßÄꤷ¤Æ¤¤¤ë¾ì¹ç¡¢ÄÌÃÎÍ×µá¤Ïºï½ü¤µ¤ì¡¢Â¾¤Î¥×¥í¥»¥¹¤¬¤½¤Î¥­¥å¡¼¤Ë -ÂФ·¤ÆÄÌÃÎÍ×µá¤òÀßÄê¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +経由でこのメッセージキューに通知要求 (notification request) +を設定している場合、通知要求は削除され、他のプロセスがそのキューに +対して通知要求を設定できるようになる。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success .\"O .BR mq_close () .\"O returns 0; on error, \-1 is returned, with .\"O .I errno .\"O set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR mq_close () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O The descriptor specified in .\"O .I mqdes .\"O is invalid. .I mqdes -¤Ç»ØÄꤵ¤ì¤¿µ­½Ò»Ò¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +で指定された記述子が不正である。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O All open message queues are automatically closed on process termination, .\"O or upon .\"O .BR execve (2). -.\"Omotoki: ¼«Æ°Åª¤Ë¥¯¥í¡¼¥º¤µ¤ì¤ë¤Î¤Ï message queue ¤Ç¤Ï¤Ê¤¯ -.\"Omotoki: message queue descriptor ¡© (cf. mq_overview(7)) -¥×¥í¥»¥¹½ªÎ»»þ¡¢¤â¤·¤¯¤Ï +.\"Omotoki: 自動的にクローズされるのは message queue ではなく +.\"Omotoki: message queue descriptor ? (cf. mq_overview(7)) +プロセス終了時、もしくは .BR execve (2) -¼Â¹Ô»þ¤Ë¡¢Á´¤Æ¤Î¥ª¡¼¥×¥ó¤µ¤ì¤¿¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ï¼«Æ°Åª¤Ë¥¯¥í¡¼¥º¤µ¤ì¤ë¡£ +実行時に、全てのオープンされたメッセージキューは自動的にクローズされる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mq_getattr (3), .BR mq_notify (3), .BR mq_open (3), diff --git a/draft/man3/mq_getattr.3 b/draft/man3/mq_getattr.3 index 66109eba..a1365985 100644 --- a/draft/man3/mq_getattr.3 +++ b/draft/man3/mq_getattr.3 @@ -29,11 +29,11 @@ .\" .TH MQ_GETATTR 3 2010-08-29 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mq_getattr, mq_setattr \- get/set message queue attributes -mq_getattr, mq_setattr \- ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î°À­¤òÀßÄê/¼èÆÀ¤¹¤ë +mq_getattr, mq_setattr \- メッセージキューの属性を設定/取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -44,9 +44,9 @@ mq_getattr, mq_setattr \- .fi .sp .\"O Link with \fI\-lrt\fP. -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR mq_getattr () .\"O and .\"O .BR mq_setattr () @@ -54,11 +54,11 @@ mq_getattr, mq_setattr \- .\"O referred to by the descriptor .\"O .IR mqdes . .BR mq_getattr () -¤È +と .BR mq_setattr () -¤Ï¡¢µ­½Ò»Ò +は、記述子 .I mqdes -¤Ç»²¾È¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î°À­¤Î¼èÆÀ¤ÈÊѹ¹¤ò¤½¤ì¤¾¤ì¹Ô¤¦¡£ +で参照されるメッセージキューの属性の取得と変更をそれぞれ行う。 .\"O .BR mq_getattr () .\"O returns an @@ -67,11 +67,11 @@ mq_getattr, mq_setattr \- .\"O .IR attr . .\"O This structure is defined as: .BR mq_getattr () -¤Ï¡¢ +は、 .I attr -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë +が指すバッファに .I mq_attr -¹½Â¤ÂΤò³ÊǼ¤·¤ÆÊÖ¤¹¡£¤³¤Î¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +構造体を格納して返す。この構造体は以下のように定義されている: .in +4n .nf @@ -80,10 +80,10 @@ struct mq_attr { .\"O long mq_maxmsg; /* Max. # of messages on queue */ .\"O long mq_msgsize; /* Max. message size (bytes) */ .\"O long mq_curmsgs; /* # of messages currently in queue */ - long mq_flags; /* ¥Õ¥é¥°: 0 ¤« O_NONBLOCK */ - long mq_maxmsg; /* ¥­¥å¡¼¤ÎºÇÂç¥á¥Ã¥»¡¼¥¸¿ô */ - long mq_msgsize; /* ºÇÂç¥á¥Ã¥»¡¼¥¸¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) */ - long mq_curmsgs; /* ¥­¥å¡¼¤Ë¸½ºßÆþ¤Ã¤Æ¤¤¤ë¥á¥Ã¥»¡¼¥¸¿ô */ + long mq_flags; /* フラグ: 0 か O_NONBLOCK */ + long mq_maxmsg; /* キューの最大メッセージ数 */ + long mq_msgsize; /* 最大メッセージサイズ (バイト単位) */ + long mq_curmsgs; /* キューに現在入っているメッセージ数 */ }; .fi .in @@ -96,14 +96,14 @@ struct mq_attr { .\"O The only flag that can appear in this field is .\"O .BR O_NONBLOCK . .I mq_flags -¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¡¢¥ª¡¼¥×¥ó¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò (open message queue -description) ¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤Æ¤¤¤ë¥Õ¥é¥°¤¬³ÊǼ¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï +フィールドには、オープンメッセージキュー記述 (open message queue +description) に関連付けられているフラグが格納される。 +このフィールドは .BR mq_open (3) -¤Ç¥­¥å¡¼¤¬ºîÀ®¤µ¤ì¤ëºÝ¤Ë½é´ü²½¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ë¸½¤ì¤ë¥Õ¥é¥°¤Ï +でキューが作成される際に初期化される。 +このフィールドに現れるフラグは .B O_NONBLOCK -¤À¤±¤Ç¤¢¤ë¡£ +だけである。 .\"O The .\"O .I mq_maxmsg @@ -112,46 +112,46 @@ description) .\"O fields are set when the message queue is created by .\"O .BR mq_open (3). .I mq_maxmsg -¤È +と .I mq_msgsize -¥Õ¥£¡¼¥ë¥É¤Ï +フィールドは .BR mq_open (3) -¤Ç¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤¬ºîÀ®¤µ¤ì¤ëºÝ¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ +でメッセージキューが作成される際にセットされる。 .\"O The .\"O .I mq_maxmsg .\"O field is an upper limit on the number of messages .\"O that may be placed on the queue using .\"O .BR mq_send (3). .I mq_maxmsg -¥Õ¥£¡¼¥ë¥É¤Ï¡¢ +フィールドは、 .BR mq_send (3) -¤ò»È¤Ã¤Æ¥­¥å¡¼¤ËÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤ë¥á¥Ã¥»¡¼¥¸¿ô¤Î¾å¸Â¤Ç¤¢¤ë¡£ +を使ってキューに入れることができるメッセージ数の上限である。 .\"O The .\"O .I mq_msgsize .\"O field is an upper limit on the size of messages .\"O that may be placed on the queue. .I mq_msgsize -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥­¥å¡¼¤ËÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤ë¥á¥Ã¥»¡¼¥¸¤Î -¾å¸Â¥µ¥¤¥º¤Ç¤¢¤ë¡£ +フィールドは、キューに入れることができるメッセージの +上限サイズである。 .\"O Both of these fields must have a value greater than zero. .\"O Two .\"O .I /proc .\"O files that place ceilings on the values for these fields are described in .\"O .BR mq_open (3). -¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Ï¤É¤Á¤é¤â 0 ¤è¤êÂ礭¤ÊÃͤǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤ËÀßÄê¤Ç¤­¤ëÃͤξå¸Â¤Ï +これらのフィールドはどちらも 0 より大きな値でなければならない。 +これらのフィールドに設定できる値の上限は .I /proc -¥Õ¥¡¥¤¥ë¤Ë¤è¤ê·è¤Þ¤ë¡£ +ファイルにより決まる。 .I /proc -¥Õ¥¡¥¤¥ë¤Î¾ÜºÙ¤Ï +ファイルの詳細は .BR mq_open (3) -¤ËÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡£ +に説明されている。 .\"O The .\"O .I mq_curmsgs .\"O field returns the number of messages currently held in the queue. .I mq_curmsgs -¥Õ¥£¡¼¥ë¥É¤Ï¥­¥å¡¼¤Ë¸½ºß³ÊǼ¤µ¤ì¤Æ¤¤¤ë¥á¥Ã¥»¡¼¥¸¿ô¤òÊÖ¤¹¡£ +フィールドはキューに現在格納されているメッセージ数を返す。 .\"O .BR mq_setattr () .\"O sets message queue attributes using information supplied in the @@ -159,11 +159,11 @@ description) .\"O structure pointed to by .\"O .IR newattr . .BR mq_setattr () -¤Ï¡¢ +は、 .I newattr -¤¬»Ø¤¹ +が指す .I mq_attr -¹½Â¤ÂΤÇÍ¿¤¨¤é¤ì¤¿¾ðÊó¤ò»È¤Ã¤Æ¡¢¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î°À­¤òÀßÄꤹ¤ë¡£ +構造体で与えられた情報を使って、メッセージキューの属性を設定する。 .\"O The only attribute that can be modified is the setting of the .\"O .B O_NONBLOCK .\"O flag in @@ -171,13 +171,13 @@ description) .\"O The other fields in .\"O .I newattr .\"O are ignored. -Êѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë°À­¤Ï¡¢ +変更することができる属性は、 .I mq_flags -¤Î +の .B O_NONBLOCK -¥Õ¥é¥°¤ÎÀßÄê¤À¤±¤Ç¤¢¤ë¡£ +フラグの設定だけである。 .I newattr -¤Î¾¤Î¥Õ¥£¡¼¥ë¥É¤Ï̵»ë¤µ¤ì¤ë¡£ +の他のフィールドは無視される。 .\"O If the .\"O .I oldattr .\"O field is not NULL, @@ -186,15 +186,15 @@ description) .\"O structure that contains the same information that is returned by .\"O .BR mq_getattr (). .I oldattr -¥Õ¥£¡¼¥ë¥É¤¬ NULL °Ê³°¤Î¾ì¹ç¡¢ +フィールドが NULL 以外の場合、 .BR mq_getattr () -¤¬ÊÖ¤¹¤Î¤ÈƱ¤¸¾ðÊó¤ò³ÊǼ¤·¤¿ +が返すのと同じ情報を格納した .I mq_attr -¹½Â¤ÂΤò +構造体を .I oldattr -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤ËÆþ¤ì¤ÆÊÖ¤¹¡£ +が指すバッファに入れて返す。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success .\"O .BR mq_getattr () .\"O and @@ -202,36 +202,36 @@ description) .\"O return 0; on error, \-1 is returned, with .\"O .I errno .\"O set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .I mq_getattr () -¤È +と .I mq_setattr () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O The descriptor specified in .\"O .I mqdes .\"O is invalid. .I mqdes -¤Ç»ØÄꤵ¤ì¤¿µ­½Ò»Ò¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +で指定された記述子が不正である。 .TP .B EINVAL .\"O .I newattr\->mq_flags .\"O contained set bits other than .\"O .BR O_NONBLOCK . .I newattr\->mq_flags -¤Ë +に .B O_NONBLOCK -°Ê³°¤Î¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤¿¡£ +以外のビットがセットされていた。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O On Linux, .\"O .BR mq_getattr () .\"O and @@ -239,15 +239,15 @@ POSIX.1-2001. .\"O are library functions layered on top of the .\"O .BR mq_getsetattr (2) .\"O system call. -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR mq_getattr () -¤È +と .BR mq_setattr () -¤Ï¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ç¤¢¤ê¡¢ +はライブラリ関数であり、 .BR mq_getsetattr (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÍѤ¤¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +システムコールを用いて実装されている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mq_close (3), .BR mq_notify (3), .BR mq_open (3), diff --git a/draft/man3/mq_notify.3 b/draft/man3/mq_notify.3 index 0a0772d8..16167c56 100644 --- a/draft/man3/mq_notify.3 +++ b/draft/man3/mq_notify.3 @@ -30,11 +30,11 @@ .\" .TH MQ_NOTIFY 3 2010-10-04 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mq_notify \- register for notification when a message is available -mq_notify \- ¥á¥Ã¥»¡¼¥¸ÅþÃå»þ¤ËÄÌÃΤò¹Ô¤¦¤è¤¦ÅÐÏ¿¤¹¤ë +mq_notify \- メッセージ到着時に通知を行うよう登録する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -42,20 +42,20 @@ mq_notify \- .fi .sp .\"O Link with \fI\-lrt\fP. -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR mq_notify () .\"O allows the calling process to register or unregister for delivery of .\"O an asynchronous notification when a new message arrives on .\"O the empty message queue referred to by the descriptor .\"O .IR mqdes . .BR mq_notify () -¤ò»È¤¦¤È¡¢¥Ç¥£¥¹¥¯¥ê¥×¥¿ +を使うと、ディスクリプタ .I mqdes -¤Ç»²¾È¤µ¤ì¤ë¶õ¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ë¿·¤·¤¯¥á¥Ã¥»¡¼¥¸¤¬ÅþÃ夷¤¿»þ¤Ë -ÈóƱ´ü¤ÎÄÌÃÎ (notification) ¤ÎÇÛÁ÷¤¬¹Ô¤ï¤ì¤ë¤è¤¦¤ËÅÐÏ¿¤·¤¿¤ê¡¢ -¤½¤Î²ò½ü¤ò¹Ô¤Ã¤¿¤ê¤Ç¤­¤ë¡£ +で参照される空のメッセージキューに新しくメッセージが到着した時に +非同期の通知 (notification) の配送が行われるように登録したり、 +その解除を行ったりできる。 .\"O The .\"O .I sevp @@ -65,12 +65,12 @@ mq_notify \- .\"O For the definition and general details of this structure, see .\"O .BR sigevent (7). .I sevp -°ú¤­¿ô¤Ï +引き数は .I sigevent -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤³¤Î¹½Â¤ÂΤÎÄêµÁ¤È°ìÈÌŪ¤Ê¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï +構造体へのポインタである。 +この構造体の定義と一般的な詳細については .BR sigevent (7) -¤ò»²¾È¡£ +を参照。 .PP .\"O If .\"O .I sevp @@ -78,9 +78,9 @@ mq_notify \- .\"O .BR mq_notify () .\"O registers the calling process to receive message notification. .I sevp -¤¬ NULL ¤Ç¤Ê¤¤¥Ý¥¤¥ó¥¿¤Ç¤¢¤ì¤Ð¡¢ +が NULL でないポインタであれば、 .BR mq_notify () -¤Ï¥á¥Ã¥»¡¼¥¸ÄÌÃΤò¼õ¤±¼è¤ë¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤òÅÐÏ¿¤¹¤ë¡£ +はメッセージ通知を受け取るように呼び出し元のプロセスを登録する。 .\"O The .\"O .I sigev_notify .\"O field of the @@ -90,18 +90,18 @@ mq_notify \- .\"O points specifies how notification is to be performed. .\"O This field has one of the following values: .I sevp -¤¬»Ø¤¹ +が指す .I sigevent -¹½Â¤ÂΤΠ+構造体の .I sigev_notify -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¤É¤Î¤è¤¦¤ÊÄÌÃΤò¹Ô¤¦¤Î¤«¤ò»ØÄꤹ¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«¤ò»ý¤Ä¡£ +フィールドは、どのような通知を行うのかを指定する。 +このフィールドは以下の値のいずれかを持つ。 .TP .B SIGEV_NONE .\"O A "null" notification: the calling process is registered as the target .\"O for notification, but when a message arrives, no notification is sent. -¡Ö¶õ¤Î (null)¡×¤ÎÄÌÃÎ: ¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤òÄÌÃΤΰ¸Àè¤È¤·¤ÆÅÐÏ¿¤¹¤ë¤¬¡¢ -¼ÂºÝ¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¤¬ÅþÃ夷¤¿»þ¤ËÄÌÃΤÏÁ÷¤é¤ì¤Ê¤¤¡£ +「空の (null)」の通知: 呼び出し元のプロセスを通知の宛先として登録するが、 +実際にはメッセージが到着した時に通知は送られない。 .\" When is SIGEV_NONE useful? .TP .B SIGEV_SIGNAL @@ -111,10 +111,10 @@ mq_notify \- .\"O .BR sigevent (7) .\"O for general details. .I sigev_signo -¤Ç»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë¤òÁ÷¤Ã¤Æ¡¢¥×¥í¥»¥¹¤ËÄÌÃΤ¹¤ë¡£ -°ìÈÌŪ¤Ê¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï +で指定されたシグナルを送って、プロセスに通知する。 +一般的な詳細については .BR sigevent (7) -¤ò»²¾È¡£ +を参照。 .\"O The .\"O .I si_code .\"O field of the @@ -122,11 +122,11 @@ mq_notify \- .\"O structure will be set to .\"O .BR SI_MESGQ . .I siginfo_t -¹½Â¤ÂΤΠ+構造体の .I si_code -¥Õ¥£¡¼¥ë¥É¤Ë¤Ï +フィールドには .B SI_MESGQ -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .\"O In addition, .\" I don't know of other implementations that set .\" si_pid and si_uid -- MTK @@ -134,11 +134,11 @@ mq_notify \- .\"O will be set to the PID of the process that sent the message, and .\"O .I si_uid .\"O will be set to the real user ID of the sending process. -¤µ¤é¤Ë¡¢ +さらに、 .I si_pid -¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¤·¤¿¥×¥í¥»¥¹¤Î PID ¤¬¡¢ +にはメッセージを送信したプロセスの PID が、 .I si_uid -¤Ë¤ÏÁ÷¿®¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶ ID ¤¬ÀßÄꤵ¤ì¤ë¡£ +には送信プロセスの実ユーザ ID が設定される。 .TP .B SIGEV_THREAD .\"O Upon message delivery, invoke @@ -147,17 +147,17 @@ mq_notify \- .\"O See .\"O .BR sigevent (7) .\"O for details. -¥á¥Ã¥»¡¼¥¸¤ÎÇÛÁ÷»þ¤Ë¤Ï¡¢ +メッセージの配送時には、 .I sigev_notify_function -¤¬¤¢¤¿¤«¤â¿·¤·¤¤¥¹¥ì¥Ã¥É¤Î³«»Ï´Ø¿ô¤Ç¤¢¤ë¤«¤Î¤è¤¦¤Ëµ¯Æ°¤µ¤ì¤ë¡£ -¾ÜºÙ¤Ï +があたかも新しいスレッドの開始関数であるかのように起動される。 +詳細は .BR sigevent (7) -¤ò»²¾È¡£ +を参照。 .PP .\"O Only one process can be registered to receive notification .\"O from a message queue. -°ì¤Ä¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤«¤éÄÌÃΤò¼õ¿®¤¹¤ë¤è¤¦¤ËÅÐÏ¿¤Ç¤­¤ë¥×¥í¥»¥¹¤Ï -°ì¤Ä¤À¤±¤Ç¤¢¤ë¡£ +一つのメッセージキューから通知を受信するように登録できるプロセスは +一つだけである。 .\"O If .\"O .I sevp @@ -166,10 +166,10 @@ mq_notify \- .\"O another process can then register to receive a message notification .\"O for this queue. .I sevp -¤¬ NULL ¤Ç¡¢¤«¤Ä¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬¤³¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤«¤é¤Î -ÄÌÃΤò¼õ¿®¤¹¤ë¤Ë¸½ºßÅÐÏ¿¤·¤Æ¤¤¤ë¾ì¹ç¡¢ÅÐÏ¿¤òºï½ü¤¹¤ë¡£ -¤³¤ì°Ê¹ß¡¢ÊÌ¤Î¥×¥í¥»¥¹¤¬¤³¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤«¤éÄÌÃΤò¼õ¿®¤¹¤ë¤è¤¦¤Ë -ÅÐÏ¿¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +が NULL で、かつ呼び出し元のプロセスがこのメッセージキューからの +通知を受信するに現在登録している場合、登録を削除する。 +これ以降、別のプロセスがこのメッセージキューから通知を受信するように +登録できるようになる。 .\"O Message notification only occurs when a new message arrives and .\"O the queue was previously empty. @@ -177,12 +177,12 @@ mq_notify \- .\"O .BR mq_notify () .\"O was called, then a notification will only occur after .\"O the queue is emptied and a new message arrives. -¥á¥Ã¥»¡¼¥¸ÄÌÃΤϡ¢¤½¤ì¤Þ¤Ç¶õ¤Î¥­¥å¡¼¤Ë¿·¤·¤¤¥á¥Ã¥»¡¼¥¸¤¬ÅþÃ夷¤¿ -¾ì¹ç¤Ë¤Î¤ß¹Ô¤ï¤ì¤ë¡£ +メッセージ通知は、それまで空のキューに新しいメッセージが到着した +場合にのみ行われる。 .BR mq_notify () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿»þ¤Ë¤½¤Î¥­¥å¡¼¤¬¶õ¤Ç¤Ê¤¤¾ì¹ç¡¢ -¤½¤Î¥­¥å¡¼¤¬¶õ¤Ë¤Ê¤ê¡¢¤½¤Î¸å¿·¤·¤¤¥á¥Ã¥»¡¼¥¸¤¬ÅþÃ夷¤¿»þ¤Ë -½é¤á¤ÆÄÌÃΤ¬¹Ô¤ï¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ +が呼び出された時にそのキューが空でない場合、 +そのキューが空になり、その後新しいメッセージが到着した時に +初めて通知が行われることになる。 .\"O If another process or thread is waiting to read a message .\"O from an empty queue using @@ -191,14 +191,14 @@ mq_notify \- .\"O the message is delivered to the process or thread calling .\"O .BR mq_receive (3), .\"O and the message notification registration remains in effect. -ÊÌ¤Î¥×¥í¥»¥¹¤ä¥¹¥ì¥Ã¥É¤¬ +別のプロセスやスレッドが .BR mq_receive (3) -¤ò»È¤Ã¤Æ¡¢¶õ¤Î¥­¥å¡¼¤«¤é¥á¥Ã¥»¡¼¥¸¤ÎÆɤ߽Ф·¤òÂԤäƤ¤¤ë¾ì¹ç¡¢ -¥á¥Ã¥»¡¼¥¸ÄÌÃΤÎÅÐÏ¿¤ÏÁ´¤Æ̵»ë¤µ¤ì¤ë¡£ -¥á¥Ã¥»¡¼¥¸¤Ï +を使って、空のキューからメッセージの読み出しを待っている場合、 +メッセージ通知の登録は全て無視される。 +メッセージは .BR mq_receive (3) -¤ò¸Æ¤Ó½Ð¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤ä¥¹¥ì¥Ã¥É¤ËÇÛÁ÷¤µ¤ì¡¢ -¥á¥Ã¥»¡¼¥¸ÄÌÃΤÎÅÐÏ¿¤Ï¸úÎϤò»ý¤Ã¤¿¤Þ¤Þ¤È¤Ê¤ë¡£ +を呼び出しているプロセスやスレッドに配送され、 +メッセージ通知の登録は効力を持ったままとなる。 .\"O Notification occurs once: after a notification is delivered, .\"O the notification registration is removed, @@ -210,44 +210,44 @@ mq_notify \- .\"O This should be done before emptying all unread messages from the queue. .\"O (Placing the queue in nonblocking mode is useful for emptying .\"O the queue of messages without blocking once it is empty.) -ÄÌÃΤϰìÅÙ¤À¤±¹Ô¤ï¤ì¤ë¡£ÄÌÃΤ¬Á÷¤é¤ì¤¿¸å¤Ï¡¢ÄÌÃÎÍ×µá¤ÎÅÐÏ¿¤Ïºï½ü¤µ¤ì¡¢ -ÊÌ¤Î¥×¥í¥»¥¹¤¬¥á¥Ã¥»¡¼¥¸ÄÌÃΤò¼õ¿®¤¹¤ë¤è¤¦¤ËÅÐÏ¿¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -ÄÌÃΤò¼õ¤±¤¿¥×¥í¥»¥¹¤¬¼¡¤ÎÄÌÃΤâ¼õ¿®¤·¤¿¤¤¾ì¹ç¤Ï¡¢ +通知は一度だけ行われる。通知が送られた後は、通知要求の登録は削除され、 +別のプロセスがメッセージ通知を受信するように登録できるようになる。 +通知を受けたプロセスが次の通知も受信したい場合は、 .BR mq_notify () -¤ò»È¤Ã¤Æ¤½¤Î¸å¤ÎÄÌÃΤâ¼õ¤±¤ë¤è¤¦¤ËÍ׵᤹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使ってその後の通知も受けるように要求することができる。 .BR mq_notify () -¤òºÆÅٸƤӽФ¹¤Î¤Ï¡¢Æɤ߽Ф·¤Æ¤¤¤Ê¤¤¥á¥Ã¥»¡¼¥¸¤òÁ´ÉôÆɤ߽Ф·¤Æ -¥­¥å¡¼¤¬¶õ¤Ë¤Ê¤ëÁ°¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë -(¥­¥å¡¼¤«¤é¤Î¥á¥Ã¥»¡¼¥¸Æɤ߽Ф·¤ò¥­¥å¡¼¤¬¶õ¤Ë¤Ê¤Ã¤¿»þ¤Ë -Ää»ß (block) ¤»¤º¤Ë¹Ô¤¦¤Ë¤Ï¡¢¥­¥å¡¼¤òÈóÄä»ß¥â¡¼¥É (non-blocking mode) -¤ËÀßÄꤷ¤Æ¤ª¤¯¤È¤è¤¤)¡£ +を再度呼び出すのは、読み出していないメッセージを全部読み出して +キューが空になる前にすべきである +(キューからのメッセージ読み出しをキューが空になった時に +停止 (block) せずに行うには、キューを非停止モード (non-blocking mode) +に設定しておくとよい)。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success .\"O .BR mq_notify () .\"O returns 0; on error, \-1 is returned, with .\"O .I errno .\"O set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR mq_notify () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤ò¥¨¥é¡¼¤ò¼¨¤¹ÃͤËÀßÄꤹ¤ë¡£ +をエラーを示す値に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O The descriptor specified in .\"O .I mqdes .\"O is invalid. .I mqdes -¤Ë»ØÄꤵ¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +に指定されたディスクリプタが不正である。 .TP .B EBUSY .\"O Another process has already registered to receive notification .\"O for this message queue. -ÊÌ¤Î¥×¥í¥»¥¹¤¬¤¹¤Ç¤Ë -¤³¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤ËÂФ¹¤ëÄÌÃΤò¼õ¿®¤¹¤ë¤è¤¦¤ËÅÐÏ¿¤·¤Æ¤¤¤ë¡£ +別のプロセスがすでに +このメッセージキューに対する通知を受信するように登録している。 .TP .B EINVAL .\"O .I sevp\->sigev_notify @@ -259,17 +259,17 @@ mq_notify \- .\"O .I sevp\->sigev_signo .\"O is not a valid signal number. .I sevp\->sigev_notify -¤¬µö²Ä¤µ¤ì¤¿ÃͤΤ¤¤º¤ì¤Ç¤â¤Ê¤¤¡£¤â¤·¤¯¤Ï +が許可された値のいずれでもない。もしくは .I sevp\->sigev_notify -¤¬ +が .B SIGEV_SIGNAL -¤À¤¬ +だが .I sevp\->sigev_signo -¤¬Í­¸ú¤Ê¥·¥°¥Ê¥ëÈÖ¹æ¤Ç¤Ï¤Ê¤¤¡£ +が有効なシグナル番号ではない。 .TP .B ENOMEM .\"O Insufficient memory. -ɬÍפʥá¥â¥ê¤¬¤Ê¤«¤Ã¤¿¡£ +必要なメモリがなかった。 .PP .\"O POSIX.1-2008 says that an implementation .\"O .I may @@ -281,29 +281,29 @@ mq_notify \- .\"O is NULL, and the caller is not currently registered to receive .\"O notifications for the queue .\"O .IR mqdes . -POSIX.1-2008 ¤Ç¤Ï¡¢ +POSIX.1-2008 では、 .I sevp -¤¬ NULL ¤Ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬¥­¥å¡¼ +が NULL で、呼び出し元のプロセスがキュー .I mqdes -¤Ë´Ø¤¹¤ëÄÌÃΤò¼õ¿®¤¹¤ë¤è¤¦¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¥¨¥é¡¼ +に関する通知を受信するように登録されていない場合、エラー .B EINVAL -¤òÀ¸À®¤¹¤ë¤è¤¦¤Ê¼ÂÁõ¤ò¹Ô¤Ã¤Æ¤â¡Ö¤è¤¤¡×¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -.\" Linux ¤Î¼ÂÁõ¤Ç¤Ï EINVAL ¤ÏÀ¸À®¤µ¤ì¤Ê¤¤ +を生成するような実装を行っても「よい」ことになっている。 +.\" Linux の実装では EINVAL は生成されない .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The following program registers a notification request for the .\"O message queue named in its command-line argument. .\"O Notification is performed by creating a thread. .\"O The thread executes a function which reads one message from the .\"O queue and then terminates the process. -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢ -¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿Ì¾Á°¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ø¤Î -ÄÌÃÎÍ×µá¤òÅÐÏ¿¤·¡¢ÄÌÃΤϥ¹¥ì¥Ã¥É¤ÎºîÀ®¤Ë¤è¤Ã¤Æ¹Ô¤ï¤ì¤ë¡£ -¤½¤Î¥¹¥ì¥Ã¥É¤Ï¡¢¤½¤Î¥­¥å¡¼¤«¤é¥á¥Ã¥»¡¼¥¸¤ò°ì¤ÄÆɤ߽Ф·¤Æ¤«¤é¡¢ -¥×¥í¥»¥¹¤ò½ªÎ»¤¹¤ë´Ø¿ô¤ò¼Â¹Ô¤¹¤ë¡£ +以下のプログラムは、 +コマンドライン引き数で指定された名前のメッセージキューへの +通知要求を登録し、通知はスレッドの作成によって行われる。 +そのスレッドは、そのキューからメッセージを一つ読み出してから、 +プロセスを終了する関数を実行する。 .nf #include @@ -316,7 +316,7 @@ POSIX.1-2001. do { perror(msg); exit(EXIT_FAILURE); } while (0) .\"O static void /* Thread start function */ -static void /* ¥¹¥ì¥Ã¥É³«»Ï´Ø¿ô */ +static void /* スレッド開始関数 */ tfunc(union sigval sv) { struct mq_attr attr; @@ -325,8 +325,8 @@ tfunc(union sigval sv) mqd_t mqdes = *((mqd_t *) sv.sival_ptr); .\"O /* Determine max. msg size; allocate buffer to receive msg */ - /* ºÇÂç¥á¥Ã¥»¡¼¥¸¥µ¥¤¥º¤ò·èÄꤷ¡¢ - ¥á¥Ã¥»¡¼¥¸¼õ¿®ÍѤΥХåե¡¤ò³ÎÊݤ¹¤ë */ + /* 最大メッセージサイズを決定し、 + メッセージ受信用のバッファを確保する */ if (mq_getattr(mqdes, &attr) == \-1) handle_error("mq_getattr"); @@ -341,7 +341,7 @@ tfunc(union sigval sv) printf("Read %ld bytes from MQ\\n", (long) nr); free(buf); .\"O exit(EXIT_SUCCESS); /* Terminate the process */ - exit(EXIT_SUCCESS); /* ¥×¥í¥»¥¹¤ò½ªÎ»¤¹¤ë */ + exit(EXIT_SUCCESS); /* プロセスを終了する */ } int @@ -363,16 +363,16 @@ main(int argc, char *argv[]) sev.sigev_notify_function = tfunc; sev.sigev_notify_attributes = NULL; .\"O sev.sigev_value.sival_ptr = &mqdes; /* Arg. to thread func. */ - sev.sigev_value.sival_ptr = &mqdes; /* ¥¹¥ì¥Ã¥É´Ø¿ô¤ËÅϤ¹°ú¤­¿ô */ + sev.sigev_value.sival_ptr = &mqdes; /* スレッド関数に渡す引き数 */ if (mq_notify(mqdes, &sev) == \-1) handle_error("mq_notify"); .\"O pause(); /* Process will be terminated by thread function */ - pause(); /* ¥×¥í¥»¥¹¤Ï¥¹¥ì¥Ã¥É´Ø¿ô¤Ë¤è¤ê½ªÎ»¤µ¤ì¤ë */ + pause(); /* プロセスはスレッド関数により終了される */ } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mq_close (3), .BR mq_getattr (3), .BR mq_open (3), diff --git a/draft/man3/mq_open.3 b/draft/man3/mq_open.3 index e761cb40..07e27cdc 100644 --- a/draft/man3/mq_open.3 +++ b/draft/man3/mq_open.3 @@ -28,11 +28,11 @@ .\" .TH MQ_OPEN 3 2009-02-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mq_open \- open a message queue -mq_open \- ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤ò¥ª¡¼¥×¥ó¤¹¤ë +mq_open \- メッセージキューをオープンする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .BR "#include " " /* For O_* constants */" .BR "#include " " /* For mode constants */" @@ -44,9 +44,9 @@ mq_open \- .fi .sp .\"O Link with \fI\-lrt\fP. -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR mq_open () .\"O creates a new POSIX message queue or opens an existing queue. .\"O The queue is identified by @@ -56,14 +56,14 @@ mq_open \- .\"O see .\"O .BR mq_overview (7). .BR mq_open () -¤Ï¡¢¿·¤·¤¤ POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤òºîÀ®¤¹¤ë¤«¡¢´û¸¤Î¥­¥å¡¼¤ò -¥ª¡¼¥×¥ó¤¹¤ë¡£¥­¥å¡¼¤Ï +は、新しい POSIX メッセージキューを作成するか、既存のキューを +オープンする。キューは .I name -¤Ç¼±Ê̤µ¤ì¤ë¡£ +で識別される。 .I name -¤Î¹½À®¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï +の構成の詳細については .B mq_overview (7) -¤ò»²¾È¡£ +を参照。 .\"O The .\"O .I oflag @@ -73,32 +73,32 @@ mq_open \- .\"O Exactly one of the following must be specified in .\"O .IR oflag : .I oflag -°ú¤­¿ô¤Ë¤Ï¡¢´Ø¿ô¸Æ¤Ó½Ð¤·¤ÎÁàºî¤òÀ©¸æ¤¹¤ë¥Õ¥é¥°¤ò»ØÄꤹ¤ë -(oflag ¤ÎÃͤÎÄêµÁ¤Ï +引き数には、関数呼び出しの操作を制御するフラグを指定する +(oflag の値の定義は .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ë¤è¤êÆÀ¤é¤ì¤ë)¡£ +のインクルードにより得られる)。 .I oflag -¤Ë¤Ï¡¢°Ê²¼¤Î¤¦¤Á¤¤¤º¤ì¤«°ì¤Ä¤òɬ¤º»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +には、以下のうちいずれか一つを必ず指定しなければならない。 .TP .B O_RDONLY .\"O Open the queue to receive messages only. -¥á¥Ã¥»¡¼¥¸¤Î¼õ¿®ÀìÍѤȤ·¤Æ¥­¥å¡¼¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£ +メッセージの受信専用としてキューをオープンする。 .TP .B O_WRONLY .\"O Open the queue to send messages only. -¥á¥Ã¥»¡¼¥¸¤ÎÁ÷¿®ÀìÍѤȤ·¤Æ¥­¥å¡¼¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£ +メッセージの送信専用としてキューをオープンする。 .TP .B O_RDWR .\"O Open the queue to both send and receive messages. -¥á¥Ã¥»¡¼¥¸¤ÎÁ÷¼õ¿®Î¾ÍѤȤ·¤Æ¥­¥å¡¼¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£ +メッセージの送受信両用としてキューをオープンする。 .PP .\"O Zero or more of the following flags can additionally be .\"O .IR OR ed .\"O in .\"O .IR oflag : -0 ¸Ä°Ê¾å¤Î²¼µ­¤Î¥Õ¥é¥°¤ò¡¢¥Ó¥Ã¥Èñ°Ì¤Î OR (ÏÀÍýÏÂ) ¤Ç +0 個以上の下記のフラグを、ビット単位の OR (論理和) で .I oflag -¤ËÄɲäǻØÄê¤Ç¤­¤ë¡£ +に追加で指定できる。 .TP .B O_NONBLOCK .\"O Open the queue in nonblocking mode. @@ -108,13 +108,13 @@ mq_open \- .\"O .BR mq_send (3) .\"O would normally block, these functions instead fail with the error .\"O .BR EAGAIN . -ÈóÄä»ß (nonblocking) ¥â¡¼¥É¤Ç¥­¥å¡¼¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£ +非停止 (nonblocking) モードでキューをオープンする。 .BR mq_receive (3) -¤È +と .BR mq_send (3) -¤Ï¡¢Ä̾ï¤ÏÄä»ß (block) ¤¹¤ë¾õ¶·¤Ë¤ª¤¤¤Æ¡¢¥¨¥é¡¼ +は、通常は停止 (block) する状況において、エラー .B EAGAIN -¤Ç¼ºÇÔ¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +で失敗するようになる。 .TP .B O_CREAT .\"O Create the message queue if it does not exist. @@ -123,10 +123,10 @@ mq_open \- .\"O The group ownership (group ID) is set to the effective group ID .\"O of the calling process. .\"O .\" In reality the file system IDs are used on Linux. -¸ºß¤·¤Ê¤¤¾ì¹ç¡¢¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤òºîÀ®¤¹¤ë¡£ -¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î½êÍ­¼Ô (¥æ¡¼¥¶ ID) ¤È¥°¥ë¡¼¥×½êÍ­¸¢ (¥°¥ë¡¼¥× ID) ¤Ï¡¢ -¤½¤ì¤¾¤ì¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤È¼Â¸ú¥°¥ë¡¼¥× ID ¤ËÀßÄꤵ¤ì¤ë¡£ -.\" ¼ÂºÝ¤Ï¡¢Linux ¤Ç¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à ID ¤¬»ÈÍѤµ¤ì¤ë¡£ +存在しない場合、メッセージキューを作成する。 +メッセージキューの所有者 (ユーザ ID) とグループ所有権 (グループ ID) は、 +それぞれ呼び出し元プロセスの実効ユーザ ID と実効グループ ID に設定される。 +.\" 実際は、Linux ではファイルシステム ID が使用される。 .TP .B O_EXCL .\"O If @@ -138,13 +138,13 @@ mq_open \- .\"O already exists, then fail with the error .\"O .BR EEXIST . .B O_CREAT -¤¬ +が .I oflag -¤Ë»ØÄꤵ¤ì¡¢¤«¤Ä»ØÄꤵ¤ì¤¿Ì¾Á° +に指定され、かつ指定された名前 .I name -¤ò»ý¤Ä¥­¥å¡¼¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢¥¨¥é¡¼ +を持つキューがすでに存在する場合、エラー .B EEXIST -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .PP .\"O If .\"O .B O_CREAT @@ -152,9 +152,9 @@ mq_open \- .\"O .IR oflag , .\"O then two additional arguments must be supplied. .I oflag -¤Ë +に .B O_CREAT -¤ò»ØÄꤹ¤ë¾ì¹ç¡¢ÄÉ²Ã¤Ç 2¤Ä¤Î°ú¤­¿ô¤òÍ¿¤¨¤ëɬÍפ¬¤¢¤ë¡£ +を指定する場合、追加で 2つの引き数を与える必要がある。 .\"O The .\"O .I mode .\"O argument specifies the permissions to be placed on the new queue, @@ -164,13 +164,13 @@ mq_open \- .\"O .IR .) .\"O The permissions settings are masked against the process umask. .I mode -°ú¤­¿ô¤Ï¡¢¿·¤·¤¤¥­¥å¡¼¤ËŬÍѤµ¤ì¤ëµö²ÄÀßÄê (permission) ¤ò¡¢ +引き数は、新しいキューに適用される許可設定 (permission) を、 .BR open (2) -¤ÈƱ¤¸¤è¤¦¤Ë»ØÄꤹ¤ë -(µö²Ä¥Ó¥Ã¥È¤Î¥·¥ó¥Ü¥ëÄêµÁ¤Ï +と同じように指定する +(許可ビットのシンボル定義は .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ë¤è¤êÆÀ¤é¤ì¤ë)¡£ -µö²ÄÀßÄê¤Ï¥×¥í¥»¥¹¤Î umask ¤Ç¥Þ¥¹¥¯¤µ¤ì¤ë¡£ +のインクルードにより得られる)。 +許可設定はプロセスの umask でマスクされる。 .\"O The .\"O .I attr .\"O argument specifies attributes for the queue. @@ -182,21 +182,21 @@ mq_open \- .\"O is NULL, then the queue is created with implementation-defined .\"O default attributes. .I attr -°ú¤­¿ô¤Ï¡¢¥­¥å¡¼¤Î°À­¤ò»ØÄꤹ¤ë¡£¾ÜºÙ¤Ï¡¢ +引き数は、キューの属性を指定する。詳細は、 .BR mq_getattr (3) -¤ò»²¾È¡£ +を参照。 .I attr -¤¬ NULL ¤Î¾ì¹ç¡¢¥­¥å¡¼¤Ï¼ÂÁõ¤ÇÄêµÁ¤µ¤ì¤¿¥Ç¥Õ¥©¥ë¥È°À­¤ÇºîÀ®¤µ¤ì¤ë¡£ +が NULL の場合、キューは実装で定義されたデフォルト属性で作成される。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR mq_open () .\"O returns a message queue descriptor for use by other .\"O message queue functions. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR mq_open () -¤Ï¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò»Ò (message queue descriptor) ¤òÊÖ¤¹¡£ -¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò»Ò¤Ï¾¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼´ØÏ¢¤Î´Ø¿ô¤Ç»ÈÍѤµ¤ì¤ë¡£ +はメッセージキュー記述子 (message queue descriptor) を返す。 +メッセージキュー記述子は他のメッセージキュー関連の関数で使用される。 .\"O On error, .\"O .BR mq_open () .\"O returns @@ -204,27 +204,27 @@ mq_open \- .\"O with .\"O .I errno .\"O set to indicate the error. -¥¨¥é¡¼¤Î¾ì¹ç¡¢ +エラーの場合、 .BR mq_open () -¤Ï +は .I "(mqd_t)\ \-1" -¤òÊÖ¤·¡¢ +を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O The queue exists, but the caller does not have permission to .\"O open it in the specified mode. -¥­¥å¡¼¤Ï¸ºß¤¹¤ë¤¬¡¢¸Æ¤Ó½Ð¤·¸µ¤¬»ØÄꤵ¤ì¤¿¥â¡¼¥É¤Ç¤½¤Î¥­¥å¡¼ -¤ò¥ª¡¼¥×¥ó¤¹¤ëµö²Ä¤ò»ý¤¿¤Ê¤¤¡£ +キューは存在するが、呼び出し元が指定されたモードでそのキュー +をオープンする許可を持たない。 .TP .B EACCES .\"O .I name .\"O contained more than one slash. .I name -¤Ë¥¹¥é¥Ã¥·¥å¤¬ 2 ¸Ä°Ê¾å´Þ¤Þ¤ì¤Æ¤¤¤¿¡£ +にスラッシュが 2 個以上含まれていた。 .\" Note that this isn't consistent with the same case for sem_open() .TP .B EEXIST @@ -238,13 +238,13 @@ mq_open \- .\"O .I name .\"O already exists. .I oflag -¤Ë +に .B O_CREAT -¤È +と .B O_EXCL -¤ÎξÊý¤¬»ØÄꤵ¤ì¤¿¤¬¡¢»ØÄꤵ¤ì¤¿Ì¾Á° +の両方が指定されたが、指定された名前 .I name -¤ò»ý¤Ä¥­¥å¡¼¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¡£ +を持つキューがすでに存在する。 .TP .B EINVAL .\"O .B O_CREAT @@ -259,16 +259,16 @@ mq_open \- .\"O was invalid. .\"O Both of these fields must be greater than zero. .I oflag -¤Ë +に .B O_CREAT -¤¬»ØÄꤵ¤ì¡¢¤«¤Ä +が指定され、かつ .I attr -¤¬ NULL °Ê³°¤À¤¬¡¢ +が NULL 以外だが、 .I attr\->mq_maxmsg -¤« +か .I attr\->mq_msqsize -¤¬ÉÔÀµ¤Ç¤¢¤Ã¤¿¡£ -¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤ÏξÊý¤È¤â 0 ¤è¤êÂ礭¤¯¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +が不正であった。 +これらのフィールドは両方とも 0 より大きくなければならない。 .\"O In a process that is unprivileged (does not have the .\"O .B CAP_SYS_RESOURCE .\"O capability), @@ -288,42 +288,42 @@ mq_open \- .\"O (See .\"O .BR mq_overview (7) .\"O for details of these limits.) -¥×¥í¥»¥¹¤¬Æø¢¤ò»ý¤¿¤Ê¤¤ +プロセスが特権を持たない .RB ( CAP_SYS_RESOURCE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤) ¾ì¹ç¡¢ +ケーパビリティを持たない) 場合、 .I attr\->mq_maxmsg -¤È +と .I attr\->mq_msgsize -¤Ï¡¢¤½¤ì¤¾¤ì¾å¸Â -.IR msg_max ¡¢ +は、それぞれ上限 +.IR msg_max 、 .I msgsize_max -°Ê²¼¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤Þ¤¿¡¢Æø¢¥×¥í¥»¥¹¤Î¾ì¹ç¤Ç¤â¡¢ +以下でなければならない。 +また、特権プロセスの場合でも、 .I attr\->mq_maxmsg -¤Ï +は .B HARD_MAX -¾å¸Â¤òĶ¤¨¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -(¤³¤ì¤é¤Î¾å¸Â¤Ë´Ø¤¹¤ë¾ÜºÙ¤Ï +上限を超えることはできない。 +(これらの上限に関する詳細は .BR mq_overview (7) -¤ò»²¾È¡£) +を参照。) .TP .B EMFILE .\"O The process already has the maximum number of files and .\"O message queues open. -¤½¤Î¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤È¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î¿ô¤¬ -¥×¥í¥»¥¹Ëè¤Î¾å¸Â¤Ë㤷¤Æ¤¤¤ë¡£ +そのプロセスがオープンしているファイルとメッセージキューの数が +プロセス毎の上限に達している。 .TP .B ENAMETOOLONG .\"O .I name .\"O was too long. .I name -¤¬Ä¹¤¹¤®¤ë¡£ +が長すぎる。 .TP .B ENFILE .\"O The system limit on the total number of open files and message queues .\"O has been reached. -¥·¥¹¥Æ¥àÁ´ÂΤǥª¡¼¥×¥ó¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤È¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î¹ç·×¿ô¤¬ -¥·¥¹¥Æ¥à¾å¸Â¤Ë㤷¤Æ¤¤¤ë¡£ +システム全体でオープンしているファイルとメッセージキューの合計数が +システム上限に達している。 .TP .B ENOENT .\"O The @@ -334,22 +334,22 @@ mq_open \- .\"O .I name .\"O exists. .B O_CREAT -¥Õ¥é¥°¤¬ +フラグが .I oflag -¤Ë»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¤¬¡¢»ØÄꤵ¤ì¤¿Ì¾Á° +に指定されなかったが、指定された名前 .I name -¤ò»ý¤Ä¥­¥å¡¼¤¬Â¸ºß¤·¤Ê¤¤¡£ +を持つキューが存在しない。 .TP .B ENOENT .\"O .I name .\"O was just "/" followed by no other characters. .I name -¤¬ "/" ¤À¤±¤Ç¡¢¤½¤Î¸å¤í¤Ë¾¤Îʸ»ú¤¬Â³¤¤¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +が "/" だけで、その後ろに他の文字が続いていなかった。 .\" Note that this isn't consistent with the same case for sem_open() .TP .B ENOMEM .\"O Insufficient memory. -½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +十分なメモリがない。 .TP .B ENOSPC .\"O Insufficient space for the creation of a new message queue. @@ -357,26 +357,26 @@ mq_open \- .\"O .I queues_max .\"O limit was encountered; see .\"O .BR mq_overview (7). -¿·¤·¤¤¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤òºîÀ®¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¶õ´Ö¤¬¤Ê¤¤¡£ -¤³¤Î¥¨¥é¡¼¤Ï¤ª¤½¤é¤¯ +新しいメッセージキューを作成するのに十分な空間がない。 +このエラーはおそらく .I queues_max -¾å¸Â¤ËÄñ¿¨¤·¤¿¤¿¤áµ¯¤³¤Ã¤¿¤Î¤À¤í¤¦¡£ +上限に抵触したため起こったのだろう。 .BR mq_overview (7) -¤ò»²¾È¡£ +を参照。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O In kernels before 2.6.14, .\"O the process umask was not applied to the permissions specified in .\"O .IR mode . -2.6.14 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ë¤Ï¡¢ -¥×¥í¥»¥¹¤Î umask ¤¬ +2.6.14 より前のカーネルには、 +プロセスの umask が .I mode -¤Ç»ØÄꤵ¤ì¤¿µö²ÄÀßÄê¤ËŬÍѤµ¤ì¤Ê¤«¤Ã¤¿¡£ +で指定された許可設定に適用されなかった。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mq_close (3), .BR mq_getattr (3), .BR mq_notify (3), diff --git a/draft/man3/mq_receive.3 b/draft/man3/mq_receive.3 index 621778ca..77c677f0 100644 --- a/draft/man3/mq_receive.3 +++ b/draft/man3/mq_receive.3 @@ -29,11 +29,11 @@ .\" .TH MQ_RECEIVE 3 2010-09-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mq_receive, mq_timedreceive \- receive a message from a message queue -mq_receive, mq_timedreceive \- ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤«¤é¥á¥Ã¥»¡¼¥¸¤ò¼õ¿®¤¹¤ë +mq_receive, mq_timedreceive \- メッセージキューからメッセージを受信する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -49,15 +49,15 @@ mq_receive, mq_timedreceive \- .fi .sp .\"O Link with \fI\-lrt\fP. -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP でリンクする。 .sp .ad l .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR mq_timedreceive (): @@ -66,7 +66,7 @@ _XOPEN_SOURCE\ >=\ 600 || _POSIX_C_SOURCE\ >=\ 200112L .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR mq_receive () .\"O removes the oldest message with the highest priority from .\"O the message queue referred to by the descriptor @@ -74,12 +74,12 @@ _XOPEN_SOURCE\ >=\ 600 || _POSIX_C_SOURCE\ >=\ 200112L .\"O and places it in the buffer pointed to by .\"O .IR msg_ptr . .BR mq_receive () -¤Ï¡¢µ­½Ò»Ò +は、記述子 .I mqdes -¤Ç»²¾È¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤«¤éºÇ¤â¹â¤¤Í¥ÀèÅÙ¤ò»ý¤Ä -ºÇ¤â¸Å¤¤¥á¥Ã¥»¡¼¥¸¤òºï½ü¤·¡¢¤½¤Î¥á¥Ã¥»¡¼¥¸¤ò +で参照されるメッセージキューから最も高い優先度を持つ +最も古いメッセージを削除し、そのメッセージを .I msg_ptr -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤¹¤ë¡£ +が指すバッファに格納する。 .\"O The .\"O .I msg_len .\"O argument specifies the size of the buffer pointed to by @@ -89,21 +89,21 @@ _XOPEN_SOURCE\ >=\ 600 || _POSIX_C_SOURCE\ >=\ 200112L .\"O attribute of the queue (see .\"O .BR mq_getattr (3)). .I msg_len -°ú¤­¿ô¤Ï¡¢ +引き数は、 .I msg_ptr -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ¤ò¼¨¤¹¡£¤³¤ÎÃͤϥ­¥å¡¼¤Î +が指すバッファの大きさを示す。この値はキューの .I mq_msgsize -°À­¤è¤ê¤âÂ礭¤¯¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ +属性よりも大きくなければならない .RB ( mq_getattr (3) -»²¾È)¡£ +参照)。 .\"O If .\"O .I prio .\"O is not NULL, then the buffer to which it points is used .\"O to return the priority associated with the received message. .I prio -¤¬ NULL °Ê³°¤Î¾ì¹ç¡¢ +が NULL 以外の場合、 .I prio -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë¼õ¿®¤·¤¿¥á¥Ã¥»¡¼¥¸¤ÎÍ¥ÀèÅÙ¤¬³ÊǼ¤µ¤ì¤ë¡£ +が指すバッファに受信したメッセージの優先度が格納される。 .\"O If the queue is empty, then, by default, .\"O .BR mq_receive () @@ -114,17 +114,17 @@ _XOPEN_SOURCE\ >=\ 600 || _POSIX_C_SOURCE\ >=\ 200112L .\"O flag is enabled for the message queue description, .\"O then the call instead fails immediately with the error .\"O .BR EAGAIN . -¥­¥å¡¼¤¬¶õ¤Î¾ì¹ç¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +キューが空の場合、デフォルトでは、 .BR mq_receive () -¤Ï¡¢¿·¤·¤¤¥á¥Ã¥»¡¼¥¸¤¬ÆϤ¯¤«¡¢´Ø¿ô¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê -ÃæÃǤµ¤ì¤ë¤Þ¤Ç¡¢Ää»ß (block) ¤¹¤ë¡£ -¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò (message queue description) ¤Ç +は、新しいメッセージが届くか、関数呼び出しがシグナルハンドラにより +中断されるまで、停止 (block) する。 +メッセージキュー記述 (message queue description) で .B O_NONBLOCK -¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ +フラグが有効になっている場合は、 .BR mq_receive () -¤Ï¥¨¥é¡¼ +はエラー .B EAGAIN -¤Ç¤¹¤°¤Ë¼ºÇÔ¤¹¤ë¡£ +ですぐに失敗する。 .\"O .BR mq_timedreceive () .\"O behaves just like @@ -139,24 +139,24 @@ _XOPEN_SOURCE\ >=\ 600 || _POSIX_C_SOURCE\ >=\ 200112L .\"O since the Epoch, 1970-01-01 00:00:00 +0000 (UTC), and it is .\"O specified in the following structure: .BR mq_timedreceive () -¤Ï +は .BR mq_receive () -¤ÈÁ´¤¯Æ±¤¸Æ°ºî¤ò¤¹¤ë¤¬¡¢ -¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤¬¶õ¤Ç¡¢¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò¤Ç +と全く同じ動作をするが、 +メッセージキューが空で、メッセージキュー記述で .B O_NONBLOCK -¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤¬Ää»ß¤¹¤ë»þ´Ö¤Î¾å¸Â¤ò +フラグが有効になっていない場合に、この呼び出しが停止する時間の上限を .I abs_timeout -¤¬»Ø¤¹¹½Â¤ÂΤǻØÄꤹ¤ëÅÀ¤¬°Û¤Ê¤ë¡£¤³¤Î¾å¸Â¤Ï¡¢¥¿¥¤¥à¥¢¥¦¥È¤Î»þ¹ï¤ò¡¢ -»þ¹ïµª¸µ (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) ¤«¤é¤Î·Ð²á»þ´Ö -(ÉäȥʥÎÉäÎÁÈ) ¤Ç»ØÄꤹ¤ë¡£¥¿¥¤¥à¥¢¥¦¥È»þ¹ï¤Ï°Ê²¼¤Î¹½Â¤ÂΤǻØÄꤹ¤ë: +が指す構造体で指定する点が異なる。この上限は、タイムアウトの時刻を、 +時刻紀元 (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) からの経過時間 +(秒とナノ秒の組) で指定する。タイムアウト時刻は以下の構造体で指定する: .sp .in +4n .nf struct timespec { .\"O time_t tv_sec; /* seconds */ .\"O long tv_nsec; /* nanoseconds */ - time_t tv_sec; /* Éà */ - long tv_nsec; /* ¥Ê¥ÎÉà */ + time_t tv_sec; /* 秒 */ + long tv_nsec; /* ナノ秒 */ }; .fi @@ -165,12 +165,12 @@ struct timespec { .\"O and the timeout has already expired by the time of the call, .\"O .BR mq_timedreceive () .\"O returns immediately. -¥á¥Ã¥»¡¼¥¸¤¬¥­¥å¡¼¤Ë¤Ê¤¯¡¢´Ø¿ô¸Æ¤Ó½Ð¤·»þ¤Ë¤¹¤Ç¤Ë¥¿¥¤¥à¥¢¥¦¥È»þ¹ï¤¬ -²á¤®¤Æ¤¤¤ë¾ì¹ç¡¢ +メッセージがキューになく、関数呼び出し時にすでにタイムアウト時刻が +過ぎている場合、 .BR mq_timedreceive () -¤Ï¤¹¤°¤ËÊ֤롣 +はすぐに返る。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR mq_receive () .\"O and @@ -179,41 +179,41 @@ struct timespec { .\"O on error, \-1 is returned, with .\"O .I errno .\"O set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR mq_receive () -¤È +と .BR mq_timedreceive () -¤Ï¼õ¿®¤·¤¿¥á¥Ã¥»¡¼¥¸¤Î¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は受信したメッセージのバイト数を返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EAGAIN .\"O The queue was empty, and the .\"O .B O_NONBLOCK .\"O flag was set for the message queue description referred to by .\"O .IR mqdes . -¥­¥å¡¼¤¬¶õ¤Ç¡¢¤«¤Ä +キューが空で、かつ .I mqdes -¤Ç»²¾È¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò¤Ç +で参照されるメッセージキュー記述で .B O_NONBLOCK -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤¿¡£ +フラグがセットされていた。 .TP .B EBADF .\"O The descriptor specified in .\"O .I mqdes .\"O was invalid. .I mqdes -¤Ç»ØÄꤵ¤ì¤¿µ­½Ò»Ò¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +で指定された記述子が不正である。 .TP .B EINTR .\"O The call was interrupted by a signal handler; see .\"O .BR signal (7). -´Ø¿ô¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤êÃæÃǤµ¤ì¤¿¡£ +関数呼び出しがシグナルハンドラにより中断された。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .\"O The call would have blocked, and @@ -223,15 +223,15 @@ struct timespec { .\"O was less than zero, or because .\"O .I tv_nsec .\"O was less than zero or greater than 1000 million. -´Ø¿ô¸Æ¤Ó½Ð¤·¤ÏÄä»ß¤¹¤ë¤Ï¤º¤Ç¤¢¤Ã¤¿¤¬¡¢ +関数呼び出しは停止するはずであったが、 .I abs_timeout -¤¬ÉÔÀµ¤Ç¤¢¤Ã¤¿¡£ +が不正であった。 .I abs_timeout -¤¬ÉÔÀµ¤È¤Ï¡¢ +が不正とは、 .I tv_sec -¤¬ 0 ̤Ëþ¡¢¤â¤·¤¯¤Ï +が 0 未満、もしくは .I tv_nsec -¤¬ 0 ̤Ëþ¤« 1,000,000,000 ¤è¤êÂ礭¤¤¡¢¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ +が 0 未満か 1,000,000,000 より大きい、ということである。 .TP .B EMSGSIZE .\"O .I msg_len @@ -239,32 +239,32 @@ struct timespec { .\"O .I mq_msgsize .\"O attribute of the message queue. .I msg_len -¤¬¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î +がメッセージキューの .I mq_msgsize -°À­¤è¤ê¤â¾®¤µ¤«¤Ã¤¿¡£ +属性よりも小さかった。 .TP .B ETIMEDOUT .\"O The call timed out before a message could be transferred. -¥á¥Ã¥»¡¼¥¸¤¬Å¾Á÷¤µ¤ì¤ëÁ°¤Ë´Ø¿ô¸Æ¤Ó½Ð¤·¤¬¥¿¥¤¥à¥¢¥¦¥È¤·¤¿¡£ +メッセージが転送される前に関数呼び出しがタイムアウトした。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O On Linux, .\"O .BR mq_timedreceive () .\"O is a system call, and .\"O .BR mq_receive () .\"O is a library function layered on top of that system call. -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR mq_timedreceive () -¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤¢¤ë¡£ +はシステムコールである。 .BR mq_receive () -¤Ï¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ç¡¢ +はライブラリ関数で、 .BR mq_timedreceive () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÍѤ¤¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +システムコールを用いて実装されている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mq_close (3), .BR mq_getattr (3), .BR mq_notify (3), diff --git a/draft/man3/mq_send.3 b/draft/man3/mq_send.3 index 8affe5f2..be812b5c 100644 --- a/draft/man3/mq_send.3 +++ b/draft/man3/mq_send.3 @@ -29,11 +29,11 @@ .\" .TH MQ_SEND 3 2010-09-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mq_send, mq_timedsend \- send a message to a message queue -mq_send, mq_timedsend \- ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ë¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¤¹¤ë +mq_send, mq_timedsend \- メッセージキューにメッセージを送信する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -49,15 +49,15 @@ mq_send, mq_timedsend \- .fi .sp .\"O Link with \fI\-lrt\fP. -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP でリンクする。 .sp .ad l .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR mq_timedsend (): @@ -66,7 +66,7 @@ _XOPEN_SOURCE\ >=\ 600 || _POSIX_C_SOURCE\ >=\ 200112L .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR mq_send () .\"O adds the message pointed to by .\"O .I msg_ptr @@ -81,18 +81,18 @@ _XOPEN_SOURCE\ >=\ 600 || _POSIX_C_SOURCE\ >=\ 200112L .\"O attribute. .\"O Zero-length messages are allowed. .BR mq_send () -¤Ï¡¢µ­½Ò»Ò +は、記述子 .I mqdes -¤Ç»²¾È¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ë +で参照されるメッセージキューに .I msg_ptr -¤¬»Ø¤¹¥á¥Ã¥»¡¼¥¸¤òÄɲ乤롣 +が指すメッセージを追加する。 .I msg_len -°ú¤­¿ô¤Ï¡¢ +引き数は、 .I msg_ptr -¤¬»Ø¤¹¥á¥Ã¥»¡¼¥¸¤ÎŤµ¤ò¼¨¤¹¡£¤³¤ÎŤµ¤Ï¥­¥å¡¼¤Î +が指すメッセージの長さを示す。この長さはキューの .I mq_msgsize -°À­°Ê²¼¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Ťµ¤¬ 0 ¤Î¥á¥Ã¥»¡¼¥¸¤âǧ¤á¤é¤ì¤Æ¤¤¤ë¡£ +属性以下でなければならない。 +長さが 0 のメッセージも認められている。 .\"O The .\"O .I msg_prio @@ -102,9 +102,9 @@ _XOPEN_SOURCE\ >=\ 600 || _POSIX_C_SOURCE\ >=\ 200112L .\"O with newer messages of the same priority being placed after .\"O older messages with the same priority. .I msg_prio -°ú¤­¿ô¤Ï¡¢¥á¥Ã¥»¡¼¥¸¤ÎÍ¥ÀèÅÙ¤ò»ØÄꤹ¤ëÉé¤Ç¤Ê¤¤À°¿ô¤Ç¤¢¤ë¡£ -¥á¥Ã¥»¡¼¥¸¤ÏÍ¥ÀèÅ٤ι߽ç¤Ç¥­¥å¡¼¤Ë³ÊǼ¤µ¤ì¡¢Æ±¤¸Í¥ÀèÅ٤ο·¤·¤¤¥á¥Ã¥»¡¼¥¸¤Ï -Ʊ¤¸Í¥ÀèÅ٤θŤ¤¥á¥Ã¥»¡¼¥¸¤Î¸å¤í¤Ë³ÊǼ¤µ¤ì¤ë¡£ +引き数は、メッセージの優先度を指定する負でない整数である。 +メッセージは優先度の降順でキューに格納され、同じ優先度の新しいメッセージは +同じ優先度の古いメッセージの後ろに格納される。 .\"O If the message queue is already full .\"O (i.e., the number of messages on the queue equals the queue's @@ -118,20 +118,20 @@ _XOPEN_SOURCE\ >=\ 600 || _POSIX_C_SOURCE\ >=\ 200112L .\"O flag is enabled for the message queue description, .\"O then the call instead fails immediately with the error .\"O .BR EAGAIN . -¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤¬¤¹¤Ç¤Ë°ìÇդξì¹ç -(¤¹¤Ê¤ï¤Á¡¢¥­¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ë¥á¥Ã¥»¡¼¥¸¿ô¤¬¥­¥å¡¼¤Î +メッセージキューがすでに一杯の場合 +(すなわち、キューに入っているメッセージ数がキューの .I mq_maxmsg -°À­¤ÈÅù¤·¤¤¾ì¹ç)¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +属性と等しい場合)、デフォルトでは、 .B mq_send () -¤Ï¡¢¥á¥Ã¥»¡¼¥¸¤ò¥­¥å¡¼¥¤¥ó¥°¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¶õ´Ö¤¬¤Ç¤­¤ë¤«¡¢ -´Ø¿ô¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤êÃæÃǤµ¤ì¤ë¤Þ¤Ç¡¢Ää»ß (block) ¤¹¤ë¡£ -¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò (message queue description) ¤Ç +は、メッセージをキューイングするのに十分な空間ができるか、 +関数呼び出しがシグナルハンドラにより中断されるまで、停止 (block) する。 +メッセージキュー記述 (message queue description) で .B O_NONBLOCK -¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ +フラグが有効になっている場合は、 .BR mq_send () -¤Ï¥¨¥é¡¼ +はエラー .B EAGAIN -¤Ç¤¹¤°¤Ë¼ºÇÔ¤¹¤ë¡£ +ですぐに失敗する。 .\"O .BR mq_timedsend () .\"O behaves just like @@ -146,24 +146,24 @@ _XOPEN_SOURCE\ >=\ 600 || _POSIX_C_SOURCE\ >=\ 200112L .\"O since the Epoch, 1970-01-01 00:00:00 +0000 (UTC), and it is .\"O specified in the following structure: .BR mq_timedsend () -¤Ï +は .BR mq_send () -¤ÈÁ´¤¯Æ±¤¸Æ°ºî¤ò¤¹¤ë¤¬¡¢ -¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤¬°ìÇդǡ¢¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò¤Ç +と全く同じ動作をするが、 +メッセージキューが一杯で、メッセージキュー記述で .B O_NONBLOCK -¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤¬Ää»ß¤¹¤ë»þ´Ö¤Î¾å¸Â¤ò +フラグが有効になっていない場合に、この呼び出しが停止する時間の上限を .I abs_timeout -¤¬»Ø¤¹¹½Â¤ÂΤǻØÄꤹ¤ëÅÀ¤¬°Û¤Ê¤ë¡£¤³¤Î¾å¸Â¤Ï¡¢¥¿¥¤¥à¥¢¥¦¥È¤Î»þ¹ï¤ò -»þ¹ïµª¸µ (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) ¤«¤é¤Î·Ð²á»þ´Ö -(ÉäȥʥÎÉäÎÁÈ) ¤Ç»ØÄꤹ¤ë¡£¥¿¥¤¥à¥¢¥¦¥È»þ¹ï¤Ï°Ê²¼¤Î¹½Â¤ÂΤǻØÄꤹ¤ë: +が指す構造体で指定する点が異なる。この上限は、タイムアウトの時刻を +時刻紀元 (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) からの経過時間 +(秒とナノ秒の組) で指定する。タイムアウト時刻は以下の構造体で指定する: .sp .in +4n .nf struct timespec { .\"O time_t tv_sec; /* seconds */ .\"O long tv_nsec; /* nanoseconds */ - time_t tv_sec; /* Éà */ - long tv_nsec; /* ¥Ê¥ÎÉà */ + time_t tv_sec; /* 秒 */ + long tv_nsec; /* ナノ秒 */ }; .fi @@ -172,12 +172,12 @@ struct timespec { .\"O and the timeout has already expired by the time of the call, .\"O .BR mq_timedsend () .\"O returns immediately. -¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤¬°ìÇդǡ¢´Ø¿ô¸Æ¤Ó½Ð¤·»þ¤Ë¤¹¤Ç¤Ë¥¿¥¤¥à¥¢¥¦¥È»þ¹ï¤¬ -²á¤®¤Æ¤¤¤ë¾ì¹ç¡¢ +メッセージキューが一杯で、関数呼び出し時にすでにタイムアウト時刻が +過ぎている場合、 .BR mq_timedsend () -¤Ï¤¹¤°¤ËÊ֤롣 +はすぐに返る。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR mq_send () .\"O and @@ -185,41 +185,41 @@ struct timespec { .\"O return zero; on error, \-1 is returned, with .\"O .I errno .\"O set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR mq_send () -¤È +と .BR mq_timedsend () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EAGAIN .\"O The queue was full, and the .\"O .B O_NONBLOCK .\"O flag was set for the message queue description referred to by .\"O .IR mqdes . -¥­¥å¡¼¤¬°ìÇդǡ¢¤«¤Ä +キューが一杯で、かつ .I mqdes -¤Ç»²¾È¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò¤Ç +で参照されるメッセージキュー記述で .B O_NONBLOCK -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤¿¡£ +フラグがセットされていた。 .TP .B EBADF .\"O The descriptor specified in .\"O .I mqdes .\"O was invalid. .I mqdes -¤Ç»ØÄꤵ¤ì¤¿µ­½Ò»Ò¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +で指定された記述子が不正である。 .TP .B EINTR .\"O The call was interrupted by a signal handler; see .\"O .BR signal (7). -´Ø¿ô¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤êÃæÃǤµ¤ì¤¿¡£ +関数呼び出しがシグナルハンドラにより中断された。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .\"O The call would have blocked, and @@ -229,15 +229,15 @@ struct timespec { .\"O was less than zero, or because .\"O .I tv_nsec .\"O was less than zero or greater than 1000 million. -´Ø¿ô¸Æ¤Ó½Ð¤·¤ÏÄä»ß¤¹¤ë¤Ï¤º¤Ç¤¢¤Ã¤¿¤¬¡¢ +関数呼び出しは停止するはずであったが、 .I abs_timeout -¤¬ÉÔÀµ¤Ç¤¢¤Ã¤¿¡£ +が不正であった。 .I abs_timeout -¤¬ÉÔÀµ¤È¤Ï¡¢ +が不正とは、 .I tv_sec -¤¬ 0 ̤Ëþ¡¢¤â¤·¤¯¤Ï +が 0 未満、もしくは .I tv_nsec -¤¬ 0 ̤Ëþ¤« 1,000,000,000 ¤è¤êÂ礭¤¤¡¢¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ +が 0 未満か 1,000,000,000 より大きい、ということである。 .TP .B EMSGSIZE .\"O .I msg_len @@ -245,32 +245,32 @@ struct timespec { .\"O .I mq_msgsize .\"O attribute of the message queue. .I msg_len -¤¬¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î +がメッセージキューの .I mq_msgsize -°À­¤è¤ê¤âÂ礭¤«¤Ã¤¿¡£ +属性よりも大きかった。 .TP .B ETIMEDOUT .\"O The call timed out before a message could be transferred. -¥á¥Ã¥»¡¼¥¸¤¬Å¾Á÷¤µ¤ì¤ëÁ°¤Ë´Ø¿ô¸Æ¤Ó½Ð¤·¤¬¥¿¥¤¥à¥¢¥¦¥È¤·¤¿¡£ +メッセージが転送される前に関数呼び出しがタイムアウトした。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O On Linux, .\"O .BR mq_timedsend () .\"O is a system call, and .\"O .BR mq_send () .\"O is a library function layered on top of that system call. -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR mq_timedsend () -¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤¢¤ë¡£ +はシステムコールである。 .BR mq_send () -¤Ï¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ç¡¢ +はライブラリ関数で、 .BR mq_timedsend () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÍѤ¤¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +システムコールを用いて実装されている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mq_close (3), .BR mq_getattr (3), .BR mq_notify (3), diff --git a/draft/man3/mq_unlink.3 b/draft/man3/mq_unlink.3 index c2fdc99d..04e7adae 100644 --- a/draft/man3/mq_unlink.3 +++ b/draft/man3/mq_unlink.3 @@ -28,11 +28,11 @@ .\" .TH MQ_UNLINK 3 2010-08-29 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mq_unlink \- remove a message queue -mq_unlink \- ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤òºï½ü¤¹¤ë +mq_unlink \- メッセージキューを削除する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -40,9 +40,9 @@ mq_unlink \- .fi .sp .\"O Link with \fI\-lrt\fP. -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR mq_unlink () .\"O removes the specified message queue .\"O .IR name . @@ -50,49 +50,49 @@ mq_unlink \- .\"O The queue itself is destroyed once any other processes that have .\"O the queue open close their descriptors referring to the queue. .BR mq_unlink () -¤Ï»ØÄꤵ¤ì¤¿¥á¥Ã¥»¡¼¥¸¥­¥å¡¼ +は指定されたメッセージキュー .I name -¤òºï½ü¤¹¤ë¡£ -¥á¥Ã¥»¡¼¥¸¥­¥å¡¼Ì¾¤Ïľ¤Á¤Ëºï½ü¤µ¤ì¤ë¡£ -¥­¥å¡¼¼«ÂΤϡ¢¤½¤Î¥­¥å¡¼¤ò¥ª¡¼¥×¥ó¤·¤¿Â¾¤Î¤¹¤Ù¤Æ¤Î¥×¥í¥»¥¹¤¬ -¤½¤Î¥­¥å¡¼¤ò»²¾È¤¹¤ëµ­½Ò»Ò¤ò¥¯¥í¡¼¥º¤·¤¿»þÅÀ¤ÇÇË´þ¤µ¤ì¤ë¡£ +を削除する。 +メッセージキュー名は直ちに削除される。 +キュー自体は、そのキューをオープンした他のすべてのプロセスが +そのキューを参照する記述子をクローズした時点で破棄される。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success .\"O .BR mq_unlink () .\"O returns 0; on error, \-1 is returned, with .\"O .I errno .\"O set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR mq_unlink () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O The caller does not have permission to unlink this message queue. -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬¤³¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤òºï½ü (unlink) ¤¹¤ë -µö²Ä¤ò»ý¤¿¤Ê¤¤¡£ +呼び出し元プロセスがこのメッセージキューを削除 (unlink) する +許可を持たない。 .TP .B ENAMETOOLONG .\"O .I name .\"O was too long. .I name -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENOENT .\"O There is no message queue with the given .\"O .IR name . -»ØÄꤵ¤ì¤¿Ì¾Á° +指定された名前 .I name -¤ò»ý¤Ä¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤¬Â¸ºß¤·¤Ê¤¤¡£ +を持つメッセージキューが存在しない。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mq_close (3), .BR mq_getattr (3), .BR mq_notify (3), diff --git a/draft/man3/mtrace.3 b/draft/man3/mtrace.3 index f82271d7..3a58d1c5 100644 --- a/draft/man3/mtrace.3 +++ b/draft/man3/mtrace.3 @@ -8,17 +8,17 @@ .TH MTRACE 3 2002-07-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O mtrace, muntrace \- malloc debugging -.SH ̾Á° +.SH 名前 mtrace, muntrace \- malloc debugging .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B "#include " .sp .B "void mtrace(void);" .sp .B "void muntrace(void);" .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The function .\"O .BR mtrace () .\"O installs handlers for @@ -29,53 +29,53 @@ mtrace, muntrace \- malloc debugging .\"O The function .\"O .BR muntrace () .\"O disables these handlers. -´Ø¿ô +関数 .BR mtrace () -¤Ï¡¢ +は、 .BR malloc (3), .BR realloc (3), .BR free (3) -¤Î¥Ï¥ó¥É¥é¤òÁȤ߹þ¤à¡£ -´Ø¿ô +のハンドラを組み込む。 +関数 .BR muntrace () -¤Ï¤³¤ì¤é¤Î¥Ï¥ó¥É¥é¤ò²ò½ü¤¹¤ë¡£ +はこれらのハンドラを解除する。 .br .\"O The environment variable .\"O .B MALLOC_TRACE .\"O defines a file where .\"O .BR mtrace () .\"O writes its output. -´Ä¶­ÊÑ¿ô +環境変数 .B MALLOC_TRACE -¤Ï +は .BR mtrace () -¤¬½ÐÎϤò½ñ¤­½Ð¤¹¥Õ¥¡¥¤¥ë¤ò»ØÄꤹ¤ë¡£ +が出力を書き出すファイルを指定する。 .\"O This file must be writable to the user or .\"O .BR mtrace () .\"O will do nothing. -¥æ¡¼¥¶¤¬½ñ¤­¹þ¤ß¸¢¸Â¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -½ñ¤­¹þ¤ß¸¢¸Â¤¬¤Ê¤¤¾ì¹ç¡¢ +ユーザが書き込み権限を持つファイルを指定しなければならない。 +書き込み権限がない場合、 .BR mtrace () -¤Ï²¿¤â¤·¤Ê¤¤¡£ +は何もしない。 .\"O If the file is not empty it will be truncated. -.\" motoki: truncate ¤Ã¤Æ¡Ö¸å¤í¤òÀڤäƤ·¤Þ¤¦¡×¤è¤¦¤Ê°ÕÌ£¤Î¤Ï¤º¤À¤±¤É -.\" motoki: ¼ÂºÝ¤Ë»î¤·¤Æ¤ß¤ë¤È¡¢¸µ¤Î¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤­¤¹¤ë¤è¤¦¤Ç¤¹¡¦¡¦¡¦ -¥Õ¥¡¥¤¥ë¤¬¶õ¤Ç¤Ê¤¤¾ì¹ç¡¢¥Õ¥¡¥¤¥ë¤Î¸µ¤ÎÆâÍƤò¾å½ñ¤­¤¹¤ë¡£ +.\" motoki: truncate って「後ろを切ってしまう」ような意味のはずだけど +.\" motoki: 実際に試してみると、元のファイルを上書きするようです・・・ +ファイルが空でない場合、ファイルの元の内容を上書きする。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These are GNU extensions. -¤³¤Î´Ø¿ô¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ë¡£ +この関数は GNU 拡張である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The output of .\"O .BR mtrace () .\"O will be ASCII but not in a friendly format. .\"O So glibc comes with a perl-script called mtrace to make sense of it. .BR mtrace () -¤Î½ÐÎÏ¤Ï ASCII ·Á¼°¤À¤¬¡¢¿Í¤¬Æɤߤ䤹¤¤¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤Ï¤Ê¤¤¡£ -¤½¤³¤Ç¡¢glibc ¤Ë¤Ï mtrace ½ÐÎϤòʬ¤«¤ê¤ä¤¹¤¤·Á¼°¤ËÊÑ´¹¤¹¤ë -perl ¥¹¥¯¥ê¥×¥È¤¬ÉÕ°¤·¤Æ¤¤¤ë¡£ +の出力は ASCII 形式だが、人が読みやすいフォーマットではない。 +そこで、glibc には mtrace 出力を分かりやすい形式に変換する +perl スクリプトが付属している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR malloc (3), .BR malloc_hook (3) diff --git a/draft/man3/nan.3 b/draft/man3/nan.3 index 10530162..746a2ba6 100644 --- a/draft/man3/nan.3 +++ b/draft/man3/nan.3 @@ -8,16 +8,16 @@ .\" Translated Thu 05 Dec 2002 by Akihiro MOTOKI .\" Updated 2008-09-16, Akihiro MOTOKI .\" -.\"WORD: NaN ̵¸úÃÍ -.\"WORD: quiet NaN SIGFPE ¥·¥°¥Ê¥ë¤Ê¤·¤Î̵¸úÃÍ +.\"WORD: NaN 無効値 +.\"WORD: quiet NaN SIGFPE シグナルなしの無効値 .\" .TH NAN 3 2010-09-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O nan, nanf, nanl \- return 'Not a Number' -.SH ̾Á° -nan, nanf, nanl \- ̵¸úÃÍ ('Not a Number') ¤òÊÖ¤¹ +.SH 名前 +nan, nanf, nanl \- 無効値 ('Not a Number') を返す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double nan(const char *" tagp ); @@ -27,14 +27,14 @@ nan, nanf, nanl \- ̵ .BI "long double nanl(const char *" tagp ); .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -50,17 +50,17 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions return a representation (determined by .\"O .IR tagp ) .\"O of a quiet NaN. .\"O If the implementation does not support .\"O quiet NaNs, these functions return zero. -.\" motoki: quiet NaN ¤È¤Ï²¿¤À¤í¤¦¡© -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢SIGFPE ¥·¥°¥Ê¥ë¤Ê¤·¤Î̵¸úÃÍ (NaN) ¤ò¼¨¤¹É½¸½¤òÊÖ¤¹ -(¤É¤Îɽ¸½¤ò»ÈÍѤ¹¤ë¤«¤Ï +.\" motoki: quiet NaN とは何だろう? +これらの関数は、SIGFPE シグナルなしの無効値 (NaN) を示す表現を返す +(どの表現を使用するかは .I tagp -¤Ç»ØÄꤹ¤ë)¡£SIGFPE ¥·¥°¥Ê¥ë¤Ê¤·¤Î NaN ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¼ÂÁõ¤Ç¤Ï 0 ¤òÊÖ¤¹¡£ +で指定する)。SIGFPE シグナルなしの NaN をサポートしていない実装では 0 を返す。 .LP .\"O The call .\"O .I nan("char-sequence") @@ -70,13 +70,13 @@ or .\"O strtod("NAN(char-sequence)", NULL); .\"O .fi .I nan("char-sequence") -¤ò¸Æ¤Ó½Ð¤¹¤Î¤Ï¡¢ +を呼び出すのは、 .nf strtod("NAN(char-sequence)", NULL); .fi -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 .PP .\"O Similarly, calls to .\"O .BR nanf () @@ -86,15 +86,15 @@ or .\"O .BR strtof (3) .\"O and .\"O .BR strtold (3). -ƱÍͤˡ¢ +同様に、 .BR nanf () -¤ä +や .BR nanl () -¤ò¸Æ¤Ó½Ð¤¹¤Î¤Ï¡¢ +を呼び出すのは、 .BR strtof () -¤ä +や .BR strtold () -¤ò¸Æ¤Ö¤Î¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +を呼ぶのと同じである。 .PP .\"O The argument .\"O .I tagp @@ -104,26 +104,26 @@ or .\"O .I tagp .\"O selects one. .\"O On other systems it may do nothing. -°ú¤­¿ô +引き数 .I tagp -¤Î»È¤¤Êý¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -IEEE 754 ½àµò¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢NaN ¤Ë¤âÊ£¿ô¤Îɽ¸½¤¬Â¸ºß¤·¡¢ +の使い方は規定されていない。 +IEEE 754 準拠のシステムでは、NaN にも複数の表現が存在し、 .I tagp -¤Ï¤½¤ÎÁªÂò¤Ë»ÈÍѤµ¤ì¤ë¡£ -¾¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢²¿¤Î°ÕÌ£¤â¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ +はその選択に使用される。 +他のシステムでは、何の意味もないかもしれない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O See also IEC 559 and the appendix with .\"O recommended functions in IEEE 754/IEEE 854. -IEC 559 ¤ä¿ä¾©´Ø¿ô¤Ë¤Ê¤Ã¤Æ¤¤¤ë IEEE 754/IEEE 854 -¤ÎÉÕÏ¿¤â»²¾È¤¹¤ë¤³¤È¡£ +IEC 559 や推奨関数になっている IEEE 754/IEEE 854 +の付録も参照すること。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR isnan (3), .BR strtod (3), .BR math_error (7) diff --git a/draft/man3/netlink.3 b/draft/man3/netlink.3 index 8a26f0b3..4b428cfd 100644 --- a/draft/man3/netlink.3 +++ b/draft/man3/netlink.3 @@ -8,14 +8,14 @@ .\" by Shouichi Saito .\" Proofed Fri Aug 20 1999 by NAKANO Takeo .\" -.\"WORD: payload ³ÊǼÎΰè -.\"WORD: lvalue º¸ÊÕÃÍ +.\"WORD: payload 格納領域 +.\"WORD: lvalue 左辺値 .\" .TH NETLINK 3 1999-05-14 "GNU" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 .\"O netlink \- Netlink macros -netlink \- netlink ¥Þ¥¯¥í -.SH ½ñ¼° +netlink \- netlink マクロ +.SH 書式 .nf .\" FIXME . what will glibc 2.1 use here? .\" May 2007: glibc 2.5, things look to be unchanged -- the header file @@ -38,7 +38,7 @@ netlink \- netlink .br .BI "int NLMSG_PAYLOAD(struct nlmsghdr *" nlh ", int " len ); .fi -.SH ÀâÌÀ +.SH 説明 .\"O .I .\"O defines several standard macros to access or create a netlink datagram. .\"O They are similar in spirit to the macros defined in @@ -47,18 +47,18 @@ netlink \- netlink .\"O The buffer passed to and from a netlink socket should .\"O only be accessed using these macros. .I -¤Ç¤Ï¡¢ netlink ¥Ç¡¼¥¿¥°¥é¥à¤Ë¥¢¥¯¥»¥¹¤·¤¿¤ê¡¢¤³¤ì¤òºîÀ®¤¹¤ë¤¿¤á¤Î -ɸ½à¥Þ¥¯¥í¤¬¤¤¤¯¤Ä¤«ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Ï +では、 netlink データグラムにアクセスしたり、これを作成するための +標準マクロがいくつか定義されている。 +これらは .BR cmsg (3) -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëÊä½õ¥Ç¡¼¥¿ (auxiliary data) ÍѤΥޥ¯¥í¤È¡¢ -¤½¤ÎÀº¿À¤Ë¤ª¤¤¤Æ»÷¤Æ¤¤¤ë¤â¤Î¤Ç¤¢¤ë¡£ -netlink ¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤ä¤ê¤È¤ê¤µ¤ì¤ë¥Ð¥Ã¥Õ¥¡¤Ë¤Ï¡¢ -ɬ¤º¤³¤ì¤é¤Î¥Þ¥¯¥í¤ò»È¤Ã¤Æ¥¢¥¯¥»¥¹¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +で定義されている補助データ (auxiliary data) 用のマクロと、 +その精神において似ているものである。 +netlink ソケットに対してやりとりされるバッファには、 +必ずこれらのマクロを使ってアクセスすべきである。 .TP .B NLMSG_ALIGN .\"O Round the length of a netlink message up to align it properly. -netlink ¥á¥Ã¥»¡¼¥¸¤ÎŤµ¤ò´Ý¤á¤ÆÀµ¤·¤¯Â·¤¨¤ë¡£ +netlink メッセージの長さを丸めて正しく揃える。 .TP .B NLMSG_LENGTH .\"O Given the payload length, @@ -67,29 +67,29 @@ netlink .\"O .I nlmsg_len .\"O field of the .\"O .IR nlmsghdr . -³ÊǼÎΰè (payload) ¤ÎŤµ +格納領域 (payload) の長さ .I len -¤ò°ú¿ô¤Ë¤È¤ê¡¢ +を引数にとり、 .I nlmsghdr -¤Î +の .I nlmsg_len -¥Õ¥£¡¼¥ë¥É¤ËÂåÆþ¤Ç¤­¤ë -·¤¨¤é¤ì¤¿Ä¹¤µ (aligned length) ¤òÊÖ¤¹¡£ +フィールドに代入できる +揃えられた長さ (aligned length) を返す。 .TP .B NLMSG_SPACE .\"O Return the number of bytes that a netlink message with payload of .\"O .I len .\"O would occupy. -¥Ú¥¤¥í¡¼¥É¤ÎŤµ¤¬ +ペイロードの長さが .I len -¤Î netlink ¥á¥Ã¥»¡¼¥¸¤Î¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ +の netlink メッセージのバイト数を返す。 .TP .B NLMSG_DATA .\"O Return a pointer to the payload associated with the passed .\"O .IR nlmsghdr . -Í¿¤¨¤¿ +与えた .I nlmsghdr -¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿³ÊǼÎΰè¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +に関連づけられた格納領域へのポインタを返す。 .TP .\" this is bizarre, maybe the interface should be fixed. .B NLMSG_NEXT @@ -103,38 +103,38 @@ netlink .\"O argument is an lvalue containing the remaining length .\"O of the message buffer. .\"O This macro decrements it by the length of the message header. -¥Þ¥ë¥Á¥Ñ¡¼¥È¥á¥Ã¥»¡¼¥¸¤Ë¤ª¤¤¤Æ¡¢¼¡¤Î +マルチパートメッセージにおいて、次の .I nlmsghdr -¤òÆþ¼ê¤¹¤ë¡£¤³¤ì¤ò¸Æ¤Ó½Ð¤¹¤È¤­¤Ë¤Ï¡¢ -¸½ºß¤Î nlmsghdr ¤Ç NLMSG_DONE ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò -³Îǧ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤Î´Ø¿ô¤Ï½ªÃ¼¤Ç NULL ¤òÊÖ¤µ¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +を入手する。これを呼び出すときには、 +現在の nlmsghdr で NLMSG_DONE がセットされていないことを +確認しなければならない。この関数は終端で NULL を返さないからである。 .I len -°ú¿ô¤Ï¥á¥Ã¥»¡¼¥¸¥Ð¥Ã¥Õ¥¡¤Î»Ä¤êŤµ¤¬Æþ¤Ã¤¿º¸ÊÕÃͤǤ¢¤ë¡£ -¤³¤Î¥Þ¥¯¥í¤Ï¤³¤Î°ú¿ô¤«¤é¥á¥Ã¥»¡¼¥¸¥Ø¥Ã¥À¤ÎŤµÊ¬¤òº¹¤·°ú¤¯¡£ +引数はメッセージバッファの残り長さが入った左辺値である。 +このマクロはこの引数からメッセージヘッダの長さ分を差し引く。 .TP .B NLMSG_OK .\"O Return true if the netlink message is not truncated and .\"O is in a form suitable for parsing. -Netlink ¥á¥Ã¥»¡¼¥¸¤¬ÅÓÀÚ¤ì¤Æ¤ª¤é¤º¡¢¤«¤Ä²ò¼á²Äǽ¤Ê·Á¤Î¾ì¹ç¤Ç¤¢¤ì¤Ð¿¿¤òÊÖ¤¹¡£ +Netlink メッセージが途切れておらず、かつ解釈可能な形の場合であれば真を返す。 .TP .B NLMSG_PAYLOAD .\"O Return the length of the payload associated with the .\"O .IR nlmsghdr . .I nlmsghdr -¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿³ÊǼÎΰè¤ÎŤµ¤òÊÖ¤¹¡£ +に関連づけられた格納領域の長さを返す。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O These macros are nonstandard Linux extensions. -¤³¤ì¤é¤Î¥Þ¥¯¥í¤ÏÈóɸ½à¤Ç Linux ¤Ç¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH Ãí°Õ +これらのマクロは非標準で Linux での拡張である。 +.SH 注意 .\"O It is often better to use netlink via .\"O .I libnetlink .\"O than via the low-level kernel interface. -Ä̾ï¤Ï¥«¡¼¥Í¥ë¤ÎÄã¥ì¥Ù¥ë¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤è¤ê¤â¡¢ +通常はカーネルの低レベルインターフェイスよりも、 .I libnetlink -·Ðͳ¤Ç netlink ¤òÍѤ¤¤ë¤Û¤¦¤¬Îɤ¤¡£ -.SH ´ØÏ¢¹àÌÜ +経由で netlink を用いるほうが良い。 +.SH 関連項目 .BR netlink (7) .br .\"O and ftp://ftp.inr.ac.ru/ip-routing/iproute2* for libnetlink -¤ª¤è¤Ó libnetlink ¤Ë´Ø¤·¤Æ¤Ï ftp://ftp.inr.ac.ru/ip-routing/iproute2* +および libnetlink に関しては ftp://ftp.inr.ac.ru/ip-routing/iproute2* diff --git a/draft/man3/nextafter.3 b/draft/man3/nextafter.3 index 15e8ee4c..da8eb477 100644 --- a/draft/man3/nextafter.3 +++ b/draft/man3/nextafter.3 @@ -8,19 +8,19 @@ .\" Translated Mon Jan 27 2003 by Akihiro MOTOKI .\" Updated 2008-09-18, Akihiro MOTOKI .\" -.\"WORD: mantissa ²¾¿ôÉô -.\"WORD: normalized Àµµ¬²½¤µ¤ì¤¿ -.\"WORD: subnormal ÈóÀµµ¬²½¤Î +.\"WORD: mantissa 仮数部 +.\"WORD: normalized 正規化された +.\"WORD: subnormal 非正規化の .\" .TH NEXTAFTER 3 2010-09-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O nextafter, nextafterf, nextafterl, nexttoward, nexttowardf, nexttowardl \- .\"O floating-point number manipulation -.SH ̾Á° +.SH 名前 nextafter, nextafterf, nextafterl, nexttoward, nexttowardf, nexttowardl \- -ÉâÆ°¾®¿ôÅÀ¿ô¤ÎÁàºî +浮動小数点数の操作 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double nextafter(double " x ", double " y ); @@ -36,14 +36,14 @@ nextafter, nextafterf, nextafterl, nexttoward, nexttowardf, nexttowardl \- .BI "long double nexttowardl(long double " x ", long double " y ); .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -80,7 +80,7 @@ or .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR nextafter () .\"O functions return the next representable floating-point value following @@ -94,16 +94,16 @@ or .\"O these functions will return the largest representable number less than .\"O .IR x . .BR nextafter () -´Ø¿ô·²¤Ï¡¢\fIy\fP ¤Ë¸þ¤«¤¦Êý¸þ¤Ç \fIx\fP ¤Î¤¹¤°¼¡¤ÎÉâÆ°¾®¿ôÅÀ¿ôɽ¸½¤òÊÖ¤¹¡£ +関数群は、\fIy\fP に向かう方向で \fIx\fP のすぐ次の浮動小数点数表現を返す。 .I y -¤¬ +が .I x -¤è¤ê¾®¤µ¤¤¾ì¹ç¡¢ +より小さい場合、 .I x -¤è¤ê¾®¤µ¤¤ºÇÂç¤ÎÉâÆ°¾®¿ôÅÀɽ¸½¤ÎÃͤòÊÖ¤¹¡£ +より小さい最大の浮動小数点表現の値を返す。 .\"O If \fIx\fP equals \fIy\fP, the functions return \fIy\fP. -\fIx\fP ¤¬ \fIy\fP ¤ÈÅù¤·¤¤¾ì¹ç¡¢\fIy\fP ¤¬ÊÖ¤µ¤ì¤ë¡£ +\fIx\fP が \fIy\fP と等しい場合、\fIy\fP が返される。 .\"O The .\"O .BR nexttoward () @@ -113,20 +113,20 @@ or .\"O .I "long double" .\"O second argument. .BR nexttoward () -´Ø¿ô·²¤Ï¡¢2 ÈÖÌܤΰú¤­¿ô¤¬ +関数群は、2 番目の引き数が .I long double -·¿¤Ç¤¢¤ëÅÀ°Ê³°¡¢ +型である点以外、 .BR nextafter () -´Ø¿ô·²¤ÈƱ¤¸¤Ï¤¿¤é¤­¤ò¤¹¤ë¡£ +関数群と同じはたらきをする。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O these functions return the next representable floating-point value after .\"O .I x .\"O in the direction of .\"O .IR y . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï \fIy\fP ¤Ë¸þ¤«¤¦Êý¸þ¤Ç \fIx\fP ¤Î -¤¹¤°¼¡¤ÎÉâÆ°¾®¿ôÅÀ¿ôɽ¸½¤òÊÖ¤¹¡£ +成功すると、これらの関数は \fIy\fP に向かう方向で \fIx\fP の +すぐ次の浮動小数点数表現を返す。 .\"O If .\"O .I x @@ -138,13 +138,13 @@ or .\"O .IR x ) .\"O is returned. .I x -¤¬ +が .I y -¤ÈÅù¤·¤¤¾ì¹ç¡¢ +と等しい場合、 .RI ( x -¤ÈƱ¤¸·¿¤Ë¥­¥ã¥¹¥È¤µ¤ì¤¿) +と同じ型にキャストされた) .I y -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .\"O If .\"O .I x @@ -153,15 +153,15 @@ or .\"O is a NaN, .\"O a NaN is returned. .I x -¤« +か .I y -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x .\"O is finite, .I x -¤¬Í­¸ÂÃÍ¤Ç +が有限値で .\" e.g., DBL_MAX .\"O and the result would overflow, .\"O a range error occurs, @@ -171,13 +171,13 @@ or .\"O or .\"O .BR HUGE_VALL , .\"O respectively, with the correct mathematical sign. -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ -ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +結果がオーバーフローする場合、 +範囲エラー (range error) が発生し、 +各関数はそれぞれ .BR HUGE_VAL , .BR HUGE_VALF , .B HUGE_VALL -¤òÊÖ¤¹¡£ÊÖ¤êÃͤˤϿô³ØŪ¤ËÀµ¤·¤¤Éä¹æ¤¬ÉÕÍ¿¤µ¤ì¤ë¡£ +を返す。返り値には数学的に正しい符号が付与される。 .\"O If .\"O .I x @@ -188,26 +188,26 @@ or .\"O and either the correct value (if it can be represented), .\"O or 0.0, is returned. .I x -¤¬ +が .I y -¤ÈƱ¤¸¤Ç¤Ï¤Ê¤¯¡¢Àµ¤·¤¤´Ø¿ô¤Î·ë²Ì¤¬ÈóÀµµ¬²½¿ô¤«¥¼¥í¤«¥¢¥ó¥À¡¼¥Õ¥í¡¼¤Î¾ì¹ç¡¢ -ÈÏ°Ï¥¨¥é¡¼¤¬È¯À¸¤·¡¢ -(ɽ¸½²Äǽ¤Ê¾ì¹ç¤Ë¤Ï) Àµ¤·¤¤Ãͤ¬¡¢(¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï) 0.0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +と同じではなく、正しい関数の結果が非正規化数かゼロかアンダーフローの場合、 +範囲エラーが発生し、 +(表現可能な場合には) 正しい値が、(そうでない場合には) 0.0 が返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Range error: result overflow -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ +範囲エラー: 結果のオーバーフロー .\" e.g., nextafter(DBL_MAX, HUGE_VAL); .\" .I errno .\" is set to @@ -215,12 +215,12 @@ or .\"O An overflow floating-point exception .\"O .RB ( FE_OVERFLOW ) .\"O is raised. -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP .\"O Range error: result is subnormal or underflows -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤¬ÈóÀµµ¬²½¿ô¤«¥¢¥ó¥À¡¼¥Õ¥í¡¼ +範囲エラー: 結果が非正規化数かアンダーフロー .\" e.g., nextafter(DBL_MIN, 0.0); .\" .I errno .\" is set to @@ -228,34 +228,34 @@ or .\"O An underflow floating-point exception .\"O .RB ( FE_UNDERFLOW ) .\"O is raised. -¥¢¥ó¥À¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +アンダーフロー浮動小数点例外 .RB ( FE_UNDERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP .\"O These functions do not set .\"O .IR errno . -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6799 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O This function is defined in IEC 559 (and the appendix with .\"O recommended functions in IEEE 754/IEEE 854). -¤³¤Î´Ø¿ô¤Ï IEC 559 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -(¤Þ¤¿ IEEE 754/IEEE 854 ¤Ç¤ÏÉÕÏ¿¤Ç¿ä¾©´Ø¿ô¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë) +この関数は IEC 559 で定義されている。 +(また IEEE 754/IEEE 854 では付録で推奨関数として定義されている) .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O In glibc version 2.5 and earlier, these functions do not raise an underflow .\"O floating-point .\"O .RB ( FE_UNDERFLOW ) .\"O exception when an underflow occurs. -glibc ¥Ð¡¼¥¸¥ç¥ó 2.5 °ÊÁ°¤Ç¤Ï¡¢¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¬È¯À¸¤·¤¿ºÝ¤Ë¡¢ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¥¢¥ó¥À¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +glibc バージョン 2.5 以前では、アンダーフローが発生した際に、 +これらの関数はアンダーフロー浮動小数点例外 .RB ( FE_UNDERFLOW ) -¤ò¾å¤¬¤Ê¤¤¡£ +を上がない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR nearbyint (3) diff --git a/draft/man3/nl_langinfo.3 b/draft/man3/nl_langinfo.3 index 2c133b2f..b3ae5c58 100644 --- a/draft/man3/nl_langinfo.3 +++ b/draft/man3/nl_langinfo.3 @@ -19,17 +19,17 @@ .TH NL_LANGINFO 3 2010-10-03 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O nl_langinfo \- query language and locale information -.SH ̾Á° -nl_langinfo \- ¸À¸ì¤È¥í¥±¡¼¥ë¤Î¾ðÊó¤òÌ䤤¹ç¤ï¤»¤ë +.SH 名前 +nl_langinfo \- 言語とロケールの情報を問い合わせる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "char *nl_langinfo(nl_item " item ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR nl_langinfo () .\"O function provides access to locale information @@ -39,15 +39,15 @@ nl_langinfo \- .\"O Individual and additional elements of the locale categories can .\"O be queried. .BR nl_langinfo () -´Ø¿ô¤Ï¡¢ +関数は、 .BR localeconv (3) -¤è¤ê½ÀÆð¤Ê¥í¥±¡¼¥ë¾ðÊó¤Ø¤Î¥¢¥¯¥»¥¹ÊýË¡¤òÄ󶡤¹¤ë¡£ -¥í¥±¡¼¥ë¥«¥Æ¥´¥ê¤Î¸Ä¡¹¤ÎÍ×ÁǤäÄɲäÎÍ×ÁǤòÌ䤤¹ç¤ï¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +より柔軟なロケール情報へのアクセス方法を提供する。 +ロケールカテゴリの個々の要素や追加の要素を問い合わせることができる。 .PP .\"O Examples for the locale elements that can be specified in \fIitem\fP .\"O using the constants defined in \fI\fP are: -\fI\fP ¤ËÄê¿ô¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤Æ¡¢ -\fIitem\fP ¤Ë»ØÄê¤Ç¤­¤ë¥í¥±¡¼¥ëÍ×ÁǤÎÎã¤ò°Ê²¼¤Ë¼¨¤¹: +\fI\fP に定数として定義されていて、 +\fIitem\fP に指定できるロケール要素の例を以下に示す: .TP .BR CODESET \ (LC_CTYPE) .\"O Return a string with the name of the character encoding used in the @@ -58,132 +58,132 @@ nl_langinfo \- .\"O For a list of character encoding names, .\"O try "locale \-m", cf.\& .\"O .BR locale (1). -ÁªÂò¤µ¤ì¤¿¥í¥±¡¼¥ë¤ÇÍѤ¤¤é¤ì¤ëʸ»ú¥¨¥ó¥³¡¼¥É̾¤ò¼¨¤¹Ê¸»úÎó¤òÊÖ¤¹¡£ -ʸ»ú¥¨¥ó¥³¡¼¥É̾¤È¤·¤Æ¤Ï¡¢"UTF-8" ¤ä "ISO-8859-1"¡¢"ANSI_X3.4-1968" -(¤³¤ì¤Ï US-ASCII ¤È¤¤¤¦Ì¾Á°¤ÎÊý¤¬¤è¤¯ÃΤé¤ì¤Æ¤¤¤ë) ¤Ê¤É¤¬¤¢¤ë¡£ -¤³¤Îʸ»úÎó¤Ï¡¢"locale charmap" ¤ò¼Â¹Ô¤·¤ÆÆÀ¤é¤ì¤ë¤â¤Î¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -ʸ»ú¥¨¥ó¥³¡¼¥É̾¤Î¥ê¥¹¥È¤òÆÀ¤ë¤Ë¤Ï¡¢"locale \-m" ¤ò¼Â¹Ô¤¹¤ë¤È¤è¤¤¡£ -»²¹Í: +選択されたロケールで用いられる文字エンコード名を示す文字列を返す。 +文字エンコード名としては、"UTF-8" や "ISO-8859-1"、"ANSI_X3.4-1968" +(これは US-ASCII という名前の方がよく知られている) などがある。 +この文字列は、"locale charmap" を実行して得られるものと同じである。 +文字エンコード名のリストを得るには、"locale \-m" を実行するとよい。 +参考: .BR locale (1) .TP .BR D_T_FMT \ (LC_TIME) .\"O Return a string that can be used as a format string for .\"O .BR strftime (3) .\"O to represent time and date in a locale-specific way. -¥í¥±¡¼¥ë¸ÇÍ­¤Î»þ´Ö¤ÈÆüÉÕ¤òɽ¸½¤¹¤ë¤È¤­¤Ë¡¢ +ロケール固有の時間と日付を表現するときに、 .BR strftime (3) -¤Ç»ÈÍѤǤ­¤ë½ñ¼°ÉÕ¤­Ê¸»úÎó¤òÊÖ¤¹¡£ +で使用できる書式付き文字列を返す。 .TP .BR D_FMT \ (LC_TIME) .\"O Return a string that can be used as a format string for .\"O .BR strftime (3) .\"O to represent a date in a locale-specific way. -¥í¥±¡¼¥ë¸ÇÍ­¤ÎÆüÉÕ¤òɽ¸½¤¹¤ë¤È¤­¤Ë¡¢ +ロケール固有の日付を表現するときに、 .BR strftime (3) -¤Ç»ÈÍѤǤ­¤ë½ñ¼°ÉÕ¤­Ê¸»úÎó¤òÊÖ¤¹¡£ +で使用できる書式付き文字列を返す。 .TP .BR T_FMT \ (LC_TIME) .\"O Return a string that can be used as a format string for .\"O .BR strftime (3) .\"O to represent a time in a locale-specific way. -¥í¥±¡¼¥ë¸ÇÍ­¤Î»þ´Ö¤òɽ¸½¤¹¤ë¤È¤­¤Ë¡¢ +ロケール固有の時間を表現するときに、 .BR strftime (3) -¤Ç»ÈÍѤǤ­¤ë½ñ¼°ÉÕ¤­Ê¸»úÎó¤òÊÖ¤¹¡£ +で使用できる書式付き文字列を返す。 .TP .BR DAY_ "{1\(en7} (LC_TIME)" .\"O Return name of the \fIn\fP-th day of the week. [Warning: this follows .\"O the US convention DAY_1 = Sunday, not the international convention .\"O (ISO 8601) that Monday is the first day of the week.] -ÍËÆü̾ (½µ¤Î \fIn\fP ÈÖÌܤÎÆü¤Î̾Á°) ¤òÊÖ¤¹¡£[·Ù¹ð: ¤³¤ÎÍ×ÁǤϥ¢¥á¥ê¥«¤Î -´·½¬¤Ë½¾¤Ã¤Æ DAY_1 ¤¬ ÆüÍËÆü¤È¤Ê¤ë¡£¹ñºÝŪ¤Ê´·½¬ (ISO 8601) ¤Ç¤Ï·îÍËÆü¤¬ -½µ¤ÎºÇ½é¤ÎÆü¤Ç¤¢¤ë¡£] +曜日名 (週の \fIn\fP 番目の日の名前) を返す。[警告: この要素はアメリカの +慣習に従って DAY_1 が 日曜日となる。国際的な慣習 (ISO 8601) では月曜日が +週の最初の日である。] .TP .BR ABDAY_ "{1\(en7} (LC_TIME)" .\"O Return abbreviated name of the \fIn\fP-th day of the week. -ÍËÆü (½µ¤Î \fIn\fP ÈÖÌܤÎÆü) ¤Î¾Êά̾¤òÊÖ¤¹¡£ +曜日 (週の \fIn\fP 番目の日) の省略名を返す。 .TP .BR MON_ "{1\(en12} (LC_TIME)" .\"O Return name of the \fIn\fP-th month. -\fIn\fP ÈÖÌܤηî¤Î̾Á°¤òÊÖ¤¹¡£ +\fIn\fP 番目の月の名前を返す。 .TP .BR ABMON_ "{1\(en12} (LC_TIME)" .\"O Return abbreviated name of the \fIn\fP-th month. -\fIn\fP ÈÖÌܤηî¤Î¾Êά̾¤òÊÖ¤¹¡£ +\fIn\fP 番目の月の省略名を返す。 .TP .BR RADIXCHAR \ (LC_NUMERIC) .\"O Return radix character (decimal dot, decimal comma, etc.). -´ð¿ôµ­¹æ (¾®¿ôÅÀ¤ä¥³¥ó¥Þ¤Ê¤É) ¤òÊÖ¤¹¡£ +基数記号 (小数点やコンマなど) を返す。 .TP .BR THOUSEP \ (LC_NUMERIC) .\"O Return separator character for thousands (groups of three digits). -Àé¤Î°Ì (3 ·å¤Î¿ôÃÍ) ¤Î¶èÀÚ¤êʸ»ú¤òÊÖ¤¹¡£ +千の位 (3 桁の数値) の区切り文字を返す。 .TP .BR YESEXPR \ (LC_MESSAGES) .\"O Return a regular expression that can be used with the .\"O .BR regex (3) .\"O function to recognize a positive response to a yes/no question. -yes/no ¤Î¼ÁÌä¤ËÂФ¹¤ë¹ÎÄê¤Î±þÅú¤òǧ¼±¤¹¤ë¤¿¤á¤Ë¡¢ +yes/no の質問に対する肯定の応答を認識するために、 .BR regex (3) -´Ø¿ô¤Ç»ÈÍѤǤ­¤ëÀµµ¬É½¸½¤òÊÖ¤¹¡£ +関数で使用できる正規表現を返す。 .TP .BR NOEXPR \ (LC_MESSAGES) .\"O Return a regular expression that can be used with the .\"O .BR regex (3) .\"O function to recognize a negative response to a yes/no question. -yes/no ¤Î¼ÁÌä¤ËÂФ¹¤ëÈÝÄê¤Î±þÅú¤òǧ¼±¤¹¤ë¤¿¤á¤Ë +yes/no の質問に対する否定の応答を認識するために .BR regex (3) -´Ø¿ô¤Ç»ÈÍѤǤ­¤ëÀµµ¬É½¸½¤òÊÖ¤¹¡£ +関数で使用できる正規表現を返す。 .TP .BR CRNCYSTR \ (LC_MONETARY) .\"O Return the currency symbol, preceded by "\-" if the symbol should .\"O appear before the value, "+" if the symbol should appear after the .\"O value, or "." if the symbol should replace the radix character. -Ä̲ߵ­¹æ¤òÊÖ¤¹¡£ -µ­¹æ¤¬¿ôÃͤÎÁ°¤ËÇÛÃÖ¤µ¤ì¤ë¾ì¹ç¤Ï¡¢"\-" ¤¬Ä̲ߵ­¹æ¤ËÁ°ÃÖ¤µ¤ì¤ë¡£ -¿ôÃͤθå¤Ëµ­¹æ¤¬ÇÛÃÖ¤µ¤ì¤ë¾ì¹ç¤Ï "+" ¤¬¡¢ -µ­¹æ¤¬´ð¿ôʸ»ú¤ÈÃÖ¤­´¹¤ï¤ë¾ì¹ç¤Ï "." ¤¬Á°ÃÖ¤µ¤ì¤ë¡£ +通貨記号を返す。 +記号が数値の前に配置される場合は、"\-" が通貨記号に前置される。 +数値の後に記号が配置される場合は "+" が、 +記号が基数文字と置き換わる場合は "." が前置される。 .PP .\"O The above list covers just some examples of items that can be requested. .\"O For a more detailed list, consult .\"O .IR "The GNU C Library Reference Manual" . -¾åµ­¤Î¥ê¥¹¥È¤Ï¡¢Í×µá¤Ç¤­¤ëÄêµÁ¤Î¤´¤¯°ìÉô¤Ç¤¢¤ë¡£ -¾ÜºÙ¤Ê¥ê¥¹¥È¤Ï¡¢ -.I "GNU C ¥é¥¤¥Ö¥é¥ê¡¦¥ê¥Õ¥¡¥ì¥ó¥¹¥Þ¥Ë¥å¥¢¥ë" -¤ò»²¾È¤·¤Æ¤Û¤·¤¤¡£ +上記のリストは、要求できる定義のごく一部である。 +詳細なリストは、 +.I "GNU C ライブラリ・リファレンスマニュアル" +を参照してほしい。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O If no locale has been selected by .\"O .BR setlocale (3) .\"O for the appropriate category, .\"O .BR nl_langinfo () .\"O returns a pointer to the corresponding string in the .\"O "C" locale. -ŬÀڤʥ«¥Æ¥´¥ê¤Î¥í¥±¡¼¥ë¤¬ +適切なカテゴリのロケールが .BR setlocale (3) -¤Ë¤è¤Ã¤ÆÁªÂò¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢ +によって選択されていない場合は、 .BR nl_langinfo () -¤Ï "C" ¥í¥±¡¼¥ë¤Î¤È¤­¤ËÁêÅö¤¹¤ëʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +は "C" ロケールのときに相当する文字列へのポインタを返す。 .PP .\"O If \fIitem\fP is not valid, a pointer to an empty string is returned. -̵¸ú¤Ê \fIitem\fP ¤Î¾ì¹ç¤Ï¡¢¶õʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬ÊÖ¤µ¤ì¤ë¡£ +無効な \fIitem\fP の場合は、空文字列へのポインタが返される。 .PP .\"O This pointer may point to static data that may be overwritten on the .\"O next call to \fBnl_langinfo\fP() or .\"O .BR setlocale (3). -¤³¤Î¥Ý¥¤¥ó¥¿¤ÏÀÅŪ¤Ê¥Ç¡¼¥¿Îΰè¤ò»Ø¤·¡¢¤½¤ÎÆâÍƤϼ¡²ó¤Î +このポインタは静的なデータ領域を指し、その内容は次回の .BR nl_langinfo () -¤ä +や .BR setlocale (3) -¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤Æ½ñ¤­Âؤï¤ë¤³¤È¤¬¤¢¤ë¡£ +の呼び出しによって書き替わることがある。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SUSv2, POSIX.1-2001. .\"O .SH "EXAMPLE" -.SH Îã +.SH 例 .\"O The following program sets the character type locale according to the .\"O environment and queries the terminal character set. -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢´Ä¶­ÊÑ¿ô¤Ë´ð¤¤¤Æʸ»ú·¿ (character type) ¤Î¥í¥±¡¼¥ë -¤òÀßÄꤷ¡¢Ã¼Ëö¤Îʸ»ú½¸¹ç¤ÎÌ䤤¹ç¤ï¤»¤ò¹Ô¤¦¡£ +以下のプログラムは、環境変数に基いて文字型 (character type) のロケール +を設定し、端末の文字集合の問い合わせを行う。 .LP .nf #include @@ -200,7 +200,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR locale (1), .BR localeconv (3), .BR setlocale (3), @@ -208,4 +208,4 @@ main(int argc, char *argv[]) .BR locale (7) .br .\"O The GNU C Library Reference Manual -GNU C ¥é¥¤¥Ö¥é¥ê¡¦¥ê¥Õ¥¡¥ì¥ó¥¹¥Þ¥Ë¥å¥¢¥ë +GNU C ライブラリ・リファレンスマニュアル diff --git a/draft/man3/offsetof.3 b/draft/man3/offsetof.3 index 3a12533c..05e273e7 100644 --- a/draft/man3/offsetof.3 +++ b/draft/man3/offsetof.3 @@ -30,25 +30,25 @@ .\" .TH OFFSETOF 3 2008-07-12 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O offsetof \- offset of a structure member -offsetof \- ¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤Î¥ª¥Õ¥»¥Ã¥È¤òÊÖ¤¹ +offsetof \- 構造体のメンバーのオフセットを返す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "size_t offsetof(" type ", " member ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The macro .\"O .BR offsetof () .\"O returns the offset of the field .\"O \fImember\fP from the start of the structure \fItype\fP. .BR offsetof () -¥Þ¥¯¥í¤Ï¡¢¥Õ¥£¡¼¥ë¥É \fImember\fP ¤Î -¹½Â¤ÂÎ \fItype\fP ¤ÎÀèƬ¤«¤é¤Î¥ª¥Õ¥»¥Ã¥È¤òÊÖ¤¹¡£ +マクロは、フィールド \fImember\fP の +構造体 \fItype\fP の先頭からのオフセットを返す。 .\"O This macro is useful because the sizes of the fields that compose .\"O a structure can vary across implementations, @@ -56,21 +56,21 @@ offsetof \- .\"O bytes between fields. .\"O Consequently, an element's offset is not necessarily .\"O given by the sum of the sizes of the previous elements. -¤³¤Î¥Þ¥¯¥í¤¬Í­ÍѤʤΤϡ¢ -¹½Â¤ÂΤò¹½À®¤¹¤ë¥Õ¥£¡¼¥ë¥É¤Î¥µ¥¤¥º¤Ï¼ÂÁõ¤Ë¤è¤Ã¤ÆÊѲ½¤¹¤ë¤·¡¢ -¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤ê¥Õ¥£¡¼¥ë¥É´Ö¤ËÁÞÆþ¤¹¤ë¥Ñ¥Ç¥£¥ó¥°¤Î¥Ð¥¤¥È¿ô¤â -°ã¤¦²ÄǽÀ­¤¬¤¢¤ë¤«¤é¤Ç¤¢¤ë¡£ -¤½¤Î·ë²Ì¡¢¤¢¤ë¥¨¥ì¥á¥ó¥È¤Î¥ª¥Õ¥»¥Ã¥È¤Ïɬ¤º¤·¤â¤½¤ì¤è¤êÁ°¤Î -¥¨¥ì¥á¥ó¥È¤Î¥µ¥¤¥º¤Î¹ç·×¤È¤Ï¤Ê¤é¤Ê¤¤¡£ +このマクロが有用なのは、 +構造体を構成するフィールドのサイズは実装によって変化するし、 +コンパイラによりフィールド間に挿入するパディングのバイト数も +違う可能性があるからである。 +その結果、あるエレメントのオフセットは必ずしもそれより前の +エレメントのサイズの合計とはならない。 .\"O A compiler error will result if .\"O \fImember\fP is not aligned to a byte boundary .\"O (i.e., it is a bit field). -\fImember\fP ¤¬¥Ð¥¤¥È¶­³¦¤Ë°ÌÃÖ¤·¤Æ¤¤¤Ê¤¤¾ì¹ç -(¤¹¤Ê¤ï¤Á¡¢¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤Î¾ì¹ç) ¤Ë¤Ï¡¢ -¥³¥ó¥Ñ¥¤¥é¤Ç¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¡£ +\fImember\fP がバイト境界に位置していない場合 +(すなわち、ビットフィールドの場合) には、 +コンパイラでエラーが発生する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR offsetof () .\"O returns the offset of the given .\"O .I member @@ -78,23 +78,23 @@ offsetof \- .\"O .IR type , .\"O in units of bytes. .BR offsetof () -¤Ï¡¢»ØÄꤵ¤ì¤¿ +は、指定された .I member -¤Î»ØÄꤵ¤ì¤¿ +の指定された .I type -¤ÎÃæ¤Ç¤Î¥ª¥Õ¥»¥Ã¥È¤ò¡¢¥Ð¥¤¥Èñ°Ì¤ÇÊÖ¤¹¡£ +の中でのオフセットを、バイト単位で返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C89, C99, POSIX.1-2001. .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O On a Linux/i386 system, when compiled using the default .\"O .BR gcc (1) .\"O options, the program below produces the following output: -Linux/i386 ¥·¥¹¥Æ¥à¤Ç¡¢ +Linux/i386 システムで、 .BR gcc (1) -¤Î¥Ç¥Õ¥©¥ë¥È¥ª¥×¥·¥ç¥ó¤Ç -¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¾ì¹ç¡¢²¼µ­¤Î¥×¥í¥°¥é¥à¤Ï°Ê²¼¤Î¤è¤¦¤Ê½ÐÎϤòÊÖ¤¹¡£ +のデフォルトオプションで +コンパイルされた場合、下記のプログラムは以下のような出力を返す。 .in +4n .nf @@ -104,7 +104,7 @@ sizeof(struct s)=16 .fi .nf .\"O .SS Program source -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -122,7 +122,7 @@ main(void) }; .\"O /* Output is compiler dependent */ - /* ½ÐÎϤϥ³¥ó¥Ñ¥¤¥é°Í¸¤Ç¤¢¤ë */ + /* 出力はコンパイラ依存である */ printf("offsets: i=%ld; c=%ld; d=%ld a=%ld\\n", (long) offsetof(struct s, i), diff --git a/draft/man3/on_exit.3 b/draft/man3/on_exit.3 index ef22b935..86426c53 100644 --- a/draft/man3/on_exit.3 +++ b/draft/man3/on_exit.3 @@ -36,11 +36,11 @@ .\" .TH ON_EXIT 3 2008-12-05 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O on_exit \- register a function to be called at normal process termination -on_exit \- ¥×¥í¥»¥¹¤¬Àµ¾ï¤Ë½ªÎ»¤·¤¿ºÝ¤Ë¸Æ¤Ð¤ì¤ë´Ø¿ô¤òÅÐÏ¿¤¹¤ë +on_exit \- プロセスが正常に終了した際に呼ばれる関数を登録する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -50,15 +50,15 @@ on_exit \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR on_exit (): _BSD_SOURCE || _SVID_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR on_exit () .\"O function registers the given \fIfunction\fP to be @@ -70,21 +70,21 @@ _BSD_SOURCE || _SVID_SOURCE .\"O and the \fIarg\fP argument from .\"O .BR on_exit (). .BR on_exit () -´Ø¿ô¤Ï¡¢»ØÄꤵ¤ì¤¿´Ø¿ô \fIfunction\fP ¤ò¡¢¥×¥í¥»¥¹¤¬ -Àµ¾ï¤Ë½ªÎ»¤·¤¿ºÝ¤Ë¸Æ¤Ð¤ì¤ë´Ø¿ô¤È¤·¤ÆÅÐÏ¿¤¹¤ë¡£Àµ¾ï¤Ê½ªÎ»¤È¤Ï¡¢ +関数は、指定された関数 \fIfunction\fP を、プロセスが +正常に終了した際に呼ばれる関数として登録する。正常な終了とは、 .BR exit (3) -¤Þ¤¿¤Ï¥×¥í¥°¥é¥à¤Î \fImain\fP() -´Ø¿ô¤ÎÃæ¤Î return Ì¿Îá¤Ë¤è¤ë½ªÎ»¤Ç¤¢¤ë¡£ -´Ø¿ô \fIfunction\fP ¤Ë¤Ï¡¢Ä¾¶á¤Î +またはプログラムの \fImain\fP() +関数の中の return 命令による終了である。 +関数 \fIfunction\fP には、直近の .BR exit (3) -¤Î¸Æ¤Ó½Ð¤·¤ÇÅϤµ¤ì¤¿ status °ú¿ô¤È +の呼び出しで渡された status 引数と .BR on_exit () -¤Î \fIarg\fP °ú¿ô¤¬ÅϤµ¤ì¤ë¡£ +の \fIarg\fP 引数が渡される。 .\"O The same function may be registered multiple times: .\"O it is called once for each registration. -Ʊ¤¸´Ø¿ô¤òÊ£¿ô²óÅÐÏ¿¤·¤Æ¤â¤è¤¤¡£ -ÅÐÏ¿¤µ¤ì¤¿´Ø¿ô¤ÏÅÐÏ¿ 1 ²ó¤Ë¤Ä¤­ 1 ²ó¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ +同じ関数を複数回登録してもよい。 +登録された関数は登録 1 回につき 1 回呼び出される。 .\"O When a child process is created via .\"O .BR fork (2), @@ -93,32 +93,32 @@ _BSD_SOURCE || _SVID_SOURCE .\"O .BR exec (3) .\"O functions, all registrations are removed. .BR fork (2) -·Ðͳ¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢¿Æ¥×¥í¥»¥¹¤ÎÅÐÏ¿¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£ +経由で作成された子プロセスは、親プロセスの登録のコピーを継承する。 .BR exec (3) -·²¤Î´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤ËÀ®¸ù¤¹¤ë¤È¡¢Á´¤Æ¤ÎÅÐÏ¿¤¬ºï½ü¤µ¤ì¤ë¡£ +群の関数の呼び出しに成功すると、全ての登録が削除される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR on_exit () .\"O function returns the value 0 if successful; otherwise .\"O it returns a nonzero value. .BR on_exit () -´Ø¿ô¤Ï¡¢À®¸ù¤·¤¿¤é 0 ¤ò¡¢¤½¤¦¤Ç¤Ê¤±¤ì¤Ð 0 °Ê³°¤òÊÖ¤¹¡£ +関数は、成功したら 0 を、そうでなければ 0 以外を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This function comes from SunOS 4, but is also present in .\"O libc4, libc5 and glibc. .\"O It no longer occurs in Solaris (SunOS 5). .\"O Avoid this function, and use the standard .\"O .BR atexit (3) .\"O instead. -¤³¤Î´Ø¿ô¤Ï SunOS 4 ͳÍè¤Ç¤¢¤ë¤¬¡¢libc4, libc5, glibc ¤Ë¤â¸ºß¤¹¤ë¡£ -Solaris (SunOS 5) ¤Ë¤Ï¤â¤Ï¤ä¸ºß¤·¤Ê¤¤¡£ -¤³¤Î´Ø¿ô¤Î»ÈÍѤÏÈò¤±¡¢Âå¤ï¤ê¤Ëɸ½à¤Î +この関数は SunOS 4 由来であるが、libc4, libc5, glibc にも存在する。 +Solaris (SunOS 5) にはもはや存在しない。 +この関数の使用は避け、代わりに標準の .BR atexit (3) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR _exit (2), .BR atexit (3), .BR exit (3) diff --git a/draft/man3/opendir.3 b/draft/man3/opendir.3 index 422afa79..b5a97dd0 100644 --- a/draft/man3/opendir.3 +++ b/draft/man3/opendir.3 @@ -35,18 +35,18 @@ .\" Updated & Modified Thu Feb 17 00:37:46 JST 2005 .\" by Yuichi SATO .\" -.\"WORD: directory stream ¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à -.\"WORD: entry ¥¨¥ó¥È¥ê -.\"WORD: Permission denied ¥¢¥¯¥»¥¹¸¢¸Â¤¬¤Ê¤¤ -.\"WORD: file descriptor ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +.\"WORD: directory stream ディレクトリストリーム +.\"WORD: entry エントリ +.\"WORD: Permission denied アクセス権限がない +.\"WORD: file descriptor ファイルディスクリプタ .\" .TH OPENDIR 3 2010-06-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O opendir, fdopendir \- open a directory -opendir, fdopendir \- ¥Ç¥£¥ì¥¯¥È¥ê¤ò¥ª¡¼¥×¥ó¤¹¤ë +opendir, fdopendir \- ディレクトリをオープンする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .br @@ -59,9 +59,9 @@ opendir, fdopendir \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR fdopendir (): @@ -70,26 +70,26 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR opendir () .\"O function opens a directory stream corresponding to the .\"O directory \fIname\fP, and returns a pointer to the directory stream. .\"O The stream is positioned at the first entry in the directory. .BR opendir () -´Ø¿ô¤Ï¥Ç¥£¥ì¥¯¥È¥ê \fIname\fP ¤ËÂбþ¤¹¤ë -¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤ò¥ª¡¼¥×¥ó¤·¡¢¤½¤Î¥¹¥È¥ê¡¼¥à¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¹¥È¥ê¡¼¥à¤Î°ÌÃ֤ϥǥ£¥ì¥¯¥È¥ê¤ÎÀèƬ¤Î¥¨¥ó¥È¥ê¤ËÀßÄꤵ¤ì¤ë¡£ +関数はディレクトリ \fIname\fP に対応する +ディレクトリストリームをオープンし、そのストリームへのポインタを返す。 +ストリームの位置はディレクトリの先頭のエントリに設定される。 .\"O The .\"O .BR fdopendir () @@ -105,20 +105,20 @@ _GNU_SOURCE .\"O is used internally by the implementation, .\"O and should not otherwise be used by the application. .BR fdopendir () -´Ø¿ô¤Ï +関数は .BR opendir () -¤ÈƱÍͤÀ¤¬¡¢¥ª¡¼¥×¥óºÑ¤ß¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +と同様だが、オープン済みのファイルディスクリプタ .I fd -¤Ë¤è¤ê»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ¹¤ë -¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤òÊÖ¤¹¡£ +により参照されるディレクトリに対する +ディレクトリストリームを返す。 .BR fdopendir () -¤Î¸Æ¤Ó½Ð¤·¤¬À®¸ù¤·¤¿¸å¤Ï¡¢ +の呼び出しが成功した後は、 .I fd -¤Ï¼ÂÁõ¤ÎÆâÉô¤Ç»ÈÍѤµ¤ì¤ë¡£¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï +は実装の内部で使用される。アプリケーションは .I fd -¤ò¾¤Î¾ìÌ̤ǻÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +を他の場面で使用すべきではない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR opendir () .\"O and @@ -127,70 +127,70 @@ _GNU_SOURCE .\"O On error, NULL is returned, and .\"O .I errno .\"O is set appropriately. -´Ø¿ô +関数 .BR opendir () -¤È +と .BR fdopendir () -¤Ï¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢NULL ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +はディレクトリストリームへのポインタを返す。 +エラーの場合は、NULL が返されて、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O Permission denied. -¥¢¥¯¥»¥¹¸¢¸Â¤¬¤Ê¤¤¡£ +アクセス権限がない。 .TP .B EBADF .\"O .I fd .\"O is not a valid file descriptor opened for reading. .I fd -¤¬Æɤ߽Ф·ÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤¿¡¢Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ +が読み出し用にオープンされた、有効なファイルディスクリプタではない。 .TP .B EMFILE .\"O Too many file descriptors in use by process. -¥×¥í¥»¥¹¤¬»ÈÍÑÃæ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Â¿¤¹¤®¤ë¡£ +プロセスが使用中のファイルディスクリプタが多すぎる。 .TP .B ENFILE .\"O Too many files are currently open in the system. -¥·¥¹¥Æ¥à¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤¬Â¿¤¹¤®¤ë¡£ +システムでオープンされているファイルが多すぎる。 .TP .B ENOENT .\"O Directory does not exist, or \fIname\fP is an empty string. -¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢¤Þ¤¿¤Ï \fIname\fP ¤¬¶õʸ»úÎó¤Ç¤¢¤ë¡£ +ディレクトリが存在しないか、または \fIname\fP が空文字列である。 .TP .B ENOMEM .\"O Insufficient memory to complete the operation. -Ì¿Îá¤ò¼Â¹Ô¤¹¤ë¤Î¤Ë½¼Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +命令を実行するのに充分なメモリがない。 .TP .B ENOTDIR .\"O \fIname\fP is not a directory. -\fIname\fP ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£ +\fIname\fP はディレクトリではない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR fdopendir () .\"O is available in glibc since version 2.4. .BR fdopendir () -¤Ï glibc 2.4 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +は glibc 2.4 以降で利用可能である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR opendir () .\"O is present on SVr4, 4.3BSD, and specified in POSIX.1-2001. .BR opendir () -¤Ï SVr4 ¤È 4.3BSD ¤Ë¸ºß¤·¡¢ -POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は SVr4 と 4.3BSD に存在し、 +POSIX.1-2001 で規定されている。 .\"O .BR fdopendir () .\"O is specified in POSIX.1-2008. .BR fdopendir () -¤Ï POSIX.1-2008 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は POSIX.1-2008 で規定されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The underlying file descriptor of the directory stream can be obtained using .\"O .BR dirfd (3). -¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤ËÂбþ¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï +ディレクトリストリームに対応するファイルディスクリプタは .BR dirfd (3) -¤ò»ÈÍѤ·¤ÆÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使用して得ることができる。 .\"O The .\"O .BR opendir () @@ -202,22 +202,22 @@ POSIX.1-2001 .\"O flag unchanged for the file descriptor, .\"O .IR fd . .BR opendir () -´Ø¿ô¤Ï¡¢ +関数は、 .I "DIR *" -¤ÎÇظå¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î close-on-exec ¥Õ¥é¥°¤òÀßÄꤹ¤ë¡£ +の背後にあるファイルディスクリプタの close-on-exec フラグを設定する。 .BR fdopendir () -´Ø¿ô¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î close-on-exec ¥Õ¥é¥°¤ÎÀßÄê¤òÊѹ¹¤·¤Ê¤¤¡£ +関数は、ファイルディスクリプタの close-on-exec フラグの設定を変更しない。 .\"O POSIX.1-200x leaves it unspecified whether a successful call to .\"O .BR fdopendir () .\"O will set the close-on-exec flag for the file descriptor, .\"O .IR fd . .BR fdopendir () -¤Î¸Æ¤Ó½Ð¤·¤¬À®¸ù¤·¤¿ºÝ¤Ë¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +の呼び出しが成功した際に、ファイルディスクリプタ .I fd -¤Î close-on-exec ¤òÀßÄꤹ¤ë¤«¤É¤¦¤«¤Ï¡¢ -POSIX.1-200x ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +の close-on-exec を設定するかどうかは、 +POSIX.1-200x では規定されていない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR open (2), .BR closedir (3), .BR dirfd (3), diff --git a/draft/man3/openpty.3 b/draft/man3/openpty.3 index 6dddf27a..6d6c64f6 100644 --- a/draft/man3/openpty.3 +++ b/draft/man3/openpty.3 @@ -36,16 +36,16 @@ .\" Updated Mon Mar 8 2003 by Akihiro MOTOKI .\" Updated Sun Sep 14 2003 by Akihiro MOTOKI .\" -.\"WORD: tty üËö -.\"WORD: pseudoterminal µ¿»÷üËö +.\"WORD: tty 端末 +.\"WORD: pseudoterminal 疑似端末 .\" .TH OPENPTY 3 2010-06-13 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O openpty, login_tty, forkpty \- tty utility functions -openpty, login_tty, forkpty \- üËö¥æ¡¼¥Æ¥£¥ê¥Æ¥£´Ø¿ô +openpty, login_tty, forkpty \- 端末ユーティリティ関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -62,10 +62,10 @@ openpty, login_tty, forkpty \- ü .BI "int login_tty(int " fd ); .sp .\"O Link with \fI\-lutil\fP. -\fI\-lutil\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lutil\fP でリンクする。 .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR openpty () .\"O function finds an available pseudoterminal and returns file descriptors @@ -74,37 +74,37 @@ openpty, login_tty, forkpty \- ü .\"O and .\"O .IR aslave . .BR openpty () -´Ø¿ô¤Ï¡¢»ÈÍѲÄǽ¤Êµ¿»÷üËö (pseudoterminal) ¤ò¸«¤Ä¤±¤Æ¡¢ -¥Þ¥¹¥¿¤È¥¹¥ì¡¼¥Ö¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò +関数は、使用可能な疑似端末 (pseudoterminal) を見つけて、 +マスタとスレーブのファイル・ディスクリプタを .I amaster -¤È +と .I aslave -¤ËÆþ¤ì¤ÆÊÖ¤¹¡£ +に入れて返す。 .\"O If .\"O .I name .\"O is not NULL, the filename of the slave is returned in .\"O .IR name . .I name -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢¥¹¥ì¡¼¥Ö¤Î¥Õ¥¡¥¤¥ë̾¤¬ +が NULL でない場合、スレーブのファイル名が .I name -¤ËÊÖ¤µ¤ì¤ë¡£ +に返される。 .\"O If .\"O .I termp .\"O is not NULL, the terminal parameters of the slave will be set to the .\"O values in .\"O .IR termp . .I termp -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢¥¹¥ì¡¼¥Ö¤ÎüËö¥Ñ¥é¥á¡¼¥¿¤Ï +が NULL でない場合、スレーブの端末パラメータは .I termp -¤ÎÃͤËÀßÄꤵ¤ì¤ë¡£ +の値に設定される。 .\"O If .\"O .I winp .\"O is not NULL, the window size of the slave will be set to the values in .\"O .IR winp . .I winp -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢¥¹¥ì¡¼¥Ö¤Î¥¦¥¤¥ó¥É¥¦¥µ¥¤¥º¤Ï +が NULL でない場合、スレーブのウインドウサイズは .I winp -¤ËÀßÄꤵ¤ì¤ë¡£ +に設定される。 .\"O The .\"O .BR login_tty () @@ -121,21 +121,21 @@ openpty, login_tty, forkpty \- ü .\"O process, and closing .\"O .IR fd . .BR login_tty () -´Ø¿ô¤Ï¡¢Ã¼Ëö +関数は、端末 .I fd -¤Ë¥í¥°¥¤¥ó¤¹¤ë½àÈ÷¤ò¤¹¤ë +にログインする準備をする .RI ( fd -¤Ï¼ÂºÝ¤ÎüËö¥Ç¥Ð¥¤¥¹¤Ç¤â¡¢ +は実際の端末デバイスでも、 .BR openpty () -¤ÇÊÖ¤µ¤ì¤ëµ¿»÷üËö¤Î¥¹¥ì¡¼¥Ö¤Ç¤â¤è¤¤)¡£ -¶ñÂÎŪ¤Ë¤Ï¡¢¿·¤·¤¤¥»¥Ã¥·¥ç¥ó¤òºîÀ®¤·¡¢ +で返される疑似端末のスレーブでもよい)。 +具体的には、新しいセッションを作成し、 .I fd -¤ò¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤È¤·¡¢ -¸Æ¤Ó½Ð¤·¸µ¤Îɸ½àÆþÎÏ¡¦É¸½à½ÐÎÏ¡¦É¸½à¥¨¥é¡¼¤Î¥¹¥È¥ê¡¼¥à¤ò +を呼び出し元のプロセスの制御端末とし、 +呼び出し元の標準入力・標準出力・標準エラーのストリームを .I fd -¤ËÀßÄꤷ¤¿¸å¡¢ +に設定した後、 .I fd -¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +をクローズする。 .\"O The .\"O .BR forkpty () @@ -146,24 +146,24 @@ openpty, login_tty, forkpty \- ü .\"O .BR login_tty () .\"O to create a new process operating in a pseudoterminal. .BR forkpty () -´Ø¿ô¤Ï +関数は .BR openpty (), .BR fork (2), .BR login_tty () -¤òÁȤ߹ç¤ï¤»¡¢µ¿»÷üËö¤òÁàºî¤¹¤ë¿·¤·¤¤¥×¥í¥»¥¹¤òÀ¸À®¤¹¤ë¡£ +を組み合わせ、疑似端末を操作する新しいプロセスを生成する。 .\"O The file .\"O descriptor of the master side of the pseudoterminal is returned in .\"O .IR amaster , .\"O and the filename of the slave in .\"O .I name .\"O if it is not NULL. -µ¿»÷üËö¤Î¥Þ¥¹¥¿Â¦¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï +疑似端末のマスタ側のファイル・ディスクリプタは .I amaster -¤ËÊÖ¤µ¤ì¡¢ +に返され、 .I name -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢¥¹¥ì¡¼¥Ö¤Î¥Õ¥¡¥¤¥ë̾¤¬ +が NULL でない場合には、スレーブのファイル名が .I name -¤ËÊÖ¤µ¤ì¤ë¡£ +に返される。 .\"O The .\"O .I termp .\"O and @@ -172,12 +172,12 @@ openpty, login_tty, forkpty \- ü .\"O will determine the terminal attributes and window size of the slave .\"O side of the pseudoterminal. .I termp -¤È +と .I winp -°ú¤­¿ô¤Ï¡¢NULL ¤Ç¤Ê¤±¤ì¤Ð¡¢ -µ¿»÷üËö¤Î¥¹¥ì¡¼¥Ö¦¤ÎüËö°À­¤È¥¦¥¤¥ó¥É¥¦¥µ¥¤¥º¤ò·èÄꤹ¤ë¡£ +引き数は、NULL でなければ、 +疑似端末のスレーブ側の端末属性とウインドウサイズを決定する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O If a call to .\"O .BR openpty (), .\"O .BR login_tty (), @@ -189,10 +189,10 @@ openpty, login_tty, forkpty \- ü .BR openpty (), .BR login_tty (), .BR forkpty () -¤Î¸Æ¤Ó½Ð¤·¤¬À®¸ù¤·¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ -\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +の呼び出しが成功しなかった場合、 +\-1 が返されて、 .I errno -¤Ï¥¨¥é¡¼¤ò¼¨¤¹ÃͤËÀßÄꤵ¤ì¤ë¡£ +はエラーを示す値に設定される。 .\"O Otherwise, .\"O .BR openpty (), .\"O .BR login_tty (), @@ -201,25 +201,25 @@ openpty, login_tty, forkpty \- ü .\"O return 0, and the parent process of .\"O .BR forkpty () .\"O returns the process ID of the child process. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR openpty (), .BR login_tty () -¤ª¤è¤Ó +および .BR forkpty () -¤Î»Ò¥×¥í¥»¥¹¤Ï 0 ¤òÊÖ¤·¡¢ +の子プロセスは 0 を返し、 .BR forkpty () -¤Î¿Æ¥×¥í¥»¥¹¤Ï»Ò¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤òÊÖ¤¹¡£ +の親プロセスは子プロセスのプロセス ID を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O .BR openpty () .\"O will fail if: -°Ê²¼¤Î¾ì¹ç¤Ë +以下の場合に .BR openpty () -¤Ï¼ºÇÔ¤¹¤ë: +は失敗する: .TP .B ENOENT .\"O There are no available ttys. -»ÈÍѲÄǽ¤ÊüËö¤¬¤Ê¤¤¡£ +使用可能な端末がない。 .LP .\"O .BR login_tty () .\"O will fail if @@ -228,11 +228,11 @@ openpty, login_tty, forkpty \- ü .\"O .I fd .\"O to the controlling terminal of the calling process. .BR ioctl (2) -¤¬ +が .I fd -¤ò¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤ËÀßÄꤹ¤ë¤Î¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +を呼び出し元のプロセスの制御端末に設定するのに失敗した場合、 .BR login_tty () -¤Ï¼ºÇÔ¤¹¤ë¡£ +は失敗する。 .LP .\"O .BR forkpty () .\"O will fail if either @@ -241,26 +241,26 @@ openpty, login_tty, forkpty \- ü .\"O .BR fork (2) .\"O fails. .BR openpty () -¤Þ¤¿¤Ï +または .BR fork (2) -¤Î¤É¤Á¤é¤«¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +のどちらかが失敗した場合、 .BR forkpty () -¤Ï¼ºÇÔ¤¹¤ë¡£ +は失敗する。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These are BSD functions, present in libc5 and glibc2. .\"O They are not standardized in POSIX. -¤³¤ì¤é¤Ï BSD ¤Î´Ø¿ô¤Ç¤¢¤ê¡¢libc5 ¤È glibc2 ¤Ë¸ºß¤¹¤ë¡£ -POSIX ¤Ç¤Îɸ½à²½¤Ï¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +これらは BSD の関数であり、libc5 と glibc2 に存在する。 +POSIX での標準化はされていない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .\" These functions are included in libutil, hence you'll need to add .\"O .\" .B \-lutil .\"O .\" to your compiler command line. -.\" ¤³¤ì¤é¤Î´Ø¿ô¤Ï libutil ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢¥³¥ó¥Ñ¥¤¥ë»þ¤Î -.\" ¥ª¥×¥·¥ç¥ó¤Ë +.\" これらの関数は libutil に含まれている。したがって、コンパイル時の +.\" オプションに .\" .B \-lutil -.\" ¤ò²Ã¤¨¤ëɬÍפ¬¤¢¤ë¡£ +.\" を加える必要がある。 .\" .\"O The .\"O .B const @@ -269,13 +269,13 @@ POSIX .\"O and .\"O .BR forkpty () .\"O in glibc 2.8. -glibc 2.8 ¤Ç¡¢ +glibc 2.8 で、 .BR openpty () -¤È +と .BR forkpty () -¤Î¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Î°ú¤­¿ô¤Ë +の構造体へのポインタの引き数に .B const -½¤¾þ»Ò¤¬Äɲ䵤줿¡£ +修飾子が追加された。 .\"O In versions of glibc before 2.0.92, .\"O .BR openpty () @@ -283,20 +283,20 @@ glibc 2.8 .\"O since glibc 2.0.92, .\"O it first attempts to open a Unix 98 pseudoterminal pair, .\"O and falls back to opening a BSD pseudoterminal pair if that fails. -2.0.92 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î glibc ¤Ç¤Ï¡¢ +2.0.92 より前のバージョンの glibc では、 .BR openpty () -¤Ï BSD µ¿»÷üËö¥Ú¥¢¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -2.0.92 °Ê¹ß¤Î glibc ¤Ç¤Ï¡¢ +は BSD 疑似端末ペアのファイル・ディスクリプタを返す。 +2.0.92 以降の glibc では、 .BR openpty () -¤Ï¤Þ¤º Unix 98 µ¿»÷üËö¥Ú¥¢¤ò¥ª¡¼¥×¥ó¤·¤è¤¦¤È¤·¡¢¤½¤ì¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ë -BSD µ¿»÷üËö¥Ú¥¢¤Î¥ª¡¼¥×¥ó¤Ø¤È°Ü¹Ô¤¹¤ë¡£ +はまず Unix 98 疑似端末ペアをオープンしようとし、それに失敗した場合に +BSD 疑似端末ペアのオープンへと移行する。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Nobody knows how much space should be reserved for .\"O .IR name . -ï¤â +誰も .I name -¤ËÂФ·¤Æ¤É¤Î¤¯¤é¤¤Â礭¤µ¤òͽÌ󤷤Ƥª¤±¤Ð¤¤¤¤¤«Ê¬¤«¤é¤Ê¤¤¡£ +に対してどのくらい大きさを予約しておけばいいか分からない。 .\"O So, calling .\"O .BR openpty () .\"O or @@ -304,15 +304,15 @@ BSD .\"O with non-NULL .\"O .I name .\"O may not be secure. -¤·¤¿¤¬¤Ã¤Æ¡¢NULL ¤Ç¤Ê¤¤ +したがって、NULL でない .I name -¤ò°ú¤­¿ô¤È¤·¤Æ +を引き数として .BR openpty () -¤ä +や .BR forkpty () -¤ò¸Æ¤Ó½Ð¤¹¤Î¤Ï°ÂÁ´¤Ç¤¢¤ë¤È¤Ï¸À¤¨¤Ê¤¤¡£ +を呼び出すのは安全であるとは言えない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fork (2), .BR ttyname (3), .BR pty (7) diff --git a/draft/man3/perror.3 b/draft/man3/perror.3 index 9f9c02ce..315faa50 100644 --- a/draft/man3/perror.3 +++ b/draft/man3/perror.3 @@ -35,11 +35,11 @@ .\" .TH PERROR 3 2007-07-26 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O perror \- print a system error message -perror \- ¥·¥¹¥Æ¥à¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ¹¤ë +perror \- システムエラーメッセージを出力する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "void perror(const char *" s ); @@ -55,24 +55,24 @@ perror \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .IR sys_errlist , .IR sys_nerr : _BSD_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The routine .\"O .BR perror () .\"O produces a message on the standard error output, describing the last .\"O error encountered during a call to a system or library function. -´Ø¿ô +関数 .BR perror () -¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤Ë¤ª¤¤¤Æ¡¢ºÇ¸å¤ËȯÀ¸¤·¤¿ -¥¨¥é¡¼¤Ë´Ø¤¹¤ëÀâÌÀ¥á¥Ã¥»¡¼¥¸¤òÀ¸À®¤·¡¢É¸½à¥¨¥é¡¼½ÐÎϤ˽ÐÎϤ¹¤ë¡£ +は、システムコールやライブラリ関数の呼び出しにおいて、最後に発生した +エラーに関する説明メッセージを生成し、標準エラー出力に出力する。 .\"O First (if .\"O .I s .\"O is not NULL and @@ -82,12 +82,12 @@ _BSD_SOURCE .\"O is printed, followed by a colon and a blank. .\"O Then the message and a new-line. .RI ( s -¤¬ NULL ¤Ç¤Ê¤¯¡¢ +が NULL でなく、 .I *s -¤¬ NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï) °ú¤­¿ô¤Îʸ»úÎó +が NULL バイト (\(aq\\0\(aq) でない場合には) 引き数の文字列 .I s -¤¬¤Þ¤º½ÐÎϤµ¤ì¡¢Â³¤¤¤Æ¥³¥í¥ó¡¢¶õÇò¤¬½ÐÎϤµ¤ì¡¢ -¤½¤ì¤«¤é¥á¥Ã¥»¡¼¥¸¤È²þ¹Ô¤¬½ÐÎϤµ¤ì¤ë¡£ +がまず出力され、続いてコロン、空白が出力され、 +それからメッセージと改行が出力される。 .\"O To be of most use, the argument string should include the name .\"O of the function that incurred the error. @@ -96,14 +96,14 @@ _BSD_SOURCE .\"O .IR errno , .\"O which is set when errors occur but not .\"O cleared when successful calls are made. -¤³¤Î¥á¥Ã¥»¡¼¥¸¤òºÇÂç¸Â³èÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢°ú¤­¿ôʸ»úÎó¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿ -´Ø¿ô̾¤òÆþ¤ì¤Æ¤ª¤¯¤È¤è¤¤¡£ -¥¨¥é¡¼ÈÖ¹æ¤Ï³°ÉôÊÑ¿ô +このメッセージを最大限活用するためには、引き数文字列にエラーが発生した +関数名を入れておくとよい。 +エラー番号は外部変数 .I errno -¤«¤é¼èÆÀ¤µ¤ì¤ë¡£ +から取得される。 .I errno -¤Ï¥¨¥é¡¼¤¬È¯À¸¤·¤¿»þ¤ËÀßÄꤵ¤ì¡¢ -À®¸ù¤·¤¿¸Æ¤Ó½Ð¤·¤Ç¤Ï¥¯¥ê¥¢¤µ¤ì¤Ê¤¤¡£ +はエラーが発生した時に設定され、 +成功した呼び出しではクリアされない。 .\"O The global error list .\"O .IR sys_errlist "[]" @@ -115,17 +115,17 @@ _BSD_SOURCE .\"O Be careful when directly accessing this list because new error values .\"O may not have been added to .\"O .IR sys_errlist "[]." -Âç°èÊÑ¿ô¤Î¥¨¥é¡¼¥ê¥¹¥È +大域変数のエラーリスト .IR sys_errlist "[]" -¤Ï +は .I errno -¤òź»ú¤È¤¹¤ëÇÛÎó¤Ç¡¢¤³¤ÎÇÛÎ󤫤é²þ¹Ô̵¤·¤Î¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬¼èÆÀ¤µ¤ì¤ë¡£ -¥Æ¡¼¥Ö¥ë¤Ç¤ÎºÇÂç¤Î¥á¥Ã¥»¡¼¥¸ÈÖ¹æ¤Ï +を添字とする配列で、この配列から改行無しのエラーメッセージが取得される。 +テーブルでの最大のメッセージ番号は .IR sys_nerr " \-1" -¤È¤Ê¤ë¡£ -¤³¤Î¥Æ¡¼¥Ö¥ë¤òľÀÜ»²¾È¤¹¤ëºÝ¤Ë¤ÏÃí°Õ¤¹¤ë¤³¤È¡£¤Ê¤¼¤Ê¤é¡¢¿·¤·¤¤¥¨¥é¡¼Èֹ椬 +となる。 +このテーブルを直接参照する際には注意すること。なぜなら、新しいエラー番号が .IR sys_errlist "[]" -¤ËÄɲúѤȤϸ¤é¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +に追加済とは限らないからである。 .\"O When a system call fails, it usually returns \-1 and sets the .\"O variable @@ -134,12 +134,12 @@ _BSD_SOURCE .\"O (These values can be found in .\"O .IR .) .\"O Many library functions do likewise. -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢Ä̾ÊÖ¤êÃͤȤ·¤Æ \-1 ¤¬Ê֤ꡢ +システムコールが失敗した場合、通常、返り値として \-1 が返り、 .I errno -¤Ë¥¨¥é¡¼¤ò¼±Ê̤¹¤ëÃͤ¬ÀßÄꤵ¤ì¤ë (ÀßÄꤵ¤ì¤ë¥¨¥é¡¼ÈÖ¹æ¤Ï +にエラーを識別する値が設定される (設定されるエラー番号は .I -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë)¡£ -¿¤¯¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤âƱÍͤÎÆ°ºî¤È¤Ê¤ë¡£ +に記載されている)。 +多くのライブラリ関数も同様の動作となる。 .\"O The function .\"O .BR perror () .\"O serves to translate this error code into human-readable form. @@ -148,26 +148,26 @@ _BSD_SOURCE .\"O is undefined after a successful library call: .\"O this call may well change this variable, even though it succeeds, .\"O for example because it internally used some other library function that failed. -´Ø¿ô +関数 .BR perror () -¤Ï¡¢¤³¤Î¥¨¥é¡¼¥³¡¼¥É¤Î²ÄÆɤʥá¥Ã¥»¡¼¥¸¤Ø¤ÎÊÑ´¹¤ò¹Ô¤¦¡£ +は、このエラーコードの可読なメッセージへの変換を行う。 .I errno -¤Ï¡¢¥é¥¤¥Ö¥é¥ê¸Æ¤Ó½Ð¤·¤¬À®¸ù¤·¤¿¸å¤Ë¤Ï̤ÄêµÁ¤Ç¤¢¤ë¤³¤È¤ËÃí°Õ¤¬É¬ÍפǤ¢¤ë: -¤½¤Î¸Æ¤Ó½Ð¤·¼«¿È¤ÏÀ®¸ù¤·¤¿¤È¤·¤Æ¤â¡¢ÆâÉô¤Ç¸Æ¤Ó½Ð¤·¤¿Â¾¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤¬ -¼ºÇÔ¤·¤Æ¡¢¤½¤Î·ë²Ì¤ò¤³¤ÎÊÑ¿ô¤ËÀßÄꤹ¤ë¤³¤È¤¬¤¢¤ë¤«¤é¤À¡£ +は、ライブラリ呼び出しが成功した後には未定義であることに注意が必要である: +その呼び出し自身は成功したとしても、内部で呼び出した他のライブラリ関数が +失敗して、その結果をこの変数に設定することがあるからだ。 .\"O Thus, if a failing call is not immediately followed by a call to .\"O .BR perror (), .\"O the value of .\"O .I errno .\"O should be saved. -¤è¤Ã¤Æ¡¢¼ºÇÔ¤·¤¿¸Æ¤Ó½Ð¤·¤Îľ¸å¤Ë +よって、失敗した呼び出しの直後に .BR perror () -¤ò¸Æ¤Ð¤Ê¤¤¾ì¹ç¤Ë¤Ï +を呼ばない場合には .I errno -¤ÎÃͤò -Êݸ¤·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +の値を +保存しておかなければならない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The function .\"O .BR perror () .\"O and the external @@ -180,32 +180,32 @@ _BSD_SOURCE .\"O and .\"O .I sys_errlist .\"O conform to BSD. -´Ø¿ô +関数 .BR perror () -¤È³°ÉôÊÑ¿ô +と外部変数 .I errno .RB ( errno (3) -»²¾È) ¤Ï C89, 4.3BSD, POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ -³°ÉôÊÑ¿ô +参照) は C89, 4.3BSD, POSIX.1-2001 に準拠している。 +外部変数 .I sys_nerr -¤È +と .I sys_errlist -¤Ï BSD ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +は BSD に準拠している。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The externals .\"O .I sys_nerr .\"O and .\"O .I sys_errlist .\"O are defined by glibc, but in .\"O .IR . -³°ÉôÊÑ¿ô +外部変数 .I sys_nerr -¤È +と .I sys_errlist -¤Ï glibc ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ +は glibc で定義されているが、 .I -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +に含まれている。 .\"O .\" and only when _BSD_SOURCE is defined. .\"O .\" When .\"O .\" .B _GNU_SOURCE @@ -215,15 +215,15 @@ _BSD_SOURCE .\"O .\" .I _sys_errlist .\"O .\" are provided. .\" .B _BSD_SOURCE -.\" ¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë¤Î¤ß¡¢¤³¤ì¤é¤ÎÊÑ¿ô¤ÏÄêµÁ¤µ¤ì¤ë¡£ +.\" が定義された場合にのみ、これらの変数は定義される。 .\" .B _GNU_SOURCE -.\" ¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ï¡¢ +.\" が定義された場合は、 .\" .I _sys_nerr -.\" ¤È +.\" と .\" .I _sys_errlist -.\" ¤È¤¤¤¦¥·¥ó¥Ü¥ë¤¬Ä󶡤µ¤ì¤ë¡£ +.\" というシンボルが提供される。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR err (3), .BR errno (3), .BR error (3), diff --git a/draft/man3/popen.3 b/draft/man3/popen.3 index 973bbdb1..37064928 100644 --- a/draft/man3/popen.3 +++ b/draft/man3/popen.3 @@ -44,10 +44,10 @@ .TH POPEN 3 2010-02-03 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O popen, pclose \- pipe stream to or from a process -.SH ̾Á° -popen, pclose \- ¥×¥í¥»¥¹¤È¤ÎÆþÎÏ/½ÐÎÏÍѤΥѥ¤¥×¡¦¥¹¥È¥ê¡¼¥à +.SH 名前 +popen, pclose \- プロセスとの入力/出力用のパイプ・ストリーム .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -59,9 +59,9 @@ popen, pclose \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .ad l .in .sp @@ -72,7 +72,7 @@ _POSIX_C_SOURCE\ >=\ 2 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR popen () .\"O function opens a process by creating a pipe, forking, and invoking the @@ -82,14 +82,14 @@ _POSIX_C_SOURCE\ >=\ 2 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE .\"O argument may specify only reading or writing, not both; the resulting .\"O stream is correspondingly read-only or write-only. .BR popen () -´Ø¿ô¤Ï¡¢¥×¥í¥»¥¹¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£¶ñÂÎŪ¤Ë¤Ï¡¢ -¥Ñ¥¤¥×¤òÀ¸À®¤·¡¢¥Õ¥©¡¼¥¯¤ò¹Ô¤¤¡¢¥·¥§¥ë¤òµ¯Æ°¤¹¤ë¡£ -ÄêµÁ¤«¤éʬ¤«¤ë¤è¤¦¤Ë¡¢¥Ñ¥¤¥×¤Ï°ìÊý¸þ¤Ê¤Î¤Ç¡¢ +関数は、プロセスをオープンする。具体的には、 +パイプを生成し、フォークを行い、シェルを起動する。 +定義から分かるように、パイプは一方向なので、 .I type -°ú¤­¿ô¤Ë¤ÏÆɤ߹þ¤ß¤«½ñ¤­¹þ¤ß¤Î¤É¤Á¤é¤«°ìÊý¤À¤±¤ò»ØÄê¤Ç¤­¤ë -(ξÊý¤Ï»ØÄê¤Ç¤­¤Ê¤¤)¡£ -À¸À®¤µ¤ì¤ë¥¹¥È¥ê¡¼¥à¤Ï¡¢¤³¤Î»ØÄê¤ËÂбþ¤·¤Æ¡¢Æɤ߼è¤êÀìÍѤޤ¿¤Ï -½ñ¤­¹þ¤ßÀìÍѤΤ¤¤º¤ì¤«¤È¤Ê¤ë¡£ +引き数には読み込みか書き込みのどちらか一方だけを指定できる +(両方は指定できない)。 +生成されるストリームは、この指定に対応して、読み取り専用または +書き込み専用のいずれかとなる。 .PP .\"O The .\"O .I command @@ -105,18 +105,18 @@ _POSIX_C_SOURCE\ >=\ 2 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE .\"O argument is a pointer to a null-terminated string which must contain .\"O either the letter \(aqr\(aq for reading or the letter \(aqw\(aq for writing. .I command -°ú¤­¿ô¤Ï¡¢¥·¥§¥ë¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤ò´Þ¤à -NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤³¤Î¥³¥Þ¥ó¥É¤Ï +引き数は、シェルのコマンドラインを含む +NULL 終端された文字列へのポインタである。 +このコマンドは .B \-c -¥Õ¥é¥°¤òÍѤ¤¤Æ +フラグを用いて .I /bin/sh -¤ËÅϤµ¤ì¤ë¡£ -¥³¥Þ¥ó¥É¤Î²ò¼á¤Ï (¤â¤·É¬Íפʤé¤Ð) ¥·¥§¥ë¤Ë¤è¤Ã¤Æ¹Ô¤ï¤ì¤ë¡£ +に渡される。 +コマンドの解釈は (もし必要ならば) シェルによって行われる。 .I type -°ú¤­¿ô¤Ï¡¢NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¡¢ -Æɤ߹þ¤ß¤ò¼¨¤¹Ê¸»ú \(aqr\(aq ¤«¡¢½ñ¤­¹þ¤ß¤ò¼¨¤¹Ê¸»ú \(aqw\(aq ¤Î -¤É¤Á¤é¤«°ìÊý¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数は、NULL 終端された文字列へのポインタで、 +読み込みを示す文字 \(aqr\(aq か、書き込みを示す文字 \(aqw\(aq の +どちらか一方を指定しなければならない。 .\"O Since glibc 2.9, .\"O this argument can additionally include the letter \(aqe\(aq, .\"O which causes the close-on-exec flag @@ -127,17 +127,17 @@ NULL .\"O flag in .\"O .BR open (2) .\"O for reasons why this may be useful. -glibc 2.9 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î°ú¤­¿ô¤Ëʸ»ú \(aqe\(aq ¤òÄɲäǻØÄê¤Ç¤­¤ë¡£ -ʸ»ú \(aqe\(aq ¤ò»ØÄꤹ¤ë¤È¡¢ -Âбþ¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤ª¤¤¤Æ¡¢ -close-on-exec ¥Õ¥é¥° +glibc 2.9 以降では、この引き数に文字 \(aqe\(aq を追加で指定できる。 +文字 \(aqe\(aq を指定すると、 +対応するファイルディスクリプタにおいて、 +close-on-exec フラグ .RB ( FD_CLOEXEC ) -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ -¤³¤ì¤¬Ìò¤ËΩ¤ÄÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +がセットされる。 +これが役に立つ理由については、 .BR open (2) -¤Î +の .B O_CLOEXEC -¥Õ¥é¥°¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +フラグの説明を参照のこと。 .PP .\"O The return value from .\"O .BR popen () @@ -147,11 +147,11 @@ close-on-exec .\"O rather than .\"O .BR fclose (3). .BR popen () -¤«¤é¤ÎÊÖ¤êÃͤϡ¢Ä̾ï¤Îɸ½à I/O ¥¹¥È¥ê¡¼¥à¤ÈƱ¤¸¤Ç¤¢¤ë¤¬¡¢ +からの返り値は、通常の標準 I/O ストリームと同じであるが、 .BR fclose (3) -¤Ç¤Ï¤Ê¤¯ +ではなく .BR pclose () -¤ÇÊĤ¸¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¤³¤È¤À¤±¤¬°Û¤Ê¤ë¡£ +で閉じなくてはならないことだけが異なる。 .\"O Writing to such a stream writes to the standard input of the command; the .\"O command's standard output is the same as that of the process that called .\"O .BR popen (), @@ -160,25 +160,25 @@ close-on-exec .\"O "popened" stream reads the command's standard output, and the command's .\"O standard input is the same as that of the process that called .\"O .BR popen (). -¤³¤Î¥¹¥È¥ê¡¼¥à¤Ø½ñ¤­¹þ¤ó¤À·ë²Ì¤Ï¥³¥Þ¥ó¥É¤Îɸ½àÆþÎϤ˽ñ¤­¹þ¤Þ¤ì¤ë¡£ -¤½¤·¤Æ¡¢¥³¥Þ¥ó¥É¤Îɸ½à½ÐÎϤϡ¢ -¥³¥Þ¥ó¥É¤½¤Î¤â¤Î¤¬ÃÖ¤­´¹¤ï¤Ã¤Æ¤·¤Þ¤ï¤Ê¤¤¸Â¤ê¡¢ +このストリームへ書き込んだ結果はコマンドの標準入力に書き込まれる。 +そして、コマンドの標準出力は、 +コマンドそのものが置き換わってしまわない限り、 .BR popen () -¤ò¸Æ¤ó¤À¥×¥í¥»¥¹¤Îɸ½à½ÐÎϤÈƱ¤¸¤³¤È¤Ë¤Ê¤ë¡£ -µÕ¤Ë¡¢"popened" +を呼んだプロセスの標準出力と同じことになる。 +逆に、"popened" .RB ( popen () -¤Ë¤è¤Ã¤Æ³«¤«¤ì¤¿) ¥¹¥È¥ê¡¼¥à¤«¤é¤ÎÆɤ߹þ¤ß¤Ï¡¢ -¤½¤Î¥³¥Þ¥ó¥É¤Îɸ½à½ÐÎϤòÆɤ߹þ¤à¤³¤È¤Ë¤Ê¤ë¡£ -¤½¤·¤Æ¡¢¤½¤Î¥³¥Þ¥ó¥É¤Îɸ½àÆþÎÏ¤Ï +によって開かれた) ストリームからの読み込みは、 +そのコマンドの標準出力を読み込むことになる。 +そして、そのコマンドの標準入力は .BR popen () -¤ò¸Æ¤ó¤À¥×¥í¥»¥¹¤Îɸ½àÆþÎϤÈƱ°ì¤Ç¤¢¤ë¡£ +を呼んだプロセスの標準入力と同一である。 .PP .\"O Note that output .\"O .BR popen () .\"O streams are fully buffered by default. -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +デフォルトでは、 .BR popen () -¤Î½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Ï´°Á´¤Ë¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤ë¤³¤È¤ËÃí°Õ¤·¤è¤¦¡£ +の出力ストリームは完全にバッファリングされることに注意しよう。 .PP .\"O The .\"O .BR pclose () @@ -186,11 +186,11 @@ close-on-exec .\"O status of the command as returned by .\"O .BR wait4 (2). .BR pclose () -´Ø¿ô¤Ï¡¢(¥Ñ¥¤¥×¤Ë) ´ØÏ¢¤Å¤±¤é¤ì¤¿¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤Î¤òÂÔ¤Á¡¢ +関数は、(パイプに) 関連づけられたプロセスが終了するのを待ち、 .BR wait4 (2) -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤¿¥³¥Þ¥ó¥É¤Î½ªÎ»¾õÂÖ¤òÊÖ¤¹¡£ +によって返されたコマンドの終了状態を返す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR popen () .\"O function returns NULL if the @@ -199,12 +199,12 @@ close-on-exec .\"O .BR pipe (2) .\"O calls fail, or if it cannot allocate memory. .BR popen () -´Ø¿ô¤Ï¡¢ +関数は、 .BR fork (2) -¤Þ¤¿¤Ï +または .BR pipe (2) -¸Æ¤Ó½Ð¤·¤¬¼ºÇÔ¤·¤¿¾ì¹ç¤ä¡¢ -¥á¥â¥ê³ä¤êÅö¤Æ¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ NULL ¤òÊÖ¤¹¡£ +呼び出しが失敗した場合や、 +メモリ割り当てができなかった場合、 NULL を返す。 .PP .\"O The .\"O .BR pclose () @@ -218,12 +218,12 @@ close-on-exec .\"O .BR wait4 (2) .\"O returns an error, or some other error is detected. .BR pclose () -´Ø¿ô¤Ï¡¢ +関数は、 .BR wait4 (2) -¤¬¥¨¥é¡¼¤òÊÖ¤·¤¿¤ê¡¢²¿¤«Â¾¤Î¥¨¥é¡¼¤¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç¡¢ -\-1 ¤òÊÖ¤¹¡£ +がエラーを返したり、何か他のエラーが見つかった場合、 +\-1 を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O The .\"O .BR popen () .\"O function does not set @@ -243,24 +243,24 @@ close-on-exec .\"O is set to .\"O .BR EINVAL . .BR popen () -´Ø¿ô¤Ï¡¢¥á¥â¥ê¥¢¥í¥±¡¼¥·¥ç¥ó¤Ë¼ºÇÔ¤·¤Æ¤â +関数は、メモリアロケーションに失敗しても .I errno -¤ò¥»¥Ã¥È¤·¤Ê¤¤¡£ +をセットしない。 .BR popen () -¤¬Ãæ¤Ç¸Æ¤Ó½Ð¤¹ +が中で呼び出す .BR fork (2) -¤ä +や .BR pipe (2) -¤¬¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ +が失敗した場合には、 .I errno -¤¬Å¬Àڤ˥»¥Ã¥È¤µ¤ì¤ë¡£ -°ú¤­¿ô +が適切にセットされる。 +引き数 .I type -¤¬Ìµ¸ú¤Ç¤¢¤ê¡¢¤³¤Î¾õÂÖ¤¬¸¡ÃΤµ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ +が無効であり、この状態が検知された場合には、 .I errno -¤¬ +が .B EINVAL -¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ +にセットされる。 .PP .\"O If .\"O .BR pclose () @@ -269,22 +269,22 @@ close-on-exec .\"O is set to .\"O .BR ECHILD . .BR pclose () -¤¬¡¢»Ò¥×¥í¥»¥¹¤Î¾õÂÖ¤ò¼èÆÀ¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ +が、子プロセスの状態を取得できなかった場合、 .I errno -¤¬ +が .B ECHILD -¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ +にセットされる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O The \(aqe\(aq value for .\"O .I type .\"O is a Linux extension. .I type -¤Ë»ØÄê¤Ç¤­¤ë \(aqe\(aq ¤Ï Linux ¤Ç¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ +に指定できる \(aqe\(aq は Linux での拡張である。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Since the standard input of a command opened for reading shares its seek .\"O offset with the process that called .\"O .BR popen (), @@ -297,40 +297,40 @@ POSIX.1-2001. .\"O .BR fflush (3) .\"O before .\"O .BR popen (). -Æɤ߹þ¤ß¤Î¤¿¤á¤Ë³«¤«¤ì¤¿¥³¥Þ¥ó¥É¤Îɸ½àÆþÎÏ¤Ï +読み込みのために開かれたコマンドの標準入力は .BR popen (), -¤ò¸Æ¤ó¤À¥×¥í¥»¥¹¤È°ì½ï¤Ë¡¢¤½¤ÎÆɤ߼è¤ê°ÌÃÖ¤ò¶¦Í­¤¹¤ë¡£ -¤½¤Î¤¿¤á¡¢¤â¤È¤Î¥×¥í¥»¥¹¤¬¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤¿Æɤ߼è¤ê¤ò½ªÎ»¤·¤¿¤é¡¢ -¤½¤Î¥³¥Þ¥ó¥É¤ÎÆþÎÏ°ÌÃÖ¤ÏͽÁÛ¤µ¤ì¤¿¤â¤Î¤Ë¤Ï -¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -ƱÍͤˡ¢½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë³«¤«¤ì¤¿¥³¥Þ¥ó¥É¤«¤é¤Î½ÐÎϤϡ¢ -¤â¤È¤Î¥×¥í¥»¥¹¤Î½ÐÎϤȺ®¤¶¤ê¹ç¤¦¤³¤È¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¸å¼Ô¤Ï +を呼んだプロセスと一緒に、その読み取り位置を共有する。 +そのため、もとのプロセスがバッファリングされた読み取りを終了したら、 +そのコマンドの入力位置は予想されたものには +なっていないかもしれない。 +同様に、書き込みのために開かれたコマンドからの出力は、 +もとのプロセスの出力と混ざり合うことになるかもしれない。 +後者は .BR popen () -¤ÎÁ°¤Ë +の前に .BR fflush (3) -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ë¤è¤Ã¤Æ²óÈò²Äǽ¤Ç¤¢¤ë¡£ +を呼び出すことによって回避可能である。 .PP .\"O Failure to execute the shell is indistinguishable from the shell's failure .\"O to execute command, or an immediate exit of the command. .\"O The only hint is an exit status of 127. -¥·¥§¥ë¤Î¼Â¹Ô¤Î¼ºÇԤϡ¢ -¥·¥§¥ë¤¬¥³¥Þ¥ó¥É¤Î¼Â¹Ô¤Ë¼ºÇÔ¤·¤¿¤³¤È¤ä¡¢ -¥³¥Þ¥ó¥É¤¬¤¹¤°¤Ë½ªÎ»¤·¤Æ¤·¤Þ¤Ã¤¿¤³¤È¤È¡¢¶èÊ̤¬¤Ä¤«¤Ê¤¤¡£ -Í£°ì¤Î¥Ò¥ó¥È¤Ï½ªÎ»¾õÂÖ¤¬ 127 ¤Ë¤Ê¤ë¤³¤È¤Ç¤¢¤ë¡£ +シェルの実行の失敗は、 +シェルがコマンドの実行に失敗したことや、 +コマンドがすぐに終了してしまったことと、区別がつかない。 +唯一のヒントは終了状態が 127 になることである。 .\"O .\" .SH HISTORY -.\" .SH ÍúÎò +.\" .SH 履歴 .\"O .\" A .\"O .\" .BR popen () .\"O .\" and a .\"O .\" .BR pclose () .\"O .\" function appeared in Version 7 AT&T UNIX. .\" .BR popen () -.\" ´Ø¿ô¤È +.\" 関数と .\" .BR pclose () -.\" ´Ø¿ô¤Ï AT&T UNIX ¤Î Version 7 ¤«¤éƳÆþ¤µ¤ì¤¿¡£ +.\" 関数は AT&T UNIX の Version 7 から導入された。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sh (1), .BR fork (2), .BR pipe (2), diff --git a/draft/man3/posix_fallocate.3 b/draft/man3/posix_fallocate.3 index de7140c1..9ba24b9a 100644 --- a/draft/man3/posix_fallocate.3 +++ b/draft/man3/posix_fallocate.3 @@ -27,11 +27,11 @@ .\" .TH POSIX_FALLOCATE 3 2010-09-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O posix_fallocate \- allocate file space -posix_fallocate \- ¥Õ¥¡¥¤¥ë¤Î¥¹¥Ú¡¼¥¹¤ò³ÎÊݤ¹¤ë +posix_fallocate \- ファイルのスペースを確保する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -42,9 +42,9 @@ posix_fallocate \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR posix_fallocate (): @@ -53,7 +53,7 @@ _XOPEN_SOURCE\ >=\ 600 || _POSIX_C_SOURCE\ >=\ 200112L .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The function .\"O .BR posix_fallocate () .\"O ensures that disk space is allocated for the file referred to by the @@ -64,59 +64,59 @@ _XOPEN_SOURCE\ >=\ 600 || _POSIX_C_SOURCE\ >=\ 200112L .\"O and continuing for .\"O .I len .\"O bytes. -´Ø¿ô +関数 .BR posix_fallocate () -¤Ï¡¢¥Ç¥£¥¹¥¯¥ê¥×¥¿ +は、ディスクリプタ .I fd -¤Ç»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡¢¥Ç¥£¥¹¥¯¥¹¥Ú¡¼¥¹¤ò³Î¼Â¤Ë³ÎÊݤ¹¤ë¡£ -¥Ç¥£¥¹¥¯¥¹¥Ú¡¼¥¹¤Ï +で参照されるファイルに対して、ディスクスペースを確実に確保する。 +ディスクスペースは .I offset -¤«¤é»Ï¤Þ¤ë +から始まる .I len -¥Ð¥¤¥È¤ÎÈϰϤΥХ¤¥È¤Ç¤¢¤ë¡£ +バイトの範囲のバイトである。 .\"O After a successful call to .\"O .BR posix_fallocate (), .\"O subsequent writes to bytes in the specified range are .\"O guaranteed not to fail because of lack of disk space. .BR posix_fallocate () -¤Î¸Æ¤Ó½Ð¤·¤¬À®¸ù¤·¤¿¸å¡¢»ØÄꤵ¤ì¤¿ÈϰϤΥХ¤¥È¤ËÂФ¹¤ë½ñ¤­¹þ¤ß¤Ï¡¢ -¥Ç¥£¥¹¥¯¥¹¥Ú¡¼¥¹¤ÎÉÔ­¤Ç¼ºÇÔ¤·¤Ê¤¤¤³¤È¤¬Êݾڤµ¤ì¤ë¡£ +の呼び出しが成功した後、指定された範囲のバイトに対する書き込みは、 +ディスクスペースの不足で失敗しないことが保証される。 .\"O If the size of the file is less than .\"O .IR offset + len , .\"O then the file is increased to this size; .\"O otherwise the file size is left unchanged. -¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤¬ +ファイルのサイズが .IR offset + len -¤è¤ê¾®¤µ¤¤¾ì¹ç¡¢¥Õ¥¡¥¤¥ë¤Ï¤³¤Î¥µ¥¤¥º¤Ë¤Ê¤ë¤è¤¦¤Ë³ÈÂ礵¤ì¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤ÏÊѤï¤é¤Ê¤¤¡£ +より小さい場合、ファイルはこのサイズになるように拡大される。 +それ以外の場合、ファイルサイズは変わらない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR posix_fallocate () .\"O returns zero on success, or an error number on failure. .BR posix_fallocate () -¤ÏÀ®¸ù¤·¤¿¾ì¹ç¡¢0 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢¥¨¥é¡¼ÈÖ¹æ¤òÊÖ¤¹¡£ +は成功した場合、0 を返す。 +失敗した場合、エラー番号を返す。 .\"O Note that .\"O .I errno .\"O is not set. .I errno -¤¬ÀßÄꤵ¤ì¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +が設定されない点に注意すること。 .\"O .SH "ERRORS" -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O .I fd .\"O is not a valid file descriptor, or is not opened for writing. .I fd -¤¬Í­¸ú¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ -¤Þ¤¿¤Ï½ñ¤­¹þ¤ßÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +が有効なディスクリプタでない。 +または書き込み用にオープンされていない。 .TP .B EFBIG .\"O .I offset+len .\"O exceeds the maximum file size. .I offset+len -¤¬ºÇÂç¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤òĶ¤¨¤Æ¤¤¤ë¡£ +が最大ファイルサイズを超えている。 .TP .B EINVAL .\"O .I offset @@ -124,36 +124,36 @@ _XOPEN_SOURCE\ >=\ 600 || _POSIX_C_SOURCE\ >=\ 200112L .\"O .I len .\"O was less than or equal to 0. .I offset -¤¬ 0 ̤Ëþ¤À¤Ã¤¿¤«¡¢ +が 0 未満だったか、 .I len -¤¬ 0 °Ê²¼¤À¤Ã¤¿¡£ +が 0 以下だった。 .TP .B ENODEV .\"O .I fd .\"O does not refer to a regular file. .I fd -¤¬Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤È¤·¤Æ»²¾È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +が通常のファイルとして参照されていない。 .TP .B ENOSPC .\"O There is not enough space left on the device containing the file .\"O referred to by .\"O .IR fd . .I fd -¤Ç»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¥Ç¥Ð¥¤¥¹¤Ë¡¢½½Ê¬¤Ê¥¹¥Ú¡¼¥¹¤¬»Ä¤Ã¤Æ¤¤¤Ê¤¤¡£ +で参照されるファイルが存在するデバイスに、十分なスペースが残っていない。 .TP .B ESPIPE .\"O .I fd .\"O refers to a pipe. .I fd -¤¬¥Ñ¥¤¥×¤ò»²¾È¤·¤Æ¤¤¤ë¡£ +がパイプを参照している。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR posix_fallocate () .\"O is available since glibc 2.1.94. .BR posix_fallocate () -¤Ï glibc 2.1.94 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +は glibc 2.1.94 以降で利用可能である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O POSIX.1-2008 says that an implementation @@ -165,13 +165,13 @@ POSIX.1-2001. .\"O was 0, or .\"O .I offset .\"O was less than 0. -POSIX.1-2008 ¤Ç¤Ï¡¢ +POSIX.1-2008 では、 .I len -¤¬ 0 ¤Î¾ì¹ç¡¢¤â¤·¤¯¤Ï +が 0 の場合、もしくは .I offset -¤¬ 0 ̤Ëþ¤Î¾ì¹ç¡¢ +が 0 未満の場合、 .B EINVAL -¥¨¥é¡¼¤òÊÖ¤¹¤â¤Î¤È¤µ¤ì¤Æ¤¤¤ë¡£ +エラーを返すものとされている。 .\"O POSIX.1-2001 says that an implementation .\"O .I shall .\"O give the @@ -185,19 +185,19 @@ POSIX.1-2008 .\"O give the error if .\"O .I len .\"O equals zero. -POSIX.1-2001 ¤Ç¤Ï¡¢ +POSIX.1-2001 では、 .I len -¤¬ 0 ̤Ëþ¤Î¾ì¹ç¡¢¤â¤·¤¯¤Ï +が 0 未満の場合、もしくは .I offset -¤¬ 0 ̤Ëþ¤Î¾ì¹ç¡¢ +が 0 未満の場合、 .B EINVAL -¥¨¥é¡¼¤òÊÖ¤¹¤â¤Î¤È¤µ¤ì¤Æ¤¤¤ë¡£¤Þ¤¿¡¢ +エラーを返すものとされている。また、 .I len -¤¬ 0 ¤Î¾ì¹ç¡¢ +が 0 の場合、 .B EINVAL -¥¨¥é¡¼¤òÊÖ¤·¤Æ¤â¤è¤¤¤È¤µ¤ì¤Æ¤¤¤ë¡£ +エラーを返してもよいとされている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fallocate (2), .BR lseek (2), .BR posix_fadvise (2) diff --git a/draft/man3/posix_memalign.3 b/draft/man3/posix_memalign.3 index c6d3c5a2..bd23ea97 100644 --- a/draft/man3/posix_memalign.3 +++ b/draft/man3/posix_memalign.3 @@ -31,17 +31,17 @@ .\" Updated 2005-11-19, Akihiro MOTOKI .\" Updated 2010-04-18, Akihiro MOTOKI, LDP v3.24 .\" -.\"WORD: obsolete Çѻߤµ¤ì¤¿ -.\"WORD: a multiple of ¡Á¤ÎÇÜ¿ô -.\"WORD: a power of two 2 ¤Î¤Ù¤­¾è +.\"WORD: obsolete 廃止された +.\"WORD: a multiple of 〜の倍数 +.\"WORD: a power of two 2 のべき乗 .\" .TH POSIX_MEMALIGN 3 2010-09-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O posix_memalign, memalign, valloc \- Allocate aligned memory -posix_memalign, memalign, valloc \- ¥¢¥é¥¤¥ó¥á¥ó¥È¤µ¤ì¤¿¥á¥â¥ê¤Î³ä¤êÅö¤Æ¤ò¹Ô¤¦ +posix_memalign, memalign, valloc \- アラインメントされたメモリの割り当てを行う .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -56,9 +56,9 @@ posix_memalign, memalign, valloc \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -73,7 +73,7 @@ _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .RS 4 .TP 4 .\"O Since glibc 2.12: -glibc 2.12 °Ê¹ß: +glibc 2.12 以降: .nf _BSD_SOURCE || (_XOPEN_SOURCE\ >=\ 500 || @@ -83,14 +83,14 @@ _BSD_SOURCE || .fi .TP .\"O Before glibc 2.12: -glibc 2.12 ¤è¤êÁ°: +glibc 2.12 より前: _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .RE .PD .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The function .\"O .BR posix_memalign () .\"O allocates @@ -101,20 +101,20 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O .IR "alignment" , .\"O which must be a power of two and a multiple of .\"O .IR "sizeof(void *)". -´Ø¿ô +関数 .BR posix_memalign () -¤Ï¡¢ +は、 .I size -¥Ð¥¤¥È¤Î¥á¥â¥ê¤ò³ä¤êÅö¤Æ¡¢³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤Î¥¢¥É¥ì¥¹¤ò +バイトのメモリを割り当て、割り当てられたメモリのアドレスを .I "*memptr" -¤ËÀßÄꤹ¤ë¡£ -³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤Î¥¢¥É¥ì¥¹¤Ï +に設定する。 +割り当てられたメモリのアドレスは .I "alignment" -¤ÎÇÜ¿ô¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Ï¤º¤Ç¤¢¤ë¡£ +の倍数になっているはずである。 .I "alignment" -¤Ï 2 ¤Î¤Ù¤­¾è¤Ç¡¢¤«¤Ä +は 2 のべき乗で、かつ .IR "sizeof(void *)" -¤ÎÇÜ¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +の倍数でなければならない。 .\"O If .\"O .I size .\"O is 0, then @@ -124,12 +124,12 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O or a unique pointer value that can later be successfully passed to .\"O .BR free (3). .I size -¤¬ 0 ¤Î¾ì¹ç¡¢ +が 0 の場合、 .BR posix_memalign () -¤Ï NULL ¤«°ì°Õ¤Ê¥Ý¥¤¥ó¥¿ÃͤòÊÖ¤¹¡£ -¤³¤Î¥Ý¥¤¥ó¥¿Ãͤϡ¢¸å¤Ç +は NULL か一意なポインタ値を返す。 +このポインタ値は、後で .BR free (3) -¤ËÌäÂê¤Ê¤¯ÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¡£ +に問題なく渡すことができる。 .\"O The obsolete function .\"O .BR memalign () @@ -139,16 +139,16 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O The memory address will be a multiple of .\"O .IR "boundary" , .\"O which must be a power of two. -Çѻߤµ¤ì¤¿´Ø¿ô¤Ç¤¢¤ë +廃止された関数である .BR memalign () -¤Ï¡¢ +は、 .I size -¥Ð¥¤¥È¤Î¥á¥â¥ê¤ò³ä¤êÅö¤Æ¡¢³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥á¥â¥ê¤Î¥¢¥É¥ì¥¹¤Ï +バイトのメモリを割り当て、割り当てられたメモリへのポインタを返す。 +メモリのアドレスは .I "boundary" -¤ÎÇÜ¿ô¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Ï¤º¤Ç¤¢¤ë¡£ +の倍数になっているはずである。 .I "boundary" -¤Ï 2 ¤Î¤Ù¤­¾è¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は 2 のべき乗でなければならない。 .\" The behavior of memalign() for size==0 is as for posix_memalign() .\" but no standards govern this. @@ -160,30 +160,30 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O The memory address will be a multiple of the page size. .\"O It is equivalent to .\"O .IR "memalign(sysconf(_SC_PAGESIZE),size)" . -Çѻߤµ¤ì¤¿´Ø¿ô¤Ç¤¢¤ë +廃止された関数である .BR valloc () -¤Ï +は .I size -¥Ð¥¤¥È¤Î¥á¥â¥ê¤ò³ä¤êÅö¤Æ¡¢³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥á¥â¥ê¤Î¥¢¥É¥ì¥¹¤Ï¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Ï¤º¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï +バイトのメモリを割り当て、割り当てられたメモリへのポインタを返す。 +メモリのアドレスはページサイズの倍数になっているはずである。 +これは .I "memalign(sysconf(_SC_PAGESIZE),size)" -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 .\"O For all three routines, the memory is not zeroed. -.\" motoki: be not zeroed ¤Ã¤Æ¤É¤¦¤¤¤¦°ÕÌ£¡© -3 ¤Ä¤Î´Ø¿ô¤Ï¤¤¤º¤ì¤â¥á¥â¥ê¤Î¥¼¥í¥¯¥ê¥¢¤ò¹Ô¤ï¤Ê¤¤¡£ +.\" motoki: be not zeroed ってどういう意味? +3 つの関数はいずれもメモリのゼロクリアを行わない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR memalign () .\"O and .\"O .BR valloc () .\"O return the pointer to the allocated memory, or NULL if the request fails. .BR memalign () -¤È +と .BR valloc () -¤Ï³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -³ä¤êÅö¤Æ¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +は割り当てられたメモリへのポインタを返す。 +割り当てに失敗した場合は NULL を返す。 .\"O .BR posix_memalign () .\"O returns zero on success, or one of the error values listed in the @@ -192,12 +192,12 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O .I errno .\"O is not set. .BR posix_memalign () -¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤·¡¢ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¼¡¤Î¥»¥¯¥·¥ç¥ó¤Ëµ­ºÜ¤µ¤ì¤¿¥¨¥é¡¼ÃͤΤ¤¤º¤ì¤«¤òÊÖ¤¹¡£ +は成功した場合は 0 を返し、 +失敗した場合は次のセクションに記載されたエラー値のいずれかを返す。 .I errno -¤Ï¥»¥Ã¥È¤µ¤ì¤Ê¤¤¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +はセットされないことに注意すること。 .\"O .SH "ERRORS" -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O The @@ -205,69 +205,69 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O argument was not a power of two, or was not a multiple of .\"O .IR "sizeof(void *)" . .I alignment -°ú¤­¿ô¤¬ 2 ¤Î¤Ù¤­¾è¤Ç¤Ê¤«¤Ã¤¿¤«¡¢ +引き数が 2 のべき乗でなかったか、 .IR "sizeof(void *)" -¤ÎÇÜ¿ô¤Ç¤Ê¤«¤Ã¤¿¡£ +の倍数でなかった。 .TP .B ENOMEM .\"O There was insufficient memory to fulfill the allocation request. -³ä¤êÅö¤ÆÍ×µá¤òËþ¤¿¤¹¤Î¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤«¤Ã¤¿¡£ +割り当て要求を満たすのに十分なメモリがなかった。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The functions .\"O .BR memalign () .\"O and .\"O .BR valloc () .\"O have been available in all Linux libc libraries. .BR memalign () -¤È +と .BR valloc () -¤Ï¤¹¤Ù¤Æ¤Î Linux libc ¥é¥¤¥Ö¥é¥ê¤Ç»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ +はすべての Linux libc ライブラリで使用可能である。 .\"O The function .\"O .BR posix_memalign () .\"O is available since glibc 2.1.91. .BR posix_memalign () -¤Ï glibc 2.1.91 °Ê¹ß¤Ç»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ +は glibc 2.1.91 以降で使用可能である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The function .\"O .BR valloc () .\"O appeared in 3.0BSD. .\"O It is documented as being obsolete in 4.3BSD, .\"O and as legacy in SUSv2. .\"O It does not appear in POSIX.1-2001. -´Ø¿ô +関数 .BR valloc () -¤Ï 3.0BSD ¤ÇÅо줷¤¿¡£4.3BSD ¤Ç¤ÏÇѻߤµ¤ì¤¿¤Èµ­ºÜ¤µ¤ì¤Æ¤ª¤ê¡¢ -SUSv2 ¤Ç¤Ï²áµî¤Î̾»Ä¤À¤Èµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ -POSIX.1-2001 ¤Ë¤Ï¤â¤Ï¤ä¸ºß¤·¤Ê¤¤¡£ +は 3.0BSD で登場した。4.3BSD では廃止されたと記載されており、 +SUSv2 では過去の名残だと記載されている。 +POSIX.1-2001 にはもはや存在しない。 .\"O The function .\"O .BR memalign () .\"O appears in SunOS 4.1.3 but not in 4.4BSD. -´Ø¿ô +関数 .BR memalign () -¤Ï SunOS 4.1.3 ¤ÇÅо줷¤¿¤¬¡¢4.4BSD ¤Ë¤Ï¤Ê¤¤¡£ +は SunOS 4.1.3 で登場したが、4.4BSD にはない。 .\"O The function .\"O .BR posix_memalign () .\"O comes from POSIX.1d. -´Ø¿ô +関数 .BR posix_memalign () -¤Ï POSIX.1d ¤ËͳÍ褹¤ë¡£ +は POSIX.1d に由来する。 .\"O .SS Headers -.SS ¥Ø¥Ã¥À +.SS ヘッダ .\"O Everybody agrees that .\"O .BR posix_memalign () .\"O is declared in \fI\fP. .BR posix_memalign () -¤ÎÀë¸À¤ò \fI\fP ¤Ç¹Ô¤¦¤³¤È¤Ë´Ø¤·¤Æ¤Ï¡¢ -³§¤Î°Õ¸«¤¬°ìÃפ·¤Æ¤¤¤ë¡£ +の宣言を \fI\fP で行うことに関しては、 +皆の意見が一致している。 .\"O On some systems .\"O .BR memalign () .\"O is declared in \fI\fP instead of \fI\fP. -¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +いくつかのシステムでは、 .BR memalign () -¤Ï \fI\fP ¤Ç¤Ï¤Ê¤¯ \fI\fP ¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤ë¡£ +は \fI\fP ではなく \fI\fP で宣言されている。 .\"O According to SUSv2, .\"O .BR valloc () @@ -284,30 +284,30 @@ POSIX.1-2001 .\"O is defined, or, equivalently, .\"O .B _XOPEN_SOURCE .\"O is defined to a value not less than 500). -SUSv2 ¤Ë¤è¤ë¤È¡¢ +SUSv2 によると、 .BR valloc () -¤Ï +は .I -¤ÇÀë¸À¤µ¤ì¤ë¡£ -libc4,5 ¤ä glibc ¤Ç¤Ï +で宣言される。 +libc4,5 や glibc では .I -¤ÇÀë¸À¤µ¤ì¤Æ¤ª¤ê¡¢ -¤µ¤é¤Ë +で宣言されており、 +さらに .I -¤Ç¤âÀë¸À¤µ¤ì¤ë¤³¤È¤â¤¢¤ë -(¶ñÂÎŪ¤Ë¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«¤Î¾ì¹ç: +でも宣言されることもある +(具体的には以下のいずれかの場合: .B _GNU_SOURCE -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡¢ +が定義されている、 .B _BSD_SOURCE -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡¢ -glibc ¤Ç +が定義されている、 +glibc で .B _XOPEN_SOURCE_EXTENDED -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡¢ -glibc ¤Ç +が定義されている、 +glibc で .B _XOPEN_SOURCE -¤¬ 500 ¤è¤ê¾®¤µ¤¯¤Ê¤¤ÃͤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ +が 500 より小さくない値に定義されている)。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O On many systems there are alignment restrictions, for example, on buffers .\"O used for direct block device I/O. .\"O POSIX specifies the @@ -316,50 +316,50 @@ glibc .\"O Now one can use .\"O .BR posix_memalign () .\"O to satisfy this requirement. -¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥¢¥é¥¤¥ó¥á¥ó¥È¤Ë´Ø¤·¤ÆÀ©¸Â¤¬¤¢¤ë¡£Î㤨¤Ð¡¢ -¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤ËÂФ¹¤ë¥À¥¤¥ì¥¯¥È I/O ¤Ë»ÈÍѤ¹¤ë¥Ð¥Ã¥Õ¥¡¤Ë¤Ï -¥¢¥é¥¤¥ó¥á¥ó¥È¤Ë´Ø¤¹¤ëÀ©¸Â¤¬¤¢¤ë¡£ -POSIX ¤Ç¤Ï¡¢¤É¤ó¤Ê¥¢¥é¥¤¥ó¥á¥ó¥È¤¬É¬Íפ«¤òÃΤ뤿¤á¤Ë +多くのシステムでは、アラインメントに関して制限がある。例えば、 +ブロックデバイスに対するダイレクト I/O に使用するバッファには +アラインメントに関する制限がある。 +POSIX では、どんなアラインメントが必要かを知るために .I "pathconf(path,_PC_REC_XFER_ALIGN)" -¥³¡¼¥ë¤òµ¬Äꤷ¤Æ¤¤¤ë¡£¤³¤³¤Ç +コールを規定している。ここで .BR posix_memalign () -¤ò»È¤¦¤È¡¢¤³¤ÎɬÍ×¾ò·ï¤òËþ¤¿¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +を使うと、この必要条件を満たすことができる。 .\"O .BR posix_memalign () .\"O verifies that .\"O .I alignment .\"O matches the requirements detailed above. .BR posix_memalign () -¤Ï +は .I alignment -¤¬¾å¤Ç¾ÜºÙ¤Ë½Ò¤Ù¤¿É¬Í×¾ò·ï¤òËþ¤¿¤¹¤«¤É¤¦¤«¤ò³Î¤«¤á¤ë¡£ +が上で詳細に述べた必要条件を満たすかどうかを確かめる。 .\"O .BR memalign () .\"O may not check that the .\"O .I boundary .\"O argument is correct. .BR memalign () -¤Ï +は .I boundary -°ú¤­¿ô¤¬Àµ¤·¤¤¤«¤É¤¦¤«¤Î³Îǧ¤ò¹Ô¤ï¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ +引き数が正しいかどうかの確認を行わないかもしれない。 .\"O POSIX requires that memory obtained from .\"O .BR posix_memalign () .\"O can be freed using .\"O .BR free (3). -POSIX ¤Ç¤Ï +POSIX では .BR posix_memalign () -¤Ë¤è¤Ã¤Æ³ÍÆÀ¤·¤¿¥á¥â¥ê¤Ï +によって獲得したメモリは .BR free (3) -¤ò»È¤Ã¤Æ²òÊü¤¹¤ë¤³¤È¤¬¤Ç¤­¤ëɬÍפ¬¤¢¤ë¡£ +を使って解放することができる必要がある。 .\"O Some systems provide no way to reclaim memory allocated with .\"O .BR memalign () .\"O or .\"O .BR valloc () -¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ç¤Ï +いくつかのシステムでは .BR memalign () -¤ä +や .BR valloc () -¤Ç³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤òºÆÍøÍѤ¹¤ë¼êÃʤ¬Ä󶡤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +で割り当てられたメモリを再利用する手段が提供されていない。 .\"O (because one can only pass to .\"O .BR free (3) .\"O a pointer gotten from @@ -369,17 +369,17 @@ POSIX .\"O would call .\"O .BR malloc (3) .\"O and then align the obtained value). -.\" motoki: while ¤ÎÁ°¸å¤Î¤Ä¤Ê¤¬¤ê¤Ï¤³¤ì¤Ç¤¤¤¤¡© -(¤Ê¤¼¤Ê¤é +.\" motoki: while の前後のつながりはこれでいい? +(なぜなら .BR free (3) -¤ËÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¤Î¤Ï +に渡すことができるのは .BR malloc (3) -¤«¤é¼õ¤±¼è¤Ã¤¿¥Ý¥¤¥ó¥¿¤À¤±¤À¤¬¡¢ -Î㤨¤Ð +から受け取ったポインタだけだが、 +例えば .BR memalign () -¤Ï +は .BR malloc (3) -¤ò¸Æ¤Ó½Ð¤·¡¢ÆÀ¤¿Ãͤò¥¢¥é¥¤¥ó¥á¥ó¥È¤·¤Æ¤·¤Þ¤¦¤«¤é¤Ç¤¢¤ë) +を呼び出し、得た値をアラインメントしてしまうからである) .\" Other systems allow passing the result of .\" .BR valloc () .\" to @@ -390,22 +390,22 @@ POSIX .\"O allows memory obtained from any of these three routines to be .\"O reclaimed with .\"O .BR free (3). -glibc ¤Î¼ÂÁõ¤Ç¤Ï¡¢ -¤³¤³¤Ë½Ò¤Ù¤¿ 3 ¤Ä¤Î´Ø¿ô¤Î¤¤¤º¤ì¤Ç³ÍÆÀ¤·¤¿¥á¥â¥ê¤â +glibc の実装では、 +ここに述べた 3 つの関数のいずれで獲得したメモリも .BR free (3) -¤ÇºÆÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +で再利用することができる。 .\"O glibc .\"O .BR malloc (3) .\"O always returns 8-byte aligned memory addresses, so these routines are only .\"O needed if you require larger alignment values. -glibc ¤Î +glibc の .BR malloc (3) -¤Ï¾ï¤Ë 8 ¥Ð¥¤¥È¤Ë¥¢¥é¥¤¥ó¥á¥ó¥È¤µ¤ì¤¿¥á¥â¥ê¥¢¥É¥ì¥¹¤òÊÖ¤¹¤Î¤Ç¡¢ -¤³¤³¤Ç½Ò¤Ù¤¿´Ø¿ô¤¬É¬Íפˤʤë¤Î¤Ï -8 ¥Ð¥¤¥È¤è¤ê¤âÂ礭¤Ê¥¢¥é¥¤¥ó¥á¥ó¥È¤¬É¬Íפʾì¹ç¤À¤±¤Ç¤¢¤ë¡£ +は常に 8 バイトにアラインメントされたメモリアドレスを返すので、 +ここで述べた関数が必要になるのは +8 バイトよりも大きなアラインメントが必要な場合だけである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR brk (2), .BR getpagesize (2), .BR free (3), diff --git a/draft/man3/posix_openpt.3 b/draft/man3/posix_openpt.3 index 8327fe24..064fe507 100644 --- a/draft/man3/posix_openpt.3 +++ b/draft/man3/posix_openpt.3 @@ -29,11 +29,11 @@ .\" .TH POSIX_OPENPT 3 2010-10-04 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O posix_openpt \- open a pseudoterminal device -posix_openpt \- µ¿»÷üËö (pseudoterminal) ¥Ç¥Ð¥¤¥¹¤ò¥ª¡¼¥×¥ó¤¹¤ë +posix_openpt \- 疑似端末 (pseudoterminal) デバイスをオープンする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -44,9 +44,9 @@ posix_openpt \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -54,79 +54,79 @@ glibc _XOPEN_SOURCE\ >=\ 600 .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR posix_openpt () .\"O function opens an unused pseudoterminal master device, returning a .\"O file descriptor that can be used to refer to that device. .BR posix_openpt () -´Ø¿ô¤Ï»ÈÍѤµ¤ì¤Æ¤¤¤Ê¤¤µ¿»÷üËö¥Þ¥¹¥¿¥Ç¥Ð¥¤¥¹¤ò¥ª¡¼¥×¥ó¤·¡¢ -¤½¤Î¥Ç¥Ð¥¤¥¹¤ò»²¾È¤¹¤ë¤¿¤á¤Ë»È¤¦¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ +関数は使用されていない疑似端末マスタデバイスをオープンし、 +そのデバイスを参照するために使うファイルディスクリプタを返す。 .\"O The .\"O .I flags .\"O argument is a bit mask that ORs together zero or more of .\"O the following flags: .I flags -°ú¤­¿ô¤Ï¡¢°Ê²¼¤Î¥Õ¥é¥°¤Î¤¦¤Á 0 ¸Ä°Ê¾å¤Î OR ¤ò¤È¤Ã¤¿¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ë¡£ +引き数は、以下のフラグのうち 0 個以上の OR をとったビットマスクである。 .TP .B O_RDWR .\"O Open the device for both reading and writing. .\"O It is usual to specify this flag. -Æɤ߽ñ¤­¤Î¤¿¤á¤Ë¥Ç¥Ð¥¤¥¹¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£ -ÉáÄ̤Ϥ³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¡£ +読み書きのためにデバイスをオープンする。 +普通はこのフラグを指定する。 .TP .B O_NOCTTY .\"O Do not make this device the controlling terminal for the process. -¤³¤Î¥Ç¥Ð¥¤¥¹¤ò¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤È¤·¤Ê¤¤¡£ +このデバイスをプロセスの制御端末としない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR posix_openpt () .\"O returns a nonnegative file descriptor which is the lowest .\"O numbered unused descriptor. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR posix_openpt () -¤ÏÉé¤Ç¤Ï¤Ê¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¤³¤ì¤Ï»ÈÍѤµ¤ì¤Æ¤¤¤Ê¤¤¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¦¤ÁºÇ¾®¤ÎÃͤǤ¢¤ë¡£ +は負ではないファイルディスクリプタを返す。 +これは使用されていないディスクリプタのうち最小の値である。 .\"O On failure, \-1 is returned, and .\"O .I errno .\"O is set to indicate the error. -¼ºÇÔ¤·¤¿¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢¥¨¥é¡¼¤ò¼¨¤¹¤¿¤á¤Ë +失敗した場合、\-1 が返されて、エラーを示すために .I errno -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR open (2). .BR open (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O Glibc support for .\"O .BR posix_openpt () .\"O has been provided since version 2.2.1. .BR posix_openpt () -¤Î glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.2.1 °Ê¹ß¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +の glibc でのサポートはバージョン 2.2.1 以降で提供されている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR posix_openpt () .\"O is part of the UNIX 98 pseudoterminal support (see .\"O .BR pts (4)). .\"O This function is specified in POSIX.1-2001. .BR posix_openpt () -¤Ï UNIX 98 µ¿»÷üËö¥µ¥Ý¡¼¥È +は UNIX 98 疑似端末サポート .RB ( pts (4) -¤ò»²¾È) ¤Î°ìÉô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï POSIX.1-2001 ¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¡£ +を参照) の一部である。 +この関数は POSIX.1-2001 で指定されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O This function is a recent invention in POSIX. .\"O Some UNIX implementations that support System V .\"O (aka UNIX 98) pseudoterminals don't have this function, but it .\"O is easy to implement: -¤³¤Î´Ø¿ô¤Ï POSIX ¤Ë¤ª¤¤¤ÆºÇ¶áºî¤é¤ì¤¿¤â¤Î¤Ç¤¢¤ë¡£ -System V (ÊÌ̾ UNIX 98) µ¿»÷üËö¤ò¥µ¥Ý¡¼¥È¤¹¤ë UNIX ¼ÂÁõ¤ÎÃæ¤Ë¤Ï¡¢ -¤³¤Î´Ø¿ô¤ò»ý¤¿¤Ê¤¤¤â¤Î¤â¤¢¤ë¤¬¡¢°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ´Êñ¤Ë¼ÂÁõ¤Ç¤­¤ë: +この関数は POSIX において最近作られたものである。 +System V (別名 UNIX 98) 疑似端末をサポートする UNIX 実装の中には、 +この関数を持たないものもあるが、以下のようにして簡単に実装できる: .in +4n .nf @@ -138,7 +138,7 @@ posix_openpt(int flags) .fi .in .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR open (2), .BR getpt (3), .BR grantpt (3), diff --git a/draft/man3/pow.3 b/draft/man3/pow.3 index b0187ad1..7f18c9fa 100644 --- a/draft/man3/pow.3 +++ b/draft/man3/pow.3 @@ -39,11 +39,11 @@ .\" .TH POW 3 2010-09-12 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O pow, powf, powl \- power functions -pow, powf, powl \- Îß¾è´Ø¿ô +pow, powf, powl \- 累乗関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -55,14 +55,14 @@ pow, powf, powl \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -77,24 +77,24 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR pow () .\"O function returns the value of \fIx\fP raised to the .\"O power of \fIy\fP. .BR pow () -´Ø¿ô¤Ï \fIx\fP ¤Î \fIy\fP ¾è¤ÎÃͤòÊÖ¤¹¡£ +関数は \fIx\fP の \fIy\fP 乗の値を返す。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the value of .\"O .I x .\"O to the power of .\"O .IR y . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I x -¤Î +の .I y -¾è¤ÎÃͤòÊÖ¤¹¡£ +乗の値を返す。 .\"O If .\"O .I x @@ -102,17 +102,17 @@ or .\"O .I y .\"O is a finite noninteger, a domain error occurs, .I x -¤¬ 0 ̤Ëþ¤ÎÍ­¸ÂÃÍ¤Ç +が 0 未満の有限値で .I y -¤¬À°¿ô¤Ç¤Ê¤¤Í­¸ÂÃͤξì¹ç¡¢Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ +が整数でない有限値の場合、領域エラー (domain error) が発生し、 .\" The domain error is generated at least as far back as glibc 2.4 .\"O and a NaN is returned. -NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +NaN が返される。 .\"O If the result overflows, .\"O a range error occurs, -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ -ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢ +結果がオーバーフローする場合、 +範囲エラー (range error) が発生し、 .\" The range error is generated at least as far back as glibc 2.4 .\"O and the functions return .\"O .BR HUGE_VAL , @@ -120,17 +120,17 @@ NaN .\"O or .\"O .BR HUGE_VALL , .\"O respectively, with the mathematically correct sign. -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +各関数はそれぞれ .BR HUGE_VAL , .BR HUGE_VALF , .BR HUGE_VALL -¤òÊÖ¤¹¡£ÊÖ¤êÃͤˤϿô³ØŪ¤ËÀµ¤·¤¤Éä¹æ¤¬ÉÕÍ¿¤µ¤ì¤ë¡£ +を返す。返り値には数学的に正しい符号が付与される。 .\"O If result underflows, and is not representable, .\"O a range error occurs, .\"O and 0.0 is returned. -·ë²Ì¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤·¡¢¤½¤ÎÃͤ¬É½¸½²Äǽ¤Ç¤Ê¤¤¾ì¹ç¡¢ -ÈÏ°Ï¥¨¥é¡¼¤¬È¯À¸¤·¡¢ 0.0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +結果がアンダーフローし、その値が表現可能でない場合、 +範囲エラーが発生し、 0.0 が返される。 .\" POSIX.1 does not specify the sign of the zero, .\" but http://sources.redhat.com/bugzilla/show_bug.cgi?id=2678 .\" points out that the zero has the wrong sign in some cases. @@ -140,11 +140,11 @@ NaN .\"O or .\"O .I y .\"O is a NaN, the result is a NaN. -°Ê²¼¤Çµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ç¡¢ +以下で規定されていない場合で、 .I x -¤« +か .I y -¤¬ NaN ¤Î¾ì¹ç¡¢ÊÖ¤êÃÍ¤Ï NaN ¤È¤Ê¤ë¡£ +が NaN の場合、返り値は NaN となる。 .\"O If .\"O .I x @@ -152,9 +152,9 @@ NaN .\"O .I y .\"O is a NaN). .I x -¤¬ +1 ¤Î¾ì¹ç¡¢ +が +1 の場合、 .RI ( y -¤¬ NaN ¤Ç¤¢¤Ã¤¿¤È¤·¤Æ¤â) ÊÖ¤êÃÍ¤Ï 1.0 ¤È¤Ê¤ë¡£ +が NaN であったとしても) 返り値は 1.0 となる。 .\"O If .\"O .I y @@ -162,9 +162,9 @@ NaN .\"O .I x .\"O is a NaN). .I y -¤¬ 0 ¤Î¾ì¹ç¡¢ +が 0 の場合、 .RI ( x -¤¬ NaN ¤Ç¤¢¤Ã¤¿¤È¤·¤Æ¤â) ÊÖ¤êÃÍ¤Ï 1.0 ¤È¤Ê¤ë¡£ +が NaN であったとしても) 返り値は 1.0 となる。 .\"O If .\"O .I x @@ -174,9 +174,9 @@ NaN .\"O is an odd integer greater than 0, .\"O the result is +0 (\-0). .I x -¤¬ +0 (\-0) ¤Ç +が +0 (\-0) で .I y -¤¬ 0 ¤è¤êÂ礭¤Ê´ñ¿ô¤Î¾ì¹ç¡¢ÊÖ¤êÃÍ¤Ï +0 (\-0) ¤È¤Ê¤ë¡£ +が 0 より大きな奇数の場合、返り値は +0 (\-0) となる。 .\"O If .\"O .I x @@ -186,9 +186,9 @@ NaN .\"O greater than 0 and not an odd integer, .\"O the result is +0. .I x -¤¬ 0 ¤Ç¡¢ +が 0 で、 .I y -¤¬ 0 ¤è¤êÂ礭¤¯´ñ¿ô¤Ç¤Ê¤¤¾ì¹ç¡¢ÊÖ¤êÃÍ¤Ï +0 ¤È¤Ê¤ë¡£ +が 0 より大きく奇数でない場合、返り値は +0 となる。 .\"O If .\"O .I x @@ -198,9 +198,9 @@ NaN .\"O is positive infinity or negative infinity, .\"O the result is 1.0. .I x -¤¬ \-1 ¤Ç¡¢ +が \-1 で、 .I y -¤¬Àµ¤Î̵¸ÂÂ礫Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ÊÖ¤êÃÍ¤Ï 1.0 ¤È¤Ê¤ë¡£ +が正の無限大か負の無限大の場合、返り値は 1.0 となる。 .\"O If the absolute value of .\"O .I x @@ -210,9 +210,9 @@ NaN .\"O is negative infinity, .\"O the result is positive infinity. .I x -¤ÎÀäÂÐÃͤ¬ 1 ̤Ëþ¤Ç¡¢ +の絶対値が 1 未満で、 .I y -¤¬Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ÊÖ¤êÃͤÏÀµ¤Î̵¸ÂÂç¤È¤Ê¤ë¡£ +が負の無限大の場合、返り値は正の無限大となる。 .\"O If the absolute value of .\"O .I x @@ -222,9 +222,9 @@ NaN .\"O is negative infinity, .\"O the result is +0. .I x -ÀäÂÐÃͤ¬ 1 ¤è¤êÂ礭¤¯¡¢ +絶対値が 1 より大きく、 .I y -¤¬Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ÊÖ¤êÃÍ¤Ï +0 ¤È¤Ê¤ë¡£ +が負の無限大の場合、返り値は +0 となる。 .\"O If the absolute value of .\"O .I x @@ -234,9 +234,9 @@ NaN .\"O is positive infinity, .\"O the result is +0. .I x -¤ÎÀäÂÐÃͤ¬ 1 ̤Ëþ¤Ç¡¢ +の絶対値が 1 未満で、 .I y -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ÊÖ¤êÃÍ¤Ï +0 ¤È¤Ê¤ë¡£ +が正の無限大の場合、返り値は +0 となる。 .\"O If the absolute value of .\"O .I x @@ -246,9 +246,9 @@ NaN .\"O is positive infinity, .\"O the result is positive infinity. .I x -¤ÎÀäÂÐÃͤ¬ 1 ¤è¤êÂ礭¤¯¡¢ +の絶対値が 1 より大きく、 .I y -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ÊÖ¤êÃͤÏÀµ¤Î̵¸ÂÂç¤È¤Ê¤ë¡£ +が正の無限大の場合、返り値は正の無限大となる。 .\"O If .\"O .I x @@ -258,9 +258,9 @@ NaN .\"O is an odd integer less than 0, .\"O the result is \-0. .I x -¤¬Éé¤Î̵¸ÂÂç¤Ç¡¢ +が負の無限大で、 .I y -¤¬ 0 ¤è¤ê¾®¤µ¤¤´ñ¿ô¤Î¾ì¹ç¡¢ÊÖ¤êÃÍ¤Ï \-0 ¤È¤Ê¤ë¡£ +が 0 より小さい奇数の場合、返り値は \-0 となる。 .\"O If .\"O .I x @@ -270,9 +270,9 @@ NaN .\"O less than 0 and not an odd integer, .\"O the result is +0. .I x -¤¬Éé¤Î̵¸ÂÂç¤Ç¡¢ +が負の無限大で、 .I y -¤¬ 0 ¤è¤ê¾®¤µ¤¯´ñ¿ô¤Ç¤Ê¤¤¾ì¹ç¡¢ÊÖ¤êÃÍ¤Ï +0 ¤È¤Ê¤ë¡£ +が 0 より小さく奇数でない場合、返り値は +0 となる。 .\"O If .\"O .I x @@ -282,9 +282,9 @@ NaN .\"O is an odd integer greater than 0, .\"O the result is negative infinity. .I x -¤¬Éé¤Î̵¸ÂÂç¤Ç¡¢ +が負の無限大で、 .I y -¤¬ 0 ¤è¤êÂ礭¤¤´ñ¿ô¤Î¾ì¹ç¡¢ÊÖ¤êÃͤÏÉé¤Î̵¸ÂÂç¤È¤Ê¤ë¡£ +が 0 より大きい奇数の場合、返り値は負の無限大となる。 .\"O If .\"O .I x @@ -294,9 +294,9 @@ NaN .\"O greater than 0 and not an odd integer, .\"O the result is positive infinity. .I x -¤¬Éé¤Î̵¸ÂÂç¤Ç¡¢ +が負の無限大で、 .I y -¤¬ 0 ¤è¤êÂ礭¤¯´ñ¿ô¤Ç¤Ê¤¤¾ì¹ç¡¢ÊÖ¤êÃͤÏÀµ¤Î̵¸ÂÂç¤È¤Ê¤ë¡£ +が 0 より大きく奇数でない場合、返り値は正の無限大となる。 .\"O If .\"O .I x @@ -306,9 +306,9 @@ NaN .\"O less than 0, .\"O the result is +0. .I x -¤¬Àµ¤Î̵¸ÂÂç¤Ç¡¢ +が正の無限大で、 .I y -¤¬ 0 ̤Ëþ¤Î¾ì¹ç¡¢ÊÖ¤êÃÍ¤Ï +0 ¤È¤Ê¤ë¡£ +が 0 未満の場合、返り値は +0 となる。 .\"O If .\"O .I x @@ -318,9 +318,9 @@ NaN .\"O greater than 0, .\"O the result is positive infinity. .I x -¤¬Àµ¤Î̵¸ÂÂç¤Ç¡¢ +が正の無限大で、 .I y -¤¬ 0 ¤è¤êÂ礭¤¤¾ì¹ç¡¢ÊÖ¤êÃͤÏÀµ¤Î̵¸ÂÂç¤È¤Ê¤ë¡£ +が 0 より大きい場合、返り値は正の無限大となる。 .\"O If .\"O .I x @@ -337,16 +337,16 @@ NaN .\"O with the same sign as .\"O .IR x . .I x -¤¬ +0 ¤« \-0 ¤Ç¡¢ +が +0 か \-0 で、 .I y -¤¬ 0 ¤è¤ê¾®¤µ¤¤´ñ¿ô¤Î¾ì¹ç¡¢ -¶Ë¥¨¥é¡¼ (pole error) ¤¬È¯À¸¤·¡¢ÊÖ¤êÃÍ¤Ï +が 0 より小さい奇数の場合、 +極エラー (pole error) が発生し、返り値は .BR HUGE_VAL , .BR HUGE_VALF , .BR HUGE_VALL -¤È¤Ê¤ë¡£ +となる。 .I x -¤ÈƱ¤¸Éä¹æ¤¬ÉÕÍ¿¤µ¤ì¤ë¡£ +と同じ符号が付与される。 .\"O If .\"O .I x @@ -356,23 +356,23 @@ NaN .\"O is less than 0 and not an odd integer, .\"O a pole error occurs and .I x -¤¬ +0 ¤« \-0 ¤Ç¡¢ +が +0 か \-0 で、 .I y -¤¬ 0 ¤è¤ê¾®¤µ¤¯´ñ¿ô¤Ç¤Ê¤¤¾ì¹ç¡¢ -¶Ë¥¨¥é¡¼¤¬È¯À¸¤·¡¢ +が 0 より小さく奇数でない場合、 +極エラーが発生し、 .\" The pole error is generated at least as far back as glibc 2.4 .\"O .RB + HUGE_VAL , .\"O .RB + HUGE_VALF , .\"O or .\"O .RB + HUGE_VALL , .\"O is returned. -ÊÖ¤êÃÍ¤Ï +返り値は .BR + HUGE_VAL , .BR + HUGE_VALF , .BR + HUGE_VALL -¤È¤Ê¤ë¡£ +となる。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\" FIXME . review status of this error .\" longstanding bug report for glibc: .\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=369 @@ -397,15 +397,15 @@ NaN .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Domain error: \fIx\fP is negative, and \fIy\fP is a finite noninteger -Îΰ襨¥é¡¼: \fIx\fP ¤¬Éé¤Ç¡¢\fIy\fP ¤¬À°¿ô¤Ç¤Ê¤¤Í­¸ÂÃÍ +領域エラー: \fIx\fP が負で、\fIy\fP が整数でない有限値 .\"O .I errno .\"O is set to .\"O .BR EDOM . @@ -413,32 +413,32 @@ NaN .\"O .RB ( FE_INVALID ) .\"O is raised. .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë¡£ -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP .\"O Pole error: \fIx\fP is zero, and \fIy\fP is negative -¶Ë¥¨¥é¡¼: \fIx\fP ¤¬¥¼¥í¤Ç¡¢\fIy\fP ¤¬Éé +極エラー: \fIx\fP がゼロで、\fIy\fP が負 .\"O .I errno .\"O is set to .\"O .BR ERANGE .\"O (but see BUGS). .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .\"O A divide-by-zero floating-point exception .\"O .RB ( FE_DIVBYZERO ) .\"O is raised. -0 ¤Ë¤è¤ë½ü»» (divide-by-zero) ÉâÆ°¾®¿ôÅÀÎã³° +0 による除算 (divide-by-zero) 浮動小数点例外 .RB ( FE_DIVBYZERO ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP .\"O Range error: the result overflows -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ +範囲エラー: 結果がオーバーフロー .\"O .I errno .\"O is set to .\"O .BR ERANGE . @@ -446,15 +446,15 @@ NaN .\"O .RB ( FE_OVERFLOW ) .\"O is raised. .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP .\"O Range error: the result underflows -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼ +範囲エラー: 結果がアンダーフロー .\"O .I errno .\"O is set to .\"O .BR ERANGE . @@ -462,23 +462,23 @@ NaN .\"O .RB ( FE_UNDERFLOW ) .\"O is raised. .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -¥¢¥ó¥À¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +アンダーフロー浮動小数点例外 .RB ( FE_UNDERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD, C89. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O In glibc 2.9 and earlier, .\" .\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=6776 @@ -492,15 +492,15 @@ C99, POSIX.1-2001. .\" or possibly 2.9, I haven't found the source code change .\" and I don't have a 2.9 system to test .\"O glibc does the right thing. -glibc 2.9 ¤È¤½¤ì°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ -¶Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¡¢POSIX ¤ÇÍ׵ᤵ¤ì¤Æ¤¤¤ë +glibc 2.9 とそれ以前のバージョンでは、 +極エラーが発生した場合、POSIX で要求されている .B ERANGE -¤Ç¤Ï¤Ê¤¯ +ではなく .B EDOM -¤¬ +が .I errno -¤ËÀßÄꤵ¤ì¤ë¡£ -¥Ð¡¼¥¸¥ç¥ó 2.10 °Ê¹ß¤Î glibc ¤Ç¤Ï¡¢Àµ¤·¤¤Æ°ºî¤ò¤¹¤ë¡£ +に設定される。 +バージョン 2.10 以降の glibc では、正しい動作をする。 .\"O If .\"O .I x @@ -515,31 +515,31 @@ glibc 2.9 .\"O .RB ( FE_INVALID ) .\"O floating-point exception. .I x -¤¬Éé¤Î¾ì¹ç¡¢Â礭¤ÊÀµÉé¤ÎÃͤΠ+が負の場合、大きな正負の値の .I y -¤¬Í¿¤¨¤é¤ì¤ë¤È¡¢´Ø¿ô¤Î·ë²Ì¤¬ NaN ¤È¤Ê¤ê¡¢ +が与えられると、関数の結果が NaN となり、 .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¡¢ -ÉÔÀµÉâÆ°¾®¿ôÅÀÎã³° +が設定され、 +不正浮動小数点例外 .RB ( FE_INVALID ) -¤¬È¯À¸¤¹¤ë¡£ +が発生する。 .\"O For example, with .\"O .BR pow (), .\"O one sees this behavior when the absolute value of .\"O .I y .\"O is greater than about 9.223373e18. -Î㤨¤Ð¡¢ +例えば、 .BR pow () -¤Ç¤Ï¡¢ +では、 .I y -¤ÎÀäÂÐÃͤ¬Ìó 9.223373e18 ¤è¤êÂ礭¤¤¾ì¹ç¤Ë¤³¤Î¾õ¶·¤È¤Ê¤ë¡£ +の絶対値が約 9.223373e18 より大きい場合にこの状況となる。 .\" see bug http://sources.redhat.com/bugzilla/show_bug.cgi?id=3866 .\" and http://sources.redhat.com/bugzilla/show_bug.cgi?id=369 .\"O In version 2.3.2 and earlier, -glibc ¥Ð¡¼¥¸¥ç¥ó 2.3.2 °ÊÁ°¤Ç¤Ï¡¢ +glibc バージョン 2.3.2 以前では、 .\" FIXME . Actually, 2.3.2 is the earliest test result I have; so yet .\" to confirm if this error occurs only in 2.3.2. .\"O when an overflow or underflow error occurs, glibc's @@ -547,15 +547,15 @@ glibc .\"O generates a bogus invalid floating-point exception .\"O .RB ( FE_INVALID ) .\"O in addition to the overflow or underflow exception. -¥¢¥ó¥À¡¼¥Õ¥í¡¼¤ä¥¢¥ó¥À¡¼¥Õ¥í¡¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¾ì¹ç¡¢ -glibc ¤Î +アンダーフローやアンダーフローのエラーが発生する場合、 +glibc の .BR pow () -¤Ï¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼Îã³°¤ä¥¢¥ó¥À¡¼¥Õ¥í¡¼Îã³°¤ò¾å¤²¤ë¤À¤±¤Ç¤Ê¤¯¡¢ -ÉÔÀµÉâÆ°¾®¿ôÅÀÎã³° +は、オーバーフロー例外やアンダーフロー例外を上げるだけでなく、 +不正浮動小数点例外 .RB ( FE_INVALID ) -¤ò´Ö°ã¤Ã¤ÆȯÀ¸¤¹¤ë¡£ +を間違って発生する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cbrt (3), .BR cpow (3), .BR sqrt (3) diff --git a/draft/man3/pow10.3 b/draft/man3/pow10.3 index 88755229..9e74d2cc 100644 --- a/draft/man3/pow10.3 +++ b/draft/man3/pow10.3 @@ -27,14 +27,14 @@ .\" .TH POW10 3 2008-08-11 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O pow10, pow10f, pow10l \- base-10 power functions -pow10, pow10f, pow10l \- Ä줬 10 ¤ÎÎß¾è´Ø¿ô +pow10, pow10f, pow10l \- 底が 10 の累乗関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "double pow10(double " x ); @@ -45,31 +45,31 @@ pow10, pow10f, pow10l \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR pow10 () .\"O function returns the value of 10 raised to the .\"O power \fIx\fP. .BR pow10 () -´Ø¿ô¤Ï 10 ¤Î \fIx\fP ¾è¤ÎÃͤòÊÖ¤¹¡£ +関数は 10 の \fIx\fP 乗の値を返す。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This is a GNU extension. -¤³¤ì¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ +これは GNU による拡張である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O These functions are identical to the functions listed under .\"O .BR exp10 (3). -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .BR exp10 (3) -¤Ç¥ê¥¹¥È¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤ÈƱ°ì¤Ç¤¢¤ë¡£ +でリストされている関数と同一である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR exp10 (3), .BR pow (3) diff --git a/draft/man3/printf.3 b/draft/man3/printf.3 index 9639fd81..f6b91b68 100644 --- a/draft/man3/printf.3 +++ b/draft/man3/printf.3 @@ -42,18 +42,18 @@ .\" Updated 2008-02-10, Akihiro MOTOKI , LDP v2.77 .\" Updated 2009-03-03, Akihiro MOTOKI , LDP v3.19 .\" -.\" WORD: conversion specifier ÊÑ´¹»ØÄê»Ò -.\" WORD: length modifier Ťµ½¤¾þ»Ò +.\" WORD: conversion specifier 変換指定子 +.\" WORD: length modifier 長さ修飾子 .\" .TH PRINTF 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, .\"O vsnprintf \- formatted output conversion printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, -vsnprintf \- »ØÄꤵ¤ì¤¿½ñ¼°¤ËÊÑ´¹¤·¤Æ½ÐÎϤò¹Ô¤¦ +vsnprintf \- 指定された書式に変換して出力を行う .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int printf(const char *" format ", ...);" @@ -78,9 +78,9 @@ vsnprintf \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -95,16 +95,16 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The functions in the .\"O .BR printf () .\"O family produce output according to a .\"O .I format .\"O as described below. .BR printf () -´Ø¿ô¥°¥ë¡¼¥×¤Ï¡¢°Ê²¼¤Ç½Ò¤Ù¤ë¤è¤¦¤Ë¡¢ +関数グループは、以下で述べるように、 .I format -¤Ë½¾¤Ã¤Æ½ÐÎϤòÀ¸À®¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +に従って出力を生成するものである。 .\"O The functions .\"O .BR printf () .\"O and @@ -125,24 +125,24 @@ or .\"O write to the character string .\"O .IR str . .BR printf () -¤È +と .BR vprintf () -¤Ï½ÐÎϤò +は出力を .I stdout -(ɸ½à½ÐÎÏ¥¹¥È¥ê¡¼¥à) ¤Ë½ñ¤­½Ð¤¹¡£ +(標準出力ストリーム) に書き出す。 .BR fprintf () -¤È +と .BR vfprintf () -¤Ï½ÐÎϤò»ØÄꤵ¤ì¤¿½ÐÎÏ +は出力を指定された出力 .I stream -¤Ë½ñ¤­½Ð¤¹¡£ +に書き出す。 .BR sprintf (), .BR snprintf (), .BR vsprintf (), .BR vsnprintf () -¤Ï½ÐÎϤòʸ»úÎó +は出力を文字列 .IR str -¤Ë½ñ¤­¹þ¤à¡£ +に書き込む。 .PP .\"O The functions .\"O .BR snprintf () @@ -153,15 +153,15 @@ or .\"O bytes (including the terminating null byte (\(aq\e0\(aq)) to .\"O .IR str . .BR snprintf () -¤È +と .BR vsnprintf () -¤ÏºÇÂç¤Ç +は最大で .I size -¥Ð¥¤¥È¤ò +バイトを .I str -¤Ë½ñ¤­¹þ¤à +に書き込む .RI ( size -¤Ë¤Ïʸ»úÎó¤ò½ªÃ¼¤¹¤ë NULL ¥Ð¥¤¥È (\(aq\e0\(aq) ¤â¤ò´Þ¤Þ¤ì¤ë)¡£ +には文字列を終端する NULL バイト (\(aq\e0\(aq) もを含まれる)。 .PP .\"O The functions .\"O .BR vprintf (), @@ -190,24 +190,24 @@ or .BR vfprintf (), .BR vsprintf (), .BR vsnprintf () -¤Î³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +の各関数はそれぞれ .BR printf (), .BR fprintf (), .BR sprintf (), .BR snprintf (), -¤Î³Æ´Ø¿ô¤ÈÅù²Á¤Ç¤¢¤ê¡¢²ÄÊÑ¿ô°ú¤­¿ô¤ÎÂå¤ï¤ê¤Ë +の各関数と等価であり、可変数引き数の代わりに .I va_list -¤ò°ú¤­¿ô¤È¤·¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ëÅÀ¤À¤±¤¬°Û¤Ê¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ç¤Ï +を引き数として呼び出される点だけが異なる。 +これらの関数では .I va_end -¥Þ¥¯¥í¤Ï¸Æ¤Ó½Ð¤µ¤ì¤Ê¤¤¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ï +マクロは呼び出されない。 +これらの関数は .I va_arg -¤ò¸Æ¤Ó½Ð¤¹¤Î¤Ç¡¢¸Æ¤Ó½Ð¤·¸å¤Î +を呼び出すので、呼び出し後の .I ap -¤ÎÃͤÏ̤ÄêµÁ¤Ç¤¢¤ë¡£ +の値は未定義である。 .BR stdarg (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O These eight functions write the output under the control of a .\"O .I format @@ -215,14 +215,14 @@ or .\"O the variable-length argument facilities of .\"O .BR stdarg (3)) .\"O are converted for output. -¤³¤ì¤é¤Î 8 ¤Ä¤Î´Ø¿ô¤Ï +これらの 8 つの関数は .I format -ʸ»úÎó¤ÎÀ©¸æ¤Ë½¾¤Ã¤Æ½ÐÎϤò½ñ¤­½Ð¤¹¡£ +文字列の制御に従って出力を書き出す。 .I format -ʸ»úÎó¤Ï¡¢¤³¤ì¤Ë³¤¯°ú¤­¿ô (¤Þ¤¿¤Ï +文字列は、これに続く引き数 (または .BR stdarg (3) -¤Î²ÄÊÑĹ°ú¤­¿ôµ¡¹½¤ò»È¤Ã¤Æ¥¢¥¯¥»¥¹¤Ç¤­¤ë°ú¤­¿ô) -¤ò¤É¤Î¤è¤¦¤ËÊÑ´¹¤·¤Æ½ÐÎϤ¹¤ë¤«¤ò»ØÄꤹ¤ë¡£ +の可変長引き数機構を使ってアクセスできる引き数) +をどのように変換して出力するかを指定する。 .\"O C99 and POSIX.1-2001 specify that the results are undefined if a call to .\"O .BR sprintf (), @@ -234,21 +234,21 @@ or .\"O (e.g., if the target string array and one of the supplied input arguments .\"O refer to the same buffer). .\"O See NOTES. -C99 ¤È POSIX.1-2001 ¤Ç¤Ï¡¢ +C99 と POSIX.1-2001 では、 .BR sprintf (), .BR snprintf (), .BR vsprintf (), .BR vsnprintf () -¤Î¸Æ¤Ó½Ð¤·¤Ç¡¢ÈϰϤ¬½ÅÊ£¤¹¤ë¥ª¥Ö¥¸¥§¥¯¥È´Ö¤Ç¥³¥Ô¡¼¤¬È¯À¸¤¹¤ë¾ì¹ç¤Î -·ë²Ì¤ÏÉÔÄê¤Ç¤¢¤ë¤Èµ¬Äꤵ¤ì¤Æ¤¤¤ë (Î㤨¤Ð¡¢½ÐÎÏÀè¤Îʸ»úÎó¤ÈÆþÎϤµ¤ì¤¿ -°ú¤­¿ô¤Î°ì¤Ä¤¬Æ±¤¸¥Ð¥Ã¥Õ¥¡¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¤Ê¤É¤Ç¤¢¤ë)¡£ -¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¡£ +の呼び出しで、範囲が重複するオブジェクト間でコピーが発生する場合の +結果は不定であると規定されている (例えば、出力先の文字列と入力された +引き数の一つが同じバッファを参照している場合などである)。 +「注意」の節を参照。 .\"O .SS "Return value" -.SS ÊÖ¤êÃÍ +.SS 返り値 .\"O Upon successful return, these functions return the number of characters .\"O printed (excluding the null byte used to end output to strings). -À®¸ù»þ¤Ë¤Ï¡¢¾åµ­¤Î´Ø¿ô¤Ï½ñ¤­¹þ¤Þ¤ì¤¿Ê¸»ú¿ô¤òÊÖ¤¹ -(ʸ»úÎó¤ÎºÇ¸å¤ò¼¨¤¹¤¿¤á¤Ë»ÈÍѤ¹¤ë NULL ¥Ð¥¤¥È¤Ï¿ô¤Ë´Þ¤Þ¤ì¤Ê¤¤)¡£ +成功時には、上記の関数は書き込まれた文字数を返す +(文字列の最後を示すために使用する NULL バイトは数に含まれない)。 .\"O The functions .\"O .BR snprintf () @@ -266,51 +266,51 @@ C99 .\"O or more means that the output was truncated. .\"O (See also below under NOTES.) .BR snprintf () -¤È +と .BR vsnprintf () -¤Ï¡¢ +は、 .I size -¥Ð¥¤¥È¤ò±Û¤¨¤ëʸ»ú¿ô¤ò½ñ¤­¹þ¤Þ¤Ê¤¤ +バイトを越える文字数を書き込まない .RI ( size -¤Ë¤Ïʸ»úÎó¤ò½ªÃ¼¤¹¤ë NULL ¥Ð¥¤¥È (\(aq\e0\(aq) ¤â´Þ¤Þ¤ì¤ë)¡£ -¤³¤ÎÀ©¸Â¤Ë¤è¤Ã¤Æ½ÐÎϤ¬ÀÚ¤êµÍ¤á¤é¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ -¤â¤·½½Ê¬¤Ê¥¹¥Ú¡¼¥¹¤¬¤¢¤ì¤Ð½ñ¤­¹þ¤Þ¤ì¤¿¤Ç¤¢¤í¤¦Ê¸»ú¤Î¸Ä¿ô -(ʸ»úÎó¤ò½ªÃ¼¤¹¤ë NULL ¥Ð¥¤¥È¤ò½ü¤¯) ¤òÊÖ¤¹¡£ -½¾¤Ã¤Æ¡¢ÊÖ¤êÃͤ¬ +には文字列を終端する NULL バイト (\(aq\e0\(aq) も含まれる)。 +この制限によって出力が切り詰められた場合には、 +もし十分なスペースがあれば書き込まれたであろう文字の個数 +(文字列を終端する NULL バイトを除く) を返す。 +従って、返り値が .I size -°Ê¾å¤À¤Ã¤¿¾ì¹ç¡¢½ÐÎϤ¬ÀÚ¤êµÍ¤á¤é¤ì¤¿¤³¤È¤ò°ÕÌ£¤¹¤ë -(¸å½Ò¤ÎÃí°Õ¤â»²¾È¤Î¤³¤È)¡£ +以上だった場合、出力が切り詰められたことを意味する +(後述の注意も参照のこと)。 .\"O If an output error is encountered, a negative value is returned. -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï¡¢Éé¤Î¿ô¤òÊÖ¤¹¡£ +エラーが発生した場合は、負の数を返す。 .\"O .SS "Format of the format string" -.SS ¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤Î¥Õ¥©¡¼¥Þ¥Ã¥È +.SS フォーマット文字列のフォーマット .\"O The format string is a character string, beginning and ending .\"O in its initial shift state, if any. -¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤Ïʸ»ú¤ÎÎó¤Ç¡¢ -(¤â¤·¤¢¤ë¤Ê¤é) ½é´ü¥·¥Õ¥È¾õÂ֤ǻϤޤꡢ½é´ü¥·¥Õ¥È¾õÂ֤ǽª¤ï¤ë¡£ +フォーマット文字列は文字の列で、 +(もしあるなら) 初期シフト状態で始まり、初期シフト状態で終わる。 .\"O The format string is composed of zero or more directives: ordinary .\"O characters (not .\"O .BR % ), .\"O which are copied unchanged to the output stream; .\"O and conversion specifications, each of which results in fetching zero or .\"O more subsequent arguments. -¥Õ¥©¡¼¥Þ¥Ã¥ÈÍѤÎʸ»úÎó¤Ï 0 ¸Ä°Ê¾å¤ÎÌ¿Îá (directives) ¤Ë¤è¤Ã¤Æ¹½À®¤µ¤ì¤ë¡£ -Ì¿Îá¤Ë¤Ï¡¢Ä̾ïʸ»ú¤ÈÊÑ´¹»ØÄê (conversion specifications) ¤¬¤¢¤ë¡£ -Ä̾ïʸ»ú¤Ï +フォーマット用の文字列は 0 個以上の命令 (directives) によって構成される。 +命令には、通常文字と変換指定 (conversion specifications) がある。 +通常文字は .B % -°Ê³°¤Îʸ»ú¤Ç¡¢½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Ë¤½¤Î¤Þ¤Þ¥³¥Ô¡¼¤µ¤ì¤ë¡£ -ÊÑ´¹»ØÄê¤Ï¡¢¤½¤ì¤¾¤ì¤¬ 0 ¸Ä°Ê¾å¤Î°ú¤­¿ô¤ò¼è¤ë¡£ +以外の文字で、出力ストリームにそのままコピーされる。 +変換指定は、それぞれが 0 個以上の引き数を取る。 .\"O Each conversion specification is introduced by .\"O the character .\"O .BR % , .\"O and ends with a .\"O .IR "conversion specifier" . -³ÆÊÑ´¹»ØÄê¤Ïʸ»ú +各変換指定は文字 .B % -¤Ç»Ï¤Þ¤ê¡¢ -.I "ÊÑ´¹»ØÄê»Ò (conversion specifier)" -¤Ç½ª¤ï¤ë¡£ +で始まり、 +.I "変換指定子 (conversion specifier)" +で終わる。 .\"O In between there may be (in this order) zero or more .\"O .IR flags , .\"O an optional minimum @@ -320,23 +320,23 @@ C99 .\"O and an optional .\"O .IR "length modifier" . .B % -¤ÈÊÑ´¹»ØÄê»Ò¤Î´Ö¤Ë¤Ï¡¢0 ¸Ä°Ê¾å¤Î -.I ¥Õ¥é¥° ¡¢ -ºÇ¾® -.I ¥Õ¥£¡¼¥ë¥ÉÉý ¡¢ -.I ÀºÅÙ ¡¢ -.I Ťµ½¤¾þ»Ò -¤ò (¤³¤Î½ç½ø¤Ç) ÃÖ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£ +と変換指定子の間には、0 個以上の +.I フラグ 、 +最小 +.I フィールド幅 、 +.I 精度 、 +.I 長さ修飾子 +を (この順序で) 置くことができる。 .\"O The arguments must correspond properly (after type promotion) with the .\"O conversion specifier. .\"O By default, the arguments are used in the order .\"O given, where each \(aq*\(aq and each conversion specifier asks for the next .\"O argument (and it is an error if insufficiently many arguments are given). -°ú¤­¿ô¤Ï (·¿¤Î³Ê¾å¤²¤Î¸å¤Ï) ÊÑ´¹»ØÄê»Ò¤¬É½¤¹·¿¤ÈÀµ³Î¤ËÂбþ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢\(aq*\(aq ¤äÊÑ´¹»ØÄê»Ò¤¬½Ð¤Æ¤¯¤ëËè¤Ë¼¡¤Î°ú¤­¿ô¤òÍ׵ᤵ¤ì¡¢ -°ú¤­¿ô¤Ï»ØÄꤵ¤ì¤¿½ç½ø¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤¯ -(»ØÄꤵ¤ì¤¿°ú¤­¿ô¤Î¸Ä¿ô¤¬ÉÔ½½Ê¬¤Ê¤é¥¨¥é¡¼¤È¤Ê¤ë)¡£ +引き数は (型の格上げの後は) 変換指定子が表す型と正確に対応しなければならない。 +デフォルトでは、\(aq*\(aq や変換指定子が出てくる毎に次の引き数を要求され、 +引き数は指定された順序で使用されていく +(指定された引き数の個数が不十分ならエラーとなる)。 .\"O One can also specify explicitly which argument is taken, .\"O at each place where an argument is required, by writing "%m$" instead .\"O of \(aq%\(aq and "*m$" instead of \(aq*\(aq, @@ -359,12 +359,12 @@ C99 .\"O .\"O .fi .\"O .in -¤Þ¤¿¡¢°ú¤­¿ô¤¬É¬Íפʲսê¤Ç \(aq%\(aq ¤ÎÂå¤ï¤ê¤Ë "%m$"¡¢ -\(aq*\(aq¤ÎÂå¤ï¤ê¤Ë "*m$" ¤È½ñ¤¯¤³¤È¤Ç¡¢ -ÌÀ¼¨Åª¤Ë¤É¤Î°ú¤­¿ô¤ò»ÈÍѤ¹¤ë¤«¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¤³¤³¤Ç 10¿Ê¤ÎÀ°¿ô m ¤Ï´õ˾¤Î°ú¤­¿ô¤Î°ú¤­¿ô¥ê¥¹¥È¤Ç¤Î°ÌÃÖ¤ò¼¨¤¹ -(ºÇ½é¤Î°ú¤­¿ô¤ÎÈֹ椬 1 ¤Ç¤¢¤ë)¡£ -½¾¤Ã¤Æ¡¢°Ê²¼¤ÎÆó¤Ä¤ÏÅù²Á¤Ç¤¢¤ë¡£ +また、引き数が必要な箇所で \(aq%\(aq の代わりに "%m$"、 +\(aq*\(aqの代わりに "*m$" と書くことで、 +明示的にどの引き数を使用するかを指定することもできる。 +ここで 10進の整数 m は希望の引き数の引き数リストでの位置を示す +(最初の引き数の番号が 1 である)。 +従って、以下の二つは等価である。 .in +4n .nf @@ -374,7 +374,7 @@ printf("%2$*1$d", width, num); .fi .in -¤ÏÅù²Á¤Ç¤¢¤ë¡£ +は等価である。 .\"O are equivalent. .\"O The second style allows repeated references to the .\"O same argument. @@ -388,14 +388,14 @@ printf("%2$*1$d", width, num); .\"O gaps in the numbers of arguments specified using \(aq$\(aq; for example, if .\"O arguments 1 and 3 are specified, argument 2 must also be specified .\"O somewhere in the format string. -ÆóÈÖÌܤνñ¤­Êý¤Ç¤ÏƱ¤¸°ú¤­¿ô¤ò·«¤êÊÖ¤·»²¾È¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -C99 ɸ½à¤Ë¤Ï¡¢ Single UNIX Specification ͳÍè¤Î \(aq$\(aq ¤ò»È¤Ã¤¿½ñ¤­Êý¤Ï´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¡£ -\(aq$\(aq ¤ò»È¤Ã¤¿¥¹¥¿¥¤¥ë¤ò»È¤¦¤È¡¢°ú¤­¿ô¤ò¼è¤ëÊÑ´¹µÚ¤ÓÉý¤ÈÀºÅ٤ΰú¤­¿ô¤ò -Á´¤Æ¤³¤Î¥¹¥¿¥¤¥ë¤Ç»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤¬¡¢ -°ú¤­¿ô¤ò¾ÃÈñ¤·¤Ê¤¤ "%%" ¥Õ¥©¡¼¥Þ¥Ã¥È¤Èº®¤¶¤Ã¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -\(aq$\(aq ¤Ç»ØÄꤵ¤ì¤ë°ú¤­¿ô¤ÎÈÖ¹æ¤Ë¶õ¤­¤¬¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -Î㤨¤Ð¡¢¤â¤·°ú¤­¿ô 1 ¤È 3 ¤¬»ØÄꤵ¤ì¤ë¤È¡¢°ú¤­¿ô 2 ¤â¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤Î¤É¤³¤«¤Ç -»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +二番目の書き方では同じ引き数を繰り返し参照することができる。 +C99 標準には、 Single UNIX Specification 由来の \(aq$\(aq を使った書き方は含まれていない。 +\(aq$\(aq を使ったスタイルを使うと、引き数を取る変換及び幅と精度の引き数を +全てこのスタイルで指定しなければならないが、 +引き数を消費しない "%%" フォーマットと混ざっているかもしれない。 +\(aq$\(aq で指定される引き数の番号に空きがあってはならない。 +例えば、もし引き数 1 と 3 が指定されると、引き数 2 もフォーマット文字列のどこかで +指定されなければならない。 .\"O For some numeric conversion a radix character ("decimal point") or .\"O thousands' grouping character is used. @@ -405,14 +405,14 @@ C99 ɸ .\"O part of the locale. .\"O The POSIX locale .\"O uses \(aq.\(aq as radix character, and does not have a grouping character. -¿ôÃÍÊÑ´¹¤Ë¤Ï¾®¿ôÅÀ¤ä 1000 ñ°Ì¤Î¶èÀÚ¤êʸ»ú¤ò»È¤¦¤â¤Î¤â¤¢¤ë¡£ -¼ÂºÝ¤Ë¤É¤Îʸ»ú¤ò»È¤¦¤«¤Ï¥í¥±¡¼¥ë¤Î +数値変換には小数点や 1000 単位の区切り文字を使うものもある。 +実際にどの文字を使うかはロケールの .B LC_NUMERIC -¤Ë¤è¤ë¡£ -POSIX ¥í¥±¡¼¥ë¤Ç¤Ï¾®¿ôÅÀ¤Ë \(aq.\(aq ¤òÍѤ¤¡¢ -¶èÀÚ¤êʸ»ú¤Ï»È¤ï¤Ê¤¤¡£ +による。 +POSIX ロケールでは小数点に \(aq.\(aq を用い、 +区切り文字は使わない。 .\"O Thus, -½¾¤Ã¤Æ¡¢ +従って、 .in +4n .nf @@ -422,24 +422,24 @@ printf("%\(aq.2f", 1234567.89); .in .\"O results in "1234567.89" in the POSIX locale, in "1234567,89" in the .\"O nl_NL locale, and in "1.234.567,89" in the da_DK locale. -¤Ï¡¢ POSIX ¥í¥±¡¼¥ë¤Ç¤Ï "1234567.89" ¡¢ nl_NL ¥í¥±¡¼¥ë¤Ç¤Ï "1234567,89"¡¢ -da_DK ¥í¥±¡¼¥ë¤Ç¤Ï "1.234.567,89" ¤È¤Ê¤ë¡£ +は、 POSIX ロケールでは "1234567.89" 、 nl_NL ロケールでは "1234567,89"、 +da_DK ロケールでは "1.234.567,89" となる。 .\"O .SS "The flag characters" -.SS ¥Õ¥é¥°Ê¸»ú +.SS フラグ文字 .\"O The character % is followed by zero or more of the following flags: -% ʸ»ú¤Î¸å¤í¤Ë¤Ï 0 ¸Ä°Ê¾å¤Î¥Õ¥é¥°Ê¸»ú¤¬Â³¤¯¡£ +% 文字の後ろには 0 個以上のフラグ文字が続く。 .TP .\"O .B # .\"O The value should be converted to an "alternate form". .B # -ÃͤϡÖÊ̤ηÁ¼°¡×¤ËÊÑ´¹¤µ¤ì¤ë¡£ +値は「別の形式」に変換される。 .\"O For .\"O .B o .\"O conversions, the first character of the output string is made zero .\"O (by prefixing a 0 if it was not zero already). .B o -ÊÑ´¹¤Î¾ì¹ç¡¢(ÀèƬʸ»ú¤¬ 0 ¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤ËÀèƬ¤Ë 0 ¤òÄɲ乤뤳¤È¤Ç) -½ÐÎÏʸ»úÎó¤ÎºÇ½é¤Îʸ»ú¤ò 0 ¤Ë¤¹¤ë¡£ +変換の場合、(先頭文字が 0 になっていない場合に先頭に 0 を追加することで) +出力文字列の最初の文字を 0 にする。 .\"O For .\"O .B x .\"O and @@ -448,11 +448,11 @@ da_DK .\"O .B X .\"O conversions) prepended to it. .B x -¤È +と .B X -ÊÑ´¹¤Î¾ì¹ç¡¢¿ôÃͤ¬ 0 ¤Ç¤Ê¤¤¤È¤­¤Ë¤Ïʸ»úÎó "0x" +変換の場合、数値が 0 でないときには文字列 "0x" .RB ( X -ÊÑ´¹¤Î¾ì¹ç¤Ë¤Ï "0X") ¤¬Á°¤ËÉÕÍ¿¤µ¤ì¤ë¡£ +変換の場合には "0X") が前に付与される。 .\"O For .\"O .BR a , .\"O .BR A , @@ -475,21 +475,21 @@ da_DK .BR F , .BR g , .B G -ÊÑ´¹¤Ç¤Ï¡¢ ¾®¿ôÅÀ¤Ë³¤¯¿ô»ú¤¬¤Ê¤¯¤Æ¤â¡¢ -½ÐÎϤˤϾï¤Ë¾®¿ôÅÀ¤¬´Þ¤Þ¤ì¤ë -(Ä̾ï¤Ï¡¢¾®¿ôÅÀ¤Î¸å¤Ë¿ô»ú¤¬Â³¤¯¾ì¹ç¤Ë¤Î¤ß¡¢ -¾®¿ôÅÀ¤¬É½¼¨¤µ¤ì¤ë)¡£ +変換では、 小数点に続く数字がなくても、 +出力には常に小数点が含まれる +(通常は、小数点の後に数字が続く場合にのみ、 +小数点が表示される)。 .\"O .B g .\"O and .\"O .B G .\"O conversions, trailing zeros are not removed from the result as they would .\"O otherwise be. .B g -¤È +と .B G -ÊÑ´¹¤Î¾ì¹ç¡¢Â¾¤ÎÊÑ´¹¤È¤Ï°Û¤Ê¤ê¡¢ËöÈø¤Î¥¼¥í¤¬ÊÑ´¹·ë²Ì¤«¤éºï½ü¤µ¤ì¤Ê¤¤¡£ +変換の場合、他の変換とは異なり、末尾のゼロが変換結果から削除されない。 .\"O For other conversions, the result is undefined. -¤½¤Î¾¤ÎÊÑ´¹¤Ç¤Ï¡¢·ë²Ì¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +その他の変換では、結果は未定義である。 .TP .B \&0 .\"O The value should be zero padded. @@ -511,7 +511,7 @@ da_DK .\"O .B G .\"O conversions, the converted value is padded on the left with zeros rather .\"O than blanks. -Ãͤò¥¼¥í¤ÇËä¤á¤ë¡£ +値をゼロで埋める。 .BR d , .BR i , .BR o , @@ -526,7 +526,7 @@ da_DK .BR F , .BR g , .B G -ÊÑ´¹¤Ç¤Ï¡¢ÊÑ´¹¤·¤¿Ãͤκ¸Â¦¤ò¶õÇòʸ»ú¤ÎÂå¤ï¤ê¤Ë¥¼¥í¤ÇËä¤á¤ë¡£ +変換では、変換した値の左側を空白文字の代わりにゼロで埋める。 .\"O If the .\"O .B \&0 .\"O and @@ -535,11 +535,11 @@ da_DK .\"O .B \&0 .\"O flag is ignored. .B \&0 -¤È +と .B \- -¤¬Î¾Êý¤È¤â»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢ +が両方とも指定された場合は、 .B \&0 -¥Õ¥é¥°¤Ï̵»ë¤µ¤ì¤ë¡£ +フラグは無視される。 .\"O If a precision is given with a numeric conversion .\"O .RB ( d , .\"O .BR i , @@ -551,18 +551,18 @@ da_DK .\"O the .\"O .B \&0 .\"O flag is ignored. -ÀºÅÙ¤¬¿ôÃÍÊÑ´¹ +精度が数値変換 .RB ( d , .BR i , .BR o , .BR u , .BR x , .BR X ) -¤ÈƱ»þ¤Ë»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ +と同時に指定された場合には、 .B \&0 -¥Õ¥é¥°¤Ï̵»ë¤µ¤ì¤ë¡£ +フラグは無視される。 .\"O For other conversions, the behavior is undefined. -¤½¤Î¾¤ÎÊÑ´¹¤Ç¤Ï¡¢Æ°ºî¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +その他の変換では、動作は未定義である。 .TP .B \- .\"O The converted value is to be left adjusted on the field boundary. @@ -572,28 +572,28 @@ da_DK .\"O conversions, the converted value is padded on the right with blanks, rather .\"O than on the left with blanks or zeros. .\"O A -ÊÑ´¹Ãͤò¥Õ¥£¡¼¥ë¥É¶­³¦¤Çº¸Â·¤¨¤Ë¤¹¤ë -(¥Ç¥Õ¥©¥ë¥È¤Ï±¦Â·¤¨¤Ç¤¢¤ë)¡£ +変換値をフィールド境界で左揃えにする +(デフォルトは右揃えである)。 .B n -ÊÑ´¹°Ê³°¤Ç¤Ï¡¢ÊÑ´¹¤µ¤ì¤¿ÃÍ¤Ï -º¸Â¦¤Ç¤Ï¤Ê¤¯±¦Â¦¤ò¶õÇòʸ»ú¤ä¥¼¥í¤ÇËä¤á¤é¤ì¤ë¡£ +変換以外では、変換された値は +左側ではなく右側を空白文字やゼロで埋められる。 .\"O .B \- .\"O overrides a .\"O .B \&0 .\"O if both are given. .B \- -¤È +と .B \&0 -¤ÎξÊý¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ +の両方が指定された場合には、 .B \- -¤¬Í¥À褵¤ì¤ë¡£ +が優先される。 .TP .\"O .B \(aq \(aq .B ' ' .\"O (a space) A blank should be left before a positive number .\"O (or empty string) produced by a signed conversion. -(1¸Ä¤ÎȾ³Ñ¥¹¥Ú¡¼¥¹) -Éä¹æÉÕ¤­ÊÑ´¹¤ÇÀ¸À®¤µ¤ì¤¿Àµ¤Î¿ô»ú¤ÎÁ°¤Ë¶õÇò (¤Þ¤¿¤Ï¶õʸ»úÎó) ¤¬ÃÖ¤«¤ì¤ë¡£ +(1個の半角スペース) +符号付き変換で生成された正の数字の前に空白 (または空文字列) が置かれる。 .TP .\"O .B + .\"O A sign (+ or \-) should always be placed before a number produced by a signed @@ -603,18 +603,18 @@ da_DK .\"O .B + .\"O overrides a space if both are used. .B + -Éä¹æÉÕ¤­ÊÑ´¹¤Ë¤è¤Ã¤Æ½ÐÎϤµ¤ì¤ë¿ô»ú¤ÎÁ°¤Ë¡¢¾ï¤ËÉä¹æ (+ ¤« \-) ¤¬ÃÖ¤«¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢Éä¹æ¤ÏÉé¤Î¿ô»ú¤Î¾ì¹ç¤Î¤ßÉÕÍ¿¤µ¤ì¤ë¡£ +符号付き変換によって出力される数字の前に、常に符号 (+ か \-) が置かれる。 +デフォルトでは、符号は負の数字の場合のみ付与される。 .B + -¤ÈȾ³Ñ¥¹¥Ú¡¼¥¹¤Î -ξÊý¤¬»È¤ï¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ +と半角スペースの +両方が使われている場合には、 .B + -¤¬Í¥À褵¤ì¤ë¡£ +が優先される。 .PP .\"O The five flag characters above are defined in the C standard. .\"O The SUSv2 specifies one further flag character. -¾åµ­¤Î 5 ¤Ä¤Î¥Õ¥é¥°¤Ï C ɸ½à¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -SUSv2 ¤Ç¤Ï¡¢¤µ¤é¤Ë¤â¤¦°ì¤Ä¥Õ¥é¥°Ê¸»ú¤¬µ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +上記の 5 つのフラグは C 標準で定義されている。 +SUSv2 では、さらにもう一つフラグ文字が規定されている。 .TP .B \(aq .\"O For decimal conversion @@ -632,7 +632,7 @@ SUSv2 .\"O cannot parse this option and will issue a warning. .\"O SUSv2 does not .\"O include %\(aqF. -10¿Ê¿ôÊÑ´¹ +10進数変換 .RB ( i , .BR d , .BR u , @@ -640,14 +640,14 @@ SUSv2 .BR F , .BR g , .BR G ) -¤Ë¤ª¤¤¤Æ¡¢¥í¥±¡¼¥ë¾ðÊó¤Ë»ØÄ꤬¤¢¤ì¤Ð 1000 ñ°Ì¤Î¶èÀÚ¤êʸ»ú¤ò½ÐÎϤ¹¤ë¡£ +において、ロケール情報に指定があれば 1000 単位の区切り文字を出力する。 .BR gcc (1) -¤Î¿¤¯¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò²ò¼á¤¹¤ë¤³¤È¤¬¤Ç¤­¤º¡¢ -·Ù¹ð¤ò½ÐÎϤ¹¤ë¤³¤È¤ËÃí°Õ¤»¤è¡£ -%\(aqF ¤Ï SUSv2 ¤Ë¤Ï´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¡£ +の多くのバージョンは、このオプションを解釈することができず、 +警告を出力することに注意せよ。 +%\(aqF は SUSv2 には含まれていない。 .PP .\"O glibc 2.2 adds one further flag character. -glibc 2.2 ¤Ç¤Ï¡¢¤µ¤é¤Ë°ì¤Ä¥Õ¥é¥°Ê¸»ú¤¬Äɲ䵤ì¤Æ¤¤¤ë¡£ +glibc 2.2 では、さらに一つフラグ文字が追加されている。 .TP .B I .\"O For decimal integer conversion @@ -658,66 +658,66 @@ glibc 2.2 .\"O For example, since glibc 2.2.3 this will give Arabic-Indic digits .\"O in the Persian ("fa_IR") locale. .\"O .\" outdigits keyword in locale file -10¿ÊÀ°¿ôÊÑ´¹ +10進整数変換 .RB ( i , .BR d , .BR u ) -¤Ë¤ª¤¤¤Æ¡¢¥í¥±¡¼¥ë¤ÎÂåÂؽÐÎÏ¿ô»ú¤¬¤¢¤ì¤Ð¡¢¤½¤ì¤òÍѤ¤¤Æ½ÐÎϤ¹¤ë¡£ -Î㤨¤Ð¡¢ glibc 2.2.3 °Ê¹ß¤Ç¤Ï¡¢¥Ú¥ë¥·¥¢ ("fa_IR") ¥í¥±¡¼¥ë¤Ç -¥¢¥é¥Ó¥¢¿ô»ú (Arabic-Indic digits) ¤ò½ÐÎϤǤ­¤ë¡£ -.\" ¥í¥±¡¼¥ë¥Õ¥¡¥¤¥ë¤Ë¤Ï outdigits ¤È¤¤¤¦¥­¡¼¥ï¡¼¥É¤¬¤¢¤ë¡£ +において、ロケールの代替出力数字があれば、それを用いて出力する。 +例えば、 glibc 2.2.3 以降では、ペルシア ("fa_IR") ロケールで +アラビア数字 (Arabic-Indic digits) を出力できる。 +.\" ロケールファイルには outdigits というキーワードがある。 .\"O .SS "The field width" -.SS ¥Õ¥£¡¼¥ë¥ÉÉý +.SS フィールド幅 .\"O An optional decimal digit string (with nonzero first digit) specifying .\"O a minimum field width. .\"O If the converted value has fewer characters .\"O than the field width, it will be padded with spaces on the left .\"O (or right, if the left-adjustment flag has been given). -ºÇ¾®¤Î¥Õ¥£¡¼¥ë¥ÉÉý¤ò»ØÄꤹ¤ë 10¿Ê¿ô¤Î¿ôÃÍʸ»úÎó (ʸ»úÎó¤ÎºÇ½é¤Îʸ»ú¤Ï -¥¼¥í°Ê³°)¡£ËܹàÌܤϥª¥×¥·¥ç¥ó¤Ç¤¢¤ë¡£ -ÊÑ´¹¤µ¤ì¤¿ÃͤÎʸ»ú¿ô¤¬¥Õ¥£¡¼¥ë¥ÉŤè¤ê¤â¾¯¤Ê¤¤¾ì¹ç¡¢ -¥Õ¥£¡¼¥ë¥É¤Îº¸Â¦¤ò¥¹¥Ú¡¼¥¹¤ÇËä¤á¤ë -(º¸Â·¤¨¤Î¥Õ¥é¥°¤¬¤¢¤ë¾ì¹ç¤Ï±¦Â¦¤òËä¤á¤ë)¡£ +最小のフィールド幅を指定する 10進数の数値文字列 (文字列の最初の文字は +ゼロ以外)。本項目はオプションである。 +変換された値の文字数がフィールド長よりも少ない場合、 +フィールドの左側をスペースで埋める +(左揃えのフラグがある場合は右側を埋める)。 .\"O Instead of a decimal digit string one may write "*" or "*m$" .\"O (for some decimal integer \fIm\fP) to specify that the field width .\"O is given in the next argument, or in the \fIm\fP-th argument, respectively, .\"O which must be of type .\"O .IR int . -10¿Ê¿ô¤Îʸ»úÎó¤ÎÂå¤ï¤ê¤Ë "*" ¤ä "*m$" (\fIm\fP ¤Ï 10¿ÊÀ°¿ô) ¤ò½ñ¤¯¤³¤È¤â¤Ç¤­¤ë¡£ -"*" ¤È "*m$" ¤Ï¤½¤ì¤¾¤ì¡¢¼¡¤Î°ú¤­¿ô¤È \fIm\fP ÈÖÌܤΰú¤­¿ô¤ò¥Õ¥£¡¼¥ë¥ÉÉý¤È¤·¤Æ -»È¤¦¤³¤È¤ò»ØÄꤹ¤ë (¤³¤ì¤é¤Î°ú¤­¿ô¤Ï +10進数の文字列の代わりに "*" や "*m$" (\fIm\fP は 10進整数) を書くこともできる。 +"*" と "*m$" はそれぞれ、次の引き数と \fIm\fP 番目の引き数をフィールド幅として +使うことを指定する (これらの引き数は .I int -·¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£ +型でなければならない)。 .\"O A negative field width is taken as a \(aq\-\(aq flag followed by a .\"O positive field width. -¥Õ¥£¡¼¥ë¥ÉÉý¤ËÉé¤Î¿ô¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢ -\(aq\-\(aq ¥Õ¥é¥°¤ÈÀµ¤Î¿ô¤Î¥Õ¥£¡¼¥ë¥ÉÉý¤È¤·¤Æ°·¤ï¤ì¤ë¡£ +フィールド幅に負の数が指定された場合は、 +\(aq\-\(aq フラグと正の数のフィールド幅として扱われる。 .\"O In no case does a nonexistent or small field width cause truncation of a .\"O field; if the result of a conversion is wider than the field width, the .\"O field is expanded to contain the conversion result. -¥Õ¥£¡¼¥ë¥ÉÉý¤¬¾®¤µ¤«¤Ã¤¿¤ê»ØÄ꤬¤Ê¤«¤Ã¤¿¤ê¤·¤Æ¤â¡¢¥Õ¥£¡¼¥ë¥É¤¬ÀÚ¤êµÍ¤á¤é¤ì¤ë -¤³¤È¤Ï¤Ê¤¤¡£¤â¤·ÊÑ´¹·ë²Ì¤¬¥Õ¥£¡¼¥ë¥ÉÉý¤è¤ê¤â¹­¤«¤Ã¤¿¾ì¹ç¡¢ -¥Õ¥£¡¼¥ë¥É¤ÏÊÑ´¹·ë²Ì¤¬Æþ¤ëÉý¤Ë¹­¤²¤é¤ì¤ë¡£ +フィールド幅が小さかったり指定がなかったりしても、フィールドが切り詰められる +ことはない。もし変換結果がフィールド幅よりも広かった場合、 +フィールドは変換結果が入る幅に広げられる。 .\"O .SS "The precision" -.SS ÀºÅÙ +.SS 精度 .\"O An optional precision, in the form of a period (\(aq.\(aq) followed by an .\"O optional decimal digit string. -¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ëÀºÅ٤ϡ¢¥Ô¥ê¥ª¥É (\(aq.\(aq) ¤È¤½¤ì¤Ë³¤¯10¿Ê¿ô¤È¤¤¤¦ -·Á¼°¤Ç»ØÄꤹ¤ë (10¿Ê¿ô¤Ï¥ª¥×¥·¥ç¥ó) ¡£ +オプションである精度は、ピリオド (\(aq.\(aq) とそれに続く10進数という +形式で指定する (10進数はオプション) 。 .\"O Instead of a decimal digit string one may write "*" or "*m$" .\"O (for some decimal integer m) to specify that the precision .\"O is given in the next argument, or in the m-th argument, respectively, .\"O which must be of type .\"O .IR int . -10¿Ê¿ô¤Îʸ»úÎó¤ÎÂå¤ï¤ê¤Ë "*" ¤ä "*m$" (m ¤Ï 10 ¿ÊÀ°¿ô)¤ò½ñ¤¯¤³¤È¤â¤Ç¤­¤ë¡£ -"*" ¤È "*m$" ¤Ï¤½¤ì¤¾¤ì¡¢¼¡¤Î°ú¤­¿ô¤È m ÈÖÌܤΰú¤­¿ô¤òÀºÅ٤Ȥ·¤Æ -»È¤¦¤³¤È¤ò»ØÄꤹ¤ë (¤³¤ì¤é¤Î°ú¤­¿ô¤Ï +10進数の文字列の代わりに "*" や "*m$" (m は 10 進整数)を書くこともできる。 +"*" と "*m$" はそれぞれ、次の引き数と m 番目の引き数を精度として +使うことを指定する (これらの引き数は .I int -·¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£ +型でなければならない)。 .\"O If the precision is given as just \(aq.\(aq, or the precision is negative, .\"O the precision is taken to be zero. -ÀºÅ٤Ȥ·¤Æ \(aq.\(aq ¤À¤±¤¬»ØÄꤵ¤ì¤¿¤ê¡¢ÀºÅÙ¤¬Éé¤Î¿ô¤À¤Ã¤¿¾ì¹ç¡¢ -ÀºÅ٤ϥ¼¥í¤È¤ß¤Ê¤µ¤ì¤ë¡£ +精度として \(aq.\(aq だけが指定されたり、精度が負の数だった場合、 +精度はゼロとみなされる。 .\"O This gives the minimum number of digits to appear for .\"O .BR d , .\"O .BR i , @@ -750,24 +750,24 @@ glibc 2.2 .BR u , .BR x , .B X -ÊÑ´¹¤Ç¤Ï¡¢É½¼¨¤µ¤ì¤ëºÇ¾®¤Î·å¿ô¤ò»ØÄꤹ¤ë¡£ +変換では、表示される最小の桁数を指定する。 .BR a , .BR A , .BR e , .BR E , .BR f , .B F -ÊÑ´¹¤Ç¤Ï¡¢¾®¿ôÅÀ°Ê²¼¤Ëɽ¼¨¤µ¤ì¤ë¿ô»ú¤Î·å¿ô¤ò»ØÄꤹ¤ë¡£ +変換では、小数点以下に表示される数字の桁数を指定する。 .B g -¤È +と .B G -ÊÑ´¹¤Ç¤Ï¡¢Í­¸ú¿ô»ú¤ÎºÇÂç·å¿ô¤ò»ØÄꤹ¤ë¡£ +変換では、有効数字の最大桁数を指定する。 .B s -¤È +と .B S -ÊÑ´¹¤Ç¤Ï¡¢Ê¸»úÎ󤫤é½ÐÎϤµ¤ì¤ëºÇÂçʸ»ú¿ô¤ò»ØÄꤹ¤ë¡£ +変換では、文字列から出力される最大文字数を指定する。 .\"O .SS "The length modifier" -.SS Ťµ½¤¾þ»Ò +.SS 長さ修飾子 .\"O Here, "integer conversion" stands for .\"O .BR d , .\"O .BR i , @@ -777,14 +777,14 @@ glibc 2.2 .\"O or .\"O .B X .\"O conversion. -¡ÖÀ°¿ôÊÑ´¹¡×¤È¤Ï¡¢ +「整数変換」とは、 .BR d , .BR i , .BR o , .BR u , .BR x , .B X -ÊÑ´¹¤Î¤³¤È¤Ç¤¢¤ë¡£ +変換のことである。 .TP .B hh .\"O A following integer conversion corresponds to a @@ -796,15 +796,15 @@ glibc 2.2 .\"O conversion corresponds to a pointer to a .\"O .I signed char .\"O argument. -À°¿ôÊÑ´¹¤ËÂбþ¤¹¤ë°ú¤­¿ô¤¬ +整数変換に対応する引き数が .I signed char -¤« +か .I unsigned char -¤Ç¡¢ +で、 .B n -ÊÑ´¹¤ËÂбþ¤¹¤ë°ú¤­¿ô¤¬ +変換に対応する引き数が .I signed char -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ +へのポインタであることを示す。 .TP .B h .\"O A following integer conversion corresponds to a @@ -816,15 +816,15 @@ glibc 2.2 .\"O conversion corresponds to a pointer to a .\"O .I short int .\"O argument. -À°¿ôÊÑ´¹¤ËÂбþ¤¹¤ë°ú¤­¿ô¤¬ +整数変換に対応する引き数が .I short int -¤« +か .I unsigned short int -¤Ç¡¢ +で、 .B n -ÊÑ´¹¤ËÂбþ¤¹¤ë°ú¤­¿ô¤¬ +変換に対応する引き数が .I short int -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ +へのポインタであることを示す。 .TP .\"O .B l .\"O (ell) A following integer conversion corresponds to a @@ -844,22 +844,22 @@ glibc 2.2 .\"O conversion corresponds to a pointer to .\"O .I wchar_t .\"O argument. -.BR l " (¥¨¥ë)" -³ÆÊÑ´¹¤ËÂбþ¤¹¤ë°ú¤­¿ô¤¬¡¢ -À°¿ôÊÑ´¹¤Ç¤Ï -.IR "long int" ¤« -.IR "unsigned long int" ¡¢ +.BR l " (エル)" +各変換に対応する引き数が、 +整数変換では +.IR "long int" か +.IR "unsigned long int" 、 .B n -ÊÑ´¹¤Ç¤Ï +変換では .I long long int -¤Ø¤Î¥Ý¥¤¥ó¥¿¡¢ +へのポインタ、 .B c -ÊÑ´¹¤Ç¤Ï -.IR wint_t ¡¢ +変換では +.IR wint_t 、 .B s -ÊÑ´¹¤Ç¤Ï +変換では .I wchar_t -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ +へのポインタであることを示す。 .TP .\"O .B ll @@ -873,16 +873,16 @@ glibc 2.2 .\"O conversion corresponds to a pointer to a .\"O .I long int .\"O argument. -.BR ll " (¥¨¥ë¥¨¥ë)" -À°¿ôÊÑ´¹¤ËÂбþ¤¹¤ë°ú¤­¿ô¤¬ +.BR ll " (エルエル)" +整数変換に対応する引き数が .I long long int -¤« +か .I unsigned long long int -¤Ç¡¢ +で、 .B n -ÊÑ´¹¤ËÂбþ¤¹¤ë°ú¤­¿ô¤¬ +変換に対応する引き数が .I long int -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ +へのポインタであることを示す。 .TP .B L .\"O A following @@ -906,20 +906,20 @@ glibc 2.2 .BR F , .BR g , .B G -ÊÑ´¹¤ËÂбþ¤¹¤ë°ú¤­¿ô¤¬ +変換に対応する引き数が .I long double -¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ +であることを示す。 .\"O (C99 allows %LF, but SUSv2 does not.) -(C99 ¤Ç¤Ï %LF ¤ò»È¤¦¤³¤È¤òǧ¤á¤Æ¤¤¤ë¤¬¡¢SUSv2 ¤Ç¤Ïǧ¤á¤é¤ì¤Æ¤¤¤Ê¤¤¡£) +(C99 では %LF を使うことを認めているが、SUSv2 では認められていない。) .TP .B q .\"O ("quad". 4.4BSD and Linux libc5 only. .\"O Don't use.) .\"O This is a synonym for .\"O .BR ll . -("quad"¡£ 4.4BSD ¤È Linux libc5 ¤Î¤ßÍ­¸ú¡£»È¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£) +("quad"。 4.4BSD と Linux libc5 のみ有効。使ってはならない。) .B ll -¤ÈƱ¤¸°ÕÌ£¤Ç¤¢¤ë¡£ +と同じ意味である。 .TP .B j .\"O A following integer conversion corresponds to an @@ -927,11 +927,11 @@ glibc 2.2 .\"O or .\"O .I uintmax_t .\"O argument. -À°¿ôÊÑ´¹¤ËÂбþ¤¹¤ë°ú¤­¿ô¤¬ +整数変換に対応する引き数が .I intmax_t -¤« +か .I uintmax_t -¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ +であることを示す。 .TP .B z .\"O A following integer conversion corresponds to a @@ -943,22 +943,22 @@ glibc 2.2 .\"O .B Z .\"O with this meaning. .\"O Don't use it.) -À°¿ôÊÑ´¹¤ËÂбþ¤¹¤ë°ú¤­¿ô¤¬ +整数変換に対応する引き数が .I size_t -¤« +か .I ssize_t -¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ -(Linux libc5 ¤Ç¤Ï¡¢¤³¤ì¤ò»ØÄꤹ¤ë¤Î¤Ë +であることを示す。 +(Linux libc5 では、これを指定するのに .B Z -¤òÍѤ¤¤ë¡£»È¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£) +を用いる。使ってはならない。) .TP .B t .\"O A following integer conversion corresponds to a .\"O .I ptrdiff_t .\"O argument. -À°¿ôÊÑ´¹¤ËÂбþ¤¹¤ë°ú¤­¿ô¤¬ +整数変換に対応する引き数が .I ptrdiff_t -¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ +であることを示す。 .PP .\"O The SUSv2 only knows about the length modifiers .\"O .B h @@ -988,7 +988,7 @@ glibc 2.2 .\"O .BR Lf , .\"O .BR Lg , .\"O .BR LG ). -SUSv2 ¤ÇŤµ½¤¾þ»Ò¤È¤·¤Æ»ÈÍѤǤ­¤ë¤Î¤Ï¡¢ +SUSv2 で長さ修飾子として使用できるのは、 .B h .RB ( hd , .BR hi , @@ -1011,31 +1011,31 @@ SUSv2 .BR Lf , .BR Lg , .BR LG ) -¤À¤±¤Ç¤¢¤ë¡£ +だけである。 .\"O .SS "The conversion specifier" -.SS ÊÑ´¹»ØÄê»Ò +.SS 変換指定子 .\"O A character that specifies the type of conversion to be applied. -ŬÍѤµ¤ì¤ëÊÑ´¹¤Î·¿¤ò»ØÄꤹ¤ëʸ»ú¡£ +適用される変換の型を指定する文字。 .PP .\"O The conversion specifiers and their meanings are: -ÊÑ´¹»ØÄê»Ò¤È¤½¤Î°ÕÌ£¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +変換指定子とその意味は以下の通りである。 .TP .BR d ", " i .\"O The .\"O .I int .\"O argument is converted to signed decimal notation. .I int -°ú¤­¿ô¤òÉä¹æÉÕ¤­ 10 ¿Êɽµ­¤ËÊÑ´¹¤¹¤ë¡£ +引き数を符号付き 10 進表記に変換する。 .\"O The precision, if any, gives the minimum number of digits .\"O that must appear; if the converted value requires fewer digits, it is .\"O padded on the left with zeros. .\"O The default precision is 1. -ÀºÅÙ»ØÄ꤬¤¢¤ì¤Ð¡¢ÀºÅ٤ǻØÄꤷ¤¿·å¿ô¤Ïɬ¤º½ÐÎϤµ¤ì¤ë¡£ÊÑ´¹¸å¤ÎÃͤ¬ -»ØÄꤵ¤ì¤¿·å¿ô¤Ë­¤ê¤Ê¤¤¾ì¹ç¤Ï¡¢º¸Â¦¤¬ 0 ¤ÇËä¤á¤é¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÀºÅÙ¤Ï 1 ¤Ç¤¢¤ë¡£ +精度指定があれば、精度で指定した桁数は必ず出力される。変換後の値が +指定された桁数に足りない場合は、左側が 0 で埋められる。 +デフォルトの精度は 1 である。 .\"O When 0 is printed with an explicit precision 0, the output is empty. -0 ¤òɽ¼¨¤·¤è¤¦¤È¤·¤¿»þ¤Ë¡¢ÌÀ¼¨Åª¤ËÀºÅ٤Ȥ·¤Æ 0 ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢ -½ÐÎϤ϶õʸ»úÎó¤È¤Ê¤ë¡£ +0 を表示しようとした時に、明示的に精度として 0 が指定されていると、 +出力は空文字列となる。 .TP .BR o ", " u ", " x ", " X .\"O The @@ -1050,16 +1050,16 @@ SUSv2 .\"O .BR X ) .\"O notation. .I "unsigned int" -°ú¤­¿ô¤ò¡¢ -Éä¹æ¤Ê¤·8¿Ê¿ô +引き数を、 +符号なし8進数 .RB ( o ), -Éä¹æ¤Ê¤·10¿Ê¿ô +符号なし10進数 .RB ( u ), -Éä¹æ¤Ê¤·16¿Ê¿ô +符号なし16進数 .RB ( x -¤È +と .BR X ) -¤ËÊÑ´¹¤¹¤ë¡£ +に変換する。 .\"O The letters .\"O .B abcdef .\"O are used for @@ -1070,18 +1070,18 @@ SUSv2 .\"O .B X .\"O conversions. .B x -ÊÑ´¹¤Ç¤Ï +変換では .B abcdef -¤¬»ÈÍѤµ¤ì¡¢ +が使用され、 .B X -ÊÑ´¹¤Ç¤Ï +変換では .B ABCDEF -¤¬»ÈÍѤµ¤ì¤ë¡£ +が使用される。 .\"O The precision, if any, gives the minimum number of digits .\"O that must appear; if the converted value requires fewer digits, it is .\"O padded on the left with zeros. -ÀºÅÙ»ØÄ꤬¤¢¤ì¤Ð¡¢ÀºÅ٤ǻØÄꤷ¤¿·å¿ô¤Ïɬ¤º½ÐÎϤµ¤ì¤ë¡£ÊÑ´¹¸å¤ÎÃͤ¬ -»ØÄꤵ¤ì¤¿·å¿ô¤Ë­¤ê¤Ê¤¤¾ì¹ç¤Ï¡¢º¸Â¦¤¬ 0 ¤ÇËä¤á¤é¤ì¤ë¡£ +精度指定があれば、精度で指定した桁数は必ず出力される。変換後の値が +指定された桁数に足りない場合は、左側が 0 で埋められる。 .TP .BR e ", " E .\"O The @@ -1095,13 +1095,13 @@ SUSv2 .\"O appears. .\"O An .I double -°ú¤­¿ô¤ò´Ý¤á¤Æ +引き数を丸めて .if \w'\*(Pm'=0 .ds Pm \(+- .RB [\-]d \&. ddd e \\*(Pmdd -¤Î·Á¤ËÊÑ´¹¤¹¤ë¡£ -¾®¿ôÅÀ¤ÎÁ°¤Ë¤Ï°ì·å¤Î¿ô»ú¤¬¤¢¤ê¡¢¾®¿ôÅÀ°Ê²¼¤Î·å¿ô¤ÏÀºÅ٤ǻØÄꤵ¤ì¤¿ -·å¿ô¤Ë¤Ê¤ë¡£ÀºÅ٤ϻØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç 6 ¤È¤ß¤Ê¤µ¤ì¤ë¡£ -ÀºÅÙ¤¬ 0 ¤Î¾ì¹ç¤Ë¤Ï¡¢¾®¿ôÅÀ°Ê²¼¤Ïɽ¼¨¤µ¤ì¤Ê¤¤¡£ +の形に変換する。 +小数点の前には一桁の数字があり、小数点以下の桁数は精度で指定された +桁数になる。精度は指定されなかった場合 6 とみなされる。 +精度が 0 の場合には、小数点以下は表示されない。 .\"O .B E .\"O conversion uses the letter .\"O .B E @@ -1109,15 +1109,15 @@ SUSv2 .\"O .BR e ) .\"O to introduce the exponent. .B E -ÊÑ´¹¤Ç¤Ï¡¢»Ø¿ô¤òɽ¸½¤¹¤ë¤È¤­¤Ë +変換では、指数を表現するときに .RB ( e -¤Ç¤Ï¤Ê¤¯) +ではなく) .B E -¤¬»È¤ï¤ì¤ë¡£ +が使われる。 .\"O The exponent always contains at least two .\"O digits; if the value is zero, the exponent is 00. -»Ø¿ôÉôʬ¤Ï¾¯¤Ê¤¯¤È¤â 2·åɽ¼¨¤µ¤ì¤ë¡£ -¤Ä¤Þ¤ê¡¢»Ø¿ô¤ÎÃͤ¬ 0 ¤Î¾ì¹ç¤Ë¤Ï¡¢00 ¤Èɽ¼¨¤µ¤ì¤ë¡£ +指数部分は少なくとも 2桁表示される。 +つまり、指数の値が 0 の場合には、00 と表示される。 .TP .BR f ", " F .\"O The @@ -1127,16 +1127,16 @@ SUSv2 .\"O where the number of digits after the decimal-point character is equal to .\"O the precision specification. .I double -°ú¤­¿ô¤ò´Ý¤á¤Æ +引き数を丸めて .RB [\-]ddd \&. ddd -¤Î·Á¤Î10¿Êɽ¸½¤ËÊÑ´¹¤¹¤ë¡£ -¾®¿ôÅÀ¤Î¸å¤Î·å¿ô¤Ï¡¢ÀºÅ٤ǻØÄꤵ¤ì¤¿ÃͤȤʤ롣 +の形の10進表現に変換する。 +小数点の後の桁数は、精度で指定された値となる。 .\"O If the precision is missing, it is taken as .\"O 6; if the precision is explicitly zero, no decimal-point character appears. -ÀºÅÙ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï 6 ¤È¤·¤Æ°·¤ï¤ì¤ë¡£ -ÀºÅ٤Ȥ·¤ÆÌÀ¼¨Åª¤Ë 0 ¤¬»ØÄꤵ¤ì¤¿¤È¤­¤Ë¤Ï¡¢¾®¿ôÅÀ°Ê²¼¤Ïɽ¼¨¤µ¤ì¤Ê¤¤¡£ +精度が指定されていない場合には 6 として扱われる。 +精度として明示的に 0 が指定されたときには、小数点以下は表示されない。 .\"O If a decimal point appears, at least one digit appears before it. -¾®¿ôÅÀ¤òɽ¼¨¤¹¤ëºÝ¤Ë¤Ï¡¢¾®¿ôÅÀ¤ÎÁ°¤Ë¾¯¤Ê¤¯¤È¤â°ì·å¤Ï¿ô»ú¤¬É½¼¨¤µ¤ì¤ë¡£ +小数点を表示する際には、小数点の前に少なくとも一桁は数字が表示される。 .\"O (The SUSv2 does not know about .\"O .B F @@ -1148,16 +1148,16 @@ SUSv2 .\"O conversion, and "[\-]INF" or "[\-]INFINITY" or "NAN*" in the case of .\"O .B F .\"O conversion.) -(SUSv2 ¤Ç¤Ï¡¢ +(SUSv2 では、 .B F -¤Ïµ¬Äꤵ¤ì¤Æ¤ª¤é¤º¡¢Ìµ¸Â¤ä NaN ¤Ë´Ø¤¹¤ëʸ»úÎóɽ¸½¤ò -¹Ô¤Ã¤Æ¤â¤è¤¤¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ - C99 ɸ½à¤Ç¤Ï¡¢ +は規定されておらず、無限や NaN に関する文字列表現を +行ってもよいことになっている。 + C99 標準では、 .B f -ÊÑ´¹¤Ç¤Ï¡¢Ìµ¸Â¤Ï "[\-]inf" ¤« "[\-]infinity" ¤Èɽ¼¨¤·¡¢ -NaN ¤Ïʸ»úÎó¤ÎÀèƬ¤Ë `nan' ¤ò¤Ä¤±¤Æɽ¼¨¤¹¤ë¤è¤¦¤Ëµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +変換では、無限は "[\-]inf" か "[\-]infinity" と表示し、 +NaN は文字列の先頭に `nan' をつけて表示するように規定されている。 .B F -ÊÑ´¹¤Î¾ì¹ç¤Ï "[\-]INF", "[\-]INFINITY", "NAN*" ¤Èɽ¼¨¤µ¤ì¤ë¡£) +変換の場合は "[\-]INF", "[\-]INFINITY", "NAN*" と表示される。) .TP .BR g ", " G .\"O The @@ -1174,34 +1174,34 @@ NaN .\"O .B G .\"O conversions). .I double -°ú¤­¿ô¤ò +引き数を .B f -¤« +か .B e .RB ( G -ÊÑ´¹¤Î¾ì¹ç¤Ï +変換の場合は .B F -¤« +か .BR E ) -¤Î·Á¼°¤ËÊÑ´¹¤¹¤ë¡£ +の形式に変換する。 .\"O The precision specifies the number of significant digits. -ÀºÅÙ¤Ïɽ¼¨¤¹¤ë·å¿ô¤ò»ØÄꤹ¤ë¡£ +精度は表示する桁数を指定する。 .\"O If the precision is missing, 6 digits are given; if the precision is zero, .\"O it is treated as 1. -ÀºÅÙ¤¬»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢6·å¤È¤ß¤Ê¤µ¤ì¤ë¡£ -ÀºÅÙ¤¬ 0 ¤Î¾ì¹ç¤Ï¡¢1·å¤È¤ß¤Ê¤µ¤ì¤ë¡£ +精度が指定されない場合は、6桁とみなされる。 +精度が 0 の場合は、1桁とみなされる。 .\"O Style .\"O .B e .\"O is used if the exponent from its conversion is less than \-4 or greater .\"O than or equal to the precision. -ÊÑ´¹¤µ¤ì¤ëÃͤλؿô¤¬¡¢ \-4 ¤è¤ê¾®¤µ¤¤¤«¡¢ÀºÅٰʾå¤Î¾ì¹ç¤Ë¡¢ +変換される値の指数が、 \-4 より小さいか、精度以上の場合に、 .B e -·Á¼°¤¬»ÈÍѤµ¤ì¤ë¡£ +形式が使用される。 .\"O Trailing zeros are removed from the .\"O fractional part of the result; a decimal point appears only if it is .\"O followed by at least one digit. -ÊÑ´¹¤µ¤ì¤¿·ë²Ì¤Î¾®¿ôÉôʬ¤ÎËöÈø¤Î 0 ¤Ïºï½ü¤µ¤ì¤ë¡£¾®¿ôÅÀ¤¬É½¼¨¤µ¤ì¤ë¤Î¤Ï¡¢ -¾®¿ôÅÀ°Ê²¼¤Ë¿ô»ú¤¬¾¯¤Ê¤¯¤È¤â°ì¤Ä¤¢¤ë¾ì¹ç¤Ë¤À¤±¤Ç¤¢¤ë¡£ +変換された結果の小数部分の末尾の 0 は削除される。小数点が表示されるのは、 +小数点以下に数字が少なくとも一つある場合にだけである。 .TP .BR a ", " A .\"O (C99; not in SUSv2) For @@ -1218,36 +1218,36 @@ NaN .\"O the letters ABCDEF, and the exponent separator .\"O .B P .\"O is used. -(C99 ¤Ë¤Ï¤¢¤ë¤¬ SUSv2 ¤Ë¤Ï¤Ê¤¤) +(C99 にはあるが SUSv2 にはない) .B a -ÊÑ´¹¤Ç¤Ï¡¢ +変換では、 .I double -°ú¤­¿ô¤ò (abcdef ¤Îʸ»ú¤ò»È¤Ã¤Æ) +引き数を (abcdef の文字を使って) .RB [\-] 0x h \&. hhhh p \\*(Pmd; -·Á¼°¤Î 16 ¿Êɽµ­¤ËÊÑ´¹¤¹¤ë¡£ +形式の 16 進表記に変換する。 .B A -ÊÑ´¹¤Ç¤Ï¡¢Á°ÃÖʸ»úÎó +変換では、前置文字列 .BR 0X , -ʸ»ú ABCDEF, »Ø¿ôʸ»ú +文字 ABCDEF, 指数文字 .B P -¤òÍѤ¤¤ë¡£ +を用いる。 .\"O There is one hexadecimal digit before the decimal point, .\"O and the number of digits after it is equal to the precision. -¾®¿ôÅÀ¤ÎÁ°¤Ë¤Ï 1·å¤Î16¿Ê¿ô¤¬ÃÖ¤«¤ì¡¢¾®¿ôÅÀ¤Î¸å¤í¤Î·å¿ô¤Ï -ÀºÅ٤ǻØÄꤵ¤ì¤¿ÃͤȤʤ롣 +小数点の前には 1桁の16進数が置かれ、小数点の後ろの桁数は +精度で指定された値となる。 .\"O The default precision suffices for an exact representation of the value .\"O if an exact representation in base 2 exists .\"O and otherwise is sufficiently large to distinguish values of type .\"O .IR double . -¥Ç¥Õ¥©¥ë¥È¤ÎÀºÅ٤ϡ¢¤½¤ÎÃͤ¬ 2¿Ê¿ô¤ÇÀµ³Î¤Ëɽ¸½¤Ç¤­¤ë¾ì¹ç¤Ë¤Ï¡¢ -¤½¤ÎÃͤòÀµ³Î¤Ëɽ¸½¤Ç¤­¤ë·å¿ô¤È¤Ê¤ë¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢ +デフォルトの精度は、その値が 2進数で正確に表現できる場合には、 +その値を正確に表現できる桁数となる。それ以外の場合は、 .I double -·¿¤ÎÃͤò¶èÊ̤¹¤ë¤Î¤Ë½½Ê¬¤ÊÂ礭¤µ¤È¤Ê¤ë¡£ +型の値を区別するのに十分な大きさとなる。 .\"O The digit before the decimal point is unspecified for nonnormalized .\"O numbers, and nonzero but otherwise unspecified for normalized numbers. -.\" motoki 2005/03/19: ¹ç¤Ã¤Æ¤¤¤ë¤«¤Ê¡© -¾®¿ôÅÀ¤ÎÁ°¤Î¿ô»ú¤Ï¡¢Àµµ¬²½¤µ¤ì¤Æ¤¤¤Ê¤¤¿ô¤Î¾ì¹ç¤Ï¤¤¤¯¤Ä¤Ë¤Ê¤ë¤«Ê¬¤«¤é¤Ê¤¤¡£ -Àµµ¬²½¤µ¤ì¤¿¿ô¤Î¾ì¹ç¤Ï¡¢ 0 °Ê³°¤ÎÃͤˤʤ뤬¡¢¤¤¤¯¤Ä¤Ë¤Ê¤ë¤«¤Ïʬ¤«¤é¤Ê¤¤¡£ +.\" motoki 2005/03/19: 合っているかな? +小数点の前の数字は、正規化されていない数の場合はいくつになるか分からない。 +正規化された数の場合は、 0 以外の値になるが、いくつになるかは分からない。 .TP .B c .\"O If no @@ -1258,11 +1258,11 @@ NaN .\"O .IR "unsigned char" , .\"O and the resulting character is written. .B l -½¤¾þ»Ò¤¬¤Ê¤±¤ì¤Ð¡¢ +修飾子がなければ、 .I int -°ú¤­¿ô¤ò +引き数を .IR "unsigned char" -¤ËÊÑ´¹¤·¤Æ¡¢¤½¤Î·ë²Ì¤ËÂбþ¤¹¤ëʸ»ú¤ò½ÐÎϤ¹¤ë¡£ +に変換して、その結果に対応する文字を出力する。 .\"O If an .\"O .B l .\"O modifier is present, the @@ -1273,12 +1273,12 @@ NaN .\"O function, with a conversion state starting in the initial state, and the .\"O resulting multibyte string is written. .B l -½¤¾þ»Ò¤¬¤¢¤ì¤Ð¡¢ +修飾子があれば、 .I wint_t -(¥ï¥¤¥Éʸ»ú) °ú¤­¿ô¤ò¡¢ +(ワイド文字) 引き数を、 .BR wcrtomb (3) -´Ø¿ô¤ò½é´ü¥·¥Õ¥È¾õÂ֤ǸƤӽФ·¤Æ¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ËÊÑ´¹¤·¡¢ -ÊÑ´¹¤µ¤ì¤¿¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ò½ÐÎϤ¹¤ë¡£ +関数を初期シフト状態で呼び出してマルチバイト文字列に変換し、 +変換されたマルチバイト文字列を出力する。 .TP .B s .\"O If no @@ -1295,16 +1295,16 @@ NaN .\"O if the precision is not specified, or is greater than the size of the .\"O array, the array must contain a terminating null byte. .B l -½¤¾þ»Ò¤¬¤Ê¤¤¾ì¹ç¡¢ -°ú¤­¿ô¤Ï +修飾子がない場合、 +引き数は .I "const char *" -·¿¤Çʸ»ú·¿¤ÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿ (ʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿) ¤Ç¤¢¤ë¤³¤È¤¬ -´üÂÔ¤µ¤ì¤Æ¤¤¤ë¡£ÇÛÎóÃæ¤Îʸ»ú¤Ï¡¢½ªÃ¼¤Î NULL ¥Ð¥¤¥È (\(aq\\0\(aq) -¤¬½Ð¤Æ¤¯¤ë¤Þ¤Ç½ÐÎϤµ¤ì¤ë (½ªÃ¼Ê¸»ú¤Ï½ÐÎϤµ¤ì¤Ê¤¤)¡£ -ÀºÅÙ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢»ØÄꤵ¤ì¤¿»ú¿ô°Ê¾å¤Ï½ÐÎϤµ¤ì¤Ê¤¤¡£ -ÀºÅÙ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢½ªÃ¼¥Ð¥¤¥È¤¬Â¸ºß¤¹¤ëɬÍפϤʤ¤¡£ -ÀºÅÙ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¤ê¡¢ÀºÅÙ¤ÎÃͤ¬ÇÛÎó¤ÎÂ礭¤µ¤è¤êÂ礭¤¤¾ì¹ç¤Ë¤Ï¡¢ -ÇÛÎó¤Ï½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤ò´Þ¤ó¤Ç¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +型で文字型の配列へのポインタ (文字列へのポインタ) であることが +期待されている。配列中の文字は、終端の NULL バイト (\(aq\\0\(aq) +が出てくるまで出力される (終端文字は出力されない)。 +精度が指定されていると、指定された字数以上は出力されない。 +精度が指定された場合には、終端バイトが存在する必要はない。 +精度が指定されていなかったり、精度の値が配列の大きさより大きい場合には、 +配列は終端の NULL バイトを含んでいなければならない。 .\"O If an .\"O .B l @@ -1312,10 +1312,10 @@ NaN .\"O .I "const wchar_t *" .\"O argument is expected to be a pointer to an array of wide characters. .B l -½¤¾þ»Ò¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -°ú¤­¿ô¤Ï +修飾子が指定されている場合、 +引き数は .I "const wchar_t *" -·¿¤Ç¥ï¥¤¥Éʸ»ú¤ÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤¬´üÂÔ¤µ¤ì¤Æ¤¤¤ë¡£ +型でワイド文字の配列へのポインタであることが期待されている。 .\"O Wide characters from the array are converted to multibyte characters .\"O (each by a call to the .\"O .BR wcrtomb (3) @@ -1334,44 +1334,44 @@ NaN .\"O .I wide characters .\"O or .\"O .IR "screen positions" . -ÇÛÎóÃæ¤Î¥ï¥¤¥Éʸ»ú¤Ï (1ʸ»úËè¤Ë +配列中のワイド文字は (1文字毎に .BR wcrtomb (3) -¤ò¸Æ¤Ó½Ð¤·¤Æ) ¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ËÊÑ´¹¤µ¤ì¤ë -(ºÇ½é¤Î¥ï¥¤¥Éʸ»ú¤ÎÊÑ´¹¤ÎÁ°¤Ë +を呼び出して) マルチバイト文字に変換される +(最初のワイド文字の変換の前に .BR wcrtomb () -¤Î¥·¥Õ¥È¾õÂÖ¤ò½é´ü¾õÂÖ¤ËÌᤷ¤Æ¤«¤éÊÑ´¹¤Ï¹Ô¤ï¤ì¤ë)¡£ -¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤Ø¤ÎÊÑ´¹¤Ï¡¢Ê¸»úÎó¤ò½ªÃ¼¤¹¤ë NULL ¥ï¥¤¥Éʸ»ú¤¬ -½Ð¤Æ¤¯¤ë¤Þ¤Ç¹Ô¤ï¤ì¡¢½ªÃ¼ NULL ¥ï¥¤¥Éʸ»ú¤â´Þ¤á¤ÆÊÑ´¹¤µ¤ì¤ë¡£ -·ë²Ì¤Î¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤Ï¡¢½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤¬½Ð¤Æ¤¯¤ë¤Þ¤Ç -½ÐÎϤµ¤ì¤ë (½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤Ï½ÐÎϤµ¤ì¤Ê¤¤)¡£ -ÀºÅÙ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢»ØÄꤵ¤ì¤¿¥Ð¥¤¥È¿ô°Ê¾å¤Ë¤Ï½ÐÎϤµ¤ì¤Ê¤¤¡£ -⤷¡¢¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤Î°ìÉôʬ¤À¤±¤¬½ÐÎϤµ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ -ÀºÅ٤ϡ֥Х¤¥È¡×¿ô¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¤¢¤ê¡¢¡Ö¥ï¥¤¥Éʸ»ú¡×¿ô¤ä -¡Ö²èÌ̤ǤΰÌÃ֡פò»ØÄꤹ¤ë¤â¤Î¤Ç¤Ï¤Ê¤¤¤³¤È¤ËÃí°Õ¡£ +のシフト状態を初期状態に戻してから変換は行われる)。 +マルチバイト文字への変換は、文字列を終端する NULL ワイド文字が +出てくるまで行われ、終端 NULL ワイド文字も含めて変換される。 +結果のマルチバイト文字列は、終端の NULL バイトが出てくるまで +出力される (終端の NULL バイトは出力されない)。 +精度が指定された場合、指定されたバイト数以上には出力されない。 +但し、マルチバイト文字の一部分だけが出力されることはない。 +精度は「バイト」数を指定するものであり、「ワイド文字」数や +「画面での位置」を指定するものではないことに注意。 .\"O The array must contain a terminating null wide character, unless a .\"O precision is given and it is so small that the number of bytes written .\"O exceeds it before the end of the array is reached. -ÀºÅÙ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢¤µ¤é¤Ë½ÐÎϤ¬ÇÛÎó¤ÎËöÈø¤Ë㤹¤ëÁ°¤Ë½ÐÎϥХ¤¥È¿ô¤¬ -ÀºÅÙ¤ÎÃͤòĶ¤¨¤ë¾ì¹ç¤À¤±¤Ï¡¢ÇÛÎó¤Ï NULL ¥ï¥¤¥Éʸ»ú¤Ç½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¯¤Æ¤â¤è¤¤¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢É¬¤ºÇÛÎó¤Ï NULL ¥ï¥¤¥Éʸ»ú¤Ç½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +精度が指定されていて、さらに出力が配列の末尾に達する前に出力バイト数が +精度の値を超える場合だけは、配列は NULL ワイド文字で終端されていなくてもよい。 +それ以外の場合は、必ず配列は NULL ワイド文字で終端されていなければならない。 .TP .B C .\"O (Not in C99, but in SUSv2.) .\"O Synonym for .\"O .BR lc . .\"O Don't use. -(C99 ¤Ë¤Ï¤Ê¤¤¤¬ SUSv2 ¤Ë¤Ï¤¢¤ë) +(C99 にはないが SUSv2 にはある) .B lc -¤ÈƱ¤¸¡£»È¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +と同じ。使ってはならない。 .TP .B S .\"O (Not in C99, but in SUSv2.) .\"O Synonym for .\"O .BR ls . .\"O Don't use. -(C99 ¤Ë¤Ï¤Ê¤¤¤¬ SUSv2 ¤Ë¤Ï¤¢¤ë) +(C99 にはないが SUSv2 にはある) .B ls -¤ÈƱ¤¸¡£»È¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +と同じ。使ってはならない。 .TP .B p .\"O The @@ -1381,11 +1381,11 @@ NaN .\"O or .\"O .BR %#lx ). .I "void *" -¥Ý¥¤¥ó¥¿°ú¤­¿ô¤ò +ポインタ引き数を .RB ( %#x -¤ä +や .BR %#lx -¤Î¤è¤¦¤Ê) 16 ¿Ê¿ô¤Ç½ÐÎϤ¹¤ë¡£ +のような) 16 進数で出力する。 .TP .B n .\"O The number of characters written so far is stored into the integer @@ -1393,29 +1393,29 @@ NaN .\"O .I "int *" .\"O (or variant) pointer argument. .\"O No argument is converted. -¤³¤ì¤Þ¤Ç¤Ë½ÐÎϤµ¤ì¤¿Ê¸»ú¿ô¤ò +これまでに出力された文字数を .I "int *" -(¤Þ¤¿¤ÏÎà»÷¤Î·¿) ¤Î¥Ý¥¤¥ó¥¿°ú¤­¿ô¤¬»Ø¤¹À°¿ô¤ËÊݸ¤¹¤ë¡£ -°ú¤­¿ô¤ÎÊÑ´¹¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ +(または類似の型) のポインタ引き数が指す整数に保存する。 +引き数の変換は行われない。 .TP .B m .\"O (Glibc extension.) .\"O Print output of .\"O .IR strerror(errno) . .\"O No argument is required. -(glibc ¤Ç¤Î³ÈÄ¥) +(glibc での拡張) .I strerror(errno) -¤Î½ÐÎϤòɽ¼¨¤¹¤ë¡£°ú¤­¿ô¤ÏɬÍפʤ¤¡£ +の出力を表示する。引き数は必要ない。 .TP .B % .\"O A \(aq%\(aq is written. .\"O No argument is converted. .\"O The complete conversion .\"O specification is \(aq%%\(aq. -\(aq%\(aq ʸ»ú¤ò½ÐÎϤ¹¤ë¡£ÊÑ´¹¤µ¤ì¤ë°ú¤­¿ô¤Ï̵¤¤¡£ -ÊÑ´¹»ØÄêÁ´ÂΤò½ñ¤¯¤È "%%" ¤È¤Ê¤ë¡£ +\(aq%\(aq 文字を出力する。変換される引き数は無い。 +変換指定全体を書くと "%%" となる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The .\"O .BR fprintf (), .\"O .BR printf (), @@ -1431,16 +1431,16 @@ NaN .BR vprintf (), .BR vfprintf (), .BR vsprintf () -´Ø¿ô¤Ï¡¢C89 ¤È C99 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +関数は、C89 と C99 に準拠している。 .\"O The .\"O .BR snprintf () .\"O and .\"O .BR vsnprintf () .\"O functions conform to C99. .BR snprintf () -¤È +と .BR vsnprintf () -¤Ï C99 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +は C99 に準拠している。 .PP .\"O Concerning the return value of .\"O .BR snprintf (), @@ -1455,17 +1455,17 @@ NaN .\"O as the number of characters that would have been written in case .\"O the output string has been large enough. .BR snprintf () -¤ÎÊÖ¤êÃͤò¸«¤ë¤È¡¢ -SUSv2 ¤È C99 ɸ½à¤Ï¸ß¤¤¤ËÌ·½â¤·¤Æ¤¤¤ë¡£ -SUSv2 ¤Ç¤Ï¡¢ +の返り値を見ると、 +SUSv2 と C99 標準は互いに矛盾している。 +SUSv2 では、 .BR snprintf () -¤¬ +が .IR size =0 -¤Ç¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¡¢ 1 ̤Ëþ¤ÎÃͤò²¿¤«ÊÖ¤êÃͤȤ¹¤ë¤è¤¦¤Ëµ¬Äꤷ¤Æ¤¤¤ë¡£ -°ìÊý C99 ¤Ç¤Ï¡¢¤³¤Î¤è¤¦¤Ê¾ì¹ç +で呼び出された場合、 1 未満の値を何か返り値とするように規定している。 +一方 C99 では、このような場合 .I str -¤ò NULL ¤È¤·¡¢ÊÖ¤êÃͤȤ·¤Æ (Ä̾ïÄ̤ê) ½ÐÎϥХåե¡¤¬½½Ê¬¤ÊÂ礭¤µ¤¬ -¤¢¤Ã¤¿¾ì¹ç¤Ë½ÐÎϤµ¤ì¤ë¤Ç¤¢¤í¤¦Ê¸»ú¿ô¤òÊÖ¤¹¡£ +を NULL とし、返り値として (通常通り) 出力バッファが十分な大きさが +あった場合に出力されるであろう文字数を返す。 .PP .\"O Linux libc4 knows about the five C standard flags. .\"O It knows about the length modifiers \fBh\fP, \fBl\fP, \fBL\fP, @@ -1474,69 +1474,69 @@ SUSv2 .\"O \fBg\fP, \fBG\fP, \fBi\fP, \fBn\fP, \fBo\fP, \fBp\fP, .\"O \fBs\fP, \fBu\fP, \fBx\fP, and \fBX\fP, .\"O where \fBF\fP is a synonym for \fBf\fP. -Linux libc4 ¤Ç¤Ï¡¢ 5 ¤Ä¤Î C ɸ½à¤Î¥Õ¥é¥°¡¢ -Ťµ½¤¾þ»Ò \fBh\fP, \fBl\fP, \fBL\fP¡¢ÊÑ´¹ +Linux libc4 では、 5 つの C 標準のフラグ、 +長さ修飾子 \fBh\fP, \fBl\fP, \fBL\fP、変換 \fBc\fP, \fBd\fP, \fBe\fP, \fBE\fP, \fBf\fP, \fBF\fP, \fBg\fP, \fBG\fP, \fBi\fP, \fBn\fP, \fBo\fP, \fBp\fP, \fBs\fP, \fBu\fP, \fBx\fP, \fBX\fP -¤¬»È¤¨¤ë¡£ -⤷ \fBF\fP ¤Ï \fBf\fP ¤ÈƱµÁ¤Ç¤¢¤ë¡£ +が使える。 +但し \fBF\fP は \fBf\fP と同義である。 .\"O Additionally, it accepts \fBD\fP, \fBO\fP, and \fBU\fP as synonyms .\"O for \fBld\fP, \fBlo\fP, and \fBlu\fP. .\"O (This is bad, and caused serious bugs later, when .\"O support for \fB%D\fP disappeared.) .\"O No locale-dependent radix character, .\"O no thousands' separator, no NaN or infinity, no "%m$" and "*m$". -¤Þ¤¿¡¢ \fBD\fP, \fBO\fP, and \fBU\fP ¤ò \fBld\fP, \fBlo\fP, and \fBlu\fP -¤ÈƱ¤¸¤â¤Î¤È¤·¤Æ»È¤¨¤ë -(¤³¤ì¤Ï¤Þ¤º¤¤»ÅÍͤǡ¢ ¸å¤Ë \fB%D\fP ¤ÎÂбþ¤¬ÂǤÁÀÚ¤é¤ì¤¿»þ¤Ë¿¼¹ï¤Ê¥Ð¥°¤ò -°ú¤­µ¯¤³¤·¤¿)¡£¥í¥±¡¼¥ë°Í¸¤Î¾®¿ôÅÀ¡¢1000 ¶èÀڤꡢ NaN ¤È̵¸Â¡¢ -"%m$" ¤È "*m$" ¤Ï»È¤¨¤Ê¤¤¡£ +また、 \fBD\fP, \fBO\fP, and \fBU\fP を \fBld\fP, \fBlo\fP, and \fBlu\fP +と同じものとして使える +(これはまずい仕様で、 後に \fB%D\fP の対応が打ち切られた時に深刻なバグを +引き起こした)。ロケール依存の小数点、1000 区切り、 NaN と無限、 +"%m$" と "*m$" は使えない。 .PP .\"O Linux libc5 knows about the five C standard flags and the \(aq flag, .\"O locale, "%m$" and "*m$". .\"O It knows about the length modifiers \fBh\fP, \fBl\fP, \fBL\fP, .\"O \fBZ\fP, and \fBq\fP, but accepts \fBL\fP and \fBq\fP .\"O both for \fIlong double\fP and for \fIlong long int\fP (this is a bug). -Linux libc5 ¤Ç¤Ï¡¢ 5 ¤Ä¤Î C ɸ½à¤Î¥Õ¥é¥°¤È \(aq ¥Õ¥é¥°¡¢¥í¥±¡¼¥ë¡¢ -"%m$" ¤È "*m$" ¤¬»È¤¨¤ë¡£ -¤Þ¤¿¡¢Ä¹¤µ½¤¾þ»Ò \fBh\fP, \fBl\fP, \fBL\fP, \fBZ\fP, iand \fBq\fP ¤¬»È¤¨¤ë¤¬¡¢ -\fBL\fP ¤È \fBq\fP ¤ÏξÊý¤È¤â -\fIlong double\fP ¤È \fIlong long int\fP ¤ËÂбþ¤·¤Æ¤¤¤ë (¤³¤ì¤Ï¥Ð¥°¤Ç¤¢¤ë)¡£ +Linux libc5 では、 5 つの C 標準のフラグと \(aq フラグ、ロケール、 +"%m$" と "*m$" が使える。 +また、長さ修飾子 \fBh\fP, \fBl\fP, \fBL\fP, \fBZ\fP, iand \fBq\fP が使えるが、 +\fBL\fP と \fBq\fP は両方とも +\fIlong double\fP と \fIlong long int\fP に対応している (これはバグである)。 .\"O It no longer recognizes \fBF\fP, \fBD\fP, \fBO\fP, and \fBU\fP, .\"O but adds the conversion character .\"O .BR m , .\"O which outputs .\"O .IR strerror(errno) . -¸½ºß¤Ç¤ÏÊÑ´¹ \fBF\fP, \fBD\fP, \fBO\fP, \fBU\fP ¤Ïǧ¼±¤µ¤ì¤Ê¤¤¤¬¡¢ÊÑ´¹Ê¸»ú +現在では変換 \fBF\fP, \fBD\fP, \fBO\fP, \fBU\fP は認識されないが、変換文字 .B m -¤¬Äɲ䵤줿¡£¤³¤ì¤Ï +が追加された。これは .I strerror(errno) -¤ò½ÐÎϤ¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +を出力するものである。 .PP .\"O glibc 2.0 adds conversion characters \fBC\fP and \fBS\fP. -glibc 2.0 ¤Ç¤Ï¡¢ÊÑ´¹Ê¸»ú \fBC\fP ¤È \fBS\fP ¤¬Äɲ䵤줿¡£ +glibc 2.0 では、変換文字 \fBC\fP と \fBS\fP が追加された。 .PP .\"O glibc 2.1 adds length modifiers \fBhh\fP, \fBj\fP, \fBt\fP, and \fBz\fP .\"O and conversion characters \fBa\fP and \fBA\fP. -glibc 2.1 ¤Ç¤Ï¡¢Ä¹¤µ½¤¾þ»Ò \fBhh\fP, \fBj\fP, \fBt\fP, \fBz\fP -¤ÈÊÑ´¹Ê¸»ú \fBa\fP, \fBA\fP ¤¬Äɲ䵤줿¡£ +glibc 2.1 では、長さ修飾子 \fBhh\fP, \fBj\fP, \fBt\fP, \fBz\fP +と変換文字 \fBa\fP, \fBA\fP が追加された。 .PP .\"O glibc 2.2 adds the conversion character \fBF\fP with C99 semantics, .\"O and the flag character \fBI\fP. -glibc 2.2 ¤Ç¤Ï¡¢ C99 ¤Çµ¬Äꤵ¤ì¤¿°ÕÌ£¤Ç¤ÎÊÑ´¹Ê¸»ú \fBF\fP ¤È -¥Õ¥é¥°Ê¸»ú \fBI\fP ¤¬Äɲ䵤줿¡£ +glibc 2.2 では、 C99 で規定された意味での変換文字 \fBF\fP と +フラグ文字 \fBI\fP が追加された。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Some programs imprudently rely on code such as the following .\"O .\"O sprintf(buf, "%s some further text", buf); .\"O .\"O to append text to .\"O .IR buf . -¥Æ¥­¥¹¥È¤ò +テキストを .I buf -¤ËÄɲ乤ë¤Î¤Ë¡¢·ÚΨ¤Ë¤â¼¡¤Î¤è¤¦¤Ê¥³¡¼¥É¤ò»È¤Ã¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤¬¤¢¤ë¡£ +に追加するのに、軽率にも次のようなコードを使っているプログラムがある。 sprintf(buf, "%s some further text", buf); @@ -1547,23 +1547,23 @@ glibc 2.2 .\"O .BR vsprintf (), .\"O and .\"O .BR vsnprintf (). -¤·¤«¤·¤Ê¤¬¤é¡¢É¸½àµ¬³Ê¤Ç¤Ï¡¢ +しかしながら、標準規格では、 .BR sprintf (), .BR snprintf (), .BR vsprintf (), .BR vsnprintf () -¤Î¸Æ¤Ó½Ð¤·¤Ë¤ª¤¤¤Æ¡¢¥³¥Ô¡¼¸µ¤È¥³¥Ô¡¼Àè¤Î¥Ð¥Ã¥Õ¥¡¤¬½Å¤Ê¤Ã¤Æ¤¤¤¿¾ì¹ç¤Î -·ë²Ì¤ÏÉÔÄê¤Ç¤¢¤ë¡¢¤ÈÌÀµ­¤µ¤ì¤Æ¤¤¤ë¡£ +の呼び出しにおいて、コピー元とコピー先のバッファが重なっていた場合の +結果は不定である、と明記されている。 .\" http://sourceware.org/bugzilla/show_bug.cgi?id=7075 .\"O Depending on the version of .\"O .BR gcc (1) .\"O used, and the compiler options employed, calls such as the above will .\"O .B not .\"O produce the expected results. -»ÈÍѤ¹¤ë +使用する .BR gcc (1) -¤Î¥Ð¡¼¥¸¥ç¥ó¤ä»ØÄꤷ¤¿¥³¥ó¥Ñ¥¤¥é¤Î¥ª¥×¥·¥ç¥ó¼¡Âè¤Ç¤Ï¡¢ -¾åµ­¤Î¤è¤¦¤Ê¸Æ¤Ó½Ð¤·¤Ç¡¢´üÂÔ¤·¤¿·ë²Ì¤¬ÆÀ¤é¤ì¡Ö¤Ê¤¤¡×¤³¤È¤¬¤¢¤ë¡£ +のバージョンや指定したコンパイラのオプション次第では、 +上記のような呼び出しで、期待した結果が得られ「ない」ことがある。 .\"O The glibc implementation of the functions .\"O .BR snprintf () @@ -1573,80 +1573,80 @@ glibc 2.2 .\"O since glibc version 2.1. .\"O Until glibc 2.0.6 they would return \-1 .\"O when the output was truncated. -glibc ¤Î +glibc の .BR snprintf () -¤È +と .BR vsnprintf () -¤Î¼ÂÁõ¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Ï C99 ɸ½à¤Ë½àµò¤·¤Æ¤ª¤ê¡¢ -¾åµ­¤ÎÄ̤ê¤ÎÆ°ºî¤ò¤¹¤ë¡£ -glibc 2.0.6 ¤Þ¤Ç¤Ï¡¢½ÐÎϤ¬ÀÚ¤êµÍ¤á¤é¤ì¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ +の実装は、バージョン 2.1 以降は C99 標準に準拠しており、 +上記の通りの動作をする。 +glibc 2.0.6 までは、出力が切り詰められた場合は \-1 を返す。 .\"O .\" .SH HISTORY -.\" .SH Îò»Ë +.\" .SH 歴史 .\"O .\" UNIX V7 defines the three routines .\"O .\" .BR printf (), .\"O .\" .BR fprintf (), .\"O .\" .BR sprintf (), .\"O .\" and has the flag \-, the width or precision *, the length modifier l, .\"O .\" and the conversions doxfegcsu, and also D,O,U,X as synonyms for ld,lo,lu,lx. -.\" UNIX V7 ¤Ç¤Ï +.\" UNIX V7 では .\" .BR printf (), .\" .BR fprintf (), .\" .BR sprintf () -.\" ¤Î 3 ¤Ä¤Î´Ø¿ô¤È¡¢¥Õ¥é¥° \-¡¢Éý¤ÈÀºÅ٤ǤΠ*¡¢Ä¹¤µ½¤¾þ»Ò l¡¢ -.\" ÊÑ´¹ doxfegcsu¡¢¤½¤·¤Æ ld,ld,lu,lx ¤ÎƱµÁ¸ì¤È¤·¤Æ D,O,U,X ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +.\" の 3 つの関数と、フラグ \-、幅と精度での *、長さ修飾子 l、 +.\" 変換 doxfegcsu、そして ld,ld,lu,lx の同義語として D,O,U,X が定義されている。 .\"O .\" This is still true for 2.9.1BSD, but 2.10BSD has the flags .\"O .\" #, + and and no longer mentions D,O,U,X. -.\" 2.9.1BSD ¤Ç¤â¤³¤ì¤ÏƱ¤¸¤À¤Ã¤¿¤¬¡¢ 2.10BSD ¤Ç¤Ï -.\" ¥Õ¥é¥° #, +, ¶õÇò¤¬Äɲ䵤졢 D,O,U,X ¤Ë¤Ä¤¤¤Æ¤Ïµ­ºÜ¤µ¤ì¤Ê¤¯¤Ê¤Ã¤¿¡£ +.\" 2.9.1BSD でもこれは同じだったが、 2.10BSD では +.\" フラグ #, +, 空白が追加され、 D,O,U,X については記載されなくなった。 .\"O .\" 2.11BSD has .\"O .\" .BR vprintf (), .\"O .\" .BR vfprintf (), .\"O .\" .BR vsprintf (), .\"O .\" and warns not to use D,O,U,X. -.\" 2.11BSD ¤Ç¤Ï +.\" 2.11BSD では .\" .BR vprintf (), .\" .BR vfprintf (), .\" .BR vsprintf () -.\" ¤¬Äɲ䵤졢 D,O,U,X ¤ò»È¤ï¤Ê¤¤¤è¤¦¤Ë·Ù¹ð¤µ¤ì¤¿¡£ +.\" が追加され、 D,O,U,X を使わないように警告された。 .\"O .\" 4.3BSD Reno has the flag 0, the length modifiers h and L, .\"O .\" and the conversions n, p, E, G, X (with current meaning) .\"O .\" and deprecates D,O,U. -.\" 4.3BSD Reno ¤Ç¤Ï¥Õ¥é¥° 0¡¢Ä¹¤µ½¤¾þ»Ò h ¤È L¡¢ -.\" ÊÑ´¹ n, p, E, G, (¸½ºß¤Î°ÕÌ£¤Ç¤Î) X ¤¬Äɲ䵤졢 -.\" D,O,U ¤ÏÈó¿ä¾©°·¤¤¤È¤Ê¤Ã¤¿¡£ +.\" 4.3BSD Reno ではフラグ 0、長さ修飾子 h と L、 +.\" 変換 n, p, E, G, (現在の意味での) X が追加され、 +.\" D,O,U は非推奨扱いとなった。 .\"O .\" 4.4BSD introduces the functions .\"O .\" .BR snprintf () .\"O .\" and .\"O .\" .BR vsnprintf (), .\"O .\" and the length modifier q. -.\" 4.4BSD ¤Ç¤Ï¡¢´Ø¿ô -.\" .BR snprintf ()¤È -.\" .BR vsnprintf ()¡¢ -.\" Ťµ½¤¾þ»Ò q ¤¬Æ³Æþ¤µ¤ì¤¿¡£ +.\" 4.4BSD では、関数 +.\" .BR snprintf ()と +.\" .BR vsnprintf ()、 +.\" 長さ修飾子 q が導入された。 .\"O .\" FreeBSD also has functions .\"O .\" .BR asprintf () .\"O .\" and .\"O .\" .BR vasprintf (), .\"O .\" that allocate a buffer large enough for .\"O .\" .BR sprintf (). -.\" FreeBSD ¤Ç¤Ï¡¢ +.\" FreeBSD では、 .\" .BR sprintf () -.\" ¤Î¤¿¤á¤Ë½½Ê¬¤Ê¥Ð¥Ã¥Õ¥¡¤ò³ÎÊݤ¹¤ë +.\" のために十分なバッファを確保する .\" .BR asprintf () -.\" ¤È +.\" と .\" .BR vasprintf () -.\" ¤¬Äɲ䵤ì¤Æ¤¤¤ë¡£ +.\" が追加されている。 .\"O .\" In glibc there are functions .\"O .\" .BR dprintf () .\"O .\" and .\"O .\" .BR vdprintf () .\"O .\" that print to a file descriptor instead of a stream. -.\" glibc ¤Ë¤Ï¡¢´Ø¿ô +.\" glibc には、関数 .\" .BR dprintf (), .\" .BR vdprintf () -.\" ¤¬¤¢¤ê¡¢¤³¤ì¤é¤Ï¥¹¥È¥ê¡¼¥à¤Ç¤Ï¤Ê¤¯¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë½ÐÎϤ¹¤ë¡£ +.\" があり、これらはストリームではなくファイルディスクリプタに出力する。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Because .\"O .BR sprintf () .\"O and @@ -1656,12 +1656,12 @@ glibc 2.0.6 .\"O Note that the length .\"O of the strings produced is locale-dependent and difficult to predict. .BR sprintf () -¤È +と .BR vsprintf () -¤Ï¾¡¼ê¤Ë½½Ê¬¤ËŤ¤Ê¸»úÎóÎΰ褬¤¢¤ë¤È²¾Äꤹ¤ë¤Î¤Ç¡¢¸Æ¤Ó½Ð¤·Â¦¤Ï -¼ÂºÝ¤ÎÎΰ褫¤é¤¢¤Õ¤ì¤Ê¤¤¤è¤¦¤ËÃí°Õ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤·¤«¤·¡¢¤³¤ì¤òÊݾڤ¹¤ë¤³¤È¤¬ÉÔ²Äǽ¤Ê¾ì¹ç¤¬Â¿¤¤¡£ -À¸À®¤µ¤ì¤ëʸ»úÎó¤ÎŤµ¤Ï¥í¥±¡¼¥ë°Í¸¤Ç¤¢¤ê¡¢Í½Â¬¤¬Æñ¤·¤¤¤³¤È¤ËÃí°Õ¡£ +は勝手に十分に長い文字列領域があると仮定するので、呼び出し側は +実際の領域からあふれないように注意しなければならない。 +しかし、これを保証することが不可能な場合が多い。 +生成される文字列の長さはロケール依存であり、予測が難しいことに注意。 .\"O Use .\"O .BR snprintf () .\"O and @@ -1670,15 +1670,15 @@ glibc 2.0.6 .\"O .BR asprintf (3) .\"O and .\"O .BR vasprintf (3)). -Âå¤ï¤ê¤Ë +代わりに .BR snprintf () -¤È +と .BR vsnprintf () -(¤Þ¤¿¤Ï +(または .BR asprintf (3) -¤È +と .BR vasprintf (3)) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .PP .\"O Linux libc4.[45] does not have a .\"O .BR snprintf (), @@ -1689,22 +1689,22 @@ glibc 2.0.6 .\"O that is, one that ignores the .\"O .I size .\"O argument. -Linux libc4.[45] ¤Ë¤Ï +Linux libc4.[45] には .BR snprintf () -¤Ï¤Ê¤¤¤¬¡¢ libbsd ¤¬Ä󶡤µ¤ì¤Æ¤ª¤ê¡¢ -¤½¤ÎÃæ¤Ë¤Ï +はないが、 libbsd が提供されており、 +その中には .BR sprintf () -¤ÈÅù²Á¤Ê (¤Ä¤Þ¤ê +と等価な (つまり .I size -°ú¤­¿ô¤ò̵»ë¤¹¤ë) +引き数を無視する) .BR snprintf () -¤¬¤¢¤ë¡£ +がある。 .\"O Thus, the use of .\"O .BR snprintf () .\"O with early libc4 leads to serious security problems. -¤·¤¿¤¬¤Ã¤Æ¡¢½é´ü¤Î libc4 ¤Ç +したがって、初期の libc4 で .BR snprintf () -¤ò»È¤¦¤È¡¢¿¼¹ï¤Ê¥»¥­¥å¥ê¥Æ¥£ÌäÂê¤ò°ú¤­µ¯¤³¤¹¤³¤È¤¬¤¢¤ë¡£ +を使うと、深刻なセキュリティ問題を引き起こすことがある。 .PP .\"O Code such as .\"O .BI printf( foo ); @@ -1717,25 +1717,25 @@ Linux libc4.[45] .\"O .BR printf () .\"O call to write to memory and creating a security hole. .BI printf( foo ); -¤Î¤è¤¦¤Ê¥³¡¼¥É¤Ï¤·¤Ð¤·¤Ð¥Ð¥°¤ò°ú¤­µ¯¤³¤¹¡£ -¤Ê¤¼¤Ê¤é +のようなコードはしばしばバグを引き起こす。 +なぜなら .I foo -¤Ë % ʸ»ú¤¬´Þ¤Þ¤ì¤Æ¤ë¤«¤â¤·¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +に % 文字が含まれてるかもしれないからである。 .I foo -¤¬¿®Íê¤Ç¤­¤Ê¤¤¥æ¡¼¥¶¡¼ÆþÎϤ«¤éºî¤é¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -¤½¤ÎÃæ¤Ë \fB%n\fP ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤³¤È¤¬¤¢¤ê¡¢ +が信頼できないユーザー入力から作られている場合には、 +その中に \fB%n\fP が含まれていることがあり、 .BR printf () -¸Æ¤Ó½Ð¤·»þ¤Ë¥á¥â¥ê¤Ø¤Î½ñ¤­¹þ¤ß¤¬µ¯¤³¤ê¡¢ -¥»¥­¥å¥ê¥Æ¥£¡¼¥Û¡¼¥ë¤òºî¤ë¤³¤È¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +呼び出し時にメモリへの書き込みが起こり、 +セキュリティーホールを作ることになるかもしれない。 .\".PP .\".\"O Some floating-point conversions under early libc4 .\".\"O caused memory leaks. -.\"½é´ü¤Î libc4 ¤Ç¤Î¼Â¿ôÊÑ´¹¤Ë¤Ï¥á¥â¥ê¥ê¡¼¥¯¤ò°ú¤­µ¯¤³¤¹¤³¤È¤¬¤¢¤ë¡£ +.\"初期の libc4 での実数変換にはメモリリークを引き起こすことがある。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .if \w'\*(Pi'=0 .ds Pi pi .\"O To print \*(Pi to five decimal places: -\*(Pi ¤ò 5 ·å¤Ç½ÐÎϤ¹¤ë¡£ +\*(Pi を 5 桁で出力する。 .in +4n .nf @@ -1751,11 +1751,11 @@ fprintf(stdout, "pi = %.5f\en", 4 * atan(1.0)); .\"O and .\"O .I month .\"O are pointers to strings: -ÆüÉդȻþ´Ö¤ò "Sunday, July 3, 10:02" ¤Î·Á¼°¤Ç½ÐÎϤ¹¤ë¡£ +日付と時間を "Sunday, July 3, 10:02" の形式で出力する。 .RI ( weekday -¤È +と .I month -¤Ïʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë) +は文字列へのポインタである) .in +4n .nf @@ -1768,9 +1768,9 @@ fprintf(stdout, "%s, %s %d, %.2d:%.2d\en", .\"O Many countries use the day-month-year order. .\"O Hence, an internationalized version must be able to print .\"O the arguments in an order specified by the format: -Æü - ·î - ǯ ¤Î½ç½ø¤Çɽ¼¨¤ò¹Ô¤¦¹ñ¤â¿¤¤¡£ -½¾¤Ã¤Æ¡¢¹ñºÝÈǤǤϽñ¼°¤Ç»ØÄꤵ¤ì¤¿½çÈÖ¤Ç -°ú¤­¿ô¤òɽ¼¨¤Ç¤­¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +日 - 月 - å¹´ の順序で表示を行う国も多い。 +従って、国際版では書式で指定された順番で +引き数を表示できなければならない。 .in +4n .nf @@ -1785,9 +1785,9 @@ fprintf(stdout, format, .\"O depends on locale, and may permute the arguments. .\"O With the value: .I format -¤Ï¥í¥±¡¼¥ë¤Ë°Í¸¤·¤Æ¤ª¤ê¡¢°ú¤­¿ô¤Î½çÈÖ¤òÊѤ¨¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +はロケールに依存しており、引き数の順番を変えることもできる。 .I format -¤¬ +が .in +4n .nf @@ -1796,12 +1796,12 @@ fprintf(stdout, format, .fi .in .\"O one might obtain "Sonntag, 3. Juli, 10:02". -¤Ç¤¢¤ì¤Ð¡¢ "Sonntag, 3. Juli, 10:02" ¤È¤¤¤¦·ë²Ì¤Ë¤Ê¤ë¡£ +であれば、 "Sonntag, 3. Juli, 10:02" という結果になる。 .PP .\"O To allocate a sufficiently large string and print into it .\"O (code correct for both glibc 2.0 and glibc 2.1): -½½Ê¬¤ËÂ礭¤Êʸ»úÎóÎΰè¤ò³ÎÊݤ·¤Æ¡¢¤½¤³¤Ë¥á¥Ã¥»¡¼¥¸¤ò³ÊǼ¤¹¤ë¤Ë¤Ï -(glibc 2.0 ¤È glibc 2.1 ¤ÎξÊý¤ÇÀµ¤·¤¯Æ°ºî¤¹¤ë¥³¡¼¥É): +十分に大きな文字列領域を確保して、そこにメッセージを格納するには +(glibc 2.0 と glibc 2.1 の両方で正しく動作するコード): .nf #include @@ -1848,7 +1848,7 @@ make_message(const char *fmt, ...) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR printf (1), .BR asprintf (3), .BR dprintf (3), diff --git a/draft/man3/profil.3 b/draft/man3/profil.3 index 4819f0a0..d633aa22 100644 --- a/draft/man3/profil.3 +++ b/draft/man3/profil.3 @@ -35,23 +35,23 @@ .\" Updated & Modified Thu Feb 17 00:57:49 JST 2005 .\" by Yuichi SATO .\" -.\"WORD: profile ¥×¥í¥Õ¥¡¥¤¥ë -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: implement ¼ÂÁõ -.\"WORD: library ¥é¥¤¥Ö¥é¥ê -.\"WORD: core ¥á¥â¥ê -.\"WORD: virtual ²¾ÁÛ -.\"WORD: word ¥ï¡¼¥É -.\"WORD: increment ¥¤¥ó¥¯¥ê¥á¥ó¥È -.\"WORD: core dump ¥³¥¢¡¦¥À¥ó¥× +.\"WORD: profile プロファイル +.\"WORD: kernel カーネル +.\"WORD: implement 実装 +.\"WORD: library ライブラリ +.\"WORD: core メモリ +.\"WORD: virtual 仮想 +.\"WORD: word ワード +.\"WORD: increment インクリメント +.\"WORD: core dump コア・ダンプ .\" .TH PROFIL 3 2007-07-26 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O profil \- execution time profile -profil \- ¼Â¹Ô»þ´Ö¥×¥í¥Õ¥¡¥¤¥ë (profile) +profil \- 実行時間プロファイル (profile) .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int profil(unsigned short *" buf ", size_t " bufsiz \ @@ -60,15 +60,15 @@ profil \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR profil (): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This routine provides a means to find out in what areas your program .\"O spends most of its time. .\"O The argument @@ -78,65 +78,65 @@ _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) .\"O bytes of core. .\"O Every virtual 10 milliseconds, the user's program counter (PC) .\"O is examined: -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥×¥í¥°¥é¥à¤Î¤É¤³¤ÎÉôʬ¤Ç»þ´Ö¤òÈñ¤ä¤·¤Æ¤¤¤ë¤«¤òÄ´¤Ù¤ë -¼êÃʤòÄ󶡤¹¤ë¡£°ú¤­¿ô +このルーティンはプログラムのどこの部分で時間を費やしているかを調べる +手段を提供する。引き数 .I buf -¤Ï +は .I bufsiz -¥Ð¥¤¥È¤Î¥á¥â¥ê¤ò»Ø¤·¤Æ¤¤¤ë¡£²¾ÁۤΠ10 ¥ß¥êÉ䴤Ȥˡ¢¥æ¡¼¥¶¡¼¤Î -¥×¥í¥°¥é¥à¡¦¥«¥¦¥ó¥¿¡¼ (PC) ¤¬¸¡ºº¤µ¤ì¤ë: +バイトのメモリを指している。仮想の 10 ミリ秒ごとに、ユーザーの +プログラム・カウンター (PC) が検査される: .\"O .I offset .\"O is subtracted and the result is multiplied by .\"O .I scale .\"O and divided by 65536. .I offset -¤¬°ú¤«¤ì¡¢¤½¤Î·ë²Ì¤¬ +が引かれ、その結果が .I scale -Çܤµ¤ì 65536 ¤Ç³ä¤é¤ì¤ë¡£ +倍され 65536 で割られる。 .\"O If the resulting value is less than .\"O .IR bufsiz , .\"O then the corresponding entry in .\"O .I buf .\"O is incremented. -·ë²Ì¤¬ +結果が .I bufsiz -¤è¤ê¾®¤µ¤¤¾ì¹ç¤Ï +より小さい場合は .I buf -¤ÎÂбþ¤¹¤ë¥¨¥ó¥È¥ê¤¬¥¤¥ó¥¯¥ê¥á¥ó¥È¤µ¤ì¤ë¡£ +の対応するエントリがインクリメントされる。 .\"O If .\"O .I buf .\"O is NULL, profiling is disabled. .I buf -¤¬ NULL ¤Ê¤é¤Ð¡¢¥×¥í¥Õ¥¡¥¤¥ë (profile) ¤Ï̵¸ú¤Ë¤µ¤ì¤ë¡£ +が NULL ならば、プロファイル (profile) は無効にされる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O Zero is always returned. -¾ï¤Ë 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +常に 0 が返される。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O Similar to a call in SVr4 (but not POSIX.1-2001). -SVr4 ¤Î¥³¡¼¥ë¤Ë»÷¤Æ¤¤¤ë (¤·¤«¤· POSIX.1-2001 ¤Ç¤Ï¤Ê¤¤)¡£ +SVr4 のコールに似ている (しかし POSIX.1-2001 ではない)。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O .BR profil () .\"O cannot be used on a program that also uses .\"O .B ITIMER_PROF .\"O interval timers (see .\"O .BR setitimer (2)). .BR profil () -¤Ï +は .B ITIMER_PROF -¥¤¥ó¥¿¡¼¥Ð¥ë¡¦¥¿¥¤¥Þ¡¼¤â»ÈÍѤ·¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤǤ­¤Ê¤¤ +インターバル・タイマーも使用しているプログラムでは使用できない .RB ( setitimer (2) -»²¾È)¡£ +参照)。 .\"O True kernel profiling provides more accurate results. .\"O Libc 4.4 contained a kernel patch providing a system call profil. -ËÜÅö¤Î¥«¡¼¥Í¥ë¡¦¥×¥í¥Õ¥¡¥¤¥ë¤Ï¤è¤êÀµ³Î¤Ê·ë²Ì¤òÍ¿¤¨¤ë¡£ -libc 4.4 ¤Ë¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë profil ¤òÄ󶡤¹¤ë¤¿¤á¤Î -¥«¡¼¥Í¥ë¥Ñ¥Ã¥Á¤¬´Þ¤Þ¤ì¤Æ¤¤¤¿¡£ +本当のカーネル・プロファイルはより正確な結果を与える。 +libc 4.4 にはシステムコール profil を提供するための +カーネルパッチが含まれていた。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR gprof (1), .BR setitimer (2), .BR sigaction (2), diff --git a/draft/man3/program_invocation_name.3 b/draft/man3/program_invocation_name.3 index a166803f..673d7dac 100644 --- a/draft/man3/program_invocation_name.3 +++ b/draft/man3/program_invocation_name.3 @@ -24,23 +24,23 @@ .\" .TH INVOCATION_NAME 3 2006-04-29 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O program_invocation_name, program_invocation_short_name \- \ .\"O obtain name used to invoke calling program program_invocation_name, program_invocation_short_name \- \ -¥×¥í¥°¥é¥à¤Îµ¯Æ°¤Ë»È¤ï¤ì¤¿Ì¾Á°¤ò¼èÆÀ¤¹¤ë +プログラムの起動に使われた名前を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .BI "extern char *" program_invocation_name ; .BI "extern char *" program_invocation_short_name ; .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .I program_invocation_name .\"O contains the name that was used to invoke the calling program. .\"O This is the same as the value of @@ -51,14 +51,14 @@ program_invocation_name, program_invocation_short_name \- \ .\"O .I program_invocation_name .\"O is global. .I program_invocation_name -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥°¥é¥à¤Îµ¯Æ°¤Ë»ÈÍѤµ¤ì¤¿Ì¾Á°¤òÊÝ»ý¤¹¤ë¡£ -ÆâÍÆ¤Ï +は、呼び出し元プログラムの起動に使用された名前を保持する。 +内容は .IR main () -¤Î +の .I argv[0] -¤ÎÃͤÈƱ¤¸¤À¤¬¡¢ +の値と同じだが、 .I program_invocation_name -¤ÎÊý¤Ï¥¹¥³¡¼¥×¤¬¥°¥í¡¼¥Ð¥ë¤Ç¤¢¤ëÅÀ¤¬°Û¤Ê¤ë¡£ +の方はスコープがグローバルである点が異なる。 .\"O .I program_invocation_short_name .\"O contains the basename component of name that was used to invoke @@ -67,30 +67,30 @@ program_invocation_name, program_invocation_short_name \- \ .\"O .IR program_invocation_name , .\"O with all text up to and including the final slash (/), if any, removed. .I program_invocation_short_name -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥°¥é¥à¤Îµ¯Æ°¤Ë»ÈÍѤµ¤ì¤¿Ì¾Á°¤Î basename Éôʬ¤ò -ÊÝ»ý¤¹¤ë¡£¤Ä¤Þ¤ê¡¢¤³¤ÎÊÑ¿ô¤ÎÆâÍƤϡ¢ºÇ¸å¤Î¥¹¥é¥Ã¥·¥å (/) ¤È¤½¤ì¤è¤êÁ°¤Î -Éôʬ¤¬¤¢¤ë¾ì¹ç¡¢ +は、呼び出し元プログラムの起動に使用された名前の basename 部分を +保持する。つまり、この変数の内容は、最後のスラッシュ (/) とそれより前の +部分がある場合、 .I program_invocation_name -¤«¤é¤³¤ÎÉôʬ¤òºï½ü¤·¤¿¤â¤Î¤È¤Ê¤ë¡£ +からこの部分を削除したものとなる。 .\"O These variables are automatically initialized by the glibc run-time .\"O startup code. -¤³¤ì¤é¤ÎÊÑ¿ô¤Ï glibc ¤Î¥é¥ó¥¿¥¤¥à¡¦¥¹¥¿¡¼¥È¥¢¥Ã¥×¡¦¥³¡¼¥É¤Ç -¼«Æ°Åª¤Ë½é´ü²½¤µ¤ì¤ë¡£ +これらの変数は glibc のランタイム・スタートアップ・コードで +自動的に初期化される。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These variables are GNU extensions, and should not be .\"O used in programs intended to be portable. -¤³¤ì¤é¤ÎÊÑ¿ô¤Ï GNU ¤Î³ÈÄ¥¤Ç¤¢¤ê¡¢ -°Ü¿¢À­¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ¹¤Ù¤­¤Ç¤Ê¤¤¡£ +これらの変数は GNU の拡張であり、 +移植性が必要なプログラムでは使用すべきでない。 .\"O .SH NOTES -.SH È÷¹Í +.SH 備考 .\"O The Linux-specific .\"O .I /proc/[number]/cmdline .\"O file provides access to similar information. -Linux Æȼ«¤Î¥Õ¥¡¥¤¥ë +Linux 独自のファイル .I /proc/[number]/cmdline -¤Ç¤âƱÍͤξðÊó¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +でも同様の情報を得ることができる。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR proc (5) diff --git a/draft/man3/psignal.3 b/draft/man3/psignal.3 index b28ca2a8..edee16db 100644 --- a/draft/man3/psignal.3 +++ b/draft/man3/psignal.3 @@ -35,11 +35,11 @@ .\" .TH PSIGNAL 3 2008-08-21 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O psignal \- print signal message -psignal \- ¥·¥°¥Ê¥ë¥á¥Ã¥»¡¼¥¸¤òɽ¼¨ +psignal \- シグナルメッセージを表示 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -51,9 +51,9 @@ psignal \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR psignal (): @@ -62,7 +62,7 @@ _SVID_SOURCE || _BSD_SOURCE .IR sys_siglist : _BSD_SOURCE \"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR psignal () .\"O function displays a message on \fIstderr\fP @@ -71,26 +71,26 @@ _BSD_SOURCE .\"O If \fIsig\fP is invalid, .\"O the message displayed will indicate an unknown signal. .BR psignal () -´Ø¿ô¤Ï¡¢Ê¸»úÎó \fIs\fP¡¢¥³¥í¥ó¡¢¥¹¥Ú¡¼¥¹¡¢ -¥·¥°¥Ê¥ëÈÖ¹æ \fIsig\fP ¤òÀâÌÀ¤¹¤ëʸ»úÎ󤫤鹽À®¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¤ò -\fIstderr\fP ¤Ëɽ¼¨¤¹¤ë¡£¤â¤· \fIsig\fP ¤¬ÉÔÀµ¤Ê¤é¤Ð¡¢É½¼¨¤µ¤ì¤ë -¥á¥Ã¥»¡¼¥¸¤Ï̤ÃΤΥ·¥°¥Ê¥ë¤ò¼¨¤¹¡£ +関数は、文字列 \fIs\fP、コロン、スペース、 +シグナル番号 \fIsig\fP を説明する文字列から構成されるメッセージを +\fIstderr\fP に表示する。もし \fIsig\fP が不正ならば、表示される +メッセージは未知のシグナルを示す。 .PP .\"O The array \fIsys_siglist\fP holds the signal description strings .\"O indexed by signal number. -ÇÛÎó \fIsys_siglist\fP ¤Ï¥·¥°¥Ê¥ë¤òÀâÌÀ¤¹¤ëʸ»úÎó¤òÊÝ»ý¤·¤Æ¤ª¤ê¡¢ -ÇÛÎó¤Ø¤Î¥¢¥¯¥»¥¹¤Ë¤Ï¥·¥°¥Ê¥ëÈÖ¹æ¤òź¤¨»ú¤È¤·¤ÆÍѤ¤¤ë»ö¤¬¤Ç¤­¤ë¡£ +配列 \fIsys_siglist\fP はシグナルを説明する文字列を保持しており、 +配列へのアクセスにはシグナル番号を添え字として用いる事ができる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR psignal () .\"O function returns no value. .BR psignal () -´Ø¿ô¤Ï¡¢ÃͤòÊÖ¤µ¤Ê¤¤¡£ +関数は、値を返さない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008, 4.3BSD. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR perror (3), .BR strsignal (3) diff --git a/draft/man3/ptsname.3 b/draft/man3/ptsname.3 index 91374924..a4afb67b 100644 --- a/draft/man3/ptsname.3 +++ b/draft/man3/ptsname.3 @@ -8,42 +8,42 @@ .\" Translated 2003-07-08, Akihiro MOTOKI .\" Updated 2005-02-27, Akihiro MOTOKI .\" -.\"WORD: pseudoterminal µ¼»÷üËö +.\"WORD: pseudoterminal 擬似端末 .\" .TH PTSNAME 3 2008-09-03 "" "Linux Programmer's Manual" .\"O .SH NAME .\"O ptsname, ptsname_r \- get the name of the slave pseudoterminal -.SH ̾Á° -ptsname, ptsname_r \- ¥¹¥ì¡¼¥Öµ¼»÷üËö¤Î̾Á°¤ò¼èÆÀ¤¹¤ë +.SH 名前 +ptsname, ptsname_r \- スレーブ擬似端末の名前を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _XOPEN_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "char *ptsname(int " fd ");" .sp .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "int ptsname_r(int " fd ", char *" buf ", size_t " buflen ");" .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR ptsname () .\"O function returns the name of the slave pseudoterminal device .\"O corresponding to the master referred to by .\"O .IR fd . .BR ptsname () -´Ø¿ô¤Ï +関数は .I fd -¤Ç»²¾È¤µ¤ì¤ë¥Þ¥¹¥¿µ¼»÷üËö (pts) ¥Ç¥Ð¥¤¥¹¤ËÂбþ¤¹¤ë -¥¹¥ì¡¼¥Öµ¼»÷üËö¥Ç¥Ð¥¤¥¹¤Î̾Á°¤òÊÖ¤¹¡£ +で参照されるマスタ擬似端末 (pts) デバイスに対応する +スレーブ擬似端末デバイスの名前を返す。 .\"O The .\"O .BR ptsname_r () @@ -57,33 +57,33 @@ ptsname, ptsname_r \- .\"O argument specifies the number of bytes available in .\"O .IR buf . .BR ptsname_r () -´Ø¿ô¤Ï +関数は .BR ptsname () -¤Î¥ê¥¨¥ó¥È¥é¥ó¥È¤Ê¥Ð¡¼¥¸¥ç¥ó¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢¥¹¥ì¡¼¥Öµ¿»÷üËö¥Ç¥Ð¥¤¥¹¤Î̾Á°¤ò¡¢ -NULL ¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Î·Á¤Ç +のリエントラントなバージョンである。 +この関数は、スレーブ疑似端末デバイスの名前を、 +NULL で終端された文字列の形で .I buf -¤Ç»ØÄꤵ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ +で指定されたバッファに格納して返す。 .I buflen -°ú¤­¿ô¤Ë¤Ï +引き数には .I buf -¤Î¥Ð¥¤¥È¿ô¤ò»ØÄꤹ¤ë¡£ +のバイト数を指定する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR ptsname () .\"O returns a pointer to a string in static storage which will be .\"O overwritten by subsequent calls. .\"O This pointer must not be freed. .\"O On failure, a NULL pointer is returned. -À®¸ù¤Î¾ì¹ç¡¢ +成功の場合、 .BR ptsname () -¤ÏÀÅŪµ­²±Îΰè¤Îʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤Îµ­²±Îΰè¤Ï¤³¤Î¸å¤Î +は静的記憶領域の文字列へのポインタを返す。 +この記憶領域はこの後の .BR ptsname () -¤Î¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë¡£ -¤³¤Î¥Ý¥¤¥ó¥¿¤ò free ¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï NULL ¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +の呼び出しで上書きされる。 +このポインタを free してはいけない。 +エラーの場合は NULL ポインタを返す。 .\"O On success, .\"O .BR ptsname_r () @@ -94,15 +94,15 @@ NULL .\"O is set to indicate the error. .\"O .\" In fact the errno value is also returned as the function .\"O .\" result -- MTK, Dec 04 -À®¸ù¤Î¾ì¹ç¡¢ +成功の場合、 .BR ptsname_r () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢0 °Ê³°¤ÎÃͤòÊÖ¤·¡¢ +は 0 を返す。 +エラーの場合、0 以外の値を返し、 .I errno -¤ò¥¨¥é¡¼¤ò¼¨¤¹ÃͤËÀßÄꤹ¤ë¡£ -.\" ¼ÂºÝ¤Ë¤Ï¡¢errno ¤ÎÃͤ¬´Ø¿ô¤Î·ë²Ì¤ÎÊÖ¤êÃͤȤ·¤Æ¤âÊÖ¤µ¤ì¤ë¡£-- MTK, Dec 04 +をエラーを示す値に設定する。 +.\" 実際には、errno の値が関数の結果の返り値としても返される。-- MTK, Dec 04 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O .RB ( ptsname_r () @@ -110,15 +110,15 @@ NULL .\"O .I buf .\"O is NULL. .RB ( ptsname_r () -¤Î¤ß) +のみ) .I buf -¤¬ NULL ¤Ç¤¢¤ë¡£ +が NULL である。 .TP .B ENOTTY .\"O .I fd .\"O does not refer to a pseudoterminal master device. .I fd -¤¬¥Þ¥¹¥¿µ¿»÷üËö¥Ç¥Ð¥¤¥¹¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£ +がマスタ疑似端末デバイスを参照していない。 .TP .B ERANGE .\"O .RB ( ptsname_r () @@ -126,25 +126,25 @@ NULL .\"O .I buf .\"O is too small. .RB ( ptsname_r () -¤Î¤ß) +のみ) .I buf -¤¬¾®¤µ¤¹¤®¤ë¡£ +が小さすぎる。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR ptsname () .\"O is provided in glibc since version 2.1. .BR ptsname () -¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +は、バージョン 2.1 以降の glibc で提供されている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR ptsname () .\"O is part of the UNIX 98 pseudoterminal support (see .\"O .BR pts (4)). .\"O This function is specified in POSIX.1-2001. .BR ptsname () -¤Ï UNIX 98 µ¿»÷üËö»ÅÍͤΰìÉô¤Ç¤¢¤ë +は UNIX 98 疑似端末仕様の一部である .RB ( pts (4) -¤ò»²¾È¤Î¤³¤È)¡£¤³¤Î´Ø¿ô¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +を参照のこと)。この関数は POSIX.1-2001 で規定されている。 .\"O .BR ptsname_r () .\"O is a Linux extension. @@ -154,14 +154,14 @@ NULL .\"O set to indicate the error. .\"O Avoid using this function in portable programs. .BR ptsname_r () -¤Ï Linux ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ë¤Ä¤¤¤Æ¤Îµ­ºÜ¤¬¤¢¤ë¤â¤Î¤È¤·¤Æ Tru64 ¤È HP-UX ¤¬¤¢¤ë¤¬¡¢ -¤³¤ì¤é¤Î OS ¤Ç¤Î¼ÂÁõ¤Ç¤Ï¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤·¡¢ +は Linux による拡張である。 +この関数についての記載があるものとして Tru64 と HP-UX があるが、 +これらの OS での実装ではエラーの場合 \-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -°Ü¿¢¤ò¹Íθ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Î´Ø¿ô¤Î»ÈÍѤÏÈò¤±¤ë¤³¤È¡£ +にエラーを示す値を設定する。 +移植を考慮したプログラムではこの関数の使用は避けること。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR grantpt (3), .BR posix_openpt (3), .BR ttyname (3), diff --git a/draft/man3/putenv.3 b/draft/man3/putenv.3 index a3a71596..e0d85da7 100644 --- a/draft/man3/putenv.3 +++ b/draft/man3/putenv.3 @@ -40,11 +40,11 @@ .\" .TH PUTENV 3 2007-07-26 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O putenv \- change or add an environment variable -putenv \- ´Ä¶­ÊÑ¿ô¤ÎÊѹ¹¤Þ¤¿¤ÏÄɲà +putenv \- 環境変数の変更または追加 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -55,69 +55,69 @@ putenv \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR putenv (): _SVID_SOURCE || _XOPEN_SOURCE \"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR putenv () .\"O function adds or changes the value of environment .\"O variables. .\"O The argument \fIstring\fP is of the form \fIname\fP=\fIvalue\fP. .BR putenv () -´Ø¿ô¤Ï¡¢´Ä¶­ÊÑ¿ô¤ÎÄɲäޤ¿¤ÏÃͤÎÊѹ¹¤ò¹Ô¤¦¡£ -°ú¿ô \fIstring\fP ¤Ï \fIname\fP=\fIvalue\fP ¤È¤¤¤¦·Á¼°¤ò¼è¤ë¡£ +関数は、環境変数の追加または値の変更を行う。 +引数 \fIstring\fP は \fIname\fP=\fIvalue\fP という形式を取る。 .\"O If \fIname\fP does not already exist in the environment, then .\"O \fIstring\fP is added to the environment. .\"O If \fIname\fP does exist, .\"O then the value of \fIname\fP in the environment is changed to .\"O \fIvalue\fP. -\fIname\fP ¤¬´Ä¶­¤Ë¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï \fIstring\fP ¤¬´Ä¶­¤ËÄɲ䵤ì¤ë¡£ -\fIname\fP ¤¬´Ä¶­¤Ë¸ºß¤¹¤ë¾ì¹ç¤Ï \fIname\fP ¤ÎÃÍ¤Ï \fIvalue\fP ¤ËÊѹ¹¤µ¤ì¤ë¡£ +\fIname\fP が環境に存在しない場合は \fIstring\fP が環境に追加される。 +\fIname\fP が環境に存在する場合は \fIname\fP の値は \fIvalue\fP に変更される。 .\"O The string pointed to by \fIstring\fP becomes part of the environment, .\"O so altering the string changes the environment. -\fIstring\fP ¤¬»Ø¤·¤Æ¤¤¤ëʸ»úÎó¤Ï´Ä¶­¤Î°ìÉô¤È¤Ê¤ë¤Î¤Ç¡¢ -ʸ»úÎó¤òÊѹ¹¤¹¤ë¤È´Ä¶­¤âÊѹ¹¤µ¤ì¤ë¡£ +\fIstring\fP が指している文字列は環境の一部となるので、 +文字列を変更すると環境も変更される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR putenv () .\"O function returns zero on success, .\"O or nonzero if an error occurs. .BR putenv () -´Ø¿ô¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç 0 ¤ò¡¢ -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç 0 °Ê³°¤òÊÖ¤¹¡£ +関数は、成功した場合 0 を、 +エラーが発生した場合 0 以外を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B ENOMEM .\"O Insufficient space to allocate new environment. -¿·¤·¤¤´Ä¶­¤ò³ä¤êÅö¤Æ¤ë¤Î¤Ë½½Ê¬¤Ê¶õ¤­¤¬¤Ê¤¤¡£ -.SH ½àµò +新しい環境を割り当てるのに十分な空きがない。 +.SH 準拠 SVr4, POSIX.1-2001, 4.3BSD. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The .\"O .BR putenv () .\"O function is not required to be reentrant, and the .\"O one in libc4, libc5 and glibc 2.0 is not, but the glibc 2.1 version is. .BR putenv () -¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤¢¤ë¤³¤È¤òµá¤á¤é¤ì¤Æ¤¤¤Ê¤¤¡£ -libc4, libc5, glibc 2.0 ¤Ç¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤Ï¤Ê¤¤¡£ -glibc 2.1 ¤Ç¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤¢¤ë¡£ +はリエントラントであることを求められていない。 +libc4, libc5, glibc 2.0 ではリエントラントではない。 +glibc 2.1 ではリエントラントである。 .LP .\"O Description for libc4, libc5, glibc: -libc4, libc5, glibc ¤Ë´Ø¤¹¤ëÀâÌÀ: +libc4, libc5, glibc に関する説明: .\"O If the argument \fIstring\fP is of the form \fIname\fP, .\"O and does not contain an \(aq=\(aq character, then the variable \fIname\fP .\"O is removed from the environment. -¤â¤·°ú¿ô \fIstring\fP ¤¬ \fIname\fP ñÆȤǡ¢ -\(aq=\(aq ʸ»ú¤ò´Þ¤ó¤Ç¤¤¤Ê¤¤¾ì¹ç¡¢´Ä¶­ÊÑ¿ô \fIname\fP ¤Ï´Ä¶­¤«¤é½üµî¤µ¤ì¤ë¡£ +もし引数 \fIstring\fP が \fIname\fP 単独で、 +\(aq=\(aq 文字を含んでいない場合、環境変数 \fIname\fP は環境から除去される。 .\"O If .\"O .BR putenv () .\"O has to allocate a new array \fIenviron\fP, @@ -126,49 +126,49 @@ libc4, libc5, glibc .\"O then it will be freed. .\"O In no case will the old storage associated .\"O to the environment variable itself be freed. -¤â¤· +もし .BR putenv () -¤¬¿·¤·¤¤ \fIenviron\fP ÇÛÎó¤ò³ÎÊݤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤»þ¡¢ -°ÊÁ°¤Î \fIenviron\fP ÇÛÎó¤â +が新しい \fIenviron\fP 配列を確保しなければならない時、 +以前の \fIenviron\fP 配列も .BR putenv () -¤Ë¤è¤Ã¤Æ³ÎÊݤµ¤ì¤¿¤â¤Î¤Ê¤é¤Ð¡¢ -¤½¤ì¤Ï²òÊü¤µ¤ì¤ë¡£ -´Ä¶­ÊÑ¿ô¤½¤Î¤â¤Î¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¸Å¤¤µ­²±Îΰ褬²òÊü¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ +によって確保されたものならば、 +それは解放される。 +環境変数そのものに割り当てられた古い記憶領域が解放されることはない。 .LP .\"O The libc4 and libc5 and glibc 2.1.2 versions conform to SUSv2: .\"O the pointer \fIstring\fP given to .\"O .BR putenv () .\"O is used. -libc4 ¤È libc5 ¤È glibc 2.1.2 ¤Ç¤Ï SUSv2 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +libc4 と libc5 と glibc 2.1.2 では SUSv2 に準拠している。 .BR putenv () -¤ÇÍ¿¤¨¤é¤ì¤¿¥Ý¥¤¥ó¥¿ \fIstring\fP ¤¬»È¤ï¤ì¤ë¡£ +で与えられたポインタ \fIstring\fP が使われる。 .\"O In particular, this string becomes part of the environment; .\"O changing it later will change the environment. -¤³¤Îʸ»úÎó¤Ï´Ä¶­¤Î°ìÉô¤È¤Ê¤ê¡¢¸å¤ÇÊѹ¹¤¹¤ë¤È´Ä¶­¤âÊѤï¤ë¡£ +この文字列は環境の一部となり、後で変更すると環境も変わる。 .\"O (Thus, it is an error is to call .\"O .BR putenv () .\"O with an automatic variable .\"O as the argument, then return from the calling function while \fIstring\fP .\"O is still part of the environment.) -(½¾¤Ã¤Æ¡¢ +(従って、 .BR putenv () -¤ò¼«Æ°ÊÑ¿ô¤ò°ú¿ô¤È¤·¤Æ¸Æ¤Ó½Ð¤·¡¢ -\fIstring\fP¤¬´Ä¶­¤Î°ìÉô¤Î¤Þ¤Þ¤Ç¸Æ¤Ó½Ð¤·¤¿´Ø¿ô¤«¤é return ¤¹¤ë¤È¥¨¥é¡¼¤Ë¤Ê¤ë) +を自動変数を引数として呼び出し、 +\fIstring\fPが環境の一部のままで呼び出した関数から return するとエラーになる) .\"O However, glibc 2.0-2.1.1 differs: a copy of the string is used. .\"O On the one hand this causes a memory leak, and on the other hand .\"O it violates SUSv2. .\"O This has been fixed in glibc2.1.2. -¤·¤«¤·¡¢glibc 2.0-2.1.1 ¤Ç¤Ï°Û¤Ê¤ê¡¢Ê¸»úÎó¤Î¥³¥Ô¡¼¤¬»È¤ï¤ì¤ë¡£ -¤³¤ì¤Ï¥á¥â¥ê¥ê¡¼¥¯¤ò°ú¤­µ¯¤³¤¹¤À¤±¤Ç¤Ê¤¯¡¢ SUSv2 ¤Ë°ãÈ¿¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï glibc2.1.2 ¤Ç½¤Àµ¤µ¤ì¤¿¡£ +しかし、glibc 2.0-2.1.1 では異なり、文字列のコピーが使われる。 +これはメモリリークを引き起こすだけでなく、 SUSv2 に違反している。 +これは glibc2.1.2 で修正された。 .LP .\"O The 4.4BSD version, like glibc 2.0, uses a copy. -4.4BSD ¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢glibc 2.0 ¤ÈƱÍͤ˥³¥Ô¡¼¤ò»È¤¦¡£ +4.4BSD バージョンでは、glibc 2.0 と同様にコピーを使う。 .LP .\"O SUSv2 removes the \fIconst\fP from the prototype, and so does glibc 2.1.3. -SUSv2 ¤Ç¤Ï¥×¥í¥È¥¿¥¤¥×¤«¤é \fIconst\fP ¤¬¼è¤ê½ü¤«¤ì¤Æ¤ª¤ê¡¢ -glibc 2.1.3 ¤â¤½¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +SUSv2 ではプロトタイプから \fIconst\fP が取り除かれており、 +glibc 2.1.3 もそのようになっている。 +.SH 関連項目 .BR clearenv (3), .BR getenv (3), .BR setenv (3), diff --git a/draft/man3/putgrent.3 b/draft/man3/putgrent.3 index 0dcdf67e..9aa6aa2b 100644 --- a/draft/man3/putgrent.3 +++ b/draft/man3/putgrent.3 @@ -8,39 +8,39 @@ .\" .TH PUTGRENT 3 2003-09-09 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O putgrent \- write a group database entry to a file -putgrent \- ¥°¥ë¡¼¥×¥Ç¡¼¥¿¥Ù¡¼¥¹¥¨¥ó¥È¥ê¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤à +putgrent \- グループデータベースエントリをファイルに書き込む .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "int putgrent(const struct group *" grp ", FILE *" fp ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR putgrent () .\"O function is the counterpart for .\"O .BR fgetgrent (3). .BR putgrent () -´Ø¿ô¤Ï +関数は .BR fgetgrent (3) -¤ÎµÕ¤Ç¤¢¤ë¡£ +の逆である。 .\"O The function writes the content of the provided \fIstruct group\fP into the .\"O file pointed to by .\"O .IR fp . -¤³¤Î´Ø¿ô¤ÏÍ¿¤¨¤é¤ì¤¿ \fIstruct group\fP ¤ò +この関数は与えられた \fIstruct group\fP を .I fp -¤Ç»Ø¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤à¡£ +で指されるファイルに書き込む。 .\"O The list of group members must be NULL-terminated or NULL-initialized. -¥°¥ë¡¼¥×¥á¥ó¥Ð¤Î¥ê¥¹¥È¤Ï¡¢NULL ¤Ç½ªÃ¼¤µ¤ì¤ë¤«¡¢ -NULL ¤Ç½é´ü²½¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +グループメンバのリストは、NULL で終端されるか、 +NULL で初期化されなければならない。 .sp .\"O The \fIstruct group\fP is defined as follows: -\fIstruct group\fP ¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë: +\fIstruct group\fP は以下のように定義される: .sp .in +4n .nf @@ -49,23 +49,23 @@ struct group { .\"O char *gr_passwd; /* group password */ .\"O gid_t gr_gid; /* group ID */ .\"O char **gr_mem; /* group members */ - char *gr_name; /* ¥°¥ë¡¼¥×̾ */ - char *gr_passwd; /* ¥°¥ë¡¼¥×¥Ñ¥¹¥ï¡¼¥É */ - gid_t gr_gid; /* ¥°¥ë¡¼¥× ID */ - char **gr_mem; /* ¥°¥ë¡¼¥×¥á¥ó¥Ð */ + char *gr_name; /* グループ名 */ + char *gr_passwd; /* グループパスワード */ + gid_t gr_gid; /* グループ ID */ + char **gr_mem; /* グループメンバ */ }; .fi .in .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The function returns zero on success, and a nonzero value on error. -¤³¤Î´Ø¿ô¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤·¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ï 0 °Ê³°¤ÎÃͤòÊÖ¤¹¡£ +この関数は、成功した場合は 0 を返し、エラーの場合は 0 以外の値を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This function is a GNU extension. -¤³¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ +この関数は GNU による拡張である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fgetgrent (3), .BR getgrent (3), .BR group (5) diff --git a/draft/man3/putpwent.3 b/draft/man3/putpwent.3 index 5634c9e9..dad283f5 100644 --- a/draft/man3/putpwent.3 +++ b/draft/man3/putpwent.3 @@ -32,9 +32,9 @@ .\" by HIROFUMI Nishizuka .\" .TH PUTPWENT 3 2007-07-26 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -putpwent \- ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¥¨¥ó¥È¥ê¤Î½ñ¤­¹þ¤ß -.SH ½ñ¼° +.SH 名前 +putpwent \- パスワードファイルエントリの書き込み +.SH 書式 .nf .B #include .B #include @@ -46,20 +46,20 @@ putpwent \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR putpwent (): _SVID_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR putpwent () -´Ø¿ô¤Ï¡¢¹½Â¤ÂÎ \fIp\fP ¤«¤é¤Î¥Ñ¥¹¥ï¡¼¥É¥¨¥ó¥È¥ê¤ò -\fIstream\fP ¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤à¡£ +関数は、構造体 \fIp\fP からのパスワードエントリを +\fIstream\fP に結びつけられたファイルに書き込む。 .PP -\fIpasswd\fP ¹½Â¤ÂΤϡ¢\fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +\fIpasswd\fP 構造体は、\fI\fP で以下のように定義されている: .sp .in +4n .nf @@ -71,27 +71,27 @@ struct passwd { .\"O char *pw_gecos; /* real name */ .\"O char *pw_dir; /* home directory */ .\"O char *pw_shell; /* shell program */ - char *pw_name; /* ¥æ¡¼¥¶Ì¾ */ - char *pw_passwd; /* ¥æ¡¼¥¶¤Î¥Ñ¥¹¥ï¡¼¥É */ - uid_t pw_uid; /* ¥æ¡¼¥¶ ID */ - gid_t pw_gid; /* ¥°¥ë¡¼¥× ID */ - char *pw_gecos; /* ËÜ̾ */ - char *pw_dir; /* ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê */ - char *pw_shell; /* ¥·¥§¥ë¥×¥í¥°¥é¥à */ + char *pw_name; /* ユーザ名 */ + char *pw_passwd; /* ユーザのパスワード */ + uid_t pw_uid; /* ユーザ ID */ + gid_t pw_gid; /* グループ ID */ + char *pw_gecos; /* 本名 */ + char *pw_dir; /* ホームディレクトリ */ + char *pw_shell; /* シェルプログラム */ }; .fi .in -.SH ÊÖ¤êÃÍ +.SH 返り値 .BR putpwent () -´Ø¿ô¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤ò¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï -\-1 ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +関数は、成功した場合は 0 を、エラーが発生した場合は +\-1 を返す。 +.SH エラー .TP .B EINVAL -̵¸ú¤Ê(NULL)°ú¿ô¤¬ÅϤµ¤ì¤¿¡£ -.SH ½àµò +無効な(NULL)引数が渡された。 +.SH 準拠 SVr4. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR endpwent (3), .BR fgetpwent (3), .BR getpw (3), diff --git a/draft/man3/puts.3 b/draft/man3/puts.3 index b4826e07..c6b5d494 100644 --- a/draft/man3/puts.3 +++ b/draft/man3/puts.3 @@ -30,11 +30,11 @@ .\" .TH PUTS 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O fputc, fputs, putc, putchar, puts \- output of characters and strings -fputc, fputs, putc, putchar, puts \- ʸ»ú¤Èʸ»úÎó¤Î½ÐÎÏ +fputc, fputs, putc, putchar, puts \- 文字と文字列の出力 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -49,7 +49,7 @@ fputc, fputs, putc, putchar, puts \- ʸ .BI "int puts(const char *" "s" ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR fputc () .\"O writes the character .\"O .IR c , @@ -58,13 +58,13 @@ fputc, fputs, putc, putchar, puts \- ʸ .\"O to .\"O .IR stream . .BR fputc () -¤Ï¡¢¥­¥ã¥é¥¯¥¿ +は、キャラクタ .I c -¤ò +を .I "unsigned char" -¤Ë¥­¥ã¥¹¥È¤·¡¢ +にキャストし、 .I stream -¤Ë½ñ¤­¹þ¤à¡£ +に書き込む。 .PP .\"O .BR fputs () .\"O writes the string @@ -73,12 +73,12 @@ fputc, fputs, putc, putchar, puts \- ʸ .\"O .IR stream , .\"O without its terminating null byte (\(aq\e0\(aq). .BR fputs () -¤Ï¡¢Ê¸»úÎó +は、文字列 .I s -¤ò +を .I stream -¤Ë½ñ¤­¹þ¤à¡£ -ʸ»úÎó½ªÃ¼¤Î NULL ¥Ð¥¤¥È (\(aq\e0\(aq) ¤Ï½ÐÎϤ·¤Ê¤¤¡£ +に書き込む。 +文字列終端の NULL バイト (\(aq\e0\(aq) は出力しない。 .PP .\"O .BR putc () .\"O is equivalent to @@ -87,19 +87,19 @@ fputc, fputs, putc, putchar, puts \- ʸ .\"O .I stream .\"O more than once. .BR putc () -¤Ï¡¢ +は、 .I stream -¤ò°ìÅٰʾåɾ²Á¤¹¤ë¥Þ¥¯¥í¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤«¤âÃΤì¤Ê¤¤¤È¤¤¤¦ÅÀ¤ò½ü¤­¡¢ +を一度以上評価するマクロとして実装されているかも知れないという点を除き、 .BR fputc () -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .PP .\"O .BI "putchar(" c ); .\"O is equivalent to .\"O .BI "putc(" c , stdout ). .BI "putchar(" c ); -¤Ï¡¢ +は、 .BI "putc(" c , stdout ) -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .PP .\"O .BR puts () .\"O writes the string @@ -108,28 +108,28 @@ fputc, fputs, putc, putchar, puts \- ʸ .\"O to .\"O .IR stdout . .BR puts () -¤Ï¡¢Ê¸»úÎó +は、文字列 .I s -¤È²þ¹Ô¤ò +と改行を .I stdout -¤Ë½ñ¤­¹þ¤à¡£ +に書き込む。 .PP .\"O Calls to the functions described here can be mixed with each other and with .\"O calls to other output functions from the .\"O .I stdio .\"O library for the same output stream. -¤³¤³¤ÇÀâÌÀ¤µ¤ì¤¿´Ø¿ô¤Ï¤ª¸ß¤¤¤Ëº®ºß¤·¤Æ»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¡¢¤Þ¤¿¡¢ +ここで説明された関数はお互いに混在して使用することができ、また、 .I stdio -¥é¥¤¥Ö¥é¥ê¤Ë´Þ¤Þ¤ì¤ë¾¤Î½ÐÎÏ´Ø¿ô¤òƱ¤¸½ÐÎÏ¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ -¸Æ¤Ó½Ð¤¹»ö¤¬½ÐÍè¤ë¡£ +ライブラリに含まれる他の出力関数を同じ出力ストリームに対して +呼び出す事が出来る。 .PP .\"O For nonlocking counterparts, see .\"O .BR unlocked_stdio (3). -¤³¤ì¤é¤Î½èÍý¤ò¥í¥Ã¥¯¤»¤º¤Ë¹Ô¤¤¤¿¤¤¤È¤­¤Ï¡¢ +これらの処理をロックせずに行いたいときは、 .BR unlocked_stdio (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR fputc (), .\"O .BR putc () .\"O and @@ -144,14 +144,14 @@ fputc, fputs, putc, putchar, puts \- ʸ .BR fputc (), .BR putc (), .BR putchar () -¤Ï +は .I unsigned char -¤È¤·¤Æ½ñ¤­¹þ¤Þ¤ì¤¿Ê¸»ú¤ò +として書き込まれた文字を .I int -¤Ë¥­¥ã¥¹¥È¤·¤ÆÊÖ¤¹¡£ -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï +にキャストして返す。 +エラーが発生した場合は .B EOF -¤òÊÖ¤¹¡£ +を返す。 .PP .\"O .BR puts () .\"O and @@ -160,16 +160,16 @@ fputc, fputs, putc, putchar, puts \- ʸ .\"O .B EOF .\"O on error. .BR puts () -¤È +と .BR fputs () -¤Ï¡¢À®¸ù¤¹¤ë¤ÈÉé¤Ç¤Ï¤Ê¤¤¿ô¤ò¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï +は、成功すると負ではない数を、エラーが発生した場合は .B EOF -¤òÊÖ¤¹¡£ +を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C89, C99. .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O It is not advisable to mix calls to output functions from the .\"O .I stdio .\"O library with low-level calls to @@ -177,14 +177,14 @@ C89, C99. .\"O for the file descriptor associated with the same output stream; the results .\"O will be undefined and very probably not what you want. .I stdio -¥é¥¤¥Ö¥é¥ê¤Ë´Þ¤Þ¤ì¤ë½ÐÎÏ´Ø¿ô¤È¡¢Æ±¤¸½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤¿ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ¹¤ë +ライブラリに含まれる出力関数と、同じ出力ストリームに結びつけられた +ファイルディスクリプタに対する .BR write (2) -¤ÎÄã¥ì¥Ù¥ë¸Æ¤Ó½Ð¤·¤òº®ºß¤·¤Æ -»ÈÍѤ¹¤ë¤³¤È¤Ï¸­ÌÀ¤Ç¤Ï¤Ê¤¤¡£ -¤½¤Î·ë²Ì¤ÏÄêµÁ¤µ¤ì¤Æ¤ª¤é¤º¡¢Ë¾¤à·ë²Ì¤¬ÆÀ¤é¤ì¤Ê¤¤²ÄǽÀ­¤¬¹â¤¤¡£ +の低レベル呼び出しを混在して +使用することは賢明ではない。 +その結果は定義されておらず、望む結果が得られない可能性が高い。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR write (2), .BR ferror (3), .BR fopen (3), diff --git a/draft/man3/putwchar.3 b/draft/man3/putwchar.3 index 473b41fb..5919d3a4 100644 --- a/draft/man3/putwchar.3 +++ b/draft/man3/putwchar.3 @@ -20,18 +20,18 @@ .\" .TH PUTWCHAR 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O putwchar \- write a wide character to standard output -putwchar \- ¥ï¥¤¥Éʸ»ú¤òɸ½à½ÐÎϤؽñ¤­½Ð¤¹ +putwchar \- ワイド文字を標準出力へ書き出す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "wint_t putwchar(wchar_t " wc ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR putwchar () .\"O function is the wide-character equivalent of the @@ -45,40 +45,40 @@ putwchar \- .\"O .BR WEOF . .\"O Otherwise it returns \fIwc\fP. .BR putwchar () -´Ø¿ô¤Ï +関数は .BR putchar () -¤Î¥ï¥¤¥Éʸ»úÈǤǤ¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï \fIwc\fP ¤ò \fIstdout\fP ¤Ø¤È½ñ¤­½Ð¤¹¡£\fIferror(stdout)\fP ¤¬ -¿¿¤Ê¤é¤Ð +のワイド文字版である。 +この関数は \fIwc\fP を \fIstdout\fP へと書き出す。\fIferror(stdout)\fP が +真ならば .B WEOF -¤òÊÖ¤¹¡£¥ï¥¤¥Éʸ»ú¤ÎÊÑ´¹¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï \fIerrno\fP ¤Ë -\fBEILSEQ\fP ¤òÀßÄꤷ¤Æ +を返す。ワイド文字の変換に失敗した場合には \fIerrno\fP に +\fBEILSEQ\fP を設定して .B WEOF -¤òÊÖ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï \fIwc\fP ¤òÊÖ¤¹¡£ +を返す。それ以外の場合は \fIwc\fP を返す。 .PP .\"O For nonlocking counterparts, see .\"O .BR unlocked_stdio (3). -¤³¤ì¤é¤Î½èÍý¤ò¥í¥Ã¥¯¤»¤º¤Ë¹Ô¤¤¤¿¤¤¤È¤­¤Ï¡¢ +これらの処理をロックせずに行いたいときは、 .BR unlocked_stdio (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR putwchar () .\"O function returns \fIwc\fP if no error occurred, or .\"O .B WEOF .\"O to indicate an error. -¥¨¥é¡¼¤¬µ¯¤­¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ +エラーが起きなかった場合、 .BR putwchar () -´Ø¿ô¤Ï \fIwc\fP ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬µ¯¤­¤¿¾ì¹ç¤Ï +関数は \fIwc\fP を返す。 +エラーが起きた場合は .B WEOF -¤òÊÖ¤¹¡£ +を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR putwchar () .\"O depends on the @@ -86,18 +86,18 @@ C99. .\"O category of the .\"O current locale. .BR putwchar () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ +カテゴリに依存している。 .PP .\"O It is reasonable to expect that .\"O .BR putwchar () .\"O will actually write .\"O the multibyte sequence corresponding to the wide character \fIwc\fP. .BR putwchar () -¤¬¼ÂºÝ¤Ë¤Ï¥ï¥¤¥Éʸ»ú \fIwc\fP ¤ÈÅù²Á¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò -½ñ¤­½Ð¤¹¤³¤È¤ò´üÂÔ¤·¤Æ¤â¤è¤¤¡£ +が実際にはワイド文字 \fIwc\fP と等価なマルチバイト文字を +書き出すことを期待してもよい。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fputwc (3), .BR unlocked_stdio (3) diff --git a/draft/man3/qecvt.3 b/draft/man3/qecvt.3 index bb236a61..8a45f5df 100644 --- a/draft/man3/qecvt.3 +++ b/draft/man3/qecvt.3 @@ -30,11 +30,11 @@ .\" .TH QECVT 3 2010-09-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O qecvt, qfcvt, qgcvt \- convert a floating-point number to a string -qecvt, qfcvt, qgcvt \- ÉâÆ°¾®¿ôÅÀ¿ô¤Îʸ»úÎó¤Ø¤ÎÊÑ´¹ +qecvt, qfcvt, qgcvt \- 浮動小数点数の文字列への変換 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "char *qecvt(long double " number ", int " ndigits ", int *" decpt , @@ -48,9 +48,9 @@ qecvt, qfcvt, qgcvt \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -60,7 +60,7 @@ glibc _SVID_SOURCE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The functions .\"O .BR qecvt (), .\"O .BR qfcvt () @@ -79,41 +79,41 @@ _SVID_SOURCE .\"O .BR ecvt (3) .\"O and .\"O .BR gcvt (3). -´Ø¿ô +関数 .BR qecvt (), .BR qfcvt (), .BR qgcvt () -¤Ï¡¢¤½¤ì¤¾¤ì +は、それぞれ .BR ecvt (3), .BR fcvt (3), .BR gcvt (3) -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -°ú¤­¿ô +と同じである。 +引き数 .I number -¤¬ +が .I "long double" -·¿¤Ç¤¢¤ëÅÀ¤À¤±¤¬°Û¤Ê¤ë¡£ +型である点だけが異なる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4. .\"O Not seen in most common UNIX implementations, .\"O but occurs in SunOS. .\"O Not supported by libc4 and libc5. .\"O Supported by glibc. -¿¤¯¤Î°ìÈÌŪ¤Ê UNIX ¤Ë¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢SunOS ¤Ë¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -libc4 ¤È libc5 ¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -glibc ¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +多くの一般的な UNIX には実装されていないが、SunOS には実装されている。 +libc4 と libc5 ではサポートされていないが、 +glibc ではサポートされている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O These functions are obsolete. .\"O Instead, .\"O .BR sprintf (3) .\"O is recommended. -¤³¤ì¤é¤Î´Ø¿ô¤ÏÇѻߤµ¤ì¤¿¡£Âå¤ï¤ê¤Ë +これらの関数は廃止された。代わりに .BR sprintf (3) -¤Î»ÈÍѤò¿ä¾©¤¹¤ë¡£ +の使用を推奨する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ecvt (3), .BR ecvt_r (3), .BR gcvt (3), diff --git a/draft/man3/qsort.3 b/draft/man3/qsort.3 index d3a9112a..ff481ba7 100644 --- a/draft/man3/qsort.3 +++ b/draft/man3/qsort.3 @@ -39,11 +39,11 @@ .\" .TH QSORT 3 2009-09-15 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O qsort \- sorts an array -qsort \- ÇÛÎó¤òʤÙÊѤ¨¤ë +qsort \- 配列を並べ変える .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -51,7 +51,7 @@ qsort \- .BI " int(*" compar ")(const void *, const void *));" .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR qsort () .\"O function sorts an array with \fInmemb\fP elements of @@ -59,40 +59,40 @@ qsort \- .\"O The \fIbase\fP argument points to the start of the .\"O array. .BR qsort () -´Ø¿ô¤Ï¡¢ -\fInmemb\fP ¸Ä¤ÎÂ礭¤µ \fIsize\fP ¤ÎÍ×ÁǤò¤â¤ÄÇÛÎó¤òʤÙÊѤ¨¤ë¡£ -\fIbase\fP °ú¤­¿ô¤ÏÇÛÎó¤ÎÀèƬ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +関数は、 +\fInmemb\fP 個の大きさ \fIsize\fP の要素をもつ配列を並べ変える。 +\fIbase\fP 引き数は配列の先頭へのポインタである。 .PP .\"O The contents of the array are sorted in ascending order according to a .\"O comparison function pointed to by \fIcompar\fP, which is called with two .\"O arguments that point to the objects being compared. -\fIcompar\fP ¤ò¥Ý¥¤¥ó¥¿¤È¤¹¤ëÈæ³Ó´Ø¿ô¤Ë¤è¤Ã¤Æ¡¢ -ÇÛÎó¤ÎÃæ¿È¤Ï¾º½ç (ÃͤÎÂ礭¤¤¤â¤Î¤Û¤É¸å¤ËʤֽçÈÖ) ¤Ëʤ٤é¤ì¤ë¡£ -Èæ³Ó´Ø¿ô¤Î°ú¤­¿ô¤ÏÈæ³Ó¤µ¤ì¤ë¤Õ¤¿¤Ä¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +\fIcompar\fP をポインタとする比較関数によって、 +配列の中身は昇順 (値の大きいものほど後に並ぶ順番) に並べられる。 +比較関数の引き数は比較されるふたつのオブジェクトのポインタである。 .PP .\"O The comparison function must return an integer less than, equal to, or .\"O greater than zero if the first argument is considered to be respectively .\"O less than, equal to, or greater than the second. .\"O If two members compare .\"O as equal, their order in the sorted array is undefined. -Èæ³Ó´Ø¿ô¤Ï¡¢Âè°ì°ú¤­¿ô¤¬ÂèÆó°ú¤­¿ô¤ËÂФ·¤Æ¡¢ -1) ¾®¤µ¤¤¡¢2) Åù¤·¤¤¡¢3) Â礭¤¤¤Î¤½¤ì¤¾¤ì¤Ë±þ¤¸¤Æ¡¢ -1) ¥¼¥í¤è¤ê¾®¤µ¤¤À°¿ô¡¢2) ¥¼¥í¡¢3) ¥¼¥í¤è¤êÂ礭¤¤À°¿ô¤Î -¤¤¤º¤ì¤«¤òÊÖ¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Æó¤Ä¤ÎÍ×ÁǤÎÈæ³Ó·ë²Ì¤¬Åù¤·¤¤¤È¤­¡¢ -ʤÙÊѤ¨¤¿¸å¤ÎÇÛÎó¤Ç¤Ï¡¢¤³¤ì¤éÆó¤Ä¤Î½ç½ø¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +比較関数は、第一引き数が第二引き数に対して、 +1) 小さい、2) 等しい、3) 大きいのそれぞれに応じて、 +1) ゼロより小さい整数、2) ゼロ、3) ゼロより大きい整数の +いずれかを返さなければならない。 +二つの要素の比較結果が等しいとき、 +並べ変えた後の配列では、これら二つの順序は規定されていない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR qsort () .\"O function returns no value. .BR qsort () -¤ÏÃͤòÊÖ¤µ¤Ê¤¤¡£ +は値を返さない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, C89, C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Library routines suitable for use as the .\"O .I compar .\"O argument include @@ -100,28 +100,28 @@ SVr4, 4.3BSD, C89, C99. .\"O and .\"O .BR versionsort (3). .I compar -°ú¤­¿ô¤Ë»ÈÍѤ¹¤ë¤Î¤ËŬ¤·¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤È¤·¤Æ¤Ï +引き数に使用するのに適しているライブラリルーチンとしては .BR alphasort (3), .BR versionsort (3) -¤¬¤¢¤ë¡£ +がある。 .\"O To compare C strings, the comparison function can call .\"O .BR strcmp (3), .\"O as shown in the example below. -C ¤Îʸ»úÎó¤òÈæ³Ó¤¹¤ë¾ì¹ç¡¢°Ê²¼¤ÎÎã¤Ë¤¢¤ë¤è¤¦¤ËÈæ³Ó´Ø¿ô¤Ç +C の文字列を比較する場合、以下の例にあるように比較関数で .BR strcmp (3) -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤â¤Ç¤­¤ë¡£ +を呼び出すこともできる。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O For one example of use, see the example under .\"O .BR bsearch (3). -»ÈÍÑÎã¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +使用例については、 .BR bsearch (3) -¤Ë¤¢¤ëÎã¤ò»²¾È¤¹¤ë¤³¤È¡£ +にある例を参照すること。 .\"O Another example is the following program, .\"O which sorts the strings given in its command-line arguments: -°Ê²¼¤Î¥×¥í¥°¥é¥à¤ËÊ̤λÈÍÑÎã¤ò¼¨¤¹¡£¤³¤Î¥×¥í¥°¥é¥à¤Ï¡¢ -¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿Ê¸»úÎó¤ÎʤӴ¹¤¨¤ò¹Ô¤¦¡£ +以下のプログラムに別の使用例を示す。このプログラムは、 +コマンドライン引き数で指定された文字列の並び換えを行う。 .sp .nf #include @@ -134,9 +134,9 @@ cmpstringp(const void *p1, const void *p2) .\"O /* The actual arguments to this function are "pointers to .\"O pointers to char", but strcmp(3) arguments are "pointers .\"O to char", hence the following cast plus dereference */ - /* ¤³¤Î´Ø¿ô¤Î¼ÂºÝ¤Î°ú¤­¿ô¤Ï "char ·¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤Î¥Ý¥¤¥ó¥¿" ¤À¤¬¡¢ - strcmp(3) ¤Î°ú¤­¿ô¤Ï "char ·¿¤Ø¤Î¥Ý¥¤¥ó¥¿" ¤Ç¤¢¤ë¡£ - ¤½¤³¤Ç¡¢°Ê²¼¤Î¤è¤¦¤Ë¥­¥ã¥¹¥È¤ò¤·¤Æ¤«¤é¥Ý¥¤¥ó¥¿¤ÎµÕ»²¾È¤ò¹Ô¤¦¡£*/ + /* この関数の実際の引き数は "char 型へのポインタのポインタ" だが、 + strcmp(3) の引き数は "char 型へのポインタ" である。 + そこで、以下のようにキャストをしてからポインタの逆参照を行う。*/ return strcmp(* (char * const *) p1, * (char * const *) p2); } @@ -159,7 +159,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sort (1), .BR alphasort (3), .BR strcmp (3), diff --git a/draft/man3/queue.3 b/draft/man3/queue.3 index a028079a..c20b4586 100644 --- a/draft/man3/queue.3 +++ b/draft/man3/queue.3 @@ -39,11 +39,11 @@ .\" Translated Thu Sep 2 04:41:11 JST 2004 .\" by Yuichi SATO .\" -.\"WORD: circular queue ½Û´Ä¥­¥å¡¼ +.\"WORD: circular queue 循環キュー .\" .TH QUEUE 3 2007-12-28 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O LIST_ENTRY, LIST_HEAD, LIST_INIT, LIST_INSERT_AFTER, \ .\"O LIST_INSERT_HEAD, LIST_REMOVE, TAILQ_ENTRY, TAILQ_HEAD, \ .\"O TAILQ_INIT, TAILQ_INSERT_AFTER, TAILQ_INSERT_HEAD, TAILQ_INSERT_TAIL, \ @@ -57,12 +57,12 @@ TAILQ_INIT, TAILQ_INSERT_AFTER, TAILQ_INSERT_HEAD, TAILQ_INSERT_TAIL, \ TAILQ_REMOVE, CIRCLEQ_ENTRY, CIRCLEQ_HEAD, CIRCLEQ_INIT, \ CIRCLEQ_INSERT_AFTER, CIRCLEQ_INSERT_BEFORE, \ CIRCLEQ_INSERT_HEAD, CIRCLEQ_INSERT_TAIL, \ -CIRCLEQ_REMOVE \- ¥ê¥¹¥È¡¦¥Æ¡¼¥ë (tail) ¥­¥å¡¼¡¦½Û´Ä¥­¥å¡¼¤Î¼ÂÁõ +CIRCLEQ_REMOVE \- リスト・テール (tail) キュー・循環キューの実装 .\"Osato: -.\"Osato: tail queue ¤ÎÎɤ¤Ìõ¸ì¤¬Ê¬¤«¤é¤Ê¤¤¤Î¤Ç¡¢¤È¤ê¤¢¤¨¤º¥«¥¿¥«¥Ê¤Ë¤¹¤ë¡£ +.\"Osato: tail queue の良い訳語が分からないので、とりあえずカタカナにする。 .\"Osato: .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include @@ -101,97 +101,97 @@ CIRCLEQ_REMOVE \- .BI " TYPE *" elm ", CIRCLEQ_ENTRY " NAME ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These macros define and operate on three types of data structures: .\"O lists, tail queues, and circular queues. .\"O All three structures support the following functionality: -¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ï¡¢¼¡¤Î 3 ¤Ä¤Î¥Ç¡¼¥¿¹½Â¤¤òÄêµÁ¤·¤ÆÁàºî¤¹¤ë: -¥ê¥¹¥È¡¦¥Æ¡¼¥ë¥­¥å¡¼¡¦½Û´Ä¥­¥å¡¼¡£ -3 ¤Ä¤Î¥Ç¡¼¥¿¹½Â¤¤¹¤Ù¤Æ¤Ë¤ª¤¤¤Æ°Ê²¼¤Îµ¡Ç½¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë: +これらのマクロは、次の 3 つのデータ構造を定義して操作する: +リスト・テールキュー・循環キュー。 +3 つのデータ構造すべてにおいて以下の機能がサポートされている: .sp .RS 4 .PD 0 .IP * 4 .\"O Insertion of a new entry at the head of the list. -¿·¤¿¤Ê¥¨¥ó¥È¥ê¤ò¥ê¥¹¥È¤ÎÀèƬ¤ËÁÞÆþ¤¹¤ë¡£ +新たなエントリをリストの先頭に挿入する。 .IP * .\"O Insertion of a new entry after any element in the list. -¿·¤¿¤Ê¥¨¥ó¥È¥ê¤ò¥ê¥¹¥È¤Î¤É¤ÎÍ×ÁǤè¤ê¤â¸å¤ËÁÞÆþ¤¹¤ë¡£ +新たなエントリをリストのどの要素よりも後に挿入する。 .IP * .\"O Removal of any entry in the list. -¥ê¥¹¥È¤ÎǤ°Õ¤Î¥¨¥ó¥È¥ê¤òºï½ü¤¹¤ë¡£ +リストの任意のエントリを削除する。 .IP * .\"O Forward traversal through the list. -¥ê¥¹¥È¤ò½çÊý¸þ¤Ëé¤ë¡£ +リストを順方向に辿る。 .PD .RE .PP .\"O Lists are the simplest of the three data structures and support .\"O only the above functionality. -¥ê¥¹¥È¤Ï 3 ¤Ä¤Î¥Ç¡¼¥¿¹½Â¤¤ÎÃæ¤ÇºÇ¤âñ½ã¤Ç¤¢¤ê¡¢ -¾åµ­¤Îµ¡Ç½¤Î¤ß¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ +リストは 3 つのデータ構造の中で最も単純であり、 +上記の機能のみをサポートする。 .\"O Tail queues add the following functionality: -¥Æ¡¼¥ë¥­¥å¡¼¤Ï°Ê²¼¤Îµ¡Ç½¤òÄɲ乤ë: +テールキューは以下の機能を追加する: .RS 4 .IP * 4 .\"O Entries can be added at the end of a list. -¥¨¥ó¥È¥ê¤ò¥ê¥¹¥È¤ÎºÇ¸å¤ËÄɲäǤ­¤ë¡£ +エントリをリストの最後に追加できる。 .RE .PP .\"O However: -¤¿¤À¤·: +ただし: .sp .RS 4 .PD 0 .IP 1. 4 .\"O All list insertions and removals must specify the head of the list. -Á´¤Æ¤Î¥ê¥¹¥ÈÁÞÆþ¤Èºï½ü¤Ë¤ª¤¤¤Æ¡¢¥ê¥¹¥È¤ÎÀèƬ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +全てのリスト挿入と削除において、リストの先頭を指定しなければならない。 .IP 2. .\"O Each head entry requires two pointers rather than one. -³ÆÀèƬ¥¨¥ó¥È¥ê¤Ï 1 ¤Ä¤Ç¤Ï¤Ê¤¯ 2 ¤Ä¤Î¥Ý¥¤¥ó¥¿¤òɬÍפȤ¹¤ë¡£ +各先頭エントリは 1 つではなく 2 つのポインタを必要とする。 .IP 3. .\"O Code size is about 15% greater and operations run about 20% slower .\"O than lists. -¥ê¥¹¥È¤ÈÈæ¤Ù¤Æ¡¢¥³¡¼¥É¥µ¥¤¥º¤Ï 15% Â礭¤¯¤Ê¤ê¡¢Áàºî¤Ï 20% ÃÙ¤¯¤Ê¤ë¡£ +リストと比べて、コードサイズは 15% 大きくなり、操作は 20% 遅くなる。 .PD .RE .PP .\"O Circular queues add the following functionality: -½Û´Ä¥­¥å¡¼¤Ï°Ê²¼¤Îµ¡Ç½¤òÄɲ乤ë: +循環キューは以下の機能を追加する: .sp .RS 4 .PD 0 .IP * 4 .\"O Entries can be added at the end of a list. -¥¨¥ó¥È¥ê¤ò¥ê¥¹¥È¤ÎºÇ¸å¤ËÄɲäǤ­¤ë¡£ +エントリをリストの最後に追加できる。 .IP * .\"O Entries can be added before another entry. -¥¨¥ó¥È¥ê¤ò¾¤Î¥¨¥ó¥È¥ê¤ÎÁ°¤ËÄɲäǤ­¤ë¡£ +エントリを他のエントリの前に追加できる。 .IP * .\"O They may be traversed backward, from tail to head. -µÕÊý¸þ¤ËËöÈø¤«¤éÀèƬ¤Øé¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +逆方向に末尾から先頭へ辿ることができる。 .PD .RE .PP .\"O However: -¤¿¤À¤·: +ただし: .sp .RS 4 .PD 0 .IP 1. 4 .\"O All list insertions and removals must specify the head of the list. -Á´¤Æ¤Î¥ê¥¹¥ÈÁÞÆþ¤Èºï½ü¤Ë¤ª¤¤¤Æ¡¢¥ê¥¹¥È¤ÎÀèƬ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +全てのリスト挿入と削除において、リストの先頭を指定しなければならない。 .IP 2. .\"O Each head entry requires two pointers rather than one. -³ÆÀèƬ¥¨¥ó¥È¥ê¤Ï 1 ¤Ä¤Ç¤Ï¤Ê¤¯ 2 ¤Ä¤Î¥Ý¥¤¥ó¥¿¤òɬÍפȤ¹¤ë¡£ +各先頭エントリは 1 つではなく 2 つのポインタを必要とする。 .IP 3. .\"O The termination condition for traversal is more complex. -é¤ëºÝ¤Î½ªÎ»¾ò·ï¤¬¤è¤êÊ£»¨¤Ç¤¢¤ë¡£ +辿る際の終了条件がより複雑である。 .IP 4. .\"O Code size is about 40% greater and operations run about 45% slower .\"O than lists. -¥ê¥¹¥È¤ÈÈæ¤Ù¤Æ¡¢¥³¡¼¥É¥µ¥¤¥º¤Ï 40% Â礭¤¯¤Ê¤ê¡¢Áàºî¤Ï 45% ÃÙ¤¯¤Ê¤ë¡£ +リストと比べて、コードサイズは 40% 大きくなり、操作は 45% 遅くなる。 .PD .RE .PP @@ -205,16 +205,16 @@ CIRCLEQ_REMOVE \- .\"O .BR CIRCLEQ_ENTRY , .\"O named .\"O .IR NAME . -¥Þ¥¯¥íÄêµÁ¤Ë¤ª¤¤¤Æ +マクロ定義において .I TYPE -¤Ï¥æ¡¼¥¶ÄêµÁ¹½Â¤ÂΤÎ̾Á°¤Ç¤¢¤ê¡¢ +はユーザ定義構造体の名前であり、 .BR LIST_ENTRY , .BR TAILQ_ENTRY , .BR CIRCLEQ_ENTRY -¤Î²¿¤ì¤«·¿¤Î¥Õ¥£¡¼¥ë¥É¤È -»ØÄꤵ¤ì¤¿ +の何れか型のフィールドと +指定された .I NAME -¤ò´Þ¤Þ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を含まなければならない。 .\"O The argument .\"O .I HEADNAME .\"O is the name of a user-defined structure that must be declared @@ -223,41 +223,41 @@ CIRCLEQ_REMOVE \- .\"O .BR TAILQ_HEAD , .\"O or .\"O .BR CIRCLEQ_HEAD . -°ú¤­¿ô +引き数 .I HEADNAME -¤Ï¥æ¡¼¥¶ÄêµÁ¹½Â¤ÂΤÎ̾Á°¤Ç¤¢¤ê¡¢ -¥Þ¥¯¥í +はユーザ定義構造体の名前であり、 +マクロ .BR LIST_HEAD , .BR TAILQ_HEAD , .BR CIRCLEQ_HEAD -¤òÍѤ¤¤ÆÀë¸À¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を用いて宣言されなければならない。 .\"O See the examples below for further explanation of how these .\"O macros are used. -¤³¤ì¤é¤Î¥Þ¥¯¥í¤¬¤É¤Î¤è¤¦¤Ë»È¤ï¤ì¤ë¤«¤Ë¤Ä¤¤¤Æ¤Î¹¹¤Ê¤ëÀâÌÀ¤Ï¡¢ -°Ê²¼¤ÎÎã¤ò»²¾È¤¹¤ë¤³¤È¡£ +これらのマクロがどのように使われるかについての更なる説明は、 +以下の例を参照すること。 .\"O .SS LISTS -.SS ¥ê¥¹¥È +.SS リスト .\"O A list is headed by a structure defined by the .\"O .B LIST_HEAD .\"O macro. -¥ê¥¹¥È¤ÎÀèƬ¤Ë¤Ï¡¢ +リストの先頭には、 .B LIST_HEAD -¥Þ¥¯¥í¤ÇÄêµÁ¤µ¤ì¤ë¹½Â¤ÂΤ¬ÃÖ¤«¤ì¤ë¡£ +マクロで定義される構造体が置かれる。 .\"O This structure contains a single pointer to the first element .\"O on the list. -¤³¤Î¹½Â¤ÂΤϥꥹ¥È¤ÎºÇ½é¤ÎÍ×ÁǤؤΥݥ¤¥ó¥¿¤ò 1 ¤Ä´Þ¤à¡£ +この構造体はリストの最初の要素へのポインタを 1 つ含む。 .\"O The elements are doubly linked so that an arbitrary element can be .\"O removed without traversing the list. -Í×ÁÇ¤Ï 2 ½Å¤Ë¥ê¥ó¥¯¤µ¤ì¤Æ¤ª¤ê¡¢ -Ǥ°Õ¤ÎÍ×ÁǤϥꥹ¥È¤òé¤é¤º¤Ëºï½ü¤Ç¤­¤ë¡£ +要素は 2 重にリンクされており、 +任意の要素はリストを辿らずに削除できる。 .\"O New elements can be added to the list after an existing element or .\"O at the head of the list. -¿·¤·¤¤Í×ÁǤϴû¸¤ÎÍ×ÁǤθå¤Þ¤¿¤Ï¥ê¥¹¥È¤ÎÀèƬ¤ËÄɲäǤ­¤ë¡£ +新しい要素は既存の要素の後またはリストの先頭に追加できる。 .\"O A .\"O .B LIST_HEAD .\"O structure is declared as follows: .B LIST_HEAD -¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤Æ¤¤¤ë: +構造体は以下のように宣言されている: .in +4n .nf @@ -270,13 +270,13 @@ LIST_HEAD(HEADNAME, TYPE) head; .\"O is the name of the structure to be defined, and .\"O .I TYPE .\"O is the type of the elements to be linked into the list. -¤³¤³¤Ç +ここで .I HEADNAME -¤ÏÄêµÁ¤µ¤ì¤ë¹½Â¤ÂΤÎ̾Á°¤Ç¤¢¤ê¡¢ +は定義される構造体の名前であり、 .I TYPE -¤Ï¥ê¥ó¥¯Æâ¤Ç¥ê¥ó¥¯¤µ¤ì¤ëÍ×ÁǤη¿¤Ç¤¢¤ë¡£ +はリンク内でリンクされる要素の型である。 .\"O A pointer to the head of the list can later be declared as: -¥ê¥¹¥È¤ÎÀèƬ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ï¡¢¤½¤Î¸å¤Ç¼¡¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤ë: +リストの先頭へのポインタは、その後で次のように宣言される: .in +4n .nf @@ -289,40 +289,40 @@ struct HEADNAME *headp; .\"O and .\"O .IR "headp" .\"O are user selectable.) -(̾Á° +(名前 .IR "head" -¤È +と .IR "headp" -¤Ï¥æ¡¼¥¶¤¬ÁªÂò¤Ç¤­¤ë¡£) +はユーザが選択できる。) .PP .\"O The macro .\"O .B LIST_ENTRY .\"O declares a structure that connects the elements in .\"O the list. -¥Þ¥¯¥í +マクロ .B LIST_ENTRY -¤Ï¥ê¥¹¥È¤ÎÍ×ÁǤòÀܳ¤¹¤ë¹½Â¤ÂΤòÀë¸À¤¹¤ë¡£ +はリストの要素を接続する構造体を宣言する。 .PP .\"O The macro .\"O .B LIST_INIT .\"O initializes the list referenced by .\"O .IR head . -¥Þ¥¯¥í +マクロ .B LIST_INIT -¤Ï +は .I head -¤Ç»²¾È¤µ¤ì¤ë¥ê¥¹¥È¤ò½é´ü²½¤¹¤ë¡£ +で参照されるリストを初期化する。 .PP .\"O The macro .\"O .B LIST_INSERT_HEAD .\"O inserts the new element .\"O .I elm .\"O at the head of the list. -¥Þ¥¯¥í +マクロ .B LIST_INSERT_HEAD -¤Ï¿·¤¿¤ÊÍ×ÁÇ +は新たな要素 .I elm -¤ò¥ê¥¹¥È¤ÎÀèƬ¤ËÁÞÆþ¤¹¤ë¡£ +をリストの先頭に挿入する。 .PP .\"O The macro .\"O .B LIST_INSERT_AFTER @@ -330,85 +330,85 @@ struct HEADNAME *headp; .\"O .I elm .\"O after the element .\"O .I listelm . -¥Þ¥¯¥í +マクロ .B LIST_INSERT_AFTER -¤Ï¿·¤¿¤ÊÍ×ÁÇ +は新たな要素 .I elm -¤òÍ×ÁÇ +を要素 .I listelm -¤Î¸å¤ËÁÞÆþ¤¹¤ë¡£ +の後に挿入する。 .PP .\"O The macro .\"O .B LIST_REMOVE .\"O removes the element .\"O .I elm .\"O from the list. -¥Þ¥¯¥í +マクロ .B LIST_REMOVE -¤ÏÍ×ÁÇ +は要素 .I elm -¤ò¥ê¥¹¥È¤«¤éºï½ü¤¹¤ë¡£ +をリストから削除する。 .\"O .SS LIST EXAMPLE -.SS ¥ê¥¹¥È¤ÎÎã +.SS リストの例 .nf LIST_HEAD(listhead, entry) head; .\"O struct listhead *headp; /* List head. */ -struct listhead *headp; /* ¥ê¥¹¥È¤ÎÀèƬ¡£*/ +struct listhead *headp; /* リストの先頭。*/ struct entry { .\"O ... .\"O LIST_ENTRY(entry) entries; /* List. */ .\"O ... ... - LIST_ENTRY(entry) entries; /* ¥ê¥¹¥È¡£ */ + LIST_ENTRY(entry) entries; /* リスト。 */ ... } *n1, *n2, *np; .\"O LIST_INIT(&head); /* Initialize the list. */ -LIST_INIT(&head); /* ¥ê¥¹¥È¤ò½é´ü²½¤¹¤ë¡£*/ +LIST_INIT(&head); /* リストを初期化する。*/ .\"O n1 = malloc(sizeof(struct entry)); /* Insert at the head. */ -n1 = malloc(sizeof(struct entry)); /* ÀèƬ¤ËÁÞÆþ¤¹¤ë¡£*/ +n1 = malloc(sizeof(struct entry)); /* 先頭に挿入する。*/ LIST_INSERT_HEAD(&head, n1, entries); .\"O n2 = malloc(sizeof(struct entry)); /* Insert after. */ -n2 = malloc(sizeof(struct entry)); /* ¸å¤í¤ËÁÞÆþ¤¹¤ë¡£*/ +n2 = malloc(sizeof(struct entry)); /* 後ろに挿入する。*/ LIST_INSERT_AFTER(n1, n2, entries); .\"O /* Forward traversal. */ - /* ½çÊý¸þ¤Ëé¤ë¡£*/ + /* 順方向に辿る。*/ for (np = head.lh_first; np != NULL; np = np\->entries.le_next) np\-> ... .\"O while (head.lh_first != NULL) /* Delete. */ -while (head.lh_first != NULL) /* ºï½ü¤¹¤ë¡£*/ +while (head.lh_first != NULL) /* 削除する。*/ LIST_REMOVE(head.lh_first, entries); .fi .\"O .SS Tail Queues -.SS ¥Æ¡¼¥ë¥­¥å¡¼ +.SS テールキュー .\"O A tail queue is headed by a structure defined by the .\"O .B TAILQ_HEAD .\"O macro. -¥Æ¡¼¥ë¥­¥å¡¼¤ÎÀèƬ¤Ë¤Ï +テールキューの先頭には .B TAILQ_HEAD -¥Þ¥¯¥í¤ÇÄêµÁ¤µ¤ì¤ë¹½Â¤ÂΤ¬ÃÖ¤«¤ì¤ë¡£ +マクロで定義される構造体が置かれる。 .\"O This structure contains a pair of pointers, .\"O one to the first element in the tail queue and the other to .\"O the last element in the tail queue. -¤³¤Î¹½Â¤ÂÎ¤Ï 1 ÁȤΥݥ¤¥ó¥¿¤ò´Þ¤ó¤Ç¤¤¤ë¡£ -1 ¤Ä¤Ï¥Æ¡¼¥ë¥­¥å¡¼¤ÎºÇ½é¤ÎÍ×ÁǤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ê¡¢ -¤â¤¦ 1 ¤Ä¤Ï¥Æ¡¼¥ë¥­¥å¡¼¤ÎºÇ¸å¤ÎÍ×ÁǤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ +この構造体は 1 組のポインタを含んでいる。 +1 つはテールキューの最初の要素へのポインタであり、 +もう 1 つはテールキューの最後の要素へのポインタである。 .\"O The elements are doubly linked so that an arbitrary element can be .\"O removed without traversing the tail queue. -Í×ÁÇ¤Ï 2 ½Å¤Ë¥ê¥ó¥¯¤µ¤ì¤Æ¤ª¤ê¡¢ -Ǥ°Õ¤ÎÍ×ÁǤϥơ¼¥ë¥­¥å¡¼¤òé¤é¤º¤Ëºï½ü¤Ç¤­¤ë¡£ +要素は 2 重にリンクされており、 +任意の要素はテールキューを辿らずに削除できる。 .\"O New elements can be added to the tail queue after an existing element, .\"O at the head of the tail queue, or at the end of the tail queue. -¿·¤·¤¤Í×ÁǤϴû¸¤ÎÍ×ÁǤθå¤Þ¤¿¤Ï¥Æ¡¼¥ë¥­¥å¡¼¤ÎÀèƬ¤Þ¤¿¤ÏËöÈø¤ËÄɲäǤ­¤ë¡£ +新しい要素は既存の要素の後またはテールキューの先頭または末尾に追加できる。 .\"O A .\"O .B TAILQ_HEAD .\"O structure is declared as follows: .B TAILQ_HEAD -¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +構造体は以下のように定義されている: .in +4n .nf @@ -421,13 +421,13 @@ TAILQ_HEAD(HEADNAME, TYPE) head; .\"O is the name of the structure to be defined, and .\"O .IR "TYPE" .\"O is the type of the elements to be linked into the tail queue. -¤³¤³¤Ç +ここで .Li HEADNAME -¤ÏÄêµÁ¤µ¤ì¤ë¹½Â¤ÂΤÎ̾Á°¤Ç¤¢¤ê¡¢ +は定義される構造体の名前であり、 .Li TYPE -¤Ï¥Æ¡¼¥ë¥­¥å¡¼Æâ¤Ç¥ê¥ó¥¯¤µ¤ì¤ëÍ×ÁǤη¿¤Ç¤¢¤ë¡£ +はテールキュー内でリンクされる要素の型である。 .\"O A pointer to the head of the tail queue can later be declared as: -¥Æ¡¼¥ë¥­¥å¡¼¤ÎÀèƬ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ï¡¢¤½¤Î¸å¤Ç¼¡¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤ë: +テールキューの先頭へのポインタは、その後で次のように宣言される: .in +4n .nf @@ -440,51 +440,51 @@ struct HEADNAME *headp; .\"O and .\"O .IR "headp" .\"O are user selectable.) -(̾Á° +(名前 .IR "head" -¤È +と .IR "headp" -¤Ï¥æ¡¼¥¶¤¬ÁªÂò¤Ç¤­¤ë¡£) +はユーザが選択できる。) .PP .\"O The macro .\"O .B TAILQ_ENTRY .\"O declares a structure that connects the elements in .\"O the tail queue. -¥Þ¥¯¥í +マクロ .B TAILQ_ENTRY -¤Ï¥Æ¡¼¥ë¥­¥å¡¼¤ÎÍ×ÁǤòÀܳ¤¹¤ë¹½Â¤ÂΤòÀë¸À¤¹¤ë¡£ +はテールキューの要素を接続する構造体を宣言する。 .PP .\"O The macro .\"O .B TAILQ_INIT .\"O initializes the tail queue referenced by .\"O .IR head . -¥Þ¥¯¥í +マクロ .B TAILQ_INIT -¤Ï +は .I head -¤Ç»²¾È¤µ¤ì¤ë¥Æ¡¼¥ë¥­¥å¡¼¤ò½é´ü²½¤¹¤ë¡£ +で参照されるテールキューを初期化する。 .PP .\"O The macro .\"O .B TAILQ_INSERT_HEAD .\"O inserts the new element .\"O .I elm .\"O at the head of the tail queue. -¥Þ¥¯¥í +マクロ .B TAILQ_INSERT_HEAD -¤Ï¿·¤¿¤ÊÍ×ÁÇ +は新たな要素 .I elm -¤ò¥Æ¡¼¥ë¥­¥å¡¼¤ÎÀèƬ¤ËÁÞÆþ¤¹¤ë¡£ +をテールキューの先頭に挿入する。 .PP .\"O The macro .\"O .B TAILQ_INSERT_TAIL .\"O inserts the new element .\"O .I elm .\"O at the end of the tail queue. -¥Þ¥¯¥í +マクロ .B TAILQ_INSERT_TAIL -¤Ï¿·¤¿¤ÊÍ×ÁÇ +は新たな要素 .I elm -¤ò¥Æ¡¼¥ë¥­¥å¡¼¤ÎËöÈø¤ËÁÞÆþ¤¹¤ë¡£ +をテールキューの末尾に挿入する。 .PP .\"O The macro .\"O .B TAILQ_INSERT_AFTER @@ -492,88 +492,88 @@ struct HEADNAME *headp; .\"O .I elm .\"O after the element .\"O .I listelm . -¥Þ¥¯¥í +マクロ .B TAILQ_INSERT_AFTER -¤Ï¿·¤¿¤ÊÍ×ÁÇ +は新たな要素 .I elm -¤òÍ×ÁÇ +を要素 .Fa listelm -¤Î¸å¤ËÁÞÆþ¤¹¤ë¡£ +の後に挿入する。 .PP .\"O The macro .\"O .B TAILQ_REMOVE .\"O removes the element .\"O .I elm .\"O from the tail queue. -¥Þ¥¯¥í +マクロ .B TAILQ_REMOVE -¤ÏÍ×ÁÇ +は要素 .I elm -¤ò¥Æ¡¼¥ë¥­¥å¡¼¤«¤éºï½ü¤¹¤ë¡£ +をテールキューから削除する。 .\"O .SS Tail Queue Example -.SS ¥Æ¡¼¥ë¥­¥å¡¼¤ÎÎã +.SS テールキューの例 .nf TAILQ_HEAD(tailhead, entry) head; .\"O struct tailhead *headp; /* Tail queue head. */ -struct tailhead *headp; /* ¥Æ¡¼¥ë¥­¥å¡¼¤ÎÀèƬ¡£*/ +struct tailhead *headp; /* テールキューの先頭。*/ struct entry { ... .\"O TAILQ_ENTRY(entry) entries; /* Tail queue. */ - TAILQ_ENTRY(entry) entries; /* ¥Æ¡¼¥ë¥­¥å¡¼¡£*/ + TAILQ_ENTRY(entry) entries; /* テールキュー。*/ ... } *n1, *n2, *np; .\"O TAILQ_INIT(&head); /* Initialize the queue. */ -TAILQ_INIT(&head); /* ¥­¥å¡¼¤ò½é´ü²½¤¹¤ë¡£*/ +TAILQ_INIT(&head); /* キューを初期化する。*/ .\"O n1 = malloc(sizeof(struct entry)); /* Insert at the head. */ -n1 = malloc(sizeof(struct entry)); /* ÀèƬ¤ËÁÞÆþ¤¹¤ë¡£*/ +n1 = malloc(sizeof(struct entry)); /* 先頭に挿入する。*/ TAILQ_INSERT_HEAD(&head, n1, entries); .\"O n1 = malloc(sizeof(struct entry)); /* Insert at the tail. */ -n1 = malloc(sizeof(struct entry)); /* ËöÈø¤ËÁÞÆþ¤¹¤ë¡£*/ +n1 = malloc(sizeof(struct entry)); /* 末尾に挿入する。*/ TAILQ_INSERT_TAIL(&head, n1, entries); .\"O n2 = malloc(sizeof(struct entry)); /* Insert after. */ -n2 = malloc(sizeof(struct entry)); /* ¸å¤í¤ËÁÞÆþ¤¹¤ë¡£*/ +n2 = malloc(sizeof(struct entry)); /* 後ろに挿入する。*/ TAILQ_INSERT_AFTER(&head, n1, n2, entries); .\"O /* Forward traversal. */ - /* ½çÊý¸þ¤Ëé¤ë¡£*/ + /* 順方向に辿る。*/ for (np = head.tqh_first; np != NULL; np = np\->entries.tqe_next) np\-> ... .\"O /* Delete. */ - /* ºï½ü¤¹¤ë¡£*/ + /* 削除する。*/ while (head.tqh_first != NULL) TAILQ_REMOVE(&head, head.tqh_first, entries); .fi .\"O .SS Circular Queues -.SS ½Û´Ä¥­¥å¡¼ +.SS 循環キュー .\"O A circular queue is headed by a structure defined by the .\"O .B CIRCLEQ_HEAD .\"O macro. -½Û´Ä¥­¥å¡¼¤ÎÀèƬ¤Ë¤Ï +循環キューの先頭には .B CIRCLEQ_HEAD -¥Þ¥¯¥í¤ÇÄêµÁ¤µ¤ì¤ë¹½Â¤ÂΤ¬ÃÖ¤«¤ì¤ë¡£ +マクロで定義される構造体が置かれる。 .\"O This structure contains a pair of pointers, .\"O one to the first element in the circular queue and the other to the .\"O last element in the circular queue. -¤³¤Î¹½Â¤ÂÎ¤Ï 1 ÁȤΥݥ¤¥ó¥¿¤ò´Þ¤ó¤Ç¤¤¤ë¡£ -1 ¤Ä¤Ï½Û´Ä¥­¥å¡¼¤ÎºÇ½é¤ÎÍ×ÁǤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ê¡¢ -¤â¤¦ 1 ¤Ä¤Ï½Û´Ä¥­¥å¡¼¤ÎºÇ¸å¤ÎÍ×ÁǤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ +この構造体は 1 組のポインタを含んでいる。 +1 つは循環キューの最初の要素へのポインタであり、 +もう 1 つは循環キューの最後の要素へのポインタである。 .\"O The elements are doubly linked so that an arbitrary element can be .\"O removed without traversing the queue. -Í×ÁÇ¤Ï 2 ½Å¤Ë¥ê¥ó¥¯¤µ¤ì¤Æ¤ª¤ê¡¢ -Ǥ°Õ¤ÎÍ×ÁǤϥ­¥å¡¼¤òé¤é¤º¤Ëºï½ü¤Ç¤­¤ë¡£ +要素は 2 重にリンクされており、 +任意の要素はキューを辿らずに削除できる。 .\"O New elements can be added to the queue after an existing element, .\"O before an existing element, at the head of the queue, or at the end .\"O of the queue. -¿·¤·¤¤Í×ÁǤϡ¢´û¸¤ÎÍ×ÁǤθå¤Þ¤¿¤ÏÁ°¡¢¤Þ¤¿¤Ï¥­¥å¡¼¤ÎÀèƬ¤Þ¤¿¤ÏËöÈø¤ËÄɲäǤ­¤ë¡£ +新しい要素は、既存の要素の後または前、またはキューの先頭または末尾に追加できる。 A .\"O .B CIRCLEQ_HEAD .\"O structure is declared as follows: .B CIRCLEQ_HEAD -¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +構造体は以下のように定義されている: .in +4n .nf @@ -586,13 +586,13 @@ CIRCLEQ_HEAD(HEADNAME, TYPE) head; .\"O is the name of the structure to be defined, and .\"O .IR "TYPE" .\"O is the type of the elements to be linked into the circular queue. -¤³¤³¤Ç +ここで .IR "HEADNAME" -¤ÏÄêµÁ¤µ¤ì¤ë¹½Â¤ÂΤÎ̾Á°¤Ç¤¢¤ê¡¢ +は定義される構造体の名前であり、 .IR "TYPE" -¤Ï½Û´Ä¥­¥å¡¼Æâ¤Ç¥ê¥ó¥¯¤µ¤ì¤ëÍ×ÁǤη¿¤Ç¤¢¤ë¡£ +は循環キュー内でリンクされる要素の型である。 .\"O A pointer to the head of the circular queue can later be declared as: -½Û´Ä¥­¥å¡¼¤ÎÀèƬ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ï¡¢¤½¤Î¸å¤Ç¼¡¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤ë: +循環キューの先頭へのポインタは、その後で次のように宣言される: .in +4n .nf @@ -605,51 +605,51 @@ struct HEADNAME *headp; .\"O and .\"O .IR "headp" .\"O are user selectable.) -(̾Á° +(名前 .I head -¤È +と .I headp -¤Ï¥æ¡¼¥¶¤¬ÁªÂò¤Ç¤­¤ë¡£) +はユーザが選択できる。) .PP .\"O The macro .\"O .B CIRCLEQ_ENTRY .\"O declares a structure that connects the elements in .\"O the circular queue. -¥Þ¥¯¥í +マクロ .B CIRCLEQ_ENTRY -¤Ï½Û´Ä¥­¥å¡¼¤ÎÍ×ÁǤòÀܳ¤¹¤ë¹½Â¤ÂΤòÀë¸À¤¹¤ë¡£ +は循環キューの要素を接続する構造体を宣言する。 .PP .\"O The macro .\"O .B CIRCLEQ_INIT .\"O initializes the circular queue referenced by .\"O .IR head . -¥Þ¥¯¥í +マクロ .B CIRCLEQ_INIT -¤Ï +は .I head -¤Ç»²¾È¤µ¤ì¤ë½Û´Ä¥­¥å¡¼¤ò½é´ü²½¤¹¤ë¡£ +で参照される循環キューを初期化する。 .PP .\"O The macro .\"O .B CIRCLEQ_INSERT_HEAD .\"O inserts the new element .\"O .I elm .\"O at the head of the circular queue. -¥Þ¥¯¥í +マクロ .B CIRCLEQ_INSERT_HEAD -¤Ï¿·¤¿¤ÊÍ×ÁÇ +は新たな要素 .I elm -¤ò½Û´Ä¥­¥å¡¼¤ÎÀèƬ¤ËÁÞÆþ¤¹¤ë¡£ +を循環キューの先頭に挿入する。 .PP .\"O The macro .\"O .B CIRCLEQ_INSERT_TAIL .\"O inserts the new element .\"O .I elm .\"O at the end of the circular queue. -¥Þ¥¯¥í +マクロ .B CIRCLEQ_INSERT_TAIL -¤Ï¿·¤¿¤ÊÍ×ÁÇ +は新たな要素 .I elm -¤ò½Û´Ä¥­¥å¡¼¤ÎËöÈø¤ËÁÞÆþ¤¹¤ë¡£ +を循環キューの末尾に挿入する。 .PP .\"O The macro .\"O .B CIRCLEQ_INSERT_AFTER @@ -657,13 +657,13 @@ struct HEADNAME *headp; .\"O .I elm .\"O after the element .\"O .IR listelm . -¥Þ¥¯¥í +マクロ .B CIRCLEQ_INSERT_AFTER -¤Ï¿·¤¿¤ÊÍ×ÁÇ +は新たな要素 .I elm -¤òÍ×ÁÇ +を要素 .I listelm -¤Î¸å¤ËÁÞÆþ¤¹¤ë¡£ +の後に挿入する。 .PP .\"O The macro .\"O .B CIRCLEQ_INSERT_BEFORE @@ -671,76 +671,76 @@ struct HEADNAME *headp; .\"O .I elm .\"O before the element .\"O .IR listelm . -¥Þ¥¯¥í +マクロ .B CIRCLEQ_INSERT_AFTER -¤Ï¿·¤¿¤ÊÍ×ÁÇ +は新たな要素 .I elm -¤òÍ×ÁÇ +を要素 .I listelm -¤ÎÁ°¤ËÁÞÆþ¤¹¤ë¡£ +の前に挿入する。 .PP .\"O The macro .\"O .B CIRCLEQ_REMOVE .\"O removes the element .\"O .I elm .\"O from the circular queue. -¥Þ¥¯¥í +マクロ .B CIRCLEQ_REMOVE -¤ÏÍ×ÁÇ +は要素 .I elm -¤ò½Û´Ä¥­¥å¡¼¤«¤éºï½ü¤¹¤ë¡£ +を循環キューから削除する。 .\"O .SS Circular Queue Example -.SS ½Û´Ä¥­¥å¡¼¤ÎÎã +.SS 循環キューの例 .nf CIRCLEQ_HEAD(circleq, entry) head; .\"O struct circleq *headp; /* Circular queue head. */ -struct circleq *headp; /* ½Û´Ä¥­¥å¡¼¤ÎÀèƬ¡£*/ +struct circleq *headp; /* 循環キューの先頭。*/ struct entry { ... .\"O CIRCLEQ_ENTRY(entry) entries; /* Circular queue. */ - CIRCLEQ_ENTRY(entry) entries; /* ½Û´Ä¥­¥å¡¼¡£*/ + CIRCLEQ_ENTRY(entry) entries; /* 循環キュー。*/ ... } *n1, *n2, *np; .\"O CIRCLEQ_INIT(&head); /* Initialize the circular queue. */ -CIRCLEQ_INIT(&head); /* ½Û´Ä¥­¥å¡¼¤ò½é´ü²½¤¹¤ë¡£*/ +CIRCLEQ_INIT(&head); /* 循環キューを初期化する。*/ .\"O n1 = malloc(sizeof(struct entry)); /* Insert at the head. */ -n1 = malloc(sizeof(struct entry)); /* ÀèƬ¤ËÁÞÆþ¤¹¤ë¡£*/ +n1 = malloc(sizeof(struct entry)); /* 先頭に挿入する。*/ CIRCLEQ_INSERT_HEAD(&head, n1, entries); .\"O n1 = malloc(sizeof(struct entry)); /* Insert at the tail. */ -n1 = malloc(sizeof(struct entry)); /* ËöÈø¤ËÁÞÆþ¤¹¤ë¡£*/ +n1 = malloc(sizeof(struct entry)); /* 末尾に挿入する。*/ CIRCLEQ_INSERT_TAIL(&head, n1, entries); .\"O n2 = malloc(sizeof(struct entry)); /* Insert after. */ -n2 = malloc(sizeof(struct entry)); /* ¸å¤í¤ËÁÞÆþ¤¹¤ë¡£*/ +n2 = malloc(sizeof(struct entry)); /* 後ろに挿入する。*/ CIRCLEQ_INSERT_AFTER(&head, n1, n2, entries); .\"O n2 = malloc(sizeof(struct entry)); /* Insert before. */ -n2 = malloc(sizeof(struct entry)); /* Á°¤ËÁÞÆþ¤¹¤ë¡£*/ +n2 = malloc(sizeof(struct entry)); /* 前に挿入する。*/ CIRCLEQ_INSERT_BEFORE(&head, n1, n2, entries); .\"O /* Forward traversal. */ - /* ½çÊý¸þ¤Ëé¤ë¡£*/ + /* 順方向に辿る。*/ for (np = head.cqh_first; np != (void *)&head; np = np\->entries.cqe_next) np\-> ... .\"O /* Reverse traversal. */ - /* µÕÊý¸þ¤Ëé¤ë¡£*/ + /* 逆方向に辿る。*/ for (np = head.cqh_last; np != (void *)&head; np = np\->entries.cqe_prev) np\-> ... .\"O /* Delete. */ - /* ºï½ü¤¹¤ë¡£*/ + /* 削除する。*/ while (head.cqh_first != (void *)&head) CIRCLEQ_REMOVE(&head, head.cqh_first, entries); .fi .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O Not in POSIX.1-2001. .\"O Present on the BSDs. .\"O The .\"O queue functions first appeared in .\"O 4.4BSD. -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -BSD ·Ï¤Ë¸ºß¤¹¤ë¡£ -queue ´Ø¿ô¤Ï 4.4BSD ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +POSIX.1-2001 にはない。 +BSD 系に存在する。 +queue 関数は 4.4BSD で初めて登場した。 diff --git a/draft/man3/raise.3 b/draft/man3/raise.3 index 155b2dd1..44bd75d5 100644 --- a/draft/man3/raise.3 +++ b/draft/man3/raise.3 @@ -31,25 +31,25 @@ .\" .TH RAISE 3 2008-10-17 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O raise \- send a signal to the caller -raise \- ¸Æ¤Ó½Ð¤·¸µ¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë +raise \- 呼び出し元にシグナルを送る .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int raise(int " sig ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR raise () .\"O function sends a signal to the calling process or thread. .\"O In a single-threaded program it is equivalent to .BR raise () -´Ø¿ô¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤â¤·¤¯¤Ï¥¹¥ì¥Ã¥É¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ -¥·¥ó¥°¥ë¥¹¥ì¥Ã¥É¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¡¢°Ê²¼¤ÈÅù²Á¤Ç¤¢¤ë¡£ +関数は、呼び出し元のプロセスもしくはスレッドにシグナルを送る。 +シングルスレッドのプログラムでは、以下と等価である。 .sp .in +4n .nf @@ -58,7 +58,7 @@ kill(getpid(), sig); .in .PP .\"O In a multithreaded program it is equivalent to -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¡¢°Ê²¼¤ÈÅù²Á¤Ç¤¢¤ë¡£ +マルチスレッドのプログラムでは、以下と等価である。 .sp .in +4n .nf @@ -69,19 +69,19 @@ pthread_kill(pthread_self(), sig); .\"O If the signal causes a handler to be called, .\"O .BR raise () .\"O will only return after the signal handler has returned. -¥·¥°¥Ê¥ë¤Ëµ¯°ø¤·¤Æ¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¾ì¹ç¤Ë¤Ï¡¢ +シグナルに起因してシグナル・ハンドラが呼び出される場合には、 .BR raise () -¤¬ÊÖ¤ë¤Î¤Ïɬ¤º¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤¬Ê֤俸å¤Ë¤Ê¤ë¡£ +が返るのは必ずシグナル・ハンドラが返った後になる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR raise () .\"O returns 0 on success, and nonzero for failure. -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤ò¡¢¼ºÇÔ¤·¤¿¾ì¹ç¤Ï 0 °Ê³°¤ÎÃͤòÊÖ¤¹¡£ +成功した場合は 0 を、失敗した場合は 0 以外の値を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C89, C99, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getpid (2), .BR kill (2), .BR sigaction (2), diff --git a/draft/man3/rand.3 b/draft/man3/rand.3 index adbbe044..027d318d 100644 --- a/draft/man3/rand.3 +++ b/draft/man3/rand.3 @@ -43,11 +43,11 @@ .\" .TH RAND 3 2008-08-29 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O rand, srand \- random number generator. -rand, srand \- Íð¿ô¤òÀ¸À®¤¹¤ë´Ø¿ô +rand, srand \- 乱数を生成する関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -61,21 +61,21 @@ rand, srand \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR rand_r (): _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR rand () .\"O function returns a pseudo-random integer in .\"O the range [0,\ \fBRAND_MAX\fR]. .BR rand () -´Ø¿ô¤Ï [0,\ \fBRAND_MAX\fR] ¤ÎÈϰϤε¿»÷Íð¿ôÀ°¿ô¤òÊÖ¤¹¡£ +関数は [0,\ \fBRAND_MAX\fR] の範囲の疑似乱数整数を返す。 .PP .\"O The .\"O .BR srand () @@ -83,28 +83,28 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O sequence of pseudo-random integers to be returned by .\"O .BR rand (). .BR srand () -´Ø¿ô¤Ï¡¢ +関数は、 .BR rand () -´Ø¿ô¤Çºî¤é¤ì¤ëµ¿»÷Íð¿ôÀ°¿ô·ÏÎó¤Î¿·¤·¤¤¼ï¤È¤·¤Æ¡¢ -¤½¤Î°ú¤­¿ô¤ÎÃͤò»ÈÍѤ¹¤ë¡£ +関数で作られる疑似乱数整数系列の新しい種として、 +その引き数の値を使用する。 .\"O These sequences are repeatable by calling .\"O .BR srand () .\"O with the same .\"O seed value. -¤³¤ì¤é¤Î´Ø¿ô¤ò»ÈÍѤ·¤Æºî¤é¤ì¤¿µ¿»÷Íð¿ô·ÏÎó¤Ï¡¢ -Ʊ¤¸Ãͤò°ú¤­¿ô¤È¤·¤Æ +これらの関数を使用して作られた疑似乱数系列は、 +同じ値を引き数として .BR srand () -¤ò¸Æ¤Ö¤³¤È¤Ç¡¢ -ºÆ¸½¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£ +を呼ぶことで、 +再現することが可能である。 .PP .\"O If no seed value is provided, the .\"O .BR rand () .\"O function is automatically .\"O seeded with a value of 1. -¼ï¤ÎÃͤ¬Í¿¤¨¤é¤ì¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ +種の値が与えられない場合には、 .BR rand () -´Ø¿ô¤Ï -¼«Æ°Åª¤Ë 1 ¤ò¼ï¤È¤¹¤ë¡£ +関数は +自動的に 1 を種とする。 .PP .\"O The function .\"O .BR rand () @@ -121,27 +121,27 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O .IR "unsigned int" , .\"O to be used as state. .BR rand () -´Ø¿ô¤ÏºÆÆþ²Äǽ (reentrant) ¤Ç¤Ï¤Ê¤¤¡¢¤Ä¤Þ¤ê¥¹¥ì¥Ã¥É¡¦¥»¡¼¥Õ¤Ç¤Ï¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¡¢¤³¤Î´Ø¿ô¤Ï±£¤·¾õÂÖ¤ò»ý¤Ã¤Æ¤ª¤ê¡¢¸Æ¤Ó½Ð¤µ¤ì¤ëÅÙ¤ËÊѹ¹¤¹¤ë¤«¤é¤Ç¤¢¤ë¡£ -¤Á¤ç¤¦¤É¤³¤Î±£¤·¾õÂÖ¤¬¼¡¤Î¸Æ¤Ó½Ð¤·»þ¤ÎÍð¿ô¤Î¼ï¤È¤·¤Æ»È¤ï¤ì¤ë¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¡£ -¼ÂºÝ¤Ë¤Ï¤â¤¦¾¯¤·Ê£»¨¤«¤â¤·¤ì¤Ê¤¤¤¬¡£¥¹¥ì¥Ã¥É¤ò»ÈÍѤ¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç -ºÆ¸½²Äǽ¤ÊÆ°ºî¤ò¤µ¤»¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢¤³¤Î±£¤·¾õÂÖ¤¬¸¶°ø¤ÇºÆ¸½À­¤¬¤Ê¤¯¤Ê¤ë¡£ +関数は再入可能 (reentrant) ではない、つまりスレッド・セーフではない。 +なぜなら、この関数は隠し状態を持っており、呼び出される度に変更するからである。 +ちょうどこの隠し状態が次の呼び出し時の乱数の種として使われるようなものである。 +実際にはもう少し複雑かもしれないが。スレッドを使用するアプリケーションで +再現可能な動作をさせたい場合には、この隠し状態が原因で再現性がなくなる。 .BR rand_r () -´Ø¿ô¤Ï +関数は .I unsigned int -·¿¤ÎÊÑ¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò°ú¤­¿ô¤Ë¤È¤ê¡¢ -¤³¤ÎÊÑ¿ô¤ò¾õÂÖ³ÊǼÍѤ˻ÈÍѤ¹¤ë¡£ +型の変数へのポインタを引き数にとり、 +この変数を状態格納用に使用する。 .\"O This is a very small amount of state, so this function will be a weak .\"O pseudo-random generator. .\"O Try .\"O .BR drand48_r (3) .\"O instead. -¾õÂÖ¿ô¤¬Èó¾ï¤Ë¾®¤µ¤¤¤Î¤Ç¡¢¤³¤Î´Ø¿ô¤Ï¤¢¤Þ¤ê¤è¤¤µ¼»÷Íð¿ôÀ¸À®´ï¤È¤Ï¸À¤¨¤Ê¤¤¤À¤í¤¦¡£ -Âå¤ï¤ê¤Ë +状態数が非常に小さいので、この関数はあまりよい擬似乱数生成器とは言えないだろう。 +代わりに .BR drand48_r (3) -¤ò»È¤¦¤È¤è¤¤¡£ +を使うとよい。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR rand () .\"O and @@ -153,15 +153,15 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O .BR srand () .\"O function returns no value. .BR rand () -¤È +と .BR rand_r () -´Ø¿ô¤Ï 0 ¤È +関数は 0 と .B RAND_MAX -¤Î´Ö¤Î¿ô¤òÊÖ¤¹¡£ +の間の数を返す。 .BR srand () -´Ø¿ô¤ÏÃͤòÊÖ¤µ¤Ê¤¤¡£ +関数は値を返さない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The functions .\"O .BR rand () .\"O and @@ -170,22 +170,22 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O The function .\"O .BR rand_r () .\"O is from POSIX.1-2001. -´Ø¿ô +関数 .BR rand () -¤È +と .BR srand () -¤Ï SVr4, 4.3BSD, C89, C99, POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ -´Ø¿ô +は SVr4, 4.3BSD, C89, C99, POSIX.1-2001 に準拠している。 +関数 .BR rand_r () -¤Ï POSIX.1-2001 ¤ËͳÍ褹¤ë¡£ +は POSIX.1-2001 に由来する。 .\"O POSIX.1-2008 marks .\"O .BR rand_r () .\"O as obsolete. -POSIX.1-2008 ¤Ï¡¢ +POSIX.1-2008 は、 .BR rand_r () -¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£ +を廃止予定としている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The versions of .\"O .BR rand () .\"O and @@ -198,15 +198,15 @@ POSIX.1-2008 .\"O so .\"O the lower-order bits should be as random as the higher-order bits. .BR rand () -¤È +と .BR srand () -¤Î Linux C Library ÈǤϡ¢ +の Linux C Library 版は、 .BR random (3) -¤È +と .BR srandom (3) -¤Îξ´Ø¿ô¤ÈƱ¤¸Íð¿ôÀ¸À® -¥¢¥ë¥´¥ê¥º¥à¤ò»ÈÍѤ·¤Æ¤¤¤ë¡£¤½¤Î¤¿¤á¡¢²¼°Ì¤Î¥Ó¥Ã¥È¤Ï¾å°Ì¤Î¥Ó¥Ã¥È¤È -Ʊ¤¸¤¯¤é¤¤¤Ë¥é¥ó¥À¥à¤Ç¤¢¤ë¡£ +の両関数と同じ乱数生成 +アルゴリズムを使用している。そのため、下位のビットは上位のビットと +同じくらいにランダムである。 .\"O However, on older .\"O .BR rand () .\"O implementations, and on current implementations on different systems, @@ -216,34 +216,34 @@ POSIX.1-2008 .\"O (Use .\"O .BR random (3) .\"O instead.) -¤·¤«¤·¡¢µìÈǤΠ+しかし、旧版の .BR rand () -¤Î¼ÂÁõ¤ä¡¢Â¾¤Î¥·¥¹¥Æ¥à¤Î¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¡¢²¼°Ì¤Î¥Ó¥Ã¥È¤¬¾å°Ì¤Î¥Ó¥Ã¥È¤Û¤É -¥é¥ó¥À¥à¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¡£°Ü¿¢À­¤ò¹â¤á¤ë¾ì¹ç¤Ç¤â¡¢ÀºÅ٤ι⤤Íð¿ô¤¬É¬Í×¤Ê -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤Î´Ø¿ô¤Ï»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤ -(Âå¤ï¤ê¤Ë +の実装や、他のシステムの現在の実装では、下位のビットが上位のビットほど +ランダムになっていない。移植性を高める場合でも、精度の高い乱数が必要な +アプリケーションではこの関数は使用してはいけない +(代わりに .BR random (3) -¤ò»È¤¦¤³¤È)¡£ +を使うこと)。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O POSIX.1-2001 gives the following example of an implementation of .\"O .BR rand () .\"O and .\"O .BR srand (), .\"O possibly useful when one needs the same sequence on two different machines. -POSIX 1003.1-2003 ¤Ç¤Ï¡¢ +POSIX 1003.1-2003 では、 .BR rand () -¤È +と .BR srand () -¤Î¼ÂÁõÎã¤È¤·¤Æ°Ê²¼¤òµó¤²¤Æ¤¤¤ë¡£¤³¤ì¤Ï¡¢°Û¤Ê¤ë£²¤Ä¤Î¥Þ¥·¥ó¤ÇƱ¤¸Íð¿ô·ÏÎó¤¬ -ɬÍפʾì¹ç¤Ë¤ÏÊØÍø¤Ç¤¢¤í¤¦¡£ +の実装例として以下を挙げている。これは、異なる2つのマシンで同じ乱数系列が +必要な場合には便利であろう。 .sp .in +4n .nf static unsigned long next = 1; .\"O /* RAND_MAX assumed to be 32767 */ -/* RAND_MAX ¤ò 32767 ¤È²¾Äê */ +/* RAND_MAX を 32767 と仮定 */ int myrand(void) { next = next * 1103515245 + 12345; return((unsigned)(next/65536) % 32768); @@ -255,6 +255,6 @@ void mysrand(unsigned seed) { .fi .in .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR drand48 (3), .BR random (3) diff --git a/draft/man3/random.3 b/draft/man3/random.3 index 05e764c8..ff191c52 100644 --- a/draft/man3/random.3 +++ b/draft/man3/random.3 @@ -33,16 +33,16 @@ .\" Translated 1997-01-21, YOSHINO Takashi .\" Updated 2008-08-08, Akihiro MOTOKI .\" -.\" WORD: nonlinear additive feedback ÈóÀþ·Á²ÃË¡¥Õ¥£¡¼¥É¥Ð¥Ã¥¯ -.\" WORD: state array ¾õÂÖÇÛÎó +.\" WORD: nonlinear additive feedback 非線形加法フィードバック +.\" WORD: state array 状態配列 .\" .TH RANDOM 3 2010-09-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O random, srandom, initstate, setstate \- random number generator -random, srandom, initstate, setstate \- Íð¿ô¤òÀ¸À®¤¹¤ë´Ø¿ô +random, srandom, initstate, setstate \- 乱数を生成する関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -58,9 +58,9 @@ random, srandom, initstate, setstate \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -74,7 +74,7 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR random () .\"O function uses a nonlinear additive feedback random @@ -84,12 +84,12 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O The period of this random number generator is very large, approximately .\"O .IR "16\ *\ ((2^31)\ \-\ 1)" . .BR random () -´Ø¿ô¤Ï¡¢ÈóÀþ·Á²ÃË¡¥Õ¥£¡¼¥É¥Ð¥Ã¥¯¤òÍѤ¤¤¿Íð¿ôÀ¸À®´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢0 ¤«¤é \fBRAND_MAX\fR ¤Þ¤Ç¤Îµ¿»÷Íð¿ô¤òÊÖ¤¹¡£ -¤½¤Î¤¿¤á¤Ë 31 ¸Ä¤Î¥í¥ó¥°À°¿ô¤«¤é¤Ê¤ë¥Ç¥Õ¥©¥ë¥È¤Îɽ¤ò»ÈÍѤ¹¤ë¡£ -¤³¤ÎÍð¿ô¤òÀ¸À®¤¹¤ë´Ø¿ô¤Î¼þ´ü¤Ï¤È¤Æ¤âŤ¯¡¢¤ª¤è¤½ +関数は、非線形加法フィードバックを用いた乱数生成関数である。 +この関数は、0 から \fBRAND_MAX\fR までの疑似乱数を返す。 +そのために 31 個のロング整数からなるデフォルトの表を使用する。 +この乱数を生成する関数の周期はとても長く、およそ .I "16\ *\ ((2^31)\ \-\ 1)" -¤Ç¤¢¤ë¡£ +である。 .PP .\"O The .\"O .BR srandom () @@ -105,20 +105,20 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O function .\"O is automatically seeded with a value of 1. .BR srandom () -´Ø¿ô¤Ï¡¢ +関数は、 .BR random () -¤ÇÊÖ¤µ¤ì¤ëµ¿»÷Íð¿ôÀ°¿ô·ÏÎó¤Î¼ï¤òÀßÄꤹ¤ë¡£ -¤½¤Î¤¿¤á¤Ë¤Ï¿·¤·¤¤¼ï¤ò°ú¿ô¤Ë¤·¤Æ +で返される疑似乱数整数系列の種を設定する。 +そのためには新しい種を引数にして .BR srandom () -¤ò¸Æ¤Ù¤Ð¤è¤¤¡£ +を呼べばよい。 .BR random () -¤ÇÀ¸À®¤µ¤ì¤ë·ÏÎó¤Ï¡¢ -°ú¿ô¤ËƱ¤¸¼ï¤ÎÃͤòÍѤ¤¤Æ +で生成される系列は、 +引数に同じ種の値を用いて .BR srandom () -¤ò¸Æ¤Ö¤³¤È¤ÇºÆ¸½²Äǽ¤Ç¤¢¤ë¡£ -¼ï¤ÎÃͤ¬Í¿¤¨¤é¤ì¤Ê¤¤¾ì¹ç¤Ë¤Ï +を呼ぶことで再現可能である。 +種の値が与えられない場合には .BR random () -´Ø¿ô¤Ï¡¢¼«Æ°Åª¤Ë 1 ¤ò¼ï¤ËÀßÄꤹ¤ë¡£ +関数は、自動的に 1 を種に設定する。 .PP .\"O The .\"O .BR initstate () @@ -135,18 +135,18 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O initialization, which specifies a starting point for the random number .\"O sequence, and provides for restarting at the same point. .BR initstate () -´Ø¿ô¤Ï¡¢ +関数は、 .BR random () -¤Ç»ÈÍѤµ¤ì¤ë¾õÂÖÇÛÎó -\fIstate\fP ¤ò½é´ü²½¤¹¤ë¡£ +で使用される状態配列 +\fIstate\fP を初期化する。 .BR initstate () -¤Ç¤Ï¡¢¾õÂÖÇÛÎó¤ÎÂ礭¤µ \fIn\fP ¤Ï -»ÈÍѤ¹¤ë´Ø¿ô¤ÎÍð¿ôÀ¸À®¤ÎÀ­Ç½¤ÎÄøÅÙ¤ò·èÄꤹ¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë -\(em ¾õÂÖÇÛÎó¤¬Â礭¤¤Äø¡¢Íð¿ô¤ÎÀ­Ç½¤Ï¤è¤¯¤Ê¤ë¡£ -\fIseed\fP ¤Ï½é´ü²½¤Î¤¿¤á¤Î¼ï¤Ç¤¢¤ë¡£ -¤³¤ì¤ÏÍð¿ô·ÏÎó¤Î³«»Ï°ÌÃÖ¤ò·èÄꤹ¤ë¤â¤Î¤Ç¤¢¤ê¡¢ -¤³¤ÎÃͤò»ØÄꤹ¤ë¤³¤È¤ÇƱ°ì¤Î³«»Ï°ÌÃÖ¤«¤éÍð¿ô¤ÎÀ¸À®¤ò -ºÆ³«¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +では、状態配列の大きさ \fIn\fP は +使用する関数の乱数生成の性能の程度を決定するために使用される +\(em 状態配列が大きい程、乱数の性能はよくなる。 +\fIseed\fP は初期化のための種である。 +これは乱数系列の開始位置を決定するものであり、 +この値を指定することで同一の開始位置から乱数の生成を +再開することができる。 .PP .\"O The .\"O .BR setstate () @@ -164,23 +164,23 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O or be the result of a previous call of .\"O .BR setstate (). .BR setstate () -´Ø¿ô¤Ï¡¢ +関数は、 .BR random () -¤Ç»ÈÍѤµ¤ì¤ë¾õÂÖÇÛÎó¤òÊѹ¹¤¹¤ë¡£ -¾õÂÖÇÛÎó \fIstate\fP ¤Ï¡¢ +で使用される状態配列を変更する。 +状態配列 \fIstate\fP は、 .BR initstate () -¤Þ¤¿¤Ï +または .BR setstate () -¤¬ -¼¡¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë¤Þ¤Ç¡¢Íð¿ô¤ÎÀ¸À®¤Ë»ÈÍѤµ¤ì¤ë¡£ -\fIstate\fP ¤Ï +が +次に呼び出されるまで、乱数の生成に使用される。 +\fIstate\fP は .BR initstate () -¤òÍѤ¤¤ÆºÇ½é¤Ë½é´ü²½¤µ¤ì¤Æ¤¤¤ë¤«¡¢ -°ÊÁ°¤Ë¸Æ¤Ó½Ð¤·¤¿ +を用いて最初に初期化されているか、 +以前に呼び出した .BR setstate () -¤Î·ë²Ì¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +の結果でなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR random () .\"O function returns a value between 0 and @@ -195,40 +195,40 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O .BR setstate () .\"O function returns a pointer to the previous state array, or NULL on error. .BR random () -´Ø¿ô¤Ï 0 ¤È +関数は 0 と .B RAND_MAX -¤Î´Ö¤ÎÃͤòÊÖ¤¹¡£ +の間の値を返す。 .BR srandom () -´Ø¿ô¤ÏÃͤòÊÖ¤µ¤Ê¤¤¡£ +関数は値を返さない。 .BR initstate () -´Ø¿ô¤ÏľÁ°¤Î¾õÂÖÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +関数は直前の状態配列へのポインタを返す。 .BR setstate () -´Ø¿ô¤ÏľÁ°¤Î¾õÂÖÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤·¡¢ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +関数は直前の状態配列へのポインタを返し、 +エラーの場合は NULL を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O A state array of less than 8 bytes was specified to .\"O .BR initstate (). .BR initstate () -¤Ç8¥Ð¥¤¥È¤è¤ê¤â¾®¤µ¤¤¾õÂÖÇÛÎó¤ò»ØÄꤷ¤¿¡£ +で8バイトよりも小さい状態配列を指定した。 .\"O .SH "CONFORMING TO" .\"O 4.3BSD -.SH ½àµò +.SH 準拠 4.3BSD, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Current "optimal" values for the size of the state array \fIn\fP are .\"O 8, 32, 64, 128, and 256 bytes; other amounts will be rounded down to .\"O the nearest known amount. .\"O Using less than 8 bytes will cause an .\"O error. -¾õÂÖÇÛÎó \fIn\fP ¤ÎÂ礭¤µ¤Î¸½ºß¤Î¡ÖºÇŬ¡×ÃÍ¤Ï -8¡¢32¡¢64¡¢128¡¢256 ¥Ð¥¤¥È¤Ç¤¢¤ë¡£ -¤½¤Î¾¤ÎÎ̤ò»ØÄꤷ¤¿¾ì¹ç¤Ë¤Ï¡¢»ØÄꤷ¤¿Î̤ò±Û¤¨¤Ê¤¤¾å½Ò¤ÎÃÍ¤Ë -ºÇ¤â¶á¤¤Ãͤˤʤ롣 -8 ¥Ð¥¤¥È̤Ëþ¤ÎÎ̤ò»ØÄꤷ¤¿¾ì¹ç¤Ë¤Ï¥¨¥é¡¼¤Î¸¶°ø¤È¤Ê¤ë¡£ +状態配列 \fIn\fP の大きさの現在の「最適」値は +8、32、64、128、256 バイトである。 +その他の量を指定した場合には、指定した量を越えない上述の値に +最も近い値になる。 +8 バイト未満の量を指定した場合にはエラーの原因となる。 .\"O This function should not be used in cases where multiple threads use .\"O .BR random () @@ -236,12 +236,12 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O Use .\"O .BR random_r (3) .\"O for that purpose. -Ê£¿ô¤Î¥¹¥ì¥Ã¥É¤¬ +複数のスレッドが .BR random () -¤ò»È¤¦¤è¤¦¤Ê¾õ¶·¤Ç¤Ï¡¢¤³¤Î´Ø¿ô¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¤½¤Î¾ì¹ç¤Ë¤Ï +を使うような状況では、この関数を使用すべきではない。 +その場合には .BR random_r (3) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .\"O Random-number generation is a complex topic. .\"O .I Numerical Recipes in C: The Art of Scientific Computing @@ -249,25 +249,25 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O T. Vetterling; New York: Cambridge University Press, 2007, 3rd ed.) .\"O provides an excellent discussion of practical random-number generation .\"O issues in Chapter 7 (Random Numbers). -Íð¿ô¤ÎÀ¸À®¤ÏÊ£»¨¤ÊÏÃÂê¤Ç¤¢¤ë¡£ +乱数の生成は複雑な話題である。 .I Numerical Recipes in C: The Art of Scientific Computing (William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling; New York: Cambridge University Press, 2007, 3rd ed.) -¤Ç¤Ï¼ÂÍÑŪ¤ÊÍð¿ôÀ¸À®¤òÏÀÅÀ¤È¤·¤¿Í¥¤ì¤¿µÄÏÀ¤¬Âè 7 ¾Ï (Íð¿ô) ¤ÇŸ³«¤µ¤ì¤Æ¤¤¤ë¡£ +では実用的な乱数生成を論点とした優れた議論が第 7 ç«  (乱数) で展開されている。 .\"O For a more theoretical discussion which also covers many practical issues .\"O in depth, see Chapter 3 (Random Numbers) in Donald E. Knuth's .\"O .IR "The Art of Computer Programming" , .\"O volume 2 (Seminumerical Algorithms), 2nd ed.; Reading, Massachusetts: .\"O Addison-Wesley Publishing Company, 1981. -¤è¤êÍýÏÀŪ¤ÊµÄÏÀ¤Ë¤Ä¤¤¤Æ¤Ï Donald E. Knuth ¤Î +より理論的な議論については Donald E. Knuth の .IR "The Art of Computer Programming" , volume 2 (Seminumerical Algorithms), 2nd ed.; Reading, Massachusetts: Addison-Wesley Publishing Company, 1981 -¤ÎÂè 3 ¾Ï (Íð¿ô) ¤ò¸«¤è¡£¤³¤³¤Ç¤Ï¡¢ -¤¿¤¯¤µ¤ó¤Î¼ÂÍÑŪ¤ÊÏÃÂê¤Ë¤Ä¤¤¤Æ¤â¿¼¤¯ÌÖÍ夵¤ì¤Æ¤¤¤ë¡£ +の第 3 ç«  (乱数) を見よ。ここでは、 +たくさんの実用的な話題についても深く網羅されている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR drand48 (3), .BR rand (3), .BR random_r (3), diff --git a/draft/man3/random_r.3 b/draft/man3/random_r.3 index bdbed8ed..8a0152da 100644 --- a/draft/man3/random_r.3 +++ b/draft/man3/random_r.3 @@ -27,13 +27,13 @@ .\" .TH RANDOM_R 3 2008-03-07 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O random_r, srandom_r, initstate_r, setstate_r \- reentrant .\"O random number generator -random_r, srandom_r, initstate_r, setstate_r \- ¥ê¥¨¥ó¥È¥é¥ó¥È¤Ê -Íð¿ôÀ¸À®´ï +random_r, srandom_r, initstate_r, setstate_r \- リエントラントな +乱数生成器 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -50,9 +50,9 @@ random_r, srandom_r, initstate_r, setstate_r \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -65,17 +65,17 @@ _SVID_SOURCE || _BSD_SOURCE .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions are the reentrant equivalents .\"O of the functions described in .\"O .BR random (3). .\"O They are suitable for use in multithreaded programs where each thread .\"O needs to obtain an independent, reproducible sequence of random numbers. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ +これらの関数は、 .BR random (3) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤Î¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤǡ¢Åù²Á¤Êµ¡Ç½¤ò»ý¤Ä¡£ -¤³¤ì¤é¤Ï¡¢ÆÈΩ¤·¤¿ºÆ¸½²Äǽ¤ÊÍð¿ôÎó¤ò³Æ¥¹¥ì¥Ã¥É¤¬ÆÀ¤ëɬÍפ¬¤¢¤ë¤è¤¦¤Ê -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¡¦¥×¥í¥°¥é¥à¤Ç¤Î»ÈÍѤËŬ¤·¤Æ¤¤¤ë¡£ +で説明されている関数のリエントラント版で、等価な機能を持つ。 +これらは、独立した再現可能な乱数列を各スレッドが得る必要があるような +マルチスレッド・プログラムでの使用に適している。 .\"O The .\"O .BR random_r () @@ -88,15 +88,15 @@ _SVID_SOURCE || _BSD_SOURCE .\"O The generated random number is returned in the argument .\"O .IR result . .BR random_r () -´Ø¿ô¤Ï +関数は .BR random (3) -¤ÈƱÍͤÀ¤¬¡¢ -Âç°èÊÑ¿ô (global variable) ¤Ç´ÉÍý¤µ¤ì¤ë¾õÂÖ¾ðÊó¤ò»È¤¦¤Î¤Ç¤Ï¤Ê¤¯¡¢ +と同様だが、 +大域変数 (global variable) で管理される状態情報を使うのではなく、 .I buf -¤¬»Ø¤¹°ú¤­¿ô¤Ë³ÊǼ¤µ¤ì¤¿¾õÂÖ¾ðÊó¤ò»È¤¦¡£ -À¸À®¤µ¤ì¤¿Íð¿ô¤Ï°ú¤­¿ô +が指す引き数に格納された状態情報を使う。 +生成された乱数は引き数 .I result -¤Ë³ÊǼ¤µ¤ì¤ÆÊÖ¤µ¤ì¤ë¡£ +に格納されて返される。 .\"O The .\"O .BR srandom_r () @@ -107,13 +107,13 @@ _SVID_SOURCE || _BSD_SOURCE .\"O .IR buf , .\"O instead of the seed associated with the global state variable. .BR srandom_r () -´Ø¿ô¤Ï +関数は .BR srandom (3) -¤ÈƱÍͤÀ¤¬¡¢ -Âç°èÊÑ¿ô¤Ç´ÉÍý¤µ¤ì¤ë¾õÂÖ¤ËÂбþ¤¹¤ëÍð¿ôÀ¸À®´ï¤Î¼ï¤Ç¤Ï¤Ê¤¯¡¢ +と同様だが、 +大域変数で管理される状態に対応する乱数生成器の種ではなく、 .I buf -¤¬»Ø¤¹¥ª¥Ö¥¸¥§¥¯¥È¤Ç´ÉÍý¤µ¤ì¤ë¾õÂÖ¤ËÂбþ¤¹¤ëÍð¿ôÀ¸À®´ï¤Î¼ï¤ò -½é´ü²½¤¹¤ë¡£ +が指すオブジェクトで管理される状態に対応する乱数生成器の種を +初期化する。 .\"O The .\"O .BR initstate_r () @@ -123,11 +123,11 @@ _SVID_SOURCE || _BSD_SOURCE .\"O .IR buf , .\"O rather than initializing the global state variable. .BR initstate_r () -´Ø¿ô¤Ï +関数は .BR initstate (3) -¤ÈƱÍͤÀ¤¬¡¢Âç°èÊÑ¿ô¤Ç´ÉÍý¤µ¤ì¤ë¾õÂÖ¤ò½é´ü²½¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ +と同様だが、大域変数で管理される状態を初期化するのではなく、 .I buf -¤¬»Ø¤¹¥ª¥Ö¥¸¥§¥¯¥ÈÆâ¤Î¾õÂÖ¤ò½é´ü²½¤¹¤ë¡£ +が指すオブジェクト内の状態を初期化する。 .\"O The .\"O .BR setstate_r () @@ -137,25 +137,25 @@ _SVID_SOURCE || _BSD_SOURCE .\"O .IR buf , .\"O rather than modifying the global state variable. .BR setstate_r () -´Ø¿ô¤Ï +関数は .BR setstate (3) -¤ÈƱÍͤÀ¤¬¡¢Âç°èÊÑ¿ô¤Ç´ÉÍý¤µ¤ì¤ë¾õÂÖ¤òÊѹ¹¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ +と同様だが、大域変数で管理される状態を変更するのではなく、 .I buf -¤¬»Ø¤¹¥ª¥Ö¥¸¥§¥¯¥ÈÆâ¤Î¾õÂÖ¤òÊѹ¹¤¹¤ë¡£ +が指すオブジェクト内の状態を変更する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O All of these functions return 0 on success, or \-1 on error. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤·¡¢ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ +これらの関数は、成功すると 0 を返し、 +エラーの場合は \-1 を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O A state array of less than 8 bytes was specified to .\"O .BR initstate_r (). -8 ¥Ð¥¤¥È¤è¤ê¾®¤µ¤¤¾õÂÖÇÛÎó¤¬ +8 バイトより小さい状態配列が .BR initstate_r () -¤Ë»ØÄꤵ¤ì¤¿¡£ +に指定された。 .TP .B EINVAL .\"O The @@ -166,11 +166,11 @@ _SVID_SOURCE || _BSD_SOURCE .\"O .BR setstate_r () .\"O was NULL. .BR setstate_r () -¤Î°ú¤­¿ô +の引き数 .I statebuf -¤« +か .I buf -¤¬ NULL ¤Ç¤¢¤Ã¤¿¡£ +が NULL であった。 .TP .B EINVAL .\"O The @@ -181,19 +181,19 @@ _SVID_SOURCE || _BSD_SOURCE .\"O .BR random_r () .\"O was NULL. .BR random_r () -¤Î°ú¤­¿ô +の引き数 .I buf -¤« +か .I result -¤¬ NULL ¤Ç¤¢¤Ã¤¿¡£ +が NULL であった。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These functions are nonstandard glibc extensions. -¤³¤ì¤é¤Î´Ø¿ô¤ÏÈóɸ½à¤Ç glibc ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ +これらの関数は非標準で glibc による拡張である。 .\" These functions appear to be on Tru64, but don't seem to be on .\" Solaris, HP-UX, or FreeBSD. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR drand48 (3), .BR rand (3), .BR random (3) diff --git a/draft/man3/rcmd.3 b/draft/man3/rcmd.3 index 20bf5ce1..c5453ea6 100644 --- a/draft/man3/rcmd.3 +++ b/draft/man3/rcmd.3 @@ -42,17 +42,17 @@ .\" Japanese Version Copyright (c) 1999 NAKANO Takeo all rights reserved. .\" Translated Mon Mar 1 1999 by NAKANO Takeo .\" -.\"WORD: standard name (¥Û¥¹¥È¤Î) ɸ½à̾ -.\"WORD: regular file Ä̾ï¥Õ¥¡¥¤¥ë +.\"WORD: standard name (ホストの) 標準名 +.\"WORD: regular file 通常ファイル .\" .TH RCMD 3 2007-12-28 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O rcmd, rresvport, iruserok, ruserok \- routines for returning a .\"O stream to a remote command -.SH ̾Á° -rcmd, rresvport, iruserok, ruserok \- ¥ê¥â¡¼¥È¥³¥Þ¥ó¥É¤Ë¥¹¥È¥ê¡¼¥à¤òÊÖ¤¹´Ø¿ô·² +.SH 名前 +rcmd, rresvport, iruserok, ruserok \- リモートコマンドにストリームを返す関数群 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include \ \ \fP/* Or on some systems */ .sp @@ -71,9 +71,9 @@ rcmd, rresvport, iruserok, ruserok \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR rcmd (), @@ -81,24 +81,24 @@ glibc .BR ruserok (): _BSD_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR rcmd () .\"O function is used by the superuser to execute a command on .\"O a remote machine using an authentication scheme based .\"O on privileged port numbers. .BR rcmd () -´Ø¿ô¤Ï¡¢¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¤¬¥ê¥â¡¼¥È¥Þ¥·¥ó¤Ç¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Ë -ÍѤ¤¤é¤ì¤ë¡£¤³¤Î¤È¤­Æø¢¥Ý¡¼¥ÈÈÖ¹æ¤ò¤â¤È¤Ë¤·¤¿Ç§¾Ú¥¹¥­¡¼¥à¤¬ -ÍѤ¤¤é¤ì¤ë¡£ +関数は、スーパーユーザーがリモートマシンでコマンドを実行するために +用いられる。このとき特権ポート番号をもとにした認証スキームが +用いられる。 .\"O The .\"O .BR rresvport () .\"O function .\"O returns a descriptor to a socket .\"O with an address in the privileged port space. .BR rresvport () -´Ø¿ô¤Ï¡¢Æø¢¥Ý¡¼¥È¶õ´Ö¤Î¥¢¥É¥ì¥¹¤ò»ý¤Ä¥½¥±¥Ã¥È¤Î -¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤òÊÖ¤¹¡£ +関数は、特権ポート空間のアドレスを持つソケットの +ディスクリプターを返す。 .\"O The .\"O .BR iruserok () .\"O and @@ -107,19 +107,19 @@ _BSD_SOURCE .\"O to authenticate clients requesting service with .\"O .BR rcmd (). .BR iruserok () -´Ø¿ô¤È +関数と .BR ruserok () -´Ø¿ô¤Ï¡¢ +関数は、 .BR rcmd () -¤Ç¥µ¡¼¥Ó¥¹Í×µá¤ò¹Ô¤Ã¤¿¥¯¥é¥¤¥¢¥ó¥È¤Îǧ¾Ú¤ò¹Ô¤¦¤¿¤á¤Ë -¥µ¡¼¥Ð¡¼¤¬ÍѤ¤¤ë´Ø¿ô¤Ç¤¢¤ë¡£ +でサービス要求を行ったクライアントの認証を行うために +サーバーが用いる関数である。 .\"O All four functions are present in the same file and are used .\"O by the .\"O .BR rshd (8) .\"O server (among others). -°Ê¾å¤Î 4 ¤Ä¤Î´Ø¿ô¤Ï¡¢¤¹¤Ù¤ÆƱ¤¸¥Õ¥¡¥¤¥ë¤Ëµ­½Ò¤µ¤ì¤Æ¤ª¤ê¡¢ +以上の 4 つの関数は、すべて同じファイルに記述されており、 .BR rshd (8) -¥µ¡¼¥Ð¡¼¤Ë¤è¤Ã¤Æ (¾¤Î´Ø¿ô¤È¤È¤â¤Ë) ÍøÍѤµ¤ì¤ë¡£ +サーバーによって (他の関数とともに) 利用される。 .PP .\"O The .\"O .BR rcmd () @@ -136,17 +136,17 @@ _BSD_SOURCE .\"O residing at the well-known Internet port .\"O .IR inport . .BR rcmd () -´Ø¿ô¤Ï +関数は .BR gethostbyname (3) -¤òÍѤ¤¤Æ +を用いて .I *ahost -¤Î»²¾È¤ò¹Ô¤¦¡£¥Û¥¹¥È¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ -¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤Ï +の参照を行う。ホストが存在しない場合は \-1 を返す。 +見つかった場合は .I *ahost -¤Ë¥Û¥¹¥È¤Îɸ½à̾ (standard name) ¤ò¥»¥Ã¥È¤·¤Æ¡¢ -ͽÌ󤵤ì¤Æ¤¤¤ë¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥Ý¡¼¥È +にホストの標準名 (standard name) をセットして、 +予約されているインターネットポート .I inport -·Ðͳ¤Ç¥µ¡¼¥Ð¡¼¤Ø¤ÎÀܳ¤ò³ÎΩ¤¹¤ë¡£ +経由でサーバーへの接続を確立する。 .PP .\"O If the connection succeeds, .\"O a socket in the Internet domain of type @@ -156,14 +156,14 @@ _BSD_SOURCE .\"O .IR stdin .\"O and .\"O .IR stdout . -Àܳ¤ËÀ®¸ù¤·¤¿¤é¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥É¥á¥¤¥ó¤Ë¸ºß¤¹¤ë¥¿¥¤¥× +接続に成功したら、インターネットドメインに存在するタイプ .B SOCK_STREAM -¤Î¥½¥±¥Ã¥È¤¬¸Æ¤Ó½Ð¤·¤â¤È¤ËÊÖ¤µ¤ì¤ë¡£ -¤³¤Î¥½¥±¥Ã¥È¤ÎÁê¼ê¦¤Ï¥ê¥â¡¼¥È¥³¥Þ¥ó¥É¤Î +のソケットが呼び出しもとに返される。 +このソケットの相手側はリモートコマンドの .I stdin -¤ª¤è¤Ó +および .I stdout -¤ËÀܳ¤µ¤ì¤ë¡£ +に接続される。 .\"O If .\"O .I fd2p .\"O is nonzero, then an auxiliary channel to a control @@ -171,19 +171,19 @@ _BSD_SOURCE .\"O in .\"O .IR *fd2p . .I fd2p -¤¬¥¼¥í¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢À©¸æ¥×¥í¥»¥¹¤Ø¤ÎÀܳ¤¬¤â¤¦°ì¤ÄÍÑ°Õ¤µ¤ì¡¢ -¤½¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤¬ +がゼロでない場合は、制御プロセスへの接続がもう一つ用意され、 +そのディスクリプターが .I *fd2p -¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ +にセットされる。 .\"O The control process will return diagnostic .\"O output from the command (unit 2) on this channel, and will also .\"O accept bytes on this channel as being UNIX signal numbers, to be .\"O forwarded to the process group of the command. -À©¸æ¥×¥í¥»¥¹¤Ï¥ê¥â¡¼¥È¥³¥Þ¥ó¥É¤«¤é¤Îɸ½à¥¨¥é¡¼½ÐÎÏ (unit 2) ¤ò -¤³¤Î¥Á¥ã¥ó¥Í¥ë¤ËÊÖ¤¹¡£ -¤Þ¤¿À©¸æ¥×¥í¥»¥¹¤Ï¤³¤ÎÀܳ¤«¤é¼õ¤±¼è¤Ã¤¿¥Ð¥¤¥È¥Ç¡¼¥¿¤ò -UNIX ¥·¥°¥Ê¥ë¤ÎÈÖ¹æ¤È¤·¤Æ°·¤¤¡¢¥ê¥â¡¼¥È¥³¥Þ¥ó¥É¤Î¥×¥í¥»¥¹ -¥°¥ë¡¼¥×¤Ø¤È¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +制御プロセスはリモートコマンドからの標準エラー出力 (unit 2) を +このチャンネルに返す。 +また制御プロセスはこの接続から受け取ったバイトデータを +UNIX シグナルの番号として扱い、リモートコマンドのプロセス +グループへとシグナルを送る。 .\"O If .\"O .I fd2p .\"O is 0, then the @@ -195,20 +195,20 @@ UNIX .\"O provision is made for sending arbitrary signals to the remote process, .\"O although you may be able to get its attention by using out-of-band data. .I fd2p -¤¬¥¼¥í¤Î¾ì¹ç¤Ï¡¢ +がゼロの場合は、 .I stderr -(¥ê¥â¡¼¥È¥³¥Þ¥ó¥É¤Î unit 2) ¤Ï +(リモートコマンドの unit 2) は .I stdout -¤È°ì½ï¤Ë¤Þ¤È¤á¤é¤ì¤ë¡£¤Þ¤¿¤³¤Î¾ì¹ç¤Ï¥ê¥â¡¼¥È¥×¥í¥»¥¹¤Ø -Ǥ°Õ¤Î¥·¥°¥Ê¥ë¤òÁ÷¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¯¤Ê¤ë¡£ -¤¿¤À¤·ÂÓ°è³° (out-of-band) ¥Ç¡¼¥¿¤òÍѤ¤¤ì¤Ð¡¢ -¥ê¥â¡¼¥È¥×¥í¥»¥¹¤ÎÃí°Õ¤ò°ú¤¯¤³¤È¤Ï¤Ç¤­¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +と一緒にまとめられる。またこの場合はリモートプロセスへ +任意のシグナルを送ることはできなくなる。 +ただし帯域外 (out-of-band) データを用いれば、 +リモートプロセスの注意を引くことはできるかもしれない。 .PP .\"O The protocol is described in detail in .\"O .BR rshd (8). -¥×¥í¥È¥³¥ë¤Î¾ÜºÙ¤Ï +プロトコルの詳細は .BR rshd (8) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +に記述されている。 .PP .\"O The .\"O .BR rresvport () @@ -220,12 +220,12 @@ UNIX .\"O Privileged Internet ports are those in the range 0 to 1023. .\"O Only the superuser is allowed to bind an address of this sort to a socket. .BR rresvport () -´Ø¿ô¤ÏÆø¢¥¢¥É¥ì¥¹¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¤¿¥½¥±¥Ã¥È¤ò¼èÆÀ¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ -¤³¤Î¥½¥±¥Ã¥È¤Ï +関数は特権アドレスにバインドされたソケットを取得するために用いられる。 +このソケットは .BR rcmd () -¤Ê¤É¤Î´Ø¿ô¤Ç¤ÎÍøÍѤËŬ¤·¤Æ¤¤¤ë¡£¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥Ý¡¼¥È¤ÎÆø¢¥Ý¡¼¥È¤Ï¡¢ -0 ¤«¤é 1023 ¤ÎÈϰϤǤ¢¤ë¡£¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¤À¤±¤¬¤³¤ì¤é¤Î¥¢¥É¥ì¥¹¤ò -¥½¥±¥Ã¥È¤Ë¥Ð¥¤¥ó¥É¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +などの関数での利用に適している。インターネットポートの特権ポートは、 +0 から 1023 の範囲である。スーパーユーザーだけがこれらのアドレスを +ソケットにバインドすることができる。 .PP .\"O The .\"O .BR iruserok () @@ -235,14 +235,14 @@ UNIX .\"O two usernames and a flag indicating whether the local user's .\"O name is that of the superuser. .BR iruserok () -¤È +と .BR ruserok () -´Ø¿ô¤Ï¡¢¤Þ¤º°Ê²¼¤Î°ú¿ô¤ò¼è¤ë: ¥ê¥â¡¼¥È¥Û¥¹¥È +関数は、まず以下の引数を取る: リモートホスト .RB ( iruserok () -¤Ï IP ¥¢¥É¥ì¥¹¤Ç¡¢ +は IP アドレスで、 .BR ruserok () -¤Ï¥Û¥¹¥È̾¤Ç»ØÄê)¡¢ 2 ¤Ä¤Î¥æ¡¼¥¶¡¼Ì¾¡¢¥í¡¼¥«¥ë¥æ¡¼¥¶¡¼¤Î̾Á°¤¬ -¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¤Î¤â¤Î¤Ç¤¢¤ë¤«¤É¤¦¤«¤ò¼¨¤¹¥Õ¥é¥°¡¢¤Ç¤¢¤ë¡£ +はホスト名で指定)、 2 つのユーザー名、ローカルユーザーの名前が +スーパーユーザーのものであるかどうかを示すフラグ、である。 .\"O Then, if the user is .\"O .I not .\"O the superuser, it checks the @@ -252,13 +252,13 @@ UNIX .\"O .IR .rhosts .\"O in the local user's home directory is checked to see if the request for .\"O service is allowed. -¤â¤·¥æ¡¼¥¶¡¼¤¬\fB¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¤Ç¤Ï¤Ê¤¤\fP¾ì¹ç¤Ï¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +もしユーザーが\fBスーパーユーザーではない\fP場合は、これらの関数は .I /etc/hosts.equiv -¥Õ¥¡¥¤¥ë¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¤ê¡¢ -ÆâÍƤΥÁ¥§¥Ã¥¯¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ -¥í¡¼¥«¥ë¥æ¡¼¥¶¡¼¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë +ファイルをチェックする。ファイルが見つからなかったり、 +内容のチェックに失敗した場合には、 +ローカルユーザーのホームディレクトリにある .I .rhosts -¥Õ¥¡¥¤¥ë¤ò¥Á¥§¥Ã¥¯¤·¤Æ¡¢¥µ¡¼¥Ó¥¹Í׵᤬µö²Ä¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«Ä´¤Ù¤ë¡£ +ファイルをチェックして、サービス要求が許可されているかどうか調べる。 .PP .\"O If this file does not exist, is not a regular file, is owned by anyone .\"O other than the user or the superuser, or is writable by anyone other @@ -275,49 +275,49 @@ UNIX .\"O If the local domain (as obtained from .\"O .BR gethostname (2)) .\"O is the same as the remote domain, only the machine name need be specified. -¤³¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤«¤Ã¤¿¤ê¡¢ -Ä̾ï¥Õ¥¡¥¤¥ë (regular file) ¤Ç¤Ï¤Ê¤«¤Ã¤¿¤ê¡¢ -»ØÄê¥æ¡¼¥¶¡¼¤Þ¤¿¤Ï¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼°Ê³°¤Î½êÍ­¤À¤Ã¤¿¤ê¡¢ -½êÍ­¼Ô°Ê³°¤«¤é½ñ¤­¹þ¤ß²Äǽ¤À¤Ã¤¿¤ê¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ -¤³¤Î¥Á¥§¥Ã¥¯¤Ï¼«Æ°Åª¤Ë¼ºÇÔ¤¹¤ë¡£ -¥Þ¥·¥ó¤Î̾Á°¤¬ +このファイルが存在しなかったり、 +通常ファイル (regular file) ではなかったり、 +指定ユーザーまたはスーパーユーザー以外の所有だったり、 +所有者以外から書き込み可能だったりした場合には、 +このチェックは自動的に失敗する。 +マシンの名前が .I hosts.equiv -¤Ë¥ê¥¹¥È¤µ¤ì¤Æ¤¤¤¿¤ê¡¢ -¥Û¥¹¥È¤È¥ê¥â¡¼¥È¥æ¡¼¥¶¡¼¤Î̾Á°¤¬ +にリストされていたり、 +ホストとリモートユーザーの名前が .I .rhosts -¥Õ¥¡¥¤¥ë¤Ë½ñ¤«¤ì¤Æ¤¤¤¿¾ì¹ç¤Ë¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï¡¢ +ファイルに書かれていた場合には 0 が返される。 +それ以外の場合には、 .BR iruserok () -¤È +と .BR ruserok () -¤Ï \-1 ¤òÊÖ¤¹¡£ +は \-1 を返す。 .RB ( gethostname (2) -¤Ë¤è¤Ã¤Æ¼èÆÀ¤µ¤ì¤ë) ¥í¡¼¥«¥ë¥É¥á¥¤¥ó¤¬¥ê¥â¡¼¥È¤Î¥É¥á¥¤¥ó¤ÈƱ¤¸¾ì¹ç¤Ï¡¢ -¥Þ¥·¥ó¤Î̾Á°¤À¤±¤ò»ØÄꤹ¤ì¤Ð¤è¤¤¡£ +によって取得される) ローカルドメインがリモートのドメインと同じ場合は、 +マシンの名前だけを指定すればよい。 .PP .\"O If the IP address of the remote host is known, .\"O .BR iruserok () .\"O should be used in preference to .\"O .BR ruserok (), .\"O as it does not require trusting the DNS server for the remote host's domain. -¥ê¥â¡¼¥È¥Û¥¹¥È¤Î IP ¥¢¥É¥ì¥¹¤¬¤ï¤«¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ +リモートホストの IP アドレスがわかっている場合は、 .BR ruserok () -¤è¤ê¤â -.BR iruserok () ¤òÍѤ¤¤ëÊý¤¬Îɤ¤¤À¤í¤¦¡£ +よりも +.BR iruserok () を用いる方が良いだろう。 .BR ruserok () -¤Ï¥ê¥â¡¼¥È¥Û¥¹¥È¤Î½ê°¤¹¤ë¥É¥á¥¤¥ó¤Î DNS ¥µ¡¼¥Ð¡¼¤¬¿®Íê¤Ç¤­¤Ê¤¯¤Æ¤â -»ÈÍѤǤ­¤ë¤«¤é¤Ç¤¢¤ë¡£ +はリモートホストの所属するドメインの DNS サーバーが信頼できなくても +使用できるからである。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR rcmd () .\"O function .\"O returns a valid socket descriptor on success. .\"O It returns \-1 on error and prints a diagnostic message on the standard error. .BR rcmd () -´Ø¿ô¤ÏÀ®¸ù¤¹¤ë¤ÈÍ­¸ú¤Ê¥½¥±¥Ã¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤òÊÖ¤¹¡£ -¼ºÇÔ¤¹¤ë¤È \-1 ¤òÊÖ¤·¡¢É¸½à¥¨¥é¡¼½ÐÎϤ˿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤ò -ɽ¼¨¤¹¤ë¡£ +関数は成功すると有効なソケットディスクリプターを返す。 +失敗すると \-1 を返し、標準エラー出力に診断メッセージを +表示する。 .PP .\"O The .\"O .BR rresvport () @@ -330,34 +330,34 @@ UNIX .\"O .BR EAGAIN .\"O is overloaded to mean "All network ports in use." .BR rresvport () -´Ø¿ô¤Ï¡¢À®¸ù¤¹¤ë¤È¥Ð¥¤¥ó¥É¤µ¤ì¤¿Í­¸ú¤Ê¥½¥±¥Ã¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤òÊÖ¤¹¡£ -¼ºÇÔ¤¹¤ë¤È \-1 ¤òÊÖ¤·¡¢¥°¥í¡¼¥Ð¥ëÊÑ¿ô +関数は、成功するとバインドされた有効なソケットディスクリプターを返す。 +失敗すると \-1 を返し、グローバル変数 .I errno -¤ò¥¨¥é¡¼¤Î¸¶°ø¤ËÂбþ¤¹¤ëÃͤ˥»¥Ã¥È¤¹¤ë¡£ -¥¨¥é¡¼¥³¡¼¥É +をエラーの原因に対応する値にセットする。 +エラーコード .B EAGAIN -¤Ï¡¢¤³¤Î´Ø¿ô¤Ë¤ª¤¤¤Æ¤Ï¡Ö¤¹¤Ù¤Æ¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥Ý¡¼¥È¤¬»ÈÍÑÃæ¡× -¤È¤¤¤¦°ÕÌ£¤òɽ¤¹¡£ +は、この関数においては「すべてのネットワークポートが使用中」 +という意味を表す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O Not in POSIX.1-2001. .\"O Present on the BSDs, Solaris, and many other systems. .\"O These .\"O functions appeared in .\"O 4.2BSD. -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -BSD ·Ï¡¢Solaris ¤ä¾¤Î¿¤¯¤Î¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ï 4.2BSD ¤ÇÅо줷¤¿¡£ +POSIX.1-2001 にはない。 +BSD 系、Solaris や他の多くのシステムに存在する。 +これらの関数は 4.2BSD で登場した。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O .BR iruserok () .\"O is not declared in glibc headers. .BR iruserok () -¤Ï glibc ¤Î¥Ø¥Ã¥À¤Ç¤ÏÀë¸À¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +は glibc のヘッダでは宣言されていない。 .\" Bug filed 25 Nov 2007: .\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=5399 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR rlogin (1), .BR rsh (1), .BR intro (2), diff --git a/draft/man3/re_comp.3 b/draft/man3/re_comp.3 index 5233452d..2a5f4f93 100644 --- a/draft/man3/re_comp.3 +++ b/draft/man3/re_comp.3 @@ -28,9 +28,9 @@ .\" Wed Jun 14 16:10:28 BST 1995 Wilf. (G.Wilford@@ee.surrey.ac.uk) .\" .TH RE_COMP 3 1995-07-14 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -re_comp, re_exec \- BSD ¤ÎÀµµ¬É½¸½´Ø¿ô -.SH ½ñ¼° +.SH 名前 +re_comp, re_exec \- BSD の正規表現関数 +.SH 書式 .B #define _REGEX_RE_COMP .br .B #include @@ -40,46 +40,46 @@ re_comp, re_exec \- BSD .BI "char *re_comp(char *" regex ); .sp .BI "int re_exec(char *" string ); -.SH ÀâÌÀ +.SH 説明 .BR re_comp () -¤Ï¡¢ +は、 .I regex -¤Ç¼¨¤µ¤ì¤ë NULL ¤Ç½ªÃ¼¤µ¤ì¤¿Àµµ¬É½¸½¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ -¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥Ñ¥¿¡¼¥ó¤ÏÀÅŪ¤ÊÎΰè¤ò»ÈÍѤ·¤Æ¤ª¤ê¡¢¤½¤Î¥Ñ¥¿¡¼¥ó¥Ð¥Ã¥Õ¥¡ -¤Ï°Ê¹ß¤Î +で示される NULL で終端された正規表現をコンパイルするために使用される。 +コンパイルされたパターンは静的な領域を使用しており、そのパターンバッファ +は以降の .BR re_comp () -¤Î»ÈÍѤˤè¤Ã¤Æ¾å½ñ¤­¤µ¤ì¤ë¡£ -¤â¤· +の使用によって上書きされる。 +もし .I regex -¤¬ NULL ¤Ê¤é¤Ð²¿¤ÎÁàºî¤â¹Ô¤ï¤ì¤º¡¢¥Ñ¥¿¡¼¥ó¥Ð¥Ã¥Õ¥¡¤ÎÆâÍÆ¤Ï -ÃÖ¤­´¹¤¨¤é¤ì¤Ê¤¤¡£ +が NULL ならば何の操作も行われず、パターンバッファの内容は +置き換えられない。 .BR re_exec () -¤Ï¡¢ +は、 .I string -¤¬»Ø¤¹ NULL ¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤¬Á°²ó¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿ +が指す NULL で終端された文字列が前回コンパイルされた .I regex -¤Ë¥Þ¥Ã¥Á¤¹¤ë¤«¤É¤¦¤«¤òɾ²Á¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +にマッチするかどうかを評価するために使用される。 +.SH 返り値 .BR re_comp () -¤Ï¡¢ +は、 .I regex -¤Î¥³¥ó¥Ñ¥¤¥ë¤ËÀ®¸ù¤·¤¿¾ì¹ç NULL ¤òÊÖ¤·¡¢ -¤½¤ì°Ê³°¤Î¾ì¹ç¤ÏŬÀڤʥ¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +のコンパイルに成功した場合 NULL を返し、 +それ以外の場合は適切なエラーメッセージへのポインタを返す。 .BR re_exec () -¤Ï¡¢°ìÃפ·¤¿¾ì¹ç 1 ¤ò¡¢¼ºÇÔ¤·¤¿¾ì¹ç 0 ¤òÊÖ¤¹¡£ -.SH ½àµò +は、一致した場合 1 を、失敗した場合 0 を返す。 +.SH 準拠 4.3BSD. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O These functions are obsolete; the functions documented in .\"O .BR regcomp (3) .\"O should be used instead. -¤³¤ì¤é¤Î´Ø¿ô¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¡£Âå¤ï¤ê¤Ë +これらの関数は廃止予定である。代わりに .BR regcomp (3) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë´Ø¿ô¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +に書かれている関数を使用すべきである。 +.SH 関連項目 .BR regcomp (3), .BR regex (7), GNU regex manual diff --git a/draft/man3/readdir.3 b/draft/man3/readdir.3 index df69a6b4..18940c1f 100644 --- a/draft/man3/readdir.3 +++ b/draft/man3/readdir.3 @@ -41,11 +41,11 @@ .\" .TH READDIR 3 2010-09-10 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O readdir, readdir_r \- read a directory -readdir, readdir_r \- ¥Ç¥£¥ì¥¯¥È¥ê¤òÆɤ߹þ¤à +readdir, readdir_r \- ディレクトリを読み込む .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -58,9 +58,9 @@ readdir, readdir_r \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .ad l .in .sp @@ -71,7 +71,7 @@ _SVID_SOURCE || _POSIX_SOURCE .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR readdir () .\"O function returns a pointer to a \fIdirent\fP structure @@ -80,17 +80,17 @@ _SVID_SOURCE || _POSIX_SOURCE .\"O It returns NULL on reaching the end of the directory stream or if .\"O an error occurred. .BR readdir () -´Ø¿ô¤Ï¡¢\fIdirp\fP ¤¬»Ø¤¹¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤ÎÃæ¤Ç¡¢ -¼¡¤Î¥Ç¥£¥ì¥¯¥È¥ê¥¨¥ó¥È¥ê¤òɽ¤¹ \fIdirent\fP ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤ÎËöÈø¤Ë㤷¤¿¾ì¹ç¤ä¡¢ -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï¡¢ NULL ¤òÊÖ¤¹¡£ +関数は、\fIdirp\fP が指すディレクトリストリームの中で、 +次のディレクトリエントリを表す \fIdirent\fP 構造体へのポインタを返す。 +ディレクトリストリームの末尾に達した場合や、 +エラーが発生した場合は、 NULL を返す。 .PP .\"O On Linux, the .\"O .I dirent .\"O structure is defined as follows: -Linux ¤Ç¤Ï +Linux では .I dirent -¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +構造体は以下のように定義されている。 .PP .in +4n .nf @@ -101,12 +101,12 @@ struct dirent { .\"O unsigned char d_type; /* type of file; not supported .\"O by all file system types */ .\"O char d_name[256]; /* filename */ - ino_t d_ino; /* inode ÈÖ¹æ */ - off_t d_off; /* ¼¡¤Î dirent ¤Ø¤Î¥ª¥Õ¥»¥Ã¥È */ - unsigned short d_reclen; /* ¤³¤Î¥ì¥³¡¼¥É¤ÎŤµ */ - unsigned char d_type; /* ¥Õ¥¡¥¤¥ë¼ïÊÌ¡£Á´¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à */ - ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤ */ - char d_name[256]; /* ¥Õ¥¡¥¤¥ë̾ */ + ino_t d_ino; /* inode 番号 */ + off_t d_off; /* 次の dirent へのオフセット */ + unsigned short d_reclen; /* このレコードの長さ */ + unsigned char d_type; /* ファイル種別。全ファイルシステム */ + でサポートされているわけではない */ + char d_name[256]; /* ファイル名 */ }; .fi .in @@ -121,20 +121,20 @@ struct dirent { .\"O and (as an XSI extension) .\"O .IR d_ino . .I dirent -¹½Â¤ÂΤΥե£¡¼¥ë¥É¤Ç POSIX.1 ¤ÇÍ׵ᤵ¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢ +構造体のフィールドで POSIX.1 で要求されているのは、 .IR d_name [] -¤È (XSI ³ÈÄ¥¤Ç¤Î) +と (XSI 拡張での) .I d_ino -¤À¤±¤Ç¤¢¤ë¡£ +だけである。 .IR d_name [] -¤Ï¤½¤ÎÂ礭¤µ¤âµ¬Äꤵ¤ì¤Æ¤ª¤é¤º¡¢ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ë¤ÏºÇÂç¤Ç +はその大きさも規定されておらず、 +このフィールドには最大で .B NAME_MAX -¸Ä¤Îʸ»ú¤È¡¢¤½¤ì¤Ë³¤¯½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤¬³ÊǼ¤µ¤ì¤ë¡£ +個の文字と、それに続く終端の NULL バイトが格納される。 .\"O The other fields are unstandardized, and not present on all systems; .\"O see NOTES below for some further details. -¾¤Î¥Õ¥£¡¼¥ë¥É¤ÏÈóɸ½à¤Ç¤¢¤ê¡¢Á´¤Æ¤Î¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢²¼µ­¤Î¡ÖÃí°Õ¡×¤ò»²¾È¤Î¤³¤È¡£ +他のフィールドは非標準であり、全てのシステムに存在するわけではない。 +詳細については、下記の「注意」を参照のこと。 .PP .\"O The data returned by .\"O .BR readdir () @@ -142,9 +142,9 @@ struct dirent { .\"O .BR readdir () .\"O for the same directory stream. .BR readdir () -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë¥Ç¡¼¥¿¤Ï¡¢¤½¤ì°Ê¹ß¤ÎƱ¤¸¥¹¥È¥ê¡¼¥à¤ËÂФ¹¤ë +によって返されるデータは、それ以降の同じストリームに対する .BR readdir () -¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤Æ¾å½ñ¤­¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +の呼び出しによって上書きされる可能性がある。 .\"O The .\"O .BR readdir_r () @@ -161,23 +161,23 @@ struct dirent { .\"O then NULL is instead returned in .\"O .IR *result . .BR readdir_r () -´Ø¿ô¤Ï +関数は .BR readdir () -¤Î¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤǤ¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à +のリエントラント版である。 +この関数はディレクトリストリーム .I dirp -¤«¤é¼¡¤Î¥Ç¥£¥ì¥¯¥È¥ê¥¨¥ó¥È¥ê¤òÆɤ߹þ¤ß¡¢ +から次のディレクトリエントリを読み込み、 .I entry -¤¬»Ø¤¹¸Æ¤Ó½Ð¤·¸µ¤¬³ä¤êÅö¤Æ¤¿¥Ð¥Ã¥Õ¥¡¤Ë¤½¤Î¥¨¥ó¥È¥ê¤ò³ÊǼ¤·¤ÆÊÖ¤¹ -(¤³¤Î¥Ð¥Ã¥Õ¥¡¤Î³ä¤êÅö¤Æ¤Ë¤Ä¤¤¤Æ¤Ï¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¤Î¤³¤È)¡£ -ÊÖ¤µ¤ì¤ë¥¨¥ó¥È¥ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬ +が指す呼び出し元が割り当てたバッファにそのエントリを格納して返す +(このバッファの割り当てについては「注意」の節を参照のこと)。 +返されるエントリへのポインタが .I *result -¤Ë³ÊǼ¤µ¤ì¤ë¡£¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤ÎËöÈø¤Ë㤷¤¿¾ì¹ç¤Ï¡¢ -NULL ¤¬ +に格納される。ディレクトリストリームの末尾に達した場合は、 +NULL が .I *result -¤Ë³ÊǼ¤µ¤ì¤ë¡£ +に格納される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR readdir () .\"O returns a pointer to a @@ -189,24 +189,24 @@ NULL .\"O If the end of the directory stream is reached, NULL is returned and .\"O .I errno .\"O is not changed. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR readdir () -¤Ï +は .I dirent -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -(¤³¤Î¹½Â¤ÂΤÏÀÅŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤Î¥Ý¥¤¥ó¥¿¤ò +構造体へのポインタを返す。 +(この構造体は静的に割り当てられているかもしれない。 +このポインタを .BR free (3) -¤·¤è¤¦¤È¤·¤Ê¤¤¤³¤È¡£) -¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤ÎËöÈø¤Ë㤷¤¿¾ì¹ç¤Ë¤Ï¡¢NULL ¤¬ÊÖ¤µ¤ì¡¢ +しようとしないこと。) +ディレクトリストリームの末尾に達した場合には、NULL が返され、 .I errno -¤ÏÊѲ½¤·¤Ê¤¤¡£ +は変化しない。 .\"O If an error occurs, NULL is returned and .\"O .I errno .\"O is set appropriately. -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¡¢NULL ¤¬ÊÖ¤µ¤ì¡¢ +エラーが発生した場合、NULL が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O The .\"O .BR readdir_r () @@ -216,26 +216,26 @@ NULL .\"O .BR readdir_r () .\"O returns 0, and returns NULL in .\"O .IR *result . -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR readdir_r () -´Ø¿ô¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢(¡Ö¥¨¥é¡¼¡×¤ÎÀá¤Î¥ê¥¹¥È¤ËºÜ¤Ã¤Æ¤¤¤ë) Àµ¤Î¥¨¥é¡¼ÈÖ¹æ¤òÊÖ¤¹¡£ -¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤ÎËöÈø¤Ë㤷¤¿¾ì¹ç¡¢ +関数は 0 を返す。 +エラーの場合、(「エラー」の節のリストに載っている) 正のエラー番号を返す。 +ディレクトリストリームの末尾に達した場合、 .BR readdir_r () -¤ÏÊÖ¤êÃͤȤ·¤Æ 0 ¤òÊÖ¤·¡¢ +は返り値として 0 を返し、 .I *result -¤Ë NULL ¤ò³ÊǼ¤¹¤ë¡£ +に NULL を格納する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O Invalid directory stream descriptor \fIdirp\fP. -¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¥Ç¥£¥¹¥¯¥ê¥×¥¿ \fIdirp\fP ¤¬Ìµ¸ú¡£ +ディレクトリストリームディスクリプタ \fIdirp\fP が無効。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Only the fields .\"O .I d_name .\"O and @@ -251,78 +251,78 @@ SVr4, 4.3BSD, POSIX.1-2001. .\"O or .\"O .B _DIRENT_HAVE_D_TYPE .\"O are defined. -¥Õ¥£¡¼¥ë¥É +フィールド .I d_name -¤È +と .I d_ino -¤À¤±¤¬ POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -»Ä¤ê¤Î¥Õ¥£¡¼¥ë¥É¤Ï¿¤¯¤Î¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¤¬¡¢Á´¤Æ¤Î¥·¥¹¥Æ¥à¤Ë -¸ºß¤¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -glibc ¤Ç¤Ï¡¢¥×¥í¥°¥é¥à¤¬ POSIX.1 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¥Õ¥£¡¼¥ë¥É¤¬ -ÍøÍѤǤ­¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥Á¥§¥Ã¥¯¤¹¤ë¤Ë¤Ï¡¢¥Þ¥¯¥í +だけが POSIX.1-2001 で規定されている。 +残りのフィールドは多くのシステムに存在するが、全てのシステムに +存在するわけではない。 +glibc では、プログラムが POSIX.1 で定義されていないフィールドが +利用できるかをチェックすることができる。 +チェックするには、マクロ .BR _DIRENT_HAVE_D_NAMLEN , .BR _DIRENT_HAVE_D_RECLEN , .BR _DIRENT_HAVE_D_OFF , .B _DIRENT_HAVE_D_TYPE -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤«¤ò¥Æ¥¹¥È¤¹¤ì¤Ð¤è¤¤¡£ +が定義されているかをテストすればよい。 .\"O Other than Linux, the .\"O .I d_type .\"O field is available mainly only on BSD systems. .I d_type -¥Õ¥£¡¼¥ë¥É¤Ï¡¢Linux °Ê³°¤Ç¤Ï¡¢ -¼ç¤Ë BSD ·Ï¤Î¥·¥¹¥Æ¥à¤Ë¤À¤±Â¸ºß¤¹¤ë¡£ +フィールドは、Linux 以外では、 +主に BSD 系のシステムにだけ存在する。 .\"O This field makes it possible to avoid the expense of calling .\"O .BR lstat (2) .\"O if further actions depend on the type of the file. -¤³¤Î¥Õ¥£¡¼¥ë¥É¤ò»È¤¦¤È¡¢ -¤½¤Î¸å¤ÎÆ°ºî¤¬¥Õ¥¡¥¤¥ë¤Î¼ïÊ̤ˤè¤ê·è¤Þ¤ë¾ì¹ç¤Ë¡¢ +このフィールドを使うと、 +その後の動作がファイルの種別により決まる場合に、 .BR lstat (2) -¤ò¸Æ¤Ó½Ð¤¹¥³¥¹¥È¤òÈò¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を呼び出すコストを避けることができる。 .\"O If the .\"O .B _BSD_SOURCE .\"O feature test macro is defined, .\"O then glibc defines the following macro constants .\"O for the value returned in .\"O .IR d_type : -µ¡Ç½¸¡ºº¥Þ¥¯¥í +機能検査マクロ .B _BSD_SOURCE -¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¡¢glibc ¤Ï +が定義された場合、glibc は .I d_type -¤ÇÊÖ¤µ¤ì¤ëÃͤȤ·¤Æ°Ê²¼¤Î¥Þ¥¯¥íÄê¿ô¤òÄêµÁ¤¹¤ë¡£ +で返される値として以下のマクロ定数を定義する。 .TP 12 .B DT_BLK .\"O This is a block device. -¥Ö¥í¥Ã¥¯¡¦¥Ç¥Ð¥¤¥¹¤Ç¤¢¤ë¡£ +ブロック・デバイスである。 .TP .B DT_CHR .\"O This is a character device. -¥­¥ã¥é¥¯¥¿¡¦¥Ç¥Ð¥¤¥¹¤Ç¤¢¤ë¡£ +キャラクタ・デバイスである。 .TP .B DT_DIR .\"O This is a directory. -¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¡£ +ディレクトリである。 .TP .B DT_FIFO .\"O This is a named pipe (FIFO). -̾Á°ÉÕ¤­¥Ñ¥¤¥× (FIFO) ¤Ç¤¢¤ë¡£ +名前付きパイプ (FIFO) である。 .TP .B DT_LNK .\"O This is a symbolic link. -¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ç¤¢¤ë¡£ +シンボリック・リンクである。 .TP .B DT_REG .\"O This is a regular file. -Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ +通常のファイルである。 .TP .B DT_SOCK .\"O This is a UNIX domain socket. -UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤Ç¤¢¤ë¡£ +UNIX ドメインソケットである。 .TP .B DT_UNKNOWN .\"O The file type is unknown. -¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤¬ÉÔÌÀ¤Ç¤¢¤ë¡£ +ファイルタイプが不明である。 .\" The glibc manual says that on some systems this is the only .\" value returned .PP @@ -330,11 +330,11 @@ UNIX .\"O .B DT_UNKNOWN .\"O is returned in .\"O .IR d_type . -¥Õ¥¡¥¤¥ë¼ïÊ̤ò·èÄê¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ +ファイル種別を決定できなかった場合には、 .I d_type -¤Ë +に .B DT_UNKNOWN -¤¬Æþ¤ë¡£ +が入る。 .\"O Currently, .\"O .\" kernel 2.6.27 @@ -344,16 +344,16 @@ UNIX .\"O .IR d_type . .\"O All applications must properly handle a return of .\"O .BR DT_UNKNOWN . -¸½ºß¤Î¤È¤³¤í¡¢ -.\" ¥«¡¼¥Í¥ë 2.6.27 -.\" Ʊ¤¸ÀâÌÀʸ¤¬ readdir.2 ¤Ë¤â¤¢¤ë¡£ +現在のところ、 +.\" カーネル 2.6.27 +.\" 同じ説明文が readdir.2 にもある。 .I d_type -¤Ç¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤òÊÖ¤¹µ¡Ç½¤¬´°Á´¤Ë¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢ -¤¤¤¯¤Ä¤«¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¤Î¤ß¤Ç¤¢¤ë -(Btrfs, ext2, ext3, ext4 ¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë)¡£ -¤É¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤â¡¢ +でファイルタイプを返す機能が完全にサポートされているのは、 +いくつかのファイルシステムにおいてのみである +(Btrfs, ext2, ext3, ext4 はサポートしている)。 +どのアプリケーションも、 .B DT_UNKNOWN -¤¬ÊÖ¤µ¤ì¤¿ºÝ¤ËŬÀڤ˽èÍý¤Ç¤­¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +が返された際に適切に処理できなければならない。 .\"O Since POSIX.1 does not specify the size of the .\"O .I d_name @@ -364,18 +364,18 @@ UNIX .\"O should allocate the buffer whose address is passed in .\"O .IR entry .\"O as follows: -POSIX.1 ¤Ç¤Ï +POSIX.1 では .I d_name -¥Õ¥£¡¼¥ë¥É¤Î¥µ¥¤¥º¤Ïµ¬Äꤵ¤ì¤Æ¤ª¤é¤º¡¢ +フィールドのサイズは規定されておらず、 .I dirent -¹½Â¤ÂΤΠ+構造体の .I d_name -¤Î¸å¤í¤Ë¾¤ÎÈóɸ½à¤Î¥Õ¥£¡¼¥ë¥É¤¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¤Î¤Ç¡¢ -°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç +の後ろに他の非標準のフィールドがあるかもしれないので、 +移植性が必要なアプリケーションで .BR readdir_r () -¤ò»È¤¦¾ì¹ç¤Ï +を使う場合は .I entry -¤ËÅϤ¹¥Ð¥Ã¥Õ¥¡¤ò¼¡¤Î¤è¤¦¤Ë¤·¤Æ³ä¤êÅö¤Æ¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +に渡すバッファを次のようにして割り当てるべきである。 .in +4n .nf @@ -389,13 +389,13 @@ entryp = malloc(len); .\"O .I d_name .\"O is the last field in a .\"O .IR "struct dirent" .) -(POSIX.1 ¤Ç¤Ï +(POSIX.1 では .I "struct dirent" -¤ÎºÇ¸å¤Î¥Õ¥£¡¼¥ë¥É¤¬ +の最後のフィールドが .I d_name -¤Ç¤¢¤ë¤³¤È¤òÍ׵ᤷ¤Æ¤¤¤ë¡£) +であることを要求している。) .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getdents (2), .BR read (2), .BR closedir (3), diff --git a/draft/man3/realpath.3 b/draft/man3/realpath.3 index 4b9c38bd..f5412072 100644 --- a/draft/man3/realpath.3 +++ b/draft/man3/realpath.3 @@ -31,15 +31,15 @@ .\" Updated 2005-09-06, Akihiro MOTOKI .\" Updated 2009-04-24, Akihiro MOTOKI, LDP v3.20 .\" -.\"WORD: bounded À©¸Â¤¬¤Ê¤¤ +.\"WORD: bounded 制限がない .\" .TH REALPATH 3 2011-09-10 "" "Linux Programmer's Manual" .\"O .SH NAME .\"O realpath \- return the canonicalized absolute pathname -.SH ̾Á° -realpath \- Àµµ¬²½¤µ¤ì¤¿ÀäÂХѥ¹Ì¾¤òÊÖ¤¹ +.SH 名前 +realpath \- 正規化された絶対パス名を返す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -50,9 +50,9 @@ realpath \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR realpath (): @@ -63,7 +63,7 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR realpath () .\"O expands all symbolic links and resolves references .\"O to @@ -79,26 +79,26 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O in the buffer pointed to by .\"O .IR resolved_path . .BR realpath () -¤Ï +は .I path -¤È¤·¤ÆÍ¿¤¨¤é¤ì¤¿ NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎóÃæ¤Î -¤¹¤Ù¤Æ¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òŸ³«¤·¡¢ +として与えられた NULL 終端された文字列中の +すべてのシンボリックリンクを展開し、 .IR "/./" ", " "/../" -¤Ë¤è¤ë»²¾È¤ä;ʬ¤Ê \(aq/\(aq -¤ò²ò·è¤·¤Æ¡¢Àµµ¬²½¤µ¤ì¤¿ÀäÂХѥ¹Ì¾¤òÀ¸À®¤¹¤ë¡£ -ÆÀ¤é¤ì¤¿ÀäÂХѥ¹Ì¾¤Ï¡¢ºÇÂç¤Ç +による参照や余分な \(aq/\(aq +を解決して、正規化された絶対パス名を生成する。 +得られた絶対パス名は、最大で .B PATH_MAX -¥Ð¥¤¥È¤Î NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤È¤·¤Æ¡¢ +バイトの NULL 終端された文字列として、 .I resolved_path -¤Ë¤è¤ê»²¾È¤µ¤ì¤ë¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤ë¡£ +により参照されるバッファに格納される。 .\"O The resulting path will have no symbolic link, .\"O .I "/./" .\"O or .\"O .I "/../" .\"O components. -·ë²Ì¤È¤·¤ÆÊÖ¤ë¥Ñ¥¹¤ÎÃæ¤Ë¤Ï¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ä +結果として返るパスの中には、シンボリックリンクや .IR "/./" ", " "/../" -¤È¤¤¤Ã¤¿Í×ÁǤϴޤޤì¤Ê¤¤¡£ +といった要素は含まれない。 .\"O If .\"O .I resolved_path .\"O is specified as NULL, then @@ -112,41 +112,41 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O The caller should deallocate this buffer using .\"O .BR free (3). .I resolved_path -¤Ë NULL ¤¬»ØÄꤵ¤ì¤ë¤È¡¢ +に NULL が指定されると、 .BR realpath () -¤Ï +は .BR malloc (3) -¤ò»È¤Ã¤Æ²ò·è¤·¤¿¥Ñ¥¹Ì¾¤òÊÝ»ý¤¹¤ë¤¿¤á¤Î¥Ð¥Ã¥Õ¥¡¤ò -ºÇÂç¤Ç +を使って解決したパス名を保持するためのバッファを +最大で .B PATH_MAX -¥Ð¥¤¥È¤Þ¤Ç³ä¤êÅö¤Æ¡¢¤³¤Î¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¸Æ¤Ó½Ð¤·¸µ¤Ï¡¢ +バイトまで割り当て、このバッファへのポインタを返す。 +呼び出し元は、 .BR free (3) -¤ò»È¤Ã¤Æ¤³¤Î¥Ð¥Ã¥Õ¥¡¤ò²òÊü¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +を使ってこのバッファを解放すべきである。 .\"O .\" Even if we use resolved_path == NULL, then realpath() will still .\"O .\" return ENAMETOOLONG if the resolved pathname would exceed PATH_MAX .\"O .\" bytes -- MTK, Dec 04 -.\" resolved_path == NULL ¤ò»ØÄꤷ¤¿¾ì¹ç¤Ç¤â¡¢²ò·è¤·¤¿¥Ñ¥¹Ì¾¤ÎŤµ¤¬ -.\" PATH_MAX ¥Ð¥¤¥È¤òĶ¤¨¤¿¤È¤­¤Ë¤Ï¡¢realpath() ¤ÏÁ°¤ÈƱ¤¸¤¯ -.\" ENAMETOOLONG ¤òÊÖ¤¹¡£-- MTK, Dec 04 +.\" resolved_path == NULL を指定した場合でも、解決したパス名の長さが +.\" PATH_MAX バイトを超えたときには、realpath() は前と同じく +.\" ENAMETOOLONG を返す。-- MTK, Dec 04 .\"O .\" .SH HISTORY -.\" .SH Îò»Ë +.\" .SH 歴史 .\"O .\" The .\"O .\" .BR realpath () .\"O .\" function first appeared in 4.4BSD, contributed by Jan-Simon Pendry. .\" .BR realpath () -.\" ´Ø¿ô¤Ï 4.4BSD ¤Ç½é¤á¤ÆÅо줷¤¿ (Jan-Simon Pendry ¤Ë¤è¤êÄ󶡤µ¤ì¤¿)¡£ +.\" 関数は 4.4BSD で初めて登場した (Jan-Simon Pendry により提供された)。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O If there is no error, .\"O .BR realpath () .\"O returns a pointer to the .\"O .IR resolved_path . -¥¨¥é¡¼¤¬¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ +エラーがなかった場合、 .BR realpath () -¤Ï +は .I resolved_path -¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£ +へのポインターを返す。 .\"O Otherwise it returns a NULL pointer, and the contents .\"O of the array @@ -154,17 +154,17 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O are undefined, and .\"O .I errno .\"O is set to indicate the error. -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢¥Ì¥ë (NULL) ¥Ý¥¤¥ó¥¿¡¼¤¬Ê֤ꡢÇÛÎó +それ以外の場合は、ヌル (NULL) ポインターが返り、配列 .I resolved_path -¤ÎÆâÍƤÏÉÔÄê¤È¤Ê¤ê¡¢ +の内容は不定となり、 .I errno -¤Ë¥¨¥é¡¼¤ÎÆâÍƤò¼¨¤¹Ãͤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +にエラーの内容を示す値がセットされる。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O Read or search permission was denied for a component of the path prefix. -¥Ñ¥¹¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤Ë¡¢Æɤ߽Ф·µö²Ä¤Þ¤¿¤Ï¸¡º÷µö²Ä¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤¡£ +パスのディレクトリ部分に、読み出し許可または検索許可が与えられていない。 .TP .B EINVAL .\"O .I path @@ -175,19 +175,19 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O .IR resolved_path .\"O is NULL.) .I path -¤¬ NULL ¤Ç¤¢¤ë¡£ -.\" (libc5 ¤Ç¤Ï¡¢¤³¤Î¤è¤¦¤Ê¾ì¹ç segfault ¤òµ¯¤³¤¹¤À¤±¤Ç¤¢¤í¤¦) -(¥Ð¡¼¥¸¥ç¥ó 2.3 ¤è¤êÁ°¤Î glibc ¤Ç¤Ï¡¢ +が NULL である。 +.\" (libc5 では、このような場合 segfault を起こすだけであろう) +(バージョン 2.3 より前の glibc では、 .I resolved_path -¤¬ NULL ¤Î¾ì¹ç¤Ë¤â¤³¤Î¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¡£) +が NULL の場合にもこのエラーが返される。) .TP .B EIO .\"O An I/O error occurred while reading from the file system. -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òÆɤà¤È¤­¤Ë¡¢I/O¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£ +ファイルシステムを読むときに、I/Oエラーが起こった。 .TP .B ELOOP .\"O Too many symbolic links were encountered in translating the pathname. -¥Ñ¥¹Ì¾¤ÎÊÑ´¹¤Ë¤¢¤¿¤ê¡¢²ò·è¤¹¤Ù¤­¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Î¿ô¤¬Â¿²á¤®¤¿¡£ +パス名の変換にあたり、解決すべきシンボリック・リンクの数が多過ぎた。 .TP .B ENAMETOOLONG .\"O A component of a pathname exceeded @@ -195,37 +195,37 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O characters, or an entire pathname exceeded .\"O .B PATH_MAX .\"O characters. -¥Ñ¥¹Ì¾¤Î°ìÍ×ÁǤÎʸ»ú¿ô¤¬ +パス名の一要素の文字数が .B NAME_MAX -¤ò±Û¤¨¤Æ¤¤¤ë¡¢¤Þ¤¿¤Ï¥Ñ¥¹Ì¾Á´ÂΤÎʸ»ú¿ô¤¬ +を越えている、またはパス名全体の文字数が .B PATH_MAX -¤ò±Û¤¨¤Æ¤¤¤ë¡£ +を越えている。 .TP .B ENOENT .\"O The named file does not exist. -»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ +指定されたファイルが存在しない。 .TP .B ENOTDIR .\"O A component of the path prefix is not a directory. -¥Ñ¥¹¤Î¥Ç¥£¥ì¥¯¥È¥êÍ×ÁǤ¬¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +パスのディレクトリ要素が、ディレクトリでない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O On Linux this function appeared in libc 4.5.21. -¤³¤Î´Ø¿ô¤¬ Linux ¤ËÅо줷¤¿¤Î¤Ï libc 4.5.21 ¤Ç¤¢¤ë¡£ +この関数が Linux に登場したのは libc 4.5.21 である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.4BSD, POSIX.1-2001. .\"O POSIX.1-2001 says that the behavior if .\"O .I resolved_path .\"O is NULL is implementation-defined. .\"O POSIX.1-2008 specifies the behavior described in this page. -POSIX.1-2001 ¤Ç¤Ï +POSIX.1-2001 では .I resolved_path -¤¬ NULL ¤Î¾ì¹ç¤ÎÆ°ºî¤Ï¼ÂÁõ¤Ë°Í¸¤¹¤ë¤È¤·¤Æ¤¤¤ë¡£ -POSIX.1-2008 ¤Ç¤Ï¡¢¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë½ñ¤«¤ì¤Æ¤¤¤ëÆ°ºî¤¬µ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +が NULL の場合の動作は実装に依存するとしている。 +POSIX.1-2008 では、このマニュアルページに書かれている動作が規定されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O In 4.4BSD and Solaris the limit on the pathname length is .\"O .B MAXPATHLEN .\"O (found in \fI\fP). @@ -249,17 +249,17 @@ POSIX.1-2008 .\"O #endif .\"O .fi .\"O .in -4.4BSD ¤È Solaris ¤Ç¤Ï¡¢¥Ñ¥¹Ì¾¤ÎŤµ¤Î¾å¸Â¤Ï -(\fI\fP ¤ÎÃæ¤Ë¤¢¤ë) +4.4BSD と Solaris では、パス名の長さの上限は +(\fI\fP の中にある) .B MAXPATHLEN -¤Ç¤¢¤ë¡£SUSv2 ¤Ç¤Ï +である。SUSv2 では .B PATH_MAX -¤È +と .B NAME_MAX -¤¬µ¬Äꤵ¤ì¤Æ¤ª¤ê¡¢ -¤³¤ì¤é¤Ï \fI\fP ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤«¡¢ +が規定されており、 +これらは \fI\fP で定義されているか、 .BR pathconf (3) -´Ø¿ô¤«¤éÆÀ¤é¤ì¤ë¡£°Ê²¼¤Î¤è¤¦¤Ê¥½¡¼¥¹¥³¡¼¥É¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤¬Â¿¤¤¡£ +関数から得られる。以下のようなソースコードになっていることが多い。 .LP .in +4n .nf @@ -274,28 +274,28 @@ POSIX.1-2008 .in .LP .\"O (But see the BUGS section.) -(¥Ð¥°¤Î¾Ï¤â»²¾È¤Î¤³¤È¡£) +(バグの章も参照のこと。) .LP .\"O The 4.4BSD, Linux and SUSv2 versions always return an absolute .\"O pathname. .\"O Solaris may return a relative pathname when the .\"O .I path .\"O argument is relative. -4.4BSD¡¢Linux¡¢SUSv2 ¤Ç¤Ï¡¢ÊÖ¤êÃͤϾï¤ËÀäÂХѥ¹Ì¾¤Ç¤¢¤ë¡£ -Solaris ¤Ç¤Ï¡¢ -°ú¤­¿ô +4.4BSD、Linux、SUSv2 では、返り値は常に絶対パス名である。 +Solaris では、 +引き数 .I path -¤¬ÁêÂХѥ¹¤Î¾ì¹ç¡¢ÊÖ¤êÃͤ¬ÁêÂХѥ¹¤Ë¤Ê¤ë¤³¤È¤¬¤¢¤ë¡£ +が相対パスの場合、返り値が相対パスになることがある。 .\"O The prototype of .\"O .BR realpath () .\"O is given in \fI\fP in libc4 and libc5, .\"O but in \fI\fP everywhere else. .BR realpath () -¤Î¥×¥í¥È¥¿¥¤¥×Àë¸À¤Ï¡¢ -libc4 ¤È libc5 ¤Ç¤Ï \fI\fP ¤Ë¤¢¤ë¤¬¡¢ -¤½¤ì°Ê³°¤Î´Ä¶­¤Ç¤Ï¤¤¤º¤ì¤â \fI\fP ¤Ë¤¢¤ë¡£ +のプロトタイプ宣言は、 +libc4 と libc5 では \fI\fP にあるが、 +それ以外の環境ではいずれも \fI\fP にある。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O The POSIX.1-2001 standard version of this function is broken by design, .\"O since it is impossible to determine a suitable size for the output buffer, .\"O .IR resolved_path . @@ -305,17 +305,17 @@ libc4 .\"O .B PATH_MAX .\"O need not be a defined constant, and may have to be obtained using .\"O .BR pathconf (3). -¤³¤Î´Ø¿ô¤Î POSIX.1-2001 ÈǤϡ¢Àß·×Ãʳ¬¤«¤éÌäÂ꤬¤¢¤ë¡£ -½ÐÎϥХåե¡ +この関数の POSIX.1-2001 版は、設計段階から問題がある。 +出力バッファ .I resolved_path -¤ÎŬÀڤʥµ¥¤¥º¤ò·èÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ -POSIX.1-2001 ¤Ç¤Ï¥Ð¥Ã¥Õ¥¡¡¦¥µ¥¤¥º¤È¤·¤Æ +の適切なサイズを決定することができないからである。 +POSIX.1-2001 ではバッファ・サイズとして .B PATH_MAX -¤Ï½½Ê¬¤À¤È¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ +は十分だとされているが、 .B PATH_MAX -¤ÏÄêµÁºÑ¤ÎÄê¿ô¤Ç¤¢¤ëɬÍפϤʤ¯¡¢ +は定義済の定数である必要はなく、 .BR pathconf (3) -¤ò»È¤Ã¤ÆÆÀ¤é¤ì¤ëÃͤǤ¢¤Ã¤Æ¤â¤è¤¤¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +を使って得られる値であってもよいことになっている。 .\"O And asking .\"O .BR pathconf (3) .\"O does not really help, since, on the one hand POSIX warns that @@ -328,36 +328,36 @@ POSIX.1-2001 .\"O .B PATH_MAX .\"O is not bounded. .BR pathconf (3) -¤«¤é¥Ð¥Ã¥Õ¥¡¡¦¥µ¥¤¥º¤ò¼èÆÀ¤·¤¿¤È¤·¤Æ¤âɬ¤º¤·¤â½½Ê¬¤Ç¤Ï¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¡¢POSIX ¤Ç·Ù¹ð¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë¡¢ +からバッファ・サイズを取得したとしても必ずしも十分ではない。 +なぜなら、POSIX で警告されているように、 .BR pathconf (3) -¤ÎÊÖ¤êÃͤ¬Â礭²á¤®¤ÆŬÀڤ˥á¥â¥ê¤ò³ÎÊݤ¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤ -¤«¤â¤·¤ì¤Ê¤¤°ìÊý¤Ç¡¢ +の返り値が大き過ぎて適切にメモリを確保することができない +かもしれない一方で、 .BR pathconf (3) -¤Ï +は .B PATH_MAX -¤ËÀ©¸Â¤¬¤Ê¤¤¤³¤È¤ò¼¨¤¹ \-1 ¤òÊÖ¤¹¤«¤â¤·¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +に制限がないことを示す \-1 を返すかもしれないからである。 .\"O The .\"O .I "resolved_path\ ==\ NULL" .\"O feature, not standardized in POSIX.1-2001, .\"O but standardized in POSIX.1-2008, allows this design problem to be avoided. .I "resolved_path\ ==\ NULL" -¤Îµ¡Ç½¤ò»È¤¦¤È¡¢¤³¤ÎÀß·×¾å¤ÎÌäÂê¤ò²óÈò¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Îµ¡Ç½¤Ï POSIX.1-2001 ¤Ç¤Ïɸ½à²½¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -POSIX.1-2008 ¤Ç¤Ïɸ½à²½¤µ¤ì¤Æ¤¤¤ë¡£ +の機能を使うと、この設計上の問題を回避することができる。 +この機能は POSIX.1-2001 では標準化されていないが、 +POSIX.1-2008 では標準化されている。 .LP .\"O The libc4 and libc5 implementation contains a buffer overflow .\"O (fixed in libc-5.4.13). .\"O Thus, set-user-ID programs like .\"O .BR mount (8) .\"O need a private version. -libc4 ¤È libc5 ¤Î¼ÂÁõ¤Ï¥Ð¥Ã¥Õ¥¡¡¦¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Î²ÄǽÀ­¤ò»ý¤Ã¤Æ¤¤¤ë -(libc-5.4.13 ¤Ç½¤Àµ¤µ¤ì¤¿¤¬)¡£¤·¤¿¤¬¤Ã¤Æ¡¢ +libc4 と libc5 の実装はバッファ・オーバーフローの可能性を持っている +(libc-5.4.13 で修正されたが)。したがって、 .BR mount (8) -¤Î¤è¤¦¤Ê set-user-ID ¤µ¤ì¤ë¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ -¤³¤Î´Ø¿ôÁêÅö¤Î´Ø¿ô¤ò¼«Á°¤Ç»ý¤ÄɬÍפ¬¤¢¤ë¡£ +のような set-user-ID されるプログラムでは、 +この関数相当の関数を自前で持つ必要がある。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR readlink (2), .BR canonicalize_file_name (3), .BR getcwd (3), diff --git a/draft/man3/recno.3 b/draft/man3/recno.3 index a99130fd..911695dd 100644 --- a/draft/man3/recno.3 +++ b/draft/man3/recno.3 @@ -37,51 +37,51 @@ .\" by Shouichi Saito .\" Proofed Tue Aug 19 1999 by NAKANO Takeo .\" -.\"WORD: access method ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É -.\"WORD: pad character Ëä¤áʸ»ú +.\"WORD: access method アクセスメソッド +.\"WORD: pad character 埋め文字 .TH RECNO 3 1994-08-18 "" "Linux Programmer's Manual" .UC 7 -.SH ̾Á° +.SH 名前 .\"O recno \- record number database access method -recno \- ¥ì¥³¡¼¥ÉÈÖ¹æ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤Î¥¢¥¯¥»¥¹¥á¥½¥Ã¥É -.SH ½ñ¼° +recno \- レコード番号データベースへのアクセスメソッド +.SH 書式 .nf .ft B #include #include .ft R .fi -.SH ÀâÌÀ +.SH 説明 .\"O The routine .\"O .BR dbopen (3) .\"O is the library interface to database files. -¥ë¡¼¥Á¥ó +ルーチン .BR dbopen (3) -¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥é¥¤¥Ö¥é¥ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¢¤ë¡£ +はデータベースファイルに対するライブラリインターフェースである。 .\"O One of the supported file formats is record number files. .\"O The general description of the database access methods is in .\"O .BR dbopen (3), .\"O this manual page describes only the recno specific information. -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Î°ì¤Ä¤Ë¡¢ -¥ì¥³¡¼¥ÉÈÖ¹æ¥Õ¥¡¥¤¥ë (record number file: recno file) ¤¬¤¢¤ë¡£ -¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤Î¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ë´Ø¤¹¤ë°ìÈÌŪ¤Êµ­½Ò¤Ï +サポートされているファイルフォーマットの一つに、 +レコード番号ファイル (record number file: recno file) がある。 +データベースへのアクセスメソッドに関する一般的な記述は .BR dbopen (3), -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Ï recno ÆÃÍ­¤Î¾ðÊó¤Ë¤Ä¤¤¤Æ¤Î¤ßµ­½Ò¤¹¤ë¡£ +に書かれている。 +このマニュアルページでは recno 特有の情報についてのみ記述する。 .PP .\"O The record number data structure is either variable or fixed-length .\"O records stored in a flat-file format, accessed by the logical record .\"O number. -¥ì¥³¡¼¥ÉÈÖ¹æ¥Ç¡¼¥¿¹½Â¤¤Ï¡¢¥Õ¥é¥Ã¥È¤Ê¥Õ¥¡¥¤¥ë·Á¼°¤Ë³ÊǼ¤µ¤ì¤¿ -²ÄÊÑĹ/¸ÇÄêĹ¥ì¥³¡¼¥É¤«¤é¤Ê¤ê¡¢ÏÀÍý¥ì¥³¡¼¥ÉÈÖ¹æ¤Ç¥¢¥¯¥»¥¹¤µ¤ì¤ë¡£ +レコード番号データ構造は、フラットなファイル形式に格納された +可変長/固定長レコードからなり、論理レコード番号でアクセスされる。 .\"O The existence of record number five implies the existence of records .\"O one through four, and the deletion of record number one causes .\"O record number five to be renumbered to record number four, as well .\"O as the cursor, if positioned after record number one, to shift down .\"O one record. -¥ì¥³¡¼¥ÉÈÖ¹æ 5 ¤¬¤¢¤ì¤Ð¡¢¥ì¥³¡¼¥ÉÈÖ¹æ 1 ¤«¤é 4 ¤â¸ºß¤¹¤ë¡£ -¥ì¥³¡¼¥ÉÈÖ¹æ 1 ¤òºï½ü¤¹¤ë¤È¡¢¥ì¥³¡¼¥ÉÈÖ¹æ 5 ¤Ï 4 ¤ËÉÕ¤±Âؤ¨¤é¤ì¡¢ -¥«¡¼¥½¥ë¤â°ÜÆ°¤¹¤ë¡£¥ì¥³¡¼¥ÉÈÖ¹æ 1 °Ê¹ß¤Î¤â¤Î¤Ï°ì¤Ä·«¤ê¾å¤¬¤ë¤ï¤±¤Ç¤¢¤ë¡£ +レコード番号 5 があれば、レコード番号 1 から 4 も存在する。 +レコード番号 1 を削除すると、レコード番号 5 は 4 に付け替えられ、 +カーソルも移動する。レコード番号 1 以降のものは一つ繰り上がるわけである。 .PP .\"O The recno access method specific data structure provided to .\"O .BR dbopen (3) @@ -89,9 +89,9 @@ recno \- .\"O .I .\"O include file as follows: .BR dbopen (3) -¤Ç»È¤¦ recno ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤ËÆÃÍ­¤Î¥Ç¡¼¥¿¹½Â¤ÂΤϡ¢ +で使う recno アクセスメソッドに特有のデータ構造体は、 .I -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Ç¼¡¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +インクルードファイルで次のように定義されている。 .PP .in +4n .nf @@ -108,33 +108,33 @@ typedef struct { .in .PP .\"O The elements of this structure are defined as follows: -¤³¤Î¹½Â¤ÂΤÎÍ×ÁǤò°Ê²¼¤Ë¼¨¤¹¡£ +この構造体の要素を以下に示す。 .TP flags .\"O The flag value is specified by ORing .\"O any of the following values: -flag ¤ÎÃͤϰʲ¼¤ÎÃͤÎÏÀÍýϤǻØÄꤵ¤ì¤ë¡£ +flag の値は以下の値の論理和で指定される。 .RS .TP .B R_FIXEDLEN .\"O The records are fixed-length, not byte delimited. -¥ì¥³¡¼¥ÉŤ¬¸ÇÄê¤Ç¤¢¤ê¡¢¥Ð¥¤¥È¶èÀÚ¤ê¤Ç¤Ï¤Ê¤¤¡£ +レコード長が固定であり、バイト区切りではない。 .\"O The structure element .\"O .I reclen .\"O specifies the length of the record, and the structure element .\"O .I bval .\"O is used as the pad character. -¹½Â¤ÂΤÎÍ×ÁÇ +構造体の要素 .I reclen -¤Ï¥ì¥³¡¼¥É¤ÎŤµ¤ò»ØÄꤹ¤ë¡£¤Þ¤¿¡¢Í×ÁÇ +はレコードの長さを指定する。また、要素 .I bval -¤ÏËä¤áʸ»ú (pad character) ¤ò»ØÄꤹ¤ë¡£ +は埋め文字 (pad character) を指定する。 .\"O Any records, inserted into the database, that are less than .\"O .I reclen .\"O bytes long are automatically padded. -¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÆþ¤ì¤é¤ì¤¿¥ì¥³¡¼¥É¤ÎÆâ +データベースに入れられたレコードの内 .I reclen -¥Ð¥¤¥È¤ËËþ¤¿¤Ê¤¤¤â¤Î¤Ç¤Ï¡¢»Ä¤ê¤ÎÉôʬ¤ËËä¤áʸ»ú¤¬¼«Æ°Åª¤ËÆþ¤ë¡£ +バイトに満たないものでは、残りの部分に埋め文字が自動的に入る。 .TP .B R_NOKEY .\"O In the interface specified by @@ -142,8 +142,8 @@ flag .\"O the sequential record retrieval fills in both the caller's key and .\"O data structures. .BR dbopen (3) -¤Ç»ØÄꤵ¤ì¤¿¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ç¤Ï¡¢¥·¡¼¥±¥ó¥·¥ã¥ë¤Ê¥ì¥³¡¼¥É¼èÆÀ¤Ï -¸Æ¤Ó½Ð¤·¥­¡¼¤È¥Ç¡¼¥¿¹½Â¤ÂΤÎξÊý¤òËä¤á¤Æ¤¤¤¯¡£ +で指定されたインターフェイスでは、シーケンシャルなレコード取得は +呼び出しキーとデータ構造体の両方を埋めていく。 .\"O If the .\"O .B R_NOKEY .\"O flag is specified, the @@ -152,22 +152,22 @@ flag .\"O This permits applications to retrieve records at the end of files without .\"O reading all of the intervening records. .B R_NOKEY -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢¥­¡¼¹½Â¤ÂΤòËä¤á¤ë¤Î¤Ë +フラグが指定されていると、キー構造体を埋めるのに .I cursor -¥ë¡¼¥Á¥ó¤òɬÍפȤ·¤Ê¤¤¡£ -¤³¤ì¤òÍѤ¤¤ì¤Ð¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¥Õ¥¡¥¤¥ë¤Î½ª¤ê¤ÎÊý¤ò¼èÆÀ¤¹¤ëºÝ¤Ë¡¢ -¤½¤ÎÅÓÃæ¤Î¥ì¥³¡¼¥É¤òÆɤޤʤ¯¤Æ¤âºÑ¤à»ö¤Ë¤Ê¤ë¡£ +ルーチンを必要としない。 +これを用いれば、アプリケーションがファイルの終りの方を取得する際に、 +その途中のレコードを読まなくても済む事になる。 .TP .B R_SNAPSHOT .\"O This flag requires that a snapshot of the file be taken when .\"O .BR dbopen (3) .\"O is called, instead of permitting any unmodified records to be read from .\"O the original file. -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È¡¢ +このフラグを指定すると、 .BR dbopen (3) -¤Î¸Æ¤Ó½Ð¤·¤ÎºÝ¡¢ -¥ª¥ê¥¸¥Ê¥ë¥Õ¥¡¥¤¥ë¤«¤éÊѹ¹¤µ¤ì¤Æ¤¤¤Ê¤¤¥ì¥³¡¼¥É¤òÆɤàÂå¤ï¤ê¤Ë¡¢ -¥Õ¥¡¥¤¥ë¤Î snapshot ¤òÍѤ¤¤ë¡£ +の呼び出しの際、 +オリジナルファイルから変更されていないレコードを読む代わりに、 +ファイルの snapshot を用いる。 .RE .TP .I cachesize @@ -178,22 +178,22 @@ flag .\"O If .\"O .I cachesize .\"O is 0 (no size is specified) a default cache is used. -ÁÛÄꤵ¤ì¤ë¥á¥â¥ê¥­¥ã¥Ã¥·¥å¤ÎºÇÂ祵¥¤¥º (¥Ð¥¤¥Èñ°Ì)¡£ -¤³¤ÎÃÍ¤Ï -.B ¤¢¤¯¤Þ¤Ç -»²¹Í¤Ç¤¢¤ê¡¢¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ï¤³¤ÎÃͤò±Û¤¨¤¿¥á¥â¥ê¤Î -³ä¤êÅö¤Æ¤ËÀ®¸ù¤¹¤ë¤³¤È¤â¤¢¤ë¡£ +想定されるメモリキャッシュの最大サイズ (バイト単位)。 +この値は +.B あくまで +参考であり、アクセスメソッドはこの値を越えたメモリの +割り当てに成功することもある。 .I cachesize -¤¬ 0 (¤¢¤ë¤¤¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤) ¤Î¾ì¹ç¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥­¥ã¥Ã¥·¥å¤¬»È¤ï¤ì¤ë¡£ +が 0 (あるいは指定されていない) の場合、デフォルトのキャッシュが使われる。 .TP .I psize .\"O The recno access method stores the in-memory copies of its records .\"O in a btree. .\"O This value is the size (in bytes) of the pages used for nodes in that tree. -recno ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ï¡¢¼«¿È¤Î¥ì¥³¡¼¥É¤Î¥³¥Ô¡¼¤ò¥á¥â¥êÆâÉô¤Ë -btree ¤ÇÊݸ¤·¤Æ¤¤¤ë¡£ -¤³¤ÎÃͤϡ¢¤½¤Î btree Ãæ¤Î¥Î¡¼¥É¤ËÂФ·¤ÆÍѤ¤¤é¤ì¤ë -¥Ú¡¼¥¸¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤Ç¤¢¤ë¡£ +recno アクセスメソッドは、自身のレコードのコピーをメモリ内部に +btree で保存している。 +この値は、その btree 中のノードに対して用いられる +ページサイズ (バイト単位) である。 .\"O If .\"O .I psize .\"O is 0 (no page size is specified) a page size is chosen based on the @@ -202,12 +202,12 @@ btree .\"O .BR btree (3) .\"O for more information. .I psize -¤¬ 0 (¤¢¤ë¤¤¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤) ¤Î¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î I/O ¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ò´ð¤Ë¤·¤Æ -¥Ú¡¼¥¸¥µ¥¤¥º¤¬·è¤á¤é¤ì¤ë¡£ -¾ÜºÙ¤Ï +が 0 (あるいは指定されていない) の場合、 +ファイルシステムの I/O ブロックサイズを基にして +ページサイズが決められる。 +詳細は .BR btree (3) -¤ò»²¾È¡£ +を参照。 .TP .I lorder .\"O The byte order for integers in the stored database metadata. @@ -216,30 +216,30 @@ btree .\"O If .\"O .I lorder .\"O is 0 (no order is specified) the current host order is used. -¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤ë¥á¥¿¥Ç¡¼¥¿¤ÎÀ°¿ôÃͤΥХ¤¥È¥ª¡¼¥À¡¼¡£ -¤³¤Î¿ô»ú¤Ï¡¢½ç½ø¤òÀ°¿ô¤Çɽ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -Î㤨¤Ð¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤Ê¤é¡¢¤³¤Î¿ôÃÍ¤Ï 4,321 ¤È¤Ê¤ë¡£ +データベースに格納されているメタデータの整数値のバイトオーダー。 +この数字は、順序を整数で表したものである。 +例えばビッグエンディアンなら、この数値は 4,321 となる。 .I lorder -¤¬ 0 (»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤) ¤Î¾ì¹ç¡¢¸½ºß¤Î¥Û¥¹¥È -¤Ç»È¤ï¤ì¤Æ¤¤¤ë¥Ð¥¤¥È¥ª¡¼¥À¡¼¤¬»È¤ï¤ì¤ë¡£ +が 0 (指定されていない) の場合、現在のホスト +で使われているバイトオーダーが使われる。 .TP .I reclen .\"O The length of a fixed-length record. -¸ÇÄê¥ì¥³¡¼¥ÉŤÎŤµ¡£ +固定レコード長の長さ。 .TP .I bval .\"O The delimiting byte to be used to mark the end of a record for .\"O variable-length records, and the pad character for fixed-length .\"O records. -²ÄÊѥ쥳¡¼¥ÉŤˤª¤¤¤Æ¡¢ -¥ì¥³¡¼¥É¤Î½ª¤ê¤ò¼¨¤¹¶èÀÚ¤ê¥Ð¥¤¥È (¶èÀÚ¤êʸ»ú) ¤Ç¤¢¤ë¡£ -¸ÇÄê¥ì¥³¡¼¥ÉŤǤÏËä¤áʸ»ú¤È¤·¤Æ»È¤ï¤ì¤ë¡£ +可変レコード長において、 +レコードの終りを示す区切りバイト (区切り文字) である。 +固定レコード長では埋め文字として使われる。 .\"O If no value is specified, newlines ("\en") are used to mark the end .\"O of variable-length records and fixed-length records are padded with .\"O spaces. -Ãͤ¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¡¢ -²ÄÊѥ쥳¡¼¥ÉĹ¤Î¥ì¥³¡¼¥É¤Î½ª¤ê¤Ë¤Ï²þ¹Ô ("\en") ¤¬»È¤ï¤ì¤ë¡£ -¸ÇÄê¥ì¥³¡¼¥ÉĹ¤Î¥ì¥³¡¼¥É¤Ï¶õÇò (space) ¤ÇËä¤á¤é¤ì¤ë¡£ +値が指定されていないと、 +可変レコード長のレコードの終りには改行 ("\en") が使われる。 +固定レコード長のレコードは空白 (space) で埋められる。 .TP .I bfname .\"O The recno access method stores the in-memory copies of its records @@ -250,21 +250,21 @@ btree .\"O as if specified as the filename for a .\"O .BR dbopen (3) .\"O of a btree file. -recno ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ï¡¢ -¼«¿È¤Î¥ì¥³¡¼¥É¤Î¥³¥Ô¡¼¤ò¥á¥â¥êÆâÉô¤Ç btree ¤ËÊݸ¤·¤Æ¤¤¤ë¡£ +recno アクセスメソッドは、 +自身のレコードのコピーをメモリ内部で btree に保存している。 .I bfname -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢¤³¤ì¤Ï btree ¥Õ¥¡¥¤¥ë̾ -(btree ¥Õ¥¡¥¤¥ë¤ò +が NULL でない場合、これは btree ファイル名 +(btree ファイルを .BR dbopen (3) -¤¹¤ë»þ¤Ë»ØÄꤹ¤ë¥Õ¥¡¥¤¥ë̾) ¤ò»ØÄꤹ¤ë¡£ +する時に指定するファイル名) を指定する。 .PP .\"O The data part of the key/data pair used by the .\"O .I recno .\"O access method .\"O is the same as other access methods. .I recno -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ç»È¤ï¤ì¤ë¥­¡¼/¥Ç¡¼¥¿ÂФΥǡ¼¥¿Éôʬ¤Ï¡¢ -¾¤Î¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +アクセスメソッドで使われるキー/データ対のデータ部分は、 +他のアクセスメソッドと同じである。 .\"O The key is different. .\"O The .\"O .I data @@ -273,34 +273,34 @@ recno .\"O as defined in the .\"O .I .\"O include file. -¤·¤«¤·¥­¡¼¤Ï°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ -¥­¡¼¤Î +しかしキーは異なっている。 +キーの .I data -¥Õ¥£¡¼¥ë¥É¤Ï +フィールドは .I recno_t -·¿¤Î¡¢¥á¥â¥ê°ÌÃ֤ؤΥݥ¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +型の、メモリ位置へのポインタでなければならない。 .I recno_t -¤Ï +は .I -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +インクルードファイルで定義されている。 .\"O This type is normally the largest unsigned integral type available to .\"O the implementation. -¤³¤Î·¿¤ÏÄ̾¤½¤Î¼ÂÁõ¤ÇÍøÍѲÄǽ¤ÊºÇÂç¤ÎÉä¹æ̵¤·À°¿ô¤Ç¤¢¤ë¡£ +この型は通常、その実装で利用可能な最大の符号無し整数である。 .\"O The .\"O .I size .\"O field of the key should be the size of that type. -¥­¡¼¤Î +キーの .I size -¥Õ¥£¡¼¥ë¥É¤Ï¤½¤Î·¿¤Î¥µ¥¤¥º¤È¤Ê¤ë¡£ +フィールドはその型のサイズとなる。 .PP .\"O Because there can be no metadata associated with the underlying .\"O recno access method files, any changes made to the default values .\"O (e.g., fixed record length or byte separator value) must be explicitly .\"O specified each time the file is opened. -recno ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Î¥Õ¥¡¥¤¥ë¤Ë´ØÏ¢¤Å¤±¤é¤ì¤ë -¥á¥¿¥Ç¡¼¥¿¤Ï¸ºß¤Ç¤­¤Ê¤¤¤«¤é¡¢ -¥Ç¥Õ¥©¥ë¥ÈÃÍ (¸ÇÄê¥ì¥³¡¼¥ÉĹ¤ä¥»¥Ñ¥ì¡¼¥¿Ê¸»ú¤Ê¤É) -¤ËÂФ¹¤ëÊѹ¹¤Ï¥Õ¥¡¥¤¥ë¤ò³«¤¯Ëè¤ËÌÀ¼¨Åª¤Ë»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +recno アクセスメソッドのファイルに関連づけられる +メタデータは存在できないから、 +デフォルト値 (固定レコード長やセパレータ文字など) +に対する変更はファイルを開く毎に明示的に指定しなければならない。 .PP .\"O In the interface specified by .\"O .BR dbopen (3), @@ -310,13 +310,13 @@ recno .\"O empty records if the record number is more than one greater than the .\"O largest record currently in the database. .BR dbopen (3) -¤Ç»ØÄꤵ¤ì¤¿¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ç¤Ï¡¢ +で指定されたインターフェイスでは、 .I put -¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤ò»È¤Ã¤Æ¿·¤·¤¤¥ì¥³¡¼¥É¤òºîÀ®¤¹¤ë¤È¤­¤Ë¡¢ -»ØÄꤷ¤¿¥ì¥³¡¼¥ÉÈֹ椬¥Ç¡¼¥¿¥Ù¡¼¥¹Ãæ¤Ë¸ºß¤·¤Æ¤¤¤ëºÇÂç¥ì¥³¡¼¥ÉÈÖ¹æ¤è¤ê -°ì¤Ä°Ê¾åÂ礭¤¤¤È¡¢ -¶õ¤Î¥ì¥³¡¼¥É¤¬Æ±»þ¤Ë¤Ç¤­¤Æ¤·¤Þ¤¦¡£ -.SH ¥¨¥é¡¼ +インターフェイスを使って新しいレコードを作成するときに、 +指定したレコード番号がデータベース中に存在している最大レコード番号より +一つ以上大きいと、 +空のレコードが同時にできてしまう。 +.SH エラー .\"O The .\"O .I recno .\"O access method routines may fail and set @@ -325,23 +325,23 @@ recno .\"O .BR dbopen (3) .\"O or the following: .I recno -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¥ë¡¼¥Á¥ó¤Ï¼ºÇÔ¤¹¤ë¤È +アクセスメソッドルーチンは失敗すると .BR dbopen (3) -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿ -.IR errno " ¤«¡¢" -¤¢¤ë¤¤¤Ï°Ê²¼¤Ë¼¨¤¹ +で指定されているエラーに応じた +.IR errno " か、" +あるいは以下に示す .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ +をセットする。 .TP .B EINVAL .\"O An attempt was made to add a record to a fixed-length database that .\"O was too large to fit. -¸ÇÄêĹ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¥ì¥³¡¼¥É¤òÄɲ乤ë¤È¤­¡¢¥Ç¡¼¥¿¤¬Ä¹¤¹¤®¤¿¡£ -.SH ¥Ð¥° +固定長データベースにレコードを追加するとき、データが長すぎた。 +.SH バグ .\"O Only big and little endian byte order is supported. -¥Ð¥¤¥È¥ª¡¼¥À¡¼¤È¤·¤Æ¤Ï¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤È¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¤Î¤ß¤¬ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +バイトオーダーとしてはビッグエンディアンとリトルエンディアンのみが +サポートされている。 +.SH 関連項目 .BR btree (3), .BR dbopen (3), .BR hash (3), diff --git a/draft/man3/regex.3 b/draft/man3/regex.3 index a6b239d4..bcbe5060 100644 --- a/draft/man3/regex.3 +++ b/draft/man3/regex.3 @@ -31,9 +31,9 @@ .\" Updated & Modified 2005-02-24, Yuichi SATO .\" Updated 2008-08-02, Akihiro MOTOKI , LDP v3.05 .\" -.\"WORD: bitwise-or ¥Ó¥Ã¥È¤´¤È¤ÎOR -.\"WORD: element (¹½Â¤ÂÎ)Í×ÁÇ -.\"WORD: collating element ¾È¹ç½ç½ø¤ÎÍ×ÁÇ +.\"WORD: bitwise-or ビットごとのOR +.\"WORD: element (構造体)要素 +.\"WORD: collating element 照合順序の要素 .\" .\" show the synopsis section nicely .de xx @@ -42,11 +42,11 @@ .. .TH REGEX 3 2011-09-27 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O regcomp, regexec, regerror, regfree \- POSIX regex functions -regcomp, regexec, regerror, regfree \- POSIX regex ´Ø¿ô +regcomp, regexec, regerror, regfree \- POSIX regex 関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -63,18 +63,18 @@ regcomp, regexec, regerror, regfree \- POSIX regex .BI "void regfree(regex_t *" preg ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .SS "POSIX Regex Compiling" -.SS "POSIX regex ¥³¥ó¥Ñ¥¤¥ë" +.SS "POSIX regex コンパイル" .\"O .BR regcomp () .\"O is used to compile a regular expression into a form that is suitable .\"O for subsequent .\"O .BR regexec () .\"O searches. .BR regcomp () -¤Ï¡¢Àµµ¬É½¸½¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¡¢ +は、正規表現をコンパイルして、 .BR regexec () -¤Ç¤Î¸¡º÷½èÍý¤ËŬ¹ç¤¹¤ë·ÁÂ֤ˤ¹¤ë¡£ +での検索処理に適合する形態にする。 .\"O .BR regcomp () .\"O is supplied with @@ -85,13 +85,13 @@ regcomp, regexec, regerror, regfree \- POSIX regex .\"O .IR cflags , .\"O flags used to determine the type of compilation. .BR regcomp () -¤Ï¥Ñ¥¿¡¼¥ó¤òµ­²±¤¹¤ë¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿ -.IR preg ¡¢ -¥Ì¥ëʸ»ú¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó -.IR regex ¡¢ -¤½¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤Î·Á¼°¤ò·è¤á¤ë¤¿¤á¤Î¥Õ¥é¥° +はパターンを記憶するバッファへのポインタ +.IR preg 、 +ヌル文字で終端された文字列 +.IR regex 、 +そしてコンパイルの形式を決めるためのフラグ .I cflag -¤ò°ú¿ô¤Ëȼ¤¦¡£ +を引数に伴う。 .\"O All regular expression searching must be done via a compiled pattern .\"O buffer, thus @@ -99,19 +99,19 @@ regcomp, regexec, regerror, regfree \- POSIX regex .\"O must always be supplied with the address of a .\"O .BR regcomp () .\"O initialized pattern buffer. -Á´¤Æ¤ÎÀµµ¬É½¸½¸¡º÷¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥Ñ¥¿¡¼¥ó¤Ë¤è¤Ã¤Æ¹Ô¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤è¤Ã¤Æ¡¢ +全ての正規表現検索は、コンパイルされたパターンによって行わなければならない。 +よって、 .BR regexec () -¤Ë»ØÄꤹ¤ë¤Î¤Ï¡¢É¬¤º +に指定するのは、必ず .RB ( regcomp () -¤Ë¤è¤Ã¤Æ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿) ¥Ñ¥¿¡¼¥ó¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥¢¥É¥ì¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +によってコンパイルされた) パターンバッファへのアドレスでなければならない。 .\"O .I cflags .\"O may be the .\"O .RB bitwise- or .\"O of one or more of the following: .I cflags -¤Ë¤Ï°Ê²¼¤Ë¼¨¤¹Äê¿ô°ì¤Ä°Ê¾å¤Î¥Ó¥Ã¥È¤´¤È¤Î OR (bitwise-or) ¤ò»ØÄꤹ¤ë¡£ +には以下に示す定数一つ以上のビットごとの OR (bitwise-or) を指定する。 .TP .B REG_EXTENDED .\"O Use @@ -122,21 +122,21 @@ regcomp, regexec, regerror, regfree \- POSIX regex .\"O .B POSIX .\"O Basic Regular Expression syntax is used. .I regex -¤Ë +に .B POSIX -³ÈÄ¥Àµµ¬É½¸½¤ò»ÈÍѤ¹¤ë¡£¤â¤·¤³¤Î¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢ +拡張正規表現を使用する。もしこのフラグが設定されない場合、 .B POSIX -ɸ½àÀµµ¬É½¸½¤¬»È¤ï¤ì¤ë¡£ +標準正規表現が使われる。 .TP .B REG_ICASE .\"O Do not differentiate case. .\"O Subsequent .\"O .BR regexec () .\"O searches using this pattern buffer will be case insensitive. -Âçʸ»ú¾®Ê¸»ú¤Î°ã¤¤¤ò̵»ë¤¹¤ë¡£¤³¤Î¥Õ¥é¥°¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿ -¥Ñ¥¿¡¼¥ó¥Ð¥Ã¥Õ¥¡¤òÍѤ¤¤Æ +大文字小文字の違いを無視する。このフラグを指定してコンパイルされた +パターンバッファを用いて .BR regexec () -´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤È¡¢Âçʸ»ú¾®Ê¸»ú¤Î¶èÊ̤òÉÕ¤±¤º¤Ë¸¡º÷¤¬¹Ô¤ï¤ì¤ë¡£ +関数を呼び出すと、大文字小文字の区別を付けずに検索が行われる。 .TP .B REG_NOSUB .\"O Support for substring addressing of matches is not required. @@ -147,23 +147,23 @@ regcomp, regexec, regerror, regfree \- POSIX regex .\"O arguments to .\"O .BR regexec () .\"O are ignored if the pattern buffer supplied was compiled with this flag set. -¤³¤Î¥Õ¥é¥°¤òÀßÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥Ñ¥¿¡¼¥ó¥Ð¥Ã¥Õ¥¡¤¬ +このフラグを設定してコンパイルされたパターンバッファが .BR regexec () -¤Î°ú¿ô¤Ë»ØÄꤵ¤ì¤ë¤È¡¢°ú¤­¿ô +の引数に指定されると、引き数 .IR nmatch , .I pmatch -¤¬Ìµ»ë¤µ¤ì¤ë¡£ +が無視される。 .TP .B REG_NEWLINE .\"O Match-any-character operators don't match a newline. -Á´¤Æ¤Îʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë¥ª¥Ú¥ì¡¼¥¿¤Ë²þ¹Ô¤ò¥Þ¥Ã¥Á¤µ¤»¤Ê¤¤¡£ +全ての文字にマッチするオペレータに改行をマッチさせない。 .\"O A nonmatching list .\"O .RB ( [^...] ) .\"O not containing a newline does not match a newline. -²þ¹Ô¤ò´Þ¤Þ¤Ê¤¤Èó¥Þ¥Ã¥Á¥ó¥°Ê¸»ú¥ê¥¹¥È +改行を含まない非マッチング文字リスト .RB ( [^...] ) -¤Ë²þ¹Ô¤ò¥Þ¥Ã¥Á¤µ¤»¤Ê¤¤¡£ +に改行をマッチさせない。 .\"O Match-beginning-of-line operator .\"O .RB ( ^ ) @@ -175,13 +175,13 @@ regcomp, regexec, regerror, regfree \- POSIX regex .\"O contains .\"O .BR REG_NOTBOL . .BR regexec () -¤Î¼Â¹Ô»þ¤Ë»ØÄꤹ¤ë¥Õ¥é¥° +の実行時に指定するフラグ .I eflags -¤Ë +に .B REG_NOTBOL -¤ò´Þ¤à¤«¤É¤¦¤«¤Ë¤«¤«¤ï¤é¤º¡¢¹ÔƬ¤Ë¥Þ¥Ã¥Á¤¹¤ë¥ª¥Ú¥ì¡¼¥¿ +を含むかどうかにかかわらず、行頭にマッチするオペレータ .RB ( ^ ) -¤ò²þ¹Ôľ¸å¤Î¶õʸ»úÎó¤Ë¥Þ¥Ã¥Á¤µ¤»¤ë¡£ +を改行直後の空文字列にマッチさせる。 .\"O Match-end-of-line operator .\"O .RB ( $ ) @@ -191,30 +191,30 @@ regcomp, regexec, regerror, regfree \- POSIX regex .\"O contains .\"O .BR REG_NOTEOL . .I eflags -¤Ë +に .B REG_NOTEOL -¤ò´Þ¤à¤«¤É¤¦¤«¤Ë¤«¤«¤ï¤é¤º¡¢¹ÔËö¤Ë¥Þ¥Ã¥Á¤¹¤ë¥ª¥Ú¥ì¡¼¥¿ +を含むかどうかにかかわらず、行末にマッチするオペレータ .RB ( $ ) -¤ò²þ¹ÔľÁ°¤Î¶õʸ»úÎó¤Ë¥Þ¥Ã¥Á¤µ¤»¤ë¡£ +を改行直前の空文字列にマッチさせる。 .\"O .SS "POSIX Regex Matching" -.SS "POSIX regex ¥Þ¥Ã¥Á¥ó¥°" +.SS "POSIX regex マッチング" .\"O .BR regexec () .\"O is used to match a null-terminated string .\"O against the precompiled pattern buffer, .\"O .IR preg . .BR regexec () -¤Ï¡¢ -¥×¥ê¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥Ñ¥¿¡¼¥ó¥Ð¥Ã¥Õ¥¡ +は、 +プリコンパイルされたパターンバッファ .I preg -¤ò¥Ì¥ëʸ»ú¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ë¥Þ¥Ã¥Á¤µ¤»¤ë¡£ +をヌル文字で終端された文字列にマッチさせる。 .\"O .I nmatch .\"O and .\"O .I pmatch .\"O are used to provide information regarding the location of any matches. .I nmatch -¤È +と .I pmatch -¤Ï¥Þ¥Ã¥Á¥ó¥°¤Î°ÌÃ֤˴ؤ¹¤ë¾ðÊó¤ò¼èÆÀ¤¹¤ë¤Î¤ËÍѤ¤¤é¤ì¤ë¡£ +はマッチングの位置に関する情報を取得するのに用いられる。 .\"O .I eflags .\"O may be the .\"O .RB bitwise- or @@ -224,13 +224,13 @@ regcomp, regexec, regerror, regfree \- POSIX regex .\"O .B REG_NOTEOL .\"O which cause changes in matching behavior described below. .I eflags -¤Ë¤Ï +には .B REG_NOTBOL -¤È +と .B REG_NOTEOL -¤Î¤É¤Á¤é¤«¡¢¤â¤·¤¯¤ÏξÊý¤Î¥Ó¥Ã¥È¤´¤È¤Î +のどちらか、もしくは両方のビットごとの .BR OR " (bitwise-" or ) -¤ò»ØÄꤷ¡¢°Ê²¼¤ÇÀâÌÀ¤¹¤ë¤è¤¦¤Ë¥Þ¥Ã¥Á¥ó¥°Æ°ºî¤òÊѲ½¤µ¤»¤ë¡£ +を指定し、以下で説明するようにマッチング動作を変化させる。 .TP .\"O .B REG_NOTBOL .\"O The match-beginning-of-line operator always fails to match (but see the @@ -238,16 +238,16 @@ regcomp, regexec, regerror, regfree \- POSIX regex .\"O .B REG_NEWLINE .\"O above) .B REG_NOTBOL -¹ÔƬ¤Ë¥Þ¥Ã¥Á¤¹¤ë¥ª¥Ú¥ì¡¼¥¿¤Ï¡¢É¬¤º¥Þ¥Ã¥Á¤Ë¼ºÇÔ¤¹¤ë (¥³¥ó¥Ñ¥¤¥ë»þ¤Î¥Õ¥é¥° +行頭にマッチするオペレータは、必ずマッチに失敗する (コンパイル時のフラグ .B REG_NEWLINE -¤Î¹àÌܤ⻲¾È)¡£ +の項目も参照)。 .\"O This flag may be used when different portions of a string are passed to .\"O .BR regexec () .\"O and the beginning of the string should not be interpreted as the .\"O beginning of the line. -¤³¤Î¥Õ¥é¥°¤Ï¡¢Ê£¿ô¹Ô¤Ë¤Þ¤¿¤¬¤ëʸ»úÎó¤ò +このフラグは、複数行にまたがる文字列を .BR regexec () -¤Ç¸¡º÷¤¹¤ëºÝ¤Ë¡¢Ê¸»úÎó¤ÎÀèƬ¤ò¹Ô¤ÎÀèƬ¤È¤·¤Æ²ò¼á¤µ¤»¤Ê¤¤¾ì¹ç¤ËÍѤ¤¤ë¡£ +で検索する際に、文字列の先頭を行の先頭として解釈させない場合に用いる。 .TP .\"O .B REG_NOTEOL .\"O The match-end-of-line operator always fails to match (but see the @@ -255,34 +255,34 @@ regcomp, regexec, regerror, regfree \- POSIX regex .\"O .B REG_NEWLINE .\"O above) .B REG_NOTEOL -¹ÔËö¤Ë¥Þ¥Ã¥Á¤¹¤ë¥ª¥Ú¥ì¡¼¥¿¤Ï¡¢É¬¤º¥Þ¥Ã¥Á¤Ë¼ºÇÔ¤¹¤ë (¥³¥ó¥Ñ¥¤¥ë»þ¤Î¥Õ¥é¥° +行末にマッチするオペレータは、必ずマッチに失敗する (コンパイル時のフラグ .B REG_NEWLINE -¤Î¹àÌܤ⻲¾È)¡£ +の項目も参照)。 .\"O .SS "Byte Offsets" -.SS ¥Ð¥¤¥È¥ª¥Õ¥»¥Ã¥È +.SS バイトオフセット .\"O Unless .\"O .B REG_NOSUB .\"O was set for the compilation of the pattern buffer, it is possible to .\"O obtain substring match addressing information. -¥Ñ¥¿¡¼¥ó¥Ð¥Ã¥Õ¥¡¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +パターンバッファのコンパイル時に .B REG_NOSUB -¤¬ÀßÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢Éôʬʸ»úÎó¤Î¥Þ¥Ã¥Á¥ó¥°°ÌÃÖ¾ðÊó¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +が設定されない場合は、部分文字列のマッチング位置情報を得ることができる。 .\"O .I pmatch .\"O must be dimensioned to have at least .\"O .I nmatch .\"O elements. .I pmatch -¤Ï¡¢¾¯¤Ê¤¯¤È¤â +は、少なくとも .I nmatch -¤ÎÂ礭¤µ¤ò»ý¤Ä¤è¤¦¤Ë»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +の大きさを持つように指定しなければならない。 .\"O These are filled in by .\"O .BR regexec () .\"O with substring match addresses. .\"O Any unused structure elements .\"O will contain the value \-1. .BR regexec () -¤Î¼Â¹Ô¤Ë¤è¤Ã¤Æ¡¢¤½¤ì¤é¤ËÉôʬʸ»úÎó¥Þ¥Ã¥Á¥ó¥°°ÌÃÖ¾ðÊó¤¬ÂåÆþ¤µ¤ì¤ë¡£ -̤»ÈÍѤι½Â¤ÂÎÍ×ÁÇ¤Ë¤Ï \-1 ¤¬ÃͤȤ·¤ÆÂåÆþ¤µ¤ì¤ë¡£ +の実行によって、それらに部分文字列マッチング位置情報が代入される。 +未使用の構造体要素には \-1 が値として代入される。 .\"O The .\"O .I regmatch_t @@ -291,11 +291,11 @@ regcomp, regexec, regerror, regfree \- POSIX regex .\"O is defined in .\"O .IR . .I pmatch -¤Î·¿¤Ç¤¢¤ë +の型である .I regmatch_t -¹½Â¤ÂΤϡ¢ +構造体は、 .I -Æâ¤ÇÄêµÁ¤µ¤ì¤ë¡£ +内で定義される。 .in +4n .nf @@ -314,15 +314,15 @@ typedef struct { .\"O .I rm_eo .\"O element indicates the end offset of the match, .\"O which is the offset of the first character after the matching text. -¹½Â¤ÂÎÍ×ÁÇ +構造体要素 .I rm_so -¤ÎÃͤ¬ \-1 ¤Ç¤Ê¤¤¾ì¹ç¡¢¤½¤ì¤Ïʸ»úÎóÆâ¤Ç¤Î¼¡¤ÎºÇÂç¤Î¥Þ¥Ã¥Á¥ó¥°Éôʬ¤Î³«»Ï -¥ª¥Õ¥»¥Ã¥È°ÌÃÖ¤ò¼¨¤¹¡£¤½¤ì¤ËÂФ·¡¢¹½Â¤ÂÎÍ×ÁÇ +の値が \-1 でない場合、それは文字列内での次の最大のマッチング部分の開始 +オフセット位置を示す。それに対し、構造体要素 .I rm_eo -¤Ï¥Þ¥Ã¥Á¥ó¥°Éôʬ¤Î½ªÎ»¥ª¥Õ¥»¥Ã¥È°ÌÃÖ¤ò¼¨¤·¡¢ -¥Þ¥Ã¥Á¥ó¥°Éôʬ¤Îľ¸å¤Îʸ»ú¤Î¥ª¥Õ¥»¥Ã¥È°ÌÃÖ¤¬»ÈÍѤµ¤ì¤ë¡£ +はマッチング部分の終了オフセット位置を示し、 +マッチング部分の直後の文字のオフセット位置が使用される。 .\"O .SH "POSIX Error Reporting" -.SS "POSIX ¥¨¥é¡¼¥ì¥Ý¡¼¥È" +.SS "POSIX エラーレポート" .\"O .BR regerror () .\"O is used to turn the error codes that can be returned by both .\"O .BR regcomp () @@ -330,12 +330,12 @@ typedef struct { .\"O .BR regexec () .\"O into error message strings. .BR regerror () -¤Ï¡¢ +は、 .BR regcomp () -¤È +と .BR regexec () -¤Î¼Â¹Ô¤Ë¤è¤Ã¤ÆÆÀ¤é¤ì¤ë¥¨¥é¡¼¥³¡¼¥É¤«¤é¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸Ê¸»úÎó¤ò -ÆÀ¤ë¤Î¤ËÍѤ¤¤é¤ì¤ë¡£ +の実行によって得られるエラーコードから、エラーメッセージ文字列を +得るのに用いられる。 .\"O .BR regerror () .\"O is passed the error code, @@ -347,15 +347,15 @@ typedef struct { .\"O and the size of the string buffer, .\"O .IR errbuf_size . .BR regerror () -¤Ï¥¨¥é¡¼¥³¡¼¥É -.IR errcode ¡¢ -¥Ñ¥¿¡¼¥ó¥Ð¥Ã¥Õ¥¡ -.IR preg ¡¢ -ʸ»úÎó¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿ -.IR errbuf ¡¢ -ʸ»úÎó¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º +はエラーコード +.IR errcode 、 +パターンバッファ +.IR preg 、 +文字列バッファへのポインタ +.IR errbuf 、 +文字列バッファのサイズ .I errbuf_size -¤ò°ú¿ô¤Ë¤È¤ë¡£ +を引数にとる。 .\"O It returns the size of the .\"O .I errbuf .\"O required to contain the null-terminated error message string. @@ -368,20 +368,20 @@ typedef struct { .\"O is filled in with the first .\"O .I "errbuf_size \- 1" .\"O characters of the error message and a terminating null byte (\(aq\\0\(aq). -¤³¤Î´Ø¿ô¤Ï¡¢¥Ì¥ëʸ»ú¤Ç½ªÃ¼¤µ¤ì¤¿¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸Ê¸»úÎó¤ò³ÊǼ¤¹¤ë¤Î¤ËɬÍ×¤Ê +この関数は、ヌル文字で終端されたエラーメッセージ文字列を格納するのに必要な .I errbuf -¤Î¥µ¥¤¥º¤òÊÖ¤¹¡£¤â¤· +のサイズを返す。もし .I errbuf -¤È +と .I errbuf_size -¤ÎξÊý¤¬Èó 0 ÃͤǤ¢¤ì¤Ð¡¢ +の両方が非 0 値であれば、 .I errbuf -¤Ë¤ÏºÇ½é¤Î +には最初の .I "errbuf_size \- 1" -ʸ»úʬ¤Ë¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤È½ªÃ¼¤Î NULL ¥Ð¥¤¥È (\(aq\\0\(aq) -¤¬¼ý¤Þ¤ë¤è¤¦¤ËÂåÆþ¤µ¤ì¤ë¡£ +文字分にエラーメッセージと終端の NULL バイト (\(aq\\0\(aq) +が収まるように代入される。 .\"O .SS "POSIX Pattern Buffer Freeing" -.SS "POSIX ¥Ñ¥¿¡¼¥ó¥Ð¥Ã¥Õ¥¡²òÊü" +.SS "POSIX パターンバッファ解放" .\"O Supplying .\"O .BR regfree () .\"O with a precompiled pattern buffer, @@ -389,118 +389,118 @@ typedef struct { .\"O will free the memory allocated to the pattern buffer by the compiling .\"O process, .\"O .BR regcomp (). -°ú¿ô¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥Ñ¥¿¡¼¥ó¥Ð¥Ã¥Õ¥¡ +引数にコンパイルされたパターンバッファ .I preg -¤òÍ¿¤¨¤Æ +を与えて .BR regfree () -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢ +を呼び出すと、 .BR regcomp () -¤Ë¤è¤ë¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¥Ñ¥¿¡¼¥ó¥Ð¥Ã¥Õ¥¡¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤¬²òÊü¤µ¤ì¤ë¡£ +によるコンパイル時にパターンバッファに割り当てられたメモリが解放される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR regcomp () .\"O returns zero for a successful compilation or an error code for failure. .BR regcomp () -¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë¤ÎÀ®¸ù»þ¤Ë¤Ï 0 ¤òÊÖ¤·¡¢¼ºÇÔ»þ¤Ë¤Ï¥¨¥é¡¼¥³¡¼¥É¤òÊÖ¤¹¡£ +は、コンパイルの成功時には 0 を返し、失敗時にはエラーコードを返す。 .\"O .BR regexec () .\"O returns zero for a successful match or .\"O .B REG_NOMATCH .\"O for failure. .BR regexec () -¤Ï¡¢¥Þ¥Ã¥Á¥ó¥°¤ÎÀ®¸ù»þ¤Ë¤Ï 0 ¤òÊÖ¤·¡¢¼ºÇÔ»þ¤Ë¤Ï +は、マッチングの成功時には 0 を返し、失敗時には .B REG_NOMATCH -¤òÊÖ¤¹¡£ +を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O The following errors can be returned by .\"O .BR regcomp (): .BR regcomp () -¤Ï°Ê²¼¤Î¥¨¥é¡¼¤òÊÖ¤¹¡£ +は以下のエラーを返す。 .TP .B REG_BADBR .\"O Invalid use of back reference operator. -̵¸ú¤Ê¸åÊý»²¾È¥ª¥Ú¥ì¡¼¥¿¤Î»ÈÍÑ¡£ +無効な後方参照オペレータの使用。 .TP .B REG_BADPAT .\"O Invalid use of pattern operators such as group or list. -¥°¥ë¡¼¥×¤ä¥ê¥¹¥È¤Ê¤É¤Î¡¢¥Ñ¥¿¡¼¥ó¥ª¥Ú¥ì¡¼¥¿¤Î̵¸ú¤Ê»ÈÍÑ¡£ +グループやリストなどの、パターンオペレータの無効な使用。 .TP .B REG_BADRPT .\"O Invalid use of repetition operators such as using \(aq*\(aq .\"O as the first character. -\(aq*\(aq ¤¬ºÇ½é¤Îʸ»ú¤È¤·¤Æ¤¯¤ë¤è¤¦¤Ê¡¢Ìµ¸ú¤Ê·«¤êÊÖ¤·¥ª¥Ú¥ì¡¼¥¿¤Î»ÈÍÑ¡£ +\(aq*\(aq が最初の文字としてくるような、無効な繰り返しオペレータの使用。 .TP .B REG_EBRACE .\"O Un-matched brace interval operators. -¥¤¥ó¥¿¡¼¥Ð¥ë¥ª¥Ú¥ì¡¼¥¿ +インターバルオペレータ .B {} -(brace interval operators) ¤¬ÊĤ¸¤Æ¤¤¤Ê¤¤¡£ +(brace interval operators) が閉じていない。 .TP .B REG_EBRACK .\"O Un-matched bracket list operators. -¥ê¥¹¥È¥ª¥Ú¥ì¡¼¥¿ +リストオペレータ .B [] -(bracket list operators) ¤¬ÊĤ¸¤Æ¤¤¤Ê¤¤¡£ +(bracket list operators) が閉じていない。 .TP .B REG_ECOLLATE .\"O Invalid collating element. -¾È¹ç½ç½ø¤ÎÍ×ÁÇ (collating element) ¤È¤·¤ÆÍ­¸ú¤Ç¤Ï¤Ê¤¤¡£ +照合順序の要素 (collating element) として有効ではない。 -(ÌõÃí) ¾È¹ç½ç½ø¤ÎÍ×ÁÇ (collating element) ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +(訳注) 照合順序の要素 (collating element) については、 .BR regex (7) -¤ò»²¾È¡£ +を参照。 .TP .B REG_ECTYPE .\"O Unknown character class name. -̤ÃΤΥ­¥ã¥é¥¯¥¿¥¯¥é¥¹Ì¾¡£ +未知のキャラクタクラス名。 .TP .B REG_EEND .\"O Non specific error. .\"O This is not defined by POSIX.2. -̤ÄêµÁ¥¨¥é¡¼¡£¤³¤ì¤Ï POSIX.2 ¤Ë¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +未定義エラー。これは POSIX.2 には定義されていない。 .TP .B REG_EESCAPE .\"O Trailing backslash. -Àµµ¬É½¸½¤¬¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤Ç½ª¤Ã¤Æ¤¤¤ë¡£ +正規表現がバックスラッシュで終っている。 -(ÌõÃí) ÆüËܸì´Ä¶­¤Î¾ì¹ç¡¢¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤È¤Ê¤ë¤Ù¤­½ê¤¬±ßµ­¹æ¤Ç -ɽ¼¨¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¤¬¡¢¤³¤ì¤Ïñ¤Ëɽ¼¨¥Õ¥©¥ó¥È¤ÎÌäÂê¤Ç¡¢ -ÆâÉôŪ¤Ë¤ÏƱ¤¸°ÕÌ£¤Ç¤¢¤ë¡£ +(訳注) 日本語環境の場合、バックスラッシュとなるべき所が円記号で +表示されることがあるが、これは単に表示フォントの問題で、 +内部的には同じ意味である。 .TP .B REG_EPAREN .\"O Un-matched parenthesis group operators. -¥°¥ë¡¼¥×¥ª¥Ú¥ì¡¼¥¿ +グループオペレータ .B () -(parenthesis group operators) ¤¬ÊĤ¸¤Æ¤¤¤Ê¤¤¡£ +(parenthesis group operators) が閉じていない。 .TP .B REG_ERANGE .\"O Invalid use of the range operator, e.g., the ending point of the range .\"O occurs prior to the starting point. -̵¸ú¤ÊÈÏ°Ï¥ª¥Ú¥ì¡¼¥¿¤Î»ÈÍÑ¡£ -Î㤨¤Ð¡¢ÈϰϤνªÎ»°ÌÃÖ¤¬³«»Ï°ÌÃÖ¤è¤ê¤âÁ°¤Ë¤¢¤ë¤è¤¦¤Ê¾ì¹ç¡£ +無効な範囲オペレータの使用。 +例えば、範囲の終了位置が開始位置よりも前にあるような場合。 .TP .B REG_ESIZE .\"O Compiled regular expression requires a pattern buffer larger than 64Kb. .\"O This is not defined by POSIX.2. -Àµµ¬É½¸½¤Î¥³¥ó¥Ñ¥¤¥ë¤Ë¡¢64Kb °Ê¾å¤Î¥Ñ¥¿¡¼¥ó¥Ð¥Ã¥Õ¥¡¤¬É¬Íס£ -¤³¤ì¤Ï POSIX.2 ¤Ë¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +正規表現のコンパイルに、64Kb 以上のパターンバッファが必要。 +これは POSIX.2 には定義されていない。 .TP .B REG_ESPACE .\"O The regex routines ran out of memory. -regex ¥ë¡¼¥Á¥ó¤¬¥á¥â¥ê¤ò»È¤¤¤Ï¤¿¤·¤Æ¤¤¤ë¡£ +regex ルーチンがメモリを使いはたしている。 .TP .B REG_ESUBREG .\"O Invalid back reference to a subexpression. -¥µ¥Ö¥¨¥¯¥¹¥×¥ì¥Ã¥·¥ç¥ó +サブエクスプレッション .RB \e (...\e ) -(subexpression) ¤Ø¤Î̵¸ú¤Ê¸åÊý»²¾È¡£ +(subexpression) への無効な後方参照。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR grep (1), .BR regex (7), .\"O GNU regex manual -GNU regex ¥Þ¥Ë¥å¥¢¥ë +GNU regex マニュアル diff --git a/draft/man3/remainder.3 b/draft/man3/remainder.3 index de6b1975..214172c9 100644 --- a/draft/man3/remainder.3 +++ b/draft/man3/remainder.3 @@ -41,37 +41,37 @@ .\" .TH REMAINDER 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O drem, dremf, dreml, remainder, remainderf, remainderl \- \ .\"O floating-point remainder function -drem, dremf, dreml, remainder, remainderf, remainderl \- ÉâÆ°¾®¿ôÅÀ¾ê;´Ø¿ô +drem, dremf, dreml, remainder, remainderf, remainderl \- 浮動小数点剰余関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .\"O /* The C99 versions */ -/* C99 ÈÇ */ +/* C99 版 */ .BI "double remainder(double " x ", double " y ); .BI "float remainderf(float " x ", float " y ); .BI "long double remainderl(long double " x ", long double " y ); .sp .\"O /* Obsolete synonyms */ -/* Çѻߤµ¤ì¤¿ÊÌ̾ */ +/* 廃止された別名 */ .BI "double drem(double " x ", double " y ); .BI "float dremf(float " x ", float " y ); .BI "long double dreml(long double " x ", long double " y ); .sp .fi .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -104,7 +104,7 @@ _SVID_SOURCE || _BSD_SOURCE .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR remainder () .\"O function computes the remainder of dividing @@ -112,11 +112,11 @@ _SVID_SOURCE || _BSD_SOURCE .\"O by .\"O .IR y . .BR remainder () -´Ø¿ô¤Ï +関数は .I x -¤ò +を .I y -¤Ç³ä¤Ã¤¿Í¾¤ê¤ò·×»»¤¹¤ë¡£ +で割った余りを計算する。 .\"O The return value is .\"O \fIx\fP\-\fIn\fP*\fIy\fP, .\"O where @@ -124,46 +124,46 @@ _SVID_SOURCE || _BSD_SOURCE .\"O is the value .\"O .IR "x\ /\ y" , .\"O rounded to the nearest integer. -ÊÖ¤êÃÍ¤Ï +返り値は \fIx\fP\-\fIn\fP*\fIy\fP -¤Ç¤¢¤ë¡£ -¤³¤³¤Ç +である。 +ここで .I n -¤Ï +は .I "x\ /\ y" -¤ÎÃͤòºÇ¤â¶á¤¤À°¿ô¤Ë´Ý¤á¤¿¤â¤Î¤Ç¤¢¤ë¡£ +の値を最も近い整数に丸めたものである。 .\"O If the absolute value of .\"O \fIx\fP\-\fIn\fP*\fIy\fP .\"O is 0.5, .\"O .I n .\"O is chosen to be even. \fIx\fP\-\fIn\fP*\fIy\fP -¤ÎÀäÂÐÃͤ¬ 0.5 ¤Î¾ì¹ç¡¢¶ö¿ô¤Ë¤Ê¤ë¤è¤¦¤Ë +の絶対値が 0.5 の場合、偶数になるように .I n -¤¬Áª¤Ð¤ì¤ë¡£ +が選ばれる。 .\"O These functions are unaffected by the current rounding mode (see .\"O .BR fenv (3)). -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¸½ºß¤Î´Ý¤á¥â¡¼¥É¤Î±Æ¶Á¤ò¼õ¤±¤Ê¤¤ (´Ý¤á¥â¡¼¥É¤Ë¤Ä¤¤¤Æ¤Ï +これらの関数は、現在の丸めモードの影響を受けない (丸めモードについては .BR fenv (3) -¤ò»²¾È)¡£ +を参照)。 .LP .\"O The .\"O .BR drem () .\"O function does precisely the same thing. .BR drem () -´Ø¿ô¤Ï¤³¤ì¤ÈÁ´¤¯Æ±¤¸Æ°ºî¤ò¤¹¤ë¡£ +関数はこれと全く同じ動作をする。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these .\"O functions return the floating-point remainder, .\"O \fIx\fP\-\fIn\fP*\fIy\fP. .\"O If the return value is 0, it has the sign of .\"O .IR x . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤ÏÉâÆ°¾®¿ôÅÀ¤Î¾ê; \fIx\fP\-\fIn\fP*\fIy\fP ¤òÊÖ¤¹¡£ -ÊÖ¤êÃͤ¬ 0 ¤Î¾ì¹ç¡¢¤½¤ÎÉä¹æ¤Ï +成功すると、これらの関数は浮動小数点の剰余 \fIx\fP\-\fIn\fP*\fIy\fP を返す。 +返り値が 0 の場合、その符号は .I x -¤ÈƱ¤¸¤Ë¤Ê¤ë¡£ +と同じになる。 .\"O If .\"O .I x @@ -171,9 +171,9 @@ _SVID_SOURCE || _BSD_SOURCE .\"O .I y .\"O is a NaN, a NaN is returned. .I x -¤« +か .I y -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x @@ -184,10 +184,10 @@ _SVID_SOURCE || _BSD_SOURCE .\"O a domain error occurs, and .\"O a NaN is returned. .I x -¤¬Ìµ¸ÂÂç¤Ç +が無限大で .I y -¤¬ NaN ¤Ç¤Ê¤¤¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN でない場合、 +領域エラー (domain error) が発生し、NaN が返される。 .\"O If .\"O .I y @@ -200,47 +200,47 @@ _SVID_SOURCE || _BSD_SOURCE .\"O a domain error occurs, and .\"O a NaN is returned. .I y -¤¬¥¼¥í¤Ç +がゼロで .I x -¤¬ NaN ¤Ç¤Ê¤¤¾ì¹ç¡¢ -Îΰ襨¥é¡¼¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN でない場合、 +領域エラーが発生し、NaN が返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Domain error: \fIx\fP is an infinity and \fIy\fP is not a NaN -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬Ìµ¸ÂÂç¤Ç \fIy\fP ¤¬ NaN ¤Ç¤Ï¤Ê¤¤ +領域エラー (domain error): \fIx\fP が無限大で \fIy\fP が NaN ではない .\" .I errno .\" is set to .\" .BR EDOM . .\"O An invalid floating-point exception .\"O .RB ( FE_INVALID ) .\"O is raised. -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .IP .\"O These functions do not set .\"O .IR errno .\"O for this case. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¤³¤Î¾ì¹ç¤Ë +これらの関数は、この場合に .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" They do set errno for the y == 0 case, below. .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6783 .TP .\"O Domain error: \fIy\fP is zero\" [XXX see bug above] and \fIx\fP is not a NaN -Îΰ襨¥é¡¼: \fIy\fP ¤¬¥¼¥í¤Ç \fIx\fP ¤¬ NaN ¤Ç¤Ï¤Ê¤¤ (²¼µ­¤Î¡Ö¥Ð¥°¡×»²¾È) +領域エラー: \fIy\fP がゼロで \fIx\fP が NaN ではない (下記の「バグ」参照) .\"O .I errno .\"O is set to .\"O .BR EDOM . @@ -248,14 +248,14 @@ _SVID_SOURCE || _BSD_SOURCE .\"O .RB ( FE_INVALID ) .\"O is raised. .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë¡£ -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\" IEC 60559. .\"O The functions .\"O .BR remainder (), @@ -263,11 +263,11 @@ _SVID_SOURCE || _BSD_SOURCE .\"O and .\"O .BR remainderl () .\"O are specified in C99 and POSIX.1-2001. -´Ø¿ô +関数 .BR remainder (), .BR remainderf (), .BR remainderl () -¤Ï C99 ¤È POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は C99 と POSIX.1-2001 で規定されている。 .\"O The function .\"O .BR drem () @@ -284,22 +284,22 @@ _SVID_SOURCE || _BSD_SOURCE .\"O Avoid the use of these functions in favor of .\"O .BR remainder () .\"O etc. -´Ø¿ô +関数 .BR drem () -¤Ï 4.3BSD ¤ËͳÍ褹¤ë¡£ +は 4.3BSD に由来する。 .I float -¤È +と .I "long double" -ÈǤΠ+版の .BR dremf () -¤È +と .BR dreml () -¤Ï¡¢Tru64 ¤ä glibc2 ¤Î¤è¤¦¤Ê¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Î»ÈÍѤÏÈò¤±¤Æ¡¢ +は、Tru64 や glibc2 のようないくつかのシステムに存在する。 +これらの関数の使用は避けて、 .BR remainder () -¤Ê¤É¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +などを使用すること。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O The call .\"O .\"O remainder(nan(""), 0); @@ -309,16 +309,16 @@ _SVID_SOURCE || _BSD_SOURCE remainder(nan(""), 0); -¤Î¸Æ¤Ó½Ð¤·¤ò¹Ô¤¦¤È¡¢´üÂÔÄ̤ê Nan ¤¬Ê֤뤬¡¢¸í¤Ã¤ÆÎΰ襨¥é¡¼¤¬È¯À¸¤¹¤ë¡£ -Àµ¤·¤¯¤Ï¥¨¥é¡¼¤Ê¤·¤Î Nan ¤È¤Ê¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +の呼び出しを行うと、期待通り Nan が返るが、誤って領域エラーが発生する。 +正しくはエラーなしの Nan となるべきである。 .\" FIXME . this bug occurs as at glibc 2.8. .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6779 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The call "remainder(29.0, 3.0)" returns \-1. -"remainder(29.0, 3.0)" ¤ò¸Æ¤Ó½Ð¤¹¤È \-1 ¤òÊÖ¤¹¡£ +"remainder(29.0, 3.0)" を呼び出すと \-1 を返す。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR div (3), .BR fmod (3), .BR remquo (3) diff --git a/draft/man3/remove.3 b/draft/man3/remove.3 index 7c6770c9..a266f13b 100644 --- a/draft/man3/remove.3 +++ b/draft/man3/remove.3 @@ -37,16 +37,16 @@ .\" .TH REMOVE 3 2008-12-03 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O remove \- remove a file or directory -remove \- ¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥ì¥¯¥È¥ê¤òºï½ü¤¹¤ë +remove \- ファイルやディレクトリを削除する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int remove(const char *" pathname ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR remove () .\"O deletes a name from the filesystem. .\"O It calls @@ -55,79 +55,79 @@ remove \- .\"O .BR rmdir (2) .\"O for directories. .BR remove () -¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤«¤é¥Õ¥¡¥¤¥ë̾¤òºï½ü¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¤Ï +はファイルシステムからファイル名を削除する。 +ファイルに対しては .BR unlink (2) -¤ò¡¢¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ·¤Æ¤Ï +を、ディレクトリに対しては .BR rmdir (2) -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .\"O If the removed name was the .\"O last link to a file and no processes have the file open, the file is .\"O deleted and the space it was using is made available for reuse. -¤â¤·¤½¤Î̾Á°¤¬ -¥Õ¥¡¥¤¥ë¤Ø¤ÎºÇ¸å¤Î¥ê¥ó¥¯¤Ç¡¢¤«¤Ä¡¢¤É¤Î¥×¥í¥»¥¹¤â¤½¤Î¥Õ¥¡¥¤¥ë¤ò -³«¤¤¤Æ¤¤¤Ê¤¤¤Ê¤é¡¢¥Õ¥¡¥¤¥ë¤âºï½ü¤¹¤ë¡£¥Õ¥¡¥¤¥ë¤ÎÀê¤á¤Æ¤¤¤¿ -Îΰè¤Ï¾¤Ç»È¤¦¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +もしその名前が +ファイルへの最後のリンクで、かつ、どのプロセスもそのファイルを +開いていないなら、ファイルも削除する。ファイルの占めていた +領域は他で使うことができるようになる。 .\"O If the name was the last link to a file, .\"O but any processes still have the file open, .\"O the file will remain in existence until the last file .\"O descriptor referring to it is closed. -̾Á°¤¬¥Õ¥¡¥¤¥ë¤Ø¤ÎºÇ¸å¤Î¥ê¥ó¥¯¤Ç¤¢¤Ã¤Æ¤â¡¢¤É¤³¤«¤Î¥×¥í¥»¥¹¤¬ -¤½¤Î¥Õ¥¡¥¤¥ë¤ò³«¤¤¤Æ¤¤¤ë¤Ê¤é¡¢¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤Î¥Õ¥¡¥¤¥ëµ­½Ò»Ò -(file descriptor) ¤¬ÊĤ¸¤é¤ì¤ë¤Þ¤Ç¥Õ¥¡¥¤¥ë¤Ï¸ºß¤·Â³¤±¤ë¡£ +名前がファイルへの最後のリンクであっても、どこかのプロセスが +そのファイルを開いているなら、ファイルの最後のファイル記述子 +(file descriptor) が閉じられるまでファイルは存在し続ける。 .\"O If the name referred to a symbolic link, the link is removed. -̾Á°¤¬»Ø¤·¤Æ¤¤¤ë¤Î¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ê¤é¡¢¤½¤Î¥ê¥ó¥¯¤òºï½ü¤¹¤ë¡£ +名前が指しているのがシンボリックリンクなら、そのリンクを削除する。 .\"O If the name referred to a socket, FIFO, or device, the name is removed, .\"O but processes which have the object open may continue to use it. -̾Á°¤¬»Ø¤·¤Æ¤¤¤ë¤Î¤¬¥½¥±¥Ã¥È¡¢FIFO¡¢¥Ç¥Ð¥¤¥¹¤Î¾ì¹ç¡¢Ì¾Á°¤Ïºï½ü¤µ¤ì¤ë¤¬¡¢ -¤½¤Î¥½¥±¥Ã¥È¤Ê¤É¤ò³«¤¤¤Æ¤¤¤ë¥×¥í¥»¥¹¤Ï¤½¤Î¤Þ¤Þ»È¤¤Â³¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +名前が指しているのがソケット、FIFO、デバイスの場合、名前は削除されるが、 +そのソケットなどを開いているプロセスはそのまま使い続けることができる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤¹¤ì¤Ð 0 ¤¬Ê֤롣¥¨¥é¡¼¤Ê¤é \-1 ¤¬Ê֤ꡢ +成功すれば 0 が返る。エラーなら \-1 が返り、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +に適切な値がセットされる。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O The errors that occur are those for .\"O .BR unlink (2) .\"O and .\"O .BR rmdir (2). -ȯÀ¸¤¹¤ë¥¨¥é¡¼¤Ï +発生するエラーは .BR unlink (2) -¤ª¤è¤Ó +および .BR rmdir (2) -¤ÈƱ¤¸¤â¤Î¤Ç¤¢¤ë¡£ +と同じものである。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C89, C99, 4.3BSD, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Under libc4 and libc5, .\"O .BR remove () .\"O was an alias for .\"O .BR unlink (2) .\"O (and hence would not remove directories). -libc4 ¤È libc5 ¤Ë¤ª¤¤¤Æ¤Ï¡¢ +libc4 と libc5 においては、 .BR remove () -¤Ï +は .BR unlink (2) -¤ÎÊÌ̾¤Ç¤¢¤Ã¤¿ (½¾¤Ã¤Æ¥Ç¥£¥ì¥¯¥È¥ê¤òºï½ü¤Ç¤­¤Ê¤«¤Ã¤¿)¡£ +の別名であった (従ってディレクトリを削除できなかった)。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O In-felicities in the protocol underlying NFS can cause the unexpected .\"O disappearance of files which are still being used. -NFS ¥×¥í¥È¥³¥ë¤Îº¬ËÜŪ¤ÊÉÔÅÔ¹ç¤Ë¤è¤ê¡¢»ÈÍÑÃæ¤Î¥Õ¥¡¥¤¥ë¤¬¡¢ -ÁÛÄê¤Ç¤­¤Ê¤¤·Á¤Çºï½ü¤µ¤ì¤ë¤³¤È¤¬¤¢¤ê¤¨¤ë¡£ +NFS プロトコルの根本的な不都合により、使用中のファイルが、 +想定できない形で削除されることがありえる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR rm (1), .BR unlink (1), .BR link (2), diff --git a/draft/man3/remquo.3 b/draft/man3/remquo.3 index f64eb2ef..5da4eb31 100644 --- a/draft/man3/remquo.3 +++ b/draft/man3/remquo.3 @@ -13,11 +13,11 @@ .\" .TH REMQUO 3 2010-09-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O remquo, remquof, remquol \- remainder and part of quotient -remquo, remquof, remquol \- ¾¦¤Î°ìÉô¤È¾ê;¤òµá¤á¤ë +remquo, remquof, remquol \- 商の一部と剰余を求める .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -29,14 +29,14 @@ remquo, remquof, remquol \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -52,32 +52,32 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions compute the remainder and part of the quotient .\"O upon division of .\"O .I x .\"O by .\"O .IR y . -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I x -¤ò +を .I y -¤Ç³ä¤Ã¤¿¤È¤­¤Î¾¦¤Î°ìÉô¤È¾ê;¤ò·×»»¤¹¤ë¡£ +で割ったときの商の一部と剰余を計算する。 .\"O A few bits of the quotient are stored via the .\"O .I quo .\"O pointer. .\"O The remainder is returned as the function result. -¾¦¤Î¤¤¤¯¤Ä¤«¤Î¥Ó¥Ã¥È¤¬ +商のいくつかのビットが .I quo -¥Ý¥¤¥ó¥¿¤ò»È¤Ã¤Æ³ÊǼ¤µ¤ì¤ë¡£ -¾ê;¤Ï´Ø¿ô¤Î·ë²Ì¤È¤·¤ÆÊÖ¤µ¤ì¤ë¡£ +ポインタを使って格納される。 +剰余は関数の結果として返される。 .\"O The value of the remainder is the same as that computed by the .\"O .BR remainder (3) .\"O function. -¾ê;¤ÎÃÍ¤Ï +剰余の値は .BR remainder (3) -´Ø¿ô¤Ç·×»»¤µ¤ì¤ë¤â¤Î¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +関数で計算されるものと同じである。 .\"O The value stored via the .\"O .I quo @@ -85,33 +85,33 @@ or .\"O .IR "x\ /\ y" .\"O and agrees with the quotient in at least the low order 3 bits. .I quo -¥Ý¥¤¥ó¥¿¤ò»È¤Ã¤Æ³ÊǼ¤µ¤ì¤ëÃͤˤϡ¢ +ポインタを使って格納される値には、 .I "x\ /\ y" -¤ÎÉä¹æ¤ÈºÇÄã¤Ç¤â¾¦¤Î²¼°Ì 3 ¥Ó¥Ã¥È¤¬´Þ¤Þ¤ì¤ë¡£ +の符号と最低でも商の下位 3 ビットが含まれる。 .\"O For example, \fIremquo(29.0,\ 3.0)\fP returns \-1.0 and might store 2. .\"O Note that the actual quotient might not fit in an integer. -¤¿¤È¤¨¤Ð \fIremquo(29.0,\ 3.0)\fP ¤Ï \-1.0 ¤òÊÖ¤·¡¢ -(ÌõÃí: quo ¤Î»Ø¤·¤Æ¤¤¤ë¤â¤Î¤Ë¤Ï) 2 ¤¬³ÊǼ¤µ¤ì¤ë¡£ -¼ÂºÝ¤Î¾¦¤¬À°¿ôÃͤˤʤé¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +たとえば \fIremquo(29.0,\ 3.0)\fP は \-1.0 を返し、 +(訳注: quo の指しているものには) 2 が格納される。 +実際の商が整数値にならない点に注意すること。 .\"O .\" A possible application of this function might be the computation .\"O .\" of sin(x). Compute remquo(x, pi/2, &quo) or so. -.\" ¤³¤Î´Ø¿ô¤òÍøÍѤ¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤È¤·¤Æ¤Ï¡¢ -.\" sin(x) ¤Î·×»»¤Ê¤É¤¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -.\" sin(x) ¤Ç¤Ï remquo(x, pi/2, &quo) ¤Ê¤É¤ò·×»»¤¹¤ë¡£ +.\" この関数を利用するアプリケーションとしては、 +.\" sin(x) の計算などがあるかもしれない。 +.\" sin(x) では remquo(x, pi/2, &quo) などを計算する。 .\" .\"O .\" glibc, UnixWare: return 3 bits .\"O .\" MacOS 10: return 7 bits -.\" glibc, UnixWare: 3 ¥Ó¥Ã¥È¤òÊÖ¤¹¡£ -.\" MacOS 10: 7 ¥Ó¥Ã¥È¤òÊÖ¤¹¡£ +.\" glibc, UnixWare: 3 ビットを返す。 +.\" MacOS 10: 7 ビットを返す。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the same value as .\"O the analogous functions described in .\"O .BR remainder (3). -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .BR remainder (3) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ëƱÍͤδؿô¤ÈƱ¤¸ÃͤòÊÖ¤¹¡£ +に書かれている同様の関数と同じ値を返す。 .\"O If .\"O .I x @@ -119,9 +119,9 @@ or .\"O .I y .\"O is a NaN, a NaN is returned. .I x -¤« +か .I y -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x @@ -132,10 +132,10 @@ or .\"O a domain error occurs, and .\"O a NaN is returned. .I x -¤¬Ìµ¸ÂÂç¤Ç +が無限大で .I y -¤¬ NaN ¤Ç¤Ê¤¤¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN でない場合、 +領域エラー (domain error) が発生し、NaN が返される。 .\"O If .\"O .I y @@ -146,53 +146,53 @@ or .\"O a domain error occurs, and .\"O a NaN is returned. .I y -¤¬¥¼¥í¤Ç +がゼロで .I x -¤¬ NaN ¤Ç¤Ê¤¤¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN でない場合、 +領域エラー (domain error) が発生し、NaN が返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Domain error: \fIx\fP is an infinity or \fIy\fP is 0, \ .\"O and the other argument is not a NaN -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬Ìµ¸ÂÂ礫 \fIy\fP ¤¬ 0 ¤Ç¡¢ \ -¾¤Î°ú¤­¿ô¤¬ NaN ¤Ç¤Ê¤¤ +領域エラー (domain error): \fIx\fP が無限大か \fIy\fP が 0 で、 \ +他の引き数が NaN でない .\" .I errno .\" is set to .\" .BR EDOM . .\"O An invalid floating-point exception .\"O .RB ( FE_INVALID ) .\"O is raised. -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP .\"O These functions do not set .\"O .IR errno . -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6802 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fmod (3), .BR logb (3), .BR remainder (3) diff --git a/draft/man3/resolver.3 b/draft/man3/resolver.3 index 18dbeb15..501629a8 100644 --- a/draft/man3/resolver.3 +++ b/draft/man3/resolver.3 @@ -33,31 +33,31 @@ .\" Updated & Modified Thu Feb 17 03:58:45 JST 2005 .\" by Yuichi SATO .\" -.\"WORD: resolver ¥ì¥¾¥ë¥Ð (¥ê¥¾¥ë¥Ð) -.\"WORD: override ¥ª¡¼¥Ð¡¼¥é¥¤¥É -.\"WORD: call ¸Æ¤Ó½Ð¤·¡¢¸Æ¤Ó½Ð¤¹ -.\"WORD: fully qualified domain name ´°Á´½¤¾þ¥É¥á¥¤¥ó̾(FQDN) -.\"WORD: type ·¿ -.\"WORD: class ¥¯¥é¥¹ -.\"WORD: query Ì䤤¹ç¤ï¤»¡¢Ì䤤¹ç¤ï¤»¤ë -.\"WORD: buffer ¥Ð¥Ã¥Õ¥¡¡¼ -.\"WORD: lower-level routines ²¼°Ì¥ë¡¼¥Á¥ó -.\"WORD: limit of the array ÇÛÎó¤ÎÈÏ°Ï -.\"WORD: state information ¾õÂ֤ξðÊó -.\"WORD: bitwise ``or'' ¥Ó¥Ã¥Èñ°Ì¤ÎÏÀÍýÏ -.\"WORD: True ¿¿ÃÍ -.\"WORD: authoritative ¸¢°ÒÉÕ¤±¤µ¤ì¤¿ -.\"WORD: recursion desired bit ºÆµ¢Í×µá¥Ó¥Ã¥È -.\"WORD: single component names °ìÉôʬ¤«¤é¤Ê¤ë̾Á° +.\"WORD: resolver レゾルバ (リゾルバ) +.\"WORD: override オーバーライド +.\"WORD: call 呼び出し、呼び出す +.\"WORD: fully qualified domain name 完全修飾ドメイン名(FQDN) +.\"WORD: type 型 +.\"WORD: class クラス +.\"WORD: query 問い合わせ、問い合わせる +.\"WORD: buffer バッファー +.\"WORD: lower-level routines 下位ルーチン +.\"WORD: limit of the array 配列の範囲 +.\"WORD: state information 状態の情報 +.\"WORD: bitwise ``or'' ビット単位の論理和 +.\"WORD: True 真値 +.\"WORD: authoritative 権威付けされた +.\"WORD: recursion desired bit 再帰要求ビット +.\"WORD: single component names 一部分からなる名前 .\" .TH RESOLVER 3 2010-06-17 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, .\"O dn_comp, dn_expand \- resolver routines -res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, dn_comp, dn_expand \- ¥ì¥¾¥ë¥Ð¡¦¥ë¡¼¥Á¥ó +res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, dn_comp, dn_expand \- レゾルバ・ルーチン .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -106,13 +106,13 @@ res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, dn_comp .fi .sp .\"O Link with \fI\-lresolv\fP. -\fI\-lresolv\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lresolv\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions make queries to and interpret the responses from Internet .\"O domain name servers. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Î¥É¥á¥¤¥ó¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤ËÌ䤤¹ç¤ï¤»¡¢ -¤½¤Î±þÅú¤ò²ò¼á¤¹¤ë¡£ +これらの関数はインターネットのドメインネームサーバーに問い合わせ、 +その応答を解釈する。 .PP .\"O The .\"O .BR res_init () @@ -121,22 +121,22 @@ res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, dn_comp .\"O server address(es). .\"O If no server is given, the local host is tried. .BR res_init () -´Ø¿ô¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥É¥á¥¤¥ó̾¡¢¸¡º÷½ç¡¢¥Í¡¼¥à¥µ¡¼¥Ð¡¼ -¥¢¥É¥ì¥¹¤òÆÀ¤ë¤¿¤á¤ËÀßÄê¥Õ¥¡¥¤¥ë (resolv.conf(5) »²¾È) ¤òÆɤࡣ -¤â¤·¥µ¡¼¥Ð¡¼¤¬¼¨¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¥í¡¼¥«¥ë¥Û¥¹¥È¤ò»î¤¹¡£ +関数は、デフォルトのドメイン名、検索順、ネームサーバー +アドレスを得るために設定ファイル (resolv.conf(5) 参照) を読む。 +もしサーバーが示されていなければローカルホストを試す。 .\"O If no domain is given, that associated with the local host is used. .\"O It can be overridden with the environment variable .\"O .BR LOCALDOMAIN . .\"O .BR res_init () .\"O is normally executed by the first call to one of the .\"O other functions. -¥É¥á¥¤¥ó¤¬¼¨¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¥í¡¼¥«¥ë¥Û¥¹¥È¤ËÉÕ¤±¤é¤ì¤¿¥É¥á¥¤¥ó¤òÍѤ¤¤ë¡£ -´Ä¶­ÊÑ¿ô +ドメインが示されていなければローカルホストに付けられたドメインを用いる。 +環境変数 .B LOCALDOMAIN -¤Ç¥ª¡¼¥Ð¡¼¥é¥¤¥É¤Ç¤­¤ë¡£ +でオーバーライドできる。 .BR res_init () -¤Ï¡¢¸å½Ò¤¹¤ë´Ø¿ô¤Î¤É¤ì¤«¤¬ºÇ½é¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿»þ¡¢¤½¤Î´Ø¿ô -¤«¤é¼Â¹Ô¤µ¤ì¤ë¡£ +は、後述する関数のどれかが最初に呼び出された時、その関数 +から実行される。 .PP .\"O The .\"O .BR res_query () @@ -146,10 +146,10 @@ res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, dn_comp .\"O The reply is left in the buffer \fIanswer\fP of length .\"O \fIanslen\fP supplied by the caller. .BR res_query () -´Ø¿ô¤Ï¡¢»ØÄꤵ¤ì¤¿ \fItype\fP ¤È \fIclass\fP ¤Î -´°Á´½¤¾þ¥É¥á¥¤¥ó̾ (FQDN) \fIname\fP ¤ò¡¢¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤ØÌ䤤¹ç¤ï¤»¤ë¡£ -±þÅú¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿Â¦¤Ë¤è¤Ã¤ÆÍÑ°Õ¤µ¤ì¤ëŤµ \fIanslen\fP ¤Î \fIanswer\fP -¥Ð¥Ã¥Õ¥¡¡¼¤Ë»Ä¤µ¤ì¤ë¡£ +関数は、指定された \fItype\fP と \fIclass\fP の +完全修飾ドメイン名 (FQDN) \fIname\fP を、ネームサーバーへ問い合わせる。 +応答は、呼び出した側によって用意される長さ \fIanslen\fP の \fIanswer\fP +バッファーに残される。 .PP .\"O The .\"O .BR res_search () @@ -164,29 +164,29 @@ res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, dn_comp .\"O (see description of .\"O \fI_res\fP options below). .BR res_search () -´Ø¿ô¤Ï¡¢Ì䤤¹ç¤ï¤»¤ò¹Ô¤¤ +関数は、問い合わせを行い .BR res_query () -ƱÍͤ½¤Î±þÅú¤ò -ÂԤĤ¬¡¢¤µ¤é¤Ë¥Ç¥Õ¥©¥ë¥È¤ò¼ÂÁõ¤·¤Æ¤ª¤ê +同様その応答を +待つが、さらにデフォルトを実装しており .B RES_DEFNAMES -¤È +と .B RES_DNSRCH -¤Ë¤è¤Ã¤Æµ¬Äꤵ¤ì¤ë¸¡º÷¥ë¡¼¥ë¤òŬÍѤ¹¤ë¡£ -(²¼µ­ \fI_res\fP ¥ª¥×¥·¥ç¥ó¤ÎÀâÌÀ¤ò»²¾È) +によって規定される検索ルールを適用する。 +(下記 \fI_res\fP オプションの説明を参照) .PP .\"O The \fBres_querydomain\fP() function makes a query using .\"O .BR res_query () .\"O on the concatenation of \fIname\fP and \fIdomain\fP. .BR res_querydomain () -´Ø¿ô¤Ï \fIname\fP ¤È \fIdomain\fP ¤Î·ë¹ç¤Ë +関数は \fIname\fP と \fIdomain\fP の結合に .BR res_query () -¤òÍѤ¤¤ÆÌ䤤¹ç¤ï¤»¤ò¹Ô¤¦¡£ +を用いて問い合わせを行う。 .PP .\"O The following functions are lower-level routines used by .\"O .BR res_query (). -¼¡¤Î´Ø¿ô¤Ï¡¢ +次の関数は、 .BR res_query () -¤Ç»È¤ï¤ì¤ë²¼°Ì¥ë¡¼¥Á¥ó¤Ç¤¢¤ë¡£ +で使われる下位ルーチンである。 .PP .\"O The .\"O .BR res_mkquery () @@ -198,12 +198,12 @@ res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, dn_comp .\"O but can be any of the types defined in .\"O \fI\fP. \fInewrr\fP is currently unused. .BR res_mkquery () -´Ø¿ô¤Ï¡¢¥É¥á¥¤¥ó̾ \fIdname\fP ¤Î°Ù¤Ë¡¢Ä¹¤µ \fIbuflen\fP -¤Î \fIbuf\fP ¤ËÌ䤤¹ç¤ï¤»¤ë¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤¹¤ë¡£ -Ì䤤¹ç¤ï¤»¤Î·¿ \fIop\fP ¤ÏÄ̾ï +関数は、ドメイン名 \fIdname\fP の為に、長さ \fIbuflen\fP +の \fIbuf\fP に問い合わせるメッセージを作成する。 +問い合わせの型 \fIop\fP は通常 .B QUERY -¤À¤¬¡¢ \fI\fP ¤ÇÄêµÁ¤µ¤ì¤¿·¿¤Î¤É¤ì¤Ç¤âÎɤ¤¡£ -\fInewrr\fP ¤Ï¸½ºß»ÈÍѤµ¤ì¤Æ¤¤¤Ê¤¤¡£ +だが、 \fI\fP で定義された型のどれでも良い。 +\fInewrr\fP は現在使用されていない。 .PP .\"O The .\"O .BR res_send () @@ -215,11 +215,11 @@ res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, dn_comp .\"O if it .\"O has not already been called. .BR res_send () -´Ø¿ô¤Ï¡¢Ä¹¤µ \fImsglen\fP ¤Î \fImsg\fP ¤Ë·è¤á¤é¤ì¤¿½ñ¼° -¤ÇÌ䤤¹ç¤ï¤»¡¢\fIanswer\fP ¤ËŤµ \fIanslen\fP ¤Î²óÅú¤òÊÖ¤¹¡£ -¤Þ¤À¸Æ¤Ó½Ð¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð +関数は、長さ \fImsglen\fP の \fImsg\fP に決められた書式 +で問い合わせ、\fIanswer\fP に長さ \fIanslen\fP の回答を返す。 +まだ呼び出されていなければ .BR res_init () -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .PP .\"O The .\"O .BR dn_comp () @@ -234,14 +234,14 @@ res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, dn_comp .\"O If \fIlastdnptr\fP is NULL, the list .\"O of labels is not updated. .BR dn_comp () -´Ø¿ô¤Ï¥É¥á¥¤¥ó̾ \fIexp_dn\fP ¤ò°µ½Ì¤·¤Æ¡¢Ä¹¤µ \fIlength\fP -¤Î¥Ð¥Ã¥Õ¥¡¡¼ \fIcomp_dn\fP ¤ËÊݸ¤¹¤ë¡£ -°µ½Ì¤Ë¤Ï¥Ý¥¤¥ó¥¿¡¼ÇÛÎó \fIdnptrs\fP ¤òÍѤ¤¤ë¡£ -¤³¤ì¤é¤Î¥Ý¥¤¥ó¥¿¡¼¤Ï¡¢¸½ºß¤Î¥á¥Ã¥»¡¼¥¸¤ÎÃæ¤Ë¤¢¤ë°ÊÁ°¤Ë°µ½Ì¤µ¤ì¤¿Ì¾Á°¤ò»Ø¤¹¡£ -ºÇ½é¤Î¥Ý¥¤¥ó¥¿¡¼¤Ï¥á¥Ã¥»¡¼¥¸¤ÎËÁƬ¤ò»Ø¤·¡¢¤½¤Î¥ê¥¹¥È¤Ï NULL ¤Ç½ª¤ï¤ë¡£ -ÇÛÎó¤ÎÈÏ°Ï¤Ï \fIlastdnptr\fP ¤Ç·è¤á¤é¤ì¤ë¡£ -\fIdnptr\fP ¤¬ NULL ¤Ê¤é¤Ð¥É¥á¥¤¥ó̾¤Ï°µ½Ì¤µ¤ì¤Ê¤¤¡£ -\fIlastdnptr\fP ¤¬ NULL ¤Ê¤é¤Ð¡¢¤½¤Î¥é¥Ù¥ë¤Î¥ê¥¹¥È¤Ï¥¢¥Ã¥×¥Ç¡¼¥È¤µ¤ì¤Ê¤¤¡£ +関数はドメイン名 \fIexp_dn\fP を圧縮して、長さ \fIlength\fP +のバッファー \fIcomp_dn\fP に保存する。 +圧縮にはポインター配列 \fIdnptrs\fP を用いる。 +これらのポインターは、現在のメッセージの中にある以前に圧縮された名前を指す。 +最初のポインターはメッセージの冒頭を指し、そのリストは NULL で終わる。 +配列の範囲は \fIlastdnptr\fP で決められる。 +\fIdnptr\fP が NULL ならばドメイン名は圧縮されない。 +\fIlastdnptr\fP が NULL ならば、そのラベルのリストはアップデートされない。 .PP .\"O The .\"O .BR dn_expand () @@ -252,10 +252,10 @@ res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, dn_comp .\"O in a query or reply message, and \fImsg\fP points to the beginning of .\"O the message. .BR dn_expand () -´Ø¿ô¤Ï¡¢°µ½Ì¤µ¤ì¤¿¥É¥á¥¤¥ó̾ \fIcomp_dn\fP ¤«¤é¥µ¥¤¥º -¤¬ \fIlength\fP ¤Î \fIexp_dn\fP ¥Ð¥Ã¥Õ¥¡¡¼¤ËÀµ¼°¤Ê¥É¥á¥¤¥ó̾¤òŸ³«¤¹¤ë¡£ -¤½¤Î°µ½Ì¤µ¤ì¤¿Ì¾Á°¤Ï¡¢Ì䤤¹ç¤ï¤»¡¢¤Þ¤¿¤Ï±þÅú¥á¥Ã¥»¡¼¥¸¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Æ¡¢ -\fImsg\fP ¤¬¥á¥Ã¥»¡¼¥¸¤ÎËÁƬ¤ò»Ø¤¹¡£ +関数は、圧縮されたドメイン名 \fIcomp_dn\fP からサイズ +が \fIlength\fP の \fIexp_dn\fP バッファーに正式なドメイン名を展開する。 +その圧縮された名前は、問い合わせ、または応答メッセージに含まれていて、 +\fImsg\fP がメッセージの冒頭を指す。 .PP .\"O The resolver routines use global configuration and state information .\"O contained in the structure \fI_res\fP, which is defined in @@ -264,21 +264,21 @@ res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, dn_comp .\"O user is \fI_res.options\fP. .\"O This field can contain the bitwise "OR" .\"O of the following options: -¥ì¥¾¥ë¥Ð¡¦¥ë¡¼¥Á¥ó¤Ï¡¢\fI\fP ¤ËÄêµÁ¤µ¤ì¤¿ \fI_res\fP ¹½Â¤ÂÎ¤Ë -´Þ¤Þ¤ì¤Æ¤¤¤ëÁ´ÂÎŪ¤ÊÀßÄê¤È¾õÂ֤ξðÊó¤ò»ÈÍѤ¹¤ë¡£ -Ä̾ï¥æ¡¼¥¶¡¼¤ËÁàºî¤Ç¤­¤ë¹àÌÜ¤Ï \fI_res.options\fP ¤À¤±¤Ç¤¢¤ë¡£ -¤³¤Î¹àÌܤϰʲ¼¤Î¥ª¥×¥·¥ç¥ó¤Î¥Ó¥Ã¥Èñ°Ì¤ÎÏÀÍýϤˤǤ­¤ë¡£ +レゾルバ・ルーチンは、\fI\fP に定義された \fI_res\fP 構造体に +含まれている全体的な設定と状態の情報を使用する。 +通常ユーザーに操作できる項目は \fI_res.options\fP だけである。 +この項目は以下のオプションのビット単位の論理和にできる。 .TP .B RES_INIT .\"O True if .\"O .BR res_init () .\"O has been called. .BR res_init () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤Æ¤¤¤ì¤Ð¿¿¡£ +が呼び出されていれば真。 .TP .B RES_DEBUG .\"O Print debugging messages. -¥Ç¥Ð¥Ã¥°¡¦¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ¹¤ë¡£ +デバッグ・メッセージを出力する。 .TP .B RES_AAONLY .\"O Accept authoritative answers only. @@ -286,26 +286,26 @@ res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, dn_comp .\"O continues until .\"O it fins an authoritative answer or returns an error. [Not currently .\"O implemented]. -¸¢°ÒÉÕ¤±¤µ¤ì¤¿ (authoritative) ²óÅú¤Î¤ß¼õ¤±Æþ¤ì¤ë¡£ +権威付けされた (authoritative) 回答のみ受け入れる。 .BR res_send () -¤Ï¡¢ºÇ½ªÅª¤Ë¸¢°ÒÉÕ¤±¤µ¤ì¤¿²óÅú¤òÆÀ¤é¤ì¤ë¤«¡¢¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë -¤Þ¤Ç³¹Ô¤¹¤ë¡£ -[¸½ºß¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤] +は、最終的に権威付けされた回答を得られるか、エラーが返される +まで続行する。 +[現在実装されていない] .TP .B RES_USEVC .\"O Use TCP connections for queries rather than UDP datagrams. -Ì䤤¹ç¤ï¤»¤Ë UDP ¥Ç¡¼¥¿¥°¥é¥à¤Ç¤Ï¤Ê¤¯ TCP Àܳ¤òÍѤ¤¤ë¡£ +問い合わせに UDP データグラムではなく TCP 接続を用いる。 .TP .B RES_PRIMARY .\"O Query primary domain name server only. -¥×¥é¥¤¥Þ¥ê¡¦¥É¥á¥¤¥ó¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤Î¤ßÌ䤤¹ç¤ï¤»¤ë¡£ +プライマリ・ドメインネームサーバーのみ問い合わせる。 .TP .B RES_IGNTC .\"O Ignore truncation errors. .\"O Don't retry with TCP. [Not currently .\"O implemented]. -ÀÚ¤êµÍ¤á¥¨¥é¡¼ (truncation error) ¤ò̵»ë¤¹¤ë¡£TCP ¤Ç¥ê¥È¥é¥¤¤·¤Ê¤¤¡£ -[¸½ºß¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤] +切り詰めエラー (truncation error) を無視する。TCP でリトライしない。 +[現在実装されていない] .TP .B RES_RECURSE .\"O Set the recursion desired bit in queries. @@ -314,14 +314,14 @@ res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, dn_comp .\"O .BR res_send (). .\"O [Enabled by default]. .\"Osato: -.\"Osato: recursion desired ¤Ï¡ÖºÆµ¢Í×µá¡×¡ÖºÆµ¢Í×˾¡×¡ÖºÆµ¢Í×ÀÁ¡×¤Ê¤É¤È -.\"Osato: Ìõ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤·¤¿¡£ +.\"Osato: recursion desired は「再帰要求」「再帰要望」「再帰要請」などと +.\"Osato: 訳されているものがありました。 .\"Osato: -ºÆµ¢Í×µá (recursion desired) ¥Ó¥Ã¥È¤òÌ䤤¹ç¤ï¤»¤ËÀßÄꤹ¤ë¡£ -ºÆµ¢¤Ï +再帰要求 (recursion desired) ビットを問い合わせに設定する。 +再帰は .BR res_send () -¤Ç¤Ï¤Ê¤¯¥É¥á¥¤¥ó¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤Ë¤è¤Ã¤Æ¹Ô¤ï¤ì¤ë¡£ -[¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú] +ではなくドメインネームサーバーによって行われる。 +[デフォルトで有効] .TP .B RES_DEFNAMES .\"O If set, @@ -330,21 +330,21 @@ res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, dn_comp .\"O single component names, i.e., those that do not contain a dot. .\"O [Enabled by default]. .\"Osato: -.\"Osato: single component ¤Ï¡Ö1 ¤Ä¤ÎÍ×ÁǤ«¤é¤Ê¤ë¡×¤ÎÊý¤¬¤è¤¤¤Ç¤·¤ç¤¦¤«? +.\"Osato: single component は「1 つの要素からなる」の方がよいでしょうか? .\"Osato: -ÀßÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢ +設定されていれば、 .BR res_search () -¤Ï¥Ç¥Õ¥©¥ë¥È¤Î¥É¥á¥¤¥ó̾¤ò°ìÉôʬ -¤Î¤ß¤«¤é¤Ê¤ë̾Á°¡¢¤¹¤Ê¤ï¤Á¥É¥Ã¥È¤ò´Þ¤Þ¤Ê¤¤Ì¾Á°¤ËÉÕ¤±²Ã¤¨¤ë¡£ -[¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú] +はデフォルトのドメイン名を一部分 +のみからなる名前、すなわちドットを含まない名前に付け加える。 +[デフォルトで有効] .TP .B RES_STAYOPEN .\"O Used with .\"O .B RES_USEVC .\"O to keep the TCP connection open between queries. -Ì䤤¹ç¤ï¤»Ãæ¤Ë TCP Àܳ¤òÊݤĤ¿¤á +問い合わせ中に TCP 接続を保つため .B RES_USEVC -¤È¶¦¤ËÍѤ¤¤é¤ì¤ë¡£ +と共に用いられる。 .TP .B RES_DNSRCH .\"O If set, @@ -354,21 +354,21 @@ res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, dn_comp .\"O This option is used by .\"O .BR gethostbyname (3). .\"O [Enabled by default]. -ÀßÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢ +設定されていれば、 .BR res_search () -¤Ï¸½ºß¤Î¥É¥á¥¤¥ó¤ª¤è¤Ó¿Æ¥É¥á¥¤¥ó¤Î -¥Û¥¹¥È̾¤òõ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +は現在のドメインおよび親ドメインの +ホスト名を探す。このオプションは .BR gethostbyname (3) -¤ÇÍѤ¤¤é¤ì¤ë¡£ -[¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú] +で用いられる。 +[デフォルトで有効] .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR res_init () .\"O function returns 0 on success, or \-1 if an error .\"O occurs. .BR res_init () -´Ø¿ô¤ÏÀ®¸ù¤¹¤ì¤Ð 0 ¤ò¡¢¥¨¥é¡¼¤¬È¯À¸¤¹¤ì¤Ð \-1 ¤òÊÖ¤¹¡£ +関数は成功すれば 0 を、エラーが発生すれば \-1 を返す。 .PP .\"O The \fBres_query\fP(), \fBres_search\fP(), .\"O .BR res_querydomain (), @@ -382,8 +382,8 @@ res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, dn_comp .BR res_querydomain (), .BR res_mkquery (), .BR res_send () -´Ø¿ô¤Ï±þÅú¤ÎŤµ¤òÊÖ¤¹¡£ -¤Þ¤¿¡¢¥¨¥é¡¼¤¬È¯À¸¤¹¤ì¤Ð \-1 ¤òÊÖ¤¹¡£ +関数は応答の長さを返す。 +また、エラーが発生すれば \-1 を返す。 .PP .\"O The .\"O .BR dn_comp () @@ -392,23 +392,23 @@ res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, dn_comp .\"O functions return the length .\"O of the compressed name, or \-1 if an error occurs. .BR dn_comp () -¤È +と .BR dn_expand () -´Ø¿ô¤Ï°µ½Ì¤µ¤ì¤¿¥É¥á¥¤¥ó̾¤ÎŤµ¤òÊÖ¤¹¡£ -¤Þ¤¿¡¢¥¨¥é¡¼¤¬È¯À¸¤¹¤ì¤Ð \-1 ¤òÊÖ¤¹¡£ +関数は圧縮されたドメイン名の長さを返す。 +また、エラーが発生すれば \-1 を返す。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .nf .\"O /etc/resolv.conf resolver configuration file -/etc/resolv.conf ¥ì¥¾¥ë¥ÐÀßÄê¥Õ¥¡¥¤¥ë +/etc/resolv.conf レゾルバ設定ファイル .\"O /etc/host.conf resolver configuration file -/etc/host.conf ¥ì¥¾¥ë¥ÐÀßÄê¥Õ¥¡¥¤¥ë +/etc/host.conf レゾルバ設定ファイル .fi .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.3BSD. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR gethostbyname (3), .BR resolv.conf (5), .BR resolver (5), diff --git a/draft/man3/rewinddir.3 b/draft/man3/rewinddir.3 index aa65accf..d5632114 100644 --- a/draft/man3/rewinddir.3 +++ b/draft/man3/rewinddir.3 @@ -34,11 +34,11 @@ .\" .TH REWINDDIR 3 1995-06-11 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O rewinddir \- reset directory stream -rewinddir \- ¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤Î½é´ü²½ +rewinddir \- ディレクトリストリームの初期化 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -47,26 +47,26 @@ rewinddir \- .BI "void rewinddir(DIR *" dirp ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR rewinddir () .\"O function resets the position of the directory .\"O stream \fIdirp\fP to the beginning of the directory. .BR rewinddir () -´Ø¿ô¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à \fIdirp\fP ¤Î°ÌÃÖ¤ò -¥Ç¥£¥ì¥¯¥È¥ê¤ÎÀèƬ¤Ë½é´ü²½¤¹¤ë¡£ +関数は、ディレクトリストリーム \fIdirp\fP の位置を +ディレクトリの先頭に初期化する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR rewinddir () .\"O function returns no value. .BR rewinddir () -´Ø¿ô¤Ï¡¢ÃͤòÊÖ¤µ¤Ê¤¤¡£ +関数は、値を返さない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR closedir (3), .BR opendir (3), .BR readdir (3), diff --git a/draft/man3/rexec.3 b/draft/man3/rexec.3 index 17050e4e..fd2792ed 100644 --- a/draft/man3/rexec.3 +++ b/draft/man3/rexec.3 @@ -41,26 +41,26 @@ .\" .TH REXEC 3 2010-09-10 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O rexec \- return stream to a remote command -rexec \- ¥ê¥â¡¼¥È¥³¥Þ¥ó¥É¤Ø¤Î¥¹¥È¥ê¡¼¥à¤òÊÖ¤¹ +rexec \- リモートコマンドへのストリームを返す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _BSD_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _BSD_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _BSD_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "int rexec(char **" ahost ", int " inport ", char *" user ", " .BI " char *" passwd ", char *" cmd ", int *" fd2p ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This interface is obsoleted by .\"O .BR rcmd (3). -¤³¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï +このインタフェースは .BR rcmd (3) -¤Ë¤è¤Ã¤ÆÃÖ¤­´¹¤¨¤é¤ì¤¿¡£ +によって置き換えられた。 .\"O The .\"O .BR rexec () @@ -81,20 +81,20 @@ rexec \- .\"O home directory are searched for appropriate information. .\"O If all this fails, the user is prompted for the information. .BR rexec () -´Ø¿ô¤Ï +関数は .BR gethostbyname (3) -¤ò»È¤Ã¤Æ¥Û¥¹¥È +を使ってホスト .I *ahost -¤òõ¤¹¡£¥Û¥¹¥È¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï +を探す。ホストが存在しない場合は \-1 を返し、それ以外の場合には .I *ahost -¤Ë¤½¤Î¥Û¥¹¥È¤Îɸ½àŪ¤Ê̾Á°¤òÀßÄꤹ¤ë¡£ -¥æ¡¼¥¶Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤ÎξÊý¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢¤³¤ì¤é¤Ï -ÀܳÀè¤Î¥Û¥¹¥È¤Ø¤Îǧ¾Ú¤ËÍøÍѤµ¤ì¤ë¡£¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ -ŬÀڤʾðÊó¤òÆþ¼ê¤¹¤ë¤¿¤á¤Ë¡¢´Ä¶­ÊÑ¿ô¤È¡¢¤½¤Î¥æ¡¼¥¶¤Î -¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤Î +にそのホストの標準的な名前を設定する。 +ユーザ名とパスワードの両方が指定された場合には、これらは +接続先のホストへの認証に利用される。そうでない場合には、 +適切な情報を入手するために、環境変数と、そのユーザの +ホームディレクトリの .I .netrc -¥Õ¥¡¥¤¥ë¤¬¸¡º÷¤µ¤ì¤ë¡£¾ðÊ󤬸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿»þ¤Ë¤Ï¡¢ -¥æ¡¼¥¶¤ËÂФ·¤Æ¾ðÊó¤òÆþÎϤ¹¤ë¥×¥í¥ó¥×¥È¤¬É½¼¨¤µ¤ì¤ë¡£ +ファイルが検索される。情報が見つからなかった時には、 +ユーザに対して情報を入力するプロンプトが表示される。 .PP .\"O The port .\"O .I inport @@ -106,16 +106,16 @@ rexec \- .\"O will return a pointer to a structure, which contains the necessary port. .\"O The protocol for connection is described in detail in .\"O .BR rexecd (8). -¥Ý¡¼¥È +ポート .I inport -¤Ë¤Ï¡¢Àܳ¤Ë»ÈÍѤ¹¤ë DARPA Internet ¤Î well-known ¥Ý¡¼¥È¤ò»ØÄꤹ¤ë¡£ +には、接続に使用する DARPA Internet の well-known ポートを指定する。 .I "getservbyname(""exec"", ""tcp"")" -¤ò¸Æ¤Ó½Ð¤¹¤È¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤¬ÊÖ¤µ¤ì +を呼び出すと構造体へのポインタが返され .RB ( getservent (3) -»²¾È)¡¢¤³¤Î¹½Â¤ÂΤˤÏɬÍפʥݡ¼¥È¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ -Àܳ¤Ë»ÈÍѤµ¤ì¤ë¥×¥í¥È¥³¥ë¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤Ï +参照)、この構造体には必要なポートが入っている。 +接続に使用されるプロトコルについての詳細は .BR rexecd (8) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë (ÌõÃí: ¸½ºß¤Î¤È¤³¤í¸ºß¤·¤Ê¤¤)¡£ +に書かれている (訳注: 現在のところ存在しない)。 .PP .\"O If the connection succeeds, .\"O a socket in the Internet domain of type @@ -131,15 +131,15 @@ rexec \- .\"O process will be setup, and a descriptor for it will be placed .\"O in .\"O .IR *fd2p . -Àܳ¤ËÀ®¸ù¤¹¤ë¤È¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥É¥á¥¤¥ó¤Î +接続に成功すると、インターネットドメインの .B SOCK_STREAM -·¿¤Î¥½¥±¥Ã¥È¤¬ÊÖ¤µ¤ì¡¢¤½¤Î¥½¥±¥Ã¥È¤Ï¥ê¥â¡¼¥È¥³¥Þ¥ó¥É¤Î -ɸ½àÆþÎϤª¤è¤Óɸ½à½ÐÎϤȤʤ롣 +型のソケットが返され、そのソケットはリモートコマンドの +標準入力および標準出力となる。 .I fd2p -¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢À©¸æ¥×¥í¥»¥¹¤Ø¤ÎÊä½õ¥Á¥ã¥ó¥Í¥ë¤¬¥»¥Ã¥È¥¢¥Ã¥×¤µ¤ì¡¢ -Êä½õ¥Á¥ã¥ó¥Í¥ë¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ +が 0 以外の場合、制御プロセスへの補助チャンネルがセットアップされ、 +補助チャンネルのディスクリプタが .I *fd2p -¤Ë½ñ¤«¤ì¤ë¡£ +に書かれる。 .\"O The control process will return diagnostic .\"O output from the command (unit 2) on this channel, and will also .\"O accept bytes on this channel as being UNIX signal numbers, to be @@ -148,12 +148,12 @@ rexec \- .\"O information returned does not include remote authorization failure, .\"O as the secondary connection is set up after authorization has been .\"O verified. -À©¸æ¥×¥í¥»¥¹¤Ï¥³¥Þ¥ó¥É¤«¤é¤Î¿ÇÃÇ¥á¥Ã¥»¡¼¥¸½ÐÎÏ (¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ 2) -¤ò¤³¤Î¥Á¥ã¥ó¥Í¥ë¤ÇÊÖ¤¹¡£¤Þ¤¿¡¢¤³¤Î¥Á¥ã¥ó¥Í¥ë·Ðͳ¤Ç -UNIX ¤Î¥·¥°¥Ê¥ëÈÖ¹æ¤ò¼¨¤¹¥Ð¥¤¥È¤ò¼õ¿®¤¹¤ë¡£¼õ¿®¤·¤¿¥·¥°¥Ê¥ë¤Ï -¥³¥Þ¥ó¥É¤¬Â°¤¹¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ËžÁ÷¤µ¤ì¤ë¡£ -¿ÇÃǾðÊó¤Ë¤Ï¥ê¥â¡¼¥È¤Îǧ¾Ú¼ºÇԤϴޤޤì¤Ê¤¤¡£¤Ê¤¼¤Ê¤é¡¢Ç§¾Ú¤Î³Îǧ¤¬¹Ô¤ï¤ì¤¿ -¸å¤ÇÊä½õ¥Á¥ã¥ó¥Í¥ë¤ÎÀܳ¤Ï¥»¥Ã¥È¥¢¥Ã¥×¤µ¤ì¤ë¤«¤é¤Ç¤¢¤ë¡£ +制御プロセスはコマンドからの診断メッセージ出力 (ファイルディスクリプタ 2) +をこのチャンネルで返す。また、このチャンネル経由で +UNIX のシグナル番号を示すバイトを受信する。受信したシグナルは +コマンドが属すプロセスグループに転送される。 +診断情報にはリモートの認証失敗は含まれない。なぜなら、認証の確認が行われた +後で補助チャンネルの接続はセットアップされるからである。 .\"O If .\"O .I fd2p .\"O is 0, then the @@ -165,39 +165,39 @@ UNIX .\"O provision is made for sending arbitrary signals to the remote process, .\"O although you may be able to get its attention by using out-of-band data. .I fd2p -¤¬ 0 ¤Î¾ì¹ç¡¢É¸½à¥¨¥é¡¼ (¥ê¥â¡¼¥È¥³¥Þ¥ó¥É¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ 2) ¤Ï -ɸ½à½ÐÎϤÈƱÍͤ˰·¤ï¤ì¡¢¥ê¥â¡¼¥È¥×¥í¥»¥¹¤ËǤ°Õ¤Î¥·¥°¥Ê¥ë¤òÁ÷¤ë¤¿¤á¤Î -¼êÃʤÏÄ󶡤µ¤ì¤Ê¤¤¡£Ã¢¤·¡¢¥ê¥â¡¼¥È¥×¥í¥»¥¹¤ËÂФ·¤Æ¥È¥ê¥¬¤ò¤«¤±¤ë¤¿¤á¤Ë¡¢ -ÂÓ°è³°¥Ç¡¼¥¿ (out-of-band data) ¤ò»È¤¦¤³¤È¤Ï¤Ç¤­¤ë¡£ +が 0 の場合、標準エラー (リモートコマンドのファイルディスクリプタ 2) は +標準出力と同様に扱われ、リモートプロセスに任意のシグナルを送るための +手段は提供されない。但し、リモートプロセスに対してトリガをかけるために、 +帯域外データ (out-of-band data) を使うことはできる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O Not in POSIX.1-2001. .\"O Present on the BSDs, Solaris, and many other systems. -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -BSD ·Ï¡¢Solaris ¤ä¾¤Î¿¤¯¤Î¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¡£ +POSIX.1-2001 にはない。 +BSD 系、Solaris や他の多くのシステムに存在する。 .\"O The .\"O .BR rexec () .\"O function appeared in .\"O 4.2BSD. .BR rexec () -´Ø¿ô¤Ï 4.2BSD ¤Ç»Ï¤á¤ÆÅо줷¤¿¡£ +関数は 4.2BSD で始めて登場した。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O The .\"O .BR rexec () .\"O function sends the unencrypted password across the network. .BR rexec () -´Ø¿ô¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¤Ë°Å¹æ²½¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ñ¥¹¥ï¡¼¥É¤òÁ÷¿®¤¹¤ë¡£ +関数はネットワークに暗号化されていないパスワードを送信する。 .PP .\"O The underlying service is considered a big security hole and therefore .\"O not enabled on many sites, see .\"O .BR rexecd (8) .\"O for explanations. -´ðÁÃŪ¤Ê¥µ¡¼¥Ó¥¹¤Ë¤ª¤¤¤Æ¤ÏÂ礭¤Ê¥»¥­¥å¥ê¥Æ¥£¥Û¡¼¥ë¤È¹Í¤¨¤é¤ì¤ë¤¿¤á¡¢ -¿¤¯¤Î¥µ¥¤¥È¤Ç̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¾ÜºÙ¤Ï +基礎的なサービスにおいては大きなセキュリティホールと考えられるため、 +多くのサイトで無効になっている。詳細は .BR rexecd (8) -¤ò»²¾È¡£ +を参照。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR rcmd (3), .BR rexecd (8) diff --git a/draft/man3/rint.3 b/draft/man3/rint.3 index 38f14887..2d2b5030 100644 --- a/draft/man3/rint.3 +++ b/draft/man3/rint.3 @@ -32,16 +32,16 @@ .\" by Yuichi SATO .\" Updated 2008-09-16, Akihiro MOTOKI .\" -.\"WORD: mantissa ²¾¿ô +.\"WORD: mantissa 仮数 .\" .TH RINT 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O nearbyint, nearbyintf, nearbyintl, rint, rintf, rintl \- round .\"O to nearest integer -nearbyint, nearbyintf, nearbyintl, rint, rintf, rintl \- ºÇ¤â¶á¤¤À°¿ô¤Ë´Ý¤á¤ë +nearbyint, nearbyintf, nearbyintl, rint, rintf, rintl \- 最も近い整数に丸める .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -59,14 +59,14 @@ nearbyint, nearbyintf, nearbyintl, rint, rintf, rintl \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -101,7 +101,7 @@ or .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR nearbyint () .\"O functions round their argument to an integer value in floating-point @@ -111,11 +111,11 @@ or .\"O .I inexact .\"O exception. .BR nearbyint () -´Ø¿ô·²¤Ï¡¢¸½ºß¤Î´Ý¤áÊý¸þ +関数群は、現在の丸め方向 .RB ( fesetround (3) -»²¾È) ¤Ç°ú¤­¿ô¤òÉâÆ°¾®¿ôÅÀ·Á¼°¤ÎÀ°¿ô¤Ë´Ý¤á¤ë¡£ +参照) で引き数を浮動小数点形式の整数に丸める。 .I inexact -Îã³°¤ò½Ð¤µ¤Ê¤¤¡£ +例外を出さない。 .LP .\"O The .\"O .BR rint () @@ -127,35 +127,35 @@ or .\"O .BR fetestexcept (3)) .\"O when the result differs in value from the argument. .BR rint () -´Ø¿ô·²¤âƱ¤¸¤è¤¦¤ÊÆ°ºî¤ò¤¹¤ë¤¬¡¢ -·ë²Ì¤¬°ú¤­¿ô¤È°Û¤Ê¤ë¾ì¹ç¤Ë +関数群も同じような動作をするが、 +結果が引き数と異なる場合に .I inexact -Îã³° +例外 .RB ( FE_INEXACT ) -¤ò½Ð¤¹ (¤³¤ÎÎã³°¤Ï +を出す (この例外は .BR fetestexcept (3) -·Ðͳ¤Ç³Îǧ²Äǽ)¡£ +経由で確認可能)。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O These functions return the rounded integer value. -¤³¤ì¤é¤Î´Ø¿ô¤Ï´Ý¤á¤¿À°¿ôÃͤòÊÖ¤¹¡£ +これらの関数は丸めた整数値を返す。 .\"O If \fIx\fP is integral, +0, \-0, NaN, or infinite, .\"O \fIx\fP itself is returned. -\fIx\fP ¤¬À°¿ô¡¢+0¡¢\-0¡¢NaN¡¢Ìµ¸ÂÂç¤Î¤¤¤º¤ì¤«¤Î¾ì¹ç¡¢ -\fIx\fP ¤½¤Î¤â¤Î¤òÊÖ¤¹¡£ +\fIx\fP が整数、+0、\-0、NaN、無限大のいずれかの場合、 +\fIx\fP そのものを返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O No errors occur. -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ +エラーは発生しない。 .\"O POSIX.1-2001 documents a range error for overflows, but see NOTES. -POSIX.1-2001 ¤Ë¤Ï¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ç¤ÎÈÏ°Ï¥¨¥é¡¼ (range error) ¤Î -µ­ºÜ¤¬¤¢¤ë¡£¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¤Î¤³¤È¡£ +POSIX.1-2001 にはオーバーフローでの範囲エラー (range error) の +記載がある。「注意」の節を参照のこと。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O SUSv2 and POSIX.1-2001 contain text about overflow (which might set .\"O .I errno .\"O to @@ -163,38 +163,38 @@ C99, POSIX.1-2001. .\"O or raise an .\"O .B FE_OVERFLOW .\"O exception). -SUSv2 ¤È POSIX.1-2001 ¤Ë¤Ï¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ë´Ø¤¹¤ëµ­½Ò¤¬¤¢¤ê¡¢ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Î¾ì¹ç¤Ë¤Ï¡¢ +SUSv2 と POSIX.1-2001 にはオーバーフローに関する記述があり、 +オーバーフローの場合には、 .I errno -¤ò +を .B ERANGE -¤ËÀßÄꤹ¤ë¤«¡¢ +に設定するか、 .B FE_OVERFLOW -Îã³°¤òȯÀ¸¤¹¤ë¤³¤È¤È¤µ¤ì¤Æ¤¤¤ë¡£ +例外を発生することとされている。 .\"O In practice, the result cannot overflow on any current machine, .\"O so this error-handling stuff is just nonsense. -¼ÂºÝ¤Î¤È¤³¤í¡¢¤É¤Î¸½¹Ô¤Î¥Þ¥·¥ó¤Ç¤â·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤òµ¯¤³¤¹¤³¤È¤Ï¤Ê¤¤¤Î¤Ç¡¢ -¤³¤Î¥¨¥é¡¼½èÍý¤Ï°ÕÌ£¤¬¤Ê¤¤¡£ +実際のところ、どの現行のマシンでも結果がオーバーフローを起こすことはないので、 +このエラー処理は意味がない。 .\"O (More precisely, overflow can happen only when the maximum value .\"O of the exponent is smaller than the number of mantissa bits. .\"O For the IEEE-754 standard 32-bit and 64-bit floating-point numbers .\"O the maximum value of the exponent is 128 (respectively, 1024), .\"O and the number of mantissa bits is 24 (respectively, 53).) -(¤è¤êÀµ³Î¤Ë¸À¤¦¤È¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ï»Ø¿ôÉô¤ÎºÇÂçÃͤ¬ -²¾¿ôÉô¤òɽ¤¹¥Ó¥Ã¥È¤Î¿ô¤è¤ê¾®¤µ¤¤¾ì¹ç¤Ë¤·¤«µ¯¤³¤é¤Ê¤¤¡£ -IEEE-754 µ¬³Ê¤Î 32 ¥Ó¥Ã¥È¤È 64 ¥Ó¥Ã¥È¤ÎÉâÆ°¾®¿ô¤Ç¤Ï¡¢ -»Ø¿ôÉô¤ÎºÇÂçÃͤϤ½¤ì¤¾¤ì 128 ¤È 1024 ¤Ç¤¢¤ê¡¢ -²¾¿ôÉô¤Î¥Ó¥Ã¥È¿ô¤Ï¤½¤ì¤¾¤ì 24 ¤È 53 ¤Ç¤¢¤ë¡£) +(より正確に言うと、オーバーフローは指数部の最大値が +仮数部を表すビットの数より小さい場合にしか起こらない。 +IEEE-754 規格の 32 ビットと 64 ビットの浮動小数では、 +指数部の最大値はそれぞれ 128 と 1024 であり、 +仮数部のビット数はそれぞれ 24 と 53 である。) .\"O If you want to store the rounded value in an integer type, .\"O you probably want to use one of the functions described in .\"O .BR lrint (3) .\"O instead. -´Ý¤á¤¿ÃͤòÀ°¿ô·¿¤Ë³ÊǼ¤·¤¿¾ì¹ç¤Ë¤Ï¡¢¤ª¤½¤é¤¯¤³¤Î´Ø¿ô¤Ç¤Ï¤Ê¤¯ +丸めた値を整数型に格納した場合には、おそらくこの関数ではなく .BR lrint (3) -¤ËºÜ¤Ã¤Æ¤¤¤ë´Ø¿ô¤Î¤É¤ì¤«¤ò»È¤¤¤¿¤¤¤Î¤À¤í¤¦¡£ +に載っている関数のどれかを使いたいのだろう。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ceil (3), .BR floor (3), .BR lrint (3), diff --git a/draft/man3/round.3 b/draft/man3/round.3 index 74ae3b6d..94cfeaa2 100644 --- a/draft/man3/round.3 +++ b/draft/man3/round.3 @@ -30,15 +30,15 @@ .\" by Yuichi SATO .\" Updated 2008-09-16, Akihiro MOTOKI .\" -.\"WORD: mantissa ²¾¿ô +.\"WORD: mantissa 仮数 .\" .TH ROUND 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O round, roundf, roundl \- round to nearest integer, away from zero -round, roundf, roundl \- ºÇ¤â¶á¤¤À°¿ôÃͤ˴ݤá¤ë (2 ¤Ä¤ÎÀ°¿ô¤ÎÃæ´ÖÃͤξì¹ç¤Ï 0 ¤«¤é±ó¤¤Êý¤Ë´Ý¤á¤ë) +round, roundf, roundl \- 最も近い整数値に丸める (2 つの整数の中間値の場合は 0 から遠い方に丸める) .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -50,14 +50,14 @@ round, roundf, roundl \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -73,57 +73,57 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions round \fIx\fP to the nearest integer, but .\"O round halfway cases away from zero (regardless of the current rounding .\"O direction, see .\"O .BR fenv (3)), .\"O instead of to the nearest even integer like .\"O .BR rint (3). -¤³¤ì¤é¤Î´Ø¿ô¤Ï \fIx\fP ¤òºÇ¤â¶á¤¤À°¿ôÃͤ˴ݤá¤ë¡£ -2 ¤Ä¤ÎÀ°¿ô¤ÎÃæ´ÖÃͤξì¹ç¤Ï¡¢ +これらの関数は \fIx\fP を最も近い整数値に丸める。 +2 つの整数の中間値の場合は、 .BR rint (3) -¤Î¤è¤¦¤ËºÇ¤â¶á¤¤¶ö¿ô¤Ë´Ý¤á¤¿¤ê¤»¤º¤Ë¡¢ -(¸½ºß¤Î´Ý¤áÊý¸þ¤Ë´Ø·¸¤Ê¤¯) 0 ¤«¤é±ó¤¤Êý¤Ë´Ý¤á¤ë -(´Ý¤áÊý¸þ¤Ë¤Ä¤¤¤Æ¤Ï +のように最も近い偶数に丸めたりせずに、 +(現在の丸め方向に関係なく) 0 から遠い方に丸める +(丸め方向については .BR fenv (3) -¤ò»²¾È)¡£ +を参照)。 .\"O For example, .\"O .IR round(0.5) .\"O is 1.0, and .\"O .IR round(\-0.5) .\"O is \-1.0. -Î㤨¤Ð¡¢ +例えば、 .I round(0.5) -¤Ï 1.0 ¤Ç¡¢ +は 1.0 で、 .I round(\-0.5) -¤Ï \-1.0 ¤Ç¤¢¤ë¡£ +は \-1.0 である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O These functions return the rounded integer value. -¤³¤ì¤é¤Î´Ø¿ô¤Ï´Ý¤á¤¿À°¿ôÃͤòÊÖ¤¹¡£ +これらの関数は丸めた整数値を返す。 .\"O If \fIx\fP is integral, +0, \-0, NaN, or infinite, .\"O \fIx\fP itself is returned. -\fIx\fP ¤¬À°¿ô¡¢+0¡¢\-0¡¢NaN¡¢Ìµ¸Â¤Î¤¤¤º¤ì¤«¤Î¾ì¹ç¡¢ -\fIx\fP ¤½¤Î¤â¤Î¤¬ÊÖ¤µ¤ì¤ë¡£ +\fIx\fP が整数、+0、\-0、NaN、無限のいずれかの場合、 +\fIx\fP そのものが返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O No errors occur. -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ +エラーは発生しない。 .\"O POSIX.1-2001 documents a range error for overflows, but see NOTES. -POSIX.1-2001 ¤Ë¤Ï¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ç¤ÎÈÏ°Ï¥¨¥é¡¼ (range error) ¤Î -µ­ºÜ¤¬¤¢¤ë¡£¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¤Î¤³¤È¡£ +POSIX.1-2001 にはオーバーフローでの範囲エラー (range error) の +記載がある。「注意」の節を参照のこと。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O POSIX.1-2001 contains text about overflow (which might set .\"O .I errno .\"O to @@ -131,39 +131,39 @@ C99, POSIX.1-2001. .\"O or raise an .\"O .B FE_OVERFLOW .\"O exception). -POSIX.1-2001 ¤Ë¤Ï¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ë´Ø¤¹¤ëµ­½Ò¤¬¤¢¤ê¡¢ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Î¾ì¹ç¤Ë¤Ï¡¢ +POSIX.1-2001 にはオーバーフローに関する記述があり、 +オーバーフローの場合には、 .I errno -¤ò +を .B ERANGE -¤ËÀßÄꤹ¤ë¤«¡¢ +に設定するか、 .B FE_OVERFLOW -Îã³°¤òȯÀ¸¤¹¤ë¤³¤È¤È¤µ¤ì¤Æ¤¤¤ë¡£ +例外を発生することとされている。 .\"O In practice, the result cannot overflow on any current machine, .\"O so this error-handling stuff is just nonsense. -¼ÂºÝ¤Î¤È¤³¤í¡¢¤É¤Î¸½¹Ô¤Î¥Þ¥·¥ó¤Ç¤Ï·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤òµ¯¤³¤¹¤³¤È¤Ï¤Ê¤¤¤Î¤Ç¡¢ -¤³¤Î¥¨¥é¡¼½èÍý¤Ï°ÕÌ£¤¬¤Ê¤¤¡£ +実際のところ、どの現行のマシンでは結果がオーバーフローを起こすことはないので、 +このエラー処理は意味がない。 .\" The POSIX.1-2001 APPLICATION USAGE SECTION discusses this point. .\"O (More precisely, overflow can happen only when the maximum value .\"O of the exponent is smaller than the number of mantissa bits. .\"O For the IEEE-754 standard 32-bit and 64-bit floating-point numbers .\"O the maximum value of the exponent is 128 (respectively, 1024), .\"O and the number of mantissa bits is 24 (respectively, 53).) -(¤è¤êÀµ³Î¤Ë¸À¤¦¤È¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ï»Ø¿ôÉô¤ÎºÇÂçÃͤ¬ -²¾¿ôÉô¤òɽ¤¹¥Ó¥Ã¥È¤Î¿ô¤è¤ê¾®¤µ¤¤¾ì¹ç¤Ë¤·¤«µ¯¤³¤é¤Ê¤¤¡£ -IEEE-754 µ¬³Ê¤Î 32 ¥Ó¥Ã¥È¤È 64 ¥Ó¥Ã¥È¤ÎÉâÆ°¾®¿ô¤Ç¤Ï¡¢ -»Ø¿ôÉô¤ÎºÇÂçÃͤϤ½¤ì¤¾¤ì 128 ¤È 1024 ¤Ç¤¢¤ê¡¢ -²¾¿ôÉô¤Î¥Ó¥Ã¥È¿ô¤Ï¤½¤ì¤¾¤ì 24 ¤È 53 ¤Ç¤¢¤ë¡£) +(より正確に言うと、オーバーフローは指数部の最大値が +仮数部を表すビットの数より小さい場合にしか起こらない。 +IEEE-754 規格の 32 ビットと 64 ビットの浮動小数では、 +指数部の最大値はそれぞれ 128 と 1024 であり、 +仮数部のビット数はそれぞれ 24 と 53 である。) .\"O If you want to store the rounded value in an integer type, .\"O you probably want to use one of the functions described in .\"O .BR lround (3) .\"O instead. -´Ý¤á¤¿ÃͤòÀ°¿ô·¿¤Ë³ÊǼ¤·¤¿¾ì¹ç¤Ë¤Ï¡¢¤ª¤½¤é¤¯¤³¤Î´Ø¿ô¤Ç¤Ï¤Ê¤¯ +丸めた値を整数型に格納した場合には、おそらくこの関数ではなく .BR lround (3) -¤ËºÜ¤Ã¤Æ¤¤¤ë´Ø¿ô¤Î¤É¤ì¤«¤ò»È¤¤¤¿¤¤¤Î¤À¤í¤¦¡£ +に載っている関数のどれかを使いたいのだろう。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ceil (3), .BR floor (3), .BR lround (3), diff --git a/draft/man3/rpc.3 b/draft/man3/rpc.3 index 53d66489..d9d177cb 100644 --- a/draft/man3/rpc.3 +++ b/draft/man3/rpc.3 @@ -13,42 +13,42 @@ .\" .TH RPC 3 2008-07-17 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O rpc \- library routines for remote procedure calls -rpc \- ±ó³Ö¼ê³¤­¸Æ¤Ó½Ð¤·(RPC)¤Î¤¿¤á¤Î¥é¥¤¥Ö¥é¥ê¡¦¥ë¡¼¥Æ¥£¥ó +rpc \- 遠隔手続き呼び出し(RPC)のためのライブラリ・ルーティン .\"O .SH SYNOPSIS AND DESCRIPTION -.SH ½ñ¼°¤ÈÀâÌÀ +.SH 書式と説明 .\"O These routines allow C programs to make procedure .\"O calls on other machines across the network. .\"O First, the client calls a procedure to send a data packet to the server. .\"O Upon receipt of the packet, the server calls a dispatch routine .\"O to perform the requested service, and then sends back a reply. .\"O Finally, the procedure call returns to the client. -¤³¤ì¤é¤Î¥ë¡¼¥Æ¥£¥ó¤Ï C ¥×¥í¥°¥é¥à¤Ç¥Í¥Ã¥È¥ï¡¼¥¯¤òÄ̤·¤Æ -¾¤Î¥Þ¥·¥ó¤Ë¥¢¥¯¥»¥¹¤¹¤ë¥×¥í¥·¥¸¥ã¤òºîÀ®¤¹¤ë¤³¤È¤ò²Äǽ¤Ë¤¹¤ë¡£ -ºÇ½é¤Ë¥¯¥é¥¤¥¢¥ó¥È¤Ï¥Ç¡¼¥¿¥Ñ¥±¥Ã¥È¤ò¥µ¡¼¥Ð¤ËÁ÷¤ë¤¿¤á¤Ë -¥×¥í¥·¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹¡£ -¥µ¡¼¥Ð¤Ï¥Ñ¥±¥Ã¥È¤ò¼õ¤±¼è¤ë¤È¡¢ÇÛʬ¥ë¡¼¥Á¥ó¤ò¸Æ¤Ó½Ð¤·¤Æ -Í׵ᤵ¤ì¤¿¥µ¡¼¥Ó¥¹¤Ë¼Â¹Ô¤·¡¢ÊÖÅú¤òÁ÷¤êÊÖ¤¹¡£ -ºÇ¸å¤Ë¥×¥í¥·¥¸¥ã¡¦¥³¡¼¥ë¤Ï¥¯¥é¥¤¥¢¥ó¥È¤Ø¤ÈÌá¤ë¡£ +これらのルーティンは C プログラムでネットワークを通して +他のマシンにアクセスするプロシジャを作成することを可能にする。 +最初にクライアントはデータパケットをサーバに送るために +プロシジャを呼び出す。 +サーバはパケットを受け取ると、配分ルーチンを呼び出して +要求されたサービスに実行し、返答を送り返す。 +最後にプロシジャ・コールはクライアントへと戻る。 .\" .LP .\"O .\" We don't have an rpc_secure.3 page at the moment -- MTK, 19 Sep 05 .\"O .\" Routines that are used for Secure RPC (DES authentication) are described in .\"O .\" .BR rpc_secure (3). .\"O .\" Secure RPC can be used only if DES encryption is available. -.\" º£¸½ºß¤Ï rpc_secure.3 ¤ÏÆþ¤Ã¤Æ¤¤¤Ê¤¤ -- MTK, 19 Sep 05 -.\" (DES ǧ¾Ú¤Ë¤è¤ë) Secure RPC ¤Ç»ÈÍѤµ¤ì¤ë¥ë¡¼¥Æ¥£¥ó¤Ë¤Ä¤¤¤Æ¤ÎÀâÌÀ¤Ï +.\" 今現在は rpc_secure.3 は入っていない -- MTK, 19 Sep 05 +.\" (DES 認証による) Secure RPC で使用されるルーティンについての説明は .\" .BR rpc_secure (3) -.\" ¤Ë¸ºß¤¹¤ë¡£ Secure RPC ¤Ï DES ǧ¾Ú¤¬ÍøÍѲÄǽ¤Ê¾ì¹ç¤Ë¤Î¤ß»ÈÍѤǤ­¤ë¡£ +.\" に存在する。 Secure RPC は DES 認証が利用可能な場合にのみ使用できる。 .LP .\"O To take use of these routines, include the header file .\"O .IR "" . -¤³¤ì¤é¤Î¥ë¡¼¥Æ¥£¥ó¤ò»ÈÍѤ¹¤ë¤Ë¤Ï¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë +これらのルーティンを使用するには、ヘッダファイル .I "" -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤³¤È¡£ +をインクルードすること。 .\"O The prototypes below make use of the following types: -²¼µ­¤Î¥×¥í¥È¥¿¥¤¥×¤Ç¤Ï¼¡¤Î·¿¤ò»ÈÍѤ·¤Æ¤¤¤ë¡£ +下記のプロトタイプでは次の型を使用している。 .in +4n .nf @@ -68,12 +68,12 @@ typedef bool_t (*\fIresultproc_t\fP) (caddr_t resp, .\"O and .\"O .IR XDR .\"O types. -·¿ +型 .IR AUTH , .IR CLIENT , .IR SVCXPRT , .IR XDR -¤ÎÀë¸À¤Ë¤Ä¤¤¤Æ¤Ï¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò»²¾È¡£ +の宣言についてはヘッダファイルを参照。 .LP .nf .BI "void auth_destroy(AUTH *" auth ); @@ -86,14 +86,14 @@ typedef bool_t (*\fIresultproc_t\fP) (caddr_t resp, .\"O .I auth .\"O is undefined after calling .\"O .BR auth_destroy (). -¤³¤Î¥Þ¥¯¥í¤Ï +このマクロは .I auth -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿Ç§¾Ú¾ðÊó¤òÇ˲õ¤¹¤ë¡£Ç˲õ¤ÏÄ̾ï¤Ï»äŪ¤Ê¥Ç¡¼¥¿¹½Â¤¤Î -ÇË´þ¤ò´Þ¤ó¤Ç¤¤¤ë¡£ +に関連付けられた認証情報を破壊する。破壊は通常は私的なデータ構造の +破棄を含んでいる。 .BR auth_destroy () -¤ò¸Æ¤Ó½Ð¤·¤¿¸å¤Ë +を呼び出した後に .I auth -¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +を使用することは未定義である。 .LP .nf .BI "AUTH *authnone_create(void);" @@ -103,9 +103,9 @@ typedef bool_t (*\fIresultproc_t\fP) (caddr_t resp, .\"O authentication handle that passes nonusable authentication .\"O information with each remote procedure call. .\"O This is the default authentication used by RPC. -³Æ¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¡¦¥³¡¼¥ë¤Ç»ÈÍѤǤ­¤Ê¤¤²¾¤Îǧ¾Ú¾ðÊó¤È¤·¤ÆÅϤµ¤ì¤ë -RPC ǧ¾Ú¥Ï¥ó¥É¥ë¤òºîÀ®¤·¤ÆÊÖ¤¹¡£ -¤³¤ì¤Ï RPC ¤Ç»ÈÍѤµ¤ì¤ë¥Ç¥Õ¥©¥ë¥È¤Îǧ¾Ú¤Ç¤¢¤ë¡£ +各リモート・プロシジャ・コールで使用できない仮の認証情報として渡される +RPC 認証ハンドルを作成して返す。 +これは RPC で使用されるデフォルトの認証である。 .LP .nf .BI "AUTH *authunix_create(char *" host ", int " uid ", int " gid , @@ -126,22 +126,22 @@ RPC ǧ .\"O .I aup_gids .\"O refer to a counted array of groups to which the user belongs. .\"O It is easy to impersonate a user. -ǧ¾Ú¾ðÊó¤ò´Þ¤ó¤À RPC ǧ¾Ú¥Ï¥ó¥É¥ë¤òºîÀ®¤·¤ÆÊÖ¤¹¡£ +認証情報を含んだ RPC 認証ハンドルを作成して返す。 .I host -¥Ñ¥é¥á¡¼¥¿¡¼¤Ï¾ðÊ󤬺îÀ®¤µ¤ì¤¿¥Þ¥·¥ó¤Î̾Á°¤Ç¤¢¤ë¡£ +パラメーターは情報が作成されたマシンの名前である。 .I uid -¤Ï¤½¤Î¥æ¡¼¥¶¤Î¥æ¡¼¥¶ +はそのユーザのユーザ .SM ID -¡¢ +、 .I gid -¤Ï¤½¤Î¥æ¡¼¥¶¤Î¸½ºß¤Î¥°¥ë¡¼¥× +はそのユーザの現在のグループ .SM ID -¤Ç¤¢¤ë¡£ +である。 .I len -¤È +と .I aup_gids -¤Ï¤½¤Î¥æ¡¼¥¶¤¬½ê°¤¹¤ë¥°¥ë¡¼¥×¤ÎÇÛÎó¤ò»²¾È¤·¤Æ¤¤¤ë¡£ -¾¤Î¥æ¡¼¥¶¤Ë¤Ê¤ê¤¹¤Þ¤¹¤³¤È¤Ï´Êñ¤Ç¤¢¤ë¡£ +はそのユーザが所属するグループの配列を参照している。 +他のユーザになりすますことは簡単である。 .LP .nf .BI "AUTH *authunix_create_default(void);" @@ -150,9 +150,9 @@ RPC ǧ .\"O Calls .\"O .BR authunix_create () .\"O with the appropriate parameters. -ŬÀڤʥѥé¥á¡¼¥¿¡¼¤Ç +適切なパラメーターで .BR authunix_create () -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .LP .nf .BI "int callrpc(char *" host ", unsigned long " prognum , @@ -183,38 +183,38 @@ RPC ǧ .\"O The routine .\"O .BR clnt_perrno () .\"O is handy for translating failure statuses into messages. -¥Þ¥·¥ó +マシン .I host -¾å¤Ç +上で .IR prognum , .IR versnum , .I procnum -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹¡£ -¥Ñ¥é¥á¡¼¥¿¡¼ +に関連付けられたリモート・プロシジャを呼び出す。 +パラメーター .I in -¤Ï¥×¥í¥·¥¸¥ã¤Î°ú¤­¿ô¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ê +はプロシジャの引き数のアドレスであり .I out -¤Ï·ë²Ì¤ò³ÊǼ¤¹¤ë¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +は結果を格納するアドレスである。 .I inproc -¤Ï¥×¥í¥·¥¸¥ã¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ò¥¨¥ó¥³¡¼¥É¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¡¢ +はプロシジャのパラメーターをエンコードするのに使用され、 .I outproc -¤Ï·ë²Ì¤ò¥Ç¥³¡¼¥É¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï +は結果をデコードするのに使用される。 +このルーティンは成功した場合にはゼロを返す。失敗した場合には .B "enum clnt_stat" -¤òÀ°¿ô¤Ë¥­¥ã¥¹¥È¤·¤¿ÃͤòÊÖ¤¹¡£ +を整数にキャストした値を返す。 .BR clnt_perrno () -¥ë¡¼¥Æ¥£¥ó¤¬¼ºÇԤξõÂÖ¤ò¥á¥Ã¥»¡¼¥¸¤ËÊÑ´¹¤¹¤ë¤Î¤Ë»ÈÍѤǤ­¤ë¡£ +ルーティンが失敗の状態をメッセージに変換するのに使用できる。 .IP .\"O Warning: calling remote procedures with this routine .\"O uses UDP/IP as a transport; see .\"O .BR clntudp_create () .\"O for restrictions. .\"O You do not have control of timeouts or authentication using this routine. -·Ù¹ð: ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ç¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹¤ÈÄÌ¿®¤Ë¤Ï -UDP/IP ¤¬»ÈÍѤµ¤ì¤ë¡£¤³¤ÎºÝ¤ÎÀ©¸Â¤Ë¤Ä¤¤¤Æ¤Ï +警告: このルーティンでリモート・プロシジャを呼び出すと通信には +UDP/IP が使用される。この際の制限については .BR clntudp_create () -¤ò»²¾È¤¹¤ë¤³¤È¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ò»ÈÍѤ·¤Æǧ¾Ú¤ä»þ´ÖÀÚ¤ì¤ÎÀ©¸æ¤ò -¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +を参照すること。このルーティンを使用して認証や時間切れの制御を +することはできない。 .LP .nf .BI "enum clnt_stat clnt_broadcast(unsigned long " prognum , @@ -232,11 +232,11 @@ UDP/IP .\"O .BR eachresult (), .\"O whose form is: .BR callrpc () -¤ÈƱÍͤǤ¢¤ë¤¬¡¢¥á¥Ã¥»¡¼¥¸¤¬¥í¡¼¥«¥ë¤Î¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¡¦¥Í¥Ã¥È¥ï¡¼¥¯ -Á´ÂÎ¤Ø¤È¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¤µ¤ì¤ëÅÀ¤¬°Û¤Ã¤Æ¤¤¤ë¡£²óÅú¤ò¼õ¤±¼è¤ëÅÙ¤Ë -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï°Ê²¼¤Î·Á¼°¤Î +と同様であるが、メッセージがローカルのブロードキャスト・ネットワーク +全体へとブロードキャストされる点が異っている。回答を受け取る度に +このルーティンは以下の形式の .BR eachresult () -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .IP .in +4n .nf @@ -258,26 +258,26 @@ UDP/IP .\"O returns zero, .\"O .BR clnt_broadcast () .\"O waits for more replies; otherwise it returns with appropriate status. -¤³¤³¤Ç +ここで .I out -¤Ï +は .BR clnt_broadcast () -¤ËÅϤµ¤ì¤ë +に渡される .I out -¤ÈƱ¤¸¤Ç¤¢¤ë¤¬¡¢¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¤«¤é¤Î½ÐÎϤ¬¥Ç¥³¡¼¥É¤µ¤ì¤Æ¤¤¤ë -ÅÀ¤Î¤ß¤¬°Û¤Ã¤Æ¤¤¤ë¡£ +と同じであるが、リモート・プロシジャからの出力がデコードされている +点のみが異っている。 .I addr -¤Ï·ë²Ì¤òÁ÷¤Ã¤ÆÍ褿¥Þ¥·¥ó¤Î¥¢¥É¥ì¥¹¤ò»Ø¤·¤Æ¤¤¤ë¡£ +は結果を送って来たマシンのアドレスを指している。 .BR eachresult () -¤¬¥¼¥í¤òÊÖ¤·¤¿¾ì¹ç¡¢ +がゼロを返した場合、 .BR clnt_broadcast () -¤Ï¤µ¤é¤Ê¤ë²óÅú¤òÂԤġ£¤½¤¦¤Ç¤Ê¤±¤ì¤ÐŬÀڤʾõÂ֤ǽªÎ»¤¹¤ë¡£ +はさらなる回答を待つ。そうでなければ適切な状態で終了する。 .IP .\"O Warning: broadcast sockets are limited in size to the .\"O maximum transfer unit of the data link. .\"O For ethernet, this value is 1500 bytes. -·Ù¹ð: ¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¡¦¥½¥±¥Ã¥È¤Ï¥Ç¡¼¥¿¥ê¥ó¥¯ÁؤκÇÂçžÁ÷ñ°Ì¤Ë -À©¸Â¤µ¤ì¤Æ¤¤¤ë¡£¥¤¡¼¥µ¥Í¥Ã¥È¤Î¾ì¹ç¡¢ºÇÂçÃÍ¤Ï 1500 ¥Ð¥¤¥È¤Ç¤¢¤ë¡£ +警告: ブロードキャスト・ソケットはデータリンク層の最大転送単位に +制限されている。イーサネットの場合、最大値は 1500 バイトである。 .LP .nf .BI "enum clnt_stat clnt_call(CLIENT *" clnt ", unsigned long " procnum , @@ -292,16 +292,16 @@ UDP/IP .\"O .IR clnt , .\"O which is obtained with an RPC client creation routine such as .\"O .BR clnt_create (). -¤³¤Î¥Þ¥¯¥í¤Ï¥¯¥é¥¤¥¢¥ó¥È¡¦¥Ï¥ó¥É¥ë +このマクロはクライアント・ハンドル .I clnt -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿ +に関連付けられた .I procnum -¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹¡£ -¥¯¥é¥¤¥¢¥ó¥È¡¦¥Ï¥ó¥É¥ë¤Ï +リモート・プロシジャを呼び出す。 +クライアント・ハンドルは .BR clnt_create () -¤Î¤è¤¦¤Ê +のような .SM RPC -¥¯¥é¥¤¥¢¥ó¥ÈºîÀ®¥ë¡¼¥Æ¥£¥ó¤Ë¤è¤Ã¤ÆÆÀ¤é¤ì¤ë¡£ +クライアント作成ルーティンによって得られる。 .\"O The parameter .\"O .I in .\"O is the address of the procedure's argument(s), and @@ -313,17 +313,17 @@ UDP/IP .\"O is used to decode the procedure's results; .\"O .I tout .\"O is the time allowed for results to come back. -¥Ñ¥¿¥á¡¼¥¿ +パタメータ .I in -¤Ï¥×¥í¥·¥¸¥ã¤Î°ú¤­¿ô¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +はプロシジャの引き数のアドレスである。 .I out -¤Ï¥×¥í¥·¥¸¥ã¤ÎÊÖ¤êÃͤò³ÊǼ¤¹¤ë¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +はプロシジャの返り値を格納するアドレスである。 .I inproc -¤Ï¥×¥í¥·¥¸¥ã¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ò¥¨¥ó¥³¡¼¥É¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ +はプロシジャのパラメーターをエンコードするのに使用される。 .I outproc -¤Ï¥×¥í¥·¥¸¥ã¤ÎÊÖ¤êÃͤò¥Ç¥³¡¼¥É¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ +はプロシジャの返り値をデコードするのに使用される。 .I tout -¤Ï·ë²Ì¤¬ÊÖ¤µ¤ì¤ë¤Î¤òÂԤĻþ´Ö¤Ç¤¢¤ë¡£ +は結果が返されるのを待つ時間である。 .LP .nf .BI "clnt_destroy(CLIENT *" clnt ); @@ -340,15 +340,15 @@ UDP/IP .\"O .BR clnt_destroy (). .\"O If the RPC library opened the associated socket, it will close it also. .\"O Otherwise, the socket remains open. -¤³¤Î¥Þ¥¯¥í¤Ï¥¯¥é¥¤¥¢¥ó¥È¤Î RPC ¥Ï¥ó¥É¥ë¤òÇ˲õ¤¹¤ë¡£Ç˲õ¤Ë¤ÏÄ̾ï¤Ï +このマクロはクライアントの RPC ハンドルを破壊する。破壊には通常は .I clnt -¼«¿È¤â´Þ¤á¤Æ»äŪ¤Ê¥Ç¡¼¥¿¹½Â¤ÂΤÎÇË´þ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +自身も含めて私的なデータ構造体の破棄が含まれている。 .BR clnt_destroy () -¤Î¸Æ¤Ó½Ð¤·¤Î¸å¤Ë +の呼び出しの後に .I clnt -¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ -RPC ¥é¥¤¥Ö¥é¥ê¤¬´ØÏ¢¤¹¤ë¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ -¤½¤ì¤âÊĤ¸¤é¤ì¤ë¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï¥½¥±¥Ã¥È¤Ï¥ª¡¼¥×¥ó¤µ¤ì¤¿¤Þ¤Þ¤Ç¤¢¤ë¡£ +を使用することは未定義である。 +RPC ライブラリが関連するソケットをオープンした場合には、 +それも閉じられる。それ以外の場合にはソケットはオープンされたままである。 .LP .nf .BI "CLIENT *clnt_create(char *" host ", unsigned long " prog , @@ -364,26 +364,26 @@ RPC .\"O and \(lqtcp\(rq. .\"O Default timeouts are set, but can be modified using .\"O .BR clnt_control (). -°ìÈÌŪ¤Ê¥¯¥é¥¤¥¢¥ó¥È¤ÎºîÀ®¥ë¡¼¥Æ¥£¥ó¤Ç¤¢¤ë¡£ +一般的なクライアントの作成ルーティンである。 .I host -¤Ï¥µ¡¼¥Ð¤Î¤¢¤ë¥ê¥â¡¼¥È¥Û¥¹¥È¤Î̾Á°¤ò»ØÄꤹ¤ë¡£ +はサーバのあるリモートホストの名前を指定する。 .I proto -¤É¤Î¤è¤¦¤ÊÄÌ¿®¥×¥í¥È¥³¥ë¤ò»ÈÍѤ¹¤ë¤«¤ò»ØÄꤹ¤ë¡£¸½ºß¤³¤³¤Ë -»ÈÍѤǤ­¤ëÃÍ¤Ï \(lqudp\(rq ¤È \(lqtcp\(rq ¤Ç¤¢¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Î»þ´ÖÀڤ줬ÀßÄꤵ¤ì¤ë¤¬¡¢ +どのような通信プロトコルを使用するかを指定する。現在ここに +使用できる値は \(lqudp\(rq と \(lqtcp\(rq である。 +デフォルトの時間切れが設定されるが、 .BR clnt_control () -¤ò»ÈÍѤ·¤ÆÊѹ¹²Äǽ¤Ç¤¢¤ë¡£ +を使用して変更可能である。 .IP .\"O Warning: Using UDP has its shortcomings. .\"O Since UDP-based RPC messages can only hold up to 8 Kbytes of encoded data, .\"O this transport cannot be used for procedures that take .\"O large arguments or return huge results. -·Ù¹ð: -UDP ¤ò»ÈÍѤ·¤¿¾ì¹ç¤Ë¤Ï·çÅÀ¤¬¤¢¤ë¡£ -UDP ¤Ë´ð¤Å¤¤¤¿ RPC ¥á¥Ã¥»¡¼¥¸¤Ï -ºÇÂç¤Ç¤â 8 KByte ¤Î¥¨¥ó¥³¡¼¥É¥Ç¡¼¥¿¤·¤«ÊÝ»ý¤¹¤ë -¤³¤È¤¬¤Ç¤­¤Ê¤¤¤¿¤á¡¢Â礭¤Ê°ú¤­¿ô¤äµðÂç¤Ê·ë²Ì¤ò¼è¤ë¥×¥í¥·¥¸¥ã¤Ë -¤Ï»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +警告: +UDP を使用した場合には欠点がある。 +UDP に基づいた RPC メッセージは +最大でも 8 KByte のエンコードデータしか保持する +ことができないため、大きな引き数や巨大な結果を取るプロシジャに +は使用することができない。 .LP .nf .BI "bool_t clnt_control(CLIENT *" cl ", int " req ", char *" info ); @@ -398,23 +398,23 @@ UDP .\"O For both UDP and TCP, the supported values of .\"O .I req .\"O and their argument types and what they do are: -¤³¤Î¥Þ¥¯¥í¤Ï³Æ¼ï¥¯¥é¥¤¥¢¥ó¥È¤Ë¤Ä¤¤¤Æ¾ðÊó¤òÊѹ¹¤·¤¿¤ê¡¢¼èÆÀ¤·¤¿¤ê -¤¹¤ë¤Î¤Ë»ÈÍѤ¹¤ë¡£ +このマクロは各種クライアントについて情報を変更したり、取得したり +するのに使用する。 .I req -¤ÏÁàºî¤Î¼ïÎà¤ò»ØÄꤹ¤ë¡£ +は操作の種類を指定する。 .I info -¤Ï¾ðÊó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ -UDP ¤È TCP ¤É¤Á¤é¤Î¾ì¹ç¤â»ÈÍѲÄǽ¤Ê +は情報へのポインターである。 +UDP と TCP どちらの場合も使用可能な .I req -¤ÎÃͤȡ¢¤½¤Î°ú¤­¿ô¤Î·¿¡¢¤ª¤è¤Ó¤½¤ÎÆâÍƤϰʲ¼¤ÎÄ̤ê¤Ç¤¢¤ë: +の値と、その引き数の型、およびその内容は以下の通りである: .IP .in +4n .nf .ta +2.0i +2.0i +2.0i .\"O \fBCLSET_TIMEOUT\fP \fIstruct timeval\fP // set total timeout .\"O \fBCLGET_TIMEOUT\fP \fIstruct timeval\fP // get total timeout -\fBCLSET_TIMEOUT\fP \fIstruct timeval\fP // »þ´ÖÀÚ¤ì¤òÀßÄꤹ¤ë -\fBCLGET_TIMEOUT\fP \fIstruct timeval\fP // »þ´ÖÀÚ¤ì¤ò¼èÆÀ¤¹¤ë +\fBCLSET_TIMEOUT\fP \fIstruct timeval\fP // 時間切れを設定する +\fBCLGET_TIMEOUT\fP \fIstruct timeval\fP // 時間切れを取得する .fi .in .IP @@ -423,36 +423,36 @@ UDP .\"O the timeout parameter passed to .\"O .BR clnt_call () .\"O will be ignored in all future calls. -Ãí°Õ: +注意: .BR clnt_control () -¤ò»ÈÍѤ·¤Æ»þ´ÖÀÚ¤ì¤òÀßÄꤷ¤¿¾ì¹ç¤Ë¤Ï¤½¤ì°Ê¸å¤Ï +を使用して時間切れを設定した場合にはそれ以後は .BR clnt_call () -¤ËÅϤµ¤ì¤ë»þ´ÖÀÚ¤ì¥Ñ¥é¥á¡¼¥¿¡¼¤ÏÁ´¤Æ̵»ë¤µ¤ì¤ë¡£ +に渡される時間切れパラメーターは全て無視される。 .IP .in +4n .nf .\"O \fBCLGET_SERVER_ADDR\fP \fIstruct sockaddr_in \fP // get server's address -\fBCLGET_SERVER_ADDR\fP \fIstruct sockaddr_in \fP // ¥µ¡¼¥Ð¥¢¥É¥ì¥¹¤ò¼èÆÀ¤¹¤ë +\fBCLGET_SERVER_ADDR\fP \fIstruct sockaddr_in \fP // サーバアドレスを取得する .fi .in .IP .\"O The following operations are valid for UDP only: -°Ê²¼¤ÎÁàºî¤Ï UDP ¤Î¾ì¹ç¤Ë¤Î¤ßÍ­¸ú¤Ç¤¢¤ë: +以下の操作は UDP の場合にのみ有効である: .IP .in +4n .nf .\"O \fBCLSET_RETRY_TIMEOUT\fP \fIstruct timeval\fP // set the retry timeout .\"O \fBCLGET_RETRY_TIMEOUT\fP \fIstruct timeval\fP // get the retry timeout -\fBCLSET_RETRY_TIMEOUT\fP \fIstruct timeval\fP // ºÆÁ÷´Ö³Ö¤òÀßÄꤹ¤ë -\fBCLGET_RETRY_TIMEOUT\fP \fIstruct timeval\fP // ºÆÁ÷´Ö³Ö¤ò¼èÆÀ¤¹¤ë +\fBCLSET_RETRY_TIMEOUT\fP \fIstruct timeval\fP // 再送間隔を設定する +\fBCLGET_RETRY_TIMEOUT\fP \fIstruct timeval\fP // 再送間隔を取得する .fi .in .IP .\"O The retry timeout is the time that "UDP RPC" .\"O waits for the server to reply before .\"O retransmitting the request. -ºÆÁ÷´Ö³Ö¤Ï¼¡¤ËÍ×µá¤òºÆÁ÷¤¹¤ëÁ°¤Ë -"UDP RPC" ¤¬¥µ¡¼¥Ð¤Î²óÅú¤òÂԤĻþ´Ö¤Ç¤¢¤ë¡£ +再送間隔は次に要求を再送する前に +"UDP RPC" がサーバの回答を待つ時間である。 .LP .nf .BI "clnt_freeres(CLIENT * " clnt ", xdrproc_t " outproc ", char *" out ); @@ -467,15 +467,15 @@ UDP .\"O is the XDR routine describing the results. .\"O This routine returns one if the results were successfully freed, .\"O and zero otherwise. -¤³¤Î¥Þ¥¯¥í¤Ï RPC ¸Æ¤Ó½Ð¤·¤Î·ë²Ì¤Î¥Ç¥³¡¼¥É¤ÎºÝ¤Ë -RPC/XDR ¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ³äÅö¤Æ¤é¤ì¤¿¥Ç¡¼¥¿¤ò²òÊü¤¹¤ë¡£ -¥Ñ¥é¥á¡¼¥¿¡¼ +このマクロは RPC 呼び出しの結果のデコードの際に +RPC/XDR システムによって割当てられたデータを解放する。 +パラメーター .I out -¤Ï·ë²Ì¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +は結果のアドレスである。 .I outproc -¤Ï·ë²Ì¤òµ­½Ò¤·¤Æ¤¤¤ë XDR ¥ë¡¼¥Æ¥£¥ó¤Ç¤¢¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï·ë²Ì¤Î²òÊü¤ËÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£ +は結果を記述している XDR ルーティンである。 +このルーティンは結果の解放に成功した場合には 1 を返す。 +失敗した場合にはゼロを返す。 .LP .nf .BI "void clnt_geterr(CLIENT *" clnt ", struct rpc_err *" errp ); @@ -484,9 +484,9 @@ RPC/XDR .\"O A macro that copies the error structure out of the client .\"O handle to the structure at address .\"O .IR errp . -¤³¤Î¥Þ¥¯¥í¤Ï¥¯¥é¥¤¥¢¥ó¥È¡¦¥Ï¥ó¥É¥ë¤Î¥¨¥é¡¼¹½Â¤ÂΤò +このマクロはクライアント・ハンドルのエラー構造体を .I errp -¥¢¥É¥ì¥¹¤Ç»ØÄꤵ¤ì¤¿¹½Â¤ÂΤإ³¥Ô¡¼¤¹¤ë¡£ +アドレスで指定された構造体へコピーする。 .LP .nf .BI "void clnt_pcreateerror(char *" s ); @@ -504,16 +504,16 @@ RPC/XDR .\"O or .\"O .BR clntudp_create () .\"O call fails. -ɸ½à¥¨¥é¡¼½ÐÎϤˡ¢¤Ê¤¼¥¯¥é¥¤¥¢¥ó¥È RPC ¥Ï¥ó¥É¥ë¤ÎºîÀ®¤¬ -¤Ç¤­¤Ê¤«¤Ã¤¿¤«¤Ë¤Ä¤¤¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¡£ -¥á¥Ã¥»¡¼¥¸¤ÎÁ°¤Ëʸ»úÎó +標準エラー出力に、なぜクライアント RPC ハンドルの作成が +できなかったかについてのメッセージを表示する。 +メッセージの前に文字列 .I s -¤È¥³¥í¥ó(:)¤¬É½¼¨¤µ¤ì¤ë¡£ +とコロン(:)が表示される。 .BR clnt_create (), .BR clntraw_create (), .BR clnttcp_create (), .BR clntudp_create () -¤Î¸Æ¤Ó½Ð¤·¤¬¼ºÇÔ¤·¤¿»þ¤Ë»ÈÍѤ¹¤ë¤³¤È¡£ +の呼び出しが失敗した時に使用すること。 .LP .nf .BI "void clnt_perrno(enum clnt_stat " stat ); @@ -524,11 +524,11 @@ RPC/XDR .\"O .IR stat . .\"O Used after .\"O .BR callrpc (). -ɸ½à¥¨¥é¡¼½ÐÎÏ¤Ë +標準エラー出力に .I stat -¤Ë¤è¤Ã¤Æ»Ø¼¨¤µ¤ì¤ë¥¨¥é¡¼¾õÂÖ¤ËÂбþ¤¹¤ë¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¡£ +によって指示されるエラー状態に対応するメッセージを表示する。 .BR callrpc () -¤Î¸å¤Ë»ÈÍѤ¹¤ë¤³¤È¡£ +の後に使用すること。 .LP .nf .BI "clnt_perror(CLIENT *" clnt ", char *" s ); @@ -542,14 +542,14 @@ RPC/XDR .\"O and a colon. .\"O Used after .\"O .BR clnt_call (). -ɸ½à¥¨¥é¡¼½ÐÎϤˡ¢¤Ê¤¼ RPC ¸Æ¤Ó½Ð¤·¤¬¼ºÇÔ¤·¤¿¤«¤Ë¤Ä¤¤¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¡£ +標準エラー出力に、なぜ RPC 呼び出しが失敗したかについてのメッセージを表示する。 .I clnt -¤Ï¥³¡¼¥ë¤Ë»ÈÍѤ·¤¿¥Ï¥ó¥É¥ë¤Ç¤¢¤ë¡£ -¥á¥Ã¥»¡¼¥¸¤ÎÁ°¤Ëʸ»úÎó +はコールに使用したハンドルである。 +メッセージの前に文字列 .I s -¤È¥³¥í¥ó(:)¤¬É½¼¨¤µ¤ì¤ë¡£ +とコロン(:)が表示される。 .BR clnt_call () -¤¬¼ºÇÔ¤·¤¿¸å¤Ë»ÈÍѤ¹¤ë¤³¤È¡£ +が失敗した後に使用すること。 .LP .nf .BI "char *clnt_spcreateerror(char *" s ); @@ -559,10 +559,10 @@ RPC/XDR .\"O .BR clnt_pcreateerror (), .\"O except that it returns a string instead of printing to the standard error. .BR clnt_pcreateerror () -¤ÈƱÍͤǤ¢¤ë¤¬¡¢É¸½à¥¨¥é¡¼½ÐÎϤØɽ¼¨¤¹¤ë¤«¤ï¤ê¤Ëʸ»úÎó¤òÊÖ¤¹ÅÀ¤¬°Û¤Ã¤Æ¤¤¤ë¡£ +と同様であるが、標準エラー出力へ表示するかわりに文字列を返す点が異っている。 .IP .\"O Bugs: returns pointer to static data that is overwritten on each call. -¥Ð¥°: ÀÅŪ¤ÊÎΰè¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¤¿¤á¡¢¸Æ¤Ó½Ð¤·¤´¤È¤Ë¾å½ñ¤­¤µ¤ì¤ë¡£ +バグ: 静的な領域へのポインターを返すため、呼び出しごとに上書きされる。 .LP .nf .BI "char *clnt_sperrno(enum clnt_stat " stat ); @@ -574,10 +574,10 @@ RPC/XDR .\"O call failed, return a pointer to a string which contains the message. .\"O The string ends with a NEWLINE. .BR clnt_perrno () -¤ÈƱ¤¸°ú¤­¿ô¤ò¼è¤ë¤¬¡¢¤Ê¤¼ -RPC ¸Æ¤Ó½Ð¤·¤¬¼ºÇÔ¤·¤¿¤«¤Ë¤Ä¤¤¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤òɸ½à¥¨¥é¡¼½ÐÎϤËɽ¼¨¤¹¤ë -¤«¤ï¤ê¤Ë¡¢¥á¥Ã¥»¡¼¥¸¤ò³ÊǼ¤·¤Æ¤¤¤ëʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£ -ʸ»úÎó¤Ï NEWLINE(²þ¹Ô) ¤Ç½ª¤Ã¤Æ¤¤¤ë¡£ +と同じ引き数を取るが、なぜ +RPC 呼び出しが失敗したかについてのメッセージを標準エラー出力に表示する +かわりに、メッセージを格納している文字列へのポインターを返す。 +文字列は NEWLINE(改行) で終っている。 .IP .\"O .BR clnt_sperrno () .\"O is used instead of @@ -597,21 +597,21 @@ RPC .\"O returns pointer to static data, but the .\"O result will not get overwritten on each call. .BR clnt_sperrno () -¤Ï¥×¥í¥°¥é¥à¤¬É¸½à¥¨¥é¡¼½ÐÎϤò»ý¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç(¥×¥í¥°¥é¥à¤¬¥µ¡¼¥Ð¤È¤· -¤ÆÁö¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¤è¤¯¤¢¤ê¤¨¤ë)¤ä¡¢¥×¥í¥°¥é¥Þ¡¼¤¬¥á¥Ã¥»¡¼¥¸¤ò +はプログラムが標準エラー出力を持っていない場合(プログラムがサーバとし +て走っている場合にはよくありえる)や、プログラマーがメッセージを .BR printf (3) -¤Ç½ÐÎϤ¹¤ë¤³¤È¤ò˾¤Þ¤Ê¤¤¾ì¹ç¤ä¡¢¥á¥Ã¥»¡¼¥¸¤Î·Á¼°¤¬ +で出力することを望まない場合や、メッセージの形式が .BR clnt_perrno () -¤¬¥µ¥Ý¡¼¥È¤¹¤ë¤â¤Î¤È¤Ï°Û¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ê¤É¤Ë +がサポートするものとは異っている場合などに .BR clnt_perrno () -¤Î¤«¤ï¤ê¤Ë»ÈÍѤµ¤ì¤ë¡£ -Ãí°Õ: +のかわりに使用される。 +注意: .BR clnt_sperror () -¤ä +や .BR clnt_spcreaterror () -¤È¤Ï°ã¤Ã¤Æ +とは違って .BR clnt_sperrno () -¤ÏÀÅŪ¥Ç¡¼¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£¤·¤«¤·¸Æ¤Ó½Ð¤·¤´¤È¤Ë¾å½ñ¤­¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ +は静的データへのポインターを返す。しかし呼び出しごとに上書きされることはない。 .LP .nf .BI "char *clnt_sperror(CLIENT *" rpch ", char *" s ); @@ -623,12 +623,12 @@ RPC .\"O .BR clnt_sperrno ()) .\"O it returns a string instead of printing to standard error. .BR clnt_perror () -¤ÈƱÍͤǤ¢¤ë¤¬¡¢É¸½à¥¨¥é¡¼½ÐÎϤËɽ¼¨¤¹¤ëÂå¤ê¤Ë +と同様であるが、標準エラー出力に表示する代りに .RB ( clnt_sperrno () -¤Î¤è¤¦¤Ë) ʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹ÅÀ¤¬°Û¤Ã¤Æ¤¤¤ë¡£ +のように) 文字列へのポインターを返す点が異っている。 .IP .\"O Bugs: returns pointer to static data that is overwritten on each call. -¥Ð¥°: ¸Æ¤Ó½Ð¤·¤´¤È¤Ë¾å½ñ¤­¤µ¤ì¤ëÀÅŪ¥Ç¡¼¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£ +バグ: 呼び出しごとに上書きされる静的データへのポインターを返す。 .LP .nf .BI "CLIENT *clntraw_create(unsigned long " prognum \ @@ -646,18 +646,18 @@ RPC .\"O This allows simulation of RPC and acquisition of RPC .\"O overheads, such as round trip times, without any kernel interference. .\"O This routine returns NULL if it fails. -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à -.IR prognum ¡¢ -¥Ð¡¼¥¸¥ç¥ó +このルーティンはリモート・プログラム +.IR prognum 、 +バージョン .I versnum -¤Î¤¿¤á¤Îµ¼»÷ RPC ¥¯¥é¥¤¥¢¥ó¥È¤òºîÀ®¤¹¤ë¡£¥á¥Ã¥»¡¼¥¸¤ò¥µ¡¼¥Ó¥¹¤ËÅϤ¹¤¿¤á¤Ë»ÈÍѤ¹¤ë -ÄÌ¿®¤Ï¼ÂºÝ¤Ë¤Ï¤½¤Î¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤¢¤ë¥Ð¥Ã¥Õ¥¡¡¼¤Ç¤¢¤ë¡£ -¤½¤ì¤Ç¡¢Âбþ¤¹¤ë RPC ¥µ¡¼¥Ð¤¬Æ±¤¸¥¢¥É¥ì¥¹¶õ´Ö¤ÎÃæ¤Ë¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +のための擬似 RPC クライアントを作成する。メッセージをサービスに渡すために使用する +通信は実際にはそのプロセスのアドレス空間にあるバッファーである。 +それで、対応する RPC サーバが同じアドレス空間の中にいなければならない。 .BR svcraw_create () -¤ò»²¾È¤¹¤ë¤³¤È¡£ -¤³¤ì¤Ë¤è¤ê RPC ¤Î¥·¥ß¥å¥ì¡¼¥·¥ç¥ó¤ä¡¢¥«¡¼¥Í¥ë¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë±Æ¶Á¤µ¤ì¤º¤Ë -±þÅú»þ´Ö¤Ê¤É¤Î RPC ¥ª¡¼¥Ð¥Ø¥Ã¥É¤Î³ÍÆÀ¤¬¤Ç¤­¤ë¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï NULL ¤òÊÖ¤¹¡£ +を参照すること。 +これにより RPC のシミュレーションや、カーネル・インターフェースに影響されずに +応答時間などの RPC オーバヘッドの獲得ができる。 +失敗した場合にはこのルーティンは NULL を返す。 .LP .nf .BI "CLIENT *clnttcp_create(struct sockaddr_in *" addr , @@ -674,14 +674,14 @@ RPC .\"O The remote program is located at Internet .\"O address .\"O .IR *addr . -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à -.IR prognum ¡¢ -¥Ð¡¼¥¸¥ç¥ó +このルーティンはリモート・プログラム +.IR prognum 、 +バージョン .I versnum -¤Î¤¿¤á¤Î RPC ¥¯¥é¥¤¥¢¥ó¥È¤òºîÀ®¤¹¤ë¡£¥¯¥é¥¤¥¢¥ó¥È¤ÏÄÌ¿®¤Ë -TCP/IP ¤ò»ÈÍѤ¹¤ë¡£¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤Ï¥¤¥ó¥¿¡¼¥Í¥Ã¥È¡¦¥¢¥É¥ì¥¹¤Î +のための RPC クライアントを作成する。クライアントは通信に +TCP/IP を使用する。リモート・プログラムはインターネット・アドレスの .I *addr -¤Ë¤¢¤ë¡£ +にある。 .\"O If .\"The following inline font conversion is necessary for the hyphen indicator .\"O \fIaddr\->sin_port\fR @@ -695,16 +695,16 @@ TCP/IP .\"O .BR RPC_ANYSOCK , .\"O then this routine opens a new one and sets .\"O .IR sockp . -\fIaddr\->sin_port\fR ¤¬¥¼¥í¤Ê¤é¤Ð¡¢¼ÂºÝ¤Ë¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤¬ -listen ¤·¤Æ¤¤¤ë¥Ý¡¼¥È¤¬ÀßÄꤵ¤ì¤ë¡£(¤³¤Î¾ðÊó¤Î¤¿¤á¤Ë¥ê¥â¡¼¥È¤Î +\fIaddr\->sin_port\fR がゼロならば、実際にリモート・プログラムが +listen しているポートが設定される。(この情報のためにリモートの .B portmap -¥µ¡¼¥Ó¥¹¤¬ÍøÍѤµ¤ì¤ë¡£) ¥Ñ¥é¥á¡¼¥¿¡¼ +サービスが利用される。) パラメーター .I sockp -¤Ï¥½¥±¥Ã¥È¤Ç¤¢¤ë¡£¤â¤·¤³¤ì¤¬ +はソケットである。もしこれが .B RPC_ANYSOCK -¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤³¤Î¥ë¡¼¥Æ¥£¥ó¤¬¿·¤·¤¤¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤·¤Æ +に設定されている場合は、このルーティンが新しいソケットをオープンして .I sockp -¤ËÀßÄꤹ¤ë¡£ +に設定する。 .\"O Since TCP-based RPC uses buffered I/O, .\"O the user may specify the size of the send and receive buffers .\"O with the parameters @@ -713,14 +713,14 @@ listen .\"O .IR recvsz ; .\"O values of zero choose suitable defaults. .\"O This routine returns NULL if it fails. -TCP ¤Ë´ð¤Å¤¤¤¿ RPC ¤Ï¥Ð¥Ã¥Õ¥¡¤µ¤ì¤¿ I/O -¤ò»ÈÍѤ¹¤ë¤¿¤á¡¢¥æ¡¼¥¶¤Ï¥Ñ¥é¥á¡¼¥¿¡¼ +TCP に基づいた RPC はバッファされた I/O +を使用するため、ユーザはパラメーター .I sendsz -¤È +と .I recvsz -¤ò»ÈÍѤ·¤ÆÁ÷¿®¥Ð¥Ã¥Õ¥¡¤È¼õ¿®¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥¼¥í¤ò»ØÄꤷ¤¿¾ì¹ç¤Ë¤ÏŬÀڤʥǥե©¥ë¥È¤¬ÁªÂò¤µ¤ì¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¼ºÇÔ¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +を使用して送信バッファと受信バッファのサイズを指定することができる。 +ゼロを指定した場合には適切なデフォルトが選択される。 +このルーティンは失敗した場合は NULL を返す。 .LP .nf .BI "CLIENT *clntudp_create(struct sockaddr_in *" addr , @@ -735,14 +735,14 @@ TCP .\"O the client uses use UDP/IP as a transport. .\"O The remote program is located at Internet address .\"O .IR addr . -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à -.IR prognum ¡¢ -¥Ð¡¼¥¸¥ç¥ó +このルーティンはリモート・プログラム +.IR prognum 、 +バージョン .I versnum -¤Î¤¿¤á¤Î RPC ¥¯¥é¥¤¥¢¥ó¥È¤òºîÀ®¤¹¤ë¡£¥¯¥é¥¤¥¢¥ó¥È¤ÏÄÌ¿®¤Ë -UDP/IP ¤ò»ÈÍѤ¹¤ë¡£¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤Ï¥¤¥ó¥¿¡¼¥Í¥Ã¥È¡¦¥¢¥É¥ì¥¹¤Î +のための RPC クライアントを作成する。クライアントは通信に +UDP/IP を使用する。リモート・プログラムはインターネット・アドレスの .I *addr -¤Ë¤¢¤ë¡£ +にある。 .\"O If .\"O \fIaddr\->sin_port\fR .\"O is zero, then it is set to actual port that the remote @@ -755,34 +755,34 @@ UDP/IP .\"O .BR RPC_ANYSOCK , .\"O then this routine opens a new one and sets .\"O .IR sockp . -\fIaddr\->sin_port\fR ¤¬¥¼¥í¤Ê¤é¤Ð¡¢¼ÂºÝ¤Ë¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤¬ -listen ¤·¤Æ¤¤¤ë¥Ý¡¼¥È¤¬ÀßÄꤵ¤ì¤ë¡£(¤³¤Î¾ðÊó¤Î¤¿¤á¤Ë¥ê¥â¡¼¥È¤Î +\fIaddr\->sin_port\fR がゼロならば、実際にリモート・プログラムが +listen しているポートが設定される。(この情報のためにリモートの .B portmap -¥µ¡¼¥Ó¥¹¤¬ÍøÍѤµ¤ì¤ë¡£) ¥Ñ¥é¥á¡¼¥¿¡¼ +サービスが利用される。) パラメーター .I sockp -¤Ï¥½¥±¥Ã¥È¤Ç¤¢¤ë¡£¤â¤·¤³¤ì¤¬ +はソケットである。もしこれが .B RPC_ANYSOCK -¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤³¤Î¥ë¡¼¥Æ¥£¥ó¤¬¿·¤·¤¤¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤·¤Æ +に設定されている場合は、このルーティンが新しいソケットをオープンして .I sockp -¤ËÀßÄꤹ¤ë¡£ +に設定する。 .\"O The UDP transport resends the call message in intervals of .\"O .B wait .\"O time until a response is received or until the call times out. .\"O The total time for the call to time out is specified by .\"O .BR clnt_call (). -UDP ÄÌ¿®¤Ï²óÅú¤¬¤¢¤ë¤«¡¢»þ´ÖÀڤ줬µ¯¤³¤ë¤Þ¤Ç +UDP 通信は回答があるか、時間切れが起こるまで .B wait -´Ö³Ö¤Ç¸Æ¤Ó½Ð¤·¥á¥Ã¥»¡¼¥¸¤òºÆÁ÷¤¹¤ë¡£»þ´ÖÀڤ줬µ¯¤³¤ë¤Þ¤Ç¤Î¹ç·×»þ´Ö¤Ï +間隔で呼び出しメッセージを再送する。時間切れが起こるまでの合計時間は .BR clnt_call () -¤Ç»ØÄꤹ¤ë¡£ +で指定する。 .IP .\"O Warning: since UDP-based RPC messages can only hold up to 8 Kbytes .\"O of encoded data, this transport cannot be used for procedures .\"O that take large arguments or return huge results. -·Ù¹ð: UDP ¤Ë´ð¤Å¤¤¤¿ -RPC ¥á¥Ã¥»¡¼¥¸¤ÏºÇÂç¤Ç¤â 8 Kbyte ¤Þ¤Ç¤Î¥¨¥ó¥³¡¼¥É¤µ¤ì¤¿¥Ç¡¼¥¿¤·¤« -ÊÝ»ý¤Ç¤­¤Ê¤¤¤¿¤á¡¢¤³¤ÎÄÌ¿®¤ÏÂ礭¤Ê°ú¤­¿ô¤äµðÂç¤Ê·ë²Ì¤ò¼è¤ë -¥×¥í¥·¥¸¥ã¤Ë¤Ï»ÈÍѤǤ­¤Ê¤¤¡£ +警告: UDP に基づいた +RPC メッセージは最大でも 8 Kbyte までのエンコードされたデータしか +保持できないため、この通信は大きな引き数や巨大な結果を取る +プロシジャには使用できない。 .LP .nf .BI "CLIENT *clntudp_bufcreate(struct sockaddr_in *" addr , @@ -798,14 +798,14 @@ RPC .\"O the client uses use UDP/IP as a transport. .\"O The remote program is located at Internet address .\"O .IR addr . -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à -.IR prognum ¡¢ -¥Ð¡¼¥¸¥ç¥ó +このルーティンはリモート・プログラム +.IR prognum 、 +バージョン .I versnum -¤Î¤¿¤á¤Î RPC ¥¯¥é¥¤¥¢¥ó¥È¤òºîÀ®¤¹¤ë¡£¥¯¥é¥¤¥¢¥ó¥È¤ÏÄÌ¿®¤Ë -UDP/IP ¤ò»ÈÍѤ¹¤ë¡£¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤Ï¥¤¥ó¥¿¡¼¥Í¥Ã¥È¡¦¥¢¥É¥ì¥¹¤Î +のための RPC クライアントを作成する。クライアントは通信に +UDP/IP を使用する。リモート・プログラムはインターネット・アドレスの .I *addr -¤Ë¤¢¤ë¡£ +にある。 .\"O If .\"O \fIaddr\->sin_port\fR .\"O is zero, then it is set to actual port that the remote @@ -818,31 +818,31 @@ UDP/IP .\"O .BR RPC_ANYSOCK , .\"O then this routine opens a new one and sets .\"O .I sockp . -\fIaddr\->sin_port\fR ¤¬¥¼¥í¤Ê¤é¤Ð¡¢¼ÂºÝ¤Ë¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤¬ -listen ¤·¤Æ¤¤¤ë¥Ý¡¼¥È¤¬ÀßÄꤵ¤ì¤ë¡£(¤³¤Î¾ðÊó¤Î¤¿¤á¤Ë¥ê¥â¡¼¥È¤Î +\fIaddr\->sin_port\fR がゼロならば、実際にリモート・プログラムが +listen しているポートが設定される。(この情報のためにリモートの .B portmap -¥µ¡¼¥Ó¥¹¤¬ÍøÍѤµ¤ì¤ë¡£) ¥Ñ¥é¥á¡¼¥¿¡¼ +サービスが利用される。) パラメーター .I sockp -¤Ï¥½¥±¥Ã¥È¤Ç¤¢¤ë¡£¤â¤·¤³¤ì¤¬ +はソケットである。もしこれが .B RPC_ANYSOCK -¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤³¤Î¥ë¡¼¥Æ¥£¥ó¤¬¿·¤·¤¤¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤·¤Æ +に設定されている場合は、このルーティンが新しいソケットをオープンして .I sockp -¤ËÀßÄꤹ¤ë¡£ +に設定する。 .\"O The UDP transport resends the call message in intervals of .\"O .I wait .\"O time until a response is received or until the call times out. .\"O The total time for the call to time out is specified by .\"O .BR clnt_call (). -UDP ÄÌ¿®¤Ï²óÅú¤¬¤¢¤ë¤«¡¢»þ´ÖÀڤ줬µ¯¤³¤ë¤Þ¤Ç +UDP 通信は回答があるか、時間切れが起こるまで .B wait -´Ö³Ö¤Ç¸Æ¤Ó½Ð¤·¥á¥Ã¥»¡¼¥¸¤òºÆÁ÷¤¹¤ë¡£»þ´ÖÀڤ줬µ¯¤³¤ë¤Þ¤Ç¤Î¹ç·×»þ´Ö¤Ï +間隔で呼び出しメッセージを再送する。時間切れが起こるまでの合計時間は .BR clnt_call () -¤Ç»ØÄꤹ¤ë¡£ +で指定する。 .IP .\"O This allows the user to specify the maximum packet .\"O size for sending and receiving UDP-based RPC messages. -¤³¤ì¤ò»ÈÍѤ¹¤ë¤È UDP ¤Ë´ð¤Å¤¤¤¿ RPC ¥á¥Ã¥»¡¼¥¸¤Ë¤ª¤¤¤ÆÁ÷¿®¥Ñ¥±¥Ã¥È¤ä -¼õ¿®¥Ñ¥±¥Ã¥È¤ÎºÇÂ祵¥¤¥º¤ò»ØÄꤹ¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¡£ +これを使用すると UDP に基づいた RPC メッセージにおいて送信パケットや +受信パケットの最大サイズを指定することが可能になる。 .LP .nf .BI "void get_myaddress(struct sockaddr_in *" addr ); @@ -854,13 +854,13 @@ UDP .\"O .IR /etc/hosts . .\"O The port number is always set to .\"O .BR htons(PMAPPORT) . -¤³¤Î¥Þ¥·¥ó¤Î IP ¥¢¥É¥ì¥¹¤ò +このマシンの IP アドレスを .I *addr -¤Ë³ÊǼ¤¹¤ë¡£ +に格納する。 .I /etc/hosts -¤ò°·¤¦¥é¥¤¥Ö¥é¥ê¡¦¥ë¡¼¥Æ¥£¥ó¤Ï»ÈÍѤ·¤Ê¤¤¡£¥Ý¡¼¥ÈÈÖ¹æ¤Ï¾ï¤Ë +を扱うライブラリ・ルーティンは使用しない。ポート番号は常に .B htons(PMAPPORT) -¤ËÀßÄꤵ¤ì¤ë¡£ +に設定される。 .LP .nf .BI "struct pmaplist *pmap_getmaps(struct sockaddr_in *" addr ); @@ -876,13 +876,13 @@ UDP .\"O .IR "rpcinfo\ \-p" .\"O uses this routine. .B portmap -¥µ¡¼¥Ó¥¹¤Î¤¿¤á¤Î¥æ¡¼¥¶¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¢¤ê¡¢ -IP ¥¢¥É¥ì¥¹ +サービスのためのユーザインターフェースであり、 +IP アドレス .I *addr -¤Ë¤¢¤ë¥Û¥¹¥È¤Î¸½ºß¤Î RPC ¥×¥í¥°¥é¥à¤«¤é¥Ý¡¼¥ÈÈÖ¹æ¤Ø¤Î¥Þ¥Ã¥Ô¥ó¥°¤Î°ìÍ÷¤òÊÖ¤¹¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤¬ NULL ¤òÊÖ¤¹¾ì¹ç¤â¤¢¤ë¡£ +にあるホストの現在の RPC プログラムからポート番号へのマッピングの一覧を返す。 +このルーティンが NULL を返す場合もある。 .RB ` "rpcinfo \-p" ' -¥³¥Þ¥ó¥É¤Ï¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ò»ÈÍѤ·¤Æ¤¤¤ë¡£ +コマンドはこのルーティンを使用している。 .LP .nf .BI "unsigned short pmap_getport(struct sockaddr_in *" addr , @@ -900,14 +900,14 @@ IP .\"O and speaks the transport protocol associated with .\"O .IR protocol . .B portmap -¥µ¡¼¥Ó¥¹¤Î¤¿¤á¤Î¥æ¡¼¥¶¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¡¢ -¥×¥í¥°¥é¥àÈÖ¹æ -.IR prognum ¡¢ -¥Ð¡¼¥¸¥ç¥ó -.IR versnum ¡¢ -´ØÏ¢ÉÕ¤±¤é¤ì¤¿ÄÌ¿®¥×¥í¥È¥³¥ë +サービスのためのユーザ・インターフェースで、 +プログラム番号 +.IR prognum 、 +バージョン +.IR versnum 、 +関連付けられた通信プロトコル .I protocol -¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥µ¡¼¥Ó¥¹¤¬ÂԤäƤ¤¤ë¥Ý¡¼¥ÈÈÖ¹æ¤òÊÖ¤¹¡£ +をサポートするサービスが待っているポート番号を返す。 .\"O The value of .\"O .I protocol .\"O is most likely @@ -922,13 +922,13 @@ IP .\"O .I rpc_createerr .\"O contains the RPC status. .I protocol -¤ÎÃͤϤۤȤó¤É¤Î¾ì¹ç IPPROTO_UDP ¤« IPPROTO_TCP ¤Ç¤¢¤ë¡£ -ÊÖ¤êÃÍ¥¼¥í¤Ï¥Þ¥Ã¥Ô¥ó¥°¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢ -RPC ¥·¥¹¥Æ¥à¤¬¥ê¥â¡¼¥È¤Î +の値はほとんどの場合 IPPROTO_UDP か IPPROTO_TCP である。 +返り値ゼロはマッピングが存在しないか、 +RPC システムがリモートの .B portmap -¥µ¡¼¥Ó¥¹¤Î»²¾È¤Ë¼ºÇÔ¤·¤¿¤³¤È¤ò°ÕÌ£¤¹¤ë¡£¸å¼Ô¤Î¾ì¹ç¤ÏÂç°èÊÑ¿ô +サービスの参照に失敗したことを意味する。後者の場合は大域変数 .I rpc_createerr -¤¬ RPC ¾õÂÖ¤òÊÝ»ý¤·¤Æ¤¤¤ë¡£ +が RPC 状態を保持している。 .LP .nf .BI "enum clnt_stat pmap_rmtcall(struct sockaddr_in *" addr , @@ -947,13 +947,13 @@ RPC .\"O .I *addr .\"O to make an RPC call on your behalf to a procedure on that host. .B portmap -¥µ¡¼¥Ó¥¹¤Î¤¿¤á¤Î¥æ¡¼¥¶¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¡¢ -IP ¥¢¥É¥ì¥¹ +サービスのためのユーザ・インターフェースで、 +IP アドレス .I *addr -¤Î¥Û¥¹¥È¤Î +のホストの .B portmap -¤ò»²¾È¤·¤Æ¡¢ -RPC ¸Æ¤Ó½Ð¤·¤òÀ¸À®¤·¡¢¤½¤Î¥Û¥¹¥È¾å¤Î¥×¥í¥·¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹¡£ +を参照して、 +RPC 呼び出しを生成し、そのホスト上のプロシジャを呼び出す。 .\"O The parameter .\"O .I *portp .\"O will be modified to the program's port number if the procedure succeeds. @@ -965,17 +965,17 @@ RPC .\"O This procedure should be used for a \(lqping\(rq and nothing else. .\"O See also .\"O .BR clnt_broadcast (). -¥Ñ¥é¥á¡¼¥¿¡¼ +パラメーター .I *portp -¤Ï¥×¥í¥·¥¸¥ã¤¬À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¥×¥í¥°¥é¥à¤Î¥Ý¡¼¥ÈÈÖ¹æ¤Ë½¤Àµ¤µ¤ì¤ë¡£ -¾¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ÎÄêµÁ¤Ë¤Ä¤¤¤Æ¤Ï +はプロシジャが成功した場合にはプログラムのポート番号に修正される。 +他のパラメーターの定義については .BR callrpc () -¤ä +や .BR clnt_call () -¤ÇÀâÌÀ¤·¤Æ¤¢¤ë¡£ -¤³¤Î¥×¥í¥·¥¸¥ã¤Ï \(lqping\(rq ¤Î¤ß¤Ë»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +で説明してある。 +このプロシジャは \(lqping\(rq のみに使用すべきである。 .BR clnt_broadcast () -¤â»²¾È¤¹¤ë¤³¤È¡£ +も参照すること。 .LP .nf .BI "bool_t pmap_set(unsigned long " prognum ", unsigned long " versnum , @@ -1001,22 +1001,22 @@ RPC .\"O Automatically done by .\"O .BR svc_register (). .B portmap -¥µ¡¼¥Ó¥¹¤Î¤¿¤á¤Î¥æ¡¼¥¶¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¡¢ +サービスのためのユーザ・インターフェースで、 .RI [ prognum , versnum , protocol\fR] -¤ÎÁȤ߹ç¤ï¤»¤È +の組み合わせと .I port -¤È¤Î´Ö¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò¡¢¤½¤Î¥Þ¥·¥ó¾å¤Î +との間のマッピングを、そのマシン上の .B portmap -¥µ¡¼¥Ó¥¹¤ËÅÐÏ¿¤¹¤ë¡£ +サービスに登録する。 .I protocol -¤Ï¤Û¤È¤ó¤É¤Î¾ì¹ç +はほとんどの場合 .B IPPROTO_UDP -¤« +か .B IPPROTO_TCP -¤Î¤É¤Á¤é¤«¤Ç¤¢¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 1 ¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£ +のどちらかである。 +このルーティンは成功した場合には 1 を返す。失敗した場合にはゼロを返す。 .BR svc_register () -¤Ë¤è¤Ã¤Æ¼«Æ°Åª¤Ë¼Â¹Ô¤µ¤ì¤ë¡£ +によって自動的に実行される。 .LP .nf .BI "bool_t pmap_unset(unsigned long " prognum ", unsigned long " versnum ); @@ -1033,14 +1033,14 @@ RPC .\"O service. .\"O This routine returns one if it succeeds, zero otherwise. .B portmap -¥µ¡¼¥Ó¥¹¤Î¤¿¤á¤Î¥æ¡¼¥¶¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¡¢ +サービスのためのユーザ・インターフェースで、 .RI [ prognum , versnum , *\fR] -¤ÎÁȤ߹ç¤ï¤»¤È +の組み合わせと .B ports -¤Î´Ö¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò¤½¤Î¥Þ¥·¥ó¾å¤Î +の間のマッピングをそのマシン上の .B portmap -¥µ¡¼¥Ó¥¹¤«¤éºï½ü¤¹¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ +サービスから削除する。このルーティンは成功した場合は 1 を返す。 +失敗した場合には 0 を返す。 .LP .nf .BI "int registerrpc(unsigned long " prognum ", unsigned long " versnum , @@ -1066,34 +1066,34 @@ RPC .\"O .I outproc .\"O is used to encode the results. .\"O This routine returns zero if the registration succeeded, \-1 otherwise. -RPC ¥µ¡¼¥Ó¥¹¥Ñ¥Ã¥±¡¼¥¸¤ò»ÈÍѤ·¤Æ +RPC サービスパッケージを使用して .I procname -¥×¥í¥·¥¸¥ã¤òÅÐÏ¿¤¹¤ë¡£¥×¥í¥°¥é¥à -.IR prognum ¡¢ -¥Ð¡¼¥¸¥ç¥ó -.IR versnum ¡¢ -¥×¥í¥·¥¸¥ã +プロシジャを登録する。プログラム +.IR prognum 、 +バージョン +.IR versnum 、 +プロシジャ .I procnum -¤Ø¤ÎÍ׵᤬ÆϤ¤¤¿¾ì¹ç¡¢ +への要求が届いた場合、 .I procname -¤¬¥Ñ¥é¥á¡¼¥¿¡¼¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤ò»ý¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ +がパラメーターへのポインターを持って呼び出される。 .I progname -¤ÏÀÅŪ¤Ê·ë²Ì¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹É¬Íפ¬¤¢¤ë¡£ +は静的な結果へのポインターを返す必要がある。 .I inproc -¤Ï¥Ñ¥é¥á¡¼¥¿¡¼¤ò¥Ç¥³¡¼¥É¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ +はパラメーターをデコードするために使用される。 .I outproc -¤Ï·ë²Ì¤ò¥¨¥ó¥³¡¼¥É¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÅÐÏ¿¤ËÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï \-1 ¤òÊÖ¤¹¡£ +は結果をエンコードするために使用される。 +このルーティンは登録に成功した場合にはゼロを返す。 +失敗した場合には \-1 を返す。 .IP .\"O Warning: remote procedures registered in this form .\"O are accessed using the UDP/IP transport; see .\"O .BR svcudp_create () .\"O for restrictions. -·Ù¹ð: ¤³¤Î·Á¼°¤ÇÅÐÏ¿¤µ¤ì¤¿¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¤Ï -UDP/IP ÄÌ¿®¤ò»ÈÍѤ¹¤ë¡£À©¸Â¤Ë´Ø¤·¤Æ¤Ï +警告: この形式で登録されたリモート・プロシジャは +UDP/IP 通信を使用する。制限に関しては .BR svcudp_create () -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .LP .nf .BI "struct rpc_createerr " rpc_createerr ; @@ -1104,9 +1104,9 @@ UDP/IP .\"O Use the routine .\"O .BR clnt_pcreateerror () .\"O to print the reason why. -À®¸ù¤·¤Ê¤«¤Ã¤¿ RPC ¥¯¥é¥¤¥¢¥ó¥ÈÀ¸À®¥ë¡¼¥Æ¥£¥ó¤Ë¤è¤Ã¤ÆÀßÄꤵ¤ì¤ëÂç°èÊÑ¿ô¡£ +成功しなかった RPC クライアント生成ルーティンによって設定される大域変数。 .BR clnt_pcreateerror () -¥ë¡¼¥Æ¥£¥ó¤¬Íýͳ¤òɽ¼¨¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£ +ルーティンが理由を表示するために使用する。 .LP .nf .BI "void svc_destroy(SVCXPRT *" xprt ); @@ -1121,14 +1121,14 @@ UDP/IP .\"O Use of .\"O .I xprt .\"O is undefined after calling this routine. -¤³¤Î¥Þ¥¯¥í¤ÏÄÌ¿®¥Ï¥ó¥É¥ë +このマクロは通信ハンドル .I xprt -¤Î RPC ¥µ¡¼¥Ó¥¹¤òÇ˲õ¤¹¤ë¡£Ç˲õ¤Ë¤ÏÄ̾ +の RPC サービスを破壊する。破壊には通常、 .I xprt -¤ò´Þ¤á¤Æ¡¢»äŪ¤Ê¥Ç¡¼¥¿¹½Â¤ÂΤÎÇË´þ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ò¸Æ¤Ó½Ð¤·¤¿¸å¤Ë +を含めて、私的なデータ構造体の破棄が含まれている。 +このルーティンを呼び出した後に .I xprt -¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +を使用することは未定義である。 .LP .nf .BI "fd_set " svc_fdset ; @@ -1146,17 +1146,17 @@ UDP/IP .\"O yet it may change after calls to .\"O .BR svc_getreqset () .\"O or any creation routines. -RPC ¥µ¡¼¥Ó¥¹Â¦¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤òÈ¿±Ç¤·¤¿Âç°èÊÑ¿ô¡£ +RPC サービス側のファイル・ディスクリプターのビットマスクを反映した大域変数。 .BR select (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤Î¤¿¤á¤ËÍøÍѤǤ­¤ë¡£¤³¤ì¤Ï -¥µ¡¼¥Ó¥¹¤Î¼ÂÁõ¼Ô¤¬ +システムコールのパラメーターのために利用できる。これは +サービスの実装者が .BR svc_run () -¤ò¸Æ¤Ó½Ð¤µ¤Ê¤º¤Ë¡¢Æȼ«¤ÎÈóƱ´ü¥¤¥Ù¥ó¥È½èÍý¤òÍѤ¤¤ë¾ì¹ç¤Ë¤Î¤ß°ÕÌ£¤¬¤¢¤ë¡£ -¤³¤ÎÊÑ¿ô¤ÏÆɤ߹þ¤ßÀìÍÑ¤Ç (¤½¤Î¤Þ¤Þ +を呼び出さなずに、独自の非同期イベント処理を用いる場合にのみ意味がある。 +この変数は読み込み専用で (そのまま .BR select (2) -¤ØÅϤ·¤Æ¤Ï¤Ê¤é¤Ê¤¤!)¡¢ +へ渡してはならない!)、 .BR svc_getreqset () -¸Æ¤Ó½Ð¤·¤äÀ¸À®¥ë¡¼¥Æ¥£¥ó¤Î¸å¤ËÊѹ¹¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +呼び出しや生成ルーティンの後に変更されているかもしれない。 .LP .nf .BI "int " svc_fds ; @@ -1168,10 +1168,10 @@ RPC .\"O This interface is obsoleted by .\"O .BR svc_fdset . .B svc_fdset -¤Ë»÷¤Æ¤¤¤ë¤¬¡¢32 ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï +に似ているが、32 ディスクリプターに制限されている。 +このインターフェースは .B svc_fdset -¤Ë¤è¤Ã¤ÆÃÖ¤­´¹¤¨¤é¤ì¤¿¡£ +によって置き換えられた。 .LP .nf .BI "svc_freeargs(SVCXPRT *" xprt ", xdrproc_t " inproc ", char *" in ); @@ -1183,12 +1183,12 @@ RPC .\"O This routine returns 1 if the results were successfully .\"O freed, .\"O and zero otherwise. -¤³¤Î¥Þ¥¯¥í¤Ï¥µ¡¼¥Ó¥¹¡¦¥×¥í¥·¥¸¥ã¤¬ +このマクロはサービス・プロシジャが .BR svc_getargs () -¤ò»ÈÍѤ·¤Æ°ú¤­¿ô¤ò¥Ç¥³¡¼¥É¤·¤¿»þ¤Ë -RPC/XDR ¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ³ä¤êÅö¤Æ¤é¤ì¤¿¥Ç¡¼¥¿¤ò²òÊü¤¹¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï²òÊü¤ËÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£ +を使用して引き数をデコードした時に +RPC/XDR システムによって割り当てられたデータを解放する。 +このルーティンは解放に成功した場合には 1 を返す。 +失敗した場合にはゼロを返す。 .LP .nf .BI "svc_getargs(SVCXPRT *" xprt ", xdrproc_t " inproc ", char *" in ); @@ -1203,15 +1203,15 @@ RPC/XDR .\"O .I inproc .\"O is the XDR routine used to decode the arguments. .\"O This routine returns one if decoding succeeds, and zero otherwise. -¤³¤Î¥Þ¥¯¥í¤Ï RPC ¥µ¡¼¥Ó¥¹ÄÌ¿®¥Ï¥ó¥É¥ë +このマクロは RPC サービス通信ハンドル .I xprt -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿ RPC Í×µá¤Î°ú¤­¿ô¤ò¥Ç¥³¡¼¥É¤¹¤ë¡£¥Ñ¥é¥á¡¼¥¿¡¼ +に関連付けられた RPC 要求の引き数をデコードする。パラメーター .I in -¤Ï°ú¤­¿ô¤Î³ÊǼ¤µ¤ì¤¿¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +は引き数の格納されたアドレスである。 .I inproc -¤Ï°ú¤­¿ô¤ò¥Ç¥³¡¼¥É¤¹¤ë¤¿¤á¤Î XDR ¥ë¡¼¥Æ¥£¥ó¤Ç¤¢¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥Ç¥³¡¼¥É¤ËÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +は引き数をデコードするための XDR ルーティンである。 +このルーティンはデコードに成功した場合は 1 を返す。 +失敗した場合はゼロを返す。 .LP .nf .BI "struct sockaddr_in *svc_getcaller(SVCXPRT *" xprt ); @@ -1220,10 +1220,10 @@ RPC/XDR .\"O The approved way of getting the network address of the caller .\"O of a procedure associated with the RPC service transport handle, .\"O .IR xprt . -RPC ¥µ¡¼¥Ó¥¹ÄÌ¿®¥Ï¥ó¥É¥ë +RPC サービス通信ハンドル .I xprt -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥×¥í¥·¥¸¥ã¤Î¸Æ¤Ó½Ð¤·¸µ¤Î¥Í¥Ã¥È¥ï¡¼¥¯¡¦¥¢¥É¥ì¥¹¤ò -¼èÆÀ¤¹¤ë¤¿¤á¤Îɸ½àŪ¤Ê¼êÃÊ¡£ +に関連付けられたプロシジャの呼び出し元のネットワーク・アドレスを +取得するための標準的な手段。 .LP .nf .BI "void svc_getreqset(fd_set *" rdfds ); @@ -1241,19 +1241,19 @@ RPC .\"O The routine returns when all sockets associated with the value of .\"O .I rdfds .\"O have been serviced. -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥µ¡¼¥Ó¥¹¤Î¼ÂÁõ¼Ô¤¬ +このルーティンはサービスの実装者が .BR svc_run () -¤ò¸Æ¤Ó½Ð¤µ¤º¡¢Æȼ«¤ÎÈóƱ´ü¥¤¥Ù¥ó¥È½èÍý¤ò¼ÂÁõ¤¹¤ë¾ì¹ç¤Ë¤Î¤ß°ÕÌ£¤¬¤¢¤ë¡£ -¤³¤ì¤Ï +を呼び出さず、独自の非同期イベント処理を実装する場合にのみ意味がある。 +これは .BR select (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ RPC ¥½¥±¥Ã¥È¤Ë -RPC Í׵᤬ÅþÃ夷¤¿¤ÈÊÖ¤·¤¿¾ì¹ç¤Ë¤Î¤ß¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ +システムコールが RPC ソケットに +RPC 要求が到着したと返した場合にのみ呼び出される。 .I rdfds -¤Ï·ë²Ì¤ÎÆɤ߹þ¤ß¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï +は結果の読み込みファイル・ディスクリプターのビットマスクである。 +このルーティンは .I rdfds -¤ÎÃͤ˴ØÏ¢ÉÕ¤±¤é¤ì¤¿Á´¤Æ¤Î¥½¥±¥Ã¥È¤Î¥µ¡¼¥Ó¥¹¤¬¹Ô¤Ê¤ï¤ì¤¿»þ¤Ë -Ê֤äƤ¯¤ë¡£ +の値に関連付けられた全てのソケットのサービスが行なわれた時に +返ってくる。 .LP .nf .BI "void svc_getreq(int " rdfds ); @@ -1265,10 +1265,10 @@ RPC .\"O This interface is obsoleted by .\"O .BR svc_getreqset (). .BR svc_getreqset () -¤Ë»÷¤Æ¤¤¤ë¤¬¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Î¿ô¤¬ 32 ¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï +に似ているがディスクリプターの数が 32 に制限されている。 +このインターフェースは .BR svc_getreqset () -¤Ë¤è¤Ã¤ÆÃÖ¤­´¹¤¨¤é¤ì¤¿¡£ +によって置き換えられた。 .LP .nf .BI "bool_t svc_register(SVCXPRT *" xprt ", unsigned long " prognum , @@ -1284,11 +1284,11 @@ RPC .\"O with the service dispatch procedure, .\"O .IR dispatch . .I prognum -¤È +と .I versnum -¤ò¥µ¡¼¥Ó¥¹ÇÛʬ¥×¥í¥·¥¸¥ã +をサービス配分プロシジャ .I dispatch -¤Ç´ØÏ¢ÉÕ¤±¤ë¡£ +で関連付ける。 .\"O If .\"O .I protocol .\"O is zero, the service is not registered with the @@ -1309,26 +1309,26 @@ RPC .\"O or .\"O .BR IPPROTO_TCP ). .I protocol -¤¬¥¼¥í¤Î¾ì¹ç¡¢¥µ¡¼¥Ó¥¹¤Ï +がゼロの場合、サービスは .B portmap -¥µ¡¼¥Ó¥¹¤Ë¤ÏÅÐÏ¿¤µ¤ì¤Ê¤¤¡£ +サービスには登録されない。 .I protocol -¤¬¥¼¥í°Ê³°¤Î¾ì¹ç¡¢ +がゼロ以外の場合、 .RI [ prognum , versnum , protocol\fR] -¤ÎÁȤ߹ç¤ï¤»¤È \fIxprt\->xp_port\fR ¤È¤Î¥Þ¥Ã¥Ô¥ó¥°¤¬¥í¡¼¥«¥ë¤Î +の組み合わせと \fIxprt\->xp_port\fR とのマッピングがローカルの .B portmap -¥µ¡¼¥Ó¥¹¤ËÅÐÏ¿¤µ¤ì¤ë¡£(°ìÈÌŪ¤Ë +サービスに登録される。(一般的に .I protocol -¤Ï¥¼¥í¡¢ -.BR IPPROTO_UDP ¡¢ +はゼロ、 +.BR IPPROTO_UDP 、 .B IPPROTO_TCP -¤Î¤É¤ì¤«¤Ç¤¢¤ë¡£) +のどれかである。) .\"O The procedure .\"O .I dispatch .\"O has the following form: -¥×¥í¥·¥¸¥ã +プロシジャ .I dispatch -¤Ï°Ê²¼¤Î·Á¼°¤Ç¤¢¤ë: +は以下の形式である: .in +4n .nf @@ -1340,7 +1340,7 @@ dispatch(struct svc_req *request, SVCXPRT *xprt); .\"O .BR svc_register () .\"O routine returns one if it succeeds, and zero otherwise. .BR svc_register () -¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +ルーティンは成功した場合は 1 を返す。失敗した場合はゼロを返す。 .LP .nf .B "void svc_run(void);" @@ -1354,14 +1354,14 @@ dispatch(struct svc_req *request, SVCXPRT *xprt); .\"O This procedure is usually waiting for a .\"O .BR select (2) .\"O system call to return. -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÌá¤Ã¤Æ¤³¤Ê¤¤¡£¤³¤ì¤Ï +このルーティンは戻ってこない。これは .SM RPC -Í×µá¤ÎÅþÃå¤òÂÔ¤Á¡¢¤É¤ì¤«¤¬ÆϤ¤¤¿¾ì¹ç¤Ë +要求の到着を待ち、どれかが届いた場合に .BR svc_getreq () -¤ò»ÈÍѤ·¤ÆŬÀڤʥµ¡¼¥Ó¥¹¡¦¥×¥í¥·¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹¡£ -¤³¤Î¥×¥í¥·¥¸¥ã¤ÏÄ̾ï¤Ï +を使用して適切なサービス・プロシジャを呼び出す。 +このプロシジャは通常は .BR select (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤«¤éÊÖ¤ë¤Î¤òÂԤäƤ¤¤ë¡£ +システムコールから返るのを待っている。 .LP .nf .BI "bool_t svc_sendreply(SVCXPRT *" xprt ", xdrproc_t " outproc \ @@ -1378,16 +1378,16 @@ dispatch(struct svc_req *request, SVCXPRT *xprt); .\"O .I out .\"O is the address of the results. .\"O This routine returns one if it succeeds, zero otherwise. -RPC ¥µ¡¼¥Ó¥¹ÇÛʬ¥ë¡¼¥Æ¥£¥ó¤Ë¤è¤Ã¤Æ¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¡¦¥³¡¼¥ë¤Î·ë²Ì¤ò -ÊÖ¤¹¤¿¤á¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ -¥Ñ¥é¥á¡¼¥¿¡¼ +RPC サービス配分ルーティンによってリモート・プロシジャ・コールの結果を +返すために呼び出される。 +パラメーター .I xprt -¤Ï¤½¤ÎÍ×µá¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿ÄÌ¿®¥Ï¥ó¥É¥ë¤Ç¤¢¤ë¡£ +はその要求に関連付けられた通信ハンドルである。 .I outproc -¤Ï·ë²Ì¤ò¥¨¥ó¥³¡¼¥É¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë XDR ¥ë¡¼¥Æ¥£¥ó¤Ç¤¢¤ë¡£ +は結果をエンコードするために使用する XDR ルーティンである。 .I out -¤Ï·ë²Ì¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +は結果のアドレスである。このルーティンは成功した場合は 1 を返す。 +失敗した場合はゼロを返す。 .LP .nf .BI "void svc_unregister(unsigned long " prognum ", unsigned long " versnum ); @@ -1398,11 +1398,11 @@ RPC .\"O to dispatch routines, and of the triple .\"O .RI [ prognum , versnum , *\fR] .\"O to port number. -ÇÛʬ¥ë¡¼¥Æ¥£¥ó¤«¤é +配分ルーティンから .RI [ prognum , versnum ] -¤ª¤è¤Ó +および .RI [ prognum , versnum , *\fR] -¤ÎÁȤ߹ç¤ï¤»¤«¤é¥Ý¡¼¥ÈÈÖ¹æ¤Ø¤Î¥Þ¥Ã¥Ô¥ó¥°¤òÁ´¤Æºï½ü¤¹¤ë¡£ +の組み合わせからポート番号へのマッピングを全て削除する。 .LP .nf .BI "void svcerr_auth(SVCXPRT *" xprt ", enum auth_stat " why ); @@ -1410,8 +1410,8 @@ RPC .IP .\"O Called by a service dispatch routine that refuses to perform .\"O a remote procedure call due to an authentication error. -ǧ¾Ú¥¨¥é¡¼¤Ë¤è¤ê¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¡¦¥³¡¼¥ë¤Î¼Â¹Ô¤òµñÈݤµ¤ì¤¿ -¾ì¹ç¤Ë¥µ¡¼¥Ó¥¹ÇÛʬ¥ë¡¼¥Æ¥£¥ó¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ +認証エラーによりリモート・プロシジャ・コールの実行を拒否された +場合にサービス配分ルーティンによって呼び出される。 .LP .nf .BI "void svcerr_decode(SVCXPRT *" xprt ); @@ -1421,10 +1421,10 @@ RPC .\"O decode its parameters. .\"O See also .\"O .BR svc_getargs (). -¥Ñ¥é¥á¡¼¥¿¤Î¥Ç¥³¡¼¥É¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ë -¥µ¡¼¥Ó¥¹ÇÛʬ¥ë¡¼¥Æ¥£¥ó¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ +パラメータのデコードに失敗した場合に +サービス配分ルーティンによって呼び出される。 .BR svc_getargs () -¤â»²¾È¤¹¤ë¤³¤È¡£ +も参照すること。 .LP .nf .BI "void svcerr_noproc(SVCXPRT *" xprt ); @@ -1432,8 +1432,8 @@ RPC .IP .\"O Called by a service dispatch routine that does not implement .\"O the procedure number that the caller requests. -Í×µá¤Î¤¢¤Ã¤¿¥×¥í¥·¥¸¥ãÈֹ椬¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë -¥µ¡¼¥Ó¥¹ÇÛʬ¥ë¡¼¥Æ¥£¥ó¤è¤ê¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ +要求のあったプロシジャ番号が実装されていない場合に +サービス配分ルーティンより呼び出される。 .LP .nf .BI "void svcerr_noprog(SVCXPRT *" xprt ); @@ -1441,8 +1441,8 @@ RPC .IP .\"O Called when the desired program is not registered with the RPC package. .\"O Service implementors usually do not need this routine. -RPC ¥Ñ¥Ã¥±¡¼¥¸¤ËÍ׵ᤵ¤ì¤¿¥×¥í¥°¥é¥à¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ -¥µ¡¼¥Ó¥¹¤Î¼ÂÁõ¤Ë¤ÏÄ̾¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏɬÍפʤ¤¡£ +RPC パッケージに要求されたプログラムが登録されていない場合に呼び出される。 +サービスの実装には通常、このルーティンは必要ない。 .LP .nf .BI "void svcerr_progvers(SVCXPRT *" xprt ); @@ -1451,8 +1451,8 @@ RPC .\"O Called when the desired version of a program is not registered .\"O with the RPC package. .\"O Service implementors usually do not need this routine. -RPC ¥Ñ¥Ã¥±¡¼¥¸¤ËÍ׵ᤵ¤ì¤¿¥Ð¡¼¥¸¥ç¥ó¤Î¥×¥í¥°¥é¥à¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë -¸Æ¤Ó½Ð¤µ¤ì¤ë¡£¥µ¡¼¥Ó¥¹¤Î¼ÂÁõ¤Ë¤ÏÄ̾¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏɬÍפʤ¤¡£ +RPC パッケージに要求されたバージョンのプログラムが登録されていない場合に +呼び出される。サービスの実装には通常、このルーティンは必要ない。 .LP .nf .BI "void svcerr_systemerr(SVCXPRT *" xprt ); @@ -1462,10 +1462,10 @@ RPC .\"O error not covered by any particular protocol. .\"O For example, if a service can no longer allocate storage, .\"O it may call this routine. -ÆÃÄê¤Î¥×¥í¥È¥³¥ë¤Ë¤è¤Ã¤Æ¥«¥Ð¡¼¤µ¤ì¤Æ¤¤¤Ê¥·¥¹¥Æ¥à¡¦¥¨¥é¡¼¤¬ -¸¡½Ð¤µ¤ì¤¿¾ì¹ç¤Ë¥µ¡¼¥Ó¥¹ÇÛʬ¥ë¡¼¥Æ¥£¥ó¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ -Î㤨¤Ð¡¢¥µ¡¼¥Ó¥¹¤¬¤½¤ì°Ê¾å¡¢µ­²±ÁõÃÖ¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¾ì¹ç¤Ë¤Ï -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +特定のプロトコルによってカバーされていなシステム・エラーが +検出された場合にサービス配分ルーティンによって呼び出される。 +例えば、サービスがそれ以上、記憶装置を割り当てることができない場合には +このルーティンが呼び出されるかもしれない。 .LP .nf .BI "void svcerr_weakauth(SVCXPRT *" xprt ); @@ -1475,11 +1475,11 @@ RPC .\"O a remote procedure call due to insufficient authentication parameters. .\"O The routine calls .\"O .BR "svcerr_auth(xprt, AUTH_TOOWEAK)" . -ǧ¾Ú¥Ñ¥é¥á¡¼¥¿¤¬Â­¤ê¤Ê¤¤¤¿¤á¤Ë¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¡¦¥³¡¼¥ë¤Î¼Â¹Ô¤ò -µñÈݤµ¤ì¤¿¾ì¹ç¤Ë¥µ¡¼¥Ó¥¹ÇÛʬ¥ë¡¼¥Æ¥£¥ó¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï +認証パラメータが足りないためにリモート・プロシジャ・コールの実行を +拒否された場合にサービス配分ルーティンによって呼び出される。 +このルーティンは .B "svcerr_auth(xprt, AUTH_TOOWEAK)" -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .LP .nf .BI "SVCXPRT *svcfd_create(int " fd ", unsigned int " sendsize , @@ -1494,14 +1494,14 @@ RPC .\"O .I recvsize .\"O indicate sizes for the send and receive buffers. .\"O If they are zero, a reasonable default is chosen. -Ǥ°Õ¤Î¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¾å¤Ë¥µ¡¼¥Ó¥¹¤òºîÀ®¤¹¤ë¡£ -ŵ·¿Åª¤Ë¡¢¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ï -TCP ¤Î¤è¤¦¤Ê¥¹¥È¥ê¡¼¥à¡¦¥×¥í¥È¥³¥ë¤ÇÀܳ¤µ¤ì¤¿¥½¥±¥Ã¥È¤Ç¤¢¤ë¡£ +任意のオープンされたディスクリプター上にサービスを作成する。 +典型的に、ディスクリプターは +TCP のようなストリーム・プロトコルで接続されたソケットである。 .I sendsize -¤È +と .I recvsize -¤Ë¤ÏÁ÷¿®¥Ð¥Ã¥Õ¥¡¤È¼õ¿®¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ¤ò»ØÄꤹ¤ë¡£¤â¤·¥¼¥í¤¬»ØÄꤵ¤ì¤¿ -¾ì¹ç¤ÏŬÀڤʥǥե©¥ë¥È¤¬ÁªÂò¤µ¤ì¤ë¡£ +には送信バッファと受信バッファの大きさを指定する。もしゼロが指定された +場合は適切なデフォルトが選択される。 .LP .nf .BI "SVCXPRT *svcraw_create(void);" @@ -1512,17 +1512,17 @@ TCP .\"O The transport is really a buffer within the process's address space, .\"O so the corresponding RPC client should live in the same address space; see .\"O .BR clntraw_create (). -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ïµ¼»÷ RPC ¥µ¡¼¥Ó¥¹ÄÌ¿®¤òÀ¸À®¤·¤Æ¡¢¤½¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£ -ÄÌ¿®¤Ï¼ÂºÝ¤Ë¤Ï¤½¤Î¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤¢¤ë¥Ð¥Ã¥Õ¥¡¤Ê¤Î¤Ç -Âбþ¤¹¤ë RPC ¥¯¥é¥¤¥¢¥ó¥È¤ÏƱ¤¸¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤¤¤ëɬÍפ¬¤¢¤ë¡£ +このルーティンは擬似 RPC サービス通信を生成して、そのポインターを返す。 +通信は実際にはそのプロセスのアドレス空間にあるバッファなので +対応する RPC クライアントは同じアドレス空間にいる必要がある。 .BR clntraw_create () -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O This routine allows simulation of RPC and acquisition of RPC .\"O overheads (such as round trip times), without any kernel interference. .\"O This routine returns NULL if it fails. -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ç -RPC ¤Î¥·¥ß¥å¥ì¡¼¥·¥ç¥ó¤ä¡¢¥«¡¼¥Í¥ë¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë±Æ¶Á¤µ¤ì¤º¤Ë±þÅú»þ´Ö¤Ê¤É¤Î -RPC ¥ª¡¼¥Ð¥Ø¥Ã¥É¤ò¼èÆÀ¤¬¤Ç¤­¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¼ºÇÔ¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +このルーティンで +RPC のシミュレーションや、カーネル・インターフェースに影響されずに応答時間などの +RPC オーバヘッドを取得ができる。このルーティンは失敗した場合は NULL を返す。 .LP .nf .BI "SVCXPRT *svctcp_create(int " sock ", unsigned int " send_buf_size , @@ -1536,15 +1536,15 @@ RPC .\"O which may be .\"O .BR RPC_ANYSOCK , .\"O in which case a new socket is created. -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï TCP/IP ¤Ë´ð¤Å¤¯ -RPC ¥µ¡¼¥Ó¥¹ÄÌ¿®¤òºîÀ®¤·¡¢¤½¤ì¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£ -ÄÌ¿®¤Ï¥½¥±¥Ã¥È +このルーティンは TCP/IP に基づく +RPC サービス通信を作成し、それへのポインターを返す。 +通信はソケット .I sock -¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤ë¡£ +に結びつけられる。 .I sock -¤Ï +は .B RPC_ANYSOCK -¤Ç¤âÎɤ¤¡£¤³¤Î¾ì¹ç¤Ï¿·¤·¤¤¥½¥±¥Ã¥È¤¬ºîÀ®¤µ¤ì¤ë¡£ +でも良い。この場合は新しいソケットが作成される。 .\"O If the socket is not bound to a local TCP .\"O port, then this routine binds it to an arbitrary port. .\"O Upon completion, @@ -1552,19 +1552,19 @@ RPC .\"O is the transport's socket descriptor, and .\"O \fIxprt\->xp_port\fR .\"O is the transport's port number. -¤â¤·¥½¥±¥Ã¥È¤¬¥í¡¼¥«¥ë¤Ê TCP ¥Ý¡¼¥È¤Ë bind ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤¬Å¬Åö¤Ê¥Ý¡¼¥È¤Ë bind ¤¹¤ë¡£ -Êä´°¤µ¤ì¤¿¾ì¹ç¡¢\fIxprt\->xp_sock\fR ¤Ë¤ÏÄÌ¿®¤Î¥½¥±¥Ã¥È¡¦ -¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤¬¡¢\fIxprt\->xp_port\fR ¤Ë¤ÏÄÌ¿®¤Î¥Ý¡¼¥ÈÈֹ椬 -ÀßÄꤵ¤ì¤ë¡£ +もしソケットがローカルな TCP ポートに bind されていない場合は、 +このルーティンが適当なポートに bind する。 +補完された場合、\fIxprt\->xp_sock\fR には通信のソケット・ +ディスクリプターが、\fIxprt\->xp_port\fR には通信のポート番号が +設定される。 .\"O This routine returns NULL if it fails. .\"O Since TCP-based RPC uses buffered I/O, .\"O users may specify the size of buffers; values of zero .\"O choose suitable defaults. -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¼ºÇÔ¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ -TCP ¤Ë´ð¤Å¤¤¤¿ RPC ¤Ï¥Ð¥Ã¥Õ¥¡¤µ¤ì¤¿ I/O ¤ò»ÈÍѤ¹¤ë¤¿¤á¡¢ -¥æ¡¼¥¶¤Ï¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ¤ò»ØÄê¤Ç¤­¤ë¡£ -¥¼¥í¤ò»ØÄꤷ¤¿¾ì¹ç¤ÏŬÀڤʥǥե©¥ë¥È¤¬ÁªÂò¤µ¤ì¤ë¡£ +このルーティンは失敗した場合は NULL を返す。 +TCP に基づいた RPC はバッファされた I/O を使用するため、 +ユーザはバッファの大きさを指定できる。 +ゼロを指定した場合は適切なデフォルトが選択される。 .LP .nf .BI "SVCXPRT *svcudp_bufcreate(int " sock ", unsigned int " sendsize , @@ -1586,24 +1586,24 @@ TCP .\"O \fIxprt\->xp_port\fR .\"O is the transport's port number. .\"O This routine returns NULL if it fails. -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï UDP/IP ¤Ë´ð¤Å¤¤¤¿ RPC ¥µ¡¼¥Ó¥¹ÄÌ¿®¤òºîÀ®¤·¡¢ -¤½¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£ÄÌ¿®¤Ï¥½¥±¥Ã¥È +このルーティンは UDP/IP に基づいた RPC サービス通信を作成し、 +そのポインターを返す。通信はソケット .I sock -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤ë¡£ +に関連付けられる。 .I sock -¤Ï +は .B RPC_ANYSOCK -¤Ç¤âÎɤ¤¡£¤³¤Î¾ì¹ç¤Ï¿·¤·¤¤¥½¥±¥Ã¥È¤¬ºîÀ®¤µ¤ì¤ë¡£ -¥½¥±¥Ã¥È¤¬¥í¡¼¥«¥ë¤Î UDP ¥Ý¡¼¥È¤Ë bind ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏŬÅö¤Ê¥Ý¡¼¥È¤Ë bind ¤¹¤ë¡£ -Êä´°¤µ¤ì¤¿¾ì¹ç¡¢\fIxprt\->xp_sock\fR ¤ËÄÌ¿®¤Î¥½¥±¥Ã¥È¤Î -¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤¬¡¢\fIxprt\->xp_port\fR ¤ËÄÌ¿®¤Î¥Ý¡¼¥ÈÈֹ椬 -ÀßÄꤵ¤ì¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï NULL ¤òÊÖ¤¹¡£ +でも良い。この場合は新しいソケットが作成される。 +ソケットがローカルの UDP ポートに bind されていない場合には +このルーティンは適当なポートに bind する。 +補完された場合、\fIxprt\->xp_sock\fR に通信のソケットの +ディスクリプターが、\fIxprt\->xp_port\fR に通信のポート番号が +設定される。このルーティンは失敗した場合には NULL を返す。 .IP .\"O This allows the user to specify the maximum packet size for sending and .\"O receiving UDP-based RPC messages. -¤³¤ì¤Ë¤è¤ê¥æ¡¼¥¶¤Ï UDP ¤Ë´ð¤Å¤¤¤¿ RPC ¥á¥Ã¥»¡¼¥¸¤Ç -»ÈÍѤǤ­¤ëÁ÷¿®¥Ñ¥±¥Ã¥È¤ª¤è¤Ó¼õ¿®¥Ñ¥±¥Ã¥È¤ÎºÇÂ祵¥¤¥º¤ò»ØÄê¤Ç¤­¤ë¡£ +これによりユーザは UDP に基づいた RPC メッセージで +使用できる送信パケットおよび受信パケットの最大サイズを指定できる。 .LP .nf .BI "SVCXPRT *svcudp_create(int " sock ); @@ -1612,8 +1612,8 @@ TCP .\"O This call is equivalent to .\"O \fIsvcudp_bufcreate(sock,SZ,SZ)\fP .\"O for some default size \fISZ\fP. -Á÷¿®¥Ñ¥±¥Ã¥È¤È¼õ¿®¥Ñ¥±¥Ã¥È¤Î¥µ¥¤¥º¤òƱ¤¸¥Ç¥Õ¥©¥ë¥È¤ÎÃÍ \fISZ\fP ¤Ë»ØÄꤷ¤¿ -\fIsvcudp_bufcreate(sock,SZ,SZ)\fP ¤ÈÅù²Á¤Ç¤¢¤ë¡£ +送信パケットと受信パケットのサイズを同じデフォルトの値 \fISZ\fP に指定した +\fIsvcudp_bufcreate(sock,SZ,SZ)\fP と等価である。 .LP .nf .BI "bool_t xdr_accepted_reply(XDR *" xdrs ", struct accepted_reply *" ar ); @@ -1622,9 +1622,9 @@ TCP .\"O Used for encoding RPC reply messages. .\"O This routine is useful for users who wish to generate .\"O RPC-style messages without using the RPC package. -RPC ±þÅú¥á¥Ã¥»¡¼¥¸¤ò¥¨¥ó¥³¡¼¥É¤¹¤ë¤Î¤Ë»ÈÍѤ¹¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï -RPC ¥Ñ¥Ã¥±¡¼¥¸¤òÍѤ¤¤º¤Ë -RPC-·Á¼°¤Î¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤·¤è¤¦¤È¤¹¤ë¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£ +RPC 応答メッセージをエンコードするのに使用する。このルーティンは +RPC パッケージを用いずに +RPC-形式のメッセージを作成しようとする場合に便利である。 .LP .nf .BI "bool_t xdr_authunix_parms(XDR *" xdrs ", struct authunix_parms *" aupp ); @@ -1634,8 +1634,8 @@ RPC- .\"O This routine is useful for users .\"O who wish to generate these credentials without using the RPC .\"O authentication package. -UNIX ·Á¼°¤Î¾ÚÌÀ½ñ¤òµ­½Ò¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï -RPC ǧ¾Ú¥Ñ¥Ã¥±¡¼¥¸¤ò»ÈÍѤ»¤º¤Ë¤³¤ì¤é¤Î¾ÚÌÀ½ñ¤òºîÀ®¤·¤è¤¦¤È¤¹¤ë¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£ +UNIX 形式の証明書を記述するために使用する。このルーティンは +RPC 認証パッケージを使用せずにこれらの証明書を作成しようとする場合に便利である。 .LP .nf .BI "void xdr_callhdr(XDR *" xdrs ", struct rpc_msg *" chdr ); @@ -1644,9 +1644,9 @@ RPC ǧ .\"O Used for describing RPC call header messages. .\"O This routine is useful for users who wish to generate .\"O RPC-style messages without using the RPC package. -RPC ¸Æ¤Ó½Ð¤·¤Î¥Ø¥Ã¥À¡¼¡¦¥á¥Ã¥»¡¼¥¸¤òµ­½Ò¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï RPC ¥Ñ¥Ã¥±¡¼¥¸¤ò»ÈÍѤ»¤º¤Ë -RPC-·Á¼°¤Î¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤·¤è¤¦¤È¤¹¤ë¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£ +RPC 呼び出しのヘッダー・メッセージを記述するために使用する。 +このルーティンは RPC パッケージを使用せずに +RPC-形式のメッセージを作成しようとする場合に便利である。 .LP .nf .BI "bool_t xdr_callmsg(XDR *" xdrs ", struct rpc_msg *" cmsg ); @@ -1655,9 +1655,9 @@ RPC- .\"O Used for describing RPC call messages. .\"O This routine is useful for users who wish to generate RPC-style .\"O messages without using the RPC package. -RPC ¸Æ¤Ó½Ð¤·¥á¥Ã¥»¡¼¥¸¤òµ­½Ò¤¹¤ë¤Î¤Ë»ÈÍѤ¹¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï RPC ¥Ñ¥Ã¥±¡¼¥¸¤ò»ÈÍѤ»¤º¤Ë -RPC-·Á¼°¤Î¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤·¤è¤¦¤È¤¹¤ë¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£ +RPC 呼び出しメッセージを記述するのに使用する。 +このルーティンは RPC パッケージを使用せずに +RPC-形式のメッセージを作成しようとする場合に便利である。 .LP .nf .BI "bool_t xdr_opaque_auth(XDR *" xdrs ", struct opaque_auth *" ap ); @@ -1666,9 +1666,9 @@ RPC- .\"O Used for describing RPC authentication information messages. .\"O This routine is useful for users who wish to generate .\"O RPC-style messages without using the RPC package. -PRC ǧ¾Ú¾ðÊó¥á¥Ã¥»¡¼¥¸¤òµ­½Ò¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï RPC ¥Ñ¥Ã¥±¡¼¥¸¤ò»ÈÍѤ»¤º¤Ë -RPC-·Á¼°¤Î¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤·¤è¤¦¤È¤¹¤ë¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£ +PRC 認証情報メッセージを記述するために使用する。 +このルーティンは RPC パッケージを使用せずに +RPC-形式のメッセージを作成しようとする場合に便利である。 .LP .nf .BI "bool_t xdr_pmap(XDR *" xdrs ", struct pmap *" regs ); @@ -1681,13 +1681,13 @@ RPC- .\"O these parameters without using the .\"O .B pmap .\"O interface. -³Æ¼ï¤Î +各種の .B portmap -¥×¥í¥·¥¸¥ã¤Ø¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ò³°ÉôŪ¤Ëµ­½Ò¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï +プロシジャへのパラメーターを外部的に記述するために使用する。 +このルーティンは .B pmap -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»ÈÍѤ»¤º¤Ë¡¢¤³¤ì¤é¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ò -ºîÀ®¤·¤¿¤¤¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£ +インターフェースを使用せずに、これらのパラメーターを +作成したい場合に便利である。 .LP .nf .BI "bool_t xdr_pmaplist(XDR *" xdrs ", struct pmaplist **" rp ); @@ -1698,11 +1698,11 @@ RPC- .\"O these parameters without using the .\"O .B pmap .\"O interface. -¥Ý¡¼¥È¤Î¥Þ¥Ã¥Ô¥ó¥°¤Î¥ê¥¹¥È¤ò³°ÉôŪ¤Ëµ­½Ò¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï +ポートのマッピングのリストを外部的に記述するために使用する。 +このルーティンは .B pmap -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»ÈÍѤ»¤º¤Ë¡¢¤³¤ì¤é¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ò -ºîÀ®¤·¤¿¤¤¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£ +インターフェースを使用せずに、これらのパラメーターを +作成したい場合に便利である。 .LP .nf .BI "bool_t xdr_rejected_reply(XDR *" xdrs ", struct rejected_reply *" rr ); @@ -1711,9 +1711,9 @@ RPC- .\"O Used for describing RPC reply messages. .\"O This routine is useful for users who wish to generate .\"O RPC-style messages without using the RPC package. -RPC ±þÅú¥á¥Ã¥»¡¼¥¸¤òµ­½Ò¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï -RPC ¥Ñ¥Ã¥±¡¼¥¸¤ò»ÈÍѤ»¤º¤Ë¡¢ -RPC-·Á¼°¤Î¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤·¤¿¤¤¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£ +RPC 応答メッセージを記述するために使用する。このルーティンは +RPC パッケージを使用せずに、 +RPC-形式のメッセージを作成したい場合に便利である。 .LP .nf .BI "bool_t xdr_replymsg(XDR *" xdrs ", struct rpc_msg *" rmsg ); @@ -1722,9 +1722,9 @@ RPC- .\"O Used for describing RPC reply messages. .\"O This routine is useful for users who wish to generate .\"O RPC style messages without using the RPC package. -RPC ±þÅú¥á¥Ã¥»¡¼¥¸¤òµ­½Ò¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï RPC ¥Ñ¥Ã¥±¡¼¥¸¤ò»ÈÍѤ»¤º¤Ë¡¢ -RPC ·Á¼°¤Î¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤·¤¿¤¤¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£ +RPC 応答メッセージを記述するために使用する。 +このルーティンは RPC パッケージを使用せずに、 +RPC 形式のメッセージを作成したい場合に便利である。 .LP .nf .BI "void xprt_register(SVCXPRT *" xprt ); @@ -1735,11 +1735,11 @@ RPC .\"O This routine modifies the global variable .\"O .IR svc_fds . .\"O Service implementors usually do not need this routine. -RPC ¥µ¡¼¥Ó¥¹ÄÌ¿®¥Ï¥ó¥É¥ë¤òÀ¸À®¤·¤¿¸å¤Ë¡¢¤½¤ì¤é¼«¿È¤ò -RPC ¥µ¡¼¥Ó¥¹¡¦¥Ñ¥Ã¥±¡¼¥¸¤ËÅÐÏ¿¤¹¤ëɬÍפ¬¤¢¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÂç°èÊÑ¿ô +RPC サービス通信ハンドルを生成した後に、それら自身を +RPC サービス・パッケージに登録する必要がある。 +このルーティンは大域変数 .I svc_fds -¤ò½¤Àµ¤¹¤ë¡£¥µ¡¼¥Ó¥¹¤Î¼ÂÁõ¼Ô¤ÏÄ̾¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏɬÍפʤ¤¡£ +を修正する。サービスの実装者は通常、このルーティンは必要ない。 .LP .nf .BI "void xprt_unregister(SVCXPRT *" xprt ); @@ -1750,22 +1750,22 @@ RPC .\"O This routine modifies the global variable .\"O .IR svc_fds . .\"O Service implementors usually do not need this routine. -RPC ¥µ¡¼¥Ó¥¹ÄÌ¿®¥Ï¥ó¥É¥ë¤òÇ˲õ¤¹¤ëÁ°¤Ë¡¢¤½¤ì¤ò -RPC ÄÌ¿®¥Ñ¥Ã¥±¡¼¥¸¤«¤éÅÐÏ¿²ò½ü¤¹¤ëɬÍפ¬¤¢¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÂç°èÊÑ¿ô +RPC サービス通信ハンドルを破壊する前に、それを +RPC 通信パッケージから登録解除する必要がある。 +このルーティンは大域変数 .I svc_fds -¤ò½¤Àµ¤¹¤ë¡£¥µ¡¼¥Ó¥¹¤Î¼ÂÁõ¼Ô¤ÏÄ̾¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏɬÍפʤ¤¡£ +を修正する。サービスの実装者は通常、このルーティンは必要ない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .\"O .\" We don't have an rpc_secure.3 page in the set at the moment -- MTK, 19 Sep 05 .\"O .\" .BR rpc_secure (3), -.\" º£¸½ºß¤Ï¡¢¤³¤ÎÇÛÉÛʪ (LDP_man-pages) ¤Ë¤Ï rpc_secure.3 ¤ÏÆþ¤Ã¤Æ¤¤¤Ê¤¤ +.\" 今現在は、この配布物 (LDP_man-pages) には rpc_secure.3 は入っていない .\" -- MTK, 19 Sep 05 .\" .BR rpc_secure (3), .BR xdr (3) .br .\"O The following manuals: -°Ê²¼¤Î¥Þ¥Ë¥å¥¢¥ë: +以下のマニュアル: .RS Remote Procedure Calls: Protocol Specification .br diff --git a/draft/man3/rpmatch.3 b/draft/man3/rpmatch.3 index c21a6a9c..2296e7e4 100644 --- a/draft/man3/rpmatch.3 +++ b/draft/man3/rpmatch.3 @@ -29,11 +29,11 @@ .\" .TH RPMATCH 3 2007-07-26 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O rpmatch \- determine if the answer to a question is affirmative or negative -rpmatch \- ¼ÁÌä¤Ø¤Î±þÅú¤¬¹ÎÄ꤫ÈÝÄ꤫¤òȽÄꤹ¤ë +rpmatch \- 質問への応答が肯定か否定かを判定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include @@ -43,21 +43,21 @@ rpmatch \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR rpmatch (): _SVID_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR rpmatch () .\"O handles a user response to yes or no questions, with .\"O support for internationalization. .BR rpmatch () -¤Ï yes/no ¤Î¼ÁÌä¤ËÂФ¹¤ë¥æ¡¼¥¶¤«¤é¤Î±þÅú¤ò½èÍý¤¹¤ë¡£ -¹ñºÝ²½ (I18N) ¤ËÂбþ¤·¤Æ¤¤¤ë¡£ +は yes/no の質問に対するユーザからの応答を処理する。 +国際化 (I18N) に対応している。 .\"O \fIresponse\fP should be a null-terminated string containing a .\"O user-supplied response, perhaps obtained with @@ -65,31 +65,31 @@ _SVID_SOURCE .\"O or .\"O .BR getline (3). .I response -¤Ë¤Ï¥æ¡¼¥¶¤«¤é¤Î±þÅú¤ò³ÊǼ¤·¤¿ NULL ½ªÃ¼Ê¸»úÎó¤¬Æþ¤Ã¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ -¤¿¤¤¤Æ¤¤¤Ï¡¢ +にはユーザからの応答を格納した NULL 終端文字列が入っている必要がある。 +たいていは、 .BR fgets (3) -¤ä +や .BR getline (3) -¤Ç¼è¤ê¹þ¤ó¤À¤â¤Î¤Ç¤¢¤í¤¦¡£ +で取り込んだものであろう。 .\"O The user's language preference is taken into account per the .\"O environment variables \fBLANG\fP, \fBLC_MESSAGES\fP, and \fBLC_ALL\fP, .\"O if the program has called .\"O .BR setlocale (3) .\"O to effect their changes. -¥×¥í¥°¥é¥à¤¬ +プログラムが .BR setlocale (3) -¤ò¸Æ¤Ó½Ð¤·¤Æ´Ä¶­ÊÑ¿ô¤ÎÊѹ¹¤òÍ­¸ú¤Ë¤·¤¿¾ì¹ç¡¢ -´Ä¶­ÊÑ¿ô \fBLANG\fP, \fBLC_MESSAGES\fP, \fBLC_ALL\fP ¤¬ -¥æ¡¼¥¶¤Î¸À¸ìÀßÄê¤È¤·¤Æ¹Í褵¤ì¤ë¡£ +を呼び出して環境変数の変更を有効にした場合、 +環境変数 \fBLANG\fP, \fBLC_MESSAGES\fP, \fBLC_ALL\fP が +ユーザの言語設定として考慮される。 .\"O Regardless of the locale, responses matching \fB^[Yy]\fP are always .\"O accepted as affirmative, and those matching \fB^[Nn]\fP are always .\"O accepted as negative. -¥í¥±¡¼¥ë¤Ë´Ø¤ï¤é¤º¡¢\fB^[Yy]\fP ¤Ë¥Þ¥Ã¥Á¤¹¤ë±þÅú¤Ï¾ï¤Ë¹ÎÄê¤À¤È²ò¼á¤µ¤ì¡¢ -\fB^[Nn]\fP ¤Ë¥Þ¥Ã¥Á¤¹¤ë±þÅú¤Ï¾ï¤ËÈÝÄê¤À¤È²ò¼á¤µ¤ì¤ë¡£ +ロケールに関わらず、\fB^[Yy]\fP にマッチする応答は常に肯定だと解釈され、 +\fB^[Nn]\fP にマッチする応答は常に否定だと解釈される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O After examining .\"O .IR response , .\"O .BR rpmatch () @@ -97,20 +97,20 @@ _SVID_SOURCE .\"O for a recognized positive response ("yes"), and \-1 when the value .\"O of \fIresponse\fP is unrecognized. .I response -¤ò¸¡ºº¤·¤¿¸å¡¢ +を検査した後、 .BR rpmatch () -¤ÏÈÝÄêŪ¤Ê±þÅú ("no") ¤Èǧ¼±¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤·¡¢ -¹ÎÄêŪ¤Ê±þÅú ("yes") ¤Èǧ¼±¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ +は否定的な応答 ("no") と認識した場合は 0 を返し、 +肯定的な応答 ("yes") と認識した場合は 1 を返す。 .I response -¤ÎÃͤò²ò¼á¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ +の値を解釈できなかった場合は \-1 を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O A return value of \-1 may indicate either an invalid input, or some .\"O other error. .\"O It is incorrect to only test if the return value is nonzero. -ÊÖ¤êÃÍ \-1 ¤¬Ê֤俾ì¹ç¡¢ÆþÎϤ¬ÉÔÀµ¤Ç¤¢¤Ã¤¿¤«¡¢Â¾¤Î²¿¤é¤«¤Î¥¨¥é¡¼¤¬ -¤¢¤Ã¤¿¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ÊÖ¤êÃͤ¬ 0 °Ê³°¤«¤É¤¦¤«¤ò³Îǧ¤¹¤ë¤À¤±¤Ç¤Ï -½½Ê¬¤Ç¤Ï¤Ê¤¤¡£ +返り値 \-1 が返った場合、入力が不正であったか、他の何らかのエラーが +あったことを意味する。返り値が 0 以外かどうかを確認するだけでは +十分ではない。 .\"O .BR rpmatch () .\"O can fail for any of the reasons that @@ -122,31 +122,31 @@ _SVID_SOURCE .\"O failure of the regex engine (but this case is indistinguishable from .\"O that of an unrecognized value of \fIresponse\fP). .BR rpmatch () -¤Ï¡¢ +は、 .BR regcomp (3) -¤ä +や .BR regexec (3) -¤¬¼ºÇÔ¤¹¤ëÍýͳ¤Î¤É¤ì¤«¤Ç¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ë¡£ -¥¨¥é¡¼¤Î¸¶°ø¤ò +が失敗する理由のどれかで失敗することがある。 +エラーの原因を .I errno -¤ä¾¤Î²¿¤«¤ÇÃΤ뤳¤È¤Ï¤Ç¤­¤Ê¤¤¤¬¡¢ +や他の何かで知ることはできないが、 .I errno -¤ÏÀµµ¬É½¸½¥¨¥ó¥¸¥ó¤Î¼ºÇԤθ¶°ø¤ò¼¨¤·¤Æ¤¤¤ë -(⤷¡¢¤³¤Î¥±¡¼¥¹¤È +は正規表現エンジンの失敗の原因を示している +(但し、このケースと .I response -¤ÎÃͤòǧ¼±¤Ç¤­¤º¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤ò¶èÊ̤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤)¡£ +の値を認識できずに失敗した場合を区別することはできない)。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR rpmatch () .\"O is not required by any standard, but .\"O is available on a few other systems. .BR rpmatch () -¤Ï¤É¤Îɸ½à¤Ç¤âɬ¿Ü¤È¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤¬¡¢ -Linux °Ê³°¤Ë¤âÍøÍѤǤ­¤ë¥·¥¹¥Æ¥à¤â¤¤¤¯¤Ä¤«¤Ï¸ºß¤¹¤ë¡£ +はどの標準でも必須となっていないが、 +Linux 以外にも利用できるシステムもいくつかは存在する。 .\"O .\" It is available on at least AIX 5.1 and FreeBSD 6.0. -.\" ¾¯¤Ê¤¯¤È¤â AIX 5.1 ¤È FreeBSD 6.0 ¤Ç¤ÏÍøÍѤǤ­¤ë¡£ +.\" 少なくとも AIX 5.1 と FreeBSD 6.0 では利用できる。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O The .\"O .BR rpmatch () .\"O implementation looks at only the first character @@ -159,26 +159,26 @@ Linux .\"O .BR regex (7)): .\"O \fB^([yY]|yes|YES)$\fP and \fB^([nN]|no|NO)$\fP. .BR rpmatch () -¤Î¼ÂÁõ¤Ï +の実装は .I response -¤ÎºÇ½é¤Î 1 ʸ»ú¤À¤±¤ò¸«¤Æ¤¤¤ë¤è¤¦¤Ç¤¢¤ë¡£¤½¤Î·ë²Ì¡¢ -"nyes" ¤Ï 0 ¤òÊÖ¤·¡¢ -"ynever; not in a million years" ¤Ï 1 ¤òÊÖ¤¹¤³¤È¤Ë¤Ê¤ë¡£ -ÆþÎÏʸ»úÎó¤ò¤â¤Ã¤È¸·Ì©¤Ë²ò¼á¤·¤¿Êý¤¬¤è¤¤¤À¤í¤¦¡£ -Î㤨¤Ð¡¢ +の最初の 1 文字だけを見ているようである。その結果、 +"nyes" は 0 を返し、 +"ynever; not in a million years" は 1 を返すことになる。 +入力文字列をもっと厳密に解釈した方がよいだろう。 +例えば、 .RB ( regex (7) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë³ÈÄ¥Àµµ¬É½¸½¤ò»È¤Ã¤Æ) -.BR ^([yY]|yes|YES)$ " ¤ä " ^([nN]|no|NO)$ -¤Ç²ò¼á¤¹¤ë¤Ê¤É¡£ +で説明されている拡張正規表現を使って) +.BR ^([yY]|yes|YES)$ " や " ^([nN]|no|NO)$ +で解釈するなど。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The following program displays the results when .\"O .BR rpmatch () .\"O is applied to the string given in the program's command-line argument. -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ç -»ØÄꤵ¤ì¤¿Ê¸»úÎó¤ò +以下のプログラムは、コマンドライン引き数で +指定された文字列を .BR rpmatch () -¤ËÅϤ·¤¿¾ì¹ç¤Î·ë²Ì¤òɽ¼¨¤¹¤ë¡£ +に渡した場合の結果を表示する。 .nf #define _SVID_SOURCE @@ -201,7 +201,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fgets (3), .BR getline (3), .BR nl_langinfo (3), diff --git a/draft/man3/rtime.3 b/draft/man3/rtime.3 index a5b102f2..01a5459c 100644 --- a/draft/man3/rtime.3 +++ b/draft/man3/rtime.3 @@ -12,11 +12,11 @@ .\" .TH RTIME 3 2010-02-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O rtime \- get time from a remote machine -rtime \- ¥ê¥â¡¼¥È¥Þ¥·¥ó¤«¤é»þ¹ï¤ò¼èÆÀ¤¹¤ë +rtime \- リモートマシンから時刻を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B "#include " .sp @@ -24,44 +24,44 @@ rtime \- .BI " struct rpc_timeval *" timeout ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This function uses the Time Server Protocol as described in .\"O RFC\ 868 to obtain the time from a remote machine. -¤³¤Î´Ø¿ô¤Ï RFC\ 868 ¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¥¿¥¤¥à¥µ¡¼¥Ð¥×¥í¥È¥³¥ë¤ò»ÈÍѤ·¡¢ -¥ê¥â¡¼¥È¥Þ¥·¥ó¤«¤é»þ¹ï¤ò¼èÆÀ¤¹¤ë¡£ +この関数は RFC\ 868 に記述されているタイムサーバプロトコルを使用し、 +リモートマシンから時刻を取得する。 .LP .\"O The Time Server Protocol gives the time in seconds since .\"O 00:00:00 UTC, 1 Jan 1900, .\"O and this function subtracts the appropriate constant in order to .\"O convert the result to seconds since the .\"O Epoch, 1970-01-01 00:00:00 +0000 (UTC). -¥¿¥¤¥à¥µ¡¼¥Ð¥×¥í¥È¥³¥ë¤Ï 00:00:00 UTC, 1 Jan 1900 ¤«¤éÉÿô¤òÄ󶡤¹¤ë¤Î¤Ç¡¢ -¤³¤Î´Ø¿ô¤ÏŬÀÚ¤ÊÄê¿ôÃͤò°ú¤¯¤³¤È¤Ë¤è¤ê¡¢ -Ä󶡤µ¤ì¤¿Ãͤò Unix ¤Ë¤ª¤±¤ë»þ¹ïµª¸µ (1970-01-01 00:00:00 +0000 (UTC)) -¤«¤éÉÿô¤ËÊÑ´¹¤¹¤ë¡£ +タイムサーバプロトコルは 00:00:00 UTC, 1 Jan 1900 から秒数を提供するので、 +この関数は適切な定数値を引くことにより、 +提供された値を Unix における時刻紀元 (1970-01-01 00:00:00 +0000 (UTC)) +から秒数に変換する。 .LP .\"O When .\"O .I timeout .\"O is non-NULL, the udp/time socket (port 37) is used. .I timeout -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢udp/time ¥½¥±¥Ã¥È (¥Ý¡¼¥È 37) ¤¬»ÈÍѤµ¤ì¤ë¡£ +が NULL でない場合、udp/time ソケット (ポート 37) が使用される。 .\"O Otherwise, the tcp/time socket (port 37) is used. -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢tcp/time ¥½¥±¥Ã¥È (¥Ý¡¼¥È 37) ¤¬»ÈÍѤµ¤ì¤ë¡£ +それ以外の場合、tcp/time ソケット (ポート 37) が使用される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, 0 is returned, and the obtained 32-bit time value is stored in .\"O .IR timep\->tv_sec . -À®¸ù¤·¤¿¾ì¹ç¤Ï¡¢0 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ÆÀ¤é¤ì¤¿ 32 ¥Ó¥Ã¥È¤Î»þ¹ïÃÍ¤Ï +成功した場合は、0 が返されて、得られた 32 ビットの時刻値は .I timep\->tv_sec -¤Ë³ÊǼ¤µ¤ì¤ë¡£ +に格納される。 .\"O In case of error \-1 is returned, and .\"O .I errno .\"O is set appropriately. -¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +エラーの場合は、\-1 が返されて、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O All errors for underlying functions .\"O .RB ( sendto (2), .\"O .BR poll (2), @@ -70,26 +70,26 @@ rtime \- .\"O .BR read (2)) .\"O can occur. .\"O Moreover: -ÆâÉô¤Ç»ÈÍѤ·¤Æ¤¤¤ë´Ø¿ô +内部で使用している関数 .RB ( sendto (2), .BR poll (2), .BR recvfrom (2), .BR connect (2), .BR read (2)) -¤ÎÁ´¤Æ¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¹¹¤Ë¼¡¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë²ÄǽÀ­¤¬¤¢¤ë: +の全てのエラーが起こる可能性がある。 +更に次のエラーが起こる可能性がある: .TP .B EIO .\"O The number of returned bytes is not 4. -ÊÖ¤µ¤ì¤¿¥Ð¥¤¥È¿ô¤¬ 4 ¥Ð¥¤¥È¤Ç¤Ê¤¤¡£ +返されたバイト数が 4 バイトでない。 .TP .B ETIMEDOUT .\"O The waiting time as defined in timeout has expired. -timeout ¤ÇÄêµÁ¤µ¤ì¤¿ÂÔ¤Á»þ´Ö¤Î´ü¸Â¤¬Àڤ줿¡£ +timeout で定義された待ち時間の期限が切れた。 .\"O .SH "NOTES" -.SH Ãí°Õ +.SH 注意 .\"O Only IPv4 is supported. -IPv4 ¤Î¤ß¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +IPv4 のみがサポートされている。 .LP .\"O Some .\"O .I in.timed @@ -98,9 +98,9 @@ IPv4 .\"O .I use_tcp .\"O set to 1. .I in.timed -¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤Ã¤Æ¤Ï TCP ¤·¤«¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¤â¤Î¤â¤¢¤ë¡£ +のバージョンによっては TCP しかサポートしていないものもある。 .I use_tcp -¤ò 1 ¤ËÀßÄꤷ¤Æ¡¢Îã¤Ë¤¢¤ë¥×¥í¥°¥é¥à¤ò»î¤¹¤³¤È¡£ +を 1 に設定して、例にあるプログラムを試すこと。 .LP .\"O Libc5 uses the prototype .\"O .br @@ -110,39 +110,39 @@ IPv4 .\"O .I .\"O instead of .\"O .IR . -libc5 ¤Ï¥×¥í¥È¥¿¥¤¥× +libc5 はプロトタイプ .br int rtime(struct sockaddr_in *, struct timeval *, struct timeval *); .br -¤ò»È¤¤¡¢ +を使い、 .I -¤ÎÂå¤ï¤ê¤Ë +の代わりに .I -¤òɬÍפȤ¹¤ë¡£ +を必要とする。 .\"O .SH "BUGS" -.SH ¥Ð¥° +.SH バグ .\"O .BR rtime () .\"O in glibc and earlier does not work properly on 64-bit machines. -glibc 2.2.5 °ÊÁ°¤Î +glibc 2.2.5 以前の .BR rtime () -¤Ï¡¢64 ¥Ó¥Ã¥È¥Þ¥·¥ó¤ÇÀµ³Î¤ËÆ°ºî¤·¤Ê¤¤¡£ +は、64 ビットマシンで正確に動作しない。 .\"O .SH "EXAMPLE" -.SH Îã +.SH 例 .\"O This example requires that port 37 is up and open. .\"O You may check .\"O that the time entry within .\"O .I /etc/inetd.conf .\"O is not commented out. -¤³¤ÎÎã¤Ç¤Ï¥Ý¡¼¥È 37 ¤¬¥¢¥Ã¥×¤µ¤ì¤Æ¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ +この例ではポート 37 がアップされてオープンされている必要がある。 .I /etc/inetd.conf -¤Î time ¥¨¥ó¥È¥ê¤¬¥³¥á¥ó¥È¥¢¥¦¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò³Îǧ¤·¤Æ¤Û¤·¤¤¡£ +の time エントリがコメントアウトされていないことを確認してほしい。 .br .\"O The program connects to a computer called "linux". .\"O Using "localhost" does not work. .\"O The result is the localtime of the computer "linux". -¤³¤Î¥×¥í¥°¥é¥à¤Ï "linux" ¤È¤¤¤¦¥³¥ó¥Ô¥å¡¼¥¿¤ËÀܳ¤¹¤ë¡£ -"localhost" ¤ò»È¤Ã¤¿¾ì¹ç¤ÏÆ°ºî¤·¤Ê¤¤¡£ -·ë²Ì¤Ï¥³¥ó¥Ô¥å¡¼¥¿ "linux" ¤Î¥í¡¼¥«¥ë»þ¹ï¤Ç¤¢¤ë¡£ +このプログラムは "linux" というコンピュータに接続する。 +"localhost" を使った場合は動作しない。 +結果はコンピュータ "linux" のローカル時刻である。 .sp .nf #include @@ -180,7 +180,7 @@ main(void) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .\" .BR netdate (1), .BR ntpdate (1), .\" .BR rdate (1), diff --git a/draft/man3/rtnetlink.3 b/draft/man3/rtnetlink.3 index eb736472..a8a40133 100644 --- a/draft/man3/rtnetlink.3 +++ b/draft/man3/rtnetlink.3 @@ -11,14 +11,14 @@ .\" by Shouichi Saito .\" Proofed Fri Aug 20 1999 by NAKANO Takeo .\" -.\"WORD: running length ¼ÂÆ°»þ¤ÎŤµ +.\"WORD: running length 実動時の長さ .\" .TH RTNETLINK 3 2010-01-11 "GNU" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 .\"O rtnetlink \- macros to manipulate rtnetlink messages -rtnetlink \- rtnetlink ¥á¥Ã¥»¡¼¥¸¤òÁàºî¤¹¤ë¥Þ¥¯¥í +rtnetlink \- rtnetlink メッセージを操作するマクロ .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include @@ -42,7 +42,7 @@ rtnetlink \- rtnetlink .BI "unsigned int RTA_LENGTH(unsigned int " length ); .sp .BI "unsigned int RTA_SPACE(unsigned int "length ); -.SH ÀâÌÀ +.SH 説明 .\"O All .\"O .BR rtnetlink (7) .\"O messages consist of a @@ -50,12 +50,12 @@ rtnetlink \- rtnetlink .\"O message header and appended attributes. .\"O The attributes should be only .\"O manipulated using the macros provided here. -Á´¤Æ¤Î +全ての .BR rtnetlink (7) -¥á¥Ã¥»¡¼¥¸¤Ï +メッセージは .BR netlink (7) -¥á¥Ã¥»¡¼¥¸¥Ø¥Ã¥À¤ÈÄɲðÀ­¤«¤é¤Ê¤ë¡£ -°À­¤ÎÁàºî¤Ï¡¢É¬¤º¤³¤³¤Ëµó¤²¤¿¥Þ¥¯¥í¤òÄ̤·¤Æ¹Ô¤¦¤Ù¤­¤Ç¤¢¤ë¡£ +メッセージヘッダと追加属性からなる。 +属性の操作は、必ずここに挙げたマクロを通して行うべきである。 .PP .\"O .BI RTA_OK( rta ", " attrlen ) .\"O returns true if @@ -64,77 +64,77 @@ rtnetlink \- rtnetlink .\"O .I attrlen .\"O is the running length of the attribute buffer. .BI RTA_OK( rta ", " attrlen ) -¤Ï +は .I rta -¤¬Í­¸ú¤Ê¥ë¡¼¥Æ¥£¥ó¥°Â°À­¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ì¤Ð¿¿¤òÊÖ¤¹¡£ +が有効なルーティング属性へのポインタであれば真を返す。 .I attrlen -¤Ï°À­¥Ð¥Ã¥Õ¥¡¤Î¼ÂƯ»þ¤ÎŤµ (running length) ¤Ç¤¢¤ë¡£ +は属性バッファの実働時の長さ (running length) である。 .\"O When not true then you must assume there are no more attributes in the .\"O message, even if .\"O .I attrlen .\"O is nonzero. -¿¿¤Ç¤Ê¤±¤ì¤Ð¡¢Î㤨 +真でなければ、例え .I attrlen -¤¬¥¼¥í¤Ç¤Ê¤¯¤Æ¤â¡¢ -¥á¥Ã¥»¡¼¥¸Ãæ¤Ë¤Ï¤â¤¦¤½¤ì°Ê¾å°À­¤Ï̵¤¤¤È¹Í¤¨¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +がゼロでなくても、 +メッセージ中にはもうそれ以上属性は無いと考えなければならない。 .PP .\"O .BI RTA_DATA( rta ) .\"O returns a pointer to the start of this attribute's data. .BI RTA_DATA( rta ) -¤Ï¤³¤Î°À­¥Ç¡¼¥¿¤ÎÀèƬ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +はこの属性データの先頭へのポインタを返す。 .PP .\"O .BI RTA_PAYLOAD( rta ) .\"O returns the length of this attribute's data. .BI RTA_PAYLOAD( rta ) -¤Ï¤³¤Î°À­¥Ç¡¼¥¿¤ÎŤµ¤òÊÖ¤¹¡£ +はこの属性データの長さを返す。 .PP .\"O .BI RTA_NEXT( rta ", " attrlen ) .\"O gets the next attribute after .\"O .IR rta . .BI RTA_NEXT( rta ", " attrlen ) -¤Ï +は .I rta -¤Î¼¡¤Ë¤¢¤ë°À­¤ò¼èÆÀ¤¹¤ë¡£ +の次にある属性を取得する。 .\"O Calling this macro will update .\"O .IR attrlen . .\"O You should use .\"O .B RTA_OK .\"O to check the validity of the returned pointer. -¤³¤Î¥Þ¥¯¥í¤ò¸Æ¤Ö¤È +このマクロを呼ぶと .I attrlen -¤¬¹¹¿·¤µ¤ì¤ë¡£ +が更新される。 .B RTA_OK -¤ò»È¤Ã¤Æ¡¢ÊÖ¤µ¤ì¤¿¥Ý¥¤¥ó¥¿¤¬Àµ¤·¤¤¤«¤ò¥Á¥§¥Ã¥¯¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +を使って、返されたポインタが正しいかをチェックすべきである。 .PP .\"O .BI RTA_LENGTH( len ) .\"O returns the length which is required for .\"O .I len .\"O bytes of data plus the header. .BI RTA_LENGTH( len ) -¤Ï +は .I len -¥Ð¥¤¥È¤Î¥Ç¡¼¥¿ + ¥Ø¥Ã¥À¤ËɬÍפÊŤµ¤òÊÖ¤¹¡£ +バイトのデータ + ヘッダに必要な長さを返す。 .PP .\"O .BI RTA_SPACE( len ) .\"O returns the amount of space which will be needed in a message with .\"O .I len .\"O bytes of data. .BI RTA_SPACE( len ) -¤Ï +は .I len -¥Ð¥¤¥È¤Î¥Ç¡¼¥¿¤ò»ý¤Ä¥á¥Ã¥»¡¼¥¸¤ËɬÍפȤµ¤ì¤ëÍÆÎ̤òÊÖ¤¹¡£ +バイトのデータを持つメッセージに必要とされる容量を返す。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O These macros are nonstandard Linux extensions. -¤³¤ì¤é¤Î¥Þ¥¯¥í¤ÏÈóɸ½à¤Ç¡¢Linux ¤Ç¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH ¥Ð¥° +これらのマクロは非標準で、Linux での拡張である。 +.SH バグ .\"O This manual page is incomplete. -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Ï´°Á´¤Ç¤Ï¤Ê¤¤¡£ -.SH Îã +このマニュアルは完全ではない。 +.SH 例 .\" FIXME ? would be better to use libnetlink in the EXAMPLE code here .\"O .\"O Creating a rtnetlink message to set the MTU of a device. -¥Ç¥Ð¥¤¥¹¤Î MTU ¤ò¥»¥Ã¥È¤¹¤ë rtnetlink ¥á¥Ã¥»¡¼¥¸¤òÀ¸À®¤¹¤ë +デバイスの MTU をセットする rtnetlink メッセージを生成する .nf #include @@ -167,7 +167,7 @@ rtnetlink \- rtnetlink memcpy(RTA_DATA(rta), &mtu, sizeof(mtu)); send(rtnetlink_sk, &req, req.nh.nlmsg_len); .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR netlink (3), .BR netlink (7), .BR rtnetlink (7) diff --git a/draft/man3/scalb.3 b/draft/man3/scalb.3 index c62d0bbd..75eafa12 100644 --- a/draft/man3/scalb.3 +++ b/draft/man3/scalb.3 @@ -30,12 +30,12 @@ .\" .TH SCALB 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O scalb, scalbf, scalbl \- multiply floating-point number .\"O by integral power of radix (OBSOLETE) -scalb, scalbf, scalbl \- ÉâÆ°¾®¿ôÅÀ¿ô¤ËÀ°¿ô¤Ç¤¢¤ë´ð¿ô¤ÎÎß¾è¤ò³Ý¤±¤ë (ÇÑ»ßͽÄê) +scalb, scalbf, scalbl \- 浮動小数点数に整数である基数の累乗を掛ける (廃止予定) .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double scalb(double " x ", double " exp ); @@ -45,14 +45,14 @@ scalb, scalbf, scalbl \- .BI "long double scalbl(long double " x ", double " exp ); .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -69,7 +69,7 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 600 .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions multiply their first argument .\"O .I x .\"O by @@ -78,15 +78,15 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 600 .\"O to the power of .\"O .IR exp , .\"O that is: -¤³¤ì¤é¤Î´Ø¿ô¤ÏºÇ½é¤Î°ú¤­¿ô +これらの関数は最初の引き数 .I x -¤Ë +に .B FLT_RADIX -¤Î +の .I exp -¾è¤ò³Ý¤±¤ë +乗を掛ける .RB ( FLT_RADIX -¤Ï¤ª¤½¤é¤¯ 2 ¤Ç¤¢¤ë)¡£¤Ä¤Þ¤ê¡¢°Ê²¼¤Î¼°¤ÎÃͤòÊÖ¤¹¡£ +はおそらく 2 である)。つまり、以下の式の値を返す。 .nf x * FLT_RADIX ** exp @@ -97,15 +97,15 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 600 .\"O can be obtained by including .\"O .I . .B FLT_RADIX -¤ÎÄêµÁ¤Ï +の定義は .I -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤³¤È¤ÇÆÀ¤é¤ì¤ë¡£ +をインクルードすることで得られる。 .\"O .\" not in /usr/include but in a gcc lib -.\" /usr/include ¤Ç¤Ï¤Ê¤¯¡¢gcc ¤Î lib ¤Ë¤¢¤ë¡£ +.\" /usr/include ではなく、gcc の lib にある。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return \fIx\fP * \fBFLT_RADIX\fP ** \fIexp\fP. -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï \fIx\fP * \fBFLT_RADIX\fP ** \fIexp\fP ¤òÊÖ¤¹¡£ +成功すると、これらの関数は \fIx\fP * \fBFLT_RADIX\fP ** \fIexp\fP を返す。 .\"O If .\"O .I x @@ -113,9 +113,9 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 600 .\"O .I exp .\"O is a NaN, a NaN is returned. .I x -¤« +か .I exp -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x @@ -125,9 +125,9 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 600 .\"O is not negative infinity, .\"O positive infinity (negative infinity) is returned. .I x -¤¬Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤Ç +が正の無限大 (負の無限大) で .I exp -¤¬Éé¤Î̵¸ÂÂç¤Ç¤Ê¤¤¾ì¹ç¡¢Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が負の無限大でない場合、正の無限大 (負の無限大) が返される。 .\"O If .\"O .I x @@ -135,9 +135,9 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 600 .\"O .I exp .\"O is not positive infinity, +0 (\-0) is returned. .I x -¤¬ +0 (\-0) ¤Ç +が +0 (\-0) で .I exp -¤¬Àµ¤Î̵¸ÂÂç¤Ç¤Ê¤¤¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大でない場合、+0 (\-0) が返される。 .\"O If .\"O .I x @@ -147,10 +147,10 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 600 .\"O a domain error occurs, and .\"O a NaN is returned. .I x -¤¬¥¼¥í¤Ç +がゼロで .I exp -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ -NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大の場合、領域エラー (domain error) が発生し、 +NaN が返される。 .\"O If .\"O .I x @@ -161,10 +161,10 @@ NaN .\"O a domain error occurs, and .\"O a NaN is returned. .I x -¤¬Ìµ¸ÂÂç¤Ç +が無限大で .I exp -¤¬Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ -NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が負の無限大の場合、領域エラー (domain error) が発生し、 +NaN が返される。 .\"O If the result overflows, .\"O a range error occurs, @@ -175,88 +175,88 @@ NaN .\"O .BR HUGE_VALL , .\"O respectively, with a sign the same as .\"O .IR x . -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ -ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +結果がオーバーフローする場合、 +範囲エラー (range error) が発生し、 +各関数はそれぞれ .BR HUGE_VAL , .BR HUGE_VALF , .BR HUGE_VALL -¤òÊÖ¤¹¡£Éä¹æ¤Ï +を返す。符号は .I x -¤ÈƱ¤¸¤Ë¤Ê¤ë¡£ +と同じになる。 .\"O If the result underflows, .\"O a range error occurs, .\"O and the functions return zero, with a sign the same as .\"O .IR x . -·ë²Ì¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï 0 ¤òÊÖ¤¹¡£Éä¹æ¤Ï +結果がアンダーフローする場合、範囲エラーが発生し、 +各関数は 0 を返す。符号は .I x -¤ÈƱ¤¸¤Ë¤Ê¤ë¡£ +と同じになる。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Domain error: \fIx\fP is 0, and \fIexp\fP is positive infinity, \ .\"O or \fIx\fP is positive infinity and \fIexp\fP is negative infinity \ .\"O and the other argument is not a NaN -.\"Omotoki: °ú¤­¿ô¤Ï x, exp ¤ÎÆó¤Ä¤ÇξÊý¤È¤â¾ò·ï¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢ -.\"Omotoki: ¾¤Î°ú¤­¿ô¤Ë´Ø¤¹¤ëµ­½Ò¤Ï°ÕÌ£¤¬¤Ê¤¤¤È»×¤ï¤ì¤ë¡£ÏÂÌõ¤Ç¤Ï¾Êά¤¹¤ë¡£ -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬ 0 ¤Ç \fIexp\fP ¤¬Àµ¤Î̵¸ÂÂç¡¢\ -¤Þ¤¿¤Ï \fIx\fP ¤¬Àµ¤Î̵¸ÂÂç¤Ç \fIexp\fP ¤¬Éé¤Î̵¸ÂÂç +.\"Omotoki: 引き数は x, exp の二つで両方とも条件に含まれているので、 +.\"Omotoki: 他の引き数に関する記述は意味がないと思われる。和訳では省略する。 +領域エラー (domain error): \fIx\fP が 0 で \fIexp\fP が正の無限大、\ +または \fIx\fP が正の無限大で \fIexp\fP が負の無限大 .\" .I errno .\" is set to .\" .BR EDOM . .\"O An invalid floating-point exception .\"O .RB ( FE_INVALID ) .\"O is raised. -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP .\"O Range error, overflow -ÈÏ°Ï¥¨¥é¡¼ (range error)¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ +範囲エラー (range error)、オーバーフロー .\" .I errno .\" is set to .\" .BR ERANGE . .\"O An overflow floating-point exception .\"O .RB ( FE_OVERFLOW ) .\"O is raised. -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP .\"O Range error, underflow -ÈÏ°Ï¥¨¥é¡¼ (range error)¡¢¥¢¥ó¥À¡¼¥Õ¥í¡¼ +範囲エラー (range error)、アンダーフロー .\" .I errno .\" is set to .\" .BR ERANGE . .\"O An underflow floating-point exception .\"O .RB ( FE_UNDERFLOW ) .\"O is raised. -¥¢¥ó¥À¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +アンダーフロー浮動小数点例外 .RB ( FE_UNDERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP .\"O These functions do not set .\"O .IR errno . -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6803 .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6804 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR scalb () .\"O is specified in POSIX.1-2001, but marked obsolescent. .\"O POSIX.1-2008 removes the specification of @@ -271,16 +271,16 @@ NaN .\"O .BR scalb () .\"O function is from 4.3BSD. .BR scalb () -¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¤¬¡¢ÇÑ»ßͽÄê¤È¤µ¤ì¤Æ¤¤¤ë¡£ -POSIX.1-2008 ¤Ç¤Ï +は POSIX.1-2001 で規定されているが、廃止予定とされている。 +POSIX.1-2008 では .BR scalb () -¤Î»ÅÍͤϺï½ü¤µ¤ì¤Æ¤ª¤ê¡¢Âå¤ï¤ê¤Ë +の仕様は削除されており、代わりに .BR scalbln (3), .BR scalblnf (3), .BR scalblnl (3) -¤Î»ÈÍѤ¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£ +の使用が推奨されている。 .BR scalb () -´Ø¿ô¤Ï 4.3BSD ¤ËͳÍ褹¤ë¡£ +関数は 4.3BSD に由来する。 .\"O .BR scalbf () .\"O and @@ -289,15 +289,15 @@ POSIX.1-2008 .\"O .BR scalbf () .\"O is nevertheless present on several other systems .BR scalbf () -¤È +と .BR scalbl () -¤Ïɸ½à²½¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤½¤ì¤Ë¤â´Ø¤ï¤é¤º¡¢ +は標準化されていない。 +それにも関わらず、 .BR scalbf () -¤Ï¤¤¤¯¤Ä¤«¤Î¾¤Î¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¡£ +はいくつかの他のシステムに存在する。 .\" Looking at header files: scalbf() is present on the .\" BSDs, Tru64, HP-UX 11, Irix 6.5; scalbl() is on HP-UX 11 and Tru64. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ldexp (3), .BR scalbln (3) diff --git a/draft/man3/scandir.3 b/draft/man3/scandir.3 index f58f3ef1..ca8aa73e 100644 --- a/draft/man3/scandir.3 +++ b/draft/man3/scandir.3 @@ -42,11 +42,11 @@ .\" .TH SCANDIR 3 2011-09-08 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O scandir, alphasort, versionsort \- scan a directory for matching entries -scandir, alphasort, versionsort \- ¥Ç¥£¥ì¥¯¥È¥ê¤òÁöºº¤¹¤ë +scandir, alphasort, versionsort \- ディレクトリを走査する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -64,9 +64,9 @@ scandir, alphasort, versionsort \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR scandir (), @@ -76,7 +76,7 @@ _BSD_SOURCE || _SVID_SOURCE .BR versionsort (): _GNU_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR scandir () .\"O function scans the directory \fIdirp\fP, calling @@ -91,25 +91,25 @@ _GNU_SOURCE .\"O which is allocated via .\"O .BR malloc (3). .\"O If \fIfilter\fP is NULL, all entries are selected. -´Ø¿ô +関数 .BR scandir () -¤Ï¥Ç¥£¥ì¥¯¥È¥ê \fIdirp\fP ¤òÁöºº¤·¡¢ -¥Ç¥£¥ì¥¯¥È¥ê¤Î³Æ¥¨¥ó¥È¥ê¤ò°ú¤­¿ô¤È¤·¤Æ +はディレクトリ \fIdirp\fP を走査し、 +ディレクトリの各エントリを引き数として .BR filter () -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .BR filter () -¤¬ 0 °Ê³°¤ÎÃͤòÊÖ¤¹¥¨¥ó¥È¥ê¤Ï +が 0 以外の値を返すエントリは .BR malloc (3) -¤Ë¤è¤Ã¤Æ -³ÎÊݤµ¤ì¤¿Ê¸»úÎó¤ËÊݸ¤µ¤ì¡¢Èæ³Ó´Ø¿ô +によって +確保された文字列に保存され、比較関数 .BR compar () -¤òÍѤ¤¤Æ +を用いて .BR qsort (3) -¤Ë¤è¤ê¥½¡¼¥È¤µ¤ì¡¢ +によりソートされ、 .BR malloc (3) -¤Ë¤è¤ê³ÎÊݤµ¤ì¤¿ÇÛÎó -\fInamelist\fP ¤Ë¤Þ¤È¤á¤é¤ì¤ë¡£ -\fIfilter\fP ¤¬ NULL ¤Ê¤é¤Ð¡¢¤¹¤Ù¤Æ¤Î¥¨¥ó¥È¥ê¤¬ÁªÂò¤µ¤ì¤ë¡£ +により確保された配列 +\fInamelist\fP にまとめられる。 +\fIfilter\fP が NULL ならば、すべてのエントリが選択される。 .LP .\"O The .\"O .BR alphasort () @@ -117,36 +117,36 @@ _GNU_SOURCE .\"O .BR versionsort () .\"O functions can be used as the comparison function .\"O .IR compar (). -Èæ³Ó´Ø¿ô +比較関数 .IR compar () -¤Ë¤Ï +には .BR alphasort () -´Ø¿ô¤È +関数と .BR versionsort () -´Ø¿ô¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +関数を使うことができる。 .\"O The former sorts directory entries using .\"O .BR strcoll (3), .\"O the latter using .\"O .BR strverscmp (3) .\"O on the strings \fI(*a)\->d_name\fP and \fI(*b)\->d_name\fP. .BR alphasort () -¤Ï +は .BR strcoll (3) -¤òÍѤ¤¤Æ¥Ç¥£¥ì¥¯¥È¥ê¥¨¥ó¥È¥ê¤ò¥½¡¼¥È¤·¡¢ +を用いてディレクトリエントリをソートし、 .BR versionsort () -¤Ïʸ»úÎó \fI(*a)\->d_name\fP ¤È \fI(*b)\->d_name\fP ¤ËÂФ·¤Æ +は文字列 \fI(*a)\->d_name\fP と \fI(*b)\->d_name\fP に対して .BR strverscmp (3) -¤òÍѤ¤¤ë¡£ +を用いる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR scandir () .\"O function returns the number of directory entries .\"O selected or \-1 if an error occurs. -´Ø¿ô +関数 .BR scandir () -¤ÏÁªÂò¤µ¤ì¤¿¥¨¥ó¥È¥ê¤Î¿ô¤«¡¢ -(¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç) \-1 ¤òÊÖ¤¹¡£ +は選択されたエントリの数か、 +(エラーが発生した場合) \-1 を返す。 .PP .\"O The .\"O .BR alphasort () @@ -155,34 +155,34 @@ _GNU_SOURCE .\"O functions return an integer less than, equal to, .\"O or greater than zero if the first argument is considered to be .\"O respectively less than, equal to, or greater than the second. -´Ø¿ô +関数 .BR alphasort () -¤È +と .BR versionsort () -¤Ï 1 ÈÖÌܤΰú¤­¿ô¤¬ 2 ÈÖÌܤΰú¤­¿ô¤ËÂФ·¤Æ¡¢ -[¾®¤µ¤¤/Åù¤·¤¤/Â礭¤¤] ¤«¤Ë±þ¤¸¤Æ¡¢0 ¤è¤ê [¾®¤µ¤¤/Åù¤·¤¤/Â礭¤¤] ÃͤòÊÖ¤¹¡£ +は 1 番目の引き数が 2 番目の引き数に対して、 +[小さい/等しい/大きい] かに応じて、0 より [小さい/等しい/大きい] 値を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B ENOENT .\"O The path in \fIdirp\fR does not exist. -\fIdirp\fR ¤Ç»ØÄꤵ¤ì¤¿¥Ñ¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£ +\fIdirp\fR で指定されたパスが存在しない。 .TP .B ENOMEM .\"O Insufficient memory to complete the operation. -Æ°ºî¤ò´°¿ë¤¹¤ë¤Ë¤Ï¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£ +動作を完遂するにはメモリが足りない。 .TP .B ENOTDIR .\"O The path in \fIdirp\fR is not a directory. -\fIdirp\fR ¤Ç»ØÄꤵ¤ì¤¿¥Ñ¥¹¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£ +\fIdirp\fR で指定されたパスがディレクトリではない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR versionsort () .\"O was added to glibc in version 2.1. .BR versionsort () -¤Ï¡¢glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤ÇÄɲ䵤줿¡£ +は、glibc バージョン 2.1 で追加された。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR alphasort () .\"O and .\"O .BR scandir () @@ -190,24 +190,24 @@ _GNU_SOURCE .\"O .BR versionsort () .\"O is a GNU extension. .BR alphasort () -¤È +と .BR scandir () -¤Ï POSIX.1-2008 ¤Çµ¬Äꤵ¤ì¤Æ¤ª¤ê¡¢¹­¤¯ÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +は POSIX.1-2008 で規定されており、広く利用可能である。 .BR versionsort () -¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ë¡£ +は GNU 拡張である。 .LP .\"O The functions .\"O .BR scandir () .\"O and .\"O .BR alphasort () .\"O are from 4.3BSD, and have been available under Linux since libc4. -´Ø¿ô +関数 .BR scandir () -¤È +と .BR alphasort () -¤Ï 4.3BSD ¤«¤é¼è¤êÆþ¤ì¤é¤ì¡¢Linux ¤Ç¤Ï libc4 ¤«¤é»ÈÍѲÄǽ¤Ë¤Ê¤Ã¤¿¡£ +は 4.3BSD から取り入れられ、Linux では libc4 から使用可能になった。 .\"O Libc4 and libc5 use the more precise prototype -libc4 ¤È libc5 ¤Ç¤Ï°Ê²¼¤Î¤è¤¦¤Ê¤â¤Ã¤È¾ÜºÙ¤Ê¥×¥í¥È¥¿¥¤¥×¤ò»È¤Ã¤Æ¤¤¤ë¡£ +libc4 と libc5 では以下のようなもっと詳細なプロトタイプを使っている。 .sp .nf int alphasort(const struct dirent ** a, @@ -215,14 +215,14 @@ libc4 .fi .sp .\"O but glibc 2.0 returns to the imprecise BSD prototype. -¤·¤«¤· glibc 2.0 ¤Ç¤ÏÉÔÀµ³Î¤Ê BSD ¤Î¥×¥í¥È¥¿¥¤¥×¤ËÌá¤Ã¤¿¡£ +しかし glibc 2.0 では不正確な BSD のプロトタイプに戻った。 .LP .\"O The function .\"O .BR versionsort () .\"O is a GNU extension, available since glibc 2.1. -´Ø¿ô +関数 .BR versionsort () -¤Ï GNU ¤Î³ÈÄ¥¤Ç¤¢¤ê¡¢glibc 2.1 °Ê¹ß¤Ç»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ +は GNU の拡張であり、glibc 2.1 以降で使用可能である。 .LP .\"O Since glibc 2.1, .\"O .BR alphasort () @@ -230,21 +230,21 @@ libc4 .\"O .BR strcoll (3); .\"O earlier it used .\"O .BR strcmp (3). -glibc 2.1 °Ê¹ß¤Ç¤Ï +glibc 2.1 以降では .BR alphasort () -¤Ï +は .BR strcoll (3) -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .BR alphasort () -¤Ï°ÊÁ°¤Ï +は以前は .BR strcmp (3) -¤ò»È¤Ã¤Æ¤¤¤¿¡£ +を使っていた。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .nf #define _SVID_SOURCE .\"O /* print files in current directory in reverse order */ -/* ¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Õ¥¡¥¤¥ë¤òµÕ½ç¤Ë½ÐÎϤ¹¤ë */ +/* カレントディレクトリのファイルを逆順に出力する */ #include int @@ -266,7 +266,7 @@ main(void) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR closedir (3), .BR fnmatch (3), .BR opendir (3), diff --git a/draft/man3/scanf.3 b/draft/man3/scanf.3 index d5964874..45e5480d 100644 --- a/draft/man3/scanf.3 +++ b/draft/man3/scanf.3 @@ -54,16 +54,16 @@ .\" Updated 2005-09-18, Akihiro MOTOKI .\" Updated 2008-08-11, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: conversion specifications ÊÑ´¹»ØÄê -.\"WORD: type modifier ·¿½¤¾þ»Ò +.\"WORD: conversion specifications 変換指定 +.\"WORD: type modifier 型修飾子 .\" .TH SCANF 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O scanf, fscanf, sscanf, vscanf, vsscanf, vfscanf \- input format conversion -scanf, fscanf, sscanf, vscanf, vsscanf, vfscanf \- ½ñ¼°ÉÕ¤­ÆþÎÏÊÑ´¹ +scanf, fscanf, sscanf, vscanf, vsscanf, vfscanf \- 書式付き入力変換 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include @@ -81,9 +81,9 @@ scanf, fscanf, sscanf, vscanf, vsscanf, vfscanf \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .ad l .sp @@ -99,7 +99,7 @@ or .ad .RE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR scanf () .\"O family of functions scans input according to @@ -117,20 +117,20 @@ or .\"O argument must be of a type that is appropriate for the value returned .\"O by the corresponding conversion specification. .BR scanf () -´Ø¿ô¥°¥ë¡¼¥×¤Ï¡¢°Ê²¼¤Ë½Ò¤Ù¤ë¤è¤¦¤Ë¡¢ +関数グループは、以下に述べるように、 .I format -¤Ë½¾¤Ã¤ÆÆþÎϤòÆɤ߹þ¤à¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î½ñ¼°¤Ë¤Ï -.I "¡ÖÊÑ´¹»ØÄê¡× (conversion specifications)" -¤ò´Þ¤á¤ë¤³¤È¤¬¤Ç¤­¡¢ÊÑ´¹»ØÄ꤬¤¢¤ì¤Ð¡¢¤½¤ÎÊÑ´¹¤Î·ë²Ì¤Ï +に従って入力を読み込むものである。 +この書式には +.I "「変換指定」 (conversion specifications)" +を含めることができ、変換指定があれば、その変換の結果は .I format -¤Ë³¤¯ +に続く .I pointer -°ú¤­¿ô¤¬»Ø¤¹¾ì½ê¤Ë³ÊǼ¤µ¤ì¤ë¡£ -¤½¤ì¤¾¤ì¤Î +引き数が指す場所に格納される。 +それぞれの .I pointer -°ú¤­¿ô¤Î·¿¤Ï¡¢Âбþ¤¹¤ëÊÑ´¹»ØÄ꤬ÊÖ¤¹ÃÍ¤Ë -Ŭ¹ç¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数の型は、対応する変換指定が返す値に +適合していなければならない。 .\"O If the number of conversion specifications in .\"O .I format @@ -143,14 +143,14 @@ or .\"O .I pointer .\"O arguments are evaluated, but are otherwise ignored. .I format -Ãæ¤ÎÊÑ´¹»ØÄê¤Î¸Ä¿ô¤¬ +中の変換指定の個数が .I pointer -°ú¤­¿ô¤Î¿ô¤è¤ê¿¤«¤Ã¤¿¾ì¹ç¤Î·ë²Ì¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +引き数の数より多かった場合の結果は未定義である。 .I pointer -°ú¤­¿ô¤Î¿ô¤¬ÊÑ´¹»ØÄê¤Î¸Ä¿ô¤è¤ê¤â¿¤«¤Ã¤¿¾ì¹ç¡¢ -;ʬ¤Ê +引き数の数が変換指定の個数よりも多かった場合、 +余分な .I pointer -°ú¤­¿ô¤Îɾ²Á¤Ï¹Ô¤ï¤ì¤ë¤¬¡¢¤½¤ì°Ê³°¤Ï¹Ô¤ï¤ì¤ºÌµ»ë¤µ¤ì¤ë¡£ +引き数の評価は行われるが、それ以外は行われず無視される。 .\"O The .\"O .BR scanf () @@ -164,17 +164,17 @@ or .\"O reads its input from the character string pointed to by .\"O .IR str . .BR scanf () -´Ø¿ô¤Ïɸ½àÆþÎÏ¥¹¥È¥ê¡¼¥à +関数は標準入力ストリーム .I stdin -¤«¤é¤ÎÆþÎϤòÆɤ߹þ¤à¡£ +からの入力を読み込む。 .BR fscanf () -¤Ï¥¹¥È¥ê¡¼¥à¥Ý¥¤¥ó¥¿ +はストリームポインタ .I stream -¤«¤é¤ÎÆþÎϤòÆɤ߹þ¤à¡£ +からの入力を読み込む。 .BR sscanf () -¤Ïʸ»úÎó¥Ý¥¤¥ó¥¿ +は文字列ポインタ .I str -¤Ç¼¨¤µ¤ì¤¿Ê¸»úÎ󤫤é¤ÎÆþÎϤòÆɤ߹þ¤à¡£ +で示された文字列からの入力を読み込む。 .PP .\"O The .\"O .BR vfscanf () @@ -185,13 +185,13 @@ or .\"O using a variable argument list of pointers (see .\"O .BR stdarg (3). .BR vfscanf () -´Ø¿ô¤Ï +関数は .BR vfprintf (3) -¤ÈƱÍͤˡ¢¥¹¥È¥ê¡¼¥à¥Ý¥¤¥ó¥¿ +と同様に、ストリームポインタ .I stream -¤«¤é¤ÎÆþÎϤò¥Ý¥¤¥ó¥¿¤Î²ÄÊÑĹ°ú¤­¿ô¥ê¥¹¥È¤òÍѤ¤¤ÆÆɤ߹þ¤à +からの入力をポインタの可変長引き数リストを用いて読み込む .RB ( stdarg (3) -¤ò»²¾È)¡£ +を参照)。 .\"O The .\"O .BR vscanf () .\"O function scans a variable argument list from the standard input and the @@ -202,14 +202,14 @@ or .\"O .BR vsprintf (3) .\"O functions respectively. .BR vscanf () -´Ø¿ô¤Ï¡¢²ÄÊÑĹ°ú¤­¿ô¤Î¥ê¥¹¥È¤Ë´ð¤Å¤­É¸½àÆþÎϤ«¤é¤ÎÆɤ߼è¤ê¤ò¹Ô¤¦¡£ +関数は、可変長引き数のリストに基づき標準入力からの読み取りを行う。 .BR vsscanf () -´Ø¿ô¤Ï¤½¤Î¥ê¥¹¥È¤Ë´ð¤Å¤­Ê¸»úÎ󤫤éÆɤ߼è¤ë¡£ -¤³¤ì¤é¤Î´Ø·¸¤Ï +関数はそのリストに基づき文字列から読み取る。 +これらの関係は .BR vprintf (3) -¤È +と .BR vsprintf (3) -´Ø¿ô¤Î´Ø·¸¤ÈƱÍͤǤ¢¤ë¡£ +関数の関係と同様である。 .PP .\"O The .\"O .I format @@ -225,38 +225,38 @@ or .\"O .IR "matching failure" , .\"O meaning that the input was inappropriate (see below). .I format -ʸ»úÎó¤Ï -.I "¡ÖÌ¿Îá¡× (directive)" -¤ÎÎó¤Ç¹½À®¤µ¤ì¤ë¡£Ì¿Îá¤ÏÆþÎÏʸ»ú¤Î·ÏÎó¤ò¤É¤Î¤è¤¦¤Ë½èÍý¤¹¤ë¤«¤ò»Ø¼¨¤¹¤ë -¤â¤Î¤Ç¤¢¤ë¡£¤¢¤ëÌ¿Îá¤Î½èÍý¤¬¼ºÇÔ¤¹¤ë¤È¡¢ÆþÎϤϤ½¤ì°Ê¾åÆɤ߹þ¤Þ¤ì¤º¡¢ +文字列は +.I "「命令」 (directive)" +の列で構成される。命令は入力文字の系列をどのように処理するかを指示する +ものである。ある命令の処理が失敗すると、入力はそれ以上読み込まれず、 .BR scanf () -¤ÏÊ֤롣¡Ö¼ºÇÔ¡×¤Ï -.I "¡ÖÆþÎϤμºÇÔ¡× (input failure)" -¤È -.I "¡Ö°ìÃפμºÇÔ¡× (matching failure)" -¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¡£ -ÆþÎϤμºÇÔ¤ÏÆþÎÏʸ»ú¤¬»ÈÍѤǤ­¤Ê¤«¤Ã¤¿¤³¤È¤ò°ÕÌ£¤·¡¢ -°ìÃפμºÇÔ¤ÏÆþÎϤ¬ÉÔŬÀڤǤ¢¤Ã¤¿¤³¤È (²¼µ­»²¾È) ¤ò°ÕÌ£¤¹¤ë¡£ +は返る。「失敗」は +.I "「入力の失敗」 (input failure)" +と +.I "「一致の失敗」 (matching failure)" +のいずれかである。 +入力の失敗は入力文字が使用できなかったことを意味し、 +一致の失敗は入力が不適切であったこと (下記参照) を意味する。 .\"O A directive is one of the following: -Ì¿Îá¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë: +命令は以下のいずれかである: .TP \(bu .\"O A sequence of white-space characters (space, tab, newline, etc.; see .\"O .BR isspace (3)). .\"O This directive matches any amount of white space, .\"O including none, in the input. -¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹ (¥¹¥Ú¡¼¥¹¡¢¥¿¥Ö¡¢²þ¹Ô¤Ê¤É; +ホワイトスペース (スペース、タブ、改行など; .BR isspace (3) -»²¾È) ¤ÎÎó¡£ -¤³¤ÎÌ¿Îá¤Ï¡¢ÆþÎÏÃæ¤ÎǤ°Õ¤Î¸Ä¿ô¤Î¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹¤Ë°ìÃפ¹¤ë¡£ -(¡Ö²¿¤â¤Ê¤·¡×¤Ë¤â°ìÃפ¹¤ë)¡£ +参照) の列。 +この命令は、入力中の任意の個数のホワイトスペースに一致する。 +(「何もなし」にも一致する)。 .TP \(bu .\"O An ordinary character (i.e., one other than white space or \(aq%\(aq). .\"O This character must exactly match the next character of input. -Ä̾ïʸ»ú (¤Ä¤Þ¤ê¡¢¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹¤È \(aq%\(aq °Ê³°¤Îʸ»ú)¡£ -¤³¤Îʸ»ú¤ÏÆþÎϤμ¡¤Îʸ»ú¤ËÀµ³Î¤Ë°ìÃפ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +通常文字 (つまり、ホワイトスペースと \(aq%\(aq 以外の文字)。 +この文字は入力の次の文字に正確に一致しなければならない。 .TP \(bu .\"O A conversion specification, @@ -268,15 +268,15 @@ or .\"O If the next item of input does not match the conversion specification, .\"O the conversion fails\(emthis is a .\"O .IR "matching failure" . -ÊÑ´¹»ØÄê¡£ÊÑ´¹»ØÄê¤Ï \(aq%\(aq (¥Ñ¡¼¥»¥ó¥È) ʸ»ú¤Ç»Ï¤Þ¤ë¡£ -ÆþÎϤµ¤ì¤¿Ê¸»ú¤Î·ÏÎó¤Ï¤³¤Î»ØÄê¤Ë¤â¤È¤Å¤¤¤ÆÊÑ´¹¤µ¤ì¡¢ -ÊÑ´¹·ë²Ì¤ÏÂбþ¤¹¤ë +変換指定。変換指定は \(aq%\(aq (パーセント) 文字で始まる。 +入力された文字の系列はこの指定にもとづいて変換され、 +変換結果は対応する .I pointer -°ú¤­¿ô¤¬»Ø¤¹¾ì½ê¤Ë³ÊǼ¤µ¤ì¤ë¡£ -ÆþÎϤμ¡¤Îʸ»ú¤¬ÊÑ´¹»ØÄê¤È°ìÃפ·¤Ê¤¤¾ì¹ç¤Ï¡¢ÊÑ´¹¤Ï¼ºÇÔ¤¹¤ë -\(em¤³¤ì¤¬ -.I "¡Ö°ìÃפμºÇÔ¡× (matching failure)" -¤Ç¤¢¤ë¡£ +引き数が指す場所に格納される。 +入力の次の文字が変換指定と一致しない場合は、変換は失敗する +\(emこれが +.I "「一致の失敗」 (matching failure)" +である。 .PP .\"O Each .\"O .I conversion specification @@ -286,10 +286,10 @@ or .\"O "\fB%\fP\fIn\fP\fB$\fP" .\"O (see below for the distinction) followed by: .I format -Ãæ¤Î³Æ¡¹¤Î -.I "¡ÖÊÑ´¹»ØÄê¡×" -¤Ïʸ»ú \(aq%\(aq ¤«Ê¸»ú·ÏÎó "\fB%\fP\fIn\fP\fB$\fP" -(°ã¤¤¤Ë¤Ä¤¤¤Æ¤Ï¸å½Ò) ¤Ç»Ï¤Þ¤ê¡¢°Ê²¼¤ÎÍ×ÁǤ¬Â³¤¯¡£ +中の各々の +.I "「変換指定」" +は文字 \(aq%\(aq か文字系列 "\fB%\fP\fIn\fP\fB$\fP" +(違いについては後述) で始まり、以下の要素が続く。 .TP \(bu .\"O An optional \(aq*\(aq assignment-suppression character: @@ -301,14 +301,14 @@ or .\"O argument is required, and this specification is not .\"O included in the count of successful assignments returned by .\"O .BR scanf (). -ÂåÆþÍÞÀ©Ê¸»ú \(aq*\(aq (¾Êά²Äǽ)¡£ +代入抑制文字 \(aq*\(aq (省略可能)。 .BR scanf () -¤ÏÊÑ´¹»ØÄê¤Ë»Ø¼¨¤µ¤ì¤¿Ä̤êÆþÎϤòÆɤ߹þ¤à¤¬¡¢¤½¤ÎÆþÎϤϼΤƤé¤ì¤ë¡£ -Âбþ¤¹¤ë +は変換指定に指示された通り入力を読み込むが、その入力は捨てられる。 +対応する .I pointer -°ú¤­¿ô¤ÏɬÍפʤ¯¡¢ +引き数は必要なく、 .BR scanf () -¤¬ÊÖ¤¹ÂåÆþ¤¬À®¸ù¤·¤¿¿ô¤Ë¤³¤Î»ØÄê¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ +が返す代入が成功した数にこの指定は含まれない。 .TP \(bu .\"O An optional \(aqa\(aq character. @@ -327,24 +327,24 @@ or .\"O This is a GNU extension; .\"O C99 employs the \(aqa\(aq character as a conversion specifier (and .\"O it can also be used as such in the GNU implementation). -ʸ»ú \(aqa\(aq (¾Êά²Äǽ)¡£¤³¤ì¤Ïʸ»úÎóÊÑ´¹¤È¤È¤â¤Ë»ÈÍѤµ¤ì¡¢¤³¤ì¤ò»È¤¦¤È -¸Æ¤Ó½Ð¤·¸µ¤¬ÆþÎϤòÊÝ»ý¤¹¤ëÂбþ¤¹¤ë¥Ð¥Ã¥Õ¥¡¤ò³ÎÊݤ¹¤ëɬÍפ¬¤Ê¤¯¤Ê¤ë¡£ -Âå¤ï¤ê¤Ë +文字 \(aqa\(aq (省略可能)。これは文字列変換とともに使用され、これを使うと +呼び出し元が入力を保持する対応するバッファを確保する必要がなくなる。 +代わりに .BR scanf () -¤¬É¬ÍפÊÂ礭¤µ¤Î¥Ð¥Ã¥Õ¥¡¤ò³ÎÊݤ·¡¢¤³¤Î¥Ð¥Ã¥Õ¥¡¤Î¥¢¥É¥ì¥¹¤ò -Âбþ¤¹¤ë +が必要な大きさのバッファを確保し、このバッファのアドレスを +対応する .I pointer -°ú¤­¿ô¤ËÂåÆþ¤¹¤ë¡£ +引き数に代入する。 .I pointer -°ú¤­¿ô¤Ï +引き数は .I "char *" -·¿¤ÎÊÑ¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(ÊÑ¿ô¼«ÂΤϸƤӽФ·Á°¤Ë½é´ü²½¤µ¤ì¤Æ¤¤¤ëɬÍפϤʤ¤)¡£ -¸Æ¤Ó½Ð¤·¸µ¤Ï¡¢ÉÔÍפˤʤä¿»þÅÀ¤Ç¡¢¤³¤Î¥Ð¥Ã¥Õ¥¡¤ò +型の変数へのポインタでなければならない +(変数自体は呼び出し前に初期化されている必要はない)。 +呼び出し元は、不要になった時点で、このバッファを .BR free (3) -¤¹¤Ù¤­¤Ç¤¢¤ë¡£¤³¤Îµ¡Ç½¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -C99 ¤Ï \(aqa\(aq ʸ»ú¤òÊÑ´¹»ØÄê¤È¤·¤Æ»ÈÍѤ·¤Æ¤¤¤ë -(¤³¤Á¤é¤â GNU ¤Î¼ÂÁõ¤ÈƱ¤¸¤è¤¦¤Ë»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë)¡£ +すべきである。この機能は GNU による拡張である。 +C99 は \(aqa\(aq 文字を変換指定として使用している +(こちらも GNU の実装と同じように使用することができる)。 .TP \(bu .\"O An optional decimal integer which specifies the @@ -357,15 +357,15 @@ C99 .\"O String input conversions store a terminating null byte (\(aq\\0\(aq) .\"O to mark the end of the input; .\"O the maximum field width does not include this terminator. -.I "¡ÖºÇÂç¥Õ¥£¡¼¥ë¥ÉÉý¡×" -¤ò»ØÄꤹ¤ë 10¿Ê¿ô (¾Êά²Äǽ)¡£ -¤³¤ÎºÇÂçÃͤË㤹¤ë¤«¡¢°ìÃפ·¤Ê¤¤Ê¸»ú¤¬¸«¤Ä¤«¤ë¤«¡¢¤Î¤É¤Á¤é¤«¤Ë -¤Ê¤ë¤È¡¢Ê¸»ú¤ÎÆɤ߹þ¤ß¤òÄä»ß¤¹¤ë¡£ -¤Û¤È¤ó¤É¤ÎÊÑ´¹¤Ç¤Ï¡¢ÀèƬ¤Î¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹Ê¸»ú¤Ï¼Î¤Æ¤é¤ì -(Îã³°¤Ë¤Ä¤¤¤Æ¤Ï¸å½Ò¤¹¤ë)¡¢ -¼Î¤Æ¤é¤ì¤¿¤³¤ì¤é¤Îʸ»ú¤ÏºÇÂç¥Õ¥£¡¼¥ë¥ÉÉý¤Î·×»»¤Ë¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ -ʸ»úÎó¤ÎÆþÎÏÊÑ´¹¤Ç¤Ï¡¢ÆþÎϤÎËöÈø¤ò¼¨¤¹½ªÃ¼¤Î NULL ¥Ð¥¤¥È (\(aq\\0\(aq) -¤â³ÊǼ¤µ¤ì¤ë¤¬¡¢ºÇÂç¥Õ¥£¡¼¥ë¥ÉÉý¤Ë¤Ï¤³¤Î½ªÃ¼¥Ð¥¤¥È¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ +.I "「最大フィールド幅」" +を指定する 10進数 (省略可能)。 +この最大値に達するか、一致しない文字が見つかるか、のどちらかに +なると、文字の読み込みを停止する。 +ほとんどの変換では、先頭のホワイトスペース文字は捨てられ +(例外については後述する)、 +捨てられたこれらの文字は最大フィールド幅の計算には含まれない。 +文字列の入力変換では、入力の末尾を示す終端の NULL バイト (\(aq\\0\(aq) +も格納されるが、最大フィールド幅にはこの終端バイトは含まれない。 .TP \(bu .\"O An optional @@ -380,26 +380,26 @@ C99 .\"O .I "long int" .\"O rather than a pointer to an .\"O .IR int . -.I "¡Ö·¿½¤¾þ»Ò¡× (type modifier characters)" -(¾Êά²Äǽ)¡£ -Î㤨¤Ð¡¢·¿½¤¾þ»Ò +.I "「型修飾子」 (type modifier characters)" +(省略可能)。 +例えば、型修飾子 .B l -¤ò +を .B %d -¤Ê¤É¤ÎÀ°¿ôÊÑ´¹¤È°ì½ï¤Ë»È¤¦¤È¡¢Âбþ¤¹¤ë +などの整数変換と一緒に使うと、対応する .I pointer -°ú¤­¿ô¤¬ +引き数が .I int -¤Ç¤Ï¤Ê¤¯ +ではなく .I "long int" -¤ò»²¾È¤·¤Æ¤¤¤ë¤³¤È¤ò»ØÄê¤Ç¤­¤ë¡£ +を参照していることを指定できる。 .TP \(bu .\"O A .\"O .I "conversion specifier" .\"O that specifies the type of input conversion to be performed. -.I "¡ÖÊÑ´¹»ØÄê¡×" -: ¼Â¹Ô¤¹¤Ù¤­ÆþÎÏÊÑ´¹¤Î¼ïÎà¤ò»ØÄꤹ¤ë¡£ +.I "「変換指定」" +: 実行すべき入力変換の種類を指定する。 .PP .\"O The conversion specifications in .\"O .I format @@ -414,16 +414,16 @@ C99 .\"O and .\"O .BR %* . .I format -Ãæ¤ÎÊÑ´¹»ØÄê¤Ï¡¢\(aq%\(aq ¤Ç»Ï¤Þ¤ë¤«¡¢ -"\fB%\fP\fIn\fP\fB$\fP" ¤Ç»Ï¤Þ¤ë¤«¤Î¡¢¤¤¤º¤ì¤«¤Î·Á¼°¤Ç¤¢¤ë¡£ -¤³¤ì¤é 2¤Ä¤Î·Á¼°¤òƱ¤¸ +中の変換指定は、\(aq%\(aq で始まるか、 +"\fB%\fP\fIn\fP\fB$\fP" で始まるかの、いずれかの形式である。 +これら 2つの形式を同じ .I format -ʸ»úÎó¤Ëº®¤¼¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£Ã¢¤·¡¢"\fB%\fP\fIn\fP\fB$\fP" ¤ò -´Þ¤àʸ»úÎó¤Ë +文字列に混ぜることはできない。但し、"\fB%\fP\fIn\fP\fB$\fP" を +含む文字列に .B %% -¤È +と .B %* -¤ò´Þ¤á¤ë¤³¤È¤Ï¤Ç¤­¤ë¡£ +を含めることはできる。 .\"O If .\"O .I format .\"O contains \(aq%\(aq @@ -431,10 +431,10 @@ C99 .\"O .I pointer .\"O arguments. .I format -¤Ë \(aq%\(aq »ØÄ꤬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢³Æ¡¹¤Î \(aq%\(aq »ØÄê¤È -¸å³¤Î +に \(aq%\(aq 指定が含まれている場合、各々の \(aq%\(aq 指定と +後続の .I pointer -°ú¤­¿ô¤Ï¤½¤Î½çÈÖÄ̤ê¤ËÂбþ¤¹¤ë¡£ +引き数はその順番通りに対応する。 .\"O In the .\"O "\fB%\fP\fIn\fP\fB$\fP" .\"O form (which is specified in POSIX.1-2001, but not C99), @@ -445,25 +445,25 @@ C99 .\"O .I pointer .\"O argument following .\"O .IR format . -"\fB%\fP\fIn\fP\fB$\fP" ·Á¼° -(POSIX.1-2001 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤ë¤¬¡¢C99 ¤Ë¤Ï¤Ê¤¤) -¤Ç¤Ï¡¢ +"\fB%\fP\fIn\fP\fB$\fP" 形式 +(POSIX.1-2001 では規定されているが、C99 にはない) +では、 .I n -¤Ï 10¿Ê¿ô¤Ç¤¢¤ê¡¢ÊÑ´¹¸å¤ÎÆþÎϤò +は 10進数であり、変換後の入力を .I format -¤Î¸å¤í¤Î +の後ろの .I n -ÈÖÌܤΠ+番目の .I pointer -°ú¤­¿ô¤¬»²¾È¤¹¤ë¾ì½ê¤Ë³ÊǼ¤¹¤ë¤³¤È¤ò»ØÄꤹ¤ë¡£ +引き数が参照する場所に格納することを指定する。 .\"O .SS Conversions -.SS ÊÑ´¹ +.SS 変換 .\"O The following .\"O .I "type modifier characters" .\"O can appear in a conversion specification: -ÊÑ´¹»ØÄê¤Ë¤Ï¡¢°Ê²¼¤Î -.I "¡Ö·¿½¤¾þ»Ò¡×" -¤òÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +変換指定には、以下の +.I "「型修飾子」" +を入れることができる。 .TP .B h .\"O Indicates that the conversion will be one of @@ -474,15 +474,15 @@ C99 .\"O .I unsigned short int .\"O (rather than .\"O .IR int ). -ÊÑ´¹¤¬ +変換が \fBd\fP, \fBi\fP, \fBo\fP, \fBu\fP, \fBx\fP, \fBX\fP, \fBn\fP -¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ê¡¢¼¡¤Î¥Ý¥¤¥ó¥¿¤¬ +のいずれかであり、次のポインタが .RI ( int -¤Ç¤Ï¤Ê¤¯) +ではなく) .I short int -¤« +か .I unsigned short int -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ +へのポインタであることを示す。 .TP .B hh .\"O As for @@ -492,11 +492,11 @@ C99 .\"O or .\"O .IR "unsigned char" . .B h -¤ÈƱ¤¸¤À¤¬¡¢¼¡¤Î¥Ý¥¤¥ó¥¿¤¬ +と同じだが、次のポインタが .I signed char -¤« +か .I unsigned char -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ +へのポインタであることを示す。 .TP .B j .\"O As for @@ -507,12 +507,12 @@ C99 .\"O .IR uintmax_t . .\"O This modifier was introduced in C99. .B h -¤ÈƱ¤¸¤À¤¬¡¢¼¡¤Î¥Ý¥¤¥ó¥¿¤¬ +と同じだが、次のポインタが .I intmax_t -¤« +か .I uintmax_t -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ -¤³¤Î½¤¾þ»Ò¤Ï C99 ¤ÇƳÆþ¤µ¤ì¤¿¡£ +へのポインタであることを示す。 +この修飾子は C99 で導入された。 .TP .B l .\"O Indicates either that the conversion will be one of @@ -529,23 +529,23 @@ C99 .\"O .I double .\"O (rather than .\"O .IR float ). -ÊÑ´¹¤¬ +変換が \fBd\fP, \fBi\fP, \fBo\fP, \fBu\fP, \fBx\fP, \fBX\fP, \fBn\fP -¤« +か .B n -¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ê¼¡¤Î¥Ý¥¤¥ó¥¿¤¬ +のいずれかであり次のポインタが .RI ( int -¤Ç¤Ï¤Ê¤¯) +ではなく) .I long int -¤« +か .I unsigned long int -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¡¢¤Þ¤¿¤Ï¡¢ÊÑ´¹¤¬ +へのポインタであること、または、変換が \fBe\fP, \fBf\fP, \fBg\fP -¤Î¤¦¤Á¤Î¤Ò¤È¤Ä¤Ç¤¢¤ê¼¡¤Î¥Ý¥¤¥ó¥¿¤¬ +のうちのひとつであり次のポインタが .RI ( float -¤Ç¤Ï¤Ê¤¯) +ではなく) .I double -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ +へのポインタであることのいずれかであることを示す。 .\"O Specifying two .\"O .B l .\"O characters is equivalent to @@ -558,16 +558,16 @@ C99 .\"O as a pointer to a wide character or wide-character string respectively. .\"O .\" This use of l was introduced in Amendment 1 to ISO C90. .B l -ʸ»ú¤òÆó¤Ä»ØÄꤹ¤ë¤È¡¢ +文字を二つ指定すると、 .B L -¤ÈƱ¤¸°ÕÌ£¤È¤Ê¤ë¡£ +と同じ意味となる。 .B %c -¤ä +や .B %s -¤È¤È¤â¤Ë»ÈÍѤ¹¤ë¤È¡¢ -¥Ñ¥é¥á¡¼¥¿¤Ï¤½¤ì¤¾¤ì¥ï¥¤¥Éʸ»ú¤ä¥ï¥¤¥Éʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤È -¤ß¤Ê¤µ¤ì¤ë¡£ -.\" l ¤Î¤³¤Î»ÈÍÑË¡¤Ï ISO C90 ¤Î Amendment 1 ¤ÇƳÆþ¤µ¤ì¤¿¡£ +とともに使用すると、 +パラメータはそれぞれワイド文字やワイド文字列へのポインタであると +みなされる。 +.\" l のこの使用法は ISO C90 の Amendment 1 で導入された。 .TP .B L .\"O Indicates that the conversion will be either @@ -579,34 +579,34 @@ C99 .\"O and the next pointer is a pointer to .\"O .IR "long long" . \fBe\fP, \fBf\fP, \fBg\fP -ÊÑ´¹¤Ç¡¢¼¡¤Î¥Ý¥¤¥ó¥¿¤¬ +変換で、次のポインタが .I "long double" -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£¤â¤·¤¯¤Ï¡¢ +へのポインタであることを示す。もしくは、 \fBd\fP, \fBi\fP, \fBo\fP, \fBu\fP, \fBx\fP -ÊÑ´¹¤Ç¡¢¼¡¤Î¥Ý¥¤¥ó¥¿¤¬ +変換で、次のポインタが .I "long long" -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ +へのポインタであることのいずれかであることを示す。 .\"O .\" MTK, Jul 05: The following is no longer true for modern .\"O .\" ANSI C (i.e., C99): .\"O .\" (Note that long long is not an .\"O .\" ANSI C .\"O .\" type. Any program using this will not be portable to all .\"O .\" architectures). -.\" MTK, Jul 05: °Ê²¼¤ÎÆâÍƤϿ·¤·¤¤ ANSI C (¤Ä¤Þ¤ê C99) ¤Ç¤Ï -.\" ¤â¤Ï¤äÀµ¤·¤¯¤Ê¤¤¡£ -.\" (long long ¤Ï +.\" MTK, Jul 05: 以下の内容は新しい ANSI C (つまり C99) では +.\" もはや正しくない。 +.\" (long long は .\" .I ANSI C -.\" ¤Çµ¬Äꤵ¤ì¤¿·¿¤Ç¤Ï¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤è¤¦¡£ -.\" ¤³¤ì¤òÍѤ¤¤¿¥×¥í¥°¥é¥à¤ÏÁ´¤Æ¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ËÂФ·¤Æ -.\" °Ü¿¢²Äǽ¤Ç¤Ï¤Ê¤¤¡£) +.\" で規定された型ではないことに注意しよう。 +.\" これを用いたプログラムは全てのアーキテクチャに対して +.\" 移植可能ではない。) .TP .B q .\"O equivalent to .\"O .BR L . .\"O This specifier does not exist in ANSI C. .B L -¤ÈƱ°ì¤Ç¤¢¤ë¡£ -¤³¤Î½¤¾þ»Ò¤Ï ANSI C ¤Ë¤Ï¸ºß¤·¤Ê¤¤¡£ +と同一である。 +この修飾子は ANSI C には存在しない。 .TP .B t .\"O As for @@ -615,10 +615,10 @@ C99 .\"O .IR ptrdiff_t . .\"O This modifier was introduced in C99. .B h -¤ÈƱÍͤÀ¤¬¡¢¼¡¤Î¥Ý¥¤¥ó¥¿¤¬ +と同様だが、次のポインタが .I ptrdiff_t -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ -¤³¤Î½¤¾þ»Ò¤Ï C99 ¤ÇƳÆþ¤µ¤ì¤¿¡£ +へのポインタであることを示す。 +この修飾子は C99 で導入された。 .TP .B z .\"O As for @@ -627,17 +627,17 @@ C99 .\"O .IR size_t . .\"O This modifier was introduced in C99. .B h -¤ÈƱÍͤÀ¤¬¡¢¼¡¤Î¥Ý¥¤¥ó¥¿¤¬ +と同様だが、次のポインタが .I size_t -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ -¤³¤Î½¤¾þ»Ò¤Ï C99 ¤ÇƳÆþ¤µ¤ì¤¿¡£ +へのポインタであることを示す。 +この修飾子は C99 で導入された。 .PP .\"O The following .\"O .I "conversion specifiers" .\"O are available: -°Ê²¼¤Î -.I ¡ÖÊÑ´¹»ØÄê»Ò¡× -¤¬ÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +以下の +.I 「変換指定子」 +が利用可能である。 .TP .B % .\"O Matches a literal \(aq%\(aq. @@ -647,21 +647,21 @@ C99 .\"O single input \(aq%\(aq character. .\"O No conversion is done (but initial white space characters are discarded), .\"O and assignment does not occur. -ʸ»ú \(aq%\(aq ¤ËÂбþ¤¹¤ë¡£ -½ñ¼°Ê¸»úÎó¤ÎÃæ¤Î +文字 \(aq%\(aq に対応する。 +書式文字列の中の .B %\&% -¤Ïñ°ì¤Îʸ»ú \(aq%\(aq ¤ËÂбþ¤¹¤ë¡£ -ÊÑ´¹¤Ï¹Ô¤ï¤ì¤º (⤷¡¢ÀèƬ¤Î¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹Ê¸»ú¤Ï¼Î¤Æ¤é¤ì¤ë)¡¢ -ÊÑ¿ô¤Ø¤ÎÂåÆþ¤ÏÀ¸¤¸¤Ê¤¤¡£ +は単一の文字 \(aq%\(aq に対応する。 +変換は行われず (但し、先頭のホワイトスペース文字は捨てられる)、 +変数への代入は生じない。 .TP .B d .\"O Matches an optionally signed decimal integer; .\"O the next pointer must be a pointer to .\"O .IR int . -Éä¹æ¤Ä¤­¤Î 10¿Ê¤ÎÀ°¿ô¤ËÂбþ¤¹¤ë¡£ -¼¡¤Î¥Ý¥¤¥ó¥¿¤Ï +符号つきの 10進の整数に対応する。 +次のポインタは .I int -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +へのポインタでなければならない。 .TP .B D .\"O Equivalent to @@ -672,10 +672,10 @@ C99 .\"O .B %D .\"O is silently ignored, causing old programs to fail mysteriously.) .I ld -¤ÈƱ°ì¤Ç¤¢¤ë¡£¤³¤ì¤Ï°ÊÁ°¤Î»ÅÍͤȤθߴ¹À­¤À¤±¤Î¤¿¤á¤Ë¤¢¤ë¡£ -(Ãí°Õ: ¤³¤ì¤Ï libc4 ¤Î¾ì¹ç¤À¤±¤Ç¤¢¤ë¡£ libc5 ¤ä glibc ¤Ç¤Ï +と同一である。これは以前の仕様との互換性だけのためにある。 +(注意: これは libc4 の場合だけである。 libc5 や glibc では .B %D -¤Ï°ÅÌۤΤ¦¤Á¤Ë̵»ë¤µ¤ì¡¢¸Å¤¤¥×¥í¥°¥é¥à¤Ë¤ª¤¤¤ÆÆæ¤ËËþ¤Á¤¿¼ºÇԤθ¶°ø¤È¤Ê¤ë¡£) +は暗黙のうちに無視され、古いプログラムにおいて謎に満ちた失敗の原因となる。) .TP .B i .\"O Matches an optionally signed integer; the next pointer must be a pointer to @@ -688,84 +688,84 @@ C99 .\"O .IR 0 , .\"O and in base 10 otherwise. .\"O Only characters that correspond to the base are used. -Éä¹æ¤Ä¤­À°¿ô¤ËÂбþ¤¹¤ë¡£ -¼¡¤Î¥Ý¥¤¥ó¥¿¤Ï +符号つき整数に対応する。 +次のポインタは .I int -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ÎÀ°¿ô¤Ï +へのポインタでなければならない。 +この整数は .I 0x -¤Þ¤¿¤Ï +または .I 0X -¤Ç³«»Ï¤¹¤ë¾ì¹ç¤Ë¤Ï 16 ¿Ê¿ô¡¢ +で開始する場合には 16 進数、 .I 0 -¤Ç³«»Ï¤¹¤ë¾ì¹ç¤Ë¤Ï 8 ¿Ê¿ô¡¢¤½¤Î¾¤Î¾ì¹ç¤Ë¤Ï 10¿Ê¿ô¤È¤·¤ÆÆɤ߹þ¤Þ¤ì¤ë¡£ -¤³¤ÎÊÑ´¹¤Ç»ÈÍѤµ¤ì¤ëʸ»ú¤Ï¡¢¤³¤ì¤é¤Î´ð¿ô¤ËÂбþ¤·¤Æ¤¤¤ë¤â¤Î¤À¤±¤Ç¤¢¤ë¡£ +で開始する場合には 8 進数、その他の場合には 10進数として読み込まれる。 +この変換で使用される文字は、これらの基数に対応しているものだけである。 .TP .B o .\"O Matches an unsigned octal integer; the next pointer must be a pointer to .\"O .IR "unsigned int" . -Éä¹æ¤Ê¤·¤Î 8 ¿Ê¤ÎÀ°¿ô¤ËÂбþ¤¹¤ë¡£ -¼¡¤Î¥Ý¥¤¥ó¥¿¤Ï +符号なしの 8 進の整数に対応する。 +次のポインタは .I "unsigned int" -¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +でなければならない。 .TP .B u .\"O Matches an unsigned decimal integer; the next pointer must be a .\"O pointer to .\"O .IR "unsigned int" . -Éä¹æ¤Ê¤·¤Î 10¿Ê¤ÎÀ°¿ô¤ËÂбþ¤¹¤ë¡£ -¼¡¤Î¥Ý¥¤¥ó¥¿¤Ï +符号なしの 10進の整数に対応する。 +次のポインタは .I "unsigned int" -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +へのポインタでなければならない。 .TP .B x .\"O Matches an unsigned hexadecimal integer; the next pointer must .\"O be a pointer to .\"O .IR "unsigned int" . -Éä¹æ¤Ê¤·¤Î 16 ¿Ê¤ÎÀ°¿ô¤ËÂбþ¤¹¤ë¡£ -¼¡¤Î¥Ý¥¤¥ó¥¿¤Ï +符号なしの 16 進の整数に対応する。 +次のポインタは .I "unsigned int" -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +へのポインタでなければならない。 .TP .B X .\"O Equivalent to .\"O .BR x . .B x -¤ÈƱ°ì¤Ç¤¢¤ë¡£ +と同一である。 .TP .B f .\"O Matches an optionally signed floating-point number; the next pointer must .\"O be a pointer to .\"O .IR float . -Éä¹æ¤Ä¤­ÉâÆ°¾®¿ôÅÀ¼Â¿ô¤ËÂбþ¤¹¤ë¡£ -¼¡¤Î¥Ý¥¤¥ó¥¿¤Ï +符号つき浮動小数点実数に対応する。 +次のポインタは .I float -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +へのポインタでなければならない。 .TP .B e .\"O Equivalent to .\"O .BR f . .B f -¤ÈƱ°ì¤Ç¤¢¤ë¡£ +と同一である。 .TP .B g .\"O Equivalent to .\"O .BR f . .B f -¤ÈƱ°ì¤Ç¤¢¤ë¡£ +と同一である。 .TP .B E .\"O Equivalent to .\"O .BR f . .B f -¤ÈƱ°ì¤Ç¤¢¤ë¡£ +と同一である。 .TP .B a .\"O (C99) Equivalent to .\"O .BR f . (C99) .B f -¤ÈƱ°ì¤Ç¤¢¤ë¡£ +と同一である。 .TP .B s .\"O Matches a sequence of non-white-space characters; @@ -774,12 +774,12 @@ C99 .\"O the terminating null byte (\(aq\\0\(aq), which is added automatically. .\"O The input string stops at white space or at the maximum field .\"O width, whichever occurs first. -¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹¤Ç¤Ï¤Ê¤¤Ê¸»ú¤Ç¹½À®¤µ¤ì¤¿Ê¸»úÎó¤ËÂбþ¤¹¤ë¡£ -¼¡¤Î¥Ý¥¤¥ó¥¿¤Ïʸ»ú¤ÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -¤½¤Îʸ»úÇÛÎó¤Ï¡¢ÆþÎϤµ¤ì¤¿Ê¸»úÎó¤È (¼«Æ°Åª¤ËÄɲ䵤ì¤ë) ½ªÃ¼¤Î NULL -¥Ð¥¤¥È (\(aq\\0\(aq) ¤ò³ÊǼ¤¹¤ë¤Î¤Ë½½Ê¬¤ÊÂ礭¤µ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -ʸ»úÎó¤ÎÆþÎϤϡ¢¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹¤¬ÆþÎϤµ¤ì¤ë¤«¡¢ºÇÂç¥Õ¥£¡¼¥ë¥ÉÉý¤Ë -㤹¤ë¤«¡¢¤Î¤É¤Á¤é¤«¤¬µ¯¤³¤ë¤ÈÄä»ß¤µ¤ì¤ë¡£ +ホワイトスペースではない文字で構成された文字列に対応する。 +次のポインタは文字の配列へのポインタでなければならず、 +その文字配列は、入力された文字列と (自動的に追加される) 終端の NULL +バイト (\(aq\\0\(aq) を格納するのに十分な大きさでなければならない。 +文字列の入力は、ホワイトスペースが入力されるか、最大フィールド幅に +達するか、のどちらかが起こると停止される。 .TP .B c .\"O Matches a sequence of characters whose length is specified by the @@ -791,15 +791,15 @@ C99 .\"O is added). .\"O The usual skip of leading white space is suppressed. .\"O To skip white space first, use an explicit space in the format. -.I "¡ÖºÇÂç¥Õ¥£¡¼¥ë¥ÉÉý¡×" -(¥Ç¥Õ¥©¥ë¥È¤Ï 1) ¤Ç»ØÄꤵ¤ì¤¿Éý¤Îʸ»ú¤ÎÎó¤ËÂбþ¤¹¤ë¡£ -¼¡¤Î¥Ý¥¤¥ó¥¿¤Ï +.I "「最大フィールド幅」" +(デフォルトは 1) で指定された幅の文字の列に対応する。 +次のポインタは .I char -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¡¢¤¹¤Ù¤Æ¤Îʸ»ú¤ò³ÊǼ¤¹¤ë¤Î¤Ë½½Ê¬¤ÊÎΰ褬 -¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ (½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤ÏÄɲ䵤ì¤Ê¤¤)¡£ -Ä̾ï¹Ô¤ï¤ì¤ëÀèƬ¤Î¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹¤ÎÆɤßÈô¤Ð¤·¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ -ÀèƬ¤Î¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹¤òÆɤßÈô¤Ð¤¹¤¿¤á¤Ë¤Ï¡¢ -¥Õ¥©¡¼¥Þ¥Ã¥Èʸ¤ÎÃæ¤ÇÌÀ¼¨Åª¤Ë¥¹¥Ú¡¼¥¹¤ò»ÈÍѤ¹¤ì¤ÐÎɤ¤¡£ +へのポインタで、すべての文字を格納するのに十分な領域が +なければならない (終端の NULL バイトは追加されない)。 +通常行われる先頭のホワイトスペースの読み飛ばしは行われない。 +先頭のホワイトスペースを読み飛ばすためには、 +フォーマット文の中で明示的にスペースを使用すれば良い。 .TP .B \&[ .\"O Matches a nonempty sequence of characters from the specified set of @@ -808,14 +808,14 @@ C99 .\"O and there must be enough room for all the characters in the string, plus a .\"O terminating null byte. .\"O The usual skip of leading white space is suppressed. -³ÊǼ¤µ¤ì¤¿Ê¸»úÎó¤Î¤¦¤Á¤«¤é¼è¤ê½Ð¤µ¤ì¤¿¡¢ -»ØÄꤵ¤ì¤¿Ê¸»ú¤Î½¸¹ç¤Ç¹½À®¤µ¤ì¤ë¶õ¤Ç¤Ï¤Ê¤¤Ê¸»ú¤ÎÎó¤ËÂбþ¤¹¤ë¡£ -¼¡¤Î¥Ý¥¤¥ó¥¿¤Ï +格納された文字列のうちから取り出された、 +指定された文字の集合で構成される空ではない文字の列に対応する。 +次のポインタは .I char -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -¤½¤³¤Ë¤Ïʸ»úÎóÃæ¤Î¤¹¤Ù¤Æ¤Îʸ»ú¤È½ªÃ¼¤Î NULL ¥Ð¥¤¥È -¤ò³ÊǼ¤¹¤ë¤¿¤á¤Î½½Ê¬¤ÊÎΰ褬¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Ä̾ï¹Ô¤ï¤ì¤ëÀèƬ¤Î¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹¤ÎÆɤßÈô¤Ð¤·¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ +へのポインタでなければならず、 +そこには文字列中のすべての文字と終端の NULL バイト +を格納するための十分な領域がなければならない。 +通常行われる先頭のホワイトスペースの読み飛ばしは行われない。 .\"O The string is to be made up of characters in (or not in) a particular set; .\"O the set is defined by the characters between the open bracket .\"O .B [ @@ -827,16 +827,16 @@ C99 .\"O those characters if the first character after the open bracket is a .\"O circumflex .\"O .RB ( ^ ). -¤³¤Îʸ»úÎó¤ÏÆÃÊ̤ʽ¸¹ç¤ÎÃæ¤Îʸ»ú¤Ç¹½À®¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î½¸¹ç¤Ï -³«¤­³ç¸Ì +この文字列は特別な集合の中の文字で構成されている。 +この集合は +開き括弧 .B [ -¤ÈÊĤ¸³ç¸Ì +と閉じ括弧 .B ] -¤Î´Ö¤Îʸ»ú¤ÇÄêµÁ¤µ¤ì¤ë¡£ -³«¤­³ç¸Ì¤Î¤¢¤È¤ÎºÇ½é¤Îʸ»ú¤¬¶Ê¥¢¥¯¥»¥ó¥Èµ­¹æ +の間の文字で定義される。 +開き括弧のあとの最初の文字が曲アクセント記号 .RB ( ^ ) -¤Î¾ì¹ç¡¢½¸¹ç¤Ï¤³¤ì¤é¤Îʸ»ú¤ò´Þ¤Þ¤Ê¤¤¤â¤Î¤È¤Ê¤ë¡£ +の場合、集合はこれらの文字を含まないものとなる。 .\"O To include a close bracket in the set, make it the first character after .\"O the open bracket or the circumflex; any other position will end the set. .\"O The hyphen character @@ -845,28 +845,28 @@ C99 .\"O intervening characters to the set. .\"O To include a hyphen, make it the last .\"O character before the final close bracket. -ÊĤ¸³ç¸Ì¤ò½¸¹ç¤Ë´Þ¤Þ¤»¤ë¤¿¤á¤Ë¤Ï¡¢¤³¤Îʸ»ú¤ò³«¤­³ç¸Ì¤Þ¤¿¤Ï -¶Ê¥¢¥¯¥»¥ó¥Èµ­¹æ¤Î¤¢¤È¤ÎºÇ½é¤Îʸ»ú¤Ë¤¹¤ì¤Ð¤è¤¤¡£ -¤Ä¤Þ¤ê¡¢Â¾¤Î°ÌÃÖ¤ËÊĤ¸³ç¸Ì¤òÃÖ¤¯¤Èʸ»ú¤Î½¸¹ç¤¬½ª¤ë¡£ -¥Ï¥¤¥Õ¥ó +閉じ括弧を集合に含ませるためには、この文字を開き括弧または +曲アクセント記号のあとの最初の文字にすればよい。 +つまり、他の位置に閉じ括弧を置くと文字の集合が終る。 +ハイフン .B \- -¤â¤Þ¤¿Æüìʸ»ú¤Ç¤¢¤ë¡£ -Æó¤Ä¤Î°Û¤Ê¤ëʸ»ú¤Î´Ö¤ËÃÖ¤«¤ì¤¿»þ¡¢¤³¤Îʸ»ú¤Ï¡¢ -¤½¤Î´Ö¤Ë¤¢¤ëÁ´¤Æ¤Îʸ»ú¤ò½¸¹ç¤Ë²Ã¤¨¤ë¡£ -¥Ï¥¤¥Õ¥ó¼«ÂΤò´Þ¤Þ¤»¤ë¤¿¤á¤Ë¤Ï¡¢ -³ç¸Ì¤¬ÊĤ¸¤ëÁ°¤ÎºÇ¸å¤Î°ìʸ»ú¤ò¥Ï¥¤¥Õ¥ó¤Ë¤¹¤ì¤Ð¤è¤¤¡£ +もまた特殊文字である。 +二つの異なる文字の間に置かれた時、この文字は、 +その間にある全ての文字を集合に加える。 +ハイフン自体を含ませるためには、 +括弧が閉じる前の最後の一文字をハイフンにすればよい。 .\"O For instance, .\"O .B [^]0\-9\-] .\"O means .\"O the set "everything except close bracket, zero through nine, and hyphen". .\"O The string ends with the appearance of a character not in the (or, with a .\"O circumflex, in) set or when the field width runs out. -Î㤨¤Ð¡¢ +例えば、 .B [^]0\-9\-] -¤Ï¡ÖÊĤ¸³ç¸Ì¡¢0 ¡Á 9¡¢¥Ï¥¤¥Õ¥ó¤Î 3 ¼ïÎà¤ò½ü¤¯Á´¤Æ¤Îʸ»ú¡×¤Î½¸¹ç¤ò°ÕÌ£¤¹¤ë¡£ -¤³¤Îʸ»úÎó¤Ï -½¸¹ç¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤ (¶Ê¥¢¥¯¥»¥ó¥È¤Î¾ì¹ç¤Ë¤Ï´Þ¤Þ¤ì¤ë) ʸ»ú¤Î -½Ð¸½¤Þ¤¿¤Ï³ÎÊݤµ¤ì¤¿Îΰ褬»È¤¤ÀÚ¤é¤ì¤¿»þ¤Ë½ªÎ»¤¹¤ë¡£ +は「閉じ括弧、0 〜 9、ハイフンの 3 種類を除く全ての文字」の集合を意味する。 +この文字列は +集合に含まれていない (曲アクセントの場合には含まれる) 文字の +出現または確保された領域が使い切られた時に終了する。 .TP .B p .\"O Matches a pointer value (as printed by @@ -876,34 +876,34 @@ C99 .\"O the next pointer must be a pointer to a pointer to .\"O .IR void . .RB ( printf (3) -¤Î +の .B %p -¤Ç°õ»ú¤µ¤ì¤ë¤è¤¦¤Ê) ¥Ý¥¤¥ó¥¿ÃͤËÂбþ¤¹¤ë¡£ -¼¡¤Î¥Ý¥¤¥ó¥¿¤Ï +で印字されるような) ポインタ値に対応する。 +次のポインタは .I void -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +へのポインタへのポインタでなければならない。 .TP .B n .\"O Nothing is expected; instead, the number of characters consumed thus far .\"O from the input is stored through the next pointer, which must be a pointer .\"O to .\"O .IR int . -¤É¤ó¤ÊÆþÎϤâɬÍפȤ·¤Ê¤¤¡£ -¤½¤Î¤«¤ï¤ê¤Ë¡¢ -ÆþÎϤ«¤é¤³¤³¤Þ¤Ç¾ÃÈñ¤µ¤ì¤¿Ê¸»ú¿ô¤¬¼¡¤Î¥Ý¥¤¥ó¥¿¤Ç»ØÄꤵ¤ì¤¿¾ì½ê¤Ë -³ÊǼ¤µ¤ì¤ë¡£ -¤³¤Î¥Ý¥¤¥ó¥¿¤Ï +どんな入力も必要としない。 +そのかわりに、 +入力からここまで消費された文字数が次のポインタで指定された場所に +格納される。 +このポインタは .I int -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +へのポインタでなければならない。 .\"O This is .\"O .I not .\"O a conversion, although it can be suppressed with the .\"O .B * .\"O assignment-suppression character. -ÊÑ´¹¤òÍÞÀ©¤¹¤ë¤Î¤Ç¤¢¤ì¤Ð +変換を抑制するのであれば .B * -ÂåÆþÍÞÀ©Ê¸»ú¤ò»È¤Ã¤ÆÍÞÀ©¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤Î¤À¤¬¡¢ -¤³¤ÎÊÑ´¹»ØÄê»Ò¤ÏÊÑ´¹¤Ç¤Ï¡Ö¤Ê¤¤¡×¡£ +代入抑制文字を使って抑制することができるのだが、 +この変換指定子は変換では「ない」。 .\"O The C standard says: "Execution of a .\"O .B %n .\"O directive does not increment @@ -913,22 +913,22 @@ C99 .\"O not to make any assumptions on the effect of .\"O .B %n .\"O conversions on the return value. -C ¸À¸ì¤Îɸ½àµ¬³Ê¤Ç¤Ï¡Ö¼Â¹Ô¤Î´°Î»»þ¤ËÊÖ¤µ¤ì¤ëÂåÆþ¤Î²ó¿ô¤Ï +C 言語の標準規格では「実行の完了時に返される代入の回数は .B %n -Ì¿Îá¤Î¼Â¹Ô¤Ç¤ÏÁý²Ã¤·¤Ê¤¤¡×¤È¤Ê¤Ã¤Æ¤¤¤ë¤¬¡¢ -Àµ¸íɽ¤ÎÆâÍƤϤ³¤ì¤ÈÌ·½â¤¹¤ë¤è¤¦¤Ç¤¢¤ë¡£¤ª¤½¤é¤¯¡¢ +命令の実行では増加しない」となっているが、 +正誤表の内容はこれと矛盾するようである。おそらく、 .B %n -ÊÑ´¹¤¬ÊÖ¤êÃͤËÍ¿¤¨¤ë±Æ¶Á¤Ë¤Ä¤¤¤Æ¤Ï¤É¤Î¤è¤¦¤Ê²¾Äê¤â¤·¤Ê¤¤¤Î¤¬ -¸­ÌÀ¤Ç¤¢¤í¤¦¡£ +変換が返り値に与える影響についてはどのような仮定もしないのが +賢明であろう。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O These functions return the number of input items .\"O successfully matched and assigned, .\"O which can be fewer than provided for, .\"O or even zero in the event of an early matching failure. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢°ìÃפÈÂåÆþ¤¬À®¸ù¤·¤¿ÆþÎÏÍ×ÁǤθĿô¤òÊÖ¤¹¡£ -ÊÖ¤µ¤ì¤ëÃͤÏÅϤµ¤ì¤¿ÊÑ´¹¤Î¸Ä¿ô¤è¤ê¤â¾¯¤Ê¤¤¤³¤È¤â¤¢¤ê¡¢ -ºÇ½é¤Ë°ìÃפμºÇÔ¤¬¤¢¤Ã¤¿¾ì¹ç¤Ë¤Ï 0 ¤Ë¤Ê¤ë¤³¤È¤â¤¢¤ë¡£ +これらの関数は、一致と代入が成功した入力要素の個数を返す。 +返される値は渡された変換の個数よりも少ないこともあり、 +最初に一致の失敗があった場合には 0 になることもある。 .\"O The value .\"O .B EOF @@ -941,65 +941,65 @@ C .\"O is set, and .\"O .I errno .\"O is set indicate the error. -ºÇ½é¤ÎÊÑ´¹¤¬À®¸ù¤¹¤ëÁ°¤ËÆþÎϤκǸå¤Ë㤷¤Æ¡¢°ìÃפμºÇÔ¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ +最初の変換が成功する前に入力の最後に達して、一致の失敗が起こった場合には、 .B EOF -¤¬ÊÖ¤µ¤ì¤ë¡£¤Þ¤¿¡¢ -Æɤ߹þ¤ß¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¤â +が返される。また、 +読み込みエラーが発生した場合にも .B EOF -¤¬ÊÖ¤µ¤ì¤ë¡£Æɤ߹þ¤ß¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¥¹¥È¥ê¡¼¥à¤Î -¥¨¥é¡¼»Ø¼¨»Ò¤¬¥»¥Ã¥È¤µ¤ì +が返される。読み込みエラーの場合には、そのストリームの +エラー指示子がセットされ .RB ( ferror (3) -»²¾È)¡¢ +参照)、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +にエラーを示す値がセットされる。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EAGAIN .\"O The file descriptor underlying .\"O .I stream .\"O is marked nonblocking, and the read operation would block. .I stream -¤ËÂбþ¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ nonblocking ¤È¤Ê¤Ã¤Æ¤ª¤ê¡¢ -Æɤ߹þ¤ßÁàºî¤ÏÄä»ß (block) ¤¹¤ë¤³¤È¤Ë¤Ê¤ë¡£ +に対応するファイルディスクリプタが nonblocking となっており、 +読み込み操作は停止 (block) することになる。 .TP .B EBADF .\"O The file descriptor underlying .\"O .I stream .\"O is invalid, or not open for reading. .I stream -¤ËÂбþ¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Ìµ¸ú¤Ç¤¢¤ë¤¬¡¢ -Æɤ߹þ¤ßÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +に対応するファイルディスクリプタが無効であるが、 +読み込み用にオープンされていない。 .TP .B EILSEQ .\"O Input byte sequence does not form a valid character. -ÆþÎϤµ¤ì¤¿¥Ð¥¤¥ÈÎó¤¬Í­¸ú¤Êʸ»ú¤ò¹½À®¤·¤Æ¤¤¤Ê¤¤¡£ +入力されたバイト列が有効な文字を構成していない。 .TP .B EINTR .\"O The read operation was interrupted by a signal; see .\"O .BR signal (7). -Æɤ߹þ¤ßÁàºî¤¬¥·¥°¥Ê¥ë¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¡£ +読み込み操作がシグナルにより割り込まれた。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .\"O Not enough arguments; or .\"O .I format .\"O is NULL. -°ú¤­¿ô¤¬½½Ê¬¤Ç¤Ê¤¤¡£¤Þ¤¿¤Ï +引き数が十分でない。または .I format -¤¬ NULL ¤Ç¤¢¤ë¡£ +が NULL である。 .TP .B ENOMEM .\"O Out of memory. -¥á¥â¥êÉÔ­¡£ +メモリ不足。 .TP .B ERANGE .\"O The result of an integer conversion would exceed the size .\"O that can be stored in the corresponding integer type. -À°¿ôÊÑ´¹¤Î·ë²Ì¤¬¡¢Âбþ¤¹¤ëÀ°¿ô·¿¤Ë³ÊǼ¤Ç¤­¤ë¥µ¥¤¥º¤ò±Û¤¨¤Æ¤·¤Þ¤¦¡£ +整数変換の結果が、対応する整数型に格納できるサイズを越えてしまう。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The functions .\"O .BR fscanf (), .\"O .BR scanf (), @@ -1012,29 +1012,29 @@ C .BR fscanf (), .BR scanf (), .BR sscanf () -´Ø¿ô¤Ï C89, C99, POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Îɸ½à¤Ç¤Ï¡¢¥¨¥é¡¼ +関数は C89, C99, POSIX.1-2001 に準拠している。 +これらの標準では、エラー .B ERANGE -¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +は規定されていない。 .PP .\"O The .\"O .B q .\"O specifier is the 4.4BSD notation for .\"O .IR "long long" , .B q -»ØÄê»Ò¤Ï +指定子は .I "long long" -¤Î 4.4BSD ¤Ç¤Îµ­½ÒÊýË¡¤Ç¤¢¤ë¡£ +の 4.4BSD での記述方法である。 .\"O while .\"O .B ll .\"O or the usage of .\"O .B L .\"O in integer conversions is the GNU notation. -°ìÊý¡¢À°¿ôÊÑ´¹¤Ç¤Î +一方、整数変換での .B ll -¤Þ¤¿¤Ï +または .B L -¤Î»ÈÍÑ¤Ï GNU ¤Ç¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ +の使用は GNU での拡張である。 .PP .\"O The Linux version of these functions is based on the .\"O .I GNU @@ -1046,18 +1046,18 @@ C .\"O .I GNU .\"O .I libc (glibc-1.08) .\"O for a more concise description. -¤³¤ì¤é¤Î´Ø¿ô¤Î Linux ÈÇ¤Ï +これらの関数の Linux 版は .I GNU .I libio -¥é¥¤¥Ö¥é¥ê¡¼¤ò¸µ¤Ë¤·¤Æ¤¤¤ë¡£ -¤è¤ê´Ê·é¤ÊÀâÌÀ¤Ë¤Ï +ライブラリーを元にしている。 +より簡潔な説明には .I GNU .I libc (glibc-1.08) -¤Î +の .I info -ʸ½ñ¤ËÌܤòÄ̤¹¤³¤È¡£ +文書に目を通すこと。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The GNU C library supports a nonstandard extension that causes .\"O the library to dynamically allocate a string of sufficient size .\"O for input strings for the @@ -1065,15 +1065,15 @@ C .\"O and .\"O \fB%a[\fP\fIrange\fP\fB]\fP .\"O conversion specifiers. -GNU C ¥é¥¤¥Ö¥é¥ê (glibc) ¤Ç¤ÏÈóɸ½à¤Î¥ª¥×¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤ª¤ê¡¢ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤ÈÊÑ´¹»ØÄê»Ò +GNU C ライブラリ (glibc) では非標準のオプションをサポートしており、 +このオプションを使うと変換指定子 .B %s -¤ä +や \fB%a[\fP\fIrange\fP\fB]\fP -¤Ø¤ÎÆþÎÏʸ»úÎó¤ËÂФ·¤Æ½½Ê¬¤ÊÂ礭¤µ¤Îʸ»úÎó¤ò¥é¥¤¥Ö¥é¥ê¤¬Æ°Åª¤Ë³ÎÊݤ¹¤ë -¤è¤¦¤Ë¤Ê¤ë¡£ +への入力文字列に対して十分な大きさの文字列をライブラリが動的に確保する +ようになる。 .\"O .\" This feature seems to be present at least as far back as glibc 2.0. -.\" ¤³¤Îµ¡Ç½¤Ï¾¯¤Ê¤¯¤È¤â glibc 2.0 »þÅÀ¤«¤é¸ºß¤·¤Æ¤¤¤ë¤è¤¦¤À¡£ +.\" この機能は少なくとも glibc 2.0 時点から存在しているようだ。 .\"O To make use of this feature, specify .\"O .B a .\"O as a length modifier (thus @@ -1083,15 +1083,15 @@ GNU C .\"O The caller must .\"O .BR free (3) .\"O the returned string, as in the following example: -¤³¤Îµ¡Ç½¤ò»ÈÍѤ¹¤ë¤Ë¤Ï¡¢Ä¹¤µ½¤¾þ»Ò¤È¤·¤Æ +この機能を使用するには、長さ修飾子として .B a -¤ò»ØÄꤹ¤ë (¤·¤¿¤¬¤Ã¤Æ¡¢Á´ÂΤȤ·¤Æ¤Ï +を指定する (したがって、全体としては .B %as -¤ä -\fB%a[\fP\fIrange\fP\fB]\fP ¤È¤Ê¤ë)¡£ -°Ê²¼¤ÎÎã¤Ë¤¢¤ë¤è¤¦¤Ë¡¢¸Æ¤Ó½Ð¤·Â¦¤ÏÊÖ¤µ¤ì¤¿Ê¸»úÎó¤ò +や +\fB%a[\fP\fIrange\fP\fB]\fP となる)。 +以下の例にあるように、呼び出し側は返された文字列を .BR free (3) -¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +しなければならない。 .in +4n .nf @@ -1116,11 +1116,11 @@ if (n == 1) { .\"O if the .\"O .BR scanf () .\"O call successfully read a string. -¾åµ­¤ÎÎã¤Ë¤¢¤ë¤è¤¦¤Ë¡¢ +上記の例にあるように、 .BR scanf () -¤¬Ê¸»úÎó¤ÎÆɤ߹þ¤ß¤ËÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤À¤±¡¢ +が文字列の読み込みに成功した場合にだけ、 .BR free (3) -¤ò¸Æ¤Ó½Ð¤¹É¬Íפ¬¤¢¤ë¡£ +を呼び出す必要がある。 .PP .\"O The .\"O .B a @@ -1134,16 +1134,16 @@ if (n == 1) { .\"O .B a .\"O is interpreted as a specifier for floating-point numbers (see above). .I "gcc -std=c99" -¤ä +や .I "gcc -D_ISOC99_SOURCE" -¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï +でコンパイルしたプログラムでは .RB ( _GNU_SOURCE -¤âƱ»þ¤Ë»ØÄꤷ¤Æ¤¤¤Ê¤¤¾ì¹ç)¡¢ +も同時に指定していない場合)、 .B a -½¤¾þ»Ò¤ÏÍøÍѤǤ­¤Ê¤¤¡£ -¾åµ­¤Î¾ì¹ç¡¢ +修飾子は利用できない。 +上記の場合、 .B a -¤Ï (¾å½Ò¤ÎÄ̤ê) ÉâÆ°¾®¿ôÅÀ¿ô¤ò¼¨¤¹ÊÑ´¹»ØÄê»Ò¤È²ò¼á¤µ¤ì¤ë¡£ +は (上述の通り) 浮動小数点数を示す変換指定子と解釈される。 .\"O Since version 2.7, glibc also provides the .\"O .B m @@ -1153,37 +1153,37 @@ if (n == 1) { .\"O The .\"O .B m .\"O modifier has the following advantages: -¥Ð¡¼¥¸¥ç¥ó 2.7 °Ê¹ß¤Ç¤Ï¡¢glibc ¤Ï +バージョン 2.7 以降では、glibc は .B a -½¤¾þ»Ò¤ÈƱ¤¸ÌÜŪ¤Ç +修飾子と同じ目的で .B m -½¤¾þ»Ò¤âÄ󶡤·¤Æ¤¤¤ë¡£ +修飾子も提供している。 .B m -½¤¾þ»Ò¤Ï°Ê²¼¤ÎÍøÅÀ¤¬¤¢¤ë¡£ +修飾子は以下の利点がある。 .IP * 2 .\"O It may also be applied to .\"O .B %c .\"O conversion specifiers (e.g., .\"O .BR %3mc ). .B %c -ÊÑ´¹»ØÄê»Ò¤Ë¤âŬÍѤǤ­¤ë (Î㤨¤Ð -.BR %3mc )¡£ +変換指定子にも適用できる (例えば +.BR %3mc )。 .IP * .\"O It avoids ambiguity with respect to the .\"O .B %a .\"O floating-point conversion specifier (and is unaffected by .\"O .IR "gcc -std=c99" .\"O etc.) -ÉâÆ°¾®¿ôÅÀÊÑ´¹»ØÄê»Ò¤È¤·¤Æ¤Î +浮動小数点変換指定子としての .B %a -¤È¤Îʶ¤é¤ï¤·¤µ¤¬Èò¤±¤é¤ì¤ë (¤Þ¤¿ +との紛らわしさが避けられる (また .I "gcc -std=c99" -¤Ê¤É¤Î±Æ¶Á¤âÈò¤±¤é¤ì¤ë)¡£ +などの影響も避けられる)。 .IP * .\"O It is specified in the upcoming revision of the POSIX.1 standard. -POSIX.1 ɸ½à¤Î¼¡¤Î²þÄûÈǤǵ¬Äꤵ¤ì¤ë¡£ +POSIX.1 標準の次の改訂版で規定される。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O All functions are fully C89 conformant, but provide the .\"O additional specifiers .\"O .B q @@ -1196,27 +1196,27 @@ POSIX.1 ɸ .\"O specifiers. .\"O The latter may be considered to be a bug, as it changes the .\"O behavior of specifiers defined in C89. -Á´¤Æ¤Î´Ø¿ô¤Ï¡¢´°Á´¤Ë C89 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£¤·¤«¤· -ÄÉ²Ã¤Ç +全ての関数は、完全に C89 に準拠している。しかし +追加で .B q -¤È +と .B a -»ØÄê»Ò¤¬Ä󶡤µ¤ì¤Æ¤ª¤ê¡¢Æ±ÍÍ¤Ë +指定子が提供されており、同様に .B L -¤È +と .B l -»ØÄê»Ò¤ÎÉÕ²ÃŪ¤Ê¿¶¤ëÉñ¤¤¤â¤¢¤ë¡£¸å¼Ô¤Ï¡¢ -C89 ¤ÇÄêµÁ¤µ¤ì¤¿»ØÄê»Ò¤Î¿¶¤ëÉñ¤¤¤òÊѹ¹¤¹¤ë¤â¤Î¤Ê¤Î¤Ç¡¢ -¥Ð¥°¤È¤ß¤Ê¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +指定子の付加的な振る舞いもある。後者は、 +C89 で定義された指定子の振る舞いを変更するものなので、 +バグとみなされるかもしれない。 .PP .\"O Some combinations of the type modifiers and conversion .\"O specifiers defined by ANSI C do not make sense .\"O (e.g. .\"O .BR "%Ld" ). -ANSI C ¤ÇÄêµÁ¤µ¤ì¤¿·¿½¤¾þ»Ò¤ÈÊÑ´¹»ØÄê»Ò¤ÎÁȤ߹ç¤ï¤»¤ÎÃæ¤Ë¤Ï -°ÕÌ£¤ò¤Ê¤µ¤Ê¤¤¤â¤Î¤¬¤¢¤ë -(Î㤨¤Ð¡¢ -.BR "%Ld" )¡£ +ANSI C で定義された型修飾子と変換指定子の組み合わせの中には +意味をなさないものがある +(例えば、 +.BR "%Ld" )。 .\"O While they may have a well-defined behavior on Linux, this need not .\"O to be so on other architectures. .\"O Therefore it usually is better to use @@ -1228,20 +1228,20 @@ ANSI C .\"O \fBd\fP, \fBi\fP, \fBo\fP, \fBu\fP, \fBx\fP, and \fBX\fP .\"O conversions or .\"O .BR ll . -¤³¤ì¤é¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ -Linux ¾å¤Ç¤Ï¤Ï¤Ã¤­¤ê¤ÈÄêµÁ¤µ¤ì¤¿¿¶¤ëÉñ¤¤¤ò¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¤¬¡¢ -¾¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤âƱÍͤˤʤäƤ¤¤ë¤È¤Ï¸Â¤é¤Ê¤¤¡£ -¤½¤ì¤æ¤¨¤Ë¡¢¤Û¤È¤ó¤É¤Î¾ì¹ç¡¢ -ANSI C ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤½¤¾þ»Ò¤ò»ÈÍѤ·¤¿Êý¤¬Îɤ¤¡£ -¤¹¤Ê¤ï¤Á¡¢ +これらが指定された場合、 +Linux 上でははっきりと定義された振る舞いをするかもしれないが、 +他のアーキテクチャでも同様になっているとは限らない。 +それゆえに、ほとんどの場合、 +ANSI C で定義されていない修飾子を使用した方が良い。 +すなわち、 \fBd\fP, \fBi\fP, \fBo\fP, \fBu\fP, \fBx\fP, \fBX\fP -ÊÑ´¹¤ä +変換や .B ll -¤ÈÁȤ߹ç¤ï¤»¤ë¾ì¹ç¤Ë¤Ï¡¢ +と組み合わせる場合には、 .B L -¤ÎÂå¤ï¤ê¤Ë +の代わりに .B q -¤ò»ÈÍѤ·¤¿Êý¤¬Îɤ¤¡£ +を使用した方が良い。 .PP .\"O The usage of .\"O .B q @@ -1249,14 +1249,14 @@ ANSI C .\"O as it may be used in float conversions equivalently to .\"O .BR L . .B q -¤Î»ÈÍÑÊýË¡¤Ï 4.4BSD ¤ÈƱ¤¸¤Ç¤Ï¤Ê¤¤¡£ -4.4BSD ¤Ç¤Ï +の使用方法は 4.4BSD と同じではない。 +4.4BSD では .B q -¤Ï +は .B L -¤ÈƱÅù¤ËÉâÆ°¾®¿ô¤ÎÊÑ´¹¤Ë»ÈÍѤµ¤ì¤ë¡£ +と同等に浮動小数の変換に使用される。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getc (3), .BR printf (3) .BR setlocale (3), diff --git a/draft/man3/sched_getcpu.3 b/draft/man3/sched_getcpu.3 index 8d346233..ded7405b 100644 --- a/draft/man3/sched_getcpu.3 +++ b/draft/man3/sched_getcpu.3 @@ -27,60 +27,60 @@ .\" .TH SCHED_GETCPU 3 2010-10-31 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sched_getcpu \- determine CPU on which the calling thread is running -sched_getcpu \- ¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë CPU ¤òÃΤë +sched_getcpu \- 呼び出したスレッドが実行されている CPU を知る .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .\" Really:_BSD_SOURCE || _SVID_SOURCE .B #include .B int sched_getcpu(void); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR sched_getcpu () .\"O returns the number of the CPU on which the calling thread is currently executing. .BR sched_getcpu () -¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤¬¸½ºß¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë CPU ¤ÎÈÖ¹æ¤òÊÖ¤¹¡£ +は、呼び出したスレッドが現在実行されている CPU の番号を返す。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR sched_getcpu () .\"O returns a nonnegative CPU number. .\"O On error, \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR sched_getcpu () -¤ÏÈóÉé¤Î CPU ÈÖ¹æ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は非負の CPU 番号を返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B ENOSYS .\"O This kernel does not implement .\"O .BR getcpu (2). -¤³¤Î¥«¡¼¥Í¥ë¤Ç¤Ï +このカーネルでは .BR getcpu (2) -¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +が実装されていない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O This function is available since glibc 2.6. -¤³¤Î´Ø¿ô¤Ï glibc 2.6 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +この関数は glibc 2.6 以降で利用可能である。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O .BR sched_getcpu () .\"O is glibc specific. .BR sched_getcpu () -¤Ï glibc ¸ÇÍ­¤Ç¤¢¤ë¡£ +は glibc 固有である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The call .in +4n .nf @@ -92,9 +92,9 @@ cpu = sched_getcpu(); .\"O is equivalent to the following .\"O .BR getcpu (2) .\"O call: -¤Ï¡¢°Ê²¼¤Î +は、以下の .BR getcpu (2) -¤Î¸Æ¤Ó½Ð¤·¤ÈÅù²Á¤Ç¤¢¤ë¡£ +の呼び出しと等価である。 .in +4n .nf @@ -104,5 +104,5 @@ cpu = (s == \-1) ? s : c; .fi .in .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getcpu (2) diff --git a/draft/man3/seekdir.3 b/draft/man3/seekdir.3 index a0a12225..f72f9646 100644 --- a/draft/man3/seekdir.3 +++ b/draft/man3/seekdir.3 @@ -34,13 +34,13 @@ .\" .TH SEEKDIR 3 2009-03-11 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O seekdir \- set the position of the next readdir() call in the directory .\"O stream. -seekdir \- ¼¡¤Î readdir() ¸Æ¤Ó½Ð¤·¤Î¤¿¤á¤Ë¡¢¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥àÃæ¤Î°ÌÃÖ¤ò -ÀßÄꤹ¤ë +seekdir \- 次の readdir() 呼び出しのために、ディレクトリストリーム中の位置を +設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -50,15 +50,15 @@ seekdir \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR seekdir (): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR seekdir () .\"O function sets the location in the directory stream @@ -66,33 +66,33 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE .\"O .BR readdir (2) .\"O call will start. .BR seekdir () -´Ø¿ô¤Ï¡¢¼¡¤Î +関数は、次の .BR readdir (3) -¸Æ¤Ó½Ð¤·¤Î³«»Ï°ÌÃ֤Ǥ¢¤ë¡¢ -¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤ÎÃæ¤Ç¤Î°ÌÃÖ¤òÀßÄꤹ¤ë¡£ +呼び出しの開始位置である、 +ディレクトリストリームの中での位置を設定する。 .\"O .BR seekdir () .\"O should be used with an .\"O .I offset .\"O returned by .\"O .BR telldir (3). .BR seekdir () -¤Ï +は .BR telldir (3) -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë +によって返される .I offset -¤È¤È¤â¤Ë»ÈÍѤµ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +とともに使用されるべきである。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR seekdir () .\"O function returns no value. .BR seekdir () -´Ø¿ô¤Ï¡¢ÃͤòÊÖ¤µ¤Ê¤¤¡£ +関数は、値を返さない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.3BSD, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O In glibc up to version 2.1.1, the type of the .\"O .I offset .\"O argument was @@ -100,18 +100,18 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE .\"O POSIX.1-2001 specifies .\"O .IR long , .\"O and this is the type used since glibc 2.1.2. -¥Ð¡¼¥¸¥ç¥ó 2.1.1 °ÊÁ°¤Î glibc ¤Ç¤Ï¡¢ +バージョン 2.1.1 以前の glibc では、 .I offset -°ú¤­¿ô¤Î·¿¤Ï +引き数の型は .I off_t -¤Ç¤¢¤Ã¤¿¡£ -POSIX.1-2001 ¤Ç¤Ï +であった。 +POSIX.1-2001 では .I long -¤Èµ¬Äꤵ¤ì¤Æ¤ª¤ê¡¢glibc 2.1.2 °Ê¹ß¤Ç¤Ï +と規定されており、glibc 2.1.2 以降では .I long -¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +になっている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR lseek (2), .BR closedir (3), .BR opendir (3), diff --git a/draft/man3/sem_close.3 b/draft/man3/sem_close.3 index 816183f5..42eb6c56 100644 --- a/draft/man3/sem_close.3 +++ b/draft/man3/sem_close.3 @@ -28,11 +28,11 @@ .\" .TH SEM_CLOSE 3 2006-03-25 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sem_close \- close a named semaphore -sem_close \- ̾Á°ÉÕ¤­¥»¥Þ¥Õ¥©¤ò¥¯¥í¡¼¥º¤¹¤ë +sem_close \- 名前付きセマフォをクローズする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -40,53 +40,53 @@ sem_close \- ̾ .fi .sp .\"O Link with \fI\-lrt\fP or \fI\-pthread\fP. -\fI\-lrt\fP ¤Þ¤¿¤Ï \fI\-pthread\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP または \fI\-pthread\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR sem_close () .\"O closes the named semaphore referred to by .\"O .IR sem , .\"O allowing any resources that the system has allocated to .\"O the calling process for this semaphore to be freed. .BR sem_close () -¤Ï +は .I sem -¤¬»²¾È¤¹¤ë̾Á°ÉÕ¤­¥»¥Þ¥Õ¥©¤ò¥¯¥í¡¼¥º¤·¡¢ -¤³¤Î¥»¥Þ¥Õ¥©ÍѤ˸ƤӽФ·¸µ¥×¥í¥»¥¹¤Ë¥·¥¹¥Æ¥à¤¬³ä¤êÅö¤Æ¤Æ¤¤¤¿ -¥ê¥½¡¼¥¹¤ò²òÊü¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ +が参照する名前付きセマフォをクローズし、 +このセマフォ用に呼び出し元プロセスにシステムが割り当てていた +リソースを解放できるようにする。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success .\"O .BR sem_close () .\"O returns 0; on error, \-1 is returned, with .\"O .I errno .\"O set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR sem_close () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ +にエラーを示す値をセットする。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O .I sem .\"O is not a valid semaphore. .I sem -¤ÏÍ­¸ú¤Ê¥»¥Þ¥Õ¥©¤Ç¤Ï¤Ê¤¤¡£ +は有効なセマフォではない。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O All open named semaphores are automatically closed on process .\"O termination, or upon .\"O .BR execve (2). -¥ª¡¼¥×¥ó¤µ¤ì¤¿¤¹¤Ù¤Æ¤Î̾Á°ÉÕ¤­¥»¥Þ¥Õ¥©¤Ï¡¢¥×¥í¥»¥¹½ªÎ»»þ¡¢¤â¤·¤¯¤Ï +オープンされたすべての名前付きセマフォは、プロセス終了時、もしくは .BR execve (2) -¼Â¹Ô»þ¤Ë¼«Æ°Åª¤Ë¥¯¥í¡¼¥º¤µ¤ì¤ë¡£ +実行時に自動的にクローズされる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sem_getvalue (3), .BR sem_open (3), .BR sem_post (3), diff --git a/draft/man3/sem_destroy.3 b/draft/man3/sem_destroy.3 index 1ab32d8d..77a812e9 100644 --- a/draft/man3/sem_destroy.3 +++ b/draft/man3/sem_destroy.3 @@ -28,11 +28,11 @@ .\" .TH SEM_DESTROY 3 2006-03-25 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sem_destroy \- destroy an unnamed semaphore -sem_destroy \- ̾Á°¤Ê¤·¥»¥Þ¥Õ¥©¤òÇË´þ¤¹¤ë +sem_destroy \- 名前なしセマフォを破棄する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -40,77 +40,77 @@ sem_destroy \- ̾ .fi .sp .\"O Link with \fI\-lrt\fP or \fI\-pthread\fP. -\fI\-lrt\fP ¤Þ¤¿¤Ï \fI\-pthread\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP または \fI\-pthread\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR sem_destroy () .\"O destroys the unnamed semaphore at the address pointed to by .\"O .IR sem . .BR sem_destroy () -¤Ï +は .I sem -¤¬»Ø¤¹¥¢¥É¥ì¥¹¤Ë¤¢¤ë̾Á°¤Ê¤·¥»¥Þ¥Õ¥©¤òÇË´þ¤¹¤ë¡£ +が指すアドレスにある名前なしセマフォを破棄する。 .\"O Only a semaphore that has been initialized by .\"O .BR sem_init (3) .\"O should be destroyed using .\"O .BR sem_destroy (). .BR sem_destroy () -¤ò»È¤Ã¤ÆÇË´þ¤¹¤ë¤Î¤Ï¡¢ +を使って破棄するのは、 .BR sem_init (3) -¤Ç½é´ü²½¤·¤¿¥»¥Þ¥Õ¥©¤À¤±¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +で初期化したセマフォだけにすべきである。 .\"O Destroying a semaphore that other processes or threads are .\"O currently blocked on (in .\"O .BR sem_wait (3)) .\"O produces undefined behavior. -¾¤Î¥×¥í¥»¥¹¤ä¥¹¥ì¥Ã¥É¤¬ +他のプロセスやスレッドが .RB ( sem_wait (3) -¤Ç) ÂÔ¤Á¾õÂ֤ˤʤäƤ¤¤ë¥»¥Þ¥Õ¥©¤òÇË´þ¤·¤¿¾ì¹ç¤ÎµóÆ°¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +で) 待ち状態になっているセマフォを破棄した場合の挙動は定義されていない。 .\"O Using a semaphore that has been destroyed produces undefined results, .\"O until the semaphore has been reinitialized using .\"O .BR sem_init (3). -¤¹¤Ç¤ËÇË´þ¤µ¤ì¤¿¥»¥Þ¥Õ¥©¤ò¡¢ +すでに破棄されたセマフォを、 .BR sem_init (3) -¤ò»È¤Ã¤ÆºÆ½é´ü²½¤µ¤ì¤ëÁ°¤Ë»ÈÍѤ·¤¿¾ì¹ç¡¢¤½¤Î·ë²Ì¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +を使って再初期化される前に使用した場合、その結果は未定義である。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR sem_destroy () .\"O returns 0 on success; .\"O on error, \-1 is returned, and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR sem_destroy () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ +にエラーを示す値をセットする。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O .I sem .\"O is not a valid semaphore. .I sem -¤ÏÍ­¸ú¤Ê¥»¥Þ¥Õ¥©¤Ç¤Ï¤Ê¤¤¡£ +は有効なセマフォではない。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O An unnamed semaphore should be destroyed with .\"O .BR sem_destroy () .\"O before the memory in which it is located is deallocated. .\"O Failure to do this can result in resource leaks on some implementations. .\"O .\" But not on NPTL, where sem_destroy () is a no-op.. -̾Á°¤Ê¤·¥»¥Þ¥Õ¥©¤Ï¡¢¤½¤Î¥»¥Þ¥Õ¥©¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¥á¥â¥ê¤¬²òÊü¤µ¤ì¤ëÁ°¤Ë¡¢ +名前なしセマフォは、そのセマフォが置かれているメモリが解放される前に、 .BR sem_destroy () -¤ò»È¤Ã¤ÆÇË´þ¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£¤³¤ì¤ò¹Ô¤ï¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¼ÂÁõ¤Ë¤è¤Ã¤Æ¤Ï -¥ê¥½¡¼¥¹¤Î¥ê¡¼¥¯¤¬µ¯¤³¤ê¤¨¤ë¡£ -.\" NPTL ¤Ç¤Ï¥ê¡¼¥¯¤Ïµ¯¤³¤é¤Ê¤¤¡£sem_destroy () ¤Ï²¿¤â¤·¤Ê¤¤¤À¤±.. +を使って破棄しておくべきである。これを行わなかった場合、実装によっては +リソースのリークが起こりえる。 +.\" NPTL ではリークは起こらない。sem_destroy () は何もしないだけ.. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sem_init (3), .BR sem_post (3), .BR sem_wait (3), diff --git a/draft/man3/sem_getvalue.3 b/draft/man3/sem_getvalue.3 index 527340bc..7bbd8741 100644 --- a/draft/man3/sem_getvalue.3 +++ b/draft/man3/sem_getvalue.3 @@ -28,11 +28,11 @@ .\" .TH SEM_GETVALUE 3 2006-03-25 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sem_getvalue \- get the value of a semaphore -sem_getvalue \- ¥»¥Þ¥Õ¥©¤ÎÃͤò¼èÆÀ¤¹¤ë +sem_getvalue \- セマフォの値を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -40,20 +40,20 @@ sem_getvalue \- .fi .sp .\"O Link with \fI\-lrt\fP or \fI\-pthread\fP. -\fI\-lrt\fP ¤Þ¤¿¤Ï \fI\-pthread\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP または \fI\-pthread\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR sem_getvalue () .\"O places the current value of the semaphore pointed to .\"O .I sem .\"O into the integer pointed to by .\"O .IR sval . .BR sem_getvalue () -¤Ï¡¢ +は、 .I sem -¤¬»Ø¤¹¥»¥Þ¥Õ¥©¤Î¸½ºß¤ÎÃͤò +が指すセマフォの現在の値を .I sval -¤Ç»Ø¤¹À°¿ô¤Ë³ÊǼ¤¹¤ë¡£ +で指す整数に格納する。 .\"O If one or more processes or threads are blocked .\"O waiting to lock the semaphore with @@ -65,48 +65,48 @@ sem_getvalue \- .\"O of the number of processes and threads currently blocked in .\"O .BR sem_wait (3). .\"O Linux adopts the former behavior. -POSIX.1-2001 ¤Ë¤è¤ë¤È¡¢ -1¤Ä°Ê¾å¤Î¥×¥í¥»¥¹¤«¥¹¥ì¥Ã¥É¤¬ +POSIX.1-2001 によると、 +1つ以上のプロセスかスレッドが .BR sem_wait (3) -¤Ç¥»¥Þ¥Õ¥©¤Î¥í¥Ã¥¯ÂÔ¤Á¤ÇÄä»ß¤·¤Æ¤¤¤ë¾ì¹ç¡¢ +でセマフォのロック待ちで停止している場合、 .I sval -¤ÇÊÖ¤µ¤ì¤ëÃÍ¤Ï 0 ¤â¤·¤¯¤ÏÉé¤ÎÃͤΤ¤¤º¤ì¤«¤È¤Ê¤ë¡£ -Éé¤ÎÃͤξì¹ç¡¢¤½¤ÎÀäÂÐÃÍ¤Ï +で返される値は 0 もしくは負の値のいずれかとなる。 +負の値の場合、その絶対値は .BR sem_wait (3) -¤Ç¸½ºßÄä»ß¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤«¥¹¥ì¥Ã¥É¤Î¹ç·×¿ô¤ËÅù¤·¤¤¡£ -Linux ¤ÏÁ°¼Ô¤ÎÆ°ºî (0 ¤òÊÖ¤¹Æ°ºî) ¤òºÎÍѤ·¤Æ¤¤¤ë¡£ +で現在停止しているプロセスかスレッドの合計数に等しい。 +Linux は前者の動作 (0 を返す動作) を採用している。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR sem_getvalue () .\"O returns 0 on success; .\"O on error, \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR sem_getvalue () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ +にエラーを示す値をセットする。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O .I sem .\"O is not a valid semaphore. .I sem -¤ÏÍ­¸ú¤Ê¥»¥Þ¥Õ¥©¤Ç¤Ï¤Ê¤¤¡£ +は有効なセマフォではない。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The value of the semaphore may already have changed by the time .\"O .BR sem_getvalue () .\"O returns. .BR sem_getvalue () -¤¬ÊÖ¤ë¤È¤­¤Ë¤Ï¡¢¤¹¤Ç¤Ë¥»¥Þ¥Õ¥©¤ÎÃͤÏÊѲ½¤·¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +が返るときには、すでにセマフォの値は変化している可能性がある。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sem_post (3), .BR sem_wait (3), .BR sem_overview (7) diff --git a/draft/man3/sem_init.3 b/draft/man3/sem_init.3 index 5f18bcf2..471c9427 100644 --- a/draft/man3/sem_init.3 +++ b/draft/man3/sem_init.3 @@ -28,11 +28,11 @@ .\" .TH SEM_INIT 3 2008-07-27 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sem_init \- initialize an unnamed semaphore -sem_init \- ̾Á°¤Ê¤·¥»¥Þ¥Õ¥©¤ò½é´ü²½¤¹¤ë +sem_init \- 名前なしセマフォを初期化する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -40,9 +40,9 @@ sem_init \- ̾ .fi .sp .\"O Link with \fI\-lrt\fP or \fI\-pthread\fP. -\fI\-lrt\fP ¤Þ¤¿¤Ï \fI\-pthread\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP または \fI\-pthread\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR sem_init () .\"O initializes the unnamed semaphore at the address pointed to by .\"O .IR sem . @@ -50,19 +50,19 @@ sem_init \- ̾ .\"O .I value .\"O argument specifies the initial value for the semaphore. .BR sem_init () -¤Ï¡¢ +は、 .I sem -¤¬»Ø¤¹¥¢¥É¥ì¥¹¤Ë¤¢¤ë̾Á°¤Ê¤·¥»¥Þ¥Õ¥©¤ò½é´ü²½¤¹¤ë¡£ +が指すアドレスにある名前なしセマフォを初期化する。 .I value -°ú¤­¿ô¤Ï¤½¤Î¥»¥Þ¥Õ¥©¤Î½é´üÃͤò»ØÄꤹ¤ë¡£ +引き数はそのセマフォの初期値を指定する。 .\"O The .\"O .I pshared .\"O argument indicates whether this semaphore is to be shared .\"O between the threads of a process, or between processes. .I pshared -°ú¤­¿ô¤Ï¡¢¤³¤Î¥»¥Þ¥Õ¥©¤¬¥×¥í¥»¥¹Æâ¤Î¥¹¥ì¥Ã¥É´Ö¤Ç¶¦Í­¤µ¤ì¤ë¤Î¤«¡¢ -¥×¥í¥»¥¹´Ö¤Ç¶¦Í­¤µ¤ì¤ë¤Î¤«¡¢¤ò¼¨¤¹¡£ +引き数は、このセマフォがプロセス内のスレッド間で共有されるのか、 +プロセス間で共有されるのか、を示す。 .\"O If .\"O .I pshared @@ -72,9 +72,9 @@ sem_init \- ̾ .\"O (e.g., a global variable, or a variable allocated dynamically on .\"O the heap). .I pshared -¤¬ 0 ¤Î¾ì¹ç¡¢¥»¥Þ¥Õ¥©¤Ï¥×¥í¥»¥¹Æâ¤Î¥¹¥ì¥Ã¥É´Ö¤Ç¶¦Í­¤µ¤ì¤ë¡£ -¥»¥Þ¥Õ¥©¤Ï¤¹¤Ù¤Æ¤Î¥¹¥ì¥Ã¥É¤«¤é»²¾È²Äǽ¤Ê¥¢¥É¥ì¥¹¤ËÇÛÃÖ¤¹¤Ù¤­¤Ç¤¢¤ë -(Î㤨¤Ð¡¢Âç°èÊÑ¿ô¤ä¡¢¥Ò¡¼¥×¾å¤ËưŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿ÊÑ¿ô¤Ê¤É)¡£ +が 0 の場合、セマフォはプロセス内のスレッド間で共有される。 +セマフォはすべてのスレッドから参照可能なアドレスに配置すべきである +(例えば、大域変数や、ヒープ上に動的に割り当てられた変数など)。 .\"O If .\"O .I pshared @@ -93,47 +93,47 @@ sem_init \- ̾ .\"O .BR sem_wait (3), .\"O etc. .I pshared -¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢¥»¥Þ¥Õ¥©¤Ï¥×¥í¥»¥¹´Ö¤Ç¶¦Í­¤µ¤ì¤ë¡£¥»¥Þ¥Õ¥©¤Ï -¶¦Í­¥á¥â¥êÎΰè¤ËÇÛÃÖ¤¹¤Ù¤­¤Ç¤¢¤ë +が 0 以外の場合、セマフォはプロセス間で共有される。セマフォは +共有メモリ領域に配置すべきである .RB ( shm_open (3), .BR mmap (2), .BR shmget (2) -»²¾È)¡£ +参照)。 .RB ( fork (2) -¤ÇÀ¸À®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤Î¥á¥â¥ê¥Þ¥Ã¥Ô¥ó¥°¤ò·Ñ¾µ¤¹¤ë¤¿¤á¡¢ -»Ò¥×¥í¥»¥¹¤â¥»¥Þ¥Õ¥©¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£) -¶¦Í­¥á¥â¥êÎΰè¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¥×¥í¥»¥¹¤Ê¤é¤Ð¡¢¤É¤Î¥×¥í¥»¥¹¤Ç¤â +で生成された子プロセスは親プロセスのメモリマッピングを継承するため、 +子プロセスもセマフォにアクセスできる。) +共有メモリ領域にアクセスできるプロセスならば、どのプロセスでも .BR sem_post (3) -¤ä +や .BR sem_wait (3) -¤Ê¤É¤ò»È¤Ã¤Æ¥»¥Þ¥Õ¥©¤òÁàºî¤Ç¤­¤ë¡£ +などを使ってセマフォを操作できる。 .\"O Initializing a semaphore that has already been initialized .\"O results in undefined behavior. -¤¹¤Ç¤Ë½é´ü²½ºÑ¤Î¥»¥Þ¥Õ¥©¤ò½é´ü²½¤·¤¿¾ì¹ç¤ÎµóÆ°¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +すでに初期化済のセマフォを初期化した場合の挙動は定義されていない。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR sem_init () .\"O returns 0 on success; .\"O on error, \-1 is returned, and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR sem_init () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ +にエラーを示す値をセットする。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O .I value .\"O exceeds .\"O .BR SEM_VALUE_MAX . .I value -¤¬ +が .B SEM_VALUE_MAX -¤òĶ¤¨¤Æ¤¤¤ë¡£ +を超えている。 .TP .B ENOSYS .\"O .I pshared @@ -141,24 +141,24 @@ sem_init \- ̾ .\"O but the system does not support process-shared semaphores (see .\"O .BR sem_overview (7)). .I pshared -¤¬ 0 °Ê³°¤À¤¬¡¢¥·¥¹¥Æ¥à¤¬¥×¥í¥»¥¹¶¦Í­¥»¥Þ¥Õ¥©¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤ +が 0 以外だが、システムがプロセス共有セマフォをサポートしていない .RB ( sem_overview (7) -»²¾È)¡£ +参照)。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Bizarrely, POSIX.1-2001 does not specify the value that should .\"O be returned by a successful call to .\"O .BR sem_init (). .\"O POSIX.1-2008 rectifies this, specifying the zero return on success. -̯¤Ê¤³¤È¤Ë¡¢POSIX.1-2001 ¤Ï +妙なことに、POSIX.1-2001 は .BR sem_init () -¤¬À®¸ù¤·¤¿¾ì¹ç¤ËÊÖ¤¹¤Ù¤­Ãͤòµ¬Äꤷ¤Æ¤¤¤Ê¤¤¡£ -POSIX.1-2008 ¤Ç¤Ï¤³¤ì¤¬½¤Àµ¤µ¤ì¡¢À®¸ù»þ¤Ë¤Ï 0 ¤òÊÖ¤¹¤³¤È¤¬µ¬Äꤵ¤ì¤¿¡£ +が成功した場合に返すべき値を規定していない。 +POSIX.1-2008 ではこれが修正され、成功時には 0 を返すことが規定された。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sem_destroy (3), .BR sem_post (3), .BR sem_wait (3), diff --git a/draft/man3/sem_open.3 b/draft/man3/sem_open.3 index 4f1ceba8..fae839e0 100644 --- a/draft/man3/sem_open.3 +++ b/draft/man3/sem_open.3 @@ -29,11 +29,11 @@ .\" .TH SEM_OPEN 3 2009-02-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sem_open \- initialize and open a named semaphore -sem_open \- ̾Á°ÉÕ¤­¥»¥Þ¥Õ¥©¤ò½é´ü²½¤·¡¢¥ª¡¼¥×¥ó¤¹¤ë +sem_open \- 名前付きセマフォを初期化し、オープンする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .BR "#include " " /* For O_* constants */" .BR "#include " " /* For mode constants */" @@ -45,9 +45,9 @@ sem_open \- ̾ .fi .sp .\"O Link with \fI\-lrt\fP or \fI\-pthread\fP. -\fI\-lrt\fP ¤Þ¤¿¤Ï \fI\-pthread\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP または \fI\-pthread\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR sem_open () .\"O creates a new POSIX semaphore or opens an existing semaphore. .\"O The semaphore is identified by @@ -57,14 +57,14 @@ sem_open \- ̾ .\"O see .\"O .BR sem_overview (7). .BR sem_open () -¤Ï¡¢¿·µ¬¤Î POSIX ¥»¥Þ¥Õ¥©¤òºîÀ®¤¹¤ë¤«¡¢´û¸¤Î¥»¥Þ¥Õ¥©¤Î¥ª¡¼¥×¥ó¤ò¹Ô¤¦¡£ -¥»¥Þ¥Õ¥©¤Ï +は、新規の POSIX セマフォを作成するか、既存のセマフォのオープンを行う。 +セマフォは .I name -¤Ç¼±Ê̤µ¤ì¤ë¡£ +で識別される。 .I name -¤Î¹½À®¤Î¾ÜºÙ¤Ï +の構成の詳細は .BR sem_overview (7) -¤ò»²¾È¡£ +を参照。 .\"O The .\"O .I oflag @@ -72,12 +72,12 @@ sem_open \- ̾ .\"O (Definitions of the flags values can be obtained by including .\"O .IR .) .I oflag -°ú¤­¿ô¤Ë¤Ï¡¢ +引き数には、 .BR sem_open () -¤ÎÆ°ºî¤òÀ©¸æ¤¹¤ë¥Õ¥é¥°¤ò»ØÄꤹ¤ë -(oflag ¤ÎÃͤÎÄêµÁ¤Ï +の動作を制御するフラグを指定する +(oflag の値の定義は .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ë¤è¤êÆÀ¤é¤ì¤ë)¡£ +のインクルードにより得られる)。 .\"O If .\"O .B O_CREAT .\"O is specified in @@ -90,12 +90,12 @@ sem_open \- ̾ .\"O of the calling process. .\"O .\" In reality the file system IDs are used on Linux. .I oflag -¤Ë +に .B O_CREAT -¤¬»ØÄꤵ¤ì¤ë¤È¡¢¤Þ¤À¸ºß¤·¤Ê¤¤¾ì¹ç¤Ë¤Ï¤½¤Î¥»¥Þ¥Õ¥©¤¬ºîÀ®¤µ¤ì¤ë¡£ -¥»¥Þ¥Õ¥©¤Î½êÍ­¼Ô (¥æ¡¼¥¶ ID)¡¢¥°¥ë¡¼¥×½êÍ­¸¢ (¥°¥ë¡¼¥× ID) ¤Ë¤Ï¡¢ -¤½¤ì¤¾¤ì¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú UID¡¢¼Â¸ú GID ¤¬ÀßÄꤵ¤ì¤ë¡£ -.\" ¼ÂºÝ¤Ï¡¢Linux ¤Ç¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à ID ¤¬»ÈÍѤµ¤ì¤ë¡£ +が指定されると、まだ存在しない場合にはそのセマフォが作成される。 +セマフォの所有者 (ユーザ ID)、グループ所有権 (グループ ID) には、 +それぞれ呼び出し元プロセスの実効 UID、実効 GID が設定される。 +.\" 実際は、Linux ではファイルシステム ID が使用される。 .\"O If both .\"O .B O_CREAT .\"O and @@ -106,13 +106,13 @@ sem_open \- ̾ .\"O .I name .\"O already exists. .I oflag -¤Ë +に .B O_CREAT -¤È +と .B O_EXCL -¤ÎξÊý¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢»ØÄꤵ¤ì¤¿Ì¾Á° +の両方が指定された場合、指定された名前 .I name -¤Î¥»¥Þ¥Õ¥©¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¤È¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ +のセマフォがすでに存在するとエラーが返される。 .PP .\"O If .\"O .B O_CREAT @@ -120,9 +120,9 @@ sem_open \- ̾ .\"O .IR oflag , .\"O then two additional arguments must be supplied. .I oflag -¤Ë +に .B O_CREAT -¤ò»ØÄꤹ¤ë¾ì¹ç¡¢¤µ¤é¤Ë°ú¤­¿ô¤¬ 2 ¤ÄɬÍפǤ¢¤ë¡£ +を指定する場合、さらに引き数が 2 つ必要である。 .\"O The .\"O .I mode .\"O argument specifies the permissions to be placed on the new semaphore, @@ -134,15 +134,15 @@ sem_open \- ̾ .\"O Both read and write permission should be granted to each class of .\"O user that will access the semaphore. .I mode -°ú¤­¿ô¤Ï¡¢ +引き数は、 .BR open (2) -¤ÈƱ¤¸¤è¤¦¤Ë¡¢¿·¤·¤¤¥»¥Þ¥Õ¥©¤ËÀßÄꤵ¤ì¤ë¥¢¥¯¥»¥¹µö²Ä (permission) ¤ò -»ØÄꤹ¤ë¡£µö²ÄÀßÄê¤Ï¥×¥í¥»¥¹¤Î umask ¤Ç¥Þ¥¹¥¯¤µ¤ì¤ë -(µö²Ä¥Ó¥Ã¥È¤Î¥·¥ó¥Ü¥ëÄêµÁ¤Ï +と同じように、新しいセマフォに設定されるアクセス許可 (permission) を +指定する。許可設定はプロセスの umask でマスクされる +(許可ビットのシンボル定義は .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ë¤è¤êÆÀ¤é¤ì¤ë)¡£ -¥»¥Þ¥Õ¥©¤Ë¥¢¥¯¥»¥¹¤·¤è¤¦¤È¤¹¤ë¥æ¡¼¥¶¤Ï¡¢Æɤ߽Ф·µö²Ä¤È½ñ¤­¹þ¤ßµö²Ä¤Î -ξÊý¤òÆÀ¤ëɬÍפ¬¤¢¤ë¡£ +のインクルードにより得られる)。 +セマフォにアクセスしようとするユーザは、読み出し許可と書き込み許可の +両方を得る必要がある。 .\"O The .\"O .I value .\"O argument specifies the initial value for the new semaphore. @@ -156,17 +156,17 @@ sem_open \- ̾ .\"O .I value .\"O are ignored. .I value -°ú¤­¿ô¤Ï¿·¤·¤¤¥»¥Þ¥Õ¥©¤Î½é´üÃͤò»ØÄꤹ¤ë¡£ +引き数は新しいセマフォの初期値を指定する。 .B O_CREAT -¤¬»ØÄꤵ¤ì¡¢»ØÄꤷ¤¿Ì¾Á° +が指定され、指定した名前 .I name -¤Î¥»¥Þ¥Õ¥©¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢ +のセマフォがすでに存在する場合、 .I mode -¤È +と .I value -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR sem_open () .\"O returns the address of the new semaphore; @@ -178,25 +178,25 @@ sem_open \- ̾ .\"O with .\"O .I errno .\"O set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR sem_open () -¤Ï¿·¤·¤¤¥»¥Þ¥Õ¥©¤Î¥¢¥É¥ì¥¹¤òÊÖ¤¹¡£ -¤³¤Î¥¢¥É¥ì¥¹¤Ï¾¤Î¥»¥Þ¥Õ¥©´ØÏ¢¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹ºÝ¤Ë»ÈÍѤµ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ +は新しいセマフォのアドレスを返す。 +このアドレスは他のセマフォ関連の関数を呼び出す際に使用される。 +エラーの場合、 .BR sem_open () -¤Ï +は .B SEM_FAILED -¤òÊÖ¤·¡¢ +を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ +にエラーを示す値をセットする。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O The semaphore exists, but the caller does not have permission to .\"O open it. -¤½¤Î¥»¥Þ¥Õ¥©¤¬Â¸ºß¤¹¤ë¤¬¡¢¸Æ¤Ó½Ð¤·¸µ¤Ë¤Ï¤½¤Î¥»¥Þ¥Õ¥©¤ò¥ª¡¼¥×¥ó¤¹¤ë -µö²Ä¤¬¤Ê¤¤¡£ +そのセマフォが存在するが、呼び出し元にはそのセマフォをオープンする +許可がない。 .TP .B EEXIST .\"O Both @@ -209,42 +209,42 @@ sem_open \- ̾ .\"O .I name .\"O already exists. .I oflag -¤Ë +に .B O_CREAT -¤È +と .B O_EXCL -¤ÎξÊý¤¬»ØÄꤵ¤ì¤¿¤¬¡¢ +の両方が指定されたが、 .I name -¤È¤¤¤¦Ì¾Á°¤Î¥»¥Þ¥Õ¥©¤Ï¤¹¤Ç¤Ë¸ºß¤¹¤ë¡£ +という名前のセマフォはすでに存在する。 .TP .B EINVAL .\"O .I value .\"O was greater than .\"O .BR SEM_VALUE_MAX . .I value -¤¬ +が .B SEM_VALUE_MAX -¤è¤ê¤âÂ礭¤¤¡£ +よりも大きい。 .TP .B EINVAL .\"O .I name .\"O consists of just "/", followed by no other characters. .I name -¤¬ "/" ¤À¤±¤Ç¹½À®¤µ¤ì¡¢¤½¤Î¸å¤í¤Ë¾¤Îʸ»ú¤¬Â³¤¤¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +が "/" だけで構成され、その後ろに他の文字が続いていなかった。 .TP .B EMFILE .\"O The process already has the maximum number of files and open. -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¿ô¤¬¤¹¤Ç¤Ë¤½¤Î¥×¥í¥»¥¹¤Ë¤ª¤±¤ë¾å¸Â¤Ë㤷¤Æ¤¤¤ë¡£ +オープンされたファイル数がすでにそのプロセスにおける上限に達している。 .TP .B ENAMETOOLONG .\"O .I name .\"O was too long. .I name -¤¬Ä¹¤¹¤®¤ë¡£ +が長すぎる。 .TP .B ENFILE .\"O The system limit on the total number of open files has been reached. -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ëÁí¿ô¤¬¥·¥¹¥Æ¥àÁ´ÂΤǤξå¸Â¤Ë㤷¤Æ¤¤¤ë¡£ +オープンされたファイル総数がシステム全体での上限に達している。 .TP .B ENOENT .\"O The @@ -255,13 +255,13 @@ sem_open \- ̾ .\"O .I name .\"O exists; .I oflag -¤Ë +に .B O_CREAT -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤ª¤é¤º¡¢ +フラグが指定されておらず、 .I name -¤È¤¤¤¦Ì¾Á°¤Î¥»¥Þ¥Õ¥©¤â¸ºß¤·¤Ê¤¤¡£ +という名前のセマフォも存在しない。 .\"O or, -¤Þ¤¿¤Ï¡¢ +または、 .\" this error can occur if we have a name of the (nonportable) form .\" /dir/name, and the directory /dev/shm/dir does not exist. .\"O .B O_CREAT @@ -269,18 +269,18 @@ sem_open \- ̾ .\"O .I name .\"O wasn't well formed. .B O_CREAT -¤¬»ØÄꤵ¤ì¤¿¤¬¡¢ +が指定されたが、 .I name -¤¬Å¬ÀڤʷÁ¼°¤Ç¤Ï¤Ê¤«¤Ã¤¿¡£ +が適切な形式ではなかった。 .TP .B ENOMEM .\"O Insufficient memory. -½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +十分なメモリがない。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sem_close (3), .BR sem_getvalue (3), .BR sem_post (3), diff --git a/draft/man3/sem_post.3 b/draft/man3/sem_post.3 index 9a15edab..d98e3e55 100644 --- a/draft/man3/sem_post.3 +++ b/draft/man3/sem_post.3 @@ -28,11 +28,11 @@ .\" .TH SEM_POST 3 2009-03-30 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sem_post \- unlock a semaphore -sem_post \- ¥»¥Þ¥Õ¥©¤Î¥í¥Ã¥¯¤ò²ò½ü¤¹¤ë +sem_post \- セマフォのロックを解除する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -40,9 +40,9 @@ sem_post \- .fi .sp .\"O Link with \fI\-lrt\fP or \fI\-pthread\fP. -\fI\-lrt\fP ¤Þ¤¿¤Ï \fI\-pthread\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP または \fI\-pthread\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR sem_post () .\"O increments (unlocks) the semaphore pointed to by .\"O .IR sem . @@ -51,58 +51,58 @@ sem_post \- .\"O .BR sem_wait (3) .\"O call will be woken up and proceed to lock the semaphore. .BR sem_post () -¤Ï¡¢ +は、 .I sem -¤¬»Ø¤¹¥»¥Þ¥Õ¥©¤ÎÃͤò 1 Áý¤ä¤¹ (¥í¥Ã¥¯¤ò²ò½ü¤¹¤ë)¡£¤½¤Î·ë²Ì¡¢ -¥»¥Þ¥Õ¥©¤ÎÃÍ¤Ï 0 ¤è¤êÂ礭¤ÊÃͤËÊѲ½¤·¡¢ +が指すセマフォの値を 1 増やす (ロックを解除する)。その結果、 +セマフォの値は 0 より大きな値に変化し、 .BR sem_wait (3) -¤ÇÄä»ß¤·¤Æ¤¤¤ëÊÌ¤Î¥×¥í¥»¥¹¤ä¥¹¥ì¥Ã¥É¤¬¸Æ¤Óµ¯¤³¤µ¤ì¡¢ -¥»¥Þ¥Õ¥©¤ò¥í¥Ã¥¯¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +で停止している別のプロセスやスレッドが呼び起こされ、 +セマフォをロックできるようになる。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR sem_post () .\"O returns 0 on success; .\"O on error, the value of the semaphore is left unchanged, .\"O \-1 is returned, and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR sem_post () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢¥»¥Þ¥Õ¥©¤ÎÃͤÏÊѹ¹¤»¤º¤Ë¡¢ \-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、セマフォの値は変更せずに、 \-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ +にエラーを示す値をセットする。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O .I sem .\"O is not a valid semaphore. .I sem -¤ÏÍ­¸ú¤Ê¥»¥Þ¥Õ¥©¤Ç¤Ï¤Ê¤¤¡£ +は有効なセマフォではない。 .TP .B EOVERFLOW .\" Added in POSIX.1-2008 TC1 (Austin Interpretation 213) .\"O The maximum allowable value for a semaphore would be exceeded. -°ì¤Ä¤Î¥»¥Þ¥Õ¥©¤Ç»ÈÍѤǤ­¤ëºÇÂçÃͤòĶ¤¨¤Æ¤·¤Þ¤¦¤È¤³¤í¤Ç¤¢¤Ã¤¿¡£ +一つのセマフォで使用できる最大値を超えてしまうところであった。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .BR sem_post () .\"O is async-signal-safe: .\"O it may be safely called within a signal handler. .BR sem_post () -¤Ï async-signal-safe ¤Ç¤¢¤ë¡£ -¤Ä¤Þ¤ê¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ÎÃæ¤Ç¤â°ÂÁ´¤Ë¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +は async-signal-safe である。 +つまり、シグナルハンドラの中でも安全に呼び出すことができる。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O See .\"O .BR sem_wait (3). .BR sem_wait (3) -»²¾È¡£ +参照。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sem_getvalue (3), .BR sem_wait (3), .BR sem_overview (7) diff --git a/draft/man3/sem_unlink.3 b/draft/man3/sem_unlink.3 index c37cefa2..0a436821 100644 --- a/draft/man3/sem_unlink.3 +++ b/draft/man3/sem_unlink.3 @@ -28,11 +28,11 @@ .\" .TH SEM_UNLINK 3 2006-03-25 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sem_unlink \- remove a named semaphore -sem_unlink \- ̾Á°ÉÕ¤­¥»¥Þ¥Õ¥©¤òºï½ü¤¹¤ë +sem_unlink \- 名前付きセマフォを削除する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -40,9 +40,9 @@ sem_unlink \- ̾ .fi .sp .\"O Link with \fI\-lrt\fP or \fI\-pthread\fP. -\fI\-lrt\fP ¤Þ¤¿¤Ï \fI\-pthread\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP または \fI\-pthread\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR sem_unlink () .\"O removes the named semaphore referred to by .\"O .IR name . @@ -50,48 +50,48 @@ sem_unlink \- ̾ .\"O The semaphore is destroyed once all other processes that have .\"O the semaphore open close it. .BR sem_unlink () -¤Ï¡¢ +は、 .I name -¤Ç»²¾È¤µ¤ì¤ë̾Á°ÉÕ¤­¥»¥Þ¥Õ¥©¤òºï½ü¤¹¤ë¡£ -¥»¥Þ¥Õ¥©¤Î̾Á°¤Ïľ¤Á¤Ëºï½ü¤µ¤ì¤ë¡£ -¤³¤Î¥»¥Þ¥Õ¥©¤ò¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¾¤Î¤¹¤Ù¤Æ¤Î¥×¥í¥»¥¹¤¬¥»¥Þ¥Õ¥©¤ò -ÊĤ¸¤Æ½é¤á¤Æ¥»¥Þ¥Õ¥©¤Îºï½ü¤¬¹Ô¤ï¤ì¤ë¡£ +で参照される名前付きセマフォを削除する。 +セマフォの名前は直ちに削除される。 +このセマフォをオープンしている他のすべてのプロセスがセマフォを +閉じて初めてセマフォの削除が行われる。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success .\"O .BR sem_unlink () .\"O returns 0; on error, \-1 is returned, with .\"O .I errno .\"O set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR sem_unlink () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ +にエラーを示す値をセットする。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O The caller does not have permission to unlink this semaphore. -¸Æ¤Ó½Ð¤·¸µ¤Ë¤Ï¤³¤Î¥»¥Þ¥Õ¥©¤òºï½ü¤¹¤ëµö²Ä¤¬¤Ê¤¤¡£ +呼び出し元にはこのセマフォを削除する許可がない。 .TP .B ENAMETOOLONG .\"O .I name .\"O was too long. .I name -¤¬Ä¹¤¹¤®¤ë¡£ +が長すぎる。 .TP .B ENOENT .\"O There is no semaphore with the given .\"O .IR name . -»ØÄꤵ¤ì¤¿Ì¾Á° +指定された名前 .I name -¤Î¥»¥Þ¥Õ¥©¤¬Â¸ºß¤·¤Ê¤¤¡£ +のセマフォが存在しない。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sem_getvalue (3), .BR sem_open (3), .BR sem_post (3), diff --git a/draft/man3/sem_wait.3 b/draft/man3/sem_wait.3 index 87dc9292..c47d339a 100644 --- a/draft/man3/sem_wait.3 +++ b/draft/man3/sem_wait.3 @@ -28,11 +28,11 @@ .\" .TH SEM_WAIT 3 2010-02-25 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sem_wait, sem_timedwait, sem_trywait \- lock a semaphore -sem_wait, sem_timedwait, sem_trywait \- ¥»¥Þ¥Õ¥©¤ò¥í¥Ã¥¯¤¹¤ë +sem_wait, sem_timedwait, sem_trywait \- セマフォをロックする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -45,19 +45,19 @@ sem_wait, sem_timedwait, sem_trywait \- .sp .sp .\"O Link with \fI\-lrt\fP or \fI\-pthread\fP. -\fI\-lrt\fP ¤Þ¤¿¤Ï \fI\-pthread\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP または \fI\-pthread\fP でリンクする。 .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR sem_timedwait (): _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR sem_wait () .\"O decrements (locks) the semaphore pointed to by .\"O .IR sem . @@ -68,14 +68,14 @@ _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O the decrement (i.e., the semaphore value rises above zero), .\"O or a signal handler interrupts the call. .BR sem_wait () -¤Ï +は .I sem -¤¬»Ø¤¹¥»¥Þ¥Õ¥©¤ÎÃͤò 1 ¸º¤é¤¹ (¥í¥Ã¥¯¤¹¤ë)¡£ -¥»¥Þ¥Õ¥©¤ÎÃͤ¬ 0 ¤è¤êÂ礭¤¤¾ì¹ç¡¢¸º»»¤¬¼Â¹Ô¤µ¤ì¡¢´Ø¿ô¤Ïľ¤Á¤ËÉüµ¢¤¹¤ë¡£ -¥»¥Þ¥Õ¥©¤Î¸½ºßÃͤ¬ 0 ¤Î¾ì¹ç¤Ë¤Ï¡¢¸º»»¤ò¼Â¹Ô¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë -(¤Ä¤Þ¤ê¡¢¥»¥Þ¥Õ¥©¤ÎÃͤ¬ 0 ¤è¤êÂ礭¤ÊÃͤˤʤë) ¤Þ¤Ç¡¢¤â¤·¤¯¤Ï -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤·¤¬ÃæÃǤµ¤ì¤ë¤Þ¤Ç¡¢ -´Ø¿ô¸Æ¤Ó½Ð¤·¤ÏÄä»ß (block) ¤¹¤ë¡£ +が指すセマフォの値を 1 減らす (ロックする)。 +セマフォの値が 0 より大きい場合、減算が実行され、関数は直ちに復帰する。 +セマフォの現在値が 0 の場合には、減算を実行できるようになる +(つまり、セマフォの値が 0 より大きな値になる) まで、もしくは +シグナルハンドラによって呼び出しが中断されるまで、 +関数呼び出しは停止 (block) する。 .\"O .BR sem_trywait () .\"O is the same as @@ -87,14 +87,14 @@ _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O .BR EAGAIN ) .\"O instead of blocking. .BR sem_trywait () -¤Ï +は .BR sem_wait () -¤ÈƱ¤¸¤À¤¬¡¢¥»¥Þ¥Õ¥©Ãͤθº»»¤ò¤¹¤°¤Ë¼Â¹Ô¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¡¢ -Ää»ß (block) ¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¥¨¥é¡¼¤ÇÉüµ¢¤¹¤ë +と同じだが、セマフォ値の減算をすぐに実行できなかった場合に、 +停止 (block) するのではなくエラーで復帰する .RI ( errno -¤Ë +に .B EAGAIN -¤¬¥»¥Ã¥È¤µ¤ì¤ë) ÅÀ¤¬°Û¤Ê¤ë¡£ +がセットされる) 点が異なる。 .\"O .BR sem_timedwait () .\"O is the same as @@ -109,18 +109,18 @@ _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O in seconds and nanoseconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC). .\"O This structure is defined as follows: .BR sem_timedwait () -¤Ï +は .BR sem_wait () -¤ÈƱ¤¸¤À¤¬¡¢¥»¥Þ¥Õ¥©Ãͤθº»»¤ò¤¹¤°¤Ë¼Â¹Ô¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë -´Ø¿ô¸Æ¤Ó½Ð¤·¤¬Ää»ß¤¹¤ë»þ´Ö¤Î¾å¸Â¤ò +と同じだが、セマフォ値の減算をすぐに実行できなかった場合に +関数呼び出しが停止する時間の上限を .I abs_timeout -¤Ç»ØÄꤹ¤ëÅÀ¤¬°Û¤Ê¤ë¡£ +で指定する点が異なる。 .I abs_timeout -°ú¤­¿ô¤Ï¡¢¥¿¥¤¥à¥¢¥¦¥È»þ¹ï¤ò»ØÄꤹ¤ë¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤³¤Î¹½Â¤ÂΤˤϡ¢¥¿¥¤¥à¥¢¥¦¥È»þ¹ï¤ò»þ¹ïµª¸µ (Epoch; -1970-01-01 00:00:00 +0000 (UTC)) ¤«¤é¤Î -·Ð²á»þ´Ö (ÉáܥʥÎÉÃ) ¤Ç»ØÄꤹ¤ë¡£ -¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +引き数は、タイムアウト時刻を指定する構造体へのポインタである。 +この構造体には、タイムアウト時刻を時刻紀元 (Epoch; +1970-01-01 00:00:00 +0000 (UTC)) からの +経過時間 (秒+ナノ秒) で指定する。 +構造体は以下のように定義されている: .nf .in +4n @@ -139,14 +139,14 @@ struct timespec { .\"O .RI ( errno .\"O set to .\"O .BR ETIMEDOUT ). -´Ø¿ô¸Æ¤Ó½Ð¤·»þÅÀ¤Ç¤¹¤Ç¤Ë¥¿¥¤¥à¥¢¥¦¥È¤Ë»ØÄꤷ¤¿»þ¹ï¤¬²á¤®¤Æ¤ª¤ê¡¢ -¤«¤Ä¥»¥Þ¥Õ¥©¤ò¤¹¤°¤Ë¥í¥Ã¥¯¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ +関数呼び出し時点ですでにタイムアウトに指定した時刻が過ぎており、 +かつセマフォをすぐにロックできなかった場合は、 .BR sem_timedwait () -¤Ï¥¿¥¤¥à¥¢¥¦¥È¥¨¥é¡¼ +はタイムアウトエラー .RI ( errno -¤Ë +に .B ETIMEDOUT -¤¬¥»¥Ã¥È¤µ¤ì¤ë) ¤Ç¼ºÇÔ¤¹¤ë¡£ +がセットされる) で失敗する。 .\"O If the operation can be performed immediately, then .\"O .BR sem_timedwait () @@ -155,92 +155,92 @@ struct timespec { .\"O Furthermore, the validity of .\"O .I abs_timeout .\"O is not checked in this case. -¥»¥Þ¥Õ¥©Áàºî¤¬¤¹¤°¤Ë¼Â¹Ô¤Ç¤­¤ë¤È¤­¤Ï¡¢ +セマフォ操作がすぐに実行できるときは、 .I abs_timeout -¤¬¤É¤ó¤ÊÃͤǤ¢¤Ã¤Æ¤â +がどんな値であっても .BR sem_timedwait () -¤¬¼ºÇÔ¤¹¤ë¤³¤È¤Ï·è¤·¤Æ¤Ê¤¤¡£¤µ¤é¤Ë¤¤¤¦¤È¡¢¤³¤Î¾ì¹ç¤Ë¤Ï +が失敗することは決してない。さらにいうと、この場合には .I abs_timeout -¤ÎÀµÅöÀ­¤Î¸¡ºº¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ +の正当性の検査は行われない。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O All of these functions return 0 on success; .\"O on error, the value of the semaphore is left unchanged, .\"O \-1 is returned, and .\"O .I errno .\"O is set to indicate the error. -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢¥»¥Þ¥Õ¥©¤ÎÃͤòÊѹ¹¤»¤º¤Ë¡¢\-1 ¤òÊÖ¤·¡¢ +成功すると、これらの関数は 0 を返す。 +エラーの場合、セマフォの値を変更せずに、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ +にエラーを示す値をセットする。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINTR .\"O The call was interrupted by a signal handler; see .\"O .BR signal (7). -¸Æ¤Ó½Ð¤·¤Ï¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤êÃæÃǤµ¤ì¤¿¡£ +呼び出しはシグナルハンドラにより中断された。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .\"O .I sem .\"O is not a valid semaphore. .I sem -¤ÏÍ­¸ú¤Ê¥»¥Þ¥Õ¥©¤Ç¤Ê¤¤¡£ +は有効なセマフォでない。 .PP .\"O The following additional error can occur for .\"O .BR sem_trywait (): .BR sem_trywait () -¤Î¾ì¹ç¤Ë¤Ï¡¢¾åµ­¤Ë²Ã¤¨¤Æ°Ê²¼¤Î¥¨¥é¡¼¤âµ¯¤³¤ë¡£ +の場合には、上記に加えて以下のエラーも起こる。 .TP .B EAGAIN .\"O The operation could not be performed without blocking (i.e., the .\"O semaphore currently has the value zero). -Ää»ß (block) ¤»¤º¤Ë¥í¥Ã¥¯Áàºî¤ò´°Î»¤Ç¤­¤Ê¤«¤Ã¤¿ (¤Ä¤Þ¤ê¡¢ -¥»¥Þ¥Õ¥©¤Î¸½ºß¤ÎÃͤ¬ 0 ¤Ç¤¢¤Ã¤¿)¡£ +停止 (block) せずにロック操作を完了できなかった (つまり、 +セマフォの現在の値が 0 であった)。 .PP .\"O The following additional errors can occur for .\"O .BR sem_timedwait (): .BR sem_timedwait () -¤Î¾ì¹ç¡¢°Ê²¼¤Î¥¨¥é¡¼¤âµ¯¤³¤ë¡£ +の場合、以下のエラーも起こる。 .TP .B EINVAL .\"O The value of .\"O .I abs_timeout.tv_nsecs .\"O is less than 0, or greater than or equal to 1000 million. .I abs_timeout.tv_nsecs -¤ÎÃͤ¬ 0 ̤Ëþ¡¢¤â¤·¤¯¤Ï 1,000,000,000 °Ê¾å¤Ç¤¢¤ë¡£ +の値が 0 未満、もしくは 1,000,000,000 以上である。 .TP .B ETIMEDOUT .\"O The call timed out before the semaphore could be locked. -¥»¥Þ¥Õ¥©¤Î¥í¥Ã¥¯¤ËÀ®¸ù¤¹¤ëÁ°¤Ë»þ´ÖÀÚ¤ì¤È¤Ê¤Ã¤¿¡£ +セマフォのロックに成功する前に時間切れとなった。 .\"O .\" POSIX.1-2001 also allows EDEADLK -- "A deadlock condition .\"O .\" was detected", but this does not occur on Linux(?). -.\" POSIX.1-2001 ¤Ç¤Ï¥¨¥é¡¼¤È¤·¤Æ EDEADLK ¤âÍÑ°Õ¤·¤Æ¤¤¤ë¡£ -.\" ¤³¤ì¤Ï¥Ç¥Ã¥É¥í¥Ã¥¯¾ò·ï¤ò¸¡½Ð¤·¤¿¤³¤È¤ò¼¨¤¹¤â¤Î¤À¤¬¡¢ -.\" Linux ¤ÇȯÀ¸¤¹¤ë¤³¤È¤Ï¤Ê¤¤(?) +.\" POSIX.1-2001 ではエラーとして EDEADLK も用意している。 +.\" これはデッドロック条件を検出したことを示すものだが、 +.\" Linux で発生することはない(?) .\"O .SH CONFORMING TO POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O A signal handler always interrupts a blocked call to .\"O one of these functions, regardless of the use of the .\"O .BR sigaction (2) .\"O .B SA_RESTART .\"O flag. -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ï¡¢ +シグナルハンドラは、 .BR sigaction (2) -¤Î +の .B SA_RESTART -¥Õ¥é¥°¤ò»ÈÍѤ·¤Æ¤¤¤ë¤«¤É¤¦¤«¤Ë´Ø¤ï¤é¤º¡¢¤³¤ì¤é¤Î´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤¬ -Ää»ß¤·¤Æ¤¤¤ë¾ì¹ç¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê¾ï¤ËÃæÃǤµ¤ì¤ë¡£ +フラグを使用しているかどうかに関わらず、これらの関数の呼び出しが +停止している場合、シグナルハンドラにより常に中断される。 .\"O .\" sem_wait() is always interrupted on most other implementations, .\"O .\" but on FreeBSD 5.4 SA_RESTART does cause restarting. -.\" sem_wait() ¤Ï¾¤Î¤Û¤È¤ó¤É¤Î¼ÂÁõ¤Ç¤Ï¾ï¤ËÃæÃǤµ¤ì¤ë¤¬¡¢ -.\" FreeBSD 5.4 ¤Ç¤Ï SA_RESTART ¤ò»ØÄꤷ¤Æ¤ª¤¯¤È¼Â¹Ô¤¬ºÆ³«¤µ¤ì¤ë¡£ +.\" sem_wait() は他のほとんどの実装では常に中断されるが、 +.\" FreeBSD 5.4 では SA_RESTART を指定しておくと実行が再開される。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .PP .\"O The (somewhat trivial) program shown below operates on an .\"O unnamed semaphore. @@ -259,21 +259,21 @@ POSIX.1-2001. .\"O of the timeout, in seconds, for .\"O .BR sem_timedwait (). .\"O The following shows what happens on two different runs of the program: -°Ê²¼¤Ë¼¨¤¹ (¤Á¤ç¤Ã¤È¤·¤¿) ¥×¥í¥°¥é¥à¤Ï̾Á°¤Ê¤·¥»¥Þ¥Õ¥©¤ÎÁàºî¤ò¹Ô¤¦¡£ -¥×¥í¥°¥é¥à¤Ï¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤ò 2 ¤Ä¼è¤ë¡£ -ºÇ½é¤Î°ú¤­¿ô¤Ë¤Ï¡¢ +以下に示す (ちょっとした) プログラムは名前なしセマフォの操作を行う。 +プログラムはコマンドライン引き数を 2 つ取る。 +最初の引き数には、 .B SIGALRM -¥·¥°¥Ê¥ë¤òÀ¸À®¤¹¤ë¤¿¤á¤Î¥¢¥é¡¼¥à¥¿¥¤¥Þ¡¼¤ÎÀßÄê¤Ë»È¤ï¤ì¤ëÃͤò -ÉÃñ°Ì¤Ç»ØÄꤹ¤ë¡£¤³¤Î¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ï¡¢ +シグナルを生成するためのアラームタイマーの設定に使われる値を +秒単位で指定する。このシグナルハンドラは、 .I main() -Æâ¤Ç +内で .BR sem_timedwait () -¤ò»È¤Ã¤ÆÂԤäƤ¤¤ë¥»¥Þ¥Õ¥©¤ò¡¢ +を使って待っているセマフォを、 .BR sem_post (3) -¤ò»È¤Ã¤Æ²Ã»»¤¹¤ë¡£ -2ÈÖÌܤΰú¤­¿ô¤Ë¤Ï¡¢ +を使って加算する。 +2番目の引き数には、 .BR sem_timedwait () -¤ËÅϤ¹¥¿¥¤¥à¥¢¥¦¥È¤Þ¤Ç¤Î»þ´Ö¤òÉÃñ°Ì¤Ç»ØÄꤹ¤ë¡£ +に渡すタイムアウトまでの時間を秒単位で指定する。 .in +4n .nf @@ -288,7 +288,7 @@ sem_timedwait() timed out .fi .in .\"O .SS Program source -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -367,7 +367,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR clock_gettime (2), .BR sem_getvalue (3), .BR sem_post (3), diff --git a/draft/man3/setaliasent.3 b/draft/man3/setaliasent.3 index 039dcb15..acb8a575 100644 --- a/draft/man3/setaliasent.3 +++ b/draft/man3/setaliasent.3 @@ -10,12 +10,12 @@ .\" .TH SETALIASENT 3 2003-09-09 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O setaliasent, endaliasent, getaliasent, getaliasent_r, .\"O getaliasbyname, getaliasbyname_r \- read an alias entry -setaliasent, endaliasent, getaliasent, getaliasent_r, getaliasbyname, getaliasbyname_r \- ¥¨¥¤¥ê¥¢¥¹¥¨¥ó¥È¥ê¤òÆɤ߹þ¤à +setaliasent, endaliasent, getaliasent, getaliasent_r, getaliasbyname, getaliasbyname_r \- エイリアスエントリを読み込む .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .B "void setaliasent(void);" @@ -34,43 +34,43 @@ setaliasent, endaliasent, getaliasent, getaliasent_r, getaliasbyname, getaliasby .br .BI " char *" buffer ", size_t " buflen ", struct aliasent **" res ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O One of the databases available with the Name Service Switch (NSS) .\"O is the aliases database, that contains mail aliases. .\"O (To find out which databases are supported, try getent \-\-help .) -¥Í¡¼¥à¥µ¡¼¥Ó¥¹¥¹¥¤¥Ã¥Á (Name Service Switch, NSS) ¤Ç -ÍøÍѲÄǽ¤Ê¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î 1 ¤Ä¤È¤·¤Æ¡¢ -¥á¡¼¥ë¥¨¥¤¥ê¥¢¥¹¤òÊÝ»ý¤¹¤ë¥¨¥¤¥ê¥¢¥¹¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬¤¢¤ë¡£ -(¤É¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤«¤òÄ´¤Ù¤ë¤Ë¤Ï¡¢ -getent \-\-help ¤ò¼Â¹Ô¤¹¤ë¤³¤È¡£) +ネームサービススイッチ (Name Service Switch, NSS) で +利用可能なデータベースの 1 つとして、 +メールエイリアスを保持するエイリアスデータベースがある。 +(どのデータベースがサポートされているかを調べるには、 +getent \-\-help を実行すること。) .\"O Six functions are provided to access the aliases database. -¥¨¥¤¥ê¥¢¥¹¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Ë¡¢ -6 ¤Ä¤Î´Ø¿ô¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¡£ +エイリアスデータベースにアクセスするために、 +6 つの関数が提供されている。 .PP .\"O The .\"O .BR getaliasent () .\"O function returns a pointer to a structure containing .\"O the group information from the aliases database. .BR getaliasent () -´Ø¿ô¤Ï¥¨¥¤¥ê¥¢¥¹¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¼è¤ê½Ð¤·¤¿ -¥°¥ë¡¼¥×¾ðÊó¤ò´Þ¤à¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ +関数はエイリアスデータベースから取り出した +グループ情報を含む構造体へのポインタを返す。 .\"O The first time it is called it returns the first entry; .\"O thereafter, it returns successive entries. -1 ²óÌܤ˴ؿô¤¬¸Æ¤Ð¤ì¤¿¤È¤­¤Ë¤Ï¡¢ºÇ½é¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹; -¤½¤ì°Ê¹ß¤Ï¤½¤Î¸å¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£ +1 回目に関数が呼ばれたときには、最初のエントリを返す; +それ以降はその後のエントリを返す。 .PP .\"O The .\"O .BR setaliasent () .\"O function rewinds the file pointer to the beginning of the .\"O aliases database. .BR setaliasent () -´Ø¿ô¤Ï¥Õ¥¡¥¤¥ë¥Ý¥¤¥ó¥¿¤ò¥¨¥¤¥ê¥¢¥¹¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÀèƬ¤Ë´¬¤­Ì᤹¡£ +関数はファイルポインタをエイリアスデータベースの先頭に巻き戻す。 .PP .\"O The .\"O .BR endaliasent () .\"O function closes the aliases database. .BR endaliasent () -´Ø¿ô¤Ï¥¨¥¤¥ê¥¢¥¹¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +関数はエイリアスデータベースをクローズする。 .PP .\"O .BR getaliasent_r () .\"O is the reentrant version of the previous function. @@ -79,22 +79,22 @@ getent \-\-help .\"O arguments also. .\"O Not providing enough space causes the function to fail. .BR getaliasent_r () -´Ø¿ô¤Ï¾åµ­¤Î´Ø¿ô¤Î¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤǤ¢¤ë¡£ -Í׵ᤵ¤ì¤¿¹½Â¤ÂΤÏÂè 1 °ú¤­¿ô¤Ë³ÊǼ¤µ¤ì¤ë¤¬¡¢ -¥×¥í¥°¥é¥Þ¤Ï¾¤Î°ú¤­¿ô¤âËä¤á¤Æ¤ä¤ëɬÍפ¬¤¢¤ë¡£ -½¼Ê¬¤ÊÎΰ褬Ϳ¤¨¤é¤ì¤Ê¤¤¤È¡¢¤³¤Î´Ø¿ô¤Ï¼ºÇÔ¤¹¤ë¡£ +関数は上記の関数のリエントラント版である。 +要求された構造体は第 1 引き数に格納されるが、 +プログラマは他の引き数も埋めてやる必要がある。 +充分な領域が与えられないと、この関数は失敗する。 .PP .\"O The function .\"O .BR getaliasbyname () .\"O takes the name argument and searches the aliases database. .\"O The entry is returned as a pointer to a .\"O .IR "struct aliasent" . -´Ø¿ô +関数 .BR getaliasbyname () -¤Ï name °ú¤­¿ô¤ò¤È¤ê¡¢¥¨¥¤¥ê¥¢¥¹¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¸¡º÷¤¹¤ë¡£ -¥¨¥ó¥È¥ê¤Ï +は name 引き数をとり、エイリアスデータベースを検索する。 +エントリは .I "struct aliasent" -¤Ø¤Î¥Ý¥¤¥ó¥¿¤È¤·¤ÆÊÖ¤µ¤ì¤ë¡£ +へのポインタとして返される。 .PP .\"O .BR getaliasbyname_r () .\"O is the reentrant version of the previous function. @@ -103,19 +103,19 @@ getent \-\-help .\"O arguments also. .\"O Not providing enough space causes the function to fail. .BR getaliasbyname_r () -¤Ï¾åµ­¤Î´Ø¿ô¤Î¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤǤ¢¤ë¡£ -Í׵ᤵ¤ì¤¿¹½Â¤ÂΤÏÂè 2 °ú¤­¿ô¤Ë³ÊǼ¤µ¤ì¤ë¤¬¡¢ -¥×¥í¥°¥é¥Þ¤Ï¾¤Î°ú¤­¿ô¤âËä¤á¤Æ¤ä¤ëɬÍפ¬¤¢¤ë¡£ -½¼Ê¬¤ÊÎΰ褬Ϳ¤¨¤é¤ì¤Ê¤¤¤È¡¢¤³¤Î´Ø¿ô¤Ï¼ºÇÔ¤¹¤ë¡£ +は上記の関数のリエントラント版である。 +要求された構造体は第 2 引き数に格納されるが、 +プログラマは他の引き数も埋めてやる必要がある。 +充分な領域が与えられないと、この関数は失敗する。 .PP .\"O The .\"O .I "struct aliasent" .\"O is defined in .\"O .IR : .I "struct aliasent" -¤Ï +は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で定義されている。 .in +4n .nf @@ -124,44 +124,44 @@ struct aliasent { .\"O size_t alias_members_len; .\"O char **alias_members; /* alias name list */ .\"O int alias_local; - char *alias_name; /* ¥¨¥¤¥ê¥¢¥¹Ì¾ */ + char *alias_name; /* エイリアス名 */ size_t alias_members_len; - char **alias_members; /* ¥¨¥¤¥ê¥¢¥¹Ì¾¤Î¥ê¥¹¥È */ + char **alias_members; /* エイリアス名のリスト */ int alias_local; }; .fi .in .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The functions .\"O .BR getaliasent_r () .\"O and .\"O .BR getaliasbyname_r () .\"O return a nonzero value on error. -´Ø¿ô +関数 .BR getaliasent_r () -¤È +と .BR getaliasbyname_r () -¤Ï¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ë 0 °Ê³°¤ÎÃͤòÊÖ¤¹¡£ +は、エラーの場合に 0 以外の値を返す。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .\"O The default alias database is the file .\"O .IR /etc/aliases . -¥Ç¥Õ¥©¥ë¥È¤Î¥¨¥¤¥ê¥¢¥¹¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ï¡¢¥Õ¥¡¥¤¥ë +デフォルトのエイリアスデータベースは、ファイル .I /etc/aliases -¤Ç¤¢¤ë¡£ +である。 .\"O This can be changed in the .\"O .I /etc/nsswitch.conf .\"O file. -¤³¤ì¤Ï +これは .I /etc/nsswitch.conf -¥Õ¥¡¥¤¥ë¤ÇÊѹ¹¤Ç¤­¤ë¡£ +ファイルで変更できる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These routines are glibc-specific. -¤³¤Î¥ë¡¼¥Á¥ó¤Ï glibc ¸ÇÍ­¤Î¤â¤Î¤Ç¤¢¤ë¡£ +このルーチンは glibc 固有のものである。 .\"O The NeXT system has similar routines: -NeXT ¥·¥¹¥Æ¥à¤Ë¤ÏƱÍͤΥ롼¥Á¥ó¤¬¤¢¤ë¡£ +NeXT システムには同様のルーチンがある。 .in +4n .sp .nf @@ -175,14 +175,14 @@ alias_ent *alias_getbyname(char *name); .fi .in .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The following example compiles with .\"O .IR "gcc example.c -o example" . -°Ê²¼¤ÎÎã¤Ï +以下の例は .I "gcc example.c -o example" -¤Ç¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤ë¡£ +でコンパイルできる。 .\"O It will dump all names in the alias database. -¤³¤ì¤Ï¥¨¥¤¥ê¥¢¥¹¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤¢¤ëÁ´¤Æ¤Î̾Á°¤ò¥À¥ó¥×¤¹¤ë¡£ +これはエイリアスデータベースにある全ての名前をダンプする。 .sp .nf #include @@ -209,7 +209,7 @@ main(void) exit(EXIT_SUCCESS); .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getgrent (3), .BR getpwent (3), .BR getspent (3), diff --git a/draft/man3/setbuf.3 b/draft/man3/setbuf.3 index ca51bc22..ac3791a6 100644 --- a/draft/man3/setbuf.3 +++ b/draft/man3/setbuf.3 @@ -55,10 +55,10 @@ .TH SETBUF 3 2008-06-26 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O setbuf, setbuffer, setlinebuf, setvbuf \- stream buffering operations -.SH ̾Á° -setbuf, setbuffer, setlinebuf, setvbuf \- ¥¹¥È¥ê¡¼¥à¤Î¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤ÎÁàºî +.SH 名前 +setbuf, setbuffer, setlinebuf, setvbuf \- ストリームのバッファリングの操作 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include @@ -75,9 +75,9 @@ setbuf, setbuffer, setlinebuf, setvbuf \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR setbuffer (), @@ -107,38 +107,38 @@ _BSD_SOURCE .\"O The standard error stream .\"O .I stderr .\"O is always unbuffered by default. -.SH ÀâÌÀ -¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤Ë¤Ï unbuffered, block buffered, line buffered ¤Î3¤Ä¤Î¥¿¥¤¥×¤¬ -¤¢¤ë¡£½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Î¥¿¥¤¥×¤¬ unbuffered ¤Î¾ì¹ç¡¢¥Ç¡¼¥¿¤ò½ñ¤­¹þ¤à¤È¤¹¤°¤Ë½Ð -ÎÏÀè¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¤«¥¿¡¼¥ß¥Ê¥ë¤Ëɽ¼¨¤µ¤ì¤ë¡£block buffered ¤Î¾ì¹ç¡¢Ê¸ -»ú¤ÎÆɤ߽ñ¤­¤Ï¥Ö¥í¥Ã¥¯Ã±°Ì¤Ç¤¤¤Ã¤Ú¤ó¤Ë¹Ô¤ï¤ì¤ë¡£line buffered ¤Î¾ì¹ç¡¢ -¿·¤·¤¤¹Ô¤¬½ÐÎϤµ¤ì¤ë¤«¡¢¥¿¡¼¥ß¥Ê¥ë¥Ç¥Ð¥¤¥¹¤ËÀܳ¤·¤Æ¤¤¤ë¥¹¥È¥ê¡¼¥à -(Ä̾\fIstdin\fP) ¤«¤é¿·¤·¤¤¹Ô¤¬ÆþÎϤµ¤ì¤ë¤Þ¤Çʸ»ú¤¬¤¿¤¯¤ï¤¨¤é¤ì¤ë¡£ -¥Ö¥í¥Ã¥¯¤ò¶¯À©Åª¤Ë½ÐÎϤ¹¤ë¤Ë¤Ï +.SH 説明 +バッファリングには unbuffered, block buffered, line buffered の3つのタイプが +ある。出力ストリームのタイプが unbuffered の場合、データを書き込むとすぐに出 +力先ファイルに書き込まれるかターミナルに表示される。block buffered の場合、文 +字の読み書きはブロック単位でいっぺんに行われる。line buffered の場合、 +新しい行が出力されるか、ターミナルデバイスに接続しているストリーム +(通常、\fIstdin\fP) から新しい行が入力されるまで文字がたくわえられる。 +ブロックを強制的に出力するには .BR fflush (3) -´Ø¿ô¤ò»È¤¦¡£ +関数を使う。 .RB ( fclose (3) -¤ò»²¾È¤Î¤³¤È) Ä̾¥Õ¥¡¥¤¥ë¤Ï¤¹¤Ù¤Æ block buffered ¤Ç¤¢¤ë¡£¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ -½é¤á¤ÆÆþ½ÐÎϽèÍý¤ò¹Ô¤¦¤È +を参照のこと) 通常、ファイルはすべて block buffered である。ファイルに対して +初めて入出力処理を行うと .BR malloc (3) -¤¬¸Æ¤Ó½Ð¤µ¤ì¥Ð¥Ã¥Õ¥¡¤¬³ÍÆÀ¤µ¤ì¤ë¡£¤â¤· ¥¹¥È¥ê¡¼¥à¤¬ (Ä̾ +が呼び出されバッファが獲得される。もし ストリームが (通常、 .I stdout -¤¬¤½¤¦¤Ç¤¢¤ë¤è¤¦¤Ë) ¥¿¡¼¥ß¥Ê¥ë¤ò»²¾È¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤Ï line buffered ¤È -¤Ê¤ë¡£É¸½à¥¨¥é¡¼½ÐÎÏ +がそうであるように) ターミナルを参照する場合には、ファイルは line buffered と +なる。標準エラー出力 .I stderr -¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¾ï¤Ë unbuffered ¤Ç¤¢¤ë¡£ +はデフォルトでは常に unbuffered である。 .PP .\"O The .\"O .BR setvbuf () .\"O function may be used on any open stream to change its buffer. .BR setvbuf () -´Ø¿ô¤Ï¡¢¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ëǤ°Õ¤Î¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ¥Ð¥Ã¥Õ¥¡¤òÊѹ¹¤Ç¤­¤ë¡£ +関数は、オープンしている任意のストリームに対してバッファを変更できる。 .\"O The .\"O .I mode .\"O argument must be one of the following three macros: -°ú¤­¿ô +引き数 .I mode -¤Ï¡¢¼¡¤Î 3 ¤Ä¤Î¥Þ¥¯¥í¤Î¤¦¤Á¤¤¤º¤ì¤«¤Ç¤¢¤ë: +は、次の 3 つのマクロのうちいずれかである: .RS .TP .B _IONBF @@ -165,18 +165,18 @@ fully buffered .\"O .BR setvbuf () .\"O function may only be used after opening a stream and before any other .\"O operations have been performed on it. -unbuffered ¤Î¥Õ¥¡¥¤¥ë¤ò½ü¤­¡¢ +unbuffered のファイルを除き、 .I buf -°ú¿ô¤Ï +引数は .I size -¥Ð¥¤¥È°Ê¾å¤ÎÂ礭¤µ¤Î¥Ð¥Ã¥Õ¥¡¤ò»Ø¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤Î¥Ð¥Ã¥Õ¥¡¤Ï¸½ºß¤Î -¥Ð¥Ã¥Õ¥¡¤ÎÂå¤ï¤ê¤ËÍѤ¤¤é¤ì¤ë¡£¤â¤·¡¢°ú¿ô +バイト以上の大きさのバッファを指していなければならない。このバッファは現在の +バッファの代わりに用いられる。もし、引数 .I buf -¤¬ NULL ¤Ê¤é¤Ð¡¢¥â¡¼¥É¤À¤±¤¬Êѹ¹¤µ¤ì¤ë¡£ -¿·¤·¤¤¥Ð¥Ã¥Õ¥¡¤Ï¼¡¤ËÆɤ߽ñ¤­¤·¤¿ºÝ¤Ë³ä¤êÅö¤Æ¤é¤ì¤ë¡£ +が NULL ならば、モードだけが変更される。 +新しいバッファは次に読み書きした際に割り当てられる。 .BR setvbuf () -´Ø¿ô¤Ï¡¢¥¹¥È¥ê¡¼¥à¤ò¥ª¡¼¥×¥ó¤·¤¿¸å¡¢ -¤½¤Î¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ²¿¤é¤«¤ÎÁàºî¤ò¤¹¤ëÁ°¤Ë¤Î¤ß»ÈÍѤǤ­¤ë¡£ +関数は、ストリームをオープンした後、 +そのストリームに対して何らかの操作をする前にのみ使用できる。 .PP .\"O The other three calls are, in effect, simply aliases for calls to .\"O .BR setvbuf (). @@ -200,31 +200,31 @@ unbuffered .\"O .in +4n .\"O setvbuf(stream, (char *) NULL, _IOLBF, 0); .\"O .in -¾¤Î 3 ¤Ä¤Î´Ø¿ô¤Ï +他の 3 つの関数は .BR setvbuf () -¤Î¸Æ¤Ó½Ð¤·¤Ëñ½ã¤ËÃÖ¤­´¹¤¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +の呼び出しに単純に置き換えることができる。 .BR setbuf () -´Ø¿ô¤Ï¡¢ +関数は、 .PP .in +4n setvbuf(stream, buf, buf ? _IOFBF : _IONBF, BUFSIZ); .in -¤ÈÁ´¤¯Æ±Åù¤À¤·¡¢ +と全く同等だし、 .BR setbuffer () -´Ø¿ô¤Ï¡¢¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤¬¥Ç¥Õ¥©¥ë¥ÈÃÍ +関数は、バッファサイズがデフォルト値 .B BUFSIZ -¤Ç¤Ï¤Ê¤¯°ú¿ô¤ÇÍ¿¤¨¤é¤ì¤ëÅÀ°Ê³°¤ÏƱ¤¸¤Ç¤¢¤ë¡£ +ではなく引数で与えられる点以外は同じである。 .BR setlinebuf () -´Ø¿ô¤Ï +関数は .PP .in +4n setvbuf(stream, (char *) NULL, _IOLBF, 0); .in -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The function .\"O .BR setvbuf () .\"O returns 0 on success. @@ -235,31 +235,31 @@ setvbuf(stream, (char *) NULL, _IOLBF, 0); .\"O .I errno .\"O on failure. .BR setvbuf () -´Ø¿ô¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç 0 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢0 °Ê³°¤ÎÃͤòÊÖ¤¹ -(¼ºÇԤȤϡ¢ +関数は、成功した場合 0 を返す。 +失敗した場合、0 以外の値を返す +(失敗とは、 .I mode -¤¬ÉÔÀµ¤Ê¾ì¹ç¤Þ¤¿¤Ï¥ê¥¯¥¨¥¹¥È¤¬¾ò·ï¤òËþ¤¿¤µ¤Ê¤¤¾ì¹ç¤Ç¤¢¤ë)¡£ +が不正な場合またはリクエストが条件を満たさない場合である)。 .BR setvbuf () -´Ø¿ô¤¬¼ºÇÔ¤·¤¿¾ì¹ç¤Ï +関数が失敗した場合は .I errno -¤òÀßÄꤹ¤ë¤³¤È¤â¤¢¤ë¡£ +を設定することもある。 .\"O The other functions do not return a value. -¤½¤Î¾¤Î´Ø¿ô¤ÏÃͤòÊÖ¤µ¤Ê¤¤¡£ +その他の関数は値を返さない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The .\"O .BR setbuf () .\"O and .\"O .BR setvbuf () .\"O functions conform to C89 and C99. .BR setbuf () -´Ø¿ô¤ª¤è¤Ó +関数および .BR setvbuf () -´Ø¿ô¤Ï C89 ¤È C99 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +関数は C89 と C99 に準拠している。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O The .\"O .BR setbuffer () .\"O and @@ -270,12 +270,12 @@ setvbuf(stream, (char *) NULL, _IOLBF, 0); .\"O .BR setbuf () .\"O always uses a suboptimal buffer size and should be avoided. .BR setbuffer () -´Ø¿ô¤ª¤è¤Ó +関数および .BR setlinebuf () -´Ø¿ô¤Ï 4.2BSD ¤è¤êÁ°¤Î BSD ¤È¤Ï¸ß´¹À­¤¬¤Ê¤¤¡£¤Þ¤¿ Linux ¤Ç¤â(¸Å¤¤¥Ð¡¼¥¸¥ç¥ó -¤Ç¤Ï)ÍøÍѤǤ­¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£4.2BSD ¤ª¤è¤Ó 4.3BSD ¤Î¥·¥¹¥Æ¥à¤Ç¤Ï +関数は 4.2BSD より前の BSD とは互換性がない。また Linux でも(古いバージョン +では)利用できないかもしれない。4.2BSD および 4.3BSD のシステムでは .BR setbuf () -¤Ïɬ¤ºÄɲäΥХåե¡¡¼¤Î¥µ¥¤¥º¤ò»ÈÍѤ¹¤ë¤Î¤Ç¡¢¤³¤ì¤â»È¤¦¤Ù¤­¤Ç¤Ê¤¤¡£ +は必ず追加のバッファーのサイズを使用するので、これも使うべきでない。 .P .\"O You must make sure that the space that .\"O .I buf @@ -284,10 +284,10 @@ setvbuf(stream, (char *) NULL, _IOLBF, 0); .\"O is closed, which also happens at program termination. .\"O For example, the following is invalid: .I stream -¤òÊĤ¸¤ë»þ (¥×¥í¥°¥é¥à¤ò½ªÎ»¤¹¤ëºÝ¤Ë¤â¤³¤ì¤Ïµ¯¤­¤ë) ¤Ë¤Ï¡¢ +を閉じる時 (プログラムを終了する際にもこれは起きる) には、 .I buf -¤¬»Ø¤·¼¨¤¹¶õ´Ö¤È¤¬Â¸ºß¤·¤Æ¤¤¤ë¤³¤È¤òÊݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Î㤨¤Ð¡¢¼¡¤Î¤è¤¦¤Ê»È¤¤Êý¤Ïµö¤µ¤ì¤Ê¤¤: +が指し示す空間とが存在していることを保証しなければならない。 +例えば、次のような使い方は許されない: .nf .sp #include @@ -302,7 +302,7 @@ main(void) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fclose (3), .BR fflush (3), .BR fopen (3), diff --git a/draft/man3/setenv.3 b/draft/man3/setenv.3 index d77ac8ca..befb61ab 100644 --- a/draft/man3/setenv.3 +++ b/draft/man3/setenv.3 @@ -42,11 +42,11 @@ .\" .TH SETENV 3 2009-09-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O setenv \- change or add an environment variable -setenv \- ´Ä¶­ÊÑ¿ô¤òÊѹ¹¤Þ¤¿¤ÏÄɲ乤ë +setenv \- 環境変数を変更または追加する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -58,9 +58,9 @@ setenv \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -71,7 +71,7 @@ _BSD_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR setenv () .\"O function adds the variable \fIname\fP to the @@ -82,39 +82,39 @@ _BSD_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O if \fIoverwrite\fP is zero, then the value of \fIname\fP is not .\"O changed. .BR setenv () -´Ø¿ô¤Ï¡¢\fIname\fP ¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç -´Ä¶­ÊÑ¿ô \fIname\fP ¤ËÃÍ \fIvalue\fP ¤òÀßÄꤷ¡¢´Ä¶­¤ËÄɲ乤롣 -\fIname\fP ¤¬´Ä¶­¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢\fIoverwrite\fP ¤¬ 0 °Ê³°¤Ê¤é¤Ð -¤½¤ÎÃͤò \fIvalue\fP ¤ËÊѹ¹¤·¡¢\fIoverwrite\fP ¤¬ 0 ¤Ê¤é¤Ð -\fIname\fP ¤ÎÃͤòÊѹ¹¤·¤Ê¤¤¡£ +関数は、\fIname\fP が存在しない場合 +環境変数 \fIname\fP に値 \fIvalue\fP を設定し、環境に追加する。 +\fIname\fP が環境に存在する場合、\fIoverwrite\fP が 0 以外ならば +その値を \fIvalue\fP に変更し、\fIoverwrite\fP が 0 ならば +\fIname\fP の値を変更しない。 .\"O This function makes copies of the strings pointed to by .\"O .I name .\"O and .\"O .I value .\"O (by contrast with .\"O .BR putenv (3)). -¤³¤Î´Ø¿ô¤Ï¡¢ +この関数は、 .RB ( putenv (3) -¤È°ã¤¤) +と違い) .I name -¤È +と .I value -¤Ë¤è¤ê»²¾È¤µ¤ì¤ëʸ»úÎó¤Î¥³¥Ô¡¼¤ò¹Ô¤¦¡£ +により参照される文字列のコピーを行う。 .PP .\"O The .\"O .BR unsetenv () .\"O function deletes the variable \fIname\fP from .\"O the environment. .BR unsetenv () -´Ø¿ô¤Ï¡¢ÊÑ¿ô \fIname\fP ¤ò´Ä¶­¤«¤éºï½ü¤¹¤ë¡£ +関数は、変数 \fIname\fP を環境から削除する。 .\"O If .\"O .I name .\"O does not exist in the environment, .\"O then the function succeeds, and the environment is unchanged. .I name -¤¬´Ä¶­¤Ë¤Ê¤¤¾ì¹ç¡¢¤³¤Î´Ø¿ô¤ÏÀ®¸ù¤·¡¢´Ä¶­¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +が環境にない場合、この関数は成功し、環境は変更されない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR setenv () .\"O function returns zero on success, @@ -122,10 +122,10 @@ _BSD_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O .I errno .\"O set to indicate the cause of the error. .BR setenv () -´Ø¿ô¤Ï¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +関数は、成功すると 0 を返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤Î¸¶°ø¤ò¼¨¤¹Ãͤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +にエラーの原因を示す値がセットされる。 .\"O The .\"O .BR unsetenv () @@ -134,73 +134,73 @@ _BSD_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O .I errno .\"O set to indicate the cause of the error. .BR unsetenv () -´Ø¿ô¤Ï¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +関数は、成功すると 0 を返す。 +エラーの場合は \-1 を返し、 .I errno -¤òÀßÄꤷ¤Æ¥¨¥é¡¼¤Î¸¶°ø¤ò¼¨¤¹¡£ +を設定してエラーの原因を示す。 .\"O .SH "ERRORS" -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O .I name .\"O is NULL, points to a string of length 0, .\"O or contains an \(aq=\(aq character. .I name -¤¬ NULL ¤Ç¤¢¤ë¤«¡¢Ä¹¤µ¤¬ 0 ¤Îʸ»úÎó¤ò»Ø¤·¤Æ¤¤¤ë¤«¡¢ -\(aq=\(aq ʸ»ú¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +が NULL であるか、長さが 0 の文字列を指しているか、 +\(aq=\(aq 文字が含まれている。 .TP .B ENOMEM .\"O Insufficient memory to add a new variable to the environment. -´Ä¶­¤Ë¿·¤·¤¤ÊÑ¿ô¤òÄɲ乤ë¤Î¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +環境に新しい変数を追加するのに十分なメモリがない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.3BSD, POSIX.1-2001. .\"O .SH "NOTES" -.SH Ãí°Õ +.SH 注意 .\"O POSIX.1-2001 does not require .\"O .BR setenv () .\"O or .\"O .BR unsetenv () .\"O to be reentrant. -POSIX.1-2001 ¤Ï¡¢ +POSIX.1-2001 は、 .BR setenv () -¤ä +や .BR unsetenv () -¤¬¥ê¥¨¥ó¥È¥é¥ó¥È (ºÆÆþ²Äǽ) ¤Ç¤¢¤ë¤³¤È¤òÍ׵ᤷ¤Æ¤¤¤Ê¤¤¡£ +がリエントラント (再入可能) であることを要求していない。 .\"O Prior to glibc 2.2.2, .\"O .BR unsetenv () .\"O was prototyped .\"O as returning \fIvoid\fP; more recent glibc versions follow the .\"O POSIX.1-2001-compliant prototype shown in the SYNOPSIS. -glibc 2.2.2 °ÊÁ°¤Ç¤Ï¡¢ +glibc 2.2.2 以前では、 .BR unsetenv () -¤Ï -ÊÖ¤êÃͤ¬ \fIvoid\fP ¤Î¥×¥í¥È¥¿¥¤¥×¤Ç¤¢¤Ã¤¿¡£ -¤â¤Ã¤ÈºÇ¶á¤Î glibc ÈǤϡ¢¡Ö½ñ¼°¡×¥»¥¯¥·¥ç¥ó¤Ç¼¨¤·¤Æ¤¤¤ë¤è¤¦¤Ë -POSIX.1-2001 ¸ß´¹¤Î¥×¥í¥È¥¿¥¤¥×¤Ç¤¢¤ë¡£ +は +返り値が \fIvoid\fP のプロトタイプであった。 +もっと最近の glibc 版は、「書式」セクションで示しているように +POSIX.1-2001 互換のプロトタイプである。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O POSIX.1-2001 specifies that if .\"O .I name .\"O contains an \(aq=\(aq character, then .\"O .BR setenv () .\"O should fail with the error .\"O .BR EINVAL ; -POSIX.1-2001 ¤Ç¤Ï -.RI ¡Ö name -¤Ë \(aq=\(aq ʸ»ú¤¬´Þ¤Þ¤ì¤ë¾ì¹ç¡¢ +POSIX.1-2001 では +.RI 「 name +に \(aq=\(aq 文字が含まれる場合、 .BR setenv () -¤Ï¥¨¥é¡¼ +はエラー .B EINVAL -¤Ç¼ºÇÔ¤¹¤Ù¤­¤Ç¤¢¤ë¡×¤È½Ò¤Ù¤é¤ì¤Æ¤¤¤ë¡£ +で失敗すべきである」と述べられている。 .\"O however, versions of glibc before 2.3.4 allowed an \(aq=\(aq sign in .\"O .IR name . -¤·¤«¤· 2.3.4 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î glibc ¤Ç¤Ï¡¢ +しかし 2.3.4 より前のバージョンの glibc では、 .I name -¤Ë \(aq=\(aq ʸ»ú¤¬´Þ¤Þ¤ì¤ë¤Î¤òµö¤·¤Æ¤¤¤ë¡£ +に \(aq=\(aq 文字が含まれるのを許している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR clearenv (3), .BR getenv (3), .BR putenv (3), diff --git a/draft/man3/setjmp.3 b/draft/man3/setjmp.3 index 4b82bd3d..6cf3cec7 100644 --- a/draft/man3/setjmp.3 +++ b/draft/man3/setjmp.3 @@ -30,18 +30,18 @@ .\" Modified 2007-12-20, Akihiro MOTOKI .\" Updated 2009-02-12, Kentaro Shirakata .\" -.\"WORD: stack context ¥¹¥¿¥Ã¥¯¥³¥ó¥Æ¥­¥¹¥È -.\"WORD: signal masks ¥·¥°¥Ê¥ë¥Þ¥¹¥¯ -.\"WORD: signal context ¥·¥°¥Ê¥ë¥³¥ó¥Æ¥­¥¹¥È -.\"WORD: low-level Äã¥ì¥Ù¥ë +.\"WORD: stack context スタックコンテキスト +.\"WORD: signal masks シグナルマスク +.\"WORD: signal context シグナルコンテキスト +.\"WORD: low-level 低レベル .\" .TH SETJMP 3 2009-06-26 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O setjmp, sigsetjmp \- save stack context for nonlocal goto -setjmp, sigsetjmp \- Èó¶É½êŪ¤Ê¥¸¥ã¥ó¥×¤Î¤¿¤á¤Ë¡¢¥¹¥¿¥Ã¥¯¥³¥ó¥Æ¥­¥¹¥È (stack context) ¤òÊݸ¤¹¤ë +setjmp, sigsetjmp \- 非局所的なジャンプのために、スタックコンテキスト (stack context) を保存する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .nf @@ -53,19 +53,19 @@ setjmp, sigsetjmp \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR setjmp (): .\"O see NOTES. -¡ÖÃí°Õ¡×»²¾È¡£ +「注意」参照。 .br .BR sigsetjmp (): _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_C_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR setjmp () .\"O and .\"O .BR longjmp (3) @@ -80,18 +80,18 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_C_SOURCE .\"O .BR setjmp () .\"O returns. .BR setjmp () -¤È +と .BR longjmp (3) -¤Ï¡¢¥×¥í¥°¥é¥à¤ÎÄã¥ì¥Ù¥ë¤Ê¥µ¥Ö¥ë¡¼¥Á¥ó -¤Ë¤ª¤¤¤Æ¡¢¥¨¥é¡¼¤ä³ä¤ê¹þ¤ß¤¬È¯À¸¤·¤¿»þ¤Î½èÍý¤ËÊØÍø¤Ç¤¢¤ë¡£ +は、プログラムの低レベルなサブルーチン +において、エラーや割り込みが発生した時の処理に便利である。 .BR setjmp () -¤Ï¡¢ +は、 .BR longjmp (3) -¤Ë¤è¤Ã¤Æ»È¤ï¤ì¤ë \fIenv\fP ¤Ë -¥¹¥¿¥Ã¥¯¥³¥ó¥Æ¥­¥¹¥È/¥¹¥¿¥Ã¥¯´Ä¶­¤òÊݸ¤¹¤ë¡£ +によって使われる \fIenv\fP に +スタックコンテキスト/スタック環境を保存する。 .BR setjmp () -¤ò¸Æ¤Ó½Ð¤·¤¿ -´Ø¿ô¤¬ÊÖ¤ë¤È¤­¤Ë¡¢¤½¤Î¥¹¥¿¥Ã¥¯¥³¥ó¥Æ¥­¥¹¥È¤Ï̵¸ú¤Ë¤Ê¤ë¡£ +を呼び出した +関数が返るときに、そのスタックコンテキストは無効になる。 .P .\"O .BR sigsetjmp () .\"O is similar to @@ -102,16 +102,16 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_C_SOURCE .\"O .BR siglongjmp (3) .\"O is later performed with this \fIenv\fP. .BR sigsetjmp () -¤â +も .BR setjmp () -¤ÈƱÍͤǤ¢¤ë¡£ -\fIsavesigs\fP ¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢ -¤³¤Î¥×¥í¥»¥¹¤Î¸½ºß¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤â \fIenv\fP ¤ËÊݸ¤µ¤ì¡¢ -¤³¤Î¥·¥°¥Ê¥ë¤Ï¸å¤Ç +と同様である。 +\fIsavesigs\fP が 0 以外の場合、 +このプロセスの現在のシグナルマスクも \fIenv\fP に保存され、 +このシグナルは後で .BR siglongjmp (3) -¤¬¤³¤Î \fIenv\fP ¤Ç¼Â¹Ô¤µ¤ì¤¿ºÝ¤ËÉü¸µ¤µ¤ì¤ë¡£ +がこの \fIenv\fP で実行された際に復元される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR setjmp () .\"O and .\"O .BR sigsetjmp () @@ -121,39 +121,39 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_C_SOURCE .\"O or .\"O .BR siglongjmp (3) .\"O using the saved context. -ľÀÜÊ֤äƤ¯¤ë¤È¤­¤Ï¡¢ +直接返ってくるときは、 .BR setjmp () -¤È +と .BR sigsetjmp () -¤Ï 0 ¤òÊÖ¤·¡¢Êݸ¤·¤¿¥³¥ó¥Æ¥­¥¹¥È¤ò»È¤Ã¤Æ +は 0 を返し、保存したコンテキストを使って .BR longjmp (3) -¤ä +や .BR siglongjmp (3) -¤«¤éÊ֤äƤ¯¤ë¤È¤­¤Ï 0 °Ê³°¤òÊÖ¤¹¡£ +から返ってくるときは 0 以外を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O C89, C99, and POSIX.1-2001 specify .\"O .BR setjmp (). .\"O POSIX.1-2001 specifies .\"O .BR sigsetjmp (). .BR setjmp () -¤Ï C89, C99, POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は C89, C99, POSIX.1-2001 で規定されている。 .BR sigsetjmp () -¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は POSIX.1-2001 で規定されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O POSIX does not specify whether .\"O .BR setjmp () .\"O will save the signal mask. .\"O In System V it will not. .\"O In 4.3BSD it will, and there .\"O is a function \fB_setjmp\fP that will not. -POSIX ¤Ï¡¢ +POSIX は、 .BR setjmp () -¤¬¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊݸ¤¹¤Ù¤­¤«¤É¤¦¤«¤òµ¬Äꤷ¤Æ¤¤¤Ê¤¤¡£ -System V ¤Ç¤ÏÊݸ¤·¤Ê¤¤¡£ -4.3BSD ¤Ç¤ÏÊݸ¤¹¤ë; -4.3BSD ¤Ë¤Ï¥·¥°¥Ê¥ë¥³¥ó¥Æ¥­¥¹¥È¤òÊݸ¤·¤Ê¤¤´Ø¿ô \fB_setjmp\fP ¤â¤¢¤ë¡£ +がシグナルマスクを保存すべきかどうかを規定していない。 +System V では保存しない。 +4.3BSD では保存する; +4.3BSD にはシグナルコンテキストを保存しない関数 \fB_setjmp\fP もある。 .\"O By default, Linux/glibc follows the System V behavior, .\"O but the BSD behavior is provided if the .\"O .BR _BSD_SOURCE @@ -166,26 +166,26 @@ System V .\"O or .\"O .B _SVID_SOURCE .\"O is defined. -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢Linux/glibc ¤Ï System V ¤Î¿¶¤ëÉñ¤¤¤Ë½¾¤¦¤¬¡¢ +デフォルトでは、Linux/glibc は System V の振る舞いに従うが、 .B _BSD_SOURCE -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¡¢ +機能検査マクロが定義され、 .BR _POSIX_SOURCE , .BR _POSIX_C_SOURCE , .BR _XOPEN_SOURCE , .BR _XOPEN_SOURCE_EXTENDED , .BR _GNU_SOURCE , .B _SVID_SOURCE -¤Î¤¤¤º¤ì¤âÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤»þ¤Ï BSD ¤Î¿¶¤ëÉñ¤¤¤È¤Ê¤ë¡£ +のいずれも定義されていない時は BSD の振る舞いとなる。 .\"O If you want to portably save and restore signal masks, use .\"O .BR sigsetjmp () .\"O and .\"O .BR siglongjmp (3). -°Ü¿¢À­¤Î¤¢¤ë·Á¤Ç¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊݸ¤ª¤è¤ÓÉü¸µ¤·¤¿¤¤¤Î¤Ê¤é¡¢ +移植性のある形でシグナルマスクを保存および復元したいのなら、 .BR sigsetjmp () -¤È +と .BR siglongjmp (3) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .P .\"O .BR setjmp () .\"O and @@ -194,11 +194,11 @@ System V .\"O and maintain. .\"O If possible an alternative should be used. .BR setjmp () -¤ä +や .BR sigsetjmp () -¤ò»È¤¦¤È¡¢¥×¥í¥°¥é¥à¤ÏÍý²ò¤·¤Å¤é¤¯¡¢Êݼ餷¤Ë¤¯¤¤¤â¤Î¤Ë¤Ê¤ë¡£ -Ê̤ÎÊýË¡¤¬²Äǽ¤Ê¤é¡¢¤½¤ì¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£ +を使うと、プログラムは理解しづらく、保守しにくいものになる。 +別の方法が可能なら、それを使うべきである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR longjmp (3), .BR siglongjmp (3) diff --git a/draft/man3/setlocale.3 b/draft/man3/setlocale.3 index b4e6f08e..02c72023 100644 --- a/draft/man3/setlocale.3 +++ b/draft/man3/setlocale.3 @@ -36,95 +36,95 @@ .\" by Kentaro Shirakata .\" Updated Sat Oct 12 2002 by NAKANO Takeo .\" -.\"WORD: locale ¥í¥±¡¼¥ë -.\"WORD: portable ¸ß´¹À­¤Î¤¢¤ë -.\"WORD: regular expression Àµµ¬É½¸½ -.\"WORD: range expressions ÈÏ°Ïɽ¸½ -.\"WORD: equivalence classes Åù²Á¥¯¥é¥¹ -.\"WORD: collation ¾È¹ç -.\"WORD: multibyte character ¿¥Ð¥¤¥Èʸ»ú -.\"WORD: wide character ¥ï¥¤¥Éʸ»ú -.\"WORD: opaque string ÆâÉôʸ»úÎó +.\"WORD: locale ロケール +.\"WORD: portable 互換性のある +.\"WORD: regular expression 正規表現 +.\"WORD: range expressions 範囲表現 +.\"WORD: equivalence classes 等価クラス +.\"WORD: collation 照合 +.\"WORD: multibyte character 多バイト文字 +.\"WORD: wide character ワイド文字 +.\"WORD: opaque string 内部文字列 .\" .TH SETLOCALE 3 2008-12-05 "GNU" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 .\"O setlocale \- set the current locale -setlocale \- ¸½ºß¤Î¥í¥±¡¼¥ë (locale) ¤òÀßÄꤹ¤ë -.SH ½ñ¼° +setlocale \- 現在のロケール (locale) を設定する +.SH 書式 .nf .B #include .sp .BI "char *setlocale(int " category ", const char *" locale ); .fi -.SH ÀâÌÀ +.SH 説明 .\"O .BR setlocale () .\"O function is used to set or query the program's current locale. .BR setlocale () -´Ø¿ô¤Ï¥×¥í¥°¥é¥à¤Î¥«¥ì¥ó¥È¥í¥±¡¼¥ë¤òÀßÄꤷ¤¿¤ê -Ì䤤¹ç¤ï¤»¤¿¤ê¤¹¤ë¤Î¤ËÍѤ¤¤é¤ì¤ë¡£ +関数はプログラムのカレントロケールを設定したり +問い合わせたりするのに用いられる。 .PP .\"O If .\"O .I locale .\"O is not NULL, .\"O the program's current locale is modified according to the arguments. .I locale -¤¬ NULL ¤Ç¤Ê¤±¤ì¤Ð¡¢¥×¥í¥°¥é¥à¤Î¥«¥ì¥ó¥È¥í¥±¡¼¥ë¤Ï°ú¤­¿ô¤Ë½¾¤Ã¤ÆÊѹ¹¤µ¤ì¤ë¡£ +が NULL でなければ、プログラムのカレントロケールは引き数に従って変更される。 .\"O The argument .\"O .I category .\"O determines which parts of the program's current locale should be modified. -°ú¤­¿ô +引き数 .I category -¤Ï¥×¥í¥°¥é¥à¤Î¥«¥ì¥ó¥È¥í¥±¡¼¥ë¤Î¤É¤ÎÉôʬ¤òÊѹ¹¤¹¤ë¤«¤ò·è¤á¤ë¡£ +はプログラムのカレントロケールのどの部分を変更するかを決める。 .TP .B LC_ALL .\"O for all of the locale. -Á´¤Æ¤Î¥í¥±¡¼¥ë +全てのロケール .TP .B LC_COLLATE .\"O for regular expression matching (it determines the meaning .\"O of range expressions and equivalence classes) and string collation. -Àµµ¬É½¸½¤Î¥Þ¥Ã¥Á¥ó¥° (ÈÏ°Ïɽ¸½¤ÈÅù²Á¥¯¥é¥¹¤Î¥Þ¥Ã¥Á¥ó¥°¤ò·èÄꤹ¤ë) -¤Èʸ»úÎó¤Î¾È¹ç (collation) +正規表現のマッチング (範囲表現と等価クラスのマッチングを決定する) +と文字列の照合 (collation) .TP .B LC_CTYPE .\"O for regular expression matching, character classification, conversion, .\"O case-sensitive comparison, and wide character functions. -Àµµ¬É½¸½¤Î¥Þ¥Ã¥Á¥ó¥°¡¢Ê¸»ú¤ÎʬÎࡢʸ»ú¤ÎÊÑ´¹¡¢Âçʸ»ú¾®Ê¸»úÈæ³Ó¡¢ -¥ï¥¤¥Éʸ»ú´Ø¿ô +正規表現のマッチング、文字の分類、文字の変換、大文字小文字比較、 +ワイド文字関数 .TP .B LC_MESSAGES .\"O for localizable natural-language messages. -ÃÏ°è²½²Äǽ¤Ê¼«Á³¸À¸ì¥á¥Ã¥»¡¼¥¸ +地域化可能な自然言語メッセージ .TP .B LC_MONETARY .\"O for monetary formatting. -Ä̲ߤνñ¼° +通貨の書式 .TP .B LC_NUMERIC .\"O for number formatting (such as the decimal point and the thousands separator). -¿ôÃͤνñ¼° (¾®¿ôÅÀ¤ä 3 ·å¤´¤È¤Î¶èÀÚ¤ê) +数値の書式 (小数点や 3 桁ごとの区切り) .TP .B LC_TIME .\"O for time and date formatting. -»þ¹ï¤ÈÆüÉÕ¤±¤Î½ñ¼° +時刻と日付けの書式 .PP .\"O The argument .\"O .I locale .\"O is a pointer to a character string containing the .\"O required setting of .\"O .IR category . -°ú¤­¿ô +引き数 .I locale -¤Ï +は .I category -¤ËÀßÄꤹ¤ëʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +に設定する文字列へのポインタである。 .\"O Such a string is either a well-known constant like "C" or "da_DK" .\"O (see below), or an opaque string that was returned by another call of .\"O .BR setlocale (). -¤³¤Îʸ»úÎó¤Ï¤è¤¯ÃΤé¤ì¤¿Äê¿ô¤Ç¤¢¤ë "C" ¤ä "da_DK" ¤Ê¤É¤Ç¤âÎɤ¤¤· -(°Ê²¼¤ò»²¾È)¡¢Â¾¤Î¤È¤­¤Ë +この文字列はよく知られた定数である "C" や "da_DK" などでも良いし +(以下を参照)、他のときに .BR setlocale () -¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤ËÊÖ¤µ¤ì¤¿¡¢ÆâÉôÍѤÎʸ»úÎó¤Ç¤âÎɤ¤¡£ +を呼び出した際に返された、内部用の文字列でも良い。 .PP .\"O If .\"O .I locale @@ -134,8 +134,8 @@ setlocale \- .\"O environment variables. .\"O The details are implementation-dependent. .I locale -¤¬ \fB""\fP ¤Î¾ì¹ç¡¢¥í¥±¡¼¥ë¤Î³ÆÉôʬ¤ÎÀßÄê¤Ë¤Ï´Ä¶­ÊÑ¿ô¤¬»²¾È¤µ¤ì¤ë¡£ -¤½¤Î¾ÜºÙ¤Ï¼ÂÁõ°Í¸¤Ç¤¢¤ë¡£ +が \fB""\fP の場合、ロケールの各部分の設定には環境変数が参照される。 +その詳細は実装依存である。 .\"O For glibc, first (regardless of .\"O .IR category ), .\"O the environment variable @@ -155,25 +155,25 @@ setlocale \- .\"O is unchanged, and .\"O .BR setlocale () .\"O returns NULL. -glibc ¤Î¾ì¹ç¡¢¤Þ¤ººÇ½é¤Ë (¤É¤ó¤Ê +glibc の場合、まず最初に (どんな .I category -¤ËÂФ·¤Æ¤â) ´Ä¶­ÊÑ¿ô +に対しても) 環境変数 .B LC_ALL -¤¬¸¡ºº¤µ¤ì¤ë¡£ -¼¡¤Ë¥«¥Æ¥´¥ê (category) ¤ÈƱ¤¸Ì¾Á°¤Î´Ä¶­ÊÑ¿ô +が検査される。 +次にカテゴリ (category) と同じ名前の環境変数 .RB ( LC_COLLATE , .BR LC_CTYPE , .BR LC_MESSAGES , .BR LC_MONETARY , .BR LC_NUMERIC , .BR LC_TIME ) -¤¬¸¡ºº¤µ¤ì¡¢ºÇ¸å¤Ë´Ä¶­ÊÑ¿ô +が検査され、最後に環境変数 .B LANG -¤¬¸¡ºº¤µ¤ì¤ë¡£ -ºÇ½é¤Ë¸«¤Ä¤«¤Ã¤¿´Ä¶­ÊÑ¿ô¤ò»ÈÍѤ¹¤ë¡£ -¤½¤ÎÃͤ¬¥í¥±¡¼¥ë»ØÄê¤È¤·¤ÆÀµ¤·¤¯¤Ê¤±¤ì¤Ð¡¢¥í¥±¡¼¥ë¤ÏÊѹ¹¤µ¤ì¤º¡¢ +が検査される。 +最初に見つかった環境変数を使用する。 +その値がロケール指定として正しくなければ、ロケールは変更されず、 .BR setlocale () -¤Ï NULL ¤òÊÖ¤¹¡£ +は NULL を返す。 .PP .\"O The locale .\"O .B """C""" @@ -183,10 +183,10 @@ glibc .\"O .B LC_CTYPE .\"O part corresponds to the 7-bit ASCII .\"O character set. -\fB"C"\fP ¥í¥±¡¼¥ë¤ä \fB"POSIX"\fP ¥í¥±¡¼¥ë¤Ï¸ß´¹À­¤Î¤¢¤ë¥í¥±¡¼¥ë¤Ç¤¢¤ë¡£ -¤³¤Î +\fB"C"\fP ロケールや \fB"POSIX"\fP ロケールは互換性のあるロケールである。 +この .B LC_CTYPE -¤ÎÉôʬ¤Ï 7 ¥Ó¥Ã¥È ASCII ʸ»ú½¸¹ç¤ËÁêÅö¤·¤Æ¤¤¤ë¡£ +の部分は 7 ビット ASCII 文字集合に相当している。 .PP .\"O A locale name is typically of the form .\"O .IR language "[_" territory "][." codeset "][@" modifier "]," @@ -200,38 +200,38 @@ glibc .\"O .B "ISO-8859-1" .\"O or .\"O .BR "UTF-8" . -¥í¥±¡¼¥ë̾¤Î½ñ¼°¤Ï¡¢Ä̾ï +ロケール名の書式は、通常 .IR language "[_" territory "][." codeset "][@" modifier "]" -¤È¤¤¤¦¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤³¤Ç +というものである。 +ここで .I language -¤Ï ISO 639 ¤Î¸À¸ì¥³¡¼¥É¤Ç¤¢¤ë¡£ +は ISO 639 の言語コードである。 .I territory -¤Ï ISO 3166 ¤Î¹ñ̾¥³¡¼¥É¤Ç¤¢¤ë¡£ +は ISO 3166 の国名コードである。 .I codeset -¤Ï +は .B "ISO-8859-1" -¤ä +や .B "UTF-8" -¤Î¤è¤¦¤Êʸ»ú½¸¹ç¤äʸ»úÉä¹æ²½¼±Ê̻ҤǤ¢¤ë¡£ +のような文字集合や文字符号化識別子である。 .\"O For a list of all supported locales, try "locale \-a", cf.\& .\"O .BR locale (1). -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥í¥±¡¼¥ë¤Î°ìÍ÷¤òÆÀ¤ë¤Ë¤Ï¡¢ -"locale \-a" ¤ò¼Â¹Ô¤·¤Æ¤ß¤è +サポートされているロケールの一覧を得るには、 +"locale \-a" を実行してみよ .RB ( locale (1) -»²¾È¤Î¤³¤È)¡£ +参照のこと)。 .PP .\"O If .\"O .I locale .\"O is NULL, the current locale is only queried, not modified. .I locale -¤¬ NULL ¤Ê¤é¤Ð¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤òÌ䤤¹ç¤ï¤»¤ë¤Î¤ß¤ÇÊѹ¹¤Ï¤·¤Ê¤¤¡£ +が NULL ならば、現在のロケールを問い合わせるのみで変更はしない。 .PP .\"O On startup of the main program, the portable .\"O .B """C""" .\"O locale is selected as default. -main ¥×¥í¥°¥é¥à¤Îµ¯Æ°»þ¤Ë¤Ï¡¢ -¸ß´¹À­¤Î¤¢¤ë \fB"C"\fP ¥í¥±¡¼¥ë¤¬¥Ç¥Õ¥©¥ë¥È¤ÇÁªÂò¤µ¤ì¤ë¡£ +main プログラムの起動時には、 +互換性のある \fB"C"\fP ロケールがデフォルトで選択される。 .\"O A program may be made portable to all locales by calling: .\"O .nf .\"O @@ -252,26 +252,26 @@ main .\"O .BR strxfrm (3), .\"O .BR wcsxfrm (3) .\"O to compare strings. -¥×¥í¥°¥é¥à¤ò¤¹¤Ù¤Æ¤Î¥í¥±¡¼¥ë¤ËÂФ·¤Æ¸ß´¹¤Ë¤·¤¿¤±¤ì¤Ð¡¢ -¥×¥í¥°¥é¥à¤Î½é´ü²½¤Î¸å¤Ë +プログラムをすべてのロケールに対して互換にしたければ、 +プログラムの初期化の後に .nf setlocale(LC_ALL, ""); .fi -¤ò¸Æ¤Ó½Ð¤·¡¢¥í¥±¡¼¥ë°Í¸¤Î¾ðÊó¤Ë¤Ï +を呼び出し、ロケール依存の情報には .BR localeconv (3) -¤ÎÊÖ¤êÃͤòÍѤ¤¡¢ +の返り値を用い、 .BR "MB_CUR_MAX > 1" -¤Î¾ì¹ç¤Ë¤Ïʸ»úÎó¤ÎÁàºî¤Ë¤Ï¿¥Ð¥¤¥Èʸ»ú¡¢¥ï¥¤¥Éʸ»ú´Ø¿ô¤ò»ÈÍѤ·¡¢ -ʸ»úÎó¤ÎÈæ³Ó¤Ë¤Ï +の場合には文字列の操作には多バイト文字、ワイド文字関数を使用し、 +文字列の比較には .BR strcoll (3), .BR wcscoll (3) -¤ä +や .BR strxfrm (3), .BR wcsxfrm (3) -¤òÍѤ¤¤ë¡£ -.SH ÊÖ¤êÃÍ +を用いる。 +.SH 返り値 .\"O A successful call to .\"O .BR setlocale () .\"O returns an opaque string that corresponds to the locale set. @@ -281,19 +281,19 @@ main .\"O locale. .\"O The return value is NULL if the request cannot be honored. .BR setlocale () -¤Î¸Æ¤Ó½Ð¤·¤ËÀ®¸ù¤¹¤ë¤È¡¢ -¤½¤Î¥í¥±¡¼¥ë½¸¹ç¤ËÂбþ¤¹¤ëÆâÉôʸ»úÎó (opaque string) ¤òÊÖ¤¹¡£ -¤³¤Îʸ»úÎó¤ÏÀÅŪ¤Êµ­²±°è¤Ë³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤ÎÊ֤äÆÍ褿ʸ»úÎó¤ò¡¢¥«¥Æ¥´¥ê»ØÄê¤È¶¦¤Ë¡¢ -¤Î¤Á¤Î setlocale ¤Î¸Æ¤Ó½Ð¤·¤Ë»ØÄꤹ¤ì¤Ð¡¢ -¥×¥í¥»¥¹¤Î¤½¤ÎÉôʬ¤Î¥í¥±¡¼¥ë¤¬Éü¸µ¤µ¤ì¤ë¡£ -ÀßÄê¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ÊÖ¤êÃÍ¤Ï NULL ¤Ë¤Ê¤ë¡£ -.SH ½àµò +の呼び出しに成功すると、 +そのロケール集合に対応する内部文字列 (opaque string) を返す。 +この文字列は静的な記憶域に割り当てられているかもしれない。 +この返って来た文字列を、カテゴリ指定と共に、 +のちの setlocale の呼び出しに指定すれば、 +プロセスのその部分のロケールが復元される。 +設定に失敗した場合には、返り値は NULL になる。 +.SH 準拠 C89, C99, POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .\"O Linux (that is, glibc) supports the portable locales -Linux (¤È¤¤¤¦¤« glibc) ¤Ï¸ß´¹À­¤Î¤¢¤ë¥í¥±¡¼¥ë¤È¤·¤Æ -\fB"C"\fP ¤È \fB"POSIX"\fP ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ +Linux (というか glibc) は互換性のあるロケールとして +\fB"C"\fP と \fB"POSIX"\fP をサポートしている。 .\"O In the good old days there used to be support for .\"O the European Latin-1 .\"O .B """ISO-8859-1""" @@ -306,17 +306,17 @@ Linux ( .\"O return the right answer. .\"O These days non-English speaking Europeans have to work a bit harder, .\"O and must install actual locale files. -¸Å¤­¤è¤­»þÂå¤Ë¤Ï (Î㤨¤Ð libc-4.5.21 ¤È libc-4.6.27 ¤Ê¤É¤Ç¤Ï)¡¢ -European Latin-1 ¸þ¤±¤Ë -\fB"ISO-8859-1"\fP ¥í¥±¡¼¥ë¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤ª¤ê¡¢ -¥í¥·¥¢¸ì (Russian) ¸þ¤±¤Ë \fB"KOI-8"\fP -(¤è¤êÀµ³Î¤Ë¤Ï "koi-8r") ¥í¥±¡¼¥ë¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤¿¡£ -½¾¤Ã¤Æ´Ä¶­ÊÑ¿ô¤ò \fILC_CTYPE=ISO-8859-1\fP ¤È»ØÄꤹ¤ë¤À¤±¤Ç +古きよき時代には (例えば libc-4.5.21 と libc-4.6.27 などでは)、 +European Latin-1 向けに +\fB"ISO-8859-1"\fP ロケールがサポートされており、 +ロシア語 (Russian) 向けに \fB"KOI-8"\fP +(より正確には "koi-8r") ロケールがサポートされていた。 +従って環境変数を \fILC_CTYPE=ISO-8859-1\fP と指定するだけで .BR isprint (3) -¤ÏÀµ¤·¤¤Åú¤¨¤òÊÖ¤·¤¿¡£ -ºÇ¶á¤Ç¤Ï¡¢±Ñ¸ì°Ê³°¤ò»È¤¦¥è¡¼¥í¥Ã¥Ñ¿Í¤Ï¤â¤¦¾¯¡¹¤ä¤Ã¤«¤¤¤Êºî¶È¤òɬÍפȤ·¡¢ -¼ÂºÝ¤Î¥í¥±¡¼¥ë¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +は正しい答えを返した。 +最近では、英語以外を使うヨーロッパ人はもう少々やっかいな作業を必要とし、 +実際のロケールファイルをインストールしなければならない。 +.SH 関連項目 .BR locale (1), .BR localedef (1), .BR isalpha (3), diff --git a/draft/man3/setlogmask.3 b/draft/man3/setlogmask.3 index 4a412e4e..92ddf542 100644 --- a/draft/man3/setlogmask.3 +++ b/draft/man3/setlogmask.3 @@ -25,50 +25,50 @@ .\" Translated Sat Nov 3 01:46:03 JST 2001 .\" by Akihiro MOTOKI .\" -.\"WORD: logging ¥í¥°¼ý½¸ +.\"WORD: logging ログ収集 .\" .TH SETLOGMASK 3 2001-10-05 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O setlogmask \- set log priority mask -setlogmask \- ¥í¥°¤ÎÍ¥ÀèÅÙ¥Þ¥¹¥¯¤òÀßÄꤹ¤ë +setlogmask \- ログの優先度マスクを設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int setlogmask(int " mask ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O A process has a log priority mask that determines which calls to .\"O .BR syslog (3) .\"O may be logged. .\"O All other calls will be ignored. -¥×¥í¥»¥¹¤Ë¤Ï¥í¥°Í¥ÀèÅÙ¥Þ¥¹¥¯(log priority mask)¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Æ¡¢ -¤³¤ì¤òÍѤ¤¤Æ +プロセスにはログ優先度マスク(log priority mask)が用意されていて、 +これを用いて .BR syslog (3) -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¤Ë¥í¥°µ­Ï¿¤ò¹Ô¤¦¤«¤É¤¦¤«¤ò·èÄꤹ¤ë¡£ -¾¤Î¤¹¤Ù¤Æ¤Î´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¤Ï¥í¥°µ­Ï¿¤¬¹Ô¤ï¤ì¤Ê¤¤¡£ +が呼び出された場合にログ記録を行うかどうかを決定する。 +他のすべての関数が呼び出された場合はログ記録が行われない。 .\"O Logging is enabled for the priorities that have the corresponding .\"O bit set in .\"O .IR mask . .I mask -¤Î³Æ¥Ó¥Ã¥È¤ÏÍ¥ÀèÅÙ¤ËÂбþ¤·¤Æ¤ª¤ê¡¢Âбþ¤¹¤ë¥Ó¥Ã¥È¤¬ 1 ¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë -Í¥ÀèÅÙ¤ËÂФ·¤Æ¥í¥°¼ý½¸(logging)¤¬Í­¸ú¤Ë¤Ê¤ë¡£ +の各ビットは優先度に対応しており、対応するビットが 1 にセットされている +優先度に対してログ収集(logging)が有効になる。 .\"O The initial mask is such that logging is enabled for all priorities. -¥Þ¥¹¥¯¤Î½é´üÃͤϡ¢¤¹¤Ù¤Æ¤ÎÍ¥ÀèÅÙ¤ËÂФ·¤Æ¥í¥°¼ý½¸¤¬Í­¸ú¤Ë¤Ê¤ë¤è¤¦¤ÊÃͤǤ¢¤ë¡£ +マスクの初期値は、すべての優先度に対してログ収集が有効になるような値である。 .LP .\"O The .\"O .BR setlogmask () .\"O function sets this logmask for the calling process, .\"O and returns the previous mask. .BR setlogmask () -´Ø¿ô¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ËÂФ¹¤ë¥í¥°¥Þ¥¹¥¯¤òÀßÄꤷ¡¢ -Êѹ¹Á°¤Î¥Þ¥¹¥¯¤òÊÖ¤¹¡£ +関数は、呼び出し元のプロセスに対するログマスクを設定し、 +変更前のマスクを返す。 .\"O If the mask argument is 0, the current logmask is not modified. .I mask -°ú¤­¿ô¤¬ 0 ¤Ê¤é¤Ð¡¢¸½ºß¤Î¥í¥°¥Þ¥¹¥¯¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +引き数が 0 ならば、現在のログマスクは変更されない。 .LP .\"O The eight priorities are .\"O .BR LOG_EMERG , @@ -83,7 +83,7 @@ setlogmask \- .\"O The bit corresponding to a priority \fIp\fP is \fBLOG_MASK\fP(\fIp\fP). .\"O Some systems also provide a macro \fBLOG_UPTO\fP(\fIp\fP) for the mask .\"O of all priorities in the above list up to and including \fIp\fP. -°Ê²¼¤Î8¥ì¥Ù¥ë¤ÎÍ¥ÀèÅÙ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë(Í¥ÀèÅ٤ι⤤½ç)¡§ +以下の8レベルの優先度が定義されている(優先度の高い順): .BR LOG_EMERG , .BR LOG_ALERT , .BR LOG_CRIT , @@ -91,29 +91,29 @@ setlogmask \- .BR LOG_WARNING , .BR LOG_NOTICE , .BR LOG_INFO , -.BR LOG_DEBUG ¡£ -Í¥ÀèÅÙ \fIp\fP ¤ËÂбþ¤¹¤ë¥Ó¥Ã¥ÈÎó¤Ï \fBLOG_MASK\fP(\fIp\fP) ¤Ë¤è¤Ã¤Æµá¤á¤é¤ì¤ë¡£ -Í¥ÀèÅÙ \fIp\fP °Ê¾å¤Î¤¹¤Ù¤Æ¤ÎÍ¥ÀèÅÙ (\fIp\fP ¤ò´Þ¤à) ¤Î¥Þ¥¹¥¯¥Ó¥Ã¥È¤ò -µá¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¥Þ¥¯¥í \fBLOG_UPTO\fP(\fIp\fP) ¤ò»ÈÍѤǤ­¤ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ +.BR LOG_DEBUG 。 +優先度 \fIp\fP に対応するビット列は \fBLOG_MASK\fP(\fIp\fP) によって求められる。 +優先度 \fIp\fP 以上のすべての優先度 (\fIp\fP を含む) のマスクビットを +求めることができるマクロ \fBLOG_UPTO\fP(\fIp\fP) を使用できるシステムもある。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O This function returns the previous log priority mask. -Êѹ¹Á°¤Î¥í¥°Í¥ÀèÅÙ¥Þ¥¹¥¯¤ÎÃͤòÊÖ¤¹¡£ +変更前のログ優先度マスクの値を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O None. -¤Ê¤·¡£ +なし。 .\"O .\" .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .\" The glibc logmask handling was broken in versions before glibc 2.1.1. -glibc 2.1.1 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï glibc ¤Î¥í¥°¥Þ¥¹¥¯¤Î°·¤¤¤ËÉÔ¶ñ¹ç¤¬¤¢¤ë¡£ +glibc 2.1.1 より前のバージョンでは glibc のログマスクの扱いに不具合がある。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O Note that the description in POSIX.1-2001 is flawed. -POSIX.1-2001 ¤Ç¤ÎÀâÌÀ¤Ë¤Ï·ç´Ù¤¬¤¢¤ë¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +POSIX.1-2001 での説明には欠陥があることに注意すること。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR closelog (3), .BR openlog (3), .BR syslog (3) diff --git a/draft/man3/setnetgrent.3 b/draft/man3/setnetgrent.3 index 9d256abc..d8febcd6 100644 --- a/draft/man3/setnetgrent.3 +++ b/draft/man3/setnetgrent.3 @@ -9,13 +9,13 @@ .\" .TH SETNETGRENT 3 2007-07-26 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O setnetgrent, endnetgrent, getnetgrent, getnetgrent_r, innetgr \- .\"O handle network group entries setnetgrent, endnetgrent, getnetgrent, getnetgrent_r, innetgr \- -¥Í¥Ã¥È¥ï¡¼¥¯¡¦¥°¥ë¡¼¥×¤Î¥¨¥ó¥È¥ê¤òÁàºî¤¹¤ë +ネットワーク・グループのエントリを操作する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include @@ -35,9 +35,9 @@ setnetgrent, endnetgrent, getnetgrent, getnetgrent_r, innetgr \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -49,7 +49,7 @@ glibc _BSD_SOURCE || _SVID_SOURCE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .I netgroup .\"O is a SunOS invention. @@ -63,16 +63,16 @@ _BSD_SOURCE || _SVID_SOURCE .\"O .I /etc/nsswitch.conf .\"O defines what database is searched. .I netgroup -¤Ï SunOS ¤Ç¹Í°Æ¤µ¤ì¤¿¤â¤Î¤Ç¤¢¤ë¡£¥Í¥Ã¥È¥°¥ë¡¼¥×¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î -¥¨¥ó¥È¥ê¤Ï¡¢ 3 ¤Ä¤Îʸ»úÎó¤Î¥ê¥¹¥È +は SunOS で考案されたものである。ネットグループのデータベースの +エントリは、 3 つの文字列のリスト .RI ( hostname ", " username ", " domainname ) -¤â¤·¤¯¤Ï¥Í¥Ã¥È¥°¥ë¡¼¥×̾¤Ç¤¢¤ë¡£ -Á°µ­¤Î¥ê¥¹¥È¤Î³ÆÍ×ÁǤ϶õ¤Ç¤¢¤Ã¤Æ¤â¤è¤¤¡£ -¶õ¤Ï²¿¤È¤Ç¤â°ìÃפ¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -ËÜ¥Ú¡¼¥¸¤ÇÀâÌÀ¤¹¤ë´Ø¿ô¤ò»È¤¦¤³¤È¤Ç¡¢¥Í¥Ã¥È¥°¥ë¡¼¥×¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë -¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤É¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬¸¡º÷¤µ¤ì¤ë¤«¤Ï +もしくはネットグループ名である。 +前記のリストの各要素は空であってもよい。 +空は何とでも一致することを意味する。 +本ページで説明する関数を使うことで、ネットグループのデータベースに +アクセスすることができる。どのデータベースが検索されるかは .I /etc/nsswitch.conf -¥Õ¥¡¥¤¥ë¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +ファイルで定義されている。 .PP .\"O The .\"O .BR setnetgrent () @@ -86,15 +86,15 @@ _BSD_SOURCE || _SVID_SOURCE .\"O .IR user , .\"O .IR domain . .BR setnetgrent () -¥³¡¼¥ë¤Ï¡¢¤³¤Î¸å¤Ç¸Æ¤Ð¤ì¤ë +コールは、この後で呼ばれる .BR getnetgrent () -¥³¡¼¥ë¤¬¸¡º÷¤¹¤ë¥Í¥Ã¥È¥°¥ë¡¼¥×¤òÄê¤á¤ë¡£ +コールが検索するネットグループを定める。 .BR getnetgrent () -´Ø¿ô¤Ï¥Í¥Ã¥È¥°¥ë¡¼¥×¤Î¼¡¤Î¥¨¥ó¥È¥ê¤ò¼èÆÀ¤·¡¢ +関数はネットグループの次のエントリを取得し、 .IR host , .IR user , .I domain -¤Ë¥Ý¥¤¥ó¥¿¤òÆþ¤ì¤ÆÊ֤롣 +にポインタを入れて返る。 .\"O A NULL pointer means that the corresponding entry matches any string. .\"O The pointers are valid only as long as there is no call to other .\"O netgroup-related functions. @@ -103,14 +103,14 @@ _BSD_SOURCE || _SVID_SOURCE .\"O that stores the strings in the supplied buffer. .\"O To free all allocated buffers use .\"O .BR endnetgrent (). -NULL ¥Ý¥¤¥ó¥¿¤Ï¡¢Âбþ¤¹¤ë¥¨¥ó¥È¥ê¤¬¤É¤ó¤Êʸ»úÎó¤È¤â°ìÃפ¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -ÆÀ¤é¤ì¤¿¥Ý¥¤¥ó¥¿¤Ï¡¢¥Í¥Ã¥È¥°¥ë¡¼¥×´Ø·¸¤Î´Ø¿ô¤Î¤¤¤º¤ì¤«¤¬¸Æ¤Ð¤ì¤ë¤Þ¤Ç¤Î -´Ö¤À¤±Í­¸ú¤Ç¤¢¤ë¡£¤³¤ÎÌäÂê¤òÈò¤±¤ë¤¿¤á¤Ë¤Ï GNU ³ÈÄ¥¤Î´Ø¿ô +NULL ポインタは、対応するエントリがどんな文字列とも一致することを意味する。 +得られたポインタは、ネットグループ関係の関数のいずれかが呼ばれるまでの +間だけ有効である。この問題を避けるためには GNU 拡張の関数 .BR getnetgrent_r () -¤ò»È¤¦¤È¤è¤¤¡£¤³¤Î´Ø¿ô¤Ï¸Æ¤Ó½Ð¤·Â¦¤¬ÍÑ°Õ¤·¤¿¥Ð¥Ã¥Õ¥¡¤Ë -ʸ»úÎó¤ò³ÊǼ¤¹¤ë¡£³ä¤êÅö¤ÆºÑ¤Î¥Ð¥Ã¥Õ¥¡¤òÁ´¤Æ²òÊü¤¹¤ë¤Ë¤Ï +を使うとよい。この関数は呼び出し側が用意したバッファに +文字列を格納する。割り当て済のバッファを全て解放するには .BR endnetgrent () -¤ò»ÈÍѤ¹¤ë¡£ +を使用する。 .PP .\"O In most cases you only want to check if the triplet .\"O .RI ( hostname ", " username ", " domainname ) @@ -120,24 +120,24 @@ NULL .\"O can be used for this without calling the above three functions. .\"O Again, a NULL pointer is a wildcard and matches any string. .\"O The function is thread-safe. -¤Û¤È¤ó¤É¤Î¾ì¹ç¡¢ +ほとんどの場合、 .RI ( hostname ", " username ", " domainname ) -¤Î3Í×ÁǤÎÁȤ¬¥Í¥Ã¥È¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð¡¼¤«¤É¤¦¤«¤ò³Îǧ¤·¤¿¤¤¤À¤±¤Ç¤¢¤í¤¦¡£ +の3要素の組がネットグループのメンバーかどうかを確認したいだけであろう。 .BR innetgr () -´Ø¿ô¤ò»È¤¦¤È¡¢¾åµ­¤Î3¤Ä¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤µ¤º¤Ë¤³¤ÎÌÜŪ¤òãÀ®¤Ç¤­¤ë¡£ -¤â¤¦°ìÅÙ½ñ¤¤¤Æ¤ª¤¯¤¬¡¢NULL ¥Ý¥¤¥ó¥¿¤Ï¥ï¥¤¥ë¥É¥«¡¼¥É¤Ç¤¢¤ê¡¢ -¤¢¤é¤æ¤ëʸ»úÎó¤È°ìÃפ¹¤ë¡£¤³¤Î´Ø¿ô¤Ï¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤¢¤ë¡£ +関数を使うと、上記の3つの関数を呼び出さずにこの目的を達成できる。 +もう一度書いておくが、NULL ポインタはワイルドカードであり、 +あらゆる文字列と一致する。この関数はスレッドセーフである。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O These functions return 1 on success and 0 for failure. -¤³¤ì¤é¤Î´Ø¿ô¤ÏÀ®¸ù¤¹¤ë¤È 1 ¤ò¡¢¼ºÇÔ¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ +これらの関数は成功すると 1 を、失敗すると 0 を返す。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .I /etc/netgroup .br .I /etc/nsswitch.conf .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O These functions are not in POSIX.1-2001, but .\"O .BR setnetgrent (), .\"O .BR endnetgrent (), @@ -147,25 +147,25 @@ NULL .\"O are available on most UNIX systems. .\"O .BR getnetgrent_r () .\"O is not widely available on other systems. -¤³¤ì¤é¤Î´Ø¿ô¤Ï POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¤¬¡¢ +これらの関数は POSIX.1-2001 にはないが、 setnetgrent (), endnetgrent (), getnetgrent (), innetgr () -¤Ï¤Û¤È¤ó¤É¤Î UNIX ¥·¥¹¥Æ¥à¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +はほとんどの UNIX システムで利用可能である。 .BR getnetgrent_r () -¤Ï¹­¤¯Â¾¤Î¥·¥¹¥Æ¥à¤ÇÍøÍѤǤ­¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ +は広く他のシステムで利用できるわけではない。 .\" getnetgrent_r() is on Solaris 8 and AIX 5.1, but not the BSDs. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O In the BSD implementation, .\"O .BR setnetgrent () .\"O returns void. -BSD ¤Î¼ÂÁõ¤Ç¤Ï +BSD の実装では .BR setnetgrent () -¤Ï void ¤òÊÖ¤¹¡£ +は void を返す。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sethostent (3), .BR setprotoent (3), .BR setservent (3) diff --git a/draft/man3/shm_open.3 b/draft/man3/shm_open.3 index 16da04f6..46563409 100644 --- a/draft/man3/shm_open.3 +++ b/draft/man3/shm_open.3 @@ -30,28 +30,28 @@ .\" .TH SHM_OPEN 3 2009-02-25 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O shm_open, shm_unlink \- Create/open or unlink POSIX shared memory objects -shm_open, shm_unlink \- POSIX ¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ÎºîÀ®/¥ª¡¼¥×¥ó¡¢ -ºï½ü¤ò¹Ô¤¦ +shm_open, shm_unlink \- POSIX 共有メモリ・オブジェクトの作成/オープン、 +削除を行う .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .\"O .BR "#include " " /* For mode constants */" -.BR "#include " " /* mode Äê¿ôÍÑ */" +.BR "#include " " /* mode 定数用 */" .br .\"O .BR "#include " " /* For O_* constants */" -.BR "#include " " /* O_* Äê¿ô¤ÎÄêµÁÍÑ */" +.BR "#include " " /* O_* 定数の定義用 */" .sp .BI "void * shm_open(const char *" name ", int " oflag ", mode_t " mode ); .sp .BI "int shm_unlink(const char *" name ); .sp .\"O Link with \fI\-lrt\fP. -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR shm_open () .\"O creates and opens a new, or opens an existing, POSIX shared memory object. .\"O A POSIX shared memory object is in effect a handle which can @@ -59,30 +59,30 @@ shm_open, shm_unlink \- POSIX .\"O .BR mmap (2) .\"O the same region of shared memory. .BR shm_open () -¤Ï¡¢POSIX ¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò¿·µ¬¤ËºîÀ®/¥ª¡¼¥×¥ó¤·¤¿¤ê¡¢ -¤¹¤Ç¤Ë¸ºß¤¹¤ë¥ª¥Ö¥¸¥§¥¯¥È¤ò¥ª¡¼¥×¥ó¤·¤¿¤ê¤¹¤ë¡£ -POSIX ¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢¼ÂºÝ¤Ë¤Ï¡¢´Ø·¸¤Î¤Ê¤¤¥×¥í¥»¥¹¤¬ -¶¦Í­¥á¥â¥ê¤ÎƱ¤¸Îΰè¤ò +は、POSIX 共有メモリ・オブジェクトを新規に作成/オープンしたり、 +すでに存在するオブジェクトをオープンしたりする。 +POSIX 共有メモリ・オブジェクトは、実際には、関係のないプロセスが +共有メモリの同じ領域を .BR mmap (2) -¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¼êÃʤǤ¢¤ë¡£ +するために使用することができる手段である。 .\"O The .\"O .BR shm_unlink () .\"O function performs the converse operation, .\"O removing an object previously created by .\"O .BR shm_open (). .BR shm_unlink () -¤Ï¡¢µÕ¤ÎÁàºî¡¢¤Ä¤Þ¤ê°ÊÁ°¤Ë +は、逆の操作、つまり以前に .BR shm_open () -¤ÇºîÀ®¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Îºï½ü¤ò¹Ô¤¦¡£ +で作成されたオブジェクトの削除を行う。 .LP .\"O The operation of .\"O .BR shm_open () .\"O is analogous to that of .\"O .BR open (2). .BR shm_open () -¤ÎÆ°ºî¤Ï +の動作は .BR open (2) -¤È¤è¤¯»÷¤Æ¤¤¤ë¡£ +とよく似ている。 .\"O .I name .\"O specifies the shared memory object to be created or opened. .\"O For portable use, @@ -92,19 +92,19 @@ POSIX .\"O .BI NAME_MAX .\"O (i.e., 255) characters consisting of an initial slash, .I name -¤ÇºîÀ®¤·¤¿¤ê¥ª¡¼¥×¥ó¤·¤¿¤ê¤¹¤ë¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò»ØÄꤹ¤ë¡£ -°Ü¿¢À­¤ò»ý¤¿¤»¤ë¤¿¤á¤Ë¤Ï¡¢¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ï +で作成したりオープンしたりする共有メモリ・オブジェクトを指定する。 +移植性を持たせるためには、共有メモリ・オブジェクトは .I /somename -¤È¤¤¤¦·Á¼°¤Î̾Á°¤Ç¼±Ê̤·¡¢ -¤½¤Î̾Á°¤Ï¡¢ºÇÂç¤Ç +という形式の名前で識別し、 +その名前は、最大で .B NAME_MAX -(¤¹¤Ê¤ï¤Á 255) ʸ»ú¤Î NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ç¡¢ +(すなわち 255) 文字の NULL 終端された文字列で、 .\" glibc allows the initial slash to be omitted, and makes .\" multiple initial slashes equivalent to a single slash. .\" This differs from the implementation of POSIX message queues. .\"O followed by one or more characters, none of which are slashes. -¥¹¥é¥Ã¥·¥å¤Ç»Ï¤Þ¤ê¡¢¥¹¥é¥Ã¥·¥å°Ê³°¤Îʸ»ú¤¬ 1 ʸ»ú°Ê¾å³¤¯·Á¼° -¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +スラッシュで始まり、スラッシュ以外の文字が 1 文字以上続く形式 +にすべきである。 .\" glibc allows subdirectory components in the name, in which .\" case the subdirectory must exist under /dev/shm, and allow the .\" required permissions if a user wants to create a shared memory @@ -117,31 +117,31 @@ POSIX .\"O .B O_RDWR .\"O and any of the other flags listed here: .I oflag -¤Ï¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¡¢ +はビットマスクで、 .B O_RDONLY -¤È +と .B O_RDWR -¤Î¤¤¤º¤ì¤«°ìÊý¤È¡¢°Ê²¼¤Ë½Ò¤Ù¤ë¾¤Î¥Õ¥é¥°¤ÎÏÀÍýϤò¤È¤Ã¤¿¤â¤Î -¤ò»ØÄꤹ¤ë¡£ +のいずれか一方と、以下に述べる他のフラグの論理和をとったもの +を指定する。 .TP 1.1i .B O_RDONLY .\"O Open the object for read access. .\"O A shared memory object opened in this way can only be .\"O .BR mmap (2)ed .\"O for read (\fBPROT_READ\fP) access. -Æɤ߽Ф·¥¢¥¯¥»¥¹ÍѤ˥ª¥Ö¥¸¥§¥¯¥È¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤷ¤Æ¥ª¡¼¥×¥ó¤µ¤ì¤¿¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢ -Æɤ߽Ф· (\fBPROT_READ\fP) ¥¢¥¯¥»¥¹¤Ç¤Î¤ß +読み出しアクセス用にオブジェクトをオープンする。 +このフラグを指定してオープンされた共有メモリ・オブジェクトは、 +読み出し (\fBPROT_READ\fP) アクセスでのみ .BR mmap (2) -¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +することができる。 .TP .B O_RDWR .\"O Open the object for read-write access. -Æɤ߽ñ¤­¥¢¥¯¥»¥¹ÍѤ˥ª¥Ö¥¸¥§¥¯¥È¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£ +読み書きアクセス用にオブジェクトをオープンする。 .TP .B O_CREAT .\"O Create the shared memory object if it does not exist. -¸ºß¤·¤Ê¤¤¾ì¹ç¡¢¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë¡£ +存在しない場合、共有メモリ・オブジェクトを作成する。 .\"O The user and group ownership of the object are taken .\"O from the corresponding effective IDs of the calling process, .\"O .\" In truth it is actually the file system IDs on Linux, but these @@ -153,16 +153,16 @@ POSIX .\"O creation mask (see .\"O .BR umask (2)) .\"O are cleared for the new object. -¥ª¥Ö¥¸¥§¥¯¥È¤Î¥æ¡¼¥¶¤È¥°¥ë¡¼¥×¤Î½êÍ­¸¢¤Ï¡¢ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤ÎÂбþ¤¹¤ë¼Â¸ú ID ¤¬»È¤ï¤ì¡¢ -.\" ËÜÅö¤Ï¡¢Linux ¤Ç¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à ID ¤¬»È¤ï¤ì¤ë¤Î¤À¤¬¡¢ -.\" ¤½¤ÎÃͤϤۤȤó¤É¤¤¤Ä¤â¼Â¸ú ID ¤ÈƱ¤¸¤Ç¤¢¤ë¡£ (MTK, Jul 05) -¥ª¥Ö¥¸¥§¥¯¥È¤Îµö²Ä¥Ó¥Ã¥È¤Ï +オブジェクトのユーザとグループの所有権は、 +呼び出し元プロセスの対応する実効 ID が使われ、 +.\" 本当は、Linux ではファイルシステム ID が使われるのだが、 +.\" その値はほとんどいつも実効 ID と同じである。 (MTK, Jul 05) +オブジェクトの許可ビットは .I mode -¤Î²¼°Ì 9 ¥Ó¥Ã¥È¤Ë´ð¤Å¤¤¤ÆÀßÄꤵ¤ì¤ë¡£¤¿¤À¤·¡¢ -¥Õ¥¡¥¤¥ë¥â¡¼¥ÉºîÀ®¥Þ¥¹¥¯ +の下位 9 ビットに基づいて設定される。ただし、 +ファイルモード作成マスク .RB ( umask (2) -»²¾È) ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ëÃͤϡ¢¿·µ¬¥ª¥Ö¥¸¥§¥¯¥È¤Ë´Ø¤·¤Æ¤Ï¥¯¥ê¥¢¤µ¤ì¤ë¡£ +参照) に設定されている値は、新規オブジェクトに関してはクリアされる。 .\"O A set of macro constants which can be used to define .\"O .I mode .\"O is listed in @@ -170,24 +170,24 @@ POSIX .\"O (Symbolic definitions of these constants can be obtained by including .\"O .IR .) .I mode -¤òÄêµÁ¤¹¤ë¤¿¤á¤Ë»ÈÍѤǤ­¤ë¥Þ¥¯¥íÄê¿ô(·²)¤Ï +を定義するために使用できるマクロ定数(群)は .BR open (2) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë -(¤³¤ì¤é¤ÎÄê¿ô¤Î¥·¥ó¥Ü¥ëÄêµÁ¤Ï +に記載されている +(これらの定数のシンボル定義は .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ë¤è¤êÆÀ¤é¤ì¤ë)¡£ +のインクルードにより得られる)。 .sp .\"O A new shared memory object initially has zero length\(emthe size of the .\"O object can be set using .\"O .BR ftruncate (2). .\"O The newly-allocated bytes of a shared memory .\"O object are automatically initialized to 0. -¿·µ¬¤ËºîÀ®¤µ¤ì¤¿¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ÏŤµ 0 ¤Ç½é´ü²½¤µ¤ì¤ë¡£ -¥ª¥Ö¥¸¥§¥¯¥È¤ÎÂ礭¤µ¤Ï +新規に作成された共有メモリ・オブジェクトは長さ 0 で初期化される。 +オブジェクトの大きさは .BR ftruncate (2) -¤ò»È¤Ã¤ÆÀßÄê¤Ç¤­¤ë¡£ -¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤Æ¿·µ¬¤Ë³ÎÊݤµ¤ì¤¿¥Ð¥¤¥È¤Ï¼«Æ°Åª¤Ë -0 ¤Ë½é´ü²½¤µ¤ì¤ë¡£ +を使って設定できる。 +共有メモリ・オブジェクトとして新規に確保されたバイトは自動的に +0 に初期化される。 .TP .B O_EXCL .\"O If @@ -198,23 +198,23 @@ POSIX .\"O The check for the existence of the object, and its creation if it .\"O does not exist, are performed atomically. .B O_CREAT -¤¬°ì½ï¤Ë»ØÄꤵ¤ì¤Æ¤ª¤ê¡¢ +が一緒に指定されており、 .I name -¤Ç»ØÄꤵ¤ì¤¿¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤¬´û¤Ë¸ºß¤·¤¿¾ì¹ç¡¢ -¥¨¥é¡¼¤òÊÖ¤¹¡£ -¥ª¥Ö¥¸¥§¥¯¥È¤Î¸ºß³Îǧ¤È¡¢Â¸ºß¤·¤Ê¤«¤Ã¤¿¾ì¹ç¤Î¥ª¥Ö¥¸¥§¥¯¥ÈºîÀ®¤Ï¡¢ -ɬ¤º°ìÏ¢¤ÎÁàºî¤È¤·¤Æ¼Â¹Ô¤µ¤ì¤ë (performed atomically)¡£ +で指定された共有メモリ・オブジェクトが既に存在した場合、 +エラーを返す。 +オブジェクトの存在確認と、存在しなかった場合のオブジェクト作成は、 +必ず一連の操作として実行される (performed atomically)。 .TP .B O_TRUNC .\"O If the shared memory object already exists, truncate it to zero bytes. -¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤¬¤¹¤Ç¤Ë¸ºß¤·¤¿¾ì¹ç¡¢ -¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò 0 ¥Ð¥¤¥È¤ËÀÚ¤êµÍ¤á¤ë¡£ +共有メモリ・オブジェクトがすでに存在した場合、 +そのオブジェクトを 0 バイトに切り詰める。 .LP .\"O Definitions of these flag values can be obtained by including .\"O .IR . -¤³¤ì¤é¤Î¥Õ¥é¥°ÃͤÎÄêµÁ¤Ï +これらのフラグ値の定義は .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ë¤è¤êÆÀ¤é¤ì¤ë¡£ +のインクルードにより得られる。 .LP .\"O On successful completion .\"O .BR shm_open () @@ -226,15 +226,15 @@ POSIX .\"O flag (see .\"O .BR fcntl (2)) .\"O is set for the file descriptor. -À®¸ù¤·¤Æ´°Î»¤·¤¿¾ì¹ç¡¢ +成功して完了した場合、 .BR shm_open () -¤Ï¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò»²¾È¤¹¤ë¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢¤½¤Î¥×¥í¥»¥¹Æâ¤Ç²áµî¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤ -¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÃæ¤ÇºÇ¤â¾®¤µ¤Ê¿ô¤Ë¤Ê¤ë¤³¤È¤¬Êݾڤµ¤ì¤ë¡£ +は共有メモリ・オブジェクトを参照する新しいファイル・ディスクリプタを返す。 +このファイル・ディスクリプタは、そのプロセス内で過去にオープンされていない +ファイル・ディスクリプタの中で最も小さな数になることが保証される。 .B FD_CLOEXEC -¥Õ¥é¥° +フラグ .RB ( fcntl (2) -¤ò»²¾È) ¤¬¡¢¤³¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÀßÄꤵ¤ì¤ë¡£ +を参照) が、このファイル・ディスクリプタに設定される。 .PP .\"O The file descriptor is normally used in subsequent calls .\"O to @@ -244,14 +244,14 @@ POSIX .\"O After a call to .\"O .BR mmap (2) .\"O the file descriptor may be closed without affecting the memory mapping. -Ä̾¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢¤³¤Î¸å³¤±¤Æ¼Â¹Ô¤µ¤ì¤ë +通常、これらのファイル・ディスクリプタは、この後続けて実行される .BR ftruncate (2) -(¿·µ¬¤ËºîÀ®¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ì¹ç¤Î¤ß) ¤È +(新規に作成されたオブジェクトの場合のみ) と .BR mmap (2) -¤Î¸Æ¤Ó½Ð¤·¤Ë»ÈÍѤµ¤ì¤ë¡£ +の呼び出しに使用される。 .BR mmap (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¸å¤Ï¡¢¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¯¥í¡¼¥º¤·¤Æ¤â¤è¤¯¡¢ -¥¯¥í¡¼¥º¤·¤Æ¤â¥á¥â¥ê¡¦¥Þ¥Ã¥Ô¥ó¥°¤Ë±Æ¶Á¤òÍ¿¤¨¤ë¤³¤È¤Ï¤Ê¤¤¡£ +を呼び出した後は、ファイル・ディスクリプタをクローズしてもよく、 +クローズしてもメモリ・マッピングに影響を与えることはない。 .PP .\"O The operation .\"O of @@ -262,12 +262,12 @@ POSIX .\"O have unmapped the object, de-allocates and .\"O destroys the contents of the associated memory region. .BR shm_unlink () -¤ÎÆ°ºî¤Ï +の動作は .BR unlink (2) -¤È¤è¤¯»÷¤Æ¤¤¤ë: -¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È̾¤òºï½ü¤·¡¢¤¹¤Ù¤Æ¤Î¥×¥í¥»¥¹¤¬½èÍýÂоݤΠ-¥ª¥Ö¥¸¥§¥¯¥È¤ò¥¢¥ó¥Þ¥Ã¥×¤·¤¿»þÅÀ¤Ç¥ª¥Ö¥¸¥§¥¯¥È¤Î³ä¤êÅö¤Æ¤ò²ò½ü¤·¡¢ -Âбþ¤¹¤ë¥á¥â¥êÎΰè¤ÎÆâÍƤòÇË´þ¤¹¤ë¡£ +とよく似ている: +共有メモリ・オブジェクト名を削除し、すべてのプロセスが処理対象の +オブジェクトをアンマップした時点でオブジェクトの割り当てを解除し、 +対応するメモリ領域の内容を破棄する。 .\"O After a successful .\"O .BR shm_unlink (), .\"O attempts to @@ -278,17 +278,17 @@ POSIX .\"O .B O_CREAT .\"O was specified, in which case a new, distinct object is created). .BR shm_unlink () -¤¬À®¸ù¤·¤¿¸å¤Ç¡¢Æ±¤¸ +が成功した後で、同じ .I name -¤ò»ý¤Ä¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ·¤Æ +を持つオブジェクトに対して .BR shm_open () -¤ò¹Ô¤¦¤È¡¢ +を行うと、 .RB ( O_CREAT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç) ¼ºÇÔ¤¹¤ë¡£ +が指定されていない場合) 失敗する。 .RB ( O_CREAT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¿·¤·¤¯Ê̤Υª¥Ö¥¸¥§¥¯¥È¤¬ºîÀ®¤µ¤ì¤ë)¡£ +が指定されている場合、新しく別のオブジェクトが作成される)。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR shm_open () .\"O returns a nonnegative file descriptor. @@ -297,35 +297,35 @@ POSIX .\"O returns \-1. .\"O .BR shm_unlink () .\"O returns 0 on success, or \-1 on error. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR shm_open () -¤ÏÈóÉé¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +は非負のファイル・ディスクリプタを返す。 +失敗した場合、 .BR shm_open () -¤Ï \-1 ¤òÊÖ¤¹¡£ +は \-1 を返す。 .BR shm_unlink () -¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç 0 ¤ò¡¢¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç \-1 ¤òÊÖ¤¹¡£ +は、成功した場合 0 を、エラーが起こった場合 \-1 を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O On failure, .\"O .I errno .\"O is set to indicate the cause of the error. .\"O Values which may appear in .\"O .I errno .\"O include the following: -¼ºÇÔ¤·¤¿¾ì¹ç¡¢¥¨¥é¡¼¤Î¸¶°ø¤ò¼¨¤¹¤¿¤á +失敗した場合、エラーの原因を示すため .I errno -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .I errno -¤ËÀßÄꤵ¤ì¤ëÃͤϰʲ¼¤ÎÄ̤ê¤Ç¤¢¤ë: +に設定される値は以下の通りである: .TP .B EACCES .\"O Permission to .\"O .BR shm_unlink () .\"O the shared memory object was denied. -¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È¤ò +共有メモリオブジェクトを .BR shm_unlink () -¤¹¤ë¸¢¸Â¤¬¤Ê¤«¤Ã¤¿¡£ +する権限がなかった。 .TP .B EACCES .\"O Permission was denied to @@ -336,16 +336,16 @@ POSIX .\"O or .\"O .B O_TRUNC .\"O was specified and the caller does not have write permission on the object. -»ØÄꤵ¤ì¤¿ +指定された .I mode -¤Ç +で .I name -¤ò +を .BR shm_open () -¤¹¤ë¸¢¸Â¤¬¤Ê¤«¤Ã¤¿¡£¤â¤·¤¯¤Ï¡¢ +する権限がなかった。もしくは、 .B O_TRUNC -¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¸Æ¤Ó½Ð¤·¸µ¤Ë¤Ï¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ¹¤ë½ñ¤­¹þ¤ß¸¢¸Â¤¬ -¤Ê¤«¤Ã¤¿¡£ +が指定されたが、呼び出し元にはそのオブジェクトに対する書き込み権限が +なかった。 .TP .B EEXIST .\"O Both @@ -358,13 +358,13 @@ POSIX .\"O .I name .\"O already exists. .B O_CREAT -¤È +と .B O_EXCL -¤ÎξÊý¤¬ +の両方が .BR shm_open () -¤Ë»ØÄꤵ¤ì¤¿¤¬¡¢ +に指定されたが、 .I name -¤Ç»ØÄꤵ¤ì¤¿¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤¬´û¤Ë¸ºß¤·¤¿¡£ +で指定された共有メモリ・オブジェクトが既に存在した。 .TP .B EINVAL .\"O The @@ -373,13 +373,13 @@ POSIX .\"O .BR shm_open () .\"O was invalid. .BR shm_open () -¤ËÍ¿¤¨¤é¤ì¤¿ +に与えられた .I name -°ú¤­¿ô¤¬ÉÔÀµ¤Ç¤¢¤Ã¤¿¡£ +引き数が不正であった。 .TP .B EMFILE .\"O The process already has the maximum number of files open. -¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó²Äǽ¤Ê¥Õ¥¡¥¤¥ë¿ô¤Î¾å¸Â¤Ë¤¹¤Ç¤Ë㤷¤Æ¤¤¤¿¡£ +プロセスがオープン可能なファイル数の上限にすでに達していた。 .TP .B ENAMETOOLONG .\"O The length of @@ -387,14 +387,14 @@ POSIX .\"O exceeds .\"O .BR PATH_MAX . .I name -¤ÎŤµ¤¬ +の長さが .B PATH_MAX -¤ò±Û¤¨¤Æ¤¤¤ë¡£ +を越えている。 .TP .B ENFILE .\"O The limit on the total number of files open on the system has been .\"O reached. -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¿ô¤Î¾å¸Â¤Ë㤷¤¿¡£ +ファイルシステムでオープンできるファイル数の上限に達した。 .TP .B ENOENT .\"O An attempt was made to @@ -404,13 +404,13 @@ POSIX .\"O that did not exist, and .\"O .B O_CREAT .\"O was not specified. -¸ºß¤·¤Æ¤¤¤Ê¤¤ +存在していない .I name -¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò +のオブジェクトを .BR shm_open () -¤·¤è¤¦¤È¤·¤¿¤¬¡¢ +しようとしたが、 .B O_CREAT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +が指定されていなかった。 .TP .B ENOENT .\"O An attempt was to made to @@ -418,27 +418,27 @@ POSIX .\"O a .\"O .I name .\"O that does not exist. -¸ºß¤·¤Ê¤¤ +存在しない .I name -¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò +のオブジェクトを .BR shm_unlink () -¤·¤è¤¦¤È¤·¤¿¡£ +しようとした。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions are provided in glibc 2.2 and later. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc 2.2 °Ê¹ß¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +これらの関数は glibc 2.2 以降で提供されている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .LP .\"O POSIX.1-2001 says that the group ownership of a newly created shared .\"O memory object is set to either the calling process's effective group ID .\"O or "a system default group ID". -POSIX.1-2001 ¤Ë¤Ï¡¢¿·µ¬¤ËºîÀ®¤µ¤ì¤ë¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È¤Î¥°¥ë¡¼¥×½êÍ­¸¢¤Ï¡¢ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú¥°¥ë¡¼¥× ID ¤« ¡Ö¥·¥¹¥Æ¥à¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥°¥ë¡¼¥× ID¡× -¤Î¤É¤Á¤é¤«¤ËÀßÄꤵ¤ì¤ë¡¢¤È½ñ¤«¤ì¤Æ¤¤¤ë¡£ +POSIX.1-2001 には、新規に作成される共有メモリオブジェクトのグループ所有権は、 +呼び出し元プロセスの実効グループ ID か 「システムのデフォルトのグループ ID」 +のどちらかに設定される、と書かれている。 .\"O .SH "NOTES" -.SH Ãí°Õ +.SH 注意 .LP .\"O POSIX leaves the behavior of the combination of .\"O .B O_RDONLY @@ -447,24 +447,24 @@ POSIX.1-2001 .\"O unspecified. .\"O On Linux, this will successfully truncate an existing .\"O shared memory object\(emthis may not be so on other UNIX systems. -POSIX ¤Ï +POSIX は .B O_RDONLY -¤È +と .B O_TRUNC -¤¬°ì½ï¤Ë»ØÄꤵ¤ì¤¿¾ì¹ç¤ÎÆ°ºî¤ò̤ÄêµÁ¤Ë¤·¤Æ¤¤¤ë¡£Linux ¤Ç¤Ï¡¢ -´û¸¤Î¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ¹¤ëÀÚ¤êµÍ¤á (truncate) ¤ÏÀ®¸ù¤¹¤ë¡£ -¤·¤«¤·¡¢Â¾¤Î UNIX ¥·¥¹¥Æ¥à¤Ç¤âƱ¤¸¤Ç¤¢¤ë¤È¤Ï¸Â¤é¤Ê¤¤¡£ +が一緒に指定された場合の動作を未定義にしている。Linux では、 +既存の共有メモリ・オブジェクトに対する切り詰め (truncate) は成功する。 +しかし、他の UNIX システムでも同じであるとは限らない。 .LP .\"O The POSIX shared memory object implementation on Linux 2.4 makes use .\"O of a dedicated file system, which is normally .\"O mounted under .\"O .IR /dev/shm . -Linux 2.4 ¤Ë¤ª¤±¤ë POSIX ¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Î¼ÂÁõ¤Ï -ÀìÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¤ò»ÈÍѤ¹¤ë¡£¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÏÄ̾ï +Linux 2.4 における POSIX 共有メモリ・オブジェクトの実装は +専用のファイルシステムを使用する。そのファイルシステムは通常 .I /dev/shm -¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤ë¡£ +にマウントされる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR close (2), .BR fchmod (2), .BR fchown (2), diff --git a/draft/man3/siginterrupt.3 b/draft/man3/siginterrupt.3 index 2754a40d..3c899892 100644 --- a/draft/man3/siginterrupt.3 +++ b/draft/man3/siginterrupt.3 @@ -34,11 +34,11 @@ .\" .TH SIGINTERRUPT 3 2011-09-09 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O siginterrupt \- allow signals to interrupt system calls -siginterrupt \- ¥·¥°¥Ê¥ë¤Ç¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ë³ä¤ê¹þ¤à¤³¤È¤òµö¤¹ +siginterrupt \- シグナルでシステム・コールに割り込むことを許す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -48,9 +48,9 @@ siginterrupt \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR siginterrupt (): @@ -63,7 +63,7 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR siginterrupt () .\"O function changes the restart behavior when @@ -73,45 +73,45 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O by the specified signal \fIsig\fP. .\"O This is the default behavior in Linux. .BR siginterrupt () -´Ø¿ô¤Ï¡¢¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤¬¥·¥°¥Ê¥ë \fIsig\fP -¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿¸å¡¢ºÆ¼Â¹Ô¤ÎºÝ¤Î¿¶¤ëÉñ¤¤¤òÊѹ¹¤¹¤ë¡£ -\fIflag\fP °ú¤­¿ô¤¬µ¶ (0) ¤Ê¤é¤Ð¡¢¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤¬»ØÄꤷ¤¿ -¥·¥°¥Ê¥ë \fIsig\fP ¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿¸å¤Ë¡¢¤½¤Î¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï -ºÆ¼Â¹Ô¤µ¤ì¤ë¡£¤³¤ì¤Ï Linux ¤Ë¤ª¤¤¤Æ¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ç¤¢¤ë¡£ +関数は、システム・コールがシグナル \fIsig\fP +によって割り込まれた後、再実行の際の振る舞いを変更する。 +\fIflag\fP 引き数が偽 (0) ならば、システム・コールが指定した +シグナル \fIsig\fP によって割り込まれた後に、そのシステム・コールは +再実行される。これは Linux においてデフォルトの動作である。 .PP .\"O If the \fIflag\fP argument is true (1) and no data has been transferred, .\"O then a system call interrupted by the signal \fIsig\fP will return \-1 .\"O and \fIerrno\fP will be set to .\"O .BR EINTR . -\fIflag\fP °ú¤­¿ô¤¬¿¿ (1) ¤Ç¥Ç¡¼¥¿¤ÎžÁ÷¤¬Á´¤¯¹Ô¤Ê¤ï¤ì¤Æ¤¤¤Ê¤¤¤Ê¤é¤Ð¡¢ -¥·¥°¥Ê¥ë \fIsig\fP ¤Ç¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ÏÃæÃǤµ¤ì¤Æ¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ -\fIerrno\fP ¤Ë +\fIflag\fP 引き数が真 (1) でデータの転送が全く行なわれていないならば、 +シグナル \fIsig\fP でシステム・コールは中断されて、\-1 が返され、 +\fIerrno\fP に .B EINTR -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .PP .\"O If the \fIflag\fP argument is true (1) and data transfer has started, .\"O then the system call will be interrupted and will return the actual .\"O amount of data transferred. -\fIflag\fP °ú¤­¿ô¤¬¿¿ (1) ¤Ç¥Ç¡¼¥¿¤ÎžÁ÷¤¬³«»Ï¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢ -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ÏÃæÃǤµ¤ì¡¢¤½¤ì¤Þ¤Ç¤Ë¼ÂºÝ¤ËžÁ÷¤µ¤ì¤¿¥Ç¡¼¥¿ -¤ÎÎ̤¬ÊÖ¤µ¤ì¤ë¡£ +\fIflag\fP 引き数が真 (1) でデータの転送が開始されていれば、 +システム・コールは中断され、それまでに実際に転送されたデータ +の量が返される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR siginterrupt () .\"O function returns 0 on success, or \-1 if the .\"O signal number \fIsig\fP is invalid. .BR siginterrupt () -´Ø¿ô¤ÏÀ®¸ù¤·¤¿¾ì¹ç 0 ¤òÊÖ¤¹¡£ -¥·¥°¥Ê¥ëÈÖ¹æ \fIsig\fP ¤¬ÉÔÀµ¤Ê¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ +関数は成功した場合 0 を返す。 +シグナル番号 \fIsig\fP が不正な場合は \-1 を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O The specified signal number is invalid. -»ØÄꤷ¤¿¥·¥°¥Ê¥ëÈֹ椬ÉÔÀµ¤Ç¤¢¤ë¡£ +指定したシグナル番号が不正である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.3BSD, POSIX.1-2001. .\"O POSIX.1-2008 marks .\"O .BR siginterrupt () @@ -120,14 +120,14 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O with the .\"O .B SA_RESTART .\"O flag instead. -POSIX.1-2008 ¤Ï¡¢ +POSIX.1-2008 は、 .BR siginterrupt () -¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£ -Âå¤ï¤ê¤Ë¡¢ +を廃止予定としている。 +代わりに、 .BR sigaction (2) -¤Ë +に .B SA_RESTART -¥Õ¥é¥°¤ò»ØÄꤷ¤Æ»È¤¦¤³¤È¤ò¿ä¾©¤·¤Æ¤¤¤ë¡£ +フラグを指定して使うことを推奨している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR signal (2) diff --git a/draft/man3/signbit.3 b/draft/man3/signbit.3 index ac58d8ac..7e444233 100644 --- a/draft/man3/signbit.3 +++ b/draft/man3/signbit.3 @@ -12,24 +12,24 @@ .\" .TH SIGNBIT 3 2010-09-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O signbit \- test sign of a real floating-point number -signbit \- ÉâÆ°¾®¿ôÅÀ¼Â¿ô¤ÎÉä¹æ (sign) ¤òÄ´¤Ù¤ë +signbit \- 浮動小数点実数の符号 (sign) を調べる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B "#include " .sp .BI "int signbit(" x ");" .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -43,17 +43,17 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR signbit () .\"O is a generic macro which can work on all real floating-point types. .\"O It returns a nonzero value if the value of .\"O .I x .\"O has its sign bit set. .BR signbit () -¤Ï¡¢¤¢¤é¤æ¤ë¼ïÎà¤ÎÉâÆ°¾®¿ôÅÀ¼Â¿ô¤ËÂФ·¤Æ -ŬÍѲÄǽ¤ÊÈÆÍÑŪ¤Ê¥Þ¥¯¥í¤Ç¤¢¤ë¡£ +は、あらゆる種類の浮動小数点実数に対して +適用可能な汎用的なマクロである。 .I x -¤ÎÃͤÎÉä¹æ¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢Èó 0 ¤ÎÃͤòÊÖ¤¹¡£ +の値の符号ビットがセットされている場合、非 0 の値を返す。 .PP .\"O This is not the same as .\"O .IR "x < 0.0" , @@ -63,39 +63,39 @@ or .\"O is false, but .\"O .IR "signbit(\-0.0)" .\"O will return a nonzero value. -¤³¤Î¥Þ¥¯¥í¤Ï +このマクロは .I "x < 0.0" -¤ÈÁ´¤¯Æ±¤¸¤Ç¤Ï¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¡¢IEEE 754 ¤ÎÉâÆ°¾®¿ôÅÀɽ¸½¤Ç¤Ï 0 ¤âÉä¹æ¤ò»ý¤Ä¤«¤é¤Ç¤¢¤ë¡£ +と全く同じではない。 +なぜなら、IEEE 754 の浮動小数点表現では 0 も符号を持つからである。 .I "-0.0 < 0.0" -¤È¤¤¤¦Èæ³Ó·ë²Ì¤Ïµ¶ (false) ¤À¤¬¡¢ +という比較結果は偽 (false) だが、 .IR "signbit (\-0.0)" -¤Ï Èó 0 ¤ÎÃͤòÊÖ¤¹¡£ +は 非 0 の値を返す。 .\"O NaNs and infinities have a sign bit. -NaN ¤È̵¸ÂÂç¤Ë¤ÏÉä¹æ¥Ó¥Ã¥È¤¬¤¢¤ë¡£ +NaN と無限大には符号ビットがある。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR signbit () .\"O macro returns nonzero if the sign of .\"O .I x .\"O is negative; otherwise it returns zero. .BR signbit () -¥Þ¥¯¥í¤Ï +マクロは .I x -¤ÎÉä¹æ¤¬Éé¤Î¾ì¹ç 0 °Ê³°¤òÊÖ¤·¡¢¤½¤¦¤Ç¤Ê¤¤¾ì¹ç 0 ¤òÊÖ¤¹¡£ +の符号が負の場合 0 以外を返し、そうでない場合 0 を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O No errors occur. -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ +エラーは発生しない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O This function is defined in IEC 559 (and the appendix with .\"O recommended functions in IEEE 754/IEEE 854). -¤³¤Î´Ø¿ô¤Ï IEC 559 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë -(¤Þ¤¿ IEEE 754/IEEE 854 ¤Ç¤ÏÉÕÏ¿¤Ç¿ä¾©´Ø¿ô¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ +この関数は IEC 559 で定義されている +(また IEEE 754/IEEE 854 では付録で推奨関数として定義されている)。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR copysign (3) diff --git a/draft/man3/significand.3 b/draft/man3/significand.3 index 6ea088bd..975f6fa5 100644 --- a/draft/man3/significand.3 +++ b/draft/man3/significand.3 @@ -9,12 +9,12 @@ .\" .TH SIGNIFICAND 3 2009-02-04 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O significand, significandf, significandl \- .\"O get mantissa of floating-point number -significand, significandf, significandl \- ÉâÆ°¾®¿ôÅÀ¿ô¤Î²¾¿ô (mantissa) ¤ò¼èÆÀ¤¹¤ë +significand, significandf, significandl \- 浮動小数点数の仮数 (mantissa) を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double significand(double " x ); @@ -24,14 +24,14 @@ significand, significandf, significandl \- .BI "long double significandl(long double " x ); .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -43,18 +43,18 @@ _SVID_SOURCE || _BSD_SOURCE .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR significand () .\"O function returns the mantissa of .\"O .I x .\"O scaled to the range [1,2). .BR significand () -´Ø¿ô¤Ï +関数は .I x -¤Î²¾¿ô¤ò [1,2) ¤ÎÈϰϤˤ·¤ÆÊÖ¤¹¡£ +の仮数を [1,2) の範囲にして返す。 .\"O It is equivalent to -¤³¤ì¤Ï¡¢°Ê²¼¤ÈÅù¤·¤¤¡£ +これは、以下と等しい。 .sp .in +4n scalb(x, (double) \-ilogb(x)) @@ -62,20 +62,20 @@ scalb(x, (double) \-ilogb(x)) .PP .\"O This function exists mainly for use in certain standardized tests .\"O for IEEE 754 conformance. -¤³¤Î´Ø¿ô¤Ï¼ç¤Ë IEEE 754 ¤Ø¤Î½àµò¤òÄ´¤Ù¤ëɸ½à¥Æ¥¹¥È¤Ç»È¤ï¤ì¤ë¡£ +この関数は主に IEEE 754 への準拠を調べる標準テストで使われる。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O These functions are nonstandard; the .\"O .I double .\"O version is available on a number of other systems. -¤³¤ì¤é¤Î´Ø¿ô¤ÏÈóɸ½à¤Ç¤¢¤ë¡£¡£ +これらの関数は非標準である。。 .I double -ÈǤϾ¤Î¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤âÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +版は他の多くのシステムでも利用可能である。 .\"O .\" .SH HISTORY -.\" .SH ÍúÎò +.\" .SH 履歴 .\"O .\" This function came from BSD. -.\" ¤³¤Î´Ø¿ô¤Ï BSD ¤ËͳÍ褹¤ë¡£ +.\" この関数は BSD に由来する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ilogb (3), .BR scalb (3) diff --git a/draft/man3/sigpause.3 b/draft/man3/sigpause.3 index 52ca3dca..6433ba97 100644 --- a/draft/man3/sigpause.3 +++ b/draft/man3/sigpause.3 @@ -27,18 +27,18 @@ .\" Catch up to LDP man-pages 2.16 .\" Rename sigpause.2 to sigpause.3, and modified a little. .\" -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: interrupt ³ä¤ê¹þ¤ß -.\"WORD: mask ¥Þ¥¹¥¯ -.\"WORD: block ¥Ö¥í¥Ã¥¯¤¹¤ë +.\"WORD: signal シグナル +.\"WORD: interrupt 割り込み +.\"WORD: mask マスク +.\"WORD: block ブロックする .\" .TH SIGPAUSE 3 2010-09-12 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sigpause \- atomically release blocked signals and wait for interrupt -sigpause \- ¥Ö¥í¥Ã¥¯¤µ¤ì¤¿¥·¥°¥Ê¥ë¤ò¥¢¥È¥ß¥Ã¥¯¤Ë²òÊü¤·¤Æ³ä¤ê¹þ¤ß¤òÂÔ¤Ä +sigpause \- ブロックされたシグナルをアトミックに解放して割り込みを待つ .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -47,30 +47,30 @@ sigpause \- .BI "int sigpause(int " sig "); /* System V / UNIX 95 */" .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Don't use this function. .\"O Use .\"O .BR sigsuspend (2) .\"O instead. -¤³¤Î´Ø¿ô¤ò»È¤ï¤Ê¤¤¤³¤È¡£ -Âå¤ï¤ê¤Ë +この関数を使わないこと。 +代わりに .BR sigsuspend (2) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .LP .\"O The function .\"O .BR sigpause () .\"O is designed to wait for some signal. -´Ø¿ô +関数 .BR sigpause () -¤Ï¥·¥°¥Ê¥ë¤òÂԤĤ褦¤ËÀ߷פµ¤ì¤Æ¤¤¤ë¡£ +はシグナルを待つように設計されている。 .\"O It changes the process's signal mask (set of blocked signals), .\"O and then waits for a signal to arrive. .\"O Upon arrival of a signal, the original signal mask is restored. -¤³¤Î´Ø¿ô¤Ï¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯ (¥Ö¥í¥Ã¥¯¤µ¤ì¤¿¥·¥°¥Ê¥ë¤Î¥»¥Ã¥È) ¤òÊѹ¹¤·¡¢ -¥·¥°¥Ê¥ë¤¬ÅþÃ夹¤ë¤Î¤òÂԤġ£ -¥·¥°¥Ê¥ë¤¬ÅþÃ夹¤ë¤È¡¢¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ï¸µ¤ËÌᤵ¤ì¤ë¡£ +この関数はプロセスのシグナルマスク (ブロックされたシグナルのセット) を変更し、 +シグナルが到着するのを待つ。 +シグナルが到着すると、シグナルマスクは元に戻される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O If .\"O .BR sigpause () .\"O returns, it was interrupted by a signal and the return value is \-1 @@ -79,24 +79,24 @@ sigpause \- .\"O set to .\"O .BR EINTR . .BR sigpause () -¤¬Ê֤俾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤Æ¤¤¤ë¡£ -ÊÖ¤êÃÍ¤Ï \-1 ¤Ç¡¢ +が返った場合、この関数はシグナルによって割り込まれている。 +返り値は \-1 で、 .I errno -¤Ï +は .B EINTR -¤ËÀßÄꤵ¤ì¤ë¡£ +に設定される。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O The System V version of .\"O .BR sigpause () .\"O is standardized in POSIX.1-2001. -System V ÈǤΠ+System V 版の .BR sigpause () -¤Ï POSIX.1-2001 ¤Çɸ½à²½¤µ¤ì¤Æ¤¤¤ë¡£ +は POSIX.1-2001 で標準化されている。 .\"O .SH NOTES -.SH È÷¹Í +.SH 備考 .\"O .SS History -.SS Îò»Ë +.SS 歴史 .\"O The classical BSD version of this function appeared in 4.2BSD. .\"O It sets the process's signal mask to .\"O .IR sigmask . @@ -112,32 +112,32 @@ System V .\"O .I "sigset_t *" .\"O argument (instead of an .\"O .IR int ). -¤³¤Î´Ø¿ô¤Î¸ÅŵŪ¤Ê BSD ÈÇ¤Ï 4.2BSD ¤ÇÅо줷¤¿¡£ -¤³¤Î´Ø¿ô¤Ï¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ò +この関数の古典的な BSD 版は 4.2BSD で登場した。 +この関数はプロセスのシグナルマスクを .I sigmask -¤ËÀßÄꤹ¤ë¡£ -UNIX 95 ¤Ç¤Ï BSD ÈǤȸߴ¹À­¤Î¤Ê¤¤ System V ÈǤΤ³¤Î´Ø¿ô¤¬É¸½à²½¤µ¤ì¤¿¡£ -UNIX 95 ÈǤϡ¢»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë +に設定する。 +UNIX 95 では BSD 版と互換性のない System V 版のこの関数が標準化された。 +UNIX 95 版は、指定されたシグナル .I sig -¤ò¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤«¤éºï½ü¤¹¤ë¤À¤±¤Ç¤¢¤ë¡£ +をプロセスのシグナルマスクから削除するだけである。 .\" __xpg_sigpause: UNIX 95, spec 1170, SVID, SVr4, XPG -Ʊ¤¸Ì¾Á°¤Ç¸ß´¹À­¤Î¤Ê¤¤ 2 ¤Ä¤Î´Ø¿ô¤¬¤¢¤ë¤È¤¤¤¦ÉÔ¹¬¤Ê»öÂ֤ϡ¢ +同じ名前で互換性のない 2 つの関数があるという不幸な事態は、 .BR \%sigsuspend (2) -´Ø¿ô¤Ë¤è¤Ã¤Æ²ò¾Ã¤µ¤ì¤¿¡£ -¤³¤Î´Ø¿ô¤Ï +関数によって解消された。 +この関数は .RI ( int -¤ÎÂå¤ï¤ê¤Ë) +の代わりに) .B "sigset_t *" -°ú¤­¿ô¤ò¤È¤ë¡£ +引き数をとる。 .\"O .SS Linux Notes -.SS Linux ¤Ç¤ÎÃí°Õ +.SS Linux での注意 .\"O On Linux, this routine is a system call only on the Sparc (sparc64) .\"O architecture. -Linux ¤Ç¤Ï¡¢¤³¤Î¥ë¡¼¥Á¥ó¤Ï Sparc (sparc64) ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Î¤ß -¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ +Linux では、このルーチンは Sparc (sparc64) アーキテクチャでのみ +システムコールとなっている。 .\"O Libc4 and libc5 only know about the BSD version. -libc4 ¤È libc5 ¤Ë¤Ï BSD ÈǤ·¤«¤Ê¤¤¡£ +libc4 と libc5 には BSD 版しかない。 .\"O Glibc uses the BSD version if the .\"O .B _BSD_SOURCE @@ -150,27 +150,27 @@ libc4 .\"O .B _SVID_SOURCE .\"O is defined. .\"O Otherwise, the System V version is used. -µ¡Ç½¸¡ºº¥Þ¥¯¥í +機能検査マクロ .B _BSD_SOURCE -¤¬ÄêµÁ¤µ¤ì¡¢ +が定義され、 .BR _POSIX_SOURCE , .BR _POSIX_C_SOURCE , .BR _XOPEN_SOURCE , .BR _GNU_SOURCE , .B _SVID_SOURCE -¤Î¤¤¤º¤ì¤âÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -glibc ¤Ï BSD ÈǤò»È¤¦¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï¡¢System V ÈǤò»ÈÍѤ¹¤ë¡£ +のいずれも定義されていない場合、 +glibc は BSD 版を使う。 +それ以外の場合には、System V 版を使用する。 .\" .\"O .\" For the BSD version, one usually uses a zero .\"O .\" .I sigmask .\"O .\" to indicate that no signals are to be blocked. -.\" BSD ÈǤǤϡ¢ -.\" .RI ¡Ö sigmask -.\" ¤ò 0 ¤Ë¤·¤Æ¡¢¤É¤Î¥·¥°¥Ê¥ë¤â¥Ö¥í¥Ã¥¯¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡× -.\" ¤È¤¤¤¦¤Î¤¬¤è¤¯»È¤ï¤ì¤ë¡£ +.\" BSD 版では、 +.\" .RI 「 sigmask +.\" を 0 にして、どのシグナルもブロックされないようにする」 +.\" というのがよく使われる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR kill (2), .BR sigaction (2), .BR sigprocmask (2), diff --git a/draft/man3/sigqueue.3 b/draft/man3/sigqueue.3 index 008f90c5..86352e52 100644 --- a/draft/man3/sigqueue.3 +++ b/draft/man3/sigqueue.3 @@ -31,11 +31,11 @@ .\" .TH SIGQUEUE 3 2011-09-18 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sigqueue, rt_sigqueueinfo \- queue a signal and data to a process -sigqueue, rt_sigqueueinfo \- ¥·¥°¥Ê¥ë¤È¥Ç¡¼¥¿¤ò¥×¥í¥»¥¹¤ËÁ÷¤ë +sigqueue, rt_sigqueueinfo \- シグナルとデータをプロセスに送る .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int sigqueue(pid_t " pid ", int " sig ", const union sigval " value ); @@ -43,47 +43,47 @@ sigqueue, rt_sigqueueinfo \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR sigqueue (): _POSIX_C_SOURCE\ >=\ 199309L .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR sigqueue () .\"O sends the signal specified in .\"O .I sig .\"O to the process whose PID is given in .\"O .IR pid . .BR sigqueue () -¤Ï +は .I sig -¤Ç»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë¤ò¡¢PID ¤¬ +で指定されたシグナルを、PID が .I pid -¤Ç¤¢¤ë¥×¥í¥»¥¹¤ËÁ÷¤ë¡£ +であるプロセスに送る。 .\"O The permissions required to send a signal are the same as for .\"O .BR kill (2). -¥·¥°¥Ê¥ë¤òÁ÷¤ë¤Î¤ËɬÍפʸ¢¸Â¤Ï +シグナルを送るのに必要な権限は .BR kill (2) -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .\"O As with .\"O .BR kill (2), .\"O the null signal (0) can be used to check if a process with a given .\"O PID exists. .BR kill (2) -¤ÈƱÍͤˡ¢¥Ì¥ë¡¦¥·¥°¥Ê¥ë (0) ¤ò»È¤Ã¤Æ -»ØÄꤷ¤¿ PID ¤Î¥×¥í¥»¥¹¤¬Â¸ºß¤¹¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +と同様に、ヌル・シグナル (0) を使って +指定した PID のプロセスが存在するかをチェックすることができる。 .PP .\"O The .\"O .I value .\"O argument is used to specify an accompanying item of data (either an integer .\"O or a pointer value) to be sent with the signal, and has the following type: .I value -°ú¤­¿ô¤Ï¥·¥°¥Ê¥ë¤È°ì½ï¤ËÁ÷¤ë¥Ç¡¼¥¿¤ÎÉÕ°¥¢¥¤¥Æ¥à¤ò»ØÄꤹ¤ë¡£ +引き数はシグナルと一緒に送るデータの付属アイテムを指定する。 .I value -¤Ï (À°¿ô¤Þ¤¿¤Ï¥Ý¥¤¥ó¥¿¤ÎÃͤǤ¢¤ê) °Ê²¼¤Î¤è¤¦¤Ê·¿¤Ç¤¢¤ë¡£ +は (整数またはポインタの値であり) 以下のような型である。 .sp .in +4n .nf @@ -103,85 +103,85 @@ union sigval { .\"O field of the .\"O .I siginfo_t .\"O structure passed as the second argument to the handler. -¼õ¼èÀè¤Î¥×¥í¥»¥¹¤Ë¡¢¤³¤Î¥·¥°¥Ê¥ë¤ËÂФ¹¤ë¥Ï¥ó¥É¥é¤ò +受取先のプロセスに、このシグナルに対するハンドラを .RB ( sigaction (2) -¤Ë +に .B SA_SIGINFO -¤ò»ØÄꤷ¤Æ) ¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤ª¤¯¤È¡¢ -¤½¤Î¥Ï¥ó¥É¥é¤ÎÂè 2 °ú¤­¿ô¤ËÅϤµ¤ì¤ë +を指定して) インストールしておくと、 +そのハンドラの第 2 引き数に渡される .I siginfo_t -¹½Â¤ÂΤΠ+構造体の .I si_value -¥Õ¥£¡¼¥ë¥É¤Ë¤è¤Ã¤Æ¡¢¤³¤Î¥Ç¡¼¥¿¤ò¼èÆÀ¤Ç¤­¤ë¡£ +フィールドによって、このデータを取得できる。 .\"O Furthermore, the .\"O .I si_code .\"O field of that structure will be set to .\"O .BR SI_QUEUE . -¤µ¤é¤Ë¡¢¤³¤Î¹½Â¤ÂΤΠ+さらに、この構造体の .I si_code -¥Õ¥£¡¼¥ë¥É¤Ï +フィールドは .B SI_QUEUE -¤ËÀßÄꤵ¤ì¤ë¡£ +に設定される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR sigqueue () .\"O returns 0, indicating that the signal was successfully .\"O queued to the receiving process. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR sigqueue () -¤Ï 0 ¤òÊÖ¤¹¡£ -¤³¤ì¤Ï¼õ¤±¼è¤ê¦¥×¥í¥»¥¹¤ÎÂÔ¤Á¹ÔÎó¤Ë -¥·¥°¥Ê¥ë¤¬Àµ¤·¤¯Æþ¤ì¤é¤ì¤¿¤³¤È¤ò¼¨¤¹¡£ +は 0 を返す。 +これは受け取り側プロセスの待ち行列に +シグナルが正しく入れられたことを示す。 .\"O Otherwise \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +失敗した場合は \-1 が返され、 .I errno -¤¬¥¨¥é¡¼¤òɽ¤¹ÃͤËÀßÄꤵ¤ì¤ë¡£ +がエラーを表す値に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EAGAIN .\"O The limit of signals which may be queued has been reached. -ÂÔ¤Á¹ÔÎó¤ËÆþ¤ì¤é¤ì¤ë¥·¥°¥Ê¥ë¤ÎºÇÂç¿ô¤Ë㤷¤¿ +待ち行列に入れられるシグナルの最大数に達した .\"O (See .\"O .BR signal (7) .\"O for further information.) -(¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï +(より詳しい情報は .BR signal (7) -¤ò»²¾È¤¹¤ë¤³¤È)¡£ +を参照すること)。 .TP .B EINVAL .\"O .I sig .\"O was invalid. .I sig -¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +が不正である。 .TP .B EPERM .\"O The process does not have permission to send the signal .\"O to the receiving process. -¤³¤Î¥×¥í¥»¥¹¤Ë¤Ï¡¢¼õ¤±¼è¤ê¦¥×¥í¥»¥¹¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¸¢¸Â¤¬¤Ê¤¤¡£ +このプロセスには、受け取り側プロセスにシグナルを送る権限がない。 .\"O For the required permissions, see .\"O .BR kill (2). -ɬÍפʸ¢¸Â¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +必要な権限については、 .BR kill (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .TP .B ESRCH .\"O No process has a PID matching .\"O .IR pid . .I pid -¤Ë¥Þ¥Ã¥Á¤¹¤ë PID ¤Î¥×¥í¥»¥¹¤¬¤Ê¤¤¡£ +にマッチする PID のプロセスがない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O This system call first appeared in Linux 2.2. -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 2.2 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +このシステムコールは Linux 2.2 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O If this function results in the sending of a signal to the process .\"O that invoked it, and that signal was not blocked by the calling thread, .\"O and no other threads were willing to handle this signal (either by @@ -190,21 +190,21 @@ POSIX.1-2001. .\"O then at least some signal must be delivered to this thread before this .\"O function returns. .\"Osato: -.\"Osato: ¤³¤Îʸ¾Ï¤ÏŤ¹¤®¤ë¤Î¤È it ¤¬Â¿¤¹¤®¤ë¤¿¤á¤ËÎɤ¯Ê¬¤«¤ê¤Þ¤»¤ó¡£ +.\"Osato: この文章は長すぎるのと it が多すぎるために良く分かりません。 .\"Osato: that invoked it ( = this function) .\"Osato: by having it ( = that signal) unblocked .\"Osato: by waiting for it ( = that signal) using sigwait(3) -.\"Osato: ¤È¤·¤ÆÌõ¤·¤Æ¤ß¤Þ¤·¤¿¡£ -.\"Osato: ¾Ü¤·¤¤Êý¤«¤é¤Î¸æ»ØŦ¤ò¤ªÂÔ¤Á¤·¤Þ¤¹¡£ +.\"Osato: として訳してみました。 +.\"Osato: 詳しい方からの御指摘をお待ちします。 .\"Osato: -¤³¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ë¤³¤Î´Ø¿ô¤¬¥·¥°¥Ê¥ë¤òÁ÷¤Ã¤¿¤È¤­¤Ë¡¢ -¥·¥°¥Ê¥ë¤¬¸Æ¤Ó½Ð¤·Â¦¥¹¥ì¥Ã¥É¤Ë¥Ö¥í¥Ã¥¯¤µ¤ì¤º¡¢ -¤«¤Ä (¥·¥°¥Ê¥ë¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤Ê¤«¤Ã¤¿¡¢¤Þ¤¿¤Ï +この関数を呼び出したプロセスにこの関数がシグナルを送ったときに、 +シグナルが呼び出し側スレッドにブロックされず、 +かつ (シグナルがブロックされなかった、または .BR sigwait (3) -¤ò»ÈÍѤ¹¤ë¤Î¤òÂԤäƤ¤¤ë¤³¤È¤Ë¤è¤ê) -¤³¤Î¥·¥°¥Ê¥ë¤ò°·¤¦¥¹¥ì¥Ã¥É¤¬²¿¤â¤Ê¤¤¾ì¹ç¤Ï¡¢ -¤³¤Î´Ø¿ô¤¬¥ê¥¿¡¼¥ó¤¹¤ëÁ°¤Ë¡¢¾¯¤Ê¤¯¤È¤â -¤½¤Î¥¹¥ì¥Ã¥É¤ËÂФ·¤Æ¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を使用するのを待っていることにより) +このシグナルを扱うスレッドが何もない場合は、 +この関数がリターンする前に、少なくとも +そのスレッドに対してシグナルが配送されていなければならない。 .\"O On Linux, this function is implemented using the .\"O .BR rt_sigqueueinfo (2) @@ -220,25 +220,25 @@ POSIX.1-2001. .\"O wrapper, this argument, .\"O .IR uinfo , .\"O is initialized as follows: -Linux ¤Ç¤Ï¡¢¤³¤Î´Ø¿ô¤Ï +Linux では、この関数は .BR rt_sigqueueinfo (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -ξ¼Ô¤Ë¤Ï 3 ÈÖÌܤΰú¤­¿ô¤Ë°ã¤¤¤¬¤¢¤ê¡¢ +システムコールを使って実装されている。 +両者には 3 番目の引き数に違いがあり、 .BR rt_sigqueueinfo (2) -¤Ç¤Ï 3 ÈÖÌܤΰú¤­¿ô¤Ï +では 3 番目の引き数は .I siginfo_t -¹½Â¤ÂΤǤ¢¤ë¡£ +構造体である。 .I siginfo_t -¹½Â¤ÂΤϡ¢¥·¥°¥Ê¥ë¤ò¼õ¿®¤¹¤ë¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ËÅϤµ¤ì¤¿¤ê¡¢ -¥·¥°¥Ê¥ë¼õ¿®¥×¥í¥»¥¹¤Î +構造体は、シグナルを受信するプロセスのシグナルハンドラに渡されたり、 +シグナル受信プロセスの .BR sigtimedwait (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤«¤éÊÖ¤µ¤ì¤¿¤ê¤¹¤ë¡£ -glibc ¤Î +システムコールから返されたりする。 +glibc の .BR sigqueue () -¥é¥Ã¥Ñ¡¼´Ø¿ôÆâÉô¤Ç¤Ï¡¢ -¤³¤Î°ú¤­¿ô +ラッパー関数内部では、 +この引き数 .I uinfo -¤Ï°Ê²¼¤Î¤è¤¦¤Ë½é´ü²½¤µ¤ì¤ë¡£ +は以下のように初期化される。 .in +4n .nf @@ -250,7 +250,7 @@ uinfo.si_value = val; /* argument supplied to sigqueue() */ .fi .in .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR kill (2), .BR rt_sigqueueinfo (2), .BR sigaction (2), diff --git a/draft/man3/sigset.3 b/draft/man3/sigset.3 index 17f62122..393f08cb 100644 --- a/draft/man3/sigset.3 +++ b/draft/man3/sigset.3 @@ -26,11 +26,11 @@ .\" .TH SIGSET 3 2010-09-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sigset, sighold, sigrelse, sigignore \- System V signal API -sigset, sighold, sigrelse, sigignore \- System V ÈÇ¥·¥°¥Ê¥ë API +sigset, sighold, sigrelse, sigignore \- System V 版シグナル API .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .B typedef void (*sighandler_t)(int); @@ -46,9 +46,9 @@ sigset, sighold, sigrelse, sigignore \- System V .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -63,20 +63,20 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions are provided in glibc as a compatibility interface .\"O for programs that make use of the historical System V signal API. .\"O This API is obsolete: new applications should use the POSIX signal API .\"O .RB ( sigaction (2), .\"O .BR sigprocmask (2), .\"O etc.) -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ÀΤʤ¬¤é¤Î System V ÈÇ¥·¥°¥Ê¥ë API ¤ò»ÈÍѤ·¤Æ¤¤¤ë¥×¥í¥°¥é¥à -¤ËÂФ·¤Æ¸ß´¹À­¤Î¤¢¤ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò glibc ¤ÇÄ󶡤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î API ¤Ï²áµî¤Î¤â¤Î¤Ç¤¢¤ê¡¢¿·¤·¤¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï -POSIX ¥·¥°¥Ê¥ë API +これらの関数は、昔ながらの System V 版シグナル API を使用しているプログラム +に対して互換性のあるインタフェースを glibc で提供するものである。 +この API は過去のものであり、新しいアプリケーションでは +POSIX シグナル API .RB ( sigaction (2), .BR sigprocmask (2) -¤Ê¤É) ¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +など) を使用すべきである。 .\"O The .\"O .BR sigset () @@ -86,27 +86,27 @@ POSIX .\"O .I disp .\"O argument can be the address of a signal handler function, .\"O or one of the following constants: -´Ø¿ô +関数 .BR sigset () -¤Ï¥·¥°¥Ê¥ë +はシグナル .I sig -¤Î¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ÎÆ°ºî¤òÊѹ¹¤¹¤ë¡£ +のシグナルハンドラの動作を変更する。 .I disp -°ú¤­¿ô¤Ë¤Ï¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é´Ø¿ô¤Î¥¢¥É¥ì¥¹¤«¡¢ -°Ê²¼¤ÎÄê¿ô¤Î¤¤¤º¤ì¤«°ì¤Ä¤ò»ØÄê¤Ç¤­¤ë¡£ +引き数には、シグナルハンドラ関数のアドレスか、 +以下の定数のいずれか一つを指定できる。 .TP .B SIG_DFL .\"O Reset the disposition of .\"O .I sig .\"O to the default. .I sig -¤ÎÆ°ºî¤ò¥Ç¥Õ¥©¥ë¥È¤Ë¥ê¥»¥Ã¥È¤¹¤ë¡£ +の動作をデフォルトにリセットする。 .TP .B SIG_IGN .\"O Ignore .\"O .IR sig . .I sig -¤ò̵»ë¤¹¤ë¡£ +を無視する。 .TP .B SIG_HOLD .\"O Add @@ -114,11 +114,11 @@ POSIX .\"O to the process's signal mask, but leave the disposition of .\"O .I sig .\"O unchanged. -¤½¤Î¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ë +そのプロセスのシグナルマスクに .I sig -¤òÄɲ乤뤬¡¢ +を追加するが、 .I sig -¤ÎÆ°ºî¤ÏÊѹ¹¤·¤Ê¤¤¡£ +の動作は変更しない。 .PP .\"O If .\"O .I disp @@ -126,10 +126,10 @@ POSIX .\"O .I sig .\"O is added to the process's signal mask during execution of the handler. .I disp -¤Ë¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Î¥¢¥É¥ì¥¹¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Î¼Â¹ÔÃæ¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ë +にシグナルハンドラのアドレスが指定された場合、 +シグナルハンドラの実行中は、そのプロセスのシグナルマスクに .I sig -¤¬Äɲ䵤ì¤ë¡£ +が追加される。 .PP .\"O If .\"O .I disp @@ -139,45 +139,45 @@ POSIX .\"O .I sig .\"O is removed from the process's signal mask. .I disp -¤Ë +に .B SIG_HOLD -°Ê³°¤ÎÃͤ¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ -¤½¤Î¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤«¤é +以外の値が指定された場合、 +そのプロセスのシグナルマスクから .I sig -¤¬ºï½ü¤µ¤ì¤ë¡£ +が削除される。 .PP .\"O The dispositions for .\"O .B SIGKILL .\"O and .\"O .B SIGSTOP .\"O cannot be changed. -¥·¥°¥Ê¥ë +シグナル .B SIGKILL -¤È +と .B SIGSTOP -¤ËÂФ¹¤ëÆ°ºî¤ÏÊѹ¹¤Ç¤­¤Ê¤¤¡£ +に対する動作は変更できない。 .PP .\"O The .\"O .BR sighold () .\"O function adds .\"O .I sig .\"O to the calling process's signal mask. -´Ø¿ô +関数 .BR sighold () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ë +は、呼び出し元プロセスのシグナルマスクに .I sig -¤òÄɲ乤롣 +を追加する。 .\"O The .\"O .BR sigrelse () .\"O function removes .\"O .I sig .\"O from the calling process's signal mask. -´Ø¿ô +関数 .BR sigrelse () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤«¤é +は、呼び出し元プロセスのシグナルマスクから .I sig -¤òºï½ü¤¹¤ë¡£ +を削除する。 .\"O The .\"O .BR sigignore () @@ -185,15 +185,15 @@ POSIX .\"O .I sig .\"O to .\"O .BR SIG_IGN . -´Ø¿ô +関数 .BR sigignore () -¤Ï¡¢ +は、 .I sig -¤ÎÆ°ºî¤ò +の動作を .B SIG_IGN -¤ËÀßÄꤹ¤ë¡£ +に設定する。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR sigset () .\"O returns @@ -204,26 +204,26 @@ POSIX .\"O or the signal's previous disposition .\"O if it was not blocked before the call. .BR sigset () -¤ÏÀ®¸ù¤¹¤ë¤È¡¢ -¸Æ¤Ó½Ð¤·Á°¤Ë +は成功すると、 +呼び出し前に .I sig -¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ë¤Ï +がブロックされていた場合には .B SIG_HOLD -¤òÊÖ¤·¡¢ -¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï -Êѹ¹Á°¤Î¤½¤Î¥·¥°¥Ê¥ë¤ÎÆ°ºî¤òÊÖ¤¹¡£ +を返し、 +ブロックされていなかった場合には +変更前のそのシグナルの動作を返す。 .\"O On error, .\"O .BR sigset () .\"O returns \-1, with .\"O .I errno .\"O set to indicate the error. -¥¨¥é¡¼¤Î¾ì¹ç¡¢ +エラーの場合、 .BR sigset () -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ +にエラーを示す値をセットする。 .\"O (But see BUGS below.) -⤷¡¢°Ê²¼¤Î¡Ö¥Ð¥°¡×¤ÎÀá¤â»²¾È¤Î¤³¤È¡£ +但し、以下の「バグ」の節も参照のこと。 .\"O The .\"O .BR sighold (), @@ -233,15 +233,15 @@ POSIX .\"O functions return 0 on success; on error, these functions return \-1 and set .\"O .I errno .\"O to indicate the error. -´Ø¿ô +関数 .BR sighold (), .BR sigrelse (), .BR sigignore () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は成功すると 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ +にエラーを示す値をセットする。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O For .\"O .BR sigset () .\"O see the ERRORS under @@ -249,11 +249,11 @@ POSIX .\"O and .\"O .BR sigprocmask (2). .BR sigset () -¤Ë´Ø¤·¤Æ¤Ï¡¢ +に関しては、 .BR sigaction (2) -¤È +と .BR sigprocmask (2) -¤Î¡Ö¥¨¥é¡¼¡×¤ÎÀá¤ò»²¾È¡£ +の「エラー」の節を参照。 .\"O For .\"O .BR sighold () @@ -262,25 +262,25 @@ POSIX .\"O see the ERRORS under .\"O .BR sigprocmask (2). .BR sighold () -¤È +と .BR sigrelse () -¤Ë´Ø¤·¤Æ¤Ï¡¢ +に関しては、 .BR sigprocmask (2) -¤Î¡Ö¥¨¥é¡¼¡×¤ÎÀá¤ò»²¾È¡£ +の「エラー」の節を参照。 .\"O For .\"O .BR sigignore (), .\"O see the errors under .\"O .BR sigaction (2). .BR sigignore () -¤Ë´Ø¤·¤Æ¤Ï¡¢ +に関しては、 .BR sigaction (2) -¤Î¡Ö¥¨¥é¡¼¡×¤ÎÀá¤ò»²¾È¡£ +の「エラー」の節を参照。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001. .\"O These functions are obsolete: do not use them in new programs. -¤³¤ì¤é¤Î´Ø¿ô¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¡£¿·¤·¤¤¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ·¤Ê¤¤¤³¤È¡£ +これらの関数は廃止予定である。新しいプログラムでは使用しないこと。 .\"O POSIX.1-2008 marks .\"O .BR sighold (), .\"O .BR sigignore (), @@ -295,23 +295,23 @@ SVr4, POSIX.1-2001. .\"O and .\"O .BR sigsuspend (2) .\"O instead. -POSIX.1-2008 ¤Ï¡¢ +POSIX.1-2008 は、 .BR sighold (), .BR sigignore (), .BR sigpause (), .BR sigrelse (), .BR sigset () -¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£ -Âå¤ï¤ê¤Ë¡¢ +を廃止予定としている。 +代わりに、 .BR sigaction (2), .BR sigprocmask (2), .BR pthread_sigmask (3), .BR sigsuspend (2) -¤Î»ÈÍѤ¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£ +の使用が推奨されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O These functions appeared in glibc version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc 2.1 ¤ÇÅо줷¤¿¡£ +これらの関数は glibc 2.1 で登場した。 .\"O The .\"O .I sighandler_t @@ -319,9 +319,9 @@ POSIX.1-2008 .\"O .BR sigset () .\"O prototype more easily readable. .I sighandler_t -·¿¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ê¡¢¤³¤Î man page ¤Ç +型は GNU による拡張であり、この man page で .BR sigset () -¤Î¥×¥í¥È¥¿¥¤¥×¤ò¤è¤êÆɤߤ䤹¤¯¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤Æ¤¤¤ë¤À¤±¤Ç¤¢¤ë¡£ +のプロトタイプをより読みやすくするために使われているだけである。 .\"O The .\"O .BR sigset () @@ -330,13 +330,13 @@ POSIX.1-2008 .\"O with .\"O .I sa_mask .\"O equal to 0). -´Ø¿ô +関数 .BR sigset () -¤Ï¿®ÍêÀ­¤Î¤¢¤ë¥·¥°¥Ê¥ë½èÍýµ¡¹½¤òÄ󶡤¹¤ë +は信頼性のあるシグナル処理機構を提供する .RI ( sa_mask -¤ò 0 ¤Ç +を 0 で .BR sigaction (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¤È¤­¤ÈƱÍÍ)¡£ +を呼び出したときと同様)。 .\"O On System V, the .\"O .BR signal () @@ -346,33 +346,33 @@ POSIX.1-2008 .\"O .I sa_mask .\"O equal to .\"O .IR "SA_RESETHAND | SA_NODEFER" ). -System V ¤Ç¤Ï¡¢´Ø¿ô +System V では、関数 .BR signal () -¤¬Ä󶡤¹¤ë½èÍýµ¡¹½¤Ï¿®ÍêÀ­¤Î¤Ê¤¤¤â¤Î¤Ç¤¢¤ë +が提供する処理機構は信頼性のないものである .RI ( sa_mask -¤ò +を .IR "SA_RESETHAND | SA_NODEFER" -¤È¤·¤Æ +として .BR sigaction (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¤È¤­¤ÈƱÍÍ)¡£ +を呼び出したときと同様)。 .\"O On BSD, .\"O .BR signal () .\"O provides reliable semantics. -BSD ¤Ç¤Ï¡¢ +BSD では、 .BR signal () -¤Ï¿®ÍêÀ­¤Î¤¢¤ë½èÍýµ¡¹½¤òÄ󶡤¹¤ë¡£ +は信頼性のある処理機構を提供する。 .\"O POSIX.1-2001 leaves these aspects of .\"O .BR signal () .\"O unspecified. -POSIX.1-2001 ¤Ç¤Ï¡¢ +POSIX.1-2001 では、 .BR signal () -¤Î¤³¤ÎÅÀ¤Ïµ¬Äꤷ¤Ê¤¤¤Þ¤Þ¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ +のこの点は規定しないままとなっている。 .\"O See .\"O .BR signal (2) .\"O for further details. -¤µ¤é¤Ê¤ë¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï +さらなる詳細については .BR signal (2) -¤ò»²¾È¡£ +を参照。 .\"O In order to wait for a signal, .\"O BSD and System V both provided a function named @@ -381,16 +381,16 @@ POSIX.1-2001 .\"O See .\"O .BR sigpause (3) .\"O for details. -BSD ¤È System V ¤Î¤É¤Á¤é¤Î¥·¥¹¥Æ¥à¤Ç¤â -¥·¥°¥Ê¥ë¤òÂԤĤ¿¤á¤Ë¡¢ +BSD と System V のどちらのシステムでも +シグナルを待つために、 .BR sigpause (3) -¤È¤¤¤¦Ì¾Á°¤Î´Ø¿ô¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -¤³¤Î´Ø¿ô¤Î°ú¤­¿ô¤ÏξÊý¤Î¥·¥¹¥Æ¥à¤Ç°Û¤Ê¤ë¡£ -¾ÜºÙ¤Ï +という名前の関数が提供されているが、 +この関数の引き数は両方のシステムで異なる。 +詳細は .BR sigpause (3) -¤ò»²¾È¡£ +を参照。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O In versions of glibc before 2.2, .\"O .BR sigset () .\"O did not unblock @@ -399,21 +399,21 @@ BSD .\"O .I disp .\"O was specified as a value other than .\"O .BR SIG_HOLD . -2.2 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î glibc ¤Ç¤Ï¡¢ +2.2 より前のバージョンの glibc では、 .I disp -¤Ë +に .B SIG_HOLD -°Ê³°¤ÎÃͤ¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +以外の値が指定された場合、 .I sig -¤Î¥Ö¥í¥Ã¥¯²ò½ü¤ò¹Ô¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +のブロック解除を行っていなかった。 .\"O In all versions of glibc up to and including 2.3.5, .\"O .BR sigset () .\"O does not correctly return the previous disposition of the signal .\"O in two cases. -2.3.5 °ÊÁ°¤ÎÁ´¤Æ¤Î¥Ð¡¼¥¸¥ç¥ó¤Î glibc ¤Ç¤Ï¡¢ +2.3.5 以前の全てのバージョンの glibc では、 .BR sigset () -¤¬Êѹ¹Á°¤Î¥·¥°¥Ê¥ë¤ÎÆ°ºî¤òÀµ¤·¤¯ÊÖ¤µ¤Ê¤¤¾ì¹ç¤¬ 2¤Ä¤¢¤ë¡£ +が変更前のシグナルの動作を正しく返さない場合が 2つある。 .\"O First, if .\"O .I disp .\"O is specified as @@ -426,38 +426,38 @@ BSD .\"O (unless the signal was blocked, in which case .\"O .B SIG_HOLD .\"O should be returned). -°ì¤Ä¤á¤Ï¡¢ +一つめは、 .I disp -¤Ë +に .B SIG_HOLD -¤¬»ØÄꤵ¤ì¤ë¤È¡¢À®¸ù¤·¤¿¾ì¹ç +が指定されると、成功した場合 .BR sigset () -¤Ï¾ï¤Ë +は常に .B SIG_HOLD -¤òÊÖ¤¹¤³¤È¤Ç¤¢¤ë¡£ -Àµ¤·¤¯¤Ï¡¢(¥·¥°¥Ê¥ë¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï) -Êѹ¹Á°¤Î¥·¥°¥Ê¥ë¤ÎÆ°ºî¤òÊÖ¤¹¤Ù¤­¤Ç¤¢¤ë -(¥·¥°¥Ê¥ë¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ë¤Ï¡¢ +を返すことである。 +正しくは、(シグナルがブロックされていなかった場合には) +変更前のシグナルの動作を返すべきである +(シグナルがブロックされていた場合には、 .B SIG_HOLD -¤¬ÊÖ¤µ¤ì¤ë)¡£ +が返される)。 .\"O Second, if the signal is currently blocked, then .\"O the return value of a successful .\"O .BR sigset () .\"O should be .\"O .BR SIG_HOLD . .\"O Instead, the previous disposition of the signal is returned. -¤â¤¦°ì¤Ä¤Ï¡¢¥·¥°¥Ê¥ë¤¬¸½ºß¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -À®¸ù¤·¤¿¾ì¹ç¤Î +もう一つは、シグナルが現在ブロックされている場合には、 +成功した場合の .BR sigset () -¤ÎÊÖ¤êÃÍ¤Ï +の返り値は .B SIG_HOLD -¤Ë¤Ê¤ë¤Ù¤­¤Ç¤¢¤ë¤¬¡¢¼ÂºÝ¤Ë¤Ï -Êѹ¹Á°¤Î¥·¥°¥Ê¥ë¤ÎÆ°ºî¤¬ÊÖ¤µ¤ì¤ë¤³¤È¤Ç¤¢¤ë¡£ +になるべきであるが、実際には +変更前のシグナルの動作が返されることである。 .\"O These problems have been fixed since glibc 2.5. -¤³¤ì¤é¤ÎÌäÂê¤Ï glibc 2.5 °Ê¹ß¤Ç½¤Àµ¤µ¤ì¤Æ¤¤¤ë¡£ +これらの問題は glibc 2.5 以降で修正されている。 .\" See http://sourceware.org/bugzilla/show_bug.cgi?id=1951 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR kill (2), .BR pause (2), .BR sigaction (2), diff --git a/draft/man3/sigsetops.3 b/draft/man3/sigsetops.3 index 547509ad..175a94da 100644 --- a/draft/man3/sigsetops.3 +++ b/draft/man3/sigsetops.3 @@ -26,7 +26,7 @@ .\" 2007-10-26 mdw added wording that a sigset_t must be initialized .\" prior to use .\" -.\"WORD: signal set ¥·¥°¥Ê¥ë½¸¹ç +.\"WORD: signal set シグナル集合 .\" .\" Japanese Version Copyright (c) 1998 HANATAKA Shinya .\" all rights reserved. @@ -36,13 +36,13 @@ .\" .TH SIGSETOPS 3 2008-09-01 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sigemptyset, sigfillset, sigaddset, sigdelset, sigismember \- POSIX .\"O signal set operations. sigemptyset, sigfillset, sigaddset, sigdelset, sigismember \- POSIX -¥·¥°¥Ê¥ë½¸¹ç¤ÎÁàºî +シグナル集合の操作 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int sigemptyset(sigset_t *" set ); @@ -58,9 +58,9 @@ sigemptyset, sigfillset, sigaddset, sigdelset, sigismember \- POSIX .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -74,28 +74,28 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions allow the manipulation of POSIX signal sets. -¤³¤ì¤é¤Î´Ø¿ô¤Ï POSIX ¥·¥°¥Ê¥ë½¸¹ç(signal set)¤òÁàºî¤¹¤ë¤¿¤á»ÈÍѤ¹¤ë¡£ +これらの関数は POSIX シグナル集合(signal set)を操作するため使用する。 .PP .\"O .BR sigemptyset () .\"O initializes the signal set given by .\"O .I set .\"O to empty, with all signals excluded from the set. .BR sigemptyset () -¤Ï +は .I set -¤ÇÍ¿¤¨¤é¤ì¤¿¥·¥°¥Ê¥ë½¸¹ç¤ò¶õ¤Ë½é´ü²½¤·¡¢¥·¥°¥Ê¥ë¤¬°ì¤Ä¤â -´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¾õÂ֤ˤ¹¤ë¡£ +で与えられたシグナル集合を空に初期化し、シグナルが一つも +含まれていない状態にする。 .PP .\"O .BR sigfillset () .\"O initializes .\"O .I set .\"O to full, including all signals. .BR sigfillset () -¤Ï +は .I set -¤ÇÍ¿¤¨¤é¤ì¤¿¥·¥°¥Ê¥ë½¸¹ç¤¬Á´¤Æ¤Î¥·¥°¥Ê¥ë¤ò´Þ¤à¤è¤¦¤Ë¤¹¤ë¡£ +で与えられたシグナル集合が全てのシグナルを含むようにする。 .PP .\"O .BR sigaddset () .\"O and @@ -105,13 +105,13 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O from .\"O .IR set . .BR sigaddset () -¤È +と .BR sigdelset () -¤Ï +は .I set -¤Ë +に .I signum -¥·¥°¥Ê¥ë¤ò¤½¤ì¤¾¤ì²Ã¤¨¤¿¤ê¡¢ºï½ü¤·¤¿¤ê¤¹¤ë¡£ +シグナルをそれぞれ加えたり、削除したりする。 .PP .\"O .BR sigismember () .\"O tests whether @@ -119,11 +119,11 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O is a member of .\"O .I set . .BR sigismember () -¤Ï +は .I signum -¤¬ +が .I set -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò¥Æ¥¹¥È¤¹¤ë¡£ +に含まれているかどうかをテストする。 .PP .\"O Objects of type .\"O .I sigset_t @@ -143,22 +143,22 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O .BR sigorset ()). .\"O The results are undefined if this is not done. .I sigset_t -·¿¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢´Ø¿ô +型のオブジェクトは、関数 .BR sigaddset (), .BR sigdelset (), .BR sigismember () -¤ä¸å½Ò¤Î glibc ¤ÎÄɲôؿô +や後述の glibc の追加関数 .RB ( sigisemptyset (), .BR sigandset (), .BR sigorset ()) -¤ËÅϤ¹Á°¤Ë¡¢ +に渡す前に、 .BR sigemptyset () -¤« +か .BR sigfillset () -¤ò¸Æ¤Ó½Ð¤·¤Æ½é´ü²½¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -½é´ü²½¤·¤Ê¤«¤Ã¤¿¾ì¹ç¤Î·ë²Ì¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +を呼び出して初期化しなければならない。 +初期化しなかった場合の結果は未定義である。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR sigemptyset (), .\"O .BR sigfillset (), .\"O .BR sigaddset (), @@ -169,7 +169,7 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .BR sigfillset (), .BR sigaddset (), .BR sigdelset () -¤ÏÀ®¸ù¤¹¤ì¤Ð 0 ¤ò¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ +は成功すれば 0 を、エラーの場合は \-1 を返す。 .PP .\"O .BR sigismember () .\"O returns 1 if @@ -180,43 +180,43 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O .I signum .\"O is not a member, and \-1 on error. .BR sigismember () -¤Ï +は .I signum -¤¬ +が .I set -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ì¤Ð 1 ¤òÊÖ¤·¡¢´Þ¤Þ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ +に含まれていれば 1 を返し、含まれていなければ 0 を返す。 +エラーの場合は \-1 を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O .I sig .\"O is not a valid signal. .I sig -¤¬Í­¸ú¤Ê¥·¥°¥Ê¥ë¤Ç¤Ï¤Ê¤¤¡£ +が有効なシグナルではない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES .\"O .SS Glibc Notes -.SH Ãí°Õ -.SS glibc ¤Ç¤ÎÃí°Õ +.SH 注意 +.SS glibc での注意 .\"O If the .\"O .B _GNU_SOURCE .\"O feature test macro is defined, then \fI\fP .\"O exposes three other functions for manipulating signal .\"O sets. .B _GNU_SOURCE -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤È¡¢ -\fI\fP ¤Ç¥·¥°¥Ê¥ë½¸¹ç¤òÁàºî¤¹¤ë 3¤Ä¤Î´Ø¿ô¤¬ÄɲäǸø³«¤µ¤ì¤ë¡£ +機能検査マクロが定義されていると、 +\fI\fP でシグナル集合を操作する 3つの関数が追加で公開される。 .TP .BI "int sigisemptyset(sigset_t *" set ); .\"O returns 1 if .\"O .I set .\"O contains no signals, and 0 otherwise. .I set -¤Ë¥·¥°¥Ê¥ë¤¬°ì¤Ä¤â´Þ¤Þ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð 1 ¤òÊÖ¤·¡¢ -¤½¤ì°Ê³°¤Ï 0 ¤òÊÖ¤¹¡£ +にシグナルが一つも含まれていなければ 1 を返し、 +それ以外は 0 を返す。 .TP .BI "int sigorset(sigset_t *" dest ", sigset_t *" left \ ", sigset_t *" right ); @@ -226,13 +226,13 @@ POSIX.1-2001. .\"O .I right .\"O in .\"O .IR dest . -¥·¥°¥Ê¥ë½¸¹ç +シグナル集合 .I left -¤È +と .I left -¤ÎϽ¸¹ç¤ò +の和集合を .I dest -¤Ë½ñ¤­¹þ¤à¡£ +に書き込む。 .TP .BI "int sigandset(sigset_t *" dest ", sigset_t *" left \ ", sigset_t *" right ); @@ -242,30 +242,30 @@ POSIX.1-2001. .\"O .I right .\"O in .\"O .IR dest . -¥·¥°¥Ê¥ë½¸¹ç +シグナル集合 .I left -¤È +と .I left -¤ÎÀѽ¸¹ç¤ò +の積集合を .I dest -¤Ë½ñ¤­¹þ¤à¡£ +に書き込む。 .PP .\"O .BR sigorset () .\"O and .\"O .BR sigandset () .\"O return 0 on success, and \-1 on failure. .BR sigorset () -¤È +と .BR sigandset () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤ò¡¢¼ºÇÔ¤¹¤ë¤È \-1 ¤òÊÖ¤¹¡£ +は成功すると 0 を、失敗すると \-1 を返す。 .PP .\"O These functions are nonstandard (a few other systems provide similar .\"O functions) and their use should be avoided in portable applications. -¤³¤ì¤é¤Î´Ø¿ô¤ÏÈóɸ½à¤Ç¤¢¤ê¡¢(¾¤Ë¤âƱÍͤδؿô¤òÄ󶡤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤â -¤¤¤¯¤Ä¤«¤Ï¤¢¤ë¤¬) °Ü¿¢À­¤ò¹Íθ¤·¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï»ÈÍѤòÈò¤±¤ë¤Ù¤­ -¤Ç¤¢¤ë¡£ +これらの関数は非標準であり、(他にも同様の関数を提供しているシステムも +いくつかはあるが) 移植性を考慮したアプリケーションでは使用を避けるべき +である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sigaction (2), .BR sigpending (2), .BR sigprocmask (2), diff --git a/draft/man3/sigvec.3 b/draft/man3/sigvec.3 index 03fe7504..75b53e4c 100644 --- a/draft/man3/sigvec.3 +++ b/draft/man3/sigvec.3 @@ -26,11 +26,11 @@ .\" .TH SIGVEC 3 2007-07-26 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sigvec, sigblock, sigsetmask, siggetmask, sigmask \- BSD signal API -sigvec, sigblock, sigsetmask, siggetmask, sigmask \- BSD ÈÇ¥·¥°¥Ê¥ë API +sigvec, sigblock, sigsetmask, siggetmask, sigmask \- BSD 版シグナル API .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int sigvec(int " sig ", struct sigvec *" vec ", struct sigvec *" ovec ); @@ -46,29 +46,29 @@ sigvec, sigblock, sigsetmask, siggetmask, sigmask \- BSD .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .\"O All functions shown above: -¾åµ­¤ÎÁ´¤Æ¤Î´Ø¿ô: +上記の全ての関数: _BSD_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions are provided in glibc as a compatibility interface .\"O for programs that make use of the historical BSD signal API. .\"O This API is obsolete: new applications should use the POSIX signal API .\"O .RB ( sigaction (2), .\"O .BR sigprocmask (2), .\"O etc.) -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ÀΤʤ¬¤é¤Î BSD ÈÇ¥·¥°¥Ê¥ë API ¤ò»ÈÍѤ·¤Æ¤¤¤ë¥×¥í¥°¥é¥à -¤ËÂФ·¤Æ¸ß´¹À­¤Î¤¢¤ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò glibc ¤ÇÄ󶡤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î API ¤Ï²áµî¤Î¤â¤Î¤Ç¤¢¤ê¡¢¿·¤·¤¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï -POSIX ¥·¥°¥Ê¥ë API +これらの関数は、昔ながらの BSD 版シグナル API を使用しているプログラム +に対して互換性のあるインタフェースを glibc で提供するものである。 +この API は過去のものであり、新しいアプリケーションでは +POSIX シグナル API .RB ( sigaction (2), .BR sigprocmask (2) -¤Ê¤É) ¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +など) を使用すべきである。 .\"O The .\"O .BR sigvec () @@ -76,13 +76,13 @@ POSIX .\"O .I sig .\"O (like the POSIX .\"O .BR sigaction (2)). -´Ø¿ô +関数 .BR sigvec () -¤Ï¡¢(POSIX ¤Î +は、(POSIX の .BR sigaction (2) -¤ÈƱÍͤË) ¥·¥°¥Ê¥ë +と同様に) シグナル .I sig -¤ÎÆ°ºî¤ÎÀßÄꡦ¼èÆÀ¤ò¹Ô¤¦¡£ +の動作の設定・取得を行う。 .\"O If .\"O .I vec .\"O is not NULL, it points to a @@ -90,11 +90,11 @@ POSIX .\"O structure that defines the new disposition for .\"O .IR sig . .I vec -¤Ï¡¢NULL °Ê³°¤Î¾ì¹ç¡¢ +は、NULL 以外の場合、 .I sig -¤Î¿·¤·¤¤Æ°ºî¤òÄêµÁ¤·¤¿ +の新しい動作を定義した .I sigvec -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ +構造体へのポインタである。 .\"O If .\"O .I ovec .\"O is not NULL, it points to a @@ -102,11 +102,11 @@ POSIX .\"O structure that is used to return the previous disposition of .\"O .IR sig . .I ovec -¤Ï¡¢NULL °Ê³°¤Î¾ì¹ç¡¢ +は、NULL 以外の場合、 .I sig -¤ÎÊѹ¹Á°¤ÎÆ°ºî¤òÊÖ¤¹¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë +の変更前の動作を返すために使用される .I sigvec -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ +構造体へのポインタである。 .\"O To obtain the current disposition of .\"O .I sig .\"O without changing it, specify NULL for @@ -114,11 +114,11 @@ POSIX .\"O and a non-NULL pointer for .\"O .IR ovec . .I sig -¤ÎÆ°ºî¤òÊѹ¹¤»¤º¤Ë¸½ºß¤ÎÆ°ºî¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ +の動作を変更せずに現在の動作を取得するためには、 .I vec -¤Ë NULL ¤ò»ØÄꤷ¡¢ +に NULL を指定し、 .I ovec -¤Ë NULL ¤Ç¤Ê¤¤¥Ý¥¤¥ó¥¿¤ò»ØÄꤹ¤ì¤Ð¤è¤¤¡£ +に NULL でないポインタを指定すればよい。 .\"O The dispositions for .\"O .B SIGKILL @@ -126,15 +126,15 @@ POSIX .\"O .B SIGSTOP .\"O cannot be changed. .B SIGKILL -¤È +と .B SIGSTOP -¤ÎÆ°ºî¤ÏÊѹ¹¤Ç¤­¤Ê¤¤¡£ +の動作は変更できない。 .\"O The .\"O .I sigvec .\"O structure has the following form: .I sigvec -¹½Â¤ÂΤϰʲ¼¤ÎÄ̤ê¤Ç¤¢¤ë: +構造体は以下の通りである: .in +4n .nf @@ -155,16 +155,16 @@ struct sigvec { .\"O .B SIG_IGN .\"O meaning that the signal is ignored. .I sv_handler -¥Õ¥£¡¼¥ë¥É¤Ï¥·¥°¥Ê¥ë¤ÎÆ°ºî¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é´Ø¿ô¤Î¥¢¥É¥ì¥¹¤«¡¢ +フィールドはシグナルの動作を指定するもので、 +シグナルハンドラ関数のアドレスか、 .B SIG_DFL -¤È +と .B SIG_IGN -¤Î¤¤¤º¤ì¤«¤ò»ØÄê¤Ç¤­¤ë¡£ +のいずれかを指定できる。 .B SIG_DFL -¤Ï¥·¥°¥Ê¥ë¤ËŬÍѤµ¤ì¤ë¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤ò°ÕÌ£¤·¡¢ +はシグナルに適用されるデフォルトの動作を意味し、 .B SIG_IGN -¤Ï¥·¥°¥Ê¥ë¤ò̵»ë¤¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +はシグナルを無視することを意味する。 .\"O If .\"O .I sv_handler @@ -180,14 +180,14 @@ struct sigvec { .\"O .B SIGSTOP .\"O are silently ignored. .I sv_handler -¤Ë¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Î¥¢¥É¥ì¥¹¤ò»ØÄꤷ¤¿¾ì¹ç¡¢ +にシグナルハンドラのアドレスを指定した場合、 .I sv_mask -¤Ï¥Ï¥ó¥É¥é¤¬¼Â¹ÔÃæ¤Ë¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¤Ù¤­¥·¥°¥Ê¥ë¤Î¥Þ¥¹¥¯¤ò»ØÄꤹ¤ë¡£ -¤Þ¤¿¡¢¥Ï¥ó¥É¥é¤òµ¯Æ°¤·¤¿¥·¥°¥Ê¥ë¼«¿È¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¡£ +はハンドラが実行中にブロックされるべきシグナルのマスクを指定する。 +また、ハンドラを起動したシグナル自身はデフォルトでブロックされる。 .B SIGKILL -¤« +か .B SIGSTOP -¤ò¥Ö¥í¥Ã¥¯¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ÌۤäÆ̵»ë¤µ¤ì¤ë¡£ +をブロックしようとした場合には、黙って無視される。 .\"O If .\"O .I sv_handler @@ -196,10 +196,10 @@ struct sigvec { .\"O field specifies flags controlling what happens when the handler is called. .\"O This field may contain zero or more of the following flags: .I sv_handler -¤Ë¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Î¥¢¥É¥ì¥¹¤ò»ØÄꤷ¤¿¾ì¹ç¡¢ +にシグナルハンドラのアドレスを指定した場合、 .I sv_flags -¥Õ¥£¡¼¥ë¥É¤Ï¥Ï¥ó¥É¥é¤¬¸Æ¤Ð¤ì¤¿ºÝ¤ÎµóÆ°¤òÀ©¸æ¤¹¤ë¥Õ¥é¥°¤ò»ØÄꤹ¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¡¢0 ¤«¡¢°Ê²¼¤Î¥Õ¥é¥°¤ò 1¸Ä°Ê¾å»ØÄê¤Ç¤­¤ë: +フィールドはハンドラが呼ばれた際の挙動を制御するフラグを指定する。 +このフィールドには、0 か、以下のフラグを 1個以上指定できる: .TP .B SV_INTERRUPT .\"O If the signal handler interrupts a blocking system call, @@ -208,13 +208,13 @@ struct sigvec { .\"O .BR EINTR . .\"O If this flag is not specified, then system calls are restarted .\"O by default. -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬Ää»ßÃæ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÃæÃǤ·¤¿¾ì¹ç¡¢ -¥Ï¥ó¥É¥é¤«¤éÉüµ¢¤·¤Æ¤â¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏºÆ³«¤µ¤ì¤º¡¢ -¥¨¥é¡¼ +シグナルハンドラが停止中のシステムコールを中断した場合、 +ハンドラから復帰しても、システムコールは再開されず、 +エラー .B EINTR -¤Ç¼ºÇÔ¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï -¥Ç¥Õ¥©¥ë¥È¤ÇºÆ³«¤µ¤ì¤ë¡£ +で失敗する。 +このフラグを指定しなかった場合、システムコールは +デフォルトで再開される。 .TP .B SV_RESETHAND .\"O Reset the disposition of the signal to the default @@ -224,13 +224,13 @@ struct sigvec { .\"O .BR sigvec () .\"O or until the process performs an .\"O .BR execve (2). -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¥·¥°¥Ê¥ë¤ÎÆ°ºî¤ò -¥Ç¥Õ¥©¥ë¥È¤Ë¥ê¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¤â¤¦°ìÅÙ +シグナルハンドラを呼び出す前にシグナルの動作を +デフォルトにリセットする。 +このフラグを指定しなかった場合、もう一度 .BR sigvec () -¤ò¸Æ¤Ó½Ð¤·¤ÆÌÀ¼¨Åª¤Ëºï½ü¤µ¤ì¤ë¤«¡¢¥×¥í¥»¥¹¤¬ +を呼び出して明示的に削除されるか、プロセスが .BR execve (2) -¤ò¼Â¹Ô¤¹¤ë¤Þ¤Ç¡¢¥Ï¥ó¥É¥é¤ÏÀßÄꤵ¤ì¤¿¤Þ¤Þ¤È¤Ê¤ë¡£ +を実行するまで、ハンドラは設定されたままとなる。 .TP .B SV_ONSTACK .\"O Handle the signal on the alternate signal stack @@ -238,12 +238,12 @@ struct sigvec { .\"O .BR sigstack () .\"O function; the POSIX replacement is .\"O .BR sigaltstack (2)). -ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¾å¤Ç¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò¼Â¹Ô¤¹¤ë -(Îò»ËŪ¤Ë¡¢BSD ¤Ç¤ÏÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ÏÇѻߤµ¤ì¤¿´Ø¿ô +代替シグナルスタック上でシグナルハンドラを実行する +(歴史的に、BSD では代替シグナルスタックは廃止された関数 .BR sigstack () -¤ò»È¤Ã¤ÆÀßÄꤹ¤ë¡£POSIX ¤Ç¤Ï¡¢Âå¤ï¤ê¤Ë +を使って設定する。POSIX では、代わりに .BR sigaltstack (2) -¤ò»ÈÍѤ¹¤ë)¡£ +を使用する)。 .PP .\"O The .\"O .BR sigmask () @@ -254,16 +254,16 @@ struct sigvec { .\"O field given to .\"O .BR sigvec () .\"O using code such as the following: -´Ø¿ô +関数 .BR sigmask () -¤Ï +は .I signum -¤ËÂФ¹¤ë¡Ö¥·¥°¥Ê¥ë¥Þ¥¹¥¯¡×¤ò¹½À®¤·¤ÆÊÖ¤¹¡£ -Î㤨¤Ð¡¢°Ê²¼¤Î¤è¤¦¤Ê¥³¡¼¥É¤ò»È¤¦¤È¡¢ +に対する「シグナルマスク」を構成して返す。 +例えば、以下のようなコードを使うと、 .BR sigvec () -¤ËÅϤ¹ +に渡す .I vec.sv_mask -¤ò½é´ü²½¤Ç¤­¤ë¡£ +を初期化できる。 .nf vec.sv_mask = sigmask(SIGQUIT) | sigpause(SIGABRT); @@ -285,16 +285,16 @@ struct sigvec { .\"O .B SIGSTOP .\"O are silently ignored. .BR sigblock () -´Ø¿ô¤Ï¡¢ +関数は、 .I mask -¤Ë¤¢¤ë¥·¥°¥Ê¥ë¤ò¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ËÄɲä· -(POSIX ¤Î +にあるシグナルをプロセスのシグナルマスクに追加し +(POSIX の .I sigprocmask(SIG_BLOCK) -¤ÈƱÍÍ)¡¢Êѹ¹Á°¤Î¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊÖ¤¹¡£ +と同様)、変更前のプロセスのシグナルマスクを返す。 .B SIGKILL -¤ä +や .B SIGSTOP -¤ò¥Ö¥í¥Ã¥¯¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ÌۤäÆ̵»ë¤µ¤ì¤ë¡£ +をブロックしようとした場合には、黙って無視される。 .PP .\"O The .\"O .BR sigsetmask () @@ -304,11 +304,11 @@ struct sigvec { .\"O .IR sigprocmask(SIG_SETMASK) ), .\"O and returns the process's previous signal mask. .BR sigsetmask () -´Ø¿ô¤Ï¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ò +関数はプロセスのシグナルマスクを .I mask -¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤷ (POSIX ¤Î +で指定された値に設定し (POSIX の .I sigprocmask(SIG_SETMASK) -¤ÈƱÍÍ)¡¢Êѹ¹Á°¤Î¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊÖ¤¹¡£ +と同様)、変更前のプロセスのシグナルマスクを返す。 .PP .\"O The .\"O .BR siggetmask () @@ -316,20 +316,20 @@ struct sigvec { .\"O This call is equivalent to .\"O .IR sigblock(0) . .BR siggetmask () -´Ø¿ô¤Ï¥×¥í¥»¥¹¤Î¸½ºß¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊÖ¤¹¡£¤³¤Î´Ø¿ô¤Ï +関数はプロセスの現在のシグナルマスクを返す。この関数は .I sigblock(0) -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR sigvec () .\"O function returns 0 on success; on error, it returns \-1 and sets .\"O .I errno .\"O to indicate the error. .BR sigvec () -´Ø¿ô¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +関数は成功すると 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ +にエラーを示す値をセットする。 .\"O The .\"O .BR sigblock () @@ -337,43 +337,43 @@ struct sigvec { .\"O .BR sigsetmask () .\"O functions return the previous signal mask. .BR sigblock () -¤È +と .BR sigsetmask () -¤ÏÊѹ¹Á°¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊÖ¤¹¡£ +は変更前のシグナルマスクを返す。 .\"O The .\"O .BR sigmask () .\"O function returns the signal mask for .\"O .IR signum . .BR sigmask () -´Ø¿ô¤Ï +関数は .I signum -¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊÖ¤¹¡£ +のシグナルマスクを返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See the ERRORS under .\"O .BR sigaction (2) .\"O and .\"O .BR sigprocmask (2). .BR sigaction (2) -¤È +と .BR sigprocmask (2) -¤Î¡Ö¥¨¥é¡¼¡×¤ÎÀá¤ò»²¾È¡£ +の「エラー」の節を参照。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O All of these functions were in .\"O 4.3BSD, except .\"O .BR siggetmask (), .\"O whose origin is unclear. .\"O These functions are obsolete: do not use them in new programs. -¤³¤ì¤é¤Î´Ø¿ô¤Î¤¦¤Á +これらの関数のうち .BR siggetmask () -°Ê³°¤ÎÁ´¤Æ¤Ï 4.3BSD ¤Ë¤¢¤Ã¤¿¡£ +以外の全ては 4.3BSD にあった。 .BR siggetmask () -¤Î½Ð¼«¤Ï¤Ï¤Ã¤­¤ê¤·¤Ê¤¤¡£ -¤³¤ì¤é¤Î´Ø¿ô¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ê¡¢¿·¤·¤¤¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ·¤Ê¤¤¤³¤È¡£ +の出自ははっきりしない。 +これらの関数は廃止予定であり、新しいプログラムでは使用しないこと。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O On 4.3BSD, the .\"O .BR signal () .\"O function provided reliable semantics (as when calling @@ -381,27 +381,27 @@ struct sigvec { .\"O with .\"O .I vec.sv_mask .\"O equal to 0). -4.3BSD ¤Ç¤Ï¡¢¿®ÍêÀ­¤Î¤¢¤ë¥·¥°¥Ê¥ë½èÍýµ¡¹½¤òÄ󶡤¹¤ë +4.3BSD では、信頼性のあるシグナル処理機構を提供する .RI ( vec.sv_mask -¤ò 0 ¤Ç +を 0 で .BR sigvec () -¤ò¸Æ¤Ó½Ð¤·¤¿¤È¤­¤ÈƱÍÍ)¡£ +を呼び出したときと同様)。 .\"O On System V, .\"O .BR signal () .\"O provides unreliable semantics. -System V ¤¬Ä󶡤¹¤ë½èÍýµ¡¹½¤Ï¿®ÍêÀ­¤Î¤Ê¤¤¤â¤Î¤Ç¤¢¤ë¡£ +System V が提供する処理機構は信頼性のないものである。 .\"O POSIX.1-2001 leaves these aspects of .\"O .BR signal () .\"O unspecified. .\"O See .\"O .BR signal (2) .\"O for further details. -POSIX.1-2001 ¤Ç¤Ï¡¢ +POSIX.1-2001 では、 .BR signal () -¤Î¤³¤ÎÅÀ¤Ïµ¬Äꤷ¤Ê¤¤¤Þ¤Þ¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤µ¤é¤Ê¤ë¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï +のこの点は規定しないままとなっている。 +さらなる詳細については .BR signal (2) -¤ò»²¾È¡£ +を参照。 .\"O In order to wait for a signal, .\"O BSD and System V both provided a function named @@ -410,16 +410,16 @@ POSIX.1-2001 .\"O See .\"O .BR sigpause (3) .\"O for details. -BSD ¤È System V ¤Î¤É¤Á¤é¤Î¥·¥¹¥Æ¥à¤Ç¤â -¥·¥°¥Ê¥ë¤òÂԤĤ¿¤á¤Ë¡¢ +BSD と System V のどちらのシステムでも +シグナルを待つために、 .BR sigpause (3) -¤È¤¤¤¦Ì¾Á°¤Î´Ø¿ô¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -¤³¤Î´Ø¿ô¤Î°ú¤­¿ô¤ÏξÊý¤Î¥·¥¹¥Æ¥à¤Ç°Û¤Ê¤ë¡£ -¾ÜºÙ¤Ï +という名前の関数が提供されているが、 +この関数の引き数は両方のシステムで異なる。 +詳細は .BR sigpause (3) -¤ò»²¾È¡£ +を参照。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR kill (2), .BR pause (2), .BR sigaction (2), diff --git a/draft/man3/sigwait.3 b/draft/man3/sigwait.3 index b5d7f527..42998169 100644 --- a/draft/man3/sigwait.3 +++ b/draft/man3/sigwait.3 @@ -27,11 +27,11 @@ .\" .TH SIGWAIT 3 2010-09-10 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sigwait \- wait for a signal -sigwait \- ¥·¥°¥Ê¥ë¤òÂÔ¤Ä +sigwait \- シグナルを待つ .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include @@ -41,9 +41,9 @@ sigwait \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -51,7 +51,7 @@ glibc _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR sigwait () .\"O function suspends execution of the calling thread until the @@ -62,14 +62,14 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O and returns the signal number in .\"O .IR sig . .BR sigwait () -´Ø¿ô¤Ï¡¢¥·¥°¥Ê¥ë½¸¹ç +関数は、シグナル集合 .I set -¤Ç»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë¤Î°ì¤Ä¤¬ÇÛÁ÷¤µ¤ì¤ë¤Þ¤Ç¡¢ -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î¼Â¹Ô¤òÃæÃǤ¹¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¤½¤Î¥·¥°¥Ê¥ë¤ò¼õ¤±¼è¤ê (¤Ä¤Þ¤ê¡¢½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë¤Î¥ê¥¹¥È -¤«¤é¤½¤Î¥·¥°¥Ê¥ë¤òºï½ü¤·)¡¢¤½¤Î¥·¥°¥Ê¥ëÈÖ¹æ¤ò +で指定されたシグナルの一つが配送されるまで、 +呼び出したスレッドの実行を中断する。 +この関数はそのシグナルを受け取り (つまり、処理待ちのシグナルのリスト +からそのシグナルを削除し)、そのシグナル番号を .I sig -¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ +に格納して返す。 .\"O The operation of .\"O .BR sigwait () @@ -77,62 +77,62 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\"O .BR sigwaitinfo (2), .\"O except that: .BR sigwait () -¤ÎÆ°ºî¤Ï +の動作は .BR sigwaitinfo (2) -¤ÈƱ¤¸¤À¤¬¡¢°Ê²¼¤ÎÅÀ¤¬°Û¤Ê¤ë¡£ +と同じだが、以下の点が異なる。 .IP * 2 .\"O .BR sigwait () .\"O only returns the signal number, rather than a .\"O .I siginfo_t .\"O structure describing the signal. .BR sigwait () -¤Ï¡¢¥·¥°¥Ê¥ë¤ÎÆâÍƤòɽ¤¹ +は、シグナルの内容を表す .I siginfo_t -¹½Â¤ÂΤòÊÖ¤¹¤Î¤Ç¤Ï¤Ê¤¯¡¢Ã±¤Ë¥·¥°¥Ê¥ëÈÖ¹æ¤òÊÖ¤¹¡£ +構造体を返すのではなく、単にシグナル番号を返す。 .IP * .\"O The return values of the two functions are different. -ÊÖ¤êÃͤ¬ +返り値が .BR sigwaitinfo (2) -¤È¤Ï°Û¤Ê¤ë¡£ +とは異なる。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR sigwait () .\"O returns 0. .\"O On error, it returns a positive error number (listed in ERRORS). -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR sigwait () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢(¡Ö¥¨¥é¡¼¡×¤ÎÀá¤Î¥ê¥¹¥È¤Ë¤¢¤ë) Àµ¤Î¥¨¥é¡¼ÈÖ¹æ¤òÊÖ¤¹¡£ +は 0 を返す。 +エラーの場合、(「エラー」の節のリストにある) 正のエラー番号を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\" Does not occur for glibc. .\"O .I set .\"O contains an invalid signal number. .I set -¤Ë̵¸ú¤Ê¥·¥°¥Ê¥ëÈֹ椬Æþ¤Ã¤Æ¤¤¤ë¡£ +に無効なシグナル番号が入っている。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .BR sigwait () .\"O is implemented using .\"O .BR sigtimedwait (2). .BR sigwait () -¤Ï +は .BR sigtimedwait (2) -¤ò»È¤Ã¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +を使って実装されている。 .\"O .SH EXAMPLES -.SH Îã +.SH 例 .\"O See .\"O .BR pthread_sigmask (3). .BR pthread_sigmask (3) -¤ò»²¾È¡£ +を参照。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sigaction (2), .BR signalfd (2), .BR sigpending (2), diff --git a/draft/man3/sin.3 b/draft/man3/sin.3 index a36da7f4..468d31bd 100644 --- a/draft/man3/sin.3 +++ b/draft/man3/sin.3 @@ -41,11 +41,11 @@ .\" .TH SIN 3 2010-09-11 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sin, sinf, sinl \- sine function -sin, sinf, sinl \- Àµ¸¹ (¥µ¥¤¥ó) ´Ø¿ô +sin, sinf, sinl \- 正弦 (サイン) 関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -57,14 +57,14 @@ sin, sinf, sinl \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -79,27 +79,27 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR sin () .\"O function returns the sine of \fIx\fP, where \fIx\fP is .\"O given in radians. .BR sin () -´Ø¿ô¤Ï \fIx\fP ¤ÎÀµ¸¹ (¥µ¥¤¥ó) ¤ÎÃͤòÊÖ¤¹¡£ -\fIx\fP ¤Ï¥é¥¸¥¢¥óñ°Ì¤Ç»ØÄꤹ¤ë¡£ +関数は \fIx\fP の正弦 (サイン) の値を返す。 +\fIx\fP はラジアン単位で指定する。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the sine of .\"O .IR x . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I x -¤ÎÀµ¸¹¤òÊÖ¤¹¡£ +の正弦を返す。 .\"O If .\"O .I x .\"O is a NaN, a NaN is returned. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x @@ -107,26 +107,26 @@ or .\"O a domain error occurs, .\"O and a NaN is returned. .I x -¤¬Àµ¤Î̵¸ÂÂ礫Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大か負の無限大の場合、 +領域エラー (domain error) が発生し、NaN が返される。 .\" .\" POSIX.1 allows an optional range error for subnormal x .\" glibc 2.8 doesn't do this .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Domain error: \fIx\fP is an infinity -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬Ìµ¸ÂÂç +領域エラー (domain error): \fIx\fP が無限大 .\"O .I errno .\"O is set to .\"O .BR EDOM @@ -135,38 +135,38 @@ or .\"O .RB ( FE_INVALID ) .\"O is raised. .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë (¡Ö¥Ð¥°¡×¤ÎÀá¤â»²¾È)¡£ -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される (「バグ」の節も参照)。 +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD, C89. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Before version 2.10, the glibc implementation did not set .\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=6781 .\"O .I errno .\"O to .\"O .B EDOM .\"O when a domain error occurred. -¥Ð¡¼¥¸¥ç¥ó 2.10 ¤è¤êÁ°¤Î glibc ¤Î¼ÂÁõ¤Ç¤Ï¡¢ -Îΰ襨¥é¡¼¤¬È¯À¸¤·¤¿ºÝ¤Ë¡¢ +バージョン 2.10 より前の glibc の実装では、 +領域エラーが発生した際に、 .I error -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤Ê¤«¤Ã¤¿¡£ +が設定されなかった。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR acos (3), .BR asin (3), .BR atan (3), diff --git a/draft/man3/sincos.3 b/draft/man3/sincos.3 index f5e5caf5..e1baab07 100644 --- a/draft/man3/sincos.3 +++ b/draft/man3/sincos.3 @@ -11,14 +11,14 @@ .\" .TH SINCOS 3 2008-08-11 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sincos, sincosf, sincosl \- calculate sin and cos simultaneously -sincos, sincosf, sincosl \- Àµ¸¹¤È;¸¹¤òƱ»þ¤Ë·×»»¤¹¤ë +sincos, sincosf, sincosl \- 正弦と余弦を同時に計算する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "void sincos(double " x ", double *" sin ", double *" cos ); @@ -29,23 +29,23 @@ sincos, sincosf, sincosl \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Several applications need sine and cosine of the same angle .\"O .IR x . .\"O This function computes both at the same time, and stores the results in .\"O .I *sin .\"O and .\"O .IR *cos . -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÃæ¤Ë¤Ï¡¢Æ±¤¸³ÑÅÙ +アプリケーションの中には、同じ角度 .I x -¤Ë¤Ä¤¤¤ÆÀµ¸¹¤È;¸¹¤ÎξÊý¤Î·×»»¤¬É¬Íפʤâ¤Î¤¬¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ïξ¼Ô¤òƱ»þ¤Ë·×»»¤·¡¢¤½¤Î·ë²Ì¤ò +について正弦と余弦の両方の計算が必要なものがある。 +この関数は両者を同時に計算し、その結果を .I *sin -¤È +と .I *cos -¤Ë³ÊǼ¤¹¤ë¡£ +に格納する。 .\"O If .\"O .I x @@ -55,11 +55,11 @@ sincos, sincosf, sincosl \- .\"O and .\"O .IR *cos . .I x -¤¬ NaN ¤Î¾ì¹ç¡¢ +が NaN の場合、 .I *sin -¤È +と .I *cos -¤Ë NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +に NaN が返される。 .\"O If .\"O .I x @@ -70,62 +70,62 @@ sincos, sincosf, sincosl \- .\"O and .\"O .IR *cos . .I x -¤¬Àµ¤Î̵¸ÂÂ礫Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ +が正の無限大か負の無限大の場合、 +領域エラー (domain error) が発生し、 .I *sin -¤È +と .I *cos -¤Ë NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +に NaN が返される。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O These functions return .\"O .IR void . -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I void -¤òÊÖ¤¹¡£ +を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Domain error: \fIx\fP is an infinity -Îΰ襨¥é¡¼ (domain error): \fIx\fp ¤¬Ìµ¸ÂÂç +領域エラー (domain error): \fIx\fp が無限大 .\" .I errno .\" is set to .\" .BR EDOM . .\"O An invalid floating-point exception .\"O .RB ( FE_INVALID ) .\"O is raised. -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP .\"O These functions do not set .\"O .IR errno . -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" sin() and cos() also don't set errno; bugs have been raised for .\" those functions. .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This function is a GNU extension. -¤³¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ +この関数は GNU による拡張である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cos (3), .BR sin (3), .BR tan (3) diff --git a/draft/man3/sinh.3 b/draft/man3/sinh.3 index 2075ed6b..5b1108e1 100644 --- a/draft/man3/sinh.3 +++ b/draft/man3/sinh.3 @@ -41,11 +41,11 @@ .\" .TH SINH 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sinh, sinhf, sinhl \- hyperbolic sine function -sinh, sinhf, sinhl \- ÁжÊÀþÀµ¸¹ (¥Ï¥¤¥Ñ¥Ü¥ê¥Ã¥¯¥µ¥¤¥ó) ´Ø¿ô +sinh, sinhf, sinhl \- 双曲線正弦 (ハイパボリックサイン) 関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -57,14 +57,14 @@ sinh, sinhf, sinhl \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -79,44 +79,44 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR sinh () .\"O function returns the hyperbolic sine of \fIx\fP, which .\"O is defined mathematically as: .BR sinh () -´Ø¿ô¤ÏÁжÊÀþÀµ¸¹ (¥Ï¥¤¥Ñ¥Ü¥ê¥Ã¥¯¥µ¥¤¥ó) ´Ø¿ô¤ÎÃͤòÊÖ¤¹¡£ -¿ô³ØŪ¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +関数は双曲線正弦 (ハイパボリックサイン) 関数の値を返す。 +数学的には以下のように定義されている。 .nf sinh(x) = (exp(x) \- exp(\-x)) / 2 .fi .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the hyperbolic sine of .\"O .IR x . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I x -¤ÎÁжÊÀþÀµ¸¹¤òÊÖ¤¹¡£ +の双曲線正弦を返す。 .\"O If .\"O .I x .\"O is a NaN, a NaN is returned. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x .\"O is +0 (\-0), +0 (\-0) is returned. .I x -¤¬ +0 (\-0) ¤Î¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 (\-0) の場合、+0 (\-0) が返される。 .\"O If .\"O .I x .\"O is positive infinity (negative infinity), .\"O positive infinity (negative infinity) is returned. .I x -¤¬Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤Î¾ì¹ç¡¢Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大 (負の無限大) の場合、正の無限大 (負の無限大) が返される。 .\"O If the result overflows, .\"O a range error occurs, @@ -127,34 +127,34 @@ or .\"O .BR HUGE_VALL , .\"O respectively, with the same sign as .\"O .IR x . -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ -ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +結果がオーバーフローする場合、 +範囲エラー (range error) が発生し、 +各関数はそれぞれ .BR HUGE_VAL , .BR HUGE_VALF , .BR HUGE_VALL -¤òÊÖ¤¹¡£Éä¹æ¤Ï +を返す。符号は .I x -¤ÈƱ¤¸¤Ë¤Ê¤ë¡£ +と同じになる。 .\" .\" POSIX.1-2001 documents an optional range error (underflow) .\" for subnormal x; .\" glibc 2.8 does not do this. .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Range error: result overflow -ÈÏ°Ï¥¨¥é¡¼ (range error): ·ë²Ì¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ +範囲エラー (range error): 結果のオーバーフロー .\"O .I errno .\"O is set to .\"O .BR ERANGE . @@ -162,23 +162,23 @@ or .\"O .RB ( FE_OVERFLOW ) .\"O is raised. .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD, C89. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR acosh (3), .BR asinh (3), .BR atanh (3), diff --git a/draft/man3/sleep.3 b/draft/man3/sleep.3 index 5aac44bc..97239826 100644 --- a/draft/man3/sleep.3 +++ b/draft/man3/sleep.3 @@ -27,38 +27,38 @@ .\" Translated Tue Jan 21 20:46:24 JST 1997 .\" by YOSHINO Takashi .\" -.\" WORD: signal handler ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¡¼ +.\" WORD: signal handler シグナルハンドラー .\" .TH SLEEP 3 2010-02-03 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -sleep \- »ØÄê¤ÎÉÿô¤Î´Ö¤À¤±µÙ»ß¤¹¤ë -.SH ½ñ¼° +.SH 名前 +sleep \- 指定の秒数の間だけ休止する +.SH 書式 .nf .B #include .sp .BI "unsigned int sleep(unsigned int " "seconds" ); .fi -.SH ÀâÌÀ +.SH 説明 .\"O .BR sleep () .\"O makes the calling thread sleep until .\"O .I seconds .\"O seconds have elapsed or a signal arrives which is not ignored. .BR sleep () -¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤ò +は、呼び出したスレッドを .I seconds -Éô֤ޤ¿¤Ï̵»ë¤µ¤ì¤Ê¤¤¥·¥°¥Ê¥ë¤¬ÅþÃ夹¤ë¤Þ¤ÇµÙ»ß¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ +秒間または無視されないシグナルが到着するまで休止する。 +.SH 返り値 .\"O Zero if the requested time has elapsed, .\"O or the number of seconds left to sleep, .\"O if the call was interrupted by a signal handler. -Í׵ᤵ¤ì¤¿»þ´Ö¤¬²á¤®¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ -¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¡¼¤Ë³ä¤ê¹þ¤Þ¤ì¤¿¾ì¹ç¤Ï¡¢ -µÙ»ß¤Î»Ä¤ê»þ´Ö¤òÊÖ¤¹¡£ +要求された時間が過ぎた場合はゼロを返す。 +呼び出しがシグナルハンドラーに割り込まれた場合は、 +休止の残り時間を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O .BR sleep () .\"O may be implemented using .\"O .BR SIGALRM ; @@ -68,26 +68,26 @@ POSIX.1-2001. .\"O .BR sleep () .\"O is a bad idea. .BR sleep () -¤Ï +は .B SIGALRM -¤òÍѤ¤¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£¤½¤Î¤¿¤á¡¢ +を用いて実装されている。そのため、 .BR alarm (2) -¤È +と .BR sleep () -¤òº®¤¼¤Æ»ÈÍѤ¹¤ë¤Î¤Ï¡¢¤Þ¤º¤¤¹Í¤¨¤Ç¤¢¤ë¡£ +を混ぜて使用するのは、まずい考えである。 .PP .\"O Using .\"O .BR longjmp (3) .\"O from a signal handler or modifying the handling of .\"O .B SIGALRM .\"O while sleeping will cause undefined results. -µÙ»ßÃæ¤Ë¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¡¼¤«¤é +休止中にシグナルハンドラーから .BR longjmp (3) -¤ò»ÈÍѤ¹¤ë¤³¤È¤ä +を使用することや .B SIGALRM -¤Î¥Ï¥ó¥É¥ê¥ó¥°¤òÊѹ¹¤¹¤ë¤³¤È¤Ï¡¢ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤·ë²Ì¤òÀ¸¤à¡£ +のハンドリングを変更することは、定義されていない結果を生む。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR alarm (2), .BR nanosleep (2), .BR signal (2), diff --git a/draft/man3/sockatmark.3 b/draft/man3/sockatmark.3 index eccf2fcd..24e16672 100644 --- a/draft/man3/sockatmark.3 +++ b/draft/man3/sockatmark.3 @@ -26,11 +26,11 @@ .\" .TH SOCKATMARK 3 2008-12-03 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sockatmark \- determine whether socket is at out-of-band mark -sockatmark \- ¤É¤Î¥½¥±¥Ã¥È¤ËÂÓ°è³° (out-of-band) ¥Þ¡¼¥¯¤¬ÉÕ¤±¤é¤ì¤Æ¤¤¤ë¤«¤òÄ´¤Ù¤ë +sockatmark \- どのソケットに帯域外 (out-of-band) マークが付けられているかを調べる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int sockatmark(int " sockfd ); @@ -38,9 +38,9 @@ sockatmark \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -48,40 +48,40 @@ glibc _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR sockatmark () .\"O returns a value indicating whether or not the socket referred .\"O to by the file descriptor .\"O .I sockfd .\"O is at the out-of-band mark. .BR sockatmark () -¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +はファイルディスクリプタ .I sockfd -¤Ç»²¾È¤µ¤ì¤ë¥½¥±¥Ã¥È¤ËÂÓ°è³°¥Þ¡¼¥¯¤¬ÉÕ¤±¤é¤ì¤Æ¤¤¤ë¤«Èݤ«¤òÊÖ¤¹¡£ +で参照されるソケットに帯域外マークが付けられているか否かを返す。 .\"O If the socket is at the mark, then 1 is returned; .\"O if the socket is not at the mark, 0 is returned. .\"O This function does not remove the out-of-band mark. -¥½¥±¥Ã¥È¤Ë¥Þ¡¼¥¯¤¬ÉÕ¤±¤é¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢1 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥½¥±¥Ã¥È¤Ë¥Þ¡¼¥¯¤¬ÉÕ¤±¤é¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤Î´Ø¿ô¤ÏÂÓ°è³°¥Þ¡¼¥¯¤òºï½ü¤·¤Ê¤¤¡£ +ソケットにマークが付けられている場合は、1 が返される。 +ソケットにマークが付けられていない場合は、0 が返される。 +この関数は帯域外マークを削除しない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O A successful call to .\"O .BR sockatmark () .\"O returns 1 if the socket is at the out-of-band mark, or 0 if it is not. .\"O On error, \-1 is returned and \fIerrno\fP is set to indicate the error. .BR sockatmark () -¤Î¸Æ¤Ó½Ð¤·¤¬À®¸ù¤·¤¿¾ì¹ç¡¢¥½¥±¥Ã¥È¤ËÂÓ°è³°¥Þ¡¼¥¯¤¬ -ÉÕ¤±¤é¤ì¤Æ¤¤¤ì¤Ð 1 ¤òÊÖ¤·¡¢ÉÕ¤±¤é¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢¥¨¥é¡¼¤òɽ¤¹ \fIerrno\fP ¤¬ÀßÄꤵ¤ì¤ë¡£ +の呼び出しが成功した場合、ソケットに帯域外マークが +付けられていれば 1 を返し、付けられていなければ 0 を返す。 +エラーの場合は \-1 が返され、エラーを表す \fIerrno\fP が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O .I sockfd .\"O is not a valid file descriptor. .I sockfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B EINVAL .\" POSIX.1 says ENOTTY for this case @@ -90,20 +90,20 @@ _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .\"O .BR sockatmark () .\"O can be applied. .I sockfd -¤Ï +は .BR sockatmark () -¤¬Å¬ÍѤǤ­¤Ê¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +が適用できないファイルディスクリプタである。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR sockatmark () .\"O was added to glibc in version 2.2.4. .BR sockatmark () -¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.2.4 ¤ÇÄɲ䵤줿¡£ +は glibc バージョン 2.2.4 で追加された。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O If .\"O .BR sockatmark () .\"O returns 1, then the out-of-band data can be read using the @@ -111,24 +111,24 @@ POSIX.1-2001. .\"O flag of .\"O .BR recv (2). .BR sockatmark () -¤¬ 1 ¤òÊÖ¤¹¾ì¹ç¡¢ÂÓ°è³°¥Ç¡¼¥¿¤Ï +が 1 を返す場合、帯域外データは .B MSG_OOB -¤ò»ØÄꤷ¤¿ +を指定した .BR recv (2) -¤ÇÆɤ߹þ¤à¤³¤È¤¬¤Ç¤­¤ë¡£ +で読み込むことができる。 .\"O Out-of-band data is only supported on some stream socket protocols. -ÂÓ°è³°¥Ç¡¼¥¿¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¥¹¥È¥ê¡¼¥à¥½¥±¥Ã¥È¥×¥í¥È¥³¥ë¤Ç¤·¤« -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +帯域外データは、いくつかのストリームソケットプロトコルでしか +サポートされていない。 .\"O .BR sockatmark () .\"O can safely be called from a handler for the .\"O .B SIGURG .\"O signal. .BR sockatmark () -¤Ï +は .B SIGURG -¥·¥°¥Ê¥ë¤Î¥Ï¥ó¥É¥é¤«¤é°ÂÁ´¤Ë¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +シグナルのハンドラから安全に呼び出すことができる。 .\"O .BR sockatmark () .\"O is implemented using the @@ -136,28 +136,28 @@ POSIX.1-2001. .\"O .BR ioctl (2) .\"O operation. .BR sockatmark () -¤Ï +は .B SIOCATMARK .BR ioctl (2) -Áàºî¤ò»È¤Ã¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +操作を使って実装されている。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Prior to glibc 2.4, .\"O .BR sockatmark () .\"O did not work. -glibc 2.4 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ +glibc 2.4 より前のバージョンでは、 .BR sockatmark () -¤ÏÆ°ºî¤·¤Ê¤¤¡£ +は動作しない。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The following code can be used after receipt of a .\"O .B SIGURG .\"O signal to read (and discard) all data up to the mark, .\"O and then read the byte of data at the mark: -°Ê²¼¤Î¥³¡¼¥É¤Ï¡¢ +以下のコードは、 .B SIGURG -¥·¥°¥Ê¥ë¤ò¼õ¤±¼è¤Ã¤¿¸å¤Ë¥Þ¡¼¥¯¤Þ¤Ç¤ÎÁ´¤Æ¤Î¥Ç¡¼¥¿¤òÆɤ߹þ¤ó¤Ç (ÇË´þ¤·)¡¢ -¥Þ¡¼¥¯¤µ¤ì¤¿¥Ç¡¼¥¿¤Î¥Ð¥¤¥È¤òÆɤ߹þ¤à¤Î¤Ë»ÈÍѤǤ­¤ë¡£ +シグナルを受け取った後にマークまでの全てのデータを読み込んで (破棄し)、 +マークされたデータのバイトを読み込むのに使用できる。 .nf char buf[BUF_LEN]; @@ -189,7 +189,7 @@ glibc 2.4 } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fcntl (2), .BR recv (2), .BR send (2), diff --git a/draft/man3/sqrt.3 b/draft/man3/sqrt.3 index dbdcf2f4..46d88a70 100644 --- a/draft/man3/sqrt.3 +++ b/draft/man3/sqrt.3 @@ -39,9 +39,9 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH SQRT 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -sqrt, sqrtf, sqrtl \- Ê¿Êýº¬´Ø¿ô -.SH ½ñ¼° +.SH 名前 +sqrt, sqrtf, sqrtl \- 平方根関数 +.SH 書式 .nf .B #include .sp @@ -53,14 +53,14 @@ sqrt, sqrtf, sqrtl \- Ê¿ .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -75,37 +75,37 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR sqrt () .\"O function returns the nonnegative square root of \fIx\fP. .BR sqrt () -´Ø¿ô¤Ï \fIx\fP ¤ÎÊ¿Êýº¬¤Î¤¦¤ÁÉé¤Ç¤Ê¤¤Êý¤ÎÃͤòÊÖ¤¹¡£ +関数は \fIx\fP の平方根のうち負でない方の値を返す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the square root of .\"O .IR x . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I x -¤ÎÊ¿Êýº¬¤òÊÖ¤¹¡£ +の平方根を返す。 .\"O If .\"O .I x .\"O is a NaN, a NaN is returned. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x .\"O is +0 (\-0), +0 (\-0) is returned. .I x -¤¬ +0 (\-0) ¤Î¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 (\-0) の場合、+0 (\-0) が返される。 .\"O If .\"O .I x .\"O is positive infinity, positive infinity is returned. .I x -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢Àµ¤Î̵¸ÂÂ礬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大の場合、正の無限大が返される。 .\"O If .\"O .I x @@ -113,23 +113,23 @@ or .\"O a domain error occurs, .\"O and a NaN is returned. .I x -¤¬ 0 ̤Ëþ¤Î¾ì¹ç¡¢Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ -NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が 0 未満の場合、領域エラー (domain error) が発生し、 +NaN が返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Domain error: \fIx\fP less than \-0 -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬ 0 ̤Ëþ +領域エラー (domain error): \fIx\fP が 0 未満 .\"O .I errno .\"O is set to .\"O .BR EDOM . @@ -137,22 +137,22 @@ NaN .\"O .RB ( FE_INVALID ) .\"O is raised. .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë¡£ -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD, C89. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 +.SH 関連項目 .BR cbrt (3), .BR csqrt (3), .BR hypot (3) diff --git a/draft/man3/statvfs.3 b/draft/man3/statvfs.3 index 4ef97e09..f7d76ab5 100644 --- a/draft/man3/statvfs.3 +++ b/draft/man3/statvfs.3 @@ -33,36 +33,36 @@ .\" .TH STATVFS 3 2003-08-22 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O statvfs, fstatvfs \- get file system statistics -statvfs, fstatvfs \- ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÅý·×¤ò¼èÆÀ¤¹¤ë +statvfs, fstatvfs \- ファイルシステムの統計を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "int statvfs(const char *" path ", struct statvfs *" buf ); .br .BI "int fstatvfs(int " fd ", struct statvfs *" buf ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The function .\"O .BR statvfs () .\"O returns information about a mounted file system. -´Ø¿ô +関数 .BR statvfs () -¤Ï¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÊÖ¤¹¡£ +はマウントされたファイルシステムについての情報を返す。 .\"O .I path .\"O is the pathname of any file within the mounted file system. .I path -¤Ï¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÃæ¤ÎǤ°Õ¤Î¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹Ì¾¤Ç¤¢¤ë¡£ +はマウントされたファイルシステム中の任意のファイルのパス名である。 .\"O .I buf .\"O is a pointer to a .\"O .I statvfs .\"O structure defined approximately as follows: .I buf -¤Ï¡¢¤À¤¤¤¿¤¤°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë +は、だいたい以下のように定義されている .I statvfs -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë: +構造体へのポインタである: .in +4n .nf @@ -78,17 +78,17 @@ struct statvfs { .\"O unsigned long f_fsid; /* file system ID */ .\"O unsigned long f_flag; /* mount flags */ .\"O unsigned long f_namemax; /* maximum filename length */ - unsigned long f_bsize; /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥º */ - unsigned long f_frsize; /* ¥Õ¥é¥°¥á¥ó¥È¥µ¥¤¥º */ - fsblkcnt_t f_blocks; /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥µ¥¤¥º (f_frsize ñ°Ì) */ - fsblkcnt_t f_bfree; /* ²òÊü¤µ¤ì¤Æ¤¤¤ë¥Ö¥í¥Ã¥¯¿ô */ - fsblkcnt_t f_bafvail; /* ÈóÆø¢¥æ¡¼¥¶ÍѤ˲òÊü¤µ¤ì¤Æ¤¤¤ë¥Ö¥í¥Ã¥¯¿ô */ - fsfilcnt_t f_files; /* inode ¿ô */ - fsfilcnt_t f_ffree; /* ²òÊü¤µ¤ì¤Æ¤¤¤ë inode ¤Î¿ô */ - fsfilcnt_t f_favail; /* ÈóÆø¢¥æ¡¼¥¶ÍѤ˲òÊü¤µ¤ì¤Æ¤¤¤ë inode ¤Î¿ô */ - unsigned long f_fsid; /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à ID */ - unsigned long f_flag; /* ¥Þ¥¦¥ó¥È¥Õ¥é¥° */ - unsigned long f_namemax; /* ¥Õ¥¡¥¤¥ë̾¤ÎŤµ¤ÎºÇÂçÃÍ */ + unsigned long f_bsize; /* ファイルシステムのブロックサイズ */ + unsigned long f_frsize; /* フラグメントサイズ */ + fsblkcnt_t f_blocks; /* ファイルシステムのサイズ (f_frsize 単位) */ + fsblkcnt_t f_bfree; /* 解放されているブロック数 */ + fsblkcnt_t f_bafvail; /* 非特権ユーザ用に解放されているブロック数 */ + fsfilcnt_t f_files; /* inode 数 */ + fsfilcnt_t f_ffree; /* 解放されている inode の数 */ + fsfilcnt_t f_favail; /* 非特権ユーザ用に解放されている inode の数 */ + unsigned long f_fsid; /* ファイルシステム ID */ + unsigned long f_flag; /* マウントフラグ */ + unsigned long f_namemax; /* ファイル名の長さの最大値 */ }; .fi .in @@ -99,66 +99,66 @@ struct statvfs { .\"O .I fsfilcnt_t .\"O are defined in .\"O .IR . -¤³¤³¤Ç¡¢·¿ +ここで、型 .I fsblkcnt_t -¤È +と .I fsfilcnt_t -¤Ï +は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で定義されている。 .\"O Both used to be .\"O .IR "unsigned long" . -¤«¤Ä¤Æ¡¢¤³¤ì¤é¤Ï¶¦¤Ë +かつて、これらは共に .I "unsigned long" -¤Ç¤¢¤Ã¤¿¡£ +であった。 .\"O The field .\"O .I f_flag .\"O is a bit mask (of mount flags, see .\"O .BR mount (8)). -¥Õ¥£¡¼¥ë¥É +フィールド .I f_flag -¤Ï (¥Þ¥¦¥ó¥È¥Õ¥é¥°¤Î) ¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ë -(¥Þ¥¦¥ó¥È¥Õ¥é¥°¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +は (マウントフラグの) ビットマスクである +(マウントフラグについては、 .BR mount (8) -¤ò»²¾È¤¹¤ë¤³¤È)¡£ +を参照すること)。 .\"O Bits defined by POSIX are -POSIX ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥Ó¥Ã¥È¤Ï°Ê²¼¤ÎÄ̤ê: +POSIX で定義されているビットは以下の通り: .TP .B ST_RDONLY .\"O Read-only file system. -Æɤ߹þ¤ßÀìÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¡£ +読み込み専用のファイルシステム。 .TP .B ST_NOSUID .\"O Set-user-id/set-group-ID bits are ignored by .\"O .BR exec (3). .BR exec (3) -¤Ë̵»ë¤µ¤ì¤ë set-user-id/set-group-ID ¥Ó¥Ã¥È¡£ +に無視される set-user-id/set-group-ID ビット。 .LP .\"O It is unspecified whether all members of the returned struct .\"O have meaningful values on all file systems. -ÊÖ¤µ¤ì¤¿¹½Â¤ÂΤÎÁ´¤Æ¤Î¥á¥ó¥Ð¤¬Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç -°ÕÌ£¤Î¤¢¤ëÃͤǤ¢¤ë¤«Èݤ«¤Ï¡¢»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +返された構造体の全てのメンバが全てのファイルシステムで +意味のある値であるか否かは、指定されていない。 .\"O .BR fstatvfs () .\"O returns the same information about an open file referenced by descriptor .\"O .IR fd . .BR fstatvfs () -¤Ï¡¢¥Ç¥£¥¹¥¯¥ê¥×¥¿ +は、ディスクリプタ .I fd -¤Ç»²¾È¤µ¤ì¤ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¡¢Æ±¤¸¾ðÊó¤òÊÖ¤¹¡£ +で参照されるオープンされたファイルについて、同じ情報を返す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, zero is returned. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +成功した場合、0 が返される。 +エラーの場合、\-1 が返されて、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O .RB ( statvfs ()) @@ -167,20 +167,20 @@ POSIX .\"O (See also .\"O .BR path_resolution (7).) .RB ( statvfs () -¤Î¾ì¹ç) +の場合) .I path -¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤Ë¸¡º÷µö²Ä¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤ +のディレクトリ部分に検索許可が与えられていない .RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È)¡£ +も参照すること)。 .TP .B EBADF .\"O .RB ( fstatvfs ()) .\"O .I fd .\"O is not a valid open file descriptor. .RB ( fstatvfs () -¤Î¾ì¹ç) +の場合) .I fd -¤¬Í­¸ú¤Ê¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ +が有効なオープンファイルディスクリプタではない。 .TP .B EFAULT .\"O .I Buf @@ -188,35 +188,35 @@ POSIX .\"O .I path .\"O points to an invalid address. .I buf -¤Þ¤¿¤Ï +または .I path -¤¬Ìµ¸ú¤Ê¥¢¥É¥ì¥¹¤ò»Ø¤·¤Æ¤¤¤ë¡£ +が無効なアドレスを指している。 .TP .B EINTR .\"O This call was interrupted by a signal. -¤³¤Î¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤ÆÃæÃǤµ¤ì¤¿¡£ +この呼び出しがシグナルによって中断された。 .TP .B EIO .\"O An I/O error occurred while reading from the file system. -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤«¤éÆɤ߽Ф·¤Æ¤¤¤ë´Ö¤Ë I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +ファイルシステムから読み出している間に I/O エラーが発生した。 .TP .B ELOOP .\"O .RB ( statvfs ()) .\"O Too many symbolic links were encountered in translating .\"O .IR path . .RB ( statvfs () -¤Î¾ì¹ç) +の場合) .I path -¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬Â¿¤¹¤®¤ë¡£ +にシンボリックリンクが多すぎる。 .TP .B ENAMETOOLONG .\"O .RB ( statvfs ()) .\"O .I path .\"O is too long. .RB ( statvfs () -¤Î¾ì¹ç) +の場合) .I path -¤¬Ä¹¤¹¤®¤ë¡£ +が長すぎる。 .TP .B ENOENT .\"O .RB ( statvfs ()) @@ -224,17 +224,17 @@ POSIX .\"O .I path .\"O does not exist. .RB ( statvfs () -¤Î¾ì¹ç) +の場合) .I path -¤Ç»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ +で参照されるファイルが存在しない。 .TP .B ENOMEM .\"O Insufficient kernel memory was available. -½½Ê¬¤Ê¥«¡¼¥Í¥ë¥á¥â¥ê¤¬»ÈÍѤǤ­¤Ê¤¤¡£ +十分なカーネルメモリが使用できない。 .TP .B ENOSYS .\"O The file system does not support this call. -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¤³¤Î¸Æ¤Ó½Ð¤·¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +ファイルシステムがこの呼び出しをサポートしていない。 .TP .B ENOTDIR .\"O .RB ( statvfs ()) @@ -242,30 +242,30 @@ POSIX .\"O .I path .\"O is not a directory. .RB ( statvfs () -¤Î¾ì¹ç) +の場合) .I path -¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +のディレクトリ部分がディレクトリでない。 .TP .B EOVERFLOW .\"O Some values were too large to be represented in the returned struct. -¤¤¤¯¤Ä¤«¤ÎÃͤϡ¢ÊÖ¤µ¤ì¤ë¹½Â¤ÂΤÇɽ¸½¤¹¤ë¤Ë¤ÏÂ礭¤¹¤®¤ë¡£ +いくつかの値は、返される構造体で表現するには大きすぎる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The Linux kernel has system calls .\"O .BR statfs (2) .\"O and .\"O .BR fstatfs (2) .\"O to support this library call. -Linux ¥«¡¼¥Í¥ë¤Ë¤Ï¡¢¤³¤Î¥é¥¤¥Ö¥é¥ê¥³¡¼¥ë¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¿¤á¤Ë¡¢ +Linux カーネルには、このライブラリコールをサポートするために、 .BR statfs (2), .BR fstatfs (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤¢¤ë¡£ +システムコールがある。 .\"O The current glibc implementations of -¸½ºß¤Î glibc ¤Î¼ÂÁõ¤Ë¤ª¤¤¤Æ¡¢ +現在の glibc の実装において、 .sp .nf pathconf(path, _PC_REC_XFER_ALIGN); @@ -280,13 +280,13 @@ Linux .\"O .I f_bsize .\"O fields of the return value of .\"O .IR "statvfs(path,buf)" . -¤Ï¡¢¤½¤ì¤¾¤ì +は、それぞれ .I "statvfs(path,buf)" -¤ÎÊÖ¤êÃͤΠ+の返り値の .IR f_frsize , .IR f_frsize , .I f_bsize -¥Õ¥£¡¼¥ë¥É¤ò»È¤¦¡£ +フィールドを使う。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR statfs (2) diff --git a/draft/man3/stdarg.3 b/draft/man3/stdarg.3 index 08c15fa5..1031c96e 100644 --- a/draft/man3/stdarg.3 +++ b/draft/man3/stdarg.3 @@ -43,9 +43,9 @@ .\" Updated Tue Oct 16 2001 by Kentaro Shirakata .\" .TH STDARG 3 2001-10-14 "" "Linux Programmer's Manual" -.SH ̾Á° -stdarg, va_start, va_arg, va_end, va_copy \- ¸Ä¿ô¡¦·¿¤¬²ÄÊѤʰú¿ô¥ê¥¹¥È -.SH ½ñ¼° +.SH 名前 +stdarg, va_start, va_arg, va_end, va_copy \- 個数・型が可変な引数リスト +.SH 書式 .B #include .sp .BI "void va_start(va_list " ap ", " last ); @@ -56,7 +56,7 @@ stdarg, va_start, va_arg, va_end, va_copy \- .br .BI "void va_copy(va_list " dest ", va_list " src ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O A function may be called with a varying number of arguments of varying .\"O types. .\"O The include file @@ -65,14 +65,14 @@ stdarg, va_start, va_arg, va_end, va_copy \- .\"O .I va_list .\"O and defines three macros for stepping through a list of arguments whose .\"O number and types are not known to the called function. -´Ø¿ô¤Ï¸Æ¤Ó½Ð¤·¤ËºÝ¤·¤Æ¡¢¸Ä¿ô¤ä·¿¤¬²ÄÊѤʰú¿ô¤ò¤È¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +関数は呼び出しに際して、個数や型が可変な引数をとることができる。 +インクルードファイル .I -¤Ç¤Ï +では .I va_list -·¿¤¬Àë¸À¤µ¤ì¤Æ¤ª¤ê¡¢3 ¤Ä¤Î¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£¤³¤ì¤é¤òÍѤ¤¤ë¤È¡¢ -¸Æ¤Ó½Ð¤µ¤ì¤¿´Ø¿ô¦¤Ç¤Ï¸Ä¿ô¤ä·¿¤òÃΤé¤Ê¤¤°ú¤­¿ô¤Î¥ê¥¹¥È¤ò¡¢½ç¤Ë°ì -¤Ä¤Å¤ÄÆɤ߹þ¤à¤³¤È¤¬¤Ç¤­¤ë¡£ +型が宣言されており、3 つのマクロが定義されている。これらを用いると、 +呼び出された関数側では個数や型を知らない引き数のリストを、順に一 +つづつ読み込むことができる。 .PP .\"O The called function must declare an object of type .\"O .I va_list @@ -81,13 +81,13 @@ stdarg, va_start, va_arg, va_end, va_copy \- .\"O .BR va_arg (), .\"O and .\"O .BR va_end (). -¸Æ¤Ó½Ð¤µ¤ì¤ë´Ø¿ô¤Ç¤Ï¡¢ +呼び出される関数では、 .I va_list -·¿¤Î¥ª¥Ö¥¸¥§¥¯¥È¤¬Àë¸À¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤¬ +型のオブジェクトが宣言されていなければならない。このオブジェクトが .BR va_start (), .BR va_arg (), .BR va_end () -¤Î³Æ¥Þ¥¯¥í¤Ë¤è¤Ã¤Æ°·¤ï¤ì¤ë¡£ +の各マクロによって扱われる。 .SS va_start() .\"O The .\"O .BR va_start () @@ -99,31 +99,31 @@ stdarg, va_start, va_arg, va_end, va_copy \- .\"O .BR va_end (), .\"O and must be called first. .BR va_start () -¥Þ¥¯¥í¤ÏºÇ½é¤Ë¸Æ¤Ó½Ð¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤ì¤Ï +マクロは最初に呼び出さなければならない。これは .I ap -¤ò½é´ü²½¤·¡¢ +を初期化し、 .BR va_arg () -¤È +と .BR va_end () -¤ÇÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ +で用いることができるようにする。 .PP .\"O The argument .\"O .I last .\"O is the name of the last argument before the variable argument list, that is, .\"O the last argument of which the calling function knows the type. -°ú¤­¿ô +引き数 .I last -¤Ï°ú¤­¿ô¥ê¥¹¥È¤Î¤¦¤Á¡¢²ÄÊѤÊÉôʬ¤ÎľÁ°¤ËÃÖ¤«¤ì¤ë°ú¤­¿ô¤Î̾Á°¤Ç¤¢ -¤ë¡£¤Ä¤Þ¤ê¸Æ¤Ó½Ð¤µ¤ì¤¿´Ø¿ô¤¬·¿¤òÃΤäƤ¤¤ëºÇ¸å¤Î°ú¤­¿ô¤Ç¤¢¤ë¡£ +は引き数リストのうち、可変な部分の直前に置かれる引き数の名前であ +る。つまり呼び出された関数が型を知っている最後の引き数である。 .PP .\"O Because the address of this argument may be used in the .\"O .BR va_start () .\"O macro, it should not be declared as a register variable, .\"O or as a function or an array type. -¤³¤Î°ú¤­¿ô¤Ï¥ì¥¸¥¹¥¿ÊÑ¿ô¤ä´Ø¿ô¡¢ÇÛÎó¤È¤·¤Æ -Àë¸À¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£¤³¤Î°ú¤­¿ô¤Î¥¢¥É¥ì¥¹¤¬ +この引き数はレジスタ変数や関数、配列として +宣言してはならない。この引き数のアドレスが .BR va_start () -¥Þ¥¯¥í¤ÇÍѤ¤¤é¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +マクロで用いられるかもしれないからである。 .SS va_arg() .\"O The .\"O .BR va_arg () @@ -137,18 +137,18 @@ stdarg, va_start, va_arg, va_end, va_copy \- .\"O initialized by .\"O .BR va_start (). .BR va_arg () -¥Þ¥¯¥í¤Ï¡¢¸Æ¤Ó½Ð¤·»þ¤Ë»ØÄꤵ¤ì¤¿°ú¤­¿ô¤Î¤¦¤Á¡¢ -¼¡¤Î°ÌÃ֤ˤ¢¤ë¤â¤Î¤ò»ØÄꤷ¤¿·¿ +マクロは、呼び出し時に指定された引き数のうち、 +次の位置にあるものを指定した型 .I type -¤ÎÃͤȤ·¤Æ¼èÆÀ¤¹¤ë¡£ -°ú¤­¿ô +の値として取得する。 +引き数 .I ap -¤Ï +は .I va_list .I ap -¤Ç¡¢ +で、 .BR va_start () -¤Ë¤è¤Ã¤Æ½é´ü²½¤µ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ +によって初期化されている必要がある。 .\"O Each call to .\"O .BR va_arg () .\"O modifies @@ -160,14 +160,14 @@ stdarg, va_start, va_arg, va_end, va_copy \- .\"O has the specified type can be obtained simply by adding a * to .\"O .IR type . .BR va_arg () -¤ò¸Æ¤Ó½Ð¤¹¤´¤È¤Ë +を呼び出すごとに .I ap -¤ÏÊѹ¹¤µ¤ì¡¢¼¡²ó¤Î¸Æ¤Ó½Ð¤·¤ÎºÝ¤Ë¡¢¤µ¤é¤Ë¼¡¤Î°ú¤­¿ô¤òÊÖ¤¹¤è¤¦¤Ë¤Ê¤ë¡£ -°ú¤­¿ô +は変更され、次回の呼び出しの際に、さらに次の引き数を返すようになる。 +引き数 .I type -¤Ï·¿¤Î̾Á°¤Ç¤¢¤ë¡£ +は型の名前である。 .I type -¤ÎÁ°¤Ë * ¤òÉÕ¤±¤ì¤Ð¡¢¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î·¿ÉÕ¤­¥Ý¥¤¥ó¥¿¤¬ÆÀ¤é¤ì¤ë¡£ +の前に * を付ければ、オブジェクトへの型付きポインタが得られる。 .PP .\"O The first use of the .\"O .BR va_arg () @@ -177,20 +177,20 @@ stdarg, va_start, va_arg, va_end, va_copy \- .\"O .IR last . .\"O Successive invocations return the values of the remaining arguments. .BR va_start () -¥Þ¥¯¥í¤Îľ¸å¤Ë +マクロの直後に .BR va_arg () -¤òºÇ½é¤Ë¼Â¹Ô¤¹¤ë¤È¡¢ +を最初に実行すると、 .I last -¤Î¼¡¤Î°ú¤­¿ô¤¬Ê֤롣³¤±¤Æ¼Â¹Ô¤¹¤ë¤È¡¢»Ä¤ê¤Î°ú¤­¿ô¤¬¤½¤ì¤¾¤ìÊ֤롣 +の次の引き数が返る。続けて実行すると、残りの引き数がそれぞれ返る。 .PP .\"O If there is no next argument, or if .\"O .I type .\"O is not compatible with the type of the actual next argument (as promoted .\"O according to the default argument promotions), random errors will occur. -¼¡¤Î°ú¤­¿ô¤¬¤Ê¤«¤Ã¤¿¤ê¡¢ +次の引き数がなかったり、 .I type -¤¬¼¡¤Î°ú¤­¿ô¤Î¼ÂºÝ¤Î·¿¤È¸ß´¹¤Ç¤Ê¤¤¾ì¹ç (¥Ç¥Õ¥©¥ë¥È¤Î°ú¤­¿ôÊÑ´¹¤Ç°· -¤¨¤Ê¤«¤Ã¤¿¾ì¹ç) ¤Ë¤Ï¡¢Í½Â¬¤Ç¤­¤Ê¤¤¥¨¥é¡¼¤¬µ¯¤³¤ë¡£ +が次の引き数の実際の型と互換でない場合 (デフォルトの引き数変換で扱 +えなかった場合) には、予測できないエラーが起こる。 .PP .\"O If .\"O .I ap @@ -200,11 +200,11 @@ stdarg, va_start, va_arg, va_end, va_copy \- .\"O .I ap .\"O is undefined after the return of that function. .I ap -¤¬ +が .BI va_arg( ap , type ) -¤Î·Á¤Ç´Ø¿ô¤ËÅϤµ¤ì¤ë¤È¡¢ +の形で関数に渡されると、 .I ap -¤ÎÃͤϴؿô¤«¤éÊ֤äÆÍ褿¸å¤ÏÉÔÄê¤È¤Ê¤ë¡£ +の値は関数から返って来た後は不定となる。 .SS va_end() .\"O Each invocation of .\"O .BR va_start () @@ -223,34 +223,34 @@ stdarg, va_start, va_arg, va_end, va_copy \- .\"O .BR va_end () .\"O are possible. .BR va_start () -¤¬¼Â¹Ô¤µ¤ì¤ëËè¤Ë¡¢Æ±¤¸´Ø¿ôÆâ¤ÇÂбþ¤¹¤ë +が実行される毎に、同じ関数内で対応する .BR va_end () -¤¬¼Â¹Ô¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +が実行されなければならない。 .BI va_end( ap ) -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¸å¡¢ÊÑ¿ô +が呼び出された後、変数 .I ap -¤ÎÃͤÏÉÔÄê¤È¤Ê¤ë¡£ +の値は不定となる。 .BR va_start () -¤È +と .BR va_end () -¤ÎÁȤò²¿²ó¤âʤ٤ƻȤ¦¤³¤È¤â²Äǽ¤Ç¤¢¤ë¡£ +の組を何回も並べて使うことも可能である。 .\"O .BR va_end () .\"O may be a macro or a function. .BR va_end () -¤Ï¥Þ¥¯¥í¤«¤â¤·¤ì¤Ê¤¤¤·´Ø¿ô¤«¤â¤·¤ì¤Ê¤¤¡£ +はマクロかもしれないし関数かもしれない。 .SS va_copy() .\"O .\" Proposal from clive@demon.net, 1997-02-28 .\"O An obvious implementation would have a .\"O .I va_list .\"O be a pointer to the stack frame of the variadic function. -¤¹¤°Ê¬¤«¤ë +すぐ分かる .I va_list -¤Î¼ÂÁõ¤Ï¡¢variadic ¤Ê´Ø¿ô¤Î¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +の実装は、variadic な関数のスタックフレームのポインタである。 .\"argrath: variadic? .\"O In such a setup (by far the most common) there seems .\"O nothing against an assignment -¤³¤Î¤è¤¦¤Ê¾ì¹ç(¤Û¤È¤ó¤É¤Ï¤½¤¦¤Ç¤¢¤ë)¡¢ -ñ¤Ë°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¤¤¤¤¤è¤¦¤Ë»×¤¨¤ë¡£ +このような場合(ほとんどはそうである)、 +単に以下のようにすればいいように思える。 .in +4n .nf @@ -260,8 +260,8 @@ va_list aq = ap; .in .\"O Unfortunately, there are also systems that make it an .\"O array of pointers (of length 1), and there one needs -»ÄÇ°¤Ê¤¬¤é¡¢(Ťµ 1¤Î)¥Ý¥¤¥ó¥¿¤ÎÇÛÎó¤È¤·¤Æ°·¤¦¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ -¤½¤Î¤è¤¦¤Ê¾ì¹ç¡¢°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ëɬÍפ¬¤¢¤ë¡£ +残念ながら、(長さ 1の)ポインタの配列として扱うシステムもある。 +そのような場合、以下のようにする必要がある。 .in +4n .nf @@ -280,22 +280,22 @@ va_list aq; .\"O Now .\"O .BR va_end () .\"O can free the allocated memory again. -ºÇ¸å¤Ë¡¢°ú¤­¿ô¤ò¥ì¥¸¥¹¥¿¤ÇÅϤ¹¥·¥¹¥Æ¥à¤Î¾ì¹ç¡¢ +最後に、引き数をレジスタで渡すシステムの場合、 .BR va_start () -¤Ç¥á¥â¥ê¤ò³ä¤êÅö¤Æ¡¢°ú¤­¿ô¤ò³ÊǼ¤·¡¢ -¼¡¤Î°ú¤­¿ô¤¬¤É¤ì¤«¤ò»Ø¤·¼¨¤¹¤è¤¦¤Ë¤¹¤ëɬÍפ¬¤¢¤ë¡£ -¤½¤·¤Æ +でメモリを割り当て、引き数を格納し、 +次の引き数がどれかを指し示すようにする必要がある。 +そして .BR va_arg () -¤Ç¥ê¥¹¥È¤ò½çÈ֤ˤ¿¤É¤ê¡¢ +でリストを順番にたどり、 .BR va_end () -¤Ç³ä¤êÅö¤Æ¤¿¥á¥â¥ê¤ò³«Êü¤¹¤ë¡£ +で割り当てたメモリを開放する。 .\"O To accommodate this situation, C99 adds a macro .\"O .BR va_copy (), .\"O so that the above assignment can be replaced by -¤³¤Î¤è¤¦¤Ê¾õ¶·¤ËÂбþ¤¹¤ë¤¿¤á¡¢C99 ¤Ç¤Ï +このような状況に対応するため、C99 では .BR va_copy () -¥Þ¥¯¥í¤òÄɲä·¡¢ -Á°½Ò¤Î¤è¤¦¤Ê³ä¤êÅö¤Æ¤Ï°Ê²¼¤Î¤è¤¦¤ËÃÖ¤­´¹¤¨¤é¤ì¤ë¤è¤¦¤Ë¤·¤¿¡£ +マクロを追加し、 +前述のような割り当ては以下のように置き換えられるようにした。 .in +4n .nf @@ -313,45 +313,45 @@ va_end(aq); .\"O .BR va_end () .\"O in the same function. .BR va_copy () -¤¬¼Â¹Ô¤µ¤ì¤ë¤´¤È¤Ë¡¢ -Âбþ¤¹¤ë +が実行されるごとに、 +対応する .BR va_end () -¤òƱ¤¸´Ø¿ôÆâ¤Ç¼Â¹Ô¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を同じ関数内で実行しなければならない。 .\"O Some systems that do not supply .\"O .BR va_copy () .\"O have .\"O .B __va_copy .\"O instead, since that was the name used in the draft proposal. -¤³¤Î̾Á°¤Ï¤Þ¤À draft proposal ¤Ê¤Î¤Ç¡¢ +この名前はまだ draft proposal なので、 .BR va_copy () -¤ÎÂå¤ï¤ê¤Ë +の代わりに .B __va_copy -¤òÍѤ¤¤ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ -.SH ½àµò +を用いるシステムもある。 +.SH 準拠 .BR va_start (), .BR va_arg (), .BR va_end () -¥Þ¥¯¥í¤Ï C89 ½àµò¤Ç¤¢¤ë¡£ +マクロは C89 準拠である。 .\"O C99 defines the .\"O .BR va_copy () .\"O macro. .BR va_copy () -¤Ï C99 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +は C99 で定義されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O These macros are .\"O .I not .\"O compatible with the historic macros they replace. .\"O A backward-compatible version can be found in the include file .\"O .IR . -¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ï¡¢°ÊÁ°¤«¤éÍѤ¤¤é¤ì¤Æ¤­¤¿Æ±Åù¤Î¥Þ¥¯¥í·²¤È -¸ß´¹¤Ç¤Ï\fI¤Ê¤¤\fP¡£²áµî¤Î¤â¤Î¤È¸ß´¹¤Ê¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢ -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +これらのマクロは、以前から用いられてきた同等のマクロ群と +互換では\fIない\fP。過去のものと互換なバージョンは、 +インクルードファイル .I -¤Ë¸ºß¤¹¤ë¡£ +に存在する。 .PP .\"O The historic setup is: -Îò»ËŪ¤Ê¥»¥Ã¥È¥¢¥Ã¥×¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¢¤ë¡£ +歴史的なセットアップは以下のとおりである。 .in +4n .nf @@ -381,12 +381,12 @@ foo(va_alist) .\"O so that both macros must occur in the same function, and in a way .\"O that allows this. .I va_start -¥Þ¥¯¥í¤Ë \(aq}\(aq ¤ò´Þ¤ß¡¢ +マクロに \(aq}\(aq を含み、 .I va_end -¥Þ¥¯¥í¤ËÂбþ¤¹¤ë \(aq{\(aq ¤ò´Þ¤à¥·¥¹¥Æ¥à¤â¤¢¤ë¤Î¤Ç¡¢ -¤³¤ÎÆó¤Ä¤Î¥Þ¥¯¥í¤ÏƱ¤¸´Ø¿ô¤Ë¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +マクロに対応する \(aq{\(aq を含むシステムもあるので、 +この二つのマクロは同じ関数になければならない。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Unlike the .\"O .B varargs .\"O macros, the @@ -403,25 +403,25 @@ foo(va_alist) .\"O argument, such as .\"O .BR vfprintf (3). .B varargs -¥Þ¥¯¥í¤È¤Ï°Û¤Ê¤ê¡¢ +マクロとは異なり、 .B stdarg -¥Þ¥¯¥í¤Ç¤Ï¸ÇÄê°ú¤­¿ô¤Ê¤·¤Ç´Ø¿ô¤ò»ØÄꤹ¤ë¤³¤È¤¬µö¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤³¤ì¤Ï +マクロでは固定引き数なしで関数を指定することが許されていない。 +これは .B varargs -¥Ù¡¼¥¹¤Î¥³¡¼¥É¤ò +ベースのコードを .B stdarg -¤Î¥³¡¼¥É¤Ë½ñ¤­´¹¤¨¤ë¤È¤­¤Ë¡¢ÌÌÅݤʺî¶È¤Î¤â¤È¤Ë¤Ê¤ë¡£ -¤Þ¤¿¡¢¤¹¤Ù¤Æ¤Î°ú¤­¿ô¤ò +のコードに書き換えるときに、面倒な作業のもとになる。 +また、すべての引き数を .I va_list -¤È¤·¤Æ²ÄÊѸĻØÄꤷ¤¿¤¤¤è¤¦¤Ê¾ì¹ç +として可変個指定したいような場合 .RB ( vfprintf (3) -¤Ê¤É) ¤Ë¤â¾ã³²¤È¤Ê¤ë¡£ +など) にも障害となる。 .\"O .SH EXAMPLE -.SH Îã -´Ø¿ô +.SH 例 +関数 .I foo -¤Ï½ñ¼°Ê¸»ú¤«¤é¤Ê¤ëʸ»úÎó¤ò¼õ¤±Æþ¤ì¡¢¤½¤Î½ñ¼°Ê¸»ú¤ËÂбþ¤¹¤ë·¿¤Ç²ÄÊѸĤΠ-°ú¤­¿ô¤òÆɤ߹þ¤ß¡¢°õ»ú¤¹¤ë¡£ +は書式文字からなる文字列を受け入れ、その書式文字に対応する型で可変個の +引き数を読み込み、印字する。 .nf #include diff --git a/draft/man3/stdin.3 b/draft/man3/stdin.3 index eefa2585..ac0911be 100644 --- a/draft/man3/stdin.3 +++ b/draft/man3/stdin.3 @@ -13,10 +13,10 @@ .TH STDIN 3 2008-07-14 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O stdin, stdout, stderr \- standard I/O streams -.SH ̾Á° -stdin, stdout, stderr \- ɸ½àÆþ½ÐÎÏ¥¹¥È¥ê¡¼¥à +.SH 名前 +stdin, stdout, stderr \- 標準入出力ストリーム .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include @@ -25,7 +25,7 @@ stdin, stdout, stderr \- ɸ .BI "extern FILE *" stderr ; .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Under normal circumstances every UNIX program has three streams opened .\"O for it when it starts up, one for input, one for output, and one for .\"O printing diagnostic or error messages. @@ -36,14 +36,14 @@ stdin, stdout, stderr \- ɸ .\"O the parent process chose to set up. .\"O (See also the "Redirection" section of .\"O .BR sh (1).) -ɸ½à¤Î´Ä¶­¤Ç¤Ï¡¢ UNIX ¥×¥í¥°¥é¥à¤Ïµ¯Æ°»þ¤Ë¡¢¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥¹¥È¥ê¡¼ -¥à¤ò 3 ¤ÄÍ¿¤¨¤é¤ì¤ë¡£¤½¤ì¤¾¤ìÆþÎÏÍÑ¡¢½ÐÎÏÍÑ¡¢¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤ä¥¨¥é¡¼¥á¥Ã -¥»¡¼¥¸¤Îɽ¼¨ÍѤΤâ¤Î¤Ç¤¢¤ë¡£¤³¤ì¤é¤ÏÄ̾ï¥æ¡¼¥¶¤ÎüËö +標準の環境では、 UNIX プログラムは起動時に、オープンされているストリー +ムを 3 つ与えられる。それぞれ入力用、出力用、診断メッセージやエラーメッ +セージの表示用のものである。これらは通常ユーザの端末 .RB ( tty (4) -¤ò¸«¤è) ¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢¿Æ¥×¥í¥»¥¹¤Ç¤ÎÁªÂò¡¦ÀßÄê¤Ë¤è¤Ã¤Æ¥Õ¥¡¥¤¥ë -¤ä¾¤Î¥Ç¥Ð¥¤¥¹¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ë¤³¤È¤â¤¢¤ë +を見よ) に接続されているが、親プロセスでの選択・設定によってファイル +や他のデバイスに関連づけられていることもある .RB ( sh (1) -¤Î¡Ö¥ê¥À¥¤¥ì¥¯¥·¥ç¥ó¡×¥»¥¯¥·¥ç¥ó¤â»²¾È¤Î¤³¤È)¡£ +の「リダイレクション」セクションも参照のこと)。 .PP .\"O The input stream is referred to as "standard input"; the output stream is .\"O referred to as "standard output"; and the error stream is referred to @@ -54,14 +54,14 @@ stdin, stdout, stderr \- ɸ .\"O .IR stdout , .\"O and .\"O .IR stderr . -ÆþÎÏ¥¹¥È¥ê¡¼¥à¤Ï "standard input" ¤È¸Æ¤Ð¤ì¤ë¡£½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Ï -"standard output"¡¢¥¨¥é¡¼¥¹¥È¥ê¡¼¥à¤Ï "standard error" ¤È¸Æ¤Ð¤ì¤ë¡£ -¤³¤ì¤é¤ÎÍѸì¤òû½Ì¤·¤¿¤â¤Î¤¬¤½¤ì¤¾¤ì¤Î¥Õ¥¡¥¤¥ë¤ò¼¨¤¹¥·¥ó¥Ü¥ë¤È¤Ê¤ë¡£¤Ä -¤Þ¤ê +入力ストリームは "standard input" と呼ばれる。出力ストリームは +"standard output"、エラーストリームは "standard error" と呼ばれる。 +これらの用語を短縮したものがそれぞれのファイルを示すシンボルとなる。つ +まり .IR stdin , .IR stdout , .I stderr -¤Ç¤¢¤ë¡£ +である。 .PP .\"O Each of these symbols is a .\"O .BR stdio (3) @@ -69,13 +69,13 @@ stdin, stdout, stderr \- ɸ .\"O .BR fprintf (3) .\"O or .\"O .BR fread (3). -¤³¤ì¤é¤Î¥·¥ó¥Ü¥ë¤Ï +これらのシンボルは .BR stdio (3) -¤Î¥Þ¥¯¥í¤Ç¡¢ FILE ¤Ø¤Î¥Ý¥¤¥ó¥¿·¿¤Ç¤¢¤ë¡£¤·¤¿¤¬¤Ã¤Æ +のマクロで、 FILE へのポインタ型である。したがって .BR fprintf (3) -¤ä +や .BR fread (3) -¤Ê¤É¤Î´Ø¿ô¤È¤È¤â¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +などの関数とともに用いることができる。 .PP .\"O Since .\"O .IR FILE s @@ -86,13 +86,13 @@ stdin, stdout, stderr \- ɸ .\"O and .\"O .BR lseek (2). .I FILE -¤Ï UNIX ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¥Ð¥Ã¥Õ¥¡µ¡Ç½¤òÄɲä·¤¿¥é¥Ã¥Ñ¡¼ -¤Ç¤¢¤ë¤«¤é¡¢¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ë¤âÂбþ¤¹¤ë¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¡¢ UNIX ¤Î raw ¥Õ¥¡ -¥¤¥ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹ +は UNIX のファイルディスクリプタにバッファ機能を追加したラッパー +であるから、これらのマクロにも対応するファイルがあり、 UNIX の raw ファ +イルインタフェース .RB ( read (2) -¤ä +や .BR lseek (2) -¤Ê¤É) ¤Ë¤è¤Ã¤Æ¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +など) によってアクセスすることもできる。 .PP .\"O On program startup, the integer file descriptors .\"O associated with the streams @@ -112,24 +112,24 @@ stdin, stdout, stderr \- ɸ .\"O .BR freopen (3) .\"O to one of these streams can change the file descriptor number .\"O associated with the stream.) -¥×¥í¥°¥é¥à¤Îµ¯Æ°»þ¤Ë¤Ï¡¢ -¥¹¥È¥ê¡¼¥à +プログラムの起動時には、 +ストリーム .IR stdin , .IR stdout , .I stderr -¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÈÖ¹æ¤Ï¡¢ -¤½¤ì¤¾¤ì 0, 1, 2 ¤Ç¤¢¤ë¡£ -¥×¥ê¥×¥í¥»¥Ã¥µ¥·¥ó¥Ü¥ë +に結びつけられているファイルディスクリプタの番号は、 +それぞれ 0, 1, 2 である。 +プリプロセッサシンボル .BR STDIN_FILENO , .BR STDOUT_FILENO , .B STDERR_FILENO -¤Ï +は .I -Ãæ¤Ç¤½¤ì¤¾¤ì¤³¤ì¤é¤ÎÃͤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -(¤³¤ì¤é¤Î¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ +中でそれぞれこれらの値に定義されている。 +(これらのストリームに対して .BR freopen (3) -¤òŬÍѤ¹¤ë¤³¤È¤Ç¡¢¤½¤Î¥¹¥È¥ê¡¼¥à¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ -¤ÎÈÖ¹æ¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£) +を適用することで、そのストリームに関連付けられたファイルディスクリプタ +の番号を変更することができる。) .PP .\"O Note that mixing use of .\"O .IR FILE s @@ -144,15 +144,15 @@ stdin, stdout, stderr \- ɸ .\"O the child inherits all open file descriptors, but all old streams .\"O have become inaccessible. .I FILE -¤È raw ¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÊ»ÍѤϡ¢Í½´ü¤Ç¤­¤Ê¤¤·ë²Ì¤òÀ¸¤¸ -¤ë¤³¤È¤¬¤¢¤ë¤Î¤Ç¡¢Ä̾ï¤ÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ (¥Þ¥¾¥Ò¥¹¥Æ¥£¥Ã¥¯¤Ê¿Í¤Ë: -POSIX.1 ¤Î¥»¥¯¥·¥ç¥ó 8.2.3 ¤Ë¤Ï¡¢¤³¤Îº®ÍѤÇÆ°ºî¤¬¤É¤Î¤è¤¦¤Ë¤Ê¤ê¤½¤¦ -¤«¤¬¾Ü¤·¤¯µ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£) -°ìÈÌŪ¤Ê¥ë¡¼¥ë¤Ï°Ê²¼¤ÎÄ̤ê: ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ -°·¤ï¤ì¡¢ stdio ¤Ïñ¤Ë¥é¥¤¥Ö¥é¥ê¤Ë¤è¤Ã¤Æ°·¤ï¤ì¤ë¤Î¤Ç¤¢¤ë¡£¤¹¤Ê¤ï¤ÁÎ㤨¤Ð +と raw なファイルディスクリプタの併用は、予期できない結果を生じ +ることがあるので、通常は避けるべきである。 (マゾヒスティックな人に: +POSIX.1 のセクション 8.2.3 には、この混用で動作がどのようになりそう +かが詳しく記述されている。) +一般的なルールは以下の通り: ファイルディスクリプタはカーネルによって +扱われ、 stdio は単にライブラリによって扱われるのである。すなわち例えば .BR exec (3) -¤Î¸å¤Ë¤Ï¡¢»Ò¥×¥í¥»¥¹¤Ï¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ -¤ò¤¹¤Ù¤Æ·Ñ¾µ¤¹¤ë¤¬¡¢¿Æ¤«¤é¤Î¥¹¥È¥ê¡¼¥à¤Ï¤¹¤Ù¤Æ¥¢¥¯¥»¥¹ÉԲĤȤʤ롣 +の後には、子プロセスはオープンされているファイルディスクリプタ +をすべて継承するが、親からのストリームはすべてアクセス不可となる。 .PP .\"O Since the symbols .\"O .IR stdin , @@ -171,24 +171,24 @@ POSIX.1 .\"O The standard streams are closed by a call to .\"O .BR exit (3) .\"O and by normal program termination. -¥·¥ó¥Ü¥ë +シンボル .IR stdin , .IR stdout , .I stderr -¤Ï¤¹¤Ù¤Æ¥Þ¥¯¥í¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¤³¤ì¤é¤Ø¤ÎÂåÆþ -¤Ï°Ü¿¢À­¤òÊݾڤµ¤ì¤Ê¤¤¡£É¸½à¥¹¥È¥ê¡¼¥à¤Ï¥é¥¤¥Ö¥é¥ê´Ø¿ô +はすべてマクロとして定義されているので、これらへの代入 +は移植性を保証されない。標準ストリームはライブラリ関数 .BR freopen (3) -¤òÍѤ¤¤ì¤Ð¡¢Ê̤Υե¡¥¤¥ë¤ò¼¨¤¹¤è¤¦¤ËÊѹ¹¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¤³¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ï +を用いれば、別のファイルを示すように変更することもできる。 +このライブラリ関数は .IR stdin , .IR stdout , .I stderr -¤ÎºÆ³ä¤êÅö¤Æ¤¬²Äǽ¤Ê¤è¤¦¤ËÆÃÊ̤ËƳÆþ¤µ¤ì¤¿¤â¤Î¤Ç¤¢¤ë¡£ -ɸ½à¥¹¥È¥ê¡¼¥à¤Ï +の再割り当てが可能なように特別に導入されたものである。 +標準ストリームは .BR exit (3) -¤Î¸Æ¤Ó½Ð¤·¤È¡¢¥×¥í¥°¥é¥à¤ÎÀµ¾ï½ªÎ»¤Ë¤è¤Ã¤Æ¥¯¥í¡¼¥º¤µ¤ì¤ë¡£ +の呼び出しと、プログラムの正常終了によってクローズされる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The .\"O .IR stdin , .\"O .IR stdout , @@ -200,11 +200,11 @@ POSIX.1 .IR stdin , .IR stdout , .I stderr -¥Þ¥¯¥í¤Ï C89 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ -¤Þ¤¿ C89 ¤Ç¤Ï¡¢¤³¤ì¤é 3 ¤Ä¤Î¥¹¥È¥ê¡¼¥à¤¬¥×¥í¥°¥é¥à -¤Îµ¯Æ°»þ¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¤Ù¤­¤Ç¤¢¤ë¤³¤È¤¬µ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +マクロは C89 に準拠している。 +また C89 では、これら 3 つのストリームがプログラム +の起動時にオープンされているべきであることが規定されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The stream .\"O .I stderr .\"O is unbuffered. @@ -220,27 +220,27 @@ POSIX.1 .\"O This can produce unexpected .\"O results, especially with debugging output. .I stderr -¥¹¥È¥ê¡¼¥à¤Ï¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +ストリームはバッファリングされていない。 .I stdout -¥¹¥È¥ê¡¼¥à¤Ï¡¢Ã¼Ëö¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ë¤Ï¹Ôñ°Ì¤Ç¥Ð¥Ã¥Õ¥¡¥ê¥ó¥° -¤µ¤ì¤Æ¤¤¤ë¡£°ì¹Ô¤ËËþ¤¿¤Ê¤¤ÆâÍƤϡ¢ +ストリームは、端末に接続されているときには行単位でバッファリング +されている。一行に満たない内容は、 .BR fflush (3) -¤« +か .BR exit (3) -¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤«¡¢²þ¹Ôʸ»ú¤¬°õ»ú¤µ¤ì¤ë¤Þ¤Çɽ¼¨¤µ¤ì¤Ê¤¤¡£¤³¤ì¤Ï¡¢ -Æä˥ǥХå°»þ¤Ë¤ª¤¤¤Æ¡¢Í½´ü¤·¤Ê¤¤·ë²Ì¤òÀ¸¤¸¤ë¸¶°ø¤È¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +が呼び出されるか、改行文字が印字されるまで表示されない。これは、 +特にデバッグ時において、予期しない結果を生じる原因となるかもしれない。 .\"O The buffering mode of the standard streams (or any other stream) .\"O can be changed using the .\"O .BR setbuf (3) .\"O or .\"O .BR setvbuf (3) .\"O call. -ɸ½à¥¹¥È¥ê¡¼¥à¤Î (¤¢¤ë¤¤¤Ï¾¤Î¤¹¤Ù¤Æ¤Î¥¹¥È¥ê¡¼¥à¤Î) -¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¥â¡¼¥É¤Ï¡¢ +標準ストリームの (あるいは他のすべてのストリームの) +バッファリングモードは、 .BR setbuf (3) -¤Þ¤¿¤Ï +または .BR setvbuf (3) -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ë¤è¤Ã¤ÆÊѹ¹¤Ç¤­¤ë¡£ +を呼び出すことによって変更できる。 .\"O Note that in case .\"O .I stdin .\"O is associated with a terminal, there may also be input buffering @@ -252,20 +252,20 @@ POSIX.1 .\"O .BR stty (1), .\"O and .\"O .BR termios (3). -¤¿¤À¤·¡¢ +ただし、 .I stdin -¤¬Ã¼Ëö¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ï¡¢Ã¼Ëö¤Î¥É¥é¥¤¥Ð¤Ç¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤Æ¤¤¤ë -²ÄǽÀ­¤¬¤¢¤ëÅÀ¤Ë¤âÃí°Õ¤¹¤ë¤³¤È¡£¤³¤ì¤Ï stdio ¤Î¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤È¤ÏÁ´¤¯ -´Ø·¸¤Ê¤¯Â¸ºß¤·¤¦¤ë¡£ (¼ÂºÝ¡¢Ä̾ï¤À¤ÈüËöÆþÎϤϥ«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ¹Ôñ°Ì -¤Ç¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤Æ¤¤¤ë¡£) ¤³¤Î¥«¡¼¥Í¥ë¤Ë¤è¤ëÆþÎϤΰ·¤¤¤Ï +が端末に接続されているときは、端末のドライバでバッファリングされている +可能性がある点にも注意すること。これは stdio のバッファリングとは全く +関係なく存在しうる。 (実際、通常だと端末入力はカーネルによって行単位 +でバッファリングされている。) このカーネルによる入力の扱いは .BR tcsetattr (3) -¤Ê¤É¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤ÆÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +などの呼び出しによって変更することができる。 .BR stty (1) -¤È +と .BR termios (3) -¤â»²¾È¤¹¤ë¤³¤È¡£ +も参照すること。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR csh (1), .BR sh (1), .BR open (2), diff --git a/draft/man3/stdio.3 b/draft/man3/stdio.3 index 9f3c49b2..5b4999ad 100644 --- a/draft/man3/stdio.3 +++ b/draft/man3/stdio.3 @@ -44,16 +44,16 @@ .\" by Yuichi SATO .\" Updated & Modified Sat Jan 17 03:18:29 JST 2004 by Yuichi SATO .\" -.\"WORD: position indicator °ÌÃֻؼ¨»Ò -.\"WORD: positioning requests °ÌÃÖ»ØÄê¥ê¥¯¥¨¥¹¥È +.\"WORD: position indicator 位置指示子 +.\"WORD: positioning requests 位置指定リクエスト .\" .TH STDIO 3 2001-12-26 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O stdio \- standard input/output library functions -stdio \- ɸ½àÆþ½ÐÎϥ饤¥Ö¥é¥ê´Ø¿ô +stdio \- 標準入出力ライブラリ関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "FILE *" stdin ; @@ -62,19 +62,19 @@ stdio \- ɸ .br .BI "FILE *" stderr ; .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The standard I/O library provides a simple and efficient buffered stream .\"O I/O interface. -ɸ½àÆþ½ÐÎϥ饤¥Ö¥é¥ê¤Ï¡¢´Êñ¤«¤Ä¸ú²Ì¤Î¤è¤¤¡¢ -¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤¿¥¹¥È¥ê¡¼¥àÆþ½ÐÎÏ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÄ󶡤¹¤ë¡£ +標準入出力ライブラリは、簡単かつ効果のよい、 +バッファリングされたストリーム入出力インターフェースを提供する。 .\"O Input and output is mapped into logical data streams and the .\"O physical I/O characteristics are concealed. -ÆþÎϤȽÐÎϤÏÏÀÍý¥Ç¡¼¥¿¥¹¥È¥ê¡¼¥à¤Ë³ä¤êÉÕ¤±¤é¤ì¡¢ -Æþ½ÐÎϤÎʪÍýŪ¤ÊÆÃħ¤Ï±£Ê䵤ì¤ë¡£ +入力と出力は論理データストリームに割り付けられ、 +入出力の物理的な特徴は隠蔽される。 .\"O The functions and macros are .\"O listed below; more information is available from the individual man pages. -¤³¤Î¥é¥¤¥Ö¥é¥ê¤Ë°¤¹¤ë´Ø¿ô¤È¥Þ¥¯¥í¤ò°Ê²¼¤Ëµó¤²¤ë¡£ -¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï¸Ä¡¹¤Î man ¥Ú¡¼¥¸¤«¤éÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +このライブラリに属する関数とマクロを以下に挙げる。 +より詳しい情報は個々の man ページから得ることができる。 .PP .\"O A stream is associated with an external file (which may be a physical .\"O device) by @@ -82,32 +82,32 @@ stdio \- ɸ .\"O a file, which may involve creating a new file. .\"O Creating an existing file .\"O causes its former contents to be discarded. -¥Õ¥¡¥¤¥ë¤ò -.I ¥ª¡¼¥×¥ó (open) ¤¹¤ë -¤³¤È¤Ë¤è¤Ã¤Æ¡¢ -¥¹¥È¥ê¡¼¥à¤Ï³°Éô¥Õ¥¡¥¤¥ë (Ä̾ï¤ÏʪÍý¥Ç¥Ð¥¤¥¹) ¤ËÏ¢·ë¤µ¤ì¤ë¡£ -¤³¤ÎÁàºî¤Ë¤Ï¿·¤·¤¯¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¤³¤È¤â´Þ¤Þ¤ì¤ë¡£ -´û¸¤Î¥Õ¥¡¥¤¥ë¤ÈƱ¤¸Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤ò¿·¤¿¤Ëºî¤ë¤È¡¢ -¤â¤È¤Î¥Õ¥¡¥¤¥ë¤ÎÃæ¿È¤¬¼Î¤Æ¤é¤ì¤Æ¤·¤Þ¤¦¡£ +ファイルを +.I オープン (open) する +ことによって、 +ストリームは外部ファイル (通常は物理デバイス) に連結される。 +この操作には新しくファイルを作成することも含まれる。 +既存のファイルと同じ名前のファイルを新たに作ると、 +もとのファイルの中身が捨てられてしまう。 .\"O If a file can support .\"O positioning requests (such as a disk file, as opposed to a terminal) then a .\"O .I file position indicator .\"O associated with the stream is positioned at the start of the file (byte .\"O zero), unless the file is opened with append mode. -¥Õ¥¡¥¤¥ë¤¬°ÌÃÖ»ØÄê¥ê¥¯¥¨¥¹¥È¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë -(¥Ç¥£¥¹¥¯¥Õ¥¡¥¤¥ë¤Ê¤É¤¬ÁêÅö¤¹¤ë¡£µÕ¤ÎÎã¤È¤·¤Æ¤ÏüËö¤¬µó¤²¤é¤ì¤ë) ¾ì¹ç¡¢ -¤½¤Î¥¹¥È¥ê¡¼¥à¤ËÏ¢·ë¤µ¤ì¤¿ -.I ¥Õ¥¡¥¤¥ë°ÌÃֻؼ¨»Ò (file position indicator) -¤Ï¡¢Äɲå⡼¥É¤Ç³«¤«¤ì¤Ê¤¤¸Â¤ê¥Õ¥¡¥¤¥ë¤ÎÀèƬ (0 ¥Ð¥¤¥ÈÌÜ) ¤Ë°ÌÃÖ¤¹¤ë¡£ +ファイルが位置指定リクエストをサポートしている +(ディスクファイルなどが相当する。逆の例としては端末が挙げられる) 場合、 +そのストリームに連結された +.I ファイル位置指示子 (file position indicator) +は、追加モードで開かれない限りファイルの先頭 (0 バイト目) に位置する。 .\"O If append mode is used, .\"O it is unspecified whether the position indicator will be placed at the .\"O start or the end of the file. -Äɲå⡼¥É¤ò»ÈÍѤ·¤¿¾ì¹ç¡¢ -°ÌÃֻؼ¨»Ò¤ò¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤ËÃÖ¤«¤ì¤ë¤«ËöÈø¤ËÃÖ¤«¤ì¤ë¤«¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +追加モードを使用した場合、 +位置指示子をファイルの先頭に置かれるか末尾に置かれるかは規定されていない。 .\"O The position indicator is maintained by .\"O subsequent reads, writes and positioning requests. -°ÌÃֻؼ¨»Ò¤Ï¡¢ -°Ê¹ß¤ÎÆɤ߽ñ¤­¤ä°ÌÃÖ»ØÄê¥ê¥¯¥¨¥¹¥È¤Ë¤è¤Ã¤ÆÊѹ¹¤µ¤ì¤ë¡£ +位置指示子は、 +以降の読み書きや位置指定リクエストによって変更される。 .\"O All input occurs .\"O as if the characters were read by successive calls to the .\"O .BR fgetc (3) @@ -115,57 +115,57 @@ stdio \- ɸ .\"O successive calls to the .\"O .BR fputc (3) .\"O function. -¤¹¤Ù¤Æ¤ÎÆþÎϤϡ¢ +すべての入力は、 .BR fgetc (3) -´Ø¿ô¤ò¼¡¡¹¤Ë¸Æ¤Ó½Ð¤·¤Æʸ»ú¤òÆɤ߹þ¤ó¤À¤«¤Î¤è¤¦¤Ë¹Ô¤ï¤ì¤ë¡£ -°ìÊý¤¹¤Ù¤Æ¤Î½ÐÎϤϡ¢ +関数を次々に呼び出して文字を読み込んだかのように行われる。 +一方すべての出力は、 .BR fputc (3) -´Ø¿ô¤ò¼¡¡¹¤Ë¸Æ¤Ó½Ð¤·¤Æʸ»ú¤ò½ñ¤­¹þ¤ó¤À¤«¤Î¤è¤¦¤Ë¹Ô¤ï¤ì¤ë¡£ +関数を次々に呼び出して文字を書き込んだかのように行われる。 .PP .\"O A file is disassociated from a stream by .\"O .I closing .\"O the file. -¥Õ¥¡¥¤¥ë¤ò -.I ¥¯¥í¡¼¥º (close) ¤¹¤ë -¤³¤È¤Ë¤è¤Ã¤Æ¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤Ï¥¹¥È¥ê¡¼¥à¤«¤éÀÚ¤êÎ¥¤µ¤ì¤ë¡£ +ファイルを +.I クローズ (close) する +ことによって、そのファイルはストリームから切り離される。 .\"O Output streams are flushed (any unwritten buffer contents are .\"O transferred to the host environment) before the stream is disassociated from .\"O the file. -½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Ï¡¢¤½¤Î¥¹¥È¥ê¡¼¥à¤¬¥Õ¥¡¥¤¥ë¤«¤éÀÚ¤êÎ¥¤µ¤ì¤ëÁ°¤Ë¥Õ¥é¥Ã¥·¥å¤µ¤ì¤ë -(½ñ¤­¹þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¤¹¤Ù¤Æ¤Î¥Ð¥Ã¥Õ¥¡¤ÎÆâÍƤ¬¥Û¥¹¥È´Ä¶­¤ËžÁ÷¤µ¤ì¤ë)¡£ +出力ストリームは、そのストリームがファイルから切り離される前にフラッシュされる +(書き込まれていないすべてのバッファの内容がホスト環境に転送される)。 .\"O The value of a pointer to a .\"O .I FILE .\"O object is indeterminate after a file is closed (garbage). .I FILE -¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤ÎÃͤϡ¢ -¥Õ¥¡¥¤¥ë¤òÊĤ¸¤¿¸å¤Ç¤ÏÉÔ³ÎÄê¤Ë¤Ê¤ë (¥´¥ß¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦)¡£ +オブジェクトへのポインタの値は、 +ファイルを閉じた後では不確定になる (ゴミになってしまう)。 .PP .\"O A file may be subsequently reopened, by the same or another program .\"O execution, and its contents reclaimed or modified (if it can be .\"O repositioned at the start). -¥Õ¥¡¥¤¥ë¤Ï¤½¤Î¸å (Ʊ¤¸¤Þ¤¿¤ÏÊÌ¤Î¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤Æ) -ºÆ¤Ó¥ª¡¼¥×¥ó¤µ¤ì¤ë¤³¤È¤â¤¢¤ê¡¢ -¤½¤ÎÆâÍƤ¬½¤Àµ¤µ¤ì¤¿¤êÊѹ¹¤µ¤ì¤¿¤ê¤¹¤ë -(¤½¤Î¥Õ¥¡¥¤¥ë¤ÇÀèƬ¤Ø¤Î°ÌÃÖ°ÜÆ°¤¬²Äǽ¤Ç¤¢¤ì¤Ð)¡£ +ファイルはその後 (同じまたは別のプログラムによって) +再びオープンされることもあり、 +その内容が修正されたり変更されたりする +(そのファイルで先頭への位置移動が可能であれば)。 .\"O If the main function returns to its original caller, or the .\"O .BR exit (3) .\"O function is called, all open files are closed .\"O (hence all output streams are .\"O flushed) before program termination. -main ´Ø¿ô¤¬¤â¤È¤Î¸Æ¤Ó½Ð¤·Â¦¤ËÊ֤俤ꡢ +main 関数がもとの呼び出し側に返ったり、 .BR exit (3) -´Ø¿ô¤¬¸Æ¤Ð¤ì¤¿¾ì¹ç¡¢ -¥×¥í¥°¥é¥à¤Î½ªÎ»¤ÎÁ°¤Ë -¸½ºß³«¤¤¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤ÏÊĤ¸¤é¤ì¤ë -(¤½¤Î·ë²Ì¡¢¤¹¤Ù¤Æ¤Î½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Ï¥Õ¥é¥Ã¥·¥å¤µ¤ì¤ë)¡£ +関数が呼ばれた場合、 +プログラムの終了の前に +現在開いているすべてのファイルは閉じられる +(その結果、すべての出力ストリームはフラッシュされる)。 .\"O Other methods of program termination, .\"O such as .\"O .BR abort (3) .\"O do not bother about closing files properly. -¥×¥í¥°¥é¥à¤ÎÄä»ß¤Ë +プログラムの停止に .BR abort (3) -¤Î¤è¤¦¤Ê¾¤ÎÊýË¡¤òÍѤ¤¤¿¾ì¹ç¤Ë¤Ï¡¢ -¥Õ¥¡¥¤¥ë¤¬Àµ¤·¤¯ÊĤ¸¤é¤ì¤ëÊݾڤϤʤ¤¡£ +のような他の方法を用いた場合には、 +ファイルが正しく閉じられる保証はない。 .PP .\"O At program startup, three text streams are predefined and need not be .\"O opened explicitly: @@ -175,51 +175,51 @@ main .\"O (for writing conventional input), and .\"O .I standard error .\"O (for writing diagnostic output). -¥×¥í¥°¥é¥à¤Îµ¯Æ°»þ¤Ë 3 ¸Ä¤Î¥Æ¥­¥¹¥È¥¹¥È¥ê¡¼¥à¤¬Í½¤áÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ -¤½¤ì¤é¤ÏÌÀ¼¨Åª¤Ë³«¤¯É¬Íפ¬¤Ê¤¤¡£ -.I ɸ½àÆþÎÏ (standard input) -(Ä̾ï¤ÎÆþÎϤòÆɤ߼è¤ë¤Î¤Ë»È¤¦)¡¢ -.I ɸ½à½ÐÎÏ (standard output) -(Ä̾ï¤Î½ÐÎϤò½ñ¤­¹þ¤à¤Î¤Ë»È¤¦)¡¢ -.I ɸ½à¥¨¥é¡¼½ÐÎÏ (standard error) -(¿ÇÃǽÐÎϤò½ñ¤­¹þ¤à¤Î¤Ë»È¤¦) ¤Ç¤¢¤ë¡£ +プログラムの起動時に 3 個のテキストストリームが予め定義されており、 +それらは明示的に開く必要がない。 +.I 標準入力 (standard input) +(通常の入力を読み取るのに使う)、 +.I 標準出力 (standard output) +(通常の出力を書き込むのに使う)、 +.I 標準エラー出力 (standard error) +(診断出力を書き込むのに使う) である。 .\"O These streams are abbreviated .\"O .IR stdin , stdout .\"O and .\"O .IR stderr . -¤³¤ì¤é¤Î¥¹¥È¥ê¡¼¥à¤Ï +これらのストリームは .IR stdin , .IR stdout , .I stderr -¤Èû½Ì¤·¤Æɽ¸½¤µ¤ì¤ë¡£ +と短縮して表現される。 .\"O When opened, the standard error stream is not fully buffered; the standard .\"O input and output streams are fully buffered if and only if the streams do .\"O not to refer to an interactive device. -¥ª¡¼¥×¥ó¤µ¤ì¤¿¤È¤­¤Ë¤Ï¡¢ -ɸ½à¥¨¥é¡¼¥¹¥È¥ê¡¼¥à¤Ï -´°Á´¤Ë¤Ï¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -ɸ½àÆþÎÏ¥¹¥È¥ê¡¼¥à¤Èɸ½à½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Ï¡¢ -¥¹¥È¥ê¡¼¥à¤¬¥¤¥ó¥¿¥é¥¯¥Æ¥£¥Ö¤Ê¥Ç¥Ð¥¤¥¹¤ò»²¾È¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ -´°Á´¤Ë¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤Æ¤¤¤ë¡£ +オープンされたときには、 +標準エラーストリームは +完全にはバッファリングされていない。 +標準入力ストリームと標準出力ストリームは、 +ストリームがインタラクティブなデバイスを参照していなければ、 +完全にバッファリングされている。 .PP .\"O Output streams that refer to terminal devices are always line buffered by .\"O default; pending output to such streams is written automatically whenever .\"O an input stream that refers to a terminal device is read. -üËö¥Ç¥Ð¥¤¥¹¤ò»²¾È¤¹¤ë½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Ï¡¢ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¾ï¤Ë¹Ôñ°Ì¤Ç¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤Æ¤¤¤ë¡£ -¤¿¤À¤·¤½¤Î¤è¤¦¤Ê¥¹¥È¥ê¡¼¥à¤Ë¤ª¤±¤ë¥Ð¥Ã¥Õ¥¡Æâ¤Î½ÐÎϤϡ¢ -üËö¥Ç¥Ð¥¤¥¹¤ò»²¾È¤·¤Æ¤¤¤ëÆþÎÏ¥¹¥È¥ê¡¼¥à¤«¤é¤ÎÆɤ߹þ¤ß¤¬¤¢¤ë¤¿¤Ó¤Ë¡¢ -¼«Æ°Åª¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£ +端末デバイスを参照する出力ストリームは、 +デフォルトでは常に行単位でバッファリングされている。 +ただしそのようなストリームにおけるバッファ内の出力は、 +端末デバイスを参照している入力ストリームからの読み込みがあるたびに、 +自動的に書き込まれる。 .\"O In cases where a .\"O large amount of computation is done after printing part of a line on an .\"O output terminal, it is necessary to .\"O .BR fflush (3) .\"O the standard output before going off and computing so that the output will .\"O appear. -½ÐÎÏüËö¤Ë¹Ô¤Î°ìÉô¤ò½ñ¤­¹þ¤ó¤À¸å¤ÇÂçÎ̤η׻»¤ò¹Ô¤¦¾ì¹ç¡¢ -½ÐÎϤ¬É½¼¨¤µ¤ì¤ë¤è¤¦¤Ë¡¢·×»»¤Ë¼è¤ê¤«¤«¤ëÁ°¤Ëɸ½à½ÐÎϤËÂФ·¤Æ +出力端末に行の一部を書き込んだ後で大量の計算を行う場合、 +出力が表示されるように、計算に取りかかる前に標準出力に対して .BR fflush (3) -¤ò¼Â¹Ô¤¹¤ëɬÍפ¬¤¢¤ë¡£ +を実行する必要がある。 .PP .\"O The .\"O .I stdio @@ -230,23 +230,23 @@ main .\"O and .\"O .BR pc (1). .I stdio -¥é¥¤¥Ö¥é¥ê¤Ï +ライブラリは .B libc -¥é¥¤¥Ö¥é¥ê¤Î°ìÉô¤Ç¤¢¤ê¡¢¥ë¡¼¥Á¥ó¤Ï -¥³¥ó¥Ñ¥¤¥é¡¼ +ライブラリの一部であり、ルーチンは +コンパイラー .BR cc (1) -¤È +と .BR pc (1) -¤Ë¤è¤Ã¤ÆɬÍפʻþ¤Ë¼«Æ°Åª¤ËÆɤ߹þ¤Þ¤ì¤ë¡£ +によって必要な時に自動的に読み込まれる。 .\"O The .\"O SYNOPSIS .\"O sections of the following manual pages indicate which include files are to .\"O be used, what the compiler declaration for the function looks like and .\"O which external variables are of interest. -¸å½Ò¤¹¤ë man ¥Ú¡¼¥¸Ãæ¤Î¡Ö½ñ¼°¡×¤ÎÀá¤Ë¤Ï¡¢ -¤É¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¡¢ -¤½¤Î´Ø¿ô¤Î¥³¥ó¥Ñ¥¤¥é¡¼Àë¸À¤Ï¤É¤Î¤è¤¦¤Ê¤â¤Î¤«¡¢ -¤É¤Î¤è¤¦¤Ê³°ÉôÊÑ¿ô¤¬´Ø·¸¤¹¤ë¤Î¤«¤¬¼¨¤µ¤ì¤Æ¤¤¤ë¡£ +後述する man ページ中の「書式」の節には、 +どのインクルードファイルを使用しなければならないか、 +その関数のコンパイラー宣言はどのようなものか、 +どのような外部変数が関係するのかが示されている。 .PP .\"O The following are defined as macros; these names may not be reused without .\"O first removing their current definitions with @@ -277,12 +277,12 @@ main .BR stdin , .\"O .BR stdout . .B stdout -¤Ï¥Þ¥¯¥í¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Î̾Á°¤Ï¡¢¸½ºß¤ÎÄêµÁ¤ò +はマクロとして定義されている。 +これらの名前は、現在の定義を .B #undef -¤Çºï½ü¤·¤Ê¤¤¸Â¤ê¡¢ºÆÍøÍѤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +で削除しない限り、再利用することはできない。 .\"O Function versions of the macro functions -¥Þ¥¯¥í´Ø¿ô¤Î´Ø¿ôÈǤȤ·¤Æ¡¢ +マクロ関数の関数版として、 .BR feof , .BR ferror , .BR clearerr , @@ -292,17 +292,17 @@ main .BR putc , .B putchar .\"O exist and will be used if the macros definitions are explicitly removed. -¤¬¤¢¤ë¡£ -¥Þ¥¯¥í¤ÎÄêµÁ¤¬ÌÀ¼¨Åª¤Ë¾Ãµî¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -¤³¤ì¤é¤ò»ÈÍѤ¹¤ë¤³¤È¤Ë¤Ê¤ë¤À¤í¤¦¡£ +がある。 +マクロの定義が明示的に消去されている場合には、 +これらを使用することになるだろう。 .\"O .SS "List of Functions" -.SS ´Ø¿ô¤Î¥ê¥¹¥È +.SS 関数のリスト .TS ; lb lb lb l. .\"O Function Description -´Ø¿ô ÀâÌÀ +関数 説明 _ .\"O clearerr check and reset stream status .\"O fclose close a stream @@ -310,12 +310,12 @@ _ .\"O feof check and reset stream status .\"O ferror check and reset stream status .\"O fflush flush a stream -clearerr ¥¹¥È¥ê¡¼¥à¤Î¾õÂ֤γÎǧ¤È¥ê¥»¥Ã¥È -fclose ¥¹¥È¥ê¡¼¥à¤ò¥¯¥í¡¼¥º¤¹¤ë -fdopen ¥¹¥È¥ê¡¼¥à¤ò¥ª¡¼¥×¥ó¤¹¤ë -feof ¥¹¥È¥ê¡¼¥à¤Î¾õÂ֤γÎǧ¤È¥ê¥»¥Ã¥È -ferror ¥¹¥È¥ê¡¼¥à¤Î¾õÂ֤γÎǧ¤È¥ê¥»¥Ã¥È -fflush ¥¹¥È¥ê¡¼¥à¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë +clearerr ストリームの状態の確認とリセット +fclose ストリームをクローズする +fdopen ストリームをオープンする +feof ストリームの状態の確認とリセット +ferror ストリームの状態の確認とリセット +fflush ストリームをフラッシュする .\"O fgetc get next character or word from input stream .\"O fgetpos reposition a stream .\"O fgets get a line from a stream @@ -327,18 +327,18 @@ fflush .\"O fputs output a line to a stream .\"O fread binary stream input/output .\"O freopen stream open functions -fgetc ¼¡¤Îʸ»ú¤Þ¤¿¤Ï¸ì¤òÆþÎÏ¥¹¥È¥ê¡¼¥à¤«¤é³ÍÆÀ¤¹¤ë -fgetpos ¥¹¥È¥ê¡¼¥à¤Î°ÌÃÖ¤ò¼èÆÀ¤¹¤ë -.\"nakano ¢¬¸¶Ê¸°ã¤¦¤Î¤Ç¤Ï? -fgets ¥¹¥È¥ê¡¼¥à¤«¤é¹Ô¤ò¼èÆÀ¤¹¤ë -fileno °ú¤­¿ô¤Ç¤¢¤ë¥¹¥È¥ê¡¼¥à¤ÎÀ°¿ôÃͤΥǥ£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹ -fopen ¥¹¥È¥ê¡¼¥à¤ò¥ª¡¼¥×¥ó¤¹¤ë -fprintf ½ñ¼°ÉÕ¤­½ÐÎÏÊÑ´¹ -fpurge ¥¹¥È¥ê¡¼¥à¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë -fputc ʸ»ú¤Þ¤¿¤Ï¸ì¤ò¥¹¥È¥ê¡¼¥à¤Ë½ÐÎϤ¹¤ë -fputs ¹Ô¤ò¥¹¥È¥ê¡¼¥à¤Ë½ÐÎϤ¹¤ë -fread ¥Ð¥¤¥Ê¥ê¡¼¥¹¥È¥ê¡¼¥àÆþ½ÐÎÏ -freopen ¥¹¥È¥ê¡¼¥à¤ò¥ª¡¼¥×¥ó¤¹¤ë +fgetc 次の文字または語を入力ストリームから獲得する +fgetpos ストリームの位置を取得する +.\"nakano ↑原文違うのでは? +fgets ストリームから行を取得する +fileno 引き数であるストリームの整数値のディスクリプタを返す +fopen ストリームをオープンする +fprintf 書式付き出力変換 +fpurge ストリームをフラッシュする +fputc 文字または語をストリームに出力する +fputs 行をストリームに出力する +fread バイナリーストリーム入出力 +freopen ストリームをオープンする .\"O fscanf input format conversion .\"O fseek reposition a stream .\"O fsetpos reposition a stream @@ -348,16 +348,16 @@ freopen .\"O getchar get next character or word from input stream .\"O gets get a line from a stream .\"O getw get next character or word from input stream -fscanf ½ñ¼°ÉÕ¤­ÆþÎÏÊÑ´¹ -fseek ¥¹¥È¥ê¡¼¥à¤Î°ÌÃֻؼ¨»Ò¤ò°ÜÆ°¤¹¤ë -fsetpos ¥¹¥È¥ê¡¼¥à¤Î°ÌÃֻؼ¨»Ò¤ò°ÜÆ°¤¹¤ë -ftell ¥¹¥È¥ê¡¼¥à¤Î°ÌÃÖ¤ò¼èÆÀ¤¹¤ë -.\"nakano ¢¬¤³¤ì¤â¡£ -fwrite ¥Ð¥¤¥Ê¥ê¡¼¥¹¥È¥ê¡¼¥àÆþ½ÐÎÏ -getc ¼¡¤Îʸ»ú¤Þ¤¿¤Ï¸ì¤òÆþÎÏ¥¹¥È¥ê¡¼¥à¤«¤é¼èÆÀ¤¹¤ë -getchar ¼¡¤Îʸ»ú¤Þ¤¿¤Ï¸ì¤òÆþÎÏ¥¹¥È¥ê¡¼¥à¤«¤é¼èÆÀ¤¹¤ë -gets ¹Ô¤òÆþÎÏ¥¹¥È¥ê¡¼¥à¤«¤é¼èÆÀ¤¹¤ë -getw ¼¡¤Îʸ»ú¤Þ¤¿¤Ï¸ì¤òÆþÎÏ¥¹¥È¥ê¡¼¥à¤«¤é¼èÆÀ¤¹¤ë +fscanf 書式付き入力変換 +fseek ストリームの位置指示子を移動する +fsetpos ストリームの位置指示子を移動する +ftell ストリームの位置を取得する +.\"nakano ↑これも。 +fwrite バイナリーストリーム入出力 +getc 次の文字または語を入力ストリームから取得する +getchar 次の文字または語を入力ストリームから取得する +gets 行を入力ストリームから取得する +getw 次の文字または語を入力ストリームから取得する .\"O mktemp make temporary filename (unique) .\"O perror system error messages .\"O printf formatted output conversion @@ -368,16 +368,16 @@ getw .\"O remove remove directory entry .\"O rewind reposition a stream .\"O scanf input format conversion -mktemp ¾¤È½Å¤Ê¤é¤Ê¤¤¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë̾¤òºî¤ë -perror ¥·¥¹¥Æ¥à¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸ -printf ½ñ¼°ÉÕ¤­½ÐÎÏÊÑ´¹ -putc ʸ»ú¤Þ¤¿¤Ï¸ì¤ò¥¹¥È¥ê¡¼¥à¤Ë½ÐÎϤ¹¤ë -putchar ʸ»ú¤Þ¤¿¤Ï¸ì¤ò¥¹¥È¥ê¡¼¥à¤Ë½ÐÎϤ¹¤ë -puts ¹Ô¤ò¥¹¥È¥ê¡¼¥à¤Ë½ÐÎϤ¹¤ë -putw ʸ»ú¤Þ¤¿¤Ï¸ì¤ò¥¹¥È¥ê¡¼¥à¤Ë½ÐÎϤ¹¤ë -remove ¥Ç¥£¥ì¥¯¥È¥ê¥¨¥ó¥È¥ê¤òºï½ü¤¹¤ë -rewind ¥¹¥È¥ê¡¼¥à¤Î°ÌÃֻؼ¨»Ò¤ò°ÜÆ°¤¹¤ë -scanf ½ñ¼°ÉÕ¤­ÆþÎÏÊÑ´¹ +mktemp 他と重ならないテンポラリファイル名を作る +perror システムエラーメッセージ +printf 書式付き出力変換 +putc 文字または語をストリームに出力する +putchar 文字または語をストリームに出力する +puts 行をストリームに出力する +putw 文字または語をストリームに出力する +remove ディレクトリエントリを削除する +rewind ストリームの位置指示子を移動する +scanf 書式付き入力変換 .\"O setbuf stream buffering operations .\"O setbuffer stream buffering operations .\"O setlinebuf stream buffering operations @@ -391,41 +391,41 @@ scanf .\"O tmpfile temporary file routines .\"O tmpnam temporary file routines .\"O ungetc un-get character from input stream -setbuf ¥¹¥È¥ê¡¼¥à¤Î¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤ÎÁàºî -setbuffer ¥¹¥È¥ê¡¼¥à¤Î¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤ÎÁàºî -setlinebuf ¥¹¥È¥ê¡¼¥à¤Î¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤ÎÁàºî -setvbuf ¥¹¥È¥ê¡¼¥à¤Î¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤ÎÁàºî -sprintf ½ñ¼°ÉÕ¤­½ÐÎÏÊÑ´¹ -sscanf ½ñ¼°ÉÕ¤­ÆþÎÏÊÑ´¹ -strerror ¥·¥¹¥Æ¥à¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸ -sys_errlist ¥·¥¹¥Æ¥à¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸ -sys_nerr ¥·¥¹¥Æ¥à¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸ -tempnam ¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë¤ÎÁàºî -tmpfile ¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë¤ÎÁàºî -tmpnam ¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë¤ÎÁàºî -ungetc ÆþÎÏ¥¹¥È¥ê¡¼¥à¤Ø 1 ʸ»úÌ᤹¡£ +setbuf ストリームのバッファリングの操作 +setbuffer ストリームのバッファリングの操作 +setlinebuf ストリームのバッファリングの操作 +setvbuf ストリームのバッファリングの操作 +sprintf 書式付き出力変換 +sscanf 書式付き入力変換 +strerror システムエラーメッセージ +sys_errlist システムエラーメッセージ +sys_nerr システムエラーメッセージ +tempnam テンポラリファイルの操作 +tmpfile テンポラリファイルの操作 +tmpnam テンポラリファイルの操作 +ungetc 入力ストリームへ 1 文字戻す。 .\"O vfprintf formatted output conversion .\"O vfscanf input format conversion .\"O vprintf formatted output conversion .\"O vscanf input format conversion .\"O vsprintf formatted output conversion .\"O vsscanf input format conversion -vfprintf ½ñ¼°ÉÕ¤­½ÐÎÏÊÑ´¹ -vfscanf ½ñ¼°ÉÕ¤­ÆþÎÏÊÑ´¹ -vprintf ½ñ¼°ÉÕ¤­½ÐÎÏÊÑ´¹ -vscanf ½ñ¼°ÉÕ¤­ÆþÎÏÊÑ´¹ -vsprintf ½ñ¼°ÉÕ¤­½ÐÎÏÊÑ´¹ -vsscanf ½ñ¼°ÉÕ¤­ÆþÎÏÊÑ´¹ +vfprintf 書式付き出力変換 +vfscanf 書式付き入力変換 +vprintf 書式付き出力変換 +vscanf 書式付き入力変換 +vsprintf 書式付き出力変換 +vsscanf 書式付き入力変換 .TE .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The .\"O .I stdio .\"O library conforms to C89. .I stdio -¥é¥¤¥Ö¥é¥ê¤Ï C89 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +ライブラリは C89 に準拠している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR close (2), .BR open (2), .BR read (2), diff --git a/draft/man3/stdio_ext.3 b/draft/man3/stdio_ext.3 index a57d6cb6..6d568dbf 100644 --- a/draft/man3/stdio_ext.3 +++ b/draft/man3/stdio_ext.3 @@ -24,15 +24,15 @@ .\" Translated Nov 2 2002 by Akihiro MOTOKI .TH STDIO_EXT 3 2001-12-16 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O __fbufsize, __flbf, __fpending, __fpurge, __freadable, .\"O __freading, __fsetlocking, __fwritable, __fwriting, _flushlbf \- .\"O interfaces to stdio FILE structure __fbufsize, __flbf, __fpending, __fpurge, __freadable, __freading, __fsetlocking, __fwritable, __fwriting, _flushlbf \- -ɸ½àÆþ½ÐÎÏ¥Õ¥¡¥¤¥ë¹½Â¤ÂΤؤΥ¤¥ó¥¿¥Õ¥§¡¼¥¹ +標準入出力ファイル構造体へのインタフェース .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include @@ -57,22 +57,22 @@ __freading, __fsetlocking, __fwritable, __fwriting, _flushlbf \- .br .BI "void __fpurge(FILE *" stream ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Solaris introduced routines to allow portable access to the .\"O internals of the .\"O .I FILE .\"O structure, and glibc also implemented these. -Solaris ¤Ç¤Ï¡¢ +Solaris では、 .I FILE -¹½Â¤ÂΤÎÆâÉô¤Ø¥Ý¡¼¥¿¥Ö¥ë¤Ê¤«¤¿¤Á¤Ç -¥¢¥¯¥»¥¹¤Ç¤­¤ë¼êÃʤ¬Æ³Æþ¤µ¤ì¤Æ¤ª¤ê¡¢¤³¤ì¤é¤Ï glibc ¤Ç¤â¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +構造体の内部へポータブルなかたちで +アクセスできる手段が導入されており、これらは glibc でも実装されている。 .LP .\"O The .\"O .BR __fbufsize () .\"O function returns the size of the buffer currently used .\"O by the given stream. .BR __fbufsize () -´Ø¿ô¤Ï¡¢»ØÄꤵ¤ì¤¿¥¹¥È¥ê¡¼¥à¤¬»ÈÍѤ·¤Æ¤¤¤ë¥Ð¥Ã¥Õ¥¡¡¦¥µ¥¤¥º¤òÊÖ¤¹¡£ +関数は、指定されたストリームが使用しているバッファ・サイズを返す。 .LP .\"O The .\"O .BR __fpending () @@ -81,34 +81,34 @@ Solaris .\"O This function is undefined on buffers in reading mode, .\"O or opened read-only. .BR __fpending () -´Ø¿ô¤Ï¡¢½ÐÎϥХåե¡¤ËÆþ¤Ã¤Æ¤¤¤ë¥Ç¡¼¥¿¤Î¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -¥ï¥¤¥É¥­¥ã¥é¥¯¥¿¤ò°·¤¦¥¹¥È¥ê¡¼¥à¤Î¾ì¹ç¡¢¥ï¥¤¥É¥­¥ã¥é¥¯¥¿Ã±°Ì¤Ç·×»»¤µ¤ì¤ë¡£ -¥Ð¥Ã¥Õ¥¡¤¬Æɤ߽Ф·¥â¡¼¥É¤Î¾ì¹ç¤äÆɤ߽Ф·ÀìÍѤdz«¤«¤ì¤Æ¤¤¤ë¾ì¹ç¤Î -¤³¤Î´Ø¿ô¤Î¿¶Éñ¤¤¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +関数は、出力バッファに入っているデータのバイト数を返す。 +ワイドキャラクタを扱うストリームの場合、ワイドキャラクタ単位で計算される。 +バッファが読み出しモードの場合や読み出し専用で開かれている場合の +この関数の振舞いは未定義である。 .LP .\"O The .\"O .BR __flbf () .\"O function returns a nonzero value if the stream is line-buffered, .\"O and zero otherwise. .BR __flbf () -´Ø¿ô¤Ï¡¢¥¹¥È¥ê¡¼¥à¤¬¥é¥¤¥ó¥Ð¥Ã¥Õ¥¡¤Î¾ì¹ç¤Ï 0 °Ê³°¤ò¡¢ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +関数は、ストリームがラインバッファの場合は 0 以外を、 +それ以外の場合は 0 を返す。 .LP .\"O The .\"O .BR __freadable () .\"O function returns a nonzero value if the stream allows reading, .\"O and zero otherwise. .BR __freadable () -´Ø¿ô¤Ï¡¢¥¹¥È¥ê¡¼¥à¤¬Æɤ߽Ф·²Äǽ¤Ê¾ì¹ç¤Ï 0 °Ê³°¤ò¡¢ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +関数は、ストリームが読み出し可能な場合は 0 以外を、 +それ以外の場合は 0 を返す。 .LP .\"O The .\"O .BR __fwritable () .\"O function returns a nonzero value if the stream allows writing, .\"O and zero otherwise. .BR __fwritable () -´Ø¿ô¤Ï¡¢¥¹¥È¥ê¡¼¥à¤¬½ñ¤­¹þ¤ß²Äǽ¤Ê¾ì¹ç¤Ï 0 °Ê³°¤ò¡¢ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +関数は、ストリームが書き込み可能な場合は 0 以外を、 +それ以外の場合は 0 を返す。 .LP .\"O The .\"O .BR __freading () @@ -116,8 +116,8 @@ Solaris .\"O if the last operation on the stream was a read operation, .\"O and zero otherwise. .BR __freading () -´Ø¿ô¤Ï¡¢¥¹¥È¥ê¡¼¥à¤¬Æɤ߽Ф·ÀìÍѤξì¹ç¡¢¤Þ¤¿¤Ï¥¹¥È¥ê¡¼¥à¤ËÂФ¹¤ëľÁ°¤ÎÁàºî¤¬ -Æɤ߽Ф·Áàºî¤Ç¤¢¤Ã¤¿¾ì¹ç¤Ï 0 °Ê³°¤òÊÖ¤·¡¢¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +関数は、ストリームが読み出し専用の場合、またはストリームに対する直前の操作が +読み出し操作であった場合は 0 以外を返し、それ以外の場合は 0 を返す。 .LP .\"O The .\"O .BR __fwriting () @@ -125,9 +125,9 @@ Solaris .\"O append-only), or if the last operation on the stream was a write .\"O operation, and zero otherwise. .BR __fwriting () -´Ø¿ô¤Ï¡¢¥¹¥È¥ê¡¼¥à¤¬½ñ¤­¹þ¤ßÀìÍÑ(¤â¤·¤¯¤ÏÄɲÃÀìÍÑ)¤Î¾ì¹ç¡¢ -¤Þ¤¿¤Ï¥¹¥È¥ê¡¼¥à¤ËÂФ¹¤ëľÁ°¤ÎÁàºî¤¬½ñ¤­¹þ¤ßÁàºî¤Ç¤¢¤Ã¤¿¾ì¹ç¤Ï 0 °Ê³°¤òÊÖ¤·¡¢ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +関数は、ストリームが書き込み専用(もしくは追加専用)の場合、 +またはストリームに対する直前の操作が書き込み操作であった場合は 0 以外を返し、 +それ以外の場合は 0 を返す。 .LP .\"O The .\"O .BR __fsetlocking () @@ -137,19 +137,19 @@ Solaris .\"O .I type .\"O argument can take the following three values: .BR __fsetlocking () -´Ø¿ô¤Ï¡¢¥¹¥È¥ê¡¼¥à¤Î¥í¥Ã¥¯·Á¼°¤òÁªÂò¤¹¤ë¤¿¤á¤Ë»ÈÍѤǤ­¤ë¡£ -ÊÖ¤êÃͤϡ¢¸½ºß¤Î¥í¥Ã¥¯·Á¼°¤Ç¤¢¤ë¡£ +関数は、ストリームのロック形式を選択するために使用できる。 +返り値は、現在のロック形式である。 .I type -°ú¤­¿ô¤Ï°Ê²¼¤Î 3 ¼ïÎà¤ÎÃͤò¤È¤ë¤³¤È¤¬¤Ç¤­¤ë : +引き数は以下の 3 種類の値をとることができる : .TP .B FSETLOCKING_INTERNAL .\"O Perform implicit locking around every operation on the given stream .\"O (except for the *_unlocked ones). .\"O This is the default. -»ØÄꤵ¤ì¤¿¥¹¥È¥ê¡¼¥à¤ËÂФ·¤ÆÁàºî¤¬¹Ô¤ï¤ì¤ëÅ٤ˡ¢Áàºî¤ÎÁ°¸å¤Ç -ÌÀ¼¨Åª¤Ë»Ø¼¨¤·¤Ê¤¯¤Æ¤â¥¹¥È¥ê¡¼¥à¤Î¥í¥Ã¥¯½èÍý¤ò¹Ô¤¦ -(⤷¡¢*_unlocked ´Ø¿ô¤ò»ÈÍѤ·¤¿¾ì¹ç¤ÏÎã³°¤Ç¤¢¤ë)¡£ -¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Î¥í¥Ã¥¯·Á¼°¤Ç¤¢¤ë¡£ +指定されたストリームに対して操作が行われる度に、操作の前後で +明示的に指示しなくてもストリームのロック処理を行う +(但し、*_unlocked 関数を使用した場合は例外である)。 +これがデフォルトのロック形式である。 .TP .B FSETLOCKING_BYCALLER .\"O The caller will take care of the locking (possibly using @@ -157,18 +157,18 @@ Solaris .\"O in case there is more than one thread), and the stdio routines .\"O will not do locking until the state is reset to .\"O .BR FSETLOCKING_INTERNAL . -´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¸µ¤Ç¥í¥Ã¥¯¤ÎÌÌÅݤò¤ß¤ë¡£ -(¤ª¤½¤é¤¯¡¢Ê£¿ô¤Î¥¹¥ì¥Ã¥É¤¬Â¸ºß¤¹¤ë¾õ¶·¤Ç¤Ï +関数の呼び出し元でロックの面倒をみる。 +(おそらく、複数のスレッドが存在する状況では .BR flockfile (3) -¤ò»È¤¦¤³¤È¤Ë¤Ê¤ë¤À¤í¤¦) -¥í¥Ã¥¯·Á¼°¤¬ +を使うことになるだろう) +ロック形式が .B FSETLOCKING_INTERNAL -¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë¤Þ¤Ç¤Ïɸ½àÆþ½ÐÎÏ´ØÏ¢¤Î´Ø¿ô¤Ï¥í¥Ã¥¯½èÍý¤ò¹Ô¤ï¤Ê¤¤¡£ +にリセットされるまでは標準入出力関連の関数はロック処理を行わない。 .TP .B FSETLOCKING_QUERY .\"O Don't change the type of locking. .\"O (Only return it.) -¥í¥Ã¥¯·Á¼°¤ÎÊѹ¹¤ò¹Ô¤ï¤Ê¤¤¡£(¸½ºß¤Î·Á¼°¤òÊÖ¤¹¤À¤±¤Ç¤¢¤ë) +ロック形式の変更を行わない。(現在の形式を返すだけである) .LP .\"O The .\"O .BR _flushlbf () @@ -176,17 +176,17 @@ Solaris .\"O (Presumably so that .\"O output to a terminal is forced out, say before reading keyboard input.) .BR _flushlbf () -´Ø¿ô¤Ï¡¢¤¹¤Ù¤Æ¤Î¥é¥¤¥ó¥Ð¥Ã¥Õ¥¡ (line-buffered) ¥¿¥¤¥×¤Î¥¹¥È¥ê¡¼¥à¤Î -ÆâÍƤò½ÐÎÏ(¥Õ¥é¥Ã¥·¥å)¤¹¤ë¡£ -(ÅöÁ³¤Ê¤¬¤é¡¢Ã¼Ëö¤Ø¤Î½ÐÎϤ¬¶¯À©Åª¤Ë¹Ô¤ï¤ì¤ë¤³¤È¤Ë¤Ê¤ë¤Î¤Ç¡¢ -¥­¡¼¥Ü¡¼¥É¤«¤é¤ÎÆþÎϤòÆɤߤ³¤àÁ°¤Ë¤³¤Î´Ø¿ô¤ò¸Æ¤ó¤ÀÊý¤¬¤¤¤¤¤À¤í¤¦) +関数は、すべてのラインバッファ (line-buffered) タイプのストリームの +内容を出力(フラッシュ)する。 +(当然ながら、端末への出力が強制的に行われることになるので、 +キーボードからの入力を読みこむ前にこの関数を呼んだ方がいいだろう) .LP .\"O The .\"O .BR __fpurge () .\"O function discards the contents of the stream's buffer. .BR __fpurge () -´Ø¿ô¤Ï¡¢¥¹¥È¥ê¡¼¥à¤Î¥Ð¥Ã¥Õ¥¡¤ÎÆâÍƤòÇÑ´þ¤¹¤ë¡£ +関数は、ストリームのバッファの内容を廃棄する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR flockfile (3), .BR fpurge (3) diff --git a/draft/man3/stpcpy.3 b/draft/man3/stpcpy.3 index 7dbb3933..0634e72d 100644 --- a/draft/man3/stpcpy.3 +++ b/draft/man3/stpcpy.3 @@ -29,11 +29,11 @@ .\" .TH STPCPY 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O stpcpy \- copy a string returning a pointer to its end -stpcpy \- ʸ»úÎó¤ò¥³¥Ô¡¼¤·¡¢¥³¥Ô¡¼¤·¤¿Ê¸»úÎó¤Î½ª¤ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹ +stpcpy \- 文字列をコピーし、コピーした文字列の終りへのポインタを返す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -43,9 +43,9 @@ stpcpy \- ʸ .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR stpcpy (): @@ -54,17 +54,17 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR stpcpy () .\"O function copies the string pointed to by \fIsrc\fP @@ -73,41 +73,41 @@ _GNU_SOURCE .\"O The strings may not overlap, and the destination string .\"O \fIdest\fP must be large enough to receive the copy. .BR stpcpy () -´Ø¿ô¤Ï¡¢\fIsrc\fP ¤Ç»Ø¤µ¤ì¤¿Ê¸»úÎó¤ò (ʸ»úÎó¤ò½ªÃ¼¤¹¤ë NULL ¥Ð¥¤¥È -(\(aq\\0\(aq) ¤ò´Þ¤á¤Æ) \fIdest\fP ¤Ç»Ø¤µ¤ì¤¿ÇÛÎó¤Ë¥³¥Ô¡¼¤¹¤ë¡£ -ʸ»úÎó¤Ï½ÅÊ£¤·¤Æ¤Ï¤Ê¤é¤º¡¢¥³¥Ô¡¼Àè¤Îʸ»úÎó \fIdest\fP ¤Ï¥³¥Ô¡¼¤ò¼õ¤±¼è¤ë -¤Î¤Ë½½Ê¬Â礭¤¯¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +関数は、\fIsrc\fP で指された文字列を (文字列を終端する NULL バイト +(\(aq\\0\(aq) を含めて) \fIdest\fP で指された配列にコピーする。 +文字列は重複してはならず、コピー先の文字列 \fIdest\fP はコピーを受け取る +のに十分大きくなくてはならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR stpcpy () .\"O returns a pointer to the \fBend\fP of the string .\"O \fIdest\fP (that is, the address of the terminating null byte) .\"O rather than the beginning. .BR stpcpy () -¤Ï¡¢Ê¸»úÎó \fIdest\fP ¤Î»Ï¤Þ¤ê¤Ç¤Ï¤Ê¤¯ -\fB½ª¤ê\fP¤ò»Ø¤¹¥Ý¥¤¥ó¥¿ (¤¹¤Ê¤ï¤Á¡¢Ê¸»úÎó¤ò½ªÃ¼¤¹¤ë NULL ¥Ð¥¤¥È) ¤òÊÖ¤¹¡£ +は、文字列 \fIdest\fP の始まりではなく +\fB終り\fPを指すポインタ (すなわち、文字列を終端する NULL バイト) を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This function was added to POSIX.1-2008. Before that, it was not part of .\"O the C or POSIX.1 standards, nor customary on UNIX systems, but was not a .\"O GNU invention either. Perhaps it came from MS-DOS. It is also present on .\"O the BSDs. -¤³¤Î´Ø¿ô¤Ï POSIX.1-2008 ¤ËÄɲ䵤줿¡£ -¤½¤ì°ÊÁ°¤Ï¡¢¤³¤Î´Ø¿ô¤Ï C ¤ä POSIX.1 ɸ½à¤Î°ìÉô¤Ç¤â -UNIX ¥·¥¹¥Æ¥à¤Î´·½¬Åª¤Ê¤â¤Î¤Ç¤â¤Ê¤«¤Ã¤¿¤¬¡¢ -GNU ¤ÎȯÌÀ¤È¤¤¤¦¤ï¤±¤Ç¤â¤Ê¤«¤Ã¤¿¡£ -¤Ò¤ç¤Ã¤È¤·¤¿¤é MS-DOS ͳÍè¤Î¤â¤Î¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤Î´Ø¿ô¤Ï BSD ·Ï¤Ë¤â¸ºß¤¹¤ë¡£ +この関数は POSIX.1-2008 に追加された。 +それ以前は、この関数は C や POSIX.1 標準の一部でも +UNIX システムの慣習的なものでもなかったが、 +GNU の発明というわけでもなかった。 +ひょっとしたら MS-DOS 由来のものかもしれない。 +この関数は BSD 系にも存在する。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O For example, this program uses .\"O .BR stpcpy () .\"O to concatenate \fBfoo\fP and .\"O \fBbar\fP to produce \fBfoobar\fP, which it then prints. -Îã¤È¤·¤Æ¡¢¤³¤Î¥×¥í¥°¥é¥à¤Ï \fBfoo\fP ¤È \fBbar\fP ¤òÏ¢·ë¤·¤Æ \fBfoobar\fP -¤òºî¤ë¤¿¤á¤Ë +例として、このプログラムは \fBfoo\fP と \fBbar\fP を連結して \fBfoobar\fP +を作るために .BR stpcpy () -¤ò»ÈÍѤ·¡¢¤½¤Î¸åɽ¼¨¤¹¤ë¡£ +を使用し、その後表示する。 .in +4n .nf @@ -128,14 +128,14 @@ main(void) .fi .in .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O This function may overrun the buffer .\"O .IR dest . -¤³¤Î´Ø¿ô¤Ï¥Ð¥Ã¥Õ¥¡ +この関数はバッファ .I dest -¤ÎÈϰϤò¹Ô¤­²á¤®¤Æ¤·¤Þ¤¦²ÄǽÀ­¤¬¤¢¤ë¡£ +の範囲を行き過ぎてしまう可能性がある。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bcopy (3), .BR memccpy (3), .BR memcpy (3), diff --git a/draft/man3/stpncpy.3 b/draft/man3/stpncpy.3 index d181a7ba..9f8c8c3f 100644 --- a/draft/man3/stpncpy.3 +++ b/draft/man3/stpncpy.3 @@ -17,11 +17,11 @@ .\" .TH STPNCPY 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O stpncpy \- copy a fixed-size string, returning a pointer to its end -stpncpy \- ¸ÇÄêŤÎʸ»úÎó¤ò¥³¥Ô¡¼¤·¤Æ¡¢¤½¤ÎºÇ¸å¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹ +stpncpy \- 固定長の文字列をコピーして、その最後へのポインターを返す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -31,9 +31,9 @@ stpncpy \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR stpncpy (): @@ -42,17 +42,17 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR stpncpy () .\"O function copies at most \fIn\fP characters from the string @@ -67,35 +67,35 @@ _GNU_SOURCE .\"O \fIn\fP, the string pointed to by \fIdest\fP will .\"O not be null-terminated. .BR stpncpy () -´Ø¿ô¤Ï \fIsrc\fP ¤¬»Ø¤·¤Æ¤¤¤ëʸ»úÎ󤫤齪ü¤Î NULL ¥Ð¥¤¥È (\(aq\\0\(aq) -¤ò´Þ¤á¤ÆºÇÂç \fIn\fP ¥Ð¥¤¥È¤ò \fIdest\fP ¤Ë¥³¥Ô¡¼¤¹¤ë¡£Ä¹¤µ -\fIstrlen(src)\fP ¤¬ \fIn\fP ¤è¤ê¾®¤µ¤¤¾ì¹ç¤Ë¤Ï \fIdest\fP ¤Î»Ä¤ê¤Î -Éôʬ¤Ë¤Ï NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ʸ»ú¤¬Ëä¤á¤é¤ì¤ë¡£ -Ťµ \fIstrlen(src)\fP ¤¬ \fIn\fP °Ê¾å¤Ê¤é¤Ð¡¢ -\fIdest\fP ¤¬»Ø¤¹Ê¸»úÎó¤Ï NULL ¤Ç½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +関数は \fIsrc\fP が指している文字列から終端の NULL バイト (\(aq\\0\(aq) +を含めて最大 \fIn\fP バイトを \fIdest\fP にコピーする。長さ +\fIstrlen(src)\fP が \fIn\fP より小さい場合には \fIdest\fP の残りの +部分には NULL バイト (\(aq\\0\(aq) 文字が埋められる。 +長さ \fIstrlen(src)\fP が \fIn\fP 以上ならば、 +\fIdest\fP が指す文字列は NULL で終端されていない。 .PP .\"O The strings may not overlap. -Æó¤Ä¤Îʸ»úÎó¤Ï½Å¤Ê¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +二つの文字列は重なってはならない。 .PP .\"O The programmer must ensure that there is room for at least \fIn\fP characters .\"O at \fIdest\fP. -¥×¥í¥°¥é¥Þ¡¼¤Ï \fIdest\fP ¤Ë¾¯¤Ê¤¯¤È¤â \fIn\fP ¥Ð¥¤¥È¤Î¶õ¤­¤¬¤¢¤ë¤³¤È¤ò -Êݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +プログラマーは \fIdest\fP に少なくとも \fIn\fP バイトの空きがあることを +保証しなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR stpncpy () .\"O returns a pointer to the terminating null byte .\"O in \fIdest\fP, or, if \fIdest\fP is not null-terminated, .\"O \fIdest + n\fP. .BR stpncpy () -¤Ï \fIdest\fP ¤Î½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¤«¡¢ -\fIdest\fP ¤¬ NULL ¥Ð¥¤¥È¤Ç½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï \fIdest + n\fP ¤òÊÖ¤¹¡£ +は \fIdest\fP の終端の NULL バイトを指すポインターを返すか、 +\fIdest\fP が NULL バイトで終端されていない場合には \fIdest + n\fP を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This function was added to POSIX.1-2008. Before that, it was a GNU extension. -¤³¤Î´Ø¿ô¤Ï POSIX.1-2008 ¤ËÄɲ䵤줿¡£ -¤½¤ì°ÊÁ°¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤Ã¤¿¡£ +この関数は POSIX.1-2008 に追加された。 +それ以前は GNU による拡張であった。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strncpy (3), .BR wcpncpy (3) diff --git a/draft/man3/strcasecmp.3 b/draft/man3/strcasecmp.3 index 5ca514c5..8f0c9e72 100644 --- a/draft/man3/strcasecmp.3 +++ b/draft/man3/strcasecmp.3 @@ -33,11 +33,11 @@ .\" .TH STRCASECMP 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O strcasecmp, strncasecmp \- compare two strings ignoring case -strcasecmp, strncasecmp \- Æó¤Ä¤Îʸ»úÎó¤òÂçʸ»ú¾®Ê¸»ú¤ò¶èÊ̤»¤ºÈæ³Ó¤¹¤ë +strcasecmp, strncasecmp \- 二つの文字列を大文字小文字を区別せず比較する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -46,7 +46,7 @@ strcasecmp, strncasecmp \- .BI "int strncasecmp(const char *" s1 ", const char *" s2 ", size_t " n ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR strcasecmp () .\"O function compares the two strings \fIs1\fP and @@ -55,20 +55,20 @@ strcasecmp, strncasecmp \- .\"O less than, equal to, or greater than zero if \fIs1\fP is found, .\"O respectively, to be less than, to match, or be greater than \fIs2\fP. .BR strcasecmp () -´Ø¿ô¤Ï¡¢Æó¤Ä¤Îʸ»úÎó¡¡\fIs1\fP ¤È \fIs2\fP ¤ò¡¢ -Âçʸ»ú¾®Ê¸»ú¤ò¶èÊ̤»¤º¤ËÈæ³Ó¤¹¤ë¡£ -\fIs1\fP ¤¬ \fIs2\fP ¤è¤ê¤â¾®¤µ¤¤¤«¡¢Æ±¤¸¤«¡¢Â礭¤¤¤«¤Ë¤è¤Ã¤Æ¤½¤ì¤¾¤ì -Éé¤ÎÀ°¿ô¡¢0¡¢Àµ¤ÎÀ°¿ô¤òÊÖ¤¹¡£ +関数は、二つの文字列 \fIs1\fP と \fIs2\fP を、 +大文字小文字を区別せずに比較する。 +\fIs1\fP が \fIs2\fP よりも小さいか、同じか、大きいかによってそれぞれ +負の整数、0、正の整数を返す。 .PP .\"O The .\"O .BR strncasecmp () .\"O function is similar, except it only compares .\"O the first \fIn\fP characters of \fIs1\fP. .BR strncasecmp () -´Ø¿ô¤âƱÍͤǤ¢¤ë¤¬¡¢ -\fIs1\fP ¤ÎºÇ½é¤Î \fIn\fP ʸ»ú¤À¤±¤òÈæ³Ó¤¹¤ëÅÀ¤À¤±¤¬°Û¤Ê¤ë¡£ +関数も同様であるが、 +\fIs1\fP の最初の \fIn\fP 文字だけを比較する点だけが異なる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR strcasecmp () .\"O and @@ -78,16 +78,16 @@ strcasecmp, strncasecmp \- .\"O (or the first \fIn\fP bytes thereof) is found, respectively, to be .\"O less than, to match, or be greater than \fIs2\fP. .BR strcasecmp () -¤È +と .BR strncasecmp () -´Ø¿ô¤Ï¡¢\fIs1\fP -(¤Þ¤¿¤Ï¡¢¤½¤ÎºÇ½é¤Î \fIn\fP ¥Ð¥¤¥È)¤¬ \fIs2\fP ¤è¤ê¤â¾®¤µ¤¤¤«¡¢ -Ʊ¤¸¤«¡¢Â礭¤¤¤«¤Ë¤è¤ê¡¢¤½¤ì¤¾¤ìÉé¤ÎÀ°¿ô¡¢0¡¢Àµ¤ÎÀ°¿ô¤òÊÖ¤¹¡£ +関数は、\fIs1\fP +(または、その最初の \fIn\fP バイト)が \fIs2\fP よりも小さいか、 +同じか、大きいかにより、それぞれ負の整数、0、正の整数を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.4BSD, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bcmp (3), .BR memcmp (3), .BR strcmp (3), diff --git a/draft/man3/strcat.3 b/draft/man3/strcat.3 index 68a12286..91d1e636 100644 --- a/draft/man3/strcat.3 +++ b/draft/man3/strcat.3 @@ -38,11 +38,11 @@ .\" .TH STRCAT 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O strcat, strncat \- concatenate two strings -strcat, strncat \- Æó¤Ä¤Îʸ»úÎó¤òÏ¢·ë¤¹¤ë +strcat, strncat \- 二つの文字列を連結する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -51,7 +51,7 @@ strcat, strncat \- .BI "char *strncat(char *" dest ", const char *" src ", size_t " n ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR strcat () .\"O function appends the \fIsrc\fP string to the @@ -62,12 +62,12 @@ strcat, strncat \- .\"O The strings may not overlap, and the \fIdest\fP string must have .\"O enough space for the result. .BR strcat () -´Ø¿ô¤Ï¡¢\fIdest\fP ʸ»úÎó¤Î¸å¤Ë \fIsrc\fP ʸ»úÎó¤òÉÕ¤±²Ã¤¨¤ë¡£ -¤½¤ÎºÝ¤Ë¡¢\fIdest\fP ¤ÎºÇ¸å¤Ë¤¢¤ë½ªÃ¼¤Î NULL ¥Ð¥¤¥È (\(aq\\0\(aq) -¤Ï¾å½ñ¤­¤µ¤ì¡¢¿·¤¿¤ËÀ¸À®¤µ¤ì¤¿Ê¸»úÎó¤ÎËöÈø¤Ë½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤¬ÉÕÍ¿¤µ¤ì¤ë¡£ -Æó¤Ä¤Îʸ»úÎó \fIsrc\fP ¤È \fIdest\fP ¤Ï½Å¤Ê¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -¤Þ¤¿¡¢Ê¸»úÎó \fIdest\fP ¤Ï¡¢Ï¢·ë¸å¤Î·ë²Ì¤ò³ÊǼ¤¹¤ë¤Î¤Ë -½½Ê¬¤ÊÂ礭¤µ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +関数は、\fIdest\fP 文字列の後に \fIsrc\fP 文字列を付け加える。 +その際に、\fIdest\fP の最後にある終端の NULL バイト (\(aq\\0\(aq) +は上書きされ、新たに生成された文字列の末尾に終端の NULL バイトが付与される。 +二つの文字列 \fIsrc\fP と \fIdest\fP は重なってはならない。 +また、文字列 \fIdest\fP は、連結後の結果を格納するのに +十分な大きさでなければならない。 .PP .\"O The .\"O .BR strncat () @@ -78,18 +78,18 @@ strcat, strncat \- .\"O \fIsrc\fP does not need to be null-terminated if it contains .\"O \fIn\fP or more characters. .BR strncat () -¤âƱÍͤÀ¤¬¡¢°Ê²¼¤ÎÅÀ¤¬°Û¤Ê¤ë¡£ +も同様だが、以下の点が異なる。 .IP * 3 -\fIsrc\fP ¤Î¤¦¤ÁºÇÂç \fIn\fP ʸ»ú¤¬»ÈÍѤµ¤ì¤ë¡£ +\fIsrc\fP のうち最大 \fIn\fP 文字が使用される。 .IP * -\fIsrc\fP ¤¬ \fIn\fP ʸ»ú°Ê¾å¤Î¾ì¹ç¡¢ -\fIsrc\fP ¤Ï NULL ½ªÃ¼¤µ¤ì¤Æ¤¤¤ëɬÍפϤʤ¤¡£ +\fIsrc\fP が \fIn\fP 文字以上の場合、 +\fIsrc\fP は NULL 終端されている必要はない。 .PP .\"O As with .\"O .BR strcat (), .\"O the resulting string in \fIdest\fP is always null-terminated. .BR strcat () -¤ÈƱ¤¸¤¯¡¢\fIdest\fP ¤Ë³ÊǼ¤µ¤ì¤ë·ë²Ì¤Îʸ»úÎó¤Ï¾ï¤Ë NULL ½ªÃ¼¤µ¤ì¤ë¡£ +と同じく、\fIdest\fP に格納される結果の文字列は常に NULL 終端される。 .PP .\"O If \fIsrc\fP contains \fIn\fP or more characters, .\"O .BR strncat () @@ -97,18 +97,18 @@ strcat, strncat \- .\"O from \fIsrc\fP plus the terminating null byte). .\"O Therefore, the size of \fIdest\fP must be at least .\"O \fIstrlen(dest)+n+1\fP. -\fIsrc\fP ¤¬ \fIn\fP ʸ»ú°Ê¾å¤Î¾ì¹ç¡¢ +\fIsrc\fP が \fIn\fP 文字以上の場合、 .BR strncat () -¤Ï \fIdest\fP ¤Ë \fIn+1\fP ʸ»ú¤ò½ñ¤­¹þ¤à -(\fIsrc\fP ¤«¤é¤Î \fIn\fP ʸ»ú¤È½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤Ç¤¢¤ë)¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢\fIdest\fP ¤ÎÂ礭¤µ¤ÏºÇÄã¤Ç¤â -\fIstrlen(dest)+n+1\fP ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は \fIdest\fP に \fIn+1\fP 文字を書き込む +(\fIsrc\fP からの \fIn\fP 文字と終端の NULL バイトである)。 +したがって、\fIdest\fP の大きさは最低でも +\fIstrlen(dest)+n+1\fP でなければならない。 .\"O A simple implementation of .\"O .BR strncat () .\"O might be: .BR strncat () -¤Î´Êñ¤Ê¼ÂÁõ¤Ï°Ê²¼¤Î¤è¤¦¤Ê´¶¤¸¤Ç¤¢¤í¤¦: +の簡単な実装は以下のような感じであろう: .in +4n .nf @@ -127,22 +127,22 @@ strncat(char *dest, const char *src, size_t n) .fi .in .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR strcat () .\"O and .\"O .BR strncat () .\"O functions return a pointer to the resulting string \fIdest\fP. .BR strcat () -´Ø¿ô¤È +関数と .BR strncat () -´Ø¿ô¤Ï¡¢·ë²Ì¤È¤·¤Æ¤Ç¤­¤ëʸ»úÎó -\fIdest\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +関数は、結果としてできる文字列 +\fIdest\fP へのポインタを返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, C89, C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bcopy (3), .BR memccpy (3), .BR memcpy (3), diff --git a/draft/man3/strchr.3 b/draft/man3/strchr.3 index 61102183..124acb43 100644 --- a/draft/man3/strchr.3 +++ b/draft/man3/strchr.3 @@ -38,11 +38,11 @@ .\" .TH STRCHR 3 2010-09-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O strchr, strrchr, strchrnul \- locate character in string -strchr, strrchr, strchrnul \- ʸ»úÎóÃæ¤Îʸ»ú¤Î°ÌÃÖ¤òÆÃÄꤹ¤ë +strchr, strrchr, strchrnul \- 文字列中の文字の位置を特定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -51,28 +51,28 @@ strchr, strrchr, strchrnul \- ʸ .BI "char *strrchr(const char *" s ", int " c ); .sp .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "char *strchrnul(const char *" s ", int " c ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR strchr () .\"O function returns a pointer to the first occurrence .\"O of the character \fIc\fP in the string \fIs\fP. .BR strchr () -´Ø¿ô¤Ï¡¢Ê¸»úÎó \fIs\fP Ãæ¤ËºÇ½é¤Ëʸ»ú \fIc\fP -¤¬¸½¤ì¤¿°ÌÃ֤ؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ +関数は、文字列 \fIs\fP 中に最初に文字 \fIc\fP +が現れた位置へのポインタを返す。 .PP .\"O The .\"O .BR strrchr () .\"O function returns a pointer to the last occurrence .\"O of the character \fIc\fP in the string \fIs\fP. .BR strrchr () -´Ø¿ô¤Ï¡¢Ê¸»úÎó \fIs\fP Ãæ¤ËºÇ¸å¤Ëʸ»ú \fIc\fP -¤¬¸½¤ì¤¿°ÌÃ֤ؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ +関数は、文字列 \fIs\fP 中に最後に文字 \fIc\fP +が現れた位置へのポインタを返す。 .PP .\"O The \fBstrchrnul\fP() function is like .\"O .BR strchr () @@ -80,18 +80,18 @@ strchr, strrchr, strchrnul \- ʸ .\"O then it returns a pointer to the null byte .\"O at the end of \fIs\fP, rather than NULL. .BR strchrnul () -´Ø¿ô¤Ï +関数は .BR strchr () -¤ÈƱÍͤÀ¤¬¡¢ -\fIc\fP ¤¬ \fIs\fP Ãæ¤Ë¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¡¢ÊÖ¤êÃͤȤ·¤Æ -NULL ¤Ç¤Ê¤¯¡¢\fIs\fP ¤ÎËöÈø¤Î¥Ì¥ë¥Ð¥¤¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹ÅÀ¤¬°Û¤Ê¤ë¡£ +と同様だが、 +\fIc\fP が \fIs\fP 中に見つからなかった場合に、返り値として +NULL でなく、\fIs\fP の末尾のヌルバイトへのポインタを返す点が異なる。 .PP .\"O Here "character" means "byte"; these functions do not work with .\"O wide or multibyte characters. -¤³¤³¤Ç¤¤¤¦¡Öʸ»ú¡×¤Ï¡Ö¥Ð¥¤¥È¡×¤Î°ÕÌ£¤Ê¤Î¤Ç¡¢ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¥ï¥¤¥Éʸ»ú¤ä¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤Ç¤ÏÆ°ºî¤·¤Ê¤¤¡£ +ここでいう「文字」は「バイト」の意味なので、 +これらの関数はワイド文字やマルチバイト文字では動作しない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR strchr () .\"O and @@ -99,10 +99,10 @@ NULL .\"O functions return a pointer to .\"O the matched character or NULL if the character is not found. .BR strchr () -¤È +と .BR strrchr () -´Ø¿ô¤Ï°ìÃפ·¤¿Ê¸»ú¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò -ÊÖ¤·¡¢¤â¤·Ê¸»ú¤¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +関数は一致した文字へのポインタを +返し、もし文字が見つからない場合は NULL を返す。 .\"O The .\"O .BR strchrnul () @@ -112,17 +112,17 @@ NULL .\"O byte at the end of \fIs\fP (i.e., \fIs+strlen(s)\fP) .\"O if the character is not found. .BR strchrnul () -´Ø¿ô¤Ï°ìÃפ·¤¿Ê¸»ú¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -ʸ»ú¤¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï¡¢\fIs\fP ¤ÎËöÈø¤Î¥Ì¥ë¥Ð¥¤¥È¤Ø¤Î -¥Ý¥¤¥ó¥¿ (¤Ä¤Þ¤ê \fIs+strlen(s)\fP) ¤òÊÖ¤¹¡£ +関数は一致した文字へのポインタを返す。 +文字が見つからない場合は、\fIs\fP の末尾のヌルバイトへの +ポインタ (つまり \fIs+strlen(s)\fP) を返す。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR strchrnul () .\"O first appeared in glibc in version 2.1.1. .BR strchrnul () -¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +は glibc バージョン 2.1.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR strchr () .\"O and .\"O .BR strrchr () @@ -130,13 +130,13 @@ NULL .\"O .BR strchrnul () .\"O is a GNU extension. .BR strchr () -¤È +と .BR strrchr () -¤Ï SVr4, 4.3BSD, C89, C99 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +は SVr4, 4.3BSD, C89, C99 に準拠している。 .BR strchrnul () -¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ë¡£ +は GNU 拡張である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR index (3), .BR memchr (3), .BR rindex (3), diff --git a/draft/man3/strcmp.3 b/draft/man3/strcmp.3 index 2c098bb6..e384c249 100644 --- a/draft/man3/strcmp.3 +++ b/draft/man3/strcmp.3 @@ -36,10 +36,10 @@ .TH STRCMP 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME .\"O strcmp, strncmp \- compare two strings -.SH ̾Á° -strcmp, strncmp \- Æó¤Ä¤Îʸ»úÎó¤òÈæ¤Ù¤ë +.SH 名前 +strcmp, strncmp \- 二つの文字列を比べる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -48,7 +48,7 @@ strcmp, strncmp \- .BI "int strncmp(const char *" s1 ", const char *" s2 ", size_t " n ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR strcmp () .\"O function compares the two strings \fIs1\fP and @@ -57,18 +57,18 @@ strcmp, strncmp \- .\"O than zero if \fIs1\fP is found, respectively, to be less than, .\"O to match, or be greater than \fIs2\fP. .BR strcmp () -´Ø¿ô¤ÏÆó¤Ä¤Îʸ»úÎó \fIs1\fP ¤È \fIs2\fP ¤ò³Ó¤Ù¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢ -\fIs1\fP ¤¬ \fIs2\fP ¤Ë³Ó¤Ù¤Æ 1)¾®¤µ¤¤¡¢2)Åù¤·¤¤¡¢3)Â礭¤¤¾ì¹ç¤Ë¡¢ -¥¼¥í¤è¤ê¤â 1)¾®¤µ¤¤¡¢2)Åù¤·¤¤¡¢3)Â礭¤¤À°¿ô¤òÊÖ¤¹¡£ +関数は二つの文字列 \fIs1\fP と \fIs2\fP を較べる。 +この関数は、 +\fIs1\fP が \fIs2\fP に較べて 1)小さい、2)等しい、3)大きい場合に、 +ゼロよりも 1)小さい、2)等しい、3)大きい整数を返す。 .PP .\"O The .\"O .BR strncmp () .\"O function is similar, except it only compares .\"O the first (at most) \fIn\fP characters of \fIs1\fP and \fIs2\fP. .BR strncmp () -´Ø¿ô¤Ï¡¢\fIs1\fP ¤È \fIs2\fP ¤ÎºÇ½é¤Î -\fIn\fP ʸ»ú¤À¤±¤òÈæ³Ó¤¹¤ë¤³¤È¤ò½ü¤±¤Ð¡¢strcmp()¤ÈƱÍͤǤ¢¤ë¡£ +関数は、\fIs1\fP と \fIs2\fP の最初の +\fIn\fP 文字だけを比較することを除けば、strcmp()と同様である。 .\"O .SH "RETURN VALUE" .\"O The .\"O .BR strcmp () @@ -78,19 +78,19 @@ strcmp, strncmp \- .\"O less than, equal to, or greater than zero if \fIs1\fP (or the first .\"O \fIn\fP bytes thereof) is found, respectively, to be less than, to .\"O match, or be greater than \fIs2\fP. -.SH ÊÖ¤êÃÍ +.SH 返り値 .BR strcmp () -´Ø¿ô¤È +関数と .BR strncmp () -´Ø¿ô¤ÏÀ°¿ô¤òÊÖ¤¹¡£ -¤³¤ÎÀ°¿ô¤Ï¡¢¥¼¥í¤è¤ê¤â¡¢1)¾®¤µ¤¤¡¢2)Åù¤·¤¤¡¢3)Â礭¤¤¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¡£ -¤½¤ì¤¾¤ì¤Ï¡¢\fIs1\fP¡Ê¤Þ¤¿¤Ï¡¢¤³¤Îʸ»úÎó¤ÎºÇ½é¤Î \fIn\fP ¥Ð¥¤¥È¡Ë¤¬ -\fIs2\fP ¤è¤ê¤â¡¢1)¾®¤µ¤¤¡¢2)Åù¤·¤¤¡¢3)Â礭¤¤¤ËÂбþ¤·¤Æ¤¤¤ë¡£ +関数は整数を返す。 +この整数は、ゼロよりも、1)小さい、2)等しい、3)大きいのいずれかである。 +それぞれは、\fIs1\fP(または、この文字列の最初の \fIn\fP バイト)が +\fIs2\fP よりも、1)小さい、2)等しい、3)大きいに対応している。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, C89, C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bcmp (3), .BR memcmp (3), .BR strcasecmp (3), diff --git a/draft/man3/strcoll.3 b/draft/man3/strcoll.3 index e3acd190..f4dbcb78 100644 --- a/draft/man3/strcoll.3 +++ b/draft/man3/strcoll.3 @@ -33,38 +33,38 @@ .\" .TH STRCOLL 3 2010-09-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O strcoll \- compare two strings using the current locale -strcoll \- ¸½ºß¤Î¥í¥±¡¼¥ë¤ò»ÈÍѤ·¤ÆÆó¤Ä¤Îʸ»úÎó¤òÈæ³Ó¤¹¤ë +strcoll \- 現在のロケールを使用して二つの文字列を比較する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int strcoll(const char *" s1 ", const char *" s2 ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR strcoll () .\"O function compares the two strings \fIs1\fP and .\"O \fIs2\fP. -\fbstrcoll\fP() ´Ø¿ô¤ÏÆó¤Ä¤Îʸ»úÎó \fIs1\fP ¤È \fIs2\fP ¤òÈæ³Ó¤¹¤ë¡£ +\fbstrcoll\fP() 関数は二つの文字列 \fIs1\fP と \fIs2\fP を比較する。 .\"O It returns an integer less than, equal to, or greater .\"O than zero if \fIs1\fP is found, respectively, to be less than, .\"O to match, or be greater than \fIs2\fP. -¤³¤Î´Ø¿ô¤Ï¡¢\fIs1\fP ¤¬ \fIs2\fP ¤è¤ê¤â¾®¤µ¤¤¤«¡¢Åù¤·¤¤¤«¡¢Â礭¤¤¤«¤Ë¤è¤Ã¤Æ -¤½¤ì¤¾¤ìÉé¤ÎÀ°¿ô¡¢0¡¢Àµ¤ÎÀ°¿ô¤òÊÖ¤¹¡£ +この関数は、\fIs1\fP が \fIs2\fP よりも小さいか、等しいか、大きいかによって +それぞれ負の整数、0、正の整数を返す。 .\"O The comparison is based on .\"O strings interpreted as appropriate for the program's current locale .\"O for category \fBLC_COLLATE\fP. (See .\"O .BR setlocale (3).) -Èæ³Ó¤Ï¡¢¥×¥í¥°¥é¥à¤Î¸½ºß¤Î¥í¥±¡¼¥ë¤Î \fBLC_COLLATE\fP ¥«¥Æ¥´¥ê¤Ë±þ¤¸¤Æ -²ò¼á¤µ¤ì¤¿Ê¸»úÎó¤Ë´ð¤Å¤¤¤Æ¹Ô¤ï¤ì¤ë +比較は、プログラムの現在のロケールの \fBLC_COLLATE\fP カテゴリに応じて +解釈された文字列に基づいて行われる .RB ( setlocale (3) -»²¾È)¡£ +参照)。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR strcoll () .\"O function returns an integer less than, equal to, @@ -72,25 +72,25 @@ strcoll \- .\"O than, to match, or be greater than \fIs2\fP, when both are interpreted .\"O as appropriate for the current locale. .BR strcoll () -´Ø¿ô¤Ï¡¢\fIs1\fP ¤¬ \fIs2\fP ¤è¤ê¤â¾®¤µ¤¤¤«¡¢Åù¤·¤¤¤«¡¢ -Â礭¤¤¤«¤Ë¤è¤Ã¤Æ¡¢¤½¤ì¤¾¤ìÉé¤ÎÀ°¿ô¡¢0¡¢Àµ¤ÎÀ°¿ô¤òÊÖ¤¹¡£ -¤É¤Á¤é¤Îʸ»úÎó¤â¸½ºß¤Î¥í¥±¡¼¥ë¤Ë±þ¤¸¤Æ²ò¼á¤µ¤ì¤¿¤â¤Î¤¬»ÈÍѤµ¤ì¤ë¡£ +関数は、\fIs1\fP が \fIs2\fP よりも小さいか、等しいか、 +大きいかによって、それぞれ負の整数、0、正の整数を返す。 +どちらの文字列も現在のロケールに応じて解釈されたものが使用される。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, C89, C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O In the \fI"POSIX"\fP or \fI"C"\fP locales .\"O .BR strcoll () .\"O is equivalent to .\"O .BR strcmp (3). -\fI"POSIX"\fP ¤ª¤è¤Ó \fI"C"\fP ¥í¥±¡¼¥ë¤Ë¤ª¤¤¤Æ¤Ï¡¢ +\fI"POSIX"\fP および \fI"C"\fP ロケールにおいては、 .BR strcoll () -¤Ï +は .BR strcmp (3) -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bcmp (3), .BR memcmp (3), .BR setlocale (3), diff --git a/draft/man3/strcpy.3 b/draft/man3/strcpy.3 index f0cf67c2..234349cd 100644 --- a/draft/man3/strcpy.3 +++ b/draft/man3/strcpy.3 @@ -43,11 +43,11 @@ .\" .TH STRCPY 3 2010-09-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O strcpy, strncpy \- copy a string -strcpy, strncpy \- ʸ»úÎó¤ò¥³¥Ô¡¼¤¹¤ë +strcpy, strncpy \- 文字列をコピーする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -56,35 +56,35 @@ strcpy, strncpy \- ʸ .BI "char *strncpy(char *" dest ", const char *" src ", size_t " n ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR strcpy () .\"O function copies the string pointed to by \fIsrc\fP, .\"O including the terminating null byte (\(aq\\0\(aq), .\"O to the buffer pointed to by \fIdest\fP. .BR strcpy () -´Ø¿ô¤Ï -\fIsrc\fP ¤¬»Ø¤¹Ê¸»úÎó¤òËöÈø¤Î¥Ì¥ë¥Ð¥¤¥È (\(aq\\0\(aq) ¤â´Þ¤á¤Æ -\fIdest\fP ¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë¥³¥Ô¡¼¤¹¤ë¡£ +関数は +\fIsrc\fP が指す文字列を末尾のヌルバイト (\(aq\\0\(aq) も含めて +\fIdest\fP が指すバッファにコピーする。 .\"O The strings may not overlap, and the destination string .\"O \fIdest\fP must be large enough to receive the copy. -Æó¤Ä¤Îʸ»úÎó¤Ï½Å¤Ê¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£¼õ¤±Â¦¤Îʸ»úÎó \fIdest\fP ¤Ï -¥³¥Ô¡¼¤ò¼õ¤±¼è¤ë¤Î¤Ë½½Ê¬¤ÊÂ礭¤µ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +二つの文字列は重なってはならない。受け側の文字列 \fIdest\fP は +コピーを受け取るのに十分な大きさでなければならない。 .PP .\"O The .\"O .BR strncpy () .\"O function is similar, except that at most .\"O \fIn\fP bytes of \fIsrc\fP are copied. .BR strncpy () -´Ø¿ô¤âƱÍͤÀ¤¬¡¢ -\fIsrc\fP ¤Î¤¦¤ÁºÇÂç¤Ç¤â \fIn\fP ¥Ð¥¤¥È¤·¤«¥³¥Ô¡¼¤µ¤ì¤Ê¤¤ÅÀ¤¬°Û¤Ê¤ë¡£ +関数も同様だが、 +\fIsrc\fP のうち最大でも \fIn\fP バイトしかコピーされない点が異なる。 .\"O .BR Warning : .\"O If there is no null byte .\"O among the first \fIn\fP bytes of \fIsrc\fP, .\"O the string placed in \fIdest\fP will not be null-terminated. -.BR ·Ù¹ð : -\fIsrc\fP ¤ÎºÇ½é¤Î \fIn\fP ¥Ð¥¤¥È¤ÎÃæ¤Ë¥Ì¥ë¥Ð¥¤¥È¤¬¤Ê¤¤¾ì¹ç¡¢ -\fIdest\fP ¤Ë³ÊǼ¤µ¤ì¤ëʸ»úÎó¤Ï¥Ì¥ë¤Ç½ªÃ¼¤µ¤ì¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¡£ +.BR 警告 : +\fIsrc\fP の最初の \fIn\fP バイトの中にヌルバイトがない場合、 +\fIdest\fP に格納される文字列はヌルで終端されないことになる。 .PP .\"O If the length of .\"O .I src @@ -95,19 +95,19 @@ strcpy, strncpy \- ʸ .\"O .I dest .\"O with null bytes. .I src -¤ÎŤµ¤¬ +の長さが .I n -¤è¤ê¤âû¤¤¾ì¹ç¡¢ +よりも短い場合、 .BR strncpy () -¤Ï +は .I dest -¤Î»Ä¤ê¤ò¥Ì¥ë¥Ð¥¤¥È¤ÇËä¤á¤ë¡£ +の残りをヌルバイトで埋める。 .PP .\"O A simple implementation of .\"O .BR strncpy () .\"O might be: .BR strncpy () -¤Î´Êñ¤Ê¼ÂÁõ¤Ï°Ê²¼¤Î¤è¤¦¤Ê´¶¤¸¤Ç¤¢¤í¤¦: +の簡単な実装は以下のような感じであろう: .in +4n .nf @@ -126,7 +126,7 @@ strncpy(char *dest, const char *src, size_t n) .fi .in .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR strcpy () .\"O and @@ -134,15 +134,15 @@ strncpy(char *dest, const char *src, size_t n) .\"O functions return a pointer to .\"O the destination string \fIdest\fP. .BR strcpy () -´Ø¿ô¤È +関数と .BR strncpy () -´Ø¿ô¤Ï -¼õ¤±Â¦¤Îʸ»úÎó\fIdest\fP¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +関数は +受け側の文字列\fIdest\fPへのポインタを返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, C89, C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Some programmers consider .\"O .BR strncpy () .\"O to be inefficient and error prone. @@ -152,12 +152,12 @@ SVr4, 4.3BSD, C89, C99. .\"O .BR strcpy () .\"O can be used. .BR strncpy () -¤Ï¸úΨŪ¤Ç¤Ê¤¯´Ö°ã¤¤¤òµ¯¤³¤·¤ä¤¹¤¤¤È¹Í¤¨¤ë¥×¥í¥°¥é¥Þ¤â¤¤¤ë¤À¤í¤¦¡£ -¥×¥í¥°¥é¥Þ¤¬ \fIdest\fP ¤ÎÂ礭¤µ¤¬ \fIsrc\fP ¤ÎŤµ¤è¤ê¤â -Â礭¤¤¤³¤È¤òÃΤäƤ¤¤ë (¤Ä¤Þ¤ê¡¢¤½¤Î¤³¤È¤ò¥Á¥§¥Ã¥¯¤¹¤ë¥³¡¼¥É¤ò -½ñ¤¤¤Æ¤¤¤ë) ¾ì¹ç¤Ï¡¢ +は効率的でなく間違いを起こしやすいと考えるプログラマもいるだろう。 +プログラマが \fIdest\fP の大きさが \fIsrc\fP の長さよりも +大きいことを知っている (つまり、そのことをチェックするコードを +書いている) 場合は、 .B strcpy() -¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +を使うことができる。 .\"O If there is no terminating null byte in the first \fIn\fP .\"O characters of \fIsrc\fP, @@ -165,11 +165,11 @@ SVr4, 4.3BSD, C89, C99. .\"O produces an unterminated string in \fIdest\fP. .\"O Programmers often prevent this mistake by forcing termination .\"O as follows: -\fIsrc\fP ¤ÎºÇ½é¤Î \fIn\fP ʸ»ú¤Ë½ªÃ¼¤Î¥Ì¥ë¥Ð¥¤¥È¤¬¤Ê¤¤¾ì¹ç¡¢ +\fIsrc\fP の最初の \fIn\fP 文字に終端のヌルバイトがない場合、 .BR strncpy () -¤Ï \fIdest\fP ¤Ë½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤Ê¸»úÎó¤òÀ¸À®¤¹¤ë¡£ -¥×¥í¥°¥é¥Þ¤Ï´Ö°ã¤¤¤òËɻߤ¹¤ë¤¿¤á¤Ë¡¢ -°Ê²¼¤Î¤è¤¦¤Ë¶¯À©Åª¤Ë½ªÃ¼¤ò¹Ô¤¦¤³¤È¤¬¤è¤¯¤¢¤ë¡£ +は \fIdest\fP に終端されていない文字列を生成する。 +プログラマは間違いを防止するために、 +以下のように強制的に終端を行うことがよくある。 .in +4n .nf @@ -179,7 +179,7 @@ if (n > 0) .fi .in .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O If the destination string of a .\"O .BR strcpy () .\"O is not large enough, then anything might happen. @@ -191,17 +191,17 @@ if (n > 0) .\"O but be careful: programs can get changed over time, .\"O in ways that may make the impossible possible. .BR strcpy () -¤Î¼õ¤±Â¦¤Îʸ»úÎ󤬽½Ê¬¤ÊÂ礭¤µ¤Ç¤Ê¤¤¾ì¹ç¡¢²¿¤¬µ¯¤³¤ë¤«¤ï¤«¤é¤Ê¤¤¡£ -¸ÇÄêĹʸ»úÎó¤ò°î¤ì¤µ¤»¤ë¤Î¤Ï¡¢¥Þ¥·¥ó¤ÎÀ©¸æ¤ò¾¸Ãæ¤Ë¼ý¤á¤ë¤¿¤á¤Ë -¥¯¥é¥Ã¥«¡¼¤¬¹¥¤ó¤Ç»È¤¦¥Æ¥¯¥Ë¥Ã¥¯¤Ç¤¢¤ë¡£ -¥×¥í¥°¥é¥à¤Ç¥Ç¡¼¥¿¤ò¥Ð¥Ã¥Õ¥¡¤ËÆɤ߹þ¤ó¤À¤ê¥³¥Ô¡¼¤·¤¿¤ê¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢ -ɬ¤º¤Þ¤ººÇ½é¤Ë½½Ê¬¤ÊÂ礭¤µ¤¬¤¢¤ë¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ëɬÍפ¬¤¢¤ë¡£ -¥×¥í¥°¥é¥Þ¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬ÉÔ²Äǽ¤À¤È¼¨¤»¤ë¾ì¹ç¤Ë¤Ï -¤³¤Î¥Á¥§¥Ã¥¯¤ÏÉÔÍפ«¤â¤·¤ì¤Ê¤¤¤¬¡¢½½Ê¬Ãí°Õ¤¹¤ë¤³¤È¡£ -Ť¤´Ö¤Ë¤Ï¡¢ÉÔ²Äǽ¤À¤Ã¤¿¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¤è¤¦¤ÊÊýË¡¤Ç¥×¥í¥°¥é¥à¤¬ -Êѹ¹¤µ¤ì¤ë¤³¤È¤â¤¢¤ë¤«¤é¤À¡£ +の受け側の文字列が十分な大きさでない場合、何が起こるかわからない。 +固定長文字列を溢れさせるのは、マシンの制御を掌中に収めるために +クラッカーが好んで使うテクニックである。 +プログラムでデータをバッファに読み込んだりコピーしたりする場合には、 +必ずまず最初に十分な大きさがあるかどうかをチェックする必要がある。 +プログラマがオーバーフローが不可能だと示せる場合には +このチェックは不要かもしれないが、十分注意すること。 +長い間には、不可能だったことが可能になるような方法でプログラムが +変更されることもあるからだ。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bcopy (3), .BR memccpy (3), .BR memcpy (3), diff --git a/draft/man3/strdup.3 b/draft/man3/strdup.3 index d18fcf10..1686ba38 100644 --- a/draft/man3/strdup.3 +++ b/draft/man3/strdup.3 @@ -34,10 +34,10 @@ .\" Updated Fri Nov 2 JST 2001 by Kentaro Shirakata .\" .TH STRDUP 3 2011-10-01 "GNU" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 .\"O strdup, strndup, strdupa, strndupa \- duplicate a string -strdup, strndup, strdupa, strndupa \- ʸ»úÎó¤òÊ£À½¤¹¤ë -.SH ½ñ¼° +strdup, strndup, strdupa, strndupa \- 文字列を複製する +.SH 書式 .nf .B #include .sp @@ -53,9 +53,9 @@ strdup, strndup, strdupa, strndupa \- ʸ .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .PD 0 .ad l @@ -72,11 +72,11 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: POSIX_C_SOURCE\ >=\ 200809L || _XOPEN_SOURCE\ >=\ 700 .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .PP @@ -85,7 +85,7 @@ _GNU_SOURCE _GNU_SOURCE .ad .PD -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR strdup () .\"O function returns a pointer to a new string which @@ -94,14 +94,14 @@ _GNU_SOURCE .\"O obtained with \fBmalloc\fP(3), and can be freed with .\"O .BR free (3). .BR strdup () -´Ø¿ô¤Ï¡¢Ê¸»úÎó \fIs\fP¤ÎÊ£À½¤Ç¤¢¤ë -¿·¤·¤¤Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¿·¤·¤¤Ê¸»úÎó¤Î¤¿¤á¤Î¥á¥â¥ê¤Ï +関数は、文字列 \fIs\fPの複製である +新しい文字列へのポインタを返す。 +新しい文字列のためのメモリは .BR malloc (3) -¤ÇÆÀ¤Æ¤¤¤ë¡£ -¤½¤·¤Æ¡¢ +で得ている。 +そして、 .BR free (3) -¤Ç²òÊü¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +で解放することができる。 .\"O The .\"O .BR strndup () @@ -110,9 +110,9 @@ _GNU_SOURCE .\"O If \fIs\fP is longer than \fIn\fP, only \fIn\fP .\"O characters are copied, and a terminating null byte (\(aq\\0\(aq) is added. .BR strndup () -´Ø¿ô¤ÏƱÍͤǤ¢¤ë¤¬¡¢ºÇÂç¤Ç \fIn\fP ʸ»ú¤À¤±¤òÊ£À½¤¹¤ë¡£ -\fIs\fP ¤¬ \fIn\fP ¤è¤ê¤âŤ¤¾ì¹ç¡¢\fIn\fP ʸ»ú¤À¤±¤¬Ê£À½¤µ¤ì¡¢ -½ªÃ¼¤Î NULL ¥Ð¥¤¥È (\(aq\\0\(aq)) ¤¬Äɲ䵤ì¤ë¡£ +関数は同様であるが、最大で \fIn\fP 文字だけを複製する。 +\fIs\fP が \fIn\fP よりも長い場合、\fIn\fP 文字だけが複製され、 +終端の NULL バイト (\(aq\\0\(aq)) が追加される。 .\"O .BR strdupa () .\"O and @@ -122,38 +122,38 @@ _GNU_SOURCE .\"O They are only available when using the GNU .\"O GCC suite, and suffer from the same limitations described in \fBalloca(3)\fP. .BR strdupa () -¤È +と .BR strndupa () -´Ø¿ô¤ÏƱÍͤǤ¢¤ë¤¬¡¢ -¥Ð¥Ã¥Õ¥¡¤ò³ä¤êÅö¤Æ¤ë¤Î¤Ë \fBalloca(3)\fP ¤òÍѤ¤¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU GCC ¤òÍѤ¤¤¿¾ì¹ç¤Ë¤Î¤ßÍ­¸ú¤Ç¡¢ -\fBalloca(3)\fP ¤Çµ­½Ò¤µ¤ì¤Æ¤¤¤ë¤Î¤ÈƱÍͤÎÀ©¸Â¤ò¼õ¤±¤ë¡£ -.SH ÊÖ¤êÃÍ +関数は同様であるが、 +バッファを割り当てるのに \fBalloca(3)\fP を用いる。 +これらの関数は GNU GCC を用いた場合にのみ有効で、 +\fBalloca(3)\fP で記述されているのと同様の制限を受ける。 +.SH 返り値 .BR strdup () -´Ø¿ô¤ÏÊ£À½¤µ¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¢¤Þ¤¿¤Ï -½½Ê¬¤Ê¥á¥â¥ê¤¬³ÎÊݤǤ­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤ÏNULL¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +関数は複製された文字列へのポインタ、または +十分なメモリが確保できなかった場合にはNULLを返す。 +.SH エラー .TP .B ENOMEM -Ê£À½¤µ¤ì¤¿Ê¸»úÎó¤ò³ä¤êÅö¤Æ¤ë½½Ê¬¤Ê¥á¥â¥ê¤¬³ÎÊݤǤ­¤Ê¤«¤Ã¤¿¡£ -.SH ½àµò +複製された文字列を割り当てる十分なメモリが確保できなかった。 +.SH 準拠 .\" 4.3BSD-Reno, not (first) 4.3BSD. .\"O .BR strdup () .\"O conforms to SVr4, 4.3BSD, POSIX.1-2001. .BR strdup () -¤Ï SVr4, 4.3BSD, POSIX.1-2001 ½àµò¤Ç¤¢¤ë¡£ +は SVr4, 4.3BSD, POSIX.1-2001 準拠である。 .\"O .BR strndup () .\"O conforms to POSIX.1-2008. .BR strndup () -¤Ï POSIX.1-2008 ½àµò¤Ç¤¢¤ë¡£ +は POSIX.1-2008 準拠である。 .\"O .BR strdupa () .\"O and .\"O .BR strndupa () .\"O are GNU extensions. .BR strdupa (), .BR strndupa () -¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +は GNU 拡張である。 +.SH 関連項目 .BR alloca (3), .BR calloc (3), .BR free (3), diff --git a/draft/man3/strerror.3 b/draft/man3/strerror.3 index 842e6814..5b68e84d 100644 --- a/draft/man3/strerror.3 +++ b/draft/man3/strerror.3 @@ -41,16 +41,16 @@ .\" Updated 2005-12-26, Akihiro MOTOKI .\" Updated 2007-09-06, Akihiro MOTOKI , LDP v2.64 .\" -.\"WORD GNU-specific GNU »ÅÍͤΠ-.\"WORD XSI-compliant XSI ½àµò¤Î +.\"WORD GNU-specific GNU 仕様の +.\"WORD XSI-compliant XSI 準拠の .\" .TH STRERROR 3 2009-03-30 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O strerror, strerror_r \- return string describing error number -strerror, strerror_r \- ¥¨¥é¡¼ÈÖ¹æ¤òÀâÌÀ¤¹¤ëʸ»úÎó¤òÊÖ¤¹¡£ +strerror, strerror_r \- エラー番号を説明する文字列を返す。 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -62,18 +62,18 @@ strerror, strerror_r \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .\"O The XSI-compliant version of .\"O .BR strerror_r () .\"O is provided if: -¼¡¤Î¾ì¹ç¤Ë¤Ï -XSI ½àµò¤Î¥Ð¡¼¥¸¥ç¥ó¤Î +次の場合には +XSI 準拠のバージョンの .BR strerror_r () -¤¬Ä󶡤µ¤ì¤ë: +が提供される: .br (_POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600) && !\ _GNU_SOURCE .fi @@ -88,22 +88,22 @@ XSI .\"O modified by a subsequent call to \fBperror\fP(3) or .\"O .BR strerror (). .\"O No library function will modify this string. -.SH ÀâÌÀ +.SH 説明 .BR strerror () -´Ø¿ô¤Ï¡¢°ú¤­¿ô \fIerrnum\fP ¤ÇÅϤµ¤ì¤¿¥¨¥é¡¼¥³¡¼¥É¤Ë¤Ä¤¤¤Æ¤Î -ÀâÌÀ¤¬Æþ¤Ã¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -²Äǽ¤Ç¤¢¤ë¤Ê¤é¤Ð¡¢Å¬ÀڤʸÀ¸ì¤òÁªÂò¤¹¤ë¤¿¤á¤Ë¡¢ -¸½ºß¤Î¥í¥±¡¼¥ë¤Î +関数は、引き数 \fIerrnum\fP で渡されたエラーコードについての +説明が入った文字列へのポインタを返す。 +可能であるならば、適切な言語を選択するために、 +現在のロケールの .B LC_MESSAGES -¤ò»È¤¦¡£ -¤³¤Îʸ»úÎó¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÇÊѹ¹¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¤¬¡¢ -¤½¤Î¸å¤Ëµ¯¤³¤ë +を使う。 +この文字列は、アプリケーションで変更してはならないが、 +その後に起こる .BR perror (3) -¤ä +や .BR strerror () -¤Î¸Æ¤Ó½Ð¤·¤Ç -Êѹ¹¤µ¤ì¤Æ¤â¹½¤ï¤Ê¤¤¡£ -¤³¤Îʸ»úÎó¤òÊѹ¹¤¹¤ë¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ï¤Ê¤¤¡£ +の呼び出しで +変更されても構わない。 +この文字列を変更するライブラリ関数はない。 .\"O The .\"O .BR strerror_r () @@ -119,17 +119,17 @@ XSI .\"O settings shown in the SYNOPSIS; .\"O otherwise the GNU-specific version is provided. .BR strerror_r () -´Ø¿ô¤Ï +関数は .BR strerror () -¤È»÷¤Æ¤¤¤ë¤¬¡¢ -¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ë¤ÏÆó¼ïÎà¤Î¥Ð¡¼¥¸¥ç¥ó¤¬Â¸ºß¤·¡¢ -POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤¿ XSI ½àµò¤Î¥Ð¡¼¥¸¥ç¥ó -(glibc 2.3.4 °Ê¹ß¤ÇÍøÍѲÄǽ) ¤È¡¢ -GNU »ÅÍͤΥС¼¥¸¥ç¥ó (glibc 2.0 °Ê¹ß¤ÇÍøÍѲÄǽ) ¤Ç¤¢¤ë¡£ -¡Ö½ñ¼°¡×¤ÎÀá¤Ëµ­ºÜ¤µ¤ì¤¿µ¡Ç½¸¡ºº¥Þ¥¯¥í¤Î¾ì¹ç¤Ë¤Ï¡¢ -XSI ½àµò¤Î¥Ð¡¼¥¸¥ç¥ó¤¬Ä󶡤µ¤ì¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï GNU »ÅÍͤΥС¼¥¸¥ç¥ó¤¬Ä󶡤µ¤ì¤ë¡£ +と似ているが、 +スレッドセーフである。 +この関数には二種類のバージョンが存在し、 +POSIX.1-2001 で規定された XSI 準拠のバージョン +(glibc 2.3.4 以降で利用可能) と、 +GNU 仕様のバージョン (glibc 2.0 以降で利用可能) である。 +「書式」の節に記載された機能検査マクロの場合には、 +XSI 準拠のバージョンが提供される。 +それ以外の場合には GNU 仕様のバージョンが提供される。 .\"O If no feature test macros are explicitly defined, .\"O then (since glibc 2.4) .\"O .B _POSIX_SOURCE @@ -137,13 +137,13 @@ XSI .\"O 200112L, so that the XSI-compliant version of .\"O .BR strerror_r () .\"O is provided by default. -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬°ì¤Ä¤âÌÀ¼¨Åª¤ËÄêµÁ¤µ¤ì¤Ê¤¤¾ì¹ç¡¢ -(glibc 2.4 °Ê¹ß¤Ç¤Ï) ¥Ç¥Õ¥©¥ë¥È¤Ç +機能検査マクロが一つも明示的に定義されない場合、 +(glibc 2.4 以降では) デフォルトで .B _POSIX_SOURCE -¤ÏÃÍ 200112l ¤ÇÄêµÁ¤µ¤ì¡¢¤½¤Î·ë²Ì -XSI ½àµò¤Î¥Ð¡¼¥¸¥ç¥ó¤Î +は値 200112l で定義され、その結果 +XSI 準拠のバージョンの .BR strerror_r () -¤¬¥Ç¥Õ¥©¥ë¥È¤ÇÄ󶡤µ¤ì¤ë¡£ +がデフォルトで提供される。 .\"O The XSI-compliant .\"O .BR strerror_r () @@ -152,15 +152,15 @@ XSI .\"O .I buf .\"O of length .\"O .IR buflen . -°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ -XSI ½àµò¤Î +移植性が必要なアプリケーションでは、 +XSI 準拠の .BR strerror_r () -¤ò»È¤¦Êý¤¬¤è¤¤¡£ -¤³¤Î´Ø¿ô¤Ï¡¢¥æ¡¼¥¶¡¼¤«¤éÄ󶡤µ¤ì¤ëŤµ +を使う方がよい。 +この関数は、ユーザーから提供される長さ .I buflen -¤Î¥Ð¥Ã¥Õ¥¡ +のバッファ .I buf -¤Ë¥¨¥é¡¼Ê¸»úÎó¤òÊÖ¤¹¡£ +にエラー文字列を返す。 .\"O The GNU-specific .\"O .BR strerror_r () @@ -178,26 +178,26 @@ XSI .\"O bytes are stored (the string may be truncated if .\"O .I buflen .\"O is too small) and the string always includes a terminating null byte. -GNU »ÅÍͤΠ+GNU 仕様の .BR strerror_r () -¤Ï¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò³ÊǼ¤·¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -ÊÖ¤êÃͤϡ¢¤³¤Î´Ø¿ô¤¬ +は、エラーメッセージを格納した文字列へのポインタを返す。 +返り値は、この関数が .I buf -¤Ë³ÊǼ¤·¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤«¡¢ -²¿¤é¤«¤Î (ÉÔÊѤÊ) ÀÅŪ¤Êʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¢¤Î¤¤¤º¤ì¤«¤È¤Ê¤ë -(¸å¼Ô¤Î¾ì¹ç¤Ï +に格納した文字列へのポインタか、 +何らかの (不変な) 静的な文字列へのポインタ、のいずれかとなる +(後者の場合は .I buf -¤Ï»ÈÍѤµ¤ì¤Ê¤¤)¡£ +は使用されない)。 .I buf -¤Ëʸ»úÎ󤬳ÊǼ¤µ¤ì¤ë¾ì¹ç¤Ï¡¢ -ºÇÂç¤Ç +に文字列が格納される場合は、 +最大で .I buflen -¥Ð¥¤¥È¤¬³ÊǼ¤µ¤ì +バイトが格納され .RI ( buflen -¤¬¾®¤µ²á¤®¤¿¤È¤­¤Ë¤Ïʸ»úÎó¤ÏÀÚ¤êµÍ¤á¤é¤ì¤ë)¡¢ -ʸ»úÎó¤Ë¤Ïɬ¤º½ªÃ¼¥Ì¥ëʸ»ú¤¬´Þ¤Þ¤ì¤ë¡£ +が小さ過ぎたときには文字列は切り詰められる)、 +文字列には必ず終端ヌル文字が含まれる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR strerror () .\"O and @@ -206,11 +206,11 @@ GNU .\"O the appropriate error description string, .\"O or an "Unknown error nnn" message if the error number is unknown. .BR strerror () -¤È +と .BR strerror_r () -¤Ï¥¨¥é¡¼ÆâÍƤòÀâÌÀ¤¹¤ë -ʸ»úÎó¤òÊÖ¤¹¡£¥¨¥é¡¼Èֹ椬̤ÃΤξì¹ç¤Ï "Unknown error nnn" ¤È¤¤¤¦ -¥á¥Ã¥»¡¼¥¸¤òÊÖ¤¹¡£ +はエラー内容を説明する +文字列を返す。エラー番号が未知の場合は "Unknown error nnn" という +メッセージを返す。 .\"O The XSI-compliant .\"O .BR strerror_r () @@ -218,42 +218,42 @@ GNU .\"O on error, \-1 is returned and .\"O .I errno .\"O is set to indicate the error. -XSI ½àµò¤Î +XSI 準拠の .BR strerror_r () -´Ø¿ô¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï¡¢ \-1 ¤òÊÖ¤·¡¢ +関数は成功すると 0 を返す。 +エラーの場合には、 \-1 を返し、 .I errno -¤Ë¥¨¥é¡¼ÆâÍƤò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ +にエラー内容を示す値をセットする。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O The value of .\"O .I errnum .\"O is not a valid error number. .I errnum -¤ÎÃͤ¬Í­¸ú¤Ê¥¨¥é¡¼ÈÖ¹æ¤Ç¤Ï¤Ê¤¤¡£ +の値が有効なエラー番号ではない。 .TP .B ERANGE .\"O Insufficient storage was supplied to contain the error description string. -¥¨¥é¡¼¥³¡¼¥É¤òÀâÌÀ¤¹¤ëʸ»úÎó¤Î¤¿¤á¤Ë¡¢½¼Ê¬¤ÊÎΰ褬³ÎÊݤǤ­¤Ê¤«¤Ã¤¿¡£ +エラーコードを説明する文字列のために、充分な領域が確保できなかった。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR strerror () .\"O is specified by POSIX.1-2001, C89, C99. .\"O .BR strerror_r () .\"O is specified by POSIX.1-2001. .BR strerror () -¤Ï POSIX.1-2001, C89, C99 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は POSIX.1-2001, C89, C99 で規定されている。 .BR strerror_r () -¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は POSIX.1-2001 で規定されている。 .\"O The GNU-specific .\"O .BR strerror_r () .\"O function is a nonstandard extension. -GNU »ÅÍͤΠ+GNU 仕様の .BR strerror_r () -´Ø¿ô¤ÏÈóɸ½à¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ +関数は非標準の拡張である。 .\"O POSIX.1-2001 permits .\"O .BR strerror () @@ -273,28 +273,28 @@ GNU .\"O to .\"O .B EINVAL .\"O if the error number is unknown. -POSIX.1-2001 ¤Ï¡¢ +POSIX.1-2001 は、 .BR strerror () -¤¬¥¨¥é¡¼¤ËÁø¶ø¤·¤¿¾ì¹ç¤Ë +がエラーに遭遇した場合に .I errno -¤ò¥»¥Ã¥È¤¹¤ë¤³¤È¤òǧ¤á¤Æ¤¤¤ë¤¬¡¢¥¨¥é¡¼È¯À¸»þ¤Ë´Ø¿ô¤Î·ë²Ì¤È¤·¤Æ -¤É¤ó¤ÊÃͤòÊÖ¤¹¤Ù¤­¤«¤òµ¬Äꤷ¤Æ¤Ê¤¤¡£ -¤¢¤ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -.\" Î㤨¤Ð Solaris 8, HP-UX 11 -¥¨¥é¡¼Èֹ椬̤ÃΤξì¹ç¡¢ +をセットすることを認めているが、エラー発生時に関数の結果として +どんな値を返すべきかを規定してない。 +あるシステムでは、 +.\" 例えば Solaris 8, HP-UX 11 +エラー番号が未知の場合、 .BR strerror () -¤Ï NULL ¤òÊÖ¤¹¡£ -¾¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -.\" Î㤨¤Ð FreeBSD 5.4, Tru64 5.1B -¥¨¥é¡¼Èֹ椬̤ÃΤξì¹ç¡¢ +は NULL を返す。 +他のシステムでは、 +.\" 例えば FreeBSD 5.4, Tru64 5.1B +エラー番号が未知の場合、 .BR strerror () -¤Ï "Error nnn occurred" ¤È¤¤¤Ã¤¿Ê¸»úÎó¤òÊÖ¤·¡¢ +は "Error nnn occurred" といった文字列を返し、 .I errno -¤Ë +に .B EINVAL -¤ò¥»¥Ã¥È¤¹¤ë¡£ +をセットする。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR err (3), .BR errno (3), .BR error (3), diff --git a/draft/man3/strfmon.3 b/draft/man3/strfmon.3 index 751f82d5..f38f5cc8 100644 --- a/draft/man3/strfmon.3 +++ b/draft/man3/strfmon.3 @@ -23,42 +23,42 @@ .\" Japanese Version Copyright (c) 2001 NAKANO Takeo all rights reserved. .\" Translated Thu Fri 08 2001 by NAKANO Takeo .\" -.\"WORD: numeric fill character ¿ôÃÍËä¤áʸ»ú -.\"WORD: grouping character ¥°¥ë¡¼¥×²½Ê¸»ú -.\"WORD: left precision º¸ÀºÅÙ -.\"WORD: right precision º¸ÀºÅÙ -.\"WORD: radix (character) ´ð¿ôÅÀ(ʸ»ú) -.\"WORD: conversion character ÊÑ´¹Ê¸»ú -.\"WORD: international currency format ¹ñºÝÄ̲ߥե©¡¼¥Þ¥Ã¥È -.\"WORD: national currency format ¹ñÆâÄ̲ߥե©¡¼¥Þ¥Ã¥È +.\"WORD: numeric fill character 数値埋め文字 +.\"WORD: grouping character グループ化文字 +.\"WORD: left precision 左精度 +.\"WORD: right precision 左精度 +.\"WORD: radix (character) 基数点(文字) +.\"WORD: conversion character 変換文字 +.\"WORD: international currency format 国際通貨フォーマット +.\"WORD: national currency format 国内通貨フォーマット .\" .TH STRFMON 3 2000-12-05 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O strfmon \- convert monetary value to a string -.SH ̾Á° -strfmon \- ¶â³Û¤ÎÃͤòʸ»úÎó¤ËÊÑ´¹¤¹¤ë +.SH 名前 +strfmon \- 金額の値を文字列に変換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "ssize_t strfmon(char *" s ", size_t " max ", const char *" format , .B "...);" .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR strfmon () .\"O function formats the specified amounts .\"O according to the format specification \fIformat\fP and places the .\"O result in the character array \fIs\fP of size \fImax\fP. .BR strfmon () -´Ø¿ô¤Ï¡¢»ØÄꤵ¤ì¤¿¿ôÎ̤ò +関数は、指定された数量を .I format -¤Ç»ØÄꤵ¤ì¤¿¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¤·¤¿¤¬¤Ã¤ÆÀ°·Á¤·¡¢ -·ë²Ì¤ò¥µ¥¤¥º +で指定されたフォーマットにしたがって整形し、 +結果をサイズ .I max -¤Îʸ»úÇÛÎó +の文字配列 .I s -¤Ë½ñ¤­¤³¤à¡£ +に書きこむ。 .PP .\"O Ordinary characters in \fIformat\fP are copied to \fIs\fP .\"O without conversion. @@ -67,10 +67,10 @@ strfmon \- .\"O Immediately following it there can be zero or more .\"O of the following flags: .I format -Ãæ¤ÎÄ̾ï¤Îʸ»ú¤Ï¡¢ÊÑ´¹¤µ¤ì¤º¤Ë¤½¤Î¤Þ¤Þ +中の通常の文字は、変換されずにそのまま .I s -¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¡£ÊÑ´¹»ØÄê¤Ï \(aq%\(aq ʸ»ú¤Ç»Ï¤Þ¤ë¡£ -¤³¤Îľ¸å¤Ë¤Ï¡¢°Ê²¼¤Î¥Õ¥é¥°¤ò 0 ¸Ä°Ê¾å³¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +にコピーされる。変換指定は \(aq%\(aq 文字で始まる。 +この直後には、以下のフラグを 0 個以上続けることができる。 .TP .BI = f .\"O The single-byte character @@ -78,51 +78,51 @@ strfmon \- .\"O is used as the numeric fill character (to be used with .\"O a left precision, see below). .\"O When not specified, the space character is used. -1 ¥Ð¥¤¥Èʸ»ú +1 バイト文字 .I f -¤ò¿ôÃÍËä¤áʸ»ú (numeric fill character) ¤Ë¤¹¤ë -(º¸ÀºÅ٤ȶ¦¤ËÍѤ¤¤ë¡£°Ê²¼¤ò»²¾È)¡£ -»ØÄꤵ¤ì¤Ê¤¤¤È¡¢¥¹¥Ú¡¼¥¹Ê¸»ú¤¬ÍѤ¤¤é¤ì¤ë¡£ +を数値埋め文字 (numeric fill character) にする +(左精度と共に用いる。以下を参照)。 +指定されないと、スペース文字が用いられる。 .TP .B ^ .\"O Do not use any grouping characters that might be defined .\"O for the current locale. .\"O By default, grouping is enabled. -¸½ºß¤Î¥í¥±¡¼¥ë¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤Ç¤¢¤í¤¦¥°¥ë¡¼¥×²½Ê¸»ú (grouping character) -¤ò°ìÀڻȤï¤Ê¤¤¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥°¥ë¡¼¥×²½¤ÏÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +現在のロケールで定義されているであろうグループ化文字 (grouping character) +を一切使わない。デフォルトではグループ化は有効になっている。 .TP .\"O .BR ( " or " + -.BR ( " ¤Þ¤¿¤Ï " + +.BR ( " または " + .\"O The ( flag indicates that negative amounts should be enclosed between .\"O parentheses. .\"O The + flag indicates that signs should be handled .\"O in the default way, that is, amounts are preceded by the locale's .\"O sign indication, for example, nothing for positive, "\-" for negative. -( ¥Õ¥é¥°¤Ï¡¢Éé¤Î¿ôÃͤò³ç¸Ì¤Ç³ç¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -+ ¥Õ¥é¥°¤ÏÉä¹æ¤ò¥Ç¥Õ¥©¥ë¥È¤Î¤è¤¦¤Ë¼è¤ê°·¤¦¤³¤È¤ò°ÕÌ£¤¹¤ë -(¤¹¤Ê¤ï¤Á¿ôÃͤÎÁ°¤Ë¥í¥±¡¼¥ë¤ÎÉä¹æ¥Þ¡¼¥¯¤¬ÃÖ¤«¤ì¤ë¡£ -Î㤨¤ÐÀµ¤Ê¤é¤Ê¤Ë¤â¤Ê¤¯¡¢Éé¤Ê¤é \(aq\-\(aq ¤òÃÖ¤¯¡¢¤Ê¤É)¡£ +( フラグは、負の数値を括弧で括ることを意味する。 ++ フラグは符号をデフォルトのように取り扱うことを意味する +(すなわち数値の前にロケールの符号マークが置かれる。 +例えば正ならなにもなく、負なら \(aq\-\(aq を置く、など)。 .TP .B ! .\"O Omit the currency symbol. -Ä̲ߥ·¥ó¥Ü¥ë¤ò¾Êά¤¹¤ë¡£ +通貨シンボルを省略する。 .TP .B \- .\"O Left justify all fields. .\"O The default is right justification. -¤¹¤Ù¤Æ¤Î¥Õ¥£¡¼¥ë¥É¤òº¸µÍ¤á¤Ë¤¹¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ï±¦µÍ¤á¡£ +すべてのフィールドを左詰めにする。デフォルトは右詰め。 .LP .\"O Next, there may be a field width: a decimal digit string specifying .\"O a minimum field width in bytes. .\"O The default is 0. .\"O A result smaller than this width is padded with spaces .\"O (on the left, unless the left-justify flag was given). -¼¡¤Î°ÌÃ֤ˤϡ¢¥Õ¥£¡¼¥ë¥É¤ÎÉý¤ò»ØÄê¤Ç¤­¤ë¡£ -10 ¿Ê¤Î¿ôÃÍʸ»úÎó¤Ç¡¢¥Õ¥£¡¼¥ë¥É¤ÎºÇ¾®Éý¤ò¥Ð¥¤¥Èñ°Ì¤Ç»ØÄꤹ¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 0¡£ -·ë²Ì¤¬¤³¤ÎÉý¤è¤ê¤â¶¹¤¯¤Ê¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ -ÉÔ­ʬ¤¬¥¹¥Ú¡¼¥¹¤ÇËä¤á¤é¤ì¤ë -(º¸µÍ¤á¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ðº¸Â¦¤¬Ëä¤á¤é¤ì¤ë)¡£ +次の位置には、フィールドの幅を指定できる。 +10 進の数値文字列で、フィールドの最小幅をバイト単位で指定する。 +デフォルトは 0。 +結果がこの幅よりも狭くなった場合には、 +不足分がスペースで埋められる +(左詰めフラグが指定されていなければ左側が埋められる)。 .LP .\"O Next, there may be a left precision of the form "#" followed by .\"O a decimal digit string. @@ -130,11 +130,11 @@ strfmon \- .\"O radix character is smaller than this, the representation is .\"O padded on the left with the numeric fill character. .\"O Grouping characters are not counted in this field width. -¼¡¤Î°ÌÃ֤ˤϡ¢"#" ¤Ë 10 ¿Ê¿ôÃÍʸ»úÎó¤ò³¤±¤¿·Á¼°¤Ç¡¢ -º¸ÀºÅÙ (left precision) ¤ò»ØÄê¤Ç¤­¤ë¡£ -Ä̲ߤδð¿ôÅÀ (radix) ¤è¤êº¸Â¦¤Î¿ôÃͤηå¿ô¤¬¤³¤Î»ØÄê¤è¤ê¾®¤µ¤¤¾ì¹ç¤Ï¡¢ -¿ôÃÍËä¤áʸ»ú¤Çº¸Â¦¤¬Ëä¤á¤é¤ì¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥ÉÉý¤Î»ØÄê¤Ç¤Ï¡¢¥°¥ë¡¼¥×²½Ê¸»ú¤Ï¥«¥¦¥ó¥È¤µ¤ì¤Ê¤¤¡£ +次の位置には、"#" に 10 進数値文字列を続けた形式で、 +左精度 (left precision) を指定できる。 +通貨の基数点 (radix) より左側の数値の桁数がこの指定より小さい場合は、 +数値埋め文字で左側が埋められる。 +このフィールド幅の指定では、グループ化文字はカウントされない。 .LP .\"O Next, there may be a right precision of the form "." followed by .\"O a decimal digit string. @@ -150,53 +150,53 @@ strfmon \- .\"O .BR LC_MONETARY , .\"O and may differ from that specified by .\"O .BR LC_NUMERIC .) -¼¡¤Î°ÌÃ֤ˤϡ¢"." ¤Ë 10 ¿Ê¿ôÃÍʸ»úÎó¤ò³¤±¤¿·Á¼°¤Ç¡¢ -±¦ÀºÅÙ (right precision) ¤ò»ØÄê¤Ç¤­¤ë¡£ -À°·Á¤µ¤ì¤ë¿ôÃͤϡ¢À°·ÁÁ°¤Ë¤³¤Î·å¿ô¤Ë´Ý¤á¤é¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥«¥ì¥ó¥È¥í¥±¡¼¥ë¤Î +次の位置には、"." に 10 進数値文字列を続けた形式で、 +右精度 (right precision) を指定できる。 +整形される数値は、整形前にこの桁数に丸められる。 +デフォルトではカレントロケールの .I frac_digits -¤È +と .I int_frac_digits -¤Î»ØÄê¤òÍѤ¤¤ë¡£ -±¦ÀºÅÙ¤¬ 0 ¤Î¾ì¹ç¤Ï¡¢´ð¿ôÅÀʸ»ú (radix character) ¤Ï°õ»ú¤µ¤ì¤Ê¤¤ -(¤³¤³¤Ç¤Î´ð¿ôÅÀʸ»ú¤Ï +の指定を用いる。 +右精度が 0 の場合は、基数点文字 (radix character) は印字されない +(ここでの基数点文字は .B LC_MONETARY -¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ +で定義されており、 .B LC_NUMERIC -¤Î»ØÄê¤È¤Ï°Û¤Ê¤Ã¤Æ¤¤¤Æ¤â¤è¤¤)¡£ +の指定とは異なっていてもよい)。 .LP .\"O Finally, the conversion specification must be ended with a .\"O conversion character. .\"O The three conversion characters are -ºÇ¸å¤Ë¡¢ÊÑ´¹»ØÄê¤ÏÊÑ´¹Ê¸»ú (conversion character) -¤Ç½ªÎ»¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -ÊÑ´¹Ê¸»ú¤Ë¤Ï°Ê²¼¤Î 3 ¤Ä¤¬¤¢¤ë¡£ +最後に、変換指定は変換文字 (conversion character) +で終了しなければならない。 +変換文字には以下の 3 つがある。 .TP .B % .\"O (In this case the entire specification must be exactly "%%".) .\"O Put a \(aq%\(aq character in the result string. -(¤³¤Î¾ì¹ç¤Ï»ØÄêÁ´ÂΤ¬ "%%" ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£) -·ë²Ì¤Îʸ»úÎó¤Ë \(aq%\(aq ʸ»ú¤ò½ñ¤­¤³¤à¡£ +(この場合は指定全体が "%%" でなければならない。) +結果の文字列に \(aq%\(aq 文字を書きこむ。 .TP .B i .\"O One argument of type .\"O .I double .\"O is converted using the locale's international currency format. .I double -·¿¤Î°ú¤­¿ô¤Ò¤È¤Ä¤¬¡¢ -¥í¥±¡¼¥ë¤Î¹ñºÝÄ̲ߥե©¡¼¥Þ¥Ã¥È (international currency format) -¤òÍѤ¤¤ÆÊÑ´¹¤µ¤ì¤ë¡£ +型の引き数ひとつが、 +ロケールの国際通貨フォーマット (international currency format) +を用いて変換される。 .TP .B n .\"O One argument of type .\"O .I double .\"O is converted using the locale's national currency format. .I double -·¿¤Î°ú¤­¿ô¤Ò¤È¤Ä¤¬¡¢ -¥í¥±¡¼¥ë¤Î¹ñÆâÄ̲ߥե©¡¼¥Þ¥Ã¥È (national currency format) -¤òÍѤ¤¤ÆÊÑ´¹¤µ¤ì¤ë¡£ +型の引き数ひとつが、 +ロケールの国内通貨フォーマット (national currency format) +を用いて変換される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR strfmon () .\"O function returns the number of characters placed @@ -208,25 +208,25 @@ strfmon \- .\"O .BR E2BIG , .\"O returns \-1, and the contents of the array is undefined. .BR strfmon () -´Ø¿ô¤Ï¡¢·ë²Ì¤Îʸ»úÎ󤬽ªÃ¼¤Î NULL ¥Ð¥¤¥È¤ò´Þ¤á¤ÆÇÛÎó +関数は、結果の文字列が終端の NULL バイトを含めて配列 .I s -¤Ë¼ý¤Þ¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ +に収まった場合には、 .I s -¤Ë½ñ¤­¤³¤Þ¤ì¤¿Ê¸»ú¿ô¤òÊÖ¤¹¡£NULL ¥Ð¥¤¥È¤Ïʸ»ú¿ô¤ËÆþ¤é¤Ê¤¤¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï¡¢ +に書きこまれた文字数を返す。NULL バイトは文字数に入らない。 +それ以外の場合には、 .I errno -¤Ë +に .B E2BIG -¤òÀßÄꤷ¤Æ \-1 ¤òÊÖ¤¹¡£ -¤³¤Î¾ì¹ç¤ÎÇÛÎó¤ÎÆâÍƤÏ̤ÄêµÁ¤Ç¤¢¤ë¡£ +を設定して \-1 を返す。 +この場合の配列の内容は未定義である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O Not in POSIX.1-2001. .\"O Present on several other systems. -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -¾¤Î¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¡£ +POSIX.1-2001 にはない。 +他のいくつかのシステムに存在する。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The call .in +4n .nf @@ -236,7 +236,7 @@ strfmon(buf, sizeof(buf), "[%^=*#6n] [%=*#6i]", .fi .in -¤Î¤è¤¦¤Ê´Ø¿ô¥³¡¼¥ë¤Î½ÐÎϤϡ¢¥ª¥é¥ó¥À¤Î¥í¥±¡¼¥ë¤Ç¤Ï°Ê²¼¤Î¤è¤¦¤Ê½ÐÎϤˤʤ롣 +のような関数コールの出力は、オランダのロケールでは以下のような出力になる。 .\"O outputs .in +4n @@ -244,7 +244,7 @@ strfmon(buf, sizeof(buf), "[%^=*#6n] [%=*#6i]", .in .\"O in the Dutch locale (with fl for "florijnen" and NLG for Netherlands Guilders). -(fl ¤Ï "florijnen" ¤Î°Õ¡£NLG ¤Ï Netherlands Guilder¡£) +(fl は "florijnen" の意。NLG は Netherlands Guilder。) .\"O The grouping character is very ugly because it takes as much space .\"O as a digit, while it should not take more than half that, .\"O and will no doubt cause confusion. @@ -253,15 +253,15 @@ strfmon(buf, sizeof(buf), "[%^=*#6n] [%=*#6i]", .\"O This may be a bug in the locale files. .\"O The Italian, Australian, Swiss .\"O and Portuguese locales yield -¥°¥ë¡¼¥×²½Ê¸»ú¤òÍѤ¤¤ë¤ÈÈó¾ï¤Ë½¹¤¯¤Ê¤ë¡£ -Ʊ»þ¤Ë´Ö°ã¤¤¤Ê¤¯º®Íð¤Î¸¶°ø¤Ë¤â¤Ê¤Ã¤Æ¤·¤Þ¤¦¤À¤í¤¦¡£ -¤³¤ì¤Ï¿ôÃͤÎȾʬ°Ê²¼¤ÎÉý¤Ç¤¢¤ë¤Ù¤­¤À¤¬¡¢ -¿ôÃͤÈƱ¤¸¤À¤±¤ÎÉý¤ò¼è¤Ã¤Æ¤·¤Þ¤¦¤«¤é¤Ç¤¢¤ë¡£ -¤Ò¤É¤¤¤³¤È¤Ë¡¢ "fl" ¤ÎÁ°¸å¤Ë¤Ï¥¹¥Ú¡¼¥¹¤¬Æþ¤Ã¤Æ¤·¤Þ¤¤¡¢ -¤Þ¤¿ "NLG" ¤ÎÁ°¤Ë¤Ï 1 ¤Ä¡¢¸å¤Ë¤Ï 2 ¤Ä¤Î¥¹¥Ú¡¼¥¹¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï¥í¥±¡¼¥ë¥Õ¥¡¥¤¥ë¤Î¥Ð¥°¤Ç¤¢¤í¤¦¡£ -¥¤¥¿¥ê¥¢¡¦¥ª¡¼¥¹¥È¥é¥ê¥¢¡¦¥¹¥¤¥¹¡¦¥Ý¥ë¥È¥¬¥ë¤Î -³Æ¥í¥±¡¼¥ë¤Ç¤Î·ë²Ì¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¡£ +グループ化文字を用いると非常に醜くなる。 +同時に間違いなく混乱の原因にもなってしまうだろう。 +これは数値の半分以下の幅であるべきだが、 +数値と同じだけの幅を取ってしまうからである。 +ひどいことに、 "fl" の前後にはスペースが入ってしまい、 +また "NLG" の前には 1 つ、後には 2 つのスペースが置かれている。 +これはロケールファイルのバグであろう。 +イタリア・オーストラリア・スイス・ポルトガルの +各ロケールでの結果は以下のようになる。 .in +4n [ L. **1235] [ ITL **1.235] @@ -273,7 +273,7 @@ strfmon(buf, sizeof(buf), "[%^=*#6n] [%=*#6i]", [ **1234$57Esc] [ **1.234$57PTE ] .in .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR setlocale (3), .BR sprintf (3), .BR locale (7) diff --git a/draft/man3/strfry.3 b/draft/man3/strfry.3 index c7a5f673..a0cc788d 100644 --- a/draft/man3/strfry.3 +++ b/draft/man3/strfry.3 @@ -31,21 +31,21 @@ .\" .TH STRFRY 3 2010-09-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O strfry \- randomize a string -strfry \- ʸ»úÎó¤ò¥é¥ó¥À¥à¤ËʤÙÊѤ¨¤ë +strfry \- 文字列をランダムに並べ変える .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "char *strfry(char *" string ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR strfry () .\"O function randomizes the contents of \fIstring\fP by @@ -54,28 +54,28 @@ strfry \- ʸ .\"O to randomly swap characters in the string. .\"O The result is an anagram of \fIstring\fP. .BR strfry () -´Ø¿ô¤Ï¡¢Ê¸»úÎó \fIstring\fP ¤ÎÆâÍƤò¥é¥ó¥À¥à¤ËʤӴ¹¤¨¤ë¡£ -ʤӴ¹¤¨¤Ï¡¢ +関数は、文字列 \fIstring\fP の内容をランダムに並び換える。 +並び換えは、 .BR rand (3) -´Ø¿ô¤òÍѤ¤¤Æ¡¢Ê¸»úÎóÃæ¤Î³Æʸ»ú¤ò̵ºî°Ù¤Ë -¸ò´¹¤¹¤ë¤³¤È¤Ç¼Â¸½¤µ¤ì¤ë¡£·ë²Ì¤Ï¡¢Ê¸»úÎó \fIstring\fP ¤Î¥¢¥Ê¥°¥é¥à¤Ç¤¢¤ë¡£ +関数を用いて、文字列中の各文字を無作為に +交換することで実現される。結果は、文字列 \fIstring\fP のアナグラムである。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR strfry () .\"O functions returns a pointer to the randomized .\"O string. .BR strfry () -´Ø¿ô¤Ï¡¢¥é¥ó¥À¥à¤ËʤӴ¹¤¨¤é¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +関数は、ランダムに並び換えられた文字列へのポインタを返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The .\"O .BR strfry () .\"O function is unique to the .\"O GNU C Library. .BR strfry () -´Ø¿ô¤Ï GNU C ¥é¥¤¥Ö¥é¥ê¤ËÆÃÍ­¤Ç¤¢¤ë¡£ +関数は GNU C ライブラリに特有である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR memfrob (3), .BR string (3) diff --git a/draft/man3/strftime.3 b/draft/man3/strftime.3 index 2675a18d..799f35bb 100644 --- a/draft/man3/strftime.3 +++ b/draft/man3/strftime.3 @@ -42,34 +42,34 @@ .\" Updated 2005-12-05, Akihiro MOTOKI, LDP v2.16 .\" Updated 2010-04-18, Akihiro MOTOKI, LDP v3.24 .\" -.\"WORD: conversion specifier ÊÑ´¹»ØÄêʸ»ú -.\"WORD: conversion specification ÊÑ´¹»ØÄê -.\"WORD: modifier ½¤¾þ»Ò -.\"WORD: broken-down time Í×ÁÇÊ̤Î(»þ¹ï) -.\"WORD: Single UNIX Specification Åý°ì UNIX µ¬³Ê -.\"WORD: ISO\ 8601 week-based ISO\ 8601 ¤Î½µÃ±°Ìɽµ­ +.\"WORD: conversion specifier 変換指定文字 +.\"WORD: conversion specification 変換指定 +.\"WORD: modifier 修飾子 +.\"WORD: broken-down time 要素別の(時刻) +.\"WORD: Single UNIX Specification 統一 UNIX 規格 +.\"WORD: ISO\ 8601 week-based ISO\ 8601 の週単位表記 .\" .TH STRFTIME 3 2010-01-17 "GNU" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 .\"O strftime \- format date and time -strftime \- ÆüÉÕ¤ª¤è¤Ó»þ¹ï¤Îʸ»úÎó¤Ø¤ÎÊÑ´¹ -.SH ½ñ¼° +strftime \- 日付および時刻の文字列への変換 +.SH 書式 .nf .B #include .sp .BI "size_t strftime(char *" s ", size_t " max ", const char *" format , .BI " const struct tm *" tm ); .fi -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR strftime () .\"O function formats the broken-down time \fItm\fP .\"O according to the format specification \fIformat\fP and places the .\"O result in the character array \fIs\fP of size \fImax\fP. .BR strftime () -´Ø¿ô ¤Ï¡¢Í×ÁÇÊ̤λþ¹ï \fItm\fP ¤ÎÆâÍƤò -\fIformat\fP ¤Ç»ØÄꤵ¤ì¤¿½ñ¼°»ØÄê¤Ë¤·¤¿¤¬¤Ã¤ÆÊÑ´¹¤·¡¢ -Ťµ \fImax\fP ¤Îʸ»úÎó \fIs\fP ¤Ë½ñ¤­¹þ¤à¡£ +関数 は、要素別の時刻 \fItm\fP の内容を +\fIformat\fP で指定された書式指定にしたがって変換し、 +長さ \fImax\fP の文字列 \fIs\fP に書き込む。 .\" FIXME POSIX says: Local timezone information is used as though .\" strftime() called tzset(). But this doesn't appear to be the case .PP @@ -81,48 +81,48 @@ strftime \- .\"O .IR "conversion specifier character". .\"O All other character sequences are .\"O .IR "ordinary character sequences". -½ñ¼°»ØÄê¤Ï NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ç¤¢¤ê¡¢ -¡ÖÊÑ´¹»ØÄê (conversion specification)¡×¤È¸Æ¤Ð¤ì¤ëÆÃÊ̤Êʸ»úÎó¤ò -´Þ¤Þ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -³Æ¡¹¤ÎÊÑ´¹»ØÄê¤Ï \(aq%\(aq ʸ»ú¤Ç»Ï¤Þ¤ê¡¢ -¡ÖÊÑ´¹»ØÄêʸ»ú (conversion specifier character)¡×¤È¸Æ¤Ð¤ì¤ë -²¿¤é¤«Â¾¤Îʸ»ú¤Ç½ªÃ¼¤µ¤ì¤ë¡£¾åµ­°Ê³°¤ÎÁ´¤Æ¤Îʸ»úÎó¤Ï -¡ÖÄ̾ï¤Îʸ»úÎó (ordinary character sequence)¡×¤È¤Ê¤ë¡£ +書式指定は NULL 終端された文字列であり、 +「変換指定 (conversion specification)」と呼ばれる特別な文字列を +含まることができる。 +各々の変換指定は \(aq%\(aq 文字で始まり、 +「変換指定文字 (conversion specifier character)」と呼ばれる +何らか他の文字で終端される。上記以外の全ての文字列は +「通常の文字列 (ordinary character sequence)」となる。 .PP .\"O The characters of ordinary character sequences (including the null byte) .\"O are copied verbatim from \fIformat\fP to \fIs\fP. However, the characters .\"O of conversion specifications are replaced as follows: -(NULL ¥Ð¥¤¥È¤â´Þ¤à) Ä̾ï¤Îʸ»úÎóÆâ¤Îʸ»ú¤Ï¡¢ -¤½¤Î¤Þ¤Þ \fIformat\fP ¤«¤é \fIs\fP ¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¡£ -°ìÊý¡¢ÊÑ´¹»ØÄê¤Îʸ»ú¤Ï°Ê²¼¤Î¤è¤¦¤ËÃÖ´¹¤µ¤ì¤ë¡£ +(NULL バイトも含む) 通常の文字列内の文字は、 +そのまま \fIformat\fP から \fIs\fP にコピーされる。 +一方、変換指定の文字は以下のように置換される。 .TP .B %a .\"O The abbreviated weekday name according to the current locale. -¸½ºß¤Î¥í¥±¡¼¥ë¤Ë¤ª¤±¤ëÍËÆü¤Î¾Êά̾¡£ +現在のロケールにおける曜日の省略名。 .TP .B %A .\"O The full weekday name according to the current locale. -¸½ºß¤Î¥í¥±¡¼¥ë¤Ë¤ª¤±¤ëÍËÆü¤Î´°Á´¤Ê̾Á°¡£ +現在のロケールにおける曜日の完全な名前。 .TP .B %b .\"O The abbreviated month name according to the current locale. -¸½ºß¤Î¥í¥±¡¼¥ë¤Ë¤ª¤±¤ë·î¤Î¾Êά̾¡£ +現在のロケールにおける月の省略名。 .TP .B %B .\"O The full month name according to the current locale. -¸½ºß¤Î¥í¥±¡¼¥ë¤Ë¤ª¤±¤ë·î¤Î´°Á´¤Ê̾Á°¡£ +現在のロケールにおける月の完全な名前。 .TP .B %c .\"O The preferred date and time representation for the current locale. -¸½ºß¤Î¥í¥±¡¼¥ë¤Ë¤ª¤¤¤Æ°ìÈÌŪ¤ÊÆüÉÕ¡¦»þ¹ï¤Îɽµ­¡£ +現在のロケールにおいて一般的な日付・時刻の表記。 .TP .B %C .\"O The century number (year/100) as a 2-digit integer. (SU) -À¤µª (À¾Îñǯ¤Î¾å 2 ·å)¡£ (SU) +世紀 (西暦年の上 2 桁)。 (SU) .TP .B %d .\"O The day of the month as a decimal number (range 01 to 31). -·îÆâÄÌ»»Æü (10 ¿Ê¿ôɽµ­) (01-31)¡£ +月内通算日 (10 進数表記) (01-31)。 .TP .B %D .\"O Equivalent to @@ -133,9 +133,9 @@ strftime \- .\"O is rather common. .\"O ambiguous and should not be used.) (SU) .B %m/%d/%y -¤ÈÅù²Á¡£(¤¦¤¨¤Ã¡¢¥¢¥á¥ê¥«ÀìÍѤÀ¡£¥¢¥á¥ê¥«°Ê³°¤Î¹ñ¤Ç¤Ï +と等価。(うえっ、アメリカ専用だ。アメリカ以外の国では .B %d/%m/%y -¤ÎÊý¤¬°ìÈÌŪ¤À¡£Ê¶¤é¤ï¤·¤¤¤Î¤Ç¡¢»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£) (SU) +の方が一般的だ。紛らわしいので、使用すべきではない。) (SU) .TP .B %e .\"O Like @@ -143,19 +143,19 @@ strftime \- .\"O the day of the month as a decimal number, but a leading .\"O zero is replaced by a space. (SU) .B %d -¤ÈƱÍͤ˷îÆâÄÌ»»Æü¤ò 10 ¿Ê¿ô¤Çɽ¸½¤¹¤ë¤¬¡¢ -1 ·å¤Î¾ì¹ç 10 ¤Î°Ì¤Ë¥¼¥í¤òÃÖ¤«¤º¥¹¥Ú¡¼¥¹¤òÃÖ¤¯¡£(SU) +と同様に月内通算日を 10 進数で表現するが、 +1 桁の場合 10 の位にゼロを置かずスペースを置く。(SU) .TP .B %E .\"O Modifier: use alternative format, see below. (SU) -ÊÌ·Á¼°¤ò»ÈÍѤ¹¤ëºÝ¤Î½¤¾þ»Ò¡£²¼µ­»²¾È¡£ (SU) +別形式を使用する際の修飾子。下記参照。 (SU) .TP .B %F .\"O Equivalent to .\"O .B %Y-%m-%d .\"O (the ISO\ 8601 date format). (C99) .B %Y-%m-%d -¤ÈÅù²Á (ISO\ 8601 ·Á¼°¤ÎÆüÉÕ¥Õ¥©¡¼¥Þ¥Ã¥È)¡£ (C99) +と等価 (ISO\ 8601 形式の日付フォーマット)。 (C99) .TP .B %G .\"O The ISO\ 8601 week-based year (see NOTES) with century as a decimal number. @@ -165,41 +165,41 @@ strftime \- .\"O .BR %Y , .\"O except that if the ISO week number belongs to the previous or next year, .\"O that year is used instead. (TZ) -ISO\ 8601 ½µÃ±°Ìɽµ­¤Îǯ (week-based year; ¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È)¡£ -À¤µª¤â 10 ¿Ê¿ô¤Çɽ¤¹¡£ -ISO ½µÈÖ¹æ +ISO\ 8601 週単位表記の年 (week-based year; 「注意」の節を参照)。 +世紀も 10 進数で表す。 +ISO 週番号 .RB ( %V -¤ò»²¾È) ¤ËÂбþ¤·¤¿ 4 ·å¤ÎÀ¾Îñǯ¡£ -¤³¤ì¤Ï´ðËÜŪ¤Ë¤Ï +を参照) に対応した 4 桁の西暦年。 +これは基本的には .B %Y -¤ÈƱ¤¸·Á¼°¤À¤¬¡¢ISO ½µ¿ô¤¬Á°Ç¯¤äÍâǯ¤Ë¤Ê¤ë -¾ì¹ç¤Ë¤Ï¤½¤Îǯ¤¬»ÈÍѤµ¤ì¤ëÅÀ¤¬°Û¤Ê¤ë¡£(TZ) +と同じ形式だが、ISO 週数が前年や翌年になる +場合にはその年が使用される点が異なる。(TZ) .TP .B %g .\"O Like .\"O .BR %G , .\"O but without century, that is, with a 2-digit year (00-99). (TZ) .B %G -¤ÈƱÍÍ¡£Ã¢¤·¡¢À¤µª¤ò´Þ¤Þ¤º²¼ 2 ·å¤Î¤ß¤òɽ¼¨ (00-99)¡£ (TZ) +と同様。但し、世紀を含まず下 2 桁のみを表示 (00-99)。 (TZ) .TP .B %h .\"O Equivalent to .\"O .BR %b . .\"O (SU) .B %b -¤ÈÅù²Á (SU) +と等価 (SU) .TP .B %H .\"O The hour as a decimal number using a 24-hour clock (range 00 to 23). -24 »þ´Öɽµ­¤Ç¤Î»þ (hour)¡£ (00-23) +24 時間表記での時 (hour)。 (00-23) .TP .B %I .\"O The hour as a decimal number using a 12-hour clock (range 01 to 12). -12 »þ´Öɽµ­¤Ç¤Î»þ (hour)¡£ (01-12) +12 時間表記での時 (hour)。 (01-12) .TP .B %j .\"O The day of the year as a decimal number (range 001 to 366). -ǯ¤Î½é¤á¤«¤éÄÌ»»¤ÎÆü¿ô¡£ (001-366) +年の初めから通算の日数。 (001-366) .TP .B %k .\"O The hour (24-hour clock) as a decimal number (range 0 to 23); @@ -207,10 +207,10 @@ ISO .\"O (See also .\"O .BR %H .) .\"O (TZ) -24 »þ´Öɽµ­¤Ç¤Î»þ (0-23)¡£ -1 ·å¤Î¾ì¹ç¤Ë¤ÏÁ°¤Ë¥¼¥í¤Ç¤Ê¤¯¥¹¥Ú¡¼¥¹¤¬ÃÖ¤«¤ì¤ë¡£ +24 時間表記での時 (0-23)。 +1 桁の場合には前にゼロでなくスペースが置かれる。 .RB ( %H -¤â»²¾È) (TZ) +も参照) (TZ) .TP .B %l .\"O The hour (12-hour clock) as a decimal number (range 1 to 12); @@ -218,34 +218,34 @@ ISO .\"O (See also .\"O .BR %I .) .\"O (TZ) -12 »þ´Öɽµ­¤Ç¤Î»þ (0-12)¡£ -1 ·å¤Î¾ì¹ç¤Ë¤ÏÁ°¤Ë¥¼¥í¤Ç¤Ê¤¯¥¹¥Ú¡¼¥¹¤¬ÃÖ¤«¤ì¤ë¡£ +12 時間表記での時 (0-12)。 +1 桁の場合には前にゼロでなくスペースが置かれる。 .RB ( %I -¤â»²¾È) (TZ) +も参照) (TZ) .TP .B %m .\"O The month as a decimal number (range 01 to 12). -·î (10 ¿Ê¿ôɽµ­)¡£ (01-12) +月 (10 進数表記)。 (01-12) .TP .B %M .\"O The minute as a decimal number (range 00 to 59). -ʬ (10 ¿Ê¿ôɽµ­) (00-59) +分 (10 進数表記) (00-59) .TP .B %n .\"O A newline character. (SU) -²þ¹Ô¡£ (SU) +改行。 (SU) .TP .B %O .\"O Modifier: use alternative format, see below. (SU) -ÊÌ·Á¼°¤ò»ÈÍѤ¹¤ëºÝ¤Î½¤¾þ»Ò¡£°Ê²¼¤ò»²¾È¡£(SU) +別形式を使用する際の修飾子。以下を参照。(SU) .TP .B %p .\"O Either "AM" or "PM" according to the given time value, or the .\"O corresponding strings for the current locale. .\"O Noon is treated as "PM" and midnight as "AM". -¸½ºß¤Î¥í¥±¡¼¥ë¤Ë¤ª¤±¤ë¡Ö¸áÁ°¡×¡Ö¸á¸å¡×¤ËÁêÅö¤¹¤ëʸ»úÎó¡£ -±Ñ¸ì¤Î¾ì¹ç¤Ë¤Ï "AM" ¤Þ¤¿¤Ï "PM" ¤È¤Ê¤ë¡£ -Àµ¸á¤Ï¡Ö¸á¸å¡×¡¢¿¿ÌëÃæ¤Ï¡Ö¸áÁ°¡×¤È¤·¤Æ°·¤ï¤ì¤ë¡£ +現在のロケールにおける「午前」「午後」に相当する文字列。 +英語の場合には "AM" または "PM" となる。 +正午は「午後」、真夜中は「午前」として扱われる。 .TP .B %P .\"O Like @@ -253,56 +253,56 @@ ISO .\"O but in lowercase: "am" or "pm" or a corresponding .\"O string for the current locale. (GNU) .B %p -¤ÈƱÍͤǤ¢¤ë¤¬¾®Ê¸»ú¤¬»ÈÍѤµ¤ì¤ë¡£ -±Ñ¸ì¤Î¾ì¹ç¤Ë¤Ï "am" ¤ä "pm" ¤È¤Ê¤ë¡£(GNU) +と同様であるが小文字が使用される。 +英語の場合には "am" や "pm" となる。(GNU) .TP .B %r .\"O The time in a.m. or p.m. notation. .\"O In the POSIX locale this is equivalent to .\"O .BR "%I:%M:%S %p" . .\"O (SU) -¸áÁ°¡¦¸á¸å·Á¼°¤Ç¤Î»þ¹ï¡£ -POSIX ¥í¥±¡¼¥ë¤Ç¤Ï +午前・午後形式での時刻。 +POSIX ロケールでは .B "%I:%M:%S %p" -¤ÈÅù²Á¤Ç¤¢¤ë¡£(SU) +と等価である。(SU) .TP .B %R .\"O The time in 24-hour notation (\fB%H:%M\fP). (SU) .\"O For a version including the seconds, see .\"O .B %T .\"O below. -24 »þ´Öɽµ­¤Ç¤Î»þ¹ï¡¢ÉäÏɽ¼¨¤·¤Ê¤¤ -.RB ( %H:%M )¡£ -Éäò´Þ¤ó¤À¤â¤Î¤Ï°Ê²¼¤Î +24 時間表記での時刻、秒は表示しない +.RB ( %H:%M )。 +秒を含んだものは以下の .B %T -¤ò»²¾È¤¹¤ë¤³¤È¡£(SU) +を参照すること。(SU) .TP .B %s .\"O The number of seconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC). (TZ) -µª¸µ (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) ¤«¤é¤ÎÉÿô¡£ (TZ) +紀元 (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) からの秒数。 (TZ) .TP .B %S .\"O The second as a decimal number (range 00 to 60). .\"O (The range is up to 60 to allow for occasional leap seconds.) -Éà (10 ¿Ê¿ôɽµ­) (00-60) -(»þ¡¹¤¢¤ë±¼ÉäËÂбþ¤¹¤ë¤¿¤á¡¢ÃͤÎÈÏ°Ï¤Ï 60 ¤Þ¤Ç¤È¤Ê¤Ã¤Æ¤¤¤ë) +秒 (10 進数表記) (00-60) +(時々ある閏秒に対応するため、値の範囲は 60 までとなっている) .TP .B %t .\"O A tab character. (SU) -¥¿¥Öʸ»ú (SU) +タブ文字 (SU) .TP .B %T .\"O The time in 24-hour notation (\fB%H:%M:%S\fP). (SU) -24 »þ´Öɽµ­¤Î»þ´Ö (\fB%H:%M:%S\fP) (SU) +24 時間表記の時間 (\fB%H:%M:%S\fP) (SU) .TP .B %u .\"O The day of the week as a decimal, range 1 to 7, Monday being 1. .\"O See also .\"O .BR %w . .\"O (SU) -½µ¤Î²¿ÈÖÌܤÎÆü (10 ¿Ê¿ôɽµ­) ¤«¡£·îÍËÆü¤ò 1 ¤È¤¹¤ë (1-7)¡£ +週の何番目の日 (10 進数表記) か。月曜日を 1 とする (1-7)。 .B %w -¤â»²¾È¡£(SU) +も参照。(SU) .TP .B %U .\"O The week number of the current year as a decimal number, @@ -312,12 +312,12 @@ POSIX .\"O .B %V .\"O and .\"O .BR %W . -ǯ¤Î½é¤á¤«¤é¤ÎÄÌ»»¤Î½µÈÖ¹æ (10 ¿Ê¿ôɽµ­) (00-53)¡£ -¤½¤Îǯ¤ÎºÇ½é¤ÎÆüÍËÆü¤ò¡¢Âè 1 ½µ¤Î»Ï¤Þ¤ê¤È¤·¤Æ·×»»¤¹¤ë¡£ +年の初めからの通算の週番号 (10 進数表記) (00-53)。 +その年の最初の日曜日を、第 1 週の始まりとして計算する。 .B %V -¤È +と .B %W -¤â»²¾È¤¹¤ë¤³¤È¡£ +も参照すること。 .TP .B %V .\"O The ISO\ 8601 week number (see NOTES) of the current year as a decimal number, @@ -328,43 +328,43 @@ POSIX .\"O and .\"O .BR %W . .\"O (SU) -ISO\ 8601 ·Á¼°¤Ç¤Îǯ¤Î»Ï¤á¤«¤é¤Î½µÈÖ¹æ (¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È)¡£ -10 ¿Ê¿ôɽµ­¤Ç¡¢01 ¤«¤é 53 ¤ÎÃͤȤʤ롣½µÈÖ¹æ¤Ï¡¢ -¿·¤·¤¤Ç¯¤¬¾¯¤Ê¤¯¤È¤â 4 Æü°Ê¾å´Þ¤Þ¤ì¤ëºÇ½é¤Î½µ¤ò 1 ¤È¤·¤Æ·×»»¤¹¤ë¡£ +ISO\ 8601 形式での年の始めからの週番号 (「注意」の節を参照)。 +10 進数表記で、01 から 53 の値となる。週番号は、 +新しい年が少なくとも 4 日以上含まれる最初の週を 1 として計算する。 .B %U -¤È +と .B %W -¤â»²¾È¤Î¤³¤È¡£(SU) +も参照のこと。(SU) .TP .B %w .\"O The day of the week as a decimal, range 0 to 6, Sunday being 0. .\"O See also .\"O .BR %u . -½µ¤Î²¿ÈÖÌܤÎÆü (10 ¿Ê¿ôɽµ­) ¤«¡£ÆüÍËÆü¤ò 0 ¤È¤¹¤ë¡£(0-6)¡£ +週の何番目の日 (10 進数表記) か。日曜日を 0 とする。(0-6)。 .B %u -¤â»²¾È¡£(SU) +も参照。(SU) .TP .B %W .\"O The week number of the current year as a decimal number, .\"O range 00 to 53, starting with the first Monday as the first day of week 01. -ǯ¤Î½é¤á¤«¤é¤ÎÄÌ»»¤Î½µÈÖ¹æ (10 ¿Ê¿ôɽµ­) (00-53)¡£ -¤½¤Îǯ¤ÎºÇ½é¤Î·îÍËÆü¤ò¡¢Âè 1 ½µ¤Î»Ï¤Þ¤ê¤È¤·¤Æ·×»»¤¹¤ë¡£ +年の初めからの通算の週番号 (10 進数表記) (00-53)。 +その年の最初の月曜日を、第 1 週の始まりとして計算する。 .TP .B %x .\"O The preferred date representation for the current locale without the time. -¸½ºß¤Î¥í¥±¡¼¥ë¤Ç°ìÈÌŪ¤ÊÆüÉÕɽµ­¡£»þ¹ï¤Ï´Þ¤Þ¤Ê¤¤¡£ +現在のロケールで一般的な日付表記。時刻は含まない。 .TP .B %X .\"O The preferred time representation for the current locale without the date. -¸½ºß¤Î¥í¥±¡¼¥ë¤Ç°ìÈÌŪ¤Ê»þ¹ïɽµ­¡£ÆüÉդϴޤޤʤ¤¡£ +現在のロケールで一般的な時刻表記。日付は含まない。 .TP .B %y .\"O The year as a decimal number without a century (range 00 to 99). -À¾Îñ¤Î²¼2·å (À¤µªÉôʬ¤ò´Þ¤Þ¤Ê¤¤Ç¯) (00-99)¡£ +西暦の下2桁 (世紀部分を含まない年) (00-99)。 .TP .B %Y .\"O The year as a decimal number including the century. -À¤µªÉôʬ¤ò´Þ¤á¤¿ ( 4 ·å¤Î) À¾Îñǯ¡£ +世紀部分を含めた ( 4 桁の) 西暦年。 .TP .B %z .\"O The @@ -373,13 +373,13 @@ ISO\ 8601 .\"O .I -hhmm .\"O numeric timezone (that is, the hour and minute offset from UTC). (SU) .I +hhmm -¤ä +や .I -hhmm -¤Î·Á¼°¤Î¥¿¥¤¥à¥¾¡¼¥ó (UTC ¤Ø¤Î¥ª¥Õ¥»¥Ã¥È»þ´Ö)¡£(SU) +の形式のタイムゾーン (UTC へのオフセット時間)。(SU) .TP .B %Z .\"O The timezone or name or abbreviation. -¥¿¥¤¥à¥¾¡¼¥ó¤Þ¤¿¤Ï¥¾¡¼¥ó̾¤Þ¤¿¤Ï¾Êά̾¡£ +タイムゾーンまたはゾーン名または省略名。 .TP .B %+ .\" Nov 05 -- Not in Linux/glibc, but is in some BSDs (according to @@ -389,12 +389,12 @@ ISO\ 8601 .\"O format. (TZ) .\"O (Not supported in glibc2.) .BR date (1) -·Á¼°¤Ç¤ÎÆü»þ¡£(TZ) -(glibc2 ¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤) +形式での日時。(TZ) +(glibc2 ではサポートされていない) .TP .B %% .\"O A literal \(aq%\(aq character. -\(aq%\(aq ʸ»ú¡£ +\(aq%\(aq 文字。 .PP .\"O Some conversion specifications can be modified by preceding the .\"O conversion specifier character by the @@ -403,16 +403,16 @@ ISO\ 8601 .\"O .B O .\"O .I modifier .\"O to indicate that an alternative format should be used. -¤¤¤¯¤Ä¤«¤ÎÊÑ´¹»ØÄê¤Ç¤Ï¡¢ÊÑ´¹»ØÄêʸ»ú¤ÎÁ°¤Ë +いくつかの変換指定では、変換指定文字の前に .B E -¤ä +や .B O -¡Ö½¤¾þ»Ò¡×¤òÃÖ¤¯¤³¤È¤Ë¤è¤Ã¤ÆÊ̽ñ¼°¤ò»ÈÍѤ¹¤ë¤è¤¦¤Ë»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +「修飾子」を置くことによって別書式を使用するように指定することができる。 .\"O If the alternative format or specification does not exist for .\"O the current locale, the behavior will be as if the unmodified .\"O conversion specification were used. (SU) -¸½ºß¤Î¥í¥±¡¼¥ë¤Ë¤ª¤¤¤ÆÊ̽ñ¼°¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ -Ä̾ï¤ÎÊÑ´¹»ØÄ꤬»ÈÍѤµ¤ì¤¿¤«¤Î¤è¤¦¤ËÆ°ºî¤¹¤ë (SU)¡£ +現在のロケールにおいて別書式が存在しない場合には、 +通常の変換指定が使用されたかのように動作する (SU)。 .\"O The Single UNIX Specification mentions .\"O .BR %Ec , .\"O .BR %EC , @@ -438,7 +438,7 @@ ISO\ 8601 .\"O modifier is to use .\"O alternative numeric symbols (say, roman numerals), and that of the .\"O E modifier is to use a locale-dependent alternative representation. -Åý°ì UNIX µ¬³Ê (Single UNIX Specification) ¤Ç¤Ï +統一 UNIX 規格 (Single UNIX Specification) では .BR %Ec , .BR %EC , .BR %Ex , @@ -458,75 +458,75 @@ ISO\ 8601 .BR %Ow , .BR %OW , .BR %Oy , -¤Ë¤Ä¤¤¤Æµ­½Ò¤¬¤¢¤ë¡£¤³¤³¤Ç +について記述がある。ここで .B O -½¤¾þ»Ò¤ÏÊÌ·Á¼°¤Î¿ôÃÍ (¥í¡¼¥Þ¿ô»ú¤È¤«) ¤ò»ØÄꤹ¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£ +修飾子は別形式の数値 (ローマ数字とか) を指定するために使用する。 .B E -½¤¾þ»Ò¤Ï¥í¥±¡¼¥ë°Í¸¤ÎÊÌɽ¸½¤ò»ØÄꤹ¤ë¤Î¤Ë»ÈÍѤ¹¤ë¡£ -(ÌõÃí: +修飾子はロケール依存の別表現を指定するのに使用する。 +(訳注: .B E -½¤¾þ»Ò¤ÏÆüËܤǻÈÍѤµ¤ì¤Æ¤¤¤ë¡Ö¾¼Ï¡סÖÊ¿À®¡× -¤Ê¤É¤Î¸µ¹æ¤Ë¤è¤ëǯɽµ­¤ò»ØÄꤹ¤ë¡£glibc 2.2 °Ê¹ß¤Ç¤Î¤ßÍ­¸ú) +修飾子は日本で使用されている「昭和」「平成」 +などの元号による年表記を指定する。glibc 2.2 以降でのみ有効) .PP .\"O The broken-down time structure \fItm\fP is defined in \fI\fP. .\"O See also .\"O .BR ctime (3). -Í×ÁÇÊ̤λþ¹ï¹½Â¤ÂÎ \fItm\fP ¤Î¾ÜºÙ¤Ï \fI\fP ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +要素別の時刻構造体 \fItm\fP の詳細は \fI\fP に定義されている。 .BR ctime (3) -¤â»²¾È¤¹¤ë¤³¤È¡£ +も参照すること。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR strftime () .\"O function returns the number of characters placed .\"O in the array \fIs\fP, not including the terminating null byte, .\"O provided the string, including the terminating null byte, fits. .BR strftime () -´Ø¿ô¤Ïʸ»úÎó \fIs\fP ¤Ë³ÊǼ¤µ¤ì¤¿Ê¸»ú¿ô¤òÊÖ¤¹¡£ -¤³¤Îʸ»ú¿ô¤Ë½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤Ï´Þ¤Þ¤Ê¤¤¡£ -½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤ò³ÊǼ¤Ç¤­¤ë¤À¤±¤ÎÂ礭¤µ¤ò»ý¤Ã¤¿Ê¸»úÎó¤òÅϤ¹¤³¤È¡£ +関数は文字列 \fIs\fP に格納された文字数を返す。 +この文字数に終端の NULL バイトは含まない。 +終端の NULL バイトを格納できるだけの大きさを持った文字列を渡すこと。 .\"O Otherwise, it returns 0, and the contents of the array is undefined. .\"O (This behavior applies since at least libc 4.4.4; .\"O very old versions of libc, such as libc 4.4.1, .\"O would return \fImax\fP if the array was too small.) -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤òÊÖ¤·¡¢Ê¸»úÎó¤ÎÆâÍƤϽ¤Àµ¤µ¤ì¤Ê¤¤¡£ -(libc 4.4.4 °Ê¹ß¤Ç¤³¤ÎµóÆ°¤¬Å¬ÍѤµ¤ì¤Æ¤¤¤ë¡£ -libc 4.4.1 ¤Ê¤É¤ÎÈó¾ï¤Ë¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Î libc ¤Ç¤Ï -ʸ»úÎó¤¬Ã»¤«²á¤®¤¿¾ì¹ç¤Ë¤Ï \fImax\fP ¤¬ÊÖ¤µ¤ì¤ë¡£) +それ以外の場合は 0 を返し、文字列の内容は修正されない。 +(libc 4.4.4 以降でこの挙動が適用されている。 +libc 4.4.1 などの非常に古いバージョンの libc では +文字列が短か過ぎた場合には \fImax\fP が返される。) .LP .\"O Note that the return value 0 does not necessarily indicate an error; .\"O for example, in many locales .\"O .B %p .\"O yields an empty string. -ÊÖ¤êÃÍ 0 ¤Ïɬ¤º¤·¤â¥¨¥é¡¼¤ò°ÕÌ£¤·¤Æ¤¤¤ëÌõ¤Ç¤Ï¤Ê¤¤¤Î¤ÇÃí°Õ¤¹¤ë¤³¤È¡£ -Î㤨¤Ð¡¢Â¿¤¯¤Î¥í¥±¡¼¥ë¤Ç¤Ï +返り値 0 は必ずしもエラーを意味している訳ではないので注意すること。 +例えば、多くのロケールでは .B %p -¤Ï¶õʸ»úÎó¤òÊÖ¤¹¡£ +は空文字列を返す。 .\"O .SH ENVIRONMENT -.SH ´Ä¶­ÊÑ¿ô +.SH 環境変数 .\"O The environment variables .\"O .B TZ .\"O and .\"O .B LC_TIME .\"O are used. -´Ä¶­ÊÑ¿ô +環境変数 .B TZ -¤È +と .B LC_TIME -¤¬»ÈÍѤµ¤ì¤ë¡£ -(ÌõÃí: +が使用される。 +(訳注: .B LC_ALL -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï +が設定されている場合には .B LC_TIME -¤è¤ê¤â¤½¤Á¤é¤¬Í¥À褵¤ì¤ë¡£ +よりもそちらが優先される。 .B LC_TIME -¤â +も .B LC_ALL -¤âÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï +も設定されていない場合には .B LANG -¤¬»ÈÍѤµ¤ì¤ë¡£) +が使用される。) .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, C89, C99. .\"O There are strict inclusions between the set of conversions .\"O given in ANSI C (unmarked), those given in the Single UNIX Specification @@ -540,22 +540,22 @@ SVr4, C89, C99. .\"O several extensions that could apply to .\"O .BR strftime () .\"O as well. -¸Ä¡¹¤ÎÊÑ´¹¤¬¸·Ì©¤Ë¤É¤Îµ¬³Ê¤Ë´Þ¤Þ¤ì¤ë¤«¤Ï¡¢ -ANSI C (°õ¤Ê¤·)¡¢Åý°ì UNIX µ¬³Ê (SU°õ)¡¢Olson ¤Î timezone ¥Ñ¥Ã¥±¡¼¥¸ (TZ°õ)¡¢ -glibc Æȼ« (GNU°õ) ¤Ç¼¨¤·¤Æ¤¤¤ë¡£glibc2 ¤Ç¤Ï +個々の変換が厳密にどの規格に含まれるかは、 +ANSI C (印なし)、統一 UNIX 規格 (SU印)、Olson の timezone パッケージ (TZ印)、 +glibc 独自 (GNU印) で示している。glibc2 では .B %+ -¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -¤¤¤¯¤Ä¤«¤Î³ÈÄ¥¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë¡£POSIX.1 ¤Ç¤Ï ANSI C ¤Î¤ß¤ò»²¾È¤·¤Æ¤¤¤ë¡£ -POSIX.2 ¤Î +はサポートされていないが、 +いくつかの拡張が行われている。POSIX.1 では ANSI C のみを参照している。 +POSIX.2 の .BR date (1) -¤Î¤È¤³¤í¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë´ö¤Ä¤«¤Î³ÈÄ¥¤Ï +のところに記述されている幾つかの拡張は .BR strftime () -¤Ë¤âŬÍѤǤ­¤ë¤À¤í¤¦¡£ +にも適用できるだろう。 .\"O The .\"O .B %F .\"O conversion is in C99 and POSIX.1-2001. .B %F -ÊÑ´¹¤Ï C99 ¤È POSIX.1-2001 ¤Ë¤¢¤ë¡£ +変換は C99 と POSIX.1-2001 にある。 .\"O In SUSv2, the .\"O .B %S @@ -563,16 +563,16 @@ POSIX.2 .\"O to allow for the theoretical possibility of a minute that .\"O included a double leap second .\"O (there never has been such a minute). -SUSv2 ¤Ç¤Ï¡¢ +SUSv2 では、 .B %S -¤Ï 00 ¤«¤é 61 ¤ÎÈϰϤò¤È¤ë¤Èµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï¡¢1ʬ´Ö¤Î¤¦¤Á±¼Éä¬ 2¤ÄÆþ¤ë²ÄǽÀ­¤¬ÍýÏÀŪ¤Ë¤Ï¤¢¤ë¤³¤È¤ò -¹Íθ¤·¤Æ¤Î¤â¤Î¤Ç¤¢¤ë (¼ÂºÝ¤Ë¤Ï¡¢¤³¤Î¤è¤¦¤Ê¾õ¶·¤Ï¤³¤ì¤Þ¤Ç°ìÅÙ¤â -µ¯¤³¤Ã¤Æ¤¤¤Ê¤¤)¡£ +は 00 から 61 の範囲をとると規定されている。 +これは、1分間のうち閏秒が 2つ入る可能性が理論的にはあることを +考慮してのものである (実際には、このような状況はこれまで一度も +起こっていない)。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .SS ISO 8601 Week Dates -.SS ISO\ 8601 ¤Î½µ¡¦ÍËÆüɽµ­ (Week Dates) +.SS ISO\ 8601 の週・曜日表記 (Week Dates) .\"O .BR %G , .\"O .BR %g , .\"O and @@ -582,37 +582,37 @@ SUSv2 .BR %G , .BR %g , .BR %V -¤Ï¡¢ISO\ 8601 ɸ½à¤Ë¤è¤êÄêµÁ¤µ¤ì¤¿½µÃ±°Ìɽµ­¤Îǯ¤Ë¤è¤ê -·×»»¤µ¤ì¤ëÃͤò½ÐÎϤ¹¤ë¡£ +は、ISO\ 8601 標準により定義された週単位表記の年により +計算される値を出力する。 .\"O In this system, weeks start on a Monday, and are numbered from 01, .\"O for the first week, up to 52 or 53, for the last week. .\"O Week 1 is the first week where four or more days fall within the .\"O new year (or, synonymously, week 01 is: .\"O the first week of the year that contains a Thursday; .\"O or, the week that has 4 January in it). -ISO\ 8601 ɸ½à¤Î½µÃ±°Ìɽµ­¤Ç¤Ï¡¢½µ¤Ï·îÍËÆü¤«¤é³«»Ï¤µ¤ì¡¢ -½µÈÖ¹æ¤Ï¡¢Ç¯¤ÎºÇ½é¤Î½µ¤¬ 01 ¤È¤Ê¤ê¡¢ºÇ¸å¤Î½µ¤Ï 52 ¤« 53 ¤È¤Ê¤ë¡£ -½µ 01 ¤Ï¡¢¿·¤·¤¤Ç¯¤¬ 4 Æü°Ê¾å´Þ¤Þ¤ì¤ëºÇ½é¤Î½µ¤Ç¤¢¤ë¡£ -¸À¤¤´¹¤¨¤ë¤È¡¢½µ 01 ¤Ï¡¢¤½¤Îǯ¤ÎÌÚÍËÆü¤ò´Þ¤àºÇ½é¤Î½µ¡¢ -¤Ä¤Þ¤ê 1 ·î 4 Æü¤ò´Þ¤à½µ¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ +ISO\ 8601 標準の週単位表記では、週は月曜日から開始され、 +週番号は、年の最初の週が 01 となり、最後の週は 52 か 53 となる。 +週 01 は、新しい年が 4 日以上含まれる最初の週である。 +言い換えると、週 01 は、その年の木曜日を含む最初の週、 +つまり 1 月 4 日を含む週ということである。 .\"O When three of fewer days of the first calendar week of the new year fall .\"O within that year, .\"O then the ISO 8601 week-based system counts those days as part of week 53 .\"O of the preceding year. -¿·¤·¤¤Ç¯¤Î¥«¥ì¥ó¥À¡¼¾å¤ÎºÇ½é¤Î½µ¤Ë¿·¤·¤¤Ç¯¤¬ 3 Æü°Ê²¼¤·¤«´Þ¤Þ¤ì¤Ê¤¤¾ì¹ç¡¢ -ISO\ 8601 ¤Î½µÃ±°Ìɽµ­¤Ç¤Ï¡¢¤³¤ì¤é¤ÎÆü¤òÁ°¤Îǯ¤Î½µ 53 ¤Î°ìÉô¤È¤ß¤Ê¤¹¡£ +新しい年のカレンダー上の最初の週に新しい年が 3 日以下しか含まれない場合、 +ISO\ 8601 の週単位表記では、これらの日を前の年の週 53 の一部とみなす。 .\"O For example, 1 January 2010 is a Friday, .\"O meaning that just three days of that calendar week fall in 2010. .\"O Thus, the ISO\ 8601 week-based system considers these days to be part of .\"O week 53 (\fB%V\fP) of the year 2009 (\fB%G\fP) ; .\"O week 01 of ISO\ 8601 year 2010 starts on Monday, 4 January 2010. -Î㤨¤Ð¡¢2010 ǯ 1 ·î 1 Æü¤Ï¶âÍËÆü¤Ç¤¢¤ê¡¢ -¤½¤Î½µ¤Ë¤Ï 2010 ǯ¤ÎÆü¤¬ 3 Æü¤·¤«´Þ¤Þ¤ì¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢ISO\ 8601 ¤Î½µÃ±°Ìɽµ­¤Ç¤Ï¡¢¤³¤ì¤é¤ÎÆü¤Ï 2009 ǯ (\fB%G\fP) -¤Î½µ 53 (\fB%V\fP) ¤Î°ìÉô¤È¤Ê¤ë¡£ -ISO\ 8601 ¤Î 2010 ǯ¤Î½µ 01 ¤Ï 2010 ǯ 1 ·î 4 Æü¤Î·îÍËÆü¤«¤é»Ï¤Þ¤ë¡£ +例えば、2010 å¹´ 1 月 1 日は金曜日であり、 +その週には 2010 年の日が 3 日しか含まれない。 +したがって、ISO\ 8601 の週単位表記では、これらの日は 2009 å¹´ (\fB%G\fP) +の週 53 (\fB%V\fP) の一部となる。 +ISO\ 8601 の 2010 年の週 01 は 2010 å¹´ 1 月 4 日の月曜日から始まる。 .\"O .SS Glibc Notes -.SS glibc ¤Ç¤ÎÃí°Õ +.SS glibc での注意 .\"O Glibc provides some extensions for conversion specifications. .\"O (These extensions are not specified in POSIX.1-2001, but a few other .\"O systems provide similar features.) @@ -628,75 +628,75 @@ ISO\ 8601 .\"O or .\"O .B O .\"O modifiers, if present.) -glibc ¤Ç¤ÏÊÑ´¹»ØÄê¤Ë¤¤¤¯¤Ä¤«³ÈÄ¥¤ò¹Ô¤Ã¤Æ¤¤¤ë -(¤³¤ì¤é¤Î³ÈÄ¥¤Ï POSIX.1-2001 ¤Ë¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -¾¤Î¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤ÇƱÍͤε¡Ç½¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë)¡£ -.\" HP-UX ¤È Tru64 ¤Ë¤âƱÍͤε¡Ç½¤¬¤¢¤ë¡£ -\(aq%\(aq ʸ»ú¤ÈÊÑ´¹»ØÄêʸ»ú¤Î´Ö¤Ë¡¢¥ª¥×¥·¥ç¥ó¤È¤·¤Æ +glibc では変換指定にいくつか拡張を行っている +(これらの拡張は POSIX.1-2001 には規定されていないが、 +他のいくつかのシステムで同様の機能が提供されている)。 +.\" HP-UX と Tru64 にも同様の機能がある。 +\(aq%\(aq 文字と変換指定文字の間に、オプションとして .I flag -¤È¥Õ¥£¡¼¥ë¥É¤Î -.I Éý -¤ò»ØÄê¤Ç¤­¤ë (¤³¤ì¤é¤ò»ØÄꤹ¤ë¾ì¹ç¤Ë¤Ï +とフィールドの +.I 幅 +を指定できる (これらを指定する場合には .B E -¤ä +や .B O -½¤¾þ»Ò¤ÎÁ°¤ËÃÖ¤¯)¡£ +修飾子の前に置く)。 .\"O The following flag characters are permitted: -°Ê²¼¤Î¥Õ¥é¥°Ê¸»ú¤¬»ÈÍѤǤ­¤ë: +以下のフラグ文字が使用できる: .TP .B _ .\"O (underscore) .\"O Pad a numeric result string with spaces. -(²¼Àþ) -¿ôÃͤηë²Ìʸ»úÎó¤Î¥Ñ¥Ç¥£¥ó¥° (·êËä¤á) ¤ò¥¹¥Ú¡¼¥¹ (¶õÇòʸ»ú) ¤Ç¹Ô¤¦¡£ +(下線) +数値の結果文字列のパディング (穴埋め) をスペース (空白文字) で行う。 .TP .B \- .\"O (dash) .\"O Do not pad a numeric result string. -(¥À¥Ã¥·¥å) -¿ôÃͤηë²Ìʸ»úÎó¤ËÂФ¹¤ë¥Ñ¥Ç¥£¥ó¥°¤ò¹Ô¤ï¤Ê¤¤¡£ +(ダッシュ) +数値の結果文字列に対するパディングを行わない。 .TP .B 0 .\"O Pad a numeric result string with zeros even if the conversion .\"O specifier character uses space-padding by default. -ÊÑ´¹»ØÄêʸ»ú¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥¹¥Ú¡¼¥¹¤Ç¥Ñ¥Ç¥£¥ó¥°¤ò¹Ô¤¦¾ì¹ç¤Ç¤â¡¢ -¿ôÃͤηë²Ìʸ»úÎó¤Ø¤Î¥Ñ¥Ç¥£¥ó¥°¤ò 0 ¤Ç¹Ô¤¦¡£ +変換指定文字がデフォルトではスペースでパディングを行う場合でも、 +数値の結果文字列へのパディングを 0 で行う。 .TP .B ^ .\"O Convert alphabetic characters in result string to upper case. -·ë²Ìʸ»úÎóÃæ¤Î¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»ú¤òÂçʸ»ú¤ËÊÑ´¹¤¹¤ë¡£ +結果文字列中のアルファベット文字を大文字に変換する。 .TP .B # .\"O Swap the case of the result string. .\"O (This flag only works with certain conversion specifier characters, .\"O and of these, it is only really useful with .\"O .BR %Z .) -·ë²Ìʸ»úÎó¤ÎÂçʸ»ú¡¦¾®Ê¸»ú¤òÆþ¤ìÂؤ¨¤ë -(¤³¤Î¥Õ¥é¥°¤ÏÆÃÄê¤ÎÊÑ´¹»ØÄêʸ»ú¤Ç¤·¤«µ¡Ç½¤·¤Ê¤¤¡£¤½¤ÎÃæ¤Ç¤â -ËÜÅö¤ËÍ­ÍÑ¤Ê¤Î¤Ï +結果文字列の大文字・小文字を入れ替える +(このフラグは特定の変換指定文字でしか機能しない。その中でも +本当に有用なのは .B %Z -¤Î¾ì¹ç¤À¤±¤Ç¤¢¤ë)¡£ +の場合だけである)。 .PP .\"O An optional decimal width specifier may follow the (possibly absent) flag. .\"O If the natural size of the field is smaller than this width, .\"O then the result string is padded (on the left) to the specified width. -¥ª¥×¥·¥ç¥ó¤Î10¿Ê¿ô¤ÎÉý»ØÄê»Ò¤Ï¥Õ¥é¥°¤Î¸å¤í¤ËÃÖ¤¯¤³¤È¤¬¤Ç¤­¤ë -(¥Õ¥é¥°¤Ï¤Ê¤¯¤Æ¤â¤è¤¤)¡£¥Õ¥£¡¼¥ë¥É¤ÎËÜÍè¤ÎÂ礭¤µ¤¬»ØÄꤵ¤ì¤¿Éý¤è¤ê¤â -¾®¤µ¤¤¾ì¹ç¡¢·ë²Ìʸ»úÎó¤Îº¸Â¦¤Ï»ØÄꤵ¤ì¤¿Éý¤Þ¤Ç¥Ñ¥Ç¥£¥ó¥°¤µ¤ì¤ë¡£ +オプションの10進数の幅指定子はフラグの後ろに置くことができる +(フラグはなくてもよい)。フィールドの本来の大きさが指定された幅よりも +小さい場合、結果文字列の左側は指定された幅までパディングされる。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Some buggy versions of .\"O .BR gcc (1) .\"O complain about the use of .\"O .BR %c : .\"O .IR "warning: `%c' yields only last 2 digits of year in some locales" . .BR gcc (1) -¤Î¤¤¤¯¤Ä¤«¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤Ï¤ª¤«¤·¤Ê¤È¤³¤í¤¬¤¢¤ê¡¢ +のいくつかのバージョンにはおかしなところがあり、 .B %c -¤Î»ÈÍÑË¡¤Ë¤Ä¤¤¤Æ°Ê²¼¤Î¤è¤¦¤Ê·Ù¹ð¤ò½Ð¤¹: +の使用法について以下のような警告を出す: .I "warning: `%c' yields only last 2 digits of year in some locales" -.RI ( ·Ù¹ð: ¤¤¤¯¤Ä¤«¤Î¥í¥±¡¼¥ë¤Ç¤Ï `%c' ¤Ïǯ¤Î²¼2·å¤·¤«½ÐÎϤ·¤Ê¤¤ )¡£ +.RI ( 警告: いくつかのロケールでは `%c' は年の下2桁しか出力しない )。 .\"O Of course programmers are encouraged to use .\"O .BR %c , .\"O it gives the preferred date and time representation. @@ -706,14 +706,14 @@ glibc .\"O problem. .\"O A relatively clean one is to add an .\"O intermediate function -¤â¤Á¤í¤ó¥×¥í¥°¥é¥Þ¤¬ +もちろんプログラマが .B %c -¤ò»È¤¦¤Î¤Ï¤ªÁ¦¤á¤Ç¤­¤ë¤³¤È¤Ç¤¢¤ë¡£ +を使うのはお薦めできることである。 .B %c -¤ò»È¤¦¤ÈŬÀÚ¤ÊÆüÉդȻþ¹ï¤Îɽµ­¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¤«¤é¤Ç¤¢¤ë¡£ +を使うと適切な日付と時刻の表記を得ることができるからである。 .BR gcc (1) -¤Î¤³¤ÎÌäÂê¤ò²óÈò¤·¤è¤¦¤È¤¹¤ë¤È¡¢²¿¤«¤¹¤Ã¤­¤ê¤·¤Ê¤¤µ¤Ê¬¤Ë¤Ê¤ë¤À¤í¤¦¡£ -Èæ³ÓŪ¤­¤ì¤¤¤Ê²ò·èÊýË¡¤Ï°Ê²¼¤Î¤è¤¦¤ÊÃæ´Ö´Ø¿ô¤òÄɲ乤뤳¤È¤Ç¤¢¤ë¡£ +のこの問題を回避しようとすると、何かすっきりしない気分になるだろう。 +比較的きれいな解決方法は以下のような中間関数を追加することである。 .in +4n .nf @@ -731,41 +731,41 @@ my_strftime(char *s, size_t max, const char *fmt, .\"O .BR gcc (1) .\"O provides the \fI\-Wno\-format\-y2k\fP option to prevent the warning, .\"O so that the above workaround is no longer required. -¸½ºß¤Ç¤Ï¡¢ +現在では、 .BR gcc (1) -¤Ï¤³¤Î·Ù¹ð¤òÍÞ¤¨¤ë¤¿¤á¤Î \fI\-Wno\-format\-y2k\fP ¥ª¥×¥·¥ç¥ó¤ò -Ä󶡤·¤Æ¤ª¤ê¡¢¾åµ­¤Î²óÈòºö¤Ï¤â¤Ï¤äɬÍפʤ¤¡£ +はこの警告を抑えるための \fI\-Wno\-format\-y2k\fP オプションを +提供しており、上記の回避策はもはや必要ない。 .\"O .SH EXAMPLES -.SH Îã +.SH 例 .\"O .BR "RFC\ 2822-compliant date format" .\"O (with an English locale for %a and %b) -.B "RFC\ 2822 ½àµò¤ÎÆüÉÕ·Á¼°" -(%a ¤È %b ¤Ï±Ñ¸ì¥í¥±¡¼¥ë) +.B "RFC\ 2822 準拠の日付形式" +(%a と %b は英語ロケール) .PP .in +2n "%a,\ %d\ %b\ %Y\ %T\ %z" .PP .\"O .BR "RFC\ 822-compliant date format" .\"O (with an English locale for %a and %b) -.B "RFC\ 822 ½àµò¤ÎÆüÉÕ·Á¼°" -(%a ¤È %b ¤Ï±Ñ¸ì¥í¥±¡¼¥ë) +.B "RFC\ 822 準拠の日付形式" +(%a と %b は英語ロケール) .PP .in +2n "%a,\ %d\ %b\ %y\ %T\ %z" .\"O .SS Example Program -.SS ¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à +.SS サンプルプログラム .\"O The program below can be used to experiment with .\"O .BR strftime (). -°Ê²¼¤Î¥×¥í¥°¥é¥à¤ò»È¤¦¤È +以下のプログラムを使うと .BR strftime () -¤Î¼Â¸³¤¬¤Ç¤­¤ë¡£ +の実験ができる。 .PP .\"O Some examples of the result string produced by the glibc implementation of .\"O .BR strftime () .\"O are as follows: -°Ê²¼¤Ë¡¢ +以下に、 .BR strftime () -¤Î glibc ¼ÂÁõ¤¬À¸À®¤¹¤ë·ë²Ì¤ÎÎã¤ò¤¤¤¯¤Ä¤«¼¨¤¹: +の glibc 実装が生成する結果の例をいくつか示す: .nf .RB "$" " ./a.out \(aq%m\(aq" @@ -778,7 +778,7 @@ Result string is " 11" .in .PP .\"O Here's the program source: -¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹¤Ï°Ê²¼¤ÎÄ̤ê: +プログラムのソースは以下の通り: .nf #include @@ -793,9 +793,9 @@ main(int argc, char *argv[]) .\"O Some examples of the result string produced by the glibc implementation of .\"O .BR strftime () .\"O are as follows: -°Ê²¼¤Ë¡¢ +以下に、 .BR strftime () -¤Î glibc ¼ÂÁõ¤¬À¸À®¤¹¤ë·ë²Ì¤ÎÎã¤ò¤¤¤¯¤Ä¤«¼¨¤¹: +の glibc 実装が生成する結果の例をいくつか示す: .nf $ ./a.out "%m" @@ -825,7 +825,7 @@ Result string is " 11" } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR date (1), .BR time (2), .BR ctime (3), diff --git a/draft/man3/string.3 b/draft/man3/string.3 index ae37feec..20c59dc9 100644 --- a/draft/man3/string.3 +++ b/draft/man3/string.3 @@ -33,14 +33,14 @@ .\" .TH STRING 3 2010-02-25 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 stpcpy, strcasecmp, strcat, strchr, strcmp, strcoll, strcpy, strcspn, strdup, strfry, strlen, strncat, strncmp, strncpy, strncasecmp, strpbrk, strrchr, strsep, strspn, strstr, strtok, strxfrm, index, rindex .\"O \- string operations -\- ʸ»úÎó¤òÁàºî¤¹¤ë´Ø¿ô +\- 文字列を操作する関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -95,15 +95,15 @@ strrchr, strsep, strspn, strstr, strtok, strxfrm, index, rindex .BI "size_t strxfrm(char *" dest ", const char *" src ", size_t " n ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The string functions perform string operations on null-terminated .\"O strings. -ʸ»úÎó´Ø¿ô¤Ï¡¢NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ë -ÂФ·¤Æ¡¢Ê¸»úÎóÁàºî¤ò¼Â¹Ô¤¹¤ë¡£ +文字列関数は、NULL 終端された文字列に +対して、文字列操作を実行する。 .\"O See the individual man pages for descriptions of each function. -¤½¤ì¤¾¤ì¤Î´Ø¿ô¤ÎÀâÌÀ¤Ë¤Ä¤¤¤Æ¤Ï¸Ä¡¹¤Îman¥Ú¡¼¥¸¤ò¸«¤è¡£ +それぞれの関数の説明については個々のmanページを見よ。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR index (3), .BR rindex (3), .BR stpcpy (3), diff --git a/draft/man3/strlen.3 b/draft/man3/strlen.3 index 8ed6979e..96d79b16 100644 --- a/draft/man3/strlen.3 +++ b/draft/man3/strlen.3 @@ -32,28 +32,28 @@ .\" by YOSHINO Takashi .\" .TH STRLEN 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -strlen \- ʸ»úÎó¤ÎŤµ¤ò·×»»¤¹¤ë -.SH ½ñ¼° +.SH 名前 +strlen \- 文字列の長さを計算する +.SH 書式 .nf .B #include .sp .BI "size_t strlen(const char *" s ); .fi -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR strlen () .\"O function calculates the length of the string .\"O \fIs\fP, excluding the terminating null byte (\(aq\\0\(aq). .BR strlen () -´Ø¿ô¤Ïʸ»úÎó \fIs\fP ¤ÎŤµ¤ò·×»»¤¹¤ë¡£ -¤³¤Î¤È¤­¡¢½ªÃ¼ NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Ï·×»»¤Ë´Þ¤Þ¤ì¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +関数は文字列 \fIs\fP の長さを計算する。 +このとき、終端 NULL バイト (\(aq\\0\(aq) は計算に含まれない。 +.SH 返り値 .BR strlen () -´Ø¿ô¤Ï \fIs\fP ¤ÎÃæ¤Îʸ»ú¿ô¤òÊÖ¤¹¡£ -.SH ½àµò +関数は \fIs\fP の中の文字数を返す。 +.SH 準拠 SVr4, 4.3BSD, C89, C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR string (3), .BR strnlen (3), .BR wcslen (3), diff --git a/draft/man3/strnlen.3 b/draft/man3/strnlen.3 index 7dffb753..084a93f7 100644 --- a/draft/man3/strnlen.3 +++ b/draft/man3/strnlen.3 @@ -15,11 +15,11 @@ .\" .TH STRNLEN 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O strnlen \- determine the length of a fixed-size string -strnlen \- ¸ÇÄêŤÎʸ»úÎó¤ÎŤµ¤òÄ´¤Ù¤ë +strnlen \- 固定長の文字列の長さを調べる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -29,9 +29,9 @@ strnlen \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR strnlen (): @@ -40,17 +40,17 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR strnlen () .\"O function returns the number of characters in the string @@ -62,14 +62,14 @@ _GNU_SOURCE .\"O looks only at the first .\"O \fImaxlen\fP characters at \fIs\fP and never beyond \fIs+maxlen\fP. .BR strnlen () -´Ø¿ô¤Ï \fIs\fP ¤¬»Ø¤¹Ê¸»úÎó¤ÎŤµ¤ò¥Ð¥¤¥È¿ô¤ÇÊÖ¤¹¡£ -Ťµ¤Ë¤Ï½ªÃ¼¤Î NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Ï´Þ¤Þ¤Ê¤¤¡£ -¤Þ¤¿Ä¹¤µ¤ÏºÇÂç¤Ç \fImaxlen\fP ¤Þ¤Ç¤Ç¤¢¤ê¡¢ +関数は \fIs\fP が指す文字列の長さをバイト数で返す。 +長さには終端の NULL バイト (\(aq\\0\(aq) は含まない。 +また長さは最大で \fImaxlen\fP までであり、 .BR strnlen () -¤Ï \fIs\fP ¤ÎºÇ½é¤Î \fImaxlen\fP ¥Ð¥¤¥È¤Î¤ß¤ò¸¡ºº¤· -\fIs+maxlen\fP ¤è¤êÀè¤ò¸¡ºº¤¹¤ë¤³¤È¤Ï¤Ê¤¤¡£ +は \fIs\fP の最初の \fImaxlen\fP バイトのみを検査し +\fIs+maxlen\fP より先を検査することはない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR strnlen () .\"O function returns \fIstrlen(s)\fP, if that is less than @@ -77,12 +77,12 @@ _GNU_SOURCE .\"O if there is no null byte (\(aq\\0\(aq) among the first .\"O \fImaxlen\fP characters pointed to by \fIs\fP. .BR strnlen () -´Ø¿ô¤Ï \fImaxlen\fP °Ê²¼¤Ê¤é¤Ð \fIstrlen(s)\fP ¤ÈƱ¤¸ -ÃͤòÊÖ¤¹¡£\fIs\fP ¤Î»Ø¤¹Ê¸»úÎ󤬺ÇÂç \fImaxlen\fP ¥Ð¥¤¥È¤Þ¤Ç¤Ë -NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ʸ»ú¤ò´Þ¤Þ¤Ê¤¤¾ì¹ç¤Ë¤Ï \fImaxlen\fP ¤òÊÖ¤¹¡£ +関数は \fImaxlen\fP 以下ならば \fIstrlen(s)\fP と同じ +値を返す。\fIs\fP の指す文字列が最大 \fImaxlen\fP バイトまでに +NULL バイト (\(aq\\0\(aq) 文字を含まない場合には \fImaxlen\fP を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strlen (3) diff --git a/draft/man3/strpbrk.3 b/draft/man3/strpbrk.3 index e64ccac7..48e3d201 100644 --- a/draft/man3/strpbrk.3 +++ b/draft/man3/strpbrk.3 @@ -34,27 +34,27 @@ .\" by Kentaro Shirakata .TH STRPBRK 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O strpbrk \- search a string for any of a set of characters -strpbrk \- ʸ»ú¥»¥Ã¥ÈÃæ¤Îʸ»ú¤òʸ»úÎ󤫤鸡½Ð¤¹¤ë +strpbrk \- 文字セット中の文字を文字列から検出する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "char *strpbrk(const char *" s ", const char *" accept ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR strpbrk () .\"O function locates the first occurrence in the .\"O string \fIs\fP of any of the characters in the string \fIaccept\fP. .BR strpbrk () -´Ø¿ô¤Ïʸ»úÎó \fIaccept\fP ¤Ë´Þ¤Þ¤ì¤ëʸ»ú¤¬Ê¸»úÎó \fIs\fP ¤Ë -¤ª¤¤¤ÆºÇ½é¤Ë¸½¤ì¤ë°ÌÃÖ¤òÁܤ·½Ð¤¹¡£ +関数は文字列 \fIaccept\fP に含まれる文字が文字列 \fIs\fP に +おいて最初に現れる位置を捜し出す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR strpbrk () .\"O function returns a pointer to the character in @@ -62,15 +62,15 @@ strpbrk \- ʸ .\"O \fIs\fP that matches one of the characters in \fIaccept\fP, or NULL .\"O if no such character is found. .BR strpbrk () -´Ø¿ô¤Ï¡¢ \fIs\fP ¤Ë´Þ¤Þ¤ì¤ëʸ»ú¤Î¤¦¤Á¡¢ -\fIaccept\fP ¤Ë´Þ¤Þ¤ì¤ëʸ»ú¤Î¤É¤ì¤«¤Ë°ìÃפ·¤¿¤â¤Î¤Ø¤Î -¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤½¤Î¤è¤¦¤Êʸ»ú¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +関数は、 \fIs\fP に含まれる文字のうち、 +\fIaccept\fP に含まれる文字のどれかに一致したものへの +ポインタを返す。 +そのような文字が見つからなかった場合は NULL を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, C89, C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR index (3), .BR memchr (3), .BR rindex (3), diff --git a/draft/man3/strptime.3 b/draft/man3/strptime.3 index 316eb619..39760f23 100644 --- a/draft/man3/strptime.3 +++ b/draft/man3/strptime.3 @@ -38,25 +38,25 @@ .\" Updated Sat Jan 5 22:17:34 JST 2002 by Yuichi SATO .\" Updated Wed Jan 14 23:21:57 JST 2002 by Akihiro MOTOKI .\" -.\"WORD: modifier ½¤Àµ»Ò -.\"WORD: broken-down time Í×ÁÇÊ̤λþ¹ï +.\"WORD: modifier 修正子 +.\"WORD: broken-down time 要素別の時刻 .\" .TH STRPTIME 3 2009-12-05 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O strptime \- convert a string representation of time to a time tm structure -strptime \- ʸ»úÎó¤Ç¤¢¤é¤ï¤µ¤ì¤Æ¤¤¤ë»þ´Ö¤ò tm ¹½Â¤ÂΤλþ´Ö¤ËÊÑ´¹¤¹¤ë +strptime \- 文字列であらわされている時間を tm 構造体の時間に変換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .\"O .BR "#define _XOPEN_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "char *strptime(const char *" s ", const char *" format , .BI "struct tm *" tm ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR strptime () .\"O function is the converse function to @@ -70,18 +70,18 @@ strptime \- ʸ .\"O using the format specified by .\"O .IR format . .BR strptime () -´Ø¿ô¤Ï +関数は .BR strftime (3) -¤ÎµÕ´Ø¿ô¤Ç¤¢¤ê¡¢¥Ý¥¤¥ó¥¿ +の逆関数であり、ポインタ .I s -¤¬»Ø¤¹Ê¸»úÎó¤ò»þ´Ö¤ËÊÑ´¹¤¹¤ë¡£ -ÊÑ´¹¤ÎºÝ¤Ë¤Ï +が指す文字列を時間に変換する。 +変換の際には .I format -¤Ç»ØÄꤷ¤¿¥Õ¥©¡¼¥Þ¥Ã¥È¤òÍѤ¤¡¢Ãͤϥݥ¤¥ó¥¿ +で指定したフォーマットを用い、値はポインタ .I tm -¤¬»Ø¤¹ +が指す .I tm -¹½Â¤ÂΤ˼ý¤á¤é¤ì¤ë¡£ +構造体に収められる。 .\"O Here .\"O .I format .\"O is a character string that consists of field descriptors and text characters, @@ -92,14 +92,14 @@ strptime \- ʸ .\"O character followed by another character that specifies the replacement .\"O for the field descriptor. .I format -¤Ï¡¢ +は、 .BR scanf (3) -¤Ç»È¤ï¤ì¤Æ¤¤¤ë¤è¤¦¤Ê¡¢ -¥Õ¥£¡¼¥ë¥É¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤È¥Æ¥­¥¹¥Èʸ»ú¤Ç¹½À®¤µ¤ì¤Æ¤¤¤ëʸ»úÎó¤Ç¤¢¤ë¡£ -¸Ä¡¹¤Î¥Õ¥£¡¼¥ë¥É¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ï +で使われているような、 +フィールドディスクリプターとテキスト文字で構成されている文字列である。 +個々のフィールドディスクリプターは .B % -¤È¤½¤ì¤Ë³¤¯Ê¸»ú¤«¤é¤Ê¤ê¡¢ -¸å¼Ô¤Ë¥Õ¥£¡¼¥ë¥É¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤òÃÖ¤­´¹¤¨¤ëÆâÍƤò»ØÄꤹ¤ë¡£ +とそれに続く文字からなり、 +後者にフィールドディスクリプターを置き換える内容を指定する。 .\"O All other characters in the .\"O .I format .\"O string must have a matching character in the input string, @@ -108,11 +108,11 @@ strptime \- ʸ .\"O There should be white\%space or other alphanumeric characters .\"O between any two field descriptors. .I format -ʸ»úÎóÃæ¤Î¾¤ÎÁ´¤Æ¤Îʸ»ú¤Ë¤Ï¡¢ÆþÎÏʸ»úÎó¤Ë¥Þ¥Ã¥Á¤¹¤ëʸ»ú¤¬¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎóÃæ¤Ë¤¢¤ë¶õÇò¤ÏÎã³°¤Ç¤¢¤ê¡¢ -ÆþÎÏʸ»úÎóÃæ¤Î 0 ¸Ä°Ê¾å¤Î¶õÇò¤È¥Þ¥Ã¥Á¤¹¤ë¡£ -2 ¤Ä¤Î¥Õ¥£¡¼¥ë¥É¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Î´Ö¤Ë¤Ï¡¢ -¶õÇò¡¦±Ñ»ú¡¦¿ô»ú¤¬¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +文字列中の他の全ての文字には、入力文字列にマッチする文字がなければならない。 +フォーマット文字列中にある空白は例外であり、 +入力文字列中の 0 個以上の空白とマッチする。 +2 つのフィールドディスクリプターの間には、 +空白・英字・数字がなければならない。 .PP .\"O The .\"O .BR strptime () @@ -123,52 +123,52 @@ strptime \- ʸ .\"O If the input cannot be matched to the format string the function stops. .\"O The remainder of the format and input strings are not processed. .BR strptime () -´Ø¿ô¤Ï¡¢ÆþÎÏʸ»úÎó¤òº¸¤«¤é±¦¤Ø½èÍý¤¹¤ë¡£ -ÆþÎϤµ¤ì¤¿ 3 ¤Ä¤ÎÍ×ÁÇ (¶õÇò¡¦Ê¸»ú¡¦¥Õ¥©¡¼¥Þ¥Ã¥È) ¤Ï¡¢½ç¤Ë½èÍý¤µ¤ì¤ë¡£ -ÆþÎϤ¬¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤È¥Þ¥Ã¥Á¤Ç¤­¤Ê¤¤¾ì¹ç¡¢´Ø¿ô¤ÏÄä»ß¤¹¤ë¡£ -»Ä¤ê¤Î¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤ÈÆþÎÏʸ»úÎó¤Ï½èÍý¤µ¤ì¤Ê¤¤¡£ +関数は、入力文字列を左から右へ処理する。 +入力された 3 つの要素 (空白・文字・フォーマット) は、順に処理される。 +入力がフォーマット文字列とマッチできない場合、関数は停止する。 +残りのフォーマット文字列と入力文字列は処理されない。 .PP .\"O The supported input field descriptors are listed below. .\"O In case a text string (such as a weekday or month name) .\"O is to be matched, the comparison is case insensitive. .\"O In case a number is to be matched, leading zeros are .\"O permitted but not required. -»ÈÍѲÄǽ¤Ê¥Õ¥£¡¼¥ë¥É¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤ò°Ê²¼¤Ëµó¤²¤ë¡£ -(ÍËÆü¤ä·î¤Î̾Á°¤È¤¤¤Ã¤¿) ʸ»úÎó¤ò¥Þ¥Ã¥Á¤µ¤»¤ë¾ì¹ç¡¢ -Âçʸ»ú¤È¾®Ê¸»ú¤Ï¶èÊ̤»¤º¤ËÈæ³Ó¤¹¤ë¡£ -¿ô¤ò¥Þ¥Ã¥Á¤µ¤»¤ë¾ì¹ç¡¢Á°¤Ë 0 ¤ò¤Ä¤±¤Æ¤â¹½¤ï¤Ê¤¤¤¬É¬¤º¤·¤âɬÍפǤϤʤ¤¡£ +使用可能なフィールドディスクリプターを以下に挙げる。 +(曜日や月の名前といった) 文字列をマッチさせる場合、 +大文字と小文字は区別せずに比較する。 +数をマッチさせる場合、前に 0 をつけても構わないが必ずしも必要ではない。 .TP .B %% .\"O The .\"O .B % .\"O character. -ʸ»ú¤È¤·¤Æ¤Î -.BR % ¡£ +文字としての +.BR % 。 .TP .\"O .BR %a " or " %A -.BR %a " ¤Þ¤¿¤Ï " %A +.BR %a " または " %A .\"O The weekday name according to the current locale, .\"O in abbreviated form or the full name. -¸½ºß¤Î¥í¥±¡¼¥ë¤Ç¤ÎÍËÆü̾ (¾Êά̾¤Þ¤¿¤Ï´°Á´¤Ê̾Á°)¡£ +現在のロケールでの曜日名 (省略名または完全な名前)。 .TP .\"O .BR %b " or " %B " or " %h -.BR %b " ¤Þ¤¿¤Ï " %B " ¤Þ¤¿¤Ï " %h +.BR %b " または " %B " または " %h .\"O The month name according to the current locale, .\"O in abbreviated form or the full name. -¸½ºß¤Î¥í¥±¡¼¥ë¤Ç¤Î·î̾ (¾Êά̾¤Þ¤¿¤Ï´°Á´¤Ê̾Á°)¡£ +現在のロケールでの月名 (省略名または完全な名前)。 .TP .B %c .\"O The date and time representation for the current locale. -¸½ºß¤Î¥í¥±¡¼¥ë¤Ç¤ÎÆüÉդȻþ¹ï¤Îɽ¸½¡£ +現在のロケールでの日付と時刻の表現。 .TP .B %C .\"O The century number (0-99). -1 À¤µªÃæ¤Îǯ (0-99)¡£ +1 世紀中の年 (0-99)。 .TP .\"O .BR %d " or " %e -.BR %d " ¤Þ¤¿¤Ï " %e +.BR %d " または " %e .\"O The day of month (1-31). -·îÆâ¤ÎÆüÉÕ (1-31)¡£ +月内の日付 (1-31)。 .TP .B %D .\"O Equivalent to @@ -179,47 +179,47 @@ strptime \- ʸ .\"O is widely used in Europe. .\"O The ISO 8601 standard format is .\"O .BR %Y-%m-%d .) -ÆüÉÕ¡£ +日付。 .B %m/%d/%y -¤ÈƱ¤¸¡£ -(¤³¤ì¤Ï¥¢¥á¥ê¥«¼°¤ÎÆüÉÕ·Á¼°¤Ç¡¢ -¥è¡¼¥í¥Ã¥Ñ¤Ç¤ÏÆÃ¤Ë +と同じ。 +(これはアメリカ式の日付形式で、 +ヨーロッパでは特に .B %d/%m/%y -¤È¤¤¤¦·Á¼°¤¬¹­¤¯»È¤ï¤ì¤Æ¤¤¤ë¤¿¤á¤Ë¡¢ -¥¢¥á¥ê¥«¿Í°Ê³°¤Ë¤Ïʶ¤é¤ï¤·¤¯´¶¤¸¤é¤ì¤ë¡£ -ISO 8601 µ¬³Ê¤Ç¤Ï +という形式が広く使われているために、 +アメリカ人以外には紛らわしく感じられる。 +ISO 8601 規格では .B %Y-%m-%d -¤È¤¤¤¦·Á¼°¤Ç¤¢¤ë¡£) +という形式である。) .TP .B %H .\"O The hour (0-23). -»þ´Ö (0-23)¡£ +時間 (0-23)。 .TP .B %I .\"O The hour on a 12-hour clock (1-12). -12 »þ´ÖÀ©¤Ç¤Î»þ´Ö (1-12)¡£ +12 時間制での時間 (1-12)。 .TP .B %j .\"O The day number in the year (1-366). -ǯ¤Î½é¤á¤«¤é¤ÎÄÌ»»¤ÎÆüÉÕ (1-366)¡£ +年の初めからの通算の日付 (1-366)。 .TP .B %m .\"O The month number (1-12). -¿ô»úɽ¸½¤Î·î (1-12)¡£ +数字表現の月 (1-12)。 .TP .B %M .\"O The minute (0-59). -ʬ (0-59)¡£ +分 (0-59)。 .TP .B %n .\"O Arbitrary whitespace. -Ǥ°Õ¤Î¶õÇò¡£ +任意の空白。 .TP .B %p .\"O The locale's equivalent of AM or PM. .\"O (Note: there may be none.) -¥í¥±¡¼¥ë¤Î AM (¸áÁ°) ¤È PM (¸á¸å) ¤ËÂбþ¤¹¤ë¤â¤Î¡£ -(Ãí°Õ: Âбþ¤¹¤ë¤â¤Î¤¬¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£) +ロケールの AM (午前) と PM (午後) に対応するもの。 +(注意: 対応するものがないかもしれない。) .TP .B %r .\"O The 12-hour clock time (using the locale's AM or PM). @@ -229,180 +229,180 @@ ISO 8601 .\"O .B LC_TIME .\"O part of the current locale .\"O then the behavior is undefined. -(¥í¥±¡¼¥ë¤Î AM ¤È PM ¤ò»È¤Ã¤¿) 12 »þ´ÖÀ©¤Î»þ´Ö¡£ -POSIX ¥í¥±¡¼¥ë¤Ç¤Ï +(ロケールの AM と PM を使った) 12 時間制の時間。 +POSIX ロケールでは .B %I:%M:%S %p -¤ÈƱ¤¸¡£ -¸½ºß¤Î¥í¥±¡¼¥ë¤Ë¤ª¤¤¤Æ +と同じ。 +現在のロケールにおいて .B LC_TIME -¥Ñ¡¼¥È¤Î -\fIt_fmt_ampm\fP ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -Æ°ºî¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +パートの +\fIt_fmt_ampm\fP が定義されていない場合、 +動作は未定義である。 .TP .B %R .\"O Equivalent to .\"O .BR %H:%M . .B %H:%M -¤ÈƱ¤¸¡£ +と同じ。 .TP .B %S .\"O The second (0-60; 60 may occur for leap seconds; .\"O earlier also 61 was allowed). -Éà (0-60; 60 ¤Ï±¼Éäò¼¨¤¹¡£°ÊÁ°¤Ï 61 ¤â»ØÄê¤Ç¤­¤¿)¡£ +秒 (0-60; 60 は閏秒を示す。以前は 61 も指定できた)。 .TP .B %t .\"O Arbitrary whitespace. -Ǥ°Õ¤Î¶õÇò¡£ +任意の空白。 .TP .B %T .\"O Equivalent to .\"O .BR %H:%M:%S . .B %H:%M:%S -¤ÈƱ¤¸¡£ +と同じ。 .TP .B %U .\"O The week number with Sunday the first day of the week (0-53). .\"O The first Sunday of January is the first day of week 1. -ÆüÍËÆü¤ò½µ¤Î»Ï¤Þ¤ê¤È¤·¤¿Ç¯ÄÌ»»¤Ç¤Î½µ¿ô (0-53)¡£ -1 ·î¤ÎºÇ½é¤ÎÆüÍËÆü¤òÂè 1 ½µÌܤκǽé¤ÎÆü¤¹¤ë¡£ +日曜日を週の始まりとした年通算での週数 (0-53)。 +1 月の最初の日曜日を第 1 週目の最初の日する。 .TP .B %w .\"O The weekday number (0-6) with Sunday = 0. -ÆüÍËÆü¤ò 0 ¤È¤·¤¿¿ô»úɽµ­¤ÎÍËÆü (0-6)¡£ +日曜日を 0 とした数字表記の曜日 (0-6)。 .TP .B %W .\"O The week number with Monday the first day of the week (0-53). .\"O The first Monday of January is the first day of week 1. -·îÍËÆü¤ò½µ¤Î»Ï¤Þ¤ê¤È¤·¤¿Ç¯ÄÌ»»¤Ç¤Î½µ¿ô (0-53)¡£ -1 ·î¤ÎºÇ½é¤Î·îÍËÆü¤òÂè 1 ½µÌܤκǽé¤ÎÆü¤¹¤ë¡£ +月曜日を週の始まりとした年通算での週数 (0-53)。 +1 月の最初の月曜日を第 1 週目の最初の日する。 .TP .B %x .\"O The date, using the locale's date format. -ÆüÉÕ¡£¥í¥±¡¼¥ë¤ÎÆüÉÕ¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»È¤¦¡£ +日付。ロケールの日付フォーマットを使う。 .TP .B %X .\"O The time, using the locale's time format. -»þ¹ï¡£¥í¥±¡¼¥ë¤Î»þ¹ï¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»È¤¦¡£ +時刻。ロケールの時刻フォーマットを使う。 .TP .B %y .\"O The year within century (0-99). .\"O When a century is not otherwise specified, values in the range 69-99 refer .\"O to years in the twentieth century (1969-1999); values in the .\"O range 00-68 refer to years in the twenty-first century (2000-2068). -1 À¤µªÃæ¤Îǯ (0-99)¡£ -À¤µª¤¬»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢ -Ãͤ¬ 69-99 ¤ÎÈϰϤΤȤ­¤Ï 20 À¤µª¤Îǯ (1969-1999)¡¢ -Ãͤ¬ 00-68 ¤ÎÈϰϤΤȤ­¤Ï 21 À¤µª¤Îǯ (2000-2068) ¤È¤¹¤ë¡£ +1 世紀中の年 (0-99)。 +世紀が指定されない場合、 +値が 69-99 の範囲のときは 20 世紀の年 (1969-1999)、 +値が 00-68 の範囲のときは 21 世紀の年 (2000-2068) とする。 .TP .B %Y .\"O The year, including century (for example, 1991). -ǯ¡£À¤µª¤ÎÉôʬ¤ò´Þ¤à (Îã: 1991)¡£ +年。世紀の部分を含む (例: 1991)。 .LP .\"O Some field descriptors can be modified by the E or O modifier characters .\"O to indicate that an alternative format or specification should be used. .\"O If the .\"O alternative format or specification does not exist in the current locale, the .\"O unmodified field descriptor is used. -E ¤ä O ¤È¤¤¤¦½¤Àµ»Ò¤ò»È¤¦¤³¤È¤ÇÊѹ¹¤Ç¤­¤ë¥Õ¥£¡¼¥ë¥É¥Ç¥£¥¹¥¯¥ê¥×¥¿¤â¤¢¤ë¡£ -¤³¤ì¤é¤Î½¤Àµ»Ò¤Ï¡¢Ê̤Υե©¡¼¥Þ¥Ã¥È¤ä»ÅÍͤò»È¤¦¤³¤È¤ò»Ø¼¨¤¹¤ë¡£ -Ê̤Υե©¡¼¥Þ¥Ã¥È¤ä»ÅÍͤ¬¸½ºß¤Î¥í¥±¡¼¥ë¤Ë¸ºß¤·¤Ê¤¤¤È¤­¤Ï¡¢ -Êѹ¹¤·¤Æ¤¤¤Ê¤¤¥Õ¥£¡¼¥ë¥É¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬»È¤ï¤ì¤ë¡£ +E や O という修正子を使うことで変更できるフィールドディスクリプタもある。 +これらの修正子は、別のフォーマットや仕様を使うことを指示する。 +別のフォーマットや仕様が現在のロケールに存在しないときは、 +変更していないフィールドディスクリプタが使われる。 .LP .\"O The E modifier specifies that the input string may contain .\"O alternative locale-dependent versions of the date and time representation: -E ½¤Àµ»Ò¤Ï¡¢¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿ÆüÉդȻþ¹ï¤ÎÊ̤Îɽ¸½·Á¼°¤¬ -ÆþÎÏʸ»úÎó¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤³¤È¤ò»ØÄꤹ¤ë¡£ +E 修正子は、ロケールに依存した日付と時刻の別の表現形式が +入力文字列に含まれていることを指定する。 .TP .B %Ec .\"O The locale's alternative date and time representation. -ÆüÉդȻþ¹ï¡£¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤Îɽ¸½·Á¼°¤ò»È¤¦¡£ +日付と時刻。ロケールに依存した別の表現形式を使う。 .TP .B %EC .\"O The name of the base year (period) in the locale's alternative representation. -´ð½àǯ (´ü´Ö) ¤Î̾Á°¡£¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤Îɽ¸½·Á¼°¤ò»È¤¦¡£ +基準年 (期間) の名前。ロケールに依存した別の表現形式を使う。 .TP .B %Ex .\"O The locale's alternative date representation. -ÆüÉÕ¡£¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤Îɽ¸½·Á¼°¤ò»È¤¦¡£ +日付。ロケールに依存した別の表現形式を使う。 .TP .B %EX .\"O The locale's alternative time representation. -»þ¹ï¡£¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤Îɽ¸½·Á¼°¤ò»È¤¦¡£ +時刻。ロケールに依存した別の表現形式を使う。 .TP .B %Ey .\"O The offset from .\"O .B %EC .\"O (year only) in the locale's alternative representation. .B %EC -(ǯ¤Î¤ß) ¤«¤é¤Î¥ª¥Õ¥»¥Ã¥È¡£¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤Îɽ¸½·Á¼°¤ò»È¤¦¡£ +(年のみ) からのオフセット。ロケールに依存した別の表現形式を使う。 .TP .B %EY .\"O The full alternative year representation. -´°Á´¤Ê·Á¼°¤Îǯ¡£Ê̤Îɽ¸½·¿¼°¤ò»È¤¦¡£ +完全な形式の年。別の表現型式を使う。 .LP .\"O The O modifier specifies that the numerical input may be in an .\"O alternative locale-dependent format: -O ½¤Àµ»Ò¤Ï¡¢¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤Υե©¡¼¥Þ¥Ã¥È¤ÎÃæ¤Ë -¿ôÃͤÎÆþÎϤ¬¤¢¤ë¤³¤È¤ò»ØÄꤹ¤ë¡£ +O 修正子は、ロケールに依存した別のフォーマットの中に +数値の入力があることを指定する。 .TP .\"O .BR %Od " or " %Oe -.BR %Od " ¤Þ¤¿¤Ï " %Oe +.BR %Od " または " %Oe .\"O The day of the month using the locale's alternative numeric symbols; .\"O leading zeros are permitted but not required. -·î¤Î½é¤á¤«¤é¤ÎÄÌ»»¤ÎÆüÉÕ¡£¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤οôÃÍ¥·¥ó¥Ü¥ë¤ò»È¤¦¡£ -0 ¤òƬ¤Ë¤Ä¤±¤Æ¤â¤è¤¤¤¬¡¢É¬¿Ü¤Ç¤Ï¤Ê¤¤¡£ +月の初めからの通算の日付。ロケールに依存した別の数値シンボルを使う。 +0 を頭につけてもよいが、必須ではない。 .TP .B %OH .\"O The hour (24-hour clock) using the locale's alternative numeric symbols. -»þ´Ö (24 »þ´ÖÀ©)¡£¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤οôÃÍ¥·¥ó¥Ü¥ë¤ò»È¤¦¡£ +時間 (24 時間制)。ロケールに依存した別の数値シンボルを使う。 .TP .B %OI .\"O The hour (12-hour clock) using the locale's alternative numeric symbols. -»þ´Ö (12 »þ´ÖÀ©)¡£¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤οôÃÍ¥·¥ó¥Ü¥ë¤ò»È¤¦¡£ +時間 (12 時間制)。ロケールに依存した別の数値シンボルを使う。 .TP .B %Om .\"O The month using the locale's alternative numeric symbols. -·î¡£¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤οôÃÍ¥·¥ó¥Ü¥ë¤ò»È¤¦¡£ +月。ロケールに依存した別の数値シンボルを使う。 .TP .B %OM .\"O The minutes using the locale's alternative numeric symbols. -ʬ¡£¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤οôÃÍ¥·¥ó¥Ü¥ë¤ò»È¤¦¡£ +分。ロケールに依存した別の数値シンボルを使う。 .TP .B %OS .\"O The seconds using the locale's alternative numeric symbols. -Éá£¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤οôÃÍ¥·¥ó¥Ü¥ë¤ò»È¤¦¡£ +秒。ロケールに依存した別の数値シンボルを使う。 .TP .B %OU .\"O The week number of the year (Sunday as the first day of the week) .\"O using the locale's alternative numeric symbols. -ǯ¤Î½é¤á¤«¤é¤ÎÄÌ»»¤Î½µ¿ô (ÆüÍËÆü¤ò½µ¤Î»Ï¤á¤È¤¹¤ë)¡£ -¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤οôÃÍ¥·¥ó¥Ü¥ë¤ò»È¤¦¡£ +年の初めからの通算の週数 (日曜日を週の始めとする)。 +ロケールに依存した別の数値シンボルを使う。 .TP .B %Ow .\"O The number of the weekday (Sunday=0) using the locale's alternative .\"O numeric symbols. -¿ôÃÍɽµ­¤ÎÍËÆü (ÆüÍËÆü¤ò 0 ¤È¤¹¤ë)¡£ -¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤οôÃÍ¥·¥ó¥Ü¥ë¤ò»È¤¦¡£ +数値表記の曜日 (日曜日を 0 とする)。 +ロケールに依存した別の数値シンボルを使う。 .TP .B %OW .\"O The week number of the year (Monday as the first day of the week) .\"O using the locale's alternative numeric symbols. -ǯ¤Î½é¤á¤«¤é¤ÎÄÌ»»¤Î½µ¿ô (·îÍËÆü¤ò½µ¤Î»Ï¤á¤È¤¹¤ë)¡£ -¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤οôÃÍ¥·¥ó¥Ü¥ë¤ò»È¤¦¡£ +年の初めからの通算の週数 (月曜日を週の始めとする)。 +ロケールに依存した別の数値シンボルを使う。 .TP .B %Oy .\"O The year (offset from %C) using the locale's alternative numeric symbols. .\"O The year (offset from .\"O .BR %C ) .\"O using the locale's alternative numeric symbols. -ǯ +å¹´ .RB ( %C -¤«¤é¤Î¥ª¥Õ¥»¥Ã¥È)¡£¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤οôÃÍ¥·¥ó¥Ü¥ë¤ò»È¤¦¡£ +からのオフセット)。ロケールに依存した別の数値シンボルを使う。 .LP .\"O The broken-down time structure \fItm\fP is defined in \fI\fP .\"O as follows: -Í×ÁÇÊ̤λþ¹ï¹½Â¤ÂÎ \fItm\fP ¤Ï -\fI\fP Æâ¤Ç°Ê²¼¤ÎÍͤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +要素別の時刻構造体 \fItm\fP は +\fI\fP 内で以下の様に定義されている。 .sp .in +4n .nf @@ -418,20 +418,20 @@ O .\"O int tm_isdst; /* daylight saving time */ .\"O }; struct tm { - int tm_sec; /* Éà */ - int tm_min; /* ʬ */ - int tm_hour; /* »þ´Ö */ - int tm_mday; /* Æü */ - int tm_mon; /* ·î */ - int tm_year; /* ǯ */ - int tm_wday; /* ÍËÆü */ - int tm_yday; /* ǯÆâÄÌ»»Æü */ - int tm_isdst; /* ²Æ»þ´Ö */ + int tm_sec; /* 秒 */ + int tm_min; /* 分 */ + int tm_hour; /* 時間 */ + int tm_mday; /* 日 */ + int tm_mon; /* 月 */ + int tm_year; /* å¹´ */ + int tm_wday; /* 曜日 */ + int tm_yday; /* 年内通算日 */ + int tm_isdst; /* 夏時間 */ }; .fi .in .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The return value of the function is a pointer to the first character .\"O not processed in this function call. .\"O In case the input string @@ -445,19 +445,19 @@ struct tm { .\"O fails to match all .\"O of the format string and therefore an error occurred the function .\"O returns NULL. -¤³¤Î´Ø¿ô¤ÎÊÖ¤êÃͤϡ¢´Ø¿ô¤ÎÃæ¤Ç½èÍý¤µ¤ì¤Ê¤«¤Ã¤¿ºÇ½é¤Îʸ»ú¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤¬É¬Íפ¹¤ë°Ê¾å¤Îʸ»ú¤¬ÆþÎÏʸ»úÎó¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -ÊÖ¤êÃͤϺǸå¤Ë½èÍý¤µ¤ì¤¿ÆþÎÏʸ»ú¤Î¼¡¤Îʸ»ú¤ò»Ø¤¹¡£ -¤¹¤Ù¤Æ¤ÎÆþÎÏʸ»úÎ󤬽èÍý¤µ¤ì¤¿¾ì¹ç¡¢ -ÊÖ¤êÃͤÏʸ»úÎóËöÈø¤Î NULL ¥Ð¥¤¥È¤ò»Ø¤¹¡£ +この関数の返り値は、関数の中で処理されなかった最初の文字へのポインタである。 +フォーマット文字列が必要する以上の文字が入力文字列に含まれている場合、 +返り値は最後に処理された入力文字の次の文字を指す。 +すべての入力文字列が処理された場合、 +返り値は文字列末尾の NULL バイトを指す。 .BR strptime () -¤¬¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤Î¤¹¤Ù¤Æ¤ÎÈæ³Ó¤Ë¼ºÇÔ¤·¡¢ -¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢´Ø¿ô¤Ï NULL ¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +がフォーマット文字列のすべての比較に失敗し、 +エラーが起こった場合、関数は NULL ポインタを返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SUSv2, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .LP .\"O In principle, this function does not initialize \fItm\fP but .\"O only stores the values specified. @@ -469,16 +469,16 @@ SUSv2, POSIX.1-2001. .\"O and .\"O .I tm_yday .\"O field if any of the year, month, or day elements changed. -¸¶Â§¤È¤·¤Æ¡¢¤³¤Î´Ø¿ô¤Ï \fItm\fP ¤Î½é´ü²½¤Ï¤»¤º¤Ë¡¢ -»ØÄꤵ¤ì¤¿ÃͤΤߤòÆþ¤ì¤ë¡£ -¤Ä¤Þ¤ê¡¢¤³¤Î´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤ÎÁ°¤Ë \fItm\fP ¤ò½é´ü²½¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¾¤Î UNIX ¥·¥¹¥Æ¥à¤È¤Ï¡¢ºÙ¤«¤¤ÅÀ¤Ç°Û¤Ê¤ë¡£ -glibc ¤Î¼ÂÁõ¤Ç¤Ï¡¢ÌÀ¼¨Åª¤Ë»ØÄꤵ¤ì¤Ê¤¤¥Õ¥£¡¼¥ë¥É¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ -Îã³°¤È¤·¤Æ¡¢Ç¯¡¦·î¡¦Æü¤Î¤¤¤º¤ì¤«¤ÎÍ×ÁǤ¬Êѹ¹¤µ¤ì¤¿¾ì¹ç¤Ë +原則として、この関数は \fItm\fP の初期化はせずに、 +指定された値のみを入れる。 +つまり、この関数の呼び出しの前に \fItm\fP を初期化しなければならない。 +他の UNIX システムとは、細かい点で異なる。 +glibc の実装では、明示的に指定されないフィールドは変更されない。 +例外として、年・月・日のいずれかの要素が変更された場合に .I tm_wday -¤È +と .I tm_yday -¤¬ºÆ·×»»¤µ¤ì¤ë¡£ +が再計算される。 .PP .\"O This function is available since libc 4.6.8. .\"O Linux libc4 and libc5 includes define the prototype unconditionally; @@ -487,23 +487,23 @@ glibc .\"O or .\"O .B _GNU_SOURCE .\"O are defined. -¤³¤Î´Ø¿ô¤Ï¡¢libc 4.6.8 °Ê¹ß¤Ç»ÈÍѤǤ­¤ë¡£ -Linux ¤Î libc4 ¤È libc5 ¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Ï¡¢ -¤³¤Î´Ø¿ô¤Î¥×¥í¥È¥¿¥¤¥×¤ò¾ï¤ËÄêµÁ¤¹¤ë¡£ -glibc2 ¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Ï¡¢ +この関数は、libc 4.6.8 以降で使用できる。 +Linux の libc4 と libc5 のインクルードファイルは、 +この関数のプロトタイプを常に定義する。 +glibc2 のインクルードファイルは、 .B _XOPEN_SOURCE -¤Þ¤¿¤Ï +または .B _GNU_SOURCE -¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Î¤ß¡¢ -¤³¤Î´Ø¿ô¤Î¥×¥í¥È¥¿¥¤¥×¤òÄ󶡤¹¤ë¡£ +が定義された場合のみ、 +この関数のプロトタイプを提供する。 .PP .\"O Before libc 5.4.13 whitespace .\"O (and the \(aqn\(aq and \(aqt\(aq specifications) was not handled, .\"O no \(aqE\(aq and \(aqO\(aq locale modifier characters were accepted, .\"O and the \(aqC\(aq specification was a synonym for the \(aqc\(aq specification. -libc 5.4.13 ¤è¤êÁ°¤Ç¤Ï¡¢¶õÇò (¤È \(aqn\(aq ¤Þ¤¿¤Ï \(aqt\(aq »ØÄê) ¤Ï°·¤ï¤ì¤Ê¤«¤Ã¤¿¡£ -¥í¥±¡¼¥ë¤Î½¤Àµ»Ò \(aqE\(aq ¤È \(aqO\(aq ¤Ï¼õ¤±ÉÕ¤±¤é¤ì¤Ê¤«¤Ã¤¿¡£ -¤Þ¤¿¡¢\(aqC\(aq ¤Î»ØÄê¤Ï \(aqc\(aq ¤Î»ØÄê¤ÈƱ¤¸°ÕÌ£¤Ç°·¤ï¤ì¤¿¡£ +libc 5.4.13 より前では、空白 (と \(aqn\(aq または \(aqt\(aq 指定) は扱われなかった。 +ロケールの修正子 \(aqE\(aq と \(aqO\(aq は受け付けられなかった。 +また、\(aqC\(aq の指定は \(aqc\(aq の指定と同じ意味で扱われた。 .PP .\"O The \(aqy\(aq (year in century) specification is taken to specify a year .\"O in the 20th century by libc4 and libc5. @@ -511,48 +511,48 @@ libc 5.4.13 .\"O in the range 1950-2049 by glibc 2.0. .\"O It is taken to be a year in .\"O 1969-2068 since glibc 2.1. -\(aqy\(aq (1 À¤µªÃæ¤Îǯ) ¤Î»ØÄê¤Ï¡¢libc4 ¤È libc5 ¤Ç¤Ï 20 À¤µª¤Îǯ¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ -glibc 2.0 ¤Ç¤Ï 1950-2049 ¤ÎÈϰϤȤ·¤Æ²ò¼á¤µ¤ì¤ë¡£ -glibc 2.1 ¤«¤é¤Ï 1969-2068 ¤ÎÈϰϤȤ·¤Æ²ò¼á¤µ¤ì¤ë¡£ +\(aqy\(aq (1 世紀中の年) の指定は、libc4 と libc5 では 20 世紀の年として解釈される。 +glibc 2.0 では 1950-2049 の範囲として解釈される。 +glibc 2.1 からは 1969-2068 の範囲として解釈される。 .\"O .\" In libc4 and libc5 the code for %I is broken (fixed in glibc; .\"O .\" %OI was fixed in glibc 2.2.4). -.\" libc4 ¤È libc5 ¤Ç¤Ï %I ÍѤΥ³¡¼¥É¤¬²õ¤ì¤Æ¤¤¤ë (glibc ¤Ç½¤Àµ¤µ¤ì¤¿; -.\" %OI ¤Ï glibc 2.2.4 ¤Ç½¤Àµ¤µ¤ì¤¿)¡£ +.\" libc4 と libc5 では %I 用のコードが壊れている (glibc で修正された; +.\" %OI は glibc 2.2.4 で修正された)。 .\"O .SS Glibc Notes -.SS glibc ¤Ç¤ÎÃí°Õ +.SS glibc での注意 .\"O For reasons of symmetry, glibc tries to support for .\"O .BR strptime () .\"O the same format characters as for .\"O .BR strftime (3). -ÂоÝÀ­¤Î¤¿¤á¤Ë¡¢glibc ¤Ç¤Ï +対象性のために、glibc では .BR strptime () -¤Ë +に .BR strftime (3) -¤ÈƱ¤¸¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»ú¤ò¥µ¥Ý¡¼¥È¤µ¤»¤è¤¦¤È¤·¤Æ¤¤¤ë¡£ +と同じフォーマット文字をサポートさせようとしている。 .\"O In most cases the corresponding fields are parsed, but no field in \fItm\fP .\"O is changed.) .\"O This leads to -¿¤¯¤Î¾ì¹ç¡¢Âбþ¤¹¤ë¥Õ¥£¡¼¥ë¥É¤¬²ò¼á¤µ¤ì¤ë¤¬¡¢ -\fItm\fP ¥Õ¥£¡¼¥ë¥É¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ -»ÈÍѲÄǽ¤Ê¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»ú¤ò°Ê²¼¤Ë¼¨¤¹¡£ +多くの場合、対応するフィールドが解釈されるが、 +\fItm\fP フィールドは変更されない。 +使用可能なフォーマット文字を以下に示す。 .TP .B %F .\"O Equivalent to \fB%Y-%m-%d\fP, the ISO 8601 date format. -\fB%Y-%m-%d\fP ¤ÈƱ¤¸¡£ISO 8601 ¤ÎÆüÉÕ·Á¼°¡£ +\fB%Y-%m-%d\fP と同じ。ISO 8601 の日付形式。 .TP .B %g .\"O The year corresponding to the ISO week number, but without the century .\"O (0-99). -ISO ½µ¿ô¤ËÂбþ¤·¤¿À¾Îñǯ¡£À¤µª¤Ï´Þ¤Þ¤º (0-99) ¤ÎÈÏ°Ï¡£ +ISO 週数に対応した西暦年。世紀は含まず (0-99) の範囲。 .TP .B %G .\"O The year corresponding to the ISO week number. .\"O (For example, 1991.) -ISO ½µ¿ô¤ËÂбþ¤·¤¿À¾Îñǯ (Î㤨¤Ð 1991)¡£ +ISO 週数に対応した西暦年 (例えば 1991)。 .TP .B %u .\"O The day of the week as a decimal number (1-7, where Monday = 1). -10 ¿Ê¿ôɽµ­¤ÎÍËÆü (1-7 ¤Ç·îÍËÆü¤ò 1 ¤È¤¹¤ë)¡£ +10 進数表記の曜日 (1-7 で月曜日を 1 とする)。 .TP .B %V .\"O The ISO 8601:1988 week number as a decimal number (1-53). @@ -560,19 +560,19 @@ ISO .\"O in the new year, then it is considered week 1. .\"O Otherwise, it is the last week .\"O of the previous year, and the next week is week 1. -ISO 8601:1988 ·Á¼°¤Ç¤ÎǯÄÌ»»¤Î 10 ¿Ê¿ôɽµ­¤Ç¤Î½µ¿ô (1-53)¡£ -1 ·î 1 Æü¤ò´Þ¤à (·îÍËÆü¤«¤é»Ï¤Þ¤ë) ½µ¤Ë 4 Æü°Ê¾å¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ -¤½¤Î½µ¤òÂè 1 ½µ¤È¤¹¤ë¡£ -3 Æü°Ê²¼¤·¤«´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢1 ·î 1 Æü¤ò´Þ¤à½µ¤òÁ°Ç¯¤ÎºÇ½ª¤Î½µ¤È¤·¤Æ¡¢ -¼¡¤Î½µ¤òÂè 1 ½µ¤È¤¹¤ë¡£ +ISO 8601:1988 形式での年通算の 10 進数表記での週数 (1-53)。 +1 月 1 日を含む (月曜日から始まる) 週に 4 日以上が含まれている場合は、 +その週を第 1 週とする。 +3 日以下しか含まれていない場合は、1 月 1 日を含む週を前年の最終の週として、 +次の週を第 1 週とする。 .TP .B %z .\"O An RFC-822/ISO 8601 standard timezone specification. -RFC-822/ISO 8601 ɸ½à¥¿¥¤¥à¥¾¡¼¥ó¤ò»ØÄꤹ¤ë¡£ +RFC-822/ISO 8601 標準タイムゾーンを指定する。 .TP .B %Z .\"O The timezone name. -¥¿¥¤¥à¥¾¡¼¥ó̾¡£ +タイムゾーン名。 .LP .\"O Similarly, because of GNU extensions to .\"O .BR strftime (3), @@ -588,44 +588,44 @@ RFC-822/ISO 8601 ɸ .\"O .B %P .\"O is accepted as a synonym for .\"O .BR %p . -ƱÍͤˡ¢ +同様に、 .BR strftime (3) -¤Î GNU ÈǤǤγÈÄ¥¤ËÂбþ¤¹¤ë¤¿¤á¤Ë¡¢ +の GNU 版での拡張に対応するために、 .B %k -¤Ï -.B %H¡¢ +は +.B %H、 .B %P -¤Ï +は .B %p -¤ÈÅù²Á¤Ë°·¤ï¤ì¤ë¡£¤Þ¤¿¡¢ +と等価に扱われる。また、 .B %l -¤Ï +は .B %I -¤ÈÅù²Á¤Ë°·¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¤Ï¤º¤Ç¤¢¤ë¡£ +と等価に扱われるようになるはずである。 .\"O Finally -¤µ¤é¤Ë°Ê²¼¤âÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +さらに以下も定義されている。 .TP .B %s .\"O The number of seconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC). .\"O Leap seconds are not counted unless leap second support is available. -µª¸µ (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) ¤«¤é¤ÎÄÌ»»¤ÎÉÿô¡£ -±¼É䬥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¸Â¤ê¡¢±¼Éäϥ«¥¦¥ó¥È¤·¤Ê¤¤¡£ +紀元 (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) からの通算の秒数。 +閏秒がサポートされていない限り、閏秒はカウントしない。 .LP .\"O The glibc implementation does not require whitespace between .\"O two field descriptors. -glibc ¤Ë¤ª¤±¤ë¼ÂÁõ¤Ç¤Ï¡¢2 ¤Ä¤Î¥Õ¥£¡¼¥ë¥É´Ö¤Î¶õÇò¤ÏɬÍפʤ¤¡£ +glibc における実装では、2 つのフィールド間の空白は必要ない。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The following example demonstrates the use of .\"O .BR strptime () .\"O and .\"O .BR strftime (3). -°Ê²¼¤ÎÎã¤Ï +以下の例は .BR strptime () -¤È +と .BR strftime (3) -¤Î»ÈÍÑË¡¤ò¼¨¤·¤Æ¤¤¤ë¡£ +の使用法を示している。 .sp .nf #define _XOPEN_SOURCE @@ -648,7 +648,7 @@ main(void) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR time (2), .BR getdate (3), .BR scanf (3), diff --git a/draft/man3/strsep.3 b/draft/man3/strsep.3 index e8c7a266..6316a853 100644 --- a/draft/man3/strsep.3 +++ b/draft/man3/strsep.3 @@ -35,15 +35,15 @@ .\" Updated Tue Apr 10 11:19:58 JST 2001 by Kentaro Shirakata .\" Updated 2009-02-12 by Kentaro Shirakata .\" -.\" WORD: delimiter ¶èÀÚ¤êʸ»ú +.\" WORD: delimiter 区切り文字 .\" .TH STRSEP 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O strsep \- extract token from string -strsep \- ʸ»úÎ󤫤é¥È¡¼¥¯¥ó¤ò¼è¤ê½Ð¤¹ +strsep \- 文字列からトークンを取り出す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -53,15 +53,15 @@ strsep \- ʸ .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR strsep (): _BSD_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O If \fI*stringp\fP is NULL, the .\"O .BR strsep () .\"O function returns NULL @@ -69,69 +69,69 @@ _BSD_SOURCE .\"O Otherwise, this function finds the first token .\"O in the string \fI*stringp\fP, where tokens .\"O are delimited by symbols in the string \fIdelim\fP. -\fI*stringp\fP ¤¬ NULL ¤Î¾ì¹ç¡¢ +\fI*stringp\fP が NULL の場合、 .BR strsep () -´Ø¿ô¤Ï²¿¤â¤»¤º¤Ë NULL ¤òÊÖ¤¹¡£ -¤µ¤â¤Ê¤±¤ì¤Ð¡¢Ê¸»úÎó \fIstringp\fP ¤ò -\fIdelim\fP ¤Ë´Þ¤Þ¤ì¤ëʸ»ú¤Ç¶èÀڤä¿ -¥È¡¼¥¯¥ó¤Î¤¦¤ÁºÇ½é¤Î¤â¤Î¤òÊÖ¤¹¡£ +関数は何もせずに NULL を返す。 +さもなければ、文字列 \fIstringp\fP を +\fIdelim\fP に含まれる文字で区切った +トークンのうち最初のものを返す。 .\"O This token is terminated by overwriting the delimiter .\"O with a null byte (\(aq\\0\(aq) .\"O and \fI*stringp\fP is updated to point past the token. -¥È¡¼¥¯¥ó¤Ï¡¢¶èÀÚ¤êʸ»ú¤ò NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Ç¾å½ñ¤­¤¹¤ë¤³¤È¤Ç -½ªÃ¼¤µ¤ì¤ë¡£ -\fI*stringp\fP ¤ÏÀÚ¤ê½Ð¤µ¤ì¤¿¥È¡¼¥¯¥ó¤Î¼¡¤Î°ÌÃÖ¤ò¼¨¤¹¤è¤¦¤Ë¹¹¿·¤µ¤ì¤ë¡£ +トークンは、区切り文字を NULL バイト (\(aq\\0\(aq) で上書きすることで +終端される。 +\fI*stringp\fP は切り出されたトークンの次の位置を示すように更新される。 .\"O In case no delimiter was found, the token is taken to be .\"O the entire string \fI*stringp\fP, and \fI*stringp\fP is made NULL. -¶èÀÚ¤êʸ»ú¤¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¡¢\fI*stringp\fP ʸ»úÎóÁ´ÂΤ¬¥È¡¼¥¯¥ó¤È¤·¤Æ -°·¤ï¤ì¡¢\fI*stringp\fP ¤Ï NULL ¤È¤Ê¤ë¡£ +区切り文字が見つからない場合、\fI*stringp\fP 文字列全体がトークンとして +扱われ、\fI*stringp\fP は NULL となる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR strsep () .\"O function returns a pointer to the token, .\"O that is, it returns the original value of \fI*stringp\fP. .BR strsep () -´Ø¿ô¤Ï¡¢¥È¡¼¥¯¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤Ä¤Þ¤ê¡¢¸µ¤Î \fI*stringp\fP ¤ÎÃͤòÊÖ¤¹¡£ +関数は、トークンへのポインタを返す。 +つまり、元の \fI*stringp\fP の値を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.4BSD. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The .\"O .BR strsep () .\"O function was introduced as a replacement for .\"O .BR strtok (3), .\"O since the latter cannot handle empty fields. .BR strsep () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strtok (3) -´Ø¿ô¤¬¶õ¤Î¥Õ¥£¡¼¥ë¥É¤ò -°·¤¨¤Ê¤¤¤¿¤á¤Ë¡¢¤½¤ÎÂåÂØÉʤȤ·¤ÆƳÆþ¤µ¤ì¤¿¡£ +関数が空のフィールドを +扱えないために、その代替品として導入された。 .\"O However, .\"O .BR strtok (3) .\"O conforms to C89/C99 and hence is more portable. -¤·¤«¤·¤Ê¤¬¤é¡¢ +しかしながら、 .BR strtok (3) -´Ø¿ô¤Ï C89/C99 ¤Ë½àµò¤·¤Æ¤ª¤ê¡¢¤è¤ê°Ü¿¢À­¤¬¤¢¤ë¡£ +関数は C89/C99 に準拠しており、より移植性がある。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Be cautious when using this function. .\"O If you do use it, note that: -¤³¤Î´Ø¿ô¤ò»È¤¦»þ¤ÏÃí°Õ¤¹¤ë¤³¤È¡£ -¤â¤·»È¤¦¤Ê¤é¡¢°Ê²¼¤Î¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +この関数を使う時は注意すること。 +もし使うなら、以下のことに注意すること。 .IP * 2 .\"O This function modifies its first argument. -¤³¤Î´Ø¿ô¤ÏºÇ½é¤Î°ú¿ô¤òÊѹ¹¤¹¤ë¡£ +この関数は最初の引数を変更する。 .IP * .\"O This function cannot be used on constant strings. -¤³¤Î´Ø¿ô¤ÏÄê¿ôʸ»úÎó¤Ë¤Ï»È¤¨¤Ê¤¤¡£ +この関数は定数文字列には使えない。 .IP * .\"O The identity of the delimiting character is lost. -¶èÀÚ¤êʸ»ú¤¬²¿¤Ç¤¢¤Ã¤¿¤«Ê¬¤«¤é¤Ê¤¯¤Ê¤ë¡£ +区切り文字が何であったか分からなくなる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR index (3), .BR memchr (3), .BR rindex (3), diff --git a/draft/man3/strsignal.3 b/draft/man3/strsignal.3 index c987d1c8..fcaa9727 100644 --- a/draft/man3/strsignal.3 +++ b/draft/man3/strsignal.3 @@ -34,9 +34,9 @@ .\" by Kentaro Shirakata .\" .TH STRSIGNAL 3 2010-09-15 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -strsignal \- ¥·¥°¥Ê¥ë¤òÀâÌÀ¤¹¤ëʸ»úÎó¤òÊÖ¤¹ -.SH ½ñ¼° +.SH 名前 +strsignal \- シグナルを説明する文字列を返す +.SH 書式 .nf .B #include .sp @@ -48,9 +48,9 @@ strsignal \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR strsignal (): @@ -59,23 +59,23 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .BR strsignal () -´Ø¿ô¤Ï¡¢°ú¿ô \fIsig\fP ¤ÇÅϤµ¤ì¤¿¥·¥°¥Ê¥ëÈÖ¹æ¤ò -ÀâÌÀ¤¹¤ëʸ»úÎó¤òÊÖ¤¹¡£ -ʸ»úÎó¤Ï¡¢¼¡¤Î +関数は、引数 \fIsig\fP で渡されたシグナル番号を +説明する文字列を返す。 +文字列は、次の .BR strsignal () -¤¬¸Æ¤Ð¤ì¤ë¤Þ¤Ç¤Î´Ö¤À¤±»ÈÍѤǤ­¤ë¡£ +が呼ばれるまでの間だけ使用できる。 .PP .\"O The array \fIsys_siglist\fP holds the signal description strings .\"O indexed by signal number. @@ -83,13 +83,13 @@ _GNU_SOURCE .\"O .BR strsignal () .\"O function should be .\"O used if possible instead of this array. -ÇÛÎó \fIsys_siglist\fP ¤Ï¥·¥°¥Ê¥ë¤òÀâÌÀ¤¹¤ëʸ»úÎó¤òÊÝ»ý¤·¤Æ¤ª¤ê¡¢ -ÇÛÎó¤Ø¤Î¥¢¥¯¥»¥¹¤Ë¤Ï¥·¥°¥Ê¥ëÈÖ¹æ¤òź¤¨»ú¤È¤·¤ÆÍѤ¤¤ë»ö¤¬¤Ç¤­¤ë¡£ -½ÐÍè¤ë¤À¤±¤³¤ÎÇÛÎó¤ÎÂå¤ï¤ê¤Ë +配列 \fIsys_siglist\fP はシグナルを説明する文字列を保持しており、 +配列へのアクセスにはシグナル番号を添え字として用いる事ができる。 +出来るだけこの配列の代わりに .BR strsignal () -´Ø¿ô¤ò -»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +関数を +使うべきである。 +.SH 返り値 .\"O The .\"O .BR strsignal () .\"O function returns the appropriate description @@ -97,16 +97,16 @@ _GNU_SOURCE .\"O On some systems (but not on Linux), a NULL pointer may be .\"O returned instead for an invalid signal number. .BR strsignal () -´Ø¿ô¤Ï¡¢¥·¥°¥Ê¥ë¤ÎŬÀÚ¤ÊÀâÌÀ¤òÊÖ¤¹¡£ -¤â¤·¥·¥°¥Ê¥ëÈֹ椬ÉÔÀµ¤Ê¾ì¹ç¤Ï¡¢Ì¤ÃΤΥ·¥°¥Ê¥ë(unknown signal)¤ò¼¨¤¹ -¥á¥Ã¥»¡¼¥¸¤òÊÖ¤¹¡£ -(Linux ¤Ï¤½¤¦¤Ç¤Ï¤Ê¤¤¤¬)ÉÔÀµ¤Ê¥·¥°¥Ê¥ëÈÖ¹æ¤ËÂФ·¤Æ¡¢ NULL ¥Ý¥¤¥ó¥¿¤ò -ÊÖ¤¹¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ +関数は、シグナルの適切な説明を返す。 +もしシグナル番号が不正な場合は、未知のシグナル(unknown signal)を示す +メッセージを返す。 +(Linux はそうではないが)不正なシグナル番号に対して、 NULL ポインタを +返すシステムもある。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. .\"O Present on Solaris and the BSDs. -Solaris ¤È BSD ·Ï¤Ë¤â¸ºß¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +Solaris と BSD 系にも存在する。 +.SH 関連項目 .BR psignal (3), .BR strerror (3) diff --git a/draft/man3/strspn.3 b/draft/man3/strspn.3 index f17e3434..213c33ff 100644 --- a/draft/man3/strspn.3 +++ b/draft/man3/strspn.3 @@ -32,9 +32,9 @@ .\" by HIROFUMI Nishizuka .\" .TH STRSPN 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -strspn, strcspn \- ʸ»úÎ󤫤éʸ»ú¤Î¥»¥Ã¥È¤òõ¤¹ -.SH ½ñ¼° +.SH 名前 +strspn, strcspn \- 文字列から文字のセットを探す +.SH 書式 .nf .B #include .sp @@ -42,25 +42,25 @@ strspn, strcspn \- ʸ .sp .BI "size_t strcspn(const char *" s ", const char *" reject ); .fi -.SH ÀâÌÀ +.SH 説明 .BR strspn () -´Ø¿ô¤Ï¡¢\fIaccept\fP ¤Ë´Þ¤Þ¤ì¤ëʸ»ú¤À¤±¤Ç¹½À®¤µ¤ì¤ëʸ»úÎó -¤ò \fIs\fP ¤«¤éõ¤·¡¢¤½¤ÎºÇ½é¤ÎÉôʬ¤ÎŤµ¤ò·×»»¤¹¤ë¡£ +関数は、\fIaccept\fP に含まれる文字だけで構成される文字列 +を \fIs\fP から探し、その最初の部分の長さを計算する。 .PP .BR strcspn () -´Ø¿ô¤Ï¡¢\fIreject\fP ¤Ë´Þ¤Þ¤ì¤Ê¤¤Ê¸»ú¤À¤±¤Ç¹½À®¤µ¤ì¤ëʸ»úÎó -¤ò \fIs\fP ¤«¤éõ¤·¡¢¤½¤ÎºÇ½é¤ÎÉôʬ¤ÎŤµ¤ò·×»»¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ +関数は、\fIreject\fP に含まれない文字だけで構成される文字列 +を \fIs\fP から探し、その最初の部分の長さを計算する。 +.SH 返り値 .BR strspn () -´Ø¿ô¤Ï¡¢\fIaccept\fP ¤«¤é¤Îʸ»ú¤À¤±¤Ç¹½À®¤µ¤ì¤ë \fIs\fP ¤Î -ºÇ½é¤ÎÉôʬ¤Îʸ»ú¤Î¿ô¤òÊÖ¤¹¡£ +関数は、\fIaccept\fP からの文字だけで構成される \fIs\fP の +最初の部分の文字の数を返す。 .PP .BR strcspn () -´Ø¿ô¤Ï¡¢\fIs\fP ¤ÎºÇ½é¤ÎÉôʬ¤Ç¡¢Ê¸»úÎó \fIreject\fP ¤Ë -´Þ¤Þ¤ì¤Ê¤¤Ê¸»ú¤Î¿ô¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIs\fP の最初の部分で、文字列 \fIreject\fP に +含まれない文字の数を返す。 +.SH 準拠 SVr4, 4.3BSD, C89, C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR index (3), .BR memchr (3), .BR rindex (3), diff --git a/draft/man3/strstr.3 b/draft/man3/strstr.3 index 4e66d9cf..f0a5e698 100644 --- a/draft/man3/strstr.3 +++ b/draft/man3/strstr.3 @@ -37,34 +37,34 @@ .\" .TH STRSTR 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O strstr, strcasestr \- locate a substring -strstr, strcasestr \- Éôʬʸ»úÎó¤Î°ÌÃÖ¤ò¼¨¤¹ +strstr, strcasestr \- 部分文字列の位置を示す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "char *strstr(const char *" haystack ", const char *" needle ); .sp .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .sp .B #include .sp .BI "char *strcasestr(const char *" haystack ", const char *" needle ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR strstr () .\"O function finds the first occurrence of the substring .\"O \fIneedle\fP in the string \fIhaystack\fP. .\"O The terminating null bytes (\(aq\\0\(aq) are not compared. .BR strstr () -´Ø¿ô¤Ï¡¢Éôʬʸ»úÎó \fIneedle\fP ¤¬Ê¸»úÎó \fIhaystack\fP Ãæ -¤ÇºÇ½é¤Ë¸½¤ì¤ë°ÌÃÖ¤ò¸«¤Ä¤±¤ë¡£ -ʸ»úÎó¤ò½ªÃ¼ NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤ÏÈæ³Ó¤µ¤ì¤Ê¤¤¡£ +関数は、部分文字列 \fIneedle\fP が文字列 \fIhaystack\fP 中 +で最初に現れる位置を見つける。 +文字列を終端 NULL バイト (\(aq\\0\(aq) は比較されない。 .\"O The .\"O .BR strcasestr () @@ -72,18 +72,18 @@ strstr, strcasestr \- .\"O .BR strstr (), .\"O but ignores the case of both arguments. .BR strcasestr () -´Ø¿ô¤Ï +関数は .BR strstr () -´Ø¿ô¤ÈƱÍͤÀ¤¬¡¢ -ξÊý¤Î°ú¿ô¤ËÂФ·¤ÆÂçʸ»ú¾®Ê¸»ú¤ò̵»ë¤¹¤ë¡£ +関数と同様だが、 +両方の引数に対して大文字小文字を無視する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O These functions return a pointer to the beginning of the .\"O substring, or NULL if the substring is not found. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢Éôʬʸ»úÎó¤Î³«»Ï¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤òÊÖ¤·¡¢ -¤â¤·Éôʬʸ»úÎ󤬸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +これらの関数は、部分文字列の開始を指すポインタを返し、 +もし部分文字列が見つからない場合は NULL を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The .\"O .BR strstr () .\"O function conforms to C89 and C99. @@ -91,22 +91,22 @@ strstr, strcasestr \- .\"O .BR strcasestr () .\"O function is a nonstandard extension. .BR strstr () -´Ø¿ô¤Ï C89 ¤È C99 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +関数は C89 と C99 に準拠している。 .BR strcasestr () -´Ø¿ô¤ÏÈóɸ½à³ÈÄ¥¤Ç¤¢¤ë¡£ +関数は非標準拡張である。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Early versions of Linux libc (like 4.5.26) would not allow .\"O an empty \fIneedle\fP argument for .\"O .BR strstr (). .\"O Later versions (like 4.6.27) work correctly, .\"O and return \fIhaystack\fP when \fIneedle\fP is empty. -Linux libc ¤Î½é´ü¤Î¥Ð¡¼¥¸¥ç¥ó(4.5.26 ¤Þ¤Ç)¤Ï +Linux libc の初期のバージョン(4.5.26 まで)は .BR strstr () -´Ø¿ô¤Î \fIneedle\fP °ú¿ô¤Ë¶õʸ»úÎó¤ò»ØÄê¤Ç¤­¤Ê¤¤¡£ -ºÇ¶á¤Î¥Ð¡¼¥¸¥ç¥ó(4.6.27 °Ê¹ß)¤ÏÀµ¤·¤¯Æ°ºî¤·¡¢ -\fIneedle\fP ¤¬¶õ¤Î»þ¤Ï \fIhaystack\fP ¤òÊÖ¤¹¡£ -.SH ´ØÏ¢¹àÌÜ +関数の \fIneedle\fP 引数に空文字列を指定できない。 +最近のバージョン(4.6.27 以降)は正しく動作し、 +\fIneedle\fP が空の時は \fIhaystack\fP を返す。 +.SH 関連項目 .BR index (3), .BR memchr (3), .BR rindex (3), diff --git a/draft/man3/strtod.3 b/draft/man3/strtod.3 index 54143f01..1b3a52fe 100644 --- a/draft/man3/strtod.3 +++ b/draft/man3/strtod.3 @@ -52,10 +52,10 @@ .TH STRTOD 3 2010-00-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O strtod, strtof, strtold \- convert ASCII string to floating-point number -.SH ̾Á° -strtod, strtof, strtold \- ASCII ʸ»úÎó¤òÉâÆ°¾®¿ôÅÀ¼Â¿ô¤ËÊÑ´¹¤¹¤ë +.SH 名前 +strtod, strtof, strtold \- ASCII 文字列を浮動小数点実数に変換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double strtod(const char *" nptr ", char **" endptr ); @@ -67,9 +67,9 @@ strtod, strtof, strtold \- ASCII ʸ .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .ad l .sp @@ -84,7 +84,7 @@ or .RE .ad l .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR strtod (), .\"O .BR strtof (), @@ -101,13 +101,13 @@ or .BR strtod (), .BR strtof (), .BR strtold () -´Ø¿ô¤Ï¡¢ +関数は、 .I nptr -¤¬»Ø¤·¼¨¤¹Ê¸»úÎó¤Î¤Ï¤¸¤á¤ÎÉôʬ¤ò +が指し示す文字列のはじめの部分を .IR double , .IR float , .I long double -·¿¤ÎÃͤˤ½¤ì¤¾¤ìÊÑ´¹¤¹¤ë¡£ +型の値にそれぞれ変換する。 .\"O The expected form of the (initial portion of the) string is .\"O optional leading white space as recognized by @@ -115,15 +115,15 @@ or .\"O an optional plus (\(aq+\(aq) or minus sign (\(aq\-\(aq) and then either .\"O (i) a decimal number, or (ii) a hexadecimal number, .\"O or (iii) an infinity, or (iv) a NAN (not-a-number). -ÆþÎϤ¹¤ëʸ»úÎó (¤ÎÀèƬÉôʬ) ¤Ï°Ê²¼¤Î·Á¼°¤¬´üÂÔ¤µ¤ì¤Æ¤¤¤ë¡£ -ÀèƬ¤Ë¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹¡¢ -¼¡¤Ë¥×¥é¥¹ (\(aq+\(aq) ¤Þ¤¿¤Ï¥Þ¥¤¥Ê¥¹ (\(aq\-\(aq) ¤Îµ­¹æ¡¢ -¤½¤Î¸å¤Ë (i) 10 ¿Ê¿ô¡¢(ii) 16 ¿Ê¿ô¡¢(iii) ̵¸Â¡¢ -(iv) NAN (·×»»¤Ç¤­¤Ê¤¤¿ô¡¢not-a-number) ¤Î¤¤¤º¤ì¤«¤¬¤¢¤ë -(¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹¡¢Éä¹æ¤Ï¾Êά²Äǽ¡£ -¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹¤Ï +入力する文字列 (の先頭部分) は以下の形式が期待されている。 +先頭にホワイトスペース、 +次にプラス (\(aq+\(aq) またはマイナス (\(aq\-\(aq) の記号、 +その後に (i) 10 進数、(ii) 16 進数、(iii) 無限、 +(iv) NAN (計算できない数、not-a-number) のいずれかがある +(ホワイトスペース、符号は省略可能。 +ホワイトスペースは .BR isspace (3) -¤Ç¼±Ê̤µ¤ì¤ë)¡£ +で識別される)。 .LP .\"O A .\"O .I "decimal number" @@ -133,14 +133,14 @@ or .\"O A decimal exponent consists of an \(aqE\(aq or \(aqe\(aq, followed by an .\"O optional plus or minus sign, followed by a nonempty sequence of .\"O decimal digits, and indicates multiplication by a power of 10. -.I "10 ¿Ê¿ô" -¤Ï 1 ʸ»ú°Ê¾å¤Î 10 ¿Ê¤Î¿ô»ú¤ÎÎ󤫤é¤Ê¤ê¡¢ -´ð¤òɽ¤¹Ê¸»ú (radix charater) -(¾®¿ôÅÀ¡£¥í¥±¡¼¥ë¤Ë°Í¸¤¹¤ë¤¬¡¢Ä̾ï¤Ï \(aq.\(aq) ¤¬´Þ¤Þ¤ì¤ë¤³¤È¤â¤¢¤ë¡£ -¤³¤Î¸å¤Ë 10 ¿Ê¤Î»Ø¿ôÉô¤¬Â³¤¤¤Æ¤âÎɤ¤¡£ -10 ¿Ê¤Î»Ø¿ôÉô¤Ï \(aqE\(aq ¤Þ¤¿¤Ï \(aqe\(aq ¤È¡¢¤½¤Î¸å¤ËÃÖ¤«¤ì¤ëÀµÉéµ­¹æ (¾Êά²Ä)¡¢ -¤ª¤è¤Ó¤½¤Î¸å¤Ë³¤¯ 1 ʸ»ú°Ê¾å¤Î 10 ¿Ê¤Î¿ô»ú¤ÎÎ󤫤é¤Ê¤ê¡¢ -10 ¤Î²¿¾è¤Ç¤¢¤ë¤«¤òɽ¤¹¡£ +.I "10 進数" +は 1 文字以上の 10 進の数字の列からなり、 +基を表す文字 (radix charater) +(小数点。ロケールに依存するが、通常は \(aq.\(aq) が含まれることもある。 +この後に 10 進の指数部が続いても良い。 +10 進の指数部は \(aqE\(aq または \(aqe\(aq と、その後に置かれる正負記号 (省略可)、 +およびその後に続く 1 文字以上の 10 進の数字の列からなり、 +10 の何乗であるかを表す。 .LP .\"O A .\"O .I "hexadecimal number" @@ -152,20 +152,20 @@ or .\"O plus or minus sign, followed by a nonempty sequence of .\"O decimal digits, and indicates multiplication by a power of 2. .\"O At least one of radix character and binary exponent must be present. -.I "16 ¿Ê¿ô" -¤Ï¡¢"0x" ¤Þ¤¿¤Ï "0X" ¤È¤½¤Î¸å¤Ë³¤¯ 1 ʸ»ú°Ê¾å¤Î 16 ¿Ê¤Î¿ô»ú¤ÎÎ󤫤é¤Ê¤ê¡¢ -´ð¤òɽ¤¹Ê¸»ú¤¬´Þ¤Þ¤ì¤ë¤³¤È¤â¤¢¤ë¡£ -¤³¤Î¸å¤Ë 2 ¿Ê¤Î»Ø¿ôÉô¤¬Â³¤¤¤Æ¤âÎɤ¤¡£ -2 ¿Ê¤Î»Ø¿ôÉô¤Ï \(aqP\(aq ¤Þ¤¿¤Ï \(aqp\(aq ¤È¡¢¤½¤Î¸å¤ËÃÖ¤«¤ì¤ëÀµÉéµ­¹æ (¾Êά²Ä)¡¢ -¤ª¤è¤Ó¤½¤Î¸å¤Ë³¤¯ 1 ʸ»ú°Ê¾å¤Î 10 ¿Ê¤Î¿ô»ú¤ÎÎ󤫤鹽À®¤µ¤ì¡¢ -2 ¤Î²¿¾è¤Ç¤¢¤ë¤«¤òɽ¤¹¡£ -´ð¤òɽ¤¹Ê¸»ú¤È 2 ¿Ê¤Î»Ø¿ôÉô¤Ï¡¢¤É¤Á¤é¤«°ìÊý¤·¤«Â¸ºß¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +.I "16 進数" +は、"0x" または "0X" とその後に続く 1 文字以上の 16 進の数字の列からなり、 +基を表す文字が含まれることもある。 +この後に 2 進の指数部が続いても良い。 +2 進の指数部は \(aqP\(aq または \(aqp\(aq と、その後に置かれる正負記号 (省略可)、 +およびその後に続く 1 文字以上の 10 進の数字の列から構成され、 +2 の何乗であるかを表す。 +基を表す文字と 2 進の指数部は、どちらか一方しか存在してはならない。 .LP .\"O An .\"O .I infinity .\"O is either "INF" or "INFINITY", disregarding case. -.I ̵¸Â -¤Ï "INF" ¤Þ¤¿¤Ï "INFINITY" ¤Çɽ¤µ¤ì¡¢Âçʸ»ú¾®Ê¸»ú¤Ï¶èÊ̤µ¤ì¤Ê¤¤¡£ +.I 無限 +は "INF" または "INFINITY" で表され、大文字小文字は区別されない。 .LP .\"O A .\"O .I NAN @@ -174,16 +174,16 @@ or .\"O The character string specifies in an implementation-dependent .\"O way the type of NAN. .I NAN -¤Ï "NAN" (Âçʸ»ú¾®Ê¸»ú¤Ï¶èÊ̤µ¤ì¤Ê¤¤) ¤Çɽ¤µ¤ì¡¢ -¤½¤Î¸å¤Ë \(aq(\(aq ʸ»úÎó \(aq)\(aq ¤¬Â³¤¯¾ì¹ç¤â¤¢¤ë¡£ -¤³¤Îʸ»úÎó¤Ï¼ÂÁõ¤Ë°Í¸¤¹¤ë NAN ¤ò»ØÄꤹ¤ë¡£ +は "NAN" (大文字小文字は区別されない) で表され、 +その後に \(aq(\(aq 文字列 \(aq)\(aq が続く場合もある。 +この文字列は実装に依存する NAN を指定する。 .\" From glibc 2.8's stdlib/strtod_l.c: .\" We expect it to be a number which is put in the .\" mantissa of the number. .\"O .SH "RETURN VALUES" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O These functions return the converted value, if any. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ÊÑ´¹¤µ¤ì¤¿Ãͤ¬¤¢¤ì¤Ð¡¢¤½¤ì¤òÊÖ¤¹¡£ +これらの関数は、変換された値があれば、それを返す。 .\"O If .\"O .I endptr @@ -192,19 +192,19 @@ or .\"O is stored in the location referenced by .\"O .IR endptr . .I endptr -¤¬ NULL ¤Ç¤Ê¤¤¤È¤­¤Ï¡¢ÊÑ´¹¤Ë»È¤ï¤ì¤¿ºÇ½ªÊ¸»ú¤Î¼¡¤Îʸ»ú¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤¬ +が NULL でないときは、変換に使われた最終文字の次の文字へのポインターが .I endptr -¤Ç»²¾È¤µ¤ì¤ë¾ì½ê¤ØÊݸ¤µ¤ì¤ë¡£ +で参照される場所へ保存される。 .\"O If no conversion is performed, zero is returned and the value of .\"O .I nptr .\"O is stored in the location referenced by .\"O .IR endptr . -ÊÑ´¹¤¬¹Ô¤ï¤ì¤Ê¤«¤Ã¤¿¤È¤­¤Ë¤Ï 0 ¤¬Ê֤롣¤½¤·¤Æ +変換が行われなかったときには 0 が返る。そして .I endptr -¤¬»²¾È¤·¤Æ¤¤¤ë¾ì½ê¤Ë +が参照している場所に .I nptr -¤ÎÃÍ (ÊÑ´¹ÂоݤǤ¢¤ëʸ»úÎó¤Î³«»Ï¥¢¥É¥ì¥¹) ¤¬Êݸ¤µ¤ì¤ë¡£ +の値 (変換対象である文字列の開始アドレス) が保存される。 .\"O If the correct value would cause overflow, plus or minus .\"O .B HUGE_VAL @@ -219,37 +219,37 @@ or .\"O .B ERANGE .\"O is stored in .\"O .IR errno . -Àµ¤·¤¤·Á¼°¤Î¿ôÃÍʸ»úÎó¤Ç¤¢¤ë¤¬¡¢ÊÑ´¹·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤òµ¯¤³¤·¤¿¾ì¹ç -¤Ë¤Ï¡¢¥×¥é¥¹¤Þ¤¿¤Ï¥Þ¥¤¥Ê¥¹¤Î +正しい形式の数値文字列であるが、変換結果がオーバーフローを起こした場合 +には、プラスまたはマイナスの .B HUGE_VAL .RB ( HUGE_VALF , .BR HUGE_VALL ) -¤¬ÊÖ¤ê (ÃͤÎÉä¹æ¤Ë¤è¤ë)¡¢ +が返り (値の符号による)、 .B ERANGE -¤¬ +が .I errno -¤ËÂåÆþ¤µ¤ì¤ë¡£ÊÑ´¹·ë²Ì¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤òµ¯¤³¤·¤¿¾ì¹ç¤Ë¤Ï 0 ¤¬Ê֤ꡢ +に代入される。変換結果がアンダーフローを起こした場合には 0 が返り、 .B ERANGE -¤¬ +が .I errno -¤ËÂåÆþ¤µ¤ì¤ë¡£ +に代入される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B ERANGE .\"O Overflow or underflow occurred. -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Þ¤¿¤Ï¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¬µ¯¤³¤Ã¤¿¡£ +オーバーフローまたはアンダーフローが起こった。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O C89 describes .\"O .BR strtod (), .\"O C99 .\"O describes the other two functions. -C89 ¤Ç¤Ï +C89 では .BR strtod () -¤¬¡¢C99 ¤Ç¤Ï»Ä¤ê¤Î 2 ¤Ä¤Î´Ø¿ô¤¬µ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +が、C99 では残りの 2 つの関数が記述されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Since .\"O 0 can legitimately be returned .\"O on both success and failure, the calling program should set @@ -258,24 +258,24 @@ C89 .\"O and then determine if an error occurred by checking whether .\"O .I errno .\"O has a nonzero value after the call. -À®¸ù¡¢¼ºÇԤɤÁ¤é¤Î¾ì¹ç¤Ç¤â 0 ¤òÊÖ¤¹²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç¡¢ -¥×¥í¥°¥é¥à¤Ï¸Æ¤Ó½Ð¤¹Á°¤Ë +成功、失敗どちらの場合でも 0 を返す可能性があるので、 +プログラムは呼び出す前に .I errno -¤ò 0 ¤ËÀßÄꤷ¡¢¸Æ¤Ó½Ð¤·¸å¤Ë +を 0 に設定し、呼び出し後に .I errno -¤¬ 0 °Ê³°¤ÎÃͤ«¤É¤¦¤«¤ò³Îǧ¤·¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤É¤¦¤«¤òȽÃǤ¹¤ë -ɬÍפ¬¤¢¤ë¡£ +が 0 以外の値かどうかを確認しエラーが発生したかどうかを判断する +必要がある。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O See the example on the .\"O .BR strtol (3) .\"O manual page; .\"O the use of the functions described in this manual page is similar. .BR strtol (3) -¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÎÎã¤ò»²¾È¡£ -¤³¤Î¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤¿´Ø¿ô¤Î»ÈÍÑÊýË¡¤âƱÍͤǤ¢¤ë¡£ +のマニュアルページの例を参照。 +このページで説明した関数の使用方法も同様である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR atof (3), .BR atoi (3), .BR atol (3), diff --git a/draft/man3/strtoimax.3 b/draft/man3/strtoimax.3 index 44b00200..db9a3300 100644 --- a/draft/man3/strtoimax.3 +++ b/draft/man3/strtoimax.3 @@ -27,11 +27,11 @@ .\" .TH STRTOIMAX 3 2003-11-28 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O strtoimax, strtoumax \- convert string to integer -strtoimax, strtoumax \- ʸ»úÎó¤òÀ°¿ô¤ËÊÑ´¹¤¹¤ë +strtoimax, strtoumax \- 文字列を整数に変換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -40,7 +40,7 @@ strtoimax, strtoumax \- ʸ .BI "uintmax_t strtoumax(const char *" nptr ", char **" endptr ", int " base ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions are just like .\"O .BR strtol (3) .\"O and @@ -50,21 +50,21 @@ strtoimax, strtoumax \- ʸ .\"O and .\"O .IR uintmax_t , .\"O respectively. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¤Á¤ç¤¦¤É +これらの関数はちょうど .BR strtol (3) -¤È +と .BR strtoul (3) -¤Ë»÷¤Æ¤¤¤ë¤¬¡¢¤½¤ì¤¾¤ì +に似ているが、それぞれ .I intmax_t -¤È +と .I uintmax_t -·¿¤ÎÃͤòÊÖ¤¹¡£ +型の値を返す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, the converted value is returned. .\"O If nothing was found to convert, zero is returned. -À®¸ù¤·¤¿¾ì¹ç¡¢ÊÑ´¹¤µ¤ì¤¿Ãͤ¬ÊÖ¤µ¤ì¤ë¡£ -ÊÑ´¹¤¹¤ë¤â¤Î¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +成功した場合、変換された値が返される。 +変換するものが見つからなかった場合、0 が返される。 .\"O On overflow or underflow .\"O .B INTMAX_MAX .\"O or @@ -75,22 +75,22 @@ strtoimax, strtoumax \- ʸ .\"O .I errno .\"O is set to .\"O .BR ERANGE . -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Þ¤¿¤Ï¥¢¥ó¥À¡¼¥Õ¥í¡¼¤Î¾ì¹ç¡¢ +オーバーフローまたはアンダーフローの場合、 .B INTMAX_MAX -¤Þ¤¿¤Ï +または .B INTMAX_MIN -¤Þ¤¿¤Ï +または .B UINTMAX_MAX -¤¬ÊÖ¤µ¤ì¡¢ +が返され、 .I errno -¤¬ +が .B ERANGE -¤ËÀßÄꤵ¤ì¤ë¡£ +に設定される。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR imaxabs (3), .BR imaxdiv (3), .BR strtol (3), diff --git a/draft/man3/strtok.3 b/draft/man3/strtok.3 index 3b2add1a..d7c73d42 100644 --- a/draft/man3/strtok.3 +++ b/draft/man3/strtok.3 @@ -35,10 +35,10 @@ .TH STRTOK 3 2010-09-27 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O strtok, strtok_r \- extract tokens from strings -.SH ̾Á° -strtok, strtok_r \- ʸ»úÎ󤫤é¥È¡¼¥¯¥ó¤ò¼è¤ê½Ð¤¹ +.SH 名前 +strtok, strtok_r \- 文字列からトークンを取り出す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -50,9 +50,9 @@ strtok, strtok_r \- ʸ .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -61,7 +61,7 @@ _SVID_SOURCE || _BSD_SOURCE || _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR strtok () .\"O function parses a string into a sequence of tokens. @@ -72,19 +72,19 @@ _XOPEN_SOURCE || _POSIX_SOURCE .\"O In each subsequent call that should parse the same string, .\"O \fIstr\fP should be NULL. .BR strtok () -´Ø¿ô¤Ïʸ»úÎó¤ò²òÀϤ·¤Æ¥È¡¼¥¯¥ó¤Ëʬ³ä¤¹¤ë¡£ +関数は文字列を解析してトークンに分割する。 .BR strtok () -¤òºÇ½é¤Ë¸Æ¤Ó½Ð¤¹ºÝ¤Ë¤Ï¡¢²òÀÏÂоݤÎʸ»úÎó¤ò \fIstr\fP ¤Ë -»ØÄꤹ¤ë¡£Æ±¤¸Ê¸»úÎó¤Î²òÀϤò¹Ô¤¦¤½¤Î¸å¤Î¸Æ¤Ó½Ð¤·¤Ç¤Ï¡¢ -\fIstr\fP ¤Ë¤Ï NULL ¤ò»ØÄꤹ¤ë¡£ +を最初に呼び出す際には、解析対象の文字列を \fIstr\fP に +指定する。同じ文字列の解析を行うその後の呼び出しでは、 +\fIstr\fP には NULL を指定する。 .\"O The \fIdelim\fP argument specifies a set of characters that .\"O delimit the tokens in the parsed string. .\"O The caller may specify different strings in \fIdelim\fP in successive .\"O calls that parse the same string. -\fIdelim\fP °ú¤­¿ô¤Ë¤Ï¡¢²òÀϤ¹¤ëʸ»úÎó¤ò¥È¡¼¥¯¥ó¤Ë¶èÀÚ¤ëʸ»ú½¸¹ç¤ò -»ØÄꤹ¤ë¡£Æ±¤¸Ê¸»úÎó¤ò²òÀϤ¹¤ë°ìÏ¢¤Î¸Æ¤Ó½Ð¤·¤Ë¤ª¤¤¤Æ¡¢ -\fIdelim\fP ¤Ë°ã¤¦Ê¸»úÎó¤ò»ØÄꤷ¤Æ¤â¤è¤¤¡£ +\fIdelim\fP 引き数には、解析する文字列をトークンに区切る文字集合を +指定する。同じ文字列を解析する一連の呼び出しにおいて、 +\fIdelim\fP に違う文字列を指定してもよい。 .\"O Each call to .\"O .BR strtok () @@ -95,10 +95,10 @@ _XOPEN_SOURCE || _POSIX_SOURCE .\"O .BR strtok () .\"O returns NULL. .BR strtok () -¤Î¤½¤ì¤¾¤ì¤Î¸Æ¤Ó½Ð¤·¤Ç¤Ï¡¢¼¡¤Î¥È¡¼¥¯¥ó¤ò -³ÊǼ¤·¤¿ NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤Îʸ»úÎó¤Ë¤Ï¶èÀÚ¤êʸ»ú¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ -¤³¤ì°Ê¾å¥È¡¼¥¯¥ó¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢NULL ¤¬ÊÖ¤µ¤ì¤ë¡£ +のそれぞれの呼び出しでは、次のトークンを +格納した NULL 終端された文字列へのポインタが返される。 +この文字列には区切り文字は含まれない。 +これ以上トークンが見つからなかった場合には、NULL が返される。 .\"O A sequence of two or more contiguous delimiter characters in .\"O the parsed string is considered to be a single delimiter. @@ -106,11 +106,11 @@ _XOPEN_SOURCE || _POSIX_SOURCE .\"O Put another way: the tokens returned by .\"O .BR strtok () .\"O are always nonempty strings. -²òÀÏÂоݤÎʸ»úÎó¤Ë2¤Ä°Ê¾å¤Î¶èÀÚ¤êʸ»ú¤¬Ï¢Â³¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -°ì¤Ä¤Î¶èÀÚ¤êʸ»ú¤È¤ß¤Ê¤µ¤ì¤ë¡£ -ʸ»úÎó¤ÎÀèƬ¤äËöÈø¤Ë¤¢¤ë¶èÀÚ¤êʸ»ú¤Ï̵»ë¤µ¤ì¤ë¡£¸À¤¤´¹¤¨¤ë¤È¡¢ +解析対象の文字列に2つ以上の区切り文字が連続している場合には、 +一つの区切り文字とみなされる。 +文字列の先頭や末尾にある区切り文字は無視される。言い換えると、 .BR strtok () -¤¬ÊÖ¤¹¥È¡¼¥¯¥ó¤Ï¾ï¤Ë¶õ¤Ç¤Ê¤¤Ê¸»úÎó¤È¤Ê¤ë¡£ +が返すトークンは常に空でない文字列となる。 .\"O The .\"O .BR strtok_r () @@ -122,15 +122,15 @@ _XOPEN_SOURCE || _POSIX_SOURCE .\"O in order to maintain context between successive calls that parse the .\"O same string. .BR strtok_r () -´Ø¿ô¤Ï +関数は .BR strtok () -¤Î¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤǤ¢¤ë¡£ -\fIsaveptr\fP °ú¤­¿ô¤Ï \fIchar *\fP ÊÑ¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ê¡¢ -Ʊ¤¸Ê¸»úÎó¤Î²òÀϤò¹Ô¤¦ +のリエントラント版である。 +\fIsaveptr\fP 引き数は \fIchar *\fP 変数へのポインタであり、 +同じ文字列の解析を行う .BR strtok_r () -¤Î¸Æ¤Ó½Ð¤·´Ö¤Ç½èÍý¾õ¶·¤òÊݸ¤¹¤ë¤¿¤á¤Ë +の呼び出し間で処理状況を保存するために .BR strtok_r () -ÆâÉô¤Ç»ÈÍѤµ¤ì¤ë¡£ +内部で使用される。 .\"O On the first call to .\"O .BR strtok_r (), @@ -141,24 +141,24 @@ _XOPEN_SOURCE || _POSIX_SOURCE .\"O In subsequent calls, \fIstr\fP should be NULL, and .\"O \fIsaveptr\fP should be unchanged since the previous call. .BR strtok_r () -¤òºÇ½é¤Ë¸Æ¤Ó½Ð¤¹ºÝ¤Ë¤Ï¡¢ +を最初に呼び出す際には、 .I str -¤Ï²òÀÏÂоݤÎʸ»úÎó¤ò»Ø¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ +は解析対象の文字列を指していなければならず、 .I saveptr -¤ÎÃͤÏ̵»ë¤µ¤ì¤ë¡£¤½¤ì°Ê¹ß¤Î¸Æ¤Ó½Ð¤·¤Ç¤Ï¡¢ +の値は無視される。それ以降の呼び出しでは、 .I str -¤Ï NULL ¤È¤·¡¢ +は NULL とし、 .I saveptr -¤ÏÁ°²ó¤Î¸Æ¤Ó½Ð¤·°Ê¹ßÊѹ¹¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は前回の呼び出し以降変更しないようにしなければならない。 .\"O Different strings may be parsed concurrently using sequences of calls to .\"O .BR strtok_r () .\"O that specify different \fIsaveptr\fP arguments. .BR strtok_r () -¤Î¸Æ¤Ó½Ð¤·»þ¤Ë°Û¤Ê¤ë \fIsaveptr\fP °ú¤­¿ô¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢ -°Û¤Ê¤ëʸ»úÎó¤Î²òÀϤòƱ»þ¤Ë¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +の呼び出し時に異なる \fIsaveptr\fP 引き数を指定することで、 +異なる文字列の解析を同時に行うことができる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR strtok () .\"O and @@ -166,12 +166,12 @@ _XOPEN_SOURCE || _POSIX_SOURCE .\"O functions return a pointer to .\"O the next token, or NULL if there are no more tokens. .BR strtok () -¤È +と .BR strtok_r () -¤Ï¼¡¤Î¥È¡¼¥¯¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¤«¡¢ -¥È¡¼¥¯¥ó¤¬¤Ê¤±¤ì¤Ð NULL ¤òÊÖ¤¹¡£ +は次のトークンへのポインタか、 +トークンがなければ NULL を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .TP .BR strtok () SVr4, POSIX.1-2001, 4.3BSD, C89, C99. @@ -179,20 +179,20 @@ SVr4, POSIX.1-2001, 4.3BSD, C89, C99. .BR strtok_r () POSIX.1-2001. .\"O .SH "BUGS" -.SH ¥Ð¥° +.SH バグ .\"O Be cautious when using these functions. .\"O If you do use them, note that: -¤³¤ì¤é¤Î´Ø¿ô¤ò»È¤¦¤Î¤Ï¿µ½Å¤Ë¶ãÌ£¤¹¤ë¤³¤È¡£ -»ÈÍѤ¹¤ë¾ì¹ç¤Ï¡¢°Ê²¼¤ÎÅÀ¤ËÃí°Õ¤¬É¬ÍפǤ¢¤ë¡£ +これらの関数を使うのは慎重に吟味すること。 +使用する場合は、以下の点に注意が必要である。 .IP * 2 .\"O These functions modify their first argument. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¤½¤ÎºÇ½é¤Î°ú¿ô¤òÊѹ¹¤¹¤ë¡£ +これらの関数はその最初の引数を変更する。 .IP * .\"O These functions cannot be used on constant strings. -¤³¤ì¤é¤Î´Ø¿ô¤Ï const ¤Êʸ»úÎó¤Ç¤Ï»È¤¨¤Ê¤¤¡£ +これらの関数は const な文字列では使えない。 .IP * .\"O The identity of the delimiting character is lost. -¶èÀÚ¤êʸ»ú¼«ÂΤϼº¤ï¤ì¤Æ¤·¤Þ¤¦¡£ +区切り文字自体は失われてしまう。 .IP * .\"O The .\"O .BR strtok () @@ -201,12 +201,12 @@ POSIX.1-2001. .\"O .BR strtok_r () .\"O if this matters to you. .BR strtok () -´Ø¿ô¤Ïʸ»úÎó¤Î²òÀϤËÀÅŪ¥Ð¥Ã¥Õ¥¡¤òÍѤ¤¤ë¤Î¤Ç¡¢¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤Ê¤¤¡£ -¤³¤ì¤¬ÌäÂê¤Ë¤Ê¤ë¾ì¹ç¤Ï +関数は文字列の解析に静的バッファを用いるので、スレッドセーフでない。 +これが問題になる場合は .BR strtok_r () -¤òÍѤ¤¤ë¤³¤È¡£ +を用いること。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The program below uses nested loops that employ .\"O .BR strtok_r () .\"O to break a string into a two-level hierarchy of tokens. @@ -215,19 +215,19 @@ POSIX.1-2001. .\"O to be used to separate that string into "major" tokens. .\"O The third argument specifies the delimiter character(s) .\"O to be used to separate the "major" tokens into subtokens. -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢ +以下のプログラムは、 .BR strtok_r () -¤òÍøÍѤ¹¤ë¥ë¡¼¥×¤òÆþ¤ì»Ò¤Ë¤·¤Æ»ÈÍѤ·¡¢ -ʸ»úÎó¤ò2³¬ÁؤΥȡ¼¥¯¥ó¤Ëʬ³ä¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -1ÈÖÌܤΥ³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ë¤Ï¡¢²òÀÏÂоݤÎʸ»úÎó¤ò»ØÄꤹ¤ë¡£ -2ÈÖÌܤΰú¤­¿ô¤Ë¤Ï¡¢Ê¸»úÎó¤ò¡ÖÂ礭¤Ê¡×¥È¡¼¥¯¥ó¤Ëʬ³ä¤¹¤ë¤¿¤á¤Ë -»ÈÍѤ¹¤ë¶èÀÚ¤êʸ»ú¤ò»ØÄꤹ¤ë¡£ -3ÈÖÌܤΰú¤­¿ô¤Ë¤Ï¡¢¡ÖÂ礭¤Ê¡×¥È¡¼¥¯¥ó¤òºÙ¤«¤¯Ê¬³ä¤¹¤ë¤¿¤á¤Ë -»ÈÍѤ¹¤ë¶èÀÚ¤êʸ»ú¤ò»ØÄꤹ¤ë¡£ +を利用するループを入れ子にして使用し、 +文字列を2階層のトークンに分割するものである。 +1番目のコマンドライン引き数には、解析対象の文字列を指定する。 +2番目の引き数には、文字列を「大きな」トークンに分割するために +使用する区切り文字を指定する。 +3番目の引き数には、「大きな」トークンを細かく分割するために +使用する区切り文字を指定する。 .PP .PP .\"O An example of the output produced by this program is the following: -¤³¤Î¥×¥í¥°¥é¥à¤Î½ÐÎÏÎã¤ò°Ê²¼¤Ë¼¨¤¹¡£ +このプログラムの出力例を以下に示す。 .PP .in +4n .nf @@ -243,7 +243,7 @@ POSIX.1-2001. .fi .in .\"O .SS Program source -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -286,11 +286,11 @@ main(int argc, char *argv[]) .\"O can be found in .\"O .BR getaddrinfo_a (3). .BR strtok () -¤ò»È¤Ã¤¿ÊÌ¤Î¥×¥í¥°¥é¥àÎ㤬 +を使った別のプログラム例が .BR getaddrinfo_a (3) -¤Ë¤¢¤ë¡£ +にある。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR index (3), .BR memchr (3), .BR rindex (3), diff --git a/draft/man3/strtol.3 b/draft/man3/strtol.3 index c7217790..178afc1e 100644 --- a/draft/man3/strtol.3 +++ b/draft/man3/strtol.3 @@ -36,13 +36,13 @@ .\" Updated & Modified 2006-07-20, .\" Akihiro MOTOKI , LDP v2.36 .\" -.\" WORD: base ´ð¿ô +.\" WORD: base 基数 .\" .TH STRTOL 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 .\"O strtol, strtoll, strtoq \- convert a string to a long integer -strtol, strtoll, strtoq \- ʸ»úÎó¤ò long int ¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +strtol, strtoll, strtoq \- 文字列を long int に変換する +.SH 書式 .nf .B #include .sp @@ -55,9 +55,9 @@ strtol, strtoll, strtoq \- ʸ .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -71,17 +71,17 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR strtol () .\"O function converts the initial part of the string .\"O in \fInptr\fP to a long integer value according to the given \fIbase\fP, .\"O which must be between 2 and 36 inclusive, or be the special value 0. .BR strtol () -´Ø¿ô¤Ï¡¢ \fInptr\fP ¤Îʸ»úÎó¤ÎºÇ½é¤ÎÉôʬ¤ò¡¢ -\fIbase\fP ¤ò´ð¿ô¤È¤·¤Æ long int ¤ËÊÑ´¹¤¹¤ë¡£ -¤³¤Î \fIbase\fP ¤Ï 2 ¤«¤é 36 ¤Þ¤Ç¤ÎÃÍ -¤¢¤ë¤¤¤ÏÆÃÊ̤ʰÕÌ£¤ò»ý¤ÄÃÍ 0 ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +関数は、 \fInptr\fP の文字列の最初の部分を、 +\fIbase\fP を基数として long int に変換する。 +この \fIbase\fP は 2 から 36 までの値 +あるいは特別な意味を持つ値 0 でなければならない。 .PP .\"O The string may begin with an arbitrary amount of white space (as .\"O determined by @@ -91,15 +91,15 @@ or .\"O "0x" prefix, and the number will be read in base 16; otherwise, a .\"O zero \fIbase\fP is taken as 10 (decimal) unless the next character .\"O is \(aq0\(aq, in which case it is taken as 8 (octal). -ʸ»úÎó¤ÎÀèƬ¤Ë¤Ï¡¢Ç¤°Õ¤Î¿ô¤Î¶õÇò¤¬¤¢¤Ã¤Æ¤â¤è¤¯ (¶õÇò¤Ï +文字列の先頭には、任意の数の空白があってもよく (空白は .BR isspace (3) -¤ÇȽÄꤵ¤ì¤ë)¡¢¤Þ¤¿¿ô»ú¤ÎľÁ°¤Ë¤Ï \(aq+\(aq ¤« \(aq\-\(aq ¤Î -Éä¹æ¤¬¤¢¤Ã¤Æ¤â¤è¤¤¡£ -\fIbase\fP ¤¬ 0 ¤Þ¤¿¤Ï 16 ¤Î¾ì¹ç¤Ë¤Ï¡¢Ê¸»úÎó¤ÎÀèƬ¤Ë "0x" ¤òÃÖ¤¯¤³¤È¤¬ -¤Ç¤­¡¢¤½¤Î¾ì¹ç¤Ë¤Ïʸ»úÎó¤Ï 16¿Ê¿ô¤È¤·¤Æ°·¤ï¤ì¤ë¡£ -¤³¤ì°Ê³°¤Îʸ»úÎó¤Ç \fIbase\fP ¤¬ 0 ¤Î¾ì¹ç¤Ï¡¢ -ʸ»úÎó¤¬ \(aq0\(aq ¤Ç»Ï¤Þ¤ë¤È¤­¤Ï 8¿Ê¿ô¤È¤·¤Æ¡¢ -¤½¤ì°Ê³°¤Î¤È¤­¤Ï 10¿Ê¿ô¤È¤·¤Æ°·¤ï¤ì¤ë¡£ +で判定される)、また数字の直前には \(aq+\(aq か \(aq\-\(aq の +符号があってもよい。 +\fIbase\fP が 0 または 16 の場合には、文字列の先頭に "0x" を置くことが +でき、その場合には文字列は 16進数として扱われる。 +これ以外の文字列で \fIbase\fP が 0 の場合は、 +文字列が \(aq0\(aq で始まるときは 8進数として、 +それ以外のときは 10進数として扱われる。 .PP .\"O The remainder of the string is converted to a .\"O .I long int @@ -109,12 +109,12 @@ or .\"O (In bases above 10, the letter \(aqA\(aq in .\"O either upper or lower case represents 10, \(aqB\(aq represents 11, and so .\"O forth, with \(aqZ\(aq representing 35.) -¿ô»ú¤òɽ¤¹Ê¸»úÎó¤Ï +数字を表す文字列は .I long int -¤ËÊÑ´¹¤µ¤ì¤ë¤¬¡¢´ð¿ô¤ËÂФ·¤Æ -Í­¸ú¤Ç¤Ê¤¤¿ô»ú¤¬¸½¤ì¤¿»þÅÀ¤ÇÊÑ´¹¤Ï½ªÎ»¤¹¤ë¡£(11¿Ê¿ô°Ê¾å¤Ç¤Ï \(aqA\(aq ¤Ï -Âçʸ»ú¡¦¾®Ê¸»ú¤Ë´Ø¤ï¤é¤º 10 ¤òɽ¤·¡¢ \(aqB\(aq ¤Ï 11 ¤òɽ¸½¤·¡¢ -°Ê²¼Æ±Íͤˡ¢ \(aqZ\(aq ¤Ï 35 ¤òɽ¤¹¡£) +に変換されるが、基数に対して +有効でない数字が現れた時点で変換は終了する。(11進数以上では \(aqA\(aq は +大文字・小文字に関わらず 10 を表し、 \(aqB\(aq は 11 を表現し、 +以下同様に、 \(aqZ\(aq は 35 を表す。) .PP .\"O If \fIendptr\fP is not NULL, .\"O .BR strtol () @@ -125,17 +125,17 @@ or .\"O .BR strtol () .\"O stores the original value of \fInptr\fP in .\"O \fI*endptr\fP (and returns 0). -\fIendptr\fP ¤¬¥Ì¥ëÃÍ (NULL) ¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢ºÇ½é¤Ë¸½¤ì¤¿ÉÔÀµ¤Êʸ»ú¤¬ +\fIendptr\fP がヌル値 (NULL) でない場合は、最初に現れた不正な文字が .BR strtol () -¤Ë¤è¤Ã¤Æ \fI*endptr\fP ¤ËÊݸ¤µ¤ì¤Æ¤¤¤ë¡£ -ʸ»úÎó¤ËÍ­¸ú¤Ê¿ô»ú¤¬¤Ò¤È¤Ä¤â¤Ê¤±¤ì¤Ð¡¢ +によって \fI*endptr\fP に保存されている。 +文字列に有効な数字がひとつもなければ、 .BR strtol () -¤Ï \fInptr\fP -¤Î¸µ¤ÎÃͤò \fI*endptr\fP ¤ËÂåÆþ¤¹¤ë (¤½¤·¤Æ 0 ¤òÊÖ¤¹)¡£ +は \fInptr\fP +の元の値を \fI*endptr\fP に代入する (そして 0 を返す)。 .\"O In particular, if \fI*nptr\fP is not \(aq\\0\(aq but \fI**endptr\fP .\"O is \(aq\\0\(aq on return, the entire string is valid. -Æäˡ¢\fI*nptr\fP ¤¬ \(aq\\0\(aq °Ê³°¤Ç¡¢ÊÖ¤µ¤ì¤¿ \fI**endptr\fP ¤¬ -\(aq\\0\(aq ¤Ê¤é¤Ð¡¢Ê¸»úÎóÁ´ÂΤ¬Í­¸ú¤À¤Ã¤¿¤³¤È¤Ë¤Ê¤ë¡£ +特に、\fI*nptr\fP が \(aq\\0\(aq 以外で、返された \fI**endptr\fP が +\(aq\\0\(aq ならば、文字列全体が有効だったことになる。 .PP .\"O The .\"O .BR strtoll () @@ -143,10 +143,10 @@ or .\"O .BR strtol () .\"O function but returns a long long integer value. .BR strtoll () -´Ø¿ô¤Ï +関数は .BR strtol () -¤ÈƱÍͤÀ¤¬¡¢long long int ·¿¤ÎÃͤòÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ +と同様だが、long long int 型の値を返す。 +.SH 返り値 .\"O The .\"O .BR strtol () .\"O function returns the result of the conversion, @@ -161,19 +161,19 @@ or .\"O .BR LONG_MAX . .\"O In both cases, \fIerrno\fP is set to .\"O .BR ERANGE . -¥¢¥ó¥À¡¼¥Õ¥í¡¼¤â¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤âµ¯¤­¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ +アンダーフローもオーバーフローも起きなかった場合、 .BR strtol () -´Ø¿ô¤Ï -ÊÑ´¹¤µ¤ì¤¿ÃͤòÊÖ¤¹¡£¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤¿¾ì¹ç¤Ë¤Ï +関数は +変換された値を返す。オーバーフローした場合には .B LONG_MAX -¤¬Ê֤ꡢ -¥¢¥ó¥À¡¼¥Õ¥í¡¼¤·¤¿¾ì¹ç¤Ë¤Ï +が返り、 +アンダーフローした場合には .B LONG_MIN -¤¬Ê֤롣¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¡¢ -¥¢¥ó¥À¡¼¥Õ¥í¡¼¤Î¤¤¤º¤ì¤Î¾ì¹ç¤Ë¤â -Âç°èÊÑ¿ô \fIerrno\fP ¤Ë¤Ï +が返る。オーバーフロー、 +アンダーフローのいずれの場合にも +大域変数 \fIerrno\fP には .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .\"O Precisely the same holds for .\"O .BR strtoll () .\"O (with @@ -185,45 +185,45 @@ or .\"O and .\"O .BR LONG_MAX ). .BR strtoll () -¤âƱÍͤǤ¢¤ë¤¬¡¢ +も同様であるが、 .B LONG_MIN -¤È +と .B LONG_MAX -¤ÎÂå¤ï¤ê¤Ë +の代わりに .B LLONG_MIN -¤È +と .B LLONG_MAX -¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が返される。 +.SH エラー .TP .B EINVAL .\"O (not in C99) .\"O The given .\"O .I base .\"O contains an unsupported value. -(C99 ¤Ë¤Ï¤Ê¤¤) +(C99 にはない) .I base -¤¬Âбþ¤·¤Æ¤¤¤Ê¤¤ÃͤǤ¢¤ë¡£ +が対応していない値である。 .TP .B ERANGE .\"O The resulting value was out of range. -·ë²Ì¤ÎÃͤ¬Èϰϳ°¤Ç¤¢¤ë¡£ +結果の値が範囲外である。 .LP .\"O The implementation may also set \fIerrno\fP to \fBEINVAL\fP in case .\"O no conversion was performed (no digits seen, and 0 returned). -¼ÂÁõ¤Ë¤è¤Ã¤Æ¤Ï¡¢ÊÑ´¹¤¬¹Ô¤ï¤ì¤Ê¤«¤Ã¤¿¾ì¹ç (¿ô»ú¤¬¤Ê¤¯¡¢0 ¤òÊÖ¤·¤¿¾ì¹ç)¡¢ -\fIerrno\fP ¤Ë \fBEINVAL\fP ¤¬ÀßÄꤵ¤ì¤ë¾ì¹ç¤¬¤¢¤ë¡£ -.SH ½àµò +実装によっては、変換が行われなかった場合 (数字がなく、0 を返した場合)、 +\fIerrno\fP に \fBEINVAL\fP が設定される場合がある。 +.SH 準拠 .\"O .BR strtol () .\"O conforms to SVr4, 4.3BSD, C89, C99 and POSIX.1-2001, and .\"O .BR strtoll () .\"O to C99 and POSIX.1-2001. .BR strtol () -¤Ï SVr4, 4.3BSD, C89, C99 ¤È POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +は SVr4, 4.3BSD, C89, C99 と POSIX.1-2001 に準拠している。 .BR strtoll () -¤Ï C99 ¤È POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +は C99 と POSIX.1-2001 に準拠している。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Since .\"O .BR strtol () .\"O can legitimately return 0, @@ -242,30 +242,30 @@ or .\"O .I errno .\"O has a nonzero value after the call. .B strtol () -¤«¤é¤ÏÀ®¸ù¡¢¼ºÇԤɤÁ¤é¤Î¾ì¹ç¤Ç¤â +からは成功、失敗どちらの場合でも 0, .BR LONG_MAX , .B LONG_MIN .RB ( strtoll () -¤Ç¤Ï +では .BR LLONG_MAX , .BR LLONG_MIN ) -¤¬ÊÖ¤ë²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç¡¢ -¥×¥í¥°¥é¥à¤Ï´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë +が返る可能性があるので、 +プログラムは関数を呼び出す前に .I errno -¤ò 0 ¤ËÀßÄꤷ¡¢¸Æ¤Ó½Ð¤·¸å¤Ë +を 0 に設定し、呼び出し後に .I errno -¤¬ 0 °Ê³°¤ÎÃͤ«¤É¤¦¤«¤ò³Îǧ¤·¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤É¤¦¤«¤òȽÃǤ¹¤ë -ɬÍפ¬¤¢¤ë¡£ +が 0 以外の値かどうかを確認しエラーが発生したかどうかを判断する +必要がある。 .\"O In locales other than the "C" locale, other strings may also be accepted. .\"O (For example, the thousands separator of the current locale may be .\"O supported.) -"C" °Ê³°¤Î¥í¥±¡¼¥ë¤Î¾ì¹ç¡¢¤½¤Î¾¤Îʸ»úÎó¤â¼õ¤±ÉÕ¤±¤é¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -(Î㤨¤Ð¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î 1000 Ëè¤Î¶èÀÚ¤êʸ»ú¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£) +"C" 以外のロケールの場合、その他の文字列も受け付けられるかもしれない。 +(例えば、現在のロケールの 1000 毎の区切り文字がサポートされているかもしれない。) .LP .\"O BSD also has -BSD ¤Ë¤Ï¡¢ +BSD には、 .sp .in +4n .nf @@ -274,19 +274,19 @@ BSD .in .fi .\"O with completely analogous definition. -¤È¤¤¤¦´°Á´¤ËƱÍͤÎÄêµÁ¤ò»ý¤Ä´Ø¿ô¤¬¤¢¤ë¡£ +という完全に同様の定義を持つ関数がある。 .\"O Depending on the wordsize of the current architecture, this .\"O may be equivalent to .\"O .BR strtoll () .\"O or to .\"O .BR strtol (). -»ÈÍÑÃæ¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î¥ï¡¼¥ÉĹ¼¡Âè¤Ç¤¢¤ë¤¬¡¢¤³¤Î´Ø¿ô¤Ï +使用中のアーキテクチャのワード長次第であるが、この関数は .BR strtoll () -¤« +か .BR strtol () -¤ÈÅù²Á¤È¤Ê¤ë¤³¤È¤â¤¢¤ë¡£ +と等価となることもある。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The program shown below demonstrates the use of .\"O .BR strtol (). .\"O The first command-line argument specifies a string from which @@ -299,24 +299,24 @@ BSD .\"O a function that performs no error checking and .\"O has a simpler interface than .\"O .BR strtol ().) -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï +以下のプログラムは .BR strtol () -¤Î»ÈÍÑÎã¤Ç¤¢¤ë¡£ -ºÇ½é¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ë¤Ï +の使用例である。 +最初のコマンドライン引き数には .BR strtol () -¤¬¿ô»ú¤È¤·¤Æ²ò¼á¤¹¤ëʸ»úÎó¤ò»ØÄꤹ¤ë¡£ -(¾Êά²Äǽ¤Ê) ÆóÈÖÌܤΰú¤­¿ô¤Ë¤Ï -ÊÑ´¹¤Ë»ÈÍѤµ¤ì¤ë´ð¿ô¤ò»ØÄꤹ¤ë -(¤³¤Î°ú¤­¿ô¤Ï +が数字として解釈する文字列を指定する。 +(省略可能な) 二番目の引き数には +変換に使用される基数を指定する +(この引き数は .BR atoi (3) -¤ò»È¤Ã¤Æ¿ôÃͤËÊÑ´¹¤µ¤ì¤ë¡£ +を使って数値に変換される。 .BR atoi (3) -¤Ï +は .BR strtol () -¤è¤ê¤â´Êñ¤Ê¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò»ý¤Ä´Ø¿ô¤Ç¡¢ -¤½¤ÎÃæ¤Ç¤Ï¥¨¥é¡¼¥Á¥§¥Ã¥¯¤Ï¹Ô¤ï¤ì¤Ê¤¤)¡£ +よりも簡単なインタフェースを持つ関数で、 +その中ではエラーチェックは行われない)。 .\"O Some examples of the results produced by this program are the following: -¤³¤Î¥×¥í¥°¥é¥à¤Î¼Â¹ÔÎã¤ò¤¤¤¯¤Ä¤«°Ê²¼¤Ë¼¨¤¹: +このプログラムの実行例をいくつか以下に示す: .in +4n .nf @@ -336,7 +336,7 @@ strtol: Numerical result out of range .fi .in .\"O .SS Program source -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -386,7 +386,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR atof (3), .BR atoi (3), .BR atol (3), diff --git a/draft/man3/strtoul.3 b/draft/man3/strtoul.3 index f4b3c96a..7549c449 100644 --- a/draft/man3/strtoul.3 +++ b/draft/man3/strtoul.3 @@ -36,13 +36,13 @@ .\" Updated & Modified 2006-07-20, .\" Akihiro MOTOKI , LDP v2.36 .\" -.\" WORD: base ´ð¿ô +.\" WORD: base 基数 .\" .TH STRTOUL 3 2011-09-15 "GNU" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 .\"O strtoul, strtoull, strtouq \- convert a string to an unsigned long integer -strtoul, strtoull, strtouq \- ʸ»úÎó¤ò unsigned long int ¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +strtoul, strtoull, strtouq \- 文字列を unsigned long int に変換する +.SH 書式 .nf .B #include .sp @@ -56,9 +56,9 @@ strtoul, strtoull, strtouq \- ʸ .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -71,7 +71,7 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR strtoul () .\"O function converts the initial part of the string @@ -81,12 +81,12 @@ or .\"O given \fIbase\fP, which must be between 2 and 36 inclusive, or be .\"O the special value 0. .BR strtoul () -´Ø¿ô¤Ï¡¢ \fInptr\fP ¤Îʸ»úÎó¤ÎºÇ½é¤ÎÉôʬ¤ò¡¢ -\fIbase\fP ¤ò´ð¿ô¤È¤·¤Æ +関数は、 \fInptr\fP の文字列の最初の部分を、 +\fIbase\fP を基数として .I "unsigned long int" -¤ËÊÑ´¹¤¹¤ë¡£ -¤³¤Î \fIbase\fP ¤Ï 2 ¤«¤é 36 ¤Þ¤Ç¤ÎÃÍ -¤¢¤ë¤¤¤ÏÆÃÊ̤ʰÕÌ£¤ò»ý¤ÄÃÍ 0 ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +に変換する。 +この \fIbase\fP は 2 から 36 までの値 +あるいは特別な意味を持つ値 0 でなければならない。 .PP .\"O The string may begin with an arbitrary amount of white space (as .\"O determined by @@ -97,15 +97,15 @@ or .\"O "0x" prefix, and the number will be read in base 16; otherwise, a .\"O zero \fIbase\fP is taken as 10 (decimal) unless the next character .\"O is \(aq0\(aq, in which case it is taken as 8 (octal). -ʸ»úÎó¤ÎÀèƬ¤Ë¤Ï¡¢Ç¤°Õ¤Î¿ô¤Î¶õÇò¤¬¤¢¤Ã¤Æ¤â¤è¤¯ (¶õÇò¤Ï +文字列の先頭には、任意の数の空白があってもよく (空白は .BR ( isspace (3) -¤ÇȽÄꤵ¤ì¤ë) ¡¢¤Þ¤¿¿ô»ú¤ÎľÁ°¤Ë¤Ï \(aq+\(aq ¤« \(aq\-\(aq ¤Î -Éä¹æ¤¬¤¢¤Ã¤Æ¤â¤è¤¤¡£ -\fIbase\fP ¤¬ 0 ¤Þ¤¿¤Ï 16 ¤Î¾ì¹ç¤Ë¤Ï¡¢ ʸ»úÎó¤ÎÀèƬ¤Ë "0x" ¤òÃÖ¤¯¤³¤È¤¬ -¤Ç¤­¡¢¤½¤Î¾ì¹ç¤Ë¤Ïʸ»úÎó¤Ï 16¿Ê¿ô¤È¤·¤Æ°·¤ï¤ì¤ë¡£ -¤³¤ì°Ê³°¤Îʸ»úÎó¤Ç \fIbase\fP ¤¬ 0 ¤Î¾ì¹ç¤Ï¡¢ -ʸ»úÎó¤¬ \(aq0\(aq ¤Ç»Ï¤Þ¤ë¤È¤­¤Ï 8¿Ê¿ô¤È¤·¤Æ¡¢ -¤½¤ì°Ê³°¤Î¤È¤­¤Ï 10¿Ê¿ô¤È¤·¤Æ°·¤ï¤ì¤ë¡£ +で判定される) 、また数字の直前には \(aq+\(aq か \(aq\-\(aq の +符号があってもよい。 +\fIbase\fP が 0 または 16 の場合には、 文字列の先頭に "0x" を置くことが +でき、その場合には文字列は 16進数として扱われる。 +これ以外の文字列で \fIbase\fP が 0 の場合は、 +文字列が \(aq0\(aq で始まるときは 8進数として、 +それ以外のときは 10進数として扱われる。 .PP .\"O The remainder of the string is converted to an .\"O .I "unsigned long int" @@ -115,12 +115,12 @@ or .\"O (In bases above 10, the letter \(aqA\(aq in .\"O either upper or lower case represents 10, \(aqB\(aq represents 11, and so .\"O forth, with \(aqZ\(aq representing 35.) -ʸ»úÎó¤Î»Ä¤ê¤ÎÉôʬ¤Ï +文字列の残りの部分は .I "unsigned long int" -¤ËÊÑ´¹¤µ¤ì¤ë¤¬¡¢´ð¿ô¤ËÂФ·¤Æ -Í­¸ú¤Ç¤Ê¤¤¿ô»ú¤¬¸½¤ì¤¿»þÅÀ¤ÇÊÑ´¹¤Ï½ªÎ»¤¹¤ë¡£(11¿Ê¿ô°Ê¾å¤Ç¤Ï \(aqA\(aq ¤Ï -Âçʸ»ú¡¦¾®Ê¸»ú¤Ë´Ø¤ï¤é¤º 10 ¤òɽ¤·¡¢ \(aqB\(aq ¤Ï 11 ¤òɽ¸½¤·, -°Ê²¼Æ±Íͤˡ¢ \(aqZ\(aq ¤Ï 35 ¤òɽ¤¹¡£) +に変換されるが、基数に対して +有効でない数字が現れた時点で変換は終了する。(11進数以上では \(aqA\(aq は +大文字・小文字に関わらず 10 を表し、 \(aqB\(aq は 11 を表現し, +以下同様に、 \(aqZ\(aq は 35 を表す。) .PP .\"O If \fIendptr\fP is not NULL, .\"O .BR strtoul () @@ -133,16 +133,16 @@ or .\"O \fI*endptr\fP (and returns 0). .\"O In particular, if \fI*nptr\fP is not \(aq\\0\(aq but \fI**endptr\fP .\"O is \(aq\\0\(aq on return, the entire string is valid. -\fIendptr\fP ¤¬¥Ì¥ëÃÍ (NULL) ¤Ç¤Ê¤¤¾ì¹ç¡¢ +\fIendptr\fP がヌル値 (NULL) でない場合、 .BR strtoul () -¤ÏºÇ½é¤ËÉÔÀµ¤Êʸ»ú¤¬¸½¤ì¤¿¥¢¥É¥ì¥¹¤ò -\fI*endptr\fP ¤Ë³ÊǼ¤·¤Æ¤¤¤ë¡£ -ʸ»úÎó¤ËÍ­¸ú¤Ê¿ô»ú¤¬¤Ò¤È¤Ä¤â¤Ê¤±¤ì¤Ð¡¢ +は最初に不正な文字が現れたアドレスを +\fI*endptr\fP に格納している。 +文字列に有効な数字がひとつもなければ、 .BR strtoul () -¤Ï \fInptr\fP -¤Î¸µ¤ÎÃͤò \fI*endptr\fP ¤ËÂåÆþ¤¹¤ë(¤½¤·¤Æ 0 ¤òÊÖ¤¹)¡£ -Æäˡ¢ \fI*nptr\fP ¤¬ \(aq\\0\(aq °Ê³°¤Ç¡¢ÊÖ¤µ¤ì¤¿ \fI**endptr\fP ¤¬ -\(aq\\0\(aq ¤Ê¤é¤Ð¡¢Ê¸»úÎóÁ´ÂΤ¬Í­¸ú¤À¤Ã¤¿¤³¤È¤Ë¤Ê¤ë¡£ +は \fInptr\fP +の元の値を \fI*endptr\fP に代入する(そして 0 を返す)。 +特に、 \fI*nptr\fP が \(aq\\0\(aq 以外で、返された \fI**endptr\fP が +\(aq\\0\(aq ならば、文字列全体が有効だったことになる。 .PP .\"O The .\"O .BR strtoull () @@ -152,12 +152,12 @@ or .\"O .I "unsigned long long int" .\"O value. .BR strtoull () -´Ø¿ô¤Ï +関数は .BR strtoul () -´Ø¿ô¤ÈƱÍͤÀ¤¬¡¢ +関数と同様だが、 .I "unsigned long long int" -·¿¤ÎÃͤòÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ +型の値を返す。 +.SH 返り値 .\"O The .\"O .BR strtoul () .\"O function returns either the result of the conversion @@ -171,15 +171,15 @@ or .\"O and sets \fIerrno\fP to .\"O .BR ERANGE . .BR strtoul () -´Ø¿ô¤ÏÊÑ´¹·ë²Ì¤òÊÖ¤¹¡£Ê¸»úÎ󤬥ޥ¤¥Ê¥¹Éä¹æ¤«¤é»Ï¤Þ¤Ã¤Æ¤¤¤¿¾ì -¹ç¤Ï¡¢(Éä¹æȿžÁ°¤ÎÃͤ¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Æ¤¤¤Ê¤±¤ì¤Ð) ÊÑ´¹·ë²Ì¤òÉä¹æȿž¤·¤¿ -Ãͤò unsigned ·¿¤ÇÊÖ¤¹¡£ÊÑ´¹¤Ç¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï +関数は変換結果を返す。文字列がマイナス符号から始まっていた場 +合は、(符号反転前の値がオーバーフローしていなければ) 変換結果を符号反転した +値を unsigned 型で返す。変換でオーバーフローが発生した場合は .B ULONG_MAX -¤òÊÖ¤·¡¢ +を返し、 .I errno -¤Ë +に .B ERANGE -¤òÀßÄꤹ¤ë¡£ +を設定する。 .\"O Precisely the same holds for .\"O .BR strtoull () .\"O (with @@ -187,45 +187,45 @@ or .\"O instead of .\"O .BR ULONG_MAX ). .RB ( ULONG_MAX -¤ò +を .B ULLONG_MAX -¤ÈÆɤßÂؤ¨¤ì¤Ð) +と読み替えれば) .BR strtoull () -¤Ï +は .BR strtoul () -¤ÈÁ´¤¯Æ±¤¸¤Ç¤¢¤ë¡£ -.SH ¥¨¥é¡¼ +と全く同じである。 +.SH エラー .TP .B EINVAL .\"O (not in C99) .\"O The given .\"O .I base .\"O contains an unsupported value. -(C99 ¤Ë¤Ï¤Ê¤¤) -Í¿¤¨¤é¤ì¤¿ +(C99 にはない) +与えられた .I base -¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤ÃͤǤ¢¤ë¡£ +がサポートされていない値である。 .TP .B ERANGE .\"O The resulting value was out of range. -ʸ»úÎ󤬿ôÃͤÎɽ¸½Èϰϳ°¤Ç¤¢¤ë¡£ +文字列が数値の表現範囲外である。 .LP .\"O The implementation may also set \fIerrno\fP to \fBEINVAL\fP in case .\"O no conversion was performed (no digits seen, and 0 returned). -¼ÂÁõ¤Ë¤è¤Ã¤Æ¤Ï¡¢Á´¤¯ÊÑ´¹¤¬¹Ô¤ï¤ì¤Ê¤«¤Ã¤¿¾ì¹ç(Á´¤¯¿ô»ú¤¬¸½¤ì¤º¡¢ -0 ¤¬ÊÖ¤µ¤ì¤ë)¡¢\fIerrno\fP ¤Ë \fBEINVAL\fP ¤¬¥»¥Ã¥È¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +実装によっては、全く変換が行われなかった場合(全く数字が現れず、 +0 が返される)、\fIerrno\fP に \fBEINVAL\fP がセットされるかもしれない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O .BR strtoul () .\"O conforms to SVr4, C89, C99 and POSIX-2001, and .\"O .BR strtoull () .\"O to C99 and POSIX.1-2001. .BR strtoul () -¤Ï SVr4, C89, C99 ¤È POSIX-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +は SVr4, C89, C99 と POSIX-2001 に準拠している。 .BR strtoull () -¤Ï C99 ¤È POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +は C99 と POSIX.1-2001 に準拠している。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Since .\"O .BR strtoul () .\"O can legitimately return 0 or @@ -240,27 +240,27 @@ or .\"O .I errno .\"O has a nonzero value after the call. .B strtoul () -¤«¤é¤ÏÀ®¸ù¡¢¼ºÇԤɤÁ¤é¤Î¾ì¹ç¤Ç¤â 0 ¤ä +からは成功、失敗どちらの場合でも 0 や .B ULONG_MAX .RB ( strtoull () -¤Ç¤Ï +では .BR ULLONG_MAX ) -¤¬ÊÖ¤ë²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç¡¢ -¥×¥í¥°¥é¥à¤Ï´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë +が返る可能性があるので、 +プログラムは関数を呼び出す前に .I errno -¤ò 0 ¤ËÀßÄꤷ¡¢¸Æ¤Ó½Ð¤·¸å¤Ë +を 0 に設定し、呼び出し後に .I errno -¤¬ 0 °Ê³°¤ÎÃͤ«¤É¤¦¤«¤ò³Îǧ¤·¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤É¤¦¤«¤òȽÃǤ¹¤ë -ɬÍפ¬¤¢¤ë¡£ +が 0 以外の値かどうかを確認しエラーが発生したかどうかを判断する +必要がある。 .\"O In locales other than the "C" locale, other strings may be accepted. -"C" °Ê³°¤Î¥í¥±¡¼¥ë¤Î¾ì¹ç¡¢¤½¤Î¾¤Îʸ»úÎó¤â¼õ¤±ÉÕ¤±¤é¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +"C" 以外のロケールの場合、その他の文字列も受け付けられるかもしれない。 .\"O (For example, the thousands separator of the current locale may be .\"O supported.) -(Î㤨¤Ð¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î 1000 Ëè¤Î¶èÀÚ¤êʸ»ú¤ËÂбþ¤·¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£) +(例えば、現在のロケールの 1000 毎の区切り文字に対応しているかもしれない。) .LP .\"O BSD also has -BSD ¤Ë¤Ï¡¢ +BSD には、 .sp .in +4n .nf @@ -269,37 +269,37 @@ BSD .in -4n .fi .\"O with completely analogous definition. -¤È¤¤¤¦´°Á´¤ËƱÍͤÎÄêµÁ¤ò»ý¤Ä´Ø¿ô¤¬¤¢¤ë¡£ +という完全に同様の定義を持つ関数がある。 .\"O Depending on the wordsize of the current architecture, this .\"O may be equivalent to .\"O .BR strtoull () .\"O or to .\"O .BR strtoul (). -»ÈÍÑÃæ¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î¥ï¡¼¥ÉĹ¼¡Âè¤Ç¤¢¤ë¤¬¡¢¤³¤Î´Ø¿ô¤Ï +使用中のアーキテクチャのワード長次第であるが、この関数は .BR strtoull () -¤ä +や .BR stroul () -¤ÈÅù²Á¤Ê¾ì¹ç¤â¤¢¤ê¤¨¤ë¡£ +と等価な場合もありえる。 .\"O Negative values are considered valid input and are .\"O silently converted to the equivalent .\"O .I "unsigned long int" .\"O value. -Éé¤ÎÃͤâÀµÅö¤ÊÆþÎϤȤߤʤµ¤ì¡¢¥¨¥é¡¼¤â¤Ê¤¯¡¢ -Âбþ¤¹¤ë +負の値も正当な入力とみなされ、エラーもなく、 +対応する .I "unsigned long int" -·¿¤ÎÃͤËÊÑ´¹¤µ¤ì¤ë¡£ +型の値に変換される。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O See the example on the .\"O .BR strtol (3) .\"O manual page; .\"O the use of the functions described in this manual page is similar. .BR strtol (3) -¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÎÎã¤ò»²¾È¡£ -¤³¤Î¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤¿´Ø¿ô¤Î»ÈÍÑÊýË¡¤âƱÍͤǤ¢¤ë¡£ +のマニュアルページの例を参照。 +このページで説明した関数の使用方法も同様である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR atof (3), .BR atoi (3), .BR atol (3), diff --git a/draft/man3/strverscmp.3 b/draft/man3/strverscmp.3 index 8ed6c870..a1ebecb7 100644 --- a/draft/man3/strverscmp.3 +++ b/draft/man3/strverscmp.3 @@ -27,21 +27,21 @@ .\" .TH STRVERSCMP 3 2001-12-19 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O strverscmp \- compare two version strings -strverscmp \- 2¤Ä¤Î¥Ð¡¼¥¸¥ç¥óʸ»úÎó¤òÈæ³Ó¤¹¤ë +strverscmp \- 2つのバージョン文字列を比較する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "int strverscmp(const char *" s1 ", const char *" s2 ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Often one has files .\"O .IR jan1 ", " jan2 ", ..., " jan9 ", " jan10 ", ..." .\"O and it feels wrong when @@ -49,13 +49,13 @@ strverscmp \- 2 .\"O orders them .\"O .IR jan1 ", " jan10 ", ..., " jan2 ", ..., " jan9 . .IR jan1 ", " jan2 ", ..., " jan9 ", " jan10 ", ..." -¤È¤¤¤Ã¤¿Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¾õ¶·¤Ï¤è¤¯¤¢¤ë¤¬¡¢ +といった名前のファイルがある状況はよくあるが、 .BR ls (1) -¤ò¼Â¹Ô¤·¤¿¤È¤­¤Ë +を実行したときに .IR jan1 ", " jan10 ", ..., " jan2 ", ..., " jan9 -¤Î½çÈÖ¤Çɽ¼¨¤µ¤ì¤ë¤Î¤Ë¤Ï°ãÏ´¶¤¬¤¢¤ë¡£ +の順番で表示されるのには違和感がある。 .\"O .\" classical solution: "rename jan jan0 jan?" -.\" ¤³¤ì¤Þ¤Ç¤Î²ò·èÊýË¡: "rename jan jan0 jan?" +.\" これまでの解決方法: "rename jan jan0 jan?" .\"O In order to rectify this, GNU introduced the .\"O .I \-v .\"O option to @@ -64,16 +64,16 @@ strverscmp \- 2 .\"O .BR versionsort (3), .\"O which again uses .\"O .BR strverscmp (). -¤³¤ì¤ò½¤Àµ¤¹¤ë¤¿¤á¤Ë¡¢GNU ¤Ï +これを修正するために、GNU は .BR ls (1) -¤Ë +に .I \-v -¥ª¥×¥·¥ç¥ó¤òƳÆþ¤·¤¿¡£ -¤³¤Îµ¡Ç½¤Ï +オプションを導入した。 +この機能は .BR versionsort (3) -¤ò»È¤Ã¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢¤³¤ÎÃæ¤Ç +を使って実装されているが、この中で .BR strverscmp () -¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ +が使用されている。 .\"O Thus, the task of .\"O .BR strverscmp () @@ -85,72 +85,72 @@ strverscmp \- 2 .\"O .BR LC_COLLATE , .\"O so is meant mostly for situations .\"O where the strings are expected to be in ASCII. -¤³¤Î¤è¤¦¤Ë +このように .BR strverscmp () -¤ÎÌòÌܤÏ2¤Ä¤Îʸ»úÎó¤òÈæ³Ó¤·¤Æ¡ÖÀµ¤·¤¤¡×½ç½ø¤òõ¤¹¤³¤È¤Ç¤¢¤ë¡£ -¤³¤ì¤ËÂФ·¤Æ +の役目は2つの文字列を比較して「正しい」順序を探すことである。 +これに対して .BR strcmp (3) -¤Ï¼­½ñ½ç¤ÇÈæ³Ó¤·¤¿·ë²Ì¤òÊÖ¤¹¤À¤±¤Ç¤¢¤ë¡£ -´Ø¿ô +は辞書順で比較した結果を返すだけである。 +関数 .BR strverscmp () -¤Ï¥í¥±¡¼¥ë¤Î¥«¥Æ¥´¥ê¤Ç¤¢¤ë +はロケールのカテゴリである .B LC_COLLATE -¤ò»ÈÍѤ·¤Ê¤¤¡£ -¤³¤Î¤³¤È¤«¤é¡¢¤³¤Î´Ø¿ô¤¬¼ç¤Ë¥¢¥¹¥­¡¼Ê¸»ú¤«¤éÀ®¤ëʸ»úÎó¤ò -ÁÛÄꤷ¤Æ¤¤¤ë¤³¤È¤¬Ê¬¤«¤ë¡£ +を使用しない。 +このことから、この関数が主にアスキー文字から成る文字列を +想定していることが分かる。 .\"O What this function does is the following. -¤³¤Î´Ø¿ô¤ÎÆ°ºî¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +この関数の動作は以下の通りである。 .\"O If both strings are equal, return 0. .\"O Otherwise find the position .\"O between two bytes with the property that before it both strings are equal, .\"O while directly after it there is a difference. -ξÊý¤Îʸ»úÎó¤¬Åù¤·¤¤¾ì¹ç¡¢0 ¤òÊÖ¤¹¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¤½¤ÎľÁ°¤Þ¤Ç¤ÏξÊý¤Îʸ»úÎó¤¬Åù¤·¤¯¡¢ -¤½¤Îľ¸å¤Î¥Ð¥¤¥È¤Çξ¼Ô¤Ë°ã¤¤¤¬¤¢¤ë¤è¤¦¤Ê¡¢¥Ð¥¤¥È¤Î¶­³¦¤òõ¤¹¡£ +両方の文字列が等しい場合、0 を返す。 +それ以外の場合、その直前までは両方の文字列が等しく、 +その直後のバイトで両者に違いがあるような、バイトの境界を探す。 .\"O Find the largest consecutive digit strings containing (or starting at, .\"O or ending at) this position. .\"O If one or both of these is empty, -¸«¤Ä¤«¤Ã¤¿¥Ð¥¤¥È¶­³¦¤ò´Þ¤à¿ô»úÎó(¿ô»ú¤À¤±¤Îʸ»úÎó)¤ÎºÇĹ°ìÃ׸¡º÷¤ò¹Ô¤¦¡£ -(¿ô»úÎó¤Ï¶­³¦¤«¤é»Ï¤Þ¤Ã¤Æ¤¤¤Æ¤â¡¢¶­³¦¤Ç½ª¤ï¤Ã¤Æ¤¤¤Æ¤â¤è¤¤)¡£ +見つかったバイト境界を含む数字列(数字だけの文字列)の最長一致検索を行う。 +(数字列は境界から始まっていても、境界で終わっていてもよい)。 .\"O then return what .\"O .BR strcmp (3) .\"O would have returned (numerical ordering of byte values). -2¤Ä¤Îʸ»úÎ󤫤éÆÀ¤é¤ì¤¿¿ô»úÎó¤Î°ìÊý¤Þ¤¿¤ÏξÊý¤¬¶õ¤Ç¤¢¤ì¤Ð¡¢ +2つの文字列から得られた数字列の一方または両方が空であれば、 .BR strcmp (3) -¤¬ÊÖ¤·¤¿·ë²Ì¤ò´Ø¿ô¤ÎÊÖ¤êÃͤȤ·¤ÆÊÖ¤¹¡£ -¤¹¤Ê¤ï¤Á¡¢¥Ð¥¤¥ÈÃͤòÈæ³Ó¤·¤¿·ë²Ì¤òÊÖ¤¹¡£ +が返した結果を関数の返り値として返す。 +すなわち、バイト値を比較した結果を返す。 .\"O Otherwise, compare both digit strings numerically, where digit strings with .\"O one or more leading zeros are interpreted as if they have a decimal point .\"O in front (so that in particular digit strings with more leading zeros .\"O come before digit strings with fewer leading zeros). -¤½¤ì°Ê³°¤Î(¿ô»úÎó¤¬Î¾Êý¤È¤â¶õ¤Ç¤Ê¤¤)¾ì¹ç¡¢Î¾Êý¤Î¿ô»úÎó¤ò¿ô»ú½ç¤ÇÈæ³Ó¤¹¤ë¡£ -¤³¤Î¤È¤­¡¢1¤Ä°Ê¾å¤Î 0 ¤¬ÀèƬ¤Ë¤¢¤ë¿ô»úÎó¤Ï¡¢Á°¤Ë¾®¿ôÅÀ¤¬¤Ä¤¤¤Æ¤¤¤ë¤â¤Î¤È -²ò¼á¤µ¤ì¤ë¡£(ÀèƬ¤Ë 0 ¤¬Â¿¤¯¤¢¤ë¿ô»úÎó¤Û¤ÉÁ°¤ËÍè¤ë¤³¤È¤Ë¤Ê¤ë) +それ以外の(数字列が両方とも空でない)場合、両方の数字列を数字順で比較する。 +このとき、1つ以上の 0 が先頭にある数字列は、前に小数点がついているものと +解釈される。(先頭に 0 が多くある数字列ほど前に来ることになる) .\"O Thus, the ordering is .\"O .IR 000 ", " 00 ", " 01 ", " 010 ", " 09 ", " 0 ", " 1 ", " 9 ", " 10 . -¤³¤Î·ë²Ì¡¢½ç½ø¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ë: +この結果、順序は次のようになる: .IR 000 ", " 00 ", " 01 ", " 010 ", " 09 ", " 0 ", " 1 ", " 9 ", " 10 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR strverscmp () .\"O function returns an integer .\"O less than, equal to, or greater than zero if \fIs1\fP .\"O is found, respectively, to be earlier than, equal to, .\"O or later than \fIs2\fP. -´Ø¿ô +関数 .BR strverscmp () -¤Ï¡¢¥¼¥í¤è¤ê¤â -1)¾®¤µ¤¤¡¢2)Åù¤·¤¤¡¢3)Â礭¤¤¤Î¤¤¤º¤ì¤«¤ÎÀ°¿ô¤òÊÖ¤¹¡£ -¤½¤ì¤¾¤ì¤Ï¡¢\fIs1\fP ¤¬ \fIs2\fP ¤è¤ê¤â¡¢ -1)¾®¤µ¤¤¡¢2)Åù¤·¤¤¡¢3)Â礭¤¤ ¤³¤È¤ò¼¨¤¹¡£ +は、ゼロよりも +1)小さい、2)等しい、3)大きいのいずれかの整数を返す。 +それぞれは、\fIs1\fP が \fIs2\fP よりも、 +1)小さい、2)等しい、3)大きい ことを示す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This function is a GNU extension. -¤³¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ +この関数は GNU による拡張である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR rename (1), .BR strcasecmp (3), .BR strcmp (3), diff --git a/draft/man3/strxfrm.3 b/draft/man3/strxfrm.3 index 745cc5f6..8e4011c3 100644 --- a/draft/man3/strxfrm.3 +++ b/draft/man3/strxfrm.3 @@ -33,9 +33,9 @@ .TH STRXFRM 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O strxfrm \- string transformation -.SH ̾Á° -strxfrm \- ʸ»úÎó¤ÎÊÑ´¹ -.SH ½ñ¼° +.SH 名前 +strxfrm \- 文字列の変換 +.SH 書式 .nf .B #include .sp @@ -58,24 +58,24 @@ strxfrm \- ʸ .\"O The transformation is based on the program's current .\"O locale for category \fBLC_COLLATE\fP. (See .\"O .BR setlocale (3)). -.SH ÀâÌÀ +.SH 説明 .BR strxfrm () -´Ø¿ô¤Ïʸ»úÎó \fIsrc\fP ¤ËÂФ·¤Æ¡¢¼¡¤Î¾ò·ï¤òËþ¤¿¤¹¤è¤¦ -¤ÊÊÑ´¹¤ò¤¹¤ë: ¡Ö¤¢¤ëÆó¤Ä¤Îʸ»úÎó¤ËÂФ·¤Æ¡¢¤½¤ì¤¾¤ì¤ò +関数は文字列 \fIsrc\fP に対して、次の条件を満たすよう +な変換をする: 「ある二つの文字列に対して、それぞれを .BR strxfrm () -¤ÇÊÑ´¹¤·¤Æ¤«¤é +で変換してから .BR strcmp (3) -¤·¤¿·ë²Ì¤È¡¢ +した結果と、 .BR strxfrm () -¤Ë¤è¤ëÊÑ´¹ -¤ò¹Ô¤ï¤º¤Ë +による変換 +を行わずに .BR strcoll (3) -¤·¤¿·ë²Ì¤ÈƱ¤¸¡× -ÊÑ´¹¤·¤¿Ê¸»úÎó¤ÎÀèƬ¤«¤é \fIn\fP ʸ»úʬ¤¬ \fIdest\fP ¤ËÂåÆþ¤µ¤ì¤ë¡£ -ÊÑ´¹¤Ï¡¢¥«¥Æ¥´¥ê \fBLC_COLLATE\fP ¤ËÂФ¹¤ë¡¢¥×¥í¥°¥é¥à¤Î¸½ºß¤Î¥í¥±¡¼¥ë -¤Ë´ð¤Å¤¤¤Æ¹Ô¤ï¤ì¤ë +した結果と同じ」 +変換した文字列の先頭から \fIn\fP 文字分が \fIdest\fP に代入される。 +変換は、カテゴリ \fBLC_COLLATE\fP に対する、プログラムの現在のロケール +に基づいて行われる .RB ( setlocale (3) -¤ò»²¾È¤Î¤³¤È)¡£ +を参照のこと)。 .\"O .SH "RETURN VALUE" .\"O The .\"O .BR strxfrm () @@ -84,13 +84,13 @@ strxfrm \- ʸ .\"O terminating null byte (\(aq\\0\(aq). .\"O If the value returned is \fIn\fP or more, the .\"O contents of \fIdest\fP are indeterminate. -.SH ÊÖ¤êÃÍ +.SH 返り値 .BR strxfrm () -´Ø¿ô¤Ï¡¢ÊÑ´¹¤µ¤ì¤¿Ê¸»úÎó¤ò \fIdest\fP ¤ËÂåÆþ¤¹¤ë¤È¤­¤Ë -ɬÍפʥХ¤¥È¿ô¤«¤é¡¢½ªÃ¼¤Î NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Îʬ¤ò -°ú¤¤¤¿¤â¤Î¤òÊÖ¤¹¡£¤â¤·ÊÖ¤êÃͤ¬ \fIn\fP °Ê¾å¤Î¾ì¹ç¡¢ -\fIdest\fP ¤ÎÆâÍƤÏÉÔÄê¤È¤Ê¤ë¡£ -.SH ½àµò +関数は、変換された文字列を \fIdest\fP に代入するときに +必要なバイト数から、終端の NULL バイト (\(aq\\0\(aq) の分を +引いたものを返す。もし返り値が \fIn\fP 以上の場合、 +\fIdest\fP の内容は不定となる。 +.SH 準拠 SVr4, 4.3BSD, C89, C99. .\"O .SH NOTES .\"O In the \fI"POSIX"\fP or \fI"C"\fP locales @@ -98,14 +98,14 @@ SVr4, 4.3BSD, C89, C99. .\"O is equivalent to .\"O copying the string with .\"O .BR strncpy (3). -.SH Ãí°Õ -\fI"POSIX"\fP ¤Þ¤¿¤Ï \fI"C"\fP ¥í¥±¡¼¥ë¤Ç¤Ï¡¢´Ø¿ô +.SH 注意 +\fI"POSIX"\fP または \fI"C"\fP ロケールでは、関数 .BR strxfrm () -¤Ï¡¢ -´Ø¿ô +は、 +関数 .BR strncpy (3) -¤ò»È¤Ã¤Æʸ»úÎó¤ò¥³¥Ô¡¼¤¹¤ë¤Î¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を使って文字列をコピーするのと同じである。 +.SH 関連項目 .BR bcmp (3), .BR memcmp (3), .BR setlocale (3), diff --git a/draft/man3/swab.3 b/draft/man3/swab.3 index 35326fd4..0f5e2e7b 100644 --- a/draft/man3/swab.3 +++ b/draft/man3/swab.3 @@ -35,20 +35,20 @@ .\" .TH SWAB 3 2001-12-15 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O swab \- swap adjacent bytes -swab \- ÎÙÀܤ¹¤ë¥Ð¥¤¥È¤ò¸ò´¹¤¹¤ë +swab \- 隣接するバイトを交換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _XOPEN_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "void swab(const void *" from ", void *" to ", ssize_t " n ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR swab () .\"O function copies \fIn\fP bytes from the array pointed @@ -57,29 +57,29 @@ swab \- .\"O This function is used to exchange data .\"O between machines that have different low/high byte ordering. .BR swab () -´Ø¿ô¤Ï¡¢\fIfrom\fP ¤Ç»Ø¤µ¤ì¤¿ÇÛÎ󤫤é \fIn\fP ¥Ð¥¤¥È¤ò -\fIto\fP ¤Ç»Ø¤µ¤ì¤¿ÇÛÎó¤Ë¡¢ÎÙÀܤ·¤¿¶ö¿ô/´ñ¿ô¥Ð¥¤¥È¤ò¸ò´¹¤·¤Ê¤¬¤é¥³¥Ô¡¼¤¹¤ë¡£ -¤³¤Î´Ø¿ô¤Ï°Û¤Ê¤ë¥Ð¥¤¥È¥ª¡¼¥À¡¼¤ò»ý¤Ä¥Þ¥·¥ó´Ö¤Ç¤Î¥Ç¡¼¥¿¸ò´¹¤Ë -»ÈÍѤµ¤ì¤ë¡£ +関数は、\fIfrom\fP で指された配列から \fIn\fP バイトを +\fIto\fP で指された配列に、隣接した偶数/奇数バイトを交換しながらコピーする。 +この関数は異なるバイトオーダーを持つマシン間でのデータ交換に +使用される。 .LP .\"O This function does nothing when \fIn\fP is negative. .\"O When \fIn\fP is positive and odd, it handles \fIn\-1\fP bytes .\"O as above, and does something unspecified with the last byte. .\"O (In other words, \fIn\fP should be even.) -\fIn\fP ¤¬Éé¤Î¿ô¤Î¾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï²¿¤â¤·¤Ê¤¤¡£ -\fIn\fP ¤¬Àµ¤Ç¤«¤Ä´ñ¿ô¤Î¾ì¹ç¡¢\fIn\-1\fP ¥Ð¥¤¥È¤Ï¾åµ­¤ÎÄ̤갷¤¤¡¢ -ºÇ¸å¤Î¥Ð¥¤¥È¤Ë¤Ä¤¤¤Æ¤Ï̤µ¬Äê¤ÎÆ°ºî¤ò¤¹¤ë -(¸À¤¤´¹¤¨¤ì¤Ð¡¢\fIn\fP ¤Ï¶ö¿ô¤Ë¤¹¤ë¤Ù¤­¤Ç¤¢¤ë)¡£ +\fIn\fP が負の数の場合、この関数は何もしない。 +\fIn\fP が正でかつ奇数の場合、\fIn\-1\fP バイトは上記の通り扱い、 +最後のバイトについては未規定の動作をする +(言い換えれば、\fIn\fP は偶数にするべきである)。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR swab () .\"O function returns no value. .BR swab () -´Ø¿ô¤Ï¡¢ÃͤòÊÖ¤µ¤Ê¤¤¡£ +関数は、値を返さない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bstring (3) diff --git a/draft/man3/sysconf.3 b/draft/man3/sysconf.3 index 736a2b46..349effe7 100644 --- a/draft/man3/sysconf.3 +++ b/draft/man3/sysconf.3 @@ -32,35 +32,35 @@ .TH SYSCONF 3 2007-12-12 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O sysconf \- Get configuration information at runtime -.SH ̾Á° -sysconf \- Æ°ºîÃæ¤ËÀßÄê¾ðÊó¤ò¼èÆÀ¤¹¤ë +.SH 名前 +sysconf \- 動作中に設定情報を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "long sysconf(int " "name" ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O POSIX allows an application to test at compile or run time .\"O whether certain options are supported, or what the value is .\"O of certain configurable constants or limits. -POSIX ¤Ç¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¥³¥ó¥Ñ¥¤¥ë»þ¤ä¼Â¹Ô»þ¤Ë¡¢ -ÆÃÄê¤Î¥ª¥×¥·¥ç¥ó¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤«¤ä¡¢ -ÀßÄê²Äǽ¤ÊÆÃÄê¤ÎÄê¿ô¤äÀ©¸Â¤¬¤É¤ó¤ÊÃͤ«¤ò¥Æ¥¹¥È¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +POSIX では、アプリケーションがコンパイル時や実行時に、 +特定のオプションがサポートされているかや、 +設定可能な特定の定数や制限がどんな値かをテストすることができる。 .LP .\"O At compile time this is done by including .\"O .I .\"O and/or .\"O .I .\"O and testing the value of certain macros. -¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¹Ô¤¦¤Ë¤Ï¡¢ +コンパイル時に行うには、 .I -¤È +と .I -¤ÎξÊý¤â¤·¤¯¤Ï°ìÊý¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¡¢ -ÆÃÄê¤Î¥Þ¥¯¥í¤ÎÃͤò³Îǧ¤¹¤ë¡£ +の両方もしくは一方をインクルードし、 +特定のマクロの値を確認する。 .LP .\"O At run time, one can ask for numerical values using the present function .\"O .BR sysconf (). @@ -71,26 +71,26 @@ POSIX .\"O .BR pathconf (3). .\"O One can ask for string values using .\"O .BR confstr (3). -¼Â¹Ô»þ¤Ë¤Ï¡¢¤³¤³¤ÇÀâÌÀ¤¹¤ë´Ø¿ô +実行時には、ここで説明する関数 .BR sysconf () -¤ò»È¤Ã¤Æ¿ôÃͤòÌ䤤¹ç¤ï¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë´Ø¤¹¤ë¿ôÃͤϡ¢ +を使って数値を問い合わせることができる。 +ファイルが存在するファイルシステムに関する数値は、 .BR fpathconf (3) -¤È +と .BR pathconf (3) -¤ò»È¤Ã¤Æ³Îǧ¤Ç¤­¤ë¡£ -ʸ»úÎó¤ÎÃÍ¤Ï +を使って確認できる。 +文字列の値は .BR confstr (3) -¤ò»È¤Ã¤Æ³Îǧ¤Ç¤­¤ë¡£ +を使って確認できる。 .LP .\"O The values obtained from these functions are system configuration constants. .\"O They do not change during the lifetime of a process. .\"O .\" except that sysconf(_SC_OPEN_MAX) may change answer after a call .\"O .\" to setrlimit( ) which changes the RLIMIT_NOFILE soft limit -¤³¤ì¤é¤Î´Ø¿ô¤Ç¼èÆÀ¤µ¤ì¤ëÃͤÏÀßÄê²Äǽ¤Ê¥·¥¹¥Æ¥àÄê¿ô¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Ï¥×¥í¥»¥¹¤ÎÀ¸Â¸´ü´Ö¤Î´Ö¤ÏÊѲ½¤·¤Ê¤¤¡£ -.\" ⤷ RLIMIT_NOFILE ¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤òÊѹ¹¤¹¤ë setrlimit() ¤¬¸Æ¤Ó½Ð¤·¤¿ -.\" ¸å¤Ç¤Ï¡¢ sysconf(_SC_OPEN_MAX) ¤¬ÊÖ¤¹ÃͤÏÊѲ½¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +これらの関数で取得される値は設定可能なシステム定数である。 +これらはプロセスの生存期間の間は変化しない。 +.\" 但し RLIMIT_NOFILE ソフト・リミットを変更する setrlimit() が呼び出した +.\" 後では、 sysconf(_SC_OPEN_MAX) が返す値は変化するかもしれない。 .LP .\"O For options, typically, there is a constant .\"O .B _POSIX_FOO @@ -106,24 +106,24 @@ POSIX .\"O of the POSIX revision describing the option. .\"O Glibc uses the value 1 .\"O to indicate support as long as the POSIX revision has not been published yet. -¥ª¥×¥·¥ç¥ó¤ò³Îǧ¤Ç¤­¤ë¤è¤¦¤Ë¡¢¤¿¤¤¤Æ¤¤¤Ï +オプションを確認できるように、たいていは .I -¤ÇÄê¿ô +で定数 .B _POSIX_FOO -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¤­¤Ï¡¢¼Â¹Ô»þ¤ËÌ䤤¹ç¤ï¤»¤ò¹Ô¤¦É¬Íפ¬¤¢¤ë¡£ -¤½¤ÎÃͤ¬ \-1 ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ï¡¢¤½¤Î¥ª¥×¥·¥ç¥ó¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -0 ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ï¡¢´ØÏ¢¤¹¤ë´Ø¿ô¤ä¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¤¬¡¢ -¤É¤ÎÄøÅÙ¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤«¤Ï¼Â¹Ô»þ¤Ë³Îǧ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -\-1 ¤Ç¤â 0 ¤Ç¤â¤Ê¤¤ÃͤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ï¡¢¤½¤Î¥ª¥×¥·¥ç¥ó¤¬¥µ¥Ý¡¼¥È -¤µ¤ì¤Æ¤¤¤ë¡£Ä̾ï¤Ï¡¢¤½¤Î¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æµ­ºÜ¤·¤¿ POSIX ¤Î²þÄûǯ·î -¤ò¼¨¤¹ÃͤˤʤäƤ¤¤ë (Î㤨¤Ð 200112L)¡£ -glibc ¤Ç¤Ï 1 ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢¤½¤Î¥ª¥×¥·¥ç¥ó¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -POSIX ¤Î²þÄûÈǤ¬¤Þ¤Àȯ¹Ô¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò¼¨¤¹¡£ +が定義されている。 +定義されていないときは、実行時に問い合わせを行う必要がある。 +その値が \-1 に定義されているときは、そのオプションはサポートされていない。 +0 に定義されているときは、関連する関数やヘッダファイルが存在するが、 +どの程度サポートされているかは実行時に確認しなければならない。 +\-1 でも 0 でもない値に定義されているときは、そのオプションがサポート +されている。通常は、そのオプションについて記載した POSIX の改訂年月 +を示す値になっている (例えば 200112L)。 +glibc では 1 が設定されていると、そのオプションはサポートされているが、 +POSIX の改訂版がまだ発行されていないことを示す。 .\"O .\" and 999 to indicate support for options no longer present in the latest .\"O .\" standard. (?) -.\" 999 ¤Ï¡¢¤½¤Î¥ª¥×¥·¥ç¥ó¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -.\" ºÇ¿·¤Îɸ½à¤Ë¤Ï¤â¤Ï¤ä¸ºß¤·¤Ê¤¤¤³¤È¤ò¼¨¤¹¡£(?) +.\" 999 は、そのオプションはサポートされているが、 +.\" 最新の標準にはもはや存在しないことを示す。(?) .\"O The .\"O .BR sysconf () .\"O argument will be @@ -131,12 +131,12 @@ POSIX .\"O For a list of options, see .\"O .BR posixoptions (7). .BR sysconf () -¤Î°ú¤­¿ô¤Ë¤Ï +の引き数には .B _SC_FOO -¤ò»ØÄꤹ¤ë¡£ -¥ª¥×¥·¥ç¥ó¤Î¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¤Ï +を指定する。 +オプションのリストについては .BR posixoptions (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .LP .\"O For variables or limits, typically, there is a constant .\"O .BR _FOO , @@ -146,15 +146,15 @@ POSIX .\"O .BR _POSIX_FOO , .\"O maybe defined in .\"O .IR . -ÊÑ¿ô¤äÀ©¸Â¤ò³Îǧ¤Ç¤­¤ë¤è¤¦¤Ë¡¢¤¿¤¤¤Æ¤¤¤Ï¡¢ +変数や制限を確認できるように、たいていは、 .I -¤ÇÄê¿ô +で定数 .B _FOO -¤¬¡¢ +が、 .I -¤Ç +で .B _POSIX_FOO -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +が定義されている。 .\"O The constant will not be defined if the limit is unspecified. .\"O If the constant is defined, it gives a guaranteed value, and .\"O a greater value might actually be supported. @@ -162,32 +162,32 @@ POSIX .\"O between systems, a call to .\"O .BR sysconf () .\"O can be made. -À©¸Â¤¬µ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤ÏÄê¿ô¤ÏÄêµÁ¤µ¤ì¤Ê¤¤¡£ -Äê¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ë¤Ï¡¢¤½¤ÎÄê¿ô¤ÏÊݾڤǤ­¤ëÃͤǤ¢¤ê¡¢ -¼ÂºÝ¤Ë¤Ï¤â¤Ã¤ÈÂ礭¤ÊÃͤ¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤³¤È¤â¤¢¤ë¡£ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¥·¥¹¥Æ¥àËè¤ËÊѲ½¤¹¤ëÃͤòÍøÍѤ·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ +制限が規定されていない場合は定数は定義されない。 +定数が定義されているときには、その定数は保証できる値であり、 +実際にはもっと大きな値がサポートされていることもある。 +アプリケーションがシステム毎に変化する値を利用したい場合には、 .BR sysconf () -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¼Â¸½¤Ç¤­¤ë¡£ +を呼び出すことで実現できる。 .\"O The .\"O .BR sysconf () .\"O argument will be .\"O .BR _SC_FOO . .BR sysconf () -¤Î°ú¤­¿ô¤Ë¤Ï +の引き数には .B _SC_FOO -¤ò»ØÄꤹ¤ë¡£ +を指定する。 .\"O .SS "POSIX.1 Variables" -.SS "POSIX.1 ÊÑ¿ô" +.SS "POSIX.1 変数" .\"O We give the name of the variable, the name of the .\"O .BR sysconf () .\"O argument used to inquire about its value, .\"O and a short description. -ÊÑ¿ô̾¡¢¤½¤ÎÃͤò¼èÆÀ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë +変数名、その値を取得するのに使われる .BR sysconf () -¤Î¥Ñ¥é¥á¡¼¥¿Ì¾¡¢´Êñ¤ÊÀâÌÀ¤ò°Ê²¼¤Ë¼¨¤¹¡£ +のパラメータ名、簡単な説明を以下に示す。 .LP .\"O First, the POSIX.1 compatible values. -¤Þ¤º POSIX.1 ¸ß´¹¤ÎÊÑ¿ô¤ò¼¨¤¹¡£ +まず POSIX.1 互換の変数を示す。 .\"O .\" [for the moment: only the things that are unconditionally present] .\"O .\" .TP .\"O .\" .BR AIO_LISTIO_MAX " - " _SC_AIO_LISTIO_MAX @@ -214,18 +214,18 @@ POSIX .\"O .B _POSIX_ARG_MAX .\"O (4096). .BR exec (3) -´Ø¿ô·²¤Î°ú¤­¿ô¤ÎºÇÂçĹ¡£ +関数群の引き数の最大長。 .B _POSIX_ARG_MAX -(4096) ̤Ëþ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +(4096) 未満であってはならない。 .TP .BR CHILD_MAX " - " _SC_CHILD_MAX .\"O The max number of simultaneous processes per user ID. .\"O Must not be less than .\"O .B _POSIX_CHILD_MAX .\"O (25). -¥æ¡¼¥¶ID ¤¢¤¿¤ê¤ÎƱ»þ¤Ë¸ºß¤Ç¤­¤ë¥×¥í¥»¥¹¤ÎºÇÂç¿ô¡£ +ユーザID あたりの同時に存在できるプロセスの最大数。 .B _POSIX_CHILD_MAX -(25) ̤Ëþ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +(25) 未満であってはならない。 .TP .BR HOST_NAME_MAX " - " _SC_HOST_NAME_MAX .\"O Max length of a hostname, not including the terminating null byte, @@ -235,18 +235,18 @@ POSIX .\"O .B _POSIX_HOST_NAME_MAX .\"O (255). .BR gethostname (2) -¤ÇÊÖ¤µ¤ì¤ë¥Û¥¹¥È̾¤ÎºÇÂçĹ¡£ËöÈø¤Î NULL ¥Ð¥¤¥È¤ÏŤµ¤Ë´Þ¤Þ¤ì¤Ê¤¤¡£ +で返されるホスト名の最大長。末尾の NULL バイトは長さに含まれない。 .B _POSIX_HOST_NAME_MAX -(255) ̤Ëþ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +(255) 未満であってはならない。 .TP .BR LOGIN_NAME_MAX " - " _SC_LOGIN_NAME_MAX .\"O Maximum length of a login name, including the terminating null byte. .\"O Must not be less than .\"O .B _POSIX_LOGIN_NAME_MAX .\"O (9). -¥í¥°¥¤¥ó̾¤ÎŤµ¤ÎºÇÂçÃÍ¡£ËöÈø¤Î NULL ¥Ð¥¤¥È¤âŤµ¤Ë´Þ¤Þ¤ì¤ë¡£ +ログイン名の長さの最大値。末尾の NULL バイトも長さに含まれる。 .B _POSIX_LOGIN_NAME_MAX -(9) ̤Ëþ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +(9) 未満であってはならない。 .TP .BR "" "clock ticks - " _SC_CLK_TCK .\"O The number of clock ticks per second. @@ -256,30 +256,30 @@ POSIX .\"O (Note: the macro .\"O .B CLOCKS_PER_SEC .\"O does not give information: it must equal 1000000.) -1É䢤¿¤ê¤Î¥¯¥í¥Ã¥¯¡¦¥Æ¥£¥Ã¥¯¿ô¡£ -Âбþ¤¹¤ëÊÑ¿ô¤ÏÇѻߤµ¤ì¤¿¡£¤³¤ÎÊÑ¿ô¤ÏÅöÁ³¤Ê¤¬¤é +1秒あたりのクロック・ティック数。 +対応する変数は廃止された。この変数は当然ながら .B CLK_TCK -¤È¸Æ¤Ð¤ì¤Æ¤¤¤¿¡£ -(Ãí°Õ: ¥Þ¥¯¥í +と呼ばれていた。 +(注意: マクロ .B CLOCKS_PER_SEC -¤«¤é¤Ï¾ðÊó¤ÏÆÀ¤é¤ì¤Ê¤¤: ¤³¤ÎÃÍ¤Ï 1000000 ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤) +からは情報は得られない: この値は 1000000 でなければならない) .TP .BR OPEN_MAX " - " _SC_OPEN_MAX .\"O The maximum number of files that a process can have open at any time. .\"O Must not be less than .\"O .B _POSIX_OPEN_MAX .\"O (20). -°ì¤Ä¤Î¥×¥í¥»¥¹¤¬Æ±»þ¤Ë¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¿ô¤Î¾å¸Â¡£ +一つのプロセスが同時にオープンできるファイル数の上限。 .B _POSIX_OPEN_MAX -(20) ̤Ëþ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +(20) 未満であってはならない。 .TP .BR PAGESIZE " - " _SC_PAGESIZE .\"O Size of a page in bytes. .\"O Must not be less than 1. .\"O (Some systems use PAGE_SIZE instead.) -¥Ð¥¤¥Èñ°Ì¤Ç¤Î¥Ú¡¼¥¸¥µ¥¤¥º¡£ -1 ¤è¤ê¾®¤µ¤¯¤Ê¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -(¤³¤ÎÂå¤ï¤ê¤Ë PAGE_SIZE ¤ò»È¤¦¥·¥¹¥Æ¥à¤â¤¢¤ë) +バイト単位でのページサイズ。 +1 より小さくなってはならない。 +(この代わりに PAGE_SIZE を使うシステムもある) .TP .BR RE_DUP_MAX " - " _SC_RE_DUP_MAX .\"O The number of repeated occurrences of a BRE permitted by @@ -290,12 +290,12 @@ POSIX .\"O .B _POSIX2_RE_DUP_MAX .\"O (255). .BR regexec (3) -¤È +と .BR regcomp (3) -¤ÇµöÍƤµ¤ì¤Æ¤¤¤ë BRE (Basic Regular Expression; ´ðËÜÀµµ¬É½¸½) -¤Î·«¤êÊÖ¤·½Ð¸½²ó¿ô¤ÎºÇÂçÃÍ¡£ +で許容されている BRE (Basic Regular Expression; 基本正規表現) +の繰り返し出現回数の最大値。 .B _POSIX2_RE_DUP_MAX -(255) ̤Ëþ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +(255) 未満であってはならない。 .TP .BR STREAM_MAX " - " _SC_STREAM_MAX .\"O The maximum number of streams that a process can have open at any @@ -305,12 +305,12 @@ POSIX .\"O Must not be less than .\"O .B _POSIX_STREAM_MAX .\"O (8). -°ì¤Ä¤Î¥×¥í¥»¥¹¤¬Æ±»þ¤Ë¥ª¡¼¥×¥ó¤Ç¤­¤ë¥¹¥È¥ê¡¼¥à¿ô¤Î¾å¸Â¡£ -ÄêµÁ¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ë¤Ï¡¢¤³¤ÎÃͤÏɸ½à C ¥Þ¥¯¥í¤Î +一つのプロセスが同時にオープンできるストリーム数の上限。 +定義されていた場合には、この値は標準 C マクロの .B FOPEN_MAX -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .B _POSIX_STREAM_MAX -(8) ̤Ëþ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +(8) 未満であってはならない。 .TP .B SYMLOOP_MAX .\"O The maximum number of symbolic links seen in a pathname before resolution @@ -319,12 +319,12 @@ POSIX .\"O Must not be less than .\"O .B _POSIX_SYMLOOP_MAX .\"O (8). -¥Ñ¥¹Ì¾¤Î²ò·è»þ¤Ë¸½¤ì¤Æ¤â¤è¤¤¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤ÎºÇÂç¿ô¡£ -¤³¤Î¿ô¤òĶ¤¨¤ë¤È¡¢¥Ñ¥¹Ì¾²ò·è»þ¤Ë +パス名の解決時に現れてもよいシンボリック・リンクの最大数。 +この数を超えると、パス名解決時に .B ELOOP -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .B _POSIX_SYMLOOP_MAX -(8) ̤Ëþ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +(8) 未満であってはならない。 .TP .BR TTY_NAME_MAX " - " _SC_TTY_NAME_MAX .\"O The maximum length of terminal device name, @@ -332,18 +332,18 @@ POSIX .\"O Must not be less than .\"O .B _POSIX_TTY_NAME_MAX .\"O (9). -üËö¥Ç¥Ð¥¤¥¹Ì¾¤ÎºÇÂçĹ¡£Ä¹¤µ¤Ë¤ÏËöÈø¤Î NULL ¥Ð¥¤¥È¤â´Þ¤Þ¤ì¤ë¡£ +端末デバイス名の最大長。長さには末尾の NULL バイトも含まれる。 .B _POSIX_TTY_NAME_MAX -(9) ̤Ëþ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +(9) 未満であってはならない。 .TP .BR TZNAME_MAX " - " _SC_TZNAME_MAX .\"O The maximum number of bytes in a timezone name. .\"O Must not be less than .\"O .B _POSIX_TZNAME_MAX .\"O (6). -¥¿¥¤¥à¥¾¡¼¥ó̾¤È¤·¤Æ»È¤¨¤ë¥Ð¥¤¥È¿ô¤ÎºÇÂçÃÍ¡£ +タイムゾーン名として使えるバイト数の最大値。 .B _POSIX_TZNAME_MAX -(6) ̤Ëþ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +(6) 未満であってはならない。 .TP .BR _POSIX_VERSION " - " _SC_VERSION .\"O indicates the year and month the POSIX.1 standard was approved in the @@ -352,16 +352,16 @@ POSIX .\"O the value .\"O .B 199009L .\"O indicates the Sept. 1990 revision. -POSIX.1 ɸ½à¤¬¾µÇ§¤µ¤ì¤¿Ç¯·î¡£ +POSIX.1 標準が承認された年月。 .B YYYYMML -¤È¤¤¤¦½ñ¼°¤Ç¤¢¤ë¡£ +という書式である。 .B 199009L -¤È¤¤¤¦Ãͤϡ¢1990ǯ 9·î ²þÄû¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ +という値は、1990å¹´ 9月 改訂であることを示す。 .\"O .SS "POSIX.2 Variables" -.SS "POSIX.2 ÊÑ¿ô" +.SS "POSIX.2 変数" .\"O Next, the POSIX.2 values, giving limits for utilities. -¼¡¤Ë¡¢POSIX.2 ¤ÎÃͤò¼¨¤¹¡£ -¤³¤ì¤é¤Ï³Æ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ËÂФ¹¤ëÀ©¸Â¤ò»ØÄꤹ¤ë¡£ +次に、POSIX.2 の値を示す。 +これらは各ユーティリティに対する制限を指定する。 .TP .BR BC_BASE_MAX " - " _SC_BC_BASE_MAX .\"O indicates the maximum @@ -370,15 +370,15 @@ POSIX.1 ɸ .\"O .BR bc (1) .\"O utility. .BR bc (1) -¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ÇµöÍƤµ¤ì¤ë +ユーティリティで許容される .I obase -¤ÎºÇÂçÃÍ¡£ +の最大値。 .TP .BR BC_DIM_MAX " - " _SC_BC_DIM_MAX .\"O indicates the maximum value of elements permitted in an array by .\"O .BR bc (1). .BR bc (1) -¤ÇµöÍƤµ¤ì¤ë°ì¤Ä¤ÎÇÛÎóÃæ¤ÎÍ×ÁÇ¿ô¤ÎºÇÂçÃÍ¡£ +で許容される一つの配列中の要素数の最大値。 .TP .BR BC_SCALE_MAX " - " _SC_BC_SCALE_MAX .\"O indicates the maximum @@ -386,82 +386,82 @@ POSIX.1 ɸ .\"O value allowed by .\"O .BR bc (1). .BR bc (1) -¤Çµö¤µ¤ì¤ë +で許される .I scale -¤ÎºÇÂçÃÍ¡£ +の最大値。 .TP .BR BC_STRING_MAX " - " _SC_BC_STRING_MAX .\"O indicates the maximum length of a string accepted by .\"O .BR bc (1). .BR bc (1) -¤ÇµöÍƤµ¤ì¤ëʸ»úÎó¤ÎºÇÂçĹ¡£ +で許容される文字列の最大長。 .TP .BR COLL_WEIGHTS_MAX " - " _SC_COLL_WEIGHTS_MAX .\"O indicates the maximum numbers of weights that can be assigned to an .\"O entry of the .\"O .B LC_COLLATE order .\"O keyword in the locale definition file, -¥í¥±¡¼¥ëÄêµÁ¥Õ¥¡¥¤¥ëÃæ¤Î +ロケール定義ファイル中の .B LC_COLLATE order -¥­¡¼¥ï¡¼¥É¤Î¥¨¥ó¥È¥ê¤Ë³ä¤êÅö¤Æ²Äǽ¤Ê½Å¤ß¤ÎºÇÂçÃÍ¡£ +キーワードのエントリに割り当て可能な重みの最大値。 .TP .BR EXPR_NEST_MAX " - " _SC_EXPR_NEST_MAX .\"O is the maximum number of expressions which can be nested within .\"O parentheses by .\"O .BR expr (1). .BR expr (1) -¤Ë¤ª¤¤¤Æ¡¢³ç¸Ì¤ÇÆþ¤ì»Ò¤Ë¤Ç¤­¤ë¼°¤ÎºÇÂç¿ô¡£ +において、括弧で入れ子にできる式の最大数。 .TP .BR LINE_MAX " - " _SC_LINE_MAX .\"O The maximum length of a utility's input line, either from .\"O standard input or from a file. .\"O This includes space for a trailing .\"O newline. -¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ÎÆþÎϹԤκÇÂçĹ¡£É¸½àÆþÎϤÀ¤±¤Ç¤Ê¤¯¡¢¥Õ¥¡¥¤¥ë¤«¤é¤ÎÆþÎϤˤâ -ŬÍѤµ¤ì¤ë¡£Ä¹¤µ¤Ë¤Ï¹Ô¤ÎËöÈø¤Î²þ¹Ôʸ»ú¤â´Þ¤Þ¤ì¤ë¡£ +ユーティリティの入力行の最大長。標準入力だけでなく、ファイルからの入力にも +適用される。長さには行の末尾の改行文字も含まれる。 .TP .BR RE_DUP_MAX " - " _SC_RE_DUP_MAX .\"O The maximum number of repeated occurrences of a regular expression when .\"O the interval notation .\"O .B \e{m,n\e} .\"O is used. -Àµµ¬É½¸½¤Ç¶è´Öɽµ­ (interval notation) +正規表現で区間表記 (interval notation) .B \e{m,n\e} -¤¬»ÈÍѤµ¤ì¤¿¤È¤­¤ËµöÍƤµ¤ì¤ë·«¤êÊÖ¤·½Ð¸½²ó¿ô¤ÎºÇÂçÃÍ¡£ +が使用されたときに許容される繰り返し出現回数の最大値。 .TP .BR POSIX2_VERSION " - " _SC_2_VERSION .\"O indicates the version of the POSIX.2 standard in the format of .\"O YYYYMML. -POSIX.2 ɸ½à¤Î¥Ð¡¼¥¸¥ç¥ó¡£YYYYMML ¤È¤¤¤¦½ñ¼°¤Çɽµ­¤µ¤ì¤ë¡£ +POSIX.2 標準のバージョン。YYYYMML という書式で表記される。 .TP .BR POSIX2_C_DEV " - " _SC_2_C_DEV .\"O indicates whether the POSIX.2 C language development facilities are .\"O supported. -POSIX.2 ¤Î C ¸À¸ì³«È¯µ¡Ç½¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤¹¡£ +POSIX.2 の C 言語開発機能がサポートされているかを示す。 .TP .BR POSIX2_FORT_DEV " - " _SC_2_FORT_DEV .\"O indicates whether the POSIX.2 FORTRAN development utilities are .\"O supported. -POSIX.2 ¤Î FORTRAN ³«È¯¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤¹¡£ +POSIX.2 の FORTRAN 開発ユーティリティがサポートされているかを示す。 .TP .BR POSIX2_FORT_RUN " - " _SC_2_FORT_RUN .\"O indicates whether the POSIX.2 FORTRAN runtime utilities are supported. -POSIX.2 ¤Î FORTRAN ¥é¥ó¥¿¥¤¥à¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤¹¡£ +POSIX.2 の FORTRAN ランタイムユーティリティがサポートされているかを示す。 .TP .BR _POSIX2_LOCALEDEF " - " _SC_2_LOCALEDEF .\"O indicates whether the POSIX.2 creation of locates via .\"O .BR localedef (1) .\"O is supported. .BR localedef (1) -¤ò»È¤Ã¤¿¡¢POSIX.2 ¤Î¥í¥±¡¼¥ë¤ÎºîÀ®¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤«¤ò¼¨¤¹¡£ +を使った、POSIX.2 のロケールの作成をサポートしているかを示す。 .TP .BR POSIX2_SW_DEV " - " _SC_2_SW_DEV .\"O indicates whether the POSIX.2 software development utilities option is .\"O supported. -POSIX.2 ¥½¥Õ¥È¥¦¥§¥¢³«È¯¥æ¡¼¥Æ¥£¥ê¥Æ¥£¥ª¥×¥·¥ç¥ó¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤¹¡£ +POSIX.2 ソフトウェア開発ユーティリティオプションがサポートされているかを示す。 .PP .\"O These values also exist, but may not be standard. -°Ê²¼¤ÎÃͤ⸺ߤ¹¤ë¤¬¡¢É¸½à¤Ë¤Ï´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¡£ +以下の値も存在するが、標準には含まれていない。 .TP .BR "" " - " _SC_PHYS_PAGES .\"O The number of pages of physical memory. @@ -469,24 +469,24 @@ POSIX.2 .\"O for the product of this value and the value of .\"O .B _SC_PAGE_SIZE .\"O to overflow. -ʪÍý¥á¥â¥ê¤Î¥Ú¡¼¥¸¿ô¡£ -¤³¤ÎÃÍ¤È +物理メモリのページ数。 +この値と .B _SC_PAGE_SIZE -ÃͤÎÀѤϷå°î¤ì¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¤Î¤ÇÃí°Õ¤¹¤ë¤³¤È¡£ +値の積は桁溢れする可能性があるので注意すること。 .TP .BR "" " - " _SC_AVPHYS_PAGES .\"O The number of currently available pages of physical memory. -¸½ºßÍøÍѲÄǽ¤ÊʪÍý¥á¥â¥ê¤Î¥Ú¡¼¥¸¿ô¡£ +現在利用可能な物理メモリのページ数。 .TP .BR "" " - " _SC_NPROCESSORS_CONF .\"O The number of processors configured. -ÀßÄꤵ¤ì¤¿¥×¥í¥»¥Ã¥µ¿ô¡£ +設定されたプロセッサ数。 .TP .BR "" " - " _SC_NPROCESSORS_ONLN .\"O The number of processors currently online (available). -¸½ºß¥ª¥ó¥é¥¤¥ó¤Î (ÍøÍѲÄǽ¤Ê) ¥×¥í¥»¥Ã¥µ¿ô¡£ +現在オンラインの (利用可能な) プロセッサ数。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O If .\"O .I name .\"O is invalid, \-1 is returned, and @@ -494,45 +494,45 @@ POSIX.2 .\"O is set to .\"O .BR EINVAL . .I name -¤¬ÉÔÀµ¤Ê¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +が不正な場合、\-1 が返され、 .I errno -¤Ë +に .B EINVAL -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .\"O Otherwise, the value returned is the value of the system resource and .\"O .I errno .\"O is not changed. .\"O In the case of options, a positive value is returned if a queried option .\"O is available, and \-1 if it is not. .\"O In the case of limits, \-1 means that there is no definite limit. -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¥·¥¹¥Æ¥à¥ê¥½¡¼¥¹¤ÎÃͤ¬ÊÖ¤êÃͤȤ·¤ÆÊÖ¤µ¤ì¡¢ +それ以外の場合、システムリソースの値が返り値として返され、 .I errno -¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£Ì䤤¹ç¤ï¤»¤¬¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Ç¤¢¤ì¤Ð¡¢ -¤½¤Î¥ª¥×¥·¥ç¥ó¤¬ÍøÍѤǤ­¤ë¤È¤­¤ÏÀµ¤ÎÃͤ¬ÊÖ¤µ¤ì¡¢ -ÍøÍѤǤ­¤Ê¤¤¤È¤­¤Ï \-1 ¤¬ÊÖ¤µ¤ì¤ë¡£Ì䤤¹ç¤ï¤»¤¬ -À©¸Â¤Ë¤Ä¤¤¤Æ¾ì¹ç¤Ï¡¢À©¸Â¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¤­¤Ë \-1 ¤¬ÊÖ¤µ¤ì¤ë¡£ +は変更されない。問い合わせがオプションについてであれば、 +そのオプションが利用できるときは正の値が返され、 +利用できないときは \-1 が返される。問い合わせが +制限について場合は、制限が設定されていないときに \-1 が返される。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH "BUGS" -.SH ¥Ð¥° +.SH バグ .\"O It is difficult to use .\"O .B ARG_MAX .\"O because it is not specified how much of the argument space for .\"O .BR exec (3) .\"O is consumed by the user's environment variables. .B ARG_MAX -¤ò»È¤¦¤Î¤ÏÆñ¤·¤¤¡¢¤Ê¤¼¤Ê¤é¡¢ +を使うのは難しい、なぜなら、 .BR exec (3) -¤Î°ú¤­¿ôÎΰè (argument space) ¤Î¤¦¤Á¤É¤ì¤¯¤é¤¤¤¬ -¥æ¡¼¥¶¤Î´Ä¶­ÊÑ¿ô¤Ë¤è¤Ã¤Æ»È¤ï¤ì¤ë¤«¤Ïʬ¤«¤é¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +の引き数領域 (argument space) のうちどれくらいが +ユーザの環境変数によって使われるかは分からないからである。 .PP .\"O Some returned values may be huge; they are not suitable for allocating .\"O memory. -¤¤¤¯¤Ä¤«¤ÎÊÖ¤êÃͤϤȤƤâÂ礭¤¯¤Ê¤ë¤À¤í¤¦¡£¤³¤ì¤é¤ò»È¤Ã¤Æ -¥á¥â¥ê¤Î³ä¤êÅö¤Æ¤ò¹Ô¤¦¤Î¤ÏŬÅö¤Ç¤Ï¤Ê¤¤¡£ +いくつかの返り値はとても大きくなるだろう。これらを使って +メモリの割り当てを行うのは適当ではない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bc (1), .BR expr (1), .BR getconf (1), diff --git a/draft/man3/syslog.3 b/draft/man3/syslog.3 index 9b510032..b43a5290 100644 --- a/draft/man3/syslog.3 +++ b/draft/man3/syslog.3 @@ -45,10 +45,10 @@ .TH SYSLOG 3 2008-11-12 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O closelog, openlog, syslog, vsyslog \- send messages to the system logger -.SH ̾Á° -closelog, openlog, syslog, vsyslog \- ¥·¥¹¥Æ¥à¥í¥¬¡¼¤Ë¥á¥Ã¥»¡¼¥¸¤òÁ÷¤ë +.SH 名前 +closelog, openlog, syslog, vsyslog \- システムロガーにメッセージを送る .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "void openlog(const char *" ident ", int " option ", int " facility ); @@ -64,41 +64,41 @@ closelog, openlog, syslog, vsyslog \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR vsyslog (): _BSD_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR closelog () .\"O closes the descriptor being used to write to the system logger. .\"O The use of .\"O .BR closelog () .\"O is optional. .BR closelog () -¤Ï¥·¥¹¥Æ¥à¤Î¥í¥°µ­Ï¿ÍÑ¥×¥í¥°¥é¥à(¥·¥¹¥Æ¥à¥í¥¬¡¼ +はシステムのログ記録用プログラム(システムロガー .BR syslogd (8)) -¥Ø¤ÎÀܳ¤ò½ªÎ»¤¹¤ë¡£ +ヘの接続を終了する。 .BR closelog () -¤Ïɬ¿Ü¤Ç¤Ï¤Ê¤¤¡£ +は必須ではない。 .sp .\"O .BR openlog () .\"O opens a connection to the system logger for a program. .BR openlog () -¤Ï¥í¥°¤ò½ÐÎϤ·¤è¤¦¤È¤·¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤«¤é¥í¥°µ­Ï¿ÍÑ¥×¥í¥°¥é¥à¤Ø¤Î -Àܳ¤ò³«»Ï¤¹¤ë¡£ +はログを出力しようとしているプログラムからログ記録用プログラムへの +接続を開始する。 .\"O The string pointed .\"O to by .\"O .I ident .\"O is prepended to every message, and is typically set to the program name. .I ident -¤Ç»ØÄꤷ¤¿Ê¸»úÎó(Ä̾ï¤Ï +で指定した文字列(通常は .BR openlog () -¤·¤¿¥×¥í¥°¥é¥à¤Î̾Á°)¤Ï¥í¥°½ÐÎϤΰìʸ°ìʸ¤ËÄɲ䵤졢¤É¤Î¥×¥í¥°¥é¥à -¤¬½ÐÎϤ·¤¿¥í¥°¤«¤ò¼±Ê̤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ +したプログラムの名前)はログ出力の一文一文に追加され、どのプログラム +が出力したログかを識別するために使われる。 .\"O The .\"O .I option .\"O argument specifies flags which control the operation of @@ -106,21 +106,21 @@ _BSD_SOURCE .\"O and subsequent calls to .\"O .BR syslog (). .I option -°ú¤­¿ô¤Ï¡¢ +引き数は、 .BR openlog () -¤ÎÆ°ºî¤È¤½¤Î¸å¤Î +の動作とその後の .BR syslog () -¤Î¸Æ¤Ó½Ð¤·¤òÀ©¸æ¤¹¤ë¥Õ¥é¥°¤ò»ØÄꤹ¤ë¡£ +の呼び出しを制御するフラグを指定する。 .\"O The .\"O .I facility .\"O argument establishes a default to be used if .\"O none is specified in subsequent calls to .\"O .BR syslog (). .I facility -°ú¤­¿ô¤Ï¡¢¸å¤Ç +引き数は、後で .BR syslog () -¤ò¸Æ¤Ó½Ð¤¹ºÝ¤Ë facility ¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë»ÈÍѤµ¤ì¤ë -¥Ç¥Õ¥©¥ë¥ÈÃͤò·èÄꤹ¤ë¡£ +を呼び出す際に facility が指定されなかった場合に使用される +デフォルト値を決定する。 .\"O Values for .\"O .I option .\"O and @@ -134,25 +134,25 @@ _BSD_SOURCE .\"O .I ident .\"O will default to NULL. .I option -¤È +と .I facility -¤Ë¤Ä¤¤¤Æ¤Ï¸å½Ò¤¹¤ë¡£ +については後述する。 .BR openlog () -¤Ïɬ¿Ü¤Ç¤Ï¤Ê¤¯¡¢É¬Íפ˱þ¤¸¤Æ +は必須ではなく、必要に応じて .BR syslog () -¤«¤é¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ +から呼び出される。 .BR syslog () -¤¬¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¡¢ +が呼び出した場合、 .I ident -¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï NULL ¤Ë¤Ê¤ë¡£ +のデフォルト値は NULL になる。 .sp .\"O .BR syslog () .\"O generates a log message, which will be distributed by .\"O .BR syslogd (8). .BR syslog () -¤Ï¥í¥°¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¡¢ +はログメッセージを出力し、 .BR syslogd (8) -¤¬¤½¤Î¥á¥Ã¥»¡¼¥¸¤òµ­Ï¿¤¹¤ë¡£ +がそのメッセージを記録する。 .\"O The .\"O .I priority .\"O argument is formed by ORing the @@ -161,15 +161,15 @@ _BSD_SOURCE .\"O .I level .\"O values (explained below). .I priority -°ú¤­¿ô¤Ï +引き数は .I facility -¤È +と .I level -¤È¤ÎÁȹ礻¤Ç»ØÄꤹ¤ë¡£ +との組合せで指定する。 .I facility -¤È +と .I level -¤Î¼è¤ê¤¦¤ëÃͤϸå½Ò¤¹¤ë¡£ +の取りうる値は後述する。 .\"O The remaining arguments .\"O are a .\"O .IR format , @@ -183,20 +183,20 @@ _BSD_SOURCE .\"O the error message string .\"O .IR strerror ( errno ). .\"O A trailing newline may be added if needed. -»Ä¤ê¤Î +残りの .I format -°ú¤­¿ô¤Ï +引き数は .BR printf (3) -¤È»÷¤¿¥¹¥¿¥¤¥ë¤Î½ñ¼°¤È¤½¤Î½ñ¼°¤ËÍ¿¤¨¤ëÃͤǤ¢¤ë¡£ +と似たスタイルの書式とその書式に与える値である。 .I format -Ãæ¤Î2ʸ»ú +中の2文字 .B %m -¤Ï¤½¤Î»þÅÀ¤Ç¤Î +はその時点での .I errno -¤Ë´ØÏ¢¤¹¤ë¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸Ê¸»úÎó +に関連するエラーメッセージ文字列 .RI ( strerror ) -¤Ë¤è¤Ã¤ÆÃÖ¤­´¹¤¨¤é¤ì¤ë¡£ -ɬÍפʾì¹ç¤ÏËöÈø¤Ë²þ¹Ô¤¬²Ã¤¨¤é¤ì¤ë¡£ +によって置き換えられる。 +必要な場合は末尾に改行が加えられる。 .\"O The function .\"O .BR vsyslog () .\"O performs the same task as @@ -206,12 +206,12 @@ _BSD_SOURCE .\"O .BR stdarg (3) .\"O variable argument list macros. .BR vsyslog () -´Ø¿ô¤Ï +関数は .BR syslog () -¤ÈƱ¤¸µ¡Ç½¤ò»ý¤Ä¤¬¡¢²ÄÊÑ°ú¤­¿ô¥ê¥¹¥È¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ëÅÀ¤¬°Û¤Ê¤ë¡£ -»ØÄꤵ¤ì¤¿°ú¤­¿ô¤Ï¡¢ +と同じ機能を持つが、可変引き数リストを指定することができる点が異なる。 +指定された引き数は、 .BR stdarg (3) -²ÄÊÑ°ú¤­¿ô¥ê¥¹¥È¥Þ¥¯¥í¤òÍѤ¤¤Æ¼èÆÀ¤µ¤ì¤ë¡£ +可変引き数リストマクロを用いて取得される。 .\"O The subsections below list the parameters used to set the values of .\"O .IR option , " facility" ", and " priority . @@ -221,39 +221,39 @@ _BSD_SOURCE .\"O argument to .\"O .BR openlog () .\"O is an OR of any of these: -°Ê²¼¤Î¥µ¥Ö¥»¥¯¥·¥ç¥ó¤Ç¤Ï¡¢ +以下のサブセクションでは、 .I option -¤È +と .I facility -¤È +と .I priority -¤ÎÃͤòÀßÄꤹ¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¥Ñ¥é¥á¡¼¥¿¤òÀâÌÀ¤¹¤ë¡£ +の値を設定するのに使用されるパラメータを説明する。 .SS option -²¼µ­¤ÎÃͤò OR ¤·¤¿¤â¤Î¤¬ +下記の値を OR したものが .BR openlog () -¤Î +の .I option -°ú¤­¿ô¤Ë¤Ê¤ë: +引き数になる: .TP 15 .B LOG_CONS .\"O Write directly to system console if there is an error while sending to .\"O system logger. -¥¨¥é¡¼¤¬¤¢¤ì¤Ð¡¢¥·¥¹¥Æ¥à¥í¥¬¡¼¤ËÁ÷¤ë°ìÊý¤Ç¥·¥¹¥Æ¥à¥³¥ó¥½¡¼¥ë¤Ë¤âľÀܽñ¤¯¡£ +エラーがあれば、システムロガーに送る一方でシステムコンソールにも直接書く。 .TP .B LOG_NDELAY .\"O Open the connection immediately (normally, the connection is opened when .\"O the first message is logged). -¥í¥°µ­Ï¿ÍÑ¥×¥í¥°¥é¥à¤È¤ÎÀܳ¤ò¨ºÂ¤Ë³«»Ï¤¹¤ë -(Ä̾ï¤Ï¡¢ºÇ½é¤Î¥á¥Ã¥»¡¼¥¸¤¬µ­Ï¿¤µ¤ì¤ë»þ¤ËÀܳ¤ò³«¤¯)¡£ +ログ記録用プログラムとの接続を即座に開始する +(通常は、最初のメッセージが記録される時に接続を開く)。 .TP .B LOG_NOWAIT .\"O Don't wait for child processes that may have been created while logging .\"O the message. .\"O (The GNU C library does not create a child process, so this .\"O option has no effect on Linux.) -¥á¥Ã¥»¡¼¥¸¤òµ­Ï¿¤¹¤ëºÝ¤ËÀ¸À®¤µ¤ì¤ë»Ò¥×¥í¥»¥¹¤Î½ªÎ»¤òÂÔ¤¿¤Ê¤¤¡£ -(GNU C ¥é¥¤¥Ö¥é¥ê¤Ï»Ò¥×¥í¥»¥¹¤òÀ¸À®¤·¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï Linux ¤Ç¤Ï̵¸ú¤Ç¤¢¤ë¡£) +メッセージを記録する際に生成される子プロセスの終了を待たない。 +(GNU C ライブラリは子プロセスを生成しない。 +したがって、このオプションは Linux では無効である。) .TP .B LOG_ODELAY .\"O The converse of @@ -263,19 +263,19 @@ _BSD_SOURCE .\"O is called. .\"O (This is the default, and need not be specified.) .B LOG_NDELAY -¤ÎÈ¿ÂС£ +の反対。 .BR syslog () -¤¬¸Æ¤Ð¤ì¤ë¤Þ¤Ç¡¢Àܳ¤Î³«»Ï¤ò¹Ô¤ï¤Ê¤¤¡£ -(¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ê¡¢Æä˻ØÄꤹ¤ëɬÍפϤʤ¤¡£) +が呼ばれるまで、接続の開始を行わない。 +(このオプションはデフォルトであり、特に指定する必要はない。) .TP .B LOG_PERROR .\"O (Not in POSIX.1-2001.) .\"O Print to stderr as well. -stderr ¤Ë¤â½ÐÎϤ¹¤ë¡£(POSIX.1-2001 ¤Ç¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤) +stderr にも出力する。(POSIX.1-2001 では定義されていない) .TP .B LOG_PID .\"O Include PID with each message. -¸Ä¡¹¤Î¥á¥Ã¥»¡¼¥¸¤Ë PID ¤ò´Þ¤á¤ë¡£ +個々のメッセージに PID を含める。 .\"O .SS facility .SS facility .\"O The @@ -284,125 +284,125 @@ stderr .\"O This lets the configuration file specify that messages from different .\"O facilities will be handled differently. .I facility -°ú¤­¿ô¤Ï¥á¥Ã¥»¡¼¥¸¤Ëµ­Ï¿¤µ¤ì¤ë¥×¥í¥°¥é¥à¤Î¥¿¥¤¥×¤ò»ØÄꤹ¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ -¤³¤ì¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¥¿¥¤¥×¤Î¥×¥í¥°¥é¥à¤«¤é¤Î¥á¥Ã¥»¡¼¥¸¤Ï°Û¤Ê¤ë°·¤¤¤ò -¤¹¤ë¤è¤¦¤ËÀßÄê¥Õ¥¡¥¤¥ë( +引き数はメッセージに記録されるプログラムのタイプを指定するために使われる。 +これによって異なるタイプのプログラムからのメッセージは異なる扱いを +するように設定ファイル( .BR syslog.conf (5)) -¤ËÄêµÁ¤Ç¤­¤ë¡£ +に定義できる。 .TP 15 .B LOG_AUTH .\"O security/authorization messages (DEPRECATED Use .\"O .B LOG_AUTHPRIV .\"O instead) -¥»¥­¥å¥ê¥Æ¥£/ǧ¾Ú ¥á¥Ã¥»¡¼¥¸ -(Èó¿ä¾©¡£Âå¤ï¤ê¤Ë +セキュリティ/認証 メッセージ +(非推奨。代わりに .B LOG_AUTHPRIV -¤ò»ÈÍѤ¹¤ë¤³¤È) +を使用すること) .TP .B LOG_AUTHPRIV .\"O security/authorization messages (private) -¥»¥­¥å¥ê¥Æ¥£/ǧ¾Ú ¥á¥Ã¥»¡¼¥¸ (¥×¥é¥¤¥Ù¡¼¥È) +セキュリティ/認証 メッセージ (プライベート) .TP .B LOG_CRON .\"O clock daemon .\"O .RB ( cron " and " at ) -¥¯¥í¥Ã¥¯¥Ç¡¼¥â¥ó +クロックデーモン .RB ( cron -¤È +と .RB at ) .TP .B LOG_DAEMON .\"O system daemons without separate facility value -ÆÃÄê¤Î facility Ãͤò»ý¤¿¤Ê¤¤¥·¥¹¥Æ¥à¥Ç¡¼¥â¥ó +特定の facility 値を持たないシステムデーモン .TP .B LOG_FTP .\"O ftp daemon -ftp ¥Ç¡¼¥â¥ó +ftp デーモン .TP .B LOG_KERN .\"O kernel messages (these can't be generated from user processes) -¥«¡¼¥Í¥ë¥á¥Ã¥»¡¼¥¸ (¥æ¡¼¥¶¥×¥í¥»¥¹¤«¤éÀ¸À®¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤) +カーネルメッセージ (ユーザプロセスから生成することはできない) .\" LOG_KERN has the value 0; if used as a facility, zero translates to: .\" "use the default facility". .TP .\"O .BR LOG_LOCAL0 " through " LOG_LOCAL7 .\"O reserved for local use -.BR LOG_LOCAL0 " ¤«¤é " LOG_LOCAL7 -¥í¡¼¥«¥ë¤Ê»ÈÍѤΤ¿¤á¤Ë¥ê¥¶¡¼¥Ö¤µ¤ì¤Æ¤¤¤ë +.BR LOG_LOCAL0 " から " LOG_LOCAL7 +ローカルな使用のためにリザーブされている .TP .B LOG_LPR .\"O line printer subsystem -¥é¥¤¥ó¥×¥ê¥ó¥¿¡¦¥µ¥Ö¥·¥¹¥Æ¥à +ラインプリンタ・サブシステム .TP .B LOG_MAIL .\"O mail subsystem -¥á¡¼¥ë¡¦¥µ¥Ö¥·¥¹¥Æ¥à +メール・サブシステム .TP .B LOG_NEWS .\"O USENET news subsystem -USENET ¥Ë¥å¡¼¥¹¡¦¥µ¥Ö¥·¥¹¥Æ¥à +USENET ニュース・サブシステム .TP .B LOG_SYSLOG .\"O messages generated internally by .\"O .BR syslogd (8) .BR syslogd (8) -¤Ë¤è¤Ã¤ÆÆâÉôŪ¤Ëȯ¹Ô¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸ +によって内部的に発行されるメッセージ .TP .\"O .BR LOG_USER " (default)" -.BR LOG_USER " (¥Ç¥Õ¥©¥ë¥È)" +.BR LOG_USER " (デフォルト)" .\"O generic user-level messages -°ìÈÌŪ¤Ê¥æ¡¼¥¶¥ì¥Ù¥ë¥á¥Ã¥»¡¼¥¸ +一般的なユーザレベルメッセージ .TP .B LOG_UUCP .\"O UUCP subsystem -UUCP¥µ¥Ö¥·¥¹¥Æ¥à +UUCPサブシステム .SS level .\"O This determines the importance of the message. .\"O The levels are, in order of decreasing importance: -¤³¤ì¤Ï¥á¥Ã¥»¡¼¥¸¤ÎÍ¥ÀèÅÙ¤ò»ØÄꤹ¤ë¡£ -Í¥ÀèÅ٤ι⤤¤â¤Î¤«¤éÄ㤤¤â¤Î¤Î½ç¤Ç²¼µ­¤¹¤ë¡£ +これはメッセージの優先度を指定する。 +優先度の高いものから低いものの順で下記する。 .TP 15 .B LOG_EMERG .\"O system is unusable -¥·¥¹¥Æ¥à¤¬»ÈÍÑÉÔ²Ä +システムが使用不可 .TP .B LOG_ALERT .\"O action must be taken immediately -ľ¤Á¤Ë¹ÔÆ°¤òµ¯¤³¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ +直ちに行動を起こさなければならない .TP .B LOG_CRIT .\"O critical conditions -´í¸±¤Ê¾õÂÖ +危険な状態 .TP .B LOG_ERR .\"O error conditions -¥¨¥é¡¼¤Î¾õÂÖ +エラーの状態 .TP .B LOG_WARNING .\"O warning conditions -¥ï¡¼¥Ë¥ó¥°¤Î¾õÂÖ +ワーニングの状態 .TP .B LOG_NOTICE .\"O normal, but significant, condition -Ä̾ï¤À¤¬½ÅÍפʾõÂÖ +通常だが重要な状態 .TP .B LOG_INFO .\"O informational message -¥¤¥ó¥Õ¥©¥á¡¼¥·¥ç¥ó¥á¥Ã¥»¡¼¥¸ +インフォメーションメッセージ .TP .B LOG_DEBUG .\"O debug-level message -¥Ç¥Ð¥Ã¥°¥ì¥Ù¥ë¤Î¥á¥Ã¥»¡¼¥¸ +デバッグレベルのメッセージ .LP .\"O The function .\"O .BR setlogmask (3) .\"O can be used to restrict logging to specified levels only. .BR setlogmask (3) -´Ø¿ô¤ò»ÈÍѤ·¤Æ¡¢ -»ØÄꤵ¤ì¤¿¥ì¥Ù¥ë¤Î¥á¥Ã¥»¡¼¥¸¤À¤±¤òµ­Ï¿¤¹¤ë¤è¤¦¤Ë -À©¸Â¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +関数を使用して、 +指定されたレベルのメッセージだけを記録するように +制限することができる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The functions .\"O .BR openlog (), .\"O .BR closelog (), @@ -414,23 +414,23 @@ UUCP .BR openlog (), .BR closelog (), .BR syslog () -¤Ï SUSv2 ¤È POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë -(⤷ +は SUSv2 と POSIX.1-2001 で規定されている +(但し .BR vsyslog () -¤Ï½ü¤¯)¡£ +は除く)。 .\"O POSIX.1-2001 specifies only the .\"O .B LOG_USER .\"O and .\"O .B LOG_LOCAL* .\"O values for .\"O .IR facility . -POSIX.1-2001 ¤Ç¤Ï +POSIX.1-2001 では .I facility -¤È¤·¤Æ +として .B LOG_USER -¤È +と .B LOG_LOCAL* -¤ÎÃͤ¬µ¬Äꤵ¤ì¤Æ¤¤¤ë¤À¤±¤Ç¤¢¤ë¡£ +の値が規定されているだけである。 .\"O However, with the exception of .\"O .B LOG_AUTHPRIV .\"O and @@ -438,14 +438,14 @@ POSIX.1-2001 .\"O the other .\"O .I facility .\"O values appear on most UNIX systems. -¤·¤«¤·¤Ê¤¬¤é¡¢ +しかしながら、 .B LOG_AUTHPRIV -¤È +と .B LOG_FTP -¤È¤¤¤¦Îã³°¤Ï¤¢¤ë¤¬¡¢ -¤½¤ì°Ê³°¤Î +という例外はあるが、 +それ以外の .I facility -¤ÎÃͤÏ¿¤¯¤Î UNIX ¥·¥¹¥Æ¥à¤Ç»È¤ï¤ì¤Æ¤¤¤ë¡£ +の値は多くの UNIX システムで使われている。 .\"O The .\"O .B LOG_PERROR .\"O value for @@ -453,78 +453,78 @@ POSIX.1-2001 .\"O is not specified by POSIX.1-2001, but is available .\"O in most versions of UNIX. .I option -¤ÎÃͤΠ+の値の .B LOG_PERROR -¤ÎÃͤϡ¢ POSIX.1-2001 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -UNIX ¤Î¿¤¯¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ +の値は、 POSIX.1-2001 では規定されていないが、 +UNIX の多くのバージョンで使用可能である。 .\"O .\" .SH HISTORY -.\" .SH ÍúÎò +.\" .SH 履歴 .\"O .\" A .\"O .\" .BR syslog () .\"O .\" function call appeared in 4.2BSD. .\" .BR syslog () -.\" ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¡¦¥³¡¼¥ë¤Ï 4.2BSD ¤«¤é¼ÂÁõ¤µ¤ì¤¿¡£ +.\" ファンクション・コールは 4.2BSD から実装された。 .\"O .\" 4.3BSD documents .\"O .\" .BR openlog (), .\"O .\" .BR syslog (), .\"O .\" .BR closelog (), .\"O .\" and .\"O .\" .BR setlogmask (). -.\" 4.3BSD ¤Ë¤Ï +.\" 4.3BSD には .\" .BR openlog (), .\" .BR syslog (), .\" .BR closelog (), .\" .BR setlogmask () -.\" ¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +.\" が実装されている。 .\"O .\" 4.3BSD-Reno also documents .\"O .\" .BR vsyslog (). -.\" ¤Þ¤¿¡¢4.3BSD-Reno ¤Ë¤Ï +.\" また、4.3BSD-Reno には .\" .BR vsyslog () -.\" ¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +.\" が実装されている。 .\"O .\" Of course early v* functions used the .\"O .\" .I .\"O .\" mechanism, which is not compatible with .\"O .\" .IR . -.\" ÅöÁ³¤Ê¤¬¤é½é´ü¤Î v* ´Ø¿ô¤Ï +.\" 当然ながら初期の v* 関数は .\" .I -.\" ¤È¤Ï¸ß´¹À­¤Î¤Ê¤¤ +.\" とは互換性のない .\" .I -.\" ¤Î»ÅÁȤò»ÈÍѤ·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +.\" の仕組を使用したものである。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The argument .\"O .I ident .\"O in the call of .\"O .BR openlog () .\"O is probably stored as-is. .BR openlog () -¸Æ¤Ó½Ð¤·¤Î +呼び出しの .I ident -°ú¤­¿ô¤Ï¡¢Ãͤ¬¤½¤Î¤Þ¤ÞÊÝ»ý¤µ¤ì¤Æ¤¤¤ë¤³¤È¤òÁ°Äó¤Ë¤·¤Æ¤¤¤ë¡£ +引き数は、値がそのまま保持されていることを前提にしている。 .\"O Thus, if the string it points to .\"O is changed, .\"O .BR syslog () .\"O may start prepending the changed string, and if the string .\"O it points to ceases to exist, the results are undefined. -¤½¤ì¤æ¤¨¡¢ +それゆえ、 .I ident -¤Ç»ØÄꤵ¤ì¤¿Ê¸»úÎó¤¬Êѹ¹¤µ¤ì¤ë¤È¡¢ +で指定された文字列が変更されると、 .BR syslog () -¤ÏÊѹ¹¤µ¤ì¤¿Ê¸»úÎó¤ÎÄɲ乤ë¤À¤í¤¦¤·¡¢ -»ØÄꤵ¤ì¤¿Ê¸»úÎó¤¬Â¸ºß¤·¤Ê¤¯¤Ê¤Ã¤¿¾ì¹ç¡¢·ë²Ì¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +は変更された文字列の追加するだろうし、 +指定された文字列が存在しなくなった場合、結果は未定義である。 .\"O Most portable is to use a string constant. -ºÇ¤â°Ü¿¢À­¤¬¤¢¤ëÊýË¡¤Ï¡¢Ê¸»úÎóÄê¿ô¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç¤¢¤ë¡£ +最も移植性がある方法は、文字列定数を使用することである。 .LP .\"O Never pass a string with user-supplied data as a format, .\"O use the following instead: -¥æ¡¼¥¶¡¼¤«¤éÍ¿¤¨¤é¤ì¤¿¥Ç¡¼¥¿¤ò format ¤È¤·¤ÆÅϤ·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -Âå¤ï¤ê¤Ë°Ê²¼¤ò»È¤¦¤³¤È¡£ +ユーザーから与えられたデータを format として渡してはならない。 +代わりに以下を使うこと。 .nf syslog(priority, "%s", string); .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR logger (1), .BR setlogmask (3), .BR syslog.conf (5), diff --git a/draft/man3/system.3 b/draft/man3/system.3 index eee3d3ab..d9c6b450 100644 --- a/draft/man3/system.3 +++ b/draft/man3/system.3 @@ -32,22 +32,22 @@ .\" Updated 2001-10-16, Kentaro Shirakata .\" Updated 2005-02-27, Akihiro MOTOKI .\" -.\"WORD: feature test macro µ¡Ç½¸¡ºº¥Þ¥¯¥í +.\"WORD: feature test macro 機能検査マクロ .\" .TH SYSTEM 3 2010-09-10 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O system \- execute a shell command -system \- ¥·¥§¥ë¥³¥Þ¥ó¥É¤Î¼Â¹Ô +system \- シェルコマンドの実行 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int system(const char *" "command" ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR system () .\"O executes a command specified in .\"O .I command @@ -56,12 +56,12 @@ system \- .\"O .IR command , .\"O and returns after the command has been completed. .BR system () -¤Ï +は .I command -¤Ç»ØÄꤷ¤¿¥³¥Þ¥ó¥É¤ò +で指定したコマンドを .B "/bin/sh \-c" .I command -¤Î·Á¤Ç¼Â¹Ô¤¹¤ë¡£»ØÄꤷ¤¿¥³¥Þ¥ó¥É¤¬½ªÎ»¤¹¤ì¤Ð¤³¤Î´Ø¿ô¤â½ªÎ»¤¹¤ë¡£ +の形で実行する。指定したコマンドが終了すればこの関数も終了する。 .\"O During execution of the command, .\"O .B SIGCHLD .\"O will be blocked, and @@ -69,44 +69,44 @@ system \- .\"O and .\"O .B SIGQUIT .\"O will be ignored. -¥³¥Þ¥ó¥É¼Â¹ÔÃæ¤Ï¡¢ +コマンド実行中は、 .B SIGCHLD -¤Ï¥Ö¥í¥Ã¥¯¤µ¤ì¡¢ +はブロックされ、 .B SIGINT -¤È +と .B SIGQUIT -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The value returned is \-1 on error (e.g. .\"O .BR fork (2) .\"O failed), .\"O and the return status of the command otherwise. -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç +エラーが発生した場合 .RB ( fork (2) -¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ê¤É)¡¢\-1 ¤òÊÖ¤¹¡£ -¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¡¢¥³¥Þ¥ó¥É¤Î¥¹¥Æ¡¼¥¿¥¹¤òÊÖ¤¹¡£ +に失敗した場合など)、\-1 を返す。 +そうでなければ、コマンドのステータスを返す。 .\"O This latter return status is in the format .\"O specified in .\"O .BR wait (2). -¸å¼Ô¤Î¾ì¹ç¡¢¥¹¥Æ¡¼¥¿¥¹¤Ï +後者の場合、ステータスは .BR wait (2) -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥Õ¥©¡¼¥Þ¥Ã¥È¤ÇÊ֤äƤ¯¤ë¡£ +で定義されているフォーマットで返ってくる。 .\"O Thus, the exit code of the command will be .\"O .IR WEXITSTATUS(status) . -½¾¤Ã¤Æ¡¢¥³¥Þ¥ó¥É¤Î½ªÎ»¥³¡¼¥É¤Ï +従って、コマンドの終了コードは .I WEXITSTATUS(status) -¤ÇÆÀ¤ë¤³¤È¤¬½ÐÍè¤ë¡£ +で得ることが出来る。 .\"O In case .\"O .I "/bin/sh" .\"O could not be executed, the exit status will be that of .\"O a command that does .\"O .IR exit(127) . .I /bin/sh -¤¬¼Â¹Ô½ÐÍè¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ -½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ï¥³¥Þ¥ó¥É¤¬ +が実行出来なかった場合、 +終了ステータスはコマンドが .I exit(127) -¤ò¼Â¹Ô¤·¤¿¾ì¹ç¤ÈƱ¤¸¤Ë¤Ê¤ë¡£ +を実行した場合と同じになる。 .PP .\"O If the value of .\"O .I command @@ -114,19 +114,19 @@ system \- .\"O .BR system () .\"O returns nonzero if the shell is available, and zero if not. .I command -¤ÎÃͤ¬ NULL ¤Î¤È¤­¤Ï¡¢ +の値が NULL のときは、 .BR system () -¤Ï¥·¥§¥ë¤¬ÍøÍѲÄǽ¤Ê¤é¥¼¥í°Ê³°¤ÎÃͤòÊÖ¤·¡¢ÍøÍÑÉԲĤʤ饼¥í¤òÊÖ¤¹¡£ +はシェルが利用可能ならゼロ以外の値を返し、利用不可ならゼロを返す。 .PP .\"O .BR system () .\"O does not affect the wait status of any other children. .BR system () -¤Ï¾¤Î»Ò¥×¥í¥»¥¹¤Î¥¦¥¨¥¤¥È¥¹¥Æ¡¼¥¿¥¹¤Ë¤Ï±Æ¶Á¤òÍ¿¤¨¤Ê¤¤¡£ +は他の子プロセスのウエイトステータスには影響を与えない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C89, C99, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .PP .\"O If the .\"O .B _XOPEN_SOURCE @@ -139,16 +139,16 @@ C89, C99, POSIX.1-2001. .\"O .RB ( WEXITSTATUS (), .\"O etc.) are made available when including .\"O .IR . -(¡Ö¤É¤Î¡×¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤è¤ê¤âÁ°¤Ë) -µ¡Ç½¸¡ºº¥Þ¥¯¥í +(「どの」ヘッダファイルをインクルードするよりも前に) +機能検査マクロ .B _XOPEN_SOURCE -¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ +が定義された場合には、 .BR wait (2) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¥Þ¥¯¥í·² +で説明されているマクロ群 .RB ( WEXITSTATUS () -Åù) ¤¬ +等) が .I -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤ÈÍøÍѲÄǽ¤Ë¤Ê¤ë¡£ +をインクルードすると利用可能になる。 .PP .\"O As mentioned, .\"O .BR system () @@ -160,18 +160,18 @@ C89, C99, POSIX.1-2001. .\"O from a loop uninterruptible, unless they take care themselves .\"O to check the exit status of the child. .\"O E.g. -´û¤Ë½Ò¤Ù¤¿¤è¤¦¤Ë¡¢ +既に述べたように、 .BR system () -¤Ï +は .B SIGINT -¤È +と .B SIGQUIT -¤ò̵»ë¤¹¤ë¡£ -¤è¤Ã¤Æ¥ë¡¼¥×¤«¤é +を無視する。 +よってループから .BR system () -¤ò¸Æ¤Ö¥×¥í¥°¥é¥à¤Ï¡¢ -°Ê²¼¤ÎÎã¤Î¤è¤¦¤Ë»Ò¥×¥í¥»¥¹¤Î½ªÎ»¾õÂÖ¤ò¼«Ê¬¤Ç¥Á¥§¥Ã¥¯¤·¤Æ¤ª¤«¤Ê¤¤¤È¡¢ -ÃæÃǤǤ­¤Ê¤¯¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +を呼ぶプログラムは、 +以下の例のように子プロセスの終了状態を自分でチェックしておかないと、 +中断できなくなるかもしれない。 .br .nf @@ -195,16 +195,16 @@ C89, C99, POSIX.1-2001. .\"O .BR execlp (3) .\"O or .\"O .BR execvp (3). -set-user-ID ¤ä set-group-ID ¤ÎÆø¢¤ò¤â¤Ä¥×¥í¥°¥é¥à¤ÎÃæ¤Ç¤Ï +set-user-ID や set-group-ID の特権をもつプログラムの中では .BR system () -¤ò»È¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤¡£¤Ê¤¼¤Ê¤é¡¢¤¢¤ë´Ä¶­ÊÑ¿ô¤Î̤ÃΤÎÃͤˤè¤Ã¤Æ -¥·¥¹¥Æ¥à¤Î°ÂÁ´¤¬Â»¤Ê¤ï¤ì¤ë¤«¤é¤Ç¤¢¤ë¡£Âå¤ï¤ê¤Ë +を使ってはいけない。なぜなら、ある環境変数の未知の値によって +システムの安全が損なわれるからである。代わりに .BR exec (3) -´ØÏ¢¤Î´Ø¿ô·²¤ÎÃæ¤Ç +関連の関数群の中で .BR execlp (3) -¤È +と .BR execvp (3) -°Ê³°¤Î´Ø¿ô¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +以外の関数を使用すべきである。 .\"O .BR system () .\"O will not, in fact, work properly from programs with set-user-ID or .\"O set-group-ID privileges on systems on which @@ -212,15 +212,15 @@ set-user-ID .\"O is bash version 2, since bash 2 drops privileges on startup. .\"O (Debian uses a modified bash which does not do this when invoked as .\"O .BR sh .) -¼ÂºÝ¤Î¤È¤³¤í¡¢ +実際のところ、 .BR system () -¤Ï +は .I /bin/sh -¤¬ bash ¥Ð¡¼¥¸¥ç¥ó 2 ¤Ç¤¢¤ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -set-user-ID ¤ä set-group-ID ¤ÎÆø¢¤ò»ý¤Ä¥×¥í¥°¥é¥à¤«¤é¤ÏÀµ¤·¤¯Æ°ºî¤·¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¡¢bash ¥Ð¡¼¥¸¥ç¥ó 2 ¤Ï¥¹¥¿¡¼¥È¥¢¥Ã¥×»þ¤ËÆø¢¤òÍî¤È¤¹¤«¤é¤Ç¤¢¤ë¡£ -(Debian ¤Ç¤Ï¡¢sh ¤È¤·¤Æµ¯Æ°¤µ¤ì¤¿»þ¤Ë¤Ï¤³¤Î¤è¤¦¤ÊÆ°ºî¤ò¹Ô¤Ê¤ï¤Ê¤¤¤è¤¦¤Ë -½¤Àµ¤µ¤ì¤¿ bash ¤òÍѤ¤¤Æ¤¤¤ë) +が bash バージョン 2 であるシステムでは、 +set-user-ID や set-group-ID の特権を持つプログラムからは正しく動作しない。 +なぜなら、bash バージョン 2 はスタートアップ時に特権を落とすからである。 +(Debian では、sh として起動された時にはこのような動作を行なわないように +修正された bash を用いている) .PP .\"O In versions of glibc before 2.1.3, the check for the availability of .\"O .I /bin/sh @@ -229,41 +229,41 @@ set-user-ID .\"O was NULL; instead it was always assumed to be available, and .\"O .BR system () .\"O always returned 1 in this case. -glibc 2.1.3 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ +glibc 2.1.3 より前のバージョンでは、 .I command -¤¬ NULL ¤Î¾ì¹ç¤Ë +が NULL の場合に .I /bin/sh -¤¬ÍøÍѲÄǽ¤«¤É¤¦¤«¤Î¥Á¥§¥Ã¥¯¤Ï¼ÂºÝ¤Ë¤Ï¹Ô¤ï¤º¡¢ -¤¤¤Ä¤Ç¤âÍøÍѲÄǽ¤Ç¤¢¤ë¤È¤ß¤Ê¤·¤Æ¤¤¤¿¡£ +が利用可能かどうかのチェックは実際には行わず、 +いつでも利用可能であるとみなしていた。 .BR system () -¤Ï¤³¤Î¾ì¹ç¤Ë¾ï¤Ë 1 ¤òÊÖ¤·¤Æ¤¤¤¿¡£ +はこの場合に常に 1 を返していた。 .\"O Since glibc 2.1.3, this check is performed because, even though .\"O POSIX.1-2001 requires a conforming implementation to provide .\"O a shell, that shell may not be available or executable if .\"O the calling program has previously called .\"O .BR chroot (2) .\"O (which is not specified by POSIX.1-2001). -POSIX.1-2001 ¤Ç¤Ï¥·¥§¥ë¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¤È¤¤¤¦É¸½à¤Ë½àµò¤·¤¿¼ÂÁõ¤ò -Í׵ᤷ¤Æ¤¤¤ë¤¬¡¢glibc 2.1.3 °Ê¹ß¤Ç¤Ï¥·¥§¥ë¤Î¥Á¥§¥Ã¥¯¤ò¼Â¹Ô¤·¤Æ¤¤¤ë¡£ -¤Ê¤¼¤Ê¤é¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥°¥é¥à¤¬ +POSIX.1-2001 ではシェルが提供されているという標準に準拠した実装を +要求しているが、glibc 2.1.3 以降ではシェルのチェックを実行している。 +なぜなら、呼び出し元のプログラムが .BR system () -¤ò¸Æ¤Ó½Ð¤¹¤è¤êÁ°¤Ë (POSIX.1-2001 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤) +を呼び出すより前に (POSIX.1-2001 では規定されていない) .BR chroot (2) -¤ò¸Æ¤Ó½Ð¤·¤Æ¤¤¤¿»þ¤Ë¤Ï¡¢¥·¥§¥ë¤¬ÍøÍѲÄǽ¤Ç¤Ê¤¤¾ì¹ç¤ä¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë -¤Ç¤Ê¤¤¾ì¹ç¤¬¤¢¤ë¤«¤é¤Ç¤¢¤ë¡£ +を呼び出していた時には、シェルが利用可能でない場合や実行可能ファイル +でない場合があるからである。 .PP .\"O It is possible for the shell command to return 127, so that code is not .\"O a sure indication that the .\"O .BR execve (2) .\"O call failed. -¼Â¹Ô¤·¤¿¥·¥§¥ë¥³¥Þ¥ó¥É¤¬ 127 +実行したシェルコマンドが 127 .RB ( /bin/sh -¤Î¸Æ¤Ó½Ð¤·¤Ë¼ºÇÔ¤·¤¿»þ¤ËÊÖ¤¹ÃÍ) ¤òÊÖ¤¹¤³¤È¤â¹Í¤¨¤é¤ì¤ë¡£ -¤½¤Î¤¿¤á¡¢¥×¥í¥°¥é¥à¤Ï (¥ê¥¿¡¼¥ó¥³¡¼¥É¤ò¸«¤ë¤À¤±¤Ç¤Ï) +の呼び出しに失敗した時に返す値) を返すことも考えられる。 +そのため、プログラムは (リターンコードを見るだけでは) .BR execve (2) -¤Î¸Æ¤Ó½Ð¤·¤¬¼ºÇÔ¤·¤¿¤³¤È¤ò³Î¼Â¤ËÃΤ뤳¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +の呼び出しが失敗したことを確実に知ることはできない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sh (1), .BR signal (2), .BR wait (2), diff --git a/draft/man3/sysv_signal.3 b/draft/man3/sysv_signal.3 index 8d95fd4c..8b85268b 100644 --- a/draft/man3/sysv_signal.3 +++ b/draft/man3/sysv_signal.3 @@ -24,19 +24,19 @@ .\" all rights reserved. .\" Translated 2007-06-02, Akihiro MOTOKI .\" -.\"WORD: reliable ¿®ÍêÀ­¤Î¤¢¤ë -.\"WORD: unreliable ¿®ÍêÀ­¤Ë·ç¤±¤ë -.\"WORD: signal semantics ¥·¥°¥Ê¥ë½èÍýÊý¼° +.\"WORD: reliable 信頼性のある +.\"WORD: unreliable 信頼性に欠ける +.\"WORD: signal semantics シグナル処理方式 .\" .TH SYSV_SIGNAL 3 2007-05-04 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sysv_signal \- signal handling with System V semantics -sysv_signal \- System V Êý¼°¤Î¥·¥°¥Ê¥ë½èÍý +sysv_signal \- System V 方式のシグナル処理 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp @@ -44,15 +44,15 @@ sysv_signal \- System V .sp .BI "sighandler_t sysv_signal(int " signum ", sighandler_t " handler ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR sysv_signal () .\"O function takes the same arguments, and performs the same task, as .\"O .BR signal (2). .BR sysv_signal () -´Ø¿ô¤Ï +関数は .BR signal (2) -¤ÈƱ¤¸°ú¤­¿ô¤ò¤È¤ê¡¢Æ±¤¸½èÍý¤ò¼Â¹Ô¤¹¤ë¡£ +と同じ引き数をとり、同じ処理を実行する。 .\"O However .\"O .BR sysv_signal () @@ -63,49 +63,49 @@ sysv_signal \- System V .\"O the signal handler is executing; and .\"O c) if the handler interrupts (certain) blocking system calls, .\"O then the system call is not automatically restarted. -¤·¤«¤·¤Ê¤¬¤é¡¢ +しかしながら、 .BR sysv_signal () -¤Ï System V ¤Î¿®ÍêÀ­¤Ë·ç¤±¤ë¥·¥°¥Ê¥ë½èÍýÊý¼°¤òÄ󶡤·¤Æ¤¤¤ë¡£ -¿®ÍêÀ­¤Ë·ç¤±¤ë¥·¥°¥Ê¥ë½èÍýÊý¼°¤Ï°Ê²¼¤ÎÆÃħ¤ò»ý¤Ä¡£ -a) ¥Ï¥ó¥É¥é¤¬µ¯Æ°¤µ¤ì¤ë¤È¡¢¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡ (disposition) ¤¬ -¥Ç¥Õ¥©¥ë¥È¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë¡¢ -b) ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Î¼Â¹ÔÃæ¤Ï¡¢¤½¤ì°Ê¹ß¤ËȯÀ¸¤·¤¿Æ±¤¸¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤¬ -¥Ö¥í¥Ã¥¯¤µ¤ì¤Ê¤¤¡¢ -c) ¥Ï¥ó¥É¥é¤¬Ää»ßÃæ¤Î (blocking ¤·¤Æ¤¤¤ë) ¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÃæÃǤ·¤¿¾ì¹ç¡¢ -¼«Æ°Åª¤ËºÆ³«¤µ¤ì¤Ê¤¤¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤¢¤ë¡£ +は System V の信頼性に欠けるシグナル処理方式を提供している。 +信頼性に欠けるシグナル処理方式は以下の特徴を持つ。 +a) ハンドラが起動されると、シグナルの処理方法 (disposition) が +デフォルトにリセットされる、 +b) シグナルハンドラの実行中は、それ以降に発生した同じシグナルの配送が +ブロックされない、 +c) ハンドラが停止中の (blocking している) システムコールを中断した場合、 +自動的に再開されないシステムコールがある。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR sysv_signal () .\"O function returns the previous value of the signal handler, or .\"O .B SIG_ERR .\"O on error. .BR sysv_signal () -´Ø¿ô¤Ï¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ÎľÁ°¤ÎÃͤòÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ +関数はシグナルハンドラの直前の値を返す。 +エラーの場合、 .B SIG_ERR -¤òÊÖ¤¹¡£ +を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O As for .\"O .BR signal (2). .BR signal (2) -¤ÈƱ¤¸¡£ +と同じ。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O This function is nonstandard. -¤³¤Î´Ø¿ô¤ÏÈóɸ½à¤Ç¤¢¤ë¡£ +この関数は非標準である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Use of .\"O .BR sysv_signal () .\"O should be avoided; use .\"O .BR sigaction (2) .\"O instead. .BR sysv_signal () -¤Î»ÈÍѤÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£Âå¤ï¤ê¤Ë +の使用は避けるべきである。代わりに .BR sigaction (2) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .\"O On older Linux systems, .\"O .BR sysv_signal () @@ -117,16 +117,16 @@ c) .\"O provides reliable signal semantics; see .\"O .BR signal (2) .\"O for details. -°ÊÁ°¤Î Linux ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +以前の Linux システムでは、 .BR sysv_signal () -¤È +と .BR signal (2) -¤ÏÅù²Á¤Ç¤¢¤Ã¤¿¡£¤·¤«¤·¡¢¿·¤·¤á¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +は等価であった。しかし、新しめのシステムでは、 .BR signal (2) -¤Ï¿®ÍêÀ­¤Î¤¢¤ë¥·¥°¥Ê¥ë½èÍýÊý¼°¤òÄ󶡤·¤Æ¤¤¤ë¡£ -¾ÜºÙ¤Ï +は信頼性のあるシグナル処理方式を提供している。 +詳細は .BR signal (2) -¤ò»²¾È¡£ +を参照。 .\"O The use of .\"O .I sighandler_t @@ -137,12 +137,12 @@ c) .\"O .B _GNU_SOURCE .\"O feature test macro is defined. .I sighandler_t -¤ò»È¤Ã¤Æ¤¤¤ë¤Î¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -¤³¤Î·¿¤Ïµ¡Ç½¸¡ºº¥Þ¥¯¥í +を使っているのは GNU による拡張である。 +この型は機能検査マクロ .B _GNU_SOURCE -¤òÄêµÁ¤·¤¿¾ì¹ç¤Ë¤Î¤ßÄêµÁ¤µ¤ì¤ë¡£ +を定義した場合にのみ定義される。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sigaction (2), .BR signal (2), .BR bsd_signal (3), diff --git a/draft/man3/tan.3 b/draft/man3/tan.3 index af63f011..8649b91f 100644 --- a/draft/man3/tan.3 +++ b/draft/man3/tan.3 @@ -38,9 +38,9 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH TAN 3 2010-09-11 "" "Linux Programmer's Manual" -.SH ̾Á° -tan, tanf, tanl \- ÀµÀÜ¡Ê¥¿¥ó¥¸¥§¥ó¥È¡Ë´Ø¿ô -.SH ½ñ¼° +.SH 名前 +tan, tanf, tanl \- 正接(タンジェント)関数 +.SH 書式 .nf .B #include .sp @@ -52,7 +52,7 @@ tan, tanf, tanl \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n Feature Test Macro Requirements for glibc (see @@ -71,23 +71,23 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .BR tan () -´Ø¿ô¤Ï \fIx\fP ¤ÎÀµÀÜ¡Ê¥¿¥ó¥¸¥§¥ó¥È¡Ë¤ÎÃͤòÊÖ¤¹¡£ -\fIx\fP ¤Ï¥é¥¸¥¢¥óñ°Ì¤Ç»ØÄꤹ¤ë¡£ +関数は \fIx\fP の正接(タンジェント)の値を返す。 +\fIx\fP はラジアン単位で指定する。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the tangent of .\"O .IR x . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I x -¤ÎÀµÀÜ (¥¿¥ó¥¸¥§¥ó¥È) ¤òÊÖ¤¹¡£ +の正接 (タンジェント) を返す。 .\"O If .\"O .I x .\"O is a NaN, a NaN is returned. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x @@ -95,8 +95,8 @@ or .\"O a domain error occurs, .\"O and a NaN is returned. .I x -¤¬Àµ¤Î̵¸ÂÂ礫Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大か負の無限大の場合、 +領域エラー (domain error) が発生し、NaN が返される。 .\"O If the correct result would overflow, .\"O a range error occurs, @@ -106,12 +106,12 @@ or .\"O or .\"O .BR HUGE_VALL , .\"O respectively, with the mathematically correct sign. -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +結果がオーバーフローする場合、範囲エラー (range error) が発生し、 +各関数はそれぞれ .BR HUGE_VAL , .BR HUGE_VALF , .B HUGE_VALL -¤òÊÖ¤¹¡£ +を返す。 .\" I think overflow can't occur, because the closest floating-point .\" representation of pi/2 is still not close enough to pi/2 to .\" produce a large enough value to overflow. @@ -122,20 +122,20 @@ or .\" POSIX.1 an optional range error for subnormal x; .\" glibc 2.8 doesn't do this .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Domain error: \fIx\fP is an infinity -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤Ï̵¸ÂÂç¤Ç¤¢¤ë +領域エラー (domain error): \fIx\fP は無限大である .\"O .I errno .\"O is set to .\"O .BR EDOM @@ -144,15 +144,15 @@ or .\"O .RB ( FE_INVALID ) .\"O is raised. .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë (¡Ö¥Ð¥°¡×¤ÎÀá¤â»²¾È)¡£ -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される (「バグ」の節も参照)。 +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP .\"O Range error: result overflow -ÈÏ°Ï¥¨¥é¡¼ (range error): ·ë²Ì¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ +範囲エラー (range error): 結果のオーバーフロー .\" Unable to test this case, since the best approximation of .\" pi/2 in double precision only yields a tan() value of 1.633e16. .\" .I errno @@ -161,33 +161,33 @@ or .\"O An overflow floating-point exception .\"O .RB ( FE_OVERFLOW ) .\"O is raised. -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Before version 2.10, the glibc implementation did not set .\" http://sourceware.org/bugzilla/show_bug.cgi?id=6782 .\"O .I errno .\"O to .\"O .B EDOM .\"O when a domain error occurred. -¥Ð¡¼¥¸¥ç¥ó 2.10 ¤è¤êÁ°¤Î glibc ¤Î¼ÂÁõ¤Ç¤Ï¡¢ -Îΰ襨¥é¡¼¤¬È¯À¸¤·¤¿ºÝ¤Ë¡¢ +バージョン 2.10 より前の glibc の実装では、 +領域エラーが発生した際に、 .I error -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤Ê¤«¤Ã¤¿¡£ +が設定されなかった。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD, C89. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 +.SH 関連項目 .BR acos (3), .BR asin (3), .BR atan (3), diff --git a/draft/man3/tanh.3 b/draft/man3/tanh.3 index 02cfea98..1c8a1426 100644 --- a/draft/man3/tanh.3 +++ b/draft/man3/tanh.3 @@ -38,11 +38,11 @@ .\" .TH TANH 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O tanh, tanhf, tanhl \- hyperbolic tangent function -tanh, tanhf, tanhl \- ÁжÊÀþÀµÀÜ (hyperbolic tangent) ´Ø¿ô +tanh, tanhf, tanhl \- 双曲線正接 (hyperbolic tangent) 関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -54,14 +54,14 @@ tanh, tanhf, tanhl \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -76,63 +76,63 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR tanh () .\"O function returns the hyperbolic tangent of \fIx\fP, which .\"O is defined mathematically as: .BR tanh () -´Ø¿ô¤Ï \fIx\fP ¤ÎÁжÊÀþÀµÀÜ (hyperbolic tangent) ´Ø¿ô¤òÊÖ¤¹¡£ -¿ô³ØŪ¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡¥ +関数は \fIx\fP の双曲線正接 (hyperbolic tangent) 関数を返す。 +数学的には以下のように定義されている. .nf tanh(x) = sinh(x) / cosh(x) .fi .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the hyperbolic tangent of .\"O .IR x . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I x -¤ÎÁжÊÀþÀµÀܤòÊÖ¤¹¡£ +の双曲線正接を返す。 .\"O If .\"O .I x .\"O is a NaN, a NaN is returned. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x .\"O is +0 (\-0), +0 (\-0) is returned. .I x -¤¬ +0 (\-0) ¤Î¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 (\-0) の場合、+0 (\-0) が返される。 .\"O If .\"O .I x .\"O is positive infinity (negative infinity), .\"O +1 (\-1) is returned. .I x -¤¬Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤Î¾ì¹ç¡¢+1 (\-1) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大 (負の無限大) の場合、+1 (\-1) が返される。 .\" .\" POSIX.1-2001 documents an optional range error (underflow) .\" for subnormal x; .\" glibc 2.8 does not do this. .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O No errors occur. -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ +エラーは発生しない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O The variant returning .\"O .I double .\"O also conforms to .\"O SVr4, 4.3BSD, C89. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR acosh (3), .BR asinh (3), .BR atanh (3), diff --git a/draft/man3/tcgetpgrp.3 b/draft/man3/tcgetpgrp.3 index 8bc69e40..f9a321dc 100644 --- a/draft/man3/tcgetpgrp.3 +++ b/draft/man3/tcgetpgrp.3 @@ -28,18 +28,18 @@ .TH TCGETPGRP 3 2003-01-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O tcgetpgrp, tcsetpgrp \- get and set terminal foreground process group -.SH ̾Á° -tcgetpgrp, tcsetpgrp \- üËö¤Î¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¡¦¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Î -¼èÆÀ/ÀßÄê¤ò¹Ô¤¦ +.SH 名前 +tcgetpgrp, tcsetpgrp \- 端末のフォアグラウンド・プロセス・グループの +取得/設定を行う .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B "#include " .sp .BI "pid_t tcgetpgrp(int " fd ); .sp .BI "int tcsetpgrp(int " fd ", pid_t " pgrp ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The function .\"O .BR tcgetpgrp () .\"O returns the process group ID of the foreground process group on the @@ -47,15 +47,15 @@ tcgetpgrp, tcsetpgrp \- ü .\"O .IR fd , .\"O which must be the controlling terminal of the calling process. .\"O .\" The process itself may be a background process. -´Ø¿ô +関数 .BR tcgetpgrp () -¤Ï¡¢ +は、 .I fd -¤ËÂбþ¤¹¤ëüËö¤Î¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¡¦¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Î -¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× ID ¤òÊÖ¤¹¡£ +に対応する端末のフォアグラウンド・プロセス・グループの +プロセス・グループ ID を返す。 .I fd -¤Ç»ØÄꤵ¤ì¤¿Ã¼Ëö¤Ï¡¢¸Æ¤Ó½Ð¤·¤ò¹Ô¤¦¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.\" ¥×¥í¥»¥¹¼«ÂΤϥХ寥°¥é¥¦¥ó¥É¡¦¥×¥í¥»¥¹¤Ç¤¢¤Ã¤Æ¤â¤è¤¤¡£ +で指定された端末は、呼び出しを行うプロセスの制御端末でなければならない。 +.\" プロセス自体はバックグラウンド・プロセスであってもよい。 .LP .\"O The function .\"O .BR tcsetpgrp () @@ -66,18 +66,18 @@ tcgetpgrp, tcsetpgrp \- ü .\"O and still be associated with its session. .\"O Moreover, \fIpgrp\fP must be a (nonempty) process group belonging to .\"O the same session as the calling process. -´Ø¿ô +関数 .BR tcsetpgrp () -¤Ï¡¢¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×ID ¤¬ \fIpgrp\fP ¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤ò +は、プロセス・グループID が \fIpgrp\fP のプロセス・グループを .I fd -¤ËÂбþ¤¹¤ëüËö¤Î¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¡¦¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Ë¤¹¤ë¡£ -¤³¤Î¤È¤­¡¢ +に対応する端末のフォアグラウンド・プロセス・グループにする。 +このとき、 .I fd -¤Ï +は .BR tcsetpgrp () -¤ò¸Æ¤Ó½Ð¤¹¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤µ¤é¤Ë¡¢ \fIpgrp\fP ¤Ï¡¢¸Æ¤Ó½Ð¤·¤ò¹Ô¤¦¥×¥í¥»¥¹¤ÈƱ¤¸¥»¥Ã¥·¥ç¥ó¤Ë -°¤¹¤ë (¥á¥ó¥Ð¤¬¶õ¤Ç¤Ê¤¤) ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を呼び出すプロセスの制御端末でなければならない。 +さらに、 \fIpgrp\fP は、呼び出しを行うプロセスと同じセッションに +属する (メンバが空でない) プロセス・グループでなければならない。 .LP .\"O If .\"O .BR tcsetpgrp () @@ -88,16 +88,16 @@ tcgetpgrp, tcsetpgrp \- ü .\"O .B SIGTTOU .\"O signal is sent to all members of this background process group. .BR tcsetpgrp () -¤¬¥»¥Ã¥·¥ç¥ó¤Ë°¤¹¤ë¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¡¦¥°¥ë¡¼¥×¡¦¥×¥í¥»¥¹¤Î¥á¥ó¥Ð¤«¤é -¸Æ¤Ó½Ð¤µ¤ì¡¢¤«¤Ä¸Æ¤Ó½Ð¤·¤ò¹Ô¤¦¥×¥í¥»¥¹¤¬ +がセッションに属するバックグラウンド・グループ・プロセスのメンバから +呼び出され、かつ呼び出しを行うプロセスが .B SIGTTOU -¤ò¥Ö¥í¥Ã¥¯¤·¤¿¤ê -̵»ë¤·¤¿¤ê¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +をブロックしたり +無視したりするようになっていない場合、 .B SIGTTOU -¥·¥°¥Ê¥ë¤Ï -¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¡¦¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤ÎÁ´¤Æ¤Î¥á¥ó¥Ð¤ËÁ÷¤é¤ì¤ë¡£ +シグナルは +バックグラウンド・プロセス・グループの全てのメンバに送られる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O When .\"O .I fd .\"O refers to the controlling terminal of the calling process, @@ -107,12 +107,12 @@ tcgetpgrp, tcsetpgrp \- ü .\"O if there is one, and some value larger than 1 that is not .\"O presently a process group ID otherwise. .I fd -¤¬¸Æ¤Ó½Ð¤·¤ò¹Ô¤Ã¤¿¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¡¢´Ø¿ô +が呼び出しを行ったプロセスの制御端末を参照している場合、関数 .BR tcgetpgrp () -¤Ï¡¢¤½¤ÎÀ©¸æüËö¤Î¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¡¦¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤¬¤¢¤ì¤Ð -¤½¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Î ID ¤òÊÖ¤¹¡£ -¤½¤Î¤è¤¦¤Ê¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤¬¤Ê¤±¤ì¤Ð¡¢¸½ºß¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× ID -¤È¤·¤Æ»ÈÍѤµ¤ì¤Æ¤¤¤Ê¤¤¡¢1¤è¤êÂ礭¤Ê²¿¤é¤«¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¡£ +は、その制御端末のフォアグラウンド・プロセス・グループがあれば +そのプロセス・グループの ID を返す。 +そのようなプロセス・グループがなければ、現在プロセス・グループ ID +として使用されていない、1より大きな何らかの値が返される。 .\"O When .\"O .I fd .\"O does not refer to the controlling terminal of the calling process, @@ -120,10 +120,10 @@ tcgetpgrp, tcsetpgrp \- ü .\"O .I errno .\"O is set appropriately. .I fd -¤¬¸Æ¤Ó½Ð¤·¤ò¹Ô¤Ã¤¿¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -\-1 ¤¬ÊÖ¤µ¤ì¡¢ +が呼び出しを行ったプロセスの制御端末を参照していない場合、 +\-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .LP .\"O When successful, .\"O .BR tcsetpgrp () @@ -131,25 +131,25 @@ tcgetpgrp, tcsetpgrp \- ü .\"O Otherwise, it returns \-1, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR tcsetpgrp () -¤Ï 0 ¤òÊÖ¤¹¡£¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¡¢ \-1 ¤òÊÖ¤·¡¢ +は 0 を返す。そうでない場合、 \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O .I fd .\"O is not a valid file descriptor. .I fd -¤ÏÍ­¸ú¤Ê¥Õ¥¡¥¤¥ëµ­½Ò»Ò¤Ç¤Ê¤¤¡£ +は有効なファイル記述子でない。 .TP .B EINVAL .\"O .I pgrp .\"O has an unsupported value. .I pgrp -¤¬Ìµ¸ú¤ÊÃͤǤ¢¤ë¡£ +が無効な値である。 .TP .B ENOTTY .\"O The calling process does not have a controlling terminal, or @@ -159,46 +159,46 @@ tcgetpgrp, tcsetpgrp \- ü .\"O .BR tcsetpgrp (), .\"O this controlling terminal is no longer associated with the session .\"O of the calling process. -¸Æ¤Ó½Ð¤·¤ò¹Ô¤Ã¤¿¥×¥í¥»¥¹¤¬À©¸æüËö¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡¢¤â¤·¤¯¤Ï -À©¸æüËö¤ò»ý¤Ã¤Æ¤¤¤ë¤¬ +呼び出しを行ったプロセスが制御端末を持っていない、もしくは +制御端末を持っているが .I fd -¤Ç»²¾È¤µ¤ì¤ë¤â¤Î¤È¤Ï°Û¤Ê¤ë¡¢ +で参照されるものとは異なる、 .BR tcsetpgrp () -¤Î¾ì¹ç¤Ï¡¢ +の場合は、 .I fd -¤Ç»ØÄꤵ¤ì¤¿À©¸æüËö¤¬¤¹¤Ç¤Ë¸Æ¤Ó½Ð¤·¤ò¹Ô¤Ã¤¿¥×¥í¥»¥¹¤Î¥»¥Ã¥·¥ç¥ó -¤È´Ø·¸¤Î¤Ê¤¤¤â¤Î¤Ë¤Ê¤Ã¤Æ¤¤¤ëºÝ¤Ë¤â¡¢¤³¤Î¥¨¥é¡¼¤È¤Ê¤ë¡£ +で指定された制御端末がすでに呼び出しを行ったプロセスのセッション +と関係のないものになっている際にも、このエラーとなる。 .TP .B EPERM .\"O .I pgrp .\"O has a supported value, but is not the process group ID of a .\"O process in the same session as the calling process. .I pgrp -¤¬Í­¸ú¤ÊÃͤÀ¤¬¡¢¸Æ¤Ó½Ð¤·¤ò¹Ô¤Ã¤¿¥×¥í¥»¥¹¤ÈƱ¤¸¥»¥Ã¥·¥ç¥ó¤Ë°¤¹¤ë -¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× ID ¤Ë¤Ï³ºÅö¤¹¤ë¤â¤Î¤¬¤Ê¤¤¡£ +が有効な値だが、呼び出しを行ったプロセスと同じセッションに属する +プロセスのプロセス・グループ ID には該当するものがない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O These functions are implemented via the .\"O .B TIOCGPGRP .\"O and .\"O .B TIOCSPGRP .\"O ioctls. -¤³¤Î´Ø¿ô¤Ï +この関数は .B TIOCGPGRP -¤È +と .B TIOCGSID -¤Î ioctl ·Ðͳ¤Ç¼Â¸½¤µ¤ì¤Æ¤¤¤ë¡£ +の ioctl 経由で実現されている。 .\"O .SS History -.SS Îò»Ë +.SS 歴史 .\"O The ioctls appeared in 4.2BSD. .\"O The functions are POSIX inventions. -¤³¤ì¤é¤Î ioctl ¤Ï 4.2BSD ¤ÇÅо줷¤¿¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ï POSIX ¤Ç¹Í°Æ¤µ¤ì¤¿¤â¤Î¤Ç¤¢¤ë¡£ +これらの ioctl は 4.2BSD で登場した。 +これらの関数は POSIX で考案されたものである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR setpgid (2), .BR setsid (2), .BR credentials (7) diff --git a/draft/man3/tcgetsid.3 b/draft/man3/tcgetsid.3 index 80538a0c..2401cf79 100644 --- a/draft/man3/tcgetsid.3 +++ b/draft/man3/tcgetsid.3 @@ -28,20 +28,20 @@ .TH TCGETSID 3 2010-09-10 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O tcgetsid \- get session ID -.SH ̾Á° -tcgetsid \- ¥»¥Ã¥·¥ç¥óID ¤ò¼èÆÀ¤¹¤ë +.SH 名前 +tcgetsid \- セッションID を取得する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _XOPEN_SOURCE 500" " /* See feature_test_macros(7) */" -.BR "#define _XOPEN_SOURCE 500" " /* feature_test_macros(7) »²¾È */" +.BR "#define _XOPEN_SOURCE 500" " /* feature_test_macros(7) 参照 */" .br .B "#include " .sp .BI "pid_t tcgetsid(int " fd ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The function .\"O .BR tcgetsid () .\"O returns the session ID of the current session that has the @@ -49,15 +49,15 @@ tcgetsid \- .\"O .I fd .\"O as controlling terminal. .\"O This terminal must be the controlling terminal of the calling process. -´Ø¿ô +関数 .BR tcgetsid () -¤Ï¡¢À©¸æüËö¤È¤·¤Æ +は、制御端末として .I fd -¤ËÂбþ¤¹¤ëüËö¤ò»ý¤Ä¥«¥ì¥ó¥È¡¦¥»¥Ã¥·¥ç¥ó¤Î¥»¥Ã¥·¥ç¥óID ¤òÊÖ¤¹¡£ -¤³¤ÎüËö¤Ï \fBtcgetsid\fR() ¤Î¸Æ¤Ó½Ð¤·¤ò¹Ô¤¦¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤Ç -¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +に対応する端末を持つカレント・セッションのセッションID を返す。 +この端末は \fBtcgetsid\fR() の呼び出しを行うプロセスの制御端末で +なければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O When .\"O .I fd .\"O refers to the controlling terminal of our session, @@ -65,54 +65,54 @@ tcgetsid \- .\"O .BR tcgetsid () .\"O will return the session ID of this session. .I fd -¤¬¸Æ¤Ó½Ð¤·¤ò¹Ô¤Ã¤¿¥»¥Ã¥·¥ç¥ó¤ÎÀ©¸æüËö¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -´Ø¿ô +が呼び出しを行ったセッションの制御端末を参照している場合、 +関数 .BR tcgetsid () -¤Ï¤³¤Î¥»¥Ã¥·¥ç¥ó¤Î¥»¥Ã¥·¥ç¥óID ¤òÊÖ¤¹¡£ +はこのセッションのセッションID を返す。 .\"O Otherwise, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¡¢ \-1 ¤¬ÊÖ¤µ¤ì¡¢ +そうでない場合、 \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O .I fd .\"O is not a valid file descriptor. .I fd -¤ÏÍ­¸ú¤Ê¥Õ¥¡¥¤¥ëµ­½Ò»Ò¤Ç¤Ê¤¤¡£ +は有効なファイル記述子でない。 .TP .B ENOTTY .\"O The calling process does not have a controlling terminal, or .\"O it has one but it is not described by .\"O .IR fd . -¸Æ¤Ó½Ð¤·¤ò¹Ô¤Ã¤¿¥×¥í¥»¥¹¤¬À©¸æüËö¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡¢¤â¤·¤¯¤Ï -À©¸æüËö¤ò»ý¤Ã¤Æ¤¤¤ë¤¬ +呼び出しを行ったプロセスが制御端末を持っていない、もしくは +制御端末を持っているが .I fd -¤Ç»²¾È¤µ¤ì¤ë¤â¤Î¤È¤Ï°Û¤Ê¤ë¡£ +で参照されるものとは異なる。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR tcgetsid () .\"O is provided in glibc since version 2.1. .BR tcgetsid () -¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +は、バージョン 2.1 以降の glibc で提供されている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O This function is implemented via the .\"O .B TIOCGSID .\"O .BR ioctl (2), .\"O present .\"O since Linux 2.1.71. -¤³¤Î´Ø¿ô¤Ï +この関数は .B TIOCGSID .BR ioctl (2) -·Ðͳ¤Ç¼Â¸½¤µ¤ì¤Æ¤ª¤ê¡¢ -Linux 2.1.71 °Ê¹ß¤Ç¸ºß¤¹¤ë¡£ +経由で実現されており、 +Linux 2.1.71 以降で存在する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getsid (2) diff --git a/draft/man3/telldir.3 b/draft/man3/telldir.3 index 72ffcaac..496d66ec 100644 --- a/draft/man3/telldir.3 +++ b/draft/man3/telldir.3 @@ -35,11 +35,11 @@ .\" .TH TELLDIR 3 2009-03-11 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O telldir \- return current location in directory stream -telldir \- ¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥àÃæ¤Î¸½ºß°ÌÃÖ¤òÊÖ¤¹ +telldir \- ディレクトリストリーム中の現在位置を返す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -49,24 +49,24 @@ telldir \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR telldir (): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR telldir () .\"O function returns the current location associated with .\"O the directory stream \fIdirp\fP. .BR telldir () -´Ø¿ô¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à \fIdirp\fP ¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤¿ -¸½ºß°ÌÃÖ¤òÊÖ¤¹¡£ +関数は、ディレクトリストリーム \fIdirp\fP に結びつけられた +現在位置を返す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, the .\"O .BR telldir () .\"O function returns the current location @@ -74,23 +74,23 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR telldir () -´Ø¿ô¤Ï¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥àÃæ¤Î¸½ºß°ÌÃÖ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +関数はディレクトリストリーム中の現在位置を返す。 +エラーの場合、\-1 が返されて、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O Invalid directory stream descriptor \fIdirp\fP. -¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¥Ç¥£¥¹¥¯¥ê¥×¥¿ \fIdirp\fP ¤¬Ìµ¸ú¤Ç¤¢¤ë¡£ +ディレクトリストリームディスクリプタ \fIdirp\fP が無効である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.3BSD, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O In glibc up to version 2.1.1, the return type of .\"O .BR telldir () .\"O was @@ -98,18 +98,18 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE .\"O POSIX.1-2001 specifies .\"O .IR long , .\"O and this is the type used since glibc 2.1.2. -¥Ð¡¼¥¸¥ç¥ó 2.1.1 °ÊÁ°¤Î glibc ¤Ç¤Ï¡¢ +バージョン 2.1.1 以前の glibc では、 .BR telldir ()9 -¤ÎÊÖ¤êÃͤη¿¤Ï +の返り値の型は .I off_t -¤Ç¤¢¤Ã¤¿¡£ -POSIX.1-2001 ¤Ç¤Ï +であった。 +POSIX.1-2001 では .I long -¤Èµ¬Äꤵ¤ì¤Æ¤ª¤ê¡¢glibc 2.1.2 °Ê¹ß¤Ç¤Ï +と規定されており、glibc 2.1.2 以降では .I long -¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +になっている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR closedir (3), .BR opendir (3), .BR readdir (3), diff --git a/draft/man3/tempnam.3 b/draft/man3/tempnam.3 index b1423f56..49eead0e 100644 --- a/draft/man3/tempnam.3 +++ b/draft/man3/tempnam.3 @@ -29,22 +29,22 @@ .\" Updated 2006-04-14, Akihiro MOTOKI , LDP v2.29 .\" Updated 2006-07-26, Akihiro MOTOKI , LDP v2.36 .\" -.\"WORD: temporary file ¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë -.\"WORD: filename ¥Õ¥¡¥¤¥ë̾ -.\"WORD: function ´Ø¿ô -.\"WORD: directory ¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: environment variable ´Ä¶­ÊÑ¿ô -.\"WORD: argument °ú¤­¿ô -.\"WORD: storage ÊݸÎΰè -.\"WORD: pointer ¥Ý¥¤¥ó¥¿¡¼ +.\"WORD: temporary file テンポラリファイル +.\"WORD: filename ファイル名 +.\"WORD: function 関数 +.\"WORD: directory ディレクトリ +.\"WORD: environment variable 環境変数 +.\"WORD: argument 引き数 +.\"WORD: storage 保存領域 +.\"WORD: pointer ポインター .\" .TH TEMPNAM 3 2008-08-06 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O tempnam \- create a name for a temporary file -tempnam \- ¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë¤Î̾Á°¤òºîÀ®¤¹¤ë +tempnam \- テンポラリファイルの名前を作成する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -54,15 +54,15 @@ tempnam \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR tempnam (): _BSD_SOURCE || _SVID_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR tempnam () .\"O function returns a pointer to a string that is a valid filename, @@ -77,40 +77,40 @@ _BSD_SOURCE || _SVID_SOURCE .\"O The directory prefix part of the pathname generated is required to .\"O be "appropriate" (often that at least implies writable). .BR tempnam () -´Ø¿ô¤Ï¥Õ¥¡¥¤¥ë̾¤È¤·¤ÆÀµ¤·¤¤Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£ -¤³¤Î¥Õ¥¡¥¤¥ë̾¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤Ï¡¢ +関数はファイル名として正しい文字列へのポインターを返す。 +このファイル名を持つファイルは、 .BR tempnam () -¤¬¥Á¥§¥Ã¥¯¤·¤¿»þÅÀ¤Ë¤ª¤¤¤Æ¤Ï¸ºß¤·¤Ê¤¤ (¤·¤Ê¤«¤Ã¤¿)¡£ +がチェックした時点においては存在しない (しなかった)。 .I pfx -¤¬ NULL ¤Ç¤Ê¤¤ 5 ¥Ð¥¤¥È°ÊÆâ¤Îʸ»úÎó¤Ç¤¢¤ì¤Ð¡¢ -À¸À®¤µ¤ì¤ë¥Ñ¥¹Ì¾¤Î¤¦¤Á¤Î¥Õ¥¡¥¤¥ë̾¤ÎÉôʬ¤Ï +が NULL でない 5 バイト以内の文字列であれば、 +生成されるパス名のうちのファイル名の部分は .I pfx -¤«¤é»Ï¤Þ¤ë¤â¤Î¤Ë¤Ê¤ë¡£ -À¸À®¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ÎÉôʬ¤Ï¡¢¡ÖŬÀڡפǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(ÂçÄñ¤Î¾ì¹ç¡¢¡ÖŬÀڡפǤ¢¤ë¤¿¤á¤Ë¤Ï¤Þ¤º¾¯¤Ê¤¯¤È¤â -½ñ¤­¹þ¤ß²Äǽ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£ +から始まるものになる。 +生成されるディレクトリの部分は、「適切」でなければならない +(大抵の場合、「適切」であるためにはまず少なくとも +書き込み可能でなければならない)。 .\"O Attempts to find an appropriate directory go through the following .\"O steps: -ŬÀڤʥǥ£¥ì¥¯¥È¥ê¤Îõº÷¤Ï¡¢°Ê²¼¤Î¼ê½ç¤Ë¤·¤¿¤¬¤Ã¤Æ¹Ô¤ï¤ì¤ë¡£ +適切なディレクトリの探索は、以下の手順にしたがって行われる。 .TP 3 a) .\"O In case the environment variable .\"O .B TMPDIR .\"O exists and .\"O contains the name of an appropriate directory, that is used. -´Ä¶­ÊÑ¿ô +環境変数 .B TMPDIR -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Æ¡¢ -¤½¤ÎÆâÍƤ¬Å¬Àڤʥǥ£¥ì¥¯¥È¥ê¤Î̾Á°¤Ê¤é¡¢¤½¤ì¤òÍѤ¤¤ë¡£ +が設定されていて、 +その内容が適切なディレクトリの名前なら、それを用いる。 .TP b) .\"O Otherwise, if the .\"O .I dir .\"O argument is non-NULL and appropriate, it is used. -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢ +それ以外の場合、 .I dir -°ú¤­¿ô¤¬ NULL ¤Ç¤Ê¤¤Ê¸»úÎó¤Ç¤«¤ÄŬÀڤʤ顢¤½¤ì¤òÍѤ¤¤ë¡£ +引き数が NULL でない文字列でかつ適切なら、それを用いる。 .TP c) .\"O Otherwise, @@ -118,15 +118,15 @@ c) .\"O (as defined in .\"O .IR ) .\"O is used when appropriate. -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢ +それ以外の場合、 .RI ( -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë) +で定義されている) .I P_tmpdir -¤¬Å¬Àڤʤ顢¤½¤ì¤òÍѤ¤¤ë¡£ +が適切なら、それを用いる。 .TP d) .\"O Finally an implementation-defined directory may be used. -ºÇ¸å¤Ë¼ÂÁõ¤ÇÄêµÁ¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤¬ÍѤ¤¤é¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ +最後に実装で定義されたディレクトリが用いられることになる。 .PP .\"O The string returned by .\"O .BR tempnam () @@ -135,37 +135,37 @@ d) .\"O and hence should be freed by .\"O .BR free (3). .BR tempnam () -¤¬ÊÖ¤¹Ê¸»úÎó¤Ï +が返す文字列は .BR malloc (3) -¤ò»È¤Ã¤Æ³ÎÊݤµ¤ì¤ë¡£¤½¤Î¤¿¤á¡¢ +を使って確保される。そのため、 .BR free (3) -¤Ç²òÊü¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +で解放すべきである。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR tempnam () .\"O function returns a pointer to a unique temporary .\"O filename, or NULL if a unique name cannot be generated. .BR tempnam () -´Ø¿ô¤Ï¾¤È½Å¤Ê¤é¤Ê¤¤¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë̾¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¾¤È½Å¤Ê¤é¤Ê¤¤Ì¾Á°¤¬À¸À®¤Ç¤­¤Ê¤±¤ì¤Ð NULL ¤òÊÖ¤¹¡£ +関数は他と重ならないテンポラリファイル名へのポインタを返す。 +他と重ならない名前が生成できなければ NULL を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B ENOMEM .\"O Allocation of storage failed. -ÊݸÎΰè¤Î³ä¤êÅö¤Æ¤Ë¼ºÇÔ¤·¤¿¡£ +保存領域の割り当てに失敗した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .\"O POSIX.1-2008 marks .\"O .BR tempnam () .\"O as obsolete. -POSIX.1-2008 ¤Ï +POSIX.1-2008 は .BR tempnam () -¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£ +を廃止予定としている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Although .\"O .BR tempnam () .\"O generates names that are difficult to guess, @@ -185,23 +185,23 @@ POSIX.1-2008 .\"O or .\"O .BR tmpfile (3). .BR tempnam () -¤Ï¿ä¬¤¬Æñ¤·¤¤Ì¾Á°¤òÀ¸À®¤¹¤ë¤¬¡¢¤½¤ì¤Ë¤â¤«¤«¤ï¤é¤º¡¢ +は推測が難しい名前を生成するが、それにもかかわらず、 .BR tempnam () -¤¬¥Ñ¥¹Ì¾¤òÊÖ¤·¤Æ¤«¤é¡¢¥×¥í¥°¥é¥à¤¬¤½¤Î¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë -¤Þ¤Ç¤Î´Ö¤Ë¡¢ÊÌ¤Î¥×¥í¥°¥é¥à¤¬Æ±¤¸¥Ñ¥¹Ì¾¤Ç¡¢¥Õ¥¡¥¤¥ë¤ò +がパス名を返してから、プログラムがそのファイルをオープンする +までの間に、別のプログラムが同じパス名で、ファイルを .BR open (2) -¤ÇºîÀ®¤·¤¿¤ê¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òºîÀ®¤·¤¿¤ê¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¤³¤ì¤Ï¥»¥­¥å¥ê¥Æ¥£¥Û¡¼¥ë¤Ë¤Ä¤Ê¤¬¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¤½¤Î¤è¤¦¤Ê²ÄǽÀ­¤ò²óÈò¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ +で作成したり、シンボリックリンクを作成したりする可能性がある。 +これはセキュリティホールにつながる可能性がある。 +そのような可能性を回避するためには、 .BR open (2) -¤Î +の .B O_EXCL -¥Õ¥é¥°¤ò»È¤Ã¤Æ¥Ñ¥¹Ì¾¤ò¥ª¡¼¥×¥ó¤¹¤ì¤Ð¤è¤¤¡£ -¤â¤Ã¤È¤¤¤¤¤Î¤Ï¡¢ +フラグを使ってパス名をオープンすればよい。 +もっといいのは、 .BR mkstemp (3) -¤ä +や .BR tmpfile (3) -¤ò»È¤¦¤³¤È¤Ç¤¢¤ë¡£ +を使うことである。 .\"O SUSv2 does not mention the use of .\"O .BR TMPDIR ; @@ -210,23 +210,23 @@ POSIX.1-2008 .\"O On SVr4, the directory used under \fBd)\fP is .\"O .I /tmp .\"O (and this is what glibc does). -SUSv2 ¤Ç¤Ï +SUSv2 では .B TMPDIR -¤ËÉÕ¤¤¤Æ¸ÀµÚ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -glibc ¤Ï¡¢¥×¥í¥°¥é¥à¤¬ set-user-ID ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¸Â¤Ã¤Æ¤³¤ì¤òÍѤ¤¤ë¡£ -SVr4 ¤Ç¤Ï \fBd)\fP ¤Ç»ÈÍѤµ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ò +に付いて言及されていない。 +glibc は、プログラムが set-user-ID されていない場合に限ってこれを用いる。 +SVr4 では \fBd)\fP で使用されるディレクトリを .I /tmp -¤ÈÄê¤á¤Æ¤¤¤ë (glibc ¤â¤³¤ÎÄ̤ê¤Ç¤¢¤ë)¡£ +と定めている (glibc もこの通りである)。 .LP .\"O Because it dynamically allocates memory used to return the pathname, .\"O .BR tempnam () .\"O is reentrant, and thus thread safe, unlike .\"O .BR tmpnam (3). -¥Ñ¥¹Ì¾¤òÊÖ¤¹¤Î¤Ë»ÈÍѤ¹¤ë¥á¥â¥ê¤òưŪ¤Ë³ÎÊݤ¹¤ë¤Î¤Ç¡¢ +パス名を返すのに使用するメモリを動的に確保するので、 .BR tmpnam (3) -¤È°ã¤¤¡¢ +と違い、 .BR tempnam () -¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤¢¤ê¡¢¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤¢¤ë¡£ +はリエントラントであり、スレッドセーフである。 .LP .\"O The .\"O .BR tempnam () @@ -241,41 +241,41 @@ SVr4 .\"O times, .\"O the behavior is implementation defined. .BR tempnam () -´Ø¿ô¤ÏºÇÂç +関数は最大 .B TMP_MAX -²ó¤Þ¤Ç¡¢¸Æ¤Ó½Ð¤µ¤ì¤ëÅ٤˰ۤʤëʸ»úÎó¤òºîÀ®¤¹¤ë +回まで、呼び出される度に異なる文字列を作成する .RB ( TMP_MAX -¤Ï +は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ -¤â¤· +で定義されている)。 +もし .B TMP_MAX -²ó°Ê¾å¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¡¢Æ°ºî¤Ï¼ÂÁõ°Í¸¤Ç¤¢¤ë¡£ +回以上呼び出された場合、動作は実装依存である。 .LP .\"O .BR tempnam () .\"O uses at most the first five bytes from .\"O .IR pfx . .BR tempnam () -¤ÏºÇÂç¤Ç +は最大で .I pfx -¤ÎÀèƬ 5 ¥Ð¥¤¥È¤ò»ÈÍѤ¹¤ë¡£ +の先頭 5 バイトを使用する。 .\"O The glibc implementation of .\"O .BR tempnam () .\"O will fail with the error .\"O .B EEXIST .\"O upon failure to find a unique name. -¾¤È½Å¤Ê¤é¤Ê¤¤Ì¾Á°¤¬¸«¤Ä¤±¤é¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢glibc ¤Î +他と重ならない名前が見つけられなかった場合、glibc の .BR tempnam () -¤Î¼ÂÁõ¤Ï¥¨¥é¡¼ +の実装はエラー .B EEXIST -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O The precise meaning of "appropriate" is undefined; .\"O it is unspecified how accessibility of a directory is determined. -¡ÖŬÀڡפȤ¤¤¦¸ÀÍÕ¤ÎÀµ³Î¤Ê°ÕÌ£¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ·¤Æ¤É¤ÎÄøÅ٤Υ¢¥¯¥»¥¹¸¢¸Â¤¬É¬ÍפʤΤ«¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +「適切」という言葉の正確な意味は定義されていない。 +ディレクトリに対してどの程度のアクセス権限が必要なのかは指定されていない。 .\"O Never use this function. .\"O Use @@ -283,13 +283,13 @@ SVr4 .\"O or .\"O .BR tmpfile (3) .\"O instead. -·è¤·¤Æ¤³¤Î´Ø¿ô¤ò»È¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£Âå¤ï¤ê¤Ë +決してこの関数を使ってはならない。代わりに .BR mkstemp (3) -¤« +か .BR tmpfile (3) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mkstemp (3), .BR mktemp (3), .BR tmpfile (3), diff --git a/draft/man3/termios.3 b/draft/man3/termios.3 index 7d88de00..76ccc82f 100644 --- a/draft/man3/termios.3 +++ b/draft/man3/termios.3 @@ -50,25 +50,25 @@ .\" Updated 2007-05-01, Akihiro MOTOKI, LDP v2.46 .\" Updated 2007-09-06, Akihiro MOTOKI, LDP v2.64 .\" -.\"WORD: carriage return Éüµ¢(ʸ»ú) -.\"WORD: new line ²þ¹Ô(ʸ»ú) -.\"WORD: fill character ÊäŶʸ»ú -.\"WORD: horizontal tab ¿åÊ¿¥¿¥Ö -.\"WORD: backspace ¸åÂà(ʸ»ú) -.\"WORD: vertical tab ¿âľ¥¿¥Ö -.\"WORD: feature test macro µ¡Ç½¸¡ºº¥Þ¥¯¥í +.\"WORD: carriage return 復帰(文字) +.\"WORD: new line 改行(文字) +.\"WORD: fill character 補填文字 +.\"WORD: horizontal tab 水平タブ +.\"WORD: backspace 後退(文字) +.\"WORD: vertical tab 垂直タブ +.\"WORD: feature test macro 機能検査マクロ .\" .TH TERMIOS 3 2010-06-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O termios, tcgetattr, tcsetattr, tcsendbreak, tcdrain, tcflush, tcflow, .\"O cfmakeraw, cfgetospeed, cfgetispeed, cfsetispeed, cfsetospeed, cfsetspeed \- .\"O get and set terminal attributes, line control, get and set baud rate -.SH ̾Á° +.SH 名前 termios, tcgetattr, tcsetattr, tcsendbreak, tcdrain, tcflush, tcflow, cfmakeraw, cfgetospeed, cfgetispeed, cfsetispeed, cfsetospeed, cfsetspeed \- -¥¿¡¼¥ß¥Ê¥ë°À­¤Î¼èÆÀ¡¦ÀßÄê¡¢¥é¥¤¥óÀ©¸æ¡¢¥Ü¡¼¥ì¡¼¥È¤Î¼èÆÀ¡¦ÀßÄê +ターミナル属性の取得・設定、ライン制御、ボーレートの取得・設定 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .br @@ -103,29 +103,29 @@ cfmakeraw, cfgetospeed, cfgetispeed, cfsetispeed, cfsetospeed, cfsetspeed \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR cfsetspeed (), .BR cfmakeraw (): _BSD_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The termios functions describe a general terminal interface that is .\"O provided to control asynchronous communications ports. -termios ´Ø¿ô·²¤Ï¡¢ÈóƱ´üÄÌ¿®¥Ý¡¼¥È¤òÀ©¸æ¤¹¤ë¤¿¤á¤ÎÈÆÍÑ -¥¿¡¼¥ß¥Ê¥ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ç¤¢¤ë¡£ +termios 関数群は、非同期通信ポートを制御するための汎用 +ターミナルインタフェースである。 .\"O .SS "The termios structure" -.SS "termios ¹½Â¤ÂÎ" +.SS "termios 構造体" .LP .\"O Many of the functions described here have a \fItermios_p\fP argument .\"O that is a pointer to a \fItermios\fP structure. .\"O This structure contains at least the following members: -¤³¤³¤Ë¼¨¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤Î¿¤¯¤Ï¡¢°ú¤­¿ô¤Ë \fItermios_p\fP ¤òÍѤ¤¤ë¡£ -¤³¤Î°ú¤­¿ô¤Ï \fItermios\fP ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤³¤Î¹½Â¤ÂΤˤϾ¯¤Ê¤¯¤È¤â°Ê²¼¤Ë¼¨¤¹¥á¥ó¥Ð¤¬´Þ¤Þ¤ì¤ë: +ここに示されている関数の多くは、引き数に \fItermios_p\fP を用いる。 +この引き数は \fItermios\fP 構造体へのポインタである。 +この構造体には少なくとも以下に示すメンバが含まれる: .sp .in +4n .nf @@ -143,28 +143,28 @@ cc_t c_cc[NCCS]; /* control chars */ .\"O only exposed if a specific feature test macro (see .\"O .BR feature_test_macros (7)) .\"O is defined, as noted in brackets ("[]"). -°Ê²¼¤Ë¡¢¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Ë³ä¤êÅö¤Æ²Äǽ¤ÊÃͤˤĤ¤¤ÆÀâÌÀ¤¹¤ë¡£ -ºÇ½é¤Î 4 ¤Ä¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¥Õ¥£¡¼¥ë¥É¤Ç¤Ï¡¢ -´Ø·¸¤¹¤ë¥Õ¥é¥°¤ÎÄêµÁ¤Î¤¤¤¯¤Ä¤«¤Ï¡¢ÆÃÄê¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í +以下に、これらのフィールドに割り当て可能な値について説明する。 +最初の 4 つのビットマスクフィールドでは、 +関係するフラグの定義のいくつかは、特定の機能検査マクロ .RB ( feature_test_macros (7) -»²¾È) ¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë¤Î¤ß¸ø³«¤µ¤ì¤ë¡£ -ɬÍפʵ¡Ç½¸¡ºº¥Þ¥¯¥í¤Ï³Ñ³ç¸Ì ("[]") Æâ¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ +参照) が定義された場合にのみ公開される。 +必要な機能検査マクロは角括弧 ("[]") 内に書かれている。 .PP .\"O In the descriptions below, "not in POSIX" means that the .\"O value is not specified in POSIX.1-2001, .\"O and "XSI" means that the value is specified in POSIX.1-2001 .\"O as part of the XSI extension. -°Ê²¼¤ÎÀâÌÀ¤Ç¡¢ "POSIX ¤Ë¤Ï¤Ê¤¤" ¤Ï -¤½¤ÎÃͤ¬ POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò°ÕÌ£¤·¡¢ -"XSI" ¤Ï¤½¤ÎÃͤ¬ POSIX.1-2001 ¤Î XSI ³ÈÄ¥¤Ç -µ¬Äꤵ¤ì¤Æ¤¤¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +以下の説明で、 "POSIX にはない" は +その値が POSIX.1-2001 で規定されていないことを意味し、 +"XSI" はその値が POSIX.1-2001 の XSI 拡張で +規定されていることを意味する。 .PP .\"O \fIc_iflag\fP flag constants: -\fIc_iflag\fP ¥Õ¥é¥°¤Ë¤Ï°Ê²¼¤ÎÍ×ÁǤò»ØÄê¤Ç¤­¤ë: +\fIc_iflag\fP フラグには以下の要素を指定できる: .TP .B IGNBRK .\"O Ignore BREAK condition on input. -ÆþÎÏÃæ¤Î BREAK ¿®¹æ¤ò̵»ë¤¹¤ë¡£ +入力中の BREAK 信号を無視する。 .TP .B BRKINT .\"O If \fBIGNBRK\fP is set, a BREAK is ignored. @@ -173,22 +173,22 @@ cc_t c_cc[NCCS]; /* control chars */ .\"O queues to be flushed, and if the terminal is the controlling .\"O terminal of a foreground process group, it will cause a .\"O \fBSIGINT\fP to be sent to this foreground process group. -\fBIGNBRK\fP ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢BREAK ¿®¹æ¤Ï̵»ë¤µ¤ì¤ë¡£ -\fBIGNBRK\fP ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢\fBBRKINT\fP ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ -BREAK ¿®¹æ¤Ë¤è¤Ã¤ÆÆþ½ÐÎÏ¥­¥å¡¼¤¬¥Õ¥é¥Ã¥·¥å¤µ¤ì¡¢ -¤µ¤é¤Ë¡¢Ã¼Ëö¤¬¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÎÀ©¸æüËö¤Î¾ì¹ç¤Ï¡¢ -¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë \fBSIGINT\fP ¤¬Á÷¤é¤ì¤ë¡£ +\fBIGNBRK\fP が設定されている場合は、BREAK 信号は無視される。 +\fBIGNBRK\fP が設定されていないが、\fBBRKINT\fP が設定されている場合は、 +BREAK 信号によって入出力キューがフラッシュされ、 +さらに、端末がフォアグラウンドプロセスグループの制御端末の場合は、 +フォアグラウンドプロセスグループに \fBSIGINT\fP が送られる。 .\"O When neither \fBIGNBRK\fP nor \fBBRKINT\fP are set, a BREAK .\"O reads as a null byte (\(aq\\0\(aq), except when \fBPARMRK\fP is set, .\"O in which case it reads as the sequence \\377 \\0 \\0. -\fBIGNBRK\fP ¤â \fBBRKINT\fP ¤âÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -BREAK ¤ò NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤È¤·¤ÆÆɤ߹þ¤à¡£ -¤¿¤À¤·¡¢\fBPARMRK\fP ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï \\377 \\0 \\0 ¤Î¥·¡¼¥±¥ó¥¹¤È¤·¤Æ -Æɤ߹þ¤à¡£ +\fBIGNBRK\fP も \fBBRKINT\fP も設定されていない場合、 +BREAK を NULL バイト (\(aq\\0\(aq) として読み込む。 +ただし、\fBPARMRK\fP が設定されている場合は \\377 \\0 \\0 のシーケンスとして +読み込む。 .TP .B IGNPAR .\"O Ignore framing errors and parity errors. -¥Õ¥ì¡¼¥à¥¨¥é¡¼¤ª¤è¤Ó¥Ñ¥ê¥Æ¥£¥¨¥é¡¼¤ò̵»ë¤¹¤ë¡£ +フレームエラーおよびパリティエラーを無視する。 .TP .B PARMRK .\"O If \fBIGNPAR\fP is not set, prefix a character with a parity error or @@ -196,110 +196,110 @@ BREAK .\"O If neither \fBIGNPAR\fP nor \fBPARMRK\fP .\"O is set, read a character with a parity error or framing error .\"O as \\0. -\fBIGNPAR\fP ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¥Ñ¥ê¥Æ¥£¥¨¥é¡¼¤¢¤ë¤¤¤Ï¥Õ¥ì¡¼¥à¥¨¥é¡¼ -¤ÎȯÀ¸¤·¤¿Ê¸»ú¤ÎÁ°¤Ë \\377 \\0 ¤òÉղ乤롣\fBIGNPAR\fP ¤â \fBPARMRK\fP ¤â -ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¥Ñ¥ê¥Æ¥£¥¨¥é¡¼¤¢¤ë¤¤¤Ï¥Õ¥ì¡¼¥à¥¨¥é¡¼¤ÎȯÀ¸¤·¤¿Ê¸»ú¤ò -\\0 ¤È¤·¤ÆÆɤ߹þ¤à¡£ +\fBIGNPAR\fP が設定されていない場合、パリティエラーあるいはフレームエラー +の発生した文字の前に \\377 \\0 を付加する。\fBIGNPAR\fP も \fBPARMRK\fP も +設定されていない場合、パリティエラーあるいはフレームエラーの発生した文字を +\\0 として読み込む。 .TP .B INPCK .\"O Enable input parity checking. -ÆþÎϤΥѥê¥Æ¥£¥Á¥§¥Ã¥¯¤òÍ­¸ú¤Ë¤¹¤ë¡£ +入力のパリティチェックを有効にする。 .TP .B ISTRIP .\"O Strip off eighth bit. -8 ¥Ó¥Ã¥ÈÌܤòÍî¤È¤¹¡£ +8 ビット目を落とす。 .TP .B INLCR .\"O Translate NL to CR on input. -ÆþÎϤΠNL (New Line: ²þ¹Ôʸ»ú) ¤ò CR (Carriage Return: Éüµ¢Ê¸»ú) ¤Ë -ÃÖ¤­´¹¤¨¤ë¡£ +入力の NL (New Line: 改行文字) を CR (Carriage Return: 復帰文字) に +置き換える。 .TP .B IGNCR .\"O Ignore carriage return on input. -ÆþÎϤΠCR ¤ò̵»ë¤¹¤ë¡£ +入力の CR を無視する。 .TP .B ICRNL .\"O Translate carriage return to newline on input (unless \fBIGNCR\fP is set). -(\fBIGNCR\fP ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç) ÆþÎϤΠCR ¤ò NL ¤ËÃÖ¤­´¹¤¨¤ë¡£ +(\fBIGNCR\fP が設定されていない場合) 入力の CR を NL に置き換える。 .TP .B IUCLC .\"O (not in POSIX) Map uppercase characters to lowercase on input. -(POSIX ¤Ë¤Ï¤Ê¤¤) ÆþÎϤÎÂçʸ»ú¤ò¾®Ê¸»ú¤ËÃÖ¤­´¹¤¨¤ë¡£ +(POSIX にはない) 入力の大文字を小文字に置き換える。 .TP .B IXON .\"O Enable XON/XOFF flow control on output. -½ÐÎϤΠXON/XOFF ¥Õ¥í¡¼À©¸æ¤òÍ­¸ú¤Ë¤¹¤ë¡£ +出力の XON/XOFF フロー制御を有効にする。 .TP .B IXANY .\"O (XSI) Typing any character will restart stopped output. .\"O (The default is to allow just the START character to restart output.) -(XSI) Ǥ°Õ¤Îʸ»ú¤òÆþÎϤ¹¤ë¤È¡¢Ää»ß¤·¤Æ¤¤¤¿½ÐÎϤòºÆ³«¤¹¤ë -(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢START ʸ»ú¤Ç¤Î¤ß½ÐÎϤ¬ºÆ³«¤µ¤ì¤ë)¡£ +(XSI) 任意の文字を入力すると、停止していた出力を再開する +(デフォルトでは、START 文字でのみ出力が再開される)。 .TP .B IXOFF .\"O Enable XON/XOFF flow control on input. -ÆþÎϤΠXON/XOFF ¥Õ¥í¡¼À©¸æ¤òÍ­¸ú¤Ë¤¹¤ë¡£ +入力の XON/XOFF フロー制御を有効にする。 .TP .B IMAXBEL .\"O (not in POSIX) Ring bell when input queue is full. .\"O Linux does not implement this bit, and acts as if it is always set. -(POSIX ¤Ë¤Ï¤Ê¤¤) ÆþÎÏ¥­¥å¡¼¤¬°ìÇդλþ¤Ë¥Ù¥ë¤òÌĤ餹¡£ -Linux ¤Ç¤Ï¤³¤Î¥Ó¥Ã¥È¤Ï¼ÂÁõ¤µ¤ì¤Æ¤ª¤é¤º¡¢ -¾ï¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤«¤Î¤è¤¦¤Ë¿¶Éñ¤¦¡£ +(POSIX にはない) 入力キューが一杯の時にベルを鳴らす。 +Linux ではこのビットは実装されておらず、 +常にセットされているかのように振舞う。 .TP .\"O .BR IUTF8 " (since Linux 2.6.4)" -.BR IUTF8 " (Linux 2.6.4 °Ê¹ß)" +.BR IUTF8 " (Linux 2.6.4 以降)" .\"O (not in POSIX) Input is UTF8; .\"O this allows character-erase to be correctly performed in cooked mode. -(POSIX ¤Ë¤Ï¤Ê¤¤) ÆþÎϤ¬ UTF8 ¤Ç¤¢¤ë; -¤³¤ì¤Ë¤è¤ê cooked mode ¤Çʸ»úºï½ü (character-erase) ¤ò -Àµ¤·¤¯µ¡Ç½¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +(POSIX にはない) 入力が UTF8 である; +これにより cooked mode で文字削除 (character-erase) を +正しく機能させることができる。 .PP .\"O \fIc_oflag\fP flag constants defined in POSIX.1: -POSIX.1 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë \fIc_oflag\fP ¥Õ¥é¥°¤ò°Ê²¼¤Ë¼¨¤¹: +POSIX.1 で定義されている \fIc_oflag\fP フラグを以下に示す: .TP .B OPOST .\"O Enable implementation-defined output processing. -¼ÂÁõ¤Ë°Í¸¤·¤¿½ÐÎϽèÍý¤òÍ­¸ú¤Ë¤¹¤ë¡£ +実装に依存した出力処理を有効にする。 .PP .\"O The remaining \fIc_oflag\fP flag constants are defined in POSIX.1-2001, .\"O unless marked otherwise. -»Ä¤ê¤Î \fIc_oflag\fP ¥Õ¥é¥°¤Ï¡¢Æõ­¤Î¤Ê¤¤¸Â¤ê POSIX.1-2001 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +残りの \fIc_oflag\fP フラグは、特記のない限り POSIX.1-2001 で定義されている。 .TP .B OLCUC .\"O (not in POSIX) Map lowercase characters to uppercase on output. -(POSIX ¤Ë¤Ï¤Ê¤¤) ½ÐÎÏ»þ¤Ë¾®Ê¸»ú¤òÂçʸ»ú¤ËÊÑ´¹¤¹¤ë¡£ +(POSIX にはない) 出力時に小文字を大文字に変換する。 .TP .B ONLCR .\"O (XSI) Map NL to CR-NL on output. -(XSI) ½ÐÎϤΠNL ¤ò CR-NL ¤ËÃÖ¤­´¹¤¨¤ë¡£ +(XSI) 出力の NL を CR-NL に置き換える。 .TP .B OCRNL .\"O Map CR to NL on output. -½ÐÎϤΠCR ¤ò NL ¤ËÃÖ¤­´¹¤¨¤ë¡£ +出力の CR を NL に置き換える。 .TP .B ONOCR .\"O Don't output CR at column 0. -0 ·åÌÜ¤Ç CR ¤ò½ÐÎϤ·¤Ê¤¤¡£ +0 桁目で CR を出力しない。 .TP .B ONLRET .\"O Don't output CR. -CR ¤ò½ÐÎϤ·¤Ê¤¤¡£ +CR を出力しない。 .TP .B OFILL .\"O Send fill characters for a delay, rather than using a timed delay. -žÁ÷»þ´Ö¤òÃ٤餻¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ÊäŶʸ»ú (fill character) ¤òÁ÷¤ë¡£ -(ÌõÃí:ÆÃÄê¤Îʸ»ú¤ËÂФ·¤Æ¡¢Ã¼Ëö¦¤Î½èÍý¤òÂԤĤ¿¤á¤ËžÁ÷¤ò°ìÄê»þ´Ö -Ã٤餻¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤Þ¤¿¡¢ \fBOFILL\fP ¤ò»ØÄꤹ¤ë¤È -žÁ÷¤òÃ٤餻¤ëÂå¤ï¤ê¤ËÊäŶʸ»ú¤òÁ÷¤ë¡£) +転送時間を遅らせるのではなく、補填文字 (fill character) を送る。 +(訳注:特定の文字に対して、端末側の処理を待つために転送を一定時間 +遅らせることができる。また、 \fBOFILL\fP を指定すると +転送を遅らせる代わりに補填文字を送る。) .TP .B OFDEL .\"O (not in POSIX) Fill character is ASCII DEL (0177). .\"O If unset, fill character is ASCII NUL (\(aq\\0\(aq). .\"O (Not implemented on Linux.) -(POSIX ¤Ë¤Ï¤Ê¤¤) ÊäŶʸ»ú¤ò ASCII DEL ¤Ë¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï ASCII NUL (\(aq\\0\(aq) ¤Ë¤Ê¤ë¡£ -(Linux ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤) +(POSIX にはない) 補填文字を ASCII DEL にする。 +このフラグが設定されていない場合は ASCII NUL (\(aq\\0\(aq) になる。 +(Linux では実装されていない) .TP .B NLDLY .\"O Newline delay mask. @@ -310,13 +310,13 @@ CR .\"O .B _SVID_SOURCE .\"O or .\"O .BR _XOPEN_SOURCE ] -NL ¤ÎÃÙ±ä¤òÀßÄꤹ¤ë¡£ÃÍ¤Ï \fBNL0\fP (ÃÙ±ä¤Ê¤·) ¤ª¤è¤Ó \fBNL1\fP ¤Ç¤¢¤ë¡£ +NL の遅延を設定する。値は \fBNL0\fP (遅延なし) および \fBNL1\fP である。 .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤« +か .B _XOPEN_SOURCE -¤¬É¬Í×] +が必要] .TP .B CRDLY .\"O Carriage return delay mask. @@ -327,14 +327,14 @@ NL .\"O .B _SVID_SOURCE .\"O or .\"O .BR _XOPEN_SOURCE ] -CR ¤ÎÃÙ±ä¤òÀßÄꤹ¤ë¡£ÃÍ¤Ï \fBCR0\fP (ÃÙ±ä¤Ê¤·), -\fBCR1\fP, \fBCR2\fP,\fBCR3\fP ¤Ç¤¢¤ë¡£ +CR の遅延を設定する。値は \fBCR0\fP (遅延なし), +\fBCR1\fP, \fBCR2\fP,\fBCR3\fP である。 .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤« +か .B _XOPEN_SOURCE -¤¬É¬Í×] +が必要] .TP .B TABDLY .\"O Horizontal tab delay mask. @@ -345,19 +345,19 @@ CR .\"O .B _SVID_SOURCE .\"O or .\"O .BR _XOPEN_SOURCE ] -¿åÊ¿¥¿¥Ö (horizontal tab) ¤ÎÃÙ±ä¤òÀßÄꤹ¤ë¡£ -ÃÍ¤Ï \fBTAB0\fP (ÃÙ±ä¤Ê¤·), -\fBTAB1\fP, \fBTAB2\fP, \fBTAB3\fP (\fBXTABS\fP) ¤Ç¤¢¤ë¡£ +水平タブ (horizontal tab) の遅延を設定する。 +値は \fBTAB0\fP (遅延なし), +\fBTAB1\fP, \fBTAB2\fP, \fBTAB3\fP (\fBXTABS\fP) である。 .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤« +か .B _XOPEN_SOURCE -¤¬É¬Í×] +が必要] .\"O A value of TAB3, that is, XTABS, expands tabs to spaces .\"O (with tab stops every eight columns). -XTAB3 (¤³¤ì¤Ï XTABS ¤ÈƱ¤¸¤Ç¤¢¤ë) ¤ÎÃͤϥ¿¥Ö¤ò¥¹¥Ú¡¼¥¹²¿¸Ä¤ËÊÑ´¹¤¹¤ë¤«¤ò¼¨¤¹ -(¥¿¥Ö¤Ï 8 ·åËè¤Ë»ß¤Þ¤ë)¡£ +XTAB3 (これは XTABS と同じである) の値はタブをスペース何個に変換するかを示す +(タブは 8 桁毎に止まる)。 .TP .B BSDLY .\"O Backspace delay mask. @@ -369,21 +369,21 @@ XTAB3 ( .\"O .B _SVID_SOURCE .\"O or .\"O .BR _XOPEN_SOURCE ] -¸åÂà (backspace) ¤ÎÃÙ±ä¤òÀßÄꤹ¤ë¡£ -ÃÍ¤Ï \fBBS0\fP (ÃÙ±ä¤Ê¤·) ¤¢¤ë¤¤¤Ï \fBBS1\fP ¤Ç¤¢¤ë¡£ -(¼ÂÁõ¤µ¤ì¤¿¤³¤È¤Ï¤Ê¤¤) +後退 (backspace) の遅延を設定する。 +値は \fBBS0\fP (遅延なし) あるいは \fBBS1\fP である。 +(実装されたことはない) .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤« +か .B _XOPEN_SOURCE -¤¬É¬Í×] +が必要] .TP .B VTDLY .\"O Vertical tab delay mask. .\"O Values are \fBVT0\fP or \fBVT1\fP. -¿âľ¥¿¥Ö (vertical tab) ¤ÎÃÙ±ä¤òÀßÄꤹ¤ë¡£ -ÃÍ¤Ï \fBVT0\fP (ÃÙ±ä¤Ê¤·) ¤¢¤ë¤¤¤Ï \fBVT1\fP ¤Ç¤¢¤ë¡£ +垂直タブ (vertical tab) の遅延を設定する。 +値は \fBVT0\fP (遅延なし) あるいは \fBVT1\fP である。 .TP .B FFDLY .\"O Form feed delay mask. @@ -394,17 +394,17 @@ XTAB3 ( .\"O .B _SVID_SOURCE .\"O or .\"O .BR _XOPEN_SOURCE ] -ÊÇÁ÷¤ê (form feed) ¤ÎÃÙ±ä¤òÀßÄꤹ¤ë¡£ -ÃÍ¤Ï \fBFF0\fP (ÃÙ±ä¤Ê¤·) ¤¢¤ë¤¤¤Ï \fBFF1\fP ¤Ç¤¢¤ë¡£ +頁送り (form feed) の遅延を設定する。 +値は \fBFF0\fP (遅延なし) あるいは \fBFF1\fP である。 .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤« +か .B _XOPEN_SOURCE -¤¬É¬Í×] +が必要] .PP .\"O \fIc_cflag\fP flag constants: -\fIc_cflag\fP ¥Õ¥é¥°¤Ï°Ê²¼¤ÎÄ̤ê: +\fIc_cflag\fP フラグは以下の通り: .TP .B CBAUD .\"O (not in POSIX) Baud speed mask (4+1 bits). @@ -412,11 +412,11 @@ XTAB3 ( .\"O .B _BSD_SOURCE .\"O or .\"O .BR _SVID_SOURCE ] -(POSIX ¤Ë¤Ï¤Ê¤¤) ¥Ü¡¼¥ì¡¼¥È¥Þ¥¹¥¯ (4+1 ¥Ó¥Ã¥È)¡£ +(POSIX にはない) ボーレートマスク (4+1 ビット)。 .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤¬É¬Í×] +が必要] .TP .B CBAUDEX .\"O (not in POSIX) Extra baud speed mask (1 bit), included in @@ -425,13 +425,13 @@ XTAB3 ( .\"O .B _BSD_SOURCE .\"O or .\"O .BR _SVID_SOURCE ] -(POSIX ¤Ë¤Ï¤Ê¤¤) ÄɲäΥܡ¼¥ì¡¼¥È¥Þ¥¹¥¯ (1 ¥Ó¥Ã¥È)¡£ +(POSIX にはない) 追加のボーレートマスク (1 ビット)。 .B CBAUD -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +に含まれている。 .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤¬É¬Í×] +が必要] .sp .\"O (POSIX says that the baud speed is stored in the .\"O .I termios @@ -448,61 +448,61 @@ XTAB3 ( .\"O .I sg_ispeed .\"O and .\"O .IR sg_ospeed .) -(POSIX ¤Ç¤Ï¡¢ +(POSIX では、 .I termios -¹½Â¤ÂΤ˳ÊǼ¤µ¤ì¤¿¥Ü¡¼¥ì¡¼¥È¤ÏÀµ³Î¤Ê¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢ -¥Ü¡¼¥ì¡¼¥È¤òÁàºî¤¹¤ë¤¿¤á¤Ë +構造体に格納されたボーレートは正確なものではなく、 +ボーレートを操作するために .BR cfgetispeed () -¤È +と .BR cfsetispeed () -¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¡£ +が提供されている。 .I c_cflag -Æâ¤Î +内の .B CBAUD -¤ÇÁªÂò¤µ¤ì¤¿¥Ó¥Ã¥È¤ò»È¤¦¥·¥¹¥Æ¥à¤â¤¢¤ì¤Ð¡¢ +で選択されたビットを使うシステムもあれば、 .I sg_ispeed -¤ä +や .I sg_ospeed -¤È¤¤¤Ã¤¿ÆÈΩ¤·¤¿¥Õ¥£¡¼¥ë¥É¤ò»È¤¦¤â¤Î¤â¤¢¤ë¡£) +といった独立したフィールドを使うものもある。) .TP .B CSIZE .\"O Character size mask. .\"O Values are \fBCS5\fP, \fBCS6\fP, \fBCS7\fP, or \fBCS8\fP. -ʸ»ú¥µ¥¤¥º¤òÀßÄꤹ¤ë¡£ -ÃÍ¤Ï \fBCS5\fP, \fBCS6\fP, \fBCS7\fP, \fBCS8\fP ¤Ç¤¢¤ë¡£ +文字サイズを設定する。 +値は \fBCS5\fP, \fBCS6\fP, \fBCS7\fP, \fBCS8\fP である。 .TP .B CSTOPB .\"O Set two stop bits, rather than one. -¥¹¥È¥Ã¥×¥Ó¥Ã¥È¤ò 1 ¤Ç¤Ï¤Ê¤¯ 2 ¤Ë¤¹¤ë¡£ +ストップビットを 1 ではなく 2 にする。 .TP .B CREAD .\"O Enable receiver. -¼õ¿®¤òÍ­¸ú¤Ë¤¹¤ë¡£ +受信を有効にする。 .TP .B PARENB .\"O Enable parity generation on output and parity checking for input. -½ÐÎϤ˥ѥê¥Æ¥£¤òÉղä·¡¢ÆþÎϤΥѥê¥Æ¥£¥Á¥§¥Ã¥¯¤ò¹Ô¤¦¡£ +出力にパリティを付加し、入力のパリティチェックを行う。 .TP .B PARODD .\"O If set, then parity for input and output is odd; .\"O otherwise even parity is used. -ÀßÄꤵ¤ì¤ë¤È¡¢ÆþÎϤª¤è¤Ó½ÐÎϤËÂФ¹¤ë¥Ñ¥ê¥Æ¥£¤¬´ñ¿ô¥Ñ¥ê¥Æ¥£¤È¤Ê¤ë¡£ -ÀßÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢¶ö¿ô¥Ñ¥ê¥Æ¥£¤¬»ÈÍѤµ¤ì¤ë¡£ +設定されると、入力および出力に対するパリティが奇数パリティとなる。 +設定されない場合、偶数パリティが使用される。 .TP .B HUPCL .\"O Lower modem control lines after last process closes the device (hang up). -ºÇ¸å¤Î¥×¥í¥»¥¹¤¬¥Ç¥Ð¥¤¥¹¤ò¥¯¥í¡¼¥º¤·¤¿¸å¡¢¥â¥Ç¥à¤ÎÀ©¸æÀþ¤ò low ¤Ë¤¹¤ë -(ÀÚÃǤ¹¤ë)¡£ +最後のプロセスがデバイスをクローズした後、モデムの制御線を low にする +(切断する)。 .TP .B CLOCAL .\"O Ignore modem control lines. -¥â¥Ç¥à¤ÎÀ©¸æÀþ¤ò̵»ë¤¹¤ë¡£ +モデムの制御線を無視する。 .TP .B LOBLK .\"O (not in POSIX) Block output from a noncurrent shell layer. .\"O For use by \fBshl\fP (shell layers). (Not implemented on Linux.) -(POSIX ¤Ë¤Ï¤Ê¤¤) ¸½ºß¤Î¥·¥§¥ëÁذʳ°¤«¤é¤Î½ÐÎϤòÍÞÀ©¤¹¤ë¡£ - \fBshl\fP (¥·¥§¥ëÁØ) ¤ÇÍѤ¤¤é¤ì¤ë¡£(Linux ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤) +(POSIX にはない) 現在のシェル層以外からの出力を抑制する。 + \fBshl\fP (シェル層) で用いられる。(Linux では実装されていない) .TP .B CIBAUD .\"O (not in POSIX) Mask for input speeds. @@ -519,19 +519,19 @@ XTAB3 ( .\"O or .\"O .BR _SVID_SOURCE ] .\"O (Not implemented on Linux.) -(POSIX ¤Ë¤Ï¤Ê¤¤) ÆþÎÏ®Å٤Υޥ¹¥¯¡£ +(POSIX にはない) 入力速度のマスク。 .B CIBAUD -¥Ó¥Ã¥È¤Î¤¿¤á¤ÎÃÍ¤Ï +ビットのための値は .B CBAUD -¥Ó¥Ã¥È¤Î¤¿¤á¤ÎÃͤÈƱ¤¸¤Ç¤¢¤ê¡¢ -º¸¤Ë +ビットのための値と同じであり、 +左に .B IBSHIFT -¥Ó¥Ã¥È¥·¥Õ¥È¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +ビットシフトしたものである。 .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤¬É¬Í×] -(Linux ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤) +が必要] +(Linux では実装されていない) .TP .B CMSPAR .\"O (not in POSIX) @@ -545,16 +545,16 @@ XTAB3 ( .\"O .B _BSD_SOURCE .\"O or .\"O .BR _SVID_SOURCE ] -(POSIX ¤Ë¤Ï¤Ê¤¤) -(°ìÉô¤Î¥·¥ê¥¢¥ë¥Ç¥Ð¥¤¥¹¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë) -¡Ö¥¹¥Æ¥£¥Ã¥¯ (stick)¡×¥Ñ¥ê¥Æ¥£ (¥Þ¡¼¥¯/¥¹¥Ú¡¼¥¹ ¥Ñ¥ê¥Æ¥£)¤ò»ÈÍѤ¹¤ë¡£ +(POSIX にはない) +(一部のシリアルデバイスでサポートされている) +「スティック (stick)」パリティ (マーク/スペース パリティ)を使用する。 .B PARODD -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¥Ñ¥ê¥Æ¥£¥Ó¥Ã¥È¤Ï¾ï¤Ë 1 ¤È¤Ê¤ê¡¢ -ÀßÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï¾ï¤Ë 0 ¤È¤Ê¤ë¡£ +が設定された場合パリティビットは常に 1 となり、 +設定されない場合は常に 0 となる。 .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤¬É¬Í×] +が必要] .TP .B CRTSCTS .\"O (not in POSIX) Enable RTS/CTS (hardware) flow control. @@ -562,24 +562,24 @@ XTAB3 ( .\"O .B _BSD_SOURCE .\"O or .\"O .BR _SVID_SOURCE ] -(POSIX ¤Ë¤Ï¤Ê¤¤) RTS/CTS (¥Ï¡¼¥É¥¦¥§¥¢) ¥Õ¥í¡¼À©¸æ¤òÍ­¸ú¤Ë¤¹¤ë¡£ +(POSIX にはない) RTS/CTS (ハードウェア) フロー制御を有効にする。 .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤¬É¬Í×] +が必要] .PP .\"O \fIc_lflag\fP flag constants: -\fIc_lflag\fP ¥Õ¥é¥°¤Ï°Ê²¼¤ÎÄ̤ê: +\fIc_lflag\fP フラグは以下の通り: .TP .B ISIG .\"O When any of the characters INTR, QUIT, SUSP, or DSUSP are received, .\"O generate the corresponding signal. -INTR, QUIT, SUSP, DSUSP ¤Îʸ»ú¤ò¼õ¿®¤·¤¿»þ¡¢Âбþ¤¹¤ë¥·¥°¥Ê¥ë¤ò -ȯÀ¸¤µ¤»¤ë¡£ +INTR, QUIT, SUSP, DSUSP の文字を受信した時、対応するシグナルを +発生させる。 .TP .B ICANON .\"O Enable canonical mode (described below). -¥«¥Î¥Ë¥«¥ë¥â¡¼¥É¤òÍ­¸ú¤Ë¤¹¤ë (²¼µ­»²¾È)¡£ +カノニカルモードを有効にする (下記参照)。 .TP .B XCASE .\"O (not in POSIX; not supported under Linux) @@ -587,46 +587,46 @@ INTR, QUIT, SUSP, DSUSP .\"O Input is converted to lowercase, except for characters preceded by \\. .\"O On output, uppercase characters are preceded by \\ and lowercase .\"O characters are converted to uppercase. -(POSIX ¤Ë¤Ï¤Ê¤¤; Linux ¤Ç¤ÏÂбþ¤·¤Æ¤¤¤Ê¤¤) -\fBICANON\fP ¤¬Æ±»þ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢Ã¼Ëö¤ÏÂçʸ»ú¤Î¤ß¤¬Í­¸ú¤Ç¤¢¤ë¡£ -ÆþÎϤµ¤ì¤¿Ê¸»ú¤Ï \\ ¤¬ÉÕ¤¤¤¿Ê¸»ú¤ò½ü¤¤¤Æ¾®Ê¸»ú¤ËÊÑ´¹¤µ¤ì¤ë¡£ -½ÐÎÏ»þ¤Ï¡¢Âçʸ»ú¤ÎÁ°¤Ë \\ ¤¬ÉÕ¤­¡¢¾®Ê¸»ú¤ÏÂçʸ»ú¤ËÊÑ´¹¤µ¤ì¤ë¡£ +(POSIX にはない; Linux では対応していない) +\fBICANON\fP が同時に設定された場合、端末は大文字のみが有効である。 +入力された文字は \\ が付いた文字を除いて小文字に変換される。 +出力時は、大文字の前に \\ が付き、小文字は大文字に変換される。 .\"O [requires _BSD_SOURCE or _SVID_SOURCE or _XOPEN_SOURCE] .\"O .\" glibc is probably now wrong to allow .RB [ _BSD_SOURCE -¤¬ +が .B _SVID_SOURCE -¤« +か .B _XOPEN_SOURCE -¤¬É¬Í×] -.\" °Ê²¼¤Ï¤ª¤½¤é¤¯ glibc ¤Î´Ö°ã¤¤¤Ç¤¢¤í¤¦¡£ +が必要] +.\" 以下はおそらく glibc の間違いであろう。 .\"O .\" Define .\"O .\" .B _XOPEN_SOURCE .\"O .\" to expose .\"O .\" .BR XCASE . .\" .B XCASE -.\" ¤ò¸ø³«¤¹¤ë¤Ë¤Ï +.\" を公開するには .\" .B _XOPEN_SOURCE -.\" ¤òÄêµÁ¤¹¤ë¤³¤È¡£ +.\" を定義すること。 .TP .B ECHO .\"O Echo input characters. -ÆþÎϤµ¤ì¤¿Ê¸»ú¤ò¥¨¥³¡¼¤¹¤ë¡£ +入力された文字をエコーする。 .TP .B ECHOE .\"O If \fBICANON\fP is also set, the ERASE character erases the preceding .\"O input character, and WERASE erases the preceding word. -\fBICANON\fP ¤âƱ»þ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ERASE ʸ»ú¤ÏÁ°¤Îʸ»ú¤òºï½ü¤·¡¢ -WERASE ʸ»ú¤ÏÁ°¤Îñ¸ì¤òºï½ü¤¹¤ë¡£ +\fBICANON\fP も同時に設定された場合、ERASE 文字は前の文字を削除し、 +WERASE 文字は前の単語を削除する。 .TP .B ECHOK .\"O If \fBICANON\fP is also set, the KILL character erases the current line. -\fBICANON\fP ¤âƱ»þ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢KILL ʸ»ú¤Ï¸½ºß¤Î¹Ô¤òºï½ü¤¹¤ë¡£ +\fBICANON\fP も同時に設定された場合、KILL 文字は現在の行を削除する。 .TP .B ECHONL .\"O If \fBICANON\fP is also set, echo the NL character even if ECHO is not set. -\fBICANON\fP ¤âƱ»þ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ -ECHO ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¯¤Æ¤â NL ʸ»ú¤ò¥¨¥³¡¼¤¹¤ë¡£ +\fBICANON\fP も同時に設定された場合、 +ECHO が設定されていなくても NL 文字をエコーする。 .TP .B ECHOCTL .\"O (not in POSIX) If \fBECHO\fP is also set, ASCII control signals other than @@ -639,14 +639,14 @@ ECHO .\"O .B _BSD_SOURCE .\"O or .\"O .BR _SVID_SOURCE ] -(POSIX ¤Ë¤Ï¤Ê¤¤) \fBECHO\fP ¤âƱ»þ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ -TAB, NL, START, STOP ¤Î ASCII À©¸æʸ»ú¤¬ \fB^X\fP ¤È¤·¤Æ¥¨¥³¡¼¤µ¤ì¤ë¡£ -X ¤ÏÀ©¸æʸ»ú¤è¤ê ASCII ¥³¡¼¥É¤Ç 0x10 ¤À¤±Â礭¤Êʸ»ú¤Ç¤¢¤ë¡£ -Î㤨¤Ðʸ»ú 0x28 (BS) ¤Ï \fB^H\fP ¤È¥¨¥³¡¼¤µ¤ì¤ë¡£ +(POSIX にはない) \fBECHO\fP も同時に設定された場合、 +TAB, NL, START, STOP の ASCII 制御文字が \fB^X\fP としてエコーされる。 +X は制御文字より ASCII コードで 0x10 だけ大きな文字である。 +例えば文字 0x28 (BS) は \fB^H\fP とエコーされる。 .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤¬É¬Í×] +が必要] .TP .B ECHOPRT .\"O (not in POSIX) If \fBICANON\fP and \fBIECHO\fP are also set, characters @@ -655,12 +655,12 @@ X .\"O .B _BSD_SOURCE .\"O or .\"O .BR _SVID_SOURCE ] -(POSIX ¤Ë¤Ï¤Ê¤¤) \fBICANON\fP ¤ª¤è¤Ó \fBIECHO\fP ¤¬Æ±»þ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -ºï½ü¤µ¤ì¤¿Ê¸»ú¤âɽ¼¨¤µ¤ì¤ë¡£ +(POSIX にはない) \fBICANON\fP および \fBIECHO\fP が同時に設定されている場合、 +削除された文字も表示される。 .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤¬É¬Í×] +が必要] .TP .B ECHOKE .\"O (not in POSIX) If \fBICANON\fP is also set, KILL is echoed by erasing @@ -669,19 +669,19 @@ X .\"O .B _BSD_SOURCE .\"O or .\"O .BR _SVID_SOURCE ] -(POSIX ¤Ë¤Ï¤Ê¤¤) \fBICANON\fP ¤âÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ -KILL ¤¬¹Ô¤Î³Æʸ»ú¤ò¾Ãµî¤¹¤ëÂå¤ï¤ê¤Ë¥¨¥³¡¼¤µ¤ì¤ë¡£ -¤³¤ì¤Ï \fBECHOE\fP ¤ª¤è¤Ó \fBECHOPRT\fP ¤ò»ØÄꤹ¤ë¤³¤È¤ÈÅù¤·¤¤¡£ +(POSIX にはない) \fBICANON\fP も設定された場合、 +KILL が行の各文字を消去する代わりにエコーされる。 +これは \fBECHOE\fP および \fBECHOPRT\fP を指定することと等しい。 .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤¬É¬Í×] +が必要] .TP .B DEFECHO .\"O (not in POSIX) Echo only when a process is reading. .\"O (Not implemented on Linux.) -(POSIX ¤Ë¤Ï¤Ê¤¤) ¥×¥í¥»¥¹¤¬Æɤ߹þ¤ó¤À¤È¤­¤Ë¤À¤±¥¨¥³¡¼¤¹¤ë¡£ -(Linux ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤) +(POSIX にはない) プロセスが読み込んだときにだけエコーする。 +(Linux では実装されていない) .TP .B FLUSHO .\"O (not in POSIX; not supported under Linux) @@ -692,29 +692,29 @@ KILL .\"O .B _BSD_SOURCE .\"O or .\"O .BR _SVID_SOURCE ] -(POSIX ¤Ë¤Ï¤Ê¤¤; Linux ¤Ç¤ÏÂбþ¤·¤Æ¤¤¤Ê¤¤) -½ÐÎϤò¥Õ¥é¥Ã¥·¥å¤¹¤ë¡£¤³¤Î¥Õ¥é¥°¤Ï DISCARD ʸ»ú¤òÆþÎϤ¹¤ë¤³¤È¤ÇÀÚÂؤ¨¤é¤ì¤ë¡£ +(POSIX にはない; Linux では対応していない) +出力をフラッシュする。このフラグは DISCARD 文字を入力することで切替えられる。 .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤¬É¬Í×] +が必要] .TP .B NOFLSH .\"O Disable flushing the input and output queues when generating signals for the .\"O INT, QUIT, and SUSP characters. .\" Stevens lets SUSP only flush the input queue -INT, QUIT, SUSP ʸ»ú¤ËÂбþ¤¹¤ë¥·¥°¥Ê¥ë¤òȯÀ¸¤¹¤ëºÝ¤Î -ÆþÎÏ¡¦½ÐÎÏ¥­¥å¡¼¤Î¥Õ¥é¥Ã¥·¥å¤ò̵¸ú¤Ë¤¹¤ë¡£ +INT, QUIT, SUSP 文字に対応するシグナルを発生する際の +入力・出力キューのフラッシュを無効にする。 .TP .B TOSTOP .\"O Send the .\"O .B SIGTTOU .\"O signal to the process group of a background process .\"O which tries to write to its controlling terminal. -¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÇÀ©¸æüËö¤Ø -ʸ»ú¤ò½ÐÎϤ·¤è¤¦¤È¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤ËÂФ·¤Æ +バックグラウンドプロセスのプロセスグループで制御端末へ +文字を出力しようとしているプロセスに対して .B SIGTTOU -¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +シグナルを送る。 .TP .B PENDIN .\"O (not in POSIX; not supported under Linux) @@ -726,28 +726,28 @@ INT, QUIT, SUSP ʸ .\"O .B _BSD_SOURCE .\"O or .\"O .BR _SVID_SOURCE ] -(POSIX ¤Ë¤Ï¤Ê¤¤; Linux ¤Ç¤ÏÂбþ¤·¤Æ¤¤¤Ê¤¤) -¼¡¤Îʸ»ú¤òÆɤ߹þ¤ó¤À»þ¡¢ÆþÎÏ¥­¥å¡¼Ãæ¤ÎÁ´Ê¸»ú¤òºÆɽ¼¨¤¹¤ë¡£ +(POSIX にはない; Linux では対応していない) +次の文字を読み込んだ時、入力キュー中の全文字を再表示する。 .RB ( bash (1) -¤ÏÆþÎϹԤò¤³¤Î¤è¤¦¤Ë½èÍý¤·¤Æ¤¤¤ë¡£) +は入力行をこのように処理している。) .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤¬É¬Í×] +が必要] .TP .B IEXTEN .\"O Enable implementation-defined input processing. .\"O This flag, as well as \fBICANON\fP must be enabled for the .\"O special characters EOL2, LNEXT, REPRINT, WERASE to be interpreted, .\"O and for the \fBIUCLC\fP flag to be effective. -¼ÂÁõ°Í¸¤ÎÆþÎϽèÍý¤òÍ­¸ú¤Ë¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï¡¢Æüìʸ»ú¤Ç¤¢¤ë EOL2, LNEXT, REPRINT, WERASE ¤ä¡¢ -\fBIUCLC\fP ¥Õ¥é¥°¤òÍ­¸ú¤Ë¤¹¤ë¤¿¤á¤ËɬÍפǤ¢¤ë¡£ +実装依存の入力処理を有効にする。 +このフラグは、特殊文字である EOL2, LNEXT, REPRINT, WERASE や、 +\fBIUCLC\fP フラグを有効にするために必要である。 .PP .\"O The \fIc_cc\fP array defines the special control characters. .\"O The symbolic indices (initial values) and meaning are: -\fIc_cc\fP ÇÛÎó¤ÏÆüì¤ÊÀ©¸æʸ»ú¤òÄêµÁ¤·¤Æ¤¤¤ë¡£ -¥·¥ó¥Ü¥ë¤Î°ìÍ÷ (½é´üÃÍ) ¤È°ÕÌ£¤Ï°Ê²¼¤ÎÄ̤ꡣ +\fIc_cc\fP 配列は特殊な制御文字を定義している。 +シンボルの一覧 (初期値) と意味は以下の通り。 .TP .B VINTR .\"O (003, ETX, Ctrl-C, or also 0177, DEL, rubout) @@ -758,12 +758,12 @@ INT, QUIT, SUSP ʸ .\"O Recognized when .\"O .B ISIG .\"O is set, and then not passed as input. -(003, ETX, Ctrl-C ¤« 0177, DEL, rubout) -³ä¤ê¹þ¤ßʸ»ú¡£ +(003, ETX, Ctrl-C か 0177, DEL, rubout) +割り込み文字。 .B SIGINT -¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +シグナルを送る。 .B ISIG -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£ +がセットされている場合に認識し、入力には渡されない。 .TP .B VQUIT .\"O (034, FS, Ctrl-\e) @@ -775,11 +775,11 @@ INT, QUIT, SUSP ʸ .\"O .B ISIG .\"O is set, and then not passed as input. (034, FS, Ctrl-\e) -½ªÎ»Ê¸»ú¡£ +終了文字。 .B SIGQUIT -¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +シグナルを送る。 .B ISIG -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£ +がセットされている場合に認識し、入力には渡されない。 .TP .B VERASE .\"O (0177, DEL, rubout, or 010, BS, Ctrl-H, or also #) @@ -789,11 +789,11 @@ INT, QUIT, SUSP ʸ .\"O Recognized when .\"O .B ICANON .\"O is set, and then not passed as input. -(0177, DEL, rubout ¤« 010, BS, Ctrl-H ¤« #) -¾Ãµîʸ»ú¡£¤³¤ì¤Ë¤è¤ê¡¢Ä¾Á°¤Î̤¾Ãµîʸ»ú¤ò¾Ãµî¤¹¤ë¡£ -¤·¤«¤·¡¢EOF ¤ä¹ÔƬ¤òĶ¤¨¤Æ¤Ï¾Ãµî¤·¤Ê¤¤¡£ +(0177, DEL, rubout か 010, BS, Ctrl-H か #) +消去文字。これにより、直前の未消去文字を消去する。 +しかし、EOF や行頭を超えては消去しない。 .B ICANON -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£ +がセットされている場合に認識し、入力には渡されない。 .TP .B VKILL .\"O (025, NAK, Ctrl-U, or Ctrl-X, or also @) @@ -802,36 +802,36 @@ INT, QUIT, SUSP ʸ .\"O Recognized when .\"O .B ICANON .\"O is set, and then not passed as input. -(025, NAK, Ctrl-U ¤« Ctrl-X ¤« @) -´°Á´¾Ãµîʸ»ú¡£Ä¾Á°¤Î EOF ¤«¹ÔƬ°Ê¹ß¤ÎÁ´¤Æ¤ÎÆþÎϤò¾Ãµî¤¹¤ë¡£ +(025, NAK, Ctrl-U か Ctrl-X か @) +完全消去文字。直前の EOF か行頭以降の全ての入力を消去する。 .B ICANON -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£ +がセットされている場合に認識し、入力には渡されない。 .TP .B VEOF .\"O (004, EOT, Ctrl-D) .\"O End-of-file character. (004, EOT, Ctrl-D) -¥Õ¥¡¥¤¥ë½ªÃ¼Ê¸»ú¡£ +ファイル終端文字。 .\"O More precisely: this character causes the pending tty buffer to be sent .\"O to the waiting user program without waiting for end-of-line. -¤è¤êÀµ³Î¤Ë¤Ï¡¢tty ¥Ð¥Ã¥Õ¥¡¤ÎÆâÍƤò¹ÔËö¤òÂÔ¤¿¤º¤Ë¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥à¤ËÁ÷¤ë¡£ +より正確には、tty バッファの内容を行末を待たずにユーザープログラムに送る。 .\"O If it is the first character of the line, the .\"O .BR read (2) .\"O in the .\"O user program returns 0, which signifies end-of-file. -¤³¤ì¤¬¹Ô¤ÎºÇ½é¤Îʸ»ú¤À¤Ã¤¿¾ì¹ç¡¢¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥à¤Î +これが行の最初の文字だった場合、ユーザープログラムの .BR read (2) -¤Ï 0 ¤ò -ÊÖ¤·¡¢¥Õ¥¡¥¤¥ë½ªÃ¼¤Ç¤¢¤ë¤³¤È¤òÃΤ餻¤ë¡£ +は 0 を +返し、ファイル終端であることを知らせる。 .\"O Recognized when .\"O .B ICANON .\"O is set, and then not passed as input. .B ICANON -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£ +がセットされている場合に認識し、入力には渡されない。 .TP .B VMIN .\"O Minimum number of characters for noncanonical read. -È󥫥Υ˥«¥ëÆɤ߹þ¤ß»þ¤ÎºÇ¾®Ê¸»ú¿ô¡£ +非カノニカル読み込み時の最小文字数。 .TP .B VEOL (0, NUL) @@ -839,31 +839,31 @@ INT, QUIT, SUSP ʸ .\"O Recognized when .\"O .B ICANON .\"O is set. -ÄɲäιÔËöʸ»ú¡£ +追加の行末文字。 .B ICANON -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤¹¤ë¡£ +がセットされている場合に認識する。 .TP .B VTIME .\"O Timeout in deciseconds for noncanonical read. -È󥫥Υ˥«¥ëÆɤ߹þ¤ß»þ¤Î¥¿¥¤¥à¥¢¥¦¥È»þ´Ö (1/10 ÉÃñ°Ì)¡£ +非カノニカル読み込み時のタイムアウト時間 (1/10 秒単位)。 .TP .B VEOL2 .\"O (not in POSIX; 0, NUL) -(POSIX ¤Ë¤Ï¤Ê¤¤; 0, NUL) +(POSIX にはない; 0, NUL) .\"O Yet another end-of-line character. .\"O Recognized when .\"O .B ICANON .\"O is set. -ÄɲäιÔËöʸ»ú¡£ +追加の行末文字。 .B ICANON -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤¹¤ë¡£ +がセットされている場合に認識する。 .TP .B VSWTCH .\"O (not in POSIX; not supported under Linux; 0, NUL) -(POSIX ¤Ë¤Ï¤Ê¤¤; Linux ¤Ç¤ÏÂбþ¤·¤Æ¤¤¤Ê¤¤; 0, NUL) +(POSIX にはない; Linux では対応していない; 0, NUL) .\"O Switch character. .\"O (Used by \fBshl\fP only.) -¥¹¥¤¥Ã¥Áʸ»ú (\fBshl\fP ¤Ç¤Î¤ßÍѤ¤¤é¤ì¤ë)¡£ +スイッチ文字 (\fBshl\fP でのみ用いられる)。 .TP .B VSTART (021, DC1, Ctrl-Q) @@ -872,9 +872,9 @@ INT, QUIT, SUSP ʸ .\"O Recognized when .\"O .B IXON .\"O is set, and then not passed as input. -³«»Ïʸ»ú¡£Ää»ßʸ»ú¤ÇÄä»ß¤·¤¿½ÐÎϤòºÆ³«¤¹¤ë¡£ +開始文字。停止文字で停止した出力を再開する。 .B IXON -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£ +がセットされている場合に認識し、入力には渡されない。 .TP .B VSTOP (023, DC3, Ctrl-S) @@ -883,9 +883,9 @@ INT, QUIT, SUSP ʸ .\"O Recognized when .\"O .B IXON .\"O is set, and then not passed as input. -Ää»ßʸ»ú¡£³«»Ïʸ»ú¤¬ÆþÎϤµ¤ì¤ë¤Þ¤Ç½ÐÎϤòÄä»ß¤¹¤ë¡£ +停止文字。開始文字が入力されるまで出力を停止する。 .B IXON -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£ +が設定されている場合に認識し、入力には渡されない。 .TP .B VSUSP (032, SUB, Ctrl-Z) @@ -896,15 +896,15 @@ INT, QUIT, SUSP ʸ .\"O Recognized when .\"O .B ISIG .\"O is set, and then not passed as input. -ÃæÃÇʸ»ú¡£ +中断文字。 .B SIGTSTP -¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +シグナルを送る。 .B ISIG -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£ +がセットされている場合に認識し、入力には渡されない。 .TP .B VDSUSP .\"O (not in POSIX; not supported under Linux; 031, EM, Ctrl-Y) -(POSIX ¤Ë¤Ï¤Ê¤¤; Linux ¤Ç¤ÏÂбþ¤·¤Æ¤¤¤Ê¤¤; 031, EM, Ctrl-Y) +(POSIX にはない; Linux では対応していない; 031, EM, Ctrl-Y) .\"O Delayed suspend character: .\"O send .\"O .B SIGTSTP @@ -915,74 +915,74 @@ INT, QUIT, SUSP ʸ .\"O .B ISIG .\"O are set, and the system supports .\"O job control, and then not passed as input. -ÃÙ±äÃæÃÇʸ»ú¡£¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥à¤«¤éʸ»ú¤¬Æɤ߹þ¤Þ¤ì¤¿»þ¤Ë +遅延中断文字。ユーザープログラムから文字が読み込まれた時に .B SIGTSTP -¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +シグナルを送る。 .B IEXTEN -¤È +と .B ISIG -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Æ¡¢¥·¥¹¥Æ¥à¤¬¥¸¥ç¥ÖÀ©¸æ¤ËÂбþ¤·¤Æ¤¤¤ë¾ì¹ç¤Ë -ǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£ +がセットされていて、システムがジョブ制御に対応している場合に +認識し、入力には渡されない。 .TP .B VLNEXT .\"O (not in POSIX; 026, SYN, Ctrl-V) -(POSIX ¤Ë¤Ï¤Ê¤¤; 026, SYN Ctrl-V) +(POSIX にはない; 026, SYN Ctrl-V) .\"O Literal next. .\"O Quotes the next input character, depriving it of .\"O a possible special meaning. .\"O Recognized when .\"O .B IEXTEN .\"O is set, and then not passed as input. -¥ê¥Æ¥é¥ë¡£¼¡¤ÎÆþÎÏʸ»ú¤ò¥¨¥¹¥±¡¼¥×¤·¡¢ÆÃÊ̤ʰÕÌ£¤¬¤¢¤Ã¤Æ¤â²ò¼á¤·¤Ê¤¤¡£ +リテラル。次の入力文字をエスケープし、特別な意味があっても解釈しない。 .B IEXTEN -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£ +がセットされている場合に認識し、入力には渡されない。 .TP .B VWERASE .\"O (not in POSIX; 027, ETB, Ctrl-W) -(POSIX ¤Ë¤Ï¤Ê¤¤; 027, ETB, Ctrl-W) +(POSIX にはない; 027, ETB, Ctrl-W) .\"O Word erase. -ñ¸ì¾Ãµî¡£ +単語消去。 .\"O Recognized when .\"O .B ICANON .\"O and .\"O .B IEXTEN .\"O are set, and then not passed as input. .B ICANON -¤È +と .B IEXTEN -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£ +がセットされている場合に認識し、入力には渡されない。 .TP .B VREPRINT .\"O (not in POSIX; 022, DC2, Ctrl-R) -(POSIX ¤Ë¤Ï¤Ê¤¤; 022, DC2, Ctrl-R) +(POSIX にはない; 022, DC2, Ctrl-R) .\"O Reprint unread characters. -¤Þ¤ÀÆɤ߹þ¤ó¤Ç¤¤¤Ê¤¤Ê¸»úÎó¤òºÆɽ¼¨¤¹¤ë¡£ +まだ読み込んでいない文字列を再表示する。 .\"O Recognized when .\"O .B ICANON .\"O and .\"O .B IEXTEN .\"O are set, and then not passed as input. .B ICANON -¤È +と .B IEXTEN -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£ +がセットされている場合に認識し、入力には渡されない。 .TP .B VDISCARD .\"O (not in POSIX; not supported under Linux; 017, SI, Ctrl-O) -(POSIX ¤Ë¤Ï¤Ê¤¤; Linux ¤Ç¤ÏÂбþ¤·¤Æ¤¤¤Ê¤¤; 017, SI, Ctrl-O) +(POSIX にはない; Linux では対応していない; 017, SI, Ctrl-O) .\"O Toggle: start/stop discarding pending output. -̤Á÷¿®¥Ð¥Ã¥Õ¥¡¤ÎÆâÍƤÎÇË´þ/Êݸ¤òÀÚ¤êÂؤ¨¤ë¡£ +未送信バッファの内容の破棄/保存を切り替える。 .\"O Recognized when .\"O .B IEXTEN .\"O is set, and then not passed as input. .B IEXTEN -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£ +がセットされている場合に認識し、入力には渡されない。 .TP .B VSTATUS .\"O (not in POSIX; not supported under Linux; .\"O status request: 024, DC4, Ctrl-T). -(POSIX ¤Ë¤Ï¤Ê¤¤; Linux ¤Ç¤ÏÂбþ¤·¤Æ¤¤¤Ê¤¤; -¾õÂÖÍ×µá: 024, DC4, Ctrl-T) +(POSIX にはない; Linux では対応していない; +状態要求: 024, DC4, Ctrl-T) .LP .\"O These symbolic subscript values are all different, except that .\"O .BR VTIME , @@ -991,14 +991,14 @@ INT, QUIT, SUSP ʸ .\"O .BR VEOL , .\"O .BR VEOF , .\"O respectively. -¤³¤ì¤é¤Î¥·¥ó¥Ü¥ë¤Î¼¨¤¹ÃͤÏÁ´¤Æ°Û¤Ê¤ë¡£ -¤¿¤À¤·¡¢ +これらのシンボルの示す値は全て異なる。 +ただし、 .BR VTIME , .B VMIN -¤Ï¤½¤ì¤¾¤ì +はそれぞれ .BR VEOL , .B VEOF -¤ÈƱ¤¸ÃͤǤ¢¤ë¡£ +と同じ値である。 .\"O In noncanonical mode the special character meaning is replaced .\"O by the timeout meaning. .\"O For an explanation of @@ -1007,13 +1007,13 @@ INT, QUIT, SUSP ʸ .\"O .BR VTIME , .\"O see the description of .\"O noncanonical mode below. -È󥫥Υ˥«¥ë¥â¡¼¥É¤Ç¤Ï¡¢Æüìʸ»ú¤Î°ÕÌ£¤Ï¥¿¥¤¥à¥¢¥¦¥È¤Î°ÕÌ£¤ËÊѤï¤ë¡£ +非カノニカルモードでは、特殊文字の意味はタイムアウトの意味に変わる。 .B VMIN -¤È +と .B VTIME -¤ÎÀâÌÀ¤Ë¤Ä¤¤¤Æ¤Ï¡¢²¼µ­¤ÎÈ󥫥Υ˥«¥ë¥â¡¼¥É¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +の説明については、下記の非カノニカルモードの説明を参照のこと。 .\"O .SS "Retrieving and changing terminal settings" -.SS "üËö¤ÎÀßÄê¤Î¼èÆÀ¤ÈÊѹ¹" +.SS "端末の設定の取得と変更" .PP .\"O .BR tcgetattr () .\"O gets the parameters associated with the object referred by \fIfd\fP and @@ -1023,10 +1023,10 @@ INT, QUIT, SUSP ʸ .\"O however, the terminal attributes may be subsequently changed by a .\"O foreground process. .BR tcgetattr () -¤Ï \fIfd\fP ¤Ë´Ø¤¹¤ë¥Ñ¥é¥á¡¼¥¿¤ò¼èÆÀ¤·¡¢\fItermios_p\fP ¤¬»²¾È¤¹¤ë¹½ -¤ÂÎ \fItermios\fP ¤ËÀßÄꤹ¤ë¡£¤³¤Î´Ø¿ô¤Ï¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹¤«¤é -¸Æ¤Ð¤ì¤ë¤³¤È¤â¤¢¤ë¤¬¡¢¤³¤Î¾ì¹ç¡¢Ã¼Ëö¤Î°À­¤Ï¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹ -¤Ë¤è¤Ã¤ÆÊѲ½¤¹¤ë¤³¤È¤â¤¢¤ë¡£ +は \fIfd\fP に関するパラメータを取得し、\fItermios_p\fP が参照する構 +造体 \fItermios\fP に設定する。この関数はバックグラウンドプロセスから +呼ばれることもあるが、この場合、端末の属性はフォアグラウンドプロセス +によって変化することもある。 .LP .\"O .BR tcsetattr () .\"O sets the parameters associated with the terminal (unless support is @@ -1034,13 +1034,13 @@ INT, QUIT, SUSP ʸ .\"O \fItermios\fP structure referred to by \fItermios_p\fP. .\"O \fIoptional_actions\fP specifies when the changes take effect: .BR tcsetattr () -¤ÏüËö¤Ë´ØÏ¢¤·¤¿¥Ñ¥é¥á¡¼¥¿¤òÀßÄꤹ¤ë (¥Ï¡¼¥É¥¦¥§¥¢¤ÎÀßÄê¤ËɬÍפǡ¢¤³¤³¤Ç -ÀßÄê¤Ç¤­¤Ê¤¤¤â¤Î¤ò½ü¤¯)¡£ÀßÄê¤Ë¤Ï \fItermios_p\fP ¤¬»²¾È¤¹¤ë -\fItermios\fP ¹½Â¤ÂΤòÍѤ¤¤ë¡£ -\fIoptional_actions\fP ¤Ë¤ÏÊѹ¹¤¬Í­¸ú¤È¤Ê¤ë¥¿¥¤¥ß¥ó¥°¤òÀßÄꤹ¤ë: +は端末に関連したパラメータを設定する (ハードウェアの設定に必要で、ここで +設定できないものを除く)。設定には \fItermios_p\fP が参照する +\fItermios\fP 構造体を用いる。 +\fIoptional_actions\fP には変更が有効となるタイミングを設定する: .IP \fBTCSANOW\fP .\"O the change occurs immediately. -¤¿¤À¤Á¤ËÊѹ¹¤¬Í­¸ú¤È¤Ê¤ë¡£ +ただちに変更が有効となる。 .IP \fBTCSADRAIN\fP .\"O the change occurs after all output written to .\"O .I fd @@ -1048,19 +1048,19 @@ INT, QUIT, SUSP ʸ .\"O This function should be used when changing .\"O parameters that affect output. .I fd -¤Ø¤Î½ÐÎϤ¬¤¹¤Ù¤ÆžÁ÷¤µ¤ì¤¿¸å¤ËÊѹ¹¤¬Í­¸ú¤Ë¤Ê¤ë¡£¤³¤Îµ¡Ç½¤Ï -½ÐÎϤ˱ƶÁ¤¹¤ë¥Ñ¥é¥á¡¼¥¿¤òÊѹ¹¤¹¤ë»þ¤Ë»ÈÍѤ¹¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +への出力がすべて転送された後に変更が有効になる。この機能は +出力に影響するパラメータを変更する時に使用するべきである。 .IP \fBTCSAFLUSH\fP .\"O the change occurs after all output written to the object referred by .\"O .I fd .\"O has been transmitted, and all input that has been received but not read .\"O will be discarded before the change is made. -¥Ñ¥é¥á¡¼¥¿¤òÊѹ¹¤¹¤ëÁ°¤Ë¡¢ +パラメータを変更する前に、 .I fd -¤Ø¤Î½ÐÎϤ¬¤¹¤Ù¤ÆžÁ÷¤µ¤ì¡¢¼õ¿®¤·¤¿¤¬¤Þ¤ÀÆɤ߹þ¤ó¤Ç¤¤¤Ê¤¤¤¹¤Ù¤Æ¤Î -ÆþÎϤ¬ÇË´þ¤µ¤ì¤ë¡£ +への出力がすべて転送され、受信したがまだ読み込んでいないすべての +入力が破棄される。 .\"O .SS "Canonical and noncanonical mode" -.SS "¥«¥Î¥Ë¥«¥ë¥â¡¼¥É¤ÈÈ󥫥Υ˥«¥ë¥â¡¼¥É" +.SS "カノニカルモードと非カノニカルモード" .\"O The setting of the .\"O .B ICANON .\"O canon flag in @@ -1075,18 +1075,18 @@ INT, QUIT, SUSP ʸ .\"O .B ICANON .\"O set. .I c_lflag -¤Î +の .B ICANON -¥Õ¥é¥°¤ÎÀßÄê¤Ë¤è¤ê¡¢Ã¼Ëö¤¬¥«¥Î¥Ë¥«¥ë¥â¡¼¥É¤ÇÆ°ºî¤¹¤ë¤«¤¬·èÄꤵ¤ì¤ë¡£ +フラグの設定により、端末がカノニカルモードで動作するかが決定される。 .B ICANON -¤¬¥»¥Ã¥È¤µ¤ì¤¿¾ì¹ç¡¢¥«¥Î¥Ë¥«¥ë¥â¡¼¥É (canonical mode) ¤È¤Ê¤ê¡¢ -¥»¥Ã¥È¤µ¤ì¤Ê¤¤¾ì¹ç¡¢È󥫥Υ˥«¥ë¥â¡¼¥É (noncanonical mode) ¤È¤Ê¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +がセットされた場合、カノニカルモード (canonical mode) となり、 +セットされない場合、非カノニカルモード (noncanonical mode) となる。 +デフォルトでは、 .B ICANON -¤Ï¥»¥Ã¥È¤µ¤ì¤ë¡£ +はセットされる。 .\"O In canonical mode: -¥«¥Î¥Ë¥«¥ë¥â¡¼¥É¤Ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤ÊÆ°ºî¤È¤Ê¤ë¡£ +カノニカルモードでは、以下のような動作となる。 .IP * 2 .\"O Input is made available line by line. .\"O An input line is available when one of the line delimiters @@ -1094,12 +1094,12 @@ INT, QUIT, SUSP ʸ .\"O Except in the case of EOF, the line delimiter is included .\"O in the buffer returned by .\"O .BR read (2). -ÆþÎϤϹÔñ°Ì¤Ë¹Ô¤ï¤ì¤ë¡£ -¹Ô¶èÀÚ¤êʸ»ú¤¬ÂǤÁ¹þ¤Þ¤ì¤¿»þÅÀ¤Ç¡¢ÆþÎϹԤ¬ÍøÍѲÄǽ¤È¤Ê¤ë¡£ -¹Ô¶èÀÚ¤êʸ»ú¤Ï NL, EOL, EOL2 ¤ª¤è¤Ó¹ÔƬ¤Ç¤Î EOF ¤Ç¤¢¤ë¡£ -EOF °Ê³°¤Î¾ì¹ç¡¢ +入力は行単位に行われる。 +行区切り文字が打ち込まれた時点で、入力行が利用可能となる。 +行区切り文字は NL, EOL, EOL2 および行頭での EOF である。 +EOF 以外の場合、 .BR read (2) -¤¬ÊÖ¤¹¥Ð¥Ã¥Õ¥¡¤Ë¹Ô¶èÀÚ¤êʸ»ú¤â´Þ¤á¤é¤ì¤ë¡£ +が返すバッファに行区切り文字も含められる。 .IP * 2 .\"O Line editing is enabled (ERASE, KILL; .\"O and if the @@ -1113,18 +1113,18 @@ EOF .\"O then only as many bytes as requested are read, .\"O and the remaining characters will be available for a future .\"O .BR read (2). -¹ÔÊÔ½¸¤¬Í­¸ú¤È¤Ê¤ë (ERASE, KILL ¤¬¸ú²Ì¤ò»ý¤Ä¡£ +行編集が有効となる (ERASE, KILL が効果を持つ。 .B IEXTEN -¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢ -WERASE, REPRINT, LNEXT ¤â¸ú²Ì¤ò»ý¤Ä)¡£ +フラグが設定された場合は、 +WERASE, REPRINT, LNEXT も効果を持つ)。 .BR read (2) -¤ÏºÇÂç¤Ç¤â 1¹Ô¤ÎÆþÎϤ·¤«ÊÖ¤µ¤Ê¤¤¡£ +は最大でも 1行の入力しか返さない。 .BR read (2) -¤¬Í׵ᤷ¤¿¥Ð¥¤¥È¿ô¤¬¸½ºß¤ÎÆþÎϹԤΥХ¤¥È¿ô¤è¤ê¤â¾¯¤Ê¤¤¾ì¹ç¡¢ -Í׵ᤷ¤¿¤Î¤ÈƱ¤¸¥Ð¥¤¥È¿ô¤À¤±¤¬Æɤ߹þ¤Þ¤ì¡¢ -»Ä¤ê¤Îʸ»ú¤Ï¼¡²ó¤Î +が要求したバイト数が現在の入力行のバイト数よりも少ない場合、 +要求したのと同じバイト数だけが読み込まれ、 +残りの文字は次回の .BR read (2) -¤ÇÆɤ߹þ¤Þ¤ì¤ë¡£ +で読み込まれる。 .PP .\"O In noncanonical mode input is available immediately (without .\"O the user having to type a line-delimiter character), @@ -1136,16 +1136,16 @@ WERASE, REPRINT, LNEXT .\"O determine the circumstances in which a .\"O .BR read (2) .\"O completes; there are four distinct cases: -È󥫥Υ˥«¥ë¥â¡¼¥É¤Ç¤Ï¡¢ÆþÎϤϨºÂ¤ËÍøÍѲÄǽ¤È¤Ê¤ê -(¥æ¡¼¥¶¤Ï¹Ô¶èÀÚ¤êʸ»ú¤òÂǤÁ¹þ¤àɬÍפϤʤ¤)¡¢ -¹ÔÊÔ½¸¤Ï̵¸ú¤È¤Ê¤ë¡£ +非カノニカルモードでは、入力は即座に利用可能となり +(ユーザは行区切り文字を打ち込む必要はない)、 +行編集は無効となる。 MIN .RI ( c_cc[VMIN] ) -¤È TIME +と TIME .RI ( c_cc[VTIME] ) -¤ÎÀßÄê¤Ë¤è¤ê¡¢ +の設定により、 .BR read (2) -¤¬´°Î»¤¹¤ë¾ò·ï¤¬·èÄꤵ¤ì¤ë¡£4¼ïÎà¤Î¾ì¹ç¤¬¤¢¤ë: +が完了する条件が決定される。4種類の場合がある: .IP * 2 MIN == 0; TIME == 0: .\"O If data is available, @@ -1155,22 +1155,22 @@ MIN == 0; TIME == 0: .\"O If no data is available, .\"O .BR read (2) .\"O returns 0. -¥Ç¡¼¥¿¤¬ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢ +データが利用可能であれば、 .BR read (2) -¤Ï¤¹¤°¤ËÊ֤롣¤³¤Î¤È¤­¤ÎÊÖ¤êÃͤϡ¢¤½¤Î¤È¤­ÍøÍѲÄǽ¤Ê¥Ð¥¤¥È¿ô¤« +はすぐに返る。このときの返り値は、そのとき利用可能なバイト数か .BR read (2) -¤ÎÍ×µá¥Ð¥¤¥È¿ô¤Î¤¦¤Á¾®¤µ¤¤Êý¤È¤Ê¤ë¡£ -ÍøÍѲÄǽ¤Ê¥Ç¡¼¥¿¤¬¤Ê¤¤¾ì¹ç +の要求バイト数のうち小さい方となる。 +利用可能なデータがない場合 .BR read (2) -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .IP * 2 MIN > 0; TIME == 0: .\"O .BR read (2) .\"O blocks until the lesser of MIN bytes or the number of bytes requested .\"O are available, and returns the lesser of these two values. .BR read (2) -¤Ï¡¢ÍøÍѲÄǽ¤Ê¥Ç¡¼¥¿¤¬ MIN ¥Ð¥¤¥È¤«Í×µá¥Ð¥¤¥È¿ô¤Î¤¤¤º¤ì¤«¤Ë㤹¤ë¤Þ¤Ç -Ää»ß¤¹¤ë¡£ÊÖ¤êÃͤϡ¢MIN ¤«Í×µá¥Ð¥¤¥È¿ô¤Î¾®¤µ¤¤Êý¤È¤Ê¤ë¡£ +は、利用可能なデータが MIN バイトか要求バイト数のいずれかに達するまで +停止する。返り値は、MIN か要求バイト数の小さい方となる。 .IP * 2 MIN == 0; TIME > 0: .\"O TIME specifies the limit for a timer in tenths of a second. @@ -1183,16 +1183,16 @@ MIN == 0; TIME > 0: .\"O If the timer expires without any input becoming available, .\"O .BR read (2) .\"O returns 0. -TIME ¤Ï¥¿¥¤¥Þ¤Î¾å¸Â¤òµ¬Äꤷ¡¢Ã±°Ì¤Ï 1/10 ÉäǤ¢¤ë¡£ -¥¿¥¤¥Þ¤Ï +TIME はタイマの上限を規定し、単位は 1/10 秒である。 +タイマは .BR read (2) -¤¬¸Æ¤Ð¤ì¤¿»þÅÀ¤Ç³«»Ï¤µ¤ì¤ë¡£ +が呼ばれた時点で開始される。 .BR read (2) -¤¬ÊÖ¤ë¤Î¤Ï¡¢¾¯¤Ê¤¯¤È¤â 1¥Ð¥¤¥È¤Î¥Ç¡¼¥¿¤¬ÍøÍѲÄǽ¤È¤Ê¤Ã¤¿»þÅÀ¡¢ -¤Þ¤¿¤Ï¥¿¥¤¥Þ¤¬»þ´ÖÀÚ¤ì¤È¤Ê¤Ã¤¿»þÅÀ¤Ç¤¢¤ë¡£ -ÆþÎϤ¬Á´¤¯¤Ê¤¯¥¿¥¤¥Þ¤¬»þ´ÖÀÚ¤ì¤È¤Ê¤Ã¤¿¾ì¹ç¡¢ +が返るのは、少なくとも 1バイトのデータが利用可能となった時点、 +またはタイマが時間切れとなった時点である。 +入力が全くなくタイマが時間切れとなった場合、 .BR read (2) -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .IP * 2 MIN > 0; TIME > 0: .\"O TIME specifies the limit for a timer in tenths of a second. @@ -1204,14 +1204,14 @@ MIN > 0; TIME > 0: .\"O or when the inter-byte timeout expires. .\"O Because the timer is only started after the initial byte .\"O becomes available, at least one byte will be read. -TIME ¤Ï¥¿¥¤¥Þ¤Î¾å¸Â¤òµ¬Äꤷ¡¢Ã±°Ì¤Ï 1/10 ÉäǤ¢¤ë¡£ -ÆþÎϤκǽé¤Î¥Ð¥¤¥È¤¬ÍøÍѲÄǽ¤Ë¤Ê¤Ã¤¿¸å¤Ï¡¢ -¿·¤¿¤Ë 1¥Ð¥¤¥È¼õ¿®¤¹¤ëÅ٤˥¿¥¤¥Þ¤¬¥ê¥»¥Ã¥È¤µ¤ì¤ë¡£ +TIME はタイマの上限を規定し、単位は 1/10 秒である。 +入力の最初のバイトが利用可能になった後は、 +新たに 1バイト受信する度にタイマがリセットされる。 .BR read (2) -¤¬ÊÖ¤ë¤Î¤Ï¡¢MIN ¥Ð¥¤¥È¤«Í×µá¥Ð¥¤¥È¿ô¤Î¤¦¤Á¾¯¤Ê¤¤Êý¤Þ¤ÇÆɤ߽Фµ¤ì¤¿»þÅÀ¤«¡¢ -¥Ð¥¤¥È´Ö¥¿¥¤¥Þ¤¬»þ´ÖÀÚ¤ì¤È¤Ê¤Ã¤¿»þÅÀ¤Ç¤¢¤ë¡£ -¤ÏºÇ½é¤Î¥Ð¥¤¥È¤¬ÍøÍѲÄǽ¤Ë¤Ê¤é¤Ê¤¤¤È¥¿¥¤¥Þ¤Ï³«»Ï¤µ¤ì¤Ê¤¤¤Î¤Ç¡¢ -¾¯¤Ê¤¯¤È¤â 1¥Ð¥¤¥È¤ÏÆɤ߹þ¤Þ¤ì¤ë¡£ +が返るのは、MIN バイトか要求バイト数のうち少ない方まで読み出された時点か、 +バイト間タイマが時間切れとなった時点である。 +は最初のバイトが利用可能にならないとタイマは開始されないので、 +少なくとも 1バイトは読み込まれる。 .SS "Raw mode" .LP .\"O .BR cfmakeraw () @@ -1222,11 +1222,11 @@ TIME .\"O terminal input and output characters is disabled. .\"O The terminal attributes are set as follows: .BR cfmakeraw () -¤Ï¡¢Ã¼Ëö¤òÀΤΠVersion 7 üËö¥É¥é¥¤¥Ð¤Î -"raw" ¥â¡¼¥É¤Î¤è¤¦¤ËÀßÄꤹ¤ë¡£ -ÆþÎϤÏʸ»úñ°Ì¤Ë²Äǽ¤Ç¤¢¤ê¡¢¥¨¥³¡¼¤¬Ìµ¸ú¤È¤Ê¤ê¡¢ -üËö¤ÎÆþ½ÐÎÏʸ»ú¤ËÂФ¹¤ëÆüì½èÍý¤Ï¤¹¤Ù¤Æ̵¸ú¤È¤Ê¤ë¡£ -üËö¤Î°À­¤Ï°Ê²¼¤Î¤è¤¦¤ËÀßÄꤵ¤ì¤ë: +は、端末を昔の Version 7 端末ドライバの +"raw" モードのように設定する。 +入力は文字単位に可能であり、エコーが無効となり、 +端末の入出力文字に対する特殊処理はすべて無効となる。 +端末の属性は以下のように設定される: .nf termios_p\->c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP @@ -1237,7 +1237,7 @@ TIME termios_p\->c_cflag |= CS8; .fi .\"O .SS "Line control" -.SS "¥é¥¤¥óÀ©¸æ" +.SS "ライン制御" .LP .\"O .BR tcsendbreak () .\"O transmits a continuous stream of zero-valued bits for a specific @@ -1248,27 +1248,27 @@ TIME .\"O If \fIduration\fP is not zero, it sends zero-valued bits for some .\"O implementation-defined length of time. .BR tcsendbreak () -¤ÏüËö¤¬ÈóƱ´ü¤Î¥·¥ê¥¢¥ë¥Ç¡¼¥¿Å¾Á÷¤òÍѤ¤¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢ -Ϣ³¤·¤¿0¤Î¥Ó¥Ã¥ÈÎó¤ò°ìÄê´Ö³Ö¤ÇžÁ÷¤¹¤ë¡£ -\fIduration\fP ¤¬ 0 ¤Î¾ì¹ç¤Ï¡¢0 ¤Î¥Ó¥Ã¥È¤ò 0.25 Éðʾ塢 -0.5 Éðʲ¼¤Î´Ö³Ö¤ÇžÁ÷¤¹¤ë¡£ \fIduration\fP ¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢ -0 ¤Î¥Ó¥Ã¥È¤ò¼ÂÁõ°Í¸¤Î»þ´Ö´Ö³Ö¤ÇÁ÷¤ë¡£ +は端末が非同期のシリアルデータ転送を用いている場合に、 +連続した0のビット列を一定間隔で転送する。 +\fIduration\fP が 0 の場合は、0 のビットを 0.25 秒以上、 +0.5 秒以下の間隔で転送する。 \fIduration\fP が 0 でない場合は、 +0 のビットを実装依存の時間間隔で送る。 .LP .\"O If the terminal is not using asynchronous serial data transmission, .\"O .BR tcsendbreak () .\"O returns without taking any action. -üËö¤¬ÈóƱ´ü¤Î¥·¥ê¥¢¥ë¥Ç¡¼¥¿Å¾Á÷¥â¡¼¥É¤Ç¤Ê¤¤¾ì¹ç¡¢ +端末が非同期のシリアルデータ転送モードでない場合、 .BR tcsendbreak () -¤Ï²¿¤â¹Ô¤ï¤º¤ËÌá¤ë¡£ +は何も行わずに戻る。 .LP .\"O .BR tcdrain () .\"O waits until all output written to the object referred to by .\"O .I fd .\"O has been transmitted. .BR tcdrain () -¤Ï +は .I fd -¤¬¹Ô¤Ã¤Æ¤¤¤ë½ÐÎϤΞÁ÷¤¬´°Î»¤¹¤ë¤Þ¤ÇÂԤġ£ +が行っている出力の転送が完了するまで待つ。 .LP .\"O .BR tcflush () .\"O discards data written to the object referred to by @@ -1277,24 +1277,24 @@ TIME .\"O value of .\"O .IR queue_selector : .BR tcflush () -¤Ï +は .I fd -¤¬¹Ô¤Ã¤Æ¤¤¤ë¥Ç¡¼¥¿¤Î½ÐÎϤǤޤÀžÁ÷¤µ¤ì¤Æ¤¤¤Ê¤¤¤â¤Î¡¢¤¢¤ë¤¤¤Ï¼õ¿®¤· -¤¿¤¬¤Þ¤ÀÆþÎϤ·¤Æ¤¤¤Ê¤¤¤â¤Î¤òÇË´þ¤¹¤ë¡£¤¤¤º¤ì¤ò¹Ô¤¦¤«¤Ï +が行っているデータの出力でまだ転送されていないもの、あるいは受信し +たがまだ入力していないものを破棄する。いずれを行うかは .I queue_selector -¤ÎÃͤÇÄê¤á¤ë: +の値で定める: .\"??nakano flush == discard? .IP \fBTCIFLUSH\fP .\"O flushes data received but not read. -¼õ¿®¤·¤¿¤¬Æɤó¤Ç¤¤¤Ê¤¤¥Ç¡¼¥¿¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë¡£ +受信したが読んでいないデータをフラッシュする。 .IP \fBTCOFLUSH\fP .\"O flushes data written but not transmitted. -½ñ¤¤¤¿¤¬Á÷¿®¤·¤Æ¤¤¤Ê¤¤¥Ç¡¼¥¿¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë¡£ +書いたが送信していないデータをフラッシュする。 .IP \fBTCIOFLUSH\fP .\"O flushes both data received but not read, and data written but not .\"O transmitted. -¼õ¿®¤·¤¿¤¬Æɤó¤Ç¤¤¤Ê¤¤¥Ç¡¼¥¿¡¦½ñ¤¤¤¿¤¬Á÷¿®¤·¤Æ¤¤¤Ê¤¤¥Ç¡¼¥¿Î¾Êý -¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë¡£ +受信したが読んでいないデータ・書いたが送信していないデータ両方 +をフラッシュする。 .LP .\"O .BR tcflow () .\"O suspends transmission or reception of data on the object referred to by @@ -1302,75 +1302,75 @@ TIME .\"O depending on the value of .\"O .IR action : .BR tcflow () -¤Ï +は .I fd -¤Ç»ØÄꤵ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤ª¤±¤ë¥Ç¡¼¥¿¤ÎÁ÷¿®¤¢¤ë¤¤¤Ï¼õ¿®¤ò°ì»þŪ¤ËÃæÃǤ¹¤ë¡£ -Á÷¿®¤È¼õ¿®¤Î¤É¤Á¤é¤«¤Ï¡¢ -.IR action ¤Ç·è¤Þ¤ë: +で指定されたオブジェクトにおけるデータの送信あるいは受信を一時的に中断する。 +送信と受信のどちらかは、 +.IR action で決まる: .IP \fBTCOOFF\fP .\"O suspends output. -½ÐÎϤÎÃæÃÇ¡£ +出力の中断。 .IP \fBTCOON\fP .\"O restarts suspended output. -ÃæÃǤ·¤¿½ÐÎϤκƳ«¡£ +中断した出力の再開。 .IP \fBTCIOFF\fP .\"O transmits a STOP character, which stops the terminal device from .\"O transmitting data to the system. -STOP ʸ»ú¤ÎÁ÷¿®¡£ -STOP ʸ»ú¤ÏüËö¥Ç¥Ð¥¤¥¹¤«¤é¥·¥¹¥Æ¥à¤Ø¤Î¥Ç¡¼¥¿Á÷¿®¤òÄä»ß¤¹¤ë¡£ +STOP 文字の送信。 +STOP 文字は端末デバイスからシステムへのデータ送信を停止する。 .IP \fBTCION\fP .\"O transmits a START character, which starts the terminal device .\"O transmitting data to the system. -START ʸ»ú¤ÎÁ÷¿®¡£ -START ʸ»ú¤ÏüËö¥Ç¥Ð¥¤¥¹¤«¤é¥·¥¹¥Æ¥à¤Ø¤Î¥Ç¡¼¥¿Á÷¿®¤ò³«»Ï¤¹¤ë¡£ +START 文字の送信。 +START 文字は端末デバイスからシステムへのデータ送信を開始する。 .LP .\"O The default on open of a terminal file is that neither its input nor its .\"O output is suspended. -üËö¥Õ¥¡¥¤¥ë¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¤È¤­¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ -ÆþÎϤâ½ÐÎϤâÃæÃǤµ¤ì¤Æ¤¤¤Ê¤¤¡£ +端末ファイルがオープンされたときのデフォルトでは、 +入力も出力も中断されていない。 .\"O .SS "Line speed" -.SS "¥é¥¤¥ó®ÅÙ" +.SS "ライン速度" .\"O The baud rate functions are provided for getting and setting the values .\"O of the input and output baud rates in the \fItermios\fP structure. .\"O The new values do not take effect .\"O until .\"O .BR tcsetattr () .\"O is successfully called. -¥Ü¡¼¥ì¡¼¥È´Ø¿ô¤Ï \fItermios\fP ¹½Â¤ÂÎÃæ¤ÎÆþ½ÐÎϥܡ¼¥ì¡¼¥È¤ò -¼èÆÀ¡¢ÀßÄꤹ¤ë¤¿¤á¤ËÄ󶡤µ¤ì¤ë¡£ -ÀßÄꤵ¤ì¤¿ÃÍ¤Ï +ボーレート関数は \fItermios\fP 構造体中の入出力ボーレートを +取得、設定するために提供される。 +設定された値は .BR tcsetattr () -¤Î¸Æ¤Ó½Ð¤·¤¬À®¸ù¤¹¤ë¤Þ¤Ç¤ÏÍ­¸ú¤Ç¤Ï¤Ê¤¤¡£ +の呼び出しが成功するまでは有効ではない。 .\"O Setting the speed to \fBB0\fP instructs the modem to "hang up". .\"O The actual bit rate corresponding to \fBB38400\fP may be altered with .\"O .BR setserial (8). -®ÅÙ¤ò \fBB0\fP ¤ËÀßÄꤷ¤¿¾ì¹ç¡¢¥â¥Ç¥à¤ÏÄä»ß (hang up) ¤¹¤ë¡£ -\fBB38400\fP ¤Ë³ºÅö¤¹¤ë¼ÂºÝ¤Î¥Ó¥Ã¥È¥ì¡¼¥È¤Ï +速度を \fBB0\fP に設定した場合、モデムは停止 (hang up) する。 +\fBB38400\fP に該当する実際のビットレートは .BR setserial (8) -¤Ç -Êѹ¹¤Ç¤­¤ë¡£ +で +変更できる。 .LP .\"O The input and output baud rates are stored in the \fItermios\fP .\"O structure. -ÆþÎϤª¤è¤Ó½ÐÎϥܡ¼¥ì¡¼¥È¤Ï \fItermios\fP ¹½Â¤ÂΤ˳ÊǼ¤µ¤ì¤ë¡£ +入力および出力ボーレートは \fItermios\fP 構造体に格納される。 .LP .\"O .BR cfgetospeed () .\"O returns the output baud rate stored in the \fItermios\fP structure .\"O pointed to by .\"O .IR termios_p . .BR cfgetospeed () -¤Ï +は .I termios_p -¤¬¼¨¤·¤Æ¤¤¤ë \fItermios\fP ¹½Â¤ÂΤ˳ÊǼ¤µ¤ì¤Æ¤¤¤ë -½ÐÎϥܡ¼¥ì¡¼¥È¤òÊÖ¤¹¡£ +が示している \fItermios\fP 構造体に格納されている +出力ボーレートを返す。 .LP .\"O .BR cfsetospeed () .\"O sets the output baud rate stored in the \fItermios\fP structure pointed .\"O to by \fItermios_p\fP to \fIspeed\fP, which must be one of these constants: .BR cfsetospeed () -¤Ï \fItermios_p\fP ¤Ç¼¨¤µ¤ì¤Æ¤¤¤ë \fItermios\fP ¹½Â¤ÂÎÃæ¤Î½ÐÎϥܡ¼¥ì¡¼¥È¤ò -\fIspeed\fP ¤ËÀßÄꤹ¤ë¡£Ãͤϰʲ¼¤Î¤¤¤º¤ì¤«¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤: +は \fItermios_p\fP で示されている \fItermios\fP 構造体中の出力ボーレートを +\fIspeed\fP に設定する。値は以下のいずれかでなければならない: .nf .ft B @@ -1403,16 +1403,16 @@ START ʸ .\"O \fBCBAUDEX\fP is a mask .\"O for the speeds beyond those defined in POSIX.1 (57600 and above). .\"O Thus, \fBB57600\fP & \fBCBAUDEX\fP is nonzero. -0¥Ü¡¼ (\fBB0\fP) ¤ÏÀܳ¤ÎÃæÃǤËÍѤ¤¤é¤ì¤ë¡£ -B0¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¥â¥Ç¥à¤ÎÀ©¸æÀþ¤Ï»ÈÍѤµ¤ì¤Ê¤¤¾õÂ֤ˤʤꡢ°ìÈ̤ˤϤ³¤ì¤Ç -Àܳ¤¬ÀÚÃǤµ¤ì¤ë¡£ -\fBCBAUDEX\fP ¤ÏPOSIX.1¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë®ÅÙ¤ÎÈϰϳ° (57600 ¤ª¤è¤Ó¤½¤ì°Ê¾å) -¤òÀßÄꤹ¤ë¡£¤¹¤Ê¤ï¤ÁÎ㤨¤Ð \fBB57600\fP & \fBCBAUDEX\fP ¤Ï 0 ¤Ç¤Ê¤¤¡£ +0ボー (\fBB0\fP) は接続の中断に用いられる。 +B0が指定された場合、モデムの制御線は使用されない状態になり、一般にはこれで +接続が切断される。 +\fBCBAUDEX\fP はPOSIX.1で定義されている速度の範囲外 (57600 およびそれ以上) +を設定する。すなわち例えば \fBB57600\fP & \fBCBAUDEX\fP は 0 でない。 .LP .\"O .BR cfgetispeed () .\"O returns the input baud rate stored in the \fItermios\fP structure. .BR cfgetispeed () -¤Ï \fItermios\fP ¹½Â¤ÂÎÃæ¤ÎÆþÎϥܡ¼¥ì¡¼¥È¤òÊÖ¤¹¡£ +は \fItermios\fP 構造体中の入力ボーレートを返す。 .LP .\"O .BR cfsetispeed () .\"O sets the input baud rate stored in the \fItermios\fP structure to @@ -1422,15 +1422,15 @@ B0 .\"O If the input baud rate is set to zero, the input baud rate will be .\"O equal to the output baud rate. .BR cfsetispeed () -¤Ï \fItermios\fP ¹½Â¤ÂÎÃæ¤ÎÆþÎϥܡ¼¥ì¡¼¥È¤ò +は \fItermios\fP 構造体中の入力ボーレートを .I speed -¤ËÀßÄꤹ¤ë¡£ +に設定する。 .I speed -¤Ë¤Ï¡¢¾å½Ò¤Î +には、上述の .BR cfsetospeed () -¤Î¥Ü¡¼¥ì¡¼¥ÈÄê¿ô \fBBnnn\fP ¤Î¤¤¤º¤ì¤«°ì¤Ä¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -ÆþÎϥܡ¼¥ì¡¼¥È¤¬ 0 ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ÆþÎϥܡ¼¥ì¡¼¥È¤Ï½ÐÎϥܡ¼¥ì¡¼¥È -¤ÈƱ¤¸ÃͤȤʤ롣 +のボーレート定数 \fBBnnn\fP のいずれか一つを指定しなければならない。 +入力ボーレートが 0 に設定された場合、入力ボーレートは出力ボーレート +と同じ値となる。 .LP .\"O .BR cfsetspeed () .\"O is a 4.4BSD extension. @@ -1438,36 +1438,36 @@ B0 .\"O .BR cfsetispeed (), .\"O and sets both input and output speed. .BR cfsetspeed () -¤Ï 4.4BSD ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£¤³¤Î´Ø¿ô¤Ï +は 4.4BSD による拡張である。この関数は .BR cfsetispeed () -¤ÈƱ¤¸°ú¤­¿ô¤ò¤È¤ê¡¢Æþ½ÐÎÏξÊý¤Î®ÅÙ¤òÀßÄꤹ¤ë¡£ +と同じ引き数をとり、入出力両方の速度を設定する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .LP .\"O .BR cfgetispeed () .\"O returns the input baud rate stored in the .\"O \fItermios\fP .\"O structure. .BR cfgetispeed () -¤Ï \fItermios\fP ¹½Â¤ÂÎÃæ¤ÎÆþÎϥܡ¼¥ì¡¼¥È¤òÊÖ¤¹¡£ +は \fItermios\fP 構造体中の入力ボーレートを返す。 .LP .\"O .BR cfgetospeed () .\"O returns the output baud rate stored in the \fItermios\fP structure. .BR cfgetospeed () -¤Ï \fItermios\fP ¹½Â¤ÂÎÃæ¤Î½ÐÎϥܡ¼¥ì¡¼¥È¤òÊÖ¤¹¡£ +は \fItermios\fP 構造体中の出力ボーレートを返す。 .LP .\"O All other functions return: -¾¤Î¤¹¤Ù¤Æ¤Î´Ø¿ô¤ÎÌá¤êÃÍ: +他のすべての関数の戻り値: .IP 0 .\"O on success. -¼Â¹ÔÀ®¸ù¡£ +実行成功。 .IP \-1 .\"O on failure and set .\"O .I errno .\"O to indicate the error. -¼Â¹Ô¼ºÇÔ¡£ +実行失敗。 .I errno -¤¬¥¨¥é¡¼¤Î¼ïÎà¤ò¼¨¤¹¡£ +がエラーの種類を示す。 .LP .\"O Note that .\"O .BR tcsetattr () @@ -1478,12 +1478,12 @@ B0 .\"O .BR tcgetattr () .\"O to check that all changes have been performed successfully. .BR tcsetattr () -¤Ï \fI¤Ê¤ó¤é¤«¤Î\fP Êѹ¹Í׵᤬À®¸ù¤·¤¿¾ì¹ç¤ËÀ®¸ù¤òÊÖ¤¹¤³¤È¤ËÃí°Õ¡£ -½¾¤Ã¤Æ¡¢Ê£¿ô¤ÎÊѹ¹¤ò¹Ô¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢°ú¤­Â³¤¤¤Æ +は \fIなんらかの\fP 変更要求が成功した場合に成功を返すことに注意。 +従って、複数の変更を行った場合には、引き続いて .BR tcgetattr () -¤ò¸Æ¤Ó½Ð¤·¤ÆÁ´¤Æ¤ÎÊѹ¹¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¤«¤ò³Îǧ¤¹¤ëɬÍפ¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +を呼び出して全ての変更が実行されているかを確認する必要があるかもしれない。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .BR tcgetattr (), .BR tcsetattr (), .BR tcsendbreak (), @@ -1496,68 +1496,68 @@ B0 .\"O and .BR cfsetospeed () .\"O are specified in POSIX.1-2001. -¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は POSIX.1-2001 で規定されている。 .\"O .BR cfmakeraw () .\"O and .\"O .BR cfsetspeed () .\"O are nonstandard, but available on the BSDs. .BR cfmakeraw () -¤È +と .BR cfsetspeed () -¤ÏÈóɸ½à¤À¤¬¡¢BSD ¤Ç¤ÏÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +は非標準だが、BSD では利用可能である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O UNIX V7 and several later systems have a list of baud rates .\"O where after the fourteen values B0, ..., B9600 one finds the .\"O two constants EXTA, EXTB ("External A" and "External B"). .\"O Many systems extend the list with much higher baud rates. -UNIX V7 ¤È¤½¤Î¸å¤Î¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥Ü¡¼¥ì¡¼¥È¤Î 14 ¸Ä¤Î¥ê¥¹¥È¤Ç¤¢¤ë -B0, ..., B9600 ¤Î¸å¤í¤Ë EXTA, EXTB ("External A" ¤È "External B") ¤Î 2 ¤Ä¤ò -Äɲ䷤Ƥ¤¤ë¡£ -¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¤µ¤é¤Ë¹â®¤Ê¥Ü¡¼¥ì¡¼¥È¤Î¤¿¤á¤Ë¥ê¥¹¥È¤ò³ÈÄ¥¤·¤Æ¤¤¤ë¡£ +UNIX V7 とその後のいくつかのシステムでは、ボーレートの 14 個のリストである +B0, ..., B9600 の後ろに EXTA, EXTB ("External A" と "External B") の 2 つを +追加している。 +多くのシステムではさらに高速なボーレートのためにリストを拡張している。 .LP .\"O The effect of a nonzero \fIduration\fP with .\"O .BR tcsendbreak () .\"O varies. .BR tcsendbreak () -¤Ç \fIduration\fP ¤Ë 0 °Ê³°¤ò»ØÄꤷ¤¿¾ì¹ç¤Î¸ú²Ì¤ÏÍÍ¡¹¤Ç¤¢¤ë¡£ +で \fIduration\fP に 0 以外を指定した場合の効果は様々である。 .\"O SunOS specifies a break of .\"O .I "duration\ *\ N" .\"O seconds, where \fIN\fP is at least 0.25, and not more than 0.5. -SunOS ¤Ï +SunOS は .IB duration * N -ÉäΥ֥졼¥¯¤òµ¬Äꤷ¤Æ¤¤¤ë¡£¤³¤³¤Ç \fIN\fP ¤Ï 0.25 °Ê¾å 0.5 ̤Ëþ¤Ç¤¢¤ë¡£ +秒のブレークを規定している。ここで \fIN\fP は 0.25 以上 0.5 未満である。 .\"O Linux, AIX, DU, Tru64 send a break of .\"O .I duration .\"O milliseconds. -Linux, AIX, DU, Tru64 ¤Ï +Linux, AIX, DU, Tru64 は .I duration -¥ß¥êÉäΥ֥졼¥¯¤òÁ÷¿®¤¹¤ë¡£ +ミリ秒のブレークを送信する。 .\"O FreeBSD and NetBSD and HP-UX and MacOS ignore the value of .\"O .IR duration . -FreeBSD, NetBSD, HP-UX, MacOS ¤Ï +FreeBSD, NetBSD, HP-UX, MacOS は .I duration -¤ÎÃͤò̵»ë¤¹¤ë¡£ +の値を無視する。 .\"O Under Solaris and UnixWare, .\"O .BR tcsendbreak () .\"O with nonzero .\"O .I duration .\"O behaves like .\"O .BR tcdrain (). -Solaris ¤È UnixWare ¤Ç¤Ï¡¢Èó¥¼¥í¤Î +Solaris と UnixWare では、非ゼロの .I duration -¤ò»ØÄꤷ¤¿ +を指定した .BR tcsendbreak () -¤Î¿¶¤ëÉñ¤¤¤Ï +の振る舞いは .BR tcdrain () -¤ÈƱÍͤǤ¢¤ë¡£ +と同様である。 .\"O .\" libc4 until 4.7.5, glibc for sysv: EINVAL for duration > 0. .\"O .\" libc4.7.6, libc5, glibc for unix: duration in ms. .\"O .\" glibc for bsd: duration in us .\"O .\" glibc for sunos4: ignore duration .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR stty (1), .BR console_ioctl (4), .BR tty_ioctl (4), diff --git a/draft/man3/tgamma.3 b/draft/man3/tgamma.3 index c770a50e..251ebcc1 100644 --- a/draft/man3/tgamma.3 +++ b/draft/man3/tgamma.3 @@ -16,11 +16,11 @@ .\" .TH TGAMMA 3 2010-09-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O tgamma, tgammaf, tgammal \- true gamma function -tgamma, tgammaf, tgammal \- ËÜÅö¤Î¥¬¥ó¥Þ´Ø¿ô +tgamma, tgammaf, tgammal \- 本当のガンマ関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "double tgamma(double " x ); @@ -30,14 +30,14 @@ tgamma, tgammaf, tgammal \- .BI "long double tgammal(long double " x ); .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -53,17 +53,17 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The Gamma function is defined by .\"O .sp .\"O Gamma(x) = integral from 0 to infinity of t^(x\-1) e^\-t dt .\"O .sp .\"O It is defined for every real number except for nonpositive integers. -¥¬¥ó¥Þ´Ø¿ô¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë: +ガンマ関数は以下のように定義される: .sp - Gamma(x) = t^(x\-1) e^\-t dt ¤Î 0 ¤«¤é̵¸ÂÂç¤Þ¤Ç¤ÎÀÑʬ + Gamma(x) = t^(x\-1) e^\-t dt の 0 から無限大までの積分 .sp -¤³¤Î´Ø¿ô¤ÏÀµ¤Ç¤Ê¤¤À°¿ô¤ò½ü¤¯¤¹¤Ù¤Æ¤Î¼Â¿ô¤ËÂФ·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +この関数は正でない整数を除くすべての実数に対して定義されている。 .\"O For nonnegative integral \fIm\fP one has .\"O .sp .\"O Gamma(m+1) = m! @@ -77,34 +77,34 @@ or .\"O .sp .\"O Gamma(x) * Gamma(1 \- x) = PI / sin(PI * x) .\"O .PP -ÈóÉé¤ÎÀ°¿ô \fIm\fP ¤Ë´Ø¤·¤Æ¡¢°Ê²¼¤¬À®Î©¤¹¤ë: +非負の整数 \fIm\fP に関して、以下が成立する: .sp Gamma(m+1) = m! .sp -¤è¤ê°ìÈÌŪ¤Ë¤Ï¡¢¤¹¤Ù¤Æ¤Î \fIx\fP ¤Ë´Ø¤·¤Æ°Ê²¼¤¬À®Î©¤¹¤ë: +より一般的には、すべての \fIx\fP に関して以下が成立する: .sp Gamma(x+1) = x * Gamma(x) .sp -¤µ¤é¤Ë¡¢¶Ë¤ò½ü¤¯¤¹¤Ù¤Æ¤Î \fIx\fP ¤Ç¼¡¼°¤âÀ®Î©¤¹¤ë: +さらに、極を除くすべての \fIx\fP で次式も成立する: .sp Gamma(x) * Gamma(1 \- x) = PI / sin(PI * x) .PP .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return Gamma(x). -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï Gamma(x) ¤òÊÖ¤¹¡£ +成功すると、これらの関数は Gamma(x) を返す。 .\"O If .\"O .I x .\"O is a NaN, a NaN is returned. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x .\"O is positive infinity, positive infinity is returned. .I x -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢Àµ¤Î̵¸ÂÂ礬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大の場合、正の無限大が返される。 .\"O If .\"O .I x @@ -112,8 +112,8 @@ or .\"O a domain error occurs, .\"O and a NaN is returned. .I x -¤¬Éé¤ÎÀ°¿ô¤«Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ -NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が負の整数か負の無限大の場合、領域エラー (domain error) が発生し、 +NaN が返される。 .\"O If the result overflows, .\"O a range error occurs, @@ -123,18 +123,18 @@ NaN .\"O or .\"O .BR HUGE_VALL , .\"O respectively, with the correct mathematical sign. -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +結果がオーバーフローする場合、範囲エラー (range error) が発生し、 +各関数はそれぞれ .BR HUGE_VAL , .BR HUGE_VALF , .BR HUGE_VALL , -¤òÊÖ¤¹¡£¤³¤ÎºÝ¡¢¿ô³ØŪ¤ËÀµ¤·¤¤Éä¹æ¤¬ÉÕÍ¿¤µ¤ì¤ë¡£ +を返す。この際、数学的に正しい符号が付与される。 .\"O If the result underflows, .\"O a range error occurs, .\"O and the functions return 0, with the correct mathematical sign. -·ë²Ì¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢ -´Ø¿ô¤Ï 0 ¤ò¤òÊÖ¤¹¡£¤³¤ÎºÝ¡¢¿ô³ØŪ¤ËÀµ¤·¤¤Éä¹æ¤¬ÉÕÍ¿¤µ¤ì¤ë¡£ +結果がアンダーフローする場合、範囲エラー (range error) が発生し、 +関数は 0 をを返す。この際、数学的に正しい符号が付与される。 .\"O If .\"O .I x @@ -147,28 +147,28 @@ NaN .\"O .BR HUGE_VALL , .\"O respectively, with the same sign as the 0. .I x -¤¬ \-0 ¤« +0 ¤Î¾ì¹ç¡¢¶Ë¥¨¥é¡¼ (pole error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +が \-0 か +0 の場合、極エラー (pole error) が発生し、 +各関数はそれぞれ .BR HUGE_VAL , .BR HUGE_VALF , .BR HUGE_VALL , -¤òÊÖ¤¹¡£ -0 ¤ÈƱ¤¸Éä¹æ¤¬ÉÕÍ¿¤µ¤ì¤ë¡£ +を返す。 +0 と同じ符号が付与される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Domain error: \fIx\fP is a negative integer, or negative infinity -Îΰ襨¥é¡¼: \fIx\fP ¤¬Éé¤ÎÀ°¿ô¤«Éé¤Î̵¸ÂÂç +領域エラー: \fIx\fP が負の整数か負の無限大 .\" FIXME . errno is not set to EDOM for x == -inf .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6809 .\"O .I errno @@ -178,15 +178,15 @@ NaN .\"O .RB ( FE_INVALID ) .\"O is raised (but see BUGS). .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë¡£ -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë (¡Ö¥Ð¥°¡×¤ÎÀá¤ò»²¾È)¡£ +が上がる (「バグ」の節を参照)。 .TP .\"O Pole error: \fIx\fP is +0 or \-0 -¶Ë¥¨¥é¡¼ (pole error): \fIx\fP ¤¬ +0 ¤« \-0 +極エラー (pole error): \fIx\fP が +0 か \-0 .\"O .I errno .\"O is set to .\"O .BR ERANGE . @@ -194,15 +194,15 @@ NaN .\"O .RB ( FE_DIVBYZERO ) .\"O is raised. .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -0 ¤Ë¤è¤ë½ü»» (divide-by-zero) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +0 による除算 (divide-by-zero) 浮動小数点例外 .RB ( FE_DIVBYZERO ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP .\"O Range error: result overflow -ÈÏ°Ï¥¨¥é¡¼ (range error): ·ë²Ì¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ +範囲エラー (range error): 結果のオーバーフロー .\"O .I errno .\"O is set to .\"O .BR ERANGE . @@ -210,20 +210,20 @@ NaN .\"O .RB ( FE_OVERFLOW ) .\"O is raised. .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP .\"O glibc also gives the following error which is not specified .\"O in C99 or POSIX.1-2001. -glibc ¤Ç¤Ï¡¢C99 ¤ä POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤°Ê²¼¤Î¥¨¥é¡¼¤â -µ¯¤³¤êÆÀ¤ë¡£ +glibc では、C99 や POSIX.1-2001 で規定されていない以下のエラーも +起こり得る。 .TP .\"O Range error: result underflow -ÈÏ°Ï¥¨¥é¡¼ (range error): ·ë²Ì¤Î¥¢¥ó¥À¡¼¥Õ¥í¡¼ +範囲エラー (range error): 結果のアンダーフロー .\" e.g., tgamma(-172.5) on glibc 2.8/x86-32 .\" .I errno .\" is set to @@ -234,40 +234,40 @@ glibc .\"O .IP .\"O .I errno .\"O is not set for this case. -¥¢¥ó¥À¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +アンダーフロー浮動小数点例外 .RB ( FE_UNDERFLOW ) -¤¬¾å¤¬¤ë¡£ -¤³¤Î¾ì¹ç¤Ï +が上がる。 +この場合は .I errno -¤ÏÀßÄꤵ¤ì¤Ê¤¤¡£ +は設定されない。 .\" FIXME . Is it intentional that errno is not set: .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6810 .\" .\" glibc (as at 2.8) also supports and an inexact .\" exception for various cases. .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O This function had to be called "true gamma function" .\"O since there is already a function .\"O .BR gamma (3) .\"O that returns something else (see .\"O .BR gamma (3) .\"O for details). -¤³¤Î´Ø¿ô¤ò¡ÖËÜÅö¤Î (true) ¥¬¥ó¥Þ´Ø¿ô¡×¤È¸Æ¤Ð¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤«¤Ã¤¿¡£ -¤Ê¤¼¤Ê¤é¡¢Â¾¤ÎÃͤòÊÖ¤¹ +この関数を「本当の (true) ガンマ関数」と呼ばなければならなかった。 +なぜなら、他の値を返す .BR gamma (3) -¤È¤¤¤¦´Ø¿ô¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¤«¤é¤Ç¤¢¤ë (¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï +という関数がすでに存在するからである (詳細については .BR gamma (3) -¤ò»²¾È)¡£ +を参照)。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O If .\"O .I x .\"O is negative infinity, @@ -275,11 +275,11 @@ C99, POSIX.1-2001. .\"O is not set (it should be set to .\"O .BR EDOM ). .I x -¤¬Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ +が負の無限大の場合、 .I errno -¤ÏÀßÄꤵ¤ì¤Ê¤¤ +は設定されない .RB ( EDOM -¤¬ÀßÄꤵ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë)¡£ +が設定されるべきである)。 .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6809 .\"O In glibc versions 2.3.3 and earlier, @@ -290,17 +290,17 @@ C99, POSIX.1-2001. .\"O and an .\"O .B FE_INVALID .\"O exception raised), rather than a pole error. -glibc ¥Ð¡¼¥¸¥ç¥ó 2.3.3 °ÊÁ°¤Ç¤Ï¡¢ -°ú¤­¿ô¤Ë +0 ¤ä \-0 ¤òÅϤ¹¤È¡¢¶Ë¥¨¥é¡¼¤Ç¤Ï¤Ê¤¯¡¢ -Îΰ襨¥é¡¼¤ò´Ö°ã¤Ã¤ÆȯÀ¸¤·¤Æ¤¤¤¿ -(Îΰ襨¥é¡¼¤Î¾ì¹ç¡¢ +glibc バージョン 2.3.3 以前では、 +引き数に +0 や \-0 を渡すと、極エラーではなく、 +領域エラーを間違って発生していた +(領域エラーの場合、 .I errno -¤Ë +に .B EDOM -¤òÀßÄꤵ¤ì¡¢ +を設定され、 .B FE_INVALID -Îã³°¤¬È¯À¸¤¹¤ë)¡£ +例外が発生する)。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR gamma (3), .BR lgamma (3) diff --git a/draft/man3/timegm.3 b/draft/man3/timegm.3 index b7817d20..22c0292a 100644 --- a/draft/man3/timegm.3 +++ b/draft/man3/timegm.3 @@ -26,10 +26,10 @@ .TH TIMEGM 3 2007-07-26 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O timegm, timelocal \- inverses of gmtime and localtime -.SH ̾Á° -timegm, timelocal \- gmtime ¤È localtime ¤ÎµÕ´Ø¿ô +.SH 名前 +timegm, timelocal \- gmtime と localtime の逆関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -41,16 +41,16 @@ timegm, timelocal \- gmtime .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR timelocal (), .BR timegm (): _BSD_SOURCE || _SVID_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The functions .\"O .BR timelocal () .\"O and @@ -60,33 +60,33 @@ _BSD_SOURCE || _SVID_SOURCE .\"O and .\"O .BR gmtime (3). .BR timelocal () -´Ø¿ô¤È +関数と .BR timegm () -´Ø¿ô¤Ï¡¢¤½¤ì¤¾¤ì +関数は、それぞれ .BR localtime (3) -´Ø¿ô¤È +関数と .BR gmtime (3) -´Ø¿ô¤ÎµÕ´Ø¿ô¤Ç¤¢¤ë¡£ +関数の逆関数である。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O These functions are nonstandard GNU extensions .\"O that are also present on the BSDs. .\"O Avoid their use; see NOTES. -¤³¤ì¤é¤Î´Ø¿ô¤ÏÈóɸ½à¤Ç GNU ¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ -BSD ·Ï¤Ë¤â¸ºß¤¹¤ë¡£ -¤³¤ì¤é¤Î»ÈÍѤÏÈò¤±¤ë¤³¤È¡£¡ÖÃí°Õ¡×»²¾È¡£ +これらの関数は非標準で GNU の拡張である。 +BSD 系にも存在する。 +これらの使用は避けること。「注意」参照。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The .\"O .BR timelocal () .\"O function is equivalent to the POSIX standard function .\"O .BR mktime (3). .\"O There is no reason to ever use it. .BR timelocal () -´Ø¿ô¤Ï POSIX ¤Îɸ½à´Ø¿ô +関数は POSIX の標準関数 .BR mktime (3) -¤ÈƱ¤¸¤â¤Î¤Ç¤¢¤ë¡£ -¤Î¤Ç¡¢¤³¤ì¤ò»È¤¦Íýͳ¤Ï¤Ê¤¤¤Ï¤º¤Ç¤¢¤ë¡£ +と同じものである。 +ので、これを使う理由はないはずである。 .LP .\"O For a portable version of .\"O .BR timegm (), @@ -98,14 +98,14 @@ BSD .\"O .BR TZ . .\"O Something like .BR timegm () -¤ò°Ü¿¢À­¤¬¤¢¤ë¤è¤¦¤Ê¤«¤¿¤Á¤Ç¼Â¸½¤¹¤ë¤Ë¤Ï¡¢ +を移植性があるようなかたちで実現するには、 .B TZ -´Ä¶­ÊÑ¿ô¤ò UTC ¤ËÀßÄꤷ¤Æ¤«¤é +環境変数を UTC に設定してから .BR mktime (3) -¤ò¸Æ¤ó¤Ç¡¢ +を呼んで、 .B TZ -¤ÎÃͤò¼èÆÀ¤¹¤ì¤Ð¤è¤¤¡£ -Î㤨¤Ð¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¤À¤í¤¦¡£ +の値を取得すればよい。 +例えば次のようになるだろう。 .\"O .sp .in +4n @@ -132,7 +132,7 @@ time_t my_timegm (struct tm *tm) .fi .in .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR gmtime (3), .BR localtime (3), .BR mktime (3), diff --git a/draft/man3/timeradd.3 b/draft/man3/timeradd.3 index 1f356d2e..164e40c1 100644 --- a/draft/man3/timeradd.3 +++ b/draft/man3/timeradd.3 @@ -29,11 +29,11 @@ .\" .TH TIMERADD 3 2010-02-25 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O timeradd, timersub, timercmp, timerclear, timerisset \- timeval operations -timeradd, timersub, timercmp, timerclear, timerisset \- timeval ¤ÎÁàºî +timeradd, timersub, timercmp, timerclear, timerisset \- timeval の操作 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include @@ -53,35 +53,35 @@ timeradd, timersub, timercmp, timerclear, timerisset \- timeval .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .\"O All functions shown above: -¾åµ­¤ÎÁ´¤Æ¤Î´Ø¿ô: +上記の全ての関数: _BSD_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The macros are provided to operate on .\"O .I timeval .\"O structures, defined in .\"O .I .\"O as: .I timeval -¹½Â¤ÂΤòÁàºî¤¹¤ë¤¿¤á¤Î¥Þ¥¯¥í¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¡£ +構造体を操作するためのマクロが提供されている。 .I timeval -¹½Â¤ÂÎ¤Ï +構造体は .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で以下のように定義されている。 .sp .in +4n .nf struct timeval { .\"O time_t tv_sec; /* seconds */ .\"O suseconds_t tv_usec; /* microseconds */ - time_t tv_sec; /* Éà */ - suseconds_t tv_usec; /* ¥Þ¥¤¥¯¥íÉà */ + time_t tv_sec; /* 秒 */ + suseconds_t tv_usec; /* マイクロ秒 */ }; .fi .in @@ -99,17 +99,17 @@ struct timeval { .\"O .I res\->tv_usec .\"O has a value in the range 0 to 999,999. .BR timeradd () -¤Ï¡¢ +は、 .I a -¤È +と .I b -¤Î»þ¹ïÃͤò²Ã»»¤·¡¢¤½¤Î¹ç·×¤ò +の時刻値を加算し、その合計を .I res -¤Ë¤è¤ê»²¾È¤µ¤ì¤ë +により参照される .I timeval -¹½Â¤ÂΤ˳ÊǼ¤¹¤ë¡£·ë²Ì¤Ï¡¢ +構造体に格納する。結果は、 .I res\->tv_usec -¤ÎÃͤ¬ 0 ¤«¤é 999,999 ¤ÎÈϰϤËÆþ¤ë¤è¤¦¤ËÀµµ¬²½¤µ¤ì¤ë¡£ +の値が 0 から 999,999 の範囲に入るように正規化される。 .\"O .BR timersub () .\"O subtracts the time value in @@ -124,17 +124,17 @@ struct timeval { .\"O .I res\->tv_usec .\"O has a value in the range 0 to 999,999. .BR timersub () -¤Ï¡¢ +は、 .I a -¤Î»þ¹ïÃͤ«¤é +の時刻値から .I b -¤Î»þ¹ïÃͤò¸º»»¤·¡¢¤½¤Î·ë²Ì¤ò +の時刻値を減算し、その結果を .I res -¤Ë¤è¤ê»²¾È¤µ¤ì¤ë +により参照される .I timeval -¹½Â¤ÂΤ˳ÊǼ¤¹¤ë¡£·ë²Ì¤Ï¡¢ +構造体に格納する。結果は、 .I res\->tv_usec -¤ÎÃͤ¬ 0 ¤«¤é 999,999 ¤ÎÈϰϤËÆþ¤ë¤è¤¦¤ËÀµµ¬²½¤µ¤ì¤ë¡£ +の値が 0 から 999,999 の範囲に入るように正規化される。 .\"O .BR timerclear () .\"O zeros out the @@ -143,14 +143,14 @@ struct timeval { .\"O .IR tvp , .\"O so that it represents the Epoch: 1970-01-01 00:00:00 +0000 (UTC). .BR timerclear () -¤Ï +は .I tvp -¤Ë¤è¤ê»²¾È¤µ¤ì¤ë +により参照される .I timeval -¹½Â¤ÂΤò 0 ¤ÇËä¤á¤ë¡£ -0 ¤ÇËä¤á¤é¤ì¤¿ +構造体を 0 で埋める。 +0 で埋められた .I timeval -¹½Â¤ÂΤϡ¢»þ¹ïµª¸µ (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) ¤òɽ¤¹¡£ +構造体は、時刻紀元 (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) を表す。 .\"O .BR timerisset () .\"O returns true (nonzero) if either field of the @@ -159,12 +159,12 @@ struct timeval { .\"O .I tvp .\"O contains a nonzero value. .BR timerisset () -¤Ï¡¢ +は、 .I tvp -¤Ë¤è¤ê»²¾È¤µ¤ì¤ë +により参照される .I timeval -¹½Â¤ÂΤΤ¤¤º¤ì¤«°ìÊý¤Î¥Õ¥£¡¼¥ë¥É¤Ë 0 °Ê³°¤ÎÃͤ¬Æþ¤Ã¤Æ¤¤¤ì¤Ð¡¢ -¿¿ (0 °Ê³°) ¤òÊÖ¤¹¡£ +構造体のいずれか一方のフィールドに 0 以外の値が入っていれば、 +真 (0 以外) を返す。 .\"O .BR timercmp () .\"O compares the timer values in @@ -176,13 +176,13 @@ struct timeval { .\"O and returns true (nonzero) or false (0) depending on .\"O the result of the comparison. .BR timercmp () -¤Ï +は .I a -¤È +と .I b -¤Î»þ¹ïÃͤòÈæ³Ó±é»»»Ò +の時刻値を比較演算子 .I CMP -¤ò»È¤Ã¤ÆÈæ³Ó¤·¡¢Èæ³Ó·ë²Ì¤Ë´ð¤Å¤­¡¢¿¿ (0 °Ê³°) ¤«µ¶ (0) ¤òÊÖ¤¹¡£ +を使って比較し、比較結果に基づき、真 (0 以外) か偽 (0) を返す。 .\"O Some systems (but not Linux/glibc), .\"O have a broken .\"O .BR timercmp () @@ -199,49 +199,49 @@ struct timeval { .\"O and .\"O .I == .\"O do not work; -(Linux/glibc ¤Ï¤½¤¦¤Ç¤Ï¤Ê¤¤¤¬) -¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +(Linux/glibc はそうではないが) +いくつかのシステムでは、 .BRr timercmp () -¤Î¼ÂÁõ¤¬¤ª¤«¤·¤¯¡¢ -.\" HP-UX, Tru64, Irix ¤Ç¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +の実装がおかしく、 +.\" HP-UX, Tru64, Irix では以下のように定義されている。 .\"#define timercmp(tvp, uvp, cmp) \ .\" ((tvp)->tv_sec cmp (uvp)->tv_sec || \ .\" (tvp)->tv_sec == (uvp)->tv_sec && (tvp)->tv_usec cmp (uvp)->tv_usec) .I CMP -¤Ë +に .IR >= , .IR <= , .I == -¤ò»ØÄꤹ¤ë¤ÈÀµ¤·¤¯Æ°ºî¤·¤Ê¤¤¡£ +を指定すると正しく動作しない。 .\"O portable applications can instead use -°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ -Âå¤ï¤ê¤Ë°Ê²¼¤ò»È¤¦¤³¤È¡£ +移植性が必要なアプリケーションでは、 +代わりに以下を使うこと。 !timercmp(..., <) !timercmp(..., >) !timercmp(..., !=) .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR timerisset () .\"O and .\"O .BR timercmp () .\"O return true (nonzero) or false (0). .BR timerisset () -¤È +と .BR timercmp () -¤Ï¡¢¿¿ (0 °Ê³°) ¤«µ¶ (0) ¤òÊÖ¤¹¡£ +は、真 (0 以外) か偽 (0) を返す。 .BR .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O No errors are defined. -¥¨¥é¡¼¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +エラーは定義されていない。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O Not in POSIX.1-2001. .\"O Present on most BSD derivatives. -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -¤Û¤È¤ó¤É¤Î BSD ͳÍè¤Î¥·¥¹¥Æ¥à¤Ë¤Ï¸ºß¤¹¤ë¡£ +POSIX.1-2001 にはない。 +ほとんどの BSD 由来のシステムには存在する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR gettimeofday (2), .BR time (7) diff --git a/draft/man3/tmpfile.3 b/draft/man3/tmpfile.3 index 2a386b45..1646cf1d 100644 --- a/draft/man3/tmpfile.3 +++ b/draft/man3/tmpfile.3 @@ -36,18 +36,18 @@ .\" .TH TMPFILE 3 2008-07-14 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O tmpfile \- create a temporary file -tmpfile \- ¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë +tmpfile \- テンポラリファイルを作成する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .B FILE *tmpfile(void); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR tmpfile () .\"O function opens a unique temporary file @@ -55,11 +55,11 @@ tmpfile \- .\"O The file will be automatically deleted when it is closed or the .\"O program terminates. .BR tmpfile () -´Ø¿ô¤Ï¥æ¥Ë¡¼¥¯¤Ê¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë¤ò -¥Ð¥¤¥Ê¥ê¥ê¡¼¥É¥é¥¤¥È¥â¡¼¥É (w+b) ¤Ç¥ª¡¼¥×¥ó¤¹¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥¯¥í¡¼¥º»þ¤Þ¤¿¤Ï¥×¥í¥°¥é¥à¤Î½ªÎ»»þ¤Ë¼«Æ°Åª¤Ëºï½ü¤µ¤ì¤ë¡£ +関数はユニークなテンポラリファイルを +バイナリリードライトモード (w+b) でオープンする。 +このファイルはクローズ時またはプログラムの終了時に自動的に削除される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR tmpfile () .\"O function returns a stream descriptor, or NULL if @@ -67,63 +67,63 @@ tmpfile \- .\"O opened. .\"O In the latter case, \fIerrno\fP is set to indicate the error. .BR tmpfile () -´Ø¿ô¤Ï¥Õ¥¡¥¤¥ë¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¤«¡¢ -¥æ¥Ë¡¼¥¯¤Ê¥Õ¥¡¥¤¥ë¤¬ºî¤ì¤Ê¤«¤Ã¤¿¤«¥ª¡¼¥×¥ó¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ -¸å¼Ô¤Î¾ì¹ç¡¢¥¨¥é¡¼¤òɽ¤¹ \fIerrno\fP ¤òÀßÄꤹ¤ë¡£ +関数はファイルポインタを返すか、 +ユニークなファイルが作れなかったかオープンできなかった場合は NULL を返す。 +後者の場合、エラーを表す \fIerrno\fP を設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O Search permission denied for directory in file's path prefix. -¥Õ¥¡¥¤¥ë¤Î¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥µ¡¼¥Á¤Î¥¢¥¯¥»¥¹¸¢ (search permission) ¤¬¤Ê¤¤¡£ +ファイルのあるディレクトリにサーチのアクセス権 (search permission) がない。 .TP .B EEXIST .\"O Unable to generate a unique filename. -¥æ¥Ë¡¼¥¯¤Ê¥Õ¥¡¥¤¥ë̾¤¬ºîÀ®¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +ユニークなファイル名が作成できなかった。 .TP .B EINTR .\"O The call was interrupted by a signal. -¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤ÆÃæÃǤµ¤ì¤¿¡£ +呼び出しがシグナルによって中断された。 .TP .B EMFILE .\"O Too many file descriptors in use by the process. -1 ¤Ä¤Î¥×¥í¥»¥¹¤Ç»ÈÍѲÄǽ¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¿ô¤òĶ²á¤·¤¿¡£ +1 つのプロセスで使用可能なファイルディスクリプタ数を超過した。 .TP .B ENFILE .\"O Too many files open in the system. -¥·¥¹¥Æ¥àÁ´ÂΤǥª¡¼¥×¥ó²Äǽ¤Ê¥Õ¥¡¥¤¥ë¿ô¤òĶ²á¤·¤¿¡£ +システム全体でオープン可能なファイル数を超過した。 .TP .B ENOSPC -¥Ç¥£¥ì¥¯¥È¥ê¤Ë¿·¤·¤¤¥Õ¥¡¥¤¥ë¤òÄɲ乤뤿¤á¤Î¶õ¤­Îΰ褬¤Ê¤¤¡£ +ディレクトリに新しいファイルを追加するための空き領域がない。 .TP .B EROFS .\"O Read-only file system. -ÆɤߤÀ¤·ÀìÍÑ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£ +読みだし専用ファイルシステムである。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, C89, C99, SUSv2, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O POSIX.1-2001 specifies: .\"O an error message may be written to \fIstdout\fP if the stream .\"O cannot be opened. -POSIX.1-2001 ¤Ç¤Ï¡¢ -¥¹¥È¥ê¡¼¥à¤ò¥ª¡¼¥×¥ó¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ -\fIstdout\fP ¤Ë¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬½ñ¤­½Ð¤µ¤ì¤ë¡¢¤Èµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +POSIX.1-2001 では、 +ストリームをオープンできなかった場合、 +\fIstdout\fP にエラーメッセージが書き出される、と規定されている。 .LP .\"O The standard does not specify the directory that .\"O .BR tmpfile () .\"O will use. .\"O Glibc will try the path prefix \fIP_tmpdir\fP defined .\"O in \fI\fP, and if that fails the directory \fI/tmp\fP. -µ¬³Ê¤Ç¤Ï +規格では .BR tmpfile () -¤¬»È¤¦¥Ç¥£¥ì¥¯¥È¥ê¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -glibc ¤Ç¤Ï \fI\fP ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë -\fIP_tmpdir\fP ¤ò¥Ñ¥¹¤ÎÀèƬ¤Ë»È¤ª¤¦¤È¤¹¤ë¡£ -¤³¤ì¤¬¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê \fI/tmp\fP ¤ò»È¤¦¡£ +が使うディレクトリは指定されていない。 +glibc では \fI\fP で定義されている +\fIP_tmpdir\fP をパスの先頭に使おうとする。 +これが失敗した場合は、ディレクトリ \fI/tmp\fP を使う。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR exit (3), .BR mkstemp (3), .BR mktemp (3), diff --git a/draft/man3/tmpnam.3 b/draft/man3/tmpnam.3 index ebfc8bb3..80ec150e 100644 --- a/draft/man3/tmpnam.3 +++ b/draft/man3/tmpnam.3 @@ -32,18 +32,18 @@ .\" .TH TMPNAM 3 2010-09-10 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O tmpnam, tmpnam_r \- create a name for a temporary file -tmpnam, tmpnam_r \- °ì»þ¥Õ¥¡¥¤¥ë¤Î̾Á°¤òºîÀ®¤¹¤ë +tmpnam, tmpnam_r \- 一時ファイルの名前を作成する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "char *tmpnam(char *" s ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR tmpnam () .\"O function returns a pointer to a string that is a valid filename, @@ -56,16 +56,16 @@ tmpnam, tmpnam_r \- .\"O and may be overwritten by the next call to .\"O .BR tmpnam (). .BR tmpnam () -´Ø¿ô¤Ï¡¢¥Õ¥¡¥¤¥ë̾¤Ë»È¤¨¤ëʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤¢¤ë»þÅÀ¤Ç¤ÏƱ¤¸Ì¾Á°¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¥Õ¥¡¥¤¥ë̾¤¬ÊÖ¤µ¤ì¤ë¤Î¤Ç¡¢ -ÍÄÃÕ¤Ê¥×¥í¥°¥é¥Þ¤Ï¤³¤Îʸ»úÎ󤬰ì»þ¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë̾¤È¤·¤Æ -Ŭ¤·¤Æ¤¤¤ë¤È¹Í¤¨¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -°ú¤­¿ô +関数は、ファイル名に使える文字列へのポインタを返す。 +ある時点では同じ名前を持つファイルが存在しないファイル名が返されるので、 +幼稚なプログラマはこの文字列が一時ファイルのファイル名として +適していると考えるかもしれない。 +引き数 .I s -¤¬ NULL ¤Ê¤é¡¢¤³¤Î̾Á°¤ÏÆâÉô¤ÎÀÅŪ¥Ð¥Ã¥Õ¥¡¤ËºîÀ®¤µ¤ì¡¢ -¼¡¤Ë +が NULL なら、この名前は内部の静的バッファに作成され、 +次に .BR tmpnam () -´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿»þ¤Ë¾å½ñ¤­¤µ¤ì¤ë¡£ +関数が呼び出された時に上書きされる。 .\"O If .\"O .I s .\"O is not NULL, the name is copied to the character array (of length @@ -77,20 +77,20 @@ tmpnam, tmpnam_r \- .\"O .I s .\"O is returned in case of success. .I s -¤¬ NULL ¤Ç¤Ê¤±¤ì¤Ð¡¢¥Õ¥¡¥¤¥ë̾¤Ï +が NULL でなければ、ファイル名は .I s -¤¬»Ø¤¹ (¾¯¤Ê¤¯¤È¤â +が指す (少なくとも .I L_tmpnam -¤ÎŤµ¤ò»ý¤Ä) ʸ»úÇÛÎó¤Ë¥³¥Ô¡¼¤µ¤ì¡¢ -À®¸ù¤·¤¿¾ì¹ç¤Ï +の長さを持つ) 文字配列にコピーされ、 +成功した場合は .I s -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .LP .\"O The pathname that is created, has a directory prefix .\"O .IR P_tmpdir . -ºîÀ®¤µ¤ì¤ë¥Ñ¥¹Ì¾¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤ÎÉôʬ¤Ë +作成されるパス名は、ディレクトリの部分に .I P_tmpdir -¤¬»È¤ï¤ì¤ë¡£ +が使われる。 .\"O (Both .\"O .I L_tmpnam .\"O and @@ -101,36 +101,36 @@ tmpnam, tmpnam_r \- .\"O .B TMP_MAX .\"O mentioned below.) .RI ( L_tmpnam -¤È +と .I P_tmpdir -¤Ï¡¢°Ê²¼¤ÇÀâÌÀ¤¹¤ë +は、以下で説明する .B TMP_MAX -ƱÍÍ +同様 .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£) +で定義されている。) .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR tmpnam () .\"O function returns a pointer to a unique temporary .\"O filename, or NULL if a unique name cannot be generated. .BR tmpnam () -´Ø¿ô¤Ï°ì°Õ¤Ê°ì»þ¥Õ¥¡¥¤¥ë̾¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -°ì°Õ¤Ê¥Õ¥¡¥¤¥ë̾¤¬ºîÀ®¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +関数は一意な一時ファイル名へのポインタを返す。 +一意なファイル名が作成できなかった場合は NULL を返す。 +.SH エラー .\"O No errors are defined. -¥¨¥é¡¼¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +エラーは定義されていない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, C89, C99, POSIX.1-2001. .\"O POSIX.1-2008 marks .\"O .BR tmpnam () .\"O as obsolete. -POSIX.1-2008 ¤Ï +POSIX.1-2008 は .BR tmpnam () -¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£ +を廃止予定としている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The .\"O .BR tmpnam () .\"O function generates a different string each time it is called, @@ -142,11 +142,11 @@ POSIX.1-2008 .\"O times, .\"O the behavior is implementation defined. .BR tmpnam () -´Ø¿ô¤ÏºÇÂç +関数は最大 .B TMP_MAX -²ó¤Þ¤Ç¡¢¸Æ¤Ó½Ð¤µ¤ì¤ëÅ٤˰ۤʤëʸ»úÎó¤òºîÀ®¤¹¤ë¡£ +回まで、呼び出される度に異なる文字列を作成する。 .B TMP_MAX -²ó°Ê¾å¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¡¢¤½¤ÎÆ°ºî¤Ï¼ÂÁõ°Í¸¤Ç¤¢¤ë¡£ +回以上呼び出された場合、その動作は実装依存である。 .LP .\"O Although .\"O .BR tmpnam () @@ -167,23 +167,23 @@ POSIX.1-2008 .\"O or .\"O .BR tmpfile (3). .BR tmpnam () -¤Ï¿ä¬¤¬Æñ¤·¤¤Ì¾Á°¤òÀ¸À®¤¹¤ë¤¬¡¢¤½¤ì¤Ë¤â¤«¤«¤ï¤é¤º¡¢ +は推測が難しい名前を生成するが、それにもかかわらず、 .BR tmpnam () -¤¬¥Ñ¥¹Ì¾¤òÊÖ¤·¤Æ¤«¤é¡¢¥×¥í¥°¥é¥à¤¬¤½¤Î¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë -¤Þ¤Ç¤Î´Ö¤Ë¡¢ÊÌ¤Î¥×¥í¥°¥é¥à¤¬Æ±¤¸¥Ñ¥¹Ì¾¤Ç¡¢¥Õ¥¡¥¤¥ë¤ò +がパス名を返してから、プログラムがそのファイルをオープンする +までの間に、別のプログラムが同じパス名で、ファイルを .BR open (2) -¤ÇºîÀ®¤·¤¿¤ê¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òºîÀ®¤·¤¿¤ê¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¤³¤ì¤Ï¥»¥­¥å¥ê¥Æ¥£¥Û¡¼¥ë¤Ë¤Ä¤Ê¤¬¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¤½¤Î¤è¤¦¤Ê²ÄǽÀ­¤ò²óÈò¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ +で作成したり、シンボリックリンクを作成したりする可能性がある。 +これはセキュリティホールにつながる可能性がある。 +そのような可能性を回避するためには、 .BR open (2) -¤Î +の .B O_EXCL -¥Õ¥é¥°¤ò»È¤Ã¤Æ¥Ñ¥¹Ì¾¤ò¥ª¡¼¥×¥ó¤¹¤ì¤Ð¤è¤¤¡£ -¤â¤Ã¤È¤¤¤¤¤Î¤Ï¡¢ +フラグを使ってパス名をオープンすればよい。 +もっといいのは、 .BR mkstemp (3) -¤ä +や .BR tmpfile (3) -¤ò»È¤¦¤³¤È¤Ç¤¢¤ë¡£ +を使うことである。 .LP .\"O Portable applications that use threads cannot call .\"O .BR tmpnam () @@ -192,13 +192,13 @@ POSIX.1-2008 .\"O or .\"O .B _POSIX_THREAD_SAFE_FUNCTIONS .\"O is defined. -°Ü¿¢À­¤¬É¬Íפʡ¢¥¹¥ì¥Ã¥É¤ò»È¤Ã¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ +移植性が必要な、スレッドを使ったアプリケーションでは、 .B _POSIX_THREADS -¤« +か .B _POSIX_THREAD_SAFE_FUNCTIONS -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢ +が定義されている場合に、 .BR tmpnam () -´Ø¿ô¤ò NULL °ú¤­¿ô¤Ç¸Æ¤Ó½Ð¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +関数を NULL 引き数で呼び出してはならない。 .LP .\"O A POSIX draft proposed to use a function .\"O .BR tmpnam_r () @@ -213,11 +213,11 @@ POSIX.1-2008 .\"O .fi .\"O .sp .\"O apparently as a warning not to use NULL. -POSIX Áð°Æ¤Ç¤Ï¡¢´Ø¿ô +POSIX 草案では、関数 .BR tmpnam_r () -¤ò»È¤¦¤³¤È¤òÄó°Æ¤·¤Æ¤¤¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ -NULL ¤ò»È¤ï¤Ê¤¤¤è¤¦¤Ë¤È¤¤¤¦·Ù¹ð¤Î°ÕÌ£¤Ç NULL ¤òÊÌ°·¤¤¤·¤Æ¤¤¤ë¡£ +を使うことを提案している。 +この関数は、以下のように定義されており、 +NULL を使わないようにという警告の意味で NULL を別扱いしている。 .sp .nf .in +4n @@ -239,30 +239,30 @@ tmpnam_r(char *s) .\"O (before including .\"O .I any .\"O header file). -¿ô¤Ï¾¯¤Ê¤¤¤¬¡¢¤³¤Î´Ø¿ô¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Î glibc ¤Î¥×¥í¥È¥¿¥¤¥×¤ò +数は少ないが、この関数を実装しているシステムもある。 +この関数の glibc のプロトタイプを .I -¤«¤éÆÀ¤ë¤Ë¤Ï¡¢ -(¡Ö¤É¤Î¡×¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤è¤ê¤âÁ°¤Ë) +から得るには、 +(「どの」ヘッダファイルをインクルードするよりも前に) .B _SVID_SOURCE -¤« +か .B _BSD_SOURCE -¤òÄêµÁ¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¡£ +を定義しておく必要がある。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Never use this function. .\"O Use .\"O .BR mkstemp (3) .\"O or .\"O .BR tmpfile (3) .\"O instead. -·è¤·¤Æ¤³¤Î´Ø¿ô¤ò»È¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£Âå¤ï¤ê¤Ë +決してこの関数を使ってはならない。代わりに .BR mkstemp (3) -¤« +か .BR tmpfile (3) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mkstemp (3), .BR mktemp (3), .BR tempnam (3), diff --git a/draft/man3/toascii.3 b/draft/man3/toascii.3 index b3d27f58..bad7e462 100644 --- a/draft/man3/toascii.3 +++ b/draft/man3/toascii.3 @@ -30,9 +30,9 @@ .\" Added BUGS section, aeb, 950919 .\" .TH TOASCII 3 2009-03-15 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -toascii \- ʸ»ú¤ò ASCII ¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +toascii \- 文字を ASCII に変換する +.SH 書式 .nf .B #include .sp @@ -42,38 +42,38 @@ toascii \- ʸ .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR toascii (): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR toascii () -¤Ï¾å°Ì¥Ó¥Ã¥È¤ò¥¯¥ê¥¢¤¹¤ë»ö¤Ë¤è¤ê¡¢ -ASCII ʸ»ú¥»¥Ã¥È¤ËŬ¹ç¤¹¤ë¤è¤¦¤Ë \fIc\fP ¤ò 7¥Ó¥Ã¥È¤Î \fIunsigned char\fP -¤ËÊÑ´¹¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -ÊÑ´¹¤µ¤ì¤¿Ê¸»ú¤òÊÖ¤¹¡£ -.SH ½àµò +は上位ビットをクリアする事により、 +ASCII 文字セットに適合するように \fIc\fP を 7ビットの \fIunsigned char\fP +に変換する。 +.SH 返り値 +変換された文字を返す。 +.SH 準拠 SVr4, BSD, POSIX.1-2001. .\"O POSIX.1-2008 marks .\"O .BR toascii () .\"O as obsolete, .\"O noting that it cannot be used portably in a localized application. -POSIX.1-2008 ¤Ï +POSIX.1-2008 は .BR toascii () -¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£ -¥í¡¼¥«¥é¥¤¥º¤µ¤ì¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢°Ü¿¢À­¤ò³ÎÊݤ·¤Ä¤Ä¡¢ -¤³¤Î´Ø¿ô¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +を廃止予定としている。 +ローカライズされたアプリケーションでは、移植性を確保しつつ、 +この関数を使用することはできない点に注意すること。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Many people will be unhappy if you use this function. .\"O This function will convert accented letters into random characters. -¤³¤Î´Ø¿ô¤ò»È¤¦»ö¤Ç¤¿¤¯¤µ¤ó¤Î¿Í¡¹¤¬ÉÔ¹¬¤Ë¤Ê¤ë¤À¤í¤¦¡£ -¤³¤Î´Ø¿ô¤Ï¥¢¥¯¥»¥ó¥ÈÉÕ¤­¤Î»ú¤ò¤Ç¤¿¤é¤á¤Êʸ»ú¤ËÊÑ´¹¤·¤Æ¤·¤Þ¤¦¡£ -.SH ´ØÏ¢¹àÌÜ +この関数を使う事でたくさんの人々が不幸になるだろう。 +この関数はアクセント付きの字をでたらめな文字に変換してしまう。 +.SH 関連項目 .BR isascii (3), .BR tolower (3), .BR toupper (3) diff --git a/draft/man3/toupper.3 b/draft/man3/toupper.3 index 7f9f04de..06672157 100644 --- a/draft/man3/toupper.3 +++ b/draft/man3/toupper.3 @@ -32,9 +32,9 @@ .\" by HANATAKA Shinya .\" .TH TOUPPER 3 1993-04-04 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -toupper, tolower \- ¾®Ê¸»ú¤òÂçʸ»ú¤Ë¤¹¤ë¡£¤Þ¤¿¤ÏÂçʸ»ú¤ò¾®Ê¸»ú¤Ë¤¹¤ë¡£ -.SH ½ñ¼° +.SH 名前 +toupper, tolower \- 小文字を大文字にする。または大文字を小文字にする。 +.SH 書式 .nf .B #include .sp @@ -42,41 +42,41 @@ toupper, tolower \- .br .BI "int tolower(int " "c" ); .fi -.SH ÀâÌÀ +.SH 説明 .BR toupper () -¤Ï¡¢ +は、 .I c -¤¬Âçʸ»ú¤Ë¤Ç¤­¤ëʸ»ú¤Ç¤¢¤ë¤Ê¤é¤ÐÂçʸ»ú¤ËÊÑ´¹¤¹¤ë¡£ +が大文字にできる文字であるならば大文字に変換する。 .PP .BR tolower () -¤Ï +は .I c -¤¬¾®Ê¸»ú¤Ë¤Ç¤­¤ëʸ»ú¤Ç¤¢¤ë¤Ê¤é¤Ð¾®Ê¸»ú¤ËÊÑ´¹¤¹¤ë¡£ +が小文字にできる文字であるならば小文字に変換する。 .PP -¤â¤· +もし .I c -¤¬ +が .I unsigned char -¤ÎÃͤǤʤ¤¤« +の値でないか .B EOF -¤Ê¤é¤Ð¡¢¤³¤ì¤é¤Î´Ø¿ô¤ÎÆ°ºî¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -ÊÑ´¹¤¬¤Ç¤­¤ì¤ÐÊÑ´¹¸å¤Îʸ»ú¤òÊÖ¤¹¡£¤Ç¤­¤Ê¤±¤ì¤ÐÊÑ´¹Á°¤Î +ならば、これらの関数の動作は未定義である。 +.SH 返り値 +変換ができれば変換後の文字を返す。できなければ変換前の .I c -¤òÊÖ¤¹¡£ -.SH ½àµò +を返す。 +.SH 準拠 C89, C99, 4.3BSD. -.SH ¥Ð¥° -¤Ê¤Ë¤¬Âçʸ»ú¤Ç¤Ê¤Ë¤¬¾®Ê¸»ú¤Ê¤Î¤«¤È¤¤¤¦¤³¤È¤Î¾ÜºÙ¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Ë -°Í¸¤·¤Æ¤¤¤ë¡£¤¿¤È¤¨¤Ð¡¢¥Ç¥Õ¥©¥ë¥È¤Î +.SH バグ +なにが大文字でなにが小文字なのかということの詳細は、現在のロケールに +依存している。たとえば、デフォルトの .B """C""" -¥í¥±¡¼¥ë¤Ç¤Ï¥¦¥à¥é¥¦¥È¤òǧ¼±¤·¤Ê¤¤¤¿¤á¡¢¤½¤ì¤é¤Îʸ»ú¤ÏÊÑ´¹¤Ç¤­¤Ê¤¤¡£ +ロケールではウムラウトを認識しないため、それらの文字は変換できない。 .PP -.\" ¤Þ¤¿¡¢±Ñ¸ì°Ê³°¤Î¥í¥±¡¼¥ë¤Ç¤Ï¡¢Âçʸ»ú¤È¾®Ê¸»ú¤¬Àµ¤·¤¯Âбþ¤·¤Ê¤¤ -.\" ¤³¤È¤¬¤¢¤ë¡£¤¿¤È¤¨¤Ð¡¢¥É¥¤¥Ä¸ì¤Î¥¨¥¹¥Ä¥§¥Ã¥È¤Ê¤É¤Ç¤¢¤ë¡£ -¤¤¤¯¤Ä¤«¤ÎÈó±Ñ¸ì¥í¥±¡¼¥ë¤Ç¤Ï¡¢Âбþ¤¹¤ëÂçʸ»ú¤ò»ý¤¿¤Ê¤¤¾®Ê¸»ú¤¬Â¸ºß¤¹¤ë¡£ -¥É¥¤¥Ä¸ì¤Î¥¨¥¹¥Ä¥§¥Ã¥È¤¬°ì¤Ä¤ÎÎã¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +.\" また、英語以外のロケールでは、大文字と小文字が正しく対応しない +.\" ことがある。たとえば、ドイツ語のエスツェットなどである。 +いくつかの非英語ロケールでは、対応する大文字を持たない小文字が存在する。 +ドイツ語のエスツェットが一つの例である。 +.SH 関連項目 .BR isalpha (3), .BR setlocale (3), .BR towlower (3), diff --git a/draft/man3/towctrans.3 b/draft/man3/towctrans.3 index 587a5f89..bce99bfb 100644 --- a/draft/man3/towctrans.3 +++ b/draft/man3/towctrans.3 @@ -15,54 +15,54 @@ .\" Translated Mon Oct 25 08:17:41 JST 1999 .\" by FUJIWARA Teruyoshi .\" -.\" WORD: transliteration descriptor ÊÑ´¹µ­½Ò»Ò +.\" WORD: transliteration descriptor 変換記述子 .\" .TH TOWCTRANS 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O towctrans \- wide-character transliteration -towctrans \- ¥ï¥¤¥Éʸ»ú¤ÎÊÑ´¹ +towctrans \- ワイド文字の変換 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "wint_t towctrans(wint_t " wc ", wctrans_t " desc ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O If \fIwc\fP is a wide character, the .\"O .BR towctrans () .\"O function .\"O translates it according to the transliteration descriptor \fIdesc\fP. .\"O If \fIwc\fP is \fBWEOF\fP, \fBWEOF\fP is returned. -\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¤Ê¤é¤Ð¡¢ +\fIwc\fP がワイド文字ならば、 .BR towctrans () -´Ø¿ô¤ÏÊÑ´¹µ­½Ò»Ò -\fIdesc\fP ¤Ë½¾¤Ã¤Æ¤½¤Îʸ»ú¤òÊÑ´¹¤¹¤ë¡£\fIwc\fP ¤¬ \fBWEOF\fP ¤Ê¤é¤Ð¡¢ -\fBWEOF\fP ¤¬ÊÖ¤µ¤ì¤ë¡£ +関数は変換記述子 +\fIdesc\fP に従ってその文字を変換する。\fIwc\fP が \fBWEOF\fP ならば、 +\fBWEOF\fP が返される。 .PP .\"O \fIdesc\fP must be a transliteration descriptor returned by .\"O the .\"O .BR wctrans (3) .\"O function. -\fIdesc\fP ¤Ï¡¢ +\fIdesc\fP は、 .BR wctrans (3) -¤¬ÊÖ¤·¤¿ÊÑ´¹µ­½Ò»Ò¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +が返した変換記述子でなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR towctrans () .\"O function returns the translated wide character, .\"O or \fBWEOF\fP if \fIwc\fP is \fBWEOF\fP. .BR towctrans () -´Ø¿ô¤Ï¡¢ÊÑ´¹·ë²Ì¤Î¥ï¥¤¥Éʸ»ú¤òÊÖ¤¹¡£\fIwc\fP ¤¬ \fBWEOF\fP -¤Ê¤é¤Ð¡¢\fBWEOF\fP ¤òÊÖ¤¹¡£ +関数は、変換結果のワイド文字を返す。\fIwc\fP が \fBWEOF\fP +ならば、\fBWEOF\fP を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR towctrans () .\"O depends on the @@ -70,11 +70,11 @@ C99. .\"O category of the .\"O current locale. .BR towctrans () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR towlower (3), .BR towupper (3), .BR wctrans (3) diff --git a/draft/man3/towlower.3 b/draft/man3/towlower.3 index c704b20d..316bc07e 100644 --- a/draft/man3/towlower.3 +++ b/draft/man3/towlower.3 @@ -17,18 +17,18 @@ .\" .TH TOWLOWER 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O towlower \- convert a wide character to lowercase -towlower \- ¥ï¥¤¥Éʸ»ú 1 ¸Ä¤ò¾®Ê¸»ú¤ËÊÑ´¹¤¹¤ë +towlower \- ワイド文字 1 個を小文字に変換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "wint_t towlower(wint_t " wc ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR towlower () .\"O function is the wide-character equivalent of the @@ -38,27 +38,27 @@ towlower \- .\"O lowercase. .\"O Characters which do not have case are returned unchanged. .BR towlower () -´Ø¿ô¤Ï¡¢ +関数は、 .BR tolower (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¤Ê¤é¤Ð¡¢¤³¤Îʸ»ú¤Ï¾®Ê¸»ú¤ËÊÑ´¹¤µ¤ì¤ë¡£ -Âçʸ»ú¡¦¾®Ê¸»ú¤Î¶èÊ̤¬¤Ê¤¤Ê¸»ú¤ÏÊÑ´¹¤µ¤ì¤º¤ËÊÖ¤µ¤ì¤ë¡£ +関数に対応するワイド文字関数である。 +\fIwc\fP がワイド文字ならば、この文字は小文字に変換される。 +大文字・小文字の区別がない文字は変換されずに返される。 .\"O If \fIwc\fP is \fBWEOF\fP, \fBWEOF\fP is returned. -\fIwc\fP ¤¬ \fBWEOF\fP ¤Ê¤é¤Ð¡¢\fBWEOF\fP ¤¬ÊÖ¤µ¤ì¤ë¡£ +\fIwc\fP が \fBWEOF\fP ならば、\fBWEOF\fP が返される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR towlower () .\"O function returns the lowercase equivalent of \fIwc\fP, .\"O or \fBWEOF\fP if \fIwc\fP is \fBWEOF\fP. .BR towlower () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤ËÂбþ¤¹¤ë¾®Ê¸»ú¤òÊÖ¤¹¡£\fIwc\fP ¤¬ -\fBWEOF\fP ¤Ê¤é¤Ð¡¢\fBWEOF\fP ¤òÊÖ¤¹¡£ +関数は、\fIwc\fP に対応する小文字を返す。\fIwc\fP が +\fBWEOF\fP ならば、\fBWEOF\fP を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR towlower () .\"O depends on the @@ -66,17 +66,17 @@ C99. .\"O category of the .\"O current locale. .BR towlower () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .PP .\"O This function is not very appropriate for dealing with Unicode characters, .\"O because Unicode knows about three cases: upper, lower and title case. -¤³¤Î´Ø¿ô¤ò Unicode ʸ»ú¤ËÂФ·¤Æ»È¤¦¤Î¤Ï¤¢¤Þ¤êŬÀڤǤʤ¤¡£¤Ê¤¼¤Ê¤é¡¢ -Unicode ¤Ë¤Ï¡¢Âçʸ»ú (upper case)¡¦¾®Ê¸»ú (lower case)¡¦ -¥¿¥¤¥È¥ëʸ»ú (title case) ¤È¤¤¤¦ 3 ¤Ä¤Î "case" ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£ +この関数を Unicode 文字に対して使うのはあまり適切でない。なぜなら、 +Unicode には、大文字 (upper case)・小文字 (lower case)・ +タイトル文字 (title case) という 3 つの "case" が含まれているからである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR iswlower (3), .BR towctrans (3), .BR towupper (3) diff --git a/draft/man3/towupper.3 b/draft/man3/towupper.3 index 25b3411a..25b1d72c 100644 --- a/draft/man3/towupper.3 +++ b/draft/man3/towupper.3 @@ -17,18 +17,18 @@ .\" .TH TOWUPPER 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O towupper \- convert a wide character to uppercase -towupper \- ¥ï¥¤¥Éʸ»ú 1 ¸Ä¤òÂçʸ»ú¤ËÊÑ´¹¤¹¤ë +towupper \- ワイド文字 1 個を大文字に変換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "wint_t towupper(wint_t " wc ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR towupper () .\"O function is the wide-character equivalent of the @@ -38,44 +38,44 @@ towupper \- .\"O uppercase. .\"O Characters which do not have case are returned unchanged. .BR towupper () -´Ø¿ô¤Ï¡¢ +関数は、 .BR toupper (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¤Ê¤é¤Ð¡¢¤³¤Îʸ»ú¤ÏÂçʸ»ú¤ËÊÑ´¹¤µ¤ì¤ë¡£ -Âçʸ»ú¡¦¾®Ê¸»ú¤Î¶èÊ̤¬¤Ê¤¤Ê¸»ú¤ÏÊÑ´¹¤µ¤ì¤º¤ËÊÖ¤µ¤ì¤ë¡£ +関数に対応するワイド文字関数である。 +\fIwc\fP がワイド文字ならば、この文字は大文字に変換される。 +大文字・小文字の区別がない文字は変換されずに返される。 .\"O If \fIwc\fP is \fBWEOF\fP, \fBWEOF\fP is returned. -\fIwc\fP ¤¬ \fBWEOF\fP ¤Ê¤é¤Ð¡¢\fBWEOF\fP ¤¬ÊÖ¤µ¤ì¤ë¡£ +\fIwc\fP が \fBWEOF\fP ならば、\fBWEOF\fP が返される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR towupper () .\"O function returns the uppercase equivalent of \fIwc\fP, .\"O or \fBWEOF\fP if \fIwc\fP is \fBWEOF\fP. .BR towupper () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤ËÂбþ¤¹¤ëÂçʸ»ú¤òÊÖ¤¹¡£\fIwc\fP ¤¬ -\fBWEOF\fP ¤Ê¤é¤Ð¡¢\fBWEOF\fP ¤òÊÖ¤¹¡£ +関数は、\fIwc\fP に対応する大文字を返す。\fIwc\fP が +\fBWEOF\fP ならば、\fBWEOF\fP を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR towupper () .\"O depends on the .\"O .B LC_CTYPE .\"O category of the .\"O current locale. -\fBtowlower\fP ¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +\fBtowlower\fP の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .PP .\"O This function is not very appropriate for dealing with Unicode characters, .\"O because Unicode knows about three cases: upper, lower and title case. -¤³¤Î´Ø¿ô¤ò Unicode ʸ»ú¤ËÂФ·¤Æ»È¤¦¤Î¤Ï¤¢¤Þ¤êŬÀڤǤʤ¤¡£¤Ê¤¼¤Ê¤é¡¢ -Unicode ¤Ë¤Ï¡¢Âçʸ»ú (upper case)¡¦¾®Ê¸»ú (lower case)¡¦ -¥¿¥¤¥È¥ëʸ»ú (title case) ¤È¤¤¤¦ 3 ¤Ä¤Î "case" ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£ +この関数を Unicode 文字に対して使うのはあまり適切でない。なぜなら、 +Unicode には、大文字 (upper case)・小文字 (lower case)・ +タイトル文字 (title case) という 3 つの "case" が含まれているからである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR iswupper (3), .BR towctrans (3), .BR towlower (3) diff --git a/draft/man3/trunc.3 b/draft/man3/trunc.3 index f30bdc76..57bb3d39 100644 --- a/draft/man3/trunc.3 +++ b/draft/man3/trunc.3 @@ -29,11 +29,11 @@ .\" .TH TRUNC 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O trunc, truncf, truncl \- round to integer, towards zero -trunc, truncf, truncl \- 0 ¤Ë¶á¤¤Êý¤ÎÀ°¿ôÃͤ˴ݤá¤ë +trunc, truncf, truncl \- 0 に近い方の整数値に丸める .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -45,14 +45,14 @@ trunc, truncf, truncl \- 0 .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -68,31 +68,31 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions round \fIx\fP to the nearest integer .\"O not larger in absolute value. -¤³¤ì¤é¤Î´Ø¿ô¤ÏÀäÂÐÃͤ¬ \fIx\fP ¤è¤ê¾®¤µ¤¤ -°ìÈֶᤤÀ°¿ôÃÍ¤Ë \fIx\fP ¤ò´Ý¤á¤ë¡£ +これらの関数は絶対値が \fIx\fP より小さい +一番近い整数値に \fIx\fP を丸める。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O These functions return the rounded integer value. -¤³¤ì¤é¤Î´Ø¿ô¤Ï´Ý¤á¤é¤ì¤¿À°¿ôÃͤòÊÖ¤¹¡£ +これらの関数は丸められた整数値を返す。 .\"O If \fIx\fP is integral, infinite, or NaN, \fIx\fP itself is returned. -\fIx\fP ¤¬À°¿ô¡¢Ìµ¸ÂÂç¡¢NaN ¤Î¾ì¹ç¡¢\fIx\fP ¼«¿È¤¬ÊÖ¤µ¤ì¤ë¡£ +\fIx\fP が整数、無限大、NaN の場合、\fIx\fP 自身が返される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O No errors occur. -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ +エラーは発生しない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These functions first appeared in glibc in version 2.1. -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +これらの関数は glibc バージョン 2.1 で初めて登場した。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The integral value returned by these functions may be too large .\"O to store in an integer type .\"O .RI ( int , @@ -101,15 +101,15 @@ C99, POSIX.1-2001. .\"O To avoid an overflow, which will produce undefined results, .\"O an application should perform a range check on the returned value .\"O before assigning it to an integer type. -¤³¤ì¤é¤Î´Ø¿ô¤¬ÊÖ¤¹À°¿ôÃͤÏÀ°¿ô·¿ +これらの関数が返す整数値は整数型 .RI ( int , .I long -¤Ê¤É) ¤Ë³ÊǼ¤¹¤ë¤Ë¤ÏÂ礭²á¤®¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Î·ë²Ì¤Ïʬ¤«¤é¤Ê¤¤¤Î¤Ç¡¢ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤òÈò¤±¤ë¤¿¤á¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤ÏÀ°¿ô·¿¤ËÂåÆþ¤¹¤ëÁ°¤Ë -ÊÖ¤µ¤ì¤¿ÃͤÎÈϰϳÎǧ¤ò¼Â¹Ô¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +など) に格納するには大き過ぎるかもしれない。 +オーバーフローが起こった場合の結果は分からないので、 +オーバーフローを避けるため、アプリケーションでは整数型に代入する前に +返された値の範囲確認を実行すべきである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ceil (3), .BR floor (3), .BR lrint (3), diff --git a/draft/man3/tsearch.3 b/draft/man3/tsearch.3 index 45080228..104aea8d 100644 --- a/draft/man3/tsearch.3 +++ b/draft/man3/tsearch.3 @@ -30,11 +30,11 @@ .\" .TH TSEARCH 3 2008-09-23 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O tsearch, tfind, tdelete, twalk, tdestroy \- manage a binary tree -tsearch, tfind, tdelete, twalk, tdestroy \- ÆóʬÌÚ (binary tree) ¤ÎÁàºî +tsearch, tfind, tdelete, twalk, tdestroy \- 二分木 (binary tree) の操作 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -52,14 +52,14 @@ tsearch, tfind, tdelete, twalk, tdestroy \- .BI " const int " depth "));" .sp .\"O .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "void tdestroy(void *" root ", void (*" free_node ")(void *" nodep )); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .BR tsearch (), .\"O .BR tfind (), .\"O .BR twalk (), @@ -80,17 +80,17 @@ tsearch, tfind, tdelete, twalk, tdestroy \- .BR tfind (), .BR twalk (), .BR tdelete () -¤Ï -ÆóʬÌÚ¤òÁàºî¤¹¤ë´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ï Knuth (6.2.2) Algorithm T ¤Ë´ð¤Å¤¤¤Æ¤¤¤ë¡£ -ÌÚ¹½Â¤¤Ë¤ª¤±¤ë³Æ¥Î¡¼¥É¤ÎºÇ½é¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢Âбþ¤¹¤ë¥Ç¡¼¥¿¡¦ -¥¢¥¤¥Æ¥à¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -(»²¾ÈÀè¤Î¥Ç¡¼¥¿¤Ï¡¢¸Æ¤Ó½Ð¤·¥×¥í¥°¥é¥à¤ÇÍÑ°Õ¤¹¤ë¡£) -\fIcompar\fP ¤ÏÈæ³Ó¥ë¡¼¥Á¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -Èæ³Ó¥ë¡¼¥Á¥ó¤Ï¡¢¥¢¥¤¥Æ¥à¤Ø¤Î¥Ý¥¤¥ó¥¿ 2 ¤Ä¤ò°ú¿ô¤Ë»ý¤Ä¡£ -Èæ³Ó¥ë¡¼¥Á¥ó¤ÎÊÖ¤êÃͤϡ¢1 ¤ÄÌܤΥ¢¥¤¥Æ¥à¤¬ 2 ¤ÄÌܤΥ¢¥¤¥Æ¥à¤è¤ê¤â -¡Ö¾®¤µ¤¤¡¢Åù¤·¤¤¡¢Â礭¤¤¡×¤Ë¤è¤Ã¤Æ¡¢ -¡ÖÉé¡¢0¡¢Àµ¡×¤ÎÀ°¿ôÃͤǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は +二分木を操作する関数である。 +これらの関数は Knuth (6.2.2) Algorithm T に基づいている。 +木構造における各ノードの最初のフィールドは、対応するデータ・ +アイテムへのポインタである。 +(参照先のデータは、呼び出しプログラムで用意する。) +\fIcompar\fP は比較ルーチンへのポインタである。 +比較ルーチンは、アイテムへのポインタ 2 つを引数に持つ。 +比較ルーチンの返り値は、1 つ目のアイテムが 2 つ目のアイテムよりも +「小さい、等しい、大きい」によって、 +「負、0、正」の整数値でなければならない。 .PP .\"O .BR tsearch () .\"O searches the tree for an item. @@ -108,16 +108,16 @@ tsearch, tfind, tdelete, twalk, tdestroy \- .\"O adds it, and returns a .\"O pointer to the newly added item. .BR tsearch () -¤Ï¡¢ÌÚ¹½Â¤¤«¤é¥¢¥¤¥Æ¥à¤ò¸¡º÷¤¹¤ë´Ø¿ô¤Ç¤¢¤ë¡£ -\fIkey\fP ¤Ï¡¢¸¡º÷¤¹¤ë¥¢¥¤¥Æ¥à¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -\fIrootp\fP ¤ÏÌÚ¹½Â¤¤Îº¬¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -ÌÚ¹½Â¤¤¬¥Î¡¼¥É¤ò´Þ¤Þ¤Ê¤¤¾ì¹ç¡¢\fIrootp\fP ¤Î»²¾È¤·¤Æ¤¤¤ëÊÑ¿ô¤Ï -NULL ¤ËÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -ÌÚ¹½Â¤¤Ë¥¢¥¤¥Æ¥à¤¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç¡¢ +は、木構造からアイテムを検索する関数である。 +\fIkey\fP は、検索するアイテムへのポインタである。 +\fIrootp\fP は木構造の根へのポインタへのポインタである。 +木構造がノードを含まない場合、\fIrootp\fP の参照している変数は +NULL に設定されていなければならない。 +木構造にアイテムが見つかった場合、 .BR tsearch () -¤Ï¤½¤Î¥¢¥¤¥Æ¥à¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢¥¢¥¤¥Æ¥à¤òÌÚ¹½Â¤¤ËÄɲä·¡¢ -Äɲä·¤¿¥¢¥¤¥Æ¥à¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +はそのアイテムへのポインタを返す。 +見つからなかった場合は、アイテムを木構造に追加し、 +追加したアイテムへのポインタを返す。 .PP .\"O .BR tfind () .\"O is like @@ -127,20 +127,20 @@ NULL .\"O .BR tfind () .\"O returns NULL. .BR tfind () -¤Ï¡¢ +は、 .BR tsearch () -¤Ë»÷¤Æ¤¤¤ë¤¬¡¢ -¥¢¥¤¥Æ¥à¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç NULL ¤òÊÖ¤¹ÅÀ¤¬°Û¤Ê¤ë¡£ +に似ているが、 +アイテムが見つからなかった場合 NULL を返す点が異なる。 .PP .\"O .BR tdelete () .\"O deletes an item from the tree. .\"O Its arguments are the same as for .\"O .BR tsearch (). .BR tdelete () -¤ÏÌÚ¹½Â¤¤«¤é¥¢¥¤¥Æ¥à¤òºï½ü¤¹¤ë¡£ -°ú¿ô¤Ï +は木構造からアイテムを削除する。 +引数は .BR tsearch () -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .PP .\"O .BR twalk () .\"O performs depth-first, left-to-right traversal of a binary @@ -162,21 +162,21 @@ NULL .\"O The third argument is the depth of the node, with .\"O zero being the root. .BR twalk () -¤Ï¡¢ÆóʬÌÚ¤ò¿¼¤µÍ¥Àè (depth-first) ¤Ç¡¢ -º¸¤«¤é±¦¤Ë¤¿¤É¤Ã¤Æ¤¤¤¯´Ø¿ô¤Ç¤¢¤ë¡£ -\fIroot\fP ¤Ïµ¯ÅÀ¤È¤Ê¤ë¥Î¡¼¥É¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -\fIroot\fP ¤Ëº¬°Ê³°¤Î¥Î¡¼¥É¤ò»ØÄꤹ¤ë¤È¡¢ÉôʬÌÚ¤¬ÂоݤȤʤ롣 +は、二分木を深さ優先 (depth-first) で、 +左から右にたどっていく関数である。 +\fIroot\fP は起点となるノードへのポインタである。 +\fIroot\fP に根以外のノードを指定すると、部分木が対象となる。 .BR twalk () -¤Ï¡¢¥Î¡¼¥É¤òˬ¤ì¤ëÅÙ¤Ë -(¤Ä¤Þ¤ê¡¢ÆâÉô¥Î¡¼¥É¤ËÂФ·¤Æ¤Ï 3 ²ó¡¢ÍÕ¤ËÂФ·¤Æ¤Ï 1 ²ó) -¥æ¡¼¥¶´Ø¿ô \fIaction\fP ¤ò¸Æ¤Ó½Ð¤¹¡£ -\fIaction\fP ¤Ë¤Ï°Ê²¼¤Î½ç¤Ë 3 ¤Ä¤Î°ú¿ô¤¬Í¿¤¨¤é¤ì¤ë¡£ -ºÇ½é¤Î°ú¿ô¤Ïˬ¤ì¤¿¥Î¡¼¥É¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -2 ¤ÄÌܤΰú¿ô¤Ë¤Ï¡¢ÆâÉô¥Î¡¼¥É¤Î¾ì¹ç¤ÏˬÌä²ó¿ô¤Ë±þ¤¸¤Æ -\fBpreorder\fP, \fBpostorder\fP, \fBendorder\fP ¤¬¡¢ -Íդξì¹ç¤Ï \fBleaf\fP ¤¬Í¿¤¨¤é¤ì¤ë¡£ -(¤³¤ì¤é¤Î¥·¥ó¥Ü¥ë¤Ï \fI\fP ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£) -3 ¤ÄÌܤΰú¿ô¤Ï¥Î¡¼¥É¤Î¿¼¤µ¤Ç¡¢º¬¤Î¾ì¹ç¤Ï 0 ¤Ç¤¢¤ë¡£ +は、ノードを訪れる度に +(つまり、内部ノードに対しては 3 回、葉に対しては 1 回) +ユーザ関数 \fIaction\fP を呼び出す。 +\fIaction\fP には以下の順に 3 つの引数が与えられる。 +最初の引数は訪れたノードへのポインタである。 +2 つ目の引数には、内部ノードの場合は訪問回数に応じて +\fBpreorder\fP, \fBpostorder\fP, \fBendorder\fP が、 +葉の場合は \fBleaf\fP が与えられる。 +(これらのシンボルは \fI\fP で定義されている。) +3 つ目の引数はノードの深さで、根の場合は 0 である。 .PP .\"O (More commonly, \fBpreorder\fP, \fBpostorder\fP, and \fBendorder\fP .\"O are known as \fBpreorder\fP, \fBinorder\fP, and \fBpostorder\fP: @@ -184,11 +184,11 @@ NULL .\"O and after visiting the children. .\"O Thus, the choice of name \fBpost\%order\fP .\"O is rather confusing.) -(¤è¤ê°ìÈÌŪ¤Ë¤Ï¡¢\fBpreorder\fP, \fBpostorder\fP, \fBendorder\fP ¤Ï -\fBpreorder\fP, \fBinorder\fP, \fBpostorder\fP ¤È¤·¤ÆÃΤé¤ì¤Æ¤¤¤ë: -¤½¤ì¤¾¤ì¡¢»ÒÍ×ÁǤòé¤ëÁ°¡¦ºÇ½é¤Î»ÒÍ×ÁǤòé¤Ã¤¿¸å¤«¤Ä 2 ÈÖÌܤλÒÍ×ÁǤòé¤ëÁ°¡¦ -»ÒÍ×ÁǤòé¤Ã¤¿¸å¤È¤¤¤¦¤³¤È¤òɽ¤·¤Æ¤¤¤ë¡£ -¤è¤Ã¤Æ \fBpost\%order\fP ¤È¤¤¤¦Ì¾Á°¤òÁª¤Ö¤Î¤Ï¾¯¤·Ê¶¤é¤ï¤·¤¤¡£) +(より一般的には、\fBpreorder\fP, \fBpostorder\fP, \fBendorder\fP は +\fBpreorder\fP, \fBinorder\fP, \fBpostorder\fP として知られている: +それぞれ、子要素を辿る前・最初の子要素を辿った後かつ 2 番目の子要素を辿る前・ +子要素を辿った後ということを表している。 +よって \fBpost\%order\fP という名前を選ぶのは少し紛らわしい。) .PP .\"O .BR tdestroy () .\"O removes the whole tree pointed to by \fIroot\fP, @@ -200,15 +200,15 @@ NULL .\"O If no such work is necessary \fIfree_node\fP must point to a function .\"O doing nothing. .BR tdestroy () -¤Ï \fIroot\fP ¤¬»Ø¤¹ÌÚ¹½Â¤Á´ÂΤòºï½ü¤·¡¢ +は \fIroot\fP が指す木構造全体を削除し、 .BR tsearch () -´Ø¿ô¤Ç³ÎÊݤµ¤ì¤¿¥ê¥½¡¼¥¹¤òÁ´¤Æ²òÊü¤¹¤ë¡£ -ÌÚ¹½Â¤¤Î³Æ¥Î¡¼¥É¤Ë¤Ä¤¤¤Æ¡¢´Ø¿ô \fIfree_node\fP ¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ -¥Ç¡¼¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬¤³¤Î´Ø¿ô¤Î°ú¿ô¤È¤·¤ÆÅϤµ¤ì¤ë¡£ -¤½¤Î¤è¤¦¤ÊÆ°ºî¤¬É¬ÍפǤʤ±¤ì¤Ð¡¢ -\fIfree_node\fP ¤Ï²¿¤â¤·¤Ê¤¤´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +関数で確保されたリソースを全て解放する。 +木構造の各ノードについて、関数 \fIfree_node\fP が呼び出される。 +データへのポインタがこの関数の引数として渡される。 +そのような動作が必要でなければ、 +\fIfree_node\fP は何もしない関数へのポインタでなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR tsearch () .\"O returns a pointer to a matching item in the tree, or to .\"O the newly added item, or NULL if there was insufficient memory @@ -219,20 +219,20 @@ NULL .\"O If there are multiple elements that match the key, .\"O the element returned is unspecified. .BR tsearch () -¤Ï¡¢ÌÚ¹½Â¤¤Ë¸«¤Ä¤«¤Ã¤¿¥¢¥¤¥Æ¥à¤«¡¢ -¿·¤·¤¯Äɲä·¤¿¥¢¥¤¥Æ¥à¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥á¥â¥ê¤ÎÉÔ­¤Î¤¿¤á¥¢¥¤¥Æ¥à¤òÄɲäǤ­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +は、木構造に見つかったアイテムか、 +新しく追加したアイテムへのポインタを返す。 +メモリの不足のためアイテムを追加できなかった場合は NULL を返す。 .BR tfind () -¤Ï¡¢¥¢¥¤¥Æ¥à¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -°ìÃפ¹¤ë¥¢¥¤¥Æ¥à¤¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ -¸¡º÷¾ò·ï¤Ë°ìÃפ¹¤ëÍ×ÁǤ¬Ê£¿ô¤¢¤ë¾ì¹ç¡¢ÊÖ¤µ¤ì¤ëÃͤÏÉÔÄê¤Ç¤¢¤ë¡£ +は、アイテムへのポインタを返す。 +一致するアイテムが見つからない場合は NULL を返す。 +検索条件に一致する要素が複数ある場合、返される値は不定である。 .PP .\"O .BR tdelete () .\"O returns a pointer to the parent of the item deleted, or .\"O NULL if the item was not found. .BR tdelete () -¤Ïºï½ü¤·¤¿¥¢¥¤¥Æ¥à¤Î¿Æ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¢¥¤¥Æ¥à¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +は削除したアイテムの親へのポインタを返す。 +アイテムが見つからなかった場合は NULL を返す。 .PP .\"O .BR tsearch (), .\"O .BR tfind (), @@ -240,28 +240,28 @@ NULL .\"O .BR tdelete () .\"O also .\"O return NULL if \fIrootp\fP was NULL on entry. -\fIrootp\fP ¤¬ NULL ¤Î¾ì¹ç¡¢ +\fIrootp\fP が NULL の場合、 .BR tsearch (), .BR tfind (), .BR tdelete () -¤Ï NULL ¤òÊÖ¤¹¡£ +は NULL を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001. .\"O The function .\"O .BR tdestroy () .\"O is a GNU extension. -´Ø¿ô +関数 .BR tdestroy () -¤Ï GNU ¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ +は GNU の拡張である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .BR twalk () .\"O takes a pointer to the root, while the other functions .\"O take a pointer to a variable which points to the root. .BR twalk () -¤Ïº¬¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò°ú¿ô¤Ë¤È¤ë¤¬¡¢ -¤Û¤«¤Î´Ø¿ô¤Ïº¬¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +は根へのポインタを引数にとるが、 +ほかの関数は根へのポインタへのポインタである。 .PP .\"O .BR twalk () .\"O uses \fBpostorder\fP to mean "after the left subtree, but @@ -269,18 +269,18 @@ SVr4, POSIX.1-2001. .\"O Some authorities would call this .\"O "inorder", and reserve "postorder" to mean "after both subtrees". .BR twalk () -¤Ë¤ª¤¤¤Æ¤Ï¡¢\fBpostorder\fP ¤Ï -¡Öº¸¤ÎÉôʬÌڤθå¤Ç¡¢±¦¤ÎÉôʬÌÚ¤ÎÁ°¡×¤ò°ÕÌ£¤·¤Æ¤¤¤ë¡£ -¤·¤«¤·¡¢¿Í¤Ë¤è¤Ã¤Æ¤Ï¤³¤ì¤ò "inorder" ¤È¸Æ¤ó¤Ç¡¢ -"postorder" ¤ò¡ÖξÊý¤ÎÉôʬÌڤθå¡×¤È¤¹¤ë¾ì¹ç¤â¤¢¤ë¡£ +においては、\fBpostorder\fP は +「左の部分木の後で、右の部分木の前」を意味している。 +しかし、人によってはこれを "inorder" と呼んで、 +"postorder" を「両方の部分木の後」とする場合もある。 .PP .\"O .BR tdelete () .\"O frees the memory required for the node in the tree. .\"O The user is responsible for freeing the memory for the corresponding .\"O data. .BR tdelete () -¤Ï¡¢ºï½ü¤·¤¿¥Î¡¼¥É¤Î»ÈÍѤ·¤Æ¤¤¤¿¥á¥â¥ê¤ò²òÊü¤¹¤ë¤¬¡¢ -¥Î¡¼¥É¤ËÂбþ¤¹¤ë¥Ç¡¼¥¿¤Î¥á¥â¥ê¤Ï¡¢¥æ¡¼¥¶¤¬²òÊü¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は、削除したノードの使用していたメモリを解放するが、 +ノードに対応するデータのメモリは、ユーザが解放しなければならない。 .PP .\"O The example program depends on the fact that .\"O .BR twalk () @@ -289,18 +289,18 @@ SVr4, POSIX.1-2001. .\"O argument "endorder" or "leaf". .\"O This works with the GNU library .\"O implementation, but is not in the System V documentation. -²¼¤Î¥×¥í¥°¥é¥àÎã¤Ï¡¢¥æ¡¼¥¶´Ø¿ô¤¬ "endorder" ¤« "leaf" ¤ò°ú¿ô¤Ë¤·¤Æ -¸Æ¤Ó½Ð¤µ¤ì¤Æ°Ê¹ß¤Ï¡¢ +下のプログラム例は、ユーザ関数が "endorder" か "leaf" を引数にして +呼び出されて以降は、 .BR twalk () -¤¬¤½¤Î¥Î¡¼¥É¤ò»²¾È¤·¤Ê¤¤¤³¤È¤òÁ°Äó¤È¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï GNU ¥é¥¤¥Ö¥é¥ê¤Î¼ÂÁõ¤Ç¤Ïµ¡Ç½¤¹¤ë¤¬¡¢System V ¤Î¥Þ¥Ë¥å¥¢¥ë¤Ë¤Ï¸ºß¤·¤Ê¤¤¡£ +がそのノードを参照しないことを前提としている。 +これは GNU ライブラリの実装では機能するが、System V のマニュアルには存在しない。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The following program inserts twelve random numbers into a binary .\"O tree, where duplicate numbers are collapsed, then prints the numbers .\"O in order. -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï 12 ¸Ä¤ÎÍð¿ô¤òÆóʬÌÚ¤ËÁÞÆþ¤·¤¿¸å¡¢ -ÁÞÆþ¤·¤¿¿ô¤ò½çÈ֤˽ÐÎϤ¹¤ë (ÁÞÆþ¤ÎºÝ¡¢½ÅÊ£¤·¤¿Íð¿ô¤Ï 1 ¤Ä¤Ë¤Þ¤È¤á¤é¤ì¤ë)¡£ +以下のプログラムは 12 個の乱数を二分木に挿入した後、 +挿入した数を順番に出力する (挿入の際、重複した乱数は 1 つにまとめられる)。 .sp .nf #define _GNU_SOURCE /* Expose declaration of tdestroy() */ @@ -375,7 +375,7 @@ main(void) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bsearch (3), .BR hsearch (3), .BR lsearch (3) diff --git a/draft/man3/ttyname.3 b/draft/man3/ttyname.3 index 27f81994..fc30c6f4 100644 --- a/draft/man3/ttyname.3 +++ b/draft/man3/ttyname.3 @@ -30,10 +30,10 @@ .\" Updated Fri Oct 16 JST 2002 by Kentaro Shirakata .\" .TH TTYNAME 3 2008-07-14 "Linux" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 .\"O ttyname, ttyname_r \- return name of a terminal -ttyname, ttyname_r \- üËö̾¤òÊÖ¤¹ -.SH ½ñ¼° +ttyname, ttyname_r \- 端末名を返す +.SH 書式 .nf .B #include .sp @@ -41,7 +41,7 @@ ttyname, ttyname_r \- ü .BI "int ttyname_r(int " fd ", char *" buf ", size_t " buflen ); .fi -.SH ÀâÌÀ +.SH 説明 .\"O The function .\"O .BR ttyname () .\"O returns a pointer to the null-terminated pathname of the terminal device @@ -50,11 +50,11 @@ ttyname, ttyname_r \- ü .\"O The return value may point to static data, possibly overwritten by the .\"O next call. .BR ttyname () -´Ø¿ô¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ \fIfd\fP ¤¬¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ëüËö¥Ç¥Ð¥¤¥¹¤Î -NULL ½ªÃ¼¤µ¤ì¤¿¥Ñ¥¹Ì¾¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬µ¯¤­¤¿¤Ê¤é¤Ð NULL ¤òÊÖ¤¹ -(¤¿¤È¤¨¤Ð¡¢\fIfd\fP ¤¬Ã¼Ëö¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¤È¤­)¡£ -ÊÖ¤êÃͤÏÀÅŪ¥Ç¡¼¥¿¤ò»Ø¤·¤Æ¤¤¤ë¤Î¤Ç¡¢¼¡¤Î¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +関数は、ファイルディスクリプタ \fIfd\fP がオープンしている端末デバイスの +NULL 終端されたパス名へのポインタを返す。 +エラーが起きたならば NULL を返す +(たとえば、\fIfd\fP が端末を参照していないとき)。 +返り値は静的データを指しているので、次の呼び出しで上書きされる可能性がある。 .\"O The function .\"O .BR ttyname_r () .\"O stores this pathname in the buffer @@ -62,13 +62,13 @@ NULL .\"O of length .\"O .IR buflen . .BR ttyname_r () -´Ø¿ô¤Ï¡¢¤³¤Î¥Ñ¥¹Ì¾¤òŤµ +関数は、このパス名を長さ .I buflen -¤Î¥Ð¥Ã¥Õ¥¡ +のバッファ .I buf -¤Ë³ÊǼ¤¹¤ë¡£ +に格納する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The function .\"O .BR ttyname () .\"O returns a pointer to a pathname on success. @@ -76,34 +76,34 @@ NULL .\"O .I errno .\"O is set appropriately. .BR ttyname () -´Ø¿ô¤Ï¡¢À®¸ù»þ¤Ï¥Ñ¥¹Ì¾¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼»þ¤Ï NULL ¤òÊÖ¤·¡¢ +関数は、成功時はパス名へのポインタを返す。 +エラー時は NULL を返し、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\"O The function .\"O .BR ttyname_r () .\"O returns 0 on success, and an error number upon error. .BR ttyname_r () -´Ø¿ô¤Ï¡¢À®¸ù»þ¤Ë¤Ï 0 ¤òÊÖ¤·¡¢¥¨¥é¡¼»þ¤Ë¤Ï¥¨¥é¡¼ÈÖ¹æ¤òÊÖ¤¹¡£ +関数は、成功時には 0 を返し、エラー時にはエラー番号を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .BR ttyname_r (): .TP .B EBADF .\"O Bad file descriptor. -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÉÔÀµ¡£ +ファイルディスクリプタが不正。 .TP .B ENOTTY .\"O File descriptor does not refer to a terminal device. -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Ã¼Ëö¥Ç¥Ð¥¤¥¹¤ò¼¨¤·¤Æ¤¤¤Ê¤¤¡£ +ファイルディスクリプタが端末デバイスを示していない。 .TP .B ERANGE .\"O .I buflen .\"O was too small to allow storing the pathname. .I buflen -¤¬¥Ñ¥¹Ì¾¤ò³ÊǼ¤¹¤ë¤Ë¤Ïû¤¹¤®¤ë¡£ -.SH ½àµò +がパス名を格納するには短すぎる。 +.SH 準拠 4.2BSD, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fstat (2), .BR isatty (3) diff --git a/draft/man3/ttyslot.3 b/draft/man3/ttyslot.3 index aa54a338..00bd944c 100644 --- a/draft/man3/ttyslot.3 +++ b/draft/man3/ttyslot.3 @@ -30,25 +30,25 @@ .\" .TH TTYSLOT 3 2010-09-20 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O ttyslot \- find the slot of the current user's terminal in some file -ttyslot \- ¥«¥ì¥ó¥È¥æ¡¼¥¶¤ÎüËö¤Î¥¹¥í¥Ã¥È¤ò¥Õ¥¡¥¤¥ë¤«¤éõ¤¹ +ttyslot \- カレントユーザの端末のスロットをファイルから探す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .\"O .BR "#include " " /* on BSD-like systems, and Linux */" -.BR "#include " " /* BSD ·Ï¤Î¥·¥¹¥Æ¥à¤È Linux ¤Î¾ì¹ç */" +.BR "#include " " /* BSD 系のシステムと Linux の場合 */" .br .\"O .BR "#include " " /* on System V-like systems */" -.BR "#include " " /* System V ·Ï¤Î¥·¥¹¥Æ¥à¤Î¾ì¹ç */" +.BR "#include " " /* System V 系のシステムの場合 */" .sp .B "int ttyslot(void);" .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -60,54 +60,54 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_\ <\ 500\ &&\ _XOPEN_SOURCE_EXTENDED .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The legacy function .\"O .BR ttyslot () .\"O returns the index of the current user's entry in some file. -¥ì¥¬¥·¡¼¤Ê´Ø¿ô +レガシーな関数 .BR ttyslot () -¤Ï¡¢¤¢¤ë¥Õ¥¡¥¤¥ë¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¥«¥ì¥ó¥È¥æ¡¼¥¶¤Î¥¨¥ó¥È¥ê¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÊÖ¤¹¡£ +は、あるファイルに書かれているカレントユーザのエントリのインデックスを返す。 .LP .\"O Now "What file?" you ask. .\"O Well, let's first look at some history. -¡Ö¤É¤Î¥Õ¥¡¥¤¥ë¤Ê¤Î¤«¡©¡×¤È¤¤¤¦¼ÁÌ䤬¤¢¤ë¤À¤í¤¦¡£ -¤Ç¤Ï¡¢¤Þ¤ººÇ½é¤Ë¤½¤ÎÎò»Ë¤ò¸«¤Æ¤ß¤è¤¦¡£ +「どのファイルなのか?」という質問があるだろう。 +では、まず最初にその歴史を見てみよう。 .\"O .SS "Ancient History" -.SS ÂçÀΤÎÎò»Ë +.SS 大昔の歴史 .\"O There used to be a file .\"O .I /etc/ttys .\"O in UNIX V6, that was read by the .\"O .BR init (8) .\"O program to find out what to do with each terminal line. -UNIX V6 ¤Ç¤Ï +UNIX V6 では .I /etc/ttys -¥Õ¥¡¥¤¥ë¤¬»È¤ï¤ì¤Æ¤¤¤¿¡£ +ファイルが使われていた。 .BR init (8) -¥×¥í¥°¥é¥à¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ß¡¢ -³ÆüËö¹Ô¤Ç²¿¤ò¤¹¤Ù¤­¤«¤òõ¤¹¡£ +プログラムは、このファイルを読み込み、 +各端末行で何をすべきかを探す。 .\"O Each line consisted of three characters. -³Æ¹Ô¤Ï 3 ʸ»ú¤«¤é¹½À®¤µ¤ì¤Æ¤¤¤ë¡£ +各行は 3 文字から構成されている。 .\"O The first character was either \(aq0\(aq or \(aq1\(aq, .\"O where \(aq0\(aq meant "ignore". -1 ʸ»úÌÜ¤Ï \(aq0\(aq ¤Þ¤¿¤Ï \(aq1\(aq ¤Ç¤¢¤ê¡¢ -\(aq0\(aq ¤Ï¡Ö̵»ë¤¹¤ë¡×¤³¤È¤òɽ¤¹¡£ +1 文字目は \(aq0\(aq または \(aq1\(aq であり、 +\(aq0\(aq は「無視する」ことを表す。 .\"O The second character denoted the terminal: \(aq8\(aq stood for "/dev/tty8". -2 ʸ»úÌܤÏüËö¤ò¼¨¤¹: \(aq8\(aq ¤Ï "/dev/tty8" ¤òɽ¤¹¡£ +2 文字目は端末を示す: \(aq8\(aq は "/dev/tty8" を表す。 .\"O The third character was an argument to .\"O .BR getty (8) .\"O indicating the sequence of line speeds to try (\(aq\-\(aq was: start trying .\"O 110 baud). .\"O Thus a typical line was "18\-". -3 ʸ»úÌÜ¤Ï +3 文字目は .BR getty (8) -¤Ø¤Î°ú¤­¿ô¤Ç¤¢¤ê¡¢(Àܳ¤ò) »î¤ß¤ë²óÀþ®Å٤νç½ø¤òɽ¤¹ -(\(aq\-\(aq ¤Ï 110 ¥Ü¡¼¤ÇÀܳ¤Î»î¹Ô¤ò³«»Ï¤¹¤ë¤³¤È¤òɽ¤¹)¡£ -¤è¤Ã¤Æ°ìÈÌŪ¤Ê¹Ô¤Ï "18\-" ¤È¤Ê¤ë¡£ +への引き数であり、(接続を) 試みる回線速度の順序を表す +(\(aq\-\(aq は 110 ボーで接続の試行を開始することを表す)。 +よって一般的な行は "18\-" となる。 .\"O A hang on some line was solved by changing the \(aq1\(aq to a \(aq0\(aq, .\"O signaling init, changing back again, and signaling init again. -¤¢¤ë¹Ô¤Ç¥Ï¥ó¥°¤·¤¿¾ì¹ç¤Ï¡¢\(aq1\(aq ¤ò \(aq0\(aq ¤ËÊѹ¹¤·¡¢ -init ¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ê¡¢\(aq0\(aq ¤ò \(aq1\(aq ºÆÅÙ¤ËÊѹ¹¤·¡¢ -init ¤ËºÆÅÙ¥·¥°¥Ê¥ë¤òÁ÷¤ë¤³¤È¤Ç²ò·è¤¹¤ë¡£ +ある行でハングした場合は、\(aq1\(aq を \(aq0\(aq に変更し、 +init にシグナルを送り、\(aq0\(aq を \(aq1\(aq 再度に変更し、 +init に再度シグナルを送ることで解決する。 .LP .\"O In UNIX V7 the format was changed: here the second character .\"O was the argument to @@ -116,36 +116,36 @@ init .\"O 300-1200-150-110 baud; \(aq4\(aq was for the on-line console DECwriter) .\"O while the rest of the line contained the name of the tty. .\"O Thus a typical line was "14console". -UNIX V7 ¤Ç¤Ï¥Õ¥©¡¼¥Þ¥Ã¥È¤¬Êѹ¹¤µ¤ì¤¿: -2 ʸ»úÌܤ¬ +UNIX V7 ではフォーマットが変更された: +2 文字目が .BR getty (8) -¤Î°ú¤­¿ô¤È¤Ê¤ê¡¢(Àܳ¤ò) »î¤ß¤ë²óÀþ®Å٤νç½ø¤òɽ¤¹¤è¤¦¤Ë¤Ê¤ê -(\(aq0\(aq ¤Ï 300-1200-150-110 ¤ò·«¤êÊÖ¤¹¤³¤È¤òɽ¤·¡¢ -\(aq4\(aq ¤Ï¥ª¥ó¥é¥¤¥ó¥³¥ó¥½¡¼¥ë DECwriter ¤òɽ¤¹)¡¢ -¹Ô¤Î»Ä¤ê (¤Îʸ»ú) ¤ÏüËö̾¤È¤Ê¤Ã¤¿¡£ -¤è¤Ã¤Æ¡¢°ìÈÌŪ¤Ê¹Ô¤Ï "14console" ¤È¤Ê¤ë¡£ +の引き数となり、(接続を) 試みる回線速度の順序を表すようになり +(\(aq0\(aq は 300-1200-150-110 を繰り返すことを表し、 +\(aq4\(aq はオンラインコンソール DECwriter を表す)、 +行の残り (の文字) は端末名となった。 +よって、一般的な行は "14console" となる。 .LP .\"O Later systems have more elaborate syntax. -¸å¼Ô¤Î¥·¥¹¥Æ¥à¤Î½ñ¼°¤Ï¡¢¤è¤êÀº¹ª¤Ç¤¢¤ë¡£ +後者のシステムの書式は、より精巧である。 .\"O System V-like systems have .\"O .I /etc/inittab .\"O instead. -System V ·Ï¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢Âå¤ï¤ê¤Ë +System V 系のシステムでは、代わりに .I /etc/inittab -¤¬¤¢¤ë¡£ +がある。 .\"O .SS "Ancient History (2)" -.SS "ÂçÀΤÎÎò»Ë (2)" +.SS "大昔の歴史 (2)" .\"O On the other hand, there is the file .\"O .I /etc/utmp .\"O listing the people currently logged in. .\"O It is maintained by .\"O .BR login (1). -°ìÊý¡¢¸½ºß¥í¥°¥¤¥ó¤·¤Æ¤¤¤ë¿Í¤ò¥ê¥¹¥È¤¹¤ë¥Õ¥¡¥¤¥ë +一方、現在ログインしている人をリストするファイル .I /etc/utmp -¤¬¤¢¤ë¡£ -¤³¤ì¤Ï +がある。 +これは .BR login (1) -¤Ë¤è¤Ã¤Æ´ÉÍý¤µ¤ì¤Æ¤¤¤ë¡£ +によって管理されている。 .\"O It has a fixed size, and the appropriate index in the file was .\"O determined by .\"O .BR login (1) @@ -154,16 +154,16 @@ System V .\"O call to find the number of the line in .\"O .I /etc/ttys .\"O (counting from 1). -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¸ÇÄꤵ¤ì¤¿¥µ¥¤¥º¤Ç¤¢¤ê¡¢¥Õ¥¡¥¤¥ëÆâ¤ÎŬÀڤʥ¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¡¢ +このファイルは固定されたサイズであり、ファイル内の適切なインデックスは、 .BR login (1) -¤Ë¤è¤Ã¤Æ·èÄꤵ¤ì¤ë¡£ -¤³¤ÎºÝ¤Ë +によって決定される。 +この際に .BR ttyslot () -¤¬¸Æ¤Ð¤ì¤Æ¡¢ +が呼ばれて、 .I /etc/ttys -¤Ë¤ª¤±¤ë¹ÔÈÖ¹æ¤ò¸«¤Ä¤±¤ë (¹ÔÈÖ¹æ¤Ï 1 ¤«¤é¿ô¤¨¤ë)¡£ +における行番号を見つける (行番号は 1 から数える)。 .\"O .SS "The semantics of ttyslot" -.SS "ttyslot ¤Î°ÕÌ£" +.SS "ttyslot の意味" .\"O Thus, the function .\"O .BR ttyslot () .\"O returns the index of the controlling terminal of the calling process @@ -172,59 +172,59 @@ System V .\"O and that is (usually) the same as the index of the entry for the .\"O current user in the file .\"O .IR /etc/utmp . -¤è¤Ã¤Æ¡¢´Ø¿ô +よって、関数 .BR ttyslot () -¤Ï¡¢¥Õ¥¡¥¤¥ë +は、ファイル .I /etc/ttys -¤Ë¤ª¤±¤ë¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÊÖ¤¹¡£ -¤³¤ì¤Ï +における呼び出し元のプロセスの制御端末のインデックスを返す。 +これは .I /etc/utmp -¤Ë¤ª¤±¤ë¥«¥ì¥ó¥È¥æ¡¼¥¶¤Î¥¨¥ó¥È¥ê¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤È (Ä̾ï¤Ï) Åù¤·¤¤¡£ +におけるカレントユーザのエントリのインデックスと (通常は) 等しい。 .\"O BSD still has the .\"O .I /etc/ttys .\"O file, but System V-like systems do not, and hence cannot refer to it. -BSD ¤Ë¤Ï̤¤À¤Ë +BSD には未だに .I /etc/ttys -¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¤¬¡¢System V ·Ï¤Î¥·¥¹¥Æ¥à¤Ë¤Ï¤Ê¤¤¤Î¤Ç¡¢ -¤³¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +ファイルがあるが、System V 系のシステムにはないので、 +このファイルを参照することはできない。 .\"O Thus, on such systems the documentation says that .\"O .BR ttyslot () .\"O returns the current user's index in the user accounting data base. -¤è¤Ã¤Æ¡¢¤½¤Î¤è¤¦¤Ê¥·¥¹¥Æ¥à¤Ç¤Ï -.RB ¡Ö ttyslot () -¤Ï¥«¥ì¥ó¥È¥æ¡¼¥¶¤Î¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤ª¤±¤ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÊÖ¤¹¡× -¤È¥É¥­¥å¥á¥ó¥È¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ +よって、そのようなシステムでは +.RB 「 ttyslot () +はカレントユーザのユーザアカウントデータベースにおけるインデックスを返す」 +とドキュメントに書かれている。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O If successful, this function returns the slot number. -À®¸ù¤·¤¿¾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï¥¹¥í¥Ã¥ÈÈÖ¹æ¤òÊÖ¤¹¡£ +成功した場合、この関数はスロット番号を返す。 .\"O On error (e.g., if none of the file descriptors 0, 1 or 2 is .\"O associated with a terminal that occurs in this data base) .\"O it returns 0 on UNIX V6 and V7 and BSD-like systems, .\"O but \-1 on System V-like systems. -¥¨¥é¡¼¤Î¾ì¹ç -(Î㤨¤Ð¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ 0, 1, 2 ¤Î²¿¤ì¤â -¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤¢¤ëüËö¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç)¡¢ -UNIX V6, V7, BSD ·Ï¤Î¥·¥¹¥Æ¥à¤Ï 0 ¤òÊÖ¤¹¤¬¡¢ -System V ·Ï¤Î¥·¥¹¥Æ¥à¤Ï -1 ¤òÊÖ¤¹¡£ +エラーの場合 +(例えば、ファイルディスクリプタ 0, 1, 2 の何れも +データベースにある端末に関連づけられていない場合)、 +UNIX V6, V7, BSD 系のシステムは 0 を返すが、 +System V 系のシステムは -1 を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O SUSv1; marked as LEGACY in SUSv2; removed in POSIX.1-2001. .\"O SUSv2 requires \-1 on error. -SUSv1¡£SUSv2 ¤Ç¤Ï¡Ö²áµî¤Î̾»Ä (LEGACY)¡×¤È°ÌÃÖÉÕ¤±¤é¤ì¤Æ¤¤¤ë¡£ -POSIX.1-2001 ¤Çºï½ü¤µ¤ì¤¿¡£ -SUSv2 ¤Ç¤Ï¥¨¥é¡¼»þ¤Ë \-1 ¤òÊÖ¤¹¤³¤È¤¬Í׵ᤵ¤ì¤Æ¤¤¤ë¡£ +SUSv1。SUSv2 では「過去の名残 (LEGACY)」と位置付けられている。 +POSIX.1-2001 で削除された。 +SUSv2 ではエラー時に \-1 を返すことが要求されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The utmp file is found various places on various systems, such as .\"O .IR /etc/utmp , .\"O .IR /var/adm/utmp , .\"O .IR /var/run/utmp . -utmp ¥Õ¥¡¥¤¥ë¤ÏÍÍ¡¹¤Ê¥·¥¹¥Æ¥à¤Ç +utmp ファイルは様々なシステムで .IR /etc/utmp , .IR /var/adm/utmp , .I /var/run/utmp -¤Î¤è¤¦¤Ë¤¤¤í¤¤¤í¤Ê¾ì½ê¤Ë¤¢¤ë¡£ +のようにいろいろな場所にある。 .LP .\"O The glibc2 implementation of this function reads the file .\"O .BR _PATH_TTYS , @@ -232,30 +232,30 @@ utmp .\"O .I .\"O as "/etc/ttys". .\"O It returns 0 on error. -¤³¤Î´Ø¿ô¤Î glibc2 ¤Ë¤ª¤±¤ë¼ÂÁõ¤Ç¤Ï¡¢¥Õ¥¡¥¤¥ë +この関数の glibc2 における実装では、ファイル .B _PATH_TTYS -¤òÆɤ߹þ¤à¡£ -¤³¤ì¤Ï +を読み込む。 +これは .I -¤Ë¤ª¤¤¤Æ "/etc/ttys" ¤ÈÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢0 ¤òÊÖ¤¹¡£ +において "/etc/ttys" と定義されている。 +エラーの場合、0 を返す。 .\"O Since Linux systems do not usually have "/etc/ttys", it will .\"O always return 0. -Linux ¥·¥¹¥Æ¥à¤Ë¤ÏÄ̾ï "/etc/ttys" ¤¬¤Ê¤¤¤Î¤Ç¡¢¾ï¤Ë 0 ¤òÊÖ¤¹¡£ +Linux システムには通常 "/etc/ttys" がないので、常に 0 を返す。 .LP .\"O Minix also has .\"O .IR fttyslot ( fd ). -Minix ¤Ë¤Ï +Minix には .IR fttyslot ( fd ) -¤â¤¢¤ë¡£ +もある。 .\"O .\" .SH HISTORY -.\" .SH ÍúÎò +.\" .SH 履歴 .\"O .\" .BR ttyslot () .\"O .\" appeared in UNIX V7. .\" .BR ttyslot () -.\" ¤Ï UNIX V7 ¤ÇÅо줷¤¿¡£ +.\" は UNIX V7 で登場した。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getttyent (3), .BR ttyname (3), .BR utmp (5) diff --git a/draft/man3/tzset.3 b/draft/man3/tzset.3 index 75255027..faab3d5f 100644 --- a/draft/man3/tzset.3 +++ b/draft/man3/tzset.3 @@ -34,18 +34,18 @@ .\" Updated 2002-01-06, NAKANO Takeo .\" Updated 2007-01-07, Akihiro MOTOKI, catch up to LDP v2.43 .\" -.\" WORD: Wall Clock Time ÊÉ»þ·×»þ¹ï -.\" WORD: Coordinated Universal Time ¶¨ÄêÀ¤³¦»þ -.\" WORD: daylight saving time ¥µ¥Þ¡¼¥¿¥¤¥à -.\" WORD: Prime Meridian ¥°¥ê¥Ë¥Ã¥¸»Ò¸áÀþ +.\" WORD: Wall Clock Time 壁時計時刻 +.\" WORD: Coordinated Universal Time 協定世界時 +.\" WORD: daylight saving time サマータイム +.\" WORD: Prime Meridian グリニッジ子午線 .\" .TH TZSET 3 2010-02-25 "" "Linux Programmer's Manual" .\"O .SH NAME .\"O tzset, tzname, timezone, daylight \- initialize time conversion information -.SH ̾Á° -tzset, tzname, timezone, daylight \- »þ¹ï¤ÎÊÑ´¹¾ðÊó¤ò½é´ü²½¤¹¤ë +.SH 名前 +tzset, tzname, timezone, daylight \- 時刻の変換情報を初期化する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -59,9 +59,9 @@ tzset, tzname, timezone, daylight \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR tzset (): @@ -76,7 +76,7 @@ _SVID_SOURCE || _XOPEN_SOURCE .IR daylight : _SVID_SOURCE || _XOPEN_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR tzset () .\"O function initializes the \fItzname\fP variable from the @@ -89,13 +89,13 @@ _SVID_SOURCE || _XOPEN_SOURCE .\"O have any daylight saving time rules, or to nonzero if there is a time during .\"O the year when daylight saving time applies). .BR tzset () -´Ø¿ô¤Ï +関数は .B TZ -´Ä¶­ÊÑ¿ô¤òÍѤ¤¤Æ \fItzname\fP ÊÑ¿ô¤ò½é´ü²½¤¹¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢¥¿¥¤¥à¥¾¡¼¥ó¤Ë°Í¸¤¹¤ë¾¤Î»þ¹ïÊÑ´¹´Ø¿ô¤«¤é¼«Æ°Åª¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ -System V Ū¤Ê´Ä¶­¤Ç¤Ï¡¢¤³¤Î´Ø¿ô¤ÏÊÑ¿ô \fItimezone\fP (UTC ¤«¤é¤ÎÀ¾¸þ¤­¤ÎÉÿô) ¤È -\fIdaylight\fP (¤³¤Î¥¿¥¤¥à¥¾¡¼¥ó¤Ë¥µ¥Þ¡¼¥¿¥¤¥à¤Ë´Ø¤¹¤ë¥ë¡¼¥ë¤¬¤Ê¤±¤ì¤Ð 0¡¢ -¥µ¥Þ¡¼¥¿¥¤¥à´ü´Ö¤¬°ìǯ¤Î¤É¤³¤«¤Ë¤¢¤ì¤Ð 0 °Ê³°) ¤âÀßÄꤹ¤ë¡£ +環境変数を用いて \fItzname\fP 変数を初期化する。 +この関数は、タイムゾーンに依存する他の時刻変換関数から自動的に呼び出される。 +System V 的な環境では、この関数は変数 \fItimezone\fP (UTC からの西向きの秒数) と +\fIdaylight\fP (このタイムゾーンにサマータイムに関するルールがなければ 0、 +サマータイム期間が一年のどこかにあれば 0 以外) も設定する。 .PP .\"O If the .\"O .B TZ @@ -106,21 +106,21 @@ System V Ū .\"O file \fIlocaltime\fP .\"O found in the system timezone directory (see below). .B TZ -´Ä¶­ÊÑ¿ô¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ -\fItzname\fP ÊÑ¿ô¤Ï¥í¡¼¥«¥ë¤ÊÊÉ»þ·×»þ¹ï (wall clock time) ¤Ë -ºÇ¤â¶á¤¤Ãͤ˽é´ü²½¤µ¤ì¤ë¡£ -¤³¤Î¥í¡¼¥«¥ë¤ÊÊÉ»þ·×»þ¹ï¤È¤·¤Æ¤Ï¡¢ -¥·¥¹¥Æ¥à¤Î¥¿¥¤¥à¥¾¡¼¥ó¥Ç¥£¥ì¥¯¥È¥ê (¸å½Ò) ¤Ë¤¢¤ë +環境変数が設定されていない場合には、 +\fItzname\fP 変数はローカルな壁時計時刻 (wall clock time) に +最も近い値に初期化される。 +このローカルな壁時計時刻としては、 +システムのタイムゾーンディレクトリ (後述) にある .BR tzfile (5) -·Á¼°¤Î¥Õ¥¡¥¤¥ë \fIlocaltime\fP ¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ëÃͤ¬ÍѤ¤¤é¤ì¤ë¡£ +形式のファイル \fIlocaltime\fP で指定されている値が用いられる。 .\"O (One also often sees .\"O .I /etc/localtime .\"O used here, a symlink to the right file in the system timezone directory.) -(¤³¤ÎºÝ¤Ë¤Ï +(この際には .I /etc/localtime -¤â¤è¤¯ÍѤ¤¤é¤ì¤ë¡£ -¤³¤ì¤Ï¥·¥¹¥Æ¥à¤Î¥¿¥¤¥à¥¾¡¼¥ó¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë -ŬÀڤʥե¡¥¤¥ë¤Ø¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£) +もよく用いられる。 +これはシステムのタイムゾーンディレクトリにある +適切なファイルへのシンボリックリンクになっている。) .PP .\"O If the .\"O .B TZ @@ -128,9 +128,9 @@ System V Ū .\"O or its value cannot be interpreted using any of the formats specified .\"O below, Coordinated Universal Time (UTC) is used. .B TZ -´Ä¶­ÊÑ¿ô¤¬Â¸ºß¤·¤Æ¤¤¤ë¤¬¡¢¤½¤ÎÃͤ¬¶õ¤À¤Ã¤¿¤ê¡¢ -°Ê²¼¤Ë¼¨¤¹·Á¼°¤Î¤É¤ì¤Ë¤â¤¢¤Æ¤Ï¤Þ¤é¤Ê¤¤¾ì¹ç¤Ï¡¢ -¶¨ÄêÀ¤³¦»þ (Coordinated Universal Time: UTC) ¤¬ÍѤ¤¤é¤ì¤ë¡£ +環境変数が存在しているが、その値が空だったり、 +以下に示す形式のどれにもあてはまらない場合は、 +協定世界時 (Coordinated Universal Time: UTC) が用いられる。 .PP .\"O The value of .\"O .B TZ @@ -138,9 +138,9 @@ System V Ū .\"O The first format is used .\"O when there is no daylight saving time in the local timezone: .B TZ -¤ÎÃͤϰʲ¼¤Î 3 ¤Ä¤Î·Á¼°¤Î¤¤¤º¤ì¤«¤ò¼è¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -ºÇ½é¤Î·Á¼°¤Ï¥µ¥Þ¡¼¥¿¥¤¥à (daylight saving time) -¤ò»ý¤¿¤Ê¤¤¥í¡¼¥«¥ë¥¿¥¤¥à¥¾¡¼¥ó¤ËÂФ·¤ÆÍѤ¤¤ë¡£ +の値は以下の 3 つの形式のいずれかを取ることができる。 +最初の形式はサマータイム (daylight saving time) +を持たないローカルタイムゾーンに対して用いる。 .sp .RS .I std offset @@ -156,19 +156,19 @@ System V Ū .\"O east. .\"O The hour must be between 0 and 24, and the minutes and seconds .\"O 0 and 59. -\fIstd\fP ʸ»úÎó¤Ï¥¿¥¤¥à¥¾¡¼¥ó¤Î̾Á°¤ò»ØÄꤹ¤ë¡£ -¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤«¤é¤Ê¤ë 3 ʸ»ú°Ê¾å¤Îʸ»úÎó¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -\fIoffset\fP ʸ»úÎó¤Ï \fIstd\fP ¤Îľ¸å¤Ë³¤­¡¢ -¶¨ÄêÀ¤³¦»þ (UTC) ¤òÆÀ¤ë¤¿¤á¤Ë -¥í¡¼¥«¥ë¤Ê»þ¹ï¤Ë²Ã¤¨¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤»þ´Ö¤ò»ØÄꤹ¤ë¡£ +\fIstd\fP 文字列はタイムゾーンの名前を指定する。 +アルファベットからなる 3 文字以上の文字列でなければならない。 +\fIoffset\fP 文字列は \fIstd\fP の直後に続き、 +協定世界時 (UTC) を得るために +ローカルな時刻に加えなければならない時間を指定する。 .I offset -¤Ï¡¢¥í¡¼¥«¥ë¥¿¥¤¥à¥¾¡¼¥ó¤¬¥°¥ê¥Ë¥Ã¥¸»Ò¸áÀþ (Prime Meridian) -¤ÎÀ¾¤Ê¤éÀµ¤ÎÃÍ¡¢Åì¤Ê¤éÉé¤ÎÃͤò¼è¤ë¡£ -»þ´Ö (hour) ¤Ï 0 ¤«¤é 24 ¤Î´Ö¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -ʬ (minute) ¤ÈÉà (second) ¤Ï 0 ¤«¤é 59 ¤Î´Ö¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は、ローカルタイムゾーンがグリニッジ子午線 (Prime Meridian) +の西なら正の値、東なら負の値を取る。 +時間 (hour) は 0 から 24 の間でなければならない。 +分 (minute) と秒 (second) は 0 から 59 の間でなければならない。 .PP .\"O The second format is used when there is daylight saving time: -2 ÈÖÌܤηÁ¼°¤Ï¥µ¥Þ¡¼¥¿¥¤¥à¤¬¤¢¤ë¾ì¹ç¤ËÍѤ¤¤é¤ì¤ë¡£ +2 番目の形式はサマータイムがある場合に用いられる。 .sp .RS .I std offset dst [offset],start[/time],end[/time] @@ -181,34 +181,34 @@ System V Ū .\"O corresponding daylight saving timezone. .\"O If the offset is omitted, .\"O it default to one hour ahead of standard time. -»ØÄê¤Ë¤Ï¥¹¥Ú¡¼¥¹¤ò´Þ¤á¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -ÀèƬ¤Î \fIstd\fP ¤È \fIoffset\fP ¤Ï 1 ÈÖÌܤηÁ¼°¤ÈƱ¤¸¤Ç¡¢ -ɸ½à¤Î¥¿¥¤¥à¥¾¡¼¥ó¤ò»ØÄꤹ¤ë¡£ -\fIdst\fP ʸ»úÎó¤È \fIoffset\fP ¤Ï¡¢ -Âбþ¤¹¤ë¥µ¥Þ¡¼¥¿¥¤¥à¥¾¡¼¥ó¤Î̾Á°¤È¥ª¥Õ¥»¥Ã¥È¤ò»ØÄꤹ¤ë¡£ -¥ª¥Õ¥»¥Ã¥È¤¬¾Êά¤µ¤ì¤ë¤È¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ïɸ½à¤Î°ì»þ´ÖÁ°¤È¤Ê¤ë¡£ +指定にはスペースを含めてはならない。 +先頭の \fIstd\fP と \fIoffset\fP は 1 番目の形式と同じで、 +標準のタイムゾーンを指定する。 +\fIdst\fP 文字列と \fIoffset\fP は、 +対応するサマータイムゾーンの名前とオフセットを指定する。 +オフセットが省略されると、デフォルトでは標準の一時間前となる。 .PP .\"O The \fIstart\fP field specifies when daylight saving time goes into .\"O effect and the \fIend\fP field specifies when the change is made back to .\"O standard time. .\"O These fields may have the following formats: -\fIstart\fP ¥Õ¥£¡¼¥ë¥É¤Ï¥µ¥Þ¡¼¥¿¥¤¥à¤¬Í­¸ú¤Ë¤Ê¤ë»þ¹ï¡¢ -\fIend\fP ¥Õ¥£¡¼¥ë¥É¤Ïɸ½à¤ËÌá¤ë»þ¹ï¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Ï°Ê²¼¤Î·Á¼°¤Ç»ØÄꤹ¤ë¡£ +\fIstart\fP フィールドはサマータイムが有効になる時刻、 +\fIend\fP フィールドは標準に戻る時刻である。 +これらのフィールドは以下の形式で指定する。 .TP J\fIn\fP .\"O This specifies the Julian day with \fIn\fP between 1 and 365. .\"O February 29 is never counted even in leap years. -ǯ¤ÎÄÌÆü (Julian day) ¤ÇÆü¤Ë¤Á¤ò»ØÄꤹ¤ë¡£ -\fIn\fP ¤Ï 1 ¤«¤é 365 ¤Î´Ö¤Î¿ôÃÍ¡£ -¤¦¤ë¤¦Ç¯¤Î¾ì¹ç¤Ç¤â 2 ·î 29 Æü¤Ï¥«¥¦¥ó¥È¤µ¤ì¤Ê¤¤¡£ +年の通日 (Julian day) で日にちを指定する。 +\fIn\fP は 1 から 365 の間の数値。 +うるう年の場合でも 2 月 29 日はカウントされない。 .TP .I n .\"O This specifies the Julian day with \fIn\fP between 1 and 365. .\"O February 29 is counted in leap years. -ǯ¤ÎÄÌÆü¤ÇÆü¤Ë¤Á¤ò»ØÄꤹ¤ë¡£ -\fIn\fP ¤Ï 1 ¤«¤é 365 ¤Î´Ö¤Î¿ôÃÍ¡£ -¤¦¤ë¤¦Ç¯¤Î¾ì¹ç¤Ë¤Ï 2 ·î 29 Æü¤¬¥«¥¦¥ó¥È¤µ¤ì¤ë¡£ +年の通日で日にちを指定する。 +\fIn\fP は 1 から 365 の間の数値。 +うるう年の場合には 2 月 29 日がカウントされる。 .TP M\fIm\fP.\fIw\fP.\fId\fP .\"O This specifies day \fId\fP (0 <= \fId\fP <= 6) of week \fIw\fP @@ -217,30 +217,30 @@ M\fIm\fP.\fIw\fP.\fId\fP .\"O the first week in which day \fId\fP occurs and week 5 is the last week .\"O in which day \fId\fP occurs. .\"O Day 0 is a Sunday. -\fIm\fP ¤Ï·î (1 <= \fIm\fP <= 12) ¤ò¡¢ -\fIw\fP ¤Ï·î¤Î¤¦¤Á¤Î½µ (1 <= \fIw\fP <= 5) ¤ò¡¢ -\fId\fP ¤Ï½µ¤Î¤¦¤Á¤ÎÆü¤Ë¤Á (0 <= \fId\fP <= 6) ¤ò¼¨¤¹¡£ -\fIw\fP = 1 ¤Ï½ê°¤¹¤ë \fId\fP ¤¬Â¸ºß¤¹¤ëºÇ½é¤Î½µ¡¢ -\fIw\fP = 5 ¤ÏºÇ¸å¤Î½µ¤Ç¤¢¤ë¡£ -\fId\fP = 0 ¤ÏÆüÍËÆü¤Ç¤¢¤ë¡£ +\fIm\fP は月 (1 <= \fIm\fP <= 12) を、 +\fIw\fP は月のうちの週 (1 <= \fIw\fP <= 5) を、 +\fId\fP は週のうちの日にち (0 <= \fId\fP <= 6) を示す。 +\fIw\fP = 1 は所属する \fId\fP が存在する最初の週、 +\fIw\fP = 5 は最後の週である。 +\fId\fP = 0 は日曜日である。 .PP .\"O The \fItime\fP fields specify when, in the local time currently in effect, .\"O the change to the other time occurs. .\"O If omitted, the default is 02:00:00. -\fItime\fP ¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥í¡¼¥«¥ë¥¿¥¤¥à¤òÀÚ¤êÂؤ¨¤ë»þ¹ï¤ò¡¢ -Êѹ¹Á°¤Î¥í¡¼¥«¥ë¥¿¥¤¥à¤Çɽ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -¾Êά¤µ¤ì¤¿¾ì¹ç¤Î¥Ç¥Õ¥©¥ë¥È¤Ï 02:00:00 ¤Ç¤¢¤ë¡£ +\fItime\fP フィールドは、ローカルタイムを切り替える時刻を、 +変更前のローカルタイムで表したものである。 +省略された場合のデフォルトは 02:00:00 である。 .\"O Here is an example for New Zealand, .\"O where the standard time (NZST) is 12 hours ahead of UTC, .\"O and daylight saving time (NZDT), 13 hours ahead of UTC, .\"O runs from the first Sunday in October to the third Sunday in March, .\"O and the changeovers happen at the default time of 02:00:00: -¥Ë¥å¡¼¥¸¡¼¥é¥ó¥É¤ÎÎã¤Ç¤¢¤ë¡£ -¥Ë¥å¡¼¥¸¡¼¥é¥ó¥É¤Ç¤Ï¡¢É¸½à¤Î¥¿¥¤¥à¥¾¡¼¥ó (NZST) ¤Ï UTC ¤è¤ê 12»þ´Ö¿Ê¤ó¤Ç¤ª¤ê¡¢ -¥µ¥Þ¡¼¥¿¥¤¥à (NZDT) ¤Ï UTC ¤Î 13»þ´Ö¿Ê¤ó¤Ç¤¤¤ë¡£ -¥µ¥Þ¡¼¥¿¥¤¥à¤Ï 10·î¤ÎÂè°ìÆüÍˤ«¤é 3·î¤ÎÂè»°ÆüÍˤޤǤǤ¢¤ê¡¢ -¥í¡¼¥«¥ë¥¿¥¤¥à¤ÎÀÚ¤êÂؤ¨¤Ï¥Ç¥Õ¥©¥ë¥È¤Î 02:00:00 ¤Ë¹Ô¤ï¤ì¤ë¡£ +ニュージーランドの例である。 +ニュージーランドでは、標準のタイムゾーン (NZST) は UTC より 12時間進んでおり、 +サマータイム (NZDT) は UTC の 13時間進んでいる。 +サマータイムは 10月の第一日曜から 3月の第三日曜までであり、 +ローカルタイムの切り替えはデフォルトの 02:00:00 に行われる。 .nf TZ="NZST-12:00:00NZDT-13:00:00,M10.1.0,M3.3.0" @@ -248,7 +248,7 @@ M\fIm\fP.\fIw\fP.\fId\fP .PP .\"O The third format specifies that the timezone information should be read .\"O from a file: -3 ÈÖÌܤηÁ¼°¤Ï¡¢¥¿¥¤¥à¥¾¡¼¥ó¤Î¾ðÊó¤ò¥Õ¥¡¥¤¥ë¤«¤éÆɤ߹þ¤à¤è¤¦¤Ë»ØÄꤹ¤ë¡£ +3 番目の形式は、タイムゾーンの情報をファイルから読み込むように指定する。 .sp .RS :[filespec] @@ -259,13 +259,13 @@ M\fIm\fP.\fIw\fP.\fId\fP .\"O .I localtime .\"O in the system timezone directory, which nowadays usually is .\"O .IR /usr/share/zoneinfo . -¥Õ¥¡¥¤¥ë¤Î»ØÄê \fIfilespec\fP ¤¬¾Êά¤µ¤ì¤¿¾ì¹ç¤Ï¡¢ -¥¿¥¤¥à¥¾¡¼¥ó¤Î¾ðÊó¤Ï¥·¥¹¥Æ¥à¥¿¥¤¥à¥¾¡¼¥ó¥Ç¥£¥ì¥¯¥È¥ê¤Î +ファイルの指定 \fIfilespec\fP が省略された場合は、 +タイムゾーンの情報はシステムタイムゾーンディレクトリの .I localtime -¥Õ¥¡¥¤¥ë¤«¤éÆɤޤì¤ë¡£ -ºÇ¶á¤Ç¤Ï¥·¥¹¥Æ¥à¥¿¥¤¥à¥¾¡¼¥ó¥Ç¥£¥ì¥¯¥È¥ê¤ÏÉáÄÌ +ファイルから読まれる。 +最近ではシステムタイムゾーンディレクトリは普通 .I /usr/share/zoneinfo/localtime -¤Ç¤¢¤ë¡£ +である。 .\"O This file is in .\"O .BR tzfile (5) .\"O format. @@ -274,58 +274,58 @@ M\fIm\fP.\fIw\fP.\fId\fP .\"O file to read the timezone information from. .\"O If \fIfilespec\fP does not begin with a \(aq/\(aq, the file specification is .\"O relative to the system timezone directory. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï +このファイルは .BR tzfile (5) -·Á¼°¤Ç½ñ¤«¤ì¤Æ¤¤¤ë¡£ -\fIfilespec\fP ¤¬Í¿¤¨¤é¤ì¤¿¾ì¹ç¤Ï¡¢ -¥¿¥¤¥à¥¾¡¼¥ó¤Î¾ðÊó¤ò¤½¤Î¥Õ¥¡¥¤¥ë¤«¤éÆɤ߹þ¤à¡£¤³¤Î¥Õ¥¡¥¤¥ë¤â +形式で書かれている。 +\fIfilespec\fP が与えられた場合は、 +タイムゾーンの情報をそのファイルから読み込む。このファイルも .BR tzfile (5) -·Á¼°¤Ç½ñ¤«¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ -\fIfilespec\fP ¤¬ \(aq/\(aq ¤Ç»Ï¤Þ¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ -¥·¥¹¥Æ¥à¥¿¥¤¥à¥¾¡¼¥ó¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹¤Ç -¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤¿¤³¤È¤Ë¤Ê¤ë¡£ +形式で書かれている必要がある。 +\fIfilespec\fP が \(aq/\(aq で始まらなかった場合には、 +システムタイムゾーンディレクトリからの相対パスで +ファイルが指定されたことになる。 .PP .\"O Here's an example, once more for New Zealand: -Îã¤òµó¤²¤Æ¤ª¤¯¡£¤â¤¦°ìÅ٥˥塼¥¸¡¼¥é¥ó¥É¤ÎÎã¤Ç¤¢¤ë¡£ +例を挙げておく。もう一度ニュージーランドの例である。 .nf TZ=":Pacific/Auckland" .fi .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .\"O The system timezone directory used depends on the (g)libc version. -ÍѤ¤¤é¤ì¤ë¥·¥¹¥Æ¥à¥¿¥¤¥à¥¾¡¼¥ó¥Ç¥£¥ì¥¯¥È¥ê¤Ï (g)libc ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë°Í¸¤¹¤ë¡£ +用いられるシステムタイムゾーンディレクトリは (g)libc のバージョンに依存する。 .\"O Libc4 and libc5 use .\"O .IR /usr/lib/zoneinfo , .\"O and, since libc-5.4.6, .\"O when this doesn't work, will try .\"O .IR /usr/share/zoneinfo . -libc4 ¤È libc5 ¤Ï +libc4 と libc5 は .I /usr/lib/zoneinfo -¤òÍѤ¤¤ë¡£libc-5.4.6 °Ê¹ß¤Ç¤Ï¡¢¤³¤ì¤¬»È¤¨¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï +を用いる。libc-5.4.6 以降では、これが使えなかった場合には .I /usr/share/zoneinfo -¤ò»È¤ª¤¦¤È¤¹¤ë¡£ +を使おうとする。 .\"O Glibc2 will use the environment variable .\"O .BR TZDIR , .\"O when that exists. -glibc2 ¤Ç¤Ï´Ä¶­ÊÑ¿ô +glibc2 では環境変数 .B TZDIR -¤¬Â¸ºß¤¹¤ì¤Ð¤½¤ì¤òÍѤ¤¤ë¡£ +が存在すればそれを用いる。 .\"O Its default depends on how it was installed, but normally is .\"O .IR /usr/share/zoneinfo . -¤³¤Î¥Ç¥Õ¥©¥ë¥È¤Ï¤É¤Î¤è¤¦¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¤«¤Ë¤è¤ë¤¬¡¢ -ÉáÄÌ¤Ï +このデフォルトはどのようにインストールされたかによるが、 +普通は .I /usr/share/zoneinfo -¤Ç¤¢¤ë¡£ +である。 .LP .\"O This timezone directory contains the files -¤³¤Î¥¿¥¤¥à¥¾¡¼¥ó¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤ë¡£ +このタイムゾーンディレクトリには以下のファイルが含まれる。 .sp .nf .\"O localtime local timezone file .\"O posixrules rules for POSIX-style TZ's -localtime ¥í¡¼¥«¥ë¥¿¥¤¥à¥¾¡¼¥ó¤Î¥Õ¥¡¥¤¥ë -posixrules POSIX ¼°¤Î TZ ½ñ¼°¥ë¡¼¥ë +localtime ローカルタイムゾーンのファイル +posixrules POSIX 式の TZ 書式ルール .fi .LP .\"O Often @@ -334,16 +334,16 @@ posixrules POSIX .\"O .I localtime .\"O or to the correct timezone file in the system timezone directory. .I /etc/localtime -¤Ï¡¢ +は、 .I localtime -¥Õ¥¡¥¤¥ë¤ä¡¢ -¥·¥¹¥Æ¥à¤Î¥¿¥¤¥à¥¾¡¼¥ó¥Ç¥£¥ì¥¯¥È¥êÃæ¤ÎŬÀڤʥ¿¥¤¥à¥¾¡¼¥ó¥Õ¥¡¥¤¥ë¤Ø¤Î -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¤¢¤ë¤³¤È¤¬Â¿¤¤¡£ +ファイルや、 +システムのタイムゾーンディレクトリ中の適切なタイムゾーンファイルへの +シンボリックリンクであることが多い。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001, 4.3BSD. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Note that the variable \fIdaylight\fP does not indicate that daylight .\"O saving time applies right now. .\"O It used to give the number of some @@ -351,14 +351,14 @@ SVr4, POSIX.1-2001, 4.3BSD. .\"O .BR gettimeofday (2)). .\"O It has been obsolete for many years but is required by SUSv2. .I daylight -ÊÑ¿ô¤Ï¡¢¸½ºß¤¬¥µ¥Þ¡¼¥¿¥¤¥à¤Ç¤¢¤ë¤«¤É¤¦¤«¤ò¼¨¤·¤Æ¤¤¤ë¤Î¤Ç¤Ï¤Ê¤¤¡£ -¤³¤ì¤Ï¤¤¤¯¤Ä¤«¤¢¤ë¥¢¥ë¥´¥ê¥º¥à¤Î¤¦¤Á¤ÎÈÖ¹æ¤òÍ¿¤¨¤ë -(¥¢¥ë¥´¥ê¥º¥à¤Ë¤Ä¤¤¤Æ¤Ï +変数は、現在がサマータイムであるかどうかを示しているのではない。 +これはいくつかあるアルゴリズムのうちの番号を与える +(アルゴリズムについては .BR gettimeofday (2) -¤Î +の .I tz_dsttime -ÊÑ¿ô¤ò¸«¤è)¡£ -¤³¤ì¤Ï¤â¤¦²¿Ç¯¤â»È¤ï¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢SUSv2 ¤Ç¤ÏɬÍפȤµ¤ì¤Æ¤¤¤ë¡£ +変数を見よ)。 +これはもう何年も使われていないが、SUSv2 では必要とされている。 .LP .\"O 4.3BSD had a function .\"O .BI "char *timezone(" zone ", " dst ) @@ -367,14 +367,14 @@ SVr4, POSIX.1-2001, 4.3BSD. .\"O West of UTC). .\"O If the second argument was 0, the standard name was used, .\"O otherwise the daylight saving time version. -4.3BSD ¤Ë¤Ï +4.3BSD には .BI "char *timezone(" zone ", " dst ) -¤È¤¤¤¦¥ë¡¼¥Á¥ó¤¬¤¢¤ê¡¢¤³¤ì¤Ï -ºÇ½é¤Î°ú¿ô (UTC ¤«¤é¤ÎÀ¾¸þ¤­¤Îʬ¿ô) ¤ËÂбþ¤¹¤ë¥¿¥¤¥à¥¾¡¼¥ó¤Î̾Á°¤òÊÖ¤¹¡£ -ÆóÈÖÌܤΰú¿ô¤¬ 0 ¤Î¾ì¹ç¤Ïɸ½à¤Î̾Á°¤¬ÍѤ¤¤é¤ì¡¢ -¤½¤ì°Ê³°¤Ï¥µ¥Þ¡¼¥¿¥¤¥àÈǤÎ̾Á°¤¬ÍѤ¤¤é¤ì¤ë¡£ +というルーチンがあり、これは +最初の引数 (UTC からの西向きの分数) に対応するタイムゾーンの名前を返す。 +二番目の引数が 0 の場合は標準の名前が用いられ、 +それ以外はサマータイム版の名前が用いられる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR date (1), .BR gettimeofday (2), .BR time (2), diff --git a/draft/man3/ualarm.3 b/draft/man3/ualarm.3 index 3ea27e56..20a6ba82 100644 --- a/draft/man3/ualarm.3 +++ b/draft/man3/ualarm.3 @@ -28,11 +28,11 @@ .\" .TH UALARM 3 2010-09-20 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O ualarm \- schedule signal after given number of microseconds -ualarm \- »ØÄꤷ¤¿¥Þ¥¤¥¯¥íÉøå¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ëͽÄê¤ò¤¹¤ë +ualarm \- 指定したマイクロ秒後にシグナルを送る予定をする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B "#include " .sp @@ -42,9 +42,9 @@ ualarm \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR ualarm (): @@ -53,7 +53,7 @@ glibc .PD 0 .TP 4 .\"O Since glibc 2.12: -glibc 2.12 °Ê¹ß: +glibc 2.12 以降: .nf _BSD_SOURCE || (_XOPEN_SOURCE\ >=\ 500 || @@ -62,14 +62,14 @@ _BSD_SOURCE || .TP 4 .fi .\"O Before glibc 2.12: -glibc 2.12 ¤è¤êÁ°: +glibc 2.12 より前: _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .PD .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR ualarm () .\"O function causes the signal @@ -78,23 +78,23 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O .I usecs .\"O microseconds. .BR ualarm () -´Ø¿ô¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ +関数は、呼び出し元のプロセスに対して .I usecs -¥Þ¥¤¥¯¥íÉà (°Ê¾å) ¸å¤Ë +マイクロ秒 (以上) 後に .B SIGALRM -¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +シグナルを送る。 .\"O The delay may be lengthened slightly by any system activity .\"O or by the time spent processing the call or by the .\"O granularity of system timers. -ÃÙ¤ì¤Ï¥·¥¹¥Æ¥à¤Î³èÀ­ÅÙ¡¦¸Æ¤Ó½Ð¤·¤Î½èÍý»þ´Ö¡¦ -¥·¥¹¥Æ¥à¥¿¥¤¥Þ¡¼¤ÎγÅ٤ˤè¤Ã¤ÆŤ¯¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +遅れはシステムの活性度・呼び出しの処理時間・ +システムタイマーの粒度によって長くなるかもしれない。 .LP .\"O Unless caught or ignored, the .\"O .B SIGALRM .\"O signal will terminate the process. -Ê᪤ޤ¿¤Ï̵»ë¤µ¤ì¤Ê¤¤¸Â¤ê¡¢ +捕捉または無視されない限り、 .B SIGALRM -¥·¥°¥Ê¥ë¤Ï¥×¥í¥»¥¹¤ò½ªÎ»¤µ¤»¤ë¡£ +シグナルはプロセスを終了させる。 .LP .\"O If the .\"O .I interval @@ -104,77 +104,77 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O .I interval .\"O microseconds after the first. .I interval -°ú¤­¿ô¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¡¢ºÇ½é¤Î +引き数が 0 でない場合、最初の .B SIGALRM -¥·¥°¥Ê¥ë¤Î¸å¡¢ -¤µ¤é¤Ë +シグナルの後、 +さらに .I interval -¥Þ¥¤¥¯¥íÉÃËè¤Ë SIGALRM ¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£ +マイクロ秒毎に SIGALRM シグナルが送られる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O This function returns the number of microseconds remaining for .\"O any alarm that was previously set, or 0 if no alarm was pending. -¤³¤Î´Ø¿ô¤Ï¡¢²áµî¤ËÀßÄꤵ¤ì¤¿ alarm ¤Î»Ä¤ê¥Þ¥¤¥¯¥íÉÿô¤òÊÖ¤¹¡£ -¼Â¹ÔÃæ¤Î alarm ¤¬¤Ê¤¤¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +この関数は、過去に設定された alarm の残りマイクロ秒数を返す。 +実行中の alarm がない場合は 0 を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINTR .\"O Interrupted by a signal. -¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿¡£ +シグナルによって割り込まれた。 .TP .B EINVAL .\"O \fIusecs\fP or \fIinterval\fP is not smaller than 1000000. .\"O (On systems where that is considered an error.) -\fIusecs\fP ¤Þ¤¿¤Ï \fIinterval\fP ¤¬ 1000000 ̤Ëþ¤Ç¤Ê¤¤ -(¤³¤ì¤¬¥¨¥é¡¼¤È¤·¤Æ°·¤ï¤ì¤ë¥·¥¹¥Æ¥à¤Î¾ì¹ç)¡£ +\fIusecs\fP または \fIinterval\fP が 1000000 未満でない +(これがエラーとして扱われるシステムの場合)。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.3BSD, POSIX.1-2001. .\"O POSIX.1-2001 marks .\"O .BR ualarm () .\"O as obsolete. -POSIX.1-2001 ¤Ç¤Ï +POSIX.1-2001 では .BR ualarm () -¤Ï²áµî¤Î¤â¤Î¤È¤µ¤ì¤Æ¤¤¤ë¡£ +は過去のものとされている。 .\"O POSIX.1-2008 removes the specification of .\"O .BR ualarm (). -POSIX.1-2008 ¤Ç¤Ï¡¢ +POSIX.1-2008 では、 .BR ualarm () -¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ +の仕様が削除されている。 .\"O 4.3BSD, SUSv2, and POSIX do not define any errors. -4.3BSD, SUSv2, POSIX ¤Ï¥¨¥é¡¼¤òÄêµÁ¤·¤Æ¤¤¤Ê¤¤¡£ +4.3BSD, SUSv2, POSIX はエラーを定義していない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The type .\"O .I useconds_t .\"O is an unsigned integer type capable of holding integers .\"O in the range [0,1000000]. .I useconds_t -·¿¤Ï [0,1000000] ¤ÎÈϰϤÎÀ°¿ô¤òÊÝ»ý¤Ç¤­¤ëÉä¹æ¤Ê¤·À°¿ô·¿¤Ç¤¢¤ë¡£ +型は [0,1000000] の範囲の整数を保持できる符号なし整数型である。 .\"O On the original BSD implementation, and in glibc before version 2.1, .\"O the arguments to .\"O .BR ualarm () .\"O were instead typed as .\"O .IR "unsigned int" . -¤â¤È¤â¤È¤Î BSD ¤Ç¤Î¼ÂÁõ¤ä¡¢¥Ð¡¼¥¸¥ç¥ó 2.1 ¤è¤êÁ°¤Î glibc ¤Ç¤Ï¡¢ +もともとの BSD での実装や、バージョン 2.1 より前の glibc では、 .BR ualarm () -¤Î°ú¤­¿ô¤Î·¿¤Ï +の引き数の型は .I "unsigned int" -¤Ç¤¢¤Ã¤¿¡£ +であった。 .\"O Programs will be more portable if they never mention .\"O .I useconds_t .\"O explicitly. -¥×¥í¥°¥é¥àÃæ¤ËÌÀ¼¨Åª¤Ë +プログラム中に明示的に .I useconds_t -¤È½ñ¤«¤Ê¤¤Êý¤¬¡¢°Ü¿¢À­¤¬¹â¤¯¤Ê¤ë¡£ +と書かない方が、移植性が高くなる。 .\"Osato: -.\"Osato: mention ¤¬Ìõ¤·¤Å¤é¤¤¡£ +.\"Osato: mention が訳しづらい。 .\"Osato: .LP .\"O The interaction of this function with .\"O other timer functions such as -¤³¤Î´Ø¿ô¤È +この関数と .BR alarm (2), .BR sleep (3), .BR nanosleep (2), @@ -186,7 +186,7 @@ POSIX.1-2008 .BR timer_settime (2), .BR usleep (3) .\"O is unspecified. -¤Î¤è¤¦¤Ê¾¤Î¥¿¥¤¥Þ¡¼´Ø¿ô¤È¤ÎÁê¸ßºîÍѤϵ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +のような他のタイマー関数との相互作用は規定されていない。 .LP .\"O This function is obsolete. .\"O Use @@ -195,14 +195,14 @@ POSIX.1-2008 .\"O .RB ( timer_create (2), .\"O etc.) .\"O instead. -¤³¤Î´Ø¿ô¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¡£ -Âå¤ï¤ê¤Ë +この関数は廃止予定である。 +代わりに .BR setitimer (2) -¤â¤·¤¯¤Ï POSIX ¥¤¥ó¥¿¡¼¥Ð¥ë¥¿¥¤¥Þ +もしくは POSIX インターバルタイマ .RB ( timer_create (2) -¤Ê¤É) ¤ò»È¤¦¤³¤È¡£ +など) を使うこと。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR alarm (2), .BR getitimer (2), .BR nanosleep (2), diff --git a/draft/man3/ulimit.3 b/draft/man3/ulimit.3 index 01901078..7a7b26a7 100644 --- a/draft/man3/ulimit.3 +++ b/draft/man3/ulimit.3 @@ -31,15 +31,15 @@ .TH ULIMIT 3 2008-08-06 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O ulimit \- get and set user limits -.SH ̾Á° -ulimit \- ¥æ¡¼¥¶¡¼À©¸Â¤ò¼èÆÀ¡¦ÀßÄꤹ¤ë +.SH 名前 +ulimit \- ユーザー制限を取得・設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .BI "long ulimit(int " cmd ", long " newlimit ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Warning: This routine is obsolete. .\"O Use .\"O .BR getrlimit (2), @@ -47,83 +47,83 @@ ulimit \- .\"O and .\"O .BR sysconf (3) .\"O instead. -Ãí°Õ: ¤³¤Î¥ë¡¼¥Á¥ó¤Ï¸Å¤¤¡£ -Âå¤ï¤ê¤Ë +注意: このルーチンは古い。 +代わりに .BR getrlimit (2), .BR setrlimit (2), .BR sysconf (3) -¤Ê¤É¤òÍѤ¤¤ë¤³¤È¡£ +などを用いること。 .\"O For the shell command .\"O .BR ulimit (), .\"O see .\"O .BR bash (1). -¥·¥§¥ë¥³¥Þ¥ó¥É¤È¤·¤Æ¤Î +シェルコマンドとしての .BR ulimit () -¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +については、 .BR bash (1) -¤ò¸«¤ë¤³¤È¡£ +を見ること。 .\"O The .\"O .BR ulimit () .\"O call will get or set some limit for the calling process. .BR ulimit () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ë´Ø¤¹¤ëÀ©¸Â¤Î¤¤¤¯¤Ä¤«¤ò¼èÆÀ¡¦ÀßÄꤹ¤ë¡£ +は呼び出し元のプロセスに関する制限のいくつかを取得・設定する。 .\"O The .\"O .I cmd .\"O argument can have one of the following values. .I cmd -°ú¤­¿ô¤Ë¤Ï¡¢°Ê²¼¤ÎÃͤΤ¦¤Á¤Î¤É¤ì¤«°ì¤Ä¤òÍ¿¤¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +引き数には、以下の値のうちのどれか一つを与えることができる。 .TP .B UL_GETFSIZE .\"O Return the limit on the size of a file, in units of 512 bytes. -¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤Ë´Ø¤¹¤ëÀ©¸Â¤òÊÖ¤¹¡£Ã±°Ì¤Ï 512 ¥Ð¥¤¥È¡£ +ファイルサイズに関する制限を返す。単位は 512 バイト。 .TP .B UL_SETFSIZE .\"O Set the limit on the size of a file. -¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤Ë´Ø¤¹¤ëÀ©¸Â¤òÀßÄꤹ¤ë¡£ +ファイルサイズに関する制限を設定する。 .TP .B 3 .\"O (Not implemented for Linux.) .\"O Return the maximum possible address of the data segment. -(Linux ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤) -¥Ç¡¼¥¿¥»¥°¥á¥ó¥È¤Ç»ØÄê¤Ç¤­¤ë¥¢¥É¥ì¥¹¤ÎºÇÂçÃͤòÊÖ¤¹¡£ +(Linux では実装されていない) +データセグメントで指定できるアドレスの最大値を返す。 .TP .B 4 .\"O (Implemented but no symbolic constant provided.) .\"O Return the maximum number of files that the calling process can open. -(¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢Âбþ¤¹¤ë¥·¥ó¥Ü¥ê¥Ã¥¯¤ÊÄê¿ô¤Ï¸ºß¤·¤Ê¤¤) -¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¿ô¤ÎºÇÂçÃͤòÊÖ¤¹¡£ +(実装されているが、対応するシンボリックな定数は存在しない) +プロセスがオープンできるファイル数の最大値を返す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, .\"O .BR ulimit () .\"O returns a nonnegative value. .\"O On error, \-1 is returned, and .\"O .I errno .\"O is set appropriately. -À®¸ù¤¹¤ë¤È +成功すると .BR ulimit () -¤Ï 0 ¤Þ¤¿¤ÏÀµ¤ÎÃͤòÊÖ¤¹¡£ -¥¨¥é¡¼¤¬À¸¤¸¤ë¤È \-1 ¤òÊÖ¤·¡¢ +は 0 または正の値を返す。 +エラーが生じると \-1 を返し、 .I errno -¤òŬÀÚ¤ÊÃͤËÀßÄꤹ¤ë¡£ +を適切な値に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EPERM .\"O A unprivileged process tried to increase a limit. -ÈóÆø¢¥×¥í¥»¥¹¤¬À©¸ÂÃͤòÁý²Ã¤µ¤»¤è¤¦¤È¤·¤¿¡£ +非特権プロセスが制限値を増加させようとした。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001. .\"O POSIX.1-2008 marks .\"O .BR ulimit () .\"O as obsolete. -POSIX.1-2008 ¤Ï +POSIX.1-2008 は .BR ulimit () -¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£ +を廃止予定としている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bash (1), .BR getrlimit (2), .BR setrlimit (2), diff --git a/draft/man3/undocumented.3 b/draft/man3/undocumented.3 index f62313e8..973d164b 100644 --- a/draft/man3/undocumented.3 +++ b/draft/man3/undocumented.3 @@ -33,35 +33,35 @@ .\" .TH UNDOCUMENTED 3 2010-02-10 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O none \- undocumented library functions -none \- ¥É¥­¥å¥á¥ó¥È¤¬¤Ê¤¤¥é¥¤¥Ö¥é¥ê´Ø¿ô (library functions) +none \- ドキュメントがないライブラリ関数 (library functions) .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .\"O Undocumented library functions -¥É¥­¥å¥á¥ó¥È¤¬¤Ê¤¤¥é¥¤¥Ö¥é¥ê´Ø¿ô +ドキュメントがないライブラリ関数 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This man page mentions those library functions which are implemented in .\"O the standard libraries but not yet documented in man pages. -¤³¤Î man ¥Ú¡¼¥¸¤Ç¤Ï¡¢ -ɸ½à¥é¥¤¥Ö¥é¥ê¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -¤Þ¤À man ¥Ú¡¼¥¸¤¬Â¸ºß¤·¤Ê¤¤¥é¥¤¥Ö¥é¥ê´Ø¿ô¤ò¾Ò²ð¤¹¤ë¡£ +この man ページでは、 +標準ライブラリに実装されているが、 +まだ man ページが存在しないライブラリ関数を紹介する。 .\"O .SS Solicitation -.SS ´«Í¶ +.SS 勧誘 .\"O If you have information about these functions, .\"O please look in the source code, write a man page (using a style .\"O similar to that of the other Linux section 3 man pages), and send it to .\"O .B mtk.manpages@gmail.com .\"O for inclusion in the next man page release. -¤³¤ì¤é¤Î´Ø¿ô¤Ë¤Ä¤¤¤Æ¾ðÊ󤬤¢¤Ã¤¿¤é¡¢ -¥½¡¼¥¹¥³¡¼¥É¤ò¸«¤Æ man ¥Ú¡¼¥¸¤ò (¾¤Î Linux ¥»¥¯¥·¥ç¥ó 3 ¤Î -man ¥Ú¡¼¥¸¤Ë»÷¤¿¥¹¥¿¥¤¥ë¤Ç) ½ñ¤­¡¢¤½¤Î¥Ú¡¼¥¸¤ò +これらの関数について情報があったら、 +ソースコードを見て man ページを (他の Linux セクション 3 の +man ページに似たスタイルで) 書き、そのページを .B mtk.manpages@gmail.com -¤Þ¤ÇÁ÷¤Ã¤Æ¤Û¤·¤¤¡£ -¼¡¤Î man ¥Ú¡¼¥¸¤Î¥ê¥ê¡¼¥¹¤ÇºÎÍѤ·¤¿¤¤¡£ +まで送ってほしい。 +次の man ページのリリースで採用したい。 .\"O .SS "THE LIST" -.SS ¥ê¥¹¥È +.SS リスト .BR authdes_create (3), .BR authdes_getucred (3), diff --git a/draft/man3/ungetwc.3 b/draft/man3/ungetwc.3 index cbad134e..f18290a7 100644 --- a/draft/man3/ungetwc.3 +++ b/draft/man3/ungetwc.3 @@ -18,34 +18,34 @@ .\" .TH UNGETWC 3 1999-09-19 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O ungetwc \- push back a wide character onto a FILE stream -ungetwc \- ¥ï¥¤¥Éʸ»ú¤ò FILE ¥¹¥È¥ê¡¼¥à¤ØÌ᤹ +ungetwc \- ワイド文字を FILE ストリームへ戻す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "wint_t ungetwc(wint_t " wc ", FILE *" stream ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The \fBungetwc\fP() function is the wide-character equivalent of the .\"O .BR ungetc (3) .\"O function. .\"O It pushes back a wide character onto \fIstream\fP and returns it. .BR ungetwc () -´Ø¿ô¤Ï +関数は .BR ungetc (3) -´Ø¿ô¤Î¥ï¥¤¥Éʸ»úÈǤǤ¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¥ï¥¤¥Éʸ»ú¤ò \fIstream\fP ¤ØÌᤷ¤Æ¡¢¤½¤ì¤òÊÖ¤¹¡£ +関数のワイド文字版である。 +この関数はワイド文字を \fIstream\fP へ戻して、それを返す。 .PP .\"O If \fIwc\fP is \fBWEOF\fP, it returns \fBWEOF\fP. .\"O If \fIwc\fP is an invalid wide character, .\"O it sets \fIerrno\fP to \fBEILSEQ\fP and returns \fBWEOF\fP. -\fIwc\fP ¤¬ \fBWEOF\fP ¤Î¾ì¹ç¡¢ \fBWEOF\fP ¤òÊÖ¤¹¡£ -\fIwc\fP ¤¬ÉÔÀµ¤Ê¥ï¥¤¥Éʸ»ú¤Î¾ì¹ç¡¢ -\fIerrno\fP ¤Ë \fBEILSEQ\fP ¤òÀßÄꤷ¤Æ \fBWEOF\fP ¤òÊÖ¤¹¡£ +\fIwc\fP が \fBWEOF\fP の場合、 \fBWEOF\fP を返す。 +\fIwc\fP が不正なワイド文字の場合、 +\fIerrno\fP に \fBEILSEQ\fP を設定して \fBWEOF\fP を返す。 .PP .\"O If \fIwc\fP is a valid wide character, it is pushed back onto the stream .\"O and thus becomes available for future wide character read operations. @@ -53,36 +53,36 @@ ungetwc \- .\"O The end-of-file .\"O indicator is cleared. .\"O The backing storage of the file is not affected. -\fIwc\fP ¤¬Í­¸ú¤Ê¥ï¥¤¥Éʸ»ú¤Î¾ì¹ç¡¢¤½¤ì¤ò¥¹¥È¥ê¡¼¥à¤Ø¤ÈÌᤷ¤Æ¸å¤Î -¥ï¥¤¥Éʸ»úÆɤ߹þ¤ßÁàºî¤Ç¼èÆÀ¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£¥Õ¥¡¥¤¥ë°ÌÃÖ(file-position) -»Ø¼¨»Ò¤Ï1°Ê¾åÌᤵ¤ì¤ë¡£¥Õ¥¡¥¤¥ë½ªÃ¼(end-of-file)»Ø¼¨»Ò¤Ï¥¯¥ê¥¢¤µ¤ì¤ë¡£ -¤½¤Î¥Õ¥¡¥¤¥ë¤ÎÇظå¤Ë¤¢¤ëµ­²±ÇÞÂΤϱƶÁ¤ò¼õ¤±¤Ê¤¤¡£ +\fIwc\fP が有効なワイド文字の場合、それをストリームへと戻して後の +ワイド文字読み込み操作で取得できるようにする。ファイル位置(file-position) +指示子は1以上戻される。ファイル終端(end-of-file)指示子はクリアされる。 +そのファイルの背後にある記憶媒体は影響を受けない。 .PP .\"O Note: \fIwc\fP need not be the last wide-character read from the stream; .\"O it can be any other valid wide character. -Ãí°Õ: \fIwc\fP ¤Ï¥¹¥È¥ê¡¼¥à¤«¤éÆɤ߹þ¤ó¤ÀºÇ¸å¤Î¥ï¥¤¥Éʸ»ú¤Ç¤¢¤ëɬÍפϤʤ¤¡£ -Í­¸ú¤Ê¥ï¥¤¥Éʸ»ú¤Ê¤é¤Ð²¿¤Ç¤âÎɤ¤¡£ +注意: \fIwc\fP はストリームから読み込んだ最後のワイド文字である必要はない。 +有効なワイド文字ならば何でも良い。 .PP .\"O If the implementation supports multiple push-back operations in a row, the .\"O pushed-back wide characters will be read in reverse order; however, only one .\"O level of push-back is guaranteed. -³¤±¤ÆÊ£¿ô¤Î¥ï¥¤¥Éʸ»ú¤òÌ᤹¤³¤È¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¼ÂÁõ¤Î¾ì¹ç¤Ï¡¢ -Ìᤷ¤¿¥ï¥¤¥Éʸ»ú¤Ï¡¢Ìᤷ¤¿¤Î¤È¤ÏµÕ¤Î½çÈÖ¤ÇÆɤ߹þ¤Þ¤ì¤ë¡£ -¤·¤«¤·¤³¤Î¾ì¹ç¤Ç¤â°ìÃʳ¬¤ÎÌᤷ¤·¤«Êݾڤµ¤ì¤Æ¤¤¤Ê¤¤¡£ +続けて複数のワイド文字を戻すことをサポートしている実装の場合は、 +戻したワイド文字は、戻したのとは逆の順番で読み込まれる。 +しかしこの場合でも一段階の戻ししか保証されていない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR ungetwc () .\"O function returns \fIwc\fP when successful, or \fBWEOF\fP upon .\"O failure. .BR ungetwc () -´Ø¿ô¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï \fIwc\fP ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï \fBWEOF\fP ¤òÊÖ¤¹¡£ +関数は成功した場合には \fIwc\fP を返す。 +失敗した場合には \fBWEOF\fP を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR ungetwc () .\"O depends on the @@ -90,9 +90,9 @@ C99. .\"O category of the .\"O current locale. .BR ungetwc () -´Ø¿ô¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +関数の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ +カテゴリに依存している。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fgetwc (3) diff --git a/draft/man3/unlocked_stdio.3 b/draft/man3/unlocked_stdio.3 index 255c6bca..2e145b49 100644 --- a/draft/man3/unlocked_stdio.3 +++ b/draft/man3/unlocked_stdio.3 @@ -29,11 +29,11 @@ .\"O .SH NAME .\"O getc_unlocked, getchar_unlocked, putc_unlocked, .\"O putchar_unlocked \- nonlocking stdio functions -.SH ̾Á° +.SH 名前 getc_unlocked, getchar_unlocked, putc_unlocked, -putchar_unlocked \- ¥í¥Ã¥¯¤ò¹Ô¤ï¤º¤Ëɸ½àÆþ½ÐÎϤò¹Ô¤¦´Ø¿ô·² +putchar_unlocked \- ロックを行わずに標準入出力を行う関数群 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -72,9 +72,9 @@ putchar_unlocked \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .ad l .in .sp @@ -114,21 +114,21 @@ _GNU_SOURCE .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Each of these functions has the same behavior as its counterpart .\"O without the "_unlocked" suffix, except that they do not use locking .\"O (they do not set locks themselves, and do not test for the presence .\"O of locks set by others) and hence are thread-unsafe. .\"O See .\"O .BR flockfile (3). -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ËöÈø¤Ë "_unlocked" ¤¬¤Ä¤¤¤Æ¤¤¤Ê¤¤´Ø¿ô¤ÈƱ¤¸Æ°ºî¤ò¤¹¤ë¤¬¡¢ -¥Õ¥¡¥¤¥ë¤Î¥í¥Ã¥¯¤ò»ÈÍѤ·¤Ê¤¤ÅÀ¤¬°Û¤Ê¤ë¡£(¤³¤ì¤é¤Î´Ø¿ô¼«¿È¤Ï¥Õ¥¡¥¤¥ë¤Î¥í¥Ã¥¯ -¤ò¥»¥Ã¥È¤»¤º¡¢Â¾¤Î´Ø¿ô¤Ë¤è¤Ã¤Æ¥í¥Ã¥¯¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Î¥Á¥§¥Ã¥¯¤â -¹Ô¤ï¤Ê¤¤) ¤½¤ì¤æ¤¨¡¢¥¹¥ì¥Ã¥É(thread)¤Ç°ÂÁ´¤Ë»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +これらの関数は、末尾に "_unlocked" がついていない関数と同じ動作をするが、 +ファイルのロックを使用しない点が異なる。(これらの関数自身はファイルのロック +をセットせず、他の関数によってロックがセットされているかどうかのチェックも +行わない) それゆえ、スレッド(thread)で安全に使用することができない。 .BR flockfile (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The four functions \fIgetc_unlocked\fP(), .\"O .BR getchar_unlocked (), .\"O .BR putc_unlocked (), @@ -138,16 +138,16 @@ _GNU_SOURCE .BR getchar_unlocked (), .BR putc_unlocked (), .BR putchar_unlocked () -¤Î 4 ¤Ä¤Î´Ø¿ô¤Ï -POSIX.1-2001 ¤Ëµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +の 4 つの関数は +POSIX.1-2001 に規定されている。 .\"O The nonstandard .\"O .BR *_unlocked () .\"O variants occur on a few UNIX systems, and are available in recent glibc. -Èóɸ½à¤Î +非標準の .BR *_unlocked () -¤ÎÃç´Ö¤Ï 2¡¢3 ¤Î UNIX ¥·¥¹¥Æ¥à¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ -ºÇ¶á¤Î glibc ¤Ç¤Ï»ÈÍѲÄǽ¤Ç¤¢¤ë¤¬¡¢ +の仲間は 2、3 の UNIX システムで定義されており、 +最近の glibc では使用可能であるが、 .\" E.g., in HP-UX 10.0. In HP-UX 10.30 they are called obsolescent, and .\" moved to a compatibility library. .\" Available in HP-UX 10.0: clearerr_unlocked, fclose_unlocked, @@ -160,8 +160,8 @@ POSIX.1-2001 .\" putwc_unlocked, putwchar_unlocked, rewind_unlocked, setvbuf_unlocked, .\" ungetc_unlocked, ungetwc_unlocked. .\"O They should probably not be used. -¤³¤ì¤é¤Î´Ø¿ô¤Ï»È¤ï¤Ê¤¤Êý¤¬¤è¤¤¤À¤í¤¦¡£ +これらの関数は使わない方がよいだろう。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR flockfile (3), .BR stdio (3) diff --git a/draft/man3/unlockpt.3 b/draft/man3/unlockpt.3 index 1ed23129..978f8e1d 100644 --- a/draft/man3/unlockpt.3 +++ b/draft/man3/unlockpt.3 @@ -9,78 +9,78 @@ .TH UNLOCKPT 3 2008-06-14 "" "Linux Programmer's Manual" .\"O .SH NAME .\"O unlockpt \- unlock a pseudoterminal master/slave pair -.SH ̾Á° -unlockpt \- µ¼»÷üËö¥Þ¥¹¥¿/¥¹¥ì¡¼¥Ö¤Î¥Ú¥¢¤Î¥í¥Ã¥¯¤ò²ò½ü¤¹¤ë +.SH 名前 +unlockpt \- 擬似端末マスタ/スレーブのペアのロックを解除する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _XOPEN_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "int unlockpt(int " fd ");" .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR unlockpt () .\"O function unlocks the slave pseudoterminal device .\"O corresponding to the master pseudoterminal referred to by .\"O .IR fd . .BR unlockpt () -´Ø¿ô¤Ï +関数は .I fd -¤Ç»²¾È¤µ¤ì¤ë¥Þ¥¹¥¿µ¼»÷üËö¤ËÂбþ¤¹¤ë¥¹¥ì¡¼¥Öµ¼»÷üËö¤Î¥í¥Ã¥¯¤ò -²ò½ü¤¹¤ë¡£ +で参照されるマスタ擬似端末に対応するスレーブ擬似端末のロックを +解除する。 .PP .\"O .BR unlockpt () .\"O should be called before opening the slave side of a pseudoterminal. -µ¼»÷üËö¤Î¥¹¥ì¡¼¥Ö¦¤ò¥ª¡¼¥×¥ó¤¹¤ëÁ°¤Ë¡¢ +擬似端末のスレーブ側をオープンする前に、 .BR unlockpt () -¤ò¸Æ¤Ó½Ð¤¹É¬Íפ¬¤¢¤ë¡£ +を呼び出す必要がある。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O When successful, .\"O .BR unlockpt () .\"O returns 0. .\"O Otherwise, it returns \-1 and sets .\"O .I errno .\"O appropriately. -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR grantpt () -¤Ï 0 ¤òÊÖ¤¹¡£¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。そうでない場合、\-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +に適切な値がセットされる。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EBADF .\"O The .\"O .I fd .\"O argument is not a file descriptor open for writing. -°ú¤­¿ô +引き数 .I fd -¤¬½ñ¤­¹þ¤ßÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が書き込み用にオープンされたファイル・ディスクリプタでない。 .TP .B EINVAL .\"O The .\"O .I fd .\"O argument is not associated with a master pseudoterminal. -°ú¤­¿ô +引き数 .I fd -¤¬¥Þ¥¹¥¿µ¼»÷üËö¤ËÂбþ¤¹¤ë¤â¤Î¤Ç¤Ï¤Ê¤¤¡£ +がマスタ擬似端末に対応するものではない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR unlockpt () .\"O is provided in glibc since version 2.1. .BR unlockpt () -¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +は、バージョン 2.1 以降の glibc で提供されている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR grantpt (3), .BR posix_openpt (3), .BR ptsname (3), diff --git a/draft/man3/updwtmp.3 b/draft/man3/updwtmp.3 index 7cfc5bbe..635a7cfd 100644 --- a/draft/man3/updwtmp.3 +++ b/draft/man3/updwtmp.3 @@ -1,6 +1,6 @@ -.\" WORD: current process ID ¸½¥×¥í¥»¥¹ID -.\" WORD: AVAILABILITY ÍøÍѲÄǽ¤Ê´Ä¶­ -.\" Copyright 1997 NicoláÔ Lichtmaier +.\" WORD: current process ID 現プロセスID +.\" WORD: AVAILABILITY 利用可能な環境 +.\" Copyright 1997 Nicol疽 Lichtmaier .\" Created Wed Jul 2 23:27:34 ART 1997 .\" .\" This is free documentation; you can redistribute it and/or @@ -30,9 +30,9 @@ .\" Updated 2008-07-30 by Kentaro Shirakata .\" .TH UPDWTMP 3 2008-07-02 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -updwtmp, logwtmp \- wtmp ¥Õ¥¡¥¤¥ë¤Ë¥¨¥ó¥È¥ê¤òÄɲ乤ë -.SH ½ñ¼° +.SH 名前 +updwtmp, logwtmp \- wtmp ファイルにエントリを追加する +.SH 書式 .nf .B #include .sp @@ -41,15 +41,15 @@ updwtmp, logwtmp \- wtmp .BI "void logwtmp(const char *" line ", const char *" name \ ", const char *" host ); .fi -.SH ÀâÌÀ +.SH 説明 .\"O .BR updwtmp () .\"O appends the utmp structure .\"O .I ut .\"O to the wtmp file. .BR updwtmp () -¤Ï¡¢utmp ¹½Â¤ÂÎ +は、utmp 構造体 .I ut -¤ò wtmp ¥Õ¥¡¥¤¥ë¤ËÄɲ乤롣 +を wtmp ファイルに追加する。 .PP .\"O .BR logwtmp () .\"O constructs a utmp structure using @@ -59,25 +59,25 @@ updwtmp, logwtmp \- wtmp .\"O .BR updwtmp () .\"O to append the structure to the wtmp file. .BR logwtmp () -¤Ï¡¢ +は、 .IR line ", " name ", " host , -¸½ºß»þ¹ï¡¢¸½¥×¥í¥»¥¹ID ¤«¤é utmp ¹½Â¤ÂΤòºî¤ê¡¢ +現在時刻、現プロセスID から utmp 構造体を作り、 .BR updwtmp () -¤ò¸Æ¤Ó½Ð¤·¤Æ¤½¤Î¹½Â¤ÂΤò wtmp ¥Õ¥¡¥¤¥ë¤ËÄɲ乤롣 -.SH ¥Õ¥¡¥¤¥ë +を呼び出してその構造体を wtmp ファイルに追加する。 +.SH ファイル .TP .I /var/log/wtmp -¥æ¡¼¥¶¥í¥°¥¤¥ó¤ÎÍúÎò¥Ç¡¼¥¿¥Ù¡¼¥¹ +ユーザログインの履歴データベース .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O Not in POSIX.1-2001. .\"O Present on Solaris, NetBSD, and perhaps other systems. -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -Solaris, NetBSD ¤Ë¸ºß¤·¡¢¤ª¤½¤é¤¯Â¾¤Î¥·¥¹¥Æ¥à¤Ë¤â¤¢¤ë¤À¤í¤¦¡£ +POSIX.1-2001 にはない。 +Solaris, NetBSD に存在し、おそらく他のシステムにもあるだろう。 .\"O .SH AVAILABILITY -.SH ÍøÍѲÄǽ¤Ê´Ä¶­ +.SH 利用可能な環境 .\"O Both functions are available under glibc2, but not under libc5. -glibc2 ¤Î²¼¤Ç¤Ï¤É¤Á¤é¤Î´Ø¿ô¤âÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +glibc2 の下ではどちらの関数も利用可能である。 .\"O However, .\"O .BR logwtmp () .\"O used to occur in the old libbsd. @@ -86,23 +86,23 @@ glibc2 .\"O function is included in libutil. .\"O (Hence you'll need to add \fI\-lutil\fP .\"O to your compiler commandline to get it.) -libc5 ¤Î²¼¤Ç¤Ï¤É¤Á¤é¤â»È¤¨¤Ê¤¤¤¬¡¢ +libc5 の下ではどちらも使えないが、 .BR logwtmp () -¤Ï¸Å¤¤ libbsd ¤Ë¤¢¤Ã¤¿¡£ -ºÇ¶á¤Ç¤Ï¡¢ +は古い libbsd にあった。 +最近では、 .BR logwtmp () -´Ø¿ô¤Ï libutil ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë -(¤·¤¿¤¬¤Ã¤Æ¡¢¤³¤Î´Ø¿ô¤ò»È¤¦¤¿¤á¤Ë¤Ï¥³¥ó¥Ñ¥¤¥é¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ë -\fI\-lutil\fP ¤òÄɲ乤ëɬÍפ¬¤¢¤ë)¡£ +関数は libutil に含まれている +(したがって、この関数を使うためにはコンパイラのコマンドラインに +\fI\-lutil\fP を追加する必要がある)。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O For consistency with the other "utmpx" functions (see .\"O .BR getutxent (3)), .\"O glibc provides (since version 2.1): -¾¤Î "utmpx" ´Ø¿ô·² +他の "utmpx" 関数群 .RB ( getutxent (3) -»²¾È) ¤È¤Î°ì´ÓÀ­¤Î¤¿¤á¤Ë¡¢glibc (¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß) ¤Ï°Ê²¼¤Î´Ø¿ô¤ò -Ä󶡤·¤Æ¤¤¤ë: +参照) との一貫性のために、glibc (バージョン 2.1 以降) は以下の関数を +提供している: .nf .sp .B #include @@ -115,11 +115,11 @@ libc5 .\"O but differs in that it takes a .\"O .I utmpx .\"O structure as its last argument. -¤³¤Î´Ø¿ô¤Ï +この関数は .BR updwtmp () -¤ÈƱ¤¸ºî¶È¤ò¹Ô¤¦¤¬¡¢ºÇ¸å¤Î°ú¤­¿ô¤È¤·¤Æ +と同じ作業を行うが、最後の引き数として .I utmpx -¹½Â¤ÂΤò¼è¤ë¤È¤³¤í¤¬°Û¤Ê¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +構造体を取るところが異なる。 +.SH 関連項目 .BR getutxent (3), .BR wtmp (5) diff --git a/draft/man3/usleep.3 b/draft/man3/usleep.3 index a5ba68f0..e1522d1d 100644 --- a/draft/man3/usleep.3 +++ b/draft/man3/usleep.3 @@ -38,11 +38,11 @@ .\" .TH USLEEP 3 2010-12-03 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O usleep \- suspend execution for interval of microseconds -usleep \- ¥Þ¥¤¥¯¥íÉÃñ°Ì¤Ç¼Â¹Ô¤ò±ä´ü¤¹¤ë +usleep \- マイクロ秒単位で実行を延期する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B "#include " .sp @@ -52,9 +52,9 @@ usleep \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR usleep (): @@ -63,7 +63,7 @@ glibc .PD 0 .TP 4 .\"O Since glibc 2.12: -glibc 2.12 °Ê¹ß: +glibc 2.12 以降: .nf _BSD_SOURCE || (_XOPEN_SOURCE\ >=\ 500 || @@ -72,14 +72,14 @@ _BSD_SOURCE || .TP 4 .fi .\"O Before glibc 2.12: -glibc 2.12 ¤è¤êÁ°: +glibc 2.12 より前: _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .PD .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR usleep () .\"O function suspends execution of the calling thread for @@ -88,45 +88,45 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .\"O by any system activity or by the time spent processing the call or by the .\"O granularity of system timers. .BR usleep () -´Ø¿ô¤Ï -(¾¯¤Ê¤¯¤È¤â) \fIusec\fP¥Þ¥¤¥¯¥íÉäδ֡¢ -¸Æ¤Ó½Ð¤·¸µ¥¹¥ì¥Ã¥É¤Î¼Â¹Ô¤ò±ä´ü¤¹¤ë¡£ -¥·¥¹¥Æ¥à¤ÎÆ°ºî¾õ¶·¤ä¸Æ¤Ó½Ð¤·¤Ë¤è¤ë»þ´Ö¤Î¾ÃÈñ¤ä¥·¥¹¥Æ¥à¥¿¥¤¥Þ¤ÎγÅ٤ˤè¤Ã¤Æ¡¢ -Ää»ß»þ´Ö¤ÏÀßÄꤷ¤¿Ãͤè¤ê¤â¾¯¤·±ä¤Ð¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +関数は +(少なくとも) \fIusec\fPマイクロ秒の間、 +呼び出し元スレッドの実行を延期する。 +システムの動作状況や呼び出しによる時間の消費やシステムタイマの粒度によって、 +停止時間は設定した値よりも少し延ばされるかもしれない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O 0 on success, \-1 on error. -À®¸ù¤¹¤ë¤È 0¡¢¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤¹¡£ +成功すると 0、エラーの場合 \-1 を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINTR .\"O Interrupted by a signal; see .\"O .BR signal (7). -¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤ÆÃæÃǤµ¤ì¤¿¡£ +シグナルによって中断された。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .\"O \fIusec\fP is not smaller than 1000000. .\"O (On systems where that is considered an error.) -\fIusec\fP ¤¬ 1000000 °Ê¾å¤À¤Ã¤¿¡£ -(¤³¤ì¤ò¥¨¥é¡¼¤È¤ß¤Ê¤¹¥·¥¹¥Æ¥à¤Î¤ß) +\fIusec\fP が 1000000 以上だった。 +(これをエラーとみなすシステムのみ) .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.3BSD, POSIX.1-2001. .\"O POSIX.1-2001 declares this function obsolete; use .\"O .BR nanosleep (2) .\"O instead. -POSIX.1-2001 ¤Ç¤Ï¡¢¤³¤Î´Ø¿ô¤Ï²áµî¤Î¤â¤Î¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤ë¡£ -Âå¤ï¤ê¤Ë +POSIX.1-2001 では、この関数は過去のものと宣言されている。 +代わりに .BR nanosleep (2) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .\"O POSIX.1-2008 removes the specification of .\"O .BR usleep (). -POSIX.1-2008 ¤Ç¤Ï¡¢ +POSIX.1-2008 では、 .BR usleep () -¤Îµ¬Ä꤬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ +の規定が削除されている。 .\"O On the original BSD implementation, .\"O and in glibc before version 2.2.2, the return type of this function is @@ -134,23 +134,23 @@ POSIX.1-2008 .\"O The POSIX version returns .\"O .IR int , .\"O and this is also the prototype used since glibc 2.2.2. -¤â¤È¤â¤È¤Î BSD ¤Î¼ÂÁõ¤ä¡¢¥Ð¡¼¥¸¥ç¥ó 2.2.2 ¤è¤êÁ°¤Î glibc ¤Ç¤Ï¡¢ -¤³¤Î´Ø¿ô¤ÎÊÖ¤êÃͤη¿¤Ï +もともとの BSD の実装や、バージョン 2.2.2 より前の glibc では、 +この関数の返り値の型は .I void -¤Ç¤¢¤ë¡£ -POSIX ÈÇ¤Ï +である。 +POSIX 版は .I int -¤òÊÖ¤·¡¢¤³¤Î¥×¥í¥È¥¿¥¤¥×¤Ï glibc 2.2.2 °Ê¹ß¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ +を返し、このプロトタイプは glibc 2.2.2 以降で使用されている。 .\"O Only the .\"O .B EINVAL .\"O error return is documented by SUSv2 and POSIX.1-2001. -¥¨¥é¡¼¤È¤·¤Æ +エラーとして .B EINVAL -¤òÊÖ¤¹¤È¤¤¤¦¤Î¤Ï -SUSv2 ¤È POSIX.1-2001 ¤Ç¤Î¤ßʸ½ñ²½¤µ¤ì¤Æ¤¤¤ë¡£ +を返すというのは +SUSv2 と POSIX.1-2001 でのみ文書化されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The type .\"O .I useconds_t .\"O is an unsigned integer type capable of holding integers @@ -159,10 +159,10 @@ SUSv2 .\"O if they never mention this type explicitly. .\"O Use .I useconds_t -·¿¤Ï [0,1000000] ¤ÎÈϰϤÎÀ°¿ô¤ò°·¤¦¤³¤È¤¬¤Ç¤­¤ë -Éä¹æ¤Ê¤·À°¿ô·¿¤Ç¤¢¤ë¡£ -ÌÀ¼¨Åª¤Ë¤³¤Î·¿¤ò»È¤ï¤Ê¤¤¤³¤È¤Ç¥×¥í¥°¥é¥à¤Î°Ü¿¢À­¤¬¤è¤ê¹â¤Þ¤ë¡£ -°Ê²¼¤Î¤è¤¦¤Ë»È¤¦¤³¤È¡£ +型は [0,1000000] の範囲の整数を扱うことができる +符号なし整数型である。 +明示的にこの型を使わないことでプログラムの移植性がより高まる。 +以下のように使うこと。 .in +4n .nf .sp @@ -188,9 +188,9 @@ SUSv2 .\"O .BR timer_settime (2), .\"O .BR ualarm (3) .\"O is unspecified. -¤³¤Î´Ø¿ô¤È¡¢ +この関数と、 .B SIGALRM -¥·¥°¥Ê¥ë¤¢¤ë¤¤¤Ï +シグナルあるいは .BR alarm (2), .BR sleep (3), .BR nanosleep (2), @@ -201,9 +201,9 @@ SUSv2 .BR timer_gettime (2), .BR timer_settime (2), .BR ualarm (3) -¤È¤¤¤Ã¤¿¤½¤Î¾¤Î¥¿¥¤¥Þ¡¼´Ø¿ô¤òƱ»þ¤Ë»È¤Ã¤¿¾ì¹ç¤ÎÆ°ºî¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +といったその他のタイマー関数を同時に使った場合の動作は未定義である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR alarm (2), .BR getitimer (2), .BR nanosleep (2), diff --git a/draft/man3/wcpcpy.3 b/draft/man3/wcpcpy.3 index b23694f0..dd1f334a 100644 --- a/draft/man3/wcpcpy.3 +++ b/draft/man3/wcpcpy.3 @@ -16,11 +16,11 @@ .\" .TH WCPCPY 3 2011-10-01 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcpcpy \- copy a wide-character string, returning a pointer to its end -wcpcpy \- ¥ï¥¤¥Éʸ»úʸ»úÎó¤ò¥³¥Ô¡¼¤·¡¢¤½¤ÎËöÈø¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤òÊÖ¤¹ +wcpcpy \- ワイド文字文字列をコピーし、その末尾を指すポインタを返す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -30,9 +30,9 @@ wcpcpy \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR wcpcpy (): @@ -41,17 +41,17 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wcpcpy () .\"O function is the wide-character equivalent of the @@ -62,32 +62,32 @@ _GNU_SOURCE .\"O to the array pointed to by .\"O \fIdest\fP. .BR wcpcpy () -´Ø¿ô¤Ï¡¢ +関数は、 .BR stpcpy (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï \fIsrc\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤ò¡¢ -½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤ò´Þ¤á¤Æ¡¢ -\fIdest\fP ¤¬»Ø¤¹ÇÛÎó¤Ë¥³¥Ô¡¼¤¹¤ë¡£ +関数に対応するワイド文字関数である。 +この関数は \fIsrc\fP が指すワイド文字文字列を、 +終端の NULL ワイド文字 (L\(aq\\0\(aq) を含めて、 +\fIdest\fP が指す配列にコピーする。 .PP .\"O The strings may not overlap. -¤³¤ì¤é¤Îʸ»úÎó¤Ï½Å¤Ê¤Ã¤Æ¤¤¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +これらの文字列は重なっていてはならない。 .PP .\"O The programmer must ensure that there .\"O is room for at least \fIwcslen(src)+1\fP .\"O wide characters at \fIdest\fP. -¥×¥í¥°¥é¥Þ¤Ï¡¢\fIdest\fP ¤¬»Ø¤¹Îΰè¤Ë¾¯¤Ê¤¯¤È¤â¥ï¥¤¥Éʸ»ú -\fIwcslen(src)+1\fP ¸Äʬ¤ÎÎΰè¤ò³ÎÊݤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +プログラマは、\fIdest\fP が指す領域に少なくともワイド文字 +\fIwcslen(src)+1\fP 個分の領域を確保しなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR wcpcpy () .\"O returns a pointer to the end of the wide-character string .\"O \fIdest\fP, that is, a pointer to the terminating null wide character. .BR wcpcpy () -¤Ï¡¢¥ï¥¤¥Éʸ»úʸ»úÎó \fIdest\fP ¤ÎËöÈø¡¢¤Ä¤Þ¤ê½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú -¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +は、ワイド文字文字列 \fIdest\fP の末尾、つまり終端の NULL ワイド文字 +を指すポインタを返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strcpy (3), .BR wcscpy (3) diff --git a/draft/man3/wcpncpy.3 b/draft/man3/wcpncpy.3 index 6717df60..097864c4 100644 --- a/draft/man3/wcpncpy.3 +++ b/draft/man3/wcpncpy.3 @@ -16,12 +16,12 @@ .\" .TH WCPNCPY 3 2011-10-01 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcpncpy \- copy a fixed-size string of wide characters, .\"O returning a pointer to its end -wcpncpy \- ¸ÇÄêĹ¤Î¥ï¥¤¥Éʸ»úʸ»úÎó¤ò¥³¥Ô¡¼¤·¡¢¤½¤ÎËöÈø¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤òÊÖ¤¹ +wcpncpy \- 固定長のワイド文字文字列をコピーし、その末尾を指すポインタを返す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -31,9 +31,9 @@ wcpncpy \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR wcpncpy (): @@ -42,17 +42,17 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wcpncpy () .\"O function is the wide-character equivalent @@ -60,16 +60,16 @@ _GNU_SOURCE .\"O .BR stpncpy (3) .\"O function. .BR wcpncpy () -´Ø¿ô¤Ï¡¢ +関数は、 .BR stpncpy (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ +関数に対応するワイド文字関数である。 .\"O It copies at most \fIn\fP wide characters from the wide-character .\"O string pointed to by \fIsrc\fP, .\"O including the terminating null wide (L\(aq\\0\(aq), .\"O to the array pointed to by \fIdest\fP. -¤³¤Î´Ø¿ô¤Ï¡¢\fIsrc\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎ󤫤é \fIdest\fP ¤¬»Ø¤¹ -¥ï¥¤¥Éʸ»úʸ»úÎó¤Ë¡¢½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤ò´Þ¤á¤Æ -ºÇÂç \fIn\fP ʸ»ú¤ò¥³¥Ô¡¼¤¹¤ë¡£ +この関数は、\fIsrc\fP が指すワイド文字文字列から \fIdest\fP が指す +ワイド文字文字列に、終端の NULL ワイド文字 (L\(aq\\0\(aq) を含めて +最大 \fIn\fP 文字をコピーする。 .\"O Exactly \fIn\fP wide characters are .\"O written at \fIdest\fP. .\"O If the length \fIwcslen(src)\fP is smaller than \fIn\fP, @@ -78,31 +78,31 @@ _GNU_SOURCE .\"O If the length \fIwcslen(src)\fP is greater or equal .\"O to \fIn\fP, the string pointed to by \fIdest\fP will .\"O not be L\(aq\\0\(aq terminated. -¤Á¤ç¤¦¤É \fIn\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤¬ \fIdest\fP ¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¡£ -¤Ä¤Þ¤ê¡¢\fIwcslen(src)\fP ¤ÎŤµ¤¬ \fIn\fP ¤è¤ê¾®¤µ¤±¤ì¤Ð¡¢ -\fIdest\fP ¤¬»Ø¤¹ÇÛÎóÃæ¤Î»Ä¤ê¤Î¥ï¥¤¥Éʸ»ú¤Ï L\(aq\\0\(aq ʸ»ú¤ÇËä¤á¤é¤ì¤ë¡£ -\fIwcslen(src)\fP ¤ÎŤµ¤¬ \fIn\fP °Ê¾å¤Ê¤é¤Ð¡¢\fIdest\fP ¤¬»Ø¤¹ -ʸ»úÎó¤Ï L\(aq\\0\(aq ¤Ç½ªÃ¼¤µ¤ì¤Ê¤¤¡£ +ちょうど \fIn\fP 個のワイド文字が \fIdest\fP にコピーされる。 +つまり、\fIwcslen(src)\fP の長さが \fIn\fP より小さければ、 +\fIdest\fP が指す配列中の残りのワイド文字は L\(aq\\0\(aq 文字で埋められる。 +\fIwcslen(src)\fP の長さが \fIn\fP 以上ならば、\fIdest\fP が指す +文字列は L\(aq\\0\(aq で終端されない。 .PP .\"O The strings may not overlap. -2 ¤Ä¤Îʸ»úÎó¤Ï½Å¤Ê¤Ã¤Æ¤¤¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +2 つの文字列は重なっていてはならない。 .PP .\"O The programmer must ensure that there is room for at least \fIn\fP wide .\"O characters at \fIdest\fP. -¥×¥í¥°¥é¥Þ¤Ï¡¢¾¯¤Ê¤¯¤È¤â \fIn\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤ò³ÊǼ¤Ç¤­¤ëÎΰè¤ò -\fIdest\fP ¤Ë³ÎÊݤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +プログラマは、少なくとも \fIn\fP 個のワイド文字を格納できる領域を +\fIdest\fP に確保しなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR wcpncpy () .\"O returns a pointer to the last wide character written, that is, .\"O \fIdest + n \- 1\fP. .BR wcpncpy () -¤Ï¡¢ºÇ¸å¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¥ï¥¤¥Éʸ»ú¤Ø¤Î¥Ý¥¤¥ó¥¿¡¢ -¤¹¤Ê¤ï¤Á \fIdest + n \- 1\fP ¤òÊÖ¤¹¡£ +は、最後に書き込まれたワイド文字へのポインタ、 +すなわち \fIdest + n \- 1\fP を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR stpncpy (3), .BR wcsncpy (3) diff --git a/draft/man3/wcrtomb.3 b/draft/man3/wcrtomb.3 index 0b48cf9b..5e22cfca 100644 --- a/draft/man3/wcrtomb.3 +++ b/draft/man3/wcrtomb.3 @@ -17,22 +17,22 @@ .\" .TH WCRTOMB 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcrtomb \- convert a wide character to a multibyte sequence -wcrtomb \- ¥ï¥¤¥Éʸ»ú 1 ¤Ä¤ò¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ËÊÑ´¹¤¹¤ë +wcrtomb \- ワイド文字 1 つをマルチバイト列に変換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "size_t wcrtomb(char *" s ", wchar_t " wc ", mbstate_t *" ps ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The main case for this function is when \fIs\fP is .\"O not NULL and \fIwc\fP is not a null wide character (L\(aq\\0\(aq). -¤³¤Î´Ø¿ô¤¬¼ç¤Ë»È¤ï¤ì¤ë¤Î¤Ï¡¢\fIs\fP ¤¬ NULL ¤Ç¤Ê¤¯¡¢ -\fIwc\fP ¤¬ NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤Ç¤Ê¤¤¾ì¹ç¤Ç¤¢¤ë¡£ +この関数が主に使われるのは、\fIs\fP が NULL でなく、 +\fIwc\fP が NULL ワイド文字 (L\(aq\\0\(aq) でない場合である。 .\"O In this case, the .\"O .BR wcrtomb () .\"O function @@ -44,12 +44,12 @@ wcrtomb \- .\"O returns the length of said multibyte representation, .\"O that is, the number of bytes .\"O written at \fIs\fP. -¤³¤Î¾ì¹ç¤Ë¤Ï¡¢ +この場合には、 .BR wcrtomb () -´Ø¿ô¤Ï¥ï¥¤¥Éʸ»ú \fIwc\fP ¤ò¥Þ¥ë¥Á¥Ð¥¤¥Èɽ -¸½¤ËÊÑ´¹¤·¡¢\fIs\fP ¤¬»Ø¤¹ char ·¿¤ÎÇÛÎó¤Ë¤³¤ì¤ò³ÊǼ¤¹¤ë¡£¤³¤Î´Ø¿ô¤Ï -¥·¥Õ¥È¾õÂÖ \fI*ps\fP ¤ò¹¹¿·¤·¡¢½ÐÎϤµ¤ì¤¿¥Þ¥ë¥Á¥Ð¥¤¥Èɽ¸½¤ÎŤµ¡¢¤¹¤Ê -¤ï¤Á \fIs\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ +関数はワイド文字 \fIwc\fP をマルチバイト表 +現に変換し、\fIs\fP が指す char 型の配列にこれを格納する。この関数は +シフト状態 \fI*ps\fP を更新し、出力されたマルチバイト表現の長さ、すな +わち \fIs\fP に書き込まれたバイト数を返す。 .PP .\"O A different case is when \fIs\fP is not NULL, .\"O but \fIwc\fP is a null wide character (L\(aq\\0\(aq). @@ -65,15 +65,15 @@ wcrtomb \- .\"O it into the initial state), .\"O and returns the length of the shift sequence plus .\"O one, that is, the number of bytes written at \fIs\fP. -Ê̤Υ±¡¼¥¹¤È¤·¤Æ¤Ï¡¢\fIs\fP ¤Ï NULL ¤Ç¤Ê¤¤¤¬ -\fIwc\fP ¤¬ NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤Î¤³¤È¤¬¤¢¤ë¡£ -¤³¤Î¾ì¹ç¤Î +別のケースとしては、\fIs\fP は NULL でないが +\fIwc\fP が NULL ワイド文字 (L\(aq\\0\(aq) のことがある。 +この場合の .BR wcrtomb () -´Ø¿ô¤Ï¡¢\fI*ps\fP ¤ò½é´ü¾õÂÖ¤ËÌ᤹¤Î¤Ëɬ -Íפʥ·¥Õ¥È¥·¡¼¥±¥ó¥¹¤ò \fIs\fP ¤¬»Ø¤¹ char ·¿ÇÛÎó¤Ë³ÊǼ¤·¡¢¤½¤Î¸å¤Ë \(aq\\0\(aq -¤ò³ÊǼ¤¹¤ë¡£¤³¤Î´Ø¿ô¤Ï¥·¥Õ¥È¾õÂÖ \fI*ps\fP ¤ò¹¹¿·¤·(¤Ä¤Þ¤ê½é´ü¾õÂÖ¤ËÌá -¤·)¡¢¥·¥Õ¥È¥·¡¼¥±¥ó¥¹¤ÎŤµ¤Ë 1 ¤ò²Ã¤¨¤¿ÃͤòÊÖ¤¹¡£¤³¤ÎÃÍ¤Ï \fIs\fP ¤Ë -½ñ¤­¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¿ô¤Ç¤¢¤ë¡£ +関数は、\fI*ps\fP を初期状態に戻すのに必 +要なシフトシーケンスを \fIs\fP が指す char 型配列に格納し、その後に \(aq\\0\(aq +を格納する。この関数はシフト状態 \fI*ps\fP を更新し(つまり初期状態に戻 +し)、シフトシーケンスの長さに 1 を加えた値を返す。この値は \fIs\fP に +書き込まれたバイト数である。 .PP .\"O A third case is when \fIs\fP is NULL. .\"O In this case \fIwc\fP is ignored, @@ -84,26 +84,26 @@ wcrtomb \- .\"O where .\"O .I buf .\"O is an internal anonymous buffer. -»°ÈÖÌܤΥ±¡¼¥¹¤Ï¡¢\fIs\fP ¤¬ NULL ¤Î»þ¤Ç¤¢¤ë¡£ -¤³¤Î¾ì¹ç¤Ë¤Ï \fIwc\fP ¤Ï̵»ë¤µ¤ì¡¢´Ø¿ô¤Î¼ÂºÝ¤ÎÆ°¤­¤È¤·¤Æ¤Ï +三番目のケースは、\fIs\fP が NULL の時である。 +この場合には \fIwc\fP は無視され、関数の実際の動きとしては wcrtomb(buf, L\(aq\\0\(aq, ps) -¤¬ÊÖ¤µ¤ì¤ë¡£¤³¤³¤Ç¡¢ +が返される。ここで、 .I buf -¤ÏÆâÉôŪ¤Ê̵̾¥Ð¥Ã¥Õ¥¡¤Ç¤¢¤ë¡£ +は内部的な無名バッファである。 .PP .\"O In all of the above cases, if \fIps\fP is a NULL pointer, a static anonymous .\"O state only known to the .\"O .BR wcrtomb () .\"O function is used instead. -°Ê¾å¤Î¤¤¤º¤ì¤Î¾ì¹ç¤â¡¢\fIps\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¤Ê¤é¤Ð¥·¥Õ¥È¾õÂÖ¤ÏÍѤ¤ -¤é¤ì¤º¡¢ +以上のいずれの場合も、\fIps\fP が NULL ポインタならばシフト状態は用い +られず、 .BR wcrtomb () -´Ø¿ô¤À¤±¤¬ÃΤäƤ¤¤ëÀÅŪ¤Êƿ̾¤Î¾õÂÖ¤¬»È¤ï¤ì¤ë¡£ +関数だけが知っている静的な匿名の状態が使われる。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR wcrtomb () .\"O function returns the number of @@ -114,16 +114,16 @@ wcrtomb \- .\"O .I (size_t)\ \-1 .\"O is returned, and \fIerrno\fP set to \fBEILSEQ\fP. .BR wcrtomb () -´Ø¿ô¤Ï¡¢\fIs\fP ¤¬»Ø¤¹¥Ð¥¤¥ÈÎó¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¿ô¡¢¤¢ -¤ë¤¤¤Ï½ñ¤­¹þ¤Þ¤ì¤¿¤Ç¤¢¤í¤¦¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£\fIwc\fP ¤ò(¸½ºß¤Î¥í¥±¡¼¥ë¤Ë -½¾¤Ã¤Æ)¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤Çɽ¸½¤Ç¤­¤Ê¤±¤ì¤Ð¡¢ +関数は、\fIs\fP が指すバイト列に書き込まれたバイト数、あ +るいは書き込まれたであろうバイト数を返す。\fIwc\fP を(現在のロケールに +従って)マルチバイト列で表現できなければ、 .I (size_t)\ \-1 -¤¬ÊÖ¤µ¤ì¡¢ \fIerrno\fP ¤Ë \fBEILSEQ\fP ¤¬ÀßÄꤵ¤ì¤ë¡£ +が返され、 \fIerrno\fP に \fBEILSEQ\fP が設定される。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR wcrtomb () .\"O depends on the @@ -131,12 +131,12 @@ C99. .\"O category of the .\"O current locale. .BR wcrtomb () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .PP .\"O Passing NULL as \fIps\fP is not multithread safe. -\fIps\fP ¤Ë NULL ¤òÅϤ·¤¿ºÝ¤ÎÆ°ºî¤Ï¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤Ê¤¤¡£ +\fIps\fP に NULL を渡した際の動作はマルチスレッドセーフでない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR wcsrtombs (3) diff --git a/draft/man3/wcscasecmp.3 b/draft/man3/wcscasecmp.3 index e415e492..e570a8c3 100644 --- a/draft/man3/wcscasecmp.3 +++ b/draft/man3/wcscasecmp.3 @@ -16,11 +16,11 @@ .\" .TH WCSCASECMP 3 2010-09-15 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcscasecmp \- compare two wide-character strings, ignoring case -wcscasecmp \- ¥ï¥¤¥Éʸ»úÎó¤òÈæ³Ó¤¹¤ë¡£Âçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤¡£ +wcscasecmp \- ワイド文字列を比較する。大文字と小文字を区別しない。 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -30,9 +30,9 @@ wcscasecmp \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR wcscasecmp (): @@ -41,17 +41,17 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wcscasecmp () .\"O function is the wide-character equivalent of the @@ -63,16 +63,16 @@ _GNU_SOURCE .\"O .RB ( towupper (3), .\"O .BR towlower (3)). .BR wcscasecmp () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strcasecmp (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô -¤Ç¤¢¤ë¡£¤³¤Î´Ø¿ô¤Ï¡¢\fIs1\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤È \fIs2\fP ¤¬»Ø¤¹ -¥ï¥¤¥Éʸ»úʸ»úÎó¤ò¡¢Âçʸ»ú¤È¾®Ê¸»ú¤Î°ã¤¤ +関数に対応するワイド文字関数 +である。この関数は、\fIs1\fP が指すワイド文字文字列と \fIs2\fP が指す +ワイド文字文字列を、大文字と小文字の違い .RB ( towupper (3), .BR towlower (3)) -¤ò̵»ë¤·¤ÆÈæ³Ó¤¹¤ë¡£ +を無視して比較する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR wcscasecmp () .\"O function returns zero if the wide-character strings at @@ -83,28 +83,28 @@ _GNU_SOURCE .\"O returns a negative integer if \fIs1\fP is smaller .\"O than \fIs2\fP, ignoring case. .BR wcscasecmp () -´Ø¿ô¤Ï¡¢\fIs1\fP ¤È \fIs2\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úÎó¤òÂçʸ -»ú¤È¾®Ê¸»ú¤Î°ã¤¤¤ò̵»ë¤·¤ÆÈæ³Ó¤·¤¿»þ¤Ë¡¢Åù¤·¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£Âçʸ»ú¤È -¾®Ê¸»ú¤Î°ã¤¤¤ò̵»ë¤·¤Æ \fIs1\fP ¤ÎÊý¤¬ \fIs2\fP ¤è¤êÂ礭¤±¤ì¤ÐÀµ¤ÎÀ°¿ô -¤òÊÖ¤¹¡£ -Âçʸ»ú¤È¾®Ê¸»ú¤Î°ã¤¤¤ò̵»ë¤·¤Æ \fIs1\fP ¤ÎÊý¤¬ \fIs2\fP ¤è¤ê¾®¤µ¤±¤ì¤Ð -Éé¤ÎÀ°¿ô¤òÊÖ¤¹¡£ +関数は、\fIs1\fP と \fIs2\fP が指すワイド文字列を大文 +字と小文字の違いを無視して比較した時に、等しければ 0 を返す。大文字と +小文字の違いを無視して \fIs1\fP の方が \fIs2\fP より大きければ正の整数 +を返す。 +大文字と小文字の違いを無視して \fIs1\fP の方が \fIs2\fP より小さければ +負の整数を返す。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The .\"O .BR wcscasecmp () .\"O function is provided in glibc since version 2.1. .BR wcscasecmp () -´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +関数は glibc バージョン 2.1 以降で提供されている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. .\"O This function is not specified in POSIX.1-2001, .\"O and is not widely available on other systems. -¤³¤Î´Ø¿ô¤Ï POSIX.1-2001 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -Linux °Ê³°¤Î¾¤Î¥·¥¹¥Æ¥à¤Ç¹­¤¯ÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +この関数は POSIX.1-2001 では規定されていないが、 +Linux 以外の他のシステムで広く利用可能である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR wcscasecmp () .\"O depends on the @@ -112,10 +112,10 @@ Linux .\"O category of the .\"O current locale. .BR wcscasecmp () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¤Ë°Í¸¤¹¤ë¡£ +に依存する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strcasecmp (3), .BR wcscmp (3) diff --git a/draft/man3/wcscat.3 b/draft/man3/wcscat.3 index 95c9d598..7e63c2d7 100644 --- a/draft/man3/wcscat.3 +++ b/draft/man3/wcscat.3 @@ -17,18 +17,18 @@ .\" .TH WCSCAT 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcscat \- concatenate two wide-character strings -wcscat \- 2 ¤Ä¤Î¥ï¥¤¥Éʸ»úʸ»úÎó¤ò·ë¹ç¤¹¤ë +wcscat \- 2 つのワイド文字文字列を結合する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "wchar_t *wcscat(wchar_t *" dest ", const wchar_t *" src ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wcscat () .\"O function is the wide-character equivalent @@ -39,31 +39,31 @@ wcscat \- 2 .\"O including the terminating null wide character (L\(aq\\0\(aq), .\"O to the end of the wide-character string pointed to by \fIdest\fP. .BR wcscat () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strcat (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIsrc\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó -(½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤ò´Þ¤à) ¤ò¡¢ -\fIdest\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤ÎºÇ¸å¤Ë¥³¥Ô¡¼¤¹¤ë¡£ +に対応するワイド文字関数である。 +この関数は、\fIsrc\fP が指すワイド文字文字列 +(終端の NULL ワイド文字 (L\(aq\\0\(aq) を含む) を、 +\fIdest\fP が指すワイド文字文字列の最後にコピーする。 .PP .\"O The strings may not overlap. -¤³¤Îʸ»úÎó¤Ï½Å¤Ê¤Ã¤Æ¤¤¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +この文字列は重なっていてはならない。 .PP .\"O The programmer must ensure that there is room for at least .\"O \fIwcslen(dest)+wcslen(src)+1\fP wide characters at \fIdest\fP. -¥×¥í¥°¥é¥Þ¤Ï¡¢¾¯¤Ê¤¯¤È¤â \fIwcslen(dest)+wcslen(src)+1\fP ʸ»ú¤Î -¥ï¥¤¥Éʸ»ú¤¬Æþ¤ë¤À¤±¤ÎÎΰè¤ò \fIdest\fP ¤ËÂФ·¤Æ³ÎÊݤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +プログラマは、少なくとも \fIwcslen(dest)+wcslen(src)+1\fP 文字の +ワイド文字が入るだけの領域を \fIdest\fP に対して確保しなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR wcscat () .\"O returns \fIdest\fP. .BR wcscat () -¤Ï \fIdest\fP ¤òÊÖ¤¹¡£ +は \fIdest\fP を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strcat (3), .BR wcpcpy (3), .BR wcscpy (3), diff --git a/draft/man3/wcschr.3 b/draft/man3/wcschr.3 index e38cfa9d..2ae4e5d6 100644 --- a/draft/man3/wcschr.3 +++ b/draft/man3/wcschr.3 @@ -17,18 +17,18 @@ .\" .TH WCSCHR 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcschr \- search a wide character in a wide-character string -wcschr \- ¥ï¥¤¥Éʸ»úʸ»úÎóÃæ¤Î¥ï¥¤¥Éʸ»ú¤ò¸¡º÷¤¹¤ë +wcschr \- ワイド文字文字列中のワイド文字を検索する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "wchar_t *wcschr(const wchar_t *" wcs ", wchar_t " wc ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wcschr () .\"O function is the wide-character equivalent @@ -38,26 +38,26 @@ wcschr \- .\"O It searches the first occurrence of \fIwc\fP in the wide-character .\"O string pointed to by \fIwcs\fP. .BR wcschr () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strchr (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwcs\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤ÎÃæ¤ÇºÇ½é¤Ë¸½¤ï¤ì¤ë \fIwc\fP ¤ò¸¡º÷¤¹¤ë¡£ +関数に対応するワイド文字関数である。 +この関数は、\fIwcs\fP が指すワイド文字文字列の中で最初に現われる \fIwc\fP を検索する。 .\"O.SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR wcschr () .\"O function returns a pointer to the first occurrence of .\"O \fIwc\fP in the wide-character string pointed to by \fIwcs\fP, or NULL if .\"O \fIwc\fP does not occur in the string. .BR wcschr () -´Ø¿ô¤Ï¡¢\fIwcs\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤ÎÃæ¤ÇºÇ½é¤Ë¸½¤ï¤ì¤¿ -\fIwc\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£\fIwc\fP ¤¬Ê¸»úÎóÃæ¤Ë¸½¤ï¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï -NULL ¤òÊÖ¤¹¡£ +関数は、\fIwcs\fP が指すワイド文字文字列の中で最初に現われた +\fIwc\fP へのポインタを返す。\fIwc\fP が文字列中に現われなかった場合は +NULL を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strchr (3), .BR wcspbrk (3), .BR wcsrchr (3), diff --git a/draft/man3/wcscmp.3 b/draft/man3/wcscmp.3 index aa20b0e8..6ea9f5ba 100644 --- a/draft/man3/wcscmp.3 +++ b/draft/man3/wcscmp.3 @@ -17,18 +17,18 @@ .\" .TH WCSCMP 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcscmp \- compare two wide-character strings -wcscmp \- 2 ¤Ä¤Î¥ï¥¤¥Éʸ»úʸ»úÎó¤òÈæ³Ó¤¹¤ë +wcscmp \- 2 つのワイド文字文字列を比較する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int wcscmp(const wchar_t *" s1 ", const wchar_t *" s2 ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wcscmp () .\"O function is the wide-character equivalent @@ -38,13 +38,13 @@ wcscmp \- 2 .\"O It compares the wide-character string pointed to by \fIs1\fP and the .\"O wide-character string pointed to by \fIs2\fP. .BR wcscmp () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strcmp (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIs1\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤È -\fIs2\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤òÈæ³Ó¤¹¤ë¡£ +関数に対応するワイド文字関数である。 +この関数は、\fIs1\fP が指すワイド文字文字列と +\fIs2\fP が指すワイド文字文字列を比較する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR wcscmp () .\"O function returns zero if the wide-character strings at @@ -56,16 +56,16 @@ wcscmp \- 2 .\"O at the first differing position \fIi\fP, the corresponding wide-character .\"O \fIs1[i]\fP is less than \fIs2[i]\fP. .BR wcscmp () -´Ø¿ô¤Ï¡¢\fIs1\fP ¤È \fIs2\fP ¤¬¤½¤ì¤¾¤ì»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó -¤¬Æ±¤¸¤Ç¤¢¤ì¤Ð 0 ¤òÊÖ¤¹¡£°Û¤Ê¤ëʸ»ú¤¬ºÇ½é¤Ë¸½¤ï¤ì¤¿°ÌÃ֤ˤª¤¤¤Æ¡¢¤½¤Î°Ì -Ã֤ˤ¢¤ë¥ï¥¤¥Éʸ»ú \fIs1[i]\fP ¤¬ \fIs2[i]\fP ¤è¤êÂ礭¤±¤ì¤ÐÀµ¤ÎÃͤòÊÖ¤¹¡£ -°Û¤Ê¤ëʸ»ú¤¬ºÇ½é¤Ë¸½¤ï¤ì¤¿°ÌÃ֤ˤª¤¤¤Æ¡¢¤½¤Î°ÌÃ֤ˤ¢¤ë¥ï¥¤¥Éʸ»ú \fIs1[i]\fP -¤¬ \fIs2[i]\fP ¤è¤ê¾®¤µ¤±¤ì¤ÐÉé¤ÎÃͤòÊÖ¤¹¡£ +関数は、\fIs1\fP と \fIs2\fP がそれぞれ指すワイド文字文字列 +が同じであれば 0 を返す。異なる文字が最初に現われた位置において、その位 +置にあるワイド文字 \fIs1[i]\fP が \fIs2[i]\fP より大きければ正の値を返す。 +異なる文字が最初に現われた位置において、その位置にあるワイド文字 \fIs1[i]\fP +が \fIs2[i]\fP より小さければ負の値を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strcmp (3), .BR wcscasecmp (3), .BR wmemcmp (3) diff --git a/draft/man3/wcscpy.3 b/draft/man3/wcscpy.3 index 9eb0d941..4cfff1db 100644 --- a/draft/man3/wcscpy.3 +++ b/draft/man3/wcscpy.3 @@ -17,18 +17,18 @@ .\" .TH WCSCPY 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcscpy \- copy a wide-character string -wcscpy \- ¥ï¥¤¥Éʸ»úʸ»úÎó¤ò¥³¥Ô¡¼¤¹¤ë +wcscpy \- ワイド文字文字列をコピーする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "wchar_t *wcscpy(wchar_t *" dest ", const wchar_t *" src ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wcscpy () .\"O function is the wide-character equivalent @@ -40,31 +40,31 @@ wcscpy \- .\"O to the array pointed to by .\"O \fIdest\fP. .BR wcscpy () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strcpy (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIsrc\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»ú (½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú -(L\(aq\\0\(aq) ¤ò´Þ¤à)¤ò \fIdest\fP ¤¬»Ø¤¹ÇÛÎó¤Ë¥³¥Ô¡¼¤¹¤ë¡£ +関数に対応するワイド文字関数である。 +この関数は、\fIsrc\fP が指すワイド文字 (終端の NULL ワイド文字 +(L\(aq\\0\(aq) を含む)を \fIdest\fP が指す配列にコピーする。 .PP .\"O The strings may not overlap. -¤³¤ì¤é¤Îʸ»úÎó¤Ï½Å¤Ê¤Ã¤Æ¤¤¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +これらの文字列は重なっていてはならない。 .PP .\"O The programmer must ensure that there is .\"O room for at least \fIwcslen(src)+1\fP .\"O wide characters at \fIdest\fP. -¥×¥í¥°¥é¥Þ¤Ï¡¢¾¯¤Ê¤¯¤È¤â \fIwcslen(src)+1\fP ʸ»ú¤Î¥ï¥¤¥Éʸ»ú -¤¬Æþ¤ë¤À¤±¤ÎÎΰè¤ò \fIdest\fP ¤ËÂФ·¤Æ³ÎÊݤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +プログラマは、少なくとも \fIwcslen(src)+1\fP 文字のワイド文字 +が入るだけの領域を \fIdest\fP に対して確保しなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR wcscpy () .\"O returns \fIdest\fP. .BR wcscpy () -¤Ï \fIdest\fP ¤òÊÖ¤¹¡£ +は \fIdest\fP を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strcpy (3), .BR wcpcpy (3), .BR wcscat (3), diff --git a/draft/man3/wcscspn.3 b/draft/man3/wcscspn.3 index 36d8ee80..a9ef839f 100644 --- a/draft/man3/wcscspn.3 +++ b/draft/man3/wcscspn.3 @@ -17,18 +17,18 @@ .\" .TH WCSCSPN 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcscspn \- search a wide-character string for any of a set of wide characters -wcscspn \- ¥ï¥¤¥Éʸ»úʸ»úÎ󤫤顢Ϳ¤¨¤¿Ê¸»ú½¸¹ç¤Ë´Þ¤Þ¤ì¤ëʸ»ú¤ò¸¡º÷¤¹¤ë +wcscspn \- ワイド文字文字列から、与えた文字集合に含まれる文字を検索する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "size_t wcscspn(const wchar_t *" wcs ", const wchar_t *" reject ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wcscspn () .\"O function is the wide-character equivalent @@ -42,15 +42,15 @@ wcscspn \- .\"O string \fIwcs\fP of any of the characters in the wide-character string .\"O \fIreject\fP. .BR wcscspn () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strcspn (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwcs\fP ¤ÎÀèƬÉôʬ¤òÄ´¤Ù¡¢\fIreject\fP ¤ËÎóµó¤µ¤ì¤Æ¤¤¤Ê¤¤ -¥ï¥¤¥Éʸ»ú¤À¤±¤Ë¤è¤Ã¤Æ¹½À®¤µ¤ì¤ëÉôʬ¤òºÇ¤âŤ¯¼è¤Ã¤¿¾ì¹ç¤ÎŤµ¤òµá¤á¤ë¡£ -¸À¤¤´¹¤¨¤ë¤È¡¢¤³¤Î´Ø¿ô¤Ï¥ï¥¤¥Éʸ»úʸ»úÎó \fIwcs\fP ¤ÎÃæ¤Ë¡¢¥ï¥¤¥Éʸ»úÎó -\fIreject\fP ¤Ë´Þ¤Þ¤ì¤ë¤¤¤º¤ì¤«¤Îʸ»ú¤¬¸½¤ï¤ì¤ëºÇ½é¤Î°ÌÃÖ¤òõ¤¹¡£ +関数に対応するワイド文字関数である。 +この関数は、\fIwcs\fP の先頭部分を調べ、\fIreject\fP に列挙されていない +ワイド文字だけによって構成される部分を最も長く取った場合の長さを求める。 +言い換えると、この関数はワイド文字文字列 \fIwcs\fP の中に、ワイド文字列 +\fIreject\fP に含まれるいずれかの文字が現われる最初の位置を探す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR wcscspn () .\"O function returns the number of @@ -63,17 +63,17 @@ wcscspn \- .\"O the wide-character string \fIreject\fP, .\"O or \fIwcslen(wcs)\fP if there is none. .BR wcscspn () -´Ø¿ô¤Ï¡¢\fIwcs\fP ¤ÎÀèƬÉôʬ¤òÄ´¤Ù¡¢\fIreject\fP ¤ËÎóµó -¤µ¤ì¤Æ¤¤¤Ê¤¤¥ï¥¤¥Éʸ»ú¤À¤±¤Ë¤è¤Ã¤Æ¹½À®¤µ¤ì¤ëÉôʬ¤òºÇ¤âŤ¯¼è¤Ã¤¿¾ì¹ç¤Î -Ťµ¤òÊÖ¤¹¡£ -¸À¤¤´¹¤¨¤ë¤È¡¢¤³¤Î´Ø¿ô¤Ï¥ï¥¤¥Éʸ»úʸ»úÎó \fIwcs\fP ¤ÎÃæ¤Ë¡¢¥ï¥¤¥Éʸ»úÎó -\fIreject\fP ¤Ë´Þ¤Þ¤ì¤ë¤¤¤º¤ì¤«¤Îʸ»ú¤¬¸½¤ï¤ì¤ëºÇ½é¤Î°ÌÃÖ¤òÊÖ¤¹¡£ -²¿¤â¸½¤ï¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï \fIwcslen(wcs)\fP ¤òÊÖ¤¹¡£ +関数は、\fIwcs\fP の先頭部分を調べ、\fIreject\fP に列挙 +されていないワイド文字だけによって構成される部分を最も長く取った場合の +長さを返す。 +言い換えると、この関数はワイド文字文字列 \fIwcs\fP の中に、ワイド文字列 +\fIreject\fP に含まれるいずれかの文字が現われる最初の位置を返す。 +何も現われなかった場合には \fIwcslen(wcs)\fP を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strcspn (3), .BR wcspbrk (3), .BR wcsspn (3) diff --git a/draft/man3/wcsdup.3 b/draft/man3/wcsdup.3 index 6c7b1ef3..a68334d0 100644 --- a/draft/man3/wcsdup.3 +++ b/draft/man3/wcsdup.3 @@ -18,11 +18,11 @@ .\" .TH WCSDUP 3 2010-09-15 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcsdup \- duplicate a wide-character string -wcsdup \- ¥ï¥¤¥Éʸ»úʸ»úÎó¤òÊ£À½¤¹¤ë +wcsdup \- ワイド文字文字列を複製する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -32,9 +32,9 @@ wcsdup \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR wcsdup (): @@ -43,17 +43,17 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wcsdup () .\"O function is the wide-character equivalent @@ -63,49 +63,49 @@ _GNU_SOURCE .\"O It allocates and returns a new wide-character string whose initial .\"O contents is a duplicate of the wide-character string pointed to by \fIs\fP. .BR wcsdup () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strdup (3) -´Ø¿ô¤Î¥ï¥¤¥Éʸ»úÈǤǤ¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¥Ý¥¤¥ó¥¿ \fIs\fP ¤¬»Ø¤·¼¨¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤ÎÊ£À½¤ò -¿·¤·¤¤Îΰè¤Ë³ä¤êÅö¤Æ¤ÆÊÖ¤¹¡£ +関数のワイド文字版である。 +この関数はポインタ \fIs\fP が指し示すワイド文字文字列の複製を +新しい領域に割り当てて返す。 .PP .\"O Memory for the new wide-character string is .\"O obtained with .\"O .BR malloc (3), .\"O and should be freed with .\"O .BR free (3). -¿·¤·¤¤¥ï¥¤¥Éʸ»úʸ»úÎó¤Î¤¿¤á¤Î¥á¥â¥ê¤Ï +新しいワイド文字文字列のためのメモリは .BR malloc (3) -¤ò»È¤Ã¤Æ³ä¤êÅö¤Æ¤é¤ì¤ë¡£ -¤³¤ÎÎΰè¤Ï +を使って割り当てられる。 +この領域は .BR free (3) -¤ò»È¤Ã¤Æ²òÊü¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +を使って解放すべきである。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR wcsdup () .\"O function returns a pointer .\"O to the new wide-character string, .\"O or NULL if sufficient memory was not available. .BR wcsdup () -´Ø¿ô¤Ï¡¢¿·¤·¤¤¥ï¥¤¥Éʸ»úʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤±¤ì¤Ð NULL ¤òÊÖ¤¹¡£ +関数は、新しいワイド文字文字列へのポインタを返す。 +十分なメモリがなければ NULL を返す。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B ENOMEM .\"O Insufficient memory available to allocate duplicate string. -Ê£À½Ê¸»úÎó¤ò³ä¤êÅö¤Æ¤ë¤Î¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +複製文字列を割り当てるのに十分なメモリがない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. .\"O This function is not specified in POSIX.1-2001, .\"O and is not widely available on other systems. -¤³¤Î´Ø¿ô¤Ï POSIX.1-2001 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -Linux °Ê³°¤Î¾¤Î¥·¥¹¥Æ¥à¤Ç¹­¤¯ÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +この関数は POSIX.1-2001 では規定されていないが、 +Linux 以外の他のシステムで広く利用可能である。 .\"O .\" present in libc5 and glibc 2.0 and later -.\" libc5 ¤È glibc 2.0 ¤È¤½¤ì°Ê¹ß¤Ë¸ºß¤¹¤ë¡£ +.\" libc5 と glibc 2.0 とそれ以降に存在する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strdup (3), .BR wcscpy (3) diff --git a/draft/man3/wcslen.3 b/draft/man3/wcslen.3 index 988828ce..89f0390a 100644 --- a/draft/man3/wcslen.3 +++ b/draft/man3/wcslen.3 @@ -17,18 +17,18 @@ .\" .TH WCSLEN 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcslen \- determine the length of a wide-character string -wcslen \- ¥ï¥¤¥Éʸ»úʸ»úÎó¤ÎŤµ¤òµá¤á¤ë +wcslen \- ワイド文字文字列の長さを求める .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "size_t wcslen(const wchar_t *" s ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wcslen () .\"O function is the wide-character equivalent @@ -38,22 +38,22 @@ wcslen \- .\"O It determines the length of the wide-character string pointed to .\"O by \fIs\fP, excluding the terminating null wide chharacter (L\(aq\\0\(aq). .BR wcslen () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strlen (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIs\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤ÎŤµ¤òµá¤á¤ë¡£ -½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤Ï¤³¤ÎŤµ¤Ë¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ +関数に対応するワイド文字関数である。 +この関数は、\fIs\fP が指すワイド文字文字列の長さを求める。 +終端の NULL ワイド文字 (L\(aq\\0\(aq) はこの長さには含まれない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR wcslen () .\"O function returns the .\"O number of wide characters in \fIs\fP. .BR wcslen () -´Ø¿ô¤Ï¡¢\fIs\fP ¤Ë´Þ¤Þ¤ì¤ë¥ï¥¤¥Éʸ»ú¤Î¿ô¤òÊÖ¤¹¡£ +関数は、\fIs\fP に含まれるワイド文字の数を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strlen (3) diff --git a/draft/man3/wcsncasecmp.3 b/draft/man3/wcsncasecmp.3 index 1b7ecefb..c8779ee3 100644 --- a/draft/man3/wcsncasecmp.3 +++ b/draft/man3/wcsncasecmp.3 @@ -16,11 +16,11 @@ .\" .TH WCSNCASECMP 3 2010-09-15 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcsncasecmp \- compare two fixed-size wide-character strings, ignoring case -wcsncasecmp \- Âçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤»¤º¡¢2 ¤Ä¤Î¸ÇÄêĹ¤Î¥ï¥¤¥Éʸ»úʸ»úÎó¤òÈæ³Ó¤¹¤ë +wcsncasecmp \- 大文字と小文字を区別せず、2 つの固定長のワイド文字文字列を比較する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -30,9 +30,9 @@ wcsncasecmp \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR wcsncasecmp (): @@ -41,17 +41,17 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wcsncasecmp () .\"O function is the wide-character equivalent of the @@ -64,17 +64,17 @@ _GNU_SOURCE .\"O .RB ( towupper (3), .\"O .BR towlower (3)). .BR wcsncasecmp () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strncasecmp (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø -¿ô¤Ç¤¢¤ë¡£¤³¤Î´Ø¿ô¤Ï¡¢\fIs1\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤È \fIs2\fP ¤¬»Ø -¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤òÈæ³Ó¤¹¤ë¤¬¡¢ºÇÂç¤Ç¤âÀèƬ¤Î¥ï¥¤¥Éʸ»ú \fIn\fP ¸Ä -¤·¤«Èæ³Ó¤·¤Ê¤¤¡£¤Þ¤¿¡¢Âçʸ»ú¤È¾®Ê¸»ú +関数に対応するワイド文字関 +数である。この関数は、\fIs1\fP が指すワイド文字文字列と \fIs2\fP が指 +すワイド文字文字列を比較するが、最大でも先頭のワイド文字 \fIn\fP 個 +しか比較しない。また、大文字と小文字 .RB ( towupper (3), .BR towlower (3)) -¤Ï¶èÊ̤·¤Ê¤¤¡£ +は区別しない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR wcsncasecmp () .\"O function returns zero @@ -87,29 +87,29 @@ _GNU_SOURCE .\"O It returns a negative integer .\"O if truncated \fIs1\fP is smaller than truncated \fIs2\fP, ignoring case. .BR wcsncasecmp () -´Ø¿ô¤Ï¡¢\fIs1\fP ¤È \fIs2\fP ¤¬¤½¤ì¤¾¤ì»Ø¤¹Ê¸»úÎó¤ò -\fIn\fP ʸ»ú¤Ë¼ý¤Þ¤ë¤è¤¦¤ËÀÚ¤êµÍ¤á¤¿¤â¤Î¤ò¡¢Âçʸ»ú¤È¾®Ê¸»ú¤Î°ã¤¤¤ò̵»ë -¤·¤ÆÈæ³Ó¤·¤¿¤È¤­¤ËÅù¤·¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£¤³¤Î´Ø¿ô¤Ï¡¢Âçʸ»ú¤È¾®Ê¸»ú¤ò¶è -Ê̤·¤Ê¤¤¾ì¹ç¤Ë¡¢\fIs1\fP ¤òÀÚ¤êµÍ¤á¤¿¤â¤Î¤¬ \fIs2\fP ¤òÀÚ¤êµÍ¤á¤¿¤â¤Î -¤è¤êÂ礭¤±¤ì¤ÐÀµ¤ÎÃͤòÊÖ¤¹¡£¤³¤Î´Ø¿ô¤Ï¡¢Âçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤¾ì¹ç -¤Ë¡¢\fIs1\fP ¤òÀÚ¤êµÍ¤á¤¿¤â¤Î¤¬ \fIs2\fP ¤òÀÚ¤êµÍ¤á¤¿¤â¤Î¤è¤ê¾®¤µ¤±¤ì -¤ÐÉé¤ÎÃͤòÊÖ¤¹¡£ +関数は、\fIs1\fP と \fIs2\fP がそれぞれ指す文字列を +\fIn\fP 文字に収まるように切り詰めたものを、大文字と小文字の違いを無視 +して比較したときに等しければ 0 を返す。この関数は、大文字と小文字を区 +別しない場合に、\fIs1\fP を切り詰めたものが \fIs2\fP を切り詰めたもの +より大きければ正の値を返す。この関数は、大文字と小文字を区別しない場合 +に、\fIs1\fP を切り詰めたものが \fIs2\fP を切り詰めたものより小さけれ +ば負の値を返す。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The .\"O .BR wcsncasecmp () .\"O function is provided in glibc since version 2.1. .BR wcsncasecmp () -´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +関数は glibc バージョン 2.1 以降で提供されている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. .\"O This function is not specified in POSIX.1-2001, .\"O and is not widely available on other systems. -¤³¤Î´Ø¿ô¤Ï POSIX.1-2001 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -Linux °Ê³°¤Î¾¤Î¥·¥¹¥Æ¥à¤Ç¹­¤¯ÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +この関数は POSIX.1-2001 では規定されていないが、 +Linux 以外の他のシステムで広く利用可能である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR wcsncasecmp () .\"O depends on the @@ -117,10 +117,10 @@ Linux .\"O category of the .\"O current locale. .BR wcsncasecmp () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strncasecmp (3), .BR wcsncmp (3) diff --git a/draft/man3/wcsncat.3 b/draft/man3/wcsncat.3 index 9aef4497..2b812ee1 100644 --- a/draft/man3/wcsncat.3 +++ b/draft/man3/wcsncat.3 @@ -17,18 +17,18 @@ .\" .TH WCSNCAT 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcsncat \- concatenate two wide-character strings -wcsncat \- 2 ¤Ä¤Î¥ï¥¤¥Éʸ»úʸ»úÎó¤ò·ë¹ç¤¹¤ë +wcsncat \- 2 つのワイド文字文字列を結合する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "wchar_t *wcsncat(wchar_t *" dest ", const wchar_t *" src ", size_t " n ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wcsncat () .\"O function is the wide-character equivalent of the @@ -38,30 +38,30 @@ wcsncat \- 2 .\"O string pointed to by \fIsrc\fP to the end of the wide-character string pointed .\"O to by \fIdest\fP, and adds a terminating null wide character (L\(aq\\0\(aq). .BR wcsncat () -´Ø¿ô¤Ï +関数は .BR strncat (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIsrc\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎ󤫤éºÇÂç \fIn\fP ¸Äʬ¤Î¥ï -¥¤¥Éʸ»ú¤ò¥³¥Ô¡¼¤·¤Æ¡¢\fIdest\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤ÎËöÈø¤ËŽ¤êÉÕ -¤±¤ë¡£\fIdest\fP ¤Î½ªÃ¼¤Ë¤Ï NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤òÄɲ乤롣 +に対応するワイド文字関数である。 +この関数は、\fIsrc\fP が指すワイド文字文字列から最大 \fIn\fP 個分のワ +イド文字をコピーして、\fIdest\fP が指すワイド文字文字列の末尾に貼り付 +ける。\fIdest\fP の終端には NULL ワイド文字 (L\(aq\\0\(aq) を追加する。 .PP .\"O The strings may not overlap. -¤³¤ì¤é¤Îʸ»úÎó¤Ï½Å¤Ê¤Ã¤Æ¤¤¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +これらの文字列は重なっていてはならない。 .PP .\"O The programmer must ensure that there is room for at least .\"O \fIwcslen(dest) + n + 1\fP wide characters at \fIdest\fP. -¥×¥í¥°¥é¥Þ¤Ï¡¢\fIdest\fP ¤Ë¾¯¤Ê¤¯¤È¤â \fIwcslen(dest) + n + 1\fP -¸Ä¤Î¥ï¥¤¥Éʸ»ú¤¬Æþ¤ëÎΰè¤ò³ÎÊݤ·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +プログラマは、\fIdest\fP に少なくとも \fIwcslen(dest) + n + 1\fP +個のワイド文字が入る領域を確保しておかなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR wcsncat () .\"O returns \fIdest\fP. .BR wcsncat () -¤Ï \fIdest\fP ¤òÊÖ¤¹¡£ +は \fIdest\fP を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strncat (3), .BR wcscat (3) diff --git a/draft/man3/wcsncmp.3 b/draft/man3/wcsncmp.3 index 043b7855..4e102f8e 100644 --- a/draft/man3/wcsncmp.3 +++ b/draft/man3/wcsncmp.3 @@ -17,18 +17,18 @@ .\" .TH WCSNCMP 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcsncmp \- compare two fixed-size wide-character strings -wcsncmp \- 2 ¤Ä¤Î¸ÇÄêĹ¥ï¥¤¥Éʸ»úʸ»úÎó¤òÈæ³Ó¤¹¤ë +wcsncmp \- 2 つの固定長ワイド文字文字列を比較する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int wcsncmp(const wchar_t *" s1 ", const wchar_t *" s2 ", size_t " n ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wcsncmp () .\"O function is the wide-character equivalent of the @@ -40,15 +40,15 @@ wcsncmp \- 2 .\"O In each string, the comparison extends only up .\"O to the first occurrence of a nulll wide character (L\(aq\\0\(aq), if any. .BR wcsncmp () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strncmp (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIs1\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤È \fIs2\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ -»úʸ»úÎó¤òÈæ³Ó¤¹¤ë¤¬¡¢ºÇÂç¤Ç¤âÀèƬ¤Î¥ï¥¤¥Éʸ»ú \fIn\fP ¸Ä¤Þ¤Ç¤·¤«Èæ³Ó -¤·¤Ê¤¤¡£¤Þ¤¿¤¤¤º¤ì¤«¤Îʸ»úÎó¤Ë NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤¬¸½¤ì¤¿¤é¡¢ -Èæ³Ó¤Ï¤½¤Î°ÌÃ֤ǽªÎ»¤¹¤ë¡£ +関数に対応するワイド文字関数である。 +この関数は、\fIs1\fP が指すワイド文字文字列と \fIs2\fP が指すワイド文 +字文字列を比較するが、最大でも先頭のワイド文字 \fIn\fP 個までしか比較 +しない。またいずれかの文字列に NULL ワイド文字 (L\(aq\\0\(aq) が現れたら、 +比較はその位置で終了する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR wcsncmp () .\"O function returns zero if the wide-character strings at @@ -61,17 +61,17 @@ wcsncmp \- 2 .\"O differing position \fIi\fP (\fIi\fP < \fIn\fP), the corresponding .\"O wide-character \fIs1[i]\fP is less than \fIs2[i]\fP. .BR wcsncmp () -´Ø¿ô¤Ï¡¢\fIs1\fP ¤È \fIs2\fP ¤¬¤½¤ì¤¾¤ì»Ø¤¹Ê¸»úÎó¤ò -\fIn\fP ʸ»ú¤Ë¼ý¤Þ¤ë¤è¤¦¤ËÀÚ¤êµÍ¤á¤¿¤â¤Î¤¬Åù¤·¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ -¤³¤Î´Ø¿ô¤Ï¡¢°Û¤Ê¤ëʸ»ú¤¬ºÇ½é¤Ë¸½¤ï¤ì¤¿°ÌÃÖ \fIi\fP (\fIi\fP < \fIn\fP) -¤Ë¤ª¤¤¤Æ¡¢¤½¤Î°ÌÃ֤ˤ¢¤ëʸ»ú \fIs1[i]\fP ¤¬ \fIs2[i]\fP ¤è¤êÂ礭¤±¤ì¤Ð -Àµ¤ÎÃͤòÊÖ¤¹¡£°Û¤Ê¤ëʸ»ú¤¬ºÇ½é¤Ë¸½¤ï¤ì¤¿°ÌÃÖ \fIi\fP (\fIi\fP < \fIn\fP) -¤Ë¤ª¤¤¤Æ¡¢¤½¤Î°ÌÃ֤ˤ¢¤ëʸ»ú \fIs1[i]\fP ¤¬ \fIs2[i]\fP ¤è¤ê¾®¤µ¤±¤ì¤Ð -Éé¤ÎÃͤòÊÖ¤¹¡£ +関数は、\fIs1\fP と \fIs2\fP がそれぞれ指す文字列を +\fIn\fP 文字に収まるように切り詰めたものが等しければ 0 を返す。 +この関数は、異なる文字が最初に現われた位置 \fIi\fP (\fIi\fP < \fIn\fP) +において、その位置にある文字 \fIs1[i]\fP が \fIs2[i]\fP より大きければ +正の値を返す。異なる文字が最初に現われた位置 \fIi\fP (\fIi\fP < \fIn\fP) +において、その位置にある文字 \fIs1[i]\fP が \fIs2[i]\fP より小さければ +負の値を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strncmp (3), .BR wcsncasecmp (3) diff --git a/draft/man3/wcsncpy.3 b/draft/man3/wcsncpy.3 index a956196e..81cffc7b 100644 --- a/draft/man3/wcsncpy.3 +++ b/draft/man3/wcsncpy.3 @@ -17,18 +17,18 @@ .\" .TH WCSNCPY 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcsncpy \- copy a fixed-size string of wide characters -wcsncpy \- ¸ÇÄêĹ¤Î¥ï¥¤¥Éʸ»úʸ»úÎó¤ò¥³¥Ô¡¼¤¹¤ë +wcsncpy \- 固定長のワイド文字文字列をコピーする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "wchar_t *wcsncpy(wchar_t *" dest ", const wchar_t *" src ", size_t " n ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wcsncpy () .\"O function is the wide-character equivalent of the @@ -48,34 +48,34 @@ wcsncpy \- .\"O to \fIn\fP, the string pointed to by \fIdest\fP .\"O will not be terminated by a null wide character. .BR wcsncpy () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strncpy (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï \fIsrc\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎ󤫤顢 -½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤ò -´Þ¤á¤ÆºÇÂç \fIn\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤ò¡¢\fIdest\fP ¤¬»Ø¤¹ÇÛÎó¤Ë¥³¥Ô¡¼¤¹¤ë¡£ -¤Á¤ç¤¦¤É \fIn\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤¬ \fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£ -\fIwcslen(src)\fP ¤ÎŤµ¤¬ \fIn\fP ¤è¤ê¾®¤µ¤±¤ì¤Ð¡¢\fIdest\fP ¤¬»Ø¤¹ -ÇÛÎó¤Î»Ä¤ê¤Î¥ï¥¤¥Éʸ»ú¤ÎÉôʬ¤Ï NULL ¥ï¥¤¥Éʸ»ú¤ÇËä¤á¤é¤ì¤ë¡£ -\fIwcslen(src)\fP ¤ÎŤµ¤¬ \fIn\fP °Ê¾å¤Ê¤é¤Ð¡¢\fIdest\fP ¤¬»Ø¤¹Ê¸»úÎó -¤¬ NULL ¥ï¥¤¥Éʸ»ú¤Ç½ªÃ¼¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ +関数に対応するワイド文字関数である。 +この関数は \fIsrc\fP が指すワイド文字文字列から、 +終端の NULL ワイド文字 (L\(aq\\0\(aq) を +含めて最大 \fIn\fP 個のワイド文字を、\fIdest\fP が指す配列にコピーする。 +ちょうど \fIn\fP 個のワイド文字が \fIdest\fP に書き込まれる。 +\fIwcslen(src)\fP の長さが \fIn\fP より小さければ、\fIdest\fP が指す +配列の残りのワイド文字の部分は NULL ワイド文字で埋められる。 +\fIwcslen(src)\fP の長さが \fIn\fP 以上ならば、\fIdest\fP が指す文字列 +が NULL ワイド文字で終端されることはない。 .PP .\"O The strings may not overlap. -¤³¤ì¤é¤ÎÇÛÎó¤Ï½Å¤Ê¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +これらの配列は重なってはならない。 .PP .\"O The programmer must ensure that there is room for at least \fIn\fP wide .\"O characters at \fIdest\fP. -¥×¥í¥°¥é¥Þ¤Ï¡¢¾¯¤Ê¤¯¤È¤â \fIn\fP ʸ»ú¤Î¥ï¥¤¥Éʸ»ú¤¬Æþ¤ë¤À¤±¤ÎÎΰè¤ò -\fIdest\fP ¤ËÂФ·¤Æ³ÎÊݤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +プログラマは、少なくとも \fIn\fP 文字のワイド文字が入るだけの領域を +\fIdest\fP に対して確保しなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR wcsncpy () .\"O returns \fIdest\fP. .BR wcsncpy () -¤Ï \fIdest\fP ¤òÊÖ¤¹¡£ +は \fIdest\fP を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strncpy (3) diff --git a/draft/man3/wcsnlen.3 b/draft/man3/wcsnlen.3 index d076c643..b0d33571 100644 --- a/draft/man3/wcsnlen.3 +++ b/draft/man3/wcsnlen.3 @@ -16,11 +16,11 @@ .\" .TH WCSNLEN 3 2011-10-01 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcsnlen \- determine the length of a fixed-size wide-character string -wcsnlen \- ¸ÇÄêĹ¤Î¥ï¥¤¥Éʸ»úʸ»úÎó¤ÎŤµ¤òµá¤á¤ë +wcsnlen \- 固定長のワイド文字文字列の長さを求める .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -30,9 +30,9 @@ wcsnlen \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR wcsncasecmp (): @@ -41,17 +41,17 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wcsnlen () .\"O function is the wide-character equivalent @@ -68,41 +68,41 @@ _GNU_SOURCE .\"O looks only at the first \fImaxlen\fP .\"O wide characters at \fIs\fP and never beyond \fIs+maxlen\fP. .BR wcsnlen () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strnlen (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIs\fP ¤¬»Ø¤¹Ê¸»úÎóÃæ¤Î¥ï¥¤¥Éʸ»ú¤Î¿ô¤òÊÖ¤¹¤¬¡¢ -ÊÖ¤µ¤ì¤ë¤Î¤Ï¥ï¥¤¥Éʸ»ú¤ÇºÇÂç \fImaxlen\fP ʸ»ú¤Þ¤Ç¤Ç¤¢¤ë -(¤³¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¥Ð¥¤¥È¿ô¤Ç¤Ï¤Ê¤¤ÅÀ¤ËÃí°Õ)¡£ -¤Þ¤¿¡¢½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤Ï´Þ¤Þ¤Ê¤¤¡£ -¤³¤ì¤ò¹Ô¤¦ºÝ¤Ë¤Ï¡¢ +関数に対応するワイド文字関数である。 +この関数は、\fIs\fP が指す文字列中のワイド文字の数を返すが、 +返されるのはワイド文字で最大 \fImaxlen\fP 文字までである +(このパラメータはバイト数ではない点に注意)。 +また、終端の NULL ワイド文字 (L\(aq\\0\(aq) は含まない。 +これを行う際には、 .BR wcsnlen () -¤Ï \fIs\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úÎó¤ÎºÇ½é¤Î -\fImaxlen\fP ʸ»ú¤·¤«¸«¤º¡¢·è¤·¤Æ \fIs+maxlen\fP ʸ»ú¤òĶ¤¨¤Æʸ»úÎó¤ò -»²¾È¤¹¤ë¤³¤È¤Ï¤Ê¤¤¡£ +は \fIs\fP が指すワイド文字列の最初の +\fImaxlen\fP 文字しか見ず、決して \fIs+maxlen\fP 文字を超えて文字列を +参照することはない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR wcsnlen () .\"O function returns \fIwcslen(s)\fP, if that is less than .\"O \fImaxlen\fP, or \fImaxlen\fP if there is no null wide character among the .\"O first \fImaxlen\fP wide characters pointed to by \fIs\fP. .BR wcsnlen () -´Ø¿ô¤Ï¡¢\fIwcslen(s)\fP ¤ÎÃͤ¬ \fImaxlen\fP ¤è¤ê¾®¤µ¤±¤ì -¤Ð \fIwcslen(s)\fP ¤òÊÖ¤¹¡£¤¢¤ë¤¤¤Ï¡¢\fIs\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úÎóÃæ¤Î -ºÇ½é¤Î \fImaxlen\fP ʸ»ú¤Ë NULL ¥ï¥¤¥Éʸ»ú¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð -\fImaxlen\fP ¤òÊÖ¤¹¡£ +関数は、\fIwcslen(s)\fP の値が \fImaxlen\fP より小さけれ +ば \fIwcslen(s)\fP を返す。あるいは、\fIs\fP が指すワイド文字列中の +最初の \fImaxlen\fP 文字に NULL ワイド文字が含まれていなければ +\fImaxlen\fP を返す。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The .\"O .BR wcsnlen () .\"O function is provided in glibc since version 2.1. .BR wcsnlen () -´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +関数は glibc バージョン 2.1 以降で提供されている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strnlen (3), .BR wcslen (3) diff --git a/draft/man3/wcsnrtombs.3 b/draft/man3/wcsnrtombs.3 index 3f35ef09..a5652e21 100644 --- a/draft/man3/wcsnrtombs.3 +++ b/draft/man3/wcsnrtombs.3 @@ -16,11 +16,11 @@ .\" .TH WCSNRTOMBS 3 2011-10-01 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcsnrtombs \- convert a wide-character string to a multibyte string -wcsnrtombs \- ¥ï¥¤¥Éʸ»úʸ»úÎó¤ò¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ËÊÑ´¹¤¹¤ë +wcsnrtombs \- ワイド文字文字列をマルチバイト文字列に変換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -31,9 +31,9 @@ wcsnrtombs \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR wcsnrtombs (): @@ -42,17 +42,17 @@ glibc .RS 4 .TP 4 .\"O Since glibc 2.10: -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP .\"O Before glibc 2.10: -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wcsnrtombs () .\"O function is like the @@ -61,11 +61,11 @@ _GNU_SOURCE .\"O except that the number of wide characters to be converted, .\"O starting at \fI*src\fP, is limited to \fInwc\fP. .BR wcsnrtombs () -´Ø¿ô¤Ï¡¢ +関数は、 .BR wcsrtombs () -´Ø¿ô¤Ë»÷¤Æ¤¤¤ë¡£¤¿¤À¤·¡¢ -ÊÑ´¹¤µ¤ì¤ë¥ï¥¤¥Éʸ»ú¤Î¿ô¤¬(\fI*src\fP ¤«¤é¿ô¤¨¤Æ) \fInwc\fP ʸ»ú¤ËÀ©¸Â -¤µ¤ì¤Æ¤¤¤ëÅÀ¤¬°Û¤Ê¤ë¡£ +関数に似ている。ただし、 +変換されるワイド文字の数が(\fI*src\fP から数えて) \fInwc\fP 文字に制限 +されている点が異なる。 .PP .\"O If \fIdest\fP is not a NULL pointer, .\"O the @@ -85,18 +85,18 @@ _GNU_SOURCE .\"O number of bytes written and \fI*src\fP .\"O by one. .\"O The conversion can stop for three reasons: -\fIdest\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¡¢ +\fIdest\fP が NULL ポインタでなければ、 .BR wcsnrtombs () -´Ø¿ô¤Ï -¥ï¥¤¥Éʸ»úʸ»úÎó¤ÎºÇÂç \fInwc\fP ¸Ä¤Þ¤Ç¤Î¥ï¥¤¥Éʸ»ú¤ò \fIdest\fP ¤«¤é -»Ï¤Þ¤ë¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ËÊÑ´¹¤¹¤ë¡£\fIdest\fP ¤Ë¤ÏºÇÂç \fIlen\fP ¥Ð¥¤ -¥È¤Þ¤Ç½ñ¤­¹þ¤Þ¤ì¤ë¡£¥·¥Õ¥È¾õÂÖ \fI*ps\fP ¤Ï¹¹¿·¤µ¤ì¤ë¡£¼ÂºÝ¤Î¸ú²Ì¤È¤· -¤Æ¤Ï¡¢¤³¤ÎÊÑ´¹¤Ï°Ê²¼¤ÎÆ°ºî¤ÈƱ¤¸¤Ë¤Ê¤ë: +関数は +ワイド文字文字列の最大 \fInwc\fP 個までのワイド文字を \fIdest\fP から +始まるマルチバイト文字列に変換する。\fIdest\fP には最大 \fIlen\fP バイ +トまで書き込まれる。シフト状態 \fI*ps\fP は更新される。実際の効果とし +ては、この変換は以下の動作と同じになる: .IR "wcrtomb(dest, *src, ps)" -¤ò¸Æ¤Ó¡¢À®¸ù¤¬Ê֤俤é -\fIdest\fP ¤ò½ñ¤­¹þ¤ó¤À¥Ð¥¤¥È¿ô¤À¤±Áý¤ä¤·¡¢\fI*src\fP ¤ò 1 Áý¤ä¤¹¡£ -¤½¤·¤Æ¡¢wcrtomb ¤¬À®¸ù¤òÊÖ¤¹¸Â¤ê¤³¤ì¤ò·«¤êÊÖ¤¹¡£ -ÊÑ´¹¤¬»ß¤Þ¤ëÍýͳ¤Ï 3 ¤Ä¹Í¤¨¤é¤ì¤ë: +を呼び、成功が返ったら +\fIdest\fP を書き込んだバイト数だけ増やし、\fI*src\fP を 1 増やす。 +そして、wcrtomb が成功を返す限りこれを繰り返す。 +変換が止まる理由は 3 つ考えられる: .PP .\"O 1. A wide character has been encountered that can not be represented as a .\"O multibyte sequence (according to the current locale). @@ -105,10 +105,10 @@ _GNU_SOURCE .\"O .I (size_t)\ \-1 .\"O is returned, .\"O and \fIerrno\fP is set to \fBEILSEQ\fP. -1. (¸½ºß¤Î¥í¥±¡¼¥ë¤Ë´ð¤Å¤¤¤Æ)¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤Çɽ¸½¤Ç¤­¤Ê¤¤¥ï¥¤¥Éʸ»ú¤Ë -½Ð²ñ¤Ã¤¿¾ì¹ç¡£¤³¤Î¾ì¹ç¤Ï¡¢\fI*src\fP ¤ÏÉÔÀµ¤Ê¥ï¥¤¥Éʸ»ú¤ò»Ø¤·¤¿¾õÂ֤ˤʤꡢ +1. (現在のロケールに基づいて)マルチバイト列で表現できないワイド文字に +出会った場合。この場合は、\fI*src\fP は不正なワイド文字を指した状態になり、 .I (size_t)\ \-1 -¤¬ÊÖ¤µ¤ì¡¢\fIerrno\fP ¤Ë \fBEILSEQ\fP ¤¬ÀßÄꤵ¤ì¤ë¡£ +が返され、\fIerrno\fP に \fBEILSEQ\fP が設定される。 .PP .\"O 2. \fInwc\fP wide characters have been .\"O- converted without encountering a L\(aq\\0\(aq, @@ -117,10 +117,10 @@ _GNU_SOURCE .\"O In this case \fI*src\fP is left pointing .\"O to the next wide character to be converted, and the number of bytes written .\"O to \fIdest\fP is returned. -2. NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤Ë½Ð²ñ¤ï¤Ê¤¤¤Ç \fInwc\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤ò -ÊÑ´¹¤·¤¿¾ì¹ç¤«¡¢Ä¹¤µ¤ÎÀ©¸Â¤Ë¤è¤Ã¤ÆÊÑ´¹¤¬»ß¤á¤é¤ì¤¿¾ì¹ç¡£ -¤³¤Î¾ì¹ç¤Ë¤Ï¡¢\fI*src\fP ¤Ï¼¡¤ËÊÑ´¹¤µ¤ì¤ë¤Ù¤­¥ï¥¤¥Éʸ»ú¤ò»Ø¤·¤¿¾õÂ֤ˤʤꡢ -\fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¿ô¤¬ÊÖ¤µ¤ì¤ë¡£ +2. NULL ワイド文字 (L\(aq\\0\(aq) に出会わないで \fInwc\fP 個のワイド文字を +変換した場合か、長さの制限によって変換が止められた場合。 +この場合には、\fI*src\fP は次に変換されるべきワイド文字を指した状態になり、 +\fIdest\fP に書き込まれたバイト数が返される。 .PP .\"O 3. The wide-character string has been completely converted, including the .\"O- terminating L\(aq\\0\(aq (which has the side effect of bringing back \fI*ps\fP @@ -130,31 +130,31 @@ _GNU_SOURCE .\"O- of bytes written to \fIdest\fP, excluding the terminating \(aq\\0\(aq byte, is .\"O+ of bytes written to \fIdest\fP, excluding the terminating null, is .\"O returned. -3. ¥ï¥¤¥Éʸ»úÎ󤬽ªÃ¼¤Î L\(aq\\0\(aq (¤³¤ì¤Ë¤Ï \fI*ps\fP ¤ò½é´ü¾õÂÖ¤ËÌ᤹¤È -¤¤¤¦ÉûºîÍѤ¬¤¢¤ë)¤â´Þ¤á¤ÆÁ´¤ÆÊÑ´¹¤µ¤ì¤¿¾ì¹ç¡£¤³¤Î¾ì¹ç¤Ë¤Ï \fI*src\fP -¤Ë NULL ¤¬ÀßÄꤵ¤ì¡¢\fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¿ô¤¬ÊÖ¤µ¤ì¤ë -(½ªÃ¼¤Î \(aq\\0\(aq ¤Ï¿ô¤¨¤Ê¤¤)¡£ +3. ワイド文字列が終端の L\(aq\\0\(aq (これには \fI*ps\fP を初期状態に戻すと +いう副作用がある)も含めて全て変換された場合。この場合には \fI*src\fP +に NULL が設定され、\fIdest\fP に書き込まれたバイト数が返される +(終端の \(aq\\0\(aq は数えない)。 .PP .\"O If \fIdest\fP is NULL, \fIlen\fP is ignored, .\"O and the conversion proceeds as above, .\"O except that the converted bytes are not written out to memory, and that .\"O no destination length limit exists. -\fIdest\fP ¤¬ NULL ¤Ê¤é¤Ð \fIlen\fP ¤Ï̵»ë¤µ¤ì¤ÆÁ°½Ò¤Î¤è¤¦¤ËÊÑ´¹¤¬¹Ô¤ï -¤ì¤ë¤¬¡¢ÊÑ´¹¤µ¤ì¤¿¥Ð¥¤¥È¥Ç¡¼¥¿¤Ï¥á¥â¥ê¤Ë½ñ¤­½Ð¤µ¤ì¤Ê¤¤ÅÀ¤È¡¢½ÐÎÏÀè¤ÎĹ -¤µ¤ÎÀ©¸Â¤¬¤Ê¤¤ÅÀ¤¬°Û¤Ê¤ë¡£ +\fIdest\fP が NULL ならば \fIlen\fP は無視されて前述のように変換が行わ +れるが、変換されたバイトデータはメモリに書き出されない点と、出力先の長 +さの制限がない点が異なる。 .PP .\"O In both of the above cases, .\"O if \fIps\fP is a NULL pointer, a static anonymous .\"O state only known to the wcsnrtombs function is used instead. -¾åµ­¤Î¤¤¤º¤ì¤Î¾ì¹ç¤â¡¢\fIps\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¤Ê¤é¤Ð¡¢wcsnrtombs ´Ø¿ô -¤À¤±¤¬ÃΤäƤ¤¤ëÀÅŪ¤Êƿ̾¤Î¾õÂÖ¤¬¥·¥Õ¥È¾õÂÖ¤ÎÂå¤ï¤ê¤ËÍѤ¤¤é¤ì¤ë¡£ +上記のいずれの場合も、\fIps\fP が NULL ポインタならば、wcsnrtombs 関数 +だけが知っている静的な匿名の状態がシフト状態の代わりに用いられる。 .PP .\"O The programmer must ensure that there is room for at least \fIlen\fP bytes .\"O at \fIdest\fP. -¥×¥í¥°¥é¥Þ¤Ï¾¯¤Ê¤¯¤È¤â \fIlen\fP ¥Ð¥¤¥È¤ÎÎΰè¤ò \fIdest\fP ¤Ë³ÎÊݤ·¤Ê -¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +プログラマは少なくとも \fIlen\fP バイトの領域を \fIdest\fP に確保しな +ければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR wcsnrtombs () .\"O function returns @@ -162,20 +162,20 @@ _GNU_SOURCE .\"O converted part of multibyte sequence, .\"O not including the terminating null. .BR wcsnrtombs () -´Ø¿ô¤Ï¡¢ÊÑ´¹¤·¤ÆÆÀ¤é¤ì¤¿¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤Î¥Ð¥¤¥È¿ô¤òÊÖ -¤¹¡£¤³¤ì¤Ë¤Ï½ªÃ¼¤Î NULL ¤Ï´Þ¤Þ¤Ê¤¤¡£ +関数は、変換して得られたマルチバイト列のバイト数を返 +す。これには終端の NULL は含まない。 .\"O If a wide character was encountered which .\"O could not be converted, .\"O .I (size_t)\ \-1 .\"O is returned, and \fIerrno\fP set to \fBEILSEQ\fP. -ÊÑ´¹¤Ç¤­¤Ê¤¤¥ï¥¤¥Éʸ»ú¤Ë½Ð²ñ¤Ã¤¿¾ì¹ç¤Ë¤Ï +変換できないワイド文字に出会った場合には .I (size_t)\ \-1 -¤¬ÊÖ¤µ¤ì¡¢ \fIerrno\fP ¤Ë \fBEILSEQ\fP ¤¬ÀßÄꤵ¤ì¤ë¡£ +が返され、 \fIerrno\fP に \fBEILSEQ\fP が設定される。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2008. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR wcsnrtombs () .\"O depends on the @@ -183,13 +183,13 @@ POSIX.1-2008. .\"O category of the .\"O current locale. .BR wcsnrtombs () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .PP .\"O Passing NULL as \fIps\fP is not multithread safe. -\fIps\fP ¤Ë NULL ¤òÅϤ·¤¿ºÝ¤ÎÆ°ºî¤Ï¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤Ê¤¤¡£ +\fIps\fP に NULL を渡した際の動作はマルチスレッドセーフでない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR iconv (3), .BR wcsrtombs (3) diff --git a/draft/man3/wcspbrk.3 b/draft/man3/wcspbrk.3 index 600b9302..da1933c0 100644 --- a/draft/man3/wcspbrk.3 +++ b/draft/man3/wcspbrk.3 @@ -17,18 +17,18 @@ .\" .TH WCSPBRK 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcspbrk \- search a wide-character string for any of a set of wide characters -wcspbrk \- ¥ï¥¤¥Éʸ»úÎ󤫤顢Ϳ¤¨¤é¤ì¤¿¥ï¥¤¥Éʸ»ú½¸¹ç¤Ë´Þ¤Þ¤ì¤ëʸ»ú¤ò¸¡º÷¤¹¤ë +wcspbrk \- ワイド文字列から、与えられたワイド文字集合に含まれる文字を検索する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "wchar_t *wcspbrk(const wchar_t *" wcs ", const wchar_t *" accept ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wcspbrk () .\"O function is the wide-character equivalent @@ -40,13 +40,13 @@ wcspbrk \- .\"O characters in the wide-character .\"O string pointed to by \fIaccept\fP. .BR wcspbrk () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strpbrk (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwcs\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤Ë¤ª¤¤¤Æ¡¢\fIaccept\fP ¤¬ -¼¨¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤Î¤¤¤º¤ì¤«¤Îʸ»ú¤¬ºÇ½é¤Ë¸½¤ï¤ì¤ë°ÌÃÖ¤ò¸¡º÷¤¹¤ë¡£ +関数に対応するワイド文字関数である。 +この関数は、\fIwcs\fP が指すワイド文字文字列において、\fIaccept\fP が +示すワイド文字文字列のいずれかの文字が最初に現われる位置を検索する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR wcspbrk () .\"O function returns a pointer to the first occurrence in @@ -54,14 +54,14 @@ wcspbrk \- .\"O If \fIwcs\fP .\"O contains none of these characters, NULL is returned. .BR wcspbrk () -´Ø¿ô¤Ï¡¢\fIaccept\fP ¤ËÎóµó¤µ¤ì¤¿Ê¸»ú¤Î¤¤¤º¤ì¤«¤¬ -\fIwcs\fP Ãæ¤ËºÇ½é¤Ë¸½¤ï¤ì¤¿°ÌÃ֤ؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£¤³¤Î¤è¤¦¤Êʸ»ú¤¬ -\fIwcs\fP ¤Ë´Þ¤Þ¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢NULL ¤¬ÊÖ¤µ¤ì¤ë¡£ +関数は、\fIaccept\fP に列挙された文字のいずれかが +\fIwcs\fP 中に最初に現われた位置へのポインタを返す。このような文字が +\fIwcs\fP に含まれない場合は、NULL が返される。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strpbrk (3), .BR wcschr (3), .BR wcscspn (3) diff --git a/draft/man3/wcsrchr.3 b/draft/man3/wcsrchr.3 index 541d84f1..c25b80af 100644 --- a/draft/man3/wcsrchr.3 +++ b/draft/man3/wcsrchr.3 @@ -17,18 +17,18 @@ .\" .TH WCSRCHR 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcsrchr \- search a wide character in a wide-character string -wcsrchr \- ¥ï¥¤¥Éʸ»úÎóÃæ¤Î¥ï¥¤¥Éʸ»ú¤òõ¤¹ +wcsrchr \- ワイド文字列中のワイド文字を探す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "wchar_t *wcsrchr(const wchar_t *" wcs ", wchar_t " wc ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wcsrchr () .\"O function is the wide-character equivalent @@ -38,25 +38,25 @@ wcsrchr \- .\"O It searches the last occurrence of \fIwc\fP in the wide-character .\"O string pointed to by \fIwcs\fP. .BR wcsrchr () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strrchr (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwcs\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎóÃæ¤Ë \fIwc\fP ¤¬ºÇ¸å¤Ë¸½¤ï -¤ì¤ë°ÌÃÖ¤ò¸¡º÷¤¹¤ë¡£ +関数に対応するワイド文字関数である。 +この関数は、\fIwcs\fP が指すワイド文字文字列中に \fIwc\fP が最後に現わ +れる位置を検索する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR wcsrchr () .\"O function returns a pointer to the last occurrence of .\"O \fIwc\fP in the wide-character string pointed to by \fIwcs\fP, or NULL if .\"O \fIwc\fP does not occur in the string. -\fBwcsrchr\fP ´Ø¿ô¤Ï¡¢\fIwcs\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎóÃæ¤Ë \fIwc\fP ¤¬ -ºÇ¸å¤Ë¸½¤ï¤ì¤¿°ÌÃÖ¤òÊÖ¤¹¡£¤³¤Îʸ»úÎó¤Ë \fIwc\fP ¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð -NULL ¤òÊÖ¤¹¡£ +\fBwcsrchr\fP 関数は、\fIwcs\fP が指すワイド文字文字列中に \fIwc\fP が +最後に現われた位置を返す。この文字列に \fIwc\fP が含まれていなければ +NULL を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strrchr (3), .BR wcschr (3) diff --git a/draft/man3/wcsrtombs.3 b/draft/man3/wcsrtombs.3 index 57d2748d..6f7bd4c9 100644 --- a/draft/man3/wcsrtombs.3 +++ b/draft/man3/wcsrtombs.3 @@ -17,11 +17,11 @@ .\" .TH WCSRTOMBS 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcsrtombs \- convert a wide-character string to a multibyte string -wcsrtombs \- ¥ï¥¤¥Éʸ»úʸ»úÎó¤ò¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ËÊÑ´¹¤¹¤ë +wcsrtombs \- ワイド文字文字列をマルチバイト文字列に変換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -29,7 +29,7 @@ wcsrtombs \- .BI " size_t " len ", mbstate_t *" ps ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O If \fIdest\fP is not a NULL pointer, .\"O the .\"O .BR wcsrtombs () @@ -47,18 +47,18 @@ wcsrtombs \- .\"O number of bytes written and \fI*src\fP .\"O by one. .\"O The conversion can stop for three reasons: -\fIdest\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¡¢ +\fIdest\fP が NULL ポインタでなければ、 .BR wcsrtombs () -´Ø¿ô¤Ï -¥ï¥¤¥Éʸ»úʸ»úÎó \fI*src\fP ¤ò \fIdest\fP ¤¬»Ø¤¹¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó -¤ËÊÑ´¹¤¹¤ë¡£ºÇÂç \fIlen\fP ¥Ð¥¤¥È¤Þ¤Ç¤¬ \fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£ -¥·¥Õ¥È¾õÂÖ \fI*ps\fP ¤Ï¹¹¿·¤µ¤ì¤ë¡£¼ÂºÝ¤Î¸ú²Ì¤È¤·¤Æ¤Ï¡¢¤³¤ÎÊÑ´¹¤Ï°Ê²¼ -¤ÎÆ°ºî¤ÈƱ¤¸¤Ë¤Ê¤ë: +関数は +ワイド文字文字列 \fI*src\fP を \fIdest\fP が指すマルチバイト文字列 +に変換する。最大 \fIlen\fP バイトまでが \fIdest\fP に書き込まれる。 +シフト状態 \fI*ps\fP は更新される。実際の効果としては、この変換は以下 +の動作と同じになる: .IR "wcrtomb(dest, *src, ps)" -¤ò¸Æ¤Ó¡¢À®¸ù¤¬Ê֤俤顢 -\fIdest\fP ¤ò½ñ¤­¹þ¤ó¤À¥Ð¥¤¥È¿ô¤À¤±Áý¤ä¤·¡¢\fI*src\fP ¤ò 1 Áý¤ä¤¹¡£ -¤½¤·¤Æ¡¢wcrtomb ¤¬À®¸ù¤òÊÖ¤¹¸Â¤ê¤³¤ì¤ò·«¤êÊÖ¤¹¡£ -ÊÑ´¹¤¬»ß¤Þ¤ëÍýͳ¤Ï 3 ¤Ä¹Í¤¨¤é¤ì¤ë: +を呼び、成功が返ったら、 +\fIdest\fP を書き込んだバイト数だけ増やし、\fI*src\fP を 1 増やす。 +そして、wcrtomb が成功を返す限りこれを繰り返す。 +変換が止まる理由は 3 つ考えられる: .PP .\"O 1. A wide character has been encountered that can not be represented as a .\"O multibyte sequence (according to the current locale). @@ -69,21 +69,21 @@ wcsrtombs \- .\"O and .\"O .I errno .\"O is set to \fBEILSEQ\fP. -(¸½ºß¤Î¥í¥±¡¼¥ë¤Ë´ð¤Å¤¤¤Æ)¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤Çɽ¸½¤Ç¤­¤Ê¤¤¥ï¥¤¥Éʸ»ú¤Ë -½Ð²ñ¤Ã¤¿¾ì¹ç¡£¤³¤Î¾ì¹ç¤Ï¡¢\fI*src\fP ¤ÏÉÔÀµ¤Ê¥ï¥¤¥Éʸ»ú¤ò»Ø¤·¤¿¾õÂ֤ˤʤꡢ +(現在のロケールに基づいて)マルチバイト列で表現できないワイド文字に +出会った場合。この場合は、\fI*src\fP は不正なワイド文字を指した状態になり、 .I (size_t)\ \-1 -¤¬ÊÖ¤µ¤ì¡¢ +が返され、 .I errno -¤Ë \fBEILSEQ\fP ¤¬ÀßÄꤵ¤ì¤ë¡£ +に \fBEILSEQ\fP が設定される。 .PP .\"O 2. The length limit forces a stop. .\"O In this case \fI*src\fP is left pointing .\"O to the next wide character to be converted, .\"O and the number of bytes written to .\"O \fIdest\fP is returned. -2. Ťµ¤ÎÀ©¸Â¤Ë¤è¤êÊÑ´¹¤¬»ß¤á¤é¤ì¤¿¾ì¹ç¡£¤³¤Î¾ì¹ç¤Ë¤Ï¡¢\fI*src\fP ¤Ï¼¡¤Ë -ÊÑ´¹¤µ¤ì¤ë¤Ù¤­¥ï¥¤¥Éʸ»úÎó¤ò»Ø¤·¤¿¾õÂ֤ˤʤꡢ\fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì -¤¿¥Ð¥¤¥È¿ô¤¬ÊÖ¤µ¤ì¤ë¡£ +2. 長さの制限により変換が止められた場合。この場合には、\fI*src\fP は次に +変換されるべきワイド文字列を指した状態になり、\fIdest\fP に書き込まれ +たバイト数が返される。 .PP .\"O 3. The wide-character string has been completely converted, including the .\"O terminating null wide character (L\(aq\\0\(aq), @@ -91,31 +91,31 @@ wcsrtombs \- .\"O to the initial state. .\"O In this case \fI*src\fP is set to NULL, and the number .\"O of bytes written to \fIdest\fP, excluding the terminating null, is returned. -3. ¥ï¥¤¥Éʸ»úÎ󤬽ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤â´Þ¤á¤ÆÁ´¤Æ -ÊÑ´¹¤µ¤ì¤¿¾ì¹ç¡£¤³¤ÎºÝ¡¢\fI*ps\fP ¤¬½é´ü¾õÂÖ¤ËÌá¤ë¤È¤¤¤¦ÉûºîÍѤ¬¤¢¤ë¡£ -¤³¤Î¾ì¹ç¤Ë¤Ï \fI*src\fP ¤Ë NULL ¤¬ÀßÄꤵ¤ì¡¢\fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤¿ -¥Ð¥¤¥È¿ô¤¬ÊÖ¤µ¤ì¤ë (½ªÃ¼¤Î NULL ¤Ï¿ô¤¨¤Ê¤¤)¡£ +3. ワイド文字列が終端の NULL ワイド文字 (L\(aq\\0\(aq) も含めて全て +変換された場合。この際、\fI*ps\fP が初期状態に戻るという副作用がある。 +この場合には \fI*src\fP に NULL が設定され、\fIdest\fP に書き込まれた +バイト数が返される (終端の NULL は数えない)。 .PP .\"O If \fIdest\fP is NULL, \fIlen\fP is ignored, .\"O and the conversion proceeds as above, except that the converted bytes .\"O are not written out to memory, and that .\"O no length limit exists. -\fIdest\fP ¤¬ NULL ¤Ê¤é¤Ð \fIlen\fP ¤Ï̵»ë¤µ¤ì¤ÆÁ°½Ò¤Î¤è¤¦¤ËÊÑ´¹¤¬¹Ô¤ï -¤ì¤ë¤¬¡¢ÊÑ´¹¤µ¤ì¤¿¥Ð¥¤¥È¥Ç¡¼¥¿¤Ï¥á¥â¥ê¤Ë½ñ¤­½Ð¤µ¤ì¤Ê¤¤ÅÀ¤È¡¢½ÐÎÏÀè¤ÎĹ -¤µ¤ÎÀ©¸Â¤¬¤Ê¤¤ÅÀ¤¬°Û¤Ê¤ë¡£ +\fIdest\fP が NULL ならば \fIlen\fP は無視されて前述のように変換が行わ +れるが、変換されたバイトデータはメモリに書き出されない点と、出力先の長 +さの制限がない点が異なる。 .PP .\"O In both of the above cases, .\"O if \fIps\fP is a NULL pointer, a static anonymous .\"O state only known to the wcsrtombs function is used instead. -¾åµ­¤Î¤¤¤º¤ì¤Î¾ì¹ç¤â¡¢\fIps\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¤Ê¤é¤Ð¡¢wcsnrtombs ´Ø¿ô -¤À¤±¤¬ÃΤäƤ¤¤ëÀÅŪ¤Êƿ̾¤Î¾õÂÖ¤¬¥·¥Õ¥È¾õÂÖ¤ÎÂå¤ï¤ê¤ËÍѤ¤¤é¤ì¤ë¡£ +上記のいずれの場合も、\fIps\fP が NULL ポインタならば、wcsnrtombs 関数 +だけが知っている静的な匿名の状態がシフト状態の代わりに用いられる。 .PP .\"O The programmer must ensure that there is room for at least \fIlen\fP bytes .\"O at \fIdest\fP. -¥×¥í¥°¥é¥Þ¤Ï¾¯¤Ê¤¯¤È¤â \fIlen\fP ¥Ð¥¤¥È¤ÎÎΰè¤ò \fIdest\fP ¤Ë³ÎÊݤ·¤Ê -¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +プログラマは少なくとも \fIlen\fP バイトの領域を \fIdest\fP に確保しな +ければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR wcsrtombs () .\"O function returns @@ -123,21 +123,21 @@ wcsrtombs \- .\"O converted part of multibyte sequence, .\"O not including the terminating null byte. .BR wcsrtombs () -¤Ï¡¢ÊÑ´¹¤·¤ÆÆÀ¤é¤ì¤¿¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤Î¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -¤³¤ì¤Ë¤Ï½ªÃ¼¤Î null ¥Ð¥¤¥È¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ +は、変換して得られたマルチバイト列のバイト数を返す。 +これには終端の null バイトは含まれない。 .\"O If a wide character was encountered .\"O which could not be converted, .\"O .I (size_t)\ \-1 .\"O is returned, and .\"O .I errno .\"O set to \fBEILSEQ\fP. -ÊÑ´¹¤Ç¤­¤Ê¤¤¥ï¥¤¥Éʸ»ú¤Ë½Ð²ñ¤Ã¤¿¾ì¹ç¤Ë¤Ï +変換できないワイド文字に出会った場合には .I (size_t)\ \-1 -¤¬ÊÖ¤µ¤ì¡¢ +が返され、 .I errno -¤Ë \fBEILSEQ\fP ¤¬ÀßÄꤵ¤ì¤ë¡£ +に \fBEILSEQ\fP が設定される。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES .\"O The behavior of @@ -147,14 +147,14 @@ C99. .\"O category of the .\"O current locale. .BR wcsrtombs () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .PP .\"O Passing NULL as \fIps\fP is not multithread safe. -\fIps\fP ¤Ë NULL ¤òÅϤ·¤¿ºÝ¤ÎÆ°ºî¤Ï¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤Ê¤¤¡£ +\fIps\fP に NULL を渡した際の動作はマルチスレッドセーフでない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR iconv (3), .BR wcsnrtombs (3), .BR wcstombs (3) diff --git a/draft/man3/wcsspn.3 b/draft/man3/wcsspn.3 index 97a9ec47..cbe5a66a 100644 --- a/draft/man3/wcsspn.3 +++ b/draft/man3/wcsspn.3 @@ -17,19 +17,19 @@ .\" .TH WCSSPN 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcsspn \- advance in a wide-character string, skipping .\"O any of a set of wide characters -wcsspn \- ¥ï¥¤¥Éʸ»úʸ»úÎó¤ò¿Ê¤ß¡¢¥ï¥¤¥Éʸ»ú¤Î½¸¹ç¤Îʸ»ú¤ò¥¹¥­¥Ã¥×¤¹¤ë +wcsspn \- ワイド文字文字列を進み、ワイド文字の集合の文字をスキップする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "size_t wcsspn(const wchar_t *" wcs ", const wchar_t *" accept ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wcsspn () .\"O function is the wide-character equivalent of the @@ -42,15 +42,15 @@ wcsspn \- .\"O \fIwcs\fP of a wide-character not contained in the wide-character string .\"O \fIaccept\fP. .BR wcsspn () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strspn (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwcs\fP ¤ÎÀèƬÉôʬ¤òÄ´¤Ù¡¢\fIaccept\fP ¤ËÎóµó¤µ¤ì¤Æ¤¤¤ë -¥ï¥¤¥Éʸ»ú¤À¤±¤Ë¤è¤Ã¤Æ¹½À®¤µ¤ì¤ëÉôʬ¤òºÇ¤âŤ¯¼è¤Ã¤¿¾ì¹ç¤ÎŤµ¤òµá¤á¤ë¡£ -¸À¤¤´¹¤¨¤ë¤È¡¢¤³¤Î´Ø¿ô¤Ï¥ï¥¤¥Éʸ»úʸ»úÎó \fIwcs\fP ¤ÎÃæ¤Ë¡¢¥ï¥¤¥Éʸ»úÎó -\fIaccept\fP ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤Ê¸»ú¤¬¸½¤ï¤ì¤ëºÇ½é¤Î°ÌÃÖ¤òõ¤¹¡£ +関数に対応するワイド文字関数である。 +この関数は、\fIwcs\fP の先頭部分を調べ、\fIaccept\fP に列挙されている +ワイド文字だけによって構成される部分を最も長く取った場合の長さを求める。 +言い換えると、この関数はワイド文字文字列 \fIwcs\fP の中に、ワイド文字列 +\fIaccept\fP に含まれていない文字が現われる最初の位置を探す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR wcsspn () .\"O function returns the number of @@ -62,16 +62,16 @@ wcsspn \- .\"O contained in the wide-character string \fIaccept\fP, or \fIwcslen(wcs)\fP .\"O if there is none. .BR wcsspn () -´Ø¿ô¤Ï¡¢\fIwcs\fP ¤ÎÀèƬÉôʬ¤òÄ´¤Ù¡¢\fIaccept\fP ¤ËÎóµó¤µ -¤ì¤Æ¤¤¤ë¥ï¥¤¥Éʸ»ú¤À¤±¤Ë¤è¤Ã¤Æ¹½À®¤µ¤ì¤ëÉôʬ¤òºÇ¤âŤ¯¼è¤Ã¤¿¾ì¹ç¤ÎŤµ -¤òÊÖ¤¹¡£ -¸À¤¤´¹¤¨¤ë¤È¡¢¤³¤Î´Ø¿ô¤Ï¥ï¥¤¥Éʸ»úʸ»úÎó \fIwcs\fP ¤ÎÃæ¤Ë¡¢¥ï¥¤¥Éʸ»úÎó -\fIaccept\fP ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤Ê¸»ú¤¬¸½¤ï¤ì¤ëºÇ½é¤Î°ÌÃÖ¤òÊÖ¤¹¡£ -²¿¤â¸½¤ï¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï \fIwcslen(wcs)\fP ¤òÊÖ¤¹¡£ +関数は、\fIwcs\fP の先頭部分を調べ、\fIaccept\fP に列挙さ +れているワイド文字だけによって構成される部分を最も長く取った場合の長さ +を返す。 +言い換えると、この関数はワイド文字文字列 \fIwcs\fP の中に、ワイド文字列 +\fIaccept\fP に含まれていない文字が現われる最初の位置を返す。 +何も現われなかった場合には \fIwcslen(wcs)\fP を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strspn (3), .BR wcscspn (3) diff --git a/draft/man3/wcsstr.3 b/draft/man3/wcsstr.3 index 7d6aa32a..22a7f188 100644 --- a/draft/man3/wcsstr.3 +++ b/draft/man3/wcsstr.3 @@ -17,18 +17,18 @@ .\" .TH WCSSTR 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcsstr \- locate a substring in a wide-character string -wcsstr \- ¥ï¥¤¥Éʸ»úʸ»úÎóÃæ¤ÎÉôʬʸ»úÎó¤Î°ÌÃÖ¤òÆÃÄꤹ¤ë +wcsstr \- ワイド文字文字列中の部分文字列の位置を特定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "wchar_t *wcsstr(const wchar_t *" haystack ", const wchar_t *" needle ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wcsstr () .\"O function is the wide-character equivalent of the @@ -38,14 +38,14 @@ wcsstr \- .\"O \fIneedle\fP (without its terminating null wide character (L\(aq\\0\(aq)) .\"O as a substring in the wide-character string \fIhaystack\fP. .BR wcsstr () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strstr (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»úʸ»úÎó¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¥ï¥¤¥Éʸ»úʸ»úÎó \fIneedle\fP (½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú -(L\(aq\\0\(aq) ¤Ï´Þ¤Þ¤Ê¤¤) ¤¬¡¢¥ï¥¤¥Éʸ»úʸ»úÎó \fIhaystack\fP ¤ÎÉôʬʸ»úÎó -¤È¤·¤ÆºÇ½é¤Ë¸½¤ï¤ì¤ë°ÌÃÖ¤òõ¤¹¡£ +関数に対応するワイド文字文字列である。 +この関数はワイド文字文字列 \fIneedle\fP (終端の NULL ワイド文字 +(L\(aq\\0\(aq) は含まない) が、ワイド文字文字列 \fIhaystack\fP の部分文字列 +として最初に現われる位置を探す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR wcsstr () .\"O function returns a pointer to the first occurrence of @@ -53,19 +53,19 @@ wcsstr \- .\"O It returns NULL if \fIneedle\fP does not occur .\"O as a substring in \fIhaystack\fP. .BR wcsstr () -´Ø¿ô¤Ï¡¢\fIhaystack\fP Ãæ¤Ë \fIneedle\fP ¤¬¸½¤ï¤ì¤¿ºÇ½é¤Î -°ÌÃÖ¤òÊÖ¤¹¡£\fIneedle\fP ¤¬ \fIhaystack\fP ¤ÎÉôʬʸ»úÎó¤Ç¤Ê¤±¤ì¤Ð -NULL ¤òÊÖ¤¹¡£ +関数は、\fIhaystack\fP 中に \fIneedle\fP が現われた最初の +位置を返す。\fIneedle\fP が \fIhaystack\fP の部分文字列でなければ +NULL を返す。 .PP .\"O Note the special case: .\"O If \fIneedle\fP is the empty wide-character string, .\"O the return value is always \fIhaystack\fP itself. -°Ê²¼¤ÎÆüì¤Ê¾ì¹ç¤ËÃí°Õ¤¹¤ë¤³¤È: \fIneedle\fP ¤¬¶õ¤Î¥ï¥¤¥Éʸ»úʸ»úÎó¤Ê -¤é¤Ð¡¢ÊÖ¤êÃͤϾï¤Ë \fIhaystack\fP ¼«¿È¤È¤Ê¤ë¡£ +以下の特殊な場合に注意すること: \fIneedle\fP が空のワイド文字文字列な +らば、返り値は常に \fIhaystack\fP 自身となる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strstr (3), .BR wcschr (3) diff --git a/draft/man3/wcstoimax.3 b/draft/man3/wcstoimax.3 index 64172dbf..107c8ea0 100644 --- a/draft/man3/wcstoimax.3 +++ b/draft/man3/wcstoimax.3 @@ -27,11 +27,11 @@ .\" .TH WCSTOIMAX 3 2003-11-01 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcstoimax, wcstoumax \- convert wide-character string to integer -wcstoimax, wcstoumax \- ¥ï¥¤¥Éʸ»úʸ»úÎó¤òÀ°¿ô¤ËÊÑ´¹¤¹¤ë +wcstoimax, wcstoumax \- ワイド文字文字列を整数に変換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .br @@ -44,7 +44,7 @@ wcstoimax, wcstoumax \- ", int " base ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O These functions are just like .\"O .BR wcstol (3) .\"O and @@ -54,20 +54,20 @@ wcstoimax, wcstoumax \- .\"O and .\"O .IR uintmax_t , .\"O respectively. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¤Á¤ç¤¦¤É +これらの関数はちょうど .BR wcstol (3) -¤È +と .BR wcstoul (3) -¤Ë»÷¤Æ¤¤¤ë¤¬¡¢¤½¤ì¤¾¤ì +に似ているが、それぞれ .I intmax_t -¤È +と .I uintmax_t -·¿¤ÎÃͤòÊÖ¤¹¡£ +型の値を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR imaxabs (3), .BR imaxdiv (3), .BR strtoimax (3), diff --git a/draft/man3/wcstok.3 b/draft/man3/wcstok.3 index 42632a01..13dcd511 100644 --- a/draft/man3/wcstok.3 +++ b/draft/man3/wcstok.3 @@ -17,11 +17,11 @@ .\" .TH WCSTOK 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcstok \- split wide-character string into tokens -wcstok \- ¥ï¥¤¥Éʸ»úʸ»úÎó¤ò¥È¡¼¥¯¥ó¤Ëʬ³ä¤¹¤ë +wcstok \- ワイド文字文字列をトークンに分割する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -29,7 +29,7 @@ wcstok \- ", wchar_t **" ptr ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wcstok () .\"O function is the wide-character equivalent of the @@ -39,22 +39,22 @@ wcstok \- .\"O to split a wide-character string \fIwcs\fP into tokens, where a token is .\"O defined as a substring not containing any wide-characters from \fIdelim\fP. .BR wcstok () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strtok (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ë¡¢ -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤ÎÆ°ºî¤ò¤µ¤»¤ë¤¿¤á¤Î°ú¤­¿ô¤òÄɲä·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤òÍѤ¤¤Æ¡¢¥ï¥¤¥Éʸ»úʸ»úÎó \fIwcs\fP ¤ò¥È¡¼¥¯¥ó¤Ëʬ²ò¤¹¤ë¤³¤È -¤¬¤Ç¤­¤ë¡£¤³¤³¤Ç¡¢¥È¡¼¥¯¥ó¤Ï \fIdelim\fP ¤ËÎóµó¤µ¤ì¤Æ¤¤¤ëʸ»ú¤ò´Þ¤Þ¤Ê -¤¤Éôʬʸ»úÎó¤È¤·¤ÆÄêµÁ¤µ¤ì¤ë¡£ +関数に対応するワイド文字関数に、 +マルチスレッドセーフの動作をさせるための引き数を追加したものである。 +この関数を用いて、ワイド文字文字列 \fIwcs\fP をトークンに分解すること +ができる。ここで、トークンは \fIdelim\fP に列挙されている文字を含まな +い部分文字列として定義される。 .PP .\"O The search starts at \fIwcs\fP, if \fIwcs\fP is not NULL, .\"O or at \fI*ptr\fP, if \fIwcs\fP is NULL. .\"O First, any delimiter wide-characters are skipped, that is, the .\"O pointer is advanced beyond any wide-characters which occur in \fIdelim\fP. -¸¡º÷¤Ï \fIwcs\fP ¤¬ NULL ¤Ç¤Ê¤±¤ì¤Ð \fIwcs\fP ¤«¤é³«»Ï¤µ¤ì¡¢\fIwcs\fP -¤¬ NULL ¤Ê¤é¤Ð \fI*ptr\fP ¤«¤é³«»Ï¤µ¤ì¤ë¡£¤Þ¤º¡¢Á´¤Æ¤Î¶èÀÚ¤ê¥ï¥¤¥Éʸ»ú -¤¬¥¹¥­¥Ã¥×¤µ¤ì¤ë¡£¤Ä¤Þ¤ê¡¢\fIdelim\fP ¤Ë´Þ¤Þ¤ì¤ë¥ï¥¤¥Éʸ»ú¤òĶ¤¨¤ë¤è¤¦ -¤Ë¥Ý¥¤¥ó¥¿¤¬Á°¤Ë¿Ê¤á¤é¤ì¤ë¡£ +検索は \fIwcs\fP が NULL でなければ \fIwcs\fP から開始され、\fIwcs\fP +が NULL ならば \fI*ptr\fP から開始される。まず、全ての区切りワイド文字 +がスキップされる。つまり、\fIdelim\fP に含まれるワイド文字を超えるよう +にポインタが前に進められる。 .\"O If the end of the wide-character string is now reached, .\"O .BR wcstok () .\"O returns NULL, to indicate that no tokens @@ -70,45 +70,45 @@ wcstok \- .\"O a null wide character (L\(aq\\0\(aq), .\"O and it updates \fI*ptr\fP so that subsequent calls will .\"O continue searching after the end of recognized token. -¥ï¥¤¥Éʸ»úʸ»úÎó¤Î½ª¤ï¤ê¤Ë㤷¤¿¤é¡¢ +ワイド文字文字列の終わりに達したら、 .BR wcstok () -¤Ï NULL ¤òÊÖ¤·¤Æ -¥È¡¼¥¯¥ó¤¬Á´¤¯¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¤³¤È¤ò¼¨¤·¡¢¤³¤Î¸å¤Ë +は NULL を返して +トークンが全く見つからなかったことを示し、この後に .BR wcstok () -¤ò¸Æ¤Ó -½Ð¤·¤Æ¤â NULL ¤¬ÊÖ¤µ¤ì¤ë¤è¤¦¤Ë \fI*ptr\fP ¤ËŬÀÚ¤ÊÃͤòÀßÄꤹ¤ë¡£¤½¤ì -°Ê³°¤Î¾ì¹ç¤Ë¤Ï¡¢ +を呼び +出しても NULL が返されるように \fI*ptr\fP に適切な値を設定する。それ +以外の場合には、 .BR wcstok () -´Ø¿ô¤Ï¥È¡¼¥¯¥ó¤ÎÀèƬ¤ò¼±Ê̤·¡¢¤³¤ì¤ò»Ø¤¹ -¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£¤¿¤À¤·¤³¤ì¤ò¹Ô¤¦Á°¤Ë¡¢¥È¡¼¥¯¥ó¤Î¸å¤Ë¤¢¤ë¡¢\fIdelim\fP -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ëʸ»ú¤ò NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤ËÃÖ¤­´¹¤¨¤ë¤³¤È -¤Ë¤è¤Ã¤Æ¥È¡¼¥¯¥ó¤ò 0 ¤Ç½ªÃ¼¤µ¤»¤ë¡£¤µ¤é¤Ë \fI*ptr\fP ¤ò¹¹¿·¤·¡¢¸å¤Ç +関数はトークンの先頭を識別し、これを指す +ポインタを返す。ただしこれを行う前に、トークンの後にある、\fIdelim\fP +に含まれている文字を NULL ワイド文字 (L\(aq\\0\(aq) に置き換えること +によってトークンを 0 で終端させる。さらに \fI*ptr\fP を更新し、後で .BR wcstok () -¤ò¸Æ¤Ó½Ð¤·¤¿ -ºÝ¤Ë¡¢¼±Ê̤µ¤ì¤¿¥È¡¼¥¯¥ó¤Î³¤­¤«¤é¸¡º÷¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ +を呼び出した +際に、識別されたトークンの続きから検索できるようにする。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR wcstok () .\"O function returns a pointer to the next token, .\"O or NULL if no further token was found. .BR wcstok () -´Ø¿ô¤Ï¼¡¤Î¥È¡¼¥¯¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£¥È¡¼¥¯¥ó¤¬¸«¤Ä¤«¤é -¤Ê¤±¤ì¤Ð NULL ¤òÊÖ¤¹¡£ +関数は次のトークンへのポインタを返す。トークンが見つから +なければ NULL を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The original \fIwcs\fP wide-character string is destructively modified during .\"O the operation. -´Ø¿ô¤ËÍ¿¤¨¤¿¥ï¥¤¥Éʸ»úÎó \fIwcs\fP ¤Ï¡¢´Ø¿ô¤ÎÆ°ºî¤Ë¤è¤Ã¤Æ´°Á´¤Ë½ñ¤­´¹ -¤¨¤é¤ì¤ë¡£ +関数に与えたワイド文字列 \fIwcs\fP は、関数の動作によって完全に書き換 +えられる。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The following code loops over the tokens contained in a wide-character string. -°Ê²¼¤Î¥³¡¼¥É¤Ï¡¢¥ï¥¤¥Éʸ»úʸ»úÎó¤Ë´Þ¤Þ¤ì¤ë¥È¡¼¥¯¥ó¤ò¼è¤ê½Ð¤·¤Ê¤¬¤é -¥ë¡¼¥×¤¹¤ë¡£ +以下のコードは、ワイド文字文字列に含まれるトークンを取り出しながら +ループする。 .sp .nf wchar_t *wcs = ...; @@ -121,6 +121,6 @@ for (token = wcstok(wcs, " \\t\\n", &state); } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strtok (3), .BR wcschr (3) diff --git a/draft/man3/wcstombs.3 b/draft/man3/wcstombs.3 index d6adaf93..d4e55770 100644 --- a/draft/man3/wcstombs.3 +++ b/draft/man3/wcstombs.3 @@ -18,18 +18,18 @@ .\" .TH WCSTOMBS 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcstombs \- convert a wide-character string to a multibyte string -wcstombs \- ¥ï¥¤¥Éʸ»úÎó¤ò¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ËÊÑ´¹¤¹¤ë +wcstombs \- ワイド文字列をマルチバイト文字列に変換する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "size_t wcstombs(char *" dest ", const wchar_t *" src ", size_t " n ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O If \fIdest\fP is not a NULL pointer, the .\"O .BR wcstombs () .\"O function converts @@ -39,56 +39,56 @@ wcstombs \- .\"O The conversion .\"O starts in the initial state. .\"O The conversion can stop for three reasons: -\fIdest\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¤Ç¤Ê¤¤¾ì¹ç¡¢ +\fIdest\fP が NULL ポインタでない場合、 .BR wcstombs () -´Ø¿ô¤Ï -¥ï¥¤¥Éʸ»úÎó \fIsrc\fP ¤ò \fIdest\fP ¤«¤é»Ï¤Þ¤ë¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤Ë -ÊÑ´¹¤¹¤ë¡£\fIdest\fP ¤Ë¤ÏºÇÂç¤Ç \fIn\fP ¥Ð¥¤¥È¤¬½ñ¤­¹þ¤Þ¤ì¤ë¡£ -ÊÑ´¹¤Ï½é´ü¾õÂ֤dz«»Ï¤µ¤ì¤ë¡£ÊÑ´¹¤Ï°Ê²¼¤Î3¤Ä¤ÎÍýͳ¤Ë¤è¤êÄä»ß¤¹¤ë¡£ +関数は +ワイド文字列 \fIsrc\fP を \fIdest\fP から始まるマルチバイト文字列に +変換する。\fIdest\fP には最大で \fIn\fP バイトが書き込まれる。 +変換は初期状態で開始される。変換は以下の3つの理由により停止する。 .PP .\"O 1. A wide character has been encountered that can not be represented as a .\"O multibyte sequence (according to the current locale). .\"O In this case .\"O .I (size_t)\ \-1 .\"O is returned. -1. (¸½ºß¤Î¥í¥±¡¼¥ë¤Ë¤ª¤±¤ë)¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤Çɽ¸½¤Ç¤­¤Ê¤¤¥ï¥¤¥Éʸ»ú¤Ë -Áø¶ø¤·¤¿¾ì¹ç¡£¤³¤Î¾ì¹ç¤Ë¤Ï +1. (現在のロケールにおける)マルチバイト列で表現できないワイド文字に +遭遇した場合。この場合には .I (size_t)\ \-1 -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .PP .\"O 2. The length limit forces a stop. .\"O In this case the number of bytes written to .\"O \fIdest\fP is returned, but the shift state at this point is lost. -2. ŤµÀ©¸Â¤Ë¤è¤Ã¤Æ¶¯À©Ää»ß¤µ¤»¤é¤ì¤¿¾ì¹ç¡£¤³¤Î¾ì¹ç¤Ë¤Ï \fIdest\fP ¤Ë -½ñ¤­¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¿ô¤¬ÊÖ¤µ¤ì¤ë¡£¤·¤«¤·¤³¤Î»þÅÀ¤Ç¤Î¥·¥Õ¥È¾õÂ֤ϼº¤ï¤ì¤ë¡£ +2. 長さ制限によって強制停止させられた場合。この場合には \fIdest\fP に +書き込まれたバイト数が返される。しかしこの時点でのシフト状態は失われる。 .PP .\"O 3. The wide-character string has been completely converted, including the .\"O terminating null wide character (L\(aq\\0\(aq). .\"O In this case the conversion ends in the initial state. .\"O The number of bytes written to \fIdest\fP, .\"O excluding the terminating null, is returned. -3. ¥ï¥¤¥Éʸ»úÎ󤬽ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤ò´Þ¤á¤Æ -´°Á´¤ËÊÑ´¹¤µ¤ì¤¿¾ì¹ç¡£¤³¤Î¾ì¹ç¤Ë¤ÏÊÑ´¹¤Ï½é´ü¾õÂ֤ǽª¤ê¡¢ -\fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¿ô (½ªÃ¼¤Î NULL ¤Ï´Þ¤Þ¤ì¤Ê¤¤) ¤òÊÖ¤¹¡£ +3. ワイド文字列が終端の NULL ワイド文字 (L\(aq\\0\(aq) を含めて +完全に変換された場合。この場合には変換は初期状態で終り、 +\fIdest\fP に書き込まれたバイト数 (終端の NULL は含まれない) を返す。 .PP .\"O The programmer must ensure that there is room for at least \fIn\fP bytes .\"O at \fIdest\fP. -¥×¥í¥°¥é¥Þ¡¼¤Ï \fIdest\fP ¤ËºÇÄã¤Ç¤â \fIn\fP ¥Ð¥¤¥È¤Î¶õ¤­¤¬¤¢¤ë¤³¤È¤ò -Êݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +プログラマーは \fIdest\fP に最低でも \fIn\fP バイトの空きがあることを +保証しなければならない。 .PP .\"O If \fIdest\fP is NULL, \fIn\fP is ignored, and the conversion proceeds as .\"O above, except that the converted bytes are not written out to memory, .\"O and that no length limit exists. -\fIdest\fP ¤¬ NULL ¤Î¾ì¹ç¡¢\fIn\fP ¤Ï̵»ë¤µ¤ì¤ë¡£¾åµ­¤ÈƱÍͤËÊÑ´¹¤¬¹Ô -¤Ê¤ï¤ì¤ë¤¬ÊÑ´¹·ë²Ì¤Î¥Ð¥¤¥ÈÎó¤Ï¥á¥â¥ê¤Ë¤Ï½ñ¤­¹þ¤Þ¤ì¤Ê¤¤¡£ -¤Þ¤¿Ä¹¤µ¤Î¾å¸Â¤¬Â¸ºß¤·¤Ê¤¤¡£ +\fIdest\fP が NULL の場合、\fIn\fP は無視される。上記と同様に変換が行 +なわれるが変換結果のバイト列はメモリには書き込まれない。 +また長さの上限が存在しない。 .PP .\"O In order to avoid the case 2 above, the programmer should make sure \fIn\fP .\"O is greater or equal to \fIwcstombs(NULL,src,0)+1\fP. -¾åµ­¤Î 2. ¤Î¾ì¹ç¤òÈò¤±¤ë¤¿¤á¤Ë¡¢¥×¥í¥°¥é¥Þ¡¼¤Ï \fIn\fP ¤¬ -\fIwcstombs(NULL,src,0)+1\fP °Ê¾å¤Ç¤¢¤ë¤³¤È¤òÊݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +上記の 2. の場合を避けるために、プログラマーは \fIn\fP が +\fIwcstombs(NULL,src,0)+1\fP 以上であることを保証しなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR wcstombs () .\"O function returns the number of bytes that make up the @@ -98,15 +98,15 @@ wcstombs \- .\"O .I (size_t)\ \-1 .\"O is returned. .BR wcstombs () -´Ø¿ô¤ÏÀ¸À®¤·¤¿¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤Î¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£½ªÃ¼¤Î -¥Ê¥ëʸ»ú¤Ï´Þ¤Þ¤Ê¤¤¡£¤â¤·ÊÑ´¹¤Ç¤­¤Ê¤¤¥ï¥¤¥Éʸ»ú¤ËÁø¶ø¤·¤¿¾ì¹ç¤Ë¤Ï +関数は生成したマルチバイト列のバイト数を返す。終端の +ナル文字は含まない。もし変換できないワイド文字に遭遇した場合には .I (size_t)\ \-1 -¤òÊÖ¤¹¡£ +を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR wcstombs () .\"O depends on the @@ -114,18 +114,18 @@ C99. .\"O category of the .\"O current locale. .BR wcstombs () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ +カテゴリに依存している。 .PP .\"O The function .\"O .BR wcsrtombs () .\"O provides a thread safe interface to .\"O the same functionality. .BR wcsrtombs () -´Ø¿ô¤ÏƱ¤¸µ¡Ç½¤Î¤¿¤á¤Î¥¹¥ì¥Ã¥É¡¦¥»¡¼¥Õ¤Ê -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÄ󶡤¹¤ë¡£ +関数は同じ機能のためのスレッド・セーフな +インターフェースを提供する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mbstowcs (3), .BR wcsrtombs (3) diff --git a/draft/man3/wcswidth.3 b/draft/man3/wcswidth.3 index 8cc55aac..6ef67596 100644 --- a/draft/man3/wcswidth.3 +++ b/draft/man3/wcswidth.3 @@ -16,20 +16,20 @@ .\" .TH WCSWIDTH 3 2010-09-10 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcswidth \- determine columns needed for a fixed-size wide-character string -wcswidth \- ¸ÇÄꥵ¥¤¥º¤Î¥ï¥¤¥Éʸ»úʸ»úÎó¤Îɽ¼¨¤ËɬÍפʥ«¥é¥à¿ô¤òµá¤á¤ë +wcswidth \- 固定サイズのワイド文字文字列の表示に必要なカラム数を求める .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\"O .BR "#define _XOPEN_SOURCE" " /* See feature_test_macros(7) */" -.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "int wcswidth(const wchar_t *" s ", size_t " n ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wcswidth () .\"O function returns the @@ -39,24 +39,24 @@ wcswidth \- .\"O If a nonprintable wide character occurs among these characters, .\"O \-1 is returned. .BR wcswidth () -´Ø¿ô¤Ï¡¢\fIs\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤òɽ¸½¤¹¤ë¤¿¤á¤Ë -ɬÍפʥ«¥é¥à¿ô¤òÊÖ¤¹¡£¤¿¤À¤·¡¢ºÇÂç \fIn\fP ʸ»ú¤·¤«½èÍý¤·¤Ê¤¤¡£ -°õºþ²Äǽ¤Ç¤Ê¤¤¥ï¥¤¥Éʸ»ú¤¬Ê¸»úÎó¤Ë´Þ¤Þ¤ì¤ë¾ì¹ç¤Ë¤Ï¡¢ \-1 ¤¬ÊÖ¤µ¤ì¤ë¡£ +関数は、\fIs\fP が指すワイド文字文字列を表現するために +必要なカラム数を返す。ただし、最大 \fIn\fP 文字しか処理しない。 +印刷可能でないワイド文字が文字列に含まれる場合には、 \-1 が返される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR wcswidth () .\"O function .\"O returns the number of column positions for the .\"O wide-character string \fIs\fP, truncated to at most length \fIn\fP. .BR wcswidth () -´Ø¿ô¤Ï¡¢¥ï¥¤¥Éʸ»úʸ»úÎó \fIs\fP ¤Îɽ¸½¤ËɬÍפʥ«¥é¥à¿ô -¤òÊÖ¤¹¡£¤¿¤À¤·¥ï¥¤¥Éʸ»úʸ»úÎó¤ÏºÇÂç \fIn\fP ¸Ä¤ËÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ +関数は、ワイド文字文字列 \fIs\fP の表現に必要なカラム数 +を返す。ただしワイド文字文字列は最大 \fIn\fP 個に切り詰められる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR wcswidth () .\"O depends on the @@ -64,10 +64,10 @@ POSIX.1-2001. .\"O category of the .\"O current locale. .BR wcswidth () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR iswprint (3), .BR wcwidth (3) diff --git a/draft/man3/wctob.3 b/draft/man3/wctob.3 index 38a6f829..9c07ba4c 100644 --- a/draft/man3/wctob.3 +++ b/draft/man3/wctob.3 @@ -17,18 +17,18 @@ .\" .TH WCTOB 3 2011-09-22 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wctob \- try to represent a wide character as a single byte -wctob \- ¥ï¥¤¥Éʸ»ú¤Î¥·¥ó¥°¥ë¥Ð¥¤¥Èɽ¸½¤ò»î¤ß¤ë +wctob \- ワイド文字のシングルバイト表現を試みる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int wctob(wint_t " c ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wctob () .\"O function tests whether @@ -38,34 +38,34 @@ wctob \- .\"O If so, it is returned as an .\"O .IR "unsigned char" . .BR wctob () -´Ø¿ô¤Ï¡¢¥ï¥¤¥Éʸ»ú \fIc\fP ¤Î¥Þ¥ë¥Á¥Ð¥¤¥Èɽ¸½(½é´ü¾õÂ֤dz« -»Ï)¤¬¥·¥ó¥°¥ë¥Ð¥¤¥Èʸ»ú¤À¤±¤Ç¤Ç¤­¤Æ¤¤¤ë¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£¤â¤·¤½¤¦¤Ç¤¢ -¤ì¤Ð¡¢¤³¤ì¤ò +関数は、ワイド文字 \fIc\fP のマルチバイト表現(初期状態で開 +始)がシングルバイト文字だけでできているかどうかを調べる。もしそうであ +れば、これを .I "unsigned char" -·¿¤È¤·¤ÆÊÖ¤¹¡£ +型として返す。 .PP .\"O Never use this function. .\"O It cannot help you in writing internationalized .\"O programs. .\"O Internationalized programs must never distinguish single-byte and .\"O multibyte characters. -¤³¤Î´Ø¿ô¤Ï·è¤·¤Æ»È¤ï¤Ê¤¤¤³¤È¡£¤³¤Î´Ø¿ô¤Ï¹ñºÝ²½¥×¥í¥°¥é¥à¤ò½ñ¤¯¾å¤Ç¤ÏÌò -¤ËΩ¤¿¤Ê¤¤¡£¹ñºÝ²½¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¥·¥ó¥°¥ë¥Ð¥¤¥Èʸ»ú¤È¥Þ¥ë¥Á¥Ð¥¤¥È -ʸ»ú¤ò¶èÊ̤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +この関数は決して使わないこと。この関数は国際化プログラムを書く上では役 +に立たない。国際化されたプログラムでは、シングルバイト文字とマルチバイト +文字を区別してはならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR wctob () .\"O function returns the single-byte representation of \fIc\fP, .\"O if it exists, of \fBEOF\fP otherwise. .BR wctob () -´Ø¿ô¤Ï \fIc\fP ¤Î¥·¥ó¥°¥ë¥Ð¥¤¥Èɽ¸½¤¬Â¸ºß¤¹¤ì¤Ð¡¢¤½¤Îɽ¸½ -¤òÊÖ¤¹¡£Â¸ºß¤·¤Ê¤±¤ì¤Ð \fBEOF\fP ¤òÊÖ¤¹¡£ +関数は \fIc\fP のシングルバイト表現が存在すれば、その表現 +を返す。存在しなければ \fBEOF\fP を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR wctob () .\"O depends on the @@ -73,9 +73,9 @@ C99. .\"O category of the .\"O current locale. .BR wctob () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .PP .\"O This function should never be used. .\"O Internationalized programs must never @@ -86,14 +86,14 @@ C99. .\"O+ or the thread-safe .\"O+ .BR wcrtomb (3) .\"O instead. -¤³¤Î´Ø¿ô¤Ï·è¤·¤Æ»È¤¦¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£¹ñºÝ²½¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¥·¥ó¥°¥ë¥Ð¥¤¥È -ʸ»ú¤È¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò¶èÊ̤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£Âå¤ï¤ê¤Ë¡¢ +この関数は決して使うべきではない。国際化プログラムでは、シングルバイト +文字とマルチバイト文字を区別してはならない。代わりに、 .BR wctomb (3) -¤«¡¢¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ê +か、スレッドセーフな .BR wcrtomb (3) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR btowc (3), .BR wcrtomb (3), .BR wctomb (3) diff --git a/draft/man3/wctomb.3 b/draft/man3/wctomb.3 index e23683d0..14b92524 100644 --- a/draft/man3/wctomb.3 +++ b/draft/man3/wctomb.3 @@ -18,18 +18,18 @@ .\" .TH WCTOMB 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wctomb \- convert a wide character to a multibyte sequence -wctomb \- ¥ï¥¤¥Éʸ»ú¤ò¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ËÊÑ´¹¤¹¤ë¡£ +wctomb \- ワイド文字をマルチバイト列に変換する。 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int wctomb(char *" s ", wchar_t " wc ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O If \fIs\fP is not NULL, .\"O the .\"O .BR wctomb () @@ -46,14 +46,14 @@ wctomb \- .\"O The programmer must ensure that there is .\"O room for at least \fBMB_CUR_MAX\fP .\"O bytes at \fIs\fP. -\fIs\fP ¤¬ NULL ¤Ç¤Ê¤±¤ì¤Ð¡¢ +\fIs\fP が NULL でなければ、 .BR wctomb () -´Ø¿ô¤Ï¥ï¥¤¥Éʸ»ú \fIwc\fP ¤ò -¥Þ¥ë¥Á¥Ð¥¤¥Èɽ¸½¤ËÊÑ´¹¤·¤Æ \fIs\fP ¤Î»Ø¤¹Ê¸»úÇÛÎó¤Ë³ÊǼ¤¹¤ë¡£ -Ʊ»þ¤Ë wctomb ´Ø¿ô¤Î¤ß¤¬»ÈÍѤ¹¤ëÀÅŪ¤Ç̾Á°¤Î¤Ê¤¤¥·¥Õ¥È¾õÂÖ¤ò¹¹¿·¤¹¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¥Þ¥ë¥Á¥Ð¥¤¥Èɽ¸½¤ÎŤµ¡¢¤¹¤Ê¤ï¤Á \fIs\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤¿ -¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£¥×¥í¥°¥é¥Þ¡¼¤Ï \fIs\fP ¤Ë¾¯¤Ê¤¯¤È¤â \fBMB_CUR_MAX\fP -¥Ð¥¤¥È¤Î¶õ¤­¤¬¤¢¤ë¤³¤È¤òÊݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +関数はワイド文字 \fIwc\fP を +マルチバイト表現に変換して \fIs\fP の指す文字配列に格納する。 +同時に wctomb 関数のみが使用する静的で名前のないシフト状態を更新する。 +この関数はマルチバイト表現の長さ、すなわち \fIs\fP に書き込まれた +バイト数を返す。プログラマーは \fIs\fP に少なくとも \fBMB_CUR_MAX\fP +バイトの空きがあることを保証しなければならない。 .PP .\"O If \fIs\fP is NULL, the .\"O .BR wctomb () @@ -64,13 +64,13 @@ wctomb \- .\"O to the initial state, and .\"O returns nonzero if the encoding has nontrivial shift state, .\"O or zero if the encoding is stateless. -\fIs\fP ¤¬ NULL ¤Ê¤é¤Ð¡¢ +\fIs\fP が NULL ならば、 .BR wctomb () -´Ø¿ô¤Ï¼«Ê¬¤Î¤ß¤¬»ÈÍѤ¹¤ë¥·¥Õ¥È¾õÂÖ¤ò -½é´ü¾õÂÖ¤ËÌᤷ¤Æ¡¢Ê¸»úÉä¹æ¤¬¥·¥Õ¥È¾õÂ֤˰͸¤·¤Æ¤¤¤ë¤Ê¤é¤Ð¥¼¥í°Ê³°¤ò -¥·¥Õ¥È¾õÂ֤˰͸¤·¤Ê¤¤¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£ +関数は自分のみが使用するシフト状態を +初期状態に戻して、文字符号がシフト状態に依存しているならばゼロ以外を +シフト状態に依存しない場合にはゼロを返す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O If \fIs\fP is not NULL, the .\"O .BR wctomb () .\"O function @@ -79,25 +79,25 @@ wctomb \- .\"O If \fIwc\fP can not be .\"O represented as a multibyte sequence (according .\"O to the current locale), \-1 is returned. -\fIs\fP ¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç +\fIs\fP が NULL でない場合 .BR wctomb () -´Ø¿ô¤Ï¥Ð¥¤¥ÈÇÛÎó \fIs\fP ¤Ë -½ñ¤­¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£\fIwc\fP ¤¬(¸½ºß¤Î¥í¥±¡¼¥ë¤Ë¤ª¤¤¤Æ) -¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤Çɽ¸½¤Ç¤­¤Ê¤¤¾ì¹ç¤Ë¤Ï \-1 ¤òÊÖ¤¹¡£ +関数はバイト配列 \fIs\fP に +書き込まれたバイト数を返す。\fIwc\fP が(現在のロケールにおいて) +マルチバイト列で表現できない場合には \-1 を返す。 .PP .\"O If \fIs\fP is NULL, the .\"O .BR wctomb () .\"O function returns nonzero if the .\"O encoding has nontrivial shift state, or zero if the encoding is stateless. -\fIs\fP ¤¬ NULL ¤Î¾ì¹ç +\fIs\fP が NULL の場合 .BR wctomb () -´Ø¿ô¤Ïʸ»úÉä¹æ¤¬¥·¥Õ¥È¾õÂÖ¤Ë -°Í¸¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¥¼¥í°Ê³°¡¢¥·¥Õ¥È¾õÂ֤˰͸¤·¤Ê¤¤¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +関数は文字符号がシフト状態に +依存している場合にはゼロ以外、シフト状態に依存しない場合はゼロを返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR wctomb () .\"O depends on the @@ -105,20 +105,20 @@ C99. .\"O category of the .\"O current locale. .BR wctomb () -´Ø¿ô¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +関数の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ +カテゴリに依存している。 .PP .\"O This function is not multithread safe. .\"O The function .\"O .BR wcrtomb (3) .\"O provides .\"O a better interface to the same functionality. -¤³¤Î´Ø¿ô¤Ï¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Ç¤Ï°ÂÁ´¤Ç¤Ï¤Ê¤¤¡£ +この関数はマルチスレッドでは安全ではない。 .BR wcrtomb (3) -´Ø¿ô¤Ï -Ʊ¤¸µ¡Ç½¤Î¤è¤êÎɤ¤¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÄ󶡤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +関数は +同じ機能のより良いインターフェースを提供する。 +.SH 関連項目 .BR MB_CUR_MAX (3), .BR wcrtomb (3), .BR wcstombs (3) diff --git a/draft/man3/wctrans.3 b/draft/man3/wctrans.3 index c24e09a6..d24a008c 100644 --- a/draft/man3/wctrans.3 +++ b/draft/man3/wctrans.3 @@ -17,18 +17,18 @@ .\" .TH WCTRANS 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wctrans \- wide-character translation mapping -wctrans \- ¥ï¥¤¥Éʸ»úÊÑ´¹¥Þ¥Ã¥Ô¥ó¥° +wctrans \- ワイド文字変換マッピング .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "wctrans_t wctrans(const char *" name ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The \fIwctrans_t\fP type represents a mapping .\"O which can map a wide character to .\"O another wide character. @@ -39,13 +39,13 @@ wctrans \- .\"O .BR towctrans (3) .\"O function to actually perform .\"O the wide-character mapping. -\fIwctrans_t\fP ·¿¤Ï¡¢¤¢¤ë¥ï¥¤¥Éʸ»ú¤ò¾¤Î¥ï¥¤¥Éʸ»ú¤ËÊÑ´¹¤Ç¤­¤ë¥Þ¥Ã¥Ô -¥ó¥°¤òɽ¸½¤¹¤ë¡£ËܼÁŪ¤Ë¤Ï¼ÂÁõ°Í¸¤Ç¤¢¤ë¤¬¡¢Æüì¤ÊÃÍ -\fI(wctrans_t)0\fP ¤ÏÉÔÀµ¤Ê¥Þ¥Ã¥Ô¥ó¥°¤ò¼¨¤¹¡£0 ¤Ç¤Ê¤¤Ãͤò»ý¤Ä -\fIwctrans_t\fP ¤ò +\fIwctrans_t\fP 型は、あるワイド文字を他のワイド文字に変換できるマッピ +ングを表現する。本質的には実装依存であるが、特殊な値 +\fI(wctrans_t)0\fP は不正なマッピングを示す。0 でない値を持つ +\fIwctrans_t\fP を .BR towctrans (3) -´Ø¿ô¤ËÅϤ¹¤³¤È¤Ë¤è¤Ã¤Æ¡¢¼ÂºÝ¤Ë -¥ï¥¤¥Éʸ»ú¤ÎÊÑ´¹¤ò¼Â¹Ô¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +関数に渡すことによって、実際に +ワイド文字の変換を実行させることができる。 .PP .\"O The .\"O .BR wctrans () @@ -56,32 +56,32 @@ wctrans \- .\"O category of the current locale, but the .\"O following names are valid in all locales. .BR wctrans () -¤Ï¡¢Ì¾Á°¤Ë¤è¤Ã¤ÆÍ¿¤¨¤é¤ì¤ë¥Þ¥Ã¥Ô¥ó¥°¤òÊÖ¤¹¡£Í­¸ú¤Ê̾Á°¤Î -½¸¹ç¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +は、名前によって与えられるマッピングを返す。有効な名前の +集合は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¤¬¡¢°Ê²¼¤Î̾Á°¤ÏÁ´¤Æ¤Î¥í¥±¡¼¥ë¤Ë¤ª¤¤¤ÆÍ­¸ú¤Ç¤¢¤ë¡£ +カテゴリに依存するが、以下の名前は全てのロケールにおいて有効である。 .nf .\"O "tolower" \- realizes the \fBtolower\fP(3) mapping - "tolower" \- \fBtolower\fP(3) ¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò¼Â¸½¤¹¤ë + "tolower" \- \fBtolower\fP(3) のマッピングを実現する .\"O "toupper" \- realizes the \fBtoupper\fP(3) mapping - "toupper" \- \fBtoupper\fP(3) ¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò¼Â¸½¤¹¤ë + "toupper" \- \fBtoupper\fP(3) のマッピングを実現する .fi .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR wctrans () .\"O function returns a mapping descriptor if the \fIname\fP .\"O is valid. .\"O Otherwise it returns \fI(wctrans_t) 0\fP. .BR wctrans () -´Ø¿ô¤Ï¡¢\fIname\fP ¤¬Í­¸ú¤Ê¤é¤Ð¥Þ¥Ã¥Ô¥ó¥°µ­½Ò»Ò¤òÊÖ¤¹¡£ -Í­¸ú¤Ç¤Ê¤±¤ì¤Ð \fI(wctrans_t) 0\fP ¤òÊÖ¤¹¡£ +関数は、\fIname\fP が有効ならばマッピング記述子を返す。 +有効でなければ \fI(wctrans_t) 0\fP を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR wctrans () .\"O depends on the @@ -89,9 +89,9 @@ C99. .\"O category of the .\"O current locale. .BR wctrans () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR towctrans (3) diff --git a/draft/man3/wctype.3 b/draft/man3/wctype.3 index c4668dd9..39012d58 100644 --- a/draft/man3/wctype.3 +++ b/draft/man3/wctype.3 @@ -17,28 +17,28 @@ .\" .TH WCTYPE 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wctype \- wide-character classification -wctype \- ¥ï¥¤¥Éʸ»ú¤ÎʬÎà +wctype \- ワイド文字の分類 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "wctype_t wctype(const char *" name ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .I wctype_t .\"O type represents a property which a wide character may or .\"O may not have. .\"O In other words, it represents a class of wide characters. .I wctype_t -·¿¤Ï¡¢¥ï¥¤¥Éʸ»ú¤¬»ý¤Ã¤Æ¤¤¤ë¡¢¤¢¤ë¤¤¤Ï»ý¤Ã¤Æ¤¤¤Ê¤¤Â°À­¤òɽ¸½¤¹¤ë¡£ -¸À¤¤´¹¤¨¤ë¤È¡¢ +型は、ワイド文字が持っている、あるいは持っていない属性を表現する。 +言い換えると、 .I wctype_t -·¿¤Ï¥ï¥¤¥Éʸ»ú¤Î¥¯¥é¥¹¤òɽ¸½¤¹¤ë¡£ +型はワイド文字のクラスを表現する。 .\"O This type's nature is implementation-dependent, but the special value .\"O .I "(wctype_t) 0" .\"O denotes an invalid property. @@ -50,16 +50,16 @@ wctype \- .\"O function .\"O to actually test whether a given .\"O wide character has the property. -¤³¤Î·¿¤ÏËܼÁŪ¤Ë¼ÂÁõ°Í¸¤Ç¤¢¤ë¤¬¡¢Æüì¤ÊÃÍ +この型は本質的に実装依存であるが、特殊な値 .I "(wctype_t) 0" -¤ÏÉÔÀµ¤Ê°À­¤ò¼¨¤¹¡£ -0 ¤Ç¤Ê¤¤Ãͤò»ý¤Ä +は不正な属性を示す。 +0 でない値を持つ .I wctype_t -¤ò +を .BR iswctype (3) -´Ø¿ô¤ËÅÏ -¤¹¤³¤È¤Ë¤è¤Ã¤Æ¡¢Í¿¤¨¤é¤ì¤¿¥ï¥¤¥Éʸ»ú¤¬¤½¤Î°À­¤ò»ý¤Ä¤«¤É¤¦¤«¤ò¼ÂºÝ¤Ë¥Æ -¥¹¥È¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +関数に渡 +すことによって、与えられたワイド文字がその属性を持つかどうかを実際にテ +ストすることができる。 x.PP .\"O The .\"O .BR wctype () @@ -70,10 +70,10 @@ x.PP .\"O category of the current locale, but the .\"O following names are valid in all locales. .BR wctype () -´Ø¿ô¤Ï¡¢Ì¾Á°¤Ë¤è¤Ã¤ÆÍ¿¤¨¤é¤ì¤ë°À­¤òÊÖ¤¹¡£Í­¸ú¤Ê̾Á°¤Î½¸ -¹ç¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +関数は、名前によって与えられる属性を返す。有効な名前の集 +合は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¤¬¡¢°Ê²¼¤Î̾Á°¤ÏÁ´¤Æ¤Î¥í¥±¡¼¥ë¤ÇÍ­¸ú¤Ç¤¢¤ë¡£ +カテゴリに依存するが、以下の名前は全てのロケールで有効である。 .sp .nf .\"O "alnum" \- realizes the \fBisalnum\fP(3) classification function @@ -88,21 +88,21 @@ x.PP .\"O "space" \- realizes the \fBisspace\fP(3) classification function .\"O "upper" \- realizes the \fBisupper\fP(3) classification function .\"O "xdigit" \- realizes the \fBisxdigit\fP(3) classification function - "alnum" \- ¥¯¥é¥¹²½´Ø¿ô \fBisalnum\fP(3) ¤ò¼Â¸½¤¹¤ë - "alpha" \- ¥¯¥é¥¹²½´Ø¿ô \fBisalpha\fP(3) ¤ò¼Â¸½¤¹¤ë - "blank" \- ¥¯¥é¥¹²½´Ø¿ô \fBisblank\fP(3) ¤ò¼Â¸½¤¹¤ë - "cntrl" \- ¥¯¥é¥¹²½´Ø¿ô \fBiscntrl\fP(3) ¤ò¼Â¸½¤¹¤ë - "digit" \- ¥¯¥é¥¹²½´Ø¿ô \fBisdigit\fP(3) ¤ò¼Â¸½¤¹¤ë - "graph" \- ¥¯¥é¥¹²½´Ø¿ô \fBisgraph\fP(3) ¤ò¼Â¸½¤¹¤ë - "lower" \- ¥¯¥é¥¹²½´Ø¿ô \fBislower\fP(3) ¤ò¼Â¸½¤¹¤ë - "print" \- ¥¯¥é¥¹²½´Ø¿ô \fBisprint\fP(3) ¤ò¼Â¸½¤¹¤ë - "punct" \- ¥¯¥é¥¹²½´Ø¿ô \fBispunct\fP(3) ¤ò¼Â¸½¤¹¤ë - "space" \- ¥¯¥é¥¹²½´Ø¿ô \fBisspace\fP(3) ¤ò¼Â¸½¤¹¤ë - "upper" \- ¥¯¥é¥¹²½´Ø¿ô \fBisupper\fP(3) ¤ò¼Â¸½¤¹¤ë - "xdigit" \- ¥¯¥é¥¹²½´Ø¿ô \fBisxdigit\fP(3) ¤ò¼Â¸½¤¹¤ë + "alnum" \- クラス化関数 \fBisalnum\fP(3) を実現する + "alpha" \- クラス化関数 \fBisalpha\fP(3) を実現する + "blank" \- クラス化関数 \fBisblank\fP(3) を実現する + "cntrl" \- クラス化関数 \fBiscntrl\fP(3) を実現する + "digit" \- クラス化関数 \fBisdigit\fP(3) を実現する + "graph" \- クラス化関数 \fBisgraph\fP(3) を実現する + "lower" \- クラス化関数 \fBislower\fP(3) を実現する + "print" \- クラス化関数 \fBisprint\fP(3) を実現する + "punct" \- クラス化関数 \fBispunct\fP(3) を実現する + "space" \- クラス化関数 \fBisspace\fP(3) を実現する + "upper" \- クラス化関数 \fBisupper\fP(3) を実現する + "xdigit" \- クラス化関数 \fBisxdigit\fP(3) を実現する .fi .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR wctype () .\"O function returns a property descriptor @@ -112,17 +112,17 @@ x.PP .\"O Otherwise it returns .\"O .IR "(wctype_t) 0" . .BR wctype () -´Ø¿ô¤Ï¡¢ +関数は、 .I name -¤¬Í­¸ú¤Ê¤é¤Ð°À­µ­½Ò»Ò¤òÊÖ¤¹¡£ -Í­¸ú¤Ç¤Ê¤±¤ì¤Ð +が有効ならば属性記述子を返す。 +有効でなければ .I "(wctype_t) 0" -¤òÊÖ¤¹¡£ +を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR wctype () .\"O depends on the @@ -130,9 +130,9 @@ C99. .\"O category of the .\"O current locale. .BR wctype () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR iswctype (3) diff --git a/draft/man3/wcwidth.3 b/draft/man3/wcwidth.3 index d1ddc9c8..c6cc7844 100644 --- a/draft/man3/wcwidth.3 +++ b/draft/man3/wcwidth.3 @@ -18,11 +18,11 @@ .\" .TH WCWIDTH 3 2011-09-28 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wcwidth \- determine columns needed for a wide character -wcwidth \- ¥ï¥¤¥Éʸ»ú¤¬É¬ÍפȤ¹¤ë¥«¥é¥à¿ô¤òÄ´¤Ù¤ë +wcwidth \- ワイド文字が必要とするカラム数を調べる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #define _XOPEN_SOURCE .B #include @@ -30,7 +30,7 @@ wcwidth \- .BI "int wcwidth(wchar_t " c ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wcwidth () .\"O function returns the number of columns @@ -40,31 +40,31 @@ wcwidth \- .\"O If \fIc\fP is null wide character (L\(aq\\0\(aq), the value is 0. .\"O Otherwise \-1 is returned. .BR wcwidth () -´Ø¿ô¤Ï¡¢¥ï¥¤¥Éʸ»ú \fIc\fP ¤òɽ¸½¤¹¤ë¤¿¤á¤ËɬÍפʥ«¥é¥à -¿ô¤òÊÖ¤¹¡£\fIc\fP ¤¬°õºþ²Äǽʸ»ú¤Ê¤é¤Ð¡¢¤³¤ÎÃÍ¤Ï 0 °Ê¾å¤Ç¤¢¤ë¡£ -\fIc\fP ¤¬ NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤Ê¤é¤Ð¡¢ÃÍ¤Ï 0 ¤Ç¤¢¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï \-1 ¤¬ÊÖ¤µ¤ì¤ë¡£ +関数は、ワイド文字 \fIc\fP を表現するために必要なカラム +数を返す。\fIc\fP が印刷可能文字ならば、この値は 0 以上である。 +\fIc\fP が NULL ワイド文字 (L\(aq\\0\(aq) ならば、値は 0 である。 +それ以外の場合には \-1 が返される。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR wcwidth () .\"O function returns the number of .\"O column positions for \fIc\fP. .BR wcwidth () -´Ø¿ô¤Ï¡¢\fIc\fP ¤Îɽ¸½¤ËɬÍפʥ«¥é¥à¿ô¤òÊÖ¤¹¡£ +関数は、\fIc\fP の表現に必要なカラム数を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O Note that glibc before 2.2.5 used the prototype -glibc 2.2.5 °ÊÁ°¤Ç¤Ï°Ê²¼¤Î¥×¥í¥È¥¿¥¤¥×Àë¸À¤¬»ÈÍѤµ¤ì¤Æ¤¤¤¿¤³¤È¤Ë -Ãí°Õ¤¹¤ë¤³¤È¡£ +glibc 2.2.5 以前では以下のプロトタイプ宣言が使用されていたことに +注意すること。 .br .nf .BI "int wcwidth(wint_t " c ); .fi .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR wcwidth () .\"O depends on the @@ -72,11 +72,11 @@ glibc 2.2.5 .\"O category of the .\"O current locale. .BR wcwidth () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR iswprint (3), .BR wcswidth (3), .BR feature_test_macros (7) diff --git a/draft/man3/wmemchr.3 b/draft/man3/wmemchr.3 index a9e95cb4..901eed8e 100644 --- a/draft/man3/wmemchr.3 +++ b/draft/man3/wmemchr.3 @@ -17,18 +17,18 @@ .\" .TH WMEMCHR 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wmemchr \- search a wide character in a wide-character array -wmemchr \- ¥ï¥¤¥Éʸ»ú¤ÎÇÛÎ󤫤é¥ï¥¤¥Éʸ»ú¤òõ¤¹ +wmemchr \- ワイド文字の配列からワイド文字を探す .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "wchar_t *wmemchr(const wchar_t *" s ", wchar_t " c ", size_t " n ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wmemchr () .\"O function is the wide-character equivalent of the @@ -37,26 +37,26 @@ wmemchr \- .\"O It searches the \fIn\fP wide characters starting at \fIs\fP for .\"O the first occurrence of the wide character \fIc\fP. .BR wmemchr () -´Ø¿ô¤Ï¡¢ +関数は、 .BR memchr (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIs\fP ¤òÀèƬ¤È¤¹¤ë \fIn\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤ÎÃ椫¤é¡¢ºÇ½é -¤Ë¥ï¥¤¥Éʸ»ú \fIc\fP ¤¬¸½¤ï¤ì¤ë¾ì½ê¤òõ¤¹¡£ +関数に対応するワイド文字関数である。 +この関数は、\fIs\fP を先頭とする \fIn\fP 個のワイド文字の中から、最初 +にワイド文字 \fIc\fP が現われる場所を探す。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR wmemchr () .\"O function returns a pointer to the first occurrence of \fIc\fP .\"O among the \fIn\fP wide characters starting at \fIs\fP, or NULL if \fIc\fP does .\"O not occur among these. .BR wmemchr () -´Ø¿ô¤Ï¡¢\fIs\fP ¤òÀèƬ¤È¤¹¤ë \fIn\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤ÎÃæ -¤Ë¤ª¤¤¤ÆºÇ½é¤Ë \fIc\fP ¤¬¸½¤ï¤ì¤ë¾ì½ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£\fIc\fP ¤¬¸½ -¤ï¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï NULL ¤òÊÖ¤¹¡£ +関数は、\fIs\fP を先頭とする \fIn\fP 個のワイド文字の中 +において最初に \fIc\fP が現われる場所へのポインタを返す。\fIc\fP が現 +われなかった場合には NULL を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR memchr (3), .BR wcschr (3) diff --git a/draft/man3/wmemcmp.3 b/draft/man3/wmemcmp.3 index f39b50be..e30470e7 100644 --- a/draft/man3/wmemcmp.3 +++ b/draft/man3/wmemcmp.3 @@ -16,18 +16,18 @@ .\" .TH WMEMCMP 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wmemcmp \- compare two arrays of wide-characters -wmemcmp \- ¥ï¥¤¥Éʸ»ú¤ÎÇÛÎó 2 ¤Ä¤òÈæ³Ó¤¹¤ë +wmemcmp \- ワイド文字の配列 2 つを比較する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "int wmemcmp(const wchar_t *" s1 ", const wchar_t *" s2 ", size_t " n ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wmemcmp () .\"O function is the wide-character equivalent of the @@ -36,13 +36,13 @@ wmemcmp \- .\"O It compares the \fIn\fP wide-characters starting at \fIs1\fP and the .\"O \fIn\fP wide-characters starting at \fIs2\fP. .BR wmemcmp () -´Ø¿ô¤Ï¡¢ +関数は、 .BR memcmp (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIs1\fP ¤òÀèƬ¤È¤¹¤ë \fIn\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤È \fIs2\fP ¤ò -ÀèƬ¤È¤¹¤ë \fIn\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤òÈæ³Ó¤¹¤ë¡£ +関数に対応するワイド文字関数である。 +この関数は、\fIs1\fP を先頭とする \fIn\fP 個のワイド文字と \fIs2\fP を +先頭とする \fIn\fP 個のワイド文字を比較する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR wmemcmp () .\"O function returns @@ -57,18 +57,18 @@ wmemcmp \- .\"O wide-character \fIs1[i]\fP is less than .\"O \fIs2[i]\fP. .BR wmemcmp () -´Ø¿ô¤Ï¡¢\fIs1\fP ¤È \fIs2\fP ¤òÀèƬ¤È¤¹¤ëÂ礭¤µ¤¬ -\fIn\fP ¤Î 2 ¤Ä¤ÎÇÛÎó¤¬Åù¤·¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ -ºÇ½é¤Ë°Û¤Ê¤ëʸ»ú¤¬¸½¤ï¤ì¤¿°ÌÃÖ \fIi\fP (\fIi\fP < \fIn\fP)¤Ë¤ª¤¤¤Æ¡¢¤½ -¤Î°ÌÃ֤ˤ¢¤ë¥ï¥¤¥Éʸ»ú \fIs1[i]\fP ¤¬ \fIs2[i]\fP ¤è¤êÂ礭¤±¤ì¤ÐÀµ¤ÎÀ° -¿ô¤òÊÖ¤¹¡£ -ºÇ½é¤Ë°Û¤Ê¤ëʸ»ú¤¬¸½¤ï¤ì¤¿°ÌÃÖ \fIi\fP (\fIi\fP < \fIn\fP)¤Ë¤ª¤¤¤Æ¡¢¤½ -¤Î°ÌÃ֤ˤ¢¤ë¥ï¥¤¥Éʸ»ú \fIs1[i]\fP ¤¬ \fIs2[i]\fP ¤è¤ê¾®¤µ¤±¤ì¤ÐÉé¤ÎÀ° -¿ô¤òÊÖ¤¹¡£ +関数は、\fIs1\fP と \fIs2\fP を先頭とする大きさが +\fIn\fP の 2 つの配列が等しければ 0 を返す。 +最初に異なる文字が現われた位置 \fIi\fP (\fIi\fP < \fIn\fP)において、そ +の位置にあるワイド文字 \fIs1[i]\fP が \fIs2[i]\fP より大きければ正の整 +数を返す。 +最初に異なる文字が現われた位置 \fIi\fP (\fIi\fP < \fIn\fP)において、そ +の位置にあるワイド文字 \fIs1[i]\fP が \fIs2[i]\fP より小さければ負の整 +数を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR memcmp (3), .BR wcscmp (3) diff --git a/draft/man3/wmemcpy.3 b/draft/man3/wmemcpy.3 index 0b21ffdb..efb06903 100644 --- a/draft/man3/wmemcpy.3 +++ b/draft/man3/wmemcpy.3 @@ -17,18 +17,18 @@ .\" .TH WMEMCPY 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wmemcpy \- copy an array of wide-characters -wmemcpy \- ¥ï¥¤¥Éʸ»ú¤ÎÇÛÎó¤ò¥³¥Ô¡¼¤¹¤ë +wmemcpy \- ワイド文字の配列をコピーする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "wchar_t *wmemcpy(wchar_t *" dest ", const wchar_t *" src ", size_t " n ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wmemcpy () .\"O function is the wide-character equivalent of the @@ -37,35 +37,35 @@ wmemcpy \- .\"O It copies \fIn\fP wide characters from the array starting at .\"O \fIsrc\fP to the array starting at \fIdest\fP. .BR wmemcpy () -´Ø¿ô¤Ï¡¢ +関数は、 .BR memcpy (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIsrc\fP ¤òÀèƬ¤È¤¹¤ëÇÛÎ󤫤é \fIdest\fP ¤òÀèƬ¤È¤¹¤ëÇÛÎó -¤Ë \fIn\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤ò¥³¥Ô¡¼¤¹¤ë¡£ +関数に対応するワイド文字関数である。 +この関数は、\fIsrc\fP を先頭とする配列から \fIdest\fP を先頭とする配列 +に \fIn\fP 個のワイド文字をコピーする。 .PP .\"O The arrays may not overlap; use .\"O .BR wmemmove (3) .\"O to copy between overlapping .\"O arrays. -2 ¤Ä¤ÎÇÛÎó¤Ï½Å¤Ê¤Ã¤Æ¤¤¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ÇÛÎ󤬽ŤʤäƤ¤¤ë¾ì¹ç¤Ë¤Ï +2 つの配列は重なっていてはならない。配列が重なっている場合には .BR wmemmove (3) -¤ò»È¤Ã¤Æ¥³¥Ô¡¼¤¹¤ë¤³¤È¡£ +を使ってコピーすること。 .PP .\"O The programmer must ensure that there is room for at least \fIn\fP wide .\"O characters at \fIdest\fP. -¥×¥í¥°¥é¥Þ¤Ï¡¢¾¯¤Ê¤¯¤È¤â \fIn\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤¬Æþ¤ëÎΰè¤ò \fIdest\fP -¤Ë³ÎÊݤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +プログラマは、少なくとも \fIn\fP 個のワイド文字が入る領域を \fIdest\fP +に確保しなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR wmemcpy () .\"O returns \fIdest\fP. .BR wmemcpy () -¤Ï \fIdest\fP ¤òÊÖ¤¹¡£ +は \fIdest\fP を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR memcpy (3), .BR wcscpy (3), .BR wmemmove (3), diff --git a/draft/man3/wmemmove.3 b/draft/man3/wmemmove.3 index 3acada77..8503c994 100644 --- a/draft/man3/wmemmove.3 +++ b/draft/man3/wmemmove.3 @@ -17,18 +17,18 @@ .\" .TH WMEMMOVE 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wmemmove \- copy an array of wide-characters -wmemmove \-¥ï¥¤¥Éʸ»ú¤ÎÇÛÎó¤ò¥³¥Ô¡¼¤¹¤ë +wmemmove \-ワイド文字の配列をコピーする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "wchar_t *wmemmove(wchar_t *" dest ", const wchar_t *" src ", size_t " n ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wmemmove () .\"O function is the wide-character equivalent of the @@ -39,27 +39,27 @@ wmemmove \- .\"O The arrays may .\"O overlap. .BR wmemmove () -´Ø¿ô¤Ï¡¢ +関数は、 .BR memmove (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢ -¤ë¡£¤³¤Î´Ø¿ô¤Ï \fIsrc\fP ¤òÀèƬ¤È¤¹¤ëÇÛÎ󤫤é \fIdest\fP ¤òÀèƬ¤È¤¹¤ë -ÇÛÎó¤Ë \fIn\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤ò¥³¥Ô¡¼¤¹¤ë¡£2 ¤Ä¤ÎÇÛÎó¤Ï½Å¤Ê¤Ã¤Æ¤¤¤Æ¤â -¹½¤ï¤Ê¤¤¡£ +関数に対応するワイド文字関数であ +る。この関数は \fIsrc\fP を先頭とする配列から \fIdest\fP を先頭とする +配列に \fIn\fP 個のワイド文字をコピーする。2 つの配列は重なっていても +構わない。 .PP .\"O The programmer must ensure that there is room for at least \fIn\fP wide .\"O characters at \fIdest\fP. -¥×¥í¥°¥é¥Þ¤Ï¡¢¾¯¤Ê¤¯¤È¤â \fIn\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤¬Æþ¤ëÎΰè¤ò \fIdest\fP -¤Ë³ÎÊݤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +プログラマは、少なくとも \fIn\fP 個のワイド文字が入る領域を \fIdest\fP +に確保しなければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR wmemmove () .\"O returns \fIdest\fP. .BR wmemmove () -¤Ï \fIdest\fP ¤òÊÖ¤¹¡£ +は \fIdest\fP を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR memmove (3), .BR wmemcpy (3) diff --git a/draft/man3/wmemset.3 b/draft/man3/wmemset.3 index 4bc8aa86..d85cba97 100644 --- a/draft/man3/wmemset.3 +++ b/draft/man3/wmemset.3 @@ -17,18 +17,18 @@ .\" .TH WMEMSET 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wmemset \- fill an array of wide-characters with a constant wide character -wmemset \- ¥ï¥¤¥Éʸ»ú¤ÎÇÛÎó¤òÄê¿ô¤Î¥ï¥¤¥Éʸ»ú¤ÇËä¤á¤ë +wmemset \- ワイド文字の配列を定数のワイド文字で埋める .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp .BI "wchar_t *wmemset(wchar_t *" wcs ", wchar_t " wc ", size_t " n ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wmemset () .\"O function is the wide-character equivalent of the @@ -37,20 +37,20 @@ wmemset \- .\"O It fills the array of \fIn\fP wide-characters starting at \fIwcs\fP .\"O with \fIn\fP copies of the wide character \fIwc\fP. .BR wmemset () -´Ø¿ô¤Ï¡¢ +関数は、 .BR memset (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fBmemset\fP ¤òÀèƬ¤È¤¹¤ë \fIn\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤ÎÇÛÎó¤ò¡¢ -¥ï¥¤¥Éʸ»ú \fIwc\fP ¤Î \fIn\fP ¸Ä¤Î¥³¥Ô¡¼¤ÇËä¤á¤ë¡£ +関数に対応するワイド文字関数である。 +この関数は、\fBmemset\fP を先頭とする \fIn\fP 個のワイド文字の配列を、 +ワイド文字 \fIwc\fP の \fIn\fP 個のコピーで埋める。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O .BR wmemset () .\"O returns \fIwcs\fP. .BR wmemset () -¤Ï \fIwcs\fP ¤òÊÖ¤¹¡£ +は \fIwcs\fP を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR memset (3) diff --git a/draft/man3/wordexp.3 b/draft/man3/wordexp.3 index 6b9d710a..7d9c36eb 100644 --- a/draft/man3/wordexp.3 +++ b/draft/man3/wordexp.3 @@ -27,11 +27,11 @@ .\" .TH WORDEXP 3 2008-07-14 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wordexp, wordfree \- perform word expansion like a posix-shell -wordexp, wordfree \- posix ¥·¥§¥ë¤Î¤è¤¦¤Ëñ¸ì¤ÎŸ³«¤ò¹Ô¤¦ +wordexp, wordfree \- posix シェルのように単語の展開を行う .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B "#include " .sp .BI "int wordexp(const char *" s ", wordexp_t *" p ", int " flags ); @@ -41,29 +41,29 @@ wordexp, wordfree \- posix .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR wordexp (), .BR wordfree (): _XOPEN_SOURCE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The function .\"O .BR wordexp () .\"O performs a shell-like expansion of the string .\"O .I s .\"O and returns the result in the structure pointed to by .\"O .IR p . -´Ø¿ô +関数 .BR wordexp () -¤Ï¥·¥§¥ë¤Î¤è¤¦¤Ëʸ»úÎó +はシェルのように文字列 .I s -¤òŸ³«¤·¡¢ +を展開し、 .I p -¤Ç»Ø¤·¼¨¤¹¹½Â¤ÂΤ˷ë²Ì¤òÊÖ¤¹¡£ +で指し示す構造体に結果を返す。 .\"O The data type .\"O .I wordexp_t .\"O is a structure that at least has the fields @@ -71,36 +71,36 @@ _XOPEN_SOURCE .\"O .IR we_wordv , .\"O and .\"O .IR we_offs . -¥Ç¡¼¥¿·¿ +データ型 .I wordexp_t -¤Ï¾¯¤Ê¤¯¤È¤â¥Õ¥£¡¼¥ë¥É +は少なくともフィールド .IR we_wordc , .IR we_wordv , .I we_offs -¤ò»ý¤Ä¹½Â¤ÂΤǤ¢¤ë¡£ +を持つ構造体である。 .\"O The field .\"O .I we_wordc .\"O is a .\"O .I size_t .\"O that gives the number of words in the expansion of .\"O .IR s . -¥Õ¥£¡¼¥ë¥É +フィールド .I we_wordc -¤Ï +は .I size_t -¤Ç¤¢¤ê¡¢ +であり、 .I s -¤òŸ³«¤·¤¿·ë²Ì¤Ëñ¸ì¤¬¤¤¤¯¤Ä¤¢¤ë¤«¤òɽ¤¹¡£ +を展開した結果に単語がいくつあるかを表す。 .\"O The field .\"O .I we_wordv .\"O is a .\"O .I char ** .\"O that points to the array of words found. -¥Õ¥£¡¼¥ë¥É +フィールド .I we_wordv -¤Ï +は .I char ** -¤Ç¤¢¤ê¡¢¸«¤Ä¤«¤Ã¤¿Ã±¸ì¤ÎÇÛÎó¤ò»Ø¤·¼¨¤¹¡£ +であり、見つかった単語の配列を指し示す。 .\"O The field .\"O .I we_offs .\"O of type @@ -111,14 +111,14 @@ _XOPEN_SOURCE .\"O .I we_wordv .\"O array that should be filled with NULLs. .I size_t -·¿¤Î¥Õ¥£¡¼¥ë¥É +型のフィールド .I we_offs -¤Ï¡¢ +は、 .I we_wordv -ÇÛÎó¤Ë¤¢¤ë½é´üÍ×ÁǤΤ¦¤Á¤¤¤¯¤Ä¤¬ -NULL ¤ÇËä¤á¤é¤ì¤ë¤Ù¤­¤«¤òɽ¤¹¤Î¤Ë»È¤ï¤ì¤¿¤ê¤¹¤ë +配列にある初期要素のうちいくつが +NULL で埋められるべきかを表すのに使われたりする .RI ( flags -¤Ë¤è¤ê·èÄꤵ¤ì¤ë¡£²¼µ­¤ò»²¾È¡£)¡£ +により決定される。下記を参照。)。 .LP .\"O The function .\"O .BR wordfree () @@ -127,15 +127,15 @@ NULL .\"O its argument, but it frees the array .\"O .I we_wordv .\"O and the strings that points to. -´Ø¿ô +関数 .BR wordfree () -¤Ï³ä¤êÅö¤Æ¤¿¥á¥â¥ê¤òºÆÅÙ²òÊü¤¹¤ë¡£ -¤è¤êÀµ³Î¤Ë¤¤¤¦¤È¡¢¤³¤Î´Ø¿ô¤Ï¤½¤Î°ú¤­¿ô¤ò²òÊü¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ -ÇÛÎó +は割り当てたメモリを再度解放する。 +より正確にいうと、この関数はその引き数を解放するのではなく、 +配列 .I we_wordv -¤È¤½¤ì¤¬»Ø¤·¼¨¤¹Ê¸»úÎó¤ò²òÊü¤¹¤ë¡£ +とそれが指し示す文字列を解放する。 .\"O .SS "The string argument" -.SS "ʸ»úÎó°ú¤­¿ô" +.SS "文字列引き数" .\"O Since the expansion is the same as the expansion by the shell (see .\"O .BR sh (1)) .\"O of the parameters to a command, the string @@ -145,67 +145,67 @@ NULL .\"O In particular, there must not be any unescaped .\"O newline or |, &, ;, <, >, (, ), {, } characters .\"O outside a command substitution or parameter substitution context. -¤³¤ÎŸ³«¤Ï¥·¥§¥ë¤Ë¤è¤ë¥³¥Þ¥ó¥É¤Î¥Ñ¥é¥á¡¼¥¿¤ÎŸ³« +この展開はシェルによるコマンドのパラメータの展開 .RB ( sh (1) -¤ò»²¾È) ¤ÈƱ¤¸¤Ç¤¢¤ë¤Î¤Ç¡¢Ê¸»úÎó +を参照) と同じであるので、文字列 .I s -¤Ï¥·¥§¥ë¥³¥Þ¥ó¥É¥Ñ¥é¥á¡¼¥¿¤ÇÉÔÀµ¤È¤µ¤ì¤ëʸ»ú¤ò´Þ¤ó¤Ç¤Ï¤Ê¤é¤Ê¤¤¡£ -Æä˥¨¥¹¥±¡¼¥×¤µ¤ì¤Æ¤¤¤Ê¤¤²þ¹Ô¡¢|, &, ;, <, >, (, ), {, } ʸ»ú¤ò -¥³¥Þ¥ó¥ÉÃÖ´¹¤ä¥Ñ¥é¥á¡¼¥¿ÃÖ´¹¤Î¾ìḬ̀ʳ°¤Ë´Þ¤á¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +はシェルコマンドパラメータで不正とされる文字を含んではならない。 +特にエスケープされていない改行、|, &, ;, <, >, (, ), {, } 文字を +コマンド置換やパラメータ置換の場面以外に含めてはならない。 .LP .\"O If the argument .\"O .I s .\"O contains a word that starts with an unquoted comment character #, .\"O then it is unspecified whether that word and all following words .\"O are ignored, or the # is treated as a non-comment character. -°ú¤­¿ô +引き数 .I s -¤Ë¥¯¥©¡¼¥È¤·¤Æ¤¤¤Ê¤¤¥³¥á¥ó¥Èʸ»ú # ¤Ç»Ï¤Þ¤ëñ¸ì¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -¤½¤Îñ¸ì¤È¤½¤ì°Ê¹ß¤Îñ¸ì¤¬Ìµ»ë¤µ¤ì¤ë¤«¡¢ -¤½¤ì¤È¤â # ¤¬¥³¥á¥ó¥Èʸ»ú¤È¤·¤Æ°·¤ï¤Ê¤¤¤«¤Ï¡¢µ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +にクォートしていないコメント文字 # で始まる単語が含まれている場合には、 +その単語とそれ以降の単語が無視されるか、 +それとも # がコメント文字として扱わないかは、規定されていない。 .\"O .SS "The expansion" -.SS "Ÿ³«" +.SS "展開" .\"O The expansion done consists of the following stages: .\"O tilde expansion (replacing ~user by user's home directory), .\"O variable substitution (replacing $FOO by the value of the environment .\"O variable FOO), command substitution (replacing $(command) or \`command\` .\"O by the output of command), arithmetic expansion, field splitting, .\"O wildcard expansion, quote removal. -¼Â¹Ô¤µ¤ì¤ëŸ³«¤Ï¡¢°Ê²¼¤ÎÃʳ¬¤Ç¹½À®¤µ¤ì¤ë: -¥Á¥ë¥ÀŸ³« (~user ¤ò user ¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤­´¹¤¨¤ë)¡¢ -ÊÑ¿ôŸ³« ($FOO ¤ò´Ä¶­ÊÑ¿ô FOO ¤ÎÃͤËÃÖ¤­´¹¤¨¤ë)¡¢ -¥³¥Þ¥ó¥ÉŸ³« ($(command) ¤Þ¤¿¤Ï \`command\` ¤ò command ¤Î½ÐÎϤÇÃÖ¤­´¹¤¨¤ë)¡¢ -»»½ÑŸ³«¡¢¥Õ¥£¡¼¥ë¥Éʬ³ä¡¢¥ï¥¤¥ë¥É¥«¡¼¥ÉŸ³«¡¢¥¯¥©¡¼¥È¤Î½üµî¡£ +実行される展開は、以下の段階で構成される: +チルダ展開 (~user を user のホームディレクトリに置き換える)、 +変数展開 ($FOO を環境変数 FOO の値に置き換える)、 +コマンド展開 ($(command) または \`command\` を command の出力で置き換える)、 +算術展開、フィールド分割、ワイルドカード展開、クォートの除去。 .LP .\"O The result of expansion of special parameters .\"O ($@, $*, $#, $?, $\-, $$, $!, $0) is unspecified. -Æüì¤Ê¥Ñ¥é¥á¡¼¥¿ ($@, $*, $#, $?, $\-, $$, $!, $0) ¤Î -Ÿ³«·ë²Ì¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +特殊なパラメータ ($@, $*, $#, $?, $\-, $$, $!, $0) の +展開結果は規定されていない。 .LP .\"O Field splitting is done using the environment variable $IFS. .\"O If it is not set, the field separators are space, tab and newline. -¥Õ¥£¡¼¥ë¥Éʬ³ä¤Ï´Ä¶­ÊÑ¿ô $IFS ¤òÍѤ¤¤Æ¹Ô¤ï¤ì¤ë¡£ -¤³¤Î´Ä¶­ÊÑ¿ô¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -¥Õ¥£¡¼¥ë¥É¶èÀÚ¤êʸ»ú¤Ï¥¹¥Ú¡¼¥¹¡¦¥¿¥Ö¡¦²þ¹Ô¤Ç¤¢¤ë¡£ +フィールド分割は環境変数 $IFS を用いて行われる。 +この環境変数が設定されていない場合、 +フィールド区切り文字はスペース・タブ・改行である。 .\"O .SS "The output array" -.SS "½ÐÎϤµ¤ì¤ëÇÛÎó" +.SS "出力される配列" .\"O The array .\"O .I we_wordv .\"O contains the words found, followed by a NULL. -ÇÛÎó +配列 .I we_wordv -¤Ï¸«¤Ä¤«¤Ã¤¿Ã±¸ì¤ò¤ò´Þ¤ß¡¢ºÇ¸å¤Ë NULL ¤¬Â³¤¯¡£ +は見つかった単語をを含み、最後に NULL が続く。 .\"O .SS "The flags argument" .\"O The .\"O .I flag .\"O argument is a bitwise inclusive OR of the following values: -.SS "flags °ú¤­¿ô" +.SS "flags 引き数" .I flags -°ú¤­¿ô¤Ï°Ê²¼¤ÎÃͤΥӥåÈÊñ´ÞŪ OR ¤Ç¤¢¤ë: +引き数は以下の値のビット包含的 OR である: .TP .B WRDE_APPEND .\"O Append the words found to the array resulting from a previous call. -¸«¤Ä¤«¤Ã¤¿Ã±¸ì¤òÁ°²ó¤Î¸Æ¤Ó½Ð¤··ë²Ì¤ÎÇÛÎó¤ËÄɲ乤롣 +見つかった単語を前回の呼び出し結果の配列に追加する。 .TP .B WRDE_DOOFFS .\"O Insert @@ -214,17 +214,17 @@ NULL .\"O .IR we_wordv . .\"O (These are not counted in the returned .\"O .IR we_wordc .) -½é´ü¾õÂ֤Ǥ¢¤ë +初期状態である .I we_offs -¸Ä¤Î NULL ¤òÇÛÎó +個の NULL を配列 .I we_wordv -¤ËÁÞÆþ¤¹¤ë (¤³¤ì¤é¤ÏÊÖ¤µ¤ì¤ë +に挿入する (これらは返される .I we_wordc -¤Ë¤Ï¥«¥¦¥ó¥È¤µ¤ì¤Ê¤¤)¡£ +にはカウントされない)。 .TP .B WRDE_NOCMD .\"O Don't do command substitution. -¥³¥Þ¥ó¥ÉÃÖ´¹¤ò¹Ô¤ï¤Ê¤¤¡£ +コマンド置換を行わない。 .TP .B WRDE_REUSE .\"O The argument @@ -235,91 +235,91 @@ NULL .\"O .BR wordfree () .\"O was not called. .\"O Reuse the allocated storage. -°ú¤­¿ô +引き数 .I p -¤ÏÁ°²ó¤Î +は前回の .BR wordexp () -¤Î¸Æ¤Ó½Ð¤··ë²Ì¤Ç¤¢¤ê¡¢ +の呼び出し結果であり、 .BR wordfree () -¤¬ (¤Þ¤À) ¸Æ¤Ó½Ð¤µ¤ì¤Ê¤¤¡£ -³ä¤êÅö¤Æ¤é¤ì¤¿Îΰè¤òºÆÍøÍѤ¹¤ë¡£ +が (まだ) 呼び出されない。 +割り当てられた領域を再利用する。 .TP .B WRDE_SHOWERR .\"O Normally during command substitution .\"O .I stderr .\"O is redirected to .\"O .IR /dev/null . -Ä̾ï¤Ï¥³¥Þ¥ó¥ÉÃÖ´¹¤Î¤È¤­¤Ë +通常はコマンド置換のときに .I stderr -¤¬ +が .I /dev/null -¤Ë¥ê¥À¥¤¥ì¥¯¥È¤µ¤ì¤ë¡£ +にリダイレクトされる。 .\"O This flag specifies that .\"O .I stderr .\"O is not to be redirected. -¤³¤Î¥Õ¥é¥°¤Ï +このフラグは .I stderr -¤ò¥ê¥À¥¤¥ì¥¯¥È¤·¤Ê¤¤¤è¤¦¤Ë»ØÄꤹ¤ë¡£ +をリダイレクトしないように指定する。 .TP .B WRDE_UNDEF .\"O Consider it an error if an undefined shell variable is expanded. -̤ÄêµÁ¤Î¥·¥§¥ëÊÑ¿ô¤òŸ³«¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤Ë¡¢¥¨¥é¡¼¤È¤·¤Æ°·¤¦¡£ +未定義のシェル変数を展開しようとした場合に、エラーとして扱う。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O In case of success 0 is returned. .\"O In case of error .\"O one of the following five values is returned. -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï°Ê²¼¤Î 5 ¤Ä¤ÎÃͤΤ¦¤Á¤Î 1 ¤Ä¤¬ÊÖ¤µ¤ì¤ë¡£ +成功した場合は 0 が返される。 +エラーの場合は以下の 5 つの値のうちの 1 つが返される。 .TP .B WRDE_BADCHAR .\"O Illegal occurrence of newline or one of |, &, ;, <, >, (, ), {, }. -²þ¹Ô¤Þ¤¿¤Ï |, &, ;, <, >, (, ), {, } ¤Î¤¦¤Á¤Î 1 ¤Ä¤¬ÉÔÀµ¤Ë½Ð¸½¤·¤¿¡£ +改行または |, &, ;, <, >, (, ), {, } のうちの 1 つが不正に出現した。 .TP .B WRDE_BADVAL .\"O An undefined shell variable was referenced, and the .\"O .B WRDE_UNDEF .\"O flag .\"O told us to consider this an error. -̤ÄêµÁ¤Î¥·¥§¥ëÊÑ¿ô¤¬»²¾È¤µ¤ì¡¢¤«¤Ä +未定義のシェル変数が参照され、かつ .B WRDE_UNDEF -¥Õ¥é¥°¤Ç¤³¤ì¤ò¥¨¥é¡¼¤È¤·¤Æ°·¤¦¤è¤¦¤Ë»Ø¼¨¤µ¤ì¤Æ¤¤¤ë¡£ +フラグでこれをエラーとして扱うように指示されている。 .TP .B WRDE_CMDSUB .\"O Command substitution occurred, and the .\"O .B WRDE_NOCMD .\"O flag told us to consider this an error. -¥³¥Þ¥ó¥ÉÃÖ´¹¤¬µ¯¤³¤ê¡¢¤«¤Ä +コマンド置換が起こり、かつ .B WRDE_NOCMD -¥Õ¥é¥°¤Ç¤³¤ì¤ò¥¨¥é¡¼¤È¤·¤Æ°·¤¦¤è¤¦¤Ë»Ø¼¨¤µ¤ì¤Æ¤¤¤ë¡£ +フラグでこれをエラーとして扱うように指示されている。 .TP .B WRDE_NOSPACE .\"O Out of memory. -¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£ +メモリが足りない。 .TP .B WRDE_SYNTAX .\"O Shell syntax error, such as unbalanced parentheses or .\"O unmatched quotes. -Âбþ¤¹¤ë³ç¸Ì¤¬¤Ê¤¤¡¢¥¯¥©¡¼¥È¤¬¹çÃפ·¤Ê¤¤¤È¤¤¤Ã¤¿¡¢ -¥·¥§¥ë¤Î½ñ¼°¥¨¥é¡¼¡£ +対応する括弧がない、クォートが合致しないといった、 +シェルの書式エラー。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .BR wordexp () .\"O and .\"O .BR wordfree () .\"O are provided in glibc since version 2.1. .BR wordexp () -¤È +と .BR wordfree () -¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +は、バージョン 2.1 以降の glibc で提供されている。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The output of the following example program .\"O is approximately that of "ls [a-c]*.c". -°Ê²¼¤Î¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Î½ÐÎϤϤÀ¤¤¤¿¤¤ "ls [a-c]*.c" ¤ÈƱ¤¸¤Ë¤Ê¤ë¡£ +以下のサンプルプログラムの出力はだいたい "ls [a-c]*.c" と同じになる。 .LP .nf #include @@ -342,6 +342,6 @@ main(int argc, char **argv) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fnmatch (3), .BR glob (3) diff --git a/draft/man3/wprintf.3 b/draft/man3/wprintf.3 index a142e33f..0162df8e 100644 --- a/draft/man3/wprintf.3 +++ b/draft/man3/wprintf.3 @@ -18,13 +18,13 @@ .\" .TH WPRINTF 3 2011-09-17 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf \- formatted .\"O wide-character output conversion -wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf \- ¥ï¥¤¥Éʸ»ú¤ò -¥Õ¥©¡¼¥Þ¥Ã¥È¤·¤Æ½ÐÎϤ¹¤ë +wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf \- ワイド文字を +フォーマットして出力する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -43,14 +43,14 @@ wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l .\"O All functions shown above: -¾åµ­¤ÎÁ´¤Æ¤Î´Ø¿ô: +上記の全ての関数: .RS 4 .\" .BR wprintf (), .\" .BR fwprintf (), @@ -69,7 +69,7 @@ or .RE .ad .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR wprintf () .\"O family of functions is @@ -79,10 +79,10 @@ or .\"O It performs formatted output of wide .\"O characters. .BR wprintf () -¥Õ¥¡¥ß¥ê¡¼¤Î´Ø¿ô¤Ï +ファミリーの関数は .BR printf (3) -¥Õ¥¡¥ß¥ê¡¼¤Î´Ø¿ô¤Î -¥ï¥¤¥Éʸ»úÈǤǤ¢¤ë¡£¤³¤ì¤é¤Ï¥ï¥¤¥Éʸ»ú¤ò¥Õ¥©¡¼¥Þ¥Ã¥È¤·¤Æ½ÐÎϤ¹¤ë¡£ +ファミリーの関数の +ワイド文字版である。これらはワイド文字をフォーマットして出力する。 .PP .\"O The .\"O .BR wprintf () @@ -94,12 +94,12 @@ or .\"O .BR fwide (3) .\"O for more information. .BR wprintf () -¤È +と .BR vwprintf () -´Ø¿ô¤Ï \fIstdout\fP ¤Ë½ÐÎϤò¹Ô¤Ê¤¦¡£ -\fIstdout\fP ¤¬¥Ð¥¤¥Èñ°ÌÆþ½ÐÎϤǤ¢¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤¡£¤è¤ê¾Ü¤·¤¤ÀâÌÀ¤Ï +関数は \fIstdout\fP に出力を行なう。 +\fIstdout\fP がバイト単位入出力であってはいけない。より詳しい説明は .BR fwide (3) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .PP .\"O The .\"O .BR fwprintf () @@ -111,13 +111,13 @@ or .\"O .BR fwide (3) .\"O for more information. .BR fwprintf () -¤È +と .BR vfwprintf () -´Ø¿ô¤Ï \fIstream\fP ¤Ë¥ï¥¤¥Éʸ»ú½ÐÎÏ -¤ò¹Ô¤Ê¤¦¡£ \fIstream\fP ¤¬¥Ð¥¤¥Èñ°ÌÆþ½ÐÎϤǤ¢¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ -¤è¤ê¾Ü¤·¤¤ÀâÌÀ¤Ï +関数は \fIstream\fP にワイド文字出力 +を行なう。 \fIstream\fP がバイト単位入出力であってはいけない。 +より詳しい説明は .BR fwide (3) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .PP .\"O The .\"O .BR swprintf () @@ -130,12 +130,12 @@ or .\"O room for at least \fImaxlen\fP wide .\"O characters at \fIwcs\fP. .BR swprintf () -¤È +と .BR vswprintf () -´Ø¿ô¤Ï¥ï¥¤¥Éʸ»ú¤ÎÇÛÎó¤Ë -¥ï¥¤¥Éʸ»ú½ÐÎϤò¹Ô¤Ê¤¦¡£¥×¥í¥°¥é¥Þ¡¼¤Ï \fIwcs\fP ¤ËºÇÄã¤Ç¤â -\fImaxlen\fP ʸ»ú¤Î¥ï¥¤¥Éʸ»ú¤ò½ÐÎϤǤ­¤ë¶õ¤­¤¬¤¢¤ë¤³¤È¤òÊݾڤ·¤Ê¤±¤ì¤Ð -¤Ê¤é¤Ê¤¤¡£ +関数はワイド文字の配列に +ワイド文字出力を行なう。プログラマーは \fIwcs\fP に最低でも +\fImaxlen\fP 文字のワイド文字を出力できる空きがあることを保証しなければ +ならない。 .PP .\"O These functions are like .\"O the @@ -147,23 +147,23 @@ or .\"O .BR vsprintf (3) .\"O functions except for the .\"O following differences: -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .BR printf (3), .BR vprintf (3), .BR fprintf (3), .BR vfprintf (3), .BR sprintf (3), .BR vsprintf (3) -´Ø¿ô¤Ë»÷¤Æ¤¤¤ë¤¬°Ê²¼¤Î -ÅÀ¤Ç°Û¤Ã¤Æ¤¤¤ë¡£ +関数に似ているが以下の +点で異っている。 .TP .B \(bu .\"O The \fIformat\fP string is a wide character string. -\fIformat\fP ¤¬¥ï¥¤¥Éʸ»úÎó¤ÇÍ¿¤¨¤é¤ì¤ë¡£ +\fIformat\fP がワイド文字列で与えられる。 .TP .B \(bu .\"O The output consists of wide characters, not bytes. -½ÐÎϤ¬¥Ð¥¤¥È¤Ç¤Ï¤Ê¤¯¥ï¥¤¥Éʸ»ú¤Ç¹½À®¤µ¤ì¤ë¡£ +出力がバイトではなくワイド文字で構成される。 .TP .B \(bu .\"O .BR swprintf () @@ -180,21 +180,21 @@ or .\"O take a \fImaxlen\fP argument, but these functions do not return \-1 upon .\"O buffer overflow on Linux.) .BR swprintf () -¤È +と .BR vswprintf () -¤Ï \fImaxlen\fP °ú¤­¿ô¤ò¼è¤ë¤¬¡¢ +は \fImaxlen\fP 引き数を取るが、 .BR sprintf () -¤È +と .BR vsprintf () -¤Ï¼è¤é¤Ê¤¤ +は取らない .RB ( snprintf () -¤È +と .BR vsnprintf () -¤Ï \fImaxlen\fP °ú¤­¿ô¤ò¼è¤ë¤¬ -¤³¤ì¤é¤Î´Ø¿ô¤¬ Linux ¤Ç¤Ï¡¢¥Ð¥Ã¥Õ¥¡¡¼¤¬°î¤ì¤¿¾ì¹ç¤Ç¤â \-1 ¤òÊÖ¤µ¤Ê¤¤)¡£ +は \fImaxlen\fP 引き数を取るが +これらの関数が Linux では、バッファーが溢れた場合でも \-1 を返さない)。 .PP .\"O The treatment of the conversion characters \fBc\fP and \fBs\fP is different: -\fBc\fP ¤È \fBs\fP ÊÑ´¹Ê¸»ú¤Î°·¤¤¤¬°Û¤Ã¤Æ¤¤¤ë: +\fBc\fP と \fBs\fP 変換文字の扱いが異っている: .TP .\"O .B c .\"O If no @@ -210,17 +210,17 @@ or .\"O .I wint_t .\"O (wide character) argument is written. .B c -¤â¤· +もし .B l -½¤¾þ»Ò¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï +修飾子が存在しない場合は .I int -°ú¤­¿ô¤Ï +引き数は .BR btowc (3) -´Ø¿ô¤Ë¤è¤Ã¤Æ¥ï¥¤¥Éʸ»ú¤ËÊÑ´¹¤µ¤ì¤ë¡£¤½¤·¤Æ·ë²Ì¤Î¥ï¥¤¥Éʸ»ú¤¬½ÐÎϤµ¤ì¤ë¡£ +関数によってワイド文字に変換される。そして結果のワイド文字が出力される。 .B l -½¤¾þ»Ò¤¬Â¸ºß¤¹¤ë¾ì¹ç¤Ï +修飾子が存在する場合は .I wint_t -(¥ï¥¤¥Éʸ»ú)°ú¤­¿ô¤¬½ÐÎϤµ¤ì¤ë¡£ +(ワイド文字)引き数が出力される。 .\"O .B s .\"O If no .\"O .B l @@ -246,24 +246,24 @@ or .\"O .IR "screen positions" . .TP .B s -¤â¤· +もし .B l -½¤¾þ»Ò¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢ +修飾子が存在しない場合、 .I "const\ char\ *" -°ú¤­¿ô¤Ï½é´ü¾õÂÖ¤è¤ê»Ï¤Þ¤ë¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ò´Þ¤ó¤À -char ·¿¤ÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼(ʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼)¤È¤ß¤Ê¤µ¤ì¤ë¡£ -ÇÛÎó¤Îʸ»ú¤Ï(ºÇ½é¤Î¥Ð¥¤¥ÈÁ°¤Ë½é´ü¾õÂÖ¤ÇÊÑ´¹¤ò³«»Ï¤·¡¢¤½¤ì¤¾¤ì¤Îʸ»ú¤ò +引き数は初期状態より始まるマルチバイト文字列を含んだ +char 型の配列へのポインター(文字列へのポインター)とみなされる。 +配列の文字は(最初のバイト前に初期状態で変換を開始し、それぞれの文字を .BR mbrtowc (3) -´Ø¿ô¤Ë¤è¤Ã¤Æ)¥ï¥¤¥Éʸ»ú¤Ø¤ÈÊÑ´¹¤µ¤ì¤ë¡£·ë²Ì¤Î¥ï¥¤¥Éʸ»ú¤Ï½ªÃ¼¤Î -¥Ê¥ë¥ï¥¤¥Éʸ»ú¤Î¼êÁ°¤Þ¤Ç¤¬½ñ¤­¹þ¤Þ¤ì¤ë¡£ÀºÅÙ(precision)¤¬»ØÄꤵ¤ì¤¿ -¾ì¹ç¡¢»ØÄꤵ¤ì¤¿¿ô»ú¤òĶ¤¨¤ë¥ï¥¤¥Éʸ»ú¤Ï½ñ¤­¹þ¤Þ¤ì¤Ê¤¤¡£ÀºÅÙ¤Ï -½ñ¤­¹þ¤Þ¤ì¤ë -.I ¥Ð¥¤¥È -¿ô¤ä -.I ²èÌ̾å¤Î°ÌÃÖ -¤Ç¤Ï¤Ê¤¯ -.I ¥ï¥¤¥Éʸ»ú -¤Î¿ô¤ò»ØÄꤹ¤ë¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +関数によって)ワイド文字へと変換される。結果のワイド文字は終端の +ナルワイド文字の手前までが書き込まれる。精度(precision)が指定された +場合、指定された数字を超えるワイド文字は書き込まれない。精度は +書き込まれる +.I バイト +数や +.I 画面上の位置 +ではなく +.I ワイド文字 +の数を指定することに注意すること。 .\"O The array must contain a terminating null byte, unless a precision is given .\"O and it is so small that the number of converted wide characters reaches it .\"O before the end of the array is reached. @@ -279,21 +279,21 @@ char .\"O The array must contain a terminating null .\"O wide character, unless a precision is given and it is smaller than or equal .\"O to the number of wide characters in the array. -ÀºÅÙ¤¬¤Ê¤¤¾ì¹ç¤Ë¤ÏÇÛÎó¤Î½ªÃ¼¤Ë¥Ê¥ëʸ»ú¤ò´Þ¤àɬÍפ¬¤¢¤ë¡£ -ÀºÅÙ¤ò»ØÄꤹ¤ë¾ì¹ç¤Ë¤Ï¡¢ÇÛÎó¤ÎºÇ¸å¤ËÅþÃ夹¤ëÁ°¤ËÊÑ´¹¤µ¤ì¤¿¥ï¥¤¥Éʸ»ú¤Î -¿ô¤¬¤½¤ì¤ËÅþ㤹¤ë¤è¤¦¡¢ÀºÅ٤Ͻ½Ê¬¤Ë¾®¤µ¤Ê¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤â¤· +精度がない場合には配列の終端にナル文字を含む必要がある。 +精度を指定する場合には、配列の最後に到着する前に変換されたワイド文字の +数がそれに到達するよう、精度は十分に小さな数でなければならない。 +もし .B l -½¤¾þ»Ò¤¬Â¸ºß¤¹¤ë¾ì¹ç¡¢ +修飾子が存在する場合、 .I "const\ wchar_t\ *" -°ú¤­¿ô¤Ï¥ï¥¤¥Éʸ»ú¤ÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤È¤ß¤Ê¤µ¤ì¤ë¡£ -ÇÛÎó¤Î¥ï¥¤¥Éʸ»úÎó¤Ï½ªÃ¼¤Î¥Ê¥ë¥ï¥¤¥Éʸ»ú¤Î¼ê´Ö¤Þ¤Ç½ÐÎϤµ¤ì¤ë¡£ -¤â¤·ÀºÅÙ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï»ØÄꤵ¤ì¤¿ÀºÅٰʾå¤Îʸ»ú¤Ï½ÐÎϤµ¤ì¤Ê¤¤¡£ -ÀºÅÙ¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ë¤Ï½ªÃ¼¤Î¥Ê¥ë¥ï¥¤¥Éʸ»ú¤ò´Þ¤àɬÍפ¬¤¢¤ë¡£ -ÀºÅÙ¤ò»ØÄꤹ¤ë¾ì¹ç¤Ë¤Ï¤½¤ì¤Ï¥ï¥¤¥Éʸ»ú¤ÎÇÛÎó¤ÎÂ礭¤µ¤è¤ê¤â¾®¤µ¤¯¤Ê -¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数はワイド文字の配列へのポインターとみなされる。 +配列のワイド文字列は終端のナルワイド文字の手間まで出力される。 +もし精度が指定された場合には指定された精度以上の文字は出力されない。 +精度を指定しない場合には終端のナルワイド文字を含む必要がある。 +精度を指定する場合にはそれはワイド文字の配列の大きさよりも小さくな +ければならない。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The functions return the number of wide characters written, excluding the .\"O terminating null wide character in .\"O case of the functions @@ -301,17 +301,17 @@ char .\"O and .\"O .BR vswprintf (). .\"O They return \-1 when an error occurs. -¤³¤ì¤é¤Î´Ø¿ô¤Ï½ñ¤­¹þ¤Þ¤ì¤¿¥ï¥¤¥Éʸ»ú¤Îʸ»ú¿ô¤òÊÖ¤¹¡£ +これらの関数は書き込まれたワイド文字の文字数を返す。 .BR swprintf () -¤È +と .BR vswprintf () -´Ø¿ô¤Î¾ì¹ç¤Ï -½ªÃ¼¤Î¥Ê¥ë¥ï¥¤¥Éʸ»ú¤Ï´Þ¤Þ¤Ê¤¤¡£¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ +関数の場合は +終端のナルワイド文字は含まない。エラーが起こった場合は \-1 を返す。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 C99. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The behavior of .\"O .BR wprintf () .\"O et al. depends @@ -320,9 +320,9 @@ C99. .\"O category of the .\"O current locale. .BR wprintf () -Åù¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +等の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ +カテゴリに依存している。 .PP .\"O If the \fIformat\fP string contains non-ASCII wide characters, the program .\"O will only work correctly if the @@ -333,13 +333,13 @@ C99. .\"O category of the current locale at .\"O compile time. .\"O This is because the -\fIformat\fP ʸ»úÎó¤¬ ASCII °Ê³°¤Î¥ï¥¤¥Éʸ»ú¤ò´Þ¤ó¤Ç¤¤¤ë¾ì¹ç¡¢ -¼Â¹Ô»þ¤Î¥í¥±¡¼¥ë¤Î +\fIformat\fP 文字列が ASCII 以外のワイド文字を含んでいる場合、 +実行時のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤¬¥³¥ó¥Ñ¥¤¥ë»þ¤Î +カテゴリがコンパイル時の .B LC_CTYPE -¥«¥Æ¥´¥ê¤È -°ìÃפ·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Î¤ß¥×¥í¥°¥é¥à¤ÏÀµ¾ï¤ËÆ°ºî¤¹¤ë¡£¤³¤ì¤Ï +カテゴリと +一致している場合にのみプログラムは正常に動作する。これは .I wchar_t .\"O representation is platform- and locale- dependent. .\"O (The glibc represents @@ -347,10 +347,10 @@ C99. .\"O platforms don't do this. .\"O Also, the use of ISO C99 universal character names .\"O of the form \\unnnn does not solve this problem.) -¤Îɽ¸½¤¬¥í¥±¡¼¥ë¤ä¥×¥é¥Ã¥È¥Û¡¼¥à¤Ë°Í¸¤·¤Æ¤¤¤ë¤³¤È¤Ë¸¶°ø¤¬¤¢¤ë¡£ -(glibc ¤Ç¤Ï¥ï¥¤¥Éʸ»ú¤È¤·¤Æ Unicode (ISO-10646) ¤Î¥³¡¼¥É¥Ý¥¤¥ó¥È¤ò -»ÈÍѤ·¤Æ¤¤¤ë¡£Â¾¤Î¥×¥é¥Ã¥È¥Û¡¼¥à¤Ç¤Ï¤½¤¦¤Ç¤Ï¤Ê¤¤¡£Æ±ÍÍ¤Ë -ISO C99 ¤Î \\unnnn ·Á¼°¤ÎÈÆÍÑʸ»ú̾¾Î¤Ï¤³¤ÎÌäÂê¤ò²ò·è¤·¤Ê¤¤¡£) +の表現がロケールやプラットホームに依存していることに原因がある。 +(glibc ではワイド文字として Unicode (ISO-10646) のコードポイントを +使用している。他のプラットホームではそうではない。同様に +ISO C99 の \\unnnn 形式の汎用文字名称はこの問題を解決しない。) .\"O Therefore, in .\"O internationalized programs, the \fIformat\fP string should consist of ASCII .\"O wide characters only, or should be constructed at run time in an @@ -360,17 +360,17 @@ ISO C99 .\"O .BR iconv (3), .\"O followed by .\"O .BR mbstowcs (3)). -¤³¤Î¤¿¤á¹ñºÝ²½¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Ç¤Ï \fIformat\fP ʸ»úÎó¤ò ASCII ¥ï¥¤¥É -ʸ»ú¤Î¤ß¤Ë¤¹¤ë¤«¡¢¼Â¹Ô»þ¤Ë¹ñºÝ²½¤µ¤ì¤¿ÊýË¡¤Ç¹½À®¤¹¤ëɬÍפ¬¤¢¤ë -(Î㤨¤Ð +このため国際化されたプログラムでは \fIformat\fP 文字列を ASCII ワイド +文字のみにするか、実行時に国際化された方法で構成する必要がある +(例えば .BR gettext () -¤È +と .BR iconv () -¤ä +や .BR mbstowcs () -¤òÁȤ߹ç¤ï¤Æ»ÈÍѤ¹¤ë)¡£ +を組み合わて使用する)。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fprintf (3), .BR fputwc (3), .BR fwide (3), diff --git a/draft/man3/xcrypt.3 b/draft/man3/xcrypt.3 index ed759173..488159b3 100644 --- a/draft/man3/xcrypt.3 +++ b/draft/man3/xcrypt.3 @@ -13,11 +13,11 @@ .\" .TH XCRYPT 3 2003-04-04 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O xencrypt, xdecrypt, passwd2des \- RFS password encryption -xencrypt, xdecrypt, passwd2des \- RFS ¥Ñ¥¹¥ï¡¼¥É°Å¹æ²½ +xencrypt, xdecrypt, passwd2des \- RFS パスワード暗号化 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B "#include " .sp .BI "void passwd2des(char " *passwd ", char *" key ");" @@ -26,7 +26,7 @@ xencrypt, xdecrypt, passwd2des \- RFS .sp .BI "int xdecrypt(char *" secret ", char *" passwd ");" .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The function .\"O .BR passwd2des () .\"O takes a character string @@ -38,25 +38,25 @@ xencrypt, xdecrypt, passwd2des \- RFS .\"O .I key .\"O is suitable for use as DES key. .\"O It has odd parity set in bit 0 of each byte. -´Ø¿ô +関数 .BR passwd2des () -¤ÏǤ°Õ¤ÎŤµ¤Îʸ»úÎó +は任意の長さの文字列 .I passwd -¤ò¤È¤ê¡¢Ä¹¤µ 8 ¤Îʸ»úÇÛÎó +をとり、長さ 8 の文字配列 .I key -¤òËä¤á¤ë¡£ -ÇÛÎó +を埋める。 +配列 .I key -¤Ï DES ¥­¡¼¤È¤·¤Æ»È¤¦¤Î¤ËŬ¤·¤Æ¤¤¤ë¡£ -¤³¤ÎÇÛÎó¤Î³Æ¥Ð¥¤¥È¤Î¥Ó¥Ã¥È 0 ¤Ï´ñ¿ô¥Ñ¥ê¥Æ¥£¤Ç¤¢¤ë¡£ +は DES キーとして使うのに適している。 +この配列の各バイトのビット 0 は奇数パリティである。 .\"O Both other functions described here use this function to turn their .\"O argument .\"O .I passwd .\"O into a DES key. -¤³¤³¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë»Ä¤ê¤Î 2 ¤Ä¤Î´Ø¿ô¤Ï¡¢ -¤³¤Î´Ø¿ô¤ò»È¤¤¡¢°ú¤­¿ô +ここで説明されている残りの 2 つの関数は、 +この関数を使い、引き数 .I passwd -¤ò DES ¥­¡¼¤ËÊÑ´¹¤¹¤ë¡£ +を DES キーに変換する。 .LP .\"O The .\"O .BR xencrypt () @@ -65,61 +65,61 @@ xencrypt, xdecrypt, passwd2des \- RFS .\"O given in hex, .\"O .\" (over the alphabet 0123456789abcdefABCDEF), .BR xencrypt () -´Ø¿ô¤Ï -.\" (¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È 0123456789abcdefABCDEF ¤Çɽ¤µ¤ì¤ë) -16 ¿Ê¿ô¤ÇÍ¿¤¨¤é¤ì¤¿ ASCII ʸ»úÎó +関数は +.\" (アルファベット 0123456789abcdefABCDEF で表される) +16 進数で与えられた ASCII 文字列 .I secret -¤ò¤È¤ë¡£ +をとる。 .\"O which must have a length that is a multiple of 16, -¤³¤ÎŤµ¤Ï 16 ¤ÎÇÜ¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +この長さは 16 の倍数でなければならない。 .\"O encrypts it using the DES key derived from .\"O .I passwd .\"O by .\"O .BR passwd2des (), -¤½¤·¤Æ +そして .BR passwd2des () -¤Ë¤è¤Ã¤Æ +によって .I passwd -¤«¤éƳ¤­½Ð¤µ¤ì¤¿ DES ¥­¡¼¤ò»È¤¤¡¢ +から導き出された DES キーを使い、 .I secret -¤ò°Å¹æ²½¤¹¤ë¡£ +を暗号化する。 .\"O and outputs the result again in .\"O .I secret .\"O as a hex string .\"O .\" (over the alphabet 0123456789abcdef) .\"O of the same length. -¤½¤Î·ë²Ì¤Ï -.\" (¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È 0123456789abcdef ¤Çɽ¤µ¤ì¤ë) -16 ¿Ê¿ôʸ»úÎó¤È¤·¤Æ +その結果は +.\" (アルファベット 0123456789abcdef で表される) +16 進数文字列として .I secret -¤ËºÆ¤ÓƱ¤¸Ä¹¤µ¤Ç½ÐÎϤµ¤ì¤ë¡£ +に再び同じ長さで出力される。 .LP .\"O The .\"O .BR xdecrypt () .\"O function performs the converse operation. .BR xdecrypt () -´Ø¿ô¤ÏµÕ¤ÎÁàºî¤ò¹Ô¤¦¡£ +関数は逆の操作を行う。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The functions .\"O .BR xencrypt () .\"O and .\"O .BR xdecrypt () .\"O return 1 on success and 0 on error. -´Ø¿ô +関数 .BR xencrypt () -¤È +と .BR xdecrypt () -¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¤Ë 1 ¤òÊÖ¤·¡¢¼ºÇÔ¤·¤¿¾ì¹ç¤Ë 0 ¤òÊÖ¤¹¡£ +は、成功した場合に 1 を返し、失敗した場合に 0 を返す。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O These routines are present in libc 4.6.27 and later, and in .\"O glibc 2.1 and later. -¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤Ï libc 4.6.27 °Ê¹ß¤È glibc 2.1 °Ê¹ß¤Ë¸ºß¤¹¤ë¡£ +これらのルーチンは libc 4.6.27 以降と glibc 2.1 以降に存在する。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O The prototypes are missing from the abovementioned include file. -¾åµ­¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Ë¥×¥í¥È¥¿¥¤¥×¤¬¤Ê¤¤¡£ +上記のインクルードファイルにプロトタイプがない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cbc_crypt (3) diff --git a/draft/man3/xdr.3 b/draft/man3/xdr.3 index 796d0831..e2b31003 100644 --- a/draft/man3/xdr.3 +++ b/draft/man3/xdr.3 @@ -11,27 +11,27 @@ .\" .TH XDR 3 2007-12-30 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O xdr \- library routines for external data representation -xdr \- ³°Éô¥Ç¡¼¥¿É½¸½(XDR)¤Î¤¿¤á¤Î¥é¥¤¥Ö¥é¥ê¡¦¥ë¡¼¥Æ¥£¥ó +xdr \- 外部データ表現(XDR)のためのライブラリ・ルーティン .\"O .SH SYNOPSIS AND DESCRIPTION -.SH ½ñ¼°¤ÈÀâÌÀ +.SH 書式と説明 .LP .\"O These routines allow C programmers to describe .\"O arbitrary data structures in a machine-independent fashion. .\"O Data for remote procedure calls are transmitted using these .\"O routines. -¤³¤ì¤é¤Î¥ë¡¼¥Æ¥£¥ó¤Ï C ¥×¥í¥°¥é¥Þ¡¼¤¬¥Þ¥·¥óÈó°Í¸¤Ê·Á¼°¤Ç -Ǥ°Õ¤Î¥Ç¡¼¥¿¹½Â¤ÂΤòµ­½Ò¤¹¤ë¤³¤È¤ò²Äǽ¤Ë¤¹¤ë¡£ -¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¡¦¥³¡¼¥ë¤Î¤¿¤á¤Î¥Ç¡¼¥¿¤Ï¤³¤ì¤é¤Î¥ë¡¼¥Æ¥£¥ó¤ò -»ÈÍѤ·¤ÆÁ÷¿®¤µ¤ì¤ë¡£ +これらのルーティンは C プログラマーがマシン非依存な形式で +任意のデータ構造体を記述することを可能にする。 +リモート・プロシジャ・コールのためのデータはこれらのルーティンを +使用して送信される。 .\"O The prototypes below are declared in .\"O .I .\"O and make use of the following types: -°Ê²¼¤Ë¼¨¤¹¥×¥í¥È¥¿¥¤¥×Àë¸À¤Ï +以下に示すプロトタイプ宣言は .I -¤Ç¹Ô¤ï¤ì¤Æ¤ª¤ê¡¢¤½¤ÎÃæ¤Ç¤Ï¼¡¤Î·¿¤¬»ÈÍѤµ¤ì¤ë¡£ +で行われており、その中では次の型が使用される。 .in +4n .nf @@ -46,9 +46,9 @@ typedef bool_t (*\fIxdrproc_t\fP) (XDR *, void *,...); .\"O type, see .\"O .IR . .I XDR -·¿¤ÎÀë¸À¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +型の宣言については、 .I -¤ò»²¾È¡£ +を参照。 .LP .nf .BI "bool_t xdr_array(XDR *" xdrs ", char **" arrp ", unsigned int *" sizep , @@ -65,15 +65,15 @@ typedef bool_t (*\fIxdrproc_t\fP) (XDR *, void *,...); .\"O is the address of the element count of the array; .\"O this element count cannot exceed .\"O .IR maxsize . -²ÄÊÑŤÎÇÛÎó¤È¤½¤ì¤ËÂбþ¤¹¤ë³°Éôɽ¸½¤È¤òÊÑ´¹¤¹¤ë´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -°ú¤­¿ô +可変長の配列とそれに対応する外部表現とを変換する基本フィルター。 +引き数 .I arrp -¤ÏÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ê¡¢ +は配列へのポインターのアドレスであり、 .I sizep -¤ÏÇÛÎó¤ÎÍ×ÁÇ¿ô¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤ÎÍ×ÁÇ¿ô¤Ï +は配列の要素数のアドレスである。 +これらの要素数は .I maxsize -¤òĶ¤¨¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +を超えてはならない。 .\"O The argument .\"O .I elsize .\"O is the @@ -84,15 +84,15 @@ typedef bool_t (*\fIxdrproc_t\fP) (XDR *, void *,...); .\"O the array elements' C form, and their external .\"O representation. .\"O This routine returns one if it succeeds, zero otherwise. -°ú¤­¿ô +引き数 .I elsize -¤Ï³ÆÇÛÎó¤ÎÍ×ÁǤΠ+は各配列の要素の .I sizeof -¤Ç¤¢¤ê¡¢ +であり、 .I elproc -¤ÏÇÛÎóÍ×ÁǤò C ·Á¼°¤«¤é¤½¤Î³°Éôɽ¸½¤ËÊÑ´¹¤¹¤ë¤¿¤á¤Î XDR ¥Õ¥£¥ë¥¿¡¼¤Ç¤¢¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£ +は配列要素を C 形式からその外部表現に変換するための XDR フィルターである。 +このルーティンは成功した場合には 1 を返す。 +失敗した場合にはゼロを返す。 .LP .nf .BI "bool_t xdr_bool(XDR *" xdrs ", bool_t *" bp ); @@ -104,10 +104,10 @@ typedef bool_t (*\fIxdrproc_t\fP) (XDR *, void *,...); .\"O When encoding data, this .\"O filter produces values of either one or zero. .\"O This routine returns one if it succeeds, zero otherwise. -¿¿µ¶ÃÍ(C ¤Î int)¤È¤½¤Î³°Éôɽ¸½¤È¤òÊÑ´¹¤¹¤ë´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -¥Ç¡¼¥¿¤ò¥¨¥ó¥³¡¼¥É¤¹¤ë»þ¡¢¤³¤Î¥Õ¥£¥ë¥¿¡¼¤Ï 1 ¤Þ¤¿ 0 ¤ÎÃͤòÀ¸À®¤¹¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ +真偽値(C の int)とその外部表現とを変換する基本フィルター。 +データをエンコードする時、このフィルターは 1 また 0 の値を生成する。 +このルーティンは成功した場合には 1 を返す。 +失敗した場合には 0 を返す。 .LP .nf .BI "bool_t xdr_bytes(XDR *" xdrs ", char **" sp ", unsigned int *" sizep , @@ -125,16 +125,16 @@ typedef bool_t (*\fIxdrproc_t\fP) (XDR *, void *,...); .\"O strings cannot be longer than .\"O .IR maxsize . .\"O This routine returns one if it succeeds, zero otherwise. -¤¢¤ëŤµ¤Î¥Ð¥¤¥Èʸ»úÎó¤È¤½¤Î³°Éôɽ¸½¤È¤òÊÑ´¹¤¹¤ë´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -°ú¤­¿ô +ある長さのバイト文字列とその外部表現とを変換する基本フィルター。 +引き数 .I sp -¤Ïʸ»úÎó¥Ý¥¤¥ó¥¿¡¼¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£Ê¸»úÎó¤ÎŤµ¤Ï +は文字列ポインターのアドレスである。文字列の長さは .I sizep -¤Î¥¢¥É¥ì¥¹¤ËÃÖ¤¯¡£Ê¸»úÎó¤Ï +のアドレスに置く。文字列は .I maxsize -¤è¤êŤ¯¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ +より長くてはいけない。 +このルーティンは成功した場合には 1 を返す。 +失敗した場合には 0 を返す。 .LP .nf .BI "bool_t xdr_char(XDR *" xdrs ", char *" cp ); @@ -150,15 +150,15 @@ typedef bool_t (*\fIxdrproc_t\fP) (XDR *, void *,...); .\"O .BR xdr_opaque () .\"O or .\"O .BR xdr_string (). -C ¤Îʸ»ú(char)¤È¤½¤Î³°Éôɽ¸½¤È¤Î´Ö¤òÊÑ´¹¤¹¤ë´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ -Ãí°Õ: ¥¨¥ó¥³¡¼¥É¤µ¤ì¤¿¥Ç¡¼¥¿¤ÏµÍ¤á¹þ¤Þ¤ì¤Æ¤ª¤é¤º¡¢¤½¤ì¤¾¤ì 4 ¥Ð¥¤¥È¤ò -Àê¤á¤ë¡£Ê¸»ú¤ÎÇÛÎó¤Î¾ì¹ç¤Ë¤Ï +C の文字(char)とその外部表現との間を変換する基本フィルター。 +このルーティンは成功した場合には 1 を返す。 +失敗した場合には 0 を返す。 +注意: エンコードされたデータは詰め込まれておらず、それぞれ 4 バイトを +占める。文字の配列の場合には .BR xdr_bytes (), .BR xdr_opaque (), .BR xdr_string () -¤Ê¤É¤ò¹Íθ¤·¤¿Êý¤¬Îɤ¤¡£ +などを考慮した方が良い。 .LP .nf .BI "void xdr_destroy(XDR *" xdrs ); @@ -173,14 +173,14 @@ C .\"O after invoking .\"O .BR xdr_destroy () .\"O is undefined. -¤³¤Î¥Þ¥¯¥í¤Ï XDR ¥¹¥È¥ê¡¼¥à +このマクロは XDR ストリーム .I xdrs -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿Ç˲õ¥ë¡¼¥Æ¥£¥ó¤ò¸Æ¤Ó½Ð¤¹¡£ -Ç˲õ¤Ë¤ÏÄ̾¥¹¥È¥ê¡¼¥à¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿»äŪ¥Ç¡¼¥¿¹½Â¤ÂΤβòÊü¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +に関連付けられた破壊ルーティンを呼び出す。 +破壊には通常、ストリームに関連付けられた私的データ構造体の解放が含まれている。 .BR xdr_destroy () -¤Î¸Æ¤Ó½Ð¤·¤Î¸å¤Ë +の呼び出しの後に .I xdrs -¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +を使用することは未定義である。 .LP .nf .BI "bool_t xdr_double(XDR *" xdrs ", double *" dp ); @@ -190,11 +190,11 @@ C .\"O .I double .\"O precision numbers and their external representations. .\"O This routine returns one if it succeeds, zero otherwise. -C ¤Î -.I ÇÜÀºÅÙ¿ô (double) -¤È¤½¤Î³°Éôɽ¸½¤È¤ÎÊÑ´¹¤ò¹Ô¤Ê¤¦´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +C の +.I 倍精度数 (double) +とその外部表現との変換を行なう基本フィルター。 +このルーティンは成功した場合は 1 を返す。 +失敗した場合は 0 を返す。 .LP .nf .BI "bool_t xdr_enum(XDR *" xdrs ", enum_t *" ep ); @@ -204,11 +204,11 @@ C .\"O .IR enum s .\"O (actually integers) and their external representations. .\"O This routine returns one if it succeeds, zero otherwise. -C ¤Î +C の .I enum -(¼ÂºÝ¤Ë¤Ï int)¤È¤½¤Î³°Éôɽ¸½¤È¤ÎÊÑ´¹¤ò¹Ô¤Ê¤¦´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +(実際には int)とその外部表現との変換を行なう基本フィルター。 +このルーティンは成功した場合は 1 を返す。 +失敗した場合は 0 を返す。 .LP .nf .BI "bool_t xdr_float(XDR *" xdrs ", float *" fp ); @@ -218,11 +218,11 @@ C .\"O .IR float s .\"O and their external representations. .\"O This routine returns one if it succeeds, zero otherwise. -C ¤Î -.IR "ÉâÆ°¾®¿ôÅÀ¿ô (float)" -¤È¤½¤Î³°Éôɽ¸½¤È¤ÎÊÑ´¹¤ò¹Ô¤Ê¤¦´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +C の +.IR "浮動小数点数 (float)" +とその外部表現との変換を行なう基本フィルター。 +このルーティンは成功した場合は 1 を返す。 +失敗した場合は 0 を返す。 .LP .nf .BI "void xdr_free(xdrproc_t " proc ", char *" objp ); @@ -236,12 +236,12 @@ C .\"O freed, but what it points to .\"O .I is .\"O freed (recursively). -ÈÆÍѲòÊü(free)¥ë¡¼¥Æ¥£¥ó¡£ºÇ½é¤Î°ú¤­¿ô¤Ï¥ª¥Ö¥¸¥§¥¯¥È¤ò²òÊü¤¹¤ë¤¿¤á¤Î -XDR ¥ë¡¼¥Æ¥£¥ó¤Ç¤¢¤ë¡£ÆóÈÖÌܤΰú¤­¿ô¤Ï¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¼«¿È¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼ -¤Ç¤¢¤ë¡£Ãí°Õ: ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ËÅϤµ¤ì¤ë¥Ý¥¤¥ó¥¿¡¼¤Ï -.I ²òÊü¤µ¤ì¤Ê¤¤ -¤¬¡¢¤³¤Î¥Ý¥¤¥ó¥¿¡¼¤Î»Ø¤¹¥Ç¡¼¥¿¤Ï(ºÆµ¢Åª¤Ë) -.IR ²òÊü¤µ¤ì¤ë ¡£ +汎用解放(free)ルーティン。最初の引き数はオブジェクトを解放するための +XDR ルーティンである。二番目の引き数はそのオブジェクト自身へのポインター +である。注意: このルーティンに渡されるポインターは +.I 解放されない +が、このポインターの指すデータは(再帰的に) +.IR 解放される 。 .LP .nf .BI "unsigned int xdr_getpos(XDR *" xdrs ); @@ -255,13 +255,13 @@ XDR .\"O A desirable feature of .SM XDR .\"O streams is that simple arithmetic works with this number, .\"O although the XDR stream instances need not guarantee this. -¤³¤Î¥Þ¥¯¥í¤Ï XDR ¥¹¥È¥ê¡¼¥à +このマクロは XDR ストリーム .I xdrs -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿°ÌÃÖ¼èÆÀ¥ë¡¼¥Æ¥£¥ó¤ò¸Æ¤Ó½Ð¤¹¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï XDR ¥Ð¥¤¥È¡¦¥¹¥È¥ê¡¼¥à¤Î°ÌÃÖ¤ò»Ø¼¨¤¹¤ëÉä¹æ̵¤·À°¿ô¤òÊÖ¤¹¡£ -XDR ¥¹¥È¥ê¡¼¥à¤Îµ¡Ç½¤È¤·¤Æ¤³¤Î¿ôÃͤÇñ½ã¤Ê»»½Ñºî¶È¤¬¤Ç¤­¤ë¤³¤È¤¬ -´üÂÔ¤µ¤ì¤Æ¤ë¤¤¤ë¡£¤·¤«¤·¤Ê¤¬¤é -XDR ¥¹¥È¥ê¡¼¥à¤Î¼ÂÂΤϤ³¤ì¤òÊݾڤ¹¤ëɬÍפϤʤ¤¡£ +に関連付けられた位置取得ルーティンを呼び出す。 +このルーティンは XDR バイト・ストリームの位置を指示する符号無し整数を返す。 +XDR ストリームの機能としてこの数値で単純な算術作業ができることが +期待されてるいる。しかしながら +XDR ストリームの実体はこれを保証する必要はない。 .LP .nf .BI "long *xdr_inline(XDR *" xdrs ", int " len ); @@ -275,15 +275,15 @@ XDR .\"O is the byte length of the desired buffer. .\"O Note: pointer is cast to .\"O .IR "long *" . -¤³¤Î¥Þ¥¯¥í¤Ï XDR ¥¹¥È¥ê¡¼¥à +このマクロは XDR ストリーム .I xdrs -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿ÆâÉô(inline)¥ë¡¼¥Æ¥£¥ó¤ò¸Æ¤Ó½Ð¤¹¡£ -¥ë¡¼¥Æ¥£¥ó¤Ï¥¹¥È¥ê¡¼¥à¤Î¥Ð¥Ã¥Õ¥¡¡¼¤ÎϢ³¤¹¤ëÃÇÊҤؤΥݥ¤¥ó¥¿¡¼¤òÊÖ¤¹¡£ +に関連付けられた内部(inline)ルーティンを呼び出す。 +ルーティンはストリームのバッファーの連続する断片へのポインターを返す。 .I len -¤ÏÍ׵᤹¤ë¥Ð¥Ã¥Õ¥¡¡¼¤Î¥Ð¥¤¥ÈŤǤ¢¤ë¡£ -Ãí°Õ: ¥Ý¥¤¥ó¥¿¡¼¤Ï +は要求するバッファーのバイト長である。 +注意: ポインターは .I "long *" -¤Ë¥­¥ã¥¹¥È¤µ¤ì¤ë¡£ +にキャストされる。 .IP .\"O Warning: .\"O .BR xdr_inline () @@ -291,12 +291,12 @@ XDR .\"O if it cannot allocate a contiguous piece of a buffer. .\"O Therefore the behavior may vary among stream instances; .\"O it exists for the sake of efficiency. -·Ù¹ð: +警告: .BR xdr_inline () -¤Ï¥Ð¥Ã¥Õ¥¡¡¼¤ÎϢ³¤¹¤ëÃÇÊÒ¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï -NULL (0)¤òÊÖ¤¹¤«¤â¤·¤ì¤Ê¤¤¡£ -¤É¤Î¾ì¹ç¤â¤½¤ÎÆ°ºî¤Ï¥¹¥È¥ê¡¼¥à¤Î¼ÂÂΤˤè¤Ã¤ÆÊѲ½¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤ì¤Ï¸úΨ²½¤Î¤¿¤á¤Ë¸ºß¤·¤Æ¤¤¤ë¡£ +はバッファーの連続する断片を割り当てることができなかった場合には +NULL (0)を返すかもしれない。 +どの場合もその動作はストリームの実体によって変化するかもしれない。 +これは効率化のために存在している。 .LP .nf .BI "bool_t xdr_int(XDR *" xdrs ", int *" ip ); @@ -305,9 +305,9 @@ NULL (0) .\"O A filter primitive that translates between C integers .\"O and their external representations. .\"O This routine returns one if it succeeds, zero otherwise. -C ¤ÎÀ°¿ô(int)¤È¤½¤Î³°Éôɽ¸½¤È¤òÊÑ´¹¤¹¤ë¤¿¤á¤Î´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +C の整数(int)とその外部表現とを変換するための基本フィルター。 +このルーティンは成功した場合は 1 を返す。 +失敗した場合はゼロを返す。 .LP .nf .BI "bool_t xdr_long(XDR *" xdrs ", long *" lp ); @@ -317,11 +317,11 @@ C .\"O .I long .\"O integers and their external representations. .\"O This routine returns one if it succeeds, zero otherwise. -C ¤Î +C の .I long -À°¿ô¤È¤½¤Î¤½¤Î³°Éôɽ¸½¤È¤òÊÑ´¹¤¹¤ë¤¿¤á¤Î´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +整数とそのその外部表現とを変換するための基本フィルター。 +このルーティンは成功した場合は 1 を返す。 +失敗した場合はゼロを返す。 .LP .nf .BI "void xdrmem_create(XDR *" xdrs ", char *" addr ", unsigned int " size , @@ -343,21 +343,21 @@ C .\"O .BR XDR_DECODE , .\"O or .\"O .BR XDR_FREE ). -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï +このルーティンは .I xdrs -¤Ë¤è¤Ã¤Æ»Ø¤µ¤ì¤Æ¤¤¤ë XDR ¥¹¥È¥ê¡¼¥à¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò½é´ü²½¤¹¤ë¡£ -¥¹¥È¥ê¡¼¥à¤Î¥Ç¡¼¥¿¤Ï +によって指されている XDR ストリーム・オブジェクトを初期化する。 +ストリームのデータは .I addr -°ÌÃ֤ˤ¢¤ë¥á¥â¥ê¡¼¤Î²ô¤«¤éÆɤ߽ñ¤­¤µ¤ì¤ë¡£ -¤½¤ÎŤµ¤Ï¥Ð¥¤¥Èñ°Ì¤Ç +位置にあるメモリーの塊から読み書きされる。 +その長さはバイト単位で .I size -Ķ¤¨¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ +超えてはいけない。 .I op -¤Ï XDR ¥¹¥È¥ê¡¼¥à¤ÎÊÑ´¹Êý¸þ¤ò·èÄꤹ¤ë +は XDR ストリームの変換方向を決定する .RB ( XDR_ENCODE , .BR XDR_DECODE , .B XDR_FREE -¤Î¤É¤ì¤«)¡£ +のどれか)。 .LP .nf .BI "bool_t xdr_opaque(XDR *" xdrs ", char *" cp ", unsigned int " cnt ); @@ -371,14 +371,14 @@ C .\"O .I cnt .\"O is its size in bytes. .\"O This routine returns one if it succeeds, zero otherwise. -¸ÇÄêŤÎÉÔÌÀ¥Ç¡¼¥¿¤È¤½¤Î³°Éôɽ¸½¤È¤ÎÊÑ´¹¤ò¹Ô¤Ê¤¦´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -°ú¤­¿ô +固定長の不明データとその外部表現との変換を行なう基本フィルター。 +引き数 .I cp -¤ÏÉÔÌÀ¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ê +は不明オブジェクトのアドレスであり .I cnt -¤Ï¤½¤Î¥Ð¥¤¥Èñ°Ì¤ÎÂ礭¤µ¤Ç¤¢¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +はそのバイト単位の大きさである。 +このルーティンは成功した場合は 1 を返す。 +失敗した場合はゼロを返す。 .LP .nf .BI "bool_t xdr_pointer(XDR *" xdrs ", char **" objpp , @@ -396,12 +396,12 @@ C .\"O recursive data structures, such as binary trees or .\"O linked lists. .BR xdr_reference () -¤ÈƱÍͤǤ¢¤ë¤¬¡¢¤³¤ì¤¬ NULL ¥Ý¥¤¥ó¥¿¡¼¤òÈֹ沽¤¹¤ë¤Î¤ËÂФ·¤Æ +と同様であるが、これが NULL ポインターを番号化するのに対して .BR xdr_reference () -¤Ï¤½¤¦¤·¤Ê¤¤ÅÀ¤¬°Û¤Ê¤Ã¤Æ¤¤¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢ +はそうしない点が異なっている。これにより、 .BR xdr_pointer () -¤ÏÆóʬÌÚ¤äÏ¢·ë¥ê¥¹¥È¤Î¤è¤¦¤ÊºÆµ¢Åª¤Ê¥Ç¡¼¥¿¹½Â¤ÂΤò -ɽ¸½¤Ç¤­¤ë¡£ +は二分木や連結リストのような再帰的なデータ構造体を +表現できる。 .LP .nf .BI "void xdrrec_create(XDR *" xdrs ", unsigned int " sendsize , @@ -418,18 +418,18 @@ C .\"O The stream's data is read from a buffer of size .\"O .IR recvsize ; .\"O it too can be set to a suitable default by passing a zero value. -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï +このルーティンは .I xdrs -¤Ç»Ø¤µ¤ì¤¿ XDR ¥¹¥È¥ê¡¼¥à¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò½é´ü²½¤¹¤ë¡£ -¥¹¥È¥ê¡¼¥à¤Î¥Ç¡¼¥¿¤ÏÂ礭¤µ +で指された XDR ストリーム・オブジェクトを初期化する。 +ストリームのデータは大きさ .I sendsize -¤Î¥Ð¥Ã¥Õ¥¡¤Ø½ñ¤­¹þ¤Þ¤ì¤ë¡£ +のバッファへ書き込まれる。 .I sendsize -¤ò¥¼¥í¤Ë¤¹¤ë¤È¡¢¥·¥¹¥Æ¥à¤ËŬÀڤʥǥե©¥ë¥È¤ò»ÈÍѤ¹¤ë¤è¤¦¤Ë»Ø¼¨¤¹¤ë¡£ -¥¹¥È¥ê¡¼¥à¤Î¥Ç¡¼¥¿¤ÏÂ礭¤µ +をゼロにすると、システムに適切なデフォルトを使用するように指示する。 +ストリームのデータは大きさ .I recvsize -¤Î¥Ð¥Ã¥Õ¥¡¤«¤éÆɤ߹þ¤Þ¤ì¤ë¡£¤³¤ì¤â¥¼¥í¤òÅϤ¹¤³¤È¤ÇŬÀڤʥǥե©¥ë¥È¤Ë -ÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +のバッファから読み込まれる。これもゼロを渡すことで適切なデフォルトに +設定することができる。 .\"O When a stream's output buffer is full, .\"O .I writeit .\"O is called. @@ -444,29 +444,29 @@ C .\"O except that .\"O .I handle .\"O is passed to the former routines as the first argument. -¥¹¥È¥ê¡¼¥à¤Î½ÐÎϥХåե¡¤¬°ìÇդξì¹ç¤Ï +ストリームの出力バッファが一杯の場合は .I writeit -¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£Æ±Íͤ˥¹¥È¥ê¡¼¥àÆþÎϥХåե¡¤¬¶õ¤Î¾ì¹ç¤Ë¤Ï +が呼び出される。同様にストリーム入力バッファが空の場合には .I readit -¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£¤³¤ì¤é¤ÎÆó¤Ä¤Î¥ë¡¼¥Æ¥£¥ó¤ÎÆ°ºî¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î +が呼び出される。これらの二つのルーティンの動作はシステムコールの .BR read (2) -¤ä +や .BR write (2) -¤È»÷¤Æ¤¤¤ë¤¬¡¢Á°¼Ô¤Î¥ë¡¼¥Æ¥£¥ó¤ÏºÇ½é¤Î°ú¤­¿ô¤È¤·¤Æ +と似ているが、前者のルーティンは最初の引き数として .I handle -¤¬ÅϤµ¤ì¤ëÅÀ¤Ç°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ +が渡される点で異なっている。 .\"O Note: the XDR stream's .\"O .I op .\"O field must be set by the caller. -Ãí°Õ: XDR ¥¹¥È¥ê¡¼¥à¤Î +注意: XDR ストリームの .I op -¤Ï¸Æ¤Ó½Ð¤·Â¦¤ÇÀßÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は呼び出し側で設定しなければならない。 .IP .\"O Warning: this XDR stream implements an intermediate record stream. .\"O Therefore there are additional bytes in the stream .\"O to provide record boundary information. -·Ù¹ð: ¤³¤Î XDR ¥¹¥È¥ê¡¼¥à¤ÏÃæ´Ö¥ì¥³¡¼¥É¡¦¥¹¥È¥ê¡¼¥à¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¡£ -¥ì¥³¡¼¥É¶­³¦¤Î¾ðÊó¤òÄ󶡤¹¤ë¤¿¤á¤Ë¥¹¥È¥ê¡¼¥à¤Ë¤Ï;ʬ¤Ê¥Ð¥¤¥È¤¬Â¸ºß¤¹¤ë¡£ +警告: この XDR ストリームは中間レコード・ストリームを実装している。 +レコード境界の情報を提供するためにストリームには余分なバイトが存在する。 .LP .nf .BI "bool_t xdrrec_endofrecord(XDR *" xdrs ", int " sendnow ); @@ -479,13 +479,13 @@ C .\"O .I sendnow .\"O is nonzero. .\"O This routine returns one if it succeeds, zero otherwise. -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï +このルーティンは .BR xdrrec_create () -¤Ë¤è¤Ã¤ÆºîÀ®¤µ¤ì¤¿¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ¤Î¤ß¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ -½ÐÎϥХåե¡¤Î¥Ç¡¼¥¿¤Ï´°Á´¤Ê¥ì¥³¡¼¥É¤È¤·¤Æ°õ¤µ¤ì¡¢ +によって作成されたストリームに対してのみ呼び出すことができる。 +出力バッファのデータは完全なレコードとして印され、 .I sendnow -¤¬¥¼¥í¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï½ÐÎϥХåե¡¤Ï½ñ¤­½Ð¤µ¤ì¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +がゼロでない場合には出力バッファは書き出される。 +このルーティンは成功した場合は 1 を返す。失敗した場合はゼロを返す。 .LP .nf .BI "bool_t xdrrec_eof(XDR *" xdrs ); @@ -496,12 +496,12 @@ C .\"O After consuming the rest of the current record in the stream, .\"O this routine returns one if the stream has no more input, .\"O zero otherwise. -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï +このルーティンは .BR xdrrec_create () -¤Ë¤è¤Ã¤ÆºîÀ®¤µ¤ì¤¿¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ¤Î¤ß¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ -¥¹¥È¥ê¡¼¥à¤Î¸½ºß¤Î¥ì¥³¡¼¥É¤Î»Ä¤ê¤ò¾ÃÈñ¤·¤¿¸å¤Ë¡¢ -¥¹¥È¥ê¡¼¥à¤ËÆþÎϤ¬»Ä¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï 1 ¤òÊÖ¤¹¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +によって作成されたストリームに対してのみ呼び出すことができる。 +ストリームの現在のレコードの残りを消費した後に、 +ストリームに入力が残っていない場合には 1 を返す。 +それ以外の場合はゼロを返す。 .LP .nf .BI "bool_t xdrrec_skiprecord(XDR *" xdrs ); @@ -513,12 +513,12 @@ C .\"O It tells the XDR implementation that the rest of the current record .\"O in the stream's input buffer should be discarded. .\"O This routine returns one if it succeeds, zero otherwise. -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï +このルーティンは .BR xdrrec_create () -¤Ë¤è¤Ã¤ÆºîÀ®¤µ¤ì¤¿¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ¤Î¤ß¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ -XDR ¤Î¼ÂÁõ¤Ë¤½¤Î¥¹¥È¥ê¡¼¥à¤ÎÆþÎϥХåե¡¡¼¤Î¸½ºß¤Î¥ì¥³¡¼¥É¤Î»Ä¤ê¤ò -¼Î¤Æ¤ë¤è¤¦¤ËÅÁ¤¨¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +によって作成されたストリームに対してのみ呼び出すことができる。 +XDR の実装にそのストリームの入力バッファーの現在のレコードの残りを +捨てるように伝える。このルーティンは成功した場合は 1 を返す。 +失敗した場合はゼロを返す。 .LP .nf .BI "bool_t xdr_reference(XDR *" xdrs ", char **" pp ", unsigned int " size , @@ -539,28 +539,28 @@ XDR .\"O is an XDR procedure that filters the structure .\"O between its C form and its external representation. .\"O This routine returns one if it succeeds, zero otherwise. -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¡¼ÄÉÀפòÄ󶡤¹¤ë´ðËܥ롼¥Æ¥£¥ó¡£ -°ú¤­¿ô +構造体へのポインター追跡を提供する基本ルーティン。 +引き数 .I pp -¤Ï¥Ý¥¤¥ó¥¿¡¼¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +はポインターのアドレスである。 .I size -¤Ï +は .I *pp -¤¬»Ø¤·¤Æ¤¤¤ë¹½Â¤ÂΤΠ+が指している構造体の .I sizeof -¤Ç¤¢¤ë¡£ +である。 .I proc -¤Ï¤½¤Î¹½Â¤ÂΤΠC ·Á¼°¤È³°Éôɽ¸½¤È¤ÎÊÑ´¹¤ò¹Ô¤Ê¤¦ XDR ¥×¥í¥·¥¸¥ã¤Ç¤¢¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +はその構造体の C 形式と外部表現との変換を行なう XDR プロシジャである。 +このルーティンは成功した場合 1 を返す。 +失敗した場合はゼロを返す。 .IP .\"O Warning: this routine does not understand NULL pointers. .\"O Use .\"O .BR xdr_pointer () .\"O instead. -·Ù¹ð: ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï NULL ¥Ý¥¤¥ó¥¿¡¼¤òÍý²ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£¤«¤ï¤ê¤Ë +警告: このルーティンは NULL ポインターを理解することができない。かわりに .BR xdr_pointer () -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +を使用すること。 .LP .nf .BI "xdr_setpos(XDR *" xdrs ", unsigned int " pos ); @@ -575,22 +575,22 @@ XDR .\"O .BR xdr_getpos (). .\"O This routine returns one if the XDR stream could be repositioned, .\"O and zero otherwise. -¤³¤Î¥Þ¥¯¥í¤Ï XDR ¥¹¥È¥ê¡¼¥à +このマクロは XDR ストリーム .I xdrs -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿°ÌÃÖÀßÄê¥ë¡¼¥Æ¥£¥ó¤ò¸Æ¤Ó½Ð¤¹¡£°ú¤­¿ô +に関連付けられた位置設定ルーティンを呼び出す。引き数 .I pos -¤Ï +は .BR xdr_getpos () -¤Ë¤è¤Ã¤Æ¼èÆÀ¤µ¤ì¤ë°ÌÃÖ¿ôÃͤǤ¢¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï XDR ¥¹¥È¥ê¡¼¥à¤Î°ÌÃÖ¤ÎÊѹ¹¤¬¤Ç¤­¤¿¾ì¹ç¤Ë¤Ï 1 ¤òÊÖ¤¹¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +によって取得される位置数値である。 +このルーティンは XDR ストリームの位置の変更ができた場合には 1 を返す。 +それ以外の場合は 0 を返す。 .IP .\"O Warning: it is difficult to reposition some types of XDR .\"O streams, so this routine may fail with one .\"O type of stream and succeed with another. -·Ù¹ð: ¤¢¤ë¼ï¤Î XDR ¥¹¥È¥ê¡¼¥à¤Î¾ì¹ç¤Ï°ÌÃÖ¤ÎÊѹ¹¤ò¹Ô¤Ê¤¦¤³¤È¤¬º¤Æñ¤Ç¤¢¤ë¡£ -¤½¤ì¤Ç¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¤¢¤ë¼ï¤Î¥¹¥È¥ê¡¼¥à¤Î¾ì¹ç¤Ë¤ÏÀ®¸ù¤·¡¢Ê̤μïÎà¤Î -¾ì¹ç¤Ë¤Ï¼ºÇÔ¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +警告: ある種の XDR ストリームの場合は位置の変更を行なうことが困難である。 +それでこのルーティンはある種のストリームの場合には成功し、別の種類の +場合には失敗するかもしれない。 .LP .nf .BI "bool_t xdr_short(XDR *" xdrs ", short *" sp ); @@ -600,11 +600,11 @@ XDR .\"O .I short .\"O integers and their external representations. .\"O This routine returns one if it succeeds, zero otherwise. -C ¤Î +C の .I short -À°¿ô¤È¤½¤Î³°Éôɽ¸½¤È¤ÎÊÑ´¹¤ò¹Ô¤Ê¤¦´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤¹¤ë¤È 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +整数とその外部表現との変換を行なう基本フィルター。 +このルーティンは成功すると 1 を返す。 +失敗した場合はゼロを返す。 .LP .nf .BI "void xdrstdio_create(XDR *" xdrs ", FILE *" file ", enum xdr_op " op ); @@ -623,20 +623,20 @@ C .\"O .BR XDR_DECODE , .\"O or .\"O .BR XDR_FREE ). -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï +このルーティンは .I xdrs -¤Ç»Ø¤µ¤ì¤¿ XDR ¥¹¥È¥ê¡¼¥à¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò½é´ü²½¤¹¤ë¡£ -XDR ¥¹¥È¥ê¡¼¥à¤ËÆɤ߽ñ¤­¤ì¤¿¥Ç¡¼¥¿¤Ï +で指された XDR ストリーム・オブジェクトを初期化する。 +XDR ストリームに読み書きれたデータは .I stdio -¥¹¥È¥ê¡¼¥à +ストリーム .I file -¤¬»ÈÍѤµ¤ì¤ë¡£ +が使用される。 .I op -°ú¤­¿ô¤Ï XDR ¥¹¥È¥ê¡¼¥à¤ÎÊÑ´¹Êý¸þ¤ò·èÄꤹ¤ë +引き数は XDR ストリームの変換方向を決定する .RB ( XDR_ENCODE , .BR XDR_DECODE , .B XDR_FREE -¤Î¤É¤ì¤«)¡£ +のどれか)。 .IP .\"O Warning: the destroy routine associated with such XDR streams calls .\"O .BR fflush (3) @@ -644,13 +644,13 @@ XDR .\"O .I file .\"O stream, but never .\"O .BR fclose (3). -·Ù¹ð: ¤³¤Î¤è¤¦¤Ê XDR ¥¹¥È¥ê¡¼¥à¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿Ç˲õ¥ë¡¼¥Æ¥£¥ó¤Ï +警告: このような XDR ストリームに関連付けられた破壊ルーティンは .I file -¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ +ストリームに対して .BR fflush (3) -¤ò¸Æ¤Ó½Ð¤¹¤¬ +を呼び出すが .BR fclose (3) -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ï¤Ê¤¤¡£ +を呼び出すことはない。 .LP .nf .BI "bool_t xdr_string(XDR *" xdrs ", char **" sp ", unsigned int " maxsize ); @@ -664,15 +664,15 @@ XDR .\"O .I sp .\"O is the address of the string's pointer. .\"O This routine returns one if it succeeds, zero otherwise. -C ¤Îʸ»úÎó¤È¤½¤ì¤ËÂбþ¤¹¤ë³°Éôɽ¸½¤È¤òÊÑ´¹¤¹¤ë¤¿¤á¤Î´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -ʸ»úÎó¤Ï +C の文字列とそれに対応する外部表現とを変換するための基本フィルター。 +文字列は .I maxsize -¤è¤êŤ¯¤Ï¤Ç¤­¤Ê¤¤¡£ -Ãí°Õ: +より長くはできない。 +注意: .I sp -¤Ïʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +は文字列へのポインターのアドレスである。 +このルーティンは成功した場合は 1 を返す。 +失敗した場合はゼロを返す。 .LP .nf .BI "bool_t xdr_u_char(XDR *" xdrs ", unsigned char *" ucp ); @@ -682,11 +682,11 @@ C .\"O .I unsigned .\"O C characters and their external representations. .\"O This routine returns one if it succeeds, zero otherwise. -C ¤Î -.I Éä¹æ̵¤·Ê¸»ú (unsigned char) -¤È¤½¤Î³°Éôɽ¸½¤È¤òÊÑ´¹¤¹¤ë´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +C の +.I 符号無し文字 (unsigned char) +とその外部表現とを変換する基本フィルター。 +このルーティンは成功した場合は 1 を返す。 +失敗した場合はゼロを返す。 .LP .nf .BI "bool_t xdr_u_int(XDR *" xdrs ", unsigned *" up ); @@ -696,11 +696,11 @@ C .\"O .I unsigned .\"O integers and their external representations. .\"O This routine returns one if it succeeds, zero otherwise. -C ¤Î -.I Éä¹æ̵¤·À°¿ô (unsigned) -¤È¤½¤Î³°Éôɽ¸½¤òÊÑ´¹¤¹¤ë¤¿¤á¤Î´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +C の +.I 符号無し整数 (unsigned) +とその外部表現を変換するための基本フィルター。 +このルーティンは成功した場合は 1 を返す。 +失敗した場合はゼロを返す。 .LP .nf .BI "bool_t xdr_u_long(XDR *" xdrs ", unsigned long *" ulp ); @@ -710,11 +710,11 @@ C .\"O .I "unsigned long" .\"O integers and their external representations. .\"O This routine returns one if it succeeds, zero otherwise. -C ¤Î +C の .I "unsigned long" -À°¿ô¤È¤½¤Î³°Éôɽ¸½¤òÊÑ´¹¤¹¤ë¤¿¤á¤Î´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +整数とその外部表現を変換するための基本フィルター。 +このルーティンは成功した場合は 1 を返す。 +失敗した場合はゼロを返す。 .LP .nf .BI "bool_t xdr_u_short(XDR *" xdrs ", unsigned short *" usp ); @@ -724,11 +724,11 @@ C .\"O .I "unsigned short" .\"O integers and their external representations. .\"O This routine returns one if it succeeds, zero otherwise. -C ¤Î +C の .I "unsigned short" -À°¿ô¤È¤½¤Î³°Éôɽ¸½¤òÊÑ´¹¤¹¤ë¤¿¤á¤Î´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +整数とその外部表現を変換するための基本フィルター。 +このルーティンは成功した場合は 1 を返す。 +失敗した場合はゼロを返す。 .LP .nf .BI "bool_t xdr_union(XDR *" xdrs ", int *" dscmp ", char *" unp , @@ -742,17 +742,17 @@ C .\"O It first .\"O translates the discriminant of the union located at .\"O .IR dscmp . -ʬÊ̲Äǽ¤Ê C ¤Î -.I "¶¦ÍÑÂÎ (union)" -¤È¤½¤Î³°Éô·Á¼°¤È¤òÊÑ´¹¤¹¤ë´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -ºÇ½é¤Ë +分別可能な C の +.I "共用体 (union)" +とその外部形式とを変換する基本フィルター。 +最初に .I dscmp -¤È¤·¤ÆÍ¿¤¨¤é¤ì¤¿¶¦ÍÑÂΤÎʬÊÌÍ×ÁǤ¬ÊÑ´¹¤µ¤ì¤ë¡£ +として与えられた共用体の分別要素が変換される。 .\"O This discriminant is always an .\"O .IR enum_t . -¤³¤ÎʬÊÌÍ×ÁǤϾï¤Ë +この分別要素は常に .I enum_t -¤Ç¤¢¤ë¡£ +である。 .\"O Next the union located at .\"O .I unp .\"O is translated. @@ -763,15 +763,15 @@ C .\"O structures. .\"O Each structure contains an ordered pair of .\"O .RI [ value , proc ]. -¼¡¤Ë +次に .I unp -¤Î°ÌÃ֤ζ¦ÍÑÂΤ¬ÊÑ´¹¤µ¤ì¤ë¡£°ú¤­¿ô +の位置の共用体が変換される。引き数 .I choices -¤Ï +は .BR xdr_discrim () -¹½Â¤ÂΤÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£³Æ¹½Â¤ÂÎ¤Ï +構造体の配列へのポインターである。各構造体は .RI [ value , proc ] -¤Î½ç½øÉÕ¤­¥Ú¥¢¤ò³ÊǼ¤·¤Æ¤¤¤ë¡£ +の順序付きペアを格納している。 .\"O If the union's discriminant is equal to the associated .\"O .IR value , .\"O then the @@ -780,27 +780,27 @@ C .\"O The end of the .\"O .BR xdr_discrim () .\"O structure array is denoted by a routine of value NULL. -¤â¤·¶¦ÍÑÂΤÎʬÊÌÍ×ÁǤ¬´ØÏ¢ÉÕ¤±¤é¤ì¤¿ +もし共用体の分別要素が関連付けられた .I value -¤ÈÅù¤·¤¤¾ì¹ç¤Ë¤Ï¡¢¶¦ÍÑÂΤòÊÑ´¹¤¹¤ë¤¿¤á¤Ë +と等しい場合には、共用体を変換するために .I proc -¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ +が呼び出される。 .BR xdr_discrim () -¹½Â¤ÂΤÎÇÛÎó¤ÎºÇ¸å¤Ï¡¢¥ë¡¼¥Æ¥£¥ó¤È¤·¤Æ +構造体の配列の最後は、ルーティンとして .SM NULL -¤ò»ØÄꤹ¤ë¤³¤È¤Ç¼¨¤µ¤ì¤ë¡£ +を指定することで示される。 .\"O If the discriminant is not found in the .\"O .I choices .\"O array, then the .\"O .I defaultarm .\"O procedure is called (if it is not NULL). .\"O Returns one if it succeeds, zero otherwise. -ʬÊÌÍ×ÁǤ¬ +分別要素が .I choices -ÇÛÎó¤ÎÃæ¤Ë¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ +配列の中に見つからなかった場合、 .I defaultarm -¤¬ (NULL ¤Ç¤Ê¤±¤ì¤Ð) ¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ -À®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +が (NULL でなければ) 呼び出される。 +成功した場合は 1 を返す。失敗した場合はゼロを返す。 .LP .nf .BI "bool_t xdr_vector(XDR *" xdrs ", char *" arrp ", unsigned int " size , @@ -824,20 +824,20 @@ C .\"O the array elements' C form, and their external .\"O representation. .\"O This routine returns one if it succeeds, zero otherwise. -¸ÇÄêŤÎÇÛÎó¤È¤½¤ì¤é¤¬Âбþ¤¹¤ë³°Éôɽ¸½¤È¤òÊÑ´¹¤¹¤ë´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -°ú¤­¿ô +固定長の配列とそれらが対応する外部表現とを変換する基本フィルター。 +引き数 .I arrp -¤ÏÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£°ìÊý¤Ç +は配列へのポインターのアドレスである。一方で .I size -¤ÏÇÛÎó¤ÎÍ×ÁÇ¿ô¤½¤Î¤â¤Î¤Ç¤¢¤ë¡£°ú¤­¿ô +は配列の要素数そのものである。引き数 .I elsize -¤ÏÇÛÎó¤Î³ÆÍ×ÁǤΠ+は配列の各要素の .I sizeof -¤Ç¡¢ +で、 .I elproc -¤ÏÇÛÎó¤ÎÍ×ÁǤò C ·Á¼°¤«¤é¤½¤Î³°Éôɽ¸½¤Ø¤ÈÊÑ´¹¤¹¤ë XDR ¥Õ¥£¥ë¥¿¡¼¤Ç¤¢¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +は配列の要素を C 形式からその外部表現へと変換する XDR フィルターである。 +このルーティンは成功した場合 1 を返す。 +失敗した場合はゼロを返す。 .LP .nf .BI "bool_t xdr_void(void);" @@ -846,9 +846,9 @@ C .\"O This routine always returns one. .\"O It may be passed to RPC routines that require a function argument, .\"O where nothing is to be done. -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¾ï¤Ë 1 ¤òÊÖ¤¹¡£ -¤³¤ì¤Ï²¿¤â¹Ô¤Ê¤ï¤Ê¤¤¤¬¡¢´Ø¿ô°ú¤­¿ô¤¬É¬Í×¤Ê -RPC ¥ë¡¼¥Æ¥£¥ó¤ËÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¡£ +このルーティンは常に 1 を返す。 +これは何も行なわないが、関数引き数が必要な +RPC ルーティンに渡すことができる。 .LP .nf .BI "bool_t xdr_wrapstring(XDR *" xdrs ", char **" sp ); @@ -866,26 +866,26 @@ RPC .\"O one of the most frequently used primitives, requires three. .\"O Returns one if it succeeds, zero otherwise. .B "xdr_string(xdrs, sp, \s-1MAXUN.UNSIGNED\s0 );" -¤ò¸Æ¤Ó½Ð¤¹´ðËܥ롼¥Æ¥£¥ó¡£ -¤³¤³¤Ç +を呼び出す基本ルーティン。 +ここで .B .SM MAXUN.UNSIGNED -¤ÏÉä¹æ̵¤·À°¿ô(unsigned int)¤ÎºÇÂçÃͤǤ¢¤ë¡£ +は符号無し整数(unsigned int)の最大値である。 .BR xdr_wrapstring () -¤Ï¡¢ +は、 .SM RPC -¥Ñ¥Ã¥±¡¼¥¸¤ÏÆó¤Ä¤Î +パッケージは二つの .SM XDR -¥ë¡¼¥Æ¥£¥ó¤ÎºÇÂçÃͤò°ú¤­¿ô¤È¤·¤ÆÅϤ¹¤¿¤áÊØÍø¤Ç¤¢¤ë¡£ +ルーティンの最大値を引き数として渡すため便利である。 .BR xdr_string () -¤ÏºÇ¤âÉÑÈˤËÍøÍѤµ¤ì¤ë´ðËܥ롼¥Æ¥£¥ó¤Ç¤¢¤ë¤¬»°¤Ä¤òÍ׵᤹¤ë¡£ -À®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡¢¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +は最も頻繁に利用される基本ルーティンであるが三つを要求する。 +成功した場合は 1 を返す、失敗した場合はゼロを返す。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR rpc (3) .LP .\"O The following manuals: -°Ê²¼¤Î¥Þ¥Ë¥å¥¢¥ë: +以下のマニュアル: .RS eXternal Data Representation Standard: Protocol Specification .br diff --git a/draft/man3/y0.3 b/draft/man3/y0.3 index 7f10caf6..43a41125 100644 --- a/draft/man3/y0.3 +++ b/draft/man3/y0.3 @@ -37,13 +37,13 @@ .\" .TH Y0 3 2008-08-10 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O y0, y0f, y0l, y1, y1f, y1l, yn, ynf, ynl \- .\"O Bessel functions of the second kind y0, y0f, y0l, y1, y1f, y1l, yn, ynf, ynl \- -ÂèÆó¼ï¥Ù¥Ã¥»¥ë´Ø¿ô +第二種ベッセル関数 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -67,14 +67,14 @@ y0, y0f, y0l, y1, y1f, y1l, yn, ynf, ynl \- .fi .sp .\"O Link with \fI\-lm\fP. -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -97,7 +97,7 @@ _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 600 .RE .ad b .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .PP .\"O The .\"O .BR y0 () @@ -109,19 +109,19 @@ _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 600 .\"O .BR yn () .\"O function .\"O returns the Bessel function of \fIx\fP of the second kind of order \fIn\fP. -´Ø¿ô +関数 .BR y0 () -¤È +と .BR y1 () -¤Ï¤½¤ì¤¾¤ì \fIx\fP ¤Î 0 ¼¡¡¢1 ¼¡¤Î -ÂèÆó¼ï¥Ù¥Ã¥»¥ë´Ø¿ô¤ÎÃͤòÊÖ¤¹¡£ -´Ø¿ô +はそれぞれ \fIx\fP の 0 次、1 次の +第二種ベッセル関数の値を返す。 +関数 .BR yn () -¤Ï \fIx\fP ¤Î \fIn\fP ¼¡¤Î -ÂèÆó¼ï¥Ù¥Ã¥»¥ë´Ø¿ô¤ÎÃͤòÊÖ¤¹¡£ +は \fIx\fP の \fIn\fP 次の +第二種ベッセル関数の値を返す。 .PP .\"O The value of \fIx\fP must be positive. -\fIx\fP ¤ÏÀµ¤ÎÃͤǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +\fIx\fP は正の値でなければならない。 .PP .\"O The .\"O .BR y0f () @@ -133,27 +133,27 @@ _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 600 .\"O .I "long double" .\"O values, respectively. .BR y0f () -·²¤Î´Ø¿ô¡¢ +群の関数、 .BR y0l () -·²¤Î´Ø¿ô¤Ï¡¢¤½¤ì¤¾¤ì +群の関数は、それぞれ .I float -·¿¡¢ +型、 .I "long double" -·¿¤ÎÊÖ¤êÃͤòÊÖ¤¹¡£ +型の返り値を返す。 .\"O .SH RETURN VALUE -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O On success, these functions return the appropriate .\"O Bessel value of the second kind for .\"O .IR x . -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +成功すると、これらの関数は .I x -¤ËÂФ¹¤ëÂèÆó¼ï¥Ù¥Ã¥»¥ë´Ø¿ô¤ÎÃͤòÊÖ¤¹¡£ +に対する第二種ベッセル関数の値を返す。 .\"O If .\"O .I x .\"O is a NaN, a NaN is returned. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .\"O If .\"O .I x @@ -167,12 +167,12 @@ _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 600 .\"O respectively. .\"O (POSIX.1-2001 also allows a NaN return for this case.) .I x -¤¬Éé¤Î¾ì¹ç¡¢Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +が負の場合、領域エラー (domain error) が発生し、 +各関数はそれぞれ .RB - HUGE_VAL , .RB - HUGE_VALF , .RB - HUGE_VALL -¤òÊÖ¤¹ (POSIX.1-2001 ¤Ç¤Ï¤³¤Î¾ì¹ç¤Ë NaN ¤òÊÖ¤¹¤³¤È¤âǧ¤á¤Æ¤¤¤ë)¡£ +を返す (POSIX.1-2001 ではこの場合に NaN を返すことも認めている)。 .\"O If .\"O .I x @@ -185,19 +185,19 @@ _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 600 .\"O .RB - HUGE_VALL , .\"O respectively. .I x -¤¬ 0.0 ¤Î¾ì¹ç¡¢¶Ë¥¨¥é¡¼ (pole error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +が 0.0 の場合、極エラー (pole error) が発生し、 +各関数はそれぞれ .RB - HUGE_VAL , .RB - HUGE_VALF , .RB - HUGE_VALL -¤òÊÖ¤¹¡£ +を返す。 .\"O If the result underflows, .\"O a range error occurs, .\"O and the functions return 0.0 -·ë²Ì¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ -ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï 0.0 ¤òÊÖ¤¹¡£ +結果がアンダーフローする場合、 +範囲エラー (range error) が発生し、 +各関数は 0.0 を返す。 .\"O If the result overflows, .\"O a range error occurs, @@ -208,27 +208,27 @@ _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 600 .\"O .RB - HUGE_VALL , .\"O respectively. .\"O (POSIX.1-2001 also allows a 0.0 return for this case.) -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +結果がオーバーフローする場合、範囲エラーが発生し、 +各関数はそれぞれ .RB - HUGE_VAL , .RB - HUGE_VALF , .RB - HUGE_VALL -¤òÊÖ¤¹ (POSIX.1-2001 ¤Ç¤Ï¤³¤Î¾ì¹ç¤Ë 0.0 ¤òÊÖ¤¹¤³¤È¤âǧ¤á¤Æ¤¤¤ë)¡£ +を返す (POSIX.1-2001 ではこの場合に 0.0 を返すことも認めている)。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O See .\"O .BR math_error (7) .\"O for information on how to determine whether an error has occurred .\"O when calling these functions. -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O The following errors can occur: -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP .\"O Domain error: \fIx\fP is negative -Îΰ襨¥é¡¼: \fIx\fP ¤¬Éé +領域エラー: \fIx\fP が負 .\"O .I errno .\"O is set to .\"O .BR EDOM . @@ -236,15 +236,15 @@ _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 600 .\"O .RB ( FE_INVALID ) .\"O is raised. .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë¡£ -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP .\"O Pole error: \fIx\fP is 0.0 -¶Ë¥¨¥é¡¼: \fIx\fP ¤¬ 0.0 +極エラー: \fIx\fP が 0.0 .\" Before POSIX.1-2001 TC2, this was (inconsistently) specified .\" as a range error. .\"O .I errno @@ -258,26 +258,26 @@ _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 600 .\"O .BR fetestexcept (3) .\"O for this case. .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë (¡Ö¥Ð¥°¡×¤ÎÀá¤ò»²¾È¤Î¤³¤È)¡£ -¤³¤Î¥¨¥é¡¼¤Î¾ì¹ç¡¢ +が設定される (「バグ」の節を参照のこと)。 +このエラーの場合、 .BR fetestexcept (3) -¤Ï +は .B FE_DIVBYZERO -Îã³°¤òÊÖ¤µ¤Ê¤¤¡£ +例外を返さない。 .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6808 .TP .\"O Range error: result underflow -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤Î¥¢¥ó¥À¡¼¥Õ¥í¡¼ +範囲エラー: 結果のアンダーフロー .\" e.g., y0(1e33) on glibc 2.8/x86-32 .\"O .I errno .\"O is set to .\"O .BR ERANGE . .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .\" An underflow floating-point exception .\" .RB ( FE_UNDERFLOW ) .\" is raised. @@ -288,44 +288,44 @@ _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 600 .\"O exception is returned by .\"O .BR fetestexcept (3) .\"O for this case. -¤³¤Î¥¨¥é¡¼¤Î¾ì¹ç¡¢ +このエラーの場合、 .BR fetestexcept (3) -¤Ï +は .B FE_UNDERFLOW -Îã³°¤òÊÖ¤µ¤Ê¤¤¡£ +例外を返さない。 .TP .\"O Range error: result overflow -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ +範囲エラー: 結果のオーバーフロー .\" e.g., yn(10, 1e-40) on glibc 2.8/x86-32 .\" .I errno .\" is set to .\" .BR ERANGE . .\"O .I errno .\"O is not set for this case. -¤³¤Î¾ì¹ç¡¢ +この場合、 .I errno -¤ÏÀßÄꤵ¤ì¤Ê¤¤¡£ +は設定されない。 .\" FIXME . Is it intentional that errno is not set? .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6808 .\"O An overflow floating-point exception .\"O .RB ( FE_OVERFLOW ) .\"O is raised. -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The functions returning .\"O .I double .\"O conform to SVr4, 4.3BSD, .\"O POSIX.1-2001. .I double -·¿¤ÎÃͤòÊÖ¤¹´Ø¿ô¤Ï¡¢SVr4, 4.3BSD, POSIX.1-2001 -¤Ë½àµò¤¹¤ë¡£ +型の値を返す関数は、SVr4, 4.3BSD, POSIX.1-2001 +に準拠する。 .\"O The others are nonstandard functions that also exist on the BSDs. -¤½¤ì°Ê³°¤ÏÈóɸ½à¤Î´Ø¿ô¤Ç¡¢BSD ¤Ë¤â¸ºß¤¹¤ë¡£ +それ以外は非標準の関数で、BSD にも存在する。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O On a pole error, these functions set .\"O .I errno .\"O to @@ -333,28 +333,28 @@ _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 600 .\"O instead of .\"O .BR ERANGE .\"O as POSIX.1-2004 requires. -¶Ë¥¨¥é¡¼¤Î¾ì¹ç¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +極エラーの場合、これらの関数は .I errno -¤Ë +に .B EDOM -¤òÀßÄꤹ¤ë¤¬¡¢ -POSIX.1-2004 ¤Ç¤Ï +を設定するが、 +POSIX.1-2004 では .B ERANGE -¤òÀßÄꤹ¤ë¤³¤È¤¬Í׵ᤵ¤ì¤Æ¤¤¤ë¡£ +を設定することが要求されている。 .\" FIXME . .\" Bug raised: http://sourceware.org/bugzilla/show_bug.cgi?id=6807 .\"O In glibc version 2.3.2 and earlier, -glibc ¥Ð¡¼¥¸¥ç¥ó 2.3.2 °ÊÁ°¤Ç¤Ï¡¢ +glibc バージョン 2.3.2 以前では、 .\" FIXME . Actually, 2.3.2 is the earliest test result I have; so yet .\" to confirm if this error occurs only in 2.3.2. .\"O these functions do not raise an invalid floating-point exception .\"O .RB ( FE_INVALID ) .\"O when a domain error occurs. -Îΰ襨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï -ÉÔÀµÉâÆ°¾®¿ôÅÀÎã³° +領域エラーが発生した場合に、これらの関数は +不正浮動小数点例外 .RB ( FE_INVALID ) -¤ò¾å¤²¤Ê¤¤¡£ +を上げない。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR j0 (3) diff --git a/draft/man4/console.4 b/draft/man4/console.4 index 448883d8..05c0f02e 100644 --- a/draft/man4/console.4 +++ b/draft/man4/console.4 @@ -13,50 +13,50 @@ .\" by ISHIKAWA Mutsumi .\" Updated Wed Jan 9 JST 2002 by Kentaro Shirakata .\" -.\" WORD: console ¥³¥ó¥½¡¼¥ë -.\" WORD: terminal üËö -.\" WORD: virtual ²¾ÁÛ -.\" WORD: major number ¥á¥¸¥ã¡¼¥Ê¥ó¥Ð¡¼ -.\" WORD: minor number ¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼ -.\" WORD: character device ¥­¥ã¥é¥¯¥¿¡¼¥Ç¥Ð¥¤¥¹ -.\" WORD: device file ¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë -.\" WORD: kernel ¥«¡¼¥Í¥ë -.\" WORD: compile ¥³¥ó¥Ñ¥¤¥ë -.\" WORD: key mapping ¥­¡¼¥Þ¥Ã¥Ô¥ó¥° -.\" WORD: screen buffer ¥¹¥¯¥ê¡¼¥ó¥Ð¥Ã¥Õ¥¡ -.\" WORD: simulate ¥·¥ß¥å¥ì¡¼¥È -.\" WORD: escape sequence ¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ -.\" WORD: initial state ½é´ü¾õÂÖ -.\" WORD: reset ¥ê¥»¥Ã¥È +.\" WORD: console コンソール +.\" WORD: terminal 端末 +.\" WORD: virtual 仮想 +.\" WORD: major number メジャーナンバー +.\" WORD: minor number マイナーナンバー +.\" WORD: character device キャラクターデバイス +.\" WORD: device file デバイスファイル +.\" WORD: kernel カーネル +.\" WORD: compile コンパイル +.\" WORD: key mapping キーマッピング +.\" WORD: screen buffer スクリーンバッファ +.\" WORD: simulate シミュレート +.\" WORD: escape sequence エスケープシーケンス +.\" WORD: initial state 初期状態 +.\" WORD: reset リセット .TH CONSOLE 4 1994-10-31 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -console \- ¥³¥ó¥½¡¼¥ëüËö (console terminal) ¤È²¾ÁÛ¥³¥ó¥½¡¼¥ë (virtual console) -.SH ÀâÌÀ +.SH 名前 +console \- コンソール端末 (console terminal) と仮想コンソール (virtual console) +.SH 説明 .\"O A Linux system has up to 63 \fIvirtual consoles\fP .\"O (character devices with major number 4 and minor number 1 to 63), .\"O usually called \fI/dev/tty\fP\fIn\fP with 1 \(<= \fIn\fP \(<= 63. -Linux ¥·¥¹¥Æ¥à¤ÏÉáÄÌ¡¢\fI/dev/tty\fP\fIn\fP (n ¤Ï 1 \(<= \fIn\fP \(<= -63) ¤È¸Æ¤Ð¤ì¤ë\fI²¾ÁÛ¥³¥ó¥½¡¼¥ë\fP (¥á¥¸¥ã¡¼¥Ê¥ó¥Ð¡¼ (major number) -4 ¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼ (minor number) 1 ¤«¤é 63 ¤Î¥­¥ã¥é¥¯¥¿¡¼¥Ç¥Ð¥¤¥¹ -(character device)) ¤ò»ý¤Ä¡£ +Linux システムは普通、\fI/dev/tty\fP\fIn\fP (n は 1 \(<= \fIn\fP \(<= +63) と呼ばれる\fI仮想コンソール\fP (メジャーナンバー (major number) +4 マイナーナンバー (minor number) 1 から 63 のキャラクターデバイス +(character device)) を持つ。 .\"O The current console is also addressed by .\"O \fI/dev/console\fP or \fI/dev/tty0\fP, the character device with .\"O major number 4 and minor number 0. -¸½ºß¤Î¥³¥ó¥½¡¼¥ë¤Ï \fI/dev/console\fP ¤Þ¤¿¤Ï \fI/dev/tty0\fP (¥á¥¸¥ã¡¼ -¥Ê¥ó¥Ð¡¼ 4 ¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼ 0 ¤Î¥­¥ã¥é¥¯¥¿¡¼¥Ç¥Ð¥¤¥¹) ¤Ë¤è¤Ã¤Æ¤â°·¤¨¤ë¡£ +現在のコンソールは \fI/dev/console\fP または \fI/dev/tty0\fP (メジャー +ナンバー 4 マイナーナンバー 0 のキャラクターデバイス) によっても扱える。 .\"O The device files /dev/* are usually created using the script MAKEDEV, .\"O or using .\"O .BR mknod (1), .\"O usually with mode 0622 and owner root.tty. -¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë (device file) /dev/* ¤ÏÉáÄÌ MAKEDEV ¥¹¥¯¥ê¥×¥È¤Þ¤¿¤Ï +デバイスファイル (device file) /dev/* は普通 MAKEDEV スクリプトまたは .BR mknod (1) -¤ò»È¤Ã¤Æ¥â¡¼¥É 0622¡¢½êÍ­¼Ô root.tty ¤È¤·¤ÆºîÀ®¤µ¤ì¤ë¡£ +を使ってモード 0622、所有者 root.tty として作成される。 .LP -¥«¡¼¥Í¥ë (kernel) ¥Ð¡¼¥¸¥ç¥ó 1.1.54 °ÊÁ°¤Ï¡¢²¾ÁÛ¥³¥ó¥½¡¼¥ë¤Î¿ô¤Ï¥³¥ó¥Ñ¥¤¥ë»þ¤Ë -(tty.h Ãæ¤Î : #define NR_CONSOLES 8 ¤Ë¤è¤Ã¤Æ) ¥«¡¼¥Í¥ë¤ËËä¤á¹þ¤Þ¤ì¤Æ¤¤¤¿¡£ -¤½¤·¤Æ¡¢¤½¤ì¤òÊѹ¹¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤·Ä¾¤¹¤³¤È¤Ç²¾ÁÛ¥³¥ó¥½¡¼¥ë¤Î¿ô¤òÊѹ¹¤Ç¤­¤¿¡£ -¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó 1.1.54 °Ê¹ß¤Ç¤Ï²¾ÁÛ¥³¥ó¥½¡¼¥ë¤¬É¬ÍפȤµ¤ì¤ë»þ¤Ï -¤¹¤°¤ËÆ°ºîÃæ¤ËºîÀ®¤µ¤ì¤ë¡£ +カーネル (kernel) バージョン 1.1.54 以前は、仮想コンソールの数はコンパイル時に +(tty.h 中の : #define NR_CONSOLES 8 によって) カーネルに埋め込まれていた。 +そして、それを変更してコンパイルし直すことで仮想コンソールの数を変更できた。 +カーネルバージョン 1.1.54 以降では仮想コンソールが必要とされる時は +すぐに動作中に作成される。 .LP .\"O Common ways to start a process on a console are: .\"O (a) tell @@ -68,53 +68,53 @@ Linux .\"O (or .\"O .BR agetty (8)) .\"O on the console; -¥³¥ó¥½¡¼¥ë¾å¤Ç¥×¥í¥»¥¹¤ò³«»Ï¤¹¤ë°ìÈÌŪ¤ÊÊýË¡¤Ï: -(a) ¥³¥ó¥½¡¼¥ë¾å¤Ç +コンソール上でプロセスを開始する一般的な方法は: +(a) コンソール上で .BR mingetty (8) -(¤Þ¤¿¤Ï +(または .BR agetty (8)) -¤ò¥¹¥¿¡¼¥È¤µ¤»¤ë¤³¤È¤ò +をスタートさせることを .RB ( inittab (5) -¤ÎÃæ¤Ç) +の中で) .BR init (8) -¤ËÅÁ¤¨¤ë¡£ +に伝える。 .\"O (b) ask .\"O .BR openvt (1) .\"O to start a process on the console; -(b) ¥³¥ó¥½¡¼¥ë¾å¤Ç¥×¥í¥»¥¹¤ò¥¹¥¿¡¼¥È¤¹¤ë¤³¤È¤ò +(b) コンソール上でプロセスをスタートすることを .BR openvt (1) -¤ËÍê¤à¡£ +に頼む。 .\"O (c) start X\(emit will find the first unused console, .\"O and display its output there. .\"O (There is also the ancient .\"O .BR doshell (8).) -(c) X ¤ò³«»Ï¤¹¤ë - X ¤Ï»È¤ï¤ì¤Æ¤¤¤Ê¤¤¥³¥ó¥½¡¼¥ë¤Î¤¦¤ÁºÇ½é¤Î¤â¤Î¤ò¸«ÉÕ¤±¡¢ -¤½¤³¤Ëɽ¼¨¤ò½ÐÎϤ¹¤ë¡£(ÀΤʤ¬¤é¤Î +(c) X を開始する - X は使われていないコンソールのうち最初のものを見付け、 +そこに表示を出力する。(昔ながらの .BR doshell (8) -¤â¤¢¤ë¡£) +もある。) .LP .\"O Common ways to switch consoles are: (a) use Alt+F\fIn\fP or .\"O Ctrl+Alt+F\fIn\fP to switch to console \fIn\fP; AltGr+F\fIn\fP .\"O might bring you to console \fIn\fP+12 [here Alt and AltGr refer .\"O to the left and right Alt keys, respectively]; -¥³¥ó¥½¡¼¥ë¤òÀÚ¤êÂؤ¨¤ë°ìÈÌŪ¤ÊÊýË¡¤Ï: (a)¥³¥ó¥½¡¼¥ë \fIn\fP ¤ËÀÚ¤êÂؤ¨¤ë -¤¿¤á¤Ë Alt+F\fIn\fP ¤Þ¤¿¤Ï Ctrl+Alt+F\fIn\fP ¤ò»È¤¦¡£ -AltGr+F\fIn\fP ¤ò»È¤¦¤È¡¢¤ª¤½¤é¤¯¥³¥ó¥½¡¼¥ë \fIn\fP+12 ¤ËÀÚ¤êÂؤï¤ë -[¤³¤³¤Ç¤Î Alt ¤È AltGr ¤Ï¤½¤ì¤¾¤ìº¸±¦¤Î Alt ¥­¡¼¤ò¼¨¤¹]¡£ +コンソールを切り替える一般的な方法は: (a)コンソール \fIn\fP に切り替える +ために Alt+F\fIn\fP または Ctrl+Alt+F\fIn\fP を使う。 +AltGr+F\fIn\fP を使うと、おそらくコンソール \fIn\fP+12 に切り替わる +[ここでの Alt と AltGr はそれぞれ左右の Alt キーを示す]。 .\"O (b) use Alt+RightArrow or Alt+LeftArrow to cycle through .\"O the presently allocated consoles; (c) use the program .\"O .BR chvt (1). .\"O (The key mapping is user settable, see .\"O .BR loadkeys (1); .\"O the above mentioned key combinations are according to the default settings.) -(b) ¸½ºß³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¥³¥ó¥½¡¼¥ë¤ò½Û´Ä¤¹¤ë¤¿¤á¤Ë Alt + ±¦Ìð°õ¥­¡¼ -¤Þ¤¿¤Ï Alt + º¸Ìð°õ¥­¡¼¤ò»È¤¦¡£(c) +(b) 現在割り当てられているコンソールを循環するために Alt + 右矢印キー +または Alt + 左矢印キーを使う。(c) .BR chvt (1) -¥×¥í¥°¥é¥à¤ò»È¤¦ -(¥­¡¼¥Þ¥Ã¥Ô¥ó¥°¤Ï¥æ¡¼¥¶¤¬¥»¥Ã¥È¤Ç¤­¤ë¡¢ +プログラムを使う +(キーマッピングはユーザがセットできる、 .BR loadkeys (1) -¤ò¸«¤è¡£ -¾å¤Ç½Ò¤Ù¤¿¥­¡¼¥Ð¥¤¥ó¥É¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¤Ë¤è¤ë¤â¤Î¤Ç¤¢¤ë)¡£ +を見よ。 +上で述べたキーバインドはデフォルトの設定によるものである)。 .LP .\"O The command .\"O .BR deallocvt (1) @@ -122,25 +122,25 @@ AltGr+F\fIn\fP .\"O will free the memory taken by the screen buffers for consoles .\"O that no longer have any associated process. .BR deallocvt (1) -¥³¥Þ¥ó¥É(°ÊÁ°¤Ï \fBdisalloc\fP ¤È¤¤¤¦Ì¾Á°¤À¤Ã¤¿)¤Ï¡¢ -¥×¥í¥»¥¹¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤Æ¤¤¤Ê¤¤¥³¥ó¥½¡¼¥ë¤Î -¥¹¥¯¥ê¡¼¥ó¥Ð¥Ã¥Õ¥¡ (screen buffer) ¤Î¤¿¤á¤Ë»È¤ï¤ì¤Æ¤¤¤ë¥á¥â¥ê¤ò²òÊü¤¹¤ë¡£ +コマンド(以前は \fBdisalloc\fP という名前だった)は、 +プロセスに結びつけられていないコンソールの +スクリーンバッファ (screen buffer) のために使われているメモリを解放する。 .\"O .SS Properties -.SS ÆÃÀ­ -¥³¥ó¥½¡¼¥ë¤Ï¿¤¯¤Î¾õÂÖ¤ò¤â¤Ã¤Æ¤¤¤ë¡£ -»ä¤Ï¡¢¤½¤ì¤Ë¤Ä¤¤¤Æ¤¤¤Ä¤«¥É¥­¥å¥á¥ó¥È¤Ë¤·¤¿¤¤¤È¹Í¤¨¤Æ¤¤¤ë¡£ -¤â¤Ã¤È¤â½ÅÍפʻö¼Â¤Ï¥³¥ó¥½¡¼¥ë¤Ï vt100 üËö¤ò¿¿»÷¤Æ¤¤¤ë -(¥·¥ß¥å¥ì¡¼¥È¤·¤Æ¤¤¤ë) ¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ -¥³¥ó¥½¡¼¥ë¤Ï ESC c ¤È¤¤¤¦Æó¤Ä¤Îʸ»ú¤ò°õ»ú¤¹¤ë»ö¤Ë¤è¤Ã¤Æ¡¢ -½é´ü¾õÂ֤˥ꥻ¥Ã¥È¤µ¤ì¤ë¡£ -¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ (escape sequences) ¤Ë¤Ä¤¤¤Æ¤Ï +.SS 特性 +コンソールは多くの状態をもっている。 +私は、それについていつかドキュメントにしたいと考えている。 +もっとも重要な事実はコンソールは vt100 端末を真似ている +(シミュレートしている) ということである。 +コンソールは ESC c という二つの文字を印字する事によって、 +初期状態にリセットされる。 +エスケープシーケンス (escape sequences) については .BR console_codes (4) -¤ÇÁ´¤ÆÀâÌÀ¤·¤Æ¤¢¤ë¡£ -.SH ¥Õ¥¡¥¤¥ë +で全て説明してある。 +.SH ファイル .I /dev/console .br .I /dev/tty* -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chvt (1), .BR deallocvt (1), .BR loadkeys (1), diff --git a/draft/man4/console_codes.4 b/draft/man4/console_codes.4 index 59d58240..adee0cb2 100644 --- a/draft/man4/console_codes.4 +++ b/draft/man4/console_codes.4 @@ -31,168 +31,168 @@ .\" Updated Sun Jul 23 JST 2006 by Kentaro Shirakata .\" Updated Tue Jul 22 JST 2008 by Kentaro Shirakata .\" -.\" WORD: private mode ¥×¥é¥¤¥Ù¡¼¥È¥â¡¼¥É +.\" WORD: private mode プライベートモード .\" .TH CONSOLE_CODES 4 2011-09-15 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -console_codes \- Linux ¥³¥ó¥½¡¼¥ë¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤È¥³¥ó¥È¥í¡¼¥ë -¥·¡¼¥±¥ó¥¹ -.SH ÀâÌÀ -Linux ¥³¥ó¥½¡¼¥ë¤Ï VT102 ¤È ECMA-48/ISO6429/ANSI X3.64 üËö¥³¥ó¥½¡¼¥ë¤Î -¥µ¥Ö¥»¥Ã¥È¤Ë¡¢¥«¥é¡¼¥Ñ¥ì¥Ã¥È¤äʸ»ú½¸¹ç¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ê¤É¤òÊѹ¹¤¹¤ë -¥×¥é¥¤¥Ù¡¼¥È¥â¡¼¥É¥·¡¼¥±¥ó¥¹¤ò²Ã¤¨¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -°Ê²¼¤Îɽ¤Ç¤Ï¡¢µ¡Ç½¤Î ECMA-48 ¤Þ¤¿¤Ï DEC ¤Î¥Ë¡¼¥â¥Ë¥¯¥¹(DEC¤Ç»Ï¤Þ¤ì¤Ð¸å¼Ô)¤ò -2 ÈÖÌܤηå¤Ëµ­¤¹¡£ -¥Ë¡¼¥â¥Ë¥¯¥¹¤Î¤Ê¤¤¤â¤Î¤Ï ECMA-48 ¤Ç¤â VT102 ¤Ç¤â¤Ê¤¤¤â¤Î¤Ç¤¢¤ë¡£ +.SH 名前 +console_codes \- Linux コンソールのエスケープシーケンスとコントロール +シーケンス +.SH 説明 +Linux コンソールは VT102 と ECMA-48/ISO6429/ANSI X3.64 端末コンソールの +サブセットに、カラーパレットや文字集合のマッピングなどを変更する +プライベートモードシーケンスを加えて実装されている。 +以下の表では、機能の ECMA-48 または DEC のニーモニクス(DECで始まれば後者)を +2 番目の桁に記す。 +ニーモニクスのないものは ECMA-48 でも VT102 でもないものである。 .LP -¤¹¤Ù¤Æ¤Î½ÐÎϺî¶È¤¬½ª¤Ã¤Æ¡¢¼ÂºÝ¤Ë°õ»ú¤¹¤ë¤¿¤á¤Ëʸ»ú¤Î¥¹¥È¥ê¡¼¥à¤¬ -¥³¥ó¥½¡¼¥ë¥É¥é¥¤¥Ð¡¼¤ËÆϤ¤¤¿»þ¡¢ºÇ½é¤Ë¹Ô¤Ê¤ï¤ì¤ë¤Î¤¬¡¢½èÍýÍÑ¥³¡¼¥É¤«¤é -°õ»úÍѤΥ³¡¼¥É¤Ø¤ÎÊÑ´¹¤Ç¤¢¤ë¡£ +すべての出力作業が終って、実際に印字するために文字のストリームが +コンソールドライバーに届いた時、最初に行なわれるのが、処理用コードから +印字用のコードへの変換である。 .LP -¤â¤·¡¢¥³¥ó¥½¡¼¥ë¤¬ UTF-8 ¥â¡¼¥É¤Ê¤é¡¢Æþ¤Ã¤ÆÍ褿¥Ð¥¤¥È(byte)¤Ï -16 ¥Ó¥Ã¥È¤Î Unicode ¤ËÁȤßΩ¤Æ¤é¤ì¤ë¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¡¢¤½¤ì¤¾¤ì¤Î -¥Ð¥¤¥È¤Ï¸½ºß¤Î(³Æ¥Ð¥¤¥È¤ò Unicode ¤ÎÃͤËÊÑ´¹¤¹¤ë)¥Þ¥Ã¥Ô¥ó¥°¥Æ¡¼¥Ö¥ë¤Ë -½¾¤Ã¤ÆÊÑ´¹¤µ¤ì¤ë¡£¤³¤ì¤Ë´Ø¤·¤Æ¤Ï²¼¤Î¥­¥ã¥é¥¯¥¿¡¼¥»¥Ã¥È(Charcter Sets) -Àá¤ò»²¾È¤Î¤³¤È¡£ +もし、コンソールが UTF-8 モードなら、入って来たバイト(byte)は +16 ビットの Unicode に組み立てられる。そうでなければ、それぞれの +バイトは現在の(各バイトを Unicode の値に変換する)マッピングテーブルに +従って変換される。これに関しては下のキャラクターセット(Charcter Sets) +節を参照のこと。 .LP -Ä̾Unicode ¤ÎÃͤϥե©¥ó¥È¥¤¥ó¥Ç¥Ã¥¯¥¹(font index) ¤ËÊÑ´¹¤µ¤ì¡¢ -¥Ó¥Ç¥ª¥á¥â¥ê¤ËÃߤ¨¤é¤ì¤ë¡£¤½¤·¤Æ(¥Ó¥Ç¥ª ROM Ãæ¤Ë¸«ÉÕ¤±¤é¤ì¤ë) -Âбþ¤¹¤ë¥°¥ê¥Õ(glyph)¤¬²èÌ̤˸½¤ì¤ë¡£ -Unicode ¤òÍѤ¤¤ë¤È¡¢(PC ¸ß´¹µ¡¤ÎÀ߷פǤÏ) 512 ¤Î°Û¤Ê¤Ã¤¿ -¥°¥ê¥Õ¤òƱ»þ¤ËÍøÍѤǤ­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +通常、Unicode の値はフォントインデックス(font index) に変換され、 +ビデオメモリに蓄えられる。そして(ビデオ ROM 中に見付けられる) +対応するグリフ(glyph)が画面に現れる。 +Unicode を用いると、(PC 互換機の設計では) 512 の異なった +グリフを同時に利用できるようになる。 .LP -¸½ºß¤Î Unicode ¤ÎÃͤ¬¥³¥ó¥È¥í¡¼¥ëʸ»ú¤Ç¤¢¤ë¤«¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤ò -½èÍý¤·¤Æ¤¤¤ë»þ¤Ë¤Ï¡¢¤½¤ÎÃͤÏÆÃÊ̤˰·¤ï¤ì¤ë¡£ -¥Õ¥©¥ó¥È¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤ËÊÑ´¹¤µ¤ì¤Æ¥°¥ê¥Õ¤È¤·¤Æɽ¼¨¤µ¤ì¤ëÂå¤ï¤ê¤Ë¡¢¥«¡¼¥½¥ë¤Î -°ÜÆ°¤ä¤½¤Î¾¤Î¥³¥ó¥È¥í¡¼¥ëµ¡Ç½¤ò¼Â¹Ô¤µ¤»¤ë¡£ -¾Ü¤·¤¤¤³¤È¤Ï¡¢¸å½Ò¤Î¡ÖLINUX ¥³¥ó¥½¡¼¥ë¥³¥ó¥È¥í¡¼¥ë¡×¤Î¥»¥¯¥·¥ç¥ó¤ò»²¾È¤Î¤³¤È¡£ +現在の Unicode の値がコントロール文字であるかエスケープシーケンスを +処理している時には、その値は特別に扱われる。 +フォントのインデックスに変換されてグリフとして表示される代わりに、カーソルの +移動やその他のコントロール機能を実行させる。 +詳しいことは、後述の「LINUX コンソールコントロール」のセクションを参照のこと。 .LP -°ìÈ̤ËüËö¥³¥ó¥È¥í¡¼¥ë¥³¡¼¥É¤ò¥×¥í¥°¥é¥àÃæ¤ËľÀܵ­½Ò¤¹¤ë¤Î¤Ï -Îɤ¤¤³¤È¤Ç¤Ï¤Ê¤¤¡£ -Linux¤Ç¤Ï¡¢Ã¼Ëö¤Ë¤ª¤¤¤Æ¼Â¸½²Äǽ¤ÊÁàºî¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ç¤¢¤ë +一般に端末コントロールコードをプログラム中に直接記述するのは +良いことではない。 +Linuxでは、端末において実現可能な操作のデータベースである .BR terminfo (5) -¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -¥³¥ó¥½¡¼¥ë¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤ò¤ï¤¶¤ï¤¶ÆþÎϤ¹¤ë¤è¤ê¤â¡¢¤Û¤È¤ó¤É¤Î¾ì¹ç -terminfo ¤Î¾ðÊó¤ò»²¾È¤¹¤ë +をサポートしている。 +コンソールエスケープシーケンスをわざわざ入力するよりも、ほとんどの場合 +terminfo の情報を参照する .BR ncurses (3), .BR tput (1), -¤ä +や .BR reset (1) -¤Ê¤É¤Î¥¹¥¯¥ê¡¼¥ó¥é¥¤¥Ö¥é¥ê¤ä¥æ¡¼¥Æ¥£¥ê¥Æ¥£¡¼¤ò»È¤¤¤¿¤¤¤È»×¤¦¤Ç¤¢¤í¤¦¡£ -.SS "Linux ¥³¥ó¥½¡¼¥ë¥³¥ó¥È¥í¡¼¥ë" -¤³¤Î¾Ï¤Ç¤Ï Linux ¥³¥ó¥½¡¼¥ë¤Ë¤ª¤¤¤ÆÆüì¤Êµ¡Ç½(¤Ä¤Þ¤ê¡¢¸½ºß¤Î¥«¡¼¥½¥ë°ÌÃÖ¤Ë -ʸ»ú¤Î¥¤¥á¡¼¥¸¤ò°õ»ú¤¹¤ë°Ê³°¤Î¤³¤È)¤òµ¯¤³¤µ¤»¤ëÁ´¤Æ¤Î¥³¥ó¥È¥í¡¼¥ëʸ»ú¤È -¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤Ë¤Ä¤¤¤Æ½Ò¤Ù¤ë¡£ +などのスクリーンライブラリやユーティリティーを使いたいと思うであろう。 +.SS "Linux コンソールコントロール" +この章では Linux コンソールにおいて特殊な機能(つまり、現在のカーソル位置に +文字のイメージを印字する以外のこと)を起こさせる全てのコントロール文字と +エスケープシーケンスについて述べる。 .PP -.B "¥³¥ó¥È¥í¡¼¥ëʸ»ú" +.B "コントロール文字" .sp -¥³¥ó¥È¥í¡¼¥ëʸ»ú¤È¤Ï¡¢(¥Þ¥Ã¥Ô¥ó¥°¥Æ¡¼¥Ö¥ë¤Ë¤è¤ëÊÑ´¹Á°¤Î¥³¡¼¥É¤¬) +コントロール文字とは、(マッピングテーブルによる変換前のコードが) 00 (NUL), 07 (BEL), 08 (BS), 09 (HT), 0a (LF), 0b (VT), 0c (FF), 0d (CR), 0e (SO), 0f (SI), 18 (CAN), 1a (SUB), -1b (ESC), 7f (DEL) ¤Î 14 ¤Î¥³¡¼¥É¤Î¤¦¤Á¤Î¤É¤ì¤«¤Ç¤¢¤ëʸ»ú¤Ç¤¢¤ë¡£ -"¥³¥ó¥È¥í¡¼¥ëʸ»úɽ¼¨(display control characters)"¥â¡¼¥É(¸å½Ò)¤ò -ÀßÄꤹ¤ë¤È¡¢07, 09, 0b, 18, 1a, 7f ¤ò¥°¥ê¥Õ¤È¤·¤Æɽ¼¨¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -°ìÊý¡¢ UTF-8 ¥â¡¼¥É¤Ç¤Ï¡¢00-1f ¤ÎÁ´¤Æ¤Î¥³¡¼¥É¤Ï¡¢¥³¥ó¥È¥í¡¼¥ëʸ»úɽ¼¨ -¥â¡¼¥É¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ç¤â¥³¥ó¥È¥í¡¼¥ëʸ»ú¤È¤·¤Æ°·¤ï¤ì¤ë¡£ -.PP -¥³¥ó¥È¥í¡¼¥ëʸ»ú¤¬¤¢¤ë»þ¤Ë¤Ï¡¢¤½¤ì¤Ï¤¹¤°¤Ë(¤¿¤È¤¨¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤Î -ÅÓÃæ¤Ç¤â)¼Â¹Ô¤µ¤ì¡¢ÇË´þ¤µ¤ì¤ë¡£¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤Ï¼¡¤Îʸ»ú¤«¤é³¤±¤é¤ì¤ë -(¤·¤«¤·¡¢ESC ¤Ï¿·¤·¤¤¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤ò»Ï¤á¤ë¤Î¤Ç¡¢ -Á°¤Î½ªÎ»¤·¤Æ¤¤¤Ê¤¤¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤¬Ãæ»ß¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¤µ¤é¤Ë¡¢CAN ¤È SUB ¤Ï¤É¤ó¤Ê¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤âÃæ»ß¤¹¤ë)¡£ -ǧ¤á¤é¤ì¤Æ¤¤¤ë¥³¥ó¥È¥í¡¼¥ëʸ»ú¤Ï¡¢BEL, BS, HT, LF, VT, FF, CR, SO, SI, -CAN, SUB, ESC, DEL, CSI ¤Ç¤¢¤ë¡£¤³¤ì¤é¤Ï´üÂԤɤª¤ê¤ÎÆ°ºî¤ò¤¹¤ë: +1b (ESC), 7f (DEL) の 14 のコードのうちのどれかである文字である。 +"コントロール文字表示(display control characters)"モード(後述)を +設定すると、07, 09, 0b, 18, 1a, 7f をグリフとして表示することができる。 +一方、 UTF-8 モードでは、00-1f の全てのコードは、コントロール文字表示 +モードが指定された場合でもコントロール文字として扱われる。 +.PP +コントロール文字がある時には、それはすぐに(たとえエスケープシーケンスの +途中でも)実行され、破棄される。エスケープシーケンスは次の文字から続けられる +(しかし、ESC は新しいエスケープシーケンスを始めるので、 +前の終了していないエスケープシーケンスが中止される可能性がある。 +さらに、CAN と SUB はどんなエスケープシーケンスも中止する)。 +認められているコントロール文字は、BEL, BS, HT, LF, VT, FF, CR, SO, SI, +CAN, SUB, ESC, DEL, CSI である。これらは期待どおりの動作をする: .HP .\"O BEL (0x07, \fB^G\fP) beeps; -BEL (0x07, \fB^G\fP) ¤Ï¥Ó¡¼¥×²»¤òÌĤ餹; +BEL (0x07, \fB^G\fP) はビープ音を鳴らす; .HP .\"O BS (0x08, \fB^H\fP) backspaces one column .\"O (but not past the beginning of the line); -BS (0x08, \fB^H\fP) ¤Ï¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹ -(¤¿¤À¤·¡¢¹ÔƬ¤Ï±Û¤¨¤Ê¤¤); +BS (0x08, \fB^H\fP) はバックスペース +(ただし、行頭は越えない); .HP .\"O HT (0x09, \fB^I\fP) goes to the next tab stop or to the end of the line .\"O if there is no earlier tab stop; -HT (0x09, \fB^I\fP) ¤Ï¼¡¤Î¥¿¥Ö¥¹¥È¥Ã¥×(tab stop)¤Ø°ÜÆ°¤¹¤ë¡¢¤½¤³¤«¤é¹ÔËö¤Þ¤Ç¤Ë -¥¿¥Ö¥¹¥È¥Ã¥×¤¬Ìµ¤¤¾ì¹ç¤Ï¹Ô¤Î½ª¤ê¤Ë°ÜÆ°¤¹¤ë; +HT (0x09, \fB^I\fP) は次のタブストップ(tab stop)へ移動する、そこから行末までに +タブストップが無い場合は行の終りに移動する; .HP .\"O LF (0x0A, \fB^J\fP), VT (0x0B, \fB^K\fP) and .\"O FF (0x0C, \fB^L\fP) all give a linefeed, .\"O and if LF/NL (new-line mode) is set also a carriage return; -LF (0x0A, \fB^J\fP), VT (0x0B, \fB^K\fP), FF (0x0C, \fB^L\fP) ¤³¤ì¤é¤ÏÁ´¤Æ -¥é¥¤¥ó¥Õ¥£¡¼¥É(linefeed)¤òÍ¿¤¨¤ë; -LF/NL (¥Ë¥å¡¼¥é¥¤¥ó¥â¡¼¥É(new line mode))¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ì¤Ð -¥­¥ã¥ê¥Ã¥¸¥ê¥¿¡¼¥ó¤â¥¢¥¯¥Æ¥£¥Ö¤Ë¤¹¤ë; +LF (0x0A, \fB^J\fP), VT (0x0B, \fB^K\fP), FF (0x0C, \fB^L\fP) これらは全て +ラインフィード(linefeed)を与える; +LF/NL (ニューラインモード(new line mode))がセットされていれば +キャリッジリターンもアクティブにする; .HP .\"O CR (0x0D, \fB^M\fP) gives a carriage return; -CR (0x0D, \fB^M\fP) ¤Ï¥­¥ã¥ê¥Ã¥¸¥ê¥¿¡¼¥ó¤òÍ¿¤¨¤ë; +CR (0x0D, \fB^M\fP) はキャリッジリターンを与える; .HP .\"O SO (0x0E, \fB^N\fP) activates the G1 character set; -SO (0x0E, \fB^N\fP) ¤Ï G1 ʸ»ú½¸¹ç¤ò¥¢¥¯¥Æ¥£¥Ö¤Ë¤¹¤ë¡£ +SO (0x0E, \fB^N\fP) は G1 文字集合をアクティブにする。 .HP .\"O SI (0x0F, \fB^O\fP) activates the G0 character set; -SI (0x0F, \fB^O\fP) ¤Ï G0 ʸ»ú½¸¹ç¤ò¥¢¥¯¥Æ¥£¥Ö¤Ë¤¹¤ë; +SI (0x0F, \fB^O\fP) は G0 文字集合をアクティブにする; .HP .\"O CAN (0x18, \fB^X\fP) and SUB (0x1A, \fB^Z\fP) interrupt escape sequences; -CAN (0x18, \fB^X\fP) ¤È SUB (0x1A, \fB^Z\fP) ¤Ï¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤òÃæÃǤ¹¤ë; +CAN (0x18, \fB^X\fP) と SUB (0x1A, \fB^Z\fP) はエスケープシーケンスを中断する; .HP .\"O ESC (0x1B, \fB^[\fP) starts an escape sequence; -ESC (0x1B, \fB^[\fP) ¤Ï¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤ò»Ï¤á¤ë¡£ +ESC (0x1B, \fB^[\fP) はエスケープシーケンスを始める。 .HP -DEL (0x7F) ¤Ï̵»ë¤µ¤ì¤ë; +DEL (0x7F) は無視される; .HP -CSI (0x9B) ¤Ï ESC [ ¤ÈÅù²Á¡£ +CSI (0x9B) は ESC [ と等価。 .PP -.B "¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤Ç¤¢¤ë¤¬ CSI ¥·¡¼¥±¥ó¥¹¤Ç¤Ê¤¤¤â¤Î" +.B "エスケープシーケンスであるが CSI シーケンスでないもの" .sp .TS l l l. -ESC c RIS ¥ê¥»¥Ã¥È¡£ -ESC D IND ¥é¥¤¥ó¥Õ¥£¡¼¥É¡£ -ESC E NEL ¥Ë¥å¡¼¥é¥¤¥ó¡£ -ESC H HTS ¸½ºß¤Î·å¤Î°ÌÃ֤˥¿¥Ö¥¹¥È¥Ã¥×¤òÀßÄꤹ¤ë¡£ -ESC M RI µÕ¥é¥¤¥ó¥Õ¥£¡¼¥É +ESC c RIS リセット。 +ESC D IND ラインフィード。 +ESC E NEL ニューライン。 +ESC H HTS 現在の桁の位置にタブストップを設定する。 +ESC M RI 逆ラインフィード .\"O ESC Z DECID T{ .\"O DEC private identification. The kernel .\"O returns the string ESC [ ? 6 c, claiming .\"O that it is a VT102. .\"O T} ESC Z DECID T{ -DEC¸ÇÍ­¤Î¼±ÊÌÍÑ¡£¥«¡¼¥Í¥ë¤Ïʸ»úÎó ESC [ ? 6 c ¤òÊÖ¤¹¡£ -¤³¤ì¤ÏüËö¤¬VT102¤Ç¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +DEC固有の識別用。カーネルは文字列 ESC [ ? 6 c を返す。 +これは端末がVT102であることを意味する。 T} .\"O ESC 7 DECSC T{ .\"O Save current state (cursor coordinates, .\"O attributes, character sets pointed at by G0, G1). .\"O T} ESC 7 DECSC T{ -¸½ºß¤Î¾õÂÖ(¥«¡¼¥½¥ë¤ÎºÂɸ¡¢Â°À­¡¢G0, G1 ¤Ç¼¨¤·¤Æ¤¤¤ë -ʸ»ú½¸¹ç)¤ò¥»¡¼¥Ö¤¹¤ë¡£ +現在の状態(カーソルの座標、属性、G0, G1 で示している +文字集合)をセーブする。 T} .\"O ESC 8 DECRC Restore state most recently saved by ESC 7. -ESC 8 DECRC ºÇ¸å¤Ë ESC 7 ¤Ç¥»¡¼¥Ö¤·¤¿¾õÂÖ¤òÉüµ¢¤µ¤»¤ë¡£ -ESC [ CSI ¥³¥ó¥È¥í¡¼¥ë¥·¡¼¥±¥ó¥¹¤òƳÆþ¤¹¤ë¡£ -ESC % ¥­¥ã¥é¥¯¥¿¡¼¥»¥Ã¥È¤òÁªÂò¤¹¤ë¥·¡¼¥±¥ó¥¹¤ò³«»Ï¤¹¤ë¡£ -ESC % @ \0\0\0 ¥Ç¥Õ¥©¥ë¥È(ISO 646 / ISO 8859-1)¤òÁªÂò¤¹¤ë¡£ -ESC % G \0\0\0 UTF-8 ¤òÁªÂò¤¹¤ë¡£ -ESC % 8 \0\0\0 UTF-8 ¤òÁªÂò¤¹¤ë(µì¼°)¡£ -ESC # 8 DECALN DEC ¤Î¥¹¥¯¥ê¡¼¥óÄ´À°¥Æ¥¹¥È \- ¥¹¥¯¥ê¡¼¥ó¤ò E ¤Ç - ¤¦¤á¤ë¡£ -ESC ( G0 ʸ»ú½¸¹ç¤òÄêµÁ¤¹¤ë¥·¡¼¥±¥ó¥¹¤ò³«»Ï¤¹¤ë¡£ -ESC ( B \0\0\0 ¥Ç¥Õ¥©¥ë¥È(ISO 8859-1 ¥Þ¥Ã¥Ô¥ó¥°)¤òÁªÂò¤¹¤ë¡£ +ESC 8 DECRC 最後に ESC 7 でセーブした状態を復帰させる。 +ESC [ CSI コントロールシーケンスを導入する。 +ESC % キャラクターセットを選択するシーケンスを開始する。 +ESC % @ \0\0\0 デフォルト(ISO 646 / ISO 8859-1)を選択する。 +ESC % G \0\0\0 UTF-8 を選択する。 +ESC % 8 \0\0\0 UTF-8 を選択する(旧式)。 +ESC # 8 DECALN DEC のスクリーン調整テスト \- スクリーンを E で + うめる。 +ESC ( G0 文字集合を定義するシーケンスを開始する。 +ESC ( B \0\0\0 デフォルト(ISO 8859-1 マッピング)を選択する。 .\"O ESC ( 0 \0\0\0Select VT100 graphics mapping -ESC ( 0 \0\0\0 VT100 ¥°¥é¥Õ¥£¥¯¥¹¥Þ¥Ã¥Ô¥ó¥°¤òÁªÂò¤¹¤ë¡£ -ESC ( U \0\0\0 ¥Ì¥ë¥Þ¥Ã¥Ô¥ó¥°¤òÁªÂò¤¹¤ë \- ¥­¥ã¥é¥¯¥¿ ROM ¤«¤é - \0\0\0 ľÀܥޥåԥ󥰤¹¤ë¡£ -ESC ( K \0\0\0 ¥æ¡¼¥¶¡¼ÄêµÁ¤Î¥Þ¥Ã¥Ô¥ó¥°¤òÁªÂò¤¹¤ë \- ¤½¤Î¥Þ¥Ã¥× - \0\0\0 ¤Ï \fBmapscrn\fP(8) ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¡¼¤Ë¤è¤Ã¤Æ¥í¡¼ - \0\0\0 ¥É¤µ¤ì¤ë¡£ -ESC ) G1 ¤òÄêµÁ¤¹¤ë¥·¡¼¥±¥ó¥¹¤ò³«»Ï¤¹¤ë¡£ - (¤¹¤Ç¤Ë½Ò¤Ù¤¿¤è¤¦¤Ë B, 0, U, K ¤Î¤É¤ì¤«¤¬¼¡¤Ë³¤¯) -ESC > DECPNM ¿ôÃÍ¥­¡¼¥Ñ¥Ã¥É¥â¡¼¥É(numeric keypad mode)¤ò - ¥»¥Ã¥È¤¹¤ë¡£ -ESC = DECPAM ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥­¡¼¥Ñ¥Ã¥É¥â¡¼¥É(application keypad - mode) ¤ò¥»¥Ã¥È¤¹¤ë¡£ +ESC ( 0 \0\0\0 VT100 グラフィクスマッピングを選択する。 +ESC ( U \0\0\0 ヌルマッピングを選択する \- キャラクタ ROM から + \0\0\0 直接マッピングする。 +ESC ( K \0\0\0 ユーザー定義のマッピングを選択する \- そのマップ + \0\0\0 は \fBmapscrn\fP(8) ユーティリティーによってロー + \0\0\0 ドされる。 +ESC ) G1 を定義するシーケンスを開始する。 + (すでに述べたように B, 0, U, K のどれかが次に続く) +ESC > DECPNM 数値キーパッドモード(numeric keypad mode)を + セットする。 +ESC = DECPAM アプリケーションキーパッドモード(application keypad + mode) をセットする。 .\"O ESC ] OSC T{ .\"O (Should be: Operating system command) .\"O ESC ] P \fInrrggbb\fP: set palette, with parameter @@ -202,79 +202,79 @@ ESC = DECPAM .\"O ESC ] R: reset palette .\"O T} ESC ] OSC T{ -("Operating system command"¤Î¤³¤È¤À¤í¤¦) -ESC ] P \fInrrggbb\fP: ºÇ¸å¤Î P ¤Î¤¢¤È¤Î 7 ¤Ä¤Î 16 ¿Ê¿ô¤ò -¥Ñ¥é¥á¡¼¥¿¤È¤·¤Æ :-( ¥Ñ¥ì¥Ã¥È¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤³¤Ç¡¢\fIn\fP¤Ï¿§ (0-15)¡¢\fIrrggbb\fP¤ÏÀÖ/ÎÐ/ÀĤÎÃÍ -(0-255)¤ò°ÕÌ£¤¹¤ë¡£ -ESC ] R: ¥Ñ¥ì¥Ã¥È¤ò¥ê¥»¥Ã¥È¤¹¤ë¡£ +("Operating system command"のことだろう) +ESC ] P \fInrrggbb\fP: 最後の P のあとの 7 つの 16 進数を +パラメータとして :-( パレットをセットする。 +ここで、\fIn\fPは色 (0-15)、\fIrrggbb\fPは赤/緑/青の値 +(0-255)を意味する。 +ESC ] R: パレットをリセットする。 T} .TE .PP -.B "ECMA-48 CSI ¥·¡¼¥±¥ó¥¹" +.B "ECMA-48 CSI シーケンス" .sp -CSI (¤Þ¤¿¤Ï ESC [ ) ¤Î¤¢¤È¤Ë¡¢ºÇÂç¤Ç NPAR (16) ¸Ä¤Î¥»¥ß¥³¥í¥ó¤Ç¶èÀÚ¤é¤ì¤¿ -10 ¿Ê¿ô¤Î¥Ñ¥é¥á¡¼¥¿¥·¡¼¥±¥ó¥¹¤¬Â³¤¯¡£ -¶õ¤Ç¤¢¤ë¤«¤½¤³¤Ë¤Ê¤¤¥Ñ¥é¥á¡¼¥¿¤Ï 0 ¤È¤µ¤ì¤ë¡£ -¥Ñ¥é¥á¡¼¥¿¥·¡¼¥±¥ó¥¹¤ÎÁ°¤Ë¤Ï¤Ò¤È¤Ä¤Î¥¯¥¨¥¹¥Á¥ç¥ó¥Þ¡¼¥¯¤¬¤Ä¤¯¤³¤È¤¬¤¢¤ë¡£ +CSI (または ESC [ ) のあとに、最大で NPAR (16) 個のセミコロンで区切られた +10 進数のパラメータシーケンスが続く。 +空であるかそこにないパラメータは 0 とされる。 +パラメータシーケンスの前にはひとつのクエスチョンマークがつくことがある。 .PP -¤·¤«¤·¡¢CSI [ (¤Þ¤¿¤Ï ESC [ [ ) ¤Î¸å¤Ç¤Ï¡¢°ìʸ»ú¤¬Æɤޤ졢¤³¤Î¤¹¤Ù¤Æ¤Î -¥Ñ¥é¥á¡¼¥¿¥·¡¼¥±¥ó¥¹¤¬Ìµ»ë¤µ¤ì¤ë(Íפ¹¤ë¤Ë¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼¤Î¥¨¥³¡¼¤Ï -̵»ë¤µ¤ì¤ë¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë)¡£ +しかし、CSI [ (または ESC [ [ ) の後では、一文字が読まれ、このすべての +パラメータシーケンスが無視される(要するにファンクションキーのエコーは +無視されるということである)。 .PP -CSI ¥·¡¼¥±¥ó¥¹¤ÎÆ°ºî¤Ï¡¢¤½¤ÎºÇ¸å¤Îʸ»ú¤Ë¤è¤Ã¤Æ·è¤Þ¤ë¡£ +CSI シーケンスの動作は、その最後の文字によって決まる。 .TS l l l l. -@ ICH »Ø¼¨¤µ¤ì¤¿¿ô¤Î¶õÇòʸ»ú¤òÁÞÆþ¤¹¤ë¡£ -A CUU »Ø¼¨¤µ¤ì¤¿¿ô¤À¤±¥«¡¼¥½¥ë¤ò¾åÊý¸þ¤Ë°ÜÆ°¤¹¤ë¡£ -B CUD ¥«¡¼¥½¥ë¤ò»Ø¼¨¤µ¤ì¤¿¿ô¤Î¹Ô¤À¤±²¼Êý¸þ¤Ë°ÜÆ°¤¹¤ë¡£ -C CUF ¥«¡¼¥½¥ë¤ò»Ø¼¨¤µ¤ì¤¿¿ô¤Î·å¤À¤±±¦¤Ë°ÜÆ°¤¹¤ë¡£ -D CUB ¥«¡¼¥½¥ë¤ò»Ø¼¨¤µ¤ì¤¿¿ô¤Î·å¤À¤±º¸¤Ë°ÜÆ°¤¹¤ë¡£ -E CNL ¥«¡¼¥½¥ë¤ò»Ø¼¨¤µ¤ì¤¿¿ô¤Î¹Ô¤À¤±²¼¤ÎÂè 1 ·å¤Ë°ÜÆ°¤¹¤ë¡£ -F CPL ¥«¡¼¥½¥ë¤ò»Ø¼¨¤µ¤ì¤¿¿ô¤Î¹Ô¤À¤±¾å¤ÎÂè 1 ·å¤Ë°ÜÆ°¤¹¤ë¡£ -G CHA ¥«¡¼¥½¥ë¤ò¸½ºß¤Î¹Ô¤Î»Ø¼¨¤µ¤ì¤¿·å¤Ë°ÜÆ°¤¹¤ë¡£ -H CUP ¥«¡¼¥½¥ë¤ò»Ø¼¨¤µ¤ì¤¿¹Ô¡¢·å(1,1¤ò¸¶ÅÀ¤È¤¹¤ë)¤Ë - °ÜÆ°¤¹¤ë¡£ -J ED ¥Ç¥£¥¹¥×¥ì¥¤¤Î¾Ãµî(¥Ç¥Õ¥©¥ë¥È: ¥«¡¼¥½¥ë¤«¤é¥Ç¥£¥¹¥×¥ì¥¤¤Î - ºÇ¸å¤Þ¤Ç)¡£ - ESC [ 1 J: ºÇ½é¤«¤é¥«¡¼¥½¥ë¤Þ¤Ç¤Î¾Ãµî¡£ - ESC [ 2 J: ¥Ç¥£¥¹¥×¥ì¥¤Á´ÂΤξõ +@ ICH 指示された数の空白文字を挿入する。 +A CUU 指示された数だけカーソルを上方向に移動する。 +B CUD カーソルを指示された数の行だけ下方向に移動する。 +C CUF カーソルを指示された数の桁だけ右に移動する。 +D CUB カーソルを指示された数の桁だけ左に移動する。 +E CNL カーソルを指示された数の行だけ下の第 1 桁に移動する。 +F CPL カーソルを指示された数の行だけ上の第 1 桁に移動する。 +G CHA カーソルを現在の行の指示された桁に移動する。 +H CUP カーソルを指示された行、桁(1,1を原点とする)に + 移動する。 +J ED ディスプレイの消去(デフォルト: カーソルからディスプレイの + 最後まで)。 + ESC [ 1 J: 最初からカーソルまでの消去。 + ESC [ 2 J: ディスプレイ全体の消去。 .\"O ESC [ 3 J: erase whole display including scroll-back .\"O buffer (since Linux 3.0). - ESC [ 3 J: ¥¹¥¯¥í¡¼¥ë¥Ð¥Ã¥Õ¥¡¤â´Þ¤á¤¿¥Ç¥£¥¹¥×¥ì¥¤Á´ÂΤΠ- ¾Ãµî (Linux 3.0 °Ê¹ß)¡£ + ESC [ 3 J: スクロールバッファも含めたディスプレイ全体の + 消去 (Linux 3.0 以降)。 .\" ESC [ 3 J: commit f8df13e0a901fe55631fed66562369b4dba40f8b -K EL ¹Ô¤Î¾Ãµî(¥Ç¥Õ¥©¥ë¥È: ¥«¡¼¥½¥ë¤«¤é¹ÔËö¤Þ¤Ç)¡£ - ESC [ 1 K: ¹ÔƬ¤«¤é¥«¡¼¥½¥ë¤Þ¤Ç¤Î¾Ãµî¡£ - ESC [ 2 K: ¹ÔÁ´ÂΤξõ -L IL »Ø¼¨¤µ¤ì¤¿¿ô¤Î¶õ¹Ô¤òÁÞÆþ¤¹¤ë¡£ -M DL »Ø¼¨¤µ¤ì¤¿¿ô¤Î¹Ô¤òºï½ü¤¹¤ë¡£ -P DCH ¸½ºß¤Î¹Ô¤«¤é»Ø¼¨¤µ¤ì¤¿¿ô¤Îʸ»ú¤òºï½ü¤¹¤ë¡£ -X ECH ¸½ºß¤Î¹Ô¤«¤é»Ø¼¨¤µ¤ì¤¿¿ô¤Îʸ»ú¤ò¾Ãµî¤¹¤ë¡£ -a HPR ¥«¡¼¥½¥ë¤ò»Ø¼¨¤µ¤ì¤¿¿ô¤Î·å¤À¤±±¦¤Ë°ÜÆ°¤¹¤ë¡£ -c DA ESC [ ? 6 c ¤òÊÖ¤¹: "»ä¤ÏVT102¤Ç¤¹"(¤È¤¤¤¦¤³¤È)¡£ -d VPA ¥«¡¼¥½¥ë¤ò»Ø¼¨¤µ¤ì¤¿¹Ô¤Î¸½ºß¤Î·å¤Ë°ÜÆ°¤¹¤ë¡£ -e VPR ¥«¡¼¥½¥ë¤ò»Ø¼¨¤µ¤ì¤¿¹Ô¿ô¤À¤±²¼¤Ë°ÜÆ°¤¹¤ë¡£ -f HVP ¥«¡¼¥½¥ë¤ò»Ø¼¨¤µ¤ì¤¿¹Ô¡¢·å¤Ë°ÜÆ°¤¹¤ë¡£ -g TBC ¥Ñ¥é¥á¡¼¥¿¤Ê¤·¤Î»þ: ¸½ºß°ÌÃ֤Υ¿¥Ö¥¹¥È¥Ã¥×¤òºï½ü¤¹¤ë¡£ - ESC [ 3 g: ¤¹¤Ù¤Æ¤Î¥¿¥Ö¥¹¥È¥Ã¥×¤òºï½ü¤¹¤ë¡£ -h SM ¥â¡¼¥É¤Î¥»¥Ã¥È(¸å½Ò)¡£ -l RM ¥â¡¼¥É¤Î¥ê¥»¥Ã¥È(¸å½Ò)¡£ -m SGR °À­¤Î¥»¥Ã¥È(¸å½Ò)¡£ -n DSR ¾õÂÖ¤ÎÊó¹ð(¸å½Ò)¡£ -q DECLL ¥­¡¼¥Ü¡¼¥É¤Î LED ¤ò¥»¥Ã¥È¤¹¤ë¡£ - ESC [ 0 q: ¤¹¤Ù¤Æ¤Î LED ¤ò¾Ã¤¹¡£ - ESC [ 1 q: ¥¹¥¯¥í¡¼¥ë¥í¥Ã¥¯ LED ¤òÅÀÅô¡£ - ESC [ 2 q: ¥Ê¥ó¥Ð¡¼¥í¥Ã¥¯ LED ¤òÅÀÅô¡£ - ESC [ 3 q: ¥­¥ã¥Ô¥¿¥ë¥í¥Ã¥¯ LED ¤òÅÀÅô¡£ -r DECSTBM ¥¹¥¯¥í¡¼¥ë¤ÎÈϰϤΥ»¥Ã¥È; ¥Ñ¥é¥á¡¼¥¿¤Ï°ìÈÖ¾å¤Î¹Ô¤È - °ìÈÖ²¼¤Î¹Ô¡£ -s ? ¥«¡¼¥½¥ë°ÌÃÖ¤ÎÊݸ¡£ -u ? ¥«¡¼¥½¥ë°ÌÃÖ¤ÎÉüµ¢¡£ -\` HPA ¥«¡¼¥½¥ë¤ò¸½ºß¤Î¹Ô¤Î»Ø¼¨¤µ¤ì¤¿·å¤Ë°ÜÆ°¤¹¤ë¡£ +K EL 行の消去(デフォルト: カーソルから行末まで)。 + ESC [ 1 K: 行頭からカーソルまでの消去。 + ESC [ 2 K: 行全体の消去。 +L IL 指示された数の空行を挿入する。 +M DL 指示された数の行を削除する。 +P DCH 現在の行から指示された数の文字を削除する。 +X ECH 現在の行から指示された数の文字を消去する。 +a HPR カーソルを指示された数の桁だけ右に移動する。 +c DA ESC [ ? 6 c を返す: "私はVT102です"(ということ)。 +d VPA カーソルを指示された行の現在の桁に移動する。 +e VPR カーソルを指示された行数だけ下に移動する。 +f HVP カーソルを指示された行、桁に移動する。 +g TBC パラメータなしの時: 現在位置のタブストップを削除する。 + ESC [ 3 g: すべてのタブストップを削除する。 +h SM モードのセット(後述)。 +l RM モードのリセット(後述)。 +m SGR 属性のセット(後述)。 +n DSR 状態の報告(後述)。 +q DECLL キーボードの LED をセットする。 + ESC [ 0 q: すべての LED を消す。 + ESC [ 1 q: スクロールロック LED を点灯。 + ESC [ 2 q: ナンバーロック LED を点灯。 + ESC [ 3 q: キャピタルロック LED を点灯。 +r DECSTBM スクロールの範囲のセット; パラメータは一番上の行と + 一番下の行。 +s ? カーソル位置の保存。 +u ? カーソル位置の復帰。 +\` HPA カーソルを現在の行の指示された桁に移動する。 .TE .PP -.B "ECMA-48 ¥°¥é¥Õ¥£¥¯¥¹¥ì¥ó¥Ç¥£¥·¥ç¥ó(Graphics Rendition)¤ÎÀßÄê" +.B "ECMA-48 グラフィクスレンディション(Graphics Rendition)の設定" .sp .\"O The ECMA-48 SGR sequence ESC [ \fIparameters\fP m sets display .\"O attributes. @@ -282,44 +282,44 @@ u ? .\"O semicolons. .\"O An empty parameter (between semicolons or string initiator or .\"O terminator) is interpreted as a zero. -ECMA-48 SGR ¥·¡¼¥±¥ó¥¹ ESC [ <¥Ñ¥é¥á¡¼¥¿> m ¤Ïɽ¼¨Â°À­¤òÀßÄꤹ¤ë¡£ -¥»¥ß¥³¥í¥ó¤Ç¶èÀڤ뤳¤È¤Ç¡¢Æ±¤¸¥·¡¼¥±¥ó¥¹¤Ç¤¤¤¯¤Ä¤«¤Î°À­¤òÀßÄê¤Ç¤­¤ë¡£ -¶õ¥Ñ¥é¥á¡¼¥¿(¥»¥ß¥³¥í¥ó¤«Ê¸»úÎ󳫻Ïʸ»ú¤«Ê¸»úÎó½ªÃ¼Ê¸»ú¤Î´Ö)¤Ï¥¼¥í¤È²ò¼á¤µ¤ì¤ë¡£ +ECMA-48 SGR シーケンス ESC [ <パラメータ> m は表示属性を設定する。 +セミコロンで区切ることで、同じシーケンスでいくつかの属性を設定できる。 +空パラメータ(セミコロンか文字列開始文字か文字列終端文字の間)はゼロと解釈される。 .TS l l. -¥Ñ¥é¥á¡¼¥¿ ·ë²Ì -0 ¤¹¤Ù¤Æ¤Î°À­¤ò¥Ç¥Õ¥©¥ë¥È¤Ë¥ê¥»¥Ã¥È¤¹¤ë¡£ -1 ¥Ü¡¼¥ë¥É(bold)¤ò¥»¥Ã¥È¡£ -2 ¥Ï¡¼¥Õ¥Ö¥é¥¤¥È(half-bright)(¥«¥é¡¼¥Ç¥£¥¹¥×¥ì¥¤¤Ç¤Ï¿§¤ÇÂåÍÑ)¤ò - ¥»¥Ã¥È¡£ +パラメータ 結果 +0 すべての属性をデフォルトにリセットする。 +1 ボールド(bold)をセット。 +2 ハーフブライト(half-bright)(カラーディスプレイでは色で代用)を + セット。 .\"O 4 T{ .\"O set underscore (simulated with color on a color display) .\"O (the colors used to simulate dim or underline are set .\"O using ESC ] ...) .\"O T} 4 T{ -²¼Àþ(underscore)¤ò¥»¥Ã¥È(¥«¥é¡¼¥Ç¥£¥¹¥×¥ì¥¤¤Ç¤Ï¿§¤ÇÂåÍÑ)¡£ -(¥Ç¥£¥à¤ä²¼Àþ¤òÂåÍѤ¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¿§¤Ï ESC ] ... ¤Ë¤è¤ê¥»¥Ã¥È) +下線(underscore)をセット(カラーディスプレイでは色で代用)。 +(ディムや下線を代用するのに使われる色は ESC ] ... によりセット) T} -5 ÅÀÌÇ(blink)¤ò¥»¥Ã¥È¡£ -7 ȿžɽ¼¨(reverce video)¤ò¥»¥Ã¥È¡£ +5 点滅(blink)をセット。 +7 反転表示(reverce video)をセット。 .\"O 10 T{ .\"O reset selected mapping, display control flag, .\"O and toggle meta flag (ECMA-48 says "primary font"). .\"O T} 10 T{ -ÁªÂò¤·¤¿¥Þ¥Ã¥Ô¥ó¥°¡¢¥Ç¥£¥¹¥×¥ì¥¤¥³¥ó¥È¥í¡¼¥ë¥Õ¥é¥°(display -control flag)¡¢¥È¥°¥ë¥á¥¿¥Õ¥é¥°(toggle meta flag)¤ò¥ê¥»¥Ã¥È¤¹¤ë -(ECMA-48¤Ç¤Ï"primary font"¤È¸Æ¤ó¤Ç¤¤¤ë)¡£ +選択したマッピング、ディスプレイコントロールフラグ(display +control flag)、トグルメタフラグ(toggle meta flag)をリセットする +(ECMA-48では"primary font"と呼んでいる)。 T} .\"O 11 T{ .\"O select null mapping, set display control flag, .\"O reset toggle meta flag (ECMA-48 says "first alternate font"). .\"O T} 11 T{ -¥Ì¥ë¥Þ¥Ã¥Ô¥ó¥°¤òÁªÂò¡¢¥Ç¥£¥¹¥×¥ì¥¤¥³¥ó¥È¥í¡¼¥ë¥Õ¥é¥°¤ò¥»¥Ã¥È¡¢ -¥È¥°¥ë¥á¥¿¥Õ¥é¥°¤ò¥ê¥»¥Ã¥È¤¹¤ë -(ECMA-48 ¤Ç¤Ï"first alternate font"¤È¸Æ¤ó¤Ç¤¤¤ë)¡£ +ヌルマッピングを選択、ディスプレイコントロールフラグをセット、 +トグルメタフラグをリセットする +(ECMA-48 では"first alternate font"と呼んでいる)。 T} .\"O 12 T{ .\"O select null mapping, set display control flag, @@ -329,148 +329,148 @@ T} .\"O before the mapping table translation is done. .\"O T} 12 T{ -¥Ì¥ë¥Þ¥Ã¥Ô¥ó¥°¤òÁªÂò¡¢¥Ç¥£¥¹¥×¥ì¥¤¥³¥ó¥È¥í¡¼¥ë¥Õ¥é¥°¡¢ -¥È¥°¥ë¥á¥¿¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë -(ECMA-48 ¤Ç¤Ï "second alternate font" ¤È¸Æ¤ó¤Ç¤¤¤ë)¡£ -¥È¥°¥ë¥á¥¿¥Õ¥é¥°¤¬¤¿¤Ã¤Æ¤¤¤ë¤È¡¢ -¥Þ¥Ã¥Ô¥ó¥°¥Æ¡¼¥Ö¥ë¤Ë¤è¤ëÊÑ´¹¤ò¤¹¤ëÁ°¤Ë¡¢¥Ð¥¤¥È¤Î¾å°Ì¤Î1¥Ó¥Ã¥È¤¬ -¥È¥°¥ë¤µ¤ì¤ë¡£ +ヌルマッピングを選択、ディスプレイコントロールフラグ、 +トグルメタフラグをセットする +(ECMA-48 では "second alternate font" と呼んでいる)。 +トグルメタフラグがたっていると、 +マッピングテーブルによる変換をする前に、バイトの上位の1ビットが +トグルされる。 T} .\"O 21 set normal intensity (ECMA-48 says "doubly underlined") -21 Ä̾ï¤Îµ±Å٤˥»¥Ã¥È(ECMA-48 ¤Ç¤Ï "doubly underlined" ¤È¸Æ¤ó¤Ç¤¤¤ë)¡£ -22 Ä̾ï¤Îµ±Å٤˥»¥Ã¥È¡£ -24 ²¼Àþ¥ª¥Õ¡£ -25 ÅÀÌÇ¥ª¥Õ¡£ -27 ȿžɽ¼¨¥ª¥Õ¡£ -30 ¥Õ¥©¥¢¥°¥é¥¦¥ó¥É(foreground)¤ò¹õ¤Ë¥»¥Ã¥È¡£ -31 ¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤òÀ֤˥»¥Ã¥È¡£ -32 ¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤òÎФ˥»¥Ã¥È¡£ -33 ¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤òÃã¤Ë¥»¥Ã¥È¡£ -34 ¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤òÀĤ˥»¥Ã¥È¡£ -35 ¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤ò¥Þ¥¼¥ó¥À¤Ë¥»¥Ã¥È¡£ -36 ¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤ò¥·¥¢¥ó¤Ë¥»¥Ã¥È¡£ -37 ¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤òÇò¤Ë¥»¥Ã¥È¡£ -38 ²¼Àþɽ¼¨¤ËÀßÄꤷ¡¢¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤ò¥Ç¥Õ¥©¥ë¥È¤Ë¥»¥Ã¥È¡£ -39 ²¼Àþɽ¼¨¤ò²ò½ü¤·¡¢¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤ò¥Ç¥Õ¥©¥ë¥È¤Ë¥»¥Ã¥È¡£ -40 ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É(background)¤ò¹õ¤Ë¥»¥Ã¥È¡£ -41 ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤òÀ֤˥»¥Ã¥È¡£ -42 ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤òÎФ˥»¥Ã¥È¡£ -43 ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤òÃã¤Ë¥»¥Ã¥È¡£ -44 ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤òÀĤ˥»¥Ã¥È¡£ -45 ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤ò¥Þ¥¼¥ó¥À¤Ë¥»¥Ã¥È¡£ -46 ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤ò¥·¥¢¥ó¤Ë¥»¥Ã¥È¡£ -47 ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤òÇò¤Ë¥»¥Ã¥È¡£ -49 ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤ò¥Ç¥Õ¥©¥ë¥È¤Ë¥»¥Ã¥È¡£ +21 通常の輝度にセット(ECMA-48 では "doubly underlined" と呼んでいる)。 +22 通常の輝度にセット。 +24 下線オフ。 +25 点滅オフ。 +27 反転表示オフ。 +30 フォアグラウンド(foreground)を黒にセット。 +31 フォアグラウンドを赤にセット。 +32 フォアグラウンドを緑にセット。 +33 フォアグラウンドを茶にセット。 +34 フォアグラウンドを青にセット。 +35 フォアグラウンドをマゼンダにセット。 +36 フォアグラウンドをシアンにセット。 +37 フォアグラウンドを白にセット。 +38 下線表示に設定し、フォアグラウンドをデフォルトにセット。 +39 下線表示を解除し、フォアグラウンドをデフォルトにセット。 +40 バックグラウンド(background)を黒にセット。 +41 バックグラウンドを赤にセット。 +42 バックグラウンドを緑にセット。 +43 バックグラウンドを茶にセット。 +44 バックグラウンドを青にセット。 +45 バックグラウンドをマゼンダにセット。 +46 バックグラウンドをシアンにセット。 +47 バックグラウンドを白にセット。 +49 バックグラウンドをデフォルトにセット。 .TE .PP -.B "ECMA-48 ¥â¡¼¥É¥¹¥¤¥Ã¥Á(Mode Switches)" +.B "ECMA-48 モードスイッチ(Mode Switches)" .TP ESC [ 3 h -DECCRM (¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥ª¥Õ): ¥³¥ó¥È¥í¡¼¥ëʸ»ú¤òɽ¼¨¤¹¤ë¡£ +DECCRM (デフォルトではオフ): コントロール文字を表示する。 .TP ESC [ 4 h -DECIM (¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥ª¥Õ): ÁÞÆþ¥â¡¼¥É¤Ë¤¹¤ë¡£ +DECIM (デフォルトではオフ): 挿入モードにする。 .TP ESC [ 20 h -LF/NL (¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥ª¥Õ): LF, VT, FF¤ò¥¨¥³¡¼¤·¤¿¤¢¤È¼«Æ°Åª CR ¤ò¤Ä¤±¤ë¡£ +LF/NL (デフォルトではオフ): LF, VT, FFをエコーしたあと自動的 CR をつける。 .\" .PP -.B "ECMA-48 ¾õÂÖ¥ê¥Ý¡¼¥È¥³¥Þ¥ó¥É(Status Report Commands)" +.B "ECMA-48 状態リポートコマンド(Status Report Commands)" .\" .TP ESC [ 5 n -¥Ç¥Ð¥¤¥¹¾õÂ֤Υê¥Ý¡¼¥È(DSR): ÊÖ»ö¤Ï ESC [ 0 n (üËö OK). +デバイス状態のリポート(DSR): 返事は ESC [ 0 n (端末 OK). .TP ESC [ 6 n -¥«¡¼¥½¥ë°ÌÃ֤Υê¥Ý¡¼¥È(CPR): ÊÖ»ö¤Ï ESC [ \fIy\fP ; \fIx\fP R¡¢ -\fIx,y\fP ¤Ï¥«¡¼¥½¥ë¤Î°ÌÃÖ¤ò¤¢¤é¤ï¤¹¡£ +カーソル位置のリポート(CPR): 返事は ESC [ \fIy\fP ; \fIx\fP R、 +\fIx,y\fP はカーソルの位置をあらわす。 .\" .PP -.B "DEC ¥×¥é¥¤¥Ù¡¼¥È¥â¡¼¥É (DECSET/DECRST) ¥·¡¼¥±¥ó¥¹" +.B "DEC プライベートモード (DECSET/DECRST) シーケンス" .sp .\" -¤³¤ì¤é¤Ï ECMA-48 ¤Ç¤Ïµ­½Ò¤µ¤ì¤Æ¤¤¤Ê¤¤¡£¤³¤³¤Ç¤Ï¡¢¥»¥Ã¥È¥â¡¼¥É -¥·¡¼¥±¥ó¥¹ (Set Mode sequences)¤òµ­ºÜ¤¹¤ë; ºÇ¸å¤Î \(aqh\(aq ¤ò \(aql\(aq ¤Ë -ÃÖ¤­´¹¤¨¤ë¤È¥ê¥»¥Ã¥È¥â¡¼¥É¥·¡¼¥±¥ó¥¹(Reset Mode sequences)¤Ë¤Ê¤ë¡£ +これらは ECMA-48 では記述されていない。ここでは、セットモード +シーケンス (Set Mode sequences)を記載する; 最後の \(aqh\(aq を \(aql\(aq に +置き換えるとリセットモードシーケンス(Reset Mode sequences)になる。 .TP ESC [ ? 1 h -DECCKM (¥Ç¥Õ¥©¥ë¥È¤Ï¥ª¥Õ): ¥»¥Ã¥È¤µ¤ì¤¿»þ¤Ë¤Ï¥«¡¼¥½¥ë¥­¡¼¤Ï ESC [ ¤Ç¤Ï¤Ê¤¯ -ESC O ¤òÁ°¤Ë¤Ä¤±¤ÆÁ÷¤ë¡£ +DECCKM (デフォルトはオフ): セットされた時にはカーソルキーは ESC [ ではなく +ESC O を前につけて送る。 .TP ESC [ ? 3 h -DECCOLM (¥Ç¥Õ¥©¥ë¥È¤Ï¥ª¥Õ = 80 ·å): 80/132 ¤Î·å¥â¡¼¥ÉÀÚÂؤ¨¡£ -¥É¥é¥¤¥Ð¡¼¤Î¥½¡¼¥¹¤ÎÃí¼á¤Ë¤Ï¡¢¤³¤ì¤À¤±¤Ç¤Ï½½Ê¬¤Ç¤Ê¤¯ +DECCOLM (デフォルトはオフ = 80 桁): 80/132 の桁モード切替え。 +ドライバーのソースの注釈には、これだけでは十分でなく .BR resizecons (8) -¤Î¤è¤¦¤Ê¥æ¡¼¥¶¡¼¥â¡¼¥É¤Î¥æ¡¼¥Æ¥£¥ê¥Æ¥£¡¼¤Ç¡¢¥³¥ó¥½¡¼¥ë¥Ó¥Ç¥ª¥«¡¼¥É¤Î -¥Ï¡¼¥É¥¦¥§¥¢¥ì¥¸¥¹¥¿¤òÊѤ¨¤ëɬÍפ¬¤¢¤ë¤È½ñ¤«¤ì¤Æ¤¤¤ë¡£ +のようなユーザーモードのユーティリティーで、コンソールビデオカードの +ハードウェアレジスタを変える必要があると書かれている。 .TP ESC [ ? 5 h -DECSCNM (¥Ç¥Õ¥©¥ë¥È¤Ï¥ª¥Õ): ȿžɽ¼¨¥â¡¼¥É¤Î¥»¥Ã¥È¡£ +DECSCNM (デフォルトはオフ): 反転表示モードのセット。 .TP ESC [ ? 6 h -DECOM(¥Ç¥Õ¥©¥ë¥È¤Ï¥ª¥Õ): ¥»¥Ã¥È¤µ¤ì¤¿»þ¤Ë¤Ï¡¢¥«¡¼¥½¥ë¤Î¥¢¥É¥ì¥Ã¥·¥ó¥°¤¬¡¢ -¥¹¥¯¥í¡¼¥ëÈϰϤκ¸¾å¶ù¤«¤é¤ÎÁêÂаÌÃ֤ˤʤ롣 +DECOM(デフォルトはオフ): セットされた時には、カーソルのアドレッシングが、 +スクロール範囲の左上隅からの相対位置になる。 .TP ESC [ ? 7 h -DECAWM(¥Ç¥Õ¥©¥ë¥È¤Ï¥ª¥ó): ¥ª¡¼¥È¥é¥Ã¥×¤òÀßÄê¡£¤³¤Î¥â¡¼¥É¤Î»þ¤Ï¡¢80 ·å -(DECCOLM ¤¬¥ª¥ó¤Î¤È¤­¤Ï 132 ·å)¤òĶ¤¨¤¿¥°¥é¥Õ¥£¥Ã¥¯¥­¥ã¥é¥¯¥¿¤Ï¡¢ -¶¯À©Åª¤Ë¼¡¤Î¹Ô¤ÎÀèƬ¤ËÀÞ¤êÊÖ¤µ¤ì¤Æɽ¼¨¤µ¤ì¤ë¡£ +DECAWM(デフォルトはオン): オートラップを設定。このモードの時は、80 桁 +(DECCOLM がオンのときは 132 桁)を超えたグラフィックキャラクタは、 +強制的に次の行の先頭に折り返されて表示される。 .TP ESC [ ? 8 h -DECARM(¥Ç¥Õ¥©¥ë¥È¤Ï¥ª¥ó): ¥­¡¼¥Ü¡¼¥É¤Î¥ª¡¼¥È¥ê¥Ô¡¼¥È¤ò¥ª¥ó¤Ë¥»¥Ã¥È¡£ +DECARM(デフォルトはオン): キーボードのオートリピートをオンにセット。 .TP ESC [ ? 9 h -X10 ¥Þ¥¦¥¹¥ê¥Ý¡¼¥È(¥Ç¥Õ¥©¥ë¥È¤Ï¥ª¥Õ): ¥ê¥Ý¡¼¥È¥â¡¼¥É¤ò 1 ¤Ë¥»¥Ã¥È(¤Þ¤¿¤Ï¡¢ -0 ¤Ë¥ê¥»¥Ã¥È)\(em¸å½Ò +X10 マウスリポート(デフォルトはオフ): リポートモードを 1 にセット(または、 +0 にリセット)\(em後述 .TP ESC [ ? 25 h .\"O DECTECM (default on): Make cursor visible. -DECTECM (¥Ç¥Õ¥©¥ë¥È¤Ï¥ª¥ó): ¥«¡¼¥½¥ë¤ò²Ä»ë(visible)¤Ë¤¹¤ë¡£ +DECTECM (デフォルトはオン): カーソルを可視(visible)にする。 .TP ESC [ ? 1000 h -X11 ¥Þ¥¦¥¹¥ê¥Ý¡¼¥È(¥Ç¥Õ¥©¥ë¥È¤Ï¥ª¥Õ): ¥ê¥Ý¡¼¥È¥â¡¼¥É¤ò 2 ¤Ë¥»¥Ã¥È(¤Þ¤¿¤Ï¡¢ -0¤Ë¥ê¥»¥Ã¥È)\(em¸å½Ò +X11 マウスリポート(デフォルトはオフ): リポートモードを 2 にセット(または、 +0にリセット)\(em後述 .\" .PP -.B "Linux ¥³¥ó¥½¡¼¥ë¥×¥é¥¤¥Ù¡¼¥È CSI ¥·¡¼¥±¥ó¥¹" +.B "Linux コンソールプライベート CSI シーケンス" .sp .\" -°Ê²¼¤Î¥·¡¼¥±¥ó¥¹¤Ï ECMA-48 ¤Î¤â¤Î¤Ç¤âËÜÍè¤Î VT102 ¤Î¤â¤Î¤Ç¤â¤Ç¤â¤Ê¤¯¡¢ -Linux¥³¥ó¥½¡¼¥ë¥É¥é¥¤¥Ð¡¼¤Ë¸ÇÍ­¤Ê¥·¡¼¥±¥ó¥¹¤Ç¤¢¤ë¡£¿§¤Ï SGR ¥Ñ¥é¥á¡¼¥¿¤Ç -ɽ¸½¤µ¤ì¤ë: 0 = ¹õ, 1= ÀÖ, 2 = ÎÐ, 3 = Ãã, 4 = ÀÄ, 5 = ¥Þ¥¼¥ó¥¿, -6 = ¥·¥¢¥ó, 7 = Çò +以下のシーケンスは ECMA-48 のものでも本来の VT102 のものでもでもなく、 +Linuxコンソールドライバーに固有なシーケンスである。色は SGR パラメータで +表現される: 0 = 黒, 1= 赤, 2 = 緑, 3 = 茶, 4 = 青, 5 = マゼンタ, +6 = シアン, 7 = 白 .TS l l. -ESC [ 1 ; \fIn\fP ] ²¼Àþ¤Î¿§¤ò\fIn\fP ¤Ë¥»¥Ã¥È¤¹¤ë¡£ -ESC [ 2 ; \fIn\fP ] ¥Ç¥£¥à¤Î¿§¤ò\fIn\fP ¤Ë¥»¥Ã¥È¤¹¤ë¡£ -ESC [ 8 ] ¸½ºß¤Î¿§¤Î¥Ú¥¢¤ò¥Ç¥Õ¥©¥ë¥È°À­¤Ë¤¹¤ë¡£ -ESC [ 9 ; \fIn\fP ] ¥¹¥¯¥ê¡¼¥ó¥Ö¥é¥ó¥¯(screen blank)¤Î¥¿¥¤¥à¥¢¥¦¥È - ¤ò \fIn\fP ʬ¤Ë¥»¥Ã¥È¤¹¤ë¡£ -ESC [ 10 ; \fIn\fP ] ¥Ù¥ë¤Î¼þÇÈ¿ô(Hz)¤ò¥»¥Ã¥È¤¹¤ë¡£ -ESC [ 11 ; \fIn\fP ] ¥Ù¥ë¤ÎÌĤäƤ¤¤ë»þ´Ö(msec)¤ò¥»¥Ã¥È¤¹¤ë¡£ -ESC [ 12 ; \fIn\fP ] »ØÄê¤Î¥³¥ó¥½¡¼¥ë¤òÁ°Ì̤˻ý¤Ã¤Æ¤¯¤ë¡£ -ESC [ 13 ] ¥¹¥¯¥ê¡¼¥ó¤ò¥¢¥ó¥Ö¥é¥ó¥¯(Unblank)¤¹¤ë¡£ -ESC [ 14 ] VESAÅŸ»Ää»ß¥¤¥ó¥¿¡¼¥Ð¥ë(VESA powerdown - interval)¤ò¥»¥Ã¥È¤¹¤ë¡£ +ESC [ 1 ; \fIn\fP ] 下線の色を\fIn\fP にセットする。 +ESC [ 2 ; \fIn\fP ] ディムの色を\fIn\fP にセットする。 +ESC [ 8 ] 現在の色のペアをデフォルト属性にする。 +ESC [ 9 ; \fIn\fP ] スクリーンブランク(screen blank)のタイムアウト + を \fIn\fP 分にセットする。 +ESC [ 10 ; \fIn\fP ] ベルの周波数(Hz)をセットする。 +ESC [ 11 ; \fIn\fP ] ベルの鳴っている時間(msec)をセットする。 +ESC [ 12 ; \fIn\fP ] 指定のコンソールを前面に持ってくる。 +ESC [ 13 ] スクリーンをアンブランク(Unblank)する。 +ESC [ 14 ] VESA電源停止インターバル(VESA powerdown + interval)をセットする。 .TE -.SS ʸ»ú½¸¹ç +.SS 文字集合 .\"O The kernel knows about 4 translations of bytes into console-screen .\"O symbols. .\"O The four tables are: a) Latin1 \-> PC, .\"O b) VT100 graphics \-> PC, c) PC \-> PC, d) user-defined. -¥«¡¼¥Í¥ë¤Ï¡¢¥Ð¥¤¥ÈÎ󤫤饳¥ó¥½¡¼¥ë¥¹¥¯¥ê¡¼¥óÉä¹æ¤ÎÊÑ´¹¤ò 4 ¤Ä -ÃΤäƤ¤¤ë¡£ -4 ¤Ä¤ÎÊÑ´¹¥Æ¡¼¥Ö¥ë¤È¤Ï¡¢a) Latin1 \-> PC, b) VT100 graphics \-> PC, -c) PC \-> PC, d) ¥æ¡¼¥¶¡¼ÄêµÁ, ¤Ç¤¢¤ë¡£ +カーネルは、バイト列からコンソールスクリーン符号の変換を 4 つ +知っている。 +4 つの変換テーブルとは、a) Latin1 \-> PC, b) VT100 graphics \-> PC, +c) PC \-> PC, d) ユーザー定義, である。 .PP .\"O There are two character sets, called G0 and G1, and one of them .\"O is the current character set. .\"O (Initially G0.) .\"O Typing \fB^N\fP causes G1 to become current, .\"O \fB^O\fP causes G0 to become current. -G0 ¤È G1 ¤È¸Æ¤Ð¤ì¤ëÆó¤Ä¤Îʸ»ú½¸¹ç¤¬¤¢¤ê¡¢¤½¤Î¤¦¤Á°ì¤Ä¤¬¸½ºß¤Î -ʸ»ú½¸¹ç¤Ç¤¢¤ë(½é´üÃÍ¤Ï G0 )¡£ -\fB^N\fP ¤ò¥¿¥¤¥×¤¹¤ë¤È G1 ¤¬ \fB^O\fP ¤òÆþÎϤ¹¤ë¤È G0 ¤¬¸½ºß¤Îʸ»ú½¸¹ç¤Ë¤Ê¤ë¡£ +G0 と G1 と呼ばれる二つの文字集合があり、そのうち一つが現在の +文字集合である(初期値は G0 )。 +\fB^N\fP をタイプすると G1 が \fB^O\fP を入力すると G0 が現在の文字集合になる。 .PP .\"O These variables G0 and G1 point at a translation table, and can be .\"O changed by the user. @@ -479,33 +479,33 @@ G0 .\"O point at translation table a), b), c) and d), respectively. .\"O The sequences ESC ) B and ESC ) 0 and ESC ) U and ESC ) K cause G1 to .\"O point at translation table a), b), c) and d), respectively. -ÊÑ¿ô G0 ¤È G1 ¤ÏÊÑ´¹¥Æ¡¼¥Ö¥ë¤ò»Ø¤·¤Æ¤ª¤ê¡¢¥æ¡¼¥¶¡¼¤Ë¤è¤êÊѹ¹¤Ç¤­¤ë¡£ -ºÇ½é¤Ï¤½¤ì¤¾¤ì¥Æ¡¼¥Ö¥ë a) ¤È ¥Æ¡¼¥Ö¥ë b) ¤ò»Ø¤·¤Æ¤¤¤ë¡£ -ESC ( B ¡¢ ESC ( 0 ¡¢ ESC ( U ¡¢ ESC ( K ¤Î¤½¤ì¤¾¤ì¤Î¥·¡¼¥±¥ó¥¹¤Ë¤è¤ê¡¢ -G0 ¤¬ÊÑ´¹¥Æ¡¼¥Ö¥ë a)¡¢ b)¡¢ c)¡¢ d) ¤ò»Ø¤¹¤è¤¦¤Ë¤Ê¤ë¡£ -¤Þ¤¿¡¢ESC ) B ¡¢ ESC ) 0 ¡¢ ESC ) U ¡¢ ESC ) K ¤Î¤½¤ì¤¾¤ì¤Î¥·¡¼¥±¥ó¥¹ -¤Ë¤è¤ê¡¢G1 ¤¬ÊÑ´¹¥Æ¡¼¥Ö¥ë a)¡¢ b)¡¢ c)¡¢ d) ¤ò»Ø¤¹¤è¤¦¤Ë¤Ê¤ë¡£ -.PP -ESC c ¤Î¥·¡¼¥±¥ó¥¹¤ÏüËö¤ò¥ê¥»¥Ã¥È¤¹¤ë¡£¥¹¥¯¥ê¡¼¥ó¤¬¤á¤Á¤ã¤¯¤Á¤ã¤Ë¤Ê¤Ã¤¿ -»þ¤Ë¤½¤¦¤¹¤ë¤³¤È¤¬É¬ÍפǤ¢¤ë¡£¤è¤¯¥¢¥É¥Ð¥¤¥¹¤µ¤ì¤ë "echo ^V^O" ¤Ï G0 -¤ò¸½ºß¤Îʸ»ú½¸¹ç¤Ë¤¹¤ë¤À¤±¤Ç¤¢¤ê¡¢G0 ¤¬¥Æ¡¼¥Ö¥ë a) ¤ò»Ø¤·¤Æ¤¤¤ë¤È¤¤¤¦ -ÊݾڤϤʤ¤¡£ -¤¤¤¯¤Ä¤«¤Î¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ë¤Ï¡¢ +変数 G0 と G1 は変換テーブルを指しており、ユーザーにより変更できる。 +最初はそれぞれテーブル a) と テーブル b) を指している。 +ESC ( B 、 ESC ( 0 、 ESC ( U 、 ESC ( K のそれぞれのシーケンスにより、 +G0 が変換テーブル a)、 b)、 c)、 d) を指すようになる。 +また、ESC ) B 、 ESC ) 0 、 ESC ) U 、 ESC ) K のそれぞれのシーケンス +により、G1 が変換テーブル a)、 b)、 c)、 d) を指すようになる。 +.PP +ESC c のシーケンスは端末をリセットする。スクリーンがめちゃくちゃになった +時にそうすることが必要である。よくアドバイスされる "echo ^V^O" は G0 +を現在の文字集合にするだけであり、G0 がテーブル a) を指しているという +保証はない。 +いくつかのディストリビューションには、 .BR reset (1) -¤È¤¤¤¦¥×¥í¥°¥é¥à¤¬´Þ¤Þ¤ì¤ë¤¬¡¢¤³¤ì¤Ï¤¿¤À "echo ^[c" ¤ò¼Â¹Ô¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +というプログラムが含まれるが、これはただ "echo ^[c" を実行するものである。 .\"O If your terminfo entry for the console is correct .\"O (and has an entry rs1=\\Ec), then "tput reset" will also work. -¤â¤·¡¢¥³¥ó¥½¡¼¥ë¤Î terminfo ¥¨¥ó¥È¥ê¡¼¤¬Àµ¤·¤¤(¤«¤Ä rs1=\\Ec ¤Î¥¨¥ó¥È¥ê¡¼¤¬ -¤¢¤ë)¤Ê¤é¤Ð¡¢"tput reset"¤Ç¤âƱ¤¸¸ú²Ì¤¬¤¢¤ë¡£ +もし、コンソールの terminfo エントリーが正しい(かつ rs1=\\Ec のエントリーが +ある)ならば、"tput reset"でも同じ効果がある。 .PP -¥æ¡¼¥¶¡¼ÄêµÁ¤Î¥Þ¥Ã¥Ô¥ó¥°¥Æ¡¼¥Ö¥ë¤Ï +ユーザー定義のマッピングテーブルは .BR mapscrn (8) -¤ò»È¤Ã¤ÆÄêµÁ¤Ç¤­¤ë¡£ -¥Þ¥Ã¥Ô¥ó¥°¤Î·ë²Ì¡¢¥·¥ó¥Ü¥ë c ¤¬°õ»ú¤µ¤ì¤ë¤È¥·¥ó¥Ü¥ë s = map[c] ¤¬ -¥Ó¥Ç¥ª¥á¥â¥ê¤ËÁ÷¤é¤ì¤ë¡£s ¤ËÂбþ¤¹¤ë¥Ó¥Ã¥È¥Þ¥Ã¥×¤Ï¥­¥ã¥é¥¯¥¿¡¼ ROM ¤Ë¤¢¤ê¡¢ +を使って定義できる。 +マッピングの結果、シンボル c が印字されるとシンボル s = map[c] が +ビデオメモリに送られる。s に対応するビットマップはキャラクター ROM にあり、 .BR setfont (8) -¤Ë¤è¤êÊѹ¹²Äǽ¤Ç¤¢¤ë¡£ -.SS ¥Þ¥¦¥¹¥È¥é¥Ã¥­¥ó¥° +により変更可能である。 +.SS マウストラッキング .\"O The mouse tracking facility is intended to return .\"O .BR xterm (1)-compatible .\"O mouse status reports. @@ -517,128 +517,128 @@ ESC c .\"O user-mode application such as the .\"O .BR gpm (8) .\"O daemon. -¥Þ¥¦¥¹¥È¥é¥Ã¥­¥ó¥°µ¡Ç½¤Ï¡¢ -.BR xterm (1)-¸ß´¹¤Î -¥Þ¥¦¥¹¥¹¥Æ¡¼¥¿¥¹¥ê¥Ý¡¼¥È(mouse -status reports)¤òÊÖ¤µ¤»¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ -¥³¥ó¥½¡¼¥ë¥É¥é¥¤¥Ð¡¼¤Ï¥Þ¥¦¥¹¤Î¥Ç¥Ð¥¤¥¹¤ä¼ïÎà¤Ë¤Ä¤¤¤ÆÃΤëÊýË¡¤¬ -¤Ê¤¤¤Î¤Ç¡¢²¾ÁÛ¥¿¡¼¥ß¥Ê¥ë¥É¥é¥¤¥Ð¡¼¤¬¥Þ¥¦¥¹¹¹¿·¤Î ioctl ¤ò¼õ¤±¼è¤Ã¤¿»þ¤À¤±¡¢ -¥Þ¥¦¥¹¥¹¥Æ¡¼¥¿¥¹¥ê¥Ý¡¼¥È¤¬¥³¥ó¥½¡¼¥ë¤ÎÆþÎÏ¥¹¥È¥ê¡¼¥à¤ËÁ÷¤é¤ì¤ë¡£ -¤³¤Î ioctl ¤Ï¡¢ +マウストラッキング機能は、 +.BR xterm (1)-互換の +マウスステータスリポート(mouse +status reports)を返させるためのものである。 +コンソールドライバーはマウスのデバイスや種類について知る方法が +ないので、仮想ターミナルドライバーがマウス更新の ioctl を受け取った時だけ、 +マウスステータスリポートがコンソールの入力ストリームに送られる。 +この ioctl は、 .BR gpm (8) -¥Ç¡¼¥â¥ó¤Î¤è¤¦¤Ê¥Þ¥¦¥¹Âбþ¤Î¥æ¡¼¥¶¡¼¥â¡¼¥É -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬È¯À¸¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +デーモンのようなマウス対応のユーザーモード +アプリケーションが発生しなければならない。 .PP .\"O The mouse tracking escape sequences generated by .\"O \fBxterm\fP(1) encode numeric parameters in a single character as .\"O \fIvalue\fP+040. .\"O For example, \(aq!\(aq is 1. .\"O The screen coordinate system is 1-based. -\fBxterm\fP(1) ¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤ëÁ´¤Æ¤Î¥Þ¥¦¥¹ÄÉÀ×¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤Î¤¿¤á¤Î -¥Ñ¥é¥á¡¼¥¿¤Ï¡¢¿ôÃͤò \fIvalue\fP+040 ¤Î¤è¤¦¤ËÉä¹æ²½¤·¡¢°ì¤Ä¤Îʸ»ú¤È¤·¤Æ -¤¢¤é¤ï¤¹¡£ -Î㤨¤Ð¡¢\(aq!\(aq ¤Ï 1 ¤Ë¤Ê¤ë¡£¥¹¥¯¥ê¡¼¥óºÂɸ¤Ï 1 ¤ò¥Ù¡¼¥¹¤Ë¤¹¤ë¡£ -.PP -X10 ¸ß´¹¥â¡¼¥É¤Ç¤Ï¡¢¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤¿»þ¤Ë¥Þ¥¦¥¹¤Î°ÌÃ֤Ȳ¡¤µ¤ì¤¿¥Þ¥¦¥¹¤Î -¥Ü¥¿¥ó¤È¤ò¥¨¥ó¥³¡¼¥É¤·¤¿¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤òÁ÷¤ë¡£ -¤³¤Îµ¡Ç½¤Ï ESC [ ? 9 h ¤òÁ÷¤ë¤ÈÍ­¸ú¤Ë¤Ê¤ê ESC [ ? 9 l ¤Ë¤è¤ê̵¸ú¤Ë¤Ê¤ë¡£ -¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤ë¤È \fBxterm\fP(1) ¤Ï ESC [ M \fIbxy\fP (¤Î 6 ʸ»ú)¤òÁ÷¤ë¡£ -¤³¤³¤Ç \fIb\fP ¤Ï button\-1, \fIx\fP ¤È \fIy\fP ¤Ï ¥Þ¥¦¥¹¤¬¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤¿ -»þ¤Î x ¤È y ºÂɸ¤Ç¤¢¤ë¡£ -¤³¤Î¥³¡¼¥É¤Ï¥«¡¼¥Í¥ë¤¬È¯À¸¤¹¤ë¤Î¤ÈƱ¤¸¥³¡¼¥É¤Ç¤¢¤ë¡£ -.PP -¥Î¡¼¥Þ¥ë¥È¥é¥Ã¥­¥ó¥°¥â¡¼¥É(Normal tracking mode)(Linux 2.0.24 ¤Ç¤Ï -¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤)¤Ç¤Ï¡¢Î¾Êý¤Î¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤¿¤«Î¥¤µ¤ì¤¿»þ¤Ë -¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤¬Á÷¤é¤ì¤ë¡£ -¥â¥Ç¥£¥Õ¥¡¥¤¥¢¤Î¾ðÊó¤â°ì½ï¤ËÁ÷¤é¤ì¤ë¡£ -¤³¤Îµ¡Ç½¤Ï¡¢ESC [ ? 1000 h ¤òÁ÷¤ë¤ÈÍ­¸ú¤Ë¤Ê¤ê ESC [ ? 1000 l ¤Ç̵¸ú¤Ë¤Ê¤ë¡£ -¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤ë¤«Î¥¤µ¤ì¤ë¤«¤·¤¿»þ¤Ë¤Ï¡¢\fBxterm\fP(1) ¤Ï ESC [ M -\fIbxy\fP ¤òÁ÷¤ë¡£ -\fIb\fP ¤ÎÄã°Ì¤Î2¥Ó¥Ã¥È¤Ë¤Ï¥Ü¥¿¥ó¾ðÊ󤬥¨¥ó¥³¡¼¥É¤µ¤ì¤ë: -0=MB1 ¤¬²¡¤µ¤ì¤¿, 1=MB2 ¤¬²¡¤µ¤ì¤¿, 2=MB3 ¤¬²¡¤µ¤ì¤¿, 3=Î¥¤µ¤ì¤¿¡£ -¹â°Ì¤Î¥Ó¥Ã¥È¤Ë¤Ï¡¢¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤¿»þ¤Ë¤É¤Î¥â¥Ç¥£¥Õ¥¡¥¤¥¢¤¬¥À¥¦¥ó¤·¤Æ¤¤¤¿¤«¤¬ -¥¨¥ó¥³¡¼¥É¤µ¤ì¤ë: 4=Shift, 8=Meta, 16=Control¡£ -¤½¤·¤Æ¡¢¾å°Ì¤È²¼°Ì¥Ó¥Ã¥È¤¬²Ã»»¤µ¤ì¤ë¡£ -¤³¤³¤Ç¤â \fIx\fP ¤È \fIy\fP ¤Ï¡¢¥Þ¥¦¥¹¥¤¥Ù¥ó¥È¤¬µ¯¤³¤Ã¤¿»þ¤Î -x ¤È y ºÂɸ¤Ç¤¢¤ê¡¢º¸¾å¤Î¶ù¤¬(1,1)¤Ç¤¢¤ë¡£ -.SS ¾¤Î¥¿¡¼¥ß¥Ê¥ë¤È¤ÎÈæ³Ó +\fBxterm\fP(1) によって生成される全てのマウス追跡エスケープシーケンスのための +パラメータは、数値を \fIvalue\fP+040 のように符号化し、一つの文字として +あらわす。 +例えば、\(aq!\(aq は 1 になる。スクリーン座標は 1 をベースにする。 +.PP +X10 互換モードでは、ボタンが押された時にマウスの位置と押されたマウスの +ボタンとをエンコードしたエスケープシーケンスを送る。 +この機能は ESC [ ? 9 h を送ると有効になり ESC [ ? 9 l により無効になる。 +ボタンが押されると \fBxterm\fP(1) は ESC [ M \fIbxy\fP (の 6 文字)を送る。 +ここで \fIb\fP は button\-1, \fIx\fP と \fIy\fP は マウスがボタンが押された +時の x と y 座標である。 +このコードはカーネルが発生するのと同じコードである。 +.PP +ノーマルトラッキングモード(Normal tracking mode)(Linux 2.0.24 では +実装されていない)では、両方のボタンが押されたか離された時に +エスケープシーケンスが送られる。 +モディファイアの情報も一緒に送られる。 +この機能は、ESC [ ? 1000 h を送ると有効になり ESC [ ? 1000 l で無効になる。 +ボタンが押されるか離されるかした時には、\fBxterm\fP(1) は ESC [ M +\fIbxy\fP を送る。 +\fIb\fP の低位の2ビットにはボタン情報がエンコードされる: +0=MB1 が押された, 1=MB2 が押された, 2=MB3 が押された, 3=離された。 +高位のビットには、ボタンが押された時にどのモディファイアがダウンしていたかが +エンコードされる: 4=Shift, 8=Meta, 16=Control。 +そして、上位と下位ビットが加算される。 +ここでも \fIx\fP と \fIy\fP は、マウスイベントが起こった時の +x と y 座標であり、左上の隅が(1,1)である。 +.SS 他のターミナルとの比較 .\"O Many different terminal types are described, like the Linux console, .\"O as being "VT100-compatible". .\"O Here we discuss differences between the .\"O Linux console and the two most important others, the DEC VT102 and .\"O .BR xterm (1). -¿¤¯¤Î°Û¤Ê¤ë¥¿¡¼¥ß¥Ê¥ë¥¿¥¤¥×¤¬¡¢Linux ¥³¥ó¥½¡¼¥ë¤Î¤è¤¦¤Ë¡¢"VT100¸ß´¹"¤ò -̾¾è¤Ã¤Æ¤¤¤ë¡£ -¤³¤³¤Ç¤Ï¡¢Linux ¥³¥ó¥½¡¼¥ë¤È 2 ¤Ä¤ÎºÇ¤â½ÅÍפʥ¿¡¼¥ß¥Ê¥ë¤Ç¤¢¤ë -DEC VT102 ¤È +多くの異なるターミナルタイプが、Linux コンソールのように、"VT100互換"を +名乗っている。 +ここでは、Linux コンソールと 2 つの最も重要なターミナルである +DEC VT102 と .BR xterm (1) -¤È¤Î°ã¤¤¤Ë¤Ä¤¤¤Æ½Ò¤Ù¤ë¡£ +との違いについて述べる。 .\" .PP -.B ¥³¥ó¥È¥í¡¼¥ëʸ»ú¤Î¼è¤ê°·¤¤ +.B コントロール文字の取り扱い .sp -VT102 ¤Ï°Ê²¼¤Î¥³¥ó¥È¥í¡¼¥ëʸ»ú¤âǧ¼±¤¹¤ë: +VT102 は以下のコントロール文字も認識する: .HP -NUL (0x00) ¤Ï̵»ë¤µ¤ì¤ë; +NUL (0x00) は無視される; .HP -ENQ (0x05) ¤Ï¥¢¥ó¥µ¡¼¥Ð¥Ã¥¯¥á¥Ã¥»¡¼¥¸(answerback message)¤òȯÀ¸¤¹¤ë; +ENQ (0x05) はアンサーバックメッセージ(answerback message)を発生する; .HP .\"O DC1 (0x11, \fB^Q\fP, XON) resumed transmission; -DC1 (0x11, \fB^Q\fP, XON) ¤ÏÁ÷¿®¤òºÆ³«¤¹¤ë; +DC1 (0x11, \fB^Q\fP, XON) は送信を再開する; .HP .\"O DC3 (0x13, \fB^S\fP, XOFF) caused VT100 to ignore (and stop transmitting) .\"O all codes except XOFF and XON. -DC3 (0x13, \fB^S\fP, XOFF) ¤Ï VT100 ¤Ë XOFF ¤È XON °Ê³°¤Î¥³¡¼¥É¤ò̵»ë(¤½¤·¤Æ -Á÷¿®¤ÎÄä»ß)¤òµ¯¤³¤µ¤»¤ë¡£ +DC3 (0x13, \fB^S\fP, XOFF) は VT100 に XOFF と XON 以外のコードを無視(そして +送信の停止)を起こさせる。 .LP -tty ¥É¥é¥¤¥Ð¡¼¤Ë¤è¤ê VT100 ¤Ë»÷¤¿ DC1/DC3 ½èÍý¤ò¤Ç¤­¤ë¡£ +tty ドライバーにより VT100 に似た DC1/DC3 処理をできる。 .LP .BR xterm (1) -(VT100 ¥â¡¼¥É)¤Ï BEL, BS, HT, LF, VT, FF, CR, SO, SI, ESC ¤Î -¥³¥ó¥È¥í¡¼¥ëʸ»ú¤òǧ¼±¤¹¤ë¡£ +(VT100 モード)は BEL, BS, HT, LF, VT, FF, CR, SO, SI, ESC の +コントロール文字を認識する。 .\" .PP -.B ¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ +.B エスケープシーケンス .sp -Linux ¥³¥ó¥½¡¼¥ë¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤ VT100 ¥³¥ó¥½¡¼¥ë¥·¡¼¥±¥ó¥¹¤Ï°Ê²¼¤ÎÄ̤ê: +Linux コンソールで実装されていない VT100 コンソールシーケンスは以下の通り: .TS l l l. -ESC N SS2 ¥·¥ó¥°¥ë¥·¥Õ¥È 2 - (¼¡¤Îʸ»ú¤À¤± G2 ʸ»ú½¸¹ç¤òÁªÂò¤¹¤ë)¡£ -ESC O SS3 ¥·¥ó¥°¥ë¥·¥Õ¥È 3 - (¼¡¤Îʸ»ú¤À¤± G3 ʸ»ú½¸¹ç¤òÁªÂò¤¹¤ë)¡£ -ESC P DCS ¥Ç¥Ð¥¤¥¹À©¸æʸ»úÎó (ESC \\ ¤Ç½ª¤ï¤ë) -ESC X SOS ʸ»úÎó¤Î»Ï¤Þ¤ê¡£ -ESC ^ PM ¥×¥é¥¤¥Ð¥·¡¼¥á¥Ã¥»¡¼¥¸(ESC \\ ¤Ç½ª¤ï¤ë)¡£ -ESC \\ ST ʸ»úÎó¤Î½ªÃ¼Ê¸»ú¡£ -ESC * ... G2 ʸ»ú½¸¹ç¤ò»ØÄꤹ¤ë¡£ -ESC + ... G3 ʸ»ú½¸¹ç¤ò»ØÄꤹ¤ë¡£ +ESC N SS2 シングルシフト 2 + (次の文字だけ G2 文字集合を選択する)。 +ESC O SS3 シングルシフト 3 + (次の文字だけ G3 文字集合を選択する)。 +ESC P DCS デバイス制御文字列 (ESC \\ で終わる) +ESC X SOS 文字列の始まり。 +ESC ^ PM プライバシーメッセージ(ESC \\ で終わる)。 +ESC \\ ST 文字列の終端文字。 +ESC * ... G2 文字集合を指定する。 +ESC + ... G3 文字集合を指定する。 .TE .PP .BR xterm (1) -(VT100 ¥â¡¼¥É)¤Ï ESC c, ESC # 8, ESC >, ESC =, +(VT100 モード)は ESC c, ESC # 8, ESC >, ESC =, ESC D, ESC E, ESC H, ESC M, ESC N, ESC O, ESC P ... ESC \\, -ESC Z ¤òǧ¼±¤¹¤ë("¤ï¤¿¤·¤Ï¹âÅù¥Ó¥Ç¥ª¥ª¥×¥·¥ç¥óÉÕ¤­¤Î VT100 ¤Ç¤¹"¤È¤¤¤¦ -°ÕÌ£¤Ç ESC [ ? 1 ; 2 c ¤ÈÊÖÅú¤¹¤ë)¡¢ESC ^ ... ESC \\ ¤Ï¾å½Ò¤ÈƱ¤¸°ÕÌ£¤ò -¤¢¤é¤ï¤¹¡£ESC (, ESC ), ESC *, ESC + ¤Ë³¤¯ 0, A, B ¤ò DEC Æüìʸ»ú¤È -¤·¤Æ¼õ¤±¡¢¤½¤ì¤¾¤ì¥é¥¤¥ó¥É¥í¡¼¥¤¥ó¥°(line drawing) ¤Î¥»¥Ã¥È¡¢UK¡¢ -US-ASCII ¤ò¤¢¤é¤ï¤¹¡£ +ESC Z を認識する("わたしは高等ビデオオプション付きの VT100 です"という +意味で ESC [ ? 1 ; 2 c と返答する)、ESC ^ ... ESC \\ は上述と同じ意味を +あらわす。ESC (, ESC ), ESC *, ESC + に続く 0, A, B を DEC 特殊文字と +して受け、それぞれラインドローイング(line drawing) のセット、UK、 +US-ASCII をあらわす。 .PP .\"O The user can configure \fBxterm\fP(1) to respond to VT220-specific .\"O control sequences, and it will identify itself as a VT52, VT100, and .\"O up depending on the way it is configured and initialized. -¥æ¡¼¥¶¡¼¤Ï \fBxterm\fP(1) ¤¬ VT220 ÆÃÍ­¤Î¥³¥ó¥È¥í¡¼¥ë¥·¡¼¥±¥ó¥¹¤Ë -È¿±þ¤¹¤ë¤è¤¦¤ËÀßÄê¤Ç¤­¡¢¤Þ¤¿ÀßÄê¤È½é´ü²½¤Î¤µ¤ì¤«¤¿¤Ë¤è¤Ã¤Æ -¼«Ê¬¼«¿È¤ò VT52, VT100 ¤Ê¤É¤Èǧ¼±¤¹¤ë¡£ +ユーザーは \fBxterm\fP(1) が VT220 特有のコントロールシーケンスに +反応するように設定でき、また設定と初期化のされかたによって +自分自身を VT52, VT100 などと認識する。 .PP .\"O It accepts ESC ] (OSC) for the setting of certain resources. .\"O In addition to the ECMA-48 string terminator (ST), .\"O \fBxterm\fP(1) accepts a BEL to terminate an OSC string. .\"O These are a few of the OSC control sequences recognized by \fBxterm\fP(1): -xterm ¤Ï¡¢ÆÃÄê¤Î¥ê¥½¡¼¥¹¤ÎÀßÄê¤Î¤¿¤á¤Ë ESC ] (OSC) ¤ò¼õ¤±ÉÕ¤±¤ë¡£ -ECMA-48 ¤Îʸ»úÎó½ªÃ¼Ê¸»ú (ST) ¤Ë²Ã¤¨¤Æ¡¢ -\fBxterm\fP(1) ¤Ï BEL ¤ò OSC ʸ»úÎó¤ò½ªÃ¼¤¹¤ë¤â¤Î¤È¤·¤Æ¼õ¤±ÉÕ¤±¤ë¡£ -°Ê²¼¤Ï \fBxterm\fP(1) ¤¬Ç§¼±¤¹¤ë OSC ¥³¥ó¥È¥í¡¼¥ë¥·¡¼¥±¥ó¥¹¤Î°ìÉô¤Ç¤¢¤ë¡£ +xterm は、特定のリソースの設定のために ESC ] (OSC) を受け付ける。 +ECMA-48 の文字列終端文字 (ST) に加えて、 +\fBxterm\fP(1) は BEL を OSC 文字列を終端するものとして受け付ける。 +以下は \fBxterm\fP(1) が認識する OSC コントロールシーケンスの一部である。 .TS l l. .\"O ESC ] 0 ; \fItxt\fP ST Set icon name and window title to \fItxt\fP. @@ -649,82 +649,82 @@ l l. .\"O ESC ] 4 6 ; \fIname\fP ST Change log file to \fIname\fP (normally disabled .\"O by a compile-time option) .\"O ESC ] 5 0 ; \fIfn\fP ST Set font to \fIfn\fP. -ESC ] 0 ; \fItxt\fP ST ¥¢¥¤¥³¥ó̾¤È¥¦¥¤¥ó¥É¥¦¥¿¥¤¥È¥ë¤ò \fItxt\fP ¤Ë - ¥»¥Ã¥È¤¹¤ë¡£ -ESC ] 1 ; \fItxt\fP ST ¥¢¥¤¥³¥ó̾¤ò \fItxt\fP ¤Ë¥»¥Ã¥È¤¹¤ë¡£ -ESC ] 2 ; \fItxt\fP ST ¥¦¥¤¥ó¥É¥¦¥¿¥¤¥È¥ë¤ò \fItxt\fP ¤Ë¥»¥Ã¥È¤¹¤ë¡£ -ESC ] 4 ; \fInum\fP; \fItxt\fP ST ANSI ¿§ \fInum\fP ¤ò \fItxt\fP ¤Ë¥»¥Ã¥È¤¹¤ë¡£ -ESC ] 10 ; \fI\fItxt\fP\fP ST ưŪ¥Æ¥­¥¹¥È¿§¤ò \fItxt\fP ¤Ë¥»¥Ã¥È¤¹¤ë¡£ -ESC ] 4 6 ; \fIname\fP ST ¥Á¥§¥ó¥¸¥í¥°¥Õ¥¡¥¤¥ë¤ò \fIname\fP ¤ËÊѹ¹¤¹¤ë(Ä̾ï¤Ï - ¥³¥ó¥Ñ¥¤¥ë»þ¥ª¥×¥·¥ç¥ó¤Ë¤è¤ê̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë)¡£ -ESC ] 5 0 ; \fIfn\fP ST ¥Õ¥©¥ó¥È¤ò \fIfn\fP ¤Ë¥»¥Ã¥È¤¹¤ë¡£ +ESC ] 0 ; \fItxt\fP ST アイコン名とウインドウタイトルを \fItxt\fP に + セットする。 +ESC ] 1 ; \fItxt\fP ST アイコン名を \fItxt\fP にセットする。 +ESC ] 2 ; \fItxt\fP ST ウインドウタイトルを \fItxt\fP にセットする。 +ESC ] 4 ; \fInum\fP; \fItxt\fP ST ANSI 色 \fInum\fP を \fItxt\fP にセットする。 +ESC ] 10 ; \fI\fItxt\fP\fP ST 動的テキスト色を \fItxt\fP にセットする。 +ESC ] 4 6 ; \fIname\fP ST チェンジログファイルを \fIname\fP に変更する(通常は + コンパイル時オプションにより無効になっている)。 +ESC ] 5 0 ; \fIfn\fP ST フォントを \fIfn\fP にセットする。 .TE .PP .\"O It recognizes the following with slightly modified meaning .\"O (saving more state, behaving closer to VT100/VT220): -°Ê²¼¤Î¤â¤Î¤Ï¡¢¾¯¤·°ã¤Ã¤¿°ÕÌ£¤Ë¤È¤é¤ì¤ë -(¤è¤ê¿¤¯¤Î¾õÂÖ¤òÊݸ¤·¡¢¤è¤ê VT100/VT220 ¤Ë¶á¤¤¤Õ¤ë¤Þ¤¤¤ò¤¹¤ë): +以下のものは、少し違った意味にとられる +(より多くの状態を保存し、より VT100/VT220 に近いふるまいをする): .LP .TS l l l. -ESC 7 DECSC ¥«¡¼¥½¥ë¤ÎÊݸ¡£ -ESC 8 DECRC ¥«¡¼¥½¥ë¤ÎÉü¸µ¡£ +ESC 7 DECSC カーソルの保存。 +ESC 8 DECRC カーソルの復元。 .TE .PP -¤Þ¤¿¡¢¼¡¤Î¤â¤Î¤âǧ¼±¤¹¤ë: +また、次のものも認識する: .TS l l l. -ESC F ¥«¡¼¥½¥ë¤ò¥¹¥¯¥ê¡¼¥ó¤Îº¸²¼¤Ë°ÜÆ°¤¹¤ë¡£ - (\fBxterm\fP(1) ¤Î \fBhpLowerleftBugCompat\fP¥ê¥½¡¼¥¹¤Ë¤è¤êÍ­¸ú¤Ê»þ) -ESC l (HP ¥¿¡¼¥ß¥Ê¥ëËè¤Ë)¥á¥â¥ê¥í¥Ã¥¯¡£ - ¥«¡¼¥½¥ë¤è¤ê¾å¤Î¥á¥â¥ê¤ò¥í¥Ã¥¯¤¹¤ë¡£ -ESC m (HP ¥¿¡¼¥ß¥Ê¥ëËè¤Ë)¥á¥â¥ê¥í¥Ã¥¯¤ò²ò½ü¤¹¤ë¡£ -ESC n LS2 G2 ʸ»ú½¸¹ç¤Î¸Æ¤Ó½Ð¤·¡£ -ESC o LS3 G3 ʸ»ú½¸¹ç¤Î¸Æ¤Ó½Ð¤·¡£ -ESC | LS3R G3 ʸ»ú½¸¹ç¤ò GR ¤È¤·¤Æ¸Æ¤Ó½Ð¤¹¡£ -ESC } LS2R G2 ʸ»ú½¸¹ç¤ò GR ¤È¤·¤Æ¸Æ¤Ó½Ð¤¹¡£ -ESC ~ LS1R G1 ʸ»ú½¸¹ç¤ò GR ¤È¤·¤Æ¸Æ¤Ó½Ð¤¹¡£ +ESC F カーソルをスクリーンの左下に移動する。 + (\fBxterm\fP(1) の \fBhpLowerleftBugCompat\fPリソースにより有効な時) +ESC l (HP ターミナル毎に)メモリロック。 + カーソルより上のメモリをロックする。 +ESC m (HP ターミナル毎に)メモリロックを解除する。 +ESC n LS2 G2 文字集合の呼び出し。 +ESC o LS3 G3 文字集合の呼び出し。 +ESC | LS3R G3 文字集合を GR として呼び出す。 +ESC } LS2R G2 文字集合を GR として呼び出す。 +ESC ~ LS1R G1 文字集合を GR として呼び出す。 .TE .PP .\"O It also recognizes ESC % and provides a more complete UTF-8 .\"O implementation than Linux console. -¤Þ¤¿ ESC % ¤òǧ¼±¤·¡¢Linux ¥³¥ó¥½¡¼¥ë¤è¤ê¹¹¤Ë´°Á´¤Ê UTF-8 ¼ÂÁõ¤òÄ󶡤¹¤ë¡£ +また ESC % を認識し、Linux コンソールより更に完全な UTF-8 実装を提供する。 .\" .PP -.B "CSI ¥·¡¼¥±¥ó¥¹" +.B "CSI シーケンス" .sp .\"O Old versions of \fBxterm\fP(1), for example, from X11R5, .\"O interpret the blink SGR as a bold SGR. -X11R5 ͳÍè¤Î¤è¤¦¤Ê¡¢¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Î \fBxterm\fP(1) ¤Ï¥Ö¥ê¥ó¥¯ SGR ¤ò -¥Ü¡¼¥ë¥É SGR ¤È¤·¤Æ²ò¼á¤¹¤ë¡£ +X11R5 由来のような、古いバージョンの \fBxterm\fP(1) はブリンク SGR を +ボールド SGR として解釈する。 .\"O Later versions which implemented ANSI colors, for example, .\"O XFree86 3.1.2A in 1995, improved this by allowing .\"O the blink attribute to be displayed as a color. -1995 ǯ¤Î XFree86 3.1.2A ¤Î¤è¤¦¤Ê¡¢ANSI ¥«¥é¡¼¤¬¼ÂÁõ¤µ¤ì¤¿¡¢¤è¤ê¿·¤·¤¤ -¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢¥Ö¥ê¥ó¥¯Â°À­¤ò¿§¤È¤·¤Æɽ¼¨¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¤³¤ì¤ò -²þÁ±¤·¤Æ¤¤¤ë¡£ +1995 年の XFree86 3.1.2A のような、ANSI カラーが実装された、より新しい +バージョンでは、ブリンク属性を色として表示することによってこれを +改善している。 .\"O Modern versions of xterm implement blink SGR as blinking text .\"O and still allow colored text as an alternate rendering of SGRs. .\"O Stock X11R6 versions did not recognize the color-setting SGRs until .\"O the X11R6.8 release, which incorporated XFree86 xterm. -ºÇ¶á¤Î¥Ð¡¼¥¸¥ç¥ó¤Î xterm ¤Ï¥Ö¥ê¥ó¥¯ SGR ¤ò¥Æ¥­¥¹¥È¤ò¥Ö¥ê¥ó¥¯¤µ¤»¤ë¤³¤È¤Ç -¼ÂÁõ¤·¡¢¤µ¤é¤Ë¤Þ¤¿¡¢SGR ɽ¼¨¤ÎÂåÂذƤȤ·¤Æ¿§ÉÕ¤­¤Î¥Æ¥­¥¹¥È¤âÍøÍѤǤ­¤ë¡£ -Stock X11R6 ÈǤǤϡ¢XFree86 xterm ¤¬ÁȤßÆþ¤ì¤é¤ì¤¿ X11R6.8 ¥ê¥ê¡¼¥¹¤Þ¤Ç -¿§ÀßÄê SGR ¤òǧ¼±¤·¤Ê¤«¤Ã¤¿¡£ +最近のバージョンの xterm はブリンク SGR をテキストをブリンクさせることで +実装し、さらにまた、SGR 表示の代替案として色付きのテキストも利用できる。 +Stock X11R6 版では、XFree86 xterm が組み入れられた X11R6.8 リリースまで +色設定 SGR を認識しなかった。 .\"O All ECMA-48 CSI sequences recognized by Linux are also recognized by .\"O .IR xterm , .\"O however \fBxterm\fP(1) implements several ECMA-48 and DEC control sequences .\"O not recognized by Linux. -Linux ¤¬Ç§¼±¤¹¤ë¾¤Î¤¹¤Ù¤Æ¤Î ECMA-48 CSI ¥·¡¼¥±¥ó¥¹¤Ï +Linux が認識する他のすべての ECMA-48 CSI シーケンスは .I xterm -¤Ç¤âǧ¼±¤µ¤ì¤ë¤¬¡¢\fBxterm\fP(1) ¤Ï Linux ¤¬Ç§¼±¤·¤Ê¤¤ -¤¤¤¯¤Ä¤«¤Î ECMA-48 ¤È DEC ¤Î¥³¥ó¥È¥í¡¼¥ë¥·¡¼¥±¥ó¥¹¤â¼ÂÁõ¤·¤Æ¤¤¤ë¡£ +でも認識されるが、\fBxterm\fP(1) は Linux が認識しない +いくつかの ECMA-48 と DEC のコントロールシーケンスも実装している。 .PP .\"O The \fBxterm\fP(1) .\"O program recognizes all of the DEC Private Mode sequences listed .\"O above, but none of the Linux private-mode sequences. -\fBxterm\fP(1) ¤Ï¾å½Ò¤Î¤¹¤Ù¤Æ¤Î DEC ¥×¥é¥¤¥Ù¡¼¥È¥â¡¼¥É¤Î¥·¡¼¥±¥ó¥¹¤òǧ¼±¤¹¤ë¤¬¡¢ -Linux ¥×¥é¥¤¥Ù¡¼¥È¥â¡¼¥É¤Î¥·¡¼¥±¥ó¥¹¤Ï¤É¤ì¤âǧ¼±¤·¤Ê¤¤¡£ +\fBxterm\fP(1) は上述のすべての DEC プライベートモードのシーケンスを認識するが、 +Linux プライベートモードのシーケンスはどれも認識しない。 .\"O For discussion of \fBxterm\fP(1)'s .\"O own private-mode sequences, refer to the .\"O \fIXterm Control Sequences\fP @@ -733,46 +733,46 @@ Linux .\"O Stephen Gildea, .\"O and Thomas E. Dickey .\"O available with the X distribution. -\fBxterm\fP(1) ¼«¿È¤Î¥×¥é¥¤¥Ù¡¼¥È¥â¡¼¥É¥·¡¼¥±¥ó¥¹¤Ë´Ø¤·¤Æ¤ÎµÄÏÀ¤Ï¡¢ -X ÇÛÉۤȤȤâ¤ËÆþ¼ê²Äǽ¤Ê Edward Moy, Stephen Gildea,Thomas E. Dickey ¤Ë¤è¤ë +\fBxterm\fP(1) 自身のプライベートモードシーケンスに関しての議論は、 +X 配布とともに入手可能な Edward Moy, Stephen Gildea,Thomas E. Dickey による \fIXterm Control Sequences\fP -¥É¥­¥å¥á¥ó¥È¤ò»²¾È¤µ¤ì¤¿¤¤¡£ +ドキュメントを参照されたい。 .\"O That document, though terse, is much longer than this manual page. .\"O For a chronological overview, -¤³¤Î¥É¥­¥å¥á¥ó¥È¤Ï¡¢´Ê·é¤Ê¤â¤Î¤Ç¤¢¤ë¤¬¡¢¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤è¤ê -ÍÚ¤«¤ËŤ¤¤â¤Î¤Ç¤¢¤ë¡£ -ǯÂå½ç¤Î³µ´Ñ¤È¤·¤Æ¤Ï¡¢ +このドキュメントは、簡潔なものであるが、このマニュアルページより +遥かに長いものである。 +年代順の概観としては、 .PP .in +4n http://invisible-island.net/xterm/xterm.log.html .in .PP .\"O details changes to xterm. -¤Ë¤Ï xterm ¤ÎÊѹ¹¤Î¾ÜºÙ¤¬¤¢¤ë¡£ +には xterm の変更の詳細がある。 .PP .\"O The \fIvttest\fP program -\fIvttest\fP ¤Ï +\fIvttest\fP は .PP .in +4n http://invisible-island.net/vttest/ .in .PP .\"O demonstrates many of these control sequences. -¤ÇÆþ¼ê¤Ç¤­¡¢¤³¤ì¤é¤Î¥³¥ó¥È¥í¡¼¥ë¥·¡¼¥±¥ó¥¹¤Î¿¤¯¤Ë´Ø¤¹¤ë¥Ç¥â¤ò¹Ô¤¦¡£ +で入手でき、これらのコントロールシーケンスの多くに関するデモを行う。 .\"O The \fBxterm\fP(1) source distribution also contains sample .\"O scripts which exercise other features. -\fBxterm\fP(1) ¥½¡¼¥¹ÇÛÉۥѥ屡¼¥¸¤Ë¤Ï -¤½¤Î¾¤Îµ¡Ç½¤ò³Ø¤Ö¤³¤È¤¬½ÐÍè¤ë¥µ¥ó¥×¥ë¥¹¥¯¥ê¥×¥È¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ +\fBxterm\fP(1) ソース配布パッケージには +その他の機能を学ぶことが出来るサンプルスクリプトが入っている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O ESC 8 (DECRC) is not able to restore the character set changed with .\"O ESC %. -ESC 8 (DECRC) ¤Ï ESC % ¤ÇÊѹ¹¤µ¤ì¤¿Ê¸»ú½¸¹ç¤òÉü¸µ¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -.SH ¥Ð¥° +ESC 8 (DECRC) は ESC % で変更された文字集合を復元することはできない。 +.SH バグ .\"O In 2.0.23, CSI is broken, and NUL is not ignored inside .\"O escape sequences. -2.0.23 ¤Ç¤Ï CSI ¤¬²õ¤ì¤Æ¤¤¤Æ¡¢¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹Ãæ¤Î NUL ¤¬ -̵»ë¤µ¤ì¤Ê¤¤¡£ +2.0.23 では CSI が壊れていて、エスケープシーケンス中の NUL が +無視されない。 .PP .\"O Some older kernel versions (after 2.0) interpret 8-bit control .\"O sequences. @@ -782,46 +782,46 @@ ESC 8 (DECRC) .\"O broken by changes to support UTF-8), .\"O but the implementation is incomplete and should be regarded .\"O as unreliable. -¸Å¤¤¥Ð¡¼¥¸¥ç¥ó(2.0 °Ê¹ß)¤Î¥«¡¼¥Í¥ë¤Ë¤Ï¡¢8 ¥Ó¥Ã¥ÈÀ©¸æ¥·¡¼¥±¥ó¥¹¤ò²ò¼á¤¹¤ë¡£ -¤³¤ì¤é¤Î "C1 ¥³¥ó¥È¥í¡¼¥ë" ¤Ï ESC [, ESC ] ¤ª¤è¤ÓƱÍͤÊÀ©¸æ¥·¡¼¥±¥ó¥¹ -µ¯Æ°»Ò¤òÃÖ¤­´¹¤¨¤ë¤¿¤á¤Ë 128 ¤«¤é 159 ¤Î¥³¡¼¥É¤ò»È¤¦¡£ -¿·¤·¤¤¥«¡¼¥Í¥ë¤Ç¤Ï (UTF-8 Âбþ¤ÎÊѹ¹»þ¤Ë¸«Íî¤È¤µ¤ì¤¿¤«²õ¤ì¤¿¤¿¤á¤Ë) -À£ÃǤ·¤Æ¤¤¤ë¤¬¡¢¼ÂÁõ¤ÏÉÔ´°Á´¤Ç¿®Íê¤Ç¤­¤Ê¤¤¤â¤Î¤Èɾ²Á¤µ¤ì¤Æ¤¤¤ë¡£ +古いバージョン(2.0 以降)のカーネルには、8 ビット制御シーケンスを解釈する。 +これらの "C1 コントロール" は ESC [, ESC ] および同様な制御シーケンス +起動子を置き換えるために 128 から 159 のコードを使う。 +新しいカーネルでは (UTF-8 対応の変更時に見落とされたか壊れたために) +寸断しているが、実装は不完全で信頼できないものと評価されている。 .PP .\"O Linux "private mode" sequences do not follow the rules in ECMA-48 .\"O for private mode control sequences. .\"O In particular, those ending with ] do not use a standard terminating .\"O character. -Linux "¥×¥é¥¤¥Ù¡¼¥È¥â¡¼¥É" ¥·¡¼¥±¥ó¥¹¤Ï ECMA-48 ¤Î¥×¥é¥¤¥Ù¡¼¥È¥â¡¼¥É -¥³¥ó¥È¥í¡¼¥ë¥·¡¼¥±¥ó¥¹¤Î¥ë¡¼¥ë¤Ë½¾¤Ã¤Æ¤¤¤Ê¤¤¡£ -Æäˡ¢ ] ¤Ç½ª¤ï¤ë¤â¤Î¤Ïɸ½à½ªÃ¼Ê¸»ú¤ò»È¤¨¤Ê¤¤¡£ +Linux "プライベートモード" シーケンスは ECMA-48 のプライベートモード +コントロールシーケンスのルールに従っていない。 +特に、 ] で終わるものは標準終端文字を使えない。 .\"O The OSC (set palette) sequence is a greater problem, .\"O since \fBxterm\fP(1) may interpret this as a control sequence .\"O which requires a string terminator (ST). -OSC(¥Ñ¥ì¥Ã¥ÈÀßÄê)¥·¡¼¥±¥ó¥¹¤ÏÂ礭¤ÊÌäÂ꤬¤¢¤ë¡£ -\fBxterm\fP(1) ¤Ï¤³¤ì¤òʸ»úÎó½ªÃ¼Ê¸»ú (ST) ¤¬É¬Íפʥ³¥ó¥È¥í¡¼¥ë¥·¡¼¥±¥ó¥¹¤È -²ò¼á¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +OSC(パレット設定)シーケンスは大きな問題がある。 +\fBxterm\fP(1) はこれを文字列終端文字 (ST) が必要なコントロールシーケンスと +解釈するかもしれないからである。 .\"O Unlike the \fBsetterm\fP(1) sequences which will be ignored (since .\"O they are invalid control sequences), the palette sequence will make .\"O \fBxterm\fP(1) appear to hang (though pressing the return-key .\"O will fix that). -(ÉÔÀµ¤Ê¥³¥ó¥È¥í¡¼¥ë¥·¡¼¥±¥ó¥¹¤Ê¤Î¤Ç)̵»ë¤µ¤ì¤ë \fBsetterm\fP(1) ¥·¡¼¥±¥ó¥¹¤È -°ã¤¤¡¢¥Ñ¥ì¥Ã¥È¥·¡¼¥±¥ó¥¹¤Ï \fBxterm\fP(1) ¤ò¥Ï¥ó¥°¤µ¤»¤ë¤«¤â¤·¤ì¤Ê¤¤ -(¤·¤«¤·¥ê¥¿¡¼¥ó¥­¡¼¤ò²¡¤¹¤³¤È¤Ç²óÉü¤Ç¤­¤ë)¡£ +(不正なコントロールシーケンスなので)無視される \fBsetterm\fP(1) シーケンスと +違い、パレットシーケンスは \fBxterm\fP(1) をハングさせるかもしれない +(しかしリターンキーを押すことで回復できる)。 .\"O To accommodate applications which have been hardcoded to use Linux .\"O control sequences, .\"O set the \fBxterm\fP(1) resource \fBbrokenLinuxOSC\fP to true. -Linux ¥³¥ó¥È¥í¡¼¥ë¥·¡¼¥±¥ó¥¹¤ò¥Ï¡¼¥É¥³¡¼¥É¤·¤Æ¤¤¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë -Ŭ±þ¤µ¤»¤ë¤Ë¤Ï¡¢\fBxterm\fP(1) ¥ê¥½¡¼¥¹¤Î \fBbrokenLinuxOSC\fP ¤ò -¿¿ (true) ¤ËÀßÄꤹ¤ë¡£ +Linux コントロールシーケンスをハードコードしているアプリケーションに +適応させるには、\fBxterm\fP(1) リソースの \fBbrokenLinuxOSC\fP を +真 (true) に設定する。 .PP .\"O An older version of this document implied that Linux recognizes the .\"O ECMA-48 control sequence for invisible text. .\"O It is ignored. -¤³¤Î¥É¥­¥å¥á¥ó¥È¤Î¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢Linux ¤¬ ECMA-48 ¤ÎÉԲĻë¥Æ¥­¥¹¥È¤Î -¥³¥ó¥È¥í¡¼¥ë¥·¡¼¥±¥ó¥¹¤òǧ¼±¤¹¤ë¤«¤Î¤è¤¦¤Ë½ñ¤«¤ì¤Æ¤¤¤¿¡£ -¤³¤ì¤Ï̵»ë¤µ¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +このドキュメントの古いバージョンでは、Linux が ECMA-48 の不可視テキストの +コントロールシーケンスを認識するかのように書かれていた。 +これは無視される。 +.SH 関連項目 .BR console (4), .BR console_ioctl (4), .BR charsets (7) diff --git a/draft/man4/console_ioctl.4 b/draft/man4/console_ioctl.4 index 9b517062..caf9352b 100644 --- a/draft/man4/console_ioctl.4 +++ b/draft/man4/console_ioctl.4 @@ -50,34 +50,34 @@ .\" .TH CONSOLE_IOCTL 4 2009-02-28 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O console_ioctl \- ioctl's for console terminal and virtual consoles -console_ioctl \- ¥³¥ó¥½¡¼¥ëüËö¤È²¾ÁÛ¥³¥ó¥½¡¼¥ë¤Î ioctl +console_ioctl \- コンソール端末と仮想コンソールの ioctl .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The following Linux-specific .\"O .BR ioctl (2) .\"O requests are supported. .\"O Each requires a third argument, assumed here to be \fIargp\fP. -¼¡¤Î¤è¤¦¤Ê Linux ¸ÇÍ­¤Î +次のような Linux 固有の .BR ioctl (2) -¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¤½¤ì¤¾¤ì3ÈÖÌܤΰú¿ô¤¬É¬ÍפǤ¢¤ë¡¢¤³¤³¤Ç¤Ï \fIargp\fP ¤È¤¹¤ë¡£ +がサポートされている。 +それぞれ3番目の引数が必要である、ここでは \fIargp\fP とする。 .IP \fBKDGETLED\fP .\"O Get state of LEDs. .\"O \fIargp\fP points to a \fIchar\fP. .\"O The lower three bits .\"O of \fI*argp\fP are set to the state of the LEDs, as follows: -LED ¤Î¾õÂÖ¤ò¼èÆÀ¤¹¤ë¡£ -\fIargp\fP ¤Ï \fIchar\fP ¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ -\fI*argp\fP ¤Î²¼°Ì 3 ¥Ó¥Ã¥È¤Ë°Ê²¼¤Î¤è¤¦¤Ë LED ¤Î¾õÂÖ¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +LED の状態を取得する。 +\fIargp\fP は \fIchar\fP のポインターである。 +\fI*argp\fP の下位 3 ビットに以下のように LED の状態がセットされる。 .\"O LED_CAP 0x04 caps lock led .\"O LEC_NUM 0x02 num lock led .\"O LED_SCR 0x01 scroll lock led - LED_CAP 0x04 ¥­¥ã¥Ô¥¿¥ë¥í¥Ã¥¯¤¬ÅÀÅô - LEC_NUM 0x02 ¥Ê¥ó¥Ð¡¼¥í¥Ã¥¯¤¬ÅÀÅô - LED_SCR 0x01 ¥¹¥¯¥í¡¼¥ë¥í¥Ã¥¯¤¬ÅÀÅô + LED_CAP 0x04 キャピタルロックが点灯 + LEC_NUM 0x02 ナンバーロックが点灯 + LED_SCR 0x01 スクロールロックが点灯 .IP \fBKDSETLED\fP .\"O Set the LEDs. .\"O The LEDs are set to correspond to the lower three bits of @@ -85,10 +85,10 @@ LED .\"O However, if a higher order bit is set, .\"O the LEDs revert to normal: displaying the state of the .\"O keyboard functions of caps lock, num lock, and scroll lock. -LED¤òÅÀÅô¤µ¤»¤ë¡£LED¤Ï \fIargp\fP ¤Î²¼°Ì 3 ¥Ó¥Ã¥È¤Ë½¾¤¤ÅÀÅô¤µ¤ì¤ë¡£ -¤·¤«¤·¡¢¤è¤ê¹â°Ì¤Î¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë»þ¤Ë¤Ï¡¢¥­¥ã¥Ô¥¿¥ë¥í¥Ã¥¯¡¢ -¥Ê¥ó¥Ð¡¼¥í¥Ã¥¯¡¢¥¹¥¯¥í¡¼¥ë¥í¥Ã¥¯¤Î¥­¡¼¥Ü¡¼¥Éµ¡Ç½¤Î¾õÂÖ¤òɽ¼¨¤¹¤ë LED ¤Ï -Ä̾ï¾õÂÖ¤ËÌá¤ë¡£ +LEDを点灯させる。LEDは \fIargp\fP の下位 3 ビットに従い点灯される。 +しかし、より高位のビットがセットされている時には、キャピタルロック、 +ナンバーロック、スクロールロックのキーボード機能の状態を表示する LED は +通常状態に戻る。 .LP .\"O Before 1.1.54, the LEDs just reflected the state of the corresponding .\"O keyboard flags, and KDGETLED/KDSETLED would also change the keyboard @@ -96,11 +96,11 @@ LED .\"O Since 1.1.54 the leds can be made to display arbitrary .\"O information, but by default they display the keyboard flags. .\"O The following two ioctl's are used to access the keyboard flags. -¥«¡¼¥Í¥ë 1.1.54 °ÊÁ°¤Ï¡¢LED ¤Ï¤½¤ì¤¾¤ì¤Î¥­¡¼¥Ü¡¼¥É¥Õ¥é¥°¤Î¾õÂÖ¤òÈ¿±Ç¤¹¤ë -¤À¤±¤Ç¡¢KDGETLED/KDSETLED ¤â¥­¡¼¥Ü¡¼¥É¥Õ¥é¥°¤òÊѹ¹¤¹¤ë¤À¤±¤Ç¤¢¤Ã¤¿¡£ -¥«¡¼¥Í¥ël 1.1.54 ¤«¤é¤Ï LED ¤ËǤ°Õ¤Îɽ¼¨¤ò¤¹¤ë»ö¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤¬¡¢ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥­¡¼¥Ü¡¼¥É¥Õ¥é¥°¤òɽ¼¨¤¹¤ë¡£ -¼¡¤Ë¼¨¤¹ 2 ¤Ä¤Î ioctl ¤Ï¥­¡¼¥Ü¡¼¥É¥Õ¥é¥°¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤Î¤ËÍѤ¤¤é¤ì¤ë¡£ +カーネル 1.1.54 以前は、LED はそれぞれのキーボードフラグの状態を反映する +だけで、KDGETLED/KDSETLED もキーボードフラグを変更するだけであった。 +カーネルl 1.1.54 からは LED に任意の表示をする事ができるようになったが、 +デフォルトではキーボードフラグを表示する。 +次に示す 2 つの ioctl はキーボードフラグにアクセスするのに用いられる。 .IP \fBKDGKBLED\fP .\"O Get keyboard flags CapsLock, NumLock, ScrollLock (not lights). .\"O \fIargp\fP points to a char which is set to the flag state. @@ -108,12 +108,12 @@ LED .\"O and the low order bits of the next nibble (mask 0x70) get .\"O the default flag state. .\"O (Since 1.1.54.) -¥­¥ã¥Ô¥¿¥ë¥í¥Ã¥¯¡¢¥Ê¥ó¥Ð¡¼¥í¥Ã¥¯¡¢¥¹¥¯¥í¡¼¥ë¥í¥Ã¥¯¤Î(LED ¤Îɽ¼¨¤Ç¤Ï -¤Ê¤¯)¥­¡¼¥Ü¡¼¥É¥Õ¥é¥°¤òÆÀ¤ë¡£ -\fIargp\fP ¤Ï¥Õ¥é¥°¤Î¾õÂÖ¤¬¥»¥Ã¥È¤µ¤ì¤ëʸ»úÊÑ¿ô¤ò»Ø¤¹¡£ -(0x7)¤Ç¥Þ¥¹¥¯¤·¤ÆÆÀ¤é¤ì¤ë²¼°Ì 3 ¥Ó¥Ã¥È¤¬¸½ºß¤Î¥Õ¥é¥°¤Î¾õÂÖ¤ò¼¨¤·¡¢ -(0x70)¤Ç¥Þ¥¹¥¯¤·¤ÆÆÀ¤é¤ì¤ë¼¡¤Î 3 ¥Ó¥Ã¥È¤¬¥Ç¥Õ¥©¥ë¥È¤Î¥Õ¥é¥°¤Î¾õÂÖ¤ò -¼¨¤¹¡£(¥«¡¼¥Í¥ë 1.1.54°Ê¹ß) +キャピタルロック、ナンバーロック、スクロールロックの(LED の表示では +なく)キーボードフラグを得る。 +\fIargp\fP はフラグの状態がセットされる文字変数を指す。 +(0x7)でマスクして得られる下位 3 ビットが現在のフラグの状態を示し、 +(0x70)でマスクして得られる次の 3 ビットがデフォルトのフラグの状態を +示す。(カーネル 1.1.54以降) .IP \fBKDSKBLED\fP .\"O Set keyboard flags CapsLock, NumLock, ScrollLock (not lights). .\"O \fIargp\fP has the desired flag state. @@ -121,39 +121,39 @@ LED .\"O and the low order bits of the next nibble (mask 0x70) have .\"O the default flag state. .\"O (Since 1.1.54.) -¥­¥ã¥Ô¥¿¥ë¥í¥Ã¥¯¡¢¥Ê¥ó¥Ð¡¼¥í¥Ã¥¯¡¢¥¹¥¯¥í¡¼¥ë¥í¥Ã¥¯¤Î(LED ¤Îɽ¼¨¤Ç¤Ï¤Ê¤¯) -¥­¡¼¥Ü¡¼¥É¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -\fIargp\fP ¤¬¥»¥Ã¥È¤·¤¿¤¤¥Õ¥é¥°¤Ç¤¢¤ë¡£ -(0x7)¤Ç¥Þ¥¹¥¯¤·¤ÆÆÀ¤é¤ì¤ë²¼°Ì 3 ¥Ó¥Ã¥È¤¬¥Õ¥é¥°¤Î¾õÂ֤ǡ¢(0x70)¤Ç¥Þ¥¹¥¯¤·¤Æ -ÆÀ¤é¤ì¤ë¼¡¤Î 3 ¥Ó¥Ã¥È¤¬¥Ç¥Õ¥©¥ë¥È¤Î¥Õ¥é¥°¤Î¾õÂ֤Ǥ¢¤ë¡£(¥«¡¼¥Í¥ë -1.1.54°Ê¹ß) +キャピタルロック、ナンバーロック、スクロールロックの(LED の表示ではなく) +キーボードフラグをセットする。 +\fIargp\fP がセットしたいフラグである。 +(0x7)でマスクして得られる下位 3 ビットがフラグの状態で、(0x70)でマスクして +得られる次の 3 ビットがデフォルトのフラグの状態である。(カーネル +1.1.54以降) .IP \fBKDGKBTYPE\fP .\"O Get keyboard type. .\"O This returns the value KB_101, defined as 0x02. -¥­¡¼¥Ü¡¼¥É¤Î¼ïÎà¤òÆÀ¤ë¡£¤³¤ì¤ÏÃÍ 0x02 ¤ÈÄêµÁ¤µ¤ì¤Æ¤¤¤ë KB_101¤òÊÖ¤¹¡£ +キーボードの種類を得る。これは値 0x02 と定義されている KB_101を返す。 .IP \fBKDADDIO\fP .\"O Add I/O port as valid. .\"O Equivalent to \fPioperm(arg,1,1)\fP. -I/O¥Ý¡¼¥È¤òÍ­¸ú¤Êʪ¤È¤·¤Æ²Ã¤¨¤ë¡£¤³¤ì¤Ï \fIioperm(arg,1,1)\fP ¤ÈÅù²Á¤Ç¤¢¤ë¡£ +I/Oポートを有効な物として加える。これは \fIioperm(arg,1,1)\fP と等価である。 .IP \fBKDDELIO\fP .\"O Delete I/O port as valid. .\"O Equivalent to \fIioperm(arg,1,0)\fP. -I/O¥Ý¡¼¥È¤òÍ­¸ú¤Êʪ¤«¤é³°¤¹¡£¤³¤ì¤Ï \fIioperm(arg,1,0)\fP ¤ÈÅù²Á¤Ç¤¢¤ë¡£ +I/Oポートを有効な物から外す。これは \fIioperm(arg,1,0)\fP と等価である。 .IP \fBKDENABIO\fP .\"O Enable I/O to video board. .\"O Equivalent to \fIioperm(0x3b4, 0x3df-0x3b4+1, 1)\fP. -¥Ó¥Ç¥ª¥Ü¡¼¥É¤Ø¤Î I/O ¤ò²Äǽ¤Ë¤¹¤ë¡£ -¤³¤ì¤Ï \fIioperm(0x3b4, 0x3df-0x3b4+1, 1)\fP ¤ÈÅù²Á¤Ç¤¢¤ë¡£ +ビデオボードへの I/O を可能にする。 +これは \fIioperm(0x3b4, 0x3df-0x3b4+1, 1)\fP と等価である。 .IP \fBKDDISABIO\fP .\"O Disable I/O to video board. .\"O Equivalent to \fIioperm(0x3b4, 0x3df-0x3b4+1, 0)\fP. -¥Ó¥Ç¥ª¥Ü¡¼¥É¤Ø¤Î I/O ¤òÉÔ²Äǽ¤Ë¤¹¤ë¡£ -¤³¤ì¤Ï \fIioperm(0x3b4, 0x3df-0x3b4+1, 0)\fP ¤ÈÅù²Á¤Ç¤¢¤ë¡£ +ビデオボードへの I/O を不可能にする。 +これは \fIioperm(0x3b4, 0x3df-0x3b4+1, 0)\fP と等価である。 .IP \fBKDSETMODE\fP .\"O Set text/graphics mode. .\"O \fIargp\fP is one of these: -¥Æ¥­¥¹¥È/¥°¥é¥Õ¥£¥¯¥¹¥â¡¼¥É¤òÀßÄꤹ¤ë¡£ -\fIargp\fP ¤Ï¼¡¤Î¤¦¤Á¤Î¤É¤ì¤«¡§ +テキスト/グラフィクスモードを設定する。 +\fIargp\fP は次のうちのどれか: KD_TEXT 0x00 KD_GRAPHICS 0x01 @@ -161,9 +161,9 @@ I/O .\"O Get text/graphics mode. .\"O \fIargp\fP points to a \fIlong\fP which is set to one .\"O of the above values. -¥Æ¥­¥¹¥È/¥°¥é¥Õ¥£¥¯¥¹¥â¡¼¥É¤ò¼èÆÀ¤¹¤ë¡£ -\fIargp\fP ¤¬»Ø¤¹ \fIlong\fP ·¿ÊÑ¿ô¤Ë -¾å½Ò¤ÎÃͤΤɤÁ¤é¤«¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +テキスト/グラフィクスモードを取得する。 +\fIargp\fP が指す \fIlong\fP 型変数に +上述の値のどちらかがセットされる。 .IP \fBKDMKTONE\fP .\"O Generate tone of specified length. .\"O The lower 16 bits of \fIargp\fP specify the period in clock cycles, @@ -173,15 +173,15 @@ I/O .\"O For example, \fIargp\fP = (125<<16) + 0x637 would specify .\"O the beep normally associated with a ctrl-G. .\"O (Thus since 0.99pl1; broken in 2.1.49-50.) -»ØÄꤵ¤ì¤¿Ä¹¤µ¤Î¥È¡¼¥ó¤òȯÀ¸¤¹¤ë¡£ -\fIargp\fP ¤Î²¼°Ì 16 ¥Ó¥Ã¥È¤Ï¥¯¥í¥Ã¥¯¥µ¥¤¥¯¥ë¤òñ°Ì¤Ë¤·¤Æ¼þ´ü¤ò»ØÄꤷ¡¢ -¾å°Ì 16 ¥Ó¥Ã¥È¤¬ msec ¤Îñ°Ì¤Çɽ¤·¤¿¡¢(¥È¡¼¥ó¤òȯÀ¸¤µ¤»¤ë)»þ´Ö¤ò»ØÄꤹ¤ë¡£ -¥È¡¼¥ó¤òȯÀ¸¤µ¤»¤ë»þ´Ö¤¬¥¼¥í¤Î¤È¤­¤Ï¡¢¥µ¥¦¥ó¥É¤Ï¥ª¥Õ¤Ë¤Ê¤ë¡£ -À©¸æ¤Ïľ¤Á¤ËÌá¤ë¡£ -Î㤨¤Ð¡¢\fIargp\fP = (125<<16) + 0x637 ¤È¤¹¤ì¤Ð¡¢Ä̾ï ctrl-G ¤ò²¡¤·¤¿»þ¤Ë -ȯÀ¸¤¹¤ë²»¤Ë¤Ê¤ë¡£ -(¥«¡¼¥Í¥ë 0.99pl1 °Ê¹ß;¤³¤Îµ¡Ç½¤Ï ¥«¡¼¥Í¥ë 2.1.49 ¤«¤é -2.1.50 ¤Ç¤Ï¥Ð¥°¤Î¤¿¤áÆ°ºî¤·¤Ê¤¤) +指定された長さのトーンを発生する。 +\fIargp\fP の下位 16 ビットはクロックサイクルを単位にして周期を指定し、 +上位 16 ビットが msec の単位で表した、(トーンを発生させる)時間を指定する。 +トーンを発生させる時間がゼロのときは、サウンドはオフになる。 +制御は直ちに戻る。 +例えば、\fIargp\fP = (125<<16) + 0x637 とすれば、通常 ctrl-G を押した時に +発生する音になる。 +(カーネル 0.99pl1 以降;この機能は カーネル 2.1.49 から +2.1.50 ではバグのため動作しない) .IP \fBKIOCSOUND\fP .\"O Start or stop sound generation. .\"O The lower 16 bits of @@ -189,18 +189,18 @@ I/O .\"O (that is, \fIargp\fP = 1193180/frequency). .\"O \fIargp\fP = 0 turns sound off. .\"O In either case, control returns immediately. -²»¤ÎȯÀ¸¤Î³«»Ï¤äÄä»ß¤ò¹Ô¤¦¡£ -\fIargp\fP ¤Î²¼°Ì 16 ¥Ó¥Ã¥È¤Ï¥¯¥í¥Ã¥¯¥µ¥¤¥¯¥ë¤òñ°Ì¤È¤·¤Æ¼þ´ü¤ò¼¨¤¹¡£ -(¤Ä¤Þ¤ê \fIargp\fP = 1193180/¼þÇÈ¿ô)¡£ -\fIargp\fP = 0 ¤Î¾ì¹ç¡¢¥µ¥¦¥ó¥É¤Ï¥ª¥Õ¤Ë¤Ê¤ë¡£ -¤É¤Á¤é¤Î¾ì¹ç¤Ç¤â¡¢¤¿¤À¤Á¤ËÀ©¸æ¤ÏÌá¤ë¡£ +音の発生の開始や停止を行う。 +\fIargp\fP の下位 16 ビットはクロックサイクルを単位として周期を示す。 +(つまり \fIargp\fP = 1193180/周波数)。 +\fIargp\fP = 0 の場合、サウンドはオフになる。 +どちらの場合でも、ただちに制御は戻る。 .IP \fBGIO_CMAP\fP .\"O Get the current default color map from kernel. .\"O \fIargp\fP points to .\"O a 48-byte array. .\"O (Since 1.3.3.) -¸½ºß¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥«¥é¡¼¥Þ¥Ã¥×¤ò¥«¡¼¥Í¥ë¤è¤ê¼èÆÀ¤¹¤ë¡£ -.\"O \fIargp\fP ¤Ï 48 ¥Ð¥¤¥È¤ÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¡£(¥«¡¼¥Í¥ë 1.3.3 °Ê¹ß) +現在のデフォルトのカラーマップをカーネルより取得する。 +.\"O \fIargp\fP は 48 バイトの配列へのポインター。(カーネル 1.3.3 以降) .IP \fBPIO_CMAP\fP .\"O Change the default text-mode color map. .\"O \fIargp\fP points to a @@ -212,22 +212,22 @@ I/O .\"O grey, bright red, bright green, yellow, bright blue, bright purple, .\"O bright cyan and white. .\"O (Since 1.3.3.) -¥Ç¥Õ¥©¥ë¥È¤Î¥Æ¥­¥¹¥È¥â¡¼¥É¤Î¥«¥é¡¼¥Þ¥Ã¥×¤òÊѹ¹¤¹¤ë¡£ -\fIargp\fP ¤¬»Ø¤¹ 48 ¥Ð¥¤¥È¤ÎÇÛÎóÃæ¤Ë¤Ï¡¢16 ¤Î²Äǽ¤Ê¥¹¥¯¥ê¡¼¥ó¤Î¿§¤ò¡¢ -ÀÖ¡¢ÎС¢ÀĤνç¤Ë 0 ¤ò¥ª¥Õ¡¢255¤òºÇÂ綯Å٤Ȥ·¤¿ÃͤȤ·¤ÆǼ¤á¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Î¿§¤Ï½ç¤Ë¡¢¹õ¡¢Ç»¤¤ÀÖ¡¢Ç»¤¤ÎС¢Ã㡢ǻ¤¤ÀÄ¡¢Ç»¤¤»ç¡¢Ç»¤¤¥·¥¢¥ó¡¢ -ÌÀ¤ë¤¤³¥¿§¡¢Ç»¤¤³¥¿§¡¢ÌÀ¤ë¤¤ÀÖ¡¢ÌÀ¤ë¤¤ÎС¢²«¡¢ÌÀ¤ë¤¤ÀÄ¡¢ÌÀ¤ë¤¤»ç¡¢ -ÌÀ¤ë¤¤¥·¥¢¥ó¡¢Çò¤Ç¤¢¤ë¡£(¥«¡¼¥Í¥ë 1.3.3°Ê¹ß) +デフォルトのテキストモードのカラーマップを変更する。 +\fIargp\fP が指す 48 バイトの配列中には、16 の可能なスクリーンの色を、 +赤、緑、青の順に 0 をオフ、255を最大強度とした値として納める。 +デフォルトの色は順に、黒、濃い赤、濃い緑、茶、濃い青、濃い紫、濃いシアン、 +明るい灰色、濃い灰色、明るい赤、明るい緑、黄、明るい青、明るい紫、 +明るいシアン、白である。(カーネル 1.3.3以降) .IP \fBGIO_FONT\fP .\"O Gets 256-character screen font in expanded form. .\"O \fIargp\fP points to an 8192 byte array. .\"O Fails with error code \fBEINVAL\fP if the .\"O currently loaded font is a 512-character font, or if the console is .\"O not in text mode. -³ÈÄ¥¤µ¤ì¤¿·Á¼°¤Ç 256 ʸ»ú¤Î¥¹¥¯¥ê¡¼¥ó¥Õ¥©¥ó¥È¤òÆÀ¤ë¡£ -\fIargp\fP ¤Ï 8192 ¥Ð¥¤¥È¤ÎÇÛÎó¤ò»Ø¤¹¡£ -¸½ºß¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë¥Õ¥©¥ó¥È¤¬ 512 ʸ»ú¤Î¥Õ¥©¥ó¥È¤Ç¤¢¤ë¤«¡¢¥³¥ó¥½¡¼¥ë¤¬ -¥Æ¥­¥¹¥È¥â¡¼¥É¤Ç¤Ê¤¤»þ¤Ë¤Ï¼ºÇÔ¤· \fBEINVAL\fP ¤Î¥¨¥é¡¼¥³¡¼¥É¤òÊÖ¤¹¡£ +拡張された形式で 256 文字のスクリーンフォントを得る。 +\fIargp\fP は 8192 バイトの配列を指す。 +現在ロードされているフォントが 512 文字のフォントであるか、コンソールが +テキストモードでない時には失敗し \fBEINVAL\fP のエラーコードを返す。 .IP \fBGIO_FONTX\fP .\"O Gets screen font and associated information. .\"O \fIargp\fP points to a @@ -241,16 +241,16 @@ I/O .\"O \fIcharcount\fP indicated enough space was available; otherwise the .\"O buffer is untouched and \fIerrno\fP is set to \fBENOMEM\fP. .\"O (Since 1.3.1.) -¥¹¥¯¥ê¡¼¥ó¥Õ¥©¥ó¥È¤È¤½¤ì¤Ë´ØÏ¢¤·¤¿¾ðÊó¤ò¼èÆÀ¤¹¤ë¡£ -\fIargp\fP ¤Ï¹½Â¤ÂÎ consolefontdesc (\fBPIO_FONTX\fP ¤ò»²¾È¤Î¤³¤È)¤ò»Ø¤¹¡£ -´Ø¿ô¸Æ¤Ó½Ð¤·¤Î¤È¤­¤Ë¤Ï¡¢\fIcharcount\fP ¤Ë¤Ï¡¢\fIchardata\fP ¤¬»Ø¤¹ -¥Ð¥Ã¥Õ¥¡¤Ë¤ª¤µ¤Þ¤ëºÇÂç¤Îʸ»ú¿ô¤ò¥»¥Ã¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -´Ø¿ô¸Æ¤Ó½Ð¤·¤«¤éÌá¤Ã¤¿»þ¤Ë¤Ï \fIcharcount\fP ¤È \fIcharheight\fP ¤Ë¤Ï¡¢ -¸½ºß¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë¥Õ¥©¥ó¥È¤Î³ºÅö¤¹¤ë¥Ç¡¼¥¿¤¬¼ý¤á¤é¤ì¤Æ¤¤¤ë¡£ -ÇÛÎó \fIchardata\fP ¤Ë¤Ï¡¢ºÇ½é¤Ë \fIcharcount\fP ¤Ë¤¤¤ì¤¿Ãͤˤè¤Ã¤Æ -¥Õ¥©¥ó¥È¤ò¼ý¤á¤ë¤Î¤Ë½½Ê¬¤Ê¥¹¥Ú¡¼¥¹¤¬¤¢¤ë¤È¤ï¤«¤ì¤Ð¥Õ¥©¥ó¥È¥Ç¡¼¥¿¤¬¼ý¤á¤é¤ì¤ë¡£ -¤½¤¦¤Ç¤Ê¤¤»þ¤Ë¤Ï¡¢¥Ð¥Ã¥Õ¥¡¤ÏÊѹ¹¤µ¤ì¤º¡¢ \fIerrno\fP ¤Ë \fBENOMEM\fP ¤¬ -¥»¥Ã¥È¤µ¤ì¤ë(¥«¡¼¥Í¥ë 1.3.1 °Ê¹ß)¡£ +スクリーンフォントとそれに関連した情報を取得する。 +\fIargp\fP は構造体 consolefontdesc (\fBPIO_FONTX\fP を参照のこと)を指す。 +関数呼び出しのときには、\fIcharcount\fP には、\fIchardata\fP が指す +バッファにおさまる最大の文字数をセットしなければならない。 +関数呼び出しから戻った時には \fIcharcount\fP と \fIcharheight\fP には、 +現在ロードされているフォントの該当するデータが収められている。 +配列 \fIchardata\fP には、最初に \fIcharcount\fP にいれた値によって +フォントを収めるのに十分なスペースがあるとわかればフォントデータが収められる。 +そうでない時には、バッファは変更されず、 \fIerrno\fP に \fBENOMEM\fP が +セットされる(カーネル 1.3.1 以降)。 .IP \fBPIO_FONT\fP .\"O Sets 256-character screen font. .\"O Load font into the EGA/VGA character @@ -260,18 +260,18 @@ I/O .\"O Only first \fIN\fP of them are used for an 8x\fIN\fP font .\"O (0 < \fIN\fP <= 32). .\"O This call also invalidates the Unicode mapping. -256 ʸ»ú¤Î¥Õ¥©¥ó¥È¤ò¥»¥Ã¥È¤¹¤ë¡£EGA/VGA ¥­¥ã¥é¥¯¥¿¡¼¥¸¥§¥Í¥ì¡¼¥¿¡¼ -(character generator) ¤Ë¥Õ¥©¥ó¥È¤ò¥í¡¼¥É¤¹¤ë¡£ -\fIargp\fP ¤Ï¡¢8192 ¥Ð¥¤¥È(°ìʸ»ú 32 ¥Ð¥¤¥È)¤Î¥Þ¥Ã¥×¤ò»Ø¤¹¡£ -¥Þ¥Ã¥×¤Î¤¦¤Á¡¢ºÇ½é¤Î \fIN\fP ¤Î¤ß¤¬ 8x\fIN\fP ¤Î¥Õ¥©¥ó¥È¤Î¤¿¤á¤Ë -ÍѤ¤¤é¤ì¤ë(0 < \fIN\fP <= 32)¡£ -¤³¤Î¸Æ¤Ó½Ð¤·¤ò¤¹¤ë¤È Unicode ¤Î¥Þ¥Ã¥Ô¥ó¥°¤¬Ìµ¸ú¤Ë¤Ê¤ë¡£ +256 文字のフォントをセットする。EGA/VGA キャラクタージェネレーター +(character generator) にフォントをロードする。 +\fIargp\fP は、8192 バイト(一文字 32 バイト)のマップを指す。 +マップのうち、最初の \fIN\fP のみが 8x\fIN\fP のフォントのために +用いられる(0 < \fIN\fP <= 32)。 +この呼び出しをすると Unicode のマッピングが無効になる。 .IP \fBPIO_FONTX\fP .\"O Sets screen font and associated rendering information. .\"O \fIargp\fP .\"O points to a -¥¹¥¯¥ê¡¼¥ó¥Õ¥©¥ó¥È¤È¡¢¤½¤ì¤Ë´ØÏ¢¤¹¤ë¥ì¥ó¥À¥ê¥ó¥°¾ðÊó¤ò¥»¥Ã¥È¤¹¤ë¡£ -\fIargp\fP ¤Ï¡¢°Ê²¼¤Î¹½Â¤ÂΤò»Ø¤¹¡£ +スクリーンフォントと、それに関連するレンダリング情報をセットする。 +\fIargp\fP は、以下の構造体を指す。 .in +4n .nf @@ -282,11 +282,11 @@ struct consolefontdesc { .\"O character (1-32) */ .\"O char *chardata; /* font data in .\"O expanded form */ - unsigned short charcount; /* ¥Õ¥©¥ó¥È¤Îʸ»ú¿ô - (256 ¤Þ¤¿¤Ï 512) */ - unsigned short charheight; /* °ìʸ»ú¤ÎÁöººÀþ¤Î¿ô + unsigned short charcount; /* フォントの文字数 + (256 または 512) */ + unsigned short charheight; /* 一文字の走査線の数 (1-32) */ - char *chardata; /* Ÿ³«¤µ¤ì¤¿¥Õ¥©¥ó¥È¥Ç¡¼¥¿ */ + char *chardata; /* 展開されたフォントデータ */ }; .fi .in @@ -295,18 +295,18 @@ struct consolefontdesc { .\"O \fBSIGWINCH\fP sent to the appropriate processes. .\"O This call also invalidates the Unicode mapping. .\"O (Since 1.3.1.) -ɬÍפʤ饹¥¯¥ê¡¼¥ó¤ÏŬÅö¤Ë¥µ¥¤¥ºÊѹ¹¤µ¤ì¡¢\fBSIGWINCH\fP ¤¬Å¬ÀÚ¤Ê -¥×¥í¥»¥¹¤ËÁ÷¤é¤ì¤ë¡£ -¤³¤Î¥³¡¼¥ë¤Ë¤è¤ê Unicode ¤Î¥Þ¥Ã¥Ô¥ó¥°¤¬Ìµ¸ú¤Ë¤Ê¤ë¡£ +必要ならスクリーンは適当にサイズ変更され、\fBSIGWINCH\fP が適切な +プロセスに送られる。 +このコールにより Unicode のマッピングが無効になる。 .IP \fBPIO_FONTRESET\fP .\"O Resets the screen font, size and Unicode mapping to the bootup .\"O defaults. .\"O \fIargp\fP is unused, but should be set to NULL to .\"O ensure compatibility with future versions of Linux. .\"O (Since 1.3.28.) -¥¹¥¯¥ê¡¼¥ó¥Õ¥©¥ó¥È¡¢¥µ¥¤¥º¡¢ Unicode ¥Þ¥Ã¥Ô¥ó¥°¤ò¥Ö¡¼¥È»þ¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ë -¥ê¥»¥Ã¥È¤¹¤ë¡£\fIargp\fP ¤ÏÍѤ¤¤é¤ì¤Ê¤¤¤¬¡¢¾­Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤Î -Linux ¤È¤Î¸ß´¹À­¤òÊݤĤ¿¤á¤Ë NULL ¤Ë¥»¥Ã¥È¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +スクリーンフォント、サイズ、 Unicode マッピングをブート時のデフォルト値に +リセットする。\fIargp\fP は用いられないが、将来のバージョンの +Linux との互換性を保つために NULL にセットすべきである。 .IP \fBGIO_SCRNMAP\fP .\"O Get screen mapping from kernel. .\"O \fIargp\fP points to an area of size @@ -314,11 +314,11 @@ Linux .\"O character. .\"O This call is likely to return useless information if the .\"O currently loaded font is more than 256 characters. -¥¹¥¯¥ê¡¼¥ó¥Þ¥Ã¥Ô¥ó¥°¤ò¥«¡¼¥Í¥ë¤è¤ê¼èÆÀ¤¹¤ë¡£\fIargp\fP ¤Ï¥µ¥¤¥º E_TABSZ ¤Î -Îΰè¤ò»Ø¤¹¡£¤½¤ÎÎΰè¤Ë¤Ï³Æ¥­¥ã¥é¥¯¥¿¡¼¤òɽ¼¨¤¹¤ë¤Î¤ËÍѤ¤¤é¤ì¤ë¥Õ¥©¥ó¥È¤Î -°ÌÃÖ¤¬¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¸Æ¤Ó½Ð¤·¤Ï¸½ºß¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë¥Õ¥©¥ó¥È¤¬ 256 ʸ»ú¤è¤ê¤â¿¤¤»þ¤Ë¤Ï -̵°ÕÌ£¤Ê¾ðÊó¤òÊÖ¤¹»ö¤¬Â¿¤¤¡£ +スクリーンマッピングをカーネルより取得する。\fIargp\fP はサイズ E_TABSZ の +領域を指す。その領域には各キャラクターを表示するのに用いられるフォントの +位置がロードされている。 +この呼び出しは現在ロードされているフォントが 256 文字よりも多い時には +無意味な情報を返す事が多い。 .IP \fBGIO_UNISCRNMAP\fP .\"O Get full Unicode screen mapping from kernel. .\"O \fIargp\fP points to an @@ -327,19 +327,19 @@ Linux .\"O A special set of Unicodes, .\"O starting at U+F000, are used to represent "direct to font" mappings. .\"O (Since 1.3.1.) -¥Õ¥ë Unicode ¥¹¥¯¥ê¡¼¥ó¥Þ¥Ã¥Ô¥ó¥°¤ò¥«¡¼¥Í¥ë¤è¤ê¼èÆÀ¤¹¤ë¡£ -\fIargp\fP ¤Ï¥µ¥¤¥º E_TABSZ*sizeof(unsigned short) ¤ÎÎΰè¤ò»Ø¤¹¡£ -¤½¤ÎÎΰè¤Ë¤Ï³Æ¥­¥ã¥é¥¯¥¿¡¼¤ò¼¨¤¹ Unicode ¤¬¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë¡£ -U+F000 ¤Ë»Ï¤Þ¤ë Unicode ¤ÎÆÃÊ̤ʽ¸¹ç¤Ï¡¢¡Ö¥Õ¥©¥ó¥ÈľÀܤÊ(direct to font)¡× -¥Þ¥Ã¥Ô¥ó¥°¤ò¼¨¤¹¤Î¤ËÍѤ¤¤é¤ì¤ë(¥«¡¼¥Í¥ë 1.3.1 °Ê¹ß)¡£ +フル Unicode スクリーンマッピングをカーネルより取得する。 +\fIargp\fP はサイズ E_TABSZ*sizeof(unsigned short) の領域を指す。 +その領域には各キャラクターを示す Unicode がロードされている。 +U+F000 に始まる Unicode の特別な集合は、「フォント直接な(direct to font)」 +マッピングを示すのに用いられる(カーネル 1.3.1 以降)。 .IP \fBPIO_SCRNMAP\fP .\"O Loads the "user definable" (fourth) table in the kernel which maps .\"O bytes into console screen symbols. .\"O \fIargp\fP points to an area of .\"O size E_TABSZ. -¡Ö¥æ¡¼¥¶¡¼ÄêµÁ²Äǽ¤Ê(user definable)¡×(4ÈÖÌܤÎ)¥Æ¡¼¥Ö¥ë¤ò¥«¡¼¥Í¥ë¤Ë -¥í¡¼¥É¤¹¤ë¡£¤½¤Î¥Æ¡¼¥Ö¥ë¤Ï³Æ¥Ð¥¤¥È¤ò¥¹¥¯¥ê¡¼¥ó¥·¥ó¥Ü¥ë¤Ë¥Þ¥Ã¥Ô¥ó¥°¤¹¤ë¡£ -\fIargp\fP ¤Ï¥µ¥¤¥ºE_TABSZ¤ÎÎΰè¤ò»Ø¤¹¡£ +「ユーザー定義可能な(user definable)」(4番目の)テーブルをカーネルに +ロードする。そのテーブルは各バイトをスクリーンシンボルにマッピングする。 +\fIargp\fP はサイズE_TABSZの領域を指す。 .IP \fBPIO_UNISCRNMAP\fP .\"O Loads the "user definable" (fourth) table in the kernel which maps .\"O bytes into Unicodes, which are then translated into screen symbols @@ -347,17 +347,17 @@ U+F000 .\"O Special Unicodes starting at U+F000 can be used to map directly to the font .\"O symbols. .\"O (Since 1.3.1.) -¡Ö¥æ¡¼¥¶¡¼ÄêµÁ²Äǽ¤Ê¡×(4ÈÖÌܤÎ)¥Æ¡¼¥Ö¥ë¤ò¥«¡¼¥Í¥ë¤Ë¥í¡¼¥É¤¹¤ë¡£ -¤½¤Î¥Æ¡¼¥Ö¥ë¤Ï³Æ¥Ð¥¤¥È¤ò¥æ¥Ë¥³¡¼¥É¤Ë¥Þ¥Ã¥Ô¥ó¥°¤·¡¢¤½¤Î¸å¡¢ -¸½ºß¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë¥æ¥Ë¥³¡¼¥É¤«¤é¥Õ¥©¥ó¥È¤Ø¤Î¥Þ¥Ã¥×¤Ë½¾¤¤ -¥¹¥¯¥ê¡¼¥ó¥·¥ó¥Ü¥ë¤ËÊÑ´¹¤µ¤ì¤ë¡£ -U+F000 ¤Ë»Ï¤Þ¤ë¥æ¥Ë¥³¡¼¥É¤ÏľÀÜ¥Õ¥©¥ó¥È¥·¥ó¥Ü¥ë¤Ë¥Þ¥Ã¥Ô¥ó¥°¤¹¤ë¤Î¤Ë -»È¤¨¤ë(¥«¡¼¥Í¥ë 1.3.1 °Ê¹ß) +「ユーザー定義可能な」(4番目の)テーブルをカーネルにロードする。 +そのテーブルは各バイトをユニコードにマッピングし、その後、 +現在ロードされているユニコードからフォントへのマップに従い +スクリーンシンボルに変換される。 +U+F000 に始まるユニコードは直接フォントシンボルにマッピングするのに +使える(カーネル 1.3.1 以降) .IP \fBGIO_UNIMAP\fP .\"O Get Unicode-to-font mapping from kernel. .\"O \fIargp\fP points to a -Unicode ¤«¤é¥Õ¥©¥ó¥È¤Ø¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò¥«¡¼¥Í¥ë¤«¤é¼èÆÀ¤¹¤ë¡£ -\fIargp\fP ¤Ï¡¢ +Unicode からフォントへのマッピングをカーネルから取得する。 +\fIargp\fP は、 .in +4n .nf @@ -368,9 +368,9 @@ struct unimapdesc { .fi .in -¤È¤¤¤¦¹½Â¤ÂΤò»Ø¤¹¡£ +という構造体を指す。 .\"O where \fIentries\fP points to an array of -¤³¤³¤Ç \fIentries\fP ¤Ï¡¢ +ここで \fIentries\fP は、 .in +4n .nf @@ -381,21 +381,21 @@ struct unipair { .fi .in -¤È¤¤¤¦¹½Â¤ÂΤÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ +という構造体の配列へのポインターである。 .\"O (Since 1.1.92.) -(¥«¡¼¥Í¥ë 1.1.92 °Ê¹ß) +(カーネル 1.1.92 以降) .IP \fBPIO_UNIMAP\fP .\"O Put unicode-to-font mapping in kernel. .\"O \fIargp\fP points to a .\"O \fIstruct unimapdesc\fP. .\"O (Since 1.1.92) -Unicode ¤«¤é¥Õ¥©¥ó¥È¤Ø¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò¥«¡¼¥Í¥ë¤Ë¥»¥Ã¥È¤¹¤ë¡£\fIargp\fP -¤Ï¹½Â¤ÂÎ \fIstruct unimapdesc\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£(¥«¡¼¥Í¥ë 1.1.92 °Ê¹ß) +Unicode からフォントへのマッピングをカーネルにセットする。\fIargp\fP +は構造体 \fIstruct unimapdesc\fP へのポインターである。(カーネル 1.1.92 以降) .IP \fBPIO_UNIMAPCLR\fP .\"O Clear table, possibly advise hash algorithm. .\"O \fIargp\fP points to a -¥Æ¡¼¥Ö¥ë¤ò¥¯¥ê¥¢¤·¡¢¤½¤Î»ö¤ò¥Ï¥·¥å¥¢¥ë¥´¥ê¥º¥à¤ËÅÁ¤¨¤ë¡£ -\fIargp\fP¤Ï +テーブルをクリアし、その事をハシュアルゴリズムに伝える。 +\fIargp\fPは .in +4n .nf @@ -407,15 +407,15 @@ struct unimapinit { .fi .in -¤È¤¤¤¦¹½Â¤ÂΤò»Ø¤¹¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ +という構造体を指すポインターである。 .\"O (Since 1.1.92.) -(¥«¡¼¥Í¥ë 1.1.92 °Ê¹ß) +(カーネル 1.1.92 以降) .IP \fBKDGKBMODE\fP .\"O Gets current keyboard mode. .\"O \fIargp\fP points to a \fIlong\fP which is set to one .\"O of these: -¸½ºß¤Î¥­¡¼¥Ü¡¼¥É¥â¡¼¥É¤ò¼èÆÀ¤¹¤ë¡£\fIargp\fP ¤Î»Ø¤¹ \fIlong\fP ·¿ÊÑ¿ô¤¬¡¢ -¼¡¤Î¤¦¤Á¤Î¤É¤ì¤«¤ËÀßÄꤵ¤ì¤ë¡£ +現在のキーボードモードを取得する。\fIargp\fP の指す \fIlong\fP 型変数が、 +次のうちのどれかに設定される。 K_RAW 0x00 K_XLATE 0x01 @@ -424,28 +424,28 @@ struct unimapinit { .IP \fBKDSKBMODE\fP .\"O Sets current keyboard mode. .\"O \fIargp\fP is a \fIlong\fP equal to one of the above values. -¸½ºß¤Î¥­¡¼¥Ü¡¼¥É¥â¡¼¥É¤òÀßÄꤹ¤ë¡£ -\fIargp\fP ¤Ï¾åµ­¤ÎÃͤΤ¦¤Á¤Î¤É¤ì¤«¤ËÅù¤·¤¤ \fIlong\fP ¤Ë¤¹¤ë¡£ +現在のキーボードモードを設定する。 +\fIargp\fP は上記の値のうちのどれかに等しい \fIlong\fP にする。 .IP \fBKDGKBMETA\fP .\"O Gets meta key handling mode. .\"O \fIargp\fP points to a \fIlong\fP which is .\"O set to one of these: -¥á¥¿¥­¡¼¥Ï¥ó¥É¥ê¥ó¥°¥â¡¼¥É(meta key handling mode)¤ò¼èÆÀ¤¹¤ë¡£ -\fIargp\fP ¤¬»Ø¤¹ \fIlong\fP ·¿ÊÑ¿ô¤Ï¡¢¼¡¤Î¤¦¤Á¤Î¤É¤ì¤«¤ËÀßÄꤵ¤ì¤ë¡£ +メタキーハンドリングモード(meta key handling mode)を取得する。 +\fIargp\fP が指す \fIlong\fP 型変数は、次のうちのどれかに設定される。 K_METABIT 0x03 set high order bit K_ESCPREFIX 0x04 escape prefix .IP \fBKDSKBMETA\fP .\"O Sets meta key handling mode. .\"O \fIargp\fP is a \fIlong\fP equal to one of the above values. -¥á¥¿¥­¡¼¥Ï¥ó¥É¥ê¥ó¥°¥â¡¼¥É¤òÀßÄꤹ¤ë¡£ -\fIargp\fP ¤Ï¾åµ­¤ÎÃͤΤɤ줫¤ËÅù¤·¤¤ \fIlong\fP ¤Ë¤¹¤ë¡£ +メタキーハンドリングモードを設定する。 +\fIargp\fP は上記の値のどれかに等しい \fIlong\fP にする。 .IP \fBKDGKBENT\fP .\"O Gets one entry in key translation table (keycode to action code). .\"O \fIargp\fP points to a -¥­¡¼¥³¡¼¥É¤ò¥¢¥¯¥·¥ç¥ó¥³¡¼¥É¤ËÊÑ´¹¤¹¤ë¥­¡¼ÊÑ´¹É½¤Î¥¨¥ó¥È¥ê¡¼¤Î°ì¤Ä¤ò -¼èÆÀ¤¹¤ë¡£ -\fIargp\fP ¤Ï¡¢ +キーコードをアクションコードに変換するキー変換表のエントリーの一つを +取得する。 +\fIargp\fP は、 .in +4n .nf @@ -457,28 +457,28 @@ struct kbentry { .fi .in -¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ +へのポインターである。 .\"O with the first two members filled in: .\"O \fIkb_table\fP selects the key table (0 <= \fIkb_table\fP < MAX_NR_KEYMAPS), .\"O and \fIkb_index\fP is the keycode (0 <= \fIkb_index\fP < NR_KEYS). .\"O \fIkb_value\fP is set to the corresponding action code, .\"O or K_HOLE if there is no such key, .\"O or K_NOSUCHMAP if \fIkb_table\fP is invalid. -ºÇ½é¤Î2¤Ä¤ÎÍ×ÁÇ¡¢\fIkb_table\fP ¤Ë¤ÏÁªÂò¤¹¤ë¥­¡¼¥Æ¡¼¥Ö¥ë (0 <= -\fIkb_table\fP < MAX_NR_KEYMAPS)¡¢\fIkb_index\fP ¤Ë¤Ï¥­¡¼¥³¡¼¥É(0 <= -\fIkb_index\fP < NR_KEYS)¤òÀßÄꤹ¤ë¡£ -\fIkb_value\fP ¤ÏÂбþ¤¹¤ë¥¢¥¯¥·¥ç¥ó¥³¡¼¥É¡¢¤Þ¤¿¤Ï¡¢¤½¤Î¤è¤¦¤Ê¥­¡¼¤¬ -¤Ê¤¤¤È¤­¤Ë¤Ï K_HOLE¡¢\fIkb_table\fP ¤¬Ìµ¸ú¤Ê»þ¤Ë¤Ï K_NOSUCHMAP ¤ËÀßÄꤵ¤ì¤ë¡£ +最初の2つの要素、\fIkb_table\fP には選択するキーテーブル (0 <= +\fIkb_table\fP < MAX_NR_KEYMAPS)、\fIkb_index\fP にはキーコード(0 <= +\fIkb_index\fP < NR_KEYS)を設定する。 +\fIkb_value\fP は対応するアクションコード、または、そのようなキーが +ないときには K_HOLE、\fIkb_table\fP が無効な時には K_NOSUCHMAP に設定される。 .IP \fBKDSKBENT\fP .\"O Sets one entry in translation table. .\"O \fIargp\fP points to .\"O a \fIstruct kbentry\fP. -ÊÑ´¹¥Æ¡¼¥Ö¥ë¤Î¥¨¥ó¥È¥ê¡¼¤Î°ì¤Ä¤òÀßÄꤹ¤ë¡£\fIargp\fP ¤Ï -¹½Â¤ÂÎ \fIstruct kbentry\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ +変換テーブルのエントリーの一つを設定する。\fIargp\fP は +構造体 \fIstruct kbentry\fP へのポインターである。 .IP \fBKDGKBSENT\fP .\"O Gets one function key string. .\"O \fIargp\fP points to a -¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼¤Îʸ»úÎó¤ò¼èÆÀ¤¹¤ë¡£\fIargp\fP ¤Ï¡¢ +ファンクションキーの文字列を取得する。\fIargp\fP は、 .in +4n .nf @@ -489,22 +489,22 @@ struct kbsentry { .fi .in -¤È¤¤¤¦¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ +という構造体へのポインターである。 .\"O \fIkb_string\fP is set to the (null-terminated) string corresponding to .\"O the \fIkb_func\fPth function key action code. -\fIkb_func\fP ÈÖÌܤΥե¡¥ó¥¯¥·¥ç¥ó¥­¡¼¤Î¥¢¥¯¥·¥ç¥ó¥³¡¼¥É¤ËÂбþ¤¹¤ë -(NULL ¤Ç½ªÃ¼¤µ¤ì¤¿)ʸ»úÎó¤¬ \fIkb_string\fP ¤ËÀßÄꤵ¤ì¤ë¡£ +\fIkb_func\fP 番目のファンクションキーのアクションコードに対応する +(NULL で終端された)文字列が \fIkb_string\fP に設定される。 .IP \fBKDSKBSENT\fP .\"O Sets one function key string entry. .\"O \fIargp\fP points to .\"O a \fIstruct kbsentry\fP. -¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼¤Îʸ»úÎó¤Î¥¨¥ó¥È¥ê¡¼¤òÀßÄꤹ¤ë¡£\fIargp\fP ¤Ï¡¢ -¹½Â¤ÂÎ \fIstruct kbsentry\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ +ファンクションキーの文字列のエントリーを設定する。\fIargp\fP は、 +構造体 \fIstruct kbsentry\fP へのポインターである。 .IP \fBKDGKBDIACR\fP .\"O Read kernel accent table. .\"O \fIargp\fP points to a -¥«¡¼¥Í¥ë¤Î¥¢¥¯¥»¥ó¥È¥Æ¡¼¥Ö¥ë(accent table)¤òÆɤ߹þ¤à¡£\fIargp\fP¤Ï¡¢ +カーネルのアクセントテーブル(accent table)を読み込む。\fIargp\fPは、 .in +4n .nf @@ -515,10 +515,10 @@ struct kbdiacrs { .fi .in -¤È¤¤¤¦¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ +という構造体へのポインターである。 .\"O where \fIkb_cnt\fP is the number of entries in the array, each of which .\"O is a -¤³¤³¤Ç¡¢\fIkb_cnt\fP ¤ÏÇÛÎóÃæ¤Î¥¨¥ó¥È¥ê¡¼¤Î¸Ä¿ô¤Ç¡¢¸Ä¡¹¤Î¥¨¥ó¥È¥ê¡¼¤Ï¡¢ +ここで、\fIkb_cnt\fP は配列中のエントリーの個数で、個々のエントリーは、 .in +4n .nf @@ -530,13 +530,13 @@ struct kbdiacr { .fi .in -¤È¤¤¤¦¹½Â¤ÂΤǤ¢¤ë¡£ +という構造体である。 .IP \fBKDGETKEYCODE\fP .\"O Read kernel keycode table entry (scan code to keycode). .\"O \fIargp\fP points to a -¥«¡¼¥Í¥ë¤Î(¥¹¥­¥ã¥ó¥³¡¼¥É¤«¤é¥­¡¼¥³¡¼¥É¤Ø -ÊÑ´¹¤¹¤ë)¥­¡¼¥³¡¼¥É¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¡¼¤òÆɤ߹þ¤à¡£ -\fIargp\fP ¤Ï¡¢ +カーネルの(スキャンコードからキーコードへ +変換する)キーコードテーブルエントリーを読み込む。 +\fIargp\fP は、 .in +4n .nf @@ -547,42 +547,42 @@ struct kbkeycode { .fi .in -¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ +へのポインターである。 .\"O \fIkeycode\fP is set to correspond to the given \fIscancode\fP. .\"O (89 <= \fIscancode\fP <= 255 only. .\"O For 1 <= \fIscancode\fP <= 88, \fIkeycode\fP==\fIscancode\fP.) .\"O (Since 1.1.63.) -\fIkeycode\fP ¤Ï¡¢\fIscancode\fP ¤ËÂбþ¤·¤¿ÃͤËÀßÄꤵ¤ì¤ë¡£(¤¿¤À¤·¡¢89 -<= \fIscancode\fP <= 255 ¤Î¤ß¤Ë¤Ä¤¤¤Æ¡£1 <= \fIscancode\fP <= 88 ¤Ç¤Ï -\fIkeycode\fP == \fIscancode\fP ¤Ç¤¢¤ë¡£) -(¥«¡¼¥Í¥ë 1.1.63 °Ê¹ß) +\fIkeycode\fP は、\fIscancode\fP に対応した値に設定される。(ただし、89 +<= \fIscancode\fP <= 255 のみについて。1 <= \fIscancode\fP <= 88 では +\fIkeycode\fP == \fIscancode\fP である。) +(カーネル 1.1.63 以降) .IP \fBKDSETKEYCODE\fP .\"O Write kernel keycode table entry. .\"O \fIargp\fP points to .\"O a \fIstruct kbkeycode\fP. .\"O (Since 1.1.63.) -¥«¡¼¥Í¥ë¤Î¥­¡¼¥³¡¼¥É¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¡¼¤ò½ñ¤­¹þ¤à¡£\fIargp\fP ¤Ï¹½Â¤ÂÎ -\fIstruct kbkeycode\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ -(¥«¡¼¥Í¥ë 1.1.63 °Ê¹ß) +カーネルのキーコードテーブルエントリーを書き込む。\fIargp\fP は構造体 +\fIstruct kbkeycode\fP へのポインターである。 +(カーネル 1.1.63 以降) .IP \fBKDSIGACCEPT\fP .\"O The calling process indicates its willingness to accept the signal .\"O \fIargp\fP when it is generated by pressing an appropriate key combination. .\"O (1 <= \fIargp\fP <= NSIG). .\"O (See spawn_console() in linux/drivers/char/keyboard.c.) -¤³¤Î´Ø¿ô¸Æ¤Ó½Ð¤·¤Ï¡¢ÆÃÊ̤ÊÁȹ礻¤Ç¥­¡¼¤ò²¡¤·¤¿»þ¤ËȯÀ¸¤¹¤ë¥·¥°¥Ê¥ë -\fIargp\fP (1 <= \fIargp\fP <= NSIG) ¤ò¿Ê¤ó¤Ç¼õ¤±ÉÕ¤±¤ë¤«¤É¤¦¤«¤ò¼¨¤¹¡£ -(linux/drivers/char/keyboard.c ¤Î Spawn_console() ¤ò¸«¤è¡£) +この関数呼び出しは、特別な組合せでキーを押した時に発生するシグナル +\fIargp\fP (1 <= \fIargp\fP <= NSIG) を進んで受け付けるかどうかを示す。 +(linux/drivers/char/keyboard.c の Spawn_console() を見よ。) .IP \fBVT_OPENQRY\fP .\"O Returns the first available (non-opened) console. .\"O \fIargp\fP points to an \fIint\fP which is set to the .\"O number of the vt (1 <= \fI*argp\fP <= MAX_NR_CONSOLES). -ºÇ½é¤Î¶õ¤¤¤Æ¤¤¤ë(¤Þ¤À¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤)¥³¥ó¥½¡¼¥ë¤òÊÖ¤¹¡£ -\fIargp\fP ¤Î»Ø¤¹ \fIint\fP ·¿¤ÎÀ°¿ô¤Ë¤Ï¡¢vt ¤ÎÈֹ椬¥»¥Ã¥È¤µ¤ì¤ë -(1 <= \fI*argp\fP <= MAX_NR_CONSOLES)¡£ +最初の空いている(まだオープンされていない)コンソールを返す。 +\fIargp\fP の指す \fIint\fP 型の整数には、vt の番号がセットされる +(1 <= \fI*argp\fP <= MAX_NR_CONSOLES)。 .IP \fBVT_GETMODE\fP .\"O Get mode of active vt. .\"O \fIargp\fP points to a -¥¢¥¯¥Æ¥£¥Ö¤Ê vt ¤Î¥â¡¼¥É¤ò¼èÆÀ¤¹¤ë¡£\fIargp\fP¤Ï¡¢ +アクティブな vt のモードを取得する。\fIargp\fPは、 .in +4n .nf @@ -598,27 +598,27 @@ struct vt_mode { .\"O which is set to the mode of the active vt. .\"O \fImode\fP is set to one of these values: -¤È¤¤¤¦¹½Â¤ÂΤò»Ø¤¹¥Ý¥¤¥ó¥¿¤Ç¤¢¤ê¡¢¥¢¥¯¥Æ¥£¥Ö¤Ê vt ¤Î¥â¡¼¥É¤¬ -¥»¥Ã¥È¤µ¤ì¤ë¡£ -\fImode\fP ¤Ï¼¡¤Î¤É¤ì¤«¤ËÀßÄꤵ¤ì¤ë¡§ +という構造体を指すポインタであり、アクティブな vt のモードが +セットされる。 +\fImode\fP は次のどれかに設定される: .\"O VT_AUTO auto vt switching .\"O VT_PROCESS process controls switching .\"O VT_ACKACQ acknowledge switch - VT_AUTO ¼«Æ°vtÀÚÂؤ¨ - VT_PROCESS ¥×¥í¥»¥¹¥³¥ó¥È¥í¡¼¥ëÀÚÂؤ¨ - VT_ACKACQ ¥¢¥¯¥Î¥ê¥Ã¥¸ÀÚÂؤ¨ + VT_AUTO 自動vt切替え + VT_PROCESS プロセスコントロール切替え + VT_ACKACQ アクノリッジ切替え .IP \fBVT_SETMODE\fP .\"O Set mode of active vt. .\"O \fIargp\fP points to .\"O a \fIstruct vt_mode\fP. -¥¢¥¯¥Æ¥£¥Ö¤Ê vt ¤Î¥â¡¼¥É¤òÀßÄꤹ¤ë¡£\fIargp\fP ¤Ï¹½Â¤ÂÎ -\fIstruct vt_mode\fP ¤Ø¤Î -¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ +アクティブな vt のモードを設定する。\fIargp\fP は構造体 +\fIstruct vt_mode\fP への +ポインターである。 .IP \fBVT_GETSTATE\fP .\"O Get global vt state info. .\"O \fIargp\fP points to a -¥°¥í¡¼¥Ð¥ë¤Ê vt ¤Î¾õÂ֤ξðÊó¤ò¼èÆÀ¤¹¤ë¡£\fIargp\fP¤Ï¡¢ +グローバルな vt の状態の情報を取得する。\fIargp\fPは、 .in +4n .nf @@ -630,30 +630,30 @@ struct vt_stat { .fi .in -¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ +へのポインターである。 .\"O For each vt in use, the corresponding bit in the \fIv_state\fP member is set. .\"O (Kernels 1.0 through 1.1.92.) -»ÈÍѤµ¤ì¤Æ¤¤¤ë¤½¤ì¤¾¤ì¤Î vt ¤Ë¤Ä¤­ \fIv_state\fP ¤ÎÂбþ¤¹¤ë¥Ó¥Ã¥È¤¬ -¥»¥Ã¥È¤µ¤ì¤ë¡£ -(¥«¡¼¥Í¥ël 1.0 ¤«¤é 1.1.92 ¤Þ¤Ç) +使用されているそれぞれの vt につき \fIv_state\fP の対応するビットが +セットされる。 +(カーネルl 1.0 から 1.1.92 まで) .IP \fBVT_RELDISP\fP .\"O Release a display. -¥Ç¥£¥¹¥×¥ì¡¼¤ò²òÊü¤¹¤ë¡£ +ディスプレーを解放する。 .IP \fBVT_ACTIVATE\fP .\"O Switch to vt \fIargp\fP (1 <= \fIargp\fP <= MAX_NR_CONSOLES). -\fIargp\fP (1 <= \fIargp\fP <= MAX_NR_CONSOLES)¤Î vt ¤ËÀÚÂؤ¨¤ë¡£ +\fIargp\fP (1 <= \fIargp\fP <= MAX_NR_CONSOLES)の vt に切替える。 .IP \fBVT_WAITACTIVE\fP .\"O Wait until vt \fIargp\fP has been activated. -\fIargp\fP¤Î vt ¤¬¥¢¥¯¥Æ¥£¥Ö¤Ë¤Ê¤ë¤Þ¤ÇÂԤġ£ +\fIargp\fPの vt がアクティブになるまで待つ。 .IP \fBVT_DISALLOCATE\fP .\"O Deallocate the memory associated with vt \fIargp\fP. .\"O (Since 1.1.54.) -\fIargp\fP ¤Î vt ¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤¿¥á¥â¥ê¡¼¤ò²òÊü¤¹¤ë¡£ -(¥«¡¼¥Í¥ë 1.1.54 °Ê¹ß) +\fIargp\fP の vt に結びつけられたメモリーを解放する。 +(カーネル 1.1.54 以降) .IP \fBVT_RESIZE\fP .\"O Set the kernel's idea of screensize. .\"O \fIargp\fP points to a -¥«¡¼¥Í¥ë¤¬Ç§¼±¤¹¤ë¥¹¥¯¥ê¡¼¥ó¥µ¥¤¥º¤òÀßÄꤹ¤ë¡£\fIargp\fP ¤Ï¡¢ +カーネルが認識するスクリーンサイズを設定する。\fIargp\fP は、 .in +4n .nf @@ -665,18 +665,18 @@ struct vt_sizes { .fi .in -¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ +へのポインターである。 .\"O Note that this does not change the videomode. .\"O See .\"O .BR resizecons (8). .\"O (Since 1.1.54.) -¤³¤ì¤Ï¥Ó¥Ç¥ª¥â¡¼¥É¤òÊѹ¹¤·¤Ê¤¤»ö¤ËÃí°Õ¡£ +これはビデオモードを変更しない事に注意。 .BR resizecons (8) -¤ò¸«¤è(¥«¡¼¥Í¥ë 1.1.54 °Ê¹ß)¡£ +を見よ(カーネル 1.1.54 以降)。 .IP \fBVT_RESIZEX\fP .\"O Set the kernel's idea of various screen parameters. .\"O \fIargp\fP points to a -¥«¡¼¥Í¥ë¤¬Ç§¼±¤¹¤ë³Æ¼ï¤Î¥¹¥¯¥ê¡¼¥ó¥Ñ¥é¥á¡¼¥¿¤òÀßÄꤹ¤ë¡£\fIargp\fP ¤Ï¡¢ +カーネルが認識する各種のスクリーンパラメータを設定する。\fIargp\fP は、 .in +4n .nf @@ -695,7 +695,7 @@ struct vt_consize { .fi .in -¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ +へのポインターである。 .\"O Any parameter may be set to zero, indicating "no change", but if .\"O multiple parameters are set, they must be self-consistent. @@ -703,35 +703,35 @@ struct vt_consize { .\"O See .\"O .BR resizecons (8). .\"O (Since 1.3.3.) -¥Ñ¥é¥á¡¼¥¿¤Ï¥¼¥í¤Ç¤¢¤Ã¤Æ¤â¤è¤¤¡£¤½¤Î¤È¤­¤Ï¡ÖÊѹ¹¤·¤Ê¤¤¤³¤È¡×¤ò -°ÕÌ£¤¹¤ë¤¬¡¢Ê£¿ô¤Î¥Ñ¥é¥á¡¼¥¿¤¬ÀßÄꤵ¤ì¤¿»þ¤Ë¤Ï¤½¤ì¤é¤Î´Ö¤ÇÌ·½â¤¬ -¤Ê¤¤¤è¤¦¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤Î´Ø¿ô¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤Æ¤â¥Ó¥Ç¥ª¥â¡¼¥É¤ÏÊѹ¹¤µ¤ì¤Ê¤¤»ö¤ËÃí°Õ¡£ +パラメータはゼロであってもよい。そのときは「変更しないこと」を +意味するが、複数のパラメータが設定された時にはそれらの間で矛盾が +ないようにしなければならない。 +この関数呼び出しによってもビデオモードは変更されない事に注意。 .BR resizecons (8) -¤ò»²¾È¤Î»ö(¥«¡¼¥Í¥ë 1.3.3 °Ê¹ß)¡£ +を参照の事(カーネル 1.3.3 以降)。 .PP .\"O The action of the following ioctls depends on the first byte in the struct .\"O pointed to by \fIargp\fP, referred to here as the \fIsubcode\fP. .\"O These are legal only for the superuser or the owner of the current tty. -°Ê²¼¤Î ioctl ¤¬¤É¤Î¤è¤¦¤ËÆ°ºî¤ò¤¹¤ë¤«¤Ï¡¢\fIargp\fP ¤¬»Ø¤¹¹½Â¤ÂΤΠ-ºÇ½é¤Î¥Ð¥¤¥È(¤³¤³¤Ç¤Ï \fIsubcode\fP ¤È¸Æ¤Ö)¤Ë°Í¸¤¹¤ë¡£ -¤³¤ì¤é¤Î¸Æ½Ð¤·¤Ï¡¢¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¤«¸½ºß¤Î tty ¤Î¥ª¡¼¥Ê¤Ë¤Î¤ßµö¤µ¤ì¤ë¡£ +以下の ioctl がどのように動作をするかは、\fIargp\fP が指す構造体の +最初のバイト(ここでは \fIsubcode\fP と呼ぶ)に依存する。 +これらの呼出しは、スーパーユーザーか現在の tty のオーナにのみ許される。 .IP "\fBTIOCLINUX, subcode=0\fP" .\"O Dump the screen. .\"O Disappeared in 1.1.92. (With kernel 1.1.92 or later, read from .\"O /dev/vcsN or /dev/vcsaN instead.) -¥¹¥¯¥ê¡¼¥ó¤ò¥À¥ó¥×(dump)¤¹¤ë -¥«¡¼¥Í¥ë 1.1.92 °Ê¹ß¤Ç¤Ê¤¯¤Ê¤Ã¤¿(1.1.92 °Ê¹ß¤Ç¤Ï¡¢Âå¤ï¤ê¤Ë /dev/vcsN -¤Þ¤¿¤Ï /dev/vcsaN ¤è¤êÆɤ߹þ¤à)¡£ +スクリーンをダンプ(dump)する +カーネル 1.1.92 以降でなくなった(1.1.92 以降では、代わりに /dev/vcsN +または /dev/vcsaN より読み込む)。 .IP "\fBTIOCLINUX, subcode=1\fP" .\"O Get task information. .\"O Disappeared in 1.1.92. -¥¿¥¹¥¯¾ðÊó¤ò¼èÆÀ¤¹¤ë¡£¥«¡¼¥Í¥ë 1.1.92 ¤Ç¤Ê¤¯¤Ê¤Ã¤¿¡£ +タスク情報を取得する。カーネル 1.1.92 でなくなった。 .IP "\fBTIOCLINUX, subcode=2\fP" .\"O Set selection. .\"O \fIargp\fP points to a -ÁªÂò¤òÀßÄꤹ¤ë¡£ -\fIargp\fP ¤¬»Ø¤¹¤Î¤Ï¡¢ +選択を設定する。 +\fIargp\fP が指すのは、 .in +4n .nf @@ -752,69 +752,69 @@ struct { .\"O or 2 for line-by-line selection. .\"O The indicated screen characters are highlighted and saved .\"O in the static array sel_buffer in devices/char/console.c. -¤Ç¤¢¤ê¡¢¤³¤³¤Ç -\fIxs\fP ¤È \fIys\fP ¤Ï»Ï¤á¤Î·å¤È¹Ô¤Ç¡¢\fIxe\fP ¤È \fIye\fP ¤Ï½ª¤ê¤Î·å¤È -¹Ô¤Ç¤¢¤ë¡£ -(º¸¾å¤Î¶ù¤¬ ·å=¹Ô=1 ) -\fIsel_mode\fP ¤Ï 0 ¤¬Ê¸»úËè¤ÎÁªÂò¤Ç¡¢1¤Ï¸ìËè¤ÎÁªÂò¡¢2¤Ï¹ÔËè¤ÎÁªÂò¤ò -°ÕÌ£¤¹¤ë¡£ -¼¨¤µ¤ì¤¿¥¹¥¯¥ê¡¼¥ó¾å¤Îʸ»ú¤Ï¥Ï¥¤¥é¥¤¥Èɽ¼¨¤µ¤ì devices/char/console.c ¤Î -ÀÅŪÇÛÎó sel_buffer ¤ËÊݸ¤µ¤ì¤ë¡£ +であり、ここで +\fIxs\fP と \fIys\fP は始めの桁と行で、\fIxe\fP と \fIye\fP は終りの桁と +行である。 +(左上の隅が 桁=行=1 ) +\fIsel_mode\fP は 0 が文字毎の選択で、1は語毎の選択、2は行毎の選択を +意味する。 +示されたスクリーン上の文字はハイライト表示され devices/char/console.c の +静的配列 sel_buffer に保存される。 .IP "\fBTIOCLINUX, subcode=3\fP" .\"O Paste selection. .\"O The characters in the selection buffer are .\"O written to \fIfd\fP. -ÁªÂò¤·¤¿¤â¤Î¤ò¥Ú¡¼¥¹¥È¤¹¤ë¡£ -ÁªÂò¥Ð¥Ã¥Õ¥¡Ãæ¤Îʸ»ú ¤¬ \fIfd\fP ¤Ë½ñ¤­½Ð¤µ¤ì¤ë¡£ +選択したものをペーストする。 +選択バッファ中の文字 が \fIfd\fP に書き出される。 .IP "\fBTIOCLINUX, subcode=4\fP" .\"O Unblank the screen. -¥¹¥¯¥ê¡¼¥ó¤ò¥¢¥ó¥Ö¥é¥ó¥¯(unblank)¤¹¤ë¡£ +スクリーンをアンブランク(unblank)する。 .IP "\fBTIOCLINUX, subcode=5\fP" .\"O Sets contents of a 256-bit look up table defining characters in a "word", .\"O for word-by-word selection. .\"O (Since 1.1.32.) -¸ìËè¤ÎÁªÂò¤Î¤¿¤á¤Î¡Ö¸ì¡×Ãæ¤Îʸ»ú¤òµ¬Äꤷ¤Æ¤¤¤ë 256 ¥Ó¥Ã¥È¤Î¥ë¥Ã¥¯¥¢¥Ã¥× -¥Æ¡¼¥Ö¥ë¤ÎÆâÍƤòÀßÄꤹ¤ë(¥«¡¼¥Í¥ë 1.1.32 °Ê¹ß)¡£ +語毎の選択のための「語」中の文字を規定している 256 ビットのルックアップ +テーブルの内容を設定する(カーネル 1.1.32 以降)。 .IP "\fBTIOCLINUX, subcode=6\fP" .\"O \fIargp\fP points to a char which is set to the value of the kernel .\"O variable \fIshift_state\fP. .\"O (Since 1.1.32.) -\fIargp\fP ¤Ïʸ»úÊÑ¿ô¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤Ç¡¢¤½¤ÎÆâÍƤ¬¥«¡¼¥Í¥ëÊÑ¿ô -\fIshift_state\fP¤ÎÃͤËÀßÄꤵ¤ì¤ë(¥«¡¼¥Í¥ë 1.1.32 °Ê¹ß)¡£ +\fIargp\fP は文字変数を指すポインタで、その内容がカーネル変数 +\fIshift_state\fPの値に設定される(カーネル 1.1.32 以降)。 .IP "\fBTIOCLINUX, subcode=7\fP" .\"O \fIargp\fP points to a char which is set to the value of the kernel .\"O variable \fIreport_mouse\fP. .\"O (Since 1.1.33.) -\fIargp\fP ¤Ïʸ»úÊÑ¿ô¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤Ç¡¢¤½¤ÎÆâÍƤ¬¥«¡¼¥Í¥ëÊÑ¿ô -\fIreport_mouse\fP ¤ÎÃͤËÀßÄꤵ¤ì¤ë(¥«¡¼¥Í¥ë 1.1.33 °Ê¹ß)¡£ +\fIargp\fP は文字変数を指すポインタで、その内容がカーネル変数 +\fIreport_mouse\fP の値に設定される(カーネル 1.1.33 以降)。 .IP "\fBTIOCLINUX, subcode=8\fP" .\"O Dump screen width and height, cursor position, and all the .\"O character-attribute pairs. .\"O (Kernels 1.1.67 through 1.1.91 only. .\"O With kernel 1.1.92 or later, read from /dev/vcsa* instead.) -¥¹¥¯¥ê¡¼¥óÉý¡¢¥¹¥¯¥ê¡¼¥ó¹â¤µ¡¢¥«¡¼¥½¥ë°ÌÃÖ¡¢Á´¤Æ¤Îʸ»ú°À­¤ÎÁȤò¥À¥ó¥×¤¹¤ë -(¥«¡¼¥Í¥ë 1.1.67 ¤«¤é 1.1.91¤Þ¤Ç¤Î¤ß¡£ -¥«¡¼¥Í¥ë 1.1.92 °Ê¹ß¤Ç¤Ï /dev/vcsa*¤è¤êÆɤ߹þ¤à)¡£ +スクリーン幅、スクリーン高さ、カーソル位置、全ての文字属性の組をダンプする +(カーネル 1.1.67 から 1.1.91までのみ。 +カーネル 1.1.92 以降では /dev/vcsa*より読み込む)。 .IP "\fBTIOCLINUX, subcode=9\fP" .\"O Restore screen width and height, cursor position, and all the .\"O character-attribute pairs. .\"O (Kernels 1.1.67 through 1.1.91 only. .\"O With kernel 1.1.92 or later, write to /dev/vcsa* instead.) -¥¹¥¯¥ê¡¼¥óÉý¡¢¥¹¥¯¥ê¡¼¥ó¹â¤µ¡¢¥«¡¼¥½¥ë°ÌÃÖ¡¢Á´¤Æ¤Îʸ»ú°À­¤ÎÁȤòÉü¸µ¤¹¤ë -(¥«¡¼¥Í¥ë 1.1.67 ¤«¤é 1.1.91 ¤Þ¤Ç¤Î¤ß¡£ -¥«¡¼¥Í¥ë 1.1.92 °Ê¹ß¤Ç¤Ï /dev/vcsa* ¤Ë½ñ¤­¹þ¤à)¡£ +スクリーン幅、スクリーン高さ、カーソル位置、全ての文字属性の組を復元する +(カーネル 1.1.67 から 1.1.91 までのみ。 +カーネル 1.1.92 以降では /dev/vcsa* に書き込む)。 .IP "\fBTIOCLINUX, subcode=10\fP" .\"O Handles the Power Saving .\"O feature of the new generation of monitors. .\"O VESA screen blanking mode is set to \fIargp\fP[1], which governs what .\"O screen blanking does: -¿·À¤Âå¥â¥Ë¥¿¡¼¤Î¥Ñ¥ï¡¼¥»¡¼¥Öµ¡Ç½¤òÀ©¸æ¤¹¤ë¡£ -VESA ¥¹¥¯¥ê¡¼¥ó¥Ö¥é¥ó¥­¥ó¥°¥â¡¼¥É¤¬ \fIargp\fP[1]¤ËÀßÄꤵ¤ì¤ë¡£ -¤½¤ÎÃͤϥ¹¥¯¥ê¡¼¥ó¥Ö¥é¥ó¥­¥ó¥°¤¬¤É¤Î¤è¤¦¤Ë¹Ô¤ï¤ì¤ë¤«¤ò¼¨¤¹¡£°Ê²¼¤¬¤½¤Î -ÃͤǤ¢¤ë¡£ +新世代モニターのパワーセーブ機能を制御する。 +VESA スクリーンブランキングモードが \fIargp\fP[1]に設定される。 +その値はスクリーンブランキングがどのように行われるかを示す。以下がその +値である。 .\"O \fI0\fP: Screen blanking is disabled. - \fI0\fP: ¥¹¥¯¥ê¡¼¥ó¥Ö¥é¥ó¥­¥ó¥°¤Ê¤·¡£ + \fI0\fP: スクリーンブランキングなし。 .\"O \fI1\fP: The current video adapter .\"O register settings are saved, then the controller is programmed to turn off @@ -822,11 +822,11 @@ VESA .\"O This puts the monitor into "standby" mode. .\"O If your monitor has an Off_Mode timer, then .\"O it will eventually power down by itself. - \fI1\fP:¸½ºß¤Î¥Ó¥Ç¥ª¥¢¥À¥×¥¿¡¼¥ì¥¸¥¹¥¿¤¬Êݸ¤µ¤ì¤¿¤¢¤È¡¢ -¥³¥ó¥È¥í¡¼¥é¤Ï¿âľƱ´ü¥Ñ¥ë¥¹¤ò¥ª¥Õ¤Ë¤¹¤ë¤è¤¦¥×¥í¥°¥é¥à¤µ¤ì¤ë¡£¤³¤ì¤Ë¤è¤ê -¥â¥Ë¥¿¡¼¤Ï¡Ö¥¹¥¿¥ó¥Ð¥¤¡×¥â¡¼¥É¤Ë¤Ï¤¤¤ë¡£ -¥â¥Ë¥¿¡¼¤Ë Off_Mode ¥¿¥¤¥Þ¤¬È÷¤ï¤Ã¤Æ¤ª¤ì¤Ð¡¢ºÇ½ªÅª¤Ë¤Ï¥â¥Ë¥¿¡¼¤¬¼«Ê¬¤Ç -ÅŸ»¤òÍ¡£ + \fI1\fP:現在のビデオアダプターレジスタが保存されたあと、 +コントローラは垂直同期パルスをオフにするようプログラムされる。これにより +モニターは「スタンバイ」モードにはいる。 +モニターに Off_Mode タイマが備わっておれば、最終的にはモニターが自分で +電源を落す。 .\"O \fI2\fP: The current .\"O settings are saved, then both the vertical and horizontal @@ -836,46 +836,46 @@ VESA .\"O or if you want your monitor to power down immediately when the .\"O blank_timer times out, then you choose this option. .\"O (\fICaution:\fP Powering down frequently will damage the monitor.) - \fI2\fP:¸½ºß¤ÎÀßÄê¤òÊݸ¤·¤¿¸å¡¢¿âľ¡¢¿åʿƱ´ü¥Ñ¥ë¥¹¤¬¥ª¥Õ¤Ë¤Ê¤ë¡£ -¤³¤ì¤Ë¤è¤ê¥â¥Ë¥¿¡¼¤Ï¡Ö¥ª¥Õ¡×¥â¡¼¥É¤Ë¤Ê¤ë¡£ -¥â¥Ë¥¿¡¼¤Ë Off_Mode ¥¿¥¤¥Þ¡¼¤¬¤Ê¤¤»þ¡¢¤Þ¤¿¤Ï¡¢blank_timer ¤¬¥¿¥¤¥à¥¢¥¦¥È¤·¤¿¤é -¤¹¤°¤Ë¥â¥Ë¥¿¡¼¤ÎÅŸ»¤òÍ¤¿¤¤¤È¤­¤Ë¤³¤ÎÁªÂò»è¤òÁª¤Ö¡£ -(Ãí°Õ¡§ÉÑÈˤ˥â¥Ë¥¿¡¼¤ÎÅŸ»¤òÀÚ¤ë¤È¥â¥Ë¥¿¡¼¤òÄˤá¤ë¡£) + \fI2\fP:現在の設定を保存した後、垂直、水平同期パルスがオフになる。 +これによりモニターは「オフ」モードになる。 +モニターに Off_Mode タイマーがない時、または、blank_timer がタイムアウトしたら +すぐにモニターの電源を落したいときにこの選択肢を選ぶ。 +(注意:頻繁にモニターの電源を切るとモニターを痛める。) .\"O (Since 1.1.76.) -(¥«¡¼¥Í¥ë 1.1.76 °Ê¹ß) +(カーネル 1.1.76 以降) .\"O .SH "RETURN VALUE" -.SH Ìá¤êÃÍ +.SH 戻り値 .\"O On success, 0 is returned. .\"O On error \-1 is returned, and \fIerrno\fP is set. -À®¸ù»þ¤Ë¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤ËÂФ·¤Æ¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ -\fIerrno\fP ¤¬ÀßÄꤵ¤ì¤ë¡£ +成功時には 0 が返される。エラーに対しては \-1 が返され、 +\fIerrno\fP が設定される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O \fIerrno\fP may take on these values: -\fIerrno\fP ¤Ï¼¡¤Î¤è¤¦¤ÊÃͤò¤È¤ë: +\fIerrno\fP は次のような値をとる: .TP .B EBADF .\"O The file descriptor is invalid. -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Ìµ¸ú¡£ +ファイルディスクリプタが無効。 .TP .B ENOTTY .\"O The file descriptor is not associated with a character special device, .\"O or the specified request does not apply to it. -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥­¥ã¥é¥¯¥¿¡¦¥¹¥Ú¥·¥ã¥ë¥Ç¥Ð¥¤¥¹¤È´ØÏ¢ÉÕ¤±¤é¤ì¤Æ -¤¤¤Ê¤¤¡£¤Þ¤¿¤Ï¡¢Í׵ᤵ¤ì¤¿¤â¤Î¤¬¤½¤ì¤ËÅö¤Æ¤Ï¤Þ¤é¤Ê¤¤¡£ +ファイルディスクリプタがキャラクタ・スペシャルデバイスと関連付けられて +いない。または、要求されたものがそれに当てはまらない。 .TP .B EINVAL .\"O The file descriptor or \fIargp\fP is invalid. -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Þ¤¿¤Ï \fIargp\fP ¤¬Ìµ¸ú¡£ +ファイルディスクリプタまたは \fIargp\fP が無効。 .TP .B EPERM .\"O Insufficient permission. -¸¢¸Â¤¬ÉÔ½½Ê¬¡£ +権限が不十分。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .BR Warning : .\"O Do not regard this man page as documentation of the Linux console ioctl's. .\"O This is provided for the curious only, as an alternative to reading the @@ -886,34 +886,34 @@ VESA .\"O situation as of kernel version 1.1.94; .\"O there are many minor and not-so-minor .\"O differences with earlier versions.) -.BR ·Ù¹ð : -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò Linux ¤Î¥³¥ó¥½¡¼¥ë ioctl ¤òʸ½ñ²½¤·¤¿¤â¤Î¤È»×¤ï¤Ê¤¤»ö¡£ -¤³¤ì¤Ï¡¢¶½Ì£¤¬¤¢¤ë¿Í¤¬¥½¡¼¥¹¤òÆɤळ¤È¤ÎÂå¤ï¤ê¤Ë¤Ê¤ë¤è¤¦¤ËÍÑ°Õ¤·¤¿Êª¤Ç¤¢¤ë¡£ -ioctl ¤Ïʸ½ñ²½¤µ¤ì¤Ê¤¤ Linux ¤ÎÆâÉôµ¡Ç½¤Ç¤¢¤Ã¤Æ¡¢·Ù¹ð¤Ê¤·¤Ë -Êѹ¹¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ -(¤½¤·¤Æ¡¢¤³¤Î¥Ú¡¼¥¸¤Ï¥«¡¼¥Í¥ë 1.1.94 ¤Î¤È¤­¤Î¾õ¶·¤òµ­½Ò¤·¤¿Êª¤Ç¡¢¤½¤ì¤Ï -°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤ÈÈæ¤Ù¤ì¤Ð¡¢Â¿¤¯¤Î°ã¤¤¤¬¤¢¤ë) +.BR 警告 : +このマニュアルページを Linux のコンソール ioctl を文書化したものと思わない事。 +これは、興味がある人がソースを読むことの代わりになるように用意した物である。 +ioctl は文書化されない Linux の内部機能であって、警告なしに +変更されることがある。 +(そして、このページはカーネル 1.1.94 のときの状況を記述した物で、それは +以前のバージョンと比べれば、多くの違いがある) .\"O Very often, ioctl's are introduced for communication between the .\"O kernel and one particular well-known program (fdisk, hdparm, setserial, .\"O tunelp, loadkeys, selection, setfont, etc.), and their behavior will be .\"O changed when required by this particular program. -ioctl ¤Ï¥«¡¼¥Í¥ë¤È¡¢¤¢¤ëÆÃÄê¤Î¤è¤¯ÃΤé¤ì¤¿¥×¥í¥°¥é¥à¤È¤Î¾ðÊó¸ò´¹¤Î¤¿¤á¤Ë -ƳÆþ¤µ¤ì¤ë»ö¤¬Èó¾ï¤Ë¿¤¤(fdisk, hdparm, setserial,tunelp, loadkeys, -selection, setfont ¤Ê¤É)¡£¤½¤Î¤¿¤á ioctl ¤ÎÆ°ºî¤Ï¡¢¤½¤ÎÆÃÄê¤Î¥×¥í¥°¥é¥à¤¬ -ɬÍפȤ·¤¿»þ¤Ë¤ÏÊѹ¹¤Ë¤Ê¤ë¡£ +ioctl はカーネルと、ある特定のよく知られたプログラムとの情報交換のために +導入される事が非常に多い(fdisk, hdparm, setserial,tunelp, loadkeys, +selection, setfont など)。そのため ioctl の動作は、その特定のプログラムが +必要とした時には変更になる。 .\"O Programs using these ioctl's will not be portable to other versions .\"O of UNIX, will not work on older versions of Linux, and will not work .\"O on future versions of Linux. -¤³¤ì¤é¤Î ioctl ¤ò»È¤Ã¤¿¥×¥í¥°¥é¥à¤Ï¾¤Î¥Ð¡¼¥¸¥ç¥ó¤Î UNIX ¤È¤Î¸ß´¹À­¤¬ -¤Ê¤¤¤·¡¢¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Î Linux ¤Ç¤Ï¡¢Áö¤é¤Ê¤¤¡£¤µ¤é¤Ë¾­Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤Î -Linux ¤Ç¤ÏÁö¤é¤Ê¤¯¤Ê¤ë¤«¤âÃΤì¤Ê¤¤¡£ +これらの ioctl を使ったプログラムは他のバージョンの UNIX との互換性が +ないし、古いバージョンの Linux では、走らない。さらに将来のバージョンの +Linux では走らなくなるかも知れない。 .\"O Use POSIX functions. -POSIX µ¡Ç½¤ò»È¤¤¤Ê¤µ¤¤¡£ +POSIX 機能を使いなさい。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR dumpkeys (1), .BR kbd_mode (1), .BR loadkeys (1), diff --git a/draft/man4/dsp56k.4 b/draft/man4/dsp56k.4 index dcfdc9f1..f424ff6f 100644 --- a/draft/man4/dsp56k.4 +++ b/draft/man4/dsp56k.4 @@ -28,20 +28,20 @@ .\" Translated Tue Jul 11 20:05:48 JST 2000 .\" by Yuichi SATO .\" -.\"WORD: handshake ¥Ï¥ó¥É¥·¥§¥¤¥¯ -.\"WORD: device ¥Ç¥Ð¥¤¥¹ -.\"WORD: processer ¥×¥í¥»¥Ã¥µ¡¼ -.\"WORD: transmit Á÷¿® -.\"WORD: recieve ¼õ¿® -.\"WORD: quantity ñ°Ì +.\"WORD: handshake ハンドシェイク +.\"WORD: device デバイス +.\"WORD: processer プロセッサー +.\"WORD: transmit 送信 +.\"WORD: recieve 受信 +.\"WORD: quantity 単位 .\" .TH DSP56K 4 2000-03-01 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O dsp56k \- DSP56001 interface device -dsp56k \- DSP56001 ¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¡¦¥Ç¥Ð¥¤¥¹ +dsp56k \- DSP56001 のインターフェース・デバイス .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf #include .sp @@ -55,22 +55,22 @@ dsp56k \- DSP56001 .BI "int ioctl(int " fd ", DSP56K_HOST_CMD, int " cmd ); .fi .\"O .SH CONFIGURATION -.SH ÀßÄê +.SH 設定 .\"O The dsp56k device is a character device with major number 55 and minor .\"O number 0. -dsp56k ¥Ç¥Ð¥¤¥¹¤Ï¡¢¥á¥¸¥ã¡¼ÈÖ¹æ 55¡¢¥Þ¥¤¥Ê¡¼ÈÖ¹æ 0 ¤Î -¥­¥ã¥é¥¯¥¿¡¼¡¦¥Ç¥Ð¥¤¥¹¤Ç¤¢¤ë¡£ +dsp56k デバイスは、メジャー番号 55、マイナー番号 0 の +キャラクター・デバイスである。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The Motorola DSP56001 is a fully programmable 24-bit digital signal .\"O processor found in Atari Falcon030-compatible computers. .\"O The \fIdsp56k\fP special file is used to control the DSP56001, and .\"O to send and receive data using the bidirectional handshaked host .\"O port. -Motorola DSP56001 ¤Ï¡¢Atari Falcon030 ¸ß´¹¤Î¥³¥ó¥Ô¥å¡¼¥¿¤Ç»È¤ï¤ì¤Æ¤¤¤ë -¥Õ¥ë¥×¥í¥°¥é¥Þ¥Ö¥ë¤Ê 24 ¥Ó¥Ã¥È¤Î¥Ç¥¸¥¿¥ë¥·¥°¥Ê¥ë¥×¥í¥»¥Ã¥µ¡¼¤Ç¤¢¤ë¡£ -¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë \fIdsp56k\fP ¤Ï¡¢DSP56001 ¤ÎÀ©¸æ¤È -ÁÐÊý¸þ¥Ï¥ó¥É¥·¥§¥¤¥¯¥Û¥¹¥È¥Ý¡¼¥È¤Ç¤Î¥Ç¡¼¥¿¤ÎÁ÷¼õ¿®¤Î¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ +Motorola DSP56001 は、Atari Falcon030 互換のコンピュータで使われている +フルプログラマブルな 24 ビットのデジタルシグナルプロセッサーである。 +スペシャルファイル \fIdsp56k\fP は、DSP56001 の制御と +双方向ハンドシェイクホストポートでのデータの送受信のために使われる。 .PP .\"O To send a data stream to the signal processor, use .\"O .BR write (2) @@ -81,23 +81,23 @@ Motorola DSP56001 .\"O The data can be sent or .\"O received in 8, 16, 24, or 32-bit quantities on the host side, but will .\"O always be seen as 24-bit quantities in the DSP56001. -¥Ç¡¼¥¿¥¹¥È¥ê¡¼¥à¤ò¥·¥°¥Ê¥ë¥×¥í¥»¥Ã¥µ¡¼¤ËÁ÷¿®¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ -¥Ç¥Ð¥¤¥¹¤ËÂФ·¤Æ +データストリームをシグナルプロセッサーに送信するためには、 +デバイスに対して .BR write (2) -¤ò»È¤¦¤³¤È¡£ -½èÍý¤µ¤ì¤¿¥Ç¡¼¥¿¤ò¼õ¿®¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ +を使うこと。 +処理されたデータを受信するためには、 .BR read (2) -¤ò»È¤¦¤³¤È¡£ -¥Û¥¹¥È¦¤Ç¤Ï¡¢¥Ç¡¼¥¿¤Ï 8, 16, 24, 32 ¥Ó¥Ã¥Èñ°Ì¤ÇÁ÷¼õ¿®¤Ç¤­¤ë¤¬¡¢ -DSP56001 Æâ¤Ç¤Ï¡¢24 ¥Ó¥Ã¥Èñ°Ì¤Ç°·¤ï¤ì¤ë¡£ +を使うこと。 +ホスト側では、データは 8, 16, 24, 32 ビット単位で送受信できるが、 +DSP56001 内では、24 ビット単位で扱われる。 .PP .\"O The following .\"O .BR ioctl (2) .\"O calls are used to control the .\"O \fIdsp56k\fP device: -¼¡¤Î +次の .BR ioctl (2) -¥³¡¼¥ë¤¬ \fIdsp56k\fP ¥Ç¥Ð¥¤¥¹¤òÀ©¸æ¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ +コールが \fIdsp56k\fP デバイスを制御するために使われる。 .IP \fBDSP56K_UPLOAD\fP .\"O resets the DSP56001 and uploads a program. .\"O The third @@ -105,13 +105,13 @@ DSP56001 .\"O argument must be a pointer to a \fIstruct dsp56k_binary\fP with members .\"O \fIbin\fP pointing to a DSP56001 binary program, and \fIlen\fP set to .\"O the length of the program, counted in 24-bit words. -DSP56001 ¤ò¥ê¥»¥Ã¥È¤·¡¢¥×¥í¥°¥é¥à¤ò¥¢¥Ã¥×¥í¡¼¥É¤¹¤ë¡£ +DSP56001 をリセットし、プログラムをアップロードする。 .BR ioctl (2) -¤Î 3 ÈÖÌܤΰú¤­¿ô¤Ï¡¢ -¹½Â¤ÂÎ \fIstruct dsp56k_binary\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¹½Â¤ÂΤΥá¥ó¥Ð¡¼ \fIbin\fP ¤Ï DSP56001 ¥Ð¥¤¥Ê¥ê¥×¥í¥°¥é¥à¤ò»Ø¤·¡¢ -¹½Â¤ÂΤΥá¥ó¥Ð¡¼ \fIlen\fP ¤Ï 24 ¥Ó¥Ã¥È¥ï¡¼¥É¤Ç¿ô¤¨¤¿ -¥×¥í¥°¥é¥à¤ÎŤµ¤ËÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +の 3 番目の引き数は、 +構造体 \fIstruct dsp56k_binary\fP へのポインタでなければならない。 +構造体のメンバー \fIbin\fP は DSP56001 バイナリプログラムを指し、 +構造体のメンバー \fIlen\fP は 24 ビットワードで数えた +プログラムの長さに設定されていなければならない。 .IP \fBDSP56K_SET_TX_WSIZE\fP .\"O sets the transmit word size. .\"O Allowed values are in the range 1 to 4, @@ -120,10 +120,10 @@ DSP56001 .\"O These data quantities will either be padded with zero .\"O bytes, or truncated to fit the native 24-bit data format of the .\"O DSP56001. -Á÷¿®¥ï¡¼¥É¥µ¥¤¥º¤òÀßÄꤹ¤ë¡£ -ÀßÄê¤Ç¤­¤ëÃÍ¤Ï 1 ¡Á 4 ¤ÎÈϰϤǡ¢¤³¤Î¥Ð¥¤¥È¿ôʬ¤À¤± 1 ÅÙ¤Ë DSP56001 ¤ËÁ÷¿®¤¹¤ë¡£ -¤³¤Î¥Ç¡¼¥¿Ã±°Ì¤Ï¡¢DSP56001 ËÜÍè¤Î 24 ¥Ó¥Ã¥È¥Ç¡¼¥¿·Á¼°¤Ë¹ç¤ï¤»¤ë¤¿¤á¡¢ -¥¼¥í¤Î¥Ð¥¤¥È¤ÇËä¤á¤é¤ì¤¿¤ê¡¢ÀÚ¤êµÍ¤á¤é¤ì¤¿¤ê¤¹¤ë¡£ +送信ワードサイズを設定する。 +設定できる値は 1 〜 4 の範囲で、このバイト数分だけ 1 度に DSP56001 に送信する。 +このデータ単位は、DSP56001 本来の 24 ビットデータ形式に合わせるため、 +ゼロのバイトで埋められたり、切り詰められたりする。 .IP \fBDSP56K_SET_RX_WSIZE\fP .\"O sets the receive word size. .\"O Allowed values are in the range 1 to 4, @@ -131,11 +131,11 @@ DSP56001 .\"O DSP56001. .\"O These data quantities will either truncated, or padded with .\"O a null byte (\(aq\\0\(aq) to fit the native 24-bit data format of the DSP56001. -¼õ¿®¥ï¡¼¥É¥µ¥¤¥º¤òÀßÄꤹ¤ë¡£ -ÀßÄê¤Ç¤­¤ëÃÍ¤Ï 1 ¡Á 4 ¤ÎÈϰϤǡ¢ -¤³¤Î¥Ð¥¤¥È¿ôʬ¤À¤± 1 ÅÙ¤Ë DSP56001 ¤«¤é¼õ¿®¤¹¤ë¡£ -¤³¤Î¥Ç¡¼¥¿Ã±°Ì¤Ï¡¢DSP56001 ËÜÍè¤Î 24 ¥Ó¥Ã¥È¥Ç¡¼¥¿·Á¼°¤Ë¹ç¤ï¤»¤ë¤¿¤á¡¢ -ÀÚ¤êµÍ¤á¤é¤ì¤¿¤ê¡¢NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤ÇËä¤á¤é¤ì¤¿¤ê¤¹¤ë¡£ +受信ワードサイズを設定する。 +設定できる値は 1 〜 4 の範囲で、 +このバイト数分だけ 1 度に DSP56001 から受信する。 +このデータ単位は、DSP56001 本来の 24 ビットデータ形式に合わせるため、 +切り詰められたり、NULL バイト (\(aq\\0\(aq) で埋められたりする。 .IP \fBDSP56K_HOST_FLAGS\fP .\"O read and write the host flags. .\"O The host flags are four @@ -143,11 +143,11 @@ DSP56001 .\"O the DSP56001. .\"O Bits 0 and 1 can be written by the host, and bits 2 and .\"O 3 can be written by the DSP56001. -¥Û¥¹¥È¥Õ¥é¥°¤òÆɤ߽ñ¤­¤¹¤ë¡£ -¥Û¥¹¥È¥Õ¥é¥°¤Ï¡¢°ìÈÌŪ¤ÊÌÜŪ¤Ç»È¤¦¤³¤È¤Î¤Ç¤­¤ë¥Ó¥Ã¥È¤Ç¡¢ -¥Û¥¹¥È¥³¥ó¥Ô¥å¡¼¥¿¤È DSP56001 ¤ÎξÊý¤«¤éÆɤळ¤È¤¬¤Ç¤­¤ë¡£ -¥Ó¥Ã¥È 0 ¤È 1 ¤Ï¡¢¥Û¥¹¥È¤Ë¤è¤Ã¤Æ½ñ¤­¹þ¤à¤³¤È¤¬¤Ç¤­¡¢ -¥Ó¥Ã¥È 2 ¤È 3 ¤Ï¡¢DSP56001 ¤Ë¤è¤Ã¤Æ½ñ¤­¹þ¤à¤³¤È¤¬¤Ç¤­¤ë¡£ +ホストフラグを読み書きする。 +ホストフラグは、一般的な目的で使うことのできるビットで、 +ホストコンピュータと DSP56001 の両方から読むことができる。 +ビット 0 と 1 は、ホストによって書き込むことができ、 +ビット 2 と 3 は、DSP56001 によって書き込むことができる。 .\"O To access the host flags, the third .\"O .BR ioctl (2) @@ -158,30 +158,30 @@ DSP56001 .\"O to the host flags. .\"O The state of all host flags will be returned in .\"O the lower four bits of the \fIstatus\fP member. -¥Û¥¹¥È¥Õ¥é¥°¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ +ホストフラグにアクセスするためには、 .BR ioctl (2) -¤Î 3 ÈÖÌܤΰú¤­¿ô¤¬ -¹½Â¤ÂÎ \fIstruct dsp56k_host_flags\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤Î¹½Â¤ÂΤΥá¥ó¥Ð¡¼ \fIdir\fP ¤Î¥Ó¥Ã¥È 0 ¤Þ¤¿¤Ï 1 ¤¬ÀßÄꤵ¤ì¤ë¤È¡¢ -¥á¥ó¥Ð¡¼ \fIout\fP ¤ÎÂбþ¤¹¤ë¥Ó¥Ã¥È¤ÎÃͤ¬¥Û¥¹¥È¥Õ¥é¥°¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£ -¤¹¤Ù¤Æ¤Î¥Û¥¹¥È¥Õ¥é¥°¤Î¾õÂ֤ϡ¢¹½Â¤ÂΤΥá¥ó¥Ð¡¼ \fIstatus\fP ¤Î -²¼¤«¤é 4 ¥Ó¥Ã¥È¤È¤·¤ÆÊÖ¤µ¤ì¤ë¡£ +の 3 番目の引き数が +構造体 \fIstruct dsp56k_host_flags\fP へのポインタでなければならない。 +この構造体のメンバー \fIdir\fP のビット 0 または 1 が設定されると、 +メンバー \fIout\fP の対応するビットの値がホストフラグに書き込まれる。 +すべてのホストフラグの状態は、構造体のメンバー \fIstatus\fP の +下から 4 ビットとして返される。 .IP \fBDSP56K_HOST_CMD\fP .\"O sends a host command. .\"O Allowed values are in the range 0 to 31, and is a .\"O user-defined command handled by the program running in the DSP56001. -¥Û¥¹¥È¥³¥Þ¥ó¥É¤òÁ÷¿®¤¹¤ë¡£ -Á÷¿®¤Ç¤­¤ëÃÍ¤Ï 0 ¡Á 31 ¤ÎÈϰϤǡ¢DSP56001 ¤ÇÆ°ºî¤·¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤Æ -½èÍý¤µ¤ì¤ë¥æ¡¼¥¶¡¼ÄêµÁ¥³¥Þ¥ó¥É¤Ç¤¢¤ë¡£ +ホストコマンドを送信する。 +送信できる値は 0 〜 31 の範囲で、DSP56001 で動作しているプログラムによって +処理されるユーザー定義コマンドである。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル /dev/dsp56k .\"O .\" .SH AUTHORS -.\" .SH Ãø¼Ô +.\" .SH 著者 .\" Fredrik Noring , lars brinkhoff , .\" Tomas Berndtsson . .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .IR linux/include/asm-m68k/dsp56k.h , .IR linux/drivers/char/dsp56k.c , .IR http://dsp56k.nocrew.org/ , diff --git a/draft/man4/fd.4 b/draft/man4/fd.4 index 9602878f..3505bfba 100644 --- a/draft/man4/fd.4 +++ b/draft/man4/fd.4 @@ -29,24 +29,24 @@ .\" Translated Sun Jan 11 03:25:38 JST 1998 .\" by ISHIKAWA Mutsumi .\" -.\" WORD: floppy disk ¥Õ¥í¥Ã¥Ô¡¼¥Ç¥£¥¹¥¯ -.\" WORD: double density ÇÜÌ©ÅÙ -.\" WORD: high density ¹âÌ©ÅÙ -.\" WORD: extra density ³Èĥ̩ÅÙ -.\" WORD: interleaved format ¥¤¥ó¥¿¡¼¥ê¡¼¥Ö¥É¥Õ¥©¡¼¥Þ¥Ã¥È -.\" WORD: media ¥á¥Ç¥£¥¢ -.\" WORD: geometry ¥¸¥ª¥á¥È¥ê -.\" WORD: buffer cache ¥Ð¥Ã¥Õ¥¡¥­¥ã¥Ã¥·¥å -.\" WORD: threshold ïçÃÍ -.\" WORD: clear ¥¯¥ê¥¢¡¼ +.\" WORD: floppy disk フロッピーディスク +.\" WORD: double density 倍密度 +.\" WORD: high density 高密度 +.\" WORD: extra density 拡張密度 +.\" WORD: interleaved format インターリーブドフォーマット +.\" WORD: media メディア +.\" WORD: geometry ジオメトリ +.\" WORD: buffer cache バッファキャッシュ +.\" WORD: threshold 閾値 +.\" WORD: clear クリアー .\" .TH FD 4 2010-08-29 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O fd \- floppy disk device -.SH ̾Á° -fd \- ¥Õ¥í¥Ã¥Ô¡¼¥Ç¥£¥¹¥¯(floppy disk)¥Ç¥Ð¥¤¥¹ +.SH 名前 +fd \- フロッピーディスク(floppy disk)デバイス .\"O .SH CONFIGURATION -.SH ÀßÄê +.SH 設定 .\"O Floppy drives are block devices with major number 2. .\"O Typically they .\"O are owned by @@ -63,19 +63,19 @@ fd \- .\"O controller. .\"O In the following device tables, \fIn\fP represents the .\"O drive number. -¥Õ¥í¥Ã¥Ô¡¼¥É¥é¥¤¥Ö¤Ï¥á¥¸¥ã¡¼¥Ê¥ó¥Ð¡¼ 2 ¤ò»ý¤Ä¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Ç¤¢¤ë¡£ -°ìÈÌŪ¤Ë¤Ï¡¢¤³¤Î¥Ç¥Ð¥¤¥¹¤Î¥ª¡¼¥Ê¡¼¤Ï +フロッピードライブはメジャーナンバー 2 を持つブロックデバイスである。 +一般的には、このデバイスのオーナーは .I root.floppy -(¥ª¡¼¥Ê¡¼ root¡¢¥°¥ë¡¼¥× floppy) ¤Ç¡¢ -¥â¡¼¥É 0660 (¥°¥ë¡¼¥×¤Î¹½À®°÷¤Ç¤¢¤ë¤³¤È¤Ë¤è¤Ã¤Æ¥¢¥¯¥»¥¹¥Á¥§¥Ã¥¯¤¬¹Ô¤ï¤ì¤ë)¡¢ -¤Þ¤¿¤Ï¡¢¥â¡¼¥É 0666 (ï¤Ç¤â¥¢¥¯¥»¥¹¤Ç¤­¤ë) ¤Ç¤¢¤ë¡£ -¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼¤Ï¥Ç¥Ð¥¤¥¹¤Î¥¿¥¤¥×¡¢¥É¥é¥¤¥Ö¤ÎÈֹ桢 -¥³¥ó¥È¥í¡¼¥é¡¼¤ÎÈÖ¹æ¤òÉä¹æ²½¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£¤½¤ì¤¾¤ì¤Î¥Ç¥Ð¥¤¥¹¥¿¥¤¥× -(¤³¤ì¤Ï¡¢Ì©ÅÙ (density) ¤È¥È¥é¥Ã¥¯¥«¥¦¥ó¥È (track count) ¤ÎÁȹ礻¤Ç¤¢¤ë) -¤Ï¡¢¥Ù¡¼¥¹¤È¤Ê¤ë¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼¤ò»ý¤Ã¤Æ¤¤¤ë¡£¤³¤Î¥Ù¡¼¥¹¥Ê¥ó¥Ð¡¼¤Ë¤½¤Î -¥³¥ó¥È¥í¡¼¥é¡¼¾å¤Î¥É¥é¥¤¥Ö¥Ê¥ó¥Ð¡¼¤ò²Ã¤¨¤ë¡£¤â¤·¡¢¤½¤Î¥É¥é¥¤¥Ö¤¬ 2 ÈÖÌܤΠ-¥³¥ó¥È¥í¡¼¥é¡¼¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¤Ê¤é¡¢¤µ¤é¤Ë 128 ¤ò²Ã¤¨¤ë¡£¼¡¤Î¥Ç¥Ð¥¤¥¹ -¥Æ¡¼¥Ö¥ë¤Ç¤Ï¡¢ \fIn\fP ¤Ï¥É¥é¥¤¥ÖÈÖ¹æ¤òɽ¤¹¡£ +(オーナー root、グループ floppy) で、 +モード 0660 (グループの構成員であることによってアクセスチェックが行われる)、 +または、モード 0666 (誰でもアクセスできる) である。 +マイナーナンバーはデバイスのタイプ、ドライブの番号、 +コントローラーの番号を符号化したものである。それぞれのデバイスタイプ +(これは、密度 (density) とトラックカウント (track count) の組合せである) +は、ベースとなるマイナーナンバーを持っている。このベースナンバーにその +コントローラー上のドライブナンバーを加える。もし、そのドライブが 2 番目の +コントローラーに接続されているなら、さらに 128 を加える。次のデバイス +テーブルでは、 \fIn\fP はドライブ番号を表す。 .PP .\"O \fBWarning: If you use formats with more tracks .\"O than supported by your drive, you may cause it mechanical damage.\fP @@ -83,33 +83,33 @@ fd \- .\"O damage it, but no warranty is given for that. .\"O If you are not sure, don't create device .\"O entries for those formats, so as to prevent their usage. -\fB·Ù¹ð: ¥É¥é¥¤¥Ö¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤è¤ê¤â¿¤¯¤Î¥È¥é¥Ã¥¯¤ò»ý¤Ä¤è¤¦¤Ë -¥Õ¥©¡¼¥Þ¥Ã¥È¤·¤¿¾ì¹ç¡¢¥É¥é¥¤¥Ö¤Ëµ¡³£Åª¤Ê¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¤³¤È¤Ë¤Ê¤ë -¤«¤â¤·¤ì¤Ê¤¤¡£\fP -Ä̾ï¤Î 40/80 ¤è¤ê¤â¿¤¯¤Î¥È¥é¥Ã¥¯¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò -°ìÅٻ¤À¤±¤Ç¤Ï¥É¥é¥¤¥Ö¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¤³¤È¤Ï¤Ê¤¤¤Ï¤º¤À¤¬¡¢ -¥À¥á¡¼¥¸¤òÍ¿¤¨¤Ê¤¤¤È¤¤¤¦ÊݾڤϤʤ¤¡£ -³Î¿®¤¬¤Ê¤¤¾ì¹ç¤Ï¡¢¤½¤Î¤è¤¦¤Ê»È¤¤Êý¤¬¹Ô¤ï¤ì¤Ê¤¤¤è¤¦¤Ë¡¢ -¤½¤¦¤·¤¿¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥É¥é¥¤¥Ö¡¦¥¨¥ó¥È¥ê¤òºîÀ®¤·¤Ê¤¤¤³¤È¡£ +\fB警告: ドライブがサポートしているよりも多くのトラックを持つように +フォーマットした場合、ドライブに機械的なダメージを与えることになる +かもしれない。\fP +通常の 40/80 よりも多くのトラックがサポートされているかどうかを +一度試すだけではドライブにダメージを与えることはないはずだが、 +ダメージを与えないという保証はない。 +確信がない場合は、そのような使い方が行われないように、 +そうしたフォーマットのドライブ・エントリを作成しないこと。 .PP -[ÌõÃí] -°Ê²¼¤Îɽ¤ËÍѤ¤¤é¤ì¤ëÍѸì¤Ïɽ¤ÎÀ°·Á¤Î´Ø·¸¤«¤é -(°ì¹Ô¤Ë¤¦¤Þ¤¯Ç¼¤á¤ë»ö¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¤¿¤á) -¤«¤é¸¶Ê¸¤Î¤Þ¤Þ¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤È¤ÎÂбþ¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ +[訳注] +以下の表に用いられる用語は表の整形の関係から +(一行にうまく納める事ができなかったため) +から原文のままとなっています。日本語との対応は以下の通りです。 .TS l l. -Name ̾Á° -Capac. ÍÆÎÌ -Cyl. ¥·¥ê¥ó¥À¿ô -Sect. ¥»¥¯¥¿¡¼¿ô -Heads. ¥Ø¥Ã¥À¿ô -Base minor # ¥Ù¡¼¥¹¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼ +Name 名前 +Capac. 容量 +Cyl. シリンダ数 +Sect. セクター数 +Heads. ヘッダ数 +Base minor # ベースマイナーナンバー .TE .\"O Drive-independent device files which automatically detect the media .\"O format and capacity: -¥á¥Ç¥£¥¢¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ÈÍÆÎ̤ò¼«Æ°Åª¤Ë¸¡½Ð¤¹¤ë -¥É¥é¥¤¥ÖÈó°Í¸¤Î¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë: +メディアのフォーマットと容量を自動的に検出する +ドライブ非依存のデバイスファイル: .TS l l. Name Base minor # @@ -118,7 +118,7 @@ _ .TE .PP .\"O 5.25 inch double density device files: -5.25 ¥¤¥ó¥ÁÇÜÌ©ÅÙ(double density)¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë: +5.25 インチ倍密度(double density)デバイスファイル: .TS lw(1i) l l l l l. Name Capac. Cyl. Sect. Heads Base minor # @@ -127,7 +127,7 @@ _ .TE .PP .\"O 5.25 inch high density device files: -5.25 ¥¤¥ó¥Á¹âÌ©ÅÙ(high density)¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë: +5.25 インチ高密度(high density)デバイスファイル: .TS lw(1i) l l l l l. Name Capac. Cyl. Sect. Heads Base minor # @@ -145,7 +145,7 @@ _ .TE .PP .\"O 3.5 inch double density device files: -3.5 ¥¤¥ó¥ÁÇÜÌ©ÅÙ(double density)¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë: +3.5 インチ倍密度(double density)デバイスファイル: .TS lw(1i) l l l l l. Name Capac. Cyl. Sect. Heads Base minor # @@ -158,7 +158,7 @@ _ .TE .PP .\"O 3.5 inch high density device files: -3.5 ¥¤¥ó¥Á¹âÌ©ÅÙ(high density)¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë: +3.5 インチ高密度(high density)デバイスファイル: .TS lw(1i) l l l l l. Name Capac. Cyl. Sect. Heads Base minor # @@ -178,7 +178,7 @@ _ .TE .PP .\"O 3.5 inch extra density device files: -3.5 ¥¤¥ó¥Á³Èĥ̩ÅÙ(extra density)¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë: +3.5 インチ拡張密度(extra density)デバイスファイル: .TS lw(1i) l l l l l. Name Capac. Cyl. Sect. Heads Base minor # @@ -190,28 +190,28 @@ _ \fBfd\fP\fIn\fP\fBE3840\fP 3840K 80 48 2 112 .TE .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O \fBfd\fP special files access the floppy disk drives in raw mode. .\"O The following .\"O .BR ioctl (2) .\"O calls are supported by \fBfd\fP devices: -\fBfd\fP ¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤Ï¥Õ¥í¥Ã¥Ô¡¼¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ö¤Ë¥í¡¼¥â¡¼¥É -(raw mode)¤Ç -¥¢¥¯¥»¥¹¤¹¤ë¡£\fBfd\fP ¤Ç¤Ï¡¢¼¡¤Î +\fBfd\fP スペシャルファイルはフロッピーディスクドライブにローモード +(raw mode)で +アクセスする。\fBfd\fP では、次の .BR ioctl (2) -¥³¡¼¥ë¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +コールがサポートされている。 .\"O .IP \fBFDCLRPRM\fP .\"O clears the media information of a drive (geometry of disk in drive). .IP \fBFDCLRPRM\fP -¥É¥é¥¤¥Ö¤Î¥á¥Ç¥£¥¢¾ðÊó(¥É¥é¥¤¥ÖÆâ¤Î¥Ç¥£¥¹¥¯¤Î¥¸¥ª¥á¥È¥ê¾ðÊó)¤ò¥¯¥ê¥¢¤¹ -¤ë¡£ +ドライブのメディア情報(ドライブ内のディスクのジオメトリ情報)をクリアす +る。 .\"O .IP \fBFDSETPRM\fP .\"O sets the media information of a drive. .\"O The media information will be .\"O lost when the media is changed. .IP \fBFDSETPRM\fP -¥É¥é¥¤¥Ö¤Î¥á¥Ç¥£¥¢¾ðÊó¤ò¥»¥Ã¥È¤¹¤ë¡£¥á¥Ç¥£¥¢¾ðÊó¤Ï¥á¥Ç¥£¥¢¤¬¸ò´¹¤µ¤ì¤¿ -»þ¡¢¼º¤ï¤ì¤ë¡£ +ドライブのメディア情報をセットする。メディア情報はメディアが交換された +時、失われる。 .\"O .IP \fBFDDEFPRM\fP .\"O sets the media information of a drive (geometry of disk in drive). .\"O The media information will not be lost when the media is changed. @@ -219,41 +219,41 @@ _ .\"O In order to reenable autodetection, you .\"O have to issue an \fBFDCLRPRM\fP. .IP \fBFDDEFPRM\fP -¥É¥é¥¤¥Ö¤Î¥á¥Ç¥£¥¢¾ðÊó(¥É¥é¥¤¥ÖÆâ¤Î¥Ç¥£¥¹¥¯¤Î¥¸¥ª¥á¥È¥ê¾ðÊó)¤ò¥»¥Ã¥È¤¹ -¤ë¡£¥á¥Ç¥£¥¢¾ðÊó¤Ï¥á¥Ç¥£¥¢¤¬¸ò´¹¤µ¤ì¤¿»þ¤Ç¤â¼º¤ï¤ì¤Ê¤¤¡£¤³¤ì¤Ï(¥á¥Ç¥£ -¥¢¾ðÊó¤Î)¼«Æ°¸¡½Ð¤ò̵¸ú¤Ë¤¹¤ë¡£¼«Æ°¸¡½Ð¤òºÆ¤ÓÍ­¸ú¤Ë¤¹¤ë¤¿¤á¤Ë¡¢ -\fBFDCLRPRM\fP ¤òȯ¹Ô¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ドライブのメディア情報(ドライブ内のディスクのジオメトリ情報)をセットす +る。メディア情報はメディアが交換された時でも失われない。これは(メディ +ア情報の)自動検出を無効にする。自動検出を再び有効にするために、 +\fBFDCLRPRM\fP を発行しなければならない。 .\"O .IP \fBFDGETDRVTYP\fP .\"O returns the type of a drive (name parameter). .\"O For formats which work .\"O in several drive types, \fBFDGETDRVTYP\fP returns a name which is .\"O appropriate for the oldest drive type which supports this format. .IP \fBFDGETDRVTYP\fP -¥É¥é¥¤¥Ö¤Î¥¿¥¤¥×(̾Á°°ú¿ô)¤òÊÖ¤¹¡£¤½¤ì¤¾¤ì¤Î¥É¥é¥¤¥Ö¥¿¥¤¥×¤ËŬ¹ç¤¹¤ë¤è -¤¦¤Ë¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¹Ô¤¦¤¿¤á¡¢\fBFDGETDRVTYP\fP ¤Ï¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¥µ¥Ý¡¼¥È -¤¹¤ëºÇ¤â¸Å¤¤¥É¥é¥¤¥Ö¥¿¥¤¥×¤Î¤¿¤á¤ËŬÀÚ¤Ê̾Á°¤òÊÖ¤¹¡£ +ドライブのタイプ(名前引数)を返す。それぞれのドライブタイプに適合するよ +うにフォーマットを行うため、\fBFDGETDRVTYP\fP はフォーマットをサポート +する最も古いドライブタイプのために適切な名前を返す。 .\"O .IP \fBFDFLUSH\fP .\"O invalidates the buffer cache for the given drive. .IP \fBFDFLUSH\fP -Í¿¤¨¤é¤ì¤¿¥É¥é¥¤¥Ö¤Î¥Ð¥Ã¥Õ¥¡¥­¥ã¥Ã¥·¥å¤ò̵¸ú¤Ë¤¹¤ë¡£ +与えられたドライブのバッファキャッシュを無効にする。 .\"O .IP \fBFDSETMAXERRS\fP .\"O sets the error thresholds for reporting errors, aborting the operation, .\"O recalibrating, resetting, and reading sector by sector. .IP \fBFDSETMAXERRS\fP -¥¨¥é¡¼¤ÎÊó¹ð¡¢Áàºî¤ÎÃæ»ß¡¢ºÆ»î¹Ô¡¢¥ê¥»¥Ã¥È¡¢¥»¥¯¥¿¡¼Ëè¤ÎÆɤ߹þ¤ß¤Î¤¿¤á -¤Î¥¨¥é¡¼ïçÃͤò¥»¥Ã¥È¤¹¤ë¡£ +エラーの報告、操作の中止、再試行、リセット、セクター毎の読み込みのため +のエラー閾値をセットする。 .\"O .IP \fBFDSETMAXERRS\fP .\"O gets the current error thresholds. .IP \fBFDGETMAXERRS\fP -¸½ºß¤Î¥¨¥é¡¼ïçÃͤòÆÀ¤ë¡£ +現在のエラー閾値を得る。 .\"O .IP \fBFDGETDRVTYP\fP .\"O gets the internal name of the drive. .IP \fBFDGETDRVTYP\fP -¥É¥é¥¤¥Ö¤ÎÆâÉô̾¤òÆÀ¤ë¡£ +ドライブの内部名を得る。 .\"O .IP \fBFDWERRORCLR\fP .\"O clears the write error statistics. .IP \fBFDWERRORCLR\fP -½ñ¤­¹þ¤ß¥¨¥é¡¼¤ÎÅý·×¤ò¥¯¥ê¥¢¡¼¤¹¤ë¡£ +書き込みエラーの統計をクリアーする。 .\"O .IP \fBFDWERRORGET\fP .\"O reads the write error statistics. .\"O These include the total number of @@ -262,91 +262,91 @@ _ .\"O Disks are identified by a .\"O generation number which is incremented at (almost) each disk change. .IP \fBFDWERRORGET\fP -½ñ¤­¹þ¤ß¥¨¥é¡¼¤ÎÅý·×¤òÆɤࡣÅý·×¤Ï¡¢½ñ¤­¹þ¤ß¥¨¥é¡¼¤Î¹ç·×¡¢ºÇ½é¤Î½ñ¤­¹þ -¤ß¥¨¥é¡¼¤Ï¤É¤Î¥Ç¥£¥¹¥¯¤Î¤É¤³¤Çµ¯¤³¤Ã¤¿¤«¡¢¤½¤·¤Æ¡¢ºÇ¸å¤Î½ñ¤­¹þ¤ß¥¨¥é¡¼ -¤¬¤É¤Î¥Ç¥£¥¹¥¯¤Î¤É¤³¤Çµ¯¤³¤Ã¤¿¤«¤È¤¤¤¦¾ðÊó¤ò´Þ¤ó¤Ç¤¤¤ë¡£¥Ç¥£¥¹¥¯¤Ï¥Ç¥£ -¥¹¥¯¤Î¸ò´¹¤´¤È¤ËÁý¤¨¤ë¥¸¥§¥Í¥ì¡¼¥·¥ç¥óÈÖ¹æ¤Ë¤è¤Ã¤Æ¼±Ê̤µ¤ì¤ë¡£ +書き込みエラーの統計を読む。統計は、書き込みエラーの合計、最初の書き込 +みエラーはどのディスクのどこで起こったか、そして、最後の書き込みエラー +がどのディスクのどこで起こったかという情報を含んでいる。ディスクはディ +スクの交換ごとに増えるジェネレーション番号によって識別される。 .\"O .IP \fBFDTWADDLE\fP .\"O Switch the drive motor off for a few microseconds. .\"O This might be .\"O needed in order to access a disk whose sectors are too close together. .IP \fBFDTWADDLE\fP -¿ô¥ß¥êÉäδ֥ɥ饤¥Ö¤Î¥â¡¼¥¿¡¼¤Î¥¹¥¤¥Ã¥Á¤òÀڤ롣¤³¤ì¤Ï¥Ç¥£¥¹¥¯¤Î¥»¥¯¥¿¡¼ -Ʊ»Î¤¬Àܶᤷ¤¹¤®¤Æ¤¤¤ë¥Ç¥£¥¹¥¯¤Î¥¢¥¯¥»¥¹¤Î¤¿¤á¤ËɬÍפǤ¢¤í¤¦¡£ +数ミリ秒の間ドライブのモーターのスイッチを切る。これはディスクのセクター +同士が接近しすぎているディスクのアクセスのために必要であろう。 .\"O .IP \fBFDSETDRVPRM\fP .\"O sets various drive parameters. .IP \fBFDSETDRVPRM\fP -¥É¥é¥¤¥Ö¤ÎÍÍ¡¹¤Ê¥Ñ¥é¥á¡¼¥¿¤ò¥»¥Ã¥È¤¹¤ë¡£ +ドライブの様々なパラメータをセットする。 .\"O .IP \fBFDGETDRVPRM\fP .\"O reads these parameters back. .IP \fBFDGETDRVPRM\fP -(\fBFDSETDRVPRM\fP ¤ò»È¤Ã¤Æ¥»¥Ã¥È¤·¤¿)¥Ñ¥é¥á¡¼¥¿¤òÆɤߤÀ¤¹¡£ +(\fBFDSETDRVPRM\fP を使ってセットした)パラメータを読みだす。 .\"O .IP \fBFDGETDRVSTAT\fP .\"O gets the cached drive state (disk changed, write protected et al.) .IP \fBFDGETDRVSTAT\fP -¥­¥ã¥Ã¥·¥å¤µ¤ì¤Æ¤¤¤ë¥É¥é¥¤¥Ö¤Î¾õÂÖ(¥Ç¥£¥¹¥¯¤Î¸ò´¹¡¢¥é¥¤¥È¥×¥í¥Æ¥¯¥È¤Ê -¤É)¤òÆÀ¤ë¡£ +キャッシュされているドライブの状態(ディスクの交換、ライトプロテクトな +ど)を得る。 .\"O .IP \fBFDPOLLDRVSTAT\fP .\"O polls the drive and return its state. .IP \fBFDPOLLDRVSTAT\fP -¥É¥é¥¤¥Ö¤ò¥Ý¡¼¥ê¥ó¥°¤·¤Æ¡¢¤½¤Î¾õÂÖ¤òÊÖ¤¹¡£ +ドライブをポーリングして、その状態を返す。 .\"O .IP \fBFDGETFDCSTAT\fP .\"O gets the floppy controller state. .IP \fBFDGETFDCSTAT\fP -¥Õ¥í¥Ã¥Ô¡¼¥³¥ó¥È¥í¡¼¥é¡¼¤Î¾õÂÖ¤òÆÀ¤ë¡£ +フロッピーコントローラーの状態を得る。 .\"O .IP \fBFDRESET\fP .\"O resets the floppy controller under certain conditions. .IP \fBFDRESET\fP -¥Õ¥í¥Ã¥Ô¡¼¥³¥ó¥È¥í¡¼¥é¡¼¤ò¿®Íê¤Ç¤­¤ë¾õÂ֤˥ꥻ¥Ã¥È¤¹¤ë¡£ +フロッピーコントローラーを信頼できる状態にリセットする。 .\"O .IP \fBFDRAWCMD\fP .\"O sends a raw command to the floppy controller. .IP \fBFDRAWCMD\fP -¥Õ¥í¥Ã¥Ô¡¼¥³¥ó¥È¥í¡¼¥é¡¼¤ËÄã¥ì¥Ù¥ë¤Î¥³¥Þ¥ó¥É(raw command)¤òÁ÷¤ë¡£ +フロッピーコントローラーに低レベルのコマンド(raw command)を送る。 .PP .\"O For more precise information, consult also the \fI\fP and .\"O \fI\fP include files, as well as the .\"O .BR floppycontrol (1) .\"O manual page. -¤è¤êÀµ³Î¤Ê¾ðÊó¤Î¤¿¤á¤Ë¤Ï¡¢¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸ +より正確な情報のためには、マニュアルページ .BR floppycontrol (1) -¤À¤±¤Ç¤Ê¤¯¡¢¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë \fI\fP ¤È -\fI\fP ¤â»²¾È¤Î¤³¤È¡£ +だけでなく、インクルードファイル \fI\fP と +\fI\fP も参照のこと。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル /dev/fd* .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The various formats permit reading and writing many types of disks. .\"O However, if a floppy is formatted with an inter-sector gap that is too small, .\"O performance may drop, .\"O to the point of needing a few seconds to access an entire track. .\"O To prevent this, use interleaved formats. -ÍÍ¡¹¤Ê¥Ç¥£¥¹¥¯¤Î¥¿¥¤¥×¤ÇÍÍ¡¹¤Ê¼ïÎà¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ÎÆɤ߽ñ¤­¤¬µö¤µ¤ì¤Æ¤¤¤ë¡£ -¤·¤«¤·¡¢¾®¤µ¤¹¤®¤ë¥»¥¯¥¿¡¼´Ö¥®¥ã¥Ã¥×¤Ç¥Õ¥©¡¼¥Þ¥Ã¥È¤µ¤ì¤¿¥Õ¥í¥Ã¥Ô¡¼¤Ç¤Ï¡¢ -¥È¥é¥Ã¥¯Á´ÂΤΥ¢¥¯¥»¥¹¤Ë¿ôÉÃɬÍפˤʤ뤿¤á¡¢À­Ç½¤¬Äã²¼¤¹¤ë¤³¤È¤À¤í¤¦¡£ -¤³¤ì¤òËɤ°¤¿¤á¤Ë¤Ï¡¢¥¤¥ó¥¿¡¼¥ê¡¼¥Ö¥É¡¦¥Õ¥©¡¼¥Þ¥Ã¥È -(interleaved format) ¤òÍѤ¤¤ì¤Ð¤è¤¤¡£ +様々なディスクのタイプで様々な種類のフォーマットの読み書きが許されている。 +しかし、小さすぎるセクター間ギャップでフォーマットされたフロッピーでは、 +トラック全体のアクセスに数秒必要になるため、性能が低下することだろう。 +これを防ぐためには、インターリーブド・フォーマット +(interleaved format) を用いればよい。 .\"O It is not possible to .\"O read floppies which are formatted using GCR (group code recording), .\"O which is used by Apple II and Macintosh computers (800k disks). -Apple II ¤ä Macintosh ¥³¥ó¥Ô¥å¡¼¥¿¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë¡¢ -GCR (group code recording) ¤ò»È¤Ã¤Æ¥Õ¥©¡¼¥Þ¥Ã¥È¤µ¤ì¤¿¥Õ¥í¥Ã¥Ô¡¼ -(800k ¥Ç¥£¥¹¥¯) ¤òÆɤळ¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +Apple II や Macintosh コンピュータで使用されている、 +GCR (group code recording) を使ってフォーマットされたフロッピー +(800k ディスク) を読むことはできない。 .\"O Reading floppies which are hard sectored (one hole per sector, with .\"O the index hole being a little skewed) is not supported. .\"O This used to be common with older 8-inch floppies. -¥Ï¡¼¥É¥»¥¯¥¿¡¼·¿¤Î¥Õ¥í¥Ã¥Ô¡¼¤ÎÆɤ߹þ¤ß¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤ -(¥Ï¡¼¥É¥»¥¯¥¿¡¼·¿¤Î¥Õ¥í¥Ã¥Ô¡¼¤Ç¤Ï¡¢¥»¥¯¥¿¡¼Ëè¤Ë¥Û¡¼¥ë (hole) ¤¬°ì¤Ä¤¢¤ê¡¢ -¾¯¤·¤º¤ì¤¿°ÌÃ֤˥¤¥ó¥Ç¥Ã¥¯¥¹¥Û¡¼¥ë¤¬Â¸ºß¤¹¤ë)¡£ -¤³¤ì¤Ï¡¢ÀΤΠ8 ¥¤¥ó¥Á¥Õ¥í¥Ã¥Ô¡¼¤Ç°ìÈÌŪ¤Ë»È¤ï¤ì¤Æ¤¤¤¿Êý¼°¤Ç¤¢¤ë¡£ +ハードセクター型のフロッピーの読み込みはサポートされていない +(ハードセクター型のフロッピーでは、セクター毎にホール (hole) が一つあり、 +少しずれた位置にインデックスホールが存在する)。 +これは、昔の 8 インチフロッピーで一般的に使われていた方式である。 .\"O .\" .SH AUTHORS -.\" .SH Ãø¼Ô +.\" .SH 著者 .\" Alain Knaff (Alain.Knaff@imag.fr), David Niemi .\" (niemidc@clark.net), Bill Broadhurst (bbroad@netcom.com). .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chown (1), .BR floppycontrol (1), .BR getfdprm (1), @@ -354,5 +354,5 @@ GCR (group code recording) .BR superformat (1), .BR mount (8), .BR setfdprm (8) -.\" .SH ËÝÌõ¼Ô -.\" ÀÐÀî ËÓ +.\" .SH 翻訳者 +.\" 石川 睦 diff --git a/draft/man4/full.4 b/draft/man4/full.4 index 15d7d87c..83cccd34 100644 --- a/draft/man4/full.4 +++ b/draft/man4/full.4 @@ -34,14 +34,14 @@ .TH FULL 4 2007-11-24 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O full \- always full device -.SH ̾Á° -full \- ¤¤¤Ä¤â full ¤Ç¤¢¤ë¥Ç¥Ð¥¤¥¹ +.SH 名前 +full \- いつも full であるデバイス .\"O .SH CONFIGURATION -.SH ÀßÄê +.SH 設定 .\"O If your system does not have \fI/dev/full\fP created already, it .\"O can be created with the following commands: -¥·¥¹¥Æ¥à¤ËºîÀ®ºÑ¤ß¤Î \fI/dev/full\fP ¤¬¤Ê¤¤¾ì¹ç¡¢ -¼¡¤Î¥³¥Þ¥ó¥É¤Ë¤è¤êºîÀ®¤Ç¤­¤ë¡£ +システムに作成済みの \fI/dev/full\fP がない場合、 +次のコマンドにより作成できる。 .nf mknod \-m 666 /dev/full c 1 7 @@ -50,32 +50,32 @@ full \- .\"O .SH DESCRIPTION .\"O File \fI/dev/full\fP has major device number 1 .\"O and minor device number 7. -.SH ÀâÌÀ -\fI/dev/full\fP ¤Ï¡¢¥á¥¸¥ã¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ 1¡¢ -¥Þ¥¤¥Ê¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ 7 ¤Î¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ +.SH 説明 +\fI/dev/full\fP は、メジャーデバイス番号 1、 +マイナーデバイス番号 7 のファイルである。 .LP .\"O Writes to the \fI/dev/full\fP device will fail with an .\"O .B ENOSPC .\"O error. .\"O This can be used to test how a program handles disk-full errors. -\fI/dev/full\fP ¥Ç¥Ð¥¤¥¹¤Ø¤Î½ñ¤­¹þ¤ß¤Ï¡¢ +\fI/dev/full\fP デバイスへの書き込みは、 .B ENOSPC -¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë¡£ -¤³¤ÎÆ°ºî¤ò»È¤Ã¤Æ¡¢¥×¥í¥°¥é¥à¤¬¥Ç¥£¥¹¥¯¥Õ¥ë¤Î¥¨¥é¡¼¤ò¤É¤Î¤è¤¦¤Ë -½èÍý¤¹¤ë¤«¤ò¥Æ¥¹¥È¤Ç¤­¤ë¡£ +エラーで失敗する。 +この動作を使って、プログラムがディスクフルのエラーをどのように +処理するかをテストできる。 .\"O Reads from the \fI/dev/full\fP device will return \\0 characters. -\fI/dev/full\fP ¥Ç¥Ð¥¤¥¹¤«¤é¤ÎÆɤ߽Ф·¤Ç¤Ï¡¢\\0 ʸ»ú(¥Ì¥ëʸ»ú)¤¬ÊÖ¤µ¤ì¤ë¡£ +\fI/dev/full\fP デバイスからの読み出しでは、\\0 文字(ヌル文字)が返される。 .\"O Seeks on \fI/dev/full\fP will always succeed. -\fI/dev/full\fP ¤Î¥·¡¼¥¯ (seek) ¤Ï¾ï¤ËÀ®¸ù¤¹¤ë¡£ +\fI/dev/full\fP のシーク (seek) は常に成功する。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル /dev/full .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mknod (1), .BR null (4), .BR zero (4) -.\"O .SH ËÝÌõ¼Ô -.\"O ÀÐÀî ËÓ +.\"O .SH 翻訳者 +.\"O 石川 睦 diff --git a/draft/man4/hd.4 b/draft/man4/hd.4 index 4931b17e..2199c011 100644 --- a/draft/man4/hd.4 +++ b/draft/man4/hd.4 @@ -33,36 +33,36 @@ .\" Japanese Version Last Modified Thu Feb 5 17:36:37 JST 1998 .\" by ISHIKAWA Mutsumi .\" -.\" WORD: hard disk drive ¥Ï¡¼¥É¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ö -.\" WORD: block device ¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹ -.\" WORD: primary ¥×¥é¥¤¥Þ¥ê -.\" WORD: controller ¥³¥ó¥È¥í¡¼¥é -.\" WORD: master drive ¥Þ¥¹¥¿¡¼¥É¥é¥¤¥Ö -.\" WORD: slave drive ¥¹¥ì¡¼¥Ö¥É¥é¥¤¥Ö -.\" WORD: pertition ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó -.\" WORD: logical partition ÏÀÍý¥Ñ¡¼¥Æ¥£¥·¥ç¥ó -.\" WORD: pertitioning ¥Ñ¡¼¥Æ¥£¥·¥ç¥Ë¥ó¥° -.\" WORD: BSD-disklabel BSD ¥Ç¥£¥¹¥¯¥é¥Ù¥ë +.\" WORD: hard disk drive ハードディスクドライブ +.\" WORD: block device ブロックデバイス +.\" WORD: primary プライマリ +.\" WORD: controller コントローラ +.\" WORD: master drive マスタードライブ +.\" WORD: slave drive スレーブドライブ +.\" WORD: pertition パーティション +.\" WORD: logical partition 論理パーティション +.\" WORD: pertitioning パーティショニング +.\" WORD: BSD-disklabel BSD ディスクラベル .\" .TH HD 4 1992-12-17 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O hd \- MFM/IDE hard disk devices -hd \- MFM/IDE ¥Ï¡¼¥É¥Ç¥£¥¹¥¯¥Ç¥Ð¥¤¥¹ +hd \- MFM/IDE ハードディスクデバイス .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The \fBhd*\fP devices are block devices to access MFM/IDE hard disk drives .\"O in raw mode. .\"O The master drive on the primary IDE controller (major device .\"O number 3) is \fBhda\fR; the slave drive is \fBhdb\fR. .\"O The master drive of the second controller (major device number 22) .\"O is \fBhdc\fR and the slave \fBhdd\fR. -\fBhd*\fP ¥Ç¥Ð¥¤¥¹¤Ï MFM/IDE ¥Ï¡¼¥É¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ö¤Ë¥í¡¼¥â¡¼¥É (raw mode) -¤Ç¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Î¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹ (block device) ¤Ç¤¢¤ë¡£¥×¥é¥¤¥Þ¥ê -(primary) IDE ¥³¥ó¥È¥í¡¼¥é (¥á¥¸¥ã¡¼¥Ê¥ó¥Ð¡¼ 3) ¤Î ¥Þ¥¹¥¿¡¼¥É¥é¥¤¥Ö -(mater drive) ¤Ï \fBhda\fR¡¢¥¹¥ì¡¼¥Ö¥É¥é¥¤¥Ö (slave drive) ¤Ï \fBhdb\fR -¤Ç¤¢¤ë¡£¤Þ¤¿¡¢¥»¥«¥ó¥É¥³¥ó¥È¥í¡¼¥é (¥á¥¸¥ã¡¼¥Ê¥ó¥Ð¡¼ 22) ¤Î¥Þ¥¹¥¿¡¼ -¥É¥é¥¤¥Ö¤Ï \fBhdc\fR ¥¹¥ì¡¼¥Ö¤Ï \fBhdd\fR ¤Ç¤¢¤ë¡£ +\fBhd*\fP デバイスは MFM/IDE ハードディスクドライブにローモード (raw mode) +でアクセスするためのブロックデバイス (block device) である。プライマリ +(primary) IDE コントローラ (メジャーナンバー 3) の マスタードライブ +(mater drive) は \fBhda\fR、スレーブドライブ (slave drive) は \fBhdb\fR +である。また、セカンドコントローラ (メジャーナンバー 22) のマスター +ドライブは \fBhdc\fR スレーブは \fBhdd\fR である。 .LP .\"O General IDE block device names have the form .\"O .BI hd X\c @@ -76,18 +76,18 @@ hd \- MFM/IDE .\"O The first form, .\"O .BI hd X, .\"O is used to address the whole drive. -°ìÈÌŪ¤Ê IDE ¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Î̾Á°¤Ï +一般的な IDE ブロックデバイスの名前は .BI hd X\c -¤Þ¤¿¤Ï¡¢ +または、 .BI hd XP\c -¤È¤¤¤¦·ÁÂÖ¤ò¤È¤ë¡£¤³¤Î¡¢ +という形態をとる。この、 .I X -¤ÎÉôʬ¤ÏʪÍýŪ¤Ê¥É¥é¥¤¥Ö¤òɽ¤¹Ê¸»ú¤Ç¡¢ +の部分は物理的なドライブを表す文字で、 .I P -¤ÎÉôʬ¤Ï¤½¤ÎʪÍýŪ¤Ê¥É¥é¥¤¥Ö¾å¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó (partition) ¤òɽ¤¹¿ô»ú¤Ç -¤¢¤ë¡£¤³¤ÎºÇ½é¤Î·Á¼° +の部分はその物理的なドライブ上のパーティション (partition) を表す数字で +ある。この最初の形式 .BI hd X, -¤Ï¥É¥é¥¤¥ÖÁ´ÂΤò¼¨¤¹¤Î¤Ë»È¤ï¤ì¤ë¡£ +はドライブ全体を示すのに使われる。 .\"O Partition numbers are assigned in the order the partitions .\"O are discovered, and only nonempty, nonextended partitions .\"O get a number. @@ -99,33 +99,33 @@ hd \- MFM/IDE .\"O \&. .\"O Both DOS-type partitioning and BSD-disklabel partitioning are supported. .\"O You can have at most 63 partitions on an IDE disk. -¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Ê¥ó¥Ð¡¼¤Ïȯ¸«¤µ¤ì¤¿¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë½ç¤Ë³ä¤êÉÕ¤±¤é¤ì¤ë¡£ -¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Ê¥ó¥Ð¡¼¤¬³ä¤êÉÕ¤±¤é¤ì¤ë¤Î¤Ï¡¢¶õ¤Ç¤Ê¤¯ (nonempty) ¤«¤Ä -³ÈÄ¥¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ç¤Ê¤¤ (nonextended) ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¤ß¤Ç¤¢¤ë¡£ -¤³¤Î¤¦¤Á¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Ê¥ó¥Ð¡¼ 1 ¤«¤é 4 ¤Ï¤½¤ì¤¬»È¤ï¤ì¤Æ¤¤¤Ê¤¯¤Æ¤â¡¢ -¤Þ¤¿³ÈÄ¥¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤À¤È¤·¤Æ¤â MBR ¤Ëµ­½Ò¤µ¤ì¤ë»Í¤Ä¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó -(¤¤¤ï¤æ¤ë¡¢¥×¥é¥Þ¥ê'¥Ñ¡¼¥Æ¥£¥·¥ç¥ó) ¤ËÍ¿¤¨¤é¤ì¤ë¡£ -½¾¤Ã¤Æ¡¢ºÇ½é¤ÎÏÀÍý¥Ñ¡¼¥Æ¥£¥·¥ç¥ó (logical pertition) ¤Ï¡¢ +パーティションナンバーは発見されたパーティションに順に割り付けられる。 +パーティションナンバーが割り付けられるのは、空でなく (nonempty) かつ +拡張パーティションでない (nonextended) パーティションのみである。 +このうち、パーティションナンバー 1 から 4 はそれが使われていなくても、 +また拡張パーティションだとしても MBR に記述される四つのパーティション +(いわゆる、プラマリ'パーティション) に与えられる。 +従って、最初の論理パーティション (logical pertition) は、 .BI hd X 5\c -¤È¤Ê¤ë¤À¤í¤¦¡£ -(IDE ¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤Ç¤Ï) DOS ¥¿¥¤¥×¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥Ë¥ó¥° (partitioning) -¤È BSD ¥Ç¥£¥¹¥¯¥é¥Ù¥ë (BSD-disklabel) ¤Ë¤è¤ë¥Ñ¡¼¥Æ¥£¥·¥ç¥Ë¥ó¥°¤ÎξÊý¤¬ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£¤Þ¤¿¡¢IDE ¥Ç¥£¥¹¥¯¾å¤ËºÇ¹â 63 ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò -ºîÀ®¤¹¤ë»ö¤¬¤Ç¤­¤ë¡£ +となるだろう。 +(IDE ハードディスクでは) DOS タイプのパーティショニング (partitioning) +と BSD ディスクラベル (BSD-disklabel) によるパーティショニングの両方が +サポートされている。また、IDE ディスク上に最高 63 のパーティションを +作成する事ができる。 .LP .\"O For example, .\"O .I /dev/hda .\"O refers to all of the first IDE drive in the system; and .\"O .I /dev/hdb3 .\"O refers to the third DOS "primary" partition on the second one. -Î㤨¤Ð¡¢ +例えば、 .I /dev/hda -¤Ï¥·¥¹¥Æ¥à¤ÎºÇ½é¤Î IDE ¥É¥é¥¤¥ÖÁ´ÂΤò»²¾È¤¹¤ë¡£¤½¤·¤Æ¡¢ +はシステムの最初の IDE ドライブ全体を参照する。そして、 .I /dev/hdb3 -¤Ï¥»¥«¥ó¥É¥É¥é¥¤¥Ö¤Î»°¤Ä¤á¤Î DOS `¥×¥é¥¤¥Þ¥ê'¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò»²¾È¤¹¤ë¡£ +はセカンドドライブの三つめの DOS `プライマリ'パーティションを参照する。 .LP .\"O They are typically created by: -¤³¤ì¤é¤Î¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë (device file) ¤Ïŵ·¿Åª¤Ë¤Ï¼¡¤Î¤è¤¦¤Ë¤·¤Æºî¤é¤ì¤ë¡£ +これらのデバイスファイル (device file) は典型的には次のようにして作られる。 .RS .sp mknod \-m 660 /dev/hda b 3 0 @@ -151,10 +151,10 @@ mknod \-m 660 /dev/hdb8 b 3 72 chown root:disk /dev/hd* .RE .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル /dev/hd* .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chown (1), .BR mknod (1), .BR sd (4) diff --git a/draft/man4/initrd.4 b/draft/man4/initrd.4 index 1bd43573..4c4714e7 100644 --- a/draft/man4/initrd.4 +++ b/draft/man4/initrd.4 @@ -40,11 +40,11 @@ .\" .TH INITRD 4 2010-09-04 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O initrd \- boot loader initialized RAM disk -initrd \- ¥Ö¡¼¥È¥í¡¼¥À¤Ë¤è¤Ã¤Æ½é´ü²½¤µ¤ì¤¿ RAM ¥Ç¥£¥¹¥¯ +initrd \- ブートローダによって初期化された RAM ディスク .\"O .SH CONFIGURATION -.SH ÀßÄê +.SH 設定 .\"O The .\"O .I /dev/initrd .\"O is a read-only block device assigned @@ -58,16 +58,16 @@ initrd \- .\"O .I /dev/initrd .\"O already created, it can be created with the following commands: .I /dev/initrd -¤Ï¡¢¥á¥¸¥ã¡¼ÈÖ¹æ 1¡¢¥Þ¥¤¥Ê¡¼ÈÖ¹æ 250 ¤¬³ä¤êÅö¤Æ¤é¤ì¤¿ -Æɤ߹þ¤ßÀìÍѤΥ֥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Ç¤¢¤ë¡£ -ÉáÄÌ¡¢ +は、メジャー番号 1、マイナー番号 250 が割り当てられた +読み込み専用のブロックデバイスである。 +普通、 .I /dev/initrd -¤Î½êÍ­¼Ô¤Ï +の所有者は .I root.disk -¤Ç¤¢¤ê¡¢¥â¡¼¥É¤Ï 400 (root ¤Î¤ß¤¬Æɤ߽Ф·²Äǽ) ¤Ç¤¢¤ë¡£ -¤â¤·¡¢Linux ¥·¥¹¥Æ¥à¤ËºîÀ®ºÑ¤Î +であり、モードは 400 (root のみが読み出し可能) である。 +もし、Linux システムに作成済の .I /dev/initrd -¥Õ¥¡¥¤¥ë¤¬¤Ê¤«¤Ã¤¿¾ì¹ç¡¢°Ê²¼¤Î¥³¥Þ¥ó¥É¤ÇºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë: +ファイルがなかった場合、以下のコマンドで作成することができる: .nf \fB mknod \-m 400 /dev/initrd b 1 250 @@ -85,24 +85,24 @@ initrd \- .\"O When using .\"O .IR /dev/initrd , .\"O the RAM disk driver cannot be loaded as a module. -¤Þ¤¿¡¢ +また、 .I /dev/initrd -¤ò»ÈÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢ -"RAM disk" ¤È "Initial RAM disk" ¤ÎξÊý¤Îµ¡Ç½¤¬ -Linux ¥«¡¼¥Í¥ë¤ËľÀÜÁȤ߹þ¤Þ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(Î㤨¤Ð¡¢¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤ÎÀßÄê¤Ç +を使用するためには、 +"RAM disk" と "Initial RAM disk" の両方の機能が +Linux カーネルに直接組み込まれていなければならない +(例えば、カーネルのコンパイル時の設定で .B CONFIG_BLK_DEV_RAM=y -¤«¤Ä +かつ .B CONFIG_BLK_DEV_INITRD=y -¤È¤¹¤ë)¡£ +とする)。 .I /dev/initrd -¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ë¤Ï¡¢RAM ¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ð¤ò¥â¥¸¥å¡¼¥ë¤È¤·¤Æ -¥í¡¼¥É¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +を使用する場合には、RAM ディスクドライバをモジュールとして +ロードすることはできない。 .\" .\" .\" .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The special file .\"O .I /dev/initrd .\"O is a read-only block device. @@ -112,13 +112,13 @@ Linux .\"O .IR /dev/initrd "'s " .\"O contents for a two-phase system boot-up. .I /dev/initrd -¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤ÏÆɤ߹þ¤ßÀìÍѤΥ֥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Ç¤¢¤ë¡£ -¤³¤Î¥Ç¥Ð¥¤¥¹¤Ï¥«¡¼¥Í¥ë¤¬µ¯Æ°¤µ¤ì¤ëÁ°¤Ë¥Ö¡¼¥È¥í¡¼¥À (boot loader) -¤Ë¤è¤Ã¤Æ½é´ü²½ (Î㤨¤Ð¡¢¥í¡¼¥É) ¤µ¤ì¤ë RAM ¥Ç¥£¥¹¥¯¤Ç¤¢¤ë¡£ -¤½¤Î¸å¡¢¥«¡¼¥Í¥ë¤Ï +スペシャルファイルは読み込み専用のブロックデバイスである。 +このデバイスはカーネルが起動される前にブートローダ (boot loader) +によって初期化 (例えば、ロード) される RAM ディスクである。 +その後、カーネルは .I /dev/initrd -¤ÎÆâÍƤòÆóÃʳ¬¤Î¥·¥¹¥Æ¥àµ¯Æ° (two-phase system boot-up) -¤ÇÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +の内容を二段階のシステム起動 (two-phase system boot-up) +で利用することができる。 .PP .\"O In the first boot-up phase, the kernel starts up .\"O and mounts an initial root file-system from the contents of @@ -129,33 +129,33 @@ Linux .\"O After loading the additional modules, a new root file system .\"O (i.e., the normal root file system) is mounted from a .\"O different device. -ºÇ½é¤Î¥Ö¡¼¥È¥¢¥Ã¥×Ãʳ¬ (first boot-up phase) ¤Ç¤Ï¡¢¥«¡¼¥Í¥ë¤Ï -(Î㤨¤Ð¡¢¥Ö¡¼¥È¥í¡¼¥À¤Ë¤è¤Ã¤Æ½é´ü²½¤µ¤ì¤¿ RAM disk ¤Ç¤¢¤ë) +最初のブートアップ段階 (first boot-up phase) では、カーネルは +(例えば、ブートローダによって初期化された RAM disk である) .I /dev/initrd -¤ÎÆâÍƤò½é´ü¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à (root file-system) ¤È¤·¤Æ¥Þ¥¦¥ó¥È -¤·¤Æµ¯Æ°¤¹¤ë¡£ -ÂèÆóÃʳ¬¤Ç¤Ï½é´ü¥ë¡¼¥È¥Ç¥Ð¥¤¥¹¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤â¤Î¤«¤é¡¢ÄɲäΥɥ饤 -¥Ð¤ä¤½¤Î¾¤Î¥â¥¸¥å¡¼¥ë¤¬¥í¡¼¥É¤µ¤ì¤ë¡£ -ÄɲäΥ⥸¥å¡¼¥ë¤¬¥í¡¼¥É¤µ¤ì¤¿¸å¡¢¿·¤·¤¤¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -(¤¹¤Ê¤ï¤Á¡¢Ä̾ï»þ¤Î¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à) -¤¬Ê̤ΥǥХ¤¥¹¤«¤é¥Þ¥¦¥ó¥È¤µ¤ì¤ë¡£ +の内容を初期ルートファイルシステム (root file-system) としてマウント +して起動する。 +第二段階では初期ルートデバイスに含まれているものから、追加のドライ +バやその他のモジュールがロードされる。 +追加のモジュールがロードされた後、新しいルートファイルシステム +(すなわち、通常時のルートファイルシステム) +が別のデバイスからマウントされる。 .\" .\" .\" .\"O .SS "Boot-up Operation" -.SS ¥Ö¡¼¥È¥¢¥Ã¥×ºî¶È +.SS ブートアップ作業 .\"O When booting up with .\"O .BR initrd , .\"O the system boots as follows: .B initrd -¤òÍøÍѤ·¤¿»þ¤Ï¡¢¥·¥¹¥Æ¥à¤Ï¼¡¤Î¤è¤¦¤Ë¥Ö¡¼¥È¤¹¤ë: +を利用した時は、システムは次のようにブートする: .IP 1. 3 .\"O The boot loader loads the kernel program and .\"O .IR /dev/initrd 's .\"O contents into memory. -¥Ö¡¼¥È¥í¡¼¥À¤Ï¥«¡¼¥Í¥ë¥×¥í¥°¥é¥à¤È +ブートローダはカーネルプログラムと .I /dev/initrd -¤ÎÆâÍƤò¥á¥â¥ê¤Ë¥í¡¼¥É¤¹¤ë¡£ +の内容をメモリにロードする。 .IP 2. .\"O On kernel startup, .\"O the kernel uncompresses and copies the contents of the device @@ -164,31 +164,31 @@ Linux .\"O .I /dev/ram0 .\"O and then frees the memory used by .\"O .IR /dev/initrd . -¥«¡¼¥Í¥ëµ¯Æ°»þ¡¢¥«¡¼¥Í¥ë¤Ï +カーネル起動時、カーネルは .I /dev/initrd -¥Ç¥Ð¥¤¥¹¤ÎÆâÍƤòŸ³« (uncompress) ¤·¡¢ +デバイスの内容を展開 (uncompress) し、 .I /dev/ram0 -¤Ë¥³¥Ô¡¼¤¹¤ë¡£¤µ¤é¤Ë¡¢ +にコピーする。さらに、 .I /dev/initrd -¤Î»È¤Ã¤Æ¤¤¤¿¥á¥â¥ê¤ò²òÊü¤¹¤ë¡£ +の使っていたメモリを解放する。 .IP 3. .\"O The kernel then read-write mounts the device .\"O .I /dev/ram0 .\"O as the initial root file system. -¥«¡¼¥Í¥ë¤Ï +カーネルは .I /dev/ram0 -¥Ç¥Ð¥¤¥¹¤ò½é´ü¤Î¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤È¤·¤ÆÆɤ߽ñ¤­²Äǽ¤Ê·Á¼°¤Ç¥Þ¥¦¥ó -¥È¤¹¤ë¡£ +デバイスを初期のルートファイルシステムとして読み書き可能な形式でマウン +トする。 .IP 4. .\"O If the indicated normal root file system is also the initial .\"O root file-system (e.g. .\"O .IR /dev/ram0 ) .\"O then the kernel skips to the last step for the usual boot sequence. -»Ø¼¨¤µ¤ì¤¿¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬½é´ü¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -(Î㤨¤Ð +指示されたルートファイルシステムが初期ルートファイルシステム +(例えば .IR /dev/ram0 ) -¤ÈƱ°ì¤Î¾ì¹ç¤Ï¡¢¥«¡¼¥Í¥ë¤ÏÉáÄ̤Υ֡¼¥È¥·¡¼¥±¥ó¥¹¤Î¤¿¤á¤ÎºÇ¸å¤Î¥¹¥Æ¥Ã¥×¤ò -¾Êά¤¹¤ë¡£ +と同一の場合は、カーネルは普通のブートシーケンスのための最後のステップを +省略する。 .IP 5. .\"O If the executable file .\"O .IR /linuxrc @@ -202,13 +202,13 @@ Linux .\"O .I /linuxrc .\"O can be any valid executable, including a shell script.) .I /linuxrc -¤È¤¤¤¦¼Â¹Ô²Äǽ¤Ê¥Õ¥¡¥¤¥ë¤¬½é´ü¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ì¤Ð¡¢ +という実行可能なファイルが初期ルートファイルシステムに存在すれば、 .I /linuxrc -¤ò UID 0 (¤¹¤Ê¤ï¤Á¡¢root) ¤Î¸¢¸Â¤Ç¼Â¹Ô¤¹¤ë¡£ +を UID 0 (すなわち、root) の権限で実行する。 .RI ( /linuxrc -¥Õ¥¡¥¤¥ë¤Ï¼Â¹Ô²Äǽ¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ファイルは実行可能パーミッションが与えられていなければならない。 .I /linuxrc -¤ÏÀµÅö¤Ê¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ç¤¢¤ì¤Ð¤è¤¯¡¢¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤Ç¤â¹½¤ï¤Ê¤¤¡£) +は正当な実行ファイルであればよく、シェルスクリプトでも構わない。) .IP 6. .\"O If .\"O .I /linuxrc @@ -222,15 +222,15 @@ Linux .\"O .BR UNSPECIFIED . .\"O See the NOTES section for the current kernel behavior.) .I /linuxrc -¤¬¼Â¹Ô¤µ¤ì¤Ê¤¤¡¢¤Þ¤¿¤Ï¡¢ +が実行されない、または、 .I /linuxrc -¤Î¼Â¹Ô¤¬½ªÎ»¤·¤¿»þ¤Ï¡¢Ä̾ï»þ¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¥Þ¥¦¥ó¥È¤µ¤ì¤ë¡£ +の実行が終了した時は、通常時ルートファイルシステムがマウントされる。 .RI ( /linuxrc -¤ò½ªÎ»¤·¤¿»þ¡¢²¿¤é¤«¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬½é´ü¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ë -¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Î¥«¡¼¥Í¥ë¤ÎÆ°ºî¤Ï -\fB·è¤á¤é¤ì¤Æ¤¤¤Ê¤¤ (ÉÔÄê¤Ç¤¢¤ë)\fR¡£ -¸½ºß¤Î¥«¡¼¥Í¥ë¤¬¤É¤Î¤è¤¦¤ËÆ°ºî¤¹¤ë¤«¤Ï¡¢ -¡ÖÃí°Õ¡×¤Î¥»¥¯¥·¥ç¥ó¤ò»²¾È¤Î¤³¤È¡£) +を終了した時、何らかのファイルシステムが初期ルートファイルシステム上に +マウントされている場合のカーネルの動作は +\fB決められていない (不定である)\fR。 +現在のカーネルがどのように動作するかは、 +「注意」のセクションを参照のこと。) .IP 7. .\"O If the normal root file system has a directory .\"O .IR /initrd , @@ -262,57 +262,57 @@ Linux .\"O \"O exits, the behavior of the kernel is .\"O .BR UNSPECIFIED . .\"O See the NOTES section for the current kernel behavior.) -Ä̾ï»þ¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë -¥Ç¥£¥ì¥¯¥È¥ê +通常時ルートファイルシステムに +ディレクトリ .I /initrd -¤¬¤¢¤ì¤Ð¡¢ +があれば、 .I /dev/ram0 -¥Ç¥Ð¥¤¥¹¤Ï +デバイスは .I / -¤«¤é +から .I /initrd -¤Ë°ÜÆ°¤µ¤ì¤ë¡£ +に移動される。 .I /initrd -¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¡¢ +ディレクトリが存在しない場合は、 .I /dev/ram0 -¤Ï¥¢¥ó¥Þ¥¦¥ó¥È¤µ¤ì¤ë¡£ +はアンマウントされる。 .RI ( / -¤¬ +が .I /initrd -¤Ë°ÜÆ°¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ +に移動された場合には、 .I /dev/ram0 -¤Ï¥¢¥ó¥Þ¥¦¥ó¥È¤µ¤ì¤º¡¢¤½¤Î·ë²Ì¡¢ +はアンマウントされず、その結果、 .I /dev/ram0 -¤ÇÁö¤ê»Ï¤á¤¿¥×¥í¥»¥¹¤Ï¤½¤Î¤Þ¤Þ»Ä¤ë»ö¤¬¤Ç¤­¤ë¡£ -¤â¤·¡¢ +で走り始めたプロセスはそのまま残る事ができる。 +もし、 .I /initrd -¥Ç¥£¥ì¥¯¥È¥ê¤¬Ä̾ï»þ¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¸ºß¤»¤º¡¢ +ディレクトリが通常時ルートファイルシステムに存在せず、 .I /linuxrc -¤¬½ªÎ»¤·¤¿»þ¤Ë +が終了した時に .I /dev/ram0 -¾å¤Ç¼Â¹Ô¤µ¤ì¤¿¡¢¤Ê¤ó¤é¤«¤Î¥×¥í¥»¥¹¤¬Áö¤ê³¤±¤Æ¤¤¤¿¾ì¹ç¤Î -¥«¡¼¥Í¥ë¤ÎÆ°ºî¤Ï -.BR "·è¤á¤é¤ì¤Æ¤¤¤Ê¤¤ (ÉÔÄê¤Ç¤¢¤ë)" ¡£ -¸½ºß¤Î¥«¡¼¥Í¥ë¤¬¡¢¤³¤Î»þ¤É¤Î¤è¤¦¤ÊÆ°ºî¤ò¤¹¤ë¤«¤Ë¤Ä¤¤¤Æ¤Ï¡¢ -¡ÖÃí°Õ¡×¤ò»²¾È¤Î¤³¤È¡£) +上で実行された、なんらかのプロセスが走り続けていた場合の +カーネルの動作は +.BR "決められていない (不定である)" 。 +現在のカーネルが、この時どのような動作をするかについては、 +「注意」を参照のこと。) .IP 8. .\"O The usual boot sequence (e.g., invocation of .\"O .IR /sbin/init ) .\"O is performed on the normal root file system. -ÉáÄ̤Υ֡¼¥È¥·¡¼¥±¥ó¥¹ (Î㤨¤Ð¡¢ +普通のブートシーケンス (例えば、 .I /sbin/init -¤Îµ¯Æ°) ¤¬Ä̾ï»þ¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ç¹Ô¤ï¤ì¤ë¡£ +の起動) が通常時ルートファイルシステム上で行われる。 .\" .\" .\" .\"O .SS Options -.SS ¥ª¥×¥·¥ç¥ó +.SS オプション .\"O The following boot loader options, when used with .\"O .BR initrd , .\"O affect the kernel's boot-up operation: .B initrd -¤òÍѤ¤¤ë¾ì¹ç¤Ë¡¢¥«¡¼¥Í¥ë¤Î¥Ö¡¼¥È¥¢¥Ã¥×Áàºî¤Ë±Æ¶Á¤òÍ¿¤¨¤ë -¥Ö¡¼¥È¥í¡¼¥À¡¦¥ª¥×¥·¥ç¥ó¤Ï¼¡¤Î¤è¤¦¤Ê¤â¤Î¤¬¤¢¤ë¡¢ +を用いる場合に、カーネルのブートアップ操作に影響を与える +ブートローダ・オプションは次のようなものがある、 .TP .\"O .BI initrd= "filename" .\"O Specifies the file to load as the contents of @@ -330,17 +330,17 @@ Linux .\"O option will typically be a gzipped file-system image. .BI initrd= "filename" .I /dev/initrd -¤ÎÆâÍƤȤ·¤Æ¥í¡¼¥É¤¹¤ë¥Õ¥¡¥¤¥ë¤ò»ØÄꤹ¤ë¡£ +の内容としてロードするファイルを指定する。 .B LOADLIN -¤Ç¤Ï¡¢¤³¤ì¤Ï¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë¡£ +では、これはコマンドラインオプションである。 .B LILO -¤Ç¤Ï¡¢ +では、 .B LILO -¤ÎÀßÄê¥Õ¥¡¥¤¥ë +の設定ファイル .I /etc/lilo.config -Æâ¤Ç¥³¥Þ¥ó¥É¤È¤·¤Æ»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤵ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ï¡¢Â¿¤¯¤Î¾ì¹ç gzip °µ½Ì¤µ¤ì¤¿ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¤¥á¡¼¥¸¤Ç¤¢¤ë¡£ +内でコマンドとして使用しなければならない。 +このオプションで指定されるファイルは、多くの場合 gzip 圧縮された +ファイルシステムイメージである。 .TP .\"O .I noinitrd .\"O This boot option disables the two-phase boot-up operation. @@ -357,21 +357,21 @@ Linux .\"O .I /dev/initrd .\"O is read-only and can be read only one time after system startup. .B noinitrd -¤³¤Îµ¯Æ°¥ª¥×¥·¥ç¥ó¤ÏÆóÃʳ¬¤Îµ¯Æ°Áàºî¤ò̵¸ú¤Ë¤¹¤ë¡£ -¥«¡¼¥Í¥ë¤Ï +この起動オプションは二段階の起動操作を無効にする。 +カーネルは .I /dev/initrd -¤¬½é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤ÈƱÍͤΡ¢Ä̾ï¤Î¥Ö¡¼¥È¥¢¥Ã¥×Æ°ºî¤ò¹Ô¤¦¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤È¡¢¥Ö¡¼¥È¥í¡¼¥À¤Ë¤è¤Ã¤Æ¥á¥â¥ê¾å¤Ë¥í¡¼¥É¤µ¤ì¤¿ +が初期化されていない場合と同様の、通常のブートアップ動作を行う。 +このオプションを用いると、ブートローダによってメモリ上にロードされた .I /dev/initrd -¤ÎÆâÍƤϤ½¤Î¤Þ¤ÞÊݸ¤µ¤ì¤ë¡£ -¤Ä¤Þ¤ê¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢ +の内容はそのまま保存される。 +つまり、このオプションを用いることによって、 .I /dev/initrd -¤ÎÆâÍƤò (¥Ö¡¼¥È°Ê³°¤ÎÌÜŪ¤Ë) ÍøÍѤ¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¡£¤Þ¤¿¡¢¤½¤ÎÆâÍÆ¤Ï -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¤¥á¡¼¥¸¤Ë¸ÂÄꤵ¤ì¤Ê¤¤¡£ -¤·¤«¤·¡¢ +の内容を (ブート以外の目的に) 利用することが可能になる。また、その内容は +ファイルシステムイメージに限定されない。 +しかし、 .I /dev/initrd -¥Ç¥Ð¥¤¥¹¤ÏÆɤߤÀ¤·¤Î¤ß²Äǽ¤Ç¤¢¤ê¡¢¥·¥¹¥Æ¥à¤Îµ¯Æ°¸å 1 ÅÙ¤·¤«Æɤ߽Ф¹»ö -¤¬¤Ç¤­¤Ê¤¤¡£ +デバイスは読みだしのみ可能であり、システムの起動後 1 度しか読み出す事 +ができない。 .TP .\"O .BI root= "device-name" .\"O Specifies the device to be used as the normal root file system. @@ -385,22 +385,22 @@ Linux .\"O The device specified by the this option must be a mountable .\"O device having a suitable root file-system. .BI root= "device-name" -Ä̾ï»þ¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤È¤·¤Æ»È¤ï¤ì¤ë¥Ç¥Ð¥¤¥¹¤ò»ØÄꤹ¤ë¡£ +通常時ルートファイルシステムとして使われるデバイスを指定する。 .B LOADLIN -¤Ç¤Ï¡¢¤³¤ì¤Ï¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë¡£ +では、これはコマンドラインオプションである。 .B LILO -¤Ç¤Ï¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¡¢¤Þ¤¿¤Ï¡¢ +ではコマンドラインオプション、または、 .B LILO -¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë +の設定ファイルである .I /etc/lilo.config -¤Î¥ª¥×¥·¥ç¥ó¥é¥¤¥ó¤È¤·¤Æ»ÈÍѤ¹¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤵ¤ì¤ë¥Ç¥Ð¥¤¥¹¤Ï¡¢Å¬Àڤʥ롼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤È¤· -¤Æ¥Þ¥¦¥ó¥È²Äǽ¤Ê¥Ç¥Ð¥¤¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +のオプションラインとして使用する。 +このオプションで指定されるデバイスは、適切なルートファイルシステムとし +てマウント可能なデバイスでなければならない。 .\" .\" .\" .\"O .SS "Changing the Normal Root File System" -.SS Ä̾ï»þ¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÊѹ¹ +.SS 通常時ルートファイルシステムの変更 .\"O By default, .\"O the kernel's settings .\"O (e.g., set in the kernel file with @@ -420,44 +420,44 @@ Linux .\"O and .\"O .BR LOADLIN .\"O documentation. -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥«¡¼¥Í¥ë¤ÎÀßÄê -(Î㤨¤Ð¡¢ +デフォルトでは、カーネルの設定 +(例えば、 .BR rdev (8) -¤òÍѤ¤¤Æ¥«¡¼¥Í¥ë¥Õ¥¡¥¤¥ëÆâ¤Ë¥»¥Ã¥È¤µ¤ì¤¿¤â¤Î¡¢¤Þ¤¿¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¥«¡¼ -¥Í¥ë¥Õ¥¡¥¤¥ëÆâ¤ËËä¤á¹þ¤Þ¤ì¤¿¤â¤Î)¡¢ -¤Þ¤¿¤Ï¡¢¥Ö¡¼¥È¥í¡¼¥À¤Î¥ª¥×¥·¥ç¥óÀßÄê¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿¤â¤Î¤¬Ä̾ï»þ¥ë¡¼ -¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤È¤·¤Æ»È¤ï¤ì¤ë¡£ -NFS ¥Þ¥¦¥ó¥È¤µ¤ì¤¿Ä̾ï»þ¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òÍøÍѤ¹¤ë¾ì¹ç¡¢ +を用いてカーネルファイル内にセットされたもの、または、コンパイル時にカー +ネルファイル内に埋め込まれたもの)、 +または、ブートローダのオプション設定によって指定されたものが通常時ルー +トファイルシステムとして使われる。 +NFS マウントされた通常時ルートファイルシステムを利用する場合、 .B nfs_root_name -¤È +と .B nfs_root_addrs -¥Ö¡¼¥È¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ NFS ¤ÎÀßÄê¤òÍ¿¤¨¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -NFS ¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥ë¡¼¥È (¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à) ¤Ë¤Ä¤¤¤Æ¤Î -¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï¡¢¥«¡¼¥Í¥ë¤Î¥É¥­¥å¥á¥ó¥È¥Õ¥¡¥¤¥ë +ブートオプションを使って NFS の設定を与えなければならない。 +NFS マウントされたルート (ファイルシステム) についての +より詳しい情報は、カーネルのドキュメントファイル .B Documentation/filesystems/nfsroot.txt -¤ò»²¾È¤Î¤³¤È¡£ -¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÀßÄê¤Ë¤Ä¤¤¤Æ¤Î¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï¡¢ +を参照のこと。 +ルートファイルシステムの設定についてのより詳しい情報は、 .B LILO -¤È +と .B LOADLIN -¤Î¥É¥­¥å¥á¥ó¥È¤â»²¾È¤Î¤³¤È¡£ +のドキュメントも参照のこと。 .PP .\"O It is also possible for the .\"O .I /linuxrc .\"O executable to change the normal root device. -¤Þ¤¿¡¢ +また、 .I /linuxrc -¤òÍѤ¤¤ë»ö¤Ë¤è¤Ã¤Æ¤âÄ̾ï»þ¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥Ç¥Ð¥¤¥¹¤òÊѹ¹¤¹¤ë¤³¤È -¤¬¤Ç¤­¤ë¡£ +を用いる事によっても通常時ルートファイルシステムデバイスを変更すること +ができる。 .\"O For .\"O .I /linuxrc .\"O to change the normal root device, .\"O .IR /proc .\"O must be mounted. .I /linuxrc -¤òÍѤ¤¤Æ¡¢Ä̾ï»þ¥ë¡¼¥È¥Ç¥Ð¥¤¥¹¤òÊѹ¹¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ +を用いて、通常時ルートデバイスを変更するためには、 .I /proc -¤¬¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +がマウントされていなければならない。 .\"O After mounting .\"O .IR /proc , .\"O .I /linuxrc @@ -467,22 +467,22 @@ NFS .\"O and .\"O .IR /proc/sys/kernel/nfs-root-addrs . .I /proc -¤ò¥Þ¥¦¥ó¥È¤·¤¿¸å¤Ç¡¢ +をマウントした後で、 .I /linuxrc -¤Ï proc ¥Õ¥¡¥¤¥ë +は proc ファイル .IR /proc/sys/kernel/real-root-dev , .IR /proc/sys/kernel/nfs-root-name , .I /proc/sys/kernel/nfs-root-addrs -¤Ë½ñ¤­¹þ¤ß¤ò¹Ô¤¤¡¢Ä̾ï»þ¥ë¡¼¥È¥Ç¥Ð¥¤¥¹¤òÊѹ¹¤¹¤ë¡£ +に書き込みを行い、通常時ルートデバイスを変更する。 .\"O For a physical root device, the root device is changed by having .\"O .I /linuxrc .\"O write the new root file system device number into .\"O .IR /proc/sys/kernel/real-root-dev . -(NFS ¤Ç¤Ï¤Ê¤¤) ʪÍýŪ¤Ê¥ë¡¼¥È¥Ç¥Ð¥¤¥¹¤Î¾ì¹ç¡¢ +(NFS ではない) 物理的なルートデバイスの場合、 .I /linuxrc -¤¬¿·¤·¤¤¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤ò +が新しいルートファイルシステムのデバイス番号を .I /proc/sys/kernel/real-root-dev -¤Ë½ñ¤­¹þ¤à¤³¤È¤Ç¡¢¥ë¡¼¥È¥Ç¥Ð¥¤¥¹¤¬Êѹ¹¤µ¤ì¤ë¡£ +に書き込むことで、ルートデバイスが変更される。 .\"O For an NFS root file system, the root device is changed by having .\"O .I /linuxrc .\"O write the NFS setting into files @@ -491,22 +491,22 @@ NFS .\"O .I /proc/sys/kernel/nfs-root-addrs .\"O and then writing 0xff (e.g., the pseudo-NFS-device number) into file .\"O .IR /proc/sys/kernel/real-root-dev . -NFS ¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¾ì¹ç¡¢ +NFS ルートファイルシステムの場合、 .I /linuxrc -¤¬ NFS ¤ÎÀßÄê¤ò +が NFS の設定を .I /proc/sys/kernel/nfs-root-name -¤È +と .I /proc/sys/kernel/nfs-root-addrs -¤Ë½ñ¤­¹þ¤ß¡¢¤½¤ì¤«¤é +に書き込み、それから .I /proc/sys/kernel/real-root-dev -¤Ë (µ¿»÷ NFS ¥Ç¥Ð¥¤¥¹¥Ê¥ó¥Ð¡¼¤Ç¤¢¤ë) 0xff ¤ò½ñ¤­¹þ¤à¤³¤È¤Ç¡¢ -¥ë¡¼¥È¥Ç¥Ð¥¤¥¹¤¬Êѹ¹¤µ¤ì¤ë¡£ +に (疑似 NFS デバイスナンバーである) 0xff を書き込むことで、 +ルートデバイスが変更される。 .\"O For example, the following shell command line would change .\"O the normal root device to .\"O .IR /dev/hdb1 : -Î㤨¤Ð¡¢¼¡¤Î¥·¥§¥ë¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ë¤è¤ê¡¢Ä̾ï»þ¥ë¡¼¥È¥Ç¥Ð¥¤¥¹¤ò +例えば、次のシェルコマンドラインにより、通常時ルートデバイスを .I /dev/hdb1 -¤ËÊѹ¹¤Ç¤­¤ë¤À¤í¤¦: +に変更できるだろう: .nf echo 0x365 >/proc/sys/kernel/real-root-dev @@ -517,13 +517,13 @@ NFS .\"O .I /var/nfsroot .\"O on a local networked NFS server with IP number 193.8.232.7 for a system with .\"O IP number 193.8.232.2 and named "idefix": -¤Þ¤¿¡¢NFS ¤Î¾ì¹ç¡¢¼¡¤Î¤è¤¦¤Ê¥·¥§¥ë¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ë¤è¤ê¡¢ -193.8.232.2 ¤È¤¤¤¦ IP ¥¢¥É¥ì¥¹¤ò»ý¤Ä "idefix" ¤È¤¤¤¦Ì¾Á°¤Î -¥·¥¹¥Æ¥à¤Î¡¢Ä̾ï»þ¥ë¡¼¥È¥Ç¥Ð¥¤¥¹¤È¤·¤Æ¡¢ -¥í¡¼¥«¥ë¥Í¥Ã¥È¥ï¡¼¥¯¤Î 193.8.232.2 ¤È¤¤¤¦ IP ¥¢¥É¥ì¥¹¤ò»ý¤Ä NFS ¥µ¡¼¥Ð¤Î -NFS ¥Ç¥£¥ì¥¯¥È¥ê +また、NFS の場合、次のようなシェルコマンドラインにより、 +193.8.232.2 という IP アドレスを持つ "idefix" という名前の +システムの、通常時ルートデバイスとして、 +ローカルネットワークの 193.8.232.2 という IP アドレスを持つ NFS サーバの +NFS ディレクトリ .I /var/nfsroot -¤ò¥Þ¥¦¥ó¥È¤¹¤ë¤è¤¦¤ËÊѹ¹¤Ç¤­¤ë: +をマウントするように変更できる: .nf echo /var/nfsroot >/proc/sys/kernel/nfs-root-name @@ -533,13 +533,13 @@ NFS .fi .\"O .BR Note : -.BR Ãí°Õ : +.BR 注意 : .\"O The use of .\"O .I /proc/sys/kernel/real-root-dev .\"O to change the root file system is obsolete. -¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òÊѹ¹¤¹¤ë¤¿¤á¤Ë +ルートファイルシステムを変更するために .I /proc/sys/kernel/real-root-dev -¤ò»È¤¦¤Î¤Ï°ÊÁ°¤ÎÊýË¡¤Ç¤¢¤ë¡£ +を使うのは以前の方法である。 .\"O See the kernel source file .\"O .I Documentation/initrd.txt .\"O as well as @@ -548,29 +548,29 @@ NFS .\"O .BR pivot_root (8) .\"O for information on the modern method of changing the root file system. .\"O .\" FIXME the manual page should describe the pivot_root mechanism. -¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òÊѹ¹¤¹¤ë¿·¤·¤¤ÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï¡¢ -¥«¡¼¥Í¥ë¥½¡¼¥¹¤Ë´Þ¤Þ¤ì¤ë +ルートファイルシステムを変更する新しい方法についての情報は、 +カーネルソースに含まれる .I Documentation/initrd.txt -¥Õ¥¡¥¤¥ë¤ä¡¢ +ファイルや、 .BR pivot_root (2) -¤ä +や .BR pivot_root (8) -¤ò»²¾È¤·¤Æ¤Û¤·¤¤¡£ -.\" FIXME ¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç pivot_root ¤Î»ÅÁȤߤòÀâÌÀ¤¹¤ëɬÍפ¬¤¢¤ë¡£ +を参照してほしい。 +.\" FIXME マニュアルページで pivot_root の仕組みを説明する必要がある。 .\" .\" .\" .\"O .SS Usage -.SS »È¤¤Êý +.SS 使い方 .\"O The main motivation for implementing .\"O .B initrd .\"O was to allow for modular kernel configuration at system installation. .B initrd -¤¬¼ÂÁõ¤µ¤ì¤¿¼ç¤ÊÌÜŪ¤Ï¡¢¥·¥¹¥Æ¥à¥¤¥ó¥¹¥È¡¼¥ë»þ¤Ë¡¢¥â¥¸¥å¡¼¥ë²½¤µ¤ì¤¿¥«¡¼ -¥Í¥ë¤ÎÀßÄê¤ò²Äǽ¤Ë¤¹¤ë¤³¤È¤Ç¤¢¤Ã¤¿¡£ +が実装された主な目的は、システムインストール時に、モジュール化されたカー +ネルの設定を可能にすることであった。 .PP .\"O A possible system installation scenario is as follows: -¼¡¤Î¤è¤¦¤Êή¤ì¤Î¥·¥¹¥Æ¥à¥¤¥ó¥¹¥È¡¼¥ë¤¬²Äǽ¤Ë¤Ê¤ë: +次のような流れのシステムインストールが可能になる: .IP 1. 3 .\"O The loader program boots from floppy or other media with a minimal kernel .\"O (e.g., support for @@ -579,14 +579,14 @@ NFS .\"O and the ext2 file-system) and loads .\"O .IR /dev/initrd .\"O with a gzipped version of the initial file-system. -¥í¡¼¥À¥×¥í¥°¥é¥à¤Ï¡¢¥Õ¥í¥Ã¥Ô¡¼¤ä¤½¤Î¾¤Î¥á¥Ç¥£¥¢¤«¤é¡¢ -ºÇ¾®¸Â¤Î¥«¡¼¥Í¥ë (Î㤨¤Ð¡¢ +ローダプログラムは、フロッピーやその他のメディアから、 +最小限のカーネル (例えば、 .IR /dev/ram , .IR /dev/initrd , -ext2 ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¤ß¤Î¥µ¥Ý¡¼¥È¤·¤¿¥«¡¼¥Í¥ë) ¤ò¥Ö¡¼¥È¤·¡¢ -gzip °µ½Ì¤µ¤ì¤¿½é´ü¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¤¥á¡¼¥¸¤ò +ext2 ファイルシステムのみのサポートしたカーネル) をブートし、 +gzip 圧縮された初期ファイルシステムイメージを .I /dev/initrd -¤Ë¥í¡¼¥É¤¹¤ë¡£ +にロードする。 .IP 2. .\"O The executable .\"O .I /linuxrc @@ -595,30 +595,30 @@ gzip .\"O distribution media (e.g., CD-ROM, network, tape, ...). .\"O This can be done by asking the user, by auto-probing, .\"O or by using a hybrid approach. -¼Â¹Ô¥Õ¥¡¥¤¥ë +実行ファイル .I /linuxrc -¤Ï¡¢(1) Ä̾ï»þ¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Þ¥¦¥ó¥È¤Ë²¿¤¬É¬Íפ« -(¤¹¤Ê¤ï¤Á¡¢¥Ç¥Ð¥¤¥¹¥¿¥¤¥×¡¢¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à)¡¢ -(2) ÇÛÉÛ¥á¥Ç¥£¥¢¤Ë²¿¤¬É¬Íפ« (Î㤨¤Ð¡¢CD-ROM, ¥Í¥Ã¥È¥ï¡¼¥¯¡¢¥Æ¡¼¥×¤Ê¤É) -¤ò·èÄꤹ¤ë¡£·èÄê¤Ï¡¢¥æ¡¼¥¶¤Ø¤ÎÌ䤤¹ç¤ï¤»¡¢¼«Æ°¸¡½Ð¡¢¤¢¤ë¤¤¤Ï¤½¤Îξ¼Ô¤Î -ÊýË¡¤òÁȤ߹ç¤ï¤»¤Æ¹Ô¤ï¤ì¤ë¡£ +は、(1) 通常時ルートファイルシステムのマウントに何が必要か +(すなわち、デバイスタイプ、デバイスドライバ、ファイルシステム)、 +(2) 配布メディアに何が必要か (例えば、CD-ROM, ネットワーク、テープなど) +を決定する。決定は、ユーザへの問い合わせ、自動検出、あるいはその両者の +方法を組み合わせて行われる。 .IP 3. .\"O The executable .\"O .I /linuxrc .\"O loads the necessary modules from the initial root file-system. -¼Â¹Ô¥Õ¥¡¥¤¥ë +実行ファイル .I /linuxrc -¤Ï¡¢½é´ü¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤«¤éɬÍפʥ⥸¥å¡¼¥ë¤ò¥í¡¼¥É¤¹¤ë¡£ +は、初期ルートファイルシステムから必要なモジュールをロードする。 .IP 4. .\"O The executable .\"O .I /linuxrc .\"O creates and populates the root file system. (At this stage the normal .\"O root file system does not have to be a .\"O completed system yet.) -¼Â¹Ô¥Õ¥¡¥¤¥ë +実行ファイル .I /linuxrc -¤Ï¡¢¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òºîÀ®¤·¡¢ÇÛÃÖ¤¹¤ë (¤³¤ÎÃʳ¬¤Ç¤Ï¡¢Ä̾ï»þ¥ë¡¼ -¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï´°Á´¤Ê¥·¥¹¥Æ¥à¤Ç¤¢¤ëɬÍפϤʤ¤)¡£ +は、ルートファイルシステムを作成し、配置する (この段階では、通常時ルー +トファイルシステムは完全なシステムである必要はない)。 .IP 5. .\"O The executable .\"O .IR /linuxrc @@ -628,24 +628,24 @@ gzip .\"O .IR /proc , .\"O the normal root file system and any other file .\"O systems it has mounted, and then terminates. -¼Â¹Ô¥Õ¥¡¥¤¥ë +実行ファイル .I /linuxrc -¤Ï¡¢ +は、 .I /proc/sys/kernel/real-root-dev -¤òÀßÄꤷ¡¢ -.IR /proc "¡¢" -¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ëÄ̾ï»þ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àµÚ¤Ó¤½¤Î¾¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -¤ò¥¢¥ó¥Þ¥¦¥ó¥È¤·¡¢ -¼Â¹Ô¤ò½ªÎ»¤¹¤ë¡£ +を設定し、 +.IR /proc "、" +マウントされている通常時ファイルシステム及びその他のファイルシステム +をアンマウントし、 +実行を終了する。 .IP 6. .\"O The kernel then mounts the normal root file system. -¼¡¤Ë¡¢¥«¡¼¥Í¥ë¤Ï¡¢Ä̾ï»þ¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥Þ¥¦¥ó¥È¤¹¤ë¡£ +次に、カーネルは、通常時ルートファイルシステムをマウントする。 .IP 7. .\"O Now that the file system is accessible and intact, .\"O the boot loader can be installed. -¤³¤ÎÃʳ¬¤Ç¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÏÁ´¤¯Êѹ¹¤¬¹Ô¤ï¤ì¤Æ¤¤¤Ê¤¤¾õÂ֤ǡ¢ -¥¢¥¯¥»¥¹¤Ç¤­¤ë¾õÂ֤ˤʤ롣 -¤Þ¤¿¡¢¥Ö¡¼¥È¥í¡¼¥À¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +この段階で、ファイルシステムは全く変更が行われていない状態で、 +アクセスできる状態になる。 +また、ブートローダをインストールすることができる。 .IP 8. .\"O The boot loader is configured to load into .\"O .I /dev/initrd @@ -655,30 +655,30 @@ gzip .\"O can be modified, then unmounted, and finally, the image is written from .\"O .I /dev/ram0 .\"O to a file.) -¥Ö¡¼¥È¥í¡¼¥À¤òÀßÄꤷ¡¢¥·¥¹¥Æ¥àµ¯Æ°»þ¤Ë»ÈÍѤµ¤ì¤ë¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¤Î¥»¥Ã -¥È¤ò´Þ¤ó¤À¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò +ブートローダを設定し、システム起動時に使用されるカーネルモジュールのセッ +トを含んだファイルシステムを .I /dev/initrd -¤Ë¥í¡¼¥É¤¹¤ë (Î㤨¤Ð¡¢ +にロードする (例えば、 .I /dev/ram0 -¥Ç¥Ð¥¤¥¹¤ÎÆâÍƤò½¤Àµ¤·¡¢¥¢¥ó¥Þ¥¦¥ó¥È¤¹¤ë¡£ºÇ¸å¤Ë¡¢ +デバイスの内容を修正し、アンマウントする。最後に、 .I /dev/ram0 -¤Î¥¤¥á¡¼¥¸¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤¹)¡£ +のイメージをファイルに書き出す)。 .IP 9. .\"O The system is now bootable and additional installation tasks can be .\"O performed. -¤³¤ì¤Ç¡¢¥·¥¹¥Æ¥à¤¬¥Ö¡¼¥È²Äǽ¤Ë¤Ê¤ë¡£¤³¤Î¸å¡¢¤µ¤é¤Ë¤½¤Î¾¤Î¥¤¥ó¥¹¥È¡¼¥ë -¤Îºî¶È¤ò¼Â¹Ô¤Ç¤­¤ë¡£ +これで、システムがブート可能になる。この後、さらにその他のインストール +の作業を実行できる。 .PP .\"O The key role of .\"O .I /dev/initrd .\"O in the above is to reuse the configuration data during normal system operation .\"O without requiring initial kernel selection, a large generic kernel or, .\"O recompiling the kernel. -¾åµ­¤ÎÆ°ºî¤Ç¤Î +上記の動作での .I /dev/initrd -¤ÎÌò³ä¤Î¥­¡¼¥Ý¥¤¥ó¥È¤Ï¡¢½é´ü¥«¡¼¥Í¥ë¤ÎÁªÂò¤äÂ礭¤Ê¥¸¥§¥Í¥ê¥Ã¥¯¥«¡¼¥Í¥ë¡¢ -¥«¡¼¥Í¥ë¤ÎºÆ¹½Ãۤʤ·¤Ë¡¢Ä̾ï¤Î¥·¥¹¥Æ¥àÁàºî¤ÇºÆÍøÍѲÄǽ¤ÊÀßÄê¥Ç¡¼¥¿¤òÍø -ÍѤ¹¤ë¤³¤È¤Ë¤¢¤ë¡£ +の役割のキーポイントは、初期カーネルの選択や大きなジェネリックカーネル、 +カーネルの再構築なしに、通常のシステム操作で再利用可能な設定データを利 +用することにある。 .PP .\"O A second scenario is for installations where Linux runs on systems with .\"O different hardware configurations in a single administrative network. @@ -692,18 +692,18 @@ gzip .\"O file or a file executed by .\"O .I /linuxrc .\"O would be different. -2 ÈÖÌܤΥ±¡¼¥¹¤Ï¡¢°ì¤Ä¤Î´ÉÍý¾å¤Î¥Í¥Ã¥È¥ï¡¼¥¯¤Ë¤ª¤¤¤Æ¡¢°Û¤Ê¤ëÀßÄê¤Î¥Ï¡¼ -¥É¥¦¥§¥¢¤Î¥·¥¹¥Æ¥à¾å¤Ç Linux ¤òÆ°ºî¤µ¤»¤ë¤¿¤á¤Î¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤¦¾ì¹ç -¤Ç¤¢¤ë¡£ -¤³¤Î¤è¤¦¤Ê¥±¡¼¥¹¤Î¾ì¹ç¡¢¤´¤¯¾®¿ô¤Î¥«¡¼¥Í¥ë¤Î¥»¥Ã¥È (ÍýÁÛŪ¤Ë¤Ï¤¿¤Ã¤¿°ì -¤Ä¤Î¥«¡¼¥Í¥ë) ¤Î¤ß¤òÍøÍѤ·¡¢¥·¥¹¥Æ¥à¸ÇÍ­¤ÎÀßÄê¾ðÊó¤Ï²Äǽ¤Ê¸Â¤ê¾®¤µ¤¯¤¹ -¤ë¤³¤È¤¬Ë¾¤Þ¤·¤¤¤Ç¤¢¤í¤¦¡£ -¤³¤Î¾ì¹ç¡¢Á´¤Æ¤ÎɬÍפʥ⥸¥å¡¼¥ë¤¬Æþ¤Ã¤¿¶¦ÄÌ¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¡£ -¤½¤·¤Æ¡¢ +2 番目のケースは、一つの管理上のネットワークにおいて、異なる設定のハー +ドウェアのシステム上で Linux を動作させるためのインストールを行う場合 +である。 +このようなケースの場合、ごく小数のカーネルのセット (理想的にはたった一 +つのカーネル) のみを利用し、システム固有の設定情報は可能な限り小さくす +ることが望ましいであろう。 +この場合、全ての必要なモジュールが入った共通ファイルを作成する。 +そして、 .I /linuxrc -¥Õ¥¡¥¤¥ë¡¢¤Þ¤¿¤Ï¡¢ +ファイル、または、 .I /linuxrc -¤«¤é¼Â¹Ô¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Î¤ß¤ò°Û¤Ê¤Ã¤¿¤â¤Î¤Ë¤·¤Æ¤ª¤¯¡£ +から実行されるファイルのみを異なったものにしておく。 .PP .\"O A third scenario is more convenient recovery disks. .\"O Because information like the location of the root file-system @@ -711,13 +711,13 @@ gzip .\"O .I /dev/initrd .\"O can use a dialog and/or auto-detection followed by a .\"O possible sanity check. -3 ÈÖÌܤΥ±¡¼¥¹¤Ï¡¢¤è¤êÊØÍø¤ÊÉüµìÍѥǥ£¥¹¥¯¤òºî¤ë¾ì¹ç¤Ç¤¢¤ë¡£ -¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î°ÌÃ֤Ȥ¤¤Ã¤¿¾ðÊó¤Ï -¥Ö¡¼¥È»þ¤ËɬÍפʤ¤¤¿¤á¡¢ +3 番目のケースは、より便利な復旧用ディスクを作る場合である。 +ルートファイルシステムのパーティションの位置といった情報は +ブート時に必要ないため、 .I /dev/initrd -¤«¤é¥í¡¼¥É¤µ¤ì¤¿¥·¥¹¥Æ¥à¤Ï¡¢ -ɬÍפÊÀµ¾ïÀ­¥Á¥§¥Ã¥¯¤ò¹Ô¤Ã¤¿¸å¤Ç¡¢¥æ¡¼¥¶¤Ø¤ÎÌ䤤¹ç¤ï¤»¤ä¼«Æ°¸¡½Ð -(¤â¤·¤¯¤Ï¤½¤ÎξÊý) ¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +からロードされたシステムは、 +必要な正常性チェックを行った後で、ユーザへの問い合わせや自動検出 +(もしくはその両方) を行うことができるようになる。 .PP .\"O Last but not least, Linux distributions on CD-ROM may use .\"O .B initrd @@ -732,25 +732,25 @@ gzip .\"O boot floppy and then bootstrap a bigger RAM disk via .\"O .IR /dev/initrd .\"O from the CD-ROM. -(¾¤Ë¤â¤¿¤¯¤µ¤óÎ㤬¤¢¤ë¤À¤í¤¦¤¬) ºÇ¸å¤ÎÎã¤È¤·¤Æ¤Ï¡¢ +(他にもたくさん例があるだろうが) 最後の例としては、 .B initrd -¤òÍøÍѤ¹¤ë¤È¡¢CD-ROM ¾å¤Î Linux ¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤ò -¤è¤ê´Êñ¤Ë CD-ROM ¤«¤é¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤À¤í¤¦¡£ -¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ï¡¢ +を利用すると、CD-ROM 上の Linux ディストリビューションを +より簡単に CD-ROM からインストールすることができるだろう。 +ディストリビューションは、 .B LOADLIN -¤ò»È¤Ã¤Æ¡¢¥Õ¥í¥Ã¥Ô¡¼¤òÁ´¤¯ÍøÍѤ»¤º¤Ë CD-ROM ¤«¤é +を使って、フロッピーを全く利用せずに CD-ROM から .I /dev/initrd -¤òľÀÜ¥í¡¼¥É¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤Þ¤¿¡¢ +を直接ロードすることができる。 +また、 .B LILO -¥Ö¡¼¥È¥Õ¥í¥Ã¥Ô¡¼¤ò»È¤Ã¤Æ¥Ö¡¼¥È¤ò¹Ô¤¤¡¢ +ブートフロッピーを使ってブートを行い、 .I /dev/initrd -¤òÄ̤·¤Æ CD-ROM ¤«¤é¤è¤êÂ礭¤Ê RAM ¥Ç¥£¥¹¥¯¤òµ¯Æ°¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +を通して CD-ROM からより大きな RAM ディスクを起動することもできる。 .\" .\" .\" .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .I /dev/initrd .br .I /dev/ram0 @@ -762,7 +762,7 @@ gzip .\" .\" .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .IP 1. 3 .\"O With the current kernel, any file systems that remain mounted when .\"O .I /dev/ram0 @@ -774,16 +774,16 @@ gzip .\"O However, the .\"O .I /proc/mounts .\"O entries are not updated. -¸½ºß¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +現在のカーネルでは、 .I /dev/ram0 -¤¬ +が .I / -¤«¤é +から .I /initrd -¤Ë°ÜÆ°¤µ¤ì¤¿ºÝ¤Ë¡¢°ÜÆ°»þ¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï¡¢ -¤½¤Î¸å¤â·Ñ³Ū¤Ë¥¢¥¯¥»¥¹²Äǽ¤Ç¤¢¤ë¡£¤·¤«¤·¡¢ +に移動された際に、移動時にマウントされていたファイルシステムは、 +その後も継続的にアクセス可能である。しかし、 .I /proc/mounts -¤Î¥¨¥ó¥È¥ê¤Ï¹¹¿·¤µ¤ì¤Ê¤¤¡£ +のエントリは更新されない。 .IP 2. .\"O With the current kernel, if directory .\"O .I /initrd @@ -801,48 +801,48 @@ gzip .\"O fully unmounted, then .\"O .I /dev/ram0 .\"O will remain in memory. -¸½ºß¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê +現在のカーネルでは、ディレクトリ .I /initrd -¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢ +が存在しない場合、 .I /dev/ram0 -¤ò²¿¤é¤«¤Î¥×¥í¥»¥¹¤¬ÍøÍѤ·¤Æ¤¤¤¿¤ê¡¢²¿¤é¤«¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ +を何らかのプロセスが利用していたり、何らかのファイルシステムが .I /dev/ram0 -¾å¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢ +上にマウントされていると、 .I /dev/ram0 -¤Ï´°Á´¤Ë¤Ï¥¢¥ó¥Þ¥¦¥ó¥È¡Ö¤µ¤ì¤Ê¤¤¡×¡£ +は完全にはアンマウント「されない」。 .I /dev/ram0 -¤¬¡¢´°Á´¤Ë¥¢¥ó¥Þ¥¦¥ó¥È¡Ö¤µ¤ì¤Ê¤±¤ì¤Ð¡×¡¢ +が、完全にアンマウント「されなければ」、 .I /dev/ram0 -¤Ï¥á¥â¥ê¾å¤Ë»Ä¤Ã¤Æ¤·¤Þ¤¦¤Ï¤º¤Ç¤¢¤ë¡£ +はメモリ上に残ってしまうはずである。 .IP 3. .\"O Users of .\"O .I /dev/initrd .\"O should not depend on the behavior give in the above notes. .\"O The behavior may change in future versions of the Linux kernel. .I /dev/initrd -¤ÎÍøÍѼԤϡ¢¾åµ­¤ÎÃí°Õ»ö¹à¤Ç½Ò¤Ù¤¿Æ°ºî¤Ë°Í¸¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤ÎÆ°ºî¤Ï Linux ¥«¡¼¥Í¥ë¤Î¾­Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤ÏÊѹ¹¤µ¤ì¤ë -¤«¤â¤·¤ì¤Ê¤¤¤«¤é¤À¡£ +の利用者は、上記の注意事項で述べた動作に依存しないようにすべきである。 +これらの動作は Linux カーネルの将来のバージョンでは変更される +かもしれないからだ。 .\" .\" .\" .\"O .\" .SH AUTHOR -.\" .SH Ãø¼Ô +.\" .SH 著者 .\"O .\" The kernel code for device .\"O .\" .BR initrd .\"O .\" was written by Werner Almesberger and .\"O .\" Hans Lermen . .\" .BR initrd -.\" ¥Ç¥Ð¥¤¥¹¤Î¤¿¤á¤Î¥«¡¼¥Í¥ë¥³¡¼¥É¤Ï Werner Almesberger -.\" ¤È Hans Lermen ¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤¿¡£ +.\" デバイスのためのカーネルコードは Werner Almesberger +.\" と Hans Lermen によって書かれた。 .\"O .\" The code for .\"O .\" .BR initrd .\"O .\" was added to the baseline Linux kernel in development version 1.3.73. .\" .BR initrd -.\" ¤Î¤¿¤á¤Î¥³¡¼¥É¤Ï¡¢³«È¯¼Ô¸þ¤±¥Ð¡¼¥¸¥ç¥ó¤Î 1.3.73 ¤Ç -.\" ¥á¥¤¥ó¤Î Linux ¥«¡¼¥Í¥ë¤ËÁȤ߹þ¤Þ¤ì¤¿¡£ +.\" のためのコードは、開発者向けバージョンの 1.3.73 で +.\" メインの Linux カーネルに組み込まれた。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chown (1), .BR mknod (1), .BR ram (4), @@ -853,6 +853,6 @@ gzip .\"O .I initrd.txt .\"O in the kernel source package, the LILO documentation, .\"O the LOADLIN documentation, the SYSLINUX documentation. -¥«¡¼¥Í¥ë¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¤Ë´Þ¤Þ¤ì¤ë¥É¥­¥å¥á¥ó¥È¥Õ¥¡¥¤¥ë -.IR initrd.txt "¡¢" -LILO ¤Î¥É¥­¥å¥á¥ó¥È¡¢LOADLIN ¤Î¥É¥­¥å¥á¥ó¥È¡¢SYSLINUX ¤Î¥É¥­¥å¥á¥ó¥È¡£ +カーネルソースパッケージに含まれるドキュメントファイル +.IR initrd.txt "、" +LILO のドキュメント、LOADLIN のドキュメント、SYSLINUX のドキュメント。 diff --git a/draft/man4/intro.4 b/draft/man4/intro.4 index a24f4b79..7bcaa9a5 100644 --- a/draft/man4/intro.4 +++ b/draft/man4/intro.4 @@ -31,30 +31,30 @@ .\" Modified Sun Jan 11 03:39:10 JST 1998 .\" by ISHIKAWA Mutsumi .\" -.\" WORD: introduction ½øʸ +.\" WORD: introduction 序文 .TH INTRO 4 2007-10-23 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O intro \- Introduction to special files -intro \- ¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤Ë´Ø¤¹¤ë½øʸ +intro \- スペシャルファイルに関する序文 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Section 4 of the manual describes special files (devices). -¥Þ¥Ë¥å¥¢¥ë¤Î 4 ¾Ï¤Ï¡¢¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë (¥Ç¥Ð¥¤¥¹) ¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤ë¡£ +マニュアルの 4 章は、スペシャルファイル (デバイス) について説明している。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .\"O /dev/* \(em device files -/dev/* \(em ¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë +/dev/* \(em デバイスファイル .\"O .SH NOTES -.SH È÷¹Í +.SH 備考 .\"O .SS Authors and Copyright Conditions -.SS Ãø¼Ô¤ÈÃøºî¸¢ +.SS 著者と著作権 .\"O Look at the header of the manual page source for the author(s) and copyright .\"O conditions. .\"O Note that these can be different from page to page! -Ãø¼Ô¤ª¤è¤Ó copyright ¤Î¾ò·ï¤Ë¤Ä¤¤¤Æ¤Ï³Æ¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¥½¡¼¥¹¤Î -¥Ø¥Ã¥ÀÉôʬ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¾ò·ï¤Ï¤½¤ì¤¾¤ì¤Î¥Ú¡¼¥¸¤´¤È¤Ë°Û¤Ê¤Ã -¤Æ¤¤¤ë¤³¤È¤Ë¤´Ãí°Õ´ê¤¤¤Þ¤¹¡£ +著者および copyright の条件については各マニュアルページのソースの +ヘッダ部分を参照してください。条件はそれぞれのページごとに異なっ +ていることにご注意願います。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR standards (7) diff --git a/draft/man4/lp.4 b/draft/man4/lp.4 index 905176ad..64bff18a 100644 --- a/draft/man4/lp.4 +++ b/draft/man4/lp.4 @@ -34,26 +34,26 @@ .\" Japanese Version Last Modified Sun Jan 11 03:42:56 JST 1998 .\" by ISHIKAWA Mutsumi .\" -.\" WORD: printer ¥×¥ê¥ó¥¿¡¼ -.\" WORD: parallel ¥Ñ¥é¥ì¥ë -.\" WORD: polling ¥Ý¡¼¥ê¥ó¥° -.\" WORD: interrupt ³ä¤ê¹þ¤ß -.\" WORD: dot matrix printer ¥É¥Ã¥È¥Þ¥È¥ê¥¯¥¹¥×¥ê¥ó¥¿¡¼ -.\" WORD: default ¥Ç¥Õ¥©¥ë¥È -.\" WORD: modularize ¥â¥¸¥å¡¼¥ë²½ -.\" WORD: driver ¥É¥é¥¤¥Ð -.\" WORD: buffer ¥Ð¥Ã¥Õ¥¡ +.\" WORD: printer プリンター +.\" WORD: parallel パラレル +.\" WORD: polling ポーリング +.\" WORD: interrupt 割り込み +.\" WORD: dot matrix printer ドットマトリクスプリンター +.\" WORD: default デフォルト +.\" WORD: modularize モジュール化 +.\" WORD: driver ドライバ +.\" WORD: buffer バッファ .\" .TH LP 4 1995-01-15 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O lp \- line printer devices -.SH ̾Á° -lp \- ¥é¥¤¥ó¥×¥ê¥ó¥¿¡¼¥Ç¥Ð¥¤¥¹ +.SH 名前 +lp \- ラインプリンターデバイス .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .\"O .SH CONFIGURATION -.SH ÀßÄê +.SH 設定 .\"O \fBlp\fP[0\(en2] are character devices for the parallel line printers; .\"O they have major number 6 and minor number 0\(en2. .\"O The minor numbers @@ -64,23 +64,23 @@ lp \- .\"O for laser printers. .\"O For usual dot matrix printers polling will usually be enough. .\"O The default is polling. -\fBlp\fP[0\(en2] ¤Ï¥Ñ¥é¥ì¥ë¥×¥ê¥ó¥¿¡¼¤Î¤¿¤á¤Î¥­¥ã¥é¥¯¥¿¥Ç¥Ð¥¤¥¹¤Ç¥á¥¸¥ã¡¼ -¥Ê¥ó¥Ð¡¼ 6 ¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼ 0\(en2 ¤ò»ý¤Ä¡£¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼¤Ï¡¢¥Ù¡¼¥¹ -¥¢¥É¥ì¥¹ 0x03bc, 0x0378, 0x0278 ¤Î¤½¤ì¤¾¤ì¤Î¥×¥ê¥ó¥¿¡¼¥Ý¡¼¥È¤ËÂбþ¤¹¤ë -Ä̾¤³¤Î¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë¤Ï¥â¡¼¥É 220 ¥ª¡¼¥Ê¡¼ root ¥°¥ë¡¼¥× lp ¤È¤Ê¤Ã -¤Æ¤¤¤ë¡£¥×¥ê¥ó¥¿¡¼¥Ý¡¼¥È¤Ï¥Ý¡¼¥ê¥ó¥°(polling)¤Þ¤¿¤Ï³ä¤ê¹þ¤ß -(interrupts) ¤Î¤É¤Á¤é¤òÍѤ¤¤Æ¤âÍøÍѤǤ­¤ë¡£³ä¤ê¹þ¤ß¤ÎÍøÍѤϡ¢¹âÉé²Ù¤¬ -ͽÁÛ¤µ¤ì¤ë»þ¡¢Î㤨¤Ð¥ì¡¼¥¶¡¼¥×¥ê¥ó¥¿¡¼¤ò¥×¥ê¥ó¥¿¥Ý¡¼¥È¤ËÀܳ¤¹¤ë¾ì¹ç¤Ê -¤É¤Ë¿ä¾©¤µ¤ì¤ë¡£ÉáÄ̤Υɥåȥޥȥꥯ¥¹¥×¥ê¥ó¥¿¡¼¤Ç¤Ï¡¢¥Ý¡¼¥ê¥ó¥°¤ÎÍøÍÑ -¤ÇÄ̾ï¤Ï½½Ê¬¤Ç¤¢¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥Ý¡¼¥ê¥ó¥°¤òÍøÍѤ¹¤ë¡£ +\fBlp\fP[0\(en2] はパラレルプリンターのためのキャラクタデバイスでメジャー +ナンバー 6 マイナーナンバー 0\(en2 を持つ。マイナーナンバーは、ベース +アドレス 0x03bc, 0x0378, 0x0278 のそれぞれのプリンターポートに対応する +通常、このデバイスファイルはモード 220 オーナー root グループ lp となっ +ている。プリンターポートはポーリング(polling)または割り込み +(interrupts) のどちらを用いても利用できる。割り込みの利用は、高負荷が +予想される時、例えばレーザープリンターをプリンタポートに接続する場合な +どに推奨される。普通のドットマトリクスプリンターでは、ポーリングの利用 +で通常は十分である。デフォルトではポーリングを利用する。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The following .\"O .BR ioctl (2) .\"O calls are supported: -¼¡¤Î +次の .BR ioctl (2) -¥³¡¼¥ë¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +コールがサポートされている。 .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPTIME, int \fP\fIarg\fP\fB)\fP" .\"O Sets the amount of time that the driver sleeps before rechecking the printer .\"O when the printer's buffer appears to be filled to \fIarg\fP. @@ -89,11 +89,11 @@ lp \- .\"O This is in hundredths of a second, the default 2 .\"O being 0.02 seconds. .\"O It only influences the polling driver. -¥×¥ê¥ó¥¿¡¼¤Î¥Ð¥Ã¥Õ¥¡( buffer ) ¤¬¤¤¤Ã¤Ñ¤¤¤Ë¤Ê¤Ã¤¿»þ¡¢¥É¥é¥¤¥Ð¤¬¥×¥ê¥ó¥¿¡¼ -¤òºÆ¥Á¥§¥Ã¥¯¤¹¤ë¤Þ¤Ç¤ËµÙ»ß¤¹¤ë»þ´Ö¤ò \fIarg\fP ¤È¤¹¤ë¡£¹â®¤Ê¥×¥ê¥ó¥¿¡¼ -¤Î»þ¤Ï¤³¤ì¤ò¸º¤é¤·¡¢ÃÙ¤¤¥×¥ê¥ó¥¿¡¼¤Î»þ¤Ë¤ÏÁý¤ä¤¹¡£Ã±°Ì¤Ï1ÉäÎ100ʬ¤Î1 -¤Ç¡¢¥Ç¥Õ¥©¥ë¥È¤Î2¤Ï0.02Éäˤ¢¤¿¤ë¡£¥Ý¡¼¥ê¥ó¥°¥É¥é¥¤¥Ð( polling driver -)¤Î¤ß¤Ë±Æ¶Á¤¹¤ë¡£ +プリンターのバッファ( buffer ) がいっぱいになった時、ドライバがプリンター +を再チェックするまでに休止する時間を \fIarg\fP とする。高速なプリンター +の時はこれを減らし、遅いプリンターの時には増やす。単位は1秒の100分の1 +で、デフォルトの2は0.02秒にあたる。ポーリングドライバ( polling driver +)のみに影響する。 .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPCHAR, int \fP\fIarg\fP\fB)\fP" .\"O Sets the maximum number of busy-wait iterations which the polling driver does .\"O while waiting for the printer to get ready for receiving a character to @@ -102,33 +102,33 @@ lp \- .\"O system gets too slow, decrease this number. .\"O The default is 1000. .\"O It only influences the polling driver. -¥Ý¡¼¥ê¥ó¥°¥É¥é¥¤¥Ð¤¬¥×¥ê¥ó¥¿¡¼¤Îʸ»ú¼õ¼è¤ê½àÈ÷¤¬¤Ç¤­¤ë¤Î¤òÂÔ -¤Ä¥Ó¥¸¡¼¥¦¥¨¥¤¥È(busy-wait)¤Î²ó¿ô¤ÎºÇÂçÃͤò \fIarg\fP¤È¤¹¤ë¡£ -¤â¤·°õºþ¤¬ÃÙ¤¹¤®¤ë»þ¤Ï¤³¤ì¤òÁý¤ä¤·¡¢¥·¥¹¥Æ¥à¤¬ÃÙ¤¯¤Ê¤ê¤¹¤®¤ë»þ¤Ë¤Ï -¸º¤é¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ï 1000 ¤Ç¤¢¤ë¡£¥Ý¡¼¥ê¥ó¥°¥É¥é¥¤¥Ð¤Î¤ß¤Ë±Æ¶Á¤¹¤ë¡£ +ポーリングドライバがプリンターの文字受取り準備ができるのを待 +つビジーウエイト(busy-wait)の回数の最大値を \fIarg\fPとする。 +もし印刷が遅すぎる時はこれを増やし、システムが遅くなりすぎる時には +減らす。デフォルトは 1000 である。ポーリングドライバのみに影響する。 .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPABORT, int \fP\fIarg\fP\fB)\fP" .\"O If \fIarg\fP is 0, the printer driver will retry on errors, otherwise .\"O it will abort. .\"O The default is 0. -¤â¤·¡¢\fIarg\fP ¤¬ 0 ¤Ê¤é¡¢¥×¥ê¥ó¥¿¡¼¥É¥é¥¤¥Ð¤Ï¥¨¥é¡¼¤Ë¤Ä¤¤¤ÆºÆ»î¹Ô -¤ò¹Ô¤¦¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤ÏÃæ»ß¤¹¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ï 0 ¤Ç¤¢¤ë¡£ +もし、\fIarg\fP が 0 なら、プリンタードライバはエラーについて再試行 +を行う。それ以外の場合は中止する。デフォルトは 0 である。 .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPABORTOPEN, int \fP\fIarg\fP\fB)\fP" .\"O If \fIarg\fP is 0, .\"O .BR open (2) .\"O will be aborted on error, otherwise error will be ignored. .\"O The default is .\"O to ignore it. -¤â¤·¡¢\fIarg\fP ¤¬ 0 ¤Ê¤é +もし、\fIarg\fP が 0 なら .BR open (2) -¤Î·ë²Ì¤¬¥¨¥é¡¼¤Î¾ì¹ç¡¢Æ°ºî¤¬Ãæ»ß¤µ¤ì¤ë¡£¤½¤ì°Ê³°¤Ê¤é¥¨¥é¡¼¤Ï̵ -»ë¤µ¤ì¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥¨¥é¡¼¤Ï̵»ë¤µ¤ì¤ë¡£ +の結果がエラーの場合、動作が中止される。それ以外ならエラーは無 +視される。デフォルトではエラーは無視される。 .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPCAREFUL, int \fP\fIarg\fP\fB)\fP" .\"O If \fIarg\fP is 0, then the out-of-paper, offline and error signals are .\"O required to be false on all writes, otherwise they are ignored. .\"O The default is to ignore them. -\fIarg\fP¤¬0¤Î¤È¤­¤Ë¤Ï¡¢¤¹¤Ù¤Æ¤Î½ñ¤­½Ð¤·¤Î»þ¤Ë¡¢»æÀڤ졢¥ª¥Õ¥é¥¤¥ó¡¢¥¨ -¥é¡¼¤Î¥·¥°¥Ê¥ë¤¬µ¶(false)¤Ç¤¢¤ë¤³¤È¤¬É¬ÍפȤµ¤ì¤ë¤¬¡¢0 °Ê³°¤Ê¤é¤³¤ì -¤é¤Î¥·¥°¥Ê¥ë¤Ï̵»ë¤µ¤ì¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤â¤³¤ì¤é¤Î¥·¥°¥Ê¥ë¤Ï̵»ë¤µ¤ì¤ë¡£ +\fIarg\fPが0のときには、すべての書き出しの時に、紙切れ、オフライン、エ +ラーのシグナルが偽(false)であることが必要とされるが、0 以外ならこれ +らのシグナルは無視される。デフォルトでもこれらのシグナルは無視される。 .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPWAIT, int \fP\fIarg\fP\fB)\fP" .\"O Sets the number of busy waiting iterations to wait before strobing the .\"O printer to accept a just-written character, and the number of iterations to @@ -139,12 +139,12 @@ lp \- .\"O already enough. .\"O For that reason, the default value is 0. .\"O This is used for both the polling and the interrupt driver. -¥×¥ê¥ó¥¿¡¼¤¬Á÷¤é¤ì¤¿Ê¸»ú¤ò¼õ¤±¼è¤ë¤Î¤òÂԤĤ¿¤á¡¢¥É¥é¥¤¥Ð¤¬Ê¸»ú¤òÁ÷¤Ã -¤Æ¤«¤é¥¹¥È¥í¡¼¥Ö(strobe)¤¹¤ë¤Þ¤Ç¤ÎÂÔ¤Á¤Î·«¤êÊÖ¤·¤Î²ó¿ô¤È¡¢¥¹¥È¥í¡¼¥Ö -¤òºÆ¤Ó¥ª¥Õ¤Ë¤¹¤ë¤Þ¤Ç¤ÎÂÔ¤Á¤Î·«¤êÊÖ¤·¤Î²ó¿ô¤ò \fIarg\fP¤ËÀßÄê -¤¹¤ë¡£»ÅÍͤˤè¤ì¤Ð¤³¤Î»þ´Ö¤Ï 0.5 ¥Þ¥¤¥¯¥íÉäȤ¹¤ë¤Ù¤­¤À¤¬¡¢·Ð¸³¤Ë¤è¤ì¤Ð -¤³¤Î¥³¡¼¥É¤Ë¤è¤Ã¤ÆÀ¸¤¸¤ëÃÙ¤ì¤Ç½½Ê¬¤Ç¤¢¤ë¡£¤½¤Î¤¿¤á¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï 0 ¤Ç -¤¢¤ë¡£¤³¤ì¤Ï¡¢¥Ý¡¼¥ê¥ó¥°¤È³ä¤ê¹þ¤ß¥É¥é¥¤¥Ð¤ÎξÊý¤Ç»È¤ï¤ì¤ë¡£ +プリンターが送られた文字を受け取るのを待つため、ドライバが文字を送っ +てからストローブ(strobe)するまでの待ちの繰り返しの回数と、ストローブ +を再びオフにするまでの待ちの繰り返しの回数を \fIarg\fPに設定 +する。仕様によればこの時間は 0.5 マイクロ秒とするべきだが、経験によれば +このコードによって生じる遅れで十分である。そのため、デフォルトでは 0 で +ある。これは、ポーリングと割り込みドライバの両方で使われる。 .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPSETIRQ, int \fP\fIarg\fP\fB)\fP" .\"O This .\"O .BR ioctl (2) @@ -154,21 +154,21 @@ lp \- .\"O containing the new IRQ as argument. .\"O As a side effect, the printer will be reset. .\"O When \fIarg\fP is 0, the polling driver will be used, which is also default. -¤³¤Î +この .BR ioctl (2) -¤ò»È¤¦¤Ë¤Ï¡¢¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Î¸¢¸Â¤¬É¬ÍפǤ¢¤ë¡£¿·¤·¤¤IRQ¤ò¼¨¤¹ +を使うには、スーパーユーザの権限が必要である。新しいIRQを示す .I int -¤ò°ú¿ô¤È¤·¤Æ¤È¤ë¡£¤Þ¤¿¡¢ÉûºîÍѤȤ·¤Æ¥×¥ê¥ó¥¿¡¼¤Ï¥ê¥»¥Ã¥È¤µ¤ì¤ë¡£ -\fIarg\fP¤¬0¤Î»þ¤Þ¤¿¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ç¤Ï¡¢¥Ý¡¼¥ê¥ó¥°¥É¥é¥¤¥Ð¡¼¤¬»È¤ï -¤ì¤ë¡£ +を引数としてとる。また、副作用としてプリンターはリセットされる。 +\fIarg\fPが0の時またはデフォルトの動作では、ポーリングドライバーが使わ +れる。 .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPGETIRQ, int *\fP\fIarg\fP\fB)\fP" .\"O Stores the currently used IRQ in \fIarg\fP. -¸½ºß»È¤ï¤ì¤Æ¤¤¤ëIRQ¤ò\fIarg\fP¤Ë¤¤¤ì¤ë¡£ +現在使われているIRQを\fIarg\fPにいれる。 .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPGETSTATUS, int *\fP\fIarg\fP\fB)\fP" .\"O Stores the value of the status port in \fIarg\fP. .\"O The bits have the following meaning: -¥¹¥Æ¡¼¥¿¥¹¥Ý¡¼¥È¤ÎÃͤò\fIarg\fP¤Ë¼ý¤á¤ë¡£³Æ¥Ó¥Ã¥È¤Ë¤Ï¼¡¤Î¤è¤¦¤Ê°ÕÌ£¤¬ -¤¢¤ë¡§ +ステータスポートの値を\fIarg\fPに収める。各ビットには次のような意味が +ある: .TS l l. .\"O LP_PBUSY inverted busy input, active high @@ -176,48 +176,48 @@ l l. .\"O LP_POUTPA unchanged out-of-paper input, active high .\"O LP_PSELECD unchanged selected input, active high .\"O LP_PERRORP unchanged error input, active low -LP_PBUSY ¥Ó¥¸¡¼¿®¹æ¤Îȿž¡¢¥Ï¥¤¤¬¥¢¥¯¥Æ¥£¥Ö -LP_PACK ¥¢¥¯¥Î¥ê¥Ã¥¸¿®¹æ¡¢¥í¡¼¤¬¥¢¥¯¥Æ¥£¥Ö -LP_POUTPA »æÀڤ쿮¹æ¡¢¥Ï¥¤¤¬¥¢¥¯¥Æ¥£¥Ö -LP_PSELECD ÁªÂò¿®¹æ¡¢¥Ï¥¤¤¬¥¢¥¯¥Æ¥£¥Ö -LP_PERRORP ¥¨¥é¡¼¿®¹æ¡¢¥í¡¼¤¬¥¢¥¯¥Æ¥£¥Ö +LP_PBUSY ビジー信号の反転、ハイがアクティブ +LP_PACK アクノリッジ信号、ローがアクティブ +LP_POUTPA 紙切れ信号、ハイがアクティブ +LP_PSELECD 選択信号、ハイがアクティブ +LP_PERRORP エラー信号、ローがアクティブ .TE .sp .\"O Refer to your printer manual for the meaning of the signals. .\"O Note that undocumented bits may also be set, depending on your printer. -¿®¹æ¤Î°ÕÌ£¤Ë¤Ä¤¤¤Æ¤Ï³Æ¼«¤Î¥×¥ê¥ó¥¿¡¼¤Î¥Þ¥Ë¥å¥¢¥ë¤ò»²¾È¤Î¤³¤È¡£¥×¥ê¥ó¥¿¡¼ -¤Ë¤è¤Ã¤Æ¤Ïµ­ºÜ¤Î¤Ê¤¤¥Ó¥Ã¥È¤â¥»¥Ã¥È¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¤Î¤Ç¡¢Ãí°Õ¤Î¤³¤È¡£ +信号の意味については各自のプリンターのマニュアルを参照のこと。プリンター +によっては記載のないビットもセットされるかもしれないので、注意のこと。 .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPRESET)\fP" .\"O Resets the printer. .\"O No argument is used. -¥×¥ê¥ó¥¿¡¼¤ò¥ê¥»¥Ã¥È¤¹¤ë¡£°ú¿ô¤Ï¤È¤é¤Ê¤¤¡£ +プリンターをリセットする。引数はとらない。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル /dev/lp* .\"O .\" .SH AUTHORS -.\" .SH Ãø¼Ô +.\" .SH 著者 .\"O .\" The printer driver was originally written by Jim Weigand and Linus .\"O .\" Torvalds. .\"O .\" It was further improved by Michael K.\& Johnson. .\"O .\" The interrupt code was written by Nigel Gamble. .\"O .\" Alan Cox modularized it. .\"O .\" LPCAREFUL, LPABORT, LPGETSTATUS were added by Chris Metcalf. -.\" ¥×¥ê¥ó¥¿¡¼¥É¥é¥¤¥Ð¤Ï½é¤á¤Ï Jim Weigand ¤È Linus Torvalds ¤Ë¤è¤Ã¤Æ½ñ -.\" ¤«¤ì¡¢¤µ¤é¤Ë Michael K.\& Johnson ¤Ë¤è¤Ã¤Æ²þÎɤµ¤ì¤¿¡£³ä¤ê¹þ¤ß¤Î¥³¡¼¥É -.\" ¤Ï Nigel Gamble ¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤¿¡£¤Þ¤¿¡¢Alan Cox ¤Ï¥É¥é¥¤¥Ð¤ò¥â¥¸¥å¡¼ -.\" ¥ë²½¤·¤¿¡£ -.\" LPCAREFUL, LPABORT, LPGETSTATUS ¤Ï Chris Metcalf ¤Ë¤è¤Ã¤Æ²Ã¤¨¤é¤ì¤¿¡£ +.\" プリンタードライバは初めは Jim Weigand と Linus Torvalds によって書 +.\" かれ、さらに Michael K.\& Johnson によって改良された。割り込みのコード +.\" は Nigel Gamble によって書かれた。また、Alan Cox はドライバをモジュー +.\" ル化した。 +.\" LPCAREFUL, LPABORT, LPGETSTATUS は Chris Metcalf によって加えられた。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chmod (1), .BR chown (1), .BR mknod (1), .BR lpcntl (8), .BR tunelp (8) -.\" .SH ËÝÌõ¼Ô -.\" ÀÐÀî ËÓ , -.\" ¹â¶¶ ËÓ»Ê -.SH ËÝÌõ¼ÔÃí -¥«¡¼¥Í¥ë 2.1.x ¤Ç¤Ï¥Ñ¥é¥ì¥ë¥Ý¡¼¥È¤Þ¤ï¤ê¤¬ÂçÉý¤Ë½ñ¤­Ä¾¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¥«¡¼¥Í¥ë 2.1.x ¤Î¥Ñ¥é¥ì¥ë¥Ý¡¼¥È¥É¥é¥¤¥Ð¤Ë¤Ï¡¢ -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤ÎÆâÍƤϤ½¤Î¤Þ¤ÞŬÍѤǤ­¤Þ¤»¤ó¡£ +.\" .SH 翻訳者 +.\" 石川 睦 , +.\" 高橋 睦司 +.SH 翻訳者注 +カーネル 2.1.x ではパラレルポートまわりが大幅に書き直されています。 +したがって、カーネル 2.1.x のパラレルポートドライバには、 +このマニュアルの内容はそのまま適用できません。 diff --git a/draft/man4/mem.4 b/draft/man4/mem.4 index 3947b7d2..fc196969 100644 --- a/draft/man4/mem.4 +++ b/draft/man4/mem.4 @@ -29,35 +29,35 @@ .\" Japanese Version Last Modified Sun Jan 11 03:52:01 1998 .\" by ISHIKAWA Mutsumi .\" -.\" WORD: system memory ¥·¥¹¥Æ¥à¥á¥â¥ê -.\" WORD: kernel memory ¥«¡¼¥Í¥ë¥á¥â¥ê -.\" WORD: system ports ¥·¥¹¥Æ¥à¥Ý¡¼¥È -.\" WORD: character device file ¥­¥ã¥é¥¯¥¿¡¼¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë -.\" WORD: patch ¥Ñ¥Ã¥Á -.\" WORD: byte address ¥Ð¥¤¥È¥¢¥É¥ì¥¹ -.\" WORD: physical memory address ʪÍý¥á¥â¥ê¥¢¥É¥ì¥¹ -.\" WORD: read-only Æɤ߹þ¤ßÀìÍÑ -.\" WORD: write-only ½ñ¤­¹þ¤ßÀìÍÑ -.\" WORD: kernel ¥«¡¼¥Í¥ë -.\" WORD: virtual memory ²¾ÁÛ¥á¥â¥ê -.\" WORD: I/O ports IO ¥Ý¡¼¥È +.\" WORD: system memory システムメモリ +.\" WORD: kernel memory カーネルメモリ +.\" WORD: system ports システムポート +.\" WORD: character device file キャラクターデバイスファイル +.\" WORD: patch パッチ +.\" WORD: byte address バイトアドレス +.\" WORD: physical memory address 物理メモリアドレス +.\" WORD: read-only 読み込み専用 +.\" WORD: write-only 書き込み専用 +.\" WORD: kernel カーネル +.\" WORD: virtual memory 仮想メモリ +.\" WORD: I/O ports IO ポート .TH MEM 4 1992-11-21 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -mem, kmem, port \- ¥·¥¹¥Æ¥à¥á¥â¥ê(system memory)¡¢¥«¡¼¥Í¥ë¥á¥â¥ê -(kernel memory)¡¢¥·¥¹¥Æ¥à¥Ý¡¼¥È(sysmem ports) -.SH ÀâÌÀ -\fBmem\fP ¤Ï¥³¥ó¥Ô¥å¡¼¥¿¤Î¥á¥¤¥ó¥á¥â¥ê¥¤¥á¡¼¥¸¤Î¥­¥ã¥é¥¯¥¿¡¼¥Ç¥Ð¥¤¥¹¥Õ¥¡ -¥¤¥ë(character device file)¤Ç¤¢¤ë¡£¤³¤Î¥Ç¥Ð¥¤¥¹¤Ï¡¢Î㤨¤Ð¡¢¥·¥¹¥Æ¥à¤ò -¸¡ºº¤¹¤ë¤¿¤á(¤Þ¤¿¡¢¥Ñ¥Ã¥Á(patch)¤ò¤¢¤Æ¤ë¤¿¤á)¤Ë»È¤ï¤ì¤ë¤À¤í¤¦¡£ +.SH 名前 +mem, kmem, port \- システムメモリ(system memory)、カーネルメモリ +(kernel memory)、システムポート(sysmem ports) +.SH 説明 +\fBmem\fP はコンピュータのメインメモリイメージのキャラクターデバイスファ +イル(character device file)である。このデバイスは、例えば、システムを +検査するため(また、パッチ(patch)をあてるため)に使われるだろう。 .LP .B mem -¤Î¥Ð¥¤¥È¥¢¥É¥ì¥¹(byte address)¤Ï ʪÍý¥á¥â¥ê¥¢¥É¥ì¥¹¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ -¸ºß¤·¤Æ¤¤¤Ê¤¤¾ì½ê¤Ø¤Î»²¾È¤Ï¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ +のバイトアドレス(byte address)は 物理メモリアドレスとして解釈される。 +存在していない場所への参照はエラーが返される。 .LP -Æɤ߹þ¤ßÀìÍÑ(read-only)¤¢¤ë¤¤¤Ï½ñ¤­¹þ¤ßÀìÍÑ(write-only)¤Î¥Ó¥Ã¥È¤Ø¤Î¸¡ -ºº¤¢¤ë¤¤¤Ï¥Ñ¥Ã¥ÁÅö¤Æ¤Ïͽ´ü¤»¤Ì·ë²Ì¤ò¤â¤¿¤é¤¹¤³¤È¤¬¤¢¤ë¡£ +読み込み専用(read-only)あるいは書き込み専用(write-only)のビットへの検 +査あるいはパッチ当ては予期せぬ結果をもたらすことがある。 .LP -¤³¤Î¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë¤Ïŵ·¿Åª¤Ë¤Ï¼¡¤Î¤è¤¦¤Ë¤·¤Æºî¤é¤ì¤ë¡£: +このデバイスファイルは典型的には次のようにして作られる。: .RS .sp mknod \-m 660 /dev/mem c 1 1 @@ -66,13 +66,13 @@ chown root:kmem /dev/mem .RE .LP .B kmem -¥Õ¥¡¥¤¥ë¤Ï +ファイルは .B mem -¤ÈƱ¤¸¤À¤¬¡¢ -ʪÍý¥á¥â¥ê¤Ø¤Î¥¢¥¯¥»¥¹¤Ç¤Ï¤Ê¤¯¡¢¥«¡¼¥Í¥ë(kernel)¤Î²¾ÁÛ -¥á¥â¥ê(virtual memory)¤Ø¤Î¥¢¥¯¥»¥¹¤Ç¤¢¤ëÅÀ¤¬°Û¤Ê¤ë¡£ +と同じだが、 +物理メモリへのアクセスではなく、カーネル(kernel)の仮想 +メモリ(virtual memory)へのアクセスである点が異なる。 .LP -¤³¤Î¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë¤Ïŵ·¿Åª¤Ë¤Ï¼¡¤Î¤è¤¦¤Ë¤·¤Æºî¤é¤ì¤ë¡£: +このデバイスファイルは典型的には次のようにして作られる。: .RS .sp mknod \-m 640 /dev/kmem c 1 2 @@ -80,26 +80,26 @@ mknod \-m 640 /dev/kmem c 1 2 chown root:kmem /dev/kmem .RE .LP -\fBport\fP ¤Ï +\fBport\fP は .B mem -¤Ë»÷¤Æ¤¤¤ë¤¬ I/O ¥Ý¡¼¥È(I/O ports)¤Ø¤Î¥¢¥¯¥»¥¹¤¬¹Ô¤ï¤ì¤ë¡£ +に似ているが I/O ポート(I/O ports)へのアクセスが行われる。 .LP -¤³¤Î¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë¤Ïŵ·¿Åª¤Ë¤Ï¼¡¤Î¤è¤¦¤Ëºî¤é¤ì¤ë¡£: +このデバイスファイルは典型的には次のように作られる。: .RS .sp mknod \-m 660 /dev/port c 1 4 .br chown root:mem /dev/port .RE -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .I /dev/mem .br .I /dev/kmem .br .I /dev/port -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chown (1), .BR mknod (1), .BR ioperm (2) -.\" .SH ËÝÌõ¼Ô -.\" ÀÐÀî ËÓ +.\" .SH 翻訳者 +.\" 石川 睦 diff --git a/draft/man4/mouse.4 b/draft/man4/mouse.4 index 206141a5..180fcc75 100644 --- a/draft/man4/mouse.4 +++ b/draft/man4/mouse.4 @@ -34,33 +34,33 @@ .\" by ISHIKAWA Mutsumi .\" Updated & Modefied Sat Feb 27 1999 by Shouichi Saito .\" -.\" WORD: serial mouse ¥·¥ê¥¢¥ë¥Þ¥¦¥¹ -.\" WORD: interface ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ +.\" WORD: serial mouse シリアルマウス +.\" WORD: interface インターフェース .\" WORD: RS232/V24 RS232/V24 -.\" WORD: dialout line ¥À¥¤¥¢¥ë¥¢¥¦¥È¥é¥¤¥ó -.\" WORD: pinout ¥Ô¥óÇÛÎó -.\" WORD: Microsoft-compatible ¥Þ¥¤¥¯¥í¥½¥Õ¥È¸ß´¹ +.\" WORD: dialout line ダイアルアウトライン +.\" WORD: pinout ピン配列 +.\" WORD: Microsoft-compatible マイクロソフト互換 .\" .TH MOUSE 4 1996-02-10 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O mouse \- serial mouse interface -.SH ̾Á° -mouse \- ¥·¥ê¥¢¥ë¥Þ¥¦¥¹¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ +.SH 名前 +mouse \- シリアルマウスインターフェース .\"O .SH CONFIGURATION -.SH ÀßÄê +.SH 設定 .\"O Serial mice are connected to a serial RS232/V24 dialout line, see .\"O .BR ttyS (4) .\"O for a description. -¥·¥ê¥¢¥ë¥Þ¥¦¥¹¤Ï RS232/V24 ¥À¥¤¥¢¥ë¥¢¥¦¥È¥é¥¤¥ó¤ËÀܳ¤µ¤ì¤ë¡£ -RS232/V24 ¥À¥¤¥¢¥ë¥¢¥¦¥È¥é¥¤¥ó ¤Ë¤Ä¤¤¤Æ¤Ï +シリアルマウスは RS232/V24 ダイアルアウトラインに接続される。 +RS232/V24 ダイアルアウトライン については .BR ttyS (4) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .SS Introduction -.SS ³µÀâ +.SS 概説 .\"O The pinout of the usual 9 pin plug as used for serial mice is: -¥·¥ê¥¢¥ë¥Þ¥¦¥¹¤Ç»È¤ï¤ì¤ëÉáÄ̤Π9 ¥Ô¥ó¥×¥é¥°¤Î¥Ô¥óÇÛÎó¤Ï°Ê²¼¤Ç¤¢¤ë: +シリアルマウスで使われる普通の 9 ピンプラグのピン配列は以下である: .TS center; r c l. @@ -73,16 +73,16 @@ pin name used for .TE .\"O This is the specification, in fact 9 V suffices with most mice. -¤³¤ì¤Ï»ÅÍͽñ¤Ç¤¢¤ê¡¢¼ÂºÝ¤Ï¤Û¤È¤ó¤É¤Î¥Þ¥¦¥¹¤Ç¤Ï 9 V ¤Ç½½Ê¬¤Ç¤¢¤ë¡£ +これは仕様書であり、実際はほとんどのマウスでは 9 V で十分である。 .PP .\"O The mouse driver can recognize a mouse by dropping RTS to low and raising .\"O it again. .\"O About 14 ms later the mouse will send 0x4D (\(aqM\(aq) on the data line. .\"O After a further 63 ms, a Microsoft-compatible 3-button mouse will send .\"O 0x33 (\(aq3\(aq). -¥Þ¥¦¥¹¥É¥é¥¤¥Ð¤Ï RTS ¤ò¥í¡¼(low)¤ËÍ¡¢ºÆ¤Ó¾å¤²¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¥Þ¥¦¥¹¤òǧ¼±¤Ç¤­ -¤ë¡£¤ª¤è¤½ 14 ms ¸å¡¢¥Þ¥¦¥¹¤Ï¥Ç¡¼¥¿¥é¥¤¥ó¾å¤Ë 0x4D (\(aqM\(aq) ¤òÁ÷¤ë¤À¤í¤¦¡£¤µ¤é -¤Ë 63ms ¤¢¤È¡¢¥Þ¥¤¥¯¥í¥½¥Õ¥È¸ß´¹ 3¥Ü¥¿¥ó¥Þ¥¦¥¹¤Ï 0x33 (\(aq3\(aq) ¤òÁ÷¤ë¡£ +マウスドライバは RTS をロー(low)に落し、再び上げることによって、マウスを認識でき +る。およそ 14 ms 後、マウスはデータライン上に 0x4D (\(aqM\(aq) を送るだろう。さら +に 63ms あと、マイクロソフト互換 3ボタンマウスは 0x33 (\(aq3\(aq) を送る。 .PP .\"O The relative mouse movement is sent as \fIdx\fP (positive means right) .\"O and \fIdy\fP (positive means down). @@ -91,11 +91,11 @@ pin name used for .\"O speeds 9600, 4800, 2400 and 1200 bit/s, each time writing the two characters .\"O from the table below and waiting 0.1 seconds. .\"O The following table shows available speeds and the strings that select them: -¥Þ¥¦¥¹¤ÎÁêÂÐŪ¤Ê°ÜÆ°¤Ï¡¢\fIdx\fP(Àµ¤¬±¦)¤È\fIdy\fP(Àµ¤¬²¼)¤È¤·¤ÆÅÁ¤¨¤é¤ì¤ë¡£ -³Æ¼ï¤Î¥Þ¥¦¥¹¤Ï°Û¤Ê¤Ã¤¿¥¹¥Ô¡¼¥É¤ÇÁàºî¤Ç¤­¤ë¡£¥¹¥Ô¡¼¥É¤òÁªÂò¤¹¤ë¤Ë¤Ï¡¢ -²¼¤Îɽ¤Î£²Ê¸»ú¤òÁ÷¤Ã¤Æ¤«¤é 0.1 ÉÃÂԤĤ³¤È¤Ç¡¢9600, 4800, 2400, 1200 -bit/s ¤ò½ç¤ËÁª¤Ù¤ë¡£ -°Ê²¼¤Îɽ¤Ç¤ÏÁªÂò²Äǽ¤Ê¥¹¥Ô¡¼¥É¤È¤½¤ì¤òÁªÂò¤¹¤ë¤¿¤á¤Îʸ»úÎó¤ò¼¨¤·¤Æ¤¤¤ë¡£ +マウスの相対的な移動は、\fIdx\fP(正が右)と\fIdy\fP(正が下)として伝えられる。 +各種のマウスは異なったスピードで操作できる。スピードを選択するには、 +下の表の2文字を送ってから 0.1 秒待つことで、9600, 4800, 2400, 1200 +bit/s を順に選べる。 +以下の表では選択可能なスピードとそれを選択するための文字列を示している。 .TS center; l l. @@ -107,21 +107,21 @@ bit/s string .TE .\"O The first byte of a data packet can be used to synchronization purposes. -¥Ç¡¼¥¿¥Ñ¥±¥Ã¥È¤ÎÂè 1 ¥Ð¥¤¥È¤ÏƱ´ü¤ò¤È¤ë¤Î¤ËÍøÍѤǤ­¤ë¡£ +データパケットの第 1 バイトは同期をとるのに利用できる。 .\"O .SS "Microsoft protocol" -.SS "¥Þ¥¤¥¯¥í¥½¥Õ¥È ¥×¥í¥È¥³¥ë(Microsoft Protocol)" +.SS "マイクロソフト プロトコル(Microsoft Protocol)" .\"O The \fBMicrosoft\fP protocol uses 1 start bit, 7 data bits, no parity .\"O and one stop bit at the speed of 1200 bits/sec. .\"O Data is sent to RxD in 3-byte packets. .\"O The \fIdx\fP and \fIdy\fP movements are sent as .\"O two's-complement, \fIlb\fP (\fIrb\fP) are set when the left (right) .\"O button is pressed: -\fB¥Þ¥¤¥¯¥í¥½¥Õ¥È\fP¥×¥í¥È¥³¥ë¤Ï¡¢1200 bits/sec ¤Î¥¹¥Ô¡¼¥É¤Ç¡¢1 ¥¹ -¥¿¡¼¥È¥Ó¥Ã¥È(1 start bit)¡¢7 ¥Ç¡¼¥¿¥Ó¥Ã¥È(7 data bits)¡¢¥Ñ¥ê¥Æ¥£¤Ê -¤·¡¢1 ¥¹¥È¥Ã¥×¥Ó¥Ã¥È(1 stop bit)¤Ç¤¢¤ë¡£ -¥Ç¡¼¥¿¤Ï RxD ¤Ë 3 ¥Ð¥¤¥È¤Î¥Ñ¥±¥Ã¥È¤È¤·¤ÆÁ÷¤é¤ì¤ë¡£\fIdx\fP ¤È \fIdy\fP -¤ÎÆ°¤­¤Ï 2 ¤ÎÊä¿ôɽ¼¨¤ÇÁ÷¤é¤ì¡¢º¸(±¦)¤Î¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤¿»þ¤Ë¤Ï \fIlb\fP -(\fIrb\fP)¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +\fBマイクロソフト\fPプロトコルは、1200 bits/sec のスピードで、1 ス +タートビット(1 start bit)、7 データビット(7 data bits)、パリティな +し、1 ストップビット(1 stop bit)である。 +データは RxD に 3 バイトのパケットとして送られる。\fIdx\fP と \fIdy\fP +の動きは 2 の補数表示で送られ、左(右)のボタンが押された時には \fIlb\fP +(\fIrb\fP)がセットされる。 .TS center; r c c c c c c c. @@ -131,7 +131,7 @@ byte d6 d5 d4 d3 d2 d1 d0 3 0 dy5 dy4 dy3 dy2 dy1 dy0 .TE .\"O .SS "3-button Microsoft protocol" -.SS "3¤Ä¥Ü¥¿¥ó ¥Þ¥¤¥¯¥í¥½¥Õ¥È ¥×¥í¥È¥³¥ë(3-button Microsoft protocol)" +.SS "3つボタン マイクロソフト プロトコル(3-button Microsoft protocol)" .\"O Original Microsoft mice only have two buttons. .\"O However, there are some .\"O three button mice which also use the Microsoft protocol. @@ -140,13 +140,13 @@ byte d6 d5 d4 d3 d2 d1 d0 .\"O movement and no buttons pressed. .\"O (Thus, unlike for the other two buttons, the status of the middle .\"O button is not reported in each packet.) -ËÜÍè¤Î¥Þ¥¤¥¯¥í¥½¥Õ¥È¥Þ¥¦¥¹¤Ï 2 ¤Ä¤Î¥Ü¥¿¥ó¤·¤«»ý¤¿¤Ê¤¤¡£¤·¤«¤·¡¢3 ¤Ä¥Ü¥¿¥ó -¤Î¥Þ¥¦¥¹¤Ç¥Þ¥¤¥¯¥í¥½¥Õ¥È¥×¥í¥È¥³¥ë¤Îʪ¤â¸ºß¤¹¤ë¡£¿¿Ãæ¤Î¥Ü¥¿¥ó¤ò²¡¤¹¡¢ -¤Þ¤¿¤ÏÊü¤¹¤È¤¤¤¦¤³¤È¤Ï¡¢Æ°¤­¥¼¥í¤Ç¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¤¤¤¦¥Ñ¥±¥Ã¥È -¤òÁ÷¤ë¤³¤È¤ÇÅÁ¤¨¤é¤ì¤ë¡£(½¾¤Ã¤Æ¾¤ÎÆó¤Ä¤Î¥Ü¥¿¥ó¤È°ã¤¤¡¢¿¿Ãæ¤Î¥Ü¥¿ -¥ó¤Î¥¹¥Æ¡¼¥¿¥¹¤Ï¡¢¤½¤ì¤¾¤ì¤Î¥Ñ¥±¥Ã¥È¤«¤é¤ÏÅÁ¤ï¤Ã¤ÆÍè¤Ê¤¤¡£) +本来のマイクロソフトマウスは 2 つのボタンしか持たない。しかし、3 つボタン +のマウスでマイクロソフトプロトコルの物も存在する。真中のボタンを押す、 +または放すということは、動きゼロでボタンが押されていないというパケット +を送ることで伝えられる。(従って他の二つのボタンと違い、真中のボタ +ンのステータスは、それぞれのパケットからは伝わって来ない。) .\"O .SS "Logitech protocol" -.SS "¥í¥¸¥Æ¥Ã¥¯ ¥×¥í¥È¥³¥ë(Logitech protocol)" +.SS "ロジテック プロトコル(Logitech protocol)" .\"O Logitech serial 3-button mice use a different extension of the .\"O Microsoft protocol: when the middle button is up, the above 3-byte .\"O packet is sent. @@ -155,14 +155,14 @@ byte d6 d5 d4 d3 d2 d1 d0 .\"O bit set). .\"O In particular, a press of the middle button is reported .\"O as 0,0,0,0x20 when no other buttons are down. -¥í¥¸¥Æ¥Ã¥¯ ¥·¥ê¥¢¥ë 3¤Ä¥Ü¥¿¥ó¥Þ¥¦¥¹¤Ï¡¢¥Þ¥¤¥¯¥í¥½¥Õ¥È ¥×¥í¥È¥³¥ë¤È¤Ï -°Û¤Ê¤Ã¤¿³ÈÄ¥¤ò¤·¤Æ¤¤¤ë¡£:¿¿Ãæ¤Î¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤Æ¤Ê¤¤¤È¡¢¾åµ­ 3¥Ð¥¤¥È¤Î -¥Ñ¥±¥Ã¥È¤¬Á÷¤é¤ì¤ë¡£¿¿Ãæ¤Î¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤Æ¤¤¤ë¤È¡¢4¥Ð¥¤¥È¤Î¥Ñ¥±¥Ã¥È¤¬ -Á÷¤é¤ì¤ë¡£Â裴¥Ð¥¤¥È¤Ï 0x20 ¤ÎÃͤò»ý¤Ã¤Æ¤¤¤ë(¤¢¤ë¤¤¤Ï¡¢¾¯¤Ê¤¯¤È¤â 0x20 -¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë)¡£ ⤷¡¢Â¾¤Î¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤Æ¤¤¤Ê¤¤¾õÂ֤ǡ¢ -¿¿Ãæ¤Î¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤ë¤È¡¢0,0,0,0x20 ¤ÈÅÁ¤¨¤é¤ì¤ë¡£ +ロジテック シリアル 3つボタンマウスは、マイクロソフト プロトコルとは +異なった拡張をしている。:真中のボタンが押されてないと、上記 3バイトの +パケットが送られる。真中のボタンが押されていると、4バイトのパケットが +送られる。第4バイトは 0x20 の値を持っている(あるいは、少なくとも 0x20 +ビットがセットされている)。 但し、他のボタンが押されていない状態で、 +真中のボタンが押されると、0,0,0,0x20 と伝えられる。 .\"O .SS "Mousesystems protocol" -.SS "¥Þ¥¦¥¹¥·¥¹¥Æ¥à¥º ¥×¥í¥È¥³¥ë(Mousesystems protocol)" +.SS "マウスシステムズ プロトコル(Mousesystems protocol)" .\"O The \fBMousesystems\fP protocol uses 1 start bit, 8 data bits, no parity .\"O and two stop bits at the speed of 1200 bits/sec. .\"O Data is sent to RxD in @@ -172,12 +172,12 @@ byte d6 d5 d4 d3 d2 d1 d0 .\"O values. .\"O \fIlb\fP (\fImb\fP, \fIrb\fP) are cleared when the left (middle, .\"O right) button is pressed: -\fB¥Þ¥¦¥¹¥·¥¹¥Æ¥à¥º\fP¥×¥í¥È¥³¥ë¤Ï¡¢1200 bits/sec¤Ç¡¢1 ¥¹¥¿¡¼¥È¥Ó¥Ã¥È¡¢ -8 ¥Ç¡¼¥¿¥Ó¥Ã¥È¡¢¥Ñ¥ê¥Æ¥£¤Ê¤·¡¢2 ¥¹¥È¥Ã¥×¥Ó¥Ã¥È¤Ç¤¢¤ë¡£ -¥Ç¡¼¥¿¤Ï¡¢RxD ¤Ë 5 ¥Ð¥¤¥È¤Î¥Ñ¥±¥Ã¥È¤È¤·¤ÆÁ÷¤é¤ì¤ë¡£\fIdx\fP ¤Ï 2 ¤Ä¤Î -2 ¤ÎÊä¿ô¤ÎϤȤ·¤ÆÁ÷¤é¤ì¡¢\fIdy\fP ¤Ï 2 ¤Ä¤Î 2 ¤ÎÊä¿ô¤ÎϤÎÈÝÄê -¤È¤·¤ÆÁ÷¤é¤ì¤ë¡£º¸(Ãæ¡¢±¦)¤Î¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤¿»þ¤Ë¤Ï\fIlb\fP -(\fImb\fP, \fIrb\fP) ¤¬¥¯¥ê¥¢¤µ¤ì¤ë¡£ +\fBマウスシステムズ\fPプロトコルは、1200 bits/secで、1 スタートビット、 +8 データビット、パリティなし、2 ストップビットである。 +データは、RxD に 5 バイトのパケットとして送られる。\fIdx\fP は 2 つの +2 の補数の和として送られ、\fIdy\fP は 2 つの 2 の補数の和の否定 +として送られる。左(中、右)のボタンが押された時には\fIlb\fP +(\fImb\fP, \fIrb\fP) がクリアされる。 .TS center; r c c c c c c c c. @@ -191,15 +191,15 @@ byte d7 d6 d5 d4 d3 d2 d1 d0 .\"O Bytes 4 and 5 describe the change that occurred since bytes 2 and 3 .\"O were transmitted. -Âè 4,5 ¥Ð¥¤¥È¤Ë¤Ï¡¢Âè 2,3 ¥Ð¥¤¥È¤¬Á÷¤é¤ì¤¿¤¢¤ÈÀ¸¤¸¤¿Êѹ¹¤¬µ­½Ò¤µ¤ì¤ë¡£ +第 4,5 バイトには、第 2,3 バイトが送られたあと生じた変更が記述される。 .\"O .SS "Sun protocol" -.SS "¥µ¥ó ¥×¥í¥È¥³¥ë(Sun protocol)" +.SS "サン プロトコル(Sun protocol)" .\"O The \fBSun\fP protocol is the 3-byte version of the above 5-byte .\"O Mousesystems protocol: the last two bytes are not sent. -\fB¥µ¥ó\fP ¥×¥í¥È¥³¥ë¤Ï¡¢¾åµ­¤Î 5 ¥Ð¥¤¥È ¥Þ¥¦¥¹¥·¥¹¥Æ¥à¥×¥í¥È¥³¥ë¤Î 3 -¥Ð¥¤¥ÈÈǤǤ¹¡£¸å¤Î 2 ¥Ð¥¤¥È¤ÏÁ÷¤é¤ì¤Þ¤»¤ó¡£ +\fBサン\fP プロトコルは、上記の 5 バイト マウスシステムプロトコルの 3 +バイト版です。後の 2 バイトは送られません。 .\"O .SS "MM protocol" -.SS "MM ¥×¥í¥È¥³¥ë(MM protocol)" +.SS "MM プロトコル(MM protocol)" .\"O The \fBMM\fP protocol uses 1 start bit, 8 data bits, odd parity and one .\"O stop bit at the speed of 1200 bits/sec. .\"O Data is sent to RxD in 3-byte @@ -208,11 +208,11 @@ byte d7 d6 d5 d4 d3 d2 d1 d0 .\"O sign bit indicating a negative value. .\"O \fIlb\fP (\fImb\fP, \fIrb\fP) are .\"O set when the left (middle, right) button is pressed: -\fBMM\fP ¥×¥í¥È¥³¥ë¤Ï 1200 bits/sec ¤Ç 1 ¥¹¥¿¡¼¥È¥Ó¥Ã¥È¡¢8 ¥Ç¡¼¥¿¥Ó¥Ã -¥È¡¢´ñ¿ô¥Ñ¥ê¥Æ¥£¡¢ 1 ¥¹¥È¥Ã¥×¥Ó¥Ã¥È¤ò»È¤¦¡£¥Ç¡¼¥¿¤Ï RxD ¤Ë 3 ¥Ð¥¤¥È¤Î¥Ñ -¥±¥Ã¥È¤È¤·¤ÆÁ÷¤é¤ì¤ë¡£\fIdx\fP ¤È \fIdy\fP ¤Ï°ì¤Ä¤ÎÉä¹æ¤Ä¤­¤ÎÃͤȤ·¤Æ -Á÷¤é¤ì¡¢¥µ¥¤¥ó¥Ó¥Ã¥È¤ÏÉé¤ÎÃͤòɽ¤¹¡£º¸(Ãæ¡¢±¦)¤Î¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤¿»þ¤Ë¤Ï -\fIlb\fP (\fImb\fP, \fIrb\fP)¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +\fBMM\fP プロトコルは 1200 bits/sec で 1 スタートビット、8 データビッ +ト、奇数パリティ、 1 ストップビットを使う。データは RxD に 3 バイトのパ +ケットとして送られる。\fIdx\fP と \fIdy\fP は一つの符号つきの値として +送られ、サインビットは負の値を表す。左(中、右)のボタンが押された時には +\fIlb\fP (\fImb\fP, \fIrb\fP)がセットされる。 .TS center; r c c c c c c c c. @@ -222,12 +222,12 @@ byte d7 d6 d5 d4 d3 d2 d1 d0 3 0 dy6 dy5 dy4 dy3 dy2 dy1 dy0 .TE .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .TP .I /dev/mouse .\"O A commonly used symlink pointing to a mouse device. -°ìÈÌŪ¤Ë¥Þ¥¦¥¹¥Ç¥Ð¥¤¥¹¤ò¤µ¤¹¤Î¤Ë»È¤ï¤ì¤ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯ +一般的にマウスデバイスをさすのに使われるシンボリックリンク .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ttyS (4), .BR gpm (8) diff --git a/draft/man4/null.4 b/draft/man4/null.4 index 5441a66e..a81bc1c1 100644 --- a/draft/man4/null.4 +++ b/draft/man4/null.4 @@ -31,31 +31,31 @@ .\" Japanese Version Last Modified Sun Jan 11 04:04:34 JST 1998 .\" by ISHIKAWA Mutsumi .\" -.\" WORD: special file ¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë +.\" WORD: special file スペシャルファイル .\" WORD: end of file end of file -.\" WORD: \0 character \0 ʸ»ú(null ʸ»ú) -.\" WORD: device ¥Ç¥Ð¥¤¥¹ +.\" WORD: \0 character \0 文字(null 文字) +.\" WORD: device デバイス .\" .TH NULL 4 1992-11-21 "Linux" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 .\"O null, zero \- data sink -null, zero \- ¥Ç¡¼¥¿¤ÎÁݤ­¤À¤á -.SH ÀâÌÀ +null, zero \- データの掃きだめ +.SH 説明 .\"O Data written to a \fBnull\fP or \fBzero\fP special file is discarded. -\fBnull\fP ¤Þ¤¿¤Ï \fBzero\fP ¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë(special file)¤Ë -½ñ¤«¤ì¤¿¥Ç¡¼¥¿¤Ï¼Î¤Æ¤é¤ì¤ë¡£ +\fBnull\fP または \fBzero\fP スペシャルファイル(special file)に +書かれたデータは捨てられる。 .PP .\"O Reads from the \fBnull\fP special file always return end of file (i.e., .\"O .BR read (2) .\"O returns 0), whereas .\"O reads from \fBzero\fP always return bytes containing zero (\e0 characters). -\fBnull\fP ¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤òÆɤà¤È¾ï¤Ë end of file ¤¬ÊÖ¤µ¤ì (¤Ä¤Þ¤ê¡¢ +\fBnull\fP スペシャルファイルを読むと常に end of file が返され (つまり、 .BR read (2) -¤Ï 0 ¤òÊÖ¤¹)¡¢ÂоÈŪ -¤Ë \fBzero\fP ¤òÆɤà¤È¾ï¤Ë¥Ð¥¤¥È¿ô 0 (\e0 ʸ»ú) ¤¬ÊÖ¤µ¤ì¤ë¡£ +は 0 を返す)、対照的 +に \fBzero\fP を読むと常にバイト数 0 (\e0 文字) が返される。 .LP .\"O \fBnull\fP and \fBzero\fP are typically created by: -\fBnull\fP ¤È \fBzero\fP ¤Ï°ìÈÌŪ¤Ë¼¡¤Î¤è¤¦¤Ë¤·¤Æºî¤é¤ì¤ë: +\fBnull\fP と \fBzero\fP は一般的に次のようにして作られる: .RS .sp mknod \-m 666 /dev/null c 1 3 @@ -64,18 +64,18 @@ mknod \-m 666 /dev/zero c 1 5 .br chown root:root /dev/null /dev/zero .RE -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .I /dev/null .br .I /dev/zero -.SH Ãí°Õ +.SH 注意 .\"O If these devices are not writable and readable for all users, many .\"O programs will act strangely. -¤³¤ì¤é¤Î¥Ç¥Ð¥¤¥¹¤¬Á´¤Æ¤Î¥æ¡¼¥¶¤ËÂФ·¤ÆÆɤ߽ñ¤­²Äǽ¤Ç¤Ê¤¤¾ì¹ç¡¢ -¿¤¯¤Î¥×¥í¥°¥é¥à¤ÎÆ°ºî¤¬¤ª¤«¤·¤¯¤Ê¤ë¤À¤í¤¦¡£ -.SH ´ØÏ¢¹àÌÜ +これらのデバイスが全てのユーザに対して読み書き可能でない場合、 +多くのプログラムの動作がおかしくなるだろう。 +.SH 関連項目 .BR chown (1), .BR mknod (1), .BR full (4) -.\" .SH ËÝÌõ¼Ô -.\" ÀÐÀî ËÓ +.\" .SH 翻訳者 +.\" 石川 睦 diff --git a/draft/man4/pts.4 b/draft/man4/pts.4 index 1272bd2a..9e98f12b 100644 --- a/draft/man4/pts.4 +++ b/draft/man4/pts.4 @@ -8,24 +8,24 @@ .\" Translated Tue Jul 8 00:28:17 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: pseudoterminal µ¼»÷üËö -.\"WORD: pts µ¼»÷üËö +.\"WORD: pseudoterminal 擬似端末 +.\"WORD: pts 擬似端末 .\" .TH PTS 4 2002-10-09 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O ptmx, pts \- pseudoterminal master and slave -ptmx, pts \- µ¼»÷üËö¤Î¥Þ¥¹¥¿¤È¥¹¥ì¡¼¥Ö +ptmx, pts \- 擬似端末のマスタとスレーブ .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The file \fI/dev/ptmx\fP is a character file with major number 5 and .\"O minor number 2, usually of mode 0666 and owner.group of root.root. .\"O It is used to create a pseudoterminal master and slave pair. -¥Õ¥¡¥¤¥ë \fI/dev/ptmx\fP ¤Ï¡¢¥á¥¸¥ã¡¼¥Ê¥ó¥Ð¡¼ (major number) 5¡¢ -¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼ (minor number) 2 ¤ò»ý¤Ä¥­¥ã¥é¥¯¥¿¡¦¥Õ¥¡¥¤¥ë¤Ç¤¢¤ê¡¢ -Ä̾¥â¡¼¥É¤Ï 0666 ¤Ç¡¢½êÍ­¼Ô.¥°¥ë¡¼¥×¤Ï root.root ¤Ç¤¢¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢µ¼»÷üËö (pseudoterminal) ¤Î¥Þ¥¹¥¿¤È¥¹¥ì¡¼¥Ö¤Î -¥Ú¥¢¤òºîÀ®¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ +ファイル \fI/dev/ptmx\fP は、メジャーナンバー (major number) 5、 +マイナーナンバー (minor number) 2 を持つキャラクタ・ファイルであり、 +通常、モードは 0666 で、所有者.グループは root.root である。 +このファイルは、擬似端末 (pseudoterminal) のマスタとスレーブの +ペアを作成するために使用される。 .PP .\"O When a process opens \fI/dev/ptmx\fP, it gets a file .\"O descriptor for a pseudoterminal master (PTM), @@ -36,39 +36,39 @@ ptmx, pts \- .\"O is an independent PTM with its own associated PTS, whose path can .\"O be found by passing the descriptor to .\"O .BR ptsname (3). -¥×¥í¥»¥¹¤¬ \fI/dev/ptmx\fP ¤ò¥ª¡¼¥×¥ó¤¹¤ë¤È¡¢¤½¤Î¥×¥í¥»¥¹¤Ë¤Ï -µ¼»÷üËö¥Þ¥¹¥¿ (pseudoterminal master; PTM) ¤Ø¤Î¥Õ¥¡¥¤¥ë¡¦ -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÊÖ¤µ¤ì¡¢ +プロセスが \fI/dev/ptmx\fP をオープンすると、そのプロセスには +擬似端末マスタ (pseudoterminal master; PTM) へのファイル・ +ディスクリプタが返され、 .I /dev/pts -¥Ç¥£¥ì¥¯¥È¥ê¤Ëµ¼»÷üËö¥¹¥ì¡¼¥Ö (pseudoterminal slave; PTS) -¥Ç¥Ð¥¤¥¹¤¬ºîÀ®¤µ¤ì¤ë¡£ -\fI/dev/ptmx\fP ¤ò¥ª¡¼¥×¥ó¤·¤ÆÆÀ¤é¤ì¤ë¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï -¤½¤ì¤¾¤ìÆÈΩ¤Î PTM ¤Ç¤¢¤ê¡¢Âбþ¤¹¤ë PTS ¤ò³Æ¡¹»ý¤Ä¡£ -PTS ¤Î¥Ñ¥¹Ì¾¤Ï¡¢PTM ¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò +ディレクトリに擬似端末スレーブ (pseudoterminal slave; PTS) +デバイスが作成される。 +\fI/dev/ptmx\fP をオープンして得られるファイル・ディスクリプタは +それぞれ独立の PTM であり、対応する PTS を各々持つ。 +PTS のパス名は、PTM のファイル・ディスクリプタを .BR ptsname (3) -¤ËÅϤ¹¤ÈÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ +に渡すと知ることができる。 .PP .\"O Before opening the pseudoterminal slave, you must pass the master's file .\"O descriptor to .\"O .BR grantpt (3) .\"O and .\"O .BR unlockpt (3). -µ¼»÷üËö¥¹¥ì¡¼¥Ö¤ò¥ª¡¼¥×¥ó¤¹¤ëÁ°¤Ë¡¢É¬¤º¡¢¥Þ¥¹¥¿¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò -°ú¤­¿ô¤È¤·¤Æ +擬似端末スレーブをオープンする前に、必ず、マスタのファイル・ディスクリプタを +引き数として .BR grantpt (3) -¤È +と .BR unlockpt (3) -¤ò¸Æ¤Ó½Ð¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を呼び出さなければならない。 .PP .\"O Once both the pseudoterminal master and slave are open, the slave provides .\"O processes with an interface that is identical to that of a real terminal. -µ¼»÷üËö¤Î¥Þ¥¹¥¿¤È¥¹¥ì¡¼¥Ö¤ÎξÊý¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¸å¤Ï¡¢¥¹¥ì¡¼¥Ö¤Ï¡¢ -¥×¥í¥»¥¹¤ËÂФ·¤Æ¡¢¼ÂüËö (real terminal) ¤ÈÁ´¤¯Æ±¤¸¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤¹¤ë¡£ +擬似端末のマスタとスレーブの両方がオープンされた後は、スレーブは、 +プロセスに対して、実端末 (real terminal) と全く同じインタフェースを提供する。 .PP .\"O Data written to the slave is presented on the master descriptor as input. .\"O Data written to the master is presented to the slave as input. -¥¹¥ì¡¼¥Ö¤Ë½ñ¤«¤ì¤¿¥Ç¡¼¥¿¤Ï¥Þ¥¹¥¿¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ¹¤ëÆþÎϤȤ·¤Æ°·¤ï¤ì¡¢ -¥Þ¥¹¥¿¤Ë½ñ¤«¤ì¤¿¥Ç¡¼¥¿¤Ï¥¹¥ì¡¼¥Ö¤ËÂФ¹¤ëÆþÎϤȤ·¤Æ°·¤ï¤ì¤ë¡£ +スレーブに書かれたデータはマスタ・ディスクリプタに対する入力として扱われ、 +マスタに書かれたデータはスレーブに対する入力として扱われる。 .PP .\"O In practice, pseudoterminals are used for implementing terminal emulators .\"O such as @@ -80,59 +80,59 @@ PTS .\"O .BR sshd (8), .\"O in which data read from the pseudoterminal master is sent across the network .\"O to a client program that is connected to a terminal or terminal emulator. -¼ÂÎã¤ò¤¢¤²¤ë¤È¡¢µ¼»÷üËö¤Ï +実例をあげると、擬似端末は .BR xterm (1) -¤Î¤è¤¦¤ÊüËö¥¨¥ß¥å¥ì¡¼¥¿¤ò¼ÂÁõ¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ -üËö¥¨¥ß¥å¥ì¡¼¥¿¤Ç¤Ï¡¢µ¼»÷üËö¤Î¥Þ¥¹¥¿¤«¤éÆɤ߹þ¤Þ¤ì¤¿¥Ç¡¼¥¿¤Ï¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤È¤Ã¤Æ¼ÂüËö¤Î¥Ç¡¼¥¿¤ÈÁ´¤¯Æ±¤¸¤â¤Î¤Î¤è¤¦¤Ë¸«¤¨¤ë¡£ -¤Þ¤¿¡¢ +のような端末エミュレータを実装するのに使用されている。 +端末エミュレータでは、擬似端末のマスタから読み込まれたデータは、 +アプリケーションにとって実端末のデータと全く同じもののように見える。 +また、 .BR sshd (8) -¤Î¤è¤¦¤Ê¥ê¥â¡¼¥È¡¦¥í¥°¥¤¥óÍÑ¤Î¥×¥í¥°¥é¥à¤Î¼ÂÁõ¤Ç¤Ï¡¢ -µ¼»÷üËö¥Þ¥¹¥¿¤«¤éÆɤ߹þ¤Þ¤ì¤¿¥Ç¡¼¥¿¤Ï¡¢¥Í¥Ã¥È¥ï¡¼¥¯¤ò·Ðͳ¤·¤Æ¡¢ -üËö¤äüËö¥¨¥ß¥å¥ì¡¼¥¿¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¥¯¥é¥¤¥¢¥ó¥È¡¦¥×¥í¥°¥é¥à¤ËÁ÷¿®¤µ¤ì¤ë¡£ +のようなリモート・ログイン用のプログラムの実装では、 +擬似端末マスタから読み込まれたデータは、ネットワークを経由して、 +端末や端末エミュレータに接続されているクライアント・プログラムに送信される。 .PP .\"O Pseudoterminals can also be used to send input to programs that normally .\"O refuse to read input from pipes (such as .\"O .BR su (1), .\"O and .\"O .BR passwd (1)). -µ¼»÷üËö¤Ï¡¢ +擬似端末は、 .RB ( su (1) -¤ä +や .BR passwd (1) -¤Î¤è¤¦¤Ê) Ä̾ï¤Ï¥Ñ¥¤¥×¤«¤é¤ÎÆþÎϤòµñÈݤ¹¤ë¥×¥í¥°¥é¥à¤Ë¡¢ -ÆþÎϤòÁ÷¿®¤¹¤ë¤¿¤á¤Ë¤â»ÈÍѤǤ­¤ë¡£ +のような) 通常はパイプからの入力を拒否するプログラムに、 +入力を送信するためにも使用できる。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .IR /dev/ptmx , .I /dev/pts/* .\"O .SH NOTES -.SH È÷¹Í +.SH 備考 .\"O The Linux support for the above (known as UNIX 98 pseudoterminal naming) .\"O is done using the .\"O .I devpts .\"O file system, that should be mounted on .\"O .IR /dev/pts . -(UNIX 98 pseudoterminal naming ¤È¸Æ¤Ð¤ì¤ë) -¾åµ­¤Îµ¡Ç½¤Î Linux ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï¡¢Ä̾ï +(UNIX 98 pseudoterminal naming と呼ばれる) +上記の機能の Linux でのサポートは、通常 .I /dev/pts -¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤ë¤Ï¤º¤Î +にマウントされるはずの .I devpts -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òÄ̤·¤Æ¼Â¸½¤µ¤ì¤Æ¤¤¤ë¡¢ +ファイルシステムを通して実現されている、 .LP .\"O Before this UNIX 98 scheme, master pseudoterminals were called .\"O .IR /dev/ptyp0 ", ..." .\"O and slave pseudoterminals .\"O .IR /dev/ttyp0 ", ..." .\"O and one needed lots of preallocated device nodes. -¤³¤Î UNIX 98 ¥¹¥­¡¼¥à¤¬Æ³Æþ¤µ¤ì¤ëÁ°¤Ï¡¢¥Þ¥¹¥¿µ¼»÷üËö¤Ï +この UNIX 98 スキームが導入される前は、マスタ擬似端末は .IR /dev/ptyp0 ", ..." -¡¢¥¹¥ì¡¼¥Öµ¼»÷üËö¤Ï +、スレーブ擬似端末は .IR /dev/ttyp0 ", ..." -¤È¸Æ¤Ð¤ì¤Æ¤ª¤ê¡¢¤¢¤é¤«¤¸¤á¤¿¤¯¤µ¤ó¤Î¥Ç¥Ð¥¤¥¹¡¦¥Î¡¼¥É¤ò³ä¤êÅö¤Æ¤Æ -¤ª¤¯É¬Íפ¬¤¢¤Ã¤¿¡£ +と呼ばれており、あらかじめたくさんのデバイス・ノードを割り当てて +おく必要があった。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getpt (3), .BR grantpt (3), .BR ptsname (3), diff --git a/draft/man4/ram.4 b/draft/man4/ram.4 index 967ca41c..fe3aa0c0 100644 --- a/draft/man4/ram.4 +++ b/draft/man4/ram.4 @@ -30,28 +30,28 @@ .\" Japanese Version Last Modified Sun Jan 11 03:55:54 1998 .\" by ISHIKAWA Mutsumi .\" -.\" WORD: ram disk ¥é¥à¥Ç¥£¥¹¥¯ -.\" WORD: raw mode ¥í¡¼¥â¡¼¥É -.\" WORD: block device ¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹ +.\" WORD: ram disk ラムディスク +.\" WORD: raw mode ローモード +.\" WORD: block device ブロックデバイス .TH RAM 4 1992-11-21 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -ram \- RAM ¥Ç¥£¥¹¥¯¥Ç¥Ð¥¤¥¹ -.SH ÀâÌÀ -\fIram\fP ¥Ç¥Ð¥¤¥¹¤Ï RAM ¥Ç¥£¥¹¥¯¤Ë¥í¡¼¥â¡¼¥É (raw mode) ¤Ç¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Î -¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹ (block device) ¤Ç¤¢¤ë¡£ +.SH 名前 +ram \- RAM ディスクデバイス +.SH 説明 +\fIram\fP デバイスは RAM ディスクにローモード (raw mode) でアクセスするための +ブロックデバイス (block device) である。 .LP -ŵ·¿Åª¤Ë¤Ï¼¡¤Î¤è¤¦¤Ë¤·¤Æºî¤é¤ì¤ë¡£: +典型的には次のようにして作られる。: .RS .sp mknod \-m 660 /dev/ram b 1 1 .br chown root:disk /dev/ram .RE -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル /dev/ram -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chown (1), .BR mknod (1), .BR mount (8) -.\" .SH ËÝÌõ¼Ô -.\" ÀÐÀî ËÓ +.\" .SH 翻訳者 +.\" 石川 睦 diff --git a/draft/man4/random.4 b/draft/man4/random.4 index 6157a308..39ed8a5c 100644 --- a/draft/man4/random.4 +++ b/draft/man4/random.4 @@ -26,55 +26,55 @@ .\" Updated & Modified Fri Apr 22 03:44:01 JST 2005 by Yuichi SATO .\" Updated 2008-08-13, Akihiro MOTOKI , LDP v3.05 .\" -.\"WORD: random generator Íð¿ô¥¸¥§¥Í¥ì¡¼¥¿ +.\"WORD: random generator 乱数ジェネレータ .\" .TH RANDOM 4 2010-08-29 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O random, urandom \- kernel random number source devices -random, urandom \- ¥«¡¼¥Í¥ëÍð¿ô¥½¡¼¥¹¥Ç¥Ð¥¤¥¹ +random, urandom \- カーネル乱数ソースデバイス .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The character special files \fI/dev/random\fP and .\"O \fI/dev/urandom\fP (present since Linux 1.3.30) .\"O provide an interface to the kernel's random number generator. -(Linux 1.3.30 ¤«¤éÄ󶡤µ¤ì¤Æ¤¤¤ë) \fI/dev/random\fP ¡¢ -\fI/dev/urandom\fP ¥­¥ã¥é¥¯¥¿¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤Ï -¥«¡¼¥Í¥ëÍð¿ô¥¸¥§¥Í¥ì¡¼¥¿¤Ø¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤¹¤ë¡£ +(Linux 1.3.30 から提供されている) \fI/dev/random\fP 、 +\fI/dev/urandom\fP キャラクタスペシャルファイルは +カーネル乱数ジェネレータへのインタフェースを提供する。 .\"O File \fI/dev/random\fP has major device number 1 .\"O and minor device number 8. .\"O File \fI/dev/urandom\fP has major device number 1 and minor device number 9. -\fI/dev/random\fP ¥Õ¥¡¥¤¥ë¤Ï¥á¥¸¥ã¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ 1 -¥Þ¥¤¥Ê¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ 8 ¤Ç¤¢¤ë¡£ -\fI/dev/urandom\fP ¤Ï¥á¥¸¥ã¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ 1 -¥Þ¥¤¥Ê¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ 9 ¤Ç¤¢¤ë¡£ +\fI/dev/random\fP ファイルはメジャーデバイス番号 1 +マイナーデバイス番号 8 である。 +\fI/dev/urandom\fP はメジャーデバイス番号 1 +マイナーデバイス番号 9 である。 .LP .\"O The random number generator gathers environmental noise .\"O from device drivers and other sources into an entropy pool. -Íð¿ô¥¸¥§¥Í¥ì¡¼¥¿¤Ï¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤ä¤½¤Î¾¤Î¸»¤«¤é¤Î´Ä¶­¥Î¥¤¥º¤ò -¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤Ø½¸¤á¤ë¡£ +乱数ジェネレータはデバイスドライバやその他の源からの環境ノイズを +エントロピー・プールへ集める。 .\"O The generator also keeps an estimate of the .\"O number of bits of noise in the entropy pool. -¤Þ¤¿¡¢¥¸¥§¥Í¥ì¡¼¥¿¤Ï¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ëÆâ¤Î¥Î¥¤¥º¤Î¥Ó¥Ã¥È¿ô¤Î¿äÄêÃͤò -ÊÝ»ý¤¹¤ë¡£ +また、ジェネレータはエントロピー・プール内のノイズのビット数の推定値を +保持する。 .\"O From this entropy pool random numbers are created. -¤³¤Î¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤«¤éÍð¿ô¤¬À¸À®¤µ¤ì¤ë¡£ +このエントロピー・プールから乱数が生成される。 .LP .\"O When read, the \fI/dev/random\fP device will only return random bytes .\"O within the estimated number of bits of noise in the entropy .\"O pool. .\"O \fI/dev/random\fP should be suitable for uses that need very .\"O high quality randomness such as one-time pad or key generation. -Æɤ߹þ¤ß¤¬¹Ô¤ï¤ì¤ë¤È¡¢ +読み込みが行われると、 \fI/dev/random\fP -¥Ç¥Ð¥¤¥¹¤Ï¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤Î¥Î¥¤¥º¥Ó¥Ã¥È¤Î¿ô¤Î¿äÄêÃͤΤ¦¤Á¡¢ -¥é¥ó¥À¥à¥Ð¥¤¥È¤Î¤ß¤òÊÖ¤¹¡£ -\fI/dev/random\fP ¤Ï¥ï¥ó¥¿¥¤¥à¥Ñ¥Ã¥É (one-time pad) ¤ä¸°¤ÎÀ¸À®¤Î¤è¤¦¤Ê -Èó¾ï¤Ë¹â¤¤ÉʼÁ¤ò»ý¤Ã¤¿Ìµºî°ÙÀ­¤¬É¬ÍפˤʤëÍÑÅӤ˸þ¤¤¤Æ¤¤¤ë¤À¤í¤¦¡£ +デバイスはエントロピー・プールのノイズビットの数の推定値のうち、 +ランダムバイトのみを返す。 +\fI/dev/random\fP はワンタイムパッド (one-time pad) や鍵の生成のような +非常に高い品質を持った無作為性が必要になる用途に向いているだろう。 .\"O When the entropy pool is empty, reads from \fI/dev/random\fP will block .\"O until additional environmental noise is gathered. -¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤¬¶õ¤Î»þ¤Ï¡¢\fI/dev/random\fP ¤«¤é¤ÎÆɤ߽Ф·¤Ï¡¢ -¹¹¤Ê¤ë´Ä¶­¥Î¥¤¥º¤¬ÆÀ¤é¤ì¤ë¤Þ¤Ç¡¢¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¡£ +エントロピー・プールが空の時は、\fI/dev/random\fP からの読み出しは、 +更なる環境ノイズが得られるまで、ブロックされる。 .LP .\"O A read from the \fI/dev/urandom\fP device will not block .\"O waiting for more entropy. @@ -86,17 +86,17 @@ random, urandom \- .\"O exist. .\"O If this is a concern in your application, use \fI/dev/random\fP .\"O instead. -\fI/dev/urandom\fP ¥Ç¥Ð¥¤¥¹¤«¤éÆɤ߽Ф·¤Ç¤Ï¡¢ -¥¨¥ó¥È¥í¥Ô¡¼¤¬¤è¤ê¹â¤¯¤Ê¤ë¤Î¤òÂԤĤ¿¤á¤Î¥Ö¥í¥Ã¥¯¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ -¤½¤Î·ë²Ì¡¢¤â¤·¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤Ë½½Ê¬¤Ê¥¨¥ó¥È¥í¥Ô¡¼¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢ -ÊÖ¤êÃͤϤ³¤Î¥É¥é¥¤¥Ð¤Ç»È¤ï¤ì¤Æ¤¤¤ë¥¢¥ë¥´¥ê¥º¥à¤Ë´ð¤Å¤¯°Å¹æ¹¶·â¤ËÂФ·¤Æ¡¢ -ÏÀÍýŪ¤Ë¤Ï¼å¤¯¤Ê¤ë¤³¤È¤Ë¤Ê¤ë¡£ -¤³¤Î¹¶·â¤ò¤É¤Î¤è¤¦¤Ë¹Ô¤¦¤«¤È¤¤¤¦»ö¤Ë¤Ä¤¤¤Æ¤Ï¡¢¸½ºß¸¦µæÏÀʸ¤Ê¤É¤Î -·Á¤ÇÆþ¼ê¤Ç¤­¤ë»ñÎÁ¤Ï¤Ê¤¤¡¢¤·¤«¤·¡¢¤½¤Î¤è¤¦¤Ê¹¶·â¤ÏÏÀÍýŪ¤Ë¸ºß²Äǽ¤Ç¤¢¤ë¡£ -¤â¤·¡¢¤³¤Î»ö¤¬¿´Çۤʤ顢(\fI/dev/urandom\fP ¤Ç¤Ï¤Ê¤¯) -\fI/dev/random\fP ¤òÍøÍѤ¹¤ì¤Ð¤¤¤¤¡£ +\fI/dev/urandom\fP デバイスから読み出しでは、 +エントロピーがより高くなるのを待つためのブロックは行われない。 +その結果、もしエントロピー・プールに十分なエントロピーが存在しない場合、 +返り値はこのドライバで使われているアルゴリズムに基づく暗号攻撃に対して、 +論理的には弱くなることになる。 +この攻撃をどのように行うかという事については、現在研究論文などの +形で入手できる資料はない、しかし、そのような攻撃は論理的に存在可能である。 +もし、この事が心配なら、(\fI/dev/urandom\fP ではなく) +\fI/dev/random\fP を利用すればいい。 .\"O .SS Usage -.SS »È¤¤Êý +.SS 使い方 .\"O If you are unsure about whether you should use .\"O .IR /dev/random .\"O or @@ -106,14 +106,14 @@ random, urandom \- .\"O .IR /dev/urandom .\"O should be used for everything except long-lived GPG/SSL/SSH keys. .I /dev/random -¤È +と .I /dev/urandom -¤Î¤É¤Á¤é¤ò»È¤¦¤Ù¤­¤«Ì¤ä¿¾ì¹ç¡¢¤¿¤¤¤Æ¤¤¤Ï +のどちらを使うべきか迷った場合、たいていは .I /dev/urandom -¤ÎÊý¤ò»È¤¤¤¿¤¤¤È»×¤Ã¤Æ¤¤¤ë¤Ï¤º¤À¤í¤¦¡£ -°ìÈ̤ˡ¢Ä¹´ü¤ËÅϤäƻȤï¤ì¤ë GPG/SSL/SSH ¤Î¥­¡¼°Ê³°¤ÎÁ´¤Æ¤Î¤â¤Î¤Ë +の方を使いたいと思っているはずだろう。 +一般に、長期に渡って使われる GPG/SSL/SSH のキー以外の全てのものに .I /dev/urandom -¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +を使用すべきである。 .\"O If a seed file is saved across reboots as recommended below (all major .\"O Linux distributions have done this since 2000 at least), the output is @@ -126,17 +126,17 @@ random, urandom \- .\"O (or perform a read with timeout), .\"O and provide some sort of user notification if the desired .\"O entropy is not immediately available. -²¼µ­¤Ç¿ä¾©¤·¤Æ¤¤¤ë¤è¤¦¤ËºÆµ¯Æ°¤ÎÁ°¸å¤ÇÍð¿ô¼ï¥Õ¥¡¥¤¥ë¤¬Êݸ¤µ¤ì¤ë¾ì¹ç -(Á´¤Æ¤Î¼ç¤Ê Linux ¤Î¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ï¾¯¤Ê¤¯¤È¤â 2000 ǯ°Ê¹ß¤Ï -Íð¿ô¼ï¤òÊݸ¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë)¡¢µ¯Æ°¥·¡¼¥±¥ó¥¹¤Ë¤ª¤¤¤ÆÍð¿ô¼ï¤¬ -ºÆ¥í¡¼¥É¤µ¤ì¤¿Ä¾¸å¤«¤é¡¢¤½¤Î½ÐÎÏ¤Ï¥í¡¼¥«¥ë¤Î¥ë¡¼¥È¥¢¥¯¥»¥¹¤¬¤Ç¤­¤Ê¤¤ -¹¶·â¼Ô¤ËÂФ·¤Æ°Å¹æŪ¤Ë°ÂÁ´¤Ê¤â¤Î¤È¤Ê¤ê¡¢¥Í¥Ã¥È¥ï¡¼¥¯°Å¹æ²½¤Î¥»¥Ã¥·¥ç¥ó¥­¡¼ -¤È¤·¤Æ»È¤¦¤Ë¤Ï´°Á´¤ËºÇŬ¤Ê¤â¤Î¤È¤Ê¤ë¡£ +下記で推奨しているように再起動の前後で乱数種ファイルが保存される場合 +(全ての主な Linux のディストリビューションは少なくとも 2000 年以降は +乱数種を保存するようになっている)、起動シーケンスにおいて乱数種が +再ロードされた直後から、その出力はローカルのルートアクセスができない +攻撃者に対して暗号的に安全なものとなり、ネットワーク暗号化のセッションキー +として使うには完全に最適なものとなる。 .I /dev/random -¤«¤é¤ÎÆɤ߽Ф·¤ÏÄä»ß (block) ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç¡¢¥æ¡¼¥¶¤ÏÉáÄÌ -¤³¤Î¥Õ¥¡¥¤¥ë¤òÈóÄä»ß (nonblocking) ¥â¡¼¥É¤Ç³«¤³¤¦¤È¤· -(¤â¤·¤¯¤Ï¥¿¥¤¥à¥¢¥¦¥È¤ò»ØÄꤷ¤ÆÆɤ߽Ф·¤ò¼Â¹Ô¤·)¡¢´õ˾¤¹¤ë¥ì¥Ù¥ë¤Î -¥¨¥ó¥È¥í¥Ô¡¼¤Ï¤¹¤°¤Ë¤ÏÍøÍѤǤ­¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢²¿¤é¤«¤ÎÄÌÃΤò¹Ô¤¦¤³¤È¤À¤í¤¦¡£ +からの読み出しは停止 (block) する可能性があるので、ユーザは普通 +このファイルを非停止 (nonblocking) モードで開こうとし +(もしくはタイムアウトを指定して読み出しを実行し)、希望するレベルの +エントロピーはすぐには利用できない場合には、何らかの通知を行うことだろう。 .\"O The kernel random-number generator is designed to produce a small .\"O amount of high-quality seed material to seed a @@ -150,18 +150,18 @@ random, urandom \- .\"O .IR /dev/random ); .\"O unnecessarily reading large quantities of data from this device will have .\"O a negative impact on other users of the device. -¥«¡¼¥Í¥ë¤ÎÍð¿ô¥¸¥§¥Í¥ì¡¼¥¿¤Ï¡¢°Å¹æµ¿»÷Íð¿ô¥¸¥§¥Í¥ì¡¼¥¿ (Cryptographic -pseudo-random number generator; CPRNG) ¤Î¼ï¤È¤·¤Æ»ÈÍѤǤ­¤ë -¹âÉʼÁ¤ÊÍð¿ô¼ï¤ÎºàÎÁ¤ò¾¯¤·À¸À®¤¹¤ë¤¿¤á¤ËÀ߷פµ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï®Å٤ǤϤʤ¯°ÂÁ´À­¤ò½Å»ë¤·¤ÆÀ߷פµ¤ì¤Æ¤ª¤ê¡¢ -¥é¥ó¥À¥à¤Ê¥Ç¡¼¥¿¤òÂçÎ̤ËÀ¸À®¤¹¤ë¤Î¤Ë¤ÏÁ´¤¯¤â¤Ã¤ÆŬ¤·¤Æ¤¤¤Ê¤¤¡£ -¥æ¡¼¥¶¤Ï +カーネルの乱数ジェネレータは、暗号疑似乱数ジェネレータ (Cryptographic +pseudo-random number generator; CPRNG) の種として使用できる +高品質な乱数種の材料を少し生成するために設計されている。 +これは速度ではなく安全性を重視して設計されており、 +ランダムなデータを大量に生成するのには全くもって適していない。 +ユーザは .I /dev/urandom -(¤È +(と .IR /dev/random ) -¤«¤éÆɤ߽Ф¹Íð¿ô¼ï¤ÎºàÎÁ¤ÎÎ̤ò¤Ç¤­¤ë¤À¤±ÀáÌ󤹤٤­¤Ç¤¢¤ë¡£ -¤³¤Î¥Ç¥Ð¥¤¥¹¤«¤éÉÔɬÍפËÂçÎ̤Υǡ¼¥¿¤òÆɤ߽Ф¹¤È¡¢¤³¤Î¥Ç¥Ð¥¤¥¹¤ò»È¤¦ -¾¤Î¥æ¡¼¥¶¤Ë¥Þ¥¤¥Ê¥¹¤Î±Æ¶Á¤òÍ¿¤¨¤Æ¤·¤Þ¤¦¤À¤í¤¦¡£ +から読み出す乱数種の材料の量をできるだけ節約すべきである。 +このデバイスから不必要に大量のデータを読み出すと、このデバイスを使う +他のユーザにマイナスの影響を与えてしまうだろう。 .\"O The amount of seed material required to generate a cryptographic key .\"O equals the effective key size of the key. @@ -170,12 +170,12 @@ pseudo-random number generator; CPRNG) .\"O (it requires about 2^128 operations to break) so a key generator only .\"O needs 128 bits (16 bytes) of seed material from .\"O .IR /dev/random . -°Å¹æ¸°¤òÀ¸À®¤¹¤ë¤Î¤ËɬÍפÊÍð¿ô¼ï¤ÎºàÎÁ¤ÎÎ̤ϡ¢¸°¤Î¼Â¸ú¥µ¥¤¥º¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -Î㤨¤Ð¡¢3072 ¥Ó¥Ã¥È¤Î RSA ¤ª¤è¤Ó Diffie-Hellman ¤ÎÈëÌ©¸°¤Î¼Â¸ú¥µ¥¤¥º¤Ï -128 ¥Ó¥Ã¥È (¤³¤ÎÈëÌ©¸°¤òÇˤë¤Ë¤Ï 2^128 ²ó¤ÎÁàºî¤¬É¬ÍפȤ¤¤¦¤³¤È) ¤Ç¤¢¤ê¡¢ -¤½¤Î¤¿¤á¸°À¸À®´ï¤¬ +暗号鍵を生成するのに必要な乱数種の材料の量は、鍵の実効サイズと同じである。 +例えば、3072 ビットの RSA および Diffie-Hellman の秘密鍵の実効サイズは +128 ビット (この秘密鍵を破るには 2^128 回の操作が必要ということ) であり、 +そのため鍵生成器が .I /dev/random -¤«¤éÆɤ߽Ф¹É¬Íפ¬¤¢¤ëÍð¿ô¼ï¤ÎºàÎÁ¤ÎÎÌ¤Ï 128 ¥Ó¥Ã¥È (16 ¥Ð¥¤¥È) ¤À¤±¤Ç¤¢¤ë¡£ +から読み出す必要がある乱数種の材料の量は 128 ビット (16 バイト) だけである。 .\"O While some safety margin above that minimum is reasonable, as a guard .\"O against flaws in the CPRNG algorithm, no cryptographic primitive @@ -185,20 +185,20 @@ pseudo-random number generator; CPRNG) .\"O than one minute), that should be taken as a sign that its cryptography is .\"O .I not .\"O skilfully implemented. -CPRNG ¥¢¥ë¥´¥ê¥º¥à¤Î·ç´Ù¤ËÂФ¹¤ëÊݸî¤È¤·¤Æ¡¢¤³¤ÎºÇ¾®ÃͤËÂФ·¤Æ¤¤¤¯¤é¤«¤Î -°ÂÁ´¾å¤Î¥Þ¡¼¥¸¥ó¤ò¼è¤ë¤Î¤Ï¤â¤Ã¤È¤â¤À¤¬¡¢¸½ºßÍøÍѲÄǽ¤Ê°Å¹æ¥×¥ê¥ß¥Æ¥£¥Ö¤Ç -256 ¥Ó¥Ã¥È¤è¤ê¿¤¯¤Î°ÂÁ´¤ÊÍð¿ô¤òɬÍפȤ¹¤ë¤è¤¦¤Ê¤â¤Î¤Ï¤Ê¤¤¡£ -µ¯Æ°¤¹¤ëÅ٤ˡ¢¤â¤·¤¯¤ÏÍð¿ô¼ï¤òÊѹ¹¤¹¤ëÂÅÅö¤Ê´Ö³Ö (1 ʬ¤è¤êû¤¯¤Ê¤ë¤³¤È¤Ï¤Ê¤¤) -¤ÎÅ٤ˡ¢¥«¡¼¥Í¥ë¤ÎÍð¿ô¥×¡¼¥ë¤«¤é 256 ¥Ó¥Ã¥È (32 ¥Ð¥¤¥È) ¤è¤ê¤¿¤¯¤µ¤óÆɤ߽Ф¹ -¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¥×¥í¥°¥é¥à¤Î°Å¹æ½èÍý¤¬¤¦¤Þ¤¯¼ÂÁõ¤µ¤ì¤Æ¡Ö¤¤¤Ê¤¤¡×²ÄǽÀ­¤¬ -¤¢¤ë¤È¹Í¤¨¤ë¤Ù¤­¤Ç¤¢¤í¤¦¡£ +CPRNG アルゴリズムの欠陥に対する保護として、この最小値に対していくらかの +安全上のマージンを取るのはもっともだが、現在利用可能な暗号プリミティブで +256 ビットより多くの安全な乱数を必要とするようなものはない。 +起動する度に、もしくは乱数種を変更する妥当な間隔 (1 分より短くなることはない) +の度に、カーネルの乱数プールから 256 ビット (32 バイト) よりたくさん読み出す +ような場合には、そのプログラムの暗号処理がうまく実装されて「いない」可能性が +あると考えるべきであろう。 .\"O .SS Configuration -.SS ÀßÄê +.SS 設定 .\"O If your system does not have .\"O \fI/dev/random\fP and \fI/dev/urandom\fP created already, they .\"O can be created with the following commands: -¥·¥¹¥Æ¥à¤Ë¤¢¤é¤«¤¸¤áºîÀ®¤µ¤ì¤¿ \fI/dev/random\fP ¤È -\fI/dev/urandom\fP ¤¬Â¸ºß¤·¤Ê¤¤¤Ê¤é¡¢¼¡¤Î¤è¤¦¤Ê¥³¥Þ¥ó¥É¤ÇºîÀ®¤Ç¤­¤ë¡£ +システムにあらかじめ作成された \fI/dev/random\fP と +\fI/dev/urandom\fP が存在しないなら、次のようなコマンドで作成できる。 .nf mknod \-m 644 /dev/random c 1 8 @@ -208,28 +208,28 @@ CPRNG .\"O When a Linux system starts up without much operator interaction, .\"O the entropy pool may be in a fairly predictable state. -¥ª¥Ú¥ì¡¼¥¿¤ÎÁàºî¤Ê¤·¤Ë Linux ¥·¥¹¥Æ¥à¤¬µ¯Æ°¤·¤¿Ä¾¸å¤Ï¡¢ -¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤Ï°Õ³°À­¤Î˳¤·¤¤¶Ñ°ì¤Ê¾õÂ֤ˤ¢¤ë¤À¤í¤¦¡£ +オペレータの操作なしに Linux システムが起動した直後は、 +エントロピー・プールは意外性の乏しい均一な状態にあるだろう。 .\"O This reduces the actual amount of noise in the entropy pool .\"O below the estimate. .\"O In order to counteract this effect, it helps to carry .\"O entropy pool information across shut-downs and start-ups. -¤³¤ì¤Ë¤è¤ê¡¢¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤Î¼ÂºÝ¤Î¥Î¥¤¥ºÎ̤Ïɾ²ÁÃͤè¤ê¾¯¤Ê¤¯¤Ê¤ë¡£ -¤³¤Î¸ú²Ì¤òÂǤÁ¾Ã¤¹¤¿¤á¤Ë¡¢¥·¥ã¥Ã¥È¥À¥¦¥ó¤«¤é (¼¡¤Î) µ¯Æ°»þ¤Þ¤Ç»ý¤Á±Û¤·¤¿ -¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤Î¾ðÊ󤬽õ¤±¤Ë¤Ê¤ë¡£ +これにより、エントロピー・プールの実際のノイズ量は評価値より少なくなる。 +この効果を打ち消すために、シャットダウンから (次の) 起動時まで持ち越した +エントロピー・プールの情報が助けになる。 .\"O To do this, add the following lines to an appropriate script .\"O which is run during the Linux system start-up sequence: -¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤ò»ý¤Á±Û¤¹¤¿¤á¤Ë¤Ï¡¢ -Linux ¥·¥¹¥Æ¥à¤Îµ¯Æ°»þ¤Ë¼Â¹Ô¤µ¤ì¤ëŬÀڤʥ¹¥¯¥ê¥×¥È¤Ë¡¢ -°Ê²¼¤Î¹Ô¤òÄɲ乤ì¤Ð¤è¤¤: +エントロピー・プールを持ち越すためには、 +Linux システムの起動時に実行される適切なスクリプトに、 +以下の行を追加すればよい: .nf echo "Initializing random number generator..." random_seed=/var/run/random-seed .\"O # Carry a random seed from start-up to start-up .\"O # Load and then save the whole entropy pool - # Íð¿ô¼ï¤òº£²ó¤Î¥¹¥¿¡¼¥È¥¢¥Ã¥×¤«¤é¼¡²ó¤Î¥¹¥¿¡¼¥È¥¢¥Ã¥×¤Þ¤Ç»ý¤Á±Û¤¹¡£ - # ¥í¡¼¥É¤ò¹Ô¤¤¡¢¤½¤Î¸å¡¢Á´¤Æ¤Î¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤òÊݸ¤¹¤ë¡£ + # 乱数種を今回のスタートアップから次回のスタートアップまで持ち越す。 + # ロードを行い、その後、全てのエントロピー・プールを保存する。 if [ \-f $random_seed ]; then cat $random_seed >/dev/urandom else @@ -243,14 +243,14 @@ Linux .\"O Also, add the following lines in an appropriate script which is .\"O run during the Linux system shutdown: -¤Þ¤¿¡¢Linux ¥·¥¹¥Æ¥à¤Î¥·¥ã¥Ã¥È¥À¥¦¥ó»þ¤Ë¼Â¹Ô¤µ¤ì¤ëŬÀڤʥ¹¥¯¥ê¥×¥È¤Ë¡¢ -°Ê²¼¤Î¹Ô¤òÄɲ乤ì¤Ð¤è¤¤: +また、Linux システムのシャットダウン時に実行される適切なスクリプトに、 +以下の行を追加すればよい: .nf .\"O # Carry a random seed from shut-down to start-up .\"O # Save the whole entropy pool - # Íð¿ô¼ï¤òº£²ó¤Î¥·¥ã¥Ã¥È¥À¥¦¥ó¤«¤é¼¡²ó¤Î¥¹¥¿¡¼¥È¥¢¥Ã¥×¤Þ¤Ç»ý¤Á±Û¤¹¡£ - # Á´¤Æ¤Î¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤òÊݸ¤¹¤ë¡£ + # 乱数種を今回のシャットダウンから次回のスタートアップまで持ち越す。 + # 全てのエントロピー・プールを保存する。 echo "Saving random seed..." random_seed=/var/run/random-seed touch $random_seed @@ -260,36 +260,36 @@ Linux dd if=/dev/urandom of=$random_seed count=1 bs=$bytes .fi .\"O .SS "/proc Interface" -.SS "/proc ¥¤¥ó¥¿¥Õ¥§¡¼¥¹" +.SS "/proc インタフェース" .\"O The files in the directory .\"O .I /proc/sys/kernel/random .\"O (present since 2.3.16) provide an additional interface to the .\"O .I /dev/random .\"O device. -¥Ç¥£¥ì¥¯¥È¥ê +ディレクトリ .I /proc/sys/kernel/random -¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë (2.3.16 ¤«¤é¸ºß¤¹¤ë) ¤Ï¡¢ +にあるファイル (2.3.16 から存在する) は、 .I /dev/random -¥Ç¥Ð¥¤¥¹¤Ø¤Î¤½¤Î¾¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤¹¤ë¡£ +デバイスへのその他のインタフェースを提供する。 .LP .\"O The read-only file .\"O .I entropy_avail .\"O gives the available entropy. .\"O Normally, this will be 4096 (bits), .\"O a full entropy pool. -Æɤ߹þ¤ßÀìÍѤΥե¡¥¤¥ë +読み込み専用のファイル .I entropy_avail -¤Ï»ÈÍѲÄǽ¤Ê¥¨¥ó¥È¥í¥Ô¡¼¤òɽ¤¹¡£ -Ä̾¤³¤ì¤Ï 4096 (¥Ó¥Ã¥È) ¤Ë¤Ê¤ê¡¢¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤¬ËþÇդξõÂ֤Ǥ¢¤ë¡£ +は使用可能なエントロピーを表す。 +通常、これは 4096 (ビット) になり、エントロピー・プールが満杯の状態である。 .LP .\"O The file .\"O .I poolsize .\"O gives the size of the entropy pool. -¥Õ¥¡¥¤¥ë +ファイル .I poolsize -¤Ï¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤Î¥µ¥¤¥º¤òɽ¤¹¡£ +はエントロピー・プールのサイズを表す。 .\"O The semantics of this file vary across kernel versions: -¤³¤Î¥Õ¥¡¥¤¥ë¤Î°ÕÌ£¤Ï¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤ê°Û¤Ê¤ë¡£ +このファイルの意味はカーネルバージョンにより異なる。 .RS .TP 12 Linux 2.4: @@ -298,18 +298,18 @@ Linux 2.4: .\"O Normally, this file will have the value 512, but it is writable, .\"O and can be changed to any value for which an algorithm is available. .\"O The choices are 32, 64, 128, 256, 512, 1024, or 2048. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤Î¥µ¥¤¥º¤ò¡Ö¥Ð¥¤¥È¡×ñ°Ì¤Çµ¬Äꤹ¤ë¡£ -Ä̾¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÃÍ¤Ï 512 ¤Ë¤Ê¤ë¤¬¡¢½ñ¤­¹þ¤ß²Äǽ¤Ç¤¢¤ê¡¢ -¥¢¥ë¥´¥ê¥º¥à¤ÇÍøÍѲÄǽ¤ÊǤ°Õ¤ÎÃͤËÊѹ¹¤Ç¤­¤ë¡£ -ÁªÂò²Äǽ¤ÊÃÍ¤Ï 32, 64, 128, 256, 512, 1024, 2048 ¤Ç¤¢¤ë¡£ +このファイルはエントロピー・プールのサイズを「バイト」単位で規定する。 +通常、このファイルの値は 512 になるが、書き込み可能であり、 +アルゴリズムで利用可能な任意の値に変更できる。 +選択可能な値は 32, 64, 128, 256, 512, 1024, 2048 である。 .TP Linux 2.6: .\"O This file is read-only, and gives the size of the entropy pool in .\"O .IR bits . .\"O It contains the value 4096. -¤³¤Î¥Õ¥¡¥¤¥ë¤ÏÆɤ߽Ф·ÀìÍѤǤ¢¤ê¡¢ -¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤Î¥µ¥¤¥º¤ò¡Ö¥Ó¥Ã¥È¡×ñ°Ì¤Çµ¬Äꤹ¤ë¡£ -ÃÍ¤Ï 4096 ¤Ç¤¢¤ë¡£ +このファイルは読み出し専用であり、 +エントロピー・プールのサイズを「ビット」単位で規定する。 +値は 4096 である。 .RE .LP .\"O The file @@ -317,14 +317,14 @@ Linux 2.6: .\"O contains the number of bits of entropy required for waking up processes .\"O that sleep waiting for entropy from .\"O .IR /dev/random . -¥Õ¥¡¥¤¥ë +ファイル .I read_wakeup_threshold -¤Ï +は .I /dev/random -¤«¤é¤Î¥¨¥ó¥È¥í¥Ô¡¼¤òÂԤäƵٻߤ·¤Æ¤¤¤ë¥×¥í¥»¥¹¤òµ¯¤³¤¹¤Î¤ËɬÍ×¤Ê -¥¨¥ó¥È¥í¥Ô¡¼¤Î¥Ó¥Ã¥È¿ô¤òÊÝ»ý¤·¤Æ¤¤¤ë¡£ +からのエントロピーを待って休止しているプロセスを起こすのに必要な +エントロピーのビット数を保持している。 .\"O The default is 64. -¥Ç¥Õ¥©¥ë¥È¤Ï 64 ¤Ç¤¢¤ë¡£ +デフォルトは 64 である。 .\"O The file .\"O .I write_wakeup_threshold .\"O contains the number of bits of entropy below which we wake up @@ -334,48 +334,48 @@ Linux 2.6: .\"O .BR poll (2) .\"O for write access to .\"O .IR /dev/random . -¥Õ¥¡¥¤¥ë +ファイル .I write_wakeup_threshold -¤Ï¥¨¥ó¥È¥í¥Ô¡¼¤Î¥Ó¥Ã¥È¿ô¤òÊÝ»ý¤·¤Æ¤ª¤ê¡¢¤³¤ÎÃͰʲ¼¤Ë¤Ê¤Ã¤¿¤é +はエントロピーのビット数を保持しており、この値以下になったら .I /dev/random -¤Ø¤Î½ñ¤­¹þ¤ß¥¢¥¯¥»¥¹¤Î¤¿¤á¤Ë +への書き込みアクセスのために .BR select (2) -¤Þ¤¿¤Ï +または .BR poll (2) -¤ò¼Â¹Ô¤¹¤ë¥×¥í¥»¥¹¤òµ¯¤³¤¹¡£ +を実行するプロセスを起こす。 .\"O These values can be changed by writing to the files. -¤³¤ÎÃͤϥե¡¥¤¥ë¤Ë½ñ¤­¹þ¤ß¤ò¹Ô¤¦¤³¤È¤Ë¤è¤Ã¤ÆÊѹ¹¤Ç¤­¤ë¡£ +この値はファイルに書き込みを行うことによって変更できる。 .LP .\"O The read-only files .\"O .I uuid .\"O and .\"O .I boot_id .\"O contain random strings like 6fd5a44b-35f4-4ad4-a9b9-6b9be13e1fe9. -Æɤ߹þ¤ßÀìÍѤΥե¡¥¤¥ë +読み込み専用のファイル .I uuid -¤È +と .I boot_id -¤Ï 6fd5a44b-35f4-4ad4-a9b9-6b9be13e1fe9 ¤Î¤è¤¦¤Ê -¥é¥ó¥À¥à¤Êʸ»úÎó¤òÊÝ»ý¤·¤Æ¤¤¤ë¡£ +は 6fd5a44b-35f4-4ad4-a9b9-6b9be13e1fe9 のような +ランダムな文字列を保持している。 .\"O The former is generated afresh for each read, the latter was .\"O generated once. -Á°¼Ô¤ÏÆɤ߹þ¤ß¤ÎÅ٤˿·¤¿¤ËÀ¸À®¤µ¤ì¡¢ -¸å¼Ô¤Ï 1 ÅÙ¤À¤±À¸À®¤µ¤ì¤ë¡£ +前者は読み込みの度に新たに生成され、 +後者は 1 度だけ生成される。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル /dev/random .br /dev/urandom .\"O .\" .SH AUTHOR -.\" .SH Ãø¼Ô +.\" .SH 著者 .\"O .\" The kernel's random number generator was written by .\"O .\" Theodore Ts'o (tytso@athena.mit.edu). -.\" ¥«¡¼¥Í¥ë¡¦¥é¥ó¥À¥à¥Ê¥ó¥Ð¡¼¡¦¥¸¥§¥Í¥ì¡¼¥¿¤Ï Theodora Ts'o -.\" (tytso@athena.mit.edu) ¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤¿¡£ +.\" カーネル・ランダムナンバー・ジェネレータは Theodora Ts'o +.\" (tytso@athena.mit.edu) によって書かれた。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 mknod (1) .br RFC\ 1750, "Randomness Recommendations for Security" -.\" .SH ËÝÌõ¼Ô -.\" ÀÐÀî ËÓ +.\" .SH 翻訳者 +.\" 石川 睦 diff --git a/draft/man4/rtc.4 b/draft/man4/rtc.4 index 04baad84..05c4aa9f 100644 --- a/draft/man4/rtc.4 +++ b/draft/man4/rtc.4 @@ -33,18 +33,18 @@ .\" .TH RTC 4 2010-02-25 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O rtc \- real-time clock -rtc \- ¥ê¥¢¥ë¥¿¥¤¥à¥¯¥í¥Ã¥¯ +rtc \- リアルタイムクロック .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 #include .sp .BI "int ioctl(" fd ", RTC_" request ", " param ");" .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This is the interface to drivers for real-time clocks (RTCs). -¤³¤ì¤Ï¥ê¥¢¥ë¥¿¥¤¥à¥¯¥í¥Ã¥¯ (RTC) ¤Î¥É¥é¥¤¥Ð¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ç¤¢¤ë¡£ +これはリアルタイムクロック (RTC) のドライバのインタフェースである。 .\"O Most computers have one or more hardware clocks which record the .\"O current "wall clock" time. @@ -52,115 +52,115 @@ rtc \- .\"O One of these usually has battery backup power so that it tracks the time .\"O even while the computer is turned off. .\"O RTCs often provide alarms and other interrupts. -¿¤¯¤Î¥³¥ó¥Ô¥å¡¼¥¿¤Ï¡¢¸½ºß¤Î¡ÖÊÉ»þ·×¡×»þ¹ï ("wall clock" time) ¤òµ­Ï¿¤¹¤ë¡¢ -¥Ï¡¼¥É¥¦¥§¥¢¥¯¥í¥Ã¥¯¤ò 1 ¸Ä°Ê¾å»ý¤Ã¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Ï¡Ö¥ê¥¢¥ë¥¿¥¤¥à¥¯¥í¥Ã¥¯¡×(RTC) ¤È¸Æ¤Ð¤ì¤ë¡£ -¤³¤ì¤é¤Î»þ·×¤Î¤¦¤Á 1 ¤Ä¤Ï¡¢Ä̾ï¤ÏÅÅÃӤǥХ寥¢¥Ã¥×¤·¤Æ¶îÆ°¤µ¤ì¤ë¤Î¤Ç¡¢ -¥³¥ó¥Ô¥å¡¼¥¿¤Î¥¹¥¤¥Ã¥Á¤òÀڤäƤ⡢»þ¹ï¤òÊÝ»ý¤Ç¤­¤ë¡£ -¿¤¯¤Î¾ì¹ç¡¢RTC ¤Ï¥¢¥é¡¼¥à¤ä¤½¤Î¾¤Î³ä¤ê¹þ¤ß¤Îµ¡Ç½¤òÄ󶡤¹¤ë¡£ +多くのコンピュータは、現在の「壁時計」時刻 ("wall clock" time) を記録する、 +ハードウェアクロックを 1 個以上持っている。 +これらは「リアルタイムクロック」(RTC) と呼ばれる。 +これらの時計のうち 1 つは、通常は電池でバックアップして駆動されるので、 +コンピュータのスイッチを切っても、時刻を保持できる。 +多くの場合、RTC はアラームやその他の割り込みの機能を提供する。 .\"O All i386 PCs, and ACPI-based systems, have an RTC that is compatible with .\"O the Motorola MC146818 chip on the original PC/AT. .\"O Today such an RTC is usually integrated into the mainboard's chipset .\"O (south bridge), and uses a replaceable coin-sized backup battery. -Á´¤Æ¤Î i386 PC ¤È ACPI ¥Ù¡¼¥¹¤Î¥·¥¹¥Æ¥à¤Ë¤Ï RTC ¤¬¤¢¤ë¡£ -¤³¤Î RTC ¤Ï¡¢¸µ¡¹¤Î PC/AT ¤Ë¸ºß¤·¤¿ -Motorola MC146818 ¥Á¥Ã¥×¤È¸ß´¹À­¤¬¤¢¤ë¡£ -¤³¤Î¤è¤¦¤Ê RTC ¤Ï¡¢º£Æü¤Ç¤Ï¥Þ¥¶¡¼¥Ü¡¼¥É¤Î -¥Á¥Ã¥×¥»¥Ã¥È (¥µ¥¦¥¹¥Ö¥ê¥Ã¥¸) Æâ¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤³¤È¤¬Â¿¤¯¡¢ -¸ò´¹²Äǽ¤Ê¹Å²ß¤¯¤é¤¤¤ÎÂ礭¤µ¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×ÅÅÃÓ¤ò»È¤Ã¤Æ¤¤¤ë¡£ +全ての i386 PC と ACPI ベースのシステムには RTC がある。 +この RTC は、元々の PC/AT に存在した +Motorola MC146818 チップと互換性がある。 +このような RTC は、今日ではマザーボードの +チップセット (サウスブリッジ) 内で実装されていることが多く、 +交換可能な硬貨くらいの大きさのバックアップ電池を使っている。 .\"O Non-PC systems, such as embedded systems built around system-on-chip .\"O processors, use other implementations. .\"O They usually won't offer the same functionality as the RTC from a PC/AT. -¥·¥¹¥Æ¥à¥ª¥ó¥Á¥Ã¥× (system-on-chip) ¥×¥í¥»¥Ã¥µ¤ò»È¤Ã¤Æºî¤é¤ì¤¿ -ÁȤ߹þ¤ß¥·¥¹¥Æ¥à¤È¤¤¤Ã¤¿¡¢PC °Ê³°¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢Ê̤ʼÂÁõ¤òÍѤ¤¤Æ¤¤¤ë¡£ -¤³¤Î¤è¤¦¤Ê¥·¥¹¥Æ¥à¤Ç¤Ï¡¢PC/AT ¤Î RTC ¤ÈƱ¤¸µ¡Ç½¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤¬Â¿¤¤¡£ +システムオンチップ (system-on-chip) プロセッサを使って作られた +組み込みシステムといった、PC 以外のシステムでは、別な実装を用いている。 +このようなシステムでは、PC/AT の RTC と同じ機能を提供していない場合が多い。 .\"O .SS RTC vs System Clock -.SS RTC ¤È¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤Î°ã¤¤ +.SS RTC とシステムクロックの違い .\"O RTCs should not be confused with the system clock, which is .\"O a software clock maintained by the kernel and used to implement .\"O .BR gettimeofday (2) .\"O and .\"O .BR time (2), .\"O as well as setting timestamps on files, etc. -RTC ¤ò¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤Èº®Æ±¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤Ï¡¢¥«¡¼¥Í¥ë¤Ë´ÉÍý¤µ¤ì¤ë¥½¥Õ¥È¥¦¥§¥¢¥¯¥í¥Ã¥¯¤Ç¤¢¤ê¡¢ -¥Õ¥¡¥¤¥ë¤Ë¤è¤ë¥¿¥¤¥à¥¹¥¿¥ó¥×ÀßÄê¤Ê¤É¤È¤È¤â¤Ë¡¢ +RTC をシステムクロックと混同すべきではない。 +システムクロックは、カーネルに管理されるソフトウェアクロックであり、 +ファイルによるタイムスタンプ設定などとともに、 .BR gettimeofday (2) -¤ä +や .BR time (2) -¤ò¼ÂÁõ¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ +を実装するのに使用されている。 .\"O The system clock reports seconds and microseconds since a start point, .\"O defined to be the POSIX Epoch: 1970-01-01 00:00:00 +0000 (UTC). -¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤Ï¡¢POSIX ¤Ë¤ª¤±¤ëµª¸µ -(Epoch; 1970-01-01 00:00:00 +0000 (UTC)) ¤«¤é¤ÎÉäȥߥêÉäòɽ¤¹¡£ +システムクロックは、POSIX における紀元 +(Epoch; 1970-01-01 00:00:00 +0000 (UTC)) からの秒とミリ秒を表す。 .\"O (One common implementation counts timer interrupts, once .\"O per "jiffy", at a frequency of 100, 250, or 1000 Hz.) .\"O That is, it is supposed to report wall clock time, which RTCs also do. -1 ¤Ä¤Î°ìÈÌŪ¤Ê¼ÂÁõ¤Ç¤Ï¥¿¥¤¥Þ¡¼³ä¤ê¹þ¤ß¤ò¡¢"jiffy" Ëè¤Ë 1 ²ó¡¢ -100, 250, 1000 Hz ¤È¤¤¤¦¼þÇÈ¿ô¤Ç¥«¥¦¥ó¥È¤¹¤ë¡£ +1 つの一般的な実装ではタイマー割り込みを、"jiffy" 毎に 1 回、 +100, 250, 1000 Hz という周波数でカウントする。 .\"O A key difference between an RTC and the system clock is that RTCs .\"O run even when the system is in a low power state (including "off"), .\"O and the system clock can't. -RTC ¤È¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤Î½ÅÍפʰ㤤¤Ï¡¢ -RTC ¤Ï¥·¥¹¥Æ¥à¤¬ÄãÅÅÎϾõÂÖ (¡Ö¥ª¥Õ¡×¤Î¾ì¹ç¤â´Þ¤à) ¤Ç¤âÆ°ºî¤¹¤ë¤Î¤ËÂФ·¡¢ -¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤ÏÆ°ºî¤·¤Ê¤¤ÅÀ¤Ç¤¢¤ë¡£ +RTC とシステムクロックの重要な違いは、 +RTC はシステムが低電力状態 (「オフ」の場合も含む) でも動作するのに対し、 +システムクロックは動作しない点である。 .\"O Until it is initialized, the system clock can only report time since .\"O system boot ... not since the POSIX Epoch. -¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤Ï¡¢½é´ü²½¤¬¹Ô¤ï¤ì¤ë¤Þ¤Ç¤Ï¡¢ -POSIX µª¸µ¤«¤é¤Ç¤Ï¤Ê¤¯¥·¥¹¥Æ¥à¤Î¥Ö¡¼¥È»þ¤«¤é¤Î»þ¹ï¤·¤«ÊÖ¤»¤Ê¤¤¡£ +システムクロックは、初期化が行われるまでは、 +POSIX 紀元からではなくシステムのブート時からの時刻しか返せない。 .\"O So at boot time, and after resuming from a system low power state, the .\"O system clock will often be set to the current wall clock time using an RTC. -¤½¤Î¤¿¤á¡¢¥Ö¡¼¥È»þ¤ä¥·¥¹¥Æ¥à¤ÎÄãÅÅÎϾõÂÖ¤«¤é¤ÎÉüµ¢ (resume) ¸å¤Ë¤Ï¡¢ -¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤Ï RTC ¤ò»È¤Ã¤Æ¸½ºß¤ÎÊÉ»þ·×»þ¹ï¤ËÀßÄꤵ¤ì¤ë¾ì¹ç¤¬Â¿¤¤¡£ +そのため、ブート時やシステムの低電力状態からの復帰 (resume) 後には、 +システムクロックは RTC を使って現在の壁時計時刻に設定される場合が多い。 .\"O Systems without an RTC need to set the system clock using another clock, .\"O maybe across the network or by entering that data manually. -RTC ¤ò»ý¤¿¤Ê¤¤¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -¾¤Î»þ·×¤ò»È¤Ã¤Æ¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤òÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¡¢ -¥Í¥Ã¥È¥ï¡¼¥¯¤Ë¥¢¥¯¥»¥¹¤·¤¿¤ê¡¢(»þ¹ï) ¥Ç¡¼¥¿¤ò¼êÆ°¤ÇÆþÎϤ·¤¿¤ê¤¹¤ë¤À¤í¤¦¡£ +RTC を持たないシステムでは、 +他の時計を使ってシステムクロックを設定する必要があり、 +ネットワークにアクセスしたり、(時刻) データを手動で入力したりするだろう。 .\"O .SS RTC functionality -.SS RTC ¤Îµ¡Ç½ +.SS RTC の機能 .\"O RTCs can be read and written with .\"O .BR hwclock (8), .\"O or directly with the ioctl requests listed below. -RTC ¤Ï +RTC は .BR hwclock (8) -¤Þ¤¿¤Ï²¼µ­¤Î ioctl ¥ê¥¯¥¨¥¹¥È¤ÇÆɤ߽ñ¤­¤¬¤Ç¤­¤ë¡£ +または下記の ioctl リクエストで読み書きができる。 .\"O Besides tracking the date and time, many RTCs can also generate .\"O interrupts -ÆüÉդȻþ´Ö¤ò¥«¥¦¥ó¥È¤¹¤ë¤Î¤Ë²Ã¤¨¤Æ¡¢ -¿¤¯¤Î RTC ¤Ï°Ê²¼¤Î¤è¤¦¤Ë³ä¤ê¹þ¤ß¤òȯÀ¸¤Ç¤­¤ë¡£ +日付と時間をカウントするのに加えて、 +多くの RTC は以下のように割り込みを発生できる。 .IP * 3 .\"O on every clock update (i.e., once per second); -¥¯¥í¥Ã¥¯¤Î¹¹¿·Ëè (¤Ä¤Þ¤ê 1 ÉÃËè)¡£ +クロックの更新毎 (つまり 1 秒毎)。 .IP * .\"O at periodic intervals with a frequency that can be set to .\"O any power-of-2 multiple in the range 2 Hz to 8192 Hz; -2 Hz ¤«¤é 8192 Hz ¤Þ¤Ç¤Î 2 ¤Î¾è¿ô¤Î¼þÇÈ¿ô¤Ç¡¢Äê´üŪ¤Ê´Ö³Ö¡£ +2 Hz から 8192 Hz までの 2 の乗数の周波数で、定期的な間隔。 .IP * .\"O on reaching a previously specified alarm time. -Á°¤â¤Ã¤Æ»ØÄꤷ¤¿¥¢¥é¡¼¥à»þ¹ï¤Ë㤷¤¿»þ¡£ +前もって指定したアラーム時刻に達した時。 .PP .\"O Each of those interrupt sources can be enabled or disabled separately. -¤³¤ì¤é¤Î³ä¤ê¹þ¤ß¸µ¤Ï¡¢¸ÄÊ̤ËÍ­¸ú¤Ë¤·¤¿¤ê̵¸ú¤Ë¤·¤¿¤ê¤Ç¤­¤ë¡£ +これらの割り込み元は、個別に有効にしたり無効にしたりできる。 .\"O On many systems, the alarm interrupt can be configured as a system wakeup .\"O event, which can resume the system from a low power state such as .\"O Suspend-to-RAM (STR, called S3 in ACPI systems), .\"O Hibernation (called S4 in ACPI systems), .\"O or even "off" (called S5 in ACPI systems). -¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥¢¥é¡¼¥à³ä¤ê¹þ¤ß¤ò¥·¥¹¥Æ¥à¤Î -¥¦¥§¥¤¥¯¥¢¥Ã¥×¥¤¥Ù¥ó¥È¤È¤·¤ÆÀßÄê¤Ç¤­¤ë¡£ -¤³¤Î¥¤¥Ù¥ó¥È¤Ï¡¢RAM ¤Ø¤Î¥µ¥¹¥Ú¥ó¥É (STR, ACPI ¥·¥¹¥Æ¥à¤Ç S3 ¤È¸Æ¤Ð¤ì¤ë) ¤ä -¥Ï¥¤¥Ð¡¼¥Í¡¼¥·¥ç¥ó (ACPI ¥·¥¹¥Æ¥à¤Ç S4 ¤È¸Æ¤Ð¤ì¤ë) ¤È¤¤¤Ã¤¿ÄãÅÅÎϾõÂ֤䡢 -¡Ö¥ª¥Õ¡×(ACPI ¥·¥¹¥Æ¥à¤Ç S5 ¤È¸Æ¤Ð¤ì¤ë) ¤«¤é¤Ç¤â¡¢¥·¥¹¥Æ¥à¤òÉüµ¢¤Ç¤­¤ë¡£ +多くのシステムでは、アラーム割り込みをシステムの +ウェイクアップイベントとして設定できる。 +このイベントは、RAM へのサスペンド (STR, ACPI システムで S3 と呼ばれる) や +ハイバーネーション (ACPI システムで S4 と呼ばれる) といった低電力状態や、 +「オフ」(ACPI システムで S5 と呼ばれる) からでも、システムを復帰できる。 .\"O On some systems, the battery backed RTC can't issue .\"O interrupts, but another one can. -ÅÅÃӤǥХ寥¢¥Ã¥×¤µ¤ì¤¿ RTC ¤¬³ä¤ê¹þ¤ß¤òȯÀ¸¤Ç¤­¤ë¥·¥¹¥Æ¥à¤È¡¢ -¤Ç¤­¤Ê¤¤¥·¥¹¥Æ¥à¤¬¤¢¤ë¡£ +電池でバックアップされた RTC が割り込みを発生できるシステムと、 +できないシステムがある。 .\"O The .\"O .I /dev/rtc @@ -170,12 +170,12 @@ RTC .\"O etc.) .\"O device can be opened only once (until it is closed) and it is read-only. .I /dev/rtc -(¤Þ¤¿¤Ï +(または .IR /dev/rtc0 , .I /dev/rtc1 -¤Ê¤É¤Î) -¥Ç¥Ð¥¤¥¹¤Ï (¥¯¥í¡¼¥º¤µ¤ì¤ë¤Þ¤Ç) 1 ²ó¤·¤«¥ª¡¼¥×¥ó¤¹¤ë¤³¤È¤¬¤Ç¤­¤º¡¢ -Æɤ߹þ¤ßÀìÍѤǤ¢¤ë¡£ +などの) +デバイスは (クローズされるまで) 1 回しかオープンすることができず、 +読み込み専用である。 .\"O On .\"O .BR read (2) .\"O and @@ -183,35 +183,35 @@ RTC .\"O the calling process is blocked until the next interrupt from that RTC .\"O is received. .BR read (2) -¤È +と .BR select (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¡¢ -RTC ¤«¤é¤Î³ä¤ê¹þ¤ß¤ò¼õ¤±¼è¤ë¤Þ¤ÇÄä»ß (block) ¤µ¤ì¤ë¡£ +を呼び出したプロセスは、 +RTC からの割り込みを受け取るまで停止 (block) される。 .\"O Following the interrupt, the process can read a long integer, of which .\"O the least significant byte contains a bit mask encoding .\"O the types of interrupt that occurred, .\"O while the remaining 3 bytes contain the number of interrupts since the .\"O last .\"O .BR read (2). -³ä¤ê¹þ¤ß¤Î¸å¡¢¥×¥í¥»¥¹¤Ï long ·¿À°¿ô¤òÆɤ߽Ф¹¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ÎÀ°¿ô¤ÎºÇ²¼°Ì¥Ð¥¤¥È¤ÏȯÀ¸¤·¤¿³ä¤ê¹þ¤ß¤Î¼ïÊ̤ò -¥³¡¼¥É²½¤·¤¿¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ê¡¢ -»Ä¤ê¤Î 3 ¥Ð¥¤¥È¤ÏºÇ¸å¤Î +割り込みの後、プロセスは long 型整数を読み出すことができる。 +この整数の最下位バイトは発生した割り込みの種別を +コード化したビットマスクであり、 +残りの 3 バイトは最後の .BR read (2) -°Ê¹ß¤ËȯÀ¸¤·¤¿³ä¤ê¹þ¤ß¤Î²ó¿ô¤Ç¤¢¤ë¡£ +以降に発生した割り込みの回数である。 .\"O .SS ioctl(2) interface -.SS ioctl(2) ¥¤¥ó¥¿¥Õ¥§¡¼¥¹ +.SS ioctl(2) インタフェース .\"O The following .\"O .BR ioctl (2) .\"O requests are defined on file descriptors connected to RTC devices: -°Ê²¼¤Î +以下の .BR ioctl (2) -¥ê¥¯¥¨¥¹¥È¤¬ RTC ¥Ç¥Ð¥¤¥¹¤ÎÀܳ¤µ¤ì¤¿ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +リクエストが RTC デバイスの接続された +ファイルディスクリプタに対して定義されている: .TP .B RTC_RD_TIME .\"O Returns this RTC's time in the following structure: -RTC ¤Î»þ¹ï¤ò°Ê²¼¤Î¹½Â¤ÂΤÇÊÖ¤¹: +RTC の時刻を以下の構造体で返す: .IP .in +4n .nf @@ -223,11 +223,11 @@ struct rtc_time { int tm_mon; int tm_year; .\"O int tm_wday; /* unused */ - int tm_wday; /* ̤»ÈÍÑ */ + int tm_wday; /* 未使用 */ .\"O int tm_yday; /* unused */ - int tm_yday; /* ̤»ÈÍÑ */ + int tm_yday; /* 未使用 */ .\"O int tm_isdst; /* unused */ - int tm_isdst; /* ̤»ÈÍÑ */ + int tm_isdst; /* 未使用 */ }; .fi .in @@ -236,17 +236,17 @@ struct rtc_time { .\"O .I tm .\"O structure described in .\"O .BR gmtime (3). -¤³¤Î¹½Â¤ÂΤΥե£¡¼¥ë¥É¤Ï +この構造体のフィールドは .BR gmtime (3) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë +で説明されている .I tm -¹½Â¤ÂΤΥե£¡¼¥ë¥É¤ÈƱ¤¸°ÕÌ£¤ÇƱ¤¸ÈϰϤǤ¢¤ë¡£ +構造体のフィールドと同じ意味で同じ範囲である。 .\"O A pointer to this structure should be passed as the third .\"O .BR ioctl (2) .\"O argument. -¤³¤Î¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ò +この構造体へのポインタを .BR ioctl (2) -¤ÎÂè 3 °ú¤­¿ô¤È¤·¤ÆÅϤ¹¡£ +の第 3 引き数として渡す。 .TP .B RTC_SET_TIME .\"O Sets this RTC's time to the time specified by the @@ -255,59 +255,59 @@ struct rtc_time { .\"O .BR ioctl (2) .\"O argument. .BR ioctl (2) -¤ÎÂè 3 °ú¤­¿ô¤¬»Ø¤¹ +の第 3 引き数が指す .I rtc_time -¹½Â¤ÂΤÎÃͤò RTC »þ¹ï¤ËÀßÄꤹ¤ë¡£ +構造体の値を RTC 時刻に設定する。 .\"O To set the .\"O RTC's time the process must be privileged (i.e., have the .\"O .B CAP_SYS_TIME .\"O capability). -RTC »þ¹ï¤ÎÀßÄꤹ¤ë¾ì¹ç¡¢¥×¥í¥»¥¹¤ÏÆø¢ -(¤Ä¤Þ¤ê +RTC 時刻の設定する場合、プロセスは特権 +(つまり .B CAP_SYS_TIME -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ケーパビリティ) を持たなければならない。 .TP .BR RTC_ALM_READ ", " RTC_ALM_SET .\"O Read and set the alarm time, for RTCs that support alarms. -¥¢¥é¡¼¥à¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë RTC ¤ËÂФ·¤Æ¡¢ -¥¢¥é¡¼¥à»þ¹ï¤ÎÆɤ߹þ¤ß¤ÈÀßÄê¤ò¹Ô¤¦¡£ +アラームがサポートされている RTC に対して、 +アラーム時刻の読み込みと設定を行う。 .\"O The alarm interrupt must be separately enabled or disabled using the .\"O .BR RTC_AIE_ON ", " RTC_AIE_OFF .\"O requests. -¥¢¥é¡¼¥à³ä¤ê¹þ¤ß¤Ï¡¢ +アラーム割り込みは、 .BR RTC_AIE_ON ", " RTC_AIE_OFF -¤ò»È¤Ã¤Æ¡¢¤³¤ì¤È¤ÏÊ̤ËÍ­¸ú¤Þ¤¿¤Ï̵¸ú¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を使って、これとは別に有効または無効にしなければならない。 .\"O The third .\"O .BR ioctl (2) .\"O argument is a pointer to an .\"O .I rtc_time .\"O structure. -\fBioctl\fP(2) ¤ÎÂè 3 °ú¤­¿ô¤Ï¡¢ +\fBioctl\fP(2) の第 3 引き数は、 .I rtc_time -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +構造体へのポインタでなければならない。 .\"O Only the .\"O .IR tm_sec , .\"O .IR tm_min , .\"O and .\"O .I tm_hour .\"O fields of this structure are used. -¤³¤Î¹½Â¤ÂΤΠ+この構造体の .IR tm_sec , .IR tm_min , .I tm_hour -¥Õ¥£¡¼¥ë¥É¤Î¤ß¤¬»ÈÍѤµ¤ì¤ë¡£ +フィールドのみが使用される。 .TP .BR RTC_IRQP_READ ", " RTC_IRQP_SET .\"O Read and set the frequency for periodic interrupts, .\"O for RTCs that support periodic interrupts. -¼þ´üŪ¤Ê³ä¤ê¹þ¤ß¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë RTC ¤ËÂФ·¤Æ¡¢ -¼þ´üŪ¤Ê³ä¤ê¹þ¤ß¤Î¼þÇÈ¿ô¤ÎÆɤ߹þ¤ß¤ÈÀßÄê¤ò¹Ô¤¦¡£ +周期的な割り込みがサポートされている RTC に対して、 +周期的な割り込みの周波数の読み込みと設定を行う。 .\"O The periodic interrupt must be separately enabled or disabled using the .\"O .BR RTC_PIE_ON ", " RTC_PIE_OFF .\"O requests. -¼þ´üŪ¤Ê³ä¤ê¹þ¤ß¤Ï¡¢ +周期的な割り込みは、 .BR RTC_PIE_ON ", " RTC_PIE_OFF -¤ò»È¤Ã¤Æ¡¢¤³¤ì¤È¤ÏÊ̤ËÍ­¸ú¤Þ¤¿¤Ï̵¸ú¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を使って、これとは別に有効または無効にしなければならない。 .\"O The third .\"O .BR ioctl (2) .\"O argument is an @@ -315,36 +315,36 @@ RTC .\"O or an .\"O .IR "unsigned long" , .\"O respectively. -\fBioctl\fP(2) ¤ÎÂè 3 °ú¤­¿ô¤Ï¡¢¤½¤ì¤¾¤ì +\fBioctl\fP(2) の第 3 引き数は、それぞれ .I "unsigned long\ *" -¤È +と .I "unsigned long" -¤Ç¤¢¤ë¡£ +である。 .\"O The value is the frequency in interrupts per second. .\"O The set of allowable frequencies is the multiples of two .\"O in the range 2 to 8192. -¤³¤ÎÃÍ¤Ï 1 ÉÃÅö¤¿¤ê¤Î³ä¤ê¹þ¤ß¤Î²ó¿ô¤Ç¤¢¤ë¡£ -»ØÄê²Äǽ¤Ê¼þÇÈ¿ô¤Ï¡¢2 ¤Î¾è¿ô¤Ç 2 ¤«¤é 8192 ¤ÎÈϰϤǤ¢¤ë¡£ +この値は 1 秒当たりの割り込みの回数である。 +指定可能な周波数は、2 の乗数で 2 から 8192 の範囲である。 .\"O Only a privileged process (i.e., one having the .\"O .B CAP_SYS_RESOURCE .\"O capability) can set frequencies above the value specified in .\"O .IR /proc/sys/dev/rtc/max-user-freq . -Æø¢¥×¥í¥»¥¹ (¤Ä¤Þ¤ê +特権プロセス (つまり .B CAP_SYS_RESOURCE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹) ¤Î¤ß¤¬¡¢ +ケーパビリティを持つプロセス) のみが、 .I /proc/sys/dev/rtc/max-user-freq -¤Ë½ñ¤«¤ì¤¿¾åµ­¤Î¼þÇÈ¿ô¤òÀßÄê¤Ç¤­¤ë¡£ +に書かれた上記の周波数を設定できる。 .\"O (This file contains the value 64 by default.) -(¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç 64 ¤È¤¤¤¦Ãͤ¬½ñ¤«¤ì¤Æ¤¤¤ë)¡£ +(このファイルにはデフォルトで 64 という値が書かれている)。 .TP .BR RTC_AIE_ON ", " RTC_AIE_OFF .\"O Enable or disable the alarm interrupt, for RTCs that support alarms. .\"O The third .\"O .BR ioctl (2) .\"O argument is ignored. -¥¢¥é¡¼¥à¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë RTC ¤ËÂФ·¤Æ¡¢ -¥¢¥é¡¼¥à³ä¤ê¹þ¤ß¤òÍ­¸ú¤Þ¤¿¤Ï̵¸ú¤Ë¤¹¤ë¡£ -\fBioctl\fP(2) ¤ÎÂè 3 °ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ +アラームがサポートされている RTC に対して、 +アラーム割り込みを有効または無効にする。 +\fBioctl\fP(2) の第 3 引き数は無視される。 .TP .BR RTC_UIE_ON ", " RTC_UIE_OFF .\"O Enable or disable the interrupt on every clock update, @@ -352,9 +352,9 @@ RTC .\"O The third .\"O .BR ioctl (2) .\"O argument is ignored. -1 ÉÃËè¤Î³ä¤ê¹þ¤ß¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë RTC ¤ËÂФ·¤Æ¡¢ -¥¯¥í¥Ã¥¯¹¹¿·Ëè¤Î³ä¤ê¹þ¤ß¤òÍ­¸ú¤Þ¤¿¤Ï̵¸ú¤Ë¤¹¤ë¡£ -\fBioctl\fP(2) ¤ÎÂè 3 °ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ +1 秒毎の割り込みがサポートされている RTC に対して、 +クロック更新毎の割り込みを有効または無効にする。 +\fBioctl\fP(2) の第 3 引き数は無視される。 .TP .BR RTC_PIE_ON ", " RTC_PIE_OFF .\"O Enable or disable the periodic interrupt, @@ -362,41 +362,41 @@ RTC .\"O The third .\"O .BR ioctl (2) .\"O argument is ignored. -¼þ´üŪ¤Ê³ä¤ê¹þ¤ß¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë RTC ¤ËÂФ·¤Æ¡¢ -¼þ´üŪ¤Ê³ä¤ê¹þ¤ß¤òÍ­¸ú¤Þ¤¿¤Ï̵¸ú¤Ë¤¹¤ë¡£ -\fBioctl\fP(2) ¤ÎÂè 3 °ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ +周期的な割り込みがサポートされている RTC に対して、 +周期的な割り込みを有効または無効にする。 +\fBioctl\fP(2) の第 3 引き数は無視される。 .\"O Only a privileged process (i.e., one having the .\"O .B CAP_SYS_RESOURCE .\"O capability) can enable the periodic interrupt if the frequency is .\"O currently set above the value specified in .\"O .IR /proc/sys/dev/rtc/max-user-freq . -Æø¢¥×¥í¥»¥¹ (¤Ä¤Þ¤ê +特権プロセス (つまり .B CAP_SYS_RESOURCE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹) ¤Î¤ß¤¬¡¢ -¤½¤Î»þÅÀ¤Ç +ケーパビリティを持つプロセス) のみが、 +その時点で .I /proc/sys/dev/rtc/max-user-freq -¤Ë¼þ´ü¤¬¾åµ­¤ÎÃͤ˻ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢ -¼þ´üŪ¤Ê³ä¤ê¹þ¤ß¤òÍ­¸ú¤Ë¤Ç¤­¤ë¡£ +に周期が上記の値に指定されている場合に、 +周期的な割り込みを有効にできる。 .TP .BR RTC_EPOCH_READ ", " RTC_EPOCH_SET .\"O Many RTCs encode the year in an 8-bit register which is either .\"O interpreted as an 8-bit binary number or as a BCD number. .\"O In both cases, .\"O the number is interpreted relative to this RTC's Epoch. -¿¤¯¤Î RTC ¤Ïǯ¤ò 8 ¥Ó¥Ã¥È¤Î¥ì¥¸¥¹¥¿¤Ë¥³¡¼¥É²½¤¹¤ë¡£ -ǯ¤Ï 8 ¥Ó¥Ã¥È¤Î¥Ð¥¤¥Ê¥ê¿ô¤Þ¤¿¤Ï BCD ¿ô¤ËÊÑ´¹¤µ¤ì¤ë¡£ -¤É¤Á¤é¤Î¾ì¹ç¤Ç¤â¡¢¤½¤Î¿ôÃÍ¤Ï RTC ¤Îµª¸µ¤«¤éÁêÂÐÃͤËÊÑ´¹¤µ¤ì¤ë¡£ +多くの RTC は年を 8 ビットのレジスタにコード化する。 +年は 8 ビットのバイナリ数または BCD 数に変換される。 +どちらの場合でも、その数値は RTC の紀元から相対値に変換される。 .\"O The RTC's Epoch is .\"O initialized to 1900 on most systems but on Alpha and MIPS it might .\"O also be initialized to 1952, 1980, or 2000, depending on the value of .\"O an RTC register for the year. -¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï RTC ¤Îµª¸µ¤Ï 1900 ¤Ë½é´ü²½¤µ¤ì¤ë¤¬¡¢ -Alpha ¤È MIPS ¤Ç¤Ï¡¢RTC ¥ì¥¸¥¹¥¿¤Îǯ¤ÎÃͤ˱þ¤¸¤Æ¡¢ -1952, 1980, 2000 ¤Î²¿¤ì¤«¤Ë½é´ü²½¤µ¤ì¤ë¡£ +多くのシステムでは RTC の紀元は 1900 に初期化されるが、 +Alpha と MIPS では、RTC レジスタの年の値に応じて、 +1952, 1980, 2000 の何れかに初期化される。 .\"O With some RTCs, .\"O these operations can be used to read or to set the RTC's Epoch, .\"O respectively. -¤³¤ì¤é¤ÎÁàºî¤Ç¤½¤ì¤¾¤ì RTC ¤Îµª¸µ¤ÎÆɤ߹þ¤ß¤ÈÀßÄ꤬²Äǽ¤Ê RTC ¤â¤¢¤ë¡£ +これらの操作でそれぞれ RTC の紀元の読み込みと設定が可能な RTC もある。 .\"O The third .\"O .BR ioctl (2) .\"O argument is a @@ -404,25 +404,25 @@ Alpha .\"O or a .\"O .IR "unsigned long" , .\"O respectively, and the value returned (or assigned) is the Epoch. -\fBioctl\fP(2) ¤ÎÂè 3 °ú¤­¿ô¤Ï¡¢¤½¤ì¤¾¤ì +\fBioctl\fP(2) の第 3 引き数は、それぞれ .I "unsigned long\ *" -¤È +と .I "unsigned long" -¤Ç¤¢¤ë¡£ -ÊÖ¤µ¤ì¤ëÃÍ (¤Þ¤¿¤Ï»ØÄꤵ¤ì¤ëÃÍ) ¤Ïµª¸µ¤Ç¤¢¤ë¡£ +である。 +返される値 (または指定される値) は紀元である。 .\"O To set the RTC's Epoch the process must be privileged (i.e., have the .\"O .B CAP_SYS_TIME .\"O capability). -RTC ¤Îµª¸µ¤òÀßÄꤹ¤ë¾ì¹ç¡¢¥×¥í¥»¥¹¤ÏÆø¢ (¤Ä¤Þ¤ê +RTC の紀元を設定する場合、プロセスは特権 (つまり .B CAP_SYS_TIME -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ケーパビリティ) を持たなければならない。 .TP .BR RTC_WKALM_RD ", " RTC_WKALM_SET .\"O Some RTCs support a more powerful alarm interface, using these ioctls .\"O to read or write the RTC's alarm time (respectively) with this structure: -RTC ¤ÎÃæ¤Ë¤Ï¤è¤ê¶¯ÎϤʥ¢¥é¡¼¥à¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤â¤Î¤â¤¢¤ê¡¢ -¤³¤ì¤é¤Î ioctl ¤ò»È¤¦¤³¤È¤Ç¡¢°Ê²¼¤Î¤è¤¦¤Ê¹½Â¤ÂÎ¤Ç -RTC ¤Î¥¢¥é¡¼¥à»þ¹ï¤ò (¤½¤ì¤¾¤ì) Æɤ߽ñ¤­¤Ç¤­¤ë: +RTC の中にはより強力なアラームインタフェースをサポートするものもあり、 +これらの ioctl を使うことで、以下のような構造体で +RTC のアラーム時刻を (それぞれ) 読み書きできる: .PP .RS .in +4n @@ -450,17 +450,17 @@ struct rtc_wkalrm { .\"O (so it's mostly useless on Linux, except when talking .\"O to the RTC managed by EFI firmware). .I enabled -¥Õ¥é¥°¤Ï¥¢¥é¡¼¥à³ä¤ê¹þ¤ß¤òÍ­¸ú¤Þ¤¿¤Ï̵¸ú¤·¤¿¤ê¡¢ -¸½ºß¤Î¾õÂÖ¤òÆɤ߹þ¤à¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥é¥°¤ò»È¤¦¾ì¹ç¡¢ -.BR RTC_AIE_ON " ¤È " RTC_AIE_OFF -¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£ +フラグはアラーム割り込みを有効または無効したり、 +現在の状態を読み込むのに使用される。 +これらのフラグを使う場合、 +.BR RTC_AIE_ON " と " RTC_AIE_OFF +は使用されない。 .I pending -¥Õ¥é¥°¤Ï +フラグは .B RTC_WKALM_RD -¤Ç»ÈÍѤµ¤ì¡¢½èÍýÂÔ¤Á¤Î³ä¤ê¹þ¤ß¤òɽ¼¨¤¹¤ë -(EFI ¥Õ¥¡¡¼¥à¥¦¥§¥¢¤Ç´ÉÍý¤µ¤ì¤ë RTC ¤ÈÄÌ¿®¤¹¤ë¤È¤­°Ê³°¡¢ -Linux ¤Ç¤Ï¤Û¤È¤ó¤ÉÌò¤ËΩ¤¿¤Ê¤¤)¡£ +で使用され、処理待ちの割り込みを表示する +(EFI ファームウェアで管理される RTC と通信するとき以外、 +Linux ではほとんど役に立たない)。 .\"O The .\"O .I time .\"O field is as used with @@ -474,60 +474,60 @@ Linux .\"O .I tm_year .\"O fields are also valid. .I time -¥Õ¥£¡¼¥ë¥É¤Ï +フィールドは .B RTC_ALM_READ -¤ä +や .B RTC_ALM_SET -¤Î¾ì¹ç¤ÈƱ¤¸¤è¤¦¤Ë»ÈÍѤµ¤ì¤ë¤¬¡¢ +の場合と同じように使用されるが、 .IR tm_mday , .IR tm_mon , .I tm_year -¥Õ¥£¡¼¥ë¥É¤âÍ­¸ú¤Ç¤¢¤ë¤È¤¤¤¦ÅÀ¤¬°Û¤Ê¤ë¡£ +フィールドも有効であるという点が異なる。 .\"O A pointer to this structure should be passed as the third .\"O .BR ioctl (2) .\"O argument. -¤³¤Î¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ò +この構造体へのポインタを .BR ioctl (2) -¤ÎÂè 3 °ú¤­¿ô¤È¤·¤ÆÅϤµ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +の第 3 引き数として渡さなければならない。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .IR /dev/rtc ", " .IR /dev/rtc0 ", " .\"O .IR /dev/rtc1 ", " .I /dev/rtc1 .\"O etc: RTC special character device files. -¤Ê¤É: -RTC Æü쥭¥ã¥é¥¯¥¿¡¼¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë +など: +RTC 特殊キャラクターデバイスファイル .IR /proc/driver/rtc : .\"O status of the (first) RTC. -(1 ¤ÄÌܤÎ) RTC ¤Î¾õÂÖ +(1 つ目の) RTC の状態 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O When the kernel's system time is synchronized with an external .\"O reference using .\"O .BR adjtimex (2) .\"O it will update a designated RTC periodically every 11 minutes. .\"O To do so, the kernel has to briefly turn off periodic interrupts; .\"O this might affect programs using that RTC. -¥«¡¼¥Í¥ë¤Î¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤ò +カーネルのシステムクロックを .BR adjtimex (2) -¤ò»È¤Ã¤Æ³°Éô»²¾È¤ÇƱ´ü¤µ¤»¤ë¾ì¹ç¡¢ +を使って外部参照で同期させる場合、 .BR adjtimex (2) -¤Ï»ØÄꤵ¤ì¤¿ RTC ¤ò 11 ʬËè¤ËÄê´üŪ¤Ë¹¹¿·¤¹¤ë¡£ -¤³¤ì¤ò¹Ô¤¦¤¿¤á¥«¡¼¥Í¥ë¤Ï¼þ´üŪ¤Ê³ä¤ê¹þ¤ß¤òû´ü´Ö̵¸ú¤Ë¤¹¤ëɬÍפ¬¤¢¤ë¡£ -¤³¤ì¤Ï RTC ¤ò»È¤¦¥×¥í¥°¥é¥à¤Ë±Æ¶Á¤òÍ¿¤¨¤ë¡£ +は指定された RTC を 11 分毎に定期的に更新する。 +これを行うためカーネルは周期的な割り込みを短期間無効にする必要がある。 +これは RTC を使うプログラムに影響を与える。 .\"O An RTC's Epoch has nothing to do with the POSIX Epoch which is only .\"O used for the system clock. -RTC ¤Îµª¸µ¤Ï¡¢¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤Ç¤Î¤ß»ÈÍѤµ¤ì¤ë -POSIX ¤Îµª¸µ¤È¤Ï²¿¤Î´Ø·¸¤â¤Ê¤¤¡£ +RTC の紀元は、システムクロックでのみ使用される +POSIX の紀元とは何の関係もない。 .\"O If the year according to the RTC's Epoch and the year register is .\"O less than 1970 it is assumed to be 100 years later, that is, between 2000 .\"O and 2069. -RTC ¤Îµª¸µ¤Èǯ¤Î¥ì¥¸¥¹¥¿¤Ë´ð¤Å¤¯Ç¯¤¬ 1970 ̤Ëþ¤Ç¤¢¤ë¾ì¹ç¡¢ -100 ǯ¸å¡¢¤Ä¤Þ¤ê 2000 ¤«¤é 2069 ¤Ç¤¢¤ë¤È²¾Äꤵ¤ì¤ë¡£ +RTC の紀元と年のレジスタに基づく年が 1970 未満である場合、 +100 年後、つまり 2000 から 2069 であると仮定される。 .\"O Some RTCs support "wildcard" values in alarm fields, to support .\"O scenarios like periodic alarms at fifteen minutes after every hour, @@ -535,12 +535,12 @@ RTC .\"O Such usage is nonportable; .\"O portable user space code only expects a single alarm interrupt, and .\"O will either disable or reinitialize the alarm after receiving it. -RTC ¤ÎÃæ¤Ë¤Ï¥¢¥é¡¼¥à¥Õ¥£¡¼¥ë¥É¤Ë -¡Ö¥ï¥¤¥ë¥É¥«¡¼¥É¡×¤ÎÃͤò¥µ¥Ý¡¼¥È¤¹¤ë¤â¤Î¤â¤¢¤ê¡¢ -Ëè»þ 15 ʬ¤ä³Æ·î¤Î½éÆü¤Ê¤É¡¢Äê´üŪ¤Ê¥¢¥é¡¼¥à¤ò¹Ô¤¦¥·¥Ê¥ê¥ª¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ -¤³¤Î¤è¤¦¤Ê»È¤¤Êý¤Ï°Ü¿¢À­¤¬¤Ê¤¤¡£ -°Ü¿¢À­¤Î¹â¤¤¥æ¡¼¥¶¶õ´Ö¥³¡¼¥É¤Ç¤Ï¡¢Ã±ÆȤΥ¢¥é¡¼¥à³ä¤ê¹þ¤ß¤À¤±¤òÁÛÄꤷ¡¢ -³ä¤ê¹þ¤ß¤Î¼õ¿®¸å¤Ë¥¢¥é¡¼¥à¤ò̵¸ú¤Þ¤¿¤ÏºÆ½é´ü²½¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +RTC の中にはアラームフィールドに +「ワイルドカード」の値をサポートするものもあり、 +毎時 15 分や各月の初日など、定期的なアラームを行うシナリオをサポートする。 +このような使い方は移植性がない。 +移植性の高いユーザ空間コードでは、単独のアラーム割り込みだけを想定し、 +割り込みの受信後にアラームを無効または再初期化すべきである。 .\"O Some RTCs support periodic interrupts with periods that are multiples .\"O of a second rather than fractions of a second; @@ -549,14 +549,14 @@ RTC .\"O nonvolatile memory; .\"O and other hardware .\"O capabilities that are not currently exposed by this API. -°Ê²¼¤Îµ¡Ç½¤ò¥µ¥Ý¡¼¥È¤¹¤ë RTC ¤â¤¢¤ë¡£ -1 ÉäÎʬ¿ô¤Ç¤Ï¤Ê¤¯¡¢1 ÉäÎÇÜ¿ô¤ò¼þ´ü¤È¤¹¤ë¼þ´üŪ¤Ê³ä¤ê¹þ¤ß¡£ -Ê£¿ô¤Î¥¢¥é¡¼¥à¡£ -¥×¥í¥°¥é¥à²Äǽ¤Ê½ÐÎÏ¥¯¥í¥Ã¥¯¥·¥°¥Ê¥ë¡£ -ÉÔ´øȯÀ­ (nonvolatile) ¥á¥â¥ê¡£ -¤³¤Î API ¤Ç¸½ºßÄ󶡤·¤Æ¤¤¤Ê¤¤¡¢¤½¤Î¾¤Î¥Ï¡¼¥É¥¦¥§¥¢µ¡Ç½¡£ +以下の機能をサポートする RTC もある。 +1 秒の分数ではなく、1 秒の倍数を周期とする周期的な割り込み。 +複数のアラーム。 +プログラム可能な出力クロックシグナル。 +不揮発性 (nonvolatile) メモリ。 +この API で現在提供していない、その他のハードウェア機能。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR date (1), .BR adjtimex (2), .BR gettimeofday (2), diff --git a/draft/man4/sd.4 b/draft/man4/sd.4 index c7d90b31..3be6d912 100644 --- a/draft/man4/sd.4 +++ b/draft/man4/sd.4 @@ -26,26 +26,26 @@ .\" Translated 1997-02-06, ISHIKAWA Mutsumi .\" Updated 2005-11-19, Akihiro MOTOKI .\" -.\" WORD: pointer ¥Ý¥¤¥ó¥¿ -.\" WORD: structure ¹½Â¤ÂÎ -.\" WORD: geometry ¥¸¥ª¥á¥È¥ê -.\" WORD: sector ¥»¥¯¥¿ -.\" WORD: implement ¼ÂÁõ -.\" WORD: raw device ¥í¡¼¥Ç¥Ð¥¤¥¹ +.\" WORD: pointer ポインタ +.\" WORD: structure 構造体 +.\" WORD: geometry ジオメトリ +.\" WORD: sector セクタ +.\" WORD: implement 実装 +.\" WORD: raw device ローデバイス .\" .TH SD 4 1992-12-17 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sd \- Driver for SCSI Disk Drives -sd \- SCSI ¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ö¤Î¤¿¤á¤Î¥É¥é¥¤¥Ð +sd \- SCSI ディスクドライブのためのドライバ .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .BR "#include " "/* for HDIO_GETGEO */" .BR "#include " "/* for BLKGETSIZE and BLKRRPART */" .fi .\"O .SH CONFIGURATION -.SH ÀßÄê +.SH 設定 .\"O The block device name has the following form: .\"O .BI sd lp, .\"O where @@ -56,16 +56,16 @@ sd \- SCSI .\"O Often, the partition number, .\"O .IR p , .\"O will be left off when the device corresponds to the whole drive. -¤³¤Î¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹ (block device) ¤Î̾Á°¤Ï¡¢¼¡¤Î¤è¤¦¤Ê·Á¼°¤ò¤È¤ë: +このブロックデバイス (block device) の名前は、次のような形式をとる: .BI sd lp, -¤³¤Î¤¦¤Á¡¢ +このうち、 .I l -¤ÏʪÍý¥É¥é¥¤¥Ö¤ò°ÕÌ£¤¹¤ëʸ»ú¤Ç¤¢¤ê¡¢ +は物理ドライブを意味する文字であり、 .I p -¤Ï¤½¤ÎʪÍý¥É¥é¥¤¥Ö¾å¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó (partition) ¤ò°ÕÌ£¤¹¤ë¿ô»ú¤Ç¤¢¤ë¡£ -¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Ê¥ó¥Ð¡¼ +はその物理ドライブ上のパーティション (partition) を意味する数字である。 +パーティションナンバー .I p -¤¬¤Ê¤¤¾ì¹ç¤Ï¡¢¤½¤Î¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë¤Ï¥É¥é¥¤¥ÖÁ´ÂΤò¤µ¤¹¡£ +がない場合は、そのデバイスファイルはドライブ全体をさす。 .\"O SCSI disks have a major device number of 8, and a minor device number of .\"O the form (16 * @@ -75,26 +75,26 @@ sd \- SCSI .\"O is the number of the physical drive in order of detection, and .\"O .I partition_number .\"O is as follows: -SCSI ¥Ç¥£¥¹¥¯¤Ï¥á¥¸¥ã¡¼¥Ê¥ó¥Ð¡¼ 8 ¤ò»ý¤Á¡¢¼¡¤Î¤è¤¦¤Ê·Á¼°¤Î¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼ -¤ò»ý¤Ä¡£(16 * -.IR drive_number ") + " partition_number ¡¢ -¤³¤Î +SCSI ディスクはメジャーナンバー 8 を持ち、次のような形式のマイナーナンバー +を持つ。(16 * +.IR drive_number ") + " partition_number 、 +この .I drive_number -¤Ï¸¡½Ð¤µ¤ì¤¿ÊªÍý¥É¥é¥¤¥Ö¤ÎÈÖ¹æ¤Ç¤¢¤ê¡¢ +は検出された物理ドライブの番号であり、 .I partition_number -¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ë: +は次のようになる: .sp .\"O partition 0 is the whole drive .\"O .br .\"O partitions 1-4 are the DOS "primary" partitions .\"O .br .\"O partitions 5-8 are the DOS "extended" (or "logical") partitions -¥Ñ¡¼¥Æ¥£¥·¥ç¥ó 0 ¤Ï¥É¥é¥¤¥ÖÁ´ÂÎ +パーティション 0 はドライブ全体 .br -¥Ñ¡¼¥Æ¥£¥·¥ç¥ó 1 ¡Á 4 ¤Ï DOS ¤Î "´ðËÜ (primary)" ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó +パーティション 1 〜 4 は DOS の "基本 (primary)" パーティション .br -¥Ñ¡¼¥Æ¥£¥·¥ç¥ó 5 ¡Á 8 ¤Ï DOS ¤Î "³ÈÄ¥ (extended)" (¤Þ¤¿¤Ï¡¢"ÏÀÍý -(logical)") ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡£ +パーティション 5 〜 8 は DOS の "拡張 (extended)" (または、"論理 +(logical)") パーティション。 .\"O For example, .\"O .I /dev/sda @@ -103,31 +103,31 @@ SCSI .\"O .I /dev/sdb3 .\"O will have major 8, minor 19, and will refer to the third DOS "primary" .\"O partition on the second SCSI drive in the system. -Î㤨¤Ð¡¢ +例えば、 .I /dev/sda -¤Ï¥á¥¸¥ã¡¼¥Ê¥ó¥Ð¡¼ 8 ¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼ 0 ¤ò»ý¤Á¡¢¥·¥¹¥Æ¥à¤ÎºÇ½é¤Î SCSI -¥É¥é¥¤¥ÖÁ´ÂΤò»²¾È¤¹¤ë¡£¤½¤·¤Æ¡¢ +はメジャーナンバー 8 マイナーナンバー 0 を持ち、システムの最初の SCSI +ドライブ全体を参照する。そして、 .I /dev/sdb3 -¤Ï¥á¥¸¥ã¡¼¥Ê¥ó¥Ð¡¼ 8 ¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼ 19 ¤ò»ý¤Á¡¢¥·¥¹¥Æ¥à¤ÎÆó¤ÄÌܤΠ-SCSI ¥É¥é¥¤¥Ö¤Î»°ÈÖÌܤΠDOS "´ðËÜ" ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò»²¾È¤¹¤ë¡£ +はメジャーナンバー 8 マイナーナンバー 19 を持ち、システムの二つ目の +SCSI ドライブの三番目の DOS "基本" パーティションを参照する。 .\"O At this time, only block devices are provided. .\"O Raw devices have not yet been implemented. -¸½ºß¤Ï¡¢¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤À¤±¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¡£¥í¡¼¡¦¥Ç¥Ð¥¤¥¹ (raw device) -¤Ï¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +現在は、ブロックデバイスだけが提供されている。ロー・デバイス (raw device) +はまだ実装されていない。 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The following .\"O .IR ioctl s .\"O are provided: -¼¡¤Î +次の .I ioctl -¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë: +が提供されている: .TP .B HDIO_GETGEO .RS .\"O Returns the BIOS disk parameters in the following structure: -¼¡¤Î¤è¤¦¤Ê¹½Â¤ÂΤòÍѤ¤¤Æ BIOS ¤Î¥Ç¥£¥¹¥¯¥Ñ¥é¥á¡¼¥¿¤òÊÖ¤¹: +次のような構造体を用いて BIOS のディスクパラメータを返す: .in +4n .nf @@ -143,9 +143,9 @@ struct hd_geometry { .\"O A pointer to this structure is passed as the .\"O .BR ioctl (2) .\"O parameter. -¤³¤Î¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤¬ +この構造体へのポインタが .BR ioctl (2) -¤Ø¤Î¥Ñ¥é¥á¡¼¥¿¤È¤·¤ÆÅϤµ¤ì¤ë¡£ +へのパラメータとして渡される。 .\"O The information returned in the parameter is the disk geometry of the drive .\"O .I "as understood by DOS!" @@ -161,19 +161,19 @@ struct hd_geometry { .\"O .BR lilo (1). .\"O If the geometry information is not available, zero will be returned for all .\"O of the parameters. -¤³¤Î¥Ñ¥é¥á¡¼¥¿¤ËÆþ¤ì¤é¤ì¤ÆÊÖ¤µ¤ì¤ë¾ðÊó¤Ï¡¢ -.I "DOS ¤Ë¤è¤Ã¤ÆÍý²ò¤µ¤ì¤ë¤è¤¦¤Ê" -¥É¥é¥¤¥Ö¤Î¥¸¥ª¥á¥È¥ê¤Ç¤¢¤ë¡£ -¤³¤Î¥¸¥ª¥á¥È¥ê¤Ï¡¢¥É¥é¥¤¥Ö¤ÎʪÍýŪ¤Ê¥¸¥ª¥á¥È¥ê -.I ¤Ç¤Ï¤Ê¤¤¡£ -¤³¤Î¾ðÊó¤Ï¥É¥é¥¤¥Ö¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤òºîÀ®¤¹¤ë»þ¤ËÍѤ¤¤é¤ì¤ë¡¢ -¤Þ¤¿¡¢ +このパラメータに入れられて返される情報は、 +.I "DOS によって理解されるような" +ドライブのジオメトリである。 +このジオメトリは、ドライブの物理的なジオメトリ +.I ではない。 +この情報はドライブのパーティションテーブルを作成する時に用いられる、 +また、 .BR fdisk (1), .BR efdisk (1), .BR lilo (1) -¤ÎŬÀÚ¤ÊÁàºî¤ËɬÍפǤ¢¤ë¡£ -¤â¤·¡¢¥¸¥ª¥á¥È¥ê¤Î¾ðÊó¤¬ÆÀ¤é¤ì¤Ê¤±¤ì¤Ð¡¢¤½¤ì¤¾¤ì¤ÎÃÍÁ´¤Æ¤Ë¥¼¥í¤¬Æþ¤ì -¤é¤ì¤ÆÊÖ¤µ¤ì¤ë¡£ +の適切な操作に必要である。 +もし、ジオメトリの情報が得られなければ、それぞれの値全てにゼロが入れ +られて返される。 .RE .TP .B BLKGETSIZE @@ -182,17 +182,17 @@ struct hd_geometry { .\"O .BR ioctl (2) .\"O parameter should be a pointer to a .\"O .IR long . -¥»¥¯¥¿¤Î¿ô¤Çɽ¤·¤¿¥Ç¥Ð¥¤¥¹¤Î¥µ¥¤¥º¤¬ÊÖ¤µ¤ì¤ë¡£ +セクタの数で表したデバイスのサイズが返される。 .BR ioctl (2) -¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¡¢ +のパラメータは、 .I long -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +へのポインタでなければならない。 .TP .B BLKRRPART .\"O Forces a reread of the SCSI disk partition tables. .\"O No parameter is needed. -¶¯À©Åª¤Ë¡¢SCSI ¥Ç¥£¥¹¥¯¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤ÎºÆÆɤ߹þ¤ß¤ò¹Ô¤¦¡£ -¥Ñ¥é¥á¡¼¥¿¤ÏɬÍפʤ¤¡£ +強制的に、SCSI ディスクのパーティションテーブルの再読み込みを行う。 +パラメータは必要ない。 .\"O The .\"O .BR scsi (4) @@ -205,23 +205,23 @@ struct hd_geometry { .\"O will fail with the error .\"O .BR EINVAL . .BR scsi (4) -¤Î +の .BR ioctl (2) -Áàºî¤âƱÍͤ˥µ¥Ý¡¼¥È¤µ¤ì¤ë¡£ +操作も同様にサポートされる。 .BR ioctl (2) -¤Î¥Ñ¥é¥á¡¼¥¿¤¬É¬Íפǡ¢¤½¤ì¤¬ NULL ¤Ê¤é¤Ð¡¢ +のパラメータが必要で、それが NULL ならば、 .BR ioctl (2) -¤Ï¥¨¥é¡¼ +はエラー .B EINVAL -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .\"O /dev/sd[a\-h]: the whole device -/dev/sd[a\-h]: ¥É¥é¥¤¥ÖÁ´ÂÎ +/dev/sd[a\-h]: ドライブ全体 .br .\"O /dev/sd[a\-h][0\-8]: individual block partitions -/dev/sd[a\-h][0\-8]: ¸Ä¡¹¤Î¥Ö¥í¥Ã¥¯¥Ñ¡¼¥Æ¥£¥·¥ç¥ó +/dev/sd[a\-h][0\-8]: 個々のブロックパーティション .\"O .\".SH "SEE ALSO" -.\" .SH ´ØÏ¢¹àÌÜ +.\" .SH 関連項目 .\"O .\".BR scsi (4) .\" .BR scsi (4) diff --git a/draft/man4/sk98lin.4 b/draft/man4/sk98lin.4 index fc084977..ec1b5ac1 100644 --- a/draft/man4/sk98lin.4 +++ b/draft/man4/sk98lin.4 @@ -27,16 +27,16 @@ .\" Translated 2004-10-09, Yuichi SATO .\" Modified 2007-06-05, Akihiro MOTOKI , LDP v2.51 .\" -.\"WORD: autonegotiation ¼«Æ°ÀßÄê -.\"WORD: interrupt moderation ³ä¤ê¹þ¤ßÄ´Ää +.\"WORD: autonegotiation 自動設定 +.\"WORD: interrupt moderation 割り込み調停 .\" .TH SK98LIN 4 2007-11-25 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sk98lin \- Marvell/SysKonnect Gigabit Ethernet driver v6.21 -sk98lin \- Marvell/SysKonnect ¥®¥¬¥Ó¥Ã¥È¥¤¡¼¥µ¥Í¥Ã¥È¥É¥é¥¤¥Ð v6.21 +sk98lin \- Marvell/SysKonnect ギガビットイーサネットドライバ v6.21 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B insmod sk98lin.o .RB [ Speed_A=\c .IR i,j,... ] @@ -69,7 +69,7 @@ sk98lin \- Marvell/SysKonnect .RB [ RlmtMode=\c .IR i,j,... ] .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .ad l .hy 0 .\"O .B sk98lin @@ -77,23 +77,23 @@ sk98lin \- Marvell/SysKonnect .\"O It supports SysKonnect SK-98xx/SK-95xx compliant Gigabit Ethernet Adapter and .\"O any Yukon compliant chipset. .B sk98lin -¤Ï Marvell ¤È SysKonnect ¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥À¥×¥¿¥«¡¼¥É¤Î -¥®¥¬¥Ó¥Ã¥È¥¤¡¼¥µ¥Í¥Ã¥È¥É¥é¥¤¥Ð¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï SysKonnect SK-98xx/SK-95xx ¸ß´¹¤Î¥®¥¬¥Ó¥Ã¥È¥¤¡¼¥µ¥Í¥Ã¥È¥¢¥À¥×¥¿¤È -Yukon ¸ß´¹¤Î¥Á¥Ã¥×¥»¥Ã¥È¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ +は Marvell と SysKonnect のネットワークアダプタカードの +ギガビットイーサネットドライバである。 +これは SysKonnect SK-98xx/SK-95xx 互換のギガビットイーサネットアダプタと +Yukon 互換のチップセットをサポートしている。 .\"O When loading the driver using insmod, parameters for the network adapter cards .\"O might be stated as a sequence of comma separated commands. .\"O If for instance two network adapters are installed and AutoNegotiation on .\"O Port A of the first adapter should be ON, .\"O but on the Port A of the second adapter switched OFF, one must enter: -insmod ¤ò»È¤Ã¤Æ¥É¥é¥¤¥Ð¤ò¥í¡¼¥É¤¹¤ëºÝ¡¢ -¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥À¥×¥¿¥«¡¼¥É¤Î¥Ñ¥é¥á¡¼¥¿¤ò -¥³¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿¥³¥Þ¥ó¥É¤ÎÎó¤È¤·¤Æ»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -2 ¤Ä¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥À¥×¥¿¤¬¼è¤êÉÕ¤±¤é¤ì¤Æ¤¤¤ë»þ¤Ë¡¢ -Î㤨¤Ð¡¢1 ¤ÄÌܤΥ¢¥À¥×¥¿¤Î¥Ý¡¼¥È A ¤Î¼«Æ°¥Í¥´¥·¥¨¡¼¥·¥ç¥ó¤Ï ON ¤Ë¤¹¤ë¤¬¡¢ -2 ¤ÄÌܤΥ¢¥À¥×¥¿¤Î¥Ý¡¼¥È A ¤Ï OFF ¤Ë¤¹¤ë¾ì¹ç¤Ï¡¢ -°Ê²¼¤Î¤è¤¦¤ËÆþÎϤ¹¤ì¤Ð¤è¤¤: +insmod を使ってドライバをロードする際、 +ネットワークアダプタカードのパラメータを +コンマで区切られたコマンドの列として指定することができる。 +2 つのネットワークアダプタが取り付けられている時に、 +例えば、1 つ目のアダプタのポート A の自動ネゴシエーションは ON にするが、 +2 つ目のアダプタのポート A は OFF にする場合は、 +以下のように入力すればよい: insmod sk98lin.o AutoNeg_A=On,Off @@ -112,20 +112,20 @@ insmod .\"O is the number of the interface that has been assigned to a .\"O dedicated port by the system. .B sk98lin -¤¬ 1 ¤Ä°Ê¾å¤Î¥¢¥À¥×¥¿¥«¡¼¥É¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤Æ¡¢ -¤«¤Ä +が 1 つ以上のアダプタカードに関連づけられていて、 +かつ .I /proc -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¥·¥¹¥Æ¥à¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¼è¤êÉÕ¤±¤é¤ì¤Æ¤¤¤ë¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥À¥×¥¿¥«¡¼¥É¤ÎÁ´¤Æ¤Î¥Ý¡¼¥È¤Ë¤Ä¤¤¤Æ¡¢ -(¥Ý¡¼¥Èñ°Ì¤Ë) ÀìÍѤÎÅý·×¥Õ¥¡¥¤¥ë¤¬¥Õ¥©¥ë¥À +ファイルシステムがシステムにマウントされている場合、 +取り付けられているネットワークアダプタカードの全てのポートについて、 +(ポート単位に) 専用の統計ファイルがフォルダ .I /proc/net/sk98lin -¤Ëºî¤é¤ì¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï +に作られる。 +これらのファイルは .I eth[x] -¤È¤¤¤¦Ì¾Á°¤Ç¤¢¤ê¡¢ +という名前であり、 .I x -¤Ï¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÎÈÖ¹æ¤Ç¤¢¤ë¡£ -¤³¤ÎÈÖ¹æ¤Ï¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¥Ý¡¼¥ÈËè¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¤â¤Î¤Ç¤¢¤ë¡£ +はインタフェースの番号である。 +この番号はシステムによってポート毎に割り当てられたものである。 .\"O If loading is finished, any desired IP address can be .\"O assigned to the respective @@ -136,16 +136,16 @@ insmod .\"O This causes the adapter to connect to the Ethernet and to display a status .\"O message on the console saying "ethx: network connection up using port y" .\"O followed by the configured or detected connection parameters. -¥í¡¼¥É¤¬´°Î»¤¹¤ë¤È¡¢ +ロードが完了すると、 .BR ifconfig (8) -¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¡¢³Æ +コマンドを使って、各 .I eth[x] -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë´õ˾¤¹¤ë IP ¥¢¥É¥ì¥¹¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤Ë¤è¤ê¥¢¥À¥×¥¿¤¬¥¤¡¼¥µ¥Í¥Ã¥È¤ËÀܳ¤µ¤ì¡¢ -¥³¥ó¥½¡¼¥ë¤Ë¾õÂÖ¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤ë¡£ -¤³¤Î¥á¥Ã¥»¡¼¥¸¤Ç¤Ï¡¢ -"ethx: network connection up using port y" ¤Î¸å¤Ë -ÀßÄꤵ¤ì¤¿¤ê¸¡½Ð¤µ¤ì¤¿Àܳ¥Ñ¥é¥á¡¼¥¿¤¬É½¼¨¤µ¤ì¤ë¡£ +インタフェースに希望する IP アドレスを割り当てることができる。 +これによりアダプタがイーサネットに接続され、 +コンソールに状態メッセージが表示される。 +このメッセージでは、 +"ethx: network connection up using port y" の後に +設定されたり検出された接続パラメータが表示される。 .\"O The .\"O .B sk98lin @@ -163,26 +163,26 @@ insmod .\"O address and a large frame MTU size, .\"O the following two commands might be used: .B sk98lin -¤Ï¥é¡¼¥¸¥Õ¥ì¡¼¥à (¥¸¥ã¥ó¥Ü¥Õ¥ì¡¼¥à¤È¤â¸Æ¤Ð¤ì¤ë) ¤â¥µ¥Ý¡¼¥È¤¹¤ë¡£ -¥¸¥ã¥ó¥Ü¥Õ¥ì¡¼¥à¤ò»È¤¦¤È¡¢ÂçÎ̤Υǡ¼¥¿¤òžÁ÷¤¹¤ëºÝ¤Ë¡¢ -¥¹¥ë¡¼¥×¥Ã¥È¤òÂçÉý¤Ë¸þ¾å¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥é¡¼¥¸¥Õ¥ì¡¼¥à¤òÍ­¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢ -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î MTU (maximum transfer unit, ºÇÂçžÁ÷ñ°Ì) ¥µ¥¤¥º¤ò -Â礭¤ÊÃͤËÀßÄꤹ¤ì¤Ð¤è¤¤¡£ -¥Ç¥Õ¥©¥ë¥È¤Î MTU ¥µ¥¤¥º¤Ï 1500 ¤Ç¤¢¤ê¡¢ -ºÇÂç¤Ç 9000 (¥Ð¥¤¥È) ¤Þ¤ÇÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -MTU ¥µ¥¤¥º¤òÀßÄꤹ¤ë¤Î¤Ï¡¢ -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë IP ¥¢¥É¥ì¥¹¤ò³ä¤êÅö¤Æ¤ë¤È¤­¤Ë¤â¤Ç¤­¤ë¤·¡¢¸å¤«¤é +はラージフレーム (ジャンボフレームとも呼ばれる) もサポートする。 +ジャンボフレームを使うと、大量のデータを転送する際に、 +スループットを大幅に向上させることができる。 +ラージフレームを有効にするには、 +インタフェースの MTU (maximum transfer unit, 最大転送単位) サイズを +大きな値に設定すればよい。 +デフォルトの MTU サイズは 1500 であり、 +最大で 9000 (バイト) まで設定することができる。 +MTU サイズを設定するのは、 +インタフェースに IP アドレスを割り当てるときにもできるし、後から .BR ifconfig (8) -¥³¥Þ¥ó¥É¤Ë mtu °ú¤­¿ô¤ò»ØÄꤹ¤ë¤³¤È¤ÇÀßÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -Î㤨¤Ð¡¢eth0 ¤Ë IP ¥¢¥É¥ì¥¹¤È¥é¡¼¥¸¥Õ¥ì¡¼¥à MTU ¥µ¥¤¥º¤ò -³ä¤êÅö¤Æ¤¿¤¤¾ì¹ç¡¢°Ê²¼¤Î 2 ¤Ä¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ì¤Ð¤è¤¤: +コマンドに mtu 引き数を指定することで設定することもできる。 +例えば、eth0 に IP アドレスとラージフレーム MTU サイズを +割り当てたい場合、以下の 2 つのコマンドを実行すればよい: ifconfig eth0 10.1.1.1 ifconfig eth0 mtu 9000 .\"O Those two commands might even be combined into one: -¤³¤ì¤é¤Î 2 ¤Ä¤Î¥³¥Þ¥ó¥É¤Ï 1 ¤Ä¤Ë¤Þ¤È¤á¤ë¤³¤È¤â¤Ç¤­¤ë: +これらの 2 つのコマンドは 1 つにまとめることもできる: ifconfig eth0 10.1.1.1 mtu 9000 @@ -198,26 +198,26 @@ MTU .\"O all network adapters that are to be used must also be .\"O enabled regarding jumbo frames. .\"O If an adapter is not set to receive large frames it will simply drop them. -¥é¡¼¥¸¥Õ¥ì¡¼¥à¤ò»ÈÍѤǤ­¤ë¤Î¤Ï¡¢¥Í¥Ã¥È¥ï¡¼¥¯´Ä¶­Á´ÂÎ¤Ç -¥é¡¼¥¸¥Õ¥ì¡¼¥à¤Î»ÈÍѤ¬Ç§¤á¤é¤ì¤Æ¤¤¤ë¾ì¹ç¤Î¤ß¤Ç¤¢¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¤Ä¤Þ¤ê¡¢¥¤¡¼¥µ¥Í¥Ã¥È¤Ç»È¤ï¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¥¹¥¤¥Ã¥Á¤Ç¤â -¥é¡¼¥¸¥Õ¥ì¡¼¥à¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¿¤¯¤Î¥¹¥¤¥Ã¥Á¤¬¥é¡¼¥¸¥Õ¥ì¡¼¥à¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤Ï¤¤¤ë¤¬¡¢ -ÀßÄê¤ò¹Ô¤¦É¬Íפ¬¤¢¤ë¡£ -¿¤¯¤Î¾ì¹ç¡¢¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¤Ç¤Ïɸ½à¥Õ¥ì¡¼¥à -(1500 ¥Ð¥¤¥È¤Î MTU ¥µ¥¤¥º) ¤À¤±¤·¤«¥µ¥Ý¡¼¥È¤·¤Ê¤¤¡£ -¥Í¥Ã¥È¥ï¡¼¥¯Æâ¤Î¥¹¥¤¥Ã¥Á¤Ë²Ã¤¨¡¢ -»ÈÍѤµ¤ì¤ëÁ´¤Æ¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥À¥×¥¿¤Ç¤â -¥¸¥ã¥ó¥Ü¥Õ¥ì¡¼¥à¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥¢¥À¥×¥¿¤¬¥é¡¼¥¸¥Õ¥ì¡¼¥à¤ò¼õ¤±¼è¤ë¤è¤¦¤ËÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -¥¢¥À¥×¥¿¤Ï¤½¤Î¥Õ¥ì¡¼¥à¤òñ½ã¤Ë¼Î¤Æ¤Æ¤·¤Þ¤¦¡£ +ラージフレームを使用できるのは、ネットワーク環境全体で +ラージフレームの使用が認められている場合のみである点に注意すること。 +つまり、イーサネットで使われている全てのスイッチでも +ラージフレームがサポートされていなければならない。 +多くのスイッチがラージフレームをサポートしてはいるが、 +設定を行う必要がある。 +多くの場合、デフォルトの設定では標準フレーム +(1500 バイトの MTU サイズ) だけしかサポートしない。 +ネットワーク内のスイッチに加え、 +使用される全てのネットワークアダプタでも +ジャンボフレームが有効になっていなければならない。 +アダプタがラージフレームを受け取るように設定されていない場合、 +アダプタはそのフレームを単純に捨ててしまう。 .\"O Switching back to the standard Ethernet frame size can be done by using the .\"O .BR ifconfig (8) .\"O command again: -ɸ½à¤Î¥¤¡¼¥µ¥Í¥Ã¥È¥Õ¥ì¡¼¥à¥µ¥¤¥º¤ËÌ᤹¤Î¤Ï¡¢ºÆ¤Ó +標準のイーサネットフレームサイズに戻すのは、再び .BR ifconfig (8) -¥³¥Þ¥ó¥É¤ò»È¤¨¤Ð¤è¤¤: +コマンドを使えばよい: ifconfig eth0 mtu 1500 @@ -226,11 +226,11 @@ MTU .\"O IEEE standards 802.1, 802.1q, and 802.3ad. .\"O Those features are only available after installation of open source modules .\"O which can be found on the Internet: -Linux ¤Î Marvell/SysKonnect ¥®¥¬¥Ó¥Ã¥È¥¤¡¼¥µ¥Í¥Ã¥È¥É¥é¥¤¥Ð¤Ï¡¢ -IEEE µ¬³Ê 802.1, 802.1q, 802.3ad ¤Ë½àµò¤¹¤ë -VLAN ¤È Link Aggregation ¤ËÂбþ¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Îµ¡Ç½¤Ï¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ë¤¢¤ë¥ª¡¼¥×¥ó¥½¡¼¥¹¥â¥¸¥å¡¼¥ë¤ò -¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¸å¤Ç¤Î¤ßÍøÍѲÄǽ¤Ç¤¢¤ë: +Linux の Marvell/SysKonnect ギガビットイーサネットドライバは、 +IEEE 規格 802.1, 802.1q, 802.3ad に準拠する +VLAN と Link Aggregation に対応している。 +これらの機能は、インターネットにあるオープンソースモジュールを +インストールした後でのみ利用可能である: .IR VLAN \c : http://www.candelatech.com/~greear/vlan.html @@ -243,20 +243,20 @@ VLAN .\"O Note that Marvell/SysKonnect does not offer any support for these .\"O open source modules and does not take the responsibility for any .\"O kind of failures or problems arising when using these modules. -Marvell/SysKonnect ¤Ï¡¢¤³¤ì¤é¤Î¥ª¡¼¥×¥ó¥½¡¼¥¹¥â¥¸¥å¡¼¥ë¤ËÂФ¹¤ë¥µ¥Ý¡¼¥È¤Ï -¹Ô¤Ã¤Æ¤ª¤é¤º¡¢¤³¤ì¤é¤ò»È¤Ã¤¿¾ì¹ç¤ËÀ¸¤¸¤ë¤¤¤«¤Ê¤ë¼ºÇÔ¤äÌäÂê¤Ë¤Ä¤¤¤Æ¤â -ÀÕǤ¤òÉé¤ï¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +Marvell/SysKonnect は、これらのオープンソースモジュールに対するサポートは +行っておらず、これらを使った場合に生じるいかなる失敗や問題についても +責任を負わない点に注意すること。 .\"O .SS Parameters -.SS °ú¤­¿ô +.SS 引き数 .TP .BI Speed_A= i,j,... .\"O This parameter is used to set the speed capabilities of port A of an .\"O adapter card. .\"O It is only valid for Yukon copper adapters. .\"O Possible values are: -¤³¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¥¢¥À¥×¥¿¥«¡¼¥É¤Î¥Ý¡¼¥È A ¤¬¥µ¥Ý¡¼¥È¤¹¤ë¥ê¥ó¥¯Â®ÅÙ¤ò -ÀßÄꤹ¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£¤³¤ì¤Ï Yukon copper ¥¢¥À¥×¥¿¤Ç¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£ -»ÈÍѲÄǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ê: +このパラメータはアダプタカードのポート A がサポートするリンク速度を +設定するのに使われる。これは Yukon copper アダプタでのみ有効である。 +使用可能な値は以下の通り: .\"O .IR 10 , .\"O .IR 100 , .\"O .I 1000 @@ -271,21 +271,21 @@ Marvell/SysKonnect .IR 10 , .IR 100 , .IR 1000 , -.IR Auto ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +.IR Auto 。 +デフォルトは .I Auto -¤Ç¤¢¤ë¡£ -Ä̾¥ê¥ó¥¯Â®Å٤ϥê¥ó¥¯¤Î³ÎΩ»þ¤Ë 2 ¤Ä¤Î¥Ý¡¼¥È¤Î´Ö¤Ç¼«Æ°ÀßÄꤵ¤ì¤ë¡£ -¤³¤ì¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¡¢¥Ý¡¼¥È¤Ï¤³¤Î°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿ÀßÄê¤Ë¤Ê¤ë¡£ +である。 +通常、リンク速度はリンクの確立時に 2 つのポートの間で自動設定される。 +これに失敗した場合、ポートはこの引き数で指定された設定になる。 .TP .BI Speed_B= i,j,... .\"O This parameter is used to set the speed capabilities of port B of .\"O an adapter card. .\"O It is only valid for Yukon copper adapters. .\"O Possible values are: -¤³¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¥¢¥À¥×¥¿¥«¡¼¥É¤Î¥Ý¡¼¥È B ¤¬¥µ¥Ý¡¼¥È¤¹¤ë¥ê¥ó¥¯Â®ÅÙ¤ò -ÀßÄꤹ¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£¤³¤ì¤Ï Yukon copper ¥¢¥À¥×¥¿¤Ç¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£ -»ÈÍѲÄǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ê: +このパラメータはアダプタカードのポート B がサポートするリンク速度を +設定するのに使われる。これは Yukon copper アダプタでのみ有効である。 +使用可能な値は以下の通り: .\"O .IR 10 , .\"O .IR 100 , .\"O .I 1000 @@ -300,18 +300,18 @@ Marvell/SysKonnect .IR 10 , .IR 100 , .IR 1000 , -.IR Auto ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +.IR Auto 。 +デフォルトは .I Auto -¤Ç¤¢¤ë¡£ -Ä̾¥ê¥ó¥¯Â®Å٤ϥê¥ó¥¯¤Î³ÎΩ»þ¤Ë 2 ¤Ä¤Î¥Ý¡¼¥È¤Î´Ö¤Ç¼«Æ°ÀßÄꤵ¤ì¤ë¡£ -¤³¤ì¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¡¢¥Ý¡¼¥È¤Ï¤³¤Î°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿ÀßÄê¤Ë¤Ê¤ë¡£ +である。 +通常、リンク速度はリンクの確立時に 2 つのポートの間で自動設定される。 +これに失敗した場合、ポートはこの引き数で指定された設定になる。 .TP .BI AutoNeg_A= i,j,... .\"O Enables or disables the use of autonegotiation of port A of an adapter card. .\"O Possible values are: -¥¢¥À¥×¥¿¥«¡¼¥É¤Î¥Ý¡¼¥È A ¤Î¼«Æ°ÀßÄê (autonegotiation) ¤Î»ÈÍѤò -Í­¸ú¤Þ¤¿¤Ï̵¸ú¤Ë¤¹¤ë¡£»ÈÍѲÄǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ê: +アダプタカードのポート A の自動設定 (autonegotiation) の使用を +有効または無効にする。使用可能な値は以下の通り: .\"O .IR On , .\"O .I Off .\"O or @@ -325,19 +325,19 @@ Marvell/SysKonnect .\"O auto-negotiation or not. .IR On , .IR Off , -.IR Sense ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +.IR Sense 。 +デフォルトは .I On -¤Ç¤¢¤ë¡£ +である。 .I Sense -¥â¡¼¥É¤Ï¥ê¥ó¥¯¥Ñ¡¼¥È¥Ê¤¬¼«Æ°ÀßÄê¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤«Èݤ«¤ò -¼«Æ°Åª¤Ë¸¡ÃΤ¹¤ë¡£ +モードはリンクパートナが自動設定をサポートしているか否かを +自動的に検知する。 .TP .BI AutoNeg_B= i,j,... .\"O Enables or disables the use of autonegotiation of port B of an adapter card. .\"O Possible values are: -¥¢¥À¥×¥¿¥«¡¼¥É¤Î¥Ý¡¼¥È B ¤Î¼«Æ°ÀßÄê (autonegotiation) ¤Î»ÈÍѤò -Í­¸ú¤Þ¤¿¤Ï̵¸ú¤Ë¤¹¤ë¡£»ÈÍѲÄǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ê: +アダプタカードのポート B の自動設定 (autonegotiation) の使用を +有効または無効にする。使用可能な値は以下の通り: .\"O .IR On , .\"O .I Off .\"O or @@ -351,20 +351,20 @@ Marvell/SysKonnect .\"O auto-negotiation or not. .IR On , .IR Off , -.IR Sense ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +.IR Sense 。 +デフォルトは .I On -¤Ç¤¢¤ë¡£ +である。 .I Sense -¥â¡¼¥É¤Ï¥ê¥ó¥¯¥Ñ¡¼¥È¥Ê¤¬¼«Æ°ÀßÄê¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤«Èݤ«¤ò -¼«Æ°Åª¤Ë¸¡ÃΤ¹¤ë¡£ +モードはリンクパートナが自動設定をサポートしているか否かを +自動的に検知する。 .TP .BI DupCap_A= i,j,... .\"O This parameter indicates the duplex mode to be used for port A .\"O of an adapter card. .\"O Possible values are: -¤³¤Î°ú¤­¿ô¤Ï¥¢¥À¥×¥¿¥«¡¼¥É¤Î¥Ý¡¼¥È A ¤Ç»È¤¦Æó½ÅÄÌ¿® (duplex) ¥â¡¼¥É¤ò¼¨¤¹¡£ -»ÈÍѲÄǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ê: +この引き数はアダプタカードのポート A で使う二重通信 (duplex) モードを示す。 +使用可能な値は以下の通り: .\"O .IR Half , .\"O .I Full .\"O or @@ -376,13 +376,13 @@ Marvell/SysKonnect .\"O .IR Sense . .IR Half , .IR Full , -.IR Both ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +.IR Both 。 +デフォルトは .I Both -¤Ç¤¢¤ë¡£ -¤³¤Î°ú¤­¿ô¤Ï¥Ý¡¼¥È A ¤Î AutoNeg_A ¤¬ +である。 +この引き数はポート A の AutoNeg_A が .I Sense -¤ËÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£ +に設定されていない場合にのみ有効である。 .\"O If AutoNeg_A is set to .\"O .I On .\"O , all three values of DupCap_A ( @@ -400,29 +400,29 @@ Marvell/SysKonnect .\"O are allowed. .\"O This DupCap_A parameter is useful if your link partner does not .\"O support all possible duplex combinations. -AutoNeg_A ¤¬ +AutoNeg_A が .I On -¤Î¾ì¹ç¡¢DupCap_A ¤Î 3 ¤Ä¤ÎÃÍ +の場合、DupCap_A の 3 つの値 .RI ( Half , .IR Full , .IR Both ) -¤Î¤¦¤Á¤É¤ì¤Ç¤â»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -AutoNeg_A ¤¬ +のうちどれでも指定することができる。 +AutoNeg_A が .I Off -¤Î¾ì¹ç¡¢DupCap_A ¤ÎÃÍ +の場合、DupCap_A の値 .I Full -¤È +と .I Half -¤Î¤ß¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î DupCap_A °ú¤­¿ô¤Ï¡¢¥ê¥ó¥¯¥Ñ¡¼¥È¥Ê¤¬Á´¤Æ¤ÎÆó½ÅÄÌ¿®¤ÎÁȤ߹ç¤ï¤»¤ò -¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤ËÌò¤ËΩ¤Ä¡£ +のみを指定することができる。 +この DupCap_A 引き数は、リンクパートナが全ての二重通信の組み合わせを +サポートしていない場合に役に立つ。 .TP .BI DupCap_B= i,j,... .\"O This parameter indicates the duplex mode to be used for port B .\"O of an adapter card. .\"O Possible values are: -¤³¤Î°ú¤­¿ô¤Ï¥¢¥À¥×¥¿¥«¡¼¥É¤Î¥Ý¡¼¥È B ¤Ç»È¤¦Æó½ÅÄÌ¿®¥â¡¼¥É¤ò¼¨¤¹¡£ -»ÈÍѲÄǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ê: +この引き数はアダプタカードのポート B で使う二重通信モードを示す。 +使用可能な値は以下の通り: .\"O .IR Half , .\"O .I Full .\"O or @@ -434,13 +434,13 @@ AutoNeg_A .\"O .IR Sense . .IR Half , .IR Full , -.IR Both ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +.IR Both 。 +デフォルトは .I Both -¤Ç¤¢¤ë¡£ -¤³¤Î°ú¤­¿ô¤Ï¥Ý¡¼¥È B ¤Î AutoNeg_B ¤¬ +である。 +この引き数はポート B の AutoNeg_B が .I Sense -¤ËÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£ +に設定されていない場合にのみ有効である。 .\"O If AutoNeg_B is set to .\"O .IR On , .\"O all three values of DupCap_B ( @@ -458,30 +458,30 @@ AutoNeg_A .\"O are allowed. .\"O This DupCap_B parameter is useful if your link partner does not .\"O support all possible duplex combinations. -AutoNeg_B ¤¬ +AutoNeg_B が .I On -¤Î¾ì¹ç¡¢DupCap_B ¤Î 3 ¤Ä¤ÎÃÍ +の場合、DupCap_B の 3 つの値 .RI ( Half , .IR Full , .IR Both ) -¤Î¤¦¤Á¤É¤ì¤Ç¤â»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -AutoNeg_B ¤¬ +のうちどれでも指定することができる。 +AutoNeg_B が .I Off -¤Î¾ì¹ç¡¢DupCap_B ¤ÎÃÍ +の場合、DupCap_B の値 .I Full -¤È +と .I Half -¤Î¤ß¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î DupCap_B °ú¤­¿ô¤Ï¡¢¥ê¥ó¥¯¥Ñ¡¼¥È¥Ê¤¬Á´¤Æ¤ÎÆó½ÅÄÌ¿®¤ÎÁȤ߹ç¤ï¤»¤ò -¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤ËÌò¤ËΩ¤Ä¡£ +のみを指定することができる。 +この DupCap_B 引き数は、リンクパートナが全ての二重通信の組み合わせを +サポートしていない場合に役に立つ。 .TP .BI FlowCtrl_A= i,j,... .\"O This parameter can be used to set the flow control capabilities the .\"O port reports during auto-negotiation. .\"O Possible values are: -¤³¤Î°ú¤­¿ô¤Ï¼«Æ°ÀßÄê»þ¤Ë¥Ý¡¼¥È¤¬Âиþ¤ËÅÁ¤¨¤ë -¥Õ¥í¡¼À©¸æµ¡Ç½¤òÀßÄꤹ¤ë¡£ -»ÈÍѲÄǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ê: +この引き数は自動設定時にポートが対向に伝える +フロー制御機能を設定する。 +使用可能な値は以下の通り: .\"O .IR Sym , .\"O .IR SymOrRem , .\"O .I LocSend @@ -494,47 +494,47 @@ AutoNeg_B .IR Sym , .IR SymOrRem , .IR LocSend , -.IR None ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +.IR None 。 +デフォルトは .I SymOrRem -¤Ç¤¢¤ë¡£ -¤½¤ì¤¾¤ì¤Î¥â¡¼¥É¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤Ê°ÕÌ£¤¬¤¢¤ë: +である。 +それぞれのモードには以下のような意味がある: .br .I Sym = Symmetric .\"O both link partners are allowed to send PAUSE frames - ¥ê¥ó¥¯¥Ñ¡¼¥È¥Ê¤ÎÁÐÊý¤¬ PAUSE ¥Õ¥ì¡¼¥à¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ + リンクパートナの双方が PAUSE フレームを送ることができる。 .br .I SymOrRem = SymmetricOrRemote .\"O both or only remote partner are allowed to send PAUSE frames - ¥ê¥ó¥¯¥Ñ¡¼¥È¥Ê¤ÎÁÐÊý¤Þ¤¿¤Ï¥ê¥â¡¼¥È¥Ñ¡¼¥È¥Ê¤Î¤ß¤¬ -PAUSE ¥Õ¥ì¡¼¥à¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ + リンクパートナの双方またはリモートパートナのみが +PAUSE フレームを送ることができる。 .br .I LocSend = LocalSend .\"O only local link partner is allowed to send PAUSE frames - ¥í¡¼¥«¥ë¥ê¥ó¥¯¥Ñ¡¼¥È¥Ê¤Î¤ß¤¬ PAUSE ¥Õ¥ì¡¼¥à¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ + ローカルリンクパートナのみが PAUSE フレームを送ることができる。 .br .I None = None .\"O no link partner is allowed to send PAUSE frames - ¥ê¥ó¥¯¥Ñ¡¼¥È¥Ê¤Î¤É¤Á¤é¤â PAUSE ¥Õ¥ì¡¼¥à¤òÁ÷¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ + リンクパートナのどちらも PAUSE フレームを送ることはできない。 .\"O Note that this parameter is ignored if AutoNeg_A is set to .\"O .IR Off . -¤³¤Î¥Ñ¥é¥á¡¼¥¿¤Ï AutoNeg_A ¤¬ +このパラメータは AutoNeg_A が .I Off -¤Î¾ì¹ç¤Ë¤Ï̵»ë¤µ¤ì¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +の場合には無視される点に注意すること。 .TP .BI FlowCtrl_B= i,j,... .\"O This parameter can be used to set the flow control capabilities the .\"O port reports during auto-negotiation. .\"O Possible values are: -¤³¤Î°ú¤­¿ô¤Ï¼«Æ°ÀßÄê»þ¤Ë¥Ý¡¼¥È¤¬Âиþ¤ËÅÁ¤¨¤ë -¥Õ¥í¡¼À©¸æµ¡Ç½¤òÀßÄꤹ¤ë¡£ -»ÈÍѲÄǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ê: +この引き数は自動設定時にポートが対向に伝える +フロー制御機能を設定する。 +使用可能な値は以下の通り: .\"O .IR Sym , .\"O .IR SymOrRem , .\"O .I LocSend @@ -547,39 +547,39 @@ PAUSE .IR Sym , .IR SymOrRem , .IR LocSend , -.IR None ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +.IR None 。 +デフォルトは .I SymOrRem -¤Ç¤¢¤ë¡£ -¤½¤ì¤¾¤ì¤Î¥â¡¼¥É¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤Ê°ÕÌ£¤¬¤¢¤ë: +である。 +それぞれのモードには以下のような意味がある: .I Sym = Symmetric .\"O both link partners are allowed to send PAUSE frames - ¥ê¥ó¥¯¥Ñ¡¼¥È¥Ê¤ÎÁÐÊý¤¬ PAUSE ¥Õ¥ì¡¼¥à¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ + リンクパートナの双方が PAUSE フレームを送ることができる。 .br .I SymOrRem = SymmetricOrRemote .\"O both or only remote partner are allowed to send PAUSE frames - ¥ê¥ó¥¯¥Ñ¡¼¥È¥Ê¤ÎÁÐÊý¤Þ¤¿¤Ï¥ê¥â¡¼¥È¥Ñ¡¼¥È¥Ê¤Î¤ß¤¬ -PAUSE ¥Õ¥ì¡¼¥à¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ + リンクパートナの双方またはリモートパートナのみが +PAUSE フレームを送ることができる。 .br .I LocSend = LocalSend .\"O only local link partner is allowed to send PAUSE frames - ¥í¡¼¥«¥ë¥ê¥ó¥¯¥Ñ¡¼¥È¥Ê¤Î¤ß¤¬ PAUSE ¥Õ¥ì¡¼¥à¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ + ローカルリンクパートナのみが PAUSE フレームを送ることができる。 .br .I None = None .\"O no link partner is allowed to send PAUSE frames - ¥ê¥ó¥¯¥Ñ¡¼¥È¥Ê¤Î¤É¤Á¤é¤â PAUSE ¥Õ¥ì¡¼¥à¤òÁ÷¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ + リンクパートナのどちらも PAUSE フレームを送ることはできない。 .br .\"O Note that this parameter is ignored if AutoNeg_B is set to .\"O .IR Off . -¤³¤Î¥Ñ¥é¥á¡¼¥¿¤Ï AutoNeg_B ¤¬ +このパラメータは AutoNeg_B が .I Off -¤Î¾ì¹ç¤Ë¤Ï̵»ë¤µ¤ì¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +の場合には無視される点に注意すること。 .TP .BI Role_A= i,j,... .\"O This parameter is only valid for 1000Base-T adapter cards. @@ -587,11 +587,11 @@ PAUSE .\"O one must take the role of the master (providing timing information), .\"O while the other must be the slave. .\"O Possible values are: -¤³¤Î°ú¤­¿ô¤Ï 1000Base-T ¥¢¥À¥×¥¿¥«¡¼¥É¤Ç¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£ -2 ¤Ä¤Î 1000Base-T ¥Ý¡¼¥È¤¬ÄÌ¿®¤¹¤ë¾ì¹ç¡¢ -ÊÒÊý¤¬ (¥¿¥¤¥ß¥ó¥°¾ðÊó¤òÄ󶡤¹¤ë) ¥Þ¥¹¥¿¤ÎÌò³ä¤ò¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -¤â¤¦ÊÒÊý¤¬¥¹¥ì¡¼¥Ö¤Ë¤Ê¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -»ÈÍѲÄǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ê: +この引き数は 1000Base-T アダプタカードでのみ有効である。 +2 つの 1000Base-T ポートが通信する場合、 +片方が (タイミング情報を提供する) マスタの役割をしなければならず、 +もう片方がスレーブにならなければならない。 +使用可能な値は以下の通り: .\"O .IR Auto , .\"O .I Master .\"O or @@ -604,13 +604,13 @@ PAUSE .\"O can be forced to a specific setting with this parameter. .IR Auto , .IR Master , -.IR Slave ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +.IR Slave 。 +デフォルトは .I Auto -¤Ç¤¢¤ë¡£ -Ä̾¥Ý¡¼¥È¤ÎÌò³ä¤Ï 2 ¤Ä¤Î¥Ý¡¼¥È¤Ç¥ê¥ó¥¯¤ò³ÎΩ¤¹¤ë¤È¤­¤Ë¼«Æ°ÀßÄꤵ¤ì¤ë¡£ -¼«Æ°ÀßÄê¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¡¢ -¥¢¥À¥×¥¿¥«¡¼¥É¤Î¥Ý¡¼¥È A ¤Ï¤³¤Î°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿ÀßÄê¤Ë¤Ê¤ë¡£ +である。 +通常、ポートの役割は 2 つのポートでリンクを確立するときに自動設定される。 +自動設定に失敗した場合、 +アダプタカードのポート A はこの引き数で指定された設定になる。 .TP .BI Role_B= i,j,... .\"O This parameter is only valid for 1000Base-T adapter cards. @@ -618,11 +618,11 @@ PAUSE .\"O the role of the master (providing timing information), .\"O while the other must be the slave. .\"O Possible values are: -¤³¤Î°ú¤­¿ô¤Ï 1000Base-T ¥¢¥À¥×¥¿¥«¡¼¥É¤Ç¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£ -2 ¤Ä¤Î 1000Base-T ¥Ý¡¼¥È¤¬ÄÌ¿®¤¹¤ë¾ì¹ç¡¢ -ÊÒÊý¤¬ (¥¿¥¤¥ß¥ó¥°¾ðÊó¤òÄ󶡤¹¤ë) ¥Þ¥¹¥¿¤ÎÌò³ä¤ò¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -¤â¤¦ÊÒÊý¤¬¥¹¥ì¡¼¥Ö¤Ë¤Ê¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -»ÈÍѲÄǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ê: +この引き数は 1000Base-T アダプタカードでのみ有効である。 +2 つの 1000Base-T ポートが通信する場合、 +片方が (タイミング情報を提供する) マスタの役割をしなければならず、 +もう片方がスレーブにならなければならない。 +使用可能な値は以下の通り: .\"O .IR Auto , .\"O .I Master .\"O or @@ -636,13 +636,13 @@ PAUSE .\"O specific setting with this parameter. .IR Auto , .IR Master , -.IR Slave ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +.IR Slave 。 +デフォルトは .I Auto -¤Ç¤¢¤ë¡£ -Ä̾¥Ý¡¼¥È¤ÎÌò³ä¤Ï 2 ¤Ä¤Î¥Ý¡¼¥È¤Ç¥ê¥ó¥¯¤ò³ÎΩ¤¹¤ë¤È¤­¤Ë¼«Æ°ÀßÄꤵ¤ì¤ë¡£ -¼«Æ°ÀßÄê¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¡¢ -¥¢¥À¥×¥¿¥«¡¼¥É¤Î¥Ý¡¼¥È B ¤Ï¤³¤Î°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿ÀßÄê¤Ë¤Ê¤ë¡£ +である。 +通常、ポートの役割は 2 つのポートでリンクを確立するときに自動設定される。 +自動設定に失敗した場合、 +アダプタカードのポート B はこの引き数で指定された設定になる。 .TP .BI ConType= i,j,... .\"O This parameter is a combination of all five per-port parameters @@ -651,13 +651,13 @@ PAUSE .\"O The different values of this variable reflect the .\"O most meaningful combinations of port parameters. .\"O Possible values and their corresponding combination of per-port parameters: -¤³¤Î°ú¤­¿ô¤Ï¡¢¥Ý¡¼¥ÈËè¤Ë»ØÄꤹ¤ë¡¢Á´Éô¤Ç 5 ¸Ä¤Î°ú¤­¿ô¤ÎÁȤ߹ç¤ï¤»¤ò¡¢ -1 ¤Ä¤Î°ú¤­¿ô¤Ë¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤ì¤Ë¤è¤ê¥¢¥À¥×¥¿¥«¡¼¥É¤Î 2 ¤Ä¤Î¥Ý¡¼¥È¤ÎÀßÄê¤ò´Êά²½¤Ç¤­¤ë¡£ -¤³¤ÎÊÑ¿ô¤Î¤½¤ì¤¾¤ì¤ÎÃͤϡ¢ -¥Ý¡¼¥È°ú¤­¿ô¤ÎºÇ¤â°ÕÌ£¤Î¤¢¤ëÁȤ߹ç¤ï¤»¤òÈ¿±Ç¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -»ÈÍѲÄǽ¤ÊÃͤȤ½¤ì¤ËÂбþ¤¹¤ë¥Ý¡¼¥ÈËè¤Î¥Ñ¥é¥á¡¼¥¿¤ÎÁȤ߹ç¤ï¤»¤Ï¡¢ -°Ê²¼¤ÎÄ̤ê: +この引き数は、ポート毎に指定する、全部で 5 個の引き数の組み合わせを、 +1 つの引き数にしたものである。 +これによりアダプタカードの 2 つのポートの設定を簡略化できる。 +この変数のそれぞれの値は、 +ポート引き数の最も意味のある組み合わせを反映したものである。 +使用可能な値とそれに対応するポート毎のパラメータの組み合わせは、 +以下の通り: .nf ConType | DupCap AutoNeg FlowCtrl Role Speed @@ -681,14 +681,14 @@ ConType | DupCap AutoNeg FlowCtrl Role Speed .\"O .IR Speed_A ) .\"O have a higher priority than the combined variable .\"O .IR ConType . -¤½¤Î¾¤Î¥Ý¡¼¥È°ú¤­¿ô¤ò +その他のポート引き数を .I ConType -°ú¤­¿ô¤ÈÁȤ߹ç¤ï¤»¤Æ»ØÄꤹ¤ë¤È¡¢¤½¤ì¤é¤ÎÀßÄê¤ò·ë¹ç¤·¤¿ÀßÄê¤È¤Ê¤ë¡£ -¤³¤ì¤Ï¡¢¥Ý¡¼¥ÈËè¤Î°ú¤­¿ô (Î㤨¤Ð +引き数と組み合わせて指定すると、それらの設定を結合した設定となる。 +これは、ポート毎の引き数 (例えば .IR Speed_A ) -¤ÎÊý¤¬ÁȤ߹ç¤ï¤»ÊÑ¿ô +の方が組み合わせ変数 .I ConType -¤è¤êÍ¥Àè½ç°Ì¤¬¹â¤¤¤¿¤á¤Ç¤¢¤ë¡£ +より優先順位が高いためである。 .TP .BI Moderation= i,j,... .\"O Interrupt moderation is employed to limit the maximum number of interrupts @@ -699,15 +699,15 @@ ConType | DupCap AutoNeg FlowCtrl Role Speed .\"O .I IntsPerSec .\"O parameter, which is explained later below. .\"O Possible moderation modes are: -³ä¤ê¹þ¤ßÄ´Ää (interrupt moderation) ¤Ï¡¢¥É¥é¥¤¥Ð¤¬½èÍý¤ò³«»Ï¤·¤Ê¤±¤ì¤Ð -¤Ê¤é¤Ê¤¤³ä¤ê¹þ¤ß²ó¿ô¤ÎºÇÂçÃͤòÀßÄꤹ¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ -¤Ä¤Þ¤ê¡¢¥É¥é¥¤¥Ð¤¬½èÍý¤ò¹Ô¤¦¤Þ¤Ç¡¢1²ó°Ê¾å¤Î³ä¤ê¹þ¤ß -(Á÷¿®¤Þ¤¿¤Ï¼õ¿®¥Ñ¥±¥Ã¥È¤¬½èÍý¤µ¤ì¤ë¤³¤È) ¤¬¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤ë¡£ -¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤¿³ä¤ê¹þ¤ß¤¬¤¤¤Ä½èÍý¤µ¤ì¤ë¤«¤Ï¡¢ -°Ê²¼¤ÇÀâÌÀ¤¹¤ë +割り込み調停 (interrupt moderation) は、ドライバが処理を開始しなければ +ならない割り込み回数の最大値を設定するために使用される。 +つまり、ドライバが処理を行うまで、1回以上の割り込み +(送信または受信パケットが処理されること) がキューに入れられる。 +キューに入れられた割り込みがいつ処理されるかは、 +以下で説明する .I IntsPerSec -°ú¤­¿ô¤Ç·èÄꤵ¤ì¤ë¡£ -»ÈÍѲÄǽ¤ÊÄ´Ää¥â¡¼¥É¤Ï°Ê²¼¤ÎÄ̤ê: +引き数で決定される。 +使用可能な調停モードは以下の通り: .\"O .IR None , .\"O .I Static .\"O or @@ -718,19 +718,19 @@ ConType | DupCap AutoNeg FlowCtrl Role Speed .\"O The different modes have the following meaning: .IR None , .IR Static , -.IR Dynamic ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +.IR Dynamic 。 +デフォルトは .I None -¤Ç¤¢¤ë¡£ -¤½¤ì¤¾¤ì¤Î¥â¡¼¥É¤Ï°Ê²¼¤Î°ÕÌ£¤ò»ý¤Ä: +である。 +それぞれのモードは以下の意味を持つ: .I None .\"O No interrupt moderation is applied on the adapter card. .\"O Therefore, each transmit or receive interrupt is served immediately .\"O as soon as it appears on the interrupt line of the adapter card. -¥¢¥À¥×¥¿¥«¡¼¥É¤ËÂФ·¤Æ³ä¤ê¹þ¤ßÄ´Ää¤òŬÍѤ·¤Ê¤¤¡£ -¤è¤Ã¤ÆÁ÷¿®¤Þ¤¿¤Ï¼õ¿®³ä¤ê¹þ¤ß¤Ï¡¢ -¥¢¥À¥×¥¿¥«¡¼¥É¤Î³ä¤ê¹þ¤ßÀþ¤Ë¸½¤ì¤ë¤Èľ¤°¤Ë½èÍý¤µ¤ì¤ë¡£ +アダプタカードに対して割り込み調停を適用しない。 +よって送信または受信割り込みは、 +アダプタカードの割り込み線に現れると直ぐに処理される。 .br .I Static @@ -746,16 +746,16 @@ ConType | DupCap AutoNeg FlowCtrl Role Speed .\"O particular interface. .\"O In addition, the duration of the moderation interval has a fixed .\"O length that never changes while the driver is operational. -¥¢¥À¥×¥¿¥«¡¼¥É¤ËÂФ·¤Æ³ä¤ê¹þ¤ßÄ´Ä䤬ŬÍѤµ¤ì¤ë¡£ -Á´¤Æ¤ÎÁ÷¿®¤Þ¤¿¤Ï¼õ¿®³ä¤ê¹þ¤ß¤Ï¡¢Ä´Ää´Ö³Ö¤¬´°Á´¤Ë½ª¤ï¤ë¤Þ¤Ç -¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤ë¡£ -¤³¤ÎÄ´Ää´Ö³Ö¤¬½ª¤ï¤ë¤È¡¢¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤¿Á´¤Æ¤Î³ä¤ê¹þ¤ß¤Ï¡¢ -1¸Ä¤ÎÂ礭¤Ê²ô¤È¤·¤ÆÃÙ±ä¤Ê¤¯½èÍý¤µ¤ì¤ë¡£ +アダプタカードに対して割り込み調停が適用される。 +全ての送信または受信割り込みは、調停間隔が完全に終わるまで +キューに入れられる。 +この調停間隔が終わると、キューに入れられた全ての割り込みは、 +1個の大きな塊として遅延なく処理される。 .I Static -¤È¤¤¤¦ÍѸì¤Ï¡¢¤¢¤ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë¸½ºß¤É¤ì¤À¤±¤Î -¥Í¥Ã¥È¥ï¡¼¥¯Éé²Ù¤¬¤«¤«¤Ã¤Æ¤¤¤ë¤«¤Ë´Ø¤ï¤é¤º¡¢ -³ä¤ê¹þ¤ßÄ´Ä䤬¾ï¤ËÍ­¸ú¤Ë¤Ê¤ë¤³¤È¤òɽ¤·¤Æ¤¤¤ë¡£ -¤µ¤é¤Ë¡¢Ä´Ää´Ö³Ö¤Î»þ´Ö¤Ï¸ÇÄê¤Ç¡¢¥É¥é¥¤¥Ð¤¬Æ°ºî¤·¤Æ¤¤¤ë´Ö¤ÏÊѲ½¤·¤Ê¤¤¡£ +という用語は、あるインタフェースに現在どれだけの +ネットワーク負荷がかかっているかに関わらず、 +割り込み調停が常に有効になることを表している。 +さらに、調停間隔の時間は固定で、ドライバが動作している間は変化しない。 .br .I Dynamic @@ -767,36 +767,36 @@ ConType | DupCap AutoNeg FlowCtrl Role Speed .\"O If\(emat a later time\(emthe CPU utilization decreases .\"O again (or if the network load is negligible) the interrupt .\"O moderation will automatically be disabled. -¥·¥¹¥Æ¥à¤ÎÉé²Ù¤Ë±þ¤¸¤Æ¡¢¥¢¥À¥×¥¿¥«¡¼¥É¤ËÂФ·¤Æ³ä¤ê¹þ¤ßÄ´Ä䤬ŬÍѤµ¤ì¤ë¡£ -¥É¥é¥¤¥Ð¤¬¥·¥¹¥Æ¥à¤ÎÉé²Ù¤¬¹â¤¹¤®¤ë¤È¸¡½Ð¤·¤¿¾ì¹ç¡¢ -³ä¤ê¹þ¤ßÄ´Ää¤òÍ­¸ú¤Ë¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢ -²á¾ê¤Ê¥Í¥Ã¥È¥ï¡¼¥¯Éé²Ù¤«¤é¥·¥¹¥Æ¥à¤òÊݸ¤è¤¦¤È¤¹¤ë¡£ -\(em¤½¤Î¸å¤Ë\(emCPU ÍøÍÑΨ¤¬ºÆ¤Ó²¼¤¬¤Ã¤¿¾ì¹ç -(¤Þ¤¿¤Ï¥Í¥Ã¥È¥ï¡¼¥¯Éé²Ù¤¬¶Ë¤ï¤º¤«¤Ë¤Ê¤Ã¤¿¾ì¹ç)¡¢ -³ä¤ê¹þ¤ßÄ´Ää¤Ï¼«Æ°Åª¤Ë̵¸ú¤Ë¤µ¤ì¤ë¡£ +システムの負荷に応じて、アダプタカードに対して割り込み調停が適用される。 +ドライバがシステムの負荷が高すぎると検出した場合、 +割り込み調停を有効にすることにより、 +過剰なネットワーク負荷からシステムを保護しようとする。 +\(emその後に\(emCPU 利用率が再び下がった場合 +(またはネットワーク負荷が極わずかになった場合)、 +割り込み調停は自動的に無効にされる。 .\"O Interrupt moderation should be used when the driver has to .\"O handle one or more interfaces with a high network load, .\"O which\(emas a consequence\(emleads also to a high CPU utilization. .\"O When moderation is applied in such high network load situations, .\"O CPU load might be reduced by 20-30% on slow computers. -¥É¥é¥¤¥Ð¤¬°·¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î¤¦¤Á -¥Í¥Ã¥È¥ï¡¼¥¯Éé²Ù¤¬¹â¤¤¤â¤Î¤¬ 1 ¤Ä°Ê¾å¤¢¤ê¡¢ -\(em¤½¤Î·ë²Ì\(emCPU ÍøÍÑΨ¤¬¹â¤¯¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -³ä¤ê¹þ¤ßÄ´Ää¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£ -¥Í¥Ã¥È¥ï¡¼¥¯Éé²Ù¤¬¹â¤¤¾õ¶·¤ÇÄ´Ä䤬ŬÍѤµ¤ì¤ë¤È¡¢ -ÃÙ¤¤¥³¥ó¥Ô¥å¡¼¥¿¤Ç¤Ï CPU Éé²Ù¤¬ 20-30% ºï¸º¤µ¤ì¤ë¤À¤í¤¦¡£ +ドライバが扱わなければならないインタフェースのうち +ネットワーク負荷が高いものが 1 つ以上あり、 +\(emその結果\(emCPU 利用率が高くなっている場合、 +割り込み調停を使うべきである。 +ネットワーク負荷が高い状況で調停が適用されると、 +遅いコンピュータでは CPU 負荷が 20-30% 削減されるだろう。 .\"O Note that the drawback of using interrupt moderation is an increase of .\"O the round-trip-time (RTT), due to the queuing and serving of .\"O interrupts at dedicated moderation times. -³ä¤ê¹þ¤ßÄ´Ää¤ò»È¤¦¤³¤È¤Î·çÅÀ¤È¤·¤Æ¡¢ -±ýÉüÃÙ±ä»þ´Ö (round-trip-time, RTT) ¤ÎÁý²Ã¤¬¤¢¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¤³¤ì¤Ï¡¢³ä¤ê¹þ¤ß¤¬¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¡¢¤Þ¤È¤á¤Æ½èÍý¤µ¤ì¤ë¤¿¤á¤Ç¤¢¤ë¡£ +割り込み調停を使うことの欠点として、 +往復遅延時間 (round-trip-time, RTT) の増加がある点に注意すること。 +これは、割り込みがキューに入れられ、まとめて処理されるためである。 .TP .BI IntsPerSec= i,j,... .\"O This parameter determines the length of any interrupt moderation interval. -¤³¤Î°ú¤­¿ô¤Ï³ä¤ê¹þ¤ßÄ´Ää¤Î´Ö³Ö¤ò·èÄꤹ¤ë¡£ +この引き数は割り込み調停の間隔を決定する。 .\"O Assuming that static interrupt moderation is to be used, an .\"O .I IntsPerSec .\"O parameter value of 2000 will lead to an interrupt moderation interval of @@ -804,19 +804,19 @@ ConType | DupCap AutoNeg FlowCtrl Role Speed .\"O Possible values for this parameter are in the range of .\"O 30...40000 (interrupts per second). .\"O The default value is 2000. -ÀÅŪ (static) ³ä¤ê¹þ¤ßÄ´Ä䤬»È¤ï¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ +静的 (static) 割り込み調停が使われている場合、 .I IntsPerSec -°ú¤­¿ô¤ÎÃͤ¬ 2000 ¤Ç¤¢¤ì¤Ð¡¢³ä¤ê¹þ¤ßÄ´Ää¤Î´Ö³Ö¤Ï 500 ¥ß¥êÉäˤʤ롣 -¤³¤Î°ú¤­¿ô¤ËÀßÄê²Äǽ¤ÊÃÍ¤Ï 30...40000 ¤ÎÈϰϤǡ¢ -¤³¤ì¤Ï 1 ÉÃËè¤Î³ä¤ê¹þ¤ß²ó¿ô¤Ç¤¢¤ë¡£ -¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 2000 ¤Ç¤¢¤ë¡£ +引き数の値が 2000 であれば、割り込み調停の間隔は 500 ミリ秒になる。 +この引き数に設定可能な値は 30...40000 の範囲で、 +これは 1 秒毎の割り込み回数である。 +デフォルト値は 2000 である。 .\"O This parameter is only used, if either static or dynamic interrupt moderation .\"O is enabled on a network adapter card. .\"O This parameter is ignored if no moderation is applied. -¤³¤Î°ú¤­¿ô¤ÏÀÅŪ (static) ¤Þ¤¿¤ÏưŪ (dynamic) ³ä¤ê¹þ¤ßÄ´Ä䤬 -Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¤­¤Ë¤Î¤ß»ÈÍѤµ¤ì¤ë¡£ -¤³¤Î°ú¤­¿ô¤Ï³ä¤ê¹þ¤ßÄ´Ä䤬ŬÍѤµ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï̵»ë¤µ¤ì¤ë¡£ +この引き数は静的 (static) または動的 (dynamic) 割り込み調停が +有効になっているときにのみ使用される。 +この引き数は割り込み調停が適用されていない場合には無視される。 .\"O Note that the duration of the moderation interval is to be chosen with care. .\"O At first glance, selecting a very long duration (e.g., only 100 interrupts per @@ -824,11 +824,11 @@ ConType | DupCap AutoNeg FlowCtrl Role Speed .\"O is tremendous. .\"O On the other hand, selecting a very short moderation time might .\"O compensate the use of any moderation being applied. -Ä´Ää´Ö³Ö¤Î´ü´Ö¤ÏÃí°Õ¤·¤ÆÁª¤Ö¤³¤È¡£ -°ì¸«¤·¤¿¤È¤³¤í¤Ç¤Ï¡¢¤È¤Æ¤âŤ¤´ü´Ö (Î㤨¤Ð 1 ÉÃ´Ö¤Ë 100 ²ó¤À¤±¤Î³ä¤ê¹þ¤ß) ¤ò -Áª¤Ö¤³¤È¤Ë°ÕÌ£¤¬¤¢¤ë¤è¤¦¤Ë¸«¤¨¤ë¤«¤â¤·¤ì¤Ê¤¤¤¬¡¢¤½¤¦¤¹¤ë¤È -¥Ñ¥±¥Ã¥È½èÍý¤ÎÃٱ䤬·ã¤·¤¯Áý²Ã¤¹¤ë¡£ -°ìÊý¤Ç¡¢¤È¤Æ¤âû¤¤Ä´Ää»þ´Ö¤òÁª¤Ö¤È¡¢³ä¤ê¹þ¤ßÄ´Ää¤ò»È¤¦°ÕÌ£¤¬¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¡£ +調停間隔の期間は注意して選ぶこと。 +一見したところでは、とても長い期間 (例えば 1 秒間に 100 回だけの割り込み) を +選ぶことに意味があるように見えるかもしれないが、そうすると +パケット処理の遅延が激しく増加する。 +一方で、とても短い調停時間を選ぶと、割り込み調停を使う意味がなくなってしまう。 .TP .BI PrefPort= i,j,... .\"O This parameter is used to force the preferred port to @@ -836,11 +836,11 @@ ConType | DupCap AutoNeg FlowCtrl Role Speed .\"O The preferred port is the one that is used if both ports A and B are .\"O detected as fully functional. .\"O Possible values are: -¤³¤Î°ú¤­¿ô¤Ï (2 ¥Ý¡¼¥È¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥À¥×¥¿¤Ç) -Í¥Àè (preferred) ¥Ý¡¼¥È¤ò A ¤Þ¤¿¤Ï B ¤Î¤É¤Á¤é¤Ë¤¹¤ë¤«¤ò»ØÄꤹ¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£ -Í¥Àè¥Ý¡¼¥È¤È¤Ï¡¢A ¤È B ¤ÎξÊý¤Î¥Ý¡¼¥È¤¬´°Á´¤Ëµ¡Ç½¤·¤Æ¤¤¤ë¤È¸¡ÃΤµ¤ì¤¿¾ì¹ç¤Ë -»ÈÍѤµ¤ì¤ë¥Ý¡¼¥È¤Ç¤¢¤ë¡£ -»ÈÍѲÄǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ê: +この引き数は (2 ポートのネットワークアダプタで) +優先 (preferred) ポートを A または B のどちらにするかを指定するのに使われる。 +優先ポートとは、A と B の両方のポートが完全に機能していると検知された場合に +使用されるポートである。 +使用可能な値は以下の通り: .\"O .I A .\"O or .\"O .I B @@ -848,11 +848,11 @@ ConType | DupCap AutoNeg FlowCtrl Role Speed .\"O .I A .\"O is the default. .I A -¤Þ¤¿¤Ï -.IR B ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +または +.IR B 。 +デフォルトは .I A -¤Ç¤¢¤ë¡£ +である。 .TP .BI RlmtMode= i,j,... .\"O RLMT monitors the status of the port. @@ -861,12 +861,12 @@ ConType | DupCap AutoNeg FlowCtrl Role Speed .\"O The virtual link is maintained as long as at least one "physical" link is up. .\"O This parameters states how RLMT should monitor both ports. .\"O Possible values are: -RLMT ¤Ï¥Ý¡¼¥È¤Î¾õÂÖ¤ò´Æ»ë¤¹¤ë¡£ -¥¢¥¯¥Æ¥£¥Ö¤Ê¥Ý¡¼¥È¤Î¥ê¥ó¥¯¤¬Íî¤Á¤¿¾ì¹ç¡¢ -RLMT ¤Ï¨»þ¤ËÂÔµ¡¤·¤Æ¤¤¤ë¥ê¥ó¥¯¤ËÀÚ¤êÂؤ¨¤ë¡£ -¾¯¤Ê¤¯¤È¤â 1 ¤Ä¤Î¡ÖʪÍýŪ¡×¥ê¥ó¥¯¤¬µ¯Æ°¤¹¤ë¤Þ¤Ç¤Ï¡¢²¾ÁÛ¥ê¥ó¥¯¤¬°Ý»ý¤µ¤ì¤ë¡£ -¤³¤Î°ú¤­¿ô¤Ï RLMT ¤¬Î¾Êý¤Î¥Ý¡¼¥È¤ò¤É¤Î¤è¤¦¤Ë´Æ»ë¤¹¤ë¤«¤ò·è¤á¤ë¡£ -»ÈÍѲÄǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ê: +RLMT はポートの状態を監視する。 +アクティブなポートのリンクが落ちた場合、 +RLMT は即時に待機しているリンクに切り替える。 +少なくとも 1 つの「物理的」リンクが起動するまでは、仮想リンクが維持される。 +この引き数は RLMT が両方のポートをどのように監視するかを決める。 +使用可能な値は以下の通り: .\"O .IR CheckLinkState , .\"O .IR CheckLocalPort , .\"O .I CheckSeg @@ -879,20 +879,20 @@ RLMT .IR CheckLinkState , .IR CheckLocalPort , .IR CheckSeg , -.IR DualNet ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +.IR DualNet 。 +デフォルトは .I CheckLinkState -¤Ç¤¢¤ë¡£ -³Æ¥â¡¼¥É¤Ï°Ê²¼¤Î¤è¤¦¤Ê°ÕÌ£¤ò»ý¤Ä¡£ +である。 +各モードは以下のような意味を持つ。 .I CheckLinkState .\"O Check link state only: RLMT uses the link state reported by the adapter .\"O hardware for each individual port to determine whether a port can be used .\"O for all network traffic or not. -¥ê¥ó¥¯¾õÂ֤ΥÁ¥§¥Ã¥¯¤Î¤ß: -RLMT ¤Ï¡¢³Æ¥Ý¡¼¥È¤Ë¤Ä¤¤¤Æ¥¢¥À¥×¥¿¥Ï¡¼¥É¥¦¥§¥¢¤¬Êó¹ð¤¹¤ë¥ê¥ó¥¯¾õÂÖ¤ò»È¤¤¡¢ -¤½¤Î¥Ý¡¼¥È¤¬Á´¤Æ¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥È¥é¥Õ¥£¥Ã¥¯¤òÁ÷¼õ¿®¤¹¤ë¤Î¤Ë»ÈÍѲÄǽ¤«¤ò -·èÄꤹ¤ë¡£ +リンク状態のチェックのみ: +RLMT は、各ポートについてアダプタハードウェアが報告するリンク状態を使い、 +そのポートが全てのネットワークトラフィックを送受信するのに使用可能かを +決定する。 .br .I CheckLocalPort @@ -901,12 +901,12 @@ RLMT .\"O This mode requires a network configuration in which the .\"O two ports are able to "see" each other (i.e., there .\"O must not be any router between the ports). -¤³¤Î¥â¡¼¥É¤Ç¤Ï¡¢RLMT ¤Ï¥¢¥À¥×¥¿¥«¡¼¥É¤Î 2 ¤Ä¤Î¥Ý¡¼¥È¤Î´Ö¤Ç -Äê´üŪ¤Ë¥Ñ¥±¥Ã¥È¤ò¸ò´¹¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢ -2 ¤Ä¤Î¥Ý¡¼¥È¤Î´Ö¤Î¥Í¥Ã¥È¥ï¡¼¥¯·ÐÏ©¤ò´Æ»ë¤¹¤ë¡£ -¤³¤Î¥â¡¼¥É¤Ç¤Ï 2 ¤Ä¤Î¥Ý¡¼¥È¤¬¸ß¤¤¤Ë¡Ö¸«¤¨¤ë¡×¤è¤¦¤Ê -¥Í¥Ã¥È¥ï¡¼¥¯ÀßÄ꤬ɬÍפǤ¢¤ë -(¤Ä¤Þ¤ê¡¢¥Ý¡¼¥È´Ö¤Ë¥ë¡¼¥¿¤¬¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤)¡£ +このモードでは、RLMT はアダプタカードの 2 つのポートの間で +定期的にパケットを交換することにより、 +2 つのポートの間のネットワーク経路を監視する。 +このモードでは 2 つのポートが互いに「見える」ような +ネットワーク設定が必要である +(つまり、ポート間にルータがあってはならない)。 .br .I CheckSeg @@ -916,13 +916,13 @@ RLMT .\"O Therefore, this mode is only to be used if Gigabit Ethernet .\"O switches are installed on the network that have been .\"O configured to use the Spanning Tree protocol. -¥í¡¼¥«¥ë¥Ý¡¼¥È¤È¥»¥°¥á¥ó¥È¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ -¤³¤Î¥â¡¼¥É¤Ï CheckLocalPort ¥â¡¼¥É¤ÈƱ¤¸µ¡Ç½¤òÄ󶡤·¡¢ -¹¹¤Ë¥Ý¡¼¥È´Ö¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥»¥°¥á¥ó¥È¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ -¤è¤Ã¤Æ¡¢¤³¤Î¥â¡¼¥É¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¾å¤Ë -¥¹¥Ñ¥Ë¥ó¥°¥Ä¥ê¡¼¥×¥í¥È¥³¥ë (Spanning Tree protocol) ¤ò -»È¤¦¤è¤¦¤ËÀßÄꤵ¤ì¤¿¥®¥¬¥Ó¥Ã¥È¥¤¡¼¥µ¥Í¥Ã¥È¥¹¥¤¥Ã¥Á¤¬ -ÀßÃÖ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Î¤ß»ÈÍѤǤ­¤ë¡£ +ローカルポートとセグメントをチェックする。 +このモードは CheckLocalPort モードと同じ機能を提供し、 +更にポート間のネットワークセグメントをチェックする。 +よって、このモードはネットワーク上に +スパニングツリープロトコル (Spanning Tree protocol) を +使うように設定されたギガビットイーサネットスイッチが +設置されている場合にのみ使用できる。 .br .I DualNet @@ -934,15 +934,15 @@ RLMT .\"O Both ports can be used independently with distinct IP addresses. .\"O The preferred port setting is not used. .\"O RLMT is turned off. -¤³¤Î¥â¡¼¥É¤Ç¤Ï¡¢¥Ý¡¼¥È A ¤È B ¤¬ÊÌ¡¹¤Î¥Ç¥Ð¥¤¥¹¤È¤·¤Æ»ÈÍѤµ¤ì¤ë¡£ -2 ¥Ý¡¼¥È¤Î¥¢¥À¥×¥¿¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢¥Ý¡¼¥È A ¤ò +このモードでは、ポート A と B が別々のデバイスとして使用される。 +2 ポートのアダプタを持っている場合、ポート A を .I eth[x] -¤Ë¡¢¥Ý¡¼¥È B ¤ò +に、ポート B を .I eth[x+1] -¤ËÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -2 ¤Ä¤Î¥Ý¡¼¥È¤ÏÊÌ¡¹¤Î IP ¥¢¥É¥ì¥¹¤òÉÕ¤±¤ÆÆÈΩ¤Ë»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -Í¥Àè¥Ý¡¼¥È¤ÎÀßÄê¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£ -RLMT ¤Ï̵¸ú¤Ë¤µ¤ì¤ë¡£ +に設定することができる。 +2 つのポートは別々の IP アドレスを付けて独立に使用することができる。 +優先ポートの設定は使用されない。 +RLMT は無効にされる。 .\"O Note that RLMT modes .\"O .I CheckLocalPort @@ -952,25 +952,25 @@ RLMT .\"O network path between the ports on one adapter exists. .\"O Moreover, they are not designed to work where adapters are .\"O connected back-to-back. -RLMT ¥â¡¼¥É +RLMT モード .I CheckLocalPort -¤È +と .I CheckLinkState -¤Ï¡¢1 ¤Ä¤Î¥¢¥À¥×¥¿¾å¤Î¥Ý¡¼¥È´Ö¤Ç¥Í¥Ã¥È¥ï¡¼¥¯·ÐÏ©¤¬¤¢¤ë¤è¤¦¤ÊÀßÄê¤Ç -Æ°ºî¤¹¤ë¤è¤¦¤ËÀ߷פµ¤ì¤Æ¤¤¤ë¡£ -¤µ¤é¤Ë¡¢¤³¤Î¥â¡¼¥É¤Ï¥¢¥À¥×¥¿Æ±»Î¤¬Ä¾·ë (back-to-back) ¤Ç -Àܳ¤µ¤ì¤Æ¤¤¤ë¾õÂÖ¤ÇÆ°ºî¤¹¤ë¤è¤¦¤Ë¤ÏÀ߷פµ¤ì¤Æ¤¤¤Ê¤¤¡£ +は、1 つのアダプタ上のポート間でネットワーク経路があるような設定で +動作するように設計されている。 +さらに、このモードはアダプタ同士が直結 (back-to-back) で +接続されている状態で動作するようには設計されていない。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .TP .I /proc/net/sk98lin/eth[x] .br .\"O The statistics file of a particular interface of an adapter card. .\"O It contains generic information about the adapter card plus a detailed .\"O summary of all transmit and receive counters. -¥¢¥À¥×¥¿¥«¡¼¥É¤ÎÆÃÄê¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÎÅý·×¥Õ¥¡¥¤¥ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¥¢¥À¥×¥¿¥«¡¼¥É¤Î°ìÈÌŪ¤Ê¾ðÊó¤È¡¢ -Á´¤Æ¤ÎÁ÷¿®¡¦¼õ¿®¥«¥¦¥ó¥¿¤Î¾ÜºÙ¤Ê°ìÍ÷¤¬´Þ¤Þ¤ì¤ë¡£ +アダプタカードの特定のインタフェースの統計ファイル。 +このファイルには、アダプタカードの一般的な情報と、 +全ての送信・受信カウンタの詳細な一覧が含まれる。 .TP .I /usr/src/linux/Documentation/networking/sk98lin.txt .br @@ -983,23 +983,23 @@ RLMT .\"O of the driver. .\"O It denotes also common problems and provides the solution to them. .I sk98lin -¥É¥é¥¤¥Ð¤Î +ドライバの .I README -¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ -¤³¤ì¤Ë¤Ï¾ÜºÙ¤Ê¥¤¥ó¥¹¥È¡¼¥ë HOWTO ¤¬´Þ¤Þ¤ì¤Æ¤ª¤ê¡¢ -¥É¥é¥¤¥Ð¤ÎÁ´¤Æ¤Î°ú¤­¿ô¤¬µ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -¤Þ¤¿°ìÈÌŪ¤ÊÌäÂê¤È¤½¤Î²ò·èË¡¤Ë¤Ä¤¤¤Æ¤â½ñ¤«¤ì¤Æ¤¤¤ë¡£ +ファイルである。 +これには詳細なインストール HOWTO が含まれており、 +ドライバの全ての引き数が記述されている。 +また一般的な問題とその解決法についても書かれている。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Report any bugs to linux@syskonnect.de -¥Ð¥°¤Ï linux@syskonnect.de ¤ËÊó¹ð¤·¤Æ¤Û¤·¤¤¡£ +バグは linux@syskonnect.de に報告してほしい。 .\"O .\" .SH AUTHORS -.\" .SH Ãø¼Ô +.\" .SH 著者 .\" Ralph Roesler \(em rroesler@syskonnect.de .\" .br .\" Mirko Lindner \(em mlindner@syskonnect.de .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR insmod (8), .BR ifconfig (8), .BR modprobe (8) diff --git a/draft/man4/st.4 b/draft/man4/st.4 index c98f1e20..109bfd8b 100644 --- a/draft/man4/st.4 +++ b/draft/man4/st.4 @@ -1,5 +1,5 @@ .\" Copyright 1995 Robert K. Nichols (Robert.K.Nichols@att.com) -.\" Copyright 1999-2005 Kai M¥Æ¡¢kisara (Kai.Makisara@kolumbus.fi) +.\" Copyright 1999-2005 Kai Mテ、kisara (Kai.Makisara@kolumbus.fi) .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are @@ -31,10 +31,10 @@ .TH ST 4 2010-09-04 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O st \- SCSI tape device -.SH ̾Á° -st \- SCSI ¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹ +.SH 名前 +st \- SCSI テープデバイス .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -44,7 +44,7 @@ st \- SCSI .BI "int ioctl(int " fd ", MTIOCPOS, (struct mtpos *)" mt_pos ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .B st .\"O driver provides the interface to a variety of SCSI tape devices. @@ -54,12 +54,12 @@ st \- SCSI .\"O .B st .\"O driver uses major device number 9. .B st -¥É¥é¥¤¥Ð¡¼¤ÏÍÍ¡¹¤Ê SCSI ¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤òÄ󶡤¹¤ë¡£ -¸½ºß¤Ç¤Ï¡¢¥É¥é¥¤¥Ð¡¼¤Ï¸¡½Ð¤µ¤ì¤¿Á´¤Æ¤Î -\(lq¥·¡¼¥±¥ó¥·¥ã¥ë¥¢¥¯¥»¥¹ (sequential-access) \(rq ¥¿¥¤¥×¤Î¥Ç¥Ð¥¤¥¹¤Ø¤Î -À©¸æ¤ò¹Ô¤¦¡£ +ドライバーは様々な SCSI テープデバイスのインターフェイスを提供する。 +現在では、ドライバーは検出された全ての +\(lqシーケンシャルアクセス (sequential-access) \(rq タイプのデバイスへの +制御を行う。 .B st -¥É¥é¥¤¥Ð¡¼¤Ï¥á¥¸¥ã¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ 9 ¤òÍѤ¤¤ë¡£ +ドライバーはメジャーデバイス番号 9 を用いる。 .PP .\"O Each device uses eight minor device numbers. .\"O The lowermost five bits @@ -80,27 +80,27 @@ st \- SCSI .\"O for instance, mt does not lead to the desired result: the tape is .\"O rewound after the mt command and the next command starts from the .\"O beginning of the tape). -¤½¤ì¤¾¤ì¤Î¥Ç¥Ð¥¤¥¹¤Ï 8 ¤Ä¤Î¥Þ¥¤¥Ê¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤ò»È¤¦¡£ -¥Þ¥¤¥Ê¡¼ÈÖ¹æ¤ÎÄã°Ì¦¤Î 5 ¥Ó¥Ã¥È¤Ï¡¢¸¡½Ð¤µ¤ì¤¿½ç¤Ë³ä¤êÅö¤Æ¤é¤ì¤ë¡£ -¥«¡¼¥Í¥ë 2.6 ¤Ç¤Ï¡¢ -Äã°Ì¦ 8 ¥Ó¥Ã¥È¤è¤ê¤â¾å°Ì¤Ë¤¢¤ë¥Ó¥Ã¥È·²¤¬¤³¤Î 5 ¥Ó¥Ã¥È¤ËÏ¢·ë (concatenate) -¤µ¤ì¡¢¥Æ¡¼¥ÖÈÖ¹æ¤È¤Ê¤ë¡£ -¥Þ¥¤¥Ê¡¼ÈÖ¹æ¤Ï¡¢¤½¤ì¤¾¤ì 4 ¤Ä¤Î¿ô»ú¤«¤é¤Ê¤ëÆó¤Ä¤Î¥»¥Ã¥È¤Ë -¥°¥ë¡¼¥×ʬ¤±¤µ¤ì¤ë¡£ -´ðËÜ (¼«Æ°´¬¤­Ìᤷ) ¥Ç¥Ð¥¤¥¹ÈÖ¹æ -.IR n ¡¢ -¤ª¤è¤Ó \(lqÈ󴬤­Ìᤷ (no-rewind) \(rq ¥Ç¥Ð¥¤¥¹ÈÖ¹æ +それぞれのデバイスは 8 つのマイナーデバイス番号を使う。 +マイナー番号の低位側の 5 ビットは、検出された順に割り当てられる。 +カーネル 2.6 では、 +低位側 8 ビットよりも上位にあるビット群がこの 5 ビットに連結 (concatenate) +され、テーブ番号となる。 +マイナー番号は、それぞれ 4 つの数字からなる二つのセットに +グループ分けされる。 +基本 (自動巻き戻し) デバイス番号 +.IR n 、 +および \(lq非巻き戻し (no-rewind) \(rq デバイス番号 .RI ( n " + 128)." -¤Ç¤¢¤ë¡£ -´ðËܥǥХ¤¥¹ÈÖ¹æ¤òÍѤ¤¤Æ¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Ç¥Ð¥¤¥¹¤Ë¤Ï¡¢ -¥¯¥í¡¼¥º¤¹¤ë»þ¤Ë +である。 +基本デバイス番号を用いてオープンされたデバイスには、 +クローズする時に .B REWIND -¥³¥Þ¥ó¥É¤¬Á÷¤é¤ì¤ë¡£ -\(lqÈ󴬤­Ìᤷ\(rq ¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤òÍѤ¤¤Æ¥ª¡¼¥×¥ó¤µ¤ì¤¿¾ì¹ç¤Ï -\s-1REWIND\s+1 ¥³¥Þ¥ó¥É¤ÏÁ÷¤é¤ì¤Ê¤¤ -(¼«Æ°´¬¤­Ìᤷ¥Ç¥Ð¥¤¥¹¤ò¥Æ¡¼¥×¤Î°ÌÃÖ·è¤á¤Ë (Î㤨¤Ð mt ¤Ç) ÍѤ¤¤Æ¤â¡¢ -˾¤à·ë²Ì¤ÏÆÀ¤é¤ì¤Ê¤¤¡£¥Æ¡¼¥×¤Ï mt ¥³¥Þ¥ó¥É¤Î¸å¤Ç´¬¤­Ìᤵ¤ì¡¢ -¼¡¤Î¥³¥Þ¥ó¥É¤Ï¥Æ¡¼¥×¤ÎÀèƬ¤«¤é»Ï¤Þ¤Ã¤Æ¤·¤Þ¤¦)¡£ +コマンドが送られる。 +\(lq非巻き戻し\(rq デバイス番号を用いてオープンされた場合は +\s-1REWIND\s+1 コマンドは送られない +(自動巻き戻しデバイスをテープの位置決めに (例えば mt で) 用いても、 +望む結果は得られない。テープは mt コマンドの後で巻き戻され、 +次のコマンドはテープの先頭から始まってしまう)。 .PP .\"O Within each group, four minor numbers are available to define .\"O devices with different characteristics (block size, compression, @@ -116,18 +116,18 @@ st \- SCSI .\"O The default allocation allows control of 32 tape drives. .\"O For instance, it is possible to control up to 64 tape drives .\"O with two minor numbers for different options.) -¤½¤ì¤¾¤ì¤Î¥°¥ë¡¼¥×¤Ç¡¢°Û¤Ê¤Ã¤¿ÆÃÀ­ (¥Ö¥í¥Ã¥¯¥µ¥¤¥º¡¦°µ½Ì¡¦ -Ì©Å٤ʤÉ) ¤Î¥Ç¥Ð¥¤¥¹¤òÄêµÁ¤¹¤ë¤¿¤á¤Ë 4 ¤Ä¤Î¥Þ¥¤¥Ê¡¼Èֹ椬ÍøÍѤǤ­¤ë¡£ -¥·¥¹¥Æ¥à¤¬µ¯Æ°¤·¤¿¤È¤­¤Ë¤Ï¡¢ºÇ½é¤Î¥Ç¥Ð¥¤¥¹¤À¤±¤¬»È¤¨¤ë¡£ -¾¤Î 3 ¤Ä¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÆÃÀ­¤¬ÄêµÁ¤µ¤ì¤Æ½é¤á¤Æ»È¤¨¤ë¤è¤¦¤Ë¤Ê¤ë (¸å½Ò)¡£ -(¥³¥ó¥Ñ¥¤¥ë»þ¤ÎÄê¿ô¤òÊѹ¹¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¥Æ¡¼¥×¥É¥é¥¤¥Ö¤ÎºÇÂç¿ô¤È¡¢ -¤½¤ì¤¾¤ì¤Î¥É¥é¥¤¥Ö¤Ë³ä¤êÅö¤Æ¤é¤ì¤ë¥Þ¥¤¥Ê¡¼ÈÖ¹æ¤Î¸Ä¿ô¤È¤òÄ´À°¤Ç¤­¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Î³ä¤êÅö¤Æ¤Ç¤Ï 32 Âæ¤Þ¤Ç¤Î¥Æ¡¼¥×¥É¥é¥¤¥Ö¤òÀ©¸æ¤Ç¤­¤ë¡£ -Î㤨¤Ð 64 Âæ¤Þ¤Ç¤Î¥Æ¡¼¥×¥É¥é¥¤¥Ö¤ò¡¢°Û¤Ê¤Ã¤¿¥ª¥×¥·¥ç¥ó¤ò»ý¤Ä -Æó¤Ä¤Î¥Þ¥¤¥Ê¡¼ÈÖ¹æ¤ÇÀ©¸æ¤¹¤ë¤è¤¦¤Ë¤â¤Ç¤­¤ë¡£) +それぞれのグループで、異なった特性 (ブロックサイズ・圧縮・ +密度など) のデバイスを定義するために 4 つのマイナー番号が利用できる。 +システムが起動したときには、最初のデバイスだけが使える。 +他の 3 つはデフォルトの特性が定義されて初めて使えるようになる (後述)。 +(コンパイル時の定数を変更することによって、テープドライブの最大数と、 +それぞれのドライブに割り当てられるマイナー番号の個数とを調整できる。 +デフォルトの割り当てでは 32 台までのテープドライブを制御できる。 +例えば 64 台までのテープドライブを、異なったオプションを持つ +二つのマイナー番号で制御するようにもできる。) .PP .\"O Devices are typically created by: -¥Ç¥Ð¥¤¥¹¤ÏÉáÄ̼¡¤Î¤è¤¦¤Ëºî¤é¤ì¤ë: +デバイスは普通次のように作られる: .in +4n .nf @@ -143,7 +143,7 @@ mknod \-m 666 /dev/nst0a c 9 224 .in .PP .\"O There is no corresponding block device. -¤³¤ì¤é¤Ë¤ÏÂбþ¤¹¤ë¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Ï¸ºß¤·¤Ê¤¤¡£ +これらには対応するブロックデバイスは存在しない。 .PP .\"O The driver uses an internal buffer that has to be large enough to hold .\"O at least one tape block. @@ -159,16 +159,16 @@ mknod \-m 666 /dev/nst0a c 9 224 .\"O maximum number of parts is 16. .\"O This means that the maximum block size .\"O is very large (2 MB if allocation of 16 blocks of 128 kB succeeds). -¥É¥é¥¤¥Ð¤ÏÆâÉô¥Ð¥Ã¥Õ¥¡¤ò»È¤¤¡¢¤½¤ÎÂ礭¤µ¤Ï¾¯¤Ê¤¯¤È¤â¥Æ¡¼¥×¤Î -1 ¥Ö¥í¥Ã¥¯¤òÊÝ»ý¤Ç¤­¤ë¤è¤¦¤Ë¼è¤é¤ì¤ë¡£ 2.1.121 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -¥Ð¥Ã¥Õ¥¡¤ÏϢ³¤¹¤ë°ì¤Ä¤Î¥Ö¥í¥Ã¥¯¤È¤·¤Æ³ä¤êÅö¤Æ¤é¤ì¤ë¡£¤³¤ÎÊýË¡¤À¤È¡¢ -¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ÎºÇÂçÃͤϥ«¡¼¥Í¥ë¤Î³ä¤êÅö¤Æ²Äǽ¤ÊϢ³¥á¥â¥ê¥Ö¥í¥Ã¥¯¤Ë -À©¸Â¤µ¤ì¤ë¡£¤³¤ÎÀ©¸Â¤Ï 32 ¥Ó¥Ã¥È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï 128 kB¡¢ -64 ¥Ó¥Ã¥È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï 256 kB ¤Ç¤¢¤ë¡£¤³¤ì°Ê¹ß¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -¥É¥é¥¤¥Ð¤ÏɬÍפ˱þ¤¸¤Æ¤¤¤¯¤Ä¤«¤Ë¤ï¤«¤ì¤¿¥Ð¥Ã¥Õ¥¡¤ò³ä¤êÅö¤Æ¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï 16 ¸Ä¤Þ¤Ç¤ÎÉôʬ¤Ëʬ³ä¤Ç¤­¤ë¡£¤¹¤Ê¤ï¤Á -¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ÎºÇÂçÃͤÏÈó¾ï¤ËÂ礭¤¤ (128 kB ¤Î¥Ö¥í¥Ã¥¯ 16 ¸Ä¤Î -³ä¤êÅö¤Æ¤ËÀ®¸ù¤¹¤ì¤Ð 2 MB ¤È¤Ê¤ë)¡£ +ドライバは内部バッファを使い、その大きさは少なくともテープの +1 ブロックを保持できるように取られる。 2.1.121 以前のカーネルでは、 +バッファは連続する一つのブロックとして割り当てられる。この方法だと、 +ブロックサイズの最大値はカーネルの割り当て可能な連続メモリブロックに +制限される。この制限は 32 ビットアーキテクチャでは 128 kB、 +64 ビットアーキテクチャでは 256 kB である。これ以降のカーネルでは、 +ドライバは必要に応じていくつかにわかれたバッファを割り当てる。 +デフォルトでは 16 個までの部分に分割できる。すなわち +ブロックサイズの最大値は非常に大きい (128 kB のブロック 16 個の +割り当てに成功すれば 2 MB となる)。 .PP .\"O The driver's internal buffer size is determined by a compile-time .\"O constant which can be overridden with a kernel startup option. @@ -178,13 +178,13 @@ mknod \-m 666 /dev/nst0a c 9 224 .\"O contiguous blocks of memory may fail and it is advisable not to rely .\"O too much on dynamic buffer allocation with kernels older than 2.1.121 .\"O (this applies also to demand-loading the driver with kerneld or kmod). -¥É¥é¥¤¥Ð¤ÎÆâÉô¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤Ï¥³¥ó¥Ñ¥¤¥ë»þ¤ÎÄê¿ô¤ÇÄêµÁ¤µ¤ì¤ë¡£ -¤³¤ì¤Ï¥«¡¼¥Í¥ë¤Îµ¯Æ°»þ¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤Æ¾å½ñ¤­²Äǽ¤Ç¤¢¤ë¡£ -¤µ¤é¤Ë¥É¥é¥¤¥Ð¤Ï¼Â¹Ô»þ¤Ë¤â¡¢É¬Íפ˱þ¤¸¤Æ¤è¤êÂ礭¤Ê°ì»þ¥Ð¥Ã¥Õ¥¡¤ò -³ä¤êÅö¤Æ¤è¤¦¤È¤¹¤ë¡£¤·¤«¤·¼Â¹Ô»þ¤ËÂ礭¤ÊϢ³¥á¥â¥ê¥Ö¥í¥Ã¥¯¤ò -³ä¤êÅö¤Æ¤è¤¦¤È¤¹¤ë¤È¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ë¤Î¤Ç¡¢ 2.1.121 -°ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢Æ°Åª¤Ê¥Ð¥Ã¥Õ¥¡³ä¤êÅö¤Æ¤Ï¤¢¤Þ¤ê¤¢¤Æ¤Ë¤·¤Ê¤¤¤Û¤¦¤¬Îɤ¤ -(¤³¤ì¤Ï kerneld ¤ä kmod ¤Ë¤è¤ë¥É¥é¥¤¥Ð¤Î¥Ç¥Þ¥ó¥É¥í¡¼¥É¤Ë´Ø¤·¤Æ¤âÅö¤Æ¤Ï¤Þ¤ë)¡£ +ドライバの内部バッファのサイズはコンパイル時の定数で定義される。 +これはカーネルの起動時オプションによって上書き可能である。 +さらにドライバは実行時にも、必要に応じてより大きな一時バッファを +割り当てようとする。しかし実行時に大きな連続メモリブロックを +割り当てようとすると失敗することがあるので、 2.1.121 +以前のカーネルでは、動的なバッファ割り当てはあまりあてにしないほうが良い +(これは kerneld や kmod によるドライバのデマンドロードに関しても当てはまる)。 .PP .\"O The driver does not specifically support any tape drive brand or .\"O model. @@ -198,17 +198,17 @@ mknod \-m 666 /dev/nst0a c 9 224 .\"O calls and remain in effect when the device is closed and reopened. .\"O Setting the options affects both the auto-rewind and the nonrewind .\"O device. -¥É¥é¥¤¥Ð¤Ï¥É¥é¥¤¥Ö¤Î¥á¡¼¥«¤ä¥â¥Ç¥ë¤òÆÃÄꤷ¤Æ¥µ¥Ý¡¼¥È¤¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -¥·¥¹¥Æ¥à¤¬µ¯Æ°¤¹¤ë¤È¡¢¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¤Î¥ª¥×¥·¥ç¥ó¤¬¥É¥é¥¤¥Ö¤Î -¥Õ¥¡¡¼¥à¥¦¥§¥¢¤Ë¤è¤Ã¤ÆÄêµÁ¤µ¤ì¤ë¡£Î㤨¤Ð¡¢ -¥É¥é¥¤¥Ö¤Î¥Õ¥¡¡¼¥à¥¦¥§¥¢¤¬¸ÇÄêĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤òÁªÂò¤¹¤ì¤Ð¡¢ -¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¤Ï¸ÇÄêĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤ò»È¤¦¤³¤È¤Ë¤Ê¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +ドライバはドライブのメーカやモデルを特定してサポートするわけではない。 +システムが起動すると、テープデバイスのオプションがドライブの +ファームウェアによって定義される。例えば、 +ドライブのファームウェアが固定長ブロックモードを選択すれば、 +テープデバイスは固定長ブロックモードを使うことになる。このオプションは .BR ioctl (2) -¥³¡¼¥ë¤òÌÀ¼¨Åª¤Ë»È¤¨¤ÐÊѹ¹¤Ç¤­¡¢ -¤½¤ÎÊѹ¹¤Ï¥Ç¥Ð¥¤¥¹¤¬¥¯¥í¡¼¥º¤µ¤ì¤ÆºÆ¤Ó¥ª¡¼¥×¥ó¤µ¤ì¤¿¤È¤­¤â»Ä¤ë¡£ -.\"nakano: µÕ¤«¡© -¥ª¥×¥·¥ç¥ó¤ÎÀßÄê¤Ï¡¢ -¼«Æ°´¬¤­Ìᤷ¥Ç¥Ð¥¤¥¹¤ÈÈ󴬤­Ìᤷ¥Ç¥Ð¥¤¥¹¤ÎξÊý¤Ë±Æ¶Á¤¹¤ë¡£ +コールを明示的に使えば変更でき、 +その変更はデバイスがクローズされて再びオープンされたときも残る。 +.\"nakano: 逆か? +オプションの設定は、 +自動巻き戻しデバイスと非巻き戻しデバイスの両方に影響する。 .PP .\"O Different options can be specified for the different devices within .\"O the subgroup of four. @@ -218,12 +218,12 @@ mknod \-m 666 /dev/nst0a c 9 224 .\"O one device that writes in fixed-block mode with a certain block size, .\"O and one which writes in variable-block mode (if the drive supports .\"O both modes). -4 ¤Ä¤Î¥µ¥Ö¥°¥ë¡¼¥×¤½¤ì¤¾¤ì¤Î¥Ç¥Ð¥¤¥¹¤ËÂФ·¤Æ°Û¤Ê¤ë¥ª¥×¥·¥ç¥ó¤ò -Í¿¤¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Ð¥¤¥¹¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¤È¤­¤Ë -¸úÎϤòȯ´ø¤¹¤ë¡£Î㤨¤Ð¡¢¥·¥¹¥Æ¥à´ÉÍý¼Ô¤Ï¤¢¤ë¥Ç¥Ð¥¤¥¹¤ò -ŬÅö¤Ê¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤Î¸ÇÄêĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤Ç½ñ¤­¹þ¤à¤è¤¦¤ËÄêµÁ¤·¡¢ -Ê̤ΥǥХ¤¥¹¤ò²ÄÊÑĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤Ç½ñ¤­¹þ¤à¤è¤¦¤Ë¤Ç¤­¤ë (¥É¥é¥¤¥Ö¤¬ -ξÊý¤Î¥â¡¼¥É¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ì¤Ð)¡£ +4 つのサブグループそれぞれのデバイスに対して異なるオプションを +与えることができる。オプションはデバイスがオープンされたときに +効力を発揮する。例えば、システム管理者はあるデバイスを +適当なブロックサイズの固定長ブロックモードで書き込むように定義し、 +別のデバイスを可変長ブロックモードで書き込むようにできる (ドライブが +両方のモードをサポートしていれば)。 .PP .\"O The driver supports .\"O .B tape partitions @@ -247,47 +247,47 @@ mknod \-m 666 /dev/nst0a c 9 224 .\"O The driver contains an .\"O .BR ioctl (2) .\"O that can format a tape with either one or two partitions. -¤³¤Î¥É¥é¥¤¥Ð¤Ï¡¢ -.B ¥Æ¡¼¥×¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó -¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë (¥É¥é¥¤¥Ö¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç)¡£ -(¥Æ¡¼¥×¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï¥Ç¥£¥¹¥¯¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤È¤Ï¤Ê¤ó¤Î´Ø·¸¤â¤Ê¤¤¡£ -¥Ñ¡¼¥Æ¥£¥·¥ç¥ó²½¤µ¤ì¤¿¥Æ¡¼¥×¤Ï¡¢°ì¤Ä¤Î¥á¥Ç¥£¥¢¤ËÊ£¿ô¤ÎÏÀÍý¥Æ¡¼¥×¤¬ -¸ºß¤¹¤ë¤«¤Î¤è¤¦¤Ë¸«¤¨¤ë¡£) -¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¥µ¥Ý¡¼¥È¤Ï +このドライバは、 +.B テープのパーティション +をサポートしている (ドライブがサポートしている場合)。 +(テープのパーティションはディスクパーティションとはなんの関係もない。 +パーティション化されたテープは、一つのメディアに複数の論理テープが +存在するかのように見える。) +パーティションのサポートは .BR ioctl (2) -¤Ë¤è¤Ã¤ÆÍ­¸ú¤Ë¤Ç¤­¤ë¡£ -¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬Êѹ¹¤µ¤ì¤ë¤È¡¢ -¥Æ¡¼¥×¤Î°ÌÃ֤Ϥ½¤ì¤¾¤ì¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥óÆâÉô¤ÇÊݸ¤µ¤ì¤ë¡£ -¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎÁªÂò¤Ï +によって有効にできる。 +パーティションが変更されると、 +テープの位置はそれぞれのパーティション内部で保存される。 +パーティションの選択は .BR ioctl (2) -¤Ç¹Ô¤¦¡£ -¤½¤ì°Ê¹ß¤Î¥Æ¡¼¥×Áàºî¤ÎÂоݤϡ¢¤½¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¤Ê¤ë¡£ -¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎÀÚ¤êÂؤ¨¤Ï¡¢¼¡¤Î¥Æ¡¼¥×Áàºî¤ÈƱ»þ¤Ë¹Ô¤ï¤ì¡¢ -ÉÔɬÍפʥơ¼¥×°ÜÆ°¤ò¤·¤Ê¤¯¤Æ¤¹¤à¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -°ì¤Ä¤Î¥Æ¡¼¥×¤Ë¤ª¤±¤ë¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎºÇÂç¿ô¤Ï -¥³¥ó¥Ñ¥¤¥ë»þ¤ÎÄê¿ô¤Ë¤è¤Ã¤ÆÄêµÁ¤µ¤ì¤ë (Ä̾ï¤Ï 4)¡£ -¥É¥é¥¤¥Ð¤Ë¤Ï¡¢¥Æ¡¼¥×¤Î 1 ¤Ä¤Þ¤¿¤Ï -2 ¤Ä¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤­¤ë¤è¤¦¤Ê +で行う。 +それ以降のテープ操作の対象は、そのパーティションになる。 +パーティションの切り替えは、次のテープ操作と同時に行われ、 +不必要なテープ移動をしなくてすむようになっている。 +一つのテープにおけるパーティションの最大数は +コンパイル時の定数によって定義される (通常は 4)。 +ドライバには、テープの 1 つまたは +2 つのパーティションをフォーマットできるような .BR ioctl (2) -¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¡£ +が用意されている。 .PP .\"O Device .\"O .I /dev/tape .\"O is usually created as a hard or soft link to the default tape device .\"O on the system. -Ä̾¥·¥¹¥Æ¥à¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¤ËÂФ¹¤ë¥Ï¡¼¥É¥ê¥ó¥¯ -¤Þ¤¿¤Ï¥½¥Õ¥È¥ê¥ó¥¯¤È¤·¤Æ¡¢¥Ç¥Ð¥¤¥¹ +通常、システムのデフォルトのテープデバイスに対するハードリンク +またはソフトリンクとして、デバイス .I /dev/tape -¤¬ºîÀ®¤µ¤ì¤ë¡£ +が作成される。 .PP .\"O Starting from kernel 2.6.2, the driver exports in the sysfs directory .\"O .I /sys/class/scsi_tape .\"O the attached devices and some parameters assigned to the devices. -¥«¡¼¥Í¥ë 2.6.2 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¥É¥é¥¤¥Ð¤Ï sysfs ¥Ç¥£¥ì¥¯¥È¥ê +カーネル 2.6.2 以降では、このドライバは sysfs ディレクトリ .I /sys/class/scsi_tape -¤Ë¡¢¥¢¥¿¥Ã¥Á¤·¤¿¥Ç¥Ð¥¤¥¹¤È¤½¤Î¥Ç¥Ð¥¤¥¹¤Ë³äÅö¤Æ¤¿¥Ñ¥é¥á¡¼¥¿¤ò¥¨¥¯¥¹¥Ý¡¼¥È¤¹¤ë¡£ +に、アタッチしたデバイスとそのデバイスに割当てたパラメータをエクスポートする。 .\"O .SS "Data Transfer" -.SS ¥Ç¡¼¥¿Å¾Á÷ +.SS データ転送 .\"O The driver supports operation in both fixed-block mode and .\"O variable-block mode (if supported by the drive). .\"O In fixed-block mode the drive @@ -300,17 +300,17 @@ mknod \-m 666 /dev/nst0a c 9 224 .\"O the blocks on the tape don't contain any information about the .\"O writing mode: when reading, the only important thing is to use .\"O commands that accept the block sizes on the tape. -¤³¤Î¥É¥é¥¤¥Ð¤Ï¸ÇÄêĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤È²ÄÊÑĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤Î -ξÊý¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë (¥É¥é¥¤¥Ö¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ì¤Ð)¡£ -¸ÇÄêĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤Ç¤Ï¡¢¥É¥é¥¤¥Ö¤Ï·è¤Þ¤Ã¤¿¥µ¥¤¥º¤Î¥Ö¥í¥Ã¥¯¤ò -(Ê£¿ô¸Ä) ½ñ¤­¹þ¤à¡£¤³¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤Ï -write ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥Ð¥¤¥È¿ô¤Ë¤è¤é¤Ê¤¤¡£ -²ÄÊÑĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤Ç¤Ï¡¢ -write ¥³¡¼¥ë¤´¤È¤Ë°ì¤Ä¤Î¥Æ¡¼¥×¥Ö¥í¥Ã¥¯¤Ë½ñ¤­¹þ¤ß¤¬¹Ô¤ï¤ì¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¥Ð¥¤¥È¿ô¤¬Âбþ¤¹¤ë¥Æ¡¼¥×¥Ö¥í¥Ã¥¯¤Î¥µ¥¤¥º¤ò·è¤á¤ë¡£ -¥Æ¡¼¥×¾å¤Î¥Ö¥í¥Ã¥¯¤Ë¤Ï¡¢½ñ¤­¹þ¤ß¥â¡¼¥É¤Î¾ðÊó¤Ï°ìÀÚ´Þ¤Þ¤ì¤Ê¤¤¡£ -Æɤ߹þ¤ß¤Î¤È¤­¤Ë½ÅÍפʤ³¤È¤Ï¡¢¥Æ¡¼¥×¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ò¼õ¤±Æþ¤ì¤ë -¥³¥Þ¥ó¥É¤ò»È¤¦¤«¤É¤¦¤«¤À¤±¤Ç¤¢¤ë¡£ +このドライバは固定長ブロックモードと可変長ブロックモードの +両方をサポートしている (ドライブがサポートしていれば)。 +固定長ブロックモードでは、ドライブは決まったサイズのブロックを +(複数個) 書き込む。このブロックサイズは +write システムコールのバイト数によらない。 +可変長ブロックモードでは、 +write コールごとに一つのテープブロックに書き込みが行われる。 +したがってバイト数が対応するテープブロックのサイズを決める。 +テープ上のブロックには、書き込みモードの情報は一切含まれない。 +読み込みのときに重要なことは、テープのブロックサイズを受け入れる +コマンドを使うかどうかだけである。 .PP .\"O In variable-block mode the read byte count does not have to match .\"O the tape block size exactly. @@ -320,11 +320,11 @@ write .\"O If the block size is larger than the .\"O byte count, the requested amount of data from the start of the block .\"O is returned and the rest of the block is discarded. -²ÄÊÑĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤Ç¤Ï¡¢Æɤ߹þ¤ß¥Ð¥¤¥È¿ô¤Ï¥Æ¡¼¥×¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤È -ɬ¤º¤·¤â°ìÃפ·¤Æ¤¤¤Ê¤¯¤Æ¤âÎɤ¤¡£¥Ð¥¤¥È¿ô¤¬¥Æ¡¼¥×¤Î¼¡¤Î¥Ö¥í¥Ã¥¯¤è¤ê¤â -Â礭¤±¤ì¤Ð¡¢¥É¥é¥¤¥Ð¤Ï¤½¤Î¥Ç¡¼¥¿¤òÊÖ¤·¡¢´Ø¿ô¤Ï¼ÂºÝ¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤òÊÖ¤¹¡£ -¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤¬¥Ð¥¤¥È¿ô¤è¤ê¤âÂ礭¤±¤ì¤Ð¡¢Í׵ᤵ¤ì¤¿Ê¬¤Î¥Ç¡¼¥¿¤¬ -¥Ö¥í¥Ã¥¯¤ÎÀèƬ¤«¤éÆɤ߹þ¤Þ¤ì¤ÆÊÖ¤µ¤ì¡¢¥Ö¥í¥Ã¥¯¤Î»Ä¤ê¤ÏÇË´þ¤µ¤ì¤ë¡£ +可変長ブロックモードでは、読み込みバイト数はテープのブロックサイズと +必ずしも一致していなくても良い。バイト数がテープの次のブロックよりも +大きければ、ドライバはそのデータを返し、関数は実際のブロックサイズを返す。 +ブロックサイズがバイト数よりも大きければ、要求された分のデータが +ブロックの先頭から読み込まれて返され、ブロックの残りは破棄される。 .PP .\"O In fixed-block mode the read byte counts can be arbitrary if .\"O buffering is enabled, or a multiple of the tape block size if @@ -334,13 +334,13 @@ write .\"O In all other cases .\"O (kernel before 2.1.121 with buffering disabled or newer kernel) the .\"O write byte count must be a multiple of the tape block size. -¸ÇÄêĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤Ç¤Ï¡¢¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ì¤Ð -Æɤ߹þ¤ß¥Ð¥¤¥È¿ô¤ÏǤ°Õ¤ÎÂ礭¤µ¤Ç¤è¤¤¡£¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤¬Ìµ¸ú¤Î¾ì¹ç¤Ï¡¢ -¥Æ¡¼¥×¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ÎÀ°¿ôÇܤǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ 2.1.121 °ÊÁ°¤Î -¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤¬Í­¸ú¤Ê¾ì¹ç¤Ë¤Ï -Ǥ°Õ¤Î¥Ð¥¤¥È¿ô¤Î½ñ¤­¹þ¤ß¤¬¤Ç¤­¤ë¡£¤½¤Î¾¤Î¾ì¹ç¤¹¤Ù¤Æ -(2.1.121 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¥Ð¥Ã¥Õ¥¡¤¬Ìµ¸ú¤Ê¾ì¹ç¤È¡¢¿·¤·¤¤¥«¡¼¥Í¥ë¤Î¾ì¹ç) -¤Ç¤Ï¡¢½ñ¤­¹þ¤ß¥Ð¥¤¥È¿ô¤Ï¥Æ¡¼¥×¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ÎÀ°¿ôÇܤǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +固定長ブロックモードでは、バッファリングが有効になっていれば +読み込みバイト数は任意の大きさでよい。バッファリングが無効の場合は、 +テープのブロックサイズの整数倍でなければならない。 2.1.121 以前の +カーネルでは、バッファリングが有効な場合には +任意のバイト数の書き込みができる。その他の場合すべて +(2.1.121 以前のカーネルでバッファが無効な場合と、新しいカーネルの場合) +では、書き込みバイト数はテープブロックサイズの整数倍でなければならない。 .PP .\"O In the 2.6 kernel, the driver tries to use direct transfers between the user .\"O buffer and the device. @@ -350,18 +350,18 @@ write .\"O of the user buffer (default is 512 bytes but this can be changed by the HBA .\"O driver), one of more pages of the user buffer not reachable by the .\"O SCSI adapter, etc. -2.6 ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¤³¤Î¥É¥é¥¤¥Ð¤Ï¥æ¡¼¥¶¥Ð¥Ã¥Õ¥¡¤È¥Ç¥Ð¥¤¥¹´Ö¤Ç¡¢ -¥Ç¡¼¥¿¤ÎľÀÜžÁ÷ (direct transfer) ¤ò»î¤ß¤ë¡£ -¤³¤ì¤¬ÉÔ²Äǽ¤Ê¾ì¹ç¤Ï¡¢¥É¥é¥¤¥Ð¤ÎÆâÉô¥Ð¥Ã¥Õ¥¡¤òÍѤ¤¤ë¡£ -ľÀÜžÁ÷¤¬¤Ç¤­¤Ê¤¤Íýͳ¤È¤·¤Æ¤Ï¡¢¥æ¡¼¥¶¥Ð¥Ã¥Õ¥¡¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤¬Å¬ÀڤǤʤ¤ -(¥Ç¥Õ¥©¥ë¥È¤Ï 512 ¥Ð¥¤¥È¤À¤¬ HBA ¥É¥é¥¤¥Ð¤Ë¤è¤Ã¤ÆÊѹ¹¤µ¤ì¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ë)¡¢ -¥æ¡¼¥¶¥Ð¥Ã¥Õ¥¡¤Î¥Ú¡¼¥¸¤Î¤É¤ì¤«¤¬ SCSI ¥¢¥À¥×¥¿¤«¤é¸«¤¨¤Ê¤¤¡¢ -¤Ê¤É¤¬¹Í¤¨¤é¤ì¤ë¡£ +2.6 カーネルでは、このドライバはユーザバッファとデバイス間で、 +データの直接転送 (direct transfer) を試みる。 +これが不可能な場合は、ドライバの内部バッファを用いる。 +直接転送ができない理由としては、ユーザバッファのアラインメントが適切でない +(デフォルトは 512 バイトだが HBA ドライバによって変更されている可能性がある)、 +ユーザバッファのページのどれかが SCSI アダプタから見えない、 +などが考えられる。 .PP .\"O A filemark is automatically written to tape if the last tape operation .\"O before close was a write. -¥Æ¡¼¥×¤ò¥¯¥í¡¼¥º¤¹¤ëľÁ°¤Î¥Æ¡¼¥×ÁàºîÌ¿Î᤬½ñ¤­¹þ¤ß¤Ç¤¢¤ì¤Ð¡¢ -¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤¬¼«Æ°Åª¤Ë¥Æ¡¼¥×¤Ø½ñ¤­¹þ¤Þ¤ì¤ë¡£ +テープをクローズする直前のテープ操作命令が書き込みであれば、 +ファイルマークが自動的にテープへ書き込まれる。 .PP .\"O When a filemark is encountered while reading, the following .\"O happens. @@ -374,12 +374,12 @@ write .\"O recorded data is signaled by returning zero bytes for two consecutive .\"O read calls. .\"O The third read returns an error. -Æɤ߹þ¤ß»þ¤Ë¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤Ë½Ð²ñ¤¦¤È¡¢°Ê²¼¤¬¼Â¹Ô¤µ¤ì¤ë¡£ -¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤¬¸«ÉÕ¤«¤Ã¤¿¤È¤­¤Ë¥Ð¥Ã¥Õ¥¡¤Ë¥Ç¡¼¥¿¤¬»Ä¤Ã¤Æ¤¤¤ë¤È¡¢ -¥Ð¥Ã¥Õ¥¡¤Î¥Ç¡¼¥¿¤¬ÊÖ¤µ¤ì¤ë¡£¼¡¤ÎÆɤ߹þ¤ßÁàºî¤Ï 0 ¥Ð¥¤¥È¤òÊÖ¤¹¡£ -¤½¤Î¼¡¤ÎÆɤ߹þ¤ß¤Ï¼¡¤Î¥Õ¥¡¥¤¥ë¤«¤é¤Î¥Ç¡¼¥¿¤òÊÖ¤¹¡£ -µ­Ï¿¥Ç¡¼¥¿¤ÎËöÈø¤Ï¡¢Æɤ߹þ¤ßÁàºî¤¬Æó²ó³¤±¤Æ -0 ¥Ð¥¤¥È¤òÊÖ¤·¤ÆÍè¤ë¤«¤¿¤Á¤ÇÄÌÃΤµ¤ì¤ë¡£»°²óÌܤÎÆɤ߹þ¤ß¤Ï¥¨¥é¡¼¤òÊÖ¤¹¡£ +読み込み時にファイルマークに出会うと、以下が実行される。 +ファイルマークが見付かったときにバッファにデータが残っていると、 +バッファのデータが返される。次の読み込み操作は 0 バイトを返す。 +その次の読み込みは次のファイルからのデータを返す。 +記録データの末尾は、読み込み操作が二回続けて +0 バイトを返して来るかたちで通知される。三回目の読み込みはエラーを返す。 .\"O .SS Ioctls .SS ioctl .\"O The driver supports three @@ -392,18 +392,18 @@ write .\"O driver. .\"O The definitions below are from .\"O .IR /usr/include/linux/mtio.h : -¥É¥é¥¤¥Ð¤Ï 3 ¤Ä¤Î +ドライバは 3 つの .BR ioctl (2) -Í×µá¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ +要求をサポートしている。 .B st -¥É¥é¥¤¥Ð¤Ë¤è¤Ã¤Æǧ¼±¤µ¤ì¤Ê¤«¤Ã¤¿Í×µá¤Ï +ドライバによって認識されなかった要求は .B SCSI -¥É¥é¥¤¥Ð¤Ë¤ï¤¿¤µ¤ì¤ë¡£ -°Ê²¼¤ÎÄêµÁ¤Ï +ドライバにわたされる。 +以下の定義は .I /usr/include/linux/mtio.h -¤Ë¤è¤ë¡£ +による。 .\"O .SS "MTIOCTOP \(em Perform a tape operation" -.SS "MTIOCTOP \(em ¥Æ¡¼¥×Áàºî¤Î¼Â¹Ô" +.SS "MTIOCTOP \(em テープ操作の実行" .PP .\"O This request takes an argument of type .\"O .IR "(struct mtop *)" . @@ -411,12 +411,12 @@ write .\"O The driver returns an .\"O .B EIO .\"O error if the drive rejects an operation. -¤³¤ÎÍ×µá¤Ï +この要求は .I "(struct mtop *)" -·¿¤Î°ú¿ô¤ò¤È¤ë¡£Á´¤Æ¤Î¥É¥é¥¤¥Ö¤¬Á´¤Æ¤ÎÁàºî¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -¥É¥é¥¤¥Ö¤¬Áàºî¤òµñÈݤ¹¤ë¤È¡¢¥É¥é¥¤¥Ð¤Ï +型の引数をとる。全てのドライブが全ての操作をサポートしているわけではない。 +ドライブが操作を拒否すると、ドライバは .B EIO -¥¨¥é¡¼¤òÊÖ¤¹¡£ +エラーを返す。 .PP .in +4n .nf @@ -429,14 +429,14 @@ struct mtop { .in .PP .\"O Magnetic Tape operations for normal tape use: -Ä̾ï¤Î¥Æ¡¼¥×ÍøÍѤΤ¿¤á¤Î¼§µ¤¥Æ¡¼¥×Áàºî: +通常のテープ利用のための磁気テープ操作: .TP 14 .B MTBSF .\"O Backward space over .\"O .I mt_count .\"O filemarks. .I mt_count -¸Ä¤Î¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯ (filemark) ʬ¤Î¸åÊý¥¹¥Ú¡¼¥¹ (backward space)¡£ +個のファイルマーク (filemark) 分の後方スペース (backward space)。 .TP .B MTBSFM .\"O Backward space over @@ -444,22 +444,22 @@ struct mtop { .\"O filemarks. .\"O Reposition the tape to the EOT side of the last filemark. .I mt_count -¸Ä¤Î¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯Ê¬¤Î¸åÊý¥¹¥Ú¡¼¥¹¡£ -¥Æ¡¼¥×¤Î°ÌÃÖ¤òºÇ¸å¤Î¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤Î EOT ¦¤ËÊѹ¹¤¹¤ë¡£ +個のファイルマーク分の後方スペース。 +テープの位置を最後のファイルマークの EOT 側に変更する。 .TP .B MTBSR .\"O Backward space over .\"O .I mt_count .\"O records (tape blocks). .I mt_count -¸Ä¤Î¥ì¥³¡¼¥É (¥Æ¡¼¥×¥Ö¥í¥Ã¥¯) ʬ¤Î¸åÊý¥¹¥Ú¡¼¥¹¡£ +個のレコード (テープブロック) 分の後方スペース。 .TP .B MTBSS .\"O Backward space over .\"O .I mt_count .\"O setmarks. .I mt_count -¸Ä¤Î¥»¥Ã¥È¥Þ¡¼¥¯Ê¬¤Î¸åÊý¥¹¥Ú¡¼¥¹¡£ +個のセットマーク分の後方スペース。 .TP .B MTCOMPRESSION .\"O Enable compression of tape data within the drive if @@ -469,29 +469,29 @@ struct mtop { .\"O is zero. .\"O This command uses the MODE page 15 supported by most DATs. .I mt_count -¤¬ 0 °Ê³°¤Ê¤é¡¢¥É¥é¥¤¥Ö¤Î¥Ç¡¼¥¿°µ½Ì¤òÍ­¸ú¤Ë¤¹¤ë¡£ -0 ¤Ê¤é°µ½Ì¤ò̵¸ú¤Ë¤¹¤ë¡£¤³¤Î¥³¥Þ¥ó¥É¤Ï MODE ¥Ú¡¼¥¸ 15 ¤òÍѤ¤¤ë¡£ -¤³¤ì¤Ï¤Û¤È¤ó¤É¤Î DAT ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +が 0 以外なら、ドライブのデータ圧縮を有効にする。 +0 なら圧縮を無効にする。このコマンドは MODE ページ 15 を用いる。 +これはほとんどの DAT でサポートされている。 .TP .B MTEOM .\"O Go to the end of the recorded media (for appending files). -(¥Õ¥¡¥¤¥ë¤òÄɲ乤뤿¤á¤Ë) ¥á¥Ç¥£¥¢¤Îµ­Ï¿Éôʬ¤ÎºÇ¸å¤Þ¤Ç¿Ê¤á¤ë¡£ +(ファイルを追加するために) メディアの記録部分の最後まで進める。 .TP .B MTERASE .\"O Erase tape. .\"O With 2.6 kernel, short erase (mark tape empty) is performed if the .\"O argument is zero. .\"O Otherwise long erase (erase all) is done. -¥Æ¡¼¥×¤ÎÆâÍƤò¾Ãµî¤¹¤ë¡£ -2.6 ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢°ú¿ô¤¬ 0 ¤Ê¤é¤Ð short erase (¥Æ¡¼¥×¤¬¶õ¤À¤È°õ¤ò¤Ä¤±¤ë) -¤ò¹Ô¤¦¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï long erase (Á´ÂΤò¾Ãµî¤¹¤ë) ¤ò¹Ô¤¦¡£ +テープの内容を消去する。 +2.6 カーネルでは、引数が 0 ならば short erase (テープが空だと印をつける) +を行う。それ以外の場合は long erase (全体を消去する) を行う。 .TP .B MTFSF .\"O Forward space over .\"O .I mt_count .\"O filemarks. .I mt_count -¸Ä¤Î¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯Ê¬¤ÎÁ°Êý¥¹¥Ú¡¼¥¹ (forward space)¡£ +個のファイルマーク分の前方スペース (forward space)。 .TP .B MTFSFM .\"O Forward space over @@ -499,22 +499,22 @@ struct mtop { .\"O filemarks. .\"O Reposition the tape to the BOT side of the last filemark. .I mt_count -¸Ä¤Î¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯Ê¬¤ÎÁ°Êý¥¹¥Ú¡¼¥¹¡£ -¥Æ¡¼¥×¤Î°ÌÃ֤ϺǸå¤Î¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤Î BOT ¦Êѹ¹¤µ¤ì¤ë¡£ +個のファイルマーク分の前方スペース。 +テープの位置は最後のファイルマークの BOT 側変更される。 .TP .B MTFSR .\"O Forward space over .\"O .I mt_count .\"O records (tape blocks). .I mt_count -¸Ä¤Î¥ì¥³¡¼¥É (¥Æ¡¼¥×¥Ö¥í¥Ã¥¯) ʬ¤ÎÁ°Êý¥¹¥Ú¡¼¥¹¡£ +個のレコード (テープブロック) 分の前方スペース。 .TP .B MTFSS .\"O Forward space over .\"O .I mt_count .\"O setmarks. .I mt_count -¸Ä¤Î¥»¥Ã¥È¥Þ¡¼¥¯Ê¬¤ÎÁ°Êý¥¹¥Ú¡¼¥¹¡£ +個のセットマーク分の前方スペース。 .TP .B MTLOAD .\"O Execute the SCSI load command. @@ -526,17 +526,17 @@ struct mtop { .\"O .B MT_ST_HPLOADER_OFFSET .\"O plus a number, the number is .\"O sent to the drive to control the autoloader. -SCSI ¥í¡¼¥É¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¡£ HP ¥ª¡¼¥È¥í¡¼¥À¤Ë¸Â¤Ã¤ÆÍøÍѤǤ­¤ë¡£ -.\"nakano: ¤¢¤Ã¤Æ¤ë¡© +SCSI ロードコマンドを実行する。 HP オートローダに限って利用できる。 +.\"nakano: あってる? .I mt_count -¤¬Äê¿ô +が定数 .B MT_ST_HPLOADER_OFFSET -¤È¤¢¤ë¿ôÃͤÎϤǤ¢¤ë¾ì¹ç¡¢ -¤½¤Î¿ôÃͤ¬¥É¥é¥¤¥Ö¤ËÁ÷¤é¤ì¡¢¥ª¡¼¥È¥í¡¼¥À¤ÎÀ©¸æ¤ËÍѤ¤¤é¤ì¤ë¡£ +とある数値の和である場合、 +その数値がドライブに送られ、オートローダの制御に用いられる。 .TP .B MTLOCK .\"O Lock the tape drive door. -¥Æ¡¼¥×¥É¥é¥¤¥Ö¤ÎÈâ¤ò¥í¥Ã¥¯¤¹¤ë¡£ +テープドライブの扉をロックする。 .TP .B MTMKPART .\"O Format the tape into one or two partitions. @@ -551,42 +551,42 @@ SCSI .\"O is enabled for the drive (see .\"O .BR MT_ST_CAN_PARTITIONS .\"O below). -¥Æ¡¼¥×¤ò 1 ¤Þ¤¿¤Ï 2 ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¥Õ¥©¡¼¥Þ¥Ã¥È¤¹¤ë¡£ +テープを 1 または 2 パーティションにフォーマットする。 .I mt_count -¤¬ 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢¤³¤ì¤¬ºÇ½é¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¥µ¥¤¥º¤òÍ¿¤¨¡¢ -ÆóÈÖÌܤΥѡ¼¥Æ¥£¥·¥ç¥ó¤¬¥Æ¡¼¥×¤Î»Ä¤ê¤Ë¤Ê¤ë¡£ +が 0 でなければ、これが最初のパーティションのサイズを与え、 +二番目のパーティションがテープの残りになる。 .I mt_count -¤¬ 0 ¤Î¾ì¹ç¤Ï¡¢¥Æ¡¼¥×¤Ï°ì¤Ä¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤È¤·¤Æ¥Õ¥©¡¼¥Þ¥Ã¥È¤µ¤ì¤ë¡£ -¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¥µ¥Ý¡¼¥È¤¬Í­¸ú¤Ë¤µ¤ì¤¿ -¥É¥é¥¤¥Ö¤Ç¤Ê¤±¤ì¤Ð»È¤¨¤Ê¤¤ (°Ê²¼¤Î +が 0 の場合は、テープは一つのパーティションとしてフォーマットされる。 +このコマンドは、パーティションのサポートが有効にされた +ドライブでなければ使えない (以下の .B MT_ST_CAN_PARTITIONS -¤ò¸«¤è)¡£ +を見よ)。 .TP .B MTNOP .\"O No op\(emflushes the driver's buffer as a side effect. .\"O Should be used before reading status with .\"O .BR MTIOCGET . -²¿¤âÁàºî¤ò¹Ô¤ï¤Ê¤¤¡£\(emÉû¼¡Åª¤Ê¸ú²Ì¤È¤·¤Æ¡¢¥É¥é¥¤¥Ð¡¼¤Î¥Ð¥Ã¥Õ¥¡ -¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë¡£ +何も操作を行わない。\(em副次的な効果として、ドライバーのバッファ +をフラッシュする。 .B MTIOCGET -¤ò»È¤Ã¤Æ¾õÂÖ¤òÆɤ߽Ф¹Á°¤Ë¤Ï¤³¤ÎÁàºî¤ò¹Ô¤¦¤Ù¤­¤Ç¤¢¤ë¡£ +を使って状態を読み出す前にはこの操作を行うべきである。 .TP .B MTOFFL .\"O Rewind and put the drive off line. -´¬¤­Ìᤷ (rewind) ¤ò¹Ô¤¤¡¢¥É¥é¥¤¥Ö¤ò¥ª¥Õ¥é¥¤¥ó (off line) ¤Ë¤¹¤ë¡£ +巻き戻し (rewind) を行い、ドライブをオフライン (off line) にする。 .TP .B MTRESET .\"O Reset drive. -¥É¥é¥¤¥Ö¤ò¥ê¥»¥Ã¥È¤¹¤ë¡£ +ドライブをリセットする。 .TP .B MTRETEN .\"O Re-tension tape. -¥Æ¡¼¥×¤ò¥ê¥Æ¥ó¥·¥ç¥ó (re-tension) ¤¹¤ë -(¥Æ¡¼¥×¤òºÇ¸å¤Þ¤Ç´¬¤¤¤¿¸å¡¢ºÇ½é¤Þ¤Ç´¬¤­Ì᤹)¡£ +テープをリテンション (re-tension) する +(テープを最後まで巻いた後、最初まで巻き戻す)。 .TP .B MTREW .\"O Rewind. -´¬¤­Ìᤷ¡£ +巻き戻し。 .TP .B MTSEEK .\"O Seek to the tape block number specified in @@ -600,31 +600,31 @@ SCSI .\"O .BR MTIOCPOS .\"O if device-specific addresses are used. .I mt_count -¤Ç»ØÄꤵ¤ì¤¿¥Æ¡¼¥×¥Ö¥í¥Ã¥¯ÈÖ¹æ¤ò¥·¡¼¥¯¤¹¤ë¡£ -¤³¤ÎÁàºî¤¬¹Ô¤¨¤ë¤Î¤Ï¡¢ \s-1LOCATE\s+1 ¥³¥Þ¥ó¥É (¥Ç¥Ð¥¤¥¹¸ÇÍ­¤Î¥¢¥É¥ì¥¹) -¤ò¥µ¥Ý¡¼¥È¤¹¤ë SCSI-2 ¥É¥é¥¤¥Ö¤«¡¢¤¢¤ë¤¤¤Ï Tandberg -¸ß´¹¤Î SCSI-1 ¥É¥é¥¤¥Ö (Tandberg, Archive, Viper, Wangtek,¡Ä) ¤Ç¤¢¤ë¡£ -¥Ç¥Ð¥¤¥¹¸ÇÍ­¤Î¥¢¥É¥ì¥¹¤¬ÍøÍѤµ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¥Ö¥í¥Ã¥¯ÈÖ¹æ¤Ï -°ÊÁ°¤Ë \s-1MTIOCPOS\s+1 ¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤¿¤â¤Î¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +で指定されたテープブロック番号をシークする。 +この操作が行えるのは、 \s-1LOCATE\s+1 コマンド (デバイス固有のアドレス) +をサポートする SCSI-2 ドライブか、あるいは Tandberg +互換の SCSI-1 ドライブ (Tandberg, Archive, Viper, Wangtek,…) である。 +デバイス固有のアドレスが利用されている場合は、ブロック番号は +以前に \s-1MTIOCPOS\s+1 によって返されたものにすべきである。 .TP .B MTSETBLK .\"O Set the drive's block length to the value specified in .\"O .IR mt_count . .\"O A block length of zero sets the drive to variable block size mode. .I mt_count -¤ÎÃͤò¥É¥é¥¤¥Ö¤Î¥Ö¥í¥Ã¥¯Ä¹ (block length) ¤È¤·¤Æ¥»¥Ã¥È¤¹¤ë¡£ -¥Ö¥í¥Ã¥¯Ä¹¤ò 0 ¤Ë¤¹¤ë¤È¥É¥é¥¤¥Ö¤Ï²ÄÊÑĹ¥Ö¥í¥Ã¥¯¥µ¥¤¥º¥â¡¼¥É¤Ë¥»¥Ã -¥È¤µ¤ì¤ë¡£ +の値をドライブのブロック長 (block length) としてセットする。 +ブロック長を 0 にするとドライブは可変長ブロックサイズモードにセッ +トされる。 .TP .B MTSETDENSITY .\"O Set the tape density to the code in .\"O .IR mt_count . .\"O The density codes supported by a drive can be found from the drive .\"O documentation. -¥Æ¡¼¥×Ì©ÅÙ (tape density) ¤ò +テープ密度 (tape density) を .I mt_count -¤Ç¼¨¤µ¤ì¤ë¥³¡¼¥É¤ËÊѹ¹¤¹¤ë¡£¥É¥é¥¤¥Ö¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ëÌ©ÅÙ¥³¡¼¥É -¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥É¥é¥¤¥Ö¤Îʸ½ñ¤Ë½ñ¤¤¤Æ¤¢¤ë¤À¤í¤¦¡£ +で示されるコードに変更する。ドライブでサポートされている密度コード +については、ドライブの文書に書いてあるだろう。 .TP .B MTSETPART .\"O The active partition is switched to @@ -634,38 +634,38 @@ SCSI .\"O a drive unless the partition support is enabled for the drive (see .\"O .B MT_ST_CAN_PARTITIONS .\"O below). -¥¢¥¯¥Æ¥£¥Ö¤Ê¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òÂè +アクティブなパーティションを第 .I mt_count -ÈÖÌܤËÀÚ¤êÂؤ¨¤ë¡£¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï 0 ¤«¤é¿ô¤¨¤ë¡£ -¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¥µ¥Ý¡¼¥È¤¬Í­¸ú¤Ë¤µ¤ì¤¿ -¥É¥é¥¤¥Ö¤Ç¤Ê¤±¤ì¤Ð»È¤¨¤Ê¤¤ (°Ê²¼¤Î +番目に切り替える。パーティションは 0 から数える。 +このコマンドは、パーティションのサポートが有効にされた +ドライブでなければ使えない (以下の .B MT_ST_CAN_PARTITIONS -¤ò¸«¤è)¡£ +を見よ)。 .TP .B MTUNLOAD .\"O Execute the SCSI unload command (does not eject the tape). -SCSI unload ¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë (¥Æ¡¼¥×¤Î¥¤¥¸¥§¥¯¥È¤Ï¹Ô¤ï¤Ê¤¤)¡£ +SCSI unload コマンドを実行する (テープのイジェクトは行わない)。 .TP .B MTUNLOCK .\"O Unlock the tape drive door. -¥Æ¡¼¥×¥É¥é¥¤¥Ö¤ÎÈâ¤Î¥í¥Ã¥¯¤ò²ò½ü¤¹¤ë¡£ +テープドライブの扉のロックを解除する。 .TP .B MTWEOF .\"O Write .\"O .I mt_count .\"O filemarks. .I mt_count -¸Ä¤Î¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤ò½ñ¤­¹þ¤à¡£ +個のファイルマークを書き込む。 .TP .B MTWSM .\"O Write .\"O .I mt_count .\"O setmarks. .I mt_count -¸Ä¤Î¥»¥Ã¥È¥Þ¡¼¥¯¤ò½ñ¤­¹þ¤à¡£ +個のセットマークを書き込む。 .PP .\"O Magnetic Tape operations for setting of device options (by the superuser): -¥Ç¥Ð¥¤¥¹¥ª¥×¥·¥ç¥ó¤ÎÀßÄê¤Î¤¿¤á¤Î (¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ë¤è¤ë) ¼§µ¤¥Æ¡¼¥×Áàºî: +デバイスオプションの設定のための (スーパーユーザによる) 磁気テープ操作: .TP 8 .B MTSETDRVBUFFER .\"O Set various drive and driver options according to bits encoded in @@ -675,41 +675,41 @@ SCSI unload .\"O density, and timeouts (only in kernels 2.1 and later). .\"O A single operation can affect only one item in the list above (the .\"O Booleans counted as one item.) -¤¤¤í¤¤¤í¤Ê¥É¥é¥¤¥Ö¤È¥É¥é¥¤¥Ð¡¼¤Î¥ª¥×¥·¥ç¥ó¤ò +いろいろなドライブとドライバーのオプションを .I mt_count -¤Ë¥¨¥ó¥³¡¼¥É¤µ¤ì¤¿³Æ¥Ó¥Ã¥È¤Ë½¾¤Ã¤ÆÀßÄꤹ¤ë¡£ -¥ª¥×¥·¥ç¥ó¤Ë¤Ï¡¢¥É¥é¥¤¥Ö¤Î¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¥â¡¼¥É¡¢ -¥Ö¡¼¥ëÃͤΥɥ饤¥Ð¥ª¥×¥·¥ç¥ó¤Î½¸¹ç¡¢ -¥Ð¥Ã¥Õ¥¡¤Î½ñ¤­¹þ¤ßïçÃÍ (¥Ç¥Õ¥©¥ë¥È¤Ï¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ÈÌ©ÅÙ)¡¢ -¥¿¥¤¥à¥¢¥¦¥ÈÃͤ¬´Þ¤Þ¤ì¤ë (¥«¡¼¥Í¥ë 2.1 °Ê¹ß)¡£ -°ì²ó¤ÎÁàºî¤ÇÊѤ¨¤é¤ì¤ë¤Î¤Ï¡¢¾åµ­¤Î¥ê¥¹¥È¤Î¤É¤ì¤«°ì¤Ä¤À¤±¤Ç¤¢¤ë -(Ê£¿ô¤Î¥Ö¡¼¥ëÃͤϤޤȤá¤Æ°ì¤Ä¤È´ªÄꤵ¤ì¤ë)¡£ +にエンコードされた各ビットに従って設定する。 +オプションには、ドライブのバッファリングモード、 +ブール値のドライバオプションの集合、 +バッファの書き込み閾値 (デフォルトはブロックサイズと密度)、 +タイムアウト値が含まれる (カーネル 2.1 以降)。 +一回の操作で変えられるのは、上記のリストのどれか一つだけである +(複数のブール値はまとめて一つと勘定される)。 .IP .\"O A value having zeros in the high-order 4 bits will be used to set the .\"O drive's buffering mode. .\"O The buffering modes are: -¹â°Ì¤Î4¥Ó¥Ã¥È¤¬¥¼¥í¤Ç¤¢¤ëÃͤϡ¢ -¥É¥é¥¤¥Ö¤Î¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¥â¡¼¥É¤ÎÀßÄê¤Ë»È¤ï¤ì¤ë¡£ -¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¥â¡¼¥É¤Ï°Ê²¼¤ÎÄ̤ê: +高位の4ビットがゼロである値は、 +ドライブのバッファリングモードの設定に使われる。 +バッファリングモードは以下の通り: .RS 12 .IP 0 4 .\"O The drive will not report .\"O .BR GOOD .\"O status on write commands until the data .\"O blocks are actually written to the medium. -¥É¥é¥¤¥Ö¤Ï¥é¥¤¥È¥³¥Þ¥ó¥É¤ËÂФ·¡¢ -¥Ç¡¼¥¿¥Ö¥í¥Ã¥¯¤¬¼ÂºÝ¤ËÇÞÂΤ˽ñ¤­¹þ¤Þ¤ì¤ë¤Þ¤Ç +ドライブはライトコマンドに対し、 +データブロックが実際に媒体に書き込まれるまで .B GOOD -¤Î¥¹¥Æ¡¼¥¿¥¹¤òÊÖ¤µ¤Ê¤¤¡£ +のステータスを返さない。 .IP 1 .\"O The drive may report .\"O .BR GOOD .\"O status on write commands as soon as all the .\"O data has been transferred to the drive's internal buffer. -¥É¥é¥¤¥Ö¤Ï¥é¥¤¥È¥³¥Þ¥ó¥É¤ËÂФ·¡¢ -¤¹¤Ù¤Æ¤Î¥Ç¡¼¥¿¤¬¥É¥é¥¤¥Ö¤ÎÆâÉô¥Ð¥Ã¥Õ¥¡¤ËžÁ÷¤µ¤ì¤ë¤È¤¹¤°¤Ë¡¢ +ドライブはライトコマンドに対し、 +すべてのデータがドライブの内部バッファに転送されるとすぐに、 .B GOOD -¤Î¥¹¥Æ¡¼¥¿¥¹¤òÊÖ¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +のステータスを返すことができる。 .IP 2 .\"O The drive may report .\"O .B GOOD @@ -717,13 +717,13 @@ SCSI unload .\"O the data has been transferred to the drive's internal buffer, and .\"O (b) all buffered data from different initiators has been successfully .\"O written to the medium. -¥é¥¤¥È¥³¥Þ¥ó¥É¤ËÂФ·¡¢°Ê²¼¤Î 2 ¤Ä¤Î¾ò·ï¤¬¤½¤í¤Ã¤¿¾ì¹ç¡¢ -¥É¥é¥¤¥Ö¤Ï¤¹¤°¤Ë +ライトコマンドに対し、以下の 2 つの条件がそろった場合、 +ドライブはすぐに .B GOOD -¥¹¥Æ¡¼¥¿¥¹¤òÊÖ¤¹»ö¤¬¤Ç¤­¤ë¡£ -(a) ¤¹¤Ù¤Æ¤Î¥Ç¡¼¥¿¤¬¥É¥é¥¤¥Ö¤ÎÆâÉô¥Ð¥Ã¥Õ¥¡¤ËžÁ÷¤µ¤ì¤¿¡£ -(b) ÊÌ¡¹¤Î¥¤¥Ë¥·¥¨¡¼¥¿¡¼¤«¤éÍ褿¥Ð¥Ã¥Õ¥¡¥Ç¡¼¥¿¤¬¡¢ -¤¹¤Ù¤ÆÇÞÂΤØÌäÂê¤Ê¤¯½ñ¤­¹þ¤Þ¤ì¤¿¡£ +ステータスを返す事ができる。 +(a) すべてのデータがドライブの内部バッファに転送された。 +(b) 別々のイニシエーターから来たバッファデータが、 +すべて媒体へ問題なく書き込まれた。 .RE .IP .\"O To control the write threshold the value in @@ -735,16 +735,16 @@ SCSI unload .\"O size on the tape. .\"O The threshold cannot exceed the driver's internal buffer size (see .\"O DESCRIPTION, above). -½ñ¤­¹þ¤ßïçÃͤòÀ©¸æ¤¹¤ë¤Ë¤Ï¡¢ +書き込み閾値を制御するには、 .I mt_count -¤Ë¤Ï¡¢Äê¿ô +には、定数 .B MT_ST_WRITE_THRESHOLD -¤È¥Ö¥í¥Ã¥¯¥«¥¦¥ó¥È¤Î¥Ó¥Ã¥ÈËè¤Î OR ¤ò¤È¤Ã¤¿Ãͤò -²¼°Ì¤Î 28¥Ó¥Ã¥È¤Ë´Þ¤Þ¤Í¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤Î¥Ö¥í¥Ã¥¯¥«¥¦¥ó¥È¤Ï 1024 ¥Ð¥¤¥È¥Ö¥í¥Ã¥¯¤òñ°Ì¤È¤·¤¿¤â¤Î¤Ç¡¢ -¥Æ¡¼¥×¤ÎʪÍý¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤òñ°Ì¤È¤·¤¿¤â¤Î¤Ç¤Ï¤Ê¤¤¡£ -¤Þ¤¿¡¢ïçÃͤϥɥ饤¥Ð¤ÎÆâÉô¥Ð¥Ã¥Õ¥¡ (¾åµ­¤ÎÀâÌÀ»²¾È) -¤Î¥µ¥¤¥º¤ò±Û¤¨¤ë»ö¤Ï¤Ç¤­¤Ê¤¤¡£ +とブロックカウントのビット毎の OR をとった値を +下位の 28ビットに含まねばならない。 +このブロックカウントは 1024 バイトブロックを単位としたもので、 +テープの物理ブロックサイズを単位としたものではない。 +また、閾値はドライバの内部バッファ (上記の説明参照) +のサイズを越える事はできない。 .IP .\"O To set and clear the Boolean options .\"O the value in @@ -766,21 +766,21 @@ SCSI unload .\"O the options can be selectively set and with .\"O .BR MT_ST_DEFBOOLEANS .\"O selectively cleared. -¥Ö¡¼¥ëÃͤΥե饰¤òÀßÄꡦ²ò½ü¤¹¤ë¤Ë¤Ï¡¢ +ブール値のフラグを設定・解除するには、 .I mt_count -¤ÎÃÍ¤Ï +の値は .BR MT_ST_BOOLEANS , .BR MT_ST_SETBOOLEANS , .BR MT_ST_CLEARBOOLEANS , .BR MT_ST_DEFBOOLEANS -¤Î¤¤¤º¤ì¤«°ì¤Ä¤ÎÃͤˡ¢°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤ÎǤ°Õ¤ÎÁȤ߹ç¤ï¤»¤ËÂФ·¤Æ -¥Ó¥Ã¥ÈËè¤Î OR ¤ò¼è¤Ã¤¿¤â¤Î¤ò»ØÄꤹ¤ë¡£ -.BR MT_ST_BOOLEANS ¤òÍѤ¤¤ë¤È¡¢ -¥ª¥×¥·¥ç¥ó¤òÂбþ¤¹¤ë¥Ó¥Ã¥È¤ËÂФ·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ëÃͤËÀßÄê¤Ç¤­¤ë¡£ -.BR MT_ST_SETBOOLEANS ¤òÍѤ¤¤ë¤È¡¢ -¥ª¥×¥·¥ç¥ó¤ÏÁªÂòŪ¤ËÀßÄꤵ¤ì¡¢ -.BR MT_ST_DEFBOOLEANS ¤òÍѤ¤¤ë¤È -ÁªÂòŪ¤Ë²ò½ü¤µ¤ì¤ë¡£ +のいずれか一つの値に、以下のオプションの任意の組み合わせに対して +ビット毎の OR を取ったものを指定する。 +.BR MT_ST_BOOLEANS を用いると、 +オプションを対応するビットに対して定義されている値に設定できる。 +.BR MT_ST_SETBOOLEANS を用いると、 +オプションは選択的に設定され、 +.BR MT_ST_DEFBOOLEANS を用いると +選択的に解除される。 .IP "" .\"O The default options for a tape device are set with .\"O .BR MT_ST_DEFBOOLEANS . @@ -789,33 +789,33 @@ SCSI unload .\"O defined the first time. .\"O An activated device inherits from the device .\"O activated at start-up the options not set explicitly. -¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥ª¥×¥·¥ç¥ó¤Ï +テープデバイスのデフォルトのオプションは .B MT_ST_DEFBOOLEANS -¤Ë¤è¤Ã¤ÆÀßÄꤵ¤ì¤ë¡£ -¥¢¥¯¥Æ¥£¥Ö¤Ç¤Ê¤¤¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹ (Îã: ¥Þ¥¤¥Ê¡¼ÈÖ¹æ ¤¬ 32 ¤ä 160 ¤Î¥Ç¥Ð¥¤¥¹) -¤Ï¡¢¤½¤ì¤é¤ËÂФ¹¤ë¥Ç¥Õ¥©¥ë¥È¤Î¥ª¥×¥·¥ç¥ó¤¬ºÇ½é¤ËÄêµÁ¤µ¤ì¤¿¤È¤­¤Ë -¥¢¥¯¥Æ¥£¥Ö¤Ë¤Ê¤ë¡£¥¢¥¯¥Æ¥£¥Ö¤Ë¤µ¤ì¤¿¥Ç¥Ð¥¤¥¹¤Ï¡¢ -µ¯Æ°»þ¤Ë¥¢¥¯¥Æ¥£¥Ö¤Ë¤µ¤ì¤¿¥Ç¥Ð¥¤¥¹¤«¤é¡¢ -ÌÀ¼¨Åª¤Ë»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¥ª¥×¥·¥ç¥ó¤ò·Ñ¾µ¤¹¤ë¡£ +によって設定される。 +アクティブでないテープデバイス (例: マイナー番号 が 32 や 160 のデバイス) +は、それらに対するデフォルトのオプションが最初に定義されたときに +アクティブになる。アクティブにされたデバイスは、 +起動時にアクティブにされたデバイスから、 +明示的に指定されなかったオプションを継承する。 .IP "" .\"O The Boolean options are: -¥Ö¡¼¥ëÃͤΥª¥×¥·¥ç¥ó¤Ï°Ê²¼¤ÎÄ̤ê: +ブール値のオプションは以下の通り: .RS .TP .\"O .BR MT_ST_BUFFER_WRITES " (Default: true)" -.BR MT_ST_BUFFER_WRITES " (¥Ç¥Õ¥©¥ë¥È: ¿¿)" +.BR MT_ST_BUFFER_WRITES " (デフォルト: 真)" .\"O Buffer all write operations in fixed-block mode. .\"O If this option is false and the drive uses a fixed block size, then .\"O all write operations must be for a multiple of the block size. .\"O This option must be set false to write reliable multivolume archives. -¸ÇÄêĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤Ë¤ª¤±¤ë¤¹¤Ù¤Æ¤Î½ñ¤­¹þ¤ßÁàºî¤ò¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤¹¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬µ¶¤Ç¤¢¤ê¡¢¤«¤Ä¥É¥é¥¤¥Ö¤¬¸ÇÄêĹ¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤Î»þ¤Ï¡¢ -¤¹¤Ù¤Æ¤Î½ñ¤­¹þ¤ßÁàºî¤Ï¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ÎÇÜ¿ô¤ÎÂ礭¤µ¤Ç¹Ô¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¿®ÍêÀ­¤Î¤¢¤ë¥Þ¥ë¥Á¥Ü¥ê¥å¡¼¥à¥¢¡¼¥«¥¤¥Ö¤ò½ñ¤­¹þ¤à¤¿¤á¤Ë¤Ï¡¢ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ïµ¶¤ËÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +固定長ブロックモードにおけるすべての書き込み操作をバッファリングする。 +このオプションが偽であり、かつドライブが固定長ブロックサイズの時は、 +すべての書き込み操作はブロックサイズの倍数の大きさで行わなければならない。 +信頼性のあるマルチボリュームアーカイブを書き込むためには、 +このオプションは偽に設定されていなければならない。 .TP .\"O .BR MT_ST_ASYNC_WRITES " (Default: true)" -.BR MT_ST_ASYNC_WRITES " (¥Ç¥Õ¥©¥ë¥È: ¿¿)" +.BR MT_ST_ASYNC_WRITES " (デフォルト: 真)" .\"O When this option is true, write operations return immediately without .\"O waiting for the data to be transferred to the drive if the data fits .\"O into the driver's buffer. @@ -824,36 +824,36 @@ SCSI unload .\"O Any errors reported by the drive will be held until the next .\"O operation. .\"O This option must be set false to write reliable multivolume archives. -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬¿¿¤Î»þ¤Ë¤Ï¡¢¥Ç¡¼¥¿¤¬¥É¥é¥¤¥Ð¤Î¥Ð¥Ã¥Õ¥¡¤Ë¼ý¤Þ¤ë»þ¤Ë¤Ï -¥Ç¡¼¥¿¤¬¥É¥é¥¤¥Ö¤ËžÁ÷¤µ¤ì¤ë¤Î¤òÂÔ¤¿¤º¤Ë¡¢¤¹¤°¤Ë½ñ¤­¹þ¤ßÁàºî¤¬Ê֤äÆÍè¤ë¡£ -¥Ð¥Ã¥Õ¥¡¤¬¤É¤Î¤¯¤é¤¤¶õ¤¤¤¿¤é¼¡¤Î SCSI write ¥³¥Þ¥ó¥É¤òȯ¹Ô¤Ç¤­¤ë¤«¤Ï¡¢ -½ñ¤­¹þ¤ßïçÃͤˤè¤Ã¤Æ·è¤Þ¤ë¡£ -¥É¥é¥¤¥Ö¤¬ÊÖ¤¹¤¹¤Ù¤Æ¤Î¥¨¥é¡¼¤Ï¡¢¼¡¤ÎÁàºî¤Þ¤ÇÊݸ¤µ¤ì¤ë¡£ -¿®ÍêÀ­¤Î¤¢¤ë¥Þ¥ë¥Á¥Ü¥ê¥å¡¼¥à¥¢¡¼¥«¥¤¥Ö¤ò½ñ¤­¹þ¤à¤¿¤á¤Ë¤Ï¡¢ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ïµ¶¤ËÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +このオプションが真の時には、データがドライバのバッファに収まる時には +データがドライブに転送されるのを待たずに、すぐに書き込み操作が返って来る。 +バッファがどのくらい空いたら次の SCSI write コマンドを発行できるかは、 +書き込み閾値によって決まる。 +ドライブが返すすべてのエラーは、次の操作まで保存される。 +信頼性のあるマルチボリュームアーカイブを書き込むためには、 +このオプションは偽に設定されていなければならない。 .TP .\"O .BR MT_ST_READ_AHEAD " (Default: true)" -.BR MT_ST_READ_AHEAD " (¥Ç¥Õ¥©¥ë¥È: ¿¿)" +.BR MT_ST_READ_AHEAD " (デフォルト: 真)" .\"O This option causes the driver to provide read buffering and .\"O read-ahead in fixed-block mode. .\"O If this option is false and the drive uses a fixed block size, then .\"O all read operations must be for a multiple of the block size. -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢ -¥É¥é¥¤¥Ð¤Ï¸ÇÄêĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤ÇÆɤ߹þ¤ß¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤ÈÀèÆɤߤò¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬µ¶¤Ç¤¢¤ê¡¢¤«¤Ä¥É¥é¥¤¥Ö¤¬¸ÇÄêĹ¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤Î»þ¤Ï¡¢ -¤¹¤Ù¤Æ¤ÎÆɤ߹þ¤ßÁàºî¤Ï¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ÎÇÜ¿ô¤ÎÂ礭¤µ¤Ç¹Ô¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +このオプションを指定すると、 +ドライバは固定長ブロックモードで読み込みバッファリングと先読みをするようになる。 +このオプションが偽であり、かつドライブが固定長ブロックサイズの時は、 +すべての読み込み操作はブロックサイズの倍数の大きさで行わなければならない。 .TP .\"O .BR MT_ST_TWO_FM " (Default: false)" -.BR MT_ST_TWO_FM " (¥Ç¥Õ¥©¥ë¥È: µ¶)" +.BR MT_ST_TWO_FM " (デフォルト: 偽)" .\"O This option modifies the driver behavior when a file is closed. .\"O The normal action is to write a single filemark. .\"O If the option is true the driver will write two filemarks and .\"O backspace over the second one. -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Õ¥¡¥¤¥ë¤¬¥¯¥í¡¼¥º¤µ¤ì¤¿»þ¤Î¥É¥é¥¤¥Ð¡¼¤Î¿¶Éñ¤¤¤òÊѹ¹¤¹¤ë¡£ -°ì¤Ä¤Î¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤ò½ñ¤­¹þ¤à¤Î¤¬Ä̾ï¤ÎÆ°ºî¤Ç¤¢¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬¿¿¤Î»þ¤Ë¤Ï¡¢ -¥É¥é¥¤¥Ð¡¼¤Ï 2 ¤Ä¤Î¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤ò½ñ¤­¹þ¤ó¤Ç¡¢ -2 ¤Ä¤á¤Î¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤Î¤È¤³¤í¤ËÌá¤ë¡£ +このオプションはファイルがクローズされた時のドライバーの振舞いを変更する。 +一つのファイルマークを書き込むのが通常の動作である。 +このオプションが真の時には、 +ドライバーは 2 つのファイルマークを書き込んで、 +2 つめのファイルマークのところに戻る。 .IP .\"O Note: .\"O This option should not be set true for QIC tape drives since they are @@ -863,29 +863,29 @@ SCSI unload .\"O Most other current drives also .\"O detect the end of recorded data and using two filemarks is usually .\"O necessary only when interchanging tapes with some other systems. -Ãí°Õ¡§ -QIC¥Æ¡¼¥×¥É¥é¥¤¥Ö¤Ï¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤Ë¾å½ñ¤­¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¤Î¤Ç¡¢ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¿¿¤Ë¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -¤³¤ì¤é¤Î¥É¥é¥¤¥Ö¤Ïµ­Ï¿¥Ç¡¼¥¿¤ÎËöÈø¤Î¸¡ÃΤˡ¢ -¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤¬ 2¤Ä³¤±¤Æ¤¢¤ë¤«¤Ç¤Ï¤Ê¤¯¡¢ -¥Ö¥é¥ó¥¯¥Æ¡¼¥×¤«¤É¤¦¤«¤Î¥Æ¥¹¥È¤òÍѤ¤¤ë¡£ -¸½ºß¤Î¾¤Î¤Û¤È¤ó¤É¤Î¥É¥é¥¤¥Ö¤â¡¢µ­Ï¿¥Ç¡¼¥¿¤ÎËöÈø¤ò¸¡ÃΤ¹¤ë¡£ -2 ¤Ä¤Î¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤¬É¬Íפˤʤë¤Î¤Ï¡¢ -¾¤Î¥·¥¹¥Æ¥à¤È¥Æ¡¼¥×¤ò¤ä¤ê¤È¤ê¤¹¤ë¾ì¹ç¤Ç¤¢¤ë¡£ +注意: +QICテープドライブはファイルマークに上書きすることができないので、 +このオプションを真にしてはならない。 +これらのドライブは記録データの末尾の検知に、 +ファイルマークが 2つ続けてあるかではなく、 +ブランクテープかどうかのテストを用いる。 +現在の他のほとんどのドライブも、記録データの末尾を検知する。 +2 つのファイルマークが必要になるのは、 +他のシステムとテープをやりとりする場合である。 .TP .\"O .BR MT_ST_DEBUGGING " (Default: false)" -.BR MT_ST_DEBUGGING " (¥Ç¥Õ¥©¥ë¥È: µ¶)" +.BR MT_ST_DEBUGGING " (デフォルト: 偽)" .\"O This option turns on various debugging messages from the driver .\"O (effective only if the driver was compiled with .\"O .B DEBUG .\"O defined nonzero). -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¿¿¤Ë¤¹¤ë¤È¡¢ -¥É¥é¥¤¥Ð¤Ï¤¤¤í¤¤¤í¤Ê¥Ç¥Ð¥Ã¥°ÍÑ¥á¥Ã¥»¡¼¥¸¤ò½Ð¤¹¤è¤¦¤Ë¤Ê¤ë +このオプションを真にすると、 +ドライバはいろいろなデバッグ用メッセージを出すようになる .RB ( DEBUG -¤òÈó¥¼¥í¤ËÄêµÁ¤·¤Æ¥É¥é¥¤¥Ð¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¤¤ë»þ¤Î¤ßÍ­¸ú)¡£ +を非ゼロに定義してドライバをコンパイルしている時のみ有効)。 .TP .\"O .BR MT_ST_FAST_EOM " (Default: false)" -.BR MT_ST_FAST_EOM " (¥Ç¥Õ¥©¥ë¥È: µ¶)" +.BR MT_ST_FAST_EOM " (デフォルト: 偽)" .\"O This option causes the .\"O .B MTEOM .\"O operation to be sent directly to the @@ -898,29 +898,29 @@ QIC .\"O is false the driver will respond to an .\"O .B MTEOM .\"O request by forward spacing over files. -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¿¿¤Ë¤¹¤ë¤È¡¢ +このオプションを真にすると、 .B MTEOM -Áàºî¤¬Ä¾Àܥɥ饤¥Ö¤ËÁ÷¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -Áàºî¤¬Á᤯¤Ê¤ë¤Ï¤º¤À¤¬¡¢ -¥É¥é¥¤¥Ð¤¬¸½ºß¤Î¥Õ¥¡¥¤¥ëÈÖ¹æ¤ò¸«¼º¤¦¤³¤È¤Ë¤Ê¤ë -(¤³¤ì¤ÏÄ̾ï¤Ê¤é +操作が直接ドライブに送られるようになる。 +操作が早くなるはずだが、 +ドライバが現在のファイル番号を見失うことになる +(これは通常なら .B MTIOCGET -¥ê¥¯¥¨¥¹¥È¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë)¡£ +リクエストによって返される)。 .B MT_ST_FAST_EOM -¤¬µ¶¤Î»þ¤Ë¤Ï¡¢¥É¥é¥¤¥Ð¤Ï +が偽の時には、ドライバは .B MTEOM -¥ê¥¯¥¨¥¹¥È¤Ë±þ¤¨¤ë¤È¤­¡¢Á°Êý¤Ë¥Õ¥¡¥¤¥ë¤ò°ì¤Ä°ì¤Ä¿Ê¤á¤Æ¤¤¤¯¡£ +リクエストに応えるとき、前方にファイルを一つ一つ進めていく。 .TP .\"O .BR MT_ST_AUTO_LOCK " (Default: false)" -.BR MT_ST_AUTO_LOCK " (¥Ç¥Õ¥©¥ë¥È: µ¶)" +.BR MT_ST_AUTO_LOCK " (デフォルト: 偽)" .\"O When this option is true, the drive door is locked when the device is .\"O opened and unlocked when it is closed. -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬¿¿¤Î»þ¤Ë¤Ï¡¢ -¥Ç¥Ð¥¤¥¹¤¬¥ª¡¼¥×¥ó¤µ¤ì¤ë¤È¥É¥é¥¤¥Ö¤ÎÈ⤬¥í¥Ã¥¯¤µ¤ì¡¢ -¥¯¥í¡¼¥º¤µ¤ì¤ë¤È¥¢¥ó¥í¥Ã¥¯¤µ¤ì¤ë¡£ +このオプションが真の時には、 +デバイスがオープンされるとドライブの扉がロックされ、 +クローズされるとアンロックされる。 .TP .\"O .BR MT_ST_DEF_WRITES " (Default: false)" -.BR MT_ST_DEF_WRITES " (¥Ç¥Õ¥©¥ë¥È: µ¶)" +.BR MT_ST_DEF_WRITES " (デフォルト: 偽)" .\"O The tape options (block size, mode, compression, etc.) may change .\"O when changing from one device linked to a drive to another device .\"O linked to the same drive depending on how the devices are @@ -936,22 +936,22 @@ QIC .\"O In this case the drive firmware is allowed to detect the .\"O tape structure when reading and the SCSI-commands are used only to .\"O make sure that a tape is written according to the correct specification. -¥Æ¡¼¥×¥ª¥×¥·¥ç¥ó (¥Ö¥í¥Ã¥¯¥µ¥¤¥º¡¢¥â¡¼¥É¡¢°µ½Ì¤Ê¤É) -¤¬¤¢¤ë¥É¥é¥¤¥Ö¤Ë¥ê¥ó¥¯¤µ¤ì¤¿¥Ç¥Ð¥¤¥¹¤ÇÊѹ¹¤µ¤ì¤ë¤È¡¢ -¤½¤ÎƱ¤¸¥É¥é¥¤¥Ö¤Ë¥ê¥ó¥¯¤µ¤ì¤¿Â¾¤Î¥Ç¥Ð¥¤¥¹¤Ç¤âÊѹ¹¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë -(¤½¤Î¥Ç¥Ð¥¤¥¹¤ÎÄêµÁ¤Ë¤è¤ë)¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ -¥É¥é¥¤¥Ð¤Ë¤è¤ëÊѹ¹¤ò¤¤¤Ä SCSI ¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤ÆÈ¿±Ç¤µ¤»¤ë¤«¤È¡¢ -¥É¥é¥¤¥Ö¤Î¼«Æ°¸¡Ãε¡Ç½¤¬¤¤¤Ä¿®Íꤷ¤ÆÎɤ¤¤Î¤«¤òÄêµÁ¤¹¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤òµ¶¤Ë¤·¤Æ¤ª¤¯¤È¡¢ -¥Ç¥Ð¥¤¥¹¤ÎÊѹ¹¤¬¤¢¤ë¤È¥É¥é¥¤¥Ð¤Ï¤¹¤°¤Ë SCSI ¥³¥Þ¥ó¥É¤òÁ÷¤ë¡£ -¿¿¤Ë¤·¤Æ¤ª¤¯¤È¡¢ SCSI ¥³¥Þ¥ó¥É¤Ï½ñ¤­¹þ¤ß¤¬Í׵ᤵ¤ì¤ë¤Þ¤ÇÁ÷¤é¤ì¤Ê¤¤¡£ -¸å¼Ô¤Î¾ì¹ç¤Ï¡¢Æɤ߹þ¤ß¤ÎºÝ¤Ë¥É¥é¥¤¥Ö¤Î¥Õ¥¡¡¼¥à¥¦¥§¥¢¤Ë¤è¤Ã¤Æ -¥Æ¡¼¥×¹½Â¤¤Î¸¡ÃΤ¬¹Ô¤¨¤ë¡£¤Þ¤¿ SCSI ¥³¥Þ¥ó¥É¤Ï¡¢ -¥Æ¡¼¥×¤¬Àµ¤·¤¤»ØÄê¤Ë±è¤Ã¤Æ½ñ¤­¹þ¤Þ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Î -³Îǧ¤Î¤¿¤á¤À¤±¤ËÍѤ¤¤é¤ì¤ë¡£ +テープオプション (ブロックサイズ、モード、圧縮など) +があるドライブにリンクされたデバイスで変更されると、 +その同じドライブにリンクされた他のデバイスでも変更されることがある +(そのデバイスの定義による)。このオプションは、 +ドライバによる変更をいつ SCSI コマンドによって反映させるかと、 +ドライブの自動検知機能がいつ信頼して良いのかを定義する。 +このオプションを偽にしておくと、 +デバイスの変更があるとドライバはすぐに SCSI コマンドを送る。 +真にしておくと、 SCSI コマンドは書き込みが要求されるまで送られない。 +後者の場合は、読み込みの際にドライブのファームウェアによって +テープ構造の検知が行える。また SCSI コマンドは、 +テープが正しい指定に沿って書き込まれているかどうかの +確認のためだけに用いられる。 .TP .\"O .BR MT_ST_CAN_BSR " (Default: false)" -.BR MT_ST_CAN_BSR " (¥Ç¥Õ¥©¥ë¥È: µ¶)" +.BR MT_ST_CAN_BSR " (デフォルト: 偽)" .\"O When read-ahead is used, the tape must sometimes be spaced backward to the .\"O correct position when the device is closed and the SCSI command to .\"O space backward over records is used for this purpose. @@ -963,20 +963,20 @@ QIC .\"O positioned within a file when the device is closed. .\"O With 2.6 kernel, the .\"O default is true for drives supporting SCSI-3. -ÀèÆɤߤò»È¤¦¤È¡¢¥Æ¡¼¥×¤ò¥¯¥í¡¼¥º¤¹¤ë¤È¤­¤Ë¡¢ -¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï¥Æ¡¼¥×¤òÀµ¤·¤¤°ÌÃ֤˵ÕÌᤷ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤¬¤¢¤ë¡£ -¤³¤ì¤Ë¤Ï¡¢¥ì¥³¡¼¥É¤ò±Û¤¨¤ÆµÕÌᤷ¤¹¤ë SCSI ¥³¥Þ¥ó¥É¤¬ÍѤ¤¤é¤ì¤ë¡£ -¸Å¤¤¥É¥é¥¤¥Ö¤Ç¤Ï¡¢¤³¤Î¥³¥Þ¥ó¥É½èÍý¤Î¿®ÍêÀ­¤¬Ä㤤¤³¤È¤¬¤¢¤ë¤¬¡¢ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢ -¥É¥é¥¤¥Ð¤Ë¤³¤Î¥³¥Þ¥ó¥É¤ÎÍøÍѤò¶Ø»ß¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -ÀèÆɤߤȸÇÄêĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤òÍѤ¤¤Æ¤¤¤ë¤È¡¢ºÇ½ªÅª¤Ê·ë²Ì¤È¤·¤Æ¡¢ -¥Ç¥Ð¥¤¥¹¤Î¥¯¥í¡¼¥º»þ¤Ë¥Æ¡¼¥×¤¬Àµ¤·¤¤°ÌÃ֤ˤʤé¤Ê¤¤¤³¤È¤¬¤¢¤ë¡£ -.\"nakano ¤½¤¦¤«¡© -2.6 ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢SCSI-3 ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥É¥é¥¤¥Ö¤ËÂФ·¤Æ¡¢ -¤³¤ÎÃͤΥǥե©¥ë¥È¤Ï¿¿¤È¤Ê¤ë¡£ +先読みを使うと、テープをクローズするときに、 +場合によってはテープを正しい位置に逆戻ししなければならないことがある。 +これには、レコードを越えて逆戻しする SCSI コマンドが用いられる。 +古いドライブでは、このコマンド処理の信頼性が低いことがあるが、 +このオプションを指定すると、 +ドライバにこのコマンドの利用を禁止することができる。 +先読みと固定長ブロックモードを用いていると、最終的な結果として、 +デバイスのクローズ時にテープが正しい位置にならないことがある。 +.\"nakano そうか? +2.6 カーネルでは、SCSI-3 をサポートしているドライブに対して、 +この値のデフォルトは真となる。 .TP .\"O .BR MT_ST_NO_BLKLIMS " (Default: false)" -.BR MT_ST_NO_BLKLIMS " (¥Ç¥Õ¥©¥ë¥È: µ¶)" +.BR MT_ST_NO_BLKLIMS " (デフォルト: 偽)" .\"O Some drives don't accept the .\"O .B "READ BLOCK LIMITS" .\"O SCSI command. @@ -984,24 +984,24 @@ QIC .\"O The drawback is .\"O that the driver can't check before sending commands if the selected .\"O block size is acceptable to the drive. -¥É¥é¥¤¥Ö¤Ë¤è¤Ã¤Æ¤Ï +ドライブによっては .B READ BLOCK LIMITS SCSI -¥³¥Þ¥ó¥É¤ò¼õ¤±¤Ä¤±¤Ê¤¤¤³¤È¤¬¤¢¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤È¡¢¥É¥é¥¤¥Ð¤Ï¤³¤Î¥³¥Þ¥ó¥É¤òÍѤ¤¤Ê¤¤¡£ -·çÅÀ¤Ï¡¢»ØÄꤷ¤¿¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤¬¥É¥é¥¤¥Ö¤Ë¼õÍý¤µ¤ì¤Æ¤·¤Þ¤¦¤È¡¢ -¥É¥é¥¤¥Ð¤Î¥³¥Þ¥ó¥ÉÁ÷¿®Á°¥Á¥§¥Ã¥¯¤¬¤Ç¤­¤Ê¤¯¤Ê¤ëÅÀ¤Ç¤¢¤ë¡£ +コマンドを受けつけないことがある。 +このオプションを用いると、ドライバはこのコマンドを用いない。 +欠点は、指定したブロックサイズがドライブに受理されてしまうと、 +ドライバのコマンド送信前チェックができなくなる点である。 .TP .\"O .BR MT_ST_CAN_PARTITIONS " (Default: false)" -.BR MT_ST_CAN_PARTITIONS " (¥Ç¥Õ¥©¥ë¥È: µ¶)" +.BR MT_ST_CAN_PARTITIONS " (デフォルト: 偽)" .\"O This option enables support for several partitions within a .\"O tape. .\"O The option applies to all devices linked to a drive. -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢°ì¤Ä¤Î¥Æ¡¼¥×¤ËÊ£¿ô¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òÃÖ¤¯¤³¤È¤ò -¥µ¥Ý¡¼¥È¤¹¤ë¤«¤É¤¦¤«¤ò·è¤á¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥É¥é¥¤¥Ö¤Ë¥ê¥ó¥¯¤µ¤ì¤¿Á´¤Æ¤Î¥Ç¥Ð¥¤¥¹¤ËŬÍѤµ¤ì¤ë¡£ +このオプションは、一つのテープに複数パーティションを置くことを +サポートするかどうかを決める。 +このオプションはドライブにリンクされた全てのデバイスに適用される。 .TP .\"O .MT_ST_SCSI2LOGICAL " (Default: false)" -.TP MT_ST_SCSI2LOGICAL " (¥Ç¥Õ¥©¥ë¥È: µ¶)" +.TP MT_ST_SCSI2LOGICAL " (デフォルト: 偽)" .\"O This option instructs the driver to use the logical block addresses .\"O defined in the SCSI-2 standard when performing the seek and tell .\"O operations (both with @@ -1015,21 +1015,21 @@ QIC .\"O logical addresses because they count also filemarks. .\"O There are some .\"O drives that only support the logical block addresses. -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ -seek ¤ª¤è¤Ó tell Áàºî (ξ¼Ô¤È¤â -.BR MTSEEK ¡¦ MTIOCPOS -¥³¥Þ¥ó¥É¤òȼ¤¤¡¢¥Æ¡¼¥×°ÌÃÖ¤òÊѹ¹¤¹¤ë¤È¤­) ¤ÎºÝ¤Ë¡¢ -SCSI-2 ¤Îɸ½à¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëÏÀÍý¥Ö¥í¥Ã¥¯¥¢¥É¥ì¥¹¤òÍѤ¤¤ë¤«¤É¤¦¤«¤ò -¥É¥é¥¤¥Ð¤ËÅÁ¤¨¤ë¡£ -.\"nakano both with ¤ÎÉôʬ²ø¤·¤¤¡£ -µ¶¤À¤È¥Ç¥Ð¥¤¥¹¸ÇÍ­¤Î¥¢¥É¥ì¥¹¤¬ÍѤ¤¤é¤ì¤ë¡£ -¥É¥é¥¤¥Ö¤¬ÏÀÍý¥¢¥É¥ì¥¹¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤È¤­¤Ï¡¢ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¥»¥Ã¥È¤¹¤ë¤³¤È¤ò¶¯¤¯´«¤á¤ë¡£ -¤³¤Î¥â¡¼¥É¤Ç¤Ï¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤â¥«¥¦¥ó¥È¤¹¤ë¤«¤é¤Ç¤¢¤ë¡£ -ÏÀÍý¥Ö¥í¥Ã¥¯¥¢¥É¥ì¥¹¤·¤«¥µ¥Ý¡¼¥È¤·¤Ê¤¤¥É¥é¥¤¥Ö¤â¤¤¤¯¤Ä¤«Â¸ºß¤·¤Æ¤¤¤ë¡£ +このオプションは、 +seek および tell 操作 (両者とも +.BR MTSEEK ・ MTIOCPOS +コマンドを伴い、テープ位置を変更するとき) の際に、 +SCSI-2 の標準で定義されている論理ブロックアドレスを用いるかどうかを +ドライバに伝える。 +.\"nakano both with の部分怪しい。 +偽だとデバイス固有のアドレスが用いられる。 +ドライブが論理アドレスをサポートしているときは、 +このオプションをセットすることを強く勧める。 +このモードではファイルマークもカウントするからである。 +論理ブロックアドレスしかサポートしないドライブもいくつか存在している。 .TP .\"O .BR MT_ST_SYSV " (Default: false)" -.BR MT_ST_SYSV " (¥Ç¥Õ¥©¥ë¥È: µ¶)" +.BR MT_ST_SYSV " (デフォルト: 偽)" .\"O When this option is enabled, the tape devices use the SystemV .\"O semantics. .\"O Otherwise the BSD semantics are used. @@ -1039,24 +1039,24 @@ SCSI-2 .\"O past the next filemark if this has not happened while using the .\"O device. .\"O In BSD semantics the tape position is not changed. -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬¿¿¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¤Ï -SystemV ¤Î¥ë¡¼¥ë¤òÍѤ¤¤ë¡£µ¶¤À¤È BSD ¤Î¥ë¡¼¥ë¤òÍѤ¤¤ë¡£ -.\"nakano: semantics ¢ª ¥ë¡¼¥ë ¤Ï¤Á¤È°ã¤¦¤«¡© -¤³¤ì¤é¤Î¥ë¡¼¥ë´Ö¤ÎºÇ¤âÂ礭¤Ê°ã¤¤¤Ï¡¢Æɤ߹þ¤ß¤ò¹Ô¤Ã¤Æ¤¤¤¿ -¥Ç¥Ð¥¤¥¹¤¬¥¯¥í¡¼¥º¤µ¤ì¤¿¤È¤­¤Î¿¶Éñ¤¤¤Ç¤¢¤ë¡£ -System V ¤Î¥ë¡¼¥ë¤Ç¤Ï¡¢¥Æ¡¼¥×¤Ï¼¡¤Î¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤ò±Û¤¨¤Æ°ÜÆ°¤¹¤ë -(¥Ç¥Ð¥¤¥¹¤ÎÍøÍÑ»þ¤Ë¤³¤ì¤¬¹Ô¤ï¤ì¤Ê¤«¤Ã¤¿¾ì¹ç)¡£ -BSD ¤Î¥ë¡¼¥ë¤Ç¤Ï¥Æ¡¼¥×°ÌÃÖ¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +このオプションが真になっていると、テープデバイスは +SystemV のルールを用いる。偽だと BSD のルールを用いる。 +.\"nakano: semantics → ルール はちと違うか? +これらのルール間の最も大きな違いは、読み込みを行っていた +デバイスがクローズされたときの振舞いである。 +System V のルールでは、テープは次のファイルマークを越えて移動する +(デバイスの利用時にこれが行われなかった場合)。 +BSD のルールではテープ位置は変更されない。 .TP .\"O .BR MT_NO_WAIT " (Default: false)" -.BR MT_NO_WAIT " (¥Ç¥Õ¥©¥ë¥È: µ¶)" +.BR MT_NO_WAIT " (デフォルト: 偽)" .\"O Enables immediate mode (i.e., don't wait for the command to finish) for some .\"O commands (e.g., rewind). -¨»þ¥â¡¼¥É (immediate mode; ¥³¥Þ¥ó¥É¤Î½ªÎ»¤òÂÔ¤¿¤Ê¤¤) -¤ò¡¢¤¢¤ë¼ï¤Î¥³¥Þ¥ó¥É (rewind ¤Ê¤É) ¤ËÂФ·¤ÆÍ­¸ú¤Ë¤¹¤ë¡£ +即時モード (immediate mode; コマンドの終了を待たない) +を、ある種のコマンド (rewind など) に対して有効にする。 .PP .\"O An example: -Îã: +例: .in +4n .nf @@ -1075,12 +1075,12 @@ ioctl(fd, MTIOCTOP, mt_cmd); .\"O .BR MT_ST_DEFDENSITY . .\"O The values for the parameters are or'ed .\"O with the operation code. -¥Ç¥Ð¥¤¥¹¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤Ï +デバイスのデフォルトのブロックサイズは .B MT_ST_DEF_BLKSIZE -¤Ë¤è¤Ã¤ÆÀßÄê¤Ç¤­¡¢¥Ç¥Õ¥©¥ë¥È¤ÎÌ©ÅÙ¥³¡¼¥É¤Ï +によって設定でき、デフォルトの密度コードは .B MT_ST_DEFDENSITY -¤Ë¤è¤Ã¤ÆÀßÄê¤Ç¤­¤ë¡£ -¤³¤ì¤é¤Î¥Ñ¥é¥á¡¼¥¿¤ÎÃͤÏÁàºî¥³¡¼¥É¤È OR ¤·¤ÆÍ¿¤¨¤ë¡£ +によって設定できる。 +これらのパラメータの値は操作コードと OR して与える。 .IP "" .\"O With kernels 2.1.x and later, the timeout values can be set with the .\"O subcommand @@ -1098,21 +1098,21 @@ ioctl(fd, MTIOCTOP, mt_cmd); .\"O practical values for a specific drive. .\"O The timeouts set for one device .\"O apply for all devices linked to the same drive. -2.1.x °Ê¹ß¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¥¿¥¤¥à¥¢¥¦¥ÈÃͤÎÀßÄê¤Ï¡¢ -¥µ¥Ö¥³¥Þ¥ó¥É +2.1.x 以降のカーネルでは、タイムアウト値の設定は、 +サブコマンド .B MT_ST_SET_TIMEOUT -¤ËÉÃñ°Ì¤Î¥¿¥¤¥à¥¢¥¦¥ÈÃͤò -OR ¤·¤ÆÍ¿¤¨¤ë¤³¤È¤Ë¤è¤Ã¤Æ¹Ô¤¨¤ë¡£ long ¥¿¥¤¥à¥¢¥¦¥È -(´¬¤­Ìᤷ¤Ê¤É¡¢Ä¹¤¤»þ´Ö¤¬¤«¤«¤ë¥³¥Þ¥ó¥É¤ËÂФ·¤ÆÍѤ¤¤é¤ì¤ë) ¤Ï +に秒単位のタイムアウト値を +OR して与えることによって行える。 long タイムアウト +(巻き戻しなど、長い時間がかかるコマンドに対して用いられる) は .B MT_ST_SET_LONG_TIMEOUT -¤ÇÀßÄê¤Ç¤­¤ë¡£ -¥«¡¼¥Í¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤ÏÈó¾ï¤ËŤ¯¡¢¤É¤Î¥É¥é¥¤¥Ö¤Ç¤â -À®¸ù¤·¤Æ¤¤¤ë¥³¥Þ¥ó¥É¤¬·è¤·¤Æ¥¿¥¤¥à¥¢¥¦¥È¤·¤Ê¤¤¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¥É¥é¥¤¥Ð¤Ï¥¿¥¤¥à¥¢¥¦¥È¤òÂԤäƤ¤¤ë¤À¤±¤Ê¤Î¤Ë¡¢ -»É¤µ¤Ã¤¿ (stuck ¤·¤¿) ¤è¤¦¤Ë¸«¤¨¤ë¤³¤È¤¬¤¢¤ë¡£¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤ò»È¤¨¤Ð¡¢ -ÆÃÄê¤Î¥É¥é¥¤¥Ö¤ËÂФ·¤Æ¤â¤¦¾¯¤·¼ÂºÝŪ¤ÊÃͤËÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -°ì¤Ä¤Î¥Ç¥Ð¥¤¥¹¤ËÀßÄꤷ¤¿¥¿¥¤¥à¥¢¥¦¥ÈÃͤϡ¢ -¤½¤ì¤ÈƱ¤¸¥É¥é¥¤¥Ö¤Ë¥ê¥ó¥¯¤·¤¿Á´¤Æ¤Î¥Ç¥Ð¥¤¥¹¤ËŬÍѤµ¤ì¤ë¡£ +で設定できる。 +カーネルのデフォルトは非常に長く、どのドライブでも +成功しているコマンドが決してタイムアウトしないようになっている。 +したがって、ドライバはタイムアウトを待っているだけなのに、 +刺さった (stuck した) ように見えることがある。これらのコマンドを使えば、 +特定のドライブに対してもう少し実際的な値に設定することができる。 +一つのデバイスに設定したタイムアウト値は、 +それと同じドライブにリンクした全てのデバイスに適用される。 .IP "" .\"O Starting from kernels 2.4.19 and 2.5.43, the driver supports a status .\"O bit which indicates whether the drive requests cleaning. @@ -1134,30 +1134,30 @@ OR .\"O the cleaning request. .\"O If the pattern is nonzero, the pattern must match .\"O the masked sense data byte. -2.4.19 ¤ª¤è¤Ó 2.5.43 °Ê¹ß¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -¤³¤Î¥É¥é¥¤¥Ð¤Ï¥É¥é¥¤¥Ö¤Î¥¯¥ê¡¼¥Ë¥ó¥°¤¬É¬Íפ«¤É¤¦¤«¤ò¼¨¤¹ -¾õÂ֥ӥåȤò¥µ¥Ý¡¼¥È¤¹¤ë¡£ -¥É¥é¥¤¥Ö¤¬¥¯¥ê¡¼¥Ë¥ó¥°¾ðÊó¤òÊÖ¤µ¤»¤ë¤«¤É¤¦¤«¤Ï¡¢ +2.4.19 および 2.5.43 以降のカーネルでは、 +このドライバはドライブのクリーニングが必要かどうかを示す +状態ビットをサポートする。 +ドライブがクリーニング情報を返させるかどうかは、 .B MT_ST_SEL_CLN -¥µ¥Ö¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤ÆÀßÄê¤Ç¤­¤ë¡£ -¤³¤ÎÃͤ¬ 0 ¤À¤È¡¢¥¯¥ê¡¼¥Ë¥ó¥°¥Ó¥Ã¥È¤Ï¾ï¤Ë 0 ¤È¤Ê¤ë¡£ -Ãͤò 1 ¤Ë¤¹¤ë¤È¡¢SCSI-3 ɸ½à¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë -TapeAlert ¥Ç¡¼¥¿¤¬ÍѤ¤¤é¤ì¤ë (¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤) -ÃͤȤ·¤Æ¤Ï 2 ¤«¤é 17 ¤¬Í½Ì󤵤ì¤Æ¤¤¤ë¡£ -Äã°Ì¦¤Î 8 ¥Ó¥Ã¥È¤¬ 18 °Ê¾å¤À¤È¡¢³ÈÄ¥¾õÂ֥ǡ¼¥¿ (extended sense data) -¤¬ÍѤ¤¤é¤ì¤ë¡£Âè 9-16 ¥Ó¥Ã¥È¤ÏÃíÌܤ¹¤Ù¤­¥Ó¥Ã¥È¤òÁªÂò¤¹¤ë¤¿¤á¤Î¥Þ¥¹¥¯¤ò»ØÄꤷ¡¢ -Âè 17-23 ¥Ó¥Ã¥È¤Ïõ¤¹¤Ù¤­¥Ó¥Ã¥È¥Ñ¥¿¡¼¥ó¤ò»ØÄꤹ¤ë¡£ -¤³¤Î¥Ó¥Ã¥È¥Ñ¥¿¡¼¥ó¤¬ 0 ¤Î¤È¤­¤Ï¡¢ -¥Þ¥¹¥¯²¼¤Î¥Ó¥Ã¥È (·²) ¤¬¥¯¥ê¡¼¥Ë¥ó¥°Í×µá¤ò¼¨¤¹¡£¥Ñ¥¿¡¼¥ó¤¬ 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢ -¤³¤Î¥Ñ¥¿¡¼¥ó¤¬¥Þ¥¹¥¯¸å¤Î¾õÂ֥ǡ¼¥¿¥Ð¥¤¥È¤Ë¥Þ¥Ã¥Á¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +サブコマンドによって設定できる。 +この値が 0 だと、クリーニングビットは常に 0 となる。 +値を 1 にすると、SCSI-3 標準で規定されている +TapeAlert データが用いられる (まだ実装されていない) +値としては 2 から 17 が予約されている。 +低位側の 8 ビットが 18 以上だと、拡張状態データ (extended sense data) +が用いられる。第 9-16 ビットは注目すべきビットを選択するためのマスクを指定し、 +第 17-23 ビットは探すべきビットパターンを指定する。 +このビットパターンが 0 のときは、 +マスク下のビット (群) がクリーニング要求を示す。パターンが 0 でなければ、 +このパターンがマスク後の状態データバイトにマッチしなければならない。 .\"O .SS "MTIOCGET \(em Get status" -.SS "MTIOCGET \(em ¥¹¥Æ¡¼¥¿¥¹¤Î¼èÆÀ" +.SS "MTIOCGET \(em ステータスの取得" .PP .\"O This request takes an argument of type .\"O .IR "(struct mtget *)" . -¤³¤Î¥ê¥¯¥¨¥¹¥È¤Ï +このリクエストは .IR "(struct mtget *)" -¤È¤¤¤¦·¿¤Î°ú¿ô¤ò¤È¤ë¡£ +という型の引数をとる。 .PP .in +4n .nf @@ -1184,16 +1184,16 @@ struct mtget { .\"O and .\"O .B MT_ISSCSI2 .\"O (Generic SCSI-2 tape). -¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëÃæ¤Ë¤Ï¿¤¯¤Î +ヘッダファイル中には多くの .I mt_type -¤ÎÃͤ¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢¸½¹Ô¤Î¥É¥é¥¤¥Ð¤ÏÈÆÍѤΥ¿¥¤¥×¤Ç¤¢¤ë +の値が定義されているが、現行のドライバは汎用のタイプである .B MT_ISSCSI1 -(ÈÆÍÑ SCSI-1 ¥Æ¡¼¥×) ¤ª¤è¤Ó +(汎用 SCSI-1 テープ) および .B MT_ISSCSI2 -(ÈÆÍÑ SCSI-2 ¥Æ¡¼¥×) ¤Î¤ß¤òÊÖ¤¹¡£ +(汎用 SCSI-2 テープ) のみを返す。 .IP \fImt_resid\fP .\"O contains the current tape partition number. -¸½ºß¤Î¥Æ¡¼¥×°ÌÃÖÈֹ档 +現在のテープ位置番号。 .IP \fImt_dsreg\fP .\"O reports the drive's current settings for block size (in the low 24 .\"O bits) and density (in the high 8 bits). @@ -1203,20 +1203,20 @@ struct mtget { .\"O .BR MT_ST_DENSITY_SHIFT , .\"O and .\"O .BR MT_ST_DENSITY_MASK . -¥É¥é¥¤¥Ö¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ÈÌ©Å٤θ½ºß¤ÎÀßÄê¤òÊó¹ð¤¹¤ë -(²¼°Ì 24 ¥Ó¥Ã¥È¤¬¥Ö¥í¥Ã¥¯¥µ¥¤¥º¡¢¾å°Ì 8 ¥Ó¥Ã¥È¤¬Ì©ÅÙ)¡£ -¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢ +ドライブのブロックサイズと密度の現在の設定を報告する +(下位 24 ビットがブロックサイズ、上位 8 ビットが密度)。 +これらのフィールドは、 .BR MT_ST_BLKSIZE_SHIFT , .BR MT_ST_BLKSIZE_MASK , .BR MT_ST_DENSITY_SHIFT , .BR MT_ST_DENSITY_MASK -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で定義されている。 .IP \fImt_gstat\fP .\"O reports generic (device independent) status information. .\"O The header file defines macros for testing these status bits: -ÈÆÍѤΠ(¥Ç¥Ð¥¤¥¹¤Ë°Í¸¤·¤Ê¤¤) ¥¹¥Æ¡¼¥¿¥¹¤òÊó¹ð¤¹¤ë¡£ -¤³¤ì¤é¤Î¥¹¥Æ¡¼¥¿¥¹¥Ó¥Ã¥È¤ò¥Æ¥¹¥È¤¹¤ë¤¿¤á¤Î¥Þ¥¯¥í¤¬ -¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +汎用の (デバイスに依存しない) ステータスを報告する。 +これらのステータスビットをテストするためのマクロが +ヘッダファイルで定義されている。 .RS .HP 4 \fBGMT_EOF\fP(\fIx\fP): @@ -1224,63 +1224,63 @@ struct mtget { .\"O (always false after an .\"O .B MTSEEK .\"O operation). -¥Æ¡¼¥×¤Ï¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤Îľ¸å¤Ë°ÌÃÖ¤·¤Æ¤¤¤ë¡£ +テープはファイルマークの直後に位置している。 .RB ( MTSEEK -Áàºî¤Î¸å¤Ç¤Ï¾ï¤Ëµ¶) +操作の後では常に偽) .HP \fBGMT_BOT\fP(\fIx\fP): .\"O The tape is positioned at the beginning of the first file (always false .\"O after an .\"O .B MTSEEK .\"O operation). -¥Æ¡¼¥×¤ÏºÇ½é¤Î¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤Ë°ÌÃÖ¤·¤Æ¤¤¤ë¡£ +テープは最初のファイルの先頭に位置している。 .RB ( MTSEEK -Áàºî¤Î¸å¤Ç¤Ï¾ï¤Ëµ¶) +操作の後では常に偽) .HP \fBGMT_EOT\fP(\fIx\fP): .\"O A tape operation has reached the physical End Of Tape. -¥Æ¡¼¥×Áàºî¤Ï¥Æ¡¼¥×¤ÎʪÍýŪ¤Ê½ªÅÀ¤Ë㤷¤¿¡£ +テープ操作はテープの物理的な終点に達した。 .HP \s-1GMT_SM(\s+1\fIx\fP\s-1)\s+1: .\"O The tape is currently positioned at a setmark .\"O (always false after an .\"O .B MTSEEK .\"O operation). -¥Æ¡¼¥×¤Ï¸½ºß¥»¥Ã¥È¥Þ¡¼¥¯¤Ë°ÌÃÖ¤·¤Æ¤¤¤ë¡£ +テープは現在セットマークに位置している。 .RB ( MTSEEK -Áàºî¤Î¸å¤Ç¤Ï¾ï¤Ëµ¶) +操作の後では常に偽) .HP \fBGMT_EOD\fP(\fIx\fP): .\"O The tape is positioned at the end of recorded data. -¥Æ¡¼¥×¤Ïµ­Ï¿¥Ç¡¼¥¿¤ÎËöÈø¤Ë°ÌÃÖ¤·¤Æ¤¤¤ë¡£ +テープは記録データの末尾に位置している。 .HP \fBGMT_WR_PROT\fP(\fIx\fP): .\"O The drive is write-protected. .\"O For some drives this can also mean that the drive does not support .\"O writing on the current medium type. -¥É¥é¥¤¥Ö¤Ï¥é¥¤¥È¥×¥í¥Æ¥¯¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï¥É¥é¥¤¥Ö¤Ë¤è¤Ã¤Æ¤Ï¡¢ -¥É¥é¥¤¥Ö¤¬¸½ºß¤Î¥á¥Ç¥£¥¢¥¿¥¤¥×¤Ø¤Î½ñ¤­¹þ¤ß¤ò -¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤»ö¤ò°ÕÌ£¤¹¤ë¾ì¹ç¤â¤¢¤ë¡£ +ドライブはライトプロテクトされている。 +これはドライブによっては、 +ドライブが現在のメディアタイプへの書き込みを +サポートしていない事を意味する場合もある。 .HP \fBGMT_ONLINE\fP(\fIx\fP): .\"O The last .\"O .BR open (2) .\"O found the drive with a tape in place and ready for operation. -¤â¤Ã¤È¤âºÇ¶á¤Î +もっとも最近の .BR open (2) -¤¬¡¢¥Æ¡¼¥×¤¬Æþ¤Ã¤Æ¤¤¤ÆÁàºî¤Î½àÈ÷¤¬¤Ç¤­¤Æ¤¤¤ë¥É¥é¥¤¥Ö¤ò¸¡ÃΤ·¤¿¡£ +が、テープが入っていて操作の準備ができているドライブを検知した。 .HP \fBGMT_D_6250\fP(\fIx\fP), \fBGMT_D_1600\fP(\fIx\fP), \fBGMT_D_800\fP(\fIx\fP): .\"O This \(lqgeneric\(rq status information reports the current .\"O density setting for 9-track \(12" tape drives only. -¤³¤Î¡ÖÈÆÍѡפΥ¹¥Æ¡¼¥¿¥¹¾ðÊó¤Ï¡¢ -9-¥È¥é¥Ã¥¯ \(12" ¥Æ¡¼¥×¥É¥é¥¤¥Ö¤Î¾ì¹ç¤Ë¤Î¤ß¡¢ -¸½ºß¤ÎÌ©ÅÙ¤ÎÀßÄê¤òÊó¹ð¤¹¤ë¡£ +この「汎用」のステータス情報は、 +9-トラック \(12" テープドライブの場合にのみ、 +現在の密度の設定を報告する。 .HP \fBGMT_DR_OPEN\fP(\fIx\fP): .\"O The drive does not have a tape in place. -¥É¥é¥¤¥Ö¤Ë¥Æ¡¼¥×¤¬Æþ¤Ã¤Æ¤¤¤Ê¤¤¡£ +ドライブにテープが入っていない。 .HP \fBGMT_IM_REP_EN\fP(\fIx\fP): .\"O Immediate report mode. @@ -1289,17 +1289,17 @@ struct mtget { .\"O returns. .\"O It is set zero only when the driver does not buffer data and .\"O the drive is set not to buffer data. -¨»þÊó¹ð¥â¡¼¥É¡£ write ¥³¡¼¥ë¤¬Ìá¤Ã¤¿¤È¤­¡¢ -¥Æ¡¼¥×¤ËÂФ·¤ÆʪÍýŪ¤Ê½ñ¤­¹þ¤ß¤¬¹Ô¤ï¤ì¤¿¤«¤É¤¦¤«¤òÊݾڤǤ­¤Ê¤¤¾ì¹ç¤Ë¡¢ -¤³¤Î¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£¥É¥é¥¤¥Ð¤¬¥Ç¡¼¥¿¤ò¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤»¤º¡¢ -¥É¥é¥¤¥Ö¤â¥Ç¡¼¥¿¤ò¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤·¤Ê¤¤¾ì¹ç¤Ë¸Â¤Ã¤Æ¡¢ -¤³¤ÎÃÍ¤Ï 0 ¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ +即時報告モード。 write コールが戻ったとき、 +テープに対して物理的な書き込みが行われたかどうかを保証できない場合に、 +このビットがセットされる。ドライバがデータをバッファリングせず、 +ドライブもデータをバッファリングしない場合に限って、 +この値は 0 にセットされる。 .HP \fBGMT_CLN\fP(\fIx\fP): .\"O The drive has requested cleaning. .\"O Implemented in kernels since 2.4.19 and 2.5.43. -¥É¥é¥¤¥Ö¤¬¥¯¥ê¡¼¥Ë¥ó¥°¤òÍ׵ᤷ¤Æ¤¤¤ë¡£ -¥«¡¼¥Í¥ë 2.4.19 ¤ª¤è¤Ó 2.5.43 °Ê¹ß¤Ç¼ÂÁõ¤µ¤ì¤¿¡£ +ドライブがクリーニングを要求している。 +カーネル 2.4.19 および 2.5.43 以降で実装された。 .RE .IP \fImt_erreg\fP .\"O The only field defined in @@ -1312,28 +1312,28 @@ struct mtget { .\"O count is often not maintained (most drives do not by default report .\"O soft errors but this can be changed with a SCSI MODE SELECT command). .I mt_erreg -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥Õ¥£¡¼¥ë¥É¤Ï°ì¤Ä¤À¤±¤Ç¡¢ -²¼°Ì¤Î 16 ¥Ó¥Ã¥È¤¬¥¨¥é¡¼¤ò¥ê¥«¥Ð¡¼¤·¤¿²ó¿ô¤Ç¤¢¤ë +で定義されているフィールドは一つだけで、 +下位の 16 ビットがエラーをリカバーした回数である .RB ( MT_ST_SOFTERR_SHIFT -¤È +と .B MT_ST_SOFTERR_MASK -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ -¥É¥é¥¤¥Ö¤ÎÊó¹ð¤¹¤ë¥¨¥é¡¼¥ê¥«¥Ð¡¼¿ô¤ÈÌ·½â¤¹¤ë¤³¤È¤¬¤¢¤ë¤Î¤Ç¡¢ -¤³¤Î¿ô¤Ï¤Û¤È¤ó¤É¤Î¾ì¹ç°Ý»ý¤µ¤ì¤Ê¤¤ -(¤Û¤È¤ó¤É¤Î¥É¥é¥¤¥Ö¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥½¥Õ¥È¥¨¥é¡¼¤òÊó¹ð¤·¤Ê¤¤¡£ -¤·¤«¤·¤³¤ì¤Ï SCSI MODE SELECT ¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤ÆÊѹ¹¤Ç¤­¤ë)¡£ +で定義されている)。 +ドライブの報告するエラーリカバー数と矛盾することがあるので、 +この数はほとんどの場合維持されない +(ほとんどのドライブでは、デフォルトではソフトエラーを報告しない。 +しかしこれは SCSI MODE SELECT コマンドによって変更できる)。 .IP \fImt_fileno\fP .\"O reports the current file number (zero-based). .\"O This value is set to \-1 when the file number is unknown (e.g., after .\"O .BR MTBSS .\"O or .\"O .BR MTSEEK ). -(¥¼¥í¤«¤é¿ô¤¨¤¿) ¸½ºß¤Î¥Õ¥¡¥¤¥ëÈÖ¹æ¤òÊó¹ð¤¹¤ë¡£ -¥Õ¥¡¥¤¥ëÈֹ椬¤ï¤«¤é¤Ê¤¤»þ (Î㤨¤Ð +(ゼロから数えた) 現在のファイル番号を報告する。 +ファイル番号がわからない時 (例えば .B MTBSS -¤ä +や .B MTSEEK -¤Î¸å¤Ê¤É) ¤Ë¤Ï \-1 ¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ +の後など) には \-1 にセットされる。 .IP \fImt_blkno\fP .\"O reports the block number (zero-based) within the current file. .\"O This value is set to \-1 when the block number is unknown (e.g., after @@ -1341,15 +1341,15 @@ struct mtget { .\"O .BR MTBSS , .\"O or .\"O .BR MTSEEK ). -¸½ºß¤Î¥Õ¥¡¥¤¥ëÃæ¤Î(¥¼¥í¤«¤é¿ô¤¨¤¿)¥Ö¥í¥Ã¥¯ÈÖ¹æ¤òÊó¹ð¤¹¤ë¡£ -¥Ö¥í¥Ã¥¯Èֹ椬¤ï¤«¤é¤Ê¤¤»þ (Î㤨¤Ð +現在のファイル中の(ゼロから数えた)ブロック番号を報告する。 +ブロック番号がわからない時 (例えば .BR MTBSF , .BR MTBSS , .BR MTSEEK -¤Î¸å¤Ê¤É) ¤Ë¤Ï \-1 ¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ +の後など) には \-1 にセットされる。 .PD .\"O .SS "MTIOCPOS \(em Get tape position" -.SS "MTIOCPOS \(em ¥Æ¡¼¥×°ÌÃ֤μèÆÀ" +.SS "MTIOCPOS \(em テープ位置の取得" .PP .\"O This request takes an argument of type .\"O .I "(struct mtpos *)" @@ -1363,20 +1363,20 @@ struct mtget { .\"O command (device-specific address) .\"O or a Tandberg-compatible SCSI-1 drive (Tandberg, Archive .\"O Viper, Wangtek, ... ). -¤³¤Î¥ê¥¯¥¨¥¹¥È¤Ï +このリクエストは .I "(struct mtpos *)" -·¿¤Î°ú¿ô¤ò¤È¤ê¡¢¥É¥é¥¤¥Ö¤¬ÊÝ»ý¤·¤Æ¤¤¤ë¸½ºß¤Î¥Æ¡¼¥×¥Ö¥í¥Ã¥¯ÈÖ¹æ¤òÊó¹ð¤¹¤ë¡£ -¤³¤ì¤Ï¡¢ +型の引数をとり、ドライブが保持している現在のテープブロック番号を報告する。 +これは、 .B MTIOCGET -¤Ë¤è¤êÊÖ¤µ¤ì¤ë +により返される .I mt_blkno -¤ÈƱ¤¸¤Ç¤Ï¤Ê¤¤¡£ -¥É¥é¥¤¥Ö¤Ï +と同じではない。 +ドライブは .B "READ POSITION" -¥³¥Þ¥ó¥É (¥Ç¥Ð¥¤¥¹¸ÇÍ­¥¢¥É¥ì¥¹) -¤ò¥µ¥Ý¡¼¥È¤¹¤ë SCSI-2¥É¥é¥¤¥Ö¤«¡¢ -Tandberg ¸ß´¹¤Î SCSI-1 ¥É¥é¥¤¥Ö -(Tandberg, Archive, Viper, Wangtek, ... ) ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +コマンド (デバイス固有アドレス) +をサポートする SCSI-2ドライブか、 +Tandberg 互換の SCSI-1 ドライブ +(Tandberg, Archive, Viper, Wangtek, ... ) でなければならない。 .PP .in +4n .nf @@ -1387,40 +1387,40 @@ struct mtpos { .fi .in .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .TP 14 .TP .B EACCES .\"O An attempt was made to write or erase a write-protected tape. .\"O (This error is not detected during .\"O .BR open (2).) -½ñ¤­¹þ¤ßÊݸ¤ì¤Æ¤¤¤ë¥Æ¡¼¥×¤Ë½ñ¤­¹þ¤ß¤Þ¤¿¤Ï¾Ãµî¤ò¹Ô¤ª¤¦¤È¤·¤¿¡£ -(¤³¤Î¥¨¥é¡¼¤Ï +書き込み保護されているテープに書き込みまたは消去を行おうとした。 +(このエラーは .BR open (2) -Ãæ¤Ë¤Ï¸¡ÃΤµ¤ì¤Ê¤¤¡£) +中には検知されない。) .TP .B EBUSY .\"O The device is already in use or the driver was unable to allocate a .\"O buffer. -¥Ç¥Ð¥¤¥¹¤¬¤¹¤Ç¤Ë»È¤ï¤ì¤Æ¤¤¤ë¤«¡¢ -¥É¥é¥¤¥Ð¤¬¥Ð¥Ã¥Õ¥¡¤ò³äÅö¤Æ¤é¤ì¤Ê¤«¤Ã¤¿¡£ +デバイスがすでに使われているか、 +ドライバがバッファを割当てられなかった。 .TP .B EFAULT .\"O The command parameters point to memory not belonging to the calling .\"O process. -¥³¥Þ¥ó¥É¤Î°ú¿ô¤¬¡¢ -¸Æ¤Ó¤À¤·¥×¥í¥»¥¹¤Ë°¤·¤Æ¤¤¤Ê¤¤¥á¥â¥ê°ÌÃÖ¤ò»Ø¤·¤Æ¤¤¤ë¡£ +コマンドの引数が、 +呼びだしプロセスに属していないメモリ位置を指している。 .TP .B EINVAL .\"O An .\"O .BR ioctl (2) .\"O had an invalid argument, or a requested block size was invalid. .BR ioctl (2) -¤Î°ú¿ô¤¬ÉÔÀµ¤Ç¤¢¤ë¤«¡¢Í׵ᤷ¤¿¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤¬ÉÔÀµ¡£ +の引数が不正であるか、要求したブロックサイズが不正。 .TP .B EIO 14 .\"O The requested operation could not be completed. -Í׵ᤵ¤ì¤¿Áàºî¤¬ºÇ¸å¤Þ¤Ç¹Ô¤¨¤Ê¤«¤Ã¤¿¡£ +要求された操作が最後まで行えなかった。 .TP .B ENOMEM .\"O The byte count in @@ -1429,29 +1429,29 @@ struct mtpos { .\"O (Before 2.2.18 and 2.4.0-test6 the extra bytes have been .\"O silently ignored.) .BR read (2) -¤Î¥Ð¥¤¥È¿ô¤¬¡¢¥Æ¡¼¥×¤Ë¤¢¤ë¼¡¤ÎʪÍý¥Ö¥í¥Ã¥¯¤è¤ê¾®¤µ¤¤ -(2.2.18 ¤ª¤è¤Ó 2.4.0-test6 °ÊÁ°¤Ç¤Ï¡¢ÌۤäÆ;ʬ¤Î¥Ð¥¤¥È¤ò̵»ë¤·¤Æ¤¤¤¿)¡£ +のバイト数が、テープにある次の物理ブロックより小さい +(2.2.18 および 2.4.0-test6 以前では、黙って余分のバイトを無視していた)。 .TP .B ENOSPC .\"O A write operation could not be completed because the tape reached .\"O end-of-medium. -¥á¥Ç¥£¥¢¤Î½ªÅÀ¤Ë㤷¤¿¤¿¤á¡¢½ñ¤­¹þ¤ßÁàºî¤¬´°Î»¤·¤Ê¤«¤Ã¤¿¡£ +メディアの終点に達したため、書き込み操作が完了しなかった。 .TP .B ENOSYS .\"O Unknown .\"O .BR ioctl (2). -ÉÔÌÀ¤Ê -.BR ioctl (2)¡£ +不明な +.BR ioctl (2)。 .TP .B ENXIO .\"O During opening, the tape device does not exist. -¥ª¡¼¥×¥ó¤¹¤ë»þ¤Ë¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¤¬Â¸ºß¤·¤Ê¤«¤Ã¤¿¡£ +オープンする時にテープデバイスが存在しなかった。 .TP .B EOVERFLOW .\"O An attempt was made to read or write a variable-length block that is .\"O larger than the driver's internal buffer. -¥É¥é¥¤¥Ð¤ÎÆâÉô¥Ð¥Ã¥Õ¥¡¤è¤êÂ礭¤¤¥µ¥¤¥º¤Î²ÄÊÑĹ¥Ö¥í¥Ã¥¯¤ò -Æɤ߽ñ¤­¤·¤è¤¦¤È¤·¤¿¡£ +ドライバの内部バッファより大きいサイズの可変長ブロックを +読み書きしようとした。 .TP .B EROFS .\"O Open is attempted with @@ -1459,35 +1459,35 @@ struct mtpos { .\"O or .\"O .B O_RDWR .\"O when the tape in the drive is write-protected. -¥É¥é¥¤¥Ö¤ËÆþ¤Ã¤Æ¤¤¤ë¥Æ¡¼¥×¤¬¥é¥¤¥È¥×¥í¥Æ¥¯¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢ +ドライブに入っているテープがライトプロテクトされている場合に、 .B O_WRONLY -¤Þ¤¿¤Ï +または .B O_RDWR -¤Ç open ¤ò¹Ô¤ª¤¦¤È¤·¤¿¡£ +で open を行おうとした。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .TP 12 .\"O .I /dev/st* .\"O the auto-rewind SCSI tape devices .I /dev/st* -¼«Æ°´¬¤­Ìᤷ¤Î SCSI ¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¡£ +自動巻き戻しの SCSI テープデバイス。 .TP 12 .\"O .I /dev/nst* .\"O the nonrewind SCSI tape devices .I /dev/nst* -´¬¤­Ìᤷ¤ò¤·¤Ê¤¤ SCSI ¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¡£ +巻き戻しをしない SCSI テープデバイス。 .\"O .\" .SH AUTHOR -.\" .SH Ãø¼Ô +.\" .SH 著者 .\"O .\" The driver has been written by Kai M\(:akisara (Kai.Makisara@metla.fi) .\"O .\" starting from a driver written by Dwayne Forsyth. .\"O .\" Several other .\"O .\" people have also contributed to the driver. -.\" ¤³¤Î¥É¥é¥¤¥Ð¤Ï -.\" Dwayne Forsyth ¤Î½ñ¤¤¤¿¥É¥é¥¤¥Ð¤ò¤â¤È¤Ë¤·¤Æ -.\" Kai M\(:akisara (Kai.Makisara@metla.fi) ¤¬½ñ¤¤¤¿¡£ -.\" ¾¤Ë¤â²¿¿Í¤«¤Î¿Í¡¹¤¬¤³¤Î¥É¥é¥¤¥Ð¤Ë¹×¸¥¤·¤Æ¤­¤¿¡£ +.\" このドライバは +.\" Dwayne Forsyth の書いたドライバをもとにして +.\" Kai M\(:akisara (Kai.Makisara@metla.fi) が書いた。 +.\" 他にも何人かの人々がこのドライバに貢献してきた。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .IP 1. 4 .\"O When exchanging data between systems, both systems have to agree on .\"O the physical tape block size. @@ -1508,22 +1508,22 @@ struct mtpos { .\"O The drawback of .\"O this is that a fairly large tape block size has to be used to get .\"O acceptable data transfer rates on the SCSI bus. -°Û¤Ê¤ë¥·¥¹¥Æ¥à¤Ç¥Ç¡¼¥¿¤òÁê¸ß¤Ë¤ä¤ê¤È¤ê¤¹¤ë¾ì¹ç¡¢ -ξÊý¤Î¥·¥¹¥Æ¥à¤ÇʪÍýŪ¤Ê¥Æ¡¼¥×¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ò°ìÃפµ¤»¤ëɬÍפ¬¤¢¤ë¡£ -µ¯Æ°Ä¾¸å¤Î¥É¥é¥¤¥Ö¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¡¢Âç¿¿ô¤Î OS ¤¬¤½¤Î¥Ç¥Ð¥¤¥¹¤ËÂФ·¤Æ -ÍѤ¤¤Æ¤¤¤ëÃͤȰۤʤäƤ¤¤ë¤³¤È¤â¤è¤¯¤¢¤ë¡£Â¿¤¯¤Î¥·¥¹¥Æ¥à¤Ï¡¢ -¥É¥é¥¤¥Ö¤¬Âбþ¤·¤Æ¤¤¤ì¤Ð²ÄÊÑĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤òÍѤ¤¤ë¡£ DAT¡¢ -8mm ¥Ø¥ê¥«¥ë¥¹¥­¥ã¥ó¥É¥é¥¤¥Ö¡¢ DLT ¤Ê¤É¤ÎºÇ¶á¤Î¥É¥é¥¤¥Ö¤Î -¤Û¤È¤ó¤É¤Ï²ÄÊÑĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤ËÂбþ¤·¤Æ¤¤¤ë¤«¤é¡£ -¤³¤ì¤é¤Î¥É¥é¥¤¥Ö¤Ï (¾¯¤Ê¤¯¤È¤â¾¤Î¥·¥¹¥Æ¥à¤È¤Î¥Ç¡¼¥¿¸ò´¹¤¬ -¤¢¤ë¾ì¹ç¤Ï)¡¢ Linux ¤Ç¤â²ÄÊÑĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤Ç»È¤¦¤Û¤¦¤¬ -Îɤ¤¤«¤â¤·¤ì¤Ê¤¤ (¤Ä¤Þ¤ê¥·¥¹¥Æ¥à¤Îµ¯Æ°»þ¤Î¥â¡¼¥ÉÀßÄê¤Ë +異なるシステムでデータを相互にやりとりする場合、 +両方のシステムで物理的なテープブロックサイズを一致させる必要がある。 +起動直後のドライブのパラメータは、大多数の OS がそのデバイスに対して +用いている値と異なっていることもよくある。多くのシステムは、 +ドライブが対応していれば可変長ブロックモードを用いる。 DAT、 +8mm ヘリカルスキャンドライブ、 DLT などの最近のドライブの +ほとんどは可変長ブロックモードに対応しているから。 +これらのドライブは (少なくとも他のシステムとのデータ交換が +ある場合は)、 Linux でも可変長ブロックモードで使うほうが +良いかもしれない (つまりシステムの起動時のモード設定に .B MTSETBLK -¤Þ¤¿¤Ï +または .B MTSETDEFBLK -¤òÍѤ¤¤ë)¡£ -·çÅÀ¤È¤·¤Æ¤Ï¡¢Èæ³ÓŪÂ礭¤Ê¥Æ¡¼¥×¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤òÍѤ¤¤Ê¤±¤ì¤Ð¡¢ -SCSI ¥Ð¥¹¾å¤ÇËþ­¤Î¤¤¤¯Å¾Á÷®ÅÙ¤¬ÆÀ¤é¤ì¤Ê¤¤¤³¤È¤Ç¤¢¤ë¡£ +を用いる)。 +欠点としては、比較的大きなテープブロックサイズを用いなければ、 +SCSI バス上で満足のいく転送速度が得られないことである。 .IP 2. .\"O Many programs (e.g., .\"O .BR tar (1)) @@ -1531,12 +1531,12 @@ SCSI .\"O factor on the command line. .\"O Note that this determines the physical block .\"O size on tape only in variable-block mode. -¿¤¯¤Î¥×¥í¥°¥é¥à +多くのプログラム .RB ( tar (1) -¤Ê¤É) ¤Ç¤Ï¡¢ -¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤é¥æ¡¼¥¶¤¬¥Ö¥í¥Ã¥¯´ØÏ¢¤ÎÃͤò»ØÄê¤Ç¤­¤ë¡£ -¤³¤ÎÃͤˤè¤Ã¤Æ¥Æ¡¼¥×¾å¤ÎʪÍýŪ¤Ê¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ò·èÄê¤Ç¤­¤ë¤Î¤Ï¡¢ -²ÄÊÑĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤Ë¸Â¤é¤ì¤ë¤³¤È¤ËÃí°Õ¡£ +など) では、 +コマンドラインからユーザがブロック関連の値を指定できる。 +この値によってテープ上の物理的なブロックサイズを決定できるのは、 +可変長ブロックモードに限られることに注意。 .IP 3. .\"O In order to use SCSI tape drives, the basic SCSI driver, .\"O a SCSI-adapter driver and the SCSI tape driver must be either @@ -1544,21 +1544,21 @@ SCSI .\"O If the SCSI-tape .\"O driver is not present, the drive is recognized but the tape support .\"O described in this page is not available. -SCSI ¥Æ¡¼¥×¥É¥é¥¤¥Ö¤òÍѤ¤¤ë¤Ë¤Ï¡¢´ðËܤΠSCSI ¥É¥é¥¤¥Ð¡¢ -SCSI ¥¢¥À¥×¥¿¤Î¥É¥é¥¤¥Ð¡¢ SCSI ¥Æ¡¼¥×¥É¥é¥¤¥Ð¤Î¤¹¤Ù¤Æ¤¬ -¥«¡¼¥Í¥ë¤ËÁȤ߹þ¤Þ¤ì¤Æ¤¤¤ë¤«¡¢¤¢¤ë¤¤¤Ï¥â¥¸¥å¡¼¥ë¤È¤·¤Æ¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë -ɬÍפ¬¤¢¤ë¡£ SCSI ¥Æ¡¼¥×¥É¥é¥¤¥Ð¤¬¤Ê¤¤¤È¡¢ -¥É¥é¥¤¥Ö¤Ïǧ¼±¤µ¤ì¤ë¤¬¡¢ -¤³¤Î¥Ú¡¼¥¸¤Çµ­½Ò¤µ¤ì¤Æ¤¤¤ë¥Æ¡¼¥×¤Î¥µ¥Ý¡¼¥È¤ÏÍøÍѤǤ­¤Ê¤¤¡£ +SCSI テープドライブを用いるには、基本の SCSI ドライバ、 +SCSI アダプタのドライバ、 SCSI テープドライバのすべてが +カーネルに組み込まれているか、あるいはモジュールとしてロードされている +必要がある。 SCSI テープドライバがないと、 +ドライブは認識されるが、 +このページで記述されているテープのサポートは利用できない。 .IP 4. .\"O The driver writes error messages to the console/log. .\"O The SENSE .\"O codes written into some messages are automatically translated to text .\"O if verbose SCSI messages are enabled in kernel configuration. -¥É¥é¥¤¥Ð¤Ï¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò¥³¥ó¥½¡¼¥ë¤È¥í¥°¤È¤Ë½ñ¤­½Ð¤¹¡£ -¥«¡¼¥Í¥ëÀßÄê¤Ç verbose SCSI messages ¤¬Í­¸ú¤Ë¤µ¤ì¤Æ¤¤¤ë¤È¡¢ -SENSE ¥³¡¼¥É¤¬¼«Æ°Åª¤Ë¥Æ¥­¥¹¥È¤ËÊÑ´¹¤µ¤ì¤Æ¡¢ -¤¤¤¯¤Ä¤«¤Î¥á¥Ã¥»¡¼¥¸¤Ë½ñ¤­¤À¤µ¤ì¤ë¡£ +ドライバはエラーメッセージをコンソールとログとに書き出す。 +カーネル設定で verbose SCSI messages が有効にされていると、 +SENSE コードが自動的にテキストに変換されて、 +いくつかのメッセージに書きだされる。 .IP 5. .\"O The driver's internal buffering allows good throughput in fixed-block .\"O mode also with small @@ -1572,17 +1572,17 @@ SENSE .\"O The solution is to tell the software to use larger transfers (often .\"O telling it to use larger blocks). .\"O If this is not possible, direct transfers can be disabled. -¤³¤Î¥É¥é¥¤¥Ð¤ÎÆâÉô¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤Ï¡¢¸ÇÄê¥Ö¥í¥Ã¥¯¥â¡¼¥É¤Ê¤é +このドライバの内部バッファリングは、固定ブロックモードなら .BR read (2) -¤ä +や .BR write (2) -¤Î¥Ð¥¤¥È¿ô¤¬¾®¤µ¤¯¤Æ¤âÎɤ¤¥¹¥ë¡¼¥×¥Ã¥È¤ò½Ð¤¹¡£ -ľÀÜžÁ÷¤Ç¤Ï¤³¤ì¤ÏÉÔ²Äǽ¤Ê¤Î¤Ç¡¢2.6 ¥«¡¼¥Í¥ë¤Ë°Ü¹Ô¤·¤¿¤È¤­¤Ë¶Ã¤¯¤«¤â¤·¤ì¤Ê¤¤¡£ -²ò·èË¡¤È¤·¤Æ¤Ï¡¢¥½¥Õ¥È¥¦¥§¥¢¤Ë¤è¤êÂ礭¤ÊžÁ÷¤ò¹Ô¤¦¤è¤¦ÅÁ¤¨¤ë -(¤¿¤¤¤Æ¤¤¤Ï¤è¤êÂ礭¤Ê¥Ö¥í¥Ã¥¯¤ò»È¤ï¤»¤ë) ¤³¤È¤Ç¤¢¤ë¡£ -¤³¤ì¤¬ÉÔ²Äǽ¤Ê¤é¡¢Ä¾ÀÜžÁ÷¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +のバイト数が小さくても良いスループットを出す。 +直接転送ではこれは不可能なので、2.6 カーネルに移行したときに驚くかもしれない。 +解決法としては、ソフトウェアにより大きな転送を行うよう伝える +(たいていはより大きなブロックを使わせる) ことである。 +これが不可能なら、直接転送を無効にすることもできる。 .\"O .SH COPYRIGHT -.\" .SH Ãøºî¸¢ +.\" .SH 著作権 .\" Copyright \(co 1995 Robert K. Nichols. .\" .br .\" Copyright \(co 1999-2005 Kai M\(:akisara. @@ -1592,7 +1592,7 @@ SENSE .\" preserved on all copies. .\" Additional permissions are contained in the header of the source file. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mt (1) .PP .\"O The file @@ -1602,10 +1602,10 @@ SENSE .\"O (kernel >= 2.6) in the kernel sources contains .\"O the most recent information about the driver and its configuration .\"O possibilities. -¥«¡¼¥Í¥ë¥½¡¼¥¹¤Î +カーネルソースの .I drivers/scsi/README.st -¤ä +や .I Documentation/scsi/st.txt -(¥«¡¼¥Í¥ë 2.6 °Ê¹ß) ¤Î³Æ¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢ -¥É¥é¥¤¥Ð¤Ë´Ø¤¹¤ë¤è¤ê¿·¤·¤¤¾ðÊó¤ä¡¢ -¤½¤ÎÀßÄê²Äǽ¤ÊÈϰϤ˴ؤ¹¤ëÆâÍƤ¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +(カーネル 2.6 以降) の各ファイルには、 +ドライバに関するより新しい情報や、 +その設定可能な範囲に関する内容が含まれている。 diff --git a/draft/man4/tty.4 b/draft/man4/tty.4 index f11e7bdd..04e2896a 100644 --- a/draft/man4/tty.4 +++ b/draft/man4/tty.4 @@ -33,25 +33,25 @@ .\" Updated Fri Aug 16 00:04:53 JST 2002 .\" by Akihiro MOTOKI .\" -.\" WORD: terminal üËö -.\" WORD: process ¥×¥í¥»¥¹ -.\" WORD: controlling terminal À©¸æüËö -.\" WORD: file descriptor ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +.\" WORD: terminal 端末 +.\" WORD: process プロセス +.\" WORD: controlling terminal 制御端末 +.\" WORD: file descriptor ファイルディスクリプタ .\" .TH TTY 4 2003-04-07 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O tty \- controlling terminal -.SH ̾Á° -tty \- À©¸æüËö +.SH 名前 +tty \- 制御端末 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The file \fI/dev/tty\fP is a character file with major number 5 and .\"O minor number 0, usually of mode 0666 and owner.group root.tty. .\"O It is a synonym for the controlling terminal of a process, if any. -\fI/dev/tty\fP ¥Õ¥¡¥¤¥ë¤Ï¡¢¥á¥¸¥ã¡¼ÈÖ¹æ 5¡¢¥Þ¥¤¥Ê¡¼ÈÖ¹æ 0 ¤Î¥­¥ã¥é¥¯¥¿¡¼ -¥Ç¥Ð¥¤¥¹¤Ç¤¢¤ë¡£Ä̾¤½¤Î¥â¡¼¥É¤Ï 0666¡¢¥ª¡¼¥Ê.¥°¥ë¡¼¥×¤Ï root.tty ¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ -¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤¬Â¸ºß¤¹¤ë¾ì¹ç¡¢¤³¤Î¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë¤Ï¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤È -Ʊ¤¸¤â¤Î¤òɽ¤¹¡£ +\fI/dev/tty\fP ファイルは、メジャー番号 5、マイナー番号 0 のキャラクター +デバイスである。通常、そのモードは 0666、オーナ.グループは root.tty となっている。 +プロセスの制御端末が存在する場合、このデバイスファイルはプロセスの制御端末と +同じものを表す。 .LP .\"O In addition to the .\"O .BR ioctl (2) @@ -59,15 +59,15 @@ tty \- .\"O \fBtty\fP refers to, the .\"O .BR ioctl (2) .\"O request \fBTIOCNOTTY\fP is supported. -\fBtty\fP ¤¬»²¾È¤·¤Æ¤¤¤ë¥Ç¥Ð¥¤¥¹¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë +\fBtty\fP が参照しているデバイスがサポートしている .BR ioctl (2) -Í×µá¤Ë -²Ã¤¨¤Æ¡¢ +要求に +加えて、 .BR ioctl (2) -Í×µá \fBTIOCNOTTY\fP ¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +要求 \fBTIOCNOTTY\fP がサポートされている。 .SS TIOCNOTTY .\"O Detach the calling process from its controlling terminal. -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ò¤½¤ÎÀ©¸æüËö¤«¤éÀÚ¤êÎ¥¤¹¡£ +呼び出し元のプロセスをその制御端末から切り離す。 .sp .\"O If the process is the session leader, .\"O then @@ -76,13 +76,13 @@ tty \- .\"O .B SIGCONT .\"O signals are sent to the foreground process group .\"O and all processes in the current session lose their controlling tty. -¤½¤Î¥×¥í¥»¥¹¤¬¥»¥Ã¥·¥ç¥ó¡¦¥ê¡¼¥À¡¼ (session leader) ¤Î¾ì¹ç¡¢ -¥·¥°¥Ê¥ë +そのプロセスがセッション・リーダー (session leader) の場合、 +シグナル .B SIGHUP -¤È +と .B SIGCONT -¤¬¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¡¦¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤ËÁ÷¤é¤ì¡¢ -¥«¥ì¥ó¥È¡¦¥»¥Ã¥·¥ç¥ó¤Ë°¤¹Á´¤Æ¤Î¥×¥í¥»¥¹¤Ë¤Ä¤¤¤Æ³Æ¡¹¤ÎÀ©¸æüËö¤¬ÀÚ¤êÎ¥¤µ¤ì¤ë¡£ +がフォアグラウンド・プロセス・グループに送られ、 +カレント・セッションに属す全てのプロセスについて各々の制御端末が切り離される。 .sp .\"O This .\"O .BR ioctl (2) @@ -95,21 +95,21 @@ tty \- .\"O detaches itself from the terminal by using \fBTIOCNOTTY\fP, while if the .\"O open fails, it is obviously not attached to a terminal and does not need .\"O to detach itself. -¤³¤Î +この .BR ioctl (2) -¸Æ¤Ó½Ð¤·¤Ï \fI/dev/tty\fP ¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¡¦ -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤Î¤ßºîÍѤ¹¤ë¡£¤³¤Îµ¡Ç½¤Ï¡¢¥æ¡¼¥¶¤Ë¤è¤Ã¤ÆüËö¤«¤é -µ¯Æ°¤µ¤ì¤¿¥Ç¡¼¥â¥ó¥×¥í¥»¥¹¤Ë¤è¤ê»ÈÍѤµ¤ì¤ë¡£ -¤½¤Î¥×¥í¥»¥¹¤Ï \fI/dev/tty\fP ¤ò¥ª¡¼¥×¥ó¤·¤è¤¦¤È»î¤ß¤ë¡£ -¥ª¡¼¥×¥ó¤ËÀ®¸ù¤¹¤ë¤È¡¢¤½¤Î¥×¥í¥»¥¹¤Ï \fBTIOCNOTTY\fP ¤ò»È¤Ã¤Æ -¼«Ê¬¼«¿È¤òüËö¤«¤éÀÚ¤êÎ¥¤¹¡£¥ª¡¼¥×¥ó¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¡¢¤½¤Î¥×¥í¥»¥¹¤¬ -üËö¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤Æ¤¤¤Ê¤¤¤Î¤ÏÌÀ¤é¤«¤Ç¤¢¤ê¡¢¼«¿È¤òüËö¤«¤éÀÚ¤êÎ¥¤¹ -ɬÍפϤʤ¤¡£ +呼び出しは \fI/dev/tty\fP に結びつけられたファイル・ +ディスクリプタにのみ作用する。この機能は、ユーザによって端末から +起動されたデーモンプロセスにより使用される。 +そのプロセスは \fI/dev/tty\fP をオープンしようと試みる。 +オープンに成功すると、そのプロセスは \fBTIOCNOTTY\fP を使って +自分自身を端末から切り離す。オープンに失敗した場合、そのプロセスが +端末に結びつけられていないのは明らかであり、自身を端末から切り離す +必要はない。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル /dev/tty .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chown (1), .BR mknod (1), .BR ioctl (2), diff --git a/draft/man4/ttyS.4 b/draft/man4/ttyS.4 index a8b61a8f..a2ea4040 100644 --- a/draft/man4/ttyS.4 +++ b/draft/man4/ttyS.4 @@ -31,15 +31,15 @@ .\" Japanese Version Last Modified Thu Feb 5 17:27:58 JST 1998 .\" by ISHIKAWA Mutsumi .\" -.\" WORD: serial ¥·¥ê¥¢¥ë +.\" WORD: serial シリアル .TH TTYS 4 1992-12-19 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -ttyS \- ¥·¥ê¥¢¥ë¥¿¡¼¥ß¥Ê¥ë¥é¥¤¥ó(serial terminal lines) -.SH ÀâÌÀ -\fBttyS[0\-3]\fP ¤Ï¥·¥ê¥¢¥ë¥¿¡¼¥ß¥Ê¥ë¥é¥¤¥ó¤Î¤¿¤á¤Î¥­¥ã¥é¥¯¥¿¡¼¥Ç¥Ð¥¤¥¹ -(character device)¤Ç¤¢¤ë¡£ +.SH 名前 +ttyS \- シリアルターミナルライン(serial terminal lines) +.SH 説明 +\fBttyS[0\-3]\fP はシリアルターミナルラインのためのキャラクターデバイス +(character device)である。 .LP -ŵ·¿Åª¤Ë¤Ï¼¡¤Î¤è¤¦¤Ë¤·¤Æºî¤é¤ì¤ë¡£: +典型的には次のようにして作られる。: .RS .sp mknod \-m 660 /dev/ttyS0 c 4 64 # base address 0x3f8 @@ -52,14 +52,14 @@ mknod \-m 660 /dev/ttyS3 c 4 67 # base address 0x2e8 .br chown root:tty /dev/ttyS[0\-3] .RE -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル /dev/ttyS[0\-3] -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chown (1), .BR mknod (1), .BR tty (4), .BR agetty (8), .BR mingetty (8), .BR setserial (8) -.\" .SH ËÝÌõ¼Ô -.\" ÀÐÀî ËÓ +.\" .SH 翻訳者 +.\" 石川 睦 diff --git a/draft/man4/tty_ioctl.4 b/draft/man4/tty_ioctl.4 index af59ed3f..a2328a36 100644 --- a/draft/man4/tty_ioctl.4 +++ b/draft/man4/tty_ioctl.4 @@ -9,26 +9,26 @@ .\" .TH TTY_IOCTL 4 2008-10-29 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O tty_ioctl \- ioctls for terminals and serial lines -tty_ioctl \- üËö¤È¥·¥ê¥¢¥ë¥é¥¤¥ó¤Î ioctl (Æþ½ÐÎÏÀ©¸æ) +tty_ioctl \- 端末とシリアルラインの ioctl (入出力制御) .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B "#include " .sp .BI "int ioctl(int " fd ", int " cmd ", ...);" .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .BR ioctl (2) .\"O call for terminals and serial ports accepts many possible command arguments. -üËö¤È¥·¥ê¥¢¥ë¥Ý¡¼¥È¤Ë¤Ä¤¤¤Æ¤Î +端末とシリアルポートについての .BR ioctl (2) -¥³¡¼¥ë¤Ï¡¢Â¿¤¯¤Î¥³¥Þ¥ó¥É°ú¤­¿ô¤ò¼õ¤±ÉÕ¤±¤ë¡£ +コールは、多くのコマンド引き数を受け付ける。 .\"O Most require a third argument, of varying type, here called \fIargp\fP .\"O or \fIarg\fP. -¿¤¯¤¬¤¤¤í¤¤¤í¤Ê·¿¤Î 3 ÈÖÌܤΰú¤­¿ô¤òɬÍפȤ¹¤ë¡£ -¤³¤³¤Ç¤Ï \fIargp\fP ¤Þ¤¿¤Ï \fIarg\fP ¤È¸Æ¤Ö¡£ +多くがいろいろな型の 3 番目の引き数を必要とする。 +ここでは \fIargp\fP または \fIarg\fP と呼ぶ。 .LP .\"O Use of .\"O .I ioctl @@ -37,53 +37,53 @@ tty_ioctl \- ü .\"O .BR termios (3) .\"O whenever possible. .I ioctl -¤ò»ÈÍѤ¹¤ë¤È°Ü¿¢À­¤Î¤Ê¤¤¥×¥í¥°¥é¥à¤Ë¤Ê¤ë¡£ -²Äǽ¤Ê¾ì¹ç¤Ï¡¢ +を使用すると移植性のないプログラムになる。 +可能な場合は、 .BR termios (3) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë POSIX ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò»È¤¦¤³¤È¡£ +に記述されている POSIX インタフェースを使うこと。 .\"O .SS "Get and Set Terminal Attributes" -.SS üËö°À­¤Î¼èÆÀ¤ÈÀßÄê +.SS 端末属性の取得と設定 .TP .BI "TCGETS struct termios *" argp .\"O Equivalent to .\"O .IR "tcgetattr(fd, argp)" . .I "tcgetattr(fd, argp)" -¤ÈƱ¤¸¡£ +と同じ。 .br .\"O Get the current serial port settings. -¸½ºß¤Î¥·¥ê¥¢¥ë¥Ý¡¼¥È¤ÎÀßÄê¤ò¼èÆÀ¤¹¤ë¡£ +現在のシリアルポートの設定を取得する。 .TP .BI "TCSETS const struct termios *" argp .\"O Equivalent to .\"O .IR "tcsetattr(fd, TCSANOW, argp)" . .I "tcsetattr(fd, TCSANOW, argp)" -¤ÈƱ¤¸¡£ +と同じ。 .br .\"O Set the current serial port settings. -¸½ºß¤Î¥·¥ê¥¢¥ë¥Ý¡¼¥È¤ÎÀßÄê¤òÊѹ¹¤¹¤ë¡£ +現在のシリアルポートの設定を変更する。 .TP .BI "TCSETSW const struct termios *" argp .\"O Equivalent to .\"O .IR "tcsetattr(fd, TCSADRAIN, argp)" . .I "tcsetattr(fd, TCSADRAIN, argp)" -¤ÈƱ¤¸¡£ +と同じ。 .br .\"O Allow the output buffer to drain, and .\"O set the current serial port settings. -ÇӽР(drain) ¤ò¹Ô¤¦¤¿¤á¤Î½ÐÎϥХåե¡¤Î»ÈÍѤòµö²Ä¤·¡¢ -¸½ºß¤Î¥·¥ê¥¢¥ë¥Ý¡¼¥È¤ÎÀßÄê¤òÊѹ¹¤¹¤ë¡£ +排出 (drain) を行うための出力バッファの使用を許可し、 +現在のシリアルポートの設定を変更する。 .TP .BI "TCSETSF const struct termios *" argp .\"O Equivalent to .\"O .IR "tcsetattr(fd, TCSAFLUSH, argp)" . .I "tcsetattr(fd, TCSAFLUSH, argp)" -¤ÈƱ¤¸¡£ +と同じ。 .br .\"O Allow the output buffer to drain, discard pending input, and .\"O set the current serial port settings. -ÇӽР(drain) ¤ò¹Ô¤¦¤¿¤á¤Î½ÐÎϥХåե¡¤Î»ÈÍѤòµö²Ä¤·¡¢ -½èÍý¤·¤Æ¤¤¤Ê¤¤ÆþÎϤòÇË´þ¤·¤Æ¡¢ -¸½ºß¤Î¥·¥ê¥¢¥ë¥Ý¡¼¥È¤ÎÀßÄê¤òÊѹ¹¤¹¤ë¡£ +排出 (drain) を行うための出力バッファの使用を許可し、 +処理していない入力を破棄して、 +現在のシリアルポートの設定を変更する。 .LP .\"O The following four ioctls are just like .\"O .BR TCGETS , @@ -94,17 +94,17 @@ tty_ioctl \- ü .\"O .I "struct termio *" .\"O instead of a .\"O .IR "struct termios *" . -°Ê²¼¤Î 4 ¤Ä¤Î ioctl ¤Ï +以下の 4 つの ioctl は .BR TCGETS , .BR TCSETS , .BR TCSETSW , .B TCSETSF -¤È»÷¤Æ¤¤¤ë¡£ -¤¿¤À¤·¡¢ +と似ている。 +ただし、 .I "struct termios *" -¤ÎÂå¤ï¤ê¤Ë +の代わりに .I "struct termio *" -¤ò¼è¤ë¡£ +を取る。 .TP .BI "TCGETA struct termio *" argp .TP @@ -114,7 +114,7 @@ tty_ioctl \- ü .TP .BI "TCSETAF const struct termio *" argp .\"O .SS "Locking the termios structure" -.SS "termios ¹½Â¤ÂΤΥí¥Ã¥¯" +.SS "termios 構造体のロック" .\"O The .\"O .I termios .\"O structure of a terminal can be locked. @@ -122,21 +122,21 @@ tty_ioctl \- ü .\"O .I termios .\"O structure, with nonzero bits or fields indicating a .\"O locked value. -üËö¤Î +端末の .I termios -¹½Â¤ÂΤϥí¥Ã¥¯¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£ -¤³¤Î¥í¥Ã¥¯¼«ÂÎ¤Ï +構造体はロックすることが可能である。 +このロック自体は .I termios -¹½Â¤ÂΤǤ¢¤ê¡¢ -0 ¤Ç¤Ê¤¤¥Ó¥Ã¥È¤Þ¤¿¤Ï¥Õ¥£¡¼¥ë¥É¤Ï¥í¥Ã¥¯¤µ¤ì¤¿Ãͤò¼¨¤¹¡£ +構造体であり、 +0 でないビットまたはフィールドはロックされた値を示す。 .TP .BI "TIOCGLCKTRMIOS struct termios *" argp .\"O Gets the locking status of the .\"O .I termios .\"O structure of the terminal. -üËö¤Î +端末の .I termios -¹½Â¤ÂΤΥí¥Ã¥¯¾õÂÖ¤ò¼èÆÀ¤¹¤ë¡£ +構造体のロック状態を取得する。 .TP .BI "TIOCSLCKTRMIOS const struct termios *" argp .\"O Sets the locking status of the @@ -145,39 +145,39 @@ tty_ioctl \- ü .\"O Only root (more precisely: a process with the .\"O .BR CAP_SYS_ADMIN .\"O capability) can do this. -üËö¤Î +端末の .I termios -¹½Â¤ÂΤΥí¥Ã¥¯¾õÂÖ¤òÀßÄꤹ¤ë¡£ -root ¤Î¤ß (¤è¤êÀµ³Î¤Ë¤Ï¡¢ +構造体のロック状態を設定する。 +root のみ (より正確には、 .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹) ¤¬¤³¤ì¤ò¼Â¹Ô¤Ç¤­¤ë¡£ +ケーパビリティを持つプロセス) がこれを実行できる。 .\"O .SS "Get and Set Window Size" -.SS ¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤Î¼èÆÀ¤ÈÀßÄê +.SS ウィンドウサイズの取得と設定 .\"O Window sizes are kept in the kernel, but not used by the kernel .\"O (except in the case of virtual consoles, where the kernel will .\"O update the window size when the size of the virtual console changes, .\"O for example, by loading a new font). -¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤Ï¥«¡¼¥Í¥ëÆâ¤ËÊÝ»ý¤µ¤ì¤ë¤¬¡¢ -¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤Ê¤¤ -(²¾ÁÛ¥³¥ó¥½¡¼¥ë¤Î¾ì¹ç¤ÏÎã³°¤Ç¤¢¤ê¡¢¿·¤·¤¤¥Õ¥©¥ó¥È¤òÆɤ߹þ¤ó¤À¾ì¹ç¤Ê¤É¡¢ -²¾ÁÛüËö¤Î¥µ¥¤¥º¤¬Êѹ¹¤µ¤ì¤¿¾ì¹ç¡¢¥«¡¼¥Í¥ë¤Ï¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤ò¹¹¿·¤¹¤ë)¡£ +ウィンドウサイズはカーネル内に保持されるが、 +カーネルによって使用されない +(仮想コンソールの場合は例外であり、新しいフォントを読み込んだ場合など、 +仮想端末のサイズが変更された場合、カーネルはウィンドウサイズを更新する)。 .\"O The following constants and structure are defined in .\"O .IR . -°Ê²¼¤ÎÄê¿ô¤È¹½Â¤ÂÎ¤Ï +以下の定数と構造体は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で定義されている。 .TP .BI "TIOCGWINSZ struct winsize *" argp .\"O Get window size. -¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤ò¼èÆÀ¤¹¤ë¡£ +ウィンドウサイズを取得する。 .TP .BI "TIOCSWINSZ const struct winsize *" argp .\"O Set window size. -¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤òÀßÄꤹ¤ë¡£ +ウィンドウサイズを設定する。 .LP .\"O The struct used by these ioctls is defined as -¤³¤ì¤é¤Î ioctl ¤Ç»ÈÍѤµ¤ì¤ë¹½Â¤ÂΤϡ¢°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë¡£ +これらの ioctl で使用される構造体は、以下のように定義される。 .in +4n .nf @@ -186,8 +186,8 @@ struct winsize { unsigned short ws_col; .\"O unsigned short ws_xpixel; /* unused */ .\"O unsigned short ws_ypixel; /* unused */ - unsigned short ws_xpixel; /* ̤»ÈÍÑ */ - unsigned short ws_ypixel; /* ̤»ÈÍÑ */ + unsigned short ws_xpixel; /* 未使用 */ + unsigned short ws_ypixel; /* 未使用 */ }; .fi .in @@ -196,18 +196,18 @@ struct winsize { .\"O .B SIGWINCH .\"O signal is sent to the .\"O foreground process group. -¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤¬Êѹ¹¤µ¤ì¤¿¾ì¹ç¡¢ -¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë +ウィンドウサイズが変更された場合、 +フォアグラウンドプロセスグループに .B SIGWINCH -¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£ +シグナルが送られる。 .\"O .SS "Sending a Break" -.SS "break ¤ÎÁ÷¿®" +.SS "break の送信" .TP .BI "TCSBRK int " arg .\"O Equivalent to .\"O .IR "tcsendbreak(fd, arg)" . .I "tcsendbreak(fd, arg)" -¤ÈƱ¤¸¡£ +と同じ。 .br .\"O If the terminal is using asynchronous serial data transmission, and .\"O .I arg @@ -216,17 +216,17 @@ struct winsize { .\"O If the terminal is not using asynchronous .\"O serial data transmission, then either a break is sent, or the function .\"O returns without doing anything. -üËö¤¬ÈóƱ´ü¥·¥ê¥¢¥ë¥Ç¡¼¥¿Å¾Á÷¤ò»ÈÍѤ·¤Æ¤ª¤ê¡¢ +端末が非同期シリアルデータ転送を使用しており、 .I arg -¤¬ 0 ¤Î¾ì¹ç¡¢0.25 ¤«¤é 0.5 ÉÃ¤Î´Ö¤Ë -break (0 ¤Î¥Ó¥Ã¥ÈÎó¤Î¥¹¥È¥ê¡¼¥à) ¤¬Á÷¿®¤µ¤ì¤ë¡£ -üËö¤¬ÈóƱ´ü¥·¥ê¥¢¥ë¥Ç¡¼¥¿Å¾Á÷¤ò»ÈÍѤ·¤Æ¤¤¤ë¾ì¹ç¡¢ -break ¤¬Á÷¿®¤µ¤ì¤ë¤«¡¢¤³¤Î´Ø¿ô¤Ï²¿¤â¤»¤º¤ËÊ֤롣 +が 0 の場合、0.25 から 0.5 秒の間に +break (0 のビット列のストリーム) が送信される。 +端末が非同期シリアルデータ転送を使用している場合、 +break が送信されるか、この関数は何もせずに返る。 .\"O When .\"O .I arg .\"O is nonzero, nobody knows what will happen. .I arg -¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢²¿¤¬µ¯¤³¤ë¤«Ê¬¤«¤é¤Ê¤¤¡£ +が 0 以外の場合、何が起こるか分からない。 .\"O (SVr4, UnixWare, Solaris, Linux treat .\"O .I "tcsendbreak(fd,arg)" @@ -234,37 +234,37 @@ break .\"O .I arg .\"O like .\"O .IR "tcdrain(fd)" . -(SVr4, UnixWare, Solaris, Linux ¤Ï¡¢ +(SVr4, UnixWare, Solaris, Linux は、 .I "tcsendbreak(fd,arg)" -¤Î +の .I arg -¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢ +が 0 以外の場合、 .I "tcdrain(fd)" -¤Î¤è¤¦¤Ë°·¤¦¡£ +のように扱う。 .\"O SunOS treats .\"O .I arg .\"O as a multiplier, and sends a stream of bits .\"O .I arg .\"O times as long as done for zero .\"O .IR arg . -SunOS ¤Ï +SunOS は .I arg -¤òÇÜ¿ô¤È¤·¤Æ°·¤¤¡¢¥Ó¥Ã¥È¤Î¥¹¥È¥ê¡¼¥à¤ò +を倍数として扱い、ビットのストリームを .I arg -²óÁ÷¿®¤¹¤ë¡£ +回送信する。 .I arg -¤¬ 0 ¤Î¾ì¹ç¤âƱ¤¸¡£ +が 0 の場合も同じ。 .\"O DG/UX and AIX treat .\"O .I arg .\"O (when nonzero) as a time interval measured in milliseconds. -DG/UX ¤È AIX ¤Ï¡¢(0 °Ê³°¤Î¾ì¹ç) +DG/UX と AIX は、(0 以外の場合) .I arg -¤ò¥ß¥êÉÃñ°Ì¤Î»þ´Ö´Ö³Ö¤È¤·¤Æ°·¤¦¡£ +をミリ秒単位の時間間隔として扱う。 .\"O HP-UX ignores .\"O .IR arg .) -HP-UX ¤Ï +HP-UX は .I arg -¤ò̵»ë¤¹¤ë¡£) +を無視する。) .TP .BI "TCSBRKP int " arg .\"O So-called "POSIX version" of @@ -273,31 +273,31 @@ HP-UX .\"O .I arg .\"O as a timeinterval measured in deciseconds, and does nothing .\"O when the driver does not support breaks. -¤¤¤ï¤æ¤ë¡ÖPOSIX ÈǡפΠ+いわゆる「POSIX 版」の .B TCSBRK -¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï 0 °Ê³°¤Î +である。 +これは 0 以外の .I arg -¤ò 1/10 ÉÃñ°Ì¤Î»þ´Ö´Ö³Ö¤È¤·¤Æ°·¤¦¡£ -¤Þ¤¿¥É¥é¥¤¥Ð¤¬ break ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢²¿¤â¤·¤Ê¤¤¡£ +を 1/10 秒単位の時間間隔として扱う。 +またドライバが break をサポートしていない場合は、何もしない。 .TP .B "TIOCSBRK void" .\"O Turn break on, that is, start sending zero bits. -break ¤ò¥ª¥ó¤Ë¤¹¤ë¡£ -¤Ä¤Þ¤ê 0 ¤Î¥Ó¥Ã¥ÈÎó¤ÎÁ÷¿®¤ò³«»Ï¤¹¤ë¡£ +break をオンにする。 +つまり 0 のビット列の送信を開始する。 .TP .B "TIOCCBRK void" .\"O Turn break off, that is, stop sending zero bits. -break ¤ò¥ª¥Õ¤Ë¤¹¤ë¡£ -¤Ä¤Þ¤ê 0 ¤Î¥Ó¥Ã¥ÈÎó¤ÎÁ÷¿®¤òÄä»ß¤¹¤ë¡£ +break をオフにする。 +つまり 0 のビット列の送信を停止する。 .\"O .SS "Software flow control" -.SS ¥½¥Õ¥È¥¦¥§¥¢¥Õ¥í¡¼À©¸æ +.SS ソフトウェアフロー制御 .TP .BI "TCXONC int " arg .\"O Equivalent to .\"O .IR "tcflow(fd, arg)" . .I "tcflow(fd, arg)" -¤ÈƱ¤¸¡£ +と同じ。 .br .\"O See .\"O .BR tcflow (3) @@ -307,34 +307,34 @@ break .\"O .BR TCIOFF , .\"O .BR TCION . .BR tcflow (3) -¤Î°ú¤­¿ô +の引き数 .BR TCOOFF , .BR TCOON , .BR TCIOFF , .B TCION -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O .SS "Buffer count and flushing" -.SS "¥Ð¥Ã¥Õ¥¡¤Î¥«¥¦¥ó¥È¤È½ñ¤­½Ð¤· (flush)" +.SS "バッファのカウントと書き出し (flush)" .TP .BI "FIONREAD int *" argp .\"O Get the number of bytes in the input buffer. -ÆþÎϥХåե¡¤Ë¤¢¤ë¥Ð¥¤¥È¿ô¤ò¼èÆÀ¤¹¤ë¡£ +入力バッファにあるバイト数を取得する。 .TP .BI "TIOCINQ int *" argp .\"O Same as .\"O .BR FIONREAD . .B FIONREAD -¤ÈƱ¤¸¡£ +と同じ。 .TP .BI "TIOCOUTQ int *" argp .\"O Get the number of bytes in the output buffer. -½ÐÎϥХåե¡¤Ë¤¢¤ë¥Ð¥¤¥È¿ô¤ò¼èÆÀ¤¹¤ë¡£ +出力バッファにあるバイト数を取得する。 .TP .BI "TCFLSH int " arg .\"O Equivalent to .\"O .IR "tcflush(fd, arg)" . .I "tcflush(fd, arg)" -¤ÈƱ¤¸¡£ +と同じ。 .br .\"O See .\"O .BR tcflush (3) @@ -343,19 +343,19 @@ break .\"O .BR TCOFLUSH , .\"O .BR TCIOFLUSH . .BR tcflush (3) -¤Î°ú¤­¿ô +の引き数 .BR TCIFLUSH , .BR TCOFLUSH , .B TCIOFLUSH -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O .SS "Faking input" -.SS ÆþÎϤε¶Áõ +.SS 入力の偽装 .TP .BI "TIOCSTI const char *" argp .\"O Insert the given byte in the input queue. -»ØÄꤵ¤ì¤¿¥Ð¥¤¥È¤òÆþÎÏ¥­¥å¡¼¤ËÁÞÆþ¤¹¤ë¡£ +指定されたバイトを入力キューに挿入する。 .\"O .SS "Redirecting console output" -.SS ¥³¥ó¥½¡¼¥ë½ÐÎϤΥê¥À¥¤¥ì¥¯¥È +.SS コンソール出力のリダイレクト .TP .B "TIOCCONS void" .\"O Redirect output that would have gone to @@ -365,21 +365,21 @@ break .\"O to the given terminal. .\"O If that was a pseudoterminal master, send it to the slave. .I /dev/console -¤Þ¤¿¤Ï +または .I /dev/tty0 -¤ËÁ÷¤é¤ì¤ë½ÐÎϤò¡¢»ØÄꤵ¤ì¤¿Ã¼Ëö¥ê¥À¥¤¥ì¥¯¥È¤¹¤ë¡£ -»ØÄꤵ¤ì¤¿Ã¼Ëö¤¬µ¿»÷üËö (pseudoterminal) ¤Î¥Þ¥¹¥¿¤Î¾ì¹ç¡¢ -½ÐÎϤϥ¹¥ì¡¼¥Ö¤ËÁ÷¤é¤ì¤ë¡£ +に送られる出力を、指定された端末リダイレクトする。 +指定された端末が疑似端末 (pseudoterminal) のマスタの場合、 +出力はスレーブに送られる。 .\"O In Linux before version 2.6.10, .\"O anybody can do this as long as the output was not redirected yet; .\"O since version 2.6.10, only root (a process with the .\"O .BR CAP_SYS_ADMIN .\"O capability) may do this. -¥Ð¡¼¥¸¥ç¥ó 2.6.10 ¤è¤êÁ°¤Î Linux ¤Ç¤Ï¡¢½ÐÎϤ¬¤Þ¤À¥ê¥À¥¤¥ì¥¯¥È¤µ¤ì¤Æ -¤¤¤Ê¤±¤ì¤Ð¡¢Ã¯¤Ç¤â¥ê¥À¥¤¥ì¥¯¥È¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¥Ð¡¼¥¸¥ç¥ó 2.6.10 °Ê¹ß¤Ç¤Ï¡¢root +バージョン 2.6.10 より前の Linux では、出力がまだリダイレクトされて +いなければ、誰でもリダイレクトを行うことができる。 +バージョン 2.6.10 以降では、root .RB ( CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹) ¤À¤±¤¬¥ê¥À¥¤¥ì¥¯¥È¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +ケーパビリティを持つプロセス) だけがリダイレクトを行うことができる。 .\"O If output was redirected already .\"O .B EBUSY .\"O is returned, @@ -389,21 +389,21 @@ break .\"O .I /dev/console .\"O or .\"O .IR /dev/tty0 . -½ÐÎϤ¬¤¹¤Ç¤Ë¥ê¥À¥¤¥ì¥¯¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï +出力がすでにリダイレクトされている場合は .B EBUSY -¤¬ÊÖ¤µ¤ì¤ë¤¬¡¢ +が返されるが、 .I /dev/console -¤« +か .I /dev/tty0 -¤ò»Ø¤·¤Æ¤¤¤ë +を指している .I fd -¤ËÂФ·¤Æ¤³¤Î ioctl ¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç¡¢¥ê¥À¥¤¥ì¥¯¥È¤ò»ß¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +に対してこの ioctl を使用することで、リダイレクトを止めることができる。 .\"O .SS "Controlling terminal" -.SS "üËö¤ÎÀ©¸æ" +.SS "端末の制御" .TP .BI "TIOCSCTTY int " arg .\"O Make the given terminal the controlling terminal of the calling process. -»ØÄꤵ¤ì¤¿Ã¼Ëö¤ò¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤Ë¤¹¤ë¡£ +指定された端末を呼び出し元のプロセスの制御端末にする。 .\"O The calling process must be a session leader and not have a .\"O controlling terminal already. .\"O If this terminal is already the controlling terminal @@ -415,19 +415,19 @@ break .\"O .I arg .\"O equals 1, in which case the terminal is stolen, and all processes that had .\"O it as controlling terminal lose it. -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ï¥»¥Ã¥·¥ç¥ó¥ê¡¼¥À¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -¤«¤Ä´û¤ËÀ©¸æüËö¤ò»ý¤Ã¤Æ¤¤¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -¤³¤ÎüËö¤¬´û¤Ë¾¤Î¥»¥Ã¥·¥ç¥ó¥°¥ë¡¼¥×¤ÎÀ©¸æüËö¤Ç¤¢¤ë¾ì¹ç¡¢ -ioctl ¤Ï +呼び出し元のプロセスはセッションリーダでなければならず、 +かつ既に制御端末を持っていてはならない。 +この端末が既に他のセッショングループの制御端末である場合、 +ioctl は .B EPERM -¤Ç¼ºÇÔ¤¹¤ë¡£¤¿¤À¤·¸Æ¤Ó½Ð¤·¤¿¥æ¡¼¥¶¤¬ root ¤Ç -(¤è¤êÀµ³Î¤Ë¤Ï +で失敗する。ただし呼び出したユーザが root で +(より正確には .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤Æ)¡¢¤«¤Ä +ケーパビリティを持っていて)、かつ .I arg -¤¬ 1 ¤Ç¤¢¤ë¾ì¹ç¤ò½ü¤¯¡£ -¤³¤Î¾ì¹ç¡¢Ã¼Ëö¤ÏÅð¤Þ¤ì (stolen)¡¢ -¤³¤ÎüËö¤òÀ©¸æüËö¤È¤·¤Æ¤¤¤¿Á´¤Æ¤Î¥×¥í¥»¥¹¤ÏüËö¤ò¼º¤¦¡£ +が 1 である場合を除く。 +この場合、端末は盗まれ (stolen)、 +この端末を制御端末としていた全てのプロセスは端末を失う。 .TP .B TIOCNOTTY void .\"O If the given terminal was the controlling terminal of the calling process, @@ -439,35 +439,35 @@ ioctl .\"O .B SIGCONT .\"O to the foreground process group .\"O and all processes in the current session lose their controlling terminal. -»ØÄꤵ¤ì¤¿Ã¼Ëö¤¬¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤Ç¤¢¤ë¾ì¹ç¡¢ -¤³¤ÎÀ©¸æüËö¤òÊü´þ¤¹¤ë¡£ -¥×¥í¥»¥¹¤¬¥»¥Ã¥·¥ç¥ó¥ê¡¼¥À¤Î¾ì¹ç¡¢ -¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë +指定された端末が呼び出し元のプロセスの制御端末である場合、 +この制御端末を放棄する。 +プロセスがセッションリーダの場合、 +フォアグラウンドプロセスグループに .B SIGHUP -¤È +と .B SIGCONT -¤òÁ÷¤ê¡¢¥«¥ì¥ó¥È¥»¥Ã¥·¥ç¥ó¤ÎÁ´¤Æ¤Î¥×¥í¥»¥¹¤ÏÀ©¸æüËö¤ò¼º¤¦¡£ +を送り、カレントセッションの全てのプロセスは制御端末を失う。 .\"O .SS "Process group and session ID" -.SS "¥°¥ë¡¼¥× ID ¤È¥»¥Ã¥·¥ç¥ó ID ¤Î½èÍý" +.SS "グループ ID とセッション ID の処理" .TP .BI "TIOCGPGRP pid_t *" argp .\"O When successful, equivalent to .\"O .IR "*argp = tcgetpgrp(fd)" . -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .I "*argp = tcgetpgrp(fd)" -¤ÈƱ¤¸¡£ +と同じ。 .br .\"O Get the process group ID of the foreground process group on this terminal. -¤³¤ÎüËö¾å¤Î¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤ò¼èÆÀ¤¹¤ë¡£ +この端末上のフォアグラウンドプロセスのプロセスグループ ID を取得する。 .TP .BI "TIOCSPGRP const pid_t *" argp .\"O Equivalent to .\"O .IR "tcsetpgrp(fd, *argp)" . .I "tcsetpgrp(fd, *argp)" -¤ÈƱ¤¸¡£ +と同じ。 .br .\"O Set the foreground process group ID of this terminal. -¤³¤ÎüËö¤Î¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹¤Î¥°¥ë¡¼¥× ID ¤òÀßÄꤹ¤ë¡£ +この端末のフォアグラウンドプロセスのグループ ID を設定する。 .TP .BI "TIOCGSID pid_t *" argp .\"O Get the session ID of the given terminal. @@ -476,13 +476,13 @@ ioctl .\"O in case the terminal is not a master pseudoterminal .\"O and not our controlling terminal. .\"O Strange. -»ØÄꤵ¤ì¤¿Ã¼Ëö¤Î¥»¥Ã¥·¥ç¥ó ID ¤ò¼èÆÀ¤¹¤ë¡£ -üËö¤¬¥Þ¥¹¥¿µ¿»÷üËö¤Þ¤¿¤ÏÀ©¸æüËö¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢ +指定された端末のセッション ID を取得する。 +端末がマスタ疑似端末または制御端末でない場合は、 .B ENOTTY -¤Ç¼ºÇÔ¤¹¤ë¡£ -´ñ̯¤À¡£ +で失敗する。 +奇妙だ。 .\"O .SS "Exclusive mode" -.SS ÇÓ¾¥â¡¼¥É +.SS 排他モード .TP .B "TIOCEXCL void" .\"O Put the terminal into exclusive mode. @@ -494,41 +494,41 @@ ioctl .\"O except for root, that is, a process with the .\"O .BR CAP_SYS_ADMIN .\"O capability.) -üËö¤òÇÓ¾¥â¡¼¥É¤Ë¤¹¤ë¡£ -üËö¤ËÂФ·¤Æ¡¢¤³¤ì°Ê¹ß¤Î +端末を排他モードにする。 +端末に対して、これ以降の .BR open (2) -Áàºî¤ò¶Ø»ß¤¹¤ë¡£ -(root °Ê³°¤Î¾ì¹ç¡¢¤Ä¤Þ¤ê +操作を禁止する。 +(root 以外の場合、つまり .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤¥×¥í¥»¥¹¤Î¾ì¹ç¡¢¤³¤ì°Ê¹ß¤Î +ケーパビリティを持たないプロセスの場合、これ以降の .BR open (2) -¤Ï +は .B EBUSY -¤Ç¼ºÇÔ¤¹¤ë¡£) +で失敗する。) .TP .B "TIOCNXCL void" .\"O Disable exclusive mode. -ÇÓ¾¥â¡¼¥É¤ò̵¸ú¤Ë¤¹¤ë¡£ +排他モードを無効にする。 .\"O .SS "Line discipline" -.SS "¥é¥¤¥óÀ©¸æ (line discipline)" +.SS "ライン制御 (line discipline)" .TP .BI "TIOCGETD int *" argp .\"O Get the line discipline of the terminal. -üËö¤Î¥é¥¤¥óÀ©¸æ¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë¡£ +端末のライン制御の情報を取得する。 .TP .BI "TIOCSETD const int *" argp .\"O Set the line discipline of the terminal. -üËö¤Î¥é¥¤¥óÀ©¸æ¤Î¾ðÊó¤òÀßÄꤹ¤ë¡£ +端末のライン制御の情報を設定する。 .\"O .SS "Pseudoterminal ioctls" -.SS "µ¿»÷üËö¤Î ioctl" +.SS "疑似端末の ioctl" .TP .BI "TIOCPKT const int *" argp .\"O Enable (when .\"O .RI * argp .\"O is nonzero) or disable packet mode. -¥Ñ¥±¥Ã¥È¥â¡¼¥É¤òÍ­¸ú +パケットモードを有効 .RI (* argp -¤¬ 0 °Ê³°¤Î¾ì¹ç) ¤Þ¤¿¤Ï̵¸ú¤Ë¤¹¤ë¡£ +が 0 以外の場合) または無効にする。 .\"O Can be applied to the master side of a pseudoterminal only (and will return .\"O .B ENOTTY .\"O otherwise). @@ -541,31 +541,31 @@ ioctl .\"O .B TIOCPKT_DATA .\"O (0), it is an OR of one .\"O or more of the following bits: -µ¿»÷üËö¤Î¥Þ¥¹¥¿Â¦¤Ë¤Î¤ßŬÍѤǤ­¤ë (¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï +疑似端末のマスタ側にのみ適用できる (それ以外の場合は .B ENOTTY -¤òÊÖ¤¹)¡£ -¥Ñ¥±¥Ã¥È¥â¡¼¥É¤Ç¤Ï¡¢¤½¤Î¸å¤Ë¼Â¹Ô¤µ¤ì¤ë +を返す)。 +パケットモードでは、その後に実行される .BR read (2) -¤Ï¡¢Ãͤ¬ 0 °Ê³°¤Î 1 ¤Ä¤ÎÀ©¸æ¥Ð¥¤¥È¤ò´Þ¤à¥Ñ¥±¥Ã¥È¤«¡¢ -Ãͤ¬ 0 ¤Î 1 ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Ëµ¿»÷üËö¤Î¥¹¥ì¡¼¥Ö¦¤Ç½ñ¤­¹þ¤Þ¤ì¤¿ -¥Ç¡¼¥¿¤¬Â³¤¯¥Ñ¥±¥Ã¥È¤òÊÖ¤¹¡£ -ºÇ½é¤Î¥Ð¥¤¥È¤¬ +は、値が 0 以外の 1 つの制御バイトを含むパケットか、 +値が 0 の 1 バイト (\(aq\\0\(aq) に疑似端末のスレーブ側で書き込まれた +データが続くパケットを返す。 +最初のバイトが .B TIOCPKT_DATA -(0) ¤Ç¤Ê¤¤¾ì¹ç¡¢°Ê²¼¤Î¥Ó¥Ã¥È¤Î 1 ¤Ä°Ê¾å¤ò OR ¤·¤¿¤â¤Î¤Ç¤¢¤ë: +(0) でない場合、以下のビットの 1 つ以上を OR したものである: .nf .\"O TIOCPKT_FLUSHREAD The read queue for the terminal is flushed. -TIOCPKT_FLUSHREAD üËö¤ÎÆɤ߹þ¤ß¥­¥å¡¼¤¬¥Õ¥é¥Ã¥·¥å (flush) ¤µ¤ì¤ë¡£ +TIOCPKT_FLUSHREAD 端末の読み込みキューがフラッシュ (flush) される。 .\"O TIOCPKT_FLUSHWRITE The write queue for the terminal is flushed. -TIOCPKT_FLUSHWRITE üËö¤Î½ñ¤­½Ð¤·¥­¥å¡¼¤¬¥Õ¥é¥Ã¥·¥å¤µ¤ì¤ë¡£ +TIOCPKT_FLUSHWRITE 端末の書き出しキューがフラッシュされる。 .\"O TIOCPKT_STOP Output to the terminal is stopped. -TIOCPKT_STOP üËö¤Ø¤Î½ÐÎϤ¬Ää»ß¤µ¤ì¤ë¡£ +TIOCPKT_STOP 端末への出力が停止される。 .\"O TIOCPKT_START Output to the terminal is restarted. -TIOCPKT_START üËö¤Ø¤Î½ÐÎϤ¬ºÆ³«¤µ¤ì¤ë¡£ +TIOCPKT_START 端末への出力が再開される。 .\"O TIOCPKT_DOSTOP The start and stop characters are \fB^S\fP/\fB^Q\fP. .\"O TIOCPKT_NOSTOP The start and stop characters are not \fB^S\fP/\fB^Q\fP. -TIOCPKT_DOSTOP ³«»Ïʸ»ú¤È½ªÎ»Ê¸»ú¤¬ \fB^S\fP/\fB^Q\fP ¤Ç¤¢¤ë¡£ -TIOCPKT_NOSTOP ³«»Ïʸ»ú¤È½ªÎ»Ê¸»ú¤¬ \fB^S\fP/\fB^Q\fP ¤Ç¤Ê¤¤¡£ +TIOCPKT_DOSTOP 開始文字と終了文字が \fB^S\fP/\fB^Q\fP である。 +TIOCPKT_NOSTOP 開始文字と終了文字が \fB^S\fP/\fB^Q\fP でない。 .fi .\"O While this mode is in use, the presence @@ -573,11 +573,11 @@ TIOCPKT_NOSTOP .\"O from the master side may be detected by a .\"O .BR select (2) .\"O for exceptional conditions. -¤³¤Î¥â¡¼¥É¤¬»È¤ï¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -À©¸æ¾õÂÖ¾ðÊó¤Î¸ºß¤¬¥Þ¥¹¥¿Â¦¤«¤éÆɤ߹þ¤á¤ë¤«¤Ï¡¢ -Î㳰Ū¤Ê¾ò·ï¤Ç +このモードが使われている場合、 +制御状態情報の存在がマスタ側から読み込めるかは、 +例外的な条件で .BR select (2) -¤ò»È¤¦¤³¤È¤Ë¤è¤êÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ +を使うことにより知ることができる。 .\"O This mode is used by .\"O .BR rlogin (1) @@ -585,12 +585,12 @@ TIOCPKT_NOSTOP .\"O .BR rlogind (8) .\"O to implement a remote-echoed, .\"O locally \fB^S\fP/\fB^Q\fP flow-controlled remote login. -¤³¤Î¥â¡¼¥É¤Ï +このモードは .BR rlogin (1) -¤È +と .BR rlogind (8) -¤Ç»È¤ï¤ì¡¢¥ê¥â¡¼¥È¥¨¥³¡¼¤Î¥ê¥â¡¼¥È¥í¥°¥¤¥ó¤È -¥í¡¼¥«¥ë¤Ç¤Î \fB^S\fP/\fB^Q\fP ¥Õ¥í¡¼À©¸æ¤Î¥ê¥â¡¼¥È¥í¥°¥¤¥ó¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¡£ +で使われ、リモートエコーのリモートログインと +ローカルでの \fB^S\fP/\fB^Q\fP フロー制御のリモートログインを実装している。 .\"O The BSD ioctls .\"O .BR TIOCSTOP , @@ -598,33 +598,33 @@ TIOCPKT_NOSTOP .\"O .BR TIOCUCNTL , .\"O .B TIOCREMOTE .\"O have not been implemented under Linux. -BSD ¤Î ioctl ¤Ç¤¢¤ë +BSD の ioctl である .BR TIOCSTOP , .BR TIOCSTART , .BR TIOCUCNTL , .B TIOCREMOTE -¤Ï¡¢Linux ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +は、Linux では実装されていない。 .\"O .SS "Modem control" -.SS ¥â¥Ç¥àÀ©¸æ +.SS モデム制御 .TP .BI "TIOCMGET int *" argp .\"O get the status of modem bits. -¥â¥Ç¥à¥Ó¥Ã¥ÈÎó¤Î¾õÂÖ¤ò¼èÆÀ¤¹¤ë¡£ +モデムビット列の状態を取得する。 .TP .BI "TIOCMSET const int *" argp .\"O set the status of modem bits. -¥â¥Ç¥à¥Ó¥Ã¥ÈÎó¤Î¾õÂÖ¤òÀßÄꤹ¤ë¡£ +モデムビット列の状態を設定する。 .TP .BI "TIOCMBIC const int *" argp .\"O clear the indicated modem bits. -»ØÄꤵ¤ì¤¿¥â¥Ç¥à¥Ó¥Ã¥ÈÎó¤ò¥¯¥ê¥¢¤¹¤ë¡£ +指定されたモデムビット列をクリアする。 .TP .BI "TIOCMBIS const int *" argp .\"O set the indicated modem bits. -»ØÄꤵ¤ì¤¿¥â¥Ç¥à¥Ó¥Ã¥ÈÎó¤òÀßÄꤹ¤ë¡£ +指定されたモデムビット列を設定する。 .LP .\"O Bits used by these four ioctls: -¤³¤ì¤é¤Î 4 ¤Ä¤Î ioctl ¤Ç»È¤ï¤ì¤ë¥Ó¥Ã¥È¤Ï°Ê²¼¤ÎÄ̤ê: +これらの 4 つの ioctl で使われるビットは以下の通り: .nf TIOCM_LE DSR (data set ready/line enable) @@ -635,25 +635,25 @@ TIOCM_SR Secondary RXD (receive) TIOCM_CTS CTS (clear to send) TIOCM_CAR DCD (data carrier detect) .\"O TIOCM_CD see TIOCM_CAR -TIOCM_CD TIOCM_CAR ¤ò»²¾È¡£ +TIOCM_CD TIOCM_CAR を参照。 TIOCM_RNG RNG (ring) .\"O TIOCM_RI see TIOCM_RNG -TIOCM_RI TIOCM_RNG ¤ò»²¾È¡£ +TIOCM_RI TIOCM_RNG を参照。 TIOCM_DSR DSR (data set ready) .fi .\"O .SS "Marking a line as local" -.SS "²óÀþ¤ò¥í¡¼¥«¥ë¤È¤·¤Æ¥Þ¡¼¥¯¤¹¤ë" +.SS "回線をローカルとしてマークする" .TP .BI "TIOCGSOFTCAR int *" argp .\"O ("Get software carrier flag") .\"O Get the status of the CLOCAL flag in the c_cflag field of the .\"O .I termios .\"O structure. -("¥½¥Õ¥È¥¦¥§¥¢¥­¥ã¥ê¥¢¥Õ¥é¥°¤Î¼èÆÀ") +("ソフトウェアキャリアフラグの取得") .I termios -¹½Â¤ÂΤΠc_cflag ¥Õ¥£¡¼¥ë¥É¤Î +構造体の c_cflag フィールドの .B CLOCAL -¥Õ¥é¥°¤Î¾õÂÖ¤ò¼èÆÀ¤¹¤ë¡£ +フラグの状態を取得する。 .TP .BI "TIOCSSOFTCAR const int *" argp .\"O ("Set software carrier flag") @@ -662,14 +662,14 @@ TIOCM_DSR DSR (data set ready) .\"O structure when .\"O .RI * argp .\"O is nonzero, and clear it otherwise. -("¥½¥Õ¥È¥¦¥§¥¢¥­¥ã¥ê¥¢¥Õ¥é¥°¤ÎÀßÄê") +("ソフトウェアキャリアフラグの設定") .RI * argp -¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢ +が 0 以外の場合、 .I termios -¹½Â¤ÂΤΠ+構造体の .B CLOCAL -¥Õ¥é¥°¤òÀßÄꤹ¤ë¡£ -0 ¤Î¾ì¹ç¤Ï¥¯¥ê¥¢¤¹¤ë¡£ +フラグを設定する。 +0 の場合はクリアする。 .LP .\"O If the .\"O .B CLOCAL @@ -680,36 +680,36 @@ TIOCM_DSR DSR (data set ready) .\"O unless the .\"O .B O_NONBLOCK .\"O flag is given. -¥é¥¤¥ó¤Î +ラインの .B CLOCAL -¥Õ¥é¥°¤¬¥ª¥Õ¤Î¾ì¹ç¡¢ -¥Ï¡¼¥É¥¦¥§¥¢¥­¥ã¥ê¥¢¸¡½Ð (hardware carrier detect, DCD) ¥·¥°¥Ê¥ë¤¬½ÅÍפǤ¢¤ê¡¢ +フラグがオフの場合、 +ハードウェアキャリア検出 (hardware carrier detect, DCD) シグナルが重要であり、 .B O_NONBLOCK -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Ê¤¤¸Â¤ê¡¢Âбþ¤¹¤ëüËö¤Î +フラグが指定されない限り、対応する端末の .BR open (2) -¤Ï DCD ¤¬¼¨¤µ¤ì¤ë¤Þ¤Ç¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¡£ +は DCD が示されるまでブロックされる。 .\"O If .\"O .B CLOCAL .\"O is set, the line behaves as if DCD is always asserted. .B CLOCAL -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¥é¥¤¥ó¤Ï¾ï¤Ë DCD ¤¬¼¨¤µ¤ì¤Æ¤¤¤ë¤«¤Î¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +が設定されている場合、 +ラインは常に DCD が示されているかのように動作する。 .\"O The software carrier flag is usually turned on for local devices, .\"O and is off for lines with modems. -¥½¥Õ¥È¥¦¥§¥¢¥­¥ã¥ê¥¢¥Õ¥é¥°¤Ï¡¢¥í¡¼¥«¥ë¥Ç¥Ð¥¤¥¹¤Ç¤ÏÄ̾ï¤Ï¥ª¥ó¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢ -¥â¥Ç¥à¤Î¥é¥¤¥ó¤Ç¤Ï¥ª¥Õ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +ソフトウェアキャリアフラグは、ローカルデバイスでは通常はオンになっており、 +モデムのラインではオフになっている。 .\"O .SS "Linux-specific" -.SS "Linux ¸ÇÍ­¤Î ioctl" +.SS "Linux 固有の ioctl" .\"O For the .\"O .B TIOCLINUX .\"O ioctl, see .\"O .BR console_ioctl (4). .B TIOCLINUX -ioctl ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +ioctl については、 .BR console_ioctl (4) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O .SS "Kernel debugging" -.SS ¥«¡¼¥Í¥ë¥Ç¥Ð¥Ã¥®¥ó¥° +.SS カーネルデバッギング .B "#include " .TP .BI "TIOCTTYGSTRUCT struct tty_struct *" argp @@ -718,23 +718,23 @@ ioctl .\"O corresponding to .\"O .IR fd . .I fd -¤ËÂбþ¤¹¤ë +に対応する .I tty_struct -¤ò¼èÆÀ¤¹¤ë¡£ +を取得する。 .\"O .\" .SS "Serial info" -.\" .SS "¥·¥ê¥¢¥ë¾ðÊó" +.\" .SS "シリアル情報" .\" .BR "#include " .\" .sp .\" .TP .\" .BI "TIOCGSERIAL struct serial_struct *" argp .\"O .\" Get serial info. -.\" ¥·¥ê¥¢¥ë¾ðÊó¤ò¼èÆÀ¤¹¤ë¡£ +.\" シリアル情報を取得する。 .\" .TP .\" .BI "TIOCSSERIAL const struct serial_struct *" argp .\"O .\" Set serial info. -.\" ¥·¥ê¥¢¥ë¾ðÊó¤òÀßÄꤹ¤ë¡£ +.\" シリアル情報を設定する。 .\"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The .\"O .BR ioctl (2) .\"O system call returns 0 on success. @@ -742,34 +742,34 @@ ioctl .\"O .I errno .\"O appropriately. .BR ioctl (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +システムコールは、成功した場合は 0 を返す。 +エラーの場合は \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .\"O Invalid command parameter. -ÉÔÀµ¤Ê¥³¥Þ¥ó¥É°ú¤­¿ô¤Ç¤¢¤ë¡£ +不正なコマンド引き数である。 .TP .B ENOIOCTLCMD .\"O Unknown command. -ÉÔÌÀ¤Ê¥³¥Þ¥ó¥É¤Ç¤¢¤ë¡£ +不明なコマンドである。 .TP .B ENOTTY .\"O Inappropriate .\"O .IR fd . .I fd -¤¬ÉÔŬÀڤǤ¢¤ë¡£ +が不適切である。 .TP .B EPERM .\"O Insufficient permission. -¸¢¸Â¤¬ÉÔ­¤·¤Æ¤¤¤ë¡£ +権限が不足している。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O Check the condition of DTR on the serial port. -¥·¥ê¥¢¥ë¥Ý¡¼¥È¤Î DTR ¤Î¾õÂÖ¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ +シリアルポートの DTR の状態をチェックする。 .nf #include @@ -785,15 +785,15 @@ main(void) ioctl(fd, TIOCMGET, &serial); if (serial & TIOCM_DTR) .\"O puts("TIOCM_DTR is not set"); - puts("TIOCM_DTR ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£"); + puts("TIOCM_DTR が設定されていない。"); else .\"O puts("TIOCM_DTR is set"); - puts("TIOCM_DTR ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¡£"); + puts("TIOCM_DTR が設定されている。"); close(fd); } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ioctl (2), .BR termios (3), .BR console_ioctl (4), @@ -804,7 +804,7 @@ main(void) .\" FIOCLEX void .\" FIOASYNC const int * .\"O .\" from serial.c: -.\" serial.c ¤è¤ê: +.\" serial.c より: .\" TIOCSERCONFIG void .\" TIOCSERGWILD int * .\" TIOCSERSWILD const int * @@ -813,4 +813,4 @@ main(void) .\" TIOCSERGETMULTI struct serial_multiport_struct * .\" TIOCSERSETMULTI const struct serial_multiport_struct * .\"O .\" TIOCGSERIAL, TIOCSSERIAL (see above) -.\" TIOCGSERIAL, TIOCSSERIAL (¾åµ­¤ò»²¾È) +.\" TIOCGSERIAL, TIOCSSERIAL (上記を参照) diff --git a/draft/man4/vcs.4 b/draft/man4/vcs.4 index 4f4779e4..c777919f 100644 --- a/draft/man4/vcs.4 +++ b/draft/man4/vcs.4 @@ -36,30 +36,30 @@ .\" by Yuichi SATO .\" Updated 2008-02-12, Akihiro MOTOKI , LDP v2.77 .\" -.\" WORD: virtual console ²¾ÁÛ¥³¥ó¥½¡¼¥ë -.\" WORD: memory ¥á¥â¥ê -.\" WORD: permission ¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó -.\" WORD: prefix ¥×¥ì¥Õ¥£¥Ã¥¯¥¹ -.\" WORD: screen ¥¹¥¯¥ê¡¼¥ó -.\" WORD: cursor ¥«¡¼¥½¥ë -.\" WORD: Braille ¥Ö¥é¥¤¥æÅÀ»ú +.\" WORD: virtual console 仮想コンソール +.\" WORD: memory メモリ +.\" WORD: permission パーミッション +.\" WORD: prefix プレフィックス +.\" WORD: screen スクリーン +.\" WORD: cursor カーソル +.\" WORD: Braille ブライユ点字 .\" .TH VCS 4 2007-12-17 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O vcs, vcsa \- virtual console memory -vcs, vcsa \- ²¾ÁÛ¥³¥ó¥½¡¼¥ë¥á¥â¥ê (virtual console memory) +vcs, vcsa \- 仮想コンソールメモリ (virtual console memory) .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O \fI/dev/vcs0\fP is a character device with major number 7 and minor number .\"O 0, usually of mode 0644 and owner root.tty. .\"O It refers to the memory of the currently .\"O displayed virtual console terminal. -\fI/dev/vcs0\fP ¤Ï¥á¥¸¥ã¡¼¥Ê¥ó¥Ð¡¼ (major number) 7¡¢¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼ -(minor number) 0 ¤Î¥­¥ã¥é¥¯¥¿¡¼¥Ç¥Ð¥¤¥¹ (character device) ¤Ç¡¢ -Ä̾¤½¤Î¥â¡¼¥É¤Ï 0644¡¢¥ª¡¼¥Ê¤Ï root.tty ¤Ç¤¢¤ë¡£ -¤³¤Î¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë (device file) ¤Ï -¸½ºßɽ¼¨¤µ¤ì¤Æ¤¤¤ë²¾ÁÛ¥³¥ó¥½¡¼¥ëüËö¤Î¥á¥â¥ê¤ò»²¾È¤¹¤ë¡£ +\fI/dev/vcs0\fP はメジャーナンバー (major number) 7、マイナーナンバー +(minor number) 0 のキャラクターデバイス (character device) で、 +通常、そのモードは 0644、オーナは root.tty である。 +このデバイスファイル (device file) は +現在表示されている仮想コンソール端末のメモリを参照する。 .LP .\"O \fI/dev/vcs[1\-63]\fP are character devices for virtual console .\"O terminals, they have major number 7 and minor number 1 to 63, usually @@ -71,16 +71,16 @@ vcs, vcsa \- .\"O and prefixed with four bytes giving the screen .\"O dimensions and cursor position: \fIlines\fP, \fIcolumns\fP, \fIx\fP, \fIy\fP. .\"O (\fIx\fP = \fIy\fP = 0 at the top left corner of the screen.) -\fB/dev/vcs[1\-63]\fP ¤Ï²¾ÁÛ¥³¥ó¥½¡¼¥ëüËö¤Î¤¿¤á¤Î -¥­¥ã¥é¥¯¥¿¡¼¥Ç¥Ð¥¤¥¹¤Ç¡¢¥á¥¸¥ã¡¼¥Ê¥ó¥Ð¡¼¤¬ 7¡¢¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼¤¬ 1 ¤«¤é 63¡¢ -Ä̾ï¤Ï¥â¡¼¥É¤¬ 0644¡¢¥ª¡¼¥Ê¡¼¤¬ root.tty ¤Ç¤¢¤ë¡£ -\fB/dev/vcsa[0\-63]\fP ¤Ï \fB/dev/vcs[1\-63]\fP ¤ÈƱÍͤǤ¢¤ë¤¬¡¢ -°À­¤ò³ÊǼ¤¹¤ë¤Î¤Ë (¥Û¥¹¥È¥Ð¥¤¥È¥ª¡¼¥À¤Î) +\fB/dev/vcs[1\-63]\fP は仮想コンソール端末のための +キャラクターデバイスで、メジャーナンバーが 7、マイナーナンバーが 1 から 63、 +通常はモードが 0644、オーナーが root.tty である。 +\fB/dev/vcsa[0\-63]\fP は \fB/dev/vcs[1\-63]\fP と同様であるが、 +属性を格納するのに (ホストバイトオーダの) .I "unsigned short" -¤ò»ÈÍѤ·¤Æ¤¤¤ëÅÀ¡¢¥¹¥¯¥ê¡¼¥ó¤Î¥µ¥¤¥º¡¦¥«¡¼¥½¥ë¤Î°ÌÃÖ¤òɽ¤¹ -4 ¥Ð¥¤¥È¤Î¾ðÊó +を使用している点、スクリーンのサイズ・カーソルの位置を表す +4 バイトの情報 \fIlines\fP, \fIcolumns\fP, \fIx\fP, \fIy\fP -(\fIx\fP =\fIy\fP = 0 ¤¬²èÌ̤κ¸¾å) ¤¬ÀèƬ¤Ë¤¢¤ëÅÀ¤¬°Û¤Ê¤ë¡£ +(\fIx\fP =\fIy\fP = 0 が画面の左上) が先頭にある点が異なる。 .\"O When a 512-character font is loaded, .\"O the 9th bit position can be fetched by applying the @@ -93,17 +93,17 @@ vcs, vcsa \- .\"O pointed to by the third .\"O .BR ioctl (2) .\"O argument. -512 ʸ»ú¤«¤éÀ®¤ë¥Õ¥©¥ó¥È¤ò¥í¡¼¥É¤·¤¿¾ì¹ç¡¢ -9 ¥Ó¥Ã¥ÈÌܤξðÊó¤Ï \fI/dev/tty[1\-63]\fP ¤ËÂФ·¤Æ +512 文字から成るフォントをロードした場合、 +9 ビット目の情報は \fI/dev/tty[1\-63]\fP に対して .BR ioctl (2) -\fBVT_GETHIFONTMASK\fP Áàºî¤ò¹Ô¤¦¤³¤È¤Ç¼èÆÀ¤Ç¤­¤ë -(\fBVT_GETHIFONTMASK\fP Áàºî¤Ï¥«¡¼¥Í¥ë 2.6.18 °Ê¹ß¤Î Linux ¤Ç -ÍøÍѲÄǽ¤Ç¤¢¤ë)¡£ -ÃÍ¤Ï +\fBVT_GETHIFONTMASK\fP 操作を行うことで取得できる +(\fBVT_GETHIFONTMASK\fP 操作はカーネル 2.6.18 以降の Linux で +利用可能である)。 +値は .BR ioctl (2) -¤Î 3 ÈÖÌܤΰú¤­¿ô¤¬»Ø¤¹ +の 3 番目の引き数が指す .I "unsigned short" -¤Ë³ÊǼ¤µ¤ì¤ÆÊÖ¤µ¤ì¤ë¡£ +に格納されて返される。 .PP .\"O These devices replace the screendump .\"O .BR ioctl (2) @@ -111,16 +111,16 @@ vcs, vcsa \- .\"O .BR console (4), .\"O so the system .\"O administrator can control access using file system permissions. -¤³¤ì¤é¤Î¥Ç¥Ð¥¤¥¹¤Ï +これらのデバイスは .BR console (4) -¤Î screendump +の screendump .BR ioctl (2) -¤òÂåÂؤȤʤ롣 -½¾¤Ã¤Æ¡¢¥·¥¹¥Æ¥à´ÉÍý¼Ô¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó -(filesystem permission) ¤ò»È¤Ã¤Æ¥¢¥¯¥»¥¹¤ò¥³¥ó¥È¥í¡¼¥ë¤Ç¤­¤ë¡£ +を代替となる。 +従って、システム管理者はファイルシステムパーミッション +(filesystem permission) を使ってアクセスをコントロールできる。 .PP .\"O The devices for the first eight virtual consoles may be created by: -ºÇ½é¤Î 8 ¤Ä¤Î²¾ÁÛüËö¤Î¤¿¤á¤Î¥Ç¥Ð¥¤¥¹¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤·¤Æºî¤ë»ö¤¬¤Ç¤­¤ë: +最初の 8 つの仮想端末のためのデバイスは、次のようにして作る事ができる: .nf for x in 0 1 2 3 4 5 6 7 8; do @@ -134,44 +134,44 @@ vcs, vcsa \- .\"O .BR ioctl (2) .\"O requests are supported. .BR ioctl (2) -¤Ë¤è¤ëÍ×µá¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Ê¤¤¡£ +による要求はサポートされない。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル /dev/vcs[0\-63] .br /dev/vcsa[0\-63] .\"O .\" .SH AUTHOR -.\" .SH Ãø¼Ô +.\" .SH 著者 .\" Andries Brouwer .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O Introduced with version 1.1.92 of the Linux kernel. -Linux ¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó 1.1.92 ¤ÇƳÆþ¤µ¤ì¤¿¡£ +Linux カーネルバージョン 1.1.92 で導入された。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O You may do a screendump on vt3 by switching to vt1 and typing .\"O \fIcat /dev/vcs3 >foo\fP. .\"O Note that the output does not contain .\"O newline characters, so some processing may be required, like .\"O in \fIfold \-w 81 /dev/vcs3 | lpr\fP or (horrors) .\"O \fIsetterm \-dump 3 \-file /proc/self/fd/1\fP. -vt3 ¤Î¥¹¥¯¥ê¡¼¥ó¥À¥ó¥×¤ò¼Â¹Ô¤¹¤ë¤Ë¤Ï¡¢Ã¼Ëö¤ò vt1 ¤ËÀÚÂؤ¨¤Æ -\fIcat /dev/vcs3 >foo\fP ¤È¥¿¥¤¥×¤¹¤ì¤Ð¤è¤¤¡£ -µ¤¤òÉÕ¤±¤ÆÍߤ·¤¤¤Î¤Ï¡¢¤³¤Î½ÐÎϤϲþ¹Ôʸ»ú (newline character) ¤ò -´Þ¤ó¤Ç¤¤¤Ê¤¤¤È¤¤¤¦»ö¤Ç¤¢¤ë¡£ -½¾¤Ã¤Æ¡¢\fIfold \-w 81 /dev/vcs3 | lpr\fP ¤ä -(¤¾¤Ã¤È¤¹¤ë¤¬) \fIsetterm \-dump 3 \-file /proc/self/fd/1\fP ¤Î¤è¤¦¤Ê -²¿¤é¤«¤Î½èÍý¤¬É¬Íפˤʤ뤫¤â¤·¤ì¤Ê¤¤¡£ +vt3 のスクリーンダンプを実行するには、端末を vt1 に切替えて +\fIcat /dev/vcs3 >foo\fP とタイプすればよい。 +気を付けて欲しいのは、この出力は改行文字 (newline character) を +含んでいないという事である。 +従って、\fIfold \-w 81 /dev/vcs3 | lpr\fP や +(ぞっとするが) \fIsetterm \-dump 3 \-file /proc/self/fd/1\fP のような +何らかの処理が必要になるかもしれない。 .LP .\"O The \fI/dev/vcsa0\fP device is used for Braille support. -\fI/dev/vcsa0\fP ¥Ç¥Ð¥¤¥¹¤ò»È¤¦¤³¤È¤Ç¡¢ -¥Ö¥é¥¤¥æÅÀ»ú¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +\fI/dev/vcsa0\fP デバイスを使うことで、 +ブライユ点字をサポートすることができる。 .\"O This program displays the character and screen attributes under the .\"O cursor of the second virtual console, then changes the background color .\"O there: -°Ê²¼¤Î¥×¥í¥°¥é¥à¤ÏÆó¤ÄÌܤβ¾ÁÛ¥³¥ó¥½¡¼¥ë¤Î¥«¡¼¥½¥ë°ÌÃ֤Υ¹¥¯¥ê¡¼¥ó°À­¤Èʸ»ú -¤òɽ¼¨¤·¤¿¸å¡¢¥«¡¼¥½¥ë°ÌÃÖ¤ÎÇØ·Ê¿§¤òÊѹ¹¤¹¤ë : +以下のプログラムは二つ目の仮想コンソールのカーソル位置のスクリーン属性と文字 +を表示した後、カーソル位置の背景色を変更する : .nf #include @@ -222,7 +222,7 @@ main(void) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR console (4), .BR tty (4), .BR ttyS (4), diff --git a/draft/man4/wavelan.4 b/draft/man4/wavelan.4 index 4869786e..ba14e1be 100644 --- a/draft/man4/wavelan.4 +++ b/draft/man4/wavelan.4 @@ -16,18 +16,18 @@ .\" Japanese Version Last Modified Tue Feb 10 15:21:08 JST 1998 .\" by ISHIKAWA Mutsumi .\" -.\" WORD: wireless ethernet ¥ï¥¤¥¢¥ì¥¹¥¤¡¼¥µ¥Í¥Ã¥È +.\" WORD: wireless ethernet ワイアレスイーサネット .\" .TH WAVELAN 4 1996-10-22 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O wavelan \- AT&T GIS WaveLAN ISA device driver -.SH ̾Á° -wavelan \- AT&T GIS WaveLAN ISA ¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð +.SH 名前 +wavelan \- AT&T GIS WaveLAN ISA デバイスドライバ .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .BI "insmod wavelan_cs.o [io=" B,B.. "] [ irq=" I,I.. "] [name=" N,N.. ] .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .I wavelan .\"O is the low-level device driver for the NCR / AT&T / Lucent .\"O .B WaveLAN ISA @@ -44,33 +44,33 @@ wavelan \- AT&T GIS WaveLAN ISA .\"O in the kernel log file with the MAC address, NWID and frequency used .\"O by the card. .I wavelan -¤Ï¡¢NCR / AT&T / Lucent ¤Î +は、NCR / AT&T / Lucent の .B WaveLan ISA -¤È Digital(DEC) ¤Î +と Digital(DEC) の .B RoamAbout DS -¤È¤¤¤¦¥ï¥¤¥¢¥ì¥¹¡¦¥¤¡¼¥µ¥Í¥Ã¥È (wireless ethernet) ¥¢¥À¥×¥¿¤Î¤¿¤á¤Î -¥í¡¼¥ì¥Ù¥ë¡¦¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ç¤¢¤ë¡£¤³¤Î¥É¥é¥¤¥Ð¤Ï¥â¥¸¥å¡¼¥ë¤È¤·¤Æ¤â¡¢¤Þ¤¿¡¢ -¥«¡¼¥Í¥ë¤ËÁȤ߹þ¤ó¤À·Á¤Ç¤âÍøÍѤǤ­¤ë¡£¤Þ¤¿¡¢¤É¤Á¤é¤Î¾ì¹ç¤Ç¤â¡¢Ê£¿ô¥«¡¼¥É -(ºÇÂç 4 Ëç¤Þ¤Ç) ¤ò¥µ¥Ý¡¼¥È¤·¡¢ÌÀ¼¨Åª¤Ë¥Ç¥Ð¥¤¥¹¤Î̾Á°¤ò»ØÄꤷ¤Ê¤¤¸Â¤ê -(¤³¤ì¤Ë´Ø¤·¤Æ¤Ï¡¢²¼¤ò¸«¤è)¡¢È¯¸«¤µ¤ì¤¿¤½¤ì¤¾¤ì¤Î¥«¡¼¥É¤Ë¤Ï¡¢ÍøÍѲÄǽ¤Ê -¼¡¤Î¥¤¡¼¥µ¥Í¥Ã¥È¥Ç¥Ð¥¤¥¹(eth0..eth#)¤¬³ä¤êÅö¤Æ¤é¤ì¤ë¡£¤³¤Î¥Ç¥Ð¥¤¥¹Ì¾¤Ï -MAC ¥¢¥É¥ì¥¹¡¢NWID¡¢¥«¡¼¥É¤Ë¤è¤Ã¤ÆÍøÍѤµ¤ì¤ë¼þÇÈ¿ô¤È¤È¤â¤Ë -¥«¡¼¥Í¥ë¥í¥°¥Õ¥¡¥¤¥ë¤ËÊó¹ð¤µ¤ì¤ë¡£ +というワイアレス・イーサネット (wireless ethernet) アダプタのための +ローレベル・デバイスドライバである。このドライバはモジュールとしても、また、 +カーネルに組み込んだ形でも利用できる。また、どちらの場合でも、複数カード +(最大 4 枚まで) をサポートし、明示的にデバイスの名前を指定しない限り +(これに関しては、下を見よ)、発見されたそれぞれのカードには、利用可能な +次のイーサネットデバイス(eth0..eth#)が割り当てられる。このデバイス名は +MAC アドレス、NWID、カードによって利用される周波数とともに +カーネルログファイルに報告される。 .\"O .SS Parameters -.SS °ú¿ô +.SS 引数 .\"O This section apply to the module form (parameters passed on the .\"O .BR insmod (8) .\"O command line). .\"O If the driver is included in the kernel, use the .\"O .I ether=IRQ,IO,NAME .\"O syntax on the kernel command line. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤Ï¡¢¥â¥¸¥å¡¼¥ë¤È¤·¤Æ»ÈÍѤ¹¤ë¾ì¹ç -¤ËŬÍѤµ¤ì¡¢ +このセクションのパラメーターは、モジュールとして使用する場合 +に適用され、 .BR insmod (8) -¤Î¥³¥Þ¥ó¥É¡¦¥é¥¤¥ó°ú¤­¿ô¤È¤·¤ÆÍѤ¤¤ë¡£ -¥«¡¼¥Í¥ë¤Ë¥É¥é¥¤¥Ð¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ +のコマンド・ライン引き数として用いる。 +カーネルにドライバが含まれている場合は、 .I ether=IRQ,IO,NAME -¤È¤¤¤¦·Á¼°¤Î¥Ñ¥é¥á¡¼¥¿¤ò¥«¡¼¥Í¥ë¡¦¥³¥Þ¥ó¥É¥é¥¤¥ó¤ËÅϤ¹¡£ +という形式のパラメータをカーネル・コマンドラインに渡す。 .TP .\"O .B io .\"O Specify the list of base address where to search for wavelan cards @@ -79,36 +79,36 @@ MAC .\"O address, the driver will scan 0x390 and 0x3E0 addresses, which might .\"O conflict with other hardware... .B io -wavelan ¥«¡¼¥É¤ò¸¡½Ð¤¹¤ë»þ¤Ë¤É¤³¤Î¥Ù¡¼¥¹¥¢¥É¥ì¥¹¤ò¥µ¡¼¥Á¤¹¤ë¤«¤È¤¤¤¦ -¥ê¥¹¥È¤ò»ØÄꤹ¤ë (¥«¡¼¥É¤¬ÍøÍѤ¹¤ë¥Ù¡¼¥¹¥¢¥É¥ì¥¹¤Ï¥«¡¼¥É¤Î¥Ç¥£¥Ã¥× -¥¹¥¤¥Ã¥Á¤ÇÀßÄꤹ¤ë)¡£¤â¤· io ¥¢¥É¥ì¥¹¤¬»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¥É¥é¥¤¥Ð¤Ï 0x390 ¤È -0x3E0 ¤ò¥¹¥­¥ã¥ó¤¹¤ë(¤³¤Î¥¢¥É¥ì¥¹¤Ï¾¤Î¥Ï¡¼¥É¤È¾×Æͤ¹¤ë¤³¤È¤â¹Í¤¨¤é¤ì¤ë)¡£ +wavelan カードを検出する時にどこのベースアドレスをサーチするかという +リストを指定する (カードが利用するベースアドレスはカードのディップ +スイッチで設定する)。もし io アドレスが指定されなければドライバは 0x390 と +0x3E0 をスキャンする(このアドレスは他のハードと衝突することも考えられる)。 .TP .\"O .B irq .\"O Set the list of irq that each wavelan card should use (the value is .\"O saved in permanent storage for future use). .B irq -¤½¤ì¤¾¤ì¤Î wavelan ¥«¡¼¥É¤¬ÍøÍѤ¹¤ë irq ¤Î¥ê¥¹¥È¤ò¥»¥Ã¥È¤¹¤ë (¤³¤ÎÃÍ¤Ï -¾­ÍèŪ¤ÊÍøÍѤΤ¿¤á¤Ë¥Ñ¡¼¥Þ¥Í¥ó¥È¡¦¥¹¥È¥ì¡¼¥¸¤ËÊݸ¤µ¤ì¤ë)¡£ +それぞれの wavelan カードが利用する irq のリストをセットする (この値は +将来的な利用のためにパーマネント・ストレージに保存される)。 .TP .\"O .B name .\"O Set the list of name to be used for each wavelan cards device (name .\"O used by .\"O .BR ifconfig (8)). .B name -¤½¤ì¤¾¤ì¤Î wavelan ¥«¡¼¥É¥Ç¥Ð¥¤¥¹¤Ë +それぞれの wavelan カードデバイスに .RB ( ifconfig (8) -¤¬ÍøÍѤ¹¤ë)̾Á°¤Î¥ê¥¹¥È¤ò¥»¥Ã¥È¤¹¤ë¡£ +が利用する)名前のリストをセットする。 .\"O .SS "Wireless Extensions" -.SS "¥ï¥¤¥¢¥ì¥¹³ÈÄ¥ (Wireless Extentions)" +.SS "ワイアレス拡張 (Wireless Extentions)" .\"O Use .\"O .BR iwconfig (8) .\"O to manipulate wireless extensions. -¥ï¥¤¥¢¥ì¥¹³ÈÄ¥¤ÎÁàºî¤Ë¤Ï +ワイアレス拡張の操作には .BR iwconfig (8) -¤ò»È¤¦¡£ +を使う。 .\"O .SS NWID (or domain) -.SS NWID (or ¥É¥á¥¤¥ó) +.SS NWID (or ドメイン) .\"O Set the network ID .\"O .RI [ 0 .\"O to @@ -117,17 +117,17 @@ wavelan .\"O .RI [ off ]. .\"O As the NWID is stored in the card Permanent Storage Area, it will be .\"O reuse at any further invocation of the driver. -¥Í¥Ã¥È¥ï¡¼¥¯ ID¤ò +ネットワーク IDを .RI [ 0 -¤«¤é +から .IR FFFF ] -¤ËÀßÄꤹ¤ë¤«¡¢ +に設定するか、 .RI [ off ] -¤½¤ÎÍøÍѤò̵¸ú¤Ë¤¹¤ë¡£ -NWID ¤Ï¥«¡¼¥É¤Î¥Ñ¡¼¥Þ¥Í¥ó¥È¡¦¥¹¥È¥ì¡¼¥¸¥¨¥ê¥¢ (Permanent Strage Area) ¤Ë -³ÊǼ¤µ¤ì¤ë¤Î¤Ç¡¢NWID ¤Ï¥É¥é¥¤¥Ð¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤¿¤Ó¤ËÍøÍѤǤ­¤ë¡£ +その利用を無効にする。 +NWID はカードのパーマネント・ストレージエリア (Permanent Strage Area) に +格納されるので、NWID はドライバが呼び出されるたびに利用できる。 .\"O .SS Frequency & channels -.SS ¼þÇÈ¿ô¤È¥Á¥ã¥Í¥ë +.SS 周波数とチャネル .\"O For the 2.4GHz 2.00 Hardware, you are able to set the frequency by .\"O specifying one of the 10 defined channels .\"O .RI ( 2.412, @@ -138,65 +138,65 @@ NWID .\"O The frequency is changed immediately and .\"O permanently. .\"O Frequency availability depends on the regulations... -2.4GHz 2.00 ¥Ï¡¼¥É¥¦¥§¥¢¤Ç¤Ï¡¢10 ¤ÎÄêµÁºÑ¤ß¤Î¥Á¥ã¥Í¥ë +2.4GHz 2.00 ハードウェアでは、10 の定義済みのチャネル .RI ( 2.412 .I 2.422, 2.425, 2.4305, 2.432, 2.442, 2.452, 2.460, 2.462 .IR 2.484 ) -¤Î¤¦¤Á¤Î°ì¤Ä¤ò»ØÄꤹ¤ë¤«¡¢¤½¤ÎÃͤòľÀÜ»ØÄꤹ¤ë¤³¤È¤Ë¤è¤Ã¤Æ¼þÇÈ¿ô¤òÀßÄê -¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¼þÇÈ¿ô¤Ïľ¸å¤ËÊѹ¹¤µ¤ì¡¢¤Þ¤¿¡¢¤½¤ÎÊѹ¹¤Ï¹±µ×Ū¤Ç¤¢¤ë¡£ -¤É¤Î¼þÇÈ¿ô¤¬ÍøÍѤǤ­¤ë¤«¤È¤¤¤¦¤³¤È¤Ï¡¢(¤½¤Î¹ñ¤Î) ˡΧ¤Ë°Í¸¤¹¤ë¡Ä +のうちの一つを指定するか、その値を直接指定することによって周波数を設定 +することができる。 +周波数は直後に変更され、また、その変更は恒久的である。 +どの周波数が利用できるかということは、(その国の) 法律に依存する… .\"O .SS Statistics spy -.SS Åý·×¥¹¥Ñ¥¤ (Statics spy) +.SS 統計スパイ (Statics spy) .\"O Set a list of MAC addresses in the driver (up to 8) and get the last .\"O quality of link for each of those (see .\"O .BR iwspy (8)). -(8 ¤Ä¤Þ¤Ç¤Î) MAC ¥¢¥É¥ì¥¹¤Î¥ê¥¹¥È¤ò¥É¥é¥¤¥Ð¤ËÀßÄꤷ¤Æ¡¢ -¤½¤ì¤¾¤ì¤Î¥ê¥ó¥¯¤ÎÉʼÁ¤òÆÀ¤ë +(8 つまでの) MAC アドレスのリストをドライバに設定して、 +それぞれのリンクの品質を得る .RB ( iwspy (8) -¤ò»²¾È)¡£ +を参照)。 .\"O .SS /proc/net/wireless .SS /proc/net/wireless .\"O .I status .\"O is the status reported by the modem. .I status -¤Ï¥â¥Ç¥à¤«¤éÊó¹ð¤µ¤ì¤¿¥¹¥Æ¡¼¥¿¥¹¤Ç¤¢¤ë¡£ +はモデムから報告されたステータスである。 .\"O .I Link quality .\"O reports the quality of the modulation on the air (direct sequence .\"O spread spectrum) [max = 16]. .I link quality -¤ÏÄÌ¿®Ãæ¤Î(ľÀܳȻ¶¥¹¥Ú¥¯¥È¥é¥àÄÌ¿®Êý¼°¤Ë¤ª¤±¤ë)ÊÑÄ´¤ÎÉʼÁ¤òÊó¹ð¤¹¤ë -[ºÇÂç = 16]¡£ +は通信中の(直接拡散スペクトラム通信方式における)変調の品質を報告する +[最大 = 16]。 .\"O .I Level .\"O and .\"O .I Noise .\"O refer to the signal level and noise level [max = 64]. .I Level -¤È +と .I Noise -¤Ï¿®¹æ¥ì¥Ù¥ë¤È¥Î¥¤¥º¤Î¥ì¥Ù¥ë¤ò»²¾È¤¹¤ë [ºÇÂç = 64]¡£ +は信号レベルとノイズのレベルを参照する [最大 = 64]。 .\"O The .\"O .I crypt discarded packet .\"O and .\"O .I misc discarded packet .\"O counters are not implemented. -.I °Å¹æ²½¤µ¤ì¤Æ¤¤¤ÆÇÑ´þ¤µ¤ì¤¿¥Ñ¥±¥Ã¥È(crypt discarded packet) -¤È -.I ¤½¤ì°Ê³°¤ÎÇÑ´þ¤µ¤ì¤¿¥Ñ¥±¥Ã¥È(misc discarded packet) -¤Î¥«¥¦¥ó¥¿¡¼¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +.I 暗号化されていて廃棄されたパケット(crypt discarded packet) +と +.I それ以外の廃棄されたパケット(misc discarded packet) +のカウンターは実装されていない。 .\"O .SS "Private Ioctl" -.SS "¥É¥é¥¤¥Ð¸ÇÍ­¤ÎIOCTL (Private Ioctl)" +.SS "ドライバ固有のIOCTL (Private Ioctl)" .\"O You may use .\"O .BR iwpriv (8) .\"O to manipulate private ioctls. .BR iwpriv (8) -¤ò¥É¥é¥¤¥Ð¸ÇÍ­¤Î ioctl ¤ÎÁàºî¤Î¤¿¤á¤ËÍøÍѤǤ­¤ë¡£ +をドライバ固有の ioctl の操作のために利用できる。 .\"O .SS Quality and Level threshold .\"O Enable you the define the quality and level threshold used by the .\"O modem (packet below that level are discarded). -.SS ÉʼÁ¤È¥ì¥Ù¥ë¤ÎïçÃÍ (Quality and Level threshold) -¥â¥Ç¥à¤Ç»È¤ï¤ì¤ëÉʼÁ¤È¥ì¥Ù¥ë¤ÎïçÃÍ (¤½¤Î¥ì¥Ù¥ë¤ò²¼²ó¤Ã¤¿¥Ñ¥±¥Ã¥È¤Ï -ÇË´þ¤µ¤ì¤ë) ¤òÄêµÁ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +.SS 品質とレベルの閾値 (Quality and Level threshold) +モデムで使われる品質とレベルの閾値 (そのレベルを下回ったパケットは +破棄される) を定義することができる。 .\"O .SS Histogram .\"O This functionality makes it possible to set a number of .\"O signal level intervals and @@ -204,41 +204,41 @@ NWID .\"O intervals. .\"O This distribution might be used to calculate the mean value .\"O and standard deviation of the signal level. -.SS ¥Ò¥¹¥È¥°¥é¥à (Histogram) -¤³¤Îµ¡Ç½¤Ë¤è¤ê¡¢ -¥·¥°¥Ê¥ë¥ì¥Ù¥ë¶è´Ö¤Î¿ô¤ÎÀßÄê¤È¡¢ÀßÄꤷ¤¿¤½¤ì¤¾¤ì¤Î¶è´Ö¤Ç¤Î -¼õ¿®¥Ñ¥±¥Ã¥È¿ô¤ò¥«¥¦¥ó¥È¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ÎʬÉۤϥ·¥°¥Ê¥ë¥ì¥Ù¥ë¤ÎºÇÉÎÃÍɸ½àÊк¹¤Î·×»»¤ËÌòΩ¤Ä¤À¤í¤¦¡£ +.SS ヒストグラム (Histogram) +この機能により、 +シグナルレベル区間の数の設定と、設定したそれぞれの区間での +受信パケット数をカウントすることができる。 +この分布はシグナルレベルの最瀕値標準偏差の計算に役立つだろう。 .\"O .SS "Specific Notes" -.SS ÆÃÄê¤Î¥É¥é¥¤¥Ð¤Ç¤ÎÃí°Õ +.SS 特定のドライバでの注意 .\"O This driver will fail to detect some .\"O .B non-NCR/ATT&T/Lucent .\"O Wavelan cards. .\"O If this happens for you, you must look in the source code on .\"O how to add your card to the detection routine. -¤³¤Î¥É¥é¥¤¥Ð¤Ï¤¤¤¯¤Ä¤«¤Î -.B NCR/AT&T/Lucent ¤Ç¤Ï¤Ê¤¤ -Wavelan ¥«¡¼¥É¤Î¸¡½Ð¤Ë¼ºÇÔ¤¹¤ë¤À¤í¤¦¡£ -¤³¤ì¤¬¤¢¤Ê¤¿¤Î»ý¤Ã¤Æ¤¤¤ë¥«¡¼¥É¤Çµ¯¤³¤Ã¤¿¾ì¹ç -¡¢¤½¤Î¥«¡¼¥É¤Î¸¡½Ð½èÍý¤ò¤É¤Î¤è¤¦¤Ë²Ã¤¨¤ì¤Ð¤¤¤¤¤«¤È -¤¤¤¦¤³¤È¤Ë¤Ä¤¤¤Æ¥½¡¼¥¹¥³¡¼¥É¤ò³Îǧ¤¹¤ëɬÍפ¬¤¢¤ë¡£ +このドライバはいくつかの +.B NCR/AT&T/Lucent ではない +Wavelan カードの検出に失敗するだろう。 +これがあなたの持っているカードで起こった場合 +、そのカードの検出処理をどのように加えればいいかと +いうことについてソースコードを確認する必要がある。 .PP .\"O Some of the mentioned features are optional. .\"O You may enable to disable .\"O them by changing flags in the driver header and recompile. -¤³¤³¤Þ¤Ç¤Ç½Ò¤Ù¤Æ¤­¤¿µ¡Ç½¤Î¤¦¤Á¤Î¤¤¤¯¤Ä¤«¤Ï¡¢ÁªÂò²Äǽ¤Ç¤¢¤ë¡£ -¥É¥é¥¤¥Ð¤ÎÀèƬÉôʬ¤Î¥Õ¥é¥°¤òÊѹ¹¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Ê¤ª¤¹¤³¤È¤Ë¤è¤Ã¤Æ¡¢ -¤½¤Îµ¡Ç½¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¢¤ë¡£ +ここまでで述べてきた機能のうちのいくつかは、選択可能である。 +ドライバの先頭部分のフラグを変更してコンパイルしなおすことによって、 +その機能を無効にすることも可能である。 .\"O .\" .SH AUTHOR -.\" .SH Ãø¼Ô +.\" .SH 著者 .\" Bruce Janson \(em bruce@cs.usyd.edu.au .\" .br .\" Jean Tourrilhes \(em jt@hplb.hpl.hp.com .\" .br .\"O .\" (and others; see source code for details) -.\" (¤ª¤è¤Ó¡¢¤½¤Î¾¤Î¿Íã; ¾ÜºÙ¤Ï¥½¡¼¥¹¥³¡¼¥É¤ò»²¾È¤Î¤³¤È) +.\" (および、その他の人達; 詳細はソースコードを参照のこと) .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR wavelan_cs (4), .BR ifconfig (8), .BR insmod (8), diff --git a/draft/man5/acct.5 b/draft/man5/acct.5 index 76096e9d..74358d95 100644 --- a/draft/man5/acct.5 +++ b/draft/man5/acct.5 @@ -24,28 +24,28 @@ .\" all rights reserved. .\" Translated 2008-08-10, Akihiro MOTOKI , LDP v3.05 .\" -.\"WORD: accounting ¥¢¥«¥¦¥ó¥Æ¥£¥ó¥° +.\"WORD: accounting アカウンティング .\" .TH ACCT 5 2008-06-15 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O acct \- process accounting file -acct \- ¥×¥í¥»¥¹¡¦¥¢¥«¥¦¥ó¥Æ¥£¥ó¥°¡¦¥Õ¥¡¥¤¥ë +acct \- プロセス・アカウンティング・ファイル .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O If the kernel is built with the process accounting option enabled .\"O .RB ( CONFIG_BSD_PROCESS_ACCT ), .\"O then calling .\"O .BR acct (2) .\"O starts process accounting, for example: -¥«¡¼¥Í¥ë¤¬¥×¥í¥»¥¹¡¦¥¢¥«¥¦¥ó¥Æ¥£¥ó¥°¤Î¥ª¥×¥·¥ç¥ó +カーネルがプロセス・アカウンティングのオプション .RB ( CONFIG_BSD_PROCESS_ACCT ) -¤òÍ­¸ú¤Ë¤·¤ÆºîÀ®¤µ¤ì¤Æ¤¤¤ë¤È¡¢°Ê²¼¤Î¤è¤¦¤Ë +を有効にして作成されていると、以下のように .BR acct (2) -¤ò¸Æ¤Ó½Ð¤¹¤È¥×¥í¥»¥¹¡¦¥¢¥«¥¦¥ó¥Æ¥£¥ó¥°¤¬³«»Ï¤µ¤ì¤ë¡£ +を呼び出すとプロセス・アカウンティングが開始される。 .in +4n acct("/var/log/pacct"); @@ -57,12 +57,12 @@ acct \- .\"O and is defined in .\"O .I .\"O as follows: -¥×¥í¥»¥¹¡¦¥¢¥«¥¦¥ó¥Æ¥£¥ó¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢¥«¡¼¥Í¥ë¤Ï -¥·¥¹¥Æ¥à¾å¤Î³Æ¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤¿¤Ó¤Ë¥¢¥«¥¦¥ó¥Æ¥£¥ó¥°¥Õ¥¡¥¤¥ë¤Ë -¥ì¥³¡¼¥É¤ò½ñ¤­¹þ¤à¡£ -¤³¤Î¥ì¥³¡¼¥É¤Ï¡¢½ªÎ»¤·¤¿¥×¥í¥»¥¹¤Ë´Ø¤¹¤ë¾ðÊó¤òÊÝ»ý¤¹¤ë¤â¤Î¤Ç¡¢ +プロセス・アカウンティングが有効になっていると、カーネルは +システム上の各プロセスが終了するたびにアカウンティングファイルに +レコードを書き込む。 +このレコードは、終了したプロセスに関する情報を保持するもので、 .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で以下のように定義されている。 .in +4n .nf @@ -110,14 +110,14 @@ enum { /* Bits that may be set in ac_flag field */ .\"O A value, .\"O .IR c , .\"O of this type can be converted to a (long) integer as follows: -¥Ç¡¼¥¿·¿ +データ型 .I comp_t -¤ÏÉâÆ°¾®¿ôÅÀÃͤǡ¢3 ¥Ó¥Ã¥ÈÉý¤Î´ð¿ô¤¬ 8 ¤Î»Ø¿ôÉô¤È 13 ¥Ó¥Ã¥ÈÉý¤Î²¾¿ôÉô¤«¤é -¹½À®¤µ¤ì¤ë¡£ +は浮動小数点値で、3 ビット幅の基数が 8 の指数部と 13 ビット幅の仮数部から +構成される。 .I comp_t -·¿¤ÎÃÍ +型の値 .I c -¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ (long ·¿¤Î) À°¿ô¤ËÊÑ´¹¤Ç¤­¤ë¡£ +は以下のようにして (long 型の) 整数に変換できる。 .nf v = (c & 0x1fff) << (((c >> 13) & 0x7) * 3); @@ -131,16 +131,16 @@ enum { /* Bits that may be set in ac_flag field */ .\"O fields measure time in "clock ticks"; divide these values by .\"O .I sysconf(_SC_CLK_TCK) .\"O to convert them to seconds. -¥Õ¥£¡¼¥ë¥É +フィールド .IR ac_utime , .IR ac_stime , .I ac_etime -¤Ï "clock ticks" ñ°Ì¤Ç·×¬¤·¤¿»þ´Ö¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤ÎÃͤò +は "clock ticks" 単位で計測した時間である。 +これらの値を .I sysconf(_SC_CLK_TCK) -¤Ç³ä¤ë¤È¡¢ÉäËÊÑ´¹¤Ç¤­¤ë¡£ +で割ると、秒に変換できる。 .\"O .SS Version 3 Accounting File Format -.SS ¥Ð¡¼¥¸¥ç¥ó 3 ¤Î¥¢¥«¥¦¥ó¥Æ¥£¥ó¥°¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È +.SS バージョン 3 のアカウンティングファイルのフォーマット .\"O Since kernel 2.6.8, .\"O an optional alternative version of the accounting file can be produced .\"O if the @@ -155,21 +155,21 @@ enum { /* Bits that may be set in ac_flag field */ .\"O fields is widened from 16 to 32 bits .\"O (in line with the increased size of UID and GIDs in Linux 2.4 and later). .\"O The records are defined as follows: -¥«¡¼¥Í¥ë 2.6.8 °Ê¹ß¤Ç¤Ï¡¢ -Ê̤ΥС¼¥¸¥ç¥ó¤Î¥¢¥«¥¦¥ó¥Æ¥£¥ó¥°¥Õ¥¡¥¤¥ë¤òÀ¸À®¤¹¤ë¤³¤È¤¬¤Ç¤­¡¢ -¤³¤ì¤ò»È¤¦¤Ë¤Ï¥«¡¼¥Í¥ë¹½ÃÛ»þ¤Ë +カーネル 2.6.8 以降では、 +別のバージョンのアカウンティングファイルを生成することができ、 +これを使うにはカーネル構築時に .B CONFIG_BSD_PROCESS_ACCT_V3 -¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬ÀßÄꤵ¤ì¤ë¤È¡¢¥¢¥«¥¦¥ó¥Æ¥£¥ó¥°¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤Þ¤ì¤ë -¥ì¥³¡¼¥É¤Ë¥Õ¥£¡¼¥ë¥É¤¬Äɲ䵤ì¤ë¡£ -¤Þ¤¿¡¢¥Õ¥£¡¼¥ë¥É +オプションが有効になっている必要がある。 +このオプションが設定されると、アカウンティングファイルに書き込まれる +レコードにフィールドが追加される。 +また、フィールド .I c_uid -¤È +と .I ac_gid -¤ÎÉý¤¬ 16 ¥Ó¥Ã¥È¤«¤é 32 ¥Ó¥Ã¥È¤Ë³ÈÄ¥¤µ¤ì¤ë -(¤³¤ì¤Ï Linux 2.4 °Ê¹ß¤Ç UID ¤È GID ¤Î¥µ¥¤¥º¤¬Áý¤¨¤Æ¤¤¤ë¤Î¤Ë -Âбþ¤·¤¿¤â¤Î¤Ç¤¢¤ë)¡£ -¤³¤Î¥ì¥³¡¼¥É¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +の幅が 16 ビットから 32 ビットに拡張される +(これは Linux 2.4 以降で UID と GID のサイズが増えているのに +対応したものである)。 +このレコードは以下のように定義されている。 .in +4n .nf @@ -199,25 +199,25 @@ struct acct_v3 { .fi .in .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The .\"O .I acct_v3 .\"O structure is defined in glibc since version 2.6. .I acct_v3 -¹½Â¤ÂΤϥС¼¥¸¥ç¥ó 2.6 °Ê¹ß¤Î glibc ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +構造体はバージョン 2.6 以降の glibc で定義されている。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O Process accounting originated on BSD. .\"O Although it is present on most systems, it is not standardized, .\"O and the details vary somewhat between systems. -¥×¥í¥»¥¹¥¢¥«¥¦¥ó¥Æ¥£¥ó¥°¤Ï BSD ͳÍè¤Ç¤¢¤ë¡£ -¤³¤Îµ¡Ç½¤Ï¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¤¬¡¢É¸½à²½¤µ¤ì¤Æ¤ª¤é¤º¡¢ -¤½¤Î¾ÜºÙ¤Ï¥·¥¹¥Æ¥à¤Ë¤è¤ê¤¤¤¯¤é¤«°Û¤Ê¤ë¡£ +プロセスアカウンティングは BSD 由来である。 +この機能はほとんどのシステムに存在するが、標準化されておらず、 +その詳細はシステムによりいくらか異なる。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Records in the accounting file are ordered by termination time of .\"O the process. -¥¢¥«¥¦¥ó¥Æ¥£¥ó¥°¥Õ¥¡¥¤¥ë¤Î¥ì¥³¡¼¥É¤Ï¡¢¥×¥í¥»¥¹¤Î½ªÎ»»þ¹ï¤Î½ç½ø¤È¤Ê¤ë¡£ +アカウンティングファイルのレコードは、プロセスの終了時刻の順序となる。 .\"O In kernels up to and including 2.6.9, .\"O a separate accounting record is written for each thread created using @@ -225,11 +225,11 @@ struct acct_v3 { .\"O since Linux 2.6.10, .\"O a single accounting record is written for the entire process .\"O on termination of the last thread in the process. -¥Ð¡¼¥¸¥ç¥ó 2.6.9 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -NPTL ¥¹¥ì¥Ã¥É¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤ÆºîÀ®¤µ¤ì¤¿¥¹¥ì¥Ã¥É¤Ç¤Ï -¥¹¥ì¥Ã¥ÉËè¤ËÊÌ¡¹¤Î¥¢¥«¥¦¥ó¥Æ¥£¥ó¥°¥ì¥³¡¼¥É¤¬½ñ¤­¹þ¤Þ¤ì¤Æ¤¤¤¿¡£ -Linux 2.6.10 °Ê¹ß¤Ç¤Ï¡¢¥×¥í¥»¥¹Æâ¤ÎºÇ¸å¤Î¥¹¥ì¥Ã¥É¤¬½ªÎ»¤¹¤ë¤È¡¢ -¥×¥í¥»¥¹Á´ÂΤˤĤ¤¤Æ¤Î¥¢¥«¥¦¥ó¥Æ¥£¥ó¥°¥ì¥³¡¼¥É¤¬°ì¤Ä¤À¤±½ñ¤­¹þ¤Þ¤ì¤ë¡£ +バージョン 2.6.9 以前のカーネルでは、 +NPTL スレッドライブラリを使って作成されたスレッドでは +スレッド毎に別々のアカウンティングレコードが書き込まれていた。 +Linux 2.6.10 以降では、プロセス内の最後のスレッドが終了すると、 +プロセス全体についてのアカウンティングレコードが一つだけ書き込まれる。 .\"O The .\"O .I proc/sys/kernel/acct @@ -238,12 +238,12 @@ Linux 2.6.10 .\"O defines settings that control the behavior of process accounting .\"O when disk space runs low. .I proc/sys/kernel/acct -¥Õ¥¡¥¤¥ë +ファイル .RB ( proc (5) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë) ¤Ï¡¢¥Ç¥£¥¹¥¯ÍÆÎ̤λĤ꤬¾¯¤Ê¤¯¤Ê¤Ã¤¿ºÝ¤Î -¥×¥í¥»¥¹¡¦¥¢¥«¥¦¥ó¥Æ¥£¥ó¥°¤ÎÆ°ºî¤òÀ©¸æ¤¹¤ëÀßÄê¤òÊÝ»ý¤·¤Æ¤¤¤ë¡£ +で説明されている) は、ディスク容量の残りが少なくなった際の +プロセス・アカウンティングの動作を制御する設定を保持している。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR lastcomm (1), .BR acct (2), .BR accton (8), diff --git a/draft/man5/charmap.5 b/draft/man5/charmap.5 index 8848b14b..af108645 100644 --- a/draft/man5/charmap.5 +++ b/draft/man5/charmap.5 @@ -26,11 +26,11 @@ .\" .TH CHARMAP 5 1994-11-28 "" "Linux User Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O charmap \- character symbols to define character encodings -charmap \- ʸ»úÉä¹æ²½¤òÄêµÁ¤¹¤ë¤¿¤á¤Îʸ»ú¥·¥ó¥Ü¥ë +charmap \- 文字符号化を定義するための文字シンボル .\"O .SH DESCRIPTION -.SH ½ñ¼° +.SH 書式 .\"O A character set description (charmap) defines a character set of .\"O available characters and their encodings. .\"O All supported character @@ -42,25 +42,25 @@ charmap \- ʸ .\"O .\" .I /usr/lib/nls/charmap/POSIX .\"O .\" .I /usr/share/i18n/charmap/POSIX .\"O .\" for reference purposes. -ʸ»ú½¸¹çµ­½Ò (charmap) ¤Ï»ÈÍѤǤ­¤ëʸ»ú½¸¹ç¤È¤½¤ÎÉä¹æ²½¤òÄêµÁ¤¹¤ë¡£ -¥µ¥Ý¡¼¥È¤µ¤ì¤ëÁ´¤Æ¤Îʸ»ú½¸¹ç¤ÏÂÅÅö¤Ê¥µ¥Ö¥»¥Ã¥È¤È¤·¤Æ -.B "¶¦ÄÌʸ»ú½¸¹ç (portable character set)" -¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.\" °Ê²¼¤Ï¤â¤Ï¤äÀµ¤·¤¯¤Ê¤¤: -.\" ¶¦ÄÌʸ»ú½¸¹ç¤Ï»²¾ÈÍÑ¤Ë +文字集合記述 (charmap) は使用できる文字集合とその符号化を定義する。 +サポートされる全ての文字集合は妥当なサブセットとして +.B "共通文字集合 (portable character set)" +を持たなければならない。 +.\" 以下はもはや正しくない: +.\" 共通文字集合は参照用に .\" .I /usr/lib/nls/charmap/POSIX .\" .I /usr/share/i18n/charmap/POSIX -.\" ¥Õ¥¡¥¤¥ë¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +.\" ファイルに定義されている。 .\"O .SS Syntax -.SS ʸˡ +.SS 文法 .\"O The charmap file starts with a header, that may consist of the .\"O following keywords: -charmap ¥Õ¥¡¥¤¥ë¤Ï°Ê²¼¤Î¥­¡¼¥ï¡¼¥É¤«¤é¤Ê¤ë¥Ø¥Ã¥À¡¼¤Ç»Ï¤Þ¤ë: +charmap ファイルは以下のキーワードからなるヘッダーで始まる: .TP .\"O .I .\"O is followed by the name of the codeset. .I -¤Ï¥³¡¼¥É¥»¥Ã¥È¤Î̾Á°¤ò»ØÄꤹ¤ë¡£ +はコードセットの名前を指定する。 .TP .\"O .I .\"O is followed by the max number of bytes for a multibyte-character. @@ -68,8 +68,8 @@ charmap .\"O The default value .\"O is 1. .I -¤ÏÊ£¿ô¥Ð¥¤¥Èʸ»ú¤Î°ìʸ»ú¤¢¤¿¤ê¤ÎºÇÂç¥Ð¥¤¥È¿ô¤ò»ØÄꤹ¤ë¡£ -Ê£¿ô¥Ð¥¤¥Èʸ»ú¤Ï¸½ºß¤Î¤È¤³¤í¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£¥Ç¥Õ¥©¥ë¥È¤Ï 1 ¤Ç¤¢¤ë¡£ +は複数バイト文字の一文字あたりの最大バイト数を指定する。 +複数バイト文字は現在のところサポートされていない。デフォルトは 1 である。 .TP .\"O .I .\"O is followed by the min number of bytes for a character. @@ -79,12 +79,12 @@ charmap .\"O If not specified, it defaults to .\"O .BR mb_cur_max . .I -¤Ï°ìʸ»ú¤¢¤¿¤ê¤ÎºÇÄã¥Ð¥¤¥È¿ô¤ò»ØÄꤹ¤ë¡£¤³¤ÎÃÍ¤Ï +は一文字あたりの最低バイト数を指定する。この値は .B mb_cur_max -°Ê²¼¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤â¤·»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¥Ç¥Õ¥©¥ë¥È¤Ï +以下でなければならない。 +もし指定されなければデフォルトは .B mb_cur_max -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .TP .\"O .I .\"O is followed by a character that should be used as the @@ -95,58 +95,58 @@ charmap .\"O .B \\\\ .\"O ). .I -¥Õ¥¡¥¤¥ë¤Î»Ä¤ê¤ÎÉôʬ¤Ç¥¨¥¹¥±¡¼¥×¡¦¥­¥ã¥é¥¯¥¿¡¼¤È¤·¤Æ»ÈÍѤ¹¤ëʸ»ú -¤ò»ØÄꤹ¤ë¡£¤³¤ì¤ÇÆüì¤Ê°ÕÌ£¤Ë²ò¼á¤µ¤ì¤ëʸ»ú¤ò¥¨¥¹¥±¡¼¥×¤¹¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å +ファイルの残りの部分でエスケープ・キャラクターとして使用する文字 +を指定する。これで特殊な意味に解釈される文字をエスケープする。 +デフォルトはバックスラッシュ .RB ( \e ) -¤Ç¤¢¤ë¡£ +である。 .TP .I -¤Ï¥Õ¥¡¥¤¥ë¤Î»Ä¤ê¤ÎÉôʬ¤Ç¥³¥á¥ó¥È¡¦¥­¥ã¥é¥¯¥¿¡¼¤È¤·¤Æ»ÈÍѤ¹¤ëʸ»ú -¤ò»ØÄꤹ¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥·¥ã¡¼¥× +はファイルの残りの部分でコメント・キャラクターとして使用する文字 +を指定する。デフォルトではシャープ .RB ( # ) -¤Ç¤¢¤ë¡£ +である。 .PP .\"O The charmap-definition itself starts with the keyword .\"O .B CHARMAP .\"O in column 1. -charmap ¤ÎÄêµÁ¤½¤Î¤â¤Î¤ÏÂè°ì¥«¥é¥à¤Ë¥­¡¼¥ï¡¼¥É +charmap の定義そのものは第一カラムにキーワード .B CHARMAP -¤òÃÖ¤¯¤³¤È¤Ç»Ï¤á¤ë¡£ +を置くことで始める。 .\"O The following lines may have one of the two following forms to .\"O define the character-encodings: -°Ê²¼¤Î¹Ô¤Ïʸ»ú¤ÎÉä¹æ²½¤òÄêµÁ¤¹¤ë¤¿¤á¤ÎÆó¤Ä¤ÎÊýË¡¤Ç¤¢¤ë: +以下の行は文字の符号化を定義するための二つの方法である: .TP .I .\"O This form defines exactly one character and its encoding. -¤³¤ì¤Ï°ì¤Ä¤Îʸ»ú¤È¤½¤ÎÉä¹æ²½¤òÄêµÁ¤¹¤ë¡£ +これは一つの文字とその符号化を定義する。 .TP .I ... .\"O This form defines a couple of characters. .\"O This is only useful for .\"O multibyte-characters, which are currently not implemented. -¤³¤Î·Á¼°¤ÏÊ£¿ô¤Îʸ»ú¤òÄêµÁ¤¹¤ë¡£¤³¤ì¤ÏÊ£¿ô¥Ð¥¤¥Èʸ»ú (¸½ºß¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤) -¤Î¤ß¤ÇÍ­ÍѤǤ¢¤ë¡£ +この形式は複数の文字を定義する。これは複数バイト文字 (現在は実装されていない) +のみで有用である。 .PP .\"O The last line in a charmap-definition file must contain .\"O .B END CHARMAP. -charmap ¤ÎÄêµÁ¤ÎºÇ¸å¤Î¹Ô¤Ï +charmap の定義の最後の行は .B END CHARMAP -¤òÃÖ¤¯¡£ +を置く。 .\"O .SS "Symbolic Names" -.SS ¥·¥ó¥Ü¥ë̾ +.SS シンボル名 .\"O A .\"O .B symbolic name .\"O for a character contains only characters of the .\"O .B portable character set. .\"O The name itself is enclosed between angle brackets. -ʸ»ú¤Î -.B ¥·¥ó¥Ü¥ë̾ (symbolic name) -¤Ï -.B ¶¦ÄÌʸ»ú½¸¹ç(portable character set) -¤Îʸ»ú¤Î¤ß¤ò´Þ¤ó¤Ç¤¤¤ë¡£ -¤³¤Î̾Á°¤Ï¤«¤®¤«¤Ã¤³ < > ¤Ç¶´¤à¡£ +文字の +.B シンボル名 (symbolic name) +は +.B 共通文字集合(portable character set) +の文字のみを含んでいる。 +この名前はかぎかっこ < > で挟む。 .\"O Characters following an .\"O .B .\"O are interpreted as itself; for example, the sequence @@ -155,44 +155,44 @@ charmap .\"O .B "\\\\>" .\"O enclosed in angle brackets. .B -¤Ë³¤¯Ê¸»ú¤Ï¤½¤ì¼«¿È¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£Î㤨¤Ð +に続く文字はそれ自身として解釈される。例えば .B "<\e\e\e>>" -¤Î¤è¤¦¤Êʸ»úÎó¤Ï +のような文字列は .B "\e>" -¤È¤¤¤¦¥·¥ó¥Ü¥ë̾¤ò¤«¤®¤«¤Ã¤³¤Ç¶¹¤ó¤Çɽ¸½¤·¤Æ¤¤¤ë¡£ +というシンボル名をかぎかっこで狭んで表現している。 .\"O .SS "Character Encoding" -.SS ʸ»úÉä¹æ²½ +.SS 文字符号化 .\"O The .\"O encoding may be in each of the following three forms: -Éä¹æ²½¤Ï°Ê²¼¤Î»°¤Ä¤Î·Á¼°¤Î¤É¤ì¤«¤Çɽ¤¹: +符号化は以下の三つの形式のどれかで表す: .TP .\"O .I d .\"O with a decimal number -.I d<¿ô»ú> -¤Ï 10 ¿Ê¤Î¿ôÃͤòɽ¤¹¡£ +.I d<数字> +は 10 進の数値を表す。 .TP .\"O .I x .\"O with a hexadecimal number -.I x<¿ô»ú> -¤Ï 16 ¿Ê¤Î¿ôÃͤòɽ¤¹¡£ +.I x<数字> +は 16 進の数値を表す。 .TP .\"O .I .\"O with an octal number. -.I <¿ô»ú> -¤Ï 8 ¿Ê¤Î¿ôÃͤòɽ¤¹¡£ +.I <数字> +は 8 進の数値を表す。 .\" FIXME comments .\" FIXME char ... char .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .I /usr/share/i18n/charmaps/* .\"O .\" .SH AUTHOR -.\" .SH Ãø¼Ô +.\" .SH 著者 .\" Jochen Hein (jochen.hein@delphi.central.de) .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.2. .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR locale (1), .BR localedef (1), .BR localeconv (3), diff --git a/draft/man5/core.5 b/draft/man5/core.5 index 17162396..c415defc 100644 --- a/draft/man5/core.5 +++ b/draft/man5/core.5 @@ -29,11 +29,11 @@ .\" .TH CORE 5 2010-11-15 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O core \- core dump file -core \- ¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë +core \- コアダンプファイル .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The default action of certain signals is to cause a process to terminate .\"O and produce a .\"O .IR "core dump file" , @@ -44,18 +44,18 @@ core \- .\"O to inspect the state of the program at the time that it terminated. .\"O A list of the signals which cause a process to dump core can be found in .\"O .BR signal (7). -¤¢¤ë¼ï¤Î¥·¥°¥Ê¥ë¤ò¼õ¤±¤¿¾ì¹ç¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥¢¥¯¥·¥ç¥ó¤Ï¡¢ -¥×¥í¥»¥¹¤ò½ªÎ»¤· (terminate)¡¢ -.I "¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë (core dump file)" -¤òÀ¸À®¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤Ï¡¢¥Ç¥£¥¹¥¯¾å¤ËÀ¸À®¤µ¤ì¤ë -½ªÎ»»þ¤Î¥×¥í¥»¥¹¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤òÆâÍƤȤ¹¤ë¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ -¤³¤Î¥¤¥á¡¼¥¸¤ò¥Ç¥Ð¥Ã¥¬ (Î㤨¤Ð +ある種のシグナルを受けた場合のデフォルトのアクションは、 +プロセスを終了し (terminate)、 +.I "コアダンプファイル (core dump file)" +を生成することである。コアダンプファイルは、ディスク上に生成される +終了時のプロセスのメモリイメージを内容とするファイルである。 +このイメージをデバッガ (例えば .BR gdb (1)) -¤ËÆɤ߹þ¤ó¤Ç¡¢ -¥×¥í¥°¥é¥à¤¬½ªÎ»¤·¤¿»þÅÀ¤Î¥×¥í¥°¥é¥à¤Î¾õÂÖ¤ò¸¡ºº¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤É¤Î¥·¥°¥Ê¥ë¤ò¼õ¤±¤¿¤È¤­¤Ë¥×¥í¥»¥¹¤¬¥³¥¢¥À¥ó¥×¤òÀ¸À®¤¹¤ë¤«¤Î¥ê¥¹¥È¤Ï +に読み込んで、 +プログラムが終了した時点のプログラムの状態を検査することができる。 +どのシグナルを受けたときにプロセスがコアダンプを生成するかのリストは .BR signal (7) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ +に書かれている。 .\"O A process can set its soft .\"O .B RLIMIT_CORE @@ -63,16 +63,16 @@ core \- .\"O that will be produced if it receives a "core dump" signal; see .\"O .BR getrlimit (2) .\"O for details. -¥×¥í¥»¥¹¤Ï¥½¥Õ¥È¡¦¥ê¥½¡¼¥¹À©¸Â +プロセスはソフト・リソース制限 .B RLIMIT_CORE -¤òÀßÄꤹ¤ë¤³¤È¤Ç¡¢¡Ö¥³¥¢¥À¥ó¥×¡×¥·¥°¥Ê¥ë¤ò¼õ¿®¤·¤¿ºÝ¤ËÀ¸À®¤µ¤ì¤ë -¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤Ë¾å¸Â¤ò²Ý¤¹¤³¤È¤¬¤Ç¤­¤ë¡£¾ÜºÙ¤Ï +を設定することで、「コアダンプ」シグナルを受信した際に生成される +コアダンプファイルのサイズに上限を課すことができる。詳細は .BR getrlimit (2) -¤ò»²¾È¡£ +を参照。 .\"O There are various circumstances in which a core dump file is .\"O not produced: -¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤¬À¸À®¤µ¤ì¤Ê¤¤¾õ¶·¤¬¤¤¤¯¤Ä¤«¤¢¤ë: +コアダンプファイルが生成されない状況がいくつかある: .IP * 3 .\"O The process does not have permission to write the core file. .\"O (By default the core file is called @@ -85,33 +85,33 @@ core \- .\"O is not writable .\"O or is not a regular file .\"O (e.g., it is a directory or a symbolic link). -¥×¥í¥»¥¹¤¬¥³¥¢¥Õ¥¡¥¤¥ë¤ò½ñ¤­¹þ¤àµö²Ä¤ò»ý¤¿¤Ê¤¤¾ì¹ç -(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥³¥¢¥Õ¥¡¥¤¥ë¤Ï +プロセスがコアファイルを書き込む許可を持たない場合 +(デフォルトでは、コアファイルは .I core -¤È¤¤¤¦Ì¾Á°¤Ç¡¢¥«¥ì¥ó¥È¡¦¥ï¡¼¥­¥ó¥°¡¦¥Ç¥£¥ì¥¯¥È¥ê¤ËÀ¸À®¤µ¤ì¤ë¡£ -̿̾µ¬Â§¤Î¾ÜºÙ¤Ï²¼µ­¤ò»²¾È)¡£ -¥³¥¢¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤è¤¦¤È¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê¤¬½ñ¤­¹þ¤ß²Äǽ¤Ç¤Ê¤¤¾ì¹ç¡¢ -¤â¤·¤¯¤ÏƱ¤¸Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤¬½ñ¤­¹þ¤ß²Äǽ¤Ç¤â -Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤â¤Ê¤¤¾ì¹ç (Î㤨¤Ð¡¢¥Ç¥£¥ì¥¯¥È¥ê¤ä¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯)¡¢ -¥³¥¢¥Õ¥¡¥¤¥ë¤ÎÀ¸À®¤Ï¼ºÇÔ¤¹¤ë¡£ +という名前で、カレント・ワーキング・ディレクトリに生成される。 +命名規則の詳細は下記を参照)。 +コアファイルを生成しようとしたディレクトリが書き込み可能でない場合、 +もしくは同じ名前のファイルが存在し、そのファイルが書き込み可能でも +通常のファイルでもない場合 (例えば、ディレクトリやシンボリックリンク)、 +コアファイルの生成は失敗する。 .IP * .\"O A (writable, regular) file with the same name as would be used for the .\"O core dump already exists, but there is more than one hard link to that .\"O file. -¥³¥¢¥À¥ó¥×¤Ë»È¤ª¤¦¤È¤·¤¿¤Î¤ÈƱ¤¸Ì¾Á°¤Î (½ñ¤­¹þ¤ß²Äǽ¤Ê¡¢Ä̾ï¤Î) ¥Õ¥¡¥¤¥ë¤¬ -¤¹¤Ç¤Ë¸ºß¤·¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥Ï¡¼¥É¥ê¥ó¥¯¤¬ 2¸Ä°Ê¾å¤¢¤ë¾ì¹ç¡£ +コアダンプに使おうとしたのと同じ名前の (書き込み可能な、通常の) ファイルが +すでに存在し、そのファイルに対するハードリンクが 2個以上ある場合。 .IP * .\"O The file system where the core dump file would be created is full; .\"O or has run out of inodes; or is mounted read-only; .\"O or the user has reached their quota for the file system. -¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤è¤¦¤È¤·¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¥Õ¥ë¤Ç¤¢¤ë¤«¡¢ -inode ¤¬Á´¤Æ»ÈÍѤµ¤ì¤Æ¤¤¤ë¤«¡¢Æɤ߹þ¤ßÀìÍѤǥޥ¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡£ -¤Þ¤¿¤Ï¡¢¤½¤Î¥æ¡¼¥¶¤Î¥Ç¥£¥¹¥¯»ÈÍÑÎ̤¬¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î -¥¯¥ª¡¼¥¿ (quota) ¤Ë㤷¤Æ¤¤¤ë¡£ +コアダンプファイルを生成しようとしたファイルシステムがフルであるか、 +inode が全て使用されているか、読み込み専用でマウントされている場合。 +または、そのユーザのディスク使用量がそのファイルシステムの +クオータ (quota) に達している。 .IP * .\"O The directory in which the core dump file is to be created does .\"O not exist. -¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤è¤¦¤È¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¡£ +コアダンプファイルを生成しようとしたディレクトリが存在しない場合。 .IP * .\"O The .\"O .B RLIMIT_CORE @@ -125,23 +125,23 @@ inode .\"O .RI ( limit .\"O in .\"O .BR csh (1)). -¥×¥í¥»¥¹Ëè¤Î¥ê¥½¡¼¥¹À©¸Â +プロセス毎のリソース制限 .B RLIMIT_CORE -(¥³¥¢¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º) ¤« +(コアファイルのサイズ) か .B RLIMIT_FSIZE -(¥Õ¥¡¥¤¥ë¥µ¥¤¥º) ¤¬ 0 ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡£ +(ファイルサイズ) が 0 に設定されている場合。 .BR getrlimit (2) -¤ä¥·¥§¥ë¤Î +やシェルの .I ulimit -¥³¥Þ¥ó¥É¤Î¥É¥­¥å¥á¥ó¥È +コマンドのドキュメント .RB ( csh (1) -¤Î +の .IR limit ) -¤ò»²¾È¡£ +を参照。 .IP * .\"O The binary being executed by the process does not have read .\"O permission enabled. -¥×¥í¥»¥¹¤¬¼Â¹Ô¤·¤¿¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤ÎÆɤ߽Ф·µö²Ä¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¡£ +プロセスが実行したバイナリファイルの読み出し許可が有効になっていない場合。 .IP * .\"O The process is executing a set-user-ID (set-group-ID) program .\"O that is owned by a user (group) other than the real user (group) @@ -155,20 +155,20 @@ inode .\"O .\" and PR_SET_DUMPABLE to this page? .\"O file in .\"O .BR proc (5).) -¥×¥í¥»¥¹¤¬¼Â¹Ô¤·¤Æ¤¤¤ë set-user-ID (set-group-ID) ¥×¥í¥°¥é¥à¤Î½êÍ­¼Ô¤Î -¥æ¡¼¥¶ (¥°¥ë¡¼¥×) ¤¬¡¢¥×¥í¥»¥¹¤Î¼Â UID (¼Â GID) ¤È°Û¤Ê¤ë¾ì¹ç -(⤷¡¢ +プロセスが実行している set-user-ID (set-group-ID) プログラムの所有者の +ユーザ (グループ) が、プロセスの実 UID (実 GID) と異なる場合 +(但し、 .BR prctl (2) .B PR_SET_DUMPABLE -Áàºî¤ÎÀâÌÀ¤È¡¢ +操作の説明と、 .BR proc (5) -¤Î +の .I /proc/sys/fs/suid_dumpable -¥Õ¥¡¥¤¥ë¤ÎÀâÌÀ¤â»²¾È¤Î¤³¤È)¡£ +ファイルの説明も参照のこと)。 .\" FIXME . Perhaps relocate discussion of /proc/sys/fs/suid_dumpable .\" and PR_SET_DUMPABLE to this page? .\"O .SS Naming of core dump files -.SS ¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤Î̾Á° +.SS コアダンプファイルの名前 .\"O By default, a core dump file is named .\"O .IR core , .\"O but the @@ -177,93 +177,93 @@ inode .\"O can be set to define a template that is used to name core dump files. .\"O The template can contain % specifiers which are substituted .\"O by the following values when a core file is created: -.\" motoki XXX Ʊ¤¸ÆâÍƤ¬½ÅÊ£¤·¤Æ½ñ¤«¤ì¤Æ¤¤¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤Î̾Á°¤Ï +.\" motoki XXX 同じ内容が重複して書かれている。 +デフォルトでは、コアダンプファイルの名前は .I core -¤È¤Ê¤ë¤¬¡¢¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤Î̾Á°¤ò·è¤á¤ë¤Î¤Ë»È¤ï¤ì¤ë¥Æ¥ó¥×¥ì¡¼¥È¤ò +となるが、コアダンプファイルの名前を決めるのに使われるテンプレートを .I /proc/sys/kernel/core_pattern -¥Õ¥¡¥¤¥ë¤ËÄêµÁ¤¹¤ë¤³¤È¤Ç¡¢¥Õ¥¡¥¤¥ë̾¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë +ファイルに定義することで、ファイル名を変更することができる .RI ( /proc/sys/kernel/core_pattern -¤Ï Linux 2.6 ¤ª¤è¤Ó 2.4.21 °Ê¹ß¤ÇÍøÍѤǤ­¤ë)¡£ -¥Æ¥ó¥×¥ì¡¼¥È¤Ë¤Ï % »Ø¼¨»Ò (specifier) ¤òÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤Ï¥³¥¢¥Õ¥¡¥¤¥ë¤¬À¸À®¤µ¤ì¤ëºÝ¤Ë¡¢°Ê²¼¤ÎÃͤËÃÖ¤­´¹¤¨¤é¤ì¤ë¡£ +は Linux 2.6 および 2.4.21 以降で利用できる)。 +テンプレートには % 指示子 (specifier) を入れることができる。 +これはコアファイルが生成される際に、以下の値に置き換えられる。 .PP .RS 4 .PD 0 .TP 4 %% .\"O a single % character -1 ¤Ä¤Î % ʸ»ú +1 つの % 文字 .TP %p .\"O PID of dumped process -¥À¥ó¥×¤µ¤ì¤¿¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ID (PID) +ダンプされたプロセスのプロセスID (PID) .TP %u .\"O (numeric) real UID of dumped process -¥À¥ó¥×¤µ¤ì¤¿¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶ ID (real UID) +ダンプされたプロセスの実ユーザ ID (real UID) .TP %g .\"O (numeric) real GID of dumped process -¥À¥ó¥×¤µ¤ì¤¿¥×¥í¥»¥¹¤Î¼Â¥°¥ë¡¼¥× ID (real GID) +ダンプされたプロセスの実グループ ID (real GID) .TP %s .\"O number of signal causing dump -¥À¥ó¥×¤ò°ú¤­µ¯¤³¤·¤¿¥·¥°¥Ê¥ë¤ÎÈÖ¹æ +ダンプを引き起こしたシグナルの番号 .TP %t .\"O time of dump, expressed as seconds since the .\"O Epoch, 1970-01-01 00:00:00 +0000 (UTC) -¥À¥ó¥×»þ¹ï¡¢µª¸µ (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) -¤«¤é¤ÎÉÿô¡£ +ダンプ時刻、紀元 (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) +からの秒数。 .TP %h .\"O hostname (same as \fInodename\fP returned by \fBuname\fP(2)) -¥Û¥¹¥È̾ (\fBuname\fP(2) ¤ÇÊÖ¤µ¤ì¤ë \fInodename\fP ¤ÈƱ¤¸) +ホスト名 (\fBuname\fP(2) で返される \fInodename\fP と同じ) .TP %e .\"O executable filename (without path prefix) -¼Â¹Ô¥Õ¥¡¥¤¥ë̾ (¥Ñ¥¹Ì¾¤Î¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤Ï´Þ¤Þ¤ì¤Ê¤¤) +実行ファイル名 (パス名のプレフィックスは含まれない) .TP %c .\"O core file size soft resource limit of crashing process (since Linux 2.6.24) -¥¯¥é¥Ã¥·¥å¤·¤¿¥×¥í¥»¥¹¤Î¥³¥¢¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤Ë´Ø¤¹¤ë¥½¥Õ¥È¥ê¥½¡¼¥¹¾å¸Â -(Linux 2.6.24 °Ê¹ß) +クラッシュしたプロセスのコアファイルのサイズに関するソフトリソース上限 +(Linux 2.6.24 以降) .PD .RE .PP .\"O A single % at the end of the template is dropped from the .\"O core filename, as is the combination of a % followed by any .\"O character other than those listed above. -¥Æ¥ó¥×¥ì¡¼¥È¤ÎËöÈø¤Ë 1 ¸Ä¤À¤± % ¤¬¤¢¤ë¾ì¹ç¡¢ -¤½¤Î % ¤Ï¥³¥¢¥Õ¥¡¥¤¥ë̾¤Ë¤Ï´Þ¤á¤é¤ì¤Ê¤¤¡£¤Þ¤¿¡¢¾å¤ÇÎóµó¤µ¤ì¤Æ -¤¤¤Ê¤¤ % ¤Èʸ»ú¤ÎÁȤ߹ç¤ï¤»¤¬¤¢¤Ã¤¿¾ì¹ç¤âƱÍͤǤ¢¤ë¡£ +テンプレートの末尾に 1 個だけ % がある場合、 +その % はコアファイル名には含められない。また、上で列挙されて +いない % と文字の組み合わせがあった場合も同様である。 .\"O All other characters in the template become a literal .\"O part of the core filename. -¥Æ¥ó¥×¥ì¡¼¥È¤Ë¤ª¤±¤ë¾¤Îʸ»ú¤Ï¡¢ -¥³¥¢¥Õ¥¡¥¤¥ë̾¤È¤·¤Æ¤½¤Î¤Þ¤Þ»È¤ï¤ì¤ë¡£ +テンプレートにおける他の文字は、 +コアファイル名としてそのまま使われる。 .\"O The template may include \(aq/\(aq characters, which are interpreted .\"O as delimiters for directory names. -¥Æ¥ó¥×¥ì¡¼¥È¤Ë¤Ï \(aq/\(aq ʸ»ú¤òÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¡¢ -¥Ç¥£¥ì¥¯¥È¥ê̾¤Î¶èÀÚ¤êʸ»ú¤È²ò¼á¤µ¤ì¤ë¡£ +テンプレートには \(aq/\(aq 文字を入れることができ、 +ディレクトリ名の区切り文字と解釈される。 .\"O The maximum size of the resulting core filename is 128 bytes (64 bytes .\"O in kernels before 2.6.19). -·ë²Ì¤È¤·¤ÆÀ¸À®¤µ¤ì¤ë¥³¥¢¥Õ¥¡¥¤¥ë̾¤ÎºÇÂ祵¥¤¥º¤Ï 128 ¥Ð¥¤¥È¤Ç¤¢¤ë -(2.6.19 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï 64 ¥Ð¥¤¥È)¡£ +結果として生成されるコアファイル名の最大サイズは 128 バイトである +(2.6.19 より前のカーネルでは 64 バイト)。 .\"O The default value in this file is "core". -¤³¤Î¥Õ¥¡¥¤¥ë¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï "core" ¤Ç¤¢¤ë¡£ +このファイルのデフォルト値は "core" である。 .\"O For backward compatibility, if .\"O .I /proc/sys/kernel/core_pattern .\"O does not include "%p" and .\"O .I /proc/sys/kernel/core_uses_pid .\"O (see below) .\"O is nonzero, then .PID will be appended to the core filename. -°ÊÁ°¤Î¤â¤Î¤È¤Î¸ß´¹À­¤Î¤¿¤á¡¢ +以前のものとの互換性のため、 .I /proc/sys/kernel/core_pattern -¤Ë "%p" ¤¬´Þ¤Þ¤ì¤º¡¢ -¤«¤Ä +に "%p" が含まれず、 +かつ .I /proc/sys/kernel/core_uses_pid -(²¼µ­»²¾È) ¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢.PID ¤¬¥³¥¢¥Õ¥¡¥¤¥ë̾¤ËÄɲ䵤ì¤ë¡£ +(下記参照) が 0 でない場合は、.PID がコアファイル名に追加される。 .\"O Since version 2.4, Linux has also provided .\"O a more primitive method of controlling @@ -275,17 +275,17 @@ inode .\"O If this file contains a nonzero value, then the core dump file includes .\"O the process ID in a name of the form .\"O .IR core.PID . -¥Ð¡¼¥¸¥ç¥ó 2.4 °Ê¹ß¤Î Linux ¤Ç¤Ï -¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤Î̾Á°¤òÀ©¸æ¤¹¤ë¸¶»ÏŪ¤ÊÊýË¡¤âÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +バージョン 2.4 以降の Linux では +コアダンプファイルの名前を制御する原始的な方法も提供されている。 .I /proc/sys/kernel/core_uses_pid -¥Õ¥¡¥¤¥ë¤ËÃÍ 0 ¤¬½ñ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤Ïñ½ã¤Ë +ファイルに値 0 が書かれている場合、コアダンプファイルは単純に .I core -¤È¤¤¤¦Ì¾Á°¤Ë¤Ê¤ë¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ë 0 °Ê³°¤ÎÃͤ¬½ñ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤Ï +という名前になる。このファイルに 0 以外の値が書かれている場合、 +コアダンプファイルは .I core.PID -¤È¤¤¤¦·Á¼°¤Î̾Á°¤Ë¤Ê¤ê¡¢¥Õ¥¡¥¤¥ë̾¤Ë¥×¥í¥»¥¹ ID ¤¬´Þ¤Þ¤ì¤ë¡£ +という形式の名前になり、ファイル名にプロセス ID が含まれる。 .\"O .SS Piping core dumps to a program -.SS ¥³¥¢¥À¥ó¥×¤Î¥×¥í¥°¥é¥à¤Ø¤Î¥Ñ¥¤¥× +.SS コアダンプのプログラムへのパイプ .\"O Since kernel 2.6.19, Linux supports an alternate syntax for the .\"O .I /proc/sys/kernel/core_pattern .\"O file. @@ -295,107 +295,107 @@ inode .\"O Instead of being written to a disk file, the core dump is given as .\"O standard input to the program. .\"O Note the following points: -¥«¡¼¥Í¥ë 2.6.19 °Ê¹ß¤Ç¤Ï¡¢Linux ¤Ï +カーネル 2.6.19 以降では、Linux は .I /proc/sys/kernel/core_pattern -¥Õ¥¡¥¤¥ë¤ÎÊ̤ι½Ê¸¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤ÎºÇ½é¤Îʸ»ú¤¬¥Ñ¥¤¥×µ­¹æ (\fB|\fP) ¤Ç¤¢¤ì¤Ð¡¢ -¤½¤Î¹Ô¤Î»Ä¤ê¤ÎÉôʬ¤Ï¼Â¹Ô¤¹¤ë¥×¥í¥°¥é¥à¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ -¥³¥¢¥À¥ó¥×¤Ï¡¢¥Ç¥£¥¹¥¯¾å¤Î¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ -¥×¥í¥°¥é¥à¤Îɸ½àÆþÎϤȤ·¤ÆÅϤµ¤ì¤ë¡£ -°Ê²¼¤ÎÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +ファイルの別の構文をサポートしている。 +このファイルの最初の文字がパイプ記号 (\fB|\fP) であれば、 +その行の残りの部分は実行するプログラムとして解釈される。 +コアダンプは、ディスク上のファイルに書き込まれるのではなく、 +プログラムの標準入力として渡される。 +以下の点に注意すること。 .IP * 3 .\"O The program must be specified using an absolute pathname (or a .\"O pathname relative to the root directory, \fI/\fP), .\"O and must immediately follow the '|' character. -¥×¥í¥°¥é¥à¤ÏÀäÂХѥ¹Ì¾ (¤â¤·¤¯¤Ï¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê \fI/\fP ¤«¤é¤Î -ÁêÂХѥ¹Ì¾) ¤Ç»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤Þ¤¿¡¢'|' ʸ»ú¤Îľ¸å¤«¤é»Ï¤á¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +プログラムは絶対パス名 (もしくはルートディレクトリ \fI/\fP からの +相対パス名) で指定されなければならない。 +また、'|' 文字の直後から始めなければならない。 .IP * .\"O The process created to run the program runs as user and group .\"O .IR root . -¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤ËÀ¸À®¤µ¤ì¤ë¥×¥í¥»¥¹¤Ï¡¢ -¥æ¡¼¥¶¡¢¥°¥ë¡¼¥×¤È¤â +プログラムを実行するために生成されるプロセスは、 +ユーザ、グループとも .I root -¤È¤·¤Æ¼Â¹Ô¤µ¤ì¤ë¡£ +として実行される。 .IP * .\"O Command-line arguments can be supplied to the .\"O program (since kernel 2.6.24), .\"O delimited by white space (up to a total line length of 128 bytes). -¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤ò¥×¥í¥°¥é¥à¤ËÍ¿¤¨¤ë¤³¤È¤¬¤Ç¤­ (¥«¡¼¥Í¥ë 2.6.24 °Ê¹ß)¡¢ -°ú¤­¿ô¤Ï¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹¤Ç¶èÀÚ¤ë -(1¹Ô¤ÎºÇÂçĹ¤Ï 128 ¥Ð¥¤¥È¤¬¾å¸Â¤Ç¤¢¤ë)¡£ +コマンドライン引き数をプログラムに与えることができ (カーネル 2.6.24 以降)、 +引き数はホワイトスペースで区切る +(1行の最大長は 128 バイトが上限である)。 .IP * .\"O The command-line arguments can include any of .\"O the % specifiers listed above. .\"O For example, to pass the PID of the process that is being dumped, specify .\"O .I %p .\"O in an argument. -¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ë¤Ï¡¢¾åµ­¤Î¥ê¥¹¥È¤Ë¤¢¤ë % »Ø¼¨»Ò¤ò´Þ¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -Î㤨¤Ð¡¢¥À¥ó¥×¤µ¤ì¤ë¥×¥í¥»¥¹¤Î PID ¤òÅϤ¹¤Ë¤Ï¡¢ -°ú¤­¿ô¤Ë +コマンドライン引き数には、上記のリストにある % 指示子を含めることができる。 +例えば、ダンプされるプロセスの PID を渡すには、 +引き数に .I %p -¤ò»ØÄꤹ¤ë¡£ +を指定する。 .\"O .SS Controlling which mappings are written to the core dump -.SS ¤É¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò¥³¥¢¥À¥ó¥×¤Ë½ñ¤­¹þ¤à¤«¤òÀ©¸æ¤¹¤ë +.SS どのマッピングをコアダンプに書き込むかを制御する .\"O Since kernel 2.6.23, the Linux-specific .\"O .IR /proc/PID/coredump_filter .\"O file can be used to control which memory segments are written to the .\"O core dump file in the event that a core dump is performed for the .\"O process with the corresponding process ID. -¥«¡¼¥Í¥ë 2.6.23 °Ê¹ß¤Ç¤Ï¡¢Linux ¸ÇÍ­¤Î¥Õ¥¡¥¤¥ë +カーネル 2.6.23 以降では、Linux 固有のファイル .I /proc/PID/coredump_filter -¤ò»È¤Ã¤Æ¡¢Âбþ¤¹¤ë¥×¥í¥»¥¹ ID ¤ò»ý¤Ä¥×¥í¥»¥¹¤ËÂФ·¤Æ¥³¥¢¥À¥ó¥×¤¬¹Ô¤ï¤ì¤ë -ºÝ¤Ë¡¢¤É¤Î¥á¥â¥ê¥»¥°¥á¥ó¥È¤ò¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤à¤«¤òÀ©¸æ¤Ç¤­¤ë¡£ +を使って、対応するプロセス ID を持つプロセスに対してコアダンプが行われる +際に、どのメモリセグメントをコアダンプファイルに書き込むかを制御できる。 .\"O The value in the file is a bit mask of memory mapping types (see .\"O .BR mmap (2)). .\"O If a bit is set in the mask, then memory mappings of the .\"O corresponding type are dumped; otherwise they are not dumped. .\"O The bits in this file have the following meanings: -¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÃͤϥá¥â¥ê¥Þ¥Ã¥Ô¥ó¥°¼ïÊÌ +このファイルの値はメモリマッピング種別 .RB ( mmap (2) -»²¾È) ¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ë¡£ -¥Þ¥¹¥¯Æâ¤Î¤¢¤ë¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢¤½¤Î¥Ó¥Ã¥È¤ËÂбþ¤¹¤ë¼ïÊ̤Π-¥á¥â¥ê¥Þ¥Ã¥Ô¥ó¥°¤¬¥À¥ó¥×¤µ¤ì¤ë¡£¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤â¤Î¤Ï¥À¥ó¥×¤µ¤ì¤Ê¤¤¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Î³Æ¥Ó¥Ã¥È¤Ï°Ê²¼¤Î°ÕÌ£¤ò»ý¤Ä¡£ +参照) のビットマスクである。 +マスク内のあるビットがセットされると、そのビットに対応する種別の +メモリマッピングがダンプされる。セットされていないものはダンプされない。 +このファイルの各ビットは以下の意味を持つ。 .PP .PD 0 .RS 4 .TP bit 0 .\"O Dump anonymous private mappings. -̵̾¤Î¥×¥é¥¤¥Ù¡¼¥È¥Þ¥Ã¥Ô¥ó¥° (anonymous private mappings) ¤ò¥À¥ó¥×¤¹¤ë¡£ +無名のプライベートマッピング (anonymous private mappings) をダンプする。 .TP bit 1 .\"O Dump anonymous shared mappings. -̵̾¤Î¶¦Í­¥Þ¥Ã¥Ô¥ó¥° (anonymous shared mappings) ¤ò¥À¥ó¥×¤¹¤ë¡£ +無名の共有マッピング (anonymous shared mappings) をダンプする。 .TP bit 2 .\"O Dump file-backed private mappings. -¥Õ¥¡¥¤¥ë¤È´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥×¥é¥¤¥Ù¡¼¥È¥Þ¥Ã¥Ô¥ó¥° -(file-backed private mappings) ¤ò¥À¥ó¥×¤¹¤ë¡£ +ファイルと関連付けられたプライベートマッピング +(file-backed private mappings) をダンプする。 .TP bit 3 .\"O Dump file-backed shared mappings. -¥Õ¥¡¥¤¥ë¤È´ØÏ¢ÉÕ¤±¤é¤ì¤¿¶¦Í­¥Þ¥Ã¥Ô¥ó¥° -(file-backed shared mappings) ¤ò¥À¥ó¥×¤¹¤ë¡£ +ファイルと関連付けられた共有マッピング +(file-backed shared mappings) をダンプする。 .\" file-backed shared mappings of course also update the underlying .\" mapped file. .TP .\"O bit 4 (since Linux 2.6.24) .\"O Dump ELF headers. -bit 4 (Linux 2.6.24 °Ê¹ß) -ELF ¥Ø¥Ã¥À¤ò¥À¥ó¥×¤¹¤ë¡£ +bit 4 (Linux 2.6.24 以降) +ELF ヘッダをダンプする。 .TP .\"O bit 5 (since Linux 2.6.28) .\"O Dump private huge pages. -bit 5 (Linux 2.6.28 °Ê¹ß) -¥×¥é¥¤¥Ù¡¼¥È¤Ê¥Ò¥å¡¼¥¸¥Ú¡¼¥¸ (private huge page) ¤ò¥À¥ó¥×¤¹¤ë¡£ +bit 5 (Linux 2.6.28 以降) +プライベートなヒュージページ (private huge page) をダンプする。 .TP .\"O bit 6 (since Linux 2.6.28) .\"O Dump shared huge pages. -bit 6 (Linux 2.6.28 °Ê¹ß) -¶¦Í­¤µ¤ì¤¿¥Ò¥å¡¼¥¸¥Ú¡¼¥¸ (shared huge page) ¤ò¥À¥ó¥×¤¹¤ë¡£ +bit 6 (Linux 2.6.28 以降) +共有されたヒュージページ (shared huge page) をダンプする。 .RE .PD .PP @@ -404,20 +404,20 @@ bit 6 (Linux 2.6.28 .\"O kernel configuration option is enabled), and 5. .\"O The value of this file is displayed in hexadecimal. .\"O (The default value is thus displayed as 33.) -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥Ó¥Ã¥È 0, 1, 4, 5 ¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ -(¥Ó¥Ã¥È 4 ¤¬¥»¥Ã¥È¤µ¤ì¤ë¤Î¤Ï¡¢¥«¡¼¥Í¥ë¤¬ÀßÄꥪ¥×¥·¥ç¥ó +デフォルトでは、ビット 0, 1, 4, 5 がセットされる。 +(ビット 4 がセットされるのは、カーネルが設定オプション .B CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS -¤òÍ­¸ú¤Ë¤·¤ÆºîÀ®¤µ¤ì¤¿¾ì¹ç¤Ç¤¢¤ë)¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÃÍ¤Ï 16 ¿Ê·Á¼°¤Çɽ¼¨¤µ¤ì¤ë -(¤·¤¿¤¬¤Ã¤Æ¡¢¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 33 ¤Èɽ¼¨¤µ¤ì¤ë)¡£ +を有効にして作成された場合である)。 +このファイルの値は 16 進形式で表示される +(したがって、デフォルト値は 33 と表示される)。 .\"O Memory-mapped I/O pages such as frame buffer are never dumped, and .\"O virtual DSO pages are always dumped, regardless of the .\"O .I coredump_filter .\"O value. .I coredump_filter -¤ÎÃͤ˴ؤï¤é¤º¡¢¥Õ¥ì¡¼¥à¥Ð¥Ã¥Õ¥¡¤Ê¤É¤Î memory-mapped I/O ¤Ë´Ø¤¹¤ë -¥Ú¡¼¥¸¤Ï·è¤·¤Æ¥À¥ó¥×¤µ¤ì¤º¡¢²¾ÁÛ DSO ¥Ú¡¼¥¸¤Ï¾ï¤Ë¥À¥ó¥×¤µ¤ì¤ë¡£ +の値に関わらず、フレームバッファなどの memory-mapped I/O に関する +ページは決してダンプされず、仮想 DSO ページは常にダンプされる。 .\"O A child process created via .\"O .BR fork (2) @@ -429,20 +429,20 @@ bit 6 (Linux 2.6.28 .\"O value is preserved across an .\"O .BR execve (2). .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤ë»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤Î +で作成される子プロセスは親プロセスの .I coredump_filter -¤ÎÃͤò·Ñ¾µ¤¹¤ë¡£ +の値を継承する。 .BR execve (2) -¤ÎÁ°¸å¤Ç +の前後で .I coredump_filter -¤ÎÃͤÏÊÝ»ý¤µ¤ì¤ë¡£ +の値は保持される。 .\"O It can be useful to set .\"O .I coredump_filter .\"O in the parent shell before running a program, for example: -Îã¤Î¤è¤¦¤Ë¡¢¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ëÁ°¤Ë¿Æ¥·¥§¥ë¤Î +例のように、プログラムを実行する前に親シェルの .I coredump_filter -¤òÀßÄꤷ¤Æ¤ª¤¯¤ÈÌòΩ¤Ä¤³¤È¤¬¤¢¤ë¡£ +を設定しておくと役立つことがある。 .in +4n .nf @@ -454,19 +454,19 @@ bit 6 (Linux 2.6.28 .\"O This file is only provided if the kernel was built with the .\"O .B CONFIG_ELF_CORE .\"O configuration option. -¤³¤Î¥Õ¥¡¥¤¥ë¤¬Ä󶡤µ¤ì¤ë¤Î¤Ï¡¢¥«¡¼¥Í¥ë¤¬ÀßÄꥪ¥×¥·¥ç¥ó +このファイルが提供されるのは、カーネルが設定オプション .B CONFIG_ELF_CORE -¤òÍ­¸ú¤Ë¤·¤ÆºîÀ®¤µ¤ì¤¿¾ì¹ç¤À¤±¤Ç¤¢¤ë¡£ +を有効にして作成された場合だけである。 .\"O .SH NOTES -.SH È÷¹Í +.SH 備考 .\"O The .\"O .BR gdb (1) .\"O .I gcore .\"O command can be used to obtain a core dump of a running process. .BR gdb (1) -¤Î +の .I gcore -¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¤È¡¢¼Â¹ÔÃæ¤Î¥×¥í¥»¥¹¤Î¥³¥¢¥À¥ó¥×¤ò¼èÆÀ¤Ç¤­¤ë¡£ +コマンドを使用すると、実行中のプロセスのコアダンプを取得できる。 .\"O If a multithreaded process (or, more precisely, a process that .\"O shares its memory with another process by being created with the @@ -477,23 +477,23 @@ bit 6 (Linux 2.6.28 .\"O unless the process ID was already included elsewhere in the .\"O filename via a %p specification in .\"O .IR /proc/sys/kernel/core_pattern . -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥×¥í¥»¥¹ -(¤è¤êÀµ³Î¤Ë¤Ï¡¢ +マルチスレッドプロセス +(より正確には、 .BR clone (2) -¤Î +の .B CLONE_VM -¤ÇÀ¸À®¤µ¤ì¤¿ÊÌ¥×¥í¥»¥¹¤È¥á¥â¥ê¤ò¶¦Í­¤·¤Æ¤¤¤ë¥×¥í¥»¥¹) -¤¬¥³¥¢¥À¥ó¥×¤òÀ¸À®¤¹¤ë¾ì¹ç¡¢ -¥³¥¢¥Õ¥¡¥¤¥ë̾¤Ë¥×¥í¥»¥¹ ID ¤¬É¬¤ºÉղ䵤ì¤ë¡£ -¤¿¤À¤·¡¢ +で生成された別プロセスとメモリを共有しているプロセス) +がコアダンプを生成する場合、 +コアファイル名にプロセス ID が必ず付加される。 +ただし、 .I /proc/sys/kernel/core_pattern -¤Î %p »ØÄê¤Ë¤è¤ê¥³¥¢¥Õ¥¡¥¤¥ë̾¤Î¤É¤³¤«Â¾¤Î¾ì½ê¤Ë¥×¥í¥»¥¹ ID ¤¬ -¤¹¤Ç¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¥×¥í¥»¥¹ ID ¤¬ËöÈø¤ËÉղ䵤ì¤Ê¤¤¡£ +の %p 指定によりコアファイル名のどこか他の場所にプロセス ID が +すでに含まれている場合は、プロセス ID が末尾に付加されない。 .\"O (This is primarily useful when employing the LinuxThreads implementation, .\"O where each thread of a process has a different PID.) -(¤³¤Îµ¡Ç½¤¬¤Þ¤ºÌò¤ËΩ¤Ä¤Î¤Ï LinuxThreads ¼ÂÁõ¤òÍøÍѤ·¤Æ¤¤¤ë¾ì¹ç¤Ç¤¢¤ë¡£ -LinuxThreads ¼ÂÁõ¤Ç¤Ï¡¢¥×¥í¥»¥¹Æâ¤Î¸Ä¡¹¤Î¥¹¥ì¥Ã¥É¤Ï°Û¤Ê¤ë¥×¥í¥»¥¹ ID -¤ò»ý¤Ä¡£) +(この機能がまず役に立つのは LinuxThreads 実装を利用している場合である。 +LinuxThreads 実装では、プロセス内の個々のスレッドは異なるプロセス ID +を持つ。) .\" Always including the PID in the name of the core file made .\" sense for LinuxThreads, where each thread had a unique PID, .\" but doesn't seem to serve any purpose with NPTL, where all the @@ -503,7 +503,7 @@ LinuxThreads .\" way of telling which threading implementation the userspace .\" application is using). -- mtk, April 2006 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The program below can be used to demonstrate the use of the .\"O pipe syntax in the .\"O .I /proc/sys/kernel/core_pattern @@ -511,13 +511,13 @@ LinuxThreads .\"O The following shell session demonstrates the use of this program .\"O (compiled to create an executable named .\"O .IR core_pattern_pipe_test ): -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï +以下のプログラムは .I /proc/sys/kernel/core_pattern -¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¤¥×¹½Ê¸¤Î»ÈÍÑÎã¤ò¼¨¤·¤Æ¤¤¤ë¡£ -°Ê²¼¤Î¥·¥§¥ë¤Î¥»¥Ã¥·¥ç¥ó¤Ï¤³¤Î¥×¥í¥°¥é¥à¤Î»ÈÍÑÎã¤ò¼¨¤¹¤â¤Î¤Ç¤¢¤ë -(¥³¥ó¥Ñ¥¤¥ë¤·¤Æ +ファイルのパイプ構文の使用例を示している。 +以下のシェルのセッションはこのプログラムの使用例を示すものである +(コンパイルして .I core_pattern_pipe_test -¤È¤¤¤¦Ì¾Á°¤Î¼Â¹Ô¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤Æ¤¤¤ë)¡£ +という名前の実行ファイルを作成している)。 .PP .in +4n .nf @@ -542,7 +542,7 @@ Total bytes in core dump: 282624 .fi .in .\"O .SS Program source -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf /* core_pattern_pipe_test.c */ @@ -596,7 +596,7 @@ main(int argc, char *argv[]) } .fi .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bash (1), .BR gdb (1), .BR getrlimit (2), diff --git a/draft/man5/dir_colors.5 b/draft/man5/dir_colors.5 index 47674117..51e7f154 100644 --- a/draft/man5/dir_colors.5 +++ b/draft/man5/dir_colors.5 @@ -16,28 +16,28 @@ .\" by Yuichi SATO .\" Updated & Modified Sat Jan 5 22:25:30 JST 2002 by Yuichi SATO .\" -.\"WORD: configuration ÀßÄê -.\"WORD: terminal üËö -.\"WORD: orphan ¸ÉΩ -.\"WORD: caret ¥­¥ã¥ì¥Ã¥È +.\"WORD: configuration 設定 +.\"WORD: terminal 端末 +.\"WORD: orphan 孤立 +.\"WORD: caret キャレット .\" .TH DIR_COLORS 5 2001-12-26 "GNU" "Linux User Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O dir_colors \- configuration file for dircolors(1) -dir_colors \- dircolors(1) ¤ÎÀßÄê¥Õ¥¡¥¤¥ë +dir_colors \- dircolors(1) の設定ファイル .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The program .\"O .BR ls (1) .\"O uses the environment variable .\"O .B LS_COLORS .\"O to determine the colors in which the filenames are to be displayed. -¥×¥í¥°¥é¥à +プログラム .BR ls (1) -¤Ï¡¢´Ä¶­ÊÑ¿ô +は、環境変数 .B LS_COLORS -¤ò»È¤¤¡¢¥Õ¥¡¥¤¥ë̾¤ò²¿¿§¤Çɽ¼¨¤¹¤ë¤«¤ò·èÄꤹ¤ë¡£ +を使い、ファイル名を何色で表示するかを決定する。 .\"O This environment variable is usually set by a command like .\"O .\"O .RS @@ -50,41 +50,41 @@ dir_colors \- dircolors(1) .\"O .IR /etc/csh.cshrc . .\"O (See also .\"O .BR dircolors (1).) -¤³¤Î´Ä¶­ÊÑ¿ô¤Ï¡¢Ä̾ï +この環境変数は、通常 .RS eval \`dircolors some_path/dir_colors\` .RE -¤Î¤è¤¦¤Ê¥³¥Þ¥ó¥É¤ÇÀßÄꤵ¤ì¤ë¡£ -¤³¤Î¥³¥Þ¥ó¥É¤Ï +のようなコマンドで設定される。 +このコマンドは .I /etc/profile -¤ä +や .I /etc/csh.cshrc -¤È¤¤¤Ã¤¿¥·¥¹¥Æ¥à¤Î¥·¥§¥ë½é´ü²½¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë¡£ +といったシステムのシェル初期化ファイルにある。 .RB ( dircolors (1) -¤ò»²¾È¤¹¤ë¤³¤È¡£) +を参照すること。) .\"O Usually, the file used here is .\"O .I /etc/DIR_COLORS .\"O and can be overridden by a .\"O .I .dir_colors .\"O file in one's home directory. -Ä̾¤³¤³¤Ç»È¤ï¤ì¤ë¥Õ¥¡¥¤¥ë¤Ï +通常、ここで使われるファイルは .I /etc/DIR_COLORS -¤Ç¤¢¤ë¤¬¡¢¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤Î +であるが、ホームディレクトリの .I .dir_colors -¥Õ¥¡¥¤¥ë¤Ç¾å½ñ¤­¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +ファイルで上書きすることができる。 .PP .\"O This configuration file consists of several statements, one per line. .\"O Anything right of a hash mark (#) is treated as a comment, if the .\"O hash mark is at the beginning of a line or is preceded by at least one .\"O whitespace. .\"O Blank lines are ignored. -ÀßÄê¥Õ¥¡¥¤¥ë¤Ï 1 ¹ÔËè¤Ë½ñ¤«¤ì¤¿¥¹¥Æ¡¼¥È¥á¥ó¥È¤Ç¹½À®¤µ¤ì¤ë¡£ -¥Ï¥Ã¥·¥å¥Þ¡¼¥¯ (#) ¤¬¹Ô¤Î»Ï¤á¤Ë¤¢¤ë¾ì¹ç¤ä¡¢ -¥Ï¥Ã¥·¥å¥Þ¡¼¥¯¤ÎÁ°¤Ë¾¯¤Ê¤¯¤È¤â 1 ¤Ä¤Î¶õÇò¤¬¤¢¤ë¾ì¹ç¡¢ -¥Ï¥Ã¥·¥å¥Þ¡¼¥¯¤Î¸å¤í¤Ï¥³¥á¥ó¥È¤È¤·¤Æ°·¤ï¤ì¤ë¡£ -¶õ¹Ô¤Ï̵»ë¤µ¤ì¤ë¡£ +設定ファイルは 1 行毎に書かれたステートメントで構成される。 +ハッシュマーク (#) が行の始めにある場合や、 +ハッシュマークの前に少なくとも 1 つの空白がある場合、 +ハッシュマークの後ろはコメントとして扱われる。 +空行は無視される。 .PP .\"O The .\"O .I global @@ -103,28 +103,28 @@ eval \`dircolors some_path/dir_colors\` .\"O environment variable) the following declarations apply to. .\"O It is always possible to override a global declaration by a subsequent .\"O terminal-specific one. -¤³¤Î¥Õ¥¡¥¤¥ë¤Î -.I ¥°¥í¡¼¥Ð¥ë -¥»¥¯¥·¥ç¥ó¤Ï¡¢ -ºÇ½é¤Î +このファイルの +.I グローバル +セクションは、 +最初の .B TERM -¥¹¥Æ¡¼¥È¥á¥ó¥È¤è¤êÁ°¤Ë¤¢¤ëǤ°Õ¤Î¥¹¥Æ¡¼¥È¥á¥ó¥È¤«¤é¤Ê¤ë¡£ -¥°¥í¡¼¥Ð¥ë¥»¥¯¥·¥ç¥ó¤Ë¤¢¤ë¥¹¥Æ¡¼¥È¥á¥ó¥È¤Ï¡¢ -¤¹¤Ù¤Æ¤ÎüËö¥¿¥¤¥×¤Ë¤Ä¤¤¤ÆÍ­¸ú¤Ç¤¢¤ë¤È¤ß¤Ê¤µ¤ì¤ë¡£ -¥°¥í¡¼¥Ð¥ë¥»¥¯¥·¥ç¥ó¤Î¼¡¤Ë¤Ï¡¢ -.I üËö¸ÇÍ­ -¥»¥¯¥·¥ç¥ó¤¬Â³¤¯¡£ -³ÆüËö¸ÇÍ­¥»¥¯¥·¥ç¥ó¤ÎÀèƬ¤Ë¤Ï¡¢1 ¤Ä°Ê¾å¤Î +ステートメントより前にある任意のステートメントからなる。 +グローバルセクションにあるステートメントは、 +すべての端末タイプについて有効であるとみなされる。 +グローバルセクションの次には、 +.I 端末固有 +セクションが続く。 +各端末固有セクションの先頭には、1 つ以上の .B TERM -¥¹¥Æ¡¼¥È¥á¥ó¥È¤¬ÃÖ¤«¤ì¤ë¡£ +ステートメントが置かれる。 .B TERM -¥¹¥Æ¡¼¥È¥á¥ó¥È¤Ï¡¢¤½¤Î¸å¤Ë³¤¯Àë¸À¤¬Å¬ÍѤµ¤ì¤ë (´Ä¶­ÊÑ¿ô +ステートメントは、その後に続く宣言が適用される (環境変数 .B TERM -¤ÇÍ¿¤¨¤é¤ì¤ë) üËö¥¿¥¤¥×¤ò»ØÄꤹ¤ë¡£ -¥°¥í¡¼¥Ð¥ëÀë¸À¤ò¤½¤Î¸å¤Ë³¤¯Ã¼Ëö¸ÇÍ­¤ÎÀë¸À¤Ç¾å½ñ¤­¤¹¤ë¤³¤È¤¬¾ï¤Ë²Äǽ¤Ç¤¢¤ë¡£ +で与えられる) 端末タイプを指定する。 +グローバル宣言をその後に続く端末固有の宣言で上書きすることが常に可能である。 .PP .\"O The following statements are recognized; case is insignificant: -¼¡¤Î¥¹¥Æ¡¼¥È¥á¥ó¥È¤¬Ç§¼±¤µ¤ì¤ë¡£Âçʸ»ú¤È¾®Ê¸»ú¤Ï¶èÊ̤µ¤ì¤Ê¤¤¡£ +次のステートメントが認識される。大文字と小文字は区別されない。 .TP .B TERM \fIterminal-type\fR .\"O Starts a terminal-specific section and specifies which terminal it @@ -133,47 +133,47 @@ eval \`dircolors some_path/dir_colors\` .\"O .B TERM .\"O statements can be used to create a section which applies for several .\"O terminal types. -üËö¸ÇÍ­¥»¥¯¥·¥ç¥ó¤ò³«»Ï¤·¡¢¤É¤ÎüËö¤ËŬÍѤ¹¤ë¤«¤ò»ØÄꤹ¤ë¡£ -Ê£¿ô¤ÎüËö¥¿¥¤¥×¤ËŬÍѤ¹¤ë¤¿¤á¡¢Ê£¿ô¤Î +端末固有セクションを開始し、どの端末に適用するかを指定する。 +複数の端末タイプに適用するため、複数の .B TERM -¥¹¥Æ¡¼¥È¥á¥ó¥È¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +ステートメントを使うことができる。 .TP .B COLOR yes|all|no|none|tty .\"O (Slackware only; ignored by GNU .\"O .BR dircolors (1).) -(Slackware ¤Î¤ß; GNU +(Slackware のみ; GNU .BR dircolors (1) -¤Ç¤Ï̵»ë¤µ¤ì¤ë¡£) +では無視される。) .\"O Specifies that colorization should always be enabled (\fIyes\fR or .\"O \fIall\fR), never enabled (\fIno\fR or \fInone\fR), or enabled only if .\"O the output is a terminal (\fItty\fR). .\"O The default is \fIno\fR. -¥«¥é¡¼É½¼¨¤ò¾ï¤ËÍ­¸ú¤Ë¤¹¤ë¤Î¤« (\fIyes\fR ¤Þ¤¿¤Ï \fIall\fR)¡¢ -¾ï¤Ë̵¸ú¤Ë¤¹¤ë¤Î¤« (\fIno\fR ¤Þ¤¿¤Ï \fInone\fR)¡¢ -½ÐÎÏÀ褬üËö¤Î¾ì¹ç¤Ë¤Î¤ßÍ­¸ú¤Ë¤¹¤ë¤Î¤« (\fItty\fR) ¤ò»ØÄꤹ¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï \fIno\fR ¤Ç¤¢¤ë¡£ +カラー表示を常に有効にするのか (\fIyes\fR または \fIall\fR)、 +常に無効にするのか (\fIno\fR または \fInone\fR)、 +出力先が端末の場合にのみ有効にするのか (\fItty\fR) を指定する。 +デフォルトは \fIno\fR である。 .TP .B EIGHTBIT yes|no .\"O (Slackware only; ignored by GNU .\"O .BR dircolors (1).) -(Slackware ¤Î¤ß; GNU +(Slackware のみ; GNU .BR dircolors (1) -¤Ç¤Ï̵»ë¤µ¤ì¤ë¡£) +では無視される。) .\"O Specifies that eight-bit ISO 8859 characters should be enabled by .\"O default. .\"O For compatibility reasons, this can also be specified as 1 for .\"O \fIyes\fR or 0 for \fIno\fR. .\"O The default is \fIno\fR. -¥Ç¥Õ¥©¥ë¥È¤Ç 8 ¥Ó¥Ã¥È¤Î ISO 8859 ʸ»ú¤òÍ­¸ú¤Ë¤¹¤ë¤«¤ò»ØÄꤹ¤ë¡£ -¸ß´¹À­¤Î¤¿¤á¡¢1 ¤Ç \fIyes\fR ¤ò¡¢0 ¤Ç \fIno\fR ¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï \fIno\fR ¤Ç¤¢¤ë¡£ +デフォルトで 8 ビットの ISO 8859 文字を有効にするかを指定する。 +互換性のため、1 で \fIyes\fR を、0 で \fIno\fR を指定することができる。 +デフォルトは \fIno\fR である。 .TP .B OPTIONS \fIoptions\fR .\"O (Slackware only; ignored by GNU .\"O .BR dircolors (1).) -(Slackware ¤Î¤ß; GNU +(Slackware のみ; GNU .BR dircolors (1) -¤Ç¤Ï̵»ë¤µ¤ì¤ë¡£) +では無視される。) .\"O Adds command-line options to the default .\"O .B ls .\"O command line. @@ -183,31 +183,31 @@ eval \`dircolors some_path/dir_colors\` .\"O Note that .\"O .B dircolors .\"O does not verify the validity of these options. -¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤ò¥Ç¥Õ¥©¥ë¥È¤Î +コマンドラインオプションをデフォルトの .B ls -¥³¥Þ¥ó¥É¥é¥¤¥ó¤ËÄɲ乤롣 -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ë¤Ï¡¢¤¹¤Ù¤Æ¤ÎÍ­¸ú¤Ê +コマンドラインに追加する。 +このオプションには、すべての有効な .B ls -¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤ò»ØÄê¤Ç¤­¤ë¡£ -¥ª¥×¥·¥ç¥ó¤ÎÁ°¤Ë¤Ï¥Þ¥¤¥Ê¥¹µ­¹æ¤òÃÖ¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +のコマンドラインオプションを指定できる。 +オプションの前にはマイナス記号を置かなければならない。 .B dircolors -¤¬¥ª¥×¥·¥ç¥ó¤ÎÍ­¸úÀ­¤ò¸¡¾Ú¤·¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +がオプションの有効性を検証しない点に注意すること。 .TP .B NORMAL \fIcolor-sequence\fR .\"O Specifies the color used for normal (nonfilename) text. -(¥Õ¥¡¥¤¥ë̾¤Ç¤Ê¤¤) Ä̾ï¤Î¥Æ¥­¥¹¥È¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ +(ファイル名でない) 通常のテキストに使われる色を指定する。 .TP .B FILE \fIcolor-sequence\fR .\"O Specifies the color used for a regular file. -Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ +通常のファイルに使われる色を指定する。 .TP .B DIR \fIcolor-sequence\fR .\"O Specifies the color used for directories. -¥Ç¥£¥ì¥¯¥È¥ê¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ +ディレクトリに使われる色を指定する。 .TP .B LINK \fIcolor-sequence\fR .\"O Specifies the color used for a symbolic link. -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ +シンボリックリンクに使われる色を指定する。 .TP .B ORPHAN \fIcolor-sequence\fR .\"O Specifies the color used for an orphaned symbolic link (one which @@ -217,13 +217,13 @@ eval \`dircolors some_path/dir_colors\` .\"O will use the .\"O .B LINK .\"O color instead. -¸ÉΩ¤·¤¿ (¸ºß¤·¤Ê¤¤¥Õ¥¡¥¤¥ë¤ò»Ø¤·¤Æ¤¤¤ë) -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ -»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢ +孤立した (存在しないファイルを指している) +シンボリックリンクに使われる色を指定する。 +指定されない場合、 .B ls -¤Ï +は .B LINK -¤Î¿§¤òÂå¤ï¤ê¤Ë»È¤¦¡£ +の色を代わりに使う。 .TP .B MISSING \fIcolor-sequence\fR .\"O Specifies the color used for a missing file (a nonexistent file which @@ -233,67 +233,67 @@ eval \`dircolors some_path/dir_colors\` .\"O will use the .\"O .B FILE .\"O color instead. -¹ÔÊýÉÔÌÀ¤Î¥Õ¥¡¥¤¥ë (¸ºß¤·¤Ê¤¤¤Ë¤â¤«¤«¤ï¤é¤º -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬»Ø¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë) ¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ -»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢ +行方不明のファイル (存在しないにもかかわらず +シンボリックリンクが指しているファイル) に使われる色を指定する。 +指定されない場合、 .B ls -¤Ï +は .B FILE -¤Î¿§¤òÂå¤ï¤ê¤Ë»È¤¦¡£ +の色を代わりに使う。 .TP .B FIFO \fIcolor-sequence\fR .\"O Specifies the color used for a FIFO (named pipe). -FIFO (̾Á°ÉÕ¤­¥Ñ¥¤¥×) ¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ +FIFO (名前付きパイプ) に使われる色を指定する。 .TP .B SOCK \fIcolor-sequence\fR .\"O Specifies the color used for a socket. -¥½¥±¥Ã¥È¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ +ソケットに使われる色を指定する。 .TP .B DOOR \fIcolor-sequence\fR .\"O (Supported since fileutils 4.1) .\"O Specifies the color used for a door (Solaris 2.5 and later). -(fileutils 4.1 °Ê¹ß¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤ë) -door (Solaris 2.5 °Ê¹ß) ¤Ç»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ +(fileutils 4.1 以降でサポートされる) +door (Solaris 2.5 以降) で使われる色を指定する。 .TP .B BLK \fIcolor-sequence\fR .\"O Specifies the color used for a block device special file. -¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ +ブロックデバイススペシャルファイルに使われる色を指定する。 .TP .B CHR \fIcolor-sequence\fR .\"O Specifies the color used for a character device special file. -¥­¥ã¥é¥¯¥¿¡¼¥Ç¥Ð¥¤¥¹¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ +キャラクターデバイススペシャルファイルに使われる色を指定する。 .TP .B EXEC \fIcolor-sequence\fR .\"O Specifies the color used for a file with the executable attribute set. -¼Â¹Ô°À­¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Ë»È¤ï¤ì¤ë¿§¤òÀßÄꤹ¤ë¡£ +実行属性が設定されているファイルに使われる色を設定する。 .TP .B LEFTCODE \fIcolor-sequence\fR .\"O Specifies the .\"O .I "left code" .\"O for non-ISO\ 6429 terminals (see below). -ISO\ 6429 üËö (²¼µ­»²¾È) °Ê³°¤Ç +ISO\ 6429 端末 (下記参照) 以外で .I "left code" -¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ +に使われる色を指定する。 .TP .B RIGHTCODE \fIcolor-sequence\fR .\"O Specifies the .\"O .I "right code" .\"O for non-ISO\ 6429 terminals (see below). -ISO\ 6429 üËö (²¼µ­»²¾È) °Ê³°¤Ç +ISO\ 6429 端末 (下記参照) 以外で .I "right code" -¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ +に使われる色を指定する。 .TP .B ENDCODE \fIcolor-sequence\fR .\"O Specifies the .\"O .I "end code" .\"O for non-ISO\ 6429 terminals (see below). -ISO\ 6429 üËö (²¼µ­»²¾È) °Ê³°¤Ç +ISO\ 6429 端末 (下記参照) 以外で .I "end code" -¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ +に使われる色を指定する。 .TP \fB*\fIextension\fR \fIcolor-sequence\fR .\"O Specifies the color used for any file that ends in \fIextension\fR. -\fIextension\fR ¤Ç½ª¤ë¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ +\fIextension\fR で終るすべてのファイルに使われる色を指定する。 .TP \fB .\fIextension\fR \fIcolor-sequence\fR .\"O Same as \fB*\fR.\fIextension\fR. @@ -307,16 +307,16 @@ ISO\ 6429 ü .\"O .B emacs .\"O backup files. .\"O This form should be considered obsolete. -\fB*\fR.\fIextension\fR ¤ÈƱ¤¸¡£ -\fIextension\fR ¤Ç½ª¤ë¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ -¥Ô¥ê¥ª¥É¤Ï³ÈÄ¥»Ò¤Ë´Þ¤Þ¤ì¡¢ +\fB*\fR.\fIextension\fR と同じ。 +\fIextension\fR で終るすべてのファイルに使われる色を指定する。 +ピリオドは拡張子に含まれ、 .B emacs -¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë +のバックアップファイル .B ~ -¤Î¤è¤¦¤Ê¥Ô¥ê¥ª¥É¤Ç»Ï¤Þ¤é¤Ê¤¤³ÈÄ¥»Ò¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¤³¤Î·Á¼°¤Ï¸Å¤¤¤â¤Î¤È¹Í¤¨¤é¤ì¤Æ¤¤¤ë¡£ +のようなピリオドで始まらない拡張子を指定することができない点に注意すること。 +この形式は古いものと考えられている。 .\"O .SS "ISO 6429 (ANSI) Color Sequences" -.SS "ISO 6429 (ANSI) ¥«¥é¡¼¥·¡¼¥±¥ó¥¹" +.SS "ISO 6429 (ANSI) カラーシーケンス" .\"O Most color-capable ASCII terminals today use ISO 6429 (ANSI) color sequences, .\"O and many common terminals without color capability, including .\"O .B xterm @@ -328,17 +328,17 @@ ISO\ 6429 ü .\"O ISO 6429 color sequences are composed of sequences of numbers .\"O separated by semicolons. .\"O The most common codes are: -ºÇ¶á¤Î¥«¥é¡¼É½¼¨²Äǽ¤Ê ASCII üËö¤ÎÂçÉôʬ¤Ï¡¢ -ISO 6429 (ANSI) ¥«¥é¡¼¥·¡¼¥±¥ó¥¹¤òÍѤ¤¤ë¡£ +最近のカラー表示可能な ASCII 端末の大部分は、 +ISO 6429 (ANSI) カラーシーケンスを用いる。 .B xterm -¤ä¹­¤¯»È¤ï¤ì¤Æ¤¤¤ë DEC VT100 ¥¯¥í¡¼¥ó¤ò´Þ¤à -¥«¥é¡¼É½¼¨¤Ç¤­¤Ê¤¤°ìÈÌŪ¤ÊüËö¤Î¿¤¯¤Ï¡¢ -ISO 6429 ¥«¥é¡¼¥³¡¼¥É¤òǧ¼±¤·¡¢½ÐÎϤ«¤é¼Â³²¤Ê¤¯ºï½ü¤¹¤ë¤«¡¢¥¨¥ß¥å¥ì¡¼¥È¤¹¤ë¡£ +や広く使われている DEC VT100 クローンを含む +カラー表示できない一般的な端末の多くは、 +ISO 6429 カラーコードを認識し、出力から実害なく削除するか、エミュレートする。 .B ls -¤Ï¡¢¥«¥é¡¼É½¼¨¤¬Í­¸ú¤Ç¤¢¤ë¤³¤È¤ò²¾Äꤷ¡¢ISO 6429 ¥³¡¼¥É¤ò¥Ç¥Õ¥©¥ë¥È¤Ç»È¤¦¡£ +は、カラー表示が有効であることを仮定し、ISO 6429 コードをデフォルトで使う。 -ISO 6429 ¥«¥é¡¼¥·¡¼¥±¥ó¥¹¤Ï¡¢¥»¥ß¥³¥í¥ó¤Ç¶èÀÚ¤é¤ì¤¿¿ô»ú¤Î¥·¡¼¥±¥ó¥¹¤Çºî¤é¤ì¤ë¡£ -ºÇ¤â°ìÈÌŪ¤Ê¥³¡¼¥É¤ò¼¨¤¹¡£ +ISO 6429 カラーシーケンスは、セミコロンで区切られた数字のシーケンスで作られる。 +最も一般的なコードを示す。 .sp .RS +.2i .ta 1.0i @@ -363,36 +363,36 @@ ISO 6429 .\"O 45 for purple background .\"O 46 for cyan background .\"O 47 for white (or gray) background - 0 ¥Ç¥Õ¥©¥ë¥È¥«¥é¡¼¤òÊݸ - 1 ÌÀ¤ë¤¤¿§ - 4 ¥¢¥ó¥À¡¼¥é¥¤¥ó¤µ¤ì¤¿¥Æ¥­¥¹¥È - 5 ¥Õ¥é¥Ã¥·¥å¤¹¤ë¥Æ¥­¥¹¥È -30 Á°·Ê¿§¡§¹õ -31 Á°·Ê¿§¡§ÀÖ -32 Á°·Ê¿§¡§ÎÐ -33 Á°·Ê¿§¡§²« (¤â¤·¤¯¤ÏÃã) -34 Á°·Ê¿§¡§ÀÄ -35 Á°·Ê¿§¡§»ç -36 Á°·Ê¿§¡§¥·¥¢¥ó -37 Á°·Ê¿§¡§Çò (¤â¤·¤¯¤Ï³¥) -40 ÇØ·Ê¿§¡§¹õ -41 ÇØ·Ê¿§¡§ÀÖ -42 ÇØ·Ê¿§¡§ÎÐ -43 ÇØ·Ê¿§¡§²« (¤â¤·¤¯¤ÏÃã) -44 ÇØ·Ê¿§¡§ÀÄ -45 ÇØ·Ê¿§¡§»ç -46 ÇØ·Ê¿§¡§¥·¥¢¥ó -47 ÇØ·Ê¿§¡§Çò (¤â¤·¤¯¤Ï³¥) + 0 デフォルトカラーを保存 + 1 明るい色 + 4 アンダーラインされたテキスト + 5 フラッシュするテキスト +30 前景色:黒 +31 前景色:赤 +32 前景色:緑 +33 前景色:黄 (もしくは茶) +34 前景色:青 +35 前景色:紫 +36 前景色:シアン +37 前景色:白 (もしくは灰) +40 背景色:黒 +41 背景色:赤 +42 背景色:緑 +43 背景色:黄 (もしくは茶) +44 背景色:青 +45 背景色:紫 +46 背景色:シアン +47 背景色:白 (もしくは灰) .fi .RE .sp .\"O Not all commands will work on all systems or display devices. -¥·¥¹¥Æ¥à¤Èɽ¼¨¥Ç¥Ð¥¤¥¹¤Ë¤è¤Ã¤Æ¤Ï¡¢Æ°ºî¤·¤Ê¤¤¥³¥Þ¥ó¥É¤â¤¢¤ë¡£ +システムと表示デバイスによっては、動作しないコマンドもある。 .PP .\"O .B ls .\"O uses the following defaults: .B ls -¤Ï°Ê²¼¤ò¥Ç¥Õ¥©¥ë¥È¤È¤·¤Æ»È¤¦¡£ +は以下をデフォルトとして使う。 .sp .RS +.2i .ta 1.0i 2.5i @@ -408,17 +408,17 @@ ISO 6429 .\"O \fBBLK\fR 44;37 Block device .\"O \fBCHR\fR 44;37 Character device .\"O \fBEXEC\fR 35 Executable file -\fBNORMAL\fR 0 (¥Õ¥¡¥¤¥ë̾¤Ç¤Ê¤¤) Ä̾ï¤Î¥Æ¥­¥¹¥È -\fBFILE\fR 0 Ä̾ï¤Î¥Õ¥¡¥¤¥ë -\fBDIR\fR 32 ¥Ç¥£¥ì¥¯¥È¥ê -\fBLINK\fR 36 ¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯ -\fBORPHAN\fR ̤ÄêµÁ ¸ÉΩ¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯ -\fBMISSING\fR ̤ÄêµÁ ¹ÔÊýÉÔÌÀ¤Î¥Õ¥¡¥¤¥ë -\fBFIFO\fR 31 ̾Á°ÉÕ¤­¥Ñ¥¤¥× (FIFO) -\fBSOCK\fR 33 ¥½¥±¥Ã¥È -\fBBLK\fR 44;37 ¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹ -\fBCHR\fR 44;37 ¥­¥ã¥é¥¯¥¿¡¼¥Ç¥Ð¥¤¥¹ -\fBEXEC\fR 35 ¼Â¹Ô¥Õ¥¡¥¤¥ë +\fBNORMAL\fR 0 (ファイル名でない) 通常のテキスト +\fBFILE\fR 0 通常のファイル +\fBDIR\fR 32 ディレクトリ +\fBLINK\fR 36 シンボリックリンク +\fBORPHAN\fR 未定義 孤立したシンボリックリンク +\fBMISSING\fR 未定義 行方不明のファイル +\fBFIFO\fR 31 名前付きパイプ (FIFO) +\fBSOCK\fR 33 ソケット +\fBBLK\fR 44;37 ブロックデバイス +\fBCHR\fR 44;37 キャラクターデバイス +\fBEXEC\fR 35 実行ファイル .fi .RE .sp @@ -431,14 +431,14 @@ ISO 6429 .\"O .B FILE .\"O codes to the numerical codes for your normal foreground and background .\"O colors. -¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¤ò´°Á´¤Ëǧ¼±¤Ç¤­¤Ê¤¤Ã¼Ëö¥×¥í¥°¥é¥à¤â¾¯¿ô¸ºß¤¹¤ë¡£ -¥Ç¥£¥ì¥¯¥È¥ê¤ò¥ê¥¹¥È¤·¤¿¸å¤Ë¤¹¤Ù¤Æ¤Î¥Æ¥­¥¹¥È¤¬¥«¥é¡¼É½¼¨¤µ¤ì¤¿¤Ê¤é¡¢ +デフォルトの設定を完全に認識できない端末プログラムも少数存在する。 +ディレクトリをリストした後にすべてのテキストがカラー表示されたなら、 .B NORMAL -¤È +と .B FILE -¤Î¥³¡¼¥É¤òÄ̾ï¤ÎÁ°·Ê¿§¤ÈÇØ·Ê¿§¤Î¤¿¤á¤Î¿ôÃÍ¥³¡¼¥É¤ËÊѹ¹¤¹¤ë¤³¤È¡£ +のコードを通常の前景色と背景色のための数値コードに変更すること。 .\"O .SS "Other Terminal Types (Advanced Configuration)" -.SS "¤½¤Î¾¤ÎüËö¥¿¥¤¥× (¹âÅÙ¤ÊÀßÄê)" +.SS "その他の端末タイプ (高度な設定)" .\"O If you have a color-capable (or otherwise highlighting) terminal (or .\"O printer!) which uses a different set of codes, you can still generate .\"O a suitable setup. @@ -448,14 +448,14 @@ ISO 6429 .\"O and .\"O .B ENDCODE .\"O definitions. -¥«¥é¡¼É½¼¨²Äǽ (¤Þ¤¿¤Ï¥Ï¥¤¥é¥¤¥Èɽ¼¨²Äǽ) ¤À¤¬¡¢ -°Û¤Ê¤ë¥³¡¼¥É¥»¥Ã¥È¤ò»È¤¦Ã¼Ëö (¤¢¤ë¤¤¤Ï¥×¥ê¥ó¥¿¡¼!) ¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ç¤â¡¢ -¤½¤ì¤ËŬ¤·¤¿ÀßÄê¤òºî¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤½¤Î¤¿¤á¤Ë¤Ï¡¢ +カラー表示可能 (またはハイライト表示可能) だが、 +異なるコードセットを使う端末 (あるいはプリンター!) を持っている場合でも、 +それに適した設定を作ることができる。 +そのためには、 .BR LEFTCODE , .BR RIGHTCODE , .B ENDCODE -ÄêµÁ¤ò»È¤¦É¬Íפ¬¤¢¤ë¡£ +定義を使う必要がある。 .PP .\"O When writing out a filename, .\"O .B ls @@ -479,26 +479,26 @@ ISO 6429 .\"O If they are not appropriate for .\"O your terminal, you can eliminate them by specifying the respective .\"O keyword on a line by itself. -¥Õ¥¡¥¤¥ë̾¤ò½ÐÎϤ¹¤ë¾ì¹ç¡¢ +ファイル名を出力する場合、 .B ls -¤Ï " +は " .B LEFTCODE .I typecode .B RIGHTCODE .I filename .B ENDCODE -" ¤È¤¤¤¦½ÐÎÏ¥·¡¼¥±¥ó¥¹¤òÀ¸À®¤¹¤ë¡£ -¤³¤³¤Ç¡¢ +" という出力シーケンスを生成する。 +ここで、 .I typecode -¤Ï¥Õ¥¡¥¤¥ë¤Î¥¿¥¤¥×¤ä̾Á°¤Ë°Í¸¤·¤¿¥«¥é¡¼¥·¡¼¥±¥ó¥¹¤Ç¤¢¤ë¡£ +はファイルのタイプや名前に依存したカラーシーケンスである。 .B ENDCODE -¤¬Ì¤ÄêµÁ¤Î¾ì¹ç¡¢¥·¡¼¥±¥ó¥¹ +が未定義の場合、シーケンス .B "LEFTCODE NORMAL RIGHTCODE" -¤¬Âå¤ï¤ê¤Ë»È¤ï¤ì¤ë¡£ -leftcode ¤È rightcode ¤ÎÌÜŪ¤Ï¡¢Ã±¤ËɬÍפÊÂǤÁ¹þ¤à²ó¿ô¤ò¸º¤é¤¹ -(¤µ¤é¤Ë¡¢¸«¶ì¤·¤¤¥¨¥¹¥±¡¼¥×¥³¡¼¥É¤ò¥æ¡¼¥¶¡¼¤Ë±£¤¹) ¤³¤È¤Ë¤¢¤ë¡£ -¥·¡¼¥±¥ó¥¹¤¬¤½¤ÎüËö¤Ë¤È¤Ã¤ÆŬÀڤǤʤ¤¾ì¹ç¡¢ -¹ÔÆâ¤Î¤½¤ì¤¾¤ì¤Î¥­¡¼¥ï¡¼¥É¼«¿È¤ò»ØÄꤷ¤Æºï½ü¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +が代わりに使われる。 +leftcode と rightcode の目的は、単に必要な打ち込む回数を減らす +(さらに、見苦しいエスケープコードをユーザーに隠す) ことにある。 +シーケンスがその端末にとって適切でない場合、 +行内のそれぞれのキーワード自身を指定して削除することができる。 .PP .\"O .B NOTE: .\"O If the @@ -512,30 +512,30 @@ leftcode .\"O A different .\"O .B ENDCODE .\"O can, however, be specified, which would have the same effect. -.B Ãí°Õ¡§ +.B 注意: .B ENDCODE -¤¬ÀßÄê¥Õ¥¡¥¤¥ë¤Î¥°¥í¡¼¥Ð¥ë¥»¥¯¥·¥ç¥ó¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¤ÎüËö¸ÇÍ­¥»¥¯¥·¥ç¥ó¤Ç̤ÄêµÁ¤Ë¤¹¤ë¤³¤È¤Ï -.IR ¤Ç¤­¤Ê¤¤ ¡£ -¤³¤ì¤Ï¡¢ +が設定ファイルのグローバルセクションで定義されている場合、 +ファイルの端末固有セクションで未定義にすることは +.IR できない 。 +これは、 .B NORMAL -¤ÎÄêµÁ¤¬²¿¤â±Æ¶Á¤òµÚ¤Ü¤µ¤Ê¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -¤·¤«¤·¡¢°Û¤Ê¤Ã¤¿ +の定義が何も影響を及ぼさないことを意味する。 +しかし、異なった .B ENDCODE -¤ò»ØÄꤹ¤ë¤³¤È¤ÇƱ¤¸¸ú²Ì¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を指定することで同じ効果を得ることができる。 .\"O .SS "Escape Sequences" -.SS ¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ +.SS エスケープシーケンス .\"O To specify control- or blank characters in the color sequences or .\"O filename extensions, either C-style \e-escaped notation or .\"O .BR stty \-style .\"O ^-notation can be used. .\"O The C-style notation .\"O includes the following characters: -¥«¥é¡¼¥·¡¼¥±¥ó¥¹¤ä¥Õ¥¡¥¤¥ë̾¤Î³ÈÄ¥»Ò¤ÇÀ©¸æʸ»ú¤ä¥Ö¥é¥ó¥¯Ê¸»ú¤ò»ØÄꤹ¤ë¤¿¤á¤Ë¡¢ -C ¸À¸ì¥¹¥¿¥¤¥ë¤Î \e ¥¨¥¹¥±¡¼¥×ɽµ­¤È +カラーシーケンスやファイル名の拡張子で制御文字やブランク文字を指定するために、 +C 言語スタイルの \e エスケープ表記と .B stty -¥¹¥¿¥¤¥ë¤Î ^ ɽµ­¤ÎξÊý¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -C ¸À¸ì¥¹¥¿¥¤¥ë¤Îɽµ­¤Ë¤Ï°Ê²¼¤Îʸ»ú¤¬´Þ¤Þ¤ì¤ë¡£ +スタイルの ^ 表記の両方を使うことができる。 +C 言語スタイルの表記には以下の文字が含まれる。 .sp .RS +.2i .ta 1.0i @@ -555,61 +555,61 @@ C .\"O .\"O \fB\e\e\fR Backslash (\e) .\"O \fB\e^\fR Caret (^) .\"O \fB\e#\fR Hash mark (#) -\fB\ea\fR ¥Ù¥ë (ASCII 7) -\fB\eb\fR ¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹ (ASCII 8) -\fB\ee\fR ¥¨¥¹¥±¡¼¥× (ASCII 27) -\fB\ef\fR ¥Õ¥©¡¼¥à¥Õ¥£¡¼¥É (ASCII 12) -\fB\en\fR ²þ¹Ô (ASCII 10) -\fB\er\fR ¥­¥ã¥ê¥Ã¥¸¥ê¥¿¡¼¥ó (ASCII 13) -\fB\et\fR ¥¿¥Ö (ASCII 9) -\fB\ev\fR ¿âľ¥¿¥Ö (ASCII 11) -\fB\e?\fR ¥Ç¥ê¡¼¥È (ASCII 127) -\fB\e\fInnn\fR (8 ¿Ê¿ôɽµ­¤Î) Ǥ°Õ¤Îʸ»ú -\fB\ex\fInnn\fR (16 ¿Ê¿ôɽµ­¤Î) Ǥ°Õ¤Îʸ»ú -\fB\e_\fR ¥¹¥Ú¡¼¥¹ -\fB\e\e\fR ¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å (\e) -\fB\e^\fR ¥­¥ã¥ì¥Ã¥È (^) -\fB\e#\fR ¥Ï¥Ã¥·¥å¥Þ¡¼¥¯ (#) +\fB\ea\fR ベル (ASCII 7) +\fB\eb\fR バックスペース (ASCII 8) +\fB\ee\fR エスケープ (ASCII 27) +\fB\ef\fR フォームフィード (ASCII 12) +\fB\en\fR 改行 (ASCII 10) +\fB\er\fR キャリッジリターン (ASCII 13) +\fB\et\fR タブ (ASCII 9) +\fB\ev\fR 垂直タブ (ASCII 11) +\fB\e?\fR デリート (ASCII 127) +\fB\e\fInnn\fR (8 進数表記の) 任意の文字 +\fB\ex\fInnn\fR (16 進数表記の) 任意の文字 +\fB\e_\fR スペース +\fB\e\e\fR バックスラッシュ (\e) +\fB\e^\fR キャレット (^) +\fB\e#\fR ハッシュマーク (#) .fi .RE .sp .\"O Please note that escapes are necessary to enter a space, backslash, .\"O caret, or any control character anywhere in the string, as well as a .\"O hash mark as the first character. -¥Ï¥Ã¥·¥å¥Þ¡¼¥¯¤ò»Ï¤á¤Îʸ»ú¤È¤·¤ÆÆþÎϤ¹¤ë¤È¤­¤ÈƱÍͤˡ¢ -¥¹¥Ú¡¼¥¹¡¦¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¡¦¥­¥ã¥ì¥Ã¥È¡¦À©¸æʸ»ú¤òʸ»úÎó¤ÎǤ°Õ¤ÎÉôʬ¤Ë -ÆþÎϤ¹¤ë¤¿¤á¤Ë¤Ï¡¢¥¨¥¹¥±¡¼¥×¤¬É¬ÍפǤ¢¤ë¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +ハッシュマークを始めの文字として入力するときと同様に、 +スペース・バックスラッシュ・キャレット・制御文字を文字列の任意の部分に +入力するためには、エスケープが必要であることに注意すること。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .TP .I /etc/DIR_COLORS .\"O System-wide configuration file. -¥·¥¹¥Æ¥àÁ´ÂΤÎÀßÄê¥Õ¥¡¥¤¥ë¡£ +システム全体の設定ファイル。 .TP .I ~/.dir_colors .\"O Per-user configuration file. -¥æ¡¼¥¶¡¼Ëè¤ÎÀßÄê¥Õ¥¡¥¤¥ë¡£ +ユーザー毎の設定ファイル。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O This page describes the .\"O .B dir_colors .\"O file format as used in the fileutils-4.1 package; .\"O other versions may differ slightly. -¤³¤Î¥Ú¡¼¥¸¤Ï fileutils-4.1 ¥Ñ¥Ã¥±¡¼¥¸¤Ç»È¤ï¤ì¤Æ¤¤¤ë +このページは fileutils-4.1 パッケージで使われている .B dir_colors -¤Î¥Õ¥¡¥¤¥ë·Á¼°¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤ë¡£ -¤½¤Î¾¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¾¯¤·°ã¤¤¤¬¤¢¤ë¤«¤âÃΤì¤Ê¤¤¡£ +のファイル形式について説明している。 +その他のバージョンでは少し違いがあるかも知れない。 .PP .\"O The default .\"O .B LEFTCODE .\"O and .\"O .B RIGHTCODE .\"O definitions, which are used by ISO 6429 terminals are: -ISO 6429 üËö¤Ç»È¤ï¤ì¤ë +ISO 6429 端末で使われる .B LEFTCODE -¤È +と .B RIGHTCODE -¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÄêµÁ¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +のデフォルトの定義は、次のようになっている。 .sp .RS +.2i .ta 1.0i @@ -623,9 +623,9 @@ ISO 6429 ü .\"O .B ENDCODE .\"O is undefined. .B ENDCODE -¤Î¥Ç¥Õ¥©¥ë¥È¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +のデフォルトは定義されていない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR dircolors (1), .BR ls (1), .BR stty (1), diff --git a/draft/man5/elf.5 b/draft/man5/elf.5 index c99472bd..ec8b4fd3 100644 --- a/draft/man5/elf.5 +++ b/draft/man5/elf.5 @@ -40,68 +40,68 @@ .TH ELF 5 2007-12-28 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O elf \- format of Executable and Linking Format (ELF) files -.SH ̾Á° -elf \- ¼Â¹Ô²Äǽ¥ê¥ó¥¯¥Õ¥©¡¼¥Þ¥Ã¥È (ELF) ¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È +.SH 名前 +elf \- 実行可能リンクフォーマット (ELF) ファイルのフォーマット .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .\" .B #include .B #include .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The header file .\"O .I .\"O defines the format of ELF executable binary files. -¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë +ヘッダファイル .I -¤Ï ELF ¼Â¹Ô²Äǽ¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤òÄêµÁ¤¹¤ë¡£ +は ELF 実行可能バイナリファイルのフォーマットを定義する。 .\"O Amongst these files are .\"O normal executable files, relocatable object files, core files and shared .\"O libraries. -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤È¤·¤Æ¤Ï¡¢Ä̾ï¤Î¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¡¦ -ºÆÇÛÃÖ²Äǽ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¡¦¥³¥¢¥Õ¥¡¥¤¥ë¡¦¶¦Í­¥é¥¤¥Ö¥é¥ê¤¬¤¢¤ë¡£ +これらのファイルとしては、通常の実行可能ファイル・ +再配置可能オブジェクトファイル・コアファイル・共有ライブラリがある。 .PP .\"O An executable file using the ELF file format consists of an ELF header, .\"O followed by a program header table or a section header table, or both. -ELF ¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»È¤¦¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤Ï¡¢ -ELF ¥Ø¥Ã¥À¤Î¸å¤Ë¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Þ¤¿¤Ï -¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë (¤Þ¤¿¤Ï¤½¤ÎξÊý) ¤¬Â³¤¯¹½À®¤Ç¤¢¤ë¡£ +ELF ファイルフォーマットを使う実行可能ファイルは、 +ELF ヘッダの後にプログラムヘッダテーブルまたは +セクションヘッダテーブル (またはその両方) が続く構成である。 .\"O The ELF header is always at offset zero of the file. -ELF ¥Ø¥Ã¥À¤Ï¾ï¤Ë¥Õ¥¡¥¤¥ë¤Î¥ª¥Õ¥»¥Ã¥È 0 ¤Ë¤¢¤ë¡£ +ELF ヘッダは常にファイルのオフセット 0 にある。 .\"O The program header .\"O table and the section header table's offset in the file are defined in the .\"O ELF header. -¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤È¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Î -¥Õ¥¡¥¤¥ëÆâ¤Ç¤Î¥ª¥Õ¥»¥Ã¥È¤Ï¡¢ELF ¥Ø¥Ã¥À¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +プログラムヘッダテーブルとセクションヘッダテーブルの +ファイル内でのオフセットは、ELF ヘッダに定義されている。 .\"O The two tables describe the rest of the particularities of .\"O the file. -¤³¤Î 2 ¤Ä¤Î¥Æ¡¼¥Ö¥ë¤Ï¥Õ¥¡¥¤¥ë¤Î»Ä¤ê¤ÎÉôʬ¤Î¾ÜºÙ¤òµ­½Ò¤¹¤ë¡£ +この 2 つのテーブルはファイルの残りの部分の詳細を記述する。 .PP .\"O .\" Applications which wish to process ELF binary files for their native .\"O .\" architecture only should include .\"O .\" .I .\"O .\" in their source code. -.\" ¥Í¥¤¥Æ¥£¥Ö¤Ê¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î ELF ¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤ò½èÍý¤·¤¿¤¤ -.\" ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢¥½¡¼¥¹¥³¡¼¥É¤Ë +.\" ネイティブなアーキテクチャの ELF バイナリファイルを処理したい +.\" アプリケーションは、ソースコードに .\" .I -.\" ¤ò´Þ¤á¤ë¤À¤±¤Ç¤è¤¤¡£ +.\" を含めるだけでよい。 .\"O .\" These applications should need to refer to .\"O .\" all the types and structures by their generic names .\"O .\" "Elf_xxx" .\"O .\" and to the macros by .\"O .\" "ELF_xxx". -.\" ¤³¤ì¤é¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢¥¸¥§¥Í¥ê¥Ã¥¯Ì¾ +.\" これらのアプリケーションは、ジェネリック名 .\" all the types and structures by their generic names .\" "Elf_xxx" -.\" ¤Ë¤è¤Ã¤ÆÁ´¤Æ¤Î·¿¤È¹½Â¤ÂΤò»²¾È¤·¤¿¤ê¡¢ +.\" によって全ての型と構造体を参照したり、 .\" "ELF_xxx" -.\" ¤Ë¤è¤Ã¤Æ¥Þ¥¯¥í¤ò»²¾È¤·¤¿¤ê¤¹¤ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +.\" によってマクロを参照したりするすべきである。 .\"O .\" Applications written this way can be compiled on any architecture, .\"O .\" regardless of whether the host is 32-bit or 64-bit. -.\" ¤³¤Î¤è¤¦¤Ë¤·¤Æ½ñ¤«¤ì¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢ -.\" ¥Û¥¹¥È¤¬ 32 ¥Ó¥Ã¥È¤« 64 ¥Ó¥Ã¥È¤«¤Ë´Ø¤ï¤é¤º¡¢ -.\" ¤É¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¾å¤Ç¤â¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤ë¡£ +.\" このようにして書かれたアプリケーションは、 +.\" ホストが 32 ビットか 64 ビットかに関わらず、 +.\" どのアーキテクチャ上でもコンパイルできる。 .\" .PP .\"O .\" Should an application need to process ELF files of an unknown .\"O .\" architecture, then the application needs to explicitly use either @@ -109,28 +109,28 @@ ELF .\"O .\" or .\"O .\" "Elf64_xxx" .\"O .\" type and structure names. -.\" ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬Ì¤ÃΤΥ¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î ELF ¥Õ¥¡¥¤¥ë¤ò -.\" ½èÍý¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¡¢¤½¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÏÌÀ¼¨Åª¤Ë +.\" アプリケーションが未知のアーキテクチャの ELF ファイルを +.\" 処理する必要がある場合、そのアプリケーションは明示的に .\" "Elf32_xxx" -.\" ¤Þ¤¿¤Ï +.\" または .\" "Elf64_xxx" -.\" ¤È¤¤¤¦·¿Ì¾¤È¹½Â¤ÂÎ̾¤ò»È¤¦É¬Íפ¬¤¢¤ë¡£ +.\" という型名と構造体名を使う必要がある。 .\"O .\" Likewise, the macros need to be identified by .\"O .\" "ELF32_xxx" .\"O .\" or .\"O .\" "ELF64_xxx". -.\" ƱÍͤˡ¢¥Þ¥¯¥í¤Ï +.\" 同様に、マクロは .\" "ELF32_xxx" -.\" ¤Þ¤¿¤Ï +.\" または .\" "ELF64_xxx" -.\" ¤Ç¼±Ê̤µ¤ì¤ëɬÍפ¬¤¢¤ë¡£ +.\" で識別される必要がある。 .\" .PP .\"O This header file describes the above mentioned headers as C structures .\"O and also includes structures for dynamic sections, relocation sections and .\"O symbol tables. -¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ï¾åµ­¤Î¥Ø¥Ã¥À¤ò C ¸À¸ì¤Î¹½Â¤ÂΤǵ­½Ò¤·¡¢ -¤Þ¤¿Æ°Åª¥»¥¯¥·¥ç¥ó¡¦ºÆÇÛÃÖ²Äǽ¥»¥¯¥·¥ç¥ó¡¦¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤Î¹½Â¤ÂΤâ -´Þ¤ó¤Ç¤¤¤ë¡£ +このヘッダファイルは上記のヘッダを C 言語の構造体で記述し、 +また動的セクション・再配置可能セクション・シンボルテーブルの構造体も +含んでいる。 .PP .\"O The following types are used for N-bit architectures (N=32,64, .\"O .I ElfN @@ -143,30 +143,30 @@ ELF .\"O .I uint32_t .\"O or .\"O .IR uint64_t ): -°Ê²¼¤Î·¿¤Ï N ¥Ó¥Ã¥È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç»È¤ï¤ì¤ë (N=32,64 ¤Ç¤¢¤ê +以下の型は N ビットアーキテクチャで使われる (N=32,64 であり .I ElfN -¤Ï +は .I Elf32 -¤Þ¤¿¤Ï +または .I Elf64 -¤òɽ¤·¡¢ +を表し、 .I uintN_t -¤Ï +は .I uint32_t -¤Þ¤¿¤Ï +または .I uint64_t -¤òɽ¤¹): +を表す): .in +4n .nf .\"O ElfN_Addr Unsigned program address, uintN_t -ElfN_Addr Éä¹æ¤Ê¤·¤Î¥×¥í¥°¥é¥à¥¢¥É¥ì¥¹, uintN_t +ElfN_Addr 符号なしのプログラムアドレス, uintN_t .\"O ElfN_Off Unsigned file offset, uintN_t -ElfN_Off Éä¹æ¤Ê¤·¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È, uintN_t +ElfN_Off 符号なしのファイルオフセット, uintN_t .\"O ElfN_Section Unsigned section index, uint16_t -ElfN_Section Éä¹æ¤Ê¤·¤Î¥»¥¯¥·¥ç¥ó¥¤¥ó¥Ç¥Ã¥¯¥¹, uint16_t +ElfN_Section 符号なしのセクションインデックス, uint16_t .\"O ElfN_Versym Unsigned version symbol information, uint16_t -ElfN_Versym Éä¹æ¤Ê¤·¤Î¥Ð¡¼¥¸¥ç¥ó¥·¥ó¥Ü¥ë¾ðÊó, uint16_t +ElfN_Versym 符号なしのバージョンシンボル情報, uint16_t Elf_Byte unsigned char ElfN_Half uint16_t ElfN_Sword int32_t @@ -174,7 +174,7 @@ ElfN_Word uint32_t ElfN_Sxword int64_t ElfN_Xword uint64_t .\"O .\" Elf32_Size Unsigned object size -.\" Elf32_Size Éä¹æ¤Ê¤·¤Î¥ª¥Ö¥¸¥§¥¯¥È¥µ¥¤¥º +.\" Elf32_Size 符号なしのオブジェクトサイズ .fi .in .PP @@ -190,41 +190,41 @@ ElfN_Xword uint64_t .\"O .IR uint16_t . .\"O In order to avoid confusion these types are replaced by explicit ones .\"O in the below.) -(Ãí°Õ: *BSD ¤Ç¤ÎÍѸì¤Ï¾¯¤·°Û¤Ê¤ë¡£ +(注意: *BSD での用語は少し異なる。 .I Elf64_Half -¤Ï +は .I Elf32_Half -¤Î 2 ÇܤǤ¢¤ê¡¢ +の 2 倍であり、 .I Elf64Quarter -¤¬ +が .I uint16_t -¤ËÍѤ¤¤é¤ì¤ë¡£ -º®Íð¤òÈò¤±¤ë¤¿¤á¡¢°Ê²¼¤Ç¤Ï¡¢¤³¤ì¤é¤Î·¿¤Ï¥µ¥¤¥º¤¬¼«ÌÀ¤Ê·¿¤ËÃÖ¤­´¹¤¨¤Æ¤¢¤ë¡£) +に用いられる。 +混乱を避けるため、以下では、これらの型はサイズが自明な型に置き換えてある。) .PP .\"O All data structures that the file format defines follow the .\"O "natural" .\"O size and alignment guidelines for the relevant class. -¤³¤Î¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤¬ÄêµÁ¤¹¤ëÁ´¤Æ¤Î¥Ç¡¼¥¿¹½Â¤ÂΤϡ¢ -´ØÏ¢¤¹¤ë¥¯¥é¥¹¤Î -"¼«Á³¤Ê" -¥µ¥¤¥º¤ÈÇÛÃ֤λؿˤ˽¾¤¦¡£ +このファイルフォーマットが定義する全てのデータ構造体は、 +関連するクラスの +"自然な" +サイズと配置の指針に従う。 .\"O If necessary, .\"O data structures contain explicit padding to ensure 4-byte alignment .\"O for 4-byte objects, to force structure sizes to a multiple of 4, etc. -ɬÍפʾì¹ç¡¢¥Ç¡¼¥¿¹½Â¤ÂΤǤÏÌÀ¼¨Åª¤Ê¥Ñ¥Ç¥£¥ó¥° (padding, µÍ¤á¹þ¤ß) -¤¬¹Ô¤Ê¤ï¤ì¤ë¡£¤³¤ì¤Ï 4 ¥Ð¥¤¥È¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ¹¤ë -4 ¥Ð¥¤¥ÈÇÛÃÖ¤òÊݾڤ¹¤ë¤¿¤á¤ä¡¢ -¹½Â¤ÂΤΥµ¥¤¥º¤ò 4 ¤ÎÇÜ¿ô¤Ë¤¹¤ë¤¿¤á¤Ê¤É¤Ç¤¢¤ë¡£ +必要な場合、データ構造体では明示的なパディング (padding, 詰め込み) +が行なわれる。これは 4 バイトオブジェクトに対する +4 バイト配置を保証するためや、 +構造体のサイズを 4 の倍数にするためなどである。 .PP .\"O The ELF header is described by the type .\"O .I Elf32_Ehdr .\"O or .\"O .IR Elf64_Ehdr : -ELF ¥Ø¥Ã¥À¤Ï·¿ +ELF ヘッダは型 .I Elf32_Ehdr -¤Þ¤¿¤Ï +または .I Elf64_Ehdr -¤Çµ­½Ò¤µ¤ì¤ë: +で記述される: .in +4n .nf @@ -250,26 +250,26 @@ typedef struct { .in .PP .\"O The fields have the following meanings: -¥Õ¥£¡¼¥ë¥É¤Ï°Ê²¼¤Î°ÕÌ£¤ò»ý¤Ä: +フィールドは以下の意味を持つ: .\" .Bl -tag -width "e_phentsize" .TP 12 .IR e_ident .\"O This array of bytes specifies to interpret the file, .\"O independent of the processor or the file's remaining contents. -¤³¤Î¥Ð¥¤¥ÈÇÛÎó¤Ï¡¢¥×¥í¥»¥Ã¥µ¤ä¥Õ¥¡¥¤¥ë¤Î¾¤ÎÉôʬ¤Ë¤Ï°Í¸¤»¤º¤Ë¡¢ -¥Õ¥¡¥¤¥ë¤ò²ò¼á (interpret) ¤¹¤ë¤¿¤á¤Ë»ØÄꤵ¤ì¤ë¡£ +このバイト配列は、プロセッサやファイルの他の部分には依存せずに、 +ファイルを解釈 (interpret) するために指定される。 .\"O Within this array everything is named by macros, which start with .\"O the prefix .\"O .BR EI_ .\"O and may contain values which start with the prefix .\"O .BR ELF . -¤³¤ÎÇÛÎóÆâ¤Î¤¹¤Ù¤Æ¤Î¤â¤Î¤Ï¡¢ÀÜƬ¼­ +この配列内のすべてのものは、接頭辞 .BR EI_ -¤Ç»Ï¤Þ¤ë¥Þ¥¯¥í¤Î̾Á°¤¬ÉÕ¤­¡¢ÀÜƬ¼­ +で始まるマクロの名前が付き、接頭辞 .BR ELF -¤Ç»Ï¤Þ¤ëÃͤò»ý¤Ä¡£ +で始まる値を持つ。 .\"O The following macros are defined: -°Ê²¼¤Î¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +以下のマクロが定義されている: .RS 12 .\" .Bl -tag -width "EI_VERSION" \" EI_ABIVERSION .TP 12 @@ -277,59 +277,59 @@ typedef struct { .\"O The first byte of the magic number. .\"O It must be filled with .\"O .BR ELFMAG0 . -¥Þ¥¸¥Ã¥¯¥Ê¥ó¥Ð¡¼¤ÎÂè 1 ¥Ð¥¤¥È¡£ +マジックナンバーの第 1 バイト。 .BR ELFMAG0 -¤ÇËä¤á¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +で埋めなければならない。 (0: 0x7f) .TP .BR EI_MAG1 .\"O The second byte of the magic number. .\"O It must be filled with .\"O .BR ELFMAG1 . -¥Þ¥¸¥Ã¥¯¥Ê¥ó¥Ð¡¼¤ÎÂè 2 ¥Ð¥¤¥È¡£ +マジックナンバーの第 2 バイト。 .BR ELFMAG1 -¤ÇËä¤á¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +で埋めなければならない。 (1: \(aqE\(aq) .TP .BR EI_MAG2 .\"O The third byte of the magic number. .\"O It must be filled with .\"O .BR ELFMAG2 . -¥Þ¥¸¥Ã¥¯¥Ê¥ó¥Ð¡¼¤ÎÂè 3 ¥Ð¥¤¥È¡£ +マジックナンバーの第 3 バイト。 .BR ELFMAG2 -¤ÇËä¤á¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +で埋めなければならない。 (2: \(aqL\(aq) .TP .BR EI_MAG3 .\"O The fourth byte of the magic number. .\"O It must be filled with .\"O .BR ELFMAG3 . -¥Þ¥¸¥Ã¥¯¥Ê¥ó¥Ð¡¼¤ÎÂè 4 ¥Ð¥¤¥È¡£ +マジックナンバーの第 4 バイト。 .BR ELFMAG3 -¤ÇËä¤á¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +で埋めなければならない。 (3: \(aqF\(aq) .TP .BR EI_CLASS .\"O The fifth byte identifies the architecture for this binary: -Âè 5 ¥Ð¥¤¥È¤Ï¡¢¤³¤Î¥Ð¥¤¥Ê¥ê¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ò¼¨¤¹: +第 5 バイトは、このバイナリのアーキテクチャを示す: .RS 12 .\" .Bl -tag -width "ELFCLASSNONE" -compact .TP 14 .PD 0 .BR ELFCLASSNONE .\"O This class is invalid. -¤³¤Î¥¯¥é¥¹¤ÏÉÔÀµ¤Ç¤¢¤ë¡£ +このクラスは不正である。 .TP .BR ELFCLASS32 .\"O This defines the 32-bit architecture. -32 ¥Ó¥Ã¥È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤òÄêµÁ¤¹¤ë¡£ +32 ビットアーキテクチャを定義する。 .\"O It supports machines with files .\"O and virtual address spaces up to 4 Gigabytes. -¥Õ¥¡¥¤¥ë¤È²¾ÁÛ¥¢¥É¥ì¥¹¶õ´Ö¤¬ 4 ¥®¥¬¥Ð¥¤¥È¤Þ¤Ç¤Î¥Þ¥·¥ó¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ +ファイルと仮想アドレス空間が 4 ギガバイトまでのマシンをサポートする。 .TP .BR ELFCLASS64 .\"O This defines the 64-bit architecture. -64 ¥Ó¥Ã¥È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤òÄêµÁ¤¹¤ë¡£ +64 ビットアーキテクチャを定義する。 .PD .RE .\" .El @@ -338,24 +338,24 @@ typedef struct { .\"O The sixth byte specifies the data encoding of the processor-specific .\"O data in the file. .\"O Currently these encodings are supported: -Âè 6 ¥Ð¥¤¥È¤Ï¥Õ¥¡¥¤¥ëÆâ¤Î¥×¥í¥»¥Ã¥µ¸ÇÍ­¥Ç¡¼¥¿¤Î -¥Ç¡¼¥¿¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ò»ØÄꤹ¤ë¡£ -¸½ºß¤Î¤È¤³¤í°Ê²¼¤Î¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë: +第 6 バイトはファイル内のプロセッサ固有データの +データエンコーディングを指定する。 +現在のところ以下のエンコーディングがサポートされている: .\" .Bl -tag -width "ELFDATA2LSB" -compact .RS 12 .TP 14 .PD 0 .BR ELFDATANONE .\"O Unknown data format. -ÉÔÌÀ¤Ê¥Ç¡¼¥¿¥Õ¥©¡¼¥Þ¥Ã¥È¡£ +不明なデータフォーマット。 .TP .BR ELFDATA2LSB .\"O Two's complement, little-endian. -2 ¤ÎÊä¿ô¡¢¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¡£ +2 の補数、リトルエンディアン。 .TP .BR ELFDATA2MSB .\"O Two's complement, big-endian. -2 ¤ÎÊä¿ô¡¢¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¡£ +2 の補数、ビッグエンディアン。 .PD .RE .\" .El @@ -363,17 +363,17 @@ typedef struct { .PD 0 .BR EI_VERSION .\"O The version number of the ELF specification: -ELF »ÅÍͤΥС¼¥¸¥ç¥óÈÖ¹æ: +ELF 仕様のバージョン番号: .\" .Bl -tag -width "EV_CURRENT" -compact .RS 12 .TP 14 .BR EV_NONE .\"O Invalid version. -ÉÔÀµ¤Ê¥Ð¡¼¥¸¥ç¥ó¡£ +不正なバージョン。 .TP .BR EV_CURRENT .\"O Current version. -¸½ºß¤Î¥Ð¡¼¥¸¥ç¥ó¡£ +現在のバージョン。 .PD .RE .\".El @@ -381,23 +381,23 @@ ELF .BR EI_OSABI .\"O This byte identifies the operating system .\"O and ABI to which the object is targeted. -¤³¤Î¥Ð¥¤¥È¤Ï¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¿¡¼¥²¥Ã¥È¤È¤Ê¤ë -¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤È ABI ¤ò¼¨¤¹¡£ +このバイトはオブジェクトのターゲットとなる +オペレーティングシステムと ABI を示す。 .\"O Some fields in other ELF structures have flags .\"O and values that have platform-specific meanings; -¾¤Î ELF ¹½Â¤ÂΤΥե£¡¼¥ë¥É¤Ë¤Ï¡¢ -¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¸ÇÍ­¤Î°ÕÌ£¤ò»ý¤Ä¥Õ¥é¥°¤äÃͤò»ý¤Ä¤â¤Î¤â¤¢¤ë; +他の ELF 構造体のフィールドには、 +プラットフォーム固有の意味を持つフラグや値を持つものもある; .\"O the interpretation of those fields is determined by the value of this byte. .\"O E.g.: -¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Î²ò¼á¤Ï¡¢¤³¤Î¥Ð¥¤¥È¤ÎÃͤˤè¤Ã¤Æ·èÄꤵ¤ì¤ë¡£ -Î㤨¤Ð: +これらのフィールドの解釈は、このバイトの値によって決定される。 +例えば: .\" .Bl -tag -width "ELFOSABI_STANDALONE" -compact .RS 12 .TP 20 .PD 0 .BR ELFOSABI_NONE .\"O Same as ELFOSABI_SYSV -ELFOSABI_SYSV ¤ÈƱ¤¸¡£ +ELFOSABI_SYSV と同じ。 .\" 0 .TP .BR ELFOSABI_SYSV @@ -452,12 +452,12 @@ TRU64 UNIX ABI. .TP .BR ELFOSABI_ARM .\"O ARM architecture ABI. -ARM ¥¢¡¼¥­¥Æ¥¯¥Á¥ã ABI. +ARM アーキテクチャ ABI. .\" 97 .TP .BR ELFOSABI_STANDALONE .\"O Stand-alone (embedded) ABI. -¥¹¥¿¥ó¥É¥¢¥í¥ó (ÁȤ߹þ¤ß) ABI. +スタンドアロン (組み込み) ABI. .\" 255 .\" .El .PD @@ -466,18 +466,18 @@ ARM .BR EI_ABIVERSION .\"O This byte identifies the version of the ABI .\"O to which the object is targeted. -¤³¤Î¥Ð¥¤¥È¤Ï¥ª¥Ö¥¸¥§¥¯¥È¤¬¥¿¡¼¥²¥Ã¥È¤È¤·¤Æ¤¤¤ë ABI ¤Î¥Ð¡¼¥¸¥ç¥ó¤ò¼¨¤¹¡£ +このバイトはオブジェクトがターゲットとしている ABI のバージョンを示す。 .\"O This field is used to distinguish among incompatible versions of an ABI. -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¸ß´¹À­¤Î¤Ê¤¤ ABI ¤Î¥Ð¡¼¥¸¥ç¥ó¤ò¶èÊ̤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ +このフィールドは互換性のない ABI のバージョンを区別するために使われる。 .\"O The interpretation of this version number .\"O is dependent on the ABI identified by the .\"O .B EI_OSABI .\"O field. -¤³¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤Î²ò¼á¤Ï¡¢ +このバージョン番号の解釈は、 .B EI_OSABI -¥Õ¥£¡¼¥ë¥É¤Ç¼±Ê̤µ¤ì¤ë ABI ¤Ë°Í¸¤¹¤ë¡£ +フィールドで識別される ABI に依存する。 .\"O Applications conforming to this specification use the value 0. -¤³¤Î»ÅÍͤ˽àµò¤¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢ÃÍ 0 ¤ò»È¤¦¡£ +この仕様に準拠するアプリケーションは、値 0 を使う。 .TP .BR EI_PAD .\"O Start of padding. @@ -488,52 +488,52 @@ ARM .\"O .B EI_PAD .\"O will change in .\"O the future if currently unused bytes are given meanings. -¥Ñ¥Ç¥£¥ó¥°¤Î³«»Ï¡£ -¤³¤ì¤é¤Î¥Ð¥¤¥È¤ÏͽÌ󤵤ì¤Æ¤ª¤ê¡¢0 ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤òÆɤ߹þ¤à¥×¥í¥°¥é¥à¤Ï¡¢¤³¤ì¤é¤Î¥Ð¥¤¥È¤ò̵»ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¸½ºß»È¤ï¤ì¤Æ¤¤¤Ê¤¤¥Ð¥¤¥È¤Ë°ÕÌ£¤¬Í¿¤¨¤é¤ì¤ë¾ì¹ç¡¢ +パディングの開始。 +これらのバイトは予約されており、0 に設定されている。 +これらを読み込むプログラムは、これらのバイトを無視すべきである。 +現在使われていないバイトに意味が与えられる場合、 .B EI_PAD -¤ÎÃͤϾ­ÍèÊѹ¹¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +の値は将来変更されるかもしれない。 .TP .BR EI_BRAND .\"O Start of architecture identification. -¥¢¡¼¥­¥Æ¥¯¥Á¥ã ID ¤Î³«»Ï¡£ +アーキテクチャ ID の開始。 .TP .BR EI_NIDENT .\"O The size of the .\"O .I e_ident .\"O array. .I e_ident -ÇÛÎó¤Î¥µ¥¤¥º¡£ +配列のサイズ。 .\" .El .RE .TP .IR e_type .\"O This member of the structure identifies the object file type: -¤³¤Î¹½Â¤ÂΤΥá¥ó¥Ð¤Ï¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤ò¼¨¤¹: +この構造体のメンバはオブジェクトファイルタイプを示す: .RS 12 .\" .Bl -tag -width "ET_NONE" -compact .TP 12 .PD 0 .BR ET_NONE .\"O An unknown type. -ÉÔÌÀ¤Ê¥¿¥¤¥×¡£ +不明なタイプ。 .TP .BR ET_REL .\"O A relocatable file. -ºÆÇÛÃÖ²Äǽ¥Õ¥¡¥¤¥ë¡£ +再配置可能ファイル。 .TP .BR ET_EXEC .\"O An executable file. -¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¡£ +実行可能ファイル。 .TP .BR ET_DYN .\"O A shared object. -¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¡£ +共有オブジェクト。 .TP .BR ET_CORE .\"O A core file. -¥³¥¢¥Õ¥¡¥¤¥ë¡£ +コアファイル。 .PD .RE .\" .El @@ -541,15 +541,15 @@ ARM .IR e_machine .\"O This member specifies the required architecture for an individual file. .\"O E.g.: -¤³¤Î¥á¥ó¥Ð¤Ï¸Ä¡¹¤Î¥Õ¥¡¥¤¥ë¤ËɬÍפȤµ¤ì¤ë¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ò»ØÄꤹ¤ë¡£ -Îã: +このメンバは個々のファイルに必要とされるアーキテクチャを指定する。 +例: .RS 12 .\" .Bl -tag -width "EM_MIPS_RS4_BE" -compact .TP 12 .PD 0 .BR EM_NONE .\"O An unknown machine. -ÉÔÌÀ¤Ê¥Þ¥·¥ó¡£ +不明なマシン。 .\" 0 .TP .BR EM_M32 @@ -581,16 +581,16 @@ Intel 80860. .TP .BR EM_MIPS .\"O MIPS RS3000 (big-endian only). -MIPS RS3000 (¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤Î¤ß)¡£ +MIPS RS3000 (ビッグエンディアンのみ)。 .\" 8 .\" EM_S370 .\" 9 .\" .It Dv EM_MIPS_RS4_BE .\"O .\" MIPS RS4000 (big-endian only). Deprecated. -.\" MIPS RS4000 (¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤Î¤ß)¡£Èó¿ä¾©¡£ +.\" MIPS RS4000 (ビッグエンディアンのみ)。非推奨。 .\" 10 .\"O .\" EM_MIPS_RS3_LE (MIPS R3000 little-endian) -.\" EM_MIPS_RS3_LE (MIPS R3000 ¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó)¡£ +.\" EM_MIPS_RS3_LE (MIPS R3000 リトルエンディアン)。 .\" 10 .TP .BR EM_PARISC @@ -599,7 +599,7 @@ HP/PA. .TP .BR EM_SPARC32PLUS .\"O SPARC with enhanced instruction set. -³Èĥ̿Î᥻¥Ã¥ÈÉÕ¤­ SPARC¡£ +拡張命令セット付き SPARC。 .\" 18 .TP .BR EM_PPC @@ -643,25 +643,25 @@ DEC Vax. .\" Compaq [DEC] Alpha. .\" .It Dv EM_ALPHA_EXP .\"O .\" Compaq [DEC] Alpha with enhanced instruction set. -.\" ³Èĥ̿Î᥻¥Ã¥ÈÉÕ¤­ Compaq [DEC] Alpha¡£ +.\" 拡張命令セット付き Compaq [DEC] Alpha。 .PD .RE .\" .El .TP .IR e_version .\"O This member identifies the file version: -¤³¤Î¥á¥ó¥Ð¤Ï¥Õ¥¡¥¤¥ë¥Ð¡¼¥¸¥ç¥ó¤ò¼¨¤¹: +このメンバはファイルバージョンを示す: .\" .Bl -tag -width "EV_CURRENT" -compact .RS 12 .TP 12 .PD 0 .BR EV_NONE .\"O Invalid version. -ÉÔÀµ¤Ê¥Ð¡¼¥¸¥ç¥ó¡£ +不正なバージョン。 .TP .BR EV_CURRENT .\"O Current version. -¸½ºß¤Î¥Ð¡¼¥¸¥ç¥ó¡£ +現在のバージョン。 .\" .El .PD .RE @@ -669,114 +669,114 @@ DEC Vax. .IR e_entry .\"O This member gives the virtual address to which the system first transfers .\"O control, thus starting the process. -¤³¤Î¥á¥ó¥Ð¤Ï¡¢¥·¥¹¥Æ¥à¤¬ºÇ½é¤ËÀ©¸æ¤òÅϤ¹¡¢ -¤Ä¤Þ¤ê¥×¥í¥»¥¹¤ò³«»Ï¤¹¤ë²¾ÁÛ¥¢¥É¥ì¥¹¤ò»ØÄꤹ¤ë¡£ +このメンバは、システムが最初に制御を渡す、 +つまりプロセスを開始する仮想アドレスを指定する。 .\"O If the file has no associated entry .\"O point, this member holds zero. -¥Õ¥¡¥¤¥ë¤Ë¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È¤¬´ØÏ¢ÉÕ¤±¤é¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -¤³¤Î¥á¥ó¥Ð¤Ë¤Ï 0 ¤¬Æþ¤ë¡£ +ファイルにエントリポイントが関連付けられていない場合、 +このメンバには 0 が入る。 .TP .IR e_phoff .\"O This member holds the program header table's file offset in bytes. .\"O If .\"O the file has no program header table, this member holds zero. -¤³¤Î¥á¥ó¥Ð¤Ï¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Î -¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È (¥Ð¥¤¥Èñ°Ì) ¤òÊÝ»ý¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¤Ë¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤¬¤Ê¤¤¾ì¹ç¡¢ -¤³¤Î¥á¥ó¥Ð¤Ë¤Ï 0 ¤¬Æþ¤ë¡£ +このメンバはプログラムヘッダテーブルの +ファイルオフセット (バイト単位) を保持する。 +ファイルにプログラムヘッダテーブルがない場合、 +このメンバには 0 が入る。 .TP .IR e_shoff .\"O This member holds the section header table's file offset in bytes. .\"O If the .\"O file has no section header table this member holds zero. -¤³¤Î¥á¥ó¥Ð¤Ï¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Î -¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È (¥Ð¥¤¥Èñ°Ì) ¤òÊÝ»ý¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¤Ë¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤¬¤Ê¤¤¾ì¹ç¡¢ -¤³¤Î¥á¥ó¥Ð¤Ë¤Ï 0 ¤¬Æþ¤ë¡£ +このメンバはセクションヘッダテーブルの +ファイルオフセット (バイト単位) を保持する。 +ファイルにセクションヘッダテーブルがない場合、 +このメンバには 0 が入る。 .TP .IR e_flags .\"O This member holds processor-specific flags associated with the file. .\"O Flag names take the form EF_`machine_flag'. .\"O Currently no flags have been defined. -¤³¤Î¥á¥ó¥Ð¤Ï¥Õ¥¡¥¤¥ë¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î¥Õ¥é¥°¤òÊÝ»ý¤¹¤ë¡£ -¥Õ¥é¥°¤Î̾Á°¤Ï EF_`machine_flag' ¤È¤¤¤¦·Á¼°¤Ç¤¢¤ë¡£ -¸½ºß¤Î¤È¤³¤í¥Õ¥é¥°¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +このメンバはファイルに関連付けられたプロセッサ固有のフラグを保持する。 +フラグの名前は EF_`machine_flag' という形式である。 +現在のところフラグは定義されていない。 .TP .IR e_ehsize .\"O This member holds the ELF header's size in bytes. -¤³¤Î¥á¥ó¥Ð¤Ï ELF ¥Ø¥Ã¥À¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤òÊÝ»ý¤¹¤ë¡£ +このメンバは ELF ヘッダサイズ (バイト単位) を保持する。 .TP .IR e_phentsize .\"O This member holds the size in bytes of one entry in the file's program header .\"O table; all entries are the same size. -¤³¤Î¥á¥ó¥Ð¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤Î¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Î -1 ¥¨¥ó¥È¥ê¤¢¤¿¤ê¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤òÊÝ»ý¤¹¤ë; -Á´¤Æ¤Î¥¨¥ó¥È¥ê¤ÏƱ¤¸¥µ¥¤¥º¤Ç¤¢¤ë¡£ +このメンバはこのファイルのプログラムヘッダテーブルの +1 エントリあたりのサイズ (バイト単位) を保持する; +全てのエントリは同じサイズである。 .TP .IR e_phnum .\"O This member holds the number of entries in the program header .\"O table. -¤³¤Î¥á¥ó¥Ð¤Ï¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Ë¤¢¤ë¥¨¥ó¥È¥ê¤Î¿ô¤òÊÝ»ý¤¹¤ë¡£ +このメンバはプログラムヘッダテーブルにあるエントリの数を保持する。 .\"O Thus the product of .\"O .IR e_phentsize .\"O and .\"O .IR e_phnum .\"O gives the table's size .\"O in bytes. -¤è¤Ã¤Æ +よって .IR e_phentsize -¤È +と .IR e_phnum -¤ÎÀѤ¬¥Æ¡¼¥Ö¥ë¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤Ë¤Ê¤ë¡£ +の積がテーブルサイズ (バイト単位) になる。 .\"O If a file has no program header, .\"O .IR e_phnum .\"O holds the value zero. -¥Õ¥¡¥¤¥ë¤Ë¥×¥í¥°¥é¥à¥Ø¥Ã¥À¤¬¤Ê¤¤¾ì¹ç¡¢ +ファイルにプログラムヘッダがない場合、 .IR e_phnum -¤ÏÃÍ 0 ¤òÊÝ»ý¤¹¤ë¡£ +は値 0 を保持する。 .TP .IR e_shentsize .\"O This member holds a sections header's size in bytes. .\"O A section header is one .\"O entry in the section header table; all entries are the same size. -¤³¤Î¥á¥ó¥Ð¤Ï¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤òÊÝ»ý¤¹¤ë¡£ -¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¤Ï¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Î 1 ¤Ä¤Î¥¨¥ó¥È¥ê¤Ç¤¢¤ë; -Á´¤Æ¤Î¥¨¥ó¥È¥ê¤ÏƱ¤¸¥µ¥¤¥º¤Ç¤¢¤ë¡£ +このメンバはセクションヘッダのサイズ (バイト単位) を保持する。 +セクションヘッダはセクションヘッダテーブルの 1 つのエントリである; +全てのエントリは同じサイズである。 .TP .IR e_shnum .\"O This member holds the number of entries in the section header table. -¤³¤Î¥á¥ó¥Ð¤Ï¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Ë¤¢¤ë¥¨¥ó¥È¥ê¤Î¿ô¤òÊÝ»ý¤¹¤ë¡£ +このメンバはセクションヘッダテーブルにあるエントリの数を保持する。 .\"O Thus .\"O the product of .\"O .IR e_shentsize .\"O and .\"O .IR e_shnum .\"O gives the section header table's size in bytes. -¤è¤Ã¤Æ +よって .IR e_shentsize -¤È +と .IR e_shnum -¤ÎÀѤϥ»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤Ë¤Ê¤ë¡£ +の積はセクションヘッダテーブルのサイズ (バイト単位) になる。 .\"O If a file has no section .\"O header table, .\"O .IR e_shnum .\"O holds the value of zero. -¥Õ¥¡¥¤¥ë¤Ë¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤¬¤Ê¤¤¾ì¹ç¡¢ +ファイルにセクションヘッダテーブルがない場合、 .IR e_shnum -¤ÏÃÍ 0 ¤òÊÝ»ý¤¹¤ë¡£ +は値 0 を保持する。 .TP .IR e_shstrndx .\"O This member holds the section header table index of the entry associated .\"O with the section name string table. -¤³¤Î¥á¥ó¥Ð¤Ï¥»¥¯¥·¥ç¥ó̾ʸ»úÎó¥Æ¡¼¥Ö¥ë¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥¨¥ó¥È¥ê¤Î -¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÊÝ»ý¤¹¤ë¡£ +このメンバはセクション名文字列テーブルに関連付けられたエントリの +セクションヘッダテーブルインデックスを保持する。 .\"O If the file has no section name string .\"O table, this member holds the value .\"O .BR SHN_UNDEF . -¥Õ¥¡¥¤¥ë¤Ë¥»¥¯¥·¥ç¥ó̾ʸ»úÎó¥Æ¡¼¥Ö¥ë¤¬¤Ê¤¤¾ì¹ç¡¢ -¤³¤Î¥á¥ó¥Ð¤ÏÃÍ +ファイルにセクション名文字列テーブルがない場合、 +このメンバは値 .BR SHN_UNDEF -¤òÊÝ»ý¤¹¤ë¡£ +を保持する。 .BR SHN_UNDEF . .RS 12 .\" .Bl -tag -width "SHN_LORESERVE" @@ -784,38 +784,38 @@ DEC Vax. .BR SHN_UNDEF .\"O This value marks an undefined, missing, irrelevant, or otherwise meaningless .\"O section reference. -¤³¤ÎÃͤÏ̤ÄêµÁ¡¦Â¸ºß¤·¤Ê¤¤¡¦Ìµ´Ø·¸¤½¤Î¾¡¢ -°ÕÌ£¤Î¤Ê¤¤¥»¥¯¥·¥ç¥ó¤Î»²¾È¤Ç¤¢¤ë¤³¤È¤òɽ¤¹¡£ +この値は未定義・存在しない・無関係その他、 +意味のないセクションの参照であることを表す。 .\"O For example, a symbol .\"O "defined" .\"O relative to section number .\"O .BR SHN_UNDEF .\"O is an undefined symbol. -Î㤨¤Ð¡¢¥»¥¯¥·¥ç¥óÈÖ¹æ +例えば、セクション番号 .BR SHN_UNDEF -¤Ë´ØÏ¢¤Å¤±¤Æ¡ÖÄêµÁ¡×¤µ¤ì¤¿¥·¥ó¥Ü¥ë¤Ï¡¢¡Ö̤ÄêµÁ¡×¤Ê¥·¥ó¥Ü¥ë¤Ç¤¢¤ë¡£ -.\"nakano ¤³¤³¤Î "defined" ¤ÏÄ̾ï¤Îʸ¤Î°ìÉô¤Ç¤Ï¡© +に関連づけて「定義」されたシンボルは、「未定義」なシンボルである。 +.\"nakano ここの "defined" は通常の文の一部では? .TP .BR SHN_LORESERVE .\"O This value specifies the lower bound of the range of reserved indices. -¤³¤ÎÃͤÏͽÌóºÑ¤ß¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹ÈϰϤβ¼¸Â¤ò»ØÄꤹ¤ë¡£ +この値は予約済みのインデックス範囲の下限を指定する。 .TP .BR SHN_LOPROC .\"O Values greater than or equal to .\"O .BR SHN_HIPROC .\"O are reserved for processor-specific semantics. -¤³¤ÎÃͰʾå¤Ç +この値以上で .BR SHN_HIPROC -°Ê²¼¤ÎÃͤϡ¢¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ +以下の値は、プロセッサ固有の意味に予約されている。 .TP .BR SHN_HIPROC .\"O Values less than or equal to .\"O .BR SHN_LOPROC .\"O are reserved for processor-specific semantics. -¤³¤ÎÃͰʲ¼¤Ç +この値以下で .BR SHN_LOPROC -°Ê¾å¤ÎÃͤϡ¢¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ -.\"sato: SHN_{HI,LO}PROC ¤ÎÀâÌÀ¤Ï¡¢¸¶Ê¸¤Î´Ö°ã¤¤¤é¤·¤¤¡£ +以上の値は、プロセッサ固有の意味に予約されている。 +.\"sato: SHN_{HI,LO}PROC の説明は、原文の間違いらしい。 .TP .BR SHN_ABS .\"O This value specifies absolute values for the corresponding reference. @@ -823,17 +823,17 @@ DEC Vax. .\"O example, symbols defined relative to section number .\"O .BR SHN_ABS .\"O have absolute values and are not affected by relocation. -¤³¤ÎÃͤÏÂбþ¤¹¤ë»²¾È¤ÎÀäÂÐÃͤò»ØÄꤹ¤ë¡£ -Î㤨¤Ð¡¢¥»¥¯¥·¥ç¥óÈÖ¹æ +この値は対応する参照の絶対値を指定する。 +例えば、セクション番号 .BR SHN_ABS -¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥·¥ó¥Ü¥ë¤ÏÀäÂÐÃͤòÊÝ»ý¤·¡¢ºÆÇÛÃ֤˱ƶÁ¤µ¤ì¤Ê¤¤¡£ +に関連づけられたシンボルは絶対値を保持し、再配置に影響されない。 .TP .BR SHN_COMMON .\"O Symbols defined relative to this section are common symbols, such as Fortran .\"O COMMON or unallocated C external variables. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ë´ØÏ¢¤·¤ÆÄêµÁ¤µ¤ì¤¿¥·¥ó¥Ü¥ë¤Ï¡¢ -Fortran ¤Î COMMON ¤ä C ¤Î̤³ä¤êÅö¤Æ external ÊÑ¿ô¤Î¤è¤¦¤Ê¡¢ -¶¦ÄÌ¥·¥ó¥Ü¥ë¤Ç¤¢¤ë¡£ +このセクションに関連して定義されたシンボルは、 +Fortran の COMMON や C の未割り当て external 変数のような、 +共通シンボルである。 .TP .BR SHN_HIRESERVE .\"O This value specifies the upper bound of the range of reserved @@ -843,19 +843,19 @@ Fortran .\"O .BR SHN_HIRESERVE , .\"O inclusive; the values do .\"O not reference the section header table. -¤³¤ÎÃͤÏͽÌ󤵤줿¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÎÈϰϤξå¸Â¤ò»ØÄꤹ¤ë¡£ +この値は予約されたインデックスの範囲の上限を指定する。 .BR SHN_LORESERVE -¤È +と .BR SHN_HIRESERVE -¤Ï´Þ¤Þ¤ì¤ë¡£ -¤³¤ÎÃͤϥ»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤ò»²¾È¤·¤Ê¤¤¡£ +は含まれる。 +この値はセクションヘッダテーブルを参照しない。 .\"O That is, the section header table .\"O does .\"O .I not .\"O contain entries for the reserved indices. -¤Ä¤Þ¤ê¡¢¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Ï -ͽÌ󤵤줿¥¤¥ó¥Ç¥Ã¥¯¥¹¤Î¥¨¥ó¥È¥ê¤ò -.I ´Þ¤Þ¤Ê¤¤ ¡£ +つまり、セクションヘッダテーブルは +予約されたインデックスのエントリを +.I 含まない 。 .RE .\" .El .\" .El @@ -863,41 +863,41 @@ Fortran .\"O An executable or shared object file's program header table is an array of .\"O structures, each describing a segment or other information the system needs .\"O to prepare the program for execution. -¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Ï¡¢ -¥·¥¹¥Æ¥à¤Ë¤è¤ë¥×¥í¥°¥é¥à¼Â¹Ô½àÈ÷¤ËɬÍפʡ¢ -¥»¥°¥á¥ó¥ÈÅù¤Î¾ðÊó¤òµ­½Ò¤¹¤ë¹½Â¤ÂΤÎÇÛÎó¤Ç¤¢¤ë¡£ +実行可能ファイルまたは共有オブジェクトファイルのプログラムヘッダテーブルは、 +システムによるプログラム実行準備に必要な、 +セグメント等の情報を記述する構造体の配列である。 .\"O An object file .\"O .IR segment .\"O contains one or more .\"O .IR sections . -¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î -.IR ¥»¥°¥á¥ó¥È -¤Ë¤Ï 1 ¤Ä°Ê¾å¤Î -.IR ¥»¥¯¥·¥ç¥ó -¤¬´Þ¤Þ¤ì¤ë¡£ +オブジェクトファイルの +.IR セグメント +には 1 つ以上の +.IR セクション +が含まれる。 .\"O Program headers are meaningful only for executable and shared object files. -¥×¥í¥°¥é¥à¥Ø¥Ã¥À¤Ï¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤È¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ç¤Î¤ß°ÕÌ£¤ò»ý¤Ä¡£ +プログラムヘッダは実行可能ファイルと共有オブジェクトファイルでのみ意味を持つ。 .\"O A file specifies its own program header size with the ELF header's .\"O .IR e_phentsize .\"O and .\"O .IR e_phnum .\"O members. -¥Õ¥¡¥¤¥ë¤Ï¼«¿È¤Î¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥µ¥¤¥º¤ò ELF ¥Ø¥Ã¥À¤Î +ファイルは自身のプログラムヘッダサイズを ELF ヘッダの .IR e_phentsize -¥á¥ó¥Ð¤È +メンバと .IR e_phnum -¥á¥ó¥Ð¤Ç»ØÄꤹ¤ë¡£ +メンバで指定する。 .\"O The ELF program header is described by the type .\"O .I Elf32_Phdr .\"O or .\"O .I Elf64_Phdr .\"O depending on the architecture: -ELF ¥×¥í¥°¥é¥à¥Ø¥Ã¥À¤Ï +ELF プログラムヘッダは .I Elf32_Phdr -·¿¤Þ¤¿¤Ï +型または .I Elf64_Phdr -·¿¤Çµ­½Ò¤µ¤ì¤ë -(¤É¤Á¤é¤Ë¤Ê¤ë¤«¤Ï¥¢¡¼¥­¥Æ¥¯¥Á¥ã°Í¸): +型で記述される +(どちらになるかはアーキテクチャ依存): .in +4n .nf @@ -933,41 +933,41 @@ typedef struct { .\"O in the location of the .\"O .IR p_flags .\"O member in the total struct. -32 ¥Ó¥Ã¥È¤È 64 ¥Ó¥Ã¥È¤Î¥×¥í¥°¥é¥à¥Ø¥Ã¥À¤Î¼ç¤Ê°ã¤¤¤Ï¡¢¹½Â¤ÂΤˤª¤±¤ë +32 ビットと 64 ビットのプログラムヘッダの主な違いは、構造体における .IR p_flags -¥á¥ó¥Ð¤Î°ÌÃ֤ˤ¢¤ë¡£ +メンバの位置にある。 .\" .Bl -tag -width "p_offset" .TP 12 .IR p_type .\"O This member of the Phdr struct tells what kind of segment this array .\"O element describes or how to interpret the array element's information. -Phdr ¹½Â¤ÂΤΤ³¤Î¥á¥ó¥Ð¤Ï¡¢ -¤³¤ÎÇÛÎóÍ×ÁǤ¬¤É¤Î¤è¤¦¤Ê¼ïÎà¤Î¥»¥°¥á¥ó¥È¤òµ­½Ò¤·¤Æ¤¤¤ë¤«¡¢ -¤Þ¤¿¤Ï¤³¤ÎÇÛÎóÍ×ÁǤξðÊó¤ò¤É¤Î¤è¤¦¤Ë²ò¼á¤¹¤ë¤«¡¢¤òɽ¤¹¡£ +Phdr 構造体のこのメンバは、 +この配列要素がどのような種類のセグメントを記述しているか、 +またはこの配列要素の情報をどのように解釈するか、を表す。 .\" .Bl -tag -width "PT_DYNAMIC" .RS 12 .TP 12 .BR PT_NULL .\"O The array element is unused and the other members' values are undefined. .\"O This lets the program header have ignored entries. -¤³¤ÎÇÛÎóÍ×ÁǤϻÈÍѤµ¤ì¤Æ¤ª¤é¤º¡¢¤½¤Î¾¤Î¥á¥ó¥Ð¤ÎÃͤÏ̤ÄêµÁ¤Ç¤¢¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢¤³¤Î¥×¥í¥°¥é¥à¥Ø¥Ã¥À¤Î¥¨¥ó¥È¥ê¤Ï̵»ë¤µ¤ì¤ë¡£ +この配列要素は使用されておらず、その他のメンバの値は未定義である。 +これにより、このプログラムヘッダのエントリは無視される。 .TP .BR PT_LOAD .\"O The array element specifies a loadable segment, described by .\"O .IR p_filesz .\"O and .\"O .IR p_memsz . -¤³¤ÎÇÛÎóÍ×ÁÇ¤Ï +この配列要素は .IR p_filesz -¤È +と .IR p_memsz -¤Çµ­½Ò¤µ¤ì¤ë¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¤ò»ØÄꤹ¤ë¡£ +で記述されるロード可能セグメントを指定する。 .\"O The bytes from the file are mapped to the beginning of the memory .\"O segment. -¤³¤Î¥Õ¥¡¥¤¥ë¤«¤é¤Î¥Ð¥¤¥È¥Ç¡¼¥¿¤¬¡¢¤³¤Î¥á¥â¥ê¥»¥°¥á¥ó¥È¤ÎÀèƬ¤«¤é¥Þ¥Ã¥×¤µ¤ì¤ë¡£ +このファイルからのバイトデータが、このメモリセグメントの先頭からマップされる。 .\"Osato: -.\"Osato: ¤³¤ÎÌõ¤Ï¼«¿È¤Ê¤·¡£¾¯¤·°ÕÌõµ¤Ì£¤«¤â¤·¤ì¤Ê¤¤¡£ +.\"Osato: この訳は自身なし。少し意訳気味かもしれない。 .\"Osato: .\"O If the segment's memory size .\"O .IR Sy p_memsz @@ -977,151 +977,151 @@ Phdr .\"O "extra" .\"O bytes are defined to hold the value 0 and to follow the segment's .\"O initialized area. -¥»¥°¥á¥ó¥È¤Î¥á¥â¥ê¥µ¥¤¥º +セグメントのメモリサイズ .IR Sy p_memsz -¤¬¥Õ¥¡¥¤¥ë¥µ¥¤¥º +がファイルサイズ .IR Sy p_filesz -¤è¤êÂ礭¤¤¾ì¹ç¡¢ -¡Ö;¤Ã¤¿¡×¥Ð¥¤¥È¤ÏÃÍ 0 ¤È¤Ê¤ê¡¢ -¤½¤Î¥»¥°¥á¥ó¥È½é´ü²½¥Ç¡¼¥¿¤Î¸å¤í¤ËÃÖ¤«¤ì¤ë¤ÈÄê¤á¤é¤ì¤Æ¤¤¤ë¡£ +より大きい場合、 +「余った」バイトは値 0 となり、 +そのセグメント初期化データの後ろに置かれると定められている。 .\"O The file size may not be larger than the memory size. -¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤Ï¥á¥â¥ê¥µ¥¤¥º¤è¤êÂ礭¤¯¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ +ファイルサイズはメモリサイズより大きくてはいけない。 .\"O Loadable segment entries in the program header table appear in ascending .\"O order, sorted on the .\"O .IR p_vaddr .\"O member. -¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Î¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¥¨¥ó¥È¥ê¤Ï¡¢ +プログラムヘッダテーブルのロード可能セグメントエントリは、 .IR p_vaddr -¥á¥ó¥Ð¤Î¾º½ç¤Ë¥½¡¼¥È¤µ¤ì¤Æ½Ð¸½¤¹¤ë¡£ +メンバの昇順にソートされて出現する。 .TP .BR PT_DYNAMIC .\"O The array element specifies dynamic linking information. -¤³¤ÎÇÛÎóÍ×ÁǤÏưŪ¥ê¥ó¥¯¾ðÊó¤ò»ØÄꤹ¤ë¡£ +この配列要素は動的リンク情報を指定する。 .TP .BR PT_INTERP .\"O The array element specifies the location and size of a null-terminated .\"O pathname to invoke as an interpreter. -¤³¤ÎÇÛÎóÍ×ÁǤϡ¢¥¤¥ó¥¿¥×¥ê¥¿¤È¤·¤Æµ¯Æ°¤µ¤ì¤ë¥Ñ¥¹Ì¾ (NULL ʸ»ú½ªÃ¼) -¤Î°ÌÃ֤ȥµ¥¤¥º¤ò»ØÄꤹ¤ë¡£ +この配列要素は、インタプリタとして起動されるパス名 (NULL 文字終端) +の位置とサイズを指定する。 .\"O This segment type is meaningful .\"O only for executable files (though it may occur for shared objects). -¤³¤Î¥»¥°¥á¥ó¥È·¿¤Ï (¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤â¤¢¤ë¤«¤âÃΤì¤Ê¤¤¤¬) -¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤Ç¤Î¤ß°ÕÌ£¤ò»ý¤Ä¡£ +このセグメント型は (共有オブジェクトにもあるかも知れないが) +実行可能ファイルでのみ意味を持つ。 .\"O However it may not occur more than once in a file. -¤¿¤À¤·¡¢¤³¤Î¥»¥°¥á¥ó¥È·¿¤Ï 1 ¤Ä¤Î¥Õ¥¡¥¤¥ë¤Ë 2 ²ó°Ê¾å½Ð¸½¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +ただし、このセグメント型は 1 つのファイルに 2 回以上出現してはならない。 .\"O If it is present, it must precede any loadable segment entry. -¤â¤·Â¸ºß¤¹¤ë¾ì¹ç¡¢¤³¤Î¥»¥°¥á¥ó¥È·¿¤Ï -Á´¤Æ¤Î¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¥¨¥ó¥È¥ê¤è¤êÁ°¤Ë¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +もし存在する場合、このセグメント型は +全てのロード可能セグメントエントリより前になければならない。 .TP .BR PT_NOTE .\"O The array element specifies the location and size for auxiliary information. -¤³¤ÎÇÛÎóÍ×ÁǤÏÊä­¾ðÊó (auxiliary information) ¤Î°ÌÃ֤ȥµ¥¤¥º¤ò»ØÄꤹ¤ë¡£ +この配列要素は補足情報 (auxiliary information) の位置とサイズを指定する。 .TP .BR PT_SHLIB .\"O This segment type is reserved but has unspecified semantics. .\"O Programs that .\"O contain an array element of this type do not conform to the ABI. -¤³¤Î¥»¥°¥á¥ó¥È·¿¤ÏͽÌ󤵤ì¤Æ¤¤¤ë¤¬¡¢°ÕÌ£¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤³¤Î·¿¤ÎÇÛÎóÍ×ÁǤòÊÝ»ý¤¹¤ë¥×¥í¥°¥é¥à¤Ï ABI ¤Ë½àµò¤·¤Ê¤¤¡£ +このセグメント型は予約されているが、意味は指定されていない。 +この型の配列要素を保持するプログラムは ABI に準拠しない。 .TP .BR PT_PHDR .\"O The array element, if present, specifies the location and size of the program .\"O header table itself, both in the file and in the memory image of the program. -¤³¤ÎÇÛÎóÍ×ÁǤϡ¢¤â¤·Â¸ºß¤·¤Æ¤¤¤ë¤Ê¤é¤Ð¡¢ -¥Õ¥¡¥¤¥ë¤ª¤è¤Ó¥×¥í¥°¥é¥à¤Î¥á¥â¥ê¥¤¥á¡¼¥¸ÁÐÊý¤Ë¤ª¤±¤ë -¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¼«¿È¤Î°ÌÃ֤ȥµ¥¤¥º¤ò»ØÄꤹ¤ë¡£ +この配列要素は、もし存在しているならば、 +ファイルおよびプログラムのメモリイメージ双方における +プログラムヘッダテーブル自身の位置とサイズを指定する。 .\"O This segment type may not occur more than once in a file. -¤³¤Î¥»¥°¥á¥ó¥È·¿¤Ï 1 ¤Ä¤Î¥Õ¥¡¥¤¥ë¤Ë 2 ²ó°Ê¾å½Ð¸½¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +このセグメント型は 1 つのファイルに 2 回以上出現してはならない。 .\"O Moreover, it may .\"O only occur if the program header table is part of the memory image of the .\"O program. -¤µ¤é¤Ë¡¢¤³¤Î¥»¥°¥á¥ó¥È·¿¤¬Â¸ºß¤·¤Æ¤â¤è¤¤¤Î¤Ï¡¢¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤¬ -¥×¥í¥°¥é¥à¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤Î°ìÉô¤Ç¤¢¤ë¾ì¹ç¤Î¤ß¤Ç¤¢¤ë¡£ +さらに、このセグメント型が存在してもよいのは、プログラムヘッダテーブルが +プログラムのメモリイメージの一部である場合のみである。 .\"O If it is present, it must precede any loadable segment entry. -¤â¤·Â¸ºß¤¹¤ë¾ì¹ç¡¢¤³¤ì¤ÏÁ´¤Æ¤Î¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¥¨¥ó¥È¥ê¤è¤ê -Á°¤Ë¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +もし存在する場合、これは全てのロード可能セグメントエントリより +前になければならない。 .TP .BR PT_LOPROC .\"O Values greater than or equal to .\"O .BR PT_HIPROC .\"O are reserved for processor-specific semantics. -¤³¤ÎÃͰʾå¤Ç +この値以上で .BR PT_HIPROC -°Ê²¼¤ÎÃÍ¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ +以下の値はプロセッサ固有の意味に予約されている。 .TP .BR PT_HIPROC .\"O Values less than or equal to .\"O .BR PT_LOPROC .\"O are reserved for processor-specific semantics. -¤³¤ÎÃͰʲ¼¤Ç +この値以下で .BR PT_LOPROC -°Ê¾å¤ÎÃÍ¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ -.\"sato: PT_{HI,LO}PROC ¤ÎÀâÌÀ¤Ï¡¢¸¶Ê¸¤Î´Ö°ã¤¤¤é¤·¤¤¡£ +以上の値はプロセッサ固有の意味に予約されている。 +.\"sato: PT_{HI,LO}PROC の説明は、原文の間違いらしい。 .TP .BR PT_GNU_STACK .\"O GNU extension which is used by the Linux kernel to control the state of the .\"O stack via the flags set in the .\"O .IR p_flags .\"O member. -GNU ³ÈÄ¥¤Ç¤¢¤ê¡¢Linux ¥«¡¼¥Í¥ë¤¬ +GNU 拡張であり、Linux カーネルが .I p_flags -¤Î¥á¥ó¥Ð¡¼¤Ë¥»¥Ã¥È¤µ¤ì¤¿¥Õ¥é¥°·Ðͳ¤Ç¥¹¥¿¥Ã¥¯¤Î¾õÂÖ¤òÀ©¸æ¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£ +のメンバーにセットされたフラグ経由でスタックの状態を制御するために使用する。 .\" .El .RE .TP .IR p_offset .\"O This member holds the offset from the beginning of the file at which .\"O the first byte of the segment resides. -¤³¤Î¥á¥ó¥Ð¤Ï¡¢¥»¥°¥á¥ó¥È¤ÎÀèƬ¥Ð¥¤¥È¤¬¤¢¤ë -(¥Õ¥¡¥¤¥ëÀèƬ¤«¤é¤Î) ¥ª¥Õ¥»¥Ã¥È¤òÊÝ»ý¤¹¤ë¡£ +このメンバは、セグメントの先頭バイトがある +(ファイル先頭からの) オフセットを保持する。 .TP .IR p_vaddr .\"O This member holds the virtual address at which the first byte of the .\"O segment resides in memory. -¤³¤Î¥á¥ó¥Ð¤Ï¡¢¥»¥°¥á¥ó¥È¤ÎÀèƬ¥Ð¥¤¥È¤¬¤¢¤ë -¥á¥â¥ê¤Î²¾ÁÛ¥¢¥É¥ì¥¹¤òÊÝ»ý¤¹¤ë¡£ +このメンバは、セグメントの先頭バイトがある +メモリの仮想アドレスを保持する。 .TP .IR p_paddr .\"O On systems for which physical addressing is relevant, this member is .\"O reserved for the segment's physical address. -ʪÍý¥¢¥É¥ì¥¹¤¬°ÕÌ£¤ò¤â¤Ä¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -¤³¤Î¥á¥ó¥Ð¤Ï¥»¥°¥á¥ó¥È¤ÎʪÍý¥¢¥É¥ì¥¹¤È¤·¤ÆͽÌ󤵤ì¤Æ¤¤¤ë¡£ +物理アドレスが意味をもつシステムでは、 +このメンバはセグメントの物理アドレスとして予約されている。 .\"O Under .\"O BSD .\"O this member is .\"O not used and must be zero. -BSD ¤Ç¤Ï¤³¤Î¥á¥ó¥Ð¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£0 ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +BSD ではこのメンバは使用されない。0 でなければならない。 .TP .IR p_filesz .\"O This member holds the number of bytes in the file image of the segment. .\"O It may be zero. -¤³¤Î¥á¥ó¥Ð¤Ï¥»¥°¥á¥ó¥È¤Î¥Õ¥¡¥¤¥ë¥¤¥á¡¼¥¸¤Î¥Ð¥¤¥È¿ô¤òÊÝ»ý¤¹¤ë¡£ -¤³¤ì¤Ï 0 ¤Ç¤â¤è¤¤¡£ +このメンバはセグメントのファイルイメージのバイト数を保持する。 +これは 0 でもよい。 .TP .IR p_memsz .\"O This member holds the number of bytes in the memory image of the segment. .\"O It may be zero. -¤³¤Î¥á¥ó¥Ð¤Ï¥»¥°¥á¥ó¥È¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤Î¥Ð¥¤¥È¿ô¤òÊÝ»ý¤¹¤ë¡£ -¤³¤ì¤Ï 0 ¤Ç¤â¤è¤¤¡£ +このメンバはセグメントのメモリイメージのバイト数を保持する。 +これは 0 でもよい。 .TP .IR p_flags .\"O This member holds a bitmask of flags relevant to the segment: -¤³¤Î¥á¥ó¥Ð¤Ï¥»¥°¥á¥ó¥È¤Ë´ØÏ¢¤¹¤ë¥Õ¥é¥°¤Î¥Ó¥Ã¥È¥Þ¥Ã¥×¤òÊÝ»ý¤¹¤ë: +このメンバはセグメントに関連するフラグのビットマップを保持する: .\" .Bl -tag -width "PF_X" -compact .RS 12 .TP .PD 0 .BR PF_X .\"O An executable segment. -¼Â¹Ô²Äǽ¥»¥°¥á¥ó¥È¡£ +実行可能セグメント。 .TP .BR PF_W .\"O A writable segment. -½ñ¤­¹þ¤ß²Äǽ¥»¥°¥á¥ó¥È. +書き込み可能セグメント. .TP .BR PF_R .\"O A readable segment. -Æɤ߹þ¤ß²Äǽ¥»¥°¥á¥ó¥È¡£ +読み込み可能セグメント。 .PD .RE .\" .El @@ -1130,43 +1130,43 @@ BSD .\"O .BR PF_X .\"O and .\"O .BR PF_R . -¥Æ¥­¥¹¥È¥»¥°¥á¥ó¥È¤Ï°ìÈ̤˥ե饰 +テキストセグメントは一般にフラグ .BR PF_X -¤È +と .BR PF_R -¤ò»ý¤Ä¡£ +を持つ。 .\"O A data segment commonly has .\"O .BR PF_X , .\"O .BR PF_W .\"O and .\"O .BR PF_R . -¥Ç¡¼¥¿¥»¥°¥á¥ó¥È¤Ï°ìÈÌ¤Ë +データセグメントは一般に .BR PF_X , .BR PF_W , .BR PF_R -¤ò»ý¤Ä¡£ +を持つ。 .TP .IR p_align .\"O This member holds the value to which the segments are aligned in memory .\"O and in the file. -¤³¤Î¥á¥ó¥Ð¤Ï¡¢¥»¥°¥á¥ó¥È¤¬¥á¥â¥ê¤ª¤è¤Ó¥Õ¥¡¥¤¥ë¤Ë¤ª¤¤¤ÆÇÛÃÖ (align) -¤µ¤ì¤ëÃͤòÊÝ»ý¤¹¤ë¡£ -.\"nakano align ¤ÎÄêÌõ¤Ï¤¢¤ê¤Þ¤·¤¿¤Ã¤±¡© +このメンバは、セグメントがメモリおよびファイルにおいて配置 (align) +される値を保持する。 +.\"nakano align の定訳はありましたっけ? .\"O Loadable process segments must have congruent values for .\"O .IR p_vaddr .\"O and .\"O .IR p_offset , .\"O modulo the page size. -¥í¡¼¥É²Äǽ¥×¥í¥»¥¹¥»¥°¥á¥ó¥È¤Ï¡¢¥Ú¡¼¥¸¥µ¥¤¥º¤òË¡¤È¤·¤Æ +ロード可能プロセスセグメントは、ページサイズを法として .IR p_vaddr -¤È +と .IR p_offset -¤È¹çƱ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(ÌõÃí:¡Öp_vaddr mod ¥Ú¡¼¥¸¥µ¥¤¥º = p_offset mod ¥Ú¡¼¥¸¥µ¥¤¥º¡× -¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£¡£ -.\"nakano ¤³¤¦¤¤¤¦¾ì¹ç¤ÏÉáÄÌ congruent "with" ¤À¤±¤É¡Ä +と合同でなければならない +(訳注:「p_vaddr mod ページサイズ = p_offset mod ページサイズ」 +でなければならない)。。 +.\"nakano こういう場合は普通 congruent "with" だけど… .\"O Values of zero and one mean no alignment is required. -0 ¤È 1 ¤È¤¤¤¦ÃͤÏÇÛÃÖ¤¬É¬Íפʤ¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +0 と 1 という値は配置が必要ないことを意味する。 .\"O Otherwise, .\"O .IR p_align .\"O should be a positive, integral power of two, and @@ -1175,23 +1175,23 @@ BSD .\"O .IR p_offset , .\"O modulo .\"O .IR p_align . -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢ +それ以外の場合、 .IR p_align -¤ÏÀµ¤Ç 2 ¤ÎÀ°¿ô¾è¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ +は正で 2 の整数乗でなければならず、 .IR p_vaddr -¤Ï +は .IR p_align -¤òË¡¤È¤·¤Æ +を法として .IR p_offset -¤È¹çƱ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(ÌõÃí:¡Öp_vaddr mod p_align = p_offset mod p_align¡×¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£ +と合同でなければならない +(訳注:「p_vaddr mod p_align = p_offset mod p_align」でなければならない)。 .\" .El .PP .\"O A file's section header table lets one locate all the file's sections. -¥Õ¥¡¥¤¥ë¤Î¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Ë¤Ï¡¢ -Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¥»¥¯¥·¥ç¥ó¤Î¾ì½ê¤¬µ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +ファイルのセクションヘッダテーブルには、 +全てのファイルセクションの場所が記述されている。 .\"Osato: -.\"Osato: let ¤¬Ìõ¤·¤Å¤é¤¤¤Î¤Ç°ÕÌõµ¤Ì£¤Ë¤¹¤ë¡£ +.\"Osato: let が訳しづらいので意訳気味にする。 .\"Osato: .\"O The .\"O section header table is an array of @@ -1199,109 +1199,109 @@ BSD .\"O or .\"O .I Elf64_Shdr .\"O structures. -¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Ï +セクションヘッダテーブルは .I Elf32_Shdr -¹½Â¤ÂΤޤ¿¤Ï +構造体または .I Elf64_Shdr -¹½Â¤ÂΤÎÇÛÎó¤Ç¤¢¤ë¡£ +構造体の配列である。 .\"O The .\"O ELF header's .\"O .IR e_shoff .\"O member gives the byte offset from the beginning of the file to the section .\"O header table. -ELF ¥Ø¥Ã¥À¤Î +ELF ヘッダの .IR e_shoff -¥á¥ó¥Ð¤Ï¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤«¤é -¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Ø¤Î¥Ð¥¤¥È¥ª¥Õ¥»¥Ã¥È¤Ç¤¢¤ë¡£ +メンバはファイルの先頭から +セクションヘッダテーブルへのバイトオフセットである。 .\"O .IR e_shnum .\"O holds the number of entries the section header table contains. .\"O .IR e_shentsize .\"O holds the size in bytes of each entry. .IR e_shnum -¤Ï¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Ë´Þ¤Þ¤ì¤ë¥¨¥ó¥È¥ê¤Î¿ô¤òÊÝ»ý¤¹¤ë¡£ +はセクションヘッダテーブルに含まれるエントリの数を保持する。 .IR e_shentsize -¤Ï³Æ¥¨¥ó¥È¥ê¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤òÊÝ»ý¤¹¤ë¡£ +は各エントリのサイズ (バイト単位) を保持する。 .PP .\"O A section header table index is a subscript into this array. .\"O Some section .\"O header table indices are reserved. .\"O An object file does not have sections for .\"O these special indices: -¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¡¢¤³¤ÎÇÛÎó¤ÎÍ×ÁǤò»ØÄꤹ¤ë¡£ -¤¤¤¯¤Ä¤«¤Î¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÏͽÌ󤵤ì¤Æ¤¤¤ë¡£ -¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ï¡¢¤³¤ì¤é¤ÎÆÃÊ̤ʥ¤¥ó¥Ç¥Ã¥¯¥¹¤ËÂбþ¤¹¤ë -¥»¥¯¥·¥ç¥ó¤ò»ý¤¿¤Ê¤¤: +セクションヘッダテーブルインデックスは、この配列の要素を指定する。 +いくつかのセクションヘッダテーブルインデックスは予約されている。 +オブジェクトファイルは、これらの特別なインデックスに対応する +セクションを持たない: .\" .Bl -tag -width "SHN_LORESERVE" .TP 14 .BR SHN_UNDEF .\"O This value marks an undefined, missing, irrelevant or otherwise meaningless .\"O section reference. -¤³¤ÎÃͤÏ̤ÄêµÁ¡¦ÉÔÌÀ¡¦Ìµ´Ø·¸¡¦Ìµ°ÕÌ£¤Ê¥»¥¯¥·¥ç¥ó»²¾È¤Î°õ¤È¤Ê¤ë¡£ +この値は未定義・不明・無関係・無意味なセクション参照の印となる。 .TP .BR SHN_LORESERVE .\"O This value specifies the lower bound of the range of reserved indices. -¤³¤ÎÃͤÏͽÌóºÑ¤ß¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹Îΰè¤Î²¼¸Â¤ò»ØÄꤹ¤ë¡£ +この値は予約済みのインデックス領域の下限を指定する。 .TP .BR SHN_LOPROC .\"O Values greater than or equal to .\"O .BR SHN_HIPROC .\"O are reserved for processor-specific semantics. -¤³¤ÎÃͰʾå¤Ç +この値以上で .BR SHN_HIPROC -°Ê²¼¤ÎÃÍ¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ +以下の値はプロセッサ固有の意味に予約されている。 .TP .BR SHN_HIPROC .\"O Values less than or equal to .\"O .BR SHN_LOPROC .\"O are reserved for processor-specific semantics. -¤³¤ÎÃͰʲ¼¤Ç +この値以下で .BR SHN_HIPROC -°Ê¾å¤ÎÃÍ¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ -.\"sato: SHN_{HI,LO}PROC ¤ÎÀâÌÀ¤Ï¡¢¸¶Ê¸¤Î´Ö°ã¤¤¤é¤·¤¤¡£ +以上の値はプロセッサ固有の意味に予約されている。 +.\"sato: SHN_{HI,LO}PROC の説明は、原文の間違いらしい。 .TP .BR SHN_ABS .\"O This value specifies the absolute value for the corresponding reference. -¤³¤ÎÃͤÏÂбþ¤¹¤ë»²¾È¤ÎÀäÂÐÃͤò»ØÄꤹ¤ë¡£ +この値は対応する参照の絶対値を指定する。 .\"O For .\"O example, a symbol defined relative to section number .\"O .BR SHN_ABS .\"O has an absolute value and is not affected by relocation. -Î㤨¤Ð¡¢¥»¥¯¥·¥ç¥óÈÖ¹æ +例えば、セクション番号 .BR SHN_ABS -¤Ë´ØÏ¢¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥·¥ó¥Ü¥ë¤Ï¡¢ -ÀäÂÐÃͤòÊÝ»ý¤·¤Æ¤¤¤ë¤Î¤Ç¡¢ºÆÇÛÃ֤˱ƶÁ¤µ¤ì¤Ê¤¤¡£ -.\"nakano "relative to" ¤¬¤Á¤ç¤Ã¤ÈÌõ¤·¤Ë¤¯¤¤¡£ -.\"nakano Íפ¹¤ë¤Ë SHN_ABS ¤Î¥»¥¯¥·¥ç¥ó¤Ë¤ÏÀäÂÐÃͤ¬ store ¤µ¤ì¤ë¡¢ -.\"nakano ¸å½Ò¤Î SHN_COMMON ¤Ë¤Ï global ÊÑ¿ô¤¬ store ¤µ¤ì¤ë¡¢ -.\"nakano ¤È¤¤¤¦¤³¤È¤Ê¤Î¤Ç¤·¤ç¤¦¤¬¡£ +に関連して定義されているシンボルは、 +絶対値を保持しているので、再配置に影響されない。 +.\"nakano "relative to" がちょっと訳しにくい。 +.\"nakano 要するに SHN_ABS のセクションには絶対値が store される、 +.\"nakano 後述の SHN_COMMON には global 変数が store される、 +.\"nakano ということなのでしょうが。 .TP .BR SHN_COMMON .\"O Symbols defined relative to this section are common symbols, such as FORTRAN .\"O COMMON or unallocated C external variables. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ë´ØÏ¢¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥·¥ó¥Ü¥ë¤Ï¡¢ -FORTRAN ¤Î COMMON ¤ä C ¤Î̤³ä¤êÅö¤Æ³°ÉôÊÑ¿ô¤Î¤è¤¦¤Ê¶¦ÄÌ¥·¥ó¥Ü¥ë¤Ç¤¢¤ë¡£ +このセクションに関連して定義されているシンボルは、 +FORTRAN の COMMON や C の未割り当て外部変数のような共通シンボルである。 .TP .BR SHN_HIRESERVE .\"O This value specifies the upper bound of the range of reserved indices. -¤³¤ÎÃͤÏͽÌóºÑ¤ß¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹Îΰè¤Î¾å¸Â¤ò»ØÄꤹ¤ë¡£ +この値は予約済みのインデックス領域の上限を指定する。 .\"O The .\"O system reserves indices between .\"O .BR SHN_LORESERVE .\"O and .\"O .BR SHN_HIRESERVE , .\"O inclusive. -¥·¥¹¥Æ¥à¤Ï +システムは .BR SHN_LORESERVE -¤È +と .BR SHN_HIRESERVE -¤ò´Þ¤àÈϰϤòͽÌ󤹤롣 +を含む範囲を予約する。 .\"O The section header table does not contain entries for the .\"O reserved indices. -¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤ÏͽÌ󤵤줿¥¤¥ó¥Ç¥Ã¥¯¥¹¤ËÂбþ¤¹¤ë¥¨¥ó¥È¥ê¤ò»ý¤¿¤Ê¤¤¡£ +セクションヘッダテーブルは予約されたインデックスに対応するエントリを持たない。 .\" .El .PP .\"O The section header has the following structure: -¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¤Ï°Ê²¼¤Î¹½Â¤ÂΤò»ý¤Ä: +セクションヘッダは以下の構造体を持つ: .in +4n .nf @@ -1338,174 +1338,174 @@ typedef struct { .in .PP .\"O No real differences exist between the 32-bit and 64-bit section headers. -32 ¥Ó¥Ã¥È¤È 64 ¥Ó¥Ã¥È¤Î¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¤Ë¤Ï¼ÂºÝ¤Î°ã¤¤¤Ï¤Ê¤¤¡£ +32 ビットと 64 ビットのセクションヘッダには実際の違いはない。 .\" .Bl -tag -width "sh_addralign" .TP 10 .IR sh_name .\"O This member specifies the name of the section. -¤³¤Î¥á¥ó¥Ð¤Ï¥»¥¯¥·¥ç¥ó̾¤òÄê¤á¤ë¡£ +このメンバはセクション名を定める。 .\"O Its value is an index .\"O into the section header string table section, giving the location of .\"O a null-terminated string. -¤³¤ÎÃͤϥ»¥¯¥·¥ç¥ó¥Ø¥Ã¥Àʸ»úÎó¥Æ¡¼¥Ö¥ë¥»¥¯¥·¥ç¥ó¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤¢¤ê¡¢ -NULL ʸ»ú¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Î¾ì½ê¤ò¼¨¤¹¡£ +この値はセクションヘッダ文字列テーブルセクションのインデックスであり、 +NULL 文字で終端された文字列の場所を示す。 .TP .IR sh_type .\"O This member categorizes the section's contents and semantics. -¤³¤Î¥á¥ó¥Ð¤Ï¥»¥¯¥·¥ç¥ó¤ÎÆâÍƤȰÕÌ£¤¬´Þ¤Þ¤ì¤ë¥«¥Æ¥´¥ê¤ò¼¨¤¹¡£ +このメンバはセクションの内容と意味が含まれるカテゴリを示す。 .\" .Bl -tag -width "SHT_PROGBITS" .RS 10 .TP 15 .BR SHT_NULL .\"O This value marks the section header as inactive. -¤³¤ÎÃͤϥ»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¤¬ÉÔ³èÀ­¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ +この値はセクションヘッダが不活性であることを示す。 .\"O It does not .\"O have an associated section. -¤³¤ì¤Ï´ØÏ¢¤¹¤ë¥»¥¯¥·¥ç¥ó¤ò»ý¤¿¤Ê¤¤¡£ +これは関連するセクションを持たない。 .\"O Other members of the section header .\"O have undefined values. -¤³¤Î¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¤Î¾¤Î¥á¥ó¥Ð¤Ï¡¢Ì¤ÄêµÁ¤ÎÃͤò»ý¤Ä¡£ +このセクションヘッダの他のメンバは、未定義の値を持つ。 .TP .BR SHT_PROGBITS .\"O This section holds information defined by the program, whose .\"O format and meaning are determined solely by the program. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥°¥é¥à¤Ë¤è¤êÄêµÁ¤µ¤ì¤ë¾ðÊó¤òÊÝ»ý¤¹¤ë¡£ -¤³¤Î¾ðÊó¤Î·Á¼°¤È°ÕÌ£¤Ï¡¢¤Ò¤È¤¨¤Ë¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤Æ·èÄꤵ¤ì¤ë¡£ +このセクションはプログラムにより定義される情報を保持する。 +この情報の形式と意味は、ひとえにプログラムによって決定される。 .TP .BR SHT_SYMTAB .\"O This section holds a symbol table. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£ +このセクションはシンボルテーブルを保持する。 .\"O Typically, .\"O .BR SHT_SYMTAB .\"O provides symbols for link editing, though it may also be used .\"O for dynamic linking. -°ìÈÌ¤Ë¤Ï +一般には .BR SHT_SYMTAB -¤Ï¥ê¥ó¥¯ÊÔ½¸¤Î¤¿¤á¤Î¥·¥ó¥Ü¥ë¤òÄ󶡤¹¤ë¤¬¡¢ -ưŪ¥ê¥ó¥¯¤Ë¤â»È¤ï¤ì¤ë¡£ +はリンク編集のためのシンボルを提供するが、 +動的リンクにも使われる。 .\"O As a complete symbol table, it may contain .\"O many symbols unnecessary for dynamic linking. -´°Á´¤Ê¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤È¤·¤Æ¡¢Æ°Åª¥ê¥ó¥¯¤Ë¤ÏÉÔÍ×¤Ê -¿¤¯¤Î¥·¥ó¥Ü¥ë¤òÊÝ»ý¤Ç¤­¤ë¡£ +完全なシンボルテーブルとして、動的リンクには不要な +多くのシンボルを保持できる。 .\"O An object file can .\"O also contain a .\"O .BR SHT_DYNSYM .\"O section. -¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤â +オブジェクトファイルも .BR SHT_DYNSYM -¥»¥¯¥·¥ç¥ó¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ +セクションを持つことができる。 .TP .BR SHT_STRTAB .\"O This section holds a string table. .\"O An object file may have multiple .\"O string table sections. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ïʸ»úÎó¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£ -¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ÏÊ£¿ô¤Îʸ»úÎó¥Æ¡¼¥Ö¥ë¥»¥¯¥·¥ç¥ó¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ +このセクションは文字列テーブルを保持する。 +オブジェクトファイルは複数の文字列テーブルセクションを持つことができる。 .TP .BR SHT_RELA .\"O This section holds relocation entries with explicit addends, such .\"O as type .\"O .IR Elf32_Rela .\"O for the 32-bit class of object files. -¤³¤Î¥»¥¯¥·¥ç¥ó¤ÏÌÀ¼¨Åª¤Ê²Ã¿ô (addend) ¤ò»ý¤ÄºÆÇÛÃÖ¥¨¥ó¥È¥ê¤òÊÝ»ý¤¹¤ë¡£ -ºÆÇÛÃÖ¥¨¥ó¥È¥ê¤Î·¿¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î 32 ¥Ó¥Ã¥È¥¯¥é¥¹¤Ç¤Ï +このセクションは明示的な加数 (addend) を持つ再配置エントリを保持する。 +再配置エントリの型は、オブジェクトファイルの 32 ビットクラスでは .IR Elf32_Rela -¤Ç¤¢¤ë¡£ +である。 .\"O An object may have multiple .\"O relocation sections. -¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ÏÊ£¿ô¤ÎºÆÇÛÃÖ¥»¥¯¥·¥ç¥ó¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ +オブジェクトファイルは複数の再配置セクションを持つことができる。 .TP .BR SHT_HASH .\"O This section holds a symbol hash table. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥·¥ó¥Ü¥ë¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£ +このセクションはシンボルハッシュテーブルを保持する。 .\"O An object participating in .\"O dynamic linking must contain a symbol hash table. -ưŪ¥ê¥ó¥¯¤µ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢ -¥·¥ó¥Ü¥ë¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤ò´Þ¤ó¤Ç¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +動的リンクされるオブジェクトは、 +シンボルハッシュテーブルを含んでいなければならない。 .\"O An object file may .\"O have only one hash table. -¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ï 1 ¤Ä¤Î¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Î¤ß¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ +オブジェクトファイルは 1 つのハッシュテーブルのみを持つことができる。 .TP .BR SHT_DYNAMIC .\"O This section holds information for dynamic linking. -¤³¤Î¥»¥¯¥·¥ç¥ó¤ÏưŪ¥ê¥ó¥¯¤Î¾ðÊó¤òÊÝ»ý¤¹¤ë¡£ +このセクションは動的リンクの情報を保持する。 .\"O An object file may .\"O have only one dynamic section. -¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ï 1 ¤Ä¤ÎưŪ¥»¥¯¥·¥ç¥ó¤Î¤ß¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ +オブジェクトファイルは 1 つの動的セクションのみを持つことができる。 .TP .BR SHT_NOTE .\"O This section holds information that marks the file in some way. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥Õ¥¡¥¤¥ë¤Ë²¿¤é¤«¤Î°õ¤òÉÕ¤±¤ë¾ðÊó¤òÊÝ»ý¤¹¤ë¡£ +このセクションはファイルに何らかの印を付ける情報を保持する。 .TP .BR SHT_NOBITS .\"O A section of this type occupies no space in the file but otherwise .\"O resembles .\"O .BR SHT_PROGBITS . -¤³¤Î¥¿¥¤¥×¤Î¥»¥¯¥·¥ç¥ó¤Ï¥Õ¥¡¥¤¥ë¤ÎÎΰè¤ò»È¤ï¤Ê¤¤¤È¤¤¤¦°Ê³°¤Ï¡¢ +このタイプのセクションはファイルの領域を使わないという以外は、 .BR SHT_PROGBITS -¤È»÷¤Æ¤¤¤ë¡£ +と似ている。 .\"O Although this section contains no bytes, the .\"O .IR sh_offset .\"O member contains the conceptual file offset. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï 1 ¥Ð¥¤¥È¤â´Þ¤Þ¤Ê¤¤¤¬¡¢ +このセクションは 1 バイトも含まないが、 .IR sh_offset -¥á¥ó¥Ð¤Ï³µÇ°Åª¤Ê¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤ò»ý¤Ä¡£ +メンバは概念的なファイルオフセットを持つ。 .TP .BR SHT_REL .\"O This section holds relocation offsets without explicit addends, such .\"O as type .\"O .IR Elf32_Rel .\"O for the 32-bit class of object files. -¤³¤Î¥»¥¯¥·¥ç¥ó¤ÏÌÀ¼¨Åª¤Ê²Ã¿ô¤ò»ý¤¿¤Ê¤¤ºÆÇÛÃÖ¥ª¥Õ¥»¥Ã¥È¤òÊÝ»ý¤¹¤ë¡£ -ºÆÇÛÃÖ¥ª¥Õ¥»¥Ã¥È¤Î·¿¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î 32 ¥Ó¥Ã¥È¥¯¥é¥¹¤Ç¤Ï +このセクションは明示的な加数を持たない再配置オフセットを保持する。 +再配置オフセットの型は、オブジェクトファイルの 32 ビットクラスでは .IR Elf32_Rel -¤Ç¤¢¤ë¡£ +である。 .\"O An object file may have multiple .\"O relocation sections. -¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ÏÊ£¿ô¤ÎºÆÇÛÃÖ¥»¥¯¥·¥ç¥ó¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ +オブジェクトファイルは複数の再配置セクションを持つことができる。 .TP .BR SHT_SHLIB .\"O This section is reserved but has unspecified semantics. -¤³¤Î¥»¥¯¥·¥ç¥ó¤ÏͽÌ󤵤ì¤Æ¤¤¤ë¤¬¡¢°ÕÌ£¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +このセクションは予約されているが、意味は指定されていない。 .TP .BR SHT_DYNSYM .\"O This section holds a minimal set of dynamic linking symbols. -¤³¤Î¥»¥¯¥·¥ç¥ó¤ÏưŪ¥ê¥ó¥¯¥·¥ó¥Ü¥ë¤ÎºÇ¾®¥»¥Ã¥È¤òÊÝ»ý¤¹¤ë¡£ +このセクションは動的リンクシンボルの最小セットを保持する。 .\"O An .\"O object file can also contain a .\"O .BR SHT_SYMTAB .\"O section. -¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ï +オブジェクトファイルは .BR SHT_SYMTAB -¥»¥¯¥·¥ç¥ó¤â´Þ¤à¤³¤È¤¬¤Ç¤­¤ë¡£ +セクションも含むことができる。 .TP .BR SHT_LOPROC .\"O This value up to and including .\"O .BR SHT_HIPROC .\"O is reserved for processor-specific semantics. -¤³¤ÎÃͰʾå¤Ç +この値以上で .BR SHT_HIPROC -°Ê²¼¤ÎÈÏ°Ï¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ +以下の範囲はプロセッサ固有の意味に予約されている。 .TP .BR SHT_HIPROC .\"O This value down to and including .\"O .BR SHT_LOPROC .\"O is reserved for processor-specific semantics. -¤³¤ÎÃͰʲ¼¤Ç +この値以下で .BR SHT_LOPROC -°Ê¾å¤ÎÈÏ°Ï¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ +以上の範囲はプロセッサ固有の意味に予約されている。 .TP .BR SHT_LOUSER .\"O This value specifies the lower bound of the range of indices reserved for .\"O application programs. -¤³¤ÎÃͤϥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤Î¤¿¤á¤ËͽÌ󤵤ì¤ë -¥¤¥ó¥Ç¥Ã¥¯¥¹ÈϰϤβ¼¸Â¤ò»ØÄꤹ¤ë¡£ +この値はアプリケーションプログラムのために予約される +インデックス範囲の下限を指定する。 .TP .BR SHT_HIUSER .\"O This value specifies the upper bound of the range of indices reserved for .\"O application programs. -¤³¤ÎÃͤϥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤Î¤¿¤á¤ËͽÌ󤵤ì¤ë -¥¤¥ó¥Ç¥Ã¥¯¥¹ÈϰϤξå¸Â¤ò»ØÄꤹ¤ë¡£ +この値はアプリケーションプログラムのために予約される +インデックス範囲の上限を指定する。 .\"O Section types between .\"O .BR SHT_LOUSER .\"O and @@ -1513,62 +1513,62 @@ NULL ʸ .\"O may be used by the application, without conflicting with current or future .\"O system-defined section types. .BR SHT_LOUSER -¤«¤é +から .BR SHT_HIUSER -¤Î´Ö¤Î¥»¥¯¥·¥ç¥ó¥¿¥¤¥×¤Ï¡¢ -¸½ºß¤Þ¤¿¤Ï¾­Íè¤Î¥·¥¹¥Æ¥àÄêµÁ¥»¥¯¥·¥ç¥ó¥¿¥¤¥×¤È¾×Æͤ¹¤ë¤³¤È¤Ê¤¯¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +の間のセクションタイプは、 +現在または将来のシステム定義セクションタイプと衝突することなく、 +アプリケーションで使用することができる。 .\" .El .RE .TP .IR sh_flags .\"O Sections support one-bit flags that describe miscellaneous attributes. -ÍÍ¡¹¤Ê°À­¤òµ­½Ò¤¹¤ë¤¿¤á¤Î 1 ¥Ó¥Ã¥È¤Î¥Õ¥é¥°¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥»¥¯¥·¥ç¥ó¡£ +様々な属性を記述するための 1 ビットのフラグをサポートするセクション。 .\"O If a flag bit is set in .\"O .IR sh_flags , .\"O the attribute is .\"O "on" .\"O for the section. -¥Õ¥é¥°¥Ó¥Ã¥È¤¬ +フラグビットが .IR sh_flags -¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¤½¤Î¥»¥¯¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Î°À­¤Ï -"¥ª¥ó" -¤Ë¤Ê¤ë¡£ +に設定された場合、そのセクションについての属性は +"オン" +になる。 .\"O Otherwise, the attribute is .\"O "off" .\"O or does not apply. -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢Â°À­¤¬ -"¥ª¥Õ" -¤Ç¤¢¤ë¤«Â°À­¤¬Å¬ÍѤµ¤ì¤Ê¤¤¡£ +それ以外の場合、属性が +"オフ" +であるか属性が適用されない。 .\"O Undefined attributes are set to zero. -̤ÄêµÁ¤Î°À­¤Ï 0 ¤ËÀßÄꤵ¤ì¤ë¡£ +未定義の属性は 0 に設定される。 .\" .Bl -tag -width "SHF_EXECINSTR" -compact .RS 10 .TP 15 .BR SHF_WRITE .\"O This section contains data that should be writable during process .\"O execution. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥»¥¹¼Â¹ÔÃæ¤Ë½ñ¤­¹þ¤ß²Äǽ¤Ê¥Ç¡¼¥¿¤ò´Þ¤à¡£ +このセクションはプロセス実行中に書き込み可能なデータを含む。 .TP .BR SHF_ALLOC .\"O This section occupies memory during process execution. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥»¥¹¼Â¹ÔÃæ¤Ë¥á¥â¥ê¤ò»ÈÍѤ¹¤ë¡£ +このセクションはプロセス実行中にメモリを使用する。 .\"O Some control .\"O sections do not reside in the memory image of an object file. -À©¸æ¥»¥¯¥·¥ç¥ó¤ÎÃæ¤Ë¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤Ë¤Ï -¸ºß¤·¤Ê¤¤¤â¤Î¤â¤¢¤ë¡£ +制御セクションの中には、オブジェクトファイルのメモリイメージには +存在しないものもある。 .\"O This .\"O attribute is off for those sections. -¤½¤¦¤·¤¿¥»¥¯¥·¥ç¥ó¤Î¾ì¹ç¡¢¤³¤Î°À­¤Ï¥ª¥Õ¤Ç¤¢¤ë¡£ +そうしたセクションの場合、この属性はオフである。 .TP .BR SHF_EXECINSTR .\"O This section contains executable machine instructions. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¼Â¹Ô²Äǽ¤Ê¥Þ¥·¥óÌ¿Îá¤ò´Þ¤à¡£ +このセクションは実行可能なマシン命令を含む。 .TP .BR SHF_MASKPROC .\"O All bits included in this mask are reserved for processor-specific .\"O semantics. -¤³¤Î¥Þ¥¹¥¯¤Ë´Þ¤Þ¤ì¤ëÁ´¤Æ¤Î¥Ó¥Ã¥È¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ +このマスクに含まれる全てのビットはプロセッサ固有の意味に予約されている。 .RE .\" .El .TP @@ -1576,304 +1576,304 @@ NULL ʸ .\"O If this section appears in the memory image of a process, this member .\"O holds the address at which the section's first byte should reside. .\"O Otherwise, the member contains zero. -¤³¤Î¥»¥¯¥·¥ç¥ó¤¬¥×¥í¥»¥¹¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤Ë¤¢¤ë¾ì¹ç¡¢ -¤³¤Î¥á¥ó¥Ð¤Ï¥»¥¯¥·¥ç¥ó¤ÎºÇ½é¤Î¥Ð¥¤¥È¤¬Â¸ºß¤¹¤ë¥¢¥É¥ì¥¹¤òÊÝ»ý¤¹¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¤³¤Î¥á¥ó¥Ð¤Ï 0 ¤Ç¤¢¤ë¡£ +このセクションがプロセスのメモリイメージにある場合、 +このメンバはセクションの最初のバイトが存在するアドレスを保持する。 +それ以外の場合、このメンバは 0 である。 .TP .IR sh_offset .\"O This member's value holds the byte offset from the beginning of the file .\"O to the first byte in the section. -¤³¤Î¥á¥ó¥Ð¤ÎÃͤϡ¢¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤«¤é¥»¥¯¥·¥ç¥ó¤ÎºÇ½é¤Î¥Ð¥¤¥È¤Ø¤Î -¥Ð¥¤¥È¥ª¥Õ¥»¥Ã¥È¤òÊÝ»ý¤¹¤ë¡£ +このメンバの値は、ファイルの先頭からセクションの最初のバイトへの +バイトオフセットを保持する。 .\"O One section type, .\"O .BR SHT_NOBITS , .\"O occupies no space in the file, and its .\"O .BR sh_offset .\"O member locates the conceptual placement in the file. -¥»¥¯¥·¥ç¥ó¥¿¥¤¥× +セクションタイプ .BR SHT_NOBITS -¤Ï¥Õ¥¡¥¤¥ë¤ÎÎΰè¤òÁ´¤¯»ÈÍѤ»¤º¡¢¤³¤Î¥¿¥¤¥×¤Î +はファイルの領域を全く使用せず、このタイプの .IR sh_offset -¥á¥ó¥Ð¤Ï¥Õ¥¡¥¤¥ë¤Î³µÇ°Åª¤Ê°ÌÃÖ¤ò¼¨¤¹¡£ -.\"nakano conceptual placement ¤È¤Ï¡© +メンバはファイルの概念的な位置を示す。 +.\"nakano conceptual placement とは? .TP .IR sh_size .\"O This member holds the section's size in bytes. -¤³¤Î¥á¥ó¥Ð¤Ï¥»¥¯¥·¥ç¥ó¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤òÊÝ»ý¤¹¤ë¡£ +このメンバはセクションのサイズ (バイト単位) を保持する。 .\"O Unless the section type .\"O is .\"O .BR SHT_NOBITS , .\"O the section occupies .\"O .IR sh_size .\"O bytes in the file. -¥»¥¯¥·¥ç¥ó¥¿¥¤¥×¤¬ +セクションタイプが .BR SHT_NOBITS -¤Ç¤Ê¤¤¸Â¤ê¡¢¤½¤Î¥»¥¯¥·¥ç¥ó¤Ï¥Õ¥¡¥¤¥ëÃæ¤Î +でない限り、そのセクションはファイル中の .IR sh_size -¥Ð¥¤¥È¤ò»ÈÍѤ¹¤ë¡£ +バイトを使用する。 .\"O A section of type .\"O .BR SHT_NOBITS .\"O may have a nonzero size, but it occupies no space in the file. -¥¿¥¤¥×¤¬ +タイプが .BR SHT_NOBITS -¤Î¥»¥¯¥·¥ç¥ó¤Ï¥µ¥¤¥º¤¬ 0 ¤Ç¤Ê¤¤¤¬¡¢¥Õ¥¡¥¤¥ë¤ÎÎΰè¤ò»ÈÍѤ·¤Ê¤¤¡£ +のセクションはサイズが 0 でないが、ファイルの領域を使用しない。 .TP .IR sh_link .\"O This member holds a section header table index link, whose interpretation .\"O depends on the section type. -¤³¤Î¥á¥ó¥Ð¤Ï¡¢¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¥¤¥ó¥Ç¥Ã¥¯¥¹¥ê¥ó¥¯¤òÊÝ»ý¤¹¤ë¡£ -¤³¤Î²ò¼á¤Ï¥»¥¯¥·¥ç¥ó¥¿¥¤¥×¤Ë°Í¸¤¹¤ë¡£ +このメンバは、セクションヘッダテーブルインデックスリンクを保持する。 +この解釈はセクションタイプに依存する。 .TP .IR sh_info .\"O This member holds extra information, whose interpretation depends on the .\"O section type. -¤³¤Î¥á¥ó¥Ð¤ÏÄɲþðÊó¤òÊÝ»ý¤¹¤ë¡£ -¤³¤Î²ò¼á¤Ï¥»¥¯¥·¥ç¥ó¥¿¥¤¥×¤Ë°Í¸¤¹¤ë¡£ +このメンバは追加情報を保持する。 +この解釈はセクションタイプに依存する。 .TP .IR sh_addralign .\"O Some sections have address alignment constraints. -¥¢¥É¥ì¥¹ÇÛÃÖ¤ËÀ©Ì󤬤¢¤ë¥»¥¯¥·¥ç¥ó¤â¤¢¤ë¡£ +アドレス配置に制約があるセクションもある。 .\"O If a section holds a .\"O doubleword, the system must ensure doubleword alignment for the entire .\"O section. -¥»¥¯¥·¥ç¥ó¤¬ÇÜŸì (doubleword) ¤òÊÝ»ý¤¹¤ë¾ì¹ç¡¢ -¥·¥¹¥Æ¥à¤ÏÁ´¤Æ¤Î¥»¥¯¥·¥ç¥ó¤Ë¤Ä¤¤¤ÆÇÜŸì¤ÎÇÛÃÖ¤òÊݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +セクションが倍長語 (doubleword) を保持する場合、 +システムは全てのセクションについて倍長語の配置を保証しなければならない。 .\"O That is, the value of .\"O .IR sh_addr .\"O must be congruent to zero, modulo the value of .\"O .BR sh_addralign . -¤Ä¤Þ¤ê¡¢ +つまり、 .IR sh_addr -¤ÎÃÍ¤Ï +の値は .IR sh_addralign -¤ÎÃͤòË¡¤È¤·¤Æ 0 ¤È¹çƱ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(ÌõÃí:¡Ösh_addr mod sh_addralign = 0 ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£ +の値を法として 0 と合同でなければならない +(訳注:「sh_addr mod sh_addralign = 0 でなければならない)。 .\"O Only zero and positive integral powers of two are allowed. -2 ¤Î 0 ¾è¤ÈÀµ¤ÎÀ°¿ô¾è¤Î¤ß¤¬µö²Ä¤µ¤ì¤ë¡£ +2 の 0 乗と正の整数乗のみが許可される。 .\"O Values of zero .\"O or one mean the section has no alignment constraints. -0 ¤Þ¤¿¤Ï 1 ¤Ï¥»¥¯¥·¥ç¥ó¤ÎÇÛÃÖ¤ËÀ©Ì󤬤ʤ¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +0 または 1 はセクションの配置に制約がないことを意味する。 .TP .IR sh_entsize .\"O Some sections hold a table of fixed-sized entries, such as a symbol table. -¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤Î¤è¤¦¤Ê¸ÇÄꥵ¥¤¥º¥¨¥ó¥È¥ê¤Î¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë -¥»¥¯¥·¥ç¥ó¤â¤¢¤ë¡£ +シンボルテーブルのような固定サイズエントリのテーブルを保持する +セクションもある。 .\"O For such a section, this member gives the size in bytes for each entry. -¤³¤Î¤è¤¦¤Ê¥»¥¯¥·¥ç¥ó¤Ç¤Ï¡¢ -¤³¤Î¥á¥ó¥Ð¤Ï³Æ¥¨¥ó¥È¥ê¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤òɽ¤¹¡£ +このようなセクションでは、 +このメンバは各エントリのサイズ (バイト単位) を表す。 .\"O This member contains zero if the section does not hold a table of .\"O fixed-size entries. -¤³¤Î¥á¥ó¥Ð¤¬ 0 ¤Î¾ì¹ç¡¢ -¤½¤Î¥»¥¯¥·¥ç¥ó¤Ï¸ÇÄꥵ¥¤¥º¥¨¥ó¥È¥ê¤Î¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤·¤Ê¤¤¡£ +このメンバが 0 の場合、 +そのセクションは固定サイズエントリのテーブルを保持しない。 .\" .El .PP .\"O Various sections hold program and control information: -¤µ¤Þ¤¶¤Þ¤Ê¥»¥¯¥·¥ç¥ó¤Ë¥×¥í¥°¥é¥à¾ðÊó¡¦À©¸æ¾ðÊó¤¬ÊÝ»ý¤µ¤ì¤ë: +さまざまなセクションにプログラム情報・制御情報が保持される: .\" .Bl -tag -width ".shstrtab" .TP 10 .IR .bss .\"O This section holds uninitialized data that contributes to the program's .\"O memory image. .\"Osato: -.\"Osato: contribute ¤¬¤¦¤Þ¤¯Ìõ¤»¤Ê¤¤¡£ +.\"Osato: contribute がうまく訳せない。 .\"Osato: -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥°¥é¥à¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤ËÇÛÃÖ¤µ¤ì¤ë -Èó½é´ü²½¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¡£ +このセクションはプログラムのメモリイメージに配置される +非初期化データを保持する。 .\"O By definition, the system initializes the data with zeros .\"O when the program begins to run. -ÄêµÁ¾å¡¢¥·¥¹¥Æ¥à¤Ï¥×¥í¥°¥é¥à¤Î¼Â¹Ô³«»Ï»þ¤Ë¡¢¥Ç¡¼¥¿¤ò 0 ¤Ç½é´ü²½¤¹¤ë¡£ +定義上、システムはプログラムの実行開始時に、データを 0 で初期化する。 .\"O This section is of type .\"O .BR SHT_NOBITS . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションのタイプは .BR SHT_NOBITS -¤Ç¤¢¤ë¡£ +である。 .\"O The attribute types are .\"O .BR SHF_ALLOC .\"O and .\"O .BR SHF_WRITE . -°À­¥¿¥¤¥×¤Ï +属性タイプは .BR SHF_ALLOC -¤È +と .BR SHF_WRITE -¤Ç¤¢¤ë¡£ +である。 .TP .IR .comment .\"O This section holds version control information. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥Ð¡¼¥¸¥ç¥óÀ©¸æ¾ðÊó¤òÊÝ»ý¤¹¤ë¡£ +このセクションはバージョン制御情報を保持する。 .\"O This section is of type .\"O .BR SHT_PROGBITS . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ +である。 .\"O No attribute types are used. -°À­¥¿¥¤¥×¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£ +属性タイプは使用されない。 .TP .IR .ctors .\"O This section holds initialized pointers to the C++ constructor functions. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï C++ ¥³¥ó¥¹¥È¥é¥¯¥¿´Ø¿ô¤Ø¤Î½é´ü²½¤µ¤ì¤¿¥Ý¥¤¥ó¥¿¤òÊÝ»ý¤¹¤ë¡£ +このセクションは C++ コンストラクタ関数への初期化されたポインタを保持する。 .\"O This section is of type .\"O .BR SHT_PROGBITS . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ +である。 .\"O The attribute types are .\"O .BR SHF_ALLOC .\"O and .\"O .BR SHF_WRITE . -°À­¥¿¥¤¥×¤Ï +属性タイプは .BR SHF_ALLOC -¤È +と .BR SHF_WRITE -¤Ç¤¢¤ë¡£ +である。 .TP .IR .data .\"O This section holds initialized data that contribute to the program's .\"O memory image. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥°¥é¥à¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤ËÇÛÃÖ¤µ¤ì¤ë -½é´ü²½ºÑ¤ß¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¡£ +このセクションはプログラムのメモリイメージに配置される +初期化済みデータを保持する。 .\"O This section is of type .\"O .BR SHT_PROGBITS . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ +である。 .\"O The attribute types are .\"O .BR SHF_ALLOC .\"O and .\"O .BR SHF_WRITE . -°À­¥¿¥¤¥×¤Ï +属性タイプは .BR SHF_ALLOC -¤È +と .BR SHF_WRITE -¤Ç¤¢¤ë¡£ +である。 .TP .IR .data1 .\"O This section holds initialized data that contribute to the program's .\"O memory image. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥°¥é¥à¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤ËÇÛÃÖ¤µ¤ì¤ë -½é´ü²½ºÑ¤ß¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¡£ +このセクションはプログラムのメモリイメージに配置される +初期化済みデータを保持する。 .\"O This section is of type .\"O .BR SHT_PROGBITS . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ +である。 .\"O The attribute types are .\"O .BR SHF_ALLOC .\"O and .\"O .BR SHF_WRITE . -°À­¥¿¥¤¥×¤Ï +属性タイプは .BR SHF_ALLOC -¤È +と .BR SHF_WRITE -¤Ç¤¢¤ë¡£ +である。 .TP .IR .debug .\"O This section holds information for symbolic debugging. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥·¥ó¥Ü¥ê¥Ã¥¯¥Ç¥Ð¥Ã¥°ÍѤξðÊó¤òÊÝ»ý¤¹¤ë¡£ +このセクションはシンボリックデバッグ用の情報を保持する。 .\"O The contents .\"O are unspecified. -¤½¤ÎÆâÍƤϻØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +その内容は指定されていない。 .\"O This section is of type .\"O .BR SHT_PROGBITS . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ +である。 .\"O No attribute types are used. -°À­¥¿¥¤¥×¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£ +属性タイプは使用されない。 .TP .IR .dtors .\"O This section holds initialized pointers to the C++ destructor functions. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï C++ ¥Ç¥¹¥È¥é¥¯¥¿´Ø¿ô¤Ø¤Î½é´ü²½¤µ¤ì¤¿¥Ý¥¤¥ó¥¿¤òÊÝ»ý¤¹¤ë¡£ +このセクションは C++ デストラクタ関数への初期化されたポインタを保持する。 .\"O This section is of type .\"O .BR SHT_PROGBITS . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ +である。 .\"O The attribute types are .\"O .BR SHF_ALLOC .\"O and .\"O .BR SHF_WRITE . -°À­¥¿¥¤¥×¤Ï +属性タイプは .BR SHF_ALLOC -¤È +と .BR SHF_WRITE -¤Ç¤¢¤ë¡£ +である。 .TP .IR .dynamic .\"O This section holds dynamic linking information. -¤³¤Î¥»¥¯¥·¥ç¥ó¤ÏưŪ¥ê¥ó¥¯¾ðÊó¤òÊÝ»ý¤¹¤ë¡£ +このセクションは動的リンク情報を保持する。 .\"O The section's attributes .\"O will include the .\"O .BR SHF_ALLOC .\"O bit. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î°À­¤Ï +このセクションの属性は .BR SHF_ALLOC -¥Ó¥Ã¥È¤ò´Þ¤à¡£ +ビットを含む。 .\"O Whether the .\"O .BR SHF_WRITE .\"O bit is set is processor-specific. .BR SHF_WRITE -¥Ó¥Ã¥È¤¬ÀßÄꤵ¤ì¤ë¤«Èݤ«¤Ï¥×¥í¥»¥Ã¥µ¤Ë¤è¤ë¡£ +ビットが設定されるか否かはプロセッサによる。 .\"O This section is of type .\"O .BR SHT_DYNAMIC . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションのタイプは .BR SHT_DYNAMIC -¤Ç¤¢¤ë¡£ +である。 .\"O See the attributes above. -¾åµ­¤Î°À­¤ò»²¾È¤¹¤ë¤³¤È¡£ +上記の属性を参照すること。 .TP .IR .dynstr .\"O This section holds strings needed for dynamic linking, most commonly .\"O the strings that represent the names associated with symbol table entries. -¤³¤Î¥»¥¯¥·¥ç¥ó¤ÏưŪ¥ê¥ó¥¯¤ËɬÍפÊʸ»úÎó¤òÊÝ»ý¤¹¤ë¡£ -ºÇ¤â°ìÈÌŪ¤Ë¤Ï¡¢¤³¤Îʸ»úÎó¤Ï¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤È -´ØÏ¢¤Å¤±¤é¤ì¤¿Ì¾Á°¤òɽ¤¹¡£ +このセクションは動的リンクに必要な文字列を保持する。 +最も一般的には、この文字列はシンボルテーブルエントリと +関連づけられた名前を表す。 .\"O This section is of type .\"O .BR SHT_STRTAB . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションのタイプは .BR SHT_STRTAB -¤Ç¤¢¤ë¡£ +である。 .\"O The attribute type used is .\"O .BR SHF_ALLOC . -»ÈÍѤµ¤ì¤ë°À­¥¿¥¤¥×¤Ï +使用される属性タイプは .BR SHF_ALLOC -¤Ç¤¢¤ë¡£ +である。 .TP .IR .dynsym .\"O This section holds the dynamic linking symbol table. -¤³¤Î¥»¥¯¥·¥ç¥ó¤ÏưŪ¥ê¥ó¥¯¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£ +このセクションは動的リンクシンボルテーブルを保持する。 .\"O This section is of type .\"O .BR SHT_DYNSYM . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションのタイプは .BR SHT_DYNSYM -¤Ç¤¢¤ë¡£ +である。 .\"O The attribute used is .\"O .BR SHF_ALLOC . -»ÈÍѤµ¤ì¤ë°À­¥¿¥¤¥×¤Ï +使用される属性タイプは .BR SHF_ALLOC -¤Ç¤¢¤ë¡£ +である。 .TP .IR .fini .\"O This section holds executable instructions that contribute to the process .\"O termination code. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥»¥¹½ªÎ»¥³¡¼¥É¤ËÃÖ¤«¤ì¤ë¼Â¹Ô²Äǽ̿Îá¤òÊÝ»ý¤¹¤ë¡£ +このセクションはプロセス終了コードに置かれる実行可能命令を保持する。 .\"O When a program exits normally the system arranges to .\"O execute the code in this section. -¥×¥í¥»¥¹¤¬Àµ¾ï¤Ë½ªÎ»¤·¤¿¾ì¹ç¡¢¥·¥¹¥Æ¥à¤Ï¤³¤Î¥»¥¯¥·¥ç¥ó¤Ë¤¢¤ë -¥³¡¼¥É¤òÇÛÃÖ¤·¤Æ¼Â¹Ô¤¹¤ë¡£ +プロセスが正常に終了した場合、システムはこのセクションにある +コードを配置して実行する。 .\"O This section is of type .\"O .BR SHT_PROGBITS . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ +である。 .\"O The attributes used are .\"O .BR SHF_ALLOC .\"O and .\"O .BR SHF_EXECINSTR . -»ÈÍѤµ¤ì¤ë°À­¥¿¥¤¥×¤Ï +使用される属性タイプは .BR SHF_ALLOC -¤È +と .BR SHF_EXECINSTR -¤Ç¤¢¤ë¡£ +である。 .TP .IR .gnu.version .\"O This section holds the version symbol table, an array of @@ -1883,16 +1883,16 @@ NULL ʸ .\"O .BR SHT_GNU_versym . .\"O The attribute type used is .\"O .BR SHF_ALLOC . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥Ð¡¼¥¸¥ç¥ó¡¦¥·¥ó¥Ü¥ë¡¦¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£ -¤½¤ÎÆâÍÆ¤Ï +このセクションはバージョン・シンボル・テーブルを保持する。 +その内容は .I ElfN_Half -Í×ÁǤÎÇÛÎó¤Ç¤¢¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +要素の配列である。 +このセクションのタイプは .B SHT_GNU_versym -¤Ç¤¢¤ë¡£ -»ÈÍѤµ¤ì¤ë°À­¥¿¥¤¥×¤Ï +である。 +使用される属性タイプは .B SHF_ALLOC -¤Ç¤¢¤ë¡£ +である。 .TP .IR .gnu.version_d .\"O This section holds the version symbol definitions, a table of @@ -1902,16 +1902,16 @@ NULL ʸ .\"O .BR SHT_GNU_verdef . .\"O The attribute type used is .\"O .BR SHF_ALLOC . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥Ð¡¼¥¸¥ç¥ó¥·¥ó¥Ü¥ë¤ÎÄêµÁ¤òÊÝ»ý¤¹¤ë¡£ -¤½¤ÎÆâÍÆ¤Ï +このセクションはバージョンシンボルの定義を保持する。 +その内容は .I ElfN_Verdef -¹½Â¤ÂΤΥơ¼¥Ö¥ë¤Ç¤¢¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +構造体のテーブルである。 +このセクションのタイプは .B SHT_GNU_verdef -¤Ç¤¢¤ë¡£ -»ÈÍѤµ¤ì¤ë°À­¥¿¥¤¥×¤Ï +である。 +使用される属性タイプは .B SHF_ALLOC -¤Ç¤¢¤ë¡£ +である。 .TP .IR .gnu.version_r .\"O This section holds the version symbol needed elements, a table of @@ -1922,27 +1922,27 @@ NULL ʸ .\"O .BR SHT_GNU_versym . .\"O The attribute type used is .\"O .BR SHF_ALLOC . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥Ð¡¼¥¸¥ç¥ó¥·¥ó¥Ü¥ë¤¬É¬ÍפȤ¹¤ëÍ×ÁǤòÊÝ»ý¤¹¤ë¡£ -¤½¤ÎÆâÍÆ¤Ï +このセクションはバージョンシンボルが必要とする要素を保持する。 +その内容は .I ElfN_Verneed -¹½Â¤ÂΤΥơ¼¥Ö¥ë¤Ç¤¢¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +構造体のテーブルである。 +このセクションのタイプは .B SHT_GNU_versym -¤Ç¤¢¤ë¡£ -»ÈÍѤµ¤ì¤ë°À­¥¿¥¤¥×¤Ï +である。 +使用される属性タイプは .B shf_alloc -¤Ç¤¢¤ë¡£ +である。 .TP .IR .got .\"O This section holds the global offset table. .\"O This section is of type .\"O .BR SHT_PROGBITS . .\"O The attributes are processor-specific. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥°¥í¡¼¥Ð¥ë¥ª¥Õ¥»¥Ã¥È¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションはグローバルオフセットテーブルを保持する。 +このセクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ -°À­¤Ï¥×¥í¥»¥Ã¥µËè¤Ë°Û¤Ê¤ë¡£ +である。 +属性はプロセッサ毎に異なる。 .TP .IR .hash .\"O This section holds a symbol hash table. @@ -1950,99 +1950,99 @@ NULL ʸ .\"O .BR SHT_HASH . .\"O The attribute used is .\"O .BR SHF_ALLOC . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥·¥ó¥Ü¥ë¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£ -¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションはシンボルハッシュテーブルを保持する。 +セクションのタイプは .BR SHT_HASH -¤Ç¤¢¤ë¡£ -»ÈÍѤµ¤ì¤ë°À­¤Ï +である。 +使用される属性は .BR SHF_ALLOC -¤Ç¤¢¤ë¡£ +である。 .TP .IR .init .\"O This section holds executable instructions that contribute to the process .\"O initialization code. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥»¥¹½é´ü²½¥³¡¼¥É¤ËÇÛÃÖ¤µ¤ì¤ë¼Â¹Ô²Äǽ̿Îá¤òÊÝ»ý¤¹¤ë¡£ +このセクションはプロセス初期化コードに配置される実行可能命令を保持する。 .\"O When a program starts to run the system arranges to .\"O execute the code in this section before calling the main program entry point. -¥×¥í¥°¥é¥à¤¬¼Â¹Ô¤ò³«»Ï¤¹¤ë¤È¡¢ -¥·¥¹¥Æ¥à¤Ï¥á¥¤¥ó¥×¥í¥°¥é¥à¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¡¢ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ë¤¢¤ë¥³¡¼¥É¤òÇÛÃÖ¤·¤Æ¼Â¹Ô¤¹¤ë¡£ +プログラムが実行を開始すると、 +システムはメインプログラムエントリポイントを呼び出す前に、 +このセクションにあるコードを配置して実行する。 .\"O This section is of type .\"O .BR SHT_PROGBITS . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¤Î¥¿¥¤¥×¤Ï +このセクションはのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ +である。 .\"O The attributes used are .\"O .BR SHF_ALLOC .\"O and .\"O .BR SHF_EXECINSTR . -»ÈÍѤµ¤ì¤ë°À­¤Ï +使用される属性は .BR SHF_ALLOC -¤È +と .BR SHF_EXECINSTR -¤Ç¤¢¤ë¡£ +である。 .TP .IR .interp .\"O This section holds the pathname of a program interpreter. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥°¥é¥à¥¤¥ó¥¿¥×¥ê¥¿¤Î¥Ñ¥¹Ì¾¤òÊÝ»ý¤¹¤ë¡£ +このセクションはプログラムインタプリタのパス名を保持する。 .\"O If the file has .\"O a loadable segment that includes the section, the section's attributes will .\"O include the .\"O .BR SHF_ALLOC .\"O bit. -¥Õ¥¡¥¤¥ë¤Ë¤³¤Î¥»¥¯¥·¥ç¥ó¤ò´Þ¤à¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¤¬¤¢¤ë¾ì¹ç¡¢ -¤½¤Î¥»¥¯¥·¥ç¥ó¤Î°À­¤Ë¤Ï +ファイルにこのセクションを含むロード可能セグメントがある場合、 +そのセクションの属性には .BR SHF_ALLOC -¥Ó¥Ã¥È¤¬´Þ¤Þ¤ì¤ë¡£ +ビットが含まれる。 .\"O Otherwise, that bit will be off. -¤½¤ì°Ê³°¤Î¾ì¹ç¤³¤Î¥Ó¥Ã¥È¤Ï¥ª¥Õ¤Ë¤Ê¤ë¡£ +それ以外の場合このビットはオフになる。 .\"O This section is of type .\"O .BR SHT_PROGBITS . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ +である。 .TP .IR .line .\"O This section holds line number information for symbolic debugging, which .\"O describes the correspondence between the program source and the machine code. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥·¥ó¥Ü¥ê¥Ã¥¯¥Ç¥Ð¥Ã¥°¤Î¤¿¤á¤Î¹ÔÈÖ¹æ¾ðÊó¤òÊÝ»ý¤¹¤ë¡£ -¤³¤³¤Ë¤Ï¥×¥í¥°¥é¥à¥½¡¼¥¹¥³¡¼¥É¤È¥Þ¥·¥ó¥³¡¼¥É¤ÎÂбþ´Ø·¸¤¬µ­½Ò¤µ¤ì¤ë¡£ +このセクションはシンボリックデバッグのための行番号情報を保持する。 +ここにはプログラムソースコードとマシンコードの対応関係が記述される。 .\"O The contents are unspecified. -ÆâÍƤϻØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +内容は指定されていない。 .\"O This section is of type .\"O .BR SHT_PROGBITS . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ +である。 .\"O No attribute types are used. -°À­¥¿¥¤¥×¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£ +属性タイプは使用されない。 .TP .IR .note .\"O This section holds information in the .\"O "Note Section" .\"O format described below. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï°Ê²¼¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë +このセクションは以下に記述されている "Note Section" -·Á¼°¤Ç¾ðÊó¤òÊÝ»ý¤¹¤ë¡£ +形式で情報を保持する。 .\"O This section is of type .\"O .BR SHT_NOTE . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションのタイプは .BR SHT_NOTE -¤Ç¤¢¤ë¡£ +である。 .\"O No attribute types are used. -°À­¥¿¥¤¥×¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£ +属性タイプは使用されない。 .\"O OpenBSD .\"O native executables usually contain a .\"O .IR .note.openbsd.ident .\"O section to identify themselves, for the kernel to bypass any compatibility .\"O ELF binary emulation tests when loading the file. -Ä̾ï +通常 OpenBSD -¥Í¥¤¥Æ¥£¥Ö¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤Ï¼«¿È¤ò¼±Ê̤¹¤ë¤¿¤á¤Ë +ネイティブ実行可能ファイルは自身を識別するために .IR .note.openbsd.ident -¥»¥¯¥·¥ç¥ó¤ò»ý¤Ä¡£ -¤³¤ì¤Ë¤è¤ê¥«¡¼¥Í¥ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥É¤¹¤ëºÝ¤Ë -¸ß´¹ ELF ¥Ð¥¤¥Ê¥ê¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¥Æ¥¹¥È¤ò²óÈò¤Ç¤­¤ë¡£ +セクションを持つ。 +これによりカーネルは、ファイルをロードする際に +互換 ELF バイナリエミュレーションテストを回避できる。 .TP .IR .note.GNU-stack .\"O This section is used in Linux object files for declaring stack attributes. @@ -2052,235 +2052,235 @@ OpenBSD .\"O .BR SHF_EXECINSTR . .\"O This indicates to the GNU linker that the object file requires an .\"O executable stack. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï Linux ¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ç -¥¹¥¿¥Ã¥¯Â°À­¤òÀë¸À¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ -¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションは Linux のオブジェクトファイルで +スタック属性を宣言するのに使用される。 +セクションのタイプは .B SHT_PROGBITS -¤Ç¤¢¤ë¡£»ÈÍѤµ¤ì¤ë°À­¤Ï +である。使用される属性は .B SHF_EXECINSTR -¤À¤±¤Ç¤¢¤ë¡£¤³¤Î°À­¤Ï GNU ¥ê¥ó¥«¤ËÂФ·¤Æ -¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤¬¼Â¹Ô²Äǽ¤Ê¥¹¥¿¥Ã¥¯ (executable stack) ¤òɬÍפȤ¹¤ë -¼¨¤¹¤â¤Î¤Ç¤¢¤ë¡£ +だけである。この属性は GNU リンカに対して +オブジェクトファイルが実行可能なスタック (executable stack) を必要とする +示すものである。 .TP .IR .plt .\"O This section holds the procedure linkage table. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¼ê³¤­ (procedure) ¥ê¥ó¥¯¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£ +このセクションは手続き (procedure) リンクテーブルを保持する。 .\"O This section is of type .\"O .BR SHT_PROGBITS . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ +である。 .\"O The attributes are processor-specific. -°À­¤Ï¥×¥í¥»¥Ã¥µËè¤Ë°Û¤Ê¤ë¡£ +属性はプロセッサ毎に異なる。 .TP .IR .relNAME .\"O This section holds relocation information as described below. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï°Ê²¼¤Ëµ­½Ò¤µ¤ì¤ëºÆÇÛÃÖ¾ðÊó¤òÊÝ»ý¤¹¤ë¡£ +このセクションは以下に記述される再配置情報を保持する。 .\"O If the file .\"O has a loadable segment that includes relocation, the section's attributes .\"O will include the .\"O .BR SHF_ALLOC .\"O bit. -¥Õ¥¡¥¤¥ë¤¬ºÆÇÛÃÖ¤ò´Þ¤à¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î°À­¤Ï +ファイルが再配置を含むロード可能セグメントを持っている場合、 +このセクションの属性は .BR SHF_ALLOC -¥Ó¥Ã¥È¤ò´Þ¤à¡£ +ビットを含む。 .\"O Otherwise the bit will be off. -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¤½¤Î¥Ó¥Ã¥È¤Ï¥ª¥Õ¤Ç¤¢¤ë¡£ +それ以外の場合、そのビットはオフである。 .\"O By convention, .\"O "NAME" .\"O is supplied by the section to which the relocations apply. -´·Îã¤È¤·¤Æ¡¢ +慣例として、 "NAME" -¤ÏºÆÇÛÃÖ¤¬Å¬ÍѤµ¤ì¤ë¥»¥¯¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤ë¡£ +は再配置が適用されるセクションが指定される。 .\"O Thus a relocation .\"O section for .\"O .BR .text .\"O normally would have the name .\"O .BR .rel.text . -¤è¤Ã¤Æ +よって .BR .text -¤Ë¤Ä¤¤¤Æ¤ÎºÆÇÛÃÖ¥»¥¯¥·¥ç¥ó¤Ï¡¢Ä̾ï¤Ï +についての再配置セクションは、通常は .BR .rel.text -¤È¤¤¤¦Ì¾Á°¤ò»ý¤Ä¡£ +という名前を持つ。 .\"O This section is of type .\"O .BR SHT_REL . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションのタイプは .BR SHT_REL -¤Ç¤¢¤ë¡£ +である。 .TP .IR .relaNAME .\"O This section holds relocation information as described below. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï°Ê²¼¤Ëµ­½Ò¤µ¤ì¤ëºÆÇÛÃÖ¾ðÊó¤òÊÝ»ý¤¹¤ë¡£ +このセクションは以下に記述される再配置情報を保持する。 .\"O If the file .\"O has a loadable segment that includes relocation, the section's attributes .\"O will include the .\"O .BR SHF_ALLOC .\"O bit. -¥Õ¥¡¥¤¥ë¤¬ºÆÇÛÃÖ¤ò´Þ¤à¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î°À­¤Ï +ファイルが再配置を含むロード可能セグメントを持っている場合、 +このセクションの属性は .BR SHF_ALLOC -¥Ó¥Ã¥È¤ò´Þ¤à¡£ +ビットを含む。 .\"O Otherwise the bit will be off. -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¤½¤Î¥Ó¥Ã¥È¤Ï¥ª¥Õ¤Ç¤¢¤ë¡£ +それ以外の場合、そのビットはオフである。 .\"O By convention, .\"O "NAME" .\"O is supplied by the section to which the relocations apply. -´·Îã¤È¤·¤Æ¡¢ +慣例として、 "NAME" -¤ÏºÆÇÛÃÖ¤¬Å¬ÍѤµ¤ì¤ë¥»¥¯¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤ë¡£ +は再配置が適用されるセクションが指定される。 .\"O Thus a relocation .\"O section for .\"O .BR .text .\"O normally would have the name .\"O .BR .rela.text . -¤è¤Ã¤Æ +よって .BR .text -¤Ë¤Ä¤¤¤Æ¤ÎºÆÇÛÃÖ¥»¥¯¥·¥ç¥ó¤Ï¡¢Ä̾ï¤Ï +についての再配置セクションは、通常は .BR .rela.text -¤È¤¤¤¦Ì¾Á°¤ò»ý¤Ä¡£ +という名前を持つ。 .\"O This section is of type .\"O .BR SHT_RELA . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションのタイプは .BR SHT_RELA -¤Ç¤¢¤ë¡£ +である。 .TP .IR .rodata .\"O This section holds read-only data that typically contributes to a .\"O nonwritable segment in the process image. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥ê¡¼¥É¥ª¥ó¥ê¡¼¤Î¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¡£ -¤³¤Î¥Ç¡¼¥¿¤Ï¥×¥í¥»¥¹¥¤¥á¡¼¥¸¤Ë¤ª¤±¤ë½ñ¤­¹þ¤ßÉÔ²Äǽ¤Ê¥»¥°¥á¥ó¥È¤ËÃÖ¤«¤ì¤ë¡£ +このセクションはリードオンリーのデータを保持する。 +このデータはプロセスイメージにおける書き込み不可能なセグメントに置かれる。 .\"O This section is of type .\"O .BR SHT_PROGBITS . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ +である。 .\"O The attribute used is .\"O .BR SHF_ALLOC . -»ÈÍѤµ¤ì¤ë°À­¤Ï +使用される属性は .BR SHF_ALLOC -¤Ç¤¢¤ë¡£ +である。 .TP .IR .rodata1 .\"O This section holds read-only data that typically contributes to a .\"O nonwritable segment in the process image. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥ê¡¼¥É¥ª¥ó¥ê¡¼¤Î¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¡£ -¤³¤Î¥Ç¡¼¥¿¤Ï¥×¥í¥»¥¹¥¤¥á¡¼¥¸¤Ë¤ª¤±¤ë½ñ¤­¹þ¤ßÉÔ²Äǽ¤Ê¥»¥°¥á¥ó¥È¤ËÃÖ¤«¤ì¤ë¡£ +このセクションはリードオンリーのデータを保持する。 +このデータはプロセスイメージにおける書き込み不可能なセグメントに置かれる。 .\"O This section is of type .\"O .BR SHT_PROGBITS . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ +である。 .\"O The attribute used is .\"O .BR SHF_ALLOC . -»ÈÍѤµ¤ì¤ë°À­¤Ï +使用される属性は .BR SHF_ALLOC -¤Ç¤¢¤ë¡£ +である。 .TP .IR .shstrtab .\"O This section holds section names. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥»¥¯¥·¥ç¥ó̾¤òÊÝ»ý¤¹¤ë¡£ +このセクションはセクション名を保持する。 .\"O This section is of type .\"O .BR SHT_STRTAB . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションのタイプは .BR SHT_STRTAB -¤Ç¤¢¤ë¡£ +である。 .\"O No attribute types are used. -°À­¥¿¥¤¥×¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£ +属性タイプは使用されない。 .TP .IR .strtab .\"O This section holds strings, most commonly the strings that represent the .\"O names associated with symbol table entries. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ïʸ»úÎó¤òÊÝ»ý¤¹¤ë¡£ -ºÇ¤â°ìÈÌŪ¤Ê¤Î¤Ï¡¢¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿ -̾Á°¤òɽ¤¹Ê¸»úÎó¤Ç¤¢¤ë¡£ +このセクションは文字列を保持する。 +最も一般的なのは、シンボルテーブルエントリに関連づけられた +名前を表す文字列である。 .\"O If the file has a loadable .\"O segment that includes the symbol string table, the section's attributes .\"O will include the .\"O .BR SHF_ALLOC .\"O bit. -¥Õ¥¡¥¤¥ë¤¬¥·¥ó¥Ü¥ëʸ»úÎó¥Æ¡¼¥Ö¥ë¤ò´Þ¤à¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¤ò»ý¤Ä¾ì¹ç¡¢ -¥»¥¯¥·¥ç¥ó¤Î°À­¤Ï +ファイルがシンボル文字列テーブルを含むロード可能セグメントを持つ場合、 +セクションの属性は .BR SHF_ALLOC -¥Ó¥Ã¥È¤ò´Þ¤à¡£ +ビットを含む。 .\"O Otherwise the bit will be off. -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¤½¤Î¥Ó¥Ã¥È¤Ï¥ª¥Õ¤Ç¤¢¤ë¡£ +それ以外の場合、そのビットはオフである。 .\"O This section is of type .\"O .BR SHT_STRTAB . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションのタイプは .BR SHT_STRTAB -¤Ç¤¢¤ë¡£ +である。 .TP .IR .symtab .\"O This section holds a symbol table. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£ +このセクションはシンボルテーブルを保持する。 .\"O If the file has a loadable segment .\"O that includes the symbol table, the section's attributes will include .\"O the .\"O .BR SHF_ALLOC .\"O bit. -¥Õ¥¡¥¤¥ë¤¬¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤ò´Þ¤à¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¤ò»ý¤Ä¾ì¹ç¡¢ -¥»¥¯¥·¥ç¥ó¤Î°À­¤Ï +ファイルがシンボルテーブルを含むロード可能セグメントを持つ場合、 +セクションの属性は .BR SHF_ALLOC -¥Ó¥Ã¥È¤ò´Þ¤à¡£ +ビットを含む。 .\"O Otherwise the bit will be off. -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¥Ó¥Ã¥È¤Ï¥ª¥Õ¤Ç¤¢¤ë¡£ +それ以外の場合、ビットはオフである。 .\"O This section is of type .\"O .BR SHT_SYMTAB . -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションのタイプは .BR SHT_SYMTAB -¤Ç¤¢¤ë¡£ +である。 .TP .IR .text .\"O This section holds the .\"O "text", .\"O or executable instructions, of a program. -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥°¥é¥à¤Î -"¥Æ¥­¥¹¥È" -¤Þ¤¿¤Ï¼Â¹Ô²Äǽ̿Îá¤òÊÝ»ý¤¹¤ë¡£ +このセクションはプログラムの +"テキスト" +または実行可能命令を保持する。 .\"O This section is of type .\"O .BR SHT_PROGBITS . -¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +セクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ +である。 .\"O The attributes used are .\"O .BR SHF_ALLOC .\"O and .\"O .BR SHF_EXECINSTR . -»ÈÍѤµ¤ì¤ë°À­¤Ï +使用される属性は .BR SHF_ALLOC -¤È +と .BR SHF_EXECINSTR -¤Ç¤¢¤ë¡£ +である。 .\" .El .PP .\"O String table sections hold null-terminated character sequences, commonly .\"O called strings. -ʸ»úÎó¥Æ¡¼¥Ö¥ë¥»¥¯¥·¥ç¥ó¤Ï NULL ʸ»ú¤Ç½ªÃ¼¤µ¤ì¤¿¥­¥ã¥é¥¯¥¿ÇÛÎó -(Ä̾ïʸ»úÎó¤È¸Æ¤Ð¤ì¤ë¤â¤Î) ¤òÊÝ»ý¤¹¤ë¡£ +文字列テーブルセクションは NULL 文字で終端されたキャラクタ配列 +(通常文字列と呼ばれるもの) を保持する。 .\"O The object file uses these strings to represent symbol .\"O and section names. -¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ï¤³¤ì¤é¤Îʸ»úÎó¤ò -¥·¥ó¥Ü¥ë̾¤È¥»¥¯¥·¥ç¥ó̾¤òɽ¤¹¤¿¤á¤Ë»È¤¦¡£ +オブジェクトファイルはこれらの文字列を +シンボル名とセクション名を表すために使う。 .\"O One references a string as an index into the string .\"O table section. -ʸ»úÎó¤Ï¡¢Ê¸»úÎó¥Æ¡¼¥Ö¥ë¥»¥¯¥·¥ç¥ó¤Ø¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤È¤·¤Æ»²¾È¤µ¤ì¤ë¡£ +文字列は、文字列テーブルセクションへのインデックスとして参照される。 .\"O The first byte, which is index zero, is defined to hold .\"O a null byte (\(aq\\0\(aq). -¥¤¥ó¥Ç¥Ã¥¯¥¹ 0 ¤ÎºÇ½é¤Î¥Ð¥¤¥È¤Ï¡¢NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤ò -ÊÝ»ý¤¹¤ë¤ÈÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +インデックス 0 の最初のバイトは、NULL バイト (\(aq\\0\(aq) を +保持すると定義されている。 .\"O Similarly, a string table's last byte is defined to .\"O hold a null byte, ensuring null termination for all strings. -ƱÍͤËʸ»úÎó¥Æ¡¼¥Ö¥ë¤ÎºÇ¸å¤Î¥Ð¥¤¥È¤â NULL ʸ»ú¤òÊÝ»ý¤¹¤ë¤ÈÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤ÏÁ´¤Æ¤Îʸ»úÎó¤¬ NULL ¥Ð¥¤¥È¤Ç½ªÃ¼¤µ¤ì¤Æ¤¤¤ë¤³¤È¤òÊݾڤ¹¤ë¤¿¤á¤Ç¤¢¤ë¡£ +同様に文字列テーブルの最後のバイトも NULL 文字を保持すると定義されている。 +これは全ての文字列が NULL バイトで終端されていることを保証するためである。 .PP .\"O An object file's symbol table holds information needed to locate and .\"O relocate a program's symbolic definitions and references. .\"O A symbol table .\"O index is a subscript into this array. -¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤Ï¡¢ -¥×¥í¥°¥é¥à¤Î¥·¥ó¥Ü¥ëÄêµÁ¤È»²¾È¤òÇÛÃÖ¤Þ¤¿¤ÏºÆÇÛÃÖ¤¹¤ë¤Î¤Ë -ɬÍפʾðÊó¤òÊÝ»ý¤¹¤ë¡£ +オブジェクトファイルのシンボルテーブルは、 +プログラムのシンボル定義と参照を配置または再配置するのに +必要な情報を保持する。 .in +4n .nf @@ -2310,68 +2310,68 @@ typedef struct { .PP .\"O The 32-bit and 64-bit versions have the same members, just in a different .\"O order. -32 ¥Ó¥Ã¥ÈÈÇ¤È 64 ¥Ó¥Ã¥ÈÈǤÏƱ¤¸¥á¥ó¥Ð¤ò»ý¤Á¡¢Ã±¤Ë½çÈÖ¤¬°Û¤Ê¤ë¤À¤±¤Ç¤¢¤ë¡£ +32 ビット版と 64 ビット版は同じメンバを持ち、単に順番が異なるだけである。 .\" .Bl -tag -width "st_value" .TP 10 .IR st_name .\"O This member holds an index into the object file's symbol string table, .\"O which holds character representations of the symbol names. -¤³¤Î¥á¥ó¥Ð¤Ï¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î¥·¥ó¥Ü¥ëʸ»úÎó¥Æ¡¼¥Ö¥ë¤Î -¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÊÝ»ý¤¹¤ë¡£ -¥·¥ó¥Ü¥ëʸ»úÎó¥Æ¡¼¥Ö¥ë¤Ï¥·¥ó¥Ü¥ë̾¤Îʸ»úɽ¸½¤òÊÝ»ý¤¹¤ë¡£ +このメンバはオブジェクトファイルのシンボル文字列テーブルの +インデックスを保持する。 +シンボル文字列テーブルはシンボル名の文字表現を保持する。 .\"O If the value .\"O is nonzero, it represents a string table index that gives the symbol .\"O name. -¤³¤ÎÃͤ¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¡¢¥·¥ó¥Ü¥ë̾¤òÆÀ¤ë¤¿¤á¤Îʸ»ú¥Æ¡¼¥Ö¥ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤òɽ¤¹¡£ +この値が 0 でない場合、シンボル名を得るための文字テーブルインデックスを表す。 .\"O Otherwise, the symbol table has no name. -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤Ï̾Á°¤ò»ý¤¿¤Ê¤¤¡£ +それ以外の場合、シンボルテーブルは名前を持たない。 .TP .IR st_value .\"O This member gives the value of the associated symbol. -¤³¤Î¥á¥ó¥Ð¤Ï´ØÏ¢¤Å¤±¤é¤ì¤¿¥·¥ó¥Ü¥ë¤ÎÃͤòɽ¤¹¡£ +このメンバは関連づけられたシンボルの値を表す。 .TP .IR st_size .\"O Many symbols have associated sizes. .\"O This member holds zero if the symbol .\"O has no size or an unknown size. -¿¤¯¤Î¥·¥ó¥Ü¥ë¤Ë¤Ï¤½¤ì¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥µ¥¤¥º¤¬¤¢¤ë¡£ -¥·¥ó¥Ü¥ë¤¬¥µ¥¤¥º¤ò»ý¤¿¤Ê¤¤¾ì¹ç¡¢¤Þ¤¿¤Ï¥µ¥¤¥º¤¬ÉÔÌÀ¤Ê¾ì¹ç¡¢ -¤³¤Î¥á¥ó¥Ð¤Ï 0 ¤Ç¤¢¤ë¡£ +多くのシンボルにはそれに関連づけられたサイズがある。 +シンボルがサイズを持たない場合、またはサイズが不明な場合、 +このメンバは 0 である。 .TP .IR st_info .\"O This member specifies the symbol's type and binding attributes: -¤³¤Î¥á¥ó¥Ð¤Ï¥·¥ó¥Ü¥ë¤Î¥¿¥¤¥×¤È¥Ð¥¤¥ó¥Ç¥£¥ó¥° (binding) °À­¤ò»ØÄꤹ¤ë: +このメンバはシンボルのタイプとバインディング (binding) 属性を指定する: .RS 10 .TP 12 .BR STT_NOTYPE .\"O The symbol's type is not defined. -¥·¥ó¥Ü¥ë¤Î¥¿¥¤¥×¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +シンボルのタイプが定義されていない。 .TP .BR STT_OBJECT .\"O The symbol is associated with a data object. -¥·¥ó¥Ü¥ë¤Ï¥Ç¡¼¥¿¥ª¥Ö¥¸¥§¥¯¥È¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ë¡£ +シンボルはデータオブジェクトに関連づけられている。 .TP .BR STT_FUNC .\"O The symbol is associated with a function or other executable code. -¥·¥ó¥Ü¥ë¤Ï´Ø¿ô¤Þ¤¿¤Ï¤½¤Î¾¤Î¼Â¹Ô¥³¡¼¥É¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ë¡£ +シンボルは関数またはその他の実行コードに関連づけられている。 .TP .BR STT_SECTION .\"O The symbol is associated with a section. -¥·¥ó¥Ü¥ë¤Ï¥»¥¯¥·¥ç¥ó¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ë¡£ +シンボルはセクションに関連づけられている。 .\"O Symbol table entries of .\"O this type exist primarily for relocation and normally have .\"O .BR STB_LOCAL .\"O bindings. -¤³¤Î¥¿¥¤¥×¤Î¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤Ï¡¢ -¼ç¤È¤·¤ÆºÆÇÛÃ֤Τ¿¤á¤Ë¸ºß¤·¡¢Ä̾ï¤Ï +このタイプのシンボルテーブルエントリは、 +主として再配置のために存在し、通常は .BR STB_LOCAL -¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤ò»ý¤Ä¡£ +バインディングを持つ。 .TP .BR STT_FILE .\"O By convention, the symbol's name gives the name of the source file .\"O associated with the object file. -´·Îã¤È¤·¤Æ¡¢¥·¥ó¥Ü¥ë¤Î̾Á°¤Ï -¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Î̾Á°¤ò»ØÄꤹ¤ë¡£ +慣例として、シンボルの名前は +オブジェクトファイルに関連づけられたソースファイルの名前を指定する。 .\"O A file symbol has .\"O .BR STB_LOCAL .\"O bindings, its section index is @@ -2379,143 +2379,143 @@ typedef struct { .\"O and it precedes the other .\"O .BR STB_LOCAL .\"O symbols of the file, if it is present. -¥Õ¥¡¥¤¥ë¥·¥ó¥Ü¥ë¤Ï +ファイルシンボルは .BR STB_LOCAL -¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤ò»ý¤Á¡¢¤½¤Î¥»¥¯¥·¥ç¥ó¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï +バインディングを持ち、そのセクションインデックスは .BR SHN_ABS -¤Ç¤¢¤ë¡£ -¥Õ¥¡¥¤¥ë¥·¥ó¥Ü¥ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤Ë¾¤Î +である。 +ファイルシンボルは、ファイルに他の .BR STB_LOCAL -¥·¥ó¥Ü¥ë¤¬¤¢¤ë¾ì¹ç¤Ï¡¢¤½¤ì¤è¤ê¤âÀè¤ËÍè¤ë¡£ +シンボルがある場合は、それよりも先に来る。 .TP .BR STT_LOPROC .\"O This value up to and including .\"O .BR STT_HIPROC .\"O is reserved for processor-specific semantics. -¤³¤ÎÃͰʾå¤Ç +この値以上で .BR STT_HIPROC -°Ê²¼¤ÎÈÏ°Ï¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ +以下の範囲はプロセッサ固有の意味に予約されている。 .TP .BR STT_HIPROC .\"O This value down to and including .\"O .BR STT_LOPROC .\"O is reserved for processor-specific semantics. -¤³¤ÎÃͰʲ¼¤Ç +この値以下で .BR STT_LOPROC -°Ê¾å¤ÎÈÏ°Ï¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ +以上の範囲はプロセッサ固有の意味に予約されている。 .\" .El .\" .Bl -tag -width "STB_GLOBAL" .TP .BR STB_LOCAL .\"O Local symbols are not visible outside the object file containing their .\"O definition. -¶É½êŪ¥·¥ó¥Ü¥ë¤Ï¤½¤ÎÄêµÁ¤ò´Þ¤à¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î³°¤«¤é¤Ï¸«¤¨¤Ê¤¤¡£ +局所的シンボルはその定義を含むオブジェクトファイルの外からは見えない。 .\"O Local symbols of the same name may exist in multiple files .\"O without interfering with each other. -Ʊ¤¸Ì¾Á°¤Î¶É½êŪ¥·¥ó¥Ü¥ë¤Ï¡¢¤ª¸ß¤¤¤Ë±Æ¶Á¤ò¼õ¤±¤ë¤³¤È¤Ê¤¯¡¢ -Ê£¿ô¤Î¥Õ¥¡¥¤¥ë¤Ë¸ºß¤Ç¤­¤ë¡£ +同じ名前の局所的シンボルは、お互いに影響を受けることなく、 +複数のファイルに存在できる。 .TP .BR STB_GLOBAL .\"O Global symbols are visible to all object files being combined. .\"O One file's .\"O definition of a global symbol will satisfy another file's undefined .\"O reference to the same symbol. -Âç°èŪ¥·¥ó¥Ü¥ë¤Ï·ë¤Ó¤Ä¤±¤é¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤«¤é¸«¤¨¤ë¡£ -1 ¤Ä¤Î¥Õ¥¡¥¤¥ë¤ÇÂç°èŪ¥·¥ó¥Ü¥ë¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤¿¤é¡¢ -¾¤Î¥Õ¥¡¥¤¥ë¤Ç¤ÏƱ¤¸¥·¥ó¥Ü¥ë¤Ø¤Î»²¾È¤Ï̤ÄêµÁ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +大域的シンボルは結びつけられている全てのオブジェクトファイルから見える。 +1 つのファイルで大域的シンボルが定義されていたら、 +他のファイルでは同じシンボルへの参照は未定義でなければならない。 .TP .BR STB_WEAK .\"O Weak symbols resemble global symbols, but their definitions have lower .\"O precedence. -¼å¥·¥ó¥Ü¥ë¤ÏÂç°èŪ¥·¥ó¥Ü¥ë¤Ë»÷¤Æ¤¤¤ë¤¬¡¢¤½¤ÎÄêµÁ¤ÏÍ¥ÀèÅÙ¤¬Ä㤤¡£ +弱シンボルは大域的シンボルに似ているが、その定義は優先度が低い。 .TP .BR STB_LOPROC .\"O This value up to and including .\"O .BR STB_HIPROC .\"O is reserved for processor-specific semantics. -¤³¤ÎÃͰʾå¤Ç +この値以上で .BR STB_HIPROC -°Ê²¼¤ÎÈÏ°Ï¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ +以下の範囲はプロセッサ固有の意味に予約されている。 .TP .BR STB_HIPROC .\"O This value down to and including .\"O .BR STB_LOPROC .\"O is reserved for processor-specific semantics. -¤³¤ÎÃͰʲ¼¤Ç +この値以下で .BR STB_LOPROC -°Ê¾å¤ÎÈÏ°Ï¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ +以上の範囲はプロセッサ固有の意味に予約されている。 .IP .\"O There are macros for packing and unpacking the binding and type fields: -¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤È¥¿¥¤¥×¥Õ¥£¡¼¥ë¥É¤ò -¥Ñ¥Ã¥¯¤·¤¿¤ê¥¢¥ó¥Ñ¥Ã¥¯¤·¤¿¤ê¤¹¤ë¥Þ¥¯¥í¤¬¤¢¤ë: +バインディングとタイプフィールドを +パックしたりアンパックしたりするマクロがある: .IP .BR ELF32_ST_BIND (info) .\"O or -¤Þ¤¿¤Ï +または .BR ELF64_ST_BIND (info) .\"O extract a binding from an .\"O .I st_info .\"O value. .I st_info -¤ÎÃͤ«¤é¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤ò¼è¤ê½Ð¤¹¡£ +の値からバインディングを取り出す。 .IP .BR ELF32_ST_TYPE (info) .\"O or -¤Þ¤¿¤Ï +または .BR ELF64_ST_TYPE (info) .br .\"O extract a type from an .\"O .I st_info .\"O value. .I st_info -¤ÎÃͤ«¤é¥¿¥¤¥×¤ò¼è¤ê½Ð¤¹¡£ +の値からタイプを取り出す。 .IP .BR ELF32_ST_INFO "(bind, type)" .\"O or -¤Þ¤¿¤Ï +または .BR ELF64_ST_INFO "(bind, type)" .br .\"O convert a binding and a type into an .\"O .I st_info .\"O value. -¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤È¥¿¥¤¥×¤ò +バインディングとタイプを .I st_info -¤ÎÃͤËÊÑ´¹¤¹¤ë¡£ +の値に変換する。 .RE .\" .El .TP .IR st_other .\"O This member defines the symbol visibility. -¤³¤Î¥á¥ó¥Ð¤Ï¥·¥ó¥Ü¥ë¤Î visibility (¸«¤¨¤ëÈÏ°Ï) ¤òµ¬Äꤹ¤ë¡£ +このメンバはシンボルの visibility (見える範囲) を規定する。 .\" .Bl -tag -width "STV_PROTECTED" .RS 10 .TP 16 .PD 0 .BR STV_DEFAULT .\"O Default symbol visibility rules. -¥Ç¥Õ¥©¥ë¥È¤Î¥·¥ó¥Ü¥ë visibility ¥ë¡¼¥ë¡£ +デフォルトのシンボル visibility ルール。 .TP .BR STV_INTERNAL .\"O Processor-specific hidden class. -¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î±£¤·¥¯¥é¥¹¡£ +プロセッサ固有の隠しクラス。 .TP .BR STV_HIDDEN .\"O Symbol is unavailable in other modules. -¥·¥ó¥Ü¥ë¤Ï¾¤Î¥â¥¸¥å¡¼¥ë¤«¤é¤ÏÍøÍѤǤ­¤Ê¤¤¡£ +シンボルは他のモジュールからは利用できない。 .TP .BR STV_PROTECTED .\"O Not preemptible, not exported. -²£¼è¤ê¤Ç¤­¤º (not preemptible)¡¢¸ø³«¤µ¤ì¤Ê¤¤¡£ +横取りできず (not preemptible)、公開されない。 .PD .PP .\"O There are macros for extracting the visibility type: -visibility ¼ïÊ̤òÃê½Ð¤¹¤ë¤¿¤á¤Î¥Þ¥¯¥í¤¬¤¢¤ë¡£ +visibility 種別を抽出するためのマクロがある。 .PP .\"O .BR ELF32_ST_VISIBILITY (other) .\"O or .\"O .BR ELF64_ST_VISIBILITY (other) .BR ELF32_ST_VISIBILITY (other) -¤Þ¤¿¤Ï +または .BR ELF64_ST_VISIBILITY (other) .RE .\" .El @@ -2524,29 +2524,29 @@ visibility .\"O Every symbol table entry is .\"O "defined" .\"O in relation to some section. -³Æ¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¥»¥¯¥·¥ç¥ó¤Ë´ØÏ¢¤·¤Æ -"ÄêµÁ¤µ¤ì¤Æ¤¤¤ë"¡£ +各シンボルテーブルエントリは、いくつかのセクションに関連して +"定義されている"。 .\"O This member holds the relevant section .\"O header table index. -¤³¤Î¥á¥ó¥Ð¤Ï´ØÏ¢¤¹¤ë¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÊÝ»ý¤¹¤ë¡£ +このメンバは関連するセクションヘッダテーブルインデックスを保持する。 .\" .El .PP .\"O Relocation is the process of connecting symbolic references with .\"O symbolic definitions. -ºÆÇÛÃ֤ϥ·¥ó¥Ü¥ë»²¾È¤È¥·¥ó¥Ü¥ëÄêµÁ¤ò·ë¹ç¤¹¤ë¥×¥í¥»¥¹¤Ç¤¢¤ë¡£ +再配置はシンボル参照とシンボル定義を結合するプロセスである。 .\"O Relocatable files must have information that .\"O describes how to modify their section contents, thus allowing executable .\"O and shared object files to hold the right information for a process's .\"O program image. -ºÆÇÛÃÖ²Äǽ¥Õ¥¡¥¤¥ë¤Ï¥»¥¯¥·¥ç¥ó¤ÎÆâÍƤò¤É¤Î¤è¤¦¤Ë½¤Àµ¤¹¤ë¤«¤Ë´Ø¤¹¤ë -¾ðÊó¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ì¤Ë¤è¤ê¡¢¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤È¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ï -¥×¥í¥»¥¹¤Î¥×¥í¥°¥é¥à¥¤¥á¡¼¥¸¤Ë¤Ä¤¤¤Æ¤ÎÀµ¤·¤¤¾ðÊó¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ +再配置可能ファイルはセクションの内容をどのように修正するかに関する +情報を持たなければならない。 +これにより、実行可能ファイルと共有オブジェクトファイルは +プロセスのプログラムイメージについての正しい情報を持つことができる。 .\"O Relocation entries are these data. -ºÆÇÛÃÖ¥¨¥ó¥È¥ê¤Ï°Ê²¼¤Î¤è¤¦¤Ê¥Ç¡¼¥¿¤Ç¤¢¤ë¡£ +再配置エントリは以下のようなデータである。 .PP .\"O Relocation structures that do not need an addend: -²Ã¿ô¤òɬÍפȤ·¤Ê¤¤ºÆÇÛÃÖ¹½Â¤ÂΡ£ +加数を必要としない再配置構造体。 .in +4n .nf @@ -2567,7 +2567,7 @@ typedef struct { .in .PP .\"O Relocation structures that need an addend: -²Ã¿ô¤òɬÍפȤ¹¤ëºÆÇÛÃÖ¹½Â¤ÂΡ£ +加数を必要とする再配置構造体。 .in +4n .nf @@ -2592,25 +2592,25 @@ typedef struct { .TP 12 .IR r_offset .\"O This member gives the location at which to apply the relocation action. -¤³¤Î¥á¥ó¥Ð¤ÏºÆÇÛÃÖÆ°ºî¤¬Å¬ÍѤµ¤ì¤ë°ÌÃÖ¤òÍ¿¤¨¤ë¡£ +このメンバは再配置動作が適用される位置を与える。 .\"O For a relocatable file, the value is the byte offset from the beginning .\"O of the section to the storage unit affected by the relocation. -ºÆÇÛÃÖ²Äǽ¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¡¢¤³¤ÎÃͤϥ»¥¯¥·¥ç¥ó¤ÎÀèƬ¤«¤é -ºÆÇÛÃ֤DZƶÁ¤ò¼õ¤±¤ë³ÊǼñ°Ì (storage unit) ¤Þ¤Ç¤Î¥Ð¥¤¥È¥ª¥Õ¥»¥Ã¥È¤Ç¤¢¤ë¡£ +再配置可能ファイルの場合、この値はセクションの先頭から +再配置で影響を受ける格納単位 (storage unit) までのバイトオフセットである。 .\"O For an .\"O executable file or shared object, the value is the virtual address of .\"O the storage unit affected by the relocation. -¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ì¹ç¡¢ -¤³¤ÎÃͤϺÆÇÛÃ֤DZƶÁ¤ò¼õ¤±¤ë³ÊǼñ°Ì¤Î²¾ÁÛ¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +実行可能ファイルまたは共有オブジェクトの場合、 +この値は再配置で影響を受ける格納単位の仮想アドレスである。 .TP .IR r_info .\"O This member gives both the symbol table index with respect to which the .\"O relocation must be made and the type of relocation to apply. -¤³¤Î¥á¥ó¥Ð¤Ï¡¢ºÆÇÛÃÖ¤¬¹Ô¤ï¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤È¡¢ -ŬÍѤµ¤ì¤ëºÆÇÛÃ֤Υ¿¥¤¥×¤ÎξÊý¤òÍ¿¤¨¤ë¡£ +このメンバは、再配置が行われなければならないシンボルテーブルインデックスと、 +適用される再配置のタイプの両方を与える。 .\"O Relocation .\"O types are processor specific. -ºÆÇÛÃÖ¥¿¥¤¥×¤Ï¥×¥í¥»¥Ã¥µËè¤Ë°Û¤Ê¤ë¡£ +再配置タイプはプロセッサ毎に異なる。 .\"O When the text refers to a relocation .\"O entry's relocation type or symbol table index, it means the result of .\"O applying @@ -2620,30 +2620,30 @@ typedef struct { .\"O respectively, to the entry's .\"O .IR r_info .\"O member. -¥Æ¥­¥¹¥È¤¬ºÆÇÛÃÖ¥¨¥ó¥È¥ê¤ÎºÆÇÛÃÖ¥¿¥¤¥× -¤Þ¤¿¤Ï¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -¤½¤ì¤¾¤ì¥¨¥ó¥È¥ê¤Î +テキストが再配置エントリの再配置タイプ +またはシンボルテーブルインデックスを参照している場合、 +それぞれエントリの .IR r_info -¥á¥ó¥Ð¤ËÂФ·¤Æ¡¢¤½¤ì¤¾¤ì +メンバに対して、それぞれ .BR ELF_[32|64]_R_TYPE -¤È +と .BR ELF[32|64]_R_SYM -¤òŬÍѤ·¤¿·ë²Ì¤ò°ÕÌ£¤¹¤ë¡£ +を適用した結果を意味する。 .TP .IR r_addend .\"O This member specifies a constant addend used to compute the value to be .\"O stored into the relocatable field. -¤³¤Î¥á¥ó¥Ð¤ÏÄê¿ô¤Î²Ã¿ô¤ò»ØÄꤹ¤ë¡£ -¤³¤Î²Ã¿ô¤ÏºÆÇÛÃÖ²Äǽ¥Õ¥£¡¼¥ë¥É¤Ë³ÊǼ¤µ¤ì¤ëÃͤò·×»»¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ +このメンバは定数の加数を指定する。 +この加数は再配置可能フィールドに格納される値を計算するために使われる。 .\" .El .PP .\"O The .dynamic section contains a series of structures that hold relevant .\"O dynamic linking information. .\"O The d_tag member controls the interpretation .\"O of d_un. -\&.dynamic ¥»¥¯¥·¥ç¥ó¤Ï¡¢´ØÏ¢¤¹¤ëưŪ¥ê¥ó¥¯¾ðÊó¤òÊÝ»ý¤·¤Æ¤¤¤ë -°ìÏ¢¤Î¹½Â¤ÂΤòÊÝ»ý¤¹¤ë¡£ -d_tag ¥á¥ó¥Ð¤Ï d_un ¤Î²ò¼á¤òÀ©¸æ¤¹¤ë¡£ +\&.dynamic セクションは、関連する動的リンク情報を保持している +一連の構造体を保持する。 +d_tag メンバは d_un の解釈を制御する。 .in +4n .nf @@ -2674,131 +2674,131 @@ extern Elf64_Dyn _DYNAMIC[]; .TP 10 .IR d_tag .\"O This member may have any of the following values: -¤³¤Î¥á¥ó¥Ð¤Ï°Ê²¼¤ÎÃͤò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë: +このメンバは以下の値を持つことができる: .\" .Bl -tag -width "DT_SYMBOLIC" .RS 10 .TP 12 .BR DT_NULL .\"O Marks end of dynamic section -ưŪ¥»¥¯¥·¥ç¥ó¤Î½ª¤ê¤Î¥Þ¡¼¥¯ +動的セクションの終りのマーク .TP .BR DT_NEEDED .\"O String table offset to name of a needed library -ɬÍפʥ饤¥Ö¥é¥ê¤Î̾Á°¤Ø¤Îʸ»úÎó¥Æ¡¼¥Ö¥ë¥ª¥Õ¥»¥Ã¥È +必要なライブラリの名前への文字列テーブルオフセット .TP .BR DT_PLTRELSZ .\"O Size in bytes of PLT relocs -PLT ºÆÇÛÃÖ (reloc) ¥Æ¡¼¥Ö¥ë¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) +PLT 再配置 (reloc) テーブルのサイズ (バイト単位) .TP .BR DT_PLTGOT .\"O Address of PLT and/or GOT -PLT ¤È GOT (¤Þ¤¿¤Ï²¿¤ì¤«°ìÊý) ¤Î¥¢¥É¥ì¥¹ +PLT と GOT (または何れか一方) のアドレス .TP .BR DT_HASH .\"O Address of symbol hash table -¥·¥ó¥Ü¥ë¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Î¥¢¥É¥ì¥¹ +シンボルハッシュテーブルのアドレス .TP .BR DT_STRTAB .\"O Address of string table -ʸ»úÎó¥Æ¡¼¥Ö¥ë¤Î¥¢¥É¥ì¥¹ +文字列テーブルのアドレス .TP .BR DT_SYMTAB .\"O Address of symbol table -¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤Î¥¢¥É¥ì¥¹ +シンボルテーブルのアドレス .TP .BR DT_RELA .\"O Address of Rela relocs table -Rela ºÆÇÛÃ֥ơ¼¥Ö¥ë¤Î¥¢¥É¥ì¥¹ +Rela 再配置テーブルのアドレス .TP .BR DT_RELASZ .\"O Size in bytes of Rela table -Rela ¥Æ¡¼¥Ö¥ë¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) +Rela テーブルのサイズ (バイト単位) .TP .BR DT_RELAENT .\"O Size in bytes of a Rela table entry -Rela ¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) +Rela テーブルエントリのサイズ (バイト単位) .TP .BR DT_STRSZ .\"O Size in bytes of string table -ʸ»úÎó¥Æ¡¼¥Ö¥ë¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) +文字列テーブルのサイズ (バイト単位) .TP .BR DT_SYMENT .\"O Size in bytes of a symbol table entry -¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) +シンボルテーブルエントリのサイズ (バイト単位) .TP .BR DT_INIT .\"O Address of the initialization function -½é´ü²½´Ø¿ô¤Î¥¢¥É¥ì¥¹ +初期化関数のアドレス .TP .BR DT_FINI .\"O Address of the termination function -½ªÎ»´Ø¿ô¤Î¥¢¥É¥ì¥¹ +終了関数のアドレス .TP .BR DT_SONAME .\"O String table offset to name of shared object -¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Î̾Á°¤Ø¤Îʸ»úÎó¥Æ¡¼¥Ö¥ë¥ª¥Õ¥»¥Ã¥È +共有オブジェクトの名前への文字列テーブルオフセット .TP .BR DT_RPATH .\"O String table offset to library search path (deprecated) -¥é¥¤¥Ö¥é¥ê¸¡º÷¥Ñ¥¹¤Ø¤Îʸ»úÎó¥Æ¡¼¥Ö¥ë¥ª¥Õ¥»¥Ã¥È (¿ä¾©¤µ¤ì¤Ê¤¤) +ライブラリ検索パスへの文字列テーブルオフセット (推奨されない) .TP .BR DT_SYMBOLIC .\"O Alert linker to search this shared object before the executable for symbols -¥ê¥ó¥«¤¬¥·¥ó¥Ü¥ë¤Î¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤è¤êÁ°¤Ë -¤³¤Î¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤ò¸¡º÷¤·¤¿¾ì¹ç¤Ï¡¢·Ù¹ð¤ò½Ð¤¹¡£ +リンカがシンボルの実行可能ファイルより前に +この共有オブジェクトを検索した場合は、警告を出す。 .TP .BR DT_REL .\"O Address of Rel relocs table -Rel ºÆÇÛÃ֥ơ¼¥Ö¥ë¤Î¥¢¥É¥ì¥¹ +Rel 再配置テーブルのアドレス .TP .BR DT_RELSZ .\"O Size in bytes of Rel table -Rel ¥Æ¡¼¥Ö¥ë¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) +Rel テーブルのサイズ (バイト単位) .TP .BR DT_RELENT .\"O Size in bytes of a Rel table entry -Rel ¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) +Rel テーブルエントリのサイズ (バイト単位) .TP .BR DT_PLTREL .\"O Type of reloc the PLT refers (Rela or Rel) -PLT ¤¬»²¾È¤¹¤ëºÆÇÛÃ֥ơ¼¥Ö¥ë¤Î¥¿¥¤¥× (Rela ¤Þ¤¿¤Ï Rel) +PLT が参照する再配置テーブルのタイプ (Rela または Rel) .TP .BR DT_DEBUG .\"O Undefined use for debugging -¥Ç¥Ð¥Ã¥°¤Î¤¿¤á¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ÆâÍƤÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +デバッグのために使用されている。内容は定義されていない。 .TP .BR DT_TEXTREL .\"O Absence of this indicates no relocs should apply to a nonwritable segment -¤³¤ì¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -½ñ¤­¹þ¤ßÉԲĤΥ»¥°¥á¥ó¥È¤Ë¤ÏºÆÇÛÃÖ¤ÏŬÍѤµ¤ì¤Ê¤¤¡£ +これが指定されていない場合、 +書き込み不可のセグメントには再配置は適用されない。 .TP .BR DT_JMPREL .\"O Address of reloc entries solely for the PLT -PLT ÀìÍѤκÆÇÛÃÖ¥¨¥ó¥È¥ê¤Î¥¢¥É¥ì¥¹ +PLT 専用の再配置エントリのアドレス .TP .BR DT_BIND_NOW .\"O Instruct dynamic linker to process all relocs before transferring control to .\"O the executable -¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤ËÀ©¸æ¤ò¾ù¤ëÁ°¤Ë¡¢ -Á´¤Æ¤ÎºÆÇÛÃÖ¤ò½èÍý¤¹¤ë¤è¤¦¤ËưŪ¥ê¥ó¥«¤Ë»Ø¼¨¤¹¤ë¡£ +実行可能ファイルに制御を譲る前に、 +全ての再配置を処理するように動的リンカに指示する。 .TP .BR DT_RUNPATH .\"O String table offset to library search path -¥é¥¤¥Ö¥é¥ê¸¡º÷¥Ñ¥¹¤Ø¤Îʸ»úÎó¥Æ¡¼¥Ö¥ë¥ª¥Õ¥»¥Ã¥È +ライブラリ検索パスへの文字列テーブルオフセット .TP .BR DT_LOPROC .\"O Start of processor-specific semantics -¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤Î³«»Ï +プロセッサ固有の意味の開始 .TP .BR DT_HIPROC .\"O End of processor-specific semantics -¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤Î½ªÎ» +プロセッサ固有の意味の終了 .RE .\" .El .TP .IR d_val .\"O This member represents integer values with various interpretations. -¤³¤Î¥á¥ó¥Ð¤ÏÍÍ¡¹¤Ê°ÕÌ£¤Ë²ò¼á¤µ¤ì¤ëÀ°¿ôÃͤǤ¢¤ë¡£ +このメンバは様々な意味に解釈される整数値である。 .TP .IR d_ptr .\"O This member represents program virtual addresses. @@ -2807,44 +2807,44 @@ PLT .\"O original file value and memory base address. .\"O Files do not contain .\"O relocation entries to fixup these addresses. -¤³¤Î¥á¥ó¥Ð¤Ï¥×¥í¥°¥é¥à¤Î²¾ÁÛ¥¢¥É¥ì¥¹¤òɽ¤¹¡£ -¤³¤ì¤é¤Î¥¢¥É¥ì¥¹¤ò²ò¼á¤¹¤ëºÝ¤Ë¡¢ -¼ÂºÝ¤Î¥¢¥É¥ì¥¹¤Ï¸µ¡¹¤Î¥Õ¥¡¥¤¥ë¤ÎÃÍ¤È -¥á¥â¥ê¤Î´ðÄ쥢¥É¥ì¥¹¤«¤é·×»»¤µ¤ì¤ë¡£ -¥Õ¥¡¥¤¥ë¤Ë¤Ï¤³¤ì¤é¤Î¥¢¥É¥ì¥¹¤ò½¤Àµ¤¹¤ë¤¿¤á¤Î -ºÆÇÛÃÖ¥¨¥ó¥È¥ê¤ò´Þ¤á¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +このメンバはプログラムの仮想アドレスを表す。 +これらのアドレスを解釈する際に、 +実際のアドレスは元々のファイルの値と +メモリの基底アドレスから計算される。 +ファイルにはこれらのアドレスを修正するための +再配置エントリを含めてはならない。 .TP .IR _DYNAMIC .\"O Array containing all the dynamic structures in the .dynamic section. .\"O This is automatically populated by the linker. -\&.dynamic ¥»¥¯¥·¥ç¥ó¤Ë¤¢¤ëÁ´¤Æ¤ÎưŪ¹½Â¤ÂΤò´Þ¤àÇÛÎó¡£ -¤³¤ì¤Ï¼«Æ°Åª¤Ë¥ê¥ó¥«¤ËÅϤµ¤ì¤ë¡£ +\&.dynamic セクションにある全ての動的構造体を含む配列。 +これは自動的にリンカに渡される。 .\" .El .\"O .SH NOTES -.SH È÷¹Í +.SH 備考 .\"O .\" OpenBSD .\"O .\" ELF support first appeared in .\"O .\" OpenBSD 1.2 , .\"O .\" although not all supported platforms use it as the native .\"O .\" binary file format. .\" OpenBSD -.\" ELF ¤Î¥µ¥Ý¡¼¥È¤Ï +.\" ELF のサポートは .\" OpenBSD 1.2 -.\" ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.\" ¤·¤«¤·¡¢¤³¤ì¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤ÎÁ´¤Æ¤¬ -.\" ¥Í¥¤¥Æ¥£¥Ö¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤È¤·¤Æ»È¤Ã¤Æ¤¤¤¿Ìõ¤Ç¤Ï¤Ê¤¤¡£ +.\" で初めて登場した。 +.\" しかし、これをサポートするプラットフォームの全てが +.\" ネイティブバイナリファイルフォーマットとして使っていた訳ではない。 .\"O ELF first appeared in .\"O System V. -ELF ¤Ï System V ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +ELF は System V で初めて登場した。 .\"O ELF in itself first appeared in .\"O System V. -ELF ¼«ÂÎ¤Ï +ELF 自体は System V -¤Ç½é¤á¤ÆÅо줷¤¿¡£ +で初めて登場した。 .\"O The ELF format is an adopted standard. -ELF ¥Õ¥©¡¼¥Þ¥Ã¥È¤ÏºÎÂò¤µ¤ì¤¿É¸½à¤Ç¤¢¤ë¡£ +ELF フォーマットは採択された標準である。 .\"O .\" .SH AUTHORS -.\" .SH Ãø¼Ô +.\" .SH 著者 .\"O .\" The original version of this manual page was written by .\"O .\" .An Jeroen Ruigrok van der Werven .\"O .\" .Aq asmodai@FreeBSD.org @@ -2852,15 +2852,15 @@ ELF .\"O .\" .Bsx .\"O .\" .Nm elf .\"O .\" man page. -.\" ¤³¤Î man ¥Ú¡¼¥¸¤Î¸µ¡¹¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢BSDi ¤Î +.\" この man ページの元々のバージョンは、BSDi の .\" .Bsx .\" .Nm elf -.\" man ¥Ú¡¼¥¸¤Ë»É·ã¤ò¼õ¤±¤Æ +.\" man ページに刺激を受けて .\" .An Jeroen Ruigrok van der Werven .\" .Aq asmodai@FreeBSD.org -.\" ¤¬½ñ¤¤¤¿¡£ +.\" が書いた。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR as (1), .BR gdb (1), .BR ld (1), diff --git a/draft/man5/filesystems.5 b/draft/man5/filesystems.5 index 7b8ffe00..88942868 100644 --- a/draft/man5/filesystems.5 +++ b/draft/man5/filesystems.5 @@ -30,24 +30,24 @@ .\" by Yuichi SATO .\" Updated Fri Dec 21 JST 2001 by Kentaro Shirakata .\" -.\"WORD: extended file system ³ÈÄ¥¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -.\"WORD: second extended file system ÂèÆó³ÈÄ¥¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -.\"WORD: RAM disk RAM¥Ç¥£¥¹¥¯ -.\"WORD: High Sierra ¥Ï¥¤¥·¥§¥é -.\"WORD: Rock Ridge ¥í¥Ã¥¯¥ê¥Ã¥¸ +.\"WORD: extended file system 拡張ファイルシステム +.\"WORD: second extended file system 第二拡張ファイルシステム +.\"WORD: RAM disk RAMディスク +.\"WORD: High Sierra ハイシェラ +.\"WORD: Rock Ridge ロックリッジ .\" .TH FILESYSTEMS 5 2007-12-14 "Linux" "Linux Programmer's Manual" .nh .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O filesystems \- Linux file-system types: minix, ext, ext2, ext3, Reiserfs, .\"O XFS, JFS, xia, msdos, .\"O umsdos, vfat, proc, nfs, iso9660, hpfs, sysv, smb, ncpfs -filesystems \- Linux ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à: minix, ext, ext2, ext3, Reiserfs, +filesystems \- Linux のファイルシステム: minix, ext, ext2, ext3, Reiserfs, XFS, JFS, xia, msdos, umsdos, vfat, proc, nfs, iso9660, hpfs, sysv, smb, ncpfs .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O When, as is customary, the .\"O .B proc .\"O file system is mounted on @@ -58,41 +58,41 @@ umsdos, vfat, proc, nfs, iso9660, hpfs, sysv, smb, ncpfs .\"O If you need a currently unsupported one, insert the corresponding .\"O module or recompile the kernel. .B proc -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬´·½¬¤É¤ª¤ê¤Ë +ファイルシステムが慣習どおりに .I /proc -¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¸½ºß¤Î¥«¡¼¥Í¥ë¤¬¤É¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤« -ÃΤ뤿¤á¤Ë¤Ï¥Õ¥¡¥¤¥ë +にマウントされている場合、 +現在のカーネルがどのファイルシステムをサポートしているか +知るためにはファイル .I /proc/filesystems -¤ò¸«¤ì¤Ð¤è¤¤¡£ -ɬÍפʥե¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¸½ºß¤Î¥«¡¼¥Í¥ë¤Ë¥µ¥Ý¡¼¥È¤µ¤ì¤Æ -¤¤¤Ê¤¤¾ì¹ç¡¢Å¬Àڤʥ⥸¥å¡¼¥ë¤òÁȤ߹þ¤à¤«¡¢¤½¤ì¤â¤À¤á¤Ê¤é¤Ð -¥«¡¼¥Í¥ë¤òºÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¡£ +を見ればよい。 +必要なファイルシステムが現在のカーネルにサポートされて +いない場合、適切なモジュールを組み込むか、それもだめならば +カーネルを再コンパイルすること。 .\"O In order to use a file system, you have to .\"O .I mount .\"O it; see .\"O .BR mount (8). -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò»È¤¦¤¿¤á¤Ë¤Ï¡¢ -.I ¥Þ¥¦¥ó¥È -¤¹¤ëɬÍפ¬¤¢¤ë¡£ +ファイルシステムを使うためには、 +.I マウント +する必要がある。 .BR mount (8) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O Below a short description of a few of the available file systems. -°Ê²¼¤ÏÍøÍѲÄǽ¤Ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¤¦¤Á¡¢¤¤¤¯¤Ä¤«¤Î´Êñ¤ÊÀâÌÀ¤Ç¤¢¤ë¡£ +以下は利用可能なファイルシステムのうち、いくつかの簡単な説明である。 .TP 10 .B "minix" .\"O is the file system used in the Minix operating system, the first to run .\"O under Linux. .\"O It has a number of shortcomings: a 64MB partition size .\"O limit, short filenames, a single timestamp, etc. -Minix ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¡£ -Linux ¤ÇÆ°¤¤¤¿ºÇ½é¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤â¤¢¤ë¡£¤³¤ì¤Ë¤Ï¤¤¤¯¤Ä¤«·çÅÀ¤¬¤¢¤ë¡£ -¤Þ¤º¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¥µ¥¤¥º¤¬ºÇÂç 64MB ¤Ç¤¢¤ë¤³¤È¡£Â¾¤Ë¤â¡¢Ã»¤¤¥Õ¥¡¥¤¥ë̾ -¤·¤«»È¤¨¤Ê¤¤¡¢¥¿¥¤¥à¥¹¥¿¥ó¥×¤¬°ì¤Ä¤À¤±¤Ç¤¢¤ë¡¢¤Ê¤É¤Ê¤É¡£ +Minix オペレーティングシステムのファイルシステム。 +Linux で動いた最初のファイルシステムでもある。これにはいくつか欠点がある。 +まず、パーティションのサイズが最大 64MB であること。他にも、短いファイル名 +しか使えない、タイムスタンプが一つだけである、などなど。 .\"O It remains useful for floppies and RAM disks. -¥Õ¥í¥Ã¥Ô¡¼¤ä RAM ¥Ç¥£¥¹¥¯¤ËÊØÍø¤Ê¤Î¤Ç¤Þ¤À»Ä¤Ã¤Æ¤¤¤ë¡£ +フロッピーや RAM ディスクに便利なのでまだ残っている。 .TP .B ext .\"O is an elaborate extension of the @@ -103,55 +103,55 @@ Linux .\"O .RB ( ext2 ) .\"O and has been removed from the kernel (in 2.1.21). .B minix -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¼ê¤Î¹þ¤ó¤À³ÈÄ¥¤Ç¤¢¤ë¡£¤³¤ì¤ÏÂèÆó³ÈÄ¥¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à +ファイルシステムの手の込んだ拡張である。これは第二拡張ファイルシステム (second extended file system : .BR ext2 ) -¤Ë´°Á´¤Ë¤È¤Ã¤ÆÂå¤ï¤é¤ì¡¢¥«¡¼¥Í¥ë 2.1.21 ¤Ç¼è¤ê½ü¤«¤ì¤¿¡£ +に完全にとって代わられ、カーネル 2.1.21 で取り除かれた。 .TP .B ext2 .\"O is the high performance disk file system used by Linux for fixed disks .\"O as well as removable media. -Linux ¤Î¹âÀ­Ç½¤Ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£¤³¤ì¤Ï¸ÇÄê¥Ç¥£¥¹¥¯¤À¤±¤Ç¤Ï¤Ê¤¯ -¥ê¥à¡¼¥Ð¥Ö¥ë¥Ç¥£¥¹¥¯¤Ë¤â¤è¤¯»È¤ï¤ì¤ë¡£ +Linux の高性能なファイルシステムである。これは固定ディスクだけではなく +リムーバブルディスクにもよく使われる。 .\"O The second extended file system was designed as an extension of the .\"O extended file system .\"O .RB ( ext ). .\"O .B ext2 .\"O offers the best performance (in terms of speed and CPU usage) of .\"O the file systems supported under Linux. -³ÈÄ¥¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à +拡張ファイルシステム .RB ( ext ) -¤ÎȯŸ¤È¤·¤ÆÂèÆó³ÈÄ¥¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à +の発展として第二拡張ファイルシステム .RB ( ext2 ) -¤¬À߷פµ¤ì¤¿¡£¤³¤Î +が設計された。この .B ext2 -¤Ï Linux ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÃæ¤Ç (¥¹¥Ô¡¼¥É¤ª¤è¤Ó CPU ¤Î»ÈÍÑÎ̤ÎÌ̤Ç) ºÇ¤â -¤è¤¤¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤òȯ´ø¤¹¤ë¡£ +は Linux のファイルシステムの中で (スピードおよび CPU の使用量の面で) 最も +よいパフォーマンスを発揮する。 .TP .B ext3 .\"O is a journaling version of the ext2 file system. .\"O It is easy to .\"O switch back and forth between ext2 and ext3. -ext2 ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¥¸¥ã¡¼¥Ê¥ëµ¡Ç½¤ò¤Ä¤±¤¿¤â¤Î¤Ç¤¢¤ë¡£ -ext2 ¤È ext3 ¤Ï´Êñ¤Ë¹Ô¤­¤ÄÌá¤ê¤Ä¤Ç¤­¤ë¡£ +ext2 ファイルシステムにジャーナル機能をつけたものである。 +ext2 と ext3 は簡単に行きつ戻りつできる。 .TP .B Reiserfs .\"O is a journaling file system, designed by Hans Reiser, .\"O that was integrated into Linux in kernel 2.4.1. -Hans Reiser ¤Ë¤è¤Ã¤ÆÀ߷פµ¤ì¤¿¥¸¥ã¡¼¥Ê¥ê¥ó¥°¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë 2.4.1 ¤Ç Linux ¤ËÅý¹ç¤µ¤ì¤¿¡£ +Hans Reiser によって設計されたジャーナリングファイルシステムである。 +カーネル 2.4.1 で Linux に統合された。 .TP .B XFS .\"O is a journaling file system, developed by SGI, .\"O that was integrated into Linux in kernel 2.4.20. -SGI ¤Ë¤è¤ê³«È¯¤µ¤ì¤¿¥¸¥ã¡¼¥Ê¥ê¥ó¥°¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë 2.4.20 ¤Ç Linux ¤ËÅý¹ç¤µ¤ì¤¿¡£ +SGI により開発されたジャーナリングファイルシステムである。 +カーネル 2.4.20 で Linux に統合された。 .TP .B JFS .\"O is a journaling file system, developed by IBM, .\"O that was integrated into Linux in kernel 2.4.24. -IBM ¤Ë¤è¤ê³«È¯¤µ¤ì¤¿¥¸¥ã¡¼¥Ê¥ê¥ó¥°¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë 2.4.24 ¤Ç Linux ¤ËÅý¹ç¤µ¤ì¤¿¡£ +IBM により開発されたジャーナリングファイルシステムである。 +カーネル 2.4.24 で Linux に統合された。 .TP .\"O .B xiafs .\"O was designed and implemented to be a stable, safe file system by @@ -159,16 +159,16 @@ IBM .\"O It provides the basic most .\"O requested features without undue complexity. .B xiafs -¤Ï Minix ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î³ÈÄ¥¤Ç¡¢¤è¤ê°ÂÄꤷ°ÂÁ´¤Ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤È¤·¤Æ -À߷ס¢¼ÂÁõ¤µ¤ì¤¿¡£¤³¤ì¤Ï¡¢¤¤¤é¤Ê¤¤Ê£»¨¤µ¤ÏÈò¤±¤Ä¤ÄɬÍפʴðËÜŪµ¡Ç½¤ò -È÷¤¨¤Æ¤¤¤ë¡£ +は Minix ファイルシステムの拡張で、より安定し安全なファイルシステムとして +設計、実装された。これは、いらない複雑さは避けつつ必要な基本的機能を +備えている。 .\"O The .\"O .B xia .\"O file system is no longer actively developed or maintained. .\"O It was removed from the kernel in 2.1.21. .B xia -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï¡¢¤â¤Ï¤ä³«È¯¤â¥á¥ó¥Æ¥Ê¥ó¥¹¤â¹Ô¤ï¤ì¤Æ¤¤¤Ê¤¤¡£ -¥«¡¼¥Í¥ë 2.1.21 ¤Ç¼è¤ê½ü¤«¤ì¤¿¡£ +ファイルシステムは、もはや開発もメンテナンスも行われていない。 +カーネル 2.1.21 で取り除かれた。 .TP .\"O .B msdos .\"O is the file system used by DOS, Windows, and some OS/2 computers. @@ -176,12 +176,12 @@ IBM .\"O filenames can be no longer than 8 characters, followed by an .\"O optional period and 3 character extension. .B msdos -¤Ï DOS ¤ä Windows¡¢¤¤¤¯¤é¤«¤Î OS/2 ¥³¥ó¥Ô¥å¡¼¥¿¤¬»È¤Ã¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë -¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£ -¤³¤Î +は DOS や Windows、いくらかの OS/2 コンピュータが使っているファイル +システムである。 +この .B msdos -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Ï¡Ö8 ʸ»ú¤Î̾Á°¡Ü¥Ô¥ê¥ª¥É¡Ü3 ʸ»ú¤Î³ÈÄ¥»Ò¡×¤è¤ê -Ť¤¥Õ¥¡¥¤¥ë̾¤Ï¤Ä¤±¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +ファイルシステムでは「8 文字の名前+ピリオド+3 文字の拡張子」より +長いファイル名はつけることができない。 .TP .\"O .B umsdos .\"O is an extended DOS file system used by Linux. @@ -190,17 +190,17 @@ IBM .\"O (devices, named pipes, etc.) under the DOS file system, without .\"O sacrificing compatibility with DOS. .B umsdos -¤Ï DOS ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò³ÈÄ¥¤·¤¿ Linux ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï DOS ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¤â¤È¤Ç¡¢Ä¹¤¤¥Õ¥¡¥¤¥ë̾¤ä UID/GID¡¢POSIX ·Á¼°¤Î -¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¡¢(¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë¤ä̾Á°ÉÕ¤­¥Ñ¥¤¥×¤Ê¤É¤Î) Æüì¥Õ¥¡¥¤¥ë¤ò -»È¤¨¤ë¤è¤¦¤Ë¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£DOS ¤È¤Î¸ß´¹À­¤¬¤¢¤ë¡£ +は DOS ファイルシステムを拡張した Linux のファイルシステムである。 +これは DOS ファイルシステムのもとで、長いファイル名や UID/GID、POSIX 形式の +パーミッション、(デバイスファイルや名前付きパイプなどの) 特殊ファイルを +使えるようにしたものである。DOS との互換性がある。 .TP .\"O .B vfat .\"O is an extended DOS file system used by Microsoft Windows95 and Windows NT. .\"O VFAT adds the capability to use long filenames under the MSDOS file system. .B vfat -¤Ï Microsoft Windows95 ¤È Windows NT ¤¬»È¤¦ DOS ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ -Ť¤¥Õ¥¡¥¤¥ë̾¤¬»È¤¨¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +は Microsoft Windows95 と Windows NT が使う DOS ファイルシステムの拡張である。 +長いファイル名が使えるようになっている。 .TP .\"O .B proc .\"O is a pseudo file system which is used as an interface to kernel data @@ -210,18 +210,18 @@ IBM .\"O See .\"O .BR proc (5). .B proc -¤Ï¥«¡¼¥Í¥ë¥Ç¡¼¥¿¹½Â¤¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤È¤Ê¤ëµ¿»÷¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï +はカーネルデータ構造へのインターフェイスとなる疑似ファイルシステムである。 +これは .I /dev/kmem -¤òÆɤó¤Ç²ò¼á¤¹¤ë¤³¤È¤ÎÂå¤ï¤ê¤È¤·¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Õ¥¡¥¤¥ë¤Ï¥Ç¥£¥¹¥¯¥¹¥Ú¡¼¥¹¤ò»ÈÍѤ·¤Ê¤¤¡£ +を読んで解釈することの代わりとして使うことができる。 +このファイルシステムのファイルはディスクスペースを使用しない。 .BR proc (5) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .TP .\"O .B iso9660 .\"O is a CD-ROM file system type conforming to the ISO 9660 standard. .B iso9660 -¤Ï ISO 9660 ɸ½à¤Ë±è¤Ã¤¿ CD-ROM ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£ +は ISO 9660 標準に沿った CD-ROM のファイルシステムである。 .RS .TP .B "High Sierra" @@ -230,11 +230,11 @@ IBM .\"O It is automatically recognized within the .\"O .B iso9660 .\"O file-system support under Linux. -Linux ¤Ï¥Ï¥¤¥·¥§¥é (High Sierra) ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£¤³¤ì¤Ï ISO 9660 ɸ½à¤¬ -·è¤Þ¤ë¤è¤êÁ°¤Ë»È¤ï¤ì¤Æ¤¤¤¿ CD-ROM ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£Linux ¤Î +Linux はハイシェラ (High Sierra) をサポートしている。これは ISO 9660 標準が +決まるより前に使われていた CD-ROM ファイルシステムである。Linux の .B iso9660 -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥µ¥Ý¡¼¥È¤¬¥Ï¥¤¥·¥§¥é¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¼«Æ°¤Ç -ǧ¼±¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +ファイルシステムサポートがハイシェラファイルシステムを自動で +認識することができる。 .TP .B "Rock Ridge" .\"O Linux also supports the System Use Sharing Protocol records specified @@ -246,16 +246,16 @@ Linux .\"O It is automatically recognized within the .\"O .B iso9660 .\"O file-system support under Linux. -Linux ¤Ï¥í¥Ã¥¯¥ê¥Ã¥¸ (Rock Ridge) ÊÑ´¹¥×¥í¥È¥³¥ë¤Çµ¬Äꤵ¤ì¤¿ -¥·¥¹¥Æ¥à»ÈÍѶ¦Í­¥×¥í¥È¥³¥ë¤â¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£¤³¤ì¤Ï UNIX ¥Û -¥¹¥È¤Î¥Õ¥¡¥¤¥ë¤ò +Linux はロックリッジ (Rock Ridge) 変換プロトコルで規定された +システム使用共有プロトコルもサポートしている。これは UNIX ホ +ストのファイルを .B iso9660 -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤è¤ê¾Ü¤·¤¯µ­½Ò¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¡¢ -Ť¤¥Õ¥¡¥¤¥ë̾¤ä UID/GID¡¢POSIX ·Á¼°¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¡¢¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë -¤Ê¤É¤Î¾ðÊó¤òÄ󶡤¹¤ë¡£Linux ¤Î +ファイルシステムでより詳しく記述するために使用され、 +長いファイル名や UID/GID、POSIX 形式のパーミッション、デバイスファイル +などの情報を提供する。Linux の .B iso9660 -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥µ¥Ý¡¼¥È¤¬¥í¥Ã¥¯¥ê¥Ã¥¸¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¼«Æ°¤Ç -ǧ¼±¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +ファイルシステムサポートがロックリッジファイルシステムを自動で +認識することができる。 .RE .TP .\"O .B hpfs @@ -263,29 +263,29 @@ Linux .\"O This file system is .\"O read-only under Linux due to the lack of available documentation. .B hpfs -¤Ï OS/2 ¤Ç»È¤ï¤ì¤ë¹âÀ­Ç½¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à(High Performance Filesystem)¤Ç¤¢¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï¥É¥­¥å¥á¥ó¥È¤¬Æþ¼ê¤Ç¤­¤Ê¤¤¤¿¤á¡¢ -Linux ¤Ç¤ÏÆɤ߹þ¤ßÀìÍÑ (Read-only) ¤Ç¤·¤«»ÈÍѤǤ­¤Ê¤¤¡£ +は OS/2 で使われる高性能ファイルシステム(High Performance Filesystem)である。 +このファイルシステムはドキュメントが入手できないため、 +Linux では読み込み専用 (Read-only) でしか使用できない。 .TP .\"O .B sysv .\"O is an implementation of the SystemV/Coherent file system for Linux. .\"O It implements all of Xenix FS, SystemV/386 FS, and Coherent FS. .B sysv -¤Ï SystemV/Coherent ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î Linux ¤Ç¤Î¼ÂÁõ¤Ç¤¢¤ë¡£ -Xenix, SystemV/386, Coherent ³Æ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +は SystemV/Coherent ファイルシステムの Linux での実装である。 +Xenix, SystemV/386, Coherent 各ファイルシステムを使うことができる。 .TP .\"O .B nfs .\"O is the network file system used to access disks located on remote computers. .B nfs -¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£ -Î¥¤ì¤¿¥³¥ó¥Ô¥å¡¼¥¿¤Î¥Ç¥£¥¹¥¯¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +はネットワークファイルシステムである。 +離れたコンピュータのディスクを使うことができる。 .TP .\"O .B smb .\"O is a network file system that supports the SMB protocol, used by .\"O Windows for Workgroups, Windows NT, and Lan Manager. .B smb -¤Ï SMB ¥×¥í¥È¥³¥ë¤ò¥µ¥Ý¡¼¥È¤·¤¿¥Í¥Ã¥È¥ï¡¼¥¯¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£ -Windows for Workgroups, Windows NT, Lan Manager ¤¬»È¤Ã¤Æ¤¤¤ë¡£ +は SMB プロトコルをサポートしたネットワークファイルシステムである。 +Windows for Workgroups, Windows NT, Lan Manager が使っている。 .sp .\"O To use .\"O .B smb @@ -293,29 +293,29 @@ Windows for Workgroups, Windows NT, Lan Manager .\"O package, found at .\"O .IR ftp://sunsite.unc.edu/pub/Linux/system/Filesystems/smbfs . .B smb -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò»È¤¦¤¿¤á¤Ë¤Ï ksmbfs ¥Ñ¥Ã¥±¡¼¥¸¤Ë´Þ¤Þ¤ì¤ë -Æüì¤Ê¥Þ¥¦¥ó¥È¥×¥í¥°¥é¥à¤¬É¬ÍפǤ¢¤ë¡£ -ksmbfs ¤Ï +ファイルシステムを使うためには ksmbfs パッケージに含まれる +特殊なマウントプログラムが必要である。 +ksmbfs は .I ftp://sunsite.unc.edu/pub/Linux/system/Filesystems/smbfs -¤Ë¤¢¤ë¡£ +にある。 .TP .\"O .B ncpfs .\"O is a network file system that supports the NCP protocol, used by .\"O Novell NetWare. .B ncpfs -¤Ï NCP ¥×¥í¥È¥³¥ë¤ò¥µ¥Ý¡¼¥È¤·¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£Novell NetWare ¤¬ -»È¤Ã¤Æ¤¤¤ë¡£ +は NCP プロトコルをサポートしたファイルシステムである。Novell NetWare が +使っている。 .sp .\"O To use .\"O .BR ncpfs , .\"O you need special programs, which can be found at .\"O .IR ftp://linux01.gwdg.de/pub/ncpfs . .B ncpfs -¤ò»È¤¦¤¿¤á¤Ë¤Ï +を使うためには .I ftp://linux01.gwdg.de/pub/ncpfs -¤Ë¤¢¤ëÆüì¤Ê¥×¥í¥°¥é¥à¤¬É¬ÍפǤ¢¤ë¡£ +にある特殊なプログラムが必要である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR proc (5), .BR fsck (8), .BR mkfs (8), diff --git a/draft/man5/ftpusers.5 b/draft/man5/ftpusers.5 index 3ae86bf0..0bc84f6f 100644 --- a/draft/man5/ftpusers.5 +++ b/draft/man5/ftpusers.5 @@ -21,10 +21,10 @@ .TH FTPUSERS 5 2000-08-27 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O ftpusers \- list of users that may not log in via the FTP daemon -.SH ̾Á° -ftpusers \- FTP ¥Ç¡¼¥â¥ó·Ðͳ¤Ç¤Î¥í¥°¥¤¥ó¤òµö¤µ¤Ê¤¤¥æ¡¼¥¶¡¼¤Î¥ê¥¹¥È +.SH 名前 +ftpusers \- FTP デーモン経由でのログインを許さないユーザーのリスト .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The text file .\"O .B ftpusers .\"O contains a list of users that may not log in using the @@ -44,38 +44,38 @@ ftpusers \- FTP .\"O (wuftpd) and Professional FTP Daemon (proftpd) are known to make use of .\"O .BR ftpusers . .B ftpusers -¤Ï¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Ç¡¢File Transfer Protocol (FTP) ¥µ¡¼¥Ð¡¼¥Ç¡¼¥â¥ó -¤òÍøÍѤ·¤Æ¤Î¥í¥°¥¤¥ó¤òµö¤µ¤Ê¤¤¥æ¡¼¥¶¡¼¤ò¥ê¥¹¥È¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ïñ¤Ë¥·¥¹¥Æ¥à´ÉÍý¤Î¤¿¤á¤À¤±¤Ç¤Ê¤¯¡¢ -TCP/IP ¥Í¥Ã¥È¥ï¡¼¥¯´Ä¶­¤Ç¤Î¥»¥­¥å¥ê¥Æ¥£¤ò¸þ¾å¤µ¤»¤ë¤Î¤Ë¤âÍøÍѤǤ­¤ë¡£ -Ä̾ï¤Ï¡¢ftp ¤òÍѤ¤¤¿ºî¶È¤ò¹Ô¤ï¤Ê¤¤¥æ¡¼¥¶¡¼¤ä¡¢ -FTP ¥µ¡¼¥Ð¡¼¥Ç¡¼¥â¥ó·Ðͳ¤Ç¤Î¥í¥°¥¤¥ó¤òµö¤¹¤Ë¤Ï -¸¢¸Â¤¬Â礭¤¹¤®¤ë¥æ¡¼¥¶¡¼¤ò¥ê¥¹¥È¤·¤Æ¤ª¤¯¡£ -¤³¤Î¤è¤¦¤Ê¥æ¡¼¥¶¡¼¤Ë¤Ï¡¢Î㤨¤Ð root, daemon, bin, uucp, news ¤Ê¤É¤¬´Þ¤Þ¤ì¤ë¡£ -¤ª»È¤¤¤Î FTP ¥µ¡¼¥Ð¡¼¥Ç¡¼¥â¥ó¤¬ +はテキストファイルで、File Transfer Protocol (FTP) サーバーデーモン +を利用してのログインを許さないユーザーをリストしたものである。 +このファイルは単にシステム管理のためだけでなく、 +TCP/IP ネットワーク環境でのセキュリティを向上させるのにも利用できる。 +通常は、ftp を用いた作業を行わないユーザーや、 +FTP サーバーデーモン経由でのログインを許すには +権限が大きすぎるユーザーをリストしておく。 +このようなユーザーには、例えば root, daemon, bin, uucp, news などが含まれる。 +お使いの FTP サーバーデーモンが .B ftpusers -¤òÍѤ¤¤Ê¤¤¾ì¹ç¤Ï¡¢¤½¤Î¥Ç¡¼¥â¥ó¤Î¥É¥­¥å¥á¥ó¥È¤òÆɤó¤Ç¡¢ -ÆÃÄê¤Î¥æ¡¼¥¶¡¼¤Î¥¢¥¯¥»¥¹¤ò¥Ö¥í¥Ã¥¯¤¹¤ë¤ä¤êÊý¤ò³Ø¤ó¤Ç¤ª¤¯¤³¤È¤ò¤¹¤¹¤á¤ë¡£ -Washington University FTP ¥µ¡¼¥Ð¡¼¥Ç¡¼¥â¥ó (wuftpd) ¤È -Professional FTP ¥Ç¡¼¥â¥ó (proftpd) ¤È¤Ï¡¢ +を用いない場合は、そのデーモンのドキュメントを読んで、 +特定のユーザーのアクセスをブロックするやり方を学んでおくことをすすめる。 +Washington University FTP サーバーデーモン (wuftpd) と +Professional FTP デーモン (proftpd) とは、 .B ftpusers -¤òÍøÍѤ¹¤ë¤³¤È¤¬¤ï¤«¤Ã¤Æ¤¤¤ë¡£ +を利用することがわかっている。 .\"O .SS Format -.SS ¥Õ¥©¡¼¥Þ¥Ã¥È +.SS フォーマット .\"O The format of .\"O .B ftpusers .\"O is very simple. .\"O There is one account name (or username) per line. .\"O Lines starting with a # are ignored. .B ftpusers -¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ÏÈó¾ï¤Ëñ½ã¤Ç¤¢¤ê¡¢ -¥¢¥«¥¦¥ó¥È̾ (¤Þ¤¿¤Ï¥æ¡¼¥¶¡¼Ì¾) ¤ò³Æ¹Ô¤Ë½ñ¤¯¤À¤±¤Ç¤¢¤ë¡£ -# ¤Ç»Ï¤Þ¤ë¹Ô¤Ï̵»ë¤µ¤ì¤ë¡£ +のフォーマットは非常に単純であり、 +アカウント名 (またはユーザー名) を各行に書くだけである。 +# で始まる行は無視される。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .I /etc/ftpusers .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR passwd (5), .BR proftpd (8), .BR wuftpd (8) diff --git a/draft/man5/group.5 b/draft/man5/group.5 index 9aa71905..7b9b9aeb 100644 --- a/draft/man5/group.5 +++ b/draft/man5/group.5 @@ -30,54 +30,54 @@ .\" .TH GROUP 5 2009-10-17 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O group \- user group file -group \- ¥æ¡¼¥¶¡¼¥°¥ë¡¼¥×¤Î¥Õ¥¡¥¤¥ë +group \- ユーザーグループのファイル .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O \fI/etc/group\fP is a text file which defines the groups on the system. .\"O There is one entry per line, with the following format: -\fI/etc/group\fP ¤Ï¡¢¤½¤Î¥·¥¹¥Æ¥à¤Î¥°¥ë¡¼¥×¤òÄêµÁ¤¹¤ë¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ -1 ¹Ô¤Ë 1 ¥¨¥ó¥È¥ê¤Ç¡¢³Æ¹Ô¤Î·Á¼°¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¢¤ë¡£ +\fI/etc/group\fP は、そのシステムのグループを定義するテキストファイルである。 +1 行に 1 エントリで、各行の形式は以下のとおりである。 .sp .RS group_name:password:GID:user_list .RE .sp .\"O The field descriptions are: -¥Õ¥£¡¼¥ë¥É¤ÎÀâÌÀ: +フィールドの説明: .IP group_name .\"O the name of the group. -¥°¥ë¡¼¥×¤Î̾Á°¡£ +グループの名前。 .IP password .\"O the (encrypted) group password. .\"O If this field is empty, no password is needed. -(°Å¹æ²½¤µ¤ì¤¿) ¥Ñ¥¹¥ï¡¼¥É¡£¤³¤Î¥Õ¥£¡¼¥ë¥É¤¬¶õ¤Ê¤é¥Ñ¥¹¥ï¡¼¥É¤ÏɬÍפʤ¤¡£ +(暗号化された) パスワード。このフィールドが空ならパスワードは必要ない。 .IP GID .\"O the numerical group ID. -¥°¥ë¡¼¥×ID¤Î¿ôÃÍ¡£ +グループIDの数値。 .IP user_list .\"O a list of the usernames that are members of this group, separated by commas. -¤³¤Î¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð¡¼¤Î¥æ¡¼¥¶¡¼Ì¾¤Î¥ê¥¹¥È¡£ -¥æ¡¼¥¶¡¼Ì¾¤Ï¥³¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤ë¡£ +このグループのメンバーのユーザー名のリスト。 +ユーザー名はコンマで区切られる。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル /etc/group .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O As the 4.2BSD .\"O .BR initgroups (3) .\"O man page says: No-one seems to keep .\"O .I /etc/group .\"O up-to-date. -4.2BSD ¤Î +4.2BSD の .BR initgroups (3) -¤Ë¤Ï¼¡¤Î¤è¤¦¤Ë½ñ¤«¤ì¤Æ¤¤¤ë: -ï¤â +には次のように書かれている: +誰も .I /etc/group -¤òºÇ¿·¤Î¾õÂÖ¤ËÊݤäƤϤ¤¤Ê¤¤¤è¤¦¤Ç¤¢¤ë¡£ +を最新の状態に保ってはいないようである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR login (1), .BR newgrp (1), .BR getgrent (3), diff --git a/draft/man5/host.conf.5 b/draft/man5/host.conf.5 index a1267dd6..f89101ed 100644 --- a/draft/man5/host.conf.5 +++ b/draft/man5/host.conf.5 @@ -31,17 +31,17 @@ .\" Updated & Modified Sun Sep 7 17:51:03 JST 2003 .\" by Yuichi SATO .\" -.\"WORD: method Êý¼° -.\"WORD: trim ¼è¤êµî¤ë -.\"WORD: spoofing µ¶Áõ +.\"WORD: method 方式 +.\"WORD: trim 取り去る +.\"WORD: spoofing 偽装 .\" .TH HOST.CONF 5 2003-08-23 "Linux" "Linux System Administration" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O host.conf \- resolver configuration file -host.conf \- ¥ì¥¾¥ë¥ÐÀßÄê¥Õ¥¡¥¤¥ë +host.conf \- レゾルバ設定ファイル .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The file .\"O .I /etc/host.conf .\"O contains configuration information specific to the resolver library. @@ -50,27 +50,27 @@ host.conf \- .\"O The keywords recognized are .\"O .IR order ", " trim ", " multi ", " nospoof ", " spoof ", and " reorder . .\"O These keywords are described below. -¥Õ¥¡¥¤¥ë +ファイル .I /etc/host.conf -¤Ë¤Ï¡¢¥ì¥¾¥ë¥Ð¥é¥¤¥Ö¥é¥ê¤Î¾ÜºÙ¤ÊÀßÄê¾ðÊ󤬴ޤޤì¤Æ¤¤¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢1 ¹ÔËè¤Ë 1 ¤Ä¤ÎÀßÄꥭ¡¼¥ï¡¼¥É¤È -¤½¤ì¤Ë³¤¯Å¬ÀÚ¤ÊÀßÄê¾ðÊ󤬤ʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -ǧ¼±¤µ¤ì¤ë¥­¡¼¥ï¡¼¥É¤Ï +には、レゾルバライブラリの詳細な設定情報が含まれている。 +このファイルには、1 行毎に 1 つの設定キーワードと +それに続く適切な設定情報がなければならない。 +認識されるキーワードは .IR order ", " trim ", " multi ", " nospoof ", " spoof ", " reorder -¤Ç¤¢¤ë¡£ -³Æ¥­¡¼¥ï¡¼¥É¤ò¡¢°Ê²¼¤ÇÀâÌÀ¤¹¤ë¡£ +である。 +各キーワードを、以下で説明する。 .TP .I order .\"O This keyword specifies how host lookups are to be performed. .\"O It should be followed by one or more lookup methods, separated by commas. .\"O Valid methods are .\"O .IR bind ", " hosts ", and " nis . -¤³¤Î¥­¡¼¥ï¡¼¥É¤Ï¡¢¥Û¥¹¥È¤Î¥ë¥Ã¥¯¥¢¥Ã¥×Êý¼°¤ò»ØÄꤹ¤ë¡£ -¤³¤Î¥­¡¼¥ï¡¼¥É¤Î¸å¤Ë¤Ï¡¢¥³¥ó¥Þ¤Çʬ¤±¤¿ -1 ¤Ä°Ê¾å¤Î¥ë¥Ã¥¯¥¢¥Ã¥×Êý¼°¤¬Â³¤«¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -»ÈÍѲÄǽ¤ÊÊý¼°¤Ï +このキーワードは、ホストのルックアップ方式を指定する。 +このキーワードの後には、コンマで分けた +1 つ以上のルックアップ方式が続かなくてはならない。 +使用可能な方式は .IR bind ", " hosts ", " nis -¤Ç¤¢¤ë¡£ +である。 .TP .I trim .\"O This keyword may be listed more than once. @@ -88,20 +88,20 @@ host.conf \- .\"O ensure that the first hostname for each entry in the hosts file is .\"O fully qualified or unqualified, as appropriate for the local .\"O installation.) -¤³¤Î¥­¡¼¥ï¡¼¥É¤Ï¡¢2 ²ó°Ê¾å¥ê¥¹¥È¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -Ëè²ó¡¢¤³¤Î¥­¡¼¥ï¡¼¥É¤Î¸å¤Ë¤Ï¡¢ -¥É¥Ã¥È¤Ç¤Ï¤¸¤Þ¤ë 1 ¤Ä°Ê¾å¤Î¥É¥á¥¤¥ó̾¤Î¥ê¥¹¥È¤ò³¤±¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥É¥á¥¤¥ó̾¤Ï¥³¥í¥ó (\(aq:\(aq)¡¢¥»¥ß¥³¥í¥ó (\(aq;\(aq)¡¢¥³¥ó¥Þ (\(aq,\(aq) -¤Ç¶èÀڤ롣 -¤³¤Î¥­¡¼¥ï¡¼¥É¤¬ÀßÄꤵ¤ì¤ë¤È¡¢resolv+ ¥é¥¤¥Ö¥é¥ê¤Ï DNS ¤Ç¥ì¥¾¥ë¥Ö¤µ¤ì¤¿ -¤¹¤Ù¤Æ¤Î¥Û¥¹¥È̾¤Î¸å¤í¤«¤éÍ¿¤¨¤é¤ì¤¿¥É¥á¥¤¥ó̾¤ò¼«Æ°Åª¤Ë¼è¤êµî¤ë¡£ -¤³¤Î¥­¡¼¥ï¡¼¥É¤Ï¥í¡¼¥«¥ë¤Ê¥Û¥¹¥È¤È¥É¥á¥¤¥ó¤Ç»ÈÍѤ¹¤ë¤³¤È¤ò°Õ¿Þ¤·¤Æ¤¤¤ë¡£ -(´ØÏ¢¤·¤¿Ãí°Õ : NIS ¤Þ¤¿¤Ï hosts ¥Õ¥¡¥¤¥ë¤Ç½¸¤á¤é¤ì¤¿¥Û¥¹¥È̾¤Ë -trim ¤Ï±Æ¶Á¤·¤Ê¤¤¡£ -hosts ¥Õ¥¡¥¤¥ë¤Î³Æ¥¨¥ó¥È¥ê¤ÎºÇ½é¤Î¥Û¥¹¥È̾¤ò¡¢ -´°Á´¤Ê¥É¥á¥¤¥ó̾ÉÕ¤­¤Î¤â¤Î¤Ë¤¹¤ë¤«¤·¤Ê¤¤¤«¤Ï¡¢ -¥Û¥¹¥È¤´¤È¤Î¥¤¥ó¥¹¥È¡¼¥ë¥Ý¥ê¥·¡¼¤Ë¤¢¤ï¤»¤Æ -ŬÀÚ¤ËÁªÂò¤¹¤ëɬÍפ¬¤¢¤ë¡£Ãí°Õ¤¹¤ë¤³¤È¡£) +このキーワードは、2 回以上リストすることができる。 +毎回、このキーワードの後には、 +ドットではじまる 1 つ以上のドメイン名のリストを続けなければならない。 +ドメイン名はコロン (\(aq:\(aq)、セミコロン (\(aq;\(aq)、コンマ (\(aq,\(aq) +で区切る。 +このキーワードが設定されると、resolv+ ライブラリは DNS でレゾルブされた +すべてのホスト名の後ろから与えられたドメイン名を自動的に取り去る。 +このキーワードはローカルなホストとドメインで使用することを意図している。 +(関連した注意 : NIS または hosts ファイルで集められたホスト名に +trim は影響しない。 +hosts ファイルの各エントリの最初のホスト名を、 +完全なドメイン名付きのものにするかしないかは、 +ホストごとのインストールポリシーにあわせて +適切に選択する必要がある。注意すること。) .TP .I multi .\"O Valid values are @@ -117,19 +117,19 @@ hosts .\"O .I off .\"O by default, as it may cause a substantial performance loss at sites .\"O with large hosts files. -Í­¸ú¤ÊÃÍ¤Ï -.IR on " ¤È " off -¤Ç¤¢¤ë¡£ +有効な値は +.IR on " と " off +である。 .I on -¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ºÇ½é¤Î¥¨¥ó¥È¥ê¤Î¤ß¤òÎã³°¤È¤·¤Æ¡¢ -resolv+ ¥é¥¤¥Ö¥é¥ê¤Ï +に設定された場合、最初のエントリのみを例外として、 +resolv+ ライブラリは .I /etc/hosts -¥Õ¥¡¥¤¥ë¤Ë¸½¤ì¤ë¥Û¥¹¥È¤ËÂФ·¤ÆÁ´¤Æ¤ÎÍ­¸ú¤Ê¥¢¥É¥ì¥¹¤òÊÖ¤½¤¦¤È¤¹¤ë¡£ -Â礭¤Ê hosts ¥Õ¥¡¥¤¥ë¤ò»ý¤Ä¥µ¥¤¥È¤Ç¤Ï¡¢ -¤³¤ÎÀßÄê¤ÏÈó¾ï¤ÊÀ­Ç½¤ÎÄã²¼¤ò¾·¤¯¤Î¤Ç¡¢ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï +ファイルに現れるホストに対して全ての有効なアドレスを返そうとする。 +大きな hosts ファイルを持つサイトでは、 +この設定は非常な性能の低下を招くので、 +デフォルトでは .I off -¤Ç¤¢¤ë¡£ +である。 .TP .I nospoof .\"O Valid values are @@ -143,29 +143,29 @@ resolv+ .\"O will perform a hostname lookup for that address. .\"O If the two hostnames .\"O do not match, the query will fail. -Í­¸ú¤ÊÃÍ¤Ï -.IR on " ¤È " off -¤Ç¤¢¤ë¡£ +有効な値は +.IR on " と " off +である。 .I on -¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢resolv+ ¥é¥¤¥Ö¥é¥ê¤Ï -.BR rlogin " ¤È " rsh -¤Î¥»¥­¥å¥ê¥Æ¥£¤ò¸þ¾å¤µ¤»¤ë¤¿¤á¥Û¥¹¥È̾¤Îµ¶Áõ¤òËɻߤ·¤è¤¦¤È¤¹¤ë¡£ -¤³¤ì¤Ï¡¢¡Ö¥Û¥¹¥È¥¢¥É¥ì¥¹¤Î¥ë¥Ã¥¯¥¢¥Ã¥×¤ò¹Ô¤Ã¤¿¸å¡¢ -resolv+ ¤Ï¤½¤Î¥¢¥É¥ì¥¹¤ËÂФ·¤Æ¥Û¥¹¥È̾¤Î¥ë¥Ã¥¯¥¢¥Ã¥×¤ò¹Ô¤¤¡¢ -¤â¤· 2 ¤Ä¤Î¥Û¥¹¥È̾¤¬°ìÃפ·¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢¥¯¥¨¥ê¡¼¤Ï¼ºÇÔ¤¹¤ë¡£¡× -¤È¤¤¤¦¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +に設定された場合、resolv+ ライブラリは +.BR rlogin " と " rsh +のセキュリティを向上させるためホスト名の偽装を防止しようとする。 +これは、「ホストアドレスのルックアップを行った後、 +resolv+ はそのアドレスに対してホスト名のルックアップを行い、 +もし 2 つのホスト名が一致しなかった場合は、クエリーは失敗する。」 +というように動作する。 .\"O The default value is .\"O .IR off . -¥Ç¥Õ¥©¥ë¥È¤ÎÃÍ¤Ï +デフォルトの値は .I off -¤Ç¤¢¤ë¡£ +である。 .TP .I spoofalert .\"O Valid values are .\"O .IR on " and " off . -Í­¸ú¤ÊÃÍ¤Ï -.IR on " ¤È " off -¤Ç¤¢¤ë¡£ +有効な値は +.IR on " と " off +である。 .\"O If this option is set to .\"O .I on .\"O and the @@ -174,52 +174,52 @@ resolv+ .\"O syslog facility. .\"O The default value is .\"O .IR off . -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬ +このオプションが .I on -¤ËÀßÄꤵ¤ì¤Æ¤¤¤Æ¡¢ +に設定されていて、 .I nospoof -¥ª¥×¥·¥ç¥ó¤â (on ¤Ë) ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -resolv+ ¤Ï syslog µ¡Ç½¤òÄ̤¸¤Æ¥¨¥é¡¼¤Ë´Ø¤¹¤ë·Ù¹ð¤Î¥í¥°¤ò¤È¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÃÍ¤Ï +オプションも (on に) 設定されている場合、 +resolv+ は syslog 機能を通じてエラーに関する警告のログをとる。 +デフォルトの値は .I off -¤Ç¤¢¤ë¡£ +である。 .TP .I spoof .\"O Valid values are .\"O .IR off ", " nowarn " and " warn . -Í­¸ú¤ÊÃÍ¤Ï +有効な値は .IR off ", " nowarn ", " warn -¤Ç¤¢¤ë¡£ +である。 .\"O If this option is set to .\"O .IR off , .\"O spoofed addresses are permitted and no warnings will be emitted .\"O via the syslog facility. -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò +このオプションを .I off -¤ËÀßÄꤹ¤ë¤È¡¢µ¶Áõ¤µ¤ì¤¿¥¢¥É¥ì¥¹¤òµö²Ä¤·¤Æ¡¢ -syslog µ¡Ç½¤òÄ̤¸¤¿·Ù¹ð¤òȯ¤·¤Ê¤¤¡£ +に設定すると、偽装されたアドレスを許可して、 +syslog 機能を通じた警告を発しない。 .\"O If this option is set to .\"O .IR warn , .\"O resolv+ will attempt to prevent hostname spoofing to .\"O enhance the security and log a warning of the error via the syslog .\"O facility. -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò +このオプションを .I warn -¤ËÀßÄꤹ¤ë¤È¡¢resolv+ ¤Ï¥»¥­¥å¥ê¥Æ¥£¤ò¹â¤á¤ë¤¿¤á¤Ë¥Û¥¹¥È̾¤Îµ¶Áõ¤òËɻߤ·¡¢ -syslog µ¡Ç½¤òÄ̤¸¤Æ¥¨¥é¡¼¤Ë´Ø¤¹¤ë·Ù¹ð¤Î¥í¥°¤ò¤È¤ë¡£ +に設定すると、resolv+ はセキュリティを高めるためにホスト名の偽装を防止し、 +syslog 機能を通じてエラーに関する警告のログをとる。 .\"O If this option is set to .\"O .IR nowarn , .\"O the resolv+ library will attempt to prevent hostname spoofing to .\"O enhance the security but not emit warnings via the syslog facility. -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò +このオプションを .I nowarn -¤ËÀßÄꤹ¤ë¤È¡¢resolv+ ¤Ï¥»¥­¥å¥ê¥Æ¥£¤ò¹â¤á¤ë¤¿¤á¤Ë¥Û¥¹¥È̾¤Îµ¶Áõ¤òËɻߤ¹¤ë¤¬¡¢ -syslog µ¡Ç½¤òÄ̤¸¤¿·Ù¹ð¤Ïȯ¤·¤Ê¤¤¡£ +に設定すると、resolv+ はセキュリティを高めるためにホスト名の偽装を防止するが、 +syslog 機能を通じた警告は発しない。 .\"O Setting this option to anything else is equal to setting it to .\"O .IR nowarn . -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò²¿¤âÀßÄꤷ¤Ê¤¤¾ì¹ç¤Ï¡¢ +このオプションを何も設定しない場合は、 .I nowarn -¤òÀßÄꤷ¤¿¤Î¤ÈƱ¤¸¤Ë¤Ê¤ë¡£ +を設定したのと同じになる。 .TP .I reorder .\"O Valid values are @@ -234,40 +234,40 @@ syslog .\"O The default .\"O value is .\"O .IR off . -Í­¸ú¤ÊÃÍ¤Ï -.IR on " ¤È " off -¤Ç¤¢¤ë¡£ +有効な値は +.IR on " と " off +である。 .I on -¤ËÀßÄꤵ¤ì¤ë¤È¡¢ +に設定されると、 .B gethostbyname (3) -¤¬¼Â¹Ô¤µ¤ì¤ë¤È¤­¡¢resolv+ ¥é¥¤¥Ö¥é¥ê¤Ï¡¢¥í¡¼¥«¥ë¤Ê -(¤Ä¤Þ¤ê¡¢Æ±¤¸¥µ¥Ö¥Í¥Ã¥È¤Ë¤¢¤ë) ¥¢¥É¥ì¥¹¤¬ºÇ½é¤Ë¥ê¥¹¥È¤µ¤ì¤ë¤è¤¦¤Ë -¥Û¥¹¥È¥¢¥É¥ì¥¹¤òʤÙÊѤ¨¤ë¡£ -¤¹¤Ù¤Æ¤Î¥ë¥Ã¥¯¥¢¥Ã¥×Êý¼°¤ËÂФ·¤ÆʤÙÊѤ¨¤¬¹Ô¤ï¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÃͤϡ¢ +が実行されるとき、resolv+ ライブラリは、ローカルな +(つまり、同じサブネットにある) アドレスが最初にリストされるように +ホストアドレスを並べ変える。 +すべてのルックアップ方式に対して並べ変えが行われる。 +デフォルトの値は、 .I off -¤Ç¤¢¤ë¡£ +である。 .\"O .SH ENVIRONMENT -.SH ´Ä¶­ÊÑ¿ô +.SH 環境変数 .\"O There are six environment variables that can be used to allow users to .\"O override the behavior which is configured in .\"O .IR /etc/host.conf . .I /etc/host.conf -¤ÇÀßÄꤵ¤ì¤Æ¤¤¤ëÆ°ºî¤ò¡¢¥æ¡¼¥¶¤¬¾å½ñ¤­¤Ç¤­¤ë 6 ¤Ä¤Î´Ä¶­ÊÑ¿ô¤¬¤¢¤ë¡£ +で設定されている動作を、ユーザが上書きできる 6 つの環境変数がある。 .TP .B RESOLV_HOST_CONF .\"O If set this variable points to a file that should be read instead of .\"O .IR /etc/host.conf . -¤³¤ÎÊÑ¿ô¤òÀßÄꤹ¤ë¤È¡¢ +この変数を設定すると、 .I /etc/host.conf -¤ÎÂå¤ê¤ËÆɤ߹þ¤à¥Õ¥¡¥¤¥ë¤òÀßÄê¤Ç¤­¤ë¡£ +の代りに読み込むファイルを設定できる。 .TP .B RESOLV_SERV_ORDER .\"O Overrides the .\"O .I order .\"O command. .I order -¥³¥Þ¥ó¥É¤ò¾å½ñ¤­¤¹¤ë¡£ +コマンドを上書きする。 .TP .B RESOLV_SPOOF_CHECK .\"O Overrides the @@ -278,34 +278,34 @@ syslog .\"O Valid values are .\"O .IR off ", " nowarn " and " warn . .I spoof -¥³¥Þ¥ó¥É¤ò²òÀϤ¹¤ë¤Î¤ÈƱ¤¸Êý¼°¤Ç¡¢ +コマンドを解析するのと同じ方式で、 .IR nospoof ", " spoofalert ", " spoof -¥³¥Þ¥ó¥É¤ò¾å½ñ¤­¤Ç¤­¤ë¡£ -Í­¸ú¤ÊÃÍ¤Ï +コマンドを上書きできる。 +有効な値は .IR off ", " nowarn ", " warn -¤Ç¤¢¤ë¡£ +である。 .TP .B RESOLV_MULTI .\"O Overrides the .\"O .I multi .\"O command. .I multi -¥³¥Þ¥ó¥É¤ò¾å½ñ¤­¤¹¤ë¡£ +コマンドを上書きする。 .TP .B RESOLV_REORDER .\"O Overrides the .\"O .I reorder .\"O command. .I reorder -¥³¥Þ¥ó¥É¤ò¾å½ñ¤­¤¹¤ë¡£ +コマンドを上書きする。 .TP .B RESOLV_ADD_TRIM_DOMAINS .\"O A list of domains, separated by colons (\(aq:\(aq), semicolons (\(aq;\(aq) or .\"O commas (\(aq,\(aq), with the leading dot, which will be added to the list of .\"O domains that should be trimmed. -¥³¥í¥ó (\(aq:\(aq)¡¢¥»¥ß¥³¥í¥ó (\(aq;\(aq)¡¢¥³¥ó¥Þ (\(aq,\(aq) ¤Ç¶èÀڤä¿ -¥É¥Ã¥È (\(aq.\(aq) ¤Ç»Ï¤Þ¤ë¥É¥á¥¤¥ó̾¤Î¥ê¥¹¥È¡£ -¥Û¥¹¥È̾¤«¤é¼è¤êµî¤ë¥É¥á¥¤¥ó̾¤Î¥ê¥¹¥È¤ËÄɲ乤롣 +コロン (\(aq:\(aq)、セミコロン (\(aq;\(aq)、コンマ (\(aq,\(aq) で区切った +ドット (\(aq.\(aq) で始まるドメイン名のリスト。 +ホスト名から取り去るドメイン名のリストに追加する。 .TP .B RESOLV_OVERRIDE_TRIM_DOMAINS .\"O A list of domains, separated by colons (\(aq:\(aq), semicolons (\(aq;\(aq) or @@ -314,46 +314,46 @@ syslog .\"O Overrides the .\"O .I trim .\"O command. -¥³¥í¥ó (\(aq:\(aq)¡¢¥»¥ß¥³¥í¥ó (\(aq;\(aq)¡¢¥³¥ó¥Þ (\(aq,\(aq) ¤Ç¶èÀڤä¿ -¥É¥Ã¥È (\(aq.\(aq) ¤Ç»Ï¤Þ¤ë¥É¥á¥¤¥ó̾¤Î¥ê¥¹¥È¡£ -¥Û¥¹¥È̾¤«¤é¼è¤êµî¤ë¥É¥á¥¤¥ó̾¤Î¥ê¥¹¥È¤ò¾å½ñ¤­¤¹¤ë¡£ +コロン (\(aq:\(aq)、セミコロン (\(aq;\(aq)、コンマ (\(aq,\(aq) で区切った +ドット (\(aq.\(aq) で始まるドメイン名のリスト。 +ホスト名から取り去るドメイン名のリストを上書きする。 .I trim -¥³¥Þ¥ó¥É¤ò¾å½ñ¤­¤¹¤ë¡£ +コマンドを上書きする。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .TP .I /etc/host.conf .\"O Resolver configuration file -¥ê¥¾¥ë¥ÐÀßÄê¥Õ¥¡¥¤¥ë +リゾルバ設定ファイル .TP .I /etc/resolv.conf .\"O Resolver configuration file -¥ê¥¾¥ë¥ÐÀßÄê¥Õ¥¡¥¤¥ë +リゾルバ設定ファイル .TP .I /etc/hosts .\"O Local hosts database -¥í¡¼¥«¥ë¤Î hosts ¥Ç¡¼¥¿¥Ù¡¼¥¹ +ローカルの hosts データベース .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The following differences exist compared to the original implementation. -¸µ¡¹¤Î¼ÂÁõ¤ËÈæ¤Ù¤Æ°Ê²¼¤Î¤è¤¦¤Ê°ã¤¤¤¬¤¢¤ë¡£ +元々の実装に比べて以下のような違いがある。 .\"O A new command .\"O .I spoof .\"O and a new environment variable .\"O .B RESOLV_SPOOF_CHECK .\"O can take arguments like .\"O .IR off ", " nowarn " and " warn . -¿·¤·¤¤¥³¥Þ¥ó¥É +新しいコマンド .I spoof -¤È¿·¤·¤¤´Ä¶­ÊÑ¿ô +と新しい環境変数 .B RESOLV_SPOOF_CHECK -¤Ï¡¢°ú¤­¿ô +は、引き数 .IR off ", " nowarn ", " warn -¤ò¤È¤ë¡£ +をとる。 .\"O Line comments can appear anywhere and not only at the beginning of a line. -¥³¥á¥ó¥È¤Ï¹ÔƬ¤À¤±¤Ç¤Ï¤Ê¤¯¡¢¤É¤³¤Ë½ñ¤¤¤Æ¤â¤è¤¤¡£ +コメントは行頭だけではなく、どこに書いてもよい。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR gethostbyname (3), .BR hostname (7), .BR named (8), diff --git a/draft/man5/hosts.5 b/draft/man5/hosts.5 index 07cff19c..5d021df3 100644 --- a/draft/man5/hosts.5 +++ b/draft/man5/hosts.5 @@ -32,14 +32,14 @@ .\" .TH HOSTS 5 2002-06-16 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O hosts \- static table lookup for hostnames -hosts \- ¥Û¥¹¥È̾¤ÎÀÅŪ¤Ê¥ë¥Ã¥¯¥¢¥Ã¥×¥Æ¡¼¥Ö¥ë +hosts \- ホスト名の静的なルックアップテーブル .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B /etc/hosts .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This manual page describes the format of the .\"O .I /etc/hosts .\"O file. @@ -47,16 +47,16 @@ hosts \- .\"O with hostnames, one line per IP address. .\"O For each host a single .\"O line should be present with the following information: -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï¡¢ +このマニュアルページは、 .I /etc/hosts -¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¤Ä¤¤¤Æµ­½Ò¤·¤Æ¤¤¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï´Êñ¤Ê¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Ç¡¢1 ¹Ô¤Ë 1 ¤Ä¤Î IP ¥¢¥É¥ì¥¹¤¬¤¢¤ê¡¢ -IP ¥¢¥É¥ì¥¹¤È¥Û¥¹¥È̾¤ò´ØÏ¢¤Å¤±¤Æ¤¤¤ë¡£ -³Æ¥Û¥¹¥È¤Ë¤Ä¤¤¤Æ¡¢¼¡¤Î¤è¤¦¤Ê¾ðÊó¤¬ 1 ¹Ô¤ÇÍ¿¤¨¤é¤ì¤ë¡£ +ファイルのフォーマットについて記述している。 +このファイルは簡単なテキストファイルで、1 行に 1 つの IP アドレスがあり、 +IP アドレスとホスト名を関連づけている。 +各ホストについて、次のような情報が 1 行で与えられる。 .RS .PP .\"O IP_address canonical_hostname [aliases...] -IP¥¢¥É¥ì¥¹ Àµ¼°¤Ê¥Û¥¹¥È̾ [¥¨¥¤¥ê¥¢¥¹...] +IPアドレス 正式なホスト名 [エイリアス...] .RE .PP .\"O Fields of the entry are separated by any number of blanks and/or @@ -70,15 +70,15 @@ IP .\"O Optional aliases provide for name changes, alternate spellings, .\"O shorter hostnames, or generic hostnames (for example, .\"O .IR localhost ). -¥¨¥ó¥È¥ê¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢¶õÇò¤Þ¤¿¤Ï¥¿¥Ö (Ê£¿ô¤Ç¤â²Ä) ¤Ç¶èÀÚ¤é¤ì¤ë¡£ -"#" ʸ»ú¤«¤é¹ÔËö¤Þ¤Ç¤Î¥Æ¥­¥¹¥È¤Ï¥³¥á¥ó¥È¤È¤·¤Æ̵»ë¤µ¤ì¤ë¡£ -¥Û¥¹¥È̾¤Ï±Ñ¿ô»ú¡¦¥Þ¥¤¥Ê¥¹µ­¹æ ("\-")¡¦¥Ô¥ê¥ª¥É (".") ¤ò´Þ¤à¤³¤È¤¬¤Ç¤­¤ë¡£ -¥Û¥¹¥È̾¤Ï±Ñʸ»ú (alphabetic character) ¤Ç»Ï¤Þ¤Ã¤Æ¡¢ -±Ñ¿ô»ú (alphanumeric characte) ¤Ç½ª¤ï¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥¨¥¤¥ê¥¢¥¹¤Ï¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ê¡¢Ì¾Á°¤ÎÊѹ¹¡¢Ê̤Υ¹¥Ú¥ë¡¢ -û¤¤¥Û¥¹¥È̾¡¢°ìÈÌŪ¤Ë»È¤ï¤ì¤ë¥Û¥¹¥È̾ (Î㤨¤Ð +エントリのフィールドは、空白またはタブ (複数でも可) で区切られる。 +"#" 文字から行末までのテキストはコメントとして無視される。 +ホスト名は英数字・マイナス記号 ("\-")・ピリオド (".") を含むことができる。 +ホスト名は英文字 (alphabetic character) で始まって、 +英数字 (alphanumeric characte) で終わらなければならない。 +エイリアスはオプションであり、名前の変更、別のスペル、 +短いホスト名、一般的に使われるホスト名 (例えば .IR localhost ) -¤Ê¤É¤Î¤¿¤á¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¡£ +などのために用意されている。 .PP .\"O The Berkeley Internet Name Domain (BIND) Server implements the .\"O Internet name server for UNIX systems. @@ -87,69 +87,69 @@ IP .\"O file or hostname lookup, and frees a host from relying on .\"O .I /etc/hosts .\"O being up to date and complete. -Berkeley Internet Name Domain (BIND) ¥µ¡¼¥Ð¤Ï¡¢ -UNIX ¥·¥¹¥Æ¥à¤Î¤¿¤á¤Î¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥Í¡¼¥à¥µ¡¼¥Ð¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï¡¢ +Berkeley Internet Name Domain (BIND) サーバは、 +UNIX システムのためのインターネットネームサーバを実装している。 +これは、 .I /etc/hosts -¥Õ¥¡¥¤¥ë¤ä¥Û¥¹¥È̾¥ë¥Ã¥¯¥¢¥Ã¥×¤ò³ÈÄ¥¤·¤¿¤êÃÖ¤­´¹¤¨¤¿¤ê¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤ì¤Ë¤è¤ê³Æ¥Û¥¹¥È¤Ï +ファイルやホスト名ルックアップを拡張したり置き換えたりするものである。 +これにより各ホストは .I /etc/hosts -¤òºÇ¿·¤«¤Ä´°Á´¤ËÊݤ¿¤Ê¤¯¤Æ¤â¤è¤¯¤Ê¤ë¡£ +を最新かつ完全に保たなくてもよくなる。 .PP .\"O In modern systems, even though the host table has been superseded by .\"O DNS, it is still widely used for: -¥Û¥¹¥È¥Æ¡¼¥Ö¥ë¤Ï¡¢DNS ¤Ë¤È¤Ã¤ÆÂå¤ï¤é¤ì¤¿¤Ë¤â¤«¤«¤ï¤é¤º¡¢ -¸½ºß¤Î¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¼¡¤Î¤è¤¦¤ÊÍÑÅӤǹ­¤¯»È¤ï¤ì¤Æ¤¤¤ë¡£ +ホストテーブルは、DNS にとって代わられたにもかかわらず、 +現在のシステムにおいて次のような用途で広く使われている。 .TP .\"O .B bootstrapping -.B ¥Ö¡¼¥È»þ +.B ブート時 .\"O Most systems have a small host table containing the name and address .\"O information for important hosts on the local network. .\"O This is useful .\"O when DNS is not running, for example during system bootup. -ÂçÉôʬ¤Î¥·¥¹¥Æ¥à¤Ï¡¢¥í¡¼¥«¥ë¥Í¥Ã¥È¥ï¡¼¥¯¤Ë¤ª¤¤¤Æ½ÅÍפʥۥ¹¥È¤Î -̾Á°¤È¥¢¥É¥ì¥¹¤¬´Þ¤Þ¤ì¤¿¾®¤µ¤Ê¥Û¥¹¥È¥Æ¡¼¥Ö¥ë¤ò»ý¤Ã¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï¡¢¥·¥¹¥Æ¥à¤Î¥Ö¡¼¥È»þ¤Ê¤É¤Î DNS ¤¬²ÔƯ¤·¤Æ¤¤¤Ê¤¤¤È¤­¤ËÌòΩ¤Ä¡£ +大部分のシステムは、ローカルネットワークにおいて重要なホストの +名前とアドレスが含まれた小さなホストテーブルを持っている。 +これは、システムのブート時などの DNS が稼働していないときに役立つ。 .TP .B NIS .\"O Sites that use NIS use the host table as input to the NIS host .\"O database. .\"O Even though NIS can be used with DNS, most NIS sites still .\"O use the host table with an entry for all local hosts as a backup. -NIS ¤ò»ÈÍѤ·¤Æ¤¤¤ë¥µ¥¤¥È¤Ï¡¢¥Û¥¹¥È¥Æ¡¼¥Ö¥ë¤ò -NIS ¥Û¥¹¥È¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÆþÎϤȤ·¤ÆÍѤ¤¤ë¡£ -NIS ¤ò DNS ¤È¶¦¤Ë»ÈÍѤǤ­¤ë¤Ë¤â¤«¤«¤ï¤é¤º¡¢ -ÂçÉôʬ¤Î NIS ¥µ¥¤¥È¤Ï̤¤À¤Ë¡¢ -Á´¤Æ¤Î¥í¡¼¥«¥ë¥Û¥¹¥È¤Î¥¨¥ó¥È¥ê¤ò¤â¤Ä¥Û¥¹¥È¥Æ¡¼¥Ö¥ë¤ò -¥Ð¥Ã¥¯¥¢¥Ã¥×¤È¤·¤Æ»ÈÍѤ·¤Æ¤¤¤ë¡£ +NIS を使用しているサイトは、ホストテーブルを +NIS ホストデータベースの入力として用いる。 +NIS を DNS と共に使用できるにもかかわらず、 +大部分の NIS サイトは未だに、 +全てのローカルホストのエントリをもつホストテーブルを +バックアップとして使用している。 .TP .\"O .B isolated nodes -.B ³ÖÀ䤵¤ì¤¿¥Î¡¼¥É +.B 隔絶されたノード .\"O Very small sites that are isolated from the network use the host table .\"O instead of DNS. .\"O If the local information rarely changes, and the .\"O network is not connected to the Internet, DNS offers little .\"O advantage. -¥Í¥Ã¥È¥ï¡¼¥¯¤«¤é³ÖÀ䤵¤ì¤¿Èó¾ï¤Ë¾®¤µ¤Ê¥µ¥¤¥È¤Ï¡¢ -DNS ¤ÎÂå¤ï¤ê¤Ë¥Û¥¹¥È¥Æ¡¼¥Ö¥ë¤ò»ÈÍѤ·¤Æ¤¤¤ë¡£ -¥í¡¼¥«¥ë¾ðÊ󤬵©¤Ë¤·¤«Êѹ¹¤µ¤ì¤º¡¢ -¥Í¥Ã¥È¥ï¡¼¥¯¤¬¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤ÈÀܳ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -DNS ¤Ë¤½¤ì¤Û¤É¤ÎÍøÅÀ¤Ï¤Ê¤¤¡£ +ネットワークから隔絶された非常に小さなサイトは、 +DNS の代わりにホストテーブルを使用している。 +ローカル情報が稀にしか変更されず、 +ネットワークがインターネットと接続されていない場合、 +DNS にそれほどの利点はない。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .I /etc/hosts .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Modifications to this file normally take effect immediately, .\"O except in cases where the file is cached by applications. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ø¤ÎÊѹ¹¤ÏÄ̾魯¤°¤ËÈ¿±Ç¤µ¤ì¤ë¡£Ã¢¤·¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó -¤Ë¤è¤ê¥Õ¥¡¥¤¥ë¤ÎÆâÍƤ¬¥­¥ã¥Ã¥·¥å¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¤³¤Î¸Â¤ê¤Ç¤Ï¤Ê¤¤¡£ +このファイルへの変更は通常すぐに反映される。但し、アプリケーション +によりファイルの内容がキャッシュされている場合はこの限りではない。 .\"O .SS "Historical Notes" -.SS Îò»ËŪ¤Ê·Ð°Þ +.SS 歴史的な経緯 .\"O RFC\ 952 gave the original format for the host table, though it has .\"O since changed. -¥Û¥¹¥È¥Æ¡¼¥Ö¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¤½¤Î¸åÊѹ¹¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -¸µ¡¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï RFC\ 952 ¤Ë¤Ïµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ +ホストテーブルのフォーマットはその後変更されているが、 +元々のフォーマットは RFC\ 952 には記載されている。 .\"O Before the advent of DNS, the host table was the only way of resolving .\"O hostnames on the fledgling Internet. @@ -163,18 +163,18 @@ DNS .\"O historical hosts.txt files on the WWW. .\"O I just found three, from 92, .\"O 94, and 95. -DNS ¤ÎÅоì°ÊÁ°¡¢¥Û¥¹¥È¥Æ¡¼¥Ö¥ë¤Ï¡¢¶î¤±½Ð¤·¤¿¤Ð¤«¤ê¤Î¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ë¤ª¤±¤ë -¥Û¥¹¥È̾²ò·è¤ÎÍ£°ì¤ÎÊýË¡¤Ç¤¢¤Ã¤¿¡£ -¼ÂºÝ¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ï Network Information Control Center (NIC) ¤Ë¤è¤Ã¤Æ -´ÉÍý¤µ¤ì¤ë¸ø¼°¥Û¥¹¥È¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤¿¡£ -¤·¤«¤·¡¢Èó¸ø¼°¤Ê¥¨¥¤¥ê¥¢¥¹¤äÉÔÌÀ¤Ê¥Û¥¹¥È¤ò°·¤¨¤ë¤è¤¦¤Ë¡¢ -ºÇ¿·¤ËÊݤĤ¿¤á¤Î¥í¡¼¥«¥ë¤ÊÊѹ¹¤¬ÉÑÈˤËɬÍפȤµ¤ì¤¿¡£ -NIC ¤Ï´û¤Ë hosts.txt ¤ò´ÉÍý¤·¤Æ¤¤¤Ê¤¤¤¬¡¢ -¤³¤ì¤ò½ñ¤¤¤Æ¤¤¤ë (2000 ǯº¢¤Î) »þÅÀ¤ÇÄ´¤Ù¤Æ¤ß¤ë¤È¡¢ -WWW ¾å¤ËÎò»ËŪ¤Ê hosts.txt ¤¬Â¸ºß¤¹¤ë¡£ -92, 94, 95 ǯ¤Î¤â¤Î¤¬¸«¤Ä¤«¤Ã¤¿¡£ +DNS の登場以前、ホストテーブルは、駆け出したばかりのインターネットにおける +ホスト名解決の唯一の方法であった。 +実際、このファイルは Network Information Control Center (NIC) によって +管理される公式ホストデータベースから作成することができた。 +しかし、非公式なエイリアスや不明なホストを扱えるように、 +最新に保つためのローカルな変更が頻繁に必要とされた。 +NIC は既に hosts.txt を管理していないが、 +これを書いている (2000 年頃の) 時点で調べてみると、 +WWW 上に歴史的な hosts.txt が存在する。 +92, 94, 95 年のものが見つかった。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .nf 127.0.0.1 localhost 192.168.1.10 foo.mydomain.org foo @@ -183,7 +183,7 @@ WWW 209.237.226.90 www.opensource.org .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR hostname (1), .BR resolver (3), .BR resolver (5), @@ -191,8 +191,8 @@ WWW .BR named (8), Internet RFC\ 952 .\"O .\" .SH AUTHOR -.\" .SH Ãø¼Ô +.\" .SH 著者 .\"O .\" This manual page was written by Manoj Srivastava , .\"O .\" for the Debian GNU/Linux system. -.\" ¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï¡¢Debian GNU/Linux ¥·¥¹¥Æ¥à¤Î¤¿¤á¤Ë -.\" Manoj Srivastava ¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤¿¡£ +.\" このマニュアルページは、Debian GNU/Linux システムのために +.\" Manoj Srivastava によって書かれた。 diff --git a/draft/man5/hosts.equiv.5 b/draft/man5/hosts.equiv.5 index ebd6d2e9..f8c6c62d 100644 --- a/draft/man5/hosts.equiv.5 +++ b/draft/man5/hosts.equiv.5 @@ -9,22 +9,22 @@ .\"O .SH NAME .\"O /etc/hosts.equiv \- list of hosts and users that are granted "trusted" .\"O \fBr\fP command access to your system -.SH ̾Á° -/etc/hosts.equiv \- ¡Ö¿®Íꤵ¤ì¤¿¡×\fBr\fP ¥³¥Þ¥ó¥É¤Ë¤è¤ë¥·¥¹¥Æ¥à¤Ø¤Î -¥¢¥¯¥»¥¹¤òµö²Ä¤¹¤ë¥Û¥¹¥È¤ª¤è¤Ó¥æ¡¼¥¶¤Î¥ê¥¹¥È +.SH 名前 +/etc/hosts.equiv \- 「信頼された」\fBr\fP コマンドによるシステムへの +アクセスを許可するホストおよびユーザのリスト .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The \fBhosts.equiv\fP file allows or denies hosts and users to use .\"O the \fBr\fP-commands (e.g., \fBrlogin\fP, \fBrsh\fP or \fBrcp\fP) without .\"O supplying a password. .B hosts.equiv -¥Õ¥¡¥¤¥ë¤Ï \fBr\fP-¥³¥Þ¥ó¥É +ファイルは \fBr\fP-コマンド .RB ( rlogin ", " rsh ", " rcp -¤Ê¤É) ¤Ë¤è¤ë¥Ñ¥¹¥ï¡¼¥É¤Ê¤·¤Ç¤ÎÍøÍѤò -µö²Ä/µñÈݤ¹¤ë¥Û¥¹¥È/¥æ¡¼¥¶¤òÀßÄꤹ¤ë¡£ +など) によるパスワードなしでの利用を +許可/拒否するホスト/ユーザを設定する。 .PP .\"O The file uses the following format: -¤³¤Î¥Õ¥¡¥¤¥ë¤Ç¤Ï°Ê²¼¤Î½ñ¼°¤òÍѤ¤¤ë¡£ +このファイルでは以下の書式を用いる。 .TP \fI[ + | \- ]\fP \fI[hostname]\fP \fI[username]\fP .PP @@ -40,17 +40,17 @@ .\"O For security reasons you should always use the FQDN of the hostname and .\"O not the short hostname. .I hostname -¤Ï¡¢¥í¡¼¥«¥ë¥Û¥¹¥È¤ÈÏÀÍýŪ¤ËÅù²Á¤Ê¥Û¥¹¥È¤Î̾Á°¤Ç¤¢¤ë¡£ -¤½¤Î¥Û¥¹¥È¤Ë¥í¥°¥¤¥ó¤·¤Æ¤¤¤ë¥æ¡¼¥¶¤Ï¡¢¥Ñ¥¹¥ï¡¼¥É¤Ê¤·¤Ç -¥í¡¼¥«¥ë¥Û¥¹¥È¤ÎƱ¤¸Ì¾Á°¤Î¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¤Ë¥¢¥«¥¦¥ó¥È¤Ç¤­¤ë¡£ +は、ローカルホストと論理的に等価なホストの名前である。 +そのホストにログインしているユーザは、パスワードなしで +ローカルホストの同じ名前のユーザアカウントにアカウントできる。 .I hostname -¤ÎÁ°¤Ë¤Ï¥×¥é¥¹µ­¹æ (+) ¤òÃÖ¤¤¤Æ¤â¤è¤¤¡£¥×¥é¥¹µ­¹æ¤¬Ã±ÆȤÇÃÖ¤«¤ì¤¿¾ì¹ç¤Ï¡¢ -¤³¤Î¥·¥¹¥Æ¥à¤Ø¤Î¥¢¥¯¥»¥¹¤ò¤¢¤é¤æ¤ë¥Û¥¹¥È¤ËÂФ·¤Æµö²Ä¤·¤¿¤³¤È¤Ë¤Ê¤ë¡£ -¥¢¥¯¥»¥¹¤òÌÀ¼¨Åª¤ËµñÈݤ¹¤ë¤Ë¤Ï¡¢ +の前にはプラス記号 (+) を置いてもよい。プラス記号が単独で置かれた場合は、 +このシステムへのアクセスをあらゆるホストに対して許可したことになる。 +アクセスを明示的に拒否するには、 .I hostname -¤ÎÁ°¤Ë¥Þ¥¤¥Ê¥¹µ­¹æ (\-) ¤òÉÕ¤±¤ë¡£¤½¤Î¥Û¥¹¥È¤«¤é¤Î¥æ¡¼¥¶¤Ï -¾ï¤Ë¥Ñ¥¹¥ï¡¼¥É¤òÍ׵ᤵ¤ì¤ë¡£¥»¥­¥å¥ê¥Æ¥£¾å¡¢¥Û¥¹¥È̾¤Ï -û¤¤Ì¾Á°¤Ç¤Ï¤Ê¤¯¾ï¤Ë FQDN ¤ò»È¤Ã¤Æ»ØÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£ +の前にマイナス記号 (\-) を付ける。そのホストからのユーザは +常にパスワードを要求される。セキュリティ上、ホスト名は +短い名前ではなく常に FQDN を使って指定すべきである。 .PP .\"O The \fIusername\fP entry grants a specific user access to all user .\"O accounts (except root) without supplying a password. @@ -64,41 +64,41 @@ .\"O This says that the user is not trusted no matter .\"O what other entries for that host exist. .I username -¥¨¥ó¥È¥ê¤Ï¡¢ÆÃÄê¤Î¥æ¡¼¥¶¤ËÂФ·¤Æ¡¢ (root °Ê³°¤Î) ¤¢¤é¤æ¤ë¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È -¤Ø¤Î¥¢¥¯¥»¥¹¤ò¥Ñ¥¹¥ï¡¼¥É¤Ê¤·¤Çµö²Ä¤¹¤ë¡£¤¹¤Ê¤ï¤Á¡¢¤½¤Î¥æ¡¼¥¶¤ÏƱ¤¸Ì¾Á°¤Î -¥¢¥«¥¦¥ó¥È°Ê³°¤Ë¤â¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ +エントリは、特定のユーザに対して、 (root 以外の) あらゆるユーザアカウント +へのアクセスをパスワードなしで許可する。すなわち、そのユーザは同じ名前の +アカウント以外にもアクセスできる。 .I username -¤ÎÁ°¤Ë¤Ï¥×¥é¥¹µ­¹æ (+) ¤òÃÖ¤¤¤Æ¤â¤è¤¤¡£ -ÆÃÄê¤Î¥æ¡¼¥¶¤«¤é¤Î¥¢¥¯¥»¥¹¤òÌÀ¼¨Åª¤ËµñÈݤ¹¤ë¤Ë¤Ï¡¢ +の前にはプラス記号 (+) を置いてもよい。 +特定のユーザからのアクセスを明示的に拒否するには、 .I username -¤ÎÁ°¤Ë¥Þ¥¤¥Ê¥¹µ­¹æ (\-) ¤òÉÕ¤±¤ë¡£¤³¤¦¤¹¤ë¤È¡¢ -¥Û¥¹¥È¤Î¥¨¥ó¥È¥ê¤¬¤Ê¤ó¤È¸À¤ª¤¦¤È¤â¡¢¤½¤Î¥æ¡¼¥¶¤Ï¿®Íꤵ¤ì¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¡£ +の前にマイナス記号 (\-) を付ける。こうすると、 +ホストのエントリがなんと言おうとも、そのユーザは信頼されないことになる。 .PP .\"O Netgroups can be specified by preceding the netgroup by an @ sign. -netgroup ¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¡¢¤½¤Î¾ì¹ç¤Ï @ µ­¹æ¤òÁ°¤Ë¤Ä¤±¤ë¡£ +netgroup を指定することもでき、その場合は @ 記号を前につける。 .PP .\"O Be extremely careful when using the plus (+) sign. .\"O A simple typographical .\"O error could result in a standalone plus sign. .\"O A standalone plus sign is .\"O a wildcard character that means "any host"! -¥×¥é¥¹µ­¹æ (+) ¤òÍøÍѤ¹¤ëºÝ¤Ë¤Ï¤¯¤ì¤°¤ì¤âÃí°Õ¤¹¤ë¤³¤È¡£ -ñ½ã¤Ê¥ß¥¹¥¿¥¤¥×¤Ç¡¢Ã±ÆȤΥץ饹µ­¹æ¤òÃÖ¤¤¤Æ¤·¤Þ¤¦¤³¤È¤¬¤¢¤ë¡£ -ñÆȤΥץ饹µ­¹æ¤Ï¡Ö¤¹¤Ù¤Æ¤Î¥Û¥¹¥È¡×¤òɽ¤¹¥ï¥¤¥ë¥É¥«¡¼¥É¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦! +プラス記号 (+) を利用する際にはくれぐれも注意すること。 +単純なミスタイプで、単独のプラス記号を置いてしまうことがある。 +単独のプラス記号は「すべてのホスト」を表すワイルドカードになってしまう! .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .I /etc/hosts.equiv .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Some systems will only honor the contents of this file when it has owner .\"O root and no write permission for anybody else. .\"O Some exceptionally .\"O paranoid systems even require that there be no other hard links to the file. -¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÆâÍƤ¬¸úÎϤò»ý¤Ä¤Î¤Ï¡¢ -¤³¤Î¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤¬ root ¤Ç¡¢ -¤«¤Ä¤½¤ì°Ê³°¤Ë½ñ¤­¹þ¤ß¸¢¸Â¤¬¤Ê¤¤¾ì¹ç¤Ë¸ÂÄꤵ¤ì¤Æ¤¤¤ë¤³¤È¤â¤¢¤ë¡£ -¤Þ¤¿¡¢Èó¾ï¤ËÀ©¸Â¤¬¤­¤Ä¤¤¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¾¤Î -¥Ï¡¼¥É¥ê¥ó¥¯¤¬¤Ê¤¤¤³¤È¤¬Í׵ᤵ¤ì¤ë¾ì¹ç¤â¤¢¤ë¡£ +システムによっては、このファイルの内容が効力を持つのは、 +このファイルの所有者が root で、 +かつそれ以外に書き込み権限がない場合に限定されていることもある。 +また、非常に制限がきついシステムでは、このファイルに対する他の +ハードリンクがないことが要求される場合もある。 .PP .\"O Modern systems use the Pluggable Authentication Modules library (PAM). .\"O With PAM a standalone plus sign is only considered a wildcard @@ -107,15 +107,15 @@ netgroup .\"O is added to the auth component line in your PAM file for .\"O the particular service .\"O .RB "(e.g., " rlogin ). -ºÇ¶á¤Î¥·¥¹¥Æ¥à¤Ç¤Ï Pluggable Authentication Modules library (PAM) ¤¬ -»È¤ï¤ì¤Æ¤¤¤ë¡£PAM ¤Ç¤Ï¡¢Ã±ÆȤΥץ饹µ­¹æ¤¬¡Ö¤¹¤Ù¤Æ¤Î¥Û¥¹¥È¡×¤òɽ¤¹ -¥ï¥¤¥ë¥É¥«¡¼¥É¤È¤·¤Æ°·¤ï¤ì¤ë¤Î¤Ï¡¢ÆÃÄê¤Î¥µ¡¼¥Ó¥¹ (Î㤨¤Ð +最近のシステムでは Pluggable Authentication Modules library (PAM) が +使われている。PAM では、単独のプラス記号が「すべてのホスト」を表す +ワイルドカードとして扱われるのは、特定のサービス (例えば .BR rlogin ) -ÍѤΠPAM ¥Õ¥¡¥¤¥ë¤Ç auth ¹Ô¤Ë¥­¡¼¥ï¡¼¥É +用の PAM ファイルで auth 行にキーワード .I promiscuous -¤¬Äɲ䵤ì¤Æ¤¤¤ë¾ì¹ç¤Î¤ß¤Ç¤¢¤ë¡£ +が追加されている場合のみである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR rhosts (5), .BR rlogind (8), .BR rshd (8) diff --git a/draft/man5/intro.5 b/draft/man5/intro.5 index 69978ce0..b0a74631 100644 --- a/draft/man5/intro.5 +++ b/draft/man5/intro.5 @@ -29,24 +29,24 @@ .\" .TH INTRO 5 2007-10-23 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O intro \- Introduction to file formats -intro \- ¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¾Ò²ð +intro \- ファイルフォーマットの紹介 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Section 5 of the manual describes various file formats and protocols, .\"O and the corresponding C structures, if any. -¥Þ¥Ë¥å¥¢¥ë¤Î 5 ¾Ï¤Ï¡¢³Æ¼ï¤Î¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¡¢¥×¥í¥È¥³¥ë¡¢ -(¤â¤·¤¢¤ì¤Ð) Âбþ¤¹¤ë C ¤Î¹½Â¤ÂΤˤĤ¤¤Æµ­ºÜ¤·¤Æ¤¤¤ë¡£ +マニュアルの 5 章は、各種のファイルフォーマット、プロトコル、 +(もしあれば) 対応する C の構造体について記載している。 .\"O .SH NOTES -.SH È÷¹Í +.SH 備考 .\"O .SS Authors and Copyright Conditions -.SS Ãø¼Ô¤ÈÃøºî¸¢ +.SS 著者と著作権 .\"O Look at the header of the manual page source for the author(s) and copyright .\"O conditions. .\"O Note that these can be different from page to page! -Ãøºî¼Ô¤È¸¢Íø¾ò·ï¤Ë´Ø¤·¤Æ¤Ï¡¢¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¥½¡¼¥¹¤Î¥Ø¥Ã¥À¤ò¸«¤è¡£ -¤³¤ì¤é¤Ï¥Ú¡¼¥¸¤´¤È¤Ë°Û¤Ê¤ë¾ì¹ç¤¬¤¢¤ë¤Î¤ÇÃí°Õ¤¹¤ë¤³¤È¡£ +著作者と権利条件に関しては、マニュアルページのソースのヘッダを見よ。 +これらはページごとに異なる場合があるので注意すること。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR standards (7) diff --git a/draft/man5/issue.5 b/draft/man5/issue.5 index 39e3e996..164cdfc7 100644 --- a/draft/man5/issue.5 +++ b/draft/man5/issue.5 @@ -31,11 +31,11 @@ .\" .TH ISSUE 5 1993-07-24 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O issue \- prelogin message and identification file -issue \- ¥í¥°¥¤¥óÁ°¤Ëɽ¼¨¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¤È¥·¥¹¥Æ¥à¾ðÊó¤Î¥Õ¥¡¥¤¥ë +issue \- ログイン前に表示されるメッセージとシステム情報のファイル .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The file \fI/etc/issue\fP is a text file which contains a message or .\"O system identification to be printed before the login prompt. .\"O It may contain various \fB@\fP\fIchar\fP and \fB\e\fP\fIchar\fP @@ -43,18 +43,18 @@ issue \- .\"O supported by the .\"O .BR getty -type .\"O program employed on the system. -\fI/etc/issue\fP¥Õ¥¡¥¤¥ë¤Ï¡¢¥í¥°¥¤¥ó¥×¥í¥ó¥×¥È¤ËÀè¤À¤Ã¤Æɽ¼¨¤µ¤ì¤ë¡¢ -¥á¥Ã¥»¡¼¥¸¤ä¥·¥¹¥Æ¥à¤Î¾ðÊ󤬽ñ¤«¤ì¤¿¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ -¥·¥¹¥Æ¥à¤ÇºÎÍѤµ¤ì¤Æ¤¤¤ë -.BR getty ·Ï¤Î -¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤Æ¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï \fB@\fP\fIchar\fP ¤ä \fB\e\fP\fIchar\fP ¤Ê¤É¤Î -¥·¡¼¥±¥ó¥¹¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤³¤È¤â¤¢¤ë¡£ +\fI/etc/issue\fPファイルは、ログインプロンプトに先だって表示される、 +メッセージやシステムの情報が書かれたテキストファイルである。 +システムで採用されている +.BR getty 系の +プログラムによってサポートされている場合、 +このファイルには \fB@\fP\fIchar\fP や \fB\e\fP\fIchar\fP などの +シーケンスが含まれていることもある。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル /etc/issue .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR motd (5), .BR agetty (8), .BR mingetty (8) diff --git a/draft/man5/locale.5 b/draft/man5/locale.5 index 220829ca..47c94864 100644 --- a/draft/man5/locale.5 +++ b/draft/man5/locale.5 @@ -31,47 +31,47 @@ .TH LOCALE 5 2008-06-17 "Linux" "Linux User Manual" .\"O .SH NAME .\"O locale \- Describes a locale definition file -.SH ̾Á° -locale \- ¥í¥±¡¼¥ëÄêµÁ¥Õ¥¡¥¤¥ë +.SH 名前 +locale \- ロケール定義ファイル .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .B locale .\"O definition files contains all the information that the .\"O .BR localedef (1) .\"O command needs to convert it into the binary locale database. -.B "¥í¥±¡¼¥ë (locale)" -ÄêµÁ¥Õ¥¡¥¤¥ë¤Ï +.B "ロケール (locale)" +定義ファイルは .BR localedef (1) -¥³¥Þ¥ó¥É¤¬¥Ð¥¤¥Ê¥ê¤Î¥í¥±¡¼¥ë¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÊÑ´¹¤¹¤ë¤Î¤Ë -ɬÍפÊÁ´¤Æ¤Î¾ðÊó¤ò´Þ¤ó¤Ç¤¤¤ë¡£ +コマンドがバイナリのロケール・データベースに変換するのに +必要な全ての情報を含んでいる。 .\"O The definition files consist of sections which each describe a .\"O locale category in detail. -ÄêµÁ¥Õ¥¡¥¤¥ë¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¥»¥¯¥·¥ç¥ó¤«¤é¹½À®¤µ¤ì¤Æ¤ª¤ê¡¢³Æ¥»¥¯¥·¥ç¥ó -¤Ë¤Ï¥í¥±¡¼¥ë¤Î¥«¥Æ¥´¥ê¤¬¾ÜºÙ¤Ëµ­½Ò¤µ¤ì¤ë¡£ +定義ファイルは、いくつかのセクションから構成されており、各セクション +にはロケールのカテゴリが詳細に記述される。 .\"O .SS Syntax -.SS ʸˡ +.SS 文法 .\"O The locale definition file starts with a header that may consist .\"O of the following keywords: -¥í¥±¡¼¥ëÄêµÁ¥Õ¥¡¥¤¥ë¤Ï°Ê²¼¤Î¥­¡¼¥ï¡¼¥É¤«¤é¹½À®¤µ¤ì¤ë¥Ø¥Ã¥À¡¼¤Ç»Ï¤Þ¤ë: +ロケール定義ファイルは以下のキーワードから構成されるヘッダーで始まる: .TP .I .\"O is followed by a character that should be used as the .\"O escape-character for the rest of the file to mark characters that .\"O should be interpreted in a special way. .\"O It defaults to the backslash (\\). -¥Õ¥¡¥¤¥ë¤Î»Ä¤ê¤ÎÉôʬ¤Ç¥¨¥¹¥±¡¼¥×¡¦¥­¥ã¥é¥¯¥¿¡¼¤È¤·¤Æ»ÈÍѤ¹¤ëʸ»ú¤ò -»ØÄꤹ¤ë¡£¤³¤ì¤ÏÆüì¤Ê°ÕÌ£¤Ë²ò¼á¤µ¤ì¤ëʸ»ú¤ò¥¨¥¹¥±¡¼¥×¤¹¤ë¤Î¤Ë»ÈÍѤ¹¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å (\\) ¤Ç¤¢¤ë¡£ +ファイルの残りの部分でエスケープ・キャラクターとして使用する文字を +指定する。これは特殊な意味に解釈される文字をエスケープするのに使用する。 +デフォルトはバックスラッシュ (\\) である。 .TP .I .\"O is followed by a character that will be used as the .\"O comment-character for the rest of the file. .\"O It defaults to the number sign (#). -¥Õ¥¡¥¤¥ë¤Î»Ä¤ê¤ÎÉôʬ¤Ç¥³¥á¥ó¥È¡¦¥­¥ã¥é¥¯¥¿¡¼¤È¤·¤Æ»ÈÍѤ¹¤ëʸ»ú -¤ò»ØÄꤹ¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥·¥ã¡¼¥× (#) ¤Ç¤¢¤ë¡£ +ファイルの残りの部分でコメント・キャラクターとして使用する文字 +を指定する。デフォルトではシャープ (#) である。 .PP .\"O The locale definition has one part for each locale category. .\"O Each part can be copied from another existing locale or @@ -80,11 +80,11 @@ locale \- .\"O the only valid keyword in the definition is .\"O .B copy .\"O followed by the name of the locale which should be copied. -¥í¥±¡¼¥ë¤ÎÄêµÁ¤Ï¥í¥±¡¼¥ë¤Î¥«¥Æ¥´¥êËè¤ÎÄêµÁ¤ò¹Ô¤¦Éôʬ¤«¤é¹½À®¤µ¤ì¤ë¡£ -³ÆÉôʬ¤Ï¡¢ÄêµÁºÑ¤ß¤Î¾¤Î¥í¥±¡¼¥ë¤Î¥³¥Ô¡¼¤ò¸µ¤ËÄêµÁ¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¤·¡¢ -ºÇ½é¤«¤éÄêµÁ¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£¥«¥Æ¥´¥ê¤ò¥³¥Ô¡¼¤¹¤ë¾ì¹ç¡¢ÄêµÁ¤ÎÃæ¤Ë +ロケールの定義はロケールのカテゴリ毎の定義を行う部分から構成される。 +各部分は、定義済みの他のロケールのコピーを元に定義することもできるし、 +最初から定義することもできる。カテゴリをコピーする場合、定義の中に .B copy -¤È¤¤¤¦¥­¡¼¥ï¡¼¥É¤Ë³¤±¤Æ¥³¥Ô¡¼¤¹¤ë¥í¥±¡¼¥ë¤Î̾Á°¤ò½ñ¤¯¡£ +というキーワードに続けてコピーするロケールの名前を書く。 .\" FIXME glibc 2.2.2 added new nonstandard locale categories: .\" LC_ADDRESS, LC_IDENTIFICATION, LC_MEASUREMENT, LC_NAME, .\" LC_PAPER, LC_TELEPHONE. @@ -97,12 +97,12 @@ locale \- .\"O in the first column. .SS LC_CTYPE .B LC_CTYPE -¥«¥Æ¥´¥ê¤ÎÄêµÁ¤ÏºÇ½é¤Î¥«¥é¥à¤Ë +カテゴリの定義は最初のカラムに .I LC_CTYPE -¤È¤¤¤¦Ê¸»úÎó¤òÃÖ¤¯¤³¤È¤Ç»Ï¤á¤ë¡£ +という文字列を置くことで始める。 .\"O There are the following keywords allowed: -¤³¤³¤Ç¤Ï°Ê²¼¤Î¥­¡¼¥ï¡¼¥É¤¬»ÈÍѤǤ­¤ë: +ここでは以下のキーワードが使用できる: .TP .\"O .I upper .\"O followed by a list of uppercase letters. @@ -119,16 +119,16 @@ locale \- .\"O .B space .\"O are not allowed. .I upper -Âçʸ»ú (uppercase letter) ¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£ +大文字 (uppercase letter) のリストを指定する。 .B A -¤«¤é +から .B Z -¤Þ¤Ç¤Îʸ»ú¤Ï¼«Æ°Åª¤Ë´Þ¤Þ¤ì¤ë¡£ +までの文字は自動的に含まれる。 .BR cntrl , .BR digit , .BR punct , .B space -¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +に指定された文字を指定することはできない。 .TP .\"O .I lower .\"O followed by a list of lowercase letters. @@ -145,16 +145,16 @@ locale \- .\"O .B space .\"O are not allowed. .I lower -¾®Ê¸»ú (lowercase letter) ¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£ +小文字 (lowercase letter) のリストを指定する。 .B a -¤«¤é +から .B z -¤Þ¤Ç¤Îʸ»ú¤Ï¼«Æ°Åª¤Ë´Þ¤Þ¤ì¤ë¡£ +までの文字は自動的に含まれる。 .BR cntrl , .BR digit , .BR punct , .B space -¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +に指定された文字を指定することはできない。 .TP .\"O .I alpha .\"O followed by a list of letters. @@ -171,16 +171,16 @@ locale \- .\"O .B space .\"O are not allowed. .I alpha -¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Îʸ»ú¤ò»ØÄꤹ¤ë¡£ +アルファベットの文字を指定する。 .B upper -¤È +と .B lower -¤ò»ØÄꤷ¤¿Á´¤Æ¤Îʸ»ú¤Ï¼«Æ°Åª¤Ë´Þ¤Þ¤ì¤ë¡£ +を指定した全ての文字は自動的に含まれる。 .BR cntrl , .BR digit , .BR punct , .B space -¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +に指定された文字を指定することはできない。 .TP .\"O .I digit .\"O followed by the characters classified as numeric digits. @@ -192,11 +192,11 @@ locale \- .\"O are allowed. .\"O They are included by default in this class. .I digit -¿ô»ú¤È¤·¤Æ»ÈÍѤµ¤ì¤ëʸ»ú¤ò»ØÄꤹ¤ë¡£¿ô»ú¤È¤·¤Æ¤Ï +数字として使用される文字を指定する。数字としては .B 0 -¤«¤é +から .B 9 -¤Î¤ß¤¬»ÈÍѤǤ­¤ë¡£¤³¤ì¤é¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +のみが使用できる。これらはデフォルトで含まれている。 .TP .\"O .I space .\"O followed by a list of characters defined as white-space @@ -220,21 +220,21 @@ locale \- .\"O .B .\"O are automatically included. .I space -¶õÇò¤È¤·¤Æ»ÈÍѤ¹¤ëʸ»ú¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£ +空白として使用する文字のリストを指定する。 .BR upper , .BR lower , .BR alpha , .BR digit , .BR graph , .B xdigit -¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +に指定された文字を指定することはできない。 .BR , .BR , .BR , .BR , .BR , .B -¤Ï¼«Æ°Åª¤Ë´Þ¤Þ¤ì¤ë¡£ +は自動的に含まれる。 .TP .\"O .I cntrl .\"O followed by a list of control characters. @@ -250,7 +250,7 @@ locale \- .\"O .B xdigit .\"O are not allowed. .I cntrl -¥³¥ó¥È¥í¡¼¥ë¡¦¥­¥ã¥é¥¯¥¿¡¼¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£ +コントロール・キャラクターのリストを指定する。 .BR upper , .BR lower , .BR alpha , @@ -259,7 +259,7 @@ locale \- .BR graph , .BR print , .B xdigit -¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +に指定された文字を指定することはできない。 .TP .\"O .I punct .\"O followed by a list of punctuation characters. @@ -275,7 +275,7 @@ locale \- .\"O .B .\"O character are not allowed. .I punct -¶çÆÉÅÀʸ»ú¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£ +句読点文字のリストを指定する。 .BR upper , .BR lower , .BR alpha , @@ -283,7 +283,7 @@ locale \- .BR cntrl , .BR xdigit , .B -¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +に指定された文字を指定することはできない。 .TP .\"O .I graph .\"O followed by a list of printable characters, not including the @@ -302,18 +302,18 @@ locale \- .\"O .B cntrl .\"O are not allowed. .I graph -ɽ¼¨²Äǽʸ»ú¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë¤¬¡¢ +表示可能文字のリストを指定するが、 .B -ʸ»ú¤Ï´Þ¤Þ¤Ê¤¤¡£ +文字は含まない。 .BR upper , .BR lower , .BR alpha , .BR digit , .BR xdigit , .B punct -¤ò»ØÄꤷ¤¿Ê¸»ú¤Ï¼«Æ°Åª¤Ë´Þ¤Þ¤ì¤ë¡£ +を指定した文字は自動的に含まれる。 .B cntrl -¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +に指定された文字を指定することはできない。 .TP .\"O .I print .\"O followed by a list of printable characters, including the @@ -334,7 +334,7 @@ locale \- .\"O are not allowed. .I print .B -ʸ»ú¤ò´Þ¤á¤¿É½¼¨²Äǽʸ»ú¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£ +文字を含めた表示可能文字のリストを指定する。 .BR upper , .BR lower , .BR alpha , @@ -342,9 +342,9 @@ locale \- .BR xdigit , .BR punct , .B -¤Ë»ØÄꤷ¤¿Ê¸»ú¤Ï¼«Æ°Åª¤Ë´Þ¤Þ¤ì¤ë¡£ +に指定した文字は自動的に含まれる。 .B cntrl -¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +に指定された文字を指定することはできない。 .TP .\"O .I xdigit .\"O followed by a list of characters classified as hexadecimal @@ -363,17 +363,17 @@ locale \- .\"O through .\"O .BR F . .I xdigit -16 ¿Ê¿ô¤È¤·¤Æ»ÈÍѤ¹¤ëʸ»ú¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£10 ¿Ê¤Î¿ô»ú¤Ë²Ã¤¨¤Æ¡¢ -6 ʸ»ú¤ò¾º½ç¤Ç³¤±¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï°Ê²¼¤Îʸ»ú¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë: +16 進数として使用する文字のリストを指定する。10 進の数字に加えて、 +6 文字を昇順で続ける。デフォルトでは以下の文字が含まれている: .B 0 -¤«¤é -.BR 9 ¡¢ +から +.BR 9 、 .B a -¤«¤é -.BR f ¡¢ +から +.BR f 、 .B A -¤«¤é -.BR F ¡£ +から +.BR F 。 .TP .\"O .I blank .\"O followed by a list of characters classified as @@ -384,12 +384,12 @@ locale \- .\"O .B .\"O are automatically included. .I blank -.B "̵ÃÏ (blank)" -¤ËʬÎव¤ì¤ëʸ»ú¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£ +.B "無地 (blank)" +に分類される文字のリストを指定する。 .B -¤È +と .B -¤Ï¼«Æ°Åª¤Ë´Þ¤Þ¤ì¤ë¡£ +は自動的に含まれる。 .TP .\"O .I toupper .\"O followed by a list of mappings from lowercase to uppercase @@ -401,10 +401,10 @@ locale \- .\"O The members of the list are separated .\"O with semicolons. .I toupper -¾®Ê¸»ú¤«¤éÂçʸ»ú¤Ø¤ÎÂбþ¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£³ÆÂбþ¤Ï¾®Ê¸»ú¤ÈÂçʸ»ú¤Î¥Ú¥¢¤ò +小文字から大文字への対応リストを指定する。各対応は小文字と大文字のペアを .B , -¤Ç¶èÀڤäƳç¸Ì¤Ç³ç¤Ã¤Æ»ØÄꤹ¤ë¡£ -¥ê¥¹¥È¤Î³Æ¥á¥ó¥Ð¡¼¤Ï¥»¥ß¥³¥í¥ó¤Ç¶èÀڤ롣 +で区切って括弧で括って指定する。 +リストの各メンバーはセミコロンで区切る。 .TP .\"O .I tolower .\"O followed by a list of mappings from uppercase to lowercase @@ -412,17 +412,17 @@ locale \- .\"O If the keyword tolower is not present, the reverse of the .\"O toupper list is used. .I tolower -Âçʸ»ú¤«¤é¾®Ê¸»ú¤Ø¤ÎÂбþ¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£tolower ¤È¤¤¤¦ -¥­¡¼¥ï¡¼¥É¤¬Ìµ¤¤¾ì¹ç¤Ë¤Ï toupper ¤òµÕ¤Ë¤·¤¿¤â¤Î¤¬»ÈÍѤµ¤ì¤ë¡£ +大文字から小文字への対応リストを指定する。tolower という +キーワードが無い場合には toupper を逆にしたものが使用される。 .PP .\"O The .\"O .B LC_CTYPE .\"O definition ends with the string .\"O .IR "END LC_CYTPE" . .B LC_CTYPE -¤ÎÄêµÁ¤Ï +の定義は .I "END LC_CYTPE" -¤È¤¤¤¦Ê¸»úÎó¤Ç½ªÎ»¤¹¤ë¡£ +という文字列で終了する。 .\"O .SS LC_COLLATE .\"O The .\"O .B LC_COLLATE @@ -431,18 +431,18 @@ locale \- .\"O limitations of libc not all POSIX-options are implemented. .SS LC_COLLATE .B LC_COLLATE -¥«¥Æ¥´¥ê¤ÏÀ°Îó½ç½ø¤òÄêµÁ¤·¤Æ¤¤¤ë¡£libc ¤Ë¤è¤ëÀ©¸Â¤Î¤¿¤á -POSIX ¥ª¥×¥·¥ç¥ó¤ÎÁ´¤Æ¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ +カテゴリは整列順序を定義している。libc による制限のため +POSIX オプションの全てが実装されているわけではない。 .\"O The definition starts with the string .\"O .B LC_COLLATE .\"O in the first column. -¤³¤Î¥«¥Æ¥´¥ê¤ÎÄêµÁ¤ÏºÇ½é¤Î¥«¥é¥à¤Ë +このカテゴリの定義は最初のカラムに .B LC_COLLATE -¤òÃÖ¤¯¤³¤È¤Ç»Ï¤á¤ë¡£ +を置くことで始める。 .\"O There are the following keywords allowed: -¤³¤³¤Ç¤Ï°Ê²¼¤Î¥­¡¼¥ï¡¼¥É¤¬»ÈÍѤǤ­¤ë: +ここでは以下のキーワードが使用できる: .TP .I collating-element .TP @@ -461,16 +461,16 @@ POSIX .\"O and is terminated with the keyword .\"O .TP .\"O .IR order_end . -½ç½ø¤ÎÄêµÁ¤Ï°Ê²¼¤Î¹Ô¤Ç»Ï¤á¤ë: +順序の定義は以下の行で始める: .TP .I order_start .PP -¤³¤ì¤Ë +これに .BR forward , .BR backward , .B position -¤Î¤¤¤º¤ì¤«¤Î¥­¡¼¥ï¡¼¥É¤¬Â³¤¯¡£ -½ç½ø¤òµ­½Ò¤¹¤ë¹Ô¤¬Â³¤­¡¢°Ê²¼¤Î¥­¡¼¥ï¡¼¥É¤Ç½ª¤ë: +のいずれかのキーワードが続く。 +順序を記述する行が続き、以下のキーワードで終る: .TP .I order_end .PP @@ -481,36 +481,36 @@ POSIX .\"O .B Example .\"O and .\"O .B Example2 -¤è¤ê¾Ü¤·¤¯¤Ï +より詳しくは .I /usr/lib/nls/src -¤Ë¤¢¤ë¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤ò»²¾È¤Î¤³¤È¡£ÆÃ¤Ë +にあるソース・ファイルを参照のこと。特に .B POSIX -¤ÎÎã¡¢ +の例、 .B Example -¤È +と .B Example2 -¤ò¸«¤ë¤È¤è¤¤¡£ +を見るとよい。 .PP .\"O The .\"O .B LC_COLLATE .\"O definition ends with the string .\"O .IR "END LC_COLLATE" . .B LC_COLLATE -ÄêµÁ¤Ï +定義は .I "END LC_COLLATE" -¤È¤¤¤¦Ê¸»úÎó¤Ç½ªÎ»¤¹¤ë¡£ +という文字列で終了する。 .\"O .SS LC_MONETARY .\"O The definition starts with the string .\"O .B LC_MONETARY .\"O in the first column. .SS LC_MONETARY .B LC_MONETARY -¤ÎÄêµÁ¤ÏºÇ½é¤Î¥«¥é¥à¤Ë +の定義は最初のカラムに .B LC_MONETARY -¤òÃÖ¤¯¤³¤È¤Ç»Ï¤á¤ë¡£ +を置くことで始める。 .\"O There are the following keywords allowed: -¤³¤³¤Ç¤Ï°Ê²¼¤Î¥­¡¼¥ï¡¼¥É¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë: +ここでは以下のキーワードを使うことができる: .TP .\"O .I int_curr_symbol .\"O followed by the international currency symbol. @@ -519,43 +519,43 @@ POSIX .\"O defined by the ISO 4217 standard (three characters) followed by a .\"O separator. .I int_curr_symbol -¹ñºÝÄ̲ߵ­¹æ¤ò»ØÄꤹ¤ë¡£¤³¤ì¤Ï ISO 4217 µ¬³Ê¤ËÄêµÁ¤µ¤ì¤¿¹ñºÝÄÌ²ß -µ­¹æ (3 ʸ»ú) ¤Ë¶èÀÚ¤êʸ»ú¤ò³¤±¤¿ 4 ʸ»ú¤Ç¤¢¤ëɬÍפ¬¤¢¤ë¡£ +国際通貨記号を指定する。これは ISO 4217 規格に定義された国際通貨 +記号 (3 文字) に区切り文字を続けた 4 文字である必要がある。 .TP .\"O .I currency_symbol .\"O followed by the local currency symbol. .I currency_symbol -ÃÏ°èŪ¤ÊÄ̲ߵ­¹æ¤ò»ØÄꤹ¤ë¡£ +地域的な通貨記号を指定する。 .TP .\"O .I mon_decimal_point .\"O followed by the string that will be used as the decimal delimiter .\"O when formatting monetary quantities. .I mon_decimal_point -¶â³Û¤ò¥Õ¥©¡¼¥Þ¥Ã¥È¤¹¤ëºÝ¤Î¾®¿ôÅÀ¤Ë»ÈÍѤ¹¤ëʸ»úÎó¤ò»ØÄꤹ¤ë¡£ +金額をフォーマットする際の小数点に使用する文字列を指定する。 .TP .\"O .I mon_thousands_sep .\"O followed by the string that will be used as a group separator .\"O when formatting monetary quantities. .I mon_thousands_sep -¶â³Û¤ò¥Õ¥©¡¼¥Þ¥Ã¥È¤¹¤ëºÝ¤Ë·å¤Î¶èÀÚ¤ê¤Ë»ÈÍѤ¹¤ëʸ»úÎó¤ò»ØÄꤹ¤ë¡£ +金額をフォーマットする際に桁の区切りに使用する文字列を指定する。 .TP .\"O .I mon_grouping .\"O followed by a string that describes the formatting of numeric .\"O quantities. .I mon_grouping -¿ô»ú¤ò¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¤¹¤ëºÝ¤Ë²¿·å¤´¤È¤Ë¶èÀڤ뤫¤ò»ØÄꤹ¤ë¡£ +数字をフォーマットをする際に何桁ごとに区切るかを指定する。 .TP .\"O .I positive_sign .\"O followed by a string that is used to indicate a positive sign for .\"O monetary quantities. .I positive_sign -¿ôÃͤˤª¤¤¤ÆÀµ¤ÎÉä¹æ¤Ë»ÈÍѤ¹¤ëʸ»úÎó¤ò»ØÄꤹ¤ë¡£ +数値において正の符号に使用する文字列を指定する。 .TP .\"O .I negative_sign .\"O followed by a string that is used to indicate a negative sign for .\"O monetary quantities. .I negative_sign -¿ôÃͤˤª¤¤¤ÆÉé¤ÎÉä¹æ¤Ë»ÈÍѤ¹¤ëʸ»úÎó¤ò»ØÄꤹ¤ë¡£ +数値において負の符号に使用する文字列を指定する。 .TP .\"O .I int_frac_digits .\"O followed by the number of fractional digits that should be used when @@ -563,7 +563,7 @@ POSIX .\"O .BR int_curr_symbol . .I int_frac_digits .B int_curr_symbol -¤Ç¥Õ¥©¡¼¥Þ¥Ã¥È¤¹¤ë»þ¤Ë»ÈÍѤ¹¤Ù¤­Ã¼¿ô¤Î·å¿ô¤ò»ØÄꤹ¤ë¡£ +でフォーマットする時に使用すべき端数の桁数を指定する。 .TP .\"O .I frac_digits .\"O followed by the number of fractional digits that should be used when @@ -571,7 +571,7 @@ POSIX .\"O .BR currency_symbol . .I frac_digits .B currency_symbol -¤Ç¥Õ¥©¡¼¥Þ¥Ã¥È¤¹¤ëºÝ¤Ë»ÈÍѤ¹¤Ù¤­Ã¼¿ô¤Î·å¿ô¤ò»ØÄꤹ¤ë¡£ +でフォーマットする際に使用すべき端数の桁数を指定する。 .TP .\"O .I p_cs_precedes .\"O followed by an integer set to @@ -585,13 +585,13 @@ POSIX .\"O if the symbol succeeds the value. .I p_cs_precedes .I currency_symbol -¤Þ¤¿¤Ï +または .I int_curr_symbol -¤ò¥Õ¥©¡¼¥Þ¥Ã¥È¤·¤¿¶â³Û¤ÎÁ°¤ËÉÕ¤±¤ë¾ì¹ç¤Ë¤Ï +をフォーマットした金額の前に付ける場合には .B 1 -¤ò¡¢¸å¤í¤ËÉÕ¤±¤ë¾ì¹ç¤Ë¤Ï +を、後ろに付ける場合には .B 0 -¤ò»ØÄꤹ¤ë¡£ +を指定する。 .TP .\"O .I p_sep_by_space .\"O followed by an integer. @@ -610,17 +610,17 @@ POSIX .\"O sign string, if adjacent. .\"O .RE .I p_sep_by_space -°Ê²¼¤ÎÀ°¿ô¤Î¤¤¤º¤ì¤«¤ò»ØÄꤹ¤ë¡£ +以下の整数のいずれかを指定する。 .RS .TP .B 0 -µ­¹æ¤È¿ôÃͤδ֤˶õÇò¤òÆþ¤ì¤Ê¤¤¡£ +記号と数値の間に空白を入れない。 .TP .B 1 -µ­¹æ¤È¿ôÃͤδ֤˶õÇò¤òÆþ¤ì¤ë¡£ +記号と数値の間に空白を入れる。 .TP .B 2 -µ­¹æ¤È¿ôÃͤ¬ÎÙÀܤ·¤Æ¤¤¤ì¤Ð´Ö¤Ë¶õÇò¤òÆþ¤ì¤ë¡£ +記号と数値が隣接していれば間に空白を入れる。 .RE .TP .\"O .I n_cs_precedes @@ -636,10 +636,10 @@ POSIX .RS .TP .B 0 -- µ­¹æ¤Ï¿ôÃͤθå¤Ë¤ª¤¯¡£ +- 記号は数値の後におく。 .TP .B 1 -- µ­¹æ¤Ï¿ôÃͤÎÁ°¤Ë¤ª¤¯¡£ +- 記号は数値の前におく。 .RE .TP .\"O .I n_sep_by_space @@ -655,20 +655,20 @@ POSIX .\"O .B 2 .\"O if a space separates the symbol and the sign string, if adjacent. .I n_sep_by_space -°Ê²¼¤ÎÀ°¿ô¤Î¤¤¤º¤ì¤«¤ò»ØÄꤹ¤ë¡£ +以下の整数のいずれかを指定する。 .RS .TP .B 0 .I currency_symbol -¤Þ¤¿¤Ï +または .I int_curr_symbol -¤ÈÉé¤Î¶â³Û¤È¤Î´Ö¤Ë¶õÇò¤òÆþ¤ì¤Ê¤¤¡£ +と負の金額との間に空白を入れない。 .TP .B 1 -Éé¤Î¿ôÃͤȵ­¹æ¤Î´Ö¤Ë¶õÇò¤òÆþ¤ì¤ë¡£ +負の数値と記号の間に空白を入れる。 .TP .B 2 -ÎÙÀܤ·¤Æ¤¤¤¿¾ì¹ç¤Ë¤Î¤ß¶õÇò¤òÆþ¤ì¤ë¡£ +隣接していた場合にのみ空白を入れる。 .RE .TP .I p_sign_posn @@ -680,11 +680,11 @@ POSIX .\"O or .\"O .IR int_curr_symbol . .B 0 -ÃÍ¤È +値と .I currency_symbol -¤Þ¤¿¤Ï +または .I int_curr_symbol -¤ò³ç¸Ì¤Ç³ç¤ë¡£ +を括弧で括る。 .TP .\"O .B 1 .\"O The sign string precedes the quantity and the @@ -692,11 +692,11 @@ POSIX .\"O or the .\"O .IR int_curr_symbol . .B 1 -Éä¹æ¤òÃÍ¤È +符号を値と .I currency_symbol -¤Þ¤¿¤Ï +または .I int_curr_symbol -¤ÎÁ°¤ËÃÖ¤¯¡£ +の前に置く。 .TP .\"O .B 2 .\"O The sign string succeeds the quantity and the @@ -704,11 +704,11 @@ POSIX .\"O or the .\"O .IR int_curr_symbol . .B 2 -Éä¹æ¤òÃÍ¤È +符号を値と .I currency_symbol -¤Þ¤¿¤Ï +または .I int_curr_symbol -¤Î¸å¤ËÃÖ¤¯¡£ +の後に置く。 .TP .\"O .B 3 .\"O The sign string precedes the @@ -716,11 +716,11 @@ POSIX .\"O or the .\"O .IR int_curr_symbol . .B 3 -Éä¹æ¤ò +符号を .I currency_symbol -¤Þ¤¿¤Ï +または .I int_curr_symbol -¤ÎÁ°¤ËÃÖ¤¯¡£ +の前に置く。 .TP .\"O .B 4 .\"O The sign string succeeds the @@ -728,11 +728,11 @@ POSIX .\"O or the .\"O .IR int_curr_symbol . .B 4 -Éä¹æ¤ò +符号を .I currency_symbol -¤Þ¤¿¤Ï +または .I int_curr_symbol -¤Î¸å¤ËÃÖ¤¯¡£ +の後に置く。 .RE .TP .I n_sign_posn @@ -744,11 +744,11 @@ POSIX .\"O or .\"O .IR int_curr_symbol . .B 0 -ÃÍ¤È +値と .I currency_symbol -¤Þ¤¿¤Ï +または .I int_curr_symbol -¤ò³ç¸Ì¤Ç³ç¤ë¡£ +を括弧で括る。 .TP .\"O .B 1 .\"O The sign string precedes the quantity and the @@ -756,11 +756,11 @@ POSIX .\"O or the .\"O .IR int_curr_symbol . .B 1 -Éä¹æ¤òÃÍ¤È +符号を値と .I currency_symbol -¤Þ¤¿¤Ï +または .I int_curr_symbol -¤ÎÁ°¤ËÃÖ¤¯¡£ +の前に置く。 .TP .\"O .B 2 .\"O The sign string succeeds the quantity and the @@ -768,11 +768,11 @@ POSIX .\"O or the .\"O .IR int_curr_symbol . .B 2 -Éä¹æ¤òÃÍ¤È +符号を値と .I currency_symbol -¤Þ¤¿¤Ï +または .I int_curr_symbol -¤Î¸å¤ËÃÖ¤¯¡£ +の後に置く。 .TP .\"O .B 3 .\"O The sign string precedes the @@ -780,11 +780,11 @@ POSIX .\"O or the .\"O .IR int_curr_symbol . .B 3 -Éä¹æ¤ò +符号を .I currency_symbol -¤Þ¤¿¤Ï +または .I int_curr_symbol -¤ÎÁ°¤ËÃÖ¤¯¡£ +の前に置く。 .TP .\"O .B 4 .\"O The sign string succeeds the @@ -792,11 +792,11 @@ POSIX .\"O or the .\"O .IR int_curr_symbol . .B 4 -Éä¹æ¤ò +符号を .I currency_symbol -¤Þ¤¿¤Ï +または .I int_curr_symbol -¤Î¸å¤ËÃÖ¤¯¡£ +の後に置く。 .RE .PP .\"O The @@ -804,38 +804,38 @@ POSIX .\"O definition ends with the string .\"O .IR "END LC_MONETARY" . .B LC_MONETARY -¤ÎÄêµÁ¤Ï +の定義は .I "END LC_MONETARY" -¤È¤¤¤¦Ê¸»úÎó¤Ç½ªÎ»¤¹¤ë¡£ +という文字列で終了する。 .\"O .SS LC_NUMERIC .\"O The definition starts with the string .\"O .B LC_NUMERIC .\"O in the first column. .SS LC_NUMERIC -¤³¤Î¥«¥Æ¥´¥ê¤ÎÄêµÁ¤ÏºÇ½é¤Î¥«¥é¥à¤Ë +このカテゴリの定義は最初のカラムに .B LC_NUMERIC -¤È¤¤¤¦Ê¸»úÎó¤òÃÖ¤¯¤³¤È¤Ç»Ï¤á¤ë¡£ +という文字列を置くことで始める。 .\"O The following keywords are allowed: -¤³¤³¤Ç¤Ï°Ê²¼¤Î¥­¡¼¥ï¡¼¥É¤ò»ÈÍѤǤ­¤ë: +ここでは以下のキーワードを使用できる: .TP .\"O .I decimal_point .\"O followed by the string that will be used as the decimal delimiter .\"O when formatting numeric quantities. .I decimal_point -¿ôÃͤò¥Õ¥©¡¼¥Þ¥Ã¥È¤¹¤ëºÝ¤Ë¾®¿ôÅÀ¤Ë»ÈÍѤ¹¤ëʸ»úÎó¤ò»ØÄꤹ¤ë¡£ +数値をフォーマットする際に小数点に使用する文字列を指定する。 .TP .\"O .I thousands_sep .\"O followed by the string that will be used as a group separator .\"O when formatting numeric quantities. .I thousands_sep -¿ôÃͤò¥Õ¥©¡¼¥Þ¥Ã¥È¤¹¤ëºÝ¤Ë·å¤Î¶èÀÚ¤ê¤Ë»ÈÍѤ¹¤ëʸ»úÎó¤ò»ØÄꤹ¤ë¡£ +数値をフォーマットする際に桁の区切りに使用する文字列を指定する。 .TP .\"O .I grouping .\"O followed by a string that describes the formatting of numeric .\"O quantities. .I grouping -¿ôÃͤò¥Õ¥©¡¼¥Þ¥Ã¥È¤¹¤ëºÝ¤Ë²¿·å¤´¤È¤Ë¶èÀڤ뤫¤òʸ»úÎó¤Ç»ØÄꤹ¤ë¡£ +数値をフォーマットする際に何桁ごとに区切るかを文字列で指定する。 .PP .\"O The .\"O .B LC_NUMERIC @@ -843,20 +843,20 @@ POSIX .\"O .IR "END LC_NUMERIC" . The .B LC_NUMERIC -¤ÎÄêµÁ¤Ï +の定義は .I "END LC_NUMERIC" -¤È¤¤¤¦Ê¸»úÎó¤Ç½ªÎ»¤¹¤ë¡£ +という文字列で終了する。 .\"O .SS LC_TIME .\"O The definition starts with the string .\"O .B LC_TIME .\"O in the first column. .SS LC_TIME -¤³¤Î¥«¥Æ¥´¥ê¤ÎÄêµÁ¤ÏºÇ½é¤Î¥«¥é¥à¤Ë +このカテゴリの定義は最初のカラムに .B LC_TIME -¤È¤¤¤¦Ê¸»úÎó¤òÃÖ¤¯¤³¤È¤Ç»Ï¤á¤ë¡£ +という文字列を置くことで始める。 .\"O The following keywords are allowed: -¤³¤³¤Ç¤Ï°Ê²¼¤Î¥­¡¼¥ï¡¼¥É¤¬»ÈÍѤǤ­¤ë: +ここでは以下のキーワードが使用できる: .TP .\"O .I abday .\"O followed by a list of abbreviated weekday names. @@ -865,10 +865,10 @@ The .\"O .I week .\"O (Sunday by default). .I abday -ÍËÆü¤Î̾Á°¤Î¾Êά·Á¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£ -¥ê¥¹¥È¤Ï +曜日の名前の省略形のリストを指定する。 +リストは .I week -¤Ç»ØÄꤵ¤ì¤¿½µ¤Î³«»ÏÍËÆü (¥Ç¥Õ¥©¥ë¥È¤Ç¤ÏÆüÍËÆü) ¤«¤é»Ï¤á¤ë¡£ +で指定された週の開始曜日 (デフォルトでは日曜日) から始める。 .TP .\"O .I day .\"O followed by a list of weekday names. @@ -877,20 +877,20 @@ The .\"O .I week .\"O (Sunday by default). .I day -ÍËÆü¤Î̾Á°¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£ -¥ê¥¹¥È¤Ï +曜日の名前のリストを指定する。 +リストは .I week -¤Ç»ØÄꤵ¤ì¤¿½µ¤Î³«»ÏÍËÆü (¥Ç¥Õ¥©¥ë¥È¤Ç¤ÏÆüÍËÆü) ¤«¤é»Ï¤á¤ë¡£ +で指定された週の開始曜日 (デフォルトでは日曜日) から始める。 .TP .\"O .I abmon .\"O followed by a list of abbreviated month names. .I abmon -·î¤Î̾Á°¤Î¾Êά·Á¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£ +月の名前の省略形のリストを指定する。 .TP .\"O .I mon .\"O followed by a list of month names. .I mon -·î¤Î̾Á°¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£ +月の名前のリストを指定する。 .TP .\"O .I am_pm .\"O The appropriate representation of the @@ -899,41 +899,41 @@ The .\"O .B pm .\"O strings. .I am_pm -¤½¤ì¤¾¤ì -.B "¸áÁ° (am)" -¤È -.B "¸á¸å (pm)" -¤ËÂбþ¤¹¤ëʸ»úÎó¤ò»ØÄꤹ¤ë¡£ +それぞれ +.B "午前 (am)" +と +.B "午後 (pm)" +に対応する文字列を指定する。 .TP .\"O .I d_t_fmt .\"O The appropriate date and time format. .I d_t_fmt -ŬÀÚ¤ÊÆüÉÕ¤± (date) ¤È»þ¹ï (time) ¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»ØÄꤹ¤ë¡£ +適切な日付け (date) と時刻 (time) のフォーマットを指定する。 .TP .\"O .I d_fmt .\"O The appropriate date format. .I d_fmt -ŬÀÚ¤ÊÆüÉÕ¤± (date) ¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»ØÄꤹ¤ë¡£ +適切な日付け (date) のフォーマットを指定する。 .TP .\"O .I t_fmt .\"O The appropriate time format. .I t_fmt -ŬÀڤʻþ¹ï (time) ¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»ØÄꤹ¤ë¡£ +適切な時刻 (time) のフォーマットを指定する。 .TP .\"O .I t_fmt_ampm .\"O The appropriate time format when using 12h clock format. .I t_fmt_ampm -12 »þ´ÖÊý¼°¤ò»ÈÍѤ·¤¿»þ¹ï¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»ØÄꤹ¤ë¡£ +12 時間方式を使用した時刻のフォーマットを指定する。 .TP .I week .\"O followed by a list of three values: .\"O The number of days in a week (by default 7), .\"O a date of beginning of the week (by default corresponds to Sunday), .\"O and the minimal length of the first week in year (by default 4). -3 ¤Ä¤ÎÃͤ«¤é¤Ê¤ë¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£ -¥ê¥¹¥È¤Ï¡¢°ì½µ´Ö¤ÎÆü¿ô (¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï 7)¡¢ -½µ¤Î³«»ÏÍËÆü (¥Ç¥Õ¥©¥ë¥È¤Ç¤ÏÆüÍˤËÂбþ)¡¢ -°ìǯ¤ÎºÇ½é¤Î½µ¤ÎºÇ¾®¤ÎŤµ (¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï 4) ¤«¤é¹½À®¤µ¤ì¤ë¡£ +3 つの値からなるリストを指定する。 +リストは、一週間の日数 (デフォルトでは 7)、 +週の開始曜日 (デフォルトでは日曜に対応)、 +一年の最初の週の最小の長さ (デフォルトでは 4) から構成される。 .\"O Regarding the start of the week, .\"O .B 19971130 .\"O shall be used for Sunday and @@ -949,20 +949,20 @@ The .\"O should have Monday translation as the first item in the .\"O .I day .\"O list. -½µ¤Î³«»ÏÍËÆü¤Ë¤Ä¤¤¤Æ¤Ï¡¢½µ¤Î³«»ÏÆü¤¬ÆüÍËÆü¤Î¾ì¹ç¤Ë¤Ï +週の開始曜日については、週の開始日が日曜日の場合には .B 19971130 -¤ò¡¢·îÍËÆü¤Î¾ì¹ç¤Ë¤Ï +を、月曜日の場合には .B 19971201 -¤ò»ÈÍѤ¹¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢ +を使用する。したがって、 .I day -¥ê¥¹¥È¤ÎºÇ½é¤ÎÆü¤È¤·¤Æ¡¢ +リストの最初の日として、 .B 19971130 -¤ò»È¤¦¹ñ¤Ç¤Ï¤½¤ÎÃÏ°è¤ÎÆüÍËÆü¤Î̾Á°¤ò¡¢ +を使う国ではその地域の日曜日の名前を、 .B 19971201 -¤ò»È¤¦¹ñ¤Ç¤Ï¤½¤ÎÃÏ°è¤Î·îÍËÆü¤Î̾Á°¤òÀßÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£ +を使う国ではその地域の月曜日の名前を設定すべきである。 .TP .\"O .IR first_weekday " (since glibc 2.2)" -.IR first_weekday " (glibc 2.2 °Ê¹ß)" +.IR first_weekday " (glibc 2.2 以降)" .\"O Number of the first day from the .\"O .I day .\"O list to be shown in calendar applications. @@ -972,42 +972,42 @@ The .\"O on the value of the second .\"O .I week .\"O list item. -¥«¥ì¥ó¥À¡¼¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÇºÇ½é¤Ëɽ¼¨¤¹¤ëÍËÆü¤Î +カレンダーアプリケーションで最初に表示する曜日の .I day -¥ê¥¹¥È¤Ë¤ª¤±¤ëÈֹ档 -¥Ç¥Õ¥©¥ë¥ÈÃͤΠ1 ¤ÏÆüÍËÆü¤«·îÍËÆü¤ËÂбþ¤¹¤ë¡£ -¤É¤Á¤é¤ËÂбþ¤¹¤ë¤«¤Ï +リストにおける番号。 +デフォルト値の 1 は日曜日か月曜日に対応する。 +どちらに対応するかは .I week -¥ê¥¹¥È¤ÎÆóÈÖÌܤιàÌܤÎÃͤǷè¤Þ¤ë¡£ +リストの二番目の項目の値で決まる。 .TP .\"O .IR first_workday " (since glibc 2.2)" -.IR first_workday " (glibc 2.2 °Ê¹ß)" +.IR first_workday " (glibc 2.2 以降)" .\"O Number of the first working day from the .\"O .I day .\"O list. -ºÇ½é¤Î½¢¶ÈÆü¤ò¼¨¤¹ +最初の就業日を示す .I day -¥ê¥¹¥È¤Ë¤ª¤±¤ëÍËÆü¤ÎÈֹ档 +リストにおける曜日の番号。 .PP .\"O The .\"O .B LC_TIME .\"O definition ends with the string .\"O .IR "END LC_TIME" . .B LC_TIME -¤ÎÄêµÁ¤Ï +の定義は .I "END LC_TIME" -¤È¤¤¤¦Ê¸»úÎó¤Ç½ªÎ»¤¹¤ë¡£ +という文字列で終了する。 .\"O .SS LC_MESSAGES .\"O The definition starts with the string .\"O .B LC_MESSAGES .\"O in the first column. .SS LC_MESSAGES -¤³¤Î¥«¥Æ¥´¥ê¤ÎÄêµÁ¤ÏºÇ½é¤Î¥«¥é¥à¤Ë +このカテゴリの定義は最初のカラムに .B LC_MESSAGES -¤È¤¤¤¦Ê¸»úÎó¤òÃÖ¤¯¤³¤È¤Ç»Ï¤á¤ë¡£ +という文字列を置くことで始める。 .\"O The following keywords are allowed: -¤³¤³¤Ç¤Ï°Ê²¼¤Î¥­¡¼¥ï¡¼¥É¤¬»ÈÍѤǤ­¤ë: +ここでは以下のキーワードが使用できる: .TP .\"O .I yesexpr .\"O followed by a regular expression that describes possible @@ -1017,46 +1017,46 @@ The .\"O followed by a regular expression that describes possible .\"O no-responses. .I yesexpr -¡Ö¤Ï¤¤ (yes)¡×¤ò°ÕÌ£¤¹¤ëÀµµ¬É½¸½¤ò»ØÄꤹ¤ë¡£ +「はい (yes)」を意味する正規表現を指定する。 .TP .I noexpr -¡Ö¤¤¤¤¤¨ (no)¡×¤ò°ÕÌ£¤¹¤ëÀµµ¬É½¸½¤ò»ØÄꤹ¤ë¡£ +「いいえ (no)」を意味する正規表現を指定する。 .PP .\"O The .\"O .B LC_MESSAGES .\"O definition ends with the string .\"O .IR "END LC_MESSAGES" . .B LC_MESSAGES -¤ÎÄêµÁ¤Ï +の定義は .I "END LC_MESSAGES" -¤È¤¤¤¦Ê¸»úÎó¤Ç½ªÎ»¤¹¤ë¡£ +という文字列で終了する。 .\"O See the POSIX.2 standard for details. -¤è¤ê¾Ü¤·¤¯¤Ï POSIX.2 µ¬³Ê¤ò»²¾È¤Î¤³¤È¡£ +より詳しくは POSIX.2 規格を参照のこと。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .\"O /usr/lib/locale/ .\"O \(em database for the current locale setting of that category .\"O .br .\"O /usr/lib/nls/charmap/* \(em charmap-files /usr/lib/locale/ -\(em ¸½ºß¤Î¥í¥±¡¼¥ëÀßÄê¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹ +\(em 現在のロケール設定のデータベース .br -/usr/lib/nls/charmap/* \(em ʸ»úÄêµÁ¥Õ¥¡¥¤¥ë +/usr/lib/nls/charmap/* \(em 文字定義ファイル .\"O .SH "CONFORMING TO" .\"O POSIX.2 -.SH ½àµò +.SH 準拠 POSIX.2, ISO/IEC 14652. .\"O .SH BUGS .\"O This manual page isn't complete. -.SH ¥Ð¥° -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Ï´°Á´¤Ç¤Ï¤Ê¤¤¡£ +.SH バグ +このマニュアルは完全ではない。 .\"O .\" .SH AUTHOR .\"O .\" Jochen Hein (Hein@Student.TU-Clausthal.de) -.\" .SH Ãø¼Ô +.\" .SH 著者 .\" Jochen Hein (Hein@Student.TU-Clausthal.de) .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR locale (1), .BR localedef (1) .BR localeconv (3), diff --git a/draft/man5/motd.5 b/draft/man5/motd.5 index 72819263..c1d3f0ca 100644 --- a/draft/man5/motd.5 +++ b/draft/man5/motd.5 @@ -29,29 +29,29 @@ .\" .TH MOTD 5 1992-12-29 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O motd \- message of the day -motd \- º£Æü¤Î¤ªÃΤ餻(message of the day) +motd \- 今日のお知らせ(message of the day) .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The contents of \fI/etc/motd\fP are displayed by .\"O .BR login (1) .\"O after a successful login but just before it executes the login shell. -\fI/etc/motd\fP ¤ÎÆâÍÆ¤Ï +\fI/etc/motd\fP の内容は .BR login (1) -¤Ë¤è¤Ã¤Æ¥í¥°¥¤¥ó¤¬À®¸ù¤·¤¿¤¢¤È¤Ç¡¢¥í¥°¥¤¥ó¥·¥§¥ë¤¬µ¯Æ°¤µ¤ì¤ëÁ°¤Ë -ɽ¼¨¤µ¤ì¤ë¡£ +によってログインが成功したあとで、ログインシェルが起動される前に +表示される。 .\"O The abbreviation "motd" stands for "message of the day", and this file .\"O has been traditionally used for exactly that (it requires much less disk .\"O space than mail to all users). -ά¸ì "motd" ¤Ï "message of the day" ¤ò¤¢¤é¤ï¤·¤Æ¤¤¤Æ¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ÏÅÁÅýŪ -¤Ë¤½¤Î̾¤Î¤È¤ª¤ê¤Ë»È¤ï¤ì¤Æ¤¤¤ë -(¤¹¤Ù¤Æ¤Î¥æ¡¼¥¶¡¼¤Ë¥á¥¤¥ë¤òÁ÷¤ë¤è¤ê¤â¾¯¤Ê¤¤¥Ç¥£¥¹¥¯ÍÆÎ̤·¤«É¬ÍפȤ·¤Ê¤¤)¡£ +略語 "motd" は "message of the day" をあらわしていて、このファイルは伝統的 +にその名のとおりに使われている +(すべてのユーザーにメイルを送るよりも少ないディスク容量しか必要としない)。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル /etc/motd .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR login (1), .BR issue (5) diff --git a/draft/man5/nologin.5 b/draft/man5/nologin.5 index 81c551bb..5b461fe8 100644 --- a/draft/man5/nologin.5 +++ b/draft/man5/nologin.5 @@ -31,24 +31,24 @@ .\" .TH NOLOGIN 5 1992-12-29 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O nologin \- prevent unprivileged users from logging into the system -nologin \- ÈóÆø¢¥æ¡¼¥¶¤Î¥í¥°¥¤¥ó¤ò¶Ø»ß¤¹¤ë +nologin \- 非特権ユーザのログインを禁止する .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O If the file \fI/etc/nologin\fP exists, .\"O .BR login (1) .\"O will allow access only to root. .\"O Other users will .\"O be shown the contents of this file and their logins will be refused. -\fI/etc/nologin\fP ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¤È +\fI/etc/nologin\fP というファイルがあると .BR login (1) -¤Ï¥ë¡¼¥È¤Î¤ß¤Ë¥¢¥¯¥»¥¹¤òµö²Ä¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£Â¾¤Î¥æ¡¼¥¶¡¼¤¬¥í¥°¥¤¥ó¤·¤è¤¦¤È -¤·¤Æ¤âµñÈݤ·¡¢¤½¤Î¤È¤­¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÆâÍƤòɽ¼¨¤¹¤ë¡£ +はルートのみにアクセスを許可するようになる。他のユーザーがログインしようと +しても拒否し、そのときこのファイルの内容を表示する。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル /etc/nologin .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR login (1), .BR shutdown (8) diff --git a/draft/man5/nscd.conf.5 b/draft/man5/nscd.conf.5 index 4e36144f..09bffd4c 100644 --- a/draft/man5/nscd.conf.5 +++ b/draft/man5/nscd.conf.5 @@ -24,11 +24,11 @@ .\" .TH NSCD.CONF 5 1999-10-01 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O /etc/nscd.conf \- name service cache daemon configuration file -/etc/nscd.conf \- ¥Í¡¼¥à¥µ¡¼¥Ó¥¹¥­¥ã¥Ã¥·¥å¥Ç¡¼¥â¥ó¤ÎÀßÄê¥Õ¥¡¥¤¥ë +/etc/nscd.conf \- ネームサービスキャッシュデーモンの設定ファイル .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The file .\"O .I /etc/nscd.conf .\"O is read from @@ -42,28 +42,28 @@ .\"O comment; following characters, up to the end of the line, .\"O are not interpreted by nscd. .BR nscd (8) -¤Ïµ¯Æ°»þ¤Ë¥Õ¥¡¥¤¥ë +は起動時にファイル .I /etc/nscd.conf -¤òÆɤ߹þ¤à¡£ -³Æ¹Ô¤Ë¤Ï¡Ö°À­¡¦Ã͡פޤ¿¤Ï¡Ö°À­¡¦¥µ¡¼¥Ó¥¹¡¦Ã͡פò»ØÄꤹ¤ë¡£ -¥Õ¥£¡¼¥ë¥É¤Ï¥¹¥Ú¡¼¥¹Ê¸»ú¤Þ¤¿¤Ï¥¿¥Öʸ»ú¤Ç¶èÀÚ¤é¤ì¤ë¡£ -\(aq#\(aq (¥Ê¥ó¥Ð¡¼µ­¹æ) ¤Ï¥³¥á¥ó¥È¤Î»Ï¤Þ¤ê¤òɽ¤¹¡£ -¤³¤Îµ­¹æ¤«¤é¹ÔËö¤Þ¤Ç¤Ï nscd ¤Ë¤è¤Ã¤Æ²ò¼á¤µ¤ì¤Ê¤¤¡£ +を読み込む。 +各行には「属性・値」または「属性・サービス・値」を指定する。 +フィールドはスペース文字またはタブ文字で区切られる。 +\(aq#\(aq (ナンバー記号) はコメントの始まりを表す。 +この記号から行末までは nscd によって解釈されない。 .\"O Valid services are \fIpasswd\fP, \fIgroup\fP, or \fIhosts\fP. -»ØÄê²Äǽ¤Ê¥µ¡¼¥Ó¥¹¤Ï \fIpasswd\fP, \fIgroup\fP, \fIhosts\fP ¤Ç¤¢¤ë¡£ +指定可能なサービスは \fIpasswd\fP, \fIgroup\fP, \fIhosts\fP である。 .B logfile .I debug-file-name .RS .\"O Specifies name of the file to which debug info should be written. -¥Ç¥Ð¥Ã¥°¾ðÊ󤬽ñ¤­¹þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¤Î̾Á°¤ò»ØÄꤹ¤ë¡£ +デバッグ情報が書き込まれるファイルの名前を指定する。 .RE .B debug-level .I value .RS .\"O Sets the desired debug level. -´õ˾¤¹¤ë¥Ç¥Ð¥Ã¥°¥ì¥Ù¥ë¤òÀßÄꤹ¤ë¡£ +希望するデバッグレベルを設定する。 .RE .B threads @@ -72,8 +72,8 @@ .\"O This is the number of threads that are started to wait for .\"O requests. .\"O At least five threads will always be created. -¥¹¥ì¥Ã¥É¤ò¤¤¤¯¤Äµ¯Æ°¤·¤Æ¥ê¥¯¥¨¥¹¥È¤òÂԤĤΤ«¤ò»ØÄꤹ¤ë¡£ -¾¯¤Ê¤¯¤È¤â 5 ¤Ä¤Î¥¹¥ì¥Ã¥É¤¬¾ï¤ËºîÀ®¤µ¤ì¤ë¡£ +スレッドをいくつ起動してリクエストを待つのかを指定する。 +少なくとも 5 つのスレッドが常に作成される。 .RE .B server-user @@ -82,10 +82,10 @@ .\"O If this option is set, nscd will run as this user and not as root. .\"O If a separate cache for every user is used (\-S parameter), this .\"O option is ignored. -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬ÀßÄꤵ¤ì¤ë¤È¡¢ -nscd ¤Ï root ¤Ç¤Ï¤Ê¤¯¡¢¤³¤Î user ¤È¤·¤Æ¼Â¹Ô¤µ¤ì¤ë¡£ -(\-S ¥Ñ¥é¥á¡¼¥¿¤Ë¤è¤ê) ³Æ¥æ¡¼¥¶¡¼Ëè¤ËÊÌ¡¹¤Î¥­¥ã¥Ã¥·¥å¤¬»È¤ï¤ì¤ë¾ì¹ç¡¢ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵»ë¤µ¤ì¤ë¡£ +このオプションが設定されると、 +nscd は root ではなく、この user として実行される。 +(\-S パラメータにより) 各ユーザー毎に別々のキャッシュが使われる場合、 +このオプションは無視される。 .RE .B enable-cache @@ -95,9 +95,9 @@ nscd .\"O Enables or disables the specified .\"O .I service .\"O cache. -»ØÄꤷ¤¿ +指定した .I service -¤Î¥­¥ã¥Ã¥·¥å¤òÍ­¸ú¤Þ¤¿¤Ï̵¸ú¤Ë¤¹¤ë¡£ +のキャッシュを有効または無効にする。 .RE .B positive-time-to-live @@ -111,15 +111,15 @@ nscd .\"O is in seconds. .\"O Larger values increase cache hit rates and reduce mean .\"O response times, but increase problems with cache coherence. -»ØÄꤷ¤¿ +指定した .I service -¤Î¥­¥ã¥Ã¥·¥å¤Ë¤¢¤ë¥Ý¥¸¥Æ¥£¥Ö¥¨¥ó¥È¥ê (À®¸ù¤·¤¿Ì䤤¹ç¤ï¤») ¤Î -TTL (time-to-live) ¤òÀßÄꤹ¤ë¡£ +のキャッシュにあるポジティブエントリ (成功した問い合わせ) の +TTL (time-to-live) を設定する。 .I value -¤Îñ°Ì¤ÏÉäǤ¢¤ë¡£ -ÃͤòÂ礭¤¯¤¹¤ë¤È¡¢¥Ò¥Ã¥ÈΨ¤¬¹â¤¯¤Ê¤êÊ¿¶Ñ±þÅú»þ´Ö¤òû¤¯¤Ç¤­¤ë¤¬¡¢ -¥­¥ã¥Ã¥·¥å¤Î¥³¥Ò¡¼¥ì¥ó¥¹ (coherence, -¥­¥ã¥Ã¥·¥å¤¬¼ÂºÝ¤Î¥Ç¡¼¥¿¤È°ìÃפ·¤Æ¤¤¤ë¤³¤È) ¤ËÌäÂ꤬À¸¤¸¤ë¡£ +の単位は秒である。 +値を大きくすると、ヒット率が高くなり平均応答時間を短くできるが、 +キャッシュのコヒーレンス (coherence, +キャッシュが実際のデータと一致していること) に問題が生じる。 .RE .B negative-time-to-live @@ -135,16 +135,16 @@ TTL (time-to-live) .\"O are several files owned by UIDs (user IDs) not in system databases (for .\"O example untarring the linux kernel sources as root); should be kept small .\"O to reduce cache coherency problems. -»ØÄꤷ¤¿ +指定した .I service -¤Î¥­¥ã¥Ã¥·¥å¤Ë¤¢¤ë¥Í¥¬¥Æ¥£¥Ö¥¨¥ó¥È¥ê (¼ºÇÔ¤·¤¿Ì䤤¹ç¤ï¤») ¤Î -TTL (time-to-live) ¤òÀßÄꤹ¤ë¡£ +のキャッシュにあるネガティブエントリ (失敗した問い合わせ) の +TTL (time-to-live) を設定する。 .I value -¤Îñ°Ì¤ÏÉäǤ¢¤ë¡£ -¥·¥¹¥Æ¥à¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤Ê¤¤ UID (¥æ¡¼¥¶¡¼ID) ¤Ç½êÍ­¤µ¤ì¤ë¥Õ¥¡¥¤¥ë -(¤¿¤È¤¨¤Ð root ¤Ç tar ¤òŸ³«¤·¤¿ linux ¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹) ¤¬¾¯¤Ê¤¤¤È¡¢ -¸²Ãø¤ÊÀ­Ç½¤Î¸þ¾å¤¬¸«¤é¤ì¤ë¡£ -¥­¥ã¥Ã¥·¥å¤Î¥³¥Ò¡¼¥ì¥ó¥¹ÌäÂê¤ò¾¯¤Ê¤¯¤¹¤ë¤¿¤á¤Ë¾®¤µ¤ÊÃͤˤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +の単位は秒である。 +システムデータベースにない UID (ユーザーID) で所有されるファイル +(たとえば root で tar を展開した linux カーネルのソース) が少ないと、 +顕著な性能の向上が見られる。 +キャッシュのコヒーレンス問題を少なくするために小さな値にすべきである。 .RE .B suggested-size @@ -154,10 +154,10 @@ TTL (time-to-live) .\"O This is the internal hash table size, .\"O .I value .\"O should remain a prime number for optimum efficiency. -ÆâÉô¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤ÎÂ礭¤µ¤ò»ØÄꤹ¤ë¡£ -¸úΨ¤òºÇŬ¤Ë¤¹¤ë¤¿¤á¤Ë +内部ハッシュテーブルの大きさを指定する。 +効率を最適にするために .I value -¤ÏÁÇ¿ô¤Ë¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£ +は素数にしておくべきである。 .RE .B check-files @@ -172,28 +172,28 @@ TTL (time-to-live) .\"O .IR /etc/group , .\"O and .\"O .IR /etc/hosts . -»ØÄꤷ¤¿ +指定した .I service -¤Ë´ØÏ¢¤¹¤ë¥Õ¥¡¥¤¥ë¤ÎÊѹ¹¤Î¥Á¥§¥Ã¥¯¤òÍ­¸ú¤Þ¤¿¤Ï̵¸ú¤Ë¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¤Ï +に関連するファイルの変更のチェックを有効または無効にする。 +ファイルは .IR /etc/passwd , .IR /etc/group , .I /etc/hosts -¤Ç¤¢¤ë¡£ +である。 .RE .B max-threads .I threads .RS .\"O Specifies the maximum number of threads to be started. -³«»Ï¤¹¤ë¥¹¥ì¥Ã¥É¤ÎºÇÂç¿ô¤ò»ØÄꤹ¤ë¡£ +開始するスレッドの最大数を指定する。 .RE .B stat-user .I username .RS .\"O Specifies the user who is allowed to request statistics. -Åý·×¾ðÊó¤Î»²¾È¤òµö²Ä¤¹¤ë¥æ¡¼¥¶¤ò»ØÄꤹ¤ë¡£ +統計情報の参照を許可するユーザを指定する。 .RE .B reload-count @@ -203,16 +203,16 @@ unlimited | .\"O Limit on the number of times a cached entry gets reloaded without being used .\"O before it gets removed. .\"O The default is 5. -¥­¥ã¥Ã¥·¥å¤µ¤ì¤¿¥¨¥ó¥È¥ê¤¬»ÈÍѤµ¤ì¤Ê¤«¤Ã¤¿¤È¤­¤Ë¡¢ -ºï½ü¤µ¤ì¤ëÁ°¤Ë²¿²ó¥ê¥í¡¼¥É¤µ¤ì¤ë¤«¤òÀßÄꤹ¤ë¡£ +キャッシュされたエントリが使用されなかったときに、 +削除される前に何回リロードされるかを設定する。 .RE .B paranoia .I .RS .\"O Enabling paranoia mode causes nscd to restart itself periodically. -¥Ñ¥é¥Î¥¤¥¢¥â¡¼¥É¤òÍ­¸ú¤Ë¤¹¤ë¡£ -¥Ñ¥é¥Î¥¤¥¢¥â¡¼¥É¤Ç¤Ï nscd ¤òÄê´üŪ¤ËºÆµ¯Æ°¤¹¤ë¡£ +パラノイアモードを有効にする。 +パラノイアモードでは nscd を定期的に再起動する。 .RE .B restart-interval @@ -224,10 +224,10 @@ unlimited | .\"O if periodic restart is enabled by enabling .\"O .B paranoia .\"O mode. -¥Ñ¥é¥Î¥¤¥¢¥â¡¼¥É¤¬Í­¸ú¤ÇÄê´üŪ¤ËºÆµ¯Æ°¤¹¤ë¾ì¹ç¤Î¡¢ -ºÆµ¯Æ°´Ö³Ö¤ò +パラノイアモードが有効で定期的に再起動する場合の、 +再起動間隔を .I time -ÉäËÀßÄꤹ¤ë¡£ +秒に設定する。 .RE .B persistent @@ -239,11 +239,11 @@ unlimited | .\"O over server restarts; useful when .\"O .B paranoia .\"O mode is set. -¥µ¡¼¥Ð¤ÎºÆµ¯Æ°¤ÎÁ°¸å¤Ç +サーバの再起動の前後で .I service -¤Î¥­¥ã¥Ã¥·¥åÆâÍƤòÊÝ»ý¤¹¤ë¡£ +のキャッシュ内容を保持する。 .B paranoia -¥â¡¼¥É¤¬Í­¸ú¤Î¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£ +モードが有効の場合に便利である。 .RE .B shared @@ -256,16 +256,16 @@ unlimited | .\"O that they can directly search in them instead of having to ask the .\"O daemon over the socket each time a lookup is performed. .I service -¤Î nscd ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥á¥â¥ê¡¦¥Þ¥Ã¥Ô¥ó¥°¤ò¥¯¥é¥¤¥¢¥ó¥È´Ö¤Ç¶¦Í­¤¹¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢¸¡º÷¤ò¼Â¹Ô¤¹¤ëÅ٤˥½¥±¥Ã¥È·Ðͳ¤Ç¥Ç¡¼¥â¥ó¤ËÌ䤤¹ç¤ï¤»¤ò -¹Ô¤ï¤º¤Ë¡¢Ä¾Àܥǡ¼¥¿¥Ù¡¼¥¹¤ò¸¡º÷¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +の nscd データベースのメモリ・マッピングをクライアント間で共有する。 +これにより、検索を実行する度にソケット経由でデーモンに問い合わせを +行わずに、直接データベースを検索できるようになる。 .RE .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR nscd (8) .\"O .\" .SH AUTHOR -.\" .SH Ãø¼Ô +.\" .SH 著者 .\"O .\" .B nscd .\"O .\" was written by Thorsten Kukuk and Ulrich Drepper. .\" .B nscd -.\" ¤Ï Thorsten Kukuk ¤È Ulrich Drepper ¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤¿¡£ +.\" は Thorsten Kukuk と Ulrich Drepper によって書かれた。 diff --git a/draft/man5/nsswitch.conf.5 b/draft/man5/nsswitch.conf.5 index eadb5b9d..06439f2f 100644 --- a/draft/man5/nsswitch.conf.5 +++ b/draft/man5/nsswitch.conf.5 @@ -30,15 +30,15 @@ .\" by NAKANO Takeo .\" Updated Fri Oct 12 JST 2001 by Akihiro MOTOKI .\" -.\" WORD: lookup ±ÜÍ÷(¤¹¤ë) +.\" WORD: lookup 閲覧(する) .\" .TH NSSWITCH.CONF 5 1999-01-17 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O nsswitch.conf \- System Databases and Name Service Switch configuration file -.SH ̾Á° -nsswitch.conf \- ¥·¥¹¥Æ¥à¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¥Í¡¼¥à¥µ¡¼¥Ó¥¹¥¹¥¤¥Ã¥Á¤ÎÀßÄê¥Õ¥¡¥¤¥ë +.SH 名前 +nsswitch.conf \- システムデータベースとネームサービススイッチの設定ファイル .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Various functions in the C Library need to be configured to work .\"O correctly in the local environment. .\"O Traditionally, this was done by @@ -46,12 +46,12 @@ nsswitch.conf \- .\"O Network Information Service (NIS) and the Domain Name Service (DNS)) .\"O became popular, and were hacked into the C library, usually with a fixed .\"O search order. -C ¥é¥¤¥Ö¥é¥ê¤Îµ¡Ç½¤ÎÃæ¤Ë¤Ï¡¢¥í¡¼¥«¥ë¤Ê´Ä¶­¤ÇÀµ¤·¤¯Æ°ºî¤µ¤»¤ë¤Ë¤ÏÀßÄ꤬ -ɬÍפʤâ¤Î¤¬Â¿¿ô¸ºß¤¹¤ë¡£ÅÁÅýŪ¤Ë¤³¤ì¤Ï¥Õ¥¡¥¤¥ë (Î㤨¤Ð \fI/etc/passwd\fP) ¤ò -ÍѤ¤¤ë¤³¤È¤Ç¼Â¸½¤µ¤ì¤Æ¤­¤¿¡£¤·¤«¤·Â¾¤Î¥Í¡¼¥à¥µ¡¼¥Ó¥¹ (Network -Information Service (NIS) ¤ä Domain Name Service (DNS)) ¤¬°ìÈÌŪ¤Ë¤Ê¤ê¡¢ -¤³¤ì¤é¤¬ C ¥é¥¤¥Ö¥é¥ê¤Ë¼è¤ê¹þ¤Þ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Ã¤¿¡£¤¿¤À¤·Ä̾¸¡ -º÷¤Î½ç½ø¤Ï¸ÇÄꤵ¤ì¤Æ¤¤¤¿¡£ +C ライブラリの機能の中には、ローカルな環境で正しく動作させるには設定が +必要なものが多数存在する。伝統的にこれはファイル (例えば \fI/etc/passwd\fP) を +用いることで実現されてきた。しかし他のネームサービス (Network +Information Service (NIS) や Domain Name Service (DNS)) が一般的になり、 +これらが C ライブラリに取り込まれるようになっていった。ただし通常、検 +索の順序は固定されていた。 .LP .\"O The Linux libc5 with NYS support and the GNU C Library 2.x (libc.so.6) .\"O contain a cleaner solution of this problem. @@ -63,102 +63,102 @@ Information Service (NIS) .\"O the "databases" and their lookup order are specified in the .\"O .I /etc/nsswitch.conf .\"O file. -NYS ¤ò¥µ¥Ý¡¼¥È¤·¤¿ Linux libc5 ¤ä GNU C Linrary 2.x (libc.so.6) ¤Ç¤Ï¡¢ -¤³¤ÎÌäÂê¤Ï¤è¤ê¸«Ä̤·Îɤ¯²ò·è¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¤³¤ì¤é¤Ï Sun -Microsystems ¤¬ Solaris 2 ¤Î C ¥é¥¤¥Ö¥é¥ê¤ÇÍѤ¤¤¿ÊýË¡¤Ë¤Ê¤é¤Ã¤Æ¤¤¤ë¡£ -°Ê²¼¤Ç¤Ï¤³¤Î»ÅÁȤߤò "Name Service Switch" (NSS) ¤È¸Æ¤Ö¡£¥Ç¡¼¥¿¥Ù¡¼¥¹ -¤Î¾ðÊ󸻤ȡ¢¤½¤ì¤é¤ò±ÜÍ÷¤¹¤ë½ç½ø¤ò»ØÄꤷ¤¿¤Î¤¬ +NYS をサポートした Linux libc5 や GNU C Linrary 2.x (libc.so.6) では、 +この問題はより見通し良く解決できるようになっている。これらは Sun +Microsystems が Solaris 2 の C ライブラリで用いた方法にならっている。 +以下ではこの仕組みを "Name Service Switch" (NSS) と呼ぶ。データベース +の情報源と、それらを閲覧する順序を指定したのが .I /etc/nsswitch.conf -¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ +ファイルである。 .LP .\"O The following databases are available in the NSS: -NSS(¥Í¡¼¥à¥µ¡¼¥Ó¥¹¥¹¥£¥Ã¥Á) ¤Ç¤Ï°Ê²¼¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò°·¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +NSS(ネームサービススィッチ) では以下のデータベースを扱うことができる。 .TP .B aliases .\"O Mail aliases, used by .\"O .BR sendmail (8). .\"O Presently ignored. .BR sendmail (8) -¤ÇÍѤ¤¤é¤ì¤ë¥á¡¼¥ë¥¨¥¤¥ê¥¢¥¹¡£ -¸½ºß¤Ï̵»ë¤µ¤ì¤ë¡£ +で用いられるメールエイリアス。 +現在は無視される。 .TP .B ethers .\"O Ethernet numbers. -¥¤¡¼¥µ¡¼¥Í¥Ã¥ÈÈֹ档 +イーサーネット番号。 .TP .B group .\"O Groups of users, used by .\"O .BR getgrent (3) .\"O functions. -¥æ¡¼¥¶¡¼¤Î¥°¥ë¡¼¥×¡£ +ユーザーのグループ。 .BR getgrent (3) -´Ø¿ô¤Ë¤è¤Ã¤ÆÍѤ¤¤é¤ì¤ë¡£ +関数によって用いられる。 .TP .B hosts .\"O Host names and numbers, used by .\"O .BR gethostbyname (3) .\"O and similar functions. -¥Û¥¹¥È̾¤È¥Û¥¹¥ÈÈֹ档 +ホスト名とホスト番号。 .BR gethostbyname (3) -¤Ê¤É¤Î´Ø¿ô¤Ë¤è¤Ã¤ÆÍѤ¤¤é¤ì¤ë¡£ +などの関数によって用いられる。 .TP .B netgroup .\"O Network wide list of hosts and users, used for access rules. .\"O C libraries before glibc 2.1 only support netgroups over NIS. -¥Í¥Ã¥È¥ï¡¼¥¯¥ï¥¤¥É¤ËÍѤ¤¤é¤ì¤ë¥Û¥¹¥È¤ä¥æ¡¼¥¶¡¼¤Î¥ê¥¹¥È¡£¥¢¥¯¥»¥¹À©¸Â¤Ë -ÍøÍѤµ¤ì¤ë¡£ glibc 2.1 °ÊÁ°¤Î C ¥é¥¤¥Ö¥é¥ê¤Ï¡¢ NIS ¾å¤Ç¤À¤± -netgroup ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ +ネットワークワイドに用いられるホストやユーザーのリスト。アクセス制限に +利用される。 glibc 2.1 以前の C ライブラリは、 NIS 上でだけ +netgroup をサポートしている。 .TP .B networks .\"O Network names and numbers, used by .\"O .BR getnetent (3) .\"O functions. -¥Í¥Ã¥È¥ï¡¼¥¯Ì¾¤ÈÈֹ档 +ネットワーク名と番号。 .BR getnetent (3) -´Ø¿ô¤Ë¤è¤Ã¤ÆÍѤ¤¤é¤ì¤ë¡£ +関数によって用いられる。 .TP .B passwd .\"O User passwords, used by .\"O .BR getpwent (3) .\"O functions. -¥æ¡¼¥¶¡¼¥Ñ¥¹¥ï¡¼¥É¡£ +ユーザーパスワード。 .BR getpwent (3) -´Ø¿ô¤Ë¤è¤Ã¤ÆÍѤ¤¤é¤ì¤ë¡£ +関数によって用いられる。 .TP .B protocols .\"O Network protocols, used by .\"O .BR getprotoent (3) .\"O functions. -¥Í¥Ã¥È¥ï¡¼¥¯¥×¥í¥È¥³¥ë¡£ +ネットワークプロトコル。 .BR getprotoent (3) -´Ø¿ô¤Ë¤è¤Ã¤ÆÍѤ¤¤é¤ì¤ë¡£ +関数によって用いられる。 .TP .B publickey .\"O Public and secret keys for secure_rpc used by NIS+ and NFS. -NIS+ ¤È NFS ¤Ë¤è¤Ã¤ÆÍѤ¤¤é¤ì¤ë secure_rpc ¤Î¸ø³«¸°¤ÈÈëÌ©¸°¡£ +NIS+ と NFS によって用いられる secure_rpc の公開鍵と秘密鍵。 .TP .B rpc .\"O Remote procedure call names and numbers, used by .\"O .BR getrpcbyname (3) .\"O and similar functions. -¥ê¥â¡¼¥È¥×¥í¥·¥¸¥ã¡¼¥³¡¼¥ë (remote procedure call) ¤Î̾Á°¤ÈÈֹ档 +リモートプロシジャーコール (remote procedure call) の名前と番号。 .BR getrpcbyname (3) -¤Ê¤É¤Î´Ø¿ô¤Ë¤è¤Ã¤ÆÍѤ¤¤é¤ì¤ë¡£ +などの関数によって用いられる。 .TP .B services .\"O Network services, used by .\"O .BR getservent (3) .\"O functions. -¥Í¥Ã¥È¥ï¡¼¥¯¥µ¡¼¥Ó¥¹¡£ +ネットワークサービス。 .BR getservent (3) -´Ø¿ô¤Ë¤è¤Ã¤ÆÍѤ¤¤é¤ì¤ë¡£ +関数によって用いられる。 .TP .B shadow .\"O Shadow user passwords, used by .\"O .BR getspnam (3). -¥·¥ã¥É¥¦¥æ¡¼¥¶¡¼¥Ñ¥¹¥ï¡¼¥É¡£ +シャドウユーザーパスワード。 .BR getspnam (3) -¤Ë¤è¤Ã¤ÆÍѤ¤¤é¤ì¤ë¡£ +によって用いられる。 .LP .\"O An example .\"O .I /etc/nsswitch.conf @@ -166,9 +166,9 @@ NIS+ .\"O .I /etc/nsswitch.conf .\"O is missing): .I /etc/nsswitch.conf -¥Õ¥¡¥¤¥ë¤Î°ìÎã¤ò°Ê²¼¤Ë¼¨¤¹ (¤³¤³¤Ë¼¨¤¹ÆâÍÆ¤Ï +ファイルの一例を以下に示す (ここに示す内容は .I /etc/nsswitch.conf -¥Õ¥¡¥¤¥ë¤¬¤Ê¤¤¾ì¹ç¤Î¥Ç¥Õ¥©¥ë¥È¤ÈƱ¤¸¤Ç¤¢¤ë)¡£ +ファイルがない場合のデフォルトと同じである)。 .sp 1n .PD 0 .TP 16 @@ -204,30 +204,30 @@ nis [NOTFOUND=return] files .\"O XXX: The first column is the database. .\"O XXX: The rest of the line specifies how the lookup process works. .\"O You can specify the way it works for each database individually. -ºÇ½é¤Î¥«¥é¥à¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹Ì¾¤Ç¤¢¤ë¡£ -¹Ô¤Î»Ä¤ê¤Ç¤Ï±ÜÍ÷¥×¥í¥»¥¹¤ÎÆ°ºî¤ò»ØÄꤷ¤Æ¤¤¤ë¡£ -¤½¤ì¤¾¤ì¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÂФ·¤Æ¡¢±ÜÍ÷ÊýË¡¤ÏÆÈΩ¤ËÀßÄê¤Ç¤­¤ë¡£ +最初のカラムはデータベース名である。 +行の残りでは閲覧プロセスの動作を指定している。 +それぞれのデータベースに対して、閲覧方法は独立に設定できる。 .LP .\"O The configuration specification for each database can contain two .\"O different items: -³Æ¡¹¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÀßÄê¤Ë¤Ï°Ê²¼¤Î 2 ¼ïÎà¤ÎÆâÍƤò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +各々のデータベースの設定には以下の 2 種類の内容を指定することができる。 .PD 0 .TP .\"O * The service specification like `files', `db', or `nis'. -* ¥µ¡¼¥Ó¥¹¤Î»ØÄê¡£ `files', `db', `nis' ¤Ê¤É¡£ +* サービスの指定。 `files', `db', `nis' など。 .TP .\"O * The reaction on lookup result like `[NOTFOUND=return]'. -* ±ÜÍ÷·ë²Ì¤ËÂФ¹¤ë¥ê¥¢¥¯¥·¥ç¥ó¡£ `[NOTFOUND=return]' ¤Ê¤É¡£ +* 閲覧結果に対するリアクション。 `[NOTFOUND=return]' など。 .PD .LP .\"O For libc5 with NYS, the allowed service specifications are `files', `nis', .\"O and `nisplus'. .\"O For hosts, you could specify `dns' as extra service, for .\"O passwd and group `compat', but not for shadow. -NYS µ¡Ç½¤òÁȤ߹þ¤ó¤À libc5 ¤Ç¤Ï¡¢»ØÄê¤Ç¤­¤ë¥µ¡¼¥Ó¥¹¤Ï `files'¡¢ `nis'¡¢ -`nisplus' ¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¡£ hosts ¤ËÂФ·¤Æ¤Ï `dns' ¤â»ØÄê¤Ç¤­¤ë¡£¤Þ¤¿ -passwd ¤È group ¤ËÂФ·¤Æ¤Ï `compat' ¤â»ØÄê¤Ç¤­¤ë¡£ shadow ¤Ë¤Ï -`compat' ¤Î»ØÄê¤Ï¤Ç¤­¤Ê¤¤¡£ +NYS 機能を組み込んだ libc5 では、指定できるサービスは `files'、 `nis'、 +`nisplus' のいずれかである。 hosts に対しては `dns' も指定できる。また +passwd と group に対しては `compat' も指定できる。 shadow には +`compat' の指定はできない。 .LP .\"O For glibc, you must have a file called .\"O .BI /lib/libnss_SERVICE.so. X @@ -241,31 +241,31 @@ passwd .\"O The version number .\"O .I X .\"O is 1 for glibc 2.0 and 2 for glibc 2.1. -glibc ¤Ç¤Ï¡¢ÍøÍѤ·¤è¤¦¤È¤¹¤ë¥µ¡¼¥Ó¥¹ SERVICE ¤½¤ì¤¾¤ì¤ËÂФ· -¤Æ +glibc では、利用しようとするサービス SERVICE それぞれに対し +て .BI /lib/libnss_SERVICE.so. X -¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬É¬Íפˤʤ롣ɸ½àŪ¤Ê¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤Ï `files'¡¢ `db'¡¢ -`nis'¡¢ `nisplus' ¤¬ÍøÍѤǤ­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤¬Â¿¤¤¡£ hosts ¤ËÂÐ -¤·¤Æ¤Ï `dns' ¤â»ØÄê¤Ç¤­¡¢ passwd¡¢ group¡¢ shadow ¤ËÂФ·¤Æ¤Ï `compat' -¤â»ØÄê¤Ç¤­¤ë¡£ -¤³¤ì¤é¤Î¥µ¡¼¥Ó¥¹¤Ï libc5+NYS ¤Î´Ä¶­¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤¡£ -¥Ð¡¼¥¸¥ç¥óÈÖ¹æ +というファイルが必要になる。標準的なインストールでは `files'、 `db'、 +`nis'、 `nisplus' が利用できるようになっていることが多い。 hosts に対 +しては `dns' も指定でき、 passwd、 group、 shadow に対しては `compat' +も指定できる。 +これらのサービスは libc5+NYS の環境では利用できない。 +バージョン番号 .I X -¤Ï¡¢ glibc 2.0 ÍѤʤé 1¡¢ glibc 2.1 ÍѤʤé 2 ¤Ç¤¢¤ë¡£ +は、 glibc 2.0 用なら 1、 glibc 2.1 用なら 2 である。 .LP .\"O The second item in the specification gives the user much finer .\"O control on the lookup process. .\"O Action items are placed between two .\"O service names and are written within brackets. .\"O The general form is -Æó¤Ä¤á¤Î»ØÄêÊýË¡¤Ï±ÜÍ÷¥×¥í¥»¥¹¤ò¤è¤ê¾ÜºÙ¤ËÀ©¸æ¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£¥¢ -¥¯¥·¥ç¥ó»ØÄê (action item) ¤Ï¥µ¡¼¥Ó¥¹Ì¾¤Î´Ö¤Ë¡¢³Ñ¤«¤Ã¤³ [] ¤Ç³ç¤é¤ì¤Æ -µ­½Ò¤µ¤ì¤ë¡£°ìÈÌŪ¤Ê½ñ¼°¤Ï°Ê²¼¤ÎÄ̤ꡣ +二つめの指定方法は閲覧プロセスをより詳細に制御するためのものである。ア +クション指定 (action item) はサービス名の間に、角かっこ [] で括られて +記述される。一般的な書式は以下の通り。 .LP `[' ( `!'? STATUS `=' ACTION )+ `]' .LP .\"O where -¤³¤³¤Ç¤½¤ì¤¾¤ì +ここでそれぞれ .sp 1n .PD 0 .TP @@ -273,27 +273,27 @@ STATUS => success | notfound | unavail | tryagain .TP ACTION => return | continue .PD -¤Ç¤¢¤ë¡£ +である。 .LP .\"O The case of the keywords is insignificant. .\"O The STATUS values are .\"O the results of a call to a lookup function of a specific service. .\"O They mean: -¥­¡¼¥ï¡¼¥É¤ÎÂçʸ»ú¾®Ê¸»ú¤Ï¶èÊ̤µ¤ì¤Ê¤¤¡£ STATUS ¤ÎÃͤÏÆÃÄê¤Îµ¡Ç½¤ËÂФ· -¤Æ±ÜÍ÷¤ò¹Ô¤Ã¤¿·ë²Ì¤Ç¤¢¤ë¡£¤½¤ì¤¾¤ì¤Î°ÕÌ£¤Ï°Ê²¼¤ÎÄ̤ꡣ +キーワードの大文字小文字は区別されない。 STATUS の値は特定の機能に対し +て閲覧を行った結果である。それぞれの意味は以下の通り。 .TP .B success .\"O No error occurred and the wanted entry is returned. .\"O The default .\"O action for this is `return'. -¥¨¥é¡¼¤Ïµ¯¤³¤é¤º¡¢É¬Íפʥ¨¥ó¥È¥ê¤¬ÊÖ¤µ¤ì¤¿¡£¤³¤Î·ë²Ì¤ËÂФ¹¤ë¥Ç¥Õ¥©¥ë¥È -¤Î¥¢¥¯¥·¥ç¥ó¤Ï `return' ¤Ç¤¢¤ë¡£ +エラーは起こらず、必要なエントリが返された。この結果に対するデフォルト +のアクションは `return' である。 .TP .B notfound .\"O The lookup process succeeded, but the needed value was not found. .\"O The default action is `continue'. -±ÜÍ÷¥×¥í¥»¥¹¤ÏÀ®¸ù¤·¤¿¤¬¡¢É¬ÍפÊÃͤ¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£¥Ç¥Õ¥©¥ë¥È¤Î -¥¢¥¯¥·¥ç¥ó¤Ï `continue'¡£ +閲覧プロセスは成功したが、必要な値が見つからなかった。デフォルトの +アクションは `continue'。 .TP .B unavail .\"O The service is permanently unavailable. @@ -302,20 +302,20 @@ ACTION => return | continue .\"O available or does not allow queries. .\"O The default action is .\"O `continue'. -¥µ¡¼¥Ó¥¹¤¬¡Ê±Ê³Ū¤Ë¡ËÍøÍѤǤ­¤Ê¤¤¡£É¬Íפʥե¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡¢DNS ¤Î -¾ì¹ç¤Ë¤Ï¥µ¡¼¥Ð¤ËÂФ¹¤ëÌ䤤¹ç¤ï¤»¤¬µö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤¡¢¤Ê¤É¤¬¤¢¤ê¤¦¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Î¥¢¥¯¥·¥ç¥ó¤Ï `continue'¡£ +サービスが(永続的に)利用できない。必要なファイルが存在しない、DNS の +場合にはサーバに対する問い合わせが許可されていない、などがありうる。 +デフォルトのアクションは `continue'。 .TP .B tryagain .\"O The service is temporarily unavailable. .\"O This could mean a file is .\"O locked or a server currently cannot accept more connections. .\"O The default action is `continue'. -¥µ¡¼¥Ó¥¹¤¬°ì»þŪ¤ËÍøÍѤǤ­¤Ê¤¤¡£¥Õ¥¡¥¤¥ë¤¬¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¡¢¥µ¡¼¥Ð¤ÎÀÜ -³¿ô¤¬¥ê¥ß¥Ã¥È¤ò±Û¤¨¤Æ¤¤¤Æ¸½ºßÍøÍѤǤ­¤Ê¤¤¡¢¤Ê¤É¤¬¹Í¤¨¤é¤ì¤ë¡£¥Ç¥Õ¥©¥ë -¥È¤Î¥¢¥¯¥·¥ç¥ó¤Ï `continue'¡£ +サービスが一時的に利用できない。ファイルがロックされている、サーバの接 +続数がリミットを越えていて現在利用できない、などが考えられる。デフォル +トのアクションは `continue'。 .\"O .SS Interaction with +/\- syntax (compat mode) -.SS +/\- ½ñ¼°¤È¤Î´Ø·¸ (compat ¥â¡¼¥É) +.SS +/\- 書式との関係 (compat モード) .\"O Linux libc5 without NYS does not has the name service switch but does .\"O allow the user some policy control. .\"O In @@ -334,21 +334,21 @@ ACTION => return | continue .\"O .I /etc/group , .\"O and .\"O .IR /etc/shadow . -NYS µ¡Ç½¤òÁȤ߹þ¤ó¤Ç¤¤¤Ê¤¤ libc5 ¤Ï¡¢¥Í¡¼¥à¥µ¡¼¥Ó¥¹¥¹¥¤¥Ã¥Á¤Îµ¡Ç½¤ò»ý¤Ã -¤Æ¤¤¤Ê¤¤¡£¤·¤«¤·¤¢¤ëÄøÅ٤Υݥꥷ¡¼À©¸æ¤Ï¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +NYS 機能を組み込んでいない libc5 は、ネームサービススイッチの機能を持っ +ていない。しかしある程度のポリシー制御は行うことができる。 .I /etc/passwd -¤Ç¤Ï +user ¤ä +@netgroup (NIS ¤Î passwd ¥Þ¥Ã¥×¤«¤é»ØÄꤷ¤¿¥æ¡¼¥¶¤ò¼è¤ê¹þ -¤à)¡¢ \-user ¤ä \-@netgroup (»ØÄꤷ¤¿¥æ¡¼¥¶¤ò½ü³°¤¹¤ë)¡¢ + (NIS ¤Î -passwd ¥Þ¥Ã¥×¤«¤é¡¢½ü³°¤µ¤ì¤¿¥æ¡¼¥¶°Ê³°¤ÎÁ´¤Æ¤Î¥¨¥ó¥È¥ê¤ò¼è¤ê¹þ¤à) ¤Ê -¤É¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤Û¤È¤ó¤É¤Î¾ì¹ç¤Ï +では +user や +@netgroup (NIS の passwd マップから指定したユーザを取り込 +む)、 \-user や \-@netgroup (指定したユーザを除外する)、 + (NIS の +passwd マップから、除外されたユーザ以外の全てのエントリを取り込む) な +どを指定することができる。 +ほとんどの場合は .I /etc/passwd -¤ÎºÇ¸å¤Ë + ¤òÉÕ¤±¤Æ NIS ¤Î¤¹¤Ù¤Æ¤ò¼è¤ê¹þ¤ó¤Ç¤¤¤ë¤À¤±¤Ê¤Î¤Ç¡¢ -¥Í¡¼¥à¥µ¡¼¥Ó¥¹¥¹¥¤¥Ã¥Á¤òÍѤ¤¤Æ -(`passwd: files nis') ¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¤è¤ê¹â®¤ÊÆ°ºî¤¬´üÂԤǤ­¡¢ -¤Þ¤¿ +の最後に + を付けて NIS のすべてを取り込んでいるだけなので、 +ネームサービススイッチを用いて +(`passwd: files nis') のようにすればより高速な動作が期待でき、 +また .IR /etc/passwd ", " /etc/group ", " /etc/shadow -¤Ë + ¤À¤±¤Î¥¨¥ó¥È¥ê¤ò½ñ¤«¤Ê¤¯¤Æ¤¹¤à¡£ +に + だけのエントリを書かなくてすむ。 .\"O If this is not sufficient, the NSS `compat' service provides full .\"O +/\- semantics. .\"O By default, the source is `nis', but this may be @@ -358,69 +358,69 @@ passwd .\"O and .\"O .BR shadow_compat . .\"O These pseudo-databases are only available in GNU C Library. -¤è¤êºÙ¤«¤ÊÀ©¸æ¤ò¹Ô¤¤¤¿¤¤¾ì¹ç¤Ï¡¢ NSS ¤Î `compat' ¥µ¡¼¥Ó¥¹¤òÍѤ¤¤ì¤Ð -+/\- ½ñ¼°¤ò¥Õ¥ë¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥½¡¼¥¹¤Ï `nis' ¤Ë¤Ê¤Ã -¤Æ¤¤¤ë¤¬¡¢¤³¤ì¤Ïµ¼»÷¥Ç¡¼¥¿¥Ù¡¼¥¹ +より細かな制御を行いたい場合は、 NSS の `compat' サービスを用いれば ++/\- 書式をフルに用いることができる。デフォルトではソースは `nis' になっ +ているが、これは擬似データベース .BR passwd_compat , group_compat , shadow_compat -¤Ê¤É¤Ë `nisplus' ¤ò»ØÄꤹ¤ë¤³¤È¤Ç¾å½ñ¤­¤Ç¤­¤ë¡£ -¤³¤ì¤é¤Îµ¼»÷¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ï GNU C ¥é¥¤¥Ö¥é¥ê¤Ç¤·¤«ÍøÍѤǤ­¤Ê¤¤¡£ +などに `nisplus' を指定することで上書きできる。 +これらの擬似データベースは GNU C ライブラリでしか利用できない。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .\"O A service named SERVICE is implemented by a shared object library .\"O named libnss_SERVICE.so.1 that resides in /lib. -SERVICE ¤È¤¤¤¦Ì¾Á°¤Î¥µ¡¼¥Ó¥¹¤Ï libnss_SERVICE.so.1 ¤È¤¤¤¦Ì¾Á°¤Î¶¦Í­¥ª -¥Ö¥¸¥§¥¯¥È¥é¥¤¥Ö¥é¥ê¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£¤³¤ì¤Ï /lib ¤ËÃÖ¤«¤ì¤ë¡£ +SERVICE という名前のサービスは libnss_SERVICE.so.1 という名前の共有オ +ブジェクトライブラリで実装されている。これは /lib に置かれる。 .TP 25 .PD 0 .I /etc/nsswitch.conf .\"O configuration file -ÀßÄê¥Õ¥¡¥¤¥ë¡£ +設定ファイル。 .TP .BI /lib/libnss_compat.so. X .\"O implements `compat' source for glibc2 -glibc2 ¤ËÂФ·¤Æ `compat' ¥½¡¼¥¹¤ò¼ÂÁõ¤·¤¿¤â¤Î¡£ +glibc2 に対して `compat' ソースを実装したもの。 .TP .BI /lib/libnss_db.so. X .\"O implements `db' source for glibc2 -glibc2 ¤ËÂФ·¤Æ `db' ¥½¡¼¥¹¤ò¼ÂÁõ¤·¤¿¤â¤Î¡£ +glibc2 に対して `db' ソースを実装したもの。 .TP .BI /lib/libnss_dns.so. X .\"O implements `dns' source for glibc2 -glibc2 ¤ËÂФ·¤Æ `dns' ¥½¡¼¥¹¤ò¼ÂÁõ¤·¤¿¤â¤Î¡£ +glibc2 に対して `dns' ソースを実装したもの。 .TP .BI /lib/libnss_files.so. X .\"O implements `files' source for glibc2 -glibc2 ¤ËÂФ·¤Æ `files' ¥½¡¼¥¹¤ò¼ÂÁõ¤·¤¿¤â¤Î¡£ +glibc2 に対して `files' ソースを実装したもの。 .TP .BI /lib/libnss_hesoid.so. X .\"O implements `hesoid' source for glibc2 -glibc2 ¤ËÂФ·¤Æ `hesoid' ¥½¡¼¥¹¤ò¼ÂÁõ¤·¤¿¤â¤Î¡£ +glibc2 に対して `hesoid' ソースを実装したもの。 .TP .BI /lib/libnss_nis.so. X .\"O implements `nis' source for glibc2 -glibc2 ¤ËÂФ·¤Æ `nis' ¥½¡¼¥¹¤ò¼ÂÁõ¤·¤¿¤â¤Î¡£ +glibc2 に対して `nis' ソースを実装したもの。 .TP .BI /lib/libnss_nisplus.so. X .\"O implements `nisplus' source for glibc2 -glibc2 ¤ËÂФ·¤Æ `nisplus' ¥½¡¼¥¹¤ò¼ÂÁõ¤·¤¿¤â¤Î¡£ +glibc2 に対して `nisplus' ソースを実装したもの。 .TP .I /lib/libnss_nisplus.so.2 .\"O implements `nisplus' source for glibc 2.1 -glibc 2.1 ¤ËÂФ·¤Æ `nisplus' ¥½¡¼¥¹¤ò¼ÂÁõ¤·¤¿¤â¤Î¡£ +glibc 2.1 に対して `nisplus' ソースを実装したもの。 .PD .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Within each process that uses .\"O .BR nsswitch.conf , .\"O the entire file is read only once; if the file is later changed, the .\"O process will continue using the old configuration. .I nsswitch.conf -¤òÍøÍѤ¹¤ë¤½¤ì¤¾¤ì¤Î¥×¥í¥»¥¹¤Ç¤Ï¡¢¥Õ¥¡¥¤¥ë¤Ï°ìÅÙ¤·¤«Æɤ߹þ¤Þ¤ì¤Ê¤¤¡£ -¤â¤· nsswitch.conf ¤¬¤¢¤È¤Ç½ñ¤­´¹¤¨¤é¤ì¤Æ¤â¡¢ -¤½¤Î¥×¥í¥»¥¹¤Ï¸Å¤¤ÀßÄê¤Î¤Þ¤Þ¤ÇÆ°ºî¤ò·Ñ³¤¹¤ë¡£ +を利用するそれぞれのプロセスでは、ファイルは一度しか読み込まれない。 +もし nsswitch.conf があとで書き換えられても、 +そのプロセスは古い設定のままで動作を継続する。 .LP .\"O With Solaris, it isn't possible to link programs using the NSS Service .\"O statically. .\"O With Linux, this is no problem. -Solaris ¤Ç¤Ï NSS ¥µ¡¼¥Ó¥¹¤òÍѤ¤¤¿¥×¥í¥°¥é¥à¤ò¥¹¥¿¥Æ¥£¥Ã¥¯¤Ë¥ê¥ó¥¯¤¹¤ë -¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ Linux ¤Ç¤ÏÌäÂê¤Ê¤¯¥¹¥¿¥Æ¥£¥Ã¥¯¥ê¥ó¥¯¤Ç¤­¤ë¡£ +Solaris では NSS サービスを用いたプログラムをスタティックにリンクする +ことはできない。 Linux では問題なくスタティックリンクできる。 diff --git a/draft/man5/passwd.5 b/draft/man5/passwd.5 index 232c5cfa..0e738bcf 100644 --- a/draft/man5/passwd.5 +++ b/draft/man5/passwd.5 @@ -35,33 +35,33 @@ .\" .TH PASSWD 5 1998-01-05 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O passwd \- password file -passwd \- ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë +passwd \- パスワードファイル .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .B Passwd .\"O is a text file, that contains a list of the system's accounts, .\"O giving for each account some useful information like user ID, .\"O group ID, home directory, shell, etc. .B passwd -¥Õ¥¡¥¤¥ë¤Ï¡¢¤½¤Î¥·¥¹¥Æ¥à¤Î¥¢¥«¥¦¥ó¥È¥ê¥¹¥È¤òÊÝ»ý¤¹¤ë¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ -¥¢¥«¥¦¥ó¥ÈËè¤Ë¡¢¥æ¡¼¥¶¡¼ ID¡¢¥°¥ë¡¼¥× ID¡¢¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¡¢ -»ÈÍѤ¹¤ë shell ¥³¥Þ¥ó¥É¤Î¼ïÎà¡¢Åù¤ÎÍ­ÍѤʾðÊó¤òÄ󶡤·¤Æ¤¤¤ë¡£ +ファイルは、そのシステムのアカウントリストを保持するテキストファイルである。 +アカウント毎に、ユーザー ID、グループ ID、ホームディレクトリ、 +使用する shell コマンドの種類、等の有用な情報を提供している。 .\"O Often, it also contains the encrypted passwords for each account. .\"O It should have general read permission (many utilities, like .\"O .BR ls (1) .\"O use it to map user IDs to usernames), but write access only for the .\"O superuser. -¤Þ¤¿¡¢³Æ¥¢¥«¥¦¥ó¥È¤Î°Å¹æ²½¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤òÊÝ»ý¤¹¤ë¾ì¹ç¤â¤¢¤ë¡£ -¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹µö²Ä¤Ï¡¢Á´¥æ¡¼¥¶¡¼¤Ë -Æɤ߽Ф·¤Îµö²Ä¤òÍ¿¤¨ +また、各アカウントの暗号化されたパスワードを保持する場合もある。 +パスワードファイルのアクセス許可は、全ユーザーに +読み出しの許可を与え .RI ( ls (1) -Åù¤Î¿¤¯¤Î¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ç¤Ï¥æ¡¼¥¶¡¼ ID ¤ò¥æ¡¼¥¶¡¼Ì¾¤Ë -Âбþ¤µ¤»¤ë¤Î¤Ë +等の多くのユーティリティではユーザー ID をユーザー名に +対応させるのに .B passwd -¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ¹¤ë)¡¢ -½ñ¤­¹þ¤ßµö²Ä¤Ï¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¤Ë¤Î¤ßÍ¿¤¨¤ë¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +ファイルを使用する)、 +書き込み許可はスーパーユーザーにのみ与えるようにすべきである。 .PP .\"O In the good old days there was no great problem with this general .\"O read permission. @@ -74,74 +74,74 @@ passwd \- .\"O and the encrypted passwords are in .\"O .I /etc/shadow .\"O which is readable by the superuser only. -¸Å¤­Îɤ­»þÂå¤Ë¤Ï¡¢¤³¤ÎÁ´¥æ¡¼¥¶¡¼¤ËÂФ¹¤ëÆɤ߼è¤êµö²Ä¤Ï -ÆÃÊ̤ÊÌäÂê¤òµ¯¤³¤µ¤Ê¤«¤Ã¤¿¡£Ã¯¤Ç¤â°Å¹æ²½¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤ò -Æɤळ¤È¤¬½ÐÍ褿¤¬¡¢¾å¼ê¤ËÁª¤Ð¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤òÇˤë¤Î¤Ë¤Ï -Åö»þ¤Î¥Ï¡¼¥É¥¦¥§¥¢¤Î®Å٤Ϥ¢¤Þ¤ê¤ËÃÙ¤«¤Ã¤¿¤·¡¢¤½¤ì¤Ë²Ã¤¨¤Æ -ͧ¹¥Åª¤Ê¥æ¡¼¥¶¡¼¼Ò²ñ¤Ç¤¢¤ë¤³¤È¤ò´ðËÜŪ¤ÊÁ°Äó¤È¤·¤Æ¤¤¤¿¡£ -ºÇ¶á¤Ç¤Ï¿¤¯¤Î¿Í¤¬¡¢²¿¤é¤«¤Î¥Ð¡¼¥¸¥ç¥ó¤Î shadow password suite -(¥·¥ã¥É¥¦¡¦¥Ñ¥¹¥ï¡¼¥Éµ¡Ç½¤ò¼Â¸½¤¹¤ë¤¿¤á¤Î¥×¥í¥°¥é¥à·²) -¤òÆ°¤«¤·¤Æ¤¤¤ë¡£¤½¤Î¾ì¹ç +古き良き時代には、この全ユーザーに対する読み取り許可は +特別な問題を起こさなかった。誰でも暗号化されたパスワードを +読むことが出来たが、上手に選ばれたパスワードを破るのには +当時のハードウェアの速度はあまりに遅かったし、それに加えて +友好的なユーザー社会であることを基本的な前提としていた。 +最近では多くの人が、何らかのバージョンの shadow password suite +(シャドウ・パスワード機能を実現するためのプログラム群) +を動かしている。その場合 .I /etc/passwd -¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹¥ï¡¼¥ÉÍó¤Ë¤Ï¡¢°Å¹æ²½¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤ÎÂå¤ï¤ê¤Ë -¥¢¥¹¥¿¥ê¥¹¥¯ (*) ¤¬ÀßÄꤵ¤ì¤ë¡£°Å¹æ²½¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤Ï +ファイルのパスワード欄には、暗号化されたパスワードの代わりに +アスタリスク (*) が設定される。暗号化されたパスワードは .I /etc/shadow -¥Õ¥¡¥¤¥ë¤ËÊÝ»ý¤µ¤ì¤ë¡£ +ファイルに保持される。 .I /etc/shadow -¥Õ¥¡¥¤¥ë¤Ï¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¤À¤±¤¬Æɤ߽Ф¹¤³¤È¤¬¤Ç¤­¤ë¡£ +ファイルはスーパーユーザーだけが読み出すことができる。 .PP .\"O Regardless of whether shadow passwords are used, many sysadmins .\"O use an asterisk in the encrypted password field to make sure .\"O that this user can not authenticate him- or herself using a .\"O password. .\"O (But see the Notes below.) -shadow password ¤¬»È¤ï¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Ë¤Ï¤è¤é¤º¡¢Â¿¤¯¤Î¥·¥¹¥Æ¥à -´ÉÍý¼Ô¤Ï¡¢°Å¹æ²½¥Ñ¥¹¥ï¡¼¥ÉÍó¤Ë¥¢¥¹¥¿¥ê¥¹¥¯¤òÀßÄꤹ¤ë¤³¤È¤Ç¡¢ -¤½¤Î¥æ¡¼¥¶¡¼¤¬¥Ñ¥¹¥ï¡¼¥É¤Ç¤Îǧ¾Ú¤¬¼õ¤±¤é¤ì¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¤¤ë -(²¼µ­¤Î¡ÖÃí°Õ¡×¤Î¹à¤ò»²¾È)¡£ +shadow password が使われているかどうかにはよらず、多くのシステム +管理者は、暗号化パスワード欄にアスタリスクを設定することで、 +そのユーザーがパスワードでの認証が受けられないようにしている +(下記の「注意」の項を参照)。 .PP .\"O If you create a new login, first put an asterisk in the password field, .\"O then use .\"O .BR passwd (1) .\"O to set it. -¿·¤·¤¤¥æ¡¼¥¶¡¼¤òÅÐÏ¿¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢¥Ñ¥¹¥ï¡¼¥ÉÍó¤Ë¥¢¥¹¥¿¥ê¥¹¥¯¤òÀßÄꤷ¤Æ¤ª¤­ +新しいユーザーを登録する場合には、パスワード欄にアスタリスクを設定しておき .BR passwd (1) -¥³¥Þ¥ó¥É¤Ë¤è¤êÀßÄê¤ò¹Ô¤¦¤è¤¦¤Ë¤¹¤ë¡£ +コマンドにより設定を行うようにする。 .PP .\"O There is one entry per line, and each line has the format: -¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Ï 1 ¹Ô¤´¤È¤Ë 1 ¥¨¥ó¥È¥ê¤ò»ý¤Á¡¢ -³Æ¹Ô¤Î½ñ¼°¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë: +パスワードファイルは 1 行ごとに 1 エントリを持ち、 +各行の書式は以下の通りである: .sp .RS account:password:UID:GID:GECOS:directory:shell .RE .sp .\"O The field descriptions are: -³ÆÍó¤ÎÀâÌÀ: +各欄の説明: .RS .TP 1.0in .I account .\"O the name of the user on the system. .\"O It should not contain capital letters. -¤½¤Î¥·¥¹¥Æ¥à¤Ç¤Î¥æ¡¼¥¶¡¼Ì¾¡£Âçʸ»ú¤ò´Þ¤Þ¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£ +そのシステムでのユーザー名。大文字を含まないようにする。 .TP .I password .\"O the encrypted user password, an asterisk (*), or the letter \(aqx\(aq. .\"O (See .\"O .BR pwconv (8) .\"O for an explanation of \(aqx\(aq.) -¥æ¡¼¥¶¡¼¤Î°Å¹æ²½¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¡¢¥¢¥¹¥¿¥ê¥¹¥¯¡¢¤Þ¤¿¤Ïʸ»ú \(aqx\(aq -(\(aqx\(aq ¤ÎÀâÌÀ¤Ë¤Ä¤¤¤Æ¤Ï +ユーザーの暗号化されたパスワード、アスタリスク、または文字 \(aqx\(aq +(\(aqx\(aq の説明については .BR pwconv (8) -¤ò»²¾È)¡£ +を参照)。 .TP .I UID .\"O the numerical user ID. -¥æ¡¼¥¶¡¼ ID Èֹ档 +ユーザー ID 番号。 .TP .I GID .\"O the numerical primary group ID for this user. -¥æ¡¼¥¶¡¼¤¬Â°¤¹¤ë¥×¥é¥¤¥Þ¥ê¥°¥ë¡¼¥× ID Èֹ档 +ユーザーが属するプライマリグループ ID 番号。 .TP .I GECOS .\"O This field is optional and only used for informational purposes. @@ -154,22 +154,22 @@ account:password:UID:GID:GECOS:directory:shell .\"O The gcos field in the password file was a place to stash the .\"O information for the $IDENTcard. .\"O Not elegant." -ËÜÍó¤Ï¾Êά²Äǽ¤Ç¡¢¾ðÊóÄ󶡤ÎÌÜŪ¤Î¤ß¤Ë»È¤ï¤ì¤ë¡£ -¥æ¡¼¥¶¡¼¤Î¥Õ¥ë¥Í¡¼¥à¤òÀßÄꤹ¤ë¤³¤È¤¬Â¿¤¤¡£GECOS ¤Ï General Electric -Comprehensive Operating System ¤ò°ÕÌ£¤·¤Æ¤ª¤ê¡¢GE ¼Ò¤ÎÂ絬ÌÏ¥·¥¹¥Æ¥àÉôÌç -¤¬ Honeywell ¼Ò¤ËÇäµÑ¤µ¤ì¤¿ºÝ¤Ë GCOS ¤Ø¤ÈÊѹ¹¤µ¤ì¤¿¡£Dennis Ritchie »á¤Ï -¼¡¤Î¤è¤¦¤Ë¸À¤Ã¤Æ¤¤¤ë:¡Ö»þ¡¹¥×¥ê¥ó¥¿½ÐÎϤ䡢 -¥Ð¥Ã¥Á¥¸¥ç¥Ö¤ò GCOS ¥Þ¥·¥ó¤ËÁ÷¤Ã¤¿¤ê¤¹¤ë¤¬¡¢ -¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Î gcos Íó¤Ï $IDENT ¥«¡¼¥ÉÍѤξðÊó¤ò -±£¤·¤Æ¤ª¤¯¤¿¤á¤Î¾ì½ê¤Ê¤ó¤À¡£¤Þ¤ë¤Ã¤­¤ê¥¨¥ì¥¬¥ó¥È¤¸¤ã¤Ê¤¤¡£¡× +本欄は省略可能で、情報提供の目的のみに使われる。 +ユーザーのフルネームを設定することが多い。GECOS は General Electric +Comprehensive Operating System を意味しており、GE 社の大規模システム部門 +が Honeywell 社に売却された際に GCOS へと変更された。Dennis Ritchie 氏は +次のように言っている:「時々プリンタ出力や、 +バッチジョブを GCOS マシンに送ったりするが、 +パスワードファイルの gcos 欄は $IDENT カード用の情報を +隠しておくための場所なんだ。まるっきりエレガントじゃない。」 .TP .I directory .\"O the user's .\"O .B $HOME .\"O directory. -¥æ¡¼¥¶¡¼¤Î +ユーザーの .B $HOME -¥Ç¥£¥ì¥¯¥È¥ê¡£ +ディレクトリ。 .TP .I shell .\"O the program to run at login (if empty, use @@ -177,24 +177,24 @@ Comprehensive Operating System .\"O If set to a nonexisting executable, the user will be unable to login .\"O through .\"O .BR login (1). -¥í¥°¥¤¥ó»þ¤ËÆ°¤¯¥×¥í¥°¥é¥à̾ (¶õÍó¤Î¾ì¹ç +ログイン時に動くプログラム名 (空欄の場合 .I /bin/sh -¤¬»È¤ï¤ì¤ë)¡£ -¸ºß¤·¤Ê¤¤¼Â¹Ô¥×¥í¥°¥é¥à¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ +が使われる)。 +存在しない実行プログラムが設定された場合、 .BR login (1) -¤Ë¤è¤ë¥·¥¹¥Æ¥à¤Ø¤Î¥í¥°¥¤¥ó¤Ï¤Ç¤­¤Ê¤¯¤Ê¤ë¡£ +によるシステムへのログインはできなくなる。 .RE .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .I /etc/passwd .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O If you want to create .\"O user groups, their GIDs must be equal and there must be an entry in .\"O \fI/etc/group\fP, or no group will exist. -¥æ¡¼¥¶¡¼¥°¥ë¡¼¥×¤òºî¤ê¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢Æ±¤¸¥°¥ë¡¼¥×¤Ë°¤¹¤ë -¥æ¡¼¥¶¡¼¤Î GID ¤ÏƱ¤¸ÃͤȤ·¡¢¤½¤Î GID ¤ò \fI/etc/group\fP ¤ÎÃæ¤Ë -ÄêµÁ¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¡£¤½¤¦¤·¤Ê¤¤¤È¥°¥ë¡¼¥×¤òºî¤Ã¤¿¤³¤È¤Ë¤Ï¤Ê¤é¤Ê¤¤¡£ +ユーザーグループを作りたい場合には、同じグループに属する +ユーザーの GID は同じ値とし、その GID を \fI/etc/group\fP の中に +定義しておく必要がある。そうしないとグループを作ったことにはならない。 .PP .\"O If the encrypted password is set to an asterisk, the user will be unable .\"O to login using @@ -209,22 +209,22 @@ Comprehensive Operating System .\"O Trying to lock an account by simply changing the .\"O shell field yields the same result and additionally allows the use of .\"O .BR su (1). -°Å¹æ²½¥Ñ¥¹¥ï¡¼¥É¤È¤·¤Æ¥¢¥¹¥¿¥ê¥¹¥¯¤òÀßÄꤹ¤ë¤È¡¢ +暗号化パスワードとしてアスタリスクを設定すると、 .BR login (1) -¤ò»È¤Ã¤Æ¤Î¥í¥°¥¤¥ó¤¬¤Ç¤­¤Ê¤¯¤Ê¤ë¤¬¡¢ +を使ってのログインができなくなるが、 .BR rlogin (1) -¤Ç¤Ï¤Þ¤À¥í¥°¥¤¥ó¤¬¤Ç¤­¤ë¤·¡¢ +ではまだログインができるし、 .BR rsh (1), .BR cron (8), .BR at (1) -¤ä¥á¥¤¥ë¤Î¥Õ¥£¥ë¥¿Åù¤ò»È¤¤¡¢¸½Â¸¤¹¤ë¥×¥í¥»¥¹¤ò -¼Â¹Ô¤µ¤»¤¿¤ê¡¢¿·¤¿¤Ê¥×¥í¥»¥¹¤òµ¯Æ°¤·¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -»ÈÍѤ¹¤ë shell ¤ÎÍó¤ò¡¢Ã±¤ËÊѹ¹¤¹¤ë¤³¤È¤Ç¥¢¥«¥¦¥ó¥È¤ò -»È¤¨¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤Î¤âƱÍͤηë²Ì¤È¤Ê¤ë¡£¤½¤Î¾ì¹ç¤Ë¤Ï¤µ¤é¤Ë +やメイルのフィルタ等を使い、現存するプロセスを +実行させたり、新たなプロセスを起動したりすることができる。 +使用する shell の欄を、単に変更することでアカウントを +使えないようにするのも同様の結果となる。その場合にはさらに .BR su (1) -¤âÍ­¸ú¤Ê¤Þ¤Þ»Ä¤Ã¤Æ¤·¤Þ¤¦¡£ +も有効なまま残ってしまう。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR login (1), .BR passwd (1), .BR su (1), diff --git a/draft/man5/proc.5 b/draft/man5/proc.5 old mode 100755 new mode 100644 index 936aaf11..4537c99c --- a/draft/man5/proc.5 +++ b/draft/man5/proc.5 @@ -90,29 +90,29 @@ .\" Updated 2009-03-03, Akihiro MOTOKI, LDP v3.19 .\" Updated 2009-03-13, Akihiro MOTOKI, LDP v3.20 .\" -.\"WORD: pseudo-filesystem µ¼»÷¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -.\"WORD: major ¥á¥¸¥ã¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ -.\"WORD: minor ¥Þ¥¤¥Ê¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ -.\"WORD: inode i¥Î¡¼¥ÉÈÖ¹æ -.\"WORD: executable ¼Â¹Ô·Á¼° -.\"WORD: file descriptor ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: swap in/out ¥¹¥ï¥Ã¥×¥¤¥ó/¥¢¥¦¥È -.\"WORD: page in/out ¥Ú¡¼¥¸¥¤¥ó/¥¢¥¦¥È -.\"WORD: minor/major fault ¥Þ¥¤¥Ê¡¼/¥á¥¸¥ã¡¼¥Õ¥©¡¼¥ë¥È -.\"WORD: demand-loaded in Í×µá»þ¥í¡¼¥É¥¤¥ó -.\"WORD: channels ¥Á¥ã¥Í¥ë -.\"WORD: core file ¥³¥¢¥Õ¥¡¥¤¥ë -.\"WORD: loadable module ¥í¡¼¥À¥Ö¥ë¥â¥¸¥å¡¼¥ë -.\"WORD: hotplugged ³èÀþÁÞÈ´ -.\"WORD: context switches ¥³¥ó¥Æ¥¯¥¹¥È¡¦¥¹¥¤¥Ã¥Á +.\"WORD: pseudo-filesystem 擬似ファイルシステム +.\"WORD: major メジャーデバイス番号 +.\"WORD: minor マイナーデバイス番号 +.\"WORD: inode iノード番号 +.\"WORD: executable 実行形式 +.\"WORD: file descriptor ファイルディスクリプタ +.\"WORD: swap in/out スワップイン/アウト +.\"WORD: page in/out ページイン/アウト +.\"WORD: minor/major fault マイナー/メジャーフォールト +.\"WORD: demand-loaded in 要求時ロードイン +.\"WORD: channels チャネル +.\"WORD: core file コアファイル +.\"WORD: loadable module ローダブルモジュール +.\"WORD: hotplugged 活線挿抜 +.\"WORD: context switches コンテクスト・スイッチ .\" .TH PROC 5 2009-09-30 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O proc \- process information pseudo-file system -proc \- ¥×¥í¥»¥¹¤Î¾ðÊó¤ò´Þ¤àµ¼»÷¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à +proc \- プロセスの情報を含む擬似ファイルシステム .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .I proc .\"O file system is a pseudo-file system which is used as an interface to @@ -122,21 +122,21 @@ proc \- .\"O Most of it is read-only, but some files allow kernel variables to be .\"O changed. .I proc -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ïµ¼»÷Ū¤Ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ê¡¢ -¥«¡¼¥Í¥ëÆâ¤Î¥Ç¡¼¥¿¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤È¤·¤Æ»ÈÍѤµ¤ì¤ë¡£ -°ìÈÌŪ¤Ë¤Ï +ファイルシステムは擬似的なファイルシステムであり、 +カーネル内のデータへのインターフェースとして使用される。 +一般的には .I /proc -¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤ë¡£ -ÂçÉôʬ¤Î¥Õ¥¡¥¤¥ë¤ÏÆɤ߽Ф·ÀìÍÑ (read-only) ¤Ç¤¢¤ë¤¬¡¢ -¤¤¤¯¤Ä¤«¤Î¥Õ¥¡¥¤¥ë¤Ï½ñ¤­¹þ¤ß²Äǽ¤Ç¤¢¤ê¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤á¤Ð¥«¡¼¥Í¥ë¤ÎÆâÉôÊÑ¿ô¤òÊѹ¹¤Ç¤­¤ë¡£ +にマウントされる。 +大部分のファイルは読み出し専用 (read-only) であるが、 +いくつかのファイルは書き込み可能であり、 +そのファイルに書き込めばカーネルの内部変数を変更できる。 .LP .\"O The following outline gives a quick tour through the .\"O .I /proc .\"O hierarchy. -°Ê²¼¤Ï +以下は .I /proc -³¬ÁؤδÊñ¤Ê¤¢¤é¤Þ¤·¤Ç¤¢¤ë¡£ +階層の簡単なあらましである。 .PD 1 .TP .I /proc/[pid] @@ -144,9 +144,9 @@ proc \- .\"O subdirectory is named by the process ID. .\"O Each such subdirectory contains the following .\"O pseudo-files and directories. -¼Â¹ÔÃæ¤Î¥×¥í¥»¥¹¤Ë¤Ä¤¤¤Æ¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¡£ -¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê̾¤Ï (¤½¤Î¥×¥í¥»¥¹¤Î) ¥×¥í¥»¥¹ ID ¤Ç¤¢¤ë¡£ -³Æ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢°Ê²¼¤Îµ¼»÷¥Õ¥¡¥¤¥ë¤È¥Ç¥£¥ì¥¯¥È¥ê¤ò´Þ¤à¡£ +実行中のプロセスについてのサブディレクトリ。 +サブディレクトリ名は (そのプロセスの) プロセス ID である。 +各サブディレクトリは、以下の擬似ファイルとディレクトリを含む。 .\" FIXME Describe /proc/[pid]/attr and .\" /proc/[pid]/task/[tid]/attr .\" This is a directory @@ -155,16 +155,16 @@ proc \- .\" .TP .\"O .IR /proc/[pid]/auxv " (since 2.6.0-test7)" -.IR /proc/[number]/auxv " (¥«¡¼¥Í¥ë 2.6.0-test7 °Ê¹ß)" +.IR /proc/[number]/auxv " (カーネル 2.6.0-test7 以降)" .\"O This contains the contents of the ELF interpreter information passed .\"O to the process at exec time. .\"O The format is one \fIunsigned long\fP ID .\"O plus one \fIunsigned long\fP value for each entry. .\"O The last entry contains two zeros. -¼Â¹Ô»þ¤Ë¥×¥í¥»¥¹¤ËÅϤµ¤ì¤¿ ELF ¥¤¥ó¥¿¥×¥ê¥¿¾ðÊ󤬳ÊǼ¤µ¤ì¤Æ¤¤¤ë¡£ -¸Ä¡¹¤Î¥¨¥ó¥È¥ê¤Ï¡¢\fIunsigned long\fP ·¿¤Î ID 1 ¸Ä¤Ë -\fIunsigned long\fP ·¿¤ÎÃÍ 1 ¸Ä¤¬Â³¤¯¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤¢¤ë¡£ -ºÇ¸å¤Î¥¨¥ó¥È¥ê¤Ë¤Ï 0 ¤¬ 2 ¸ÄÆþ¤Ã¤Æ¤¤¤ë¡£ +実行時にプロセスに渡された ELF インタプリタ情報が格納されている。 +個々のエントリは、\fIunsigned long\fP 型の ID 1 個に +\fIunsigned long\fP 型の値 1 個が続くフォーマットである。 +最後のエントリには 0 が 2 個入っている。 .\" FIXME Describe /proc/[pid]/cgroup and .\" /proc/[pid]/task/[tid]/cgroup .\" Info in Documentation/cgroups.txt @@ -186,37 +186,37 @@ proc \- .\"O The command-line arguments appear in this file as a set of .\"O null-separated strings, .\"O with a further null byte (\(aq\\0\(aq) after the last string. -¥×¥í¥»¥¹¤Î´°Á´¤Ê¥³¥Þ¥ó¥É¹Ô¤òÊÝ»ý¤¹¤ë¡£ -¤¿¤À¤·¡¢¤½¤Î¥×¥í¥»¥¹¤¬¥¾¥ó¥Ó¥×¥í¥»¥¹¤Î¾ì¹ç¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¶õ¤È¤Ê¤ë¡£ -.\" Linux 2.3.26 ¤Ç¤Ï¡¢¥×¥í¥»¥¹¤¬¥¹¥ï¥Ã¥×¥¢¥¦¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤â¡¢ -.\" ¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¶õ¤È¤Ê¤Ã¤Æ¤¤¤¿¡£ -¤Ä¤Þ¤ê¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤òÆɤ߽Ф·¤Æ¤â°ìʸ»ú¤âÊÖ¤é¤Ê¤¤¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ç¤Ï¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤¬¡¢ -¥Ì¥ëʸ»ú¤Ç¶èÀÚ¤é¤ì¤¿Ê¸»úÎó¤È¤·¤Æ½ñ¤«¤ì¤Æ¤ª¤ê¡¢ -ºÇ¸å¤Îʸ»úÎó¤Î¸å¤Ë¥Ì¥ë¥Ð¥¤¥È (\(aq\\0\(aq) ¤¬°ì¤ÄÃÖ¤«¤ì¤ë¡£ +プロセスの完全なコマンド行を保持する。 +ただし、そのプロセスがゾンビプロセスの場合は、このファイルは空となる。 +.\" Linux 2.3.26 では、プロセスがスワップアウトされている場合も、 +.\" このファイルは空となっていた。 +つまり、このファイルを読み出しても一文字も返らない。 +このファイルではコマンドライン引き数が、 +ヌル文字で区切られた文字列として書かれており、 +最後の文字列の後にヌルバイト (\(aq\\0\(aq) が一つ置かれる。 .TP .\"O .IR /proc/[pid]/coredump_filter " (since kernel 2.6.23)" -.IR /proc/[pid]/coredump_filter " (kernel 2.6.23 °Ê¹ß)" +.IR /proc/[pid]/coredump_filter " (kernel 2.6.23 以降)" .\"O See .\"O .BR core (5). .BR core (5) -»²¾È¡£ +参照。 .TP .\"O .IR /proc/[pid]/cpuset " (since kernel 2.6.12)" -.IR /proc/[pid]/cpuset " (kernel 2.6.12 °Ê¹ß)" +.IR /proc/[pid]/cpuset " (kernel 2.6.12 以降)" .\" and/proc/[pid]/task/[tid]/cpuset .\"O See .\"O .BR cpuset (7). .BR cpuset (7) -»²¾È¡£ +参照。 .TP .I /proc/[pid]/cwd .\"O This is a symbolic link to the current working directory of the process. .\"O To find out the current working directory of process 20, .\"O for instance, you can do this: -¥×¥í¥»¥¹¤Î¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤Ø¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¡£ -Î㤨¤Ð¡¢¥×¥í¥»¥¹ 20 ¤Î¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤ò¸«¤Ä¤±¤ë¤¿¤á¤Ë¤Ï¡¢ -¼¡¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¤è¤¤¡£ +プロセスのカレントワーキングディレクトリへのシンボリックリンク。 +例えば、プロセス 20 のカレントワーキングディレクトリを見つけるためには、 +次のようにすればよい。 .in +4n .nf @@ -233,35 +233,35 @@ proc \- .\"O you may use .\"O .IR "pwd\ \-P" . .I pwd -¥³¥Þ¥ó¥É¤Ï¥·¥§¥ë¤ÎÆâÉô¥³¥Þ¥ó¥É¤Î¤³¤È¤¬¤è¤¯¤¢¤ê¡¢ -¤¦¤Þ¤¯Æ°ºî¤·¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ +コマンドはシェルの内部コマンドのことがよくあり、 +うまく動作しないかもしれない。 .BR bash (1) -¤Ç¤Ï +では .I "pwd \-P" -¤ò»È¤Ã¤Æ¤â¤è¤¤¡£ +を使ってもよい。 .\"O .\" The following was still true as at kernel 2.6.13 -.\" °Ê²¼¤ÎÆâÍÆ¤Ï ¥«¡¼¥Í¥ë 2.6.13 ¤Ç¤Ï¤Þ¤ÀÀµ¤·¤¤¡£ +.\" 以下の内容は カーネル 2.6.13 ではまだ正しい。 .\"O In a multithreaded process, the contents of this symbolic link .\"O are not available if the main thread has already terminated .\"O (typically by calling .\"O .BR pthread_exit (3)). -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥×¥í¥»¥¹¤Ç¤Ï¡¢¥á¥¤¥ó¥¹¥ì¥Ã¥É¤¬¤¹¤Ç¤Ë½ªÎ»¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -¤³¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ÎÆâÍƤϻ²¾È¤Ç¤­¤Ê¤¤ -(¥¹¥ì¥Ã¥É¤Î½ªÎ»¤ÏÄ̾ï +マルチスレッドプロセスでは、メインスレッドがすでに終了している場合、 +このシンボリックリンクの内容は参照できない +(スレッドの終了は通常 .BR pthread_exit (3) -¤ò¸Æ¤Ó½Ð¤·¤Ë¤è¤ê¹Ô¤ï¤ì¤ë)¡£ +を呼び出しにより行われる)。 .TP .I /proc/[pid]/environ .\"O This file contains the environment for the process. .\"O The entries are separated by null bytes (\(aq\\0\(aq), .\"O and there may be a null byte at the end. .\"O Thus, to print out the environment of process 1, you would do: -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥×¥í¥»¥¹¤Î´Ä¶­ÊÑ¿ô¤ò´Þ¤ó¤Ç¤¤¤ë¡£ -³Æ¥¨¥ó¥È¥ê¤Ï NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Ç¶èÀÚ¤é¤ì¤Æ¤¤¤Æ¡¢ -ËöÈø¤Ë NULL ¥Ð¥¤¥È¤¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¥×¥í¥»¥¹ 1 ¤Î´Ä¶­ÊÑ¿ô¤òɽ¼¨¤¹¤ë¤¿¤á¤Ë¤Ï -¼¡¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¤è¤¤¡£ +このファイルはプロセスの環境変数を含んでいる。 +各エントリは NULL バイト (\(aq\\0\(aq) で区切られていて、 +末尾に NULL バイトがあるかもしれない。 +したがって、プロセス 1 の環境変数を表示するためには +次のようにすればよい。 .in +4n .nf @@ -274,31 +274,31 @@ proc \- .I /proc/[pid]/exe .\"O Under Linux 2.2 and later, this file is a symbolic link .\"O containing the actual pathname of the executed command. -Linux 2.2 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¡¢ -¼Â¹Ô²Äǽ¥³¥Þ¥ó¥É¤Î¼ÂºÝ¤Î¥Ñ¥¹Ì¾¤ò³ÊǼ¤·¤Æ¤¤¤ë¡£ +Linux 2.2 以降では、このファイルはシンボリックリンクで、 +実行可能コマンドの実際のパス名を格納している。 .\"O This symbolic link can be dereferenced normally; attempting to open .\"O it will open the executable. .\"O You can even type .\"O .I /proc/[pid]/exe .\"O to run another copy of the same executable as is being run by .\"O process [pid]. -¤³¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ÏÄ̾ï¤Î¤è¤¦¤Ëé¤ë¤³¤È¤¬¤Ç¤­¤ë; -¤³¤ì¤ò¥ª¡¼¥×¥ó¤¹¤ë¤È¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤¬¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£ -(¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç) +このシンボリックリンクは通常のように辿ることができる; +これをオープンすると実行可能ファイルがオープンされる。 +(コマンドラインで) .I /proc/[pid]/exe -¤ÈÆþÎϤ¹¤ë¤È¡¢¥×¥í¥»¥¹ÈÖ¹æ [pid] ¤Ç¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë -¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤ò¤â¤¦°ì¤Ä¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +と入力すると、プロセス番号 [pid] で実行されている +実行可能ファイルをもう一つ実行することができる。 .\"O .\" The following was still true as at kernel 2.6.13 -.\" °Ê²¼¤ÎÆâÍÆ¤Ï ¥«¡¼¥Í¥ë 2.6.13 ¤Ç¤Ï¤Þ¤ÀÀµ¤·¤¤¡£ +.\" 以下の内容は カーネル 2.6.13 ではまだ正しい。 .\"O In a multithreaded process, the contents of this symbolic link .\"O are not available if the main thread has already terminated .\"O (typically by calling .\"O .BR pthread_exit (3)). -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥×¥í¥»¥¹¤Ç¤Ï¡¢¥á¥¤¥ó¥¹¥ì¥Ã¥É¤¬¤¹¤Ç¤Ë½ªÎ»¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -¤³¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ÎÆâÍƤϻ²¾È¤Ç¤­¤Ê¤¤ -(¥¹¥ì¥Ã¥É¤Î½ªÎ»¤ÏÄ̾ï +マルチスレッドプロセスでは、メインスレッドがすでに終了している場合、 +このシンボリックリンクの内容は参照できない +(スレッドの終了は通常 .BR pthread_exit (3) -¤ò¸Æ¤Ó½Ð¤·¤Ë¤è¤ê¹Ô¤ï¤ì¤ë)¡£ +を呼び出しにより行われる)。 .\"O Under Linux 2.0 and earlier .\"O .I /proc/[pid]/exe @@ -310,53 +310,53 @@ Linux 2.2 .\"O .\"O [device]:inode .\"O -Linux 2.0 °ÊÁ°¤Ç¤Ï¡¢ +Linux 2.0 以前では、 .I /proc/[pid]/exe -¤Ï¼Â¹Ô¤µ¤ì¤¿¥Ð¥¤¥Ê¥ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¤è¤¦¤Ë¸«¤¨¤ë¡£ -Linux 2.0 °ÊÁ°¤Ç¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ +は実行されたバイナリへのポインタで、シンボリックリンクのように見える。 +Linux 2.0 以前では、このファイルに対して .BR readlink (2) -¤ò¼Â¹Ô¤¹¤ë¤È¡¢ +を実行すると、 - [¥Ç¥Ð¥¤¥¹ÈÖ¹æ]:i¥Î¡¼¥ÉÈÖ¹æ + [デバイス番号]:iノード番号 -¤È¤¤¤¦¥Õ¥©¡¼¥Þ¥Ã¥È¤Îʸ»úÎó¤¬Ê֤롣 +というフォーマットの文字列が返る。 .\"O For example, [0301]:1502 would be inode 1502 on device major 03 (IDE, .\"O MFM, etc. drives) minor 01 (first partition on the first drive). -¤¿¤È¤¨¤Ð¡¢[0301]:1502 ¤Ï¥á¥¸¥ã¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ 03 (IDE, MFM ¤Ê¤É¤Î¥É¥é¥¤¥Ö) -¥Þ¥¤¥Ê¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ 01 (ºÇ½é¤Î¥É¥é¥¤¥Ö¤ÎºÇ½é¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó) ¤Î -¥Ç¥Ð¥¤¥¹¾å¤Î i¥Î¡¼¥ÉÈÖ¹æ 1502 ¤Ç¤¢¤ë¡£ +たとえば、[0301]:1502 はメジャーデバイス番号 03 (IDE, MFM などのドライブ) +マイナーデバイス番号 01 (最初のドライブの最初のパーティション) の +デバイス上の iノード番号 1502 である。 .\"O .BR find (1) .\"O with the .\"O .I \-inum .\"O option can be used to locate the file. .I \-inum -¥ª¥×¥·¥ç¥ó¤ò¤Ä¤±¤Æ +オプションをつけて .BR find (1) -¤ò»È¤¦¤È¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Î½êºß¤òõ¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +を使うと、このファイルの所在を探すことができる。 .TP .I /proc/[pid]/fd .\"O This is a subdirectory containing one entry for each file which the .\"O process has open, named by its file descriptor, and which is a .\"O symbolic link to the actual file. .\"O Thus, 0 is standard input, 1 standard output, 2 standard error, etc. -¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤·¤¿¥Õ¥¡¥¤¥ë³Æ¡¹¤ËÂФ¹¤ë¥¨¥ó¥È¥ê¤ò´Þ¤à¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¡£ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥Õ¥¡¥¤¥ë̾¤Ç¡¢ -¼ÂºÝ¤Î¥Õ¥¡¥¤¥ë¤Ø¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ 0 ¤Ïɸ½àÆþÎÏ¡¢1 ¤Ïɸ½à½ÐÎÏ¡¢2 ¤Ïɸ½à¥¨¥é¡¼½ÐÎÏ¡¢¤Ê¤É¤È¤Ê¤ë¡£ +プロセスがオープンしたファイル各々に対するエントリを含むサブディレクトリ。 +ファイルディスクリプタがファイル名で、 +実際のファイルへのシンボリックリンクになっている。 +したがって 0 は標準入力、1 は標準出力、2 は標準エラー出力、などとなる。 .\"O .\" The following was still true as at kernel 2.6.13 -.\" °Ê²¼¤ÎÆâÍÆ¤Ï ¥«¡¼¥Í¥ë 2.6.13 ¤Ç¤Ï¤Þ¤ÀÀµ¤·¤¤¡£ +.\" 以下の内容は カーネル 2.6.13 ではまだ正しい。 .\"O In a multithreaded process, the contents of this directory .\"O are not available if the main thread has already terminated .\"O (typically by calling .\"O .BR pthread_exit (3)). -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥×¥í¥»¥¹¤Ç¤Ï¡¢¥á¥¤¥ó¥¹¥ì¥Ã¥É¤¬¤¹¤Ç¤Ë½ªÎ»¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ÎÆâÍƤϻ²¾È¤Ç¤­¤Ê¤¤ -(¥¹¥ì¥Ã¥É¤Î½ªÎ»¤ÏÄ̾ï +マルチスレッドプロセスでは、メインスレッドがすでに終了している場合、 +このディレクトリの内容は参照できない +(スレッドの終了は通常 .BR pthread_exit (3) -¤ò¸Æ¤Ó½Ð¤·¤Ë¤è¤ê¹Ô¤ï¤ì¤ë)¡£ +を呼び出しにより行われる)。 .\"O Programs that will take a filename as a command-line argument, .\"O but will not take input from standard input if no argument is supplied, @@ -370,18 +370,18 @@ Linux 2.0 .\"O is the flag designating an input file and .\"O .I \-o .\"O is the flag designating an output file: -¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤È¤·¤Æ¥Õ¥¡¥¤¥ë̾¤ò¼õ¤±¼è¤ë¤¬¡¢°ú¤­¿ô¤¬ -ÅϤµ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ëɸ½àÆþÎϤ«¤éÆþÎϤò¼õ¤±¼è¤é¤Ê¤¤¤è¤¦¤Ê¥×¥í¥°¥é¥à¤ä¡¢ -¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤È¤·¤Æ½ñ¤­¹þ¤ß¥Õ¥¡¥¤¥ë¤ò¼õ¤±¼è¤ë¤¬¡¢°ú¤­¿ô¤¬ -ÅϤµ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ëɸ½à½ÐÎϤ˽ÐÎϤò¹Ô¤ï¤Ê¤¤¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ç¤¢¤Ã¤Æ¤â¡¢ +コマンドライン引き数としてファイル名を受け取るが、引き数が +渡されなかった場合に標準入力から入力を受け取らないようなプログラムや、 +コマンドライン引き数として書き込みファイルを受け取るが、引き数が +渡されなかった場合に標準出力に出力を行わないようなプログラムであっても、 .I /proc/[pid]/fd -¤ò»È¤¦¤³¤È¤Çɸ½àÆþÎϤäɸ½à½ÐÎϤò»ÈÍѤǤ­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -Î㤨¤Ð¡¢ +を使うことで標準入力や標準出力を使用できるようになる。 +例えば、 .I \-i -¤òÆþÎÏ¥Õ¥¡¥¤¥ë¤ò»ØÄꤹ¤ë¥Õ¥é¥°¡¢ +を入力ファイルを指定するフラグ、 .I \-o -¤ò½ÐÎÏ¥Õ¥¡¥¤¥ë¤ò»ØÄꤹ¤ë¥Õ¥é¥°¤È²¾Äꤹ¤ë¤È¡¢°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò -¼Â¹Ô¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢¥Õ¥£¥ë¥¿¤È¤·¤ÆÆ°ºî¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を出力ファイルを指定するフラグと仮定すると、以下のコマンドを +実行することにより、フィルタとして動作させることができる。 .in +4n .nf @@ -390,14 +390,14 @@ Linux 2.0 .in .\"O and you have a working filter. -.\"O motoki: Âбþ¤¹¤ëÌõ¤Ï¥³¥Þ¥ó¥É¤Î¾å¦¤Ë¤¢¤ë¡£ +.\"O motoki: 対応する訳はコマンドの上側にある。 .\"O .\" The following is not true in my tests (MTK): .\"O .\" Note that this will not work for .\"O .\" programs that seek on their files, as the files in the fd directory .\"O .\" are not seekable. -.\" »ä¤Î¥Æ¥¹¥È¤Ç¤Ï¡¢°Ê²¼¤ÏÀµ¤·¤¯¤Ê¤«¤Ã¤¿ (MTK): -.\" ¤¿¤À¤· fd ¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¤Ï¥·¡¼¥¯ (seek) ¤Ç¤­¤Ê¤¤¤Î¤Ç¡¢ -.\" ¤³¤ÎÊýË¡¤Ï¥Õ¥¡¥¤¥ë¤ò¥·¡¼¥¯¤¹¤ë¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¤¦¤Þ¤¯Æ¯¤«¤Ê¤¤¡£ +.\" 私のテストでは、以下は正しくなかった (MTK): +.\" ただし fd ディレクトリ内のファイルはシーク (seek) できないので、 +.\" この方法はファイルをシークするようなプログラムではうまく働かない。 .\"O .I /proc/self/fd/N .\"O is approximately the same as @@ -409,14 +409,14 @@ Linux 2.0 .\"O .IR /proc/self/fd , .\"O in fact. .I /proc/self/fd/N -¤Ï¡¢¤¢¤ë¼ï¤Î Unix ¤ä Unix É÷¤Î¥·¥¹¥Æ¥à¤Ë¤¢¤ë +は、ある種の Unix や Unix 風のシステムにある .I /dev/fd/N -¤È¤À¤¤¤¿¤¤Æ±¤¸¤Ç¤¢¤ë¡£ -»ö¼Â Linux ¤Î¤¿¤¤¤Æ¤¤¤Î MAKEDEV ¥¹¥¯¥ê¥×¥È¤Ï¡¢ +とだいたい同じである。 +事実 Linux のたいていの MAKEDEV スクリプトは、 .I /dev/fd -¤ò +を .I /proc/self/fd -¤Ø¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ë¤·¤Æ¤¤¤ë¡£ +へのシンボリックリンクにしている。 .\"O Most systems provide symbolic links .\"O .IR /dev/stdin , @@ -430,19 +430,19 @@ Linux 2.0 .\"O .IR 2 .\"O in .\"O .IR /proc/self/fd . -¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯ +ほとんどのシステムでは、シンボリックリンク .IR /dev/stdin , .IR /dev/stdout , .IR /dev/stderr -¤¬Ä󶡤µ¤ì¤Æ¤ª¤ê¡¢¤½¤ì¤¾¤ì +が提供されており、それぞれ .I /proc/self/fd -Æâ¤Î¥Õ¥¡¥¤¥ë +内のファイル .IR 0 , .IR 1 , .IR 2 -¤Ë¥ê¥ó¥¯¤µ¤ì¤Æ¤¤¤ë¡£ +にリンクされている。 .\"O Thus the example command above could be written as: -¤·¤¿¤¬¤Ã¤Æ¡¢¾å½Ò¤Î¥µ¥ó¥×¥ë¥³¥Þ¥ó¥É¤Ï¼¡¤Î¤è¤¦¤Ë¤â½ñ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£ +したがって、上述のサンプルコマンドは次のようにも書くことができる。 .in +4n .nf @@ -454,15 +454,15 @@ Linux 2.0 .\" CONFIG_AUDITSYSCALL .TP .\"O .IR /proc/[pid]/fdinfo/ " (since kernel 2.6.22)" -.IR /proc/[pid]/fdinfo/ " (kernel 2.6.22 °Ê¹ß)" +.IR /proc/[pid]/fdinfo/ " (kernel 2.6.22 以降)" .\"O This is a subdirectory containing one entry for each file which the .\"O process has open, named by its file descriptor. .\"O The contents of each file can be read to obtain information .\"O about the corresponding file descriptor, for example: -¤³¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ëËè¤Î -¥¨¥ó¥È¥ê¤¬Æþ¤Ã¤Æ¤ª¤ê¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥Õ¥¡¥¤¥ë̾¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ -³Æ¥Õ¥¡¥¤¥ë¤ÎÆâÍƤòÆɤ߽Ф¹¤³¤È¤Ç¡¢Âбþ¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë´Ø¤¹¤ë -¾ðÊó¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£°Ê²¼¤ËÎã¤ò¼¨¤¹¡£ +このサブディレクトリには、そのプロセスがオープンしているファイル毎の +エントリが入っており、ファイルディスクリプタがファイル名となっている。 +各ファイルの内容を読み出すことで、対応するファイルディスクリプタに関する +情報を得ることができる。以下に例を示す。 .in +4n .nf @@ -481,38 +481,38 @@ flags: 01002002 .\"O file access mode and file status flags (see .\"O .BR open (2)). .I pos -¥Õ¥£¡¼¥ë¥É¤Ï 10 ¿Ê¿ô¤Ç¡¢¸½ºß¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤ò¼¨¤¹¡£ +フィールドは 10 進数で、現在のファイルオフセットを示す。 .I flags -¥Õ¥£¡¼¥ë¥É¤Ï 8 ¿Ê¿ô¤Ç¡¢ -¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹¥â¡¼¥É¤È¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤ò¼¨¤¹ +フィールドは 8 進数で、 +ファイルのアクセスモードとファイル状態フラグを示す .RB ( open (2) -»²¾È)¡£ +参照)。 .\"O The files in this directory are readable only by the owner of the process. -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¥×¥í¥»¥¹¤Î½êÍ­¼Ô¤À¤±¤¬Æɤ߽Ф¹¤³¤È¤¬¤Ç¤­¤ë¡£ +このディレクトリのファイルは、プロセスの所有者だけが読み出すことができる。 .\" FIXME document /proc/[pid]/io .\" .TP .\" .IR /proc/[pid]/io " (since kernel 2.6.20)" .TP .\"O .IR /proc/[pid]/limits " (since kernel 2.6.24)" -.IR /proc/[pid]/limits " (kernel 2.6.24 °Ê¹ß)" +.IR /proc/[pid]/limits " (kernel 2.6.24 以降)" .\"O This file displays the soft limit, hard limit, and units of measurement .\"O for each of the process's resource limits (see .\"O .BR getrlimit (2)). .\"O The file is protected to only allow reading by the real UID of the process. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤Î³Æ¥ê¥½¡¼¥¹À©¸Â¤Ë¤Ä¤¤¤Æ¡¢ -¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¡¢¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È¡¢·×–°Ì¤òɽ¼¨¤¹¤ë +このファイルは、そのプロセスの各リソース制限について、 +ソフト・リミット、ハード・リミット、計測単位を表示する .RB ( getrlimit (2) -»²¾È)¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¥×¥í¥»¥¹¤Î¼Â UID ¤ò»ý¤Ä¤â¤Î¤À¤±¤¬Æɤ߽Ф¹¤³¤È¤¬¤Ç¤­¤ë¡£ +参照)。 +このファイルは、プロセスの実 UID を持つものだけが読み出すことができる。 .TP .I /proc/[pid]/maps .\"O A file containing the currently mapped memory regions and their access .\"O permissions. -¸½ºß¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤ë¥á¥â¥êÎΰè¤È¤½¤Î¥¢¥¯¥»¥¹¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ò´Þ¤à¡£ +現在マップされているメモリ領域とそのアクセスパーミッションを含む。 .\"O The format is: -¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï°Ê²¼¤Î¤È¤ª¤ê: +フォーマットは以下のとおり: .nf .ft CW @@ -531,8 +531,8 @@ bffff000-c0000000 rwxp 00000000 00:00 0 .\"O where "address" is the address space in the process that it occupies, .\"O "perms" is a set of permissions: -¤³¤³¤Ç "address" ¤Ï¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ç¤½¤Î¥á¥â¥êÎΰ褬Àê¤á¤Æ¤¤¤ë -¥¢¥É¥ì¥¹¤Ç¡¢"perms" ¤Ï¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Î¥»¥Ã¥È¤Ç¤¢¤ë¡£ +ここで "address" はプロセスのアドレス空間でそのメモリ領域が占めている +アドレスで、"perms" はパーミッションのセットである。 .nf .in +5 @@ -548,14 +548,14 @@ p = private (copy on write) .\"O (major:minor), and "inode" is the inode on that device. .\"O 0 indicates that no inode is associated with the memory region, .\"O as the case would be with BSS (uninitialized data). -\&"offset" ¤Ï¥Õ¥¡¥¤¥ë (¤Ê¤É¤Î) Ãæ¤Ç¤Î¥ª¥Õ¥»¥Ã¥È¡¢ -\&"dev" ¤Ï¥Ç¥Ð¥¤¥¹ (¥á¥¸¥ã¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ:¥Þ¥¤¥Ê¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ)¡¢ -\&"inode" ¤Ï¤½¤Î¥Ç¥Ð¥¤¥¹¤Î i ¥Î¡¼¥ÉÈÖ¹æ¤Ç¤¢¤ë¡£ -¤³¤ì¤¬ 0 ¤Î¤È¤­¤Ï¡¢bss (½é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ç¡¼¥¿Îΰè) ¤Î¾ì¹ç¤Î¤è¤¦¤Ë -¤³¤Î¥á¥â¥êÎΰè¤Ë¤Ï¤É¤Î i ¥Î¡¼¥É¤â³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò°ÕÌ£¤·¤Æ¤¤¤ë¡£ +\&"offset" はファイル (などの) 中でのオフセット、 +\&"dev" はデバイス (メジャーデバイス番号:マイナーデバイス番号)、 +\&"inode" はそのデバイスの i ノード番号である。 +これが 0 のときは、bss (初期化されていないデータ領域) の場合のように +このメモリ領域にはどの i ノードも割り当てられていないことを意味している。 .\"O Under Linux 2.0 there is no field giving pathname. -Linux 2.0 ¤Ç¤Ï¥Ñ¥¹Ì¾¤ò½ñ¤¤¤¿¥Õ¥£¡¼¥ë¥É¤¬¤Ê¤¤¡£ +Linux 2.0 ではパス名を書いたフィールドがない。 .TP .I /proc/[pid]/mem .\"O This file can be used to access the pages of a process's memory through @@ -563,19 +563,19 @@ Linux 2.0 .\"O .BR read (2), .\"O and .\"O .BR lseek (2). -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢ +このファイルは、 .BR open (2), .BR read (2), .BR lseek (2) -¤òÄ̤·¤Æ¡¢¥×¥í¥»¥¹¤Î¥á¥â¥ê¤Î¥Ú¡¼¥¸¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ +を通して、プロセスのメモリのページにアクセスするために使われる。 .TP .\"O .IR /proc/[pid]/mountinfo " (since Linux 2.6.26)" -.IR /proc/[pid]/mountinfo " (Linux 2.6.26 °Ê¹ß)" +.IR /proc/[pid]/mountinfo " (Linux 2.6.26 以降)" .\" This info adapted from Documentation/filesystems/proc.txt .\"O This file contains information about mount points. .\"O It contains lines of the form: -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ -°Ê²¼¤Î¤è¤¦¤Ê·Á¼°¤Î¹Ô¤«¤é¹½À®¤µ¤ì¤ë¡£ +このファイルには、マウントポイントについての情報が入っている。 +以下のような形式の行から構成される。 .nf .ft CW @@ -585,88 +585,88 @@ Linux 2.0 .fi .IP .\"O The numbers in parentheses are labels for the descriptions below: -³ç¸ÌÉÕ¤­¤Î¿ô»ú¤Ï¡¢°Ê²¼¤ÎÀâÌÀ¤Î¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ +括弧付きの数字は、以下の説明のためのものである。 .RS 7 .TP 5 (1) .\"O mount ID: unique identifier of the mount (may be reused after .\"O .BR umount (2)). -¥Þ¥¦¥ó¥È ID: ¥Þ¥¦¥ó¥È¤Î°ì°Õ¤Ê¼±ÊÌ»Ò +マウント ID: マウントの一意な識別子 .RB ( umount (2) -¤Î¸å¤ÏºÆÍøÍѤµ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤)¡£ +の後は再利用されるかもしれない)。 .TP (2) .\"O parent ID: ID of parent mount (or of self for the top of the mount tree). -parent ID: ¿Æ¥Þ¥¦¥ó¥È¤Î ID -(¥Þ¥¦¥ó¥È¥Ä¥ê¡¼¤ÎºÇ¾å°Ì¤Î¾ì¹ç¤Ï¼«Ê¬¼«¿È¤Î ID ¤È¤Ê¤ë)¡£ +parent ID: 親マウントの ID +(マウントツリーの最上位の場合は自分自身の ID となる)。 .TP (3) .\"O major:minor: value of .\"O .I st_dev .\"O for files on file system (see .\"O .BR stat (2)). -major:minor: ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î¥Õ¥¡¥¤¥ë¤Î +major:minor: ファイルシステム上のファイルの .I st_dev -¤ÎÃÍ +の値 .RB ( stat (2) -»²¾È)¡£ +参照)。 .TP (4) .\"O root: root of the mount within the file system. -¥ë¡¼¥È: ¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÆâ¤Î¥Þ¥¦¥ó¥È¤Î¥ë¡¼¥È¡£ +ルート: そのファイルシステム内のマウントのルート。 .TP (5) .\"O mount point: mount point relative to the process's root. -¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È: ¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Î¤½¤Î¥×¥í¥»¥¹¤Î¥ë¡¼¥È¤«¤é¤ÎÁêÂХѥ¹¡£ +マウントポイント: マウントポイントのそのプロセスのルートからの相対パス。 .TP (6) .\"O mount options: per-mount options. -¥Þ¥¦¥ó¥È¥ª¥×¥·¥ç¥ó: ³Æ¥Þ¥¦¥ó¥È¤Î¥ª¥×¥·¥ç¥ó¡£ +マウントオプション: 各マウントのオプション。 .TP (7) .\"O optional fields: zero or more fields of the form "tag[:value]". -¥ª¥×¥·¥ç¥ó¥Õ¥£¡¼¥ë¥É: "tag[:value]" ·Á¼°¤Î¥Õ¥£¡¼¥ë¥É¤¬ 0 ¸Ä°Ê¾åʤ֡£ +オプションフィールド: "tag[:value]" 形式のフィールドが 0 個以上並ぶ。 .TP (8) .\"O separator: marks the end of the optional fields. -¥»¥Ñ¥ì¡¼¥¿: ¥ª¥×¥·¥ç¥ó¥Õ¥£¡¼¥ë¥É¤Î½ª¤ï¤ê¤ò¼¨¤¹¡£ +セパレータ: オプションフィールドの終わりを示す。 .TP (9) .\"O file system type: name of file system in the form "type[.subtype]". -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¼ïÊÌ: ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î̾Á°¡£ -"type[.subtype]" ¤È¤¤¤¦·Á¼°¤È¤Ê¤ë¡£ +ファイルシステム種別: ファイルシステムの名前。 +"type[.subtype]" という形式となる。 .TP (10) .\"O mount source: file system-specific information or "none". -¥Þ¥¦¥ó¥È¸µ: ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¸ÇÍ­¤Î¾ðÊ󡣤ʤ¤¾ì¹ç¤Ï "none" ¤È¤Ê¤ë¡£ +マウント元: ファイルシステム固有の情報。ない場合は "none" となる。 .TP (11) .\"O super options: per-super block options. -super options: ¥¹¡¼¥Ñ¡¼¥Ö¥í¥Ã¥¯Ã±°Ì¤Î¥ª¥×¥·¥ç¥ó¡£ +super options: スーパーブロック単位のオプション。 .RE .IP .\"O Parsers should ignore all unrecognized optional fields. .\"O Currently the possible optional fields are: -²ò¼á¤¹¤ë¦¤Ïǧ¼±¤Ç¤­¤Ê¤¤¥ª¥×¥·¥ç¥ó¥Õ¥£¡¼¥ë¥É¤ÏÁ´¤Æ̵»ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¸½ºß¤Î¤È¤³¤í¡¢¥ª¥×¥·¥ç¥ó¥Õ¥£¡¼¥ë¥É¤È¤·¤Æ¤Ï°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤¬¤¢¤ë¡£ +解釈する側は認識できないオプションフィールドは全て無視すべきである。 +現在のところ、オプションフィールドとしては以下のようなものがある。 .RS 12 .TP 18 shared:X .\"O mount is shared in peer group X -¥Þ¥¦¥ó¥È¤Ï¥Ô¥¢¥°¥ë¡¼¥× (peer group) X ¤Ç¶¦Í­¤µ¤ì¤Æ¤¤¤ë¡£ +マウントはピアグループ (peer group) X で共有されている。 .TP master:X .\"O mount is slave to peer group X -¥Þ¥¦¥ó¥È¤Ï¥Ô¥¢¥°¥ë¡¼¥× (peer group) X ¤Î¥¹¥ì¡¼¥Ö¤Ç¤¢¤ë¡£ +マウントはピアグループ (peer group) X のスレーブである。 .TP propagate_from:X .\"O mount is slave and receives propagation from peer group X (*) -¥Þ¥¦¥ó¥È¤Ï¥¹¥ì¡¼¥Ö¤Ç¤¢¤ê¡¢¥Ô¥¢¥°¥ë¡¼¥× X (*) ¤«¤é -mount propagation ¤ò¼õ¿®¤¹¤ë¡£ +マウントはスレーブであり、ピアグループ X (*) から +mount propagation を受信する。 .TP unbindable .\"O mount is unbindable -¥Þ¥¦¥ó¥È¤Ï unbind ¤Ç¤­¤Ê¤¤¡£ +マウントは unbind できない。 .RE .IP .\"O (*) X is the closest dominant peer group under the process's root. @@ -674,30 +674,30 @@ unbindable .\"O or if there is no dominant peer group under the same root, .\"O then only the "master:X" field is present .\"O and not the "propagate_from:X" field. -(*) X ¤Ï¡¢¥×¥í¥»¥¹¤Î root ¤Çľ¶á¤Î dominant peer group ¤Ç¤¢¤ë¡£ -X ¤¬¥Þ¥¦¥ó¥È¤ÎľÀܤΥޥ¹¥¿¡¼¤Ç¤¢¤ë¾ì¹ç¤ä¡¢ -Ʊ¤¸ root ¤Ë dominant peer group ¤¬¤Ê¤¤¾ì¹ç¤Ï¡¢ -"master:X" ¥Õ¥£¡¼¥ë¥É¤À¤±¤¬Â¸ºß¤·¡¢ -"propagate_from:X" ¥Õ¥£¡¼¥ë¥É¤Ï¸ºß¤·¤Ê¤¤¡£ +(*) X は、プロセスの root で直近の dominant peer group である。 +X がマウントの直接のマスターである場合や、 +同じ root に dominant peer group がない場合は、 +"master:X" フィールドだけが存在し、 +"propagate_from:X" フィールドは存在しない。 .\"O For more information on mount propagation see: .\"O .I Documentation/filesystems/sharedsubtree.txt .\"O in the kernel source tree. -mount propagation ¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥«¡¼¥Í¥ë¥½¡¼¥¹¥Ä¥ê¡¼Æâ¤Î +mount propagation の詳細については、カーネルソースツリー内の .I Documentation/filesystems/sharedsubtree.txt -¤ò»²¾È¡£ +を参照。 .TP .\"O .IR /proc/[pid]/mounts " (since Linux 2.4.19)" -.IR /proc/[pid]/mounts " (Linux 2.4.19 °Ê¹ß)" +.IR /proc/[pid]/mounts " (Linux 2.4.19 以降)" .\"O This is a list of all the file systems currently mounted in the .\"O process's mount namespace. .\"O The format of this file is documented in .\"O .BR fstab (5). -¤½¤Î¥×¥í¥»¥¹¤Î¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤Ë¸½ºß¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë -Á´¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥ê¥¹¥È¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï +そのプロセスのマウント名前空間に現在マウントされている +全ファイルシステムのリスト。 +このファイルのフォーマットは .BR fstab (5) -¤ËºÜ¤Ã¤Æ¤¤¤ë¡£ +に載っている。 .\"O Since kernel version 2.6.15, this file is pollable: .\"O after opening the file for reading, a change in this file .\"O (i.e., a file system mount or unmount) causes @@ -707,24 +707,24 @@ mount propagation .\"O and .\"O .BR epoll_wait (2) .\"O mark the file as having an error condition. -¥«¡¼¥Í¥ë 2.6.15 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ò´Æ»ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë (pollable)¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤òÆɤ߽Ф·ÍѤ˥ª¡¼¥×¥ó¤·¤¿¸å¤Ç¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ËÊѹ¹¤¬¤¢¤ë¤È -(¤Ä¤Þ¤ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Þ¥¦¥ó¥È¤ä¥¢¥ó¥Þ¥¦¥ó¥È¤¬¤¢¤ë¤È)¡¢ +カーネル 2.6.15 以降では、このファイルを監視することができる (pollable)。 +このファイルを読み出し用にオープンした後で、このファイルに変更があると +(つまりファイルシステムのマウントやアンマウントがあると)、 .BR select (2) -¤Ç¤Ï¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÆɤ߽Ф·²Äǽ¤È¤Ê¤ê¡¢ +ではそのファイルディスクリプタは読み出し可能となり、 .BR poll (2) -¤È +と .BR epoll_wait (2) -¤Ç¤Ï¤½¤Î¥Õ¥¡¥¤¥ë¤Ï¥¨¥é¡¼¾õÂ֤Ȥ·¤ÆÄÌÃΤµ¤ì¤ë¡£ +ではそのファイルはエラー状態として通知される。 .TP .\"O .IR /proc/[pid]/mountstats " (since Linux 2.6.17)" -.IR /proc/[pid]/mountstats " (Linux 2.6.17 °Ê¹ß)" +.IR /proc/[pid]/mountstats " (Linux 2.6.17 以降)" .\"O This file exports information (statistics, configuration information) .\"O about the mount points in the process's name space. .\"O Lines in this file have the form: -¤³¤Î¥Õ¥¡¥¤¥ë¤òÄ̤¸¤Æ¡¢¤½¤Î¥×¥í¥»¥¹¤Î̾Á°¶õ´ÖÆâ¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ë´Ø¤¹¤ë -³Æ¼ï¾ðÊó (Åý·×¡¢ÀßÄê¾ðÊó) ¤ò»²¾È¤Ç¤­¤ë¡£ -¥Õ¥¡¥¤¥ë¤Î³Æ¹Ô¤Ï°Ê²¼¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤¢¤ë¡£ +このファイルを通じて、そのプロセスの名前空間内のマウントポイントに関する +各種情報 (統計、設定情報) を参照できる。 +ファイルの各行は以下のフォーマットである。 .nf device /dev/sda7 mounted on /home with fstype ext3 [statistics] @@ -732,83 +732,83 @@ device /dev/sda7 mounted on /home with fstype ext3 [statistics] .fi .IP .\"O The fields in each line are: -³Æ¹Ô¤Î¥Õ¥£¡¼¥ë¥É¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +各行のフィールドは以下の通りである。 .RS 7 .TP 5 (1) .\"O The name of the mounted device .\"O (or "nodevice" if there is no corresponding device). -¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¥Ç¥Ð¥¤¥¹Ì¾ -(Âбþ¤¹¤ë¥Ç¥Ð¥¤¥¹¤¬¤Ê¤¤¾ì¹ç¤Ï "nodevice" ¤È¤Ê¤ë)¡£ +マウントされているデバイス名 +(対応するデバイスがない場合は "nodevice" となる)。 .TP (2) .\"O The mount point within the file system tree. -¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥Ä¥ê¡¼¤Ë¤ª¤±¤ë¥Ñ¥¹Ì¾¡£ +マウントポイントのファイルシステムツリーにおけるパス名。 .TP (3) .\"O The file system type. -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¼ïÊÌ¡£ +ファイルシステム種別。 .TP (4) .\"O Optional statistics and configuration information. .\"O Currently (as at Linux 2.6.26), only NFS file systems export .\"O information via this field. -ÄɲäÎÅý·×¤äÀßÄê¾ðÊó¡£ -¸½ºß¤Î¤È¤³¤í (Linux 2.6.26 »þÅÀ¤Ç¤Ï)¡¢ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ç¾ðÊó¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¤Î¤Ï NFS ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤À¤±¤Ç¤¢¤ë¡£ +追加の統計や設定情報。 +現在のところ (Linux 2.6.26 時点では)、 +このフィールドで情報が提供されているのは NFS ファイルシステムだけである。 .RE .IP .\"O This file is only readable by the owner of the process. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥×¥í¥»¥¹¤Î½êÍ­¼Ô¤À¤±¤¬Æɤ߽Ф¹¤³¤È¤¬¤Ç¤­¤ë¡£ +このファイルはプロセスの所有者だけが読み出すことができる。 .TP .\"O .IR /proc/[pid]/numa_maps " (since Linux 2.6.14)" -.IR /proc/[pid]/numa_maps " (Linux 2.6.14 °Ê¹ß)" +.IR /proc/[pid]/numa_maps " (Linux 2.6.14 以降)" .\"O See .\"O .BR numa (7). .BR numa (7) -¤ò»²¾È¡£ +を参照。 .TP .\"O .IR /proc/[pid]/oom_adj " (since Linux 2.6.11)" -.IR /proc/[pid]/oom_adj " (Linux 2.6.11 °Ê¹ß)" +.IR /proc/[pid]/oom_adj " (Linux 2.6.11 以降)" .\"O This file can be used to adjust the score used to select which process .\"O should be killed in an out-of-memory (OOM) situation. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¥á¥â¥êÉÔ­ (OOM) ¤Î¾õ¶·²¼¤Ç -¤É¤Î¥×¥í¥»¥¹¤ò»¦¤¹¤Ù¤­¤«¤òÁªÂò¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¥¹¥³¥¢¤ò -Ä´À°¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ +このファイルは、メモリ不足 (OOM) の状況下で +どのプロセスを殺すべきかを選択するのに使用されるスコアを +調整するのに使用される。 .\"O The kernel uses this value for a bit-shift operation of the process's .\"O .IR oom_score .\"O value: .\"O valid values are in the range \-16 to +15, .\"O plus the special value \-17, .\"O which disables OOM-killing altogether for this process. -¥«¡¼¥Í¥ë¤Ï¡¢¥×¥í¥»¥¹¤Î +カーネルは、プロセスの .I oom_score -ÃͤΥӥåȥ·¥Õ¥ÈÁàºî¤Ë¡¢¤³¤ÎÃͤò»ÈÍѤ¹¤ë¡£ -¤³¤ÎÃͤȤ·¤ÆÍ­¸ú¤ÊÃÍ¤Ï \-16 ¤«¤é +15 ¤Þ¤Ç¤È¡¢ -ÆÃÊ̤ʰÕÌ£¤ò»ý¤Ä \-17 ¤Ç¤¢¤ë¡£ -\-17 ¤Ï¤½¤Î¥×¥í¥»¥¹¤ËÂФ¹¤ë OOM-killing ¤ò´°Á´¤Ë̵¸ú¤Ë¤¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +値のビットシフト操作に、この値を使用する。 +この値として有効な値は \-16 から +15 までと、 +特別な意味を持つ \-17 である。 +\-17 はそのプロセスに対する OOM-killing を完全に無効にすることを意味する。 .\"O A positive score increases the likelihood of this .\"O process being killed by the OOM-killer; .\"O a negative score decreases the likelihood. -Àµ¤ÎÃͤۤɡ¢¤½¤Î¥×¥í¥»¥¹¤¬ OOM-killer ¤Ë¤è¤ê»¦¤µ¤ì¤ë²ÄǽÀ­¤¬¹â¤¯¤Ê¤ê¡¢ -Éé¤ÎÃͤۤɲÄǽÀ­¤¬Ä㤯¤Ê¤ë¡£ +正の値ほど、そのプロセスが OOM-killer により殺される可能性が高くなり、 +負の値ほど可能性が低くなる。 .\"O The default value for this file is 0; .\"O a new process inherits its parent's .\"O .I oom_adj .\"O setting. -¤³¤Î¥Õ¥¡¥¤¥ë¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 0 ¤Ç¤¢¤ë¡£ -¿·¤·¤¤¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤Î +このファイルのデフォルト値は 0 である。 +新しいプロセスは親プロセスの .I oom_adj -¤ÎÀßÄê¤ò·Ñ¾µ¤¹¤ë¡£ +の設定を継承する。 .\"O A process must be privileged .\"O .RB ( CAP_SYS_RESOURCE ) .\"O to update this file. -¤³¤Î¥Õ¥¡¥¤¥ë¤òÊѹ¹¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¥×¥í¥»¥¹¤ÏÆø¢ +このファイルを変更するためには、プロセスは特権 .RB ( CAP_SYS_RESOURCE ) -¤ò»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を持っていなければならない。 .TP .\"O .IR /proc/[pid]/oom_score " (since Linux 2.6.11)" -.IR /proc/[pid]/oom_score " (Linux 2.6.11 °Ê¹ß)" +.IR /proc/[pid]/oom_score " (Linux 2.6.11 以降)" .\" See mm/oom_kill.c::badness() in the 2.6.25 sources .\"O This file displays the current score that the kernel gives to .\"O this process for the purpose of selecting a process @@ -817,39 +817,39 @@ device /dev/sda7 mounted on /home with fstype ext3 [statistics] .\"O selected by the OOM-killer. .\"O The basis for this score is the amount of memory used by the process, .\"O with increases (+) or decreases (\-) for factors including: -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢OOM-killer ¤Î¥×¥í¥»¥¹ÁªÂòÍѤȤ·¤Æ¡¢¥«¡¼¥Í¥ë¤¬ -¤³¤Î¥×¥í¥»¥¹¤ËÂФ·¤ÆÍ¿¤¨¤¿¸½ºß¤Î¥¹¥³¥¢¤òɽ¼¨¤¹¤ë¡£ -¹â¤¤¥¹¥³¥¢¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤¬ OOM-killer ¤Ë¤è¤êÁªÂò¤µ¤ì¤ë -²ÄǽÀ­¤¬¹â¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -¤³¤Î¥¹¥³¥¢¤Î´ðËܤϤ½¤Î¥×¥í¥»¥¹¤¬»ÈÍѤ·¤Æ¤¤¤ë¥á¥â¥êÎ̤Ǥ¢¤ê¡¢ -°Ê²¼¤ÎÍ×°ø¤Ë¤è¤ê²Ã»» (+) ¸º»» (\-) ¤¬¹Ô¤ï¤ì¤ë¡£ +このファイルは、OOM-killer のプロセス選択用として、カーネルが +このプロセスに対して与えた現在のスコアを表示する。 +高いスコアは、そのプロセスが OOM-killer により選択される +可能性が高いことを意味する。 +このスコアの基本はそのプロセスが使用しているメモリ量であり、 +以下の要因により加算 (+) 減算 (\-) が行われる。 .\" See mm/oom_kill.c::badness() in the 2.6.25 sources .RS .IP * 2 .\"O whether the process creates a lot of children using .\"O .BR fork (2) .\"O (+); -¤½¤Î¥×¥í¥»¥¹¤¬Â¿¤¯¤Î»Ò¥×¥í¥»¥¹¤ò +そのプロセスが多くの子プロセスを .BR fork (2) -¤ò»È¤Ã¤ÆºîÀ®¤·¤Æ¤¤¤ë¤« (+)¡£ +を使って作成しているか (+)。 .IP * .\"O whether the process has been running a long time, .\"O or has used a lot of CPU time (\-); -¤½¤Î¥×¥í¥»¥¹¤¬Ä¹»þ´Ö¼Â¹Ô¤µ¤ì¤ÆÍ褿¤«¡¢¤â¤·¤¯¤Ï -¿¤¯¤Î CPU »þ´Ö¤ò»ÈÍѤ·¤Æ¤¤¤ë¤« (\-)¡£ +そのプロセスが長時間実行されて来たか、もしくは +多くの CPU 時間を使用しているか (\-)。 .IP * .\"O whether the process has a low nice value (i.e., > 0) (+); -¤½¤Î¥×¥í¥»¥¹¤¬Ä㤤 nice ÃÍ (> 0) ¤ò»ý¤Ã¤Æ¤¤¤ë¤« (+)¡£ +そのプロセスが低い nice 値 (> 0) を持っているか (+)。 .IP * .\"O whether the process is privileged (\-); and .\"O .\" More precisely, if it has CAP_SYS_ADMIN or CAP_SYS_RESOURCE -¤½¤Î¥×¥í¥»¥¹¤¬Æø¢¤ò»ý¤Ã¤Æ¤¤¤ë¤« (\-)¡£ -.\" ¤è¤êÀµ³Î¤Ë¤Ï¡¢CAP_SYS_ADMIN ¤« CAP_SYS_RESOURCE ¤ò»ý¤Ã¤Æ¤¤¤ë¤«¡£ +そのプロセスが特権を持っているか (\-)。 +.\" より正確には、CAP_SYS_ADMIN か CAP_SYS_RESOURCE を持っているか。 .IP * .\"O whether the process is making direct hardware access (\-). .\"O .\" More precisely, if it has CAP_SYS_RAWIO -¤½¤Î¥×¥í¥»¥¹¤¬ direct hardware access ¤ò¹Ô¤Ã¤Æ¤¤¤ë¤« (\-)¡£ -.\" ¤è¤êÀµ³Î¤Ë¤Ï¡¢CAP_SYS_RAWIO ¤ò»ý¤Ã¤Æ¤¤¤ë¤«¡£ +そのプロセスが direct hardware access を行っているか (\-)。 +.\" より正確には、CAP_SYS_RAWIO を持っているか。 .RE .IP .\"O The @@ -858,9 +858,9 @@ device /dev/sda7 mounted on /home with fstype ext3 [statistics] .\"O .I oom_adj .\"O setting for the process. .I oom_score -¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤Î +は、そのプロセスの .I oom_adj -ÀßÄê¤Çµ¬Äꤵ¤ì¤ë¥Ó¥Ã¥È¥·¥Õ¥ÈÄ´À°¤Ë¤â±Æ¶Á¤òÍ¿¤¨¤ë¡£ +設定で規定されるビットシフト調整にも影響を与える。 .\" FIXME Describe /proc/[pid]/pagemap .\" Added in 2.6.25 .\" CONFIG_PROC_PAGE_MONITOR @@ -872,25 +872,25 @@ device /dev/sda7 mounted on /home with fstype ext3 [statistics] .\"O system call. .\"O This file is a symbolic link that points to the process's .\"O root directory, and behaves as exe, fd/*, etc. do. -Unix ¤È Linux ¤Ç¤Ï¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥ë¡¼¥È (/) ¤ò¥×¥í¥»¥¹¤´¤È¤ËÊÌ¡¹¤Ë¤Ç¤­¤ë¡£ -¤³¤ì¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë +Unix と Linux では、 +ファイルシステムのルート (/) をプロセスごとに別々にできる。 +これはシステムコール .BR chroot (2) -¤Ë¤è¤Ã¤ÆÀßÄꤹ¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥×¥í¥»¥¹¤Î¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤ò»Ø¤¹¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¡¢ -exe ¤ä fd/* ¤Ê¤É¤ÈƱ¤¸¤è¤¦¤ÊÆ°ºî¤ò¤¹¤ë¡£ +によって設定する。 +このファイルはプロセスのルートディレクトリを指すシンボリックリンクで、 +exe や fd/* などと同じような動作をする。 .\"O .\" The following was still true as at kernel 2.6.13 -.\" °Ê²¼¤ÎÆâÍÆ¤Ï ¥«¡¼¥Í¥ë 2.6.13 ¤Ç¤Ï¤Þ¤ÀÀµ¤·¤¤¡£ +.\" 以下の内容は カーネル 2.6.13 ではまだ正しい。 .\"O In a multithreaded process, the contents of this symbolic link .\"O are not available if the main thread has already terminated .\"O (typically by calling .\"O .BR pthread_exit (3)). -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥×¥í¥»¥¹¤Ç¤Ï¡¢¥á¥¤¥ó¥¹¥ì¥Ã¥É¤¬¤¹¤Ç¤Ë½ªÎ»¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -¤³¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ÎÆâÍƤϻ²¾È¤Ç¤­¤Ê¤¤ -(¥¹¥ì¥Ã¥É¤Î½ªÎ»¤ÏÄ̾ï +マルチスレッドプロセスでは、メインスレッドがすでに終了している場合、 +このシンボリックリンクの内容は参照できない +(スレッドの終了は通常 .BR pthread_exit (3) -¤ò¸Æ¤Ó½Ð¤·¤Ë¤è¤ê¹Ô¤ï¤ì¤ë)¡£ +を呼び出しにより行われる)。 .\" FIXME Describe /proc/[pid]/seccomp .\" Added in 2.6.12 .\" FIXME Describe /proc/[pid]/sessionid @@ -907,12 +907,12 @@ exe .\" CONFIG_SCHEDSTATS .TP .\"O .IR /proc/[pid]/smaps " (since Linux 2.6.14)" -.IR /proc/[pid]/smaps " (Linux 2.6.14 °Ê¹ß)" +.IR /proc/[pid]/smaps " (Linux 2.6.14 以降)" .\" CONFIG_PROC_PAGE_MONITOR .\"O This file shows memory consumption for each of the process's mappings. .\"O For each of mappings there is a series of lines such as the following: -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤Î³Æ¥Þ¥Ã¥Ô¥ó¥°¤Î¥á¥â¥ê¾ÃÈñÎ̤òɽ¼¨¤¹¤ë¡£ -¥Þ¥Ã¥Ô¥ó¥°¤Î¤½¤ì¤¾¤ì¤Ë¤Ä¤¤¤Æ¡¢°Ê²¼¤Î¤è¤¦¤ÊÆâÍƤ¬É½¼¨¤µ¤ì¤ë¡£ +このファイルは、そのプロセスの各マッピングのメモリ消費量を表示する。 +マッピングのそれぞれについて、以下のような内容が表示される。 .in +4n .nf @@ -933,21 +933,21 @@ Private_Dirty: 0 kB .\"O the amount of the mapping that is currently resident in RAM, .\"O the number of clean and dirty shared pages in the mapping, .\"O and the number of clean and dirty private pages in the mapping. -ºÇ½é¤Î¹Ô¤Ë¤Ï¡¢ +最初の行には、 .I /proc/[pid]/maps -¤Çɽ¼¨¤µ¤ì¤ë¥Þ¥Ã¥Ô¥ó¥°¤ÈƱ¤¸¾ðÊó¤¬É½¼¨¤µ¤ì¤ë¡£ -»Ä¤ê¤Î¹Ô¤Ë¤Ï¡¢¥Þ¥Ã¥Ô¥ó¥°¤Î¥µ¥¤¥º¡¢¸½ºß RAM ¾å¤Ë¸ºß¤¹¤ë¥Þ¥Ã¥Ô¥ó¥°¤ÎÎÌ¡¢ -¥Þ¥Ã¥Ô¥ó¥°Æâ¤Î¶¦Í­¥Ú¡¼¥¸¤Î¤¦¤Á¥¯¥ê¡¼¥ó¤Ê¥Ú¡¼¥¸¿ô¡¢¥À¡¼¥Æ¥£¤Ê¥Ú¡¼¥¸¿ô¡¢ -¥Þ¥Ã¥Ô¥ó¥°Æâ¤Î¥×¥é¥¤¥Ù¡¼¥È¥Ú¡¼¥¸¤Î¤¦¤Á¥¯¥ê¡¼¥ó¤Ê¥Ú¡¼¥¸¿ô¡¢ -¥À¡¼¥Æ¥£¤Ê¥Ú¡¼¥¸¿ô¡¢¤ò¼¨¤¹¡£ +で表示されるマッピングと同じ情報が表示される。 +残りの行には、マッピングのサイズ、現在 RAM 上に存在するマッピングの量、 +マッピング内の共有ページのうちクリーンなページ数、ダーティなページ数、 +マッピング内のプライベートページのうちクリーンなページ数、 +ダーティなページ数、を示す。 .\"O This file is only present if the .\"O .B CONFIG_MMU .\"O kernel configuration .\"O option is enabled. -¤³¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¤Î¤Ï¡¢¥«¡¼¥Í¥ë¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¡¦¥ª¥×¥·¥ç¥ó +このファイルが存在するのは、カーネルのコンフィギュレーション・オプション .B CONFIG_MMU -¤òÍ­¸ú¤Ë¤·¤¿¾ì¹ç¤À¤±¤Ç¤¢¤ë¡£ +を有効にした場合だけである。 .TP .I /proc/[pid]/stat .\"O Status information about the process. @@ -955,111 +955,111 @@ Private_Dirty: 0 kB .\"O .BR ps (1). .\"O It is defined in .\"O .IR /usr/src/linux/fs/proc/array.c "." -¥×¥í¥»¥¹¤Î¾õÂ֤ˤĤ¤¤Æ¤Î¾ðÊó¡£ -¤³¤ì¤Ï +プロセスの状態についての情報。 +これは .BR ps (1) -¤Ç»È¤ï¤ì¡¢ +で使われ、 .I /usr/src/linux/fs/proc/array.c -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で定義されている。 .\"O The fields, in order, with their proper .\"O .BR scanf (3) .\"O format specifiers, are: -³Æ¥Õ¥£¡¼¥ë¥É¤ò½çÈ֤ˡ¢ +各フィールドを順番に、 .BR scanf (3) -¤Î¥Õ¥©¡¼¥Þ¥Ã¥È»ØÄê»ÒÉÕ¤­¤Ç°Ê²¼¤Ë¼¨¤¹¡£ +のフォーマット指定子付きで以下に示す。 .RS .TP 12 \fIpid\fP %d .\"O The process ID. -¥×¥í¥»¥¹ ID¡£ +プロセス ID。 .TP \fIcomm\fP %s .\"O The filename of the executable, in parentheses. .\"O This is visible whether or not the executable is swapped out. -³ç¸Ì¤Ç¤¯¤¯¤é¤ì¤¿¼Â¹Ô·Á¼°¤Î¥Õ¥¡¥¤¥ë̾¡£ -¼Â¹Ô·Á¼°¤¬¥¹¥ï¥Ã¥×¥¢¥¦¥È¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Ë¤è¤é¤º¡¢¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +括弧でくくられた実行形式のファイル名。 +実行形式がスワップアウトされているかどうかによらず、見ることができる。 .TP \fIstate\fP %c .\"O One character from the string "RSDZTW" where R is running, S is .\"O sleeping in an interruptible wait, D is waiting in uninterruptible .\"O disk sleep, Z is zombie, T is traced or stopped (on a signal), .\"O and W is paging. -"RSDZTW" ¤Î¤É¤ì¤« 1 ʸ»ú¡£ -R ¤Ï¼Â¹ÔÃæ (running)¡¢ -S ¤Ï³ä¤ê¹þ¤ß²Äǽ¤ÊµÙ̲¾õÂÖ (sleeping in an interruptible wait)¡¢ -D ¤Ï³ä¤ê¹þ¤ßÉÔ²Äǽ¤Ê¥Ç¥£¥¹¥¯¥¹¥ê¡¼¥×¤ÎÂÔµ¡¾õÂÖ -(waiting in uninterruptible disk sleep)¡¢ -Z ¤Ï¥¾¥ó¥Ó¾õÂÖ (zombie)¡¢ -T ¤Ï¥È¥ì¡¼¥¹¤µ¤ì¤Æ¤¤¤ë (traced) ¤« -(¥·¥°¥Ê¥ë¤Ë¤è¤ê) Ää»ß¤·¤Æ¤¤¤ë¾õÂÖ (stopped)¡¢ -W ¤Ï¥Ú¡¼¥¸¥ó¥°Ãæ (paging) ¤òɽ¤·¤Æ¤¤¤ë¡£ +"RSDZTW" のどれか 1 文字。 +R は実行中 (running)、 +S は割り込み可能な休眠状態 (sleeping in an interruptible wait)、 +D は割り込み不可能なディスクスリープの待機状態 +(waiting in uninterruptible disk sleep)、 +Z はゾンビ状態 (zombie)、 +T はトレースされている (traced) か +(シグナルにより) 停止している状態 (stopped)、 +W はページング中 (paging) を表している。 .TP \fIppid\fP %d .\"O The PID of the parent. -¿Æ¥×¥í¥»¥¹¤Î PID¡£ +親プロセスの PID。 .TP \fIpgrp\fP %d .\"O The process group ID of the process. -¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥× ID¡£ +プロセスのプロセスグループ ID。 .TP \fIsession\fP %d .\"O The session ID of the process. -¥×¥í¥»¥¹¤Î¥»¥Ã¥·¥ç¥ó ID¡£ +プロセスのセッション ID。 .TP \fItty_nr\fP %d .\"O The controlling terminal of the process. .\"O (The minor device number is contained in the combination of bits .\"O 31 to 20 and 7 to 0; .\"O the major device number is in bits 15 t0 8.) -¥×¥í¥»¥¹¤ÎÀ©¸æüËö -(¥Þ¥¤¥Ê¡¼¡¦¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤Ï¥Ó¥Ã¥È 31¡Á20 ¤È 7¡Á0 ¤Ë¤Þ¤¿¤¬¤Ã¤Æ³ÊǼ¤µ¤ì¡¢ -¥á¥¸¥ã¡¼¡¦¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤Ï¥Ó¥Ã¥È 15¡Á8 ¤Ë³ÊǼ¤µ¤ì¤ë)¡£ +プロセスの制御端末 +(マイナー・デバイス番号はビット 31〜20 と 7〜0 にまたがって格納され、 +メジャー・デバイス番号はビット 15〜8 に格納される)。 .TP \fItpgid\fP %d .\"O .\" This field and following, up to and including wchan added 0.99.1 -.\" ¤³¤Î¥Õ¥£¡¼¥ë¥É¤«¤é wchan ¤Þ¤Ç¤Ï 0.99.1 ¤ÇÄɲ䵤줿¡£ +.\" このフィールドから wchan までは 0.99.1 で追加された。 .\"O The ID of the foreground process group of the controlling .\"O terminal of the process. -¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤Î¥Õ¥©¥¢¥°¥é¥ó¥É¡¦¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Î ID¡£ +プロセスの制御端末のフォアグランド・プロセス・グループの ID。 .TP .\"O \fIflags\fP %u (%lu before Linux 2.6.22) -\fIflags\fP %u (Linux 2.6.22 ¤è¤êÁ°¤Ï %lu) +\fIflags\fP %u (Linux 2.6.22 より前は %lu) .\"O The kernel flags word of the process. .\"O For bit meanings, .\"O see the PF_* defines in .\"O .IR . .\"O Details depend on the kernel version. -¥×¥í¥»¥¹¤Î¥«¡¼¥Í¥ë¥Õ¥é¥°¥ï¡¼¥É¡£ -¥Ó¥Ã¥È¤Î°ÕÌ£¤Ï¡¢ +プロセスのカーネルフラグワード。 +ビットの意味は、 .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë PF_* ¤ò»²¾È¤¹¤ë¤³¤È¡£ -¾ÜºÙ¤Ï¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë°Í¸¤¹¤ë¡£ +で定義されている PF_* を参照すること。 +詳細はカーネルのバージョンに依存する。 .TP \fIminflt\fP %lu .\"O The number of minor faults the process has made which have not .\"O required loading a memory page from disk. -¥×¥í¥»¥¹¤¬°ú¤­µ¯¤³¤·¤¿¥Þ¥¤¥Ê¡¼¥Õ¥©¡¼¥ë¥È (minor fault¡¢¥Ç¥£¥¹¥¯¤«¤é -¥á¥â¥ê¥Ú¡¼¥¸¤Ø¤Î¥í¡¼¥É¤òɬÍפȤ·¤Ê¤¤¥Õ¥©¡¼¥ë¥È) ¤Î²ó¿ô¡£ +プロセスが引き起こしたマイナーフォールト (minor fault、ディスクから +メモリページへのロードを必要としないフォールト) の回数。 .TP .\" field 11 \fIcminflt\fP %lu .\"O The number of minor faults that the process's .\"O waited-for children have made. -(¤½¤Î¥×¥í¥»¥¹¤¬½ªÎ»¤òÂԤäƤ¤¤ë) -»Ò¥×¥í¥»¥¹¤¬°ú¤­µ¯¤³¤·¤¿¥Þ¥¤¥Ê¡¼¥Õ¥©¡¼¥ë¥È¤Î²ó¿ô¡£ +(そのプロセスが終了を待っている) +子プロセスが引き起こしたマイナーフォールトの回数。 .TP \fImajflt\fP %lu .\"O The number of major faults the process has made which have .\"O required loading a memory page from disk. -¥×¥í¥»¥¹¤¬°ú¤­µ¯¤³¤·¤¿¥á¥¸¥ã¡¼¥Õ¥©¡¼¥ë¥È (major fault¡¢¥Ç¥£¥¹¥¯¤«¤é -¥á¥â¥ê¥Ú¡¼¥¸¤Ø¤Î¥í¡¼¥É¤òɬÍפȤ¹¤ë¥Õ¥©¡¼¥ë¥È) ¤Î²ó¿ô¡£ +プロセスが引き起こしたメジャーフォールト (major fault、ディスクから +メモリページへのロードを必要とするフォールト) の回数。 .TP \fIcmajflt\fP %lu .\"O The number of major faults that the process's .\"O waited-for children have made. -(¤½¤Î¥×¥í¥»¥¹¤¬½ªÎ»¤òÂԤäƤ¤¤ë) -»Ò¥×¥í¥»¥¹¤¬°ú¤­µ¯¤³¤·¤¿¥á¥¸¥ã¡¼¥Õ¥©¡¼¥ë¥È¤Î²ó¿ô¡£ +(そのプロセスが終了を待っている) +子プロセスが引き起こしたメジャーフォールトの回数。 .TP \fIutime\fP %lu .\"O Amount of time that this process has been scheduled in user mode, @@ -1069,23 +1069,23 @@ W .\"O (time spent running a virtual CPU, see below), .\"O so that applications that are not aware of the guest time field .\"O do not lose that time from their calculations. -¤³¤Î¥×¥í¥»¥¹¤¬¥æ¡¼¥¶¡¼¥â¡¼¥É¤Ç¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤¿»þ´Ö¤Î¹ç·×¡£ -clock tick ñ°Ì¤Ç·×¬¤µ¤ì¤ë +このプロセスがユーザーモードでスケジューリングされた時間の合計。 +clock tick 単位で計測される .RI ( sysconf(_SC_CLK_TCK) -¤Ç³ä¤Ã¤¿Ãͤ¬É½¼¨¤µ¤ì¤ë)¡£ -¤³¤ÎÃͤˤϥ²¥¹¥È»þ´Ö \fIguest_time\fP (²¾ÁÛ CPU ¤Î¼Â¹Ô¤Ë¾ÃÈñ¤µ¤ì¤¿»þ´Ö) -¤â´Þ¤Þ¤ì¤ë¡£¤³¤ì¤Ï¡¢¥²¥¹¥È»þ´Ö¤Î¥Õ¥£¡¼¥ë¥É¤òǧ¼±¤·¤Ê¤¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó -¤Ë¤ª¤¤¤Æ¡¢¥²¥¹¥È»þ´Öʬ¤ò·×»»¤ËÆþ¤ì»¤Í¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ç¤¢¤ë¡£ +で割った値が表示される)。 +この値にはゲスト時間 \fIguest_time\fP (仮想 CPU の実行に消費された時間) +も含まれる。これは、ゲスト時間のフィールドを認識しないアプリケーション +において、ゲスト時間分を計算に入れ損ねないようにするためである。 .TP \fIstime\fP %lu .\"O Amount of time that this process has been scheduled in kernel mode, .\"O measured in clock ticks (divide by .\"O .IR sysconf(_SC_CLK_TCK) . -¥×¥í¥»¥¹¤Î¥«¡¼¥Í¥ë¥â¡¼¥É¤Ç¤Î¼Â¹Ô»þ´Ö (ñ°Ì jiffies)¡£ -¤³¤Î¥×¥í¥»¥¹¤¬¥«¡¼¥Í¥ë¥â¡¼¥É¤Ç¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤¿»þ´Ö¤Î¹ç·×¡£ -clock tick ñ°Ì¤Ç·×¬¤µ¤ì¤ë +プロセスのカーネルモードでの実行時間 (単位 jiffies)。 +このプロセスがカーネルモードでスケジューリングされた時間の合計。 +clock tick 単位で計測される .RI ( sysconf(_SC_CLK_TCK) -¤Ç³ä¤Ã¤¿Ãͤ¬É½¼¨¤µ¤ì¤ë)¡£ +で割った値が表示される)。 .TP \fIcutime\fP %ld .\"O Amount of time that this process's @@ -1096,32 +1096,32 @@ clock tick ñ .\"O .BR times (2).) .\"O This includes guest time, \fIcguest_time\fP .\"O (time spent running a virtual CPU, see below). -.\"O motoki: waited-for children ¤ÎÌõ¤Ë¼«¿®¤Ê¤·¡£ -¤³¤Î¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Ç¡¢½ªÎ»ÂÔ¤Á (waited-for) ¤Î¥×¥í¥»¥¹¤¬¡¢ -¥æ¡¼¥¶¥â¡¼¥É¤Ç¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤¿»þ´Ö¤Î¹ç·×¡£ -clock tick ñ°Ì¤Ç·×¬¤µ¤ì¤ë +.\"O motoki: waited-for children の訳に自信なし。 +このプロセスの子プロセスで、終了待ち (waited-for) のプロセスが、 +ユーザモードでスケジューリングされた時間の合計。 +clock tick 単位で計測される .RI ( sysconf(_SC_CLK_TCK) -¤Ç³ä¤Ã¤¿Ãͤ¬É½¼¨¤µ¤ì¤ë)¡£ +で割った値が表示される)。 .RB ( times (2) -¤â»²¾È¤¹¤ë¤³¤È¡£) -¤³¤ÎÃͤˤϥ²¥¹¥È»þ´Ö \fIcguest_time\fP -(²¾ÁÛ CPU ¤ò¼Â¹Ô¤¹¤ë¤Î¤Ë¾ÃÈñ¤·¤¿»þ´Ö¡¢²¼µ­»²¾È) ¤â´Þ¤Þ¤ì¤ë¡£ +も参照すること。) +この値にはゲスト時間 \fIcguest_time\fP +(仮想 CPU を実行するのに消費した時間、下記参照) も含まれる。 .TP \fIcstime\fP %ld .\"O Amount of time that this process's .\"O waited-for children have been scheduled in kernel mode, .\"O measured in clock ticks (divide by .\"O .IR sysconf(_SC_CLK_TCK) . -.\"O motoki: waited-for children ¤ÎÌõ¤Ë¼«¿®¤Ê¤·¡£ -¤³¤Î¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Ç¡¢½ªÎ»ÂÔ¤Á (waited-for) ¤Î¥×¥í¥»¥¹¤¬¡¢ -¥«¡¼¥Í¥ë¥â¡¼¥É¤Ç¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤¿»þ´Ö¤Î¹ç·×¡£ -clock tick ñ°Ì¤Ç·×¬¤µ¤ì¤ë +.\"O motoki: waited-for children の訳に自信なし。 +このプロセスの子プロセスで、終了待ち (waited-for) のプロセスが、 +カーネルモードでスケジューリングされた時間の合計。 +clock tick 単位で計測される .RI ( sysconf(_SC_CLK_TCK) -¤Ç³ä¤Ã¤¿Ãͤ¬É½¼¨¤µ¤ì¤ë)¡£ +で割った値が表示される)。 .TP \fIpriority\fP %ld .\"O (Explanation for Linux 2.6) -(Linux 2.6 ¤Î¾ì¹ç¤ÎÀâÌÀ) +(Linux 2.6 の場合の説明) .\"O For processes running a real-time scheduling policy .\"O .RI ( policy .\"O below; see @@ -1129,14 +1129,14 @@ clock tick ñ .\"O this is the negated scheduling priority, minus one; .\"O that is, a number in the range \-2 to \-100, .\"O corresponding to real-time priorities 1 to 99. -¥ê¥¢¥ë¥¿¥¤¥à¡¦¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥Ý¥ê¥·¡¼ -(²¼µ­¤Î +リアルタイム・スケジューリングポリシー +(下記の .I policy ; .BR sched_setscheduler (2) -»²¾È) ¤ÇÆ°ºî¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Ç¤Ï¡¢ -¤³¤ÎÃͤϥ¹¥±¥¸¥å¡¼¥ê¥ó¥°Í¥ÀèÅÙ¤òȿž¤·¤¿ÃÍ (¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Í¥ÀèÅÙ¤ò -¥Þ¥¤¥Ê¥¹¤Ë¤·¤¿ÃÍ) ¤È¤Ê¤ë¡£ÃÍ¤Ï \-2 ¤«¤é \-100 ¤Þ¤Ç¤ÎÈϰϤοôÃͤǡ¢ -¤½¤ì¤¾¤ì¥ê¥¢¥ë¥¿¥¤¥àÍ¥ÀèÅ٤Π1 ¤«¤é 9 ¤ËÂбþ¤¹¤ë¡£ +参照) で動作しているプロセスでは、 +この値はスケジューリング優先度を反転した値 (スケジューリング優先度を +マイナスにした値) となる。値は \-2 から \-100 までの範囲の数値で、 +それぞれリアルタイム優先度の 1 から 9 に対応する。 .\"O For processes running under a non-real-time scheduling policy, .\"O this is the raw nice value .\"O .RB ( setpriority (2)) @@ -1144,27 +1144,27 @@ clock tick ñ .\"O The kernel stores nice values as numbers .\"O in the range 0 (high) to 39 (low), .\"O corresponding to the user-visible nice range of \-20 to 19. -¥ê¥¢¥ë¥¿¥¤¥à°Ê³°¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥Ý¥ê¥·¡¼¤ÇÆ°ºî¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Ç¤Ï¡¢ -¤³¤ÎÃͤϥ«¡¼¥Í¥ëÆâ¤Ç´ÉÍý¤µ¤ì¤Æ¤¤¤ë nice Ãͤ½¤Î¤â¤Î +リアルタイム以外のスケジューリングポリシーで動作しているプロセスでは、 +この値はカーネル内で管理されている nice 値そのもの .RB ( setpriority (2)) -¤È¤Ê¤ë¡£ -¥«¡¼¥Í¥ë¤Ï nice Ãͤò 0 (¹â) ¤«¤é 39 (Äã) ¤ÎÈϰϤÎÃͤȤ·¤ÆÊÝ»ý¤·¤Æ¤ª¤ê¡¢ -¤½¤ì¤¾¤ì¥æ¡¼¥¶¤Ë¸«¤¨¤ë nice ÃͤΠ\-20 ¤«¤é 19 ¤ËÂбþ¤¹¤ë¡£ +となる。 +カーネルは nice 値を 0 (高) から 39 (低) の範囲の値として保持しており、 +それぞれユーザに見える nice 値の \-20 から 19 に対応する。 .\"O Before Linux 2.6, this was a scaled value based on .\"O the scheduler weighting given to this process. -Linux 2.6 ¤è¤êÁ°¤Ç¤Ï¡¢¤³¤Î¥×¥í¥»¥¹¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥¹¥±¥¸¥å¡¼¥ê¥ó¥° -½Å¤ß¤òÊÑ´¹¤·¤¿Ãͤ¬É½¼¨¤µ¤ì¤Æ¤¤¤¿¡£ +Linux 2.6 より前では、このプロセスに割り当てられたスケジューリング +重みを変換した値が表示されていた。 .\" And back in kernel 1.2 days things were different again. .TP \fInice\fP %ld .\"O The nice value (see .\"O .BR setpriority (2)), .\"O a value in the range 19 (low priority) to \-20 (high priority). -nice ÃÍ +nice 値 .RB ( setpriority (2) -»²¾È)¡£ -19 (ºÇÄãÍ¥Àè) ¤«¤é \-20 (ºÇ¹âÍ¥Àè) ¤ÎÈϰϤÎÃͤǤ¢¤ë¡£ +参照)。 +19 (最低優先) から \-20 (最高優先) の範囲の値である。 .\" Back in kernel 1.2 days things were different. .TP .\" .TP @@ -1172,21 +1172,21 @@ nice .\"O .\" The current maximum size in jiffies of the process's next timeslice, .\"O .\" or what is currently left of its current timeslice, if it is the .\"O .\" currently running process. -.\" ¤³¤Î¥×¥í¥»¥¹¤¬¸½ºß¼Â¹ÔÃæ¤Ç¤¢¤ë¾ì¹ç¡¢ -.\" ¼¡¤Î¥¿¥¤¥à¥¹¥é¥¤¥¹¤Ë¤ª¤±¤ë¸½»þÅÀ¤Ç¤Î¥×¥í¥»¥¹¤ÎºÇÂç»ÈÍÑ»þ´Ö (ñ°Ì jiffies)¡¢ -.\" ¤Þ¤¿¤Ï¸½ºß¤Î¥¿¥¤¥à¥¹¥é¥¤¥¹¤Ë¤ª¤±¤ë»Ä¤ê»þ´Ö¤òɽ¤¹¡£ +.\" このプロセスが現在実行中である場合、 +.\" 次のタイムスライスにおける現時点でのプロセスの最大使用時間 (単位 jiffies)、 +.\" または現在のタイムスライスにおける残り時間を表す。 .\" .TP .\" \fItimeout\fP %u .\"O .\" The time in jiffies of the process's next timeout. -.\" ¥×¥í¥»¥¹¤Î¼¡¤Î¥¿¥¤¥à¥¢¥¦¥È»þ´Ö(ñ°Ì jiffies)¡£ +.\" プロセスの次のタイムアウト時間(単位 jiffies)。 .\"O .\" timeout was removed sometime around 2.1/2.2 \fInum_threads\fP %ld .\"O Number of threads in this process (since Linux 2.6). -¤³¤Î¥×¥í¥»¥¹¤Î¥¹¥ì¥Ã¥É¿ô (Linux 2.6 °Ê¹ß)¡£ +このプロセスのスレッド数 (Linux 2.6 以降)。 .\"O Before kernel 2.6, this field was hard coded to 0 as a placeholder .\"O for an earlier removed field. -¥«¡¼¥Í¥ë 2.6 ¤è¤êÁ°¤Ç¤Ï¡¢¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ïºï½ü¤µ¤ì¤¿¥Õ¥£¡¼¥ë¥É¤Î -¾ì½êËä¤á¤È¤·¤Æ 0 ¤Ë¥Ï¡¼¥É¥³¡¼¥É¤µ¤ì¤Æ¤¤¤¿¡£ +カーネル 2.6 より前では、このフィールドは削除されたフィールドの +場所埋めとして 0 にハードコードされていた。 .TP .\" field 21 \fIitrealvalue\fP %ld @@ -1195,20 +1195,20 @@ nice .\"O is sent to the process due to an interval timer. .\"O Since kernel 2.6.17, this field is no longer maintained, .\"O and is hard coded as 0. -¥¤¥ó¥¿¡¼¥Ð¥ë¥¿¥¤¥Þ¤Ë¤è¤Ã¤Æ¡¢¼¡¤Ë +インターバルタイマによって、次に .B SIGALRM -¤¬¥×¥í¥»¥¹¤ØÁ÷¤é¤ì¤ë¤Þ¤Ç¤Î»þ´Ö (ñ°Ì jiffies)¡£ -¥«¡¼¥Í¥ë 2.6.17 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¥á¥ó¥Æ¥Ê¥ó¥¹¤µ¤ì¤Ê¤¯¤Ê¤ê¡¢ -0 ¤Ë¥Ï¡¼¥É¥³¡¼¥É¤µ¤ì¤Æ¤¤¤ë¡£ +がプロセスへ送られるまでの時間 (単位 jiffies)。 +カーネル 2.6.17 以降では、このフィールドはメンテナンスされなくなり、 +0 にハードコードされている。 .TP .\"O \fIstarttime\fP %llu (was %lu before Linux 2.6) -\fIstarttime\fP %llu (Linux 2.6 ¤è¤êÁ°¤Ï %lu) +\fIstarttime\fP %llu (Linux 2.6 より前は %lu) .\"O The time in jiffies the process started after system boot. -¥×¥í¥»¥¹¤Îµ¯Æ°»þ¹ï¡£¥·¥¹¥Æ¥à¤¬µ¯Æ°¤·¤¿»þ¹ï¤¬µ¯ÅÀ (ñ°Ì jiffies)¡£ +プロセスの起動時刻。システムが起動した時刻が起点 (単位 jiffies)。 .TP \fIvsize\fP %lu .\"O Virtual memory size in bytes. -²¾ÁÛ¥á¥â¥ê¤Î¥µ¥¤¥º¡£Ã±°Ì¤Ï¥Ð¥¤¥È¡£ +仮想メモリのサイズ。単位はバイト。 .TP \fIrss\fP %ld .\"O Resident Set Size: number of pages the process has in real memory. @@ -1216,10 +1216,10 @@ nice .\"O count towards text, data, or stack space. .\"O This does not include pages .\"O which have not been demand-loaded in, or which are swapped out. -Resident Set Size¡£¥×¥í¥»¥¹¤¬»ý¤Ã¤Æ¤¤¤ë¼Â¥á¥â¥ê¾å¤Î¥Ú¡¼¥¸¿ô¡£ -¤³¤ì¤Ï¤Á¤ç¤¦¤É¥Æ¥­¥¹¥È¡¢¥Ç¡¼¥¿¡¢¥¹¥¿¥Ã¥¯¶õ´Ö¤Ë»È¤ï¤ì¤Æ¤¤¤ë¥Ú¡¼¥¸¿ô¤Ç¤¢¤ë¡£ -¥Ç¥Þ¥ó¥É¥í¡¼¥É¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ú¡¼¥¸¤ä -¥¹¥ï¥Ã¥×¥¢¥¦¥È¤µ¤ì¤¿¥Ú¡¼¥¸¤Î¿ô¤Ï´Þ¤ó¤Ç¤¤¤Ê¤¤¡£ +Resident Set Size。プロセスが持っている実メモリ上のページ数。 +これはちょうどテキスト、データ、スタック空間に使われているページ数である。 +デマンドロードされていないページや +スワップアウトされたページの数は含んでいない。 .TP \fIrsslim\fP %lu .\"O Current soft limit in bytes on the rss of the process; @@ -1227,33 +1227,33 @@ Resident Set Size .\"O .B RLIMIT_RSS .\"O in .\"O .BR getpriority (2). -¤³¤Î¥×¥í¥»¥¹¤Î rss ¤Î¸½ºß¤Î¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È (¥Ð¥¤¥Èñ°Ì)¡£ +このプロセスの rss の現在のソフト・リミット (バイト単位)。 .BR getpriority (2) -¤Î +の .B RLIMIT_RSS -¤ÎÀâÌÀ¤ò»²¾È¡£ +の説明を参照。 .TP \fIstartcode\fP %lu .\"O The address above which program text can run. -¥×¥í¥°¥é¥à¥Æ¥­¥¹¥È¤¬¼Â¹Ô²Äǽ¤Ç¤¢¤ë¤è¤¦¤ÊÎΰè¤ÎÀèƬ¥¢¥É¥ì¥¹¡£ +プログラムテキストが実行可能であるような領域の先頭アドレス。 .TP \fIendcode\fP %lu .\"O The address below which program text can run. -¥×¥í¥°¥é¥à¥Æ¥­¥¹¥È¤¬¼Â¹Ô²Äǽ¤Ç¤¢¤ë¤è¤¦¤ÊÎΰè¤ÎËöÈø¥¢¥É¥ì¥¹¡£ +プログラムテキストが実行可能であるような領域の末尾アドレス。 .TP \fIstartstack\fP %lu .\"O The address of the start (i.e., bottom) of the stack. -¥¹¥¿¥Ã¥¯¤Î³«»Ï¥¢¥É¥ì¥¹ (¤¹¤Ê¤ï¤Á¡¢¥¹¥¿¥Ã¥¯¤ÎÄì)¡£ +スタックの開始アドレス (すなわち、スタックの底)。 .TP \fIkstkesp\fP %lu .\"O The current value of ESP (stack pointer), as found in the .\"O kernel stack page for the process. -¸½ºß¤Î ESP (¥¹¥¿¥Ã¥¯¥Ý¥¤¥ó¥¿) ¤ÎÃÍ¡£ -¥×¥í¥»¥¹¤Î¥«¡¼¥Í¥ë¥¹¥¿¥Ã¥¯¥Ú¡¼¥¸¤Ë¤¢¤ë¡£ +現在の ESP (スタックポインタ) の値。 +プロセスのカーネルスタックページにある。 .TP \fIkstkeip\fP %lu .\"O The current EIP (instruction pointer). -¸½ºß¤Î EIP (¥¤¥ó¥¹¥È¥é¥¯¥·¥ç¥ó¥Ý¥¤¥ó¥¿) ¤ÎÃÍ¡£ +現在の EIP (インストラクションポインタ) の値。 .TP .\" field 31 \fIsignal\fP %lu @@ -1261,52 +1261,52 @@ Resident Set Size .\"O Obsolete, because it does not provide information on real-time signals; use .\"O .I /proc/[pid]/status .\"O instead. -½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë¤Î¥Ó¥Ã¥È¥Þ¥Ã¥×¡£ -10 ¿Ê¿ô¤Çɽ¼¨¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¡£ -¥ê¥¢¥ë¥¿¥¤¥à¡¦¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤Ïɽ¼¨¤µ¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ -Âå¤ï¤ê¤Ë +処理待ちのシグナルのビットマップ。 +10 進数で表示される。 +このフィールドは廃止予定である。 +リアルタイム・シグナルに関する情報は表示されないからである。 +代わりに .I /proc/[pid]/status -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .TP \fIblocked\fP %lu .\"O The bitmap of blocked signals, displayed as a decimal number. .\"O Obsolete, because it does not provide information on real-time signals; use .\"O .I /proc/[pid]/status .\"O instead. -¥Ö¥í¥Ã¥¯¤µ¤ì¤¿ (blocked) ¥·¥°¥Ê¥ë¤Î¥Ó¥Ã¥È¥Þ¥Ã¥×¡£ -10 ¿Ê¿ô¤Çɽ¼¨¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¡£ -¥ê¥¢¥ë¥¿¥¤¥à¡¦¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤Ïɽ¼¨¤µ¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ -Âå¤ï¤ê¤Ë +ブロックされた (blocked) シグナルのビットマップ。 +10 進数で表示される。 +このフィールドは廃止予定である。 +リアルタイム・シグナルに関する情報は表示されないからである。 +代わりに .I /proc/[pid]/status -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .TP \fIsigignore\fP %lu .\"O The bitmap of ignored signals, displayed as a decimal number. .\"O Obsolete, because it does not provide information on real-time signals; use .\"O .I /proc/[pid]/status .\"O instead. -̵»ë¤µ¤ì¤¿ (ignored) ¥·¥°¥Ê¥ë¤Î¥Ó¥Ã¥È¥Þ¥Ã¥×¡£ -10 ¿Ê¿ô¤Çɽ¼¨¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¡£ -¥ê¥¢¥ë¥¿¥¤¥à¡¦¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤Ïɽ¼¨¤µ¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ -Âå¤ï¤ê¤Ë +無視された (ignored) シグナルのビットマップ。 +10 進数で表示される。 +このフィールドは廃止予定である。 +リアルタイム・シグナルに関する情報は表示されないからである。 +代わりに .I /proc/[pid]/status -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .TP \fIsigcatch\fP %lu .\"O The bitmap of caught signals, displayed as a decimal number. .\"O Obsolete, because it does not provide information on real-time signals; use .\"O .I /proc/[pid]/status .\"O instead. -Ê᪤µ¤ì¤¿ (caught) ¥·¥°¥Ê¥ë¤Î¥Ó¥Ã¥È¥Þ¥Ã¥×¡£ -10 ¿Ê¿ô¤Çɽ¼¨¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¡£ -¥ê¥¢¥ë¥¿¥¤¥à¡¦¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤Ïɽ¼¨¤µ¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ -Âå¤ï¤ê¤Ë +捕捉された (caught) シグナルのビットマップ。 +10 進数で表示される。 +このフィールドは廃止予定である。 +リアルタイム・シグナルに関する情報は表示されないからである。 +代わりに .I /proc/[pid]/status -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .TP \fIwchan\fP %lu .\"O This is the "channel" in which the process is waiting. @@ -1317,91 +1317,91 @@ Resident Set Size .\"O .IR /etc/psdatabase , .\"O then .\"O try \fIps \-l\fP to see the WCHAN field in action.) -¥×¥í¥»¥¹¤¬ÂԤäƤ¤¤ë¡Ö¥Á¥ã¥Í¥ë¡×¡£ -¤³¤ì¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ê¡¢Ê¸»ú̾¤¬É¬Íפʤé¤Ð -(¥¢¥É¥ì¥¹¤È¥·¥¹¥Æ¥à¥³¡¼¥ë̾¤È¤Î) Âбþɽ¤«¤é¸«¤Ä¤±¤é¤ì¤ë -(¤â¤· +プロセスが待っている「チャネル」。 +これはシステムコールのアドレスであり、文字名が必要ならば +(アドレスとシステムコール名との) 対応表から見つけられる +(もし .I /etc/psdatabase -[ÌõÃí: ¤³¤Î¥Õ¥¡¥¤¥ë̾¤Ï¥Ñ¥Ã¥±¡¼¥¸¤Ë¤è¤ë] ¤ò¹¹¿·¤·¤Æ¤¤¤ë¤Ê¤é¤Ð¡¢ -\fIps \-l\fP ¤·¤Æ WCHAN ¥Õ¥£¡¼¥ë¥É¤ò¸«¤è)¡£ +[訳注: このファイル名はパッケージによる] を更新しているならば、 +\fIps \-l\fP して WCHAN フィールドを見よ)。 .TP \fInswap\fP %lu .\" nswap was added in 2.0 .\"O Number of pages swapped (not maintained). -¥¹¥ï¥Ã¥×¤µ¤ì¤¿¥Ú¡¼¥¸¿ô (¥á¥ó¥Æ¥Ê¥ó¥¹¤µ¤ì¤Æ¤¤¤Ê¤¤)¡£ +スワップされたページ数 (メンテナンスされていない)。 .TP \fIcnswap\fP %lu .\" cnswap was added in 2.0 .\"O Cumulative \fInswap\fP for child processes (not maintained). -»Ò¥×¥í¥»¥¹¤Î \fInswap\fP ¤ÎÎß·× (¥á¥ó¥Æ¥Ê¥ó¥¹¤µ¤ì¤Æ¤¤¤Ê¤¤)¡£ +子プロセスの \fInswap\fP の累計 (メンテナンスされていない)。 .TP .\"O \fIexit_signal\fP %d (since Linux 2.1.22) -\fIexit_signal\fP %d (Linux 2.1.22 °Ê¹ß) +\fIexit_signal\fP %d (Linux 2.1.22 以降) .\"O Signal to be sent to parent when we die. -¥×¥í¥»¥¹¤¬»à¤ó¤À¤È¤­¤Ë¿Æ¥×¥í¥»¥¹¤ËÁ÷¤é¤ì¤ë¥·¥°¥Ê¥ë¡£ +プロセスが死んだときに親プロセスに送られるシグナル。 .TP .\"O \fIprocessor\fP %d (since Linux 2.2.8) -\fIprocessor\fP %d (Linux 2.2.8 °Ê¹ß) +\fIprocessor\fP %d (Linux 2.2.8 以降) .\"O CPU number last executed on. -¤³¤Î¥×¥í¥»¥¹¤òºÇ¸å¤Ë¼Â¹Ô¤·¤¿ CPU ¤ÎÈֹ档 +このプロセスを最後に実行した CPU の番号。 .TP .\"O \fIrt_priority\fP %u (since Linux 2.5.19; was %lu before Linux 2.6.22) -\fIrt_priority\fP %u (Linux 2.5.19 °Ê¹ß; Linux 2.6.22 ¤è¤êÁ°¤Ï %lu) +\fIrt_priority\fP %u (Linux 2.5.19 以降; Linux 2.6.22 より前は %lu) .\"O Real-time scheduling priority, a number in the range 1 to 99 for .\"O processes scheduled under a real-time policy, .\"O or 0, for non-real-time processes (see .\"O .BR sched_setscheduler (2)). -¥ê¥¢¥ë¥¿¥¤¥à¡¦¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ÎÍ¥ÀèÅÙ¡£ -¥ê¥¢¥ë¥¿¥¤¥à¡¦¥Ý¥ê¥·¡¼¤Î¸µ¤Ç¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤ë¥×¥í¥»¥¹¤Ç¤Ï -1 ¤«¤é 99 ¤ÎÈϰϤÎÃͤȤʤꡢ -¥ê¥¢¥ë¥¿¥¤¥à°Ê³°¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥Ý¥ê¥·¡¼¤Î¥×¥í¥»¥¹¤Ç¤Ï 0 ¤È¤Ê¤ë +リアルタイム・スケジューリングの優先度。 +リアルタイム・ポリシーの元でスケジューリングされるプロセスでは +1 から 99 の範囲の値となり、 +リアルタイム以外のスケジューリングポリシーのプロセスでは 0 となる .RB ( sched_setscheduler (2) -»²¾È)¡£ +参照)。 .TP .\" field 41 .\"O \fIpolicy\fP %u (since Linux 2.5.19; was %lu before Linux 2.6.22) -\fIpolicy\fP %u (Linux 2.5.19 °Ê¹ß; Linux 2.6.22 ¤è¤êÁ°¤Ï %lu) +\fIpolicy\fP %u (Linux 2.5.19 以降; Linux 2.6.22 より前は %lu) .\"O Scheduling policy (see .\"O .BR sched_setscheduler (2)). .\"O Decode using the SCHED_* constants in .\"O .IR linux/sched.h . -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼ +スケジューリング・ポリシー .RB ( sched_setscheduler (2) -»²¾È)¡£ -Ãͤϡ¢ +参照)。 +値は、 .I linux/sched.h -¤Î SCHED_* Äê¿ô¤ò»È¤Ã¤Æ¥Ç¥³¡¼¥É¤¹¤ì¤Ð¤è¤¤¡£ +の SCHED_* 定数を使ってデコードすればよい。 .TP .\"O \fIdelayacct_blkio_ticks\fP %llu (since Linux 2.6.18) -\fIdelayacct_blkio_ticks\fP %llu (Linux 2.6.18 °Ê¹ß) +\fIdelayacct_blkio_ticks\fP %llu (Linux 2.6.18 以降) .\"O Aggregated block I/O delays, measured in clock ticks (centiseconds). -(clock tick (100ʬ¤Î1ÉÃ) ñ°Ì¤Ç¤Î) ¥Ö¥í¥Ã¥¯ I/O ¤ÎÁíÃÙ±äÎÌ¡£ +(clock tick (100分の1秒) 単位での) ブロック I/O の総遅延量。 .TP .\"O \fIguest_time\fP %lu (since Linux 2.6.24) -\fIguest_time\fP %lu (Linux 2.6.24 °Ê¹ß) +\fIguest_time\fP %lu (Linux 2.6.24 以降) .\"O Guest time of the process (time spent running a virtual CPU .\"O for a guest operating system), measured in clock ticks (divide by .\"O .IR sysconf(_SC_CLK_TCK) . -¥×¥í¥»¥¹¤Î¥²¥¹¥È»þ´Ö (¥²¥¹¥È OS ¤Î²¾ÁÛ CPU ¤ò¼Â¹Ô¤¹¤ë¤Î¤Ë¾ÃÈñ¤µ¤ì¤¿»þ´Ö)¡£ -clock tick ñ°Ì¤Ç·×¬¤µ¤ì¤ë +プロセスのゲスト時間 (ゲスト OS の仮想 CPU を実行するのに消費された時間)。 +clock tick 単位で計測される .RI ( sysconf(_SC_CLK_TCK) -¤Ç³ä¤Ã¤¿Ãͤ¬É½¼¨¤µ¤ì¤ë)¡£ +で割った値が表示される)。 .TP .\"O \fIcguest_time\fP %ld (since Linux 2.6.24) -\fIcguest_time\fP %ld (Linux 2.6.24 °Ê¹ß) +\fIcguest_time\fP %ld (Linux 2.6.24 以降) .\"O Guest time of the process's children, measured in clock ticks (divide by .\"O .IR sysconf(_SC_CLK_TCK) . -¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Î¥²¥¹¥È»þ´Ö¡£ -clock tick ñ°Ì¤Ç·×¬¤µ¤ì¤ë +プロセスの子プロセスのゲスト時間。 +clock tick 単位で計測される .RI ( sysconf(_SC_CLK_TCK) -¤Ç³ä¤Ã¤¿Ãͤ¬É½¼¨¤µ¤ì¤ë)¡£ +で割った値が表示される)。 .RE .TP .I /proc/[pid]/statm .\"O Provides information about memory usage, measured in pages. -(¥Ú¡¼¥¸Ã±°Ì¤Ç·×¬¤·¤¿) ¥á¥â¥ê»ÈÍÑÎ̤ˤĤ¤¤Æ¤Î¾ðÊó¤òÄ󶡤¹¤ë¡£ +(ページ単位で計測した) メモリ使用量についての情報を提供する。 .\"O The columns are: -³ÆÎó¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +各列は以下の通りである。 .in +4n .nf @@ -1416,17 +1416,17 @@ clock tick ñ .\"O data data + stack .\"O .\" (including libs; broken, includes library text) .\"O dt dirty pages (unused in Linux 2.6) -size ¥×¥í¥°¥é¥à¥µ¥¤¥º¤ÎÁí·× - (\fI/proc/[pid]/status\fP ¤Î VmSize ¤ÈƱ¤¸) -resident ¼Â¥á¥â¥ê¾å¤Ë¸ºß¤¹¤ë¥Ú¡¼¥¸ - (\fI/proc/[pid]/status\fP ¤Î VmRSS ¤ÈƱ¤¸) -share ¶¦Í­¥Ú¡¼¥¸ (¶¦Í­¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¤Æ¤¤¤ë¥Ú¡¼¥¸) -text ¥Æ¥­¥¹¥È (¥³¡¼¥É) -.\" (libs ¤Ï´Þ¤Þ¤ì¤Ê¤¤; ¤ª¤«¤·¤Ê¤³¤È¤Ë¡¢data ¥»¥°¥á¥ó¥È¤Ï´Þ¤Þ¤ì¤ë) -lib ¥é¥¤¥Ö¥é¥ê (Linux 2.6 ¤Ç¤Ï̤»ÈÍÑ) -data ¥Ç¡¼¥¿ + ¥¹¥¿¥Ã¥¯ -.\" (libs ¤ò´Þ¤à; ¤ª¤«¤·¤Ê¤³¤È¤Ë¡¢library text ¤â´Þ¤Þ¤ì¤ë) -dt ¥À¡¼¥Æ¥£¥Ú¡¼¥¸ (Linux 2.6 ¤Ç¤Ï̤»ÈÍÑ) +size プログラムサイズの総計 + (\fI/proc/[pid]/status\fP の VmSize と同じ) +resident 実メモリ上に存在するページ + (\fI/proc/[pid]/status\fP の VmRSS と同じ) +share 共有ページ (共有マッピングされているページ) +text テキスト (コード) +.\" (libs は含まれない; おかしなことに、data セグメントは含まれる) +lib ライブラリ (Linux 2.6 では未使用) +data データ + スタック +.\" (libs を含む; おかしなことに、library text も含まれる) +dt ダーティページ (Linux 2.6 では未使用) .fi .in .TP @@ -1437,11 +1437,11 @@ dt .\"O .I /proc/[pid]/statm .\"O in a format that's easier for humans to parse. .I /proc/[pid]/stat -¤È +と .I /proc/[pid]/statm -¤Ë¤¢¤ë¿¤¯¤Î¾ðÊó¤ò¡¢¿Í´Ö¤¬²òÀϤ·¤ä¤¹¤¤·Á¼°¤ÇÄ󶡤¹¤ë¡£ +にある多くの情報を、人間が解析しやすい形式で提供する。 .\"O Here's an example: -°Ê²¼¤ËÎã¤ò¼¨¤¹¡£ +以下に例を示す。 .in +4n .nf @@ -1487,12 +1487,12 @@ nonvoluntary_ctxt_switches: 545 .in .IP .\"O The fields are as follows: -¥Õ¥£¡¼¥ë¥É¤Î¾ÜºÙ¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +フィールドの詳細は以下の通りである。 .RS .IP * 2 .IR Name : .\"O Command run by this process. -¤³¤Î¥×¥í¥»¥¹¤Ë¤è¤ê¼Â¹Ô¤µ¤ì¤¿¥³¥Þ¥ó¥É¡£ +このプロセスにより実行されたコマンド。 .IP * .IR State : .\"O Current state of the process. One of @@ -1504,183 +1504,183 @@ nonvoluntary_ctxt_switches: 545 .\"O "Z (zombie)", .\"O or .\"O "X (dead)". -¥×¥í¥»¥¹¤Î¸½ºß¤Î¾õÂÖ¡£ -"R (running; ¼Â¹ÔÃæ)", -"S (sleeping; µÙ̲¾õÂÖ)", -"D (disk sleep; ¥Ç¥£¥¹¥¯ÂÔ¤Á¤ÎµÙ̲¾õÂÖ)", -"T (stopped; Ää»ß¾õÂÖ)", -"T (tracing stop; ¥È¥ì¡¼¥¹¤Ë¤è¤ëÄä»ß)", -"Z (zombie; ¥¾¥ó¥Ó¾õÂÖ)", -"X (dead; »àË´)" -¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¡£ +プロセスの現在の状態。 +"R (running; 実行中)", +"S (sleeping; 休眠状態)", +"D (disk sleep; ディスク待ちの休眠状態)", +"T (stopped; 停止状態)", +"T (tracing stop; トレースによる停止)", +"Z (zombie; ゾンビ状態)", +"X (dead; 死亡)" +のいずれかである。 .IP * .IR Tgid : .\"O Thread group ID (i.e., Process ID). -¥¹¥ì¥Ã¥É¥°¥ë¡¼¥× ID (¤¹¤Ê¤ï¤Á¡¢¥×¥í¥»¥¹ ID)¡£ +スレッドグループ ID (すなわち、プロセス ID)。 .IP * .IR Pid : .\"O Thread ID (see .\"O .BR gettid (2)). -¥¹¥ì¥Ã¥É ID +スレッド ID .RB ( gettid (2) -»²¾È)¡£ +参照)。 .IP * .IR TracerPid : .\"O PID of process tracing this process (0 if not being traced). -¤³¤Î¥×¥í¥»¥¹¤ò¥È¥ì¡¼¥¹¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î PID -(¥È¥ì¡¼¥¹¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï 0)¡£ +このプロセスをトレースしているプロセスの PID +(トレースされていない場合は 0)。 .IP * .IR Uid ", " Gid : .\"O Real, effective, saved set, and file system UIDs (GIDs). -¼Â UID/GID¡¢¼Â¸ú UID/GID¡¢Êݸ set-UID/GID¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID/GID¡£ +実 UID/GID、実効 UID/GID、保存 set-UID/GID、ファイルシステム UID/GID。 .IP * .IR FDSize : .\"O Number of file descriptor slots currently allocated. -¸½ºß³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¥¹¥í¥Ã¥È¿ô¡£ +現在割り当てられているファイルディスクリプタのスロット数。 .IP * .IR Groups : .\"O Supplementary group list. -Êä½õ¥°¥ë¡¼¥×¤Î¥ê¥¹¥È¡£ +補助グループのリスト。 .IP * .IR VmPeak : .\"O Peak virtual memory size. -²¾ÁÛ¥á¥â¥ê¥µ¥¤¥º¤Î¥Ô¡¼¥¯ÃÍ¡£ +仮想メモリサイズのピーク値。 .IP * .IR VmSize : .\"O Virtual memory size. -²¾ÁÛ¥á¥â¥ê¥µ¥¤¥º¡£ +仮想メモリサイズ。 .IP * .IR VmLck : .\"O Locked memory size (see .\"O .BR mlock (3)). -¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¥á¥â¥ê¥µ¥¤¥º +ロックされているメモリサイズ .RB ( mlock (3) -»²¾È)¡£ +参照)。 .IP * .IR VmHWM : .\"O Peak resident set size ("high water mark"). -¼Â¥á¥â¥ê¾å¤Ë¸ºß¤¹¤ë¥Ú¡¼¥¸¥µ¥¤¥º (resident set size) -¤Î¥Ô¡¼¥¯ÃÍ ("high water mark")¡£ +実メモリ上に存在するページサイズ (resident set size) +のピーク値 ("high water mark")。 .IP * .IR VmRSS : .\"O Resident set size. -¼Â¥á¥â¥ê¾å¤Ë¸ºß¤¹¤ë¥Ú¡¼¥¸¥µ¥¤¥º¡£ +実メモリ上に存在するページサイズ。 .IP * .IR VmData ", " VmStk ", " VmExe : .\"O Size of data, stack, and text segments. -¥Ç¡¼¥¿¡¢¥¹¥¿¥Ã¥¯¡¢¥Æ¥­¥¹¥È¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º¡£ +データ、スタック、テキストセグメントのサイズ。 .IP * .IR VmLib : .\"O Shared library code size. -¶¦Í­¥é¥¤¥Ö¥é¥ê¡¦¥³¡¼¥É¤Î¥µ¥¤¥º¡£ +共有ライブラリ・コードのサイズ。 .IP * .IR VmPTE : .\"O Page table entries size (since Linux 2.6.10). -¥Ú¡¼¥¸¡¦¥Æ¡¼¥Ö¥ë¡¦¥¨¥ó¥È¥ê¤Î¥µ¥¤¥º (Linux 2.6.10 °Ê¹ß)¡£ +ページ・テーブル・エントリのサイズ (Linux 2.6.10 以降)。 .IP * .IR Threads : .\"O Number of threads in process containing this thread. -¤³¤Î¥¹¥ì¥Ã¥É¤¬Â°¤¹¤ë¥×¥í¥»¥¹¤Î¥¹¥ì¥Ã¥É¿ô¡£ +このスレッドが属するプロセスのスレッド数。 .IP * .IR SigPnd ", " ShdPnd : .\"O Number of signals pending for thread and for process as a whole (see .\"O .BR pthreads (7) .\"O and .\"O .BR signal (7)). -¥¹¥ì¥Ã¥É°¸¤ª¤è¤Ó¥×¥í¥»¥¹Á´Âΰ¸¤Î½èÍýÂÔ¤Á¥·¥°¥Ê¥ë¤Î¿ô +スレッド宛およびプロセス全体宛の処理待ちシグナルの数 .RB ( pthreads (7), .BR signal (7) -»²¾È)¡£ +参照)。 .IP * .IR SigBlk ", " SigIgn ", " SigCgt : .\"O Masks indicating signals being blocked, ignored, and caught (see .\"O .BR signal (7)). -¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¥·¥°¥Ê¥ë¡¢Ìµ»ë¤µ¤ì¤ë¥·¥°¥Ê¥ë¡¢ÊáªÂÔ¤Á¤Î¥·¥°¥Ê¥ë¤ò -¼¨¤¹¥Þ¥¹¥¯ÃÍ -.RB ( signal (7))¡£ +ブロックされるシグナル、無視されるシグナル、捕捉待ちのシグナルを +示すマスク値 +.RB ( signal (7))。 .IP * .IR CapInh ", " CapPrm ", " CapEff : .\"O Masks of capabilities enabled in inheritable, permitted, and effective sets .\"O (see .\"O .BR capabilities (7)). -·Ñ¾µ²Äǽ (inheritable)¡¢µö²Ä (permitted)¡¢¼Â¸ú (effective) -¤Î³Æ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÇÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¥Þ¥¹¥¯ÃÍ +継承可能 (inheritable)、許可 (permitted)、実効 (effective) +の各ケーパビリティセットで有効になっているケーパビリティのマスク値 .RB ( capabilities (7) -»²¾È)¡£ +参照)。 .IP * .IR CapBnd : .\"O Capability Bounding set .\"O (since kernel 2.6.26, see .\"O .BR capabilities (7)). -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È -(¥«¡¼¥Í¥ë 2.6.26 °Ê¹ß¡¢ +ケーパビリティ・バウンディングセット +(カーネル 2.6.26 以降、 .BR capabilities (7) -»²¾È)¡£ +参照)。 .IP * .IR Cpus_allowed : .\"O Mask of CPUs on which this process may run .\"O (since Linux 2.6.24, see .\"O .BR cpuset (7)). -¤³¤Î¥×¥í¥»¥¹¤¬¼Â¹Ô¤òµö²Ä¤µ¤ì¤Æ¤¤¤ë CPU ¤Î¥Þ¥¹¥¯ÃÍ -(Linux 2.6.24 °Ê¹ß¡¢ +このプロセスが実行を許可されている CPU のマスク値 +(Linux 2.6.24 以降、 .BR cpuset (7) -»²¾È)¡£ +参照)。 .IP * .IR Cpus_allowed_list : .\"O Same as previous, but in "list format" .\"O (since Linux 2.6.26, see .\"O .BR cpuset (7)). -Á°¹à¤ÈƱ¤¸¤À¤¬¡¢¡Ö¥ê¥¹¥È·Á¼°¡×¤Ç¤Îɽ¼¨ -(Linux 2.6.26 °Ê¹ß¡¢ +前項と同じだが、「リスト形式」での表示 +(Linux 2.6.26 以降、 .BR cpuset (7) -»²¾È)¡£ +参照)。 .IP * .IR Mems_allowed : .\"O Mask of memory nodes allowed to this process .\"O (since Linux 2.6.24, see .\"O .BR cpuset (7)). -¤³¤Î¥×¥í¥»¥¹¤¬»ÈÍѤǤ­¤ë¥á¥â¥ê¥Î¡¼¥É¤Î¥Þ¥¹¥¯ÃÍ -(Linux 2.6.24 °Ê¹ß¡¢ +このプロセスが使用できるメモリノードのマスク値 +(Linux 2.6.24 以降、 .BR cpuset (7) -»²¾È)¡£ +参照)。 .IP * .IR Mems_allowed_list : .\"O Same as previous, but in "list format" .\"O (since Linux 2.6.26, see .\"O .BR cpuset (7)). -Á°¹à¤ÈƱ¤¸¤À¤¬¡¢¡Ö¥ê¥¹¥È·Á¼°¡×¤Ç¤Îɽ¼¨ -(Linux 2.6.26 °Ê¹ß¡¢ +前項と同じだが、「リスト形式」での表示 +(Linux 2.6.26 以降、 .BR cpuset (7) -»²¾È)¡£ +参照)。 .IP * .IR voluntary_context_switches ", " nonvoluntary_context_switches : .\"O Number of voluntary and involuntary context switches (since Linux 2.6.23). -¼«È¯Åª/Èó¼«È¯Åª¤Ê¥³¥ó¥Æ¥­¥¹¥È¥¹¥¤¥Ã¥Á¤Î²ó¿ô -(Linux 2.6.23 °Ê¹ß)¡£ +自発的/非自発的なコンテキストスイッチの回数 +(Linux 2.6.23 以降)。 .RE .TP .\"O .IR /proc/[pid]/task " (since Linux 2.6.0-test6)" -.IR /proc/[pid]/task " (Linux 2.6.0-test6 °Ê¹ß)" +.IR /proc/[pid]/task " (Linux 2.6.0-test6 以降)" .\"O This is a directory that contains one subdirectory .\"O for each thread in the process. -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤Î¥¹¥ì¥Ã¥É¾ðÊó¤ò´Þ¤à -¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤¬ 1 ¥¹¥ì¥Ã¥É¤Ë¤Ä¤­ 1 ¤ÄÃÖ¤«¤ì¤ë¡£ +このディレクトリには、そのプロセスのスレッド情報を含む +サブディレクトリが 1 スレッドにつき 1 つ置かれる。 .\"O The name of each subdirectory is the numerical thread ID .\"O .RI ( [tid] ) .\"O of the thread (see .\"O .BR gettid (2)). -³Æ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Î̾Á°¤Ï¥¹¥ì¥Ã¥É¤Î¥¹¥ì¥Ã¥É ID +各サブディレクトリの名前はスレッドのスレッド ID .RI ( [tid] ) -¤ò¼¨¤¹¿ô»ú¤Ç¤¢¤ë +を示す数字である .BR ( gettid (2) -¤ò»²¾È)¡£ +を参照)。 .\"O Within each of these subdirectories, there is a set of .\"O files with the same names and contents as under the .\"O .I /proc/[pid] .\"O directories. -¤³¤ì¤é¤Î³Æ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢ +これらの各サブディレクトリには、 .I /proc/[pid] -¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤ÈƱ¤¸Ì¾Á°¤ÈÆâÍƤΥե¡¥¤¥ë·²¤¬¤¢¤ë¡£ +ディレクトリ以下と同じ名前と内容のファイル群がある。 .\"O For attributes that are shared by all threads, the contents for .\"O each of the files under the .\"O .I task/[tid] @@ -1694,66 +1694,66 @@ nonvoluntary_ctxt_switches: 545 .\"O .I /proc/[pid]/cwd .\"O file in the parent directory, since all of the threads in a process .\"O share a working directory). -¤¹¤Ù¤Æ¤Î¥¹¥ì¥Ã¥É¤Ç¶¦Í­¤µ¤ì¤ë°À­¤Î¾ì¹ç¡¢ +すべてのスレッドで共有される属性の場合、 .I task/[tid] -¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Î³Æ¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¤Ï -¿Æ¥Ç¥£¥ì¥¯¥È¥ê +サブディレクトリ以下の各ファイルの内容は +親ディレクトリ .I /proc/[pid] -¤ÎÂбþ¤¹¤ë¥Õ¥¡¥¤¥ë¤ÈƱ¤¸¤Ë¤Ê¤ë¤³¤È¤À¤í¤¦ -(Î㤨¤Ð¡¢¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¡¦¥×¥í¥»¥¹¤Ç¤Ï¥Õ¥¡¥¤¥ë +の対応するファイルと同じになることだろう +(例えば、マルチスレッド・プロセスではファイル .I task/[tid]/cwd -¤Ï¤¤¤º¤ì¤â¿Æ¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î +はいずれも親ディレクトリ内の .I /proc/[pid]/cwd -¤ÈƱ¤¸Ãͤò»ý¤Ä¤³¤È¤Ë¤Ê¤ë¡£¤Ê¤¼¤Ê¤é¡¢°ì¤Ä¤Î¥×¥í¥»¥¹¤Ë°¤¹¤¹¤Ù¤Æ¤Î -¥¹¥ì¥Ã¥É¤Ïºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤ò¶¦Í­¤¹¤ë¤«¤é¤Ç¤¢¤ë)¡£ +と同じ値を持つことになる。なぜなら、一つのプロセスに属すすべての +スレッドは作業ディレクトリを共有するからである)。 .\"O For attributes that are distinct for each thread, .\"O the corresponding files under .\"O .I task/[tid] .\"O may have different values (e.g., various fields in each of the .\"O .I task/[tid]/status .\"O files may be different for each thread). -¥¹¥ì¥Ã¥ÉËè¤ËÆÈΩ¤Ê°À­¤Î¾ì¹ç¡¢ +スレッド毎に独立な属性の場合、 .I task/[tid] -¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Î³Æ¥Õ¥¡¥¤¥ë¤Ï°Û¤Ê¤ëÃͤò»ý¤Ä¤³¤È¤¬¤¢¤ë -(Î㤨¤Ð¡¢¥Õ¥¡¥¤¥ë +サブディレクトリ以下の各ファイルは異なる値を持つことがある +(例えば、ファイル .I task/[tid]/status -¤Ï¥¹¥ì¥Ã¥ÉËè¤Ë°Û¤Ê¤ëÃͤò»ý¤Ä²ÄǽÀ­¤¬¤¢¤ë)¡£ +はスレッド毎に異なる値を持つ可能性がある)。 .\"O .\" The following was still true as at kernel 2.6.13 -.\" °Ê²¼¤ÎÆâÍÆ¤Ï ¥«¡¼¥Í¥ë 2.6.13 ¤Ç¤Ï¤Þ¤ÀÀµ¤·¤¤¡£ +.\" 以下の内容は カーネル 2.6.13 ではまだ正しい。 .\"O In a multithreaded process, the contents of the .\"O .I /proc/[pid]/task .\"O directory are not available if the main thread has already terminated .\"O (typically by calling .\"O .BR pthread_exit (3)). -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥×¥í¥»¥¹¤Ç¤Ï¡¢¥á¥¤¥ó¥¹¥ì¥Ã¥É¤¬¤¹¤Ç¤Ë½ªÎ»¤·¤Æ¤¤¤ë¾ì¹ç¡¢ +マルチスレッドプロセスでは、メインスレッドがすでに終了している場合、 .I /proc/[pid]/task -¥Ç¥£¥ì¥¯¥È¥ê¤ÎÆâÍƤϻ²¾È¤Ç¤­¤Ê¤¤ -(¥¹¥ì¥Ã¥É¤Î½ªÎ»¤ÏÄ̾ï +ディレクトリの内容は参照できない +(スレッドの終了は通常 .BR pthread_exit (3) -¤ò¸Æ¤Ó½Ð¤·¤Ë¤è¤ê¹Ô¤ï¤ì¤ë)¡£ +を呼び出しにより行われる)。 .TP .I /proc/apm .\"O Advanced power management version and battery information when .\"O .B CONFIG_APM .\"O is defined at kernel compilation time. -Advanced Power Management ¤Î¥Ð¡¼¥¸¥ç¥ó¤È¥Ð¥Ã¥Æ¥ê¾ðÊó¡£ -¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +Advanced Power Management のバージョンとバッテリ情報。 +カーネルのコンパイル時に .B CONFIG_APM -¤òÄêµÁ¤·¤¿¤È¤­¤Ë¸ºß¤¹¤ë¡£ +を定義したときに存在する。 .TP .I /proc/bus .\"O Contains subdirectories for installed busses. -¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë³Æ¥Ð¥¹ÍѤ˥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤¬¤¢¤ë¡£ +インストールされている各バス用にサブディレクトリがある。 .TP .I /proc/bus/pccard .\"O Subdirectory for PCMCIA devices when .\"O .B CONFIG_PCMCIA .\"O is set at kernel compilation time. -PCMCIA ¥Ç¥Ð¥¤¥¹¤Î¾ðÊ󤬽ñ¤«¤ì¤ë¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¡£ -¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +PCMCIA デバイスの情報が書かれるサブディレクトリ。 +カーネルのコンパイル時に .B CONFIG_PCMCIA -¤òÄêµÁ¤·¤¿¤È¤­¤Ë¸ºß¤¹¤ë¡£ +を定義したときに存在する。 .TP .I /proc/bus/pccard/drivers .TP @@ -1762,10 +1762,10 @@ PCMCIA .\"O information about PCI busses, installed devices, and device .\"O drivers. .\"O Some of these files are not ASCII. -¤¤¤¯¤Ä¤«¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤¬¤¢¤ê¡¢ -PCI ¥Ð¥¹¡¦¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ç¥Ð¥¤¥¹¡¦ -¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Î¾ðÊ󤬽ñ¤«¤ì¤¿²¾ÁÛ¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Î¤¦¤Á¤¤¤¯¤Ä¤«¤Ï ASCII ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤Ï¤Ê¤¤¡£ +いくつかのサブディレクトリがあり、 +PCI バス・インストールされているデバイス・ +デバイスドライバの情報が書かれた仮想ファイルがある。 +これらのファイルのうちいくつかは ASCII フォーマットではない。 .TP .I /proc/bus/pci/devices .\"O Information about PCI devices. @@ -1773,11 +1773,11 @@ PCI .\"O .BR lspci (8) .\"O and .\"O .BR setpci (8). -PCI ¥Ç¥Ð¥¤¥¹¤Î¾ðÊó¡£ +PCI デバイスの情報。 .BR lspci (8) -¤ä +や .BR setpci (8) -¤Ç¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +でアクセスすることができる。 .TP .I /proc/cmdline .\"O Arguments passed to the Linux kernel at boot time. @@ -1785,15 +1785,15 @@ PCI .\"O .BR lilo (8) .\"O or .\"O .BR grub (8). -¥Ö¡¼¥È»þ¤Ë Linux ¥«¡¼¥Í¥ë¤ËÅϤµ¤ì¤¿°ú¤­¿ô¡£ -°ú¤­¿ô¤Î¼õ¤±ÅϤ·¤Ï¡¢¤¿¤¤¤Æ¤¤ +ブート時に Linux カーネルに渡された引き数。 +引き数の受け渡しは、たいてい .BR lilo (8) -¤ä +や .BR grub (8) -¤È¤¤¤Ã¤¿¥Ö¡¼¥È¥Þ¥Í¡¼¥¸¥ã¤ò»È¤Ã¤Æ¹Ô¤ï¤ì¤ë¡£ +といったブートマネージャを使って行われる。 .TP .\"O .IR /proc/config.gz " (since Linux 2.6)" -.IR /proc/config.gz " (Linux 2.6 °Ê¹ß)" +.IR /proc/config.gz " (Linux 2.6 以降)" .\"O This file exposes the configuration options that were used .\"O to build the currently running kernel, .\"O in the same format as they would be shown in the @@ -1802,14 +1802,14 @@ PCI .\"O .IR "make xconfig" , .\"O .IR "make config" , .\"O or similar). -¤³¤Î¥Õ¥¡¥¤¥ë¤Ç¤Ï¡¢¸½ºß¼Â¹ÔÃæ¤Î¥«¡¼¥Í¥ë¤Î¹½ÃÛ»þ¤Ë»ÈÍѤµ¤ì¤¿ -ÀßÄꥪ¥×¥·¥ç¥ó¤ò»²¾È¤Ç¤­¤ë¡£ -½ñ¼°¤Ï¡¢ +このファイルでは、現在実行中のカーネルの構築時に使用された +設定オプションを参照できる。 +書式は、 .RI ( "make xconfig" , .IR "make config" -¤Ê¤É¤ò»È¤Ã¤Æ) ¥«¡¼¥Í¥ë¤ÎÀßÄê¤òÊѹ¹¤·¤¿ºÝ¤ËÀ¸À®¤µ¤ì¤ë +などを使って) カーネルの設定を変更した際に生成される .I .config -¥Õ¥¡¥¤¥ë¤Î¤â¤Î¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +ファイルのものと同じである。 .\"O The file contents are compressed; view or search them using .\"O .BR zcat (1), .\"O .BR zgrep (1), @@ -1818,13 +1818,13 @@ PCI .\"O the contents of .\"O .I /proc/config.gz .\"O are the same as those provided by : -¥Õ¥¡¥¤¥ë¤ÎÆâÍƤϰµ½Ì¤µ¤ì¤Æ¤ª¤ê¡¢ +ファイルの内容は圧縮されており、 .BR zcat (1), .BR zgrep (1) -¤Ê¤É¤ò»È¤¦¤È¡¢É½¼¨¤ä¸¡º÷¤¬¤Ç¤­¤ë¡£ -¥Õ¥¡¥¤¥ë¤¬Êѹ¹¤µ¤ì¤Æ¤¤¤Ê¤¤¸Â¤ê¡¢ +などを使うと、表示や検索ができる。 +ファイルが変更されていない限り、 .I /proc/config.gz -¤ÎÆâÍƤϼ¡¤Î¥³¥Þ¥ó¥É¤ÇÆÀ¤é¤ì¤ëÆâÍƤÈƱ¤¸¤Ç¤¢¤ë¡£ +の内容は次のコマンドで得られる内容と同じである。 .in +4n .nf @@ -1836,9 +1836,9 @@ cat /lib/modules/$(uname -r)/build/.config .\"O is only provided if the kernel is configured with .\"O .BR CONFIG_IKCONFIG_PROC . .I /proc/config.gz -¤¬Ä󶡤µ¤ì¤ë¤Î¤Ï¡¢¥«¡¼¥Í¥ë¤ÎÀßÄê¤Ç +が提供されるのは、カーネルの設定で .B CONFIG_IKCONFIG_PROC -¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Î¤ß¤Ç¤¢¤ë¡£ +が有効になっている場合のみである。 .TP .I /proc/cpuinfo .\"O This is a collection of CPU and system architecture dependent items, @@ -1848,51 +1848,51 @@ cat /lib/modules/$(uname -r)/build/.config .\"O during kernel initialization. .\"O SMP machines have information for .\"O each CPU. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢CPU ¤ª¤è¤Ó¥·¥¹¥Æ¥à¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë°Í¸¤¹¤ë¹àÌܤò -½¸¤á¤¿¤â¤Î¤Ç¡¢¥ê¥¹¥È¤ÎÆâÍƤϥµ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥¢¡¼¥­¥Æ¥¯¥Á¥ãËè¤Ë°Û¤Ê¤ë¡£ -2 ¤Ä¤À¤±¶¦Ä̤ιàÌܤ¬¤¢¤ë¡£ -\fIprocessor\fP ¤Ï¥×¥í¥»¥Ã¥µÈÖ¹æ¤Ç¡¢ -\fIbogomips\fP ¤Ï¥«¡¼¥Í¥ë¤Î½é´ü²½»þ¤Ë·×»»¤µ¤ì¤ë¥·¥¹¥Æ¥àÄê¿ô¤Ç¤¢¤ë¡£ -SMP ¥Þ¥·¥ó¤Ç¤Ï³Æ CPU ¤Ë¤Ä¤¤¤Æ¤Î¾ðÊ󤬽ñ¤«¤ì¤Æ¤¤¤ë¡£ +このファイルは、CPU およびシステムアーキテクチャに依存する項目を +集めたもので、リストの内容はサポートされているアーキテクチャ毎に異なる。 +2 つだけ共通の項目がある。 +\fIprocessor\fP はプロセッサ番号で、 +\fIbogomips\fP はカーネルの初期化時に計算されるシステム定数である。 +SMP マシンでは各 CPU についての情報が書かれている。 .TP .I /proc/devices .\"O Text listing of major numbers and device groups. .\"O This can be used by MAKEDEV scripts for consistency with the kernel. -¥á¥¸¥ã¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤È¥Ç¥Ð¥¤¥¹¥°¥ë¡¼¥×¤Î¥Æ¥­¥¹¥È·Á¼°¤Î¥ê¥¹¥È¡£ -MAKEDEV ¥¹¥¯¥ê¥×¥È¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤ò»È¤Ã¤Æ¡¢ -¥«¡¼¥Í¥ë¤È¤ÎÀ°¹çÀ­¤òÊݤĤ³¤È¤¬¤Ç¤­¤ë¡£ +メジャーデバイス番号とデバイスグループのテキスト形式のリスト。 +MAKEDEV スクリプトはこのファイルを使って、 +カーネルとの整合性を保つことができる。 .TP .\"O .IR /proc/diskstats " (since Linux 2.5.69)" -.IR /proc/diskstats " (Linux 2.5.69 °Ê¹ß)" +.IR /proc/diskstats " (Linux 2.5.69 以降)" .\"O This file contains disk I/O statistics for each disk device. .\"O See the kernel source file .\"O .I Documentation/iostats.txt .\"O for further information. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï³Æ¥Ç¥£¥¹¥¯¥Ç¥Ð¥¤¥¹¤Î¥Ç¥£¥¹¥¯ I/O Åý·×¾ðÊ󤬽ñ¤«¤ì¤Æ¤¤¤ë¡£ -¹¹¤Ë¾Ü¤·¤¤¾ðÊó¤Ï¡¢¥«¡¼¥Í¥ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë +このファイルには各ディスクデバイスのディスク I/O 統計情報が書かれている。 +更に詳しい情報は、カーネルソースファイル .I Documentation/iostats.txt -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .TP .I /proc/dma .\"O This is a list of the registered \fIISA\fP DMA (direct memory access) .\"O channels in use. -ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë \fIISA\fP DMA (direct memory access) ¥Á¥ã¥Í¥ë¤Î¥ê¥¹¥È¡£ +登録されている \fIISA\fP DMA (direct memory access) チャネルのリスト。 .TP .I /proc/driver .\"O Empty subdirectory. -¶õ¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¡£ +空のサブディレクトリ。 .TP .I /proc/execdomains .\"O List of the execution domains (ABI personalities). -¼Â¹Ô¥É¥á¥¤¥ó¤Î¥ê¥¹¥È (ABI ¥Ñ¡¼¥½¥Ê¥ê¥Æ¥£)¡£ +実行ドメインのリスト (ABI パーソナリティ)。 .TP .I /proc/fb .\"O Frame buffer information when .\"O .B CONFIG_FB .\"O is defined during kernel compilation. -¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +カーネルのコンパイル時に .B CONFIG_FB -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥Õ¥ì¡¼¥à¥Ð¥Ã¥Õ¥¡¤Î¾ðÊ󤬽ñ¤«¤ì¤ë¡£ +が定義されている場合、フレームバッファの情報が書かれる。 .TP .I /proc/filesystems .\"O A text listing of the file systems which are supported by the kernel, @@ -1903,15 +1903,15 @@ MAKEDEV .\"O If a file system is marked with "nodev", .\"O this means that it does not require a block device to be mounted .\"O (e.g., virtual file system, network file system). -¥«¡¼¥Í¥ë¤¬Âбþ¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Æ¥­¥¹¥È·Á¼°¤Î¥ê¥¹¥È¡£ -¥«¡¼¥Í¥ë¤ËÁȤ߹þ¤Þ¤ì¤Æ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤È¡¢ -¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¤¬¸½ºß¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬Îóµó¤µ¤ì¤ë +カーネルが対応しているファイルシステムのテキスト形式のリスト。 +カーネルに組み込まれてコンパイルされたファイルシステムと、 +カーネルモジュールが現在ロードされているファイルシステムが列挙される .RB ( filesystems (5) -»²¾È)¡£ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë "nodev" ¤È¤¤¤¦°õ¤¬ÉÕ¤¤¤Æ¤¤¤ë¾ì¹ç¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¥Þ¥¦¥ó¥È¤¹¤ë¤¿¤á¤Î¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤ò -ɬÍפȤ·¤Ê¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë (Î㤨¤Ð¡¢ -²¾ÁÛ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¡¢¥Í¥Ã¥È¥ï¡¼¥¯¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ê¤É)¡£ +参照)。 +ファイルシステムに "nodev" という印が付いている場合、 +そのファイルシステムがマウントするためのブロックデバイスを +必要としないことを意味する (例えば、 +仮想ファイルシステム、ネットワークファイルシステムなど)。 .\"O Incidentally, this file may be used by .\"O .BR mount (8) @@ -1919,49 +1919,49 @@ MAKEDEV .\"O file system type. .\"O Then file systems contained in this file are tried .\"O (excepted those that are marked with "nodev"). -¤Á¤Ê¤ß¤Ë¡¢¥Þ¥¦¥ó¥È»þ¤Ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬»ØÄꤵ¤ì¤º¡¢ -¤É¤¦¤ä¤Ã¤Æ¤â¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¼ïÎà¤òȽÄê¤Ç¤­¤Ê¤«¤Ã¤¿ºÝ¤Ë¡¢ -¤³¤Î¥Õ¥¡¥¤¥ë¤ò +ちなみに、マウント時にファイルシステムが指定されず、 +どうやってもファイルシステムの種類を判定できなかった際に、 +このファイルを .BR mount (8) -¤¬»ÈÍѤ¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤½¤Î¾ì¹ç¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ë´Þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬»î¤µ¤ì¤ë -(¤¿¤À¤·¡¢"nodev" ¤Î°õ¤¬¤Ä¤¤¤¿¤â¤Î¤Ï½ü¤¯)¡£ +が使用するかもしれない。 +その場合、このファイルに含まれるファイルシステムが試される +(ただし、"nodev" の印がついたものは除く)。 .TP .I /proc/fs .\"O Empty subdirectory. -¶õ¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¡£ +空のサブディレクトリ。 .TP .I /proc/ide .\"O This directory .\"O exists on systems with the IDE bus. .\"O There are directories for each IDE channel and attached device. .\"O Files include: -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï IDE ¥Ð¥¹¤ò¤â¤Ä¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¡£ -³Æ IDE ¥Á¥ã¥Í¥ë¤È¤½¤ì¤Ë¼è¤êÉÕ¤±¤é¤ì¤Æ¤¤¤ë³Æ¥Ç¥Ð¥¤¥¹¤´¤È¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤¬¤¢¤ê¡¢ -°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +このディレクトリは IDE バスをもつシステムに存在する。 +各 IDE チャネルとそれに取り付けられている各デバイスごとにディレクトリがあり、 +以下のファイルが含まれている。 .in +4n .nf .\"O cache buffer size in KB -cache ¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º (KB) +cache バッファサイズ (KB) .\"O capacity number of sectors -capacity ¥»¥¯¥¿¿ô +capacity セクタ数 .\"O driver driver version -driver ¥É¥é¥¤¥Ð¤Î¥Ð¡¼¥¸¥ç¥ó +driver ドライバのバージョン .\"O geometry physical and logical geometry -geometry ʪÍý¥¸¥ª¥á¥È¥ê¤ÈÏÀÍý¥¸¥ª¥á¥È¥ê +geometry 物理ジオメトリと論理ジオメトリ .\"O identify in hexadecimal -identify 16 ¿Ê¿ôɽµ­ +identify 16 進数表記 .\"O media media type -media ¥á¥Ç¥£¥¢¤Î¥¿¥¤¥× +media メディアのタイプ .\"O model manufacturer's model number -model À½Â¤¼Ô¤Î¥â¥Ç¥ëÈÖ¹æ +model 製造者のモデル番号 .\"O settings drive settings -settings ¥É¥é¥¤¥Ö¤ÎÀßÄê +settings ドライブの設定 .\"O smart_thresholds in hexadecimal -smart_thresholds 16 ¿Ê¿ôɽµ­ +smart_thresholds 16 進数表記 .\"O smart_values in hexadecimal -smart_values 16 ¿Ê¿ôɽµ­ +smart_values 16 進数表記 .fi .in @@ -1969,8 +1969,8 @@ smart_values 16 .\"O .BR hdparm (8) .\"O utility provides access to this information in a friendly format. .BR hdparm (8) -¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ï¡¢Ê¬¤«¤ê¤ä¤¹¤¤·Á¼°¤Ç -¤³¤Î¾ðÊó¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Î¼êÃʤòÄ󶡤¹¤ë¡£ +ユーティリティは、分かりやすい形式で +この情報にアクセスするための手段を提供する。 .TP .I /proc/interrupts .\"O This is used to record the number of interrupts per CPU per IO device. @@ -1981,39 +1981,39 @@ smart_values 16 .\"O and for SMP systems, TLB (TLB flush interrupt), RES (rescheduling .\"O interrupt), CAL (remote function call interrupt), and possibly others. .\"O Very easy to read formatting, done in ASCII. -IO ¥Ç¥Ð¥¤¥¹Ëè¤Î CPU Ê̤γä¤ê¹þ¤ß²ó¿ô¤Îµ­Ï¿¤Ë»È¤ï¤ì¤ë¡£ -Linux 2.6.24 °Ê¹ß¡¢¾¯¤Ê¤¯¤È¤â i386 ¤È x86_64 ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢ -(¥Ç¥Ð¥¤¥¹¤È´ØÏ¢¤¬¤Ê¤¤) ¥·¥¹¥Æ¥àÆâÉô¤Î³ä¤ê¹þ¤ß¤Ë¤Ä¤¤¤Æ¤âµ­Ï¿¤µ¤ì¤ë¡£ -¥·¥¹¥Æ¥àÆâÉô¤Î³ä¤ê¹þ¤ß¤Ë¤Ï¡¢NMI (nonmaskable interrupt), -LOC (local timer interrupt) ¤ä¡¢SMP ¥·¥¹¥Æ¥à¤Ç¤Ï TLB (TLB flush interrupt), +IO デバイス毎の CPU 別の割り込み回数の記録に使われる。 +Linux 2.6.24 以降、少なくとも i386 と x86_64 アーキテクチャでは、 +(デバイスと関連がない) システム内部の割り込みについても記録される。 +システム内部の割り込みには、NMI (nonmaskable interrupt), +LOC (local timer interrupt) や、SMP システムでは TLB (TLB flush interrupt), RES (rescheduling interrupt), CAL (remote function call interrupt) -¤Ê¤É¤¬¤¢¤ë¡£ -´Êñ¤ËÆɤळ¤È¤Î¤Ç¤­¤ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¡¢ASCII ¤Çɽµ­¤µ¤ì¤Æ¤¤¤ë¡£ +などがある。 +簡単に読むことのできるフォーマットで、ASCII で表記されている。 .TP .I /proc/iomem .\"O I/O memory map in Linux 2.4. -Linux 2.4 ¤Ë¤ª¤±¤ë I/O ¥á¥â¥ê¥Þ¥Ã¥×¡£ +Linux 2.4 における I/O メモリマップ。 .TP .I /proc/ioports .\"O This is a list of currently registered Input-Output port regions that .\"O are in use. -¸½ºßÅÐÏ¿¤µ¤ì»È¤ï¤ì¤Æ¤¤¤ë I/O ¥Ý¡¼¥ÈÎΰè¤Î¥ê¥¹¥È¡£ +現在登録され使われている I/O ポート領域のリスト。 .TP .\"O .IR /proc/kallsyms " (since Linux 2.5.71)" -.IR /proc/kallsyms " (Linux 2.5.71 °Ê¹ß)" +.IR /proc/kallsyms " (Linux 2.5.71 以降)" .\"O This holds the kernel exported symbol definitions used by the .\"O .BR modules (X) .\"O tools to dynamically link and bind loadable modules. -¥«¡¼¥Í¥ë¤Î³°Éô¥·¥ó¥Ü¥ëÄêµÁ¤òÊÝ»ý¤¹¤ë¡£ +カーネルの外部シンボル定義を保持する。 .BR modules (X) -´Ø·¸¤Î¥Ä¡¼¥ë¤¬¥í¡¼¥À¥Ö¥ë¥â¥¸¥å¡¼¥ë¤òưŪ¤Ë¥ê¥ó¥¯¤·¤¿¤ê -¥Ð¥¤¥ó¥É (bind) ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£ +関係のツールがローダブルモジュールを動的にリンクしたり +バインド (bind) するのに使われる。 .\"O In Linux 2.5.47 and earlier, a similar file with slightly different syntax .\"O was named .\"O .IR ksyms . -Linux 2.5.47 °ÊÁ°¤Ç¤Ï¡¢Èù̯¤Ë°Û¤Ê¤ë½ñ¼°¤Î»÷¤¿¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¤¬ +Linux 2.5.47 以前では、微妙に異なる書式の似たようなファイルが .I ksyms -¤È¤¤¤¦Ì¾Á°¤Ç¤¢¤Ã¤¿¡£ +という名前であった。 .TP .I /proc/kcore .\"O This file represents the physical memory of the system and is stored @@ -2023,16 +2023,16 @@ Linux 2.5.47 .\"O .RI ( /usr/src/linux/vmlinux ) .\"O binary, GDB can be used to .\"O examine the current state of any kernel data structures. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥·¥¹¥Æ¥à¤ÎʪÍý¥á¥â¥ê¤òɽ¸½¤·¤Æ¤ª¤ê¡¢ -ELF ¥³¥¢¥Õ¥¡¥¤¥ë·Á¼° (core file format) ¤ÇÊÝ»ý¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Îµ¼»÷¥Õ¥¡¥¤¥ë¤È strip ¤µ¤ì¤Æ¤¤¤Ê¤¤¥«¡¼¥Í¥ë¤Î¥Ð¥¤¥Ê¥ê +このファイルはシステムの物理メモリを表現しており、 +ELF コアファイル形式 (core file format) で保持されている。 +この擬似ファイルと strip されていないカーネルのバイナリ .RI ( /usr/src/linux/vmlinux ) -[ÌõÃí: ¥Ñ¥Ã¥±¡¼¥¸¤Ë°Í¸¤¹¤ë]) ¤¬¤¢¤ì¤Ð¡¢ -GDB ¤Ï¥«¡¼¥Í¥ëÆâ¤ÎǤ°Õ¤Î¥Ç¡¼¥¿¹½Â¤¤Î¸½ºß¤Î¾õÂÖ¤òÄ´¤Ù¤é¤ì¤ë¡£ +[訳注: パッケージに依存する]) があれば、 +GDB はカーネル内の任意のデータ構造の現在の状態を調べられる。 .\"O The total length of the file is the size of physical memory (RAM) plus .\"O 4KB. -¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÂ礭¤µ¤ÏʪÍý¥á¥â¥ê (RAM) ¤Î¥µ¥¤¥º¤Ë 4KB ¤ò²Ã¤¨¤¿ÃͤǤ¢¤ë¡£ +このファイルの大きさは物理メモリ (RAM) のサイズに 4KB を加えた値である。 .TP .I /proc/kmsg .\"O This file can be used instead of the @@ -2045,28 +2045,28 @@ GDB .\"O which uses the .\"O .BR syslog (2) .\"O system call facility to log kernel messages. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï +このファイルは .BR syslog (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¥«¡¼¥Í¥ë¥á¥Ã¥»¡¼¥¸¤òÆɤ߽Ф¹Âå¤ê¤Ë»È¤¨¤ë¡£ -¥×¥í¥»¥¹¤¬¤³¤Î¥Õ¥¡¥¤¥ë¤òÆɤि¤á¤Ë¤Ï¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¸¢¸Â¤¬É¬ÍפǤ¢¤ê¡¢ -¥Õ¥¡¥¤¥ë¤òÆɤ߽Ф¹¤Î¤Ï 1 ¤Ä¤Î¥×¥í¥»¥¹¤Î¤ß¤Ë¸Â¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë¥á¥Ã¥»¡¼¥¸¤òµ­Ï¿¤¹¤ë¤¿¤á¤Ë¡¢ +システムコールでカーネルメッセージを読み出す代りに使える。 +プロセスがこのファイルを読むためにはスーパーユーザー権限が必要であり、 +ファイルを読み出すのは 1 つのプロセスのみに限るべきである。 +カーネルメッセージを記録するために、 .BR syslog (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Îµ¡Ç½¤ò»È¤¦ syslog ¥×¥í¥»¥¹¤¬²ÔƯ¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -¤³¤Î¥Õ¥¡¥¤¥ë¤òÆɤ߽Ф¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +システムコールの機能を使う syslog プロセスが稼働している場合、 +このファイルを読み出すべきではない。 .\"O Information in this file is retrieved with the .\"O .BR dmesg (1) .\"O program. -¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÃæ¤Î¾ðÊó¤Ï +このファイルの中の情報は .BR dmesg (1) -¤Ë¤è¤Ã¤Æɽ¼¨¤µ¤ì¤ë¡£ +によって表示される。 .TP .IR /proc/ksyms " (Linux 1.1.23-2.5.47)" .\"O See .\"O .IR /proc/kallsyms . .I /proc/kallsyms -¤ò»²¾È¡£ +を参照。 .TP .I /proc/loadavg .\"O The first three fields in this file are load average figures @@ -2075,48 +2075,48 @@ GDB .\"O They are the same as the load average numbers given by .\"O .BR uptime (1) .\"O and other programs. -¤³¤Î¥Õ¥¡¥¤¥ë¤ÎºÇ½é¤Î 3 ¤Ä¤Î¥Õ¥£¡¼¥ë¥É¤Ï¥í¡¼¥É¥¢¥Ù¥ì¡¼¥¸¤Î¿ôÃͤǡ¢ -1, 5, 15 ʬ¤¢¤¿¤ê¤Î¼Â¹Ô¥­¥å¡¼Æâ (state R) ¤Þ¤¿¤Ï -¥Ç¥£¥¹¥¯ I/O ÂÔ¤Á (state D) ¤Î¥¸¥ç¥Ö¿ô¤òÍ¿¤¨¤ë¡£ -¤³¤ì¤Ï +このファイルの最初の 3 つのフィールドはロードアベレージの数値で、 +1, 5, 15 分あたりの実行キュー内 (state R) または +ディスク I/O 待ち (state D) のジョブ数を与える。 +これは .BR uptime (1) -¤Ê¤É¤Î¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤ÆÆÀ¤é¤ì¤ëÃͤÈƱ¤¸¤Ç¤¢¤ë¡£ +などのプログラムによって得られる値と同じである。 .\"O The fourth field consists of two numbers separated by a slash (/). -4 ÈÖÌܤΥե£¡¼¥ë¥É¤Ï¥¹¥é¥Ã¥·¥å (/) ¤Ç¶èÀÚ¤é¤ì¤¿ 2 ¤Ä¤Î¿ôÃͤ«¤é¹½À®¤µ¤ì¤ë¡£ +4 番目のフィールドはスラッシュ (/) で区切られた 2 つの数値から構成される。 .\"O The first of these is the number of currently executing kernel .\"O scheduling entities (processes, threads); .\"O this will be less than or equal to the number of CPUs. -¤³¤Î¿ôÃͤΤ¦¤ÁºÇ½é¤Î¤â¤Î¤Ï¡¢¸½ºß¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë -¥«¡¼¥Í¥ë¥¹¥±¥¸¥å¡¼¥ë¥¨¥ó¥Æ¥£¥Æ¥£ (¥×¥í¥»¥¹¡¢¥¹¥ì¥Ã¥É) ¤Î¿ô¤Ç¤¢¤ë¡£ -¤³¤Î¿ôÃÍ¤Ï CPU ¤Î¿ô°Ê²¼¤Ë¤Ê¤ë¡£ +この数値のうち最初のものは、現在実行されている +カーネルスケジュールエンティティ (プロセス、スレッド) の数である。 +この数値は CPU の数以下になる。 .\"O The value after the slash is the number of kernel scheduling entities .\"O that currently exist on the system. -¥¹¥é¥Ã¥·¥å¤Î¸å¤Î¿ôÃͤϡ¢¸½ºß¥·¥¹¥Æ¥à¾å¤Ë¸ºß¤¹¤ë -¥«¡¼¥Í¥ë¥¹¥±¥¸¥å¡¼¥ë¥¨¥ó¥Æ¥£¥Æ¥£¤Î¿ô¤Ç¤¢¤ë¡£ +スラッシュの後の数値は、現在システム上に存在する +カーネルスケジュールエンティティの数である。 .\"O The fifth field is the PID of the process that was most .\"O recently created on the system. -5 ÈÖÌܤΥե£¡¼¥ë¥É¤Ï¥·¥¹¥Æ¥à¾å¤ËºÇ¤âºÇ¶áÀ¸À®¤µ¤ì¤¿¥×¥í¥»¥¹¤Î PID ¤Ç¤¢¤ë¡£ +5 番目のフィールドはシステム上に最も最近生成されたプロセスの PID である。 .TP .I /proc/locks .\"O This file shows current file locks .\"O .RB ( flock "(2) and " fcntl (2)) .\"O and leases .\"O .RB ( fcntl (2)). -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¸½ºß¤Î¥Õ¥¡¥¤¥ë¥í¥Ã¥¯ -.RB ( flock "(2) ¤È " fcntl (2)) -¤È¥ê¡¼¥¹ +このファイルは現在のファイルロック +.RB ( flock "(2) と " fcntl (2)) +とリース .RB ( fcntl (2)) -¤òɽ¼¨¤¹¤ë¡£ +を表示する。 .TP .\"O .IR /proc/malloc " (only up to and including Linux 2.2)" -.IR /proc/malloc " (Linux 2.2 °ÊÁ°¤Î¤ß)" +.IR /proc/malloc " (Linux 2.2 以前のみ)" .\" It looks like this only ever did something back in 1.0 days .\"O This file is only present if .\"O .B CONFIG_DEBUG_MALLOC .\"O was defined during compilation. -¥³¥ó¥Ñ¥¤¥ë¤Î¤È¤­¤Ë +コンパイルのときに .B CONFIGDEBUGMALLOC -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Î¤ß¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¸ºß¤¹¤ë¡£ +が定義されているときのみ、このファイルは存在する。 .TP .I /proc/meminfo .\"O This file reports statistics about memory usage on the system. @@ -2125,19 +2125,19 @@ GDB .\"O to report the amount of free and used memory (both physical and swap) .\"O on the system as well as the shared memory and buffers used by the .\"O kernel. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥·¥¹¥Æ¥à¾å¤Î¥á¥â¥ê»ÈÍÑÎ̤˴ؤ¹¤ëÅý·×¾ðÊó¤òɽ¼¨¤¹¤ë¡£ +このファイルはシステム上のメモリ使用量に関する統計情報を表示する。 .BR free (1) -¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¡¢ -¥·¥¹¥Æ¥à¤Î̤»ÈÍѤª¤è¤Ó»ÈÍÑÃæ¤Î¥á¥â¥êÎÌ (ʪÍý¥á¥â¥ê¤È¥¹¥ï¥Ã¥×) ¤È¡¢ -¥«¡¼¥Í¥ë¤Ë»È¤ï¤ì¤Æ¤¤¤ë¶¦Í­¥á¥â¥ê¤È¥Ð¥Ã¥Õ¥¡¤Î¾ðÊó¤òÊó¹ð¤¹¤ë¡£ +は、このファイルを参照し、 +システムの未使用および使用中のメモリ量 (物理メモリとスワップ) と、 +カーネルに使われている共有メモリとバッファの情報を報告する。 .TP .I /proc/modules .\"O A text list of the modules that have been loaded by the system. -¸½ºß¥·¥¹¥Æ¥à¤Ë¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë¥â¥¸¥å¡¼¥ë¤Î¥Æ¥­¥¹¥È·Á¼°¤Î¥ê¥¹¥È¡£ +現在システムにロードされているモジュールのテキスト形式のリスト。 .\"O See also .\"O .BR lsmod (8). .BR lsmod (8) -¤â»²¾È¡£ +も参照。 .TP .I /proc/mounts .\"O Before kernel 2.4.19, this file was a list @@ -2148,27 +2148,27 @@ GDB .\"O which lists the mount points of the process's own mount namespace. .\"O The format of this file is documented in .\"O .BR fstab (5). -¥«¡¼¥Í¥ë 2.4.19 ¤è¤êÁ°¤Ç¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¸½ºß¥·¥¹¥Æ¥à¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë -Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥ê¥¹¥È¤Ç¤¢¤Ã¤¿¡£ -Linux 2.4.19 ¤Ç¥×¥í¥»¥¹Ã±°Ì¤Î¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤¬Æ³Æþ¤µ¤ì¤¿¤³¤È¤Ëȼ¤¤¡¢ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï +カーネル 2.4.19 より前では、このファイルは現在システムにマウントされている +全てのファイルシステムのリストであった。 +Linux 2.4.19 でプロセス単位のマウント名前空間が導入されたことに伴い、 +このファイルは .I /proc/self/mounts -¤Ø¤Î¥ê¥ó¥¯¤È¤Ê¤Ã¤¿¡£ +へのリンクとなった。 .I /proc/self/mounts -¤Ï¤½¤Î¥×¥í¥»¥¹¼«¿È¤Î¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Î¥ê¥¹¥È¤Ç¤¢¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï +はそのプロセス自身のマウント名前空間のマウントポイントのリストである。 +このファイルのフォーマットは .BR fstab (5) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +に記述されている。 .TP .I /proc/mtrr .\"O Memory Type Range Registers. .\"O See the kernel source file .\"O .I Documentation/mtrr.txt .\"O for details. -Memory Type Range Registers¡£ -¾ÜºÙ¤Ï¡¢¥«¡¼¥Í¥ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë +Memory Type Range Registers。 +詳細は、カーネルソースファイル .I Documentation/mtrr.txt -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .TP .I /proc/net .\"O various net pseudo-files, all of which give the status of some part of @@ -2179,24 +2179,24 @@ Memory Type Range Registers .\"O However, the standard .\"O .BR netstat (8) .\"O suite provides much cleaner access to these files. -¤µ¤Þ¤¶¤Þ¤Ê¥Í¥Ã¥È¥ï¡¼¥¯¤Ë¤Ä¤¤¤Æ¤Îµ¼»÷¥Õ¥¡¥¤¥ë¤Ç¡¢ -¤½¤ì¤¾¤ì¤¬¥Í¥Ã¥È¥ï¡¼¥¯ÁؤγƼï¤Î¾õÂÖ¤òÍ¿¤¨¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¤Ï ASCII ·Á¼°¤Ê¤Î¤Ç¡¢ +さまざまなネットワークについての擬似ファイルで、 +それぞれがネットワーク層の各種の状態を与える。 +これらのファイルの内容は ASCII 形式なので、 .BR cat (1) -¤ÇÆɤ߽Ф»¤ë¡£ -¤È¤Ï¤¤¤¨´ðËÜ¥³¥Þ¥ó¥É¤Î +で読み出せる。 +とはいえ基本コマンドの .BR netstat (8) -¤Ï¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ÎÆâÍƤΤè¤ê¤¹¤Ã¤­¤ê¤È¤·¤¿É½¼¨¤òÄ󶡤¹¤ë¡£ +はこれらのファイルの内容のよりすっきりとした表示を提供する。 .TP .I /proc/net/arp .\"O This holds an ASCII readable dump of the kernel ARP table used for .\"O address resolutions. .\"O It will show both dynamically learned and preprogrammed ARP entries. .\"O The format is: -¥¢¥É¥ì¥¹²ò·è¤Ë»È¤ï¤ì¤ë¥«¡¼¥Í¥ë¤Î ARP ¥Æ¡¼¥Ö¥ë¤Î -ASCII ²ÄÆɤʥÀ¥ó¥×¤òÊÝ»ý¤·¤Æ¤¤¤ë¡£ -ưŪ·ë¹ç¤µ¤ì¤¿¤â¤Î¤È¸ÇÄê (preprogrammed) ¤ÎξÊý¤Î -APP ¥¨¥ó¥È¥ê¤ò¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï°Ê²¼¤Î¤È¤ª¤ê: +アドレス解決に使われるカーネルの ARP テーブルの +ASCII 可読なダンプを保持している。 +動的結合されたものと固定 (preprogrammed) の両方の +APP エントリを見ることができる。フォーマットは以下のとおり: .nf .ft CW @@ -2216,13 +2216,13 @@ IP address HW type Flags HW address Mask Device .\"O and .\"O the "HW address" is the data link layer mapping for that IP address if .\"O it is known. -¤³¤³¤Ç IP address ¤Ï¥Þ¥·¥ó¤Î IPv4 ¥¢¥É¥ì¥¹¡¢ -HW type ¤Ï¤½¤Î¥¢¥É¥ì¥¹¤Î RFC\ 826 ¤ÇÄê¤á¤é¤ì¤Æ¤¤¤ë¥Ï¡¼¥É¥¦¥§¥¢¤Î·Á¼°¡¢ -Flags ¤Ï ARP ¹½Â¤ÂÎ +ここで IP address はマシンの IPv4 アドレス、 +HW type はそのアドレスの RFC\ 826 で定められているハードウェアの形式、 +Flags は ARP 構造体 .RI ( /usr/include/linux/if_arp.h -Æâ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë) ¤ÎÆâÉô¥Õ¥é¥°¡¢ -HW address ¤Ï¤½¤Î IP ¥¢¥É¥ì¥¹¤Ë¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤ë¥Ç¡¼¥¿¥ê¥ó¥¯ÁؤΥ¢¥É¥ì¥¹ -(¤â¤·¤ï¤«¤Ã¤Æ¤¤¤ì¤Ð) ¤Ç¤¢¤ë¡£ +内で定義されている) の内部フラグ、 +HW address はその IP アドレスにマップされているデータリンク層のアドレス +(もしわかっていれば) である。 .TP .I /proc/net/dev .\"O The dev pseudo-file contains network device status information. @@ -2234,13 +2234,13 @@ HW address .\"O .BR ifconfig (8) .\"O program to report device status. .\"O The format is: -µ¼»÷¥Õ¥¡¥¤¥ë dev ¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¤Î¾õÂÖ¾ðÊó¤ò´Þ¤ó¤Ç¤¤¤ë¡£ -¤³¤ì¤ÏÁ÷¼õ¿®¤·¤¿¥Ñ¥±¥Ã¥È¿ô¡¢¥¨¥é¡¼¤È¥³¥ê¥¸¥ç¥ó (collision) ¤Î²ó¿ô¡¢ -¤½¤Î¾¤Î´ðËÜŪ¤ÊÅý·×¤òÍ¿¤¨¤ë¡£ -¤³¤ì¤é¤Ï +擬似ファイル dev はネットワークデバイスの状態情報を含んでいる。 +これは送受信したパケット数、エラーとコリジョン (collision) の回数、 +その他の基本的な統計を与える。 +これらは .BR ifconfig (8) -¤¬¥Ç¥Ð¥¤¥¹¤Î¾õÂÖ¤òÊó¹ð¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£ -¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï°Ê²¼¤Î¤È¤ª¤ê: +がデバイスの状態を報告するのに使われる。 +フォーマットは以下のとおり: .nf .ft CW @@ -2257,17 +2257,17 @@ Inter-| Receive | Transmit .\" .TP .\" .I /proc/net/ipx .\"O .\" No information. -.\" ¾ðÊó¤Ê¤·¡£ +.\" 情報なし。 .\" .TP .\" .I /proc/net/ipx_route .\"O .\" No information. -.\" ¾ðÊó¤Ê¤·¡£ +.\" 情報なし。 .TP .I /proc/net/dev_mcast .\"O Defined in .\"O .IR /usr/src/linux/net/core/dev_mcast.c : .I /usr/src/linux/net/core/dev_mcast.c -¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢°Ê²¼¤Î·Á¼°¤Ç¤¢¤ë¡£ +で定義されており、以下の形式である。 .nf .in +5 indx interface_name dmi_u dmi_g dmi_address @@ -2281,9 +2281,9 @@ indx interface_name dmi_u dmi_g dmi_address .\"O Internet Group Management Protocol. .\"O Defined in .\"O .IR /usr/src/linux/net/core/igmp.c . -Internet Group Management Protocol (¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥°¥ë¡¼¥×´ÉÍý¥×¥í¥È¥³¥ë)¡£ +Internet Group Management Protocol (インターネットグループ管理プロトコル)。 .I /usr/src/linux/net/core/igmp.c -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で定義されている。 .TP .I /proc/net/rarp .\"O This file uses the same format as the @@ -2294,14 +2294,14 @@ Internet Group Management Protocol ( .\"O If RARP is not configured into the .\"O kernel, .\"O this file will not be present. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï +このファイルは .I arp -¤ÈƱ¤¸¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç -µÕ¥¢¥É¥ì¥¹²ò·è¥µ¡¼¥Ó¥¹ (reverse address lookup services) +と同じフォーマットで +逆アドレス解決サービス (reverse address lookup services) .BR rarp (8) -¤ËÄ󶡤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¸½ºß¤ÎµÕ¥Þ¥Ã¥×¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÆâÍƤò´Þ¤ó¤Ç¤¤¤ë¡£ -RARP ¤¬¥«¡¼¥Í¥ë¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¤ËÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¸ºß¤·¤Ê¤¤¡£ +に提供するために使われる現在の逆マップデータベースの内容を含んでいる。 +RARP がカーネルコンフィグレーションに設定されていなければ、 +このファイルは存在しない。 .TP .I /proc/net/raw .\"O Holds a dump of the RAW socket table. @@ -2318,30 +2318,30 @@ RARP .\"O The "tr", "tm\->when", and "rexmits" fields are not used by RAW. .\"O The "uid" .\"O field holds the effective UID of the creator of the socket. -RAW ¥½¥±¥Ã¥È¥Æ¡¼¥Ö¥ë¤Î¥À¥ó¥×¤òÊÝ»ý¤·¤Æ¤¤¤ë¡£ -¤Û¤È¤ó¤É¤Î¾ðÊó¤Ï¥Ç¥Ð¥Ã¥°°Ê³°¤Ç¤Ï»È¤ï¤ì¤Ê¤¤¡£ -\&"sl" ¤ÎÃͤϥ½¥±¥Ã¥È¤Î¥«¡¼¥Í¥ë¥Ï¥Ã¥·¥å¥¹¥í¥Ã¥È¡¢ -\&"local_address" ¤Ï¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤È¥×¥í¥È¥³¥ëÈÖ¹æ¤Î¥Ú¥¢ -[Ìõ¼ÔÄɲÃ: "rem_address" ¤Ï¥ê¥â¡¼¥È¥¢¥É¥ì¥¹¤È¥×¥í¥È¥³¥ëÈÖ¹æ¤Î¥Ú¥¢]¡£ -\&"st" ¤Ï¥½¥±¥Ã¥È¤ÎÆâÉô¾õÂÖ¡£ -\&"tx_queue" ¤È "rx_queue" ¤Ï¥«¡¼¥Í¥ë¥á¥â¥ê¤ò¾ÃÈñ¤·¤Æ¤¤¤ë -Á÷¿®/¼õ¿®¥Ç¡¼¥¿¥­¥å¡¼¤Î¥µ¥¤¥º¡£ -\&"tr" ¤È "tm\->when" ¤È "rexmits" ¥Õ¥£¡¼¥ë¥É¤Ï RAW ¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤Ê¤¤¡£ -\&"uid" ¥Õ¥£¡¼¥ë¥É¤Ï¥½¥±¥Ã¥ÈÀ¸À®¼Ô¤Î¼Â¸ú UID ¤òÊÝ»ý¤·¤Æ¤¤¤ë¡£ +RAW ソケットテーブルのダンプを保持している。 +ほとんどの情報はデバッグ以外では使われない。 +\&"sl" の値はソケットのカーネルハッシュスロット、 +\&"local_address" はローカルアドレスとプロトコル番号のペア +[訳者追加: "rem_address" はリモートアドレスとプロトコル番号のペア]。 +\&"st" はソケットの内部状態。 +\&"tx_queue" と "rx_queue" はカーネルメモリを消費している +送信/受信データキューのサイズ。 +\&"tr" と "tm\->when" と "rexmits" フィールドは RAW では使われていない。 +\&"uid" フィールドはソケット生成者の実効 UID を保持している。 .\" .TP .\" .I /proc/net/route .\"O .\" No information, but looks similar to .\"O .\" .BR route (8). -.\" ¾ðÊó¤Ê¤·¡£ +.\" 情報なし。 .\" .BR route (8) -.\" (¤Î½ÐÎÏ) ¤Î¤è¤¦¤Ë¸«¤¨¤ë¡£ +.\" (の出力) のように見える。 .TP .I /proc/net/snmp .\"O This file holds the ASCII data needed for the IP, ICMP, TCP, and UDP .\"O management .\"O information bases for an SNMP agent. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï SNMP ¥¨¡¼¥¸¥§¥ó¥È¤¬É¬ÍפȤ¹¤ë -IP, ICMP, TCP, UDP ´ÉÍý¾ðÊó¤ò ASCII ¥Ç¡¼¥¿¤È¤·¤ÆÊÝ»ý¤·¤Æ¤¤¤ë¡£ +このファイルは SNMP エージェントが必要とする +IP, ICMP, TCP, UDP 管理情報を ASCII データとして保持している。 .TP .I /proc/net/tcp .\"O Holds a dump of the TCP socket table. @@ -2358,18 +2358,18 @@ IP, ICMP, TCP, UDP .\"O the kernel socket state and are only useful for debugging. .\"O The "uid" .\"O field holds the effective UID of the creator of the socket. -TCP ¥½¥±¥Ã¥È¥Æ¡¼¥Ö¥ë¤Î¥À¥ó¥×¤òÊÝ»ý¤·¤Æ¤¤¤ë¡£ -ÂçÉôʬ¤Î¾ðÊó¤Ï¥Ç¥Ð¥Ã¥°°Ê³°¤Ë¤Ï»È¤ï¤ì¤Ê¤¤¡£ -sl ¤Ï¥½¥±¥Ã¥È¤Î¥«¡¼¥Í¥ë¥Ï¥Ã¥·¥å¥¹¥í¥Ã¥È¤ÎÃÍ¡¢ -\&"local_address" ¤Ï¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤È¥Ý¡¼¥ÈÈÖ¹æ¤Î¥Ú¥¢¤Ç¤¢¤ë¡£ -(¥½¥±¥Ã¥È¤¬Àܳ¤·¤Æ¤¤¤ë¾ì¹ç¤Ï) -\&"rem_address" ¤Ï¥ê¥â¡¼¥È¥¢¥É¥ì¥¹¤È¥Ý¡¼¥ÈÈÖ¹æ¤ÎÂФǤ¢¤ë¡£ -\&"st" ¤Ï¥½¥±¥Ã¥È¤ÎÆâÉô¾õÂ֤Ǥ¢¤ë¡£ -\&"tx_queue" ¤È "rx_queue" ¤Ï¥«¡¼¥Í¥ë¥á¥â¥ê¤ò¾ÃÈñ¤·¤Æ¤¤¤ë -Á÷¿®/¼õ¿®¥Ç¡¼¥¿¥­¥å¡¼¤Î¥µ¥¤¥º¡£ -\&"tr" ¤È "tm\->when" ¤È "rexmits" ¥Õ¥£¡¼¥ë¥É¤Ï¥½¥±¥Ã¥È¾õÂ֤Υ«¡¼¥Í¥ë -ÆâÉô¾ðÊó¤òÊÝ»ý¤·¤Æ¤¤¤ë¤¬¡¢¤³¤ì¤é¤Ï¥Ç¥Ð¥Ã¥°¤Î¤È¤­¤Ë¤·¤«Ìò¤ËΩ¤¿¤Ê¤¤¡£ -\&"uid" ¥Õ¥£¡¼¥ë¥É¤Ï¥½¥±¥Ã¥ÈÀ¸À®¼Ô¤Î¼Â¸ú UID ¤òÊÝ»ý¤·¤Æ¤¤¤ë¡£ +TCP ソケットテーブルのダンプを保持している。 +大部分の情報はデバッグ以外には使われない。 +sl はソケットのカーネルハッシュスロットの値、 +\&"local_address" はローカルアドレスとポート番号のペアである。 +(ソケットが接続している場合は) +\&"rem_address" はリモートアドレスとポート番号の対である。 +\&"st" はソケットの内部状態である。 +\&"tx_queue" と "rx_queue" はカーネルメモリを消費している +送信/受信データキューのサイズ。 +\&"tr" と "tm\->when" と "rexmits" フィールドはソケット状態のカーネル +内部情報を保持しているが、これらはデバッグのときにしか役に立たない。 +\&"uid" フィールドはソケット生成者の実効 UID を保持している。 .TP .I /proc/net/udp .\"O Holds a dump of the UDP socket table. @@ -2386,18 +2386,18 @@ sl .\"O The "uid" .\"O field holds the effective UID of the creator of the socket. .\"O The format is: -UDP ¥½¥±¥Ã¥È¥Æ¡¼¥Ö¥ë¤Î¥À¥ó¥×¤òÊÝ»ý¤·¤Æ¤¤¤ë¡£ -ÂçÉôʬ¤Î¾ðÊó¤Ï¥Ç¥Ð¥Ã¥°°Ê³°¤Ë¤Ï»È¤ï¤ì¤Ê¤¤¡£ -sl ¤Ï¥½¥±¥Ã¥È¤Î¥«¡¼¥Í¥ë¥Ï¥Ã¥·¥å¥¹¥í¥Ã¥È¤ÎÃÍ¡¢ -"local_address" ¤Ï¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤È¥Ý¡¼¥ÈÈÖ¹æ¤Î¥Ú¥¢¤Ç¤¢¤ë¡£ -(¥½¥±¥Ã¥È¤¬Àܳ¤·¤Æ¤¤¤ë¾ì¹ç¤Ï) -"rem_address" ¤Ï¥ê¥â¡¼¥È¥¢¥É¥ì¥¹¤È¥Ý¡¼¥ÈÈÖ¹æ¤Î¥Ú¥¢¤Ç¤¢¤ë¡£ -"st" ¤Ï¥½¥±¥Ã¥È¤ÎÆâÉô¾õÂ֤Ǥ¢¤ë¡£ -"tx_queue" ¤È "rx_queue" ¤Ï¥«¡¼¥Í¥ë¥á¥â¥ê¤ò¾ÃÈñ¤·¤Æ¤¤¤ë -Á÷¿®/¼õ¿®¥Ç¡¼¥¿¥­¥å¡¼¤Î¥µ¥¤¥º¡£ -"tr" ¤È "tm\->when" ¤È "rexmits" ¥Õ¥£¡¼¥ë¥É¤Ï UDP ¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤Ê¤¤¡£ -"uid" ¥Õ¥£¡¼¥ë¥É¤Ï¥½¥±¥Ã¥ÈÀ¸À®¼Ô¤Î¼Â¸ú UID ¤òÊÝ»ý¤·¤Æ¤¤¤ë¡£ -¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï°Ê²¼¤Î¤È¤ª¤ê: +UDP ソケットテーブルのダンプを保持している。 +大部分の情報はデバッグ以外には使われない。 +sl はソケットのカーネルハッシュスロットの値、 +"local_address" はローカルアドレスとポート番号のペアである。 +(ソケットが接続している場合は) +"rem_address" はリモートアドレスとポート番号のペアである。 +"st" はソケットの内部状態である。 +"tx_queue" と "rx_queue" はカーネルメモリを消費している +送信/受信データキューのサイズ。 +"tr" と "tm\->when" と "rexmits" フィールドは UDP では使われていない。 +"uid" フィールドはソケット生成者の実効 UID を保持している。 +フォーマットは以下のとおり: .nf .ft CW @@ -2414,8 +2414,8 @@ sl local_address rem_address st tx_queue rx_queue tr rexmits tm\->when uid .\"O Lists the Unix domain sockets present within the system and their .\"O status. .\"O The format is: -Unix ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤Î¥ê¥¹¥È¡£ -¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï°Ê²¼¤Î¤È¤ª¤ê: +Unix ドメインソケットのリスト。 +フォーマットは以下のとおり: .nf .sp .5 .ft CW @@ -2434,26 +2434,26 @@ Num RefCount Protocol Flags Type St Path .\"O not yet supported in the kernel). .\"O \&"St" is the internal state of the .\"O socket and Path is the bound path (if any) of the socket. -¤³¤³¤Ç¡¢Num ¤Ï¥«¡¼¥Í¥ë¤Î¥Æ¡¼¥Ö¥ë¥¹¥í¥Ã¥È¿ô¡¢ -RefCount ¤Ï¥½¥±¥Ã¥È¤ò»ÈÍѤ·¤Æ¤¤¤ë¥æ¡¼¥¶¡¼¿ô¡¢ -Protocol ¤Ï¤¤¤Þ¤Î¤È¤³¤í¤¤¤Ä¤â 0 ¤Ç¡¢Flags ¤Ï¥½¥±¥Ã¥È¤Î¾õÂÖ¤òÊÝ»ý¤·¤Æ¤¤¤ë -¥«¡¼¥Í¥ëÆâÉô¤Î¥Õ¥é¥°¤Ç¤¢¤ë¡£ -Type ¤Ï¤¤¤Þ¤Î¤È¤³¤í¤¤¤Ä¤â 1 -(UNIX ¥É¥á¥¤¥ó¤Î¥Ç¡¼¥¿¥°¥é¥à¥½¥±¥Ã¥È¤Ï¡¢¸½ºß¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤ -[ÌõÃí: 2.0.34 ¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤À])¡£ -St ¤Ï¥½¥±¥Ã¥È¤ÎÆâÉô¾õÂ֤ǡ¢Path ¤Ï (¤â¤·¤¢¤ì¤Ð) ¥½¥±¥Ã¥È¤Î¥Ñ¥¹Ì¾¤Ç¤¢¤ë¡£ +ここで、Num はカーネルのテーブルスロット数、 +RefCount はソケットを使用しているユーザー数、 +Protocol はいまのところいつも 0 で、Flags はソケットの状態を保持している +カーネル内部のフラグである。 +Type はいまのところいつも 1 +(UNIX ドメインのデータグラムソケットは、現在のカーネルではサポートされていない +[訳注: 2.0.34 ではサポートされているようだ])。 +St はソケットの内部状態で、Path は (もしあれば) ソケットのパス名である。 .TP .I /proc/partitions .\"O Contains major and minor numbers of each partition as well as number .\"O of blocks and partition name. -³Æ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¥á¥¸¥ã¡¼ÈÖ¹æ¤È¥Þ¥¤¥Ê¡¼Èֹ椬½ñ¤«¤ì¤Æ¤¤¤ë¡£ -¤µ¤é¤Ë¡¢¥Ö¥í¥Ã¥¯¿ô¤È¥Ñ¡¼¥Æ¥£¥·¥ç¥ó̾¤â½ñ¤«¤ì¤Æ¤¤¤ë¡£ +各パーティションのメジャー番号とマイナー番号が書かれている。 +さらに、ブロック数とパーティション名も書かれている。 .TP .I /proc/pci .\"O This is a listing of all PCI devices found during kernel initialization .\"O and their configuration. -¥«¡¼¥Í¥ë¤Î½é´ü²½»þ¤Ë¸«¤Ä¤«¤Ã¤¿¤¹¤Ù¤Æ¤Î PCI ¥Ç¥Ð¥¤¥¹¤Î¥ê¥¹¥È¤È -¤½¤ÎÀßÄê¡£ +カーネルの初期化時に見つかったすべての PCI デバイスのリストと +その設定。 .\"O This file has been deprecated in favor of a new .\"O .I /proc @@ -2466,19 +2466,19 @@ St .\"O Next, it was deprecated in Linux 2.6 (still available with .\"O .B CONFIG_PCI_LEGACY_PROC .\"O set), and finally removed altogether since Linux 2.6.17. -¤³¤Î¥Õ¥¡¥¤¥ë¤ÏÈó¿ä¾©¤Ç¤¢¤ê¡¢¿·¤·¤¤ PCI ÍѤΠ+このファイルは非推奨であり、新しい PCI 用の .I /proc -¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹ +インターフェイス .RI ( /proc/bus/pci ) -¤ò»È¤¦¤³¤È¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï Linux 2.2 ¤Ç¥ª¥×¥·¥ç¥ó¤Ë¤Ê¤Ã¤¿ (¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +を使うこと。 +このファイルは Linux 2.2 でオプションになった (カーネルのコンパイル時に .B CONFIG_PCI_OLD_PROC -¤ò¥»¥Ã¥È¤¹¤ë¤ÈÍøÍѲÄǽ¤Ç¤¢¤Ã¤¿)¡£ -Linux 2.4 ¤ÇºÆ¤Ó¥ª¥×¥·¥ç¥ó¤Ê¤·¤ÇÍ­¸ú¤ËÌá¤Ã¤¿¡£ -¤µ¤é¤Ë¡¢Linux 2.6 ¤ÇÈó¿ä¾©¤È¤Ê¤ê +をセットすると利用可能であった)。 +Linux 2.4 で再びオプションなしで有効に戻った。 +さらに、Linux 2.6 で非推奨となり .RB ( CONFIG_PCI_LEGACY_PROC -¤ò¥»¥Ã¥È¤¹¤ë¤È¤Þ¤ÀÍøÍѲÄǽ¤Ç¤¢¤Ã¤¿)¡¢ -ºÇ½ªÅª¤Ë Linux 2.6.17 °Ê¹ß¤Ç´°Á´¤Ëºï½ü¤µ¤ì¤¿¡£ +をセットするとまだ利用可能であった)、 +最終的に Linux 2.6.17 以降で完全に削除された。 .\" FIXME /proc/sched_debug .\" .TP .\" .IR /proc/sched_debug " (since Linux 2.6.23)" @@ -2494,27 +2494,27 @@ Linux 2.4 .\"O These files contain ASCII structures and are, therefore, readable with .\"O .BR cat (1). .I scsi -Ãæ´Ö¥ì¥Ù¥ëµ¼»÷¥Õ¥¡¥¤¥ë¤È¤¤¤¯¤Ä¤«¤Î SCSI Äã¥ì¥Ù¥ë¥É¥é¥¤¥Ð¤Î -¥Ç¥£¥ì¥¯¥È¥ê¤ò´Þ¤à¥Ç¥£¥ì¥¯¥È¥ê¡£ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï ASCII ¤Çɽ¸½¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç +中間レベル擬似ファイルといくつかの SCSI 低レベルドライバの +ディレクトリを含むディレクトリ。 +これらのファイルは ASCII で表現されているので .BR cat (1) -¤ÇÆɤá¤ë¡£ +で読める。 .\"O You can also write to some of the files to reconfigure the subsystem or .\"O switch certain features on or off. -¤¤¤¯¤Ä¤«¤Î¥Õ¥¡¥¤¥ë¤Ï½ñ¤­¹þ¤ß²Äǽ¤Ç¡¢¥µ¥Ö¥·¥¹¥Æ¥à¤ÎÀßÄê¤òÊѹ¹¤·¤¿¤ê¡¢ -ÆÃÄê¤Îµ¡Ç½¤ò¥ª¥ó/¥ª¥Õ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +いくつかのファイルは書き込み可能で、サブシステムの設定を変更したり、 +特定の機能をオン/オフすることができる。 .TP .I /proc/scsi/scsi .\"O This is a listing of all SCSI devices known to the kernel. .\"O The listing is similar to the one seen during bootup. .\"O scsi currently supports only the \fIadd-single-device\fP command which .\"O allows root to add a hotplugged device to the list of known devices. -¥«¡¼¥Í¥ë¤¬ÃΤäƤ¤¤ë¤¹¤Ù¤Æ¤Î SCSI ¥Ç¥Ð¥¤¥¹¤Î¥ê¥¹¥È¡£ -¤³¤Î¥ê¥¹¥È¤Ïµ¯Æ°»þ¤Ë (¥³¥ó¥½¡¼¥ë¤Ç) ¸«¤é¤ì¤ë¤â¤Î¤È¤Û¤ÜƱ¤¸¤Ç¤¢¤ë¡£ -scsi ¤Ï¸½ºß¤Î¤È¤³¤í \fIadd-single-device\fP ¥³¥Þ¥ó¥É¤Î¤ß¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤Ë¤è¤ê¥ë¡¼¥È (root) ¤Ï´ûÃΤΥǥХ¤¥¹¥ê¥¹¥È¤Ø³èÀþÁÞÈ´ (hotplugged) -¥Ç¥Ð¥¤¥¹¤ò²Ã¤¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +カーネルが知っているすべての SCSI デバイスのリスト。 +このリストは起動時に (コンソールで) 見られるものとほぼ同じである。 +scsi は現在のところ \fIadd-single-device\fP コマンドのみをサポートしている。 +これによりルート (root) は既知のデバイスリストへ活線挿抜 (hotplugged) +デバイスを加えることができる。 .\"O The command .\"O .in +4n @@ -2529,7 +2529,7 @@ scsi .\"O If there .\"O is already a device known on this address or the address is invalid, an .\"O error will be returned. -¼¡¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤È¡¢ +次のコマンドを実行すると、 .in +4n .nf @@ -2537,10 +2537,10 @@ echo \(aqscsi add-single-device 1 0 5 0\(aq > /proc/scsi/scsi .fi .in -¥Û¥¹¥È¥¢¥À¥×¥¿ scsi1 ¤Ï SCSI ¥Á¥ã¥Í¥ë 0 ¤Ç -ID 5 LUN 0 ¤Î¥Ç¥Ð¥¤¥¹¤òõ¤¹¡£ -¤â¤·¤³¤Î¥¢¥É¥ì¥¹¤Ë´ûÃΤΥǥХ¤¥¹¤¬¤¢¤ë¤«¡¢ -ÉÔÀµ¤Ê¥¢¥É¥ì¥¹¤Ç¤¢¤Ã¤¿¤Ê¤é¤Ð¥¨¥é¡¼¤¬Ê֤롣 +ホストアダプタ scsi1 は SCSI チャネル 0 で +ID 5 LUN 0 のデバイスを探す。 +もしこのアドレスに既知のデバイスがあるか、 +不正なアドレスであったならばエラーが返る。 .TP .I /proc/scsi/[drivername] .\"O \fI[drivername]\fP can currently be NCR53c7xx, aha152x, aha1542, aha1740, @@ -2551,21 +2551,21 @@ ID 5 LUN 0 .\"O Every directory contains one file per registered host. .\"O Every host-file is named after the number the host was assigned during .\"O initialization. -¤¤¤Þ¤Î¤È¤³¤í \fI[drivername]\fP ¤Ï NCR53c7xx, aha152x, aha1542, aha1740, +いまのところ \fI[drivername]\fP は NCR53c7xx, aha152x, aha1542, aha1740, aic7xxx, buslogic, eata_dma, eata_pio, fdomain, in2000, pas16, qlogic, scsi_debug, seagate, t128, u15-24f, ultrastore, wd7000 -¤Î¤É¤ì¤«¤Ç¤¢¤ë¡£ -¾¯¤Ê¤¯¤È¤â 1 ¤Ä¤Î SCSI ¥Û¥¹¥È¥Ð¥¹¥¢¥À¥×¥¿ (HBA) ¤Ë -¥É¥é¥¤¥Ð¤¬³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¤È¡¢¤½¤Î¥É¥é¥¤¥Ð¤ËÂбþ¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê¤¬¸½¤ì¤ë¡£ -¤½¤ì¤¾¤ì¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢ -ÅÐÏ¿¤µ¤ì¤¿¥Û¥¹¥È¥¢¥À¥×¥¿¤ËÂбþ¤·¤Æ¥Õ¥¡¥¤¥ë¤¬ºî¤é¤ì¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Î̾Á°¤Ï¡¢¥·¥¹¥Æ¥à¤Î½é´ü²½¤ÎºÝ¤Ë -¥Û¥¹¥È¥¢¥À¥×¥¿¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿ÈÖ¹æ¤Ë¤Ê¤ë¡£ +のどれかである。 +少なくとも 1 つの SCSI ホストバスアダプタ (HBA) に +ドライバが割り当てられていると、そのドライバに対応したディレクトリが現れる。 +それぞれのディレクトリには、 +登録されたホストアダプタに対応してファイルが作られる。 +このファイルの名前は、システムの初期化の際に +ホストアダプタに割り当てられた番号になる。 .\"O Reading these files will usually show driver and host configuration, .\"O statistics, etc. -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤òÆɤá¤Ð¥É¥é¥¤¥Ð¤È¥Û¥¹¥È¥¢¥À¥×¥¿¤ÎÀßÄê¤ä -Åý·×¤Ê¤É¤ò¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +これらのファイルを読めばドライバとホストアダプタの設定や +統計などを見ることができる。 .\"O Writing to these files allows different things on different hosts. .\"O For example, with the \fIlatency\fP and \fInolatency\fP commands, @@ -2573,13 +2573,13 @@ scsi_debug, seagate, t128, u15-24f, ultrastore, wd7000 .\"O eata_dma driver. .\"O With the \fIlockup\fP and \fIunlock\fP commands, .\"O root can control bus lockups simulated by the scsi_debug driver. -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤­¹þ¤ß¤Ï¥Û¥¹¥È¥¢¥À¥×¥¿¤´¤È¤Ë°Û¤Ê¤ëÆ°ºî¤ò°ú¤­µ¯¤³¤¹¡£ -¤¿¤È¤¨¤Ð \fIlatency\fP ¤È \fInolatency\fP ¥³¥Þ¥ó¥É¤òÍѤ¤¤ë¤È¡¢ -¥ë¡¼¥È (root¡¢¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼) ¤Ï eata_dma ¥É¥é¥¤¥Ð¤Î±£¤·Â¬Äꥳ¡¼¥É¤Î -¥ª¥ó/¥ª¥Õ¤òÀÚ¤êÂؤ¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤Þ¤¿ \fI lockup\fP ¤È \fIunlock\fP ¥³¥Þ¥ó¥É¤òÍѤ¤¤ë¤È¡¢¥ë¡¼¥È¤Ï -scsi_debug ¥É¥é¥¤¥Ð¤¬¥·¥ß¥å¥ì¡¼¥È¤¹¤ë¥Ð¥¹¥í¥Ã¥¯¥¢¥Ã¥× (bus lockup) ¤ò -À©¸æ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +これらのファイルへの書き込みはホストアダプタごとに異なる動作を引き起こす。 +たとえば \fIlatency\fP と \fInolatency\fP コマンドを用いると、 +ルート (root、スーパーユーザー) は eata_dma ドライバの隠し測定コードの +オン/オフを切り替えることができる。 +また \fI lockup\fP と \fIunlock\fP コマンドを用いると、ルートは +scsi_debug ドライバがシミュレートするバスロックアップ (bus lockup) を +制御することができる。 .TP .I /proc/self .\"O This directory refers to the process accessing the @@ -2588,29 +2588,29 @@ scsi_debug .\"O and is identical to the .\"O .I /proc .\"O directory named by the process ID of the same process. -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¥×¥í¥»¥¹¤Ë (¥×¥í¥»¥¹¼«¿È¤Î) +このディレクトリはプロセスに (プロセス自身の) .I /proc -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ø¤Î¥¢¥¯¥»¥¹¤ò»²¾È¤µ¤»¤ë¡£ -¤³¤ì¤Ï +ファイルシステムへのアクセスを参照させる。 +これは .I /proc -Æâ¤Î (¤³¤Î¥×¥í¥»¥¹¤Î) ¥×¥í¥»¥¹ ID ¤¬Ì¾Á°¤È¤Ê¤Ã¤Æ¤¤¤ë -¥Ç¥£¥ì¥¯¥È¥ê¤ÈÁ´¤¯Æ±°ì¤Ç¤¢¤ë¡£ +内の (このプロセスの) プロセス ID が名前となっている +ディレクトリと全く同一である。 .TP .I /proc/slabinfo .\"O Information about kernel caches. .\"O Since Linux 2.6.16 this file is only present if the .\"O .B CONFIG_SLAB .\"O kernel configuration option is enabled. -Linux 2.6.16 °Ê¹ß¤Ç¤Ï¡¢ -¥«¡¼¥Í¥ëÀßÄꥪ¥×¥·¥ç¥ó +Linux 2.6.16 以降では、 +カーネル設定オプション .B CONFIG_SLAB -¤¬Í­¸ú¤Î¾ì¹ç¤Ë¤Î¤ß¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¸ºß¤¹¤ë¡£ +が有効の場合にのみ、このファイルは存在する。 .\"O The columns in .\"O .I /proc/slabinfo .\"O are: -¥«¡¼¥Í¥ë¥­¥ã¥Ã¥·¥å¤Î¾ðÊó¡£ +カーネルキャッシュの情報。 .I /proc/slabinfo -¤Î¥Õ¥£¡¼¥ë¥É¤Ï°Ê²¼¤Î¤È¤ª¤ê¡£ +のフィールドは以下のとおり。 .in +4n .nf @@ -2627,18 +2627,18 @@ num-pages-per-slab .\"O See .\"O .BR slabinfo (5) .\"O for details. -¾ÜºÙ¤Ï +詳細は .BR slabinfo (5) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .TP .I /proc/stat .\"O kernel/system statistics. .\"O Varies with architecture. .\"O Common .\"O entries include: -¥«¡¼¥Í¥ë/¥·¥¹¥Æ¥à¤ÎÅý·×¡£ -¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¡£ -¶¦ÄÌ¥¨¥ó¥È¥ê¤Ë¤Ï°Ê²¼¤Î¤â¤Î¤¬´Þ¤Þ¤ì¤ë¡£ +カーネル/システムの統計。 +アーキテクチャによって異なる。 +共通エントリには以下のものが含まれる。 .RS .TP \fIcpu 3357 0 4313 1362393\fP @@ -2654,21 +2654,21 @@ num-pages-per-slab .\"O .\" does not seem to be quite right (at least in 2.6.12) .\"O The last value should be USER_HZ times the .\"O second entry in the uptime pseudo-file. -¥æ¡¼¥¶¡¼¥â¡¼¥É¡¢ -Ä㤤ͥÀèÅÙ (nice) ¤Ç¤Î¥æ¡¼¥¶¡¼¥â¡¼¥É¡¢ -¥·¥¹¥Æ¥à¥â¡¼¥É¡¢ -¥¿¥¹¥¯ÂÔ¤Á (idle task)¡¢ -¤Ç¤½¤ì¤¾¤ì¥·¥¹¥Æ¥à¤¬¾ÃÈñ¤·¤¿»þ´Ö¤ò -USER_HZ ¤òñ°Ì¤È¤·¤Æ·×¬¤·¤¿ÀÑ»»ÃÍ¡£ -(¤Û¤È¤ó¤É¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï USER_HZ ¤Ï 1/100 ÉäǤ¢¤ë¡£ -Àµ¤·¤¤ÃÍ¤Ï +ユーザーモード、 +低い優先度 (nice) でのユーザーモード、 +システムモード、 +タスク待ち (idle task)、 +でそれぞれシステムが消費した時間を +USER_HZ を単位として計測した積算値。 +(ほとんどのアーキテクチャでは USER_HZ は 1/100 秒である。 +正しい値は .I sysconf(_SC_CLK_TCK) -¤ò»È¤Ã¤Æ¼èÆÀ¤Ç¤­¤ë¡£) -.\" Alpha ¤È ia64 ¤Ç¤Ï 1024 ¤Ç¤¢¤ë¡£ -.\" FIXME: ¼ÂºÝ¤Ë¤Ï¡¢/proc/stat ¤Î 'cpu' ¥Õ¥£¡¼¥ë¥É¤Ë¤Ä¤¤¤Æ¤Î°Ê²¼¤Î¾ðÊó¤Ï -.\" Àµ¤·¤¤¤È¤Ï¸À¤¨¤Ê¤¤¤è¤¦¤Ç¤¢¤ë (¾¯¤Ê¤¯¤È¤â 2.6.12 ¤Ç¤Ï)¡£ -ºÇ¸å¤ÎÃÍ (¥¿¥¹¥¯ÂÔ¤Á) ¤Ïµ¿»÷¥Õ¥¡¥¤¥ë uptime ¤Î 2ÈÖÌܤΥ¨¥ó¥È¥ê¤ÎÃͤò -USER_HZ Çܤ·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +を使って取得できる。) +.\" Alpha と ia64 では 1024 である。 +.\" FIXME: 実際には、/proc/stat の 'cpu' フィールドについての以下の情報は +.\" 正しいとは言えないようである (少なくとも 2.6.12 では)。 +最後の値 (タスク待ち) は疑似ファイル uptime の 2番目のエントリの値を +USER_HZ 倍したものである。 .\"O In Linux 2.6 this line includes three additional columns: .\"O .I iowait @@ -2677,97 +2677,97 @@ USER_HZ .\"O \- time servicing interrupts (since 2.6.0-test4); .\"O .I softirq .\"O \- time servicing softirqs (since 2.6.0-test4). -Linux 2.6 ¤Ç¤Ï¡¢¤³¤Î¹Ô¤Ë 3¤Ä¤ÎÍó¤¬Äɲ䵤ì¤Æ¤¤¤ë: +Linux 2.6 では、この行に 3つの欄が追加されている: .I iowait -(I/O ¤Î´°Î»¤òÂԤäƤ¤¤¿»þ´Ö; 2.5.41 °Ê¹ß); +(I/O の完了を待っていた時間; 2.5.41 以降); .I irq -(³ä¤ê¹þ¤ß½èÍý¤ò¹Ô¤Ã¤¿»þ´Ö; 2.6.0-test4 °Ê¹ß); +(割り込み処理を行った時間; 2.6.0-test4 以降); .I softirq -(¥½¥Õ¥È³ä¤ê¹þ¤ß¤Î½èÍý¤ò¹Ô¤Ã¤¿»þ´Ö; 2.6.0-test4 °Ê¹ß)¡£ +(ソフト割り込みの処理を行った時間; 2.6.0-test4 以降)。 .\"O Since Linux 2.6.11, there is an eighth column, .\"O .I steal .\"O \- stolen time, which is the time spent in other operating systems when .\"O running in a virtualized environment -Linux 2.6.11 °Ê¹ß¤Ç¤Ï¡¢8 ¸ÄÌܤÎÍó¤È¤·¤Æ +Linux 2.6.11 以降では、8 個目の欄として .I steal -(Åð¤Þ¤ì¤¿»þ´Ö; stolen time) ¤¬Â¸ºß¤¹¤ë¡£ -¤³¤ì¤Ï¡¢²¾ÁÛ²½´Ä¶­¤Ç¤ÎÆ°ºî»þ¤Ë¾¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ë¤è¤ê -¾ÃÈñ¤µ¤ì¤¿»þ´Ö¤Ç¤¢¤ë¡£ +(盗まれた時間; stolen time) が存在する。 +これは、仮想化環境での動作時に他のオペレーティングシステムにより +消費された時間である。 .\"O Since Linux 2.6.24, there is a ninth column, .\"O .IR guest , .\"O which is the time spent running a virtual CPU for guest .\"O operating systems under the control of the Linux kernel. -Linux 2.6.24 °Ê¹ß¤Ç¤Ï¡¢9 ¸ÄÌܤÎÍó¤È¤·¤Æ¡¢ +Linux 2.6.24 以降では、9 個目の欄として、 .I guest -¤¬¤¢¤ë¡£¤³¤ì¤Ï¡¢ -Linux ¥«¡¼¥Í¥ë¤ÎÀ©¸æ²¼¤Î¥²¥¹¥È¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Î²¾ÁÛ CPU ¤Î -¼Â¹Ô¤Ë¾ÃÈñ¤µ¤ì¤¿»þ´Ö¤Ç¤¢¤ë¡£ +がある。これは、 +Linux カーネルの制御下のゲストオペレーティングシステムの仮想 CPU の +実行に消費された時間である。 .\" See Changelog entry for 5e84cfde51cf303d368fcb48f22059f37b3872de .TP \fIpage 5741 1808\fP .\"O The number of pages the system paged in and the number that were paged .\"O out (from disk). -¥·¥¹¥Æ¥à¤¬ (¥Ç¥£¥¹¥¯¤«¤é) ¥Ú¡¼¥¸¥¤¥ó/¥Ú¡¼¥¸¥¢¥¦¥È¤·¤¿¥Ú¡¼¥¸¿ô¡£ +システムが (ディスクから) ページイン/ページアウトしたページ数。 .TP \fIswap 1 0\fP .\"O The number of swap pages that have been brought in and out. -¥¹¥ï¥Ã¥×¥¤¥ó/¥¹¥ï¥Ã¥×¥¢¥¦¥È¤µ¤ì¤¿¥Ú¡¼¥¸¿ô¡£ +スワップイン/スワップアウトされたページ数。 .TP .\"O .\" FIXME The following is not the full picture for the 'intr' of .\"O .\" /proc/stat on 2.6: -.\" FIXME °Ê²¼¤ÎÀâÌÀ¤Ï¡¢¥«¡¼¥Í¥ë 2.6 ¤Î /proc/stat 'intr' ¥Õ¥£¡¼¥ë¥É¤Î -.\" ´°Á´¤ÊÀâÌÀ¤Ç¤Ï¤Ê¤¤¡£½ñ¤«¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤¬¤¢¤ë¡£ +.\" FIXME 以下の説明は、カーネル 2.6 の /proc/stat 'intr' フィールドの +.\" 完全な説明ではない。書かれていないことがある。 \fIintr 1462898\fP .\"O This line shows counts of interrupts serviced since boot time, .\"O for each of the possible system interrupts. .\"O The first column is the total of all interrupts serviced; .\"O each subsequent column is the total for a particular interrupt. -¤³¤Î¹Ô¤Ï¥·¥¹¥Æ¥àµ¯Æ°»þ°Ê¹ß¤Ë½èÍý¤µ¤ì¤¿³ä¤ê¹þ¤ß¤Î²ó¿ô¤ò¼¨¤¹¡£ -ºÇ½é¤ÎÍó¤Ï½èÍý¤µ¤ì¤¿³ä¤ê¹þ¤ßÁ´¤Æ¤Î¹ç·×¤Ç¤¢¤ê¡¢¤½¤ì°Ê¹ß¤ÎÍó¤Ï -¸Ä¡¹¤Î³ä¤ê¹þ¤ß¤Ë¤Ä¤¤¤Æ¤Î¹ç·×¿ô¤Ç¤¢¤ë¡£ +この行はシステム起動時以降に処理された割り込みの回数を示す。 +最初の欄は処理された割り込み全ての合計であり、それ以降の欄は +個々の割り込みについての合計数である。 .TP \fIdisk_io: (2,0):(31,30,5764,1,2) (3,0):\fP... .\"O (major,disk_idx):(noinfo, read_io_ops, blks_read, write_io_ops, blks_written) .\"O .br .\"O (Linux 2.4 only) -(¥á¥¸¥ã¡¼ÈÖ¹æ, ¥Ç¥£¥¹¥¯¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æ):(¾ðÊó¤Ê¤· (noinfo), Æɤ߹þ¤ß²ó¿ô, -Æɤ߹þ¤ß¥Ö¥í¥Ã¥¯¿ô, ½ñ¤­½Ð¤·²ó¿ô, ½ñ¤­½Ð¤·¥Ö¥í¥Ã¥¯¿ô) +(メジャー番号, ディスクインデックス番号):(情報なし (noinfo), 読み込み回数, +読み込みブロック数, 書き出し回数, 書き出しブロック数) .br -(Linux 2.4 ¤Î¤ß) +(Linux 2.4 のみ) .TP \fIctxt 115315\fP .\"O The number of context switches that the system underwent. -¥³¥ó¥Æ¥¯¥¹¥È¡¦¥¹¥¤¥Ã¥Á¤Î±ä¤Ù²ó¿ô¡£ +コンテクスト・スイッチの延べ回数。 .TP \fIbtime 769041601\fP .\"O boot time, in seconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC). -µ¯Æ°»þ¹ï¡¢µª¸µ (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) ¤«¤é¤ÎÉÿô¡£ +起動時刻、紀元 (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) からの秒数。 .TP \fIprocesses 86031\fP .\"O Number of forks since boot. -¥·¥¹¥Æ¥àµ¯Æ°»þ¤«¤é¤Î±ä¤Ù¥Õ¥©¡¼¥¯ (fork) ¿ô¡£ +システム起動時からの延べフォーク (fork) 数。 .TP \fIprocs_running 6\fP .\"O Number of processes in runnable state. .\"O (Linux 2.5.45 onwards.) -¼Â¹ÔÃæ¾õÂÖ¤Î¥×¥í¥»¥¹¿ô (Linux 2.5.45 °Ê¹ß)¡£ +実行中状態のプロセス数 (Linux 2.5.45 以降)。 .TP \fIprocs_blocked 2\fP .\"O Number of processes blocked waiting for I/O to complete. .\"O (Linux 2.5.45 onwards.) -I/O ´°Î»ÂÔ¤Á¤ÇÄä»ß (blocked) ¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¿ô -(Linux 2.5.45 °Ê¹ß)¡£ +I/O 完了待ちで停止 (blocked) しているプロセス数 +(Linux 2.5.45 以降)。 .RE .TP .I /proc/swaps .\"O Swap areas in use. .\"O See also .\"O .BR swapon (8). -»ÈÍÑÃæ¤Î¥¹¥ï¥Ã¥×Îΰ衣 +使用中のスワップ領域。 .BR swapon (8) -¤â»²¾È¤¹¤ë¤³¤È¡£ +も参照すること。 .TP .I /proc/sys .\"O This directory (present since 1.3.57) contains a number of files @@ -2780,45 +2780,45 @@ I/O .\"O .IR abi ", " debug ", " dev ", " fs ", " kernel ", " net ", " proc ", " .\"O .IR rxrpc ", " sunrpc " and " vm .\"O that each contain more files and subdirectories. -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê (1.3.57 °Ê¹ß¤Ë¸ºß) ¤Ï¥«¡¼¥Í¥ëÊÑ¿ô¤ËÂбþ¤¹¤ë¤¤¤¯¤Ä¤«¤Î -¥Õ¥¡¥¤¥ë¤È¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ò´Þ¤à¡£ -¤³¤ì¤é¤ÎÊÑ¿ô¤ÏÆɤ߽Ф·²Äǽ¤Ç¤¢¤ë¡£ -¤Þ¤¿¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï \fI/proc\fP ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ä¡¢ -(Èó¿ä¾©¤Î) ¥·¥¹¥Æ¥à¥³¡¼¥ë +このディレクトリ (1.3.57 以降に存在) はカーネル変数に対応するいくつかの +ファイルとサブディレクトリを含む。 +これらの変数は読み出し可能である。 +また場合によっては \fI/proc\fP ファイルシステムや、 +(非推奨の) システムコール .BR sysctl (2) -¤òÍѤ¤¤Æ½ñ¤­´¹¤¨¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¤¤¤Þ¤Î¤È¤³¤í +を用いて書き換えることもできる。 +いまのところ .IR abi ", " debug ", " dev ", " fs ", " kernel ", " net ", " proc ", " .IR rxrpc ", " sunrpc ", " vm -¤È¤¤¤¦¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤¬¤¢¤Ã¤Æ¡¢ -¤½¤ì¤¾¤ì¤¬¥Õ¥¡¥¤¥ë¤È¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ò´Þ¤ó¤Ç¤¤¤ë¡£ +というサブディレクトリがあって、 +それぞれがファイルとサブディレクトリを含んでいる。 .TP .\"O .IR /proc/sys/abi " (since Linux 2.4.10)" -.IR /proc/sys/abi " (Linux 2.4.10 °Ê¹ß)" +.IR /proc/sys/abi " (Linux 2.4.10 以降)" .\"O This directory may contain files with application binary information. .\"O .\" On some systems, it is not present. .\"O See the kernel source file .\"O .I Documentation/sysctl/abi.txt .\"O for more information. -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥Ð¥¤¥Ê¥ê¾ðÊó¤¬Æþ¤Ã¤¿¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤ë¡£ -.\" ¤³¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ -¹¹¤Ë¾Ü¤·¤¤¾ðÊó¤Ï¡¢¥«¡¼¥Í¥ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë +このディレクトリにはアプリケーションのバイナリ情報が入ったファイルが置かれる。 +.\" このファイルが存在しないシステムもある。 +更に詳しい情報は、カーネルソースファイル .I Documentation/sysctl/abi.txt -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .TP .I /proc/sys/debug .\"O This directory may be empty. -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¶õ¤Î¾ì¹ç¤â¤¢¤ë¡£ +このディレクトリは空の場合もある。 .TP .I /proc/sys/dev .\"O This directory contains device-specific information (e.g., .\"O .IR dev/cdrom/info ). .\"O On .\"O some systems, it may be empty. -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¥Ç¥Ð¥¤¥¹ÆÃÍ­¤Î¾ðÊó (¤¿¤È¤¨¤Ð +このディレクトリにはデバイス特有の情報 (たとえば .IR dev/cdrom/info ) -¤¬´Þ¤Þ¤ì¤ë¡£ -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤¬¶õ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ +が含まれる。 +このディレクトリが空になっているシステムもある。 .TP .I /proc/sys/fs .\"O This contains the subdirectories @@ -2830,9 +2830,9 @@ I/O .\"O .IR overflowgid ", " overflowuid ", " .\"O .IR suid_dumpable ", " .\"O .IR super-max ", and " super-nr . -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê +このディレクトリには、サブディレクトリ .IR binfmt_misc ", " epoll ", " inotify ", " mqueue -¤È°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤¬¤¢¤ë: +と以下のファイルがある: .IR dentry-state ", " dir-notify-enable ", " dquot-nr ", " file-max ", " .IR file-nr ", " inode-max ", " inode-nr ", " inode-state ", " .IR lease-break-time ", " leases-enable ", " @@ -2844,53 +2844,53 @@ I/O .\"O Documentation for files in this directory can be found .\"O in the kernel sources in .\"O .IR Documentation/binfmt_misc.txt . -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¤Î¥É¥­¥å¥á¥ó¥È¤Ï¡¢ -¥«¡¼¥Í¥ë¥½¡¼¥¹¤Î +このディレクトリ以下のファイルについてのドキュメントは、 +カーネルソースの .I Documentation/binfmt_misc.txt -¤Ë¤¢¤ë¡£ +にある。 .TP .\"O .IR /proc/sys/fs/dentry-state " (since Linux 2.2)" -.IR /proc/sys/fs/dentry-state " (Linux 2.2 °Ê¹ß)" +.IR /proc/sys/fs/dentry-state " (Linux 2.2 以降)" .\"O This file contains information about the status of the .\"O directory cache (dcache). .\"O The file contains six numbers, .\"O .IR nr_dentry ", " nr_unused ", " age_limit " (age in seconds), " .\"O .I want_pages .\"O (pages requested by system) and two dummy values. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¥­¥ã¥Ã¥·¥å (dcache) ¤Î¾õÂ֤˴ؤ¹¤ë¾ðÊó¤¬ -Æþ¤Ã¤Æ¤¤¤ë¡£¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢ -.IR nr_dentry ", " nr_unused ", " age_limit " (ÉÃñ°Ì¤Î age), " want_pages -(¥·¥¹¥Æ¥à¤¬¥ê¥¯¥¨¥¹¥È¤·¤¿¥Ú¡¼¥¸¿ô), ¥À¥ß¡¼¤Î 2 ¤Ä¤ÎÃÍ¡¢ -¤È¤¤¤¦ 6 ¤Ä¤Î¿ô»ú¤¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ +このファイルには、ディレクトリキャッシュ (dcache) の状態に関する情報が +入っている。ファイルには、 +.IR nr_dentry ", " nr_unused ", " age_limit " (秒単位の age), " want_pages +(システムがリクエストしたページ数), ダミーの 2 つの値、 +という 6 つの数字が書かれている。 .RS .IP * 2 .\"O .I nr_dentry .\"O is the number of allocated dentries (dcache entries). .\"O This field is unused in Linux 2.2. .I nr_dentry -¤Ï³ä¤êÅö¤Æ¤é¤ì¤¿ dentry (dcache ¥¨¥ó¥È¥ê) ¤Î¿ô¤Ç¤¢¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï Linux 2.2 ¤Ç¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£ +は割り当てられた dentry (dcache エントリ) の数である。 +このフィールドは Linux 2.2 では使用されない。 .IP * .\"O .I nr_unused .\"O is the number of unused dentries. .I nr_unused -¤Ï̤»ÈÍѤΠdentry ¿ô¤Ç¤¢¤ë¡£ +は未使用の dentry 数である。 .IP * .\"O .I age_limit .\"O .\" looks like this is unused in kernels 2.2 to 2.6 .\"O is the age in seconds after which dcache entries .\"O can be reclaimed when memory is short. .I age_limit -¤Ï¡¢¥á¥â¥ê¤¬ÉÔ­¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¼¡¤Ë dcache entry ¤òºÆÍ×µá¤Ç¤­¤ë¤è¤¦¤Ë -¤Ê¤ë¤Þ¤Ç¤Î»Ä¤ê»þ´Ö (Éÿô) ¤Ç¤¢¤ë¡£ +は、メモリが不足している場合に次に dcache entry を再要求できるように +なるまでの残り時間 (秒数) である。 .IP * .\"O .I want_pages .\" looks like this is unused in kernels 2.2 to 2.6 .\"O is nonzero when the kernel has called shrink_dcache_pages() and the .\"O dcache isn't pruned yet. .I want_pages -¤Ï¡¢¥«¡¼¥Í¥ë¤¬ shrink_dcache_pages() ¤ò¸Æ¤Ó½Ð¤·¤¿¤¬ -dcache ¤¬¤Þ¤À½Ì¾®¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¡¢0 °Ê³°¤ÎÃͤȤʤ롣 +は、カーネルが shrink_dcache_pages() を呼び出したが +dcache がまだ縮小されていない場合に、0 以外の値となる。 .RE .TP .I /proc/sys/fs/dir-notify-enable @@ -2899,36 +2899,36 @@ dcache .\"O interface described in .\"O .BR fcntl (2) .\"O on a system-wide basis. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï +このファイルは .BR fcntl (2) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë +に記述されている .I dnotify -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò¥·¥¹¥Æ¥àÁ´ÂΤÇ̵¸ú¤Ë¤·¤¿¤êÍ­¸ú¤Ë¤·¤¿¤ê¤¹¤ë¡£ +インターフェースをシステム全体で無効にしたり有効にしたりする。 .\"O A value of 0 in this file disables the interface, .\"O and a value of 1 enables it. -¤³¤Î¥Õ¥¡¥¤¥ë¤ËÃÍ 0 ¤¬½ñ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬Ìµ¸ú¤Ë¤Ê¤ê¡¢ -ÃÍ 1 ¤Î¾ì¹ç¤ÏÍ­¸ú¤Ë¤Ê¤ë¡£ +このファイルに値 0 が書かれている場合はインターフェースが無効になり、 +値 1 の場合は有効になる。 .TP .I /proc/sys/fs/dquot-max .\"O This file shows the maximum number of cached disk quota entries. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¥­¥ã¥Ã¥·¥å¤µ¤ì¤ë¥Ç¥£¥¹¥¯ quota ¥¨¥ó¥È¥ê¤ÎºÇÂç¿ô¤¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ +このファイルにはキャッシュされるディスク quota エントリの最大数が書かれている。 .\"O On some (2.4) systems, it is not present. -(2.4 ·Ï¤Î) ¥·¥¹¥Æ¥à¤ÎÃæ¤Ë¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¤â¤Î¤â¤¢¤ë¡£ +(2.4 系の) システムの中には、このファイルが存在しないものもある。 .\"O If the number of free cached disk quota entries is very low and .\"O you have some awesome number of simultaneous system users, .\"O you might want to raise the limit. -¥­¥ã¥Ã¥·¥å¤µ¤ì¤ë¥Ç¥£¥¹¥¯ quota ¥¨¥ó¥È¥ê¤Î¶õ¤­¤¬Èó¾ï¤Ë¾¯¤Ê¤¯¡¢ -¤È¤Æ¤â¿¤¯¤Î¥·¥¹¥Æ¥à¥æ¡¼¥¶¡¼¤¬Æ±»þ¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢ -¤³¤ÎÀ©¸Â¤ò¾å¤²¤ë¤È¤¤¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ +キャッシュされるディスク quota エントリの空きが非常に少なく、 +とても多くのシステムユーザーが同時に存在する場合、 +この制限を上げるといいかもしれない。 .TP .I /proc/sys/fs/dquot-nr .\"O This file shows the number of allocated disk quota .\"O entries and the number of free disk quota entries. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¥Ç¥£¥¹¥¯ quota ¤Î¥¨¥ó¥È¥ê¿ô¤È¡¢ -¶õ¤¤¤Æ¤¤¤ë¥Ç¥£¥¹¥¯ quota ¤Î¥¨¥ó¥È¥ê¿ô¤¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ +このファイルには割り当てられているディスク quota のエントリ数と、 +空いているディスク quota のエントリ数が書かれている。 .TP .\"O .IR /proc/sys/fs/epoll " (since Linux 2.6.28)" -.IR /proc/sys/fs/epoll " (Linux 2.6.28 °Ê¹ß)" +.IR /proc/sys/fs/epoll " (Linux 2.6.28 以降)" .\"O This directory contains the file .\"O .IR max_user_watches , .\"O which can be used to limit the amount of kernel memory consumed by the @@ -2936,36 +2936,36 @@ dcache .\"O interface. .\"O For further details, see .\"O .BR epoll (7). -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢¥Õ¥¡¥¤¥ë +このディレクトリには、ファイル .I max_user_watches -¤¬¤¢¤ë¡£ -¤³¤ì¤é¤Ï¡¢ +がある。 +これらは、 .I epoll -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¬¾ÃÈñ¤¹¤ë¥«¡¼¥Í¥ë¥á¥â¥êÎ̤òÀ©¸Â¤¹¤ë¤Î¤Ë»ÈÍѤǤ­¤ë¡£ -¾ÜºÙ¤Ï +インタフェースが消費するカーネルメモリ量を制限するのに使用できる。 +詳細は .BR epoll (7) -¤ò»²¾È¡£ +を参照。 .TP .I /proc/sys/fs/file-max .\"O This file defines .\"O a system-wide limit on the number of open files for all processes. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥·¥¹¥Æ¥àÁ´ÂÎ¤Ç¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤Ç¤­¤ë -¥Õ¥¡¥¤¥ë¿ô¤Î¾å¸Â¤òÄêµÁ¤¹¤ë¡£ +このファイルはシステム全体でプロセスがオープンできる +ファイル数の上限を定義する。 .\"O (See also .\"O .BR setrlimit (2), .\"O which can be used by a process to set the per-process limit, .\"O .BR RLIMIT_NOFILE , .\"O on the number of files it may open.) -(³Æ¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¿ô¤Î¾å¸Â¤ò +(各プロセスがオープンできるファイル数の上限を .B RLIMIT_NOFILE -¤Ë¤è¤Ã¤ÆÀßÄꤹ¤ë +によって設定する .BR setrlimit (2) -¤â»²¾È¤¹¤ë¤³¤È¡£) +も参照すること。) .\"O If you get lots .\"O of error messages about running out of file handles, .\"O try increasing this value: -¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤ò»È¤¤²Ì¤¿¤·¤ÆÂçÎ̤˥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬½Ð¤ë¾ì¹ç¤Ï¡¢ -°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ¤³¤ÎÃͤòÁý²Ã¤µ¤»¤Æ¤ß¤è: +ファイルハンドルを使い果たして大量にエラーメッセージが出る場合は、 +以下のようにしてこの値を増加させてみよ: .br .br @@ -2980,9 +2980,9 @@ echo 100000 > /proc/sys/fs/file-max .\"O imposes an upper limit on the value that may be placed in .\"O .IR file-max . .I file-max -¤Ë½ñ¤«¤ì¤Æ¤¤¤ëÃͤϡ¢¥«¡¼¥Í¥ëÄê¿ô +に書かれている値は、カーネル定数 .B NR_OPEN -¤ËÀ©¸Â¤µ¤ì¤ë¡£ +に制限される。 .\"O If you increase .\"O .IR /proc/sys/fs/file-max "," @@ -2993,40 +2993,40 @@ echo 100000 > /proc/sys/fs/file-max .\"O .IR /proc/sys/fs/file-max "," .\"O or you will run out of inodes. .I /proc/sys/fs/file-max -¤òÁý¤ä¤·¤¿¾ì¹ç¤Ï¡¢ +を増やした場合は、 .I /proc/sys/fs/inode-max -¤ò¿·¤·¤¤ +を新しい .I /proc/sys/fs/file-max -¤ÎÃͤΠ3-4 ÇܤËÁý¤ä¤·¤Æ¤ª¤¯¤³¤È¡£ -¤³¤¦¤·¤Ê¤¤¤È inode ¤ò»È¤¤²Ì¤¿¤·¤Æ¤·¤Þ¤¦¤À¤í¤¦¡£ +の値の 3-4 倍に増やしておくこと。 +こうしないと inode を使い果たしてしまうだろう。 .TP .I /proc/sys/fs/file-nr .\"O This (read-only) file gives the number of files presently opened. -(¤³¤Î¥Õ¥¡¥¤¥ë¤ÏÆɤ߽Ф·ÀìÍѤÇ) Æɤ߽Ф¹¤È -¸½ºß¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Î¿ô¤¬ÆÀ¤é¤ì¤ë¡£ +(このファイルは読み出し専用で) 読み出すと +現在オープンされているファイルの数が得られる。 .\"O It contains three numbers: the number of allocated file handles; .\"O the number of free file handles; and the maximum number of file handles. .\"O The kernel allocates file handles dynamically, but it .\"O doesn't free them again. .\"O If the number of allocated files is close to the .\"O maximum, you should consider increasing the maximum. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¿ô¡¦ -¶õ¤¤¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¿ô¡¦¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¿ô¤ÎºÇÂçÃÍ¡¢ -¤È¤¤¤¦ 3 ¤Ä¤Î¿ôÃͤ¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ -¥«¡¼¥Í¥ë¤Ï¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤òưŪ¤Ë³ä¤êÅö¤Æ¤ë¤¬¡¢ -¤½¤ì¤òºÆ¤Ó²òÊü¤·¤Ê¤¤¡£ -³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¿ô¤¬ºÇÂçÃͤ˶á¤Å¤¤¤¿¾ì¹ç¤Ï¡¢ -ºÇÂçÃͤòÂ礭¤¯¤¹¤ë¤³¤È¤ò¹Íθ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +このファイルには、割り当てられているファイルハンドル数・ +空いているファイルハンドル数・ファイルハンドル数の最大値、 +という 3 つの数値が書かれている。 +カーネルはファイルハンドルを動的に割り当てるが、 +それを再び解放しない。 +割り当てられているファイル数が最大値に近づいた場合は、 +最大値を大きくすることを考慮すべきである。 .\"O When the number of free file handles is .\"O large, you've encountered a peak in your usage of file .\"O handles and you probably don't need to increase the maximum. -¶õ¤¤¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¿ô¤¬Â¿¤¤¾ì¹ç¤Ï¡¢ -¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤Î»ÈÍѤΥԡ¼¥¯¤ò·Ð¸³¤·¤¿¤³¤È¤¬¤¢¤ê¡¢ -ºÇÂçÃͤòÂ礭¤¯¤¹¤ëɬÍפϤʤ¤¤À¤í¤¦¡£ +空いているファイルハンドル数が多い場合は、 +ファイルハンドルの使用のピークを経験したことがあり、 +最大値を大きくする必要はないだろう。 .TP .I /proc/sys/fs/inode-max .\"O This file contains the maximum number of in-memory inodes. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¥á¥â¥êÆâ inode ¤ÎºÇÂçÃͤ¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ +このファイルには、メモリ内 inode の最大値が書かれている。 .\"O On some (2.4) systems, it may not be present. .\"O This value should be 3-4 times larger .\"O than the value in @@ -3034,20 +3034,20 @@ echo 100000 > /proc/sys/fs/file-max .\"O since \fIstdin\fP, \fIstdout\fP .\"O and network sockets also need an inode to handle them. .\"O When you regularly run out of inodes, you need to increase this value. -(2.4 ·Ï¤Î) ¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤ÎÃÍ¤Ï +(2.4 系の) システムによっては、このファイルが存在しないかもしれない。 +この値は .I file-max -¤ÎÃͤΠ3-4 Çܤˤ¹¤Ù¤­¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï \fIstdin\fP, \fIstdout\fP, ¥Í¥Ã¥È¥ï¡¼¥¯¥½¥±¥Ã¥È¤ò°·¤¦¤Ë¤â -inode ¤¬É¬Íפʤ¿¤á¤Ç¤¢¤ë¡£ -Æü¾ïŪ¤Ë inode ¤ò»È¤¤²Ì¤¿¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤³¤ÎÃͤòÁý¤ä¤¹É¬Íפ¬¤¢¤ë¡£ +の値の 3-4 倍にすべきである。 +これは \fIstdin\fP, \fIstdout\fP, ネットワークソケットを扱うにも +inode が必要なためである。 +日常的に inode を使い果たしている場合は、この値を増やす必要がある。 .TP .I /proc/sys/fs/inode-nr .\"O This file contains the first two values from .\"O .IR inode-state . -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢ +このファイルには、 .I inode-state -¤ÎºÇ½é¤Î 2 ¤Ä¤ÎÃͤ¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ +の最初の 2 つの値が書かれている。 .TP .I /proc/sys/fs/inode-state .\"O This file @@ -3069,28 +3069,28 @@ inode .\"O > .\"O .I inode-max .\"O and the system needs to prune the inode list instead of allocating more. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï 7 ¸Ä¤ÎÃͤ¬½ñ¤«¤ì¤Æ¤¤¤ë: +このファイルには 7 個の値が書かれている: .IR nr_inodes, .IR nr_free_inodes , .IR preshrink -¤È 4 ¤Ä¤Î¥À¥ß¡¼¤ÎÃͤǤ¢¤ë¡£ +と 4 つのダミーの値である。 .I nr_inodes -¤Ï¥·¥¹¥Æ¥à¤¬³ÎÊݤ¹¤ë inode ¤Î¿ô¤Ç¤¢¤ë¡£ -Linux ¤Ï 1 ÅÙ¤Ë 1 ¥Ú¡¼¥¸Ê¬¤¤¤Ã¤Ñ¤¤¤Ë nr_inode ¤ò³ÎÊݤ¹¤ë¤Î¤Ç¡¢¤³¤ÎÃͤ¬ +はシステムが確保する inode の数である。 +Linux は 1 度に 1 ページ分いっぱいに nr_inode を確保するので、この値が .I inode-max -¤è¤ê´öʬÂ礭¤¯¤Ê¤ë¤³¤È¤â¤¢¤ë¡£ -.\"Osato: pageful ¤Î°ÕÌ£¤¬¤è¤¯Ê¬¤«¤é¤Ê¤¤¡£ +より幾分大きくなることもある。 +.\"Osato: pageful の意味がよく分からない。 .I nr_free_inodes -¤Ï¶õ¤¤¤Æ¤¤¤ë inode ¤Î¿ô¤òɽ¤¹¡£ +は空いている inode の数を表す。 .IR nr_inodes " > " inode-max -¤Î¾ì¹ç¡¢ +の場合、 .I preshrink -¤Ï 0 °Ê³°¤ÎÃͤˤʤ롣 -¤³¤Î¾ì¹ç¥·¥¹¥Æ¥à¤Ï inode ¤ò¤µ¤é¤Ë³ÎÊݤ¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ -inode ¥ê¥¹¥È¤òÀÚ¤êµÍ¤á¤ëɬÍפ¬¤¢¤ë¡£ +は 0 以外の値になる。 +この場合システムは inode をさらに確保するのではなく、 +inode リストを切り詰める必要がある。 .TP .\"O .IR /proc/sys/fs/inotify " (since Linux 2.6.13)" -.IR /proc/sys/fs/inotify " (Linux 2.6.13 °Ê¹ß)" +.IR /proc/sys/fs/inotify " (Linux 2.6.13 以降)" .\"O This directory contains files .\"O .IR max_queued_events ", " max_user_instances ", and " max_user_watches , .\"O that can be used to limit the amount of kernel memory consumed by the @@ -3098,14 +3098,14 @@ inode .\"O interface. .\"O For further details, see .\"O .BR inotify (7). -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢¥Õ¥¡¥¤¥ë +このディレクトリには、ファイル .IR max_queued_events ", " max_user_instances ", and " max_user_watches -¤¬¤¢¤ë¡£¤³¤ì¤é¤Ï¡¢ +がある。これらは、 .I inotify -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¬¾ÃÈñ¤¹¤ë¥«¡¼¥Í¥ë¥á¥â¥êÎ̤òÀ©¸Â¤¹¤ë¤Î¤ËÍøÍѤǤ­¤ë¡£ -¾ÜºÙ¤Ï +インタフェースが消費するカーネルメモリ量を制限するのに利用できる。 +詳細は .BR inotify (7) -¤ò»²¾È¡£ +を参照。 .TP .I /proc/sys/fs/lease-break-time .\"O This file specifies the grace period that the kernel grants to a process @@ -3113,76 +3113,76 @@ inode .\"O .RB ( fcntl (2)) .\"O after it has sent a signal to that process notifying it .\"O that another process is waiting to open the file. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤òÊÝ»ý¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤ËÂФ·¤Æ -¥«¡¼¥Í¥ë¤¬¥·¥°¥Ê¥ë¤òÁ÷¤ê¡¢ -¾¤Î¥×¥í¥»¥¹¤¬¤½¤Î¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¤Î¤òÂԤäƤ¤¤ë¤³¤È¤òÄÌÃΤ·¤Æ¤«¤é¡¢ -¤½¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ¥«¡¼¥Í¥ë¤¬¥Õ¥¡¥¤¥ë¤Î¥ê¡¼¥¹ (lease, Âߤ·½Ð¤·) +このファイルは、ファイルを保持しているプロセスに対して +カーネルがシグナルを送り、 +他のプロセスがそのファイルをオープンするのを待っていることを通知してから、 +そのプロセスに対してカーネルがファイルのリース (lease, 貸し出し) .RB ( fcntl (2) -¤ò»²¾È) ¤òµö¤¹Í±Í½´ü´Ö¤ò»ØÄꤹ¤ë¡£ +を参照) を許す猶予期間を指定する。 .\"O If the lease holder does not remove or downgrade the lease within .\"O this grace period, the kernel forcibly breaks the lease. -¥ê¡¼¥¹¥Û¥ë¥À (lease holder: ¥Õ¥¡¥¤¥ë¤ÎÂߤ·½Ð¤·¤ò¼õ¤±¤Æ¤¤¤ë¥×¥í¥»¥¹) ¤¬ -ͱͽ´ü´ÖÃæ¤Ë¥ê¡¼¥¹¤òºï½ü¤¹¤ë¤«³¬µé¤òÄ㤯¤·¤Ê¤¤¾ì¹ç¡¢ -¥«¡¼¥Í¥ë¤Ï¥Õ¥¡¥¤¥ë¤Î¥ê¡¼¥¹¤ò¶¯À©Åª¤Ë»ß¤á¤ë¡£ +リースホルダ (lease holder: ファイルの貸し出しを受けているプロセス) が +猶予期間中にリースを削除するか階級を低くしない場合、 +カーネルはファイルのリースを強制的に止める。 .TP .I /proc/sys/fs/leases-enable .\"O This file can be used to enable or disable file leases .\"O .RB ( fcntl (2)) .\"O on a system-wide basis. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥·¥¹¥Æ¥àÁ´ÂΤǤΥե¡¥¤¥ë¥ê¡¼¥¹ +このファイルはシステム全体でのファイルリース .RB ( fcntl (2) -¤ò»²¾È) ¤òÍ­¸ú¤Þ¤¿¤Ï̵¸ú¤Ë¤¹¤ë¡£ +を参照) を有効または無効にする。 .\"O If this file contains the value 0, leases are disabled. .\"O A nonzero value enables leases. -¥Õ¥¡¥¤¥ë¤ËÃÍ 0 ¤¬½ñ¤­¹þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥ê¡¼¥¹¤Ï̵¸ú¤Ç¤¢¤ë¡£ -0 °Ê³°¤Î¾ì¹ç¤Ë¤Ï¥ê¡¼¥¹¤ÏÍ­¸ú¤Ç¤¢¤ë¡£ +ファイルに値 0 が書き込まれている場合、リースは無効である。 +0 以外の場合にはリースは有効である。 .TP .\"O .IR /proc/sys/fs/mqueue " (since Linux 2.6.6)" -.IR /proc/sys/fs/mqueue " (Linux 2.6.6 °Ê¹ß)" +.IR /proc/sys/fs/mqueue " (Linux 2.6.6 以降)" .\"O This directory contains files .\"O .IR msg_max ", " msgsize_max ", and " queues_max , .\"O controlling the resources used by POSIX message queues. -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¥Õ¥¡¥¤¥ë +このディレクトリにはファイル .IR msg_max ", " msgsize_max ", and " queues_max -¤¬¤¢¤ë¡£¤³¤ì¤é¤Ï POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ç»ÈÍѤµ¤ì¤ë¥ê¥½¡¼¥¹¤Î -À©¸æ¤ò¹Ô¤¦¡£ +がある。これらは POSIX メッセージキューで使用されるリソースの +制御を行う。 .\"O See .\"O .BR mq_overview (7) .\"O for details. -¾ÜºÙ¤Ï +詳細は .BR mq_overview (7) -¤ò»²¾È¡£ +を参照。 .TP .\"O .IR /proc/sys/fs/overflowgid " and " /proc/sys/fs/overflowuid -.IR /proc/sys/fs/overflowgid " ¤È " /proc/sys/fs/overflowuid +.IR /proc/sys/fs/overflowgid " と " /proc/sys/fs/overflowuid .\"O These files .\"O allow you to change the value of the fixed UID and GID. .\"O The default is 65534. -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ë¤è¤ê¡¢¥æ¡¼¥¶¡¼¤Ï¸ÇÄê UID ¤È¸ÇÄê GID ¤ÎÃͤòÊѹ¹¤Ç¤­¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 65534 ¤Ç¤¢¤ë¡£ +これらのファイルにより、ユーザーは固定 UID と固定 GID の値を変更できる。 +デフォルトは 65534 である。 .\"O Some file systems only support 16-bit UIDs and GIDs, although in Linux .\"O UIDs and GIDs are 32 bits. .\"O When one of these file systems is mounted .\"O with writes enabled, any UID or GID that would exceed 65535 is translated .\"O to the overflow value before being written to disk. -Linux ¤Î UID ¤È GID ¤Ï 32 ¥Ó¥Ã¥È¤Ç¤¢¤ë¤¬¡¢ -16 ¥Ó¥Ã¥È¤Î UID ¤È GID ¤·¤«¥µ¥Ý¡¼¥È¤·¤Ê¤¤¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ -¤³¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬½ñ¤­¹þ¤ß¤òµö²Ä¤·¤Æ¥Þ¥¦¥ó¥È¤µ¤ì¤¿¾ì¹ç¡¢ -65535 ¤òĶ¤¨¤ë UID ¤È GID ¤Ï¡¢ -¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤Þ¤ì¤ëÁ°¤Ë¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÃͤËÊÑ´¹¤µ¤ì¤ë¡£ +Linux の UID と GID は 32 ビットであるが、 +16 ビットの UID と GID しかサポートしないファイルシステムもある。 +このようなファイルシステムが書き込みを許可してマウントされた場合、 +65535 を超える UID と GID は、 +ディスクに書き込まれる前にオーバーフロー値に変換される。 .TP .\"O .IR /proc/sys/fs/suid_dumpable " (since Linux 2.6.13)" -.IR /proc/sys/fs/suid_dumpable " (Linux 2.6.13 °Ê¹ß)" +.IR /proc/sys/fs/suid_dumpable " (Linux 2.6.13 以降)" .\"O .\" The following is based on text from Documentation/sysctl/kernel.txt .\"O The value in this file determines whether core dump files are .\"O produced for set-user-ID or otherwise protected/tainted binaries. .\"O Three different integer values can be specified: -.\" °Ê²¼¤Ï Documentation/sysctl/kernel.txt ¤ÎÆâÍƤ˴𤤤Ƥ¤¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÃͤˤè¤ê¡¢set-user-ID ¤µ¤ì¤¿¥Ð¥¤¥Ê¥ê¤ä¡¢ -Êݸ¤«¤«¤Ã¤¿ (protected) ¥Ð¥¤¥Ê¥ê / tainted ¤Ê (±øÀ÷¤µ¤ì¤¿; -¥é¥¤¥»¥ó¥¹¤¬¥«¡¼¥Í¥ë¤ÈŬ¹ç¤·¤Ê¤¤) ¥Ð¥¤¥Ê¥ê¤ËÂФ·¤Æ¡¢¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤ò -À¸À®¤¹¤ë¤«¤É¤¦¤«¤¬·èÄꤵ¤ì¤ë¡£ -°Ê²¼¤Î 3¤Ä¤ÎÃͤò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë: +.\" 以下は Documentation/sysctl/kernel.txt の内容に基いている。 +このファイルの値により、set-user-ID されたバイナリや、 +保護がかかった (protected) バイナリ / tainted な (汚染された; +ライセンスがカーネルと適合しない) バイナリに対して、コアダンプファイルを +生成するかどうかが決定される。 +以下の 3つの値を指定することができる: .sp \fI0\ (default)\fP .\"O This provides the traditional (pre-Linux 2.6.13) behavior. @@ -3192,13 +3192,13 @@ Linux .\"O .BR setgid (2), .\"O or similar, or by executing a set-user-ID or set-group-ID program) .\"O or whose binary does not have read permission enabled. -¤³¤ÎÃͤò»ØÄꤹ¤ë¤È¡¢°ÊÁ°¤ÈƱ¤¸ (Linux 2.6.13 ¤è¤êÁ°¤Î) Æ°ºî¤ò¤¹¤ë¡£ +この値を指定すると、以前と同じ (Linux 2.6.13 より前の) 動作をする。 .RB ( seteuid (2), .BR setgid (2) -¤Ê¤É¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤ä¡¢set-user-ID ¤ä set-group-ID ¤µ¤ì¤¿¥×¥í¥°¥é¥à¤ò -¼Â¹Ô¤¹¤ë¤³¤È¤Ç) »ñ³Ê¾ðÊó (credentials) ¤¬Êѹ¹¤µ¤ì¤Æ¤¤¤ë¥×¥í¥»¥¹¤ä¡¢ -¥×¥í¥»¥¹¤Î¼Â¹Ô¥Ð¥¤¥Ê¥ê¤ÎÆɤ߽Ф·µö²Ä¤¬¤Ê¤¤¥×¥í¥»¥¹¤ËÂФ·¤Æ¡¢ -¥³¥¢¥À¥ó¥×¤òÀ¸À®¤·¤Ê¤¤¡£ +などを呼び出すことや、set-user-ID や set-group-ID されたプログラムを +実行することで) 資格情報 (credentials) が変更されているプロセスや、 +プロセスの実行バイナリの読み出し許可がないプロセスに対して、 +コアダンプを生成しない。 .sp \fI1\ ("debug")\fP .\"O All processes dump core when possible. @@ -3206,11 +3206,11 @@ Linux .\"O and no security is applied. .\"O This is intended for system debugging situations only. .\"O Ptrace is unchecked. -¤¹¤Ù¤Æ¤Î¥×¥í¥»¥¹¤Ç¡¢²Äǽ¤Ç¤¢¤ì¤Ð¥³¥¢¥À¥ó¥×¤ò¹Ô¤¦¡£ -¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤Ï¡¢¥À¥ó¥×¤ò¹Ô¤¦¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID -¤È¤Ê¤ê¡¢¥»¥­¥å¥ê¥Æ¥£¾å¤Î¹Íθ¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ -¤³¤ÎÃͤϡ¢¥·¥¹¥Æ¥à¥Ç¥Ð¥Ã¥°¤Î¾ìÌ̤À¤±¤òÁÛÄꤷ¤ÆÀߤ±¤é¤ì¤Æ¤¤¤ë¡£ -ptrace ¤Î¥Á¥§¥Ã¥¯¤â¹Ô¤ï¤ì¤Ê¤¤¡£ +すべてのプロセスで、可能であればコアダンプを行う。 +コアダンプファイルの所有者は、ダンプを行うプロセスのファイルシステム UID +となり、セキュリティ上の考慮は行われない。 +この値は、システムデバッグの場面だけを想定して設けられている。 +ptrace のチェックも行われない。 .sp \fI2\ ("suidsafe")\fP .\"O Any binary which normally would not be dumped (see "0" above) @@ -3221,16 +3221,16 @@ ptrace .\"O This mode is appropriate when administrators are .\"O attempting to debug problems in a normal environment. .\"O -.\"Omotoki: "overwrite one another or other files" ¤ÎÌõ¤Ë¼«¿®¤Ê¤·¡£ +.\"Omotoki: "overwrite one another or other files" の訳に自信なし。 .\"O -Ä̾ï¤Ï¥À¥ó¥×¤µ¤ì¤Ê¤¤¤è¤¦¤Ê¥Ð¥¤¥Ê¥ê (¾åµ­¤Î "0" »²¾È) ¤ò -root ¤À¤±¤¬Æɤ߽Ф·²Äǽ¤Ê·Á¤Ç¥À¥ó¥×¤¹¤ë¡£ -¤³¤Î¾ì¹ç¡¢¥æ¡¼¥¶¤Ï¤½¤Î¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤òºï½ü¤¹¤ë¤³¤È¤Ï¤Ç¤­¤ë¤¬¡¢ -Æɤळ¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÍýͳ¤«¤é¡¢¤³¤Î¥â¡¼¥É¤Î¥³¥¢¥À¥ó¥×¤Ç¤Ï¡¢ -´û¸¤Î¥À¥ó¥×¥Õ¥¡¥¤¥ë¤ä¾¤Î¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤­¤¹¤ë¤³¤È¤Ï¤Ê¤¤¡£ -¤³¤Î¥â¡¼¥É¤Ï¡¢´ÉÍý¼Ô¤¬Ä̾ï¤Î´Ä¶­¤ÇÌäÂê¤ò²òÀϤ·¤è¤¦¤È¤¹¤ëºÝ¤Ë -Ŭ¤·¤Æ¤¤¤ë¡£ +通常はダンプされないようなバイナリ (上記の "0" 参照) を +root だけが読み出し可能な形でダンプする。 +この場合、ユーザはそのコアダンプファイルを削除することはできるが、 +読むことはできない。 +セキュリティ上の理由から、このモードのコアダンプでは、 +既存のダンプファイルや他のファイルを上書きすることはない。 +このモードは、管理者が通常の環境で問題を解析しようとする際に +適している。 .TP .\"O .I /proc/sys/fs/super-max .\"O This file @@ -3242,23 +3242,23 @@ root .\"O if you need to mount more file systems than the current value in .\"O .I super-max .\"O allows you to. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥¹¡¼¥Ñ¥Ö¥í¥Ã¥¯¤ÎÃͤòÀ©¸æ¤¹¤ë¡£ -¤³¤ÎÃͤϥ«¡¼¥Í¥ë¤¬¥Þ¥¦¥ó¥È¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎºÇÂçÃͤˤʤ롣 -¸½ºß¡¢ +このファイルはスーパブロックの値を制御する。 +この値はカーネルがマウントできるファイルシステムの最大値になる。 +現在、 .I super-max -¤Çµö²Ä¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¿ô°Ê¾å¤Ë -¥Þ¥¦¥ó¥È¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ï¡¢¤³¤ÎÃͤòÁý²Ã¤µ¤»¤ë¤À¤±¤Ç¤è¤¤¡£ +で許可されているファイルシステム数以上に +マウントする必要がある場合は、この値を増加させるだけでよい。 .TP .I /proc/sys/fs/super-nr .\"O This file .\"O contains the number of file systems currently mounted. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¸½ºß¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¿ô¤¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ +このファイルには現在マウントされているファイルシステム数が書かれている。 .TP .I /proc/sys/kernel .\"O This directory contains files controlling a range of kernel parameters, .\"O as described below. -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢°Ê²¼¤ÇÀâÌÀ¤¹¤ëÍÍ¡¹¤Ê¥«¡¼¥Í¥ë¥Ñ¥é¥á¡¼¥¿¤ò -À©¸æ¤¹¤ë¤¿¤á¤Î¥Õ¥¡¥¤¥ë¤¬ÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë¡£ +このディレクトリには、以下で説明する様々なカーネルパラメータを +制御するためのファイルが配置されている。 .TP .I /proc/sys/kernel/acct .\"O This file @@ -3267,11 +3267,11 @@ root .\"O .IR lowwater , .\"O and .\"O .IR frequency . -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï 3 ¤Ä¤ÎÃͤ¬´Þ¤Þ¤ì¤Æ¤¤¤ë: +このファイルには 3 つの値が含まれている: .IR highwater , .IR lowwater , .IR frequency -¤Ç¤¢¤ë¡£ +である。 .\"O If BSD-style process accounting is enabled these values control .\"O its behavior. .\"O If free space on file system where the log lives goes below @@ -3285,109 +3285,109 @@ root .\"O how often the kernel checks the amount of free space (value is in .\"O seconds). .\"O Default values are 4, 2 and 30. -BSD-style process accounting ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -¤³¤ì¤é 3 ¤Ä¤ÎÃͤ¬Æ°ºî¤òÀ©¸æ¤¹¤ë¡£ -¥í¥°¥Õ¥¡¥¤¥ë¤Î¤¢¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¶õ¤­Îΰ褬 +BSD-style process accounting が有効になっている場合、 +これら 3 つの値が動作を制御する。 +ログファイルのあるファイルシステムの空き領域が .I lowwater -¥Ñ¡¼¥»¥ó¥È°Ê²¼¤Ë¤Ê¤Ã¤¿¾ì¹ç¤Ï¡¢¥í¥°µ­Ï¿¤ò°ì»þÄä»ß¤¹¤ë¡£ -¶õ¤­Îΰ褬 +パーセント以下になった場合は、ログ記録を一時停止する。 +空き領域が .I highwater -¥Ñ¡¼¥»¥ó¥È°Ê¾å¤Ë¤Ê¤Ã¤¿¾ì¹ç¤Ë¡¢¥í¥°µ­Ï¿¤òºÆ³«¤¹¤ë¡£ +パーセント以上になった場合に、ログ記録を再開する。 .I frequency -¤Ï¥«¡¼¥Í¥ë¤¬¶õ¤­Îΰè¤Î¥Á¥§¥Ã¥¯¤ò¤¹¤ëÉÑÅ٤Ǥ¢¤ë (ñ°Ì¤ÏÉÃ)¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÃͤϡ¢4, 2, 30 ¤Ç¤¢¤ë¡£ +はカーネルが空き領域のチェックをする頻度である (単位は秒)。 +デフォルトの値は、4, 2, 30 である。 .\"O That is, suspend accounting if 2% or less space is free; resume it .\"O if 4% or more space is free; consider information about amount of free space .\"O valid for 30 seconds. -¤Ä¤Þ¤ê¡¢¶õ¤­Îΰ褬 2% °Ê²¼¤Ë¤Ê¤ë¤È¥í¥°µ­Ï¿¤ò°ì»þÄä»ß¤·¡¢ -¶õ¤­Îΰ褬 4% °Ê¾å¤È¤Ê¤Ã¤¿¤È¤­¤ËºÆ³«¤¹¤ë¡£ -¶õ¤­Îΰè¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï 30 ÉôÖÍ­¸ú¤Ç¤¢¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +つまり、空き領域が 2% 以下になるとログ記録を一時停止し、 +空き領域が 4% 以上となったときに再開する。 +空き領域についての情報は 30 秒間有効である点に注意すること。 .TP .\"O .IR /proc/sys/kernel/cap-bound " (from Linux 2.2 to 2.6.24)" -.IR /proc/sys/kernel/cap-bound " (Linux 2.2 to 2.6.24 °Ê¹ß)" +.IR /proc/sys/kernel/cap-bound " (Linux 2.2 to 2.6.24 以降)" .I /proc/sys/kernel/cap-bound .\"O This file holds the value of the kernel .\"O .I "capability bounding set" .\"O (expressed as a signed decimal number). -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¥«¡¼¥Í¥ë¤Î +このファイルにはカーネルの .I "capability bounding set" -(Éä¹æÉÕ¤­ 10 ¿Ê¿ôɽ¸½) ¤ÎÃͤ¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ +(符号付き 10 進数表現) の値が書かれている。 .\"O This set is ANDed against the capabilities permitted to a process .\"O during .\"O .BR execve (2). .BR execve (2) -Ãæ¤Ï¡¢¤³¤Î¥»¥Ã¥È¤È¥×¥í¥»¥¹¤Ëµö²Ä¤µ¤ì¤Æ¤¤¤ë¸¢¸Â¤Î AND ¤¬¤È¤é¤ì¤ë¡£ +中は、このセットとプロセスに許可されている権限の AND がとられる。 .\"O Starting with Linux 2.6.25, .\"O the system-wide capability bounding set disappeared, .\"O and was replaced by a per-thread bounding set; see .\"O .BR capabilities (7). -Linux 2.6.25 °Ê¹ß¤Ç¤Ï¡¢¥·¥¹¥Æ¥àÁ´ÂΤΥ±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï -¤Ê¤¯¤Ê¤ê¡¢¥¹¥ì¥Ã¥Éñ°Ì¤Î¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤ËÃÖ¤­´¹¤¨¤é¤ì¤¿¡£ +Linux 2.6.25 以降では、システム全体のケーパビリティバウンディングセットは +なくなり、スレッド単位のバウンディングセットに置き換えられた。 .BR capabilities (7) -¤ò»²¾È¡£ +を参照。 .TP .I /proc/sys/kernel/core_pattern .\"O See .\"O .BR core (5). .BR core (5) -»²¾È¡£ +参照。 .TP .I /proc/sys/kernel/core_uses_pid .\"O See .\"O .BR core (5). .BR core (5) -»²¾È¡£ +参照。 .TP .I /proc/sys/kernel/ctrl-alt-del .\"O This file .\"O controls the handling of Ctrl-Alt-Del from the keyboard. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥­¡¼¥Ü¡¼¥É¤Î Ctrl-Alt-Del ¤Î°·¤¤¤òÀ©¸æ¤¹¤ë¡£ +このファイルはキーボードの Ctrl-Alt-Del の扱いを制御する。 .\"O When the value in this file is 0, Ctrl-Alt-Del is trapped and .\"O sent to the .\"O .BR init (8) .\"O program to handle a graceful restart. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤¢¤ëÃͤ¬ 0 ¤Î¾ì¹ç¡¢ -Ctrl-Alt-Del ¤¬Ê᪤µ¤ì¤ë¤È +このファイルにある値が 0 の場合、 +Ctrl-Alt-Del が捕捉されると .BR init (8) -¥×¥í¥°¥é¥à¤ËÁ÷¤é¤ì¤Æ¡¢Àµ¤·¤¯ºÆµ¯Æ°¤µ¤ì¤ë¡£ +プログラムに送られて、正しく再起動される。 .\"O When the value is greater than zero, Linux's reaction to a Vulcan .\"O Nerve Pinch (tm) will be an immediate reboot, without even .\"O syncing its dirty buffers. -Ãͤ¬ 0 ¤è¤êÂ礭¤¤¾ì¹ç¡¢Vulcan Nerve Pinch (tm) ¤ËÈ¿±þ¤·¤Æ¡¢ -Linux ¤Ï¥À¡¼¥Æ¥£¥Ð¥Ã¥Õ¥¡¤òƱ´ü¤µ¤»¤ë¤³¤È¤Ê¤¯¡¢¤¹¤°¤ËºÆµ¯Æ°¤ò¹Ô¤¦¡£ +値が 0 より大きい場合、Vulcan Nerve Pinch (tm) に反応して、 +Linux はダーティバッファを同期させることなく、すぐに再起動を行う。 .\"O Note: when a program (like dosemu) has the keyboard in "raw" .\"O mode, the ctrl-alt-del is intercepted by the program before it .\"O ever reaches the kernel tty layer, and it's up to the program .\"O to decide what to do with it. -Ãí°Õ: ¥×¥í¥°¥é¥à (dosemu ¤Ê¤É) ¤Ë "raw" ¥â¡¼¥É¤Î¥­¡¼¥Ü¡¼¥É¤¬¤¢¤ë¾ì¹ç¡¢ -ctrl-alt-del ¤Ï¥«¡¼¥Í¥ë¤Î tty ¥ì¥¤¥ä¡¼¤ËÅþ㤹¤ëÁ°¤Ë -¥×¥í¥°¥é¥à¤Ë¼×ÃǤµ¤ì¡¢ -¥×¥í¥°¥é¥à¤ËÁ÷¤é¤ì¤Æ¤É¤Î¤è¤¦¤Ë°·¤¦¤«¤¬·è¤á¤é¤ì¤ë¡£ +注意: プログラム (dosemu など) に "raw" モードのキーボードがある場合、 +ctrl-alt-del はカーネルの tty レイヤーに到達する前に +プログラムに遮断され、 +プログラムに送られてどのように扱うかが決められる。 .TP .I /proc/sys/kernel/hotplug .\"O This file .\"O contains the path for the hotplug policy agent. .\"O The default value in this file is .\"O .IR /sbin/hotplug . -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥Û¥Ã¥È¥×¥é¥°¡¦¥Ý¥ê¥·¡¼¡¦¥¨¡¼¥¸¥§¥ó¥È¤Î¥Ñ¥¹¤¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï +このファイルはホットプラグ・ポリシー・エージェントのパスが書かれている。 +このファイルのデフォルト値は .I /sbin/hotplug -¤Ç¤¢¤ë¡£ +である。 .TP .\"O .IR /proc/sys/kernel/domainname " and " /proc/sys/kernel/hostname -.IR /proc/sys/kernel/domainname " ¤È " /proc/sys/kernel/hostname +.IR /proc/sys/kernel/domainname " と " /proc/sys/kernel/hostname .\"O can be used to set the NIS/YP domainname and the .\"O hostname of your box in exactly the same way as the commands .\"O .BR domainname (1) .\"O and .\"O .BR hostname (1), .\"O that is: -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¥³¥Þ¥ó¥É +これらのファイルは、コマンド .BR domainname (1), .BR hostname (1) -¤ÈÁ´¤¯Æ±¤¸ÊýË¡¤Ç¡¢ -¥Þ¥·¥ó¤Î NIS/YP ¥É¥á¥¤¥ó̾¤È¥Û¥¹¥È̾¤ÎÀßÄê¤Ë»È¤¨¤ë¡£ -¤¹¤Ê¤ï¤Á +と全く同じ方法で、 +マシンの NIS/YP ドメイン名とホスト名の設定に使える。 +すなわち .in +4n .nf @@ -3397,7 +3397,7 @@ ctrl-alt-del .in .\"O has the same effect as -¤Ï¡¢°Ê²¼¤ÈƱ¤¸¸ú²Ì¤¬¤¢¤ë¡£ +は、以下と同じ効果がある。 .in +4n .nf @@ -3416,15 +3416,15 @@ ctrl-alt-del .\"O see the .\"O .BR hostname (1) .\"O man page. -Ãí°Õ: ŵ·¿Åª¤Ê darkstar.frop.org ¤È¤¤¤¦Ì¾Á°¤Ë¤Ï¡¢ -¥Û¥¹¥È̾ "darkstar" ¤È DNS (Internet Domain Name Server) -¥É¥á¥¤¥ó̾ "frop.org" ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤¬¡¢DNS ¥É¥á¥¤¥ó̾¤È -NIS (Network Information Service) ¤Þ¤¿¤Ï -YP (Yellow Pages) ¤Î¥É¥á¥¤¥ó̾¤òº®Æ±¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -°ìÈ̤ˤ³¤ì¤é 2 ¤Ä¤Î¥É¥á¥¤¥ó̾¤Ï°Û¤Ê¤ë¡£ -¾ÜºÙ¤ÊµÄÏÀ¤Ï¡¢ +注意: 典型的な darkstar.frop.org という名前には、 +ホスト名 "darkstar" と DNS (Internet Domain Name Server) +ドメイン名 "frop.org" が含まれているが、DNS ドメイン名と +NIS (Network Information Service) または +YP (Yellow Pages) のドメイン名を混同してはならない。 +一般にこれら 2 つのドメイン名は異なる。 +詳細な議論は、 .BR hostname (1) -¤Î man ¥Ú¡¼¥¸¤ò»²¾È¤¹¤ë¤³¤È¡£ +の man ページを参照すること。 .TP .I /proc/sys/kernel/htab-reclaim .\"O (PowerPC only) If this file is set to a nonzero value, @@ -3433,11 +3433,11 @@ YP (Yellow Pages) .\"O .IR Documentation/powerpc/ppc_htab.txt ) .\"O is pruned .\"O each time the system hits the idle loop. -(PowerPC ¤Î¤ß) ¤³¤Î¥Õ¥¡¥¤¥ë¤ò 0 °Ê³°¤ÎÃͤËÀßÄꤹ¤ë¤È¡¢ +(PowerPC のみ) このファイルを 0 以外の値に設定すると、 PowerPC htab -(¥«¡¼¥Í¥ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë +(カーネルソースファイル .I Documentation/powerpc/ppc_htab.txt -»²¾È) ¤ò¡¢¥·¥¹¥Æ¥à¤¬¥¢¥¤¥É¥ë¥ë¡¼¥×¤Ë¤Ê¤ë¤¿¤Ó¤ËÀÚ¤êµÍ¤á¤ë¡£ +参照) を、システムがアイドルループになるたびに切り詰める。 .TP .I /proc/sys/kernel/l2cr .\"O (PowerPC only) This file @@ -3445,10 +3445,10 @@ PowerPC htab .\"O boards. .\"O If 0, the cache is disabled. .\"O Enabled if nonzero. -(PowerPC ¤Î¤ß) ¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï G3 ¥×¥í¥»¥Ã¥µ¥Ü¡¼¥É¤Î -L2 ¥­¥ã¥Ã¥·¥å¤òÀ©¸æ¤¹¤ë¥Õ¥é¥°¤¬´Þ¤Þ¤ì¤ë¡£ -0 ¤Î¾ì¹ç¡¢¥­¥ã¥Ã¥·¥å¤Ï̵¸ú¤Ë¤Ê¤ë¡£ -0 °Ê³°¤Î¾ì¹ç¤ÏÍ­¸ú¤Ë¤Ê¤ë¡£ +(PowerPC のみ) このファイルには G3 プロセッサボードの +L2 キャッシュを制御するフラグが含まれる。 +0 の場合、キャッシュは無効になる。 +0 以外の場合は有効になる。 .TP .I /proc/sys/kernel/modprobe .\"O This file contains the path for the kernel module loader. @@ -3457,69 +3457,69 @@ L2 .\"O The file is only present if the kernel is built with the .\"O .B CONFIG_KMOD .\"O option enabled. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¥í¡¼¥À¤Ø¤Î¥Ñ¥¹¤¬´Þ¤Þ¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÃÍ¤Ï +このファイルには、カーネルモジュールローダへのパスが含まれる。 +デフォルトの値は .I /sbin/modprobe -¤Ç¤¢¤ë¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢ +である。このファイルは、 .B CONFIG_KMOD -¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤·¤Æ¥«¡¼¥Í¥ë¤¬ºîÀ®¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Î¤ß¸ºß¤¹¤ë¡£ +オプションを有効にしてカーネルが作成されている場合にのみ存在する。 .\"O It is described by the kernel source file .\"O .I Documentation/kmod.txt .\"O (only present in kernel 2.4 and earlier). -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥«¡¼¥Í¥ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë +このファイルについては、カーネルソースファイル .I Documentation/kmod.txt -(¥«¡¼¥Í¥ë 2.4 °ÊÁ°¤Î¤ß¤Ë¸ºß) ¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +(カーネル 2.4 以前のみに存在) に記述されている。 .TP .I /proc/sys/kernel/msgmax .\"O This file defines .\"O a system-wide limit specifying the maximum number of bytes in .\"O a single message written on a System V message queue. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢System V ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ë½ñ¤­¹þ¤Þ¤ì¤ë 1 ¤Ä¤Î¥á¥Ã¥»¡¼¥¸¤Î -ºÇÂç¥Ð¥¤¥È¿ô¤ò¡¢¥·¥¹¥Æ¥àÁ´ÂΤÇÀ©¸Â¤¹¤ë¡£ +このファイルは、System V メッセージキューに書き込まれる 1 つのメッセージの +最大バイト数を、システム全体で制限する。 .TP .I /proc/sys/kernel/msgmni .\"O This file defines the system-wide limit on the number of .\"O message queue identifiers. .\"O (This file is only present in Linux 2.4 onwards.) -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¼±Ê̻ҤκÇÂç¿ô¤ò¥·¥¹¥Æ¥àÁ´ÂΤÇÀ©¸Â¤¹¤ë¡£ -(¤³¤Î¥Õ¥¡¥¤¥ë¤Ï Linux 2.4 °Ê¹ß¤Ë¤·¤«Â¸ºß¤·¤Ê¤¤)¡£ +このファイルはメッセージキュー識別子の最大数をシステム全体で制限する。 +(このファイルは Linux 2.4 以降にしか存在しない)。 .TP .I /proc/sys/kernel/msgmnb .\"O This file defines a system-wide parameter used to initialize the .\"O .I msg_qbytes .\"O setting for subsequently created message queues. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢ +このファイルは、 .I msg_qbytes -¤ÎÀßÄê¤ò½é´ü²½¤¹¤ë¥·¥¹¥Æ¥àÁ´ÂΤΥѥé¥á¡¼¥¿¤Ç¤¢¤ë¡£ +の設定を初期化するシステム全体のパラメータである。 .I msg_qbytes -¤Ï°Ê¹ß¤ÇºîÀ®¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ç»È¤ï¤ì¤ë¡£ +は以降で作成されるメッセージキューで使われる。 .\"O The .\"O .I msg_qbytes .\"O setting specifies the maximum number of bytes that may be written to the .\"O message queue. .I msg_qbytes -ÀßÄê¤Ç¤Ï¡¢¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ë½ñ¤­¹þ¤Þ¤ì¤ëºÇÂç¥Ð¥¤¥È¿ô¤ò»ØÄꤹ¤ë¡£ +設定では、メッセージキューに書き込まれる最大バイト数を指定する。 .TP .\"O .IR /proc/sys/kernel/ostype " and " /proc/sys/kernel/osrelease -.IR /proc/sys/kernel/ostype " ¤È " /proc/sys/kernel/osrelease +.IR /proc/sys/kernel/ostype " と " /proc/sys/kernel/osrelease .\"O These files .\"O give substrings of .\"O .IR /proc/version . -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ïʸ»úÎó +これらのファイルは文字列 .I /proc/version -¤Î³ÆÉôʬ¤òÍ¿¤¨¤ë¡£ +の各部分を与える。 .TP .\"O .IR /proc/sys/kernel/overflowgid " and " /proc/sys/kernel/overflowuid -.IR /proc/sys/kernel/overflowgid " ¤È " /proc/sys/kernel/overflowuid +.IR /proc/sys/kernel/overflowgid " と " /proc/sys/kernel/overflowuid .\"O These files duplicate the files .\"O .I /proc/sys/fs/overflowgid .\"O and .\"O .IR /proc/sys/fs/overflowuid . -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï +これらのファイルは .I /proc/sys/fs/overflowgid -¤È +と .I /proc/sys/fs/overflowuid -¤òÊ£À½¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +を複製したものである。 .TP .I /proc/sys/kernel/panic .\"O This file gives read/write access to the kernel variable @@ -3529,16 +3529,16 @@ L2 .\"O of seconds. .\"O When you use the .\"O software watchdog device driver, the recommended setting is 60. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥«¡¼¥Í¥ëÊÑ¿ô +このファイルはカーネル変数 .I panic_timeout -¤Ø¤ÎÆɤ߽Ф·¤È½ñ¤­¹þ¤ß¤Î¥¢¥¯¥»¥¹¤òÍ¿¤¨¤ë¡£ -¤³¤ÎÃͤ¬ 0 ¤Ê¤é¤Ð¡¢¥Ñ¥Ë¥Ã¥¯»þ¤Ë¥«¡¼¥Í¥ë¤Ï (̵¸Â) ¥ë¡¼¥×¤ËÆþ¤ë¡£ -0 ¤Ç¤Ê¤±¤ì¤Ð¡¢¤½¤ÎÉÿô¤À¤±ÂԤäƤ«¤é¼«Æ°Åª¤ËºÆµ¯Æ°¤¹¤ë¡£ -¥½¥Õ¥È¥¦¥§¥¢ watchdog ¥É¥é¥¤¥Ð¤ò»È¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -¿ä¾©¤µ¤ì¤ëÀßÄê¤Ï 60 ¤Ç¤¢¤ë¡£ +への読み出しと書き込みのアクセスを与える。 +この値が 0 ならば、パニック時にカーネルは (無限) ループに入る。 +0 でなければ、その秒数だけ待ってから自動的に再起動する。 +ソフトウェア watchdog ドライバを使っている場合、 +推奨される設定は 60 である。 .TP .\"O .IR /proc/sys/kernel/panic_on_oops " (since Linux 2.5.68)" -.IR /proc/sys/kernel/panic_on_oops " (Linux 2.5.68 °Ê¹ß)" +.IR /proc/sys/kernel/panic_on_oops " (Linux 2.5.68 以降)" .\"O This file controls the kernel's behavior when an oops .\"O or BUG is encountered. .\"O If this file contains 0, then the system @@ -3546,27 +3546,27 @@ L2 .\"O If it contains 1, then the system .\"O delays a few seconds (to give klogd time to record the oops output) .\"O and then panics. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢oops ¤ä BUG ¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Î¥«¡¼¥Í¥ë¤ÎÆ°ºî¤òÀ©¸æ¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¤Ë 0 ¤¬½ñ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥·¥¹¥Æ¥à¤ÏÁàºî¤ò³¹Ô¤·¤è¤¦¤È¤¹¤ë¡£ -1 ¤¬½ñ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥·¥¹¥Æ¥à¤Ï -(klogd ¤¬ oops ½ÐÎϤòµ­Ï¿¤¹¤ë»þ´Ö¤òÍ¿¤¨¤ë¤¿¤á¤Ë) ¿ôÉôÖÃٱ䤷¤¿¸å¡¢ -panic ¤òµ¯¤³¤¹¡£ +このファイルは、oops や BUG が起こった場合のカーネルの動作を制御する。 +ファイルに 0 が書かれている場合、システムは操作を続行しようとする。 +1 が書かれている場合、システムは +(klogd が oops 出力を記録する時間を与えるために) 数秒間遅延した後、 +panic を起こす。 .\"O If the .\"O .I /proc/sys/kernel/panic .\"O file is also nonzero then the machine will be rebooted. .I /proc/sys/kernel/panic -¥Õ¥¡¥¤¥ë¤â 0 ¤Ç¤Ê¤¤¾ì¹ç¡¢¥Þ¥·¥ó¤ÏºÆµ¯Æ°¤µ¤ì¤ë¡£ +ファイルも 0 でない場合、マシンは再起動される。 .TP .\"O .IR /proc/sys/kernel/pid_max " (since Linux 2.5.34)" -.IR /proc/sys/kernel/pid_max " (Linux 2.5.34 °Ê¹ß)" +.IR /proc/sys/kernel/pid_max " (Linux 2.5.34 以降)" .\"O This file specifies the value at which PIDs wrap around .\"O (i.e., the value in this file is one greater than the maximum PID). -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢PID ¤ò¤¤¤¯¤Ä¤Ç½ªÎ»¤Ë¤¹¤ë¤«¤ò»ØÄꤹ¤ë -(¤¹¤Ê¤ï¤Á¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÃͤϺÇÂç PID ¤è¤ê 1 Â礭¤¤)¡£ +このファイルは、PID をいくつで終了にするかを指定する +(すなわち、このファイルの値は最大 PID より 1 大きい)。 .\"O The default value for this file, 32768, .\"O results in the same range of PIDs as on earlier kernels. -¤³¤Î¥Õ¥¡¥¤¥ë¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 32768 ¤Ç¤¢¤ê¡¢ -¤½¤Î¾ì¹ç¤Ë¤Ï°ÊÁ°¤Î¥«¡¼¥Í¥ë¤ÈƱ¤¸ PID ¤ÎÈϰϤˤʤ롣 +このファイルのデフォルト値は 32768 であり、 +その場合には以前のカーネルと同じ PID の範囲になる。 .\"O On 32-bit platforms, 32768 is the maximum value for .\"O .IR pid_max . .\"O On 64-bit systems, @@ -3574,27 +3574,27 @@ panic .\"O can be set to any value up to 2^22 .\"O .RB ( PID_MAX_LIMIT , .\"O approximately 4 million). -32¥Ó¥Ã¥È¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï¡¢ +32ビットのプラットフォームでは、 .I pid_max -¤ÎºÇÂçÃÍ¤Ï 32768 ¤Ç¤¢¤ë¡£ -64¥Ó¥Ã¥È¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï¡¢ +の最大値は 32768 である。 +64ビットのプラットフォームでは、 2^22 .RB ( PID_MAX_LIMIT , -Ìó 4,000,000) ¤Þ¤Ç¤ÎǤ°Õ¤ÎÃͤòÀßÄê¤Ç¤­¤ë¡£ +約 4,000,000) までの任意の値を設定できる。 .\" Prior to 2.6.10, pid_max could also be raised above 32768 on 32-bit .\" platforms, but this broke /proc/[pid] .\" See http://marc.theaimsgroup.com/?l=linux-kernel&m=109513010926152&w=2 .TP .\"O .IR /proc/sys/kernel/powersave-nap " (PowerPC only)" -.IR /proc/sys/kernel/powersave-nap " (PowerPC ¤Î¤ß)" +.IR /proc/sys/kernel/powersave-nap " (PowerPC のみ)" .\"O This file contains a flag. .\"O If set, Linux-PPC will use the "nap" mode of .\"O powersaving, .\"O otherwise the "doze" mode will be used. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¥Õ¥é¥°¤¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ -¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤ë¤È¡¢Linux-PPC ¤Ï -¾ÊÅÅÎϤΠ"nap" ¥â¡¼¥É¤ò»È¤¦¡£ -ÀßÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢"doze" ¥â¡¼¥É¤¬»È¤ï¤ì¤ë¡£ +このファイルにはフラグが書かれている。 +フラグが設定されると、Linux-PPC は +省電力の "nap" モードを使う。 +設定されない場合は、"doze" モードが使われる。 .TP .I /proc/sys/kernel/printk .\"O The four values in this file are @@ -3609,21 +3609,21 @@ panic .\"O See .\"O .BR syslog (2) .\"O for more info on the different loglevels. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë 4 ¤Ä¤ÎÃͤϡ¢ +このファイルにある 4 つの値は、 .IR console_loglevel , .IR default_message_loglevel , .IR minimum_console_loglevel , .IR default_console_loglevel -¤Ç¤¢¤ë¡£ +である。 .\"Osato: -.\"Osato: minimum_console_level ¤Ï minimum_console_loglevel ¤Î´Ö°ã¤¤¡© +.\"Osato: minimum_console_level は minimum_console_loglevel の間違い? .\"Osato: -¤³¤ì¤é¤ÎÃͤϥ¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤¿¤êµ­Ï¿¤·¤¿¤ê¤¹¤ë +これらの値はエラーメッセージを表示したり記録したりする .I printk() -¤ÎÆ°ºî¤Ë±Æ¶Á¤¹¤ë¡£ -³Æ loglevel ¤Î¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +の動作に影響する。 +各 loglevel の情報については、 .BR syslog (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O Messages with a higher priority than .\"O .I console_loglevel .\"O will be printed to the console. @@ -3636,39 +3636,39 @@ panic .\"O .I default_console_loglevel .\"O is the default value for .\"O .IR console_loglevel . -Í¥ÀèÅÙ¤¬ +優先度が .I console_loglevel -°Ê¾å¤Î¥á¥Ã¥»¡¼¥¸¤Ï¡¢¥³¥ó¥½¡¼¥ë¤Ëɽ¼¨¤µ¤ì¤ë¡£ -Í¥ÀèÅÙ¤¬ÌÀ¼¨¤µ¤ì¤Æ¤¤¤Ê¤¤¥á¥Ã¥»¡¼¥¸¤Ï¡¢Í¥ÀèÅÙ¤¬ +以上のメッセージは、コンソールに表示される。 +優先度が明示されていないメッセージは、優先度が .I default_message_level -¤Î¤È¤­¤Ëɽ¼¨¤µ¤ì¤ë¡£ +のときに表示される。 .I minimum_console_loglevel -¤Ï +は .I console_loglevel -¤ËÀßÄê¤Ç¤­¤ëºÇ¾® (ºÇ¹â) ¤ÎÃͤǤ¢¤ë¡£ +に設定できる最小 (最高) の値である。 .I default_console_loglevel -¤Ï +は .I console_loglevel -¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÃͤǤ¢¤ë¡£ +のデフォルトの値である。 .TP .\"O .IR /proc/sys/kernel/pty " (since Linux 2.6.4)" -.IR /proc/sys/kernel/pty " (Linux 2.6.4 °Ê¹ß)" +.IR /proc/sys/kernel/pty " (Linux 2.6.4 以降)" .\"O This directory contains two files relating to the number of Unix 98 .\"O pseudo-terminals (see .\"O .BR pts (4)) .\"O on the system. -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢Unix 98 µ¿»÷üËö +このディレクトリは、Unix 98 疑似端末 .RB ( pts (4) -¤ò»²¾È) ¤Î¿ô¤Ë´ØÏ¢¤¹¤ë 2 ¤Ä¤Î¥Õ¥¡¥¤¥ë¤ò´Þ¤à¡£ +を参照) の数に関連する 2 つのファイルを含む。 .TP .I /proc/sys/kernel/pty/max .\"O This file defines the maximum number of pseudo-terminals. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ïµ¿»÷üËö¤ÎºÇÂç¿ô¤òÄêµÁ¤¹¤ë¡£ +このファイルは疑似端末の最大数を定義する。 .TP .I /proc/sys/kernel/pty/nr .\"O This read-only file .\"O indicates how many pseudo-terminals are currently in use. -¤³¤ÎÆɤ߽Ф·ÀìÍѤΥե¡¥¤¥ë¤Ï¡¢¸½ºß¤¤¤¯¤Ä¤Îµ¿»÷üËö¤¬»È¤ï¤ì¤Æ¤¤¤ë¤«¤òɽ¤¹¡£ +この読み出し専用のファイルは、現在いくつの疑似端末が使われているかを表す。 .TP .I /proc/sys/kernel/random .\"O This directory @@ -3678,76 +3678,76 @@ panic .\"O See .\"O .BR random (4) .\"O for further information. -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢¥Õ¥¡¥¤¥ë +このディレクトリは、ファイル .I /dev/random -¤ÎÁàºî¤òÀ©¸æ¤¹¤ëÍÍ¡¹¤Ê¥Ñ¥é¥á¡¼¥¿¤¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ -¾ÜºÙ¤Ï +の操作を制御する様々なパラメータが書かれている。 +詳細は .BR random (4) -¤ò»²¾È¡£ +を参照。 .TP .I /proc/sys/kernel/real-root-dev .\"O This file is documented in the kernel source file .\"O .IR Documentation/initrd.txt . -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥«¡¼¥Í¥ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë +このファイルはカーネルソースファイル .I Documentation/initrd.txt -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +に記述されている。 .TP .\"O .IR /proc/sys/kernel/reboot-cmd " (Sparc only) " -.IR /proc/sys/kernel/reboot-cmd " (Sparc ¤Î¤ß) " +.IR /proc/sys/kernel/reboot-cmd " (Sparc のみ) " .\"O This file seems to be a way to give an argument to the SPARC .\"O ROM/Flash boot loader. .\"O Maybe to tell it what to do after .\"O rebooting? -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï SPARC ROM/Flash ¥Ö¡¼¥È¥í¡¼¥À¤Ë°ú¤­¿ô¤òÅϤ¹ÊýË¡¤ò -Ä󶡤·¤Æ¤¤¤ë¤è¤¦¤Ë»×¤ï¤ì¤ë¡£ -ºÆµ¯Æ°¸å¤Ë²¿¤ò¤¹¤ë¤«¤ò»ØÄꤷ¤Æ¤¤¤ë¤Î¤À¤í¤¦¤«¡© +このファイルは SPARC ROM/Flash ブートローダに引き数を渡す方法を +提供しているように思われる。 +再起動後に何をするかを指定しているのだろうか? .TP .I /proc/sys/kernel/rtsig-max .\"O (Only in kernels up to and including 2.6.7; see .\"O .BR setrlimit (2)) -(2.6.7 ¤Þ¤Ç¤Î¥«¡¼¥Í¥ë¤Ë¤Î¤ß¸ºß¤¹¤ë¡£ +(2.6.7 までのカーネルにのみ存在する。 .BR setrlimit (2) -¤ò»²¾È¤¹¤ë¤³¤È) +を参照すること) .\"O This file can be used to tune the maximum number .\"O of POSIX real-time (queued) signals that can be outstanding .\"O in the system. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥·¥¹¥Æ¥à¤Çȯ¹Ô¤µ¤ì¤ë POSIX real-time (queued) signal ¤Î -ºÇÂç¿ô¤òÄ´À°¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ +このファイルはシステムで発行される POSIX real-time (queued) signal の +最大数を調整するのに使用される。 .TP .I /proc/sys/kernel/rtsig-nr .\"O (Only in kernels up to and including 2.6.7.) -(2.6.7 ¤Þ¤Ç¤Î¥«¡¼¥Í¥ë¤Ë¤Î¤ß¸ºß¤¹¤ë) +(2.6.7 までのカーネルにのみ存在する) .\"O This file shows the number POSIX real-time signals currently queued. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¸½ºß¥­¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ë POSIX real-time signal ¤Î¿ô¤òɽ¤¹¡£ +このファイルは現在キューに入っている POSIX real-time signal の数を表す。 .TP .\"O .IR /proc/sys/kernel/sem " (since Linux 2.4)" -.IR /proc/sys/kernel/sem " (Linux 2.4 °Ê¹ß)" +.IR /proc/sys/kernel/sem " (Linux 2.4 以降)" .\"O This file contains 4 numbers defining limits for System V IPC semaphores. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï System V IPC ¥»¥Þ¥Õ¥©¤òÀ©¸Â¤¹¤ë 4 ¤Ä¤ÎÃͤ¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ +このファイルには System V IPC セマフォを制限する 4 つの値が書かれている。 .\"O These fields are, in order: -¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Ï¼¡¤Î½çÈÖ¤Ëʤó¤Ç¤¤¤ë: +これらのフィールドは次の順番に並んでいる: .RS .IP SEMMSL 8 .\"O The maximum semaphores per semaphore set. -¥»¥Þ¥Õ¥©½¸¹ç¤´¤È¤Î¥»¥Þ¥Õ¥©¿ô¤ÎºÇÂçÃÍ¡£ +セマフォ集合ごとのセマフォ数の最大値。 .IP SEMMNS 8 .\"O A system-wide limit on the number of semaphores in all semaphore sets. -¥·¥¹¥Æ¥àÁ´ÂΤǤΡ¢Á´¤Æ¤Î¥»¥Þ¥Õ¥©½¸¹ç¤Ë¤ª¤±¤ë¥»¥Þ¥Õ¥©¿ô¤ÎÀ©¸Â¡£ +システム全体での、全てのセマフォ集合におけるセマフォ数の制限。 .IP SEMOPM 8 .\"O The maximum number of operations that may be specified in a .\"O .BR semop (2) .\"O call. .BR semop (2) -¥³¡¼¥ë¤Ë»ØÄꤵ¤ì¤ë¥ª¥Ú¥ì¡¼¥·¥ç¥ó¿ô¤ÎºÇÂçÃÍ¡£ +コールに指定されるオペレーション数の最大値。 .IP SEMMNI 8 .\"O A system-wide limit on the maximum number of semaphore identifiers. -¥·¥¹¥Æ¥àÁ´ÂΤǤΥ»¥Þ¥Õ¥©¼±Ê̻ҤκÇÂçÃÍ¡£ +システム全体でのセマフォ識別子の最大値。 .RE .TP .I /proc/sys/kernel/sg-big-buff .\"O This file .\"O shows the size of the generic SCSI device (sg) buffer. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢ÈÆÍÑ SCSI ¥Ç¥Ð¥¤¥¹ (sg) ¤Î¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤ÎºÇÂçÃͤòɽ¤¹¡£ +このファイルは、汎用 SCSI デバイス (sg) のバッファサイズの最大値を表す。 .\"O You can't tune it just yet, but you could change it at .\"O compile time by editing .\"O .I include/scsi/sg.h @@ -3755,46 +3755,46 @@ panic .\"O the value of .\"O .BR SG_BIG_BUFF . .\"O However, there shouldn't be any reason to change this value. -º£¤Ï¤³¤ì¤òÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¤¬¡¢ -¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +今はこれを変更することはできないが、 +コンパイル時に .I include/scsi/sg.h -¤òÊÔ½¸¤·¤Æ +を編集して .B SG_BIG_BUFF -¤ÎÃͤòÊѤ¨¤ì¤ÐÊѹ¹¤Ç¤­¤ë¡£ -¤¿¤À¤·¡¢¤³¤ÎÃͤòÊѹ¹¤¹¤ëÍýͳ¤Ï¤Ê¤¤¤À¤í¤¦¡£ +の値を変えれば変更できる。 +ただし、この値を変更する理由はないだろう。 .TP .I /proc/sys/kernel/shmall .\"O This file .\"O contains the system-wide limit on the total number of pages of .\"O System V shared memory. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï System V ¶¦Í­¥á¥â¥ê¤ÎÁí¥Ú¡¼¥¸¿ô¤Î -¥·¥¹¥Æ¥àÁ´ÂΤǤÎÀ©¸Â¤¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ +このファイルには System V 共有メモリの総ページ数の +システム全体での制限が書かれている。 .TP .I /proc/sys/kernel/shmmax .\"O This file .\"O can be used to query and set the run-time limit .\"O on the maximum (System V IPC) shared memory segment size that can be .\"O created. -¤³¤Î¥Õ¥¡¥¤¥ë¤òÄ̤¸¤Æ¡¢(System V IPC) ¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤òºîÀ®¤¹¤ë¤È¤­¤Î -ºÇÂ祵¥¤¥º¤Î¼Â¹Ô»þ¾å¸Â (run-time limit) ¤ò¼èÆÀ¤Þ¤¿¤ÏÀßÄê¤Ç¤­¤ë¡£ +このファイルを通じて、(System V IPC) 共有メモリセグメントを作成するときの +最大サイズの実行時上限 (run-time limit) を取得または設定できる。 .\"O Shared memory segments up to 1GB are now supported in the .\"O kernel. .\"O This value defaults to .\"O .BR SHMMAX . -¸½ºß¤Ï 1GB ¤Þ¤Ç¤Î¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤¬ -¥«¡¼¥Í¥ë¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ÎÃͤΥǥե©¥ë¥È¤Ï +現在は 1GB までの共有メモリセグメントが +カーネルでサポートされている。 +この値のデフォルトは .B SHMMAX -¤Ç¤¢¤ë¡£ +である。 .TP .I /proc/sys/kernel/shmmni .\"O (available in Linux 2.4 and onwards) -(Linux 2.4 °Ê¹ß¤Ç»ÈÍѲÄǽ) +(Linux 2.4 以降で使用可能) .\"O This file .\"O specifies the system-wide maximum number of System V shared memory .\"O segments that can be created. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¥·¥¹¥Æ¥àÁ´ÂΤǺîÀ®²Äǽ¤Ê -System V ¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¿ô¤ò»ØÄꤹ¤ë¡£ +このファイルは、システム全体で作成可能な +System V 共有メモリセグメント数を指定する。 .TP .I /proc/sys/kernel/sysrq .\"O This file controls the functions allowed to be invoked by the SysRq key. @@ -3803,13 +3803,13 @@ System V .\"O (in older kernel versions, SysRq was disabled by default, .\"O and you were required to specifically enable it at run-time, .\"O but this is not the case any more). -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢SysRq ¥­¡¼¤Ë¤è¤êµ¯Æ°¤¬µö²Ä¤µ¤ì¤Æ¤¤¤ë´Ø¿ô·²¤òÀ©¸æ¤¹¤ë -¤â¤Î¤Ç¤¢¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¤Ï 1 ¤Ç¤¢¤ê¡¢ -¤³¤ì¤Ïµ¯¤³¤êÆÀ¤ëÁ´¤Æ¤Î SysRq ¥ê¥¯¥¨¥¹¥È¤¬µö²Ä¤µ¤ì¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë -(¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢SysRq ¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢ -¼Â¹Ô»þ¤ËÌÀ¼¨Åª¤ËÍ­¸ú¤Ë¤¹¤ëɬÍפ¬¤¢¤Ã¤¿¤¬¡¢º£¤Ï¤½¤¦¤Ç¤Ï¤Ê¤¤)¡£ +このファイルは、SysRq キーにより起動が許可されている関数群を制御する +ものである。デフォルトでは、ファイルの内容は 1 であり、 +これは起こり得る全ての SysRq リクエストが許可されることを意味する +(古いバージョンのカーネルでは、SysRq はデフォルトでは無効になっており、 +実行時に明示的に有効にする必要があったが、今はそうではない)。 .\"O Possible values in this file are: -¤³¤Î¥Õ¥¡¥¤¥ë¤Ç»ØÄê²Äǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ꡣ +このファイルで指定可能な値は以下の通り。 .\"O 0 - disable sysrq completely .\"O 1 - enable all functions of sysrq @@ -3822,60 +3822,60 @@ System V .\"O 64 - enable signalling of processes (term, kill, oom-kill) .\"O 128 - allow reboot/poweroff .\"O 256 - allow nicing of all real-time tasks - 0 - sysrq ¤ò´°Á´¤Ë̵¸ú¤Ë¤¹¤ë - 1 - sysrq ¤ÎÁ´¤Æ¤Î´Ø¿ô¤òÍ­¸ú¤Ë¤¹¤ë - >1 - µö²Ä¤¹¤ë sysrq ´Ø¿ô¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¡£ÆâÌõ¤Ï°Ê²¼¤ÎÄ̤ꡣ - 2 - ¥³¥ó¥½¡¼¥ë¤Î¥í¥°¡¦¥ì¥Ù¥ë¤ÎÀ©¸æ¤òÍ­¸ú¤Ë¤¹¤ë - 4 - ¥­¡¼¥Ü¡¼¥É¤ÎÀ©¸æ¤òÍ­¸ú¤Ë¤¹¤ë (SAK, unraw) - 8 - ¥×¥í¥»¥¹¤Ê¤É¤Î¥Ç¥Ð¥Ã¥°¡¦¥À¥ó¥×¤òÍ­¸ú¤Ë¤¹¤ë - 16 - sync ¥³¥Þ¥ó¥É¤òÍ­¸ú¤Ë¤¹¤ë - 32 - Æɤ߽Ф·ÀìÍѤǤκƥޥ¦¥ó¥È¤òÍ­¸ú¤Ë¤¹¤ë - 64 - ¥×¥í¥»¥¹¤Ø¤Î¥·¥°¥Ê¥ëȯ¹Ô¤òÍ­¸ú¤Ë¤¹¤ë (term, kill, oom-kill) - 128 - ¥ê¥Ö¡¼¥È/ÅŸ»¥ª¥Õ¤òµö²Ä¤¹¤ë - 256 - Á´¤Æ¤Î¥ê¥¢¥ë¥¿¥¤¥à¡¦¥¿¥¹¥¯¤Î nice ÃͤÎÊѹ¹¤òµö²Ä¤¹¤ë + 0 - sysrq を完全に無効にする + 1 - sysrq の全ての関数を有効にする + >1 - 許可する sysrq 関数のビットマスク。内訳は以下の通り。 + 2 - コンソールのログ・レベルの制御を有効にする + 4 - キーボードの制御を有効にする (SAK, unraw) + 8 - プロセスなどのデバッグ・ダンプを有効にする + 16 - sync コマンドを有効にする + 32 - 読み出し専用での再マウントを有効にする + 64 - プロセスへのシグナル発行を有効にする (term, kill, oom-kill) + 128 - リブート/電源オフを許可する + 256 - 全てのリアルタイム・タスクの nice 値の変更を許可する .\"O This file is only present if the .\"O .B CONFIG_MAGIC_SYSRQ .\"O kernel configuration option is enabled. .\"O For further details see the kernel source file .\"O .IR Documentation/sysrq.txt . -¥«¡¼¥Í¥ëÀßÄꥪ¥×¥·¥ç¥ó +カーネル設定オプション .B CONFIG_MAGIC_SYSRQ -¤¬Í­¸ú¤Ê¾ì¹ç¤Î¤ß¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¸ºß¤¹¤ë¡£ -¾ÜºÙ¤Ï¡¢¥«¡¼¥Í¥ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë +が有効な場合のみ、このファイルは存在する。 +詳細は、カーネルソースファイル .I Documentation/sysrq.txt -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .TP .I /proc/sys/kernel/version .\"O This file contains a string like: -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Êʸ»úÎ󤬽ñ¤«¤ì¤Æ¤¤¤ë: +このファイルには、以下のような文字列が書かれている: #5 Wed Feb 25 21:49:24 MET 1998 .\"O The "#5" means that .\"O this is the fifth kernel built from this source base and the .\"O date behind it indicates the time the kernel was built. -\&"#5" ¤Ï¤³¤Î¥½¡¼¥¹¤Ç¹½ÃÛ¤µ¤ì¤¿ 5 ÈÖÌܤΥ«¡¼¥Í¥ë¤Ç¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -¤½¤Î¸å¤Ë¤¢¤ëÆüÉդϥ«¡¼¥Í¥ë¤¬¹½ÃÛ¤µ¤ì¤¿»þ¹ï¤òɽ¤¹¡£ +\&"#5" はこのソースで構築された 5 番目のカーネルであることを意味する。 +その後にある日付はカーネルが構築された時刻を表す。 .TP .\"O .IR /proc/sys/kernel/threads-max " (since Linux 2.3.11)" -.IR /proc/sys/kernel/threads-max " (Linux 2.3.11 °Ê¹ß)" +.IR /proc/sys/kernel/threads-max " (Linux 2.3.11 以降)" .\"O This file specifies the system-wide limit on the number of .\"O threads (tasks) that can be created on the system. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¥·¥¹¥Æ¥àÁ´ÂΤǺîÀ®²Äǽ¤Ê¥¹¥ì¥Ã¥É¿ô -(¥¿¥¹¥¯¿ô) ¤Î¾å¸Â¤ò»ØÄꤹ¤ë¡£ +このファイルは、システム全体で作成可能なスレッド数 +(タスク数) の上限を指定する。 .TP .\"O .IR /proc/sys/kernel/zero-paged " (PowerPC only) " -.IR /proc/sys/kernel/zero-paged " (PowerPC ¤Î¤ß) " +.IR /proc/sys/kernel/zero-paged " (PowerPC のみ) " .\"O This file .\"O contains a flag. .\"O When enabled (nonzero), Linux-PPC will pre-zero pages in .\"O the idle loop, possibly speeding up get_free_pages. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥Õ¥é¥°¤ò´Þ¤à¡£ -(0 °Ê³°¤ÎÃͤÇ) Í­¸ú¤µ¤ì¤¿¾ì¹ç¡¢Linux-PPC ¤Ï¥¢¥¤¥É¥ë¥ë¡¼¥×¤Ç -pre-zero page ¤ò¹Ô¤¦¤Î¤Ç¡¢get_free_pages ¤Î®ÅÙ¤¬¸þ¾å¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +このファイルはフラグを含む。 +(0 以外の値で) 有効された場合、Linux-PPC はアイドルループで +pre-zero page を行うので、get_free_pages の速度が向上する可能性がある。 .\"Osato: -.\"Osato: pre-zero page ¤ÎÌõ¸ì¤¬Ê¬¤«¤é¤Ê¤¤¡£ +.\"Osato: pre-zero page の訳語が分からない。 .\"Osato: .TP .I /proc/sys/net @@ -3884,12 +3884,12 @@ pre-zero page .\"O .BR tcp (7) .\"O and .\"O .BR ip (7). -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¥Í¥Ã¥È¥ï¡¼¥¯´Ø·¸¤Î¾ðÊó¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤Î¤¤¤¯¤Ä¤«¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +このディレクトリにはネットワーク関係の情報が入っている。 +このディレクトリにあるファイルのいくつかについては、 .BR tcp (7) -¤ä +や .BR ip (7) -¤ËÀâÌÀ¤¬¤¢¤ë¡£ +に説明がある。 .TP .I /proc/sys/net/core/somaxconn .\"O This file defines a ceiling value for the @@ -3899,39 +3899,39 @@ pre-zero page .\"O see the .\"O .BR listen (2) .\"O manual page for details. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï +このファイルは .BR listen (2) -¤Î +の .I backlog -°ú¤­¿ô¤Î¾å¸ÂÃͤòµ¬Äꤹ¤ë¡£ -¾ÜºÙ¤Ï +引き数の上限値を規定する。 +詳細は .BR listen (2) -¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¡£ +のマニュアルページを参照。 .TP .I /proc/sys/proc .\"O This directory may be empty. -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¤¿¤Ö¤ó¶õ¤Ç¤¢¤ë¡£ +このディレクトリはたぶん空である。 .TP .I /proc/sys/sunrpc .\"O This directory supports Sun remote procedure call for network file system .\"O (NFS). .\"O On some systems, it is not present. -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à (NFS) ¤Ø¤Î -Sun remote procedure call (±ó³Ö¼ê³¤­¸Æ¤Ó½Ð¤·) ¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ -¤³¤ì¤¬Â¸ºß¤·¤Ê¤¤¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ +このディレクトリはネットワークファイルシステム (NFS) への +Sun remote procedure call (遠隔手続き呼び出し) をサポートする。 +これが存在しないシステムもある。 .TP .I /proc/sys/vm .\"O This directory contains files for memory management tuning, buffer and .\"O cache management. -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¥á¥â¥ê´ÉÍý¤ÎÄ´À°¡¢¥Ð¥Ã¥Õ¥¡¤ä¥­¥ã¥Ã¥·¥å´ÉÍý¤Î¤¿¤á¤Î -¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¡£ +このディレクトリにはメモリ管理の調整、バッファやキャッシュ管理のための +ファイルがある。 .TP .\"O .IR /proc/sys/vm/drop_caches " (since Linux 2.6.16)" -.IR /proc/sys/vm/drop_caches " (Linux 2.6.16 °Ê¹ß)" +.IR /proc/sys/vm/drop_caches " (Linux 2.6.16 以降)" .\"O Writing to this file causes the kernel to drop clean caches, dentries and .\"O inodes from memory, causing that memory to become free. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤ß¤ò¹Ô¤¦¤³¤È¤Ç¡¢¥¯¥ê¡¼¥ó¤Ê¥­¥ã¥Ã¥·¥å¡¢dentry¡¢ -inode ¤ò¥á¥â¥ê¾å¤«¤é³°¤·¡¢¤½¤Î¥á¥â¥ê¤ò²òÊü¤¹¤ë¡£ +このファイルに書き込みを行うことで、クリーンなキャッシュ、dentry、 +inode をメモリ上から外し、そのメモリを解放する。 .\"O To free pagecache, use .\"O .IR "echo 1 > /proc/sys/vm/drop_caches" ; @@ -3939,23 +3939,23 @@ inode .\"O .IR "echo 2 > /proc/sys/vm/drop_caches" ; .\"O to free pagecache, dentries and inodes, use .\"O .IR "echo 3 > /proc/sys/vm/drop_caches" . -¥Ú¡¼¥¸¥­¥ã¥Ã¥·¥å¤ò²òÊü¤¹¤ë¤Ë¤Ï¡¢ +ページキャッシュを解放するには、 .I "echo 1 > /proc/sys/vm/drop_caches" -¤È¤¹¤ë¡£ dentry¡¢inode ¤ò²òÊü¤¹¤ë¤Ë¤Ï¡¢ +とする。 dentry、inode を解放するには、 .I "echo 2 > /proc/sys/vm/drop_caches" -¤È¤¹¤ë¡£¥Ú¡¼¥¸¥­¥ã¥Ã¥·¥å¡¢dentry¡¢inode ¤ò²òÊü¤¹¤ë¤Ë¤Ï¡¢ +とする。ページキャッシュ、dentry、inode を解放するには、 .IR "echo 3 > /proc/sys/vm/drop_caches" -¤È¤¹¤ë¡£ +とする。 .\"O Because this is a nondestructive operation and dirty objects .\"O are not freeable, the .\"O user should run .\"O .BR sync (8) .\"O first. -¤³¤ÎÁàºî¤ÏÈóÇ˲õŪ¤ÊÁàºî¤Ç¡¢¥À¡¼¥Æ¥£¤Ê (dirty) ¥ª¥Ö¥¸¥§¥¯¥È¤Ï -²òÊü¤µ¤ì¤Ê¤¤¤Î¤Ç¡¢¤³¤ÎÁàºî¤ò¹Ô¤¦ºÝ¤ÏºÇ½é¤Ë +この操作は非破壊的な操作で、ダーティな (dirty) オブジェクトは +解放されないので、この操作を行う際は最初に .BR sync (8) -¤ò¼Â¹Ô¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£ +を実行しておくべきである。 .TP .IR /proc/sys/vm/swappiness .\" The following is from Documentation/sysctl/vm.txt @@ -3964,28 +3964,28 @@ inode .\"O Higher values increase aggressiveness, lower values .\"O descrease aggressiveness. .\"O The default value is 60. -¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÃͤˤè¤ê¡¢¥«¡¼¥Í¥ë¤¬¤É¤ÎÄøÅٷ㤷¤¯¥á¥â¥ê¥Ú¡¼¥¸¤Î -¥¹¥ï¥Ã¥×¤ò¹Ô¤¦¤«¤¬À©¸æ¤µ¤ì¤ë¡£ -Â礭¤ÊÃͤۤɥ¹¥ï¥Ã¥×¤¬·ã¤·¤¯¤Ê¤ê¡¢¾®¤µ¤¤Ãͤۤɷ㤷¤¯¤Ê¤¯¤Ê¤ë¡£ -¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 60 ¤Ç¤¢¤ë¡£ +このファイルの値により、カーネルがどの程度激しくメモリページの +スワップを行うかが制御される。 +大きな値ほどスワップが激しくなり、小さい値ほど激しくなくなる。 +デフォルト値は 60 である。 .TP .\"O .IR /proc/sys/vm/legacy_va_layout " (since Linux 2.6.9)" -.IR /proc/sys/vm/legacy_va_layout " (Linux 2.6.9 °Ê¹ß)" +.IR /proc/sys/vm/legacy_va_layout " (Linux 2.6.9 以降)" .\"O .\" The following is from Documentation/filesystems/proc.txt .\"O If nonzero, this disables the new 32-bit memory-mapping layout; .\"O the kernel will use the legacy (2.4) layout for all processes. -.\" °Ê²¼¤Îµ­½Ò¤Ï Documentation/filesystems/proc.txt ¤«¤é¤Î°úÍѤǤ¢¤ë¡£ -0 °Ê³°¤Î¾ì¹ç¡¢¿·¤·¤¤ 32¥Ó¥Ã¥È¥á¥â¥ê¥Þ¥Ã¥Ô¥ó¥°ÇÛÃÖ¤¬Ìµ¸ú¤Ë¤Ê¤ê¡¢ -¥«¡¼¥Í¥ë¤ÏÁ´¤Æ¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ½¾Íè¤Î (¥«¡¼¥Í¥ë 2.4 ¤Î) ÇÛÃÖÊýË¡¤ò -»ÈÍѤ¹¤ë¡£ +.\" 以下の記述は Documentation/filesystems/proc.txt からの引用である。 +0 以外の場合、新しい 32ビットメモリマッピング配置が無効になり、 +カーネルは全てのプロセスに対して従来の (カーネル 2.4 の) 配置方法を +使用する。 .TP .\"O .IR /proc/sys/vm/oom_dump_tasks " (since Linux 2.6.25)" -.IR /proc/sys/vm/oom_dump_tasks " (Linux 2.6.25 °Ê¹ß)" +.IR /proc/sys/vm/oom_dump_tasks " (Linux 2.6.25 以降)" .\" The following is from Documentation/sysctl/vm.txt .\"O Enables a system-wide task dump (excluding kernel threads) to be .\"O produced when the kernel performs an OOM-killing. -¥«¡¼¥Í¥ë¤¬ OOM-killing ¤ò¼Â¹Ô¤¹¤ëºÝ¤Ë¡¢¥·¥¹¥Æ¥àÁ´ÂΤΥ¿¥¹¥¯¡¦¥À¥ó¥× -(¥«¡¼¥Í¥ë¥¹¥ì¥Ã¥É¤ò½ü¤¯) ¤òÀ¸À®¤¹¤ë¤«¤òÀ©¸æ¤¹¤ë¡£ +カーネルが OOM-killing を実行する際に、システム全体のタスク・ダンプ +(カーネルスレッドを除く) を生成するかを制御する。 .\"O The dump includes the following information .\"O for each task (thread, process): .\"O thread ID, real user ID, thread group ID (process ID), @@ -3994,93 +3994,93 @@ inode .\"O oom_adj score (see the description of .\"O .IR /proc/[pid]/oom_adj ), .\"O and command name. -¥À¥ó¥×¤Ë¤Ï¡¢¥¿¥¹¥¯ (¥¹¥ì¥Ã¥É¡¢¥×¥í¥»¥¹) Ëè¤Ë°Ê²¼¤Î¾ðÊ󤬽ÐÎϤµ¤ì¤ë: -¥¹¥ì¥Ã¥É ID¡¢¼Â¥æ¡¼¥¶ ID¡¢¥¹¥ì¥Ã¥É¥°¥ë¡¼¥× ID (¥×¥í¥»¥¹ ID)¡¢ -²¾ÁÛ¥á¥â¥ê¥µ¥¤¥º¡¢Resident Set Size (¼Â¥á¥â¥ê¾å¤Ë¸ºß¤¹¤ë¥Ú¡¼¥¸¥µ¥¤¥º)¡¢ -¥¿¥¹¥¯¤¬¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤¿ CPU¡¢ -oom_adj ¥¹¥³¥¢ +ダンプには、タスク (スレッド、プロセス) 毎に以下の情報が出力される: +スレッド ID、実ユーザ ID、スレッドグループ ID (プロセス ID)、 +仮想メモリサイズ、Resident Set Size (実メモリ上に存在するページサイズ)、 +タスクがスケジューリングされた CPU、 +oom_adj スコア .RI ( /proc/[pid]/oom_adj -¤ÎÀâÌÀ¤ò»²¾È)¡¢¥³¥Þ¥ó¥É̾¡£ +の説明を参照)、コマンド名。 .\"O This is helpful to determine why the OOM-killer was invoked .\"O and to identify the rogue task that caused it. -¤³¤Î¥À¥ó¥×¾ðÊó¤Ï¡¢¤Ê¤¼ OOM-killer ¤¬µ¯Æ°¤µ¤ì¤¿¤«¤òÃΤꡢ -¤½¤Î¸¶°ø¤È¤Ê¤Ã¤¿¤Ê¤é¤º¼Ô¤Î¥¿¥¹¥¯¤òÆÃÄꤹ¤ë¤Î¤ËÌò¤ËΩ¤Ä¡£ +このダンプ情報は、なぜ OOM-killer が起動されたかを知り、 +その原因となったならず者のタスクを特定するのに役に立つ。 .\"O If this contains the value zero, this information is suppressed. .\"O On very large systems with thousands of tasks, .\"O it may not be feasible to dump the memory state information for each one. .\"O Such systems should not be forced to incur a performance penalty in .\"O OOM situations when the information may not be desired. -¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÆâÍƤ¬ÃÍ 0 ¤Î¾ì¹ç¡¢¥À¥ó¥×¾ðÊó¤Î½ÐÎϤϹԤï¤ì¤Ê¤¤¡£ -¥¿¥¹¥¯¤¬²¿Àé¤â¤¢¤ëÈó¾ï¤ËµðÂç¤Ê¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -³Æ¡¹¤Î¥¿¥¹¥¯¤Ë¤Ä¤¤¤Æ¥á¥â¥ê¾õÂÖ¤ò¥À¥ó¥×¤¹¤ë¤Î¤ÏŬÀڤǤʤ¤¤«¤â¤·¤ì¤Ê¤¤¡£ -¤½¤Î¤è¤¦¤Ê¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥À¥ó¥×¾ðÊó¤¬É¬ÍפǤâ¤Ê¤¤¤È¤­¤Ë -¥á¥â¥êÉÔ­ (OOM) ¤Î¾õ¶·¤ÇÀ­Ç½Ì̤ÎÉÔÍø±×¤¬µ¯¤³¤é¤Ê¤¤¤è¤¦¤Ë¤¹¤Ù¤­¤À¤í¤¦¡£ +このファイルの内容が値 0 の場合、ダンプ情報の出力は行われない。 +タスクが何千もある非常に巨大なシステムでは、 +各々のタスクについてメモリ状態をダンプするのは適切でないかもしれない。 +そのようなシステムでは、ダンプ情報が必要でもないときに +メモリ不足 (OOM) の状況で性能面の不利益が起こらないようにすべきだろう。 .\"O If this is set to nonzero, this information is shown whenever the .\"O OOM-killer actually kills a memory-hogging task. -¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÆâÍƤ¬ 0 °Ê³°¤Î¾ì¹ç¡¢ -OOM-killer ¤¬¼ÂºÝ¤Ë¥á¥â¥ê¤òÀêÍ­¤·¤¿¥¿¥¹¥¯¤ò kill ¤¹¤ëÅÙ¤Ë -¥À¥ó¥×¾ðÊ󤬽ÐÎϤµ¤ì¤ë¡£ +このファイルの内容が 0 以外の場合、 +OOM-killer が実際にメモリを占有したタスクを kill する度に +ダンプ情報が出力される。 .\"O The default value is 0. -¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 0 ¤Ç¤¢¤ë¡£ +デフォルト値は 0 である。 .TP .\"O .IR /proc/sys/vm/oom_kill_allocating_task " (since Linux 2.6.24)" -.IR /proc/sys/vm/oom_kill_allocating_task " (Linux 2.6.24 °Ê¹ß)" +.IR /proc/sys/vm/oom_kill_allocating_task " (Linux 2.6.24 以降)" .\" The following is from Documentation/sysctl/vm.txt .\"O This enables or disables killing the OOM-triggering task in .\"O out-of-memory situations. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¥á¥â¥êÉÔ­ (OOM) ¤Î¾õ¶·¤¬µ¯¤³¤Ã¤¿ºÝ¤Ë¡¢ -¥á¥â¥êÉÔ­¤Î¤­¤Ã¤«¤±¤È¤Ê¤Ã¤¿¥¿¥¹¥¯¤ò kill ¤¹¤ë¤«¤É¤¦¤«¤òÀ©¸æ¤¹¤ë¡£ +このファイルは、メモリ不足 (OOM) の状況が起こった際に、 +メモリ不足のきっかけとなったタスクを kill するかどうかを制御する。 .\"O If this is set to zero, the OOM-killer will scan through the entire .\"O tasklist and select a task based on heuristics to kill. .\"O This normally selects a rogue memory-hogging task that .\"O frees up a large amount of memory when killed. -¤³¤Î¥Õ¥¡¥¤¥ë¤¬ 0 ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ -OOM-killer ¤Ï¥¿¥¹¥¯¥ê¥¹¥ÈÁ´ÂΤò¥¹¥­¥ã¥ó¤·¡¢·Ð¸³Â§¤Ë´ð¤Å¤­ -kill ¤¹¤ë¥¿¥¹¥¯¤òÁªÂò¤¹¤ë¡£ -Ä̾ï¤Ï¡¢kill ¤·¤¿¾ì¹ç¤Ë¿¤¯¤Î¥á¥â¥ê¤¬²òÊü¤Ç¤­¤ë¡¢ -¤Ê¤é¤º¼Ô¤Î¥á¥â¥êÀêÍ­¥¿¥¹¥¯¤¬ÁªÂò¤µ¤ì¤ë¡£ +このファイルが 0 に設定された場合、 +OOM-killer はタスクリスト全体をスキャンし、経験則に基づき +kill するタスクを選択する。 +通常は、kill した場合に多くのメモリが解放できる、 +ならず者のメモリ占有タスクが選択される。 .\"O If this is set to nonzero, the OOM-killer simply kills the task that .\"O triggered the out-of-memory condition. .\"O This avoids a possibly expensive tasklist scan. -¤³¤Î¥Õ¥¡¥¤¥ë¤¬ 0 °Ê³°¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ -OOM-killer ¤Ï¥á¥â¥êÉÔ­¤Î¾õ¶·¤¬È¯À¸¤¹¤ë¤­¤Ã¤«¤±¤È¤Ê¤Ã¤¿¥¿¥¹¥¯¤ò -ñ½ã¤Ë kill ¤¹¤ë¤À¤±¤Ç¤¢¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢¤¿¤¤¤Æ¤¤¤Ï½Å¤¤½èÍý¤È¤Ê¤ë¥¿¥¹¥¯¥ê¥¹¥È¤Î¥¹¥­¥ã¥ó¤ò²óÈò¤Ç¤­¤ë¡£ +このファイルが 0 以外に設定された場合、 +OOM-killer はメモリ不足の状況が発生するきっかけとなったタスクを +単純に kill するだけである。 +これにより、たいていは重い処理となるタスクリストのスキャンを回避できる。 .\"O If .\"O .I /proc/sys/vm/panic_on_oom .\"O is nonzero, it takes precedence over whatever value is used in .\"O .IR /proc/sys/vm/oom_kill_allocating_task . .I /proc/sys/vm/panic_on_oom -¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢ +が 0 以外の場合、 .I /proc/sys/vm/oom_kill_allocating_task -¤Ë¤É¤Î¤è¤¦¤ÊÃͤ¬Æþ¤Ã¤Æ¤¤¤¿¤È¤·¤Æ¤â¡¢ +にどのような値が入っていたとしても、 .I /proc/sys/vm/panic_on_oom -¤ÎÊý¤¬Í¥À褵¤ì¤ë¡£ +の方が優先される。 .\"O The default value is 0. -¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 0 ¤Ç¤¢¤ë¡£ +デフォルト値は 0 である。 .TP .I /proc/sys/vm/overcommit_memory .\"O This file contains the kernel virtual memory accounting mode. .\"O Values are: -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¥«¡¼¥Í¥ë²¾ÁÛ¥á¥â¥ê¤Î¥¢¥«¥¦¥ó¥È¥â¡¼¥É¤¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ -Ãͤϰʲ¼¤ÎÄ̤ê: +このファイルにはカーネル仮想メモリのアカウントモードが書かれている。 +値は以下の通り: .RS .IP .\"O 0: heuristic overcommit (this is the default) -0: ȯ¸«Åª¤Ê¥ª¡¼¥Ð¡¼¥³¥ß¥Ã¥È (heuristic overcommit) (¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë) +0: 発見的なオーバーコミット (heuristic overcommit) (これがデフォルトである) .br .\"O 1: always overcommit, never check -1: ¾ï¤Ë¥ª¡¼¥Ð¡¼¥³¥ß¥Ã¥È¤·¡¢¥Á¥§¥Ã¥¯¤·¤Ê¤¤¡£ +1: 常にオーバーコミットし、チェックしない。 .br .\"O 2: always check, never overcommit -2: ¾ï¤Ë¥Á¥§¥Ã¥¯¤·¡¢¥ª¡¼¥Ð¡¼¥³¥ß¥Ã¥È¤·¤Ê¤¤¡£ +2: 常にチェックし、オーバーコミットしない。 .RE .IP .\"O In mode 0, calls of @@ -4089,49 +4089,49 @@ OOM-killer .\"O .B MAP_NORESERVE .\"O are not checked, and the default check is very weak, .\"O leading to the risk of getting a process "OOM-killed". -¥â¡¼¥É 0 ¤Ç¤Ï¡¢ +モード 0 では、 .B MAP_NORESERVE -¤òÀßÄꤷ¤Æ¸Æ¤Ó½Ð¤µ¤ì¤¿ +を設定して呼び出された .BR mmap (2) -¤Ï¥Á¥§¥Ã¥¯¤µ¤ì¤Ê¤¤¡£ -¤Þ¤¿¥Ç¥Õ¥©¥ë¥È¤Î¥Á¥§¥Ã¥¯¤Ï¤È¤Æ¤âÀȼå¤Ç¡¢ -¥×¥í¥»¥¹¤ò "OOM-kill" ¤·¤Æ¤·¤Þ¤¦¥ê¥¹¥¯¤ò°ú¤­µ¯¤³¤¹¡£ +はチェックされない。 +またデフォルトのチェックはとても脆弱で、 +プロセスを "OOM-kill" してしまうリスクを引き起こす。 .\"O Under Linux 2.4 any nonzero value implies mode 1. -Linux 2.4 ¤Ç¤Ï 0 °Ê³°¤ÎÃͤϥ⡼¥É 1 ¤ò°ÕÌ£¤¹¤ë¡£ +Linux 2.4 では 0 以外の値はモード 1 を意味する。 .\"O In mode 2 (available since Linux 2.6), the total virtual address space .\"O on the system is limited to (SS + RAM*(r/100)), .\"O where SS is the size of the swap space, and RAM .\"O is the size of the physical memory, and r is the contents of the file .\"O .IR /proc/sys/vm/overcommit_ratio . -(Linux 2.6 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ê) ¥â¡¼¥É 2 ¤Ç¤Ï¡¢ -¥·¥¹¥Æ¥à¾å¤Î²¾ÁÛ¥¢¥É¥ì¥¹¶õ´Ö¤Î¹ç·×¤¬ (SS + RAM*(r/100)) ¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤³¤Ç¡¢SS ¤Ï¥¹¥ï¥Ã¥×¶õ´Ö¤Î¥µ¥¤¥º¡¢ -RAM ¤ÏʪÍý¥á¥â¥ê¤Î¥µ¥¤¥º¡¢r ¤Ï¥Õ¥¡¥¤¥ë +(Linux 2.6 以降で利用可能な) モード 2 では、 +システム上の仮想アドレス空間の合計が (SS + RAM*(r/100)) に制限されている。 +ここで、SS はスワップ空間のサイズ、 +RAM は物理メモリのサイズ、r はファイル .I /proc/sys/vm/overcommit_ratio -¤ÎÆâÍƤǤ¢¤ë¡£ +の内容である。 .TP .I /proc/sys/vm/overcommit_ratio .\"O See the description of .\"O .IR /proc/sys/vm/overcommit_memory . .I /proc/sys/vm/overcommit_memory -¤ÎÀâÌÀ¤ò»²¾È¤¹¤ë¤³¤È¡£ +の説明を参照すること。 .TP .\"O .IR /proc/sys/vm/panic_on_oom " (since Linux 2.6.18)" -.IR /proc/sys/vm/panic_on_oom " (Linux 2.6.18 °Ê¹ß)" +.IR /proc/sys/vm/panic_on_oom " (Linux 2.6.18 以降)" .\" The following is adapted from Documentation/sysctl/vm.txt .\"O This enables or disables a kernel panic in .\"O an out-of-memory situation. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¥á¥â¥êÉÔ­»þ¤Ë¥«¡¼¥Í¥ë¥Ñ¥Ë¥Ã¥¯¤ò -µ¯¤³¤¹¤«µ¯¤³¤µ¤Ê¤¤¤«¤òÀ©¸æ¤¹¤ë¡£ +このファイルは、メモリ不足時にカーネルパニックを +起こすか起こさないかを制御する。 .\"O If this file is set to the value 0, .\"O the kernel's OOM-killer will kill some rogue process. .\"O Usually, the OOM-killer is able to kill a rogue process and the .\"O system will survive. -¤³¤Î¥Õ¥¡¥¤¥ë¤ËÃÍ 0 ¤òÀßÄꤹ¤ë¤È¡¢ -¥«¡¼¥Í¥ë¤Î OOM-killer ¤¬¤Ê¤é¤º¼Ô¤Î¥×¥í¥»¥¹¤ò kill ¤¹¤ë¡£ -ÉáÄ̤ϡ¢OOM-killer ¤¬¤Ê¤é¤º¼Ô¤Î¥×¥í¥»¥¹¤ò kill ¤¹¤ë¤³¤È¤¬¤Ç¤­¡¢ -¥·¥¹¥Æ¥à¤Ï²¿¤È¤«Æ°¤­Â³¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +このファイルに値 0 を設定すると、 +カーネルの OOM-killer がならず者のプロセスを kill する。 +普通は、OOM-killer がならず者のプロセスを kill することができ、 +システムは何とか動き続けることができる。 .\"O If this file is set to the value 1, .\"O then the kernel normally panics when out-of-memory happens. @@ -4147,37 +4147,37 @@ RAM .\"O because other nodes' memory may be free, .\"O this means the system as a whole may not have reached .\"O an out-of-memory situation yet. -¤³¤Î¥Õ¥¡¥¤¥ë¤ËÃÍ 1 ¤òÀßÄꤹ¤ë¤È¡¢ -¥á¥â¥êÉÔ­¤Î¾õ¶·¤¬È¯À¸¤¹¤ë¤È¡¢¥«¡¼¥Í¥ë¤ÏÉáÄ̤ϥѥ˥寤¹¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢¥×¥í¥»¥¹¤¬ -¥á¥â¥ê¥Ý¥ê¥·¡¼ +このファイルに値 1 を設定すると、 +メモリ不足の状況が発生すると、カーネルは普通はパニックする。 +しかしながら、プロセスが +メモリポリシー .RB ( mbind (2) -¤Î +の .BR MPOL_BIND ) -¤ä cpusets +や cpusets .RB ( cpuset (7)) -¤ò»È¤Ã¤ÆÆÃÄê¤Î¥Î¡¼¥É¤Ø¤Î¥á¥â¥ê³ä¤êÅö¤Æ¤òÀ©¸Â¤·¤Æ¤¤¤Æ¡¢ -¤½¤ì¤é¤Î¥Î¡¼¥É¤Ç¥á¥â¥ê¸Ï³é¾õÂ֤˻ê¤Ã¤¿¾ì¹ç¤Ï¡¢ -°ì¤Ä¤Î¥×¥í¥»¥¹¤¬ OOM-killer ¤Ë¤è¤ê kill ¤µ¤ì¤ë¤À¤±¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤Î¾ì¹ç¤Ë¤Ï¡¢¥«¡¼¥Í¥ë¥Ñ¥Ë¥Ã¥¯¤ÏȯÀ¸¤·¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¡¢Â¾¤Î¥Î¡¼¥É¤Î¥á¥â¥ê¤Ë¤Ï¶õ¤­¤¬¤¢¤ë¤«¤â¤·¤ì¤º¡¢ -¤·¤¿¤¬¤Ã¤Æ¡¢¥·¥¹¥Æ¥àÁ´ÂΤȤ·¤Æ¤Ï¥á¥â¥êÉÔ­¤Î¾õ¶·¤Ë¤Þ¤À㤷¤Æ¤¤¤Ê¤¤¤«¤â -¤·¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +を使って特定のノードへのメモリ割り当てを制限していて、 +それらのノードでメモリ枯渇状態に至った場合は、 +一つのプロセスが OOM-killer により kill されるだけかもしれない。 +この場合には、カーネルパニックは発生しない。 +なぜなら、他のノードのメモリには空きがあるかもしれず、 +したがって、システム全体としてはメモリ不足の状況にまだ達していないかも +しれないからである。 .\"O If this file is set to the value 2, .\"O the kernel always panics when an out-of-memory condition occurs. -¤³¤Î¥Õ¥¡¥¤¥ë¤ËÃÍ 2 ¤òÀßÄꤹ¤ë¤È¡¢ -¥á¥â¥êÉÔ­¤Î¾õ¶·¤¬È¯À¸¤¹¤ë¤È¥«¡¼¥Í¥ë¤Ï¾ï¤Ë¥Ñ¥Ë¥Ã¥¯¤òµ¯¤³¤¹¡£ +このファイルに値 2 を設定すると、 +メモリ不足の状況が発生するとカーネルは常にパニックを起こす。 .\"O The default value is 0. .\"O 1 and 2 are for failover of clustering. .\"O Select either according to your policy of failover. -¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 0 ¤Ç¤¢¤ë¡£ -1 ¤È 2 ¤Ï¥¯¥é¥¹¥¿¥ê¥ó¥°¤Î¥Õ¥§¥¤¥ë¥ª¡¼¥Ð¡¼ÍѤǤ¢¤ë¡£ -¥Õ¥§¥¤¥ë¥ª¡¼¥Ð¡¼¤ÎÊý¿Ë¤Ë±þ¤¸¤Æ¤É¤Á¤é¤«¤ÎÃͤòÁªÂò¤¹¤ë¤³¤È¡£ +デフォルト値は 0 である。 +1 と 2 はクラスタリングのフェイルオーバー用である。 +フェイルオーバーの方針に応じてどちらかの値を選択すること。 .TP .\"O .IR /proc/sysrq-trigger " (since Linux 2.4.21)" -.IR /proc/sysrq-trigger " (Linux 2.4.21 °Ê¹ß)" +.IR /proc/sysrq-trigger " (Linux 2.4.21 以降)" .\"O Writing a character to this file triggers the same SysRq function as .\"O typing ALT-SysRq- (see the description of .\"O .IR /proc/sys/kernel/sysrq ). @@ -4185,56 +4185,56 @@ RAM .\"O .IR root . .\"O For further details see the kernel source file .\"O .IR Documentation/sysrq.txt . -¤³¤Î¥Õ¥¡¥¤¥ë¤Ëʸ»ú character ¤ò½ñ¤­¹þ¤à¤È¡¢ -¥­¡¼¥Ü¡¼¥É¤«¤é ALT-SysRq- ¤òÆþÎϤ·¤¿¾ì¹ç¤È -Ʊ¤¸ SysRq ´Ø¿ô¤¬µ¯Æ°¤µ¤ì¤ë +このファイルに文字 character を書き込むと、 +キーボードから ALT-SysRq- を入力した場合と +同じ SysRq 関数が起動される .RI ( /proc/sys/kernel/sysrq -¤ÎÀâÌÀ¤ò»²¾È)¡£ -Ä̾¤³¤Î¥Õ¥¡¥¤¥ë¤Ø½ñ¤­¹þ¤ß¤¬¤Ç¤­¤ë¤Î¤Ï +の説明を参照)。 +通常、このファイルへ書き込みができるのは .I root -¤À¤±¤Ç¤¢¤ë¡£¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥«¡¼¥Í¥ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Î +だけである。詳細については、カーネルソースファイルの .I Documentation/sysrq.txt -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .TP .I /proc/sysvipc .\"O Subdirectory containing the pseudo-files .\"O .IR msg ", " sem " and " shm "." -µ¿»÷¥Õ¥¡¥¤¥ë +疑似ファイル .IR msg ", " sem ", " shm -¤ò´Þ¤à¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¡£ +を含むサブディレクトリ。 .\"O These files list the System V Interprocess Communication (IPC) objects .\"O (respectively: message queues, semaphores, and shared memory) .\"O that currently exist on the system, .\"O providing similar information to that available via .\"O .BR ipcs (1). -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¸½ºß¥·¥¹¥Æ¥à¾å¤Ë¸ºß¤¹¤ë -System V ¥×¥í¥»¥¹´ÖÄÌ¿® (Interprocess Communication, IPC) ¥ª¥Ö¥¸¥§¥¯¥È -(¤½¤ì¤¾¤ì: ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¡¢¥»¥Þ¥Õ¥©¡¢¶¦Í­¥á¥â¥ê) -¤Î¥ê¥¹¥È¤Ç¤¢¤ê¡¢ +これらのファイルは、現在システム上に存在する +System V プロセス間通信 (Interprocess Communication, IPC) オブジェクト +(それぞれ: メッセージキュー、セマフォ、共有メモリ) +のリストであり、 .BR ipcs (1) -¤Ç¼èÆÀ¤Ç¤­¤ë¾ðÊó¤ÈƱ¤¸¤â¤Î¤òÄ󶡤¹¤ë¡£ +で取得できる情報と同じものを提供する。 .\"O These files have headers and are formatted (one IPC object per line) .\"O for easy understanding. -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¥Ø¥Ã¥À¤¬¤¢¤ê¡¢Íý²ò¤·¤ä¤¹¤¤¤è¤¦¤Ë -(1 ¹Ô¤Ë¤Ä¤­ 1 ¸Ä¤Î IPC ¥ª¥Ö¥¸¥§¥¯¥È¤Î·Á¼°¤Ç) ¥Õ¥©¡¼¥Þ¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¡£ +これらのファイルにはヘッダがあり、理解しやすいように +(1 行につき 1 個の IPC オブジェクトの形式で) フォーマットされている。 .\"O .BR svipc (7) .\"O provides further background on the information shown by these files. .BR svipc (7) -¤Ë¤Ï¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤«¤éʬ¤«¤ë¾ðÊó¤Î¾ÜºÙ¤ÊÇطʤ¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ +にはこれらのファイルから分かる情報の詳細な背景が書かれている。 .TP .I /proc/tty .\"O Subdirectory containing the pseudo-files and subdirectories for .\"O tty drivers and line disciplines. -µ¿»÷¥Õ¥¡¥¤¥ë¤ò´Þ¤à¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¡£ -tty ¥É¥é¥¤¥Ð¤È¥é¥¤¥óÀßÄê (line discipline) ¤Î½ñ¤«¤ì¤¿ -¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤â´Þ¤Þ¤ì¤ë¡£ +疑似ファイルを含むサブディレクトリ。 +tty ドライバとライン設定 (line discipline) の書かれた +サブディレクトリも含まれる。 .TP .I /proc/uptime .\"O This file contains two numbers: the uptime of the system (seconds), .\"O and the amount of time spent in idle process (seconds). -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï -¥·¥¹¥Æ¥àµ¯Æ°»þ¤«¤é·Ð²á¤·¤¿»þ´Ö (ÉÃ) ¤È -¥¢¥¤¥É¥ë (idle) ¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤¬¾ÃÈñ¤·¤¿»þ´Ö (ÉÃ) ¤Î 2 ¤Ä¤Î¿ô¤ò´Þ¤à¡£ +このファイルは +システム起動時から経過した時間 (秒) と +アイドル (idle) しているプロセスが消費した時間 (秒) の 2 つの数を含む。 .TP .I /proc/version .\"O This string identifies the kernel version that is currently running. @@ -4244,13 +4244,13 @@ tty .\"O and .\"O .IR /proc/sys/kernel/version . .\"O For example: -¸½ºß²ÔƯ¤·¤Æ¤¤¤ë¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¼±Ê̻ҤǤ¢¤ëʸ»úÎó¡£ -¤³¤ì¤Ë¤Ï +現在稼働しているカーネルのバージョン識別子である文字列。 +これには .IR /proc/sys/ostype , .IR /proc/sys/osrelease , .I /proc/sys/version -¤ÎÆâÍƤ¬´Þ¤Þ¤ì¤ë¡£ -¤¿¤È¤¨¤Ð¤³¤Î¤è¤¦¤Ë: +の内容が含まれる。 +たとえばこのように: .nf .in -2 .ft CW @@ -4268,44 +4268,44 @@ Linux version 1.0.9 (quinlan@phaze) #1 Sat May 14 01:51:54 EDT 1994 .\" See the 2.6.21 Change log .TP .\"O .IR /proc/vmstat " (since Linux 2.6)" -.IR /proc/vmstat " (Linux 2.6 °Ê¹ß)" +.IR /proc/vmstat " (Linux 2.6 以降)" .\"O This file displays various virtual memory statistics. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï²¾ÁÛ¥á¥â¥ê¤ÎÍÍ¡¹¤ÊÅý·×¾ðÊó¤òɽ¼¨¤¹¤ë¡£ +このファイルは仮想メモリの様々な統計情報を表示する。 .TP .\"O .IR /proc/zoneinfo " (since Linux 2.6.13)" -.IR /proc/zoneinfo " (Linux 2.6.13 °Ê¹ß)" +.IR /proc/zoneinfo " (Linux 2.6.13 以降)" .\"O This file display information about memory zones. .\"O This is useful for analyzing virtual memory behavior. .\"O .\" FIXME more should be said about /proc/zoneinfo -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥á¥â¥ê¤Î¥¾¡¼¥ó (memory zone) ¤Ë´Ø¤¹¤ë¾ðÊó¤òɽ¼¨¤¹¤ë¡£ -²¾ÁÛ¥á¥â¥ê¤Î¿¶Éñ¤¤¤òʬÀϤ¹¤ë¤Î¤ËÌòΩ¤Ä¡£ -.\" FIXME -- /proc/zoneinfo ¤Ë¤Ä¤¤¤Æ¤â¤Ã¤ÈÀâÌÀ¤¬É¬ÍפÀ +このファイルはメモリのゾーン (memory zone) に関する情報を表示する。 +仮想メモリの振舞いを分析するのに役立つ。 +.\" FIXME -- /proc/zoneinfo についてもっと説明が必要だ .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Many strings (i.e., the environment and command line) are in .\"O the internal format, with subfields terminated by null bytes (\(aq\\0\(aq), .\"O so you .\"O may find that things are more readable if you use \fIod \-c\fP or \fItr .\"O "\\000" "\\n"\fP to read them. -¤Û¤È¤ó¤É¤Îʸ»úÎó (¤¿¤È¤¨¤Ð´Ä¶­ÊÑ¿ô¤ä¥³¥Þ¥ó¥É¹Ô) ¤ÏÆâÉôɽ¸½¤Î¤Þ¤Þ¤Ê¤Î¤Ç¡¢ -³Æ¥Õ¥£¡¼¥ë¥É¤Ï NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Ç¶èÀÚ¤é¤ì¤Æ¤¤¤ë¡£ -¤À¤«¤é¡¢\fIod \-c\fP ¤ä \fItr "\\000" "\\n"\fP ¤ò»È¤¨¤Ð¡¢ -¤½¤ì¤é¤Ï¤è¤êÆɤߤ䤹¤¯¤Ê¤ë¡£ +ほとんどの文字列 (たとえば環境変数やコマンド行) は内部表現のままなので、 +各フィールドは NULL バイト (\(aq\\0\(aq) で区切られている。 +だから、\fIod \-c\fP や \fItr "\\000" "\\n"\fP を使えば、 +それらはより読みやすくなる。 .\"O Alternatively, \fIecho \`cat \`\fP works well. -¤Þ¤¿ \fIecho \`cat \`\fP ¤Ç¤â¤è¤¤¡£ +また \fIecho \`cat \`\fP でもよい。 .\"O This manual page is incomplete, possibly inaccurate, and is the kind .\"O of thing that needs to be updated very often. -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤ÏÉÔ´°Á´¤Ç¤¢¤ê¡¢¤¿¤Ö¤óÉÔÀµ³Î¤Ç¡¢¤·¤Ð¤·¤Ð¹¹¿·¤µ¤ì¤ëɬÍפ¬¤¢¤ë¡£ +このマニュアルは不完全であり、たぶん不正確で、しばしば更新される必要がある。 .\"O .\" .SH ACKNOWLEDGEMENTS -.\" .SH ¼Õ¼­ +.\" .SH 謝辞 .\"O .\" The material on /proc/sys/fs and /proc/sys/kernel is closely based on .\"O .\" kernel source documentation files written by Rik van Riel. -.\" /proc/sys/fs ¤È /proc/sys/kernel ¤Î»ñÎÁ¤Ï¡¢ -.\" Rik van Riel ¤¬½ñ¤¤¤¿¥«¡¼¥Í¥ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Î¥É¥­¥å¥á¥ó¥È¤Ë -.\" Ì©Àܤ˴ð¤Å¤¤¤Æ¤¤¤ë¡£ +.\" /proc/sys/fs と /proc/sys/kernel の資料は、 +.\" Rik van Riel が書いたカーネルソースファイルのドキュメントに +.\" 密接に基づいている。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cat (1), .BR dmesg (1), .BR find (1), @@ -4332,6 +4332,6 @@ Linux version 1.0.9 (quinlan@phaze) #1 Sat May 14 01:51:54 EDT 1994 .BR route (8) .br .\"O The kernel source files: -¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë: +カーネルのソースファイル: .IR Documentation/filesystems/proc.txt , .IR Documentation/sysctl/vm.txt diff --git a/draft/man5/protocols.5 b/draft/man5/protocols.5 index 6bc4ca3a..d126a02d 100644 --- a/draft/man5/protocols.5 +++ b/draft/man5/protocols.5 @@ -31,11 +31,11 @@ .\" .TH PROTOCOLS 5 2008-09-23 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O protocols \- protocols definition file -protocols \- ¥×¥í¥È¥³¥ëÄêµÁ¥Õ¥¡¥¤¥ë +protocols \- プロトコル定義ファイル .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This file is a plain ASCII file, describing the various DARPA internet .\"O protocols that are available from the TCP/IP subsystem. .\"O It should be @@ -43,25 +43,25 @@ protocols \- .\"O even worse, just guessing them. .\"O These numbers will occur in the .\"O protocol field of any IP header. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï ASCII ¥Õ¥¡¥¤¥ë¤Ç¡¢TCP/IP ¥µ¥Ö¥·¥¹¥Æ¥à¤«¤éÍøÍѤǤ­¤ë -¤¤¤í¤¤¤í¤Ê DARPA ¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥×¥í¥È¥³¥ë¤òµ­½Ò¤·¤Æ¤¤¤ë¡£ -ARPA ´ØÏ¢¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ëÆâ¤Î¿ôÃͤò»È¤¦¤Ù¤­¤Ç¤Ï¤Ê¤¤¤·¡¢ -ñ¤Ë¿ä¬¤·¤¿Ãͤò»È¤¦¤Î¤Ï¤µ¤é¤ËÎɤ¯¤Ê¤¤¡£ -Âå¤ï¤ê¤Ë¤³¤Î¥Õ¥¡¥¤¥ë¤ËÌ䤤¹ç¤ï¤»¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î¿ôÃÍ¤Ï IP ¥Ø¥Ã¥À¤Î¥×¥í¥È¥³¥ë¥Õ¥£¡¼¥ë¥É¤Ë¸½¤ì¤ë¡£ +このファイルは ASCII ファイルで、TCP/IP サブシステムから利用できる +いろいろな DARPA インターネットプロトコルを記述している。 +ARPA 関連のインクルードファイル内の数値を使うべきではないし、 +単に推測した値を使うのはさらに良くない。 +代わりにこのファイルに問い合わせるべきである。 +これらの数値は IP ヘッダのプロトコルフィールドに現れる。 .\"O Keep this file untouched since changes would result in incorrect IP .\"O packages. .\"O Protocol numbers and names are specified by the IANA .\"O (Internet Assigned Numbers Authority). .\"O .\" .. by the DDN Network Information Center. -¤³¤Î¥Õ¥¡¥¤¥ë¤ÏÊѹ¹¤·¤Ê¤¤¤³¤È¡£Êѹ¹¤¹¤ë¤È IP ¥Ñ¥Ã¥±¡¼¥¸¤¬ÉÔÀµ¤Ë¤Ê¤ë¡£ -¥×¥í¥È¥³¥ëÈÖ¹æ¤È¥×¥í¥È¥³¥ë̾¤Ï -IANA (Internet Assigned Numbers Authority) ¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤ë¡£ -.\" DDN Network Information Center ¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤ë¡£ +このファイルは変更しないこと。変更すると IP パッケージが不正になる。 +プロトコル番号とプロトコル名は +IANA (Internet Assigned Numbers Authority) によって指定される。 +.\" DDN Network Information Center によって指定される。 .\"O Each line is of the following format: -¤½¤ì¤¾¤ì¤Î¹Ô¤Ï¼¡¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤¢¤ë¡£ +それぞれの行は次のフォーマットである。 .RS .I protocol number aliases ... @@ -71,12 +71,12 @@ IANA (Internet Assigned Numbers Authority) .\"O Empty lines are ignored. .\"O If a line contains a hash mark (#), the hash mark and the part .\"O of the line following it are ignored. -³Æ¥Õ¥£¡¼¥ë¥É¤Ï¶õÇò¤«¥¿¥Ö¤Ç¶èÀÚ¤é¤ì¤Æ¤¤¤Æ¡¢¶õ¹Ô¤Ï̵»ë¤µ¤ì¤ë¡£ -¹Ô¤Ë¥Ï¥Ã¥·¥åµ­¹æ(#)¤¬´Þ¤Þ¤ì¤ë¾ì¹ç¡¢ -¥Ï¥Ã¥·¥åµ­¹æ¤ò´Þ¤à¤½¤Î¹Ô¤Î»Ä¤ê¤Ï̵»ë¤µ¤ì¤ë¡£ +各フィールドは空白かタブで区切られていて、空行は無視される。 +行にハッシュ記号(#)が含まれる場合、 +ハッシュ記号を含むその行の残りは無視される。 .\"O The field descriptions are: -¥Õ¥£¡¼¥ë¥É¤ÎÀâÌÀ¤Ï°Ê²¼¤Î¤È¤ª¤ê¡£ +フィールドの説明は以下のとおり。 .TP .I protocol .\"O the native name for the protocol. @@ -85,33 +85,33 @@ IANA (Internet Assigned Numbers Authority) .\"O .IR tcp , .\"O or .\"O .IR udp . -¥×¥í¥È¥³¥ë¤Î¸Çͭ̾¡£¤¿¤È¤¨¤Ð +プロトコルの固有名。たとえば .IR ip , .IR tcp , .IR udp -¤Ê¤É¡£ +など。 .TP .I number .\"O the official number for this protocol as it will appear within the IP .\"O header. -¥×¥í¥È¥³¥ë¤Î¸ø¼°Èֹ桢IP ¥Ø¥Ã¥À¤Ë¸½¤ì¤ë¡£ +プロトコルの公式番号、IP ヘッダに現れる。 .TP .I aliases .\"O optional aliases for the protocol. -¥×¥í¥È¥³¥ë¤ÎÊÌ̾¡¢¥ª¥×¥·¥ç¥ó¡£ +プロトコルの別名、オプション。 .LP .\"O This file might be distributed over a network using a network-wide .\"O naming service like Yellow Pages/NIS or BIND/Hesiod. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï Yellow Pages/NIS ¤ä BIND/Hesoid ¤Ê¤É¤Î¥Í¥Ã¥È¥ï¡¼¥¯¾å¤Î -̾Á°ÉÕ¤±¥µ¡¼¥Ó¥¹¤Ë¤è¤Ã¤Æ¥Í¥Ã¥È¥ï¡¼¥¯¾å¤ÇÇÛÉÛ¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +このファイルは Yellow Pages/NIS や BIND/Hesoid などのネットワーク上の +名前付けサービスによってネットワーク上で配布されているかもしれない。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .TP .I /etc/protocols .\"O The protocols definition file. -¥×¥í¥È¥³¥ëÄêµÁ¥Õ¥¡¥¤¥ë¡£ +プロトコル定義ファイル。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getprotoent (3) http://www.iana.org/assignments/protocol-numbers diff --git a/draft/man5/resolv.conf.5 b/draft/man5/resolv.conf.5 index 95187eb9..82244209 100644 --- a/draft/man5/resolv.conf.5 +++ b/draft/man5/resolv.conf.5 @@ -24,20 +24,20 @@ .\" Updated & Modified 2005-01-22, Yuichi SATO .\" Updated 2010-04-18, Akihiro MOTOKI , LDP v3.24 .\" -.\"WORD: resolver ¥ì¥¾¥ë¥Ð -.\"WORD: query Ì䤤¹ç¤ï¤» +.\"WORD: resolver レゾルバ +.\"WORD: query 問い合わせ .\" .TH RESOLV.CONF 5 2009-03-01 "" "Linux Programmer's Manual" .UC 4 .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O resolv.conf \- resolver configuration file -resolv.conf \- ¥ì¥¾¥ë¥ÐÀßÄê¥Õ¥¡¥¤¥ë +resolv.conf \- レゾルバ設定ファイル .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B /etc/resolv.conf .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .I resolver .\"O is a set of routines in the C library @@ -47,27 +47,27 @@ resolv.conf \- .\"O The file is designed to be human readable and contains a list of .\"O keywords with values that provide various types of resolver information. .I resolver -¤Ï¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Î¥É¥á¥¤¥ó¥Í¡¼¥à¥·¥¹¥Æ¥à (DNS) ¤Ø¤Î¥¢¥¯¥»¥¹¤òÄ󶡤¹¤ë -C ¥é¥¤¥Ö¥é¥ê¤Î¥ë¡¼¥Á¥ó·²¤Ç¤¢¤ë¡£ -¥ì¥¾¥ë¥ÐÀßÄê¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¥ì¥¾¥ë¥Ð¥ë¡¼¥Á¥ó¤¬¥×¥í¥»¥¹¤Ë¤è¤Ã¤ÆºÇ½é¤Ë -µ¯Æ°¤µ¤ì¤¿¤È¤­¤ËÆɤ߹þ¤Þ¤ì¤ë¾ðÊ󤬳ÊǼ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¿Í´Ö¤Ë²ÄÆɤʤ褦¤ËÀ߷פµ¤ì¤Æ¤¤¤ë¡£ -¥­¡¼¥ï¡¼¥É¤ÈÃͤΥꥹ¥È¤¬´Þ¤Þ¤ì¡¢¤¤¤í¤¤¤í¤Ê¥¿¥¤¥×¤Î¥ì¥¾¥ë¥Ð¾ðÊó¤òÄ󶡤¹¤ë¡£ +は、インターネットのドメインネームシステム (DNS) へのアクセスを提供する +C ライブラリのルーチン群である。 +レゾルバ設定ファイルには、レゾルバルーチンがプロセスによって最初に +起動されたときに読み込まれる情報が格納されている。 +このファイルは人間に可読なように設計されている。 +キーワードと値のリストが含まれ、いろいろなタイプのレゾルバ情報を提供する。 .LP .\"O On a normally configured system this file should not be necessary. .\"O The only name server to be queried will be on the local machine; .\"O the domain name is determined from the hostname .\"O and the domain search path is constructed from the domain name. -ÉáÄ̤ËÀßÄꤵ¤ì¤¿¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ÏɬÍפʤ¤¡£ -Ì䤤¹ç¤ï¤»¤ò¤µ¤ì¤ëÍ£°ì¤Î¥Í¡¼¥à¥µ¡¼¥Ð¤Ï¥í¡¼¥«¥ë¥Þ¥·¥ó¾å¤Ë¤¢¤ë¡£ -¥É¥á¥¤¥ó̾¤Ï¥Û¥¹¥È̾¤«¤é·èÄꤵ¤ì¡¢ -¥É¥á¥¤¥ó¤Î¸¡º÷¥Ñ¥¹¤Ï¥É¥á¥¤¥ó̾¤«¤éºîÀ®¤µ¤ì¤ë¡£ +普通に設定されたシステムでは、このファイルは必要ない。 +問い合わせをされる唯一のネームサーバはローカルマシン上にある。 +ドメイン名はホスト名から決定され、 +ドメインの検索パスはドメイン名から作成される。 .LP .\"O The different configuration options are: -¤³¤Î¾õÂÖ¤òÊѹ¹¤¹¤ë¤¿¤á¤ÎÀßÄꥪ¥×¥·¥ç¥ó¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤¬¤¢¤ë¡£ +この状態を変更するための設定オプションには、以下のようなものがある。 .TP .\"O \fBnameserver\fP Name server IP address -\fBnameserver\fP ¥Í¡¼¥à¥µ¡¼¥Ð¤Î IP ¥¢¥É¥ì¥¹ +\fBnameserver\fP ネームサーバの IP アドレス .\"O Internet address (in dot notation) of a name server .\"O that the resolver should query. .\"O Up to @@ -82,25 +82,25 @@ C .\"O try the next, until out of name servers, .\"O then repeat trying all the name servers .\"O until a maximum number of retries are made.) -¥ì¥¾¥ë¥Ð¤¬Ì䤤¹ç¤ï¤»¤ò¤¹¤ë¥Í¡¼¥à¥µ¡¼¥Ð¤Î -(¥É¥Ã¥Èɽµ­¤Î) ¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥¢¥É¥ì¥¹¡£ -¤³¤Î¥­¡¼¥ï¡¼¥É 1 ¤Ä¤´¤È¤Ë 1 Âæ¤Å¤Ä¡¢ +レゾルバが問い合わせをするネームサーバの +(ドット表記の) インターネットアドレス。 +このキーワード 1 つごとに 1 台づつ、 .B MAXNS -Âæ (¸½¾õ¤Ç¤Ï 3 Âæ¡¢\fI\fP ¤ò»²¾È) ¤Þ¤Ç¤Î¥Í¡¼¥à¥µ¡¼¥Ð¤ò¥ê¥¹¥È¤Ç¤­¤ë¡£ -Ê£¿ô¤Î¥µ¡¼¥Ð¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¥ì¥¾¥ë¥Ð¥é¥¤¥Ö¥é¥ê¤Ï -¥ê¥¹¥È¤µ¤ì¤¿½ç¤ËÌ䤤¹ç¤ï¤»¤ò¹Ô¤¦¡£ -\fBnameserver\fP ¥¨¥ó¥È¥ê¤¬¤Ê¤¤¾ì¹ç¡¢ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥í¡¼¥«¥ë¥Þ¥·¥ó¾å¤Î¥Í¡¼¥à¥µ¡¼¥Ð¤¬»È¤ï¤ì¤ë¡£ -(¤³¤³¤Ç»È¤ï¤ì¤ë¥¢¥ë¥´¥ê¥º¥à¤Ï°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¡£ -¤Ï¤¸¤á¤Ë¥Í¡¼¥à¥µ¡¼¥Ð¤ËÌ䤤¹ç¤ï¤»¤ò»î¤ß¤ë¡£ -¤³¤ÎÌ䤤¹ç¤ï¤»¤¬¥¿¥¤¥à¥¢¥¦¥È¤Ë¤Ê¤Ã¤¿¾ì¹ç¡¢ -¼¡¤Î¥Í¡¼¥à¥µ¡¼¥Ð¤ËÌ䤤¹ç¤ï¤»¤ò»î¤ß¤ë¡£ -¤³¤ì¤ò¥Í¡¼¥à¥µ¡¼¥Ð¤¬¤Ê¤¯¤Ê¤ë¤Þ¤Ç³¤±¤ë¡£ -¤½¤ì¤Ç¤â±þÅú¤¬¤Ê¤¤¾ì¹ç¤Ï¡¢¥ê¥È¥é¥¤ºÇÂç²ó¿ô¤Ë㤹¤ë¤Þ¤Ç -Á´¤Æ¤Î¥Í¡¼¥à¥µ¡¼¥Ð¤ËÌ䤤¹ç¤ï¤»¤ò·«¤êÊÖ¤¹¡£) +台 (現状では 3 台、\fI\fP を参照) までのネームサーバをリストできる。 +複数のサーバが指定された場合、レゾルバライブラリは +リストされた順に問い合わせを行う。 +\fBnameserver\fP エントリがない場合、 +デフォルトではローカルマシン上のネームサーバが使われる。 +(ここで使われるアルゴリズムは以下のようなものである。 +はじめにネームサーバに問い合わせを試みる。 +この問い合わせがタイムアウトになった場合、 +次のネームサーバに問い合わせを試みる。 +これをネームサーバがなくなるまで続ける。 +それでも応答がない場合は、リトライ最大回数に達するまで +全てのネームサーバに問い合わせを繰り返す。) .TP .\"O \fBdomain\fP Local domain name. -\fBdomain\fP ¥í¡¼¥«¥ë¥É¥á¥¤¥ó̾ +\fBdomain\fP ローカルドメイン名 .\"O Most queries for names within this domain can use short names .\"O relative to the local domain. .\"O If no \fBdomain\fP entry is present, the domain is determined @@ -109,16 +109,16 @@ C .\"O the domain part is taken to be everything after the first \(aq.\(aq. .\"O Finally, if thehost name does not contain a domain part, the root .\"O domain is assumed. -¤³¤Î¥É¥á¥¤¥ó¤Ë¤¢¤ë̾Á°¤ÎÌ䤤¹ç¤ï¤»¤Î¤Û¤È¤ó¤É¤Ë¡¢ -¤³¤Î¥í¡¼¥«¥ë¥É¥á¥¤¥ó¤Ë¤ª¤±¤ëû¤¤Ì¾Á°¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -\fBdomain\fP ¥¨¥ó¥È¥ê¤¬¤Ê¤¤¾ì¹ç¡¢¥É¥á¥¤¥ó̾¤Ï +このドメインにある名前の問い合わせのほとんどに、 +このローカルドメインにおける短い名前を使用することができる。 +\fBdomain\fP エントリがない場合、ドメイン名は .BR gethostname (2) -¤ÇÊÖ¤µ¤ì¤ë¥í¡¼¥«¥ë¥Û¥¹¥È̾¤«¤é·èÄꤵ¤ì¡¢ -ºÇ½é¤Î \(aq.\(aq °Ê¹ß¤ÎÁ´¤Æ¤ÎÉôʬ¤¬¥É¥á¥¤¥ó̾¤È¤µ¤ì¤ë¡£ -¤³¤Î¥Û¥¹¥È̾¤Ë¤â¥É¥á¥¤¥óÉô¤ò´Þ¤ó¤Ç¤¤¤Ê¤¤¾ì¹ç¡¢¥ë¡¼¥È¥É¥á¥¤¥ó¤¬²¾Äꤵ¤ì¤ë¡£ +で返されるローカルホスト名から決定され、 +最初の \(aq.\(aq 以降の全ての部分がドメイン名とされる。 +このホスト名にもドメイン部を含んでいない場合、ルートドメインが仮定される。 .TP .\"O \fBsearch\fP Search list for host-name lookup. -\fBsearch\fP ¥Û¥¹¥È̾¥ë¥Ã¥¯¥¢¥Ã¥×¤Î¤¿¤á¤Î¸¡º÷¥ê¥¹¥È +\fBsearch\fP ホスト名ルックアップのための検索リスト .\"O The search list is normally determined from the local domain name; .\"O by default, it contains only the local domain name. .\"O This may be changed by listing the desired domain search path @@ -128,24 +128,24 @@ C .\"O .I ndots .\"O dots (default is 1) in them will be attempted using each component .\"O of the search path in turn until a match is found. -¸¡º÷¥ê¥¹¥È¤ÏÄ̾ï¥í¡¼¥«¥ë¥É¥á¥¤¥ó̾¤«¤é·èÄꤵ¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¸¡º÷¥ê¥¹¥È¤Ï¥í¡¼¥«¥ë¥É¥á¥¤¥ó̾¤Î¤ß¤Ç¤¢¤ë¡£ -¤³¤ì¤òÊѹ¹¤¹¤ë¤Ë¤Ï¡¢\fIsearch\fP ¥­¡¼¥ï¡¼¥É¤Î¸å¤Ë -´õ˾¤¹¤ë¥É¥á¥¤¥ó¸¡º÷¥Ñ¥¹¤ò¥¹¥Ú¡¼¥¹¤Þ¤¿¤Ï¥¿¥Ö¤Ç¶èÀڤäƥꥹ¥È¤¹¤ì¤Ð¤è¤¤¡£ -¥É¥Ã¥È¤Î¿ô¤¬ +検索リストは通常ローカルドメイン名から決定される。 +デフォルトでは、検索リストはローカルドメイン名のみである。 +これを変更するには、\fIsearch\fP キーワードの後に +希望するドメイン検索パスをスペースまたはタブで区切ってリストすればよい。 +ドットの数が .I ndots -(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï 1) ¤è¤ê¾¯¤Ê¤¤¥ì¥¾¥ë¥Ð¤ÎÌ䤤¹ç¤ï¤»¤Ï¡¢ -°ìÃפ¹¤ë¤â¤Î¤¬¸«¤Ä¤«¤ë¤Þ¤Ç¸¡º÷¥Ñ¥¹¤Î³ÆÍ×ÁǤò½ç¤Ë»È¤Ã¤Æ»î¤¹¡£ +(デフォルトでは 1) より少ないレゾルバの問い合わせは、 +一致するものが見つかるまで検索パスの各要素を順に使って試す。 .\"O For environments with multiple subdomains please read .\"O .BI "options ndots:" n .\"O below to avoid man-in-the-middle attacks and unnecessary .\"O traffic for the root-dns-servers. -Ê£¿ô¤Î¥µ¥Ö¥É¥á¥¤¥ó¤ò»ý¤Ä´Ä¶­¤Ç¤Ï¡¢ -Âè»°¼Ô¤Ë¤è¤ë¹¶·â (man-in-the-middle attack) ¤È -¥ë¡¼¥È DNS ¥µ¡¼¥Ð¤Ø¤ÎÉÔɬÍפʥȥé¥Õ¥£¥Ã¥¯¤òÈò¤±¤ë¤¿¤á¤Ë¡¢ -°Ê²¼¤Î +複数のサブドメインを持つ環境では、 +第三者による攻撃 (man-in-the-middle attack) と +ルート DNS サーバへの不必要なトラフィックを避けるために、 +以下の .BI "options ndots:" n -¤òÆɤó¤Ç¤Û¤·¤¤¡£ +を読んでほしい。 .\"O .\" When having a resolv.conv with a line .\"O .\" search subdomain.domain.tld domain.tld .\"O .\" and doing a hostlookup, for example by @@ -157,28 +157,28 @@ C .\"O .\" thus not only causing unnecessary traffic for the root-dns-servers .\"O .\" but broadcasting information to the outside and making man-in-the-middle .\"O .\" attacks possible. -.\" resolv.conv ¤Ë +.\" resolv.conv に .\" search subdomain.domain.tld domain.tld -.\" °Ê²¼¤Î¤è¤¦¤Ê¹Ô¤¬¤¢¤ë¾ì¹ç¤Ë¡¢¤¿¤È¤¨¤Ð +.\" 以下のような行がある場合に、たとえば .\" ping host.anothersubdomain -.\" ¤Ë¤è¤ë¥Û¥¹¥È¤Î¸¡º÷¤¬¹Ô¤ï¤ì¤ë¤È¡¢ +.\" によるホストの検索が行われると、 .\" host.anothersubdomain. .\" host.anothersubdomain.subdomain.domain.tld. .\" host.anothersubdomain.domain.tld. -.\" ¤ËÂФ·¤Æ DNS ¥ê¥¯¥¨¥¹¥È¤¬Á÷¤é¤ë¡£ -.\" ¤³¤ì¤Ë¤è¤Ã¤Æ¡¢¥ë¡¼¥È DNS ¥µ¡¼¥Ð¤ËÂФ·¤Æ -.\" ÉÔɬÍפʥȥé¥Õ¥£¥Ã¥¯¤ò°ú¤­µ¯¤³¤¹¤À¤±¤Ç¤Ê¤¯¡¢ -.\" ³°Éô¤Ë¾ðÊó¤ò¤Ð¤é¤Þ¤¤¤Æ¤·¤Þ¤¦¤¿¤á¤Ë¡¢Âè»°¼Ô¤Ë¤è¤ë¹¶·â¤¬²Äǽ¤Ë¤Ê¤ë¡£ +.\" に対して DNS リクエストが送らる。 +.\" これによって、ルート DNS サーバに対して +.\" 不必要なトラフィックを引き起こすだけでなく、 +.\" 外部に情報をばらまいてしまうために、第三者による攻撃が可能になる。 .\"O Note that this process may be slow and will generate a lot of network .\"O traffic if the servers for the listed domains are not local, .\"O and that queries will time out if no server is available .\"O for one of the domains. -¤³¤Î¥×¥í¥»¥¹¤ÏÃÙ¤¯¡¢¥ê¥¹¥È¤µ¤ì¤¿¥É¥á¥¤¥ó¤¬¥í¡¼¥«¥ë¤Î¤â¤Î¤Ç¤Ê¤¤¾ì¹ç¡¢ -¿Âç¤Ê¥Í¥Ã¥È¥ï¡¼¥¯¥È¥é¥Õ¥£¥Ã¥¯¤òȯÀ¸¤µ¤»¤ë¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¤µ¤é¤Ë¡¢¤³¤ì¤é¤Î¥É¥á¥¤¥ó¤Î¤¤¤º¤ì¤«¤Ò¤È¤Ä¤Ë¤Ç¤âŬÀڤʥµ¡¼¥Ð¤¬¤Ê¤¤¾ì¹ç¡¢ -Ì䤤¹ç¤ï¤»¤¬¥¿¥¤¥à¥¢¥¦¥È¤Ë¤Ê¤ëÅÀ¤Ë¤âÃí°Õ¤¹¤ë¤³¤È¡£ +このプロセスは遅く、リストされたドメインがローカルのものでない場合、 +多大なネットワークトラフィックを発生させることに注意すること。 +さらに、これらのドメインのいずれかひとつにでも適切なサーバがない場合、 +問い合わせがタイムアウトになる点にも注意すること。 .IP -¸½¾õ¤Ç¤Ï¡¢¸¡º÷¥ê¥¹¥È¤Ï 6 ¥É¥á¥¤¥ó¡¦·× 256 ʸ»ú¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë¡£ +現状では、検索リストは 6 ドメイン・計 256 文字に制限されている。 .TP \fBsortlist\fP .\"O This option allows addresses returned by @@ -191,16 +191,16 @@ C .\"O and optional network pairs are separated by slashes. .\"O Up to 10 pairs may .\"O be specified. -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¡¢ +このオプションを使うと、 .BR gethostbyname (3) -¤ÇÊÖ¤µ¤ì¤ë¥¢¥É¥ì¥¹¤ò¥½¡¼¥È¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -sortlist ¤Ï IP ¥¢¥É¥ì¥¹¤È¥Í¥Ã¥È¥Þ¥¹¥¯¤Î¥Ú¥¢¤Ç»ØÄꤵ¤ì¤ë¡£ -¥Í¥Ã¥È¥Þ¥¹¥¯¤Ï¾Êά²Äǽ¤Ç¤¢¤ê¡¢ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥Í¥Ã¥È¤ËÂФ¹¤ë¥Ç¥Õ¥©¥ë¥È¤Î¥Í¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ë¡£ -IP ¥¢¥É¥ì¥¹¤È¥ª¥×¥·¥ç¥ó¤Î¥Í¥Ã¥È¥Þ¥¹¥¯¤Î¥Ú¥¢¤Ï¥¹¥é¥Ã¥·¥å¤Ç¶èÀڤ롣 -ºÇÂç 10 ÁȤΥڥ¢¤ò»ØÄê¤Ç¤­¤ë¡£ +で返されるアドレスをソートさせることができる。 +sortlist は IP アドレスとネットマスクのペアで指定される。 +ネットマスクは省略可能であり、 +デフォルトではネットに対するデフォルトのネットマスクである。 +IP アドレスとオプションのネットマスクのペアはスラッシュで区切る。 +最大 10 組のペアを指定できる。 .\"O Here is an example: -°Ê²¼¤ËÎã¤ò¼¨¤¹¡£ +以下に例を示す。 .in +4n sortlist 130.155.160.0/255.255.240.0 130.155.0.0 @@ -210,14 +210,14 @@ sortlist 130.155.160.0/255.255.240.0 130.155.0.0 \fBoptions\fP .\"O Options allows certain internal resolver variables to be modified. .\"O The syntax is -options ¤Ë¤è¤ê¡¢¥ì¥¾¥ë¥Ð¤ÎÆâÉôÊÑ¿ô¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -½ñ¼°¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +options により、レゾルバの内部変数を変更することができる。 +書式は以下の通りである。 .RS .IP \fBoptions\fP \fIoption\fP \fI...\fP .LP .\"O where \fIoption\fP is one of the following: -¤³¤³¤Ç \fIoption\fP ¤Ï¼¡¤Î¤¦¤Á¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¡£ +ここで \fIoption\fP は次のうちのいずれかである。 .TP \fBdebug\fP .\" Since glibc 2.2? @@ -226,9 +226,9 @@ options .\"O in .\"O .IR _res.options . .I _res.options -¤Ë +に .B RES_DEBUG -¤òÀßÄꤹ¤ë¡£ +を設定する。 .TP .BI ndots: n .\" Since glibc 2.2 @@ -243,14 +243,14 @@ options .\"O will be tried first as an absolute name before any \fIsearch list\fP .\"O elements are appended to it. .\"O The value for this option is silently capped to 15. -¡Ö\fIºÇ½é¤Î´°Á´¤Ê̾Á°¤Ç¤ÎÌ䤤¹ç¤ï¤»\fP¤¬¼Â¹Ô¤µ¤ì¤ëÁ°¤Ë¡¢ +「\fI最初の完全な名前での問い合わせ\fPが実行される前に、 .BR res_query (3) .RB ( resolver (3) -¤ò»²¾È) ¤ËÍ¿¤¨¤é¤ì¤ë̾Á°¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤Ù¤­¥É¥Ã¥È¤Î¿ô¤ÎïçÃ͡פòÀßÄꤹ¤ë¡£ -\fIn\fP ¤Î¥Ç¥Õ¥©¥ë¥È¤Ï 1 ¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï¡¢Ì¾Á°¤Ë¥É¥Ã¥È¤¬¤¢¤ë¾ì¹ç¡¢\fIsearch list\fP ¤ÎÍ×ÁǤ¬Éղ䵤ì¤ëÁ°¤Ë¡¢ -¤½¤Î̾Á°¤¬´°Á´¤Ê̾Á°¤È¤·¤ÆºÇ½é¤Ë»î¤µ¤ì¤ë¤È¤¤¤¦¤³¤È¤ò°ÕÌ£¤·¤Æ¤¤¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ÎÃͤξå¸Â¤Ï 15 ¤Ç¤¢¤ê¡¢ÌۤäƤ³¤ÎÃͤޤÇÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ +を参照) に与えられる名前に含まれているべきドットの数の閾値」を設定する。 +\fIn\fP のデフォルトは 1 である。 +これは、名前にドットがある場合、\fIsearch list\fP の要素が付加される前に、 +その名前が完全な名前として最初に試されるということを意味している。 +このオプションの値の上限は 15 であり、黙ってこの値まで切り詰められる。 .TP .BI timeout: n .\" Since glibc 2.2 @@ -262,13 +262,13 @@ options .\"O .B RES_TIMEOUT .\"O (currently 5, see \fI\fP). .\"O The value for this option is silently capped to 30. -¡Ö¥ì¥¾¥ë¥Ð¤¬Â¾¤Î¥Í¡¼¥à¥µ¡¼¥Ð¤ÇÌ䤤¹ç¤ï¤»¤ò¥ê¥È¥é¥¤¤¹¤ëÁ°¤Ë¡¢ -¥ê¥â¡¼¥È¥Í¡¼¥à¥µ¡¼¥Ð¤«¤é¤Î±þÅú¤òÂԤĻþ´Ö¡×¤òÀßÄꤹ¤ë¡£ -ñ°Ì¤ÏÉäǡ¢¥Ç¥Õ¥©¥ë¥È¤Ï +「レゾルバが他のネームサーバで問い合わせをリトライする前に、 +リモートネームサーバからの応答を待つ時間」を設定する。 +単位は秒で、デフォルトは .B RES_TIMEOUT -¤Ç¤¢¤ë -(¸½¾õ¤Ç¤Ï 5 Éá¢\fI\fP ¤ò»²¾È)¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ÎÃͤξå¸Â¤Ï 30 ¤Ç¤¢¤ê¡¢ÌۤäƤ³¤ÎÃͤޤÇÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ +である +(現状では 5 秒、\fI\fP を参照)。 +このオプションの値の上限は 30 であり、黙ってこの値まで切り詰められる。 .TP .BI attempts: n .\"O sets the number of times the resolver will send a @@ -278,13 +278,13 @@ options .\"O .B RES_DFLRETRY .\"O (currently 2, see \fI\fP). .\"O The value for this option is silently capped to 5. -¡Ö¥ì¥¾¥ë¥Ð¤¬Äü¤á¤Æ¸Æ¤Ó½Ð¤·¸µ¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¥¨¥é¡¼¤òÊÖ¤¹¤Þ¤Ç¤Ë¡¢ -¥Í¡¼¥à¥µ¡¼¥Ð¤ËÌ䤤¹ç¤ï¤»¤ò¹Ô¤¦²ó¿ô¡×¤òÀßÄꤹ¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +「レゾルバが諦めて呼び出し元のアプリケーションにエラーを返すまでに、 +ネームサーバに問い合わせを行う回数」を設定する。 +デフォルトは .B RES_DFLRETRY -²ó¤Ç¤¢¤ë -(¸½¾õ¤Ç¤Ï 2 ²ó¡¢\fI\fP ¤ò»²¾È)¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ÎÃͤξå¸Â¤Ï 5 ¤Ç¤¢¤ê¡¢ÌۤäƤ³¤ÎÃͤޤÇÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ +回である +(現状では 2 回、\fI\fP を参照)。 +このオプションの値の上限は 5 であり、黙ってこの値まで切り詰められる。 .TP .B rotate .\" Since glibc 2.2 @@ -296,12 +296,12 @@ options .\"O This has the effect of spreading the query load among all listed servers, .\"O rather than having all clients try the first listed server first every time. .I _res.options -¤Ë RES_ROTATE ¤òÀßÄꤹ¤ë¡£ -¥ê¥¹¥È¤µ¤ì¤Æ¤¤¤ë¥Í¡¼¥à¥µ¡¼¥Ð¤«¤éÁª¤Ö¤È¤­¤Ë¡¢ -¥é¥¦¥ó¥É¥í¥Ó¥ó (round robin) ÁªÂò¤ò¹Ô¤ï¤»¤ë¡£ -¥ê¥¹¥È¤µ¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¥µ¡¼¥Ð¤ÇÌ䤤¹ç¤ï¤»¤ÎÉé²Ù¤òʬ»¶¤¹¤ë¸ú²Ì¤¬¤¢¤ê¡¢ -ºÇ½é¤Ë¥ê¥¹¥È¤µ¤ì¤¿¥µ¡¼¥Ð¤ËÁ´¤Æ¤Î¥¯¥é¥¤¥¢¥ó¥È¤¬ -Ëè²óºÇ½é¤ËÌ䤤¹ç¤ï¤»¤ò¹Ô¤¦¤ï¤±¤Ç¤Ï¤Ê¤¯¤Ê¤ë¡£ +に RES_ROTATE を設定する。 +リストされているネームサーバから選ぶときに、 +ラウンドロビン (round robin) 選択を行わせる。 +リストされている全てのサーバで問い合わせの負荷を分散する効果があり、 +最初にリストされたサーバに全てのクライアントが +毎回最初に問い合わせを行うわけではなくなる。 .TP .B no-check-names .\" Since glibc 2.2 @@ -313,13 +313,13 @@ options .\"O mail names for invalid characters such as underscore (_), non-ASCII, .\"O or control characters. .I _res.options -¤Ë +に .B RES_NOCHECKNAME -¤òÀßÄꤹ¤ë¡£ -Æþ¤Ã¤Æ¤¯¤ë¥Û¥¹¥È̾¤È¥á¡¼¥ë¥¢¥É¥ì¥¹¤Ë¡¢ -¥¢¥ó¥À¡¼¥¹¥³¥¢ (_)¡¦ASCII °Ê³°¤Îʸ»ú¡¦À©¸æʸ»ú¤È¤¤¤Ã¤¿ -ÉÔÀµ¤Êʸ»ú¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¤«¤òÄ´¤Ù¤ë -ºÇ¶á¤Î BIND ¤Î¥Á¥§¥Ã¥¯¤ò̵¸ú¤Ë¤¹¤ë¡£ +を設定する。 +入ってくるホスト名とメールアドレスに、 +アンダースコア (_)・ASCII 以外の文字・制御文字といった +不正な文字が含まれていないかを調べる +最近の BIND のチェックを無効にする。 .TP .B inet6 .\" Since glibc 2.2 @@ -332,17 +332,17 @@ options .\"O function, and of mapping IPv4 responses in IPv6 "tunneled form" .\"O if no AAAA records are found but an A record set exists. .I _res.options -¤Ë +に .B RES_USE_INET6 -¤òÀßÄꤹ¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤¬ÀßÄꤵ¤ì¤ë¤È¡¢ +を設定する。このオプションが設定されると、 .BR gethostbyname (3) -´Ø¿ô¤ÎÆâÉô¤Ç A ¥ì¥³¡¼¥É¤ÎÌ䤤¹ç¤ï¤»¤ò¹Ô¤¦Á°¤Ë -AAAA ¥ì¥³¡¼¥É¤ÎÌ䤤¹ç¤ï¤»¤ò¹Ô¤¦¤è¤¦¤Ë¤Ê¤ë¡£ -¤Þ¤¿¡¢AAAA ¥ì¥³¡¼¥É¤Ï¸«¤Ä¤«¤é¤Ê¤¤¤¬ A ¥ì¥³¡¼¥É¥»¥Ã¥È¤¬Â¸ºß¤¹¤ë¾ì¹ç¤Ë¡¢ -IPv4 ¤Î±þÅú¤ò IPv6¡Ö¥È¥ó¥Í¥ë·Á¼°¡×¤Ë¥Þ¥Ã¥×¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +関数の内部で A レコードの問い合わせを行う前に +AAAA レコードの問い合わせを行うようになる。 +また、AAAA レコードは見つからないが A レコードセットが存在する場合に、 +IPv4 の応答を IPv6「トンネル形式」にマップするようになる。 .TP .\"O .BR ip6-bytestring " (since glibc 2.3.4)" -.BR ip6-bytestring " (glibc 2.3.4 °Ê¹ß)" +.BR ip6-bytestring " (glibc 2.3.4 以降)" .\"O sets .\"O .BR RES_USE_BSTRING .\"O in @@ -351,22 +351,22 @@ IPv4 .\"O described in RFC\ 2673; .\"O if this option is not set, then nibble format is used. .I _res.options -¤Ë +に .B RES_USE_BSTRING -¤òÀßÄꤹ¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤¬ÀßÄꤵ¤ì¤ë¤È¡¢IPv6 ¥¢¥É¥ì¥¹¤ÎµÕ°ú¤­¤Ç -RFC\ 2673 ¤Çµ¬Äꤵ¤ì¤¿ bit-label ·Á¼°¤¬»ÈÍѤµ¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬ÀßÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢nibble ·Á¼°¤¬»ÈÍѤµ¤ì¤ë¡£ +を設定する。このオプションが設定されると、IPv6 アドレスの逆引きで +RFC\ 2673 で規定された bit-label 形式が使用されるようになる。 +このオプションが設定されない場合、nibble 形式が使用される。 .TP .\"O .BR ip6-dotint / no-ip6-dotint " (since glibc 2.3.4)" -.BR ip6-dotint / no-ip6-dotint " (glibc 2.3.4 °Ê¹ß)" +.BR ip6-dotint / no-ip6-dotint " (glibc 2.3.4 以降)" .\"O Clear/set .\"O .BR RES_NOIP6DOTINT .\"O in .\"O .IR _res.options . .I _res.options -¤Ø¤Î +への .B RES_NOIP6DOTINT -¤Î¥»¥Ã¥È/¥¯¥ê¥¢¤ò¹Ô¤¦¡£ +のセット/クリアを行う。 .\"O When this option is clear .\"O .RB ( ip6-dotint ), .\"O reverse IPv6 lookups are made in the (deprecated) @@ -377,81 +377,81 @@ RFC\ 2673 .\"O reverse IPv6 lookups are made in the .\"O .I ip6.arpa .\"O zone by default. -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬¥¯¥ê¥¢¤µ¤ì¤ë¤È -.RB ( ip6-dotint )¡¢ -IPv6 ¥¢¥É¥ì¥¹¤ÎµÕ°ú¤­¤¬ (Èó¿ä¾©¤Î) +このオプションがクリアされると +.RB ( ip6-dotint )、 +IPv6 アドレスの逆引きが (非推奨の) .I ip6.int -¥¾¡¼¥ó¤Ç¹Ô¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¡¢ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬¥»¥Ã¥È¤µ¤ì¤ë¤È -.RB ( no-ip6-dotint )¡¢ -IPv6 ¥¢¥É¥ì¥¹¤ÎµÕ°ú¤­¤¬¥Ç¥Õ¥©¥ë¥È¤Î +ゾーンで行われるようになり、 +このオプションがセットされると +.RB ( no-ip6-dotint )、 +IPv6 アドレスの逆引きがデフォルトの .I ip6.arpa -¥¾¡¼¥ó¤Ç¹Ô¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +ゾーンで行われるようになる。 .\"O This option is set by default. -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¥»¥Ã¥È¤µ¤ì¤ë¡£ +このオプションはデフォルトでセットされる。 .TP .\"O .BR edns0 " (since glibc 2.6)" -.BR edns0 " (glibc 2.6 °Ê¹ß)" +.BR edns0 " (glibc 2.6 以降)" .\"O sets .\"O .BR RES_USE_EDNSO .\"O in .\"O .IR _res.options . .\"O This enables support for the DNS extensions described in RFC\ 2671. .I _res.options -¤Ë +に .B RES_USE_EDNSO -¤ò¥»¥Ã¥È¤¹¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢RFC\ 2671 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë -DNS ³ÈÄ¥¤Î¥µ¥Ý¡¼¥È¤¬Í­¸ú¤Ë¤Ê¤ë¡£ +をセットする。これにより、RFC\ 2671 で規定されている +DNS 拡張のサポートが有効になる。 .RE .LP .\"O The \fIdomain\fP and \fIsearch\fP keywords are mutually exclusive. .\"O If more than one instance of these keywords is present, .\"O the last instance wins. -\fIdomain\fP ¤È \fIsearch\fP ¥­¡¼¥ï¡¼¥É¤Ï¡¢¸ß¤¤¤ËÇÓ¾Ū¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î¥­¡¼¥ï¡¼¥É¤¬ 2 ¤Ä°Ê¾åµ­½Ò¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -ºÇ¸å¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤¬Í­¸ú¤Ë¤Ê¤ë¡£ +\fIdomain\fP と \fIsearch\fP キーワードは、互いに排他的である。 +これらのキーワードが 2 つ以上記述されている場合、 +最後に記述されているものが有効になる。 .LP .\"O The \fIsearch\fP keyword of a system's \fIresolv.conf\fP file can be .\"O overridden on a per-process basis by setting the environment variable .\"O .B LOCALDOMAIN .\"O to a space-separated list of search domains. -¥·¥¹¥Æ¥à¤Î \fIresolv.conf\fP ¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë \fIsearch\fP ¥­¡¼¥ï¡¼¥É¤Ï¡¢ -¥¹¥Ú¡¼¥¹¤Ç¶èÀڤ俸¡º÷¥É¥á¥¤¥ó¤Î¥ê¥¹¥È¤ò -´Ä¶­ÊÑ¿ô +システムの \fIresolv.conf\fP ファイルにある \fIsearch\fP キーワードは、 +スペースで区切った検索ドメインのリストを +環境変数 .B LOCALDOMAIN -¤ËÀßÄꤹ¤ë¤³¤È¤Ë¤è¤ê¡¢³Æ¥×¥í¥»¥¹Ëè¤Ë¾å½ñ¤­¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +に設定することにより、各プロセス毎に上書きすることができる。 .LP .\"O The \fIoptions\fP keyword of a system's \fIresolv.conf\fP file can be .\"O amended on a per-process basis by setting the environment variable .\"O .B RES_OPTIONS .\"O to a space-separated list of resolver options .\"O as explained above under \fBoptions\fP. -¥·¥¹¥Æ¥à¤Î \fIresolv.conf\fP ¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë \fIoptions\fP ¥­¡¼¥ï¡¼¥É¤Ï¡¢ -¾å¤Î \fBoptions\fP ¥»¥¯¥·¥ç¥ó¤ÇÀâÌÀ¤·¤¿¤è¤¦¤Ë¡¢ -¥¹¥Ú¡¼¥¹¤Ç¶èÀڤ俥쥾¥ë¥Ð¥ª¥×¥·¥ç¥ó¤Î¥ê¥¹¥È¤ò -´Ä¶­ÊÑ¿ô +システムの \fIresolv.conf\fP ファイルにある \fIoptions\fP キーワードは、 +上の \fBoptions\fP セクションで説明したように、 +スペースで区切ったレゾルバオプションのリストを +環境変数 .B RES_OPTIONS -¤ËÀßÄꤹ¤ë¤³¤È¤Ë¤è¤ê¡¢³Æ¥×¥í¥»¥¹Ëè¤Ë½¤Àµ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +に設定することにより、各プロセス毎に修正することができる。 .LP .\"O The keyword and value must appear on a single line, and the keyword .\"O (e.g., \fBnameserver\fP) must start the line. .\"O The value follows the keyword, separated by white space. -¥­¡¼¥ï¡¼¥É¤ÈÃͤÏƱ¤¸¹Ô¤Ë½ñ¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤Þ¤¿¡¢(\fBnameserver\fP ¤Î¤è¤¦¤Ê) ¥­¡¼¥ï¡¼¥É¤¬¹Ô¤ÎÀèƬ¤Ë¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Ãͤϥ­¡¼¥ï¡¼¥É¤Î¸å¤Ë¥¹¥Ú¡¼¥¹¤Ç¶èÀڤäƳ¤±¤ë¡£ +キーワードと値は同じ行に書かなければならない。 +また、(\fBnameserver\fP のような) キーワードが行の先頭になければならない。 +値はキーワードの後にスペースで区切って続ける。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .IR /etc/resolv.conf , .I .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR gethostbyname (3), .BR resolver (3), .BR hostname (7), .BR named (8) .br .\"O Name Server Operations Guide for BIND -BIND ¤Î¥Í¡¼¥à¥µ¡¼¥Ð¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥¬¥¤¥É +BIND のネームサーバオペレーションガイド .\"O .\"O Local Variables: .\"O mode: nroff diff --git a/draft/man5/rpc.5 b/draft/man5/rpc.5 index 80887dd4..dc2264fe 100644 --- a/draft/man5/rpc.5 +++ b/draft/man5/rpc.5 @@ -11,49 +11,49 @@ .TH RPC 5 1985-09-26 "" "Linux Programmer's Manual" .\"O .SH NAME .\"O rpc \- RPC program number data base -.SH ̾Á° -rpc \- RPC ¥×¥í¥°¥é¥àÈÖ¹æ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹ +.SH 名前 +rpc \- RPC プログラム番号のデータベース .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B /etc/rpc .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .I rpc .\"O file contains user readable names that .\"O can be used in place of RPC program numbers. .\"O Each line has the following information: .I rpc -¥Õ¥¡¥¤¥ë¤Ë¤Ï RPC ¥×¥í¥°¥é¥àÈÖ¹æ¤ÎÂå¤ï¤ê¤Ë»È¤¦¤³¤È¤Î¤Ç¤­¤ë -¥æ¡¼¥¶¡¼¤Ë²ÄÆɤÊ̾Á°¤¬Æþ¤Ã¤Æ¤¤¤ë¡£¤½¤ì¤¾¤ì¤Î¹Ô¤Ï°Ê²¼¤Î¾ðÊó¤ò´Þ¤à¡£ +ファイルには RPC プログラム番号の代わりに使うことのできる +ユーザーに可読な名前が入っている。それぞれの行は以下の情報を含む。 .HP 10 .\"O name of server for the RPC program -RPC ¥×¥í¥°¥é¥à¤Î¥µ¡¼¥Ð¤Î̾Á° +RPC プログラムのサーバの名前 .br .ns .HP 10 .\"O RPC program number -RPC ¥×¥í¥°¥é¥àÈÖ¹æ +RPC プログラム番号 .br .ns .HP 10 .\"O aliases -ÊÌ̾ +別名 .LP .\"O Items are separated by any number of blanks and/or .\"O tab characters. .\"O A \(aq#\(aq indicates the beginning of a comment; characters from .\"O the \(aq#\(aq to the end of the line are not interpreted by routines .\"O which search the file. -¤½¤ì¤¾¤ì¤Î¹àÌܤÏǤ°Õ¤Î¸Ä¿ô¤Î¶õÇò¡¦¥¿¥Ö (º®ºß²Ä) ¤Ë¤è¤Ã¤Æ¶èÀÚ¤é¤ì¤ë¡£ -ÀèƬ¤Ë \(aq#\(aq ¤Î¤¢¤ë¹Ô¤Ï¥³¥á¥ó¥È¤Ç¤¢¤ë¡£ -\(aq#\(aq ¤«¤é¤½¤Î¹Ô¤Î½ªÎ»¤Þ¤Ç¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ò¥µ¡¼¥Á¤¹¤ë¥ë¡¼¥Á¥ó¤Ë¤è¤Ã¤Æ -²ò¼á¤µ¤ì¤Ê¤¯¤Ê¤ë¡£ +それぞれの項目は任意の個数の空白・タブ (混在可) によって区切られる。 +先頭に \(aq#\(aq のある行はコメントである。 +\(aq#\(aq からその行の終了までは、このファイルをサーチするルーチンによって +解釈されなくなる。 .LP .\"O Here is an example of the \fI/etc/rpc\fP file from the Sun RPC Source .\"O distribution. -°Ê²¼¤Ë¡¢ Sun RPC ¤Î¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¤«¤é¤È¤Ã¤Æ¤­¤¿ -\fI/etc/rpc\fP ¥Õ¥¡¥¤¥ë¤ÎÎã¤ò¼¨¤¹¡£ +以下に、 Sun RPC のソースパッケージからとってきた +\fI/etc/rpc\fP ファイルの例を示す。 .nf .ta 1.5i +0.5i +1.0i +1.0i # @@ -92,11 +92,11 @@ nsemntd 100039 .fi .DT .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .TP .I /etc/rpc .\"O RPC program number data base -RPC ¥×¥í¥°¥é¥àÈÖ¹æ¥Ç¡¼¥¿¥Ù¡¼¥¹ +RPC プログラム番号データベース .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getrpcent (3) diff --git a/draft/man5/securetty.5 b/draft/man5/securetty.5 index e555cdd9..5d6f6ba4 100644 --- a/draft/man5/securetty.5 +++ b/draft/man5/securetty.5 @@ -28,37 +28,37 @@ .\" .TH SECURETTY 5 1992-12-29 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O securetty \- file which lists ttys from which root can log in -securetty \- root ¤¬¥í¥°¥¤¥ó¤Ç¤­¤ëüËö¥ê¥¹¥È¤Î¥Õ¥¡¥¤¥ë +securetty \- root がログインできる端末リストのファイル .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The file .\"O .I /etc/securetty .\"O is used by (some versions of) .\"O .BR login (1). .I /etc/securetty -¥Õ¥¡¥¤¥ë¤Ï (¤¤¤¯¤Ä¤«¤Î¥Ð¡¼¥¸¥ç¥ó¤Î) +ファイルは (いくつかのバージョンの) .BR login (1) -¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤ë¡£ +によって使用される。 .\"O The file contains the device names of tty lines .\"O (one per line, without leading .\"O .IR /dev/ ) .\"O on which root is allowed to login. -root ¤Î¥í¥°¥¤¥ó¤¬µö²Ä¤µ¤ì¤Æ¤¤¤ëüËö¤Î¥Ç¥Ð¥¤¥¹Ì¾¤¬£±¹Ô¤Ë -¤Ò¤È¤Ä¤º¤Ä½ñ¤«¤ì¤Æ¤¤¤ë (ÀèƬ¤Î +root のログインが許可されている端末のデバイス名が1行に +ひとつずつ書かれている (先頭の .I /dev/ -¤Ï¾Êά¤¹¤ë)¡£ +は省略する)。 .\"O See .\"O .BR login.defs (5) .\"O if you use the shadow suite. -shadow login suite ¤ò»ÈÍѤ·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ +shadow login suite を使用している場合は、 .BR login.defs (5) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .I /etc/securetty .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR login (1), .BR login.defs (5) diff --git a/draft/man5/services.5 b/draft/man5/services.5 index 7dae9489..64b9f5a2 100644 --- a/draft/man5/services.5 +++ b/draft/man5/services.5 @@ -38,11 +38,11 @@ .\" .TH SERVICES 5 2010-05-22 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O services \- Internet network services list -services \- ¥¤¥ó¥¿¡¼¥Í¥Ã¥È ¥Í¥Ã¥È¥ï¡¼¥¯¥µ¡¼¥Ó¥¹ ¥ê¥¹¥È +services \- インターネット ネットワークサービス リスト .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .B services .\"O is a plain ASCII file providing a mapping between human-friendly textual .\"O names for internet services, and their underlying assigned port @@ -50,12 +50,12 @@ services \- .\"O Every networking program should look into .\"O this file to get the port number (and protocol) for its service. .B services -¤Ï¡¢¿Í¤¬Ê¬¤«¤ê¤ä¤¹¤¤·Á¤Î¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥µ¡¼¥Ó¥¹¤Î̾Á°¤È¡¢ -¤½¤ì¤é¤Î¥µ¡¼¥Ó¥¹¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥Ý¡¼¥ÈÈÖ¹æ¤ä -¥×¥í¥È¥³¥ë¼ïÊ̤ÎÂбþ´Ø·¸¤¬½ñ¤«¤ì¤Æ¤¤¤ë¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ -¥Í¥Ã¥È¥ï¡¼¥¯¾å¤ÇÆ°ºî¤¹¤ë¥×¥í¥°¥é¥à¤Ï¤¹¤Ù¤Æ¡¢ -¤½¤Î¥µ¡¼¥Ó¥¹¤ËÂбþ¤¹¤ë¥Ý¡¼¥ÈÈÖ¹æ (¤È¥×¥í¥È¥³¥ë) ¤òÆÀ¤ë¤¿¤á¤Ë¡¢ -¤³¤Î¥Õ¥¡¥¤¥ë¤òÄ´¤Ù¤ëɬÍפ¬¤¢¤ë¡£ +は、人が分かりやすい形のインターネットサービスの名前と、 +それらのサービスに割り当てられたポート番号や +プロトコル種別の対応関係が書かれているテキストファイルである。 +ネットワーク上で動作するプログラムはすべて、 +そのサービスに対応するポート番号 (とプロトコル) を得るために、 +このファイルを調べる必要がある。 .\"O The C library routines .\"O .BR getservent (3), .\"O .BR getservbyname (3), @@ -64,24 +64,24 @@ services \- .\"O and .\"O .BR endservent (3) .\"O support querying this file from programs. -C ¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ç¤¢¤ë +C ライブラリ関数である .BR getservent (3), .BR getservbyname (3), .BR getservbyport (3), .BR setservent (3), .BR endservent (3) -¤òÍøÍѤ¹¤ë¤³¤È¤Ç¡¢¥×¥í¥°¥é¥à¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤òÄ´¤Ù¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を利用することで、プログラムはこのファイルを調べることができる。 .\"O Port numbers are assigned by the IANA (Internet Assigned Numbers .\"O Authority), and their current policy is to assign both TCP and UDP .\"O protocols when assigning a port number. .\"O Therefore, most entries will .\"O have two entries, even for TCP-only services. -¥Ý¡¼¥ÈÈÖ¹æ¤Ï¡¢IANA (Internet Assigned Numbers Authority) ¤Ë¤è¤Ã¤Æ -³ä¤êÅö¤Æ¤é¤ì¤Æ¤ª¤ê¡¢¸½ºß¤Ï¥Ý¡¼¥ÈÈÖ¹æ¤ò³ä¤êÅö¤Æ¤ëºÝ¤Ë -TCP ¤È UDP ¤ÎξÊý¤Î¥×¥í¥È¥³¥ë¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤½¤Î¤¿¤á¡¢¤Û¤È¤ó¤É¤Î¥µ¡¼¥Ó¥¹¤ËÂФ·¤Æ¡¢ -¤¿¤È¤¨ TCP ¤À¤±¤Î¥µ¡¼¥Ó¥¹¤Î¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢Âбþ¤¹¤ë¹àÌܤ¬Æó¤Ä¤¢¤ë¤³¤È¤Ë¤Ê¤ë¡£ +ポート番号は、IANA (Internet Assigned Numbers Authority) によって +割り当てられており、現在はポート番号を割り当てる際に +TCP と UDP の両方のプロトコルを割り当てることになっている。 +そのため、ほとんどのサービスに対して、 +たとえ TCP だけのサービスの場合であっても、対応する項目が二つあることになる。 .\"O Port numbers below 1024 (so-called "low numbered" ports) can only be .\"O bound to by root (see @@ -94,18 +94,18 @@ TCP .\"O and not a rogue service run by a user of the machine. .\"O Well-known port numbers specified by the IANA are normally .\"O located in this root-only space. -1024 ¤è¤ê¾®¤µ¤¤¥Ý¡¼¥ÈÈÖ¹æ (¤¤¤ï¤æ¤ë "low numbered" ¥Ý¡¼¥È) ¤Ï -´ÉÍý¼Ô (root) ¸¢¸Â¤Ë¤è¤Ã¤Æ¤Î¤ß»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë +1024 より小さいポート番号 (いわゆる "low numbered" ポート) は +管理者 (root) 権限によってのみ使用することができる .RB ( bind (2), .BR tcp (7), .BR udp (7) -»²¾È)¡£ -¤³¤ì¤Ï¡¢¤³¤ì¤é¤Î¥Ý¡¼¥È¤ËÀܳ¤¹¤ë¥¯¥é¥¤¥¢¥ó¥È¤ËÂФ·¤Æ¡¢ -¤½¤Î¥Ý¡¼¥È¤ÇÆ°¤¤¤Æ¤¤¤ë¥µ¡¼¥Ó¥¹¤¬É¸½àŪ¤Ê¼ÂÁõ¤Ç¤¢¤ê¡¢ -¤½¤Î·×»»µ¡¤Î¥æ¡¼¥¶¡¼¤¬Æ°¤«¤·¤Æ¤¤¤ë -ÉÔÀµ¤Ê¥µ¡¼¥Ó¥¹¤Ç¤Ï¤Ê¤¤¤³¤È¤òÊݾڤ¹¤ë¤¿¤á¤Ç¤¢¤ë¡£ -IANA ¤ËÌÀµ­¤µ¤ì¤Æ¤¤¤ë¤è¤¯»ÈÍѤµ¤ì¤ë¥Ý¡¼¥ÈÈÖ¹æ¤Ï¡¢ -Ä̾盧¤Î¤è¤¦¤Ê´ÉÍý¼Ô¤À¤±¤¬»ÈÍѤǤ­¤ëÈϰϤËÇÛÃÖ¤µ¤ì¤ë¡£ +参照)。 +これは、これらのポートに接続するクライアントに対して、 +そのポートで動いているサービスが標準的な実装であり、 +その計算機のユーザーが動かしている +不正なサービスではないことを保証するためである。 +IANA に明記されているよく使用されるポート番号は、 +通常このような管理者だけが使用できる範囲に配置される。 .\"O The presence of an entry for a service in the .\"O .B services @@ -120,19 +120,19 @@ IANA .\"O and so won't appear in .\"O .BR inetd.conf (5). .B services -¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë¥µ¡¼¥Ó¥¹¤ËÂФ¹¤ë¹àÌܤ¬¤¢¤Ã¤Æ¤â¡¢É¬¤º¤·¤â¤½¤Î¥µ¡¼¥Ó¥¹¤¬¸½ -ºß¤½¤Î·×»»µ¡¤ÇÆ°¤¤¤Æ¤¤¤ëÌõ¤Ç¤Ï¤Ê¤¤¡£ÍøÍѲÄǽ¤Ê¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥µ¡¼¥Ó¥¹¤ÎÀßÄê¤Ë -¤Ä¤¤¤Æ¤Ï +ファイルにあるサービスに対する項目があっても、必ずしもそのサービスが現 +在その計算機で動いている訳ではない。利用可能なインターネットサービスの設定に +ついては .BR inetd.conf (5) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£¤¿¤À¤·¡¢¤¹¤Ù¤Æ¤Î¥µ¡¼¥Ó¥¹¤¬ +に記述されている。ただし、すべてのサービスが .BR inetd (8) -¤Ë¤è¤Ã¤Æµ¯Æ°¤µ¤ì¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢ +によって起動されるわけではないので、 .BR inetd.conf (5) -¤Ë¤Ï½ñ¤«¤ì¤Æ¤¤¤Ê¤¤¥µ¡¼¥Ó¥¹¤â¤¢¤ë¤³¤È¤ËÃí°Õ¤¹¤ëɬÍפ¬¤¢¤ë¡£ +には書かれていないサービスもあることに注意する必要がある。 .\"O In particular, news (NNTP) and mail (SMTP) servers are often .\"O initialized from the system boot scripts. -Æäˡ¢¥Í¥Ã¥È¥Ë¥å¡¼¥¹ (NNTP) ¤ä ¥á¡¼¥ë (SMTP) ¤Î¥µ¡¼¥Ð¡¼¤Ï¡¢¥·¥¹¥Æ¥àµ¯Æ°»þ¤Î -¥¹¥¯¥ê¥×¥È¤«¤éµ¯Æ°¤µ¤ì¤ë¤³¤È¤¬Â¿¤¤¡£ +特に、ネットニュース (NNTP) や メール (SMTP) のサーバーは、システム起動時の +スクリプトから起動されることが多い。 .\"O The location of the .\"O .B services @@ -143,17 +143,17 @@ IANA .\"O This is usually set to .\"O .IR /etc/services "." .B services -¥Õ¥¡¥¤¥ë¤Î¾ì½ê¤Ï¡¢ +ファイルの場所は、 .I -Ãæ¤Î +中の .B _PATH_SERVICES -¤Ë¤è¤Ã¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ÎÃͤÏÄ̾ï +によって定義されている。 +この値は通常 .I /etc/services -¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¡£ +に設定されている。 .\"O Each line describes one service, and is of the form: - 1 ¹Ô¤Ë¤Ä¤­ 1 ¥µ¡¼¥Ó¥¹¤¬µ­½Ò¤µ¤ì¤Æ¤ª¤ê¡¢¤½¤Î·Á¼°¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ + 1 行につき 1 サービスが記述されており、その形式は以下の通りである。 .IP \f2service-name\ \ \ port\f3/\f2protocol\ \ \ \f1[\f2aliases ...\f1] .TP @@ -164,15 +164,15 @@ IANA .\"O It is case sensitive. .\"O Often, the client program is named after the .\"O .IR service-name "." -¥µ¡¼¥Ó¥¹¤òɽ¤¹Ê¬¤«¤ê¤ä¤¹¤¤Ì¾Á°¤Ç¤¢¤ê¡¢¸¡º÷¤ÎºÝ¤Ë¤â»ÈÍѤµ¤ì¤ë¡£ -Âçʸ»ú¤È¾®Ê¸»ú¤Ï¶èÊ̤µ¤ì¤ë¡£ -¥¯¥é¥¤¥¢¥ó¥È¥×¥í¥°¥é¥à¤Ï +サービスを表す分かりやすい名前であり、検索の際にも使用される。 +大文字と小文字は区別される。 +クライアントプログラムは .I service-name -¤Ë¤Á¤Ê¤ó¤Ç̾ÉÕ¤±¤é¤ì¤ë¤³¤È¤¬Â¿¤¤¡£ +にちなんで名付けられることが多い。 .TP .I port .\"O is the port number (in decimal) to use for this service. -¥µ¡¼¥Ó¥¹¤ËÂФ·¤Æ»ÈÍѤµ¤ì¤ë¥Ý¡¼¥ÈÈֹ档10 ¿Ê¿ô¤Ç»ØÄꤹ¤ë¡£ +サービスに対して使用されるポート番号。10 進数で指定する。 .TP .I protocol .\"O is the type of protocol to be used. @@ -184,40 +184,40 @@ IANA .\"O .B tcp .\"O and .\"O .BR udp . -»ÈÍѤµ¤ì¤ë¥×¥í¥È¥³¥ë¤Î¼ïÎà¡£¤³¤ÎÍó¤Ï¡¢ +使用されるプロトコルの種類。この欄は、 .BR protocols (5) -¥Õ¥¡¥¤¥ë¤ÎÃæ¤Î¹àÌܤȰìÃפ·¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ -Ä̾ï»ÈÍѤµ¤ì¤ëÃͤϡ¢ +ファイルの中の項目と一致している必要がある。 +通常使用される値は、 .B tcp -¤È +と .B udp -¤Ç¤¢¤ë¡£ +である。 .TP .I aliases .\"O is an optional space or tab separated list of other names for this .\"O service. .\"O Again, the names are case .\"O sensitive. -¥µ¡¼¥Ó¥¹¤ËÂФ¹¤ëÊÌ̾¤Î¥ê¥¹¥È (¶èÀڤϥ¹¥Ú¡¼¥¹¤Þ¤¿¤Ï¥¿¥Ö) ¤Ç¡¢¤³¤ÎÍó¤Ï -ɬÍפˤʤé¤Ð½ñ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£ -¤Þ¤¿¡¢ÊÌ̾¤ÏÂçʸ»ú¤È¾®Ê¸»ú¤Ï¶èÊ̤µ¤ì¤ë¡£ +サービスに対する別名のリスト (区切はスペースまたはタブ) で、この欄は +必要にならば書くことができる。 +また、別名は大文字と小文字は区別される。 .PP .\"O Either spaces or tabs may be used to separate the fields. -¤½¤ì¤¾¤ì¤ÎÍó¤Î¶èÀÚ¤ê¤Ë¤Ï¡¢¥¹¥Ú¡¼¥¹¤Þ¤¿¤Ï¥¿¥Ö¤¬»ÈÍѤµ¤ì¤ë¡£ +それぞれの欄の区切りには、スペースまたはタブが使用される。 .\"O Comments are started by the hash sign (#) and continue until the end .\"O of the line. .\"O Blank lines are skipped. -¥³¥á¥ó¥È¤Ï¥·¥ã¡¼¥× (#) ¤Ç»Ï¤Þ¤ê¡¢¤½¤Î¹Ô¤Î½ª¤ï¤ê¤Þ¤Ç¤¬¥³¥á¥ó¥È¤È¤ß¤Ê¤µ¤ì¤ë¡£ -¶õ¹Ô¤ÏÈô¤Ð¤µ¤ì¤ë¡£ +コメントはシャープ (#) で始まり、その行の終わりまでがコメントとみなされる。 +空行は飛ばされる。 .\"O The .\"O .I service-name .\"O should begin in the first column of the file, since leading spaces are .\"O not stripped. -¹Ô¤Î»Ï¤á¤Î¥¹¥Ú¡¼¥¹¤Ï̵»ë¤µ¤ì¤Ê¤¤¤Î¤Ç¡¢ +行の始めのスペースは無視されないので、 .I service-name -¤Ï¡¢¹ÔƬ¤«¤é½ñ¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は、行頭から書かなければならない。 .\"O .I service-names .\"O can be any printable characters excluding space and tab. .\"O However, a conservative choice of characters should be used to minimize @@ -225,9 +225,9 @@ IANA .\"O E.g., a\-z, 0\-9, and hyphen (\-) would seem a .\"O sensible choice. .I service-names -¤Ï¡¢¥¹¥Ú¡¼¥¹¤È¥¿¥Ö°Ê³°¤Î°õ»ú²Äǽ¤Êʸ»ú¤Ê¤é²¿¤Ç¤â¤è¤¤¤¬¡¢¤·¤«¤·¤Ê¤¬¤é -¸ß´¹À­¤ÎÌäÂê¤ò¾¯¤Ê¤¯¤¹¤ë¤è¤¦¤Êʸ»ú¤òÁªÂò¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -Î㤨¤Ð¡¢a\-z ¡¢0\-9 ¡¢¥Ï¥¤¥Õ¥©¥ó (\-) ¤ò»ÈÍѤ¹¤ë¤Î¤¬ÌµÆñ¤È»×¤ï¤ì¤ë¡£ +は、スペースとタブ以外の印字可能な文字なら何でもよいが、しかしながら +互換性の問題を少なくするような文字を選択すべきである。 +例えば、a\-z 、0\-9 、ハイフォン (\-) を使用するのが無難と思われる。 .\"O Lines not matching this format should not be present in the .\"O file. @@ -237,11 +237,11 @@ IANA .\"O and .\"O .BR getservbyport (3). .\"O However, this behavior should not be relied on.) -»ØÄꤵ¤ì¤¿·Á¼°¤Ë¹ç¤ï¤Ê¤¤¹Ô¤Ï¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤ (¸½ºß¤Ï¡¢¤½¤Î¤è¤¦¤Ê¹Ô¤Ï +指定された形式に合わない行はあってはならない (現在は、そのような行は .BR getservent (3), .BR getservbyname (3), .BR getservbyport (3) -¤Ë¤è¤Ã¤Æ̵»ë¤µ¤ì¤ë¡£¤·¤«¤·¡¢¤½¤Î¾ì¹ç¤ÎµóÆ°¤Ï¿®Íê¤Ç¤­¤Ê¤¤)¡£ +によって無視される。しかし、その場合の挙動は信頼できない)。 .\" The following is not true as at glibc 2.8 (a line with a comma is .\" ignored by getservent()); it's not clear if/when it was ever true. @@ -252,23 +252,23 @@ IANA .\"O .\" name can in fact be either a slash or a comma (,). .\"O .\" Use of the comma in .\"O .\" modern installations is deprecated. -.\" ¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤È¤ÎÀ°¹çÀ­¤ÎÌäÂ꤫¤é¡¢¼ÂºÝ¤Ë¤Ï +.\" 古いバージョンとの整合性の問題から、実際には .\" .I port -.\" ÈÖ¹æ¤È +.\" 番号と .\" .I protocol -.\" ¤Î´Ö¤Î¥¹¥é¥Ã¥·¥å (/) ¤Ï¡¢¥¹¥é¥Ã¥·¥å¤«¥³¥ó¥Þ (,) ¤Î¤É¤Á¤é¤Ç¤â¹½¤ï¤Ê¤¤¡£ -.\" ¤·¤«¤·¤Ê¤¬¤é¡¢º£¤Ê¤ª¥³¥ó¥Þ¤ò»ÈÍѤ¹¤ë¤Î¤Ï˾¤Þ¤·¤¤¤³¤È¤Ç¤Ï¤Ê¤¤¡£ +.\" の間のスラッシュ (/) は、スラッシュかコンマ (,) のどちらでも構わない。 +.\" しかしながら、今なおコンマを使用するのは望ましいことではない。 .\" .\"O This file might be distributed over a network using a network-wide .\"O naming service like Yellow Pages/NIS or BIND/Hesiod. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢Yellow Pages/NIS ¤ä BIND/Hesiod ¤Î¤è¤¦¤Ê¥Í¥Ã¥È¥ï¡¼¥¯¾å¤Î̾Á° -¥µ¡¼¥Ó¥¹¤òÍѤ¤¤Æ¡¢¥Í¥Ã¥È¥ï¡¼¥¯¤òÄ̤¸¤ÆÇÛÉÛ¤µ¤ì¤ë²ÄǽÀ­¤â¤¢¤ë¡£ +このファイルは、Yellow Pages/NIS や BIND/Hesiod のようなネットワーク上の名前 +サービスを用いて、ネットワークを通じて配布される可能性もある。 .\"O A sample .\"O .B services .\"O file might look like this: .B services -¥Õ¥¡¥¤¥ë¤Î¸«Ëܤò°Ê²¼¤Ë¼¨¤¹¡£ +ファイルの見本を以下に示す。 .RS .nf .sp @@ -285,19 +285,19 @@ telnet 23/tcp .fi .RE .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .TP .I /etc/services .\"O The Internet network services list -¥¤¥ó¥¿¡¼¥Í¥Ã¥È ¥Í¥Ã¥È¥ï¡¼¥¯¥µ¡¼¥Ó¥¹¤Î¥ê¥¹¥È +インターネット ネットワークサービスのリスト .TP .I .\"O Definition of .\"O .B _PATH_SERVICES .B _PATH_SERVICES -¤ÎÄêµÁ +の定義 .\"O .\" .SH BUGS -.\" .SH ¥Ð¥° +.\" .SH バグ .\" It's not clear when/if the following was ever true; .\" it isn't true for glibc 2.8: .\"O .\" There is a maximum of 35 aliases, due to the way the @@ -305,7 +305,7 @@ telnet 23/tcp .\"O .\" code is written. .\"O .\" .\" .BR getservent (3) -.\" ¤Î¥³¡¼¥É¤Î½ñ¤­Êý¤ÎÌäÂê¤Ç¡¢35 ¸Ä¤Þ¤Ç¤·¤«ÊÌ̾¤òÉÕ¤±¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +.\" のコードの書き方の問題で、35 個までしか別名を付けることができない。 .\" .\" It's not clear when/if the following was ever true; .\" it isn't true for glibc 2.8: @@ -318,13 +318,13 @@ telnet 23/tcp .\"O .\" .BR getservbyport (3). .\"O .\" However, this will also cause the next line to be mis-parsed. .\" .B BUFSIZ -.\" (¸½ºß¤Ï 1024) ʸ»ú¤è¤êŤ¤¹Ô¤Ï¡¢ +.\" (現在は 1024) 文字より長い行は、 .\" .BR getservent (3), .\" .BR getservbyname (3), .\" .BR getservbyport (3) -.\" ¤Ë¤è¤ê̵»ë¤µ¤ì¤ë¡£¤µ¤é¤Ë¡¢¤³¤Î¤³¤È¤Ï¼¡¤Î¹Ô¤¬Àµ¤·¤¯²ò¼á¤µ¤ì¤Ê¤¤¸¶°ø¤È¤Ê¤ë¡£ +.\" により無視される。さらに、このことは次の行が正しく解釈されない原因となる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR listen (2), .BR endservent (3), .BR getservbyname (3), @@ -336,4 +336,4 @@ telnet 23/tcp .BR inetd (8) .\"O Assigned Numbers RFC, most recently RFC\ 1700, (AKA STD0002) -¥Ý¡¼¥ÈÈÖ¹æ¤Î³ä¤êÅö¤Æ¤òÄê¤á¤Æ¤¤¤ë RFC (ºÇ¿·ÈÇ¤Ï RFC\ 1700¡¢ÊÌ̾ STD0002) +ポート番号の割り当てを定めている RFC (最新版は RFC\ 1700、別名 STD0002) diff --git a/draft/man5/shells.5 b/draft/man5/shells.5 index 8f2c13be..2cdc310e 100644 --- a/draft/man5/shells.5 +++ b/draft/man5/shells.5 @@ -34,41 +34,41 @@ .TH SHELLS 5 1993-11-21 "" "Linux Programmer's Manual" .\"O .SH NAME .\"O shells \- pathnames of valid login shells -.SH ̾Á° -shells \- ¥í¥°¥¤¥ó¥·¥§¥ë¤È¤·¤ÆÍ­¸ú¤Ê¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹Ì¾ +.SH 名前 +shells \- ログインシェルとして有効なファイルのパス名 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .I /etc/shells .\"O is a text file which contains the full pathnames of valid login shells. .\"O This file is consulted by .\"O .BR chsh (1) .\"O and available to be queried by other programs. .I /etc/shells -¤Ï¥í¥°¥¤¥ó¥·¥§¥ë¤È¤·¤ÆÍ­¸ú¤Ê¥Õ¥¡¥¤¥ë¤Î¥Õ¥ë¥Ñ¥¹¤¬½ñ¤«¤ì¤¿ -¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ +はログインシェルとして有効なファイルのフルパスが書かれた +テキストファイルである。 .BR chsh (1) -¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¡£ -¾¤Î¥×¥í¥°¥é¥à¤â¤³¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤Ç¤­¤ë¡£ +はこのファイルを参照する。 +他のプログラムもこのファイルを参照できる。 .PP .\"O Be aware that there are programs which consult this file to .\"O find out if a user is a normal user. .\"O E.g.: ftp daemons traditionally .\"O disallow access to users with shells not included in this file. -Ãí°Õ¤·¤ÆÍߤ·¤¤¤Î¤À¤¬¡¢¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤Æ¤Ï¡¢ -¥æ¡¼¥¶¡¼¤¬Ä̾ï¤Î¥æ¡¼¥¶¡¼¤«¤É¤¦¤«¤òȽÃǤ¹¤ëºÝ¤Ë¡¢ -¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÆâÍƤò»²¹Í¤Ë¤¹¤ë¤³¤È¤¬¤¢¤ë¡£ -Î㤨¤Ð ftp ¥Ç¡¼¥â¥ó¤Ï¡¢ -¥í¥°¥¤¥ó¥·¥§¥ë¤¬¤³¤Î¥Õ¥¡¥¤¥ë¤Ë½ñ¤«¤ì¤Æ¤¤¤Ê¤¤ -¥æ¡¼¥¶¡¼¤«¤é¤Î¥¢¥¯¥»¥¹¤òµö¤µ¤Ê¤¤¤Î¤¬°ÊÁ°¤«¤é°ìÈÌŪ¤Ç¤¢¤ë¡£ +注意して欲しいのだが、プログラムによっては、 +ユーザーが通常のユーザーかどうかを判断する際に、 +このファイルの内容を参考にすることがある。 +例えば ftp デーモンは、 +ログインシェルがこのファイルに書かれていない +ユーザーからのアクセスを許さないのが以前から一般的である。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .I /etc/shells .\"O .SH EXAMPLE .\"O .I /etc/shells .\"O may contain the following paths: -.SH Îã +.SH 例 .I /etc/shells -¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤Ê¥Ñ¥¹¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤À¤í¤¦¡£ +には以下のようなパスが含まれているだろう。 .sp .RS .I /bin/sh @@ -76,6 +76,6 @@ shells \- .I /bin/csh .RE .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chsh (1), .BR getusershell (3) diff --git a/draft/man5/slabinfo.5 b/draft/man5/slabinfo.5 index 78df621a..0a6e6b13 100644 --- a/draft/man5/slabinfo.5 +++ b/draft/man5/slabinfo.5 @@ -26,13 +26,13 @@ .TH SLABINFO 5 2007-09-30 "" "Linux Programmer's Manual" .\"O .SH NAME .\"O /proc/slabinfo \- Kernel slab allocator statistics -.SH ̾Á° -/proc/slabinfo \- ¥«¡¼¥Í¥ë slab ¥¢¥í¥±¡¼¥¿¤ÎÅý·× +.SH 名前 +/proc/slabinfo \- カーネル slab アロケータの統計 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B cat /proc/slabinfo .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Frequently used objects in the Linux kernel .\"O (buffer heads, inodes, dentries, etc.) .\"O have their own cache. @@ -40,11 +40,11 @@ .\"O .I /proc/slabinfo .\"O gives statistics. .\"O For example: -Linux ¥«¡¼¥Í¥ë¤ÎÆâÉô¤ÇÎɤ¯ÍøÍѤµ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È -(¥Ð¥Ã¥Õ¥¡¥Ø¥Ã¥É¡¢i-¥Î¡¼¥É¡¢¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤Ê¤É) -¤Ï¡¢¤½¤ì¤¾¤ì¼«Ê¬ÍѤΥ­¥ã¥Ã¥·¥å¤òÈ÷¤¨¤Æ¤¤¤ë¡£¥Õ¥¡¥¤¥ë +Linux カーネルの内部で良く利用されるオブジェクト +(バッファヘッド、i-ノード、ディレクトリ・エントリなど) +は、それぞれ自分用のキャッシュを備えている。ファイル .I /proc/slabinfo -¤Ï¤³¤ì¤é¤ÎÅý·×¤òÍ¿¤¨¤ë¡£Îã¤ò¼¨¤¹¡£ +はこれらの統計を与える。例を示す。 .LP .in +4n .nf @@ -70,21 +70,21 @@ size-4096 41 73 4096 41 73 1 .\"O size of each object in bytes, the number of pages with at .\"O least one active object, the total number of allocated pages, .\"O and the number of pages per slab are given. -¤½¤ì¤¾¤ì¤Î slab ¥­¥ã¥Ã¥·¥å¤´¤È¤Ë¡¢¥­¥ã¥Ã¥·¥å¤Î̾Á°¡¢ -¸½ºß¥¢¥¯¥Æ¥£¥Ö¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤Î¿ô¡¢ÍøÍѲÄǽ¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤ÎÁí¿ô¡¢ -³Æ¥ª¥Ö¥¸¥§¥¯¥È¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì)¡¢¾¯¤Ê¤¯¤È¤â°ì¤Ä¤Î¥¢¥¯¥Æ¥£¥Ö¤Ê -¥ª¥Ö¥¸¥§¥¯¥È¤òÍ­¤¹¤ë¥Ú¡¼¥¸¤Î¿ô¡¢¥¢¥í¥±¡¼¥È¤µ¤ì¤¿¥Ú¡¼¥¸¤ÎÁí¿ô¡¢ -slab ¤¢¤¿¤ê¤Î¥Ú¡¼¥¸¿ô¡¢¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤ë¡£ +それぞれの slab キャッシュごとに、キャッシュの名前、 +現在アクティブなオブジェクトの数、利用可能なオブジェクトの総数、 +各オブジェクトのサイズ (バイト単位)、少なくとも一つのアクティブな +オブジェクトを有するページの数、アロケートされたページの総数、 +slab あたりのページ数、が与えられている。 .\"O Note that because of object alignment and slab cache overhead, .\"O objects are not normally packed tightly into pages. .\"O Pages with even one in-use object are considered in-use and cannot be .\"O freed. -¤Ê¤ª¡¢ -¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤È slab ¥­¥ã¥Ã¥·¥å¤Î¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤È¤Ë¤è¤ê¡¢ -¥ª¥Ö¥¸¥§¥¯¥È¤ÏÄ̾ï¥Ú¡¼¥¸¤ÎÆâÉô¤Ë¤­¤Ã¤Á¤ê¤È¤Ï¼ý¤á¤é¤ì¤Æ¤¤¤Ê¤¤¡£ -ÍøÍÑÃæ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò¤Ò¤È¤Ä¤Ç¤âÊÝ»ý¤·¤Æ¤¤¤ë¥Ú¡¼¥¸¤Ï¡¢ -ÍøÍÑÃæ¤Ç¤¢¤ë¤È¤ß¤Ê¤µ¤ì¡¢²òÊü¤Ç¤­¤Ê¤¤¡£ +なお、 +オブジェクトのアラインメントと slab キャッシュのオーバーヘッドとにより、 +オブジェクトは通常ページの内部にきっちりとは収められていない。 +利用中のオブジェクトをひとつでも保持しているページは、 +利用中であるとみなされ、解放できない。 .\"O Kernels compiled with slab cache statistics will also have .\"O "(statistics)" in the first line of output, and will have 5 @@ -97,17 +97,17 @@ slab .\"O to this cache. .\"O If slab cache statistics are not enabled .\"O for this kernel, these columns will not be shown. -slab ¥­¥ã¥Ã¥·¥åÅý·×¤Îµ¡Ç½¤òÍ­¸ú¤Ë¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -½ÐÎϤκǽé¤Î¹Ô¤Ë "(statistics)" ¤Èɽ¼¨¤µ¤ì¡¢ 5 ¤Ä¤Î¥«¥é¥à¤¬Äɲ䵤ì¤ë¡£ -¤½¤ì¤¾¤ì¡¢¥¢¥¯¥Æ¥£¥Ö¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤Î½Ö´ÖºÇÂçÃÍ¡¢ -.\"nakano ¤Ç¤¤¤¤¤Î¤«¤Ê¤¢ > high water mark -¥ª¥Ö¥¸¥§¥¯¥È¤¬¥¢¥í¥±¡¼¥È¤µ¤ì¤¿²ó¿ô¡¢ -¥­¥ã¥Ã¥·¥å¤ÎÂ礭¤µ¤¬³ÈÄ¥¤µ¤ì¤¿ -(¿·¤·¤¤¥Ú¡¼¥¸¤¬¤³¤Î¥­¥ã¥Ã¥·¥å¤ËÄɲ䵤줿) ²ó¿ô¡¢ -¥­¥ã¥Ã¥·¥å¤ÎÂ礭¤µ¤¬½Ì¾®¤µ¤ì¤¿ -(»È¤Ã¤Æ¤¤¤Ê¤¤¥Ú¡¼¥¸¤¬¤³¤Î¥­¥ã¥Ã¥·¥å¤«¤éºï½ü¤µ¤ì¤¿) ²ó¿ô¡¢ -¿·¤¿¤Ê¥Ú¡¼¥¸¤ò¤³¤Î¥­¥ã¥Ã¥·¥å¤Ë¥¢¥í¥±¡¼¥È¤¹¤ëºÝ¤Ëµ¯¤­¤¿¥¨¥é¡¼¤Î²ó¿ô¡¢¤Ç¤¢¤ë¡£ -slab ¥­¥ã¥Ã¥·¥åÅý·×¤¬»È¤¨¤Ê¤¤¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥«¥é¥à¤Ïɽ¼¨¤µ¤ì¤Ê¤¤¡£ +slab キャッシュ統計の機能を有効にしてコンパイルされたカーネルでは、 +出力の最初の行に "(statistics)" と表示され、 5 つのカラムが追加される。 +それぞれ、アクティブなオブジェクトの瞬間最大値、 +.\"nakano でいいのかなあ > high water mark +オブジェクトがアロケートされた回数、 +キャッシュの大きさが拡張された +(新しいページがこのキャッシュに追加された) 回数、 +キャッシュの大きさが縮小された +(使っていないページがこのキャッシュから削除された) 回数、 +新たなページをこのキャッシュにアロケートする際に起きたエラーの回数、である。 +slab キャッシュ統計が使えないカーネルでは、これらのカラムは表示されない。 .\"O SMP systems will also have "(SMP)" in the first line of .\"O output, and will have two additional columns for each slab, @@ -121,18 +121,18 @@ slab .\"O global cache that will be transferred to the per-CPU cache .\"O if it is empty, or the number of objects to be returned .\"O to the global cache if the per-CPU cache is full. -SMP ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢½ÐÎϤκǽé¤Î¹Ô¤Ë "(SMP)" ¤Èɽ¼¨¤µ¤ì¡¢ -³Æ slab ¤´¤È¤Ë 2 ¤Ä¤Î¥«¥é¥à¤¬Äɲ䵤ì¤ë¡£ -¤³¤ì¤é¤Ï³Æ CPU ¤¬»ý¤Ä¥í¡¼¥«¥ë¤Ê¥­¥ã¥Ã¥·¥å (per-CPU ¥­¥ã¥Ã¥·¥å) ¤Î -slab ¥¢¥í¥±¡¼¥·¥ç¥ó¥Ý¥ê¥·¡¼¤òɽ¼¨¤¹¤ë -(per-CPU ¥­¥ã¥Ã¥·¥å¤Ï¡¢ -¥ª¥Ö¥¸¥§¥¯¥È¤ò¥­¥ã¥Ã¥·¥å¤«¤é¥¢¥í¥±¡¼¥È¤¹¤ëºÝ¤Ë -CPU ´Ö¤Ç¤ÎƱ´ü¤ò¸º¾¯¤µ¤»¤ë¤¿¤á¤ËÀߤ±¤é¤ì¤Æ¤¤¤ë)¡£ -ºÇ½é¤Î¥«¥é¥à¤Ï per-CPU À©¸Â¡¢ -¤¹¤Ê¤ï¤Á³Æ CPU ¤´¤È¤Ë¥­¥ã¥Ã¥·¥å¤Ç¤­¤ë¥ª¥Ö¥¸¥§¥¯¥È¤ÎºÇÂç¿ô¤Ç¤¢¤ë¡£ -ÆóÈÖÌܤΥ«¥é¥à¤Ï¥Ð¥Ã¥Á¥«¥¦¥ó¥È¡¢ -¤¹¤Ê¤ï¤Á per-CPU ¥­¥ã¥Ã¥·¥å¤¬¶õ¤À¤Ã¤¿¤ê°ìÇÕ¤À¤Ã¤¿¤ê¤·¤¿¾ì¹ç¤Ë¡¢ -¥°¥í¡¼¥Ð¥ë¤Ê¥­¥ã¥Ã¥·¥å¤È¼õ¤±ÅϤ·¤Ç¤­¤ë¥Õ¥ê¡¼¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤ÎºÇÂç¿ô¤Ç¤¢¤ë¡£ +SMP システムでは、出力の最初の行に "(SMP)" と表示され、 +各 slab ごとに 2 つのカラムが追加される。 +これらは各 CPU が持つローカルなキャッシュ (per-CPU キャッシュ) の +slab アロケーションポリシーを表示する +(per-CPU キャッシュは、 +オブジェクトをキャッシュからアロケートする際に +CPU 間での同期を減少させるために設けられている)。 +最初のカラムは per-CPU 制限、 +すなわち各 CPU ごとにキャッシュできるオブジェクトの最大数である。 +二番目のカラムはバッチカウント、 +すなわち per-CPU キャッシュが空だったり一杯だったりした場合に、 +グローバルなキャッシュと受け渡しできるフリーなオブジェクトの最大数である。 .\"O If both slab cache statistics and SMP are defined, there .\"O will be four additional columns, reporting the per-CPU @@ -145,20 +145,20 @@ CPU .\"O hit and miss counts: the number of times a freed object .\"O could or could not fit within the per-CPU cache limit, .\"O before flushing objects to the global cache. -slab ¥­¥ã¥Ã¥·¥åÅý·×¤È SMP ¤¬Î¾ÊýÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ -per-CPU ¥­¥ã¥Ã¥·¥å¤ÎÅý·×¤òɽ¼¨¤¹¤ë 4 ¤Ä¤Î¥«¥é¥à¤¬¤µ¤é¤ËÄɲ䵤ì¤ë¡£ -ºÇ½é¤Î 2 ¤Ä¤Ï per-CPU ¥­¥ã¥Ã¥·¥å¤Î -¥¢¥í¥±¡¼¥·¥ç¥ó¥Ò¥Ã¥È¥«¥¦¥ó¥È¤È¥¢¥í¥±¡¼¥·¥ç¥ó¥ß¥¹¥«¥¦¥ó¥È¤Ç¤¢¤ë¡£ -¤¹¤Ê¤ï¤Á¡¢¤¢¤ë¥ª¥Ö¥¸¥§¥¯¥È¤ò¥¢¥í¥±¡¼¥È¤·¤¿¤È¤­¤Ë¡¢ -¤½¤ì¤¬ per-CPU ¥­¥ã¥Ã¥·¥å¤ÎÆâÉô¤Ë ¤¢¤Ã¤¿/¤Ê¤«¤Ã¤¿ ²ó¿ô¤Ç¤¢¤ë¡£ -³¤¯ 2 ¤Ä¤Ï¡¢per-CPU ¥­¥ã¥Ã¥·¥å¤Î¥Õ¥ê¡¼¥Ò¥Ã¥È¥«¥¦¥ó¥È¤È¥ß¥¹¥«¥¦¥ó¥È¤Ç¤¢¤ë¡£ -¤¹¤Ê¤ï¤Á²òÊü¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤ò¥°¥í¡¼¥Ð¥ë¤Ê¥­¥ã¥Ã¥·¥å¤Ë¥Õ¥é¥Ã¥·¥å¤¹¤ëÁ°¤Ë¡¢ -per-CPU ¥­¥ã¥Ã¥·¥å¤ÎÀ©¸Â¤ÎÈÏ°Ï¤Ë ¼ý¤Þ¤Ã¤¿/¼ý¤Þ¤é¤Ê¤«¤Ã¤¿ ²ó¿ô¤Ç¤¢¤ë¡£ +slab キャッシュ統計と SMP が両方有効になっている場合は、 +per-CPU キャッシュの統計を表示する 4 つのカラムがさらに追加される。 +最初の 2 つは per-CPU キャッシュの +アロケーションヒットカウントとアロケーションミスカウントである。 +すなわち、あるオブジェクトをアロケートしたときに、 +それが per-CPU キャッシュの内部に あった/なかった 回数である。 +続く 2 つは、per-CPU キャッシュのフリーヒットカウントとミスカウントである。 +すなわち解放されたオブジェクトをグローバルなキャッシュにフラッシュする前に、 +per-CPU キャッシュの制限の範囲に 収まった/収まらなかった 回数である。 .\"O It is possible to tune the SMP per-CPU slab cache limit .\"O and batchcount via: -SMP ¤Ë¤ª¤¤¤Æ per-CPU slab ¥­¥ã¥Ã¥·¥å¤ÎÀ©¸ÂÃͤä -¥Ð¥Ã¥Á¥«¥¦¥ó¥È¤òÊѹ¹¤¹¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¤è¤¤: +SMP において per-CPU slab キャッシュの制限値や +バッチカウントを変更するには、以下のようにすればよい: .in +4n .nf @@ -166,26 +166,26 @@ echo "\fIcache_name limit batchcount\fP" > /proc/slabinfo .fi .in .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .I .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .I /proc/slabinfo .\"O exists since Linux 2.1.23. .\"O SMP per-CPU caches exist since Linux 2.4.0-test3. .I /proc/slabinfo -¤Ï Linux 2.1.23 °Ê¹ß¤Ë¸ºß¤¹¤ë¡£ -SMP ¤Ë¤ª¤±¤ë CPU ¤´¤È¤Î¥­¥ã¥Ã¥·¥å¤Ï Linux 2.4.0-test3 °Ê¹ß¤Ë¸ºß¤¹¤ë¡£ +は Linux 2.1.23 以降に存在する。 +SMP における CPU ごとのキャッシュは Linux 2.4.0-test3 以降に存在する。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Since Linux 2.6.16 the file .\"O .I /proc/slabinfo .\"O is only present if the .\"O .B CONFIG_SLAB .\"O kernel configuration option is enabled. -Linux 2.6.16 °Ê¹ß¤Ç¤Ï¡¢ +Linux 2.6.16 以降では、 .I /proc/slabinfo -¥Õ¥¡¥¤¥ë¤Ï¡¢¥«¡¼¥Í¥ëÀßÄꥪ¥×¥·¥ç¥ó +ファイルは、カーネル設定オプション .B CONFIG_SLAB -¤òÍ­¸ú¤Ë¤·¤¿¾ì¹ç¤Î¤ß¸ºß¤¹¤ë¡£ +を有効にした場合のみ存在する。 diff --git a/draft/man5/termcap.5 b/draft/man5/termcap.5 index 0196133d..1fa9f3c0 100644 --- a/draft/man5/termcap.5 +++ b/draft/man5/termcap.5 @@ -35,33 +35,33 @@ .\" Proofed & Modified Thu 12 Oct 2000 .\" by NAKANO Takeo .\" -.\"WORD capability µ¡Ç½ -.\"WORD formfeed ÊÇÁ÷¤ê -.\"WORD standout ¶¯Ä´ -.\"WORD carriage return Éüµ¢ -.\"WORD new line ²þ¹Ô -.\"WORD block graphic character(s) ¿Þ·Áʸ»ú(½¸¹ç) -.\"WORD alternate character set ÂåÂØʸ»ú½¸¹ç +.\"WORD capability 機能 +.\"WORD formfeed 頁送り +.\"WORD standout 強調 +.\"WORD carriage return 復帰 +.\"WORD new line 改行 +.\"WORD block graphic character(s) 図形文字(集合) +.\"WORD alternate character set 代替文字集合 .\" .TH TERMCAP 5 1996-10-21 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O termcap \- terminal capability database -termcap \- üËöµ¡Ç½¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹ +termcap \- 端末機能のデータベース .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The termcap database is an obsolete facility for describing the .\"O capabilities of character-cell terminals and printers. .\"O It is retained only for capability with old programs; .\"O new ones should use the .\"O .BR terminfo (5) .\"O database and associated libraries. -termcap ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ï¡¢ -ʸ»úñ°Ì¤ÇÆ°ºî¤¹¤ëüËö¤ä¥×¥ê¥ó¥¿¤Îµ¡Ç½¤òµ­½Ò¤¹¤ë¤¿¤á¤Îµì¼°¤Îµ¡¹½¤Ç¤¢¤ë¡£ -¤³¤Îµ¡¹½¤Ï¸Å¤¤¥×¥í¥°¥é¥à¤òÆ°ºî¤µ¤»¤ë¤¿¤á¤À¤±¤ËÊÝ»ý¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢ -¿·¤·¤¤¥×¥í¥°¥é¥à¤Ï +termcap データベースは、 +文字単位で動作する端末やプリンタの機能を記述するための旧式の機構である。 +この機構は古いプログラムを動作させるためだけに保持されているので、 +新しいプログラムは .BR terminfo (5) -¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¤½¤ì¤Ë´ØÏ¢¤·¤¿¥é¥¤¥Ö¥é¥ê¤òÍѤ¤¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +データベースとそれに関連したライブラリを用いるべきである。 .LP .\"O .I /etc/termcap .\"O is an ASCII file (the database master) that lists the capabilities of @@ -76,38 +76,38 @@ termcap .\"O .B TERM .\"O environment variable. .I /etc/termcap -¤Ï¡¢Â¿¤¯¤Î°Û¤Ê¤ë¼ïÎà¤ÎüËö¤Ë´Ø¤¹¤ëµ¡Ç½¤òÎóµ­¤·¤¿¥¢¥¹¥­¡¼¥Õ¥¡¥¤¥ë -(¥Ç¡¼¥¿¥Ù¡¼¥¹¥Þ¥¹¥¿¡¼) ¤Ç¤¢¤ë¡£ -¥×¥í¥°¥é¥à¤Ï termcap ¤òÆɤ߹þ¤ó¤Ç¡¢ -¼ÂºÝ¤Ë»ÈÍѤ·¤Æ¤¤¤ëüËö¤Ë¸ÄÊ̤Υ¨¥¹¥±¡¼¥×¥³¡¼¥É·²¤ò¼èÆÀ¤¹¤ë¡£ -¤³¤ì¤òÍѤ¤¤ë¤È¡¢¤½¤ÎüËö¤Î»ë³ÐŪ¤ÊÀ­¼Á¤òÀ©¸æ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë -(üËö¤Î¾¤ÎÀ­¼Á¤Ï +は、多くの異なる種類の端末に関する機能を列記したアスキーファイル +(データベースマスター) である。 +プログラムは termcap を読み込んで、 +実際に使用している端末に個別のエスケープコード群を取得する。 +これを用いると、その端末の視覚的な性質を制御することができる +(端末の他の性質は .BR stty (1) -¤ÇÀ©¸æ¤¹¤ë)¡£ -termcap ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ï¡¢´Ä¶­ÊÑ¿ô +で制御する)。 +termcap データベースは、環境変数 .B TERM -¤ÎÃͤǰú¤«¤ì¤ë¡£ +の値で引かれる。 .LP .\"O Termcap entries must be defined on a single logical line, with \(aq\\\(aq .\"O used to suppress the newline. .\"O Fields are separated by \(aq:\(aq. .\"O The first field of each entry starts at the left-hand margin, .\"O and contains a list of names for the terminal, separated by \(aq|\(aq. -termcap ¤Î¥¨¥ó¥È¥ê¤Ï¡¢Ã±°ì¤ÎÏÀÍý¹Ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤¿¤À¤·¡¢¹ÔËö¤Ë \(aq\\\(aq ¤òÍѤ¤¤ì¤Ð¤½¤³¤Ç¤Î²þ¹Ô¤òÍÞÀ©¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥Õ¥£¡¼¥ë¥É¤Ï \(aq:\(aq ¤Çʬ³ä¤µ¤ì¤ë¡£ -³Æ¥¨¥ó¥È¥ê¤ÎºÇ½é¤Î¥Õ¥£¡¼¥ë¥É¤Ïº¸Â¦ÀèƬ¤«¤é»Ï¤Þ¤ê¡¢ -ÆâÍƤϤ½¤ÎüËö¤Î̾Á°¤Î¥ê¥¹¥È¤Ç¤¢¤ë¡£Ì¾Á°¤Î¶èÀÚ¤ê¤Ë¤Ï \(aq|\(aq ¤¬ÍѤ¤¤é¤ì¤ë¡£ +termcap のエントリは、単一の論理行でなければならない。 +ただし、行末に \(aq\\\(aq を用いればそこでの改行を抑制することができる。 +フィールドは \(aq:\(aq で分割される。 +各エントリの最初のフィールドは左側先頭から始まり、 +内容はその端末の名前のリストである。名前の区切りには \(aq|\(aq が用いられる。 .LP .\"O The first subfield may (in BSD termcap entries from versions 4.3 and .\"O prior) contain a short name consisting of two characters. .\"O This short name may consist of capital or small letters. .\"O In 4.4BSD termcap entries this field is omitted. -ºÇ½é¤Î¥µ¥Ö¥Õ¥£¡¼¥ë¥É¤Ï -(4.3 °ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤ÎBSD termcap ¥¨¥ó¥È¥ê¤Ç¤Ï) -2 ʸ»ú¤«¤é¤Ê¤ëû¤¤Ì¾Á°¤È¤Ê¤Ã¤Æ¤¤¤ë¡£¤³¤Îû¤¤Ì¾Á°¤Ï -Âçʸ»ú¤â¤·¤¯¤Ï¾®Ê¸»ú¤Ç¹½À®¤µ¤ì¤ë¡£4.4BSD ¤Î termcap ¥¨¥ó¥È¥ê¤Ç¤Ï¡¢ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¾Êά¤µ¤ì¤ë¡£ +最初のサブフィールドは +(4.3 以前のバージョンのBSD termcap エントリでは) +2 文字からなる短い名前となっている。この短い名前は +大文字もしくは小文字で構成される。4.4BSD の termcap エントリでは、 +このフィールドは省略される。 .LP .\"O The second subfield (first, in the newer 4.4BSD format) contains the .\"O name used by the environment variable @@ -121,39 +121,39 @@ termcap .\"O display). .\"O The third subfield contains a long and descriptive name for .\"O this termcap entry. -2 ÈÖÌÜ (ºÇ¿·¤Î 4.4BSD ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤Ï 1 ÈÖÌÜ) ¤Î¥µ¥Ö¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¡¢ -´Ä¶­ÊÑ¿ô +2 番目 (最新の 4.4BSD フォーマットでは 1 番目) のサブフィールドには、 +環境変数 .B TERM -¤ÇÍѤ¤¤é¤ì¤ë̾¾Î¤¬Æþ¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¾®Ê¸»ú¤·¤«»È¤¨¤Ê¤¤¡£ -ÁªÂò²Äǽ¤Ê¥Ï¡¼¥É¥¦¥§¥¢µ¡Ç½¤Ï¡¢¥Ï¥¤¥Õ¥ó¤ÈÀÜÈø¸ì (suffix) -¤ò̾¾Î¤Î¸å¤ËÄɲ乤뤳¤È¤Ë¤è¤Ã¤Æ¼¨¤¹É¬Íפ¬¤¢¤ë¡£°Ê²¼¤ÎÎã¤ò¸«¤è¡£ -´·½¬Åª¤ÊÀÜÈø¸ì¤Ë¤Ï¡¢w (80 ʸ»ú°Ê¾å¤ÎÉý¤¬¤¢¤ë)¡¢ -am (automatic margins: ¼«Æ°Åª¤Ê¹Ô¤ÎÀÞ¤êÊÖ¤·)¡¢ -nam (non automatic margins: ¼«Æ°Åª¤Ç¤Ê¤¤¹Ô¤ÎÀÞ¤êÊÖ¤·)¡¢ -rv (reverse video display: ȿž¥Ó¥Ç¥ªÉ½¼¨) -¤Ê¤É¤¬¤¢¤ë¡£ -3ÈÖÌܤΥµ¥Ö¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¡¢ -¤³¤Îtermcap¥¨¥ó¥È¥ê¡¼¤ËÂФ¹¤ëŤ¤ÀâÌÀŪ¤Ê̾¾Î¤¬Æþ¤ë¡£ +で用いられる名称が入る。 +このフィールドには小文字しか使えない。 +選択可能なハードウェア機能は、ハイフンと接尾語 (suffix) +を名称の後に追加することによって示す必要がある。以下の例を見よ。 +慣習的な接尾語には、w (80 文字以上の幅がある)、 +am (automatic margins: 自動的な行の折り返し)、 +nam (non automatic margins: 自動的でない行の折り返し)、 +rv (reverse video display: 反転ビデオ表示) +などがある。 +3番目のサブフィールドには、 +このtermcapエントリーに対する長い説明的な名称が入る。 .LP .\"O Subsequent fields contain the terminal capabilities; any continued .\"O capability lines must be indented one tab from the left margin. -¤³¤Î¸å¤Ë³¤¯¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¡¢Ã¼Ëö¤Îµ¡Ç½¤òµ­½Ò¤¹¤ë¡£ -µ¡Ç½¤òµ­½Ò¤¹¤ë¹Ô¤¬·Ñ³¤¹¤ë¾ì¹ç¤Ï¡¢ -º¸Ã¼¤«¤é1¤Ä¤Î¥¿¥Ö¤ò¤ª¤¤¤Æ¥¤¥ó¥Ç¥ó¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +この後に続くフィールドには、端末の機能を記述する。 +機能を記述する行が継続する場合は、 +左端から1つのタブをおいてインデントしなければならない。 .LP .\"O Although there is no defined order, it is suggested to write first .\"O boolean, then numeric, and then string capabilities, each sorted .\"O alphabetically without looking at lower or upper spelling. .\"O Capabilities of similar functions can be written in one line. -½ç½ø¤Ë¤Ä¤¤¤Æ¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -Âçʸ»ú¾®Ê¸»ú¤Ï¶èÊ̤»¤º¤Ë¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½ç¤Ë¤Ê¤é¤Ù¡¢ -»Ï¤á¤Ï¥Ö¡¼¥ëÃͤΡ¢¼¡¤Ï¿ôÃͤΡ¢ºÇ¸å¤Ïʸ»úÎó¤Îµ¡Ç½¤ò½ñ¤¯¤³¤È¤¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£ -Ʊ¤¸¤è¤¦¤ÊƯ¤­¤ò¤¹¤ëµ¡Ç½¤Ï 1 ¹Ô¤Ë¤Þ¤È¤á¤Æ½ñ¤¯¤ÈÎɤ¤¡£ +順序については定義されていないが、 +大文字小文字は区別せずにアルファベット順にならべ、 +始めはブール値の、次は数値の、最後は文字列の機能を書くことが推奨されている。 +同じような働きをする機能は 1 行にまとめて書くと良い。 .LP .nf .\"O Example for: -Îã: +例: .sp Head line: vt|vt101|DEC VT 101 terminal in 80 character mode:\e Head line: Vt|vt101-w|DEC VT 101 terminal in (wide) 132 character mode:\e @@ -162,721 +162,721 @@ Numeric: :co#80:\e String: :sr=\eE[H:\e .fi .\"O .SS "Boolean Capabilities" -.SS "¥Ö¡¼¥ëÃͤǻØÄꤹ¤ëµ¡Ç½" +.SS "ブール値で指定する機能" .nf .\"O 5i Printer will not echo on screen -5i ¥×¥ê¥ó¥¿¤Ï¥¹¥¯¥ê¡¼¥ó¤Ë¥¨¥³¡¼¤·¤Ê¤¤ +5i プリンタはスクリーンにエコーしない .\"O am Automatic margins which means automatic line wrap -am ¼«Æ°¥Þ¡¼¥¸¥ó¡£¼«Æ°Åª¤Ë¹Ô¤òÀÞ¤êÊÖ¤¹ +am 自動マージン。自動的に行を折り返す .\"O bs Control-H (8 dec.) performs a backspace -bs ¥³¥ó¥È¥í¡¼¥ë H (¥­¡¼¥³¡¼¥É 8) ¤ò¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹¤È¤·¤Æ°·¤¦ +bs コントロール H (キーコード 8) をバックスペースとして扱う .\"O bw Backspace on left margin wraps to previous line and right margin -bw º¸Ã¼¤Ç¤Î¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹¤ò¡¢¾å¤Î¹Ô¤Î±¦Ã¼¤ËÀÞ¤êÊÖ¤¹ +bw 左端でのバックスペースを、上の行の右端に折り返す .\"O da Display retained above screen -da ²èÌ̤ξåü¤«¤é³°¤ì¤Æ¤¤¤¿¹Ô¤òɽ¼¨¤¹¤ë (Ä̾ï¤Ï¥Þ¥ë¥Á¥Ú¡¼¥¸Ã¼Ëö¤Ç) +da 画面の上端から外れていた行を表示する (通常はマルチページ端末で) .\"O db Display retained below screen -db ²èÌ̤β¼Ã¼¤«¤é³°¤ì¤Æ¤¤¤¿¹Ô¤òɽ¼¨¤¹¤ë (Ä̾ï¤Ï¥Þ¥ë¥Á¥Ú¡¼¥¸Ã¼Ëö¤Ç) +db 画面の下端から外れていた行を表示する (通常はマルチページ端末で) .\"O eo A space erases all characters at cursor position -eo ¶õÇòʸ»ú¤Ï¥«¡¼¥½¥ë°ÌÃÖ¤ÎÁ´¤Æ¤Îʸ»ú¤ò¾Ã¤¹ +eo 空白文字はカーソル位置の全ての文字を消す .\"O es Escape sequences and special characters work in status line -es ¥¹¥Æ¡¼¥¿¥¹¹Ô¾å¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤äÆüìʸ»ú¤ÏÍ­¸ú¤ËƯ¤¯ +es ステータス行上のエスケープシーケンスや特殊文字は有効に働く .\"O gn Generic device -gn °ìÈÌŪ¤Ê¥Ç¥Ð¥¤¥¹¤Ç¤¢¤ë +gn 一般的なデバイスである .\"O hc This is a hardcopy terminal -hc ¥Ï¡¼¥É¥³¥Ô¡¼Ã¼Ëö¤Ç¤¢¤ë +hc ハードコピー端末である .\"O HC The cursor is hard to see when not on bottom line -HC ºÇ²¼¹Ô¤Ë¤Ê¤¤¥«¡¼¥½¥ë¤Ï¸«¤Å¤é¤¤ +HC 最下行にないカーソルは見づらい .\"O hs Has a status line -hs ¥¹¥Æ¡¼¥¿¥¹¹Ô¤¬¤¢¤ë +hs ステータス行がある .\"O hz Hazeltine bug, the terminal can not print tilde characters -hz ¥Á¥ë¥Àʸ»ú¤¬É½¼¨¤Ç¤­¤Ê¤¤Ã¼Ëö¤Ç¤¢¤ë (Hazeltine üËö¤Î¥Ð¥°) +hz チルダ文字が表示できない端末である (Hazeltine 端末のバグ) .\"O in Terminal inserts null bytes, not spaces, to fill whitespace -in ¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹¤òËä¤á¤ë¤Î¤Ë¡¢¥¹¥Ú¡¼¥¹¤Ç¤Ï¤Ê¤¯ NULL ¥Ð¥¤¥È¤òÁÞÆþ¤¹¤ëüËö¤Ç¤¢¤ë +in ホワイトスペースを埋めるのに、スペースではなく NULL バイトを挿入する端末である .\"O km Terminal has a meta key -km üËö¤Ë¤Ï¥á¥¿¥­¡¼¤¬¤¢¤ë +km 端末にはメタキーがある .\"O mi Cursor movement works in insert mode -mi ÁÞÆþ¥â¡¼¥É¤Ç¤â¥«¡¼¥½¥ë°ÜÆ°¤¬¤Ç¤­¤ë +mi 挿入モードでもカーソル移動ができる .\"O ms Cursor movement works in standout/underline mode -ms ¶¯Ä´/²¼Àþ¥â¡¼¥É¤Ç¤â¥«¡¼¥½¥ë°ÜÆ°¤¬¤Ç¤­¤ë +ms 強調/下線モードでもカーソル移動ができる .\"O NP No pad character -NP ¥Ñ¥Ç¥£¥ó¥°Ê¸»ú¤¬¤Ê¤¤ +NP パディング文字がない .\"O NR ti does not reverse te -NR ti ¤Ï te ¤òȿž¤·¤Ê¤¤ +NR ti は te を反転しない .\"O nx No padding, must use XON/XOFF -nx ¥Ñ¥Ç¥£¥ó¥°¤Ç¤Ï¤Ê¤¯¡¢XON/XOFF ¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ +nx パディングではなく、XON/XOFF を使わなければならない .\"O os Terminal can overstrike -os ½Å¤ÍÂǤÁ¤¬²Äǽ¤ÊüËö¤Ç¤¢¤ë +os 重ね打ちが可能な端末である .\"O ul Terminal underlines although it can not overstrike -ul ½Å¤ÍÂǤÁ¤Ï¤Ç¤­¤Ê¤¤¤¬¡¢²¼Àþɽ¼¨¤Î¤Ç¤­¤ëüËö¤Ç¤¢¤ë +ul 重ね打ちはできないが、下線表示のできる端末である .\"O xb Beehive glitch, f1 sends ESCAPE, f2 sends \fB^C\fP -xb f1 ¤Ï¥¨¥¹¥±¡¼¥×¤òÁ÷¿®¤·¡¢f2 ¤Ï \fB^C\fP ¤òÁ÷¿®¤¹¤ë (Beehive üËö¤ÎÉÔ¶ñ¹ç) +xb f1 はエスケープを送信し、f2 は \fB^C\fP を送信する (Beehive 端末の不具合) .\"O xn Newline/wraparound glitch -xn ²þ¹Ô/ÀÞ¤êÊÖ¤·¤ËÉÔ¶ñ¹ç¤¬¤¢¤ë +xn 改行/折り返しに不具合がある .\"O xo Terminal uses xon/xoff protocol -xo üËö¤Ï xon/xoff ¥×¥í¥È¥³¥ë¤òÍѤ¤¤ë +xo 端末は xon/xoff プロトコルを用いる .\"O xs Text typed over standout text will be displayed in standout -xs ¶¯Ä´Ê¸»ú¤Î¾å¤Ë½ÐÎϤµ¤ì¤¿Ê¸»ú¤Ï¶¯Ä´Ê¸»ú¤È¤·¤Æɽ¼¨¤µ¤ì¤ë +xs 強調文字の上に出力された文字は強調文字として表示される .\"O xt Teleray glitch, destructive tabs and odd standout mode -xt Ç˲õŪ¤Ê¥¿¥Ö¤ÈÃæÅÓȾü¤Ê¶¯Ä´¥â¡¼¥É (Teleray üËö¤ÎÉÔ¶ñ¹ç) +xt 破壊的なタブと中途半端な強調モード (Teleray 端末の不具合) .fi .\"O .SS "Numeric Capabilities" -.SS "¿ôÃͤǻØÄꤹ¤ëµ¡Ç½" +.SS "数値で指定する機能" .nf .\"O co Number of columns -co üËö¤Î¹Ô¿ô +co 端末の行数 .\"O dB Delay in milliseconds for backspace on hardcopy terminals -dB ¥Ï¡¼¥É¥³¥Ô¡¼Ã¼Ëö¤Ë¤ª¤¤¤Æ¡¢¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹¤ËɬÍפÊÃÙ±ä»þ´Ö (¥ß¥êÉÃñ°Ì) +dB ハードコピー端末において、バックスペースに必要な遅延時間 (ミリ秒単位) .\"O dC Delay in milliseconds for carriage return on hardcopy terminals -dC ¥Ï¡¼¥É¥³¥Ô¡¼Ã¼Ëö¤Ë¤ª¤¤¤Æ¡¢Éüµ¢¤ËɬÍפÊÃÙ±ä»þ´Ö (¥ß¥êÉÃñ°Ì) +dC ハードコピー端末において、復帰に必要な遅延時間 (ミリ秒単位) .\"O dF Delay in milliseconds for form feed on hardcopy terminals -dF ¥Ï¡¼¥É¥³¥Ô¡¼Ã¼Ëö¤Ë¤ª¤¤¤Æ¡¢ÊÇÁ÷¤ê¤ËɬÍפÊÃÙ±ä»þ´Ö (¥ß¥êÉÃñ°Ì) +dF ハードコピー端末において、頁送りに必要な遅延時間 (ミリ秒単位) .\"O dN Delay in milliseconds for new line on hardcopy terminals -dN ¥Ï¡¼¥É¥³¥Ô¡¼Ã¼Ëö¤Ë¤ª¤¤¤Æ¡¢²þ¹Ô¤ËɬÍפÊÃÙ±ä»þ´Ö (¥ß¥êÉÃñ°Ì) +dN ハードコピー端末において、改行に必要な遅延時間 (ミリ秒単位) .\"O dT Delay in milliseconds for tabulator stop on hardcopy terminals -dT ¥Ï¡¼¥É¥³¥Ô¡¼Ã¼Ëö¤Ë¤ª¤¤¤Æ¡¢¥¿¥Ö¥¹¥È¥Ã¥×¤ËɬÍפÊÃÙ±ä»þ´Ö (¥ß¥êÉÃñ°Ì) +dT ハードコピー端末において、タブストップに必要な遅延時間 (ミリ秒単位) .\"O dV Delay in milliseconds for vertical tabulator stop on .\"O hardcopy terminals -dV ¥Ï¡¼¥É¥³¥Ô¡¼Ã¼Ëö¤Ë¤ª¤¤¤Æ¡¢¿âľ¥¿¥Ö¤ËɬÍפÊÃÙ±ä»þ´Ö (¥ß¥êÉÃñ°Ì) +dV ハードコピー端末において、垂直タブに必要な遅延時間 (ミリ秒単位) .\"O it Difference between tab positions -it ¥¿¥Ö°ÌÃÖ´Ö¤Îʸ»ú¿ô +it タブ位置間の文字数 .\"O lh Height of soft labels -lh ¥½¥Õ¥È¥é¥Ù¥ë¤Î¹â¤µ +lh ソフトラベルの高さ .\"O lm Lines of memory -lm ²èÌÌ¥á¥â¥ê¤Ë¼ýÍƤǤ­¤ë¹Ô¿ô +lm 画面メモリに収容できる行数 .\"O lw Width of soft labels -lw ¥½¥Õ¥È¥é¥Ù¥ë¤ÎÉý +lw ソフトラベルの幅 .\"O li Number of lines -li ¹Ô¿ô +li 行数 .\"O Nl Number of soft labels -Nl ¥½¥Õ¥È¥é¥Ù¥ë¤Î¿ô +Nl ソフトラベルの数 .\"O pb Lowest baud rate which needs padding -pb ¥Ñ¥Ç¥£¥ó¥°¤¬É¬ÍפȤʤëºÇÄã¤Î¥Ü¡¼¥ì¡¼¥È +pb パディングが必要となる最低のボーレート .\"O sg Standout glitch -sg ¶¯Ä´É½¼¨¤ÎÉÔ¶ñ¹ç (¶¯Ä´É½¼¨¤ËÀÚÂؤ¨¤¿¤È¤­¤Ëɽ¼¨¤µ¤ì¤ë¥¹¥Ú¡¼¥¹¤Î¿ô) +sg 強調表示の不具合 (強調表示に切替えたときに表示されるスペースの数) .\"O ug Underline glitch -ug ²¼Àþɽ¼¨¤ÎÉÔ¶ñ¹ç (¶¯Ä´É½¼¨¤ËÀÚÂؤ¨¤¿¤È¤­¤Ëɽ¼¨¤µ¤ì¤ë¥¹¥Ú¡¼¥¹¤Î¿ô) +ug 下線表示の不具合 (強調表示に切替えたときに表示されるスペースの数) .\"O vt virtual terminal number -vt ²¾ÁÛüËöÈÖ¹æ +vt 仮想端末番号 .\"O ws Width of status line if different from screen width -ws ¥¹¥Æ¡¼¥¿¥¹¹Ô¤ÎÉý (²èÌÌÉý¤È°Û¤Ê¤ë¾ì¹ç) +ws ステータス行の幅 (画面幅と異なる場合) .fi .\"O .SS "String Capabilities" -.SS "ʸ»úÎó¤Ç»ØÄꤹ¤ëµ¡Ç½" +.SS "文字列で指定する機能" .nf .\"O !1 shifted save key -!1 ¥·¥Õ¥È¾õÂ֤Πsave ¥­¡¼ +!1 シフト状態の save キー .\"O !2 shifted suspend key -!2 ¥·¥Õ¥È¾õÂ֤Πsuspend ¥­¡¼ +!2 シフト状態の suspend キー .\"O !3 shifted undo key -!3 ¥·¥Õ¥È¾õÂ֤Πundo ¥­¡¼ +!3 シフト状態の undo キー .\"O #1 shifted help key -#1 ¥·¥Õ¥È¾õÂ֤Πhelp ¥­¡¼ +#1 シフト状態の help キー .\"O #2 shifted home key -#2 ¥·¥Õ¥È¾õÂ֤Πhome ¥­¡¼ +#2 シフト状態の home キー .\"O #3 shifted input key -#3 ¥·¥Õ¥È¾õÂ֤Πinput ¥­¡¼ +#3 シフト状態の input キー .\"O #4 shifted cursor left key -#4 ¥·¥Õ¥È¾õÂ֤κ¸¥«¡¼¥½¥ë¥­¡¼ +#4 シフト状態の左カーソルキー .\"O %0 redo key -%0 redo ¥­¡¼ +%0 redo キー .\"O %1 help key -%1 help ¥­¡¼ +%1 help キー .\"O %2 mark key -%2 mark¥­¡¼ +%2 markキー .\"O %3 message key -%3 message ¥­¡¼ +%3 message キー .\"O %4 move key -%4 move ¥­¡¼ +%4 move キー .\"O %5 next-object key -%5 next-object ¥­¡¼ +%5 next-object キー .\"O %6 open key -%6 open ¥­¡¼ +%6 open キー .\"O %7 options key -%7 options ¥­¡¼ +%7 options キー .\"O %8 previous-object key -%8 previous-object ¥­¡¼ +%8 previous-object キー .\"O %9 print key -%9 print ¥­¡¼ +%9 print キー .\"O %a shifted message key -%a ¥·¥Õ¥È¾õÂ֤Πmessage ¥­¡¼ +%a シフト状態の message キー .\"O %b shifted move key -%b ¥·¥Õ¥È¾õÂ֤Πmove ¥­¡¼ +%b シフト状態の move キー .\"O %c shifted next key -%c ¥·¥Õ¥È¾õÂ֤Πnext ¥­¡¼ +%c シフト状態の next キー .\"O %d shifted options key -%d ¥·¥Õ¥È¾õÂ֤Πoptions ¥­¡¼ +%d シフト状態の options キー .\"O %e shifted previous key -%e ¥·¥Õ¥È¾õÂ֤Πprevious ¥­¡¼ +%e シフト状態の previous キー .\"O %f shifted print key -%f ¥·¥Õ¥È¾õÂ֤Πprint ¥­¡¼ +%f シフト状態の print キー .\"O %g shifted redo key -%g ¥·¥Õ¥È¾õÂ֤Πredo ¥­¡¼ +%g シフト状態の redo キー .\"O %h shifted replace key -%h ¥·¥Õ¥È¾õÂ֤Πreplace ¥­¡¼ +%h シフト状態の replace キー .\"O %i shifted cursor right key -%i ¥·¥Õ¥È¾õÂ֤ᦥ«¡¼¥½¥ë¥­¡¼ +%i シフト状態の右カーソルキー .\"O %j shifted resume key -%j ¥·¥Õ¥È¾õÂ֤Πresume ¥­¡¼ +%j シフト状態の resume キー .\"O &0 shifted cancel key -&0 ¥·¥Õ¥È¾õÂ֤Πcancel ¥­¡¼ +&0 シフト状態の cancel キー .\"O &1 reference key -&1 reference ¥­¡¼ +&1 reference キー .\"O &2 refresh key -&2 refresh ¥­¡¼ +&2 refresh キー .\"O &3 replace key -&3 replace ¥­¡¼ +&3 replace キー .\"O &4 restart key -&4 restart ¥­¡¼ +&4 restart キー .\"O &5 resume key -&5 resume ¥­¡¼ +&5 resume キー .\"O &6 save key -&6 save ¥­¡¼ +&6 save キー .\"O &7 suspend key -&7 suspend ¥­¡¼ +&7 suspend キー .\"O &8 undo key -&8 undo ¥­¡¼ +&8 undo キー .\"O &9 shifted begin key -&9 ¥·¥Õ¥È¾õÂ֤Πbegin ¥­¡¼ +&9 シフト状態の begin キー .\"O *0 shifted find key -*0 ¥·¥Õ¥È¾õÂ֤Πfind ¥­¡¼ +*0 シフト状態の find キー .\"O *1 shifted command key -*1 ¥·¥Õ¥È¾õÂ֤Πcommand ¥­¡¼ +*1 シフト状態の command キー .\"O *2 shifted copy key -*2 ¥·¥Õ¥È¾õÂ֤Πcopy ¥­¡¼ +*2 シフト状態の copy キー .\"O *3 shifted create key -*3 ¥·¥Õ¥È¾õÂ֤Πcreate ¥­¡¼ +*3 シフト状態の create キー .\"O *4 shifted delete character -*4 ¥·¥Õ¥È¾õÂ֤Πdelete ¥­¡¼ +*4 シフト状態の delete キー .\"O *5 shifted delete line -*5 ¥·¥Õ¥È¾õÂ֤Πdelete line ¥­¡¼ +*5 シフト状態の delete line キー .\"O *6 select key -*6 select ¥­¡¼ +*6 select キー .\"O *7 shifted end key -*7 ¥·¥Õ¥È¾õÂ֤Πend ¥­¡¼ +*7 シフト状態の end キー .\"O *8 shifted clear line key -*8 ¥·¥Õ¥È¾õÂ֤Πclear line ¥­¡¼ +*8 シフト状態の clear line キー .\"O *9 shifted exit key -*9 ¥·¥Õ¥È¾õÂ֤Πexit ¥­¡¼ +*9 シフト状態の exit キー .\"O @0 find key -@0 find ¥­¡¼ +@0 find キー .\"O @1 begin key -@1 begin ¥­¡¼ +@1 begin キー .\"O @2 cancel key -@2 cancel ¥­¡¼ +@2 cancel キー .\"O @3 close key -@3 close ¥­¡¼ +@3 close キー .\"O @4 command key -@4 command ¥­¡¼ +@4 command キー .\"O @5 copy key -@5 copy ¥­¡¼ +@5 copy キー .\"O @6 create key -@6 create ¥­¡¼ +@6 create キー .\"O @7 end key -@7 end ¥­¡¼ +@7 end キー .\"O @8 enter/send key -@8 enter/send ¥­¡¼ +@8 enter/send キー .\"O @9 exit key -@9 exit ¥­¡¼ +@9 exit キー .\"O al Insert one line -al 1 ¹ÔÁÞÆþ¤¹¤ë +al 1 行挿入する .\"O AL Insert %1 lines -AL %1 ¹ÔÁÞÆþ¤¹¤ë +AL %1 行挿入する .\"O ac Pairs of block graphic characters to map alternate character set -ac ¿Þ·Áʸ»ú¤Î¥Ú¥¢¤Î½¸¹ç¡£ÂåÂØʸ»ú¥»¥Ã¥È¤Ë¥Þ¥Ã¥×¤¹¤ë¤¿¤á¤Î¤â¤Î +ac 図形文字のペアの集合。代替文字セットにマップするためのもの .\"O ae End alternative character set -ae ÂåÂØʸ»ú¥»¥Ã¥È¤Î½ª¤ê +ae 代替文字セットの終り .\"O as Start alternative character set for block graphic characters -as ¿Þ·Áʸ»ú½¸¹ç¤ËÂФ¹¤ë¡¢ÂåÂØʸ»ú¥»¥Ã¥È¤Î³«»Ï +as 図形文字集合に対する、代替文字セットの開始 .\"O bc Backspace, if not \fB^H\fP -bc \fB^H\fP ¤¬¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹¤Ç¤Ê¤¤¾ì¹ç¤Î¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹ +bc \fB^H\fP がバックスペースでない場合のバックスペース .\"O bl Audio bell -bl (²»À¼¤Î) ¥Ù¥ë¤òÌĤ餹 +bl (音声の) ベルを鳴らす .\"O bt Move to previous tab stop -bt Á°¤Î¥¿¥Ö¥¹¥È¥Ã¥×¤Ø°ÜÆ° +bt 前のタブストップへ移動 .\"O cb Clear from beginning of line to cursor -cb ¹ÔƬ¤«¤é¥«¡¼¥½¥ë°ÌÃ֤ޤǤΥ¯¥ê¥¢ +cb 行頭からカーソル位置までのクリア .\"O cc Dummy command character -cc ¥À¥ß¡¼¥³¥Þ¥ó¥Éʸ»ú +cc ダミーコマンド文字 .\"O cd Clear to end of screen -cd ²èÌ̤κǸå¤Þ¤Ç¤ò¥¯¥ê¥¢ +cd 画面の最後までをクリア .\"O ce Clear to end of line -ce ¹Ô¤ÎºÇ¸å¤Þ¤Ç¤ò¥¯¥ê¥¢ +ce 行の最後までをクリア .\"O ch Move cursor horizontally only to column %1 -ch ¥«¡¼¥½¥ë¤ò¿åÊ¿Êý¸þ¤Ë¤À¤±°ÜÆ°¤·¡¢ %1 ·å¤Î°ÌÃ֤ˤ¹¤ë +ch カーソルを水平方向にだけ移動し、 %1 桁の位置にする .\"O cl Clear screen and cursor home -cl ²èÌ̤ò¾Ãµî¤·¡¢¥«¡¼¥½¥ë¤ò¥Û¡¼¥à¥Ý¥¸¥·¥ç¥ó¤Ø +cl 画面を消去し、カーソルをホームポジションへ .\"O cm Cursor move to row %1 and column %2 (on screen) -cm ²èÌ̾å¤Î %1 ¹Ô¡¢ %2 ·å¤Ø¥«¡¼¥½¥ë¤ò°ÜÆ° +cm 画面上の %1 行、 %2 桁へカーソルを移動 .\"O CM Move cursor to row %1 and column %2 (in memory) -CM ¥á¥â¥ê¾å¤Î %1 ¹Ô¡¢ %2 ·å¤Ø¥«¡¼¥½¥ë¤ò°ÜÆ° +CM メモリ上の %1 行、 %2 桁へカーソルを移動 .\"O cr Carriage return -cr Éüµ¢ +cr 復帰 .\"O cs Scroll region from line %1 to %2 -cs %1 ¹ÔÌܤ«¤é %2 ¹ÔÌܤޤǤÎÈϰϤò¥¹¥¯¥í¡¼¥ë¤¹¤ë +cs %1 行目から %2 行目までの範囲をスクロールする .\"O ct Clear tabs -ct ¥¿¥Ö¤Î¾Ãµî +ct タブの消去 .\"O cv Move cursor vertically only to line %1 -cv ¥«¡¼¥½¥ë¤ò¿âľÊý¸þ¤Ë¤À¤±°ÜÆ°¤·¡¢ %1 ¹Ô¤Î°ÌÃ֤ˤ¹¤ë +cv カーソルを垂直方向にだけ移動し、 %1 行の位置にする .\"O dc Delete one character -dc °ìʸ»úºï½ü¤¹¤ë +dc 一文字削除する .\"O DC Delete %1 characters -DC %1 ʸ»úºï½ü¤¹¤ë +DC %1 文字削除する .\"O dl Delete one line -dl °ì¹Ôºï½ü¤¹¤ë +dl 一行削除する .\"O DL Delete %1 lines -DL %1 ¹Ôºï½ü¤¹¤ë +DL %1 行削除する .\"O dm Begin delete mode -dm delete ¥â¡¼¥É³«»Ï +dm delete モード開始 .\"O do Cursor down one line -do ¥«¡¼¥½¥ë¤ò°ì¹Ô²¼¤²¤ë +do カーソルを一行下げる .\"O DO Cursor down #1 lines -DO ¥«¡¼¥½¥ë¤ò #1 ¹Ô²¼¤²¤ë +DO カーソルを #1 行下げる .\"O ds Disable status line -ds ¥¹¥Æ¡¼¥¿¥¹¹Ô¤ò̵¸ú¤Ë¤¹¤ë +ds ステータス行を無効にする .\"O eA Enable alternate character set -eA ÂåÂØʸ»ú½¸¹ç¤òÍ­¸ú¤Ë¤¹¤ë +eA 代替文字集合を有効にする .\"O ec Erase %1 characters starting at cursor -ec ¥«¡¼¥½¥ë°ÌÃÖ¤«¤é %1 ʸ»ú¾Ãµî¤¹¤ë +ec カーソル位置から %1 文字消去する .\"O ed End delete mode -ed delete ¥â¡¼¥É½ªÎ» +ed delete モード終了 .\"O ei End insert mode -ei intert ¥â¡¼¥É½ªÎ» +ei intert モード終了 .\"O ff Formfeed character on hardcopy terminals -ff ¥Ï¡¼¥É¥³¥Ô¡¼Ã¼Ëö¤Ç¤ÎÊÇÁ÷¤êʸ»ú +ff ハードコピー端末での頁送り文字 .\"O fs Return character to its position before going to status line -fs ¥¹¥Æ¡¼¥¿¥¹¹Ô¤Ë°ÜÆ°¤¹¤ëÁ°¤Î°ÌÃÖ¤ØÉüµ¢¤¹¤ëʸ»ú +fs ステータス行に移動する前の位置へ復帰する文字 .\"O F1 The string sent by function key f11 .\"O F2 The string sent by function key f12 .\"O F3 The string sent by function key f13 -F1 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ f11 ¤¬Á÷½Ð¤¹¤ëʸ»úÎó -F2 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ f12 ¤¬Á÷½Ð¤¹¤ëʸ»úÎó -F3 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ f13 ¤¬Á÷½Ð¤¹¤ëʸ»úÎó +F1 ファンクションキー f11 が送出する文字列 +F2 ファンクションキー f12 が送出する文字列 +F3 ファンクションキー f13 が送出する文字列 \&... \&... .\"O F9 The string sent by function key f19 .\"O FA The string sent by function key f20 .\"O FB The string sent by function key f21 -F9 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ f19 ¤¬Á÷½Ð¤¹¤ëʸ»úÎó -FA ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ f20 ¤¬Á÷½Ð¤¹¤ëʸ»úÎó -FB ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ f21 ¤¬Á÷½Ð¤¹¤ëʸ»úÎó +F9 ファンクションキー f19 が送出する文字列 +FA ファンクションキー f20 が送出する文字列 +FB ファンクションキー f21 が送出する文字列 \&... \&... .\"O FZ The string sent by function key f45 .\"O Fa The string sent by function key f46 .\"O Fb The string sent by function key f47 -FZ ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ f45 ¤¬Á÷½Ð¤¹¤ëʸ»úÎó -Fa ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ f46 ¤¬Á÷½Ð¤¹¤ëʸ»úÎó -Fb ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ f47 ¤¬Á÷½Ð¤¹¤ëʸ»úÎó +FZ ファンクションキー f45 が送出する文字列 +Fa ファンクションキー f46 が送出する文字列 +Fb ファンクションキー f47 が送出する文字列 \&... \&... .\"O Fr The string sent by function key f63 -Fr ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ f63 ¤¬Á÷½Ð¤¹¤ëʸ»úÎó +Fr ファンクションキー f63 が送出する文字列 .\"O hd Move cursor a half line down -hd ¥«¡¼¥½¥ë¤ò°ì¹Ô¤ÎȾʬ¤À¤±²¼¤Ë°ÜÆ° +hd カーソルを一行の半分だけ下に移動 .\"O ho Cursor home -ho ¥«¡¼¥½¥ë¤ò¥Û¡¼¥à¥Ý¥¸¥·¥ç¥ó¤Ë°ÜÆ° +ho カーソルをホームポジションに移動 .\"O hu Move cursor a half line up -hu ¥«¡¼¥½¥ë¤ò°ì¹Ô¤ÎȾʬ¤À¤±¾å¤Ë°ÜÆ° +hu カーソルを一行の半分だけ上に移動 .\"O i1 Initialization string 1 at login -i1 ¥í¥°¥¤¥ó»þ¤Î½é´ü²½Ê¸»úÎó 1 +i1 ログイン時の初期化文字列 1 .\"O i3 Initialization string 3 at login -i3 ¥í¥°¥¤¥ó»þ¤Î½é´ü²½Ê¸»úÎó 3 +i3 ログイン時の初期化文字列 3 .\"O is Initialization string 2 at login -is ¥í¥°¥¤¥ó»þ¤Î½é´ü²½Ê¸»úÎó 2 +is ログイン時の初期化文字列 2 .\"O ic Insert one character -ic °ìʸ»úÁÞÆþ +ic 一文字挿入 .\"O IC Insert %1 characters -IC %1 ʸ»úÁÞÆþ +IC %1 文字挿入 .\"O if Initialization file -if ½é´ü²½¥Õ¥¡¥¤¥ë +if 初期化ファイル .\"O im Begin insert mode -im insert ¥â¡¼¥É³«»Ï +im insert モード開始 .\"O ip Insert pad time and needed special characters after insert -ip ÁÞÆþ¸å¤Î¥Ñ¥Ç¥£¥ó¥°¤ËɬÍפʻþ´Ö¤ÈÆüìʸ»ú +ip 挿入後のパディングに必要な時間と特殊文字 .\"O iP Initialization program -iP ½é´ü²½¥×¥í¥°¥é¥à +iP 初期化プログラム .\"O K1 upper left key on keypad -K1 ¥­¡¼¥Ñ¥Ã¥É¤Îº¸¾å¥­¡¼ +K1 キーパッドの左上キー .\"O K2 center key on keypad -K2 ¥­¡¼¥Ñ¥Ã¥É¤ÎÃæ±û¥­¡¼ +K2 キーパッドの中央キー .\"O K3 upper right key on keypad -K3 ¥­¡¼¥Ñ¥Ã¥É¤Î±¦¾å¥­¡¼ +K3 キーパッドの右上キー .\"O K4 bottom left key on keypad -K4 ¥­¡¼¥Ñ¥Ã¥É¤Îº¸²¼¥­¡¼ +K4 キーパッドの左下キー .\"O K5 bottom right key on keypad -K5 ¥­¡¼¥Ñ¥Ã¥É¤Î±¦²¼¥­¡¼ +K5 キーパッドの右下キー .\"O k0 Function key 0 -k0 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ 0 +k0 ファンクションキー 0 .\"O k1 Function key 1 -k1 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ 1 +k1 ファンクションキー 1 .\"O k2 Function key 2 -k2 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ 2 +k2 ファンクションキー 2 .\"O k3 Function key 3 -k3 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ 3 +k3 ファンクションキー 3 .\"O k4 Function key 4 -k4 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ 4 +k4 ファンクションキー 4 .\"O k5 Function key 5 -k5 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ 5 +k5 ファンクションキー 5 .\"O k6 Function key 6 -k6 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ 6 +k6 ファンクションキー 6 .\"O k7 Function key 7 -k7 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ 7 +k7 ファンクションキー 7 .\"O k8 Function key 8 -k8 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ 8 +k8 ファンクションキー 8 .\"O k9 Function key 9 -k9 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ 9 +k9 ファンクションキー 9 .\"O k; Function key 10 -k; ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ 10 +k; ファンクションキー 10 .\"O ka Clear all tabs key -ka clea all tabs ¥­¡¼ +ka clea all tabs キー .\"O kA Insert line key -kA insert line ¥­¡¼ +kA insert line キー .\"O kb Backspace key -kb ¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹¥­¡¼ +kb バックスペースキー .\"O kB Back tab stop -kB back tab ¥­¡¼ +kB back tab キー .\"O kC Clear screen key -kC clear screen ¥­¡¼ +kC clear screen キー .\"O kd Cursor down key -kd ²¼¥«¡¼¥½¥ë¥­¡¼ +kd 下カーソルキー .\"O kD Key for delete character under cursor -kD ¥«¡¼¥½¥ë°ÌÃÖ¤Îʸ»ú¤ò¾Ã¤¹¥­¡¼ +kD カーソル位置の文字を消すキー .\"O ke turn keypad off -ke ¥­¡¼¥Ñ¥Ã¥É¤ò¥ª¥Õ¤Ë¤¹¤ë +ke キーパッドをオフにする .\"O kE Key for clear to end of line -kE ¹ÔËö¤Þ¤Ç¤ò¥¯¥ê¥¢¤¹¤ë¥­¡¼ +kE 行末までをクリアするキー .\"O kF Key for scrolling forward/down -kF Á°Êý¸þ/²¼Êý¸þ¤Ø¥¹¥¯¥í¡¼¥ë¤¹¤ë¥­¡¼ +kF 前方向/下方向へスクロールするキー .\"O kh Cursor home key -kh home ¥­¡¼ +kh home キー .\"O kH Cursor hown down key -kH cursor hown down ¥­¡¼ +kH cursor hown down キー .\"O kI Insert character/Insert mode key -kI ʸ»úÁÞÆþ¥­¡¼/insert ¥â¡¼¥É¥­¡¼ +kI 文字挿入キー/insert モードキー .\"O kl Cursor left key -kl º¸¥«¡¼¥½¥ë¥­¡¼ +kl 左カーソルキー .\"O kL Key for delete line -kL ¹Ô¤òºï½ü¤¹¤ë¥­¡¼ +kL 行を削除するキー .\"O kM Key for exit insert mode -kM insert ¥â¡¼¥É¤ò½ªÎ»¤¹¤ë¥­¡¼ +kM insert モードを終了するキー .\"O kN Key for next page -kN ¼¡¤Î¥Ú¡¼¥¸¤Ø°ÜÆ°¤¹¤ë¥­¡¼ +kN 次のページへ移動するキー .\"O kP Key for previous page -kP Á°¤Î¥Ú¡¼¥¸¤Ø°ÜÆ°¤¹¤ë¥­¡¼ +kP 前のページへ移動するキー .\"O kr Cursor right key -kr ±¦¥«¡¼¥½¥ë¥­¡¼ +kr 右カーソルキー .\"O kR Key for scrolling backward/up -kR ¸å¤íÊý¸þ/¾åÊý¸þ¤Ë¥¹¥¯¥í¡¼¥ë¤¹¤ë¥­¡¼ +kR 後ろ方向/上方向にスクロールするキー .\"O ks Turn keypad on -ke ¥­¡¼¥Ñ¥Ã¥É¤ò¥ª¥ó¤Ë¤¹¤ë +ke キーパッドをオンにする .\"O kS Clear to end of screen key -kS ²èÌ̺Ǹå¤Þ¤Ç¤ò¥¯¥ê¥¢¤¹¤ë¥­¡¼ +kS 画面最後までをクリアするキー .\"O kt Clear this tab key -kt ¥¿¥Ö¥¯¥ê¥¢¥­¡¼ +kt タブクリアキー .\"O kT Set tab here key -kT ¥¿¥Ö¥¹¥È¥Ã¥×ÀßÄꥭ¡¼ +kT タブストップ設定キー .\"O ku Cursor up key -ku ¾å¥«¡¼¥½¥ë¥­¡¼ +ku 上カーソルキー .\"O l0 Label of zeroth function key, if not f0 .\"O l1 Label of first function key, if not f1 .\"O l2 Label of first function key, if not f2 -l0 0 ÈÖÌܤΥե¡¥ó¥¯¥·¥ç¥ó¥­¡¼¤Î¥é¥Ù¥ë (f0 ¤Ç¤Ê¤¤¾ì¹ç) -l1 1 ÈÖÌܤΥե¡¥ó¥¯¥·¥ç¥ó¥­¡¼¤Î¥é¥Ù¥ë (f1 ¤Ç¤Ê¤¤¾ì¹ç) -l2 2 ÈÖÌܤΥե¡¥ó¥¯¥·¥ç¥ó¥­¡¼¤Î¥é¥Ù¥ë (f2 ¤Ç¤Ê¤¤¾ì¹ç) +l0 0 番目のファンクションキーのラベル (f0 でない場合) +l1 1 番目のファンクションキーのラベル (f1 でない場合) +l2 2 番目のファンクションキーのラベル (f2 でない場合) \&... \&... .\"O la Label of tenth function key, if not f10 -la 10 ÈÖÌܤΥե¡¥ó¥¯¥·¥ç¥ó¥­¡¼¤Î¥é¥Ù¥ë (f10 ¤Ç¤Ê¤¤¾ì¹ç) +la 10 番目のファンクションキーのラベル (f10 でない場合) .\"O le Cursor left one character -le ¥«¡¼¥½¥ë¤òº¸¤Ø°ìʸ»úʬ°ÜÆ°¤¹¤ë +le カーソルを左へ一文字分移動する .\"O ll Move cursor to lower left corner -ll ¥«¡¼¥½¥ë¤òº¸²¼¶ù¤Ë°ÜÆ°¤¹¤ë +ll カーソルを左下隅に移動する .\"O LE Cursor left %1 characters -LE ¥«¡¼¥½¥ë¤òº¸ %1 ʸ»úʬ°ÜÆ°¤¹¤ë +LE カーソルを左 %1 文字分移動する .\"O LF Turn soft labels off -LF ¥½¥Õ¥È¥é¥Ù¥ë¤ò¥ª¥Õ¤Ë¤¹¤ë +LF ソフトラベルをオフにする .\"O LO Turn soft labels on -LO ¥½¥Õ¥È¥é¥Ù¥ë¤ò¥ª¥ó¤Ë¤¹¤ë +LO ソフトラベルをオンにする .\"O mb Start blinking -mb ÅÀÌdz«»Ï +mb 点滅開始 .\"O MC Clear soft margins -MC ¥½¥Õ¥È¥Þ¡¼¥¸¥ó¤ò¥¯¥ê¥¢ +MC ソフトマージンをクリア .\"O md Start bold mode -md bold ¥â¡¼¥É³«»Ï +md bold モード開始 .\"O me End all mode like so, us, mb, md and mr -me so, us, mb, md, mr ¤Ê¤É¤Î¥â¡¼¥ÉÁ´¤Æ¤ò½ªÎ»¤¹¤ë +me so, us, mb, md, mr などのモード全てを終了する .\"O mh Start half bright mode -mh Ⱦµ±Å٥⡼¥É³«»Ï +mh 半輝度モード開始 .\"O mk Dark mode (Characters invisible) -mk ¥À¡¼¥¯¥â¡¼¥É (ʸ»ú¤Ï¸«¤¨¤Ê¤¯¤Ê¤ë) +mk ダークモード (文字は見えなくなる) .\"O ML Set left soft margin -ML º¸Â¦¤Î¥½¥Õ¥È¥Þ¡¼¥¸¥ó¤òÀßÄê +ML 左側のソフトマージンを設定 .\"O mm Put terminal in meta mode -mm üËö¤ò¥á¥¿¥â¡¼¥É¤ËÀßÄꤹ¤ë +mm 端末をメタモードに設定する .\"O mo Put terminal out of meta mode -mo üËö¤ò¥á¥¿¥â¡¼¥É¤Ç¤Ê¤¯¤¹¤ë +mo 端末をメタモードでなくする .\"O mp Turn on protected attribute -mp °À­Êݸî¥â¡¼¥É¤ò¥ª¥ó¤Ë¤¹¤ë +mp 属性保護モードをオンにする .\"O mr Start reverse mode -mr ȿž¥â¡¼¥É³«»Ï +mr 反転モード開始 .\"O MR Set right soft margin -MR ±¦Ã¼¤Î¥½¥Õ¥È¥Þ¡¼¥¸¥ó¤òÀßÄê +MR 右端のソフトマージンを設定 .\"O nd Cursor right one character -nd ¥«¡¼¥½¥ë¤ò±¦¤Ë°ìʸ»úʬ°ÜÆ° +nd カーソルを右に一文字分移動 .\"O nw Carriage return command -nw Éüµ¢¥³¥Þ¥ó¥É +nw 復帰コマンド .\"O pc Padding character -pc ¥Ñ¥Ç¥£¥ó¥°Ê¸»ú +pc パディング文字 .\"O pf Turn printer off -pf ¥×¥ê¥ó¥¿¤ò¥ª¥Õ¤Ë¤¹¤ë +pf プリンタをオフにする .\"O pk Program key %1 to send string %2 as if typed by user -pk ¥æ¡¼¥¶¤¬ÆþÎϤ·¤¿¤È¤­¤Ëʸ»úÎó %2 ¤òÁ÷½Ð¤¹¤ë¥×¥í¥°¥é¥à¥­¡¼ %1 +pk ユーザが入力したときに文字列 %2 を送出するプログラムキー %1 .\"O pl Program key %1 to execute string %2 in local mode -pl ¥í¡¼¥«¥ë¥â¡¼¥É¤Çʸ»úÎó %2 ¤ò¼Â¹Ô¤¹¤ë¥×¥í¥°¥é¥à¥­¡¼ %1 +pl ローカルモードで文字列 %2 を実行するプログラムキー %1 .\"O pn Program soft label %1 to show string %2 -pn ʸ»úÎó %2 ¤òɽ¼¨¤¹¤ë¤¿¤á¤Î¥×¥í¥°¥é¥à¥½¥Õ¥È¥é¥Ù¥ë %1 +pn 文字列 %2 を表示するためのプログラムソフトラベル %1 .\"O po Turn the printer on -po ¥×¥ê¥ó¥¿¤ò¥ª¥ó¤Ë¤¹¤ë +po プリンタをオンにする .\"O pO Turn the printer on for %1 (<256) bytes -pO %1 (<256) ¥Ð¥¤¥È¤Î´Ö¥×¥ê¥ó¥¿¤ò¥ª¥ó¤Ë¤¹¤ë +pO %1 (<256) バイトの間プリンタをオンにする .\"O ps Print screen contents on printer -ps ²èÌ̾å¤ÎÆâÍƤò¥×¥ê¥ó¥¿¤Ë°õºþ¤¹¤ë +ps 画面上の内容をプリンタに印刷する .\"O px Program key %1 to send string %2 to computer -px ʸ»úÎó %2 ¤ò¥³¥ó¥Ô¥å¡¼¥¿¤ËÁ÷½Ð¤¹¤ë¥×¥í¥°¥é¥à¥­¡¼ %1 +px 文字列 %2 をコンピュータに送出するプログラムキー %1 .\"O r1 Reset string 1 to set terminal to sane modes .\"O r2 Reset string 2 to set terminal to sane modes .\"O r3 Reset string 3 to set terminal to sane modes -r1 üËö¤òÀµ¾ï¤Ê¥â¡¼¥É¤ËÀßÄꤹ¤ë¥ê¥»¥Ã¥Èʸ»úÎó 1 -r2 üËö¤òÀµ¾ï¤Ê¥â¡¼¥É¤ËÀßÄꤹ¤ë¥ê¥»¥Ã¥Èʸ»úÎó 2 -r3 üËö¤òÀµ¾ï¤Ê¥â¡¼¥É¤ËÀßÄꤹ¤ë¥ê¥»¥Ã¥Èʸ»úÎó 3 +r1 端末を正常なモードに設定するリセット文字列 1 +r2 端末を正常なモードに設定するリセット文字列 2 +r3 端末を正常なモードに設定するリセット文字列 3 .\"O RA disable automatic margins -RA ¼«Æ°ÀÞ¤êÊÖ¤·¤ò̵¸ú¤Ë¤¹¤ë +RA 自動折り返しを無効にする .\"O rc Restore saved cursor position -rc Êݸ¤·¤Æ¤ª¤¤¤¿¥«¡¼¥½¥ë°ÌÃÖ¤ËÉüµ¢¤¹¤ë +rc 保存しておいたカーソル位置に復帰する .\"O rf Reset string filename -rf ¥ê¥»¥Ã¥Èʸ»úÎó¤ÎÆþ¤Ã¤¿¥Õ¥¡¥¤¥ë̾ +rf リセット文字列の入ったファイル名 .\"O RF Request for input from terminal -RF üËö¤«¤é¤ÎÆþÎÏÍ×µá +RF 端末からの入力要求 .\"O RI Cursor right %1 characters -RI ¥«¡¼¥½¥ë¤ò±¦¤Ø %1 ʸ»úʬ°ÜÆ°¤¹¤ë +RI カーソルを右へ %1 文字分移動する .\"O rp Repeat character %1 for %2 times -rp ʸ»ú %1 ¤ò %2 ²óʬ·«¤êÊÖ¤¹ +rp 文字 %1 を %2 回分繰り返す .\"O rP Padding after character sent in replace mode -rP ÃÖ´¹¥â¡¼¥É¤Ë¤ª¤¤¤Æ¡¢Ê¸»ú¤òÁ÷½Ð¤·¤¿¸å¤Ë¹Ô¤¦¥Ñ¥Ç¥£¥ó¥° +rP 置換モードにおいて、文字を送出した後に行うパディング .\"O rs Reset string -rs ¥ê¥»¥Ã¥Èʸ»úÎó +rs リセット文字列 .\"O RX Turn off XON/XOFF flow control -RX XON/XOFF ¥Õ¥í¡¼À©¸æ¤ò¥ª¥Õ¤Ë¤¹¤ë +RX XON/XOFF フロー制御をオフにする .\"O sa Set %1 %2 %3 %4 %5 %6 %7 %8 %9 attributes -sa °À­ %1 %2 %3 %4 %5 %6 %7 %8 %9 ¤òÀßÄê +sa 属性 %1 %2 %3 %4 %5 %6 %7 %8 %9 を設定 .\"O SA enable automatic margins -SA ¼«Æ°ÀÞ¤êÊÖ¤·¤òÍ­¸ú¤Ë¤¹¤ë +SA 自動折り返しを有効にする .\"O sc Save cursor position -sc ¥«¡¼¥½¥ë°ÌÃÖ¤òÊݸ¤¹¤ë +sc カーソル位置を保存する .\"O se End standout mode -se ¶¯Ä´¥â¡¼¥É½ªÎ» +se 強調モード終了 .\"O sf Normal scroll one line -sf ½çÊý¸þ¤Î 1 ¹Ô¥¹¥¯¥í¡¼¥ë +sf 順方向の 1 行スクロール .\"O SF Normal scroll %1 lines -SF ½çÊý¸þ¤Î %1 ¹Ô¥¹¥¯¥í¡¼¥ë +SF 順方向の %1 行スクロール .\"O so Start standout mode -so ¶¯Ä´¥â¡¼¥É³«»Ï +so 強調モード開始 .\"O sr Reverse scroll -sr µÕ¥¹¥¯¥í¡¼¥ë +sr 逆スクロール .\"O SR scroll back %1 lines -SR %1 ¹ÔʬµÕ¥¹¥¯¥í¡¼¥ë¤¹¤ë +SR %1 行分逆スクロールする .\"O st Set tabulator stop in all rows at current column -st Á´¤Æ¤Î¹Ô¤Ë¤ª¤¤¤Æ¡¢¸½ºß¤Î·å°ÌÃÖ¤ò¥¿¥Ö¥¹¥È¥Ã¥×¤ËÀßÄꤹ¤ë +st 全ての行において、現在の桁位置をタブストップに設定する .\"O SX Turn on XON/XOFF flow control -SX XON/XOFF ¥Õ¥í¡¼À©¸æ¤ò¥ª¥ó¤Ë¤¹¤ë +SX XON/XOFF フロー制御をオンにする .\"O ta move to next hardware tab -ta ¼¡¤Î¥Ï¡¼¥É¥¦¥§¥¢¥¿¥Ö°ÌÃ֤ذÜÆ° +ta 次のハードウェアタブ位置へ移動 .\"O tc Read in terminal description from another entry -tc ¾¤Î¥¨¥ó¥È¥ê¤«¤éüËö¤ÎÀâÌÀ¤òÆɤà¹þ¤à +tc 他のエントリから端末の説明を読む込む .\"O te End program that uses cursor motion -te ¥«¡¼¥½¥ë°ÜÆ°¤òÍѤ¤¤ë¥×¥í¥°¥é¥à¤Î½ªÎ» +te カーソル移動を用いるプログラムの終了 .\"O ti Begin program that uses cursor motion -ti ¥«¡¼¥½¥ë°ÜÆ°¤òÍѤ¤¤ë¥×¥í¥°¥é¥à¤Î³«»Ï +ti カーソル移動を用いるプログラムの開始 .\"O ts Move cursor to column %1 of status line -ts ¥¹¥Æ¡¼¥¿¥¹¹Ô¤Î¥«¡¼¥½¥ë¤ò %1 ·å¤Ø°ÜÆ° +ts ステータス行のカーソルを %1 桁へ移動 .\"O uc Underline character under cursor and move cursor right -uc ¥«¡¼¥½¥ë°ÌÃÖ¤Îʸ»ú¤Ë²¼Àþ¤ò¤Ä¤±¡¢±¦¤Ë¥«¡¼¥½¥ë¤ò°ÜÆ° +uc カーソル位置の文字に下線をつけ、右にカーソルを移動 .\"O ue End underlining -ue ²¼Àþ¥â¡¼¥É½ªÎ» +ue 下線モード終了 .\"O up Cursor up one line -up ¥«¡¼¥½¥ë¤ò 1 ¹Ôʬ¾å¤Ë°ÜÆ° +up カーソルを 1 行分上に移動 .\"O UP Cursor up %1 lines -UP ¥«¡¼¥½¥ë¤ò %1 ¹Ôʬ¾å¤Ë°ÜÆ° +UP カーソルを %1 行分上に移動 .\"O us Start underlining -us ²¼Àþ¥â¡¼¥É³«»Ï +us 下線モード開始 .\"O vb Visible bell -vb ¥Ó¥¸¥å¥¢¥ë¥Ù¥ë +vb ビジュアルベル .\"O ve Normal cursor visible -ve ¥«¡¼¥½¥ë¤òÄ̾ï¤ÎÌÀ¤ë¤µ¤Ë¤¹¤ë +ve カーソルを通常の明るさにする .\"O vi Cursor invisible -vi ¥«¡¼¥½¥ë¤ò¸«¤¨¤Ê¤¯¤¹¤ë +vi カーソルを見えなくする .\"O vs Standout cursor -vs ¶¯Ä´¥«¡¼¥½¥ë +vs 強調カーソル .\"O wi Set window from line %1 to %2 and column %3 to %4 -wi ¥¦¥£¥ó¥É¥¦Îΰè¤ò %1¡Á%2 ¹Ô¡¢%3¡Á%4 ·å¤ËÀßÄê +wi ウィンドウ領域を %1〜%2 行、%3〜%4 桁に設定 .\"O XF XOFF character if not \fB^S\fP -XF XOFF À©¸æʸ»ú (\fB^S\fP ¤Ç¤Ê¤¤¾ì¹ç) +XF XOFF 制御文字 (\fB^S\fP でない場合) .fi .LP .\"O There are several ways of defining the control codes for string capabilities: -ʸ»úÎóµ¡Ç½¤ÎÀ©¸æ¥³¡¼¥É¤òÄêµÁ¤¹¤ë¤Ë¤Ï¡¢¤¤¤¯¤Ä¤«¤ÎÊýË¡¤¬¤¢¤ë¡£ +文字列機能の制御コードを定義するには、いくつかの方法がある。 .LP .\"O Every normal character represents itself, .\"O except \(aq^\(aq, \(aq\e\(aq, and \(aq%\(aq. -\&\(aq^\(aq, \(aq\e\(aq, \(aq%\(aq ¤ò½ü¤¯Á´¤Æ¤ÎÄ̾ï¤Îʸ»ú¤Ï¡¢¤½¤ì¼«¿È¤òɽ¤¹¡£ +\&\(aq^\(aq, \(aq\e\(aq, \(aq%\(aq を除く全ての通常の文字は、それ自身を表す。 .LP .\"O A \fB^x\fP means Control-x. .\"O Control-A equals 1 decimal. -\fB^x\fP ¤Ï Control-x ¤ò°ÕÌ£¤¹¤ë¡£ Control-A ¤Ï 10 ¿Ê¿ô¤Î 1 ¤ËÅù¤·¤¤¡£ +\fB^x\fP は Control-x を意味する。 Control-A は 10 進数の 1 に等しい。 .\"NAKANO: 1 decimal? .LP .\"O \ex means a special code. .\"O x can be one of the following characters: -\&\ex ¤ÏÆü쥳¡¼¥É¤È¤·¤Æ°·¤ï¤ì¤ë¡£x ¤Ë¤Ï°Ê²¼¤Îʸ»ú¤Î¤É¤ì¤«¤¬Æþ¤ë¡£ +\&\ex は特殊コードとして扱われる。x には以下の文字のどれかが入る。 .RS .\"O E Escape (27) -E ¥¨¥¹¥±¡¼¥× (27) +E エスケープ (27) .br .\"O n Linefeed (10) -n ¥é¥¤¥ó¥Õ¥£¡¼¥É (10) +n ラインフィード (10) .br .\"O r Carriage return (13) -r Éüµ¢ (13) +r 復帰 (13) .br .\"O t Tabulation (9) -t ¥¿¥Ö (9) +t タブ (9) .br .\"O b Backspace (8) -b ¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹ (8) +b バックスペース (8) .br .\"O f Form feed (12) -f ÊÇÁ÷¤ê (12) +f 頁送り (12) .br .\"O 0 Null character. .\"O A \exxx specifies the octal character xxx. -0 ¥Ì¥ë¥­¥ã¥é¥¯¥¿¡£'\exxx' ¤Ï 8 ¿Ê¿ô xxx ¤Îʸ»ú¤òɽ¤¹¡£ +0 ヌルキャラクタ。'\exxx' は 8 進数 xxx の文字を表す。 .RE .IP i .\"O Increments parameters by one. -¥Ñ¥é¥á¡¼¥¿¤ò 1 Áý²Ã¤µ¤»¤ë¡£ +パラメータを 1 増加させる。 .IP r .\"O Single parameter capability -°ì¤Ä¤Î¥Ñ¥é¥á¡¼¥¿¤ò¤È¤ëµ¡Ç½ +一つのパラメータをとる機能 .IP + .\"O Add value of next character to this parameter and do binary output -¼¡¤Îʸ»ú¤ÎÃͤò¥Ñ¥é¥á¡¼¥¿¤ËÄɲä·¡¢¥Ð¥¤¥Ê¥ê¤Ç½ÐÎϤ¹¤ë +次の文字の値をパラメータに追加し、バイナリで出力する .IP 2 .\"O Do ASCII output of this parameter with a field with of 2 -¥Ñ¥é¥á¡¼¥¿¤ò 2 ·å¤Î¿ô»ú¤È¤·¤Æ ASCII ½ÐÎϤ¹¤ë (printf ¤Î %2d ¤ÈƱ¤¸°ÕÌ£) +パラメータを 2 桁の数字として ASCII 出力する (printf の %2d と同じ意味) .IP d .\"O Do ASCII output of this parameter with a field with of 3 -¥Ñ¥é¥á¡¼¥¿¤ò¿ô»ú¤È¤·¤Æ ASCII ½ÐÎϤ¹¤ë (printf ¤Î %d ¤ÈƱ¤¸°ÕÌ£) +パラメータを数字として ASCII 出力する (printf の %d と同じ意味) .IP % .\"O Print a \(aq%\(aq -\(aq%\(aq ¤òɽ¼¨¤¹¤ë +\(aq%\(aq を表示する .LP .\"O If you use binary output, then you should avoid the null character (\(aq\\0\(aq) .\"O because it terminates the string. .\"O You should reset tabulator expansion .\"O if a tabulator can be the binary output of a parameter. -¥Ð¥¤¥Ê¥ê½ÐÎϤò¹Ô¤¦¾ì¹ç¡¢ -ʸ»úÎ󤬽ªÃ¼¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¥Ì¥ëʸ»ú (\(aq\\0\(aq) ¤òÈò¤±¤Í¤Ð¤Ê¤é¤Ê¤¤¡£ -¥¿¥Öʸ»ú¤ò¥Ñ¥é¥á¡¼¥¿¤Î¥Ð¥¤¥Ê¥ê½ÐÎϤȤ¹¤ë¾ì¹ç¤Ï¡¢ -¥¿¥Öʸ»ú¤ÎŸ³«¤ò¥ê¥»¥Ã¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +バイナリ出力を行う場合、 +文字列が終端されないようにヌル文字 (\(aq\\0\(aq) を避けねばならない。 +タブ文字をパラメータのバイナリ出力とする場合は、 +タブ文字の展開をリセットしなければならない。 .\"O .IP Warning: -.IP Ãí°Õ: +.IP 注意: .\"O The above metacharacters for parameters may be wrong, they document Minix .\"O termcap which may not be compatible with Linux termcap. -¾åµ­¤Î¤è¤¦¤Ê¡¢¥Ñ¥é¥á¡¼¥¿¤È¤·¤Æ¤Î¥á¥¿Ê¸»ú¤ÏÀµ¤·¤¯¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤Î¤³¤È¤Ï¡¢Minix¤Î termcap ¤È -Linux ¤Î termcap ¤È¤Î´Ö¤Ë¸ß´¹À­¤¬¤Ê¤¤¤³¤È¤Ë·Ò¤¬¤Ã¤Æ¤¤¤ë¡£ -.\"NAKANO: ¤¢¤ä¤·¤¤¡£ +上記のような、パラメータとしてのメタ文字は正しくないかもしれない。 +このことは、Minixの termcap と +Linux の termcap との間に互換性がないことに繋がっている。 +.\"NAKANO: あやしい。 .LP .\"O The block graphic characters can be specified by three string capabilities: -¿Þ·Áʸ»ú¤Ï 3 ¤Ä¤Îʸ»úÎóµ¡Ç½¤Ç»ØÄê¤Ç¤­¤ë¡£ +図形文字は 3 つの文字列機能で指定できる。 .IP as .\"O start the alternative charset -ÂåÂØʸ»ú¥»¥Ã¥È¤Î³«»Ï +代替文字セットの開始 .IP ae .\"O end it -ÂåÂØʸ»ú¥»¥Ã¥È¤Î½ªÎ» +代替文字セットの終了 .IP ac .\"O pairs of characters. .\"O The first character is the name of the block graphic .\"O symbol and the second characters is its definition. -ʸ»úÎó¤Î¥Ú¥¢¤Î½¸¹ç¤ò»ØÄꤹ¤ë¡£ -ºÇ½é¤Îʸ»ú¤Ï¿Þ·Áʸ»ú¤Î̾¾Î¤Ç¡¢ -2 ÈÖÌܤÎʸ»ú¤Ï¤½¤ÎÄêµÁ¤Ç¤¢¤ë¡£ +文字列のペアの集合を指定する。 +最初の文字は図形文字の名称で、 +2 番目の文字はその定義である。 .LP .\"O The following names are available: -̾¾Î¤Ë¤Ï°Ê²¼¤Î¤â¤Î¤¬¤¢¤ë¡£ +名称には以下のものがある。 .sp .nf .\"O + right arrow (>) -+ ±¦Ìð°õ (>) ++ 右矢印 (>) .\"O , left arrow (<) -, º¸Ìð°õ (<) +, 左矢印 (<) .\"O \&. down arrow (v) -\&. ²¼Ìð°õ (v) +\&. 下矢印 (v) .\"O 0 full square (#) -0 ¤Ê¤«¤òÅɤê¤Ä¤Ö¤·¤¿»Í³Ñ (#) +0 なかを塗りつぶした四角 (#) .\"O I lantern (#) -I ¥é¥ó¥¿¥óµ­¹æ (#) -(ÌõÃí ¸¶Ê¸¤Ï latern ¤À¤Ã¤¿¤¬¡¢¤³¤ì¤Ï lantern ¤Î typo ¤È»×¤ï¤ì¤ë) +I ランタン記号 (#) +(訳注 原文は latern だったが、これは lantern の typo と思われる) .\"O - upper arrow (^) -- ¾åÌð°õ (^) +- 上矢印 (^) .\"O \&' rhombus (+) -\&' É©·Á (+) +\&' 菱形 (+) .\"O a chess board (:) -a ¥Á¥§¥¹ÈÄ (:) +a チェス板 (:) .\"O f degree (') -f ³ÑÅÙ (') +f 角度 (') .\"O g plus-minus (#) -g ¥×¥é¥¹¥Þ¥¤¥Ê¥¹ (#) +g プラスマイナス (#) .\"O h square (#) -h »Í³Ñ (#) +h 四角 (#) .\"O j right bottom corner (+) -j ±¦²¼¶ù (+) +j 右下隅 (+) .\"O k right upper corner (+) -k ±¦¾å¶ù (+) +k 右上隅 (+) .\"O l left upper corner (+) -l º¸¾å¶ù (+) +l 左上隅 (+) .\"O m left bottom corner (+) -m º¸²¼¶ù (+) +m 左下隅 (+) .\"O n cross (+) -n ½½»ú (+) +n 十字 (+) .\"O o upper horizontal line (-) -o ¾å¿åÊ¿Àþ (-) +o 上水平線 (-) .\"O q middle horizontal line (-) -q Ãæ¿åÊ¿Àþ (-) +q 中水平線 (-) .\"O s bottom horizontal line (_) -s ²¼¿åÊ¿Àþ (_) +s 下水平線 (_) .\"O t left tee (+) -t º¸ T »ú (+) +t å·¦ T 字 (+) .\"O u right tee (+) -u ±¦ T »ú (+) +u 右 T 字 (+) .\"O v bottom tee (+) -v ²¼ T »ú (+) +v 下 T 字 (+) .\"O w normal tee (+) -w Àµ T »ú (+) +w æ­£ T 字 (+) .\"O x vertical line (|) -x ¿âľÀþ (|) +x 垂直線 (|) .\"O ~ paragraph (???) -~ ÃÊÍî (???) +~ 段落 (???) .fi .sp .\"O The values in parentheses are suggested defaults which are used by curses, .\"O if the capabilities are missing. -³ç¸ÌÆâ¤ÎÃͤϡ¢ -»ØÄꤷ¤¿µ¡Ç½¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤ËÍѤ¤¤é¤ì¤ë¥Ç¥Õ¥©¥ë¥È¤ÎÃͤǤ¢¤ë¡£ +括弧内の値は、 +指定した機能が存在しない場合に用いられるデフォルトの値である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ncurses (3), .BR termcap (3), .BR terminfo (5) -.SH ¹»Àµ¼Ôµ­ -Ìõ½Ð¤Ë¤¢¤¿¤Ã¤Æ¤Ï "\fBtermcap & terminfo\fP" -(Strang, Mui, O'reilly ¶¦Ãø, ÎëÌÚÎï ´ÆÌõ, ¥¢¥¹¥­¡¼½ÐÈÇ¶É 1992) -¤ò»²¹Í¤Ë¤·¤¿¡£ -¤¿¤À¤·ËÜÆüËܸì¥Þ¥Ë¥å¥¢¥ë¤Ë¤ª¤±¤ë¸í¤ê¤Ï¹»Àµ¼Ô¤ÎÀÕǤ¤Ç¤¢¤ë¡£ +.SH 校正者記 +訳出にあたっては "\fBtermcap & terminfo\fP" +(Strang, Mui, O'reilly 共著, 鈴木麗 監訳, アスキー出版局 1992) +を参考にした。 +ただし本日本語マニュアルにおける誤りは校正者の責任である。 diff --git a/draft/man5/ttytype.5 b/draft/man5/ttytype.5 index aaebaf87..69f75327 100644 --- a/draft/man5/ttytype.5 +++ b/draft/man5/ttytype.5 @@ -31,11 +31,11 @@ .\" .TH TTYTYPE 5 1993-07-24 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O ttytype \- terminal device to default terminal type mapping -ttytype \- üËö¥Ç¥Ð¥¤¥¹¡ÝüËö¥¿¥¤¥×¤Î¥Ç¥Õ¥©¥ë¥È¥Þ¥Ã¥Ô¥ó¥° +ttytype \- 端末デバイス−端末タイプのデフォルトマッピング .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .I /etc/ttytype .\"O file associates termcap/terminfo terminal type names @@ -44,9 +44,9 @@ ttytype \- ü .\"O whitespace, followed by a tty name (a device name without the .\"O .IR /dev/ ") prefix." .I /etc/ttytype -¤Ï tty ¥é¥¤¥ó¤ò termcap/terminfo ¤ÎüËö¥¿¥¤¥×¤Î̾Á°¤È´ØÏ¢ÉÕ¤±¤ë¡£¤½¤ì -¤¾¤ì¤Î¹Ô¤Ë¤Ï¡¢¤Þ¤ºÃ¼Ëö¤Î¥¿¥¤¥×¡¢Â³¤¤¤Æ¥¹¥Ú¡¼¥¹Ê¸»ú¡¢¤µ¤é¤Ë³¤¤¤Æ tty -̾ (¥Ç¥Ð¥¤¥¹Ì¾¤«¤éÀèƬ¤Î \fI/dev/\fP ¤ò¤È¤Ã¤¿¤â¤Î) ¤¬½ñ¤«¤ì¤ë¡£ +は tty ラインを termcap/terminfo の端末タイプの名前と関連付ける。それ +ぞれの行には、まず端末のタイプ、続いてスペース文字、さらに続いて tty +名 (デバイス名から先頭の \fI/dev/\fP をとったもの) が書かれる。 .\"O This association is used by the program .\"O .BR tset (1) @@ -54,31 +54,31 @@ ttytype \- ü .\"O .B TERM .\"O to the default terminal name for .\"O the user's current tty. -¤³¤Î´ØÏ¢ÉÕ¤±¤Ï¥×¥í¥°¥é¥à +この関連付けはプログラム .BR tset (1) -¤¬ÍøÍѤ·¡¢¥æ¡¼¥¶¡¼¤¬¸½ºß»È¤Ã¤Æ¤¤¤ëüËö¤Î +が利用し、ユーザーが現在使っている端末の .B TERM -´Ä¶­ÊÑ¿ô¤¬¡¢¥Ç¥Õ¥©¥ë¥È¤ÎüËö̾¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ +環境変数が、デフォルトの端末名にセットされる。 .\"O This facility was designed for a traditional time-sharing environment .\"O featuring character-cell terminals hardwired to a UNIX minicomputer. .\"O It is little used on modern workstation and personal UNIX systems. -¤³¤Îµ¡Ç½¤ÏÅÁÅýŪ¤Ê¥¿¥¤¥à¡¦¥·¥§¥¢¥ê¥ó¥°´Ä¶­ ( UNIX ¥ß¥Ë¥³¥ó¥Ô¥å¡¼¥¿¤Ë -¥­¥ã¥é¥¯¥¿Ã¼Ëö¤¬Ä¾·ë¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ê´Ä¶­) ¸þ¤±¤ËÀ߷פµ¤ì¤¿¡£¶áÂåŪ¤Ê -¥ï¡¼¥¯¥¹¥Æ¡¼¥·¥ç¥ó¤ä¥Ñ¡¼¥½¥Ê¥ë UNIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤Û¤È¤ó¤ÉÍøÍѤµ¤ì¤Æ¤¤¤Ê¤¤¡£ +この機能は伝統的なタイム・シェアリング環境 ( UNIX ミニコンピュータに +キャラクタ端末が直結されているような環境) 向けに設計された。近代的な +ワークステーションやパーソナル UNIX システムでは、ほとんど利用されていない。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .TP .\"O .I /etc/ttytype .\"O the tty definitions file. .I /etc/ttytype -tty ÄêµÁ¥Õ¥¡¥¤¥ë¡£ +tty 定義ファイル。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O A typical .\"O .I /etc/ttytype .\"O is: -ŵ·¿Åª¤Ê \fI/etc/ttytype\fP ¤Ï°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¡£ +典型的な \fI/etc/ttytype\fP は以下のようなものである。 .RS .sp con80x25 tty1 @@ -86,7 +86,7 @@ con80x25 tty1 vt320 ttys0 .RE .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR termcap (5), .BR terminfo (5), .BR agetty (8), diff --git a/draft/man5/tzfile.5 b/draft/man5/tzfile.5 index 1760ed27..e18258e3 100644 --- a/draft/man5/tzfile.5 +++ b/draft/man5/tzfile.5 @@ -5,20 +5,20 @@ .\" Japanese Version Copyright (c) 1999 NAKANO Takeo all rights reserved. .\" Translated Tue Sep 14 1999 by NAKANO Takeo .\" -.\"WORD: transition time Á«°Ü»þ´Ö -.\"WORD: local time types ¥í¡¼¥«¥ë»þ´Ö·¿ -.\"WORD: timezone abbreviatio strint ¥¿¥¤¥à¥¾¡¼¥óά¼°Ê¸»úÎó +.\"WORD: transition time 遷移時間 +.\"WORD: local time types ローカル時間型 +.\"WORD: timezone abbreviatio strint タイムゾーン略式文字列 .\" .TH TZFILE 5 1996-06-05 "" "Linux Programmer's Manual" .\"O .SH NAME .\"O tzfile \- timezone information .\"O .SH SYNOPSIS -.SH ̾Á° -tzfile \- ¥¿¥¤¥à¥¾¡¼¥ó¤Î¾ðÊó -.SH ½ñ¼° +.SH 名前 +tzfile \- タイムゾーンの情報 +.SH 書式 .B #include .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The timezone information files used by .\"O .BR tzset (3) .\"O begin with the magic characters "TZif" to identify then as @@ -31,42 +31,42 @@ tzfile \- .\"O These values are, .\"O in order: .BR tzset (3) -¤Ë¤è¤Ã¤ÆÍѤ¤¤é¤ì¤ë¥¿¥¤¥à¥¾¡¼¥ó¾ðÊó¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢ -¼±Ê̤Τ¿¤á¤Î magic ʸ»úÎó "TZif" ¤Ç»Ï¤Þ¤ê¡¢ -¾­Íè¤Î¤¿¤á¤Î 16 ¥Ð¥¤¥È¤ÎͽÌóÎΰ褬³¤­¡¢ +によって用いられるタイムゾーン情報のファイルは、 +識別のための magic 文字列 "TZif" で始まり、 +将来のための 16 バイトの予約領域が続き、 .I long -·¿¤Î 4 ¥Ð¥¤¥È¤ÎÃͤ¬ 6 ¸Ä³¤¯¡£ -¤³¤ÎÃͤϡÖɸ½à¡×¥Ð¥¤¥È¥ª¡¼¥À¡¼ (¹â°Ì¥Ð¥¤¥È¤¬Àè¤Ë½ñ¤«¤ì¤ë) -¤Çµ­½Ò¤µ¤ì¤ë¡£¤³¤ì¤é¤ÎÃͤϡ¢½ç¤Ë°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¡£ +型の 4 バイトの値が 6 個続く。 +この値は「標準」バイトオーダー (高位バイトが先に書かれる) +で記述される。これらの値は、順に以下のようなものである。 .TP .I tzh_ttisgmtcnt .\"O The number of UTC/local indicators stored in the file. -¥Õ¥¡¥¤¥ë¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë UTC/local ¥¤¥ó¥¸¥±¡¼¥¿ (indicator) ¤Î¸Ä¿ô¡£ +ファイルに記述されている UTC/local インジケータ (indicator) の個数。 .TP .I tzh_ttisstdcnt .\"O The number of standard/wall indicators stored in the file. -¥Õ¥¡¥¤¥ë¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë standard/wall ¥¤¥ó¥¸¥±¡¼¥¿¤Î¸Ä¿ô¡£ +ファイルに記述されている standard/wall インジケータの個数。 .TP .I tzh_leapcnt .\"O The number of leap seconds for which data is stored in the file. -¥Õ¥¡¥¤¥ë¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë±¼Éåǡ¼¥¿¤Î¸Ä¿ô¡£ +ファイルに記述されている閏秒データの個数。 .TP .I tzh_timecnt .\"O The number of "transition times" for which data is stored .\"O in the file. -¥Õ¥¡¥¤¥ë¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡ÖÁ«°Ü»þ´Ö (transition time)¡×¥Ç¡¼¥¿¤Î¸Ä¿ô¡£ +ファイルに記述されている「遷移時間 (transition time)」データの個数。 .TP .I tzh_typecnt .\"O The number of "local time types" for which data is stored .\"O in the file (must not be zero). -¥Õ¥¡¥¤¥ë¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡Ö¥í¡¼¥«¥ë»þ´Ö·¿ (local time types)¡×¥Ç¡¼¥¿¤Î¸Ä¿ô -(0 ¤Ç¤¢¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤)¡£ +ファイルに記述されている「ローカル時間型 (local time types)」データの個数 +(0 であってはいけない)。 .TP .I tzh_charcnt .\"O The number of characters of "timezone abbreviation strings" .\"O stored in the file. -¥Õ¥¡¥¤¥ë¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡Ö¥¿¥¤¥à¥¾¡¼¥óά¼°Ê¸»úÎó (timezone -abbreviation string)¡×¤Î¸Ä¿ô¡£ +ファイルに記述されている「タイムゾーン略式文字列 (timezone +abbreviation string)」の個数。 .PP .\"O The above header is followed by .\"O .I tzh_timecnt @@ -77,16 +77,16 @@ abbreviation string) .\"O Each is used as a transition time (as returned by .\"O .BR time (2)) .\"O at which the rules for computing local time change. -¾åµ­¤Î¥Ø¥Ã¥À¤Ë³¤¤¤Æ +上記のヘッダに続いて .I tzh_timecnt -¤È¤¤¤¦ 4 ¥Ð¥¤¥È¤Î +という 4 バイトの .I long -·¿¤ÎÃͤ¬ (Ê£¿ô¸Ä) ³¤¯¡£¾º½ç¤ÇÊݴɤµ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤ÎÃͤϡÖɸ½à¡×¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Çµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -¤½¤ì¤¾¤ì¤ÏÁ«°Ü»þ´Ö +型の値が (複数個) 続く。昇順で保管されている。 +これらの値は「標準」バイトオーダーで記述されている。 +それぞれは遷移時間 .RB ( time (2) -¤¬ÊÖ¤¹ÃÍ) ¤È¤·¤ÆÍѤ¤¤é¤ì¡¢ -¤½¤ì¤¾¤ì¤Ë¤ª¤¤¤Æ¥í¡¼¥«¥ë»þ´Ö¤Î·×»»¥ë¡¼¥ë¤¬Êѹ¹¤µ¤ì¤ë¡£ +が返す値) として用いられ、 +それぞれにおいてローカル時間の計算ルールが変更される。 .\"O Next come .\"O .I tzh_timecnt .\"O one-byte values of type @@ -96,21 +96,21 @@ abbreviation string) .\"O These values serve as indices into an array of .\"O .I ttinfo .\"O structures that appears next in the file; -¼¡¤ËÍè¤ë¤Î¤Ï +次に来るのは .I tzh_timecnt -¤Ç¡¢¤³¤ì¤Ï +で、これは .I "unsigned char" -·¿¤Î 1 ¥Ð¥¤¥È¤ÎÃͤǤ¢¤ë (Ê£¿ô¸Ä³¤¯¤³¤È¤â¤¢¤ë)¡£ -¤³¤ÎÃͤϡ¢¥Õ¥¡¥¤¥ë¤Çµ­½Ò¤µ¤ì¤Æ¤¤¤ë°Û¤Ê¤Ã¤¿¥¿¥¤¥×¤Î¡Ö¥í¡¼¥«¥ë»þ´Ö¡×¤¬¡¢ -¤½¤ì¤¾¤ìƱ¤¸¤è¤¦¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤µ¤ì¤¿Á«°Ü»þ´Ö¤Î¤É¤ì¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ -¤¤¤ë¤«¤ò¼¨¤¹¡£ -¤³¤ì¤é¤ÎÃÍ¤Ï +型の 1 バイトの値である (複数個続くこともある)。 +この値は、ファイルで記述されている異なったタイプの「ローカル時間」が、 +それぞれ同じようにインデックスされた遷移時間のどれに関連づけられて +いるかを示す。 +これらの値は .I ttinifo -¹½Â¤ÂΤÎÇÛÎó¤ËÂФ¹¤ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤È¤·¤ÆÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +構造体の配列に対するインデックスとして提供されている。 .I ttinfo -¹½Â¤ÂΤϥե¡¥¤¥ëÃæ¤Ç¼¡¤Î°ÌÃÖ¤ËÃÖ¤«¤ì¤ë¡£ +構造体はファイル中で次の位置に置かれる。 .\"O these structures are defined as follows: -¤³¤Î¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +この構造体は以下のように定義されている: .in +4n .sp .nf @@ -130,10 +130,10 @@ struct ttinfo { .\"O .I tt_isdst .\"O and a one-byte value for .\"O .IR tt_abbrind . -¤½¤ì¤¾¤ì¤Î¹½Â¤ÂΤϡ¢ 4 ¥Ð¥¤¥È¤Î \fIlong\fP ·¿¤ÎÃÍ \fItt_gmtoff\fP¡¢ -1 ¥Ð¥¤¥È¤ÎÃÍ \fItt_isdst\fP, -1 ¥Ð¥¤¥È¤ÎÃÍ \fItt_abbrind\fP ¤«¤é¹½À®¤µ¤ì¤ë¡£ -.\"NAKANO int ¤Ê¤Î¤Ë 4 ¥Ð¥¤¥È¤Ê¤Î¡© +それぞれの構造体は、 4 バイトの \fIlong\fP 型の値 \fItt_gmtoff\fP、 +1 バイトの値 \fItt_isdst\fP, +1 バイトの値 \fItt_abbrind\fP から構成される。 +.\"NAKANO int なのに 4 バイトなの? .\"O In each structure, .\"O .I tt_gmtoff .\"O gives the number of seconds to be added to UTC, @@ -148,18 +148,18 @@ struct ttinfo { .\"O that follow the .\"O .I ttinfo .\"O structure(s) in the file. -¤½¤ì¤¾¤ì¤Î¹½Â¤ÂΤˤª¤¤¤Æ¡¢ +それぞれの構造体において、 .I tt_gmtoff -¤Ï UTC ¤Ë²Ã¤¨¤ë¤Ù¤­Éÿô¤òÍ¿¤¨¡¢ +は UTC に加えるべき秒数を与え、 .I tt_isdst -¤Ï +は .I tm_isdst -¤ò +を .BR localtime (3) -¤Ë¥»¥Ã¥È¤¹¤Ù¤­¤«¤É¤¦¤«¤ò¼¨¤·¡¢ +にセットすべきかどうかを示し、 .I tt_abbrind -¤Ï¥Õ¥¡¥¤¥ëÃæ¤Ç \fIttinfo\fP ¹½Â¤ÂÎ (ÇÛÎó) ¤Î¤¢¤È¤ËÃÖ¤«¤ì¤ë -¥¿¥¤¥à¥¾¡¼¥óά¼°Ê¸»úÎó¤ÎÇÛÎó¤ËÂФ¹¤ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤¢¤ë¡£ +はファイル中で \fIttinfo\fP 構造体 (配列) のあとに置かれる +タイムゾーン略式文字列の配列に対するインデックスである。 .PP .\"O Then there are .\"O .I tzh_leapcnt @@ -172,13 +172,13 @@ struct ttinfo { .\"O .I total .\"O number of leap seconds to be applied after the given time. .\"O The pairs of values are sorted in ascending order by time. -¼¡¤Ë¤Ï 4 ¥Ð¥¤¥ÈÃͤΥڥ¢¤Ç¤¢¤ë +次には 4 バイト値のペアである .I tzh_leapcnt -¤¬ (Ê£¿ô¸Ä) ³¤¯¡£É¸½à¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Çµ­½Ò¤µ¤ì¤ë¡£ -¤½¤ì¤¾¤ì¤Î¥Ú¥¢¤ÎºÇ½é¤ÎÃͤϱ¼Éäε¯¤­¤¿»þ¹ï¤ò ( +が (複数個) 続く。標準バイトオーダーで記述される。 +それぞれのペアの最初の値は閏秒の起きた時刻を ( .IR time (2) -¤ÎÊÖ¤¹·Á¼°¤Ç) Í¿¤¨¡¢ÆóÈÖÌܤÎÃͤϤ½¤Î»þ¹ï¤Ë²Ã¤¨¤ë¤Ù¤­±¼Éÿô¤Î -Á´Éÿô¤òÍ¿¤¨¤ë¡£¤³¤ì¤é¤Î¥Ú¥¢¤Ï»þ¹ï¤Î¸Å¤¤½ç¤Ëµ­½Ò¤¹¤ë¡£ +の返す形式で) 与え、二番目の値はその時刻に加えるべき閏秒数の +全秒数を与える。これらのペアは時刻の古い順に記述する。 .PP .\"O Then there are .\"O .I tzh_ttisstdcnt @@ -187,14 +187,14 @@ struct ttinfo { .\"O were specified as standard time or wall clock time, .\"O and are used when a timezone file is used in handling POSIX-style .\"O timezone environment variables. -¼¡¤Ë¤Ï +次には .I tzh_ttisstdcnt -¤¬ÃÖ¤«¤ì¤ë¡£¤³¤ì¤Ï standard/wall ¥¤¥ó¥¸¥±¡¼¥¿¤Ç¡¢¤½¤ì¤¾¤ì 1 ¥Ð¥¤¥È¤Î -ÃͤòÊݴɤ¹¤ë¡£¤³¤ì¤é¤Ï¥í¡¼¥«¥ë»þ´Ö¤Î¥¿¥¤¥×¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿Á«°Ü»þ´Ö¤¬ -ɸ½à»þ¹ï (standard time) ¤ÈÊÉ»þ·×»þ¹ï (wall clock time) ¤Î -¤É¤Á¤é¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤¹¡£¤Þ¤¿¤³¤ÎÃͤϡ¢ -POSIX ¥¹¥¿¥¤¥ë¤Î¥¿¥¤¥à¥¾¡¼¥ó´Ä¶­ÊÑ¿ô¤ò½èÍý¤¹¤ë¤È¤­¤Ë -¥¿¥¤¥à¥¾¡¼¥ó¥Õ¥¡¥¤¥ë¤¬»È¤ï¤ì¤ë¤È¤­¤Ë¤âÍøÍѤµ¤ì¤ë¡£ +が置かれる。これは standard/wall インジケータで、それぞれ 1 バイトの +値を保管する。これらはローカル時間のタイプに関連づけられた遷移時間が +標準時刻 (standard time) と壁時計時刻 (wall clock time) の +どちらで指定されているかを示す。またこの値は、 +POSIX スタイルのタイムゾーン環境変数を処理するときに +タイムゾーンファイルが使われるときにも利用される。 .PP .\"O Finally, there are .\"O .I tzh_ttisgmtcnt @@ -203,13 +203,13 @@ POSIX .\"O were specified as UTC or local time, .\"O and are used when a timezone file is used in handling POSIX-style .\"O timezone environment variables. -ºÇ¸å¤Ë +最後に .I tzh_ttisgmtcnt -¤¬ÃÖ¤«¤ì¤ë¡£¤³¤ì¤Ï UTC/local ¥¤¥ó¥¸¥±¡¼¥¿¤Ç¡¢¤½¤ì¤¾¤ì 1 ¥Ð¥¤¥È¤Î -ÃͤòÊݴɤ¹¤ë¡£¤³¤ì¤é¤Ï¥í¡¼¥«¥ë»þ´Ö¤Î¥¿¥¤¥×¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿Á«°Ü»þ´Ö¤¬ -UTC ¤È¥í¡¼¥«¥ë»þ¹ï¤Î¤É¤Á¤é¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤¹¡£¤Þ¤¿¤³¤ÎÃͤϡ¢ -POSIX ¥¹¥¿¥¤¥ë¤Î¥¿¥¤¥à¥¾¡¼¥ó´Ä¶­ÊÑ¿ô¤ò½èÍý¤¹¤ë¤È¤­¤Ë -¥¿¥¤¥à¥¾¡¼¥ó¥Õ¥¡¥¤¥ë¤¬»È¤ï¤ì¤ë¤È¤­¤Ë¤âÍøÍѤµ¤ì¤ë¡£ +が置かれる。これは UTC/local インジケータで、それぞれ 1 バイトの +値を保管する。これらはローカル時間のタイプに関連づけられた遷移時間が +UTC とローカル時刻のどちらで指定されているかを示す。またこの値は、 +POSIX スタイルのタイムゾーン環境変数を処理するときに +タイムゾーンファイルが使われるときにも利用される。 .PP .\"O .I Localtime .\"O uses the first standard-time @@ -223,12 +223,12 @@ POSIX .\"O is zero or the time argument is less than the first transition time recorded .\"O in the file. .I localtime -¤Ï¡¢ +は、 .I tzh_timeout -¤¬ 0 ¤Ç¤¢¤ë¤« time °ú¿ô¤¬¥Õ¥¡¥¤¥ë¤Ëµ­Ï¿¤µ¤ì¤Æ¤¤¤¿ºÇ½é¤ÎÁ«°Ü»þ¹ï -¤è¤ê¤â¾®¤µ¤¤¾ì¹ç¤Ë¤Ï¡¢ -¥Õ¥¡¥¤¥ë¤ËºÇ½é¤Ë¸½¤ì¤ëɸ½à»þ¹ï¤Î +が 0 であるか time 引数がファイルに記録されていた最初の遷移時刻 +よりも小さい場合には、 +ファイルに最初に現れる標準時刻の .I ttinfo -¹½Â¤ÂΤò»È¤¦ (¤Þ¤¿¤Ïɸ½à»þ¹ï¤Î¹½Â¤ÂΤ¬¤Ê¤¤¾ì¹ç¤Ï¡¢Ã±¤ËºÇ½é¤Î +構造体を使う (または標準時刻の構造体がない場合は、単に最初の .I ttinfo -¹½Â¤ÂΤò»È¤¦)¡£ +構造体を使う)。 diff --git a/draft/man5/utmp.5 b/draft/man5/utmp.5 index 1e9e7dfd..f84b94ba 100644 --- a/draft/man5/utmp.5 +++ b/draft/man5/utmp.5 @@ -37,14 +37,14 @@ .\" .TH UTMP 5 2011-09-28 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O utmp, wtmp \- login records -utmp, wtmp \- ¥í¥°¥¤¥óµ­Ï¿ +utmp, wtmp \- ログイン記録 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .I utmp .\"O file allows one to discover information about who is currently using the @@ -52,10 +52,10 @@ utmp, wtmp \- .\"O There may be more users currently using the system, because not .\"O all programs use utmp logging. .I utmp -¥Õ¥¡¥¤¥ë¤ò¸«¤ë¤³¤È¤Ç¡¢¸½ºß郎¥·¥¹¥Æ¥à¤ò»È¤Ã¤Æ¤¤¤ë¤«¤È¤¤¤¦¾ðÊó -¤¬ÆÀ¤é¤ì¤ë¡£¤¿¤À¤¹¤Ù¤Æ¤Î¥×¥í¥°¥é¥à¤¬ utmp ¥Õ¥¡¥¤¥ë¤ò -¹¹¿·¤·¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢¼ÂºÝ¤Ë¤Ï¤½¤ì°Ê¾å¤Î¥æ¡¼¥¶¡¼¤¬ -¥·¥¹¥Æ¥à¤ò»È¤Ã¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +ファイルを見ることで、現在誰がシステムを使っているかという情報 +が得られる。ただすべてのプログラムが utmp ファイルを +更新しているわけではないので、実際にはそれ以上のユーザーが +システムを使っている可能性がある。 .PP .\"O .B Warning: .\"O .I utmp @@ -66,16 +66,16 @@ utmp, wtmp \- .\"O modifications of system files if you leave .\"O .I utmp .\"O writable to any user other than the owner and group owner of the file. -.B ·Ù¹ð: -(¶ò¤«¤Ë¤â) ¿¤¯¤Î¥·¥¹¥Æ¥à¥×¥í¥°¥é¥à¤¬¤½¤ÎÀ°¹çÀ­¤Ë°Í¸¤·¤Æ¤¤¤ë¤Î¤Ç¡¢ +.B 警告: +(愚かにも) 多くのシステムプログラムがその整合性に依存しているので、 .I utmp -¥Õ¥¡¥¤¥ë¤Ï "other" ¤ËʬÎव¤ì¤ë¥æ¡¼¥¶¤ËÂФ·¤Æ -½ñ¤­¹þ¤ß²Äǽ¤Ë¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤È¥°¥ë¡¼¥×¥ª¡¼¥Ê¡¼°Ê³°¤Î¥æ¡¼¥¶¤ËÂФ·¤Æ +ファイルは "other" に分類されるユーザに対して +書き込み可能にしてはならない。 +ファイルの所有者とグループオーナー以外のユーザに対して .I utmp -¥Õ¥¡¥¤¥ë¤ò½ñ¤­¹þ¤ß²Äǽ¤Ê¾õÂ֤ˤ·¤Æ¤ª¤¯¤È¡¢ -¥·¥¹¥Æ¥à¤Î¥í¥°¥Õ¥¡¥¤¥ë¤òµ¶Â¤¤µ¤ì¤¿¤ê¡¢¥·¥¹¥Æ¥à¥Õ¥¡¥¤¥ë¤Î -²þ¤¶¤ó¤ò¼õ¤±¤ë¤È¤¤¤Ã¤¿¥ê¥¹¥¯¤òÈȤ¹¤³¤È¤Ë¤Ê¤ë¡£ +ファイルを書き込み可能な状態にしておくと、 +システムのログファイルを偽造されたり、システムファイルの +改ざんを受けるといったリスクを犯すことになる。 .PP .\"O The file is a sequence of .\"O .I utmp @@ -84,14 +84,14 @@ utmp, wtmp \- .\"O .IR .\"O (note that this is only one of several definitions .\"O around; details depend on the version of libc): -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï +このファイルは .I utmp -¹½Â¤ÂΤ竤êÊÖ¤·¤Ç¹½À®¤µ¤ì¤ë¡£ -¤³¤Î¹½Â¤ÂÎ¤Ï +構造体の繰り返しで構成される。 +この構造体は .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë -(¤³¤³¤Ëµ­½Ò¤·¤Æ¤¢¤ë¤Î¤Ï´ö¤Ä¤«¤ÎÂç¤Þ¤«¤ÊÄêµÁ¤Î¤ß¤Ç¡¢ -¾ÜºÙ¤Ï libc ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤êÊѤï¤ë¤³¤È¤ËÃí°Õ¤¬É¬ÍפǤ¢¤ë)¡£ +で以下のように定義されている +(ここに記述してあるのは幾つかの大まかな定義のみで、 +詳細は libc のバージョンにより変わることに注意が必要である)。 .in +4n .nf .sp @@ -137,10 +137,10 @@ struct utmp { .\"O /* The ut_session and ut_tv fields must be the same size when .\"O compiled 32- and 64-bit. This allows data files and shared .\"O memory to be shared between 32- and 64-bit applications. */ - /* ut_session ¤È ut_tv ¥Õ¥£¡¼¥ë¥É¤Ï¡¢32¥Ó¥Ã¥È¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¾ì¹ç¤È - 64¥Ó¥Ã¥È¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¾ì¹ç¤ÇƱ¤¸¥µ¥¤¥º¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ - ¤³¤¦¤¹¤ë¤³¤È¤Ç¡¢32¥Ó¥Ã¥È¤È64¥Ó¥Ã¥È¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¡¢ - ¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤È¶¦Í­¥á¥â¥ê¤ò¶¦Í­¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ */ + /* ut_session と ut_tv フィールドは、32ビットでコンパイルされた場合と + 64ビットでコンパイルされた場合で同じサイズでなければならない。 + こうすることで、32ビットと64ビットのアプリケーションで、 + データファイルと共有メモリを共有することができるようになる。 */ #if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32 int32_t ut_session; /* Session ID (\fBgetsid\fP(2)), @@ -177,12 +177,12 @@ struct utmp { .\"O String fields are terminated by a null byte (\(aq\e0\(aq) .\"O if they are shorter than the size .\"O of the field. -¤³¤Î¹½Â¤ÂΤ«¤é¥æ¡¼¥¶¡¼¤Î»È¤Ã¤Æ¤¤¤ëüËö¤Î¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë̾¡¢ -¥æ¡¼¥¶¡¼¤Î¥í¥°¥¤¥ó̾¡¢ +この構造体からユーザーの使っている端末のスペシャルファイル名、 +ユーザーのログイン名、 .RB ( time (2) -·Á¼°¤Ç¤Î)¥í¥°¥¤¥ó»þ¹ï¤¬¤ï¤«¤ë¡£Ê¸»úÎó¥Õ¥£¡¼¥ë¥É¤Ï¡¢ -¥Õ¥£¡¼¥ë¥É¤ÎŤµ¤è¤êʸ»úÎó¤¬Ã»¤¤¾ì¹ç¤Ë¤Ï¡¢ -NULL ¥Ð¥¤¥È (\(aq\e0\(aq) ¤Ë¤è¤Ã¤Æ½ªÃ¼¤µ¤ì¤ë¡£ +形式での)ログイン時刻がわかる。文字列フィールドは、 +フィールドの長さより文字列が短い場合には、 +NULL バイト (\(aq\e0\(aq) によって終端される。 .PP .\"O The first entries ever created result from .\"O .BR init (8) @@ -200,23 +200,23 @@ NULL .\"O creates a new one. .\"O It sets \fIut_id\fP from the inittab, \fIut_pid\fP and \fIut_time\fP to the .\"O current values, and \fIut_type\fP to \fBINIT_PROCESS\fP. -ºÇ½é¤Î¥¨¥ó¥È¥ê¤Ï +最初のエントリは .BR init (8) -¥³¥Þ¥ó¥É¤¬ +コマンドが .BR inittab (5) -¤ò½èÍý¤¹¤ë¤³¤È¤Çºî¤é¤ì¤ë¡£ -¤¢¤ë¥¨¥ó¥È¥ê¤ò½èÍý¤¹¤ëÁ°¤Ë¡¢ +を処理することで作られる。 +あるエントリを処理する前に、 .BR init (8) -¤Ï \fIut_type\fP ¤ò \fBDEAD_PROCESS\fP ¤Ë½é´ü²½¤¹¤ë¡£ -¥ì¥³¡¼¥É¤Î -\fIut_type\fP ¤¬ \fBDEAD_PROCESS\fP ¤È \fBRUN_LVL\fP ¤Î¤¤¤º¤ì¤Ç¤â¤Ê¤¯¡¢ -¤«¤Ä PID ¤¬ \fIut_pid\fP ¤Ç¤¢¤ë¥×¥í¥»¥¹¤¬¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢\fIut_user\fP, -\fIut_host\fP, \fIut_time\fP ¤ò¥Ì¥ë¥Ð¥¤¥È¤Ç¥¯¥ê¥¢¤·¤Æ½é´ü²½¤ò¹Ô¤¦¡£ -ɬÍ×¤Ê \fIut_id\fP ¤ò»ý¤Ä¶õ¤Î¥ì¥³¡¼¥É¤ò¸«¤Ä¤±¤é¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ +は \fIut_type\fP を \fBDEAD_PROCESS\fP に初期化する。 +レコードの +\fIut_type\fP が \fBDEAD_PROCESS\fP と \fBRUN_LVL\fP のいずれでもなく、 +かつ PID が \fIut_pid\fP であるプロセスがいない場合は、\fIut_user\fP, +\fIut_host\fP, \fIut_time\fP をヌルバイトでクリアして初期化を行う。 +必要な \fIut_id\fP を持つ空のレコードを見つけられなかった場合、 .BR init (8) -¤Ï¿·¤·¤¤¥ì¥³¡¼¥É¤òºî¤ë¡£inittab ¤«¤é \fIut_id\fP ¤òÀßÄꤷ¡¢ -\fIut_pid\fP ¤ª¤è¤Ó \fIut_time\fP ¤ò¸½ºßÃͤˡ¢ -\fIut_type\fP ¤ò \fBINIT_PROCESS\fP ¤ËÀßÄꤹ¤ë¡£ +は新しいレコードを作る。inittab から \fIut_id\fP を設定し、 +\fIut_pid\fP および \fIut_time\fP を現在値に、 +\fIut_type\fP を \fBINIT_PROCESS\fP に設定する。 .PP .\"O .BR mingetty (8) .\"O (or @@ -237,24 +237,24 @@ NULL .\"O records may be located by .\"O \fIut_line\fP instead of the preferable \fIut_pid\fP. .BR mingetty (8) -(¤Þ¤¿¤Ï +(または .BR agetty (8)) -¤Ï pid ¤Ç¥¨¥ó¥È¥ê¤òÆÃÄꤷ¡¢ -\fIut_type\fP ¤ò \fBLOGIN_PROCESS\fP ¤ËÊѹ¹¤·¡¢ -\fIut_time\fP ¤ò¹¹¿·¤·¡¢\fIut_line\fP¤òÀßÄꤷ¤¿¸å¡¢Àܳ¤¬³ÎΩ¤µ¤ì¤ë¤Î¤òÂԤġ£ +は pid でエントリを特定し、 +\fIut_type\fP を \fBLOGIN_PROCESS\fP に変更し、 +\fIut_time\fP を更新し、\fIut_line\fPを設定した後、接続が確立されるのを待つ。 .BR login (1) -¤Ï¥æ¡¼¥¶¡¼Ç§¾Ú¤¬½ªÎ»¤¹¤ë¤È¡¢ -\fIut_type\fP ¤ò \fBUSER_PROCESS\fP ¤ËÊѹ¹¤·¡¢ -\fIut_time\fP ¤ò¹¹¿·¤·¡¢\fIut_host\fP ¤È \fIut_addr\fP¤òÀßÄꤹ¤ë¡£ +はユーザー認証が終了すると、 +\fIut_type\fP を \fBUSER_PROCESS\fP に変更し、 +\fIut_time\fP を更新し、\fIut_host\fP と \fIut_addr\fPを設定する。 .BR mingetty (8) -(¤Þ¤¿¤Ï +(または .BR agetty (8)) -¤È +と .BR login (1) -¤Ë¤è¤ê°Û¤Ê¤ë¤¬¡¢ -\fIut_pid\fP ¤ÎÂå¤ï¤ê¤Ë -\fIut_line\fP ¤ò»È¤Ã¤Æ¥ì¥³¡¼¥É¤ÎÆÃÄ꤬¹Ô¤ï¤ì¤ë¤³¤È¤â¤¢¤ë -(\fIut_pid\fP ¤ò»È¤¦Êý¤¬Ë¾¤Þ¤·¤¤) ¡£ +により異なるが、 +\fIut_pid\fP の代わりに +\fIut_line\fP を使ってレコードの特定が行われることもある +(\fIut_pid\fP を使う方が望ましい) 。 .PP .\"O When .\"O .BR init (8) @@ -262,10 +262,10 @@ NULL .\"O entry by \fIut_pid\fP, sets \fIut_type\fP to \fBDEAD_PROCESS\fP, and .\"O clears \fIut_user\fP, \fIut_host\fP and \fIut_time\fP with null bytes. .BR init (8) -¤Ï¥×¥í¥»¥¹¤Î½ªÎ»¤ò¸¡½Ð¤·¤¿¾ì¹ç¡¢ -\fIut_pid\fP ¤ò¥­¡¼¤È¤·¤Æ utmp ¤Î¥¨¥ó¥È¥ê¤òÆÃÄꤷ¡¢ -\fIut_type\fP ¤ò \fBDEAD_PROCESS\fP ¤ËÀßÄꤷ¡¢ -\fIut_user\fP, \fIut_host\fP, \fIut_time\fP ¤ò¥Ì¥ë¥Ð¥¤¥È¤Ç¥¯¥ê¥¢¤¹¤ë¡£ +はプロセスの終了を検出した場合、 +\fIut_pid\fP をキーとして utmp のエントリを特定し、 +\fIut_type\fP を \fBDEAD_PROCESS\fP に設定し、 +\fIut_user\fP, \fIut_host\fP, \fIut_time\fP をヌルバイトでクリアする。 .PP .\"O .BR xterm (1) .\"O and other terminal emulators directly create a @@ -279,15 +279,15 @@ NULL .\"O they null \fIut_line\fP, \fIut_time\fP, \fIut_user\fP, and \fIut_host\fP .\"O as well. .BR xterm (1) -¥³¥Þ¥ó¥É¤ä¾¤ÎüËö¥¨¥ß¥å¥ì¡¼¥¿¤Ï -ľÀÜ \fBUSER_PROCESS\fP ¤Î¥ì¥³¡¼¥É¤òºî¤ê¡¢ -üËö̾¤Î¥µ¥Õ¥£¥Ã¥¯¥¹Ê¸»úÎó (\fI/dev/[pt]ty\fP ¤Ë³¤¯Ê¸»úÎó) -¤ò»È¤Ã¤Æ \fIut_id\fP ¤ÎÃͤòÀ¸À®¤¹¤ë¡£ -¤³¤Î id ¤ò»ý¤Ä¥¨¥ó¥È¥ê¤¬ \fBDEAD_PROCESS\fP ¤Ç¤¢¤Ã¤¿¾ì¹ç¤Ë¤ÏºÆÍøÍѤ·¡¢ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï¿·¤·¤¤¥¨¥ó¥È¥ê¤¬ºî¤é¤ì¤ë¡£ -²Äǽ¤Ê¾ì¹ç¤Ë¤Ï¥×¥í¥»¥¹½ªÎ»»þ¤Ë \fBDEAD_PROCESS\fP ¤ÈÀßÄꤷ¡¢ -¤µ¤é¤Ë \fIut_line\fP, \fIut_time\fP, \fIut_user\fP, \fIut_host\fP -¤ò¥Ì¥ë¥Ð¥¤¥È¤Ç¥¯¥ê¥¢¤¹¤ë¤³¤È¤¬¾©Î夵¤ì¤Æ¤¤¤ë¡£ +コマンドや他の端末エミュレータは +直接 \fBUSER_PROCESS\fP のレコードを作り、 +端末名のサフィックス文字列 (\fI/dev/[pt]ty\fP に続く文字列) +を使って \fIut_id\fP の値を生成する。 +この id を持つエントリが \fBDEAD_PROCESS\fP であった場合には再利用し、 +それ以外の場合には新しいエントリが作られる。 +可能な場合にはプロセス終了時に \fBDEAD_PROCESS\fP と設定し、 +さらに \fIut_line\fP, \fIut_time\fP, \fIut_user\fP, \fIut_host\fP +をヌルバイトでクリアすることが奨励されている。 .PP .\"O sets up a \fBLOGIN_PROCESS\fP entry and leaves the rest to .\"O .BR login (1) @@ -296,13 +296,13 @@ NULL .\"O .BR telnetd (8) .\"O cleans up utmp in the described way. .BR telnetd (8) -¤Ï \fBLOGIN_PROCESS\fP ¤òÀßÄꤹ¤ë¤À¤±¤Ç¤è¤¯¡¢ -»Ä¤ê¤Î½èÍý¤ÏÄ̾ïÄ̤ê +は \fBLOGIN_PROCESS\fP を設定するだけでよく、 +残りの処理は通常通り .BR login (1) -¤ËǤ¤»¤ì¤Ð¤è¤¤¡£ -telnet ¤Î¥»¥Ã¥·¥ç¥ó¤¬½ªÎ»¤·¤¿¸å¡¢Á°½Ò¤Î¤è¤¦¤Ë +に任せればよい。 +telnet のセッションが終了した後、前述のように .BR telnetd (8) -¤¬ utmp ¤Î¥¨¥ó¥È¥ê¤ò½é´ü²½¤¹¤ë¡£ +が utmp のエントリを初期化する。 .PP .\"O The \fIwtmp\fP file records all logins and logouts. .\"O Its format is exactly like \fIutmp\fP except that a null username @@ -325,32 +325,32 @@ telnet .\"O .BR agetty (8)). .\"O None of these programs creates the file, so if it is .\"O removed, record-keeping is turned off. -\fIwtmp\fP ¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¤¹¤Ù¤Æ¤Î¥í¥°¥¤¥ó¤È¥í¥°¥¢¥¦¥È¤¬µ­Ï¿¤µ¤ì¤ë¡£ -¤½¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢¥í¥°¥¢¥¦¥ÈºÑ¤ÎüËö¤Ç¥æ¡¼¥¶¡¼Ì¾¤¬¥Ì¥ë¤È¤Ê¤ë¤³¤È°Ê³°¤Ï -\fIutmp\fP ¤È¤Þ¤Ã¤¿¤¯Æ±¤¸¤Ç¤¢¤ë¡£ -¥æ¡¼¥¶¡¼Ì¾¤¬ \fBshutdown\fP ¤â¤·¤¯¤Ï \fBreboot\fP ¤Ç¤¢¤ë -üËö̾ \fB~\fP ¤Ï¥·¥¹¥Æ¥à¤ÎÄä»ß (shutdown) ¤Þ¤¿¤ÏºÆµ¯Æ° (reboot) -¤ò°ÕÌ£¤¹¤ë¡£¤Þ¤¿¤½¤ÎüËö̾¤¬ \fB|\fP ¤È \fB}\fP ¤ÎÂÐ¤Ï +\fIwtmp\fP ファイルには、すべてのログインとログアウトが記録される。 +そのフォーマットは、ログアウト済の端末でユーザー名がヌルとなること以外は +\fIutmp\fP とまったく同じである。 +ユーザー名が \fBshutdown\fP もしくは \fBreboot\fP である +端末名 \fB~\fP はシステムの停止 (shutdown) または再起動 (reboot) +を意味する。またその端末名が \fB|\fP と \fB}\fP の対は .BR date (1) -¥³¥Þ¥ó¥É¤ÇÊѹ¹¤·¤¿¿·¡¿µì¤Î¥·¥¹¥Æ¥à»þ¹ï¤òµ­Ï¿¤·¤Æ¤¤¤ë¡£ -\fIwtmp\fP ¥Õ¥¡¥¤¥ë¤Ï +コマンドで変更した新/旧のシステム時刻を記録している。 +\fIwtmp\fP ファイルは .BR login (1), .BR init (8) -¤ä¤¤¤¯¤Ä¤«¤Î¥Ð¡¼¥¸¥ç¥ó¤Î +やいくつかのバージョンの .BR getty (8) .RB ( mingetty (8) -¤Þ¤¿¤Ï +または .BR agetty (8)) -¤Ë¤è¤ê´ÉÍý¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Î¥×¥í¥°¥é¥à¤Ï¤É¤ì¤â¥Õ¥¡¥¤¥ë¤ò¿·¤¿¤ËºîÀ®¤·¤Ê¤¤¤Î¤Ç¡¢ -¥Õ¥¡¥¤¥ë¤òºï½ü¤¹¤ë¤³¤È¤Ç¾ðÊó¤Îµ­Ï¿ (record-keeping) ¤ò»ß¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +により管理されている。 +これらのプログラムはどれもファイルを新たに作成しないので、 +ファイルを削除することで情報の記録 (record-keeping) を止めることができる。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル /var/run/utmp .br /var/log/wtmp .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .PP .\"O POSIX.1 does not specify a .\"O .I utmp @@ -369,42 +369,42 @@ telnet .\"O and .\"O .I ut_user .\"O fields. -POSIX.1 ¤Ç¤Ï¡¢ +POSIX.1 では、 .I utmp -¹½Â¤ÂΤǤϤʤ¯¡¢ +構造体ではなく、 .I utmpx -¹½Â¤ÂΤòµ¬Äꤷ¤Æ¤¤¤ë¡£ +構造体を規定している。 .I utmpx -¹½Â¤ÂΤǵ¬Äꤵ¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢¥Õ¥£¡¼¥ë¥É +構造体で規定されているのは、フィールド .IR ut_type , .IR ut_pid , .IR ut_line , .IR ut_id , .IR ut_user , .IR ut_tv -¤Ç¤¢¤ë¡£ -POSIX.1 ¤Ç¤Ï¡¢¥Õ¥£¡¼¥ë¥É +である。 +POSIX.1 では、フィールド .I ut_line -¤È +と .I ut_user -¤ÎŤµ¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +の長さは規定されていない。 .\"O Linux defines the .\"O .I utmpx .\"O structure to be the same as the .\"O .I utmp .\"O structure. -Linux ¤Ç¤Ï¡¢ +Linux では、 .I utmpx -¹½Â¤ÂΤÎÄêµÁ¤Ï +構造体の定義は .I utmp -¹½Â¤ÂΤÈƱ¤¸¤Ç¤¢¤ë¡£ +構造体と同じである。 .\"O .SS Comparison with Historical Systems -.SS ²áµî¤Î¥·¥¹¥Æ¥à¤È¤ÎÈæ³Ó +.SS 過去のシステムとの比較 .\"O Linux utmp entries conform neither to v7/BSD nor to System V; they are a .\"O mix of the two. -Linux ¤Ç¤Î utmp ¤Î¥¨¥ó¥È¥ê¤Ï v7/BSD ¤ä System V ¤Î¤¤¤º¤ì¤Ë¤â½àµò¤·¤Æ¤ª¤é¤º¡¢ -¤½¤ÎξÊý¤¬º®ºß¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +Linux での utmp のエントリは v7/BSD や System V のいずれにも準拠しておらず、 +その両方が混在したものである。 .\"O v7/BSD has fewer fields; most importantly it lacks .\"O \fIut_type\fP, which causes native v7/BSD-like programs to display (for @@ -412,12 +412,12 @@ Linux .\"O Further, there is no configuration file .\"O which allocates slots to sessions. .\"O BSD does so because it lacks \fIut_id\fP fields. -v7/BSD ¤Ç¤Ï¤è¤ê¾¯¤·¤Î¹àÌܤ·¤«¤Ê¤¤; -¤â¤Ã¤È¤â½ÅÍפʤ³¤È¤Ï¡¢\fIut_type\fP ¤¬Ìµ¤¤¤³¤È¤Ç¤¢¤ë¡£ -¤½¤Î¤¿¤á v7/BSD ·Ï¤Î¥×¥í¥°¥é¥à¤Ç¤Ï (¤¿¤È¤¨¤Ð) »à¤ó¤À¾õÂ֤Υ¨¥ó¥È¥ê¤ä -¥í¥°¥¤¥ó¾õÂ֤Υ¨¥ó¥È¥ê¤Þ¤Çɽ¼¨¤µ¤ì¤Æ¤·¤Þ¤¦¤³¤È¤Ë¤Ê¤Ã¤¿¡£ -¤µ¤é¤Ë¥»¥Ã¥·¥ç¥óÍѤΥ¹¥í¥Ã¥È¤ò³ä¤êÅö¤Æ¤ë¤¿¤á¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤¬¤Ê¤¤¡£ -BSD ¤ËÀßÄê¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¤Î¤Ï \fIut_id\fP ¤¬¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +v7/BSD ではより少しの項目しかない; +もっとも重要なことは、\fIut_type\fP が無いことである。 +そのため v7/BSD 系のプログラムでは (たとえば) 死んだ状態のエントリや +ログイン状態のエントリまで表示されてしまうことになった。 +さらにセッション用のスロットを割り当てるための設定ファイルがない。 +BSD に設定ファイルがあるのは \fIut_id\fP がないからである。 .\"O In Linux (as in System V), the \fIut_id\fP field of a .\"O record will never change once it has been set, which reserves that slot @@ -430,28 +430,28 @@ BSD .\"O but makes it possible to run .\"O many programs which assume BSD semantics and which do not modify utmp. .\"O Linux uses the BSD conventions for line contents, as documented above. -Linux (System V ·Ï)¤Ç¤Ï¡¢ÀßÄê¥Õ¥¡¥¤¥ë¤òɬÍפȤ»¤º -¥»¥Ã¥·¥ç¥óÍѤΥ¹¥í¥Ã¥È¤ò³ä¤êÅö¤Æ¤ë¤Î¤Ç¡¢°ìöÀßÄê -¤µ¤ì¤Æ¤·¤Þ¤¦¤È¥ì¥³¡¼¥É¤Î \fIut_id\fP ¤Ï·è¤·¤ÆÊѹ¹¤µ¤ì¤Ê¤¤¡£ -\fIut_id\fP ¤ò¥¯¥ê¥¢¤¹¤ë¤È¶¥¹ç¾õÂ֤ˤª¤Á¤¤¤ê¡¢ -utmp ¤Î¥¨¥ó¥È¥ê¤ò²õ¤·¤¿¤ê¡¢ÀøºßŪ¤Ê¥»¥­¥å¥ê¥Æ¥£¥Û¡¼¥ë¤Ë¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¾å½Ò¤Î¥Õ¥£¡¼¥ë¥É¤ò NULL ¥Ð¥¤¥È¤ÇËä¤á¤Æ¥¯¥ê¥¢¤·¤Æ¤ª¤¯¤Î¤Ï¡¢ -System V ¤Ç¤Î¼è¤ê·è¤á¤Ç¤ÏɬÍפȤϤµ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -BSD ¤Ç¤Î¼è¤ê·è¤á¤òÁ°Äó¤È¤·¤Æ¤¤¤Æ¡¢¤«¤Ä utmp ¤ò¹¹¿·¤·¤Ê¤¤Â¿¤¯¤Î¥×¥í¥°¥é¥à¤¬ -Æ°ºî¤¹¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ç¤¢¤ë¡£ -Linux ¤Ç¤Ï¤³¤³¤Þ¤Çµ­½Ò¤·¤Æ¤­¤¿¤è¤¦¤Ë¡¢¹ÔÆâÍƤÎɽ¼¨¤Ï BSD ¤Î´·Îã¤Ë½¾¤Ã¤Æ¤¤¤ë¡£ +Linux (System V ç³»)では、設定ファイルを必要とせず +セッション用のスロットを割り当てるので、一旦設定 +されてしまうとレコードの \fIut_id\fP は決して変更されない。 +\fIut_id\fP をクリアすると競合状態におちいり、 +utmp のエントリを壊したり、潜在的なセキュリティホールになる可能性がある。 +上述のフィールドを NULL バイトで埋めてクリアしておくのは、 +System V での取り決めでは必要とはされていないが、 +BSD での取り決めを前提としていて、かつ utmp を更新しない多くのプログラムが +動作するようにするためである。 +Linux ではここまで記述してきたように、行内容の表示は BSD の慣例に従っている。 .PP .\"O .\" mtk: What is the referrent of "them" in the following sentence? .\"O .\" System V only uses the type field to mark them and logs .\"O .\" informative messages such as \fB"new time"\fP in the line field. .\"O System V has no \fIut_host\fP or \fIut_addr_v6\fP fields. .\" mtk: What is the referrent of "them" in the following sentence? -.\" System V ¤Ç¤Ï ut_type ¤òÌÜ°õ¤Ë¤·¤¿¤ê¡¢¤¿¤È¤¨¤Ð \fB"new time"\fP ¤Î¤è¤¦¤Ê -.\" ÄÌÃÎ¥á¥Ã¥»¡¼¥¸¤òµ­Ï¿¤¹¤ë¤¿¤á¤Î¤ß¤Ë»È¤Ã¤Æ¤¤¤ë¡£ -\fBUT_UNKNOWN\fP ¤Ï Linux ¤Çºî¤é¤ì¤¿¤â¤Î¤Î¤è¤¦¤Ç¤¢¤ë¡£ -System V ¤Ë¤Ï \fIut_host\fP ¤â \fIut_addr_v6\fP ¤â¸ºß¤·¤Ê¤¤¡£ +.\" System V では ut_type を目印にしたり、たとえば \fB"new time"\fP のような +.\" 通知メッセージを記録するためのみに使っている。 +\fBUT_UNKNOWN\fP は Linux で作られたもののようである。 +System V には \fIut_host\fP も \fIut_addr_v6\fP も存在しない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .PP .\"O Unlike various other .\"O systems, where utmp logging can be disabled by removing the file, utmp @@ -460,17 +460,17 @@ System V .\"O .BR who (1) .\"O then .\"O do not make utmp world readable. -¥Õ¥¡¥¤¥ë¤òºï½ü¤¹¤ë¤³¤È¤Ç utmp ¤Ø¤Îµ­Ï¿¤ò»ß¤á¤é¤ì¤ë -¾¤ÎÍÍ¡¹¤Ê¥·¥¹¥Æ¥à¤È¤Ï°ã¤¤¡¢Linux ¤Ç¤Ï utmp ¥Õ¥¡¥¤¥ë¤òɬ¤º¤ª¤¤¤Æ -¤ª¤¯É¬Íפ¬¤¢¤ë¡£ +ファイルを削除することで utmp への記録を止められる +他の様々なシステムとは違い、Linux では utmp ファイルを必ずおいて +おく必要がある。 .BR who (1) -¥³¥Þ¥ó¥É¤¬µ¡Ç½¤·¤Ê¤¤¤è¤¦¤Ë¤·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ -utmp ¥Õ¥¡¥¤¥ë¤ÎÁ´¥æ¡¼¥¶¡¼¤ËÂФ¹¤ëÆɤ߼è¤êµö²Ä¤òÀßÄꤷ¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£ +コマンドが機能しないようにしたい場合には、 +utmp ファイルの全ユーザーに対する読み取り許可を設定しないようにする。 .PP .\"O The file format is machine-dependent, so it is recommended that it be .\"O processed only on the machine architecture where it was created. -¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¥Þ¥·¥ó¤Ë°Í¸¤¹¤ë¤Î¤Ç¡¢¥Õ¥¡¥¤¥ë¤¬ºî¤é¤ì¤¿ -¥Þ¥·¥ó¤â¤·¤¯¤ÏƱ°ì¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î¥Þ¥·¥ó¾å¤Ç¤Î¤ß½èÍý¤¹¤ë¤³¤È¤ò¿ä¾©¤¹¤ë¡£ +ファイルのフォーマットはマシンに依存するので、ファイルが作られた +マシンもしくは同一アーキテクチャのマシン上でのみ処理することを推奨する。 .PP .\"O Note that on \fIbiarch\fP platforms, that is, systems which can run both .\"O 32-bit and 64-bit applications (x86-64, ppc64, s390x, etc.), @@ -478,13 +478,13 @@ utmp .\"O The same goes for \fIut_session\fP and \fIut_time\fP if they are present. .\"O This allows data files and shared memory to be shared between .\"O 32-bit and 64-bit applications. -Ãí°Õ¤¹¤Ù¤­ÅÀ¤È¤·¤Æ¤Ï¡¢ -\fIbiarch\fP ¤Ê¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¡¢¤Ä¤Þ¤ê 32¥Ó¥Ã¥È¤È 64¥Ó¥Ã¥È¤ÎξÊý¤Î -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¼Â¹Ô¤Ç¤­¤ë¥·¥¹¥Æ¥à (x86-64, ppc64, s390x ¤Ê¤É) ¤Ç¤Ï¡¢ -\fIut_tv\fP ¤Î¥µ¥¤¥º¤Ï 32¥Ó¥Ã¥È¥â¡¼¥É¤È 64¥Ó¥Ã¥È¥â¡¼¥É¤ÇƱ¤¸¤Ç¤¢¤ë¡£ -\fIut_session\fP ¤È \fIut_time\fP ¤â¡¢Â¸ºß¤¹¤ë¾ì¹ç¤Ë¤ÏƱÍͤËƱ¤¸¥µ¥¤¥º -¤Ç¤¢¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢32¥Ó¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤È 64¥Ó¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó -¤Î´Ö¤Ç¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤È¶¦Í­¥á¥â¥ê¤ò¶¦Í­¤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¡£ +注意すべき点としては、 +\fIbiarch\fP なプラットフォーム、つまり 32ビットと 64ビットの両方の +アプリケーションを実行できるシステム (x86-64, ppc64, s390x など) では、 +\fIut_tv\fP のサイズは 32ビットモードと 64ビットモードで同じである。 +\fIut_session\fP と \fIut_time\fP も、存在する場合には同様に同じサイズ +である。これにより、32ビットアプリケーションと 64ビットアプリケーション +の間でデータファイルと共有メモリを共有することが可能になる。 .\"O This is achieved by changing the type of .\"O .I ut_session .\"O to @@ -497,21 +497,21 @@ utmp .\"O .I tv_sec .\"O and .\"O .IR tv_usec . -¤½¤Î¤¿¤á¤Ë¤Ï¡¢ +そのためには、 .I ut_session -¤ò +を .I int32_t -·¿¤Ë¡¢ +型に、 .I ut_tv -¤ò 2¤Ä¤Î +を 2つの .I int32_t -·¿¤Î¥Õ¥£¡¼¥ë¥É +型のフィールド .IR tv_sec , .I tv_usec -¤ò»ý¤Ä¹½Â¤ÂΤËÊѹ¹¤¹¤ì¤Ð¤è¤¤ +を持つ構造体に変更すればよい .\"O Since \fIut_tv\fP may not be the same as \fIstruct timeval\fP, .\"O then instead of the call: -\fIut_tv\fP ¤Ï \fIstruct timeval\fP ¤ÈƱ¤¸¥µ¥¤¥º¤È¤Ï¸Â¤é¤Ê¤¤¤Î¤Ç¡¢ +\fIut_tv\fP は \fIstruct timeval\fP と同じサイズとは限らないので、 .in +4n .nf .sp @@ -519,9 +519,9 @@ gettimeofday((struct timeval *) &ut.ut_tv, NULL); .fi .in -¤Î¤è¤¦¤Ê¸Æ¤Ó½Ð¤·¤ò¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ +のような呼び出しをするのではなく、 .\"O the following method of setting this field is recommended: -°Ê²¼¤Î¤è¤¦¤Ë³Æ¥Õ¥£¡¼¥ë¥É¤òÀßÄꤹ¤ëÊýË¡¤¬¿ä¾©¤µ¤ì¤ë: +以下のように各フィールドを設定する方法が推奨される: .in +4n .nf .sp @@ -538,17 +538,17 @@ ut.ut_tv.tv_usec = tv.tv_usec; .\"O Because of this, .\"O binaries using the old libc5 struct will corrupt .\"O .IR /var/run/utmp " and/or " /var/log/wtmp . -utmp ¹½Â¤ÂÎ¤Ï libc5 ¤«¤é libc6 ¤ÇÊѹ¹¤µ¤ì¤¿¡£¤½¤Î¤¿¤áÀΤΠlibc5 ¤Î¹½Â¤ÂÎ -¤ò»È¤Ã¤¿¥×¥í¥°¥é¥à¤Ï -.IR /var/run/utmp " ¤ä " /var/log/wtmp -¥Õ¥¡¥¤¥ë¤ò²õ¤·¤Æ¤·¤Þ¤¦¡£ +utmp 構造体は libc5 から libc6 で変更された。そのため昔の libc5 の構造体 +を使ったプログラムは +.IR /var/run/utmp " や " /var/log/wtmp +ファイルを壊してしまう。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O This man page is based on the libc5 one, things may work differently now. -¤³¤Î man ¥Ú¡¼¥¸¤Ï libc5 ¤Ë´ð¤Å¤¤¤Æºî¤é¤ì¤Æ¤¤¤Æ¡¢ -ºÇ¿·¤Î¤â¤Î¤Ç¤Ï°ã¤Ã¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +この man ページは libc5 に基づいて作られていて、 +最新のものでは違っているかもしれない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ac (1), .BR date (1), .BR last (1), diff --git a/draft/man6/intro.6 b/draft/man6/intro.6 index e8622413..e722413f 100644 --- a/draft/man6/intro.6 +++ b/draft/man6/intro.6 @@ -30,21 +30,21 @@ .\" .TH INTRO 6 2007-10-23 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O intro \- Introduction to games -intro \- ¥²¡¼¥à¥×¥í¥°¥é¥à¤Î¾Ò²ð +intro \- ゲームプログラムの紹介 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Section 6 of the manual describes all the games and funny little programs .\"O available on the system. -¥Þ¥Ë¥å¥¢¥ë¤Î 6 ¾Ï¤Ï¡¢ËÜ¥·¥¹¥Æ¥à¤ÇÍøÍѲÄǽ¤Ê¤¹¤Ù¤Æ¤Î¥²¡¼¥à¤È -³Ú¤·¤¤¾®Êª¥×¥í¥°¥é¥à¤Ë¤Ä¤¤¤Æµ­ºÜ¤·¤Æ¤¤¤ë¡£ +マニュアルの 6 章は、本システムで利用可能なすべてのゲームと +楽しい小物プログラムについて記載している。 .\"O .SH NOTES -.SH È÷¹Í +.SH 備考 .\"O .SS Authors and Copyright Conditions -.SS Ãø¼Ô¤ÈÃøºî¸¢ +.SS 著者と著作権 .\"O Look at the header of the manual page source for the author(s) and copyright .\"O conditions. .\"O Note that these can be different from page to page! -Ãø¼Ô(ã)¤È¸¢Íø¾ò·ï¤Ë¤Ä¤¤¤Æ¤Ï¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¥½¡¼¥¹¤Î¥Ø¥Ã¥À¤ò»²¾È¤¹¤ë¤³¤È¡£ -¤¿¤À¤·¥Ú¡¼¥¸¤Ë¤è¤Ã¤Æ¤Ï°Û¤Ê¤ë¤â¤Î¤â¤¢¤ë¤³¤È¤ËÃí°Õ¤»¤è¡£ +著者(達)と権利条件についてはマニュアルページのソースのヘッダを参照すること。 +ただしページによっては異なるものもあることに注意せよ。 diff --git a/draft/man7/arp.7 b/draft/man7/arp.7 index 7e562c7d..4fd8eeee 100644 --- a/draft/man7/arp.7 +++ b/draft/man7/arp.7 @@ -12,25 +12,25 @@ .\" Updated & Modified 2001-02-16, NAKANO Takeo .\" Updated 2008-12-26, Akihiro MOTOKI, LDP v3.14 .\" -.\"WORD permanent Êݸ -.\"WORD neighbor cache entry ¶á˵¥­¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê -.\"WORD stale ¸Å¤¯¤Ê¤Ã¤¿ -.\"WORD proxy arp ÂåÍý arp -.\"WORD garbage collect (-or) ¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥È(¥³¥ì¥¯¥¿) -.\"WORD capability ¸¢¸Â -.\"WORD neighbor soliciation message ¶á˵Í×ÀÁ¥á¥Ã¥»¡¼¥¸ -.\"WORD network flooding ¥Í¥Ã¥È¥ï¡¼¥¯¡¦¥Õ¥é¥Ã¥Ç¥£¥ó¥° -.\"WORD thrashing ¥¹¥é¥Ã¥·¥ó¥° -.\"WORD connection oriented Àܳ»Ø¸þ -.\"WORD forward progress ¥Õ¥©¥ï¡¼¥É¥×¥í¥°¥ì¥¹ +.\"WORD permanent 保存 +.\"WORD neighbor cache entry 近傍キャッシュエントリ +.\"WORD stale 古くなった +.\"WORD proxy arp 代理 arp +.\"WORD garbage collect (-or) ガベージ・コレクト(コレクタ) +.\"WORD capability 権限 +.\"WORD neighbor soliciation message 近傍要請メッセージ +.\"WORD network flooding ネットワーク・フラッディング +.\"WORD thrashing スラッシング +.\"WORD connection oriented 接続指向 +.\"WORD forward progress フォワードプログレス .\" .TH ARP 7 2008-11-25 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O arp \- Linux ARP kernel module. -.SH ̾Á° -arp \- Linux ARP ¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë +.SH 名前 +arp \- Linux ARP カーネルモジュール .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This kernel protocol module implements the Address Resolution .\"O Protocol defined in RFC\ 826. .\"O It is used to convert between Layer2 hardware addresses @@ -38,13 +38,13 @@ arp \- Linux ARP .\"O The user normally doesn't interact directly with this module except to .\"O configure it; .\"O instead it provides a service for other protocols in the kernel. -¤³¤Î¥«¡¼¥Í¥ë¥×¥í¥È¥³¥ë¥â¥¸¥å¡¼¥ë¤Ï¡¢ -RFC\ 826 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë Address Resolution Protocol ¤ò -¼ÂÁõ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ ARP ¤Ï¡¢¥À¥¤¥ì¥¯¥È¤ËÀܳ¤µ¤ì¤¿¥Í¥Ã¥È¥ï¡¼¥¯¾å¤Ç¡¢ -Âè 2 ÁؤΥϡ¼¥É¥¦¥§¥¢¥¢¥É¥ì¥¹¤òIPv4 ¥×¥í¥È¥³¥ë¥¢¥É¥ì¥¹¤Ë -ÊÑ´¹¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£¥æ¡¼¥¶¡¼¤ÏÀßÄê¤Î¾ì¹ç¤ò½ü¤¤¤Æ -Ä̾ïľÀܤ³¤Î¥â¥¸¥å¡¼¥ë¤Ë´Ø¤ë¤³¤È¤Ï¤Ê¤¤¡£ -¤³¤ì¤Ï¥«¡¼¥Í¥ëÆâÉô¤Î¾¤Î¥×¥í¥È¥³¥ë¤Ë¥µ¡¼¥Ó¥¹¤òÄ󶡤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +このカーネルプロトコルモジュールは、 +RFC\ 826 で定義されている Address Resolution Protocol を +実装したものである。 ARP は、ダイレクトに接続されたネットワーク上で、 +第 2 層のハードウェアアドレスをIPv4 プロトコルアドレスに +変換するために用いられる。ユーザーは設定の場合を除いて +通常直接このモジュールに関ることはない。 +これはカーネル内部の他のプロトコルにサービスを提供するものである。 .PP .\"O A user process can receive ARP packets by using .\"O .BR packet (7) @@ -58,17 +58,17 @@ RFC\ 826 .\"O on any .\"O .B AF_INET .\"O socket. -¥æ¡¼¥¶¡¼¥×¥í¥»¥¹¤Ï¡¢ +ユーザープロセスは、 .BR packet (7) -¥½¥±¥Ã¥È¤òÍѤ¤¤ì¤Ð ARP ¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -ARP ¥­¥ã¥Ã¥·¥å¤ò¥æ¡¼¥¶¡¼¶õ´Ö¤Ç´ÉÍý¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¤³¤ì¤Ë¤Ï +ソケットを用いれば ARP パケットを受信することができる。 +ARP キャッシュをユーザー空間で管理することもできる。 +これには .BR netlink (7) -¤òÍѤ¤¤ë¡£ ARP ¥Æ¡¼¥Ö¥ë¤âÀ©¸æ²Äǽ¤Ç¡¢¤³¤ì¤Ë¤ÏǤ°Õ¤Î +を用いる。 ARP テーブルも制御可能で、これには任意の .B AF_INET -¥½¥±¥Ã¥È¤Ë +ソケットに .BR ioctl (2) -¤òÍѤ¤¤ë¡£ +を用いる。 .PP .\"O The ARP module maintains a cache of mappings between hardware addresses .\"O and protocol addresses. @@ -81,15 +81,15 @@ ARP .\"O tuned by the .\"O .I /proc .\"O interfaces described below. -ARP ¥â¥¸¥å¡¼¥ë¤Ï¥Ï¡¼¥É¥¦¥§¥¢¥¢¥É¥ì¥¹¤«¤é¥×¥í¥È¥³¥ë¥¢¥É¥ì¥¹¤Ø¤Î -¥Þ¥Ã¥Ô¥ó¥°¤Î¥­¥ã¥Ã¥·¥å¤ò´ÉÍý¤¹¤ë¡£¥­¥ã¥Ã¥·¥å¤ÎÂ礭¤µ¤Ë¤ÏÀ©¸Â¤¬ -¤¢¤ë¤Î¤Ç¡¢¸Å¤¤¥¨¥ó¥È¥ê¤äÍøÍѤµ¤ì¤Ê¤¤¥¨¥ó¥È¥ê¤Ï¥¬¥Ù¡¼¥¸¥³¥ì¥¯¥È -¤µ¤ì¤ë¡£ permanent (Êݸ) ¥Þ¡¼¥¯¤¬¤Ä¤±¤é¤ì¤¿¥¨¥ó¥È¥ê¤Ï¡¢ -·è¤·¤Æ¥¬¥Ù¡¼¥¸¥³¥ì¥¯¥¿¤Ë¤è¤Ã¤Æ¾Ãµî¤µ¤ì¤Ê¤¤¡£ -ioctl ¤òÍѤ¤¤ì¤Ð¥­¥ã¥Ã¥·¥å¤òľÀÜÁàºî¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¤Þ¤¿¸å½Ò¤Î +ARP モジュールはハードウェアアドレスからプロトコルアドレスへの +マッピングのキャッシュを管理する。キャッシュの大きさには制限が +あるので、古いエントリや利用されないエントリはガベージコレクト +される。 permanent (保存) マークがつけられたエントリは、 +決してガベージコレクタによって消去されない。 +ioctl を用いればキャッシュを直接操作することもできる。 +また後述の .I /proc -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë¤è¤ê¥­¥ã¥Ã¥·¥å¤Î¿¶¤ëÉñ¤¤¤òÄ´À°¤Ç¤­¤ë¡£ +インタフェースによりキャッシュの振る舞いを調整できる。 .PP .\"O When there is no positive feedback for an existing mapping after some .\"O time (see the @@ -113,42 +113,42 @@ ioctl .\"O request to the network. .\"O Requests are only sent when there is data queued .\"O for sending. -¸ºß¤·¤Æ¤¤¤ë¥Þ¥Ã¥Ô¥ó¥°¤ËÂФ·¤Æ¡¢ -Àµ¤Î¥Õ¥£¡¼¥É¥Ð¥Ã¥¯¤¬°ìÄê»þ´Ö¤Ê¤¤ (¸å½Ò¤Î +存在しているマッピングに対して、 +正のフィードバックが一定時間ない (後述の .I /proc -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò¸«¤è) ¤È¡¢ -¶á˵¥­¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê (neighbor cache entry) ¤Ï -¸Å¤¯¤Ê¤Ã¤¿ (stale) ¤È¤ß¤Ê¤µ¤ì¤ë¡£ -Àµ¤Î¥Õ¥£¡¼¥É¥Ð¥Ã¥¯¤Ï¹â°Ì¤Î¥ì¥¤¥ä¡¼¤«¤é¤â¼èÆÀ¤Ç¤­¤ë -(Î㤨¤Ð TCP ACK ¤¬À®¸ù¤·¤¿¾ì¹ç¤Ê¤É)¡£ -¾¤Î¥×¥í¥È¥³¥ë¤Ï¡¢ +インタフェースを見よ) と、 +近傍キャッシュエントリ (neighbor cache entry) は +古くなった (stale) とみなされる。 +正のフィードバックは高位のレイヤーからも取得できる +(例えば TCP ACK が成功した場合など)。 +他のプロトコルは、 .BR sendmsg (2) -¤Ë +に .B MSG_CONFIRM -¥Õ¥é¥°¤òÍѤ¤¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢ -¥Õ¥©¥ï¡¼¥É¥×¥í¥°¥ì¥¹ (forward progress) ¤ò¥·¥°¥Ê¥ë¤Ç¤­¤ë¡£ -¥Õ¥©¥ï¡¼¥É¥×¥í¥°¥ì¥¹¤¬¤Ê¤±¤ì¤Ð¡¢ -ARP ¤ÏºÆ¤Ó¥×¥í¡¼¥Ö¤ò»î¤ß¤ë¡£ -¤Þ¤º¥í¡¼¥«¥ë¤Ê arp ¥Ç¡¼¥â¥ó¤ËÌä¹ç¤ï¤»¤ò¹Ô¤¤¡¢ -¹¹¿·¤µ¤ì¤¿ MAC ¥¢¥É¥ì¥¹¤ò¼èÆÀ¤·¤è¤¦¤È¤¹¤ë¡£ -¤³¤Î¥ê¥¯¥¨¥¹¥È¤Ë +フラグを用いることによって、 +フォワードプログレス (forward progress) をシグナルできる。 +フォワードプログレスがなければ、 +ARP は再びプローブを試みる。 +まずローカルな arp デーモンに問合わせを行い、 +更新された MAC アドレスを取得しようとする。 +このリクエストに .B app_solicit -²ó¼ºÇÔ¤¹¤ë¤È¡¢¸Å¤¤ MAC ¥¢¥É¥ì¥¹¤¬¤ï¤«¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ -unicast ¤Î¥×¥í¡¼¥Ö¤¬ +回失敗すると、古い MAC アドレスがわかっている場合は、 +unicast のプローブが .B ucaset_solicit -²óÁ÷¤é¤ì¤ë¡£¤³¤ì¤Ë¤â¼ºÇÔ¤¹¤ë¤È¡¢¿·¤·¤¤ ARP ¥ê¥¯¥¨¥¹¥È -¤ò¥Í¥Ã¥È¥ï¡¼¥¯¤Ë¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¤¹¤ë¡£ -¥ê¥¯¥¨¥¹¥È¤Ï¡¢¥Ç¡¼¥¿¤¬Á÷¿®¥­¥å¡¼¤Ë¤Ê¤±¤ì¤ÐÁ÷¤é¤ì¤Ê¤¤¡£ +回送られる。これにも失敗すると、新しい ARP リクエスト +をネットワークにブロードキャストする。 +リクエストは、データが送信キューになければ送られない。 .PP .\"O Linux will automatically add a nonpermanent proxy arp entry when it .\"O receives a request for an address it forwards to and proxy arp is .\"O enabled on the receiving interface. .\"O When there is a reject route for the target, no proxy arp entry is added. -Linux ¤Ï¡¢¤¢¤ë¥¢¥É¥ì¥¹¤Ø¤Î¥ê¥¯¥¨¥¹¥È¤ò¼õ¿®¡¦¥Õ¥©¥ï¡¼¥É¤·¡¢ -¼õ¿®¤·¤¿¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÇÂåÍý arp ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -¼«Æ°Åª¤Ë¤½¤Î¥¢¥É¥ì¥¹¤ò nonpermanent ¤ÊÂåÍý arp ¥¨¥ó¥È¥ê¤ËÄɲ乤롣 -¤½¤Î¥¿¡¼¥²¥Ã¥È¤Ë reject route ¤¬¤¢¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ -ÂåÍý arp ¥¨¥ó¥È¥ê¤Ï°ìÀÚÄɲ䵤ì¤Ê¤¤¡£ +Linux は、あるアドレスへのリクエストを受信・フォワードし、 +受信したインターフェースで代理 arp が有効になっている場合には、 +自動的にそのアドレスを nonpermanent な代理 arp エントリに追加する。 +そのターゲットに reject route があった場合には、 +代理 arp エントリは一切追加されない。 .\"O .SS Ioctls .SS ioctl .\"O Three ioctls are available on all @@ -157,12 +157,12 @@ Linux .\"O They take a pointer to a .\"O .I struct arpreq .\"O as their argument. -¤¹¤Ù¤Æ¤Î +すべての .B AF_INET -¥½¥±¥Ã¥È¤Ç¤Ï¡¢ 3 ¤Ä¤Î ioctl ¤¬»ÈÍѤǤ­¤ë¡£ -¤³¤ì¤é¤Ï +ソケットでは、 3 つの ioctl が使用できる。 +これらは .I struct arpreq -¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò°ú¿ô¤Ë¼è¤ë¡£ +へのポインタを引数に取る。 .in +4n .nf @@ -183,11 +183,11 @@ struct arpreq { .\"O .B CAP_NET_ADMIN .\"O capability or an effective UID of 0. .BR SIOCSARP ", " SIOCDARP ", " SIOCGARP -¤Ï¡¢¤½¤ì¤¾¤ì ARP ¥Þ¥Ã¥Ô¥ó¥°¤òÀßÄꡦºï½ü¡¦¼èÆÀ¤¹¤ë¡£ -ARP ¥Þ¥Ã¥×¤ÎÀßÄê¤Èºï½ü¤ÏÆø¢¤¬É¬ÍפÊÁàºî¤Ç¤¢¤ê¡¢ +は、それぞれ ARP マッピングを設定・削除・取得する。 +ARP マップの設定と削除は特権が必要な操作であり、 .B CAP_NET_ADMIN -¸¢¸Â¤ò»ý¤Ä¥×¥í¥»¥¹¤«¡¢¼Â¹Ô¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤Î¥×¥í¥»¥¹ -¤Ç¤Ê¤±¤ì¤Ð¼Â¹Ô¤Ç¤­¤Ê¤¤¡£ +権限を持つプロセスか、実行ユーザー ID が 0 のプロセス +でなければ実行できない。 .PP .\"O .I arp_pa .\"O must be an @@ -199,15 +199,15 @@ ARP .\"O .I arp_dev .\"O is a zero-terminated string which names a device. .I arp_pa -¤Ï +は .B AF_INET -¥¢¥É¥ì¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ +アドレスでなければならず、 .I arp_ha -¤Ï +は .I arp_dev -¤ÇÀßÄꤵ¤ì¤¿¥Ç¥Ð¥¤¥¹¤ÈƱ¤¸¥¿¥¤¥×¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +で設定されたデバイスと同じタイプでなければならない。 .I arp_dev -¤Ï¥Ç¥Ð¥¤¥¹¤Î̾Á°¤ò¼¨¤¹¡¢¥¼¥í¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ç¤¢¤ë¡£ +はデバイスの名前を示す、ゼロで終端された文字列である。 .RS .TS tab(:) allbox; @@ -221,13 +221,13 @@ l l. .\"O ATF_USETRAILERS:Trailers requested .\"O ATF_NETMASK:Use a netmask .\"O ATF_DONTPUB:Don't answer -¥Õ¥é¥°:°ÕÌ£ -ATF_COM:»²¾È´°Î» -ATF_PERM:¥¨¥ó¥È¥ê¤ò peramanent ¤Ë¤¹¤ë -ATF_PUBL:¥¨¥ó¥È¥ê¤ò publish ¤¹¤ë -ATF_USETRAILERS:trailer ¤¬É¬Í× -ATF_NETMASK:netmask ¤òÍѤ¤¤ë -ATF_DONTPUB:²óÅú¤·¤Ê¤¤ +フラグ:意味 +ATF_COM:参照完了 +ATF_PERM:エントリを peramanent にする +ATF_PUBL:エントリを publish する +ATF_USETRAILERS:trailer が必要 +ATF_NETMASK:netmask を用いる +ATF_DONTPUB:回答しない .TE .RE @@ -242,16 +242,16 @@ ATF_DONTPUB: .\"O .B ATF_USETRAILERS .\"O is obsolete and should not be used. .B ATF_NETMASK -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ë¤Ï¡¢ +フラグがセットされているときには、 .I arp_netmask -¤¬Í­¸ú¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Linux 2.2 ¤ÏÂåÍý¥Í¥Ã¥È¥ï¡¼¥¯ ARP ¥¨¥ó¥È¥ê¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢ -¤³¤ì¤Ï 0xffffffff ¤Ë¥»¥Ã¥È¤·¤Æ¤ª¤¯¤«¡¢¤¢¤ë¤¤¤Ï -¸½Â¸¤ÎÂåÍý arp ¥¨¥ó¥È¥ê¤òºï½ü¤·¤¿¤¤¾ì¹ç¤Ë¤Ï 0 ¤Ë¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¡£ +が有効でなければならない。 +Linux 2.2 は代理ネットワーク ARP エントリをサポートしていないので、 +これは 0xffffffff にセットしておくか、あるいは +現存の代理 arp エントリを削除したい場合には 0 にしておく必要がある。 .B ATF_USETRAILERS -¤Ï obsolete ¤Ê¤Î¤Ç¡¢ÍѤ¤¤ë¤Ù¤­¤Ç¤Ê¤¤¡£ +は obsolete なので、用いるべきでない。 .\"O .SS /proc interfaces -.SS /proc ¥¤¥ó¥¿¥Õ¥§¡¼¥¹ +.SS /proc インタフェース .\"O ARP supports a range of .\"O .I /proc .\"O interfaces to configure parameters on a global or per-interface basis. @@ -264,46 +264,46 @@ Linux 2.2 .\"O devices. .\"O Unless otherwise specified, time-related sysctls are specified .\"O in seconds. -ARP ¤Ç¤Ï¡¢¥°¥í¡¼¥Ð¥ë¤Ê¥Ñ¥é¥á¡¼¥¿¤ä¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤´¤È¤Î¥Ñ¥é¥á¡¼¥¿¤ò +ARP では、グローバルなパラメータやインターフェースごとのパラメータを .I /proc -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ̤·¤ÆÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤é¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë¤Ï¡¢ +インタフェースを通して設定することができる。 +これらのインタフェースには、 .I proc/sys/net/ipv4/neigh/*/* -¥Õ¥¡¥¤¥ë¤ÎÆɤ߽ñ¤­¤Ë¤è¤ê¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ -¥·¥¹¥Æ¥à¤Ë¤¢¤ë¤½¤ì¤¾¤ì¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤Ï¡¢ -¤½¤ì¤¾¤ìÂбþ¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤¬ +ファイルの読み書きによりアクセスできる。 +システムにあるそれぞれのインターフェースには、 +それぞれ対応するディレクトリが .I /proc/sys/net/ipv4/neigh/ -°Ê²¼¤Ë¤¢¤ë¡£ -"default" ¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ·¤ÆÀßÄê¤ò¤¹¤ë¤È¡¢ -¤½¤ì°Ê¹ßÀ¸À®¤µ¤ì¤ë¥Ç¥Ð¥¤¥¹Á´¤Æ¤ËÂФ·¤Æ¤½¤ÎÀßÄ꤬ÍѤ¤¤é¤ì¤ë¡£ -Æä˻ØÄ꤬¤Ê¤±¤ì¤Ð¡¢»þ´Ö¤Ë´Ø¤ë sysctl ¤Îñ°Ì¤ÏÉäǤ¢¤ë¡£ +以下にある。 +"default" ディレクトリに対して設定をすると、 +それ以降生成されるデバイス全てに対してその設定が用いられる。 +特に指定がなければ、時間に関る sysctl の単位は秒である。 .TP .\"O .IR anycast_delay " (since Linux 2.2)" -.IR anycast_delay " (Linux 2.2 °Ê¹ß)" +.IR anycast_delay " (Linux 2.2 以降)" .\" Precisely: 2.1.79 .\"O The maximum number of jiffies to delay before replying to a .\"O IPv6 neighbor solicitation message. .\"O Anycast support is not yet implemented. .\"O Defaults to 1 second. -IPv6 ¤Î¶á˵Í×ÀÁ¥á¥Ã¥»¡¼¥¸ (neighbor soliciation message) -¤Ë±þÅú¤¹¤ë¤Þ¤Ç¤ÎºÇÂçÃÙ±ä»þ´Ö (jiffy ñ°Ì)¡£ -anycast ¤Î¥µ¥Ý¡¼¥È¤Ï¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 1 Éᣠ+IPv6 の近傍要請メッセージ (neighbor soliciation message) +に応答するまでの最大遅延時間 (jiffy 単位)。 +anycast のサポートはまだ実装されていない。 +デフォルトは 1 秒。 .TP .\"O .IR app_solicit " (since Linux 2.2)" -.IR app_solicit " (Linux 2.2 °Ê¹ß)" +.IR app_solicit " (Linux 2.2 以降)" .\" Precisely: 2.1.79 .\"O The maximum number of probes to send to the user space ARP daemon via .\"O netlink before dropping back to multicast probes (see .\"O .IR mcast_solicit ). .\"O Defaults to 0. -¥æ¡¼¥¶¡¼¶õ´Ö¤Î ARP ¥Ç¡¼¥â¥ó¤Ë netlink ¤òÍѤ¤¤Æõº÷¤µ¤»¤ëºÇÂç²ó¿ô¡£ -¤³¤ì¤ò±Û¤¨¤ë¤È¥Þ¥ë¥Á¥­¥ã¥¹¥È¤Ë¤è¤ëõº÷¤Ë°Ü¹Ô¤¹¤ë +ユーザー空間の ARP デーモンに netlink を用いて探索させる最大回数。 +これを越えるとマルチキャストによる探索に移行する .RI ( mcast_solicit -¤ò¸«¤è)¡£ +を見よ)。 .TP .\"O .IR base_reachable_time " (since Linux 2.2)" -.IR base_reachable_time " (Linux 2.2 °Ê¹ß)" +.IR base_reachable_time " (Linux 2.2 以降)" .\" Precisely: 2.1.79 .\"O Once a neighbor has been found, the entry is considered to be valid .\"O for at least a random value between @@ -311,251 +311,251 @@ anycast .\"O An entry's validity will be extended if it receives positive feedback .\"O from higher level protocols. .\"O Defaults to 30 seconds. -¶á˵¤Î¥Û¥¹¥È¤¬¤ß¤Ä¤«¤ë¤È¡¢¤½¤Î¥¨¥ó¥È¥ê¤Ï -.IR base_reachable_time "/2 ¤«¤é 3*" base_reachable_time /2 -¤Î´Ö¤Î¥é¥ó¥À¥à¤ÊÃͤλþ´Ö¡¢Í­¸ú¤Ç¤¢¤ë¤È¤ß¤Ê¤µ¤ì¤ë¡£ -¥¨¥ó¥È¥ê¤ÎÍ­¸úÀ­¤Ï¡¢¹â°Ì¤Î¥×¥í¥È¥³¥ë¤«¤é¥Ý¥¸¥Æ¥£¥Ö¤Ê¥Õ¥£¡¼¥É¥Ð¥Ã¥¯¤ò -¼õ¤±¼è¤ë¤È±äŤµ¤ì¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ï 30 Éᣠ+近傍のホストがみつかると、そのエントリは +.IR base_reachable_time "/2 から 3*" base_reachable_time /2 +の間のランダムな値の時間、有効であるとみなされる。 +エントリの有効性は、高位のプロトコルからポジティブなフィードバックを +受け取ると延長される。デフォルトは 30 秒。 .\"O This file is now obsolete in favor of .\"O .IR base_reachable_time_ms . -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¸½ºß¤ÏÈó¿ä¾©¤Ç¤¢¤ê¡¢Âå¤ï¤ê¤Ë +このファイルは現在は非推奨であり、代わりに .I base_reachable_time_ms -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .TP .\"O .IR base_reachable_time_ms " (since Linux 2.6.12)" -.IR base_reachable_time_ms " (Linux 2.6.12 °Ê¹ß)" +.IR base_reachable_time_ms " (Linux 2.6.12 以降)" .\"O As for .\"O .IR base_reachable_time , .\"O but measures time in milliseconds. .\"O Defaults to 30000 milliseconds. .I base_reachable_time -¤ÈƱ¤¸¤À¤¬¡¢»þ´Ö¤ò¥ß¥êÉÃñ°Ì¤Ç¬¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 30000 ¥ß¥êÉäǤ¢¤ë¡£ +と同じだが、時間をミリ秒単位で測る。 +デフォルトは 30000 ミリ秒である。 .TP .\"O .IR delay_first_probe_time " (since Linux 2.2)" -.IR delay_first_probe_time " (Linux 2.2 °Ê¹ß)" +.IR delay_first_probe_time " (Linux 2.2 以降)" .\" Precisely: 2.1.79 .\"O Delay before first probe after it has been decided that a neighbor .\"O is stale. .\"O Defaults to 5 seconds. -¶á˵¥Û¥¹¥È¤Î¥¨¥ó¥È¥ê¤¬¸Å¤¯¤Ê¤Ã¤¿¤ÈȽÃǤµ¤ì¤¿¸å¤Ë -ºÇ½é¤Ëõº÷¤ò¹Ô¤¦¤Þ¤Ç¤ÎÃÙ±ä»þ´Ö¡£¥Ç¥Õ¥©¥ë¥È¤Ï 5 Éᣠ+近傍ホストのエントリが古くなったと判断された後に +最初に探索を行うまでの遅延時間。デフォルトは 5 秒。 .TP .\"O .IR gc_interval " (since Linux 2.2)" -.IR gc_interval " (Linux 2.2 °Ê¹ß)" +.IR gc_interval " (Linux 2.2 以降)" .\" Precisely: 2.1.79 .\"O How frequently the garbage collector for neighbor entries .\"O should attempt to run. .\"O Defaults to 30 seconds. -¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥¿¤ò¶á˵¥Û¥¹¥È¥¨¥ó¥È¥ê¤ËÂФ·¤Æ¼Â¹Ô¤µ¤»¤ëÉÑÅÙ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 30 Éᣠ+ガベージ・コレクタを近傍ホストエントリに対して実行させる頻度。 +デフォルトは 30 秒。 .TP .\"O .IR gc_stale_time " (since Linux 2.2)" -.IR gc_stale_time " (Linux 2.2 °Ê¹ß)" +.IR gc_stale_time " (Linux 2.2 以降)" .\" Precisely: 2.1.79 .\"O Determines how often to check for stale neighbor entries. .\"O When a neighbor entry is considered stale, it is resolved again before .\"O sending data to it. .\"O Defaults to 60 seconds. -¸Å¤¯¤Ê¤Ã¤¿¶á˵¥Û¥¹¥È¥¨¥ó¥È¥ê¤ËÂФ·¤Æ¥Á¥§¥Ã¥¯¤ò¹Ô¤¦ÉÑÅÙ¡£ -¶á˵¥Û¥¹¥È¥¨¥ó¥È¥ê¤¬¸Å¤¯¤Ê¤Ã¤¿¤È¤ß¤Ê¤µ¤ì¤ë¤È¡¢¤½¤Î¥¨¥ó¥È¥ê¤Ë -¥Ç¡¼¥¿¤òÁ÷¤ëÁ°¤Ë¤ÏºÆÅÙ²ò·è¤¬¹Ô¤ï¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 60 Éᣠ+古くなった近傍ホストエントリに対してチェックを行う頻度。 +近傍ホストエントリが古くなったとみなされると、そのエントリに +データを送る前には再度解決が行われる。 +デフォルトは 60 秒。 .TP .\"O .IR gc_thresh1 " (since Linux 2.2)" -.IR gc_thresh1 " (Linux 2.2 °Ê¹ß)" +.IR gc_thresh1 " (Linux 2.2 以降)" .\" Precisely: 2.1.79 .\"O The minimum number of entries to keep in the ARP cache. .\"O The garbage collector will not run if there are fewer than .\"O this number of entries in the cache. .\"O Defaults to 128. -ARP ¥­¥ã¥Ã¥·¥å¤ËÊݸ¤¹¤ë¥¨¥ó¥È¥ê¿ô¤ÎºÇ¾®ÃÍ¡£ -¤³¤Î¿ô¤è¤ê¾¯¤Ê¤¤¥¨¥ó¥È¥ê¤·¤«¥­¥ã¥Ã¥·¥å¤Ë¤Ê¤±¤ì¤Ð¡¢ -¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥¿¤Ï¼Â¹Ô¤µ¤ì¤Ê¤¤¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 128¡£ +ARP キャッシュに保存するエントリ数の最小値。 +この数より少ないエントリしかキャッシュになければ、 +ガベージ・コレクタは実行されない。 +デフォルトは 128。 .TP .\"O .IR gc_thresh2 " (since Linux 2.2)" -.IR gc_thresh2 " (Linux 2.2 °Ê¹ß)" +.IR gc_thresh2 " (Linux 2.2 以降)" .\" Precisely: 2.1.79 .\"O The soft maximum number of entries to keep in the ARP cache. .\"O The garbage collector will allow the number of entries to exceed .\"O this for 5 seconds before collection will be performed. .\"O Defaults to 512. -ARP ¥­¥ã¥Ã¥·¥å¤ËÊݸ¤µ¤ì¤ë¥¨¥ó¥È¥ê¿ô¤Î¥½¥Õ¥È¤ÊºÇÂçÃÍ¡£ -¥­¥ã¥Ã¥·¥å¤Î¥¨¥ó¥È¥ê¤¬¤³¤Î¿ô¤ò 5 Éôֱۤ¨¤Ä¤Å¤±¤ë¤È¡¢ -¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥¿¤¬¼Â¹Ô¤µ¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 512¡£ +ARP キャッシュに保存されるエントリ数のソフトな最大値。 +キャッシュのエントリがこの数を 5 秒間越えつづけると、 +ガベージ・コレクタが実行される。 +デフォルトは 512。 .TP .\"O .IR gc_thresh3 " (since Linux 2.2)" -.IR gc_thresh3 " (Linux 2.2 °Ê¹ß)" +.IR gc_thresh3 " (Linux 2.2 以降)" .\" Precisely: 2.1.79 .\"O The hard maximum number of entries to keep in the ARP cache. .\"O The garbage collector will always run if there are more than .\"O this number of entries in the cache. .\"O Defaults to 1024. -ARP ¥­¥ã¥Ã¥·¥å¤ËÊݸ¤µ¤ì¤ë¥¨¥ó¥È¥ê¿ô¤Î¥Ï¡¼¥É¤ÊºÇÂçÃÍ¡£ -¥­¥ã¥Ã¥·¥å¤Î¥¨¥ó¥È¥ê¤¬¤³¤Î¿ô¤ò±Û¤¨¤ë¤È¡¢ -¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥¿¤Ï¤¿¤À¤Á¤Ë¼Â¹Ô¤µ¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 1024¡£ +ARP キャッシュに保存されるエントリ数のハードな最大値。 +キャッシュのエントリがこの数を越えると、 +ガベージ・コレクタはただちに実行される。 +デフォルトは 1024。 .TP .\"O .IR locktime " (since Linux 2.2)" -.IR locktime " (Linux 2.2 °Ê¹ß)" +.IR locktime " (Linux 2.2 以降)" .\" Precisely: 2.1.79 .\"O The minimum number of jiffies to keep an ARP entry in the cache. .\"O This prevents ARP cache thrashing if there is more than one potential .\"O mapping (generally due to network misconfiguration). .\"O Defaults to 1 second. -ARP ¥¨¥ó¥È¥ê¤ò¥­¥ã¥Ã¥·¥å¤ËÊݸ¤¹¤ë»þ´Ö¤ÎºÇ¾®ÃÍ (jiffy ñ°Ì)¡£ -²ÄǽÀ­¤Î¤¢¤ë¥Þ¥Ã¥Ô¥ó¥°¤¬°ì¤Ä°Ê¾å¤¢¤ë (¤¿¤¤¤Æ¤¤¤Ï¥Í¥Ã¥È¥ï¡¼¥¯ÀßÄê¤Î¥ß¥¹) -¾ì¹ç¤Ë¡¢ ARP ¥­¥ã¥Ã¥·¥å¤Î¥¹¥é¥Ã¥·¥ó¥°¤¬µ¯¤­¤ë¤³¤È¤òËɤ°¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 1 Éᣠ+ARP エントリをキャッシュに保存する時間の最小値 (jiffy 単位)。 +可能性のあるマッピングが一つ以上ある (たいていはネットワーク設定のミス) +場合に、 ARP キャッシュのスラッシングが起きることを防ぐ。 +デフォルトは 1 秒。 .TP .\"O .IR mcast_solicit " (since Linux 2.2)" -.IR mcast_solicit " (Linux 2.2 °Ê¹ß)" +.IR mcast_solicit " (Linux 2.2 以降)" .\" Precisely: 2.1.79 .\"O The maximum number of attempts to resolve an address by .\"O multicast/broadcast before marking the entry as unreachable. .\"O Defaults to 3. -¥¨¥ó¥È¥ê¤ò unreachable ¥Þ¡¼¥¯¤¹¤ëÁ°¤Ë¡¢ -¥¢¥É¥ì¥¹¤ò¥Þ¥ë¥Á¥­¥ã¥¹¥È/¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¤Ç²ò·è¤·¤è¤¦¤È¤¹¤ë -»î¹Ô²ó¿ô¤ÎºÇÂçÃÍ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 3¡£ +エントリを unreachable マークする前に、 +アドレスをマルチキャスト/ブロードキャストで解決しようとする +試行回数の最大値。 +デフォルトは 3。 .TP .\"O .IR proxy_delay " (since Linux 2.2)" -.IR proxy_delay " (Linux 2.2 °Ê¹ß)" +.IR proxy_delay " (Linux 2.2 以降)" .\" Precisely: 2.1.79 .\"O When an ARP request for a known proxy-ARP address is received, delay up to .\"O .I proxy_delay .\"O jiffies before replying. .\"O This is used to prevent network flooding in some cases. .\"O Defaults to 0.8 seconds. -´ûÃΤÎÂåÍý ARP ¥¢¥É¥ì¥¹¤ËÂФ·¤Æ ARP ¥ê¥¯¥¨¥¹¥È¤ò¼õ¿®¤·¤¿¾ì¹ç¤Ë¡¢ -±þÅúÁ°¤ËºÇÂç +既知の代理 ARP アドレスに対して ARP リクエストを受信した場合に、 +応答前に最大 .I proxy_delay -jiffy ¤Þ¤ÇÃٱ䤹¤ë¡£¤³¤ì¤Ï¾ì¹ç¤Ë¤è¤Ã¤ÆÀ¸¤¸¤ë -¥Í¥Ã¥È¥ï¡¼¥¯¡¦¥Õ¥é¥Ã¥Ç¥£¥ó¥° (network flooding) ¤òÈò¤±¤ë¤¿¤á¤ËÍѤ¤¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 0.8 Éᣠ+jiffy まで遅延する。これは場合によって生じる +ネットワーク・フラッディング (network flooding) を避けるために用いる。 +デフォルトは 0.8 秒。 .TP .\"O .IR proxy_qlen " (since Linux 2.2)" -.IR proxy_qlen " (Linux 2.2 °Ê¹ß)" +.IR proxy_qlen " (Linux 2.2 以降)" .\" Precisely: 2.1.79 .\"O The maximum number of packets which may be queued to proxy-ARP addresses. .\"O Defaults to 64. -ÂåÍý ARP ¥¢¥É¥ì¥¹¤ËÂФ·¤Æ¥­¥å¡¼¥¤¥ó¥°¤Ç¤­¤ëºÇÂç¤Î¥Ñ¥±¥Ã¥È¿ô¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 64¡£ +代理 ARP アドレスに対してキューイングできる最大のパケット数。 +デフォルトは 64。 .TP .\"O .IR retrans_time " (since Linux 2.2)" -.IR retrans_time " (Linux 2.2 °Ê¹ß)" +.IR retrans_time " (Linux 2.2 以降)" .\" Precisely: 2.1.79 .\"O The number of jiffies to delay before retransmitting a request. .\"O Defaults to 1 second. .\"O This file is now obsolete in favor of .\"O .IR retrans_time_ms . -¥ê¥¯¥¨¥¹¥È¤òºÆÅÙÁ÷¤ë¤Þ¤Ç¤ÎÃÙ±ä»þ´Ö (jiffy ñ°Ì)¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 1 Éᣠ-¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¸½ºß¤ÏÈó¿ä¾©¤Ç¤¢¤ê¡¢Âå¤ï¤ê¤Ë +リクエストを再度送るまでの遅延時間 (jiffy 単位)。 +デフォルトは 1 秒。 +このファイルは現在は非推奨であり、代わりに .I retrans_time_ms -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .TP .\"O .IR retrans_time_ms " (since Linux 2.6.12)" -.IR retrans_time_ms " (Linux 2.6.12 °Ê¹ß)" +.IR retrans_time_ms " (Linux 2.6.12 以降)" .\"O The number of milliseconds to delay before retransmitting a request. .\"O Defaults to 1000 milliseconds. -¥ê¥¯¥¨¥¹¥È¤òºÆÅÙÁ÷¤ë¤Þ¤Ç¤ÎÃÙ±ä»þ´Ö (¥ß¥êÉÃñ°Ì)¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 1000 ¥ß¥êÉᣠ+リクエストを再度送るまでの遅延時間 (ミリ秒単位)。 +デフォルトは 1000 ミリ秒。 .TP .\"O .IR ucast_solicit " (since Linux 2.2)" -.IR ucast_solicit " (Linux 2.2 °Ê¹ß)" +.IR ucast_solicit " (Linux 2.2 以降)" .\" Precisely: 2.1.79 .\"O The maximum number of attempts to send unicast probes before asking .\"O the ARP daemon (see .\"O .IR app_solicit ). .\"O Defaults to 3. -ARP ¥Ç¡¼¥â¥ó¤Ø¤ÎÌ䤤¹ç¤ï¤»¤ò¹Ô¤¦Á°¤Ë¹Ô¤¦ unicast õº÷¤ÎºÇÂç»î¹Ô¿ô +ARP デーモンへの問い合わせを行う前に行う unicast 探索の最大試行数 .RI ( app_solicit -¤ò¸«¤è)¡£¥Ç¥Õ¥©¥ë¥È¤Ï 3¡£ +を見よ)。デフォルトは 3。 .TP .\"O .IR unres_qlen " (since Linux 2.2)" -.IR unres_qlen " (Linux 2.2 °Ê¹ß)" +.IR unres_qlen " (Linux 2.2 以降)" .\" Precisely: 2.1.79 .\"O The maximum number of packets which may be queued for each unresolved .\"O address by other network layers. .\"O Defaults to 3. -²ò·è¤µ¤ì¤Æ¤¤¤Ê¤¤¥¢¥É¥ì¥¹¤ËÂФ·¤Æ¡¢ -¾¤Î¥Í¥Ã¥È¥ï¡¼¥¯Áؤ«¤é¥­¥å¡¼¥¤¥ó¥°¤Ç¤­¤ëºÇÂç¥Ñ¥±¥Ã¥È¿ô¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 3¡£ +解決されていないアドレスに対して、 +他のネットワーク層からキューイングできる最大パケット数。 +デフォルトは 3。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The .\"O .I struct arpreq .\"O changed in Linux 2.0 to include the .\"O .I arp_dev .\"O member and the ioctl numbers changed at the same time. .\"O Support for the old ioctls was dropped in Linux 2.2. -Linux 2.0 ¤Ç¡¢ +Linux 2.0 で、 .I struct arpreq -¤Ë +に .I arp_dev -¥á¥ó¥Ð¡¼¤¬´Þ¤Þ¤ì¤ë¤è¤¦¤ËÊѹ¹¤¬¤¢¤Ã¤¿¡£¤Þ¤¿Æ±»þ¤Ë -ioctl ÈÖ¹æ¤âÊѹ¹¤µ¤ì¤¿¡£¸Å¤¤ ioctl ¤Ï -Linux 2.2 ¤ÇÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¯¤Ê¤Ã¤¿¡£ +メンバーが含まれるように変更があった。また同時に +ioctl 番号も変更された。古い ioctl は +Linux 2.2 で用いることができなくなった。 .\"O Support for proxy arp entries for networks (netmask not equal 0xffffffff) .\"O was dropped in Linux 2.2. .\"O It is replaced by automatic proxy arp setup by .\"O the kernel for all reachable hosts on other interfaces (when .\"O forwarding and proxy arp is enabled for the interface). -¥Í¥Ã¥È¥ï¡¼¥¯¤ËÂФ¹¤ëÂåÍý arp ¥¨¥ó¥È¥ê (netmask ¤¬ 0xffffffff ¤Ç¤Ê¤¤) -¤Ï¡¢ Linux 2.2 ¤ÇÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¯¤Ê¤Ã¤¿¡£ -¤³¤ì¤Ï¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤ÆÀßÄꤵ¤ì¤ë¡¢Ê̤Υ¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤ª¤±¤ë -Åþã²Äǽ¤Ê¤¹¤Ù¤Æ¤Î¥Û¥¹¥È¤ËÂФ¹¤ë¼«Æ°ÂåÍý arp ¤Ë¤è¤Ã¤ÆÃÖ¤­´¹¤¨¤é¤ì¤¿ -(¤½¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¥Õ¥©¥ï¡¼¥Ç¥£¥ó¥°¤ÈÂåÍý arp ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç)¡£ +ネットワークに対する代理 arp エントリ (netmask が 0xffffffff でない) +は、 Linux 2.2 で用いることができなくなった。 +これはカーネルによって設定される、別のインターフェースにおける +到達可能なすべてのホストに対する自動代理 arp によって置き換えられた +(そのインターフェースでフォワーディングと代理 arp が有効になっている場合)。 .\"O The .\"O .I neigh/* .\"O interfaces did not exist before Linux 2.2. .I neigh/* -¤Î³Æ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï Linux 2.2 °ÊÁ°¤Ë¤Ï¸ºß¤·¤Ê¤¤¡£ +の各インタフェースは Linux 2.2 以前には存在しない。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Some timer settings are specified in jiffies, which is architecture- .\"O and kernel version-dependent; see .\"O .BR time (7). -¤¤¤¯¤Ä¤«¤Î¥¿¥¤¥Þ¡¼ÀßÄê¤Ï jiffy ¤Ç»ØÄꤵ¤ì¤ë¤¬¡¢ -jiffy ¤Ï¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ä¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë°Í¸¤¹¤ë¡£ +いくつかのタイマー設定は jiffy で指定されるが、 +jiffy はアーキテクチャやカーネルのバージョンに依存する。 .BR time (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O There is no way to signal positive feedback from user space. .\"O This means connection-oriented protocols implemented in user space .\"O will generate excessive ARP traffic, because ndisc will regularly .\"O reprobe the MAC address. .\"O The same problem applies for some kernel protocols (e.g., NFS over UDP). -¥æ¡¼¥¶¡¼¶õ´Ö¤«¤é¥Ý¥¸¥Æ¥£¥Ö¤Ê¥Õ¥£¡¼¥É¥Ð¥Ã¥¯¤òÁ÷¤ëÊýË¡¤¬Â¸ºß¤·¤Ê¤¤¡£ -¤Ä¤Þ¤êÀܳ»Ø¸þ (connection-oriented) ¤Î¥×¥í¥È¥³¥ë¤ò¥æ¡¼¥¶¡¼¶õ´Ö¤Ç -¼ÂÁõ¤¹¤ë¤È¡¢Í¾·×¤Ê ARP ¥È¥é¥Õ¥£¥Ã¥¯¤Î¸¶°ø¤È¤Ê¤ë¡£ -¤Ê¤¼¤Ê¤é ndisc ¤ÏÄê´üŪ¤Ë MAC ¥¢¥É¥ì¥¹¤òºÆõº÷¤¹¤ë¤«¤é¤Ç¤¢¤ë¡£ -ƱÍͤÎÌäÂê¤Ï¤¤¤¯¤Ä¤«¤Î¥«¡¼¥Í¥ë¥×¥í¥È¥³¥ë (NFS over UDP ¤Ê¤É) ¤Ë¤â¸ºß¤¹¤ë¡£ +ユーザー空間からポジティブなフィードバックを送る方法が存在しない。 +つまり接続指向 (connection-oriented) のプロトコルをユーザー空間で +実装すると、余計な ARP トラフィックの原因となる。 +なぜなら ndisc は定期的に MAC アドレスを再探索するからである。 +同様の問題はいくつかのカーネルプロトコル (NFS over UDP など) にも存在する。 .PP .\"O This man page mashes IPv4 specific and shared between IPv4 and IPv6 .\"O functionality together. -¤³¤Î man ¥Ú¡¼¥¸¤Ç¤Ï IPv4 ÆÃÍ­¤Îµ¡Ç½¤È -IPv4¡¦IPv6 ¤Ç¶¦Í­¤µ¤ì¤ëµ¡Ç½¤È¤¬¤´¤Ã¤Á¤ã¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +この man ページでは IPv4 特有の機能と +IPv4・IPv6 で共有される機能とがごっちゃになっている。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR capabilities (7), .BR ip (7) .PP .\"O RFC\ 826 for a description of ARP. .BR RFC\ 826 : -ARP ¤Ë´Ø¤¹¤ëÀâÌÀ +ARP に関する説明 .br .\"O RFC\ 2461 for a description of IPv6 neighbor discovery and the base .\"O algorithms used. .BR RFC\ 2461 : -IPv6 neighbor discovery ¤Ë´Ø¤¹¤ëÀâÌÀ¤È¡¢ -ÍøÍѤµ¤ì¤Æ¤¤¤ë´ðÁÃ¥¢¥ë¥´¥ê¥º¥à +IPv6 neighbor discovery に関する説明と、 +利用されている基礎アルゴリズム .LP .\"O Linux 2.2+ IPv4 ARP uses the IPv6 algorithms when applicable. -Linux 2.2 °Ê¹ß¤Î IPv4 ARP ¤Ï¡¢ -²Äǽ¤Ê¾ì¹ç¤Ï IPv6 ¤Î¥¢¥ë¥´¥ê¥º¥à¤òÍѤ¤¤ë¡£ +Linux 2.2 以降の IPv4 ARP は、 +可能な場合は IPv6 のアルゴリズムを用いる。 diff --git a/draft/man7/ascii.7 b/draft/man7/ascii.7 index 25c4530a..9800f3dd 100644 --- a/draft/man7/ascii.7 +++ b/draft/man7/ascii.7 @@ -39,26 +39,26 @@ .\" .TH ASCII 7 2009-02-12 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O ascii \- ASCII character set encoded in octal, decimal, and hexadecimal -ascii \- ASCII ʸ»ú½¸¹ç¤Î 8 ¿Ê¿ô¡¢10 ¿Ê¿ô¡¢16 ¿Ê¿ô¤Ë¤è¤ëÉä¹æ²½ +ascii \- ASCII 文字集合の 8 進数、10 進数、16 進数による符号化 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O ASCII is the American Standard Code for Information Interchange. .\"O It is a 7-bit code. .\"O Many 8-bit codes (such as ISO 8859-1, the .\"O Linux default character set) contain ASCII as their lower half. .\"O The international counterpart of ASCII is known as ISO 646. -ASCII ¤Ï¡¢¾ðÊó¸ò´¹ÍÑÊƹñɸ½à¥³¡¼¥É (American Standard Code for -Information Interchange) ¤Îά¤Ç¡¢7 ¥Ó¥Ã¥È¤Î¥³¡¼¥É¤Ç¤¢¤ë¡£ -(ISO 8859-1 ¤Î¤è¤¦¤Ê) ¿¤¯¤Î 8 ¥Ó¥Ã¥È¤Î¥³¡¼¥É¤Ç¤Ï²¼È¾Ê¬¤Ë -ASCII ¤ò´Þ¤ó¤Ç¤¤¤ë¡£ASCII ¤Ï¹ñºÝŪ¤Êµ¬³Ê¤Ç¤Ï ISO 646 ¤È¤·¤ÆÃΤé¤ì¤Æ¤¤¤ë¡£ +ASCII は、情報交換用米国標準コード (American Standard Code for +Information Interchange) の略で、7 ビットのコードである。 +(ISO 8859-1 のような) 多くの 8 ビットのコードでは下半分に +ASCII を含んでいる。ASCII は国際的な規格では ISO 646 として知られている。 .LP .\"O The following table contains the 128 ASCII characters. -°Ê²¼¤Îɽ¤Ï 128 ʸ»ú¤Î ASCII ʸ»ú¤ò¤Þ¤È¤á¤¿¤â¤Î¤Ç¤¢¤ë¡£ +以下の表は 128 文字の ASCII 文字をまとめたものである。 .LP .\"O C program \f(CW\(aq\eX\(aq\fP escapes are noted. -C ¥×¥í¥°¥é¥à¤Ç¤Î \f(CW\(aq\eX\(aq\fP ¥¨¥¹¥±¡¼¥×¤âÃíµ­¤·¤Æ¤¢¤ë¡£ +C プログラムでの \f(CW\(aq\eX\(aq\fP エスケープも注記してある。 .if t \{\ .in 1i .ft CW @@ -99,37 +99,37 @@ _ .\"O 035 29 1D GS (group separator) 135 93 5D ] .\"O 036 30 1E RS (record separator) 136 94 5E ^ .\"O 037 31 1F US (unit separator) 137 95 5F \&_ -001 1 01 SOH (¥Ø¥Ã¥À³«»Ï) 101 65 41 A -002 2 02 STX (¥Æ¥­¥¹¥È³«»Ï) 102 66 42 B -003 3 03 ETX (¥Æ¥­¥¹¥È½ªÎ») 103 67 43 C -004 4 04 EOT (žÁ÷½ªÎ») 104 68 44 D -005 5 05 ENQ (Ì䤤¹ç¤ï¤») 105 69 45 E -006 6 06 ACK (¹ÎÄê±þÅú) 106 70 46 F -007 7 07 BEL \(aq\ea\(aq (¥Ù¥ë) 107 71 47 G -010 8 08 BS \(aq\eb\(aq (¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹) 110 72 48 H -011 9 09 HT \(aq\et\(aq (¿åÊ¿¥¿¥Ö) 111 73 49 I -012 10 0A LF \(aq\en\(aq (²þ¹Ô) 112 74 4A J -013 11 0B VT \(aq\ev\(aq (¿âľ¥¿¥Ö) 113 75 4B K -014 12 0C FF \(aq\ef\(aq (²þ¥Ú¡¼¥¸) 114 76 4C L -015 13 0D CR \(aq\er\(aq (Éüµ¢) 115 77 4D M -016 14 0E SO (¥·¥Õ¥È¥¢¥¦¥È) 116 78 4E N -017 15 0F SI (¥·¥Õ¥È¥¤¥ó) 117 79 4F O -020 16 10 DLE (ÅÁÁ÷À©¸æ³ÈÄ¥) 120 80 50 P -021 17 11 DC1 (ÁõÃÖÀ©¸æ1) 121 81 51 Q -022 18 12 DC2 (ÁõÃÖÀ©¸æ2) 122 82 52 R -023 19 13 DC3 (ÁõÃÖÀ©¸æ3) 123 83 53 S -024 20 14 DC4 (ÁõÃÖÀ©¸æ4) 124 84 54 T -025 21 15 NAK (ÈÝÄê±þÅú) 125 85 55 U -026 22 16 SYN (Ʊ´ü) 126 86 56 V -027 23 17 ETB (žÁ÷¥Ö¥í¥Ã¥¯½ªÎ») 127 87 57 W -030 24 18 CAN (¥­¥ã¥ó¥»¥ë) 130 88 58 X -031 25 19 EM (¥á¥Ç¥£¥¢½ªÎ») 131 89 59 Y -032 26 1A SUB (ÃÖ´¹) 132 90 5A Z -033 27 1B ESC (¥¨¥¹¥±¡¼¥×) 133 91 5B [ -034 28 1C FS (¥Õ¥¡¥¤¥ë¶èÀÚ¤ê) 134 92 5C \e \(aq\e\e\(aq -035 29 1D GS (¥°¥ë¡¼¥×¶èÀÚ¤ê) 135 93 5D ] -036 30 1E RS (¥ì¥³¡¼¥É¶èÀÚ¤ê) 136 94 5E ^ -037 31 1F US (¥æ¥Ë¥Ã¥È¶èÀÚ¤ê) 137 95 5F \&_ +001 1 01 SOH (ヘッダ開始) 101 65 41 A +002 2 02 STX (テキスト開始) 102 66 42 B +003 3 03 ETX (テキスト終了) 103 67 43 C +004 4 04 EOT (転送終了) 104 68 44 D +005 5 05 ENQ (問い合わせ) 105 69 45 E +006 6 06 ACK (肯定応答) 106 70 46 F +007 7 07 BEL \(aq\ea\(aq (ベル) 107 71 47 G +010 8 08 BS \(aq\eb\(aq (バックスペース) 110 72 48 H +011 9 09 HT \(aq\et\(aq (水平タブ) 111 73 49 I +012 10 0A LF \(aq\en\(aq (改行) 112 74 4A J +013 11 0B VT \(aq\ev\(aq (垂直タブ) 113 75 4B K +014 12 0C FF \(aq\ef\(aq (改ページ) 114 76 4C L +015 13 0D CR \(aq\er\(aq (復帰) 115 77 4D M +016 14 0E SO (シフトアウト) 116 78 4E N +017 15 0F SI (シフトイン) 117 79 4F O +020 16 10 DLE (伝送制御拡張) 120 80 50 P +021 17 11 DC1 (装置制御1) 121 81 51 Q +022 18 12 DC2 (装置制御2) 122 82 52 R +023 19 13 DC3 (装置制御3) 123 83 53 S +024 20 14 DC4 (装置制御4) 124 84 54 T +025 21 15 NAK (否定応答) 125 85 55 U +026 22 16 SYN (同期) 126 86 56 V +027 23 17 ETB (転送ブロック終了) 127 87 57 W +030 24 18 CAN (キャンセル) 130 88 58 X +031 25 19 EM (メディア終了) 131 89 59 Y +032 26 1A SUB (置換) 132 90 5A Z +033 27 1B ESC (エスケープ) 133 91 5B [ +034 28 1C FS (ファイル区切り) 134 92 5C \e \(aq\e\e\(aq +035 29 1D GS (グループ区切り) 135 93 5D ] +036 30 1E RS (レコード区切り) 136 94 5E ^ +037 31 1F US (ユニット区切り) 137 95 5F \&_ 040 32 20 SPACE 140 96 60 \` 041 33 21 ! 141 97 61 a 042 34 22 " 142 98 62 b @@ -168,9 +168,9 @@ _ .ft P \} .\"O .SS TABLES -.SS ɽ +.SS 表 .\"O For convenience, let us give more compact tables in hex and decimal. -ÊØÍø¤Ê¤Î¤Ç¡¢16¿Ê·Á¼°¤È10¿Ê·Á¼°¤Î´Ê·é¤Êɽ¤òºÜ¤»¤Æ¤ª¤¯¡£ +便利なので、16進形式と10進形式の簡潔な表を載せておく。 .sp .nf .if t \{\ @@ -202,37 +202,37 @@ F: / ? O _ o DEL .fi .\"O .SH NOTES .\"O .SS History -.SH È÷¹Í -.SS Îò»Ë +.SH 備考 +.SS 歴史 .\"O An .\"O .B ascii .\"O manual page appeared in Version 7 of AT&T UNIX. .B ascii -¤Î¥Þ¥Ë¥å¥¢¥ë¤Ï AT&T UNIX Version 7 ¤ÇÅо줷¤¿¡£ +のマニュアルは AT&T UNIX Version 7 で登場した。 .LP .\"O On older terminals, the underscore code is displayed as a left arrow, .\"O called backarrow, the caret is displayed as an up-arrow and the vertical .\"O bar has a hole in the middle. -¸Å¤¤Ã¼Ëö¤Ç¤Ï¡¢¥¢¥ó¥À¡¼¥¹¥³¥¢¤¬¥Ð¥Ã¥¯¥¢¥í¡¼ (backarrow) ¤È¸Æ¤Ð¤ì¤ë -º¸¸þ¤­¤ÎÌð°õ¤Çɽ¼¨¤µ¤ì¤ë¡¢¤Þ¤¿¥­¥ã¥ì¥Ã¥È¤¬¾å¸þ¤­¤ÎÌð°õ¤Çɽ¼¨¤µ¤ì¡¢ -½ÄËÀ (vertcal bar) ¤Ç¤Ï¿¿¤óÃæ¤Ë·ê¤¬¤¢¤ë¡£ +古い端末では、アンダースコアがバックアロー (backarrow) と呼ばれる +左向きの矢印で表示される、またキャレットが上向きの矢印で表示され、 +縦棒 (vertcal bar) では真ん中に穴がある。 .LP .\"O Uppercase and lowercase characters differ by just one bit and the .\"O ASCII character 2 differs from the double quote by just one bit, too. .\"O That made it much easier to encode characters mechanically or with a .\"O non-microcontroller-based electronic keyboard and that pairing was found .\"O on old teletypes. -Âçʸ»ú (uppercase) ¤È¾®Ê¸»ú (lowercase) ¤Ï 1 ¥Ó¥Ã¥È¤À¤±°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ -ASCII ¤Îʸ»ú 2 ¤Ï¥À¥Ö¥ë¥¯¥©¡¼¥È¤È¤Ï 1 ¥Ó¥Ã¥È¤À¤±°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤³¤ì¤Ë¤è¤Ã¤Æµ¡³£¼°¥­¡¼¥Ü¡¼¥É¤ä¥Þ¥¤¥³¥óÀ©¸æ¤Ç¤Ê¤¤ÅŻҥ­¡¼¥Ü¡¼¥É¤Ç -¥­¡¼¥³¡¼¥É²½¤¹¤ë¤³¤È¤¬´Êñ¤Ë¤Ê¤ë¡£¤Þ¤¿¡¢¸Å¤¤¥Æ¥ì¥¿¥¤¥×¤Ç¤â¤³¤Î -ÁȤ߹ç¤ï¤»¤¬»ÈÍѤµ¤ì¤Æ¤¤¤¿¡£(ÌõÃí: JIS ¥­¡¼ÇÛÎó¤â¤½¤Î°ì¼ï) +大文字 (uppercase) と小文字 (lowercase) は 1 ビットだけ異なっている。 +ASCII の文字 2 はダブルクォートとは 1 ビットだけ異なっている。 +これによって機械式キーボードやマイコン制御でない電子キーボードで +キーコード化することが簡単になる。また、古いテレタイプでもこの +組み合わせが使用されていた。(訳注: JIS キー配列もその一種) .LP .\"O The ASCII standard was published by the United States of America .\"O Standards Institute (USASI) in 1968. -ASCII µ¬³Ê¤ÏÊƹñµ¬³Ê¶¨²ñ -(USASI : United States of America Standards Institute) ¤Ë¤è¤Ã¤Æ -1968ǯ¤Ëȯ¹Ô¤µ¤ì¤¿¡£ +ASCII 規格は米国規格協会 +(USASI : United States of America Standards Institute) によって +1968年に発行された。 .\" .\" ASA was the American Standards Association and X3 was an ASA sectional .\" committee on computers and data processing. Its name changed to @@ -246,7 +246,7 @@ ASCII .\" U.S. member body of ISO; private and nonprofit. .\" .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR iso_8859-1 (7), .BR iso_8859-10 (7), .BR iso_8859-13 (7), diff --git a/draft/man7/boot.7 b/draft/man7/boot.7 index 181323ed..46a69b57 100644 --- a/draft/man7/boot.7 +++ b/draft/man7/boot.7 @@ -16,10 +16,10 @@ .TH BOOT 7 2010-09-19 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O boot-scripts \- General description of boot sequence -.SH ̾Á° -boot-scripts \- ¥Ö¡¼¥È¥·¡¼¥±¥ó¥¹¤Î°ìÈÌŪ¤Ê²òÀâ +.SH 名前 +boot-scripts \- ブートシーケンスの一般的な解説 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .LP .\"O The boot sequence varies in details among systems .\"O but can be roughly divided to the following steps: @@ -27,20 +27,20 @@ boot-scripts \- .\"O (iii) kernel startup, (iv) init and inittab, .\"O (v) boot scripts. .\"O We will describe each of these in more detail below. -ºÙ¤«¤¤¤È¤³¤í¤Ï¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¤¬¡¢Âç¤Þ¤«¤Ë¸À¤¦¤È¡¢ -¥Ö¡¼¥È¥·¡¼¥±¥ó¥¹¤Ï°Ê²¼¤ÎÃʳ¬¤Ëʬ¤±¤é¤ì¤ë: -(1) ¥Ï¡¼¥É¥¦¥§¥¢¤Î¥Ö¡¼¥È (2) OS ¥í¡¼¥À¡¼ -(3) ¥«¡¼¥Í¥ë¤Îµ¯Æ° (4) init ¤È inittab -(5) ¥Ö¡¼¥È¥¹¥¯¥ê¥×¥È +細かいところはシステムによって異なるが、大まかに言うと、 +ブートシーケンスは以下の段階に分けられる: +(1) ハードウェアのブート (2) OS ローダー +(3) カーネルの起動 (4) init と inittab +(5) ブートスクリプト .\"O .SS "Hardware-boot" -.SS ¥Ï¡¼¥É¥¦¥§¥¢¤Î¥Ö¡¼¥È +.SS ハードウェアのブート .\"O After power-on or hard reset, control is given .\"O to a program stored on read-only memory (normally .\"O PROM). .\"O In PC we usually call this program the \fBBIOS\fR. -ÅŸ»ÅêÆþ¤ä¥Ï¡¼¥É¥ê¥»¥Ã¥È¤¬¹Ô¤ï¤ì¤ë¤È¡¢ -ROM (Ä̾ï¤Ï PROM) ¤ËÊݸ¤µ¤ì¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤ËÀ©¸æ¤¬ÅϤµ¤ì¤ë¡£ -PC ¤Ç¤Ï¤³¤Î¥×¥í¥°¥é¥à¤ÏÄ̾ï \fBBIOS\fR ¤È¸Æ¤Ð¤ì¤ë¡£ +電源投入やハードリセットが行われると、 +ROM (通常は PROM) に保存されているプログラムに制御が渡される。 +PC ではこのプログラムは通常 \fBBIOS\fR と呼ばれる。 .\"O This program normally makes a basic self-test of the .\"O machine and accesses nonvolatile memory to read @@ -50,46 +50,46 @@ PC .\"O refer to it as the \fBCMOS\fR, although outside .\"O of the PC world, it is usually called \fBnvram\fR .\"O (nonvolatile ram). -¤Õ¤Ä¤¦¤³¤Î¥×¥í¥°¥é¥à¤Ï¡¢¤Þ¤º¥Þ¥·¥ó¤Î´ðËÜŪ¤Ê¼«¸Ê¿ÇÃǤò¹Ô¤¤¡¢ -¤½¤·¤ÆÉÔ´øȯÀ­¥á¥â¥ê¤Ë¥¢¥¯¥»¥¹¤·¤Æ³Æ¼ï¤Î¥Ñ¥é¥á¡¼¥¿¤òÆɤ߹þ¤à¡£ -PC ¤Ç¤Ï¡¢¤³¤Î¥á¥â¥ê¤ÏÅÅÃӤˤè¤Ã¤Æ¥Ð¥Ã¥¯¥¢¥Ã¥×¤µ¤ì¤Æ¤¤¤ë CMOS ¥á¥â¥ê¤Ç¤¢¤ë¡£ -¤½¤Î¤¿¤á \fBCMOS\fR ¤È¸Æ¤Ð¤ì¤ë¤³¤È¤¬Â¿¤¤¡£ -¤·¤«¤· PC °Ê³°¤ÎÀ¤³¦¤Ç¤Ï¡¢Ä̾ï \fBnvram\fR -(nonvolatile ram) ¤È¸Æ¤Ð¤ì¤Æ¤¤¤ë¡£ +ふつうこのプログラムは、まずマシンの基本的な自己診断を行い、 +そして不揮発性メモリにアクセスして各種のパラメータを読み込む。 +PC では、このメモリは電池によってバックアップされている CMOS メモリである。 +そのため \fBCMOS\fR と呼ばれることが多い。 +しかし PC 以外の世界では、通常 \fBnvram\fR +(nonvolatile ram) と呼ばれている。 .\"O The parameters stored in the nvram vary between .\"O systems, but as a minimum, the hardware boot program .\"O should know what is the boot device, or which devices .\"O to probe as possible boot devices. -nvram ¤ËÊݸ¤µ¤ì¤Æ¤¤¤ë¥Ñ¥é¥á¡¼¥¿¤Ï¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¡£ -¤·¤«¤·¡¢¥Ï¡¼¥É¥¦¥§¥¢¥Ö¡¼¥È¥×¥í¥°¥é¥à¤Ï¡¢¾¯¤Ê¤¯¤È¤â¡¢ -¥Ö¡¼¥È¥Ç¥Ð¥¤¥¹¤¬¤É¤ì¤Ç¤¢¤ë¤«¡¢¤â¤·¤¯¤Ï -¥Ö¡¼¥È¥Ç¥Ð¥¤¥¹¤È¤·¤Æõº÷¤¹¤ë¥Ç¥Ð¥¤¥¹¤¬¤É¤ì¤Ç¤¢¤ë¤«¤ò -ÃΤäƤ¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +nvram に保存されているパラメータはシステムによって異なる。 +しかし、ハードウェアブートプログラムは、少なくとも、 +ブートデバイスがどれであるか、もしくは +ブートデバイスとして探索するデバイスがどれであるかを +知っていなければならない。 .\"O Then the hardware boot stage accesses the boot device, .\"O loads the OS Loader, which is located on a fixed position .\"O on the boot device, and transfers control to it. -¥Ï¡¼¥É¥¦¥§¥¢¥Ö¡¼¥È¤Î¥·¡¼¥±¥ó¥¹¤Ï¡¢¼¡¤Ë¥Ö¡¼¥È¥Ç¥Ð¥¤¥¹¤Ë¥¢¥¯¥»¥¹¤·¡¢ -¥Ö¡¼¥È¥Ç¥Ð¥¤¥¹¤Î¤¢¤é¤«¤¸¤á·è¤Þ¤Ã¤¿¾ì½ê¤ËÃÖ¤«¤ì¤Æ¤¤¤ë -OS ¥í¡¼¥À¡¼¤ò¥í¡¼¥É¤·¡¢À©¸æ¤òÅϤ¹¡£ +ハードウェアブートのシーケンスは、次にブートデバイスにアクセスし、 +ブートデバイスのあらかじめ決まった場所に置かれている +OS ローダーをロードし、制御を渡す。 .TP .\"O Note: .\"O We do not cover here booting from network. .\"O Those who want .\"O to investigate this subject may want to research: .\"O DHCP, TFTP, PXE, Etherboot. -Ãí°Õ: -¤³¤³¤Ç¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥Ö¡¼¥È¤Ë¤Ä¤¤¤Æ¤Ï¿¨¤ì¤Ê¤¤¡£ -¤³¤ÎÏÃÂê¤Ë¤Ä¤¤¤ÆÄ´ºº¤·¤¿¤¤ÆɼԤϡ¢ -DHCP, TFTP, PXE, Etherboot Åù¤Ë¤Ä¤¤¤ÆÄ´¤Ù¤Æ¤ß¤ë¤È¤è¤¤¡£ +注意: +ここではネットワークブートについては触れない。 +この話題について調査したい読者は、 +DHCP, TFTP, PXE, Etherboot 等について調べてみるとよい。 .\"O .SS "OS Loader" -.SS OS ¥í¡¼¥À¡¼ +.SS OS ローダー .\"O In PC, the OS Loader is located in the first sector .\"O of the boot device \- this is the \fBMBR\fR .\"O (Master Boot Record). -PC ¤Ç¤Ï¡¢OS ¥í¡¼¥À¡¼¤Ï¥Ö¡¼¥È¥Ç¥Ð¥¤¥¹¤ÎÀèƬ¥»¥¯¥¿¤ËÃÖ¤«¤ì¤ë¡£ -¤³¤ì¤Ï \fBMBR\fR (Master Boot Record) ¤È¸Æ¤Ð¤ì¤ë¡£ +PC では、OS ローダーはブートデバイスの先頭セクタに置かれる。 +これは \fBMBR\fR (Master Boot Record) と呼ばれる。 .\"O In most systems, this primary loader is very .\"O limited due to various constraints. @@ -98,18 +98,18 @@ PC .\"O of this loader, but the size limitation of the PC MBR .\"O (512 bytes including the partition table) makes it .\"O almost impossible to squeeze a full OS Loader into it. -ÍÍ¡¹¤ÊÀ©Ìó¤Î¤¿¤á¡¢ -¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¤ÇÂè°ì¥í¡¼¥À¡¼¤ÏÈó¾ï¤Ë´Êñ¤Êµ¡Ç½¤·¤«»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -PC °Ê³°¤Î¥·¥¹¥Æ¥à¤Ç¤â¡¢ -¥µ¥¤¥º¤ÎÀ©¸Â¤ä¥í¡¼¥À¡¼¤Îµ¡Ç½¤Ê¤É¤Ë¤¢¤ëÄøÅÙ¤ÎÀ©¸Â¤Ï¸ºß¤¹¤ë¡£ -¤·¤«¤·¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤ò´Þ¤á¤Æ 512 ¥Ð¥¤¥È¤È¤¤¤¦ -PC ¤Î MBR ¤Ç¤Ï¡¢OS ¥í¡¼¥À¡¼¤ÎÁ´µ¡Ç½¤ò¤³¤³¤Ë²¡¤·¹þ¤à¤Î¤Ï¤Þ¤ºÉÔ²Äǽ¤À¡£ +様々な制約のため、 +ほとんどのシステムで第一ローダーは非常に簡単な機能しか持っていない。 +PC 以外のシステムでも、 +サイズの制限やローダーの機能などにある程度の制限は存在する。 +しかしパーティションテーブルを含めて 512 バイトという +PC の MBR では、OS ローダーの全機能をここに押し込むのはまず不可能だ。 .\"O Therefore, most operating systems make the primary loader .\"O call a secondary OS loader which may be located on .\"O a specified disk partition. -¤·¤¿¤¬¤Ã¤ÆÂçÄñ¤Î OS ¤Ç¤Ï¡¢Âè°ì¥í¡¼¥À¡¼¤ÏÂèÆó¥í¡¼¥À¡¼¤ò¸Æ¤Ö¤è¤¦¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢ -¸å¼Ô¤Ï¤¢¤é¤«¤¸¤á»ØÄꤵ¤ì¤¿¥Ç¥£¥¹¥¯¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ËÃÖ¤±¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +したがって大抵の OS では、第一ローダーは第二ローダーを呼ぶようになっており、 +後者はあらかじめ指定されたディスクパーティションに置けるようになっている。 .\"O In Linux the OS loader is normally .\"O .BR lilo (8) @@ -120,16 +120,16 @@ PC .\"O as a two part loader where they provide special MBR .\"O containing the bootstrap code to load the second part .\"O of the loader from the root partition. -Linux ¤Ë¤ª¤±¤ë OS ¥í¡¼¥À¡¼¤Ï¡¢¤Õ¤Ä¤¦ +Linux における OS ローダーは、ふつう .BR lilo (8) -¤« +か .BR grub (8) -¤Ç¤¢¤ë¡£Î¾¼Ô¤È¤âÂèÆó¥í¡¼¥À¡¼¤È¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤â¤Ç¤­ -(¤³¤Î¾ì¹ç DOS ¤¬¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿ MBR ¤¬¤³¤ì¤é¤ò»Ø¤¹¤è¤¦¤Ë¤¹¤ë)¡¢ -¤Þ¤¿Âè°ì¡¦ÂèÆó¥í¡¼¥À¡¼¤ÎξÊý¤È¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¸å¼Ô¤Î¾ì¹ç¸þ¤±¤Ë¡¢Î¾¼Ô¤ÏÆÃÊÌ¤Ê MBR ¥¤¥á¡¼¥¸¤òÄ󶡤·¤Æ¤¤¤ë¡£ -¤³¤ì¤Ë¤ÏÂèÆó¥í¡¼¥À¡¼¤ò¥ë¡¼¥È¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤«¤é¥í¡¼¥É¤¹¤ë¤è¤¦¤Ê -¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×¥³¡¼¥É¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +である。両者とも第二ローダーとしてインストールすることもでき +(この場合 DOS がインストールした MBR がこれらを指すようにする)、 +また第一・第二ローダーの両方としてインストールすることもできる。 +後者の場合向けに、両者は特別な MBR イメージを提供している。 +これには第二ローダーをルートパーティションからロードするような +ブートストラップコードが含まれている。 .\"O The main job of the OS Loader is to locate the kernel .\"O on the disk, load it and run it. @@ -138,22 +138,22 @@ Linux .\"O kernel (maybe a backup in case the last compiled one .\"O isn't functioning) and to pass optional parameters .\"O to the kernel. -OS ¥í¡¼¥À¡¼¤Î¼ç¤Ê»Å»ö¤Ï¡¢¥«¡¼¥Í¥ë¤Î¥Ç¥£¥¹¥¯¾å¤Î°ÌÃÖ¤òÆÃÄꤷ¡¢ -¥í¡¼¥É¤·¤Æµ¯Æ°¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£¤Û¤È¤ó¤É¤Î OS ¥í¡¼¥À¡¼¤Ï¡¢ -ÂÐÏå⡼¥É¤Ç»ÈÍѤ¹¤ë¤³¤È¤â¤Ç¤­¡¢ÄɲäΥѥé¥á¡¼¥¿¤ò¥«¡¼¥Í¥ë¤ËÅϤ·¤¿¤ê¡¢ -¥Ç¥Õ¥©¥ë¥È¤È¤ÏÊ̤Υ«¡¼¥Í¥ë¤ò»ØÄꤷ¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë -(Î㤨¤Ð¡¢ºÇ¸å¤Ë¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥«¡¼¥Í¥ë¤¬µ¡Ç½¤·¤Ê¤«¤Ã¤¿»þ¤Ë -¥Ð¥Ã¥¯¥¢¥Ã¥×¤Î¥«¡¼¥Í¥ë¤ò»ØÄꤷ¤Æµ¯Æ°¤¹¤ë¤È¤¤¤Ã¤¿¤³¤È¤¬¤Ç¤­¤ë)¡£ +OS ローダーの主な仕事は、カーネルのディスク上の位置を特定し、 +ロードして起動することである。ほとんどの OS ローダーは、 +対話モードで使用することもでき、追加のパラメータをカーネルに渡したり、 +デフォルトとは別のカーネルを指定したりすることができる +(例えば、最後にコンパイルしたカーネルが機能しなかった時に +バックアップのカーネルを指定して起動するといったことができる)。 .\"O .SS "Kernel Startup" -.SS ¥«¡¼¥Í¥ë¤Îµ¯Æ° +.SS カーネルの起動 .\"O When the kernel is loaded, it initializes the devices (via .\"O their drivers), starts the swapper (it is a "kernel process", .\"O called kswapd in modern Linux kernels), and mounts the root .\"O file system (/). -¥«¡¼¥Í¥ë¤Ï¥í¡¼¥É¤µ¤ì¤ë¤È¡¢¥Ç¥Ð¥¤¥¹¤ò (¥É¥é¥¤¥Ð¤Ë¤è¤Ã¤Æ) -½é´ü²½¤·¡¢¥¹¥ï¥Ã¥Ñ¤òµ¯Æ°¤· (ºÇ¶á¤Î Linux ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -¥¹¥ï¥Ã¥Ñ¤Ï kswapd ¤È¤¤¤¦¡Ö¥«¡¼¥Í¥ë¥×¥í¥»¥¹¡×¤Ë¤Ê¤ë)¡¢ -¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à (/) ¤ò¥Þ¥¦¥ó¥È¤¹¤ë¡£ +カーネルはロードされると、デバイスを (ドライバによって) +初期化し、スワッパを起動し (最近の Linux カーネルでは、 +スワッパは kswapd という「カーネルプロセス」になる)、 +ルートファイルシステム (/) をマウントする。 .\"O Some of the parameters that may be passed to the kernel .\"O relate to these activities (e.g: You can override the @@ -161,12 +161,12 @@ OS .\"O For further information .\"O on Linux kernel parameters read .\"O .BR bootparam (7). -¥«¡¼¥Í¥ë¤ËÅϤ¹¤³¤È¤Î¤Ç¤­¤ë¥Ñ¥é¥á¡¼¥¿¤Î¤¤¤¯¤Ä¤«¤Ï¡¢ -¤³¤ì¤é¤ÎÆ°ºî¤Ë´Ø·¸¤¹¤ë¡£ -(Î㤨¤Ð¥Ç¥Õ¥©¥ë¥È¤Î¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òÊѹ¹¤·¤¿¤ê¤Ç¤­¤ë)¡£ -Linux ¥«¡¼¥Í¥ë¥Ñ¥é¥á¡¼¥¿¤Ë´Ø¤¹¤ë¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï +カーネルに渡すことのできるパラメータのいくつかは、 +これらの動作に関係する。 +(例えばデフォルトのルートファイルシステムを変更したりできる)。 +Linux カーネルパラメータに関するより詳しい情報は .BR bootparam (7) -¤òÆɤó¤Ç¤Û¤·¤¤¡£ +を読んでほしい。 .\"O Only then the kernel creates the first (user land) .\"O process which is numbered 1. @@ -174,26 +174,26 @@ Linux .\"O program .\"O .IR /sbin/init , .\"O passing any parameters that weren't handled by the kernel already. -¤³¤ì¤é¤¬ºÑ¤ó¤Ç¤Ï¤¸¤á¤Æ¡¢ -¥«¡¼¥Í¥ë¤ÏºÇ½é¤Î (¥æ¡¼¥¶¥é¥ó¥É¤Î) ¥×¥í¥»¥¹¤òÀ¸À®¤·¡¢ -ÈÖ¹æ 1 ¤òÍ¿¤¨¤ë¡£¤³¤Î¥×¥í¥»¥¹¤Ï +これらが済んではじめて、 +カーネルは最初の (ユーザランドの) プロセスを生成し、 +番号 1 を与える。このプロセスは .I /sbin/init -¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¡£ -¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ²ò¼á¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ñ¥é¥á¡¼¥¿¤Ï¤¹¤Ù¤Æ +プログラムを実行する。 +カーネルによって解釈されていないパラメータはすべて .I /sbin/init -¤ËÅϤµ¤ì¤ë¡£ +に渡される。 .\"O .SS "init and inittab" -.SS init ¤È inittab +.SS init と inittab .\"O When init starts it reads .\"O .I /etc/inittab .\"O for further instructions. .\"O This file defines what should be run in different \fIrun-levels\fR. -init ¤Ï¡¢µ¯Æ°¤¹¤ë¤È¤Þ¤º +init は、起動するとまず .I /etc/inittab -¤òÆɤߡ¢¤½¤Î¸å¤Î¹ÔÆ°¤Ë´Ø¤¹¤ë¾ðÊó¤òÆÀ¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï -.I ¥é¥ó¥ì¥Ù¥ë -¤Ë¤è¤Ã¤Æ¤É¤Î¤è¤¦¤ÊÆ°ºî¤ò¹Ô¤¦¤Ù¤­¤Ç¤¢¤ë¤«¤òÄêµÁ¤¹¤ë¡£ +を読み、その後の行動に関する情報を得る。 +このファイルは +.I ランレベル +によってどのような動作を行うべきであるかを定義する。 .\"O This gives the system administrator an easy management scheme, where .\"O each run-level is associated with a set of services (e.g: @@ -204,24 +204,24 @@ init .\"O .BR init (8) .\"O and query the current run-level via .\"O .BR runlevel (8). -¤³¤ì¤Ë¤è¤Ã¤Æ¥·¥¹¥Æ¥à´ÉÍý¼Ô¤Î´ÉÍý¤¬³Ú¤Ë¤Ê¤ë¡£ -³Æ\fI¥é¥ó¥ì¥Ù¥ë\fR¤ÏÄ󶡤¹¤ë¥µ¡¼¥Ó¥¹¤Î½¸¹ç¤ËÂбþ¤¹¤ë -(Î㤨¤Ð \fBS\fR ¤Ï \fI¥·¥ó¥°¥ë¥æ¡¼¥¶\fR¡¢ -\fB2\fR ¤Ç¤ÏÂçÄñ¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥µ¡¼¥Ó¥¹¤òµ¯Æ°¤¹¤ë¡¢¤Ê¤É)¡£ -¥·¥¹¥Æ¥à´ÉÍý¼Ô¤Ï¡¢ +これによってシステム管理者の管理が楽になる。 +各\fIランレベル\fRは提供するサービスの集合に対応する +(例えば \fBS\fR は \fIシングルユーザ\fR、 +\fB2\fR では大抵のネットワークサービスを起動する、など)。 +システム管理者は、 .BR init (8) -¤òÍѤ¤¤Æ¸½ºß¤Î¥é¥ó¥ì¥Ù¥ë¤òÊѹ¹¤Ç¤­¡¢ +を用いて現在のランレベルを変更でき、 .BR runlevel (8) -¤Ë¤è¤Ã¤Æ¸½ºß¤Î¥é¥ó¥ì¥Ù¥ë¤ò³Îǧ¤Ç¤­¤ë¡£ +によって現在のランレベルを確認できる。 .\"O However, since it is not convenient to manage individual services .\"O by editing this file, inittab only bootstraps a set of scripts .\"O that actually start/stop the individual services. -¤·¤«¤·¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤òÊÔ½¸¤·¤Æ¸Ä¡¹¤Î¥µ¡¼¥Ó¥¹¤ò´ÉÍý¤¹¤ë¤Î¤ÏÉÔÊؤʤΤǡ¢ -inittab ¤Ïñ¤Ë¥¹¥¯¥ê¥×¥È¤Î½¸¹ç¤ËÂФ¹¤ë¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -¼ÂºÝ¤Î¸Ä¡¹¤Î¥µ¡¼¥Ó¥¹¤Îµ¯Æ°¤äÄä»ß¤Ï¡¢¤³¤ì¤é¤Î¥¹¥¯¥ê¥×¥È¤Ç¹Ô¤¦¡£ +しかし、このファイルを編集して個々のサービスを管理するのは不便なので、 +inittab は単にスクリプトの集合に対するブートストラップになっている。 +実際の個々のサービスの起動や停止は、これらのスクリプトで行う。 .\"O .SS "Boot Scripts" -.SS ¥Ö¡¼¥È¥¹¥¯¥ê¥×¥È +.SS ブートスクリプト .\"O .TP .\"O Note: @@ -231,13 +231,13 @@ inittab .\"O SUSE, Ubuntu). .\"O Some systems (Slackware Linux, FreeBSD, OpenBSD) .\"O have a somewhat different scheme of boot scripts. -Ãí°Õ: -°Ê²¼¤ÎÀâÌÀ¤Ï System V Release 4 ¤ò¥Ù¡¼¥¹¤È¤·¤¿¥·¥¹¥Æ¥à¤Ë´Ø¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¸½ºß¤ÎÂçÄñ¤Î¾¦ÍÑ UNIX ¥·¥¹¥Æ¥à (Solaris, HP-UX, Irix, Tru64) ¤ä¡¢ -¥á¥¸¥ã¡¼¤Ê Linux ¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó (Red Hat, Debian, Mandriva, -SUSE, Ubuntu) ¤Ï¤³¤ì¤ò¥Ù¡¼¥¹¤Ë¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¡¢¥Ö¡¼¥È¥¹¥¯¥ê¥×¥È¤Îµ¡¹½¤¬ -¤¤¤¯¤é¤«°Û¤Ê¤ë¤³¤È¤â¤¢¤ë (Slackware Linux, FreeBSD, OpenBSD ¤Ê¤É)¡£ +注意: +以下の説明は System V Release 4 をベースとしたシステムに関するものである。 +現在の大抵の商用 UNIX システム (Solaris, HP-UX, Irix, Tru64) や、 +メジャーな Linux ディストリビューション (Red Hat, Debian, Mandriva, +SUSE, Ubuntu) はこれをベースにしたものである。 +システムによっては、ブートスクリプトの機構が +いくらか異なることもある (Slackware Linux, FreeBSD, OpenBSD など)。 .LP .\"O For each managed service (mail, nfs server, cron, etc.) there is .\"O a single startup script located in a specific directory @@ -251,20 +251,20 @@ SUSE, Ubuntu) .\"O start, "status" do display the service status). .\"O Running the script .\"O without parameters displays the possible arguments. -´ÉÍý¤¹¤Ù¤­³Æ¥µ¡¼¥Ó¥¹ (¥á¡¼¥ë¡¢nfs ¥µ¡¼¥Ð¡¢cron ¤Ê¤É¤Ê¤É) -¤½¤ì¤¾¤ì¤ËÂФ·¤Æ¡¢¥Ö¡¼¥È¥¹¥¯¥ê¥×¥È¤¬¤Ò¤È¤Ä¤º¤ÄÆÃÄê¤Î¥Ç¥£¥ì¥¯¥È¥ê -(¤Û¤È¤ó¤É¤Î Linux ¤Ç +管理すべき各サービス (メール、nfs サーバ、cron などなど) +それぞれに対して、ブートスクリプトがひとつずつ特定のディレクトリ +(ほとんどの Linux で .IR /etc/init.d ) -¤ËÇÛÃÖ¤µ¤ì¤ë¡£¤³¤ì¤é¤Î¥¹¥¯¥ê¥×¥È¤Ï¡¢ -¤½¤ì¤¾¤ì°ú¿ô¤È¤·¤Æ¤Ò¤È¤Ä¤Îñ¸ì¤ò¼è¤ë¡£"start" ¤¬»ØÄꤵ¤ì¤ë¤È -¤½¤Î¥µ¡¼¥Ó¥¹¤òµ¯Æ°¤·¡¢"stop" ¤¬»ØÄꤵ¤ì¤ë¤È¥µ¡¼¥Ó¥¹¤òÄä»ß¤¹¤ë¡£ -¥¹¥¯¥ê¥×¥È¤Ï¾¤Î¡ÖÊØÍø¤Ê¡×°ú¿ô¤ò¼è¤Ã¤Æ¤â¤è¤¤ -(Î㤨¤Ð "restart" ¤ÇÄä»ß¡¦µ¯Æ°¤ò½çÈ֤˹Ԥ俤ꡢ"status" -¤Ç¥µ¡¼¥Ó¥¹¤Î¾õÂÖ¤òɽ¼¨¤¹¤ë¤Ê¤É)¡£ -¥¹¥¯¥ê¥×¥È¤ò°ú¿ô¤Ê¤·¤Ç¼Â¹Ô¤¹¤ë¤È¡¢ -»ØÄê¤Ç¤­¤ë°ú¿ô¤Î°ìÍ÷¤¬É½¼¨¤µ¤ì¤ë¡£ +に配置される。これらのスクリプトは、 +それぞれ引数としてひとつの単語を取る。"start" が指定されると +そのサービスを起動し、"stop" が指定されるとサービスを停止する。 +スクリプトは他の「便利な」引数を取ってもよい +(例えば "restart" で停止・起動を順番に行ったり、"status" +でサービスの状態を表示するなど)。 +スクリプトを引数なしで実行すると、 +指定できる引数の一覧が表示される。 .\"O .SS "Sequencing Directories" -.SS ½ç½ø¤Å¤±¥Ç¥£¥ì¥¯¥È¥ê +.SS 順序づけディレクトリ .\"O To make specific scripts start/stop at specific run-levels and in .\"O specific order, there are \fIsequencing directories\fR. .\"O These @@ -272,15 +272,15 @@ SUSE, Ubuntu) .\"O In each of these directories .\"O there are links (usually symbolic) to the scripts in the \fI/etc/init.d\fR .\"O directory. -¤¢¤ë¥é¥ó¥ì¥Ù¥ë¤Ç¡¢ÆÃÄê¤Î¥¹¥¯¥ê¥×¥È¤ò»ØÄꤷ¤¿½ç½ø¤Ç¼Â¹Ô¤µ¤»¤ë¤¿¤á¡¢ -.I ½ç½øÉÕ¤±¥Ç¥£¥ì¥¯¥È¥ê (sequencing directory) -¤È¤¤¤¦»ÅÁȤߤ¬Â¸ºß¤¹¤ë¡£ -¤³¤ì¤é¤Ï¤Õ¤Ä¤¦ +あるランレベルで、特定のスクリプトを指定した順序で実行させるため、 +.I 順序付けディレクトリ (sequencing directory) +という仕組みが存在する。 +これらはふつう .I /etc/rc[0\-6S].d -¤Ç¤¢¤ë¡£³Æ¥Ç¥£¥ì¥¯¥È¥ê¤ÎÆâÉô¤Ë¤Ï¡¢ +である。各ディレクトリの内部には、 .I /etc/init.d -¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¤¿¥¹¥¯¥ê¥×¥È¤Ø¤Î¥ê¥ó¥¯ (¤Õ¤Ä¤¦¤Ï¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯) -¤¬ÃÖ¤«¤ì¤ë¡£ +ディレクトリに置かれたスクリプトへのリンク (ふつうはシンボリックリンク) +が置かれる。 .\"O A primary script (usually \fI/etc/rc\fR) is called from .\"O .BR inittab (5) @@ -290,15 +290,15 @@ SUSE, Ubuntu) .\"O All links with .\"O names that begin with \(aqK\(aq are being called with the argument "stop" .\"O (thereby stopping the service). -Âè°ì¥¹¥¯¥ê¥×¥È (Ä̾ï +第一スクリプト (通常 .IR /etc/rc ) -¤Ï +は .BR inittab (5) -¤«¤é¸Æ¤Ð¤ì¡¢ -½ç½øÉÕ¤±¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¤¿¥ê¥ó¥¯·Ðͳ¤Ç³Æ¥µ¡¼¥Ó¥¹¥¹¥¯¥ê¥×¥È¤ò¸Æ¤Ó½Ð¤¹¡£ -̾Á°¤¬ \(aqS\(aq ¤Ç¤Ï¤¸¤Þ¤ë¥ê¥ó¥¯¤Ï "start" ¤È¤¤¤¦°ú¿ô¤ò¤Ä¤±¤Æ¸Æ¤Ó½Ð¤µ¤ì -(¤¹¤Ê¤ï¤Á¥µ¡¼¥Ó¥¹¤¬µ¯Æ°¤·)¡£Ì¾Á°¤¬ \(aqK\(aq ¤Ç¤Ï¤¸¤Þ¤ë¥ê¥ó¥¯¤Ï "stop" -¤È¤¤¤¦°ú¿ô¤ò¤Ä¤±¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ë (¤¹¤Ê¤ï¤Á¥µ¡¼¥Ó¥¹¤¬Ää»ß¤¹¤ë)¡£ +から呼ばれ、 +順序付けディレクトリに置かれたリンク経由で各サービススクリプトを呼び出す。 +名前が \(aqS\(aq ではじまるリンクは "start" という引数をつけて呼び出され +(すなわちサービスが起動し)。名前が \(aqK\(aq ではじまるリンクは "stop" +という引数をつけて呼び出される (すなわちサービスが停止する)。 .\"O To define the starting or stopping order within the same run-level, .\"O the names of the links contain order-numbers. @@ -309,32 +309,32 @@ SUSE, Ubuntu) .\"O runlevel 2. .\"O This happens after \fI/etc/rc2.d/S12syslog\fR is run .\"O but before \fI/etc/rc2.d/S90xfs\fR is run. -Ʊ¤¸¥é¥ó¥ì¥Ù¥ë¤ÎÆâÉô¤Ç¤Îµ¯Æ°¤äÄä»ß¤Î½ç½ø¤òµ¬Äꤹ¤ë¤¿¤á¤Ë¡¢ -¥ê¥ó¥¯¤Î̾Á°¤Ë¤Ï½ç½ø¤ò¼¨¤¹¿ô»ú¤¬´Þ¤Þ¤ì¤ë¡£ -¤Þ¤¿¡¢Ì¾Á°¤ò¤ï¤«¤ê¤ä¤¹¤¯¤¹¤ë¤¿¤á¡¢ -¥ê¥ó¥¯Ì¾¤ÎËöÈø¤Ë¤ÏÂбþ¤¹¤ë¥µ¡¼¥Ó¥¹¤Î̾Á°¤¬¤Ä¤±¤é¤ì¤ë¡£ -Î㤨¤Ð¡¢ +同じランレベルの内部での起動や停止の順序を規定するために、 +リンクの名前には順序を示す数字が含まれる。 +また、名前をわかりやすくするため、 +リンク名の末尾には対応するサービスの名前がつけられる。 +例えば、 .I /etc/rc2.d/S80sendmail -¤È¤¤¤¦¥ê¥ó¥¯¤Ï¡¢sendmail ¥µ¡¼¥Ó¥¹¤ò¥é¥ó¥ì¥Ù¥ë 2 ¤Ë¤ª¤¤¤Æµ¯Æ°¤¹¤ë¡£ -¤³¤ì¤Ï¡¢ +というリンクは、sendmail サービスをランレベル 2 において起動する。 +これは、 .I /etc/rc2.d/S12syslog -¤è¤ê¤â¸å¤Ë¡¢¤Þ¤¿ +よりも後に、また .I /etc/rc2.d/S90xfs -¤è¤ê¤âÀè¤Ë¼Â¹Ô¤µ¤ì¤ë¡£ +よりも先に実行される。 .\"O To manage the boot order and run-levels, we have to manage these links. .\"O However, on many versions of Linux, there are tools to help with this task .\"O (e.g: .\"O .BR chkconfig (8)). -¥Ö¡¼¥È¤Î½ç½ø¤È¥é¥ó¥ì¥Ù¥ë¤ò´ÉÍý¤¹¤ë¤Ë¤Ï¡¢ -¤³¤ì¤é¤Î¥ê¥ó¥¯¤ò´ÉÍý¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤·¤«¤·Â¿¤¯¤Î Linux ¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ -¤³¤ì¤é¤Îºî¶È¤ò¼ê½õ¤±¤·¤Æ¤¯¤ì¤ë¥Ä¡¼¥ë¤¬Â¸ºß¤¹¤ë -(Î㤨¤Ð +ブートの順序とランレベルを管理するには、 +これらのリンクを管理しなければならない。 +しかし多くの Linux ディストリビューションでは、 +これらの作業を手助けしてくれるツールが存在する +(例えば .BR chkconfig (8) -¤Ê¤É)¡£ +など)。 .\"O .SS "Boot Configuration" -.SS ¥Ö¡¼¥È¤ÎÀßÄê +.SS ブートの設定 .\"O Usually the daemons started may optionally receive command-line options .\"O and parameters. .\"O To allow system administrators to change these @@ -343,14 +343,14 @@ SUSE, Ubuntu) .\"O These are located in a specific .\"O directory (\fI/etc/sysconfig\fR on Red Hat systems) and are .\"O used by the boot scripts. -¥Ç¡¼¥â¥ó¤Îµ¯Æ°»þ¤Ë¤Ï¡¢ -¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤ä¥Ñ¥é¥á¡¼¥¿¤ò»ØÄê¤Ç¤­¤ë¤Î¤¬ÉáÄ̤Ǥ¢¤ë¡£ -¥·¥¹¥Æ¥à´ÉÍý¼Ô¤¬¤³¤ì¤é¤Î¥Ñ¥é¥á¡¼¥¿¤òÊѹ¹¤·¤¿¤¤¤È»×¤Ã¤¿¤È¤­¤Ë¡¢ -¥Ö¡¼¥È¥¹¥¯¥ê¥×¥È¤½¤Î¤â¤Î¤òÊÔ½¸¤·¤Ê¤¯¤Æ¤â¤¹¤à¤è¤¦¡¢ -ÀßÄê¥Õ¥¡¥¤¥ë¤¬ÍѤ¤¤é¤ì¤ë¡£¤³¤ì¤é¤ÏÆÃÄê¤Î¥Ç¥£¥ì¥¯¥È¥ê -(Red Hat ¥·¥¹¥Æ¥à¤Ç¤Ï +デーモンの起動時には、 +コマンドラインオプションやパラメータを指定できるのが普通である。 +システム管理者がこれらのパラメータを変更したいと思ったときに、 +ブートスクリプトそのものを編集しなくてもすむよう、 +設定ファイルが用いられる。これらは特定のディレクトリ +(Red Hat システムでは .IR /etc/sysconfig ) -¤ËÃÖ¤«¤ì¡¢¥Ö¡¼¥È¥¹¥¯¥ê¥×¥È¤«¤é»²¾È¤µ¤ì¤ë¡£ +に置かれ、ブートスクリプトから参照される。 .\"O In older UNIX systems, these files contained the actual command line .\"O options for the daemons, but in modern Linux systems (and also @@ -358,23 +358,23 @@ SUSE, Ubuntu) .\"O The boot scripts in \fI/etc/init.d\fR .\"O \fBsource\fR the configuration .\"O files, and then use the variable values. -¸Å¤¤ UNIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï -¥Ç¡¼¥â¥ó¤ËÍ¿¤¨¤ë¼ÂºÝ¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤¬½ñ¤«¤ì¤Æ¤¤¤¿¡£ -¤·¤«¤·ºÇ¶á¤Î Linux ¥·¥¹¥Æ¥à (¤ä HP-UX) ¤Ç¤Ï¡¢ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ïñ¤Ë¥·¥§¥ëÊÑ¿ô¤¬½ñ¤«¤ì¤Æ¤¤¤ë¤À¤±¤Ç¤¢¤ë¡£ +古い UNIX システムでは、これらのファイルには +デーモンに与える実際のコマンドラインオプションが書かれていた。 +しかし最近の Linux システム (や HP-UX) では、 +これらのファイルには単にシェル変数が書かれているだけである。 .I /etc/init.d -¤ËÃÖ¤«¤ì¤¿¥Ö¡¼¥È¥¹¥¯¥ê¥×¥È¤Ï¡¢¤³¤ì¤é¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤ò +に置かれたブートスクリプトは、これらの設定ファイルを .B source -¤·¡¢¤½¤ÎÊÑ¿ô¤ÎÃͤòÍѤ¤¤ë¡£ +し、その変数の値を用いる。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .\"O .LP .IR /etc/init.d/ , .\"O .IR /etc/rc[S0\-6].d/ , .IR /etc/rc[S0\-6].d/ , .I /etc/sysconfig/ .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR inittab (5), .BR bootparam (7), .BR init (8), diff --git a/draft/man7/bootparam.7 b/draft/man7/bootparam.7 index 67e6d361..b54213df 100644 --- a/draft/man7/bootparam.7 +++ b/draft/man7/bootparam.7 @@ -37,21 +37,21 @@ .TH BOOTPARAM 7 2007-12-16 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O bootparam \- Introduction to boot time parameters of the Linux kernel -.SH ̾Á° -bootparam \- Linux ¥«¡¼¥Í¥ëµ¯Æ°»þ¥Ñ¥é¥á¡¼¥¿¤Î²òÀâ +.SH 名前 +bootparam \- Linux カーネル起動時パラメータの解説 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The Linux kernel accepts certain 'command-line options' or 'boot time .\"O parameters' at the moment it is started. .\"O In general this is used to .\"O supply the kernel with information about hardware parameters that .\"O the kernel would not be able to determine on its own, or to avoid/override .\"O the values that the kernel would otherwise detect. -Linux ¥«¡¼¥Í¥ë¤Ïµ¯Æ°¤¹¤ë¤È¤­¤Ë¡Ö¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¡×¤¢¤ë¤¤¤Ï -¡Öµ¯Æ°»þ¥Ñ¥é¥á¡¼¥¿¡×¤ò¼õ¤±ÉÕ¤±¤ë¡£ -¤³¤ì¤Ï°ìÈ̤ˡ¢ -¥«¡¼¥Í¥ë¤Ë¤Ï·èÄê¤Ç¤­¤Ê¤¤¥Ï¡¼¥É¥¦¥§¥¢¤Î¥Ñ¥é¥á¡¼¥¿¤ò¥«¡¼¥Í¥ë¤ËÅϤ·¤¿¤¤¾ì¹ç¤ä¡¢ -¥«¡¼¥Í¥ë¤¬¸¡½Ð¤¹¤ë¤Ç¤¢¤í¤¦Ãͤò°Õ¿ÞŪ¤Ë̵¸ú¤Ë¤·¤¿¤êÊѹ¹¤·¤¿¤ê¤¹¤ë¾ì¹ç¤ËÍѤ¤¤ë¡£ +Linux カーネルは起動するときに「コマンドラインオプション」あるいは +「起動時パラメータ」を受け付ける。 +これは一般に、 +カーネルには決定できないハードウェアのパラメータをカーネルに渡したい場合や、 +カーネルが検出するであろう値を意図的に無効にしたり変更したりする場合に用いる。 .\"O When the kernel is booted directly by the BIOS (say from a floppy to .\"O which you copied a kernel using 'cp zImage /dev/fd0'), @@ -62,21 +62,21 @@ Linux .\"O using rdev, see .\"O .BR rdev (8) .\"O for further details. -¥«¡¼¥Í¥ë¤¬ BIOS ¤«¤éľÀܵ¯Æ°¤µ¤ì¤ë¤È¤­ -(¤¿¤È¤¨¤Ð 'cp zImage /dev/fd0' -¤Ç¥Õ¥í¥Ã¥Ô¡¼¤Ë¥³¥Ô¡¼¤·¤¿¥«¡¼¥Í¥ë¤«¤éµ¯Æ°¤¹¤ë¤Ê¤É) ¤Ï¡¢ -¥Ñ¥é¥á¡¼¥¿¤ò»ØÄꤹ¤ëµ¡²ñ¤Ï¤Ê¤¤¡£ -¤æ¤¨¤Ë¡¢¤³¤Îµ¯Æ°»þ¥Ñ¥é¥á¡¼¥¿µ¡Ç½¤òÍøÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢ +カーネルが BIOS から直接起動されるとき +(たとえば 'cp zImage /dev/fd0' +でフロッピーにコピーしたカーネルから起動するなど) は、 +パラメータを指定する機会はない。 +ゆえに、この起動時パラメータ機能を利用するためには、 .I LILO -¤ä +や .I loadlin -¤Î¤è¤¦¤Ë¥Ñ¥é¥á¡¼¥¿¤ò»ØÄê¤Ç¤­¤ë¥½¥Õ¥È¥¦¥§¥¢¤ò»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤¤¤¯¤Ä¤«¤Î¥Ñ¥é¥á¡¼¥¿¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +のようにパラメータを指定できるソフトウェアを使用しなければならない。 +いくつかのパラメータについては、 .I rdev -¤ò»È¤Ã¤Æ¥«¡¼¥Í¥ë¥¤¥á¡¼¥¸¤½¤Î¤â¤Î¤ò½¤Àµ¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¾ÜºÙ¤Ï +を使ってカーネルイメージそのものを修正することもできる。 +詳細は .BR rdev (8) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O The LILO program (LInux LOader) written by Werner Almesberger is the .\"O most commonly used. @@ -87,27 +87,27 @@ Linux .\"O and .\"O .BR lilo.conf (5).) .\"O LILO can boot DOS, OS/2, Linux, FreeBSD, UnixWare, etc., and is quite flexible. -Werner Almesberger ¤Ë¤è¤ë -LILO (LInux LOader) ¥×¥í¥°¥é¥à¤ÏºÇ¤â¹­¤¯»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ -LILO ¤Ï¤¤¤í¤¤¤í¤Ê¥«¡¼¥Í¥ë¤òÁªÂò¤·¤Æ¥Ö¡¼¥È¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¡¢ -ÀßÄê¾ðÊó¤ò¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤ËÊÝ»ý¤¹¤ë +Werner Almesberger による +LILO (LInux LOader) プログラムは最も広く使用されている。 +LILO はいろいろなカーネルを選択してブートさせることができ、 +設定情報をテキストファイルに保持する .RB ( lilo (8) -¤È +と .BR lilo.conf (5) -¤ò»²¾È)¡£ LILO ¤Ï DOS, OS/2, Linux, FreeBSD ¤Ê¤É¤òµ¯Æ°¤Ç¤­¡¢ -Èó¾ï¤Ë½ÀÆð¤Ç¤¢¤ë¡£ +を参照)。 LILO は DOS, OS/2, Linux, FreeBSD などを起動でき、 +非常に柔軟である。 .\"O The other commonly used Linux loader is 'LoadLin' which is a DOS .\"O program that has the capability to launch a Linux kernel from the DOS .\"O prompt (with boot-args) assuming that certain resources are available. .\"O This is good for people that want to launch Linux from DOS. -¤Û¤«¤Ë¤Ï +ほかには .I loadLin -¤â¤è¤¯»È¤ï¤ì¤Æ¤¤¤ë Linux ¥í¡¼¥À¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï DOS ¤Î¥×¥í¥°¥é¥à¤Ç¡¢DOS ¥×¥í¥ó¥×¥È¤«¤é -(µ¯Æ°»þ°ú¿ô¤È¤È¤â¤Ë) Linux ¥«¡¼¥Í¥ë¤òµ¯Æ°¤Ç¤­¤ë -(¤¤¤¯¤Ä¤«¤ÎÆÃÄê¤Î¥ê¥½¡¼¥¹¤¬ÍøÍѲÄǽ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£ -loadlin ¤Ï DOS ¤«¤é Linux ¤òµ¯Æ°¤µ¤»¤¿¤¤¿Í¤Ë¤¢¤Ã¤Æ¤¤¤ë¡£ +もよく使われている Linux ローダである。 +これは DOS のプログラムで、DOS プロンプトから +(起動時引数とともに) Linux カーネルを起動できる +(いくつかの特定のリソースが利用可能でなければならない)。 +loadlin は DOS から Linux を起動させたい人にあっている。 .\"O It is also very useful if you have certain hardware which relies on .\"O the supplied DOS driver to put the hardware into a known state. @@ -117,25 +117,25 @@ loadlin .\"O Booting DOS with the supplied driver, and .\"O then loading Linux from the DOS prompt with loadlin avoids the reset .\"O of the card that happens if one rebooted instead. -¤Þ¤¿ loadlin ¤Ï¡¢DOS ¤Î¥É¥é¥¤¥Ð¤Ç¤¢¤ë¾õÂÖ¤Ë -ÀßÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¥Ï¡¼¥É¥¦¥§¥¢¤ò -»È¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤âÈó¾ï¤ËÊØÍø¤Ç¤¢¤ë¡£ -¤è¤¯¤¢¤ëÎã¤Ï -¡ÖSoundBlaster ¸ß´¹¡×¤Î¥µ¥¦¥ó¥É¥«¡¼¥É¤Ç¡¢ -¤³¤ì¤é¤ÎÃæ¤Ë¤Ï DOS ¤Î¥É¥é¥¤¥Ð¤ò»È¤Ã¤Æ -¤¤¤¯¤Ä¤«ÈëÌ©¤Î¥ì¥¸¥¹¥¿¤ò¤¤¤¸¤Ã¤Æ¤ä¤é¤Ê¤¤¤È¡¢ -ËÜÅö¤Î SB ¸ß´¹¥â¡¼¥É¤Ë¤Ï¤Ê¤é¤Ê¤¤¤è¤¦¤Ê¤â¤Î¤¬¤¢¤ë¡£ -¤Þ¤º¥Ï¡¼¥É¥¦¥§¥¢¤Ë¤Ä¤¤¤Æ¤­¤¿¥É¥é¥¤¥Ð¤òÁȤ߹þ¤ó¤Ç DOS ¤òµ¯Æ°¤·¡¢ -¤½¤Î¸å loadlin ¤ò»ÈÍѤ·¤Æ Linux ¥«¡¼¥Í¥ë¤òÆɤ߹þ¤á¤Ð¡¢ -¥ê¥Ö¡¼¥È¤Ë¤è¤Ã¤Æ¥«¡¼¥É¤ÎÀßÄ꤬¥ê¥»¥Ã¥È¤µ¤ì¤ë¤Î¤òËɤ²¤ë¤ï¤±¤À¡£ +また loadlin は、DOS のドライバである状態に +設定しなければならないハードウェアを +使っている場合にも非常に便利である。 +よくある例は +「SoundBlaster 互換」のサウンドカードで、 +これらの中には DOS のドライバを使って +いくつか秘密のレジスタをいじってやらないと、 +本当の SB 互換モードにはならないようなものがある。 +まずハードウェアについてきたドライバを組み込んで DOS を起動し、 +その後 loadlin を使用して Linux カーネルを読み込めば、 +リブートによってカードの設定がリセットされるのを防げるわけだ。 .\"O .SS "The Argument List" -.SS °ú¿ô¥ê¥¹¥È +.SS 引数リスト .\"O The kernel command line is parsed into a list of strings .\"O (boot arguments) separated by spaces. .\"O Most of the boot args take the form of: -¥«¡¼¥Í¥ë¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ï¥¹¥Ú¡¼¥¹¤Ç¶èÀÚ¤é¤ì¤¿Ê¸»úÎó -.RI ( "µ¯Æ°»þ°ú¿ô: boot arguments" ) -¤Î¥ê¥¹¥È¤«¤éÀ®¤Ã¤Æ¤¤¤ë¡£¤Û¤È¤ó¤É¤Îµ¯Æ°»þ°ú¿ô¤Ï¼¡¤Î½ñ¼°¤Ë½¾¤¦¡£ +カーネルのコマンドラインはスペースで区切られた文字列 +.RI ( "起動時引数: boot arguments" ) +のリストから成っている。ほとんどの起動時引数は次の書式に従う。 .IP name[=value_1][,value_2]...[,value_10] .LP @@ -146,25 +146,25 @@ name[=value_1][,value_2]...[,value_10] .\"O (However, you can reuse the same .\"O keyword with up to an additional 10 parameters in unusually .\"O complicated situations, assuming the setup function supports it.) -¤³¤³¤Ç 'name' ¤Ï¡¢¤½¤ì¤ËÂбþ¤¹¤ëÃͤ¬¥«¡¼¥Í¥ë¤Î¤É¤ÎÉôʬ¤ËÅϤµ¤ì¤ë¤â¤Î¤Ê¤Î¤«¤ò -¼±Ê̤¹¤ë¤¿¤á¤Î¡¢Â¾¤È½Å¤Ê¤é¤Ê¤¤¥­¡¼¥ï¡¼¥É¤Ç¤¢¤ë¡£ -½ñ¼°Ãæ¤Î 10 ¤È¤¤¤¦À©¸Â¤Ï¼ÂºÝ¤Ë¸ºß¤¹¤ë¡£ -¸½ºß¤Î¥³¡¼¥É¤Ï¡¢¥­¡¼¥ï¡¼¥É¤Ò¤È¤Ä¤¢¤¿¤ê¡¢¥³¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿¥Ñ¥é¥á¡¼¥¿¤ò -10 ¸Ä¤Þ¤Ç¤·¤«¼è¤ê°·¤¦¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ -(¤·¤«¤·¡¢»ö¾ð¤¬Èó¾ï¤ËÊ£»¨¤Ê¾ì¹ç¤Ë¤Ï¡¢Æ±¤¸¥­¡¼¥ï¡¼¥É¤òºÆÅÙÍøÍѤ·¤Æ -10 ¸Ä°Ê¾å¤Î¥Ñ¥é¥á¡¼¥¿¤òÍ¿¤¨¤ë¤³¤È¤¬¤Ç¤­¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -ÂоݤȤʤë¥Ï¡¼¥É¥¦¥§¥¢¤ÎÀßÄê´Ø¿ô¤¬¤½¤ì¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ì¤Ð¡¢¤À¤¬¡£) +ここで 'name' は、それに対応する値がカーネルのどの部分に渡されるものなのかを +識別するための、他と重ならないキーワードである。 +書式中の 10 という制限は実際に存在する。 +現在のコードは、キーワードひとつあたり、コンマで区切られたパラメータを +10 個までしか取り扱うことができない。 +(しかし、事情が非常に複雑な場合には、同じキーワードを再度利用して +10 個以上のパラメータを与えることができるかもしれない。 +対象となるハードウェアの設定関数がそれをサポートしていれば、だが。) .\"O Most of the sorting goes on in linux/init/main.c. .\"O First, the kernel .\"O checks to see if the argument is any of the special arguments 'root=', .\"O \&'nfsroot=', 'nfsaddrs=', 'ro', 'rw', 'debug' or 'init'. .\"O The meaning of these special arguments is described below. -¥«¡¼¥Í¥ë¥³¥Þ¥ó¥É¥é¥¤¥ó¤Î°·¤¤¤Ï¤Û¤È¤ó¤É linux/init/main.c ¤¬¹Ô¤Ê¤Ã¤Æ¤¤¤ë¡£ -½é¤á¤Ë¡¢¥«¡¼¥Í¥ë¤Ï +カーネルコマンドラインの扱いはほとんど linux/init/main.c が行なっている。 +初めに、カーネルは \&'root=', 'nfsroot=', 'nfsaddrs=', 'ro', 'rw', 'debug', 'init' -¤È¤¤¤Ã¤¿ÆÃÊ̤ʰú¿ô¤¬¤¢¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ -¤³¤ì¤é¤Î°ÕÌ£¤Ë¤Ä¤¤¤Æ¤Ï¸å½Ò¤¹¤ë¡£ +といった特別な引数があるかをチェックする。 +これらの意味については後述する。 .\"O Then it walks a list of setup functions (contained in the bootsetups .\"O array) to see if the specified argument string (such as 'foo') has @@ -176,25 +176,25 @@ name[=value_1][,value_2]...[,value_10] .\"O If it was, then it would call the setup .\"O function associated with 'foo' (foo_setup()) and hand it the arguments .\"O 3, 4, 5 and 6 as given on the kernel command line. -¥«¡¼¥Í¥ë¤Ï¼¡¤ËÀßÄê´Ø¿ô¤Î¥ê¥¹¥È -(ÇÛÎó bootsetups ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë) ¤ò¥¹¥­¥ã¥ó¤·¡¢ -»ØÄꤵ¤ì¤¿°ú¿ôʸ»úÎó (Î㤨¤Ð 'foo') ¤¬ -ÆÃÄê¤Î¥Ç¥Ð¥¤¥¹¤ä¥«¡¼¥Í¥ë¤Î°ìÉô¤ËÂФ¹¤ëÀßÄê´Ø¿ô -('foo_setup()') ¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤Æ¤¤¤ë¤«¤òÄ´¤Ù¤ë¡£ -Î㤨¤Ð¥«¡¼¥Í¥ë¤Ë foo=3,4,5,6 ¤Î¤è¤¦¤Ê¥Ñ¥é¥á¡¼¥¿¤òÍ¿¤¨¤¿¤È¤¹¤ë¤È¡¢ -¥«¡¼¥Í¥ë¤ÏÇÛÎó bootsetups ¤òÄ´¤Ù¤Æ¡¢ 'foo' ¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤«Ä´¤Ù¤ë¡£ -ÅÐÏ¿¤µ¤ì¤Æ¤¤¤¿¤é¡¢'foo' ¤ËÂбþ¤¹¤ëÀßÄê´Ø¿ô ('foo_setup()') ¤ò¥³¡¼¥ë¤·¡¢ -¥«¡¼¥Í¥ë¥³¥Þ¥ó¥É¥é¥¤¥ó¤ËÍ¿¤¨¤é¤ì¤¿°ú¿ô¤Ç¤¢¤ë 3, 4, 5, 6 ¤òÀßÄê´Ø¿ô¤ËÅϤ¹¡£ +カーネルは次に設定関数のリスト +(配列 bootsetups に含まれている) をスキャンし、 +指定された引数文字列 (例えば 'foo') が +特定のデバイスやカーネルの一部に対する設定関数 +('foo_setup()') に関連付けられているかを調べる。 +例えばカーネルに foo=3,4,5,6 のようなパラメータを与えたとすると、 +カーネルは配列 bootsetups を調べて、 'foo' が登録されているか調べる。 +登録されていたら、'foo' に対応する設定関数 ('foo_setup()') をコールし、 +カーネルコマンドラインに与えられた引数である 3, 4, 5, 6 を設定関数に渡す。 .\"O Anything of the form 'foo=bar' that is not accepted as a setup function .\"O as described above is then interpreted as an environment variable to .\"O be set. .\"O A (useless?) example would be to use 'TERM=vt100' as a boot .\"O argument. -\&'foo=bar' ¤È¤¤¤¦·Á¼°¤Î°ú¿ô¤Î¤¦¤Á¡¢ -¾åµ­¤Î¤è¤¦¤ËÀßÄê´Ø¿ô¤Ë¼õ¤±Æþ¤ì¤é¤ì¤Ê¤«¤Ã¤¿¤â¤Î¤Ï¡¢ -´Ä¶­ÊÑ¿ô¤È²ò¼á¤µ¤ì¤ÆÀßÄꤵ¤ì¤ë¡£ -(¤¢¤Þ¤êÌò¤ËΩ¤¿¤Ê¤¤?) Îã¤È¤·¤Æ¤Ï¡¢'TERM=VT100' ¤¬¤¢¤ë¡£ +\&'foo=bar' という形式の引数のうち、 +上記のように設定関数に受け入れられなかったものは、 +環境変数と解釈されて設定される。 +(あまり役に立たない?) 例としては、'TERM=VT100' がある。 .\"O Any remaining arguments that were not picked up by the kernel and were .\"O not interpreted as environment variables are then passed onto process @@ -205,20 +205,20 @@ name[=value_1][,value_2]...[,value_10] .\"O daemons. .\"O Check the manual page for the version of init installed on .\"O your system to see what arguments it accepts. -¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ½èÍý¤µ¤ì¤º¡¢´Ä¶­ÊÑ¿ô¤È¤·¤Æ¤â²ò¼á¤µ¤ì¤Ê¤«¤Ã¤¿ -»Ä¤ê¤Î°ú¿ô¤Ï¡¢¥×¥í¥»¥¹ 1 ¤ËÅϤµ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ -Ä̾盧¤Î¥×¥í¥»¥¹ 1 ¤Ï +カーネルによって処理されず、環境変数としても解釈されなかった +残りの引数は、プロセス 1 に渡されることになる。 +通常このプロセス 1 は .I init -¥×¥í¥°¥é¥à¤Ç¤¢¤ë¡£ -¥×¥í¥»¥¹ 1 ¤ËÅϤµ¤ì¤ë°ú¿ô¤ÇºÇ¤âÎɤ¯»È¤ï¤ì¤ë¤Î¤Ï¡¢ -\&'single' ¤È¤¤¤¦¥­¡¼¥ï¡¼¥É¤Ç¤¢¤ë¡£ -¤³¤ì¤ò»ØÄꤹ¤ë¤È init ¤Ï¥·¥ó¥°¥ë¥æ¡¼¥¶¥â¡¼¥É¤Ç¥³¥ó¥Ô¥å¡¼¥¿¤òµ¯Æ°¤·¡¢ -Ä̾ï»È¤ï¤ì¤ë¥Ç¡¼¥â¥ó¤Ï°ìÀÚµ¯Æ°¤·¤Ê¤¤¡£ -¥·¥¹¥Æ¥à¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë init ¤¬ -¤É¤ó¤Ê°ú¿ô¤ò¼õ¤±ÉÕ¤±¤ë¤«¤Ï¡¢ -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÇÄ´¤Ù¤ë¤³¤È¡£ +プログラムである。 +プロセス 1 に渡される引数で最も良く使われるのは、 +\&'single' というキーワードである。 +これを指定すると init はシングルユーザモードでコンピュータを起動し、 +通常使われるデーモンは一切起動しない。 +システムにインストールされている init が +どんな引数を受け付けるかは、 +マニュアルページで調べること。 .\"O .SS "General Non-Device Specific Boot Arguments" -.SS °ìÈÌŪ¤Ê¡¢¥Ç¥Ð¥¤¥¹¸ÇÍ­¤Ç¤Ï¤Ê¤¤µ¯Æ°»þ°ú¤­¿ô +.SS 一般的な、デバイス固有ではない起動時引き数 .TP .B "'init=...'" .\"O This sets the initial command to be executed by the kernel. @@ -231,20 +231,20 @@ name[=value_1][,value_2]...[,value_10] .\"O then .\"O .I /bin/sh .\"O and panic if all of this fails. -¥«¡¼¥Í¥ë¤¬¼Â¹Ô¤¹¤ë½é´ü¥³¥Þ¥ó¥É¤òÀßÄꤹ¤ë¡£ -¤³¤Î»ØÄ꤬¤Ê¤µ¤ì¤Ê¤«¤Ã¤¿¤ê¡¢»ØÄꤷ¤¿¥³¥Þ¥ó¥É¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ -¥«¡¼¥Í¥ë¤Ï +カーネルが実行する初期コマンドを設定する。 +この指定がなされなかったり、指定したコマンドが見つからなかった場合には、 +カーネルは .IR /sbin/init , .IR /etc/init , .IR /bin/init , .I /bin/sh -¤Î½ç¤Ç¼Â¹Ô¤ò»î¤ß¡¢¤¹¤Ù¤Æ¤Ë¼ºÇÔ¤·¤¿¤é panic ¤òµ¯¤³¤¹¡£ +の順で実行を試み、すべてに失敗したら panic を起こす。 .TP .B "'nfsaddrs=...'" .\"O This sets the nfs boot address to the given string. .\"O This boot address is used in case of a net boot. -nfs ¤Î¥Ö¡¼¥È¥¢¥É¥ì¥¹¤ò»ØÄꤷ¤¿Ê¸»úÎó¤ËÀßÄꤹ¤ë¡£ -¤³¤Î¥Ö¡¼¥È¥¢¥É¥ì¥¹¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥Ö¡¼¥È¤Î¾ì¹ç¤ËÍѤ¤¤é¤ì¤ë¡£ +nfs のブートアドレスを指定した文字列に設定する。 +このブートアドレスはネットワークブートの場合に用いられる。 .TP .B "'nfsroot=...'" .\"O This sets the nfs root name to the given string. @@ -252,10 +252,10 @@ nfs .\"O does not begin with '/' or ',' or a digit, then it is prefixed by .\"O \&'/tftpboot/'. .\"O This root name is used in case of a net boot. -nfs ¥ë¡¼¥È¤Î̾Á°¤òÀßÄꤹ¤ë¡£ -¤³¤Îʸ»úÎó¤ÎÀèƬ¤¬ '/'¡¢','¡¢¿ô»ú¤Î¤¤¤º¤ì¤Ç¤â¤Ç¤Ê¤¤¤È¤­¤Ï¡¢ -\&'/tftpboot/' ¤¬ÀèƬ¤ËÉղ䵤ì¤ë¡£ -¤³¤Î̾Á°¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥Ö¡¼¥È¤Î¾ì¹ç¤ËÍѤ¤¤é¤ì¤ë¡£ +nfs ルートの名前を設定する。 +この文字列の先頭が '/'、','、数字のいずれでもでないときは、 +\&'/tftpboot/' が先頭に付加される。 +この名前はネットワークブートの場合に用いられる。 .TP .B "'no387'" .\"O (Only when @@ -269,17 +269,17 @@ nfs .\"O coprocessor even if you have one. .\"O Of course you must then have your .\"O kernel compiled with math emulation support! -(¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +(カーネルのコンパイル時に .B CONFIG_BUGi386 -¤¬»ØÄꤵ¤ì¤¿¤È¤­¤Î¤ßÍ­¸ú¡£) -°ìÉô¤Î i387 ¥³¥×¥í¥»¥Ã¥µ¥Á¥Ã¥×¤Ë¤Ï¡¢ -32 ¥Ó¥Ã¥È¥×¥í¥Æ¥¯¥È¥â¡¼¥É¤Ç¤Î»ÈÍÑ»þ¤ËÀ¸¤¸¤ë¥Ð¥°¤¬¤¢¤ë¡£ -Î㤨¤Ð½é´ü¤Î ULSI-387 ¥Á¥Ã¥×¤Ï¡¢ -ÉâÆ°¾®¿ôÅÀ±é»»¤ò¹Ô¤Ê¤¦¤È³Î¼Â¤Ë¥í¥Ã¥¯¥¢¥Ã¥×¤·¤Æ¤·¤Þ¤¦¡£ -¤³¤Îµ¯Æ°»þ°ú¿ô 'no387' ¤ò»ØÄꤹ¤ë¤È¡¢ -Linux ¤Ï¥³¥×¥í¥»¥Ã¥µ¤¬¤¢¤Ã¤Æ¤â¤½¤ì¤ò̵»ë¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¤Ê¤ª¤â¤Á¤í¤ó¡¢¥«¡¼¥Í¥ë¥³¥ó¥Ñ¥¤¥ë»þ¤ËÉâÆ°¾®¿ôÅÀ±é»»¤ò¥¨¥ß¥å¥ì¡¼¥È¤¹¤ë -(kernel math emulation) »ØÄê¤ò¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤! +が指定されたときのみ有効。) +一部の i387 コプロセッサチップには、 +32 ビットプロテクトモードでの使用時に生じるバグがある。 +例えば初期の ULSI-387 チップは、 +浮動小数点演算を行なうと確実にロックアップしてしまう。 +この起動時引数 'no387' を指定すると、 +Linux はコプロセッサがあってもそれを無視するようになる。 +なおもちろん、カーネルコンパイル時に浮動小数点演算をエミュレートする +(kernel math emulation) 指定をしなければならない! .TP .B "'no-hlt'" .\"O (Only when @@ -293,14 +293,14 @@ Linux .\"O and to not halt the CPU. .\"O This allows people with these broken chips .\"O to use Linux. -(¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +(カーネルのコンパイル時に .B CONFIG_BUGi386 -¤¬»ØÄꤵ¤ì¤¿¤È¤­¤Î¤ßÍ­¸ú¡£) -½é´ü¤Î i486DX-100 ¥Á¥Ã¥×¤Î°ìÉô¤Ç¤Ï 'hlt' Ì¿Îá¤ËÌäÂ꤬¤¢¤Ã¤Æ¡¢ -¤³¤ÎÌ¿Îá¤ò»È¤¦¤È¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥â¡¼¥É¤ËÀµ¤·¤¯Ìá¤Ã¤ÆÍè¤Ê¤¤¡£ -\&'no-hlt' ¤ò»ØÄꤹ¤ì¤Ð¡¢Linux ¤Ï¥¢¥¤¥É¥ê¥ó¥°»þ¤Ë CPU ¤òÄä»ß -(halt) ¤¹¤ë¤«¤ï¤ê¤Ë̵¸Â¥ë¡¼¥×¤ò¼Â¹Ô¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¤³¤ì¤Ë¤è¤Ã¤Æ¡¢¤½¤Î¤è¤¦¤Ê¥Ð¥°¤Î¤¢¤ë¥Á¥Ã¥×¤Ç¤â Linux ¤ò»ÈÍѤǤ­¤ë¡£ +が指定されたときのみ有効。) +初期の i486DX-100 チップの一部では 'hlt' 命令に問題があって、 +この命令を使うとオペレーティングモードに正しく戻って来ない。 +\&'no-hlt' を指定すれば、Linux はアイドリング時に CPU を停止 +(halt) するかわりに無限ループを実行するようになる。 +これによって、そのようなバグのあるチップでも Linux を使用できる。 .TP .B "'root=...'" .\"O This argument tells the kernel what device is to be used as the root @@ -313,15 +313,15 @@ Linux .\"O use 'root=/dev/fd1'. .\"O (The root device can also be set using .\"O .BR rdev (8).) -µ¯Æ°»þ¤Ë¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤È¤·¤Æ»È¤ï¤ì¤ë¥Ç¥Ð¥¤¥¹¤ò¥«¡¼¥Í¥ë¤Ë»ØÄꤹ¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï¥³¥ó¥Ñ¥¤¥ë»þ¤Ë·èÄꤵ¤ì¡¢ -Ä̾ï¤Ï¥«¡¼¥Í¥ë¤ò¹½ÃÛ¤·¤¿¥·¥¹¥Æ¥à¤Î¥ë¡¼¥È¥Ç¥Ð¥¤¥¹¤Ë¤Ê¤ë¡£ -¤³¤ÎÃͤò̵¸ú¤Ë¤·¤Æ¡¢ -Î㤨¤Ð 2 ÈÖÌܤΥեí¥Ã¥Ô¡¼¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ö¤ò¥ë¡¼¥È¥Ç¥Ð¥¤¥¹¤Ë»ØÄꤹ¤ë¾ì¹ç¤Ï¡¢ -\&'root=/dev/fd1' ¤È¤¹¤ë¡£ -(¥ë¡¼¥È¥Ç¥Ð¥¤¥¹¤Ï +起動時にルートファイルシステムとして使われるデバイスをカーネルに指定する。 +デフォルトはコンパイル時に決定され、 +通常はカーネルを構築したシステムのルートデバイスになる。 +この値を無効にして、 +例えば 2 番目のフロッピーディスクドライブをルートデバイスに指定する場合は、 +\&'root=/dev/fd1' とする。 +(ルートデバイスは .BR rdev (8) -¤òÍѤ¤¤Æ¤âÀßÄê¤Ç¤­¤ë¡£) +を用いても設定できる。) .\"O The root device can be specified symbolically or numerically. .\"O A symbolic specification has the form /dev/XXYN, where XX designates @@ -338,43 +338,43 @@ Linux .\"O types, mostly for CD-ROMs: nfs, ram, scd, mcd, cdu535, aztcd, cm206cd, .\"O gscd, sbpcd, sonycd, bpcd. .\"O (The type nfs specifies a net boot; ram refers to a ram disk.) -¥ë¡¼¥È¥Ç¥Ð¥¤¥¹¤Î»ØÄê¤Ë¤Ï¥·¥ó¥Ü¥ë·Á¼°¤È¿ôÃÍ·Á¼°¤òÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥·¥ó¥Ü¥ë·Á¼°¤Î¾ì¹ç¤Ï /dev/XXYN ¤È¤¤¤¦½ñ¼°¤Ç»ØÄꤹ¤ë¡£ -XX ¤Ë¤Ï¥Ç¥Ð¥¤¥¹¥¿¥¤¥×¤ò»ØÄꤹ¤ë¡£ -Y ¤Ë¤Ï¥É¥é¥¤¥Ö¥ì¥¿¡¼¤â¤·¤¯¤Ï¥É¥é¥¤¥ÖÈֹ桢 -N ¤Ë¤Ï (¥Õ¥í¥Ã¥Ô¡¼¥Ç¥£¥¹¥¯¤ò½ü¤¯) ¥Ç¥£¥¹¥¯¤Î -¥Ñ¡¼¥Æ¥£¥·¥ç¥óÈÖ¹æ¤ò 10 ¿Ê¿ô¤Î¿ôÃͤǻØÄꤹ¤ë¡£ -(ST-506 ¸ß´¹¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤Ç¤Ï¥Ç¥Ð¥¤¥¹¥¿¥¤¥×¤¬ 'hd' ¤Ç -Y ¤ÎÈÏ°Ï¤Ï 'a' ¤«¤é 'd'¡¢ -SCSI ¥Ç¥£¥¹¥¯¤Ï 'sd' ¤Ç Y ¤Ï 'a' ¤«¤é 'e'¡¢ -Atari ACSI ¥Ç¥£¥¹¥¯¤Ï 'ad' ¤Ç Y ¤Ï 'a' ¤«¤é 'e'¡¢ -Syquest EZ135 ¥Ñ¥é¥ì¥ë¥Ý¡¼¥È¥ê¥à¡¼¥Ð¥Ö¥ë¥Ç¥£¥¹¥¯¤Ï 'ez' ¤Ç Y ¤Ï 'a' ¤Î¤ß¡¢ -XT ¥Ç¥£¥¹¥¯¤Ï 'xt' ¤Ç Y ¤Ï 'a' ¤« 'b'¡¢ -¥Õ¥í¥Ã¥Ô¡¼¥Ç¥£¥¹¥¯¤Ï 'fd' ¤Ç Y ¤Ë¤Ï¥É¥é¥¤¥ÖÈÖ¹æ¤ò»ØÄꤹ¤ë¡£ -fd0 ¤Ï DOS ¤Î 'A:'¡¢fd1 ¤Ï 'B:' ¤ËÂбþ¤·¤Æ¤¤¤ë¡£ -¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï¸ºß¤·¤Ê¤¤¤Î¤Ç N ¤Ï»ØÄꤷ¤Ê¤¤¡£) -ºÇ¿·¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢Â¾¤Ë¤â¼¡¤Î¤è¤¦¤Ê¿¤¯¤Î¥Ç¥Ð¥¤¥¹¥¿¥¤¥×¤ò»ØÄê¤Ç¤­¤ë -(¤Û¤È¤ó¤É¤Ï CD-ROM ¤À¤¬): -nfs, ram, scd, mcd, cdu535, aztcd, cm206cd, gscd, sbpcd, sonycd, bpcd¡£ -(nfs ¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥Ö¡¼¥È¤Ë¡¢ram ¤Ï RAM ¥Ç¥£¥¹¥¯¤ò»ÈÍѤ¹¤ë¾ì¹ç¤ËÍѤ¤¤ë¡£) +ルートデバイスの指定にはシンボル形式と数値形式を用いることができる。 +シンボル形式の場合は /dev/XXYN という書式で指定する。 +XX にはデバイスタイプを指定する。 +Y にはドライブレターもしくはドライブ番号、 +N には (フロッピーディスクを除く) ディスクの +パーティション番号を 10 進数の数値で指定する。 +(ST-506 互換ハードディスクではデバイスタイプが 'hd' で +Y の範囲は 'a' から 'd'、 +SCSI ディスクは 'sd' で Y は 'a' から 'e'、 +Atari ACSI ディスクは 'ad' で Y は 'a' から 'e'、 +Syquest EZ135 パラレルポートリムーバブルディスクは 'ez' で Y は 'a' のみ、 +XT ディスクは 'xt' で Y は 'a' か 'b'、 +フロッピーディスクは 'fd' で Y にはドライブ番号を指定する。 +fd0 は DOS の 'A:'、fd1 は 'B:' に対応している。 +パーティションは存在しないので N は指定しない。) +最新のカーネルでは、他にも次のような多くのデバイスタイプを指定できる +(ほとんどは CD-ROM だが): +nfs, ram, scd, mcd, cdu535, aztcd, cm206cd, gscd, sbpcd, sonycd, bpcd。 +(nfs はネットワークブートに、ram は RAM ディスクを使用する場合に用いる。) .\"O Note that this has nothing to do with the designation of these .\"O devices on your file system. .\"O The '/dev/' part is purely conventional. -¤Ê¤ª¡¢¤³¤ì¤é¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ç¤Î¥Ç¥Ð¥¤¥¹¤Î»ØÄêÊýË¡¤È¤ÏÁ´¤¯´Ø·¸¤Ê¤¤¡£ -\&'/dev/' ¤òÍѤ¤¤ë¤Î¤Ïñ¤Ë´·½¬¤Ë²á¤®¤Ê¤¤¡£ +なお、これらはファイルシステム上でのデバイスの指定方法とは全く関係ない。 +\&'/dev/' を用いるのは単に慣習に過ぎない。 .\"O The more awkward and less portable numeric specification of the above .\"O possible root devices in major/minor format is also accepted. .\"O (E.g., /dev/sda3 is major 8, minor 3, so you could use 'root=0x803' as an .\"O alternative.) -°·¤¤¤Ë¤¯¤¤¤·°Ü¿¢À­¤âÎɤ¯¤Ê¤¤¤¬¡¢ -¾åµ­¤Î¥Ç¥Ð¥¤¥¹¤ò major/minor ÈÖ¹æ¤Î¿ôÃͤǻØÄꤷ¤Æ¤â¤è¤¤¡£ -(Î㤨¤Ð /dev/sda3 ¤Ï major ÈÖ¹æ 8¡¢minor ÈÖ¹æ 3 ¤Ê¤Î¤Ç¡¢ -\&'root=0x803' ¤Èµ­½Ò¤Ç¤­¤ë¡£) +扱いにくいし移植性も良くないが、 +上記のデバイスを major/minor 番号の数値で指定してもよい。 +(例えば /dev/sda3 は major 番号 8、minor 番号 3 なので、 +\&'root=0x803' と記述できる。) .TP .\"O .B "'ro' and 'rw'" -.B "'ro' ¤È 'rw'" +.B "'ro' と 'rw'" .\"O The 'ro' option tells the kernel to mount the root file system .\"O as 'readonly' so that file system consistency check programs (fsck) .\"O can do their work on a quiescent file system. @@ -383,33 +383,33 @@ nfs, ram, scd, mcd, cdu535, aztcd, cm206cd, gscd, sbpcd, sonycd, bpcd .\"O as read/write capable, for example, by 'mount \-w \-n \-o remount /'. .\"O (See also .\"O .BR mount (8).) -\&'ro' ¥ª¥×¥·¥ç¥ó¤Ï¡¢¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò -¡ÖÆɤ߽Ф·ÀìÍѡפǥޥ¦¥ó¥È¤¹¤ë¤è¤¦¥«¡¼¥Í¥ë¤Ë»Ø¼¨¤·¡¢ -fsck ¥×¥í¥°¥é¥à¤¬¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÌ·½â¤ò¸¡ºº¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¡ÖÆɤ߽ñ¤­²Äǽ¡×¤È¤·¤ÆºÆ¥Þ¥¦¥ó¥È¤µ¤ì¤ë -(¤Ä¤Þ¤ê 'mount \-w \-n \-o remount /') ¤Þ¤Ç¤Î´Ö¤Ï¡¢ -¤¤¤«¤Ê¤ë¥×¥í¥»¥¹¤â¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤à¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +\&'ro' オプションは、ルートファイルシステムを +「読み出し専用」でマウントするようカーネルに指示し、 +fsck プログラムがファイルシステムの矛盾を検査できるようにする。 +ファイルシステムが「読み書き可能」として再マウントされる +(つまり 'mount \-w \-n \-o remount /') までの間は、 +いかなるプロセスもこのファイルシステム上のファイルに書き込むことはできない。 .RB ( mount (8) -¤â»²¾È¤»¤è¡£) +も参照せよ。) .\"O The 'rw' option tells the kernel to mount the root file system read/write. .\"O This is the default. -rw ¥ª¥×¥·¥ç¥ó¤Ï¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò -¡ÖÆɤ߽ñ¤­²Äǽ¡×¤Ç¥Þ¥¦¥ó¥È¤¹¤ë¤è¤¦¥«¡¼¥Í¥ë¤Ë»Ø¼¨¤¹¤ë¡£ -¤³¤Á¤é¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£ +rw オプションはルートファイルシステムを +「読み書き可能」でマウントするようカーネルに指示する。 +こちらがデフォルトである。 .\"O The choice between read-only and read/write can also be set using .\"O .BR rdev (8). -¾Êά»þ¤Î»ØÄê¤ò¡ÖÆɤ߽Ф·ÀìÍÑ¡×¤È -¡ÖÆɤ߽ñ¤­²Äǽ¡×¤È¤Î¤É¤Á¤é¤Ë¤¹¤ë¤«¤Ï¡¢ +省略時の指定を「読み出し専用」と +「読み書き可能」とのどちらにするかは、 .BR rdev (8) -¤Ë¤è¤Ã¤Æ¤âÀßÄê¤Ç¤­¤ë¡£ +によっても設定できる。 .TP .B "'reserve=...'" .\"O This is used to protect I/O port regions from probes. .\"O The form of the command is: -¥Ç¥Ð¥¤¥¹¤Î¼«Æ°¸¡½Ð¤«¤é I/O ¥Ý¡¼¥È¤òÊݸ¤ë¤¿¤á¤ËÍѤ¤¤ë¡£ -¥³¥Þ¥ó¥É¤Î·Á¼°¤Ï°Ê²¼¤ÎÄ̤ꡣ +デバイスの自動検出から I/O ポートを保護するために用いる。 +コマンドの形式は以下の通り。 .IP .BI reserve= iobase,extent[,iobase,extent]... .sp @@ -419,31 +419,31 @@ rw .\"O because of hardware that reacts badly to the probing, or hardware .\"O that would be mistakenly identified, or merely .\"O hardware you don't want the kernel to initialize. -µ¡¼ï¤Ë¤è¤Ã¤Æ¤Ï¡¢ -¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ë¤è¤ë¥Ç¥Ð¥¤¥¹¤Î¼«Æ°¸¡½Ð¤ò¡¢ -ÆÃÄê¤ÎÈϰϤËÂФ·¤Æ¤Ï¶Ø»ß¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤¬¤¢¤ë¡£ -¥Ï¡¼¥É¥¦¥§¥¢¤¬¸¡½ÐÆ°ºî¤Ë¤è¤Ã¤Æ¿¼¹ï¤ÊÌäÂê¤ò°ú¤­µ¯¤³¤¹¾ì¹ç¤ä¡¢ -¸íǧ¼±¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¾ì¹ç¡¢ -¤Þ¤¿Ã±¤Ë¥«¡¼¥Í¥ë¤Ë¥Ï¡¼¥É¥¦¥§¥¢¤ò½é´ü²½¤µ¤»¤¿¤¯¤Ê¤¤¾ì¹ç¤Ê¤É¤¬¤¢¤ê¤¦¤ë¤À¤í¤¦¡£ +機種によっては、 +デバイスドライバによるデバイスの自動検出を、 +特定の範囲に対しては禁止しなければならないことがある。 +ハードウェアが検出動作によって深刻な問題を引き起こす場合や、 +誤認識される可能性がある場合、 +また単にカーネルにハードウェアを初期化させたくない場合などがありうるだろう。 .\"O The reserve boot-time argument specifies an I/O port region that .\"O shouldn't be probed. .\"O A device driver will not probe a reserved region, .\"O unless another boot argument explicitly specifies that it do so. -¤³¤Îµ¯Æ°»þ°ú¿ô reserve ¤Ï¡¢¼«Æ°¸¡½Ð¤ÎÂоݳ°¤È¤¹¤ë I/O ¥Ý¡¼¥È¤ÎÈϰϤò»ØÄꤹ¤ë¡£ -¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ï¡¢ -¾¤Îµ¯Æ°»þ°ú¿ô¤Ë¤è¤Ã¤ÆÌÀ¼¨Åª¤Ë»ØÄꤵ¤ì¤Ê¤¤¸Â¤ê¡¢ -ͽÌ󤵤줿ÈϰϤËÂФ·¤Æ¼«Æ°¸¡½ÐÆ°ºî¤ò¹Ô¤ï¤Ê¤¤¡£ +この起動時引数 reserve は、自動検出の対象外とする I/O ポートの範囲を指定する。 +デバイスドライバは、 +他の起動時引数によって明示的に指定されない限り、 +予約された範囲に対して自動検出動作を行わない。 .\"O For example, the boot line -Î㤨¤Ð¥Ö¡¼¥È»þ¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ë +例えばブート時のコマンドラインに .IP reserve=0x300,32 blah=0x300 .IP .\"O keeps all device drivers except the driver for 'blah' from probing .\"O 0x300-0x31f. -¤È»ØÄꤹ¤ë¤È¡¢'blah' ¤ò½ü¤¯¤¹¤Ù¤Æ¤Î¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ï -0x300 ¤«¤é 0x31f ¤ÎÈϰϤò¼«Æ°¸¡½Ð¤ÎÂоݳ°¤È¤¹¤ë¡£ +と指定すると、'blah' を除くすべてのデバイスドライバは +0x300 から 0x31f の範囲を自動検出の対象外とする。 .TP .B "'mem=...'" .\"O The BIOS call defined in the PC specification that returns @@ -457,17 +457,17 @@ reserve=0x300,32 blah=0x300 .\"O The value is in decimal or hexadecimal (prefix 0x), .\"O and the suffixes 'k' (times 1024) or 'M' (times 1048576) can be used. .\"O Here is a quote from Linus on usage of the 'mem=' parameter. -ÅëºÜ¤µ¤ì¤Æ¤¤¤ë¥á¥â¥ê¤ÎÎ̤òÊÖ¤¹ BIOS ¥³¡¼¥ë¤Ï -PC ¤Î»ÅÍͤÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢¤³¤ì¤ÏºÇÂç 64MB ¤Þ¤Ç¤·¤«ÊÖ¤¹¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ -Linux ¤ÏÅëºÜ¥á¥â¥ê¤ÎÎ̤òÄ´¤Ù¤ë¤¿¤á¤Ë¡¢ -µ¯Æ°»þ¤Ë¤³¤Î BIOS ¥³¡¼¥ë¤ò»ÈÍѤ¹¤ë¡£ -¤â¤· 64MB °Ê¾å¤Î RAM ¤òÅëºÜ¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ -¤³¤Îµ¯Æ°»þ°ú¿ô¤òÍѤ¤¤Æ -¼ÂºÝ¤Î¥á¥â¥êÍÆÎ̤ò Linux ¤ËÃΤ餻¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -ÃÍ¤Ï 10 ¿Ê¿ô¤Þ¤¿¤Ï 16 ¿Ê¿ô (ÀèƬ¤Ë 0x ¤òÉÕ²Ã) ¤Î¿ôÃͤǻØÄꤷ¡¢ -1024 Çܤòɽ¤¹ 'k' ¤Þ¤¿¤Ï 1048576 Çܤòɽ¤¹ 'M' -¤òËöÈø¤ËÉղäǤ­¤ë¡£ -°Ê²¼¤Ï Linus ¤Ë¤è¤ë 'mem=' ¥Ñ¥é¥á¡¼¥¿¤Î²òÀâ¤Ç¤¢¤ë¡£ +搭載されているメモリの量を返す BIOS コールは +PC の仕様で定義されているが、これは最大 64MB までしか返すことができない。 +Linux は搭載メモリの量を調べるために、 +起動時にこの BIOS コールを使用する。 +もし 64MB 以上の RAM を搭載している場合は、 +この起動時引数を用いて +実際のメモリ容量を Linux に知らせることができる。 +値は 10 進数または 16 進数 (先頭に 0x を付加) の数値で指定し、 +1024 倍を表す 'k' または 1048576 倍を表す 'M' +を末尾に付加できる。 +以下は Linus による 'mem=' パラメータの解説である。 .in +0.5i .\"O The kernel will accept any 'mem=xx' parameter you give it, and if it @@ -475,14 +475,14 @@ Linux .\"O The parameter indicates the highest addressable RAM address, so .\"O \&'mem=0x1000000' means you have 16MB of memory, for example. .\"O For a 96MB machine this would be 'mem=0x6000000'. -¥«¡¼¥Í¥ë¤Ï 'mem=xx' ¥Ñ¥é¥á¡¼¥¿¤È¤·¤Æ -¤É¤ó¤ÊÃͤò»ØÄꤷ¤Æ¤â¤½¤ì¤ò¤½¤Î¤Þ¤Þ¼õ¤±Æþ¤ì¤ë¡£ -¤À¤«¤é¤½¤ì¤¬±³¤À¤È¤ï¤«¤Ã¤¿¤é¡¢ -ÃÙ¤«¤ìÁᤫ¤ì¤Ò¤É¤¤¥¯¥é¥Ã¥·¥å¤ò¤¹¤ë¤À¤í¤¦¡£ -¥Ñ¥é¥á¡¼¥¿¤Ï¥¢¥¯¥»¥¹¤·¤¦¤ëºÇ¤â¹â°Ì¤Î RAM ¥¢¥É¥ì¥¹¤ò»Ø¼¨¤¹¤ë¡£ -¤À¤«¤éÎ㤨¤Ð 'mem=0x1000000' ¤Ã¤Æ¤¤¤¦¤Î¤Ï -16MB ¤Î¥á¥â¥ê¤¬¤¢¤ë¡¢¤È¤¤¤¦°ÕÌ£¤Ë¤Ê¤ë¡£ -96MB ¤Î¥Þ¥·¥ó¤Ê¤é 'mem=0x6000000' ¤À¡£ +カーネルは 'mem=xx' パラメータとして +どんな値を指定してもそれをそのまま受け入れる。 +だからそれが嘘だとわかったら、 +遅かれ早かれひどいクラッシュをするだろう。 +パラメータはアクセスしうる最も高位の RAM アドレスを指示する。 +だから例えば 'mem=0x1000000' っていうのは +16MB のメモリがある、という意味になる。 +96MB のマシンなら 'mem=0x6000000' だ。 .\"O .BR NOTE : .\"O some machines might use the top of memory for BIOS @@ -495,35 +495,35 @@ Linux .\"O If you tell linux that it has more memory than .\"O it actually does have, bad things will happen: maybe not at once, but .\"O surely eventually. -.BR "Ãí°Õ" : -¥Þ¥·¥ó¤Ë¤è¤Ã¤Æ¤Ï¥á¥â¥ê¤ÎºÇ¾å°Ì¤ÎÎΰè¤ò BIOS ¤Î¥­¥ã¥Ã¥·¥å¤ä¤é²¿¤ä¤é¤Î -¤¿¤á¤Ë»È¤Ã¤Æ¤¤¤ë¤³¤È¤¬¤¢¤ë¤«¤é¡¢ -¼ÂºÝ¤Ë¤Ï 96MB ¤ò¥Õ¥ë¤Ë¥¢¥É¥ì¥¹¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -µÕ¤Î¾ì¹ç¤â¤¢¤ë¡£ -¤¤¤¯¤Ä¤«¤Î¥Á¥Ã¥×¥»¥Ã¥È¤Ç¤Ï¡¢ -BIOS Îΰè¤ËÆþ¤Ã¤Æ¤¤¤ëʪÍý¥á¥â¥ê¤òºÇ¾å°Ì¤Î¥á¥â¥ê¤Î¤µ¤é¤Ë¾å¤Ë¥Þ¥Ã¥×¤¹¤ë¡£ -¤è¤Ã¤ÆºÇ¾å°Ì¤Î¥á¥â¥ê¤Ï¤¿¤È¤¨¤Ð 96MB + 384kB ¤Ê¤ó¤ÆÃͤˤʤ뤫¤â¤·¤ì¤Ê¤¤¡£ -linux ¤Ë¼ÂºÝ¤è¤ê¿¤¤¥á¥â¥ê¤ò¶µ¤¨¤Æ¤·¤Þ¤Ã¤¿¤È¤·¤¿¤é¡¢ -¤Þ¤º¤¤¤³¤È¤¬µ¯¤­¤ë¤À¤í¤¦¡£ -¤¹¤°¤Ë¤Ç¤Ï¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¤±¤É¡¢¤æ¤¯¤æ¤¯¤Ï³Î¼Â¤Ë¤Í¡£ +.BR "注意" : +マシンによってはメモリの最上位の領域を BIOS のキャッシュやら何やらの +ために使っていることがあるから、 +実際には 96MB をフルにアドレスすることはできないかもしれない。 +逆の場合もある。 +いくつかのチップセットでは、 +BIOS 領域に入っている物理メモリを最上位のメモリのさらに上にマップする。 +よって最上位のメモリはたとえば 96MB + 384kB なんて値になるかもしれない。 +linux に実際より多いメモリを教えてしまったとしたら、 +まずいことが起きるだろう。 +すぐにではないかもしれないけど、ゆくゆくは確実にね。 .in .\"O You can also use the boot argument 'mem=nopentium' to turn off 4 MB .\"O page tables on kernels configured for IA32 systems with a pentium or newer .\"O CPU. -¤Þ¤¿¡¢µ¯Æ°»þ°ú¿ô¤Ë 'mem=nopentium' ¤ò»ØÄꤹ¤ë¤È¡¢ -pentium ¤È¤½¤ì°Ê¹ß¤Î CPU ¤ò»È¤Ã¤¿ IA32 ¥·¥¹¥Æ¥àÍѤËÀßÄꤵ¤ì¤¿¥«¡¼¥Í¥ë¤Ç -4MB ¤Î¥Ú¡¼¥¸¥Æ¡¼¥Ö¥ë¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +また、起動時引数に 'mem=nopentium' を指定すると、 +pentium とそれ以降の CPU を使った IA32 システム用に設定されたカーネルで +4MB のページテーブルを無効にすることができる。 .TP .B "'panic=N'" .\"O By default the kernel will not reboot after a panic, but this option .\"O will cause a kernel reboot after N seconds (if N is greater than zero). .\"O This panic timeout can also be set by "echo N > /proc/sys/kernel/panic". -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥«¡¼¥Í¥ë¤Ï¥Ñ¥Ë¥Ã¥¯¤Î¸å¥ê¥Ö¡¼¥È¤·¤Ê¤¤¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤Æ (N ¤ò 0 ¤è¤êÂ礭¤ÊÃͤȤ¹¤ì¤Ð) -N Éøå¤Ë¥ê¥Ö¡¼¥È¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¤³¤ÎÃͤϡ¢µ¯Æ°¸å¤Ë "echo N > /proc/sys/kernel/panic" -¤È¤·¤ÆÀßÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +デフォルトでは、カーネルはパニックの後リブートしない。 +このオプションを用いて (N を 0 より大きな値とすれば) +N 秒後にリブートするようになる。 +この値は、起動後に "echo N > /proc/sys/kernel/panic" +として設定することもできる。 .TP .B "'reboot=[warm|cold][,[bios|hard]]'" .\"O (Only when @@ -539,36 +539,36 @@ N .\"O of motherboard where that doesn't work. .\"O The option 'reboot=bios' will .\"O instead jump through the BIOS. -(¥«¡¼¥Í¥ë¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +(カーネルコンパイル時に .B CONFIG_BUGi386 -¤¬»ØÄꤵ¤ì¤¿¤È¤­¤Î¤ßÍ­¸ú¡£) -¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó 2.0.22 ¤«¤é¡¢ -¥ê¥Ö¡¼¥È¤Î¥Ç¥Õ¥©¥ë¥È¤Ï¥³¡¼¥ë¥É¥Ö¡¼¥È¤Ë¤Ê¤Ã¤¿¡£ -°ÊÁ°¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¥¦¥©¡¼¥à¥Ö¡¼¥È¤ò¤¹¤ë¤Ë¤Ï -\&'reboot=warm' ¤È»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -(¤¢¤ë¼ï¤Î¥Ï¡¼¥É¥¦¥§¥¢¤ò¥ê¥»¥Ã¥È¤¹¤ë¤Ë¤Ï¥³¡¼¥ë¥É¥Ö¡¼¥È¤¬É¬Íפˤʤ뤬¡¢ -¥Ç¥£¥¹¥¯¥­¥ã¥Ã¥·¥å¤Ë¤¢¤ë½ñ¤­¹þ¤ó¤Ç¤¤¤Ê¤¤¥Ç¡¼¥¿¤ÏÇ˲õ¤µ¤ì¤ë¡£ -¥¦¥©¡¼¥à¥Ö¡¼¥È¤Ç¤Ï¡¢¤è¤êÁÇÁ᤯¥ê¥Ö¡¼¥È¤Ç¤­¤ë¡£) -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥ê¥Ö¡¼¥È¤Ï 'hard' ¤Ç¹Ô¤ï¤ì¤ë¡£ -¤¹¤Ê¤ï¤Á¥ê¥»¥Ã¥È¥é¥¤¥ó¤Ë low ¤ò½ÐÎϤ¹¤ë¤è¤¦¥­¡¼¥Ü¡¼¥É¥³¥ó¥È¥í¡¼¥é¤ËÍ׵ᤷ¤Æ¡¢ -¥ê¥Ö¡¼¥È¤ò¹Ô¤¦¡£ -¤·¤«¤·°ìÉô¤Î¥Þ¥¶¡¼¥Ü¡¼¥É¤Ç¤Ï¤³¤ì¤¬¤Ç¤­¤Ê¤¤¡£ -\&'reboot=bios' ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢ -Âå¤ï¤ê¤Ë BIOS ¤ò·Ðͳ¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +が指定されたときのみ有効。) +カーネルバージョン 2.0.22 から、 +リブートのデフォルトはコールドブートになった。 +以前のデフォルトであるウォームブートをするには +\&'reboot=warm' と指定しなければならない。 +(ある種のハードウェアをリセットするにはコールドブートが必要になるが、 +ディスクキャッシュにある書き込んでいないデータは破壊される。 +ウォームブートでは、より素早くリブートできる。) +デフォルトではリブートは 'hard' で行われる。 +すなわちリセットラインに low を出力するようキーボードコントローラに要求して、 +リブートを行う。 +しかし一部のマザーボードではこれができない。 +\&'reboot=bios' オプションを指定すると、 +代わりに BIOS を経由するようになる。 .TP .\"O .B "'nosmp'" and "'maxcpus=N'" -.B "'nosmp'" ¤È "'maxcpus=N'" +.B "'nosmp'" と "'maxcpus=N'" .\"O (Only when __SMP__ is defined.) .\"O A command-line option of 'nosmp' or 'maxcpus=0' will disable SMP .\"O activation entirely; an option 'maxcpus=N' limits the maximum number .\"O of CPUs activated in SMP mode to N. -(¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë __SMP__ ¤¬»ØÄꤵ¤ì¤¿¤È¤­¤Î¤ßÍ­¸ú¡£) -¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤Ë 'nosmp' ¤Þ¤¿¤Ï 'maxcpus=0' ¤ò»ØÄꤹ¤ë¤È¡¢ -SMP (Symmetric Multi Processing) ¤ò´°Á´¤Ë̵¸ú¤Ë¤¹¤ë¡£ -\&'maxcpus=N' ¥ª¥×¥·¥ç¥ó¤Ï¡¢ -SMP ¥â¡¼¥É¤ÇÍ­¸ú¤Ë¤¹¤ë CPU ¤ÎºÇÂç¿ô¤ò N ¤ËÀ©¸Â¤¹¤ë¡£ +(カーネルのコンパイル時に __SMP__ が指定されたときのみ有効。) +コマンドラインオプションに 'nosmp' または 'maxcpus=0' を指定すると、 +SMP (Symmetric Multi Processing) を完全に無効にする。 +\&'maxcpus=N' オプションは、 +SMP モードで有効にする CPU の最大数を N に制限する。 .\"O .SS "Boot Arguments for Use by Kernel Developers" -.SS ¥«¡¼¥Í¥ë³«È¯¼ÔÍѤε¯Æ°»þ°ú¿ô +.SS カーネル開発者用の起動時引数 .TP .B "'debug'" .\"O Kernel messages are handed off to the kernel log daemon klogd so that they @@ -585,21 +585,21 @@ SMP .\"O to klogd. .\"O See .\"O .BR klogd (8). -¥«¡¼¥Í¥ë¤¬½ÐÎϤ¹¤ë¥á¥Ã¥»¡¼¥¸¤Ï¥«¡¼¥Í¥ë¥í¥°¥Ç¡¼¥â¥ó klogd ¤ËÅϤµ¤ì¡¢ -¥Ç¥£¥¹¥¯¤Ëµ­Ï¿¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¥×¥é¥¤¥ª¥ê¥Æ¥£¤¬ +カーネルが出力するメッセージはカーネルログデーモン klogd に渡され、 +ディスクに記録できるようになる。 +プライオリティが .I console_loglevel -¤Î¥á¥Ã¥»¡¼¥¸¤Ï¥³¥ó¥½¡¼¥ë¤Ë¤âɽ¼¨¤µ¤ì¤ë¡£ -(¤³¤ì¤é¤Î¥ì¥Ù¥ë¤Ë¤Ä¤¤¤Æ¤Ï¡¢\fI\fP ¤ò»²¾È¡£) -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¤³¤ÎÊÑ¿ô¤Ï¡¢ -¥Ç¥Ð¥Ã¥°¥á¥Ã¥»¡¼¥¸¤è¤ê¤â½ÅÍפʤ¢¤é¤æ¤ë¥á¥Ã¥»¡¼¥¸¤òµ­Ï¿¤¹¤ë¤è¤¦ÀßÄꤵ¤ì¤Æ¤¤¤ë -(¥Ç¥Ð¥Ã¥°¥á¥Ã¥»¡¼¥¸¤Ï´Þ¤Þ¤Ê¤¤)¡£ -¤³¤Îµ¯Æ°»þ°ú¿ô¤ò»ØÄꤹ¤ë¤È¡¢ -¥«¡¼¥Í¥ë¤Ï¥×¥é¥¤¥ª¥ê¥Æ¥£¤¬ DEBUG ¤Î¥á¥Ã¥»¡¼¥¸¤â½ÐÎϤ¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +のメッセージはコンソールにも表示される。 +(これらのレベルについては、\fI\fP を参照。) +デフォルトではこの変数は、 +デバッグメッセージよりも重要なあらゆるメッセージを記録するよう設定されている +(デバッグメッセージは含まない)。 +この起動時引数を指定すると、 +カーネルはプライオリティが DEBUG のメッセージも出力するようになる。 .I console_loglevel -¤â klogd ¤Ë¥ª¥×¥·¥ç¥ó¤òÅϤ»¤Ð¼Â¹Ô»þ¤ËÀßÄê¤Ç¤­¤ë¡£ +も klogd にオプションを渡せば実行時に設定できる。 .BR klogd (8) -¤ò¸«¤è¡£ +を見よ。 .TP .B "'profile=N'" .\"O It is possible to enable a kernel profiling function, @@ -619,24 +619,24 @@ SMP .\"O The significance of this variable is that it .\"O gives the granularity of the profiling: each clock tick, if the .\"O system was executing kernel code, a counter is incremented: -¥«¡¼¥Í¥ë¤¬¤É¤³¤Ç CPU ¥µ¥¤¥¯¥ë¤ò¾ÃÈñ¤·¤Æ¤¤¤ë¤«Ä´¤Ù¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ -¥«¡¼¥Í¥ë¤Î¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°µ¡Ç½¤òÍ­¸ú¤Ë¤¹¤ì¤Ð¤³¤ì¤ò¼Â¸½¤Ç¤­¤ë¡£ -¥«¡¼¥Í¥ë¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤Ï¡¢ÊÑ¿ô +カーネルがどこで CPU サイクルを消費しているか調べたい場合には、 +カーネルのプロファイリング機能を有効にすればこれを実現できる。 +カーネルプロファイリングは、変数 .I prof_shift -¤ò 0 °Ê³°¤ÎÃͤ˥»¥Ã¥È¤¹¤ë¤ÈÍ­¸ú¤Ë¤Ê¤ë¡£ -¤³¤ÎÃͤϥ³¥ó¥Ñ¥¤¥ë»þ¤Ë +を 0 以外の値にセットすると有効になる。 +この値はコンパイル時に .B CONFIG_PROFILE -¤Ç»ØÄꤹ¤ë¤«¡¢ -¤³¤Î 'prifile=N' ¥ª¥×¥·¥ç¥ó¤Ç»ØÄê¤Ç¤­¤ë¡£ +で指定するか、 +この 'prifile=N' オプションで指定できる。 .I prof_shift -¤ÎÃÍ¤Ï N ¤¬»ØÄꤵ¤ì¤ì¤Ð N ¤È¤Ê¤ê¡¢N ¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï +の値は N が指定されれば N となり、N が指定されなかった場合は .B CONFIG_PROFILE_SHIFT -¤ÎÃͤ¬ÍѤ¤¤é¤ì¤ë¡£ -¤É¤Á¤é¤â»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¥Ç¥Õ¥©¥ë¥ÈÃͤΠ2 ¤¬ÍѤ¤¤é¤ì¤ë¡£ -¤³¤ÎÊÑ¿ô¤¬½ÅÍפʤΤϡ¢ -¥«¡¼¥Í¥ë¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤ÎγÅÙ¤ò·èÄꤹ¤ë¤È¤³¤í¤Ë¤¢¤ë¡£ -¤¹¤Ê¤ï¤Á¡¢³Æ¥¯¥í¥Ã¥¯¤Î³ä¹þ¤ß¤´¤È¤Ë¡¢¥·¥¹¥Æ¥à¤¬¥«¡¼¥Í¥ë¥³¡¼¥É¤ò¼Â¹Ô¤·¤Æ¤¤¤ì¤Ð¡¢ -°Ê²¼¤Î¤è¤¦¤Ë¥«¥¦¥ó¥¿¤ÎÃͤ¬¥¤¥ó¥¯¥ê¥á¥ó¥È¤µ¤ì¤ë¡£ +の値が用いられる。 +どちらも指定されなければデフォルト値の 2 が用いられる。 +この変数が重要なのは、 +カーネルプロファイリングの粒度を決定するところにある。 +すなわち、各クロックの割込みごとに、システムがカーネルコードを実行していれば、 +以下のようにカウンタの値がインクリメントされる。 .IP profile[address >> prof_shift]++; .sp @@ -646,39 +646,39 @@ profile[address >> prof_shift]++; .\"O Writing to .\"O .I /proc/profile .\"O will clear the counters. -À¸¤Î¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¾ðÊó¤Ï¡¢ +生のプロファイリング情報は、 .I /proc/profile -¤«¤é¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¤¬¡¢readprofile.c -¤Î¤è¤¦¤Ê¾ðÊó¤ò²Ã¹©¤¹¤ë¥Ä¡¼¥ë¤ò»È¤Ã¤¿¤Û¤¦¤¬Îɤ¤¤À¤í¤¦¡£ +から見ることができるが、readprofile.c +のような情報を加工するツールを使ったほうが良いだろう。 .I /proc/profile -¤ËǤ°Õ¤Î¥Ç¡¼¥¿¤ò½ñ¹þ¤à¤È¡¢ -¥«¥¦¥ó¥¿¤Ï¥ê¥»¥Ã¥È¤µ¤ì¤ë¡£ +に任意のデータを書込むと、 +カウンタはリセットされる。 .TP .B "'swap=N1,N2,N3,N4,N5,N6,N7,N8'" .\"O Set the eight parameters max_page_age, page_advance, page_decline, .\"O page_initial_age, age_cluster_fract, age_cluster_min, pageout_weight, .\"O bufferout_weight that control the kernel swap algorithm. .\"O For kernel tuners only. -¥«¡¼¥Í¥ë¤Î¥¹¥ï¥Ã¥×¥¢¥ë¥´¥ê¥º¥à¤ò¥³¥ó¥È¥í¡¼¥ë¤¹¤ë -¼¡¤Î 8 ¤Ä¤Î¥Ñ¥é¥á¡¼¥¿¤ò¥»¥Ã¥È¤¹¤ë¡£ +カーネルのスワップアルゴリズムをコントロールする +次の 8 つのパラメータをセットする。 max_page_age, page_advance, page_decline, page_initial_age, age_cluster_fract, age_cluster_min, pageout_weight, bufferout_weight. -¤³¤ì¤Ï¥«¡¼¥Í¥ë¤ò¥Á¥å¡¼¥ó¤¹¤ë¿Í¤Î¤¿¤á¤Î¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë¡£ +これはカーネルをチューンする人のためのオプションである。 .TP .B "'buff=N1,N2,N3,N4,N5,N6'" .\"O Set the six parameters max_buff_age, buff_advance, buff_decline, .\"O buff_initial_age, bufferout_weight, buffermem_grace that control .\"O kernel buffer memory management. .\"O For kernel tuners only. -¥«¡¼¥Í¥ë¤Î¥Ð¥Ã¥Õ¥¡¥á¥â¥ê´ÉÍý¤ò¥³¥ó¥È¥í¡¼¥ë¤¹¤ë -¼¡¤Î 6 ¤Ä¤Î¥Ñ¥é¥á¡¼¥¿¤ò¥»¥Ã¥È¤¹¤ë¡£ +カーネルのバッファメモリ管理をコントロールする +次の 6 つのパラメータをセットする。 max_buff_age, buff_advance, buff_decline, buff_initial_age, bufferout_weight, buffermem_grace. -¤³¤ì¤Ï¥«¡¼¥Í¥ë¤ò¥Á¥å¡¼¥ó¤¹¤ë¿Í¤Î¤¿¤á¤Î¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë¡£ +これはカーネルをチューンする人のためのオプションである。 .\"O .SS "Boot Arguments for Ramdisk Use" -.SS "RAM ¥Ç¥£¥¹¥¯´ØÏ¢¤Îµ¯Æ°»þ°ú¿ô" +.SS "RAM ディスク関連の起動時引数" .\"O (Only if the kernel was compiled with .\"O .BR CONFIG_BLK_DEV_RAM .) .\"O In general it is a bad idea to use a ramdisk under Linux\(emthe @@ -689,16 +689,16 @@ buffermem_grace. .\"O One might also have a system in which first .\"O some modules (for file system or hardware) must be loaded .\"O before the main disk can be accessed. -(¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +(カーネルのコンパイル時に .B CONFIG_BLK_DEV_RAM -¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤¿¤È¤­¤Î¤ßÍ­¸ú¡£) -°ìÈÌŪ¤Ë¤Ï¡¢Linux ¤Ç RAM ¥Ç¥£¥¹¥¯¤ò»ÈÍѤ¹¤ë¤Î¤Ï¤¢¤Þ¤êÎɤ¤¹Í¤¨¤Ç¤Ï¤Ê¤¤¡£ -¥·¥¹¥Æ¥à¤ËǤ¤»¤Æ¤ª¤±¤Ð¤â¤Ã¤È¸úΨŪ¤Ë¥á¥â¥ê¤ò»ÈÍѤ¹¤ë¡£ -¤·¤«¤·¥Ö¡¼¥È»þ (¤Þ¤¿¤Ï¥Ö¡¼¥È¥Õ¥í¥Ã¥Ô¡¼¤ÎºîÀ®Ãæ) ¤Ë¤Ï¡¢ -¥Õ¥í¥Ã¥Ô¡¼¤ÎÆâÍƤò RAM ¥Ç¥£¥¹¥¯¤Ë¥í¡¼¥É¤¹¤ë¤ÈÊØÍø¤«¤â¤·¤ì¤Ê¤¤¡£ -¥á¥¤¥ó¥Ç¥£¥¹¥¯¤¬¥¢¥¯¥»¥¹²Äǽ¤Ë¤Ê¤ëÁ°¤Ë¡¢ -(¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ä¥Ï¡¼¥É¥¦¥§¥¢¤Ë´Ø¤¹¤ë) -¥â¥¸¥å¡¼¥ë¤ò¤¤¤¯¤Ä¤«¥í¡¼¥É¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¥·¥¹¥Æ¥à¤â¤¢¤ë¤À¤í¤¦¡£ +オプションが指定されたときのみ有効。) +一般的には、Linux で RAM ディスクを使用するのはあまり良い考えではない。 +システムに任せておけばもっと効率的にメモリを使用する。 +しかしブート時 (またはブートフロッピーの作成中) には、 +フロッピーの内容を RAM ディスクにロードすると便利かもしれない。 +メインディスクがアクセス可能になる前に、 +(ファイルシステムやハードウェアに関する) +モジュールをいくつかロードしなければならないシステムもあるだろう。 .\"O In Linux 1.3.48, ramdisk handling was changed drastically. .\"O Earlier, the memory was allocated statically, and there was @@ -711,54 +711,54 @@ buffermem_grace. .\"O .BR rdev (8) .\"O in conjunction with the new ramdisk setup), see .\"O .IR /usr/src/linux/Documentation/ramdisk.txt . -Linux ¤Î¥Ð¡¼¥¸¥ç¥ó 1.3.48 ¤Ë¤ª¤¤¤Æ¡¢ -RAM ¥Ç¥£¥¹¥¯¤Î¼è¤ê°·¤¤¤¬º¬Ä줫¤éÊѲ½¤·¤¿¡£ -¤½¤ì°ÊÁ°¤Þ¤Ç¤Ï¡¢¥á¥â¥ê¤ÏÀÅŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¡¢ -\&'ramdisk=N' ¥Ñ¥é¥á¡¼¥¿¤Ç¤½¤Î¥µ¥¤¥º¤ò»ØÄꤷ¤Æ¤¤¤¿¡£ -(¤³¤ÎÃͤϥ«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤ä +Linux のバージョン 1.3.48 において、 +RAM ディスクの取り扱いが根底から変化した。 +それ以前までは、メモリは静的に割り当てられ、 +\&'ramdisk=N' パラメータでそのサイズを指定していた。 +(この値はカーネルのコンパイル時や .BR rdev (8) -¤Ë¤è¤Ã¤Æ¤âÊѹ¹¤Ç¤­¤¿¡£) -¸½ºß¤Ï RAM ¥Ç¥£¥¹¥¯¤Ï¥Ð¥Ã¥Õ¥¡¥­¥ã¥Ã¥·¥å¤ò»ÈÍѤ·¤Æ¤ª¤ê¡¢ -ưŪ¤ËÀ®Ä¹¤¹¤ë¡£ -¤µ¤é¤Ë¿¤¯¤Î¾ðÊó (¤¿¤È¤¨¤Ð +によっても変更できた。) +現在は RAM ディスクはバッファキャッシュを使用しており、 +動的に成長する。 +さらに多くの情報 (たとえば .BR rdev (8) -¤¬¿·¤·¤¤ RAM ¥Ç¥£¥¹¥¯¤ÎÀßÄê¤È¤É¤Î¤è¤¦¤Ë´Ø·¸¤¹¤ë¤«) ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が新しい RAM ディスクの設定とどのように関係するか) については、 .I /usr/src/linux/Documentation/ramdisk.txt -¤ò»²¾È¡£ +を参照。 .\"O There are four parameters, two boolean and two integral. -4 ¤Ä¤Î¥Ñ¥é¥á¡¼¥¿¤¬¤¢¤ë¡£ÏÀÍýÃͤò¤È¤ë¤â¤Î¤¬ 2 ¤Ä¡¢À°¿ôÃͤò¤È¤ë¤â¤Î¤¬ 2 ¤Ä¡£ +4 つのパラメータがある。論理値をとるものが 2 つ、整数値をとるものが 2 つ。 .TP .B "'load_ramdisk=N'" .\"O If N=1, do load a ramdisk. .\"O If N=0, do not load a ramdisk. .\"O (This is the default.) -N=1 ¤Ê¤é RAM ¥Ç¥£¥¹¥¯¤ò¥í¡¼¥É¤¹¤ë¡£N=0 ¤Ê¤é¥í¡¼¥É¤·¤Ê¤¤ (¥Ç¥Õ¥©¥ë¥È)¡£ +N=1 なら RAM ディスクをロードする。N=0 ならロードしない (デフォルト)。 .TP .B "'prompt_ramdisk=N'" .\"O If N=1, do prompt for insertion of the floppy. .\"O (This is the default.) .\"O If N=0, do not prompt. .\"O (Thus, this parameter is never needed.) -N=1 ¤Ê¤é¥Õ¥í¥Ã¥Ô¡¼ÁÞÆþ¤òÂ¥¤¹¥×¥í¥ó¥×¥È¤ò½Ð¤¹ (¥Ç¥Õ¥©¥ë¥È)¡£ -N=0 ¤Ê¤é¥×¥í¥ó¥×¥È¤ò½Ð¤µ¤Ê¤¤¡£ -(½¾¤Ã¤Æ¡¢¤³¤Î¥Ñ¥é¥á¡¼¥¿¤ò»ØÄꤹ¤ëɬÍפϤޤºÌµ¤¤¤Ç¤¢¤í¤¦¡£) +N=1 ならフロッピー挿入を促すプロンプトを出す (デフォルト)。 +N=0 ならプロンプトを出さない。 +(従って、このパラメータを指定する必要はまず無いであろう。) .TP .\"O .BR 'ramdisk_size=N' " or (obsolete) " 'ramdisk=N' -.BR 'ramdisk_size=N' " ¤â¤·¤¯¤Ï (¸Å¤¤·Á¼°¤Î) " 'ramdisk=N' +.BR 'ramdisk_size=N' " もしくは (古い形式の) " 'ramdisk=N' .\"O Set the maximal size of the ramdisk(s) to N kB. .\"O The default is 4096 (4 MB). -¥é¥à¥Ç¥£¥¹¥¯¤ÎºÇÂ祵¥¤¥º¤ò N kB (¥­¥í¥Ð¥¤¥È) ¤Ë¥»¥Ã¥È¤¹¤ë¡£ -¾Êά»þ¤Ï 4096 (4 MB)¡£ +ラムディスクの最大サイズを N kB (キロバイト) にセットする。 +省略時は 4096 (4 MB)。 .TP .B "'ramdisk_start=N'" .\"O Sets the starting block number (the offset on the floppy where .\"O the ramdisk starts) to N. .\"O This is needed in case the ramdisk follows a kernel image. -³«»Ï¥Ö¥í¥Ã¥¯ÈÖ¹æ -(¥Õ¥í¥Ã¥Ô¡¼ÀèƬ¤«¤é¤Î¥ª¥Õ¥»¥Ã¥È¤Ç»ØÄꤷ¤¿ RAM ¥Ç¥£¥¹¥¯¤Î³«»ÏÅÀ) -¤ò N ¤Ë¥»¥Ã¥È¤¹¤ë¡£ -¤³¤ì¤Ï¥«¡¼¥Í¥ë¥¤¥á¡¼¥¸¤Î¤¢¤È¤Ë RAM ¥Ç¥£¥¹¥¯¥¤¥á¡¼¥¸¤òÃÖ¤¯¾ì¹ç¤ËɬÍפȤʤ롣 +開始ブロック番号 +(フロッピー先頭からのオフセットで指定した RAM ディスクの開始点) +を N にセットする。 +これはカーネルイメージのあとに RAM ディスクイメージを置く場合に必要となる。 .TP .B "'noinitrd'" .\"O (Only if the kernel was compiled with @@ -772,26 +772,26 @@ N=0 .\"O then /linuxrc is executed; afterward the "real" root file system is mounted, .\"O and the initrd file system is moved over to /initrd; finally .\"O the usual boot sequence (e.g., invocation of /sbin/init) is performed. -(¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +(カーネルのコンパイル時に .B CONFIG_BLK_DEV_RAM -¤È +と .B CONFIG_BLK_DEV_INITRD -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤È¤­¤Î¤ßÍ­¸ú¡£) -ºÇ¶á¤Ï initrd ¤ò»ÈÍѤ¹¤ë¤è¤¦¤Ë¥«¡¼¥Í¥ë¤ò¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤ë¤È¡¢ -¥Ö¡¼¥È¥×¥í¥»¥¹¤Ï¥«¡¼¥Í¥ë¤È RAM ¥Ç¥£¥¹¥¯¤ò¥í¡¼¥É¤·¡¢ -¥«¡¼¥Í¥ë¤Ï initrd ¤ò¡ÖÉáÄÌ¤Î¡× RAM ¥Ç¥£¥¹¥¯¤ËÊÑ´¹¤·¡¢ -¤³¤Î RAM ¥Ç¥£¥¹¥¯¤¬¥ë¡¼¥È¥Ç¥Ð¥¤¥¹¤È¤·¤Æ¡ÖÆɤ߽ñ¤­²Äǽ¡×¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¤ë¡£ -¼¡¤Ë /linuxrc ¤¬¼Â¹Ô¤µ¤ì¤ë¡£ -¤½¤Î¸å¡Ö¿¿¤Î¡×¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¥Þ¥¦¥ó¥È¤µ¤ì¡¢ -initrd ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï /initrd ¤Ë°Ü¤µ¤ì¤ë¡£ -ºÇ¸å¤ËÄ̾ï¤Î¥Ö¡¼¥È¥·¡¼¥±¥ó¥¹ (¶ñÂÎŪ¤Ë¤Ï /sbin/init ¤Î¸Æ¤Ó½Ð¤·) ¤¬¼Â¹Ô¤µ¤ì¤ë¡£ +が指定されているときのみ有効。) +最近は initrd を使用するようにカーネルをコンパイルできる。 +このオプションが指定されると、 +ブートプロセスはカーネルと RAM ディスクをロードし、 +カーネルは initrd を「普通の」 RAM ディスクに変換し、 +この RAM ディスクがルートデバイスとして「読み書き可能」でマウントされる。 +次に /linuxrc が実行される。 +その後「真の」ルートファイルシステムがマウントされ、 +initrd ファイルシステムは /initrd に移される。 +最後に通常のブートシーケンス (具体的には /sbin/init の呼び出し) が実行される。 .\"O For a detailed description of the initrd feature, see .\"O .IR /usr/src/linux/Documentation/initrd.txt . -initrd ¤Ë´Ø¤¹¤ë¾ÜºÙ¤Ê²òÀâ¤Ï +initrd に関する詳細な解説は .I /usr/src/linux/Documentation/initrd.txt -¤ò»²¾È¡£ +を参照。 .\"O The 'noinitrd' option tells the kernel that although it was compiled for .\"O operation with initrd, it should not go through the above steps, but @@ -800,27 +800,27 @@ initrd .\"O (This device can be used only once: the data is freed as soon as .\"O the last process that used it has closed .\"O .IR /dev/initrd .) -\&'noinitrd' ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤È¡¢ -¥«¡¼¥Í¥ë¤Ï (initrd Æ°ºî¤ò¹Ô¤¦¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ç¤â) -¾åµ­¤ÎÆ°ºî¤ò¹Ô¤Ê¤ï¤º¡¢Âå¤ï¤ê¤Ë initrd ¤Î¥Ç¡¼¥¿¤ò +\&'noinitrd' オプションを用いると、 +カーネルは (initrd 動作を行うようにコンパイルされている場合でも) +上記の動作を行なわず、代わりに initrd のデータを .I /dev/initrd -¤Ë»Ä¤¹¡£ -(¤³¤Î¥Ç¥Ð¥¤¥¹¤Ï°ìÅÙ¤·¤«»È¤¨¤Ê¤¤¡£ -¥Ç¡¼¥¿¤Ï¡¢¤½¤Î¥Ç¡¼¥¿¤ò»È¤Ã¤¿ºÇ¸å¤Î¥×¥í¥»¥¹¤¬ +に残す。 +(このデバイスは一度しか使えない。 +データは、そのデータを使った最後のプロセスが .I /dev/initrd -¤ò¥¯¥í¡¼¥º¤¹¤ë¤È¤¹¤°¤Ë²òÊü¤µ¤ì¤ë¡£) +をクローズするとすぐに解放される。) .\"O .SS "BOOT ARGUMENTS FOR SCSI DEVICES" -.SS "SCSI ¥Ç¥Ð¥¤¥¹ÍѤε¯Æ°»þ°ú¿ô" +.SS "SCSI デバイス用の起動時引数" .\"O General notation for this section: -¤³¤ÎÀá¤Ë¤ª¤±¤ëÍѸ졧 +この節における用語: .\"O .I iobase .\"O -- the first I/O port that the SCSI host occupies. .\"O These are specified in hexadecimal notation, .\"O and usually lie in the range from 0x200 to 0x3ff. .I iobase --- SCSI ¥Û¥¹¥È¥¢¥À¥×¥¿¤¬ÀêÍ­¤¹¤ë I/O ¥Ý¡¼¥È¤ÎÀèƬ¥¢¥É¥ì¥¹¡£ -16 ¿Êɽµ­¤Ç»ØÄꤷ¡¢Ä̾ï 0x200 ¤«¤é 0x3ff ¤ÎÈϰϤ˰ÌÃÖ¤¹¤ë¡£ +-- SCSI ホストアダプタが占有する I/O ポートの先頭アドレス。 +16 進表記で指定し、通常 0x200 から 0x3ff の範囲に位置する。 .\"O .I irq .\"O -- the hardware interrupt that the card is configured to use. @@ -830,10 +830,10 @@ initrd .\"O used for common peripherals like IDE hard disks, floppies, serial .\"O ports, etc. .I irq --- ¥«¡¼¥É¤¬ÍøÍѤ¹¤ë¥Ï¡¼¥É¥¦¥§¥¢³ä¤ê¹þ¤ß¡£Í­¸ú¤ÊÃͤϥ«¡¼¥É¤Ë -¤è¤Ã¤Æ°Û¤Ê¤ë¤¬¡¢Ä̾ï¤Ï 5, 7, 9, 10, 11, 12, 15 ¤Ç¤¢¤ë¡£ -¤³¤ì°Ê³°¤ÎÃͤÏÄ̾IDE ¥Ï¡¼¥É¥Ç¥£¥¹¥¯¡¢¥Õ¥í¥Ã¥Ô¡¼¡¢ -¥·¥ê¥¢¥ë¥Ý¡¼¥È¤È¤¤¤Ã¤¿°ìÈÌŪ¤Ê¼þÊÕµ¡´ï¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤ë¡£ +-- カードが利用するハードウェア割り込み。有効な値はカードに +よって異なるが、通常は 5, 7, 9, 10, 11, 12, 15 である。 +これ以外の値は通常、IDE ハードディスク、フロッピー、 +シリアルポートといった一般的な周辺機器によって使用される。 .\"O .I scsi-id .\"O -- the ID that the host adapter uses to identify itself on the @@ -843,11 +843,11 @@ initrd .\"O The usual default value .\"O is 7, but the Seagate and Future Domain TMC-950 boards use 6. .I scsi-id --- SCSI ¥Ð¥¹¾å¤Î¥Û¥¹¥È¥¢¥À¥×¥¿¤¬¼«Ê¬¼«¿È¤ò¼±Ê̤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë ID Èֹ档 -¤³¤ÎÃͤòÊѹ¹¤Ç¤­¤ë¥Û¥¹¥È¥¢¥À¥×¥¿¤â¤´¤¯´õ¤Ë¸ºß¤¹¤ë¤¬¡¢ -¤Û¤È¤ó¤É¤Ï¥¢¥À¥×¥¿ÆâÉô¤Ç¸ÇÄꤵ¤ì¤Æ¤¤¤ë¡£ -¤è¤¯»È¤ï¤ì¤ë¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 7 ¤Ç¤¢¤ë¤¬¡¢Seagate ¤â¤·¤¯¤Ï -Future Domain À½¤Î TMC-950 ¥Ü¡¼¥É¤Ç¤Ï 6 ¤¬»È¤ï¤ì¤ë¡£ +-- SCSI バス上のホストアダプタが自分自身を識別するために使用する ID 番号。 +この値を変更できるホストアダプタもごく希に存在するが、 +ほとんどはアダプタ内部で固定されている。 +よく使われるデフォルト値は 7 であるが、Seagate もしくは +Future Domain 製の TMC-950 ボードでは 6 が使われる。 .\"O .I parity .\"O -- whether the SCSI host adapter expects the attached devices @@ -857,12 +857,12 @@ Future Domain .\"O Again, not all adapters will support selection of parity .\"O behavior as a boot argument. .I parity --- SCSI ¥Û¥¹¥È¥¢¥À¥×¥¿¤¬¼è¤êÉÕ¤±¤é¤ì¤¿¥Ç¥Ð¥¤¥¹¤È¤ÎÄÌ¿®¤ËºÝ¤·¤Æ -¥Ñ¥ê¥Æ¥£ÃͤòɬÍפȤ¹¤ë¤«¤É¤¦¤«¡£ -1 ¤ò»ØÄꤹ¤ë¤È¥Ñ¥ê¥Æ¥£¥Á¥§¥Ã¥¯¤¬Í­¸ú¤Ë¤Ê¤ê¡¢ -0 ¤Ç¥Ñ¥ê¥Æ¥£¥Á¥§¥Ã¥¯¤¬Ìµ¸ú¤Ë¤Ê¤ë¡£ -¤·¤«¤·¡¢¤¹¤Ù¤Æ¤Î¥Ç¥Ð¥¤¥¹¤¬¤³¤Îµ¯Æ°»þ°ú¿ô¤Ë¤è¤ë¥Ñ¥ê¥Æ¥£¤ÎÁªÂò¤ò -¥µ¥Ý¡¼¥È¤¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ +-- SCSI ホストアダプタが取り付けられたデバイスとの通信に際して +パリティ値を必要とするかどうか。 +1 を指定するとパリティチェックが有効になり、 +0 でパリティチェックが無効になる。 +しかし、すべてのデバイスがこの起動時引数によるパリティの選択を +サポートするわけではない。 .TP .B "'max_scsi_luns=...'" .\"O A SCSI device can have a number of 'subdevices' contained within @@ -874,13 +874,13 @@ Future Domain .\"O But most .\"O devices, such as hard disks, tape drives and such are only one device, .\"O and will be assigned to LUN zero. -SCSI ¥Ç¥Ð¥¤¥¹¤ÏÊ£¿ô¤Î¡Ö¥µ¥Ö¥Ç¥Ð¥¤¥¹¡×¤ò¼«Ê¬¼«¿È¤ÎÆâÉô¤Ë»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ -ºÇ¤â¤è¤¯¤¢¤ëÎã¤È¤·¤Æ¡¢°ì»þ¤Ë 1 Ëç°Ê¾å¤Î¥Ç¥£¥¹¥¯¤ò°·¤¦¤³¤È¤¬¤Ç¤­¤ë -(¥Á¥§¥ó¥¸¥ã¡¼µ¡Ç½ÉÕ¤Î) SCSI CD-ROM ¤¬¤¢¤ë¡£ -¤½¤ì¤¾¤ì¤Î CD ¤Ï¤½¤Î¥Ç¥Ð¥¤¥¹¤Î -¡ÖÏÀÍý¥æ¥Ë¥Ã¥ÈÈÖ¹æ (LUN)¡×¤Ë¤è¤Ã¤ÆÆÃÄꤵ¤ì¤ë¡£ -¤·¤«¤·¤Û¤È¤ó¤É¤Î¥Ç¥Ð¥¤¥¹ (Î㤨¤Ð¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤ä¥Æ¡¼¥×¥É¥é¥¤¥Ö) ¤Ï¡¢ -LUN ÈÖ¹æ 0 ¤¬³ä¤êÅö¤Æ¤é¤ì¤¿¡¢¤¿¤À¤Ò¤È¤Ä¤Î¥Ç¥Ð¥¤¥¹¤«¤é¤Ê¤ë¡£ +SCSI デバイスは複数の「サブデバイス」を自分自身の内部に持つことができる。 +最もよくある例として、一時に 1 枚以上のディスクを扱うことができる +(チェンジャー機能付の) SCSI CD-ROM がある。 +それぞれの CD はそのデバイスの +「論理ユニット番号 (LUN)」によって特定される。 +しかしほとんどのデバイス (例えばハードディスクやテープドライブ) は、 +LUN 番号 0 が割り当てられた、ただひとつのデバイスからなる。 .\"O Some poorly designed SCSI devices cannot handle being probed for .\"O LUNs not equal to zero. @@ -888,28 +888,28 @@ LUN .\"O .B CONFIG_SCSI_MULTI_LUN .\"O is not set, newer kernels will by default .\"O only probe LUN zero. -À߷פ¬ÉÔ½½Ê¬¤Ê SCSI ¥Ç¥Ð¥¤¥¹¤Ç¤Ï 0 °Ê³°¤Î LUN ÈÖ¹æ¤Ø¤Î¼«Æ°¸¡½Ð¤ò -°·¤¨¤Ê¤¤¤³¤È¤¬¤¢¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +設計が不十分な SCSI デバイスでは 0 以外の LUN 番号への自動検出を +扱えないことがある。 +したがって、コンパイル時に .B CONFIG_SCSI_MULTI_LUN -¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¡¢ -ºÇ¶á¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï LUN ÈÖ¹æ 0 ¤Î¤ß¤ò¸¡½Ð¤¹¤ë¡£ +オプションが指定されていないと、 +最近のカーネルではデフォルトでは LUN 番号 0 のみを検出する。 .\"O To specify the number of probed LUNs at boot, one enters .\"O \&'max_scsi_luns=n' as a boot arg, where n is a number between one and .\"O eight. .\"O To avoid problems as described above, one would use n=1 to .\"O avoid upsetting such broken devices. -µ¯Æ°»þ¤ËÄ´¤Ù¤ë LUN ÈÖ¹æ¤ò»ØÄꤹ¤ë¾ì¹ç¡¢µ¯Æ°»þ°ú¿ô¤È¤·¤Æ -\&'max_scsi_luns=n' ¤ò»ØÄꤹ¤ë¡£n ¤Ï 1 ¤«¤é 8 ¤Î´Ö¤Ç»ØÄꤹ¤ë¡£ -n=1 °Ê¾å¤ÎÃͤò»ÈÍѤ·¤Ê¤¤¤è¤¦¤Ë¤¹¤ì¤Ð¡¢ -¤³¤Î¤è¤¦¤Ê¤¤¤«¤ì¤¿µ¡³£¤Ë¤Ò¤É¤¤Ìܤˤ¢¤ï¤µ¤ì¤º¤Ë¤¹¤à¤À¤í¤¦¡£ +起動時に調べる LUN 番号を指定する場合、起動時引数として +\&'max_scsi_luns=n' を指定する。n は 1 から 8 の間で指定する。 +n=1 以上の値を使用しないようにすれば、 +このようないかれた機械にひどい目にあわされずにすむだろう。 .TP .\"O .B "SCSI tape configuration" -.B SCSI ¥Æ¡¼¥×¥É¥é¥¤¥Ö¤ÎÀßÄê +.B SCSI テープドライブの設定 .\"O Some boot time configuration of the SCSI tape driver can be achieved .\"O by using the following: -SCSI ¥Æ¡¼¥×¥É¥é¥¤¥Ð¤Îµ¯Æ°»þÀßÄê¤Î°ìÉô¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ¹Ô¤Ê¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +SCSI テープドライバの起動時設定の一部は以下のようにして行なうことができる。 .IP .BI st= buf_size[,write_threshold[,max_bufs]] .sp @@ -925,17 +925,17 @@ SCSI .\"O The maximum number of buffers varies .\"O with the number of drives detected, and has a default of two. .\"O An example usage would be: -ºÇ½é¤Î 2 ¤Ä¤Î¿ô»ú¤Ï kB ñ°Ì¤Ç»ØÄꤹ¤ë¡£ +最初の 2 つの数字は kB 単位で指定する。 .I buf_size -¤Î¥Ç¥Õ¥©¥ë¥È¤Ï 32kB ¤Ç¤¢¤ë¡£¾å¸Â¤Ï 16384kB ¤Þ¤Ç»ØÄê¤Ç¤­¤ë¡£ +のデフォルトは 32kB である。上限は 16384kB まで指定できる。 .I write_threshold -¤Ï¥Ç¡¼¥¿½ñ¤­½Ð¤·¤ÎïçÃͤǡ¢ -¥Ð¥Ã¥Õ¥¡¤Î¥Ç¡¼¥¿¤Î¥µ¥¤¥º¤¬¤³¤ÎÃͤò±Û¤¨¤ë¤È¥Ç¡¼¥¿¤Ï¥Æ¡¼¥×¤Ë½ñ¤­½Ð¤µ¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 30kB ¤Ç¤¢¤ë¡£ -¥Ð¥Ã¥Õ¥¡¿ô¤ÎºÇÂçÃÍ +はデータ書き出しの閾値で、 +バッファのデータのサイズがこの値を越えるとデータはテープに書き出される。 +デフォルト値は 30kB である。 +バッファ数の最大値 .RI ( max_bufs ) -¤Ï¸¡½Ð¤µ¤ì¤¿¥É¥é¥¤¥Ö¤Î¿ô¤Ë¤è¤Ã¤ÆÊѲ½¤¹¤ë¤¬¡¢¥Ç¥Õ¥©¥ë¥È¤Ï 2 ¤Ç¤¢¤ë¡£ -»ÈÍÑÎã¤ò°Ê²¼¤Ë¼¨¤¹¡£ +は検出されたドライブの数によって変化するが、デフォルトは 2 である。 +使用例を以下に示す。 .IP st=32,30,2 .IP @@ -944,79 +944,79 @@ st=32,30,2 .\"O (or .\"O .I drivers/scsi/README.st .\"O for older kernels) in the kernel source. -¾ÜºÙ¤Ï¥«¡¼¥Í¥ë¥½¡¼¥¹Æâ¤Î +詳細はカーネルソース内の .I Documentation/scsi/st.txt -(¸Å¤¤¥«¡¼¥Í¥ë¤Î¾ì¹ç¤Ï +(古いカーネルの場合は .IR drivers/scsi/README.st ) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ +に書かれている。 .TP .\"O .B "Adaptec aha151x, aha152x, aic6260, aic6360, SB16-SCSI configuration" -.B Adaptec aha151x, aha152x, aic6260, aic6360, SB16-SCSI ¤ÎÀßÄê +.B Adaptec aha151x, aha152x, aic6260, aic6360, SB16-SCSI の設定 .\"O The aha numbers refer to cards and the aic numbers refer to the actual .\"O SCSI chip on these type of cards, including the Soundblaster-16 SCSI. -aha ¤Ë³¤¯ÈÖ¹æ¤Ï¥«¡¼¥É¤òɽ¤·¡¢ -aic ¤Ë³¤¯ÈÖ¹æ¤Ï¥«¡¼¥É¤ËÅëºÜ¤µ¤ì¤Æ¤¤¤ë¼ÂºÝ¤Î¥Á¥Ã¥×¤òɽ¤¹ -(Soundblaster-16 SCSI ¤â¸å¼Ô¤Ë´Þ¤Þ¤ì¤ë)¡£ +aha に続く番号はカードを表し、 +aic に続く番号はカードに搭載されている実際のチップを表す +(Soundblaster-16 SCSI も後者に含まれる)。 .\"O The probe code for these SCSI hosts looks for an installed BIOS, and .\"O if none is present, the probe will not find your card. .\"O Then you will .\"O have to use a boot arg of the form: -SCSI ¥Û¥¹¥È¤Î¸¡½Ð¥³¡¼¥É¤Ï¡¢ -¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë BIOS ¤òõ¤¹¡£ -¸«¤Ä¤«¤é¤Ê¤¤¤È¡¢¥«¡¼¥É¤Ï¸¡½Ð¤Ç¤­¤Ê¤¤¡£ -¤³¤Î¾ì¹ç¤Ï°Ê²¼¤Î¤è¤¦¤Ëµ¯Æ°»þ°ú¿ô¤ò»ØÄꤹ¤ë¤³¤È¤Ë¤Ê¤ë¡£ +SCSI ホストの検出コードは、 +インストールされている BIOS を探す。 +見つからないと、カードは検出できない。 +この場合は以下のように起動時引数を指定することになる。 .IP .BI aha152x= iobase[,irq[,scsi-id[,reconnect[,parity]]]] .IP .\"O If the driver was compiled with debugging enabled, a sixth .\"O value can be specified to set the debug level. -¤â¤·¥É¥é¥¤¥Ð¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¥Ç¥Ð¥Ã¥°¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¤¤¤¿¾ì¹ç¤Ï¡¢ -6 ÈÖÌܤÎÃͤǥǥХå°¥ì¥Ù¥ë¤ò»ØÄê¤Ç¤­¤ë¡£ +もしドライバのコンパイル時にデバッグオプションを指定していた場合は、 +6 番目の値でデバッグレベルを指定できる。 .\"O All the parameters are as described at the top of this section, and the .\"O .I reconnect .\"O value will allow device disconnect/reconnect if a nonzero value .\"O is used. .\"O An example usage is as follows: -¤¹¤Ù¤Æ¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¡¢¤³¤Î¥»¥¯¥·¥ç¥ó¤ÎºÇ½é¤ÇÀâÌÀ¤·¤¿Ä̤ê¤Ç¤¢¤ë¡£ +すべてのパラメータは、このセクションの最初で説明した通りである。 .I reconnect -¤Ë 0 °Ê³°¤ÎÃͤò»ØÄꤹ¤ë¤È¡¢¥Ç¥Ð¥¤¥¹¤òÀÚÃǤ·¤¿¤êÀܳ¤·¤¿¤ê¤Ç¤­¤ë¡£ -°Ê²¼¤ËÎã¤ò¼¨¤¹¡£ +に 0 以外の値を指定すると、デバイスを切断したり接続したりできる。 +以下に例を示す。 .IP aha152x=0x340,11,7,1 .IP .\"O Note that the parameters must be specified in order, meaning that if .\"O you want to specify a parity setting, then you will have to specify an .\"O iobase, irq, scsi-id and reconnect value as well. -¥Ñ¥é¥á¡¼¥¿¤Ïɬ¤º¾åµ­¤Î½çÈ֤ɤª¤ê¤Ë»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Î㤨¤Ð¡¢¥Ñ¥ê¥Æ¥£ (parity) ¤òÀßÄꤷ¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ -iobase, irq, scsi-id, reconnect ¤âƱ»þ¤Ë»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¡£ +パラメータは必ず上記の順番どおりに指定されなければならない。 +例えば、パリティ (parity) を設定したい場合には、 +iobase, irq, scsi-id, reconnect も同時に指定する必要がある。 .TP .\"O .B "Adaptec aha154x configuration" -.B Adaptec aha154x ¤ÎÀßÄê +.B Adaptec aha154x の設定 .\"O The aha1542 series cards have an i82077 floppy controller onboard, .\"O while the aha1540 series cards do not. .\"O These are busmastering cards, .\"O and have parameters to set the ''fairness'' that is used to share .\"O the bus with other devices. .\"O The boot arg looks like the following. -aha1542 ¥·¥ê¡¼¥º¤Î¥«¡¼¥É¤Ï -i82077 ¥Õ¥í¥Ã¥Ô¡¼¥Ç¥£¥¹¥¯¥³¥ó¥È¥í¡¼¥é¤ò¥Ü¡¼¥É¤ËÅëºÜ¤·¤Æ¤¤¤ë¡£ -°ìÊý aha1540 ¥·¥ê¡¼¥º¤Î¥«¡¼¥É¤ÏÅëºÜ¤·¤Æ¤¤¤Ê¤¤¡£ -¤³¤ì¤é¤Ï¶¦¤Ë¥Ð¥¹¥Þ¥¹¥¿¥«¡¼¥É¤Ç¤¢¤ê¡¢ -¾¤Î¥Ç¥Ð¥¤¥¹¤È¥Ð¥¹¤ò¶¦Í­¤¹¤ëºÝ¤Ë¡¢ -¤É¤Î¤¯¤é¤¤¡Ö¥Õ¥§¥¢¤Ë¡×¿¶¤ëÉñ¤¦¤«¤ò»ØÄꤹ¤ë¥Ñ¥é¥á¡¼¥¿¤¬¤¢¤ë¡£ -µ¯Æ°»þ°ú¿ô¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ»ØÄꤹ¤ë¡£ +aha1542 シリーズのカードは +i82077 フロッピーディスクコントローラをボードに搭載している。 +一方 aha1540 シリーズのカードは搭載していない。 +これらは共にバスマスタカードであり、 +他のデバイスとバスを共有する際に、 +どのくらい「フェアに」振る舞うかを指定するパラメータがある。 +起動時引数は以下のようにして指定する。 .IP .BI aha1542= iobase[,buson,busoff[,dmaspeed]] .IP .\"O Valid iobase values are usually one of: 0x130, 0x134, 0x230, 0x234, .\"O 0x330, 0x334. .\"O Clone cards may permit other values. -Í­¸ú¤Ê iobase ¤ÎÃͤϼ¡¤ÎÄ̤ꡣ -0x130, 0x134, 0x230, 0x234, 0x330, 0x334¡£ -¥¯¥í¡¼¥ó¥«¡¼¥É¤ÎÃæ¤Ë¤Ï¾¤ÎÃͤò»ØÄê¤Ç¤­¤ë¤â¤Î¤â¤¢¤ë¡£ +有効な iobase の値は次の通り。 +0x130, 0x134, 0x230, 0x234, 0x330, 0x334。 +クローンカードの中には他の値を指定できるものもある。 .\"O The .\"O .IR buson ", " busoff @@ -1026,10 +1026,10 @@ i82077 .\"O that other cards (such as an ISA LANCE Ethernet card) have a chance to .\"O get access to the ISA bus. .IR buson ", " busoff -Ãͤϥ«¡¼¥É¤¬ISA ¥Ð¥¹¤òÀêÍ­¤¹¤ë»þ´Ö¤ò¥Þ¥¤¥¯¥íÉÃñ°Ì¤Ç»ØÄꤹ¤ë¡£ -¾Êά»þ¤Ï¤½¤ì¤¾¤ì 11us on ¤È 4us off ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢ -¾¤Î¥«¡¼¥É (Î㤨¤Ð ISA LANCE ¥¤¡¼¥µ¥Í¥Ã¥È¥«¡¼¥É) ¤â -ISA ¥Ð¥¹¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ +値はカードがISA バスを占有する時間をマイクロ秒単位で指定する。 +省略時はそれぞれ 11us on と 4us off になっているので、 +他のカード (例えば ISA LANCE イーサネットカード) も +ISA バスにアクセスできる。 .\"O The .\"O .I dmaspeed @@ -1042,17 +1042,17 @@ ISA .\"O 10MB/s assuming that your motherboard is capable of handling it. .\"O Experiment with caution if using values over 5MB/s. .I dmaspeed -ÃÍ¤Ï DMA (Direct Memory Access) žÁ÷®ÅÙ¤ò MB/s ñ°Ì¤ÇÀßÄꤹ¤ë¡£ -¾Êά»þ¤Ï 5MB/s ¤Ç¤¢¤ë¡£¿·¤·¤¤¥ê¥Ó¥¸¥ç¥ó¤Î¥«¡¼¥É¤Ç¤Ï¡¢ -¤³¤ÎÃͤò»È¤Ã¤¿¥½¥Õ¥È¥¦¥§¥¢¤Ë¤è¤ëÀßÄ꤬¤Ç¤­¤ë¡£ -¸Å¤¤¥«¡¼¥É¤Ï¥¸¥ã¥ó¥ÑÀßÄê¤òɬÍפȤ¹¤ë¡£ -¥Þ¥¶¡¼¥Ü¡¼¥É¤¬Âбþ¤·¤Æ¤¤¤ì¤ÐºÇÂç 10MB/s ¤Þ¤Ç»ØÄê²Äǽ¤Ç¤¢¤ë¡£ -5MB/s °Ê¾å¤ÎÃͤò»È¤¦¾ì¹ç¤ÏÃí°Õ¤·¤Æ¼Â¸³¤·¤Æ¤«¤é¤Ë¤¹¤ë¤³¤È¡£ +値は DMA (Direct Memory Access) 転送速度を MB/s 単位で設定する。 +省略時は 5MB/s である。新しいリビジョンのカードでは、 +この値を使ったソフトウェアによる設定ができる。 +古いカードはジャンパ設定を必要とする。 +マザーボードが対応していれば最大 10MB/s まで指定可能である。 +5MB/s 以上の値を使う場合は注意して実験してからにすること。 .TP .\"O .B "Adaptec aha274x, aha284x, aic7xxx configuration" -.B Adaptec aha274x, aha284x, aic7xxx ¤ÎÀßÄê +.B Adaptec aha274x, aha284x, aic7xxx の設定 .\"O These boards can accept an argument of the form: -¤³¤ì¤é¤Î¥Ü¡¼¥É¤Ï°Ê²¼¤Î·Á¼°¤Ç»ØÄꤹ¤ë¡£ +これらのボードは以下の形式で指定する。 .IP .BI aic7xxx= extended,no_reset .IP @@ -1065,13 +1065,13 @@ ISA .\"O value, if nonzero, tells the driver not to reset the SCSI bus when .\"O setting up the host adapter at boot. .I extended -Ãͤ¬ 0 °Ê³°¤Î»þ¤Ï¡¢ÂçÍÆÎ̥ǥ£¥¹¥¯ÍѤγÈÄ¥ÊÑ´¹¤¬Í­¸ú¤Ë¤Ê¤ë¡£ +値が 0 以外の時は、大容量ディスク用の拡張変換が有効になる。 .I no_reset -Ãͤò 0 °Ê³°¤ÎÃͤˤ¹¤ë¤È¡¢¥Û¥¹¥È¥¢¥À¥×¥¿¤Î¸¡½Ð»þ¤Ë¡¢ -¥É¥é¥¤¥Ð¤Ë¤è¤ë SCSI ¥Ð¥¹¤Î½é´ü²½¤ò¹Ô¤ï¤Ê¤¤¡£ +値を 0 以外の値にすると、ホストアダプタの検出時に、 +ドライバによる SCSI バスの初期化を行わない。 .TP .\"O .B "AdvanSys SCSI Hosts configuration ('advansys=')" -.B "AdvanSys SCSI ¥Û¥¹¥È¥¢¥À¥×¥¿¤ÎÀßÄê ('advansys=')" +.B "AdvanSys SCSI ホストアダプタの設定 ('advansys=')" .\"O The AdvanSys driver can accept up to four i/o addresses that will be .\"O probed for an AdvanSys SCSI card. .\"O Note that these values (if used) do @@ -1083,20 +1083,20 @@ ISA .\"O set by adding an 0xdeb[0-f] parameter. .\"O The 0-f allows setting the .\"O level of the debugging messages to any of 16 levels of verbosity. -AdvanSys ¥É¥é¥¤¥Ð¤Ï¥«¡¼¥É¤Î¸¡½ÐÀè¤È¤·¤Æ -4 ¤Ä¤Î I/O ¥¢¥É¥ì¥¹¤ò¼õ¤±ÉÕ¤±¤ë¡£ -EISA ¤ä PCI ¥«¡¼¥É¤Ç¤Ï¤³¤ì¤é¤ò»ØÄꤷ¤Æ¤âÁ´¤¯¸ú²Ì¤¬Ìµ¤¤¡£ -ISA µÚ¤Ó VLB ¥«¡¼¥É¤Î¸¡½Ð¤ËÂФ·¤Æ¤Î¤ßÍѤ¤¤é¤ì¤ë¡£ -¤µ¤é¤Ë¡¢¥Ç¥Ð¥Ã¥°¥ª¥×¥·¥ç¥óÉÕ¤­¤Ç¥É¥é¥¤¥Ð¤¬¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¥Ç¥Ð¥Ã¥°¾ðÊó¤Î½ÐÎÏ¥ì¥Ù¥ë¤È¤·¤Æ 0xdeb[0-f] ¥Ñ¥é¥á¡¼¥¿¤òÄɲäǤ­¤ë¡£ -0-f ¤Ë¤è¤ê¥Ç¥Ð¥Ã¥°¥á¥Ã¥»¡¼¥¸¤Î¾ðÊó¤Î¥ì¥Ù¥ë¤ò 16 Ãʳ¬¤Ç»ØÄꤹ¤ë¡£ +AdvanSys ドライバはカードの検出先として +4 つの I/O アドレスを受け付ける。 +EISA や PCI カードではこれらを指定しても全く効果が無い。 +ISA 及び VLB カードの検出に対してのみ用いられる。 +さらに、デバッグオプション付きでドライバがコンパイルされている場合、 +デバッグ情報の出力レベルとして 0xdeb[0-f] パラメータを追加できる。 +0-f によりデバッグメッセージの情報のレベルを 16 段階で指定する。 .TP .B "AM53C974" .IP .BI AM53C974= host-scsi-id,target-scsi-id,max-rate,max-offset .TP .\"O .B "BusLogic SCSI Hosts configuration ('BusLogic=')" -.B BusLogic SCSI ¥Û¥¹¥È¥¢¥À¥×¥¿¤ÎÀßÄê ('BusLogic=') +.B BusLogic SCSI ホストアダプタの設定 ('BusLogic=') .IP .BI BusLogic= N1,N2,N3,N4,N5,S1,S2,... .IP @@ -1106,10 +1106,10 @@ ISA .\"O (lines 3149-3270 in the kernel version I am looking at). .\"O The text .\"O below is a very much abbreviated extract. -Buslogic ¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¥Ñ¥é¥á¡¼¥¿¤Ë´Ø¤¹¤ë¾ÜºÙ¤ÊµÄÏÀ¤Ï +Buslogic のコマンドラインパラメータに関する詳細な議論は .I /usr/src/linux/drivers/scsi/BusLogic.c -(Ãø¼Ô¤¬¤¤¤Þ¸«¤Æ¤¤¤ë¥«¡¼¥Í¥ë¤Ç¤Ï 4350-4497 ¹ÔÌÜ) ¤ò»²¾È¤¹¤ë¤³¤È¡£ -°Ê²¼¤Ï¤³¤ì¤òÈó¾ï¤Ë¤ª¤ª¤¶¤Ã¤Ñ¤ËÍ×Ìó¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +(著者がいま見ているカーネルでは 4350-4497 行目) を参照すること。 +以下はこれを非常におおざっぱに要約したものである。 .\"O The parameters N1-N5 are integers. .\"O The parameters S1,... are strings. @@ -1122,46 +1122,46 @@ Buslogic .\"O initiates a SCSI Bus Reset and issuing any SCSI Commands. .\"O N4 is the Local Options (for one Host Adapter). .\"O N5 is the Global Options (for all Host Adapters). -¥Ñ¥é¥á¡¼¥¿ N1 ¤«¤é N5 ¤Þ¤Ç¤ÏÀ°¿ô¤Ç¤¢¤ë¡£ -¥Ñ¥é¥á¡¼¥¿ S1 °Ê¹ß¤Ïʸ»úÎó¤Ç¤¢¤ë¡£ -N1 ¤Ï¥Û¥¹¥È¥¢¥À¥×¥¿¤¬Â¸ºß¤¹¤ë I/O ¥¢¥É¥ì¥¹¡£ -N2 ¤Ï¥¿¥°¥­¥å¡¼¥¤¥ó¥°¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥Ç¥Ð¥¤¥¹¤ËÂФ·¤Æ»ÈÍѤ¹¤ë¥­¥å¡¼¤Î¿¼¤µ¡£ -N3 ¤Ï¥Ð¥¹°ÂÄê»þ´Ö (BST) ¤òÉÃñ°Ì¤Ç»ØÄꤹ¤ë¡£ -¤³¤ì¤Ï¥Û¥¹¥È¥¢¥À¥×¥¿¤Î¥Ï¡¼¥É¥ê¥»¥Ã¥È¤Ë¤è¤ê SCSI ¥Ð¥¹¤ò¥ê¥»¥Ã¥È¤·¤Æ¤«¤é -SCSI ¥³¥Þ¥ó¥É¤Îȯ¹Ô¤ò³«»Ï¤¹¤ë¤Þ¤Ç¤ÎÂÔ¤Á»þ´Ö¤Ç¤¢¤ë¡£ -N4 ¤Ï¥í¡¼¥«¥ë¥ª¥×¥·¥ç¥ó (¤Ò¤È¤Ä¤Î¥Û¥¹¥È¥¢¥À¥×¥¿ÍÑ)¡£ -N5 ¤Ï¥°¥í¡¼¥Ð¥ë¥ª¥×¥·¥ç¥ó (¤¹¤Ù¤Æ¤Î¥Û¥¹¥È¥¢¥À¥×¥¿ÍÑ)¡£ +パラメータ N1 から N5 までは整数である。 +パラメータ S1 以降は文字列である。 +N1 はホストアダプタが存在する I/O アドレス。 +N2 はタグキューイングをサポートするデバイスに対して使用するキューの深さ。 +N3 はバス安定時間 (BST) を秒単位で指定する。 +これはホストアダプタのハードリセットにより SCSI バスをリセットしてから +SCSI コマンドの発行を開始するまでの待ち時間である。 +N4 はローカルオプション (ひとつのホストアダプタ用)。 +N5 はグローバルオプション (すべてのホストアダプタ用)。 .\"O The string options are used to provide control over Tagged Queuing .\"O (TQ:Default, TQ:Enable, TQ:Disable, TQ:), over .\"O Error Recovery (ER:Default, ER:HardReset, ER:BusDeviceReset, .\"O ER:None, ER:), and over Host Adapter Probing .\"O (NoProbe, NoProbeISA, NoSortPCI). -ʸ»úÎ󥪥ץ·¥ç¥ó¤Ï°Ê²¼¤ÎÆ°ºî¤òÀ©¸æ¤¹¤ë: -¥¿¥°¥­¥å¡¼¥¤¥ó¥° (TQ:Default, TQ:Enable, TQ:Disable, TQ:)¡¢ -¥¨¥é¡¼Éüµ¢ (ER:Default, ER:HardReset, ER:BusDeviceReset, -ER:None, ER:)¡¢ -¥Û¥¹¥È¥¢¥À¥×¥¿¤Î¸¡½Ð (NoProbe, NoProbeISA, NoSortPCI)¡£ +文字列オプションは以下の動作を制御する: +タグキューイング (TQ:Default, TQ:Enable, TQ:Disable, TQ:)、 +エラー復帰 (ER:Default, ER:HardReset, ER:BusDeviceReset, +ER:None, ER:)、 +ホストアダプタの検出 (NoProbe, NoProbeISA, NoSortPCI)。 .TP .\"O .B "EATA/DMA configuration" -.B EATA/DMA ¤ÎÀßÄê +.B EATA/DMA の設定 .\"O The default list of i/o ports to be probed can be changed by -¸¡½ÐÂоݤˤ¹¤ë I/O ¥Ý¡¼¥È¤Î¥ê¥¹¥È¤ò°Ê²¼¤Î¤è¤¦¤Ë¤·¤ÆÊѹ¹¤Ç¤­¤ë¡£ +検出対象にする I/O ポートのリストを以下のようにして変更できる。 .IP .BI eata= iobase,iobase,...\fP. .TP .\"O .B "Future Domain TMC-16x0 configuration" -.B Future Domain TMC-16x0 ¤ÎÀßÄê +.B Future Domain TMC-16x0 の設定 .IP .BI fdomain= iobase,irq[,adapter_id] .TP .\"O .B "Great Valley Products (GVP) SCSI controller configuration" -.B Great Valley Products (GVP) SCSI ¥³¥ó¥È¥í¡¼¥é¤ÎÀßÄê +.B Great Valley Products (GVP) SCSI コントローラの設定 .IP .BI gvp11= dma_transfer_bitmask .TP .\"O .B "Future Domain TMC-8xx, TMC-950 configuration" -.B Future Domain À½ TMC-8xx, TMC-950 ¤ÎÀßÄê +.B Future Domain 製 TMC-8xx, TMC-950 の設定 .IP .BI tmc8xx= mem_base,irq .IP @@ -1172,12 +1172,12 @@ ER:None, ER:) .\"O This will usually be one of the following values: .\"O 0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000. .I mem_base -¤Ë¤Ï¥«¡¼¥É¤¬»ÈÍѤ¹¤ë¥á¥â¥ê¥Þ¥Ã¥× I/O ¤ÎÎΰè¤ò»ØÄꤹ¤ë¡£Ä̾ï -¤Ï¼¡¤ÎÃͤΤɤ줫¤¬»È¤ï¤ì¤ë: 0xc8000, 0xca000, 0xcc000, -0xce000, 0xdc000, 0xde000¡£ +にはカードが使用するメモリマップ I/O の領域を指定する。通常 +は次の値のどれかが使われる: 0xc8000, 0xca000, 0xcc000, +0xce000, 0xdc000, 0xde000。 .TP .\"O .B "IN2000 configuration" -.B IN2000 ¤ÎÀßÄê +.B IN2000 の設定 .IP .BI in2000= S .IP @@ -1187,22 +1187,22 @@ ER:None, ER:) .\"O debug:x, proc:x. .\"O For the function of these parameters, see .\"O .IR /usr/src/linux/drivers/scsi/in2000.c . -S ¤Ï¥³¥ó¥Þ¶èÀÚ¤ê¤Îʸ»úÎó¤Ç¡¢³Æ¹àÌÜ¤Ï keyword[:value] ·Á¼°¤Ç»ØÄꤹ¤ë¡£ -»ØÄê¤Ç¤­¤ë¥­¡¼¥ï¡¼¥É¤Ï°Ê²¼¤ÎÄ̤ꡣ -ioport:addr, noreset, nosync:x, period:ns, disconnect:x, debug:x, proc:x¡£ -¤³¤ì¤é¤Î¥Ñ¥é¥á¡¼¥¿¤Îµ¡Ç½¤Ë¤Ä¤¤¤Æ¤Ï +S はコンマ区切りの文字列で、各項目は keyword[:value] 形式で指定する。 +指定できるキーワードは以下の通り。 +ioport:addr, noreset, nosync:x, period:ns, disconnect:x, debug:x, proc:x。 +これらのパラメータの機能については .I /usr/src/linux/drivers/scsi/in2000.c -¤ò»²¾È¡£ +を参照。 .TP .\"O .B "NCR5380 and NCR53C400 configuration" -.B NCR5380 ¤ª¤è¤Ó NCR53C400 ¤ÎÀßÄê +.B NCR5380 および NCR53C400 の設定 .\"O The boot arg is of the form -¤³¤Îµ¯Æ°»þ°ú¿ô¤Ï°Ê²¼¤Î½ñ¼°¤Ç»ØÄꤹ¤ë¡£ +この起動時引数は以下の書式で指定する。 .IP .BI ncr5380= iobase,irq,dma .IP .\"O or -¤Þ¤¿¤Ï +または .IP .BI ncr53c400= iobase,irq .IP @@ -1214,17 +1214,17 @@ ioport:addr, noreset, nosync:x, period:ns, disconnect:x, debug:x, proc:x .\"O (or .\"O .I drivers/scsi/README.g_NCR5380 .\"O for older kernels) in the kernel source. -¥«¡¼¥É¤¬ IRQ ¤ò»ÈÍѤ·¤Ê¤¤¾ì¹ç¤Ï¡¢ -255 (0xff) ¤ò»ØÄꤹ¤ì¤Ð̵¸ú¤Ë¤Ç¤­¤ë¡£ -IRQ ¤Ë 254 ¤ò»ØÄꤹ¤ë¤È¼«Æ°¸¡½Ð¤¹¤ë¡£ -¾ÜºÙ¤Ï¥«¡¼¥Í¥ë¥½¡¼¥¹Æâ¤Î +カードが IRQ を使用しない場合は、 +255 (0xff) を指定すれば無効にできる。 +IRQ に 254 を指定すると自動検出する。 +詳細はカーネルソース内の .I Documentation/scsi/g_NCR5380.txt -(¸Å¤¤¥«¡¼¥Í¥ë¤Î¾ì¹ç¤Ï +(古いカーネルの場合は .IR drivers/scsi/README.g_NCR5380 ) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ +に書かれている。 .TP .\"O .B "NCR53C8xx configuration" -.B NCR53C8xx ¤ÎÀßÄê +.B NCR53C8xx の設定 .IP .BI ncr53c8xx= S .IP @@ -1235,35 +1235,35 @@ IRQ .\"O verb (verbose), debug (debug), burst (burst_max). .\"O For the function of the assigned values, see .\"O .IR /usr/src/linux/drivers/scsi/ncr53c8xx.c . -S ¤Ï¥³¥ó¥Þ¶èÀÚ¤ê¤Îʸ»úÎó¤Ç¡¢³Æ¹àÌÜ¤Ï keyword[:value] ·Á¼°¤Ç»ØÄꤹ¤ë¡£ -»ØÄê¤Ç¤­¤ë¥­¡¼¥ï¡¼¥É¤Ï°Ê²¼¤ÎÄ̤ꡣ +S はコンマ区切りの文字列で、各項目は keyword[:value] 形式で指定する。 +指定できるキーワードは以下の通り。 mpar (master_parity), spar (scsi_parity), disc (disconnection), specf (special_features), ultra (ultra_scsi), fsn (force_sync_nego), tags (default_tags), sync (default_sync), -verb (verbose), debug (debug), burst (burst_max)¡£ -¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Îµ¡Ç½¤Ë¤Ä¤¤¤Æ¤Ï +verb (verbose), debug (debug), burst (burst_max)。 +これらのオプションの機能については .I /usr/src/linux/drivers/scsi/README.ncr53c8xx -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .TP .\"O .B "NCR53c406a configuration" -.B NCR53c406a ¤ÎÀßÄê +.B NCR53c406a の設定 .IP .BI ncr53c406a= iobase[,irq[,fastpio]] .IP .\"O Specify irq = 0 for noninterrupt driven mode. .\"O Set fastpio = 1 for fast pio mode, 0 for slow mode. -³ä¤ê¹þ¤ß̵¤·¤ÇÆ°ºî¤¹¤ë¥â¡¼¥É¤Ë¤Ï irq ¤Ë 0 ¤ò»ØÄꤹ¤ë¡£ -¹â® PIO ¥â¡¼¥É¤Ï fastpio ¤Ë 1 ¤ò»ØÄꤷ¡¢Ä㮥⡼¥É¤Ï 0 ¤ò»ØÄꤹ¤ë¡£ +割り込み無しで動作するモードには irq に 0 を指定する。 +高速 PIO モードは fastpio に 1 を指定し、低速モードは 0 を指定する。 .TP .\"O .B "Pro Audio Spectrum configuration" -.B Pro Audio Spectrum ¤ÎÀßÄê +.B Pro Audio Spectrum の設定 .\"O The PAS16 uses a NC5380 SCSI chip, and newer models support .\"O jumperless configuration. .\"O The boot arg is of the form: -PAS16 ¤Ï NC5380 SCSI ¥Á¥Ã¥×¤ò»ÈÍѤ·¤Æ¤ª¤ê¡¢ -ºÇ¶á¤Î¥â¥Ç¥ë¤Ï¥¸¥ã¥ó¥Ñ¥ì¥¹¤ÎÀßÄê¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -µ¯Æ°»þ°ú¿ô¤Î½ñ¼°¤Ï°Ê²¼¤ÎÄ̤ꡣ +PAS16 は NC5380 SCSI チップを使用しており、 +最近のモデルはジャンパレスの設定をサポートしている。 +起動時引数の書式は以下の通り。 .IP .BI pas16= iobase,irq .IP @@ -1271,16 +1271,16 @@ PAS16 .\"O will tell the driver to work without using interrupts, albeit at a .\"O performance loss. .\"O The iobase is usually 0x388. -Í£°ì¤Î°ã¤¤¤È¤·¤Æ¡¢ -IRQ ¤Ë 255 ¤ò»ØÄꤹ¤ì¤Ð³ä¤ê¹þ¤ß¤ò»ÈÍѤ·¤Ê¤¤¤è¤¦¥É¥é¥¤¥Ð¤Ë»Ø¼¨¤Ç¤­¤ë -(¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤ÏÄã²¼¤¹¤ë)¡£ -Ä̾ï iobase ¤Ï 0x388 ¤Ç¤¢¤ë¡£ +唯一の違いとして、 +IRQ に 255 を指定すれば割り込みを使用しないようドライバに指示できる +(パフォーマンスは低下する)。 +通常 iobase は 0x388 である。 .TP .\"O .B "Seagate ST-0x configuration" -.B Seagate À½ ST-0x ¤ÎÀßÄê +.B Seagate 製 ST-0x の設定 .\"O If your card is not detected at boot time, .\"O you will then have to use a boot arg of the form: -¥«¡¼¥É¤¬µ¯Æ°»þ¤Ëǧ¼±¤µ¤ì¤Ê¤¤¾ì¹ç¤Ï°Ê²¼¤Î¤è¤¦¤Ê»ØÄ꤬ɬÍפˤʤë¤À¤í¤¦¡£ +カードが起動時に認識されない場合は以下のような指定が必要になるだろう。 .IP .BI st0x= mem_base,irq .IP @@ -1291,39 +1291,39 @@ IRQ .\"O This will usually be one of the following values: .\"O 0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000. .I mem_base -¤Ë¤Ï¥«¡¼¥É¤¬»ÈÍѤ¹¤ë¥á¥â¥ê¥Þ¥Ã¥× I/O ¤ÎÎΰè¤ò»ØÄꤹ¤ë¡£ -Ä̾ï¤Ï¼¡¤Î¤É¤ì¤«: -0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000¡£ +にはカードが使用するメモリマップ I/O の領域を指定する。 +通常は次のどれか: +0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000。 TP .\"O .B "Trantor T128 configuration" -.B Trantor À½ T128 ¤ÎÀßÄê +.B Trantor 製 T128 の設定 .\"O These cards are also based on the NCR5380 chip, and accept the .\"O following options: -¤³¤Î¥«¡¼¥É¤â NCR5380 ¥Á¥Ã¥×¤òÍøÍѤ·¤Æ¤ª¤ê¡¢ -°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤ò¼õ¤±ÉÕ¤±¤ë¡£ +このカードも NCR5380 チップを利用しており、 +以下のオプションを受け付ける。 .IP .BI t128= mem_base,irq .IP .\"O The valid values for .\"O .I mem_base .\"O are as follows: 0xcc000, 0xc8000, 0xdc000, 0xd8000. -Í­¸ú¤Ê +有効な .I mem_base -¤ÎÃͤϼ¡¤ÎÄ̤ê¤Ç¤¢¤ë: 0xcc000, 0xc8000, 0xdc000, 0xd8000¡£ +の値は次の通りである: 0xcc000, 0xc8000, 0xdc000, 0xd8000。 .TP .\"O .B "UltraStor 14F/34F configuration" -.B UltraStor À½ 14F/34F ¤ÎÀßÄê +.B UltraStor 製 14F/34F の設定 .\"O The default list of i/o ports to be probed can be changed by -¼«Æ°¸¡½Ð¤ò»î¤ß¤ë I/O ¥Ý¡¼¥È¤Î¥ê¥¹¥È¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤·¤ÆÊѹ¹¤Ç¤­¤ë¡£ +自動検出を試みる I/O ポートのリストは以下のようにして変更できる。 .IP .BI eata= iobase,iobase,... . .TP .\"O .B "WD7000 configuration" -.B WD7000 ¤ÎÀßÄê +.B WD7000 の設定 .IP .BI wd7000= irq,dma,iobase .\"O .SS "Commodore Amiga A2091/590 SCSI controller configuration" -.SS Commodore Amiga À½ A2091/590 SCSI ¥³¥ó¥È¥í¡¼¥é¤ÎÀßÄê +.SS Commodore Amiga 製 A2091/590 SCSI コントローラの設定 .IP .BI wd33c93= S .IP @@ -1333,35 +1333,35 @@ TP .\"O clock:x, next. .\"O For details, see .\"O .IR /usr/src/linux/drivers/scsi/wd33c93.c . -S ¤Ï¥³¥ó¥Þ¶èÀÚ¤ê¤Îʸ»úÎó¤Ç¡¢³Æ¹àÌÜ¤Ï keyword[:value] ·Á¼°¤Ç»ØÄꤹ¤ë¡£ -ǧ¼±¤µ¤ì¤ë¥ª¥×¥·¥ç¥ó¤Ï°Ê²¼¤ÎÄ̤ꡣ +S はコンマ区切りの文字列で、各項目は keyword[:value] 形式で指定する。 +認識されるオプションは以下の通り。 nosync:bitmask, nodma:x, period:ns, -disconnect:x, debug:x, clock:x, next¡£ -¾ÜºÙ¤Ï +disconnect:x, debug:x, clock:x, next。 +詳細は .I /usr/src/linux/drivers/scsi/wd33c93.c -¤ò»²¾È¤»¤è¡£ +を参照せよ。 .\"O .SS "Hard Disks" -.SS ¥Ï¡¼¥É¥Ç¥£¥¹¥¯ +.SS ハードディスク .TP .\"O .B "IDE Disk/CD-ROM Driver Parameters" -.B "IDE Disk/CD-ROM ¥É¥é¥¤¥Ð¤Î¥Ñ¥é¥á¡¼¥¿" +.B "IDE Disk/CD-ROM ドライバのパラメータ" .\"O The IDE driver accepts a number of parameters, which range from disk .\"O geometry specifications, to support for broken controller chips. .\"O Drive specific options are specified by using 'hdX=' with X in 'a'-'h'. -IDE ¥É¥é¥¤¥Ð¤Ï¡¢ -¥Ç¥£¥¹¥¯¤Î¥¸¥ª¥á¥È¥ê»ØÄ꤫¤é¥Ð¥°¤Î¤¢¤ë¥³¥ó¥È¥í¡¼¥é¥Á¥Ã¥×¤Î¥µ¥Ý¡¼¥È¤Þ¤Ç¡¢ -¿ô¿¤¯¤Î¥Ñ¥é¥á¡¼¥¿¤ò¼õ¤±ÉÕ¤±¤ë¡£ -¥É¥é¥¤¥Ö¤òÆÃÄꤹ¤ë¤Ë¤Ï 'hdX=' ¤ò»È¤¦¡£ -¤³¤³¤Ç X ¤Ë¤Ï 'a' ¤«¤é 'h' ¤Îʸ»ú¤ò»ØÄꤹ¤ë¡£ +IDE ドライバは、 +ディスクのジオメトリ指定からバグのあるコントローラチップのサポートまで、 +数多くのパラメータを受け付ける。 +ドライブを特定するには 'hdX=' を使う。 +ここで X には 'a' から 'h' の文字を指定する。 .\"O Non-drive specific options are specified with the prefix 'hd='. .\"O Note that using a drive specific prefix for a non-drive specific option .\"O will still work, and the option will just be applied as expected. -¤¢¤ë¥É¥é¥¤¥Ö¤ËÆÃÍ­¤Ê¤â¤Î¤Ç¤Ï¤Ê¤¤¥ª¥×¥·¥ç¥ó¤Ï¡¢hd= ¤òÁ°¤ËÉÕ¤±¤Æ»ØÄꤹ¤ë¡£ -¥É¥é¥¤¥ÖÆÃÍ­¤Ç¤Ê¤¤¥ª¥×¥·¥ç¥ó¤ËÂФ·¤Æ¥É¥é¥¤¥Ö»ØÄê -('hdX=') ¤òÁ°ÃÖ¤·¤Æ¤âÌäÂê¤Ï¤Ê¤¤¡£ -¤½¤Î¥ª¥×¥·¥ç¥ó¤Ï´üÂÔÄ̤ꤽ¤Î¥É¥é¥¤¥Ö¤ËŬÍѤµ¤ì¤ë¡£ -.\"nakano ¤È¤¤¤¦¤Î¤¬ "as expected" ¤À¤È»×¤¦¤ó¤À¤±¤É... +あるドライブに特有なものではないオプションは、hd= を前に付けて指定する。 +ドライブ特有でないオプションに対してドライブ指定 +('hdX=') を前置しても問題はない。 +そのオプションは期待通りそのドライブに適用される。 +.\"nakano というのが "as expected" だと思うんだけど... .\"O Also note that 'hd=' can be used to refer to the next unspecified .\"O drive in the (a, ..., h) sequence. @@ -1372,17 +1372,17 @@ IDE .\"O (or .\"O .I drivers/block/README.ide .\"O for older kernels) in the kernel source for more details. -\&'hd=' ¤Ï¡¢(a, ..., h) ¤Î¥·¡¼¥±¥ó¥¹¤Ë¤ª¤¤¤Æ¡¢ -¤Þ¤À»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¼¡¤Î¥É¥é¥¤¥Ö¤ò»Ø¤¹¤¿¤á¤Ë¤â»È¤¨¤ë¡£ -¤³¤ì°Ê¹ß¤Ç¤Ï´Êñ¤Î¤¿¤á¤Ë 'hd=' ¤ò»È¤Ã¤ÆÀâÌÀ¤¹¤ë¡£ -¤µ¤é¤Ë¾Ü¤·¤¤¾ðÊó¤òÆÀ¤ë¤Ë¤Ï¡¢¥«¡¼¥Í¥ë¥½¡¼¥¹Æâ¤Î +\&'hd=' は、(a, ..., h) のシーケンスにおいて、 +まだ指定されていない次のドライブを指すためにも使える。 +これ以降では簡単のために 'hd=' を使って説明する。 +さらに詳しい情報を得るには、カーネルソース内の .I Documentation/ide.txt -(¸Å¤¤¥«¡¼¥Í¥ë¤Î¾ì¹ç¤Ï +(古いカーネルの場合は .IR drivers/block/README.ide ) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .TP .\"O .B "The 'hd=cyls,heads,sects[,wpcom[,irq]]' options" -.B 'hd=cyls,heads,sects[,wpcom[,irq]]' ¥ª¥×¥·¥ç¥ó +.B 'hd=cyls,heads,sects[,wpcom[,irq]]' オプション .\"O These options are used to specify the physical geometry of the disk. .\"O Only the first three values are required. .\"O The cylinder/head/sectors @@ -1392,83 +1392,83 @@ IDE .\"O The IRQ value specified will be the IRQ .\"O used for the interface that the drive resides on, and is not really a .\"O drive-specific parameter. -¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥£¥¹¥¯¤ÎʪÍýŪ¤Ê¥¸¥ª¥á¥È¥ê¤ò»ØÄꤹ¤ë¤¿¤á¤Ë»È¤¦¡£ -ºÇ½é¤Î 3 ¤Ä¤ÎÃͰʹߤϾÊά¤Ç¤­¤ë¡£ -¥·¥ê¥ó¥À (cyls)¡¢¥Ø¥Ã¥É (heads)¡¢¥»¥¯¥¿ (sects) ¤Î³ÆÃÍ¤Ï -fdisk ¤ÇÍѤ¤¤é¤ì¤ë¤â¤Î¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -½ñ¤­¹þ¤ßÊäÀµ (wpcom) ÃÍ¤Ï IDE ¥Ç¥£¥¹¥¯¤Ç¤Ï̵»ë¤µ¤ì¤ë¡£ -IRQ Ãͤˤϡ¢¤½¤Î¥É¥é¥¤¥Ö¤¬Àܳ¤µ¤ì¤Æ¤¤¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ÍѤ¤¤ë -IRQ ¤ò»ØÄꤹ¤ë -(ËÜÍè¤Î°ÕÌ£¤Ç¤Ï¡Ö¥É¥é¥¤¥Ö¤ËÆÃÍ­¡×¤Î¥Ñ¥é¥á¡¼¥¿¤Ç¤Ï¤Ê¤¤)¡£ +これらのオプションはディスクの物理的なジオメトリを指定するために使う。 +最初の 3 つの値以降は省略できる。 +シリンダ (cyls)、ヘッド (heads)、セクタ (sects) の各値は +fdisk で用いられるものと同じである。 +書き込み補正 (wpcom) 値は IDE ディスクでは無視される。 +IRQ 値には、そのドライブが接続されているインターフェースが用いる +IRQ を指定する +(本来の意味では「ドライブに特有」のパラメータではない)。 .TP .\"O .B "The 'hd=serialize' option" -.B 'hd=serialize' ¥ª¥×¥·¥ç¥ó +.B 'hd=serialize' オプション .\"O The dual IDE interface CMD-640 chip is broken as designed such that .\"O when drives on the secondary interface are used at the same time as .\"O drives on the primary interface, it will corrupt your data. .\"O Using this .\"O option tells the driver to make sure that both interfaces are never .\"O used at the same time. -¥Ç¥å¥¢¥ë IDE ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¢¤ë CMD-640 ¥Á¥Ã¥×¤Ë¤ÏÀß·×¾å¤ÎÌäÂ꤬¤¢¤Ã¤Æ¡¢ -¥»¥«¥ó¥À¥ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¾å¤Î¥É¥é¥¤¥Ö¤È -¥×¥é¥¤¥Þ¥ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¾å¤Î¥É¥é¥¤¥Ö¤ò -Ʊ»þ¤Ë»ÈÍѤ¹¤ë¤È¥Ç¡¼¥¿¤¬Ç˲õ¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¤È¡¢ -¥É¥é¥¤¥Ð¤ÏξÊý¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ -Ʊ»þ¤Ë»ÈÍѤµ¤ì¤ë¤³¤È¤¬ÀäÂФˤʤ¤¤è¤¦¤Ë¤¹¤ë¡£ +デュアル IDE インターフェースである CMD-640 チップには設計上の問題があって、 +セカンダリインターフェース上のドライブと +プライマリインターフェース上のドライブを +同時に使用するとデータが破壊されることがある。 +このオプションを使用すると、 +ドライバは両方のインターフェースが +同時に使用されることが絶対にないようにする。 .TP .\"O .B "The 'hd=dtc2278' option" -.B 'hd=dtc2278' ¥ª¥×¥·¥ç¥ó +.B 'hd=dtc2278' オプション .\"O This option tells the driver that you have a DTC-2278D IDE interface. .\"O The driver then tries to do DTC-specific operations to enable the .\"O second interface and to enable faster transfer modes. -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢DTC-2278D IDE ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬»È¤ï¤ì¤Æ¤¤¤ë -¤³¤È¤ò¥É¥é¥¤¥Ð¤ËÅÁ¤¨¤ë¡£ -¤¹¤ë¤È¥É¥é¥¤¥Ð¤Ï¡¢DTC ÆÃÍ­¤Îµ¡Ç½ -(2 ÈÖÌܤΥ¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤È¹â®žÁ÷¥â¡¼¥É) -¤ò»ÈÍѲÄǽ¤Ë¤¹¤ë¤è¤¦»î¤ß¤ë¡£ +このオプションは、DTC-2278D IDE インターフェースが使われている +ことをドライバに伝える。 +するとドライバは、DTC 特有の機能 +(2 番目のインターフェースと高速転送モード) +を使用可能にするよう試みる。 .TP .\"O .B "The 'hd=noprobe' option" -.B 'hd=noprobe' ¥ª¥×¥·¥ç¥ó +.B 'hd=noprobe' オプション .\"O Do not probe for this drive. .\"O For example, -¤³¤Î¥É¥é¥¤¥Ö¤Î¼«Æ°¸¡½Ð¤ò¤·¤Ê¤¤¡£ -Î㤨¤Ð +このドライブの自動検出をしない。 +例えば .IP hdb=noprobe hdb=1166,7,17 .IP .\"O would disable the probe, but still specify the drive geometry so .\"O that it would be registered as a valid block device, and hence .\"O usable. -¤È¤¹¤ë¤È¼«Æ°¸¡½Ð¤¬Ìµ¸ú¤Ë¤Ê¤ë¡£ -¤·¤«¤·¥É¥é¥¤¥Ö¤Î¥¸¥ª¥á¥È¥ê¤ò»ØÄꤷ¤Æ¤¤¤ë¤Î¤Ç¡¢ -¤³¤Î¥É¥é¥¤¥Ö¤ÏÀµ¤·¤¤¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤È¤·¤ÆÅÐÏ¿¤µ¤ì¡¢»ÈÍѲÄǽ¤Ë¤Ê¤ë¡£ +とすると自動検出が無効になる。 +しかしドライブのジオメトリを指定しているので、 +このドライブは正しいブロックデバイスとして登録され、使用可能になる。 .TP .\"O .B "The 'hd=nowerr' option" -.B 'hd=nowerr' ¥ª¥×¥·¥ç¥ó +.B 'hd=nowerr' オプション .\"O Some drives apparently have the .\"O .B WRERR_STAT .\"O bit stuck on permanently. .\"O This enables a work-around for these broken devices. -¥É¥é¥¤¥Ö¤Ë¤è¤Ã¤Æ¤Ï¡¢½ñ¤­¹þ¤ß¥¨¥é¡¼ +ドライブによっては、書き込みエラー .RB ( WRERR_STAT ) -¥Ó¥Ã¥È¤¬¥¯¥ê¥¢¤Ç¤­¤Ê¤¯¤Ê¤ë¤³¤È¤¬¤¢¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢ -¤³¤Î¤è¤¦¤Ê²õ¤ì¤¿¥Ç¥Ð¥¤¥¹¤ËÂФ¹¤ë²óÈòµ¡Ç½¤¬Í­¸ú¤Ë¤Ê¤ë¡£ +ビットがクリアできなくなることがある。 +このオプションを指定すると、 +このような壊れたデバイスに対する回避機能が有効になる。 .TP .\"O .B "The 'hd=cdrom' option" -.B "'hd=cdrom' ¥ª¥×¥·¥ç¥ó" +.B "'hd=cdrom' オプション" .\"O This tells the IDE driver that there is an ATAPI compatible CD-ROM .\"O attached in place of a normal IDE hard disk. .\"O In most cases the CD-ROM .\"O is identified automatically, but if it isn't then this may help. -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢Ä̾ï¤Î IDE ¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤ÎÂå¤ï¤ê¤Ë¡¢ -ATAPI ¸ß´¹¤Î CDROM ¤¬Â³¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò IDE ¥É¥é¥¤¥Ð¤ËÅÁ¤¨¤ë¡£ -CD-ROM ¤Ï¤¿¤¤¤Æ¤¤¼«Æ°Åª¤Ëǧ¼±¤µ¤ì¤ë¤¬¡¢ -¤¦¤Þ¤¯¹Ô¤«¤Ê¤¤¾ì¹ç¤Ë»î¤·¤Æ¤ß¤ë¤ÈÎɤ¤¡£ +このオプションは、通常の IDE ハードディスクの代わりに、 +ATAPI 互換の CDROM が続されていることを IDE ドライバに伝える。 +CD-ROM はたいてい自動的に認識されるが、 +うまく行かない場合に試してみると良い。 .TP .\"O .B "Standard ST-506 Disk Driver Options ('hd=')" -.B ¥¹¥¿¥ó¥À¡¼¥É ST-506 ¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ð¤Î¥ª¥×¥·¥ç¥ó ('hd=') +.B スタンダード ST-506 ディスクドライバのオプション ('hd=') .\"O The standard disk driver can accept geometry arguments for the disks .\"O similar to the IDE driver. .\"O Note however that it only expects three @@ -1476,29 +1476,29 @@ CD-ROM .\"O Also, it only accepts 'hd=' as an argument, that is, 'hda=' .\"O and so on are not valid here. .\"O The format is as follows: -¥¹¥¿¥ó¥À¡¼¥É¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ð¤Ï -IDE ¥É¥é¥¤¥Ð¤ÈƱÍͤΥ¸¥ª¥á¥È¥ê»ØÄê¤ò°ú¿ô¤Ë¤È¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤¿¤À¤·¼õ¤±ÉÕ¤±¤ëÃͤϤÁ¤ç¤¦¤É 3 ¤Ä (C/H/S) ¤Ë¸Â¤é¤ì¤ë¡£ -¤½¤ì°Ê¾å¤ÎÃͤ䤽¤ì°Ê²¼¤ÎÃͤò»ØÄꤹ¤ë¤È¡¢¥É¥é¥¤¥Ð¤ÏÌۤäƤ½¤Î»ØÄê¤ò̵»ë¤¹¤ë¡£ -¤Þ¤¿°ú¿ô¤È¤·¤Æ¼õ¤±Æþ¤ì¤é¤ì¤ë¤Î¤Ï 'hd=' ¤Î·Á¼°¤À¤±¤Ç¤¢¤ë¡£ -¤Ä¤Þ¤ê 'hda=' ¤Î¤è¤¦¤Ê»ØÄê¤Ï¤³¤³¤Ç¤ÏÀµ¤·¤¯¤Ê¤¤¡£ -½ñ¼°¤Ï¼¡¤ÎÄ̤ꡣ +スタンダードディスクドライバは +IDE ドライバと同様のジオメトリ指定を引数にとることができる。 +ただし受け付ける値はちょうど 3 つ (C/H/S) に限られる。 +それ以上の値やそれ以下の値を指定すると、ドライバは黙ってその指定を無視する。 +また引数として受け入れられるのは 'hd=' の形式だけである。 +つまり 'hda=' のような指定はここでは正しくない。 +書式は次の通り。 .IP hd=cyls,heads,sects .IP .\"O If there are two disks installed, the above is repeated with the .\"O geometry parameters of the second disk. -2 Âæ¤Î¥Ç¥£¥¹¥¯¤¬Àܳ¤µ¤ì¤Æ¤¤¾ì¹ç¤Ï¡¢ -2 ÈÖÌܤΥǥ£¥¹¥¯¤ËÂФ·¤Æ¤â¾åµ­¤Î¥¸¥ª¥á¥È¥ê¤¬ÀßÄꤵ¤ì¤ë¡£ +2 台のディスクが接続されてい場合は、 +2 番目のディスクに対しても上記のジオメトリが設定される。 .TP .\"O .B "XT Disk Driver Options ('xd=')" -.B XT ¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ð¤Î¥ª¥×¥·¥ç¥ó ('xd=') +.B XT ディスクドライバのオプション ('xd=') .\"O If you are unfortunate enough to be using one of these old 8 bit cards .\"O that move data at a whopping 125kB/s then here is the scoop. .\"O If the card is not recognized, you will have to use a boot arg of the form: -¤³¤ì¤é¤Î¸Å¤¤ 8 bit ¥«¡¼¥É (125kB/s ¤ÎžÁ÷®ÅÙ¤·¤«¤Ê¤¤!) -¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ÉÔ¹¬¤Ê¿Í¤Î¤¿¤á¤Î¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë¡£ -¥«¡¼¥É¤¬Ç§¼±¤µ¤ì¤Ê¤¤¾ì¹ç¤Ï°Ê²¼¤Î½ñ¼°¤Çµ¯Æ°»þ°ú¿ô¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¤À¤í¤¦¡£ +これらの古い 8 bit カード (125kB/s の転送速度しかない!) +を使わなければならない不幸な人のためのオプションである。 +カードが認識されない場合は以下の書式で起動時引数を指定する必要があるだろう。 .IP xd=type,irq,iobase,dma_chan .IP @@ -1517,23 +1517,23 @@ xd=type,irq,iobase,dma_chan .\"O 0=generic; 1=DTC 5150cx; 2,3=DTC 5150x; 4,5=Western Digital; .\"O 6,7,8=Seagate; 9=Omti; 10=XEBEC, and where here several types are .\"O given with the same designation, they are equivalent. -type Ãͤˤϥ«¡¼¥É¤Î¥á¡¼¥«¡¼¤ò»ØÄꤷ¡¢¤³¤ì¤Ï¼«Æ°¸¡ÃΤè¤êÍ¥À褵¤ì¤ë¡£ -»ØÄꤹ¤Ù¤­ type ¤ÎÃͤˤĤ¤¤Æ¤Ï¡¢»È¤Ã¤Æ¤¤¤ë¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë +type 値にはカードのメーカーを指定し、これは自動検知より優先される。 +指定すべき type の値については、使っているカーネルのソースファイル .I drivers/block/xd.c -¤òÄ´¤Ù¤Æ¤Û¤·¤¤¡£type ¤Ï¥ê¥¹¥È +を調べてほしい。type はリスト .I xd_sigs -¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¡¢Îò»Ë¤È¶¦¤ËÄɲ䵤줿¤êºï½ü¤µ¤ì¤¿¤ê¤·¤Æ¤­¤¿¡£ -¥ê¥¹¥È¤ÎÅÓÃæ¤Ç¤ÎÄɲᦺï½ü¤â¹Ô¤ï¤ì¤¿¤Î¤Ç¡¢ -¤½¤Î¾ì¹ç¤Ï¤¹¤Ù¤Æ¤Î type Èֹ椬Êѹ¹¤µ¤ì¤¿¡£ -º£Æü (Linux 2.5.0) ¤Ë¤ª¤±¤ë type ¤Ï¡¢ +のインデックスで、歴史と共に追加されたり削除されたりしてきた。 +リストの途中での追加・削除も行われたので、 +その場合はすべての type 番号が変更された。 +今日 (Linux 2.5.0) における type は、 0=generic; 1=DTC 5150cx; 2,3=DTC 5150x; 4,5=Western Digital; -6,7,8=Seagate; 9=Omti; 10=XEBEC ¤Ç¤¢¤ë¡£ -¤³¤³¤Ç¤Ï¤¤¤¯¤Ä¤«¤Î type ¤ËƱ¤¸»ØÄ꤬Ϳ¤¨¤é¤ì¤Æ¤¤¤ë¤¬¡¢ -¤½¤ì¤é¤ÏÅù²Á¤Ç¤¢¤ë¡£ +6,7,8=Seagate; 9=Omti; 10=XEBEC である。 +ここではいくつかの type に同じ指定が与えられているが、 +それらは等価である。 -0=¥Î¡¼¥Ö¥é¥ó¥É¡¢1=DTC¡¢2,3,4=Western Digital¡¢5,6,7=Seagate¡¢8=OMTI -Ʊ¤¸¥á¡¼¥«¡¼¤ËÊ£¿ô¤ÎÃͤ¬¤¢¤ë¤Î¤Ï¸¡½Ð¤Ë»ÈÍѤµ¤ì¤ë BIOS ʸ»úÎó¤Î°ã¤¤¤Ç¤¢¤ë¡£ -BIOS ʸ»úÎó¤Ï type ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£ +0=ノーブランド、1=DTC、2,3,4=Western Digital、5,6,7=Seagate、8=OMTI +同じメーカーに複数の値があるのは検出に使用される BIOS 文字列の違いである。 +BIOS 文字列は type が指定された場合には使用されない。 .\"O The xd_setup() function does no checking on the values, and assumes .\"O that you entered all four values. @@ -1541,51 +1541,51 @@ BIOS ʸ .\"O Here is an .\"O example usage for a WD1002 controller with the BIOS disabled/removed, .\"O using the 'default' XT controller parameters: -xd_setup() ´Ø¿ô¤Ï°ú¿ô¤ò¥Á¥§¥Ã¥¯¤»¤º¡¢ -4 ¤Ä¤ÎÃͤ¬¤¹¤Ù¤Æ»ØÄꤵ¤ì¤ë¤³¤È¤òÁÛÄꤷ¤Æ¤¤¤ë¡£ -°ú¿ô¤ò¾Êά¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -Îã¤È¤·¤Æ¡¢BIOS ¤¬Ìµ¸ú¤Ë¤µ¤ì¤¿ (¤¢¤ë¤¤¤Ïºï½ü¤µ¤ì¤¿) -WD1002 ¥³¥ó¥È¥í¡¼¥é¤Î¾ì¹ç¤ò¼¨¤¹ -(¥Ñ¥é¥á¡¼¥¿¤Ë¤Ï XT ¥³¥ó¥È¥í¡¼¥é¤Î¡Ö¥Ç¥Õ¥©¥ë¥È¡×¤ÎÃͤò»È¤Ã¤Æ¤¤¤ë)¡£ +xd_setup() 関数は引数をチェックせず、 +4 つの値がすべて指定されることを想定している。 +引数を省略してはならない。 +例として、BIOS が無効にされた (あるいは削除された) +WD1002 コントローラの場合を示す +(パラメータには XT コントローラの「デフォルト」の値を使っている)。 .IP xd=2,5,0x320,3 .TP .\"O .B "Syquest's EZ* removable disks" -.B Syquest À½ EZ* ¥ê¥à¡¼¥Ð¥Ö¥ë¥Ç¥£¥¹¥¯ +.B Syquest 製 EZ* リムーバブルディスク .IP .BI ez= iobase[,irq[,rep[,nybble]]] .\"O .SS "IBM MCA Bus Devices" -.SS "IBM MCA ¥Ð¥¹¾å¤Î¥Ç¥Ð¥¤¥¹" +.SS "IBM MCA バス上のデバイス" .\"O See also .\"O .IR /usr/src/linux/Documentation/mca.txt . .I /usr/src/linux/Documentation/mca.txt -¤â»²¾È¤»¤è¡£ +も参照せよ。 .TP .\"O .B "PS/2 ESDI hard disks" -.B PS/2 ESDI ¥Ï¡¼¥É¥Ç¥£¥¹¥¯ +.B PS/2 ESDI ハードディスク .\"O It is possible to specify the desired geometry at boot time: -˾¤à¥¸¥ª¥á¥È¥ê¤òµ¯Æ°»þ¤Ë»ØÄê¤Ç¤­¤ë¡£ +望むジオメトリを起動時に指定できる。 .IP .BI ed= cyls,heads,sectors. .IP .\"O For a ThinkPad-720, add the option -ThinkPad-720 ¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ï°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤òÄɲ乤뤳¤È¡£ +ThinkPad-720 を使用する場合は以下のオプションを追加すること。 .IP .\"O .BR tp720=1 . .B tp720=1 .TP .\"O .B "IBM Microchannel SCSI Subsystem configuration" -.B IBM Microchannel SCSI ¥µ¥Ö¥·¥¹¥Æ¥à¤ÎÀßÄê +.B IBM Microchannel SCSI サブシステムの設定 .IP .BI ibmmcascsi= N .IP .\"O where N is the \fIpun\fP (SCSI ID) of the subsystem. -N ¤Ï¥µ¥Ö¥·¥¹¥Æ¥à¤Î \fIpun\fP (SCSI ID) ¤òɽ¤¹¡£ +N はサブシステムの \fIpun\fP (SCSI ID) を表す。 .TP .\"O .B "The Aztech Interface" -.B Aztech ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ +.B Aztech インターフェース .\"O The syntax for this type of card is: -¤³¤Î¥¿¥¤¥×¤Î¥«¡¼¥É¤Î¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +このタイプのカードの構文は以下の通り。 .IP aztcd=iobase[,magic_number] .IP @@ -1593,15 +1593,15 @@ aztcd=iobase[,magic_number] .\"O anyway in the event of an unknown firmware version. .\"O All other values .\"O are ignored. -magic_number ¤Ë 0x79 ¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢ -¥É¥é¥¤¥Ð¤Ï¥Õ¥¡¡¼¥à¥¦¥§¥¢¤Î¥Ð¡¼¥¸¥ç¥ó¤¬Ê¬¤«¤é¤Ê¤¤¾ì¹ç¤Ç¤â¡¢ -¤È¤Ë¤«¤¯¼Â¹Ô¤ò»î¤ß¤ë¡£ -¤½¤Î¾¤ÎÃͤϤ¹¤Ù¤Æ̵»ë¤µ¤ì¤ë¡£ +magic_number に 0x79 をセットすると、 +ドライバはファームウェアのバージョンが分からない場合でも、 +とにかく実行を試みる。 +その他の値はすべて無視される。 .TP .\"O .B "Parallel port CD-ROM drives" -.B "¥Ñ¥é¥ì¥ë¥Ý¡¼¥È CD-ROM ¥É¥é¥¤¥Ö" +.B "パラレルポート CD-ROM ドライブ" .\"O Syntax: -½ñ¼°: +書式: .IP .\"O pcd.driveN=prt,pro,uni,mod,slv,dly pcd.driveN=port,pro,uni,mod,slv,dly @@ -1614,24 +1614,24 @@ pcd.nice=nice .\"O and 'dly' is a small integer for slowing down port accesses. .\"O The 'nice' parameter controls the driver's use of idle CPU time, at the .\"O expense of some speed. -¤³¤³¤Ç 'port' ¤Ï¥Ù¡¼¥¹¥¢¥É¥ì¥¹¡¢'pro' -¤Ï¥×¥í¥È¥³¥ëÈֹ桢'uni' ¤Ï¥æ¥Ë¥Ã¥È¥»¥ì¥¯¥¿ -(¥Á¥§¥¤¥ó¥Ç¥Ð¥¤¥¹ÍÑ)¡¢'mod' ¤Ï¥â¡¼¥É -(¤¢¤ë¤¤¤Ï¼«Æ°Åª¤ËºÇŬ¤Î¤â¤Î¤òÁª¤Ð¤»¤ë¤Ë¤Ï \-1)¡¢'slv' -¤Ï¥¹¥ì¡¼¥Ö¤Ë¤·¤¿¤¤¾ì¹ç¤Ë 1¡¢'dly' -¤Ï¥Ý¡¼¥È¥¢¥¯¥»¥¹¤òÃÙ¤¯¤·¤¿¤¤¾ì¹ç¤Ë¾®¤µ¤ÊÀ°¿ô¤òÍ¿¤¨¤ë¡£'nice' ¥Ñ¥é¥á¡¼¥¿¤Ï¡¢ -¥É¥é¥¤¥Ð¤Î¥¢¥¤¥É¥ë CPU »þ´Ö¤Î»È¤¤Êý¤òÀ©¸æ¤¹¤ë¡£ -¤¿¤À¤·Â®Å٤Ϥ¢¤ëÄøÅÙÄã²¼¤¹¤ë¡£ +ここで 'port' はベースアドレス、'pro' +はプロトコル番号、'uni' はユニットセレクタ +(チェインデバイス用)、'mod' はモード +(あるいは自動的に最適のものを選ばせるには \-1)、'slv' +はスレーブにしたい場合に 1、'dly' +はポートアクセスを遅くしたい場合に小さな整数を与える。'nice' パラメータは、 +ドライバのアイドル CPU 時間の使い方を制御する。 +ただし速度はある程度低下する。 .TP .\"O .B "The CDU-31A and CDU-33A Sony Interface" -.B Sony À½ CDU-31A ¤È CDU-33A ¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ +.B Sony 製 CDU-31A と CDU-33A のインターフェース .\"O This CD-ROM interface is found on some of the Pro Audio Spectrum sound .\"O cards, and other Sony supplied interface cards. .\"O The syntax is as follows: -¤³¤Î CD-ROM ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¡¢ -Pro Audio Spectrum ¥µ¥¦¥ó¥É¥«¡¼¥É¤Î°ìÉô¤ä -¥½¥Ë¡¼¤¬¶¡µë¤¹¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥«¡¼¥É¤Ç»È¤ï¤ì¤Æ¤¤¤ë¡£ -¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +この CD-ROM インターフェースは、 +Pro Audio Spectrum サウンドカードの一部や +ソニーが供給するインターフェースカードで使われている。 +構文は以下の通り。 .IP cdu31a=iobase,[irq[,is_pas_card]] .IP @@ -1640,43 +1640,43 @@ cdu31a=iobase,[irq[,is_pas_card]] .\"O If your card .\"O supports interrupts, you should use them as it cuts down on the CPU .\"O usage of the driver. -IRQ ¤Ë 0 ¤ò»ØÄꤹ¤ë¤È¡¢ -¥Ï¡¼¥É¥¦¥§¥¢³ä¤ê¹þ¤ß¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò¥É¥é¥¤¥Ð¤ËÅÁ¤¨¤ë -(PAS ¥«¡¼¥É¤Ë¤Ï¤½¤Î¤è¤¦¤Ê¤â¤Î¤¬¤¢¤ë)¡£ -»ÈÍѤ¹¤ë¥«¡¼¥É¤¬³ä¤ê¹þ¤ß¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤Ê¤é¡¢ -¥É¥é¥¤¥Ð¤Ë¤è¤ë CPU ¤ÎÉé²Ù¤ò¸º¤é¤¹¤¿¤á¤Ë¤â³ä¤ê¹þ¤ß¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +IRQ に 0 を指定すると、 +ハードウェア割り込みがサポートされていないことをドライバに伝える +(PAS カードにはそのようなものがある)。 +使用するカードが割り込みをサポートしているなら、 +ドライバによる CPU の負荷を減らすためにも割り込みを使用すべきである。 .\"O The .\"O .I is_pas_card .\"O should be entered as 'PAS' if using a Pro Audio Spectrum card, .\"O and otherwise it should not be specified at all. .I is_pas_card -¤Ë¤Ï¡¢Pro Audio Spectrum ¥«¡¼¥É¤ò»ÈÍѤ·¤Æ¤¤¤ë¤È¤­¤Ë¤Ï 'PAS' ¤ò»ØÄꤷ¡¢ -¤½¤¦¤Ç¤Ê¤¤¤È¤­¤Ë¤Ï¤Ê¤Ë¤â»ØÄꤷ¤Ê¤¤¡£ +には、Pro Audio Spectrum カードを使用しているときには 'PAS' を指定し、 +そうでないときにはなにも指定しない。 .TP .\"O .B "The CDU-535 Sony Interface" -.B Sony À½ CDU-535 ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ +.B Sony 製 CDU-535 インターフェース .\"O The syntax for this CD-ROM interface is: -¤³¤Î CD-ROM ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +この CD-ROM インターフェースの構文は以下の通り。 .IP sonycd535=iobase[,irq] .IP .\"O A zero can be used for the I/O base as a 'placeholder' if one wishes .\"O to specify an IRQ value. -IRQ ¤ÎÃͤÀ¤±¤ò»ØÄꤷ¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ -iobase Ãͤò 0 ¤È¤¹¤ì¤Ðñ¤Ê¤ë·êËä¤á¤È²ò¼á¤µ¤ì¤ë¡£ +IRQ の値だけを指定したい場合には、 +iobase 値を 0 とすれば単なる穴埋めと解釈される。 .TP .\"O .B "The GoldStar Interface" -.B GoldStar ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ +.B GoldStar インターフェース .\"O The syntax for this CD-ROM interface is: -¤³¤Î CD-ROM ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +この CD-ROM インターフェースの構文は以下の通り。 .IP gscd=iobase .TP .\"O .B "The ISP16 CD-ROM Interface" -.B ISP16 CD-ROM ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ +.B ISP16 CD-ROM インターフェース .\"O Syntax: -½ñ¼°: +書式: .IP isp16=[iobase[,irq[,dma[,type]]]] .IP @@ -1685,14 +1685,14 @@ isp16=[iobase[,irq[,dma[,type]]]] .\"O the interface will not be configured. .\"O Other recognized types .\"O are: 'Sanyo", 'Sony', 'Panasonic' and 'Mitsumi'. -(À°¿ôÃÍ 3 ¤Ä¤Èʸ»úÎó 1 ¤Ä¡£) type ¤Ë 'noisp16' ¤ò»ØÄꤹ¤ë¤È¡¢ -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÎÀßÄê¤Ï¹Ô¤Ê¤ï¤ì¤Ê¤¤¡£ -type ¤Ë¤Ï¤³¤Î¾¤Ë¤â 'Sanyo', 'Sony', 'Panasonic', 'Mitsumi' ¤¬»ØÄê¤Ç¤­¤ë¡£ +(整数値 3 つと文字列 1 つ。) type に 'noisp16' を指定すると、 +インターフェースの設定は行なわれない。 +type にはこの他にも 'Sanyo', 'Sony', 'Panasonic', 'Mitsumi' が指定できる。 .TP .\"O .B "The Mitsumi Standard Interface" -.B Mitsumi ɸ½à¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ +.B Mitsumi 標準インターフェース .\"O The syntax for this CD-ROM interface is: -¤³¤ÎCD-ROM ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +このCD-ROM インターフェースの構文は以下の通り。 .IP mcd=iobase,[irq[,wait_value]] .IP @@ -1704,32 +1704,32 @@ mcd=iobase,[irq[,wait_value]] .\"O The Mitsumi FX400 is an IDE/ATAPI CD-ROM player and does not use .\"O the mcd driver. .I wait_value -¤Ï¥É¥é¥¤¥Ö¤ËÌäÂ꤬¤¢¤ë¾ì¹ç¤Ë¡¢ -¥É¥é¥¤¥ÐÆâÉô¤Î¥¿¥¤¥à¥¢¥¦¥È¤Î»ØÄê¤ËÍѤ¤¤ë¡£ -¥³¥ó¥Ñ¥¤¥ë»þ¤Î #define ¤Ë¤è¤Ã¤Æ¼ÂÁõ¤µ¤ì¤ë¤«¤µ¤ì¤Ê¤¤¤«¤¬·è¤Þ¤ë¡£ -Mitsumi FX400 ¤Ï IDE/ATAPI CD-ROM ¥×¥ì¥¤¥ä¡¼¤Ç¤¢¤ê¡¢ -¤³¤Î mcd ¥É¥é¥¤¥Ð¤Ï»ÈÍѤ·¤Ê¤¤¡£ +はドライブに問題がある場合に、 +ドライバ内部のタイムアウトの指定に用いる。 +コンパイル時の #define によって実装されるかされないかが決まる。 +Mitsumi FX400 は IDE/ATAPI CD-ROM プレイヤーであり、 +この mcd ドライバは使用しない。 .TP .\"O .B "The Mitsumi XA/MultiSession Interface" -.B Mitsumi XA/¥Þ¥ë¥Á¥»¥Ã¥·¥ç¥ó¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ +.B Mitsumi XA/マルチセッションインターフェース .\"O This is for the same hardware as above, but the driver has extended features. .\"O Syntax: -¤³¤ì¤Ï¾åµ­¤ÈƱ¤¸¥Ï¡¼¥É¥¦¥§¥¢¤À¤¬¡¢³ÈÄ¥µ¡Ç½¤¬¤¢¤ë¡£ -¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +これは上記と同じハードウェアだが、拡張機能がある。 +構文は以下の通り。 .IP mcdx=iobase[,irq] .TP .\"O .B "The Optics Storage Interface" -.B Optics ¥¹¥È¥ì¡¼¥¸¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ +.B Optics ストレージインターフェース .\"O The syntax for this type of card is: -¤³¤Î¥«¡¼¥É¤Î¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +このカードの構文は以下の通り。 .IP optcd=iobase .TP .\"O .B "The Phillips CM206 Interface" -.B Phillips CM206 ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ +.B Phillips CM206 インターフェース .\"O The syntax for this type of card is: -¤³¤Î¥«¡¼¥É¤Î¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +このカードの構文は以下の通り。 .IP cm206=[iobase][,irq] .IP @@ -1738,22 +1738,22 @@ cm206=[iobase][,irq] .\"O or both numbers, in any order. .\"O It also accepts 'cm206=auto' to enable .\"O autoprobing. -¥É¥é¥¤¥Ð¤Ï IRQ ÃͤȤ·¤Æ 3 ¤«¤é 11 ¤Þ¤Ç¡¢ -I/O ¥Ý¡¼¥È¥¢¥É¥ì¥¹¤ÎÃͤȤ·¤Æ 0x300 ¤«¤é 0x370 ¤òÁÛÄꤷ¤Æ¤¤¤ë¡£ -¤¤¤º¤ì¤«°ìÊý¡¢¤¢¤ë¤¤¤ÏξÊý¤ò»ØÄê¤Ç¤­¤ë¡£½çÈÖ¤âÌä¤ï¤Ê¤¤¡£ -\&'cm206=auto' ¤È¤¹¤ë¤³¤È¤Ë¤è¤ê¼«Æ°¸¡½Ð¤â¤Ç¤­¤ë¡£ +ドライバは IRQ 値として 3 から 11 まで、 +I/O ポートアドレスの値として 0x300 から 0x370 を想定している。 +いずれか一方、あるいは両方を指定できる。順番も問わない。 +\&'cm206=auto' とすることにより自動検出もできる。 .TP .\"O .B "The Sanyo Interface" -.B Sanyo ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ +.B Sanyo インターフェース .\"O The syntax for this type of card is: -¤³¤Î¥«¡¼¥É¤Î¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +このカードの構文は以下の通り。 .IP sjcd=iobase[,irq[,dma_channel]] .TP .\"O .B "The SoundBlaster Pro Interface" -.B SoundBlaster Pro ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ +.B SoundBlaster Pro インターフェース .\"O The syntax for this type of card is: -¤³¤Î¥«¡¼¥É¤Î¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +このカードの構文は以下の通り。 .IP sbpcd=iobase,type .IP @@ -1761,19 +1761,19 @@ sbpcd=iobase,type .\"O \&'SoundBlaster', 'LaserMate', or 'SPEA'. .\"O The I/O base is that of the .\"O CD-ROM interface, and not that of the sound portion of the card. -type ÃÍ¤Ë¤Ï 'SoundBlaster', 'LaserMate', 'SPEA' ¤Î¤¦¤Á¤Ò¤È¤Ä¤ò»ØÄê¤Ç¤­¤ë -(Âçʸ»ú¾®Ê¸»ú¤¬¶èÊ̤µ¤ì¤ë)¡£ -iobase ¤Ï CD-ROM ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÎÃͤǤ¢¤ë¡£ -¥«¡¼¥É¤Î¥µ¥¦¥ó¥ÉÉô¤ÎÃͤȴְ㤨¤Ê¤¤¤³¤È¡£ +type 値には 'SoundBlaster', 'LaserMate', 'SPEA' のうちひとつを指定できる +(大文字小文字が区別される)。 +iobase は CD-ROM インターフェースの値である。 +カードのサウンド部の値と間違えないこと。 .\"O .SS "Ethernet Devices" -.SS "¥¤¡¼¥µ¥Í¥Ã¥È¥Ç¥Ð¥¤¥¹" +.SS "イーサネットデバイス" .\"O Different drivers make use of different parameters, but they all at .\"O least share having an IRQ, an I/O port base value, and a name. .\"O In its most generic form, it looks something like this: -¥É¥é¥¤¥Ð¤¬°Û¤Ê¤ë¤ÈÍѤ¤¤ë¥Ñ¥é¥á¡¼¥¿¤â°Û¤Ê¤ë¤¬¡¢ -¤¹¤Ù¤Æ¤Î¥É¥é¥¤¥Ð¤Ï¡¢¾¯¤Ê¤¯¤È¤â³ä¤ê¹þ¤ßÈÖ¹æ (irq)¡¢ -I/O ¥Ý¡¼¥È¤Î¥Ù¡¼¥¹¥¢¥É¥ì¥¹ (iobase)¡¢Ì¾Á° (name) ¤ò»ý¤Ä¡£ -ºÇ¤â°ìÈÌŪ¤Ê·Á¼°¤Ï°Ê²¼¤ÎÄ̤ꡣ +ドライバが異なると用いるパラメータも異なるが、 +すべてのドライバは、少なくとも割り込み番号 (irq)、 +I/O ポートのベースアドレス (iobase)、名前 (name) を持つ。 +最も一般的な形式は以下の通り。 .IP ether=irq,iobase[,param_1[,...param_8]],name .IP @@ -1783,38 +1783,38 @@ ether=irq,iobase[,param_1[,...param_8]],name .\"O Typical param_n values are used to specify .\"O things like shared memory address, interface selection, DMA channel .\"O and the like. -ºÇ½é¤Î¿ô»ú¤Ç¤Ê¤¤ÃͤÏ̾Á°¤È¤·¤Æ»ÈÍѤµ¤ì¤ë¡£ -param_n ¤ÎÃͤϥ«¡¼¥É (¥É¥é¥¤¥Ð) ¤´¤È¤Ë°Û¤Ê¤ë°ÕÌ£¤ò»ý¤Ä¡£ -¤è¤¯¤¢¤ëÌÜŪ¤Ï¡¢¶¦Í­¥á¥â¥ê¥¢¥É¥ì¥¹¤Î»ØÄê¡¢¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÎÁªÂò¡¢ -DMA ¥Á¥ã¥Í¥ë¤Ê¤É¤Ç¤¢¤ë¡£ +最初の数字でない値は名前として使用される。 +param_n の値はカード (ドライバ) ごとに異なる意味を持つ。 +よくある目的は、共有メモリアドレスの指定、インターフェースの選択、 +DMA チャネルなどである。 .\"O The most common use of this parameter is to force probing for a second .\"O ethercard, as the default is to only probe for one. .\"O This can be accomplished with a simple: -¤³¤Î¥Ñ¥é¥á¡¼¥¿¤ÎºÇ¤â¤è¤¯¤¢¤ëÍøÍÑË¡¤Ï¡¢ -2 ÈÖÌܤΠEthernet ¥«¡¼¥É¤ò¶¯À©Åª¤Ë¸¡½Ð¤µ¤»¤ë¾ì¹ç¤Ç¤¢¤ë -(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï 1 Ë礷¤«¸¡½Ð¤·¤Ê¤¤)¡£ -¤³¤ì¤Ï´Êñ¤Ç¡¢¼¡¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¤è¤¤¡£ +このパラメータの最もよくある利用法は、 +2 番目の Ethernet カードを強制的に検出させる場合である +(デフォルトでは 1 枚しか検出しない)。 +これは簡単で、次のようにすればよい。 .IP ether=0,0,eth1 .IP .\"O Note that the values of zero for the IRQ and I/O base in the above .\"O example tell the driver(s) to autoprobe. -¤³¤ÎÎã¤Ç IRQ ¤È I/O ¥Ù¡¼¥¹¥¢¥É¥ì¥¹¤Ë 0 ¤ò»ØÄꤷ¤Æ¤¤¤ë¤Î¤Ï¡¢ -¥É¥é¥¤¥Ð¤Ë¼«Æ°¸¡½Ð¤ò¤¹¤ë¤è¤¦ÅÁ¤¨¤Æ¤¤¤ë¤Î¤Ç¤¢¤ë¡£ +この例で IRQ と I/O ベースアドレスに 0 を指定しているのは、 +ドライバに自動検出をするよう伝えているのである。 .\"O The Ethernet-HowTo has extensive documentation on using multiple .\"O cards and on the card/driver-specific implementation .\"O of the param_n values where used. .\"O Interested readers should refer to .\"O the section in that document on their particular card. -Ethernet-HOWTO ¤Ç¤Ï¡¢Ê£¿ô¤Î¥«¡¼¥É¤ò»È¤¦¤ä¤êÊý¤ä¡¢ -¥«¡¼¥É¤ä¥É¥é¥¤¥Ð¤ËÆÃÍ­¤Î param_n ÃͤΰÕÌ£¤Ë¤Ä¤¤¤Æ¡¢ -¤º¤Ã¤È¾ÜºÙ¤Ë²òÀ⤵¤ì¤Æ¤¤¤ë¡£ -¶½Ì£¤ò»ý¤Ã¤¿ÆɼԤϡ¢¤³¤Îʸ½ñ¤Ë¤¢¤¿¤ê¡¢ -¼«Ê¬¤Î¥«¡¼¥É¤Ë´Ø¤·¤Æ½ñ¤«¤ì¤Æ¤¤¤ë¥»¥¯¥·¥ç¥ó¤ò»²¾È¤¹¤ë¤ÈÎɤ¤¡£ +Ethernet-HOWTO では、複数のカードを使うやり方や、 +カードやドライバに特有の param_n 値の意味について、 +ずっと詳細に解説されている。 +興味を持った読者は、この文書にあたり、 +自分のカードに関して書かれているセクションを参照すると良い。 .\"O .SS "The Floppy Disk Driver" -.SS ¥Õ¥í¥Ã¥Ô¡¼¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ð +.SS フロッピーディスクドライバ .\"O There are many floppy driver options, and they are all listed in .\"O .I Documentation/floppy.txt .\"O (or @@ -1822,13 +1822,13 @@ Ethernet-HOWTO .\"O for older kernels) in the kernel source. .\"O This information is taken directly .\"O from that file. -¥Õ¥í¥Ã¥Ô¡¼¥É¥é¥¤¥Ð¤Î¥ª¥×¥·¥ç¥ó¤Ï¿¿ô¤¢¤ê¡¢ -¥«¡¼¥Í¥ë¥½¡¼¥¹Æâ¤Î +フロッピードライバのオプションは多数あり、 +カーネルソース内の .I Documentation/floppy.txt -(¸Å¤¤¥«¡¼¥Í¥ë¤Î¾ì¹ç¤Ï +(古いカーネルの場合は .IR drivers/block/README.fd ) -¤Ë¤¹¤Ù¤Æµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ -°Ê²¼¤Î¾ðÊó¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤«¤é¤È¤Ã¤¿¤â¤Î¤Ç¤¢¤ë¡£ +にすべて記載されている。 +以下の情報はこのファイルからとったものである。 .TP .B "floppy=mask,allowed_drive_mask" .\"O Sets the bit mask of allowed drives to mask. @@ -1839,27 +1839,27 @@ Ethernet-HOWTO .\"O keyboard when accessing units 2 or 3. .\"O This option is somewhat .\"O obsoleted by the cmos option. -»È¤Ã¤Æ¤è¤¤¥É¥é¥¤¥Ö¤Ë¤«¤±¤ë¥Ó¥Ã¥È¥Þ¥¹¥¯¤òÀßÄꤹ¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ -¥æ¥Ë¥Ã¥È 0 ¤È 1 ¤Î¥Õ¥í¥Ã¥Ô¡¼¥³¥ó¥È¥í¡¼¥é¤À¤±¤¬µö²Ä¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï¡¢É¸½à¤Ç¤Ê¤¤¥Ï¡¼¥É¥¦¥§¥¢ (Î㤨¤Ð ASUS ¤Î PCI¥Þ¥¶¡¼¥Ü¡¼¥É¤Ê¤É) -¤Ç¥æ¥Ë¥Ã¥È 2 ¤ä 3 ¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤È¡¢ -¥­¡¼¥Ü¡¼¥É¤¬¤ª¤«¤·¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤«¤é¤Ç¤¢¤ë¡£ -cmos ¥ª¥×¥·¥ç¥ó (¸å½Ò) ¤ÎƳÆþ¤Ë¤è¤Ã¤Æ¡¢ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¤¢¤Þ¤ê»È¤ï¤ì¤Ê¤¯¤Ê¤Ã¤¿¡£ +使ってよいドライブにかけるビットマスクを設定する。 +デフォルトでは、 +ユニット 0 と 1 のフロッピーコントローラだけが許可されている。 +これは、標準でないハードウェア (例えば ASUS の PCIマザーボードなど) +でユニット 2 や 3 にアクセスすると、 +キーボードがおかしくなってしまうからである。 +cmos オプション (後述) の導入によって、 +このオプションはあまり使われなくなった。 .TP .B "floppy=all_drives" .\"O Sets the bit mask of allowed drives to all drives. .\"O Use this if you have .\"O more than two drives connected to a floppy controller. -µö²Ä¤¹¤ë¥É¥é¥¤¥Ö¤ò¼¨¤¹¥Ó¥Ã¥È¥Þ¥¹¥¯¤ò¡¢¡Ö¤¹¤Ù¤Æ¤Î¥É¥é¥¤¥Ö¡×¤Ë¤¹¤ë¡£ -1 ¤Ä¤Î¥Õ¥í¥Ã¥Ô¡¼¥³¥ó¥È¥í¡¼¥é¤Ë 2 Âæ°Ê¾å¤Î¥É¥é¥¤¥Ö¤òÀܳ¤¹¤ë¾ì¹ç¤ËÍѤ¤¤ë¡£ +許可するドライブを示すビットマスクを、「すべてのドライブ」にする。 +1 つのフロッピーコントローラに 2 台以上のドライブを接続する場合に用いる。 .TP .B "floppy=asus_pci" .\"O Sets the bit mask to allow only units 0 and 1. .\"O (The default) -¥æ¥Ë¥Ã¥È 0 ¤È 1 ¤Î¤ß¤òµö²Ä¤¹¤ë¤è¤¦¥Ó¥Ã¥È¥Þ¥¹¥¯¤òÀßÄꤹ¤ë¡£ -(¥Ç¥Õ¥©¥ë¥È)¡£ +ユニット 0 と 1 のみを許可するようビットマスクを設定する。 +(デフォルト)。 .TP .B "floppy=daring" .\"O Tells the floppy driver that you have a well behaved floppy @@ -1867,42 +1867,42 @@ cmos .\"O This allows more efficient and smoother operation, but .\"O may fail on certain controllers. .\"O This may speed up certain operations. -Àµ¤·¤¯¿¶¤ëÉñ¤¦¥Õ¥í¥Ã¥Ô¡¼¥³¥ó¥È¥í¡¼¥é¤ò»È¤Ã¤Æ¤¤¤ë¤³¤È¤ò¥É¥é¥¤¥Ð¤ËÅÁ¤¨¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤ÈÆ°ºî¤Ï¤è¤ê¸úΨŪ¤«¤Ä¥¹¥à¡¼¥¹¤Ë¤Ê¤ë¤¬¡¢ -¥³¥ó¥È¥í¡¼¥é¤Ë¤è¤Ã¤Æ¤ÏÆ°ºî¤Ë¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ë¡£ -¤³¤ì¤ò»ØÄꤹ¤ë¤È¤¢¤ë¼ï¤ÎÆ°ºî¤¬¹â®¤Ë¤Ê¤ë¡£ +正しく振る舞うフロッピーコントローラを使っていることをドライバに伝える。 +このオプションを使うと動作はより効率的かつスムースになるが、 +コントローラによっては動作に失敗することがある。 +これを指定するとある種の動作が高速になる。 .TP .B "floppy=0,daring" .\"O Tells the floppy driver that your floppy controller should be used .\"O with caution. -Ãí°Õ¤·¤Æ°·¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -¥Õ¥í¥Ã¥Ô¡¼¥³¥ó¥È¥í¡¼¥é¤Ç¤¢¤ë¤³¤È¤ò¥É¥é¥¤¥Ð¤ËÅÁ¤¨¤ë¡£ +注意して扱わなければならない +フロッピーコントローラであることをドライバに伝える。 .TP .B "floppy=one_fdc" .\"O Tells the floppy driver that you have only floppy controller (default) -¥Õ¥í¥Ã¥Ô¡¼¥³¥ó¥È¥í¡¼¥é¤¬¤Ò¤È¤Ä¤·¤«¤Ê¤¤¤³¤È¤ò¥É¥é¥¤¥Ð¤ËÅÁ¤¨¤ë -(¥Ç¥Õ¥©¥ë¥È)¡£ +フロッピーコントローラがひとつしかないことをドライバに伝える +(デフォルト)。 .TP .\"O .BR floppy=two_fdc " or " floppy=address,two_fdc -.BR floppy=two_fdc " ¤Þ¤¿¤Ï " floppy=address,two_fdc +.BR floppy=two_fdc " または " floppy=address,two_fdc .\"O Tells the floppy driver that you have two floppy controllers. .\"O The second floppy controller is assumed to be at address. .\"O If address is .\"O not given, 0x370 is assumed. -¥Õ¥í¥Ã¥Ô¡¼¥³¥ó¥È¥í¡¼¥é¤¬¤Õ¤¿¤Ä¤¢¤ë¤³¤È¤ò¥É¥é¥¤¥Ð¤ËÅÁ¤¨¤ë¡£ -2 ÈÖÌܤΥ³¥ó¥È¥í¡¼¥é¤Î I/O ¥¢¥É¥ì¥¹¤Ï address ¤Ç»ØÄꤹ¤ë¡£ -address ¤¬»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï 0x370 ¤¬»È¤ï¤ì¤ë¡£ +フロッピーコントローラがふたつあることをドライバに伝える。 +2 番目のコントローラの I/O アドレスは address で指定する。 +address が指定されない場合は 0x370 が使われる。 .TP .B "floppy=thinkpad" .\"O Tells the floppy driver that you have a Thinkpad. .\"O Thinkpads use an .\"O inverted convention for the disk change line. -Thinkpad ¤ò»È¤Ã¤Æ¤¤¤ë¤³¤È¤ò¥Õ¥í¥Ã¥Ô¡¼¥É¥é¥¤¥Ð¤ËÅÁ¤¨¤ë¡£ -Thinkpad ¤Ï¥Ç¥£¥¹¥¯¼è½Ð¤Î¸¡½Ð¿®¹æ¤òȿž¤·¤Æ»È¤Ã¤Æ¤¤¤ë¡£ +Thinkpad を使っていることをフロッピードライバに伝える。 +Thinkpad はディスク取出の検出信号を反転して使っている。 .TP .B "floppy=0,thinkpad" .\"O Tells the floppy driver that you don't have a Thinkpad. -Thinkpad ¤ò»È¤Ã¤Æ¤¤¤Ê¤¤¤³¤È¤ò¥É¥é¥¤¥Ð¤ËÅÁ¤¨¤ë¡£ +Thinkpad を使っていないことをドライバに伝える。 .TP .B "floppy=drive,type,cmos" .\"O Sets the cmos type of drive to type. @@ -1914,34 +1914,34 @@ Thinkpad .\"O Setting the CMOS to 0 for the .\"O first two drives (default) makes the floppy driver read the physical .\"O cmos for those drives. -¥É¥é¥¤¥Ö¤Î cmos ¥¿¥¤¥×¤ò type ¤ËÀßÄꤹ¤ë¡£ -¤µ¤é¤Ë¥Ó¥Ã¥È¥Þ¥¹¥¯¤òÊѹ¹¤·¡¢¤³¤Î¥É¥é¥¤¥Ö¤Î»ÈÍѤòµö²Ä¤¹¤ë¡£ -¤³¤Î»ØÄ꤬ÊØÍø¤Ê¤Î¤Ï¡¢¥Õ¥í¥Ã¥Ô¡¼¥É¥é¥¤¥Ö¤¬ 2 Âæ°Ê¾å¤¢¤ë¾ì¹ç -(ʪÍý cmos ¤Ëµ­½Ò¤Ç¤­¤ë¤Î¤Ï 2 Âæ¤Þ¤Ç) ¤ä¡¢ -BIOS ¤¬É¸½àŪ¤Ç¤Ê¤¤ CMOS ¥¿¥¤¥×¤ò»È¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ç¤¢¤ë¡£ -ºÇ½é¤Î 2 Âæ¤Î¥É¥é¥¤¥Ö¤Î CMOS ¤Ë 0 ¤ò»ØÄꤹ¤ë (¥Ç¥Õ¥©¥ë¥È) ¤È¡¢ -¥Õ¥í¥Ã¥Ô¡¼¥É¥é¥¤¥Ð¤Ï¤³¤ì¤é¤Î¥É¥é¥¤¥Ö¤ÎʪÍý cmos ¤ò»²¾È¤¹¤ë¡£ +ドライブの cmos タイプを type に設定する。 +さらにビットマスクを変更し、このドライブの使用を許可する。 +この指定が便利なのは、フロッピードライブが 2 台以上ある場合 +(物理 cmos に記述できるのは 2 台まで) や、 +BIOS が標準的でない CMOS タイプを使っている場合である。 +最初の 2 台のドライブの CMOS に 0 を指定する (デフォルト) と、 +フロッピードライバはこれらのドライブの物理 cmos を参照する。 .TP .B "floppy=unexpected_interrupts" .\"O Print a warning message when an unexpected interrupt is received .\"O (default behavior) -ͽ´ü¤·¤Ê¤¤³ä¤ê¹þ¤ß¤ò¼õ¤±¤¿»þ¤Ë·Ù¹ð¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë (¥Ç¥Õ¥©¥ë¥È)¡£ +予期しない割り込みを受けた時に警告メッセージを表示する (デフォルト)。 .TP .\"O .BR floppy=no_unexpected_interrupts " or " floppy=L40SX -.BR floppy=no_unexpected_interrupts " ¤Þ¤¿¤Ï " floppy=L40SX +.BR floppy=no_unexpected_interrupts " または " floppy=L40SX .\"O Don't print a message when an unexpected interrupt is received. .\"O This is needed on IBM L40SX laptops in certain video modes. .\"O (There seems to .\"O be an interaction between video and floppy. .\"O The unexpected interrupts .\"O only affect performance, and can safely be ignored.) -ͽ´ü¤·¤Ê¤¤³ä¤ê¹þ¤ß¤ò¼õ¤±¤¿»þ¤Ç¤â·Ù¹ð¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Ê¤¤¡£ -¤³¤ì¤Ï IBM L40SX ¥é¥Ã¥×¥È¥Ã¥×¥³¥ó¥Ô¥å¡¼¥¿¤ò -ÆÃÄê¤Î¥Ó¥Ç¥ª¥â¡¼¥É¤Ç»ÈÍѤ¹¤ë»þ¤ËɬÍפȤʤ롣 -(¥Ó¥Ç¥ª¤È¥Õ¥í¥Ã¥Ô¡¼¤È¤Î´Ö¤Ç²¿¤é¤«¤ÎÁê¸ßºîÍѤ¬¤¢¤ë¤è¤¦¤À¡£ -ͽ´ü¤·¤Ê¤¤³ä¤ê¹þ¤ß¤ÏÀ­Ç½¤À¤±¤Ë±Æ¶Á¤·¡¢Ìµ»ë¤·¤Æ¤â°ÂÁ´¤Ç¤¢¤ë¡£) +予期しない割り込みを受けた時でも警告メッセージを表示しない。 +これは IBM L40SX ラップトップコンピュータを +特定のビデオモードで使用する時に必要となる。 +(ビデオとフロッピーとの間で何らかの相互作用があるようだ。 +予期しない割り込みは性能だけに影響し、無視しても安全である。) .\"O .SS "The Sound Driver" -.SS ¥µ¥¦¥ó¥É¥É¥é¥¤¥Ð +.SS サウンドドライバ .\"O The sound driver can also accept boot args to override the compiled in .\"O values. .\"O This is not recommended, as it is rather complex. @@ -1952,63 +1952,63 @@ BIOS .\"O Readme.Linux file, in linux/drivers/sound. .\"O It accepts .\"O a boot arg of the form: -¥µ¥¦¥ó¥É¥É¥é¥¤¥Ð¤âµ¯Æ°»þ°ú¿ô¤ò¼õ¤±ÉÕ¤±¡¢ -¥³¥ó¥Ñ¥¤¥ë»þ¤Ë»ØÄꤵ¤ì¤¿ÃͤòÊѹ¹¤Ç¤­¤ë¡£ -¤³¤ì¤Ï¤ä¤äÌÌÅݤʤ¿¤á¡¢¤¢¤Þ¤ê¤ªÁ¦¤á¤Ç¤­¤Ê¤¤¡£ -¾ÜºÙ¤Ï¡¢¥«¡¼¥Í¥ë¥½¡¼¥¹Æâ¤Î +サウンドドライバも起動時引数を受け付け、 +コンパイル時に指定された値を変更できる。 +これはやや面倒なため、あまりお薦めできない。 +詳細は、カーネルソース内の .IR Documentation/sound/oss/README.OSS -(¸Å¤¤¥«¡¼¥Í¥ë¤Î¾ì¹ç¤Ï +(古いカーネルの場合は .IR drivers/sound/Readme.linux ) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ -°ú¿ô¤Î·Á¼°¤Ï°Ê²¼¤ÎÄ̤ꡣ +に記載されている。 +引数の形式は以下の通り。 .IP sound=device1[,device2[,device3...[,device10]]] .IP .\"O where each deviceN value is of the following format 0xTaaaId and the .\"O bytes are used as follows: -³Æ deviceN ¤Ï¤½¤ì¤¾¤ì 0xTaaaId ¤È¤¤¤¦·Á¼°¤Ç»ØÄꤹ¤ë¡£ -³Æ¥Ð¥¤¥È¤Î°ÕÌ£¤Ï°Ê²¼¤ÎÄ̤ꡣ +各 deviceN はそれぞれ 0xTaaaId という形式で指定する。 +各バイトの意味は以下の通り。 .\"O T \- device type: 1=FM, 2=SB, 3=PAS, 4=GUS, 5=MPU401, 6=SB16, .\"O 7=SB16-MPU401 -T \- ¥Ç¥Ð¥¤¥¹¤Î¥¿¥¤¥×: 1=FM, 2=SB, 3=PAS, 4=GUS, 5=MPU401, 6=SB16, 7=SB16-MPU401 +T \- デバイスのタイプ: 1=FM, 2=SB, 3=PAS, 4=GUS, 5=MPU401, 6=SB16, 7=SB16-MPU401 .\"O aaa \- I/O address in hex. -aaa \- I/O ¥Ý¡¼¥È¥¢¥É¥ì¥¹ (16¿ÊÃÍ) +aaa \- I/O ポートアドレス (16進値) .\"O I \- interrupt line in hex (i.e 10=a, 11=b, ...) -I \- ³ä¤ê¹þ¤ßÈÖ¹æ (16 ¿ÊÃÍ¡£Îã: 10=a, 11=b, ...) +I \- 割り込み番号 (16 進値。例: 10=a, 11=b, ...) .\"O d \- DMA channel. -d \- DMA ¥Á¥ã¥Í¥ë +d \- DMA チャネル .\"O As you can see it gets pretty messy, and you are better off to compile .\"O in your own personal values as recommended. .\"O Using a boot arg of .\"O \&'sound=0' will disable the sound driver entirely. -¾åµ­¤ÎÄ̤ꡢ¤«¤Ê¤ê°·¤¤¤Ë¤¯¤¤·Á¼°¤È¤Ê¤Ã¤Æ¤ª¤ê¡¢ -¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¼«Ê¬¤Ë¤¢¤Ã¤¿Ãͤò»ØÄꤹ¤ëÊý¤¬Îɤ¤¤À¤í¤¦¡£ -¤Ê¤ªµ¯Æ°»þ°ú¿ô¤È¤·¤Æ 'sound=0' ¤ò»ØÄꤹ¤ë¤È¡¢ -¥µ¥¦¥ó¥É¥É¥é¥¤¥Ð¤ò´°Á´¤Ë̵¸ú¤Ë¤¹¤ë¡£ +上記の通り、かなり扱いにくい形式となっており、 +コンパイル時に自分にあった値を指定する方が良いだろう。 +なお起動時引数として 'sound=0' を指定すると、 +サウンドドライバを完全に無効にする。 .\"O .SS "ISDN Drivers" -.SS "ISDN ¥É¥é¥¤¥Ð" +.SS "ISDN ドライバ" .TP .\"O .B "The ICN ISDN driver" -.B ICN ISDN ¥É¥é¥¤¥Ð +.B ICN ISDN ドライバ .\"O Syntax: -¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +構文は以下の通り。 .IP icn=iobase,membase,icn_id1,icn_id2 .IP .\"O where icn_id1,icn_id2 are two strings used to identify the .\"O card in kernel messages. -icn_id1,icn_id2 ¤Ï¥«¡¼¥É¤ò¼±Ê̤¹¤ë¤¿¤á¤Î 2 ¤Ä¤Îʸ»úÎó¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë¥á¥Ã¥»¡¼¥¸¤ÇÍѤ¤¤é¤ì¤ë¡£ +icn_id1,icn_id2 はカードを識別するための 2 つの文字列である。 +カーネルメッセージで用いられる。 .TP .\"O .B "The PCBIT ISDN driver" -.B PCBIT ISDN ¥É¥é¥¤¥Ð +.B PCBIT ISDN ドライバ .\"O Syntax: -¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +構文は以下の通り。 .IP pcbit=membase1,irq1[,membase2,irq2] .IP @@ -2016,47 +2016,47 @@ pcbit=membase1,irq1[,membase2,irq2] .\"O the interrupt setting of the N'th card. .\"O The default is IRQ 5 and .\"O membase 0xD0000. -membaseN ¤Ï N ÈÖÌܤΥ«¡¼¥É¤Î¶¦Í­¥á¥â¥ê¤Î¥Ù¡¼¥¹¥¢¥É¥ì¥¹¤Ç¤¢¤ê¡¢ -irqN ¤Ï N ÈÖÌܤΥ«¡¼¥É¤Î³ä¤ê¹þ¤ßÀßÄê¤Ç¤¢¤ë¡£ -̵»ØÄê»þ¤Ë¤Ï IRQ = 5, membase = 0xD0000 ¤È¤Ê¤ë¡£ +membaseN は N 番目のカードの共有メモリのベースアドレスであり、 +irqN は N 番目のカードの割り込み設定である。 +無指定時には IRQ = 5, membase = 0xD0000 となる。 .TP .\"O .B "The Teles ISDN driver" -.B Teles ISDN ¥É¥é¥¤¥Ð +.B Teles ISDN ドライバ .\"O Syntax: -¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +構文は以下の通り。 .IP teles=iobase,irq,membase,protocol,teles_id .IP .\"O where iobase is the i/o port address of the card, membase is the .\"O shared memory base address of the card, irq is the interrupt channel .\"O the card uses, and teles_id is the unique ASCII string identifier. -iobase ¤Ï¥«¡¼¥É¤Î I/O ¥Ý¡¼¥È¥¢¥É¥ì¥¹¡¢ -membase ¤Ï¥«¡¼¥É¤Î¶¦Í­¥á¥â¥ê¤Î¥Ù¡¼¥¹¥¢¥É¥ì¥¹¡¢ -¤½¤·¤Æ irq ¤Ï¥«¡¼¥É¤¬»ÈÍѤ¹¤ë³ä¤ê¹þ¤ß¥Á¥ã¥Í¥ë¤Ç¤¢¤ë¡£ -teles_id ¤Ï¥¢¥¹¥­¡¼Ê¸»úÎó¤Ë¤è¤ë¼±ÊÌʸ»úÎó¤Ç¤¢¤ë (¾¤È½Å¤Ê¤é¤Ê¤¤¤è¤¦¤Ë¤¹¤ë)¡£ +iobase はカードの I/O ポートアドレス、 +membase はカードの共有メモリのベースアドレス、 +そして irq はカードが使用する割り込みチャネルである。 +teles_id はアスキー文字列による識別文字列である (他と重ならないようにする)。 .\"O .SS "Serial Port Drivers" -.SS ¥·¥ê¥¢¥ë¥Ý¡¼¥È¥É¥é¥¤¥Ð +.SS シリアルポートドライバ .TP .\"O .B "The RISCom/8 Multiport Serial Driver ('riscom8=')" -.B RISCom/8 ¥Þ¥ë¥Á¥Ý¡¼¥È¥·¥ê¥¢¥ë¥É¥é¥¤¥Ð ('riscom8=') +.B RISCom/8 マルチポートシリアルドライバ ('riscom8=') .\"O Syntax: -¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +構文は以下の通り。 .IP riscom=iobase1[,iobase2[,iobase3[,iobase4]]] .IP .\"O More details can be found in .\"O .IR /usr/src/linux/Documentation/riscom8.txt . -¾ÜºÙ¤Ï +詳細は .I /usr/src/linux/Documentation/riscom8.txt -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .TP .\"O .B "The DigiBoard Driver ('digi=')" -.B DigiBoard ¥É¥é¥¤¥Ð ('digi=') +.B DigiBoard ドライバ ('digi=') .\"O If this option is used, it should have precisely six parameters. .\"O Syntax: -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¾ì¹ç¤Ï¡¢ -6 ¤Ä¤Á¤ç¤¦¤É¤Î¥Ñ¥é¥á¡¼¥¿¤òÍ¿¤¨¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +このオプションを使う場合は、 +6 つちょうどのパラメータを与えなければならない。 +構文は以下の通り。 .IP digi=status,type,altpin,numports,iobase,membase .IP @@ -2071,17 +2071,17 @@ digi=status,type,altpin,numports,iobase,membase .\"O iobase (I/O Port where card is configured (in HEX)), .\"O membase (base of memory window (in HEX)). .\"O Thus, the following two boot prompt arguments are equivalent: -¥Ñ¥é¥á¡¼¥¿¤ÏÀ°¿ôÃͤ«Ê¸»úÎó¤ÇÍ¿¤¨¤ë¡£ -ʸ»úÎó¤Ç»ØÄꤹ¤ë¾ì¹ç¤Ï¡¢ -iobase ¤È membase ¤Ï 16 ¿ÊÃͤǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -À°¿ôÃͤǻØÄꤹ¤ë¾ì¹ç¤Ï¥Ñ¥é¥á¡¼¥¿¤Î¸Ä¿ô¤Ï¾¯¤Ê¤¯¤Æ¤âÎɤ¯¡¢½ç¤Ë: -status ¤³¤Î¥«¡¼¥É¤ÎÆ°ºî¤ò»ØÄꤹ¤ë (Enable(1) ¤Þ¤¿¤Ï Disable(0)), -type ¥«¡¼¥É¤Î¥¿¥¤¥× (PC/Xi(0), PC/Xe(1), PC/Xeve(2), PC/Xem(3)), -altpin ¥Ô¥óÇÛÃÖ¤òȿž¤µ¤»¤ë (Enable(1) or Disable(0)), -numports ¥«¡¼¥É¤Î¥Ý¡¼¥ÈÈÖ¹æ, -iobase ¤³¤Î¥«¡¼¥É¤Î I/O ¥Ý¡¼¥È (ʸ»úÎó»ØÄê¤Î¾ì¹ç¤Ï 16 ¿Êɽµ­), -membase ¥á¥â¥ê¥¦¥£¥ó¥É¥¦¤Î¥Ù¡¼¥¹¥¢¥É¥ì¥¹ (ʸ»úÎó»ØÄê¤Î¾ì¹ç¤Ï 16 ¿Êɽµ­)¡£ -¤·¤¿¤¬¤Ã¤Æ°Ê²¼¤Î¤Õ¤¿¤Ä¤Îµ¯Æ°»þ°ú¿ô¤ÏƱ¤¸°ÕÌ£¤ò»ý¤Ä¡£ +パラメータは整数値か文字列で与える。 +文字列で指定する場合は、 +iobase と membase は 16 進値でなければならない。 +整数値で指定する場合はパラメータの個数は少なくても良く、順に: +status このカードの動作を指定する (Enable(1) または Disable(0)), +type カードのタイプ (PC/Xi(0), PC/Xe(1), PC/Xeve(2), PC/Xem(3)), +altpin ピン配置を反転させる (Enable(1) or Disable(0)), +numports カードのポート番号, +iobase このカードの I/O ポート (文字列指定の場合は 16 進表記), +membase メモリウィンドウのベースアドレス (文字列指定の場合は 16 進表記)。 +したがって以下のふたつの起動時引数は同じ意味を持つ。 .IP digi=E,PC/Xi,D,16,200,D0000 .br @@ -2089,14 +2089,14 @@ digi=1,0,0,16,0x200,851968 .IP .\"O More details can be found in .\"O .IR /usr/src/linux/Documentation/digiboard.txt . -¾ÜºÙ¤Ï +詳細は .I /usr/src/linux/Documentation/digiboard.txt -¤ò»²¾È¤»¤è¡£ +を参照せよ。 .TP .\"O .B "The Baycom Serial/Parallel Radio Modem" -.B Baycom ¥·¥ê¥¢¥ë¡¦¥Ñ¥é¥ì¥ë ¥é¥¸¥ª¥â¥Ç¥à +.B Baycom シリアル・パラレル ラジオモデム .\"O Syntax: -¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +構文は以下の通り。 .IP baycom=iobase,irq,modem .IP @@ -2111,22 +2111,22 @@ baycom=iobase,irq,modem .\"O (or .\"O .I drivers/net/README.baycom .\"O for older kernels) in the kernel source. -¤Á¤ç¤¦¤É 3 ¤Ä¤Î¥Ñ¥é¥á¡¼¥¿¤òÍ¿¤¨¤ë¡£ -Ê£¿ô¤Î¥«¡¼¥É¤¬¤¢¤ë¾ì¹ç¤Ï¡¢'baycom=' ¥³¥Þ¥ó¥É¤âÊ£¿ôµ­½Ò¤¹¤ë¡£ -modem ¥Ñ¥é¥á¡¼¥¿¤Ïʸ»úÎó¤Ç¡¢ -ser12, ser12*, par96, par96* ¤ÎÃ椫¤é¤Ò¤È¤Ä¤òÁª¤Ö¡£ -* ¤ò¤Ä¤±¤ë¤È¥½¥Õ¥È¥¦¥§¥¢ DCD ¤ò»ÈÍѤ¹¤ë¡£ -¥â¥Ç¥à¤Î¼ïÎà¤Ë±þ¤¸¤Æ ser12 ¤« par96 ¤«¤òÁªÂò¤¹¤ë¡£ -¾ÜºÙ¤Ï¥«¡¼¥Í¥ë¥½¡¼¥¹Æâ¤Î +ちょうど 3 つのパラメータを与える。 +複数のカードがある場合は、'baycom=' コマンドも複数記述する。 +modem パラメータは文字列で、 +ser12, ser12*, par96, par96* の中からひとつを選ぶ。 +* をつけるとソフトウェア DCD を使用する。 +モデムの種類に応じて ser12 か par96 かを選択する。 +詳細はカーネルソース内の .I Documentation/networking/baycom.txt -(¸Å¤¤¥«¡¼¥Í¥ë¤Î¾ì¹ç¤Ï +(古いカーネルの場合は .IR drivers/net/README.baycom ) -¤ò»²¾È¡£ +を参照。 .TP .\"O .B "Soundcard radio modem driver" -.B ¥µ¥¦¥ó¥É¥«¡¼¥É¥é¥¸¥ª¥â¥Ç¥à¥É¥é¥¤¥Ð +.B サウンドカードラジオモデムドライバ .\"O Syntax: -¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +構文は以下の通り。 .IP soundmodem=iobase,irq,dma[,dma2[,serio[,pario]]],0,mode .IP @@ -2135,18 +2135,18 @@ soundmodem=iobase,irq,dma[,dma2[,serio[,pario]]],0,mode .\"O The mode parameter is a string with syntax hw:modem, .\"O where hw is one of sbc, wss, wssfdx and modem is one of .\"O afsk1200, fsk9600. -ºÇ¸å¤Î¥Ñ¥é¥á¡¼¥¿¤ò½ü¤¯¤¹¤Ù¤Æ¤Î¥Ñ¥é¥á¡¼¥¿¤ÏÀ°¿ô¤Ç¤¢¤ë¡£ -¥À¥ß¡¼¤Î 0 ¤¬¤¢¤ë¤Î¤Ï¡¢ÀßÄê¥×¥í¥°¥é¥à¤Î¥Ð¥°¤Î¤»¤¤¤Ç¤¢¤ë¡£ -mode ¥Ñ¥é¥á¡¼¥¿¤Ïʸ»úÎó¤Ç¡¢hw:modem ¤È¤¤¤¦½ñ¼°¤Ç»ØÄꤹ¤ë¡£ -hw ¤Ï sbc, wss, wssfdx ¤Î¤¦¤Á¤Ò¤È¤Ä¡¢ -modem ¤Ï afsk1200, fsk9600 ¤Î¤É¤Á¤é¤«¤òÁªÂò¤·¤Æµ­½Ò¤¹¤ë¡£ +最後のパラメータを除くすべてのパラメータは整数である。 +ダミーの 0 があるのは、設定プログラムのバグのせいである。 +mode パラメータは文字列で、hw:modem という書式で指定する。 +hw は sbc, wss, wssfdx のうちひとつ、 +modem は afsk1200, fsk9600 のどちらかを選択して記述する。 .\" HERE GOES (NAKANO) .\"O .SS "The Line Printer Driver" -.SS ¥é¥¤¥ó¥×¥ê¥ó¥¿¥É¥é¥¤¥Ð +.SS ラインプリンタドライバ .TP .B "'lp='" .\"O Syntax: -½ñ¼°: +書式: .IP lp=0 .br @@ -2161,12 +2161,12 @@ lp=port[,port...] .\"O The latter comes in handy if you don't want the printer driver .\"O to claim all available parallel ports, so that other drivers .\"O (e.g., PLIP, PPA) can use them instead. -¥×¥ê¥ó¥¿¥É¥é¥¤¥Ð¤Ë¤Ï¡¢¤É¤Î¥Ý¡¼¥È¤ò»È¤¦¤«¡¢ -¤É¤Î¥Ý¡¼¥È¤ò»È¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤¤«¤òÅÁ¤¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¸å¼Ô¤Ï¡¢ -ÍøÍѲÄǽ¤Ê¤¢¤é¤æ¤ë¥Ñ¥é¥ì¥ë¥Ý¡¼¥È¤ò¥×¥ê¥ó¥¿¥É¥é¥¤¥Ð¤¬Í׵ᤷ¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¡¢ -¾¤Î¥É¥é¥¤¥Ð (PLIP ¤ä PPA ¤Ê¤É) ¤«¤é -¤½¤ì¤é¤ò»È¤¨¤ë¤è¤¦¤Ë¤·¤¿¤¤¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£ +プリンタドライバには、どのポートを使うか、 +どのポートを使ってはいけないかを伝えることができる。 +後者は、 +利用可能なあらゆるパラレルポートをプリンタドライバが要求しないようにして、 +他のドライバ (PLIP や PPA など) から +それらを使えるようにしたい場合に便利である。 .\"O The format of the argument is multiple port names. .\"O For example, @@ -2174,33 +2174,33 @@ lp=port[,port...] .\"O disable lp0. .\"O To disable the printer driver entirely, one can use .\"O lp=0. -°ú¿ô¤Î½ñ¼°¤Ï¡¢Ê£¿ô¤Î¥Ý¡¼¥È̾¤Ç¤¢¤ë¡£ -Î㤨¤Ð lp=none,parport0 ¤È¤¹¤ë¤È¡¢ -ºÇ½é¤Î¥Ñ¥é¥ì¥ë¥Ý¡¼¥È¤ò lp1 ¤È¤·¤Æ»È¤¤¡¢ -lp0 ¤Ï̵¸ú¤Ë¤¹¤ë¡£¥×¥ê¥ó¥¿¡¼¥É¥é¥¤¥Ð¤ò´°Á´¤Ë̵¸ú¤Ë¤¹¤ë¤Ë¤Ï -lp=0 ¤È¤¹¤ì¤Ð¤è¤¤¡£ +引数の書式は、複数のポート名である。 +例えば lp=none,parport0 とすると、 +最初のパラレルポートを lp1 として使い、 +lp0 は無効にする。プリンタードライバを完全に無効にするには +lp=0 とすればよい。 .TP .\"O .B "WDT500/501 driver" -.B WDT500/501 ¥É¥é¥¤¥Ð +.B WDT500/501 ドライバ .\"O Syntax: -¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +構文は以下の通り。 .IP wdt=io,irq .\"O .SS "Mouse Drivers" -.SS ¥Þ¥¦¥¹¥É¥é¥¤¥Ð +.SS マウスドライバ .TP .B "'bmouse=irq'" .\"O The busmouse driver only accepts one parameter, that being the .\"O hardware IRQ value to be used. -¥Ð¥¹¥Þ¥¦¥¹¥É¥é¥¤¥Ð¤Ï¥Ñ¥é¥á¡¼¥¿¤ò¤Ò¤È¤Ä¤À¤±¤È¤ê¡¢ -¥Ï¡¼¥É¥¦¥§¥¢ IRQ ¤ò»ØÄê¤Ç¤­¤ë¡£ +バスマウスドライバはパラメータをひとつだけとり、 +ハードウェア IRQ を指定できる。 .TP .B "'msmouse=irq'" .\"O And precisely the same is true for the msmouse driver. -msmouse ¥É¥é¥¤¥Ð¤Ç¤â¤³¤Î»ö¾ð¤Ï¤Þ¤Ã¤¿¤¯Æ±¤¸¤Ç¤¢¤ë¡£ +msmouse ドライバでもこの事情はまったく同じである。 .TP .\"O .B "ATARI mouse setup" -.B ATARI ¥Þ¥¦¥¹¤ÎÀßÄê +.B ATARI マウスの設定 .IP atamouse=threshold[,y-threshold] .IP @@ -2209,14 +2209,14 @@ atamouse=threshold[,y-threshold] .\"O Otherwise, the first argument .\"O is the x-threshold, and the second the y-threshold. .\"O These values must lie between 1 and 20 (inclusive); the default is 2. -¥Ñ¥é¥á¡¼¥¿¤¬¤Ò¤È¤Ä¤À¤±Í¿¤¨¤é¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ -x-threshold ¤È y-threshold ¤òξÊý¤ËÍѤ¤¤é¤ì¤ë¡£ -¤Õ¤¿¤ÄÍ¿¤¨¤é¤ì¤¿¾ì¹ç¤Ï¡¢ºÇ½é¤ÎÃͤ¬ x-threshold ¤È¤·¤ÆÍѤ¤¤é¤ì¡¢ -2 ÈÖÌܤÎÃͤ¬ y-threshold ¤È¤·¤ÆÍѤ¤¤é¤ì¤ë¡£ -ÃÍ¤Ï 1 ¤«¤é 20 ¤Þ¤Ç¤Î¿ôÃͤǻØÄꤹ¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 2¡£ +パラメータがひとつだけ与えられた場合には、 +x-threshold と y-threshold を両方に用いられる。 +ふたつ与えられた場合は、最初の値が x-threshold として用いられ、 +2 番目の値が y-threshold として用いられる。 +値は 1 から 20 までの数値で指定する。 +デフォルトは 2。 .\"O .SS "Video Hardware" -.SS ¥Ó¥Ç¥ªµ¡´ï +.SS ビデオ機器 .TP .B "'no-scroll'" .\"O This option tells the console driver not to use hardware scroll @@ -2224,18 +2224,18 @@ x-threshold .\"O memory, instead of moving the data). .\"O It is required by certain .\"O Braille machines. -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥³¥ó¥½¡¼¥ë¥É¥é¥¤¥Ð¤Ë¡¢ -¥Ï¡¼¥É¥¦¥§¥¢¥¹¥¯¥í¡¼¥ë¤òÍѤ¤¤Ê¤¤¤è¤¦ÅÁ¤¨¤ë -(¤³¤³¤Ç¸À¤¦¥Ï¡¼¥É¥¦¥§¥¢¥¹¥¯¥í¡¼¥ë¤È¤Ï¡¢ -¥Ó¥Ç¥ª¥á¥â¥ê¾å¤Î¥Ç¡¼¥¿¤ò°ÜÆ°¤µ¤»¤ë¤³¤È¤Ë¤è¤Ã¤Æ -¥¹¥¯¥ê¡¼¥óɽ¼¨Îΰè¤ò¥¹¥¯¥í¡¼¥ë¤µ¤»¤ë¤³¤È¤ò»Ø¤¹)¡£ -ÆÃÄê¤ÎÅÀ»ú¥Þ¥·¥ó¤Ç¤Ï¤³¤Î»ØÄ꤬ɬÍפȤʤ롣 +このオプションは、コンソールドライバに、 +ハードウェアスクロールを用いないよう伝える +(ここで言うハードウェアスクロールとは、 +ビデオメモリ上のデータを移動させることによって +スクリーン表示領域をスクロールさせることを指す)。 +特定の点字マシンではこの指定が必要となる。 .\"O .\" .SH AUTHORS .\"O .\" Linus Torvalds (and many others) -.\" .SH Ãø¼Ô -.\" Linus Torvalds (¾¿¿ô) +.\" .SH 著者 +.\" Linus Torvalds (他多数) .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR lilo.conf (5), .BR klogd (8), .BR lilo (8), @@ -2247,22 +2247,22 @@ x-threshold .\"O More information may be found in this (or a more recent) HOWTO. .\"O An up-to-date source of information is .\"O .IR /usr/src/linux/Documentation/kernel-parameters.txt . -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÎÂçÉôʬ¤Ï Paul Gortmaker ¤Ë¤è¤ë -Boot Parameter HOWTO (version 1.0.1) ¤ò´ð¤Ë¤·¤Æ¤¤¤ë¡£ -¤³¤Î (¤¢¤ë¤¤¤ÏºÇ¿·¤Î) HOWTO ¤ò¤¢¤¿¤ì¤Ð¡¢ -¤µ¤é¤Ë¿¤¯¤Î¾ðÊó¤¬Æþ¼ê¤Ç¤­¤ë¤À¤í¤¦¡£ -ºÇ¿·¤Î¾ðÊó¸»¤Ï +このマニュアルページの大部分は Paul Gortmaker による +Boot Parameter HOWTO (version 1.0.1) を基にしている。 +この (あるいは最新の) HOWTO をあたれば、 +さらに多くの情報が入手できるだろう。 +最新の情報源は .I /usr/src/linux/Documentation/kernel-parameters.txt -¤Ç¤¢¤ë¡£ +である。 -(ÌõÃí) Boot Parameter HOWTO ¤Ï¸½ºß BootPrompt-HOWTO ¤È¤·¤Æ -¥á¥ó¥Æ¥Ê¥ó¥¹¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ËÙ¹¾À¿°ì¤µ¤ó¤Ë¤è¤ëÆüËܸìÈǤϡ¢ +(訳注) Boot Parameter HOWTO は現在 BootPrompt-HOWTO として +メンテナンスされています。堀江誠一さんによる日本語版は、 .UR http://www.linux.or.jp/JF/JFdocs/BootPrompt-HOWTO.html http://www.linux.or.jp/JF/JFdocs/BootPrompt-HOWTO.html .UE -¤Ë¤¢¤ê¤Þ¤¹¡£±Ñ¸ìÈÇ¥ª¥ê¥¸¥Ê¥ë¤Ï¡¢ +にあります。英語版オリジナルは、 .UR http://linuxdoc.org/HOWTO/BootPrompt-HOWTO.html http://linuxdoc.org/HOWTO/BootPrompt-HOWTO.html .UE -¤Ë¤¢¤ê¤Þ¤¹¡£ -¤¬¡¢¤¤¤º¤ì¤â May 1999 ¤Þ¤Ç¤Î¤â¤Î¤Ê¤Î¤Ç¤ä¤ä¸Å¤¤¤Ç¤¹¡£ +にあります。 +が、いずれも May 1999 までのものなのでやや古いです。 diff --git a/draft/man7/capabilities.7 b/draft/man7/capabilities.7 index c3bf582a..f935d2d5 100644 --- a/draft/man7/capabilities.7 +++ b/draft/man7/capabilities.7 @@ -54,11 +54,11 @@ .\" .TH CAPABILITIES 7 2010-06-19 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O capabilities \- overview of Linux capabilities -capabilities \- Linux ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤Î³µÍ× +capabilities \- Linux のケーパビリティ (capability) の概要 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O For the purpose of performing permission checks, .\"O traditional UNIX implementations distinguish two categories of processes: .\"O .I privileged @@ -66,72 +66,72 @@ capabilities \- Linux .\"O and .\"O .I unprivileged .\"O processes (whose effective UID is nonzero). -¸¢¸Â¤Î¥Á¥§¥Ã¥¯¤ò¹Ô¤¦´ÑÅÀ¤«¤é¸«¤ë¤È¡¢ÅÁÅýŪ¤Ê UNIX ¤Î¼ÂÁõ¤Ç¤Ï -¥×¥í¥»¥¹¤ÏÆó¤Ä¤Î¥«¥Æ¥´¥ê¤ËʬÎà¤Ç¤­¤ë: -.I Æø¢ -¥×¥í¥»¥¹ (¼Â¸ú¥æ¡¼¥¶ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¡£¥æ¡¼¥¶ID 0 ¤Ï -¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤ä root ¤È¸Æ¤Ð¤ì¤ë) ¤È -.I ÈóÆø¢ -¥×¥í¥»¥¹ (¼Â¸ú¥æ¡¼¥¶ID ¤¬ 0 °Ê³°¤Î¥×¥í¥»¥¹) ¤Ç¤¢¤ë¡£ +権限のチェックを行う観点から見ると、伝統的な UNIX の実装では +プロセスは二つのカテゴリに分類できる: +.I 特権 +プロセス (実効ユーザID が 0 のプロセス。ユーザID 0 は +スーパーユーザや root と呼ばれる) と +.I 非特権 +プロセス (実効ユーザID が 0 以外のプロセス) である。 .\"O Privileged processes bypass all kernel permission checks, .\"O while unprivileged processes are subject to full permission .\"O checking based on the process's credentials .\"O (usually: effective UID, effective GID, and supplementary group list). -ÈóÆø¢¥×¥í¥»¥¹¤Ç¤Ï¡¢¥×¥í¥»¥¹¤Î»ñ³Ê¾ðÊó (Ä̾ï¤Ï¡¢¼Â¸úUID ¡¢¼Â¸úGID -¤ÈÄɲäΥ°¥ë¡¼¥×¥ê¥¹¥È) ¤Ë´ð¤Å¤¯¸¢¸Â¥Á¥§¥Ã¥¯¤¬¹Ô¤ï¤ì¤ë¤Î¤ËÂФ·¡¢ -Æø¢¥×¥í¥»¥¹¤Ç¤ÏÁ´¤Æ¤Î¥«¡¼¥Í¥ë¤Î¸¢¸Â¥Á¥§¥Ã¥¯¤¬¥Ð¥¤¥Ñ¥¹¤µ¤ì¤ë¡£ +非特権プロセスでは、プロセスの資格情報 (通常は、実効UID 、実効GID +と追加のグループリスト) に基づく権限チェックが行われるのに対し、 +特権プロセスでは全てのカーネルの権限チェックがバイパスされる。 .\"O Starting with kernel 2.2, Linux divides the privileges traditionally .\"O associated with superuser into distinct units, known as .\"O .IR capabilities , .\"O which can be independently enabled and disabled. .\"O Capabilities are a per-thread attribute. -¥Ð¡¼¥¸¥ç¥ó 2.2 °Ê¹ß¤Î Linux ¤Ç¤Ï¡¢ -¤³¤ì¤Þ¤Ç¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ë·ë¤ÓÉÕ¤±¤é¤ì¤Æ¤­¤¿¸¢¸Â¤ò¡¢ -¤¤¤¯¤Ä¤«¤Î¥°¥ë¡¼¥×¤Ëʬ³ä¤·¤Æ¤¤¤ë¡£¤³¤ì¤é¤Î¥°¥ë¡¼¥×¤Ï -.IR ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) -¤È¸Æ¤Ð¤ì¡¢¥°¥ë¡¼¥×Ëè¤ËÆÈΩ¤ËÍ­¸ú¡¢Ìµ¸ú¤òÀßÄê¤Ç¤­¤ë¡£ -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ï¥¹¥ì¥Ã¥Éñ°Ì¤Î°À­¤Ç¤¢¤ë¡£ +バージョン 2.2 以降の Linux では、 +これまでスーパーユーザに結び付けられてきた権限を、 +いくつかのグループに分割している。これらのグループは +.IR ケーパビリティ (capability) +と呼ばれ、グループ毎に独立に有効、無効を設定できる。 +ケーパビリティはスレッド単位の属性である。 .\" .\"O .SS Capabilities List -.SS ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¥ê¥¹¥È +.SS ケーパビリティのリスト .\"O The following list shows the capabilities implemented on Linux, .\"O and the operations or behaviors that each capability permits: -°Ê²¼¤Î¥ê¥¹¥È¤Ï¡¢ -Linux ¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤È -³Æ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬µö²Ä¤¹¤ëÁàºî¤ÈÆ°ºî¤ò¤Þ¤È¤á¤¿¤â¤Î¤Ç¤¢¤ë¡£ +以下のリストは、 +Linux で実装されているケーパビリティと +各ケーパビリティが許可する操作と動作をまとめたものである。 .TP .\"O .BR CAP_AUDIT_CONTROL " (since Linux 2.6.11)" .\"O Enable and disable kernel auditing; change auditing filter rules; .\"O retrieve auditing status and filtering rules. -.BR CAP_AUDIT_CONTROL " (Linux 2.6.11 °Ê¹ß)" -¥«¡¼¥Í¥ë´Æºº (audit) ¤ÎÍ­¸ú̵¸ú¤ÎÀÚ¤êÂؤ¨¡¢ -´Æºº¤Î¥Õ¥£¥ë¥¿¡¦¥ë¡¼¥ë¤ÎÊѹ¹¡¢ -´Æºº¤Î¾õ¶·¤ä¥Õ¥£¥ë¥¿¡¦¥ë¡¼¥ë¤Î¼èÆÀ¤¬¤Ç¤­¤ë¡£ +.BR CAP_AUDIT_CONTROL " (Linux 2.6.11 以降)" +カーネル監査 (audit) の有効無効の切り替え、 +監査のフィルタ・ルールの変更、 +監査の状況やフィルタ・ルールの取得ができる。 .TP .\"O .BR CAP_AUDIT_WRITE " (since Linux 2.6.11)" -.BR CAP_AUDIT_WRITE " (Linux 2.6.11 °Ê¹ß)" +.BR CAP_AUDIT_WRITE " (Linux 2.6.11 以降)" .\"O Write records to kernel auditing log. -¥«¡¼¥Í¥ë´Æºº¤Î¥í¥°¤Ë¥ì¥³¡¼¥É¤ò½ñ¤­¹þ¤à¡£ +カーネル監査のログにレコードを書き込む。 .TP .B CAP_CHOWN .\"O Make arbitrary changes to file UIDs and GIDs (see .\"O .BR chown (2)). -¥Õ¥¡¥¤¥ë¤Î UID ¤ÈGID ¤òǤ°Õ¤ËÊѹ¹¤¹¤ë +ファイルの UID とGID を任意に変更する .RB ( chown (2) -»²¾È)¡£ +参照)。 .TP .B CAP_DAC_OVERRIDE .\"O Bypass file read, write, and execute permission checks. .\"O (DAC is an abbreviation of "discretionary access control".) -¥Õ¥¡¥¤¥ë¤ÎÆɤ߽Ф·¡¢½ñ¤­¹þ¤ß¡¢¼Â¹Ô¤Î¸¢¸Â¥Á¥§¥Ã¥¯¤ò¥Ð¥¤¥Ñ¥¹¤¹¤ë -(DAC ¤Ï "discretionary access control (Ǥ°Õ¤Î¥¢¥¯¥»¥¹À©¸æ)" ¤Îά¤Ç¤¢¤ë)¡£ +ファイルの読み出し、書き込み、実行の権限チェックをバイパスする +(DAC は "discretionary access control (任意のアクセス制御)" の略である)。 .TP .B CAP_DAC_READ_SEARCH .\"O Bypass file read permission checks and .\"O directory read and execute permission checks. -¥Õ¥¡¥¤¥ë¤ÎÆɤ߽Ф·¸¢¸Â¤Î¥Á¥§¥Ã¥¯¤È¥Ç¥£¥ì¥¯¥È¥ê¤ÎÆɤ߽Ф·¤È¼Â¹Ô -¤Î¸¢¸Â¥Á¥§¥Ã¥¯¤ò¥Ð¥¤¥Ñ¥¹¤¹¤ë¡£ +ファイルの読み出し権限のチェックとディレクトリの読み出しと実行 +の権限チェックをバイパスする。 .TP .B CAP_FOWNER .PD 0 @@ -146,29 +146,29 @@ Linux .\"O .B CAP_DAC_OVERRIDE .\"O and .\"O .BR CAP_DAC_READ_SEARCH ; -Ä̾¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID ¤¬¥Õ¥¡¥¤¥ë¤Î UID ¤Ë°ìÃפ¹¤ë¤³¤È¤¬ -Í׵ᤵ¤ì¤ëÁàºî (Î㤨¤Ð +通常、プロセスのファイルシステム UID がファイルの UID に一致することが +要求される操作 (例えば .BR chmod (2), .BR utime (2)) -¤Ë¤ª¤±¤ë¸¢¸Â¥Á¥§¥Ã¥¯¤ò¥Ð¥¤¥Ñ¥¹¤¹¤ë¡£ -⤷¡¢ +における権限チェックをバイパスする。 +但し、 .B CAP_DAC_OVERRIDE -¤« +か .B CAP_DAC_READ_SEARCH -¤Ë¤è¤ê¥Á¥§¥Ã¥¯¤¬¹Ô¤ï¤ì¤ëÁàºî¤Ï½ü¤¯¡£ +によりチェックが行われる操作は除く。 .IP * .\"O set extended file attributes (see .\"O .BR chattr (1)) .\"O on arbitrary files; -Ǥ°Õ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ³ÈÄ¥¥Õ¥¡¥¤¥ë°À­¤òÀßÄꤹ¤ë +任意のファイルに対して拡張ファイル属性を設定する .RB ( chattr (1) -»²¾È)¡£ +参照)。 .IP * .\"O set Access Control Lists (ACLs) on arbitrary files; -Ǥ°Õ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¥¢¥¯¥»¥¹À©¸æ¥ê¥¹¥È (ACL) ¤òÀßÄꤹ¤ë¡£ +任意のファイルに対してアクセス制御リスト (ACL) を設定する。 .IP * .\"O ignore directory sticky bit on file deletion; -¥Õ¥¡¥¤¥ë¤Îºï½ü¤ÎºÝ¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¥¹¥Æ¥£¥Ã¥­¡¼¥Ó¥Ã¥È¤ò̵»ë¤¹¤ë¡£ +ファイルの削除の際にディレクトリのスティッキービットを無視する。 .IP * .\"O specify .\"O .B O_NOATIME @@ -177,11 +177,11 @@ Linux .\"O and .\"O .BR fcntl (2). .BR open (2) -¤ä +や .BR fcntl (2) -¤ÇǤ°Õ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ +で任意のファイルに対して .B O_NOATIME -¤ò»ØÄꤹ¤ë¡£ +を指定する。 .RE .PD .TP @@ -190,9 +190,9 @@ Linux .\"O bits when a file is modified; .\"O set the set-group-ID bit for a file whose GID does not match .\"O the file system or any of the supplementary GIDs of the calling process. -¥Õ¥¡¥¤¥ë¤¬Êѹ¹¤µ¤ì¤¿¤È¤­¤Ë set-user-ID ¤Èset-group-ID ¤Îµö²Ä¥Ó¥Ã¥È¤ò¥¯¥ê¥¢ -¤·¤Ê¤¤¡£¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à GID ¤ÈÄɲäΠGID ¤Î¤¤¤º¤ì¤È¤â -GID ¤¬°ìÃפ·¤Ê¤¤¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ set-group-ID ¥Ó¥Ã¥È¤òÀßÄꤹ¤ë¡£ +ファイルが変更されたときに set-user-ID とset-group-ID の許可ビットをクリア +しない。呼び出し元プロセスのファイルシステム GID と追加の GID のいずれとも +GID が一致しないファイルに対して set-group-ID ビットを設定する。 .TP .B CAP_IPC_LOCK .\"O Lock memory @@ -200,16 +200,16 @@ GID .\"O .BR mlockall (2), .\"O .BR mmap (2), .\"O .BR shmctl (2)). -¥á¥â¥ê¡¼¤Î¥í¥Ã¥¯ +メモリーのロック .RB ( mlock (2), .BR mlockall (2), .BR mmap (2), .BR shmctl (2)) -¤ò¹Ô¤¦¡£ +を行う。 .TP .B CAP_IPC_OWNER .\"O Bypass permission checks for operations on System V IPC objects. -System V IPC ¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ¹¤ëÁàºî¤Ë´Ø¤·¤Æ¸¢¸Â¥Á¥§¥Ã¥¯¤ò¥Ð¥¤¥Ñ¥¹¤¹¤ë¡£ +System V IPC オブジェクトに対する操作に関して権限チェックをバイパスする。 .TP .B CAP_KILL .\"O Bypass permission checks for sending signals (see @@ -218,13 +218,13 @@ System V IPC .\"O .BR ioctl (2) .\"O .B KDSIGACCEPT .\"O operation. -¥·¥°¥Ê¥ë¤òÁ÷¿®¤¹¤ëºÝ¤Ë¸¢¸Â¥Á¥§¥Ã¥¯¤ò¥Ð¥¤¥Ñ¥¹¤¹¤ë +シグナルを送信する際に権限チェックをバイパスする .RB ( kill (2) -»²¾È)¡£¤³¤ì¤Ë¤Ï +参照)。これには .BR ioctl (2) -¤Î +の .B KDSIGACCEPT -Áàºî¤Î»ÈÍѤâ´Þ¤Þ¤ì¤ë¡£ +操作の使用も含まれる。 .\" FIXME CAP_KILL also has an effect for threads + setting child .\" termination signal to other than SIGCHLD: without this .\" capability, the termination signal reverts to SIGCHLD @@ -232,13 +232,13 @@ System V IPC .\" for this? .TP .\"O .BR CAP_LEASE " (since Linux 2.4)" -.BR CAP_LEASE " (Linux 2.4 °Ê¹ß)" +.BR CAP_LEASE " (Linux 2.4 以降)" .\"O Establish leases on arbitrary files (see .\"O .BR fcntl (2)). -Ǥ°Õ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ -¥Õ¥¡¥¤¥ë¥ê¡¼¥¹¤òÀßÄꤹ¤ë +任意のファイルに対して +ファイルリースを設定する .RB ( fcntl (2) -»²¾È)¡£ +参照)。 .TP .B CAP_LINUX_IMMUTABLE .\"O Set the @@ -248,73 +248,73 @@ System V IPC .\"O .\" These attributes are now available on ext2, ext3, Reiserfs, XFS, JFS .\"O i-node flags (see .\"O .BR chattr (1)). -³ÈÄ¥¥Õ¥¡¥¤¥ë°À­ +拡張ファイル属性 .B FS_APPEND_FL -¤È +と .B FS_IMMUTABLE_FL -¤òÀßÄꤹ¤ë +を設定する .RB ( chattr (1) -»²¾È)¡£ -.\" ¤³¤ì¤é¤Î°À­¤Ï ext2, ext3, Reiserfs, XFS, JFS ¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +参照)。 +.\" これらの属性は ext2, ext3, Reiserfs, XFS, JFS で利用可能である。 .TP .\"O .BR CAP_MAC_ADMIN " (since Linux 2.6.25)" -.BR CAP_MAC_ADMIN " (Linux 2.6.25 °Ê¹ß)" +.BR CAP_MAC_ADMIN " (Linux 2.6.25 以降)" .\"O Override Mandatory Access Control (MAC). .\"O Implemented for the Smack Linux Security Module (LSM). -¶¯À©¥¢¥¯¥»¥¹À©¸æ (MAC) ¤ò¾å½ñ¤­¤¹¤ë¡£ -Smack Linux Security Module (LSM) ÍѤ˼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +強制アクセス制御 (MAC) を上書きする。 +Smack Linux Security Module (LSM) 用に実装されている。 .TP .\"O .BR CAP_MAC_OVERRIDE " (since Linux 2.6.25)" -.BR CAP_MAC_OVERRIDE " (Linux 2.6.25 °Ê¹ß)" +.BR CAP_MAC_OVERRIDE " (Linux 2.6.25 以降)" .\"O Allow MAC configuration or state changes. .\"O Implemented for the Smack LSM. -MAC ¤ÎÀßÄê¤ä¾õÂÖ¤òÊѹ¹¤¹¤ë¡£ -Smack LSM ÍѤ˼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +MAC の設定や状態を変更する。 +Smack LSM 用に実装されている。 .TP .\"O .BR CAP_MKNOD " (since Linux 2.4)" -.BR CAP_MKNOD " (Linux 2.4 °Ê¹ß)" +.BR CAP_MKNOD " (Linux 2.4 以降)" .\"O Create special files using .\"O .BR mknod (2). -(Linux 2.4 °Ê¹ß) +(Linux 2.4 以降) .BR mknod (2) -¤ò»ÈÍѤ·¤Æ¥¹¥Ú¥·¥ã¥ë¡¦¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¡£ +を使用してスペシャル・ファイルを作成する。 .TP .B CAP_NET_ADMIN .\"O Perform various network-related operations .\"O (e.g., setting privileged socket options, .\"O enabling multicasting, interface configuration, .\"O modifying routing tables). -³Æ¼ï¤Î¥Í¥Ã¥È¥ï¡¼¥¯´ØÏ¢¤ÎÁàºî¤ò¼Â¹Ô¤¹¤ë¡£ -(Î㤨¤Ð¡¢Æø¢¤¬É¬Íפʥ½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ë¡¢¥Þ¥ë¥Á¥­¥ã¥¹¥È¤òÍ­¸ú¤Ë¤¹¤ë¡¢ -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÀßÄꤹ¤ë¡¢¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤òÊѹ¹¤¹¤ë¤Ê¤É) +各種のネットワーク関連の操作を実行する。 +(例えば、特権が必要なソケットオプションを設定する、マルチキャストを有効にする、 +インターフェースを設定する、ルーティングテーブルを変更するなど) .TP .B CAP_NET_BIND_SERVICE .\"O Bind a socket to Internet domain privileged ports .\"O (port numbers less than 1024). -¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥É¥á¥¤¥ó¤ÎÆø¢¥Ý¡¼¥È (¥Ý¡¼¥ÈÈֹ椬 1024 ÈÖ̤Ëþ) -¤ò¥Ð¥¤¥ó¥É¤Ç¤­¤ë¡£ +インターネットドメインの特権ポート (ポート番号が 1024 番未満) +をバインドできる。 .TP .B CAP_NET_BROADCAST .\"O (Unused) Make socket broadcasts, and listen to multicasts. -(̤»ÈÍÑ) ¥½¥±¥Ã¥È¤Î¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¤È¡¢¥Þ¥ë¥Á¥­¥ã¥¹¥È¤ÎÂÔ¤Á¼õ¤±¤ò¹Ô¤¦¡£ +(未使用) ソケットのブロードキャストと、マルチキャストの待ち受けを行う。 .TP .B CAP_NET_RAW .\"O Use RAW and PACKET sockets. .\"O .\" Also various IP options and setsockopt(SO_BINDTODEVICE) -RAW ¥½¥±¥Ã¥È¤È PACKET ¥½¥±¥Ã¥È¤ò»ÈÍѤ¹¤ë¡£ -.\" ¤Þ¤¿¡¢³Æ¼ï¤Î IP ¥ª¥×¥·¥ç¥ó¤È SO_BINDTODEVICE ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤǤ­¤ë¡£ +RAW ソケットと PACKET ソケットを使用する。 +.\" また、各種の IP オプションと SO_BINDTODEVICE ソケットオプションを使用できる。 .TP .B CAP_SETGID .\"O Make arbitrary manipulations of process GIDs and supplementary GID list; .\"O forge GID when passing socket credentials via UNIX domain sockets. -¥×¥í¥»¥¹¤Î GID ¤ÈÄɲäΠGID ¥ê¥¹¥È¤ËÂФ¹¤ëǤ°Õ¤ÎÁàºî¤ò¹Ô¤¦¡£ -UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È·Ðͳ¤Ç¥½¥±¥Ã¥È¤Î»ñ³Ê¾ðÊó (credential) ¤òÅϤ¹ºÝ¤Ë -µ¶¤Î GID ¤òÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¡£ +プロセスの GID と追加の GID リストに対する任意の操作を行う。 +UNIX ドメインソケット経由でソケットの資格情報 (credential) を渡す際に +偽の GID を渡すことができる。 .TP .\"O .BR CAP_SETFCAP " (since Linux 2.6.24)" -.BR CAP_SETFCAP " (Linux 2.6.24 °Ê¹ß)" +.BR CAP_SETFCAP " (Linux 2.6.24 以降)" .\"O Set file capabilities. -¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÀßÄꤹ¤ë¡£ +ファイルケーパビリティを設定する。 .TP .B CAP_SETPCAP .\"O If file capabilities are not supported: @@ -326,15 +326,15 @@ UNIX .\"O file capabilities, since .\"O .B CAP_SETPCAP .\"O has entirely different semantics for such kernels.) -¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç: -¸Æ¤Ó½Ð¤·¸µ¤¬µö²Ä¤µ¤ì¤Æ¤¤¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë´Þ¤Þ¤ì¤ëǤ°Õ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¡¢ -¾¤Î¥×¥í¥»¥¹¤ËÉÕÍ¿¤·¤¿¤ê¡¢ºï½ü¤·¤¿¤ê¤Ç¤­¤ë¡£ -(¥«¡¼¥Í¥ë¤¬¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¡¢ +ファイルケーパビリティがサポートされていない場合: +呼び出し元が許可されているケーパビリティセットに含まれる任意のケーパビリティを、 +他のプロセスに付与したり、削除したりできる。 +(カーネルがファイルケーパビリティをサポートしている場合、 .B CAP_SETPCAP -¤Ï¤³¤ÎÌò³ä¤ò»ý¤¿¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¡¢¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥«¡¼¥Í¥ë¤Ç¤Ï +はこの役割を持たない。 +なぜなら、ファイルケーパビリティをサポートしているカーネルでは .B CAP_SETPCAP -¤ÏÁ´¤¯Ê̤ΰÕÌ£¤ò»ý¤Ä¤«¤é¤Ç¤¢¤ë¡£) +は全く別の意味を持つからである。) .\"O If file capabilities are supported: .\"O add any capability from the calling thread's bounding set @@ -345,15 +345,15 @@ UNIX .\"O make changes to the .\"O .I securebits .\"O flags. -¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç: -¸Æ¤Ó½Ð¤·¸µ¥¹¥ì¥Ã¥É¤Î¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤ÎǤ°Õ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò -¼«¿È¤Î·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ËÄɲäǤ­¤ë¡£ +ファイルケーパビリティがサポートされている場合: +呼び出し元スレッドのバウンディングセットの任意のケーパビリティを +自身の継承可能ケーパビリティセットに追加できる。 .RB ( prctl (2) .BR PR_CAPBSET_DROP -¤ò»È¤Ã¤Æ) -¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤«¤é¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òºï½ü¤Ç¤­¤ë¡£ +を使って) +バウンディングセットからケーパビリティを削除できる。 .I securebits -¥Õ¥é¥°¤òÊѹ¹¤Ç¤­¤ë¡£ +フラグを変更できる。 .TP .B CAP_SETUID .\"O Make arbitrary manipulations of process UIDs @@ -362,14 +362,14 @@ UNIX .\"O .BR setresuid (2), .\"O .BR setfsuid (2)); .\"O make forged UID when passing socket credentials via UNIX domain sockets. -¥×¥í¥»¥¹¤Î UID ¤ËÂФ¹¤ëǤ°Õ¤ÎÁàºî +プロセスの UID に対する任意の操作 .RB ( setuid (2), .BR setreuid (2), .BR setresuid (2), .BR setfsuid (2)) -¤ò¹Ô¤¦¡£ -UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È·Ðͳ¤Ç¥½¥±¥Ã¥È¤Î»ñ³Ê¾ðÊó (credential) ¤òÅϤ¹ºÝ¤Ë -µ¶¤Î UID ¤òÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¡£ +を行う。 +UNIX ドメインソケット経由でソケットの資格情報 (credential) を渡す際に +偽の UID を渡すことができる。 .\" FIXME CAP_SETUID also an effect in exec(); document this. .TP .B CAP_SYS_ADMIN @@ -385,7 +385,7 @@ UNIX .\"O .BR sethostname (2), .\"O and .\"O .BR setdomainname (2); -°Ê²¼¤Î¥·¥¹¥Æ¥à´ÉÍýÍѤÎÁàºî¤ò¼Â¹Ô¤¹¤ë: +以下のシステム管理用の操作を実行する: .BR quotactl (2), .BR mount (2), .BR umount (2), @@ -399,11 +399,11 @@ UNIX .\"O and .\"O .B IPC_RMID .\"O operations on arbitrary System V IPC objects; -Ǥ°Õ¤Î System V IPC ¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ¹¤ë +任意の System V IPC オブジェクトに対する .B IPC_SET -¤È +と .B IPC_RMID -Áàºî¤ò¼Â¹Ô¤¹¤ë¡£ +操作を実行する。 .IP * .\"O perform operations on .\"O .I trusted @@ -411,18 +411,18 @@ UNIX .\"O .I security .\"O Extended Attributes (see .\"O .BR attr (5)); -³Èĥ°À­ +拡張属性 .I trusted -¤È +と .I security -¤ËÂФ¹¤ëÁàºî¤ò¼Â¹Ô¤¹¤ë +に対する操作を実行する .RB ( attr (5) -»²¾È)¡£ +参照)。 .IP * .\"O use .\"O .BR lookup_dcookie (2); .BR lookup_dcookie (2) -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .IP * .\"O use .\"O .BR ioprio_set (2) @@ -432,15 +432,15 @@ UNIX .\"O .B IOPRIO_CLASS_IDLE .\"O I/O scheduling classes; .BR ioprio_set (2) -¤ò»È¤Ã¤Æ I/O ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹ +を使って I/O スケジューリングクラス .BR IOPRIO_CLASS_RT , .B IOPRIO_CLASS_IDLE -¤ò³ä¤êÅö¤Æ¤ë +を割り当てる .RB ( IOPRIO_CLASS_IDLE -¤Ï Linux 2.6.25 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¤ß)¡£ +は Linux 2.6.25 より前のバージョンのみ)。 .IP * .\"O forge UID when passing socket credentials; -¥½¥±¥Ã¥È¤Î»ñ³Ê¾ðÊó (credential) ¤òÅϤ¹ºÝ¤Ëµ¶¤Î UID ¤òÅϤ¹¡£ +ソケットの資格情報 (credential) を渡す際に偽の UID を渡す。 .IP * .\"O exceed .\"O .IR /proc/sys/fs/file-max , @@ -450,14 +450,14 @@ UNIX .\"O .BR execve (2), .\"O .BR open (2), .\"O .BR pipe (2)); -¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë (Î㤨¤Ð +ファイルをオープンするシステムコール (例えば .BR accept (2), .BR execve (2), .BR open (2), .BR pipe (2)) -¤Ç¥·¥¹¥Æ¥àÁ´ÂΤǥª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¿ô¤Î¾å¸Â +でシステム全体でオープンできるファイル数の上限 .I /proc/sys/fs/file-max -¤òĶ²á¤¹¤ë¡£ +を超過する。 .IP * .\"O employ .\"O .B CLONE_NEWNS @@ -466,11 +466,11 @@ UNIX .\"O and .\"O .BR unshare (2); .BR clone (2) -¤È +と .BR unshare (2) -¤Ç +で .B CLONE_NEWNS -¥Õ¥é¥°¤òÍøÍѤ¹¤ë¡£ +フラグを利用する。 .IP * .\"O perform .\"O .B KEYCTL_CHOWN @@ -479,20 +479,20 @@ UNIX .\"O .BR keyctl (2) .\"O operations; .BR keyctl (2) -¤Î +の .B KEYCTL_CHOWN -¤È +と .B KEYCTL_SETPERM -Áàºî¤ò¼Â¹Ô¤¹¤ë¡£ +操作を実行する。 .IP * .\"O perform .\"O .BR madvise (2) .\"O .B MADV_HWPOISON .\"O operation. .BR madvise (2) -¤Î +の .B MADV_HWPOISON -Áàºî¤ò¼Â¹Ô¤¹¤ë¡£ +操作を実行する。 .RE .PD .TP @@ -502,15 +502,15 @@ UNIX .\"O and .\"O .BR kexec_load (2). .BR reboot (2) -¤È +と .BR kexec_load (2) -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .TP .B CAP_SYS_CHROOT .\"O Use .\"O .BR chroot (2). .BR chroot (2). -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .TP .B CAP_SYS_MODULE .\"O Load and unload kernel modules @@ -520,14 +520,14 @@ UNIX .\"O .BR delete_module (2)); .\"O in kernels before 2.6.25: .\"O drop capabilities from the system-wide capability bounding set. -¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¤Î¥í¡¼¥É¡¢¥¢¥ó¥í¡¼¥É¤ò¹Ô¤¦ +カーネルモジュールのロード、アンロードを行う .RB ( init_module (2) -¤È +と .BR delete_module (2) -¤ò»²¾È¤Î¤³¤È)¡£ -¥Ð¡¼¥¸¥ç¥ó 2.6.25 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¡¢ -¥·¥¹¥Æ¥àÁ´ÂΤΥ±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È (capability bounding set) -¤«¤é¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò³°¤¹¡£ +を参照のこと)。 +バージョン 2.6.25 より前のカーネルで、 +システム全体のケーパビリティバウンディングセット (capability bounding set) +からケーパビリティを外す。 .TP .B CAP_SYS_NICE .PD 0 @@ -537,36 +537,36 @@ UNIX .\"O .RB ( nice (2), .\"O .BR setpriority (2)) .\"O and change the nice value for arbitrary processes; -¥×¥í¥»¥¹¤Î nice Ãͤΰú¤­¾å¤² +プロセスの nice 値の引き上げ .RB ( nice (2), .BR setpriority (2)) -¤ä¡¢Ç¤°Õ¤Î¥×¥í¥»¥¹¤Î nice ÃͤÎÊѹ¹¤ò¹Ô¤¦¡£ +や、任意のプロセスの nice 値の変更を行う。 .IP * .\"O set real-time scheduling policies for calling process, .\"O and set scheduling policies and priorities for arbitrary processes .\"O .RB ( sched_setscheduler (2), .\"O .BR sched_setparam (2)); -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤ËÂФ¹¤ë¥ê¥¢¥ë¥¿¥¤¥à¡¦¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥Ý¥ê¥·¡¼¤È¡¢ -Ǥ°Õ¤Î¥×¥í¥»¥¹¤ËÂФ¹¤ë¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥Ý¥ê¥·¡¼¤ÈÍ¥ÀèÅÙ¤òÀßÄꤹ¤ë +呼び出し元プロセスに対するリアルタイム・スケジューリングポリシーと、 +任意のプロセスに対するスケジューリングポリシーと優先度を設定する .RB ( sched_setscheduler (2), -.BR sched_setparam (2))¡£ +.BR sched_setparam (2))。 .IP * .\"O set CPU affinity for arbitrary processes .\"O .RB ( sched_setaffinity (2)); -Ǥ°Õ¤Î¥×¥í¥»¥¹¤ËÂФ¹¤ë CPU affinity ¤òÀßÄê¤Ç¤­¤ë -.RB ( sched_setaffinity (2))¡£ +任意のプロセスに対する CPU affinity を設定できる +.RB ( sched_setaffinity (2))。 .IP * .\"O set I/O scheduling class and priority for arbitrary processes .\"O .RB ( ioprio_set (2)); -Ǥ°Õ¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ I/O ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹¤ÈÍ¥ÀèÅÙ¤òÀßÄê¤Ç¤­¤ë -.RB ( ioprio_set (2))¡£ +任意のプロセスに対して I/O スケジューリングクラスと優先度を設定できる +.RB ( ioprio_set (2))。 .IP * .\"O apply .\"O .BR migrate_pages (2) .\"O to arbitrary processes and allow processes .\"O to be migrated to arbitrary nodes; .BR migrate_pages (2) -¤òǤ°Õ¤Î¥×¥í¥»¥¹¤ËŬÍѤ·¡¢¥×¥í¥»¥¹¤òǤ°Õ¤Î¥Î¡¼¥É¤Ë°ÜÆ°¤¹¤ë¡£ +を任意のプロセスに適用し、プロセスを任意のノードに移動する。 .\" FIXME CAP_SYS_NICE also has the following effect for .\" migrate_pages(2): .\" do_migrate_pages(mm, &old, &new, @@ -576,7 +576,7 @@ UNIX .\"O .BR move_pages (2) .\"O to arbitrary processes; .BR move_pages (2) -¤òǤ°Õ¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ¹Ô¤¦¡£ +を任意のプロセスに対して行う。 .IP * .\"O use the .\"O .B MPOL_MF_MOVE_ALL @@ -585,11 +585,11 @@ UNIX .\"O and .\"O .BR move_pages (2). .BR mbind (2) -¤È +と .BR move_pages (2) -¤Ç +で .B MPOL_MF_MOVE_ALL -¥Õ¥é¥°¤ò»ÈÍѤ¹¤ë¡£ +フラグを使用する。 .RE .PD .TP @@ -597,7 +597,7 @@ UNIX .\"O Use .\"O .BR acct (2). .BR acct (2) -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .TP .B CAP_SYS_PTRACE .\"O Trace arbitrary processes using @@ -606,10 +606,10 @@ UNIX .\"O .BR get_robust_list (2) .\"O to arbitrary processes. .BR ptrace (2) -¤ò»È¤Ã¤ÆǤ°Õ¤Î¥×¥í¥»¥¹¤ò¥È¥ì¡¼¥¹¤¹¤ë¡£ -Ǥ°Õ¤Î¥×¥í¥»¥¹¤Ë +を使って任意のプロセスをトレースする。 +任意のプロセスに .BR get_robust_list (2) -¤òŬÍѤ¹¤ë¡£ +を適用する。 .TP .B CAP_SYS_RAWIO .\"O Perform I/O port operations @@ -618,40 +618,40 @@ UNIX .\"O .BR ioperm (2)); .\"O access .\"O .IR /proc/kcore . -I/O ¥Ý¡¼¥ÈÁàºî¤ò¼Â¹Ô¤¹¤ë +I/O ポート操作を実行する .RB ( iopl (2) -¡¢ -.BR ioperm (2))¡£ +、 +.BR ioperm (2))。 .I /proc/kcore -¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ +にアクセスできる。 .TP .B CAP_SYS_RESOURCE .PD 0 .RS .IP * 2 .\"O Use reserved space on ext2 file systems; -ext2 ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤ÎͽÌ󤵤ì¤Æ¤¤¤ëÎΰè¤ò»ÈÍѤ¹¤ë¡£ +ext2 ファイルシステム上の予約されている領域を使用する。 .IP * .\"O make .\"O .BR ioctl (2) .\"O calls controlling ext3 journaling; -ext3 ¤Î¥¸¥ã¡¼¥Ê¥ëµ¡Ç½¤òÀ©¸æ¤¹¤ë +ext3 のジャーナル機能を制御する .BR ioctl (2) -¤ò»ÈÍѤ¹¤ë¡£ +を使用する。 .IP * .\"O override disk quota limits; -¥Ç¥£¥¹¥¯ quota ¤Î¾å¸Â¤ò¾å½ñ¤­¤¹¤ë¡£ +ディスク quota の上限を上書きする。 .IP * .\"O increase resource limits (see .\"O .BR setrlimit (2)); -¥ê¥½¡¼¥¹¾å¸Â¤òÁý¤ä¤¹ -.RB ( setrlimit (2))¡£ +リソース上限を増やす +.RB ( setrlimit (2))。 .IP * .\"O override .\"O .B RLIMIT_NPROC .\"O resource limit; .B RLIMIT_NPROC -¥ê¥½¡¼¥¹À©¸Â¤ò¾å½ñ¤­¤¹¤ë¡£ +リソース制限を上書きする。 .IP * .\"O raise .\"O .I msg_qbytes @@ -661,24 +661,24 @@ ext3 .\"O .BR msgop (2) .\"O and .\"O .BR msgctl (2)). -¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ë´Ø¤¹¤ë¾å¸Â +メッセージキューに関する上限 .I msg_qbytes -¤ò +を .I /proc/sys/kernel/msgmnb -¤Ë»ØÄꤵ¤ì¤Æ¤¤¤ë¾å¸Â¤è¤ê¤âÂ礭¤¯ÀßÄꤹ¤ë +に指定されている上限よりも大きく設定する .RB ( msgop (2) -¤È +と .BR msgctl (2) -»²¾È)¡£ +参照)。 .IP * .\"O use .\"O .BR F_SETPIPE_SZ .\"O to increase the capacity of a pipe above the limit specified by .\"O .IR /proc/sys/fs/pipe-max-size . .I /proc/sys/fs/pipe-max-size -¤Ë»ØÄꤵ¤ì¤Æ¤¤¤ë¾å¸Â¤òĶ¤¨¤Æ¥Ñ¥¤¥×¤ÎÍÆÎ̤òÁý¤ä¤¹¤Î¤Ë +に指定されている上限を超えてパイプの容量を増やすのに .B F_SETPIPE_SZ -¤ò»ÈÍѤ¹¤ë¡£ +を使用する。 .RE .PD .TP @@ -688,50 +688,50 @@ ext3 .\"O .BR stime (2), .\"O .BR adjtimex (2)); .\"O set real-time (hardware) clock. -¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤òÊѹ¹¤¹¤ë +システムクロックを変更する .RB ( settimeofday (2), .BR stime (2), -.BR adjtimex (2))¡£ -¥ê¥¢¥ë¥¿¥¤¥à (¥Ï¡¼¥É¥¦¥§¥¢) ¥¯¥í¥Ã¥¯¤òÊѹ¹¤¹¤ë¡£ +.BR adjtimex (2))。 +リアルタイム (ハードウェア) クロックを変更する。 .TP .B CAP_SYS_TTY_CONFIG .\"O Use .\"O .BR vhangup (2). .BR vhangup (2) -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .\" .\"O .SS Past and Current Implementation -.SS ²áµî¤È¸½ºß¤Î¼ÂÁõ +.SS 過去と現在の実装 .\"O A full implementation of capabilities requires that: -´°Á´¤Ê·Á¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¼ÂÁõ¤¹¤ë¤Ë¤Ï¡¢°Ê²¼¤ÎÍ×·ï¤òËþ¤¿¤¹É¬Íפ¬¤¢¤ë¡§ +完全な形のケーパビリティを実装するには、以下の要件を満たす必要がある: .IP 1. 3 .\"O For all privileged operations, .\"O the kernel must check whether the thread has the required .\"O capability in its effective set. -Á´¤Æ¤ÎÆø¢Áàºî¤Ë¤Ä¤¤¤Æ¡¢¥«¡¼¥Í¥ë¤Ï¤½¤Î¥¹¥ì¥Ã¥É¤Î¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë -ɬÍפʥ±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¤¢¤ë¤«¤ò³Îǧ¤¹¤ë¡£ +全ての特権操作について、カーネルはそのスレッドの実効ケーパビリティセットに +必要なケーパビリティがあるかを確認する。 .IP 2. .\"O The kernel must provide system calls allowing a thread's capability sets to .\"O be changed and retrieved. -¥«¡¼¥Í¥ë¤Ç¡¢¤¢¤ë¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤òÊѹ¹¤·¤¿¤ê¡¢ -¼èÆÀ¤·¤¿¤ê¤Ç¤­¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Ä󶡤µ¤ì¤ë¡£ +カーネルで、あるスレッドのケーパビリティセットを変更したり、 +取得したりできるシステムコールが提供される。 .IP 3. .\"O The file system must support attaching capabilities to an executable file, .\"O so that a process gains those capabilities when the file is executed. -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¡¢¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤Ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÉÕÍ¿¤Ç¤­¡¢¥Õ¥¡¥¤¥ë -¼Â¹Ô»þ¤Ë¤½¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥×¥í¥»¥¹¤¬¼èÆÀ¤Ç¤­¤ë¤è¤¦¤Êµ¡Ç½¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ +ファイルシステムが、実行可能ファイルにケーパビリティを付与でき、ファイル +実行時にそのケーパビリティをプロセスが取得できるような機能をサポートする。 .PP .\"O Before kernel 2.6.24, only the first two of these requirements are met; .\"O since kernel 2.6.24, all three requirements are met. -¥«¡¼¥Í¥ë 2.6.24 ¤è¤êÁ°¤Ç¤Ï¡¢ºÇ½é¤Î 2¤Ä¤ÎÍ×·ï¤Î¤ß¤¬Ëþ¤¿¤µ¤ì¤Æ¤¤¤ë¡£ -¥«¡¼¥Í¥ë 2.6.24 °Ê¹ß¤Ç¤Ï¡¢3¤Ä¤ÎÍ׷魯¤Ù¤Æ¤¬Ëþ¤¿¤µ¤ì¤Æ¤¤¤ë¡£ +カーネル 2.6.24 より前では、最初の 2つの要件のみが満たされている。 +カーネル 2.6.24 以降では、3つの要件すべてが満たされている。 .\" .\"O .SS Thread Capability Sets -.SS ¥¹¥ì¥Ã¥É¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È +.SS スレッドケーパビリティセット .\"O Each thread has three capability sets containing zero or more .\"O of the above capabilities: -³Æ¥¹¥ì¥Ã¥É¤Ï°Ê²¼¤Î 3¼ïÎà¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ò»ý¤Ä¡£³Æ¡¹¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ï -¾åµ­¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ÎÁȤ߹ç¤ï¤»¤Ç¤¢¤ë (Á´¤Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬Ìµ¸ú¤Ç¤â¤è¤¤)¡£ +各スレッドは以下の 3種類のケーパビリティセットを持つ。各々のケーパビリティセットは +上記のケーパビリティの組み合わせである (全てのケーパビリティが無効でもよい)。 .TP .\"O .IR Permitted : .\"O This is a limiting superset for the effective @@ -740,24 +740,24 @@ ext3 .\"O may be added to the inheritable set by a thread that does not have the .\"O .B CAP_SETPCAP .\"O capability in its effective set. -.IR "µö²Ä (permitted)" : -¤½¤Î¥¹¥ì¥Ã¥É¤¬»ý¤Ä¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î -¸ÂÄêŪ¤Ê¥¹¡¼¥Ñ¡¼¥»¥Ã¥È¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï¡¢¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë +.IR "許可 (permitted)" : +そのスレッドが持つことになっている実効ケーパビリティの +限定的なスーパーセットである。 +これは、実効ケーパビリティセットに .B CAP_SETPCAP -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¥¹¥ì¥Ã¥É¤¬·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë -ÄɲòÄǽ¤Ê¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¸ÂÄêŪ¤Ê¥¹¡¼¥Ñ¡¼¥»¥Ã¥È¤Ç¤â¤¢¤ë¡£ +ケーパビリティを持っていないスレッドが継承可能ケーパビリティセットに +追加可能なケーパビリティの限定的なスーパーセットでもある。 .\"O If a thread drops a capability from its permitted set, .\"O it can never reacquire that capability (unless it .\"O .BR execve (2)s .\"O either a set-user-ID-root program, or .\"O a program whose associated file capabilities grant that capability). -µö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤«¤éºï½ü¤·¤Æ¤·¤Þ¤Ã¤¿¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ï¡¢ -(set-user-ID-root ¥×¥í¥°¥é¥à¤«¡¢ -¤½¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Çµö²Ä¤·¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤ò +許可ケーパビリティセットから削除してしまったケーパビリティは、 +(set-user-ID-root プログラムか、 +そのケーパビリティをファイルケーパビリティで許可しているプログラムを .BR execve (2) -¤·¤Ê¤¤¸Â¤ê¤Ï) ¤â¤¦°ìÅÙ³ÍÆÀ¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +しない限りは) もう一度獲得することはできない。 .TP .\"O .IR Inheritable : .\"O This is a set of capabilities preserved across an @@ -765,20 +765,20 @@ ext3 .\"O It provides a mechanism for a process to assign capabilities .\"O to the permitted set of the new program during an .\"O .BR execve (2). -.IR "·Ñ¾µ²Äǽ (inheritable)" : +.IR "継承可能 (inheritable)" : .BR execve (2) -¤òÁ°¸å¤ÇÊÝ»ý¤µ¤ì¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ç¤¢¤ë¡£ -¤³¤Î»ÅÁȤߤò»È¤¦¤³¤È¤Ç¡¢¤¢¤ë¥×¥í¥»¥¹¤¬ +を前後で保持されるケーパビリティセットである。 +この仕組みを使うことで、あるプロセスが .BR execve (2) -¤ò¹Ô¤¦ºÝ¤Ë¿·¤·¤¤¥×¥í¥°¥é¥à¤Îµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤È¤·¤Æ -³ä¤êÅö¤Æ¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を行う際に新しいプログラムの許可ケーパビリティセットとして +割り当てるケーパビリティを指定することができる。 .TP .\"O .IR Effective : .\"O This is the set of capabilities used by the kernel to .\"O perform permission checks for the thread. -.IR "¼Â¸ú (effective)" : -¥«¡¼¥Í¥ë¤¬¥¹¥ì¥Ã¥É¤Î¸¢¸Â (permission) ¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤È¤­¤Ë -»ÈÍѤ¹¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ç¤¢¤ë¡£ +.IR "実効 (effective)" : +カーネルがスレッドの権限 (permission) をチェックするときに +使用するケーパビリティセットである。 .PP .\"O A child created via .\"O .BR fork (2) @@ -786,19 +786,19 @@ ext3 .\"O See below for a discussion of the treatment of capabilities during .\"O .BR execve (2). .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤ë»Ò¥×¥í¥»¥¹¤Ï¡¢¿Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£ +で作成される子プロセスは、親のケーパビリティセットのコピーを継承する。 .BR execve (2) -Ãæ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î°·¤¤¤Ë¤Ä¤¤¤Æ¤Ï²¼µ­¤ò»²¾È¤Î¤³¤È¡£ +中のケーパビリティの扱いについては下記を参照のこと。 .PP .\"O Using .\"O .BR capset (2), .\"O a thread may manipulate its own capability sets (see below). .BR capset (2) -¤ò»È¤¦¤È¡¢¥×¥í¥»¥¹¤Ï¼«Ê¬¼«¿È¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È -¤òÁàºî¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë (²¼µ­»²¾È)¡£ +を使うと、プロセスは自分自身のケーパビリティセット +を操作することができる (下記参照)。 .\" .\"O .SS File Capabilities -.SS ¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ +.SS ファイルケーパビリティ .\"O Since kernel 2.6.24, the kernel supports .\"O associating capability sets with an executable file using .\"O .BR setcap (8). @@ -809,49 +809,49 @@ ext3 .\"O Writing to this extended attribute requires the .\"O .BR CAP_SETFCAP .\"O capability. -¥«¡¼¥Í¥ë 2.6.24 °Ê¹ß¤Ç¤Ï¡¢ +カーネル 2.6.24 以降では、 .BR setcap (8) -¤ò»È¤Ã¤Æ¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤òÂбþÉÕ¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ï +を使って実行ファイルにケーパビリティセットを対応付けることができる。 +ファイルケーパビリティセットは .I "security.capability" -¤È¤¤¤¦Ì¾Á°¤Î³Èĥ°À­¤ËÊݸ¤µ¤ì¤ë +という名前の拡張属性に保存される .RB ( setxattr (2) -»²¾È)¡£¤³¤Î³Èĥ°À­¤Ø¤Î½ñ¤­¹þ¤ß¤Ë¤Ï +参照)。この拡張属性への書き込みには .B CAP_SETFCAP -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティが必要である。 .\"O The file capability sets, .\"O in conjunction with the capability sets of the thread, .\"O determine the capabilities of a thread after an .\"O .BR execve (2). -¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤È¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎξÊý¤¬ -¹Í褵¤ì¡¢ +ファイルケーパビリティセットとスレッドのケーパビリティセットの両方が +考慮され、 .BR execve (2) -¸å¤Î¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤¬·èÄꤵ¤ì¤ë¡£ +後のスレッドのケーパビリティセットが決定される。 .\"O The three file capability sets are: -3 ¤Ä¤Î¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +3 つのファイルケーパビリティセットが定義されている。 .TP .\"O .IR Permitted " (formerly known as " forced ): .\"O These capabilities are automatically permitted to the thread, .\"O regardless of the thread's inheritable capabilities. -.IR "µö²Ä (Permitted)" " (°ÊÁ°¤Î" "¶¯À© (Forced)" "):" -¥¹¥ì¥Ã¥É¤Î·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ë´Ø¤ï¤é¤º¡¢¤½¤Î¥¹¥ì¥Ã¥É¤Ë¼«Æ°Åª¤Ë -ǧ¤á¤é¤ì¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡£ +.IR "許可 (Permitted)" " (以前の" "強制 (Forced)" "):" +スレッドの継承可能ケーパビリティに関わらず、そのスレッドに自動的に +認められるケーパビリティ。 .TP .\"O .IR Inheritable " (formerly known as " allowed ): .\"O This set is ANDed with the thread's inheritable set to determine which .\"O inheritable capabilities are enabled in the permitted set of .\"O the thread after the .\"O .BR execve (2). -.IR "·Ñ¾µ²Äǽ (Inheritable)" " (°ÊÁ°¤Î " "µöÍÆ (Allowed)" "):" -¤³¤Î¥»¥Ã¥È¤È¡¢¥¹¥ì¥Ã¥É¤Î·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤È¤Î -ÏÀÍýÀÑ (AND) ¤¬¤È¤é¤ì¡¢ +.IR "継承可能 (Inheritable)" " (以前の " "許容 (Allowed)" "):" +このセットと、スレッドの継承可能ケーパビリティセットとの +論理積 (AND) がとられ、 .BR execve (2) -¤Î¸å¤Ë¤½¤Î¥¹¥ì¥Ã¥É¤Îµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÇÍ­¸ú¤È¤Ê¤ë -·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬·èÄꤵ¤ì¤ë¡£ +の後にそのスレッドの許可ケーパビリティセットで有効となる +継承可能ケーパビリティが決定される。 .TP .\"O .IR Effective : -.IR "¼Â¸ú (Effective)" : +.IR "実効 (Effective)" : .\"O This is not a set, but rather just a single bit. .\"O If this bit is set, then during an .\"O .BR execve (2) @@ -860,15 +860,15 @@ ext3 .\"O If this bit is not set, then after an .\"O .BR execve (2), .\"O none of the new permitted capabilities is in the new effective set. -¤³¤ì¤Ï½¸¹ç¤Ç¤Ï¤Ê¤¯¡¢1 ¥Ó¥Ã¥È¤Î¾ðÊó¤Ç¤¢¤ë¡£ -¤³¤Î¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢ +これは集合ではなく、1 ビットの情報である。 +このビットがセットされていると、 .BR execve (2) -¼Â¹ÔÃæ¤Ë¡¢¤½¤Î¥¹¥ì¥Ã¥É¤Î¿·¤·¤¤µö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬Á´¤Æ -¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£½¸¹ç¤Ë¤ª¤¤¤Æ¤â¥»¥Ã¥È¤µ¤ì¤ë¡£ -¤³¤Î¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +実行中に、そのスレッドの新しい許可ケーパビリティが全て +実効ケーパビリティ集合においてもセットされる。 +このビットがセットされていない場合、 .BR execve (2) -¸å¤Ë¤Ï¿·¤·¤¤µö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¤É¤ì¤â¿·¤·¤¤¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£½¸¹ç -¤Ë¥»¥Ã¥È¤µ¤ì¤Ê¤¤¡£ +後には新しい許可ケーパビリティのどれも新しい実効ケーパビリティ集合 +にセットされない。 .\"O Enabling the file effective capability bit implies .\"O that any file permitted or inheritable capability that causes a @@ -876,12 +876,12 @@ ext3 .\"O .BR execve (2) .\"O (see the transformation rules described below) will also acquire that .\"O capability in its effective set. -¥Õ¥¡¥¤¥ë¤Î¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥Ó¥Ã¥È¤òÍ­¸ú¤Ë¤¹¤ë¤È¤¤¤¦¤Î¤Ï¡¢ +ファイルの実効ケーパビリティビットを有効にするというのは、 .BR execve (2) -¼Â¹Ô»þ¤Ë¡¢¥Õ¥¡¥¤¥ë¤Îµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤È·Ñ¾µ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ËÂбþ¤¹¤ë¤â¤Î¤¬ -¥¹¥ì¥Ã¥É¤Îµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤È¤·¤Æ¥»¥Ã¥È¤µ¤ì¤ë¤¬¡¢ -¤³¤ì¤¬¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë¤â¥»¥Ã¥È¤µ¤ì¤ë¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë -(¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ÎÊÑ´¹¥ë¡¼¥ë¤Ï²¼µ­»²¾È)¡£ +実行時に、ファイルの許可ケーパビリティと継承ケーパビリティに対応するものが +スレッドの許可ケーパビリティセットとしてセットされるが、 +これが実効ケーパビリティセットにもセットされるということである +(ケーパビリティの変換ルールは下記参照)。 .\"O Therefore, when assigning capabilities to a file .\"O .RB ( setcap (8), .\"O .BR cap_set_file (3), @@ -890,24 +890,24 @@ ext3 .\"O then the effective flag must also be specified as enabled .\"O for all other capabilities for which the corresponding permitted or .\"O inheritable flags is enabled. -¤·¤¿¤¬¤Ã¤Æ¡¢¥Õ¥¡¥¤¥ë¤Ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò³ä¤êÅö¤Æ¤ëºÝ +したがって、ファイルにケーパビリティを割り当てる際 .RB ( setcap (8), .BR cap_set_file (3), -.BR cap_set_fd (3))¡¢ -¤¤¤º¤ì¤«¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ËÂФ·¤Æ¼Â¸ú¥Õ¥é¥°¤òÍ­¸ú¤È»ØÄꤹ¤ë¾ì¹ç¡¢ -µö²Ä¥Õ¥é¥°¤ä·Ñ¾µ²Äǽ¥Õ¥é¥°¤òÍ­¸ú¤Ë¤·¤¿Â¾¤ÎÁ´¤Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ -¤Ë¤Ä¤¤¤Æ¤â¼Â¸ú¥Õ¥é¥°¤òÍ­¸ú¤È»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +.BR cap_set_fd (3))、 +いずれかのケーパビリティに対して実効フラグを有効と指定する場合、 +許可フラグや継承可能フラグを有効にした他の全てのケーパビリティ +についても実効フラグを有効と指定しなければならない。 .\" .\"O .SS Transformation of Capabilities During execve() -.SS "execve() Ãæ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ÎÊÑ´¹" +.SS "execve() 中のケーパビリティの変換" .PP .\"O During an .\"O .BR execve (2), .\"O the kernel calculates the new capabilities of .\"O the process using the following algorithm: .BR execve (2) -¼Â¹Ô»þ¤Ë¡¢¥«¡¼¥Í¥ë¤Ï¥×¥í¥»¥¹¤Î¿·¤·¤¤¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¼¡¤Î -¥¢¥ë¥´¥ê¥º¥à¤òÍѤ¤¤Æ·×»»¤¹¤ë¡§ +実行時に、カーネルはプロセスの新しいケーパビリティを次の +アルゴリズムを用いて計算する: .in +4n .nf @@ -917,55 +917,55 @@ P'(permitted) = (P(inheritable) & F(inheritable)) | P'(effective) = F(effective) ? P'(permitted) : 0 .\"O P'(inheritable) = P(inheritable) [i.e., unchanged] -P'(inheritable) = P(inheritable) [¤Ä¤Þ¤ê¡¢Êѹ¹¤µ¤ì¤Ê¤¤] +P'(inheritable) = P(inheritable) [つまり、変更されない] .fi .in .\"O where: -³ÆÊÑ¿ô¤Î°ÕÌ£¤Ï°Ê²¼¤ÎÄ̤ê: +各変数の意味は以下の通り: .RS 4 .IP P 10 .\"O denotes the value of a thread capability set before the .\"O .BR execve (2) .BR execve (2) -Á°¤Î¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÃÍ +前のスレッドのケーパビリティセットの値 .IP P' .\"O denotes the value of a capability set after the .\"O .BR execve (2) .BR execve (2) -¸å¤Î¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÃÍ +後のスレッドのケーパビリティセットの値 .IP F .\"O denotes a file capability set -¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÃÍ +ファイルケーパビリティセットの値 .IP cap_bset .\"O is the value of the capability bounding set (described below). -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤ÎÃÍ (²¼µ­»²¾È) +ケーパビリティバウンディングセットの値 (下記参照) .RE .\" .\"O .SS Capabilities and execution of programs by root -.SS ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤È¡¢¥ë¡¼¥È¤Ë¤è¤ë¥×¥í¥°¥é¥à¤Î¼Â¹Ô +.SS ケーパビリティと、ルートによるプログラムの実行 .\"O In order to provide an all-powerful .\"O .I root .\"O using capability sets, during an .\"O .BR execve (2): .BR execve (2) -»þ¤Ë¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ò»È¤Ã¤Æ¡¢Á´¤Æ¤Î¸¢¸Â¤ò»ý¤Ã¤¿ +時に、ケーパビリティセットを使って、全ての権限を持った .I root -¤ò¼Â¸½¤¹¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë¡£ +を実現するには、以下のようにする。 .IP 1. 3 .\"O If a set-user-ID-root program is being executed, .\"O or the real user ID of the process is 0 (root) .\"O then the file inheritable and permitted sets are defined to be all ones .\"O (i.e., all capabilities enabled). -set-user-ID-root ¥×¥í¥°¥é¥à¤¬¼Â¹Ô¤µ¤ì¤ë¾ì¹ç¡¢ -¤Þ¤¿¤Ï¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶ ID ¤¬ 0 (root) ¤Î¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¤Î·Ñ¾µ²Äǽ¥»¥Ã¥È¤Èµö²Ä¥»¥Ã¥È¤òÁ´¤Æ 1 -(Á´¤Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬Í­¸ú) ¤ËÄêµÁ¤¹¤ë¡£ +set-user-ID-root プログラムが実行される場合、 +またはプロセスの実ユーザ ID が 0 (root) の場合、 +ファイルの継承可能セットと許可セットを全て 1 +(全てのケーパビリティが有効) に定義する。 .IP 2. .\"O If a set-user-ID-root program is being executed, .\"O then the file effective bit is defined to be one (enabled). -set-user-ID-root ¥×¥í¥°¥é¥à¤¬¼Â¹Ô¤µ¤ì¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¤Î¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥Ó¥Ã¥È¤ò 1 (enabled) ¤ËÄêµÁ¤¹¤ë¡£ +set-user-ID-root プログラムが実行される場合、 +ファイルの実効ケーパビリティビットを 1 (enabled) に定義する。 .PP .\"O The upshot of the above rules, .\"O combined with the capabilities transformations described above, @@ -981,29 +981,29 @@ set-user-ID-root .\"O .\" permitted set, and no effective capabilities .\"O This provides semantics that are the same as those provided by .\"O traditional UNIX systems. -¾åµ­¤Î¥ë¡¼¥ë¤Ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ÊÑ´¹¤òŬÍѤ·¤¿·ë²Ì¤ò¤Þ¤È¤á¤ë¤È¡¢ -¥×¥í¥»¥¹¤¬ set-user-ID-root ¥×¥í¥°¥é¥à¤ò +上記のルールにケーパビリティ変換を適用した結果をまとめると、 +プロセスが set-user-ID-root プログラムを .BR execve (2) -¤¹¤ë¾ì¹ç¡¢¤Þ¤¿¤Ï¼Â¸ú UID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤¬¥×¥í¥°¥é¥à¤ò +する場合、または実効 UID が 0 のプロセスがプログラムを .BR execve (2) -¤¹¤ë¾ì¹ç¡¢µö²Ä¤È¼Â¸ú¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÁ´¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ -(Àµ³Î¤Ë¤Ï¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ë¤è¤ë¥Þ¥¹¥¯¤Ç½ü³°¤µ¤ì¤ë¤â¤Î -°Ê³°¤ÎÁ´¤Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤ò¼èÆÀ¤¹¤ë¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ -.\" ¼Â UID ¤¬ 0 ¤Ç¼Â¸ú UID ¤¬ 0 °Ê³°¤Î¥×¥í¥»¥¹¤¬ exec () ¤ò¹Ô¤¦¤È¡¢ -.\" µö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë´Þ¤Þ¤ì¤ëÁ´¤Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ -.\" ¤¬¼èÆÀ¤µ¤ì¡¢¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ï¼èÆÀ¤µ¤ì¤Ê¤¤¡£ -¤³¤ì¤Ë¤è¤ê¡¢ÅÁÅýŪ¤Ê UNIX ¥·¥¹¥Æ¥à¤ÈƱ¤¸¿¶¤ëÉñ¤¤¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +する場合、許可と実効のケーパビリティセットの全ケーパビリティ +(正確には、ケーパビリティバウンディングセットによるマスクで除外されるもの +以外の全てのケーパビリティ) を取得するということである。 +.\" 実 UID が 0 で実効 UID が 0 以外のプロセスが exec () を行うと、 +.\" 許可ケーパビリティセットに含まれる全てのケーパビリティ +.\" が取得され、実効ケーパビリティは取得されない。 +これにより、伝統的な UNIX システムと同じ振る舞いができるようになっている。 .\"O .SS Capability bounding set -.SS ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È +.SS ケーパビリティ・バウンディングセット .\"O The capability bounding set is a security mechanism that can be used .\"O to limit the capabilities that can be gained during an .\"O .BR execve (2). -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È (capability bounding set) ¤Ï¡¢ +ケーパビリティ・バウンディングセット (capability bounding set) は、 .BR execve (2) -»þ¤Ë³ÍÆÀ¤Ç¤­¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÀ©¸Â¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë -¥»¥­¥å¥ê¥Æ¥£µ¡¹½¤Ç¤¢¤ë¡£ +時に獲得できるケーパビリティを制限するために使われる +セキュリティ機構である。 .\"O The bounding set is used in the following ways: -¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï°Ê²¼¤Î¤è¤¦¤Ë»ÈÍѤµ¤ì¤ë¡£ +バウンディングセットは以下のように使用される。 .IP * 2 .\"O During an .\"O .BR execve (2), @@ -1013,12 +1013,12 @@ set-user-ID-root .\"O The capability bounding set thus places a limit on the permitted .\"O capabilities that may be granted by an executable file. .BR execve (2) -¼Â¹Ô»þ¤Ë¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤È -¥Õ¥¡¥¤¥ë¤Îµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÏÀÍýÏ (AND) ¤ò¼è¤Ã¤¿¤â¤Î¤¬¡¢ -¤½¤Î¥¹¥ì¥Ã¥É¤Îµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë³ä¤êÅö¤Æ¤é¤ì¤ë¡£ -¤Ä¤Þ¤ê¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï¡¢ -¼Â¹Ô¥Õ¥¡¥¤¥ë¤¬Ç§¤á¤Æ¤¤¤ëµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ËÂФ·¤Æ -À©¸Â¤ò²Ý¤¹Æ¯¤­¤ò¤¹¤ë¡£ +実行時に、ケーパビリティ・バウンディングセットと +ファイルの許可ケーパビリティセットの論理和 (AND) を取ったものが、 +そのスレッドの許可ケーパビリティセットに割り当てられる。 +つまり、ケーパビリティ・バウンディングセットは、 +実行ファイルが認めている許可ケーパビリティに対して +制限を課す働きをする。 .IP * .\"O (Since Linux 2.6.25) .\"O The capability bounding set acts as a limiting superset for @@ -1031,17 +1031,17 @@ set-user-ID-root .\"O permitted set when it .\"O .BR execve (2)s .\"O a file that has the capability in its inheritable set. -(Linux 2.6.25 °Ê¹ß) -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï¡¢¥¹¥ì¥Ã¥É¤¬ +(Linux 2.6.25 以降) +ケーパビリティ・バウンディングセットは、スレッドが .BR capset (2) -¤Ë¤è¤ê¼«¿È¤Î·Ñ¾µ²Äǽ¥»¥Ã¥È¤ËÄɲòÄǽ¤Ê¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ÎÊ콸ÃĤò -À©¸Â¤¹¤ëÌò³ä¤ò»ý¤Ä¡£ -¥¹¥ì¥Ã¥É¤Ëµö²Ä¤µ¤ì¤¿¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ç¤¢¤Ã¤Æ¤â¡¢¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ë -´Þ¤Þ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¥¹¥ì¥Ã¥É¤Ï¤½¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ï¼«¿È¤Î·Ñ¾µ²Äǽ¥»¥Ã¥È¤Ë -ÄɲäǤ­¤º¡¢¤½¤Î·ë²Ì¡¢·Ñ¾µ²Äǽ¥»¥Ã¥È¤Ë¤½¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò´Þ¤à¥Õ¥¡¥¤¥ë¤ò +により自身の継承可能セットに追加可能なケーパビリティの母集団を +制限する役割を持つ。 +スレッドに許可されたケーパビリティであっても、バウンディングセットに +含まれていなければ、スレッドはそのケーパビリティは自身の継承可能セットに +追加できず、その結果、継承可能セットにそのケーパビリティを含むファイルを .BR execve (2) -¤¹¤ë¾ì¹ç¡¢¤½¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òµö²Ä¥»¥Ã¥È¤Ë»ý¤Á³¤±¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡¢ -¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ +する場合、そのケーパビリティを許可セットに持ち続けることができない、 +ということである。 .PP .\"O Note that the bounding set masks the file permitted capabilities, .\"O but not the inherited capabilities. @@ -1049,37 +1049,37 @@ set-user-ID-root .\"O that is not in its bounding set, .\"O then it can still gain that capability in its permitted set .\"O by executing a file that has the capability in its inherited set. -¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤¬¥Þ¥¹¥¯¤ò¹Ô¤¦¤Î¤Ï¡¢·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ç¤Ï¤Ê¤¯¡¢ -¥Õ¥¡¥¤¥ë¤Îµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¥Þ¥¹¥¯¤ò¹Ô¤¦ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¤¢¤ë¥¹¥ì¥Ã¥É¤Î·Ñ¾µ²Äǽ¥»¥Ã¥È¤Ë¤½¤Î¥¹¥ì¥Ã¥É¤Î¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ë -¸ºß¤·¤Ê¤¤¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¤½¤Î¥¹¥ì¥Ã¥É¤Ï¡¢ -·Ñ¾µ²Äǽ¥»¥Ã¥È¤Ë´Þ¤Þ¤ì¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢ -µö²Ä¥»¥Ã¥È¤Ë´Þ¤Þ¤ì¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤â³ÍÆÀ¤Ç¤­¤ë¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ +バウンディングセットがマスクを行うのは、継承可能ケーパビリティではなく、 +ファイルの許可ケーパビリティのマスクを行う点に注意すること。 +あるスレッドの継承可能セットにそのスレッドのバウンディングセットに +存在しないケーパビリティが含まれている場合、そのスレッドは、 +継承可能セットに含まれるケーパビリティを持つファイルを実行することにより、 +許可セットに含まれるケーパビリティも獲得できるということである。 .PP .\"O Depending on the kernel version, the capability bounding set is either .\"O a system-wide attribute, or a per-process attribute. -¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤ê¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï -¥·¥¹¥Æ¥à¶¦Ä̤ΰÀ­¤Î¾ì¹ç¤È¡¢¥×¥í¥»¥¹Ã±°Ì¤Î°À­¤Î¾ì¹ç¤¬¤¢¤ë¡£ +カーネルのバージョンにより、ケーパビリティ・バウンディングセットは +システム共通の属性の場合と、プロセス単位の属性の場合がある。 .PP .\"O .B "Capability bounding set prior to Linux 2.6.25" -.B "Linux 2.6.25 ¤è¤êÁ°¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È" +.B "Linux 2.6.25 より前のケーパビリティ・バウンディングセット" .PP .\"O In kernels before 2.6.25, the capability bounding set is a system-wide .\"O attribute that affects all threads on the system. -2.6.25 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï -¥·¥¹¥Æ¥à¶¦Ä̤ΰÀ­¤Ç¡¢¥·¥¹¥Æ¥à¾å¤ÎÁ´¤Æ¤Î¥¹¥ì¥Ã¥É¤ËŬÍѤµ¤ì¤ë¡£ +2.6.25 より前のカーネルでは、ケーパビリティ・バウンディングセットは +システム共通の属性で、システム上の全てのスレッドに適用される。 .\"O The bounding set is accessible via the file .\"O .IR /proc/sys/kernel/cap-bound . -.\"O motoki: accessible = ¡Ö»²¾È²Äǽ¡×¤Ç¤è¤¤¤«¡¢Ê¸Ì®¤òÍ׳Îǧ -¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï +.\"O motoki: accessible = 「参照可能」でよいか、文脈を要確認 +バウンディングセットは .I /proc/sys/kernel/cap-bound -¥Õ¥¡¥¤¥ë·Ðͳ¤Ç»²¾È¤Ç¤­¤ë¡£ +ファイル経由で参照できる。 .\"O (Confusingly, this bit mask parameter is expressed as a .\"O signed decimal number in .\"O .IR /proc/sys/kernel/cap-bound .) -(´Ö°ã¤¨¤ä¤¹¤¤¤¬¡¢¤³¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯·Á¼°¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¡¢ +(間違えやすいが、このビットマスク形式のパラメータは、 .I /proc/sys/kernel/cap-bound -¤Ç¤ÏÉä¹æÉÕ¤­¤Î½½¿Ê¿ô¤Çɽ¸½¤µ¤ì¤ë¡£) +では符号付きの十進数で表現される。) .\"O Only the .\"O .B init @@ -1088,13 +1088,13 @@ set-user-ID-root .\"O .B CAP_SYS_MODULE .\"O capability) may only clear capabilities from this set. .B init -¥×¥í¥»¥¹¤À¤±¤¬¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ç -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥»¥Ã¥È¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤½¤ì°Ê³°¤Ç¤Ï¡¢¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶ (¤è¤êÀµ³Î¤Ë¤Ï¡¢ +プロセスだけがケーパビリティ・バウンディングセットで +ケーパビリティをセットすることができる。 +それ以外では、スーパーユーザ (より正確には、 .B CAP_SYS_MODULE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤¿¥×¥í¥°¥é¥à) ¤¬¡¢ -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¥¯¥ê¥¢¤¬ -¤Ç¤­¤ë¤À¤±¤Ç¤¢¤ë¡£ +ケーパビリティを持ったプログラム) が、 +ケーパビリティ・バウンディングセットのケーパビリティのクリアが +できるだけである。 .\"O On a standard system the capability bounding set always masks out the .\"O .B CAP_SETPCAP @@ -1104,41 +1104,41 @@ set-user-ID-root .\"O in .\"O .I include/linux/capability.h .\"O and rebuild the kernel. -Ä̾ï¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï¡¢ +通常のシステムでは、ケーパビリティ・バウンディングセットは、 .B CAP_SETPCAP -¤¬Ìµ¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤³¤ÎÀ©¸Â¤ò¼è¤êµî¤ë¤Ë¤Ï (¼è¤êµî¤ë¤Î¤Ï´í¸±!)¡¢ +が無効になっている。 +この制限を取り去るには (取り去るのは危険!)、 .I include/linux/capability.h -Æâ¤Î +内の .B CAP_INIT_EFF_SET -¤ÎÄêµÁ¤ò½¤Àµ¤·¡¢¥«¡¼¥Í¥ë¤òºÆ¹½ÃÛ¤¹¤ëɬÍפ¬¤¢¤ë¡£ +の定義を修正し、カーネルを再構築する必要がある。 .\"O The system-wide capability bounding set feature was added .\"O to Linux starting with kernel version 2.2.11. -¥·¥¹¥Æ¥à¶¦Ä̤Υ±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥Èµ¡Ç½¤Ï¡¢ -¥«¡¼¥Í¥ë 2.2.11 °Ê¹ß¤Ç Linux ¤ËÄɲ䵤줿¡£ +システム共通のケーパビリティ・バウンディングセット機能は、 +カーネル 2.2.11 以降で Linux に追加された。 .\" .PP .\"O .B "Capability bounding set from Linux 2.6.25 onward" -.B "Linux 2.6.25 °Ê¹ß¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È" +.B "Linux 2.6.25 以降のケーパビリティ・バウンディングセット" .PP .\"O From Linux 2.6.25, the .\"O .I "capability bounding set" .\"O is a per-thread attribute. .\"O (There is no longer a system-wide capability bounding set.) -Linux 2.6.25 °Ê¹ß¤Ç¤Ï¡¢ -¡Ö¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¡×¤Ï¥¹¥ì¥Ã¥Éñ°Ì¤Î°À­¤Ç¤¢¤ë -(¥·¥¹¥Æ¥à¶¦Ä̤Υ±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï¤â¤Ï¤ä¸ºß¤·¤Ê¤¤)¡£ +Linux 2.6.25 以降では、 +「ケーパビリティ・バウンディングセット」はスレッド単位の属性である +(システム共通のケーパビリティ・バウンディングセットはもはや存在しない)。 .\"O The bounding set is inherited at .\"O .BR fork (2) .\"O from the thread's parent, and is preserved across an .\"O .BR execve (2). -¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï +バウンディングセットは .BR fork (2) -»þ¤Ë¤Ï¥¹¥ì¥Ã¥É¤Î¿Æ¥×¥í¥»¥¹¤«¤é·Ñ¾µ¤µ¤ì¡¢ +時にはスレッドの親プロセスから継承され、 .BR execve (2) -¤ÎÁ°¸å¤Ç¤ÏÊÝ»ý¤µ¤ì¤ë¡£ +の前後では保持される。 .\"O A thread may remove capabilities from its capability bounding set using the .\"O .BR prctl (2) @@ -1152,21 +1152,21 @@ Linux 2.6.25 .\"O .BR prctl (2) .\"O .B PR_CAPBSET_READ .\"O operation. -¥¹¥ì¥Ã¥É¤¬ +スレッドが .B CAP_SETPCAP -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢¤½¤Î¥¹¥ì¥Ã¥É¤Ï +ケーパビリティを持っている場合、そのスレッドは .BR prctl (2) -¤Î +の .BR PR_CAPBSET_DROP -Áàºî¤ò»È¤Ã¤Æ¼«¿È¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤«¤é -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òºï½ü¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤¤¤Ã¤¿¤ó¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤«¤éºï½ü¤·¤Æ¤·¤Þ¤¦¤È¡¢ -¥¹¥ì¥Ã¥É¤Ï¤½¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òºÆÅÙ¥»¥Ã¥È¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +操作を使って自身のケーパビリティ・バウンディングセットから +ケーパビリティを削除することができる。 +いったんケーパビリティをバウンディングセットから削除してしまうと、 +スレッドはそのケーパビリティを再度セットすることはできない。 .BR prctl (2) -¤Î +の .B PR_CAPBSET_READ -Áàºî¤ò»È¤¦¤³¤È¤Ç¡¢¥¹¥ì¥Ã¥É¤¬¤¢¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¼«¿È¤Î¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤«¤òÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ +操作を使うことで、スレッドがあるケーパビリティが自身のバウンディングセット +に含まれているかを知ることができる。 .\"O Removing capabilities from the bounding set is only supported if file .\"O capabilities are compiled into the kernel @@ -1180,36 +1180,36 @@ Linux 2.6.25 .\"O .BR CAP_SETPCAP , .\"O because this capability has a different meaning when there are .\"O no file capabilities. -¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤«¤é¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Îºï½ü¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤ë¤Î¤Ï¡¢ -¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç -(CONFIG_SECURITY_FILE_CAPABILITIES) ¤À¤±¤Ç¤¢¤ë¡£ -¤³¤Î¾ì¹ç¤Ë¤Ï¡¢ (Á´¤Æ¤Î¥×¥í¥»¥¹¤ÎÀèÁĤǤ¢¤ë) +バウンディングセットからのケーパビリティの削除がサポートされるのは、 +カーネルのコンパイル時にファイルケーパビリティが有効になっている場合 +(CONFIG_SECURITY_FILE_CAPABILITIES) だけである。 +この場合には、 (全てのプロセスの先祖である) .I init -¥×¥í¥»¥¹¤Ï¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤ÇÁ´¤Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬ -¥»¥Ã¥È¤µ¤ì¤¿¾õÂ֤dz«»Ï¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ +プロセスはバウンディングセットで全てのケーパビリティが +セットされた状態で開始する。 +ファイルケーパビリティが有効になっていない場合には、 .I init -¤Ï¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ç +はバウンディングセットで .B CAP_SETPCAP -°Ê³°¤ÎÁ´¤Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¥»¥Ã¥È¤µ¤ì¤¿¾õÂ֤dz«»Ï¤¹¤ë¡£ -¤³¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ï¡¢ +以外の全てのケーパビリティがセットされた状態で開始する。 +このようになっているのは、 .B CAP_SETPCAP -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï -°ã¤Ã¤¿°ÕÌ£¤ò»ý¤Ä¤«¤é¤Ç¤¢¤ë¡£ +ケーパビリティがファイルケーパビリティがサポートされていない場合には +違った意味を持つからである。 .\"O Removing a capability from the bounding set does not remove it .\"O from the thread's inherited set. .\"O However it does prevent the capability from being added .\"O back into the thread's inherited set in the future. -¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤«¤é¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òºï½ü¤·¤Æ¤â¡¢ -¥¹¥ì¥Ã¥É¤Î·Ñ¾µ²Äǽ¥»¥Ã¥È¤«¤é¤Ï¤½¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ïºï½ü¤µ¤ì¤Ê¤¤¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤«¤é¤Îºï½ü¤Ë¤è¤ê¡¢ -¤³¤ÎÀ褽¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥¹¥ì¥Ã¥É¤Î·Ñ¾µ²Äǽ¥»¥Ã¥È¤ËÄɲ乤뤳¤È -¤Ï¤Ç¤­¤Ê¤¯¤Ê¤ë¡£ +バウンディングセットからケーパビリティを削除しても、 +スレッドの継承可能セットからはそのケーパビリティは削除されない。 +しかしながら、バウンディングセットからの削除により、 +この先そのケーパビリティをスレッドの継承可能セットに追加すること +はできなくなる。 .\" .\" .\"O .SS Effect of User ID Changes on Capabilities -.SS "¥æ¡¼¥¶ ID Êѹ¹¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ø¤Î±Æ¶Á" +.SS "ユーザ ID 変更のケーパビリティへの影響" .\"O To preserve the traditional semantics for transitions between .\"O 0 and nonzero user IDs, .\"O the kernel makes the following changes to a thread's capability @@ -1218,32 +1218,32 @@ Linux 2.6.25 .\"O .BR setuid (2), .\"O .BR setresuid (2), .\"O or similar): -¥æ¡¼¥¶ ID ¤¬ 0 ¤È 0 °Ê³°¤Î´Ö¤ÇÊѲ½¤¹¤ëºÝ¤Î¿¶¤ëÉñ¤¤¤ò½¾Íè¤ÈƱ¤¸¤Ë¤¹¤ë¤¿¤á¡¢ -¥¹¥ì¥Ã¥É¤Î¼Â UID¡¢¼Â¸ú UID¡¢Êݸ set-user-ID¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID ¤¬ +ユーザ ID が 0 と 0 以外の間で変化する際の振る舞いを従来と同じにするため、 +スレッドの実 UID、実効 UID、保存 set-user-ID、ファイルシステム UID が .RB ( setuid (2), .BR setresuid (2) -¤Ê¤É¤ò»È¤Ã¤Æ) Êѹ¹¤µ¤ì¤¿ºÝ¤Ë¡¢¥«¡¼¥Í¥ë¤Ï¤½¤Î¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë -°Ê²¼¤ÎÊѹ¹¤ò¹Ô¤¦: +などを使って) 変更された際に、カーネルはそのスレッドのケーパビリティセットに +以下の変更を行う: .IP 1. 3 .\"O If one or more of the real, effective or saved set user IDs .\"O was previously 0, and as a result of the UID changes all of these IDs .\"O have a nonzero value, .\"O then all capabilities are cleared from the permitted and effective .\"O capability sets. -UID ¤ÎÊѹ¹Á°¤Ë¤Ï¼Â UID¡¢¼Â¸ú UID¡¢Êݸ set-user-ID ¤Î¤¦¤Á -¾¯¤Ê¤¯¤È¤â°ì¤Ä¤¬ 0 ¤Ç¡¢Êѹ¹¸å¤Ë¼Â UID¡¢¼Â¸ú UID¡¢Êݸ set-user-ID ¤¬ -¤¹¤Ù¤Æ 0 °Ê³°¤ÎÃͤˤʤ俾ì¹ç¡¢µö²Ä¤È¼Â¸ú¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Î -Á´¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥¯¥ê¥¢¤¹¤ë¡£ +UID の変更前には実 UID、実効 UID、保存 set-user-ID のうち +少なくとも一つが 0 で、変更後に実 UID、実効 UID、保存 set-user-ID が +すべて 0 以外の値になった場合、許可と実効のケーパビリティセットの +全ケーパビリティをクリアする。 .IP 2. .\"O If the effective user ID is changed from 0 to nonzero, .\"O then all capabilities are cleared from the effective set. -¼Â¸ú UID ¤¬ 0 ¤«¤é 0 °Ê³°¤ËÊѹ¹¤µ¤ì¤¿¾ì¹ç¡¢ -¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÁ´¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥¯¥ê¥¢¤¹¤ë¡£ +実効 UID が 0 から 0 以外に変更された場合、 +実効ケーパビリティセットの全ケーパビリティをクリアする。 .IP 3. .\"O If the effective user ID is changed from nonzero to 0, .\"O then the permitted set is copied to the effective set. -¼Â¸ú UID ¤¬ 0 °Ê³°¤«¤é 0 ¤ËÊѹ¹¤µ¤ì¤¿¾ì¹ç¡¢ -µö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÆâÍƤò¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë¥³¥Ô¡¼¤¹¤ë¡£ +実効 UID が 0 以外から 0 に変更された場合、 +許可ケーパビリティセットの内容を実効ケーパビリティセットにコピーする。 .IP 4. .\"O If the file system user ID is changed from 0 to nonzero (see .\"O .BR setfsuid (2)) @@ -1259,25 +1259,25 @@ UID .\"O and .\"O .B CAP_MKNOD .\"O (since Linux 2.2.30). -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID ¤¬ 0 ¤«¤é 0 °Ê³°¤ËÊѹ¹¤µ¤ì¤¿¾ì¹ç +ファイルシステム UID が 0 から 0 以外に変更された場合 .RB ( setfsuid (2) -»²¾È)¡¢¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Î°Ê²¼¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¥¯¥ê¥¢¤µ¤ì¤ë: +参照)、実効ケーパビリティセットの以下のケーパビリティがクリアされる: .BR CAP_CHOWN , .BR CAP_DAC_OVERRIDE , .BR CAP_DAC_READ_SEARCH , .BR CAP_FOWNER , .BR CAP_FSETID , .B CAP_LINUX_IMMUTABLE -(Linux 2.2.30 °Ê¹ß), +(Linux 2.2.30 以降), .BR CAP_MAC_OVERRIDE , .B CAP_MKNOD -(Linux 2.2.30 °Ê¹ß)¡£ +(Linux 2.2.30 以降)。 .\"O If the file system UID is changed from nonzero to 0, .\"O then any of these capabilities that are enabled in the permitted set .\"O are enabled in the effective set. -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID ¤¬ 0 °Ê³°¤«¤é 0 ¤ËÊѹ¹¤µ¤ì¤¿¾ì¹ç¡¢ -¾åµ­¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¤¦¤Áµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÇÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤â¤Î¤¬ -¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÇÍ­¸ú¤Ë¤µ¤ì¤ë¡£ +ファイルシステム UID が 0 以外から 0 に変更された場合、 +上記のケーパビリティのうち許可ケーパビリティセットで有効になっているものが +実効ケーパビリティセットで有効にされる。 .PP .\"O If a thread that has a 0 value for one or more of its user IDs wants .\"O to prevent its permitted capability set being cleared when it resets @@ -1285,16 +1285,16 @@ UID .\"O .BR prctl (2) .\"O .B PR_SET_KEEPCAPS .\"O operation. -³Æ¼ï UID ¤Î¤¦¤Á¾¯¤Ê¤¯¤È¤â°ì¤Ä¤¬ 0 ¤Ç¤¢¤ë¥¹¥ì¥Ã¥É¤¬¡¢ -¤½¤Î UID ¤ÎÁ´¤Æ¤¬ 0 °Ê³°¤Ë¤Ê¤Ã¤¿¤È¤­¤Ëµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤¬ -¥¯¥ê¥¢¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¤·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ +各種 UID のうち少なくとも一つが 0 であるスレッドが、 +その UID の全てが 0 以外になったときに許可ケーパビリティセットが +クリアされないようにしたい場合には、 .BR prctl (2) -¤Î +の .B PR_SET_KEEPCAPS -Áàºî¤ò»È¤¨¤Ð¤è¤¤¡£ +操作を使えばよい。 .\" .\"O .SS Programmatically adjusting capability sets -.SS ¥×¥í¥°¥é¥à¤Ç¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤òÄ´À°¤¹¤ë +.SS プログラムでケーパビリティセットを調整する .\"O A thread can retrieve and change its capability sets using the .\"O .BR capget (2) .\"O and @@ -1308,53 +1308,53 @@ UID .\"O .I libcap .\"O package, .\"O is preferred for this purpose. -³Æ¥¹¥ì¥Ã¥É¤Ï¡¢ +各スレッドは、 .BR capget (2) -¤ä +や .BR capset (2) -¤ò»È¤Ã¤Æ¡¢¼«¿È¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ò¼èÆÀ¤·¤¿¤êÊѹ¹¤·¤¿¤ê¤Ç¤­¤ë¡£ -¤¿¤À¤·¡¢¤³¤ì¤ò¹Ô¤¦¤Ë¤Ï¡¢ +を使って、自身のケーパビリティセットを取得したり変更したりできる。 +ただし、これを行うには、 .I libcap -¥Ñ¥Ã¥±¡¼¥¸¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë +パッケージで提供されている .BR cap_get_proc (3) -¤ä +や .BR cap_set_proc (3) -¤ò»È¤¦¤Î¤¬Ë¾¤Þ¤·¤¤¡£ +を使うのが望ましい。 .\"O The following rules govern changes to the thread capability sets: -¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÊѹ¹¤Ë¤Ï°Ê²¼¤Î¥ë¡¼¥ë¤¬Å¬ÍѤµ¤ì¤ë¡£ +スレッドのケーパビリティセットの変更には以下のルールが適用される。 .IP 1. 3 .\"O If the caller does not have the .\"O .B CAP_SETPCAP .\"O capability, .\"O the new inheritable set must be a subset of the combination .\"O of the existing inheritable and permitted sets. -.\"O [XXX] motoki: combination ¤Ã¤Æ AND ? OR ? -¸Æ¤Ó½Ð¤·Â¦¤¬ +.\"O [XXX] motoki: combination って AND ? OR ? +呼び出し側が .B CAP_SETPCAP -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¿·¤·¤¤·Ñ¾µ²Äǽ¥»¥Ã¥È¤Ï¡¢ -´û¸¤Î·Ñ¾µ²Äǽ¥»¥Ã¥È¤Èµö²Ä¥»¥Ã¥È¤ÎÀѽ¸¹ç (AND) ¤ÎÉôʬ½¸¹ç¤Ç -¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ケーパビリティを持っていない場合、新しい継承可能セットは、 +既存の継承可能セットと許可セットの積集合 (AND) の部分集合で +なければならない。 .IP 2. .\"O (Since kernel 2.6.25) .\"O The new inheritable set must be a subset of the combination of the .\"O existing inheritable set and the capability bounding set. -.\"O [XXX] motoki: combination ¤Ã¤Æ AND ? OR ? -(¥«¡¼¥Í¥ë 2.6.25 °Ê¹ß) -¿·¤·¤¤·Ñ¾µ²Äǽ¥»¥Ã¥È¤Ï¡¢´û¸¤Î·Ñ¾µ²Äǽ¥»¥Ã¥È¤È¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦ -¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤ÎÀѽ¸¹ç (AND) ¤ÎÉôʬ½¸¹ç¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +.\"O [XXX] motoki: combination って AND ? OR ? +(カーネル 2.6.25 以降) +新しい継承可能セットは、既存の継承可能セットとケーパビリティ・ +バウンディングセットの積集合 (AND) の部分集合でなければならない。 .IP 3. .\"O The new permitted set must be a subset of the existing permitted set .\"O (i.e., it is not possible to acquire permitted capabilities .\"O that the thread does not currently have). -¿·¤·¤¤µö²Ä¥»¥Ã¥È¤Ï¡¢´û¸¤Îµö²Ä¥»¥Ã¥È¤ÎÉôʬ½¸¹ç¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(¤Ä¤Þ¤ê¡¢¤½¤Î¥¹¥ì¥Ã¥É¤¬¸½ºß»ý¤Ã¤Æ¤¤¤Ê¤¤µö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò -³ÍÆÀ¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤)¡£ +新しい許可セットは、既存の許可セットの部分集合でなければならない +(つまり、そのスレッドが現在持っていない許可ケーパビリティを +獲得することはできない)。 .IP 4. .\"O The new effective set must be a subset of the new permitted set. -¿·¤·¤¤¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ï¿·¤·¤¤µö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Î -Éôʬ½¸¹ç¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +新しい実効ケーパビリティセットは新しい許可ケーパビリティセットの +部分集合になっていなければならない。 .\"O .SS The """securebits"" flags: establishing a capabilities-only environment -.SS securebits ¥Õ¥é¥°: ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤À¤±¤Î´Ä¶­¤ò¹½ÃÛ¤¹¤ë +.SS securebits フラグ: ケーパビリティだけの環境を構築する .\" For some background: .\" see http://lwn.net/Articles/280279/ and .\" http://article.gmane.org/gmane.linux.kernel.lsm/5476/ @@ -1364,15 +1364,15 @@ UID .\"O .I securebits .\"O flags that can be used to disable special handling of capabilities for UID 0 .\"O .RI ( root ). -¥«¡¼¥Í¥ë 2.6.26 °Ê¹ß¤Ç¡¢ -¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬Í­¸ú¤Ë¤Ê¤Ã¤¿¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -¥¹¥ì¥Ã¥Éñ°Ì¤Î +カーネル 2.6.26 以降で、 +ファイルケーパビリティが有効になったカーネルでは、 +スレッド単位の .I securebits -¥Õ¥é¥°¤¬¼ÂÁõ¤µ¤ì¤Æ¤ª¤ê¡¢¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤È UID 0 +フラグが実装されており、このフラグを使うと UID 0 .RI ( root ) -¤ËÂФ¹¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ÎÆÃÊÌ°·¤¤¤ò̵¸ú¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +に対するケーパビリティの特別扱いを無効することができる。 .\"O These flags are as follows: -°Ê²¼¤Î¤è¤¦¤Ê¥Õ¥é¥°¤¬¤¢¤ë¡£ +以下のようなフラグがある。 .TP .B SECBIT_KEEP_CAPS .\"O Setting this flag allows a thread that has one or more 0 UIDs to retain @@ -1385,18 +1385,18 @@ UID .\"O .BR prctl (2) .\"O .B PR_SET_KEEPCAPS .\"O operation.) -¤³¤Î¥Õ¥é¥°¤ò¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢UID ¤¬ 0 ¤Î¥¹¥ì¥Ã¥É¤Î UID ¤¬ 0 °Ê³°¤ÎÃÍ¤Ë -ÀÚ¤êÂؤï¤ëºÝ¤Ë¡¢¤½¤Î¥¹¥ì¥Ã¥É¤Ï¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò°Ý»ý¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢UID ¤¬ 0 ¤«¤é 0 °Ê³°¤ÎÃÍ¤Ë -ÀÚ¤êÂؤï¤ë¤È¡¢¤½¤Î¥¹¥ì¥Ã¥É¤ÏÁ´¤Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¼º¤¦¡£ -¤³¤Î¥Õ¥é¥°¤Ï +このフラグをセットされている場合、UID が 0 のスレッドの UID が 0 以外の値に +切り替わる際に、そのスレッドはケーパビリティを維持することができる。 +このフラグがセットされていない場合には、UID が 0 から 0 以外の値に +切り替わると、そのスレッドは全てのケーパビリティを失う。 +このフラグは .BR execve (2) -»þ¤Ë¤ÏÁ´¤Æ¥¯¥ê¥¢¤µ¤ì¤ë -(¤³¤Î¥Õ¥é¥°¤Ï¡¢°ÊÁ°¤Î +時には全てクリアされる +(このフラグは、以前の .BR prctl (2) -¤Î +の .B PR_SET_KEEPCAPS -Áàºî¤ÈƱ¤¸µ¡Ç½¤òÄ󶡤¹¤ë¤â¤Î¤Ç¤¢¤ë)¡£ +操作と同じ機能を提供するものである)。 .TP .B SECBIT_NO_SETUID_FIXUP .\"O Setting this flag stops the kernel from adjusting capability sets when @@ -1404,10 +1404,10 @@ UID .\"O zero and nonzero values. .\"O (See the subsection .\"O .IR "Effect of User ID Changes on Capabilities" .) -¤³¤Î¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢¥¹¥ì¥Ã¥É¤Î¼Â¸ú UID ¤È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID ¤¬ -0 ¤È 0 °Ê³°¤Î´Ö¤ÇÀÚ¤êÂؤï¤Ã¤¿¾ì¹ç¤Ë¡¢ -¥«¡¼¥Í¥ë¤Ï¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÄ´À°¤ò¹Ô¤ï¤Ê¤¯¤Ê¤ë -(¡Ö¥æ¡¼¥¶ ID Êѹ¹¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ø¤Î±Æ¶Á¡×¤ÎÀá¤ò»²¾È)¡£ +このフラグをセットすると、スレッドの実効 UID とファイルシステム UID が +0 と 0 以外の間で切り替わった場合に、 +カーネルはケーパビリティセットの調整を行わなくなる +(「ユーザ ID 変更のケーパビリティへの影響」の節を参照)。 .TP .B SECBIT_NOROOT .\"O If this bit is set, then the kernel does not grant capabilities @@ -1416,12 +1416,12 @@ UID .\"O .BR execve (2). .\"O (See the subsection .\"O .IR "Capabilities and execution of programs by root" .) -¤³¤Î¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -set-user-ID-root ¥×¥í¥°¥é¥à¤Î¼Â¹Ô»þ¤ä¡¢ -¼Â¸ú UID ¤« ¼Â UID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤¬ +このビットがセットされている場合、 +set-user-ID-root プログラムの実行時や、 +実効 UID か 実 UID が 0 のプロセスが .BR execve (2) -¤ò¸Æ¤Ó½Ð¤·¤¿»þ¤Ë¡¢¥«¡¼¥Í¥ë¤Ï¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òµö²Ä¤·¤Ê¤¤ -(¡Ö¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤È¡¢¥ë¡¼¥È¤Ë¤è¤ë¥×¥í¥°¥é¥à¤Î¼Â¹Ô¡×¤ÎÀá¤ò»²¾È)¡£ +を呼び出した時に、カーネルはケーパビリティを許可しない +(「ケーパビリティと、ルートによるプログラムの実行」の節を参照)。 .PP .\"O Each of the above "base" flags has a companion "locked" flag. .\"O Setting any of the "locked" flags is irreversible, @@ -1432,14 +1432,14 @@ set-user-ID-root .\"O .BR SECBIT_NO_SETUID_FIXUP_LOCKED , .\"O and .\"O .BR SECBIT_NOROOT_LOCKED . -¾åµ­¤Î "base" ¥Õ¥é¥°¤Î³Æ¡¹¤Ë¤ÏÂбþ¤¹¤ë "locked" ¥Õ¥é¥°¤¬Â¸ºß¤¹¤ë¡£ -¤¤¤º¤ì¤Î "locked" ¥Õ¥é¥°¤â°ìÅÙ¥»¥Ã¥È¤µ¤ì¤ë¤ÈÌ᤹¤³¤È¤Ï¤Ç¤­¤º¡¢ -¤½¤ì°Ê¹ß¤ÏÂбþ¤¹¤ë "base" ¥Õ¥é¥°¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¯¤Ê¤ë¡£ -"locked" ¥Õ¥é¥°¤Ï +上記の "base" フラグの各々には対応する "locked" フラグが存在する。 +いずれの "locked" フラグも一度セットされると戻すことはできず、 +それ以降は対応する "base" フラグを変更することができなくなる。 +"locked" フラグは .BR SECBIT_KEEP_CAPS_LOCKED , .BR SECBIT_NO_SETUID_FIXUP_LOCKED , .BR SECBIT_NOROOT_LOCKED -¤È¤¤¤¦Ì¾Á°¤Ç¤¢¤ë¡£ +という名前である。 .PP .\"O The .\"O .I securebits @@ -1453,16 +1453,16 @@ set-user-ID-root .\"O .B CAP_SETPCAP .\"O capability is required to modify the flags. .I securebits -¥Õ¥é¥°¤Ï¡¢ +フラグは、 .BR prctl (2) -¤ÎÁàºî +の操作 .B PR_SET_SECUREBITS -¤ä +や .B PR_GET_SECUREBITS -¤ò»È¤¦¤³¤È¤ÇÊѹ¹¤·¤¿¤ê¼èÆÀ¤·¤¿¤ê¤Ç¤­¤ë¡£ -¥Õ¥é¥°¤òÊѹ¹¤¹¤ë¤Ë¤Ï +を使うことで変更したり取得したりできる。 +フラグを変更するには .B CAP_SETPCAP -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティが必要である。 .\"O The .\"O .I securebits @@ -1473,20 +1473,20 @@ set-user-ID-root .\"O .B SECURE_KEEP_CAPS .\"O which is always cleared. .I securebits -¥Õ¥é¥°¤Ï»Ò¥×¥í¥»¥¹¤Ë·Ñ¾µ¤µ¤ì¤ë¡£ +フラグは子プロセスに継承される。 .BR execve (2) -¤Ë¤ª¤¤¤Æ¤Ï¡¢ +においては、 .B SECURE_KEEP_CAPS -¤¬¾ï¤Ë¥¯¥ê¥¢¤µ¤ì¤ë°Ê³°¤Ï¡¢Á´¤Æ¤Î¥Õ¥é¥°¤¬ÊÝ»ý¤µ¤ì¤ë¡£ +が常にクリアされる以外は、全てのフラグが保持される。 .\"O An application can use the following call to lock itself, .\"O and all of its descendants, .\"O into an environment where the only way of gaining capabilities .\"O is by executing a program with associated file capabilities: -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢°Ê²¼¤Î¸Æ¤Ó½Ð¤·¤ò¹Ô¤¦¤³¤È¤Ë¤è¤ê¡¢ -¼«Ê¬¼«¿È¤ª¤è¤Ó»Ò¹¤È¤Ê¤ë¥×¥í¥»¥¹Á´¤Æ¤ËÂФ·¤Æ¡¢ -ɬÍפʥե¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤¿¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Ê¤¤¸Â¤ê¡¢ -Âбþ¤¹¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò³ÍÆÀ¤Ç¤­¤Ê¤¤¤è¤¦¤Ê¾õ¶·¤ËÊĤ¸¤³¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +アプリケーションは、以下の呼び出しを行うことにより、 +自分自身および子孫となるプロセス全てに対して、 +必要なファイルケーパビリティを持ったプログラムを実行しない限り、 +対応するケーパビリティを獲得できないような状況に閉じこめることができる。 .in +4n .nf @@ -1499,23 +1499,23 @@ prctl(PR_SET_SECUREBITS, .fi .in .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .PP .\"O No standards govern capabilities, but the Linux capability implementation .\"O is based on the withdrawn POSIX.1e draft standard; see .\"O .IR http://wt.xpilot.org/publications/posix.1e/ . -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ë´Ø¤¹¤ëɸ½à¤Ï¤Ê¤¤¤¬¡¢ Linux ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ÏÇѰƤˤʤä¿ -POSIX.1e Áð°Æ¤Ë´ð¤Å¤¤¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +ケーパビリティに関する標準はないが、 Linux のケーパビリティは廃案になった +POSIX.1e 草案に基づいて実装されている。 .I http://wt.xpilot.org/publications/posix.1e/ -¤ò»²¾È¡£ +を参照。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Since kernel 2.5.27, capabilities are an optional kernel component, .\"O and can be enabled/disabled via the CONFIG_SECURITY_CAPABILITIES .\"O kernel configuration option. -¥«¡¼¥Í¥ë 2.5.27 °Ê¹ß¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ÏÁªÂò¼°¤Î¥«¡¼¥Í¥ë¥³¥ó¥Ý¡¼¥Í¥ó¥È -¤È¤Ê¤Ã¤Æ¤ª¤ê¡¢¥«¡¼¥Í¥ëÀßÄꥪ¥×¥·¥ç¥ó CONFIG_SECURITY_CAPABILITIES -¤Ë¤è¤êÍ­¸ú/̵¸ú¤òÀÚ¤êÂؤ¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +カーネル 2.5.27 以降、ケーパビリティは選択式のカーネルコンポーネント +となっており、カーネル設定オプション CONFIG_SECURITY_CAPABILITIES +により有効/無効を切り替えることができる。 .\"O The .\"O .I /proc/PID/task/TID/status @@ -1524,9 +1524,9 @@ POSIX.1e .\"O .I /proc/PID/status .\"O file shows the capability sets of a process's main thread. .I /proc/PID/task/TID/status -¥Õ¥¡¥¤¥ë¤ò»È¤¦¤È¡¢¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ò¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +ファイルを使うと、スレッドのケーパビリティセットを見ることができる。 .I /proc/PID/status -¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¥×¥í¥»¥¹¤Î¥á¥¤¥ó¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤¬É½¼¨¤µ¤ì¤ë¡£ +ファイルには、プロセスのメインスレッドのケーパビリティセットが表示される。 .\"O The .\"O .I libcap @@ -1537,12 +1537,12 @@ POSIX.1e .\"O and .\"O .BR capget (2). .I libcap -¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÀßÄꡦ¼èÆÀ¤¹¤ë¤¿¤á¤Î -¥ë¡¼¥Á¥ó·²¤òÄ󶡤·¤Æ¤¤¤ë¡£¤³¤ì¤é¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¡¢ +パッケージは、ケーパビリティを設定・取得するための +ルーチン群を提供している。これらのインタフェースは、 .BR capset (2) -¤È +と .BR capget (2) -¤¬Ä󶡤¹¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÈÈæ¤Ù¤Æ¡¢¤è¤ê»È¤¤¤ä¤¹¤¯¡¢Êѹ¹¤µ¤ì¤ë²ÄǽÀ­¤¬¾¯¤Ê¤¤¡£ +が提供するインターフェースと比べて、より使いやすく、変更される可能性が少ない。 .\"O This package also provides the .\"O .BR setcap (8) .\"O and @@ -1551,13 +1551,13 @@ POSIX.1e .\"O It can be found at .\"O .br .\"O .IR http://www.kernel.org/pub/linux/libs/security/linux-privs . -¤³¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ç¤Ï¡¢ +このパッケージでは、 .BR setcap (8), .BR getcap (8) -¤È¤¤¤¦¥×¥í¥°¥é¥à¤âÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ -¥Ñ¥Ã¥±¡¼¥¸¤Ï +というプログラムも提供されている。 +パッケージは .I http://www.kernel.org/pub/linux/libs/security/linux-privs -¤ÇÆþ¼ê¤Ç¤­¤ë¡£ +で入手できる。 .\"O Before kernel 2.6.24, and since kernel 2.6.24 if .\"O file capabilities are not enabled, a thread with the @@ -1567,39 +1567,39 @@ POSIX.1e .\"O since no thread ever has .\"O .BR CAP_SETPCAP .\"O in either of these cases: -¥Ð¡¼¥¸¥ç¥ó 2.6.24 ¤è¤êÁ°¡¢¤ª¤è¤Ó¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬ -Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤2.6.24 °Ê¹ß¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +バージョン 2.6.24 より前、およびファイルケーパビリティが +有効になっていない2.6.24 以降のカーネルでは、 .B CAP_SETPCAP -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤¿¥¹¥ì¥Ã¥É¤Ï¼«Ê¬°Ê³°¤Î¥¹¥ì¥Ã¥É¤Î -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÁàºî¤Ç¤­¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢¤³¤ì¤ÏÍýÏÀŪ¤Ë²Äǽ¤È¤¤¤¦¤À¤±¤Ç¤¢¤ë¡£ -°Ê²¼¤Î¤¤¤º¤ì¤«¤Î¾ì¹ç¤Ë¤ª¤¤¤Æ¤â¡¢¤É¤Î¥¹¥ì¥Ã¥É¤â +ケーパビリティを持ったスレッドは自分以外のスレッドの +ケーパビリティを操作できる。 +しかしながら、これは理論的に可能というだけである。 +以下のいずれかの場合においても、どのスレッドも .BR CAP_SETPCAP -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¤³¤È¤Ï¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +ケーパビリティを持つことはないからである。 .IP * 2 .\"O In the pre-2.6.25 implementation the system-wide capability bounding set, .\"O .IR /proc/sys/kernel/cap-bound , .\"O always masks out this capability, and this can not be changed .\"O without modifying the kernel source and rebuilding. -2.6.25 ¤è¤êÁ°¤Î¼ÂÁõ¤Ç¤Ï¡¢¥·¥¹¥Æ¥à¶¦Ä̤Υ±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È +2.6.25 より前の実装では、システム共通のケーパビリティ・バウンディングセット .I /proc/sys/kernel/cap-bound -¤Ç¤Ï¤³¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ï¾ï¤Ë̵¸ú¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢ -¥½¡¼¥¹¤òÊѹ¹¤·¤Æ¥«¡¼¥Í¥ë¤òºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤Ê¤¤¸Â¤ê¡¢ -¤³¤ì¤òÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +ではこのケーパビリティは常に無効になっており、 +ソースを変更してカーネルを再コンパイルしない限り、 +これを変更することはできない。 .IP * .\"O If file capabilities are disabled in the current implementation, then .\"O .B init .\"O starts out with this capability removed from its per-process bounding .\"O set, and that bounding set is inherited by all other processes .\"O created on the system. -¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬Ìµ¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -¥×¥í¥»¥¹Ëè¤Î¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤«¤é¤³¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÈ´¤¤¤Æ +現在の実装ではファイルケーパビリティが無効になっている場合、 +プロセス毎のバウンディングセットからこのケーパビリティを抜いて .B init -¤Ï³«»Ï¤µ¤ì¡¢ -¥·¥¹¥Æ¥à¾å¤ÇÀ¸À®¤µ¤ì¤ë¾¤ÎÁ´¤Æ¤Î¥×¥í¥»¥¹¤Ç¤³¤Î¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤¬ -·Ñ¾µ¤µ¤ì¤ë¡£ +は開始され、 +システム上で生成される他の全てのプロセスでこのバウンディングセットが +継承される。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR capget (2), .BR prctl (2), .BR setfsuid (2), @@ -1618,5 +1618,5 @@ POSIX.1e .PP .\"O .I include/linux/capability.h .\"O in the kernel source -¥«¡¼¥Í¥ë¥½¡¼¥¹Æâ¤Î +カーネルソース内の .I include/linux/capability.h diff --git a/draft/man7/charsets.7 b/draft/man7/charsets.7 index 7e0cd237..52306491 100644 --- a/draft/man7/charsets.7 +++ b/draft/man7/charsets.7 @@ -18,29 +18,29 @@ .\" Updated Fri Dec 3 JST 1999 by Kentaro Shirakata .\" Updated Fri Jan 4 JST 2002 by Kentaro Shirakata .\" -.\" WORD: ligature ¹ç»ú +.\" WORD: ligature 合字 .\" .TH CHARSETS 7 2008-06-03 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O charsets \- programmer's view of character sets and internationalization -.SH ̾Á° -charsets \- ¥×¥í¥°¥é¥Þ¤Î»ëÅÀ¤«¤é¸«¤¿Ê¸»ú¥»¥Ã¥È¤È¹ñºÝ²½ +.SH 名前 +charsets \- プログラマの視点から見た文字セットと国際化 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Linux is an international operating system. .\"O Various of its utilities .\"O and device drivers (including the console driver) support multilingual .\"O character sets including Latin-alphabet letters with diacritical .\"O marks, accents, ligatures, and entire non-Latin alphabets including .\"O Greek, Cyrillic, Arabic, and Hebrew. -Linux ¤Ï¹ñºÝ²½¤µ¤ì¤¿¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£ -Linux ¤ÎÍÍ¡¹¤Ê¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ä¡¢ console ¥É¥é¥¤¥Ð¤Ê¤É¤Î -¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ï¡¢Èó¥é¥Æ¥ó¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Ê¤É¤Î -¥Þ¥ë¥Á¥ê¥ó¥¬¥ëʸ»ú¥»¥Ã¥È (multilingual character sets) ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Ë¤Ï¥é¥Æ¥ó¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»ú¡¦¥®¥ê¥·¥ãʸ»ú¡¦ -¥­¥ê¥ëʸ»ú¡¦¥¢¥é¥Ó¥¢Ê¸»ú¡¦¥Ø¥Ö¥é¥¤Ê¸»ú¤Ê¤É¤¬´Þ¤Þ¤ì¡¢ -ȯ²»¶èÊÌÉä¹æ (diacritical marks)¡¦¥¢¥¯¥»¥ó¥È¡¦¹ç»ú (ligatures) ¤Ê¤É¤â -»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +Linux は国際化されたオペレーティングシステムである。 +Linux の様々なユーティリティや、 console ドライバなどの +デバイスドライバは、非ラテンアルファベットなどの +マルチリンガル文字セット (multilingual character sets) をサポートしている。 +これらにはラテンアルファベット文字・ギリシャ文字・ +キリル文字・アラビア文字・ヘブライ文字などが含まれ、 +発音区別符号 (diacritical marks)・アクセント・合字 (ligatures) なども +使うことができる。 .LP .\"O This manual page presents a programmer's-eye view of different .\"O character-set standards and how they fit together on Linux. @@ -50,31 +50,31 @@ Linux .\"O The primary emphasis is on character sets actually used as .\"O locale character sets, not the myriad others that can be found in data .\"O from other systems. -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Ï¡¢¥×¥í¥°¥é¥Þ¤Î»ëÅÀ¤«¤é¤ß¤¿°Û¤Ê¤ëʸ»ú½¸¹çµ¬³Ê -(character-set standards) ¤È¡¢¤½¤ì¤é¤ò Linux ¤Ë¤É¤¦Å¬¹ç¤µ¤»¤ë¤«¤È¤¤¤¦¤³ -¤È¤Ë¤Ä¤¤¤Æ½Ò¤Ù¤ë¡£¤³¤³¤Ç¤Ï¡¢ASCII, ISO 8859, KOI8-R, Unicode, ISO 2022, -ISO 4873 ¤Î³Æµ¬³Ê¤Ë¤Ä¤¤¤ÆµÄÏÀ¤¹¤ë¡£ -¤³¤³¤Ç¤Ï¼ÂºÝ¤Ë¥í¥±¡¼¥ëʸ»ú¥»¥Ã¥È¤È¤·¤Æ»È¤ï¤ì¤Æ¤¤¤ëʸ»ú¥»¥Ã¥È¤ËÃíÌܤ·¡¢ -¤½¤Î¾¤Î¥·¥¹¥Æ¥à¤Ç»È¤ï¤ì¤Æ¤¤¤ë̵¿ô¤Î¤â¤Î¤Ï½Å»ë¤·¤Ê¤¤¡£ +このマニュアルページでは、プログラマの視点からみた異なる文字集合規格 +(character-set standards) と、それらを Linux にどう適合させるかというこ +とについて述べる。ここでは、ASCII, ISO 8859, KOI8-R, Unicode, ISO 2022, +ISO 4873 の各規格について議論する。 +ここでは実際にロケール文字セットとして使われている文字セットに注目し、 +その他のシステムで使われている無数のものは重視しない。 .LP .\"O A complete list of charsets used in an officially supported locale in glibc .\"O 2.2.3 is: ISO-8859-{1,2,3,5,6,7,8,9,13,15}, CP1251, UTF-8, EUC-{KR,JP,TW}, .\"O KOI8-{R,U}, GB2312, GB18030, GBK, BIG5, BIG5-HKSCS and TIS-620 (in no .\"O particular order.) .\"O(Romanian may be switching to ISO-8859-16.) -glibc 2.2.3 ¤Ç¸ø¼°¤ËÂбþ¤·¤Æ¤¤¤ë¥í¥±¡¼¥ë¤ÇÍѤ¤¤é¤ì¤Æ¤¤¤ëʸ»ú¥»¥Ã¥È¤Î -´°Á´¤Ê¥ê¥¹¥È¤Ï°Ê²¼¤ÎÄ̤ê: +glibc 2.2.3 で公式に対応しているロケールで用いられている文字セットの +完全なリストは以下の通り: ISO-8859-{1,2,3,5,6,7,8,9,13,15}, CP1251, UTF-8, EUC-{KR,JP,TW}, -KOI8-{R,U}, GB2312, GB18030, GBK, BIG5, BIG5-HKSCS, TIS-620 (½çÉÔƱ) -(¥ë¡¼¥Þ¥Ë¥¢¸ì¤Ï ISO-8859-16 ¤ËÀÚ¤êÂؤï¤Ã¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤) +KOI8-{R,U}, GB2312, GB18030, GBK, BIG5, BIG5-HKSCS, TIS-620 (順不同) +(ルーマニア語は ISO-8859-16 に切り替わっているかもしれない) .SS ASCII .\"O ASCII (American Standard Code For Information Interchange) is the original .\"O 7-bit character set, originally designed for American English. .\"O It is currently described by the ECMA-6 standard. -ASCII (American Standard Code For Information Interchange) ¤Ï -7¡¡¥Ó¥Ã¥Èʸ»ú½¸¹ç¤Î¸µ¤È¤Ê¤Ã¤¿¤â¤Î¤Ç¤¢¤ê¡¢ -¤â¤È¤â¤È¤ÏÊƸì(American English) ¤Î¤¿¤á¤Ë¥Ç¥¶¥¤¥ó¤µ¤ì¤¿¡£ -¸½ºß¤Ï¡¢ECMA-6 ɸ½à¤ÎÃæ¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡£ +ASCII (American Standard Code For Information Interchange) は +7 ビット文字集合の元となったものであり、 +もともとは米語(American English) のためにデザインされた。 +現在は、ECMA-6 標準の中で説明されている。 .LP .\"O Various ASCII variants replacing the dollar sign with other currency .\"O symbols and replacing punctuation with non-English alphabetic characters @@ -84,36 +84,36 @@ ASCII (American Standard Code For Information Interchange) .\"O true supersets of ASCII. .\"O (These sets are also known as ISO-646, a close .\"O relative of ASCII that permitted replacing these characters.) -¥É¥¤¥Ä¸ì¡¢¥Õ¥é¥ó¥¹¸ì¡¢¥¹¥Ú¥¤¥ó¸ì¤Ê¤É¤Ë 7 ¥Ó¥Ã¥È¤ÇÂбþ¤¹¤ë¤¿¤á¡¢ -ASCII ¤Î¥É¥ëµ­¹æ¤ò¾¤ÎÄ̲ߵ­¹æ¤ËÃÖ¤­´¹¤¨¡¢ -¶çÆÉÅÀ¤òÈó±Ñ¸ìʸ»ú¤Î¤â¤Î¤ËÃÖ¤­´¹¤¨¤¿ÍÍ¡¹¤ÊÊѼ郎¸ºß¤¹¤ë¡£ -¤³¤ì¤é¤ÏÁ´¤Æ»È¤¦¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -glibc ¤Ï ASCII ¤Î´°Á´¤Ê¥¹¡¼¥Ñ¡¼¥»¥Ã¥È¤Ç¤Ê¤¤Ê¸»ú¥»¥Ã¥È¤Î¥í¥±¡¼¥ë¤Ë -Âбþ¤·¤Æ¤¤¤Ê¤¤¡£ -(¤³¤ì¤é¤Îʸ»ú¥»¥Ã¥È¤Ï ISO-646 ¤È¤·¤ÆÃΤé¤ì¤ë¡£ -¤³¤ì¤Ï ASCII ¤È¶á¤¤´Ø·¸¤Ë¤¢¤ê¡¢¤³¤ì¤é¤Îʸ»ú¤òÃÖ¤­´¹¤¨¤ë¤³¤È¤òǧ¤á¤Æ¤¤¤ë) +ドイツ語、フランス語、スペイン語などに 7 ビットで対応するため、 +ASCII のドル記号を他の通貨記号に置き換え、 +句読点を非英語文字のものに置き換えた様々な変種が存在する。 +これらは全て使うべきではない。 +glibc は ASCII の完全なスーパーセットでない文字セットのロケールに +対応していない。 +(これらの文字セットは ISO-646 として知られる。 +これは ASCII と近い関係にあり、これらの文字を置き換えることを認めている) .LP .\"O As Linux was written for hardware designed in the US, it natively .\"O supports ASCII. -Linux ¤ÏÊƹñ¤ÇÀ߷פµ¤ì¤¿¥Ï¡¼¥É¥¦¥§¥¢¤Î¤¿¤á¤Ë½ñ¤«¤ì¤¿¤Î¤Ç¡¢ -¤Ï¤¸¤á¤«¤é ASCII ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ +Linux は米国で設計されたハードウェアのために書かれたので、 +はじめから ASCII をサポートしている。 .SS ISO 8859 .\"O ISO 8859 is a series of 15 8-bit character sets all of which have US .\"O ASCII in their low (7-bit) half, invisible control characters in .\"O positions 128 to 159, and 96 fixed-width graphics in positions 160-255. -ISO 8859 ¤Ï 15 ÁȤΰìÏ¢¤Î 8 ¥Ó¥Ã¥Èʸ»ú½¸¹ç¤Ç¤¢¤ë¡£¤½¤ì¤é¤ÏÁ´¤Æ -²¼°Ì (7 ¥Ó¥Ã¥È) ¤Ë US ASCII ¤ò´Þ¤ß¡¢ 128 ¤«¤é 159 ¤Ë¤ÏÀ©¸æʸ»ú¤¬ÇÛÃÖ¤µ¤ì¡¢ -160 ¤«¤é 255 ¤Ë¤Ï 96 ¸Ä¤Î¸ÇÄêÉý¿Þ·Áʸ»ú¤¬ÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë¡£ +ISO 8859 は 15 組の一連の 8 ビット文字集合である。それらは全て +下位 (7 ビット) に US ASCII を含み、 128 から 159 には制御文字が配置され、 +160 から 255 には 96 個の固定幅図形文字が配置されている。 .LP .\"O Of these, the most important is ISO 8859-1 (Latin-1). .\"O It is natively .\"O supported in the Linux console driver, fairly well supported in X11R6, .\"O and is the base character set of HTML. -¤³¤ì¤é¤Î¤¦¤Á¤Ç¡¢¤â¤Ã¤È¤â½ÅÍ×¤Ê¤Î¤Ï ISO 8859-1 (Latin-1) ¤Ç¤¢¤ë¡£¤³¤ì -¤Ï Linux ¥³¥ó¥½¡¼¥ë¥É¥é¥¤¥Ð¤Ë¤ª¤¤¤Æ¥Í¥¤¥Æ¥£¥Ö¤Ë¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤ª¤ê¡¢ -.\"nakano ¤Ç¤¤¤¤¤ó¤¸¤ã¤Ê¤¤¤«¤È»×¤¤¤Þ¤¹¡£ -X11R6 ¤Ë¤ª¤¤¤Æ¤âƱÍͤ˥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£¤µ¤é¤Ë¡¢ -HTML ¤Î´ðËÜʸ»ú½¸¹ç¤Ç¤¢¤ë¡£ +これらのうちで、もっとも重要なのは ISO 8859-1 (Latin-1) である。これ +は Linux コンソールドライバにおいてネイティブにサポートされており、 +.\"nakano でいいんじゃないかと思います。 +X11R6 においても同様にサポートされている。さらに、 +HTML の基本文字集合である。 .LP .\"O Console support for the other 8859 character sets is available under .\"O Linux through user-mode utilities (such as @@ -122,15 +122,15 @@ HTML .\"O that modify keyboard bindings and the EGA graphics .\"O table and employ the "user mapping" font table in the console .\"O driver. -¥³¥ó¥½¡¼¥ë¤Ë¤ª¤±¤ë¡¢¤½¤Î¾¤Î 8859 ʸ»ú½¸¹ç¤Î¥µ¥Ý¡¼¥È¤Ï +コンソールにおける、その他の 8859 文字集合のサポートは .RB ( setfont (8)) -¤Î¤è¤¦¤Ê¥æ¡¼¥¶¥â¡¼¥É¡¦¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤òÍøÍѤ¹¤ë»ö¤Ç²Äǽ¤Ë¤Ê¤ë¡£ -¤³¤Î¤è¤¦¤Ê¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤òÍøÍѤ¹¤ë¤³¤È¤Ë¤è¤ê¡¢¥³¥ó¥½¡¼¥ë¥É¥é¥¤¥Ð¤Ë¤ª¤± -¤ë¥­¡¼¥Ü¡¼¥É¤È EGA ¥°¥é¥Õ¥£¥Ã¥¯¥Æ¡¼¥Ö¥ë¤Î³ä¤êÅö¤Æ¤òÊѹ¹¤·¡¢"¥æ¡¼¥¶³ä -¤êÅö¤Æ(user mapping)"¥Õ¥©¥ó¥È¥Æ¡¼¥Ö¥ë¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +のようなユーザモード・ユーティリティを利用する事で可能になる。 +このようなユーティリティを利用することにより、コンソールドライバにおけ +るキーボードと EGA グラフィックテーブルの割り当てを変更し、"ユーザ割 +り当て(user mapping)"フォントテーブルを使用することができる。 .LP .\"O Here are brief descriptions of each set: -°Ê²¼¤Ï¡¢¤½¤ì¤¾¤ì¤Î½¸¹ç¤Î´Êñ¤ÊÀâÌÀ¤Ç¤¢¤ë¡£ +以下は、それぞれの集合の簡単な説明である。 .TP .\"O 8859-1 (Latin-1) .\"O Latin-1 covers most Western European languages such as Albanian, Catalan, @@ -140,43 +140,43 @@ HTML .\"O The lack of the ligatures Dutch ij, French oe and old-style .\"O ,,German`` quotation marks is considered tolerable. 8859-1 (Latin-1) -Latin-1 ¤Ï ¥¢¥ë¥Ð¥Ë¥¢¸ì(Albanian)¡¢¥«¥¿¥í¥Ë¥¢¸ì(Catalan)¡¢¥Ç¥ó¥Þ¡¼¥¯¸ì -(Danish)¡¢¥ª¥é¥ó¥À¸ì(Dutch)¡¢±Ñ¸ì(English)¡¢¥Õ¥§¥í¡¼¸ì(Faroese)¡¢ -¥Õ¥£¥ó¥é¥ó¥É¸ì(Finnish)¡¢¥Õ¥é¥ó¥¹¸ì(French)¡¢¥É¥¤¥Ä¸ì(German)¡¢ -¥¬¥ê¥·¥¢¸ì(Galician)¡¢¥¢¥¤¥ë¥é¥ó¥É¸ì(Irish)¡¢¥¢¥¤¥¹¥é¥ó¥É¸ì(Icelandic)¡¢ -¥¤¥¿¥ê¥¢¸ì(Italian)¡¢¥Î¥ë¥¦¥§¡¼¸ì(Norwegian)¡¢¥Ý¥ë¥È¥¬¥ë¸ì(Portuguese)¡¢ -¥¹¥Ú¥¤¥ó¸ì(Spanish)¡¢¥¹¥¦¥§¡¼¥Ç¥ó¸ì(Swedish)¤È¤¤¤Ã¤¿¤Û¤È¤ó¤É¤Î -À¾¥è¡¼¥í¥Ã¥Ñ¸À¸ì¤ò¥«¥Ð¡¼¤¹¤ë¡£ -¥É¥¤¥Ä¸ì¤Î ij ¤ä¥Õ¥é¥ó¥¹¸ì¤Î oe ¤Î¹ç»ú¡¢¤ª¤è¤Ó¸Å¤¤¥¹¥¿¥¤¥ë¤Î -,,¥É¥¤¥Ä¸ì`` °úÍÑÉä¤Ï¤Ê¤¤¤¬¡¢µöÍÆÈϰϤȹͤ¨¤é¤ì¤Æ¤¤¤ë¡£ +Latin-1 は アルバニア語(Albanian)、カタロニア語(Catalan)、デンマーク語 +(Danish)、オランダ語(Dutch)、英語(English)、フェロー語(Faroese)、 +フィンランド語(Finnish)、フランス語(French)、ドイツ語(German)、 +ガリシア語(Galician)、アイルランド語(Irish)、アイスランド語(Icelandic)、 +イタリア語(Italian)、ノルウェー語(Norwegian)、ポルトガル語(Portuguese)、 +スペイン語(Spanish)、スウェーデン語(Swedish)といったほとんどの +西ヨーロッパ言語をカバーする。 +ドイツ語の ij やフランス語の oe の合字、および古いスタイルの +,,ドイツ語`` 引用符はないが、許容範囲と考えられている。 .TP .\"O 8859-2 (Latin-2) .\"O Latin-2 supports most Latin-written Slavic and Central European .\"O languages: Croatian, Czech, German, Hungarian, Polish, Rumanian, .\"O Slovak, and Slovene. 8859-2 (Latin-2) -Latin-2 ¤Ï¥¹¥é¥ô¸ì(Slavic)¡¢¥¯¥í¥¢¥Á¥¢¸ì(Croatian)¡¢¥Á¥§¥³ -¸ì(Czech)¡¢¥É¥¤¥Ä¸ì(German)¡¢¥Ï¥ó¥¬¥ê¡¼¸ì(Hungarian)¡¢¥Ý¡¼¥é¥ó¥É¸ì -(Polish)¡¢¥ë¡¼¥Þ¥Ë¥¢¸ì(Rumanian)¡¢¥¹¥í¥ô¥¡¥­¥¢¸ì(Slovak)¡¢ -¥¹¥í¥Ù¥Ë¥¢¸ì(Slovene)¤È¤¤¤Ã¤¿¡¢½ñ¤­Ê¸»ú¤È¤·¤Æ¥é¥Æ¥óʸ»ú¤ò -»ÈÍѤ¹¤ë¡¢¥¹¥é¥Ö·Ï¸À¸ì¤ÈÃæ±û¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì¤Î¤Û¤È¤ó¤É¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ +Latin-2 はスラヴ語(Slavic)、クロアチア語(Croatian)、チェコ +語(Czech)、ドイツ語(German)、ハンガリー語(Hungarian)、ポーランド語 +(Polish)、ルーマニア語(Rumanian)、スロヴァキア語(Slovak)、 +スロベニア語(Slovene)といった、書き文字としてラテン文字を +使用する、スラブ系言語と中央ヨーロッパの言語のほとんどをサポートする。 .TP .\"O 8859-3 (Latin-3) .\"O Latin-3 is popular with authors of Esperanto, Galician, and Maltese. .\"O (Turkish is now written with 8859-9 instead.) 8859-3 (Latin-3) -Latin-3 ¤Ï¥¨¥¹¥Ú¥é¥ó¥È(Esperanto)¡¢¥¬¥ê¥·¥¢¸ì(Galician)¡¢¥Þ¥ë¥¿¸ì -(Maltese)¤Ê¤É¤Î½ñ¤­¼ê¤Î´Ö¤ÇÎɤ¯ÍѤ¤¤é¤ì¤ë¡£ -(¥È¥ë¥³¸ì(Turkish)¤Ï¤³¤ì¤ÎÂå¤ï¤ê¤Ë 8859-9 ¤Ç½ñ¤«¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë) +Latin-3 はエスペラント(Esperanto)、ガリシア語(Galician)、マルタ語 +(Maltese)などの書き手の間で良く用いられる。 +(トルコ語(Turkish)はこれの代わりに 8859-9 で書かれるようになっている) .TP .\"O 8859-4 (Latin-4) .\"O Latin-4 introduced letters for Estonian, Latvian, and Lithuanian. .\"O It is essentially obsolete; see 8859-10 (Latin-6) and 8859-13 (Latin-7). 8859-4 (Latin-4) -Latin-4 ¤Ï¥¨¥¹¥È¥Ë¥¢¸ì(Estonian)¡¢¥é¥È¥Ó¥¢¸ì(Latvian)¡¢¥ê¥È¥¢¥Ë¥¢¸ì -(Lithuanian)¤Îʸ»ú¤òÄ󶡤¹¤ë¡£Latain-4 ¤Ï¡¢ -ËܼÁŪ¤Ë¤ÏÇѻߤµ¤ì¤Æ¤¤¤ë(obsolate ¤Ç¤¢¤ë)¡£ -8859-10 (Latin-6) ¤È 8859-13 (Latin-7) ¤ò»²¾È¤Î¤³¤È¡£ +Latin-4 はエストニア語(Estonian)、ラトビア語(Latvian)、リトアニア語 +(Lithuanian)の文字を提供する。Latain-4 は、 +本質的には廃止されている(obsolate である)。 +8859-10 (Latin-6) と 8859-13 (Latin-7) を参照のこと。 .TP .\"O 8859-5 .\"O Cyrillic letters supporting Bulgarian, Byelorussian, Macedonian, @@ -187,13 +187,13 @@ Latin-4 .\"O See the discussion of KOI8-R below. 8859-5 .br -¥Ö¥ë¥¬¥ê¥¢¸ì(Bulgarian)¡¢¥Ù¥é¥ë¡¼¥·¸ì(Byelorussian)¡¢¥Þ¥±¥É¥Ë¥¢¸ì -(Macedonian)¡¢¥í¥·¥¢¸ì(Russian)¡¢¥»¥ë¥Ó¥¢¸ì(Serbian)¡¢¥¦¥¯¥é¥¤¥Ê¸ì -(Ukrainian) ¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥­¥ê¥ëʸ»ú½¸¹ç¤Ç¤¢¤ë¡£ ¥¦¥¯¥é¥¤¥Ê¸ì¤Ç¤Ï -downstroke ¤ò¤Ä¤±¤¿ "ghe" ¤È¤¤¤¦Ê¸»ú¤ò "heh" ¤ÈÆɤߡ¢ -ghe ¤òÀµ¤·¤¯½ñ¤¯¤Ë¤Ï ghe ¤Ë upstroke ¤ò¤Ä¤±¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ÎÅÀ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ -²¼¤Î KOI8-R ¤Ë´Ø¤¹¤ëµÄÏÀ¤ò»²¾È¤Î¤³¤È¡£ +ブルガリア語(Bulgarian)、ベラルーシ語(Byelorussian)、マケドニア語 +(Macedonian)、ロシア語(Russian)、セルビア語(Serbian)、ウクライナ語 +(Ukrainian) をサポートするキリル文字集合である。 ウクライナ語では +downstroke をつけた "ghe" という文字を "heh" と読み、 +ghe を正しく書くには ghe に upstroke をつけなければならない。 +この点については、 +下の KOI8-R に関する議論を参照のこと。 .TP .\"O 8859-6 .\"O Supports Arabic. @@ -202,15 +202,15 @@ ghe .\"O using the proper initial, medial, and final forms. 8859-6 .br -¥¢¥é¥Ó¥¢¸ì(Arabic)¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£8859-6 ¤Î¥°¥ê¥Õ¥Æ¡¼¥Ö¥ë(glyph table) -¤Ïʸ»ú¤Î·ÁÂÖ¤òʬ³ä¤·¤¿¸ÇÄêÉý¥Õ¥©¥ó¥È¤Ç¤¢¤ë¡£ -¤½¤Î¤¿¤á¡¢Å¬Àڤʥǥ£¥¹¥×¥ì¥¤¥¨¥ó¥¸¥ó¤¬Àµ¤·¤¤ -initial, medial, final ¥Õ¥©¡¼¥à¤Ë·ë¹ç¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +アラビア語(Arabic)をサポートする。8859-6 のグリフテーブル(glyph table) +は文字の形態を分割した固定幅フォントである。 +そのため、適切なディスプレイエンジンが正しい +initial, medial, final フォームに結合しなければならない。 .TP .\"O 8859-7 .\"O Supports Modern Greek. 8859-7 -¸½Â奮¥ê¥·¥ã¸ì(Modern Greek)¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ +現代ギリシャ語(Modern Greek)をサポートする。 .TP .\"O 8859-8 .\"O Supports modern Hebrew without niqud (punctuation signs). @@ -218,17 +218,17 @@ initial, medial, final .\"O character set; under Linux, UTF-8 is the preferred encoding for .\"O these. 8859-8 -niqud(¶çÆÉÅÀµ­¹æ) ¤Î¤Ê¤¤¶áÂå¥Ø¥Ö¥é¥¤¸ì(Hebrew)¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ -niqud ¤È´°Á´¤ÊÀ»½ñÉ÷¥Ø¥Ö¥é¥¤¸ì(Biblical Hebrew)¤Ï¤³¤Îʸ»ú¥»¥Ã¥È¤Î -Âоݳ°¤Ç¤¢¤ë¡£ -Linux ¤Ç¤Ï¡¢¤³¤ì¤é¤Î¤¿¤á¤Ë¤Ï UTF-8 ¤¬¹¥¤Þ¤·¤¤¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Ç¤¢¤ë¡£ +niqud(句読点記号) のない近代ヘブライ語(Hebrew)をサポートする。 +niqud と完全な聖書風ヘブライ語(Biblical Hebrew)はこの文字セットの +対象外である。 +Linux では、これらのためには UTF-8 が好ましいエンコーディングである。 .TP .\"O 8859-9 (Latin-5) .\"O This is a variant of Latin-1 that replaces Icelandic letters with .\"O Turkish ones. 8859-9 (Latin-5) -¤³¤ì¤Ï¡¢Latin-1 ¤ÎÊѼï¤Ç¡¢¥¢¥¤¥¹¥é¥ó¥É¸ì¤Îʸ»ú¤ò¥È¥ë¥³¸ì(Turkish)ʸ»ú¤Ë -ÃÖ¤­´¹¤¨¤¿¤â¤Î¤Ç¤¢¤ë¡£ +これは、Latin-1 の変種で、アイスランド語の文字をトルコ語(Turkish)文字に +置き換えたものである。 .TP .\"O 8859-10 (Latin-6) .\"O Latin 6 adds the last Inuit (Greenlandic) and Sami (Lappish) letters @@ -237,20 +237,20 @@ Linux .\"O Skolt Sami still .\"O needs a few more accents than these. 8859-10 (Latin-6) -Latin-6 ¤ÏË̲¤(Nordic)ÃÏ°è¤ò¥«¥Ð¡¼¤¹¤ë¤¿¤á¤Ë Latin-4 ¤Ë¤Ï´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤ -¥¤¥Ì¥¤¥Ã¥È¸ì(Inuit)(¥°¥ê¡¼¥ó¥é¥ó¥É¸ì(Greenlandic)) ¤È -¥µ¡¼¥á¸ì(Sami)(¥é¥Ã¥×¸ì(Lappish)) ¤ò²Ã¤¨¤Æ¤¢¤ë¡£ -RFC 1345 ¤Ë¤Ï¡¢¤³¤ÎÁ°Ãʳ¬¤Î¡¢°Û¤Ê¤Ã¤¿ "latin6" ¤¬ºÜ¤»¤é¤ì¤Æ¤¤¤ë¡£ -¥¹¥³¥ë¥È¡¦¥µ¡¼¥á¸ì(Skolt Sami)¤Ç¤Ï¡¢ -¤µ¤é¤Ë¤¤¤¯¤Ä¤«¤Î¥¢¥¯¥»¥ó¥Èµ­¹æ¤¬É¬ÍפȤ¹¤ë¡£ +Latin-6 は北欧(Nordic)地域をカバーするために Latin-4 には含まれていない +イヌイット語(Inuit)(グリーンランド語(Greenlandic)) と +サーメ語(Sami)(ラップ語(Lappish)) を加えてある。 +RFC 1345 には、この前段階の、異なった "latin6" が載せられている。 +スコルト・サーメ語(Skolt Sami)では、 +さらにいくつかのアクセント記号が必要とする。 .TP .\"O 8859-11 .\"O This only exists as a rejected draft standard. .\"O The draft standard .\"O was identical to TIS-620, which is used under Linux for Thai. 8859-11 -¤³¤ì¤ÏµñÀ䤵¤ì¤¿Áð°Æɸ½à¤Î¤¿¤á¤À¤±¤Ë¸ºß¤¹¤ë¡£ -¤³¤ÎÁð°Æɸ½à¤Ï Linux ¤Ç¥¿¥¤¸ì¤Î¤¿¤á¤ËÍѤ¤¤é¤ì¤ë TIS-620 ¤ÈƱ¤¸¤â¤Î¤Ç¤¢¤ë¡£ +これは拒絶された草案標準のためだけに存在する。 +この草案標準は Linux でタイ語のために用いられる TIS-620 と同じものである。 .TP .\"O 8859-12 .\"O This set does not exist. @@ -260,38 +260,38 @@ RFC 1345 .\"O UTF-8 is the preferred character set for Vietnamese use .\"O under Linux. 8859-12 -¤³¤Îʸ»ú¥»¥Ã¥È¤Ï¸ºß¤·¤Ê¤¤¡£ -¥Ù¥È¥Ê¥à¸ì¤¬¤³¤Î¾ì½ê¤ò»È¤¦¤è¤¦¤ËÄó°Æ¤·¤¿¤¬¡¢ -ISO 8859 ¤¬Äó°Æ¤¹¤ë(¹çÀ®¤Ç¤Ê¤¤) 96 ʸ»ú¤Ë¼ý¤Þ¤é¤Ê¤«¤Ã¤¿¡£ -Linux ¤Ç¤Ï¥Ù¥È¥Ê¥à¸ì¤ò°·¤¦¾ì¹ç¤Ï UTF-8 ¤¬¹¥¤Þ¤·¤¤Ê¸»ú¥»¥Ã¥È¤Ç¤¢¤ë¡£ +この文字セットは存在しない。 +ベトナム語がこの場所を使うように提案したが、 +ISO 8859 が提案する(合成でない) 96 文字に収まらなかった。 +Linux ではベトナム語を扱う場合は UTF-8 が好ましい文字セットである。 .TP .\"O 8859-13 (Latin-7) .\"O Supports the Baltic Rim languages; in particular, it includes Latvian .\"O characters not found in Latin-4. 8859-13 (Latin-7) -¥Ð¥ë¥È³¤½ô¹ñ¤Î¸À¸ì¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ -Æäˡ¢Latin-4 ¤Ë¸ºß¤·¤Ê¤¤¥é¥È¥Ó¥¢¸ì¤Îʸ»ú¤ò´Þ¤à¡£ +バルト海諸国の言語をサポートする。 +特に、Latin-4 に存在しないラトビア語の文字を含む。 .TP .\"O 8859-14 (Latin-8) .\"O This is the Celtic character set, covering Gaelic and Welsh. .\"O This charset also contains the dotted characters needed for Old Irish. 8859-14 (Latin-8) -¤³¤ì¤Ï¥±¥ë¥È¸ì¤Îʸ»ú¥»¥Ã¥È¤Ç¤¢¤ê¡¢¥²¡¼¥ë¸ì(Gaelic)¤È¥¦¥§¡¼¥ë¥º¸ì(Welsh)¤Ë -Âбþ¤¹¤ë¡£ -¤³¤Îʸ»ú¥»¥Ã¥È¤Ï¸ÅÂ奢¥¤¥ë¥é¥ó¥É¸ì¤ÇÍѤ¤¤é¤ì¤ëÉÕÅÀÉÕ¤­Ê¸»ú¤â´Þ¤à¡£ +これはケルト語の文字セットであり、ゲール語(Gaelic)とウェールズ語(Welsh)に +対応する。 +この文字セットは古代アイルランド語で用いられる付点付き文字も含む。 .TP .\"O 8859-15 (Latin-9) .\"O This adds the Euro sign and French and Finnish letters that were missing in .\"O Latin-1. 8859-15 (Latin-9) -¤³¤ì¤Ï¥æ¡¼¥íµ­¹æ¤È Latin-1 ¤ËÆþ¤Ã¤Æ¤¤¤Ê¤¤¥Õ¥é¥ó¥¹¸ì¤È¥Õ¥£¥ó¥é¥ó¥É¸ì¤Îʸ»ú¤¬ -Äɲ䵤ì¤Æ¤¤¤ë¡£ +これはユーロ記号と Latin-1 に入っていないフランス語とフィンランド語の文字が +追加されている。 .TP 8859-16 (Latin-10) .\"O This set covers many of the languages covered by 8859-2, and supports .\"O Romanian more completely then that set does. -¤³¤Îʸ»ú¥»¥Ã¥È¤Ï 8859-2 ¤ÇÂбþ¤¹¤ë¿¤¯¤Î¸À¸ì¤ËÂбþ¤·¡¢ -¤µ¤é¤Ë¥ë¡¼¥Þ¥Ë¥¢¸ì¤Ë¤Ï¤è¤ê´°Á´¤ËÂбþ¤¹¤ë¡£ +この文字セットは 8859-2 で対応する多くの言語に対応し、 +さらにルーマニア語にはより完全に対応する。 .SS KOI8-R .\"O KOI8-R is a non-ISO character set popular in Russia. .\"O The lower half @@ -301,20 +301,20 @@ Linux .\"O KOI8-R, that has better support for Ukrainian. .\"O Neither of these sets .\"O are ISO-2022 compatible, unlike the ISO-8859 series. -KOI8-R ¤Ï¥í¥·¥¢¤Ë¤ª¤¤¤ÆÎɤ¯ÍѤ¤¤é¤ì¤ë¡¢ISO ¤Ç¤Ê¤¤Ê¸»ú½¸¹ç¤Ç¤¢¤ë¡£ -²¼°ÌȾʬ¤Ï US ASCII ¤Ç¤¢¤ë¡£¾å°ÌȾʬ¤Ï ISO 8859-5 ¤è¤ê´öʬÎɤ¯ -¥Ç¥¶¥¤¥ó¤µ¤ì¤¿¥­¥ê¥ëʸ»ú½¸¹ç¤Ç¤¢¤ë¡£ -KOI8-U ¤Ï KOI8-R ¤ò¸µ¤Ë¤·¤¿¶¦ÄÌʸ»ú¥»¥Ã¥È¤Ç¤¢¤ê¡¢ -¥¦¥¯¥é¥¤¥Ê¸ì(Ukrainian) ¤Ë¤è¤ê¤è¤¯Âбþ¤¹¤ë¡£ -¤³¤ì¤é¤Î¤É¤Á¤é¤â ISO-8859 ¥·¥ê¡¼¥º¤Î¤è¤¦¤Ë ISO-2022 ¸ß´¹¤Ç¤Ï¤Ê¤¤¡£ +KOI8-R はロシアにおいて良く用いられる、ISO でない文字集合である。 +下位半分は US ASCII である。上位半分は ISO 8859-5 より幾分良く +デザインされたキリル文字集合である。 +KOI8-U は KOI8-R を元にした共通文字セットであり、 +ウクライナ語(Ukrainian) によりよく対応する。 +これらのどちらも ISO-8859 シリーズのように ISO-2022 互換ではない。 .LP .\"O Console support for KOI8-R is available under Linux through user-mode .\"O utilities that modify keyboard bindings and the EGA graphics table, .\"O and employ the "user mapping" font table in the console driver. -Linux ¤Ç¤Î KOI8-R ¤Î¥³¥ó¥½¡¼¥ë¥µ¥Ý¡¼¥È¤Ï¡¢ -¥æ¡¼¥¶¥â¡¼¥É¤Î¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ç¼Â¸½¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï¥­¡¼¥Ü¡¼¥É¤Î³ä¤êÅö¤Æ¤È EGA ¥°¥é¥Õ¥£¥Ã¥¯¥Æ¡¼¥Ö¥ë¤òÊѹ¹¤·¡¢ -¥³¥ó¥½¡¼¥ë¥É¥é¥¤¥Ð¤Î¥Õ¥©¥ó¥È¥Æ¡¼¥Ö¥ë¤Ë "¥æ¡¼¥¶³ä¤êÅö¤Æ" ¤ò¹Ô¤¦¡£ +Linux での KOI8-R のコンソールサポートは、 +ユーザモードのユーティリティで実現されている。 +これはキーボードの割り当てと EGA グラフィックテーブルを変更し、 +コンソールドライバのフォントテーブルに "ユーザ割り当て" を行う。 .\" Thanks to Tomohiro KUBOTA for the following sections about .\" national standards. .SS JIS X 0208 @@ -334,21 +334,21 @@ Linux .\"O In EUC-JP, JIS X 0208 .\"O characters are expressed in two bytes, each of which is the .\"O JIS X 0208 code plus 0x80. -JIS X 0208 ¤ÏÆüËܸì¤Î¹ñÄêɸ½àʸ»ú¥»¥Ã¥È¤Ç¤¢¤ë¡£ -¾¤Ë¤â¤¤¤¯¤Ä¤«ÆüËܸì¤Î¹ñÄêɸ½àʸ»ú¥»¥Ã¥È¤Ï¤¢¤ë -(JIS X 0201, JIS X 0212, JIS X 0213 ¤Ê¤É)¤¬¡¢¤³¤ì¤¬ºÇ¤â½ÅÍפǤ¢¤ë¡£ -ʸ»ú¤Ï 94x94 ¤Î 2 ¥Ð¥¤¥È¥Þ¥È¥ê¥Ã¥¯¥¹¤ËÇÛÃÖ¤µ¤ì¤ë¡£ -³Æ¥Ð¥¤¥È¤Ï 0x21-0x7e ¤ÎÃͤò»ý¤Ä¡£ -JIS X 0208 ¤Ïʸ»ú¥»¥Ã¥È¤Ç¤¢¤ê¡¢¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Ç¤Ï¤Ê¤¤¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¤³¤ì¤Ï¡¢ -JIS X 0208 ¼«¿È¤Ï¥Æ¥­¥¹¥È¥Ç¡¼¥¿¤Îɽ¸½¤Ë¤Ï»È¤ï¤ì¤Ê¤¤¡¢¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ -JIS X 0208 ¤Ï¡¢ -EUC-JP, Shift_JIS, ISO-2022-JP ¤È¤¤¤Ã¤¿¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ò -¹½À®¤¹¤ëÉôÉʤȤ·¤ÆÍѤ¤¤é¤ì¤ë¡£ -EUC-JP ¤¬ Linux ¤Ë¤ª¤¤¤ÆºÇ¤â½ÅÍפʥ¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Ç¤¢¤ê¡¢ -US ASCII ¤È JIS X 0208 ¤ò´Þ¤ó¤Ç¤¤¤ë¡£ -EUC-JP ¤Ç¤Ï¡¢JIS X 0208 ʸ»ú¤Ï 2 ¥Ð¥¤¥È¤Çɽ¸½¤µ¤ì¡¢ -³Æ¥Ð¥¤¥È¤Ï JIS X 0208 ¥³¡¼¥É¤Ë 0x80 ¤ò²Ã¤¨¤¿¤â¤Î¤Ç¤¢¤ë¡£ +JIS X 0208 は日本語の国定標準文字セットである。 +他にもいくつか日本語の国定標準文字セットはある +(JIS X 0201, JIS X 0212, JIS X 0213 など)が、これが最も重要である。 +文字は 94x94 の 2 バイトマトリックスに配置される。 +各バイトは 0x21-0x7e の値を持つ。 +JIS X 0208 は文字セットであり、エンコーディングではないことに注意すること。 +これは、 +JIS X 0208 自身はテキストデータの表現には使われない、ということである。 +JIS X 0208 は、 +EUC-JP, Shift_JIS, ISO-2022-JP といったエンコーディングを +構成する部品として用いられる。 +EUC-JP が Linux において最も重要なエンコーディングであり、 +US ASCII と JIS X 0208 を含んでいる。 +EUC-JP では、JIS X 0208 文字は 2 バイトで表現され、 +各バイトは JIS X 0208 コードに 0x80 を加えたものである。 .SS KS X 1001 .\"O KS X 1001 is a Korean national standard character set. .\"O Just as @@ -358,13 +358,13 @@ EUC-JP .\"O EUC-KR is the most important encoding for Linux and includes .\"O US ASCII and KS X 1001. .\"O KS C 5601 is an older name for KS X 1001. -KS X 1001 ¤Ï´Ú¹ñ¤Î¹ñÄêɸ½àʸ»ú¥»¥Ã¥È¤Ç¤¢¤ë¡£ -JIS X 0208 ¤ÈƱÍͤˡ¢Ê¸»ú¤Ï 94x94 ¤Î 2 ¥Ð¥¤¥È¥Þ¥È¥ê¥Ã¥¯¥¹¤ËÇÛÃÖ¤µ¤ì¤ë¡£ -KS X 1001 ¤Ï JIS X 0208 ¤ÈƱÍͤˡ¢ -EUC-KR, Johab, ISO-2022-KR ¤È¤¤¤Ã¤¿¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ÎÉôÉʤȤ·¤ÆÍѤ¤¤é¤ì¤ë¡£ -EUC-KR ¤Ï Linux ¤Ë¤ª¤¤¤ÆºÇ¤â½ÅÍפʥ¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Ç¤¢¤ê¡¢ -US ASCII ¤È KS X 1001 ¤ò´Þ¤ó¤Ç¤¤¤ë¡£ -KS C 5601 ¤Ï KS X 1001 ¤Î¸Å¤¤Ì¾Á°¤Ç¤¢¤ë¡£ +KS X 1001 は韓国の国定標準文字セットである。 +JIS X 0208 と同様に、文字は 94x94 の 2 バイトマトリックスに配置される。 +KS X 1001 は JIS X 0208 と同様に、 +EUC-KR, Johab, ISO-2022-KR といったエンコーディングの部品として用いられる。 +EUC-KR は Linux において最も重要なエンコーディングであり、 +US ASCII と KS X 1001 を含んでいる。 +KS C 5601 は KS X 1001 の古い名前である。 .SS GB 2312 .\"O GB 2312 is a mainland Chinese national standard character set used .\"O to express simplified Chinese. @@ -374,12 +374,12 @@ KS C 5601 .\"O is the most important encoding for Linux and includes US ASCII and .\"O GB 2312. .\"O Note that EUC-CN is often called as GB, GB 2312, or CN-GB. -GB 2312 ¤Ï¡¢´ÊÂÎʸ»ú¤òɽ¸½¤¹¤ë¤¿¤á¤ÎÃæ¹ñ¤Î¹ñÄêɸ½àʸ»ú¥»¥Ã¥È¤Ç¤¢¤ë¡£ -JIS X 0208 ¤ÈƱÍͤˡ¢Ê¸»ú¤Ï 94x94 ¤Î 2 ¥Ð¥¤¥È¥Þ¥È¥ê¥Ã¥¯¥¹¤ËÇÛÃÖ¤µ¤ì¡¢ -EUC-CN ¤ËÍѤ¤¤é¤ì¤ë¡£ -EUC-CN ¤Ï Linux ¤Ë¤ª¤¤¤ÆºÇ¤â½ÅÍפʥ¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Ç¤¢¤ê¡¢ -US ASCII ¤È GB 2312 ¤ò´Þ¤ó¤Ç¤¤¤ë¡£ -EUC-CN ¤Ï¤·¤Ð¤·¤Ð GB, GB 2312, CN-GN ¤Ê¤É¤È¸Æ¤Ð¤ì¤ë¡£ +GB 2312 は、簡体文字を表現するための中国の国定標準文字セットである。 +JIS X 0208 と同様に、文字は 94x94 の 2 バイトマトリックスに配置され、 +EUC-CN に用いられる。 +EUC-CN は Linux において最も重要なエンコーディングであり、 +US ASCII と GB 2312 を含んでいる。 +EUC-CN はしばしば GB, GB 2312, CN-GN などと呼ばれる。 .SS Big5 .\"O Big5 is a popular character set in Taiwan to express traditional .\"O Chinese. @@ -389,13 +389,13 @@ EUC-CN .\"O Bytes 0xa1-0xfe are used as leading bytes for two-byte characters. .\"O Big5 and its extension is widely used in Taiwan and Hong Kong. .\"O It is not ISO 2022-compliant. -Big5 ¤ÏÂæÏѤÇÈËÂÎʸ»ú¤òµ­½Ò¤¹¤ë¤Î¤Ë°ìÈÌŪ¤Ë»È¤ï¤ì¤ëʸ»ú¥»¥Ã¥È¤Ç¤¢¤ë¡£ -(Big5 ¤Ïʸ»ú¥»¥Ã¥È¤È¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ÎξÊý¤Ç¤¢¤ë¡£) -¤³¤ì¤Ï US ASCII ¤Î¾å°Ì½¸¹ç¤Ç¤¢¤ë¡£ -Èó ASCII ʸ»ú¤Ï 2 ¥Ð¥¤¥È¤Çɽ¸½¤¹¤ë¡£ -0xa1-0xfe ¤Î¥Ð¥¤¥È¤Ï 2 ¥Ð¥¤¥Èʸ»ú¤Î 1 ʸ»úÌܤȤ·¤ÆÍѤ¤¤ë¡£ -Big5 ¤È¤½¤Î³ÈÄ¥¤ÏÂæÏѤȹá¹Á¤Ç¹­¤¯ÍѤ¤¤é¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï ISO 2022 ½àµò¤Ç¤Ï¤Ê¤¤¡£ +Big5 は台湾で繁体文字を記述するのに一般的に使われる文字セットである。 +(Big5 は文字セットとエンコーディングの両方である。) +これは US ASCII の上位集合である。 +非 ASCII 文字は 2 バイトで表現する。 +0xa1-0xfe のバイトは 2 バイト文字の 1 文字目として用いる。 +Big5 とその拡張は台湾と香港で広く用いられている。 +これは ISO 2022 準拠ではない。 .SS TIS 620 .\"O TIS 620 is a Thai national standard character set and a superset .\"O of US ASCII. @@ -403,10 +403,10 @@ Big5 .\"O 0xa1-0xfe. .\"O TIS 620 is the only commonly used character set under .\"O Linux besides UTF-8 to have combining characters. -TIS 620 ¤Ï¥¿¥¤¤Î¹ñÄêɸ½àʸ»ú¥»¥Ã¥È¤Ç¡¢US ASCII ¤Î¾å°Ì½¸¹ç¤Ç¤¢¤ë¡£ -ISO 8859 ¥·¥ê¡¼¥º¤ÈƱÍͤˡ¢¥¿¥¤Ê¸»ú¤Ï 0xa1-0xfe ¤ËÇÛÃÖ¤µ¤ì¤ë¡£ -TIS 620 ¤Ï Linux ¤Ç¤Î¤ß°ìÈÌŪ¤ËÍѤ¤¤é¤ì¤Æ¤¤¤ëʸ»ú¥»¥Ã¥È¤Ç¤¢¤ê¡¢ -¤Þ¤¿¡¢UTF-8 ¤Ï¹çÀ®Ê¸»ú¤â»ý¤Ã¤Æ¤¤¤ë¡£ +TIS 620 はタイの国定標準文字セットで、US ASCII の上位集合である。 +ISO 8859 シリーズと同様に、タイ文字は 0xa1-0xfe に配置される。 +TIS 620 は Linux でのみ一般的に用いられている文字セットであり、 +また、UTF-8 は合成文字も持っている。 .SS UNICODE .\"O Unicode (ISO 10646) is a standard which aims to unambiguously represent every .\"O character in every human language. @@ -417,15 +417,15 @@ TIS 620 .\"O only when encoding certain rare characters) or a series of 8-bit bytes .\"O (UTF-8). .\"O Information on Unicode is available at . -Unicode (ISO10646) ¤Ï¡¢¿Í´Ö¤¬ÍѤ¤¤ëÁ´¤Æ¤Î¸À¸ì¤ÎÁ´¤Æ¤Îʸ»ú¤ò¡¢ -ÌÀ³Î¤Ë¤¢¤é¤ï¤¹¤³¤È¤òÌÜŪ¤È¤·¤¿µ¬³Ê¤Ç¤¢¤ë¡£ -Unicode ¤Î¹½Â¤¤Ï³Æʸ»ú¤Î¥¨¥ó¥³¡¼¥É¤Ë 20.1 ¥Ó¥Ã¥È¤òÍ¿¤¨¤Æ¤¤¤ë¡£ -¤Û¤È¤ó¤É¤Î¥³¥ó¥Ô¥å¡¼¥¿¡¼¤Ï 20.1 ¥Ó¥Ã¥È¤ÎÀ°¿ô¤ò°·¤¨¤Ê¤¤¤Î¤Ç¡¢ -Unicode ¤ÏÉáÄÌÆâÉô¥Ç¡¼¥¿¤È¤·¤Æ 32 ¥Ó¥Ã¥ÈÀ°¿ô¤Ë¥¨¥ó¥³¡¼¥É¤µ¤ì¡¢ -16 ¥Ó¥Ã¥ÈÀ°¿ô¤ÎÎó (UTF-16)(¤¢¤ë¼ï¤ÎÄÁ¤·¤¤Ê¸»ú¤ò¥¨¥ó¥³¡¼¥É¤¹¤ë¾ì¹ç¤Ë¤À¤± -2 ¤Ä¤Î 16 ¥Ó¥Ã¥ÈÀ°¿ô¤¬É¬ÍפȤʤë)¤«¡¢ -8 ¥Ó¥Ã¥È¥Ð¥¤¥È¤ÎÎó (UTF-8)¤È¤·¤Æ°·¤ï¤ì¤ë¡£ -Unicode ¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï¡¢ ¤«¤éÆÀ¤é¤ì¤ë¡£ +Unicode (ISO10646) は、人間が用いる全ての言語の全ての文字を、 +明確にあらわすことを目的とした規格である。 +Unicode の構造は各文字のエンコードに 20.1 ビットを与えている。 +ほとんどのコンピューターは 20.1 ビットの整数を扱えないので、 +Unicode は普通内部データとして 32 ビット整数にエンコードされ、 +16 ビット整数の列 (UTF-16)(ある種の珍しい文字をエンコードする場合にだけ +2 つの 16 ビット整数が必要となる)か、 +8 ビットバイトの列 (UTF-8)として扱われる。 +Unicode についての情報は、 から得られる。 .LP .\"O Linux represents Unicode using the 8-bit Unicode Transformation Format .\"O (UTF-8). @@ -433,13 +433,13 @@ Unicode .\"O It uses 1 .\"O byte to code 7 bits, 2 bytes for 11 bits, 3 bytes for 16 bits, 4 bytes .\"O for 21 bits, 5 bytes for 26 bits, 6 bytes for 31 bits. -Linux ¤Ï 8-bit Unicode Transformation Form(UTF-8) ¤òÍѤ¤¤Æ Unicode ¤ò -¤¢¤é¤ï¤¹¡£ UTF-8 ¤Ï Unicode ¤Î²ÄÊÑĹɽ¸½¤Ç¤¢¤ë¡£UTF-8 ¤Ï 7 ¥Ó¥Ã¥È¤ò -Éä¹æ²½¤¹¤ë¤Î¤Ë 1 ¥Ð¥¤¥È¤ò¡¢ 11 ¥Ó¥Ã¥È¤Ç¤Ï 2 ¥Ð¥¤¥È¤ò¡¢ -16 ¥Ó¥Ã¥È¤Ç¤Ï 3 ¥Ð¥¤¥È¤ò¡¢ -21 ¥Ó¥Ã¥È¤Ç¤Ï 4 ¥Ð¥¤¥È¤ò¡¢ -26 ¥Ó¥Ã¥È¤Ç¤Ï 5 ¥Ð¥¤¥È¤ò¡¢ -31 ¥Ó¥Ã¥È¤Ç¤Ï 6 ¥Ð¥¤¥È¤òÍѤ¤¤ë¡£ +Linux は 8-bit Unicode Transformation Form(UTF-8) を用いて Unicode を +あらわす。 UTF-8 は Unicode の可変長表現である。UTF-8 は 7 ビットを +符号化するのに 1 バイトを、 11 ビットでは 2 バイトを、 +16 ビットでは 3 バイトを、 +21 ビットでは 4 バイトを、 +26 ビットでは 5 バイトを、 +31 ビットでは 6 バイトを用いる。 .LP .\"O Let 0,1,x stand for a zero, one, or arbitrary bit. .\"O A byte 0xxxxxxx @@ -448,11 +448,11 @@ Linux .\"O Thus, ASCII goes unchanged into UTF-8, and .\"O people using only ASCII do not notice any change: not in code, and not .\"O in file size. -0,1,x ¤ò¥¼¥í¡¢£±¡¢Ç¤°Õ¤Î¥Ó¥Ã¥È¤È¤¹¤ë¤È¡¢¤¢¤ë¥Ð¥¤¥È 0xxxxxxx ¤Ï Unicode ¤Ç¤Ï -00000000 0xxxxxxx ¤È¤¢¤é¤ï¤µ¤ì¤ë¡£¤³¤ì¤Ï¡¢ASCII ¤Î 0xxxxxxx ¤ÈƱ¤¸ -¥·¥ó¥Ü¥ë¤Î¥³¡¼¥É¤Ç¤¢¤ë¡£¤³¤Î¤è¤¦¤Ë¡¢ASCII ¤ÏÊѹ¹¤Ê¤·¤Ë UTF-8 ¤ËÊÑ´¹¤Ç¤­¡¢ -ASCII ¤Î¤ß¤ò»È¤¦¾ì¹ç¤Ï¡¢¥³¡¼¥É¤Ë¤ª¤¤¤Æ¤â¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤Ë¤ª¤¤¤Æ¤â¡¢ -Êѹ¹¤Ë´Ø¤·¤Æ²¿¤âµ¤¤Ë¤·¤Ê¤¯¤Æ¤è¤¤¡£ +0,1,x をゼロ、1、任意のビットとすると、あるバイト 0xxxxxxx は Unicode では +00000000 0xxxxxxx とあらわされる。これは、ASCII の 0xxxxxxx と同じ +シンボルのコードである。このように、ASCII は変更なしに UTF-8 に変換でき、 +ASCII のみを使う場合は、コードにおいてもファイルサイズにおいても、 +変更に関して何も気にしなくてよい。 .LP .\"O A byte 110xxxxx is the start of a 2-byte code, and 110xxxxx 10yyyyyy .\"O is assembled into 00000xxx xxyyyyyy. @@ -461,11 +461,11 @@ ASCII .\"O into xxxxyyyy yyzzzzzz. .\"O (When UTF-8 is used to code the 31-bit ISO 10646 .\"O then this progression continues up to 6-byte codes.) -110xxxxx ¤È¤¤¤¦¥Ð¥¤¥È¤Ï 2 ¥Ð¥¤¥È¥³¡¼¥É¤Î»Ï¤Þ¤ê¤Ç¤¢¤ë¡¢¤½¤·¤Æ¡¢110xxxxx -10yyyyyy ¤Ï 00000xxx xxyyyyyy ¤È¤¤¤¦¤è¤¦¤ËÁȤßΩ¤Æ¤é¤ì¤ë¡£¤Þ¤¿¡¢ -1110xxxx ¤Ï 3 ¥Ð¥¤¥È¥³¡¼¥É¤Î»Ï¤Þ¤ê¤Ç¤¢¤ê¡¢1110xxxx 10yyyyyy 10zzzzzz -¤Ï xxxxyyyy yyzzzzzz ¤È¤¤¤¦¤è¤¦¤ËÁȤßΩ¤Æ¤é¤ì¤ë(UTF-8 ¤¬ 31 ¥Ó¥Ã¥È -ISO 10646 ¥³¡¼¥É¤òÍøÍѤ¹¤ë¤È¤­¤Ï¡¢¤³¤Î¹©Äø¤Ï 6 ¥Ð¥¤¥È¥³¡¼¥É¤Þ¤ÇȯŸ¤µ¤»¤é¤ì¤ë)¡£ +110xxxxx というバイトは 2 バイトコードの始まりである、そして、110xxxxx +10yyyyyy は 00000xxx xxyyyyyy というように組み立てられる。また、 +1110xxxx は 3 バイトコードの始まりであり、1110xxxx 10yyyyyy 10zzzzzz +は xxxxyyyy yyzzzzzz というように組み立てられる(UTF-8 が 31 ビット +ISO 10646 コードを利用するときは、この工程は 6 バイトコードまで発展させられる)。 .LP .\"O For most people who use ISO-8859 character sets, this means that the .\"O characters outside of ASCII are now coded with two bytes. @@ -480,19 +480,19 @@ ISO 10646 .\"O are algorithmic conversions from some character sets (esp. ISO-8859-1) to .\"O Unicode, general conversion requires carrying around conversion tables, .\"O which can be quite large for 16-bit codes. -ISO-8859-1 ʸ»ú¥»¥Ã¥È¤ò»È¤¦¤Û¤È¤ó¤É¤Î¥æ¡¼¥¶¤Ë¤È¤Ã¤Æ¡¢ -¤³¤Î»ö¼Â¤Ï¡¢ASCII ¤ÎÈϰϳ°¤ò»È¤Ã¤¿Ê¸»ú¤Ï -Æó¤Ä¤Î¥Ð¥¤¥È¤ËÉä¹æ²½¤µ¤ì¤ë¤È¤¤¤¦¤³¤È¤ò°ÕÌ£¤¹¤ë¡£¤³¤Î¤³¤È¤«¤é -(UTF-8 ¤ò»È¤¦¤È¡¢ISO-8859-1¤ò»ÈÍѤ·¤Æ¤¤¤ë)¸µ¡¹¤Î¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤«¤é -1 ¡Á 2 ¥Ñ¡¼¥»¥ó¥ÈÂ礭¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤³¤È¤Ë¤Ê¤ë¡£ -¥í¥·¥¢¸ì¤ä¥®¥ê¥·¥ã¸ì¤òÍøÍѤ¹¤ë¥æ¡¼¥¶¡¼¤Ë¤È¤Ã¤Æ¤Ï¡¢ -¤³¤ì¤Ë¤è¤Ã¤Æ¸µ¤Î¥Æ¥­¥¹¥È¤Ï 2 ÇܤÎÂ礭¤µ¤Ë¤Ê¤ë¤³¤È¤Ë¤Ê¤ë¡£ -¤Ê¤¼¤Ê¤é¤³¤ì¤é¤Î¸À¸ì¤Ï¤Û¤È¤ó¤É¤¬ ASCII ¤ÎÈϰϳ°¤À¤«¤é¤Ç¤¢¤ë¡£ -¸½ºß 16-bit ¥³¡¼¥É¤ò¹­¤¯ÍøÍѤ·¤Æ¤¤¤ëÆüËܸì¤òÍøÍѤ¹¤ë¥æ¡¼¥¶¤Ë¤Ï -3 ¥Ð¥¤¥ÈɬÍפȤʤ롣 -Unicode ¤Ø¤ÎÊÑ´¹¤Ë¥¢¥ë¥´¥ê¥º¥àŪÊÑ´¹¤ò¤¹¤ì¤Ð¤è¤¤Ê¸»ú¥»¥Ã¥È¤¬¤¢¤ë -(ÆÃ¤Ë ISO-8859-1)°ìÊý¡¢°ìÈÌŪ¤Ë¤ÏÊÑ´¹¥Æ¡¼¥Ö¥ë¤¬É¬ÍפǤ¢¤ê¡¢ -16 ¥Ó¥Ã¥È¥³¡¼¥É¤Î¾ì¹ç¤Ï¤³¤Î¥Æ¡¼¥Ö¥ë¤Ï¤«¤Ê¤êÂ礭¤Ê¤â¤Î¤È¤Ê¤ë¡£ +ISO-8859-1 文字セットを使うほとんどのユーザにとって、 +この事実は、ASCII の範囲外を使った文字は +二つのバイトに符号化されるということを意味する。このことから +(UTF-8 を使うと、ISO-8859-1を使用している)元々のテキストファイルのサイズから +1 〜 2 パーセント大きくなってしまうことになる。 +ロシア語やギリシャ語を利用するユーザーにとっては、 +これによって元のテキストは 2 倍の大きさになることになる。 +なぜならこれらの言語はほとんどが ASCII の範囲外だからである。 +現在 16-bit コードを広く利用している日本語を利用するユーザには +3 バイト必要となる。 +Unicode への変換にアルゴリズム的変換をすればよい文字セットがある +(特に ISO-8859-1)一方、一般的には変換テーブルが必要であり、 +16 ビットコードの場合はこのテーブルはかなり大きなものとなる。 .LP .\"O Note that UTF-8 is self-synchronizing: 10xxxxxx is a tail, any other .\"O byte is the head of a code. @@ -500,18 +500,18 @@ Unicode .\"O in a UTF-8 stream, is as themselves. .\"O In particular, there are no .\"O embedded NULs (\(aq\\0\(aq) or \(aq/\(aqs that form part of some larger code. -UTF-8 ¤Ï¼«¸ÊƱ´üŪ¤Ç¤¢¤ë¡£10xxxxxx ¤Ï½ªÃ¼¤Ç¤¢¤ê¡¢¤Û¤«¤Î¥Ð¥¤¥È¤Ï¥³¡¼¥É¤Î -ÀèƬ¤Ç¤¢¤ë¡£UTF-8 ¤Îʸ»úÎó¤Ë¤ª¤±¤ë ASCII ¤Î¥Ð¥¤¥È¤Ï¡¢¾ï¤Ë¤½¤Îʸ»ú¼«¿È¤ò -ɽ¸½¤¹¤ë¤³¤È¤ËÃíÌܤ·¤Æ¤Û¤·¤¤¡£Æäˡ¢´ö¤Ä¤«¤ÎÂ礭¤Ê¥³¡¼¥É¤Î¥Ñ¡¼¥È¤ò·ÁÀ® -¤¹¤ë¤¿¤á¤Ë¡¢NUL (\(aq\\0\(aq)) ¤ä \(aq/\(aq ¤òËä¤á¹þ¤àɬÍפϤʤ¤¡£ +UTF-8 は自己同期的である。10xxxxxx は終端であり、ほかのバイトはコードの +先頭である。UTF-8 の文字列における ASCII のバイトは、常にその文字自身を +表現することに注目してほしい。特に、幾つかの大きなコードのパートを形成 +するために、NUL (\(aq\\0\(aq)) や \(aq/\(aq を埋め込む必要はない。 .LP .\"O Since ASCII, and, in particular, NUL and \(aq/\(aq, are unchanged, the .\"O kernel does not notice that UTF-8 is being used. .\"O It does not care at .\"O all what the bytes it is handling stand for. -ASCII ¤È NUL ¤È \(aq/\(aq ¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¤¿¤á¡¢¥«¡¼¥Í¥ë¤Ï UTF-8 ¤ò -»ÈÍѤ·¤Æ¤¤¤ë¤³¤È¤òÆä˰ռ±¤·¤Ê¤¯¤Æ¤âÎɤ¤¡£ -¥«¡¼¥Í¥ë¤Ï¥Ð¥¤¥È¤¬²¿¤ò¤¢¤é¤ï¤·¤Æ¤¤¤ë¤«¤ËÃí°Õ¤¹¤ëɬÍפ¬¤Ê¤¤¡£ +ASCII と NUL と \(aq/\(aq は変更されないため、カーネルは UTF-8 を +使用していることを特に意識しなくても良い。 +カーネルはバイトが何をあらわしているかに注意する必要がない。 .LP .\"O Rendering of Unicode data streams is typically handled through .\"O "subfont" tables which map a subset of Unicode to glyphs. @@ -521,35 +521,35 @@ ASCII .\"O different symbols. .\"O This is not enough for Japanese, Chinese and .\"O Korean, but it is enough for most other purposes. -Unicode ¥Ç¡¼¥¿Îó¤Î¥ì¥ó¥À¥ê¥ó¥°¤Ïŵ·¿Åª¤Ë¤Ï Unicode ¤Î¥µ¥Ö¥»¥Ã¥È¤«¤é -¥°¥ê¥Õ¤Ø¤Î¥Þ¥Ã¥×¤Ç¤¢¤ë"¥µ¥Ö¥Õ¥©¥ó¥È(subfont)"¥Æ¡¼¥Ö¥ë¤òÍøÍѤ·¤Æ -¹Ô¤ï¤ì¤ë¡£¥«¡¼¥Í¥ëÆâÉô¤Ç¤Ï¡¢Unicode ¤ò ¥Ó¥Ç¥ª RAM ÆâÉô¤Ë¥í¡¼¥É¤µ¤ì¤¿ -¥µ¥Ö¥Õ¥©¥ó¥È¤È¤·¤Æµ­½Ò¤¹¤ë¡£¤³¤ì¤Ï¡¢UTF-8 ¥â¡¼¥É¤Ç¤Ï 512 ¤Î°Û¤Ê¤Ã¤¿¥·¥ó¥Ü¥ë¤ò -»ý¤Ã¤¿Ê¸»ú½¸¹ç¤òÍøÍѲÄǽ¤Ç¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -¤³¤ì¤Ï¡¢ÆüËܸ졢Ãæ¹ñ¸ì¡¢´Ú¹ñ¸ì¤Ç¤Ï½½Ê¬¤Ç¤Ï¤Ê¤¤¡¢¤·¤«¤·¡¢¤½¤Î¾¤ÎÍøÍÑ¤Ç¤Ï -½½Ê¬¤Ç¤¢¤ë¡£ +Unicode データ列のレンダリングは典型的には Unicode のサブセットから +グリフへのマップである"サブフォント(subfont)"テーブルを利用して +行われる。カーネル内部では、Unicode を ビデオ RAM 内部にロードされた +サブフォントとして記述する。これは、UTF-8 モードでは 512 の異なったシンボルを +持った文字集合を利用可能であることを意味する。 +これは、日本語、中国語、韓国語では十分ではない、しかし、その他の利用では +十分である。 .LP .\"O At the current time, the console driver does not handle combining .\"O characters. .\"O So Thai, Sioux and any other script needing combining .\"O characters can't be handled on the console. -¸½ºß¤Î¤È¤³¤í¡¢¥³¥ó¥½¡¼¥ë¥É¥é¥¤¥Ð¤Ï¹çÀ®Ê¸»ú¤ò°·¤¨¤Ê¤¤¡£ -½¾¤Ã¤Æ¡¢¥¿¥¤¸ì¡¢¥¹¡¼¸ì¤ä¤½¤Î¾¤Î¹çÀ®Ê¸»ú¤¬É¬ÍפÊʸ¾Ï¤Ï -¥³¥ó¥½¡¼¥ë¤Ç¤Ï°·¤¨¤Ê¤¤¡£ +現在のところ、コンソールドライバは合成文字を扱えない。 +従って、タイ語、スー語やその他の合成文字が必要な文章は +コンソールでは扱えない。 .\"O .SS "ISO 2022 AND ISO 4873" -.SS "ISO 2022 ¤È ISO 4873" +.SS "ISO 2022 と ISO 4873" .\"O The ISO 2022 and 4873 standards describe a font-control model .\"O based on VT100 practice. .\"O This model is (partially) supported .\"O by the Linux kernel and by .\"O .BR xterm (1). .\"O It is popular in Japan and Korea. -ISO 2022 ¤È ISO 4873 ɸ½à¤Ç¤Ï¡¢ -VT100 ¤ÎÆ°ºî¤Ë´ð¤Å¤¤¤¿¥Õ¥©¥ó¥È¥³¥ó¥È¥í¡¼¥ë¥â¥Ç¥ë¤ò½Ò¤Ù¤é¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥â¥Ç¥ë¤Ï Linux ¥«¡¼¥Í¥ë¤ä +ISO 2022 と ISO 4873 標準では、 +VT100 の動作に基づいたフォントコントロールモデルを述べられている。 +このモデルは Linux カーネルや .BR xterm (1) -¤Ë¤ª¤¤¤Æ(ÉôʬŪ¤Ë)¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£¤³¤Îɸ½à¤ÏÆüËܤä´Ú¹ñ¤Ë¤ª¤¤¤Æ¤è¤¯ -ÍѤ¤¤é¤ì¤ë¡£ +において(部分的に)サポートされている。この標準は日本や韓国においてよく +用いられる。 .LP .\"O There are 4 graphic character sets, called G0, G1, G2 and G3, .\"O and one of them is the current character set for codes with @@ -560,13 +560,13 @@ VT100 .\"O It uses codes either .\"O 040-0177 (041-0176) or 0240-0377 (0241-0376). .\"O G0 always has size 94 and uses codes 041-0176. -G0, G1, G2, G3 ¤È¸Æ¤Ð¤ì¤ë 4 ¤Ä¤Î¿Þ·Áʸ»ú½¸¹ç¤¬¤¢¤ë¡£ -¤³¤ì¤é¤Î¤¦¤Á¤Î¤Ò¤È¤Ä¤Ï¡¢ºÇ¾å°Ì¥Ó¥Ã¥È¤¬ 0 ¤Ç¤¢¤ë¥³¡¼¥É¤Î¤¿¤á¤Î¸½ºß¤Îʸ»ú½¸¹ç -(½é´üÃÍ¤Ï G0)¡¢¤Þ¤¿¤Ò¤È¤Ä¤ÏºÇ¾å°Ì¥Ó¥Ã¥È¤¬ 1 ¤Ç¤¢¤ë¥³¡¼¥É¤Î¤¿¤á¤Î¸½ºß¤Î -ʸ»ú½¸¹ç(½é´üÃÍ¤Ï G1)¤Ç¤¢¤ë¡£¤½¤ì¤¾¤ì¤Î¿Þ·Áʸ»ú½¸¹ç¤Ï 94 ¤« 96 ¤Îʸ -»ú¤ò»ý¤Á¡¢´ðËÜŪ¤Ë 7-bit¤Îʸ»ú½¸¹ç¤Ç¤¢¤ê¡¢040-0177 (041-0176) ¤« -0240-0377 (0241-0376)¤Î¥³¡¼¥É¤ò»È¤¦¡£ -G0 ¤Ï¾ï¤Ë 94 ʸ»ú¤Ç 041-0176 ¤Î¥³¡¼¥É¤ò»ÈÍѤ¹¤ë¡£ +G0, G1, G2, G3 と呼ばれる 4 つの図形文字集合がある。 +これらのうちのひとつは、最上位ビットが 0 であるコードのための現在の文字集合 +(初期値は G0)、またひとつは最上位ビットが 1 であるコードのための現在の +文字集合(初期値は G1)である。それぞれの図形文字集合は 94 か 96 の文 +字を持ち、基本的に 7-bitの文字集合であり、040-0177 (041-0176) か +0240-0377 (0241-0376)のコードを使う。 +G0 は常に 94 文字で 041-0176 のコードを使用する。 .LP .\"O Switching between character sets is done using the shift functions .\"O \fB^N\fP (SO or LS1), \fB^O\fP (SI or LS0), ESC n (LS2), ESC o (LS3), @@ -578,15 +578,15 @@ G0 .\"O The function SS\fIn\fP makes character set G\fIn\fP (\fIn\fP=2 or 3) .\"O the current one for the next character only (regardless of the value .\"O of its high order bit). -ʸ»ú½¸¹ç¤ÎÀÚ¤êÂؤ¨¤Ï¥·¥Õ¥È¥Õ¥¡¥ó¥¯¥·¥ç¥ó \fB^N\fP (SO ¤Þ¤¿¤Ï LS1), -\fB^O\fP (SI ¤Þ¤¿¤Ï LS0), ESC n (LS2), ESC o (LS3), ESC N (SS2), ESC O (SS3), -ESC ~ (LS1R), ESC } (LS2R), ESC | (LS3R) ¤ò»È¤Ã¤Æ¹Ô¤ï¤ì¤ë¡£ -¥Õ¥¡¥ó¥¯¥·¥ç¥ó LS\fIn\fP ¤ÏºÇ¾å°Ì¥Ó¥Ã¥È¤¬ 0 ¤Ç¤¢¤ë¥³¡¼¥É¤Î¤¿¤á¤Îʸ»ú½¸¹ç¤ò -G\fIn\fP ¤ËÀßÄꤹ¤ë¡£ -¥Õ¥¡¥ó¥¯¥·¥ç¥ó LS\fIn\fPR ¤ÏºÇ¾å°Ì¥Ó¥Ã¥È¤¬ 1 ¤Ç¤¢¤ë¥³¡¼¥É¤Î¤¿¤á¤Îʸ»ú¥»¥Ã¥È¤ò -G\fIn\fP ¤ËÀßÄꤹ¤ë¡£ -¥Õ¥¡¥ó¥¯¥·¥ç¥ó SS\fIn\fP ¤Ï(ºÇ¾å°Ì¥Ó¥Ã¥È¤ÎÃͤˤ«¤«¤ï¤é¤º)¼¡¤Îʸ»ú¤Î¤ß -ʸ»ú½¸¹ç¤ò G\fIn\fP (\fIn\fP=2 ¤Þ¤¿¤Ï 3)¤ËÀßÄꤹ¤ë¡£ +文字集合の切り替えはシフトファンクション \fB^N\fP (SO または LS1), +\fB^O\fP (SI または LS0), ESC n (LS2), ESC o (LS3), ESC N (SS2), ESC O (SS3), +ESC ~ (LS1R), ESC } (LS2R), ESC | (LS3R) を使って行われる。 +ファンクション LS\fIn\fP は最上位ビットが 0 であるコードのための文字集合を +G\fIn\fP に設定する。 +ファンクション LS\fIn\fPR は最上位ビットが 1 であるコードのための文字セットを +G\fIn\fP に設定する。 +ファンクション SS\fIn\fP は(最上位ビットの値にかかわらず)次の文字のみ +文字集合を G\fIn\fP (\fIn\fP=2 または 3)に設定する。 .LP .\"O A 94-character set is designated as G\fIn\fP character set .\"O by an escape sequence ESC ( xx (for G0), ESC ) xx (for G1), @@ -599,26 +599,26 @@ G\fIn\fP .\"O instead of currency sign), ESC ( M selects a character set .\"O for African languages, ESC ( ! A selects the Cuban character .\"O set, etc. etc. -94 ʸ»ú½¸¹ç¤Ç¤Ï¡¢¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ ESC ( xx (G0 ÍÑ), ESC ) xx (G1 -ÍÑ), ESC * xx (G2 ÍÑ), ESC + xx (G3 ÍÑ) ¤Ë¤è¤Ã¤Æ¡¢G\fIn\fP ʸ»ú½¸¹ç -¤òÍѤ¤¤ë¤è¤¦¤Ë»Ø¼¨¤µ¤ì¤ë¡£ -xx ¤Ï "ISO 2375 International Register of Coded Character Sets" ¤Ç -·è¤á¤é¤ì¤Æ¤¤¤ë°ìʸ»ú¡¢¤Þ¤¿¤ÏÆóʸ»ú¤Ç¤¢¤ë¡£ -¤¿¤È¤¨¤Ð ESC ( @ ¤Ï ISO 646 ʸ»ú½¸¹ç¤ò G0 ¤È¤·¤ÆÁª¤Ó¡¢ESC ( A -¤Ï(¥Ê¥ó¥Ð¡¼¥µ¥¤¥ó(¡ô)¤ÎÂå¤ï¤ê¤Ë¡¢¥Ý¥ó¥É(¡ò)¤ò»ý¤Ä) UK ¥¹¥¿¥ó¥À¡¼¥Éʸ»ú½¸¹ç¤ò -ÁªÂò¤¹¤ë¡£ESC ( B ¤Ï(Ä̲ߵ­¹æ¤Î¤«¤ï¤ê¤Ë¥À¥é¡¼(¡ð)¤ò»ý¤Ä) ASCII¤òÁªÂò¤¹¤ë¡£ -ESC ( M ¤Ï ¥¢¥Õ¥ê¥«¸À¸ì(African languages) ¤òÁªÂò¤·¡¢ESC -( ! A ¤Ï ¥­¥å¡¼¥Ð¸ì(Cuban)ʸ»ú½¸¹ç¤òÁªÂò¤¹¤ë¡£¤Ê¤É¤Ê¤É¡Ä +94 文字集合では、エスケープシーケンス ESC ( xx (G0 用), ESC ) xx (G1 +用), ESC * xx (G2 用), ESC + xx (G3 用) によって、G\fIn\fP 文字集合 +を用いるように指示される。 +xx は "ISO 2375 International Register of Coded Character Sets" で +決められている一文字、または二文字である。 +たとえば ESC ( @ は ISO 646 文字集合を G0 として選び、ESC ( A +は(ナンバーサイン(#)の代わりに、ポンド(£)を持つ) UK スタンダード文字集合を +選択する。ESC ( B は(通貨記号のかわりにダラー($)を持つ) ASCIIを選択する。 +ESC ( M は アフリカ言語(African languages) を選択し、ESC +( ! A は キューバ語(Cuban)文字集合を選択する。などなど… .LP .\"O A 96-character set is designated as G\fIn\fP character set .\"O by an escape sequence ESC \- xx (for G1), ESC . xx (for G2) .\"O or ESC / xx (for G3). .\"O For example, ESC - G selects the Hebrew alphabet as G1. -96-ʸ»ú½¸¹ç¤Ç¤Ï¡¢¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ ESC -\- xx (G1 ÍÑ), ESC . xx (G2 ÍÑ), ECS / xx (G3 ÍÑ)¤òÍѤ¤¤ë¤³¤È¤Ç¡¢ -G\fIn\fP ʸ»ú½¸¹ç¤ò»ÈÍѤ¹¤ë¤è¤¦¤Ë»Ø¼¨¤µ¤ì¤ë¡£ -Î㤨¤Ð¡¢ESC - G ¤Ï¥Ø¥Ö¥é¥¤¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È(Hebrew alphabet) ¤ò -G1 ¤È¤·¤ÆÁªÂò¤¹¤ë¡£ +96-文字集合では、エスケープシーケンス ESC +\- xx (G1 用), ESC . xx (G2 用), ECS / xx (G3 用)を用いることで、 +G\fIn\fP 文字集合を使用するように指示される。 +例えば、ESC - G はヘブライアルファベット(Hebrew alphabet) を +G1 として選択する。 .LP .\"O A multibyte character set is designated as G\fIn\fP character set .\"O by an escape sequence ESC $ xx or ESC $ ( xx (for G0), @@ -626,12 +626,12 @@ G1 .\"O For example, ESC $ ( C selects the Korean character set for G0. .\"O The Japanese character set selected by ESC $ B has a more .\"O recent version selected by ESC & @ ESC $ B. -¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú½¸¹ç¤Ç¤Ï¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ E $ xx ¤Þ¤¿¤Ï ESC $ ( xx -(G0 ÍÑ), ESC $ ) xx (G1 ÍÑ), ESC $ * xx (G2 ÍÑ), ESC$ + xx (G3 ÍÑ) ¤ò -ÍѤ¤¤ë¤³¤È¤Ç¡¢ G\fIn\fP ʸ»ú½¸¹ç¤ò»ÈÍѤ¹¤ë¤è¤¦¤Ë»Ø¼¨¤µ¤ì¤ë¡£ -Î㤨¤Ð¡¢ESC $ ( C ¤Ï ´Ú¹ñ¸ì(Korean)ʸ»ú½¸¹ç¤ò G0 ¤È¤·¤ÆÁªÂò¤¹¤ë¡£ -ESC $ B ¤Ë¤è¤Ã¤ÆÁªÂò¤µ¤ì¤ëÆüËܸìʸ»ú¥»¥Ã¥È¤Ï¡¢¤è¤êºÇ¶á¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï -ESC & @ ESC $ B ¤Ë¤è¤Ã¤ÆÁªÂò¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ +マルチバイト文字集合ではエスケープシーケンス E $ xx または ESC $ ( xx +(G0 用), ESC $ ) xx (G1 用), ESC $ * xx (G2 用), ESC$ + xx (G3 用) を +用いることで、 G\fIn\fP 文字集合を使用するように指示される。 +例えば、ESC $ ( C は 韓国語(Korean)文字集合を G0 として選択する。 +ESC $ B によって選択される日本語文字セットは、より最近のバージョンでは +ESC & @ ESC $ B によって選択されるようになった。 .LP .\"O ISO 4873 stipulates a narrower use of character sets, where G0 .\"O is fixed (always ASCII), so that G1, G2 and G3 @@ -639,15 +639,15 @@ ESC & @ ESC $ B .\"O In particular, \fB^N\fP and \fB^O\fP are not used anymore, ESC ( xx .\"O can be used only with xx=B, and ESC ) xx, ESC * xx, ESC + xx .\"O are equivalent to ESC \- xx, ESC . xx, ESC / xx, respectively. -ISO 4873 ¤Ï¤è¤êÀ©¸Â¤µ¤ì¤¿Ê¸»ú½¸¹ç¤ÎÍøÍѤòµ¬Äꤹ¤ë¡¢¤½¤Îµ¬Äê¤Ç -¤Ï¡¢G0 ¤Ï(¾ï¤Ë ASCII¤Ë)¸ÇÄꤵ¤ì¤ë¡£½¾¤Ã¤Æ¡¢G1, G2, G3 ¤ÏºÇ¾å°Ì¥Ó¥Ã¥È¤¬ -¥»¥Ã¥È¤µ¤ì¤¿¥³¡¼¥É¤È¤·¤Æ¤Î¤ß¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ -Æäˡ¢\fB^N\fP ¤È \fB^O\fP ¤ÏÍѤ¤¤é¤ì¤º¡¢ESC ( xx ¤Ï xx=B ¤È¤·¤Æ¤Î¤ß -ÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¡¢ -ESC ) xx, ESC * xx, ESC + xx ¤Ï¤½¤ì¤¾¤ì ESC \- xx, ESC . xx, ESC / xx ¤È -Åù²Á¤Ë¤Ê¤ë¡£ +ISO 4873 はより制限された文字集合の利用を規定する、その規定で +は、G0 は(常に ASCIIに)固定される。従って、G1, G2, G3 は最上位ビットが +セットされたコードとしてのみ呼び出すことができる。 +特に、\fB^N\fP と \fB^O\fP は用いられず、ESC ( xx は xx=B としてのみ +用いることができ、 +ESC ) xx, ESC * xx, ESC + xx はそれぞれ ESC \- xx, ESC . xx, ESC / xx と +等価になる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR console (4), .BR console_codes (4), .BR console_ioctl (4), diff --git a/draft/man7/complex.7 b/draft/man7/complex.7 index 092c4d58..495adc2d 100644 --- a/draft/man7/complex.7 +++ b/draft/man7/complex.7 @@ -6,23 +6,23 @@ .\" Translated 2003-08-02, Akihiro MOTOKI .\" Updated 2005-02-20, Akihiro MOTOKI .\" -.\"WORD: operations ±é»» -.\"WORD: imaginary unit µõ¿ôñ°Ì +.\"WORD: operations 演算 +.\"WORD: imaginary unit 虚数単位 .\" .TH COMPLEX 7 2011-09-16 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O complex \- basics of complex mathematics -complex \- Ê£ÁÇ¿ô¤Î¿ô³Ø¤Î´ðÁà +complex \- 複素数の数学の基礎 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Complex numbers are numbers of the form z = a+b*i, where a and b are .\"O real numbers and i = sqrt(\-1), so that i*i = \-1. -Ê£ÁÇ¿ô¤Ï z = a+b*i ¤Î·Á¼°¤Î¿ô¤Ç¤¢¤ë¡£ a ¤È b ¤Ï¼Â¿ô¤Ç¤¢¤ê¡¢ -i ¤Ï i = sqrt(\-1) ¤Ä¤Þ¤ê i*i = \-1 ¤Î´Ø·¸¤òËþ¤¿¤¹¡£ +複素数は z = a+b*i の形式の数である。 a と b は実数であり、 +i は i = sqrt(\-1) つまり i*i = \-1 の関係を満たす。 .br .\"O There are other ways to represent that number. .\"O The pair (a,b) of real @@ -33,40 +33,40 @@ i .\"O and phi the angle between the X-axis and the line Oz. .\"O Now .\"O z = r*exp(i*phi) = r*(cos(phi)+i*sin(phi)). -Ê£ÁÇ¿ô¤òɽ¸½¤¹¤ëÊ̤ÎÊýË¡¤â¤¢¤ë¡£¼Â¿ô¤ÎÁÈ (a,b) ¤Ï XºÂɸ¡¢YºÂɸ¤Ç -»ØÄꤵ¤ì¤¿Ê¿Ì̾å¤ÎÅÀ¤È¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤ÎƱ¤¸ÅÀ¤Ï¡¢¼Â¿ô¤ÎÁÈ -(r,phi) ¤Çɽ¤¹¤³¤È¤â¤Ç¤­¤ë¡£r ¤Ï¸¶ÅÀ 0 ¤«¤é¤Îµ÷Î¥¤Ç¤¢¤ê¡¢phi ¤Ï -X¼´¤È 0 ¤È z ¤ò·ë¤ÖÀþʬ¤¬¤Ê¤¹³Ñ¤Ç¤¢¤ë¡£¤³¤Î¤È¤­¡¢ +複素数を表現する別の方法もある。実数の組 (a,b) は X座標、Y座標で +指定された平面上の点と見ることができる。この同じ点は、実数の組 +(r,phi) で表すこともできる。r は原点 0 からの距離であり、phi は +X軸と 0 と z を結ぶ線分がなす角である。このとき、 z = r*exp(i*phi) = r*(cos(phi)+i*sin(phi)) -¤Î´Ø·¸¤¬À®¤êΩ¤Ä¡£ +の関係が成り立つ。 .PP .\"O The basic operations are defined on z = a+b*i and w = c+d*i as: -2¤Ä¤ÎÊ£ÁÇ¿ô z = a+b*i, w = c+d*i ¤Ë´Ø¤¹¤ë´ðËܱ黻¤Ï¼¡¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë: +2つの複素数 z = a+b*i, w = c+d*i に関する基本演算は次のように定義される: .TP .\"O .B addition: z+w = (a+c) + (b+d)*i -.B ²ÃË¡: z+w = (a+c) + (b+d)*i +.B 加法: z+w = (a+c) + (b+d)*i .TP .\"O .B multiplication: z*w = (a*c \- b*d) + (a*d + b*c)*i -.B ¾èË¡: z*w = (a*c \- b*d) + (a*d + b*c)*i +.B 乗法: z*w = (a*c \- b*d) + (a*d + b*c)*i .TP .\"O .B division: z/w = ((a*c + b*d)/(c*c + d*d)) + ((b*c \- a*d)/(c*c + d*d))*i -.B ½üË¡: z/w = ((a*c + b*d)/(c*c + d*d)) + ((b*c \- a*d)/(c*c + d*d))*i +.B 除法: z/w = ((a*c + b*d)/(c*c + d*d)) + ((b*c \- a*d)/(c*c + d*d))*i .PP .\"O Nearly all math function have a complex counterpart but there are .\"O some complex-only functions. -¤Û¤È¤ó¤ÉÁ´¤Æ¤Î¿ô³Ø´Ø¿ô¤Ë´Ø¤·¤ÆÊ£ÁÇ¿ôÈǤ¬¤¢¤ë¤¬¡¢ -Ê£ÁÇ¿ôÀìÍѤδؿô¤â´ö¤Ä¤«¤¢¤ë¡£ +ほとんど全ての数学関数に関して複素数版があるが、 +複素数専用の関数も幾つかある。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O Your C-compiler can work with complex numbers if it supports the C99 standard. .\"O Link with \fI\-lm\fP. .\"O The imaginary unit is represented by I. -»ÈÍѤ¹¤ë C ¥³¥ó¥Ñ¥¤¥é¤¬ C99 ɸ½à¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ì¤ÐÊ£ÁÇ¿ô¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -\fI\-lm\fP ¤ò¤Ä¤±¤Æ¥ê¥ó¥¯¤¹¤ë¤³¤È¡£µõ¿ôñ°Ì¤Ï I ¤Çɽ¸½¤µ¤ì¤ë¡£ +使用する C コンパイラが C99 標準をサポートしていれば複素数を使うことができる。 +\fI\-lm\fP をつけてリンクすること。虚数単位は I で表現される。 .sp .nf .\"O /* check that exp(i * pi) == \-1 */ -/* exp(i * pi) == \-1 ¤È¤Ê¤ë¤³¤È¤ò³Îǧ¤¹¤ë */ +/* exp(i * pi) == \-1 となることを確認する */ #include /* for atan */ #include #include @@ -80,7 +80,7 @@ main(void) } .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR cacos (3), .BR cacosh (3), diff --git a/draft/man7/credentials.7 b/draft/man7/credentials.7 index 8d608722..78775b7a 100644 --- a/draft/man7/credentials.7 +++ b/draft/man7/credentials.7 @@ -28,13 +28,13 @@ .\" .TH CREDENTIALS 7 2008-06-03 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O credentials \- process identifiers -credentials \- ǧ¾Ú¤ËÍѤ¤¤é¤ì¤ë¥×¥í¥»¥¹¤Î¼±ÊÌ»Ò +credentials \- 認証に用いられるプロセスの識別子 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .SS Process ID (PID) -.SS ¥×¥í¥»¥¹ID (PID) +.SS プロセスID (PID) .\"O Each process has a unique nonnegative integer identifier .\"O that is assigned when the process is created using .\"O .BR fork (2). @@ -44,25 +44,25 @@ credentials \- ǧ .\"O .I pid_t .\"O (defined in .\"O .IR ). -³Æ¥×¥í¥»¥¹¤Ï¡¢Éé¤Ç¤Ê¤¤À°¿ô¤Î°ì°Õ¤Ê¼±Ê̻Ҥò»ý¤Ä¡£ -¤³¤Î¼±ÊÌ»Ò¤Ï +各プロセスは、負でない整数の一意な識別子を持つ。 +この識別子は .BR fork (2) -¤ò»È¤Ã¤Æ¥×¥í¥»¥¹¤¬À¸À®¤µ¤ì¤ëºÝ¤Ë³ä¤êÅö¤Æ¤é¤ì¤ë¡£ -¥×¥í¥»¥¹¤Ï +を使ってプロセスが生成される際に割り当てられる。 +プロセスは .BR getpid (2) -¤ò»È¤Ã¤Æ¼«Ê¬¤Î PID ¤ò¼èÆÀ¤Ç¤­¤ë¡£ -PID ¤Ï +を使って自分の PID を取得できる。 +PID は .I pid_t -·¿¤Çɽ¸½¤µ¤ì¤ë +型で表現される .RI ( pid_t -¤Ï +は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ +で定義されている)。 .\"O PIDs are used in a range of system calls to identify the process .\"O affected by the call, for example: -PID ¤Ï³Æ¼ï¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ºîÍѤ¹¤ë¥×¥í¥»¥¹¤ò -ÆÃÄꤹ¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£°Ê²¼¤ËÎã¤òµó¤²¤ë: +PID は各種のシステムコールでそのシステムコールが作用するプロセスを +特定するために使用される。以下に例を挙げる: .BR kill (2), .BR ptrace (2), .BR setpriority (2), @@ -84,11 +84,11 @@ PID .\"O A process's PID is preserved across an .\"O .BR execve (2). -¥×¥í¥»¥¹¤Î PID ¤Ï +プロセスの PID は .BR execve (2) -¤ÎÁ°¸å¤ÇÉÔÊѤǤ¢¤ë¡£ +の前後で不変である。 .\"O .SS Parent Process ID (PPID) -.SS ¿Æ¥×¥í¥»¥¹ ID (PPID) +.SS 親プロセス ID (PPID) .\"O A process's parent process ID identifies the process that created .\"O this process using .\"O .BR fork (2). @@ -96,23 +96,23 @@ PID .\"O .BR getppid (2). .\"O A PPID is represented using the type .\"O .IR pid_t . -¥×¥í¥»¥¹¤Î¿Æ¥×¥í¥»¥¹¤Î ID ¤Ï¡¢ +プロセスの親プロセスの ID は、 .BR fork (2) -¤ò»È¤Ã¤Æ¤½¤Î¥×¥í¥»¥¹¤òÀ¸À®¤·¤¿¥×¥í¥»¥¹¤ò¼¨¤¹¡£ -¥×¥í¥»¥¹¤Ï +を使ってそのプロセスを生成したプロセスを示す。 +プロセスは .BR getppid (2) -¤ò»È¤Ã¤Æ¼«Ê¬¤Î PPID ¤ò¼èÆÀ¤Ç¤­¤ë¡£ -PPID ¤Ï +を使って自分の PPID を取得できる。 +PPID は .I pid_t -·¿¤Çɽ¸½¤µ¤ì¤ë¡£ +型で表現される。 .\"O A process's PPID is preserved across an .\"O .BR execve (2). -¥×¥í¥»¥¹¤Î PPID ¤Ï +プロセスの PPID は .BR execve (2) -¤ÎÁ°¸å¤ÇÉÔÊѤǤ¢¤ë¡£ +の前後で不変である。 .\"O .SS Process Group ID and Session ID -.SS ¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤È¥»¥Ã¥·¥ç¥ó ID +.SS プロセスグループ ID とセッション ID .\"O Each process has a session ID and a process group ID, .\"O both represented using the type .\"O .IR pid_t . @@ -120,14 +120,14 @@ PPID .\"O .BR getsid (2), .\"O and its process group ID using .\"O .BR getpgrp (2). -³Æ¥×¥í¥»¥¹¤Ï¥»¥Ã¥·¥ç¥ó ID ¤È¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤ò»ý¤Ä¡£ -¤³¤ì¤é¤Î ID ¤Ï¤É¤Á¤é¤â +各プロセスはセッション ID とプロセスグループ ID を持つ。 +これらの ID はどちらも .I pid_t -·¿¤Çɽ¸½¤µ¤ì¤ë¡£ -¥×¥í¥»¥¹¤Ï¡¢¤½¤ì¤¾¤ì +型で表現される。 +プロセスは、それぞれ .BR getsid (2), .BR getpgrp (2) -¤ò»È¤Ã¤Æ¼«Ê¬¤Î¥»¥Ã¥·¥ç¥ó ID¡¢¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤ò¼èÆÀ¤Ç¤­¤ë¡£ +を使って自分のセッション ID、プロセスグループ ID を取得できる。 .\"O A child created by .\"O .BR fork (2) @@ -135,10 +135,10 @@ PPID .\"O A process's session ID and process group ID are preserved across an .\"O .BR execve (2). .BR fork (2) -¤ÇÀ¸À®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤Î¥»¥Ã¥·¥ç¥ó ID ¤È¥×¥í¥»¥¹¥°¥ë¡¼¥× ID -¤ò·Ñ¾µ¤¹¤ë¡£¥×¥í¥»¥¹¤Î¥»¥Ã¥·¥ç¥ó ID ¤È¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤Ï +で生成された子プロセスは親プロセスのセッション ID とプロセスグループ ID +を継承する。プロセスのセッション ID とプロセスグループ ID は .BR execve (2) -¤ÎÁ°¸å¤ÇÉÔÊѤǤ¢¤ë¡£ +の前後で不変である。 .\"O Sessions and process groups are abstractions devised to support shell .\"O job control. @@ -152,19 +152,19 @@ PPID .\"O .BR setpgid (2). .\"O The process whose process ID is the same as its process group ID is the .\"O \fIprocess group leader\fP for that group. -¥»¥Ã¥·¥ç¥ó¤È¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Î³µÇ°¤Ï¡¢¥·¥§¥ë¤Î¥¸¥ç¥ÖÀ©¸æ¤ò¹Ô¤¦¤¿¤á¤Ë -¹Í°Æ¤µ¤ì¤¿¤â¤Î¤Ç¤¢¤ë¡£ -¥×¥í¥»¥¹¥°¥ë¡¼¥× (»þ¤Ë¤Ï¡Ö¥¸¥ç¥Ö¡×¤È¸Æ¤Ð¤ì¤ë¤³¤È¤â¤¢¤ë) ¤Ï¡¢ -Ʊ¤¸¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤ò¶¦Í­¤¹¤ë¥×¥í¥»¥¹¤Î½¸¤Þ¤ê¤Ç¤¢¤ë¡£ -¥·¥§¥ë¤Ï¡¢°ì¤Ä¤Î¥³¥Þ¥ó¥É¤â¤·¤¯¤Ï¥Ñ¥¤¥×¥é¥¤¥ó¤Î¼Â¹Ô¤Ë»È¤ï¤ì¤ë¥×¥í¥»¥¹·²¤Ë -ÂФ·¤Æ°ì¤Ä¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤òÀ¸À®¤¹¤ë -(Î㤨¤Ð¡¢¥³¥Þ¥ó¥É "ls\ |\ wc" ¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤ËÀ¸À®¤µ¤ì¤ëÆó¤Ä¤Î¥×¥í¥»¥¹¤Ï -Ʊ¤¸¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ËÃÖ¤«¤ì¤ë)¡£ -½ê°¤¹¤ë¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ï +セッションとプロセスグループの概念は、シェルのジョブ制御を行うために +考案されたものである。 +プロセスグループ (時には「ジョブ」と呼ばれることもある) は、 +同じプロセスグループ ID を共有するプロセスの集まりである。 +シェルは、一つのコマンドもしくはパイプラインの実行に使われるプロセス群に +対して一つのプロセスグループを生成する +(例えば、コマンド "ls\ |\ wc" を実行するために生成される二つのプロセスは +同じプロセスグループに置かれる)。 +所属するプロセスグループは .BR setpgid (2) -¤ò»È¤Ã¤ÆÀßÄê¤Ç¤­¤ë¡£ -¼«¿È¤Î¥×¥í¥»¥¹ ID ¤¬¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤ÈƱ¤¸¥×¥í¥»¥¹¤Ï¡¢ -¤½¤Î¥°¥ë¡¼¥×¤Î¡Ö¥×¥í¥»¥¹¥°¥ë¡¼¥×¡¦¥ê¡¼¥À¡¼¡×¤Ç¤¢¤ë¡£ +を使って設定できる。 +自身のプロセス ID がプロセスグループ ID と同じプロセスは、 +そのグループの「プロセスグループ・リーダー」である。 .\"O A session is a collection of processes that share the same session ID. .\"O All of the members of a process group also have the same session ID @@ -177,21 +177,21 @@ PPID .\"O as the PID of the process that called .\"O .BR setsid (2). .\"O The creator of the session is called the \fIsession leader\fP. -¥»¥Ã¥·¥ç¥ó¤Ï¡¢Æ±¤¸¥»¥Ã¥·¥ç¥ó ID ¤ò¶¦Í­¤¹¤ë¥×¥í¥»¥¹¤Î½¸¤Þ¤ê¤Ç¤¢¤ë¡£ -¤¢¤ë°ì¤Ä¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÎÁ´¥á¥ó¥Ð¡¼¤ÏƱ¤¸¥»¥Ã¥·¥ç¥ó ID ¤ò»ý¤Ä -(¤Ä¤Þ¤ê¡¢°ì¤Ä¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð¡¼¤ÏÁ´¤ÆƱ¤¸¥»¥Ã¥·¥ç¥ó¤Ë½ê°¤·¡¢ -¤³¤ì¤Ë¤è¤ê¡¢¥»¥Ã¥·¥ç¥ó¤È¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÇÆó³¬ÁØ¤Î¥×¥í¥»¥¹³¬Áؤ¬·ÁÀ®¤Ç¤­¤ë)¡£ -¿·¤¿¤Ê¥»¥Ã¥·¥ç¥ó¤ÎÀ¸À®¤Ï¥×¥í¥»¥¹¤¬ +セッションは、同じセッション ID を共有するプロセスの集まりである。 +ある一つのプロセスグループの全メンバーは同じセッション ID を持つ +(つまり、一つのプロセスグループのメンバーは全て同じセッションに所属し、 +これにより、セッションとプロセスグループで二階層のプロセス階層が形成できる)。 +新たなセッションの生成はプロセスが .BR setsid (2) -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¹Ô¤¦¡£ +を呼び出すことで行う。 .BR setsid (2) -¤Ï¡¢ +は、 .BR setsid (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î PID ¤ÈƱ¤¸ÃͤΥ»¥Ã¥·¥ç¥ó ID ¤ò»ý¤Ä -¿·¤¿¤Ê¥»¥Ã¥·¥ç¥ó¤òÀ¸À®¤¹¤ë¡£ -¥»¥Ã¥·¥ç¥ó¤ÎÀ¸À®¼Ô¤Ï¡Ö¥»¥Ã¥·¥ç¥ó¡¦¥ê¡¼¥À¡¼¡×¤È¸Æ¤Ð¤ì¤ë¡£ +を呼び出したプロセスの PID と同じ値のセッション ID を持つ +新たなセッションを生成する。 +セッションの生成者は「セッション・リーダー」と呼ばれる。 .\"O .SS User and Group Identifiers -.SS ¥æ¡¼¥¶ ID ¤È¥°¥ë¡¼¥× ID +.SS ユーザ ID とグループ ID .\"O Each process has various associated user and groups IDs. .\"O These IDs are integers, respectively represented using the types .\"O .I uid_t @@ -199,31 +199,31 @@ PPID .\"O .I gid_t .\"O (defined in .\"O .IR ). -³Æ¥×¥í¥»¥¹¤Ï¡¢¿ô¼ïÎà¤Î¥æ¡¼¥¶ ID ¤È¥°¥ë¡¼¥× ID ¤ò»ý¤Ä¡£ -¥æ¡¼¥¶ ID¡¢¥°¥ë¡¼¥× ID ¤ÏÀ°¿ô¤Ç¡¢¤½¤ì¤¾¤ì +各プロセスは、数種類のユーザ ID とグループ ID を持つ。 +ユーザ ID、グループ ID は整数で、それぞれ .IR uid_t , .I gid_t -·¿¤Çɽ¸½¤µ¤ì¤ë (¤³¤ì¤é¤Ï +型で表現される (これらは .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ +で定義されている)。 .\"O On Linux, each process has the following user and group identifiers: -Linux ¤Ç¤Ï¡¢³Æ¥×¥í¥»¥¹¤Ï°Ê²¼¤Î¤è¤¦¤Ê¼ïÎà¤Î¥æ¡¼¥¶ ID ¤È¥°¥ë¡¼¥× ID ¤ò»ý¤Ä¡£ +Linux では、各プロセスは以下のような種類のユーザ ID とグループ ID を持つ。 .IP * 3 .\"O Real user ID and real group ID. -¼Â¥æ¡¼¥¶ ID ¤È¼Â¥°¥ë¡¼¥× ID¡£ +実ユーザ ID と実グループ ID。 .\"O These IDs determine who owns the process. .\"O A process can obtain its real user (group) ID using .\"O .BR getuid (2) .\"O .RB ( getgid (2)). -¤³¤ì¤é¤Î ID ¤Ë¤è¤ê¥×¥í¥»¥¹¤Î½êÍ­¼Ô¤¬·èÄꤵ¤ì¤ë¡£ -¥×¥í¥»¥¹¤¬¼«Ê¬¤Î¼Â¥æ¡¼¥¶ ID¡¢¼Â¥°¥ë¡¼¥× ID ¤ò¼èÆÀ¤¹¤ë¤Ë¤Ï¡¢¤½¤ì¤¾¤ì +これらの ID によりプロセスの所有者が決定される。 +プロセスが自分の実ユーザ ID、実グループ ID を取得するには、それぞれ .BR getuid (2), .BR getgid (2) -¤ò»ÈÍѤ¹¤ë¡£ +を使用する。 .IP * .\"O Effective user ID and effective group ID. -¼Â¸ú¥æ¡¼¥¶ ID ¤È¼Â¸ú¥°¥ë¡¼¥× ID¡£ +実効ユーザ ID と実効グループ ID。 .\"O These IDs are used by the kernel to determine the permissions .\"O that the process will have when accessing shared resources such .\"O as message queues, shared memory, and semaphores. @@ -234,29 +234,29 @@ Linux .\"O A process can obtain its effective user (group) ID using .\"O .BR geteuid (2) .\"O .RB ( getegid (2)). -¤³¤ì¤é¤Î ID ¤Ï¡¢¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¡¢¶¦Í­¥á¥â¥ê¡¢¥»¥Þ¥Õ¥©¤Ê¤É¤Î -¶¦Í­¥ê¥½¡¼¥¹¤Ë¥¢¥¯¥»¥¹¤·¤è¤¦¤È¤·¤¿ºÝ¤Ë¤½¤Î¥×¥í¥»¥¹¤¬¥¢¥¯¥»¥¹µö²Ä¤ò -»ý¤Ã¤Æ¤¤¤ë¤«¤ò¥«¡¼¥Í¥ë¤¬È½Äꤹ¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ -¤Û¤È¤ó¤É¤Î UNIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤ì¤é¤Î ID ¤Ï¥Õ¥¡¥¤¥ë¤Ø¤Î¥¢¥¯¥»¥¹»þ¤Î -¥¢¥¯¥»¥¹µö²Ä¤ÎȽÄê¤Ë¤â»ÈÍѤµ¤ì¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢Linux ¤Ç¤Ï¥Õ¥¡¥¤¥ë¤Ø¤Î¥¢¥¯¥»¥¹µö²Ä¤ÎȽÄê¤Ë¤Ï -¸å½Ò¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à ID ¤¬»ÈÍѤµ¤ì¤ë¡£ -¥×¥í¥»¥¹¤¬¼«Ê¬¤Î¼Â¸ú¥æ¡¼¥¶ ID¡¢¼Â¸ú¥°¥ë¡¼¥× ID ¤ò¼èÆÀ¤¹¤ë¤Ë¤Ï¡¢¤½¤ì¤¾¤ì +これらの ID は、メッセージキュー、共有メモリ、セマフォなどの +共有リソースにアクセスしようとした際にそのプロセスがアクセス許可を +持っているかをカーネルが判定するのに使用される。 +ほとんどの UNIX システムでは、これらの ID はファイルへのアクセス時の +アクセス許可の判定にも使用される。 +しかしながら、Linux ではファイルへのアクセス許可の判定には +後述のファイルシステム ID が使用される。 +プロセスが自分の実効ユーザ ID、実効グループ ID を取得するには、それぞれ .BR geteuid (2), .BR getegid (2) -¤ò»ÈÍѤ¹¤ë¡£ +を使用する。 .IP * .\"O Saved set-user-ID and saved set-group-ID. -Êݸ (saved) set-user-ID ¤ÈÊݸ set-group-ID¡£ +保存 (saved) set-user-ID と保存 set-group-ID。 .\"O These IDs are used in set-user-ID and set-group-ID programs to save .\"O a copy of the corresponding effective IDs that were set when .\"O the program was executed (see .\"O .BR execve (2)). -¤³¤ì¤é¤Î ID ¤Ï¡¢set-user-ID ¤ä set-group-ID ¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Ë¤ª¤¤¤Æ¡¢ -¥×¥í¥°¥é¥à¤Î¼Â¹Ô»þ¤ËÀßÄꤵ¤ì¤¿¼Â¸ú ID ¤Î¥³¥Ô¡¼¤òÊݸ¤¹¤ë¤¿¤á¤Ë -»ÈÍѤµ¤ì¤ë +これらの ID は、set-user-ID や set-group-ID されたプログラムにおいて、 +プログラムの実行時に設定された実効 ID のコピーを保存するために +使用される .RB ( execve (2) -»²¾È)¡£ +参照)。 .\"O A set-user-ID program can assume and drop privileges by .\"O switching its effective user ID back and forth between the values .\"O in its real user ID and saved set-user-ID. @@ -270,28 +270,28 @@ Linux .\"O .BR setregid (2), .\"O or .\"O .BR setresgid (2). -set-user-ID ¥×¥í¥°¥é¥à¤Ï¡¢¼Â¸ú¥æ¡¼¥¶ ID ¤ò¼Â¥æ¡¼¥¶ID ¤ÈÊݸ set-user-ID -¤Î´Ö¤Ç¹Ô¤Ã¤¿¤êÍ褿¤êÀÚ¤êÂؤ¨¤ë¤³¤È¤Ç¡¢Æø¢¤òÆÀ¤¿¤êÍî¤È¤·¤¿¤ê¤Ç¤­¤ë¡£ -¤³¤ÎÀÚ¤êÂؤ¨¤Ï +set-user-ID プログラムは、実効ユーザ ID を実ユーザID と保存 set-user-ID +の間で行ったり来たり切り替えることで、特権を得たり落としたりできる。 +この切り替えは .BR seteuid (2), .BR setreuid (2), .BR setresuid (2) -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¼Â¹Ô¤Ç¤­¤ë¡£ -set-group-ID ¥×¥í¥°¥é¥à¤Ï¡¢ +を呼び出すことで実行できる。 +set-group-ID プログラムは、 .BR setegid (2), .BR setregid (2), .BR setresgid (2) -¤ò»È¤Ã¤ÆƱÍͤΤ³¤È¤¬¤Ç¤­¤ë¡£ +を使って同様のことができる。 .\"O A process can obtain its saved set-user-ID (set-group-ID) using .\"O .BR getresuid (2) .\"O .RB ( getresgid (2)). -¥×¥í¥»¥¹¤¬¼«Ê¬¤ÎÊݸ set-user-ID¡¢Êݸ set-group-ID ¤ò¼èÆÀ¤¹¤ë¤Ë¤Ï¡¢ +プロセスが自分の保存 set-user-ID、保存 set-group-ID を取得するには、 .BR getresuid(2), .BR getresgids (2) -¤ò¤½¤ì¤¾¤ì»ÈÍѤ¹¤ë¡£ +をそれぞれ使用する。 .IP * .\"O File system user ID and file system group ID (Linux-specific). -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¡¦¥æ¡¼¥¶ ID ¤È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¡¦¥°¥ë¡¼¥× ID (Linux ¸ÇÍ­)¡£ +ファイルシステム・ユーザ ID とファイルシステム・グループ ID (Linux 固有)。 .\"O These IDs, in conjunction with the supplementary group IDs described .\"O below, are used to determine permissions for accessing files; see .\"O .BR path_resolution (7) @@ -307,42 +307,42 @@ set-group-ID .\"O .BR setfsuid (2) .\"O and .\"O .BR setfsgid (2). -¤³¤ì¤é¤Î ID ¤Ï¡¢¸å½Ò¤ÎÊä½õ¥°¥ë¡¼¥× ID ¤ÈÁȤ߹ç¤ï¤»¤Æ»ÈÍѤµ¤ì¡¢ -¥Õ¥¡¥¤¥ë¤Ø¤Î¥¢¥¯¥»¥¹¸¢¤Î·èÄê¤ËÍøÍѤµ¤ì¤ë¡£¾ÜºÙ¤Ï +これらの ID は、後述の補助グループ ID と組み合わせて使用され、 +ファイルへのアクセス権の決定に利用される。詳細は .BR path_resolution (7) -¤ò»²¾È¡£ -¥×¥í¥»¥¹¤Î¼Â¸ú ID (¥æ¡¼¥¶ ID ¤ä ¥°¥ë¡¼¥× ID) ¤¬Êѹ¹¤µ¤ì¤ë¤¿¤Ó¤Ë¡¢ -¥«¡¼¥Í¥ë¤Ï¼«Æ°Åª¤ËÂбþ¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à ID ¤òƱ¤¸ÃͤËÊѹ¹¤¹¤ë¡£ -¤½¤Î·ë²Ì¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à ID ¤ÏÄ̾ï¤ÏÂбþ¤¹¤ë¼Â¸ú ID ¤ÈƱ¤¸ÃͤȤʤꡢ -¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹¸¢¤Î¥Á¥§¥Ã¥¯ÊýË¡¤Ï Linux ¤È¾¤Î UNIX ¥·¥¹¥Æ¥à¤ÇƱ¤¸¤Ç¤¢¤ë¡£ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à ID ¤Ï¼Â¸ú ID ¤È¤Ï°Û¤Ê¤ëÃͤˤ¹¤ë¤³¤È¤¬¤Ç¤­¡¢ -Êѹ¹¤Ï +を参照。 +プロセスの実効 ID (ユーザ ID や グループ ID) が変更されるたびに、 +カーネルは自動的に対応するファイルシステム ID を同じ値に変更する。 +その結果、ファイルシステム ID は通常は対応する実効 ID と同じ値となり、 +ファイルのアクセス権のチェック方法は Linux と他の UNIX システムで同じである。 +ファイルシステム ID は実効 ID とは異なる値にすることができ、 +変更は .BR setfsuid (2) -¤È +と .BR setfsgid (2) -¤ò¸Æ¤Ó½Ð¤·¤Æ¹Ô¤¦¡£ +を呼び出して行う。 .IP * .\"O Supplementary group IDs. -Êä½õ¥°¥ë¡¼¥× ID¡£ +補助グループ ID。 .\"O This is a set of additional group IDs that are used for permission .\"O checks when accessing files and other shared resources. .\"O On Linux kernels before 2.6.4, .\"O a process can be a member of up to 32 supplementary groups; .\"O since kernel 2.6.4, .\"O a process can be a member of up to 65536 supplementary groups. -¤³¤Î ID ¤Ï¡¢¥Õ¥¡¥¤¥ë¤ä¾¤Î¶¦Í­¥ê¥½¡¼¥¹¤Ø¤Î¥¢¥¯¥»¥¹»þ¤Ë¥¢¥¯¥»¥¹µö²Ä¤Î -¥Á¥§¥Ã¥¯¤Ë»ÈÍѤµ¤ì¤ë¡¢ÄɲäΥ°¥ë¡¼¥× ID ¤Î½¸¹ç¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë 2.6.4 ¤è¤êÁ°¤Î Linux ¤Ç¤Ï¡¢°ì¤Ä¤Î¥×¥í¥»¥¹¤¢¤¿¤ê¤Î -Êä½õ¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð¡¼¿ô¤ÏºÇÂç¤Ç 32 ¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë 2.6.4 °Ê¹ß¤Ç¤Ï¡¢°ì¤Ä¤Î¥×¥í¥»¥¹¤¢¤¿¤ê¤Î -Êä½õ¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð¡¼¿ô¤ÏºÇÂç¤Ç 65536 ¤Ç¤¢¤ë¡£ +この ID は、ファイルや他の共有リソースへのアクセス時にアクセス許可の +チェックに使用される、追加のグループ ID の集合である。 +カーネル 2.6.4 より前の Linux では、一つのプロセスあたりの +補助グループのメンバー数は最大で 32 である。 +カーネル 2.6.4 以降では、一つのプロセスあたりの +補助グループのメンバー数は最大で 65536 である。 .\"O The call .\"O .I sysconf(_SC_NGROUPS_MAX) .\"O can be used to determine the number of supplementary groups .\"O of which a process may be a member. .I sysconf(_SC_NGROUPS_MAX) -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¡¢¤¢¤ë¥×¥í¥»¥¹¤¬¥á¥ó¥Ð¡¼¤È¤Ê¤ë¤³¤È¤¬¤Ç¤­¤ë²ÄǽÀ­¤Î¤¢¤ë -Êä½õ¥°¥ë¡¼¥×¿ô¤òÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ +を呼び出すことで、あるプロセスがメンバーとなることができる可能性のある +補助グループ数を知ることができる。 .\" Since kernel 2.6.4, the limit is visible via the read-only file .\" /proc/sys/kernel/ngroups_max. .\" As at 2.6.22-rc2, this file is still read-only. @@ -350,11 +350,11 @@ set-group-ID .\"O .BR getgroups (2), .\"O and can modify the set using .\"O .BR setgroups (2). -¥×¥í¥»¥¹¤Ï¡¢¼«Ê¬¤ÎÊä½õ¥°¥ë¡¼¥× ID ¤Î½¸¹ç¤ò +プロセスは、自分の補助グループ ID の集合を .BR getgroups (2) -¤Ç¼èÆÀ¤Ç¤­¡¢ +で取得でき、 .BR setgroups (2) -¤Ç½¸¹ç¤òÊѹ¹¤Ç¤­¤ë¡£ +で集合を変更できる。 .PP .\"O A child process created by .\"O .BR fork (2) @@ -366,22 +366,22 @@ set-group-ID .\"O the effective and saved set IDs may be changed, as described in .\"O .BR execve (2). .BR fork (2) -¤ÇÀ¸À®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤Î¥æ¡¼¥¶ ID ¤È¥°¥ë¡¼¥× ID ¤ò·Ñ¾µ¤¹¤ë¡£ +で生成された子プロセスは親プロセスのユーザ ID とグループ ID を継承する。 .BR execve (2) -¤Î´Ö¡¢¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶/¥°¥ë¡¼¥× ID ¤ÈÊä½õ¥°¥ë¡¼¥× ID ½¸¹ç¤ÏÉÔÊѤǤ¢¤ë¡£ -¼Â¸ú ID ¤ÈÊݸ¥»¥Ã¥È ID ¤ÏÊѹ¹¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë +の間、プロセスの実ユーザ/グループ ID と補助グループ ID 集合は不変である。 +実効 ID と保存セット ID は変更される可能性がある .RB ( execve (2) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë)¡£ +で説明されている)。 .\"O Aside from the purposes noted above, .\"O a process's user IDs are also employed in a number of other contexts: -¾åµ­¤ÎÌÜŪ°Ê³°¤Ë¤â¡¢¥×¥í¥»¥¹¤Î¥æ¡¼¥¶ ID ¤Ï¾¤ÎÍÍ¡¹¤Ê¾ìÌ̤ÇÍøÍѤµ¤ì¤ë¡£ +上記の目的以外にも、プロセスのユーザ ID は他の様々な場面で利用される。 .IP * 3 .\"O when determining the permissions for sending signals\(emsee .\"O .BR kill (2); -¥·¥°¥Ê¥ë¤òÁ÷¤ëµö²Ä¤ÎȽÄê»þ\(em +シグナルを送る許可の判定時\(em .BR kill (2) -»²¾È¡£ +参照。 .IP * .\"O when determining the permissions for setting .\"O process-scheduling parameters (nice value, real time @@ -392,43 +392,43 @@ set-group-ID .\"O .BR sched_setparam (2), .\"O and .\"O .BR ioprio_set (2); -¥×¥í¥»¥¹¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°´ØÏ¢¤Î¥Ñ¥é¥á¡¼¥¿ (nice ÃÍ¡¢ -¥ê¥¢¥ë¥¿¥¤¥à¡¦¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥Ý¥ê¥·¡¼¤äÍ¥ÀèÅÙ¡¢CPU affinity¡¢ -Æþ½ÐÎÏÍ¥ÀèÅÙ) ¤ÎÀßÄêµö²Ä¤ÎȽÄê»þ¡£ -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°´ØÏ¢¤Î¥Ñ¥é¥á¡¼¥¿ÀßÄê¤Ë¤Ï +プロセスのスケジューリング関連のパラメータ (nice 値、 +リアルタイム・スケジューリングポリシーや優先度、CPU affinity、 +入出力優先度) の設定許可の判定時。 +スケジューリング関連のパラメータ設定には .BR setpriority (2), .BR sched_setaffinity (2), .BR sched_setscheduler (2), .BR sched_setparam (2), .BR ioprio_set (2) -¤¬»ÈÍѤµ¤ì¤ë¡£ +が使用される。 .IP * .\"O when checking resource limits; see .\"O .BR getrlimit (2); -¥ê¥½¡¼¥¹¾å¸Â¤Î¥Á¥§¥Ã¥¯»þ¡£ +リソース上限のチェック時。 .BR getrlimit (2) -»²¾È¡£ +参照。 .IP * .\"O when checking the limit on the number of inotify instances .\"O that the process may create; see .\"O .BR inotify (7). -¥×¥í¥»¥¹¤¬À¸À®¤Ç¤­¤ë inotify ¥¤¥ó¥¹¥¿¥ó¥¹¿ô¤Î¾å¸Â¤Î¥Á¥§¥Ã¥¯»þ¡£ +プロセスが生成できる inotify インスタンス数の上限のチェック時。 .BR inotify (7) -»²¾È¡£ +参照。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O Process IDs, parent process IDs, process group IDs, and session IDs .\"O are specified in POSIX.1-2001. .\"O The real, effective, and saved set user and groups IDs, .\"O and the supplementary group IDs, are specified in POSIX.1-2001. .\"O The file system user and group IDs are a Linux extension. -¥×¥í¥»¥¹ ID¡¢¿Æ¥×¥í¥»¥¹ ID¡¢¥×¥í¥»¥¹¥°¥ë¡¼¥× ID¡¢¥»¥Ã¥·¥ç¥ó ID ¤Ï -POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -¼Â ID¡¢¼Â¸ú ID¡¢Êݸ¥»¥Ã¥È ID ¤Î¥æ¡¼¥¶ ID / ¥°¥ë¡¼¥× ID ¤ª¤è¤Ó -Êä½õ¥°¥ë¡¼¥× ID ¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¡¦¥æ¡¼¥¶ ID / ¥°¥ë¡¼¥× ID ¤Ï Linux ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ +プロセス ID、親プロセス ID、プロセスグループ ID、セッション ID は +POSIX.1-2001 で規定されている。 +実 ID、実効 ID、保存セット ID のユーザ ID / グループ ID および +補助グループ ID は POSIX.1-2001 で規定されている。 +ファイルシステム・ユーザ ID / グループ ID は Linux による拡張である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The POSIX threads specification requires that .\"O credentials are shared by all of the threads in a process. .\"O However, at the kernel level, Linux maintains separate user and group @@ -440,18 +440,18 @@ POSIX.1-2001 .\"O .BR setresuid (2), .\"O etc.) .\"O is carried through to all of the POSIX threads in a process. -POSIX ¤Î¥¹¥ì¥Ã¥É»ÅÍͤǤϡ¢¤³¤ì¤é¤Î¼±Ê̻Ҥ¬¥×¥í¥»¥¹Æâ¤ÎÁ´¥¹¥ì¥Ã¥É¤Ç -¶¦Í­¤µ¤ì¤ë¤³¤È¤òµá¤á¤Æ¤¤¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢¥«¡¼¥Í¥ë¤Î¥ì¥Ù¥ë¤Ç¤Ï¡¢Linux ¤Ï¥¹¥ì¥Ã¥ÉËè¤ËÊÌ¡¹¤Î -¥æ¡¼¥¶¤È¥°¥ë¡¼¥×¤Ë´Ø¤¹¤ë¼±Ê̻Ҥò´ÉÍý¤·¤Æ¤¤¤ë¡£ -NPTL ¥¹¥ì¥Ã¥É¼ÂÁõ¤¬¡¢(Î㤨¤Ð +POSIX のスレッド仕様では、これらの識別子がプロセス内の全スレッドで +共有されることを求めている。 +しかしながら、カーネルのレベルでは、Linux はスレッド毎に別々の +ユーザとグループに関する識別子を管理している。 +NPTL スレッド実装が、(例えば .BR setuid (2), .BR setresuid (2) -¤Ê¤É¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤ë) ¥æ¡¼¥¶¤ä¥°¥ë¡¼¥×¤Ë´Ø¤¹¤ë¼±Ê̻ҤËÂФ¹¤ëÊѹ¹¤¬ -¥×¥í¥»¥¹Æâ¤ÎÁ´¤Æ¤Î POSIX ¥¹¥ì¥Ã¥É¤ËÂФ·¤ÆÈ¿±Ç¤µ¤ì¤ë¤³¤È¤òÊݾڤ¹¤ë -¤¿¤á¤Î½èÍý¤ò¹Ô¤Ã¤Æ¤¤¤ë¡£ +などの呼び出しによる) ユーザやグループに関する識別子に対する変更が +プロセス内の全ての POSIX スレッドに対して反映されることを保証する +ための処理を行っている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bash (1), .BR csh (1), .BR ps (1), diff --git a/draft/man7/ddp.7 b/draft/man7/ddp.7 index 669aa453..b4524621 100644 --- a/draft/man7/ddp.7 +++ b/draft/man7/ddp.7 @@ -10,11 +10,11 @@ .\" .TH DDP 7 2008-11-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O ddp \- Linux AppleTalk protocol implementation -ddp \- Linux ¤Ç¤Î AppleTalk ¥×¥í¥È¥³¥ë¤Î¼ÂÁõ +ddp \- Linux での AppleTalk プロトコルの実装 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include @@ -23,7 +23,7 @@ ddp \- Linux .br .IB raw_socket " = socket(AF_APPLETALK, SOCK_RAW, " protocol ");" .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Linux implements the Appletalk protocols described in .\"O .IR "Inside Appletalk" . .\"O Only the DDP layer and AARP are present in @@ -34,24 +34,24 @@ ddp \- Linux .\"O libraries. .\"O This page documents the interface for those who wish or need to .\"O use the DDP layer directly. -Linux ¤Ï +Linux は .I "Inside Appletalk" -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë Appletalk ¥×¥í¥È¥³¥ë¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¡£ -¥«¡¼¥Í¥ë¤Ë¤¢¤ë¤Î¤Ï DDP ÁØ¤È AARP ¤À¤±¤Ç¤¢¤ë¡£¤³¤ì¤é¤Ï +に記述されている Appletalk プロトコルを実装している。 +カーネルにあるのは DDP 層と AARP だけである。これらは .B netatalk -¥×¥í¥È¥³¥ë¥é¥¤¥Ö¥é¥ê¤òÄ̤·¤ÆÍøÍѤµ¤ì¤ë¤è¤¦¤ËÀ߷פµ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥Ú¡¼¥¸¤Ï DDP ÁؤòľÀÜÍøÍѤ·¤¿¤¤¥æ¡¼¥¶¡¼¤Î¤¿¤á¤Ë¡¢ -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òµ­½Ò¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +プロトコルライブラリを通して利用されるように設計されている。 +このページは DDP 層を直接利用したいユーザーのために、 +インターフェースを記述したものである。 .PP .\"O The communication between Appletalk and the user program works using a .\"O BSD-compatible socket interface. .\"O For more information on sockets, see .\"O .BR socket (7). -Appletalk ¤È¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥à¤È¤ÎÄÌ¿®¤Ë¤Ï¡¢ -BSD ¸ß´¹¤Î¥½¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÍøÍѤ¹¤ë¡£ -¥½¥±¥Ã¥È¤Ë´Ø¤¹¤ë¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï +Appletalk とユーザープログラムとの通信には、 +BSD 互換のソケットインターフェースを利用する。 +ソケットに関するより詳しい情報は .BR socket (7) -¤ò¸«¤è¡£ +を見よ。 .PP .\"O An AppleTalk socket is created by calling the .\"O .BR socket (2) @@ -73,40 +73,40 @@ BSD .\"O .B SOCK_RAW .\"O you must specify .\"O .BR ATPROTO_DDP . -Appletalk ¥½¥±¥Ã¥È¤Ï¡¢ -¥½¥±¥Ã¥È¥Õ¥¡¥ß¥ê¡¼¤Î°ú¿ô¤Ë +Appletalk ソケットは、 +ソケットファミリーの引数に .B AF_APPLETALK -¤ò»ØÄꤷ¤Æ +を指定して .BR socket (2) -´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤ë¡£»ØÄê¤Ç¤­¤ë¥½¥±¥Ã¥È¥¿¥¤¥×¤Ï¡¢ +関数を呼び出すことによって生成される。指定できるソケットタイプは、 .B ddp -¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤¹¤ë¾ì¹ç¤Ë¤Ï -.BR SOCK_DGRAM ¡¢ +ソケットをオープンする場合には +.BR SOCK_DGRAM 、 .B raw -¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤¹¤ë¾ì¹ç¤Ë¤Ï +ソケットをオープンする場合には .B SOCK_RAW -¤Ç¤¢¤ë¡£ +である。 .I protocol -¤ÏÁ÷¼õ¿®¤µ¤ì¤ë Appletalk ¥×¥í¥È¥³¥ë¤Ç¤¢¤ë¡£ -¥½¥±¥Ã¥È¥¿¥¤¥×¤Ë +は送受信される Appletalk プロトコルである。 +ソケットタイプに .B SOCK_RAW -¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¡¢¥×¥í¥È¥³¥ë¤Ë +を指定した場合は、プロトコルに .B ATPROTO_DDP -¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を指定しなければならない。 .PP .\"O Raw sockets may be only opened by a process with effective user ID 0 .\"O or when the process has the .\"O .B CAP_NET_RAW .\"O capability. -raw ¥½¥±¥Ã¥È¤Ï¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤«¡¢ +raw ソケットは実効ユーザー ID が 0 のプロセスか、 .B CAT_NEW_RAW -¸¢¸Â¤ò»ý¤Ã¤¿¥×¥í¥»¥¹¤Ç¤Ê¤¤¤È¥ª¡¼¥×¥ó¤Ç¤­¤Ê¤¤¡£ +権限を持ったプロセスでないとオープンできない。 .\"O .SS "Address Format" -.SS ¥¢¥É¥ì¥¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È +.SS アドレスのフォーマット .\"O An Appletalk socket address is defined as a combination of a network number, .\"O a node number, and a port number. -Appletalk ¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Ï¥Í¥Ã¥È¥ï¡¼¥¯Èֹ桦¥Î¡¼¥ÉÈֹ桦¥Ý¡¼¥ÈÈÖ¹æ¤Î -ÁȤ߹ç¤ï¤»¤ÇÄêµÁ¤µ¤ì¤ë¡£ +Appletalk ソケットアドレスはネットワーク番号・ノード番号・ポート番号の +組み合わせで定義される。 .PP .in +4n .nf @@ -127,9 +127,9 @@ struct sockaddr_atalk { .\"O is always set to .\"O .BR AF_APPLETALK . .I sat_family -¤Ï¾ï¤Ë +は常に .B AF_APPLETALK -¤ËÀßÄꤹ¤ë¡£ +に設定する。 .\"O .I sat_port .\"O contains the port. .\"O The port numbers below 129 are known as @@ -140,12 +140,12 @@ struct sockaddr_atalk { .\"O .BR bind (2) .\"O to these sockets. .I sat_port -¤Ï¥Ý¡¼¥È¤òÍ¿¤¨¤ë¡£¥Ý¡¼¥ÈÈֹ椬 129 °Ê²¼¤Î¥Ý¡¼¥È¤Ï -¡ÖͽÌó¥Ý¡¼¥È (reserved port)¡× ¤È¸Æ¤Ð¤ì¤ë¡£¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤«¡¢ +はポートを与える。ポート番号が 129 以下のポートは +「予約ポート (reserved port)」 と呼ばれる。実効ユーザー ID が 0 のプロセスか、 .B CAP_NET_BIND_SERVICE -¸¢¸Â¤ò»ý¤Ä¥×¥í¥»¥¹¤À¤±¤¬¡¢¤³¤Î¤è¤¦¤Ê¥½¥±¥Ã¥È¤ò +権限を持つプロセスだけが、このようなソケットを .BR bind (2) -¤Ç¤­¤ë¡£ +できる。 .\"O .I sat_addr .\"O is the host address. .\"O The @@ -158,13 +158,13 @@ struct sockaddr_atalk { .\"O is a .\"O wildcard and also implies \(lqthis network.\(rq .I sat_addr -¤Ï¥Û¥¹¥È¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +はホストアドレスである。 .I struct at_addr -¤Î¥á¥ó¥Ð¡¼ +のメンバー .I s_net -¤Ë¤Ï¥Û¥¹¥È¤Î¥Í¥Ã¥È¥ï¡¼¥¯¤ò¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤ÇÍ¿¤¨¤ë¡£ÃÍ +にはホストのネットワークをネットワークバイトオーダーで与える。値 .B AT_ANYNET -¤Ï¥ï¥¤¥ë¥É¥«¡¼¥É¤Ç¡¢¡Ö¤³¤Î¥Í¥Ã¥È¥ï¡¼¥¯¡×¤â°ÅÌۤΤ¦¤Á¤Ë´Þ¤Þ¤ì¤ë¡£ +はワイルドカードで、「このネットワーク」も暗黙のうちに含まれる。 .\"O The .\"O .I node .\"O member of @@ -178,65 +178,65 @@ struct sockaddr_atalk { .\"O is a link .\"O local broadcast address. .I struct at_addr -¤Î¥á¥ó¥Ð¡¼ +のメンバー .I s_node -¤Ë¤Ï¥Û¥¹¥È¤Î¥Î¡¼¥ÉÈÖ¹æ¤òÍ¿¤¨¤ë¡£ÃÍ +にはホストのノード番号を与える。値 .B AT_ANYNODE -¤Ï¥ï¥¤¥ë¥É¥«¡¼¥É¤Ç¡¢¡Ö¤³¤Î¥Î¡¼¥É¡×¤â°ÅÌۤΤ¦¤Á¤Ë´Þ¤Þ¤ì¤ë¡£ÃÍ +はワイルドカードで、「このノード」も暗黙のうちに含まれる。値 .B ATADDR_BCAST -¤Ï¥í¡¼¥«¥ë¤Ê¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +はローカルなブロードキャストアドレスである。 .\" FIXME this doesn't make sense [johnl] .\"O .SS "Socket Options" -.SS ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó +.SS ソケットオプション .\"O No protocol-specific socket options are supported. -¥×¥í¥È¥³¥ë¸ÇÍ­¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤Ï¤Ê¤¤¡£ +プロトコル固有のソケットオプションはない。 .\"O .SS /proc interfaces -.SS /proc ¥¤¥ó¥¿¥Õ¥§¡¼¥¹ +.SS /proc インタフェース .\"O IP supports a set of .\"O .I /proc .\"O interfaces to configure some global AppleTalk parameters. .\"O The parameters can be accessed by reading or writing files in the directory .\"O .IR /proc/sys/net/atalk/ . -Appletalk ¤Î¥°¥í¡¼¥Ð¥ë¥Ñ¥é¥á¡¼¥¿¤Î¤¤¤¯¤Ä¤«¤Ï¡¢ +Appletalk のグローバルパラメータのいくつかは、 .I /proc -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ̤·¤ÆÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤é¤Î¥Ñ¥é¥á¡¼¥¿¤Ë¤Ï¡¢ +インタフェースを通して設定することができる。 +これらのパラメータには、 .I /proc/sys/net/atalk/ -¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¤ÎÆɤ߽ñ¤­¤Ç¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ +ディレクトリ内のファイルの読み書きでアクセスできる。 .TP .I aarp-expiry-time .\"O The time interval (in seconds) before an AARP cache entry expires. -AARP ¥­¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê¤òÇË´þ¤¹¤ë¤Þ¤Ç¤Î¥¿¥¤¥à¥¤¥ó¥¿¡¼¥Ð¥ë (ÉÃñ°Ì)¡£ +AARP キャッシュエントリを破棄するまでのタイムインターバル (秒単位)。 .TP .I aarp-resolve-time .\"O The time interval (in seconds) before an AARP cache entry is resolved. -AARP ¥­¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê¤¬²ò·è¤µ¤ì¤ë¤Þ¤Ç¤Î¥¿¥¤¥à¥¤¥ó¥¿¡¼¥Ð¥ë (ÉÃñ°Ì)¡£ +AARP キャッシュエントリが解決されるまでのタイムインターバル (秒単位)。 .TP .I aarp-retransmit-limit .\"O The number of retransmissions of an AARP query before the node is declared .\"O dead. -AARP ¥¯¥¨¥ê¡¼¤ÎºÇÂçºÆÁ÷¿®²ó¿ô¡£¤³¤Î²ó¿ô¤ò±Û¤¨¤ë¤È¡¢ -¤½¤Î¥Î¡¼¥É¤Ï dead ¤Ç¤¢¤ë¤È¤ß¤Ê¤µ¤ì¤ë¡£ +AARP クエリーの最大再送信回数。この回数を越えると、 +そのノードは dead であるとみなされる。 .TP .I aarp-tick-time .\"O The timer rate (in seconds) for the timer driving AARP. -¥¿¥¤¥Þ¡¼Æ°ºî¤¹¤ë AARP ¤Î¥¿¥¤¥Þ¡¼¥ì¡¼¥È (ÉÃñ°Ì) +タイマー動作する AARP のタイマーレート (秒単位) .PP .\"O The default values match the specification and should never need to be .\"O changed. -¥Ç¥Õ¥©¥ë¥È¤ÎÃͤǻÅÍͤ˥ޥåÁ¤·¤Æ¤¤¤ë¤Î¤Ç¡¢ -Êѹ¹¤¹¤ëɬÍפÏÁ´¤¯¤Ê¤¤¤Ï¤º¤Ç¤¢¤ë¡£ +デフォルトの値で仕様にマッチしているので、 +変更する必要は全くないはずである。 .\"O .SS Ioctls .SS ioctl .\"O All ioctls described in .\"O .BR socket (7) .\"O apply to DDP. .BR socket (7) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î ioctl ¤¬ -DDP ¤Ë¤âŬÍѤµ¤ì¤ë¡£ +に記述されているすべての ioctl が +DDP にも適用される。 .\" FIXME Add a section about multicasting .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\" FIXME document all errors. We should really fix the kernels to .\" give more uniform error returns (ENOMEM vs ENOBUFS, EPERM vs .\" EACCES etc.) @@ -247,155 +247,155 @@ DDP .\"O having the broadcast flag set, .\"O and trying to bind to a reserved port without effective user ID 0 or .\"O .BR CAP_NET_BIND_SERVICE . -¥æ¡¼¥¶¤¬¹Ô¤ª¤¦¤È¤·¤¿Áàºî¤ËɬÍפʸ¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -broadcast ¥Õ¥é¥°¤ò¥»¥Ã¥È¤»¤º¤Ë¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤ØÁ÷¿®¤ò¹Ô¤ª¤¦¤È¤·¤¿¡¢ -¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤Ç¤Ê¤¯¡¢ +ユーザが行おうとした操作に必要な権限を持っていない。 +broadcast フラグをセットせずにブロードキャストアドレスへ送信を行おうとした、 +実効ユーザー ID が 0 でなく、 .B CAP_NET_BIND_SERVICE -¸¢¸Â¤Î¤Ê¤¤¥×¥í¥»¥¹¤ÇÆø¢¥Ý¡¼¥È¤ò¥Ð¥¤¥ó¥É¤·¤è¤¦¤È¤·¤¿¡¢¤Ê¤É¤¬¹Í¤¨¤é¤ì¤ë¡£ +権限のないプロセスで特権ポートをバインドしようとした、などが考えられる。 .TP .B EADDRINUSE .\"O Tried to bind to an address already in use. -´û¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¤Ë¥Ð¥¤¥ó¥É¤·¤è¤¦¤È¤·¤¿¡£ +既に使用されているアドレスにバインドしようとした。 .TP .B EADDRNOTAVAIL .\"O A nonexistent interface was requested or the requested source address was .\"O not local. -¸ºß¤·¤Ê¤¤¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬Í׵ᤵ¤ì¤¿¡£¤Þ¤¿¤Ï -Í׵ᤵ¤ì¤¿¥½¡¼¥¹¥¢¥É¥ì¥¹¤¬¥í¡¼¥«¥ë¤Ê¤â¤Î¤Ç¤Ê¤¤¡£ +存在しないインターフェースが要求された。または +要求されたソースアドレスがローカルなものでない。 .TP .B EAGAIN .\"O Operation on a nonblocking socket would block. -Èó¥Ö¥í¥Ã¥­¥ó¥°¥½¥±¥Ã¥È¤ËÂФ·¤Æ¥Ö¥í¥Ã¥¯¤¹¤ëÁàºî¤ò¹Ô¤Ã¤¿¡£ +非ブロッキングソケットに対してブロックする操作を行った。 .TP .B EALREADY .\"O A connection operation on a nonblocking socket is already in progress. -Èó¥Ö¥í¥Ã¥­¥ó¥°¥½¥±¥Ã¥È¤ËÂФ¹¤ëÀܳÁàºî¤¬´û¤Ë¼Â¹ÔÃæ¤Ç¤¢¤ë¡£ +非ブロッキングソケットに対する接続操作が既に実行中である。 .TP .B ECONNABORTED .\"O A connection was closed during an .\"O .BR accept (2). .BR accept (2) -¤ÎÅÓÃæ¤ÇÀܳ¤¬¥¯¥í¡¼¥º¤µ¤ì¤¿¡£ +の途中で接続がクローズされた。 .TP .B EHOSTUNREACH .\"O No routing table entry matches the destination address. -¹Ô¤­À襢¥É¥ì¥¹¤Ë¥Þ¥Ã¥Á¤¹¤ë¥¨¥ó¥È¥ê¤¬¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤Ë¤Ê¤¤¡£ +行き先アドレスにマッチするエントリがルーティングテーブルにない。 .TP .B EINVAL .\"O Invalid argument passed. -ÅϤ·¤¿°ú¿ô¤¬ÉÔÀµ¡£ +渡した引数が不正。 .TP .B EISCONN .\"O .BR connect (2) .\"O was called on an already connected socket. -ÀܳºÑ¤ß¤Î¥½¥±¥Ã¥È¤ËÂФ·¤Æ +接続済みのソケットに対して .BR connect (2) -¤¬¸Æ¤Ð¤ì¤¿¡£ +が呼ばれた。 .TP .B EMSGSIZE .\"O Datagram is bigger than the DDP MTU. -¥Ç¡¼¥¿¥°¥é¥à¤¬ DDP MTU ¤è¤êÂ礭¤¤¡£ +データグラムが DDP MTU より大きい。 .TP .B ENODEV .\"O Network device not available or not capable of sending IP. -¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¤¬¤Ê¤¤¡£¤¢¤ë¤¤¤Ï IP ¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +ネットワークデバイスがない。あるいは IP を送ることができない。 .TP .B ENOENT .\"O .B SIOCGSTAMP .\"O was called on a socket where no packet arrived. -¥Ñ¥±¥Ã¥È¤¬ÅþÃ夷¤Æ¤¤¤Ê¤¤¥½¥±¥Ã¥È¤ËÂФ·¤Æ +パケットが到着していないソケットに対して .B SIOCGSTAMP -¤¬¸Æ¤Ð¤ì¤¿¡£ +が呼ばれた。 .TP .\"O .BR ENOMEM " and " ENOBUFS -.BR ENOMEM " ¤È " ENOBUFS +.BR ENOMEM " と " ENOBUFS .\"O Not enough memory available. -¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£ +メモリが足りない。 .TP .B ENOPKG .\"O A kernel subsystem was not configured. -¥«¡¼¥Í¥ë¤Î¥µ¥Ö¥·¥¹¥Æ¥à¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +カーネルのサブシステムが設定されていない。 .TP .\"O .BR ENOPROTOOPT " and " EOPNOTSUPP -.BR ENOPROTOOPT " ¤È " EOPNOTSUPP +.BR ENOPROTOOPT " と " EOPNOTSUPP .\"O Invalid socket option passed. -ÅϤ·¤¿¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬ÉÔÀµ¡£ +渡したソケットオプションが不正。 .TP .B ENOTCONN .\"O The operation is only defined on a connected socket, but the socket wasn't .\"O connected. -¹Ô¤ª¤¦¤È¤·¤¿Áàºî¤ÏÀܳºÑ¤ß¤Î¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤Î¤ßÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤À¤¬¡¢ -¤½¤Î¥½¥±¥Ã¥È¤ÏÀܳ¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +行おうとした操作は接続済みのソケットに対してのみ定義されているものだが、 +そのソケットは接続されていなかった。 .TP .B EPERM .\"O User doesn't have permission to set high priority, .\"O make a configuration change, .\"O or send signals to the requested process or group, -¹â¤¤Í¥ÀèÅÙ¤ËÀßÄꤷ¤¿¤ê¡¢ÀßÄê¤òÊѹ¹¤·¤¿¤ê¡¢ -»ØÄꤷ¤¿¥×¥í¥»¥¹¤ä¥°¥ë¡¼¥×¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¤Î¤ËɬÍפʸ¢¸Â¤ò -¥æ¡¼¥¶¤¬»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +高い優先度に設定したり、設定を変更したり、 +指定したプロセスやグループにシグナルを送るのに必要な権限を +ユーザが持っていない。 .TP .B EPIPE .\"O The connection was unexpectedly closed or shut down by the other end. -Àܳ¤¬ÀèÊý¤Ë¤è¤Ã¤Æ¡¢Ä̾ï°Ê³°¤Î¤ä¤êÊý¤Ç¥¯¥í¡¼¥º¤Þ¤¿¤Ï¥·¥ã¥Ã¥È¥À¥¦¥ó¤µ¤ì¤¿¡£ +接続が先方によって、通常以外のやり方でクローズまたはシャットダウンされた。 .TP .B ESOCKTNOSUPPORT .\"O The socket was unconfigured, or an unknown socket type was requested. -¥½¥±¥Ã¥È¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£¤Þ¤¿¤Ï̤ÃΤΥ½¥±¥Ã¥È¥¿¥¤¥×¤¬Í׵ᤵ¤ì¤¿¡£ +ソケットが設定されていない。または未知のソケットタイプが要求された。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O Appletalk is supported by Linux 2.0 or higher. .\"O The .\"O .I /proc .\"O interfaces exist since Linux 2.2. -Appletalk ¤Ï Linux 2.0 °Ê¹ß¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +Appletalk は Linux 2.0 以降でサポートされている。 .I /proc -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï Linux 2.2 °Ê¹ß¤Ë¸ºß¤¹¤ë¡£ +インタフェースは Linux 2.2 以降に存在する。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Be very careful with the .\"O .B SO_BROADCAST .\"O option \- it is not privileged in Linux. .\"O It is easy to overload the network .\"O with careless sending to broadcast addresses. .B SO_BROADCAST -¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë»þ¤Ë¤Ï¿µ½Å¤Î¾å¤Ë¤â¿µ½Å¤Ë¤Ê¤Ã¤Æ¤Û¤·¤¤¡£ -Linux ¤Ç¤Ï¤³¤ì¤ËÆø¢¤òɬÍפȤ·¤Ê¤¤¡£ -ÉÔÃí°Õ¤Ë¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤ËÁ÷¿®¤ò¹Ô¤¦¤È¡¢ -¥Í¥Ã¥È¥ï¡¼¥¯¤Î¾õÂÖ¤¬´Êñ¤ËÊѹ¹¤µ¤ì¤Æ¤·¤Þ¤¦¡£ +オプションを用いる時には慎重の上にも慎重になってほしい。 +Linux ではこれに特権を必要としない。 +不注意にブロードキャストアドレスに送信を行うと、 +ネットワークの状態が簡単に変更されてしまう。 .\"O .SS Compatibility -.SS °Ü¿¢À­ +.SS 移植性 .\"O The basic AppleTalk socket interface is compatible with .\"O .B netatalk .\"O on BSD-derived systems. .\"O Many BSD systems fail to check .\"O .B SO_BROADCAST .\"O when sending broadcast frames; this can lead to compatibility problems. -´ðËÜŪ¤Ê Appletalk ¥½¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï -BSD ͳÍè¤Î¥·¥¹¥Æ¥à¤Ë¤ª¤±¤ë +基本的な Appletalk ソケットインターフェースは +BSD 由来のシステムにおける .B netatalk -¤È¸ß´¹À­¤¬¤¢¤ë¡£Â¿¤¯¤Î BSD ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥Õ¥ì¡¼¥à¤òÁ÷¿®¤·¤è¤¦¤È¤·¤¿¤È¤­¤Î +と互換性がある。多くの BSD システムでは、 +ブロードキャストフレームを送信しようとしたときの .B SO_BROADCAST -¤Î¥Á¥§¥Ã¥¯¤Ë¼ºÇÔ¤¹¤ë¡£¤³¤ì¤Ï¸ß´¹À­¤ÎÌäÂê¤È¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +のチェックに失敗する。これは互換性の問題となるかもしれない。 .PP .\"O The .\"O raw .\"O socket mode is unique to Linux and exists to support the alternative CAP .\"O package and AppleTalk monitoring tools more easily. -raw ¥½¥±¥Ã¥È¥â¡¼¥É¤Ï Linux ÆÈÆäΤâ¤Î¤Ç¡¢¤â¤¦°ìÊý¤Î¼ÂÁõ¤Ç¤¢¤ë CAP -¥Ñ¥Ã¥±¡¼¥¸¤ä¡¢ Appletalk ¥â¥Ë¥¿¥Ä¡¼¥ë¤ò¤è¤ê´Êñ¤Ë¼ÂÁõ¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +raw ソケットモードは Linux 独特のもので、もう一方の実装である CAP +パッケージや、 Appletalk モニタツールをより簡単に実装できるようになる。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O There are too many inconsistent error values. -¥¨¥é¡¼¤ÎÃͤ¬¤Þ¤Ã¤¿¤¯¼óÈø°ì´Ó¤·¤Æ¤¤¤Ê¤¤¡£ +エラーの値がまったく首尾一貫していない。 .PP .\"O The ioctls used to configure routing tables, devices, .\"O AARP tables and other devices are not yet described. -¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¡¦¥Ç¥Ð¥¤¥¹¡¦ AARP ¥Æ¡¼¥Ö¥ë¡¦¤½¤Î¾¤Î¥Ç¥Ð¥¤¥¹¤ò -ÀßÄꤹ¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë ioctl ¤¬¤Þ¤Àµ­½Ò¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +ルーティングテーブル・デバイス・ AARP テーブル・その他のデバイスを +設定するために用いられる ioctl がまだ記述されていない。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR recvmsg (2), .BR sendmsg (2), .BR capabilities (7), diff --git a/draft/man7/environ.7 b/draft/man7/environ.7 index f1cf9fb2..90f339f2 100644 --- a/draft/man7/environ.7 +++ b/draft/man7/environ.7 @@ -30,8 +30,8 @@ .\" Modified Wed Jan 24 06:37:24 2001 by Eric S. Raymond (esr@thyrsus.com) .\" Modified Thu Dec 13 23:53:27 2001 by Martin Schulze .\" -.\" nakano Ãí: Nicolas ¤µ¤ó¤Î a ¤Ï¥ª¥ê¥¸¥Ê¥ë¤Ç¤Ï \'a ¤À¤¬, -.\" ¥­¥ã¥é¥¯¥¿¤ò²õ¤¹¤Î¤Ç a ¤ËÊѹ¹¤·¤¿. +.\" nakano 注: Nicolas さんの a はオリジナルでは \'a だが, +.\" キャラクタを壊すので a に変更した. .\" .\" Japanese Version Copyright (c) 1997 KURODA Masaru all rights reserved. .\" Translated May 27, 1997 by KURODA Masaru @@ -44,25 +44,25 @@ .\" Updated Sat Mar 23 JST 2002 by Kentaro Shirakata .\" Updated 2010-04-11, Akihiro MOTOKI , LDP v3.24 .\" -.\"WORD: environment ´Ä¶­ -.\"WORD: environment variable ´Ä¶­ÊÑ¿ô -.\"WORD: shell variable ¥·¥§¥ëÊÑ¿ô -.\"WORD: locale ¥í¥±¡¼¥ë -.\"WORD: locale category ¥í¥±¡¼¥ë¥«¥Æ¥´¥ê +.\"WORD: environment 環境 +.\"WORD: environment variable 環境変数 +.\"WORD: shell variable シェル変数 +.\"WORD: locale ロケール +.\"WORD: locale category ロケールカテゴリ .\" .TH ENVIRON 7 2009-07-25 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O environ \- user environment -.SH ̾Á° -environ \- ¥æ¡¼¥¶´Ä¶­ +.SH 名前 +environ \- ユーザ環境 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .BI "extern char **" environ ; .br .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The variable .\"O .I environ .\"O points to an array of pointers to strings called the "environment". @@ -77,48 +77,48 @@ environ \- .\"O This array of strings is made available to the process by the .\"O .BR exec (3) .\"O call that started the process. -ÊÑ¿ô +変数 .I environ -¤Ï¡Ö´Ä¶­ (environment)¡×¤È¸Æ¤Ð¤ì¤ëʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤ÎÇÛÎó¤Ç¤¢¤ë¡£ -¤³¤ÎÇÛÎó¤ÎºÇ¸å¤Î¥Ý¥¤¥ó¥¿¤ÎÃÍ¤Ï NULL ¤Ç¤¢¤ë¡£ -(¤³¤ÎÊÑ¿ô¤Ï¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥à¤ÇÀë¸À¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤¿¤À¤· libc4 ¤ä libc5 ¤Î¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤Ê¤é +は「環境 (environment)」と呼ばれる文字列へのポインタの配列である。 +この配列の最後のポインタの値は NULL である。 +(この変数はユーザープログラムで宣言しなければならない。 +ただし libc4 や libc5 のヘッダーファイルなら .I -¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤ë¤·¡¢¤³¤ì¤¬ glibc ͳÍè¤Î¤â¤Î¤Ç¤â +で宣言されているし、これが glibc 由来のものでも .B _GNU_SOURCE -¤¬ define ¤µ¤ì¤Æ¤¤¤ì¤ÐÀë¸ÀºÑ¤ß¤È¤Ê¤ë)¡£ -¤³¤Îʸ»úÎóÇÛÎó¤Ï¡¢ -¥×¥í¥»¥¹¤òµ¯Æ°¤¹¤ë +が define されていれば宣言済みとなる)。 +この文字列配列は、 +プロセスを起動する .BR exec (3) -¤Ë¤è¤Ã¤Æ¡¢¤½¤Îµ¯Æ°¤µ¤ì¤¿¥×¥í¥»¥¹¤ÇÍøÍѤǤ­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +によって、その起動されたプロセスで利用できるようになる。 .\"O By convention the strings in .\"O .I environ .\"O have the form "\fIname\fP\fB=\fP\fIvalue\fP". .\"O Common examples are: -ÄÌÎã¤Ç¤Ï¡¢ +通例では、 .I environ -¤Îʸ»úÎó¤Ï "\fIname\fP\fB=\fP\fIvalue\fP" ¤È¤¤¤¦½ñ¼°¤ò¤È¤ë¡£ -¤è¤¯ÍѤ¤¤é¤ì¤ëÎã¤ò°Ê²¼¤Ë¼¨¤¹¡£ +の文字列は "\fIname\fP\fB=\fP\fIvalue\fP" という書式をとる。 +よく用いられる例を以下に示す。 .TP .B USER .\"O The name of the logged-in user (used by some BSD-derived programs). -¥æ¡¼¥¶¤Î¥í¥°¥¤¥ó̾ (BSD µ¯¸»¤Î¥×¥í¥°¥é¥à¤Ê¤É¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤ë)¡£ +ユーザのログイン名 (BSD 起源のプログラムなどによって使用される)。 .TP .B LOGNAME .\"O The name of the logged-in user (used by some System-V derived programs). -¥æ¡¼¥¶¤Î¥í¥°¥¤¥ó̾(System V µ¯¸»¤Î¥×¥í¥°¥é¥à¤Ê¤É¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤ë)¡£ +ユーザのログイン名(System V 起源のプログラムなどによって使用される)。 .TP .B HOME .\"O A user's login directory, set by .\"O .BR login (1) .\"O from the password file .\"O .BR passwd (5). -¥æ¡¼¥¶¤Î¥í¥°¥¤¥ó¥Ç¥£¥ì¥¯¥È¥ê¡£ +ユーザのログインディレクトリ。 .BR login (1) -¤¬¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë +がパスワードファイル .BR passwd (5) -¤«¤é¼èÆÀ¤·¤ÆÀßÄꤹ¤ë¡£ +から取得して設定する。 .TP .B LANG .\"O The name of a locale to use for locale categories when not overridden @@ -126,18 +126,18 @@ environ \- .\"O \fBLC_COLLATE\fP, \fBLC_CTYPE\fP, \fBLC_MESSAGES\fP, \fBLC_MONETARY\fP, .\"O \fBLC_NUMERIC\fP, \fBLC_TIME\fP, cf. .\"O .BR locale (5). -¥í¥±¡¼¥ë¤Î³Æ¥«¥Æ¥´¥ê¤Ç»ÈÍѤµ¤ì¤ë¥í¥±¡¼¥ë¤Î̾Á°¡£\fBLC_ALL\fP ¤ä¡¢ -¤è¤ê¶¹¤¤ÈϰϤòÂоݤȤ¹¤ë´Ä¶­ÊÑ¿ô +ロケールの各カテゴリで使用されるロケールの名前。\fBLC_ALL\fP や、 +より狭い範囲を対象とする環境変数 .RB ( LC_COLLATE , .BR LC_CTYPE , .BR LC_MESSAGES , .BR LC_MONETARY , .BR LC_NUMERIC , .B LC_TIME -¤Ê¤É) -¤Ë¤è¤Ã¤Æ¾å½ñ¤­¤µ¤ì¤ë¤³¤È¤â¤¢¤ë¡£ +など) +によって上書きされることもある。 .BR locale (5) -¤ò¸«¤è¡£ +を見よ。 .TP .B PATH .\"O The sequence of directory prefixes that @@ -151,42 +151,42 @@ environ \- .\"O to .\"O find manual pages, etc.) .BR sh (1) -¤ä¾¤Î¥×¥í¥°¥é¥à¤¬¡¢¥Õ¥ë¥Ñ¥¹¤ÇÍ¿¤¨¤é¤ì¤Ê¤«¤Ã¤¿¼Â¹Ô¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤¹¤ë¤È¤­¡¢ -¥Õ¥¡¥¤¥ë̾¤ËÁ°ÃÖ¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ÎÇÛÎó¡£ -³Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ï \(aq\fB:\fP\(aq ¤Ë¤è¤Ã¤Æ¶èÀÚ¤é¤ì¤ë¡£ -(Ʊ¤¸¤è¤¦¤Ê¤â¤Î¤Ë¡¢ -¥·¥§¥ë¤¬¥Ç¥£¥ì¥¯¥È¥êÊѹ¹¥³¥Þ¥ó¥É¤ÎÊѹ¹Àè¤òõ¤¹¤¿¤á¤ËÍѤ¤¤ë -\fBCDPATH\fP ¤ä¡¢ +や他のプログラムが、フルパスで与えられなかった実行ファイルを検索するとき、 +ファイル名に前置されるディレクトリの配列。 +各ディレクトリは \(aq\fB:\fP\(aq によって区切られる。 +(同じようなものに、 +シェルがディレクトリ変更コマンドの変更先を探すために用いる +\fBCDPATH\fP や、 .BR man (1) -¤¬¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¸¡º÷¤ËÍѤ¤¤ë \fBMANPATH\fP ¤Ê¤É¤¬¤¢¤ë¡£) +がマニュアルページの検索に用いる \fBMANPATH\fP などがある。) .TP .B PWD .\"O The current working directory. .\"O Set by some shells. -¸½ºß¤Î¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¡£¤¤¤¯¤Ä¤«¤Î¥·¥§¥ë¤¬ÀßÄꤹ¤ë¡£ +現在のワーキングディレクトリ。いくつかのシェルが設定する。 .TP .B SHELL .\"O The pathname of the user's login shell. -¥æ¡¼¥¶¡¼¤Î¥í¥°¥¤¥ó¥·¥§¥ë¤Î¥Ñ¥¹Ì¾¡£ +ユーザーのログインシェルのパス名。 .TP .B TERM .\"O The terminal type for which output is to be prepared. -üËö¤Î¼ïÎà¡£½ÐÎϤϤ³¤ì¤Ë¤¢¤ï¤»¤ÆÍÑ°Õ¤µ¤ì¤ë¡£ +端末の種類。出力はこれにあわせて用意される。 .TP .B PAGER .\"O The user's preferred utility to display text files. -¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤òɽ¼¨¤¹¤ë¥æ¡¼¥Æ¥ê¥Æ¥£¡£¥æ¡¼¥¶¡¼¤¬¹¥¤ß¤Î¤â¤Î¤òÀßÄꤹ¤ë¡£ +テキストファイルを表示するユーテリティ。ユーザーが好みのものを設定する。 .TP .BR EDITOR / VISUAL .\"O The user's preferred utility to edit text files. -¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤òÊÔ½¸¤¹¤ë¥æ¡¼¥Æ¥ê¥Æ¥£¡£¥æ¡¼¥¶¡¼¤¬¹¥¤ß¤Î¤â¤Î¤òÀßÄꤹ¤ë¡£ +テキストファイルを編集するユーテリティ。ユーザーが好みのものを設定する。 .\" .TP .\" .B BROWSER .\"O .\" The user's preferred utility to browse URLs. Sequence of colon-separated .\"O .\" browser commands. See http://www.catb.org/~esr/BROWSER/ . -.\" URL ¤Î±ÜÍ÷¤ËÍѤ¤¤ë¥æ¡¼¥Æ¥£¥ê¥Æ¥£¡£¥æ¡¼¥¶¡¼¤¬¹¥¤ß¤Î¤â¤Î¤òÀßÄꤹ¤ë¡£ -.\" ¥³¥í¥ó¤Ç¶èÀڤäƥ֥饦¥¶¥³¥Þ¥ó¥É¤òʤ٤롣 -.\" http://www.catb.org/~esr/BROWSER/ ¤ò¸«¤è¡£ +.\" URL の閲覧に用いるユーティリティ。ユーザーが好みのものを設定する。 +.\" コロンで区切ってブラウザコマンドを並べる。 +.\" http://www.catb.org/~esr/BROWSER/ を見よ。 .PP .\"O Further names may be placed in the environment by the \fIexport\fP .\"O command and "name=value" in @@ -202,25 +202,25 @@ environ \- .\"O .BR setenv (3), .\"O and .\"O .BR unsetenv (3). -´Ä¶­¤Ë̾Á°¤òÄɲ乤ë¾ì¹ç¤Ë¤Ï¡¢ +環境に名前を追加する場合には、 .BR sh (1) -¤Ç¤Ï \fIexport\fP ¥³¥Þ¥ó¥É¤È "name=value" ¤ò»ÈÍѤ¹¤ë¡£ +では \fIexport\fP コマンドと "name=value" を使用する。 .BR csh (1) -¤Ç¤Ï \fIsetenv\fP ¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¡£ +では \fIsetenv\fP コマンドを使用する。 .BR exec (3) -¤Î°ú¿ô¤È¤·¤Æ¤â´Ä¶­¤òÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -C ¥×¥í¥°¥é¥à¤«¤é¤Ï¡¢ +の引数としても環境を設定することができる。 +C プログラムからは、 .BR getenv (3), .BR putenv (3), .BR setenv (3), .BR unsetenv (3) -¤Ê¤É¤Î´Ø¿ô¤òÍѤ¤¤Æ´Ä¶­¤ò°·¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +などの関数を用いて環境を扱うことができる。 .\"O Note that the behavior of many programs and library routines is .\"O influenced by the presence or value of certain environment variables. .\"O A random collection: -¥×¥í¥°¥é¥à¤ä¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤Î¿¤¯¤Ï¡¢¤½¤ì¤¾¤ìŬÅö¤Ê´Ä¶­ÊÑ¿ô¤Î¸ºß -¤äÃͤˤè¤Ã¤Æ¡¢Æ°ºî¤Ë±Æ¶Á¤ò¼õ¤±¤ë¤³¤È¤¬¤¢¤ë¡£°Ê²¼¡¢Å¬µ¹µó¤²¤Æ¤ß¤è¤¦¡£ +プログラムやライブラリルーチンの多くは、それぞれ適当な環境変数の存在 +や値によって、動作に影響を受けることがある。以下、適宜挙げてみよう。 .LP .\"O The variables .\"O .BR LANG ", " LANGUAGE ", " NLSPATH ", " LOCPATH ", " @@ -229,9 +229,9 @@ C .\"O .BR locale (5). .BR LANG ", " LANGUAGE ", " NLSPATH ", " LOCPATH ", " .BR LC_ALL ", " LC_MESSAGES ", " -¤Ê¤É¤ÎÊÑ¿ô¡£¥í¥±¡¼¥ë¤Î°·¤¤¤Ë±Æ¶Á¤¹¤ë¡£ +などの変数。ロケールの扱いに影響する。 .BR locale (5) -¤ò¸«¤è¡£ +を見よ。 .LP .\"O .B TMPDIR .\"O influences the path prefix of names created by @@ -240,24 +240,24 @@ C .\"O .BR sort (1) .\"O and other programs, etc. .B TMPDIR -¤Ï +は .BR tmpnam (3) -¤Ê¤É¤Î¥ë¡¼¥Á¥ó¤Ë¤è¤Ã¤ÆºîÀ®¤µ¤ì¤ë¥Õ¥¡¥¤¥ë̾¤ËÁ°ÃÖ¤µ¤ì¤ë¥Ñ¥¹¤Ë±Æ¶Á¤¹¤ë¡£¤Þ¤¿ +などのルーチンによって作成されるファイル名に前置されるパスに影響する。また .BR sort (1) -¤Î°ì»þ¥Ç¥£¥ì¥¯¥È¥ê¤ËÍѤ¤¤é¤ì¤¿¤ê¡¢Â¾¤Î¥×¥í¥°¥é¥à¤«¤é¤âÍøÍѤµ¤ì¤ë¡£ +の一時ディレクトリに用いられたり、他のプログラムからも利用される。 .LP .\"O .BR LD_LIBRARY_PATH ", " LD_PRELOAD .\"O and other LD_* variables influence .\"O the behavior of the dynamic loader/linker. .BR LD_LIBRARY_PATH ", " LD_PRELOAD -¤Ê¤É¤Î LD_* ÊÑ¿ô¤Ï¥À¥¤¥Ê¥ß¥Ã¥¯¥í¡¼¥À¡¦¥ê¥ó¥«¤ÎÆ°ºî¤Ë±Æ¶Á¤¹¤ë¡£ +などの LD_* 変数はダイナミックローダ・リンカの動作に影響する。 .LP .\"O .B POSIXLY_CORRECT .\"O makes certain programs and library routines follow .\"O the prescriptions of POSIX. .B POSIXLY_CORRECT -¤¬»ØÄꤵ¤ì¤ë¤È¡¢¤¢¤ë¼ï¤Î¥×¥í¥°¥é¥à¤ä¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤Ï -POSIX ¤Îµ¬Äê¤Ë½¾¤¦¤è¤¦¤Ë¤Ê¤ë¡£ +が指定されると、ある種のプログラムやライブラリルーチンは +POSIX の規定に従うようになる。 .LP .\"O The behavior of .\"O .BR malloc (3) @@ -265,9 +265,9 @@ POSIX .\"O .B MALLOC_* .\"O variables. .BR malloc (3) -¤ÎÆ°ºî¤Ï +の動作は .B MALLOC_* -ÊÑ¿ô¤Ë¤è¤Ã¤Æ±Æ¶Á¤µ¤ì¤ë¡£ +変数によって影響される。 .LP .\"O The variable .\"O .B HOSTALIASES @@ -275,9 +275,9 @@ POSIX .\"O to be used with .\"O .BR gethostbyname (3). .B HOSTALIAS -ÊÑ¿ô¤Ï¡¢ +変数は、 .BR gethostbyname (3) -¤¬ÍѤ¤¤ë¥¨¥¤¥ê¥¢¥¹¤¬½ñ¤«¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë̾¤òÍ¿¤¨¤ë¡£ +が用いるエイリアスが書かれているファイル名を与える。 .LP .\"O .BR TZ " and " TZDIR .\"O give timezone information used by @@ -289,54 +289,54 @@ POSIX .\"O .BR strftime (3). .\"O See also .\"O .BR tzselect (8). -.BR TZ " ¤È " TZDIR -¤Ï +.BR TZ " と " TZDIR +は .BR tzset (3) -¤ª¤è¤Ó¡¢¤³¤Î´Ø¿ô¤ò»È¤¦ +および、この関数を使う .BR ctime (3), .BR localtime (3), .BR mktime (3), .BR strftime (3) -¤È¤¤¤Ã¤¿´Ø¿ô¤ÇÍѤ¤¤é¤ì¤ë¥¿¥¤¥à¥¾¡¼¥ó¤Î¾ðÊó¤òÍ¿¤¨¤ë¡£ +といった関数で用いられるタイムゾーンの情報を与える。 .BR tzselect (8) -¤â»²¾È¤Î¤³¤È¡£ +も参照のこと。 .LP .\"O .B TERMCAP .\"O gives information on how to address a given terminal .\"O (or gives the name of a file containing such information). .B TERMCAP -¤Ï¡¢¸½ºß¤ÎüËö¾ðÊó¤Î¼èÆÀÀè -(¤¢¤ë¤¤¤Ï¤½¤Î¤è¤¦¤Ê¾ðÊ󤬽ñ¤«¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë̾) ¤òÍ¿¤¨¤ë¡£ +は、現在の端末情報の取得先 +(あるいはそのような情報が書かれているファイル名) を与える。 .LP .\"O .BR COLUMNS " and " LINES .\"O tell applications about the window size, possibly overriding the actual size. -.BR COLUMNS " ¤È " LINES -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¥¦¥¤¥ó¥É¥¦¤Î¥µ¥¤¥º¤òÅÁ¤¨¤ë¡£ -¼ÂºÝ¤Î¥µ¥¤¥º¤È¤Ï°ã¤¦ÃͤòÍ¿¤¨¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +.BR COLUMNS " と " LINES +アプリケーションにウインドウのサイズを伝える。 +実際のサイズとは違う値を与えることもできる。 .LP .\"O .BR PRINTER " or " LPDEST -.BR PRINTER " ¤Þ¤¿¤Ï " LPDEST +.BR PRINTER " または " LPDEST .\"O may specify the desired printer to use. .\"O See .\"O .BR lpr (1). -ÍѤ¤¤¿¤¤¥×¥ê¥ó¥¿¤ò»ØÄꤹ¤ë¡£ +用いたいプリンタを指定する。 .BR lpr (1) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .LP .\"O Etc. -¤Ê¤É¤Ê¤É... +などなど... .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Clearly there is a security risk here. .\"O Many a system command has been .\"O tricked into mischief by a user who specified unusual values for .\"O .BR IFS " or " LD_LIBRARY_PATH . -¤³¤ì¤é¤ÎÃæ¤Ë¤Ï¡¢ÌÀ¤é¤«¤Ë¥»¥­¥å¥ê¥Æ¥£¾å¤Î´í¸±¤¬Â¸ºß¤¹¤ë¡£ -¥æ¡¼¥¶¡¼¤¬ -.BR IFS " ¤ä " LD_LIBRARY_PATH -¤Ë°Û¾ï¤ÊÃͤòÍ¿¤¨¤¿¤³¤È¤Ë¤è¤Ã¤Æ¡¢ -¤³¤ì¤Þ¤Ç¿¤¯¤Î¥·¥¹¥Æ¥à¥³¥Þ¥ó¥É¤¬¤À¤Þ¤µ¤ì¤Æ¡¢ -¥·¥¹¥Æ¥à¤ò¤Ò¤É¤¤Ìܤˤ¢¤ï¤»¤Æ¤­¤¿¡£ +これらの中には、明らかにセキュリティ上の危険が存在する。 +ユーザーが +.BR IFS " や " LD_LIBRARY_PATH +に異常な値を与えたことによって、 +これまで多くのシステムコマンドがだまされて、 +システムをひどい目にあわせてきた。 .\"O There is also the risk of name space pollution. .\"O Programs like @@ -357,16 +357,16 @@ POSIX .\"O .BR RM , .\"O .BR YACC , .\"O etc.). -̾Á°¶õ´Ö¤¬±øÀ÷¤µ¤ì¤ë´í¸±À­¤â¸ºß¤¹¤ë¡£ +名前空間が汚染される危険性も存在する。 .I make -¤ä +や .I autoconf -¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ò -´Ä¶­¤Ë¤¢¤ë»÷¤¿¤è¤¦¤Ê̾Á°¤ÎÊÑ¿ô¤Ç¾å½ñ¤­¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë -(Ä̾ï¤Ï¤¹¤Ù¤ÆÂçʸ»ú¤ÎÊÑ¿ô¤òÍѤ¤¤ë)¡£ -¤¹¤Ê¤ï¤Á¡¢ÍøÍѤ·¤¿¤¤ C ¥³¥ó¥Ñ¥¤¥é¤Ï +のようなプログラムでは、デフォルトのユーティリティを +環境にある似たような名前の変数で上書きすることができる +(通常はすべて大文字の変数を用いる)。 +すなわち、利用したい C コンパイラは .B CC -¤ÇÁªÂò¤Ç¤­¤ë¡£¤Þ¤¿Æ±ÍÍ¤Ë +で選択できる。また同様に .BR MAKE , .BR AR , .BR AS , @@ -375,7 +375,7 @@ POSIX .BR LEX , .BR RM , .B YACC -¤Ê¤É¤âÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +なども用いることができる。 .\"O However, in some traditional uses such an environment variable .\"O gives options for the program instead of a pathname. .\"O Thus, one has @@ -389,22 +389,22 @@ POSIX .\"O .I gzip .\"O should consider renaming their option to .\"O .BR GZIP_OPT . -¤È¤³¤í¤¬°ìÊý¤Ç¤Ï¡¢¤³¤Î¤è¤¦¤ÊÊÑ¿ô¤ò -(¥Ñ¥¹Ì¾¤Ç¤Ï¤Ê¤¯) -¥×¥í¥°¥é¥à¤ËÂФ¹¤ë¥ª¥×¥·¥ç¥ó¤È¤·¤Æ°·¤¦¤è¤¦¤Êήµ·¤â¸ºß¤·¤Æ¤­¤¿¡£ -Î㤨¤Ð +ところが一方では、このような変数を +(パス名ではなく) +プログラムに対するオプションとして扱うような流儀も存在してきた。 +例えば .BR MORE , .BR LESS , .B GZIP -¤Ê¤É¤¬¤½¤¦¤Ç¤¢¤ë¡£ -¤³¤Î¤è¤¦¤ÊÍøÍÑË¡¤Ï´Ö°ã¤Ã¤Æ¤¤¤ë¤È¹Í¤¨¤ë¤Ù¤­¤Ç¡¢ -¿·¤·¤¤¥×¥í¥°¥é¥à¤Ç¤ÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +などがそうである。 +このような利用法は間違っていると考えるべきで、 +新しいプログラムでは避けるべきである。 .I gzip -¤Îºî¼Ô¤¿¤Á¤Ï¡¢¥ª¥×¥·¥ç¥ó¤òÍ¿¤¨¤ë´Ä¶­ÊÑ¿ô¤ò +の作者たちは、オプションを与える環境変数を .B GZIP_OPT -¤Ë²þ̾¤¹¤ë¤³¤È¤ò¹Í¤¨¤ë¤Û¤¦¤¬¤è¤¤¡£ +に改名することを考えるほうがよい。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bash (1), .BR csh (1), .BR login (1), diff --git a/draft/man7/epoll.7 b/draft/man7/epoll.7 index 39454fbd..c5c9e0be 100644 --- a/draft/man7/epoll.7 +++ b/draft/man7/epoll.7 @@ -31,14 +31,14 @@ .\" .TH EPOLL 7 2009-02-01 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O epoll \- I/O event notification facility -epoll \- I/O ¥¤¥Ù¥ó¥ÈÄÌÃε¡Ç½ +epoll \- I/O イベント通知機能 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .B epoll .\"O is a variant of .\"O .BR poll (2) @@ -49,14 +49,14 @@ epoll \- I/O .\"O .B epoll .\"O instance: .B epoll -¤Ï +は .BR poll (2) -¤Î°ì¼ï¤Ç¤¢¤ê¡¢¥¨¥Ã¥¸¥È¥ê¥¬¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤È -¥ì¥Ù¥ë¥È¥ê¥¬¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î¤É¤Á¤é¤È¤·¤Æ¤â»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¡¢ -´Æ»ë¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¿ô¤¬Â¿¤¤¾ì¹ç¤Ë¤â»ÈÍѤǤ­¤ë¡£ +の一種であり、エッジトリガインタフェースと +レベルトリガインタフェースのどちらとしても使用することができ、 +監視するファイルディスクリプタの数が多い場合にも使用できる。 .B epoll -¥¤¥ó¥¹¥¿¥ó¥¹¤ÎºîÀ®¤ä´ÉÍý¤ò¹Ô¤¦¤¿¤á¤Ë -°Ê²¼¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë: +インスタンスの作成や管理を行うために +以下のシステムコールが提供されている: .IP * 3 .\"O An .\"O .B epoll @@ -68,39 +68,39 @@ epoll \- I/O .\"O extends the functionality of .\"O .BR epoll_create (2).) .B epoll -¥¤¥ó¥¹¥¿¥ó¥¹¤Ï +インスタンスは .BR epoll_create (2) -¤ÇºîÀ®¤µ¤ì¤ë¡£ +で作成される。 .BR epoll_create (2) -¤ÏºîÀ®¤·¤¿ epoll ¥¤¥ó¥¹¥¿¥ó¥¹¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -(¤â¤Ã¤È¿·¤·¤¤ +は作成した epoll インスタンスを参照するファイルディスクリプタを返す。 +(もっと新しい .BR epoll_create1 (2) -¤Ç¤Ï¡¢ +では、 .BR epoll_create (2) -¤Îµ¡Ç½¤¬³ÈÄ¥¤µ¤ì¤Æ¤¤¤ë)¡£ +の機能が拡張されている)。 .IP * .\"O Interest in particular file descriptors is then registered via .\"O .BR epoll_ctl (2). -ÆÃÄê¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ¹¤ë´Æ»ëÆâÍƤò +特定のファイルディスクリプタに対する監視内容を .BR epoll_ctl (2) -¤ÇÅÐÏ¿¤¹¤ë¡£ +で登録する。 .\"O The set of file descriptors currently registered on an .\"O .B epoll .\"O instance is sometimes called an .\"O .I epoll .\"O set. .B epoll -¥¤¥ó¥¹¥¿¥ó¥¹¤Ë¸½ºßÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î½¸¹ç¤Ï +インスタンスに現在登録されているファイルディスクリプタの集合は .I epoll -½¸¹ç¤È¸Æ¤Ð¤ì¤ë¤³¤È¤â¤¢¤ë¡£ +集合と呼ばれることもある。 .IP * .\"O Finally, the actual wait is started by .\"O .BR epoll_wait (2). -ºÇ¸å¤Ë +最後に .BR epoll_wait (2) -¤Ç¼ÂºÝ¤Î¥¤¥Ù¥ó¥ÈÂÔ¤Á¤ò³«»Ï¤¹¤ë¡£ +で実際のイベント待ちを開始する。 .\"O .SS Level-Triggered and Edge-Triggered -.SS ¥ì¥Ù¥ë¥È¥ê¥¬¤È¥¨¥Ã¥¸¥È¥ê¥¬ +.SS レベルトリガとエッジトリガ .\"O The .\"O .B epoll .\"O event distribution interface is able to behave both as edge-triggered @@ -110,24 +110,24 @@ epoll \- I/O .\"O Suppose that .\"O this scenario happens: .B epoll -¥¤¥Ù¥ó¥ÈÇÛÁ÷ (distribution) ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¡¢ -¥¨¥Ã¥¸¥È¥ê¥¬ (ET) ¤È¤·¤Æ¤â¥ì¥Ù¥ë¥È¥ê¥¬ (LT) ¤È¤·¤Æ¤âÆ°ºî¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -Æó¤Ä¤ÎÇÛÁ÷µ¡¹½¤Î°ã¤¤¤Ï¡¢¼¡¤Î¤è¤¦¤ËÀâÌÀ¤Ç¤­¤ë¡£ -¤³¤Î¤è¤¦¤Ê¥·¥Ê¥ê¥ª¤¬µ¯¤³¤Ã¤¿¤È¤·¤è¤¦: +イベント配送 (distribution) インタフェースは、 +エッジトリガ (ET) としてもレベルトリガ (LT) としても動作させることができる。 +二つの配送機構の違いは、次のように説明できる。 +このようなシナリオが起こったとしよう: .IP 1. 3 .\"O The file descriptor that represents the read side of a pipe .\"O .RI ( rfd ) .\"O is registered on the .\"O .B epoll .\"O instance. -¥Ñ¥¤¥×¤ÎÆɤ߹þ¤ß¦¤òɽ¤¹¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +パイプの読み込み側を表すファイルディスクリプタ .RI ( rfd ) -¤¬ +が .B epoll -¥¤¥ó¥¹¥¿¥ó¥¹¤ËÅÐÏ¿¤µ¤ì¤ë¡£ +インスタンスに登録される。 .IP 2. .\"O A pipe writer writes 2 kB of data on the write side of the pipe. -¥Ñ¥¤¥×¤Ø½ñ¤­¹þ¤à¥×¥í¥°¥é¥à¤¬ 2 kB ¤Î¥Ç¡¼¥¿¤ò¥Ñ¥¤¥×¤Î½ñ¤­¹þ¤ß¦¤Ø½ñ¤­¹þ¤à¡£ +パイプへ書き込むプログラムが 2 kB のデータをパイプの書き込み側へ書き込む。 .IP 3. .\"O A call to .\"O .BR epoll_wait (2) @@ -135,21 +135,21 @@ epoll \- I/O .\"O .I rfd .\"O as a ready file descriptor. .BR epoll_wait (2) -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢Æɤ߹þ¤ß²Äǽ (ready) ¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤È¤·¤Æ +を呼び出すと、読み込み可能 (ready) なファイルディスクリプタとして .I rfd -¤¬Ê֤롣 +が返る。 .IP 4. .\"O The pipe reader reads 1 kB of data from .\"O .IR rfd . -¥Ñ¥¤¥×¤«¤éÆɤ߽Ф¹¥×¥í¥°¥é¥à¤¬¡¢1 kB ¤Î¥Ç¡¼¥¿¤ò +パイプから読み出すプログラムが、1 kB のデータを .I rfd -¤«¤éÆɤ߽Ф¹¡£ +から読み出す。 .IP 5. .\"O A call to .\"O .BR epoll_wait (2) .\"O is done. .BR epoll_wait (2) -¤Î¸Æ¤Ó½Ð¤·¤¬¹Ô¤ï¤ì¤ë¡£ +の呼び出しが行われる。 .PP .\"O If the .\"O .I rfd @@ -169,43 +169,43 @@ epoll \- I/O .\"O The reason for this is that edge-triggered mode only .\"O delivers events when changes occur on the monitored file descriptor. .I rfd -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ +ファイルディスクリプタが .B EPOLLET -¥Õ¥é¥° (¥¨¥Ã¥¸¥È¥ê¥¬) ¤ò»È¤Ã¤Æ +フラグ (エッジトリガ) を使って .B epoll -¤ËÄɲ䵤ì¤Æ¤¤¤ë¤È¡¢ -ÍøÍѲÄǽ¤Ê¥Ç¡¼¥¿¤¬¥Õ¥¡¥¤¥ëÆþÎϥХåե¡¤Ë¤Þ¤À¸ºß¤¹¤ë¤Ë¤â¤«¤«¤ï¤é¤º -¥¹¥Æ¥Ã¥× +に追加されていると、 +利用可能なデータがファイル入力バッファにまだ存在するにもかかわらず +ステップ .B 5 -¤Î +の .BR epoll_wait (2) -¤Î¸Æ¤Ó½Ð¤·¤Ç¥Ï¥ó¥°¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¤½¤Î°ìÊý¤Ç¡¢¥ê¥â¡¼¥È¤ÎÀܳÀè (peer) ¤Ï´û¤ËÁ÷¤é¤ì¤¿¥Ç¡¼¥¿¤Ë -´ð¤Å¤¤¤Æ±þÅú¤ò´üÂÔ¤·¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤Î¤è¤¦¤Ê¤³¤È¤¬µ¯¤³¤ëÍýͳ¤Ï¡¢¥¨¥Ã¥¸¥È¥ê¥¬¥¤¥Ù¥ó¥ÈÇÛÁ÷¤Ç¤Ï¡¢ -¥â¥Ë¥¿¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Ç¥¤¥Ù¥ó¥È¤¬µ¯¤Ã¤¿¤È¤­¤Ë¤Î¤ß¥¤¥Ù¥ó¥È¤¬ -ÇÛÁ÷¤µ¤ì¤ë¤¿¤á¤Ç¤¢¤ë¡£ +の呼び出しでハングする可能性がある。 +その一方で、リモートの接続先 (peer) は既に送られたデータに +基づいて応答を期待しているかもしれない。 +このようなことが起こる理由は、エッジトリガイベント配送では、 +モニタしているファイルでイベントが起ったときにのみイベントが +配送されるためである。 .\"O So, in step .\"O .B 5 .\"O the caller might end up waiting for some data that is already present inside .\"O the input buffer. -¤·¤¿¤¬¤Ã¤Æ¡¢¥¹¥Æ¥Ã¥× +したがって、ステップ .B 5 -¤Ç¤Ï¡¢¸Æ¤Ó½Ð¤·Â¦¤Ï·ë²ÌŪ¤Ë -ÆþÎϥХåե¡Æâ¤Ë¤¹¤Ç¸ºß¤¹¤ë¥Ç¡¼¥¿¤òÂԤĤ³¤È¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +では、呼び出し側は結果的に +入力バッファ内にすで存在するデータを待つことになるかもしれない。 .\"O In the above example, an event on .\"O .I rfd .\"O will be generated because of the write done in .\"O .B 2 .\"O and the event is consumed in .\"O .BR 3 . -¾åµ­¤ÎÎã¤Ç¤Ï¡¢ +上記の例では、 .B 2 -¤Ç¹Ô¤ï¤ì¤¿½ñ¤­¹þ¤ß¤Ë¤è¤Ã¤Æ +で行われた書き込みによって .I rfd -¤Ë´Ø¤¹¤ë¥¤¥Ù¥ó¥È¤¬À¸À®¤µ¤ì¡¢ +に関するイベントが生成され、 .B 3 -¤Ç¥¤¥Ù¥ó¥È¤¬¾ÃÈñ (consume) ¤µ¤ì¤ë¡£ +でイベントが消費 (consume) される。 .\"O Since the read operation done in .\"O .B 4 .\"O does not consume the whole buffer data, the call to @@ -214,39 +214,39 @@ epoll \- I/O .\"O .B 5 .\"O might block indefinitely. .B 4 -¤Ç¹Ô¤ï¤ì¤ëÆɤ߹þ¤ßÁàºî¤Ç¤Ï¡¢Á´Éô¤Î¥Ð¥Ã¥Õ¥¡¥Ç¡¼¥¿¤ò¾ÃÈñ¤·¤Ê¤¤¤Î¤Ç¡¢ -¥¹¥Æ¥Ã¥× +で行われる読み込み操作では、全部のバッファデータを消費しないので、 +ステップ .B 5 -¤Ç¹Ô¤ï¤ì¤ë +で行われる .BR epoll_wait (2) -¤Î¸Æ¤Ó½Ð¤·¤¬ -̵´ü¸Â¤ËÄä»ß (block) ¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +の呼び出しが +無期限に停止 (block) するかもしれない。 .\"O An application that employs the .\"O .B EPOLLET .\"O flag should use nonblocking file descriptors to avoid having a blocking .\"O read or write starve a task that is handling multiple file descriptors. .B EPOLLET -¥Õ¥é¥°¤òºÎÍѤ¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¥Ö¥í¥Ã¥¯¤·¤Ê¤¤ (nonblocking) ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò -»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï¡¢¥Ö¥í¥Ã¥¯¤µ¤ì¤ëÆɤ߹þ¤ß¤ä½ñ¤­¹þ¤ß¤Ë¤è¤Ã¤Æ¡¢ -Ê£¿ô¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò°·¤¦¥¿¥¹¥¯¤¬ -Ää»ß¤·¤Æ¤·¤Þ¤¦¤Î¤òÈò¤±¤ë¤¿¤á¤Ç¤¢¤ë¡£ +フラグを採用するアプリケーションでは、 +インタフェースはブロックしない (nonblocking) ファイルディスクリプタを +使うべきである。 +これは、ブロックされる読み込みや書き込みによって、 +複数のファイルディスクリプタを扱うタスクが +停止してしまうのを避けるためである。 .\"O The suggested way to use .\"O .B epoll .\"O as an edge-triggered .\"O .RB ( EPOLLET ) .\"O interface is as follows: .B epoll -¤ò¥¨¥Ã¥¸¥È¥ê¥¬ +をエッジトリガ .RB ( EPOLLET ) -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤È¤·¤Æ»È¤¦¤¿¤á¤ËÄó°Æ¤µ¤ì¤ëÊýË¡¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +インタフェースとして使うために提案される方法は以下の通りである。 .RS .TP 4 .B i .\"O with nonblocking file descriptors; and -¥Ö¥í¥Ã¥¯¤·¤Ê¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤È¶¦¤Ë»È¤¦¡£ +ブロックしないファイルディスクリプタと共に使う。 .TP .B ii .\"O by waiting for an event only after @@ -256,11 +256,11 @@ epoll \- I/O .\"O return .\"O .BR EAGAIN . .BR read (2) -¤Þ¤¿¤Ï +または .BR write (2) -¤¬ +が .B EAGAIN -¤òÊÖ¤·¤¿¸å¤Ç¤Î¤ß¡¢¥¤¥Ù¥ó¥È¤òÂԤġ£ +を返した後でのみ、イベントを待つ。 .RE .PP .\"O By contrast, when used as a level-triggered interface @@ -272,16 +272,16 @@ epoll \- I/O .\"O .BR poll (2), .\"O and can be used wherever the latter is used since it shares the .\"O same semantics. -°ìÊý¡¢¥ì¥Ù¥ë¥È¥ê¥¬¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤È¤·¤Æ»È¤¦¾ì¹ç - (¤³¤Á¤é¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡¢ +一方、レベルトリガインタフェースとして使う場合 + (こちらがデフォルトである、 .B EPOLLET -¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç)¡¢ +が指定されなかった場合)、 .B epoll -¤Ïñ¤Ë¹â®¤Ê +は単に高速な .BR poll (2) -¤Ç¤¢¤ê¡¢»È¤¤Êý¤¬Æ±¤¸¤Ê¤Î¤Ç¡¢ +であり、使い方が同じなので、 .BR poll (2) -¤¬»È¤ï¤ì¤Æ¤¤¤ë¤È¤³¤í¤Ç¤Ï¤É¤³¤Ç¤â»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +が使われているところではどこでも使用することができる。 .\"O Since even with edge-triggered .\"O .BR epoll , @@ -292,17 +292,17 @@ epoll \- I/O .\"O .B epoll .\"O to disable the associated file descriptor after the receipt of an event with .\"O .BR epoll_wait (2). -¥¨¥Ã¥¸¥È¥ê¥¬¤ò»È¤Ã¤¿¾ì¹ç¤Ç¤â¡¢Ê£¿ô¤Î¥Ç¡¼¥¿¤ò¼õ¿®¤¹¤ë¤ÈÊ£¿ô¤Î +エッジトリガを使った場合でも、複数のデータを受信すると複数の .B epoll -¥¤¥Ù¥ó¥È¤¬À¸À®¤µ¤ì¤ë¤Î¤Ç¡¢ -¸Æ¤Ó½Ð¤·Â¦¤Ë¤Ï +イベントが生成されるので、 +呼び出し側には .B EPOLLONESHOT -¥Õ¥é¥°¤ò»ØÄꤹ¤ë¥ª¥×¥·¥ç¥ó¤¬¤¢¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï +フラグを指定するオプションがある。 +このフラグは .B epoll -¤ËÂФ·¤Æ¡¢ +に対して、 .BR epoll_wait (2) -¤Ë¤è¤ë¥¤¥Ù¥ó¥È¤ò¼õ¿®¤·¤¿¸å¤Ç¡¢´ØÏ¢¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò̵¸ú¤Ë¤µ¤»¤ë¡£ +によるイベントを受信した後で、関連するファイルディスクリプタを無効にさせる。 .\"O When the .\"O .B EPOLLONESHOT .\"O flag is specified, @@ -311,18 +311,18 @@ epoll \- I/O .\"O with .\"O .BR EPOLL_CTL_MOD . .B EPOLLONESHOT -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +フラグが指定された場合、 .BR epoll_ctl (2) -¤Ë +に .B EPOLL_CTL_MOD -¤ò»ØÄꤷ¤Æ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òºÆÅÙ»ÈÍѤǤ­¤ë¤è¤¦¤Ë¤¹¤ë¤Î¤Ï¡¢ -¸Æ¤Ó½Ð¤·Â¦¤ÎÀÕǤ¤Ç¤¢¤ë¡£ +を指定してファイルディスクリプタを再度使用できるようにするのは、 +呼び出し側の責任である。 .\"O .SS /proc interfaces -.SS /proc ¥¤¥ó¥¿¥Õ¥§¡¼¥¹ +.SS /proc インタフェース .\"O The following interfaces can be used to limit the amount of .\"O kernel memory consumed by epoll: -epoll ¤¬¾ÃÈñ¤¹¤ë¥«¡¼¥Í¥ë¥á¥â¥ê¤ÎÎ̤òÀ©¸Â¤¹¤ë¤¿¤á¤Ë¡¢ -°Ê²¼¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +epoll が消費するカーネルメモリの量を制限するために、 +以下のインタフェースを使用することができる。 .TP .\" Following was added in 2.6.28, but them removed in 2.6.29 .\" .TP @@ -331,7 +331,7 @@ epoll .\" that can be created per real user ID. .TP .\"O .IR /proc/sys/fs/epoll/max_user_watches " (since Linux 2.6.28)" -.IR /proc/sys/fs/epoll/max_user_watches " (Linux 2.6.28 °Ê¹ß)" +.IR /proc/sys/fs/epoll/max_user_watches " (Linux 2.6.28 以降)" .\"O This specifies a limit on the total number of .\"O file descriptors that a user can register across .\"O all epoll instances on the system. @@ -339,24 +339,24 @@ epoll .\"O Each registered file descriptor costs roughly 90 bytes on a 32-bit kernel, .\"O and roughly 160 bytes on a 64-bit kernel. .\"O Currently, -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¤¢¤ë¥æ¡¼¥¶¤¬¥·¥¹¥Æ¥à¾å¤ÎÁ´¤Æ¤Î epoll ¥¤¥ó¥¹¥¿¥ó¥¹¤Ë -ÅÐÏ¿¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÁí¿ô¤Î¾å¸Â¤òµ¬Äꤹ¤ë¡£ -¤³¤Î¾å¸Â¤Ï¼Â¥æ¡¼¥¶ ID ñ°Ì¤Ç¤¢¤ë¡£ -ÅÐÏ¿¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ 1 ¤Ä¤¬¾ÃÈñ¤¹¤ë¥á¥â¥êÎ̤ϡ¢ -32 ¥Ó¥Ã¥È¥«¡¼¥Í¥ë¤Ç¤ª¤è¤½ 90 ¥Ð¥¤¥È¡¢ -64 ¥Ó¥Ã¥È¥«¡¼¥Í¥ë¤Ç¤ª¤è¤½ 160 ¥Ð¥¤¥È¤Ç¤¢¤ë¡£ +このファイルは、あるユーザがシステム上の全ての epoll インスタンスに +登録できるファイルディスクリプタの総数の上限を規定する。 +この上限は実ユーザ ID 単位である。 +登録されたファイルディスクリプタ 1 つが消費するメモリ量は、 +32 ビットカーネルでおよそ 90 バイト、 +64 ビットカーネルでおよそ 160 バイトである。 .\" 2.6.29 (in 2.6.28, the default was 1/32 of lowmem) .\"O the default value for .\"O .I max_user_watches .\"O is 1/25 (4%) of the available low memory, .\"O divided by the registration cost in bytes. -.\"O motoki: low memory ¤ÎÌõ¤Ë¼«¿®¤Ê¤·¡£ -¸½ºß¤Î¤È¤³¤í¡¢ +.\"O motoki: low memory の訳に自信なし。 +現在のところ、 .I max_user_watches -¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤϡ¢ÍøÍѲÄǽ¤Ê¥á¥â¥ê²¼¸Â¤Î 1/25 (4%) ¤Ç¤¢¤ê¡¢ -ÅÐÏ¿¤Ç¾ÃÈñ¤µ¤ì¤ë¥á¥â¥êÎÌ (¥Ð¥¤¥Èñ°Ì) ¤Ç³ä¤Ã¤¿ÃͤȤʤ롣 +のデフォルト値は、利用可能なメモリ下限の 1/25 (4%) であり、 +登録で消費されるメモリ量 (バイト単位) で割った値となる。 .\"O .SS Example for Suggested Usage -.SS ¤ª¤¹¤¹¤á¤Ê»ÈÍÑÎã +.SS おすすめな使用例 .\"O While the usage of .\"O .B epoll .\"O when employed as a level-triggered interface does have the same @@ -364,14 +364,14 @@ epoll .\"O .BR poll (2), .\"O the edge-triggered usage requires more clarification to avoid stalls .\"O in the application event loop. -¥ì¥Ù¥ë¥È¥ê¥¬¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤È¤·¤Æ»ÈÍѤ¹¤ë¤È¤­¤Î +レベルトリガインタフェースとして使用するときの .B epoll -¤Î»È¤¤Êý¤Ï +の使い方は .BR poll (2) -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -¤·¤«¤·¥¨¥Ã¥¸¥È¥ê¥¬¤È¤·¤Æ»È¤¦¾ì¹ç¤Ï¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥¤¥Ù¥ó¥È¥ë¡¼¥×¤Ç¥¹¥È¡¼¥ë (stall) ¤·¤Ê¤¤¤è¤¦¤Ë¡¢ -»È¤¤Êý¤ò¤è¤êÌÀ³Î¤Ë¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¡£ +と同じである。 +しかしエッジトリガとして使う場合は、 +アプリケーションのイベントループでストール (stall) しないように、 +使い方をより明確にしておく必要がある。 .\"O In this example, listener is a .\"O nonblocking socket on which .\"O .BR listen (2) @@ -384,18 +384,18 @@ epoll .\"O .BR read (2) .\"O or .\"O .BR write (2). -¤³¤ÎÎã¤Ç¤Ï¡¢¥ê¥¹¥Ê¤Ï¥Ö¥í¥Ã¥¯¤·¤Ê¤¤¥½¥±¥Ã¥È¤Ç¤¢¤ê¡¢ +この例では、リスナはブロックしないソケットであり、 .BR listen (2) -¤¬¸Æ¤Ð¤ì¤Æ¤¤¤ë¡£ -´Ø¿ô +が呼ばれている。 +関数 .I do_use_fd() -¤Ï¡¢ +は、 .BR read (2) -¤Þ¤¿¤Ï +または .BR write (2) -¤Ë¤è¤Ã¤Æ +によって .B EAGAIN -¤¬ÊÖ¤µ¤ì¤ë¤Þ¤Ç¤Ï¡¢¿·¤·¤¤½àÈ÷ºÑ¤ß¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò»È¤¦¡£ +が返されるまでは、新しい準備済みのファイルディスクリプタを使う。 .\"O An event-driven state machine application should, after having received .\"O .BR EAGAIN , .\"O record its current state so that at the next call to @@ -405,16 +405,16 @@ epoll .\"O or .\"O .BR write (2) .\"O from where it stopped before. -¥¤¥Ù¥ó¥È¶îÆ°¥¹¥Æ¡¼¥È¥Þ¥·¥ó¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢ +イベント駆動ステートマシンアプリケーションは、 .B EAGAIN -¤ò¼õ¿®¤·¤¿¸å¡¢¥«¥ì¥ó¥È¤Î¾õÂÖ¤òµ­Ï¿¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢¼¡¤Î +を受信した後、カレントの状態を記録しておくべきである。 +これにより、次の .I do_use_fd() -¸Æ¤Ó½Ð¤·¤Î¤È¤­¤Ë¡¢°ÊÁ°¤ËÄä»ß¤·¤¿¤È¤³¤í¤«¤é +呼び出しのときに、以前に停止したところから .BR read (2) -¤Þ¤¿¤Ï +または .BR write (2) -¤ò·Ñ³¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を継続することができる。 .in +4n .nf @@ -485,50 +485,50 @@ for (;;) { .\"O .BR epoll_ctl (2) .\"O with .\"O .BR EPOLL_CTL_MOD . -¥¨¥Ã¥¸¥È¥ê¥¬¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤È¤·¤Æ»È¤¦¾ì¹ç¡¢À­Ç½¾å¤ÎÍýͳ¤Ë¤è¤ê¡¢ -°ìÅÙ +エッジトリガインタフェースとして使う場合、性能上の理由により、 +一度 .RB ( EPOLLIN | EPOLLOUT ) -¤ò»ØÄꤷ¤Æ¤«¤é +を指定してから .RB ( EPOLL_CTL_ADD -¤Ç) ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò +で) ファイルディスクリプタを .B epoll -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ËÄɲ乤뤳¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢ +インタフェースに追加することができる。 +これにより、 .BR epoll_ctl (2) -¤Ë +に .B EPOLL_CTL_MOD -¤ò»ØÄꤷ¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¤Ç +を指定して呼び出すことで .B EPOLLIN -¤È +と .B EPOLLOUT -¤ÎϢ³Ū¤ÊÀÚ¤êÂؤ¨¤¬Èò¤±¤é¤ì¤ë¡£ +の連続的な切り替えが避けられる。 .\"O .SS Questions and Answers -.SS ¼ÁÌä¤È²òÅú +.SS 質問と解答 .TP 4 .B Q0 .\"O What is the key used to distinguish the file descriptors registered in an .\"O .B epoll .\"O set? .B epoll -½¸¹çÆâ¤ÎÅÐÏ¿¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¶èÊ̤¹¤ë¤Ë¤Ï¡¢ -²¿¤ò¥­¡¼¤È¤·¤Æ»È¤¨¤Ð¤è¤¤¤«¡© +集合内の登録されたファイルディスクリプタを区別するには、 +何をキーとして使えばよいか? .TP .B A0 .\"O The key is the combination of the file descriptor number and .\"O the open file description .\"O (also known as an "open file handle", .\"O the kernel's internal representation of an open file). -¥­¡¼¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ÈÖ¹æ¤È¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò (open file -description) ¤ÎÁȤǤ¢¤ë (¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¤Ï "open file handle" ¤È¤â -¸Æ¤Ð¤ì¡¢¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥«¡¼¥Í¥ë¤ÎÆâÉôɽ¸½¤Ç¤¢¤ë)¡£ +キーはファイルディスクリプタ番号とオープンファイル記述 (open file +description) の組である (オープンファイル記述は "open file handle" とも +呼ばれ、オープンされたファイルのカーネルの内部表現である)。 .TP .B Q1 .\"O What happens if you register the same file descriptor on an .\"O .B epoll .\"O instance twice? -1 ¤Ä¤Î +1 つの .B epoll -¥¤¥ó¥¹¥¿¥ó¥¹¤ËƱ¤¸¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò 2 ²óÅÐÏ¿¤¹¤ë¤È¤É¤¦¤Ê¤ë¤«¡© +インスタンスに同じファイルディスクリプタを 2 回登録するとどうなるか? .TP .B A1 .\"O You will probably get @@ -541,17 +541,17 @@ description) .\"O descriptor to the same .\"O .B epoll .\"O instance. -¤¿¤Ö¤ó +たぶん .B EEXIST -¤ò¼õ¤±¼è¤ë¤À¤í¤¦¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢Æ±¤¸ +を受け取るだろう。 +しかしながら、同じ .B epoll -¥¤¥ó¥¹¥¿¥ó¥¹¤ËÂФ·¤ÆÊ£À½¤µ¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÄɲ乤뤳¤È¤Ï²Äǽ¤Ç¤¢¤ë +インスタンスに対して複製されたディスクリプタを追加することは可能である .RB ( dup (2), .BR dup2 (2), .BR fcntl (2) .B F_DUPFD -¤Ê¤É)¡£ +など)。 .\" But a descriptor duplicated by fork(2) can't be added to the .\" set, because the [file *, fd] pair is already in the epoll set. .\" That is a somewhat ugly inconsistency. On the one hand, a child process @@ -571,10 +571,10 @@ description) .\"O if the duplicate file descriptors are registered with different .\"O .I events .\"O masks. -Ê£À½¤·¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò°Û¤Ê¤ë +複製したファイルディスクリプタを異なる .I events -¥Þ¥¹¥¯¤ÇÅÐÏ¿¤¹¤ì¤Ð¡¢¥¤¥Ù¥ó¥È¤ò¥Õ¥£¥ë¥¿¥ê¥ó¥°¤¹¤ë¤Î¤Ë -¤³¤Îµ¡Ç½¤ÏÍ­ÍѤʼêË¡¤Ç¤¢¤ë¡£ +マスクで登録すれば、イベントをフィルタリングするのに +この機能は有用な手法である。 .TP .B Q2 .\"O Can two @@ -583,26 +583,26 @@ description) .\"O If so, are events reported to both .\"O .B epoll .\"O file descriptors? -2 ¤Ä¤Î +2 つの .B epoll -¥¤¥ó¥¹¥¿¥ó¥¹¤¬Æ±¤¸¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÂÔ¤Á¼õ¤±¤ë¤³¤È¤Ï²Äǽ¤«¡© -¤â¤·²Äǽ¤Ç¤¢¤ì¤Ð¡¢¥¤¥Ù¥ó¥È¤ÏξÊý¤Î +インスタンスが同じファイルディスクリプタを待ち受けることは可能か? +もし可能であれば、イベントは両方の .B epoll -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÊó¹ð¤µ¤ì¤ë¤«¡© +ファイルディスクリプタに報告されるか? .TP .B A2 .\"O Yes, and events would be reported to both. .\"O However, careful programming may be needed to do this correctly. -¥¤¥Ù¥ó¥È¤ÏξÊý¤ËÊó¹ð¤µ¤ì¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢¤³¤ì¤òÀµ¤·¤¯°·¤¦¤Ë¤ÏÃí°Õ¿¼¤¯¥×¥í¥°¥é¥ß¥ó¥°¤¹¤ëɬÍפ¬ -¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +イベントは両方に報告される。 +しかしながら、これを正しく扱うには注意深くプログラミングする必要が +あるかもしれない。 .TP .B Q3 .\"O Is the .\"O .B epoll .\"O file descriptor itself poll/epoll/selectable? .B epoll -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¼«¿È¤Ï poll/epoll/select ¤¬²Äǽ¤«¡© +ファイルディスクリプタ自身は poll/epoll/select が可能か? .TP .B A3 .\"O Yes. @@ -610,18 +610,18 @@ description) .\"O .B epoll .\"O file descriptor has events waiting then it will .\"O indicate as being readable. -²Äǽ¤Ç¤¢¤ë¡£ +可能である。 .B epoll -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë½èÍýÂÔ¤Á¤Î¥¤¥Ù¥ó¥È¤¬¤¢¤ë¾ì¹ç¤Ï¡¢ -Æɤ߽Ф·²Äǽ¤À¤ÈÄÌÃΤµ¤ì¤ë¤³¤È¤À¤í¤¦¡£ +ファイルディスクリプタに処理待ちのイベントがある場合は、 +読み出し可能だと通知されることだろう。 .TP .B Q4 .\"O What happens if one attempts to put an .\"O .B epoll .\"O file descriptor into its own file descriptor set? .B epoll -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¼«¿È¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤Ë -Æþ¤ì¤è¤¦¤È¤¹¤ë¤È¤É¤¦¤Ê¤ë¤«¡© +ファイルディスクリプタを自身のファイルディスクリプタ集合に +入れようとするとどうなるか? .TP .B A4 .\"O The @@ -634,48 +634,48 @@ description) .\"O .B epoll .\"O file descriptor set. .BR epoll_ctl (2) -¤Î¸Æ¤Ó½Ð¤·¤Ï +の呼び出しは .RB ( EINVAL -¤Ç) ¼ºÇÔ¤¹¤ë¤À¤í¤¦¡£ -¤¿¤À¤· +で) 失敗するだろう。 +ただし .B epoll -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¾¤Î +ファイルディスクリプタを他の .B epoll -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤ÎÆâÉô¤ËÄɲ乤뤳¤È¤Ï²Äǽ¤Ç¤¢¤ë¡£ +ファイルディスクリプタ集合の内部に追加することは可能である。 .TP .B Q5 .\"O Can I send an .\"O .B epoll .\"O file descriptor over a UNIX domain socket to another process? .B epoll -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤Ç¾¤Î¥×¥í¥»¥¹¤ËÁ÷¤ë¤³¤È¤Ï²Äǽ¤«¡© +ファイルディスクリプタを UNIX ドメインソケットで他のプロセスに送ることは可能か? .TP .B A5 .\"O Yes, but it does not make sense to do this, since the receiving process .\"O would not have copies of the file descriptors in the .\"O .B epoll .\"O set. -²Äǽ¤À¤¬¡¢¤³¤ì¤ò¤¹¤ë¤³¤È¤Ë°ÕÌ£¤Ï¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¡¢¼õ¿®Â¦¤Î¥×¥í¥»¥¹¤¬ +可能だが、これをすることに意味はない。 +なぜなら、受信側のプロセスが .B epoll -½¸¹çÆâ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¥³¥Ô¡¼¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +集合内のファイルディスクリプタのコピーを持っていないからである。 .TP .B Q6 .\"O Will closing a file descriptor cause it to be removed from all .\"O .B epoll .\"O sets automatically? -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¯¥í¡¼¥º¤¹¤ë¤È¡¢¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÁ´¤Æ¤Î +ファイルディスクリプタをクローズすると、そのファイルディスクリプタは全ての .B epoll -½¸¹ç¤«¤é¼«Æ°Åª¤Ëºï½ü¤µ¤ì¤ë¤«¡© +集合から自動的に削除されるか? .TP .B A6 .\"O Yes, but be aware of the following point. -ºï½ü¤µ¤ì¤ë¤¬¡¢°Ê²¼¤ÎÅÀ¤ËÃí°Õ¤¬É¬ÍפǤ¢¤ë¡£ +削除されるが、以下の点に注意が必要である。 .\"O A file descriptor is a reference to an open file description (see .\"O .BR open (2)). -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò +ファイルディスクリプタはオープンファイル記述 .RB ( open (2) -»²¾È) ¤Ø¤Î»²¾È¤Ç¤¢¤ë¡£ +参照) への参照である。 .\"O Whenever a descriptor is duplicated via .\"O .BR dup (2), .\"O .BR dup2 (2), @@ -685,20 +685,20 @@ description) .\"O .BR fork (2), .\"O a new file descriptor referring to the same open file description is .\"O created. -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÊ£À½¤ò +ディスクリプタの複製を .BR dup (2), .BR dup2 (2), .BR fcntl (2) -¤Î +の .B F_DUPFD -¤ä +や .BR fork (2) -·Ðͳ¤Ç¹Ô¤¦Å٤ˡ¢Æ±¤¸¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¤ò»²¾È¤¹¤ë¿·µ¬¤Î¥Õ¥¡¥¤¥ë -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬À¸À®¤µ¤ì¤ë¡£ +経由で行う度に、同じオープンファイル記述を参照する新規のファイル +ディスクリプタが生成される。 .\"O An open file description continues to exist until all .\"O file descriptors referring to it have been closed. -¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¼«ÂΤϡ¢¼«¿È¤ò»²¾È¤¹¤ëÁ´¤Æ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ -¤¬¥¯¥í¡¼¥º¤µ¤ì¤ë¤Þ¤Ç¸ºß¤·Â³¤±¤ë¡£ +オープンファイル記述自体は、自身を参照する全てのファイルディスクリプタ +がクローズされるまで存在し続ける。 .\"O A file descriptor is removed from an .\"O .B epoll .\"O set only after all the file descriptors referring to the underlying @@ -706,52 +706,52 @@ description) .\"O (or before if the descriptor is explicitly removed using .\"O .BR epoll_ctl (2) .\"O .BR EPOLL_CTL_DEL ). -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ +ファイルディスクリプタが .B epoll -½¸¹ç¤«¤éºï½ü¤µ¤ì¤ë¤Î¤Ï¡¢Âбþ¤¹¤ë¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¤ò»²¾È¤·¤Æ¤¤¤ë -Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥¯¥í¡¼¥º¤µ¤ì¤¿¸å¤Ç¤¢¤ë +集合から削除されるのは、対応するオープンファイル記述を参照している +全てのファイルディスクリプタがクローズされた後である .RB ( epoll_ctl (2) .B EPOLL_CTL_DEL -¤ò»È¤Ã¤Æ¤½¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÌÀ¼¨Åª¤Ëºï½ü¤·¤¿¾ì¹ç¤Ë¤âºï½ü¤µ¤ì¤ë)¡£ +を使ってそのディスクリプタを明示的に削除した場合にも削除される)。 .\"O This means that even after a file descriptor that is part of an .\"O .B epoll .\"O set has been closed, .\"O events may be reported for that file descriptor if other file .\"O descriptors referring to the same underlying file description remain open. -¤³¤Î¤³¤È¤Ï¡¢ +このことは、 .B epoll -½¸¹ç¤Ë°¤·¤Æ¤¤¤ë¤¢¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¯¥í¡¼¥º¤·¤¿¸å¤Ç¤¢¤Ã¤Æ¤â¡¢ -Ʊ¤¸¥Õ¥¡¥¤¥ëµ­½Ò¤ò»²¾È¤¹¤ë¾¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë´Ö¤Ï¡¢ -¥¯¥í¡¼¥º¤·¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿°¸¤Ë¥¤¥Ù¥ó¥È¤¬Êó¹ð¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¤È -¤¤¤¦¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +集合に属しているあるファイルディスクリプタをクローズした後であっても、 +同じファイル記述を参照する他のファイルディスクリプタがオープンされている間は、 +クローズしたファイルディスクリプタ宛にイベントが報告される可能性があると +いうことを意味する。 .TP .B Q7 .\"O If more than one event occurs between .\"O .BR epoll_wait (2) .\"O calls, are they combined or reported separately? -2 ¤Ä°Ê¾å¤Î¥¤¥Ù¥ó¥È¤¬ +2 つ以上のイベントが .BR epoll_wait (2) -¥³¡¼¥ë¤Î´Ö¤ËȯÀ¸¤·¤¿¾ì¹ç¡¢¤½¤ì¤é¤Ï¤Þ¤È¤á¤ÆÊó¹ð¤µ¤ì¤ë¤«¡¢ -¤½¤ì¤È¤âÊÌ¡¹¤ËÊó¹ð¤µ¤ì¤ë¤«¡© +コールの間に発生した場合、それらはまとめて報告されるか、 +それとも別々に報告されるか? .TP .B A7 .\"O They will be combined. -¤Þ¤È¤á¤ÆÊó¹ð¤µ¤ì¤ë¤À¤í¤¦¡£ +まとめて報告されるだろう。 .TP .B Q8 .\"O Does an operation on a file descriptor affect the .\"O already collected but not yet reported events? -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ¹¤ëÁàºî¤Ï¡¢ -´û¤Ë½¸¤á¤é¤ì¤Æ¤¤¤ë¤¬¤Þ¤ÀÊó¹ð¤µ¤ì¤Æ¤¤¤Ê¤¤¥¤¥Ù¥ó¥È¤Ë±Æ¶Á¤¹¤ë¤«¡© +ファイルディスクリプタに対する操作は、 +既に集められているがまだ報告されていないイベントに影響するか? .TP .B A8 .\"O You can do two operations on an existing file descriptor. .\"O Remove would be meaningless for .\"O this case. .\"O Modify will reread available I/O. -´û¸¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ 2 ¤Ä¤ÎÁàºî¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î¾ì¹ç¡¢ºï½ü¤Ë¤Ï°ÕÌ£¤¬¤Ê¤¤¡£ -Êѹ¹¤¹¤ë¤È¡¢»ÈÍѲÄǽ¤Ê I/O ¤¬ºÆ¤ÓÆɤ߹þ¤Þ¤ì¤ë¡£ +既存のファイルディスクリプタに対して 2 つの操作を行うことができる。 +この場合、削除には意味がない。 +変更すると、使用可能な I/O が再び読み込まれる。 .TP .B Q9 .\"O Do I need to continuously read/write a file descriptor @@ -761,10 +761,10 @@ description) .\"O .B EPOLLET .\"O flag (edge-triggered behavior) ? .B EPOLLET -¥Õ¥é¥° (¥¨¥Ã¥¸¥È¥ê¥¬Æ°ºî) ¤ò»È¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ +フラグ (エッジトリガ動作) を使っている場合、 .B EAGAIN -¤ò¼õ¤±¼è¤ë¤Þ¤Ç¡¢ -·Ñ³¤·¤Æ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÆɤ߽ñ¤­¤¹¤ëɬÍפ¬¤¢¤ë¤«¡© +を受け取るまで、 +継続してファイルディスクリプタを読み書きする必要があるか? .TP .B A9 .\"O Receiving an event from @@ -772,39 +772,39 @@ description) .\"O should suggest to you that such .\"O file descriptor is ready for the requested I/O operation. .BR epoll_wait (2) -¤«¤é¥¤¥Ù¥ó¥È¤ò¼õ¤±¼è¤ë¤³¤È¤Ï¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Í׵ᤵ¤ì¤¿ I/O Áàºî¤ËÂФ·¤Æ½àÈ÷ºÑ¤ß¤Ç¤¢¤ë¡¢ -¤È¤¤¤¦¤³¤È¤ò¥æ¡¼¥¶¤Ë¼¨¤¹¤â¤Î¤Ç¤¢¤ë¡£ +からイベントを受け取ることは、 +そのファイルディスクリプタが要求された I/O 操作に対して準備済みである、 +ということをユーザに示すものである。 .\"O You must consider it ready until the next (nonblocking) .\"O read/write yields .\"O .BR EAGAIN . -¼¡¤Î (¥Ö¥í¥Ã¥¯¤·¤Ê¤¤) read/write ¤Ç +次の (ブロックしない) read/write で .B EAGAIN -¤ò¼õ¤±¼è¤ë¤Þ¤Ç¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï½àÈ÷ºÑ¤ß¤Ç¤¢¤ë¤È -¹Í¤¨¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を受け取るまではファイルディスクリプタは準備済みであると +考えなければならない。 .\"O When and how you will use the file descriptor is entirely up to you. -¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¤¤¤Ä¤É¤Î¤è¤¦¤Ë»È¤¦¤«¤Ï¡¢ -Á´¤¯¥æ¡¼¥¶¤ËǤ¤µ¤ì¤Æ¤ë¡£ +そのファイルディスクリプタをいつどのように使うかは、 +全くユーザに任されてる。 .sp .\"O For packet/token-oriented files (e.g., datagram socket, .\"O terminal in canonical mode), .\"O the only way to detect the end of the read/write I/O space .\"O is to continue to read/write until .\"O .BR EAGAIN . -¥Ñ¥±¥Ã¥È»Ø¸þ¤ä¥È¡¼¥¯¥ó»Ø¸þ¤Î¥Õ¥¡¥¤¥ë (Î㤨¤Ð¡¢¥Ç¡¼¥¿¥°¥é¥à¥½¥±¥Ã¥È¡¢ -canonical ¥â¡¼¥É¤ÎüËö) ¤Ç¤Ï¡¢ -Æɤ߹þ¤ßÍÑ / ½ñ¤­¹þ¤ßÍѤΠI/O ¶õ´Ö¤ÎËöÈø¤ò¸¡ÃΤ¹¤ëÍ£°ì¤ÎÊýË¡¤Ï +パケット指向やトークン指向のファイル (例えば、データグラムソケット、 +canonical モードの端末) では、 +読み込み用 / 書き込み用の I/O 空間の末尾を検知する唯一の方法は .B EAGAIN -¤Ë¤Ê¤ë¤Þ¤Ç read/write ¤ò¹Ô¤¦¤³¤È¤Ç¤¢¤ë¡£ +になるまで read/write を行うことである。 .sp .\"O For stream-oriented files (e.g., pipe, FIFO, stream socket), the .\"O condition that the read/write I/O space is exhausted can also be detected by .\"O checking the amount of data read from / written to the target file .\"O descriptor. -¥¹¥È¥ê¡¼¥à»Ø¸þ¤Î¥Õ¥¡¥¤¥ë (Î㤨¤Ð¡¢¥Ñ¥¤¥×¡¢FIFO¡¢¥¹¥È¥ê¡¼¥à¥½¥±¥Ã¥È) ¤Ç¤Ï¡¢ -Æɤ߹þ¤ßÍÑ / ½ñ¤­¹þ¤ßÍѤΠI/O ¶õ´Ö¤¬»È¤¤¿Ô¤¯¤µ¤ì¤¿¾õÂ֤ϡ¢ -ÂоݤȤʤë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÆɤ߹þ¤ó¤À¥Ç¡¼¥¿Î̤ޤ¿¤Ï -½ñ¤­¹þ¤ó¤À¥Ç¡¼¥¿Î̤ò¥Á¥§¥Ã¥¯¤¹¤ë¤³¤È¤Ç¤â¸¡ÃΤǤ­¤ë¡£ +ストリーム指向のファイル (例えば、パイプ、FIFO、ストリームソケット) では、 +読み込み用 / 書き込み用の I/O 空間が使い尽くされた状態は、 +対象となるファイルディスクリプタから読み込んだデータ量または +書き込んだデータ量をチェックすることでも検知できる。 .\"O For example, if you call .\"O .BR read (2) .\"O by asking to read a certain amount of data and @@ -816,34 +816,34 @@ canonical .\"O .BR write (2). .\"O (Avoid this latter technique if you cannot guarantee that .\"O the monitored file descriptor always refers to a stream-oriented file.) -Î㤨¤Ð¡¢¤¢¤ëÆÃÄê¤ÎÎ̤Υǡ¼¥¿¤òÆɤ߹þ¤à¤¿¤á¤Ë +例えば、ある特定の量のデータを読み込むために .BR read (2) -¤ò¸Æ¤ó¤À¤È¤­¤Ë¡¢ +を呼んだときに、 .BR read (2) -¤¬ÊÖ¤·¤¿¥Ð¥¤¥È¿ô¤¬¤½¤ì¤è¤ê¾¯¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÆɤ߹þ¤ßÍÑ I/O ¶õ´Ö¤¬ -»È¤¤¿Ô¤¯¤µ¤ì¤¿¤³¤È¤¬Ê¬¤«¤ë¡£ +が返したバイト数がそれより少なかった場合、 +そのファイルディスクリプタの読み込み用 I/O 空間が +使い尽くされたことが分かる。 .BR write (2) -¤ò»È¤Ã¤Æ½ñ¤­¹þ¤ß¤ò¤¹¤ë¤È¤­¤â¡¢Æ±¤¸¤³¤È¤¬¸À¤¨¤ë -(´Æ»ë¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¾ï¤Ë¥¹¥È¥ê¡¼¥à»Ø¸þ¤Î¥Õ¥¡¥¤¥ë¤ò -»²¾È¤·¤Æ¤¤¤ë¤³¤È¤òÊݾڤǤ­¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢¸å¼Ô¤Î¼êË¡¤Î»ÈÍѤòÈò¤±¤ë¤³¤È)¡£ +を使って書き込みをするときも、同じことが言える +(監視しているファイルディスクリプタが常にストリーム指向のファイルを +参照していることを保証できない場合には、後者の手法の使用を避けること)。 .\"O .SS Possible Pitfalls and Ways to Avoid Them -.SS ¤¢¤ê¤¬¤Á¤ÊÍî¤È¤··ê¤È²óÈòÊýË¡ +.SS ありがちな落とし穴と回避方法 .TP .\"O .B o Starvation (edge-triggered) -.B o µ²²î (starvation) (¥¨¥Ã¥¸¥È¥ê¥¬) +.B o 飢餓 (starvation) (エッジトリガ) .PP .\"O If there is a large amount of I/O space, .\"O it is possible that by trying to drain .\"O it the other files will not get processed causing starvation. .\"O (This problem is not specific to .\"O .BR epoll .) -Â礭¤Ê I/O ¶õ´Ö¤¬¤¢¤ë¾ì¹ç¡¢ -¤½¤Î I/O ¶õ´Ö¤Î¥Ç¡¼¥¿¤òÁ´¤Æ½èÍý (drain) ¤·¤è¤¦¤È¤¹¤ë¤È¡¢ -¾¤Î¥Õ¥¡¥¤¥ë¤¬½èÍý¤µ¤ì¤º¡¢µ²²î¤òȯÀ¸¤µ¤»¤ë¤³¤È¤¬¤¢¤ë -(¤³¤ÎÌäÂê¤Ï +大きな I/O 空間がある場合、 +その I/O 空間のデータを全て処理 (drain) しようとすると、 +他のファイルが処理されず、飢餓を発生させることがある +(この問題は .B epoll -¤Ë¸ÇÍ­¤Î¤â¤Î¤Ç¤Ï¤Ê¤¤)¡£ +に固有のものではない)。 .PP .\"O The solution is to maintain a ready list .\"O and mark the file descriptor as ready @@ -852,17 +852,17 @@ canonical .\"O all the ready files. .\"O This also supports ignoring subsequent events you .\"O receive for file descriptors that are already ready. -¤³¤ÎÌäÂê¤Î²ò·èË¡¤Ï¡¢½àÈ÷ºÑ¤ß¾õÂ֤Υꥹ¥È¤ò´ÉÍý¤·¤Æ¡¢ -´ØÏ¢¤¹¤ë data ¹½Â¤ÂΤÎÃæ¤Ç¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ -ÍøÍѲÄǽ¤Ç¤¢¤ë¤È¥Þ¡¼¥¯¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£ -¤½¤ì¤Ë¤è¤Ã¤Æ¡¢ÍøÍѲÄǽ¤Ê¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤ÎÃæ¤Ç -¤É¤Î¥Õ¥¡¥¤¥ë¤ò½èÍý¤¹¤ëɬÍפ¬¤¢¤ë¤«¤ò²±¤¨¤ë¤³¤È¤¬¤Ç¤­¡¢ -¤·¤«¤â½çÈ֤˽èÍý (round robin) ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -´û¤ËÍøÍѲÄǽ¤Ç¤¢¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ -¤½¤ì°Ê¸å¤Ë¼õ¤±¼è¤ë¥¤¥Ù¥ó¥È¤ò̵»ë¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +この問題の解決法は、準備済み状態のリストを管理して、 +関連する data 構造体の中でファイルディスクリプタが +利用可能であるとマークすることである。 +それによって、利用可能なすべてのファイルの中で +どのファイルを処理する必要があるかを憶えることができ、 +しかも順番に処理 (round robin) することができる。 +既に利用可能であるファイルディスクリプタに対して +それ以後に受け取るイベントを無視することもできる。 .TP .\"O .B o If using an event cache... -.B o ¥¤¥Ù¥ó¥È¥­¥ã¥Ã¥·¥å¤ò»È¤Ã¤Æ¤¤¤ë¾ì¹ç +.B o イベントキャッシュを使っている場合 .PP .\"O If you use an event cache or store all the file descriptors returned from .\"O .BR epoll_wait (2), @@ -872,24 +872,24 @@ canonical .\"O Suppose you receive 100 events from .\"O .BR epoll_wait (2), .\"O and in event #47 a condition causes event #13 to be closed. -¥¤¥Ù¥ó¥È¥­¥ã¥Ã¥·¥å¤ò»È¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -¤Þ¤¿¤Ï +イベントキャッシュを使っている場合、 +または .BR epoll_wait (2) -¤«¤éÊÖ¤µ¤ì¤¿Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò³ÊǼ¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -¥¯¥í¡¼¥º¤µ¤ì¤¿¤³¤È¤òưŪ¤Ë¥Þ¡¼¥¯¤¹¤ë -(¤Ä¤Þ¤êÁ°¤Î¥¤¥Ù¥ó¥È¤Î½èÍý¤Ë¤è¤Ã¤Æ¥Þ¡¼¥¯¤µ¤ì¤ë) ÊýË¡¤òÄ󶡤¹¤Ù¤­¤Ç¤¢¤ë¡£ +から返された全てのファイルディスクリプタを格納している場合、 +クローズされたことを動的にマークする +(つまり前のイベントの処理によってマークされる) 方法を提供すべきである。 .BR epoll_wait (2) -¤«¤é 100 ¸Ä¤Î¥¤¥Ù¥ó¥È¤ò¼õ¤±¼è¤ê¡¢ -¥¤¥Ù¥ó¥È #47 ¤Ç¤Ï¤¢¤ë¾ò·ï¤Ç¥¤¥Ù¥ó¥È #13 ¤¬ÊĤ¸¤é¤ì¤ë¤È²¾Äꤹ¤ë¡£ +から 100 個のイベントを受け取り、 +イベント #47 ではある条件でイベント #13 が閉じられると仮定する。 .\"O If you remove the structure and .\"O .BR close (2) .\"O the file descriptor for event #13, then your .\"O event cache might still say there are events waiting for that .\"O file descriptor causing confusion. -¥¤¥Ù¥ó¥È #13 ¤Î¹½Â¤ÂΤòºï½ü¤·¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò +イベント #13 の構造体を削除しファイルディスクリプタを .BR close (2) -¤¹¤ë¤È¡¢¥¤¥Ù¥ó¥È¥­¥ã¥Ã¥·¥å¤Ï¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÂԤĥ¤¥Ù¥ó¥È¤¬ -¸ºß¤¹¤ë¤È¤¤¤Ã¤Æ¡¢º®Í𤬵¯¤­¤ë¡£ +すると、イベントキャッシュはそのファイルディスクリプタを待つイベントが +存在するといって、混乱が起きる。 .PP .\"O One solution for this is to call, during the processing of event 47, .\"O .BR epoll_ctl ( EPOLL_CTL_DEL ) @@ -901,30 +901,30 @@ canonical .\"O event for file descriptor 13 in your batch processing, .\"O you will discover the file descriptor had been .\"O previously removed and there will be no confusion. -¤³¤ÎÌäÂê¤ò²ò·è¤¹¤ë 1 ¤Ä¤ÎÊýË¡¤Ï¡¢¥¤¥Ù¥ó¥È 47 ¤Î½èÍý¤ò¤·¤Æ¤¤¤ë´Ö¤Ë¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ 13 ¤òºï½ü¤·¤Æ +この問題を解決する 1 つの方法は、イベント 47 の処理をしている間に、 +ファイルディスクリプタ 13 を削除して .BR close (2) -¤¹¤ë¤¿¤á¤Ë +するために .BR epoll_ctl ( EPOLL_CTL_DEL ) -¤ò¸Æ¤Ó½Ð¤·¡¢´ØÏ¢ÉÕ¤±¤é¤ì¤¿ data ¹½Â¤ÂΤòºï½üºÑ¤ß¤È¥Þ¡¼¥¯¤·¤Æ¡¢ -¥¯¥ê¡¼¥ó¥¢¥Ã¥×¥ê¥¹¥È¤Ë¥ê¥ó¥¯¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£ -¥Ð¥Ã¥Á½èÍý¤ÎÃæ¤Ç¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ 13 ¤Ë¤Ä¤¤¤Æ¤Î -¾¤Î¥¤¥Ù¥ó¥È¤ò¸«¤Ä¤±¤¿¾ì¹ç¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬°ÊÁ°¤Ëºï½ü¤µ¤ì¤¿¤â¤Î¤Ç¤¢¤ë¤Èʬ¤«¤ë¤Î¤Ç¡¢ -º®Íð¤Ïµ¯¤­¤Ê¤¤¡£ +を呼び出し、関連付けられた data 構造体を削除済みとマークして、 +クリーンアップリストにリンクすることである。 +バッチ処理の中でファイルディスクリプタ 13 についての +他のイベントを見つけた場合、 +そのファイルディスクリプタが以前に削除されたものであると分かるので、 +混乱は起きない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The .\"O .B epoll .\"O API was introduced in Linux kernel 2.5.44. .B epoll -API ¤Ï Linux ¥«¡¼¥Í¥ë 2.5.44 ¤ËƳÆþ¤µ¤ì¤¿¡£ +API は Linux カーネル 2.5.44 に導入された。 .\"O .\" Its interface should be finalized in Linux kernel 2.5.66. -.\" ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï Linux ¥«¡¼¥Í¥ë 2.5.66 ¤Ç³ÎÄꤵ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +.\" インタフェースは Linux カーネル 2.5.66 で確定されるべきである。 .\"O Support was added to glibc in version 2.3.2. -glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.3.2 ¤ÇÄɲ䵤줿¡£ +glibc でのサポートはバージョン 2.3.2 で追加された。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O The .\"O .B epoll .\"O API is Linux-specific. @@ -934,15 +934,15 @@ glibc .\"O and Solaris has .\"O .IR /dev/poll . .B epoll -API ¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -¾¤Î¥·¥¹¥Æ¥à¤Ç¤âƱÍͤε¡¹½¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤¬¤¢¤ë¡£ -Î㤨¤Ð¡¢FreeBSD ¤Î +API は Linux 固有である。 +他のシステムでも同様の機構が提供されている場合がある。 +例えば、FreeBSD の .I kqueue -¤ä Solaris ¤Î +や Solaris の .I /dev/poll -¤Ê¤É¤Ç¤¢¤ë¡£ +などである。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR epoll_create (2), .BR epoll_create1 (2), .BR epoll_ctl (2), diff --git a/draft/man7/feature_test_macros.7 b/draft/man7/feature_test_macros.7 index 0a690cc0..68e15fe9 100644 --- a/draft/man7/feature_test_macros.7 +++ b/draft/man7/feature_test_macros.7 @@ -28,42 +28,42 @@ .\" Updated 2007-09-08, Akihiro MOTOKI, LDP v2.64 .\" Updated 2009-04-23, Akihiro MOTOKI, LDP v3.21 .\" -.\"WORD: feature test macro µ¡Ç½¸¡ºº¥Þ¥¯¥í -.\"WORD: feature test macro requirements µ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +.\"WORD: feature test macro 機能検査マクロ +.\"WORD: feature test macro requirements 機能検査マクロの要件 .\" .TH FEATURE_TEST_MACROS 7 2010-09-10 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O feature_test_macros \- feature test macros -feature_test_macros \- µ¡Ç½¸¡ºº¥Þ¥¯¥í +feature_test_macros \- 機能検査マクロ .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Feature test macros allow the programmer to control the definitions that .\"O are exposed by system header files when a program is compiled. -µ¡Ç½¸¡ºº¥Þ¥¯¥í (feature test macro) ¤Ë¤è¤ê¡¢¥×¥í¥°¥é¥Þ¤Ï -¥×¥í¥°¥é¥à¤¬¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤ëºÝ¤Ë¥·¥¹¥Æ¥à¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ë¤è¤ê -¸ø³«¤µ¤ì¤ëÄêµÁ¤òÀ©¸æ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +機能検査マクロ (feature test macro) により、プログラマは +プログラムがコンパイルされる際にシステムのヘッダファイルにより +公開される定義を制御することができる。 .\"O .B NOTE: -.B Ãí°Õ: +.B 注意: .\"O In order to be effective, a feature test macro .\"O .IR "must be defined before including any header files" . .\"O This can be done either in the compilation command .\"O .RI ( "cc \-DMACRO=value" ) .\"O or by defining the macro within the source code before .\"O including any headers. -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤òµ¡Ç½¤µ¤»¤ë¤Ë¤Ï¡¢µ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÄêµÁ¤ò -¡Ö¤É¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Î¥¤¥ó¥¯¥ë¡¼¥É¤è¤ê¤âÁ°¤Ç¡×¹Ô¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ì¤ò¼Â¸½¤¹¤ë¤Ë¤Ï¡¢ -¥³¥ó¥Ñ¥¤¥ë¥³¥Þ¥ó¥É¤Ç»ØÄꤹ¤ëÊýË¡ +機能検査マクロを機能させるには、機能検査マクロの定義を +「どのヘッダファイルのインクルードよりも前で」行わなければならない。 +これを実現するには、 +コンパイルコマンドで指定する方法 .RI ( "cc \-DMACRO=value" ) -¤È¡¢¥½¡¼¥¹¥³¡¼¥ÉÆâ¤ÇɬÍפʥޥ¯¥í¤ÎÄêµÁ¤ò -¤É¤Î¥Ø¥Ã¥À¤Î¥¤¥ó¥¯¥ë¡¼¥É¤è¤ê¤âÁ°¤Ç¹Ô¤¦ÊýË¡¤¬¤¢¤ë¡£ +と、ソースコード内で必要なマクロの定義を +どのヘッダのインクルードよりも前で行う方法がある。 .\"O Some feature test macros are useful for creating portable applications, .\"O by preventing nonstandard definitions from being exposed. @@ -73,28 +73,28 @@ feature_test_macros \- .\"O can be ascertained by inspecting the .\"O .I .\"O header file. -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤ò»È¤¦¤È¡¢Èóɸ½à¤ÎÄêµÁ¤¬¸ø³«¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¤Ç¤­¡¢ -°Ü¿¢À­¤Î¤¢¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òºîÀ®¤¹¤ë¤Î¤ËÌòΩ¤Ä¡£ -¾¤Î¥Þ¥¯¥í¤ò»È¤¦¤È¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¸ø³«¤µ¤ì¤Ê¤¤Èóɸ½à¤ÎÄêµÁ¤ò -¸ø³«¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -°Ê²¼¤ÇÀâÌÀ¤¹¤ëµ¡Ç½¸¡ºº¥Þ¥¯¥í¤Î¤½¤ì¤¾¤ì¤ÎÀµ³Î¤Ê±Æ¶Á¤ò³Îǧ¤¹¤ë¤Ë¤Ï¡¢ -¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë +機能検査マクロを使うと、非標準の定義が公開されないようにでき、 +移植性のあるアプリケーションを作成するのに役立つ。 +他のマクロを使うと、デフォルトでは公開されない非標準の定義を +公開することができる。 +以下で説明する機能検査マクロのそれぞれの正確な影響を確認するには、 +ヘッダファイル .I -¤òÄ´¤Ù¤ì¤Ð¤è¤¤¡£ +を調べればよい。 .\"O .SS Specification of feature test macro requirements in manual pages -.SS ¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï¤Îµ¬Äê +.SS マニュアルページでの機能検査マクロの要件の規定 .\"O When a function requires that a feature test macro is defined, .\"O the manual page SYNOPSIS typically includes a note of the following form .\"O (this example from the .\"O .BR acct (2) .\"O manual page): -´Ø¿ô¤¬µ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÄêµÁ¤òɬÍפȤ¹¤ë¾ì¹ç¡¢ -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î½ñ¼° (SYNOPSIS) ¤ÎÀá¤Ë -°Ê²¼¤Î·Á¼°¤ÎÃí¼á¤òÆþ¤ì¤ë -(°Ê²¼¤ÎÎã¤Ï +関数が機能検査マクロの定義を必要とする場合、 +マニュアルページの書式 (SYNOPSIS) の節に +以下の形式の注釈を入れる +(以下の例は .BR acct (2) -¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤«¤é¤Î°úÍѤǤ¢¤ë)¡£ +のマニュアルページからの引用である)。 .RS 8 .sp .B #include @@ -105,9 +105,9 @@ feature_test_macros \- .in -4n .\"O Feature Test Macro Requirements for glibc (see .\"O .BR feature_test_macros (7)): -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .fi .in .sp @@ -121,12 +121,12 @@ _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) .\"O .IR , .\"O \fIeither\fP of the following macro .\"O definitions must be made before including any header files: -\fB||\fP ¤Ï¡¢ +\fB||\fP は、 .BR acct (2) -¤ÎÄêµÁ¤ò +の定義を .I -¤«¤éÆÀ¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¥Þ¥¯¥í¤ÎÄêµÁ¤Î¤¤¤º¤ì¤«¤ò¡¢¤É¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Î -¥¤¥ó¥¯¥ë¡¼¥É¤è¤ê¤âÁ°¤Ç¹Ô¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +から得るには、以下のマクロの定義のいずれかを、どのヘッダファイルの +インクルードよりも前で行わなければならないことを意味する。 .RS .nf @@ -137,8 +137,8 @@ _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) .PP .\"O Alternatively, equivalent definitions can be included in the .\"O compilation command: -Ê̤ÎÊýË¡¤È¤·¤Æ¤Ï¡¢Åù²Á¤ÊÄêµÁ¤ò¥³¥ó¥Ñ¥¤¥ëÍѤΥ³¥Þ¥ó¥É¤Ç -»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +別の方法としては、等価な定義をコンパイル用のコマンドで +指定することもできる。 .RS .nf @@ -152,20 +152,20 @@ cc \-D_XOPEN_SOURCE # Or any value < 500 .\"O so that it may not always be necessary to .\"O explicitly specify the feature test macro(s) shown in the .\"O SYNOPSIS. -¸å¤Ç½Ò¤Ù¤ë¤¬¡¢ -.B ¡Ö¤¤¤¯¤Ä¤«¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÄêµÁ¤µ¤ì¤ë¡× -ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¤³¤Î¤¿¤á¡¢¡Ö½ñ¼°¡×¤Ëµ­ºÜ¤µ¤ì¤¿µ¡Ç½¸¡ºº¥Þ¥¯¥í¤ò¾ï¤Ë -ÌÀ¼¨Åª¤Ë»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ +後で述べるが、 +.B 「いくつかの機能検査マクロはデフォルトで定義される」 +点に注意すること。 +このため、「書式」に記載された機能検査マクロを常に +明示的に指定する必要があるわけではない。 .\"O In a few cases, manual pages use a shorthand for expressing the .\"O feature test macro requirements (this example from .\"O .BR readahead (2)): -¤¢¤Þ¤ê¿¤¯¤Ê¤¤¤¬¡¢¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë¤è¤Ã¤Æ¤Ï¡¢ -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï¤ò°Ê²¼¤Î¤è¤¦¤Ë´Êñ¤Êɽ¸½¤Çµ­ºÜ¤¹¤ë¾ì¹ç¤¬¤¢¤ë¡£ -(°Ê²¼¤ÎÎã¤Ï +あまり多くないが、マニュアルページによっては、 +機能検査マクロの要件を以下のように簡単な表現で記載する場合がある。 +(以下の例は .BR readahead (2) -¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤«¤é¤Î°úÍѤǤ¢¤ë)¡£ +のマニュアルページからの引用である)。 .RS .nf @@ -179,21 +179,21 @@ cc \-D_XOPEN_SOURCE # Or any value < 500 .\"O This format is employed in cases where only a single .\"O feature test macro can be used to expose the function .\"O declaration, and that macro is not defined by default. -´Ø¿ôÄêµÁ¤Î¸ø³«¤Ë»È¤¨¤ëµ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬°ì¤Ä¤À¤±¤Ç¡¢ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¤½¤Î¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤Ê¤¤¾ì¹ç¤Ë¡¢ -¤³¤Î·Á¼°¤Îɽ¸½¤òÍøÍѤ¹¤ë¡£ +関数定義の公開に使える機能検査マクロが一つだけで、 +デフォルトではそのマクロが定義されない場合に、 +この形式の表現を利用する。 .\"O .SS Feature test macros understood by glibc -.SS glibc ¤¬²ò¼á¤¹¤ëµ¡Ç½¸¡ºº¥Þ¥¯¥í +.SS glibc が解釈する機能検査マクロ .\"O The following paragraphs explain how feature test macros are handled .\"O in Linux glibc 2.\fIx\fP, \fIx\fP > 0. -°Ê²¼¤Ç¤Ï¡¢Linux glibc 2.\fIx\fP (\fIx\fP > 0) ¤Ë¤ª¤¤¤Æ¡¢ -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬¤É¤Î¤è¤¦¤Ë°·¤ï¤ì¤ë¤«¤òÀâÌÀ¤¹¤ë¡£ +以下では、Linux glibc 2.\fIx\fP (\fIx\fP > 0) において、 +機能検査マクロがどのように扱われるかを説明する。 .\" The details in glibc 2.0 are simpler, but combining a .\" a description of them with the details in later glibc versions .\" would make for a complicated description. .\"O Linux glibc understands the following feature test macros: -Linux/glibc ¤Ï°Ê²¼¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ò²ò¼á¤¹¤ë: +Linux/glibc は以下の機能検査マクロを解釈する: .TP .B __STRICT_ANSI__ .\"O ISO Standard C. @@ -204,95 +204,95 @@ Linux/glibc .\"O or .\"O .I -ansi .\"O flag. -ISO ɸ½à¤Î C¡£ +ISO 標準の C。 .BR gcc (1) -¤ò +を .I -std=c99 -¤ä +や .I -ansi -¤Ê¤É¤Î¥Õ¥é¥°¤òÉÕ¤±¤Æµ¯Æ°¤·¤¿¾ì¹ç¡¢ -¤³¤Î¥Þ¥¯¥í¤Ï°ÅÌۤΤ¦¤Á¤ËÄêµÁ¤µ¤ì¤ë¡£ +などのフラグを付けて起動した場合、 +このマクロは暗黙のうちに定義される。 .TP .B _POSIX_C_SOURCE .\"O Defining this macro causes header files to expose definitions as follows: -¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç -°Ê²¼¤ÎÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£ +このマクロを定義すると、ヘッダファイルで +以下の定義が公開される。 .RS .IP \(bu 3 .\"O The value 1 exposes definitions conforming to POSIX.1-1990 and .\"O ISO C (1990). -Ãͤ¬ 1 ¤Î¾ì¹ç¡¢POSIX.1-1990 ¤È ISO C (1990) ¤Ë½àµò¤¹¤ëÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£ +値が 1 の場合、POSIX.1-1990 と ISO C (1990) に準拠する定義が公開される。 .IP \(bu .\"O The value 2 or greater additionally exposes .\"O definitions for POSIX.2-1992. -Ãͤ¬ 2 °Ê¾å¤Î¾ì¹ç¡¢ -POSIX.2-1992 ´ØÏ¢¤ÎÄêµÁ¤âÄɲäǸø³«¤µ¤ì¤ë¡£ +値が 2 以上の場合、 +POSIX.2-1992 関連の定義も追加で公開される。 .IP \(bu .\"O The value 199309L or greater additionally exposes .\"O definitions for POSIX.1b (real-time extensions). -Ãͤ¬ 199309 °Ê¾å¤Î¾ì¹ç¡¢ -POSIX.1b (¥ê¥¢¥ë¥¿¥¤¥à³ÈÄ¥) ´ØÏ¢¤ÎÄêµÁ¤¬ÄɲäǸø³«¤µ¤ì¤ë¡£ +値が 199309 以上の場合、 +POSIX.1b (リアルタイム拡張) 関連の定義が追加で公開される。 .\" 199506L functionality is only available since glibc 2.1 .IP \(bu .\"O The value 199506L or greater additionally exposes .\"O definitions for POSIX.1c (threads). -Ãͤ¬ 199506 °Ê¾å¤Î¾ì¹ç¡¢ -POSIX.1c (¥¹¥ì¥Ã¥É) ´ØÏ¢¤ÎÄêµÁ¤¬ÄɲäǸø³«¤µ¤ì¤ë¡£ +値が 199506 以上の場合、 +POSIX.1c (スレッド) 関連の定義が追加で公開される。 .IP \(bu .\"O (Since glibc 2.3.3) .\"O The value 200112L or greater exposes definitions corresponding .\"O to the POSIX.1-2001 base specification (excluding the XSI extension). -(glibc 2.3.3 °Ê¹ß) -Ãͤ¬ 200112L °Ê¾å¤Î¾ì¹ç¡¢ -(XSI ³ÈÄ¥¤ò½ü¤¯) POSIX.1-2001 ´ðËÜ»ÅÍͤËÂбþ¤¹¤ëÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£ +(glibc 2.3.3 以降) +値が 200112L 以上の場合、 +(XSI 拡張を除く) POSIX.1-2001 基本仕様に対応する定義が公開される。 .IP \(bu .\"O (Since glibc 2.10) .\"O The value 200809L or greater exposes definitions corresponding .\"O to the POSIX.1-2008 base specification (excluding the XSI extension). -(glibc 2.10 °Ê¹ß) -Ãͤ¬ 200809L °Ê¾å¤Î¾ì¹ç¡¢ -(XSI ³ÈÄ¥¤ò½ü¤¯) POSIX.1-2008 ´ðËÜ»ÅÍͤËÂбþ¤¹¤ëÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£ +(glibc 2.10 以降) +値が 200809L 以上の場合、 +(XSI 拡張を除く) POSIX.1-2008 基本仕様に対応する定義が公開される。 .RE .TP .B _POSIX_SOURCE .\"O Defining this obsolete macro with any value is equivalent to defining .\"O .B _POSIX_C_SOURCE .\"O with the value 1. -¤³¤Î¥Þ¥¯¥í¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¡£ -¤³¤Î¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤ë¤È¡¢Ãͤ˴ؤï¤é¤º¡¢ +このマクロは廃止予定である。 +このマクロが定義されると、値に関わらず、 .B _POSIX_C_SOURCE -¤òÃÍ 1 ¤ÇÄêµÁ¤¹¤ë¤Î¤ÈÅù²Á¤È¤Ê¤ë¡£ +を値 1 で定義するのと等価となる。 .TP .B _XOPEN_SOURCE .\"O Defining this macro causes header files to expose definitions as follows: -¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç°Ê²¼¤ÎÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£ +このマクロを定義すると、ヘッダファイルで以下の定義が公開される。 .RS .IP \(bu 3 .\"O Defining with any value exposes .\"O definitions conforming to POSIX.1, POSIX.2, and XPG4. -¤É¤ó¤ÊÃͤǤ⡢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç -POSIX.1, POSIX.2, XPG4 ¤Ë½àµò¤¹¤ëÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£ +どんな値でも、ヘッダファイルで +POSIX.1, POSIX.2, XPG4 に準拠する定義が公開される。 .IP \(bu .\"O The value 500 or greater additionally exposes .\"O definitions for SUSv2 (UNIX 98). -Ãͤ¬ 500 °Ê¾å¤Î¾ì¹ç¡¢ -SUSv2 (UNIX 98) ´ØÏ¢¤ÎÄêµÁ¤¬ÄɲäǸø³«¤µ¤ì¤ë¡£ +値が 500 以上の場合、 +SUSv2 (UNIX 98) 関連の定義が追加で公開される。 .IP \(bu .\"O (Since glibc 2.2) The value 600 or greater additionally exposes .\"O definitions for SUSv3 (UNIX 03; i.e., the POSIX.1-2001 base specification .\"O plus the XSI extension) and C99 definitions. -(glibc 2.2 °Ê¹ß) -Ãͤ¬ 600 °Ê¾å¤Î¾ì¹ç¡¢ -SUSv3 (UNIX 03; POSIX.1-2001 ´ðËÜ»ÅÍÍ + XSI ³ÈÄ¥¤ÈƱ¤¸) -´ØÏ¢¤ÎÄêµÁ¤È C99 ¤Ç¤ÎÄêµÁ¤¬ÄɲäǸø³«¤µ¤ì¤ë¡£ +(glibc 2.2 以降) +値が 600 以上の場合、 +SUSv3 (UNIX 03; POSIX.1-2001 基本仕様 + XSI 拡張と同じ) +関連の定義と C99 での定義が追加で公開される。 .IP \(bu .\"O (Since glibc 2.10) The value 700 or greater additionally exposes .\"O definitions for SUSv4 (i.e., the POSIX.1-2008 base specification .\"O plus the XSI extension). -(glibc 2.10 °Ê¹ß) -Ãͤ¬ 700 °Ê¾å¤Î¾ì¹ç¡¢ -SUSv4 (POSIX.1-2008 ´ðËÜ»ÅÍÍ + XSI ³ÈÄ¥¤ÈƱ¤¸) -´ØÏ¢¤ÎÄêµÁ¤¬ÄɲäǸø³«¤µ¤ì¤ë¡£ +(glibc 2.10 以降) +値が 700 以上の場合、 +SUSv4 (POSIX.1-2008 基本仕様 + XSI 拡張と同じ) +関連の定義が追加で公開される。 .RE .TP .B _XOPEN_SOURCE_EXTENDED @@ -303,40 +303,40 @@ SUSv4 (POSIX.1-2008 .\"O This macro is also implicitly defined if .\"O .B _XOPEN_SOURCE .\"O is defined with a value of 500 or more. -¤³¤Î¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¡¢¤µ¤é¤Ë +このマクロが定義され、さらに .B _XOPEN_SOURCE -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤È¡¢XPG4v2 (SUSv1) UNIX ³ÈÄ¥ (UNIX 95) -¤ËÂбþ¤¹¤ëÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£ +が定義されていると、XPG4v2 (SUSv1) UNIX 拡張 (UNIX 95) +に対応する定義が公開される。 .B _XOPEN_SOURCE -¤¬ 500 °Ê¾å¤ÎÃͤÇÄêµÁ¤µ¤ì¤¿¾ì¹ç¡¢¤³¤Î¥Þ¥¯¥í¤Ï°ÅÌۤΤ¦¤Á¤ËÄêµÁ¤µ¤ì¤ë¡£ +が 500 以上の値で定義された場合、このマクロは暗黙のうちに定義される。 .TP .B _ISOC99_SOURCE .\"O Exposes C99 extensions to ISO C (1990). -ISO C (1990) ¤Î C99 ³ÈÄ¥¤ò¸ø³«¤¹¤ë¡£ +ISO C (1990) の C99 拡張を公開する。 .\"O This macro is recognized since glibc 2.1.3; -¤³¤Î¥Þ¥¯¥í¤Ï glibc 2.1.3 °Ê¹ß¤Çǧ¼±¤µ¤ì¤ë¡£ +このマクロは glibc 2.1.3 以降で認識される。 .\"O earlier glibc 2.1.x versions recognized an equivalent macro named .\"O .B _ISOC9X_SOURCE .\"O (because the C99 standard had not then been finalized). .\"O Although the use of the latter macro is obsolete, glibc continues .\"O to recognize it for backward compatibility. -½é´ü¤Î¥Ð¡¼¥¸¥ç¥ó 2.1.x ¤Î glibc ¤Ç¤Ï¡¢¤³¤ì¤ÈÅù²Á¤Ê +初期のバージョン 2.1.x の glibc では、これと等価な .B _ISOC9X_SOURCE -¤È¤¤¤¦Ì¾Á°¤Î¥Þ¥¯¥í¤¬»È¤ï¤ì¤Æ¤¤¤¿ -(¤Ê¤¼¤Ê¤é¡¢C99 ɸ½à¤Ï¤Þ¤À³ÎÄꤷ¤Æ¤¤¤Ê¤«¤Ã¤¿¤«¤é¤Ç¤¢¤ë)¡£ +という名前のマクロが使われていた +(なぜなら、C99 標準はまだ確定していなかったからである)。 .B _ISOC9X_SOURCE -¥Þ¥¯¥í¤Î»ÈÍѤÏÇѻߤµ¤ì¤Æ¤¤¤ë¤¬¡¢ -glibc ¤Ï²áµî¤È¤Î¸ß´¹À­¤Î¤¿¤áº£¤Ç¤â¤³¤Î¥Þ¥¯¥í¤òǧ¼±¤¹¤ë¡£ +マクロの使用は廃止されているが、 +glibc は過去との互換性のため今でもこのマクロを認識する。 .TP .B _LARGEFILE64_SOURCE .\"O Expose definitions for the alternative API specified by the .\"O LFS (Large File Summit) as a "transitional extension" to the .\"O Single UNIX Specification. .\"O (See http://opengroup.org/platform/lfs.html.) -LFS (Large File Summit) ¤Ë¤è¤ê -"»ÃÄê³ÈÄ¥ (transitional extension)" Single UNIX Specification -¤È¤·¤Æµ¬Äꤵ¤ì¤¿ÂåÂØ API (alternative API) ¤Ë´Ø¤¹¤ëÄêµÁ¤ò¸ø³«¤¹¤ë -(http://opengroup.org/platform/lfs.html »²¾È)¡£ +LFS (Large File Summit) により +"暫定拡張 (transitional extension)" Single UNIX Specification +として規定された代替 API (alternative API) に関する定義を公開する +(http://opengroup.org/platform/lfs.html 参照)。 .\"O The alternative API consists of a set of new objects .\"O (i.e., functions and types) whose names are suffixed with "64" .\"O (e.g., @@ -347,22 +347,22 @@ LFS (Large File Summit) .\"O versus .\"O .BR lseek (), .\"O etc.). -ÂåÂØ API ¤Ï¿·µ¬¥ª¥Ö¥¸¥§¥¯¥È (´Ø¿ô¤È·¿) ¤Î½¸¹ç¤Ç¹½À®¤µ¤ì¡¢ -¤½¤Î̾Á°¤Ï "64" ¤Ç½ª¤ï¤ë (Î㤨¤Ð¡¢ +代替 API は新規オブジェクト (関数と型) の集合で構成され、 +その名前は "64" で終わる (例えば、 .I off_t -¤ËÂбþ¤¹¤ë¤Î¤Ï -.IR off64_t ¡¢ +に対応するのは +.IR off64_t 、 .BR lseek () -¤ËÂбþ¤¹¤ë¤Î¤Ï +に対応するのは .BR lseek64 () -¤Ç¤¢¤ë)¡£ +である)。 .\"O New programs should not employ this interface; instead .\"O .I _FILE_OFFSET_BITS=64 .\"O should be employed. -¿·¤·¤¤¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÍøÍѤ·¤Ê¤¤¤³¤È¡£ -Âå¤ï¤ê¤Ë +新しいプログラムではこのインタフェースを利用しないこと。 +代わりに .I _FILE_OFFSET_BITS=64 -¤òÍøÍѤ¹¤ë¤³¤È¡£ +を利用すること。 .TP .B _FILE_OFFSET_BITS .\"O Defining this macro with the value 64 @@ -375,15 +375,15 @@ LFS (Large File Summit) .\"O large files with only a recompilation being required.) .\"O 64-bit systems naturally permit file sizes greater than 2 Gigabytes, .\"O and on those systems this macro has no effect. -¤³¤Î¥Þ¥¯¥í¤òÃÍ 64 ¤ÇÄêµÁ¤¹¤ë¤È¡¢¥Õ¥¡¥¤¥ë I/O ¤È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÁàºî¤Ë -´ØÏ¢¤¹¤ë 32 ¥Ó¥Ã¥ÈÈǤδؿô¤È¥Ç¡¼¥¿¥¿¥¤¥×¤Ï¼«Æ°Åª¤Ë 64 ¥Ó¥Ã¥ÈÈÇ¤Ë -ÊÑ´¹¤µ¤ì¤ë¡£ -¤³¤ì¤Ï¡¢32 ¥Ó¥Ã¥È¥·¥¹¥Æ¥à¤ÇÂ礭¤Ê¥Õ¥¡¥¤¥ë (> 2 ¥®¥¬¥Ð¥¤¥È) ¤Î I/O -¤ò¼Â¹Ô¤¹¤ëºÝ¤ËÌòΩ¤Ä -(¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È¡¢¥³¥ó¥Ñ¥¤¥ë¤·Ä¾¤¹¤À¤±¤ÇÂ礭¤Ê¥Õ¥¡¥¤¥ë¤ò -°·¤¨¤ë¥×¥í¥°¥é¥à¤ò½ñ¤¯¤³¤È¤¬¤Ç¤­¤ë)¡£ -64 ¥Ó¥Ã¥È¥·¥¹¥Æ¥à¤Ï¡¢¤â¤È¤â¤È 2 ¥®¥¬¥Ð¥¤¥È¤è¤êÂ礭¤Ê¥Õ¥¡¥¤¥ë¤ò -°·¤¨¤ë¤Î¤Ç¡¢64 ¥Ó¥Ã¥È¥·¥¹¥Æ¥à¤Ç¤Ï¤³¤Î¥Þ¥¯¥í¤Ï¸ú²Ì¤ò»ý¤¿¤Ê¤¤¡£ +このマクロを値 64 で定義すると、ファイル I/O とファイルシステム操作に +関連する 32 ビット版の関数とデータタイプは自動的に 64 ビット版に +変換される。 +これは、32 ビットシステムで大きなファイル (> 2 ギガバイト) の I/O +を実行する際に役立つ +(このマクロを定義すると、コンパイルし直すだけで大きなファイルを +扱えるプログラムを書くことができる)。 +64 ビットシステムは、もともと 2 ギガバイトより大きなファイルを +扱えるので、64 ビットシステムではこのマクロは効果を持たない。 .TP .B _BSD_SOURCE .\"O Defining this macro with any value causes header files to expose @@ -398,32 +398,32 @@ LFS (Large File Summit) .\"O or .\"O .B _GNU_SOURCE .\"O is defined, in which case BSD definitions are disfavored. -¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È (Ãͤ˴ؤï¤é¤º) ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç -BSD ͳÍè¤ÎÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£ -¤Þ¤¿¡¢¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È¡¢ÁêÍƤì¤Ê¤¤É¸½à¤¬Â¸ºß¤¹¤ë¾õ¶·¤Ë¤ª¤¤¤Æ -BSD ͳÍè¤ÎÄêµÁ¤òÍ¥À褹¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¤¿¤À¤·¡¢ +このマクロを定義すると (値に関わらず) ヘッダファイルで +BSD 由来の定義が公開される。 +また、このマクロを定義すると、相容れない標準が存在する状況において +BSD 由来の定義を優先するようになる。 +ただし、 .BR _SVID_SOURCE , .BR _POSIX_SOURCE , .BR _POSIX_C_SOURCE , .BR _XOPEN_SOURCE , .BR _XOPEN_SOURCE_EXTENDED , .B _GNU_SOURCE -¤¬°ì¤Ä¤Ç¤âÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢BSD ͳÍè¤ÎÄêµÁ¤ÏÍ¥À褵¤ì¤Ê¤¯¤Ê¤ë¡£ +が一つでも定義された場合には、BSD 由来の定義は優先されなくなる。 .TP .B _SVID_SOURCE .\"O Defining this macro with any value causes header files to expose .\"O System V-derived definitions. .\"O (SVID == System V Interface Definition; see .\"O .BR standards (7).) -¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È (Ãͤ˴ؤï¤é¤º) ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç -System V ͳÍè¤ÎÄêµÁ¤¬¸ø³«¤µ¤ì¤ë +このマクロを定義すると (値に関わらず) ヘッダファイルで +System V 由来の定義が公開される (SVID == System V Interface Definition; .BR standards (7) -»²¾È)¡£ +参照)。 .TP .\"O .BR _ATFILE_SOURCE " (since glibc 2.4)" -.BR _ATFILE_SOURCE " (glibc 2.4 °Ê¹ß)" +.BR _ATFILE_SOURCE " (glibc 2.4 以降)" .\"O Defining this macro with any value causes header files to expose .\"O declarations of a range of functions with the suffix "at"; .\"O see @@ -431,14 +431,14 @@ System V ͳ .\"O Since glibc 2.10, this macro is also implicitly defined if .\"O .BR _POSIX_C_SOURCE .\"O is defined with a value greater than or equal to 200809L. -¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È (Ãͤ˴ؤï¤é¤º) ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç -̾Á°¤ÎËöÈø¤¬ "at" ¤Î³Æ¼ï¤Î´Ø¿ô¤ÎÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£ +このマクロを定義すると (値に関わらず) ヘッダファイルで +名前の末尾が "at" の各種の関数の定義が公開される。 .BR openat (2) -»²¾È¡£ -glibc 2.10 °Ê¹ß¤Ç¤Ï¡¢ +参照。 +glibc 2.10 以降では、 .B _POSIX_C_SOURCE -¤¬ 200809L °Ê¾å¤ÎÃͤÇÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ -¤³¤Î¥Þ¥¯¥í¤â°ÅÌۤΤ¦¤Á¤ËÄêµÁ¤µ¤ì¤ë¡£ +が 200809L 以上の値で定義された場合には、 +このマクロも暗黙のうちに定義される。 .TP .B _GNU_SOURCE .\"O Defining this macro (with any value) is equivalent to defining @@ -461,8 +461,8 @@ glibc 2.10 .\"O 500 in glibc versions before 2.2). .\"O In addition, various GNU-specific extensions are also exposed. .\"O Where standards conflict, BSD definitions are disfavored. -¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È (Ãͤ˴ؤï¤é¤º) °Ê²¼¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤Î¤È -Åù²Á¤Ë¤Ê¤ë: +このマクロを定義すると (値に関わらず) 以下のマクロを定義するのと +等価になる: .BR _BSD_SOURCE , .BR _SVID_SOURCE , .BR _ATFILE_SOURCE , @@ -470,39 +470,39 @@ glibc 2.10 .BR _ISOC99_SOURCE , .BR _XOPEN_SOURCE_EXTENDED , .BR _POSIX_SOURCE , -ÃÍ 200809L ¤Î +値 200809L の .B _POSIX_C_SOURCE -(¥Ð¡¼¥¸¥ç¥ó 2.10 ¤è¤êÁ°¤Î glibc ¤Ç¤ÏÃÍ¤Ï 200112L¡¢ -¥Ð¡¼¥¸¥ç¥ó 2.5 ¤è¤êÁ°¤Î glibc ¤Ç¤ÏÃÍ¤Ï 199506L¡¢ -¥Ð¡¼¥¸¥ç¥ó 2.1 ¤è¤êÁ°¤Î glibc ¤Ç¤ÏÃÍ¤Ï 199309L), -ÃÍ 700 ¤Î +(バージョン 2.10 より前の glibc では値は 200112L、 +バージョン 2.5 より前の glibc では値は 199506L、 +バージョン 2.1 より前の glibc では値は 199309L), +値 700 の .B _XOPEN_SOURCE -(¥Ð¡¼¥¸¥ç¥ó 2.10 ¤è¤êÁ°¤Î glibc ¤Ç¤ÏÃÍ¤Ï 600¡¢ -¥Ð¡¼¥¸¥ç¥ó 2.2 ¤è¤êÁ°¤Î glibc ¤Ç¤ÏÃÍ¤Ï 500)¡£ -¤µ¤é¤Ë¡¢³Æ¼ï¤Î GNU ¸ÇÍ­¤Î³ÈÄ¥¤â¸ø³«¤µ¤ì¤ë¡£ -»ØÄꤵ¤ì¤¿É¸½à¤ËÌ·½â¤¬¤¢¤Ã¤¿¾ì¹ç¤Ï¡¢ -BSD ͳÍè¤ÎÄêµÁ¤¬Í¥À褵¤ì¤Ê¤¯¤Ê¤ë¡£ +(バージョン 2.10 より前の glibc では値は 600、 +バージョン 2.2 より前の glibc では値は 500)。 +さらに、各種の GNU 固有の拡張も公開される。 +指定された標準に矛盾があった場合は、 +BSD 由来の定義が優先されなくなる。 .TP .B _REENTRANT .\"O Defining this macro exposes definitions of certain reentrant functions. .\"O For multithreaded programs, use .\"O .I "cc\ \-pthread" .\"O instead. -¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È¡¢¤¤¤¯¤Ä¤«¤Î¥ê¥¨¥ó¥È¥é¥ó¥È (ºÆÆþ²Äǽ) ¤Ê´Ø¿ô -ÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¡¦¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¤³¤ÎÂå¤ï¤ê¤Ë +このマクロを定義すると、いくつかのリエントラント (再入可能) な関数 +定義が公開される。マルチスレッド・プログラムでは、この代わりに .I "cc\ \-pthread" -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +を使用すること。 .TP .B _THREAD_SAFE .\"O Synonym for .\"O .BR _REENTRANT , .\"O provided for compatibility with some other implementations. .B _REENTRANT -¤ÎƱµÁ¸ì¡£ -¾¤Î¤¤¤¯¤Ä¤«¤Î¼ÂÁõ¤È¤Î¸ß´¹À­¤òÄ󶡤¹¤ë¤¿¤á¤Î¤â¤Î¡£ +の同義語。 +他のいくつかの実装との互換性を提供するためのもの。 .TP .\"O .BR _FORTIFY_SOURCE " (since glibc 2.3.4)" -.BR _FORTIFY_SOURCE " (glibc 2.3.4 °Ê¹ß)" +.BR _FORTIFY_SOURCE " (glibc 2.3.4 以降)" .\" For more detail, see: .\" http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html .\" [PATCH] Object size checking to prevent (some) buffer overflows @@ -513,13 +513,13 @@ BSD ͳ .\"O to detect some buffer overflow errors when employing .\"O various string and memory manipulation functions. .\"O Not all buffer overflows are detected, just some common cases. -¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È¡¢Ê¸»úÎó¤ä¥á¥â¥ê¤ÎÁàºî¤ò¹Ô¤¦ÍÍ¡¹¤Ê´Ø¿ô¤ò -»ÈÍѤ¹¤ëºÝ¤Ë¥Ð¥Ã¥Õ¥¡¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤ò¸¡½Ð¤¹¤ë¤¿¤á¤Î·Ú¤á¤Î¥Á¥§¥Ã¥¯¤¬ -¼Â¹Ô¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£¤¹¤Ù¤Æ¤Î¥Ð¥Ã¥Õ¥¡¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬¸¡½Ð¤µ¤ì¤ë -¤ï¤±¤Ç¤Ï¤Ê¤¯¡¢¤¢¤¯¤Þ¤Ç¤è¤¯¤¢¤ëÎã¤Ë¤Ä¤¤¤Æ¤À¤±¤Ç¤¢¤ë¡£ +このマクロを定義すると、文字列やメモリの操作を行う様々な関数を +使用する際にバッファオーバーフローを検出するための軽めのチェックが +実行されるようになる。すべてのバッファオーバーフローが検出される +わけではなく、あくまでよくある例についてだけである。 .\"O In the current implementation checks are added for .\"O calls to -¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¡¢°Ê²¼¤Î´Ø¿ô¤Ë¥Á¥§¥Ã¥¯¤¬Äɲ䵤ì¤Æ¤¤¤ë: +現在の実装では、以下の関数にチェックが追加されている: .BR memcpy (3), .BR mempcpy (3), .BR memmove (3), @@ -546,29 +546,29 @@ BSD ͳ .\"O set to 2 some more checking is added, but .\"O some conforming programs might fail. .B _FORTIFY_SOURCE -¤¬ 1 ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¥³¥ó¥Ñ¥¤¥é¤ÎºÇŬ²½¥ì¥Ù¥ë¤¬ 1 +が 1 に設定された場合、コンパイラの最適化レベルが 1 .RI ( "gcc\ \-O1" ) -¤«¤½¤ì°Ê¾å¤Ç¤¢¤ì¤Ð¡¢µ¬³Ê¤Ë½àµò¤¹¤ë¥×¥í¥°¥é¥à¤Î¿¶¤ëÉñ¤¤¤ò -ÊѲ½¤µ¤»¤Ê¤¤¤è¤¦¤Ê¥Á¥§¥Ã¥¯¤¬¼Â¹Ô¤µ¤ì¤ë¡£ +かそれ以上であれば、規格に準拠するプログラムの振る舞いを +変化させないようなチェックが実行される。 .B _FORTIFY_SOURCE -¤¬ 2 ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¤µ¤é¤Ê¤ë¥Á¥§¥Ã¥¯¤¬Äɲ䵤ì¤ë¤¬¡¢ -µ¬³Ê¤Ë½àµò¤¹¤ë¥×¥í¥°¥é¥à¤Î¤¤¤¯¤Ä¤«¤¬¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +が 2 に設定された場合、さらなるチェックが追加されるが、 +規格に準拠するプログラムのいくつかが失敗する可能性がある。 .\"O Some of the checks can be performed at compile time, .\"O and result in compiler warnings; .\"O other checks take place at run time, .\"O and result in a run-time error if the check fails. -¤¤¤¯¤Ä¤«¤Î¥Á¥§¥Ã¥¯¤Ï¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¼Â¹Ô¤Ç¤­¡¢¥³¥ó¥Ñ¥¤¥é¤Î·Ù¹ð¤È¤·¤Æ -ɽ¼¨¤µ¤ì¤ë¡£Â¾¤Î¥Á¥§¥Ã¥¯¤Ï¼Â¹Ô»þ¤Ë¹Ô¤ï¤ì¡¢¥Á¥§¥Ã¥¯¤Ë¼ºÇÔ¤·¤¿¾ì¹ç -¤Ë¤Ï¼Â¹Ô»þ¥¨¥é¡¼¤È¤Ê¤ë¡£ +いくつかのチェックはコンパイル時に実行でき、コンパイラの警告として +表示される。他のチェックは実行時に行われ、チェックに失敗した場合 +には実行時エラーとなる。 .\"O Use of this macro requires compiler support, available with .\"O .BR gcc (1) .\"O since version 4.0. -¤³¤Î¥Þ¥¯¥í¤ò»ÈÍѤ¹¤ë¤Ë¤Ï¥³¥ó¥Ñ¥¤¥é¤ÎÂбþ¤¬É¬ÍפǤ¢¤ê¡¢ -¥Ð¡¼¥¸¥ç¥ó 4.0 °Ê¹ß¤Î +このマクロを使用するにはコンパイラの対応が必要であり、 +バージョン 4.0 以降の .BR gcc (1) -¤ÇÍøÍѤǤ­¤ë¡£ +で利用できる。 .\"O .SS Default definitions, implicit definitions, and combining definitions -.SS ¥Ç¥Õ¥©¥ë¥È¤ÎÄêµÁ¡¢°ÅÌÛ¤ÎÄêµÁ¡¢ÁȤ߹ç¤ï¤»ÄêµÁ +.SS デフォルトの定義、暗黙の定義、組み合わせ定義 .PP .\"O If no feature test macros are explicitly defined, .\"O then the following feature test macros are defined by default: @@ -580,16 +580,16 @@ BSD ͳ .\"O (200112L in glibc versions before 2.10; .\"O 199506L in glibc versions before 2.4; .\"O 199309L in glibc versions before 2.1). -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬°ì¤Ä¤âÌÀ¼¨Åª¤ËÄêµÁ¤µ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ -¥Ç¥Õ¥©¥ë¥È¤Çµ¡Ç½¸¡ºº¥Þ¥¯¥í +機能検査マクロが一つも明示的に定義されなかった場合、 +デフォルトで機能検査マクロ .BR _BSD_SOURCE , .BR _SVID_SOURCE , .BR _POSIX_SOURCE , .BR _POSIX_C_SOURCE =200809L -¤¬ÄêµÁ¤µ¤ì¤ë -(¥Ð¡¼¥¸¥ç¥ó 2.10 ¤è¤êÁ°¤Î glibc ¤Ç¤ÏÃÍ¤Ï 200112L¡¢ -¥Ð¡¼¥¸¥ç¥ó 2.4 ¤è¤êÁ°¤Î glibc ¤Ç¤ÏÃÍ¤Ï 199506L¡¢ -¥Ð¡¼¥¸¥ç¥ó 2.1 ¤è¤êÁ°¤Î glibc ¤Ç¤ÏÃÍ¤Ï 199309L)¡£ +が定義される +(バージョン 2.10 より前の glibc では値は 200112L、 +バージョン 2.4 より前の glibc では値は 199506L、 +バージョン 2.1 より前の glibc では値は 199309L)。 .PP .\"O If any of .\"O .BR __STRICT_ANSI__ , @@ -614,11 +614,11 @@ BSD ͳ .BR _XOPEN_SOURCE_EXTENDED , .BR _BSD_SOURCE , .B _SVID_SOURCE -¤Î¤¤¤º¤ì¤«¤¬ÌÀ¼¨Åª¤ËÄêµÁ¤µ¤ì¤¿¾ì¹ç¡¢ +のいずれかが明示的に定義された場合、 .B _BSD_SOURCE -¤È +と .B _SVID_SOURCE -¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤ÏÄêµÁ¤µ¤ì¤Ê¤¤¡£ +はデフォルトでは定義されない。 .\"O If .\"O .B _POSIX_SOURCE @@ -631,24 +631,24 @@ BSD ͳ .\"O .B _XOPEN_SOURCE .\"O is defined with a value of 500 or more, then .B _POSIX_SOURCE -¤È +と .B _POSIX_C_SOURCE -¤¬ÌÀ¼¨Åª¤ËÄêµÁ¤µ¤ì¤Ê¤¤¾ì¹ç¤Ç¡¢ +が明示的に定義されない場合で、 .B __STRICT_ANSI__ -¤¬ÄêµÁ¤µ¤ì¤Ê¤¤¡¢¤â¤·¤¯¤Ï +が定義されない、もしくは .B _XOPEN_SOURCE -¤¬ 500 °Ê¾å¤ÎÃͤÇÄêµÁ¤µ¤ì¤¿¤È¤­¤Ë¤Ï¡¢ +が 500 以上の値で定義されたときには、 .RS 3 .IP * 3 .\"O .B _POSIX_SOURCE .\"O is defined with the value 1; and .B _POSIX_SOURCE -¤¬ÃÍ 1 ¤ÇÄêµÁ¤µ¤ì¡¢¤«¤Ä +が値 1 で定義され、かつ .IP * .\"O .B _POSIX_C_SOURCE .\"O is defined with one of the following values: .B _POSIX_C_SOURCE -¤Ï°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«°ì¤Ä¤ÇÄêµÁ¤µ¤ì¤ë¡£ +は以下の値のいずれか一つで定義される。 .RS 6 .IP \(bu 3 .\"O 2, @@ -657,7 +657,7 @@ BSD ͳ .\"O is defined with a value less than 500; 2 .RB ( _XOPEN_SOURCE -¤¬ 500 ̤Ëþ¤ÎÃͤÇÄêµÁ¤µ¤ì¤¿¾ì¹ç) +が 500 未満の値で定義された場合) .IP \(bu .\"O 199506L, .\"O if @@ -666,36 +666,36 @@ BSD ͳ .\"O or 199506L .RB ( _XOPEN_SOURCE -¤¬ 500 °Ê¾å 600 ̤Ëþ¤ÎÃͤÇÄêµÁ¤µ¤ì¤¿¾ì¹ç) +が 500 以上 600 未満の値で定義された場合) .IP \(bu .\"O (since glibc 2.4) 200112L, .\"O if .\"O .B XOPEN_SOURCE .\"O is defined with a value greater than or equal to 600 and less than 700. -(glibc 2.4 °Ê¹ß) +(glibc 2.4 以降) 200112L .RB ( XOPEN_SOURCE -¤¬ 600 °Ê¾å 700 ̤Ëþ¤ÎÃͤÇÄêµÁ¤µ¤ì¤¿¾ì¹ç) +が 600 以上 700 未満の値で定義された場合) .IP \(bu .\"O (Since glibc 2.10) .\"O 200809L, .\"O if .\"O .B XOPEN_SOURCE .\"O is defined with a value greater than or equal to 700. -(glibc 2.10 °Ê¹ß) +(glibc 2.10 以降) 200809L .RB ( XOPEN_SOURCE -¤¬ 700 °Ê¾å¤ÎÃͤÇÄêµÁ¤µ¤ì¤¿¾ì¹ç) +が 700 以上の値で定義された場合) .IP \(bu .\"O Older versions of glibc do not know about the values .\"O 200112L and 200809L for .\"O .BR _POSIX_C_SOURCE , .\"O and the setting of this macro will depend on the glibc version. -¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Î glibc ¤Ç¤Ï +古いバージョンの glibc では .B _POSIX_C_SOURCE -¤ÎÃͤȤ·¤Æ 200112L ¤ä 200809L ¤Ï¸ºß¤»¤º¡¢ +の値として 200112L や 200809L は存在せず、 .B _POSIX_C_SOURCE -¤ÎÃͤ¬¤É¤¦¤Ê¤ë¤«¤Ï glibc ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤ê°Û¤Ê¤ë¡£ +の値がどうなるかは glibc のバージョンにより異なる。 .IP \(bu .\"O If .\"O .B _XOPEN_SOURCE @@ -706,20 +706,20 @@ BSD ͳ .\"O 200112L, in glibc 2.4 to 2.9; and .\"O 200809L, since glibc 2.10. .B _XOPEN_SOURCE -¤¬Ì¤ÄêµÁ¤Î¾ì¹ç¡¢ +が未定義の場合、 .B _POSIX_C_SOURCE -¤ÎÃÍ¤Ï glibc ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤ê°Û¤Ê¤ë¡£ -¥Ð¡¼¥¸¥ç¥ó 2.4 ¤è¤êÁ°¤Î glibc ¤Ç¤Ï 199506L¡¢ -¥Ð¡¼¥¸¥ç¥ó 2.4 °Ê¹ß 2.9 ̤Ëþ¤Ç¤Ï 200112L¡¢ -glibc 2.10 °Ê¹ß¤Ç¤Ï 200809L ¤È¤Ê¤ë¡£ +の値は glibc のバージョンにより異なる。 +バージョン 2.4 より前の glibc では 199506L、 +バージョン 2.4 以降 2.9 未満では 200112L、 +glibc 2.10 以降では 200809L となる。 .RE .RE .PP .\"O Multiple macros can be defined; the results are additive. -¤Þ¤¿¡¢Ê£¿ô¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¤³¤Î¾ì¹ç¡¢ÄêµÁ¤·¤¿¥Þ¥¯¥í¤Ï¤¹¤Ù¤ÆÍ­¸ú¤Ë¤Ê¤ë¡£ +また、複数のマクロを定義することもできる。 +この場合、定義したマクロはすべて有効になる。 .\"O .SH CONFORMING TO -.SH ½àµò +.SH 準拠 .\"O POSIX.1 specifies .\"O .BR _POSIX_C_SOURCE , .\"O .BR _POSIX_SOURCE , @@ -727,20 +727,20 @@ glibc 2.10 .\"O .BR _XOPEN_SOURCE . .\"O .B _XOPEN_SOURCE_EXTENDED .\"O was specified by XPG4v2 (aka SUSv1). -POSIX.1 ¤Ç¤Ï +POSIX.1 では .BR _POSIX_C_SOURCE , .BR _POSIX_SOURCE , .B _XOPEN_SOURCE -¤¬µ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +が規定されている。 .B _XOPEN_SOURCE_EXTENDED -¤Ï XPG4v2 (ÊÌ̾ SUSv1) ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤¿¡£ +は XPG4v2 (別名 SUSv1) で規定されていた。 .\"O .B _FILE_OFFSET_BITS .\"O is not specified by any standard, .\"O but is employed on some other implementations. .B _FILE_OFFSET_BITS -¤Ï¤É¤Îɸ½à¤Ç¤âµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -¾¤Î¤¤¤¯¤Ä¤«¤Î¼ÂÁõ¤ÇºÎÍѤµ¤ì¤Æ¤¤¤ë¡£ +はどの標準でも規定されていないが、 +他のいくつかの実装で採用されている。 .\"O .BR _BSD_SOURCE , .\"O .BR _SVID_SOURCE , @@ -758,9 +758,9 @@ POSIX.1 .BR _FORTIFY_SOURCE , .BR _REENTRANT , .B _THREAD_SAFE -¤Ï Linux (glibc) ¸ÇÍ­¤Ç¤¢¤ë¡£ +は Linux (glibc) 固有である。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .I .\"O is a Linux/glibc-specific header file. .\"O Other systems have an analogous file, but typically with a different name. @@ -768,11 +768,11 @@ POSIX.1 .\"O required: it is not necessary to explicitly include it in order to .\"O employ feature test macros. .I -¤Ï Linux/glibc ¸ÇÍ­¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ -¾¤Î¥·¥¹¥Æ¥à¤Ë¤âƱÍͤÎÌÜŪ¤Î¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¤¬¡¢ÉáÄ̤ϰ㤦̾Á°¤Ç¤¢¤ë¡£ -¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ï¡¢Â¾¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ë¤è¤êɬÍפ˱þ¤¸¤Æ -¼«Æ°Åª¤Ë¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤ë¡£µ¡Ç½¸¡ºº¥Þ¥¯¥í¤òÍøÍѤ¹¤ë¤¿¤á¤Ë -ÌÀ¼¨Åª¤Ë¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ëɬÍפϤʤ¤¡£ +は Linux/glibc 固有のヘッダファイルである。 +他のシステムにも同様の目的のファイルがあるが、普通は違う名前である。 +このヘッダファイルは、他のヘッダファイルにより必要に応じて +自動的にインクルードされる。機能検査マクロを利用するために +明示的にインクルードする必要はない。 .\"O According to which of the above feature test macros are defined, .\"O .I @@ -783,26 +783,26 @@ POSIX.1 .\"O Programs should \fInever\fP define these macros directly: .\"O instead, the appropriate feature test macro(s) from the .\"O list above should be employed. -¾åµ­¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤Î¤¦¤Á¤É¤ì¤¬ÄêµÁ¤µ¤ì¤¿¤«¤Ë¤·¤¿¤¬¤Ã¤Æ¡¢ +上記の機能検査マクロのうちどれが定義されたかにしたがって、 .I -¤Ï¡¢Â¾¤Î glibc ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç¥Á¥§¥Ã¥¯¤µ¤ì¤ë³Æ¼ï¤Î¾¤Î¥Þ¥¯¥í¤ò¡¢ -ÆâÉô¤ÇÄêµÁ¤¹¤ë¡£¤³¤ì¤é¤Î¥Þ¥¯¥í¤Î̾Á°¤Ï¥¢¥ó¥À¡¼¥¹¥³¥¢ 2¤Ä¤Ç»Ï¤Þ¤ë -(Î㤨¤Ð -.BR __USE_MISC )¡£ -¥æ¡¼¥¶¥×¥í¥°¥é¥à¤Ï¤³¤ì¤é¤Î¥Þ¥¯¥í¤ò \fI·è¤·¤Æ\fP ľÀÜÄêµÁ¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -Âå¤ï¤ê¤Ë¡¢¾åµ­¤Î¥ê¥¹¥È¤Ë¤¢¤ëŬÀڤʵ¡Ç½¸¡ºº¥Þ¥¯¥í¤òÍøÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +は、他の glibc ヘッダファイルでチェックされる各種の他のマクロを、 +内部で定義する。これらのマクロの名前はアンダースコア 2つで始まる +(例えば +.BR __USE_MISC )。 +ユーザプログラムはこれらのマクロを \fI決して\fP 直接定義すべきではない。 +代わりに、上記のリストにある適切な機能検査マクロを利用すべきである。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The program below can be used to explore how the various .\"O feature test macros are set depending on the glibc version .\"O and what feature test macros are explicitly set. .\"O The following shell session, on a system with glibc 2.10, .\"O shows some examples of what we would see: -²¼µ­¤Î¥×¥í¥°¥é¥à¤ò»È¤¦¤È¡¢³Æ¼ï¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ glibc ¤Î¥Ð¡¼¥¸¥ç¥ó -¤Ë±þ¤¸¤Æ¤É¤Î¤è¤¦¤ËÀßÄꤵ¤ì¤ë¤«¤ä¡¢¤É¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ÌÀ¼¨Åª¤Ë -ÀßÄꤵ¤ì¤ë¤«¡¢¤òÄ´¤Ù¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -°Ê²¼¤Ë¼¨¤¹¥·¥§¥ë¡¦¥»¥Ã¥·¥ç¥ó¤Ï¡¢ -glibc 2.10 ¤Î¥·¥¹¥Æ¥à¤Ç¤Î¼Â¹Ô·ë²Ì¤ÎÎã¤Ç¤¢¤ë¡£ +下記のプログラムを使うと、各種の機能検査マクロが glibc のバージョン +に応じてどのように設定されるかや、どの機能検査マクロが明示的に +設定されるか、を調べることができる。 +以下に示すシェル・セッションは、 +glibc 2.10 のシステムでの実行結果の例である。 .in +4n .nf @@ -904,14 +904,14 @@ main(int argc, char *argv[]) } .fi .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR libc (7), .BR standards (7) .sp .\"O The section "Feature Test Macros" under .\"O .IR "info libc" . .I "info libc" -¤Î "Feature Test Macros" ¤ÎÀá¡£ +の "Feature Test Macros" の節。 .\" But beware: the info libc document is out of date (Jul 07, mtk) .sp .I /usr/include/features.h diff --git a/draft/man7/fifo.7 b/draft/man7/fifo.7 index efed3240..58d14716 100644 --- a/draft/man7/fifo.7 +++ b/draft/man7/fifo.7 @@ -15,10 +15,10 @@ .\" .TH FIFO 7 2008-12-03 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° -fifo \- ÀèÆþÀè½ÐÆüì¥Õ¥¡¥¤¥ë¡¢Ì¾Á°ÉÕ¤­¥Ñ¥¤¥× +.SH 名前 +fifo \- 先入先出特殊ファイル、名前付きパイプ .\"O .SH DESCRIPTION -.SH ½ñ¼° +.SH 書式 .\"O A FIFO special file (a named pipe) is similar to a pipe, .\"O except that it is accessed as part of the file system. .\"O It can be opened by multiple processes for reading or @@ -30,15 +30,15 @@ fifo \- .\"O contents on the file system; the file system entry merely .\"O serves as a reference point so that processes can access .\"O the pipe using a name in the file system. -FIFO Æüì¥Õ¥¡¥¤¥ë(̾Á°ÉÕ¤­¥Ñ¥¤¥×)¤Ï¥Ñ¥¤¥×¤Ë»÷¤Æ¤¤¤ë¤¬¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î°ìÉô¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤Æ¤¤¤ëÅÀ¤¬°Û¤Ã¤Æ¤¤¤ë¡£ -Ê£¿ô¤Î¥×¥í¥»¥¹¤¬Æɤ߹þ¤ß¤ä½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤¹¤ë¤³¤È -¤¬¤Ç¤­¤ë¡£¥×¥í¥»¥¹¤¬ FIFO ¤òÄ̤·¥Ç¡¼¥¿¤ò¸ò´¹¤¹¤ë¾ì¹ç¡¢ -¼ÂºÝ¤Ë¤½¤ì¤ò¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤Ï½ñ¤­¹þ¤Þ¤º¡¢¥«¡¼¥Í¥ë¤ÏÁ´¤Æ¤Î -¥Ç¡¼¥¿¤òÆâÉôŪ¤ËÅϤ¹¡£¤³¤Î¤è¤¦¤Ë¡¢FIFO Æüì¥Õ¥¡¥¤¥ë¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -¾å¤Ë¤ÏÆâÍƤò»ý¤¿¤Ê¤¤¤Î¤Ç¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥¨¥ó¥È¥ê¤Ï -¥×¥í¥»¥¹¤¬¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î̾Á°¤ò»ÈÍѤ·¤Æ¤½¤Î¥Ñ¥¤¥×¤Ë -¥¢¥¯¥»¥¹¤Ç¤­¤ë¤è¤¦¤Ë»²¾È¥Ý¥¤¥ó¥È¤òÄ󶡤·¤Æ¤¤¤ë¤Ë²á¤®¤Ê¤¤¡£ +FIFO 特殊ファイル(名前付きパイプ)はパイプに似ているが、 +ファイルシステムの一部に関連付けられている点が異っている。 +複数のプロセスが読み込みや書き込みのためにオープンすること +ができる。プロセスが FIFO を通しデータを交換する場合、 +実際にそれをファイルシステムには書き込まず、カーネルは全ての +データを内部的に渡す。このように、FIFO 特殊ファイルはファイルシステム +上には内容を持たないので、ファイルシステムのエントリは +プロセスがそのファイルシステム上の名前を使用してそのパイプに +アクセスできるように参照ポイントを提供しているに過ぎない。 .PP .\"O The kernel maintains exactly one pipe object for each .\"O FIFO special file that is opened by at least one process. @@ -46,11 +46,11 @@ FIFO .\"O before data can be passed. .\"O Normally, opening the FIFO blocks .\"O until the other end is opened also. -¥«¡¼¥Í¥ë¤Ï¡¢¾¯¤Ê¤¯¤È¤â°ì¤Ä¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë -FIFO Æüì¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¡¢¤½¤ì¤¾¤ì°ì¤Ä¤Î¥Ñ¥¤¥×¤Î¤ß¤ò´ÉÍý¤·¤Æ¤¤¤ë¡£ -¥Ç¡¼¥¿¤¬ÅϤµ¤ì¤ëÁ°¤Ë¤½¤Î FIFO ¤Îξü(½ñ¤­¹þ¤ß¤ÈÆɤ߽Ф·)¤¬¥ª¡¼¥×¥ó -¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£Ä̾FIFO ¤ò¥ª¡¼¥×¥ó¤¹¤ë¤È¡¢ -¤½¤ÎÈ¿ÂЦ¤¬¥ª¡¼¥×¥ó¤µ¤ì¤ë¤Þ¤ÇÄä»ß(block)¤µ¤»¤é¤ì¤ë¡£ +カーネルは、少なくとも一つのプロセスによってオープンされている +FIFO 特殊ファイルについて、それぞれ一つのパイプのみを管理している。 +データが渡される前にその FIFO の両端(書き込みと読み出し)がオープン +されていなければならない。通常、FIFO をオープンすると、 +その反対側がオープンされるまで停止(block)させられる。 .PP .\"O A process can open a FIFO in nonblocking mode. .\"O In this @@ -60,13 +60,13 @@ FIFO .\"O .B ENXIO .\"O (no such device or address) unless the other .\"O end has already been opened. -¥×¥í¥»¥¹¤Ï FIFO ¤òÈóÄä»ß(nonblocking)¥â¡¼¥É¤Ç¥ª¡¼¥×¥ó¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¤³¤Î¾ì¹ç¡¢Æɤ߹þ¤ßÀìÍѤǥª¡¼¥×¥ó¤·¤¿¾ì¹ç¤Ë¤Ï½ñ¤­¹þ¤ß¦¤òï¤â¥ª¡¼¥×¥ó -¤·¤Æ¤¤¤Ê¤¯¤Æ¤âÀ®¸ù¤¹¤ë¡£½ñ¤­¹þ¤ßÀìÍѤǥª¡¼¥×¥ó¤·¤¿¾ì¹ç¤ÏÈ¿ÂЦ¤¬´û¤Ë -¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð +プロセスは FIFO を非停止(nonblocking)モードでオープンすることもできる。 +この場合、読み込み専用でオープンした場合には書き込み側を誰もオープン +していなくても成功する。書き込み専用でオープンした場合は反対側が既に +オープンされていなければ .B ENXIO -(¤½¤Î¤è¤¦¤Ê¥Ç¥Ð¥¤¥¹¤Þ¤¿¤Ï¥¢¥É¥ì¥¹¤Ï¸ºß¤·¤Ê¤¤) -¤È¤¤¤¦¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë¡£ +(そのようなデバイスまたはアドレスは存在しない) +というエラーで失敗する。 .PP .\"O Under Linux, opening a FIFO for read and write will succeed .\"O both in blocking and nonblocking mode. @@ -77,35 +77,35 @@ FIFO .\"O A process .\"O that uses both ends of the connection in order to communicate .\"O with itself should be very careful to avoid deadlocks. -Linux ¤Ç¤Ï¡¢FIFO ¤òÆɤ߹þ¤ß¤È½ñ¤­¹þ¤ßξÍѤ˥ª¡¼¥×¥ó¤·¤¿¾ì¹ç¡¢ -Ää»ß¡¢ÈóÄä»ß¤Î¤É¤Á¤é¤Î¥â¡¼¥É¤Ç¤âÀ®¸ù¤¹¤ë¡£POSIX ¤Ç¤Ï¤³¤Î¾ì¹ç¤Î -Æ°ºî¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£¤³¤ì¤ÏÆɤ߹þ¤ß¦¤¬¤¤¤Ê¤¤»þ¤Ë½ñ¤­¹þ¤ßÍÑ¤Ë -¥ª¡¼¥×¥ó¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¼«Ê¬¼«¿È¤ÈÄÌ¿®¤¹¤ë¤¿¤á¤Ë -ξü¤ò»ÈÍѤ¹¤ë¥×¥í¥»¥¹¤Ï¥Ç¥Ã¥É¥í¥Ã¥¯¤òÈò¤±¤ë¤¿¤á¤ËÈó¾ï¤ËÃí°Õ¿¼¤¯ -¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +Linux では、FIFO を読み込みと書き込み両用にオープンした場合、 +停止、非停止のどちらのモードでも成功する。POSIX ではこの場合の +動作は定義されていない。これは読み込み側がいない時に書き込み用に +オープンするために使用することができる。自分自身と通信するために +両端を使用するプロセスはデッドロックを避けるために非常に注意深く +なければならない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O When a process tries to write to a FIFO that is not opened .\"O for read on the other side, the process is sent a .\"O .B SIGPIPE .\"O signal. -¥×¥í¥»¥¹¤¬¡¢È¿ÂФÎÆɤ߹þ¤ß¦¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤ FIFO ¤ò -½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤·¤è¤¦¤È¤·¤¿¾ì¹ç¡¢¤½¤Î¥×¥í¥»¥¹¤Ë +プロセスが、反対の読み込み側がオープンされていない FIFO を +書き込みのためにオープンしようとした場合、そのプロセスに .B SIGPIPE -¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£ +シグナルが送られる。 .\"O FIFO special files can be created by .\"O .BR mkfifo (3), .\"O and are indicated by .\"O .IR "ls \-l" .\"O with the file type \(aqp\(aq. -FIFO Æüì¥Õ¥¡¥¤¥ë¤Ï +FIFO 特殊ファイルは .BR mkfifo (3) -¤ÇºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¡¢ +で作成することができ、 .IR "ls \-l" -¤Ç¤Ï¥Õ¥¡¥¤¥ë¼ïÊÌ \(aqp\(aq ¤Çɽ¼¨¤µ¤ì¤ë¡£ +ではファイル種別 \(aqp\(aq で表示される。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mkfifo (1), .BR open (2), .BR pipe (2), diff --git a/draft/man7/futex.7 b/draft/man7/futex.7 index ff6132f9..def54013 100644 --- a/draft/man7/futex.7 +++ b/draft/man7/futex.7 @@ -11,34 +11,34 @@ .\" Translated Fri Oct 24 10:37:10 JST 2003 .\" by Suzuki Takashi. .\" -.\"WORD: contend ¶¥¹ç¤¹¤ë -.\"WORD: sleep µ¯¾²ÂÔ¤Á¤¹¤ë -.\"WORD: wake µ¯¾²¤¹¤ë -.\"WORD: wake up µ¯¾²¤¹¤ë +.\"WORD: contend 競合する +.\"WORD: sleep 起床待ちする +.\"WORD: wake 起床する +.\"WORD: wake up 起床する .\" .TH FUTEX 7 2002-12-31 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O futex \- Fast Userspace Locking -futex - ¹â®¥æ¡¼¥¶¶õ´Ö¥í¥Ã¥¯µ¡¹½ +futex - 高速ユーザ空間ロック機構 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .PP .\"O The Linux kernel provides futexes ("Fast Userspace muTexes") .\"O as a building block for fast userspace .\"O locking and semaphores. .\"O Futexes are very basic and lend themselves well for building higher level .\"O locking abstractions such as POSIX mutexes. -Linux ¥«¡¼¥Í¥ë¤Ï¡¢¥æ¡¼¥¶¶õ´Ö¤Ç¹â®¤Ê¥í¥Ã¥¯µ¡¹½¤ä¥»¥Þ¥Õ¥©¤ò»ÈÍѤ¹¤ë¤¿¤á¤Î -´ðÁÃŪÍ×ÁǤȤ·¤Æ futex ("Fast Userspace muTexes"; ¹â®¥æ¡¼¥¶¶õ´Ö mutex) ¤ò -Ä󶡤·¤Æ¤¤¤ë¡£ -futex ¤ÏÈó¾ï¤Ë´ðËÜŪ¤Ê¤â¤Î¤Ç¡¢ POSIX mutex ¤Î¤è¤¦¤Ê¹âÅ٤ʥí¥Ã¥¯µ¡¹½¤Î³µÇ°¤ò -¹½ÃÛ¤¹¤ë¤Î¤ËÌòΩ¤Ã¤Æ¤¤¤ë¡£ +Linux カーネルは、ユーザ空間で高速なロック機構やセマフォを使用するための +基礎的要素として futex ("Fast Userspace muTexes"; 高速ユーザ空間 mutex) を +提供している。 +futex は非常に基本的なもので、 POSIX mutex のような高度なロック機構の概念を +構築するのに役立っている。 .PP .\"O This page does not set out to document all design decisions .\"O but restricts itself to issues relevant for @@ -46,11 +46,11 @@ futex .\"O Most programmers will in fact not be using futexes directly but .\"O instead rely on system libraries built on them, .\"O such as the NPTL pthreads implementation. -¤³¤Î¥Ú¡¼¥¸¤Ï¤¹¤Ù¤Æ¤ÎÀß·×·èÄê¤òµ­½Ò¤¹¤ë¤è¤¦¤Ë¤Ï¤Ê¤Ã¤Æ¤ª¤é¤º¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ä¥é¥¤¥Ö¥é¥ê¤Î³«È¯¤Ë´Ø·¸¤¹¤ë¤³¤È¤¬¤é¤Ë¸Â¤Ã¤Æ¤¤¤ë¡£ -¼ÂºÝ¤Ë¤Ï¥×¥í¥°¥é¥Þ¤Î¿¤¯¤ÏľÀÜ¤Ï futex ¤ò°·¤ï¤Ê¤¤¤¬¡¢¤½¤ÎÂå¤ï¤ê -futex ¤Ë´ð¤Å¤¤¤Æ¹½ÃÛ¤µ¤ì¤¿¥·¥¹¥Æ¥à¥é¥¤¥Ö¥é¥ê (Î㤨¤Ð NPTL ¥¹¥ì¥Ã¥É) ¤Ë -°Í¸¤¹¤ë¤³¤È¤Ë¤Ê¤ë¤À¤í¤¦¡£ +このページはすべての設計決定を記述するようにはなっておらず、 +アプリケーションやライブラリの開発に関係することがらに限っている。 +実際にはプログラマの多くは直接は futex を扱わないが、その代わり +futex に基づいて構築されたシステムライブラリ (例えば NPTL スレッド) に +依存することになるだろう。 .PP .\"O A futex is identified by a piece of memory which can be .\"O shared between different processes. @@ -58,20 +58,20 @@ futex .\"O In its bare form, a futex has semaphore semantics; .\"O it is a counter that can be incremented and decremented atomically; .\"O processes can wait for the value to become positive. -futex ¤Ï°Û¤Ê¤ë¥×¥í¥»¥¹´Ö¤Ç¶¦Í­¤¹¤ë¤³¤È¤Î¤Ç¤­¤ë¥á¥â¥êÊҤǼ±Ê̤µ¤ì¤ë¡£ -¤³¤ì¤é¤Î°Û¤Ê¤ë¥×¥í¥»¥¹¤Ç¤Ï¡¢Æ±¤¸¥¢¥É¥ì¥¹¤¬ÉÕÍ¿¤µ¤ì¤Æ¤¤¤ëɬÍפϤʤ¤¡£ -Íç¤Î»Ñ¤Ç¤Ï futex ¤Î¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤Ï¥»¥Þ¥Õ¥©¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -futex ¤ÏÉÔ²ÄʬÁàºî¤Ç (atomically) ¥¤¥ó¥¯¥ê¥á¥ó¥È¤·¤¿¤ê¥Ç¥¯¥ê¥á¥ó¥È¤·¤¿¤ê¤Ç¤­¤ë -¥«¥¦¥ó¥¿¤Ç¡¢¥×¥í¥»¥¹¤ÏÃͤ¬Àµ¤Ë¤Ê¤ë¤Î¤òÂԤĤ³¤È¤¬¤Ç¤­¤ë¡£ +futex は異なるプロセス間で共有することのできるメモリ片で識別される。 +これらの異なるプロセスでは、同じアドレスが付与されている必要はない。 +裸の姿では futex のセマンティクスはセマフォと同じである。 +futex は不可分操作で (atomically) インクリメントしたりデクリメントしたりできる +カウンタで、プロセスは値が正になるのを待つことができる。 .PP .\"O Futex operation is entirely userspace for the noncontended case. .\"O The kernel is only involved to arbitrate the contended case. .\"O As any sane design will strive for noncontention, .\"O futexes are also optimized for this situation. -futex ¤ÎÁàºî¤Ï¡¢¶¥¹ç¤¬¤Ê¤¤¾ì¹ç¤Ë¤Ï´°Á´¤Ë¥æ¡¼¥¶¶õ´Ö¤Ç¹Ô¤Ê¤ï¤ì¤ë¡£ -¥«¡¼¥Í¥ë¤Ï¶¥¹ç¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤ÎÃçºÛ¤Ë´ØÍ¿¤¹¤ë¤À¤±¤Ç¤¢¤ë¡£ -Îɼ±¤¢¤ëÀ߷פǤ϶¥¹ç¤¬µ¯¤³¤é¤Ê¤¤¤è¤¦ÅØÎϤ¹¤ë¤¬¡¢ -futex ¤â¶¥¹ç¾õÂ֤˴ؤ·¤ÆºÇŬ²½¤µ¤ì¤Æ¤¤¤ë¡£ +futex の操作は、競合がない場合には完全にユーザ空間で行なわれる。 +カーネルは競合が起こった場合の仲裁に関与するだけである。 +良識ある設計では競合が起こらないよう努力するが、 +futex も競合状態に関して最適化されている。 .PP .\"O In its bare form, a futex is an aligned integer which is .\"O only touched by atomic assembler instructions. @@ -79,36 +79,36 @@ futex .\"O .BR mmap (2), .\"O via shared memory segments or because they share memory space, .\"O in which case the application is commonly called multithreaded. -Íç¤Î»Ñ¤Ç¤Ï¡¢ futex ¤ÏÉÔ²Äʬ¤Ê¥¢¥»¥ó¥Ö¥êÌ¿Îá¤Ç¤Î¤ßÁàºî¤µ¤ì¤ë -¥¢¥é¥¤¥ó¥á¥ó¥È¤Î·¤Ã¤¿ int ·¿¤ÎÊÑ¿ô¤Ç¤¢¤ë¡£ -Ê£¿ô¤Î¥×¥í¥»¥¹¤Ï¤³¤Î int ·¿ÊÑ¿ô¤ò¡¢ +裸の姿では、 futex は不可分なアセンブリ命令でのみ操作される +アラインメントの揃った int 型の変数である。 +複数のプロセスはこの int 型変数を、 .BR mmap (2) -¤òÍѤ¤¤ë¤«¡¢ -¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤ò²ð¤¹¤ë¤«¡¢ -¥á¥â¥ê¶õ´Ö¤ò¶¦Í­¤¹¤ë (¤³¤Î¾ì¹ç¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï°ìÈÌŪ¤Ë¥Þ¥ë¥Á¡¦¥¹¥ì¥Ã¥É¤Ç¤¢¤ë¤È¸Æ¤Ð¤ì¤ë) ¤«ÊýË¡¤Ç¶¦Í­¤¹¤ë¡£ +を用いるか、 +共有メモリセグメントを介するか、 +メモリ空間を共有する (この場合、 +アプリケーションは一般的にマルチ・スレッドであると呼ばれる) か方法で共有する。 .\"O .SS "Semantics" -.SS "¥»¥Þ¥ó¥Æ¥£¥¯¥¹" +.SS "セマンティクス" .PP .\"O Any futex operation starts in userspace, .\"O but it may necessary to communicate with the kernel using the .\"O .BR futex (2) .\"O system call. -futex ¤ÎÁàºî¤Ï¤¹¤Ù¤Æ¥æ¡¼¥¶¶õ´Ö¤«¤é»Ï¤Þ¤ë¤¬¡¢É¬Íפ˱þ¤¸¤Æ +futex の操作はすべてユーザ空間から始まるが、必要に応じて .BR futex (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÍѤ¤¤Æ¥«¡¼¥Í¥ë¤ÈÄÌ¿®¤¹¤ë¡£ +システムコールを用いてカーネルと通信する。 .PP .\"O To "up" a futex, execute the proper assembler instructions that .\"O will cause the host CPU to atomically increment the integer. .\"O Afterward, check if it has in fact changed from 0 to 1, in which case .\"O there were no waiters and the operation is done. .\"O This is the noncontended case which is fast and should be common. -futex ¤ò "up" ¤¹¤ë¤Ë¤Ï¡¢ -¥Û¥¹¥È CPU ¤ËÂФ· int ·¿ÊÑ¿ô¤òÉÔ²ÄʬÁàºî¤Ç¥¤¥ó¥¯¥ê¥á¥ó¥È¤¹¤ë¤è¤¦¤Ê¡¢ -ŬÀڤʥ¢¥»¥ó¥Ö¥êÌ¿Îá¤ò¼Â¹Ô¤¹¤ë¡£ -¤½¤Î¤¢¤È¡¢¼ÂºÝ¤Ë 0 ¤«¤é 1 ¤ËÊѲ½¤·¤¿¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤·¡¢ -ÊѲ½¤·¤Æ¤¤¤ì¤ÐÂÔ¤Á¥×¥í¥»¥¹ (waiter) ¤Ï¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ç¤¢¤ê¡¢Áàºî¤Ï´°Î»¤¹¤ë¡£ -¤³¤ì¤Ï¶¥¹ç¤Î¤Ê¤¤¾ì¹ç¤Ç¤¢¤ê¡¢¹â®¤Ç¤è¤¯µ¯¤³¤ë¤Ï¤º¤Ç¤¢¤ë¡£ +futex を "up" するには、 +ホスト CPU に対し int 型変数を不可分操作でインクリメントするような、 +適切なアセンブリ命令を実行する。 +そのあと、実際に 0 から 1 に変化したかどうかをチェックし、 +変化していれば待ちプロセス (waiter) はないということであり、操作は完了する。 +これは競合のない場合であり、高速でよく起こるはずである。 .PP .\"O In the contended case, the atomic increment changed the counter .\"O from \-1 (or some other negative number). @@ -117,11 +117,11 @@ futex .\"O kernel to wake up any waiters using the .\"O .B FUTEX_WAKE .\"O operation. -¶¥¹ç¤¬¤¢¤ë¾ì¹ç¡¢ÉÔ²ÄʬÁàºî¤Î¥¤¥ó¥¯¥ê¥á¥ó¥È¤Ç¥«¥¦¥ó¥¿¤Ï \-1 (¤Þ¤¿¤Ï¾¤ÎÉé¤Î¿ô) -¤«¤éÊѲ½¤¹¤ë¡£¤³¤ì¤¬¸¡½Ð¤µ¤ì¤ë¤È¡¢ÂÔ¤Á¥×¥í¥»¥¹¤¬¤¢¤ë¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ -¥æ¡¼¥¶¶õ´Ö¤Ç¤Ï¥«¥¦¥ó¥¿¤ò 1 ¤ËÀßÄꤷ¡¢ +競合がある場合、不可分操作のインクリメントでカウンタは \-1 (または他の負の数) +から変化する。これが検出されると、待ちプロセスがあるということである。 +ユーザ空間ではカウンタを 1 に設定し、 .B FUTEX_WAKE -¤òÍѤ¤¤Æ¥«¡¼¥Í¥ë¤ËÂÔ¤Á¥×¥í¥»¥¹¤ò wake (µ¯¾²) ¤µ¤»¤ë¤è¤¦»Ø¼¨¤¹¤ë¡£ +を用いてカーネルに待ちプロセスを wake (起床) させるよう指示する。 .PP .\"O Waiting on a futex, to "down" it, is the reverse operation. .\"O Atomically decrement the counter and check if it changed to 0, @@ -131,14 +131,14 @@ futex .\"O This is done using the .\"O .B FUTEX_WAIT .\"O operation. -futex ¤Î³ÍÆÀ¤òÂԤġ¢¤¹¤Ê¤ï¤Á futex ¤ò "down" ¤¹¤ë¤Ë¤ÏÈ¿ÂФÎÁàºî¤ò¹Ô¤Ê¤¦¡£ -ÉÔ²ÄʬÁàºî¤Ç¥«¥¦¥ó¥¿¤ò¥Ç¥¯¥ê¥á¥ó¥È¤·¡¢¥«¥¦¥ó¥¿¤¬ 0 ¤ËÊѲ½¤·¤¿¤«¤É¤¦¤«¤ò -¥Á¥§¥Ã¥¯¤¹¤ë¡£ÊѲ½¤·¤Æ¤¤¤ì¤ÐÁàºî¤Ï´°Î»¤· futex ¤Ï¶¥¹ç¤·¤Æ¤¤¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ -0 ¤Ë¤Ê¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¥×¥í¥»¥¹¤Ï¥«¥¦¥ó¥¿¤ò \-1 ¤ËÀßÄꤷ¡¢ -¾¤Î¥×¥í¥»¥¹¤¬¤½¤Î futex ¤ò up ¤¹¤ë¤Î¤òÂԤĤ褦¥«¡¼¥Í¥ë¤ËÍ׵ᤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ì¤Ï +futex の獲得を待つ、すなわち futex を "down" するには反対の操作を行なう。 +不可分操作でカウンタをデクリメントし、カウンタが 0 に変化したかどうかを +チェックする。変化していれば操作は完了し futex は競合していないということである。 +0 にならなかった場合、プロセスはカウンタを \-1 に設定し、 +他のプロセスがその futex を up するのを待つようカーネルに要求しなければならない。 +これは .B FUTEX_WAIT -¤ò¹Ô¤Ê¤¦¤³¤È¤Ç¼Â¸½¤µ¤ì¤ë¡£ +を行なうことで実現される。 .PP .\"O The .\"O .BR futex (2) @@ -152,56 +152,56 @@ futex .\"O more details. .\"O The same holds for asynchronous futex waiting. .BR futex (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤Ï¡¢¾Êά²Äǽ¤Ê°ú¿ô¤È¤·¤Æ¥¿¥¤¥à¥¢¥¦¥È¤òÅϤ¹¤³¤È¤¬¤Ç¤­¡¢ -¥«¡¼¥Í¥ë¤Ï¤½¤Î futex ¤¬ up ¤µ¤ì¤ë¤Î¤ò¤É¤ì¤¯¤é¤¤¤Î´ü´ÖÂԤĤ٤­¤«¤ò -»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤Î¾ì¹ç¡¢¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤Ï¤â¤Ã¤ÈÊ£»¨¤Ë¤Ê¤ë¤¿¤á¡¢ -¤è¤ê¾ÜºÙ¤Ê¾ðÊó¤òÆÀ¤ë¤Ë¤Ï¥×¥í¥°¥é¥Þ¤Ï +システムコールには、省略可能な引数としてタイムアウトを渡すことができ、 +カーネルはその futex が up されるのをどれくらいの期間待つべきかを +指定することができる。この場合、セマンティクスはもっと複雑になるため、 +より詳細な情報を得るにはプログラマは .BR futex (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -Ʊ¤¸¥Ú¡¼¥¸¤ËÈóƱ´ü¤Î futex ÂÔ¤Á¤Ë¤Ä¤¤¤Æ¤âµ­¤µ¤ì¤Æ¤¤¤ë¡£ +を参照すること。 +同じページに非同期の futex 待ちについても記されている。 .\"O .SH "VERSIONS" -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .PP .\"O Initial futex support was merged in Linux 2.5.7 .\"O but with different semantics from those described above. .\"O Current semantics are available from Linux 2.5.40 onward. -ºÇ½é¤Î futex Âбþ¤Ï Linux 2.5.7 ¤ÇÁȤ߹þ¤Þ¤ì¤¿¤¬¡¢ -¾åµ­¤Î¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤È¤Ï°Û¤Ê¤ë¡£ -¸½ºß¤Î¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤Ï Linux 2.5.40 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +最初の futex 対応は Linux 2.5.7 で組み込まれたが、 +上記のセマンティクスとは異なる。 +現在のセマンティクスは Linux 2.5.40 以降で利用可能である。 .\"O .SH "NOTES" -.SH Ãí°Õ +.SH 注意 .PP .\"O To reiterate, bare futexes are not intended as an easy to use .\"O abstraction for end-users. .\"O Implementors are expected to be assembly literate and to have read .\"O the sources of the futex userspace library referenced .\"O below. -ºÆ¤Ó·«¤êÊÖ¤·¤Æ¤ª¤¯¤¬¡¢Íç¤Î futex ¤Ï¥¨¥ó¥É¥æ¡¼¥¶¤¬Íưפ˻Ȥ¨¤ë³µÇ°¤È¤·¤Æ -°Õ¿Þ¤µ¤ì¤¿¤â¤Î¤Ç¤Ï¤Ê¤¤¡£ -¼ÂÁõ¼Ô¤Ï¡¢¥¢¥»¥ó¥Ö¥ê¸À¸ì¤Ë´·¤ì¤Æ¤ª¤ê¡¢°Ê²¼¤Ëµó¤²¤ë futex ¥æ¡¼¥¶¶õ´Ö¥é¥¤¥Ö¥é¥ê¤Î -¥½¡¼¥¹¤òÆɤ߽ª¤¨¤Æ¤¤¤ë¤³¤È¤¬Í׵ᤵ¤ì¤ë¡£ +再び繰り返しておくが、裸の futex はエンドユーザが容易に使える概念として +意図されたものではない。 +実装者は、アセンブリ言語に慣れており、以下に挙げる futex ユーザ空間ライブラリの +ソースを読み終えていることが要求される。 .PP .\"O This man page illustrates the most common use of the .\"O .BR futex (2) .\"O primitives: it is by no means the only one. -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë¤Ï +このマニュアルページには .BR futex (2) -¥×¥ê¥ß¥Æ¥£¥Ö¤ÎºÇ¤â°ìÈÌŪ¤Ê»ÈÍÑË¡¤¬ -µ­¤µ¤ì¤Æ¤¤¤ë¡£¤³¤ì¤Ï·è¤·¤ÆÍ£°ì¤Î»ÈÍÑË¡¤Ç¤Ï¤Ê¤¤¡£ +プリミティブの最も一般的な使用法が +記されている。これは決して唯一の使用法ではない。 .\"O .\" .SH "AUTHORS" -.\" .SH Ãø¼Ô +.\" .SH 著者 .\" .PP .\"O .\" Futexes were designed and worked on by Hubertus Franke .\"O .\" (IBM Thomas J. Watson Research Center), .\"O .\" Matthew Kirkwood, Ingo Molnar (Red Hat) and .\"O .\" Rusty Russell (IBM Linux Technology Center). .\"O .\" This page written by bert hubert. -.\" futex ¤Ï Hubertus Franke (IBM Thomas J. Watson Research Center) ¤È -.\" Matthew Kirkwood ¡¢ Ingo Molnar (Red Hat) ¡¢ -.\" Rusty Russell (IBM Linux Technology Center) ¤¬À߷פ·¡¢¸¡Æ¤¤·¤¿¡£ -.\" ¤³¤Î¥Ú¡¼¥¸¤Ï bert hubert ¤¬µ­¤·¤¿¡£ +.\" futex は Hubertus Franke (IBM Thomas J. Watson Research Center) と +.\" Matthew Kirkwood 、 Ingo Molnar (Red Hat) 、 +.\" Rusty Russell (IBM Linux Technology Center) が設計し、検討した。 +.\" このページは bert hubert が記した。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR futex (2) .PP .\"O .IR "Fuss, Futexes and Furwocks: Fast Userlevel Locking in Linux" @@ -210,5 +210,5 @@ futex .\"O . .IR "Fuss, Futexes and Furwocks: Fast Userlevel Locking in Linux" (proceedings of the Ottawa Linux Symposium 2002), -futex ¤Î»ÈÍÑÎã¥é¥¤¥Ö¥é¥ê, futex-*.tar.bz2 +futex の使用例ライブラリ, futex-*.tar.bz2 . diff --git a/draft/man7/glob.7 b/draft/man7/glob.7 index 748cd398..0e316bc6 100644 --- a/draft/man7/glob.7 +++ b/draft/man7/glob.7 @@ -26,66 +26,66 @@ .\" Translated Wed 12 Aug 1998 by NAKANO Takeo .\" Updated 2003-09-28 by NAKANO Takeo .\" -.\"WORD: wild card pattern ¥ï¥¤¥ë¥É¥«¡¼¥É¥Ñ¥¿¡¼¥ó -.\"WORD: character class ʸ»ú¥¯¥é¥¹ -.\"WORD: range Îΰè»ØÄê -.\"WORD: complementation Ê佸¹ç -.\"WORD: regular expression Àµµ¬É½¸½ -.\"WORD: bracket expression ¥Ö¥é¥±¥Ã¥Èɽ¸½ -.\"WORD: collating sequence ¾È¹ç½ç½ø -.\"WORD: collating element ¾È¹ç½ç½ø¤ÎÍ×ÁÇ -.\"WORD: current locale ¥«¥ì¥ó¥È¥í¥±¡¼¥ë -.\"WORD: equivalence class Åù²Á¥¯¥é¥¹ +.\"WORD: wild card pattern ワイルドカードパターン +.\"WORD: character class 文字クラス +.\"WORD: range 領域指定 +.\"WORD: complementation 補集合 +.\"WORD: regular expression 正規表現 +.\"WORD: bracket expression ブラケット表現 +.\"WORD: collating sequence 照合順序 +.\"WORD: collating element 照合順序の要素 +.\"WORD: current locale カレントロケール +.\"WORD: equivalence class 等価クラス .\" .TH GLOB 7 2003-08-24 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O glob \- Globbing pathnames -glob \- ¥Ñ¥¹Ì¾¤ò glob ¤¹¤ë +glob \- パス名を glob する .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Long ago, in UNIX V6, there was a program .\"O .I /etc/glob .\"O that would expand wildcard patterns. .\"O Soon afterward this became a shell built-in. -ÀΡ¹ UNIX V6 ¤Ç¤Ï¡¢¥ï¥¤¥ë¥É¥«¡¼¥É¥Ñ¥¿¡¼¥ó¤òŸ³«¤¹¤ë +昔々 UNIX V6 では、ワイルドカードパターンを展開する .I /etc/glob -¤È¸À¤¦¥×¥í¥°¥é¥à¤¬¤¢¤Ã¤¿¡£¤½¤Î¸å¤¹¤°¤Ë¡¢ -¤³¤Îµ¡Ç½¤Ï¥·¥§¥ë¤ËÁȤ߹þ¤Þ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ +と言うプログラムがあった。その後すぐに、 +この機能はシェルに組み込まれるようになった。 .\"O These days there is also a library routine .\"O .BR glob (3) .\"O that will perform this function for a user program. -º£Æü¤Ç¤Ï¡¢¤³¤Îµ¡Ç½¤ò¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥à¤«¤é¤â¼Â¹Ô¤Ç¤­¤ë¤è¤¦¡¢ +今日では、この機能をユーザープログラムからも実行できるよう、 .BR glob (3) -¤È¤¤¤¦¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤â¸ºß¤·¤Æ¤¤¤ë¡£ +というライブラリルーチンも存在している。 .\"O The rules are as follows (POSIX.2, 3.13). -glob ¤Îµ¬Â§¤ò°Ê²¼¤Ë½Ò¤Ù¤ë (POSIX.2 3.13)¡£ +glob の規則を以下に述べる (POSIX.2 3.13)。 .\"O .SS "Wildcard Matching" -.SS ¥ï¥¤¥ë¥É¥«¡¼¥É¥Þ¥Ã¥Á +.SS ワイルドカードマッチ .\"O A string is a wildcard pattern if it contains one of the .\"O characters \(aq?\(aq, \(aq*\(aq or \(aq[\(aq. .\"O Globbing is the operation .\"O that expands a wildcard pattern into the list of pathnames .\"O matching the pattern. .\"O Matching is defined by: -ʸ»úÎó¤Ë \(aq?\(aq, \(aq*\(aq, \(aq[\(aq ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤È¡¢ -¤½¤ì¤Ï¥ï¥¤¥ë¥É¥«¡¼¥É¥Ñ¥¿¡¼¥ó¤È¤ß¤Ê¤µ¤ì¤ë¡£ -¡Öglob ¤¹¤ë¡×¤È¤¤¤¦¤Î¤Ï¡¢¥ï¥¤¥ë¥É¥«¡¼¥É¥Ñ¥¿¡¼¥ó¤òŸ³«¤·¤Æ¡¢ -¤½¤Î¥Ñ¥¿¡¼¥ó¤Ë¥Þ¥Ã¥Á¤¹¤ë¥Ñ¥¹Ì¾¤Î¥ê¥¹¥È¤òÆÀ¤ë¤³¤È¤Ç¤¢¤ë¡£ -¥Þ¥Ã¥Á¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë¡£ +文字列に \(aq?\(aq, \(aq*\(aq, \(aq[\(aq が含まれていると、 +それはワイルドカードパターンとみなされる。 +「glob する」というのは、ワイルドカードパターンを展開して、 +そのパターンにマッチするパス名のリストを得ることである。 +マッチは以下のように定義される。 .\"O A \(aq?\(aq (not between brackets) matches any single character. -(¥Ö¥é¥±¥Ã¥È³°Éô¤Î) \(aq?\(aq ¤Ï¤¢¤é¤æ¤ëñ°ì¤Îʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ +(ブラケット外部の) \(aq?\(aq はあらゆる単一の文字にマッチする。 .\"O A \(aq*\(aq (not between brackets) matches any string, .\"O including the empty string. -(¥Ö¥é¥±¥Ã¥È³°Éô¤Î) \(aq*\(aq ¤Ï¤¢¤é¤æ¤ëʸ»úÎó¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -¶õʸ»úÎó (empty string) ¤Ë¤â¥Þ¥Ã¥Á¤¹¤ë¡£ +(ブラケット外部の) \(aq*\(aq はあらゆる文字列にマッチする。 +空文字列 (empty string) にもマッチする。 .PP .\"O .B "Character classes" -.B "ʸ»ú¥¯¥é¥¹ (character class)" +.B "文字クラス (character class)" .sp .\"O An expression "\fI[...]\fP" where the first character after the .\"O leading \(aq[\(aq is not an \(aq!\(aq matches a single character, @@ -95,15 +95,15 @@ glob .\"O that it is the first character. .\"O (Thus, "\fI[][!]\fP" matches the .\"O three characters \(aq[\(aq, \(aq]\(aq and \(aq!\(aq.) -"\fI[...]\fP" ¤È¸À¤¦É½µ­¤Ï¡¢ÀèƬ¤Î \(aq[\(aq ¤Ë³¤¯ºÇ½é¤Îʸ»ú¤¬ \(aq!\(aq ¤Ç -¤Ê¤±¤ì¤Ð¡¢¥Ö¥é¥±¥Ã¥È¤ÎÃæ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ëʸ»ú¤Î¤É¤ì¤«°ì¤Ä¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -¥Ö¥é¥±¥Ã¥È¤ÎÆâÉô¤Ë´Þ¤Þ¤ì¤ëʸ»úÎó¤Ï¶õ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ \(aq]\(aq ¤âºÇ½é¤Îʸ»ú¤Ë»ØÄꤹ¤ì¤Ð¥Ö¥é¥±¥Ã¥È¤ÎÆâÉô¤Ë´Þ¤á¤ë¤³¤È¤¬ -¤Ç¤­¤ë (¤Ä¤Þ¤ê "\fI[][!]\fP" ¤Ï \(aq[\(aq, \(aq]\(aq, \(aq!\(aq ¤Î -3 ʸ»ú¤Î¤É¤ì¤«¤Ë¥Þ¥Ã¥Á¤¹¤ë)¡£ +"\fI[...]\fP" と言う表記は、先頭の \(aq[\(aq に続く最初の文字が \(aq!\(aq で +なければ、ブラケットの中に含まれている文字のどれか一つにマッチする。 +ブラケットの内部に含まれる文字列は空であってはならない。 +したがって \(aq]\(aq も最初の文字に指定すればブラケットの内部に含めることが +できる (つまり "\fI[][!]\fP" は \(aq[\(aq, \(aq]\(aq, \(aq!\(aq の +3 文字のどれかにマッチする)。 .PP .\"O .B Ranges -.B "Îΰè»ØÄê (range)" +.B "領域指定 (range)" .sp .\"O There is one special convention: .\"O two characters separated by \(aq\-\(aq denote a range. @@ -115,25 +115,25 @@ glob .\"O and "\fI[\-\-0]\fP" matches the .\"O three characters \(aq\-\(aq, \(aq.\(aq, \(aq0\(aq, since \(aq/\(aq .\"O cannot be matched.) -Æüì¤Êɽµ­Ë¡¤¬°ì¤Ä¸ºß¤¹¤ë¡£\(aq\-\(aq ¤ò¶´¤àÆó¤Ä¤Îʸ»ú¤ÏÎΰè»ØÄê¤È¤Ê¤ë¡£ -(¤Ä¤Þ¤ê "\fI[A\-Fa\-f0\-9]\fP" ¤Ï "\fI[ABCDEFabcdef0123456789]\fP" -¤ÈÅù²Á¤È¤Ê¤ë¡£) \(aq\-\(aq ʸ»ú¤½¤Î¤â¤Î¤òÆþ¤ì¤¿¤¤¾ì¹ç¤Ï¡¢ -¥Ö¥é¥±¥Ã¥È¤ÎÀèƬ¤Þ¤¿¤ÏºÇ¸å¤Îʸ»ú¤Ë»ØÄꤹ¤ì¤Ð¤è¤¤¡£ -(¤Ä¤Þ¤ê "\fI[]\-]\fP" ¤ÏÆó¤Ä¤Îʸ»ú \(aq]\(aq ¤È \(aq\-\(aq -¤Ë¥Þ¥Ã¥Á¤·¡¢"\fI[\-\-0]\fP" ¤Ï \(aq\-\(aq, \(aq.\(aq, \(aq0\(aq ¤Î -3 ʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£¤³¤Î´Ö¤Î \(aq/\(aq ¤Ë¤Ï¥Þ¥Ã¥Á¤·¤Ê¤¤¡£¸å½Ò¤ò»²¾È¡£) +特殊な表記法が一つ存在する。\(aq\-\(aq を挟む二つの文字は領域指定となる。 +(つまり "\fI[A\-Fa\-f0\-9]\fP" は "\fI[ABCDEFabcdef0123456789]\fP" +と等価となる。) \(aq\-\(aq 文字そのものを入れたい場合は、 +ブラケットの先頭または最後の文字に指定すればよい。 +(つまり "\fI[]\-]\fP" は二つの文字 \(aq]\(aq と \(aq\-\(aq +にマッチし、"\fI[\-\-0]\fP" は \(aq\-\(aq, \(aq.\(aq, \(aq0\(aq の +3 文字にマッチする。この間の \(aq/\(aq にはマッチしない。後述を参照。) .PP .\"O .B Complementation -.B Ê佸¹ç (complementation) +.B 補集合 (complementation) .sp .\"O An expression "\fI[!...]\fP" matches a single character, namely .\"O any character that is not matched by the expression obtained .\"O by removing the first \(aq!\(aq from it. .\"O (Thus, "\fI[!]a\-]\fP" matches any .\"O single character except \(aq]\(aq, \(aqa\(aq and \(aq\-\(aq.) -"\fI[!...]\fP" ¤È¸À¤¦É½µ­¤Ï¡¢¥Ö¥é¥±¥Ã¥È¤ÎÆâÉô¤Ë´Þ¤Þ¤ì¤Ê¤¤Ã±°ì¤Îʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë -(¤¿¤À¤·ÀèƬ¤Ë¤¢¤ë \(aq!\(aq ¤Ï½ü³°)¡£ (¤Ä¤Þ¤ê "\fI[!]a\-]\fP" ¤Ï -\(aq]\(aq, \(aqa\(aq, \(aq\-\(aq °Ê³°¤Î¤¹¤Ù¤Æ¤Îʸ»ú¤Î¡¢¤É¤ì¤«°ì¤Ä¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£) +"\fI[!...]\fP" と言う表記は、ブラケットの内部に含まれない単一の文字にマッチする +(ただし先頭にある \(aq!\(aq は除外)。 (つまり "\fI[!]a\-]\fP" は +\(aq]\(aq, \(aqa\(aq, \(aq\-\(aq 以外のすべての文字の、どれか一つにマッチする。) .\"O One can remove the special meaning of \(aq?\(aq, \(aq*\(aq and \(aq[\(aq by .\"O preceding them by a backslash, or, in case this is part of @@ -141,53 +141,53 @@ glob .\"O Between brackets these characters stand for themselves. .\"O Thus, "\fI[[?*\e]\fP" matches the .\"O four characters \(aq[\(aq, \(aq?\(aq, \(aq*\(aq and \(aq\e\(aq. -¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å \(aq\e\(aq ¤òÁ°ÃÖ¤¹¤ì¤Ð¡¢ \(aq?\(aq, \(aq*\(aq, \(aq[\(aq -¤ÏÄ̾ï¤Îʸ»ú¤È¤·¤Æ°·¤ï¤ì¤ë¡£ -¤Þ¤¿¤Ï¥·¥§¥ë¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤Î°ìÉô¤Ë»ØÄꤹ¤ë¾ì¹ç¤Ï¡¢ -¥¯¥©¡¼¥È¤Ç°Ï¤Ã¤Æ¤âƱ¤¸¸ú²Ì¤¬ÆÀ¤é¤ì¤ë¡£¥Ö¥é¥±¥Ã¥È¤ÎÆâÉô¤Ç¤Ï¡¢ -¤³¤ì¤é¤Îʸ»ú¤Ï¤½¤Îʸ»ú¼«¿È¤À¤±¤ò°ÕÌ£¤¹¤ë¡£ -¤¹¤Ê¤ï¤Á "\fI[[?*\e]\fP" ¤Ï \(aq[\(aq, \(aq?\(aq, \(aq*\(aq, \(aq\e\(aq -¤Î¤É¤ì¤«°ìʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ +バックスラッシュ \(aq\e\(aq を前置すれば、 \(aq?\(aq, \(aq*\(aq, \(aq[\(aq +は通常の文字として扱われる。 +またはシェルのコマンドラインの一部に指定する場合は、 +クォートで囲っても同じ効果が得られる。ブラケットの内部では、 +これらの文字はその文字自身だけを意味する。 +すなわち "\fI[[?*\e]\fP" は \(aq[\(aq, \(aq?\(aq, \(aq*\(aq, \(aq\e\(aq +のどれか一文字にマッチする。 .\"O .SS Pathnames -.SS "¥Ñ¥¹Ì¾ (pathname)" +.SS "パス名 (pathname)" .\"O Globbing is applied on each of the components of a pathname .\"O separately. .\"O A \(aq/\(aq in a pathname cannot be matched by a \(aq?\(aq or \(aq*\(aq .\"O wildcard, or by a range like "\fI[.\-0]\fP". .\"O A range cannot contain an .\"O explicit \(aq/\(aq character; this would lead to a syntax error. -glob Æ°ºî¤Ï¡¢¥Ñ¥¹Ì¾¤Î¤½¤ì¤¾¤ì¤ÎÉôʬ¤ËÆÈΩ¤ËŬÍѤµ¤ì¤ë¡£ -¥Ñ¥¹Ì¾¤Ë¸ºß¤¹¤ë \(aq/\(aq ¤Ï \(aq?\(aq ¤ä \(aq*\(aq ¥ï¥¤¥ë¥É¥«¡¼¥É¤Ë¤Ï¥Þ¥Ã¥Á¤·¤Ê¤¤¡£ -¤Þ¤¿ "\fI[.\-0]\fP" ¤Î¤è¤¦¤ÊÎΰè»ØÄê¤Ë¤â¥Þ¥Ã¥Á¤·¤Ê¤¤¡£ -Îΰè»ØÄê¤ÏÍÛ¤Ë \(aq/\(aq ʸ»ú¤ò´Þ¤à¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£¤³¤ì¤Ïʸˡ¥¨¥é¡¼¤È¤Ê¤ë¡£ +glob 動作は、パス名のそれぞれの部分に独立に適用される。 +パス名に存在する \(aq/\(aq は \(aq?\(aq や \(aq*\(aq ワイルドカードにはマッチしない。 +また "\fI[.\-0]\fP" のような領域指定にもマッチしない。 +領域指定は陽に \(aq/\(aq 文字を含むことはできない。これは文法エラーとなる。 .\"O If a filename starts with a \(aq.\(aq, .\"O this character must be matched explicitly. .\"O (Thus, \fIrm\ *\fP will not remove .profile, and \fItar\ c\ *\fP will not .\"O archive all your files; \fItar\ c\ .\fP is better.) -\(aq.\(aq ¤Ç»Ï¤Þ¤ë¥Ñ¥¹Ì¾¤Ç¤Ï¡¢¤³¤Îʸ»ú¤ÏÍۤ˥ޥåÁ¤µ¤»¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -(¤Ä¤Þ¤ê \fIrm\ *\fP ¤Ï .profile ¤òºï½ü¤·¤Ê¤¤¡£¤Þ¤¿ \fItar\ c\ *\fP -¤Ç¤Ï¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤Ï¥¢¡¼¥«¥¤¥Ö¤µ¤ì¤Ê¤¤¡£ \fItar\ c\ .\fP ¤ÎÊý¤¬Îɤ¤¡£) +\(aq.\(aq で始まるパス名では、この文字は陽にマッチさせなければならない。 +(つまり \fIrm\ *\fP は .profile を削除しない。また \fItar\ c\ *\fP +ではすべてのファイルはアーカイブされない。 \fItar\ c\ .\fP の方が良い。) .\"O .SS "Empty Lists" -.SS ¶õ¤Î¥ê¥¹¥È +.SS 空のリスト .\"O The nice and simple rule given above: "expand a wildcard pattern .\"O into the list of matching pathnames" was the original UNIX .\"O definition. .\"O It allowed one to have patterns that expand into .\"O an empty list, as in -Àè¤ËÍ¿¤¨¤¿¡¢¤ï¤«¤ê¤ä¤¹¤¯´Êñ¤Ê¥ë¡¼¥ë¡¢ -¡Ö¥ï¥¤¥ë¥É¥«¡¼¥É¥Ñ¥¿¡¼¥ó¤ò¥Þ¥Ã¥Á¤·¤¿¥Ñ¥¹Ì¾¤Î¥ê¥¹¥È¤ËŸ³«¤¹¤ë¡×¤È¸À¤¦¤Î¤Ï¡¢ -¥ª¥ê¥¸¥Ê¥ë¤Î UNIX ¤Ë¤ª¤±¤ëÄêµÁ¤Ç¤¢¤Ã¤¿¡£ -¤³¤ì¤Ï¥Ñ¥¿¡¼¥ó¤¬¶õ¤Î¥ê¥¹¥È¤ËŸ³«¤µ¤ì¤ë¤³¤È¤âµö²Ä¤µ¤ì¤Æ¤¤¤¿¡£ -Î㤨¤Ð +先に与えた、わかりやすく簡単なルール、 +「ワイルドカードパターンをマッチしたパス名のリストに展開する」と言うのは、 +オリジナルの UNIX における定義であった。 +これはパターンが空のリストに展開されることも許可されていた。 +例えば .br .nf xv \-wait 0 *.gif *.jpg .fi .\"O where perhaps no *.gif files are present (and this is not .\"O an error). -¤Ë¤ª¤¤¤Æ¡¢*.gif ¥Õ¥¡¥¤¥ë¤¬Á´¤¯¤Ê¤¤¾ì¹ç¤Ç¤â¡¢ -¤³¤ì¤Ï¶õ¤Î¥ê¥¹¥È¤ËŸ³«¤µ¤ì¤ë¤¿¤á¡¢¥¨¥é¡¼¤Ë¤Ê¤é¤Ê¤¤¡£ +において、*.gif ファイルが全くない場合でも、 +これは空のリストに展開されるため、エラーにならない。 .\"O However, POSIX requires that a wildcard pattern is left .\"O unchanged when it is syntactically incorrect, or the list of .\"O matching pathnames is empty. @@ -195,23 +195,23 @@ glob Æ° .\"O .I bash .\"O one can force the classical behavior by setting .\"O .IR allow_null_glob_expansion=true . -¤·¤«¤· POSIX ¤Ç¤Ï¡¢Ê¸Ë¡Åª¤ËÀµ¤·¤¯¤Ê¤¤¥Ñ¥¿¡¼¥ó¤ä¡¢ -¥Þ¥Ã¥Á¤¬¤Ê¤«¤Ã¤¿¥Ñ¥¿¡¼¥ó¤Ï¡¢ -¤½¤Î¤Þ¤ÞÊѹ¹¤µ¤ì¤º¤Ë»Ä¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +しかし POSIX では、文法的に正しくないパターンや、 +マッチがなかったパターンは、 +そのまま変更されずに残されることになっている。 .I bash -¤Ç¤Ï +では .I allow_null_glob_expansion=true -¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢°ÊÁ°¤Î¿¶¤ëÉñ¤¤¤ËÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を指定することで、以前の振る舞いに設定することができる。 .\"O (Similar problems occur elsewhere. .\"O E.g., where old scripts have -(ƱÍͤÎÌäÂê¤ÏÊ̤ΤȤ³¤í¤Ç¤âµ¯¤³¤Ã¤Æ¤¤¤ë¡£Î㤨¤Ð¡¢¸Å¤¤¥¹¥¯¥ê¥×¥È¤Ë¤ª¤±¤ë +(同様の問題は別のところでも起こっている。例えば、古いスクリプトにおける .br .nf rm \`find . \-name "*~"\` .fi .\"O new scripts require -¤Î¤è¤¦¤Êµ­½Ò¤Ï¡¢¿·¤·¤¤¥¹¥¯¥ê¥×¥È¤Ç¤Ï +のような記述は、新しいスクリプトでは .br .nf rm \-f nosuchfile \`find . \-name "*~"\` @@ -219,33 +219,33 @@ glob Æ° .\"O to avoid error messages from .\"O .I rm .\"O called with an empty argument list.) -¤Î¤è¤¦¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤µ¤â¤Ê¤¤¤È +のようにしなければならない。さもないと .I rm -¤ò°ú¤­¿ô¥ê¥¹¥È¤Ê¤·¤Ç¸Æ¤Ó½Ð¤¹²ÄǽÀ­¤¬¤¢¤ê¡¢ -¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬½Ð¤Æ¤·¤Þ¤¦¡£) +を引き数リストなしで呼び出す可能性があり、 +エラーメッセージが出てしまう。) .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .SS Regular expressions -.SS Àµµ¬É½¸½ +.SS 正規表現 .\"O Note that wildcard patterns are not regular expressions, .\"O although they are a bit similar. .\"O First of all, they match .\"O filenames, rather than text, and secondly, the conventions .\"O are not the same: for example, in a regular expression \(aq*\(aq means zero or .\"O more copies of the preceding thing. -¥ï¥¤¥ë¥É¥«¡¼¥É¥Ñ¥¿¡¼¥ó¤ÏÀµµ¬É½¸½¤È¿¾¯»÷¤Æ¤¤¤ë¤¬¡¢¤·¤«¤·¤³¤Îξ¼Ô¤Ï°Û¤Ê¤ë¡£ -¤Þ¤ºÂè°ì¤Ë¡¢Á°¼Ô¤¬¥Õ¥¡¥¤¥ë̾¤Ë¥Þ¥Ã¥Á¤¹¤ë¤Î¤ËÂФ·¤Æ¡¢ -¸å¼Ô¤Ï¥Æ¥­¥¹¥È¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ÂèÆó¤Ë¡¢¥ë¡¼¥ë¤âƱ¤¸¤Ç¤Ï¤Ê¤¤¡£ -Î㤨¤ÐÀµµ¬É½¸½¤Ë¤ª¤±¤ë \(aq*\(aq ¤Ï¡¢ -Á°ÃÖ¤µ¤ì¤¿Ê¸»ú¤Î 0 °Ê¾å¤Î·«¤êÊÖ¤·¤òɽ¤¹¡£ +ワイルドカードパターンは正規表現と多少似ているが、しかしこの両者は異なる。 +まず第一に、前者がファイル名にマッチするのに対して、 +後者はテキストにマッチする。第二に、ルールも同じではない。 +例えば正規表現における \(aq*\(aq は、 +前置された文字の 0 以上の繰り返しを表す。 .\"O Now that regular expressions have bracket expressions where .\"O the negation is indicated by a \(aq^\(aq, POSIX has declared the .\"O effect of a wildcard pattern "\fI[^...]\fP" to be undefined. -Àµµ¬É½¸½¤Ë¤â¥Ö¥é¥±¥Ã¥Èɽ¸½¤Ï¤¢¤ë¤¬¡¢ÈÝÄê¤Ï \(aq^\(aq ¤Ç¤Ê¤µ¤ì¤ë¡£ -POSIX ¤Ç¤Ï¥ï¥¤¥ë¥É¥«¡¼¥É¥Ñ¥¿¡¼¥ó¤Ë¤ª¤±¤ë "\fI[^...]\fP" ¤ò̤ÄêµÁ¤Ç¤¢¤ë¤È¤·¤Æ¤¤¤ë¡£ +正規表現にもブラケット表現はあるが、否定は \(aq^\(aq でなされる。 +POSIX ではワイルドカードパターンにおける "\fI[^...]\fP" を未定義であるとしている。 .\"O .SS Character classes and Internationalization -.SS ʸ»ú¥¯¥é¥¹¤È¹ñºÝ²½ +.SS 文字クラスと国際化 .\"O Of course ranges were originally meant to be ASCII ranges, .\"O so that "\fI[\ \-%]\fP" stands for "\fI[\ !"#$%]\fP" and "\fI[a\-z]\fP" stands .\"O for "any lowercase letter". @@ -256,19 +256,19 @@ POSIX .\"O character coding in use on the local system, and moreover, is .\"O not convenient if the collating sequence for the local alphabet .\"O differs from the ordering of the character codes. -Îΰè»ØÄê¤Ï¡¢¤â¤È¤â¤È¤Ï¤â¤Á¤í¤ó ASCII ¤Ë¤ª¤±¤ë½ç½øʤӤò°ÕÌ£¤·¤Æ¤¤¤¿¡£ -¤·¤¿¤¬¤Ã¤Æ "\fI[\ \-%]\fP" ¤Ï "\fI[\ !"#$%]\fP" ¤Î°ÕÌ£¤Ç¤¢¤ê¡¢ -"\fI[a\-z]\fP" ¤Ï¡Ö¤¹¤Ù¤Æ¤Î¾®Ê¸»ú¡×¤Î°ÕÌ£¤Ç¤¢¤Ã¤¿¡£ -UNIX ¤Î¼ÂÁõ¤ÎÃæ¤Ë¤Ï¡¢¤³¤ì¤ò³ÈÄ¥¤·¤¿¤â¤Î¤¬Â¸ºß¤·¡¢ -¤½¤³¤Ç¤Ï X\-Y ¤È¤¤¤¦Îΰè»ØÄê¤Ï¡¢X ¤Î¥³¡¼¥É¤È -Y ¤Î¥³¡¼¥É¤Ë¶´¤Þ¤ì¤¿¥³¡¼¥É¤ò»ý¤Äʸ»ú¤¹¤Ù¤Æ¤òɽ¤¹¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤¿¡£ -¤·¤«¤·¡¢¤³¤ì¤Ë¤Ï¥æ¡¼¥¶¡¼¤¬¥í¡¼¥«¥ë¤Ê¥·¥¹¥Æ¥à¤Ë¤ª¤±¤ë -ʸ»ú¥³¡¼¥É¤òÃΤé¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -¤µ¤é¤Ë¥í¡¼¥«¥ë¤Ê¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ËÂФ¹¤ë¾È¹ç½ç½ø -(collating sequence) ¤¬Ê¸»ú¥³¡¼¥É¤Î½ç½ø¤È°Û¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤ÏÉÔÊؤǤ¢¤Ã¤¿¡£ -(ÌõÃí: collating sequence ¤Ë´Ø¤·¤Æ¤Ï +領域指定は、もともとはもちろん ASCII における順序並びを意味していた。 +したがって "\fI[\ \-%]\fP" は "\fI[\ !"#$%]\fP" の意味であり、 +"\fI[a\-z]\fP" は「すべての小文字」の意味であった。 +UNIX の実装の中には、これを拡張したものが存在し、 +そこでは X\-Y という領域指定は、X のコードと +Y のコードに挟まれたコードを持つ文字すべてを表すようになっていた。 +しかし、これにはユーザーがローカルなシステムにおける +文字コードを知らなければならず、 +さらにローカルなアルファベットに対する照合順序 +(collating sequence) が文字コードの順序と異なっている場合には不便であった。 +(訳注: collating sequence に関しては .BR regex (7) -¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡£) +を参照して下さい。) .\"O Therefore, POSIX extended the bracket notation greatly, .\"O both for wildcard patterns and for regular expressions. .\"O In the above we saw three types of items that can occur in a bracket @@ -276,25 +276,25 @@ Y .\"O and (iii) ranges. .\"O POSIX specifies ranges in an internationally .\"O more useful way and adds three more types: -¤·¤¿¤¬¤Ã¤Æ POSIX ¤Ç¤Ï¡¢¥ï¥¤¥ë¥É¥«¡¼¥É¥Ñ¥¿¡¼¥ó¤ÈÀµµ¬É½¸½¤ÎÁÐÊý¤Ë¤ª¤¤¤Æ¡¢ -¥Ö¥é¥±¥Ã¥Èɽµ­¤òÂçÉý¤Ë³ÈÄ¥¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤Þ¤Ç²æ¡¹¤Ï¡¢¥Ö¥é¥±¥Ã¥Èɽµ­¤Ë¤Ï»°¤Ä¤ÎÍ×ÁǤ¬´Þ¤Þ¤ì¤¦¤ë¤³¤È¤ò¸«¤Æ¤­¤¿¡£ -¤¹¤Ê¤ï¤Á (i) ÈÝÄê¡¢(ii) ñ°ì¤Îʸ»ú¡¢(iii) Îΰè»ØÄê¡¢¤Î»°¤Ä¤Ç¤¢¤ë¡£ -POSIX ¤Ç¤Ï¡¢Îΰè»ØÄê¤ò¤è¤ê¹ñºÝ²½¤ËÊØÍø¤Ê¤è¤¦¤ËÄêµÁ¤·¤Æ¤ª¤ê¡¢ -¤Þ¤¿»°¤Ä¤Î¥¿¥¤¥×¤ò¥Ö¥é¥±¥Ã¥Èɽµ­¤ÎÍ×ÁǤȤ·¤ÆÄɲ䷤Ƥ¤¤ë¡£ +したがって POSIX では、ワイルドカードパターンと正規表現の双方において、 +ブラケット表記を大幅に拡張している。 +これまで我々は、ブラケット表記には三つの要素が含まれうることを見てきた。 +すなわち (i) 否定、(ii) 単一の文字、(iii) 領域指定、の三つである。 +POSIX では、領域指定をより国際化に便利なように定義しており、 +また三つのタイプをブラケット表記の要素として追加している。 .\"O (iii) Ranges X\-Y comprise all characters that fall between X .\"O and Y (inclusive) in the currect collating sequence as defined .\"O by the .\"O .B LC_COLLATE .\"O category in the current locale. -(iii) Îΰè»ØÄê X\-Y ¤Ï X ¤È Y ¤Ë¶´¤Þ¤ì¤¿ (ξü´Þ¤à) ¤¹¤Ù¤Æ¤Îʸ»ú¤ò°ÕÌ£¤¹¤ë¡£ -¤³¤Î¤È¤­¡¢¥«¥ì¥ó¥È¥í¥±¡¼¥ë (current locale) ¤Î +(iii) 領域指定 X\-Y は X と Y に挟まれた (両端含む) すべての文字を意味する。 +このとき、カレントロケール (current locale) の .B LC_COLLATE -¥«¥Æ¥´¥ê¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾È¹ç½ç½ø¤¬ÍѤ¤¤é¤ì¤ë¡£ +カテゴリで定義されている照合順序が用いられる。 .\"O (iv) Named character classes, like -(iv) ̾Á°ÉÕ¤­Ê¸»ú¥¯¥é¥¹: °Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¡£ +(iv) 名前付き文字クラス: 以下のようなものである。 .nf [:alnum:] [:alpha:] [:blank:] [:cntrl:] @@ -309,21 +309,21 @@ POSIX .\"O .B LC_CTYPE .\"O category .\"O in the current locale. -¤³¤ì¤òÍѤ¤¤ì¤Ð "\fI[a\-z]\fP" ¤ÎÂå¤ï¤ê¤Ë "\fI[[:lower:]]\fP" ¤Î¤è¤¦¤Ê»ØÄ꤬¤Ç¤­¤ë¡£ -¤Þ¤¿¥Ç¥ó¥Þ¡¼¥¯¤Î¤è¤¦¤Ë¡¢¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Î \(aqz\(aq °Ê¹ß¤Ë -3 ¤Ä¤Îʸ»ú¤¬Â¸ºß¤¹¤ë¤è¤¦¤Ê¾ì¹ç¤Ç¤â¡¢Æ±¤¸¤è¤¦¤ÊÆ°ºî¤¬´üÂԤǤ­¤ë¡£ -¤³¤ì¤é¤Îʸ»ú¥¯¥é¥¹¤Ï¥«¥ì¥ó¥È¥í¥±¡¼¥ë¤Î +これを用いれば "\fI[a\-z]\fP" の代わりに "\fI[[:lower:]]\fP" のような指定ができる。 +またデンマークのように、アルファベットの \(aqz\(aq 以降に +3 つの文字が存在するような場合でも、同じような動作が期待できる。 +これらの文字クラスはカレントロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +カテゴリで定義されている。 .\"O (v) Collating symbols, like "\fI[.ch.]\fP" or "\fI[.a-acute.]\fP", .\"O where the string between "\fI[.\fP" and "\fI.]\fP" is a collating .\"O element defined for the current locale. .\"O Note that this may .\"O be a multicharacter element. -(v) ¾È¹ç½ç½ø¤Ë¤ª¤±¤ë¥·¥ó¥Ü¥ë: "\fI[.ch.]\fP" ¤ä "\fI[.a-acute.]\fP" ¤Î¤è¤¦¤Ë "\fI[.\fP" -¤È "\fI.]\fP" ¤Ç¶´¤Þ¤ì¤¿Ê¸»úÎó¤Ï¡¢¥«¥ì¥ó¥È¥í¥±¡¼¥ë¤ÇÄêµÁ¤µ¤ì¤¿¾È¹ç½ç½ø¤ÎÍ×ÁǤȤʤ롣 -¤¢¤ë°ì¤Ä¤ÎÍ×ÁǤ¬Ê£¿ô¤Îʸ»ú¤«¤é¤Ê¤ë¾ì¹ç¤â¤¢¤ê¤¦¤ë¤³¤È¤ËÃí°Õ¡£ +(v) 照合順序におけるシンボル: "\fI[.ch.]\fP" や "\fI[.a-acute.]\fP" のように "\fI[.\fP" +と "\fI.]\fP" で挟まれた文字列は、カレントロケールで定義された照合順序の要素となる。 +ある一つの要素が複数の文字からなる場合もありうることに注意。 .\"O (vi) Equivalence class expressions, like "\fI[=a=]\fP", .\"O where the string between "\fI[=\fP" and "\fI=]\fP" is any collating @@ -334,18 +334,18 @@ POSIX .\"O .\" mtk May 2007 .\"O to "\fI[aaaaa]\fP" (warning: Latin-1 here), that is, .\"O to "\fI[a[.a-acute.][.a-grave.][.a-umlaut.][.a-circumflex.]]\fP". -(vi) Åù²Á¥¯¥é¥¹É½¸½ (equivalence class expressions): "\fI[=a=]\fP" -¤Î¤è¤¦¤Ë "\fI[=\fP" ¤È "\fI=]\fP" ¤È¤Ç¶´¤Þ¤ì¤¿Ê¸»úÎó¤Ç¤¢¤ë¡£ -¤³¤ì¤ÏÅù²Á¥¯¥é¥¹¤Î¥á¥ó¥Ð¡¼¤Ç¤¢¤ë¾È¹ç½ç½ø¤ÎÍ×ÁǤ¹¤Ù¤Æ¤Ë¤Ê¤ë¡£ -Åù²Á¥¯¥é¥¹¤Ï¥«¥ì¥ó¥È¥í¥±¡¼¥ë¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤Ë¤Ê¤ë¡£ -Î㤨¤Ð¡¢"\fI[[=a=]]\fP" ¤Ï +(vi) 等価クラス表現 (equivalence class expressions): "\fI[=a=]\fP" +のように "\fI[=\fP" と "\fI=]\fP" とで挟まれた文字列である。 +これは等価クラスのメンバーである照合順序の要素すべてになる。 +等価クラスはカレントロケールで定義されているものになる。 +例えば、"\fI[[=a=]]\fP" は "\fI[a[.a\-acute.][.a\-grave.][.a\-umlaut.][.a\-circumflex.]]\fP" -¤ÈÅù²Á¤Ç¤¢¤ë -(Latin-1 ɽµ­¤Ç¤Ï [a\e`{a}\e'{a}\e"{a}\e^{a}] ¤âƱ¤¸¡£ -[ÌõÃí] ÆüËܸì¤Î roff ¥Ú¡¼¥¸¤Ç¤Ï latin1 ¥³¡¼¥É¤¬½Ð¤Ê¤¤¤Î¤Ç¡¢ -¤³¤³¤Ç¤Ï TeX ɽµ­¤Çµ­ºÜ)¡£ +と等価である +(Latin-1 表記では [a\e`{a}\e'{a}\e"{a}\e^{a}] も同じ。 +[訳注] 日本語の roff ページでは latin1 コードが出ないので、 +ここでは TeX 表記で記載)。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sh (1), .BR fnmatch (3), .BR glob (3), diff --git a/draft/man7/hier.7 b/draft/man7/hier.7 index 404e27ac..8b7add4d 100644 --- a/draft/man7/hier.7 +++ b/draft/man7/hier.7 @@ -22,8 +22,8 @@ .\" License. .\" Modified Sun Jul 25 11:05:58 1993 by Rik Faith (faith@cs.unc.edu) .\" Modified Sat Feb 10 16:18:03 1996 by Urs Thuermann (urs@isnogud.escape.de) -.\" Modified Mon Jun 16 20:02:00 1997 by NicoláÔ Lichtmaier -.\" Modified Mon Feb 6 16:41:00 1999 by NicoláÔ Lichtmaier +.\" Modified Mon Jun 16 20:02:00 1997 by Nicol疽 Lichtmaier +.\" Modified Mon Feb 6 16:41:00 1999 by Nicol疽 Lichtmaier .\" Modified Tue Feb 8 16:46:45 2000 by Chris Pepper .\" Modified Fri Sep 7 20:32:45 2001 by Tammy Fox .\" @@ -37,28 +37,28 @@ .\" by TACHIBANA Akira .\" Updated Sat 29 Dec 2001 by NAKANO Takeo .\" -.\"WORD: native language support Êì¹ñ¸ì¥µ¥Ý¡¼¥È +.\"WORD: native language support 母国語サポート .TH HIER 7 2009-03-30 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O hier \- Description of the file system hierarchy -.SH ̾Á° -hier \- ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à³¬ÁؤÎÀâÌÀ +.SH 名前 +hier \- ファイルシステム階層の説明 .\"O .SH DESCRIPTION .\"O A typical Linux system has, among others, the following directories: -.SH ÀâÌÀ -ŵ·¿Åª¤Ê Linux system ¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤Ê¥Ç¥£¥ì¥¯¥È¥ê¤¬¤¢¤ë -(¾¤Ë¤â¤¿¤¯¤µ¤ó¤Î¥Ç¥£¥ì¥¯¥È¥ê¤¬¤¢¤ë¤¬): +.SH 説明 +典型的な Linux system には以下のようなディレクトリがある +(他にもたくさんのディレクトリがあるが): .TP .I / .\"O This is the root directory. .\"O This is where the whole tree starts. -¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¡£¤³¤³¤¬³¬Áؤε¯ÅÀ¤È¤Ê¤ë¡£ +ルートディレクトリ。ここが階層の起点となる。 .TP .I /bin .\"O This directory contains executable programs which are needed in .\"O single user mode and to bring the system up or repair it. -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢¥·¥ó¥°¥ë¥æ¡¼¥¶¡¼¥â¡¼¥É¤Ç -¥·¥¹¥Æ¥à¤Îµ¯Æ°¤ä½¤Íý¤ò¹Ô¤¦ºÝ¤ËɬÍפʼ¹ԷÁ¼°¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤ë¡£ +このディレクトリには、シングルユーザーモードで +システムの起動や修理を行う際に必要な実行形式ファイルが含まれる。 .TP .I /boot .\"O Contains static files for the boot loader. @@ -69,22 +69,22 @@ hier \- .\"O .I /sbin .\"O and .\"O .IR /etc . -¥Ö¡¼¥È¥í¡¼¥À¤¬ÍѤ¤¤ëÀÅŪ¤Ê¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¥Ö¡¼¥È¥×¥í¥»¥¹¤Î´Ö¤ËɬÍפʥե¡¥¤¥ë¤À¤±¤¬ÃÖ¤«¤ì¤ë¡£ -¥Þ¥Ã¥×¥¤¥ó¥¹¥È¡¼¥é¤äÀßÄê¥Õ¥¡¥¤¥ë¤Ï +ブートローダが用いる静的なファイルが含まれている。 +このディレクトリにはブートプロセスの間に必要なファイルだけが置かれる。 +マップインストーラや設定ファイルは .I /sbin -¤ä +や .I /etc -¤ËÃÖ¤¯¤Ù¤­¤Ç¤¢¤ë¡£ +に置くべきである。 .TP .I /dev .\"O Special or device files, which refer to physical devices. .\"O See .\"O .BR mknod (1). -ʪÍý¥Ç¥Ð¥¤¥¹¤ò»²¾È¤·¤Æ¤¤¤ë -¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤ä¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ +物理デバイスを参照している +スペシャルファイルやデバイスファイルの置き場所。 .BR mknod (1) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .TP .I /etc .\"O Contains configuration files which are local to the machine. @@ -98,66 +98,66 @@ hier \- .\"O .I /etc .\"O and you may have links for these files to .\"O .IR /usr/etc . -¥Þ¥·¥ó¸ÇÍ­¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤ë¾ì½ê¡£X11 ¤Î¤è¤¦¤Ê -Â絬ÌϤʥ½¥Õ¥È¥¦¥§¥¢¥Ñ¥Ã¥±¡¼¥¸¤Ç¤Ï¡¢ +マシン固有の設定ファイルが置かれる場所。X11 のような +大規模なソフトウェアパッケージでは、 .I /etc -°Ê²¼¤Ë¹¹¤Ë¥Ñ¥Ã¥±¡¼¥¸Ã±°Ì¤Ç¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤¬ºî¤é¤ì¤ë¤³¤È¤â¤¢¤ë¡£ -¥µ¥¤¥ÈÁ´ÂΤËÍ­¸ú¤ÊÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢¤³¤³¤Ç¤Ï¤Ê¤¯ +以下に更にパッケージ単位でサブディレクトリが作られることもある。 +サイト全体に有効な設定ファイルは、ここではなく .I /usr/etc -¤ËÃÖ¤«¤ì¤ë¤³¤È¤â¤¢¤ë¡£ -¤·¤«¤·¡¢¥×¥í¥°¥é¥à¤«¤é¤Î¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Î»²¾ÈÀè¤Ï¡¢¾ï¤Ë +に置かれることもある。 +しかし、プログラムからのこれらのファイルの参照先は、常に .I /etc -¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +にすべきである。 .I /usr/etc -°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¤Ï¡¢¤½¤ì¤é¤Ø¤Î¥ê¥ó¥¯¤ò +以下のファイルに対しては、それらへのリンクを .I /etc -¤ËÃÖ¤±¤Ð¤è¤¤¡£ +に置けばよい。 .TP .I /etc/opt .\"O Host-specific configuration files for add-on applications installed .\"O in .\"O .IR /opt . .I /opt -¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¥¢¥É¥ª¥ó¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬»È¤¦¡¢ -¥Û¥¹¥È¸ÇÍ­¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ +にインストールされたアドオンアプリケーションが使う、 +ホスト固有の設定ファイルの置き場所。 .TP .I /etc/sgml .\"O This directory contains the configuration files for SGML and XML (optional). -SGML ¤ä XML ¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê (¤Ê¤¯¤Æ¤â¤è¤¤)¡£ +SGML や XML の設定ファイルの置き場所 (なくてもよい)。 .TP .I /etc/skel .\"O When a new user account is created, files from this directory are .\"O usually copied into the user's home directory. -¿·¤¿¤Ë¥æ¡¼¥¶¡¼¥¢¥«¥¦¥ó¥È¤òºî¤ëºÝ¡¢ -Ä̾盧¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤¬ -¥æ¡¼¥¶¡¼¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¡£ +新たにユーザーアカウントを作る際、 +通常このディレクトリにあるファイルが +ユーザーのホームディレクトリにコピーされる。 .TP .I /etc/X11 .\"O Configuration files for the X11 window system (optional). -X11 window system ¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê (¤Ê¤¯¤Æ¤â¤è¤¤)¡£ +X11 window system の設定ファイルの置き場所 (なくてもよい)。 .TP .I /home .\"O On machines with home directories for users, these are usually beneath .\"O this directory, directly or not. .\"O The structure of this directory .\"O depends on local administration decisions. -Ä̾¥æ¡¼¥¶¡¼¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤¬¡¢ -¤³¤Î¥Ç¥£¥ì¥¯¥È¥êľ²¼¤Ê¤¤¤·¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Î²¼¤ËºîÀ®¤µ¤ì¤ë¡£ -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¹½À®¤ò¤É¤¦¤¹¤ë¤«¤Ï¡¢ -¥í¡¼¥«¥ë¥Þ¥·¥ó¤Î´ÉÍý¼Ô¤¬·è¤á¤ë¤³¤È¤Ç¤¢¤ë¡£ +通常、ユーザーのホームディレクトリが、 +このディレクトリ直下ないしサブディレクトリの下に作成される。 +このディレクトリの構成をどうするかは、 +ローカルマシンの管理者が決めることである。 .TP .I /lib .\"O This directory should hold those shared libraries that are necessary .\"O to boot the system and to run the commands in the root file system. -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢¥·¥¹¥Æ¥à¤Îµ¯Æ°»þ¤ËɬÍפʶ¦Í­¥é¥¤¥Ö¥é¥ê¤ä¡¢ -¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤Î¤ËɬÍפʶ¦Í­¥é¥¤¥Ö¥é¥ê¤òÃÖ¤¯¡£ +このディレクトリには、システムの起動時に必要な共有ライブラリや、 +ルートファイルシステムでコマンドを実行するのに必要な共有ライブラリを置く。 .TP .I /media .\"O This directory contains mount points for removable media such as CD .\"O and DVD disks or USB sticks. -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢ -CD/DVD ¥Ç¥£¥¹¥¯¤ä USB ¥¹¥Æ¥£¥Ã¥¯¤Ê¤É¤Î¼è¤ê³°¤·²Äǽ¥á¥Ç¥£¥¢ -(removable media) ÍѤΥޥ¦¥ó¥È¥Ý¥¤¥ó¥È¤¬ÃÖ¤«¤ì¤ë¡£ +このディレクトリには、 +CD/DVD ディスクや USB スティックなどの取り外し可能メディア +(removable media) 用のマウントポイントが置かれる。 .TP .I /mnt .\"O This directory is a mount point for a temporarily mounted file system. @@ -165,16 +165,16 @@ CD/DVD .\"O .I /mnt .\"O contains subdirectories intended to be used as mount points for several .\"O temporary file systems. -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢°ì»þŪ¤Ë¥Þ¥¦¥ó¥È¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÍѤΠ-¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ç¤¢¤ë¡£ -¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ë¤è¤Ã¤Æ¤Ï¡¢°ì»þŪ¤Ë¥Þ¥¦¥ó¥È¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÍѤΠ-¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤È¤·¤Æ¡¢ +このディレクトリは、一時的にマウントするファイルシステム用の +マウントポイントである。 +ディストリビューションによっては、一時的にマウントするファイルシステム用の +マウントポイントとして、 .I /mnt -Æâ¤Ë¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤¬¤¢¤ë¡£ +内にサブディレクトリが用意されている場合がある。 .TP .I /opt .\"O This directory should contain add-on packages that contain static files. -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¥¢¥É¥ª¥ó¥Ñ¥Ã¥±¡¼¥¸¤ÎÀÅŪ¤Ê¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤ë¡£ +このディレクトリにはアドオンパッケージの静的なファイルが置かれる。 .TP .I /proc .\"O This is a mount point for the @@ -183,18 +183,18 @@ CD/DVD .\"O the kernel. .\"O This pseudo-file system is described in more detail in .\"O .BR proc (5). -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï +このディレクトリは .I proc -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ç¤¢¤ë¡£ +ファイルシステムのマウントポイントである。 .I proc -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï¡¢¼Â¹ÔÃæ¥×¥í¥»¥¹¤ä¥«¡¼¥Í¥ë¤Î¾ðÊó¤òÄ󶡤¹¤ë¡£ -¤³¤Îµ¿»÷¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¾ÜºÙ¤Ï¡¢ +ファイルシステムは、実行中プロセスやカーネルの情報を提供する。 +この疑似ファイルシステムの詳細は、 .BR proc (5) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡£ +で説明されている。 .TP .I /root .\"O This directory is usually the home directory for the root user (optional). -Ä̾盧¤³¤¬ root ¥æ¡¼¥¶¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ê¤ë (¤Ê¤¯¤Æ¤â¤è¤¤)¡£ +通常ここが root ユーザのホームディレクトリになる (なくてもよい)。 .TP .I /sbin .\"O Like @@ -202,57 +202,57 @@ CD/DVD .\"O this directory holds commands needed to boot the system, but which are .\"O usually not executed by normal users. .I /bin -¤ÈƱÍͤˡ¢ -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¥·¥¹¥Æ¥à¤Îµ¯Æ°¤ËɬÍפʥ³¥Þ¥ó¥É¤¬´Þ¤Þ¤ì¤ë¡£ -¤¿¤À¤·¤³¤³¤Ë¤Ï¡¢°ìÈ̥桼¥¶¡¼¤ÏÄ̾ï¼Â¹Ô¤·¤Ê¤¤¥³¥Þ¥ó¥É¤¬ÃÖ¤«¤ì¤ë¡£ +と同様に、 +このディレクトリにはシステムの起動に必要なコマンドが含まれる。 +ただしここには、一般ユーザーは通常実行しないコマンドが置かれる。 .TP .I /srv .\"O This directory contains site-specific data that is served by this system. -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢¤³¤Î¥·¥¹¥Æ¥à¤ÇÄ󶡤µ¤ì¤ë -¥µ¥¤¥È¸ÇÍ­¤Î¥Ç¡¼¥¿¤¬ÃÖ¤«¤ì¤ë¡£ +このディレクトリには、このシステムで提供される +サイト固有のデータが置かれる。 .TP .I /tmp .\"O This directory contains temporary files which may be deleted with no .\"O notice, such as by a regular job or at system boot up. -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢ -Äê´üŪ¤Ê¥¸¥ç¥Ö¤Ë¤è¤Ã¤Æ¡¢¤Þ¤¿¤Ï¥·¥¹¥Æ¥àµ¯Æ°»þ¤Ë¡¢ -̵¾ò·ï¤Ëºï½ü¤·¤Æ¹½¤ï¤Ê¤¤°ì»þŪ¤Ê¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤ë¡£ +このディレクトリには、 +定期的なジョブによって、またはシステム起動時に、 +無条件に削除して構わない一時的なファイルが置かれる。 .TP .I /usr .\"O This directory is usually mounted from a separate partition. .\"O It should hold only sharable, read-only data, so that it can be mounted .\"O by various machines running Linux. -Ä̾盧¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢ÆÈΩ¤·¤¿¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬¥Þ¥¦¥ó¥È¤µ¤ì¤ë¡£ -¤³¤³¤Ë¤Ï¡¢¶¦Í­²Äǽ¤ÇÆɤ߹þ¤ßÀìÍѤΤâ¤Î¤À¤±¤¬´Þ¤Þ¤ì¡¢ -¤è¤Ã¤Æ¤¤¤í¤¤¤í¤Ê Linux ¥Þ¥·¥ó¤«¤é¥Þ¥¦¥ó¥È¤Ç¤­¤ë¡£ +通常このディレクトリは、独立したパーティションがマウントされる。 +ここには、共有可能で読み込み専用のものだけが含まれ、 +よっていろいろな Linux マシンからマウントできる。 .TP .I /usr/X11R6 .\"O The X\-Window system, version 11 release 6 (optional). -X Window System, Version 11 release 6 (¤Ê¤¯¤Æ¤â¤è¤¤)¡£ -.\":tati:X(3) ¤Ë¹ç¤ï¤»¤Þ¤·¤¿ +X Window System, Version 11 release 6 (なくてもよい)。 +.\":tati:X(3) に合わせました .TP .I /usr/X11R6/bin .\"O Binaries which belong to the X\-Window system; often, there is a .\"O symbolic link from the more traditional .\"O .I /usr/bin/X11 .\"O to here. -X Window System ¤Î¥Ð¥¤¥Ê¥ê¤ÎÃÖ¤­¾ì½ê¡£ -¸Å¤¤¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë +X Window System のバイナリの置き場所。 +古いディレクトリである .I /usr/bin/X11 -¤«¤é¤³¤³¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬Ä¥¤é¤ì¤Æ¤¤¤ë¤³¤È¤¬Â¿¤¤¡£ +からここにシンボリックリンクが張られていることが多い。 .TP .I /usr/X11R6/lib .\"O Data files associated with the X\-Window system. -X Window System ¤Ë´ØÏ¢¤¹¤ë¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ +X Window System に関連するデータファイルの置き場所。 .TP .I /usr/X11R6/lib/X11 .\"O These contain miscellaneous files needed to run X; Often, there is a .\"O symbolic link from .\"O .I /usr/lib/X11 .\"O to this directory. -¤³¤³¤Ë¤Ï X ¤ÎÆ°ºî¤ËɬÍפʼ¤Î¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +ここには X の動作に必要な種々のファイルが含まれている。 .I /usr/lib/X11 -¤«¤é¤³¤³¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬Ä¥¤é¤ì¤Æ¤¤¤ë¤³¤È¤¬Â¿¤¤¡£ +からここにシンボリックリンクが張られていることが多い。 .TP .I /usr/X11R6/include/X11 .\"O Contains include files needed for compiling programs using the X11 @@ -260,10 +260,10 @@ X Window System .\"O Often, there is a symbolic link from .\"O .I /usr/include/X11 .\"O to this directory. -¤³¤³¤Ë¤Ï X11 Window System ¤ò»È¤Ã¤¿¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤¿¤á¤Ë -ɬÍפʥ¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +ここには X11 Window System を使ったプログラムをコンパイルするために +必要なインクルードファイルが含まれている。 .I /usr/include/X11 -¤«¤é¤³¤³¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬Ä¥¤é¤ì¤Æ¤¤¤ë¤³¤È¤¬Â¿¤¤¡£ +からここにシンボリックリンクが張られていることが多い。 .TP .I /usr/bin .\"O This is the primary directory for executable programs. @@ -271,31 +271,31 @@ X Window System .\"O executed by normal users which are not needed for booting or for .\"O repairing the system and which are not installed locally should be .\"O placed in this directory. -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢¼Â¹Ô·Á¼°¥Õ¥¡¥¤¥ë¤Î¼ç¤ÊÃÖ¤­¾ì½ê¤Ç¤¢¤ë¡£ -¥·¥¹¥Æ¥à¤Î¥Ö¡¼¥È¤ä¥·¥¹¥Æ¥àÉüµì¤Ë¤ÏɬÍפȤµ¤ì¤Ê¤¤¡¢ -°ìÈ̥桼¥¶¡¼¤¬ÍøÍѤ¹¤ë¥³¥Þ¥ó¥É¤Î¿¤¯¤Ï¡¢ -¥í¡¼¥«¥ë¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë¤Î¤Ç¤Ê¤¤¸Â¤ê¡¢ -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤¯¤Ù¤­¤Ç¤¢¤ë¡£ +このディレクトリは、実行形式ファイルの主な置き場所である。 +システムのブートやシステム復旧には必要とされない、 +一般ユーザーが利用するコマンドの多くは、 +ローカルにインストールされるのでない限り、 +このディレクトリに置くべきである。 .TP .I /usr/bin/X11 .\"O is the traditional place to look for X11 executables; on Linux, it .\"O usually is a symbolic link to .\"O .IR /usr/X11R6/bin . -X11 ¥³¥Þ¥ó¥É¤ÎÅÁÅýŪ¤ÊÃÖ¤­¾ì½ê¡£Linux ¤Ç¤Ï¡¢Ä̾ï +X11 コマンドの伝統的な置き場所。Linux では、通常 .I /usr/X11R6/bin -¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬Ä¥¤é¤ì¤Æ¤¤¤ë¡£ +にシンボリックリンクが張られている。 .TP .I /usr/dict .\"O Replaced by .\"O .IR /usr/share/dict . .I /usr/share/dict -¤ËÃÖ¤­´¹¤¨¤é¤ì¤¿¡£ +に置き換えられた。 .TP .I /usr/doc .\"O Replaced by .\"O .IR /usr/share/doc . .I /usr/share/doc -¤ËÃÖ¤­´¹¤¨¤é¤ì¤¿¡£ +に置き換えられた。 .TP .I /usr/etc .\"O Site-wide configuration files to be shared between several machines @@ -308,53 +308,53 @@ X11 .\"O .I /etc .\"O should point to the appropriate files in .\"O .IR /usr/etc . -¥µ¥¤¥ÈÆâÉô¤ÎÊ£¿ô¤Î¥Þ¥·¥ó¤¬¶¦Í­¤¹¤ë¤è¤¦¤ÊÀßÄê¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢¥³¥Þ¥ó¥É¤Ï¤½¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Î»²¾ÈÀè¤ò¡¢¾ï¤Ë +サイト内部の複数のマシンが共有するような設定ファイルが置かれる。 +しかしながら、コマンドはそれらのファイルの参照先を、常に .I /etc -¤Ë¤¹¤Ù¤­¤À¤í¤¦¡£ +にすべきだろう。 .I /etc -¤Î¥Õ¥¡¥¤¥ë¤«¤é¥ê¥ó¥¯¤òÄ¥¤Ã¤Æ¡¢ +のファイルからリンクを張って、 .I /usr/etc -¤ÎŬÀڤʥե¡¥¤¥ë¤ò»Ø¤¹¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +の適切なファイルを指すようにすべきである。 .TP .I /usr/games .\"O Binaries for games and educational programs (optional). -¥²¡¼¥à¥×¥í¥°¥é¥à¤ä¶µ°éÍÑ¥×¥í¥°¥é¥à¤Î¥Ð¥¤¥Ê¥ê¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë (¤Ê¤¯¤Æ¤â¤è¤¤)¡£ +ゲームプログラムや教育用プログラムのバイナリが含まれている (なくてもよい)。 .TP .I /usr/include .\"O Include files for the C compiler. -C ¥³¥ó¥Ñ¥¤¥éÍѤΥ¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +C コンパイラ用のインクルードファイルが含まれている。 .TP .I /usr/include/X11 .\"O Include files for the C compiler and the X\-Window system. .\"O This is .\"O usually a symbolic link to .\"O .IR /usr/X11R6/include/X11 . -C ¥³¥ó¥Ñ¥¤¥é¤È X Window System ÍѤΥ¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -Ä̾盧¤ì¤Ï +C コンパイラと X Window System 用のインクルードファイルが含まれている。 +通常これは .I /usr/inlcude/X11 -¤Ø¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +へのシンボリックリンクになっている。 .TP .I /usr/include/asm .\"O Include files which declare some assembler functions. .\"O This used to be a .\"O symbolic link to .\"O .IR /usr/src/linux/include/asm . -¥¢¥»¥ó¥Ö¥é´Ø¿ô¤ÎÀë¸À¤ò¹Ô¤¦¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢°ÊÁ°¤Ï +アセンブラ関数の宣言を行うインクルードファイルが含まれている。 +このディレクトリは、以前は .I /usr/src/linux/include/asm -¤Ø¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤À¤Ã¤¿¡£ +へのシンボリックリンクだった。 .TP .I /usr/include/linux .\"O This contains information which may change from system release to .\"O system release and used to be a symbolic link to .\"O .I /usr/src/linux/include/linux .\"O to get at operating system specific information. -¤³¤³¤Ë¤Ï¡¢¥·¥¹¥Æ¥à¤Î¥ê¥ê¡¼¥¹¤Î¤¿¤Ó¤´¤È¤ËÊѹ¹¤µ¤ì¤¦¤ë¾ðÊ󤬴ޤޤì¤ë¡£ -¤³¤³¤Ï°ÊÁ°¤Ï +ここには、システムのリリースのたびごとに変更されうる情報が含まれる。 +ここは以前は .I /usr/src/linux/include/linux -¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤µ¤ì¤Æ¤ª¤ê¡¢ -¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¸ÇÍ­¤Î¾ðÊó¤¬ÆÀ¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤¿¡£ +にシンボリックリンクされており、 +オペレーティングシステム固有の情報が得られるようになっていた。 .\"O (Note that one should have include files there that work correctly with .\"O the current libc and in user space. @@ -370,30 +370,30 @@ C .\"O Debian systems don't do this .\"O and use headers from a known good kernel .\"O version, provided in the libc*-dev package.) -(¤³¤³¤ËÃÖ¤¯¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Ï¡¢ -¸½ºß¤Î libc ¤ª¤è¤Ó¥æ¡¼¥¶¶õ´Ö¤ÇÀµ¤·¤¯Æ°ºî¤¹¤ë¤â¤Î¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤·¤«¤· Linux ¤Î¥«¡¼¥Í¥ë¥½¡¼¥¹¤Ï -¥æ¡¼¥¶¥×¥í¥°¥é¥à¤È¤¤¤Ã¤·¤ç¤Ë»È¤¦¤è¤¦¤Ë¤ÏÀ߷פµ¤ì¤Æ¤¤¤Ê¤¤¤·¡¢ -¤¢¤Ê¤¿¤¬»È¤Ã¤Æ¤¤¤ë libc ¤â´ØÃΤ·¤Ê¤¤¡£ +(ここに置くインクルードファイルは、 +現在の libc およびユーザ空間で正しく動作するものでなければならない。 +しかし Linux のカーネルソースは +ユーザプログラムといっしょに使うようには設計されていないし、 +あなたが使っている libc も関知しない。 .I /usr/include/asm -¤È +と .I /usr/include/linux -¤òŬÅö¤Ê¥«¡¼¥Í¥ë¥Ä¥ê¡¼¤Ø¤Î¥ê¥ó¥¯¤Ë¤·¤¿¤ê¤¹¤ë¤È¡¢ÇËþ¤¹¤ë¤Î¤ÏÌܤ˸«¤¨¤Æ¤¤¤ë¡£ -Debian ¤Ç¤Ï¤³¤¦¤»¤º¤Ë¡¢libc*-dev package ¤¬Ä󶡤¹¤ë¡¢ -°ÂÄꤷ¤¿¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤òÃÖ¤¤¤Æ¤¤¤ë¡£) +を適当なカーネルツリーへのリンクにしたりすると、破綻するのは目に見えている。 +Debian ではこうせずに、libc*-dev package が提供する、 +安定したカーネルバージョンのヘッダファイルを置いている。) .TP .I /usr/include/g++ .\"O Include files to use with the GNU C++ compiler. -GNU C++ ¥³¥ó¥Ñ¥¤¥éÍѤΥ¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +GNU C++ コンパイラ用のインクルードファイルが含まれている。 .TP .I /usr/lib .\"O Object libraries, including dynamic libraries, plus some executables .\"O which usually are not invoked directly. .\"O More complicated programs may .\"O have whole subdirectories there. -¥ª¥Ö¥¸¥§¥¯¥È¥é¥¤¥Ö¥é¥ê (¥À¥¤¥Ê¥ß¥Ã¥¯¥é¥¤¥Ö¥é¥ê¤â´Þ¤à) ¤È¡¢ -ľÀܤˤϵ¯Æ°¤µ¤ì¤Ê¤¤¤è¤¦¤Ê¼Â¹Ô·Á¼°¥Õ¥¡¥¤¥ë¾¯¡¹¤È¤¬ÃÖ¤«¤ì¤ë¡£ -Ê£»¨¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¹¹¤Ë¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +オブジェクトライブラリ (ダイナミックライブラリも含む) と、 +直接には起動されないような実行形式ファイル少々とが置かれる。 +複雑なプログラムでは、更にサブディレクトリがあるかもしれない。 .TP .I /usr/lib/X11 .\"O The usual place for data files associated with X programs, and @@ -401,95 +401,95 @@ GNU C++ .\"O On Linux, it usually is .\"O a symbolic link to .\"O .IR /usr/X11R6/lib/X11 . -X ¤Î¥×¥í¥°¥é¥à¤Ë´ØÏ¢¤¹¤ë¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤È¡¢ -X Window System ¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ -Linux ¤Ç¤ÏÄ̾ï +X のプログラムに関連するデータファイルと、 +X Window System の設定ファイルの置き場所。 +Linux では通常 .I /usr/X11R6/lib/X11 -¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬Ä¥¤é¤ì¤Æ¤¤¤ë¡£ +にシンボリックリンクが張られている。 .TP .I /usr/lib/gcc-lib .\"O contains executables and include files for the GNU C compiler, .\"O .BR gcc (1). -GNU C ¥³¥ó¥Ñ¥¤¥é +GNU C コンパイラ .BR gcc (1) -ÍѤμ¹ԷÁ¼°¥Õ¥¡¥¤¥ë¤È¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +用の実行形式ファイルとインクルードファイルが含まれている。 .TP .I /usr/lib/groff .\"O Files for the GNU groff document formatting system. -GNU groff ʸ½ñÀ°·Á¥·¥¹¥Æ¥à¤Î¤¿¤á¤Î¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +GNU groff 文書整形システムのためのファイルが含まれている。 .TP .I /usr/lib/uucp .\"O Files for .\"O .BR uucp (1). .BR uucp (1) -¤Î¤¿¤á¤Î¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +のためのファイルが含まれている。 .TP .I /usr/local .\"O This is where programs which are local to the site typically go. -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢ -¥µ¥¤¥È¥í¡¼¥«¥ë¤Ê¥×¥í¥°¥é¥à¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ëŵ·¿Åª¤Ê¾ì½ê¤Ç¤¢¤ë¡£ +このディレクトリは、 +サイトローカルなプログラムがインストールされる典型的な場所である。 .TP .I /usr/local/bin .\"O Binaries for programs local to the site. -¥µ¥¤¥È¥í¡¼¥«¥ë¤Ê¥×¥í¥°¥é¥à¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +サイトローカルなプログラムが含まれている。 .TP .I /usr/local/doc .\"O Local documentation. -¥µ¥¤¥È¥í¡¼¥«¥ë¤Ê¥É¥­¥å¥á¥ó¥È¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +サイトローカルなドキュメントが含まれている。 .TP .I /usr/local/etc .\"O Configuration files associated with locally installed programs. -¥µ¥¤¥È¥í¡¼¥«¥ë¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¥×¥í¥°¥é¥à¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ +サイトローカルにインストールされたプログラムの設定ファイルの置き場所。 .TP .I /usr/local/games .\"O Binaries for locally installed games. -¥µ¥¤¥È¥í¡¼¥«¥ë¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¥²¡¼¥à¤Î¥Ð¥¤¥Ê¥ê¤ÎÃÖ¤­¾ì½ê¡£ +サイトローカルにインストールされたゲームのバイナリの置き場所。 .TP .I /usr/local/lib .\"O Files associated with locally installed programs. -¥µ¥¤¥È¥í¡¼¥«¥ë¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Î´ØÏ¢¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ +サイトローカルにインストールされたプログラムの関連ファイルの置き場所。 .TP .I /usr/local/include .\"O Header files for the local C compiler. -¥í¡¼¥«¥ë¤Ê C ¥³¥ó¥Ñ¥¤¥é¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ +ローカルな C コンパイラのヘッダファイルの置き場所。 .TP .I /usr/local/info .\"O Info pages associated with locally installed programs. -¥µ¥¤¥È¥í¡¼¥«¥ë¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Î info ¥Ú¡¼¥¸¤ÎÃÖ¤­¾ì½ê¡£ +サイトローカルにインストールされたプログラムの info ページの置き場所。 .TP .I /usr/local/man .\"O Man pages associated with locally installed programs. -¥µ¥¤¥È¥í¡¼¥«¥ë¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÎÃÖ¤­¾ì½ê¡£ +サイトローカルにインストールされたプログラムのマニュアルページの置き場所。 .TP .I /usr/local/sbin .\"O Locally installed programs for system administration. -¥µ¥¤¥È¥í¡¼¥«¥ë¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¥·¥¹¥Æ¥à´ÉÍý¥³¥Þ¥ó¥É¤ÎÃÖ¤­¾ì½ê¡£ +サイトローカルにインストールされたシステム管理コマンドの置き場所。 .TP .I /usr/local/share .\"O Local application data that can be shared among different architectures .\"O of the same OS. -Ʊ¤¸ OS ¤Ê¤é¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤¬°Û¤Ê¤Ã¤Æ¤â¶¦Í­¤Ç¤­¤ë¡¢ -¥í¡¼¥«¥ë¤Ê¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥Ç¡¼¥¿¤ÎÃÖ¤­¾ì½ê¡£ +同じ OS ならアーキテクチャが異なっても共有できる、 +ローカルなアプリケーションデータの置き場所。 .TP .I /usr/local/src .\"O Source code for locally installed software. -¥µ¥¤¥È¥í¡¼¥«¥ë¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¥½¥Õ¥È¥¦¥§¥¢¤Î¥½¡¼¥¹¥³¡¼¥É¤ÎÃÖ¤­¾ì½ê¡£ +サイトローカルにインストールされたソフトウェアのソースコードの置き場所。 .TP .I /usr/man .\"O Replaced by .\"O .IR /usr/share/man . .I /usr/share/man -¤ËÃÖ¤­´¹¤¨¤é¤ì¤¿¡£ +に置き換えられた。 .TP .I /usr/sbin .\"O This directory contains program binaries for system administration .\"O which are not essential for the boot process, for mounting .\"O .IR /usr , .\"O or for system repair. -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢¥·¥¹¥Æ¥à´ÉÍý¥³¥Þ¥ó¥É¤¬´Þ¤Þ¤ì¤ë¡£ -¤³¤³¤ËÃÖ¤«¤ì¤ë¥³¥Þ¥ó¥É¤Ï¡¢¥Ö¡¼¥È¥×¥í¥»¥¹¤ä +このディレクトリには、システム管理コマンドが含まれる。 +ここに置かれるコマンドは、ブートプロセスや .I /usr -¤Î¥Þ¥¦¥ó¥È¡¢¥·¥¹¥Æ¥à¤Î½¤Íý¤Ê¤É¤ËɬÍפʤâ¤Î¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +のマウント、システムの修理などに必要なものであってはならない。 .TP .I /usr/share .\"O This directory contains subdirectories with specific application data, that @@ -500,96 +500,96 @@ GNU groff ʸ .\"O .I /usr/lib .\"O or .\"O .IR /usr/man . -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤´¤È¤Ë¸ÇÍ­¤Ê¥Ç¡¼¥¿ -(Ʊ¤¸ OS ¤Ê¤é¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤¬°ã¤Ã¤Æ¤¤¤Æ¤â¶¦Í­¤Ç¤­¤ë¤â¤Î) -¤¬¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥êñ°Ì¤ÇÃÖ¤«¤ì¤ë¡£ -°ÊÁ°¤Ë¤Ï +このディレクトリには、アプリケーションごとに固有なデータ +(同じ OS ならアーキテクチャが違っていても共有できるもの) +がサブディレクトリ単位で置かれる。 +以前には .IR /usr/doc , .IR /usr/lib , .I /usr/man -¤Ê¤É¤Ë¤¢¤Ã¤¿ÆâÍƤ¬¡¢Â¿¤¯¤³¤³¤ËÃÖ¤«¤ì¤Æ¤¤¤ë¡£ +などにあった内容が、多くここに置かれている。 .TP .I /usr/share/dict .\"O Contains the word lists used by spell checkers. -¥¹¥Ú¥ë¥Á¥§¥Ã¥«ÍѤÎñ¸ì¥ê¥¹¥È¤¬´Þ¤Þ¤ì¤ë¡£ +スペルチェッカ用の単語リストが含まれる。 .TP .I /usr/share/doc .\"O Documentation about installed programs. -¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Î¥É¥­¥å¥á¥ó¥È¤ÎÃÖ¤­¾ì½ê¡£ +インストールされたプログラムのドキュメントの置き場所。 .TP .I /usr/share/games .\"O Static data files for games in .\"O .IR /usr/games . .I /usr/games -¤ËÃÖ¤«¤ì¤¿¥²¡¼¥àÍѤÎÀÅŪ¤Ê¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ +に置かれたゲーム用の静的なデータファイルの置き場所。 .TP .I /usr/share/info .\"O Info pages go here. -info ¥Ú¡¼¥¸¤¬ÃÖ¤«¤ì¤ë¡£ +info ページが置かれる。 .TP .I /usr/share/locale .\"O Locale information goes here. -¥í¥±¡¼¥ë (locale) ¾ðÊó¤¬ÃÖ¤«¤ì¤ë¡£ +ロケール (locale) 情報が置かれる。 .TP .I /usr/share/man .\"O Manual pages go here in subdirectories according to the man page sections. -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¡£³Æ¥Ú¡¼¥¸¤Ï¥»¥¯¥·¥ç¥ó¤Ë±þ¤¸¤¿¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¤ë¡£ +マニュアルページ。各ページはセクションに応じたサブディレクトリに置かれる。 .TP .I /usr/share/man//man[1\-9] .\"O These directories contain manual pages for the .\"O specific locale in source code form. .\"O Systems which use a unique language and code set for all manual pages .\"O may omit the substring. -¤³¤ì¤é¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢ -³Æ¥í¥±¡¼¥ë¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¥½¡¼¥¹¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¡£ -¤¹¤Ù¤Æ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÇƱ¤¸¸À¸ì¤È¥³¡¼¥É¥»¥Ã¥È¤ò»ÈÍѤ¹¤ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +これらのディレクトリには、 +各ロケールのマニュアルページのソースが置かれている。 +すべてのマニュアルページで同じ言語とコードセットを使用するシステムでは、 .I -¤Ï¾Êά¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ +は省略されることがある。 .TP .I /usr/share/misc .\"O Miscellaneous data that can be shared among different architectures of the .\"O same OS. -Ʊ¤¸ OS ¤Ê¤é¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤¬°ã¤Ã¤Æ¤¤¤Æ¤â¶¦Í­¤Ç¤­¤ë¡¢»¨Â¿¤Ê¥Ç¡¼¥¿¤ÎÃÖ¤­¾ì½ê¡£ +同じ OS ならアーキテクチャが違っていても共有できる、雑多なデータの置き場所。 .TP .I /usr/share/nls .\"O The message catalogs for native language support go here. -Êì¹ñ¸ì¥µ¥Ý¡¼¥È (native language support) ÍѤΥá¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤ÎÃÖ¤­¾ì½ê¡£ +母国語サポート (native language support) 用のメッセージカタログの置き場所。 .TP .I /usr/share/sgml .\"O Files for SGML and XML. -SGML ¤ä XML ¤Î¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ +SGML や XML のファイルの置き場所。 .TP .I /usr/share/terminfo .\"O The database for terminfo. -terminfo ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬ÃÖ¤«¤ì¤ë¡£ +terminfo のデータベースが置かれる。 .TP .I /usr/share/tmac .\"O Troff macros that are not distributed with groff. -groff ¤È°ì½ï¤Ë¤ÏÇÛÉÛ¤µ¤ì¤Æ¤¤¤Ê¤¤ troff ¥Þ¥¯¥í¤ÎÃÖ¤­¾ì½ê¡£ +groff と一緒には配布されていない troff マクロの置き場所。 .TP .I /usr/share/zoneinfo .\"O Files for timezone information. -¥¿¥¤¥à¥¾¡¼¥ó¾ðÊó¤Î¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤ë¡£ +タイムゾーン情報のファイルが置かれる。 .TP .I /usr/src .\"O Source files for different parts of the system, included with some packages .\"O for reference purposes. .\"O Don't work here with your own projects, as files .\"O below /usr should be read-only except when installing software. -¥·¥¹¥Æ¥à¾å¤Î¿§¡¹¤Ê¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë -(»²¾ÈÍѤΥѥ屡¼¥¸¤â´Þ¤à) ¤ÎÃÖ¤­¾ì½ê¡£ -¤³¤Î¾ì½ê¤Ç¼«Ê¬¤Î¥×¥í¥¸¥§¥¯¥È¤Îºî¶È¤ò¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ -/usr °Ê²¼¤Î¥Õ¥¡¥¤¥ë¤Ï¥½¥Õ¥È¥¦¥§¥¢¤Î¥¤¥ó¥¹¥È¡¼¥ë¤Î»þ°Ê³°¤Ï -Æɤ߹þ¤ßÀìÍѤˤʤäƤ¤¤ë¤Ù¤­¤À¤«¤é¤Ç¤¢¤ë¡£ +システム上の色々なコンポーネントのソースファイル +(参照用のパッケージも含む) の置き場所。 +この場所で自分のプロジェクトの作業をしてはいけない。 +/usr 以下のファイルはソフトウェアのインストールの時以外は +読み込み専用になっているべきだからである。 .TP .I /usr/src/linux .\"O This was the traditional place for the kernel source. .\"O Some distributions put here the source for the default kernel they ship. .\"O You should probably use another directory when building your own kernel. -¤«¤Ä¤Æ¤Ï¥«¡¼¥Í¥ë¥½¡¼¥¹¤ÎÅÁÅýŪ¤ÊÃÖ¤­¾ì½ê¤À¤Ã¤¿¡£ -¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ë¤è¤Ã¤Æ¤Ï¡¢ -½Ð²Ù»þ¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹¤ò¤³¤³¤ËÃÖ¤¤¤Æ¤¤¤ë¡£ -¼«Ê¬¤Ç¥«¡¼¥Í¥ë¤ò¥Ó¥ë¥É¤¹¤ë¤È¤­¤ÏÊ̤ξì½ê¤ò»È¤¦¤Û¤¦¤¬¤¤¤¤¤À¤í¤¦¡£ +かつてはカーネルソースの伝統的な置き場所だった。 +ディストリビューションによっては、 +出荷時のデフォルトのカーネルのソースをここに置いている。 +自分でカーネルをビルドするときは別の場所を使うほうがいいだろう。 .TP .I /usr/tmp .\"O Obsolete. @@ -597,58 +597,58 @@ groff .\"O to .\"O .IR /var/tmp . .\"O This link is present only for compatibility reasons and shouldn't be used. -º£¤Ç¤ÏÍѤ¤¤é¤ì¤Ê¤¯¤Ê¤Ã¤¿¡£¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï +今では用いられなくなった。このディレクトリは .I /var/tmp -¤Ø¤Î¥ê¥ó¥¯¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¤³¤Î¥ê¥ó¥¯¤Ï¸ß´¹À­¤Î¤¿¤á¤À¤±¤Ë¤¢¤ê¡¢¤â¤Ï¤ä»È¤¦¤Ù¤­¤Ç¤Ê¤¤¡£ +へのリンクにすべきである。 +このリンクは互換性のためだけにあり、もはや使うべきでない。 .TP .I /var .\"O This directory contains files which may change in size, such as spool .\"O and log files. -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢¥¹¥×¡¼¥ë¥Õ¥¡¥¤¥ë¤ä¥í¥°¥Õ¥¡¥¤¥ë¤Î¤è¤¦¤Ê¡¢ -¥µ¥¤¥º¤¬ÊѲ½¤¹¤ë¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤ë¡£ +このディレクトリには、スプールファイルやログファイルのような、 +サイズが変化するファイルが置かれる。 .TP .I /var/adm .\"O This directory is superseded by .\"O .I /var/log .\"O and should be a symbolic link to .\"O .IR /var/log . -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï +このディレクトリは .I /var/log -¤ËÃÖ¤­´¹¤¨¤é¤ì¤¿¡£ -¤³¤³¤Ï +に置き換えられた。 +ここは .I /var/log -¤Ø¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +へのシンボリックリンクにすべきである。 .TP .I /var/backups .\"O Reserved for historical reasons. -Îò»ËŪ¤ÊÍýͳ¤«¤é¤Þ¤À»Ä¤Ã¤Æ¤¤¤ë¡£ +歴史的な理由からまだ残っている。 .TP .I /var/cache .\"O Data cached for programs. -¥×¥í¥°¥é¥à¤Î¤¿¤á¤Ë¥­¥ã¥Ã¥·¥å¤µ¤ì¤¿¥Ç¡¼¥¿¤ÎÃÖ¤­¾ì½ê¡£ +プログラムのためにキャッシュされたデータの置き場所。 .TP .IR /var/catman/cat[1\-9] " or " /var/cache/man/cat[1\-9] .\"O These directories contain preformatted manual pages according to their .\"O man page section. .\"O (The use of preformatted manual pages is deprecated.) -¤³¤ì¤é¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢À°·ÁºÑ¤ß¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤¬¡¢ -¥Ú¡¼¥¸¤Î¥»¥¯¥·¥ç¥ó¤Ë½¾¤Ã¤ÆÃÖ¤«¤ì¤Æ¤¤¤ë¡£ -(À°·ÁºÑ¤ß¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÎÍøÍѤϿ侩¤µ¤ì¤Æ¤¤¤Ê¤¤¡£) +これらのディレクトリには、整形済みのマニュアルページが、 +ページのセクションに従って置かれている。 +(整形済みマニュアルページの利用は推奨されていない。) .TP .I /var/cron .\"O Reserved for historical reasons. -Îò»ËŪ¤ÊÍýͳ¤«¤é¤Þ¤À»Ä¤Ã¤Æ¤¤¤ë¡£ +歴史的な理由からまだ残っている。 .TP .I /var/lib .\"O Variable state information for programs. -¥×¥í¥°¥é¥à¤Î¾õÂ֤˴ؤ¹¤ë¾ðÊó¤Î¤¦¤Á¡¢²ÄÊѤʤâ¤Î¤ÎÃÖ¤­¾ì½ê¡£ +プログラムの状態に関する情報のうち、可変なものの置き場所。 .TP .I /var/local .\"O Variable data for .\"O .IR /usr/local . .I /usr/local -ÍѤβÄÊѥǡ¼¥¿¤ÎÃÖ¤­¾ì½ê¡£ +用の可変データの置き場所。 .TP .I /var/lock .\"O Lock files are placed in this directory. @@ -661,132 +661,132 @@ groff .\"O The format used is that of HDU UUCP lock files, that is, lock files .\"O contain a PID as a 10-byte ASCII decimal number, followed by a newline .\"O character. -¥í¥Ã¥¯¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ -¥Ç¥Ð¥¤¥¹¤Î¥í¥Ã¥¯¥Õ¥¡¥¤¥ë¤Î̿̾¤Ï¡¢´·½¬¤È¤·¤Æ +ロックファイルの置き場所。 +デバイスのロックファイルの命名は、慣習として .I LCK.. -¤È¤µ¤ì¤Æ¤¤¤ë¡£¤³¤³¤Ç +とされている。ここで .I -¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ç¤Î¥Ç¥Ð¥¤¥¹Ì¾¤Ç¤¢¤ë¡£ -ÍøÍѤµ¤ì¤Æ¤¤¤ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï -HDU UUCP ¤Î¥í¥Ã¥¯¥Õ¥¡¥¤¥ë¤Î¤â¤Î¤Ç¤¢¤ë¡£ -¤¹¤Ê¤ï¤Á³Æ¥í¥Ã¥¯¥Õ¥¡¥¤¥ë¤Ë¤Ï -¥¢¥¹¥­¡¼ 10 ¿Ê¿ôÃÍʸ»ú¤Çɽµ­¤·¤¿ PID 10 ¥Ð¥¤¥È¤È¡¢ -¤½¤ì¤Ë³¤¤¤Æ²þ¹Ôʸ»ú¤È¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +はファイルシステム上でのデバイス名である。 +利用されているフォーマットは +HDU UUCP のロックファイルのものである。 +すなわち各ロックファイルには +アスキー 10 進数値文字で表記した PID 10 バイトと、 +それに続いて改行文字とが含まれている。 .TP .I /var/log .\"O Miscellaneous log files. -¼ï¡¹¤Î¥í¥°¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ +種々のログファイルの置き場所。 .TP .I /var/opt .\"O Variable data for .\"O .IR /opt . .I /opt -ÍѤβÄÊѥǡ¼¥¿¤ÎÃÖ¤­¾ì½ê¡£ +用の可変データの置き場所。 .TP .I /var/mail .\"O Users' mailboxes. .\"O Replaces .\"O .IR /var/spool/mail . -¥æ¡¼¥¶¤Î¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¤ÎÃÖ¤­¾ì½ê¡£ +ユーザのメールボックスの置き場所。 .I /var/spool/mail -¤òÃÖ¤­´¹¤¨¤¿¡£ +を置き換えた。 .TP .I /var/msgs .\"O Reserved for historical reasons. -Îò»ËŪ¤ÊÍýͳ¤«¤é¤Þ¤À»Ä¤Ã¤Æ¤¤¤ë¡£ +歴史的な理由からまだ残っている。 .TP .I /var/preserve .\"O Reserved for historical reasons. -Îò»ËŪ¤ÊÍýͳ¤«¤é¤Þ¤À»Ä¤Ã¤Æ¤¤¤ë¡£ +歴史的な理由からまだ残っている。 .TP .I /var/run .\"O Run-time variable files, like files holding process identifiers (PIDs) .\"O and logged user information .\"O .IR (utmp) . .\"O Files in this directory are usually cleared when the system boots. -¼Â¹Ô»þ¤Î²ÄÊÑ¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤ë¡£ -Î㤨¤Ð¥×¥í¥»¥¹¼±ÊÌ»Ò (PID) ¤òÊÝ»ý¤¹¤ë¥Õ¥¡¥¤¥ë¤ä¡¢ -¥æ¡¼¥¶¤Î¥í¥°¥¤¥ó¾ðÊó¥Õ¥¡¥¤¥ë +実行時の可変ファイルが置かれる。 +例えばプロセス識別子 (PID) を保持するファイルや、 +ユーザのログイン情報ファイル .I (utmp) -¤Ê¤É¤Ç¤¢¤ë¡£ -¤³¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢Ä̾亮¥¹¥Æ¥àµ¯Æ°»þ¤Ëºï½ü¤µ¤ì¤ë¡£ +などである。 +ここのファイルは、通常システム起動時に削除される。 .TP .I /var/spool .\"O Spooled (or queued) files for various programs. -¿§¡¹¤Ê¥×¥í¥°¥é¥à¤Î¥¹¥×¡¼¥ë¥Õ¥¡¥¤¥ë (¤¢¤ë¤¤¤Ï¥­¥å¡¼¥Õ¥¡¥¤¥ë) ¤ÎÃÖ¤­¾ì½ê¡£ +色々なプログラムのスプールファイル (あるいはキューファイル) の置き場所。 .TP .I /var/spool/at .\"O Spooled jobs for .\"O .BR at (1). .BR at (1) -¤Î¥¸¥ç¥Ö¥¹¥×¡¼¥ë¡£ +のジョブスプール。 .TP .I /var/spool/cron .\"O Spooled jobs for .\"O .BR cron (8). .BR cron (8) -¤Î¥¸¥ç¥Ö¥¹¥×¡¼¥ë¡£ +のジョブスプール。 .TP .I /var/spool/lpd .\"O Spooled files for printing. -°õºþÍѤΥ¹¥×¡¼¥ë¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤ë¡£ +印刷用のスプールファイルが置かれる。 .TP .I /var/spool/mail .\"O Replaced by .\"O .IR /var/mail . .I /var/mail -¤ËÃÖ¤­´¹¤¨¤é¤ì¤¿¡£ +に置き換えられた。 .TP .I /var/spool/mqueue .\"O Queued outgoing mail. -¥­¥å¡¼¥¤¥ó¥°¤µ¤ì¤¿Á÷¿®¥á¡¼¥ë¤ÎÃÖ¤­¾ì½ê¡£ +キューイングされた送信メールの置き場所。 .TP .I /var/spool/news .\"O Spool directory for news. -¥Ë¥å¡¼¥¹¤Î¥¹¥×¡¼¥ë¥Ç¥£¥ì¥¯¥È¥ê¡£ +ニュースのスプールディレクトリ。 .TP .I /var/spool/rwho .\"O Spooled files for .\"O .BR rwhod (8). .BR rwhod (8) -¤Î¥¹¥×¡¼¥ë¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ +のスプールファイルの置き場所。 .TP .I /var/spool/smail .\"O Spooled files for the .\"O .BR smail (1) .\"O mail delivery program. -¥á¡¼¥ëÇÛÁ÷¥×¥í¥°¥é¥à +メール配送プログラム .BR smail (1) -¤Î¥¹¥×¡¼¥ë¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ +のスプールファイルの置き場所。 .TP .I /var/spool/uucp .\"O Spooled files for .\"O .BR uucp (1). .BR uucp (1) -¤Î¥¹¥×¡¼¥ë¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ +のスプールファイルの置き場所。 .TP .I /var/tmp .\"O Like .\"O .IR /tmp , .\"O this directory holds temporary files stored for an unspecified duration. .I /tmp -¤È»÷¤Æ¤¤¤ë¤¬¡¢ -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¤ë°ì»þŪ¤Ê¥Õ¥¡¥¤¥ë¤ÏÊݸ´ü´Ö¤ÎÀ©¸Â¤¬¤Ê¤¤¡£ +と似ているが、 +このディレクトリに置かれる一時的なファイルは保存期間の制限がない。 .TP .I /var/yp .\"O Database files for NIS. -NIS ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ +NIS のデータベースファイルの置き場所。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 The Filesystem Hierarchy Standard, Version 2.2 . .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O This list is not exhaustive; different systems may be configured .\"O differently. -¤³¤Î¥ê¥¹¥È¤ÏÌÖÍåŪ¤Ê¤â¤Î¤Ç¤Ï¤Ê¤¤¡£ -¸Ä¡¹¤Î¥·¥¹¥Æ¥à¤Ç¤Ï°Û¤Ê¤ëÉôʬ¤¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +このリストは網羅的なものではない。 +個々のシステムでは異なる部分があるかもしれない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR find (1), .BR ln (1), .BR proc (5), diff --git a/draft/man7/icmp.7 b/draft/man7/icmp.7 index d6b58913..0f91709d 100644 --- a/draft/man7/icmp.7 +++ b/draft/man7/icmp.7 @@ -9,16 +9,16 @@ .\" Translated 1999-12-06, NAKANO Takeo .\" Updated 2008-12-26, Akihiro MOTOKI , LDP v3.14 .\" -.\"WORD destination route ¹Ô¤­Àè·ÐÏ© -.\"WORD token packet filter ¥È¡¼¥¯¥ó¡¦¥Ñ¥±¥Ã¥È¡¦¥Õ¥£¥ë¥¿ +.\"WORD destination route 行き先経路 +.\"WORD token packet filter トークン・パケット・フィルタ .\" .TH ICMP 7 2010-02-25 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O icmp, IPPROTO_ICMP \- Linux IPv4 ICMP kernel module. -.SH ̾Á° -icmp, IPPROTO_ICMP \- Linux IPv4 ICMP ¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë +.SH 名前 +icmp, IPPROTO_ICMP \- Linux IPv4 ICMP カーネルモジュール .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This kernel protocol module implements the Internet Control .\"O Message Protocol defined in RFC\ 792. .\"O It is used to signal error conditions and for diagnosis. @@ -26,13 +26,13 @@ icmp, IPPROTO_ICMP \- Linux IPv4 ICMP .\"O instead it communicates with the other protocols in the kernel .\"O and these pass the ICMP errors to the application layers. .\"O The kernel ICMP module also answers ICMP requests. -¤³¤Î¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¤Ï RFC\ 792 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë Internet -Control Message Protocol ¤ò¼ÂÁõ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î¥×¥í¥È¥³¥ë¤Ï¥¨¥é¡¼¾õ¶·¤òÃΤ餻¤¿¤ê¿ÇÃǤò¹Ô¤¦¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ -¥æ¡¼¥¶¡¼¤Ï¤³¤Î¥â¥¸¥å¡¼¥ë¤È¤ÏľÀܤˤÏÄÌ¿®¤Ç¤­¤Ê¤¤¡£ -¤³¤Î¥â¥¸¥å¡¼¥ë¤Ï¥«¡¼¥Í¥ë¤Î¾¤Î¥×¥í¥È¥³¥ë¤ÈÄÌ¿®¤·¡¢ -¤½¤ì¤é¤Î¥×¥í¥È¥³¥ë¤¬ ICMP ¥¨¥é¡¼¤ò¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥ì¥¤¥ä¤ËÅϤ¹¡£ -¥«¡¼¥Í¥ë¤Î ICMP ¥â¥¸¥å¡¼¥ë¤Ï ICMP ¥ê¥¯¥¨¥¹¥È¤ËÂФ¹¤ë±þÅú¤â¹Ô¤¦¡£ +このカーネルモジュールは RFC\ 792 で定義されている Internet +Control Message Protocol を実装したものである。 +このプロトコルはエラー状況を知らせたり診断を行うために用いられる。 +ユーザーはこのモジュールとは直接には通信できない。 +このモジュールはカーネルの他のプロトコルと通信し、 +それらのプロトコルが ICMP エラーをアプリケーションレイヤに渡す。 +カーネルの ICMP モジュールは ICMP リクエストに対する応答も行う。 .PP .\"O A user protocol may receive ICMP packets for all local sockets by opening .\"O a raw socket with the protocol @@ -45,33 +45,33 @@ Control Message Protocol .\"O socket option. .\"O ICMP packets are always processed by the kernel too, even .\"O when passed to a user socket. -raw ¥½¥±¥Ã¥È¤ò¥×¥í¥È¥³¥ë +raw ソケットをプロトコル .B IPPROTO_ICMP -¤Ç¥ª¡¼¥×¥ó¤¹¤ì¤Ð¡¢ -¥æ¡¼¥¶¡¼¥×¥í¥È¥³¥ë¤Ï¥í¡¼¥«¥ë¤Ê¥½¥±¥Ã¥ÈÁ´¤Æ¤ËÂФ¹¤ë -ICMP ¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¾ÜºÙ¤Ï +でオープンすれば、 +ユーザープロトコルはローカルなソケット全てに対する +ICMP パケットを受信することができる。 +詳細は .BR raw (7) -¤ò»²¾È¤Î¤³¤È¡£ -¥½¥±¥Ã¥È¤ËÅϤµ¤ì¤ë ICMP ¥Ñ¥±¥Ã¥È¤Î¥¿¥¤¥×¤Ï +を参照のこと。 +ソケットに渡される ICMP パケットのタイプは .B ICMP_FILTER -¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤Æ¥Õ¥£¥ë¥¿¡¼¤Ç¤­¤ë¡£ -ICMP ¥Ñ¥±¥Ã¥È¤Ï (¤¿¤È¤¨¥æ¡¼¥¶¡¼¥½¥±¥Ã¥È¤ËÅϤµ¤ì¤ë¾ì¹ç¤Ç¤â)¡¢ -¾ï¤Ë¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ (¤â) ½èÍý¤µ¤ì¤ë¡£ +オプションによってフィルターできる。 +ICMP パケットは (たとえユーザーソケットに渡される場合でも)、 +常にカーネルによって (も) 処理される。 .LP .\"O Linux limits the rate of ICMP error packets to each destination. .\"O .B ICMP_REDIRECT .\"O and .\"O .B ICMP_DEST_UNREACH .\"O are also limited by the destination route of the incoming packets. -Linux ¤Ç¤Ï ICMP ¥¨¥é¡¼¥Ñ¥±¥Ã¥È¤Î¥ì¡¼¥È¤ò¤½¤ì¤¾¤ì¤ÎÁ÷¤êÀè¤ËÂФ·¤Æ -À©¸Â¤·¤Æ¤¤¤ë¡£ +Linux では ICMP エラーパケットのレートをそれぞれの送り先に対して +制限している。 .B ICMP_REDIRECT -¤È +と .B ICMP_DEST_UNREACH -¤âÅþÃ夷¤¿¥Ñ¥±¥Ã¥È¤Î¹Ô¤­Àè·ÐÏ© (destination route) ¤òÀ©¸Â¤¹¤ë¡£ +も到着したパケットの行き先経路 (destination route) を制限する。 .\"O .SS /proc interfaces -.SS /proc ¥¤¥ó¥¿¥Õ¥§¡¼¥¹ +.SS /proc インタフェース .\"O ICMP supports a set of .\"O .I /proc .\"O interfaces to configure some global IP parameters. @@ -84,24 +84,24 @@ Linux .\"O cleared after a burst. .\"O A jiffy is a system dependent unit, usually 10ms on i386 and .\"O about 1ms on alpha and ia64. -ICMP ¤Ç¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¥°¥í¡¼¥Ð¥ë¥Ñ¥é¥á¡¼¥¿¤òÀßÄꤹ¤ë¤¿¤á¤Î +ICMP では、いくつかのグローバルパラメータを設定するための .I /proc -¥Õ¥¡¥¤¥ë·²¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Î¥Ñ¥é¥á¡¼¥¿¤Ë¤Ï¡¢ +ファイル群が用意されている。 +これらのパラメータには、 .I /proc/sys/net/ipv4/ -¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¤ÎÆɤ߽ñ¤­¤Ç¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ -¤³¤ì¤é¤Î¥Ñ¥é¥á¡¼¥¿¤Î¤Û¤È¤ó¤É¤ÏÆÃÄê¤Î ICMP ¥¿¥¤¥×¤ËÂФ¹¤ë¥ì¡¼¥ÈÀ©¸Â -(rate limitation) ¤Ç¤¢¤ë¡£ -Linux 2.2 ¤Ï ICMP ¤ÎÀ©¸Â¤Ë¥È¡¼¥¯¥ó¡¦¥Ð¥±¥Ã¥È¡¦¥Õ¥£¥ë¥¿ -(token bucket filter) ¤òÍѤ¤¤ë¡£ +ディレクトリ内のファイルの読み書きでアクセスできる。 +これらのパラメータのほとんどは特定の ICMP タイプに対するレート制限 +(rate limitation) である。 +Linux 2.2 は ICMP の制限にトークン・バケット・フィルタ +(token bucket filter) を用いる。 .\" FIXME better description needed -¤½¤ì¤¾¤ì¤ÎÃͤϡ¢¥Ð¡¼¥¹¥È¤Î¸å¤Ë¥È¡¼¥¯¥ó¡¦¥Ð¥±¥Ã¥È¡¦¥Õ¥£¥ë¥¿¤¬¥¯¥ê¥¢ -¤µ¤ì¤ë¤Þ¤Ç¤Î¥¿¥¤¥à¥¢¥¦¥È¤òÉÃñ°Ì¤Çɽ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ºÇ¾®Ã±°Ì(jiffy)¤Ï -¥·¥¹¥Æ¥à°Í¸¤Îñ°Ì¤Ç i386 ¥·¥¹¥Æ¥à¤ÏÄ̾ï 10ms¡¢alpha ¤ä ia64 ¤Ç¤Ï -1ms ¤Ç¤¢¤ë¡£ +それぞれの値は、バーストの後にトークン・バケット・フィルタがクリア +されるまでのタイムアウトを秒単位で表したものである。最小単位(jiffy)は +システム依存の単位で i386 システムは通常 10ms、alpha や ia64 では +1ms である。 .TP .\"O .IR icmp_destunreach_rate " (Linux 2.2 to 2.4.9)" -.IR icmp_destunreach_rate " (Linux 2.2 ¤«¤é 2.4.9 ¤Þ¤Ç)" +.IR icmp_destunreach_rate " (Linux 2.2 から 2.4.9 まで)" .\" Precisely: from 2.1.102 .\"O Maximum rate to send ICMP Destination Unreachable packets. .\"O This limits the rate at which packets are sent to any individual @@ -109,35 +109,35 @@ Linux 2.2 .\"O The limit does not affect sending of .\"O .B ICMP_FRAG_NEEDED .\"O packets needed for path MTU discovery. -ICMP ÉÔã¥Ñ¥±¥Ã¥È (Destination Unreachable packet) ¤òÁ÷¤ëºÇÂç¥ì¡¼¥È¡£ -¤³¤ì¤ÏÆÃÄê¤Î¥ë¡¼¥È¤Þ¤¿¤Ï¹Ô¤­Àè¤Ë¥Ñ¥±¥Ã¥È¤òÁ÷¿®¤¹¤ë¥ì¡¼¥È¤òÀ©¸Â¤¹¤ë¡£ -¤³¤ÎÀ©¸Â¤Ï¡¢ -path MTU discovery ¤ËɬÍ×¤Ê +ICMP 不達パケット (Destination Unreachable packet) を送る最大レート。 +これは特定のルートまたは行き先にパケットを送信するレートを制限する。 +この制限は、 +path MTU discovery に必要な .B ICMP_FRAG_NEEDED -¥Ñ¥±¥Ã¥È¤ÎÁ÷¿®¤Ë¤Ï±Æ¶Á¤·¤Ê¤¤¡£ +パケットの送信には影響しない。 .TP .\"O .IR icmp_echo_ignore_all " (since Linux 2.2)" -.IR icmp_echo_ignore_all " (Linux 2.2 °Ê¹ß)" +.IR icmp_echo_ignore_all " (Linux 2.2 以降)" .\" Precisely: 2.1.68 .\"O If this value is nonzero, Linux will ignore all .\"O .B ICMP_ECHO .\"O requests. -¤³¤ÎÃͤ¬Èó¥¼¥í¤Î¾ì¹ç¤Ï¡¢ Linux ¤Ï¤¹¤Ù¤Æ¤Î +この値が非ゼロの場合は、 Linux はすべての .B ICMP_ECHO -Í×µá¤ò̵»ë¤¹¤ë¡£ +要求を無視する。 .TP .\"O .IR icmp_echo_ignore_broadcasts " (since Linux 2.2)" -.IR icmp_echo_ignore_broadcasts " (Linux 2.2 °Ê¹ß)" +.IR icmp_echo_ignore_broadcasts " (Linux 2.2 以降)" .\" Precisely: from 2.1.68 .\"O If this value is nonzero, Linux will ignore all .\"O .B ICMP_ECHO .\"O packets sent to broadcast addresses. -¤³¤ÎÃͤ¬Èó¥¼¥í¤Î¾ì¹ç¤Ï¡¢ Linux ¤Ï¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤ËÁ÷¤é¤ì¤¿¤¹¤Ù¤Æ¤Î +この値が非ゼロの場合は、 Linux はブロードキャストアドレスに送られたすべての .B ICMP_ECHO -Í×µá¤ò̵»ë¤¹¤ë¡£ +要求を無視する。 .TP .\"O .IR icmp_echoreply_rate " (Linux 2.2 to 2.4.9)" -.IR icmp_echoreply_rate " (Linux 2.2 ¤«¤é 2.4.9 ¤Þ¤Ç)" +.IR icmp_echoreply_rate " (Linux 2.2 から 2.4.9 まで)" .\" Precisely: from 2.1.102 .\"O Maximum rate for sending .\"O .B ICMP_ECHOREPLY @@ -145,95 +145,95 @@ path MTU discovery .\"O .B ICMP_ECHOREQUEST .\"O packets. .B ICMP_ECHOREQUEST -¥Ñ¥±¥Ã¥È¤Ë±þÅú¤¹¤ë +パケットに応答する .B ICMP_ECHOREPLY -¥Ñ¥±¥Ã¥È¤ÎºÇÂçÁ÷¿®¥ì¡¼¥È¡£ +パケットの最大送信レート。 .TP .\"O .IR icmp_errors_use_inbound_ifaddr " (Boolean; default: disabled; since Linux 2.6.12)" -.IR icmp_errors_use_inbound_ifaddr " (Boolean; default: disabled; Linux 2.6.12 °Ê¹ß)" +.IR icmp_errors_use_inbound_ifaddr " (Boolean; default: disabled; Linux 2.6.12 以降)" .\" The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt .\"O If disabled, ICMP error messages are sent with the primary address of .\"O the exiting interface. -¤³¤ì¤ò̵¸ú¤Ë¤¹¤ë¤È¡¢ICMP ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Ï¡¢ -½ÐÎÏ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î¥×¥é¥¤¥Þ¥ê¥¢¥É¥ì¥¹¤ÇÁ÷¿®¤µ¤ì¤ë¡£ +これを無効にすると、ICMP エラーメッセージは、 +出力インタフェースのプライマリアドレスで送信される。 .\"O If enabled, the message will be sent with the primary address of .\"O the interface that received the packet that caused the ICMP error. .\"O This is the behavior that many network administrators will expect from .\"O a router. .\"O And it can make debugging complicated network layouts much easier. -¤³¤ì¤òÍ­¸ú¤Ë¤¹¤ë¤È¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Ï ICMP ¥¨¥é¡¼¤Î¸¶°ø¤È¤Ê¤Ã¤¿¥Ñ¥±¥Ã¥È¤ò -¼õ¿®¤·¤¿¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î¥×¥é¥¤¥Þ¥¢¥É¥ì¥¹¤ÇÁ÷¿®¤µ¤ì¤ë¡£ -¤³¤ÎÆ°ºî¤Ï¡¢Â¿¤¯¤Î¥Í¥Ã¥È¥ï¡¼¥¯´ÉÍý¼Ô¤¬¥ë¡¼¥¿¤ËÂФ·¤Æ´üÂÔ¤·¤Æ¤¤¤ë¤â¤Î¤Ç¤¢¤ê¡¢ -¤³¤ì¤Ë¤è¤êÊ£»¨¤Ê¥Í¥Ã¥È¥ï¡¼¥¯¥ì¥¤¥¢¥¦¥È¤Î¥Ç¥Ð¥Ã¥°¤¬¤è¤êÍưפˤʤ롣 +これを有効にすると、エラーメッセージは ICMP エラーの原因となったパケットを +受信したインタフェースのプライマアドレスで送信される。 +この動作は、多くのネットワーク管理者がルータに対して期待しているものであり、 +これにより複雑なネットワークレイアウトのデバッグがより容易になる。 .\"O Note that if no primary address exists for the interface selected, .\"O then the primary address of the first non-loopback interface that .\"O has one will be used regardless of this setting. -ÁªÂò¤µ¤ì¤¿¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ç¥×¥é¥¤¥Þ¥ê¥¢¥É¥ì¥¹¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¡¢ -¤³¤ÎÀßÄê¤Ë´Ø¤ï¤é¤º¡¢ºÇ½é¤Î¥ë¡¼¥×¥Ð¥Ã¥¯°Ê³°¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ç¡¢ -¥×¥é¥¤¥Þ¥ê¥¢¥É¥ì¥¹¤ò»ý¤Ä¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î¥×¥é¥¤¥Þ¥ê¥¢¥É¥ì¥¹¤¬»ÈÍѤµ¤ì¤ëÅÀ¤Ë -Ãí°Õ¤¹¤ë¤³¤È¡£ +選択されたインタフェースでプライマリアドレスが存在しない場合は、 +この設定に関わらず、最初のループバック以外のインタフェースで、 +プライマリアドレスを持つインタフェースのプライマリアドレスが使用される点に +注意すること。 .TP .\"O .IR icmp_ignore_bogus_error_responses " (Boolean; default: disabled; since Linux 2.2)" -.IR icmp_ignore_bogus_error_responses " (Boolean; default: disabled; Linux 2.2 °Ê¹ß)" +.IR icmp_ignore_bogus_error_responses " (Boolean; default: disabled; Linux 2.2 以降)" .\" precisely: since 2.1.32 .\" The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt .\"O Some routers violate RFC1122 by sending bogus responses to broadcast frames. .\"O Such violations are normally logged via a kernel warning. .\"O If this parameter is enabled, the kernel will not give such warnings, .\"O which will avoid log file clutter. -¥ë¡¼¥¿¤ÎÃæ¤Ë¤Ï¡¢RFC1122 ¤Ë°ãÈ¿¤·¡¢¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥Õ¥ì¡¼¥à¤ËÂФ·¤Æ -µ¶¤Î±þÅú¤òÁ÷¿®¤¹¤ë¤â¤Î¤¬¤¢¤ë¡£ -¤³¤Î¤è¤¦¤Ê°ãÈ¿¤ÏÄ̾參¡¼¥Í¥ë¤Î·Ù¹ð¤È¤·¤Æ¥í¥°¤Ëµ­Ï¿¤µ¤ì¤ë¡£ -¤³¤Î¥Ñ¥é¥á¡¼¥¿¤òÍ­¸ú¤Ë¤¹¤ë¤È¡¢¥«¡¼¥Í¥ë¤Ï¤³¤Î¤è¤¦¤Ê·Ù¹ð¤ò½Ð¤µ¤Ê¤¯¤Ê¤ê¡¢ -¥í¥°¥Õ¥¡¥¤¥ë¤Ë»¨²»¤Î¤è¤¦¤Ê¾ðÊ󤬵­Ï¿¤µ¤ì¤ë¤Î¤òÈò¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +ルータの中には、RFC1122 に違反し、ブロードキャストフレームに対して +偽の応答を送信するものがある。 +このような違反は通常カーネルの警告としてログに記録される。 +このパラメータを有効にすると、カーネルはこのような警告を出さなくなり、 +ログファイルに雑音のような情報が記録されるのを避けることができる。 .TP .\"O .IR icmp_paramprob_rate " (Linux 2.2 to 2.4.9)" -.IR icmp_paramprob_rate " (Linux 2.2 ¤«¤é 2.4.9 ¤Þ¤Ç)" +.IR icmp_paramprob_rate " (Linux 2.2 から 2.4.9 まで)" .\" Precisely: from 2.1.102 .\"O Maximum rate for sending .\"O .B ICMP_PARAMETERPROB .\"O packets. .\"O These packets are sent when a packet arrives with an invalid IP header. .B ICMP_PARAMETERPROB -¥Ñ¥±¥Ã¥È¤ÎºÇÂçÁ÷¿®¥ì¡¼¥È¡£ -¤³¤ì¤é¤Î¥Ñ¥±¥Ã¥È¤ÏÉÔÀµ¤Ê IP ¥Ø¥Ã¥À¤ò»ý¤Ä¥Ñ¥±¥Ã¥È¤¬ÅþÃ夷¤¿¾ì¹ç¤Ë -Á÷¿®¤µ¤ì¤ë¡£ +パケットの最大送信レート。 +これらのパケットは不正な IP ヘッダを持つパケットが到着した場合に +送信される。 .TP .\"O .IR icmp_ratelimit " (integer; default: 1000; since Linux 2.4.10)" -.IR icmp_ratelimit " (integer; default: 1000; Linux 2.4.10 °Ê¹ß)" +.IR icmp_ratelimit " (integer; default: 1000; Linux 2.4.10 以降)" .\" The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt .\"O Limit the maximum rates for sending ICMP packets whose type matches .\"O .IR icmp_ratemask .\"O (see below) to specific targets. .\"O 0 to disable any limiting, .\"O otherwise the minimum space between responses in milliseconds. -¼ïÊ̤¬ +種別が .I icmp_ratemask -(²¼µ­»²¾È) ¤Ë¥Þ¥Ã¥Á¤·¤¿ ICMP ¥Ñ¥±¥Ã¥È¤Î¡¢ -ÆÃÄê¤ÎÁ÷¿®Àè¤Ø¤ÎÁ÷¿®¥ì¡¼¥È¤ÎºÇÂçÃͤòÀ©¸Â¤¹¤ë¡£ -0 ¤Ï¥ì¡¼¥ÈÀ©¸Â¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤ò¡¢ -0 °Ê³°¤ÎÃͤϱþÅú´Ö¤ÎºÇ¾®´Ö³Ö (¥ß¥êÉÃñ°Ì) ¤ò¼¨¤¹¡£ +(下記参照) にマッチした ICMP パケットの、 +特定の送信先への送信レートの最大値を制限する。 +0 はレート制限を無効にすることを、 +0 以外の値は応答間の最小間隔 (ミリ秒単位) を示す。 .TP .\"O .IR icmp_ratemask " (integer; default: see below; since Linux 2.4.10)" -.IR icmp_ratemask " (integer; default: ²¼µ­»²¾È; Linux 2.4.10 °Ê¹ß)" +.IR icmp_ratemask " (integer; default: 下記参照; Linux 2.4.10 以降)" .\" The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt .\"O Mask made of ICMP types for which rates are being limited. -¥ì¡¼¥ÈÀ©¸Â¤ò¹Ô¤¦ ICMP ¥¿¥¤¥×¤ò·è¤á¤ë¥Þ¥¹¥¯¡£ +レート制限を行う ICMP タイプを決めるマスク。 .\"O Significant bits: IHGFEDCBA9876543210 .\"O .br .\"O Default mask: 0000001100000011000 (0x1818) -Í­¸ú¥Ó¥Ã¥È: IHGFEDCBA9876543210 +有効ビット: IHGFEDCBA9876543210 .br -¥Ç¥Õ¥©¥ë¥È¥Þ¥¹¥¯: 0000001100000011000 (0x1818) +デフォルトマスク: 0000001100000011000 (0x1818) .\"O Bit definitions (see the kernel source file .\"O .IR include/linux/icmp.h ): -¥Ó¥Ã¥ÈÄêµÁ (¥«¡¼¥Í¥ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë +ビット定義 (カーネルソースファイル .I include/linux/icmp.h -¤ò»²¾È): +を参照): .in +4n .nf @@ -255,43 +255,43 @@ I Address Mask Reply .\"O The bits marked with an asterisk are rate limited by default .\"O (see the default mask above). -¥¢¥¹¥¿¥ê¥¹¥¯°õ¤¬ÉÕ¤¤¤¿¥Ó¥Ã¥È¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¥ì¡¼¥ÈÀ©¸Â¤¬Í­¸ú¤Ë -¤Ê¤Ã¤Æ¤¤¤ë (¾åµ­¤Î¥Þ¥¹¥¯¤Î¥Ç¥Õ¥©¥ë¥È¤â»²¾È)¡£ +アスタリスク印が付いたビットは、デフォルトでレート制限が有効に +なっている (上記のマスクのデフォルトも参照)。 .TP .\"O .IR icmp_timeexceed_rate " (Linux 2.2 to 2.4.9)" -.IR icmp_timeexceed_rate " (Linux 2.2 ¤«¤é 2.4.9 ¤Þ¤Ç)" +.IR icmp_timeexceed_rate " (Linux 2.2 から 2.4.9 まで)" .\"O Maximum rate for sending .\"O .B ICMP_TIME_EXCEEDED .\"O packets. .\"O These packets are .\"O sent to prevent loops when a packet has crossed too many hops. .B ICMP_TIME_EXCEEDED -¥Ñ¥±¥Ã¥È¤ÎºÇÂçÁ÷¿®¥ì¡¼¥È¡£ -¤³¤ì¤é¤Î¥Ñ¥±¥Ã¥È¤Ï¥Ñ¥±¥Ã¥È¤¬¤¢¤Þ¤ê¤Ë¿¤¯¤Î hop ¤òÄ̲ᤷ¤¿¾ì¹ç¤Ë¡¢ -¥ë¡¼¥×¤òËɤ°¤¿¤á¤ËÁ÷¤é¤ì¤ë¡£ +パケットの最大送信レート。 +これらのパケットはパケットがあまりに多くの hop を通過した場合に、 +ループを防ぐために送られる。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O Support for the .\"O .B ICMP_ADDRESS .\"O request was removed in 2.2. .B ICMP_ADDRESS -Í×µá¤ËÂФ¹¤ë¥µ¥Ý¡¼¥È¤Ï 2.2 ¤Çºï½ü¤µ¤ì¤¿¡£ +要求に対するサポートは 2.2 で削除された。 .PP .\"O Support for .\"O .B ICMP_SOURCE_QUENCH .\"O was removed in Linux 2.2. .B ICMP_SOURCE_QUENCH -¤Ï Linux 2.2 ¤Çºï½ü¤µ¤ì¤¿¡£ +は Linux 2.2 で削除された。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O As many other implementations don't support .\"O .B IPPROTO_ICMP .\"O raw sockets, this feature .\"O should not be relied on in portable programs. -¾¤Î¿¤¯¤Î¼ÂÁõ¤Ç¤Ï¡¢ +他の多くの実装では、 .B IPPROTO_ICMP -raw ¥½¥±¥Ã¥È¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤³¤Îµ¡Ç½¤Ï°Ü¿¢À­¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç¤ÏÍѤ¤¤ë¤Ù¤­¤Ç¤Ê¤¤¡£ +raw ソケットがサポートされていない。 +この機能は移植性が必要なプログラムでは用いるべきでない。 .\" not really true ATM .\" .PP .\" Linux ICMP should be compliant to RFC 1122. @@ -300,33 +300,33 @@ raw .\"O packets are not sent when Linux is not acting as a router. .\"O They are also only accepted from the old gateway defined in the .\"O routing table and the redirect routes are expired after some time. -Linux ¤¬¥ë¡¼¥¿¡¼¤È¤·¤ÆÆ°ºî¤·¤Æ¤¤¤Ê¤¤¤È¤­¤Ë¤Ï¡¢ +Linux がルーターとして動作していないときには、 .B ICMP_REDIRECT -¥Ñ¥±¥Ã¥È¤ÏÁ÷¿®¤µ¤ì¤Ê¤¤¡£ -¤Þ¤¿¤³¤ì¤é¤¬¼õ¤±¼è¤é¤ì¤ë¤Î¤â¡¢È¯¿®¸µ¤¬¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë -¸Å¤¤¥²¡¼¥È¥¦¥§¥¤¤Ç¡¢¥ê¥À¥¤¥ì¥¯¥È¡¦¥ë¡¼¥È (redirect route) ¤¬ -ŬÅö¤Ê»þ´Ö¤Î¸å¤Ë´ü¸ÂÀÚ¤ì¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¸Â¤é¤ì¤ë¡£ +パケットは送信されない。 +またこれらが受け取られるのも、発信元がルーティングテーブルに定義されている +古いゲートウェイで、リダイレクト・ルート (redirect route) が +適当な時間の後に期限切れになっている場合に限られる。 .PP .\"O The 64-bit timestamp returned by .\"O .B ICMP_TIMESTAMP .\"O is in milliseconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC). .B ICMP_TIMESTAMP -¤«¤éÊÖ¤µ¤ì¤ë 64 ¥Ó¥Ã¥È¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×¤Ï¡¢ -µª¸µ (Epoch) ¤Ç¤¢¤ë 1970-01-01 00:00:00 +0000 (UTC) -¤«¤é¤Î·Ð²á»þ´Ö¤ò¥ß¥êÉÃñ°Ì¤Çɽ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +から返される 64 ビットのタイムスタンプは、 +紀元 (Epoch) である 1970-01-01 00:00:00 +0000 (UTC) +からの経過時間をミリ秒単位で表したものである。 .PP .\"O Linux ICMP internally uses a raw socket to send ICMPs. .\"O This raw socket may appear in .\"O .BR netstat (8) .\"O output with a zero inode. -Linux ICMP ¤Ï ICMP ¤òÁ÷¤ë¤¿¤á¤ËÆâÉô¤Ç raw ¥½¥±¥Ã¥È¤òÍѤ¤¤ë¡£ -raw ¥½¥±¥Ã¥È¤Ï +Linux ICMP は ICMP を送るために内部で raw ソケットを用いる。 +raw ソケットは .BR netstat (8) -¤Î½ÐÎÏ¤Ë 0 inode ¤È¤·¤Æ½ÐÎϤµ¤ì¤ë¡£ +の出力に 0 inode として出力される。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ip (7) .PP .\"O RFC\ 792 for a description of the ICMP protocol. .BR RFC\ 792 : -ICMP ¥×¥í¥È¥³¥ë¤ÎÀâÌÀ +ICMP プロトコルの説明 diff --git a/draft/man7/inotify.7 b/draft/man7/inotify.7 index 9dcdb1f8..7acc719b 100644 --- a/draft/man7/inotify.7 +++ b/draft/man7/inotify.7 @@ -33,23 +33,23 @@ .\" .TH INOTIFY 7 2008-11-18 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O inotify \- monitoring file system events -inotify \- ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¤¥Ù¥ó¥È¤ò´Æ»ë¤¹¤ë +inotify \- ファイルシステムイベントを監視する .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .I inotify .\"O API provides a mechanism for monitoring file system events. .I inotify -API ¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¤¥Ù¥ó¥È¤ò´Æ»ë¤¹¤ë¤¿¤á¤Îµ¡¹½¤òÄ󶡤¹¤ë¡£ +API はファイルシステムイベントを監視するための機構を提供する。 .\"O Inotify can be used to monitor individual files, .\"O or to monitor directories. -inotify ¤Ï¸Ä¡¹¤Î¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥ì¥¯¥È¥ê¤ò´Æ»ë¤¹¤ë¤Î¤Ë»È¤¨¤ë¡£ +inotify は個々のファイルやディレクトリを監視するのに使える。 .\"O When a directory is monitored, inotify will return events .\"O for the directory itself, and for files inside the directory. -¥Ç¥£¥ì¥¯¥È¥ê¤ò´Æ»ë¤¹¤ë¾ì¹ç¡¢inotify ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¼«¿È¤È -¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¤Î¥¤¥Ù¥ó¥È¤òÊÖ¤¹¡£ +ディレクトリを監視する場合、inotify はディレクトリ自身と +ディレクトリ内のファイルのイベントを返す。 .\"O The following system calls are used with this API: .\"O .BR inotify_init (2) @@ -60,9 +60,9 @@ inotify .\"O .BR read (2), .\"O and .\"O .BR close (2). -°Ê²¼¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤³¤Î API ¤È¶¦¤Ë»ÈÍѤµ¤ì¤ë: +以下のシステムコールがこの API と共に使用される: .BR inotify_init (2) -(¤ä +(や .BR inotify_init1 (2)), .BR inotify_add_watch (2), .BR inotify_rm_watch (2), @@ -78,62 +78,62 @@ inotify .\"O .BR inotify_init (2), .\"O but provides some extra functionality. .BR inotify_init (2) -¤Ï inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤òºîÀ®¤·¡¢inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤ò»²¾È¤¹¤ë -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¤â¤Ã¤È¿·¤·¤¤ +は inotify インスタンスを作成し、inotify インスタンスを参照する +ファイルディスクリプタを返す。 +もっと新しい .BR inotify_init1 (2) -¤â +も .BR inotify_init (2) -¤ÈƱÍͤÀ¤¬¡¢¤¤¤¯¤Ä¤«¤ÎÄɲäε¡Ç½¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¡£ +と同様だが、いくつかの追加の機能が提供されている。 .\"O .BR inotify_add_watch (2) .\"O manipulates the "watch list" associated with an inotify instance. .BR inotify_add_watch (2) -¤Ï inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¡Ö´Æ»ëÂÐ¾Ý (watch) ¥ê¥¹¥È¡×¤òÁàºî¤¹¤ë¡£ +は inotify インスタンスに関連づけられた「監視対象 (watch) リスト」を操作する。 .\"O Each item ("watch") in the watch list specifies the pathname of .\"O a file or directory, .\"O along with some set of events that the kernel should monitor for the .\"O file referred to by that pathname. -´Æ»ëÂоݥꥹ¥È¤Î³Æ¥¢¥¤¥Æ¥à ("watch") ¤Ï¡¢ -¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Ñ¥¹Ì¾¤È¡¢ -¤½¤Î¥Ñ¥¹Ì¾¤Ç»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ -¥«¡¼¥Í¥ë¤¬´Æ»ë¤¹¤ëÊ£¿ô¤Î¥¤¥Ù¥ó¥È¤Î½¸¹ç¤ò»ØÄꤹ¤ë¡£ +監視対象リストの各アイテム ("watch") は、 +ファイルまたはディレクトリのパス名と、 +そのパス名で参照されるファイルに対して +カーネルが監視する複数のイベントの集合を指定する。 .\"O .BR inotify_add_watch (2) .\"O either creates a new watch item, or modifies an existing watch. .BR inotify_add_watch (2) -¤Ï¿·¤·¤¤´Æ»ë¥¢¥¤¥Æ¥à¤ÎºîÀ®¤ä´û¸¤Î´Æ»ëÂоݤÎÊѹ¹¤¬¤Ç¤­¤ë¡£ +は新しい監視アイテムの作成や既存の監視対象の変更ができる。 .\"O Each watch has a unique "watch descriptor", an integer .\"O returned by .\"O .BR inotify_add_watch (2) .\"O when the watch is created. -³Æ´Æ»ëÂоݤϰì°Õ¤Î¡Ö´Æ»ëÂоݥǥ£¥¹¥¯¥ê¥×¥¿¡×¤ò»ý¤Ä¡£ -¤³¤ì¤Ï´Æ»ëÂоݤòºîÀ®¤·¤¿¤È¤­¤Ë +各監視対象は一意の「監視対象ディスクリプタ」を持つ。 +これは監視対象を作成したときに .BR inotify_add_watch (2) -¤«¤éÊÖ¤µ¤ì¤ëÀ°¿ô¤Ç¤¢¤ë¡£ +から返される整数である。 .\"O .BR inotify_rm_watch (2) .\"O removes an item from an inotify watch list. .BR inotify_rm_watch (2) -¤Ï inotify ¤Î´Æ»ëÂоݥꥹ¥È¤«¤é¥¢¥¤¥Æ¥à¤òºï½ü¤¹¤ë¡£ +は inotify の監視対象リストからアイテムを削除する。 .\"O When all file descriptors referring to an inotify .\"O instance have been closed, .\"O the underlying object and its resources are .\"O freed for reuse by the kernel; .\"O all associated watches are automatically freed. -inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤ò»Ø¤·¤Æ¤¤¤ë -Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥¯¥í¡¼¥º¤µ¤ì¤¿¾ì¹ç¡¢ -¤½¤Î²¼Áؤˤ¢¤ë¥ª¥Ö¥¸¥§¥¯¥È¤È¤½¤Î¥ê¥½¡¼¥¹¤Ï¡¢ -¥«¡¼¥Í¥ë¤ÇºÆÍøÍѤ¹¤ë¤¿¤á¤Ë²òÊü¤µ¤ì¤ë¡£ -´ØÏ¢¤¬ÀÚ¤é¤ì¤¿´Æ»ëÂоݤϼ«Æ°Åª¤Ë²òÊü¤µ¤ì¤ë¡£ +inotify インスタンスを指している +全てのファイルディスクリプタがクローズされた場合、 +その下層にあるオブジェクトとそのリソースは、 +カーネルで再利用するために解放される。 +関連が切られた監視対象は自動的に解放される。 .\"O To determine what events have occurred, an application .\"O .BR read (2)s .\"O from the inotify file descriptor. -¤É¤Î¤è¤¦¤Ê¥¤¥Ù¥ó¥È¤¬µ¯¤³¤Ã¤Æ¤¤¤¿¤«¤òÃΤë¤Ë¤Ï¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç inotify ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò +どのようなイベントが起こっていたかを知るには、 +アプリケーションで inotify ファイルディスクリプタを .BR read (2) -¤¹¤ì¤Ð¤è¤¤¡£ +すればよい。 .\"O If no events have so far occurred, then, .\"O assuming a blocking file descriptor, .\"O .BR read (2) @@ -143,28 +143,28 @@ inotify .\"O .BR EINTR ; .\"O see .\"O .BR signal (7)). -¤³¤ì¤Þ¤Ç¤Ë²¿¤â¥¤¥Ù¥ó¥È¤¬µ¯¤³¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -Ää»ß (blocking) ¥â¡¼¥É¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ì¤Ð¡¢ -¾¯¤Ê¤¯¤È¤â 1 ¤Ä¤Î¥¤¥Ù¥ó¥È¤¬µ¯¤³¤ë¤Þ¤Ç +これまでに何もイベントが起こっていない場合、 +停止 (blocking) モードのファイルディスクリプタであれば、 +少なくとも 1 つのイベントが起こるまで .BR read (2) -¤ÏÄä»ß¤¹¤ë (¥·¥°¥Ê¥ë¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡£ -¥·¥°¥Ê¥ë¤Ë¤è¤ë³ä¤ê¹þ¤ß¤¬¤¢¤Ã¤¿¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¤Ï¥¨¥é¡¼ +は停止する (シグナルにより割り込まれなかった場合。 +シグナルによる割り込みがあった場合、呼び出しはエラー .BR EINTR -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .BR signal (7) -»²¾È)¡£ +参照)。 .\"O Each successful .\"O .BR read (2) .\"O returns a buffer containing one or more of the following structures: .BR read (2) -¤¬À®¸ù¤¹¤ë¤È¡¢°Ê²¼¤Î¹½Â¤ÂΤò 1 ¤Ä°Ê¾å´Þ¤à¥Ð¥Ã¥Õ¥¡¤¬ÊÖ¤µ¤ì¤ë: +が成功すると、以下の構造体を 1 つ以上含むバッファが返される: .in +4n .nf struct inotify_event { .\"O int wd; /* Watch descriptor */ - int wd; /* ´Æ»ëÂоݥǥ£¥¹¥¯¥ê¥×¥¿ */ + int wd; /* 監視対象ディスクリプタ */ .\" FIXME . The type of the 'wd' field should probably be "int32_t". .\" I submitted a patch to fix this. See the LKML thread .\" "[patch] Fix type errors in inotify interfaces", 18 Nov 2008 @@ -174,11 +174,11 @@ struct inotify_event { .\"O events (for rename(2)) */ .\"O uint32_t len; /* Size of \(aqname\(aq field */ .\"O char name[]; /* Optional null-terminated name */ - uint32_t mask; /* ¥¤¥Ù¥ó¥È¤Î¥Þ¥¹¥¯ */ - uint32_t cookie; /* ´ØÏ¢¤¹¤ë¥¤¥Ù¥ó¥È·²¤ò´ØÏ¢¤Å¤±¤ë - °ì°Õ¤Ê¥¯¥Ã¥­¡¼ (rename(2) ÍÑ) */ - uint32_t len; /* \(aqname\(aq ¥Õ¥£¡¼¥ë¥É¤Î¥µ¥¤¥º */ - char name[]; /* NULL ¤Ç½ªÃ¼¤µ¤ì¤¿Ç¤°Õ¤Î̾Á° */ + uint32_t mask; /* イベントのマスク */ + uint32_t cookie; /* 関連するイベント群を関連づける + 一意なクッキー (rename(2) 用) */ + uint32_t len; /* \(aqname\(aq フィールドのサイズ */ + char name[]; /* NULL で終端された任意の名前 */ }; .fi .in @@ -188,32 +188,32 @@ struct inotify_event { .\"O It is one of the watch descriptors returned by a previous call to .\"O .BR inotify_add_watch (2). .I wd -¤Ï¥¤¥Ù¥ó¥ÈȯÀ¸¤Î´Æ»ëÂоݤò»ØÄꤹ¤ë¡£ -¤³¤ì¤Ï¡¢Á°¤â¤Ã¤Æ¹Ô¤ï¤ì¤¿ +はイベント発生の監視対象を指定する。 +これは、前もって行われた .BR inotify_add_watch (2) -¸Æ¤Ó½Ð¤·¤ÇÊÖ¤µ¤ì¤¿´Æ»ëÂоݥǥ£¥¹¥¯¥ê¥×¥¿¤Î¤¦¤Á¤Î 1 ¤Ä¤Ç¤¢¤ë¡£ +呼び出しで返された監視対象ディスクリプタのうちの 1 つである。 .\"O .I mask .\"O contains bits that describe the event that occurred (see below). .I mask -¤Ë¤ÏȯÀ¸¤·¤¿¥¤¥Ù¥ó¥È (²¼µ­»²¾È) ¤òµ­½Ò¤¹¤ë¤¿¤á¤Î¥Ó¥Ã¥È¤¬´Þ¤Þ¤ì¤ë¡£ +には発生したイベント (下記参照) を記述するためのビットが含まれる。 .\"O .I cookie .\"O is a unique integer that connects related events. .I cookie -¤Ï´ØÏ¢¤¹¤ë¥¤¥Ù¥ó¥È¤ò´ØÏ¢¤Å¤±¤ë¤¿¤á¤Î°ì°Õ¤ÊÀ°¿ô¤Ç¤¢¤ë¡£ +は関連するイベントを関連づけるための一意な整数である。 .\"O Currently this is only used for rename events, and .\"O allows the resulting pair of .\"O .B IN_MOVE_FROM .\"O and .\"O .B IN_MOVE_TO .\"O events to be connected by the application. -¸½ºß¤Î¤È¤³¤í¡¢¤³¤ÎÃÍ¤Ï rename ¥¤¥Ù¥ó¥È¤ËÂФ·¤Æ¤Î¤ß»È¤ï¤ì¤Æ¤ª¤ê¡¢ -·ë²Ì¤Î¥Ú¥¢¤Ç¤¢¤ë +現在のところ、この値は rename イベントに対してのみ使われており、 +結果のペアである .B IN_MOVE_FROM -¤È +と .B IN_MOVE_TO -¥¤¥Ù¥ó¥È¤ò¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç´ØÏ¢¤Å¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +イベントをアプリケーションで関連づけることができる。 .\"O The .\"O .I name @@ -221,15 +221,15 @@ struct inotify_event { .\"O for a file inside a watched directory; .\"O it identifies the file pathname relative to the watched directory. .I name -¥Õ¥£¡¼¥ë¥É¤Ï´Æ»ë¤·¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ -¥¤¥Ù¥ó¥È¤¬ÊÖ¤µ¤ì¤ë¾ì¹ç¤Î¤¿¤á¤Ë¤À¤±Â¸ºß¤¹¤ë¡£ -´Æ»ë¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤Î¥Õ¥¡¥¤¥ë¤ÎÁêÂХѥ¹Ì¾¤òɽ¤¹¡£ +フィールドは監視しているディレクトリ内のファイルに対して +イベントが返される場合のためにだけ存在する。 +監視するディレクトリからのファイルの相対パス名を表す。 .\"O This pathname is null-terminated, .\"O and may include further null bytes to align subsequent reads to a .\"O suitable address boundary. -¤³¤Î¥Ñ¥¹Ì¾¤Ï NULL ¤Ç½ªÃ¼¤µ¤ì¡¢ -¤½¤Î¸å¤ÎÆɤ߹þ¤ß¤ÇŬÀڤʥ¢¥É¥ì¥¹¶­³¦¤ËÄ´À°¤¹¤ë¤¿¤á¤Ë¡¢ -¤µ¤é¤Ë NULL ¥Ð¥¤¥È¤¬´Þ¤Þ¤ì¤ë¾ì¹ç¤â¤¢¤ë¡£ +このパス名は NULL で終端され、 +その後の読み込みで適切なアドレス境界に調整するために、 +さらに NULL バイトが含まれる場合もある。 .\"O The .\"O .I len @@ -241,14 +241,14 @@ struct inotify_event { .\"O structure is thus .\"O .IR "sizeof(inotify_event)+len" . .I len -¥Õ¥£¡¼¥ë¥É¤Ï NULL ¥Ð¥¤¥È¤ò´Þ¤à +フィールドは NULL バイトを含む .I name -¤ÎÁ´¤Æ¤Î¥Ð¥¤¥È¿ô¤òɽ¤¹¡£ -¤è¤Ã¤Æ¡¢ +の全てのバイト数を表す。 +よって、 .I inotify_event -¹½Â¤ÂΤΥµ¥¤¥º¤Ï +構造体のサイズは .I "sizeof(inotify_event)+len" -¤Ç¤¢¤ë¡£ +である。 .\"O The behavior when the buffer given to .\"O .BR read (2) @@ -260,18 +260,18 @@ struct inotify_event { .\"O fails with the error .\"O .BR EINVAL . .BR read (2) -¤ËÅϤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤¬¾®¤µ¤¹¤®¤Æ¼¡¤Î¥¤¥Ù¥ó¥È¤Ë´Ø¤¹¤ë¾ðÊó¤òÊÖ¤»¤Ê¤¤ -¾ì¹ç¤ÎÆ°ºî¤Ï¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤ê°Û¤Ê¤ë¡£ -2.6.21 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +に渡されたバッファが小さすぎて次のイベントに関する情報を返せない +場合の動作はカーネルのバージョンにより異なる。 +2.6.21 より前のカーネルでは、 .BR read (2) -¤Ï 0 ¤òÊÖ¤¹¡£ -2.6.21 °Ê¹ß¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +は 0 を返す。 +2.6.21 以降のカーネルでは、 .BR read (2) -¤Ï¥¨¥é¡¼ +はエラー .B EINVAL -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .\"O .SS inotify events -.SS inotify ¥¤¥Ù¥ó¥È +.SS inotify イベント .\"O The .\"O .BR inotify_add_watch (2) .\"O .I mask @@ -284,16 +284,16 @@ struct inotify_event { .\"O an inotify file descriptor are both bit masks identifying .\"O inotify events. .BR inotify_add_watch (2) -¤Î +の .I mask -°ú¤­¿ô¤È¡¢inotify ¥Õ¥¡¥¤¥ë¹½Â¤ÂΤò +引き数と、inotify ファイル構造体を .BR read (2) -¤·¤¿¤È¤­¤ËÊÖ¤µ¤ì¤ë +したときに返される .I inotify_event -¹½Â¤ÂΤΠ+構造体の .I mask -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¤È¤â¤Ë inotify ¥¤¥Ù¥ó¥È¤ò¼±Ê̤¹¤ë¤¿¤á¤Î -¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ë¡£ +フィールドは、ともに inotify イベントを識別するための +ビットマスクである。 .\"O The following bits can be specified in .\"O .I mask .\"O when calling @@ -302,69 +302,69 @@ struct inotify_event { .\"O .I mask .\"O field returned by .\"O .BR read (2): -°Ê²¼¤Î¥Ó¥Ã¥È¤¬ +以下のビットが .BR inotify_add_watch (2) -¤ò¸Æ¤Ö¤È¤­¤Î +を呼ぶときの .I mask -¤Ë»ØÄê²Äǽ¤Ç¤¢¤ê¡¢ +に指定可能であり、 .BR read (2) -¤ÇÊÖ¤µ¤ì¤ë +で返される .I mask -¥Õ¥£¡¼¥ë¥É¤ÇÊÖ¤µ¤ì¤ë: +フィールドで返される: .RS 4 .sp .PD 0 .TP 18 .B IN_ACCESS .\"O File was accessed (read) (*). -¥Õ¥¡¥¤¥ë¤¬¥¢¥¯¥»¥¹ (read) ¤µ¤ì¤¿¡£(*) +ファイルがアクセス (read) された。(*) .TP .B IN_ATTRIB .\"O Metadata changed, e.g., permissions, timestamps, extended attributes, .\"O link count (since Linux 2.6.25), UID, GID, etc. (*). -¥á¥¿¥Ç¡¼¥¿¤¬Êѹ¹¤µ¤ì¤¿¡£ -¥á¥¿¥Ç¡¼¥¿¤È¤Ï¡¢Î㤨¤Ð¡¢µö²Ä (permission)¡¢¥¿¥¤¥à¥¹¥¿¥ó¥×¡¢³Èĥ°À­¡¢ -¥ê¥ó¥¯¥«¥¦¥ó¥È (Linux 2.6.25 °Ê¹ß)¡¢UID¡¢GID ¤Ê¤É¤Ç¤¢¤ë¡£(*) +メタデータが変更された。 +メタデータとは、例えば、許可 (permission)、タイムスタンプ、拡張属性、 +リンクカウント (Linux 2.6.25 以降)、UID、GID などである。(*) .TP .B IN_CLOSE_WRITE .\"O File opened for writing was closed (*). -½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬¥¯¥í¡¼¥º¤µ¤ì¤¿¡£(*) +書き込みのためにオープンされたファイルがクローズされた。(*) .TP .B IN_CLOSE_NOWRITE .\"O File not opened for writing was closed (*). -½ñ¤­¹þ¤ß°Ê³°¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬¥¯¥í¡¼¥º¤µ¤ì¤¿¡£(*) +書き込み以外のためにオープンされたファイルがクローズされた。(*) .TP .B IN_CREATE .\"O File/directory created in watched directory (*). -´Æ»ëÂоݥǥ£¥ì¥¯¥È¥êÆâ¤Ç¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥ì¥¯¥È¥ê¤¬ºîÀ®¤µ¤ì¤¿¡£(*) +監視対象ディレクトリ内でファイルやディレクトリが作成された。(*) .TP .B IN_DELETE .\"O File/directory deleted from watched directory (*). -´Æ»ëÂоݥǥ£¥ì¥¯¥È¥êÆâ¤Ç¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥ì¥¯¥È¥ê¤¬ºï½ü¤µ¤ì¤¿¡£(*) +監視対象ディレクトリ内でファイルやディレクトリが削除された。(*) .TP .B IN_DELETE_SELF .\"O Watched file/directory was itself deleted. -´Æ»ëÂоݤΥǥ£¥ì¥¯¥È¥ê¤Þ¤¿¤Ï¥Õ¥¡¥¤¥ë¼«¿È¤¬ºï½ü¤µ¤ì¤¿¡£ +監視対象のディレクトリまたはファイル自身が削除された。 .TP .B IN_MODIFY .\"O File was modified (*). -¥Õ¥¡¥¤¥ë¤¬½¤Àµ¤µ¤ì¤¿¡£(*) +ファイルが修正された。(*) .TP .B IN_MOVE_SELF .\"O Watched file/directory was itself moved. -´Æ»ëÂоݤΥǥ£¥ì¥¯¥È¥ê¤Þ¤¿¤Ï¥Õ¥¡¥¤¥ë¼«¿È¤¬°ÜÆ°¤µ¤ì¤¿¡£ +監視対象のディレクトリまたはファイル自身が移動された。 .TP .B IN_MOVED_FROM .\"O File moved out of watched directory (*). -¥Õ¥¡¥¤¥ë¤¬´Æ»ëÂоݥǥ£¥ì¥¯¥È¥ê³°¤Ø°ÜÆ°¤µ¤ì¤¿¡£(*) +ファイルが監視対象ディレクトリ外へ移動された。(*) .TP .B IN_MOVED_TO .\"O File moved into watched directory (*). -¥Õ¥¡¥¤¥ë¤¬´Æ»ëÂоݥǥ£¥ì¥¯¥È¥êÆâ¤Ø°ÜÆ°¤µ¤ì¤¿¡£(*) +ファイルが監視対象ディレクトリ内へ移動された。(*) .TP .B IN_OPEN .\"O File was opened (*). -¥Õ¥¡¥¤¥ë¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¡£(*) +ファイルがオープンされた。(*) .PD .RE .PP @@ -375,14 +375,14 @@ struct inotify_event { .\"O field in the returned .\"O .I inotify_event .\"O structure identifies the name of the file within the directory. -¥Ç¥£¥ì¥¯¥È¥ê¤ò´Æ»ë¤¹¤ë¾ì¹ç¡¢ -¾åµ­¤Ç¥¢¥¹¥¿¥ê¥¹¥¯ (*) ¤òÉÕ¤±¤¿¥¤¥Ù¥ó¥È¤Ï¡¢ -¤½¤Î¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤ÆȯÀ¸¤¹¤ë¡£ -¤³¤Î¤È¤­ +ディレクトリを監視する場合、 +上記でアスタリスク (*) を付けたイベントは、 +そのディレクトリ内のファイルに対して発生する。 +このとき .I inotify_event -¹½Â¤ÂΤÇÊÖ¤µ¤ì¤ë +構造体で返される .I name -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë̾¤òɽ¤¹¡£ +フィールドは、ディレクトリ内のファイル名を表す。 .PP .\"O The .\"O .B IN_ALL_EVENTS @@ -392,12 +392,12 @@ struct inotify_event { .\"O argument when calling .\"O .BR inotify_add_watch (2). .B IN_ALL_EVENTS -¥Þ¥¯¥í¤Ï¾åµ­¤Î¥¤¥Ù¥ó¥ÈÁ´¤Æ¤Î¥Þ¥¹¥¯¤È¤·¤ÆÄêµÁ¤µ¤ì¤ë¡£ -¤³¤Î¥Þ¥¯¥í¤Ï +マクロは上記のイベント全てのマスクとして定義される。 +このマクロは .BR inotify_add_watch (2) -¤ò¸Æ¤Ó½Ð¤¹¤È¤­¤Î +を呼び出すときの .I mask -°ú¤­¿ô¤È¤·¤Æ»È¤¨¤ë¡£ +引き数として使える。 .\"O Two additional convenience macros are .\"O .BR IN_MOVE , @@ -407,25 +407,25 @@ struct inotify_event { .\"O .B IN_CLOSE .\"O which equates to .\"O IN_CLOSE_WRITE|IN_CLOSE_NOWRITE. -¤µ¤é¤Ë 2 ¤Ä¤ÎÊØÍø¤Ê¥Þ¥¯¥í¤¬¤¢¤ë¡£ +さらに 2 つの便利なマクロがある。 .B IN_MOVE -¤Ï +は IN_MOVED_FROM|IN_MOVED_TO -¤ÈÅù¤·¤¯¡¢ +と等しく、 .B IN_CLOSE -¤Ï +は IN_CLOSE_WRITE|IN_CLOSE_NOWRITE -¤ÈÅù¤·¤¤¡£ +と等しい。 .PP .\"O The following further bits can be specified in .\"O .I mask .\"O when calling .\"O .BR inotify_add_watch (2): -¤½¤Î¾¤Ë¤â°Ê²¼¤Î¥Ó¥Ã¥È¤ò +その他にも以下のビットを .BR inotify_add_watch (2) -¤ò¸Æ¤Ö¤È¤­¤Î +を呼ぶときの .I mask -¤Ë»ØÄê¤Ç¤­¤ë: +に指定できる: .RS 4 .sp .PD 0 @@ -433,25 +433,25 @@ IN_CLOSE_WRITE|IN_CLOSE_NOWRITE .B IN_DONT_FOLLOW .\"O Don't dereference \fIpathname\fP if it is a symbolic link .\"O (since Linux 2.6.15). -\fIpathname\fP ¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¤¢¤ë¾ì¹ç¤Ëé¤é¤Ê¤¤¡£ -(Linux 2.6.15 °Ê¹ß) +\fIpathname\fP がシンボリックリンクである場合に辿らない。 +(Linux 2.6.15 以降) .TP .B IN_MASK_ADD .\"O Add (OR) events to watch mask for this pathname if .\"O it already exists (instead of replacing mask). -\fIpathname\fP ¤ËÂФ¹¤ë´Æ»ë¥Þ¥¹¥¯¤¬´û¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢ -(¥Þ¥¹¥¯¤ÎÃÖ¤­´¹¤¨¤Ç¤Ï¤Ê¤¯) ¥¤¥Ù¥ó¥È¤òÄɲà (OR) ¤¹¤ë¡£ +\fIpathname\fP に対する監視マスクが既に存在する場合、 +(マスクの置き換えではなく) イベントを追加 (OR) する。 .TP .B IN_ONESHOT .\"O Monitor \fIpathname\fP for one event, then remove from .\"O watch list. -1 ¤Ä¤Î¥¤¥Ù¥ó¥È¤Ë¤Ä¤¤¤Æ \fIpathname\fP ¤ò´Æ»ë¤·¡¢ -¥¤¥Ù¥ó¥È¤¬È¯À¸¤·¤¿¤é´Æ»ëÂоݥꥹ¥È¤«¤éºï½ü¤¹¤ë¡£ +1 つのイベントについて \fIpathname\fP を監視し、 +イベントが発生したら監視対象リストから削除する。 .TP .\"O .BR IN_ONLYDIR " (since Linux 2.6.15)" -.BR IN_ONLYDIR " (Linux 2.6.15 °Ê¹ß)" +.BR IN_ONLYDIR " (Linux 2.6.15 以降)" .\"O Only watch \fIpathname\fP if it is a directory. -\fIpathname\fP ¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Î¾ì¹ç¤Ë¤Î¤ß´Æ»ë¤¹¤ë¡£ +\fIpathname\fP がディレクトリの場合にのみ監視する。 .PD .RE .PP @@ -459,11 +459,11 @@ IN_CLOSE_WRITE|IN_CLOSE_NOWRITE .\"O .I mask .\"O field returned by .\"O .BR read (2): -°Ê²¼¤Î¥Ó¥Ã¥È¤¬ +以下のビットが .BR read (2) -¤ÇÊÖ¤µ¤ì¤ë +で返される .I mask -¥Õ¥£¡¼¥ë¥É¤ËÀßÄꤵ¤ì¤ë: +フィールドに設定される: .RS 4 .sp .PD 0 @@ -471,58 +471,58 @@ IN_CLOSE_WRITE|IN_CLOSE_NOWRITE .B IN_IGNORED .\"O Watch was removed explicitly (\fBinotify_rm_watch\fP(2)) .\"O or automatically (file was deleted, or file system was unmounted). -´Æ»ëÂоݤ¬ (\fBinotify_rm_watch\fP(2) ¤Ë¤è¤ê) ÌÀ¼¨Åª¤Ë -ºï½ü¤µ¤ì¤¿¡£¤â¤·¤¯¤Ï (¥Õ¥¡¥¤¥ë¤Îºï½ü¡¢¤Þ¤¿¤Ï¥Õ¥¡¥¤¥ë -¥·¥¹¥Æ¥à¤Î¥¢¥ó¥Þ¥¦¥ó¥È¤Ë¤è¤ê) ¼«Æ°Åª¤Ëºï½ü¤µ¤ì¤¿¡£ +監視対象が (\fBinotify_rm_watch\fP(2) により) 明示的に +削除された。もしくは (ファイルの削除、またはファイル +システムのアンマウントにより) 自動的に削除された。 .TP .B IN_ISDIR .\"O Subject of this event is a directory. -¤³¤Î¥¤¥Ù¥ó¥È¤ÎÂоݤ¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¡£ +このイベントの対象がディレクトリである。 .TP .B IN_Q_OVERFLOW .\"O Event queue overflowed (\fIwd\fP is \-1 for this event). -¥¤¥Ù¥ó¥È¥­¥å¡¼¤¬°î¤ì¤¿ (¤³¤Î¥¤¥Ù¥ó¥È¤Î¾ì¹ç¡¢\fIwd\fP ¤Ï \-1 ¤Ç¤¢¤ë)¡£ +イベントキューが溢れた (このイベントの場合、\fIwd\fP は \-1 である)。 .TP .B IN_UNMOUNT .\"O File system containing watched object was unmounted. -´Æ»ëÂоݥª¥Ö¥¸¥§¥¯¥È¤ò´Þ¤à¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¥¢¥ó¥Þ¥¦¥ó¥È¤µ¤ì¤¿¡£ +監視対象オブジェクトを含むファイルシステムがアンマウントされた。 .PD .RE .\"O .SS /proc interfaces -.SS /proc ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ +.SS /proc インターフェース .\"O The following interfaces can be used to limit the amount of .\"O kernel memory consumed by inotify: -°Ê²¼¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¡¢inotify ¤Ç¾ÃÈñ¤µ¤ì¤ë -¥«¡¼¥Í¥ë¥á¥â¥ê¤ÎÁíÎ̤òÀ©¸Â¤¹¤ë¤Î¤Ë»ÈÍѤǤ­¤ë: +以下のインターフェースは、inotify で消費される +カーネルメモリの総量を制限するのに使用できる: .TP .I /proc/sys/fs/inotify/max_queued_events .\"O The value in this file is used when an application calls .\"O .BR inotify_init (2) .\"O to set an upper limit on the number of events that can be .\"O queued to the corresponding inotify instance. -¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÃͤϡ¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬ +このファイルの値は、アプリケーションが .BR inotify_init (2) -¤ò¸Æ¤Ó½Ð¤¹¤È¤­¤Ë»ÈÍѤµ¤ì¡¢Âбþ¤¹¤ë inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤Ë¤Ä¤¤¤Æ -¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤ë¥¤¥Ù¥ó¥È¤Î¿ô¤Î¾å¸Â¤òÀßÄꤹ¤ë¡£ +を呼び出すときに使用され、対応する inotify インスタンスについて +キューに入れられるイベントの数の上限を設定する。 .\"O Events in excess of this limit are dropped, but an .\"O .B IN_Q_OVERFLOW .\"O event is always generated. -¤³¤ÎÀ©¸Â¤òĶ¤¨¤¿¥¤¥Ù¥ó¥È¤ÏÇË´þ¤µ¤ì¤ë¤¬¡¢ +この制限を超えたイベントは破棄されるが、 .B IN_Q_OVERFLOW -¥¤¥Ù¥ó¥È¤¬¾ï¤ËÀ¸À®¤µ¤ì¤ë¡£ +イベントが常に生成される。 .TP .I /proc/sys/fs/inotify/max_user_instances .\"O This specifies an upper limit on the number of inotify instances .\"O that can be created per real user ID. -1 ¤Ä¤Î¼Â¥æ¡¼¥¶ ID ¤ËÂФ·¤ÆÀ¸À®¤Ç¤­¤ë -inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤Î¿ô¤Î¾å¸Â¤ò»ØÄꤹ¤ë¡£ +1 つの実ユーザ ID に対して生成できる +inotify インスタンスの数の上限を指定する。 .TP .I /proc/sys/fs/inotify/max_user_watches .\"O This specifies an upper limit on the number of watches .\"O that can be created per real user ID. -ºîÀ®²Äǽ¤Ê´Æ»ëÂоݤοô¤Î¼Â UID ñ°Ì¤Î¾å¸Â¤ò»ØÄꤹ¤ë¡£ +作成可能な監視対象の数の実 UID 単位の上限を指定する。 .\"O .SH "VERSIONS" -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O Inotify was merged into the 2.6.13 Linux kernel. .\"O The required library interfaces were added to glibc in version 2.4. .\"O .RB ( IN_DONT_FOLLOW , @@ -530,31 +530,31 @@ inotify .\"O and .\"O .B IN_ONLYDIR .\"O were only added in version 2.5.) -inotify ¤Ï 2.6.13 ¤Î Linux ¥«¡¼¥Í¥ë¤ËÁȹþ¤Þ¤ì¤¿¡£ -¤³¤ì¤ËɬÍפʥ饤¥Ö¥é¥ê¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¡¢ -glibc ¤Î¥Ð¡¼¥¸¥ç¥ó 2.4 ¤ËÄɲ䵤줿 +inotify は 2.6.13 の Linux カーネルに組込まれた。 +これに必要なライブラリのインターフェースは、 +glibc のバージョン 2.4 に追加された .RB ( IN_DONT_FOLLOW , .BR IN_MASK_ADD , .B IN_ONLYDIR -¤À¤±¤Ï¥Ð¡¼¥¸¥ç¥ó 2.5 ¤ÇÄɲ䵤줿)¡£ +だけはバージョン 2.5 で追加された)。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O The inotify API is Linux-specific. -inotify API ¤Ï Linux Æȼ«¤Î¤â¤Î¤Ç¤¢¤ë¡£ +inotify API は Linux 独自のものである。 .\"O .SH "NOTES" -.SH Ãí°Õ +.SH 注意 .\"O Inotify file descriptors can be monitored using .\"O .BR select (2), .\"O .BR poll (2), .\"O and .\"O .BR epoll (7). -inotify ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï +inotify ファイルディスクリプタは .BR select (2), .BR poll (2), .BR epoll (7) -¤ò»È¤Ã¤Æ´Æ»ë¤Ç¤­¤ë¡£ +を使って監視できる。 .\"O When an event is available, the file descriptor indicates as readable. -¥¤¥Ù¥ó¥È¤¬¤¢¤ë¾ì¹ç¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÆɤ߹þ¤ß²Äǽ¤ÈÄÌÃΤ¹¤ë¡£ +イベントがある場合、ファイルディスクリプタは読み込み可能と通知する。 .\"O Since Linux 2.6.25, .\"O signal-driven I/O notification is available for inotify file descriptors; @@ -568,16 +568,16 @@ inotify .\"O .B F_SETSIG .\"O in .\"O .BR fcntl (2). -Linux 2.6.25 °Ê¹ß¤Ç¤Ï¡¢¥·¥°¥Ê¥ë¶îÆ° (signal-driven) I/O ¤ÎÄÌÃΤ¬ -inotify ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤Ä¤¤¤ÆÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +Linux 2.6.25 以降では、シグナル駆動 (signal-driven) I/O の通知が +inotify ファイルディスクリプタについて利用可能である。 .BR fcntl (2) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë +に書かれている .RB ( O_ASYNC -¥Õ¥é¥°¤òÀßÄꤹ¤ë¤¿¤á¤Î) +フラグを設定するための) .BR F_SETFL , .BR F_SETOWN , .B F_SETSIG -¤ÎµÄÏÀ¤ò»²¾È¤Î¤³¤È¡£ +の議論を参照のこと。 .\"O The .\"O .I siginfo_t .\"O structure (described in @@ -594,25 +594,25 @@ inotify .\"O .B POLLIN .\"O is set in .\"O .IR si_band . -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ËÅϤµ¤ì¤ë +シグナルハンドラに渡される .I siginfo_t -¹½Â¤ÂΤϡ¢°Ê²¼¤Î¥Õ¥£¡¼¥ë¥É¤¬ÀßÄꤵ¤ì¤ë +構造体は、以下のフィールドが設定される .RI ( siginfo_t -¤Ï +は .BR sigaction (2) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë)¡£ +で説明されている)。 .I si_fd -¤Ë¤Ï inotify ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿Èֹ椬¡¢ +には inotify ファイルディスクリプタ番号が、 .I si_signo -¤Ë¤Ï¥·¥°¥Ê¥ëÈֹ椬¡¢ +にはシグナル番号が、 .I si_code -¤Ë¤Ï +には .BR POLL_IN -¤¬¡¢ +が、 .I si_band -¤Ë¤Ï +には .B POLLIN -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .\"O If successive output inotify events produced on the .\"O inotify file descriptor are identical (same @@ -623,16 +623,16 @@ inotify .\"O .IR name ) .\"O then they are coalesced into a single event if the .\"O older event has not yet been read (but see BUGS). -inotify ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ -Ϣ³¤·¤ÆÀ¸À®¤µ¤ì¤ë½ÐÎÏ inotify ¥¤¥Ù¥ó¥È¤¬Æ±°ì¤Î¾ì¹ç +inotify ファイルディスクリプタに対して +連続して生成される出力 inotify イベントが同一の場合 .RI ( wd , .IR mask , .IR cookie , .I name -¤¬Åù¤·¤¤¾ì¹ç)¡¢ -Á°¤Î¥¤¥Ù¥ó¥È¤¬¤Þ¤ÀÆɤ߹þ¤Þ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ -Ϣ³¤¹¤ë¥¤¥Ù¥ó¥È¤¬ 1 ¤Ä¤Î¥¤¥Ù¥ó¥È¤Ë¤Þ¤È¤á¤é¤ì¤ë -(¤¿¤À¤·¡Ö¥Ð¥°¡×¤ÎÀá¤â»²¾È¤Î¤³¤È)¡£ +が等しい場合)、 +前のイベントがまだ読み込まれていなければ、 +連続するイベントが 1 つのイベントにまとめられる +(ただし「バグ」の節も参照のこと)。 .\"O The events returned by reading from an inotify file descriptor .\"O form an ordered queue. @@ -640,13 +640,13 @@ inotify .\"O one directory to another, events will be produced in the .\"O correct order on the inotify file descriptor. .\"Osato: -.\"Osato: °Ê²¼¤ÎÌõ¤¬¾å¼ê¤¯¤Ç¤­¤Æ¤¤¤Ê¤¤µ¤¤¬¤¹¤ë¡£ +.\"Osato: 以下の訳が上手くできていない気がする。 .\"Osato: -inotify ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÆɤ߹þ¤ß¤ÇÊÖ¤µ¤ì¤ë¥¤¥Ù¥ó¥È¤Ï¡¢ -½ç½øÉÕ¤±¤é¤ì¤¿¥­¥å¡¼¤Ë¤Ê¤ë¡£ -½¾¤Ã¤Æ¡¢¤¿¤È¤¨¤Ð¡¢¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î̾Á°¤òÊ̤Î̾Á°¤ËÊѹ¹¤·¤¿¾ì¹ç¡¢ -inotify ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤Ä¤¤¤Æ¤ÎÀµ¤·¤¤½çÈÖ¤Ç -¥¤¥Ù¥ó¥È¤¬À¸À®¤µ¤ì¤ë¤³¤È¤¬Êݾڤµ¤ì¤ë¡£ +inotify ファイルディスクリプタの読み込みで返されるイベントは、 +順序付けられたキューになる。 +従って、たとえば、あるディレクトリの名前を別の名前に変更した場合、 +inotify ファイルディスクリプタについての正しい順番で +イベントが生成されることが保証される。 .\"O The .\"O .B FIONREAD @@ -655,24 +655,24 @@ inotify .\"O inotify file descriptor. .B FIONREAD .BR ioctl (2) -¤Ï inotify ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤é²¿¥Ð¥¤¥ÈÆɤ߹þ¤á¤ë¤«¤òÊÖ¤¹¡£ +は inotify ファイルディスクリプタから何バイト読み込めるかを返す。 .\"O Inotify monitoring of directories is not recursive: .\"O to monitor subdirectories under a directory, .\"O additional watches must be created. -inotify ¤Ë¤è¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î´Æ»ë¤ÏºÆµ¢Åª¤Ë¹Ô¤ï¤ì¤Ê¤¤: -¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ò´Æ»ë¤¹¤ë¾ì¹ç¡¢ -´Æ»ëÂоݤòÄɲäǺîÀ®¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +inotify によるディレクトリの監視は再帰的に行われない: +あるディレクトリ以下のサブディレクトリを監視する場合、 +監視対象を追加で作成しなければならない。 .\"O .SH "BUGS" -.SH ¥Ð¥° +.SH バグ .\"O In kernels before 2.6.16, the .\"O .B IN_ONESHOT .\"O .I mask .\"O flag does not work. -2.6.16 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï +2.6.16 以前のカーネルでは .B IN_ONESHOT .I mask -¥Õ¥é¥°¤¬Æ¯¤«¤Ê¤¤¡£ +フラグが働かない。 .\"O Before kernel 2.6.25, .\"O the kernel code that was intended to coalesce successive identical events @@ -681,14 +681,14 @@ inotify .\"O instead checked if the most recent event could be coalesced with the .\"O .I oldest .\"O unread event. -¥«¡¼¥Í¥ë 2.6.25 ¤è¤êÁ°¤Ç¤Ï¡¢ -Ϣ³¤¹¤ëƱ°ì¤Î¥¤¥Ù¥ó¥È¤ò°ì¤Ä¤Ë¤Þ¤È¤á¤ë¤³¤È¤ò°Õ¿Þ¤·¤¿¥³¡¼¥É -(¸Å¤¤Êý¤Î¥¤¥Ù¥ó¥È¤¬¤Þ¤ÀÆɤ߹þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¡¢ -ºÇ¿·¤Î 2 ¤Ä¤Î¥¤¥Ù¥ó¥È¤ò°ì¤Ä¤Ë¤Þ¤È¤á¤é¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë) ¤¬¡¢ -ºÇ¿·¤Î¥¤¥Ù¥ó¥È¤¬¡ÖºÇ¤â¸Å¤¤¡×Æɤ߹þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¥¤¥Ù¥ó¥È¤È¤Þ¤È¤á¤é¤ì¤ë¤« -¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤¿¡£ +カーネル 2.6.25 より前では、 +連続する同一のイベントを一つにまとめることを意図したコード +(古い方のイベントがまだ読み込まれていない場合に、 +最新の 2 つのイベントを一つにまとめられる可能性がある) が、 +最新のイベントが「最も古い」読み込まれていないイベントとまとめられるか +をチェックするようになっていた。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR inotify_add_watch (2), .BR inotify_init (2), .BR inotify_init1 (2), diff --git a/draft/man7/intro.7 b/draft/man7/intro.7 index 4aaaa438..3ddfa13a 100644 --- a/draft/man7/intro.7 +++ b/draft/man7/intro.7 @@ -31,26 +31,26 @@ .\" Updated 2005-12-05, Akihiro MOTOKI, Catch up to LDP man-pages 2.16 .\" .TH INTRO 7 2007-10-23 "Linux" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 .\"O intro \- Introduction to overview, conventions, and miscellany section -intro \- ³µÍס¢´·½¬¤ä¤½¤Î¾¤ÎÀâÌÀ -.SH ÀâÌÀ +intro \- 概要、慣習やその他の説明 +.SH 説明 .\"O Section 7 of the manual provides overviews on various topics, and .\"O describes conventions and protocols, .\"O character set standards, the standard file system layout, .\"O and miscellaneous other things. -¥Þ¥Ë¥å¥¢¥ë¤Î 7 ¾Ï¤Ë¤ÏÍÍ¡¹¤Ê»öÊÁ¤Î³µÍפ¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ -½¬´·¡¢¥×¥í¥È¥³¥ë¡¢Ê¸»ú½¸¹ç¤Îµ¬³Ê¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¹½À®¡¢ -¤½¤Î¾¤Î»¨Â¿¤Ê¤³¤È¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤ë¡£ +マニュアルの 7 章には様々な事柄の概要が書かれている。 +習慣、プロトコル、文字集合の規格、ファイルシステムの構成、 +その他の雑多なことについて説明している。 .\"O .SH NOTES -.SH È÷¹Í +.SH 備考 .\"O .SS Authors and Copyright Conditions -.SS Ãø¼Ô¤ÈÃøºî¸¢ +.SS 著者と著作権 .\"O Look at the header of the manual page source for the author(s) and copyright .\"O conditions. .\"O Note that these can be different from page to page! -Ãø¼Ô¤ÈÃøºî¸¢(copyright)¤Ë´Ø¤·¤Æ¤Ï³Æ¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤Î¥½¡¼¥¹¤Î¥Ø¥Ã¥À¤ò¸«¤ë¤³¤È¡£ -¤³¤ì¤é¤Ï¥Ú¡¼¥¸¤´¤È¤Ë°Û¤Ã¤Æ¤¤¤ë¡£ +著者と著作権(copyright)に関しては各マニュアル・ページのソースのヘッダを見ること。 +これらはページごとに異っている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR standards (7) diff --git a/draft/man7/ip.7 b/draft/man7/ip.7 index 09ab9289..0dc3b4ef 100644 --- a/draft/man7/ip.7 +++ b/draft/man7/ip.7 @@ -19,20 +19,20 @@ .\" Updated 2007-05-28, Akihiro MOTOKI , LDP v2.48 .\" Updated 2008-12-26, Akihiro MOTOKI , LDP v3.14 .\" -.\"WORD ancillary message Êä½õ¥á¥Ã¥»¡¼¥¸ -.\"WORD ... oriented ¡Á»Ø¸þ¤Î -.\"WORD capability ¸¢¸Â -.\"WORD payload ¥Ú¥¤¥í¡¼¥É -.\"WORD drop(ped) (¥Ñ¥±¥Ã¥È¤ò) Íî¤È¤¹¡¢(¼õÆ°¤Î¾ì¹ç) ÅþÃ夷¤Ê¤¤ -.\"WORD tap ¥¿¥Ã¥×(¤¹¤ë) +.\"WORD ancillary message 補助メッセージ +.\"WORD ... oriented 〜指向の +.\"WORD capability 権限 +.\"WORD payload ペイロード +.\"WORD drop(ped) (パケットを) 落とす、(受動の場合) 到着しない +.\"WORD tap タップ(する) .\" .TH IP 7 2009-02-28 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O ip \- Linux IPv4 protocol implementation -ip \- Linux IPv4 ¥×¥í¥È¥³¥ë¤Î¼ÂÁõ +ip \- Linux IPv4 プロトコルの実装 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .\" .B #include -- does not exist anymore @@ -40,7 +40,7 @@ ip \- Linux IPv4 .B #include .br .\"O .B #include \fR/* superset of previous */ -.B #include \fR/* ¾åµ­¤Î¥¹¡¼¥Ñ¡¼¥»¥Ã¥È */ +.B #include \fR/* 上記のスーパーセット */ .sp .IB tcp_socket " = socket(AF_INET, SOCK_STREAM, 0);" .br @@ -48,36 +48,36 @@ ip \- Linux IPv4 .br .IB raw_socket " = socket(AF_INET, SOCK_RAW, " protocol ");" .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Linux implements the Internet Protocol, version 4, .\"O described in RFC\ 791 and RFC\ 1122. .\"O .B ip .\"O contains a level 2 multicasting implementation conforming to RFC\ 1112. .\"O It also contains an IP router including a packet filter. -Linux ¤Ï RFC\ 791 ¤È RFC\ 1122 ¤Çµ­½Ò¤µ¤ì¤Æ¤¤¤ë -Internet Protocol, version 4 ¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¡£ +Linux は RFC\ 791 と RFC\ 1122 で記述されている +Internet Protocol, version 4 を実装している。 .B ip -¤Ë¤Ï RFC\ 1112 ¤Ë½àµò¤·¤¿ level 2 ¥Þ¥ë¥Á¥­¥ã¥¹¥È¤Î¼ÂÁõ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -¤Þ¤¿¥Ñ¥±¥Ã¥È¥Õ¥£¥ë¥¿µ¡Ç½¤ò´Þ¤à IP ¥ë¡¼¥¿¡¼¤â¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +には RFC\ 1112 に準拠した level 2 マルチキャストの実装が含まれている。 +またパケットフィルタ機能を含む IP ルーターも実装されている。 .\" FIXME has someone verified that 2.1 is really 1812 compliant? .PP .\"O The programming interface is BSD-sockets compatible. .\"O For more information on sockets, see .\"O .BR socket (7). -¥×¥í¥°¥é¥ß¥ó¥°¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï BSD ¥½¥±¥Ã¥È¤È¸ß´¹¤Ç¤¢¤ë¡£ -¥½¥±¥Ã¥È¤Ë´Ø¤¹¤ë¤è¤ê¾ÜºÙ¤Ê¾ðÊó¤Ï +プログラミング・インターフェースは BSD ソケットと互換である。 +ソケットに関するより詳細な情報は .BR socket (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O An IP socket is created by calling the .\"O .BR socket (2) .\"O function as .\"O .BR "socket(AF_INET, socket_type, protocol)" . -IP ¥½¥±¥Ã¥È¤Ï¡¢ +IP ソケットは、 .BR socket (2) -´Ø¿ô¤ò +関数を .B "socket(AF_INET, socket_type, protocol)" -¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤¹¤³¤È¤ÇÀ¸À®¤µ¤ì¤ë¡£ +のように呼び出すことで生成される。 .\"O Valid socket types are .\"O .B SOCK_STREAM .\"O to open a @@ -91,18 +91,18 @@ IP .\"O to open a .\"O .BR raw (7) .\"O socket to access the IP protocol directly. -»ØÄê¤Ç¤­¤ë¥½¥±¥Ã¥È¥¿¥¤¥×¤Ï 3 ¤Ä¤¢¤ê¡¢ +指定できるソケットタイプは 3 つあり、 .BR tcp (7) -¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤¹¤ë¾ì¹ç -.BR SOCK_STREAM ¡¢ +ソケットをオープンする場合 +.BR SOCK_STREAM 、 .BR udp (7) -¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤¹¤ë¾ì¹ç -.BR SOCK_DGRAM ¡¢ -IP ¥×¥í¥È¥³¥ë¤ËľÀÜ¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Ë +ソケットをオープンする場合 +.BR SOCK_DGRAM 、 +IP プロトコルに直接アクセスするために .BR raw (7) -¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤¹¤ë¾ì¹ç¤Ë¤Ï +ソケットをオープンする場合には .B SOCK_RAW -¤Ç¤¢¤ë¡£ +である。 .\"O .I protocol .\"O is the IP protocol in the IP header to be received or sent. .\"O The only valid values for @@ -117,16 +117,16 @@ IP .\"O you may specify a valid IANA IP protocol defined in .\"O RFC\ 1700 assigned numbers. .I protocol -¤ÏÁ÷¼õ¿®¤µ¤ì¤ë IP ¥Ø¥Ã¥À¤Ë½ñ¤«¤ì¤ë IP ¥×¥í¥È¥³¥ë¤Ç¤¢¤ë¡£ -»ØÄê¤Ç¤­¤ëÃͤϡ¢ -TCP ¥½¥±¥Ã¥È¤Ë¤Ï 0 ¤« -.BR IPPROTO_TCP ¡¢ -UDP ¥½¥±¥Ã¥È¤Ë¤Ï 0 ¤« +は送受信される IP ヘッダに書かれる IP プロトコルである。 +指定できる値は、 +TCP ソケットには 0 か +.BR IPPROTO_TCP 、 +UDP ソケットには 0 か .B IPPROTO_UDP -¤Ë¸Â¤é¤ì¤ë¡£ +に限られる。 .B SOCK_RAW -¤ËÂФ·¤Æ¤Ï¡¢ RFC\ 1700 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëÍ­¸ú¤Ê IANA IP ¥×¥í¥È¥³¥ë¤ò¡¢ -³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ëÈÖ¹æ¤Ç»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +に対しては、 RFC\ 1700 で定義されている有効な IANA IP プロトコルを、 +割り当てられている番号で指定することができる。 .PP .\" FIXME ip current does an autobind in listen, but I'm not sure .\" if that should be documented. @@ -146,25 +146,25 @@ UDP .\"O are called on an unbound socket, it is automatically bound to a .\"O random free port with the local address set to .\"O .BR INADDR_ANY . -¤¢¤ë¥×¥í¥»¥¹¤Ç¡¢¤ä¤Ã¤Æ¤¯¤ë¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤·¤¿¤ê -ÀܳÍ×µá¤ò¼õ¤±¤¿¤ê¤·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ -¤½¤Î¥×¥í¥»¥¹¤Ï¥í¡¼¥«¥ë¤Ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹¤Ë¡¢ +あるプロセスで、やってくるパケットを受信したり +接続要求を受けたりしたい場合には、 +そのプロセスはローカルなインターフェースアドレスに、 .BR bind (2) -¤òÍѤ¤¤Æ¥½¥±¥Ã¥È¤ò¥Ð¥¤¥ó¥É¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤¢¤ë¥í¡¼¥«¥ë¤Ê¡Ö¥¢¥É¥ì¥¹¤È¥Ý¡¼¥È¡×¤Î¥Ú¥¢¤ËÂФ·¤Æ¥Ð¥¤¥ó¥É¤Ç¤­¤ë -IP ¥½¥±¥Ã¥È¤Ï°ì¤Ä¤Ë¸Â¤é¤ì¤ë¡£ +を用いてソケットをバインドしなければならない。 +あるローカルな「アドレスとポート」のペアに対してバインドできる +IP ソケットは一つに限られる。 .BR bind (2) -¤Î¸Æ¤Ó½Ð¤·¤Ç +の呼び出しで .B INADDR_ANY -¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ï¡¢¥½¥±¥Ã¥È¤Ï¥í¡¼¥«¥ë¤Ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î -\fI¤¹¤Ù¤Æ\fP¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¤ë¡£ +が指定されていた場合は、ソケットはローカルなインターフェースの +\fIすべて\fPにバインドされる。 .BR listen (2) -¤Þ¤¿¤Ï +または .BR connect (2) -¤¬¥Ð¥¤¥ó¥É¤µ¤ì¤Æ¤¤¤Ê¤¤¥½¥±¥Ã¥È¤Ç¥³¡¼¥ë¤µ¤ì¤ë¤È¡¢ -¤½¤Î¥½¥±¥Ã¥È¤Ï¼«Æ°Åª¤Ë¥í¡¼¥«¥ë¤Ê¥¢¥É¥ì¥¹¤ò +がバインドされていないソケットでコールされると、 +そのソケットは自動的にローカルなアドレスを .B INADDR_ANY -¤Ë¥»¥Ã¥È¤·¡¢¶õ¤¤¤Æ¤¤¤ë¥Ý¡¼¥È¤ò¥é¥ó¥À¥à¤ËÁª¤ó¤Ç¥Ð¥¤¥ó¥É¤¹¤ë¡£ +にセットし、空いているポートをランダムに選んでバインドする。 .\"O A TCP local socket address that has been bound is unavailable for .\"O some time after closing, unless the @@ -172,14 +172,14 @@ IP .\"O flag has been set. .\"O Care should be taken when using this flag as it makes TCP less reliable. .B SO_REUSEADDR -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ -¥Ð¥¤¥ó¥É¤µ¤ì¤Æ¤¤¤¿ TCP ¥í¡¼¥«¥ë¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Ï -¥¯¥í¡¼¥º¤µ¤ì¤¿¸å¤·¤Ð¤é¤¯¤Î´Ö»È¤¨¤Ê¤¯¤Ê¤ë¡£ +フラグがセットされていない場合には、 +バインドされていた TCP ローカルソケットアドレスは +クローズされた後しばらくの間使えなくなる。 .B SO_REUSEADDR -¥Õ¥é¥°¤ò»È¤¦¤È TCP ¤Î¿®ÍêÀ­¤òÄã²¼¤µ¤»¤ë¤Î¤Ç¡¢ -»È¤¦¤È¤­¤Ë¤ÏÃí°Õ¤¬É¬ÍפǤ¢¤ë¡£ +フラグを使うと TCP の信頼性を低下させるので、 +使うときには注意が必要である。 .\"O .SS Address Format -.SS ¥¢¥É¥ì¥¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È +.SS アドレスのフォーマット .\"O An IP socket address is defined as a combination of an IP interface .\"O address and a 16-bit port number. .\"O The basic IP protocol does not supply port numbers, they @@ -190,17 +190,17 @@ IP .\"O On raw sockets .\"O .I sin_port .\"O is set to the IP protocol. -IP ¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Ï¡¢ IP ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹¤È -16¥Ó¥Ã¥È¤Î¥Ý¡¼¥ÈÈÖ¹æ¤ÎÁȤ߹ç¤ï¤»¤ÇÄêµÁ¤µ¤ì¤ë¡£ -IP ¥×¥í¥È¥³¥ë¤½¤Î¤â¤Î¤Ï¥Ý¡¼¥ÈÈÖ¹æ¤ò°·¤ï¤Ê¤¤¡£ -¥Ý¡¼¥ÈÈÖ¹æ¤Ï¡¢ +IP ソケットアドレスは、 IP インターフェースアドレスと +16ビットのポート番号の組み合わせで定義される。 +IP プロトコルそのものはポート番号を扱わない。 +ポート番号は、 .BR udp (7) -¤ä +や .BR tcp (7) -¤È¤¤¤Ã¤¿¡¢¾å°Ì¤Î¥×¥í¥È¥³¥ë¤Ç¼ÂÁõ¤µ¤ì¤ë¡£ -raw ¥½¥±¥Ã¥È¤Ç¤Ï¡¢ +といった、上位のプロトコルで実装される。 +raw ソケットでは、 .I sin_port -¤¬ IP ¥×¥í¥È¥³¥ë¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ +が IP プロトコルにセットされる。 .PP .in +4n .nf @@ -240,29 +240,29 @@ struct in_addr { .\"O and .\"O .BR udp (7). .I sin_familiy -¤Ë¤Ï¾ï¤Ë +には常に .B AF_INET -¤ò¥»¥Ã¥È¤¹¤ë¡£¤³¤ì¤Ïɬ¿Ü¤Ç¤¢¤ë¡£ Linux 2.2 ¤Ç¤Ï¡¢¤³¤Î¥»¥Ã¥È¤ò˺¤ì¤ë¤È -¤Û¤È¤ó¤É¤Î¥Í¥Ã¥È¥ï¡¼¥¯´Ø¿ô¤Ï +をセットする。これは必須である。 Linux 2.2 では、このセットを忘れると +ほとんどのネットワーク関数は .B EINVAL -¤òÊÖ¤¹¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +を返すようになっている。 .I sin_port -¤Ë¤Ï¥Ý¡¼¥ÈÈÖ¹æ¤ò¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Ç»ØÄꤹ¤ë¡£ -1024 ̤Ëþ¤Î¥Ý¡¼¥ÈÈÖ¹æ¤Ï -.I "Æø¢¥Ý¡¼¥È (privileged ports)" -¤È¸Æ¤Ð¤ì¤ë -.RI ( "ͽÌó¥Ý¡¼¥È (reserved ports)" -¤È¤â»þ¡¹¸Æ¤Ð¤ì¤ë)¡£ -Æø¢¥×¥í¥»¥¹ +にはポート番号をネットワークバイトオーダーで指定する。 +1024 未満のポート番号は +.I "特権ポート (privileged ports)" +と呼ばれる +.RI ( "予約ポート (reserved ports)" +とも時々呼ばれる)。 +特権プロセス .RB ( CAP_NET_BIND_SERVICE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹) °Ê³°¤Î¥×¥í¥»¥¹¤Ï¡¢¤³¤ì¤é¤Î¥Ý¡¼¥È¤Ë¤Ï +ケーパビリティを持つプロセス) 以外のプロセスは、これらのポートには .BR bind (2) -¤Ç¤­¤Ê¤¤¡£ IPv4 ¥×¥í¥È¥³¥ë¤½¤Î¤â¤Î¤Ë¤Ï¥Ý¡¼¥È¤Ë´Ø¤¹¤ë³µÇ°¤¬¤Ê¤¤¡£ -¥Ý¡¼¥È¤Ï¡¢ +できない。 IPv4 プロトコルそのものにはポートに関する概念がない。 +ポートは、 .BR tcp (7) -¤ä +や .BR udp (7) -¤È¤¤¤Ã¤¿¡¢¾å°Ì¤Î¥×¥í¥È¥³¥ë¤Ë¤ª¤¤¤Æ¼ÂÁõ¤µ¤ì¤ë¡£ +といった、上位のプロトコルにおいて実装される。 .PP .\"O .I sin_addr .\"O is the IP host address. @@ -272,12 +272,12 @@ struct in_addr { .\"O .I struct in_addr .\"O contains the host interface address in network byte order. .I sin_addr -¤Ï IP ¥Û¥¹¥È¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +は IP ホストアドレスである。 .I struct in_addr -¤Î +の .I s_addr -¥á¥ó¥Ð¤Ë¤Ï¡¢¥Û¥¹¥È¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹¤ò -¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Ç»ØÄꤹ¤ë¡£ +メンバには、ホストのインターフェースアドレスを +ネットワークバイトオーダーで指定する。 .\"O .I in_addr .\"O should be assigned one of the INADDR_* values (e.g., .\"O .BR INADDR_ANY ) @@ -288,17 +288,17 @@ struct in_addr { .\"O library functions or directly with the name resolver (see .\"O .BR gethostbyname (3)). .I in_addr -¤Ï¡¢INADDR_* ¤Î°ì¤Ä (Î㤨¤Ð +は、INADDR_* の一つ (例えば .BR INADDR_ANY ) -¤òÂåÆþ¤¹¤ë¡¢ -¥é¥¤¥Ö¥é¥ê´Ø¿ô +を代入する、 +ライブラリ関数 .BR inet_aton (3), .BR inet_addr (3), .BR inet_makeaddr (3) -¤òÍѤ¤¤ë¡¢¤¢¤ë¤¤¤Ï̾Á°²ò·èµ¡¹½ (name resolver) -¤òľÀÜÍѤ¤¤ë¡¢¤Î¤É¤ì¤«¤ÇÀßÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£ +を用いる、あるいは名前解決機構 (name resolver) +を直接用いる、のどれかで設定すべきである。 .RB ( gethostbyname (3) -¤ò¸«¤è)¡£ +を見よ)。 .\"O IPv4 addresses are divided into unicast, broadcast .\"O and multicast addresses. @@ -308,17 +308,17 @@ struct in_addr { .\"O Datagrams to broadcast addresses can be only sent or received when the .\"O .B SO_BROADCAST .\"O socket flag is set. -IPv4 ¥¢¥É¥ì¥¹¤Ë¤Ï¡¢¥æ¥Ë¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¡¢ -¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¡¢¥Þ¥ë¥Á¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤¬¤¢¤ë¡£ -¥æ¥Ë¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤Ï¡¢¤¢¤ë¥Û¥¹¥È¤Î°ì¤Ä¤Î¥¢¥É¥ì¥¹¤ò»ØÄꤹ¤ë¡£ -¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤Ï¡¢¤¢¤ë¥Í¥Ã¥È¥ï¡¼¥¯¾å¤ÎÁ´¤Æ¤Î¥Û¥¹¥È¤ò»ØÄꤹ¤ë¡£ -¥Þ¥ë¥Á¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤Ï¡¢¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¤Ë½ê°¤¹¤ë -Á´¤Æ¤Î¥Û¥¹¥È¤ò»ØÄꤹ¤ë¡£¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤Ø¤Î¥Ç¡¼¥¿¥°¥é¥à¤Ï¡¢ +IPv4 アドレスには、ユニキャストアドレス、 +ブロードキャストアドレス、マルチキャストアドレスがある。 +ユニキャストアドレスは、あるホストの一つのアドレスを指定する。 +ブロードキャストアドレスは、あるネットワーク上の全てのホストを指定する。 +マルチキャストアドレスは、マルチキャストグループに所属する +全てのホストを指定する。ブロードキャストアドレスへのデータグラムは、 .B SO_BROADCAST -¥½¥±¥Ã¥È¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤ÈÁ÷¿®¡¦¼õ¿®¤Ç¤­¤Ê¤¤¡£ +ソケットフラグがセットされていないと送信・受信できない。 .\"O In the current implementation, connection oriented sockets are only allowed .\"O to use unicast addresses. -¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¡¢Àܳ»Ø¸þ¤Î¥½¥±¥Ã¥È¤Ë¤Ï¥æ¥Ë¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤·¤«»È¤¨¤Ê¤¤¡£ +現在の実装では、接続指向のソケットにはユニキャストアドレスしか使えない。 .\" Leave a loophole for XTP @) .\"O Note that the address and the port are always stored in @@ -328,12 +328,12 @@ IPv4 .\"O on the number that is assigned to a port. .\"O All address/port manipulation .\"O functions in the standard library work in network byte order. -¥¢¥É¥ì¥¹¤È¥Ý¡¼¥È¤Ï¾ï¤Ë¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Ç³ÊǼ¤µ¤ì¤ë¤³¤È¤ËÃí°Õ¤»¤è¡£ -¶ñÂÎŪ¤Ë¤Ï¡¢¥Ý¡¼¥È¤ò»ØÄꤹ¤ë¿ôÃÍ¤Ë¤Ï +アドレスとポートは常にネットワークバイトオーダーで格納されることに注意せよ。 +具体的には、ポートを指定する数値には .BR htons (3) -¤ò¸Æ¤Ó½Ð¤¹É¬Íפ¬¤¢¤ë¡£ -ɸ½à¥é¥¤¥Ö¥é¥ê¤Ë¤¢¤ë¥¢¥É¥ì¥¹/¥Ý¡¼¥ÈÁàºî´Ø¿ô¤Ï -¤¹¤Ù¤Æ¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤ÇÆ°ºî¤¹¤ë¡£ +を呼び出す必要がある。 +標準ライブラリにあるアドレス/ポート操作関数は +すべてネットワークバイトオーダーで動作する。 .\"O There are several special addresses: .\"O .B INADDR_LOOPBACK @@ -347,20 +347,20 @@ IPv4 .\"O means any host and has the same effect on bind as .\"O .B INADDR_ANY .\"O for historical reasons. -ÆÃÊ̤ʥ¢¥É¥ì¥¹¤¬¤¤¤¯¤Ä¤«Â¸ºß¤¹¤ë: +特別なアドレスがいくつか存在する: .TP .BR INADDR_LOOPBACK (127.0.0.1) -loopback ¥Ç¥Ð¥¤¥¹¤òÄ̤·¤Æ¾ï¤Ë¥í¡¼¥«¥ë¤Ê¥Û¥¹¥È¤ò»²¾È¤¹¤ë¡£ +loopback デバイスを通して常にローカルなホストを参照する。 .TP .BR INADDR_ANY (0.0.0.0) -¥Ð¥¤¥ó¥É¤ËÍѤ¤¤ëǤ°Õ¤Î¥¢¥É¥ì¥¹¡£ +バインドに用いる任意のアドレス。 .TP .BR INADDR_BROADCAST (255.255.255.255) -Ǥ°Õ¤Î¥Û¥¹¥È¡£Îò»ËŪÍýͳ¤«¤é¡¢¥Ð¥¤¥ó¥É¤ÎºÝ¤Ë¤Ï +任意のホスト。歴史的理由から、バインドの際には .B INADDR_ANY -¤ÈƱ¤¸¸ú²Ì¤Ë¤Ê¤ë¡£ +と同じ効果になる。 .\"O .SS Socket Options -.SS ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó +.SS ソケットオプション .\"O IP supports some protocol-specific socket options that can be set with .\"O .BR setsockopt (2) .\"O and read with @@ -369,15 +369,15 @@ loopback .\"O .BR IPPROTO_IP . .\"O .\" or SOL_IP on Linux .\"O A boolean integer flag is zero when it is false, otherwise true. -IP ¤Ë¤Ï¥×¥í¥È¥³¥ë¸ÇÍ­¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬¤¤¤¯¤Ä¤«Â¸ºß¤·¡¢ +IP にはプロトコル固有のソケットオプションがいくつか存在し、 .BR setsockopt (2) -¤ÇÀßÄ꤬¡¢ +で設定が、 .BR getsockopt (2) -¤Ç¼èÆÀ¤¬¤Ç¤­¤ë¡£ IP ¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¥ì¥Ù¥ë¤Ï +で取得ができる。 IP のソケットオプションレベルは .B IPPROTO_IP -.\" Linux ¤Ç¤Ï SOL_IP ¤â²Ä -¤Ç¤¢¤ë¡£ -¥Ö¡¼¥ëÀ°¿ôÃͤΥե饰¤Ç¤Ï¡¢ 0 ¤Ïµ¶¡¢¤½¤ì°Ê³°¤Ï¿¿¤ò°ÕÌ£¤¹¤ë¡£ +.\" Linux では SOL_IP も可 +である。 +ブール整数値のフラグでは、 0 は偽、それ以外は真を意味する。 .\" .\" FIXME Document IP_FREEBIND .\" Boolean @@ -385,15 +385,15 @@ IP .\" .TP .\"O .BR IP_ADD_MEMBERSHIP " (since Linux 1.2)" -.BR IP_ADD_MEMBERSHIP " (Linux 1.2 °Ê¹ß)" +.BR IP_ADD_MEMBERSHIP " (Linux 1.2 以降)" .\"O Join a multicast group. .\"O Argument is an .\"O .I ip_mreqn .\"O structure. -¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¤Ë»²²Ã¤¹¤ë¡£ -°ú¤­¿ô¤Ï +マルチキャストグループに参加する。 +引き数は .I ip_mreqn -¹½Â¤ÂΤǤ¢¤ë¡£ +構造体である。 .sp .in +4n .nf @@ -426,26 +426,26 @@ struct ip_mreqn { .\"O .I imr_multiaddr .\"O group, or 0 to indicate any interface. .I imr_multiaddr -¤Ë¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬»²²Ã¤Þ¤¿¤ÏűÂष¤¿¤¤ -¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¤Î¥¢¥É¥ì¥¹¤¬Æþ¤ë¡£ -»ØÄꤹ¤ë¥¢¥É¥ì¥¹¤ÏÍ­¸ú¤Ê¥Þ¥ë¥Á¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -.\" (¤Ä¤Þ¤ê¡¢224.0.0.0-239.255.255.255 ¤ÎÈÏ°ÏÆâ) -(¤µ¤â¤Ê¤±¤ì¤Ð +には、アプリケーションが参加または撤退したい +マルチキャストグループのアドレスが入る。 +指定するアドレスは有効なマルチキャストアドレスでなければならない +.\" (つまり、224.0.0.0-239.255.255.255 の範囲内) +(さもなければ .BR setsockopt (2) -¤¬¥¨¥é¡¼ +がエラー .B EINVAL -¤Ç¼ºÇÔ¤¹¤ë)¡£ +で失敗する)。 .I imr_address -¤Ï¥·¥¹¥Æ¥à¤¬¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¤Ë»²²Ã¤¹¤ëºÝ¤ËÍѤ¤¤ë -¥í¡¼¥«¥ë¤Ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ -¤³¤ì¤¬ +はシステムがマルチキャストグループに参加する際に用いる +ローカルなインターフェースのアドレスである。 +これが .B INADDR_ANY -¤Ç¤¢¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢Å¬Àڤʥ¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤ÆÁªÂò¤µ¤ì¤ë¡£ +であった場合には、適切なインターフェースがシステムによって選択される。 .I imr_ifindex -¤Ï +は .I imr_multiaddr -¥°¥ë¡¼¥×¤Ë»²²Ã/űÂह¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î interface index ¤Ç¤¢¤ë¡£ -¤É¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤â¤è¤¤¾ì¹ç¤Ï 0 ¤Ë¤¹¤ë¡£ +グループに参加/撤退するインターフェースの interface index である。 +どのインターフェースでもよい場合は 0 にする。 .IP .\"O The .\"O .I ip_mreqn @@ -461,20 +461,20 @@ struct ip_mreqn { .\"O Only valid as a .\"O .BR setsockopt (2). .I ip_mreqn -¤Ï Linux 2.2 °Ê¹ß¤Ç¤Î¤ßÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -¸ß´¹À­¤Î¤¿¤á¡¢¸Å¤¤ +は Linux 2.2 以降でのみ利用可能である。 +互換性のため、古い .I ip_mreq -¹½Â¤ÂÎ (Linux 1.2 °Ê¹ß¤Ç¸ºß¤¹¤ë) ¤â¤Þ¤À¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +構造体 (Linux 1.2 以降で存在する) もまだサポートされている。 .I ip_mreqn -¤È¤Î°ã¤¤¤Ï¡¢ +との違いは、 .I imr_ifindex -¥Õ¥£¡¼¥ë¥É¤ò´Þ¤Þ¤Ê¤¤¤³¤È¤À¤±¤Ç¤¢¤ë¡£ +フィールドを含まないことだけである。 .BR setsockopt (2) -¤Ç¤Î¤ß»È¤¨¤ë¡£ +でのみ使える。 .\" .TP .\"O .BR IP_DROP_MEMBERSHIP " (since Linux 1.2)" -.BR IP_DROP_MEMBERSHIP " (Linux 1.2 °Ê¹ß)" +.BR IP_DROP_MEMBERSHIP " (Linux 1.2 以降)" .\"O Leave a multicast group. .\"O Argument is an .\"O .I ip_mreqn @@ -482,16 +482,16 @@ struct ip_mreqn { .\"O .I ip_mreq .\"O structure similar to .\"O .BR IP_ADD_MEMBERSHIP . -¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¤«¤éÈ´¤±¤ë¡£°ú¤­¿ô¤Ï +マルチキャストグループから抜ける。引き数は .B IP_ADD_MEMBERSHIP -¤ÈƱÍÍ¤Ë +と同様に .I ip_mreqn -¤Þ¤¿¤Ï +または .I ip_mreq -¹½Â¤ÂΤǤ¢¤ë¡£ +構造体である。 .TP .\"O .BR IP_HDRINCL " (since Linux 2.0)" -.BR IP_HDRINCL " (Linux 2.0 °Ê¹ß)" +.BR IP_HDRINCL " (Linux 2.0 以降)" .\"O If enabled, .\"O the user supplies an IP header in front of the user data. .\"O Only valid for @@ -506,34 +506,34 @@ struct ip_mreqn { .\"O and .\"O .B IP_TOS .\"O are ignored. -Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢¥æ¡¼¥¶¤Ï IP ¥Ø¥Ã¥À¤ò¥æ¡¼¥¶¡¼¥Ç¡¼¥¿¤ÎÁ°¤ËÍ¿¤¨¤ë¡£ +有効になっていると、ユーザは IP ヘッダをユーザーデータの前に与える。 .B SOCK_RAW -¥½¥±¥Ã¥È¤Ç¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£¾ÜºÙ¤Ï +ソケットでのみ有効である。詳細は .BR raw (7) -¤ò¸«¤è¡£¤³¤Î¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢ +を見よ。このフラグが有効になっていると、 .BR IP_OPTIONS , .BR IP_TTL , .B IP_TOS -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\" FIXME Document IP_IPSEC_POLICY .\" Since Linux 2.5.47 .\" Needs CAP_NET_ADMIN .TP .\"O .BR IP_MTU " (since Linux 2.2)" -.BR IP_MTU " (Linux 2.2 °Ê¹ß)" +.BR IP_MTU " (Linux 2.2 以降)" .\" Precisely: 2.1.124 .\"O Retrieve the current known path MTU of the current socket. .\"O Only valid when the socket has been connected. .\"O Returns an integer. .\"O Only valid as a .\"O .BR getsockopt (2). -¥½¥±¥Ã¥È¤Î¡¢´ûÃΤΠpath MTU ¤ò¼èÆÀ¤¹¤ë¡£ -¥½¥±¥Ã¥È¤¬Àܳ¤·¤Æ¤¤¤ë¾ì¹ç¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£ +ソケットの、既知の path MTU を取得する。 +ソケットが接続している場合のみ有効である。 .BR getsockopt (2) -¤Ç¤Î¤ß»È¤¨¤ë¡£ +でのみ使える。 .TP .\"O .BR IP_MTU_DISCOVER " (since Linux 2.2)" -.BR IP_MTU_DISCOVER " (Linux 2.2 °Ê¹ß)" +.BR IP_MTU_DISCOVER " (Linux 2.2 以降)" .\" Precisely: 2.1.124 .\"O Set or receive the Path MTU Discovery setting for a socket. .\"O When enabled, Linux will perform Path MTU Discovery @@ -553,24 +553,24 @@ struct ip_mreqn { .\"O path MTU if this flag is set (with .\"O .B EMSGSIZE .\"O ). -¥½¥±¥Ã¥È¤Î Path MTU Discovery ¤ÎÀßÄê¤ò¥»¥Ã¥È¡¦¼èÆÀ¤¹¤ë¡£ -Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢ Linux ¤Ï¤³¤Î¥½¥±¥Ã¥È¤ËÂФ·¤Æ -RFC\ 1191 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë Path MTU Discovery ¤ò¹Ô¤¦¡£ -ȯ¿®¥Ç¡¼¥¿¥°¥é¥à¤Ë¤Ï¡¢Á´¤Æ¡Ö¥Õ¥é¥°¥á¥ó¥ÈÉÔµö²Ä¡×¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ -¥·¥¹¥Æ¥àÁ´ÂΤËÂФ¹¤ë¥Ç¥Õ¥©¥ë¥È¤Ï¡¢ +ソケットの Path MTU Discovery の設定をセット・取得する。 +有効になっていると、 Linux はこのソケットに対して +RFC\ 1191 で定義されている Path MTU Discovery を行う。 +発信データグラムには、全て「フラグメント不許可」フラグがセットされる。 +システム全体に対するデフォルトは、 .B SOCK_STREAM -¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤Ï +ソケットに対しては .I /proc/sys/net/ipv4/ip_no_pmtu_disc -¥Õ¥¡¥¤¥ë¤Ë¤è¤êÀ©¸æ¤Ç¤­¤ë¡£ -¤½¤Î¾¤Ë¤Ä¤¤¤Æ¤Ï̵¸ú¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ +ファイルにより制御できる。 +その他については無効となっている。 .B SOCK_STREAM -¤Ç¤Ê¤¤¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤Ï¡¢ -¥æ¡¼¥¶¡¼¤¬¥Ç¡¼¥¿¤ò MTU ¤Î¥µ¥¤¥º¤Î²ô¤Ë¥Ñ¥±¥Ã¥È²½¤·¤¿¤ê¡¢ -ɬÍפʾì¹ç¤Ë¤ÏºÆÁ÷¤·¤¿¤ê¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤Î¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢ -¥«¡¼¥Í¥ë¤Ï´ûÃΤΠpath MTU ¤è¤êÂ礭¤Ê¥Ñ¥±¥Ã¥È¤òµñÈݤ¹¤ë +でないソケットに対しては、 +ユーザーがデータを MTU のサイズの塊にパケット化したり、 +必要な場合には再送したりしなければならない。 +このフラグがセットされていると、 +カーネルは既知の path MTU より大きなパケットを拒否する .RB ( EMSGSIZE -¤È¤Ê¤ë)¡£ +となる)。 .TS tab(:); c l @@ -580,11 +580,11 @@ l l. .\"O IP_PMTUDISC_DONT:Never do Path MTU Discovery. .\"O IP_PMTUDISC_DO:Always do Path MTU Discovery. .\"O IP_PMTUDISC_PROBE:Set DF but ignore Path MTU. -Path MTU discovery ¥Õ¥é¥°:°ÕÌ£ -IP_PMTUDISC_WANT:¥ë¡¼¥È¤´¤È¤ÎÀßÄê¤òÍѤ¤¤ë¡£ -IP_PMTUDISC_DONT:Path MTU Discovery ¤ò¹Ô¤ï¤Ê¤¤¡£ -IP_PMTUDISC_DO:¾ï¤Ë Path MTU Discovery ¤ò¹Ô¤¦¡£ -IP_PMTUDISC_PROBE:DF¥Ó¥Ã¥È¤ò¥»¥Ã¥È¤¹¤ë¤¬¡¢Path MTU ¤ò̵»ë¤¹¤ë¡£ +Path MTU discovery フラグ:意味 +IP_PMTUDISC_WANT:ルートごとの設定を用いる。 +IP_PMTUDISC_DONT:Path MTU Discovery を行わない。 +IP_PMTUDISC_DO:常に Path MTU Discovery を行う。 +IP_PMTUDISC_PROBE:DFビットをセットするが、Path MTU を無視する。 .TE .\"O When PMTU discovery is enabled, the kernel automatically keeps track of @@ -602,38 +602,38 @@ IP_PMTUDISC_PROBE:DF .\"O error queue (see .\"O .BR IP_RECVERR ). .\"O A new error will be queued for every incoming MTU update. -path MTU discovery ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢¥«¡¼¥Í¥ë¤Ï°¸Àè¥Û¥¹¥È¤´¤È¤Ë -¼«Æ°Åª¤Ë path MTU ¤ò½èÍý¤¹¤ë¡£ÆÃÄê¤ÎÁê¼ê¤Ë +path MTU discovery が有効になっていると、カーネルは宛先ホストごとに +自動的に path MTU を処理する。特定の相手に .BR connect (2) -¤ÇÀܳ¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ +で接続した場合には、 .B IP_MTU -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ì¤Ð¡¢´ûÃΤΠpath MTU ¤Î¼èÆÀ¤ËÊØÍø¤Ç¤¢¤ë -(¤¿¤È¤¨¤Ð +ソケットオプションを用いれば、既知の path MTU の取得に便利である +(たとえば .B EMSGSIZE -¥¨¥é¡¼¤¬µ¯¤­¤¿¸å¤Ê¤É)¡£¤³¤ì¤Ï»þ´Ö¤È¤È¤â¤ËÊѲ½¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -°¸À褬¤¿¤¯¤µ¤ó¤¢¤ë¥³¥Í¥¯¥·¥ç¥ó¥ì¥¹¤Ê¥½¥±¥Ã¥È¤Ç¤Ï¡¢ -Í¿¤¨¤é¤ì¤¿°¸Àè¤ËÂФ¹¤ë¿·¤·¤¤ MTU ¤Ë¤â¡¢ -¥¨¥é¡¼¥­¥å¡¼¤òÍѤ¤¤Æ¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë +エラーが起きた後など)。これは時間とともに変化するかもしれない。 +宛先がたくさんあるコネクションレスなソケットでは、 +与えられた宛先に対する新しい MTU にも、 +エラーキューを用いてアクセスすることができる .RB ( IP_RECVERR -¤ò¸«¤è)¡£ -MTU ¹¹¿·¤¬ÅþÃ夹¤ë¤´¤È¤Ë¡¢¿·¤¿¤Ê¥¨¥é¡¼¤¬¥­¥å¡¼¥¤¥ó¥°¤µ¤ì¤ë¡£ +を見よ)。 +MTU 更新が到着するごとに、新たなエラーがキューイングされる。 .\"O While MTU discovery is in progress, initial packets from datagram sockets .\"O may be dropped. .\"O Applications using UDP should be aware of this and not .\"O take it into account for their packet retransmit strategy. -MTU discovery ¤Î¿Ê¹ÔÃæ¤Ë¤Ï¡¢¥Ç¡¼¥¿¥°¥é¥à¥½¥±¥Ã¥È¤«¤é¤Î½é´ü¥Ñ¥±¥Ã¥È¤Ï -ÅþÃ夷¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ UDP ¤òÍѤ¤¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ -¤³¤Î¤³¤È¤òµ¤¤Ë¤«¤±¤Æ¤ª¤­¡¢ -¥Ñ¥±¥Ã¥È¤ÎºÆÁ÷¥¢¥ë¥´¥ê¥º¥à¤Ë¤³¤Îʬ¤ò½ü³°¤µ¤»¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +MTU discovery の進行中には、データグラムソケットからの初期パケットは +到着しないかもしれない。 UDP を用いるアプリケーションでは、 +このことを気にかけておき、 +パケットの再送アルゴリズムにこの分を除外させるべきである。 .\"O To bootstrap the path MTU discovery process on unconnected sockets, it .\"O is possible to start with a big datagram size .\"O (up to 64K-headers bytes long) and let it shrink by updates of the path MTU. -Àܳ¤·¤Æ¤¤¤Ê¤¤¥½¥±¥Ã¥È¤ËÂФ·¤Æ -path MTU discovery ¥×¥í¥»¥¹¤òΩ¤Á¾å¤²¤ë¤Ë¤Ï¡¢ -Â礭¤Ê¥Ç¡¼¥¿¥°¥é¥à¥µ¥¤¥º (ºÇÂç 64K ¥Ø¥Ã¥À¥Ð¥¤¥ÈĹ) ¤«¤é¤Ï¤¸¤á¤Æ¡¢ -path MTU ¤¬¹¹¿·¤µ¤ì¤ë¤Þ¤Ç¥µ¥¤¥º¤ò½Ì¤á¤Æ¤¤¤¯¤³¤È¤â²Äǽ¤Ç¤¢¤ë¡£ +接続していないソケットに対して +path MTU discovery プロセスを立ち上げるには、 +大きなデータグラムサイズ (最大 64K ヘッダバイト長) からはじめて、 +path MTU が更新されるまでサイズを縮めていくことも可能である。 .\" FIXME this is an ugly hack .\"O To get an initial estimate of the @@ -644,13 +644,13 @@ path MTU .\"O with the .\"O .B IP_MTU .\"O option. -path MTU ¤ÎÃͤò¤Þ¤º¸«ÀѤâ¤Ã¤Æ¤ß¤ë¤Ë¤Ï¡¢°¸À襢¥É¥ì¥¹¤Ë +path MTU の値をまず見積もってみるには、宛先アドレスに .BR connect (2) -¤ò»È¤Ã¤Æ¥Ç¡¼¥¿¥°¥é¥à¥½¥±¥Ã¥È¤òÀܳ¤·¡¢ +を使ってデータグラムソケットを接続し、 .BR getsockopt (2) -¤ò +を .B IP_MTU -¥ª¥×¥·¥ç¥ó¤È¤È¤â¤Ë¸Æ¤Ó¡¢ MTU ¤ò¼èÆÀ¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£ +オプションとともに呼び、 MTU を取得することである。 .\"O It is possible to implement RFC 4821 MTU probing with .\"O .B SOCK_DGRAM @@ -664,19 +664,19 @@ path MTU .\"O that wish to deliberately send probe packets larger than .\"O the observed Path MTU. .B IP_PMTUDISC_PROBE -(Linux 2.6.22 °Ê¹ß¤ÇÍøÍѲÄǽ) ¤òÀßÄꤹ¤ë¤³¤È¤Ç¡¢ +(Linux 2.6.22 以降で利用可能) を設定することで、 .B SOCK_DGRAM -¤ä +や .B SOCK_RAW -¤Î¥½¥±¥Ã¥È¤Ç RFC 4821 ¤Î MTU õº÷¤ò¼ÂÁõ¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£ -¤Þ¤¿¡¢¤³¤Îµ¡Ç½¤Ï¡¢ +のソケットで RFC 4821 の MTU 探索を実装することが可能である。 +また、この機能は、 .BR tracepath (8) -¤Î¤è¤¦¤Ê¿ÇÃǥġ¼¥ë¤ÇÆäËÍ­ÍѤǤ¢¤ë¡£¤³¤ì¤é¤Î¥Ä¡¼¥ë¤Ç¤Ï¡¢ -´Ñ¬¤µ¤ì¤¿ Path MTU ¤è¤ê¤âÂ礭¤Êõº÷¥Ñ¥±¥Ã¥È¤ò°Õ¿ÞŪ¤Ë -Á÷¿®¤·¤è¤¦¤È¤¹¤ë¡£ +のような診断ツールで特に有用である。これらのツールでは、 +観測された Path MTU よりも大きな探索パケットを意図的に +送信しようとする。 .TP .\"O .BR IP_MULTICAST_IF " (since Linux 1.2)" -.BR IP_MULTICAST_IF " (Linux 1.2 °Ê¹ß)" +.BR IP_MULTICAST_IF " (Linux 1.2 以降)" .\"O Set the local device for a multicast socket. .\"O Argument is an .\"O .I ip_mreqn @@ -684,53 +684,53 @@ path MTU .\"O .I ip_mreq .\"O structure similar to .\"O .BR IP_ADD_MEMBERSHIP . -¥í¡¼¥«¥ë¥Ç¥Ð¥¤¥¹¤ò¥Þ¥ë¥Á¥­¥ã¥¹¥È¥½¥±¥Ã¥È¤È¤·¤ÆÀßÄꤹ¤ë¡£°ú¤­¿ô¤Ï +ローカルデバイスをマルチキャストソケットとして設定する。引き数は .B IP_ADD_MEMBERSHIP -¤ÈƱÍÍ¤Ë +と同様に .I ip_mreqn -¤Þ¤¿¤Ï +または .I ip_mreq -¹½Â¤ÂΤǤ¢¤ë¡£ +構造体である。 .IP .\"O When an invalid socket option is passed, .\"O .B ENOPROTOOPT .\"O is returned. -ÉÔÀµ¤Ê¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬ÅϤµ¤ì¤ë¤È¡¢ +不正なソケットオプションが渡されると、 .B ENOPROTOOPT -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .TP .\"O .BR IP_MULTICAST_LOOP " (since Linux 1.2)" -.BR IP_MULTICAST_LOOP " (Linux 1.2 °Ê¹ß)" +.BR IP_MULTICAST_LOOP " (Linux 1.2 以降)" .\"O Set or read a boolean integer argument that determines whether .\"O sent multicast packets should be looped back to the local sockets. -¥Þ¥ë¥Á¥­¥ã¥¹¥È¥Ñ¥±¥Ã¥È¤ò¥í¡¼¥«¥ë¤Ê¥½¥±¥Ã¥È¤Ë¥ë¡¼¥×¥Ð¥Ã¥¯¤¹¤ë¤«¤É¤¦¤«¤ò -Äê¤á¤ë¥Ö¡¼¥ëÃͤÎÀ°¿ô°ú¤­¿ô¤òÀßÄꡦ¼èÆÀ¤¹¤ë¡£ +マルチキャストパケットをローカルなソケットにループバックするかどうかを +定めるブール値の整数引き数を設定・取得する。 .TP .\"O .BR IP_MULTICAST_TTL " (since Linux 1.2)" -.BR IP_MULTICAST_TTL " (Linux 1.2 °Ê¹ß)" +.BR IP_MULTICAST_TTL " (Linux 1.2 以降)" .\"O Set or read the time-to-live value of outgoing multicast packets for this .\"O socket. .\"O It is very important for multicast packets to set the smallest TTL possible. .\"O The default is 1 which means that multicast packets don't leave the local .\"O network unless the user program explicitly requests it. .\"O Argument is an integer. -¤³¤Î¥½¥±¥Ã¥È¤«¤éȯ¿®¤µ¤ì¤ë¥Þ¥ë¥Á¥­¥ã¥¹¥È¥Ñ¥±¥Ã¥È¤Î -time-to-live ÃͤòÀßÄꡦ¼èÆÀ¤¹¤ë¡£ -¥Þ¥ë¥Á¥­¥ã¥¹¥È¥Ñ¥±¥Ã¥È¤ËÂФ·¤Æ¤Ï¡¢¤Ç¤­¤ë¤À¤±¾®¤µ¤Ê -TTL ¤ËÀßÄꤹ¤ë¤³¤È¤¬¤È¤Æ¤â½ÅÍפǤ¢¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ï 1 ¤Ç¡¢ -¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥à¤¬ÌÀ¼¨Åª¤ËÍ׵ᤷ¤Ê¤¤¸Â¤ê -¥Þ¥ë¥Á¥­¥ã¥¹¥È¥Ñ¥±¥Ã¥È¤Ï¥í¡¼¥«¥ë¤Ê¥Í¥Ã¥È¥ï¡¼¥¯¤«¤é½Ð¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¡£ -°ú¤­¿ô¤ËÀ°¿ô¤ò¼è¤ë¡£ +このソケットから発信されるマルチキャストパケットの +time-to-live 値を設定・取得する。 +マルチキャストパケットに対しては、できるだけ小さな +TTL に設定することがとても重要である。デフォルトは 1 で、 +ユーザープログラムが明示的に要求しない限り +マルチキャストパケットはローカルなネットワークから出ないことになる。 +引き数に整数を取る。 .TP .\"O .BR IP_OPTIONS " (since Linux 2.0)" -.BR IP_OPTIONS " (Linux 2.0 °Ê¹ß)" +.BR IP_OPTIONS " (Linux 2.0 以降)" .\" Precisely: 1.3.30 .\"O Set or get the IP options to be sent with every packet from this socket. .\"O The arguments are a pointer to a memory buffer containing the options .\"O and the option length. -¤³¤Î¥½¥±¥Ã¥È¤«¤éÁ÷¤é¤ì¤ë¥Ñ¥±¥Ã¥ÈÁ´¤Æ¤ËÉտ魯¤ë IP ¥ª¥×¥·¥ç¥ó¤ò -ÀßÄꡦ¼èÆÀ¤¹¤ë¡£¥ª¥×¥·¥ç¥ó¤òÊݸ¤·¤Æ¤¤¤ë¥á¥â¥ê¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤È -¥ª¥×¥·¥ç¥ó¤ÎŤµ¤È¤ò°ú¤­¿ô¤Ë¼è¤ë¡£ +このソケットから送られるパケット全てに付随する IP オプションを +設定・取得する。オプションを保存しているメモリバッファへのポインタと +オプションの長さとを引き数に取る。 .\"O The .\"O .BR setsockopt (2) .\"O call sets the IP options associated with a socket. @@ -743,14 +743,14 @@ TTL .\"O Incoming packets are not allowed to change options after the connection .\"O is established. .BR setsockopt (2) -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¥½¥±¥Ã¥È¤Ë´ØÏ¢¤Å¤±¤é¤ì¤ë IP ¥ª¥×¥·¥ç¥ó¤òÀßÄê¤Ç¤­¤ë¡£ -IPv4 ¤Ë¤ª¤±¤ë¥ª¥×¥·¥ç¥ó¤Î¥µ¥¤¥º¤ÎºÇÂçÃÍ¤Ï 40 ¥Ð¥¤¥È¤Ç¤¢¤ë¡£ -ÍѤ¤¤ë¤³¤È¤Î¤Ç¤­¤ë¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Ï RFC\ 791 ¤ò¸«¤è¡£ +を呼び出すと、ソケットに関連づけられる IP オプションを設定できる。 +IPv4 におけるオプションのサイズの最大値は 40 バイトである。 +用いることのできるオプションについては RFC\ 791 を見よ。 .B SOCK_STREAM -¥½¥±¥Ã¥È¤ËÂФ¹¤ë½é´üÀܳÍ×µá¥Ñ¥±¥Ã¥È¤Ë IP ¥ª¥×¥·¥ç¥ó¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤È¡¢ -¥ë¡¼¥Æ¥£¥ó¥°¥Ø¥Ã¥À¤òÉÕ¤±¤ÆÌᤵ¤ì¤Æ¤¯¤ë½é´ü¥Ñ¥±¥Ã¥È¤Î -IP ¥ª¥×¥·¥ç¥ó¤ËƱ¤¸¥ª¥×¥·¥ç¥ó¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£Àܳ¤¬³ÎΩ¤µ¤ì¤¿¸å¡¢ -¤ä¤Ã¤Æ¤­¤¿¥Ñ¥±¥Ã¥È¤Î¥ª¥×¥·¥ç¥ó¤òÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +ソケットに対する初期接続要求パケットに IP オプションが含まれていると、 +ルーティングヘッダを付けて戻されてくる初期パケットの +IP オプションに同じオプションがセットされる。接続が確立された後、 +やってきたパケットのオプションを変更することはできない。 .\"O The processing of all incoming source routing options .\"O is disabled by default and can be enabled by using the .\"O .I accept_source_route @@ -763,19 +763,19 @@ IP .\"O with .\"O .B IP_OPTIONS .\"O puts the current IP options used for sending into the supplied buffer. -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡£³°Éô¤«¤é¼õ¿®¤·¤¿¥Ñ¥±¥Ã¥È¤ÎÁ´¤Æ¤Î source routing ¥ª¥×¥·¥ç¥ó -¤Î½èÍý¤Ï̵¸ú¤È¤Ê¤Ã¤Æ¤ª¤ê¡¢ +デフォルトでは。外部から受信したパケットの全ての source routing オプション +の処理は無効となっており、 .I /proc -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î +インタフェースの .I accept_source_route -¤ò»È¤¦¤È¤³¤ì¤òÍ­¸ú¤Ë¤Ç¤­¤ë¡£¤³¤ì¤ò̵¸ú¤Ë¤·¤Æ¤¤¤Æ¤â timestamps ¤Ê¤É -¤Î¾¤Î¥ª¥×¥·¥ç¥ó¤Î½èÍý¤Ï¹Ô¤ï¤ì¤ë¡£¥Ç¡¼¥¿¥°¥é¥à¥½¥±¥Ã¥È¤Ç¤Ï¡¢ -IP ¥ª¥×¥·¥ç¥ó¤Ï¥í¡¼¥«¥ë¥æ¡¼¥¶¡¼¤·¤«ÀßÄê¤Ç¤­¤Ê¤¤¡£ +を使うとこれを有効にできる。これを無効にしていても timestamps など +の他のオプションの処理は行われる。データグラムソケットでは、 +IP オプションはローカルユーザーしか設定できない。 .BR getsockopt (2) -¤ò +を .B IP_OPTIONS -¤ò¤Ä¤±¤Æ¸Æ¤Ö¤È¡¢¸½ºßÁ÷¿®¤ËÍѤ¤¤é¤ì¤Æ¤¤¤ë IP ¥ª¥×¥·¥ç¥ó¤ò -°ú¤­¿ô¤ËÍ¿¤¨¤¿¥Ð¥Ã¥Õ¥¡¤Ë¼èÆÀ¤Ç¤­¤ë¡£ +をつけて呼ぶと、現在送信に用いられている IP オプションを +引き数に与えたバッファに取得できる。 .\" FIXME Document IP_PASSSEC .\" Boolean .\" Since Linux 2.6.17 @@ -783,7 +783,7 @@ IP .\" Author: Catherine Zhang .TP .\"O .BR IP_PKTINFO " (since Linux 2.2)" -.BR IP_PKTINFO " (Linux 2.2 °Ê¹ß)" +.BR IP_PKTINFO " (Linux 2.2 以降)" .\" Precisely: 2.1.68 .\"O Pass an .\"O .B IP_PKTINFO @@ -792,10 +792,10 @@ IP .\"O structure that supplies some information about the incoming packet. .\"O This only works for datagram oriented sockets. .B IP_PKTINFO -Êä½õ¥á¥Ã¥»¡¼¥¸¤òÅϤ¹¡£¤³¤ì¤Ë¤ÏÅþÃå¥Ñ¥±¥Ã¥È¤Ë´Ø¤¹¤ë¾ðÊó¤òÄ󶡤¹¤ë +補助メッセージを渡す。これには到着パケットに関する情報を提供する .I pktinfo -¹½Â¤ÂΤ¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -¥Ç¡¼¥¿¥°¥é¥à»Ø¸þ¤Î¥½¥±¥Ã¥È¤Ç¤·¤«Æ°ºî¤·¤Ê¤¤¡£ +構造体が含まれている。 +データグラム指向のソケットでしか動作しない。 .\"O The argument is a flag that tells the socket whether the .\"O .B IP_PKTINFO .\"O message should be passed or not. @@ -804,14 +804,14 @@ IP .\"O .BR recvmsg (2) .\"O or .\"O .BR sendmsg (2). -°ú¤­¿ô¤Ï +引き数は .B IP_PKTINFO -¥á¥Ã¥»¡¼¥¸¤òÄ̲ᤵ¤»¤ë¤«¤É¤¦¤«¤ò¥½¥±¥Ã¥È¤ËÃΤ餻¤ë¥Õ¥é¥°¤Ç¤¢¤ë¡£ -¥á¥Ã¥»¡¼¥¸¼«¿È¤Ï +メッセージを通過させるかどうかをソケットに知らせるフラグである。 +メッセージ自身は .BR recvmsg (2) -¤Þ¤¿¤Ï +または .BR sendmsg (2) -¤òÍѤ¤¤¿¥Ñ¥±¥Ã¥È¤ÎÀ©¸æ¥á¥Ã¥»¡¼¥¸¤È¤·¤Æ¤Î¤ßÁ÷¼õ¿®¤Ç¤­¤ë¡£ +を用いたパケットの制御メッセージとしてのみ送受信できる。 .IP .in +4n @@ -829,15 +829,15 @@ struct in_pktinfo { .\"O .I ipi_ifindex .\"O is the unique index of the interface the packet was received on. .I ipi_ifindex -¤Ï¥Ñ¥±¥Ã¥È¤¬¼õ¿®¤µ¤ì¤¿¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¡¢Â¾¤È½Å¤Ê¤é¤Ê¤¤¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤¢¤ë¡£ +はパケットが受信されたインターフェースの、他と重ならないインデックスである。 .\"O .I ipi_spec_dst .\"O is the local address of the packet and .\"O .I ipi_addr .\"O is the destination address in the packet header. .I ipi_spec_dst -¤Ï¥Ñ¥±¥Ã¥È¤Î¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +はパケットのローカルアドレスである。 .I ipi_addr -¤Ï¥Ñ¥±¥Ã¥È¥Ø¥Ã¥À¤Ë¤¢¤ë°¸À襢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +はパケットヘッダにある宛先アドレスである。 .\"O If .\"O .B IP_PKTINFO .\"O is passed to @@ -848,15 +848,15 @@ struct in_pktinfo { .\"O is not zero, then it is used as the local source address for the routing .\"O table lookup and for setting up IP source route options. .B IP_PKTINFO -¤¬ +が .BR sendmsg (2) -¤ËÅϤµ¤ì¤Æ¡¢¤«¤Ä -.\" ¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢Ì¾Á°¤ÎÉÕ¤±Êý¤¬ÌÀ¤é¤«¤Ë´Ö°ã¤Ã¤Æ¤¤¤ë¤Î¤À¤¬ +に渡されて、かつ +.\" このフィールドは、名前の付け方が明らかに間違っているのだが .I ipi_spec_dst -¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢ +が 0 以外の場合、 .I ipi_spec_dst -¤Ï¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤ò¸¡º÷¤¹¤ëºÝ¤Ë¥í¡¼¥«¥ë¤ÊÁ÷¿®¸µ¥¢¥É¥ì¥¹¤È¤·¤Æ»ÈÍѤµ¤ì¡¢ -IP source route ¥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ë¤Î¤Ë¤â»ÈÍѤµ¤ì¤ë¡£ +はルーティングテーブルを検索する際にローカルな送信元アドレスとして使用され、 +IP source route オプションを設定するのにも使用される。 .\"O When .\"O .I ipi_ifindex .\"O is not zero, the primary local address of the interface specified by the @@ -864,13 +864,13 @@ IP source route .\"O .I ipi_spec_dst .\"O for the routing table lookup. .I ipi_ifindex -¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢¤³¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î -¥×¥é¥¤¥Þ¥ê¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤Ç +が 0 以外の場合、このインデックスによって指定されるインターフェースの +プライマリローカルアドレスで .I ipi_spec_dst -¤ò¾å½ñ¤­¤·¡¢¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤ò¸¡º÷¤¹¤ë¡£ +を上書きし、ルーティングテーブルを検索する。 .TP .\"O .BR IP_RECVERR " (since Linux 2.2)" -.BR IP_RECVERR " (Linux 2.2 °Ê¹ß)" +.BR IP_RECVERR " (Linux 2.2 以降)" .\" Precisely: 2.1.15 .\"O Enable extended reliable error message passing. .\"O When enabled on a datagram socket, all @@ -891,26 +891,26 @@ IP source route .\"O .\" or SOL_IP on Linux .\"O This is useful for reliable error handling on unconnected sockets. .\"O The received data portion of the error queue contains the error packet. -¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Î¼õ¤±ÅϤ·¤Ë¡¢¿®ÍêÀ­¤Î¹â¤¤³ÈÄ¥¤µ¤ì¤¿ÊýË¡¤òÍ­¸ú¤Ë¤¹¤ë¡£ -¥Ç¡¼¥¿¥°¥é¥à¥½¥±¥Ã¥È¤ËÂФ·¤ÆÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢ -ȯÀ¸¤·¤¿¥¨¥é¡¼¤ÏÁ´¤Æ¥½¥±¥Ã¥È¤´¤È¤Î¥¨¥é¡¼¥­¥å¡¼¤ËÊݸ¤µ¤ì¤ë¡£ -¥æ¡¼¥¶¡¼¤Ï¥½¥±¥Ã¥ÈÁàºî¤«¤é¥¨¥é¡¼¤ò¼õ¤±¼è¤Ã¤¿¤È¤­¡¢ +エラーメッセージの受け渡しに、信頼性の高い拡張された方法を有効にする。 +データグラムソケットに対して有効になっていると、 +発生したエラーは全てソケットごとのエラーキューに保存される。 +ユーザーはソケット操作からエラーを受け取ったとき、 .BR recvmsg (2) -¤ò +を .B MSG_ERRQUEUE -¥Õ¥é¥°¤È¤È¤â¤Ë¸Æ¤Ù¤Ð¤½¤Î¥¨¥é¡¼¤ò¼èÆÀ¤Ç¤­¤ë¡£ -¤½¤Î¥¨¥é¡¼¤òµ­½Ò¤¹¤ë +フラグとともに呼べばそのエラーを取得できる。 +そのエラーを記述する .I sock_extended_err -¹½Â¤ÂΤ¬¡¢¥¿¥¤¥× -.BR IP_RECVERR ¡¦ -¥ì¥Ù¥ë +構造体が、タイプ +.BR IP_RECVERR ・ +レベル .B IPPROTO_IP -.\" Linux ¤Ç¤Ï SOL_IP ¤â²Ä -¤ÎÊä½õ¥á¥Ã¥»¡¼¥¸¤È¤·¤ÆÅϤµ¤ì¤ë¡£ -¤³¤ì¤ÏÀܳ»Ö¸þ¤Ç¤Ê¤¤¥½¥±¥Ã¥È¤Ç¿®ÍêÀ­¤Î¹â¤¤¥¨¥é¡¼½èÍý¤ò¹Ô¤¤¤¿¤¤¾ì¹ç¤Ë -Í­ÍѤǤ¢¤ë¡£¥¨¥é¡¼¥­¥å¡¼¤Î¼õ¿®¥Ç¡¼¥¿¥Õ¥é¥°¥á¥ó¥È¤Ë¤Ï -¥¨¥é¡¼¥Ñ¥±¥Ã¥È¤¬´Þ¤Þ¤ì¤ë¡£ -.\"NAKANO portion ¤ò¥Õ¥é¥°¥á¥ó¥È¤Ã¤Æ¸À¤Ã¤Á¤ã¤Ã¤Æ¤¤¤¤¤Î¤«¡© +.\" Linux では SOL_IP も可 +の補助メッセージとして渡される。 +これは接続志向でないソケットで信頼性の高いエラー処理を行いたい場合に +有用である。エラーキューの受信データフラグメントには +エラーパケットが含まれる。 +.\"NAKANO portion をフラグメントって言っちゃっていいのか? .IP .\"O The .\"O .B IP_RECVERR @@ -918,9 +918,9 @@ IP source route .\"O .I sock_extended_err .\"O structure: .B IP_RECVERR -À©¸æ¥á¥Ã¥»¡¼¥¸¤Ë¤Ï +制御メッセージには .I sock_extended_err -¹½Â¤ÂΤ¬´Þ¤Þ¤ì¤ë: +構造体が含まれる: .IP .in +4n .ne 18 @@ -952,20 +952,20 @@ struct sockaddr *SO_EE_OFFENDER(struct sock_extended_err *); .\"O .I ee_origin .\"O is the origin code of where the error originated. .I ee_errno -¤Ë¤Ï¥­¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ë¥¨¥é¡¼¤Î +にはキューに入っているエラーの .I errno -Èֹ椬Æþ¤ë¡£ +番号が入る。 .I ee_origin -¤Ë¤Ï¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì½ê¤ò¼¨¤¹¥³¡¼¥É¤¬Æþ¤ë¡£ +にはエラーが発生した場所を示すコードが入る。 .\"O The other fields are protocol-specific. .\"O The macro .\"O .B SO_EE_OFFENDER .\"O returns a pointer to the address of the network object .\"O where the error originated from given a pointer to the ancillary message. -¤½¤Î¾¤Î¥Õ¥£¡¼¥ë¥É¤Ï¥×¥í¥È¥³¥ë°Í¸¤Ç¤¢¤ë¡£ +その他のフィールドはプロトコル依存である。 .B SO_EE_OFFENDER -¥Þ¥¯¥í¤ÏÍ¿¤¨¤é¤ì¤¿Êä½õ¥á¥Ã¥»¡¼¥¸¤Ø¤Î¥Ý¥¤¥ó¥¿¤«¤é -¥¨¥é¡¼¤ÎȯÀ¸¤·¤¿¥Í¥Ã¥È¥ï¡¼¥¯¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥É¥ì¥¹¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +マクロは与えられた補助メッセージへのポインタから +エラーの発生したネットワークオブジェクトのアドレスへのポインタを返す。 .\"O If this address is not known, the .\"O .I sa_family .\"O member of the @@ -975,20 +975,20 @@ struct sockaddr *SO_EE_OFFENDER(struct sock_extended_err *); .\"O and the other fields of the .\"O .I sockaddr .\"O are undefined. -¥¢¥É¥ì¥¹¤¬ÉÔÌÀ¤Ê¾ì¹ç¡¢ +アドレスが不明な場合、 .I sockaddr -¹½Â¤ÂΤΠ+構造体の .I sa_family -¥Õ¥£¡¼¥ë¥É¤Ï +フィールドは .B AF_UNSPEC -¤È¤Ê¤ê¡¢¤½¤Î¾¤Î¥Õ¥£¡¼¥ë¥ÉÃͤÏÉÔÄê¤Ç¤¢¤ë¡£ +となり、その他のフィールド値は不定である。 .IP .\"O IP uses the .\"O .I sock_extended_err .\"O structure as follows: -IP ¤Ï°Ê²¼¤Î¤è¤¦¤Ê +IP は以下のような .I sock_extended_err -¹½Â¤ÂΤòÍѤ¤¤ë: +構造体を用いる: .\"O .I ee_origin .\"O is set to .\"O .B SO_EE_ORIGIN_ICMP @@ -997,21 +997,21 @@ IP .\"O for locally generated errors. .\"O Unknown values should be ignored. .I ee_origin -¤Ï¡¢ -¥¨¥é¡¼¤¬ ICMP ¥Ñ¥±¥Ã¥È¤È¤·¤Æ¼õ¿®¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï +は、 +エラーが ICMP パケットとして受信された場合には .B SO_EE_ORIGIN_ICMP -¤Ë¥»¥Ã¥È¤µ¤ì¡¢¥í¡¼¥«¥ë¤Çµ¯¤³¤Ã¤¿¾ì¹ç¤Ë¤Ï +にセットされ、ローカルで起こった場合には .B SO_EE_ORIGIN_LOCAL -¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ -ÉÔÌÀ¤ÊÃͤÏ̵»ë¤µ¤ì¤ë¡£ +にセットされる。 +不明な値は無視される。 .\"O .I ee_type .\"O and .\"O .I ee_code .\"O are set from the type and code fields of the ICMP header. .I ee_type -¤È +と .I ee_code -¤Ï ICMP ¥Ø¥Ã¥À¤Î type ¥Õ¥£¡¼¥ë¥É¤È code ¥Õ¥£¡¼¥ë¥É¤ÎÃͤ˥»¥Ã¥È¤µ¤ì¤ë¡£ +は ICMP ヘッダの type フィールドと code フィールドの値にセットされる。 .\"O .I ee_info .\"O contains the discovered MTU for .\"O .B EMSGSIZE @@ -1027,33 +1027,33 @@ IP .\"O .B AF_UNSPEC .\"O when the source was unknown. .I ee_info -¤Ë¤Ï +には .B EMSGSIZE -¥¨¥é¡¼¤ËÂФ¹¤ë discover ¤µ¤ì¤¿ MTU ¤¬Æþ¤ë¡£ -¥á¥Ã¥»¡¼¥¸¤Ë¤Ï¥¨¥é¡¼¤ò°ú¤­µ¯¤³¤·¤¿¥Î¡¼¥É¤Î +エラーに対する discover された MTU が入る。 +メッセージにはエラーを引き起こしたノードの .I sockaddr_in -¹½Â¤ÂΤâ´Þ¤Þ¤ì¤ë¡£ -¤³¤ì¤Ë¤Ï +構造体も含まれる。 +これには .B SO_EE_OFFENDER -¥Þ¥¯¥í¤ò»È¤Ã¤Æ¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ -¥½¡¼¥¹¤¬ÉÔÌÀ¤Î¾ì¹ç¡¢ -SO_EE_OFFENDER ¥¢¥É¥ì¥¹¤Î +マクロを使ってアクセスできる。 +ソースが不明の場合、 +SO_EE_OFFENDER アドレスの .I sin_family -¥Õ¥£¡¼¥ë¥É¤Ï +フィールドは .B AF_UNSPEC -¤È¤Ê¤ë¡£ +となる。 .\"O When the error originated from the network, all IP options .\"O .RI ( IP_OPTIONS ", " IP_TTL ", " .\"O etc.) enabled on the socket and contained in the .\"O error packet are passed as control messages. .\"O The payload of the packet causing the error is returned as normal payload. -¥¨¥é¡¼¤¬¥Í¥Ã¥È¥ï¡¼¥¯¤Çµ¯¤­¤¿¾ì¹ç¤Ë¤Ï¡¢ -¥½¥±¥Ã¥È¤ÇÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤¿¤¹¤Ù¤Æ¤Î IP ¥ª¥×¥·¥ç¥ó +エラーがネットワークで起きた場合には、 +ソケットで有効になっていたすべての IP オプション .RB ( IP_OPTIONS ", " IP_TTL -¤Ê¤É) ¤È¥¨¥é¡¼¥Ñ¥±¥Ã¥È¤Ë´Þ¤Þ¤ì¤Æ¤¤¤¿¤¹¤Ù¤Æ¤Î IP ¥ª¥×¥·¥ç¥ó¤È¤¬¡¢ -À©¸æ¥á¥Ã¥»¡¼¥¸¤È¤·¤ÆÅϤµ¤ì¤ë¡£ -¥¨¥é¡¼¤òµ¯¤³¤·¤¿¥Ñ¥±¥Ã¥È¤Î¥Ú¥¤¥í¡¼¥É (payload) ¤Ï -ÉáÄ̤Υڥ¤¥í¡¼¥É¤È¤·¤ÆÊÖ¤µ¤ì¤ë¡£ +など) とエラーパケットに含まれていたすべての IP オプションとが、 +制御メッセージとして渡される。 +エラーを起こしたパケットのペイロード (payload) は +普通のペイロードとして返される。 .\" FIXME . is it a good idea to document that? It is a dubious feature. .\"O .\" On .\"O .\" .B SOCK_STREAM @@ -1069,14 +1069,14 @@ SO_EE_OFFENDER .\"O .\" shifts and other normal .\"O .\" conditions and breaks the protocol specification. .\" .B SOCK_STREAM -.\" ¥½¥±¥Ã¥È¤Ç¤Ï¡¢ +.\" ソケットでは、 .\" .B IP_RECVERR -.\" ¤Ï¤ä¤ä°Û¤Ê¤ë°ÕÌ£¤ò»ý¤Ä¡£¼¡¤Î¥¿¥¤¥à¥¢¥¦¥È¤Þ¤Ç¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¤Î¤Ç¤Ê¤¯¡¢ -.\" ¤ä¤Ã¤Æ¤­¤¿¥¨¥é¡¼¤ÏÁ´¤Æ¤¿¤À¤Á¤Ë¥æ¡¼¥¶¡¼¤ËÅϤµ¤ì¤ë¡£¤³¤ì¤Ï¡¢ -.\" ¹â®¤Ê¥¨¥é¡¼½èÍý¤¬É¬ÍפȤʤë¤è¤¦¤Ê¡¢¶Ëü¤Ë¼÷Ì¿¤Îû¤¤ -.\" TCP Àܳ¤ËÂФ·¤ÆÍ­ÍѤǤ¢¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÃí°Õ¤·¤ÆÍѤ¤¤ë¤³¤È¡£ -.\" ·ÐÏ©¤¬ÊѤï¤Ã¤¿¤ê¡¢¤½¤Î¾Ä̾ï¤Î¾õ¶·¤ËÂФ·¤Æ¡¢Å¬ÀڤʲóÉü¤¬ÉÔ²Äǽ¤È¤Ê¤ê¡¢ -.\" TCP ¤Î¿®ÍêÀ­¤òÄ㤯¤·¤Æ¤·¤Þ¤¦¡£¤Þ¤¿¥×¥í¥È¥³¥ë¤Î»ÅÍͤËÈ¿¤·¤Æ¤·¤Þ¤¦¡£ +.\" はやや異なる意味を持つ。次のタイムアウトまでデータを保持するのでなく、 +.\" やってきたエラーは全てただちにユーザーに渡される。これは、 +.\" 高速なエラー処理が必要となるような、極端に寿命の短い +.\" TCP 接続に対して有用である。このオプションは注意して用いること。 +.\" 経路が変わったり、その他通常の状況に対して、適切な回復が不可能となり、 +.\" TCP の信頼性を低くしてしまう。またプロトコルの仕様に反してしまう。 .\"O Note that TCP has no error queue; .\"O .B MSG_ERRQUEUE .\"O is not permitted on @@ -1086,36 +1086,36 @@ SO_EE_OFFENDER .\"O is valid for TCP, but all errors are returned by socket function return or .\"O .B SO_ERROR .\"O only. -TCP ¤Ë¤Ï¥¨¥é¡¼¥­¥å¡¼¤¬¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤Û¤·¤¤¡£ +TCP にはエラーキューがないことに注意してほしい。 .B MSG_ERRQUEUE -¤Ï +は .B SOCK_STREAM -¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤Ï»È¤¨¤Ê¤¤¡£ -TCP ¤Ç¤Ï +ソケットに対しては使えない。 +TCP では .B IP_RECVERR -¤À¤±¤¬Í­¸ú¤À¤¬¡¢¥½¥±¥Ã¥È´Ø¿ô¤«¤éÊÖ¤µ¤ì¤ë¥¨¥é¡¼¤Ï +だけが有効だが、ソケット関数から返されるエラーは .B SO_ERROR -¤À¤±¤Ë¤Ê¤ë¡£ +だけになる。 .IP .\"O For raw sockets, .\"O .B IP_RECVERR .\"O enables passing of all received ICMP errors to the .\"O application, otherwise errors are only reported on connected sockets -raw ¥½¥±¥Ã¥È¤ËÂФ·¤Æ +raw ソケットに対して .B IP_RECVERR -¤ò»ØÄꤹ¤ë¤È¡¢¼õ¿®¤·¤¿¤¹¤Ù¤Æ¤Î ICMP ¥¨¥é¡¼¤ò¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë -ÅϤ¹¤è¤¦¤Ë¤Ê¤ë¡£»ØÄꤷ¤Ê¤¤¤È¡¢ -ÀܳºÑ¤ß¤Î¥½¥±¥Ã¥È¤ËÂФ¹¤ë¥¨¥é¡¼¤À¤±¤òÊó¹ð¤¹¤ë¡£ +を指定すると、受信したすべての ICMP エラーをアプリケーションに +渡すようになる。指定しないと、 +接続済みのソケットに対するエラーだけを報告する。 .IP .\"O It sets or retrieves an integer boolean flag. .\"O .B IP_RECVERR .\"O defaults to off. -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ö¡¼¥ëÃͤΥե饰¤òÀßÄꡦ¼èÆÀ¤¹¤ë¡£ +このオプションはブール値のフラグを設定・取得する。 .B IP_RECVERR -¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥ª¥Õ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +はデフォルトではオフになっている。 .TP .\"O .BR IP_RECVOPTS " (since Linux 2.2)" -.BR IP_RECVOPTS " (Linux 2.2 °Ê¹ß)" +.BR IP_RECVOPTS " (Linux 2.2 以降)" .\" Precisely: 2.1.15 .\"O Pass all incoming IP options to the user in a .\"O .B IP_OPTIONS @@ -1125,16 +1125,16 @@ raw .\"O Not supported for .\"O .B SOCK_STREAM .\"O sockets. -ÅþÃ夷¤¿Á´¤Æ¤Î IP ¥ª¥×¥·¥ç¥ó¤ò +到着した全ての IP オプションを .B IP_OPTION -¥³¥ó¥È¥í¡¼¥ë¥á¥Ã¥»¡¼¥¸¤ËÆþ¤ì¤Æ¥æ¡¼¥¶¡¼¤ËÅϤ¹¡£ -¥ë¡¼¥Æ¥£¥ó¥°¥Ø¥Ã¥À¤È¤½¤Î¾¤Î¥ª¥×¥·¥ç¥ó¤È¤Ï¡¢ -¥í¡¼¥«¥ë¥Û¥¹¥È¤ËÂФ·¤Æ¤Ï¤¢¤é¤«¤¸¤áµ­Æþ¤µ¤ì¤Æ¤¤¤ë¡£ +コントロールメッセージに入れてユーザーに渡す。 +ルーティングヘッダとその他のオプションとは、 +ローカルホストに対してはあらかじめ記入されている。 .B SOCK_STREAM -¥½¥±¥Ã¥È¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +ソケットではサポートされていない。 .TP .\"O .BR IP_RECVTOS " (since Linux 2.2)" -.BR IP_RECVTOS " (Linux 2.2 °Ê¹ß)" +.BR IP_RECVTOS " (Linux 2.2 以降)" .\" Precisely: 2.1.68 .\"O If enabled the .\"O .B IP_TOS @@ -1142,15 +1142,15 @@ raw .\"O It contains a byte which specifies the Type of Service/Precedence .\"O field of the packet header. .\"O Expects a boolean integer flag. -Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢ +有効になっていると、 .B IP_TOS -Êä½õ¥á¥Ã¥»¡¼¥¸¤¬ÅþÃå¥Ñ¥±¥Ã¥È¤È¤È¤â¤ËÅϤµ¤ì¤ë¡£ -¤³¤ì¤Ë¤Ï¥Ñ¥±¥Ã¥È¥Ø¥Ã¥À¤Î Service/Precedence -¥Õ¥£¡¼¥ë¥É¤Î¥¿¥¤¥×¤ò»ØÄꤹ¤ë¥Ð¥¤¥È¥Ç¡¼¥¿¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -¥Ö¡¼¥ëÀ°¿ôÃͤΥե饰¤ò¤È¤ë¡£ +補助メッセージが到着パケットとともに渡される。 +これにはパケットヘッダの Service/Precedence +フィールドのタイプを指定するバイトデータが含まれている。 +ブール整数値のフラグをとる。 .TP .\"O .BR IP_RECVTTL " (since Linux 2.2)" -.BR IP_RECVTTL " (Linux 2.2 °Ê¹ß)" +.BR IP_RECVTTL " (Linux 2.2 以降)" .\" Precisely: 2.1.68 .\"O When this flag is set, pass a .\"O .B IP_TTL @@ -1159,28 +1159,28 @@ raw .\"O Not supported for .\"O .B SOCK_STREAM .\"O sockets. -¤³¤Î¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢ +このフラグがセットされていると、 .B IP_TTL -¥³¥ó¥È¥í¡¼¥ë¥á¥Ã¥»¡¼¥¸¤¬¼õ¿®¥Ñ¥±¥Ã¥È¤Î -time-to-live ¥Õ¥£¡¼¥ë¥É¤Î¥Ð¥¤¥È¥Ç¡¼¥¿¤È¤È¤â¤ËÅϤµ¤ì¤ë¡£ +コントロールメッセージが受信パケットの +time-to-live フィールドのバイトデータとともに渡される。 .B SOCK_STREAM -¥½¥±¥Ã¥È¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +ソケットではサポートされていない。 .TP .B IP_RETOPTS .\"O .BR IP_RETOPTS " (since Linux 2.2)" -.BR IP_RETOPTS " (Linux 2.2 °Ê¹ß)" +.BR IP_RETOPTS " (Linux 2.2 以降)" .\" Precisely: 2.1.15 .\"O Identical to .\"O .BR IP_RECVOPTS , .\"O but returns raw unprocessed options with timestamp and route record .\"O options not filled in for this hop. .B IP_RECVOPTS -¤ÈÅù²Á¤À¤¬¡¢Ì¤½èÍý¤ÎÀ¸¤Î¥ª¥×¥·¥ç¥ó¤ò¡¢ -¤³¤Î hop ¤Ç¤Ïµ­Æþ¤µ¤ì¤Ê¤¤ timestamp ¥ì¥³¡¼¥É¤È route ¥ì¥³¡¼¥É¤È¤È¤â¤ËÊÖ¤¹¡£ -.\"NAKANO °ÕÌ£ÉÔÌÀ...(^^; +と等価だが、未処理の生のオプションを、 +この hop では記入されない timestamp レコードと route レコードとともに返す。 +.\"NAKANO 意味不明...(^^; .TP .\"O .BR IP_ROUTER_ALERT " (since Linux 2.2)" -.BR IP_ROUTER_ALERT " (Linux 2.2 °Ê¹ß)" +.BR IP_ROUTER_ALERT " (Linux 2.2 以降)" .\" Precisely: 2.1.68 .\"O Pass all to-be forwarded packets with the .\"O IP Router Alert option set to this socket. @@ -1191,18 +1191,18 @@ time-to-live .\"O Socket binding is ignored, .\"O such packets are only filtered by protocol. .\"O Expects an integer flag. -¥Õ¥©¥ï¡¼¥É¤¹¤Ù¤­¥Ñ¥±¥Ã¥È¤ò IP Router Alert ¥ª¥×¥·¥ç¥ó¤ò¤Ä¤±¤Æ -¤³¤Î¥½¥±¥Ã¥È¤ËÅϤ¹¡£ -raw ¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£¤³¤ì¤Ï¤¿¤È¤¨¤Ð¥æ¡¼¥¶¡¼¶õ´Ö¤Î -RSVP ¥Ç¡¼¥â¥ó¤ËÂФ·¤ÆÊØÍø¤Ç¤¢¤ë¡£¥¿¥Ã¥×¤µ¤ì¤¿¥Ñ¥±¥Ã¥È¤Ï -¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ¤Ï¥Õ¥©¥ï¡¼¥É¤µ¤ì¤Ê¤¤¤Î¤Ç¡¢¤³¤ì¤é¤òºÆÁ÷¤¹¤ë¤Î¤Ï -¥æ¡¼¥¶¡¼¤ÎÀÕǤ¤È¤Ê¤ë¡£¥½¥±¥Ã¥È¤Î¥Ð¥¤¥ó¥É¤Ï̵»ë¤µ¤ì¡¢ -¤³¤Î¤è¤¦¤Ê¥Ñ¥±¥Ã¥È¤Ï¥×¥í¥È¥³¥ë¤Ë¤è¤Ã¤Æ¤Î¤ß¥Õ¥£¥ë¥¿¥ê¥ó¥°¤µ¤ì¤ë¡£ -À°¿ôÃͤΥե饰¤ò¼è¤ë¡£ -.\"NAKANO Socket binding... ¤Îʸ¡¢°ÕÌ£¤ï¤«¤é¤ó¡£ +フォワードすべきパケットを IP Router Alert オプションをつけて +このソケットに渡す。 +raw ソケットに対してのみ有効である。これはたとえばユーザー空間の +RSVP デーモンに対して便利である。タップされたパケットは +カーネルによってはフォワードされないので、これらを再送するのは +ユーザーの責任となる。ソケットのバインドは無視され、 +このようなパケットはプロトコルによってのみフィルタリングされる。 +整数値のフラグを取る。 +.\"NAKANO Socket binding... の文、意味わからん。 .TP .\"O .BR IP_TOS " (since Linux 1.0)" -.BR IP_TOS " (Linux 1.0 °Ê¹ß)" +.BR IP_TOS " (Linux 1.0 以降)" .\"O Set or receive the Type-Of-Service (TOS) field that is sent .\"O with every IP packet originating from this socket. .\"O It is used to prioritize packets on the network. @@ -1216,31 +1216,31 @@ RSVP .\"O to optimize for reliability, .\"O .B IPTOS_MINCOST .\"O should be used for "filler data" where slow transmission doesn't matter. -¤³¤Î¥½¥±¥Ã¥È¤«¤éÁ÷¿®¤µ¤ì¤ë¤¹¤Ù¤Æ¤Î IP ¥Ñ¥±¥Ã¥È¤ËŬÍѤµ¤ì¤ë -Type-Of-Service (TOS) ¥Õ¥£¡¼¥ë¥É¤òÀßÄꡦ¼èÆÀ¤¹¤ë¡£ -¤³¤ì¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¾å¤Ç¤Î¥Ñ¥±¥Ã¥È¤ÎÍ¥ÀèÅÙ¤ò·è¤á¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ -TOS ¤Ï¥Ð¥¤¥È¥Ç¡¼¥¿¤Ç¤¢¤ë¡£É¸½à¤Î TOS ¥Õ¥é¥°¤¬¤¤¤¯¤Ä¤«ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +このソケットから送信されるすべての IP パケットに適用される +Type-Of-Service (TOS) フィールドを設定・取得する。 +これはネットワーク上でのパケットの優先度を決めるために用いられる。 +TOS はバイトデータである。標準の TOS フラグがいくつか定義されている。 .B IPTOS_LOWDELAY -¤Ï¥¤¥ó¥¿¥é¥¯¥Æ¥£¥Ö¤Ê¥È¥é¥Õ¥£¥Ã¥¯¤ÎÃÙ±ä¤òºÇ¾®¤Ë¤¹¤ë¡£ +はインタラクティブなトラフィックの遅延を最小にする。 .B IPTOS_THROUGHPUT -¤Ï¥¹¥ë¡¼¥×¥Ã¥È¤òºÇÂç¤Ë¤¹¤ë¡£ +はスループットを最大にする。 .B IPTOS_RELIABILITY -¤Ï¿®ÍêÀ­¤òºÇ¹â¤Ë¤¹¤ë¡£ +は信頼性を最高にする。 .B IPTOS_MINCOST -¤ÏžÁ÷®ÅÙ¤¬ÃÙ¤¯¤Æ¤â¤«¤Þ¤ï¤Ê¤¤¤È¤­¡¢¡Ö¥Ç¡¼¥¿¤òµÍ¤á¹þ¤à¡×¤Î¤ËÍѤ¤¤é¤ì¤ë¡£ +は転送速度が遅くてもかまわないとき、「データを詰め込む」のに用いられる。 .\"O At most one of these TOS values can be specified. .\"O Other bits are invalid and shall be cleared. -¤³¤ì¤é¤Î¤¦¤Á¡¢ 1 ¤Ä¤Þ¤Ç¤À¤±¤òÀßÄê¤Ç¤­¤ë¡£ -¾¤Î¥Ó¥Ã¥È¤Ï̵¸ú¤Ç¡¢¥¯¥ê¥¢¤µ¤ì¤ë¡£ -.\"NAKANO ¢¬Ìõ¤¢¤Ã¤Æ¤ë¡© +これらのうち、 1 つまでだけを設定できる。 +他のビットは無効で、クリアされる。 +.\"NAKANO ↑訳あってる? .\"O Linux sends .\"O .B IPTOS_LOWDELAY .\"O datagrams first by default, .\"O but the exact behavior depends on the configured queueing discipline. -Linux ¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï +Linux はデフォルトでは .B IPTOS_LOWDELAY -¥Ç¡¼¥¿¥°¥é¥à¤òºÇ½é¤ËÁ÷¿®¤¹¤ë¡£ -¤·¤«¤·¡¢Àµ³Î¤Ê¿¶¤ëÉñ¤¤¤Ï¥­¥å¡¼½èÍý¤ÎÀßÄê¤Ë°Í¸¤¹¤ë¡£ +データグラムを最初に送信する。 +しかし、正確な振る舞いはキュー処理の設定に依存する。 .\" FIXME elaborate on this .\"O Some high priority levels may require superuser privileges (the .\"O .B CAP_NET_ADMIN @@ -1249,15 +1249,15 @@ Linux .\"O .RB ( SOL_SOCKET ", " SO_PRIORITY ) .\"O socket option (see .\"O .BR socket (7)). -¹â¤¤Í¥ÀèÅ٤ˤ¹¤ë¤Ë¤Ï¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¸¢¸Â +高い優先度にするにはスーパーユーザー権限 .RB ( CAP_NET_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤¬É¬ÍפȤʤ뤫¤â¤·¤ì¤Ê¤¤¡£ -Í¥ÀèÅÙ¤Ï +ケーパビリティ) が必要となるかもしれない。 +優先度は .RB ( SOL_SOCKET ", " SO_PRIORITY ) -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ì¤Ð¡¢ -¥×¥í¥È¥³¥ë¤Ë°Í¸¤·¤Ê¤¤·Á¤Ç¤âÀßÄê¤Ç¤­¤ë +ソケットオプションを用いれば、 +プロトコルに依存しない形でも設定できる .RB ( socket (7) -¤ò¸«¤è)¡£ +を見よ)。 .\" FIXME Document IP_TRANSPARENT .\" Needs CAP_NET_ADMIN .\" Boolean @@ -1266,28 +1266,28 @@ Linux .\" Author: KOVACS Krisztian .TP .\"O .BR IP_TTL " (since Linux 1.0)" -.BR IP_TTL " (Linux 1.0 °Ê¹ß)" +.BR IP_TTL " (Linux 1.0 以降)" .\"O Set or retrieve the current time-to-live field that is used in every packet .\"O sent from this socket. -time-to-live ¥Õ¥£¡¼¥ë¥É¤ÎÃͤòÀßÄê¤Þ¤¿¤Ï¼èÆÀ¤¹¤ë¡£ -¤³¤ÎÃͤϤ³¤Î¥½¥±¥Ã¥È¤«¤éÁ÷¿®¤µ¤ì¤ë¤¹¤Ù¤Æ¤Î¥Ñ¥±¥Ã¥È¤ËÍѤ¤¤é¤ì¤ë¡£ +time-to-live フィールドの値を設定または取得する。 +この値はこのソケットから送信されるすべてのパケットに用いられる。 .\" FIXME Document IP_XFRM_POLICY .\" Since Linux 2.5.48 .\" Needs CAP_NET_ADMIN .\"O .SS /proc interfaces -.SS /proc ¥¤¥ó¥¿¥Õ¥§¡¼¥¹ +.SS /proc インタフェース .\"O The IP protocol .\"O supports a set of .\"O .I /proc .\"O interfaces to configure some global parameters. .\"O The parameters can be accessed by reading or writing files in the directory .\"O .IR /proc/sys/net/ipv4/ . -IP ¥×¥í¥È¥³¥ë¤Ç¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¥°¥í¡¼¥Ð¥ë¥Ñ¥é¥á¡¼¥¿¤òÀßÄꤹ¤ë¤¿¤á¤Î +IP プロトコルでは、いくつかのグローバルパラメータを設定するための .I /proc -¥Õ¥¡¥¤¥ë·²¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Î¥Ñ¥é¥á¡¼¥¿¤Ë¤Ï¡¢ +ファイル群が用意されている。 +これらのパラメータには、 .I /proc/sys/net/ipv4/ -¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¤ÎÆɤ߽ñ¤­¤Ç¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ +ディレクトリ内のファイルの読み書きでアクセスできる。 .\" FIXME As at 2.6.12, 14 Jun 2005, the following are undocumented: .\" ip_queue_maxlen .\" ip_conntrack_max @@ -1297,22 +1297,22 @@ IP .\"O the corresponding option is enabled, and a zero value ("false") .\"O meaning that the option is disabled. .I Boolean -¤È½ñ¤«¤ì¤¿¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÏÀ°¿ôÃͤò¤È¤ê¡¢ -0 °Ê³°¤ÎÃÍ ("true") ¤ÏÂбþ¤¹¤ë¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¡¢ -0 ÃÍ ("false") ¤Ï̵¸ú¡¢¤Ç¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +と書かれたインタフェースは整数値をとり、 +0 以外の値 ("true") は対応するオプションが有効、 +0 値 ("false") は無効、であることを意味する。 .\" .TP .\"O .IR ip_always_defrag " (Boolean; since Linux 2.2.13)" -.IR ip_always_defrag " (Boolean; Linux 2.2.13 °Ê¹ß)" +.IR ip_always_defrag " (Boolean; Linux 2.2.13 以降)" .\"O [New with kernel 2.2.13; in earlier kernel versions this feature .\"O was controlled at compile time by the .\"O .B CONFIG_IP_ALWAYS_DEFRAG .\"O option; this option is not present in 2.4.x and later] -[2.2.13 ¤Ç¿·µ¬Åо졣°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¤³¤Îµ¡Ç½¤Ï -¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +[2.2.13 で新規登場。以前のバージョンのカーネルでは、この機能は +コンパイル時に .B CONFIG_IP_ALWAYS_DEFRAG -¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤ÆÀ©¸æ¤µ¤ì¤Æ¤¤¤¿; -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï 2.4.x °Ê¹ß¤Ç¤Ï¸ºß¤·¤Ê¤¤] +オプションによって制御されていた; +このファイルは 2.4.x 以降では存在しない] .\"O When this boolean flag is enabled (not equal 0), incoming fragments .\"O (parts of IP packets @@ -1320,12 +1320,12 @@ IP .\"O that the packets were too large and cut them into pieces) will be .\"O reassembled (defragmented) before being processed, even if they are .\"O about to be forwarded. -¤³¤Î¥Ö¡¼¥ëÃͤΥե饰¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë (0 °Ê³°¤Ë¤Ê¤Ã¤Æ¤¤¤ë) ¤È¡¢ -ÅþÃ夷¤¿¥Õ¥é¥°¥á¥ó¥È (IP ¥Ñ¥±¥Ã¥È¤Î°ìÉô¤Ç¡¢ -ȯ¿®¸µ¤Èȯ¿®Àè¤Î´Ö¤Î¤É¤³¤«¤Î¥Û¥¹¥È¤Ç¡¢¤½¤Î¥Ñ¥±¥Ã¥È¤¬ -Â礭¤¹¤®¤ë¤ÈȽÃǤµ¤ì¡¢Ê¬³ä¤µ¤ì¤¿¾ì¹ç¤ËÀ¸¤¸¤ë) -¤Ï¡¢¤¿¤È¤¨¥Õ¥©¥ï¡¼¥É¤µ¤ì¤ë¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â -½èÍýÁ°¤ËºÆ¹½ÃÛ (¥Ç¥Õ¥é¥°¥á¥ó¥È) ¤µ¤ì¤ë¡£ +このブール値のフラグが有効になっている (0 以外になっている) と、 +到着したフラグメント (IP パケットの一部で、 +発信元と発信先の間のどこかのホストで、そのパケットが +大きすぎると判断され、分割された場合に生じる) +は、たとえフォワードされる場合であっても +処理前に再構築 (デフラグメント) される。 .\"O Only enable if running either a firewall that is the sole link .\"O to your network or a transparent proxy; never ever use it for a @@ -1333,62 +1333,62 @@ IP .\"O Otherwise fragmented communication can be disturbed .\"O if the fragments travel over different links. .\"O Defragmentation also has a large memory and CPU time cost. -¥Õ¥¡¥¤¥¢¥¦¥©¡¼¥ë¤¬¥í¡¼¥«¥ë¦¤Î¥Í¥Ã¥È¥ï¡¼¥¯¤ËÍ£°ì¤Î¥ê¥ó¥¯¤ò»ý¤Ã¤Æ¤¤¤ë -¾ì¹ç¤ä¡¢Æ©²á¥×¥í¥¯¥·¤Î¾ì¹ç¤Ë¸Â¤Ã¤ÆÍ­¸ú¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -Ä̾ï¤Î¥ë¡¼¥¿¡¼¤ä¥Û¥¹¥È¤Ç¤Ï·è¤·¤Æ»ÈÍѤ¹¤ë¤³¤È¤Î¤Ê¤¤¤è¤¦¤Ë¡£ -¤µ¤â¤Ê¤¤¤È¥Õ¥é¥°¥á¥ó¥È¤¬Ê̤Υê¥ó¥¯¤ò·Ðͳ¤·¤ÆÅÁ¤ï¤ë¾ì¹ç¤Ë¡¢ -ÄÌ¿®¤Î¥Õ¥é¥°¥á¥ó¥È²½¤¬¤Ç¤­¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¡£ -¤Þ¤¿¥Õ¥é¥°¥á¥ó¥ÈºÆ¹½ÃÛ½èÍý¤Ï¥á¥â¥ê¤È CPU »þ´Ö¤Î¥³¥¹¥È¤¬Èó¾ï¤ËÂ礭¤¤¡£ +ファイアウォールがローカル側のネットワークに唯一のリンクを持っている +場合や、透過プロクシの場合に限って有効にすべきである。 +通常のルーターやホストでは決して使用することのないように。 +さもないとフラグメントが別のリンクを経由して伝わる場合に、 +通信のフラグメント化ができなくなってしまう。 +またフラグメント再構築処理はメモリと CPU 時間のコストが非常に大きい。 .\"O This is automagically turned on when masquerading or transparent .\"O proxying are configured. -¤³¤ì¤Ï¥Þ¥¹¥«¥ì¡¼¥É¤äÆ©²á¥×¥í¥¯¥·¤¬ÀßÄꤵ¤ì¤ë¤È¡¢ -ÉԻ׵ĤʻÅÁȤߤˤè¤Ã¤Æ¼«Æ°Åª¤ËÍ­¸ú¤Ë¤Ê¤ë¡£ +これはマスカレードや透過プロクシが設定されると、 +不思議な仕組みによって自動的に有効になる。 .\" .TP .\"O .IR ip_autoconfig " (since Linux 2.2 to 2.6.17)" -.IR ip_autoconfig " (Linux 2.2 °Ê¹ß 2.6.17 ¤Þ¤Ç)" +.IR ip_autoconfig " (Linux 2.2 以降 2.6.17 まで)" .\" Precisely: since 2.1.68 .\" FIXME document ip_autoconfig .\"O Not documented. -¤Þ¤Àµ­½Ò¤·¤Æ¤¤¤Ê¤¤¡£ +まだ記述していない。 .\" .TP .\"O .IR ip_default_ttl " (integer; default: 64; since Linux 2.2)" -.IR ip_default_ttl " (integer; default: 64; Linux 2.2 °Ê¹ß)" +.IR ip_default_ttl " (integer; default: 64; Linux 2.2 以降)" .\" Precisely: 2.1.15 .\"O Set the default time-to-live value of outgoing packets. .\"O This can be changed per socket with the .\"O .B IP_TTL .\"O option. -Á÷½Ð¤µ¤ì¤ë¥Ñ¥±¥Ã¥È¤Î time-to-live ÃͤΥǥե©¥ë¥È¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤ì¤Ï +送出されるパケットの time-to-live 値のデフォルトをセットする。 +これは .B IP_TTL -¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ì¤Ð¡¢¥Ñ¥±¥Ã¥È¤´¤È¤ËÊѤ¨¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +オプションを用いれば、パケットごとに変えることもできる。 .\" .TP .\"O .IR ip_dynaddr " (Boolean; default: disabled; since Linux 2.0.31)" -.IR ip_dynaddr " (Boolean; default: disabled; Linux 2.0.31 °Ê¹ß)" +.IR ip_dynaddr " (Boolean; default: disabled; Linux 2.0.31 以降)" .\"O Enable dynamic socket address and masquerading entry rewriting on interface .\"O address change. .\"O This is useful for dialup interface with changing IP addresses. .\"O 0 means no rewriting, 1 turns it on and 2 enables verbose mode. -ưŪ¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤È¡¢¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹¤¬Êѹ¹¤µ¤ì¤¿ºÝ¤Î -¥Þ¥¹¥«¥ì¡¼¥É¥¨¥ó¥È¥ê¤ÎºÆ½ñ¤­¹þ¤ß¤òÍ­¸ú¤Ë¤¹¤ë¡£ -¥À¥¤¥¢¥ë¥¢¥Ã¥×¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¡¢ -IP ¥¢¥É¥ì¥¹¤¬Êѹ¹¤µ¤ì¤ë¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£ +動的ソケットアドレスと、インターフェースアドレスが変更された際の +マスカレードエントリの再書き込みを有効にする。 +ダイアルアップインターフェースで、 +IP アドレスが変更される場合に便利である。 .\" .TP .\"O .IR ip_forward " (Boolean; default: disabled; since Linux 1.2)" -.IR ip_forward " (Boolean; default: disabled; Linux 1.2 °Ê¹ß)" +.IR ip_forward " (Boolean; default: disabled; Linux 1.2 以降)" .\"O Enable IP forwarding with a boolean flag. .\"O IP forwarding can be also set on a per-interface basis. -IP forwarding ¤òÍ­¸ú¤Ë¤¹¤ë¤«¤É¤¦¤«¤Î¥Ö¡¼¥ëÃͥե饰¡£ -IP forwarding ¤¹¤ë¤«¤É¤¦¤«¤Ï¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤´¤È¤Ë¤âÀßÄê¤Ç¤­¤ë¡£ +IP forwarding を有効にするかどうかのブール値フラグ。 +IP forwarding するかどうかはインターフェースごとにも設定できる。 .\" .TP .\"O .IR ip_local_port_range " (since Linux 2.2)" -.IR ip_local_port_range " (Linux 2.2 °Ê¹ß)" +.IR ip_local_port_range " (Linux 2.2 以降)" .\" Precisely: since 2.1.68 .\"O Contains two integers that define the default local port range .\"O allocated to sockets. @@ -1400,20 +1400,20 @@ IP forwarding .\"O First number should be at least greater than 1024, .\"O or better greater than 4096, to avoid clashes .\"O with well known ports and to minimize firewall problems. -¥½¥±¥Ã¥È¤Ë³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¥Ç¥Õ¥©¥ë¥È¤Î¥í¡¼¥«¥ë¥Ý¡¼¥È¤ÎÈϰϤòÄê¤á¤ë -Æó¤Ä¤ÎÀ°¿ô¤òÍ¿¤¨¤ë¡£³ä¤êÅö¤Æ¤Ï 1 ÈÖÌܤÎÈֹ椫¤é»Ï¤Þ¤ê¡¢ 2 ÈÖÌܤÎÈÖ¹æ¤Ç½ª¤ï¤ë¡£ -¤³¤ì¤é¤Ï¥Þ¥¹¥«¥ì¡¼¥É¤ÇÍѤ¤¤é¤ì¤Æ¤¤¤ë¥Ý¡¼¥È¤È½Å¤Ê¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤ -(¤½¤Î¾ì¹ç¤â¼è¤ê°·¤ï¤ì¤ë¤¬)¡£ -¥Õ¥¡¥¤¥¢¥¦¥©¡¼¥ë¤Î¥Ñ¥±¥Ã¥È¥Õ¥£¥ë¥¿¡¼¤¬¡ÖÍøÍÑÃæ¤Î¥í¡¼¥«¥ë¥Ý¡¼¥È¡× -¤Ë¤Ä¤¤¤Æ²¿¤é¤«¤Î²¾Äê¤ò¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -ÈÖ¹æ¤ò¾¡¼ê¤Ë·è¤á¤Æ¤·¤Þ¤¦¤ÈÌäÂ꤬µ¯¤­¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -1 ÈÖÌܤÎÈÖ¹æ¤Ï¾¯¤Ê¤¯¤È¤â 1024 ¤è¤êÂ礭¤¯¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -Îɤ¯»È¤ï¤ì¤ë¥Ý¡¼¥È¤È¤Î¾×ÆͤòÈò¤±¤¿¤ê¡¢¥Õ¥¡¥¤¥¢¥¦¥©¡¼¥ë¤ÎÌäÂê¤ò -²óÈò¤·¤¿¤±¤ì¤Ð¡¢ 4096 ¤è¤ê¤âÂ礭¤¯¤¹¤ë¤Û¤¦¤¬Îɤ¤¤À¤í¤¦¡£ +ソケットに割り当てられているデフォルトのローカルポートの範囲を定める +二つの整数を与える。割り当ては 1 番目の番号から始まり、 2 番目の番号で終わる。 +これらはマスカレードで用いられているポートと重なってはならない +(その場合も取り扱われるが)。 +ファイアウォールのパケットフィルターが「利用中のローカルポート」 +について何らかの仮定をしている場合には、 +番号を勝手に決めてしまうと問題が起きるかもしれない。 +1 番目の番号は少なくとも 1024 より大きくすべきである。 +良く使われるポートとの衝突を避けたり、ファイアウォールの問題を +回避したければ、 4096 よりも大きくするほうが良いだろう。 .\" .TP .\"O .IR ip_no_pmtu_disc " (Boolean; default: disabled; since Linux 2.2)" -.IR ip_no_pmtu_disc " (Boolean; default: disabled; Linux 2.2 °Ê¹ß)" +.IR ip_no_pmtu_disc " (Boolean; default: disabled; Linux 2.2 以降)" .\" Precisely: 2.1.15 .\"O If enabled, don't do Path MTU Discovery for TCP sockets by default. .\"O Path MTU discovery may fail if misconfigured firewalls (that drop @@ -1422,43 +1422,43 @@ IP forwarding .\"O It is better to fix the broken routers on the path than to turn off .\"O Path MTU Discovery globally, because not doing it incurs a high cost .\"O to the network. -Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢¥Ç¥Õ¥©¥ë¥È¤Ç TCP ¥½¥±¥Ã¥È¤ËÂФ¹¤ë -Path MTU Discoverty ¤ò¹Ô¤ï¤Ê¤¤¡£ -Path MTU Discovery ¤Ï¡¢ -Àµ¤·¤¯ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤ (ICMP ¥Ñ¥±¥Ã¥È¤òÁ´¤Æ¥É¥í¥Ã¥×¤¹¤ë) ¥Õ¥¡¥¤¥¢¥¦¥©¡¼¥ë¤ä¡¢ -(point-to-point ¥ê¥ó¥¯¤ÇÁÐÊý¤Î MTU ¤¬°ìÃפ·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ê¤É) -Àµ¤·¤¯ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬·ÐÏ©¾å¤Ë¸ºß¤¹¤ë¤È¼ºÇÔ¤·¤Æ¤·¤Þ¤¦¡£ -Path MTU Discovery ¤ò¥°¥í¡¼¥Ð¥ë¤Ë̵¸ú¤Ë¤¹¤ë¤è¤ê¤Ï¡¢ -²õ¤ì¤Æ¤¤¤ë¥ë¡¼¥¿¤òľ¤¹¤Û¤¦¤¬Îɤ¤¡£ -Path MTU Discovery ¤ò̵¸ú¤Ë¤¹¤ë¤È¥Í¥Ã¥È¥ï¡¼¥¯¤Î¥³¥¹¥È¤¬ -Â礭¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤«¤é¤Ç¤¢¤ë¡£ +有効になっていると、デフォルトで TCP ソケットに対する +Path MTU Discoverty を行わない。 +Path MTU Discovery は、 +正しく設定されていない (ICMP パケットを全てドロップする) ファイアウォールや、 +(point-to-point リンクで双方の MTU が一致していない場合など) +正しく設定されていないインターフェースが経路上に存在すると失敗してしまう。 +Path MTU Discovery をグローバルに無効にするよりは、 +壊れているルータを直すほうが良い。 +Path MTU Discovery を無効にするとネットワークのコストが +大きくなってしまうからである。 .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt .TP .\"O .IR ip_nonlocal_bind " (Boolean; default: disabled; since Linux 2.4)" -.IR ip_nonlocal_bind " (Boolean; default: disabled; Linux 2.4 °Ê¹ß)" +.IR ip_nonlocal_bind " (Boolean; default: disabled; Linux 2.4 以降)" .\" Precisely: patch-2.4.0-test10 .\"O If set, allows processes to .\"O .BR bind (2) .\"O to nonlocal IP addresses, .\"O which can be quite useful, but may break some applications. -¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢¥×¥í¥»¥¹¤¬¼«Ê¬°Ê³°¤Î IP ¥¢¥É¥ì¥¹¤ò +セットされていれば、プロセスが自分以外の IP アドレスを .BR bind (2) -¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£¤³¤ì¤Ï¤«¤Ê¤êÊØÍø¤À¤¬¡¢¤¦¤Þ¤¯Æ°¤«¤Ê¤¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤â¤¢¤ë¡£ +できるようになる。これはかなり便利だが、うまく動かないアプリケーションもある。 .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt .TP .IR ip6frag_time " (integer; default 30)" .\"O Time in seconds to keep an IPv6 fragment in memory. -IPv6 ¥Õ¥é¥°¥á¥ó¥È¤ò¥á¥â¥ê¤ËÊÝ»ý¤·¤Æ¤ª¤¯»þ´Ö (ÉÃñ°Ì)¡£ +IPv6 フラグメントをメモリに保持しておく時間 (秒単位)。 .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt .TP .IR ip6frag_secret_interval " (integer; default 600)" .\"O Regeneration interval (in seconds) of the hash secret (or lifetime .\"O for the hash secret) for IPv6 fragments. -IPv6 ¥Õ¥é¥°¥á¥ó¥È¤Î hash secret ¤ÎÀ¸À®´Ö³Ö (hash secret ¤Î¼÷Ì¿) -(ÉÃñ°Ì)¡£ +IPv6 フラグメントの hash secret の生成間隔 (hash secret の寿命) +(秒単位)。 .TP .IR ipfrag_high_thresh " (integer), " ipfrag_low_thresh " (integer)" .\"O If the amount of queued IP fragments reaches @@ -1466,18 +1466,18 @@ IPv6 .\"O the queue is pruned down to .\"O .IR ipfrag_low_thresh . .\"O Contains an integer with the number of bytes. -¥­¥å¡¼¥¤¥ó¥°¤µ¤ì¤Æ¤¤¤ë IP ¥Õ¥é¥°¥á¥ó¥È¤ÎÎ̤¬ +キューイングされている IP フラグメントの量が .I ipfrag_high_thresh -¤Ë㤹¤ë¤È¡¢¥­¥å¡¼¤ÎÆâÍÆ¤Ï +に達すると、キューの内容は .I ipfrag_low_thresh -¤Ë¤Þ¤ÇÀÚ¤ê¼Î¤Æ¤é¤ì¤ë¡£¤½¤ì¤¾¤ì¤ÎÂ礭¤µ¤ò -¥Ð¥¤¥Èñ°Ì¤Çɽ¤¹À°¿ôÃͤ¬Æþ¤Ã¤Æ¤¤¤ë¡£ +にまで切り捨てられる。それぞれの大きさを +バイト単位で表す整数値が入っている。 .TP .I neigh/* .\"O See .\"O .BR arp (7). .BR arp (7) -¤ò¸«¤è¡£ +を見よ。 .\" FIXME Document the conf/*/* interfaces .\" FIXME Document the route/* interfaces .\" FIXME document them all @@ -1488,9 +1488,9 @@ IPv6 .\"O apply to .\"O .BR ip . .BR socket (7) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë ioctl ¤Ï¡¢¤¹¤Ù¤Æ +に記述されている ioctl は、すべて .B ip -¤Ë¤âŬÍѤµ¤ì¤ë¡£ +にも適用される。 .\" 2006-04-02, mtk .\" commented out the following because ipchains is obsolete .\" .PP @@ -1499,20 +1499,20 @@ IPv6 .\"O .\" from the .\"O .\" .B ipchains .\"O .\" package. -.\" ¥Õ¥¡¥¤¥¢¥¦¥©¡¼¥ë´Ø·¸¤ÎÀßÄê¤Ë´Ø¤¹¤ë ioctl ¤Ë¤Ä¤¤¤Æ¤Ï +.\" ファイアウォール関係の設定に関する ioctl については .\" .B ipchains -.\" ¥Ñ¥Ã¥±¡¼¥¸¤Î +.\" パッケージの .\" .BR ipfw (4) -.\" ¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +.\" に記述されている。 .PP .\"O Ioctls to configure generic device parameters are described in .\"O .BR netdevice (7). -¥¸¥§¥Í¥ê¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Î¥Ñ¥é¥á¡¼¥¿¤òÀßÄꤹ¤ë ioctl ¤Ë¤Ä¤¤¤Æ¤Ï +ジェネリックデバイスのパラメータを設定する ioctl については .BR netdevice (7) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +に記述されている。 .\" FIXME Add a discussion of multicasting .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\" FIXME document all errors. .\" We should really fix the kernels to give more uniform .\" error returns (ENOMEM vs ENOBUFS, EPERM vs EACCES etc.) @@ -1532,121 +1532,121 @@ IPv6 .\"O binding to a privileged port without superuser privileges (the .\"O .B CAP_NET_BIND_SERVICE .\"O capability). -ɬÍפʸ¢¸Â¤Î¤Ê¤¤¥æ¡¼¥¶¡¼¤¬Áàºî¤ò¼Â¹Ô¤·¤è¤¦¤È¤·¤¿¡£ -°Ê²¼¤Î¤è¤¦¤Ê¾ì¹ç¤¬¹Í¤¨¤é¤ì¤ë: +必要な権限のないユーザーが操作を実行しようとした。 +以下のような場合が考えられる: .B SO_BROADCAST -¥Õ¥é¥°¤òÀßÄꤷ¤Æ¤¤¤Ê¤¤¾õÂÖ¤Ç¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤Ë -¥Ñ¥±¥Ã¥È¤òÁ÷¤í¤¦¤È¤·¤¿¡£ +フラグを設定していない状態でブロードキャストアドレスに +パケットを送ろうとした。 .I prohibit -¤Ê¥ë¡¼¥È¤òÄ̤·¤Æ¥Ñ¥±¥Ã¥È¤òÁ÷¤í¤¦¤È¤·¤¿¡£ -¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¸¢¸Â +なルートを通してパケットを送ろうとした。 +スーパーユーザー権限 .RB ( CAP_NET_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤Ê¤·¤Ç¥Õ¥¡¥¤¥¢¥¦¥©¡¼¥ë¤ÎÀßÄê¤òÊѹ¹¤·¤è¤¦¤È¤·¤¿¡£ -¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¸¢¸Â +ケーパビリティ) なしでファイアウォールの設定を変更しようとした。 +スーパーユーザー権限 .RB ( CAP_NET_BIND_SERVICE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤Ê¤·¤ÇÆø¢¥Ý¡¼¥È¤Ë¥Ð¥¤¥ó¥É¤·¤è¤¦¤È¤·¤¿¡£ +ケーパビリティ) なしで特権ポートにバインドしようとした。 .TP .B EADDRINUSE .\"O Tried to bind to an address already in use. -´û¤Ë»È¤ï¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¤Ë¥Ð¥¤¥ó¥É¤·¤è¤¦¤È¤·¤¿¡£ +既に使われているアドレスにバインドしようとした。 .TP .B EADDRNOTAVAIL .\"O A nonexistent interface was requested or the requested source .\"O address was not local. -¸ºß¤·¤Ê¤¤¥½¥±¥Ã¥È¤¬Í׵ᤵ¤ì¤¿¡£¤Þ¤¿¤ÏÍ׵ᤵ¤ì¤¿ -¥½¡¼¥¹¥¢¥É¥ì¥¹¤¬¥í¡¼¥«¥ë¤Ç¤Ê¤¤¡£ +存在しないソケットが要求された。または要求された +ソースアドレスがローカルでない。 .TP .B EAGAIN .\"O Operation on a nonblocking socket would block. -Èó¥Ö¥í¥Ã¥­¥ó¥°¥½¥±¥Ã¥È¤ËÂФ·¤Æ¥Ö¥í¥Ã¥¯¤¹¤ëÁàºî¤ò¹Ô¤Ã¤¿¡£ +非ブロッキングソケットに対してブロックする操作を行った。 .TP .B EALREADY .\"O An connection operation on a nonblocking socket is already in progress. -Èó¥Ö¥í¥Ã¥­¥ó¥°¥½¥±¥Ã¥È¤ËÂФ¹¤ëÀܳÁàºî¤¬´û¤Ë¼Â¹ÔÃæ¤Ç¤¢¤ë¡£ +非ブロッキングソケットに対する接続操作が既に実行中である。 .TP .B ECONNABORTED .\"O A connection was closed during an .\"O .BR accept (2). .BR accept (2) -¤ÎºÇÃæ¤ËÀܳ¤¬¥¯¥í¡¼¥º¤µ¤ì¤¿¡£ +の最中に接続がクローズされた。 .TP .B EHOSTUNREACH .\"O No valid routing table entry matches the destination address. .\"O This error can be caused by a ICMP message from a remote router or .\"O for the local routing table. -°¸À襢¥É¥ì¥¹¤Ë¥Þ¥Ã¥Á¤¹¤ëÍ­¸ú¤Ê¥¨¥ó¥È¥ê¤¬¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤Ë -¸ºß¤·¤Ê¤¤¡£¤³¤Î¥¨¥é¡¼¤Ï¥ê¥â¡¼¥È¥ë¡¼¥¿¤«¤é¤Î¡¢ -¤¢¤ë¤¤¤Ï¥í¡¼¥«¥ë¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤Ø¤Î -ICMP ¥á¥Ã¥»¡¼¥¸¤Ë¤è¤Ã¤Æ°ú¤­µ¯¤³¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ +宛先アドレスにマッチする有効なエントリがルーティングテーブルに +存在しない。このエラーはリモートルータからの、 +あるいはローカルルーティングテーブルへの +ICMP メッセージによって引き起こされることがある。 .TP .B EINVAL .\"O Invalid argument passed. .\"O For send operations this can be caused by sending to a .\"O .I blackhole .\"O route. -ÉÔÀµ¤Ê°ú¤­¿ô¤¬ÅϤµ¤ì¤¿¡£Á÷¿®Áàºî¤Ë¤ª¤¤¤Æ¡¢ +不正な引き数が渡された。送信操作において、 .I blackhole -¥ë¡¼¥È¤ËÁ÷¿®¤·¤è¤¦¤È¤¹¤ë¤È¤³¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë¤³¤È¤¬¤¢¤ë¡£ +ルートに送信しようとするとこのエラーが起こることがある。 .TP .B EISCONN .\"O .BR connect (2) .\"O was called on an already connected socket. .BR connect (2) -¤¬¡¢´û¤ËÀܳºÑ¤ß¤Î¥½¥±¥Ã¥È¤ËÂФ·¤Æ¸Æ¤Ð¤ì¤¿¡£ +が、既に接続済みのソケットに対して呼ばれた。 .TP .B EMSGSIZE .\"O Datagram is bigger than an MTU on the path and it cannot be fragmented. -¥Ç¡¼¥¿¥°¥é¥à¤¬ path MTU ¤è¤ê¤âÂ礭¤¯¡¢¥Õ¥é¥°¥á¥ó¥È²½¤â¤Ç¤­¤Ê¤¤¡£ +データグラムが path MTU よりも大きく、フラグメント化もできない。 .TP .BR ENOBUFS ", " ENOMEM .\"O Not enough free memory. .\"O This often means that the memory allocation is limited by the socket .\"O buffer limits, not by the system memory, but this is not 100% consistent. -¶õ¤­¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£ -¤³¤Î¥¨¥é¡¼¤Ï¡¢¥á¥â¥ê¥¢¥í¥±¡¼¥·¥ç¥ó¤¬¥½¥±¥Ã¥È¥Ð¥Ã¥Õ¥¡¤Î -Â礭¤µ¤Ë¤è¤Ã¤ÆÀ©¸Â¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò°ÕÌ£¤·¤Æ¤¤¤ë¤Î¤¬Ä̾ï¤Ç¤¢¤ë¤¬¡¢ -100% ¤½¤¦¤À¤È¤¤¤¦¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ +空きメモリが足りない。 +このエラーは、メモリアロケーションがソケットバッファの +大きさによって制限されていることを意味しているのが通常であるが、 +100% そうだというわけではない。 .TP .B ENOENT .\"O .B SIOCGSTAMP .\"O was called on a socket where no packet arrived. -¥Ñ¥±¥Ã¥È¤¬Á´¤¯ÅþÃ夷¤Æ¤¤¤Ê¤¤¥½¥±¥Ã¥È¤ËÂФ·¤Æ +パケットが全く到着していないソケットに対して .B SIOCGSTAMP -¤¬¸Æ¤Ð¤ì¤¿¡£ +が呼ばれた。 .TP .B ENOPKG .\"O A kernel subsystem was not configured. -¥«¡¼¥Í¥ë¥µ¥Ö¥·¥¹¥Æ¥à¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +カーネルサブシステムが設定されていない。 .TP .\"O .BR ENOPROTOOPT " and " EOPNOTSUPP -.BR ENOPROTOOPT " ¤È " EOPNOTSUPP +.BR ENOPROTOOPT " と " EOPNOTSUPP .\"O Invalid socket option passed. -ÉÔÀµ¤Ê¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬ÅϤµ¤ì¤¿¡£ +不正なソケットオプションが渡された。 .TP .B ENOTCONN .\"O The operation is only defined on a connected socket, but the socket wasn't .\"O connected. -Àܳ¤µ¤ì¤Æ¤¤¤Ê¤¤¥½¥±¥Ã¥È¤ËÂФ·¤Æ¡¢ -Àܳ¾õÂ֤Ǥ·¤«ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤Áàºî¤ò¹Ô¤ª¤¦¤È¤·¤¿¡£ +接続されていないソケットに対して、 +接続状態でしか定義されていない操作を行おうとした。 .TP .B EPERM .\"O User doesn't have permission to set high priority, change configuration, .\"O or send signals to the requested process or group. -¹â¤¤Í¥ÀèÅÙ¤òÀßÄꤷ¤¿¤ê¡¢ÀßÄê¤òÊѹ¹¤·¤¿¤ê¡¢Í׵ᤵ¤ì¤¿¥×¥í¥»¥¹¤ä -¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤Ã¤¿¤ê¤¹¤ë¤Î¤ËɬÍפʸ¢¸Â¤ò¡¢ -¥æ¡¼¥¶¡¼¤¬»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +高い優先度を設定したり、設定を変更したり、要求されたプロセスや +プロセスグループにシグナルを送ったりするのに必要な権限を、 +ユーザーが持っていない。 .TP .B EPIPE .\"O The connection was unexpectedly closed or shut down by the other end. -Àܳ¤¬ÀèÊý¤«¤é´üÂÔ¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¤ä¤êÊý¤Ç -¥¯¥í¡¼¥º¤¢¤ë¤¤¤Ï¥·¥ã¥Ã¥È¥À¥¦¥ó¤µ¤ì¤¿¡£ +接続が先方から期待していなかったやり方で +クローズあるいはシャットダウンされた。 .TP .B ESOCKTNOSUPPORT .\"O The socket is not configured or an unknown socket type was requested. -¥½¥±¥Ã¥È¤¬Ì¤ÀßÄê¤Ç¤¢¤ë¤«¡¢ÃΤé¤Ê¤¤¥½¥±¥Ã¥È¥¿¥¤¥×¤¬Í׵ᤵ¤ì¤¿¡£ +ソケットが未設定であるか、知らないソケットタイプが要求された。 .PP .\"O Other errors may be generated by the overlaying protocols; see -¾¤Î¥¨¥é¡¼¤¬¾åÁؤΥץí¥È¥³¥ë¤Ë¤è¤Ã¤ÆÀ¸¤¸¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +他のエラーが上層のプロトコルによって生じるかもしれない。 .\"O .BR tcp (7), .\"O .BR raw (7), .\"O .BR udp (7) @@ -1656,9 +1656,9 @@ ICMP .BR raw (7), .BR udp (7), .BR socket (7) -¤Ê¤É¤ò»²¾È¤Î¤³¤È¡£ +などを参照のこと。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O .BR IP_MTU , .\"O .BR IP_MTU_DISCOVER , .\"O .BR IP_PKTINFO , @@ -1672,8 +1672,8 @@ ICMP .B IP_ROUTER_ALERT .\"O are Linux-specific and should not be used in .\"O programs intended to be portable. -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢°Ü¿¢À­¤ò¹Íθ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï -ÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +は Linux 固有であり、移植性を考慮したプログラムでは +用いるべきではない。 .\" IP_PASSSEC is Linux-specific .\" IP_TRANSPARENT is Linux-specific .\" IP_FREEBIND is Linux-specific @@ -1688,12 +1688,12 @@ ICMP .\"O it is better to use a multicast group instead of broadcasting. .\"O Broadcasting is discouraged. .B SO_BROADCAST -¥ª¥×¥·¥ç¥ó¤ÎÍøÍѤˤϡ¢¤¯¤ì¤°¤ì¤âÃí°Õ¤¹¤ë¤³¤È¡£ -¤³¤ì¤Ï Linux ¤Ç¤ÏÆø¢Áàºî¤Ç¤Ï¤Ê¤¤¡£ -ÉÔÃí°Õ¤Ê¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¤ò¹Ô¤¦¤È¡¢¥Í¥Ã¥È¥ï¡¼¥¯¤Ï´Êñ¤Ë²áÉé²Ù¾õÂ֤ˤʤ롣 -¿·¤·¤¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥È¥³¥ë¤Ë¤Ï¡¢¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¤Ç¤Ï¤Ê¤¯ -¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¤òÍѤ¤¤ë¤Û¤¦¤¬¤è¤¤¡£ -¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¤Ï¿ä¾©¤µ¤ì¤Ê¤¤¡£ +オプションの利用には、くれぐれも注意すること。 +これは Linux では特権操作ではない。 +不注意なブロードキャストを行うと、ネットワークは簡単に過負荷状態になる。 +新しいアプリケーションプロトコルには、ブロードキャストではなく +マルチキャストグループを用いるほうがよい。 +ブロードキャストは推奨されない。 .PP .\"O Some other BSD sockets implementations provide .\"O .B IP_RCVDSTADDR @@ -1704,16 +1704,16 @@ ICMP .\"O Linux has the more general .\"O .B IP_PKTINFO .\"O for the same task. -¾¤Î BSD ¤Î¥½¥±¥Ã¥È¼ÂÁõ¤Ç¤Ï¡¢ +他の BSD のソケット実装では、 .B IP_RCVDSTADDR -¤È +と .B IP_RECVIF -¤È¤¤¤Ã¤¿¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤ª¤ê¡¢ -°¸À襢¥É¥ì¥¹¤ä¼õ¿®¥Ç¡¼¥¿¥°¥é¥à¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬¼èÆÀ¤Ç¤­¤ë¤è¤¦¤Ë -¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤â¤¢¤ë¡£ -Linux ¤ÇƱ¤¸¤³¤È¤ò¤ä¤é¤»¤ë¤Ë¤Ï¡¢¤è¤ê°ìÈÌŪ¤Ê +といったソケットオプションがサポートされており、 +宛先アドレスや受信データグラムのインターフェースが取得できるように +なっていることもある。 +Linux で同じことをやらせるには、より一般的な .B IP_PKTINFO -¤¬»È¤¨¤ë¡£ +が使える。 .PP .\"O Some BSD sockets implementations also provide an .\"O .B IP_RECVTTL @@ -1723,14 +1723,14 @@ Linux .\"O This is different from the .\"O .B IP_TTL .\"O option used in Linux. -¤¤¤¯¤Ä¤«¤Î BSD ¤Î¥½¥±¥Ã¥È¼ÂÁõ¤Ç¤Ï +いくつかの BSD のソケット実装では .B IP_RECVTTL -¥ª¥×¥·¥ç¥ó¤âÄ󶡤µ¤ì¤Æ¤¤¤ë¤¬¡¢¥¿¥¤¥× +オプションも提供されているが、タイプ .B IP_RECVTTL -¤ÎÊä½õ¥á¥Ã¥»¡¼¥¸¤Ï¼õ¿®¥Ñ¥±¥Ã¥È¤È¤È¤â¤ËÅϤµ¤ì¤ë¡£ -¤³¤ì¤Ï Linux ¤Ç»È¤ï¤ì¤Æ¤¤¤ë +の補助メッセージは受信パケットとともに渡される。 +これは Linux で使われている .B IP_TTL -¥ª¥×¥·¥ç¥ó¤È¤Ï°Û¤Ê¤ëÆ°ºî¤Ç¤¢¤ë¡£ +オプションとは異なる動作である。 .PP .\"O Using .\"O .B SOL_IP @@ -1738,12 +1738,12 @@ Linux .\"O .B IPPROTO_IP .\"O level. .B SOL_IP -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¥ì¥Ù¥ë¤Ï°Ü¿¢À­¤¬¤Ê¤¤¡£ -BSD ¥Ù¡¼¥¹¤Î¥×¥í¥È¥³¥ë¥¹¥¿¥Ã¥¯¤Ç¤Ï +ソケットオプションレベルは移植性がない。 +BSD ベースのプロトコルスタックでは .B IPPROTO_IP -¥ì¥Ù¥ë¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ +レベルが使用されている。 .\"O .SS Compatibility -.SS °Ü¿¢À­ +.SS 移植性 .\"O For compatibility with Linux 2.0, the obsolete .\"O .BI "socket(AF_INET, SOCK_PACKET, " protocol ) .\"O syntax is still supported to open a @@ -1757,35 +1757,35 @@ BSD .\"O .I sockaddr_ll .\"O address structure for generic link layer information instead of the old .\"O .BR sockaddr_pkt . -Linux 2.0 ¤È¤Î¸ß´¹À­¤Î¤¿¤á¤Ë¡¢ obsolete ¤Ê +Linux 2.0 との互換性のために、 obsolete な .BI "socket(AF_INET, SOCK_PACKET, " protocol ) -¤È¤¤¤¦½ñ¼°¤Ç¤â +という書式でも .BR packet (7) -¤ò¥ª¡¼¥×¥ó¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¬¡¢¤³¤ì¤Ï¤ª´«¤á¤Ç¤­¤Ê¤¤¡£º£¸å¤Ï +をオープンできるようになっているが、これはお勧めできない。今後は .BI "socket(AF_PACKET, SOCK_RAW, " protocol ) -¤òÂå¤ï¤ê¤ËÍѤ¤¤ë¤Ù¤­¤Ç¤¢¤ë¡£¼ç¤Ê°ã¤¤¤Ï¡¢¥¸¥§¥Í¥ê¥Ã¥¯¤Ê¥ê¥ó¥¯ÁØÍѤΠ+を代わりに用いるべきである。主な違いは、ジェネリックなリンク層用の .I sockaddr_ll -¥¢¥É¥ì¥¹¹½Â¤ÂΤ¬¡¢¸Å¤¤ +アドレス構造体が、古い .B sockaddr_pkt -¤ËÊѤï¤Ã¤ÆÍѤ¤¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤³¤È¤Ç¤¢¤ë¡£ +に変わって用いられるようになったことである。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O There are too many inconsistent error values. -¥¨¥é¡¼¤ÎÃͤ¬Á´¤¯¼óÈø°ì´Ó¤·¤Æ¤¤¤Ê¤¤¡£ +エラーの値が全く首尾一貫していない。 .PP .\"O The ioctls to configure IP-specific interface options and ARP tables are .\"O not described. -IP ¸ÇÍ­¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤¿¤á¤Î ioctl ¤È -ARP ¥Æ¡¼¥Ö¥ë¤Î¤³¤È¤¬µ­½Ò¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +IP 固有のインターフェースオプションを指定するための ioctl と +ARP テーブルのことが記述されていない。 .PP .\"O Some versions of glibc forget to declare .\"O .IR in_pktinfo . .\"O Workaround currently is to copy it into your program from this man page. -glibc ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤Ã¤Æ¤Ï +glibc のバージョンによっては .I in_pktinfo -¤ÎÄêµÁ¤ò˺¤ì¤Æ¤¤¤ë¤â¤Î¤¬¤¢¤ë¡£ -¸½»þÅÀ¤Ç¤Î¤È¤ê¤¢¤¨¤º¤ÎÂкö¤È¤·¤Æ¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤Ë¤¢¤ëÄêµÁ¤ò¥×¥í¥°¥é¥àÃæ¤Ë -¥³¥Ô¡¼¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£ +の定義を忘れているものがある。 +現時点でのとりあえずの対策としては、この man ページにある定義をプログラム中に +コピーすることである。 .PP .\"O Receiving the original destination address with .\"O .B MSG_ERRQUEUE @@ -1795,18 +1795,18 @@ glibc .\"O .BR recvmsg (2) .\"O does not work in some 2.2 kernels. .BR recvmsg (2) -¤Ç +で .I msg_name -¤Ë +に .B MSG_ERRQUEUE -¤ò»ØÄꤷ¤Æ¡¢¼õ¿®¥Ñ¥±¥Ã¥È¤ËÆþ¤Ã¤Æ¤¤¤¿°¸À襢¥É¥ì¥¹¤ò¼èÆÀ¤¹¤ëÊýË¡¤Ï -2.2 ¥«¡¼¥Í¥ë¤Î°ìÉô¤Ç¤¦¤Þ¤¯Æ°¤«¤Ê¤¤¡£ +を指定して、受信パケットに入っていた宛先アドレスを取得する方法は +2.2 カーネルの一部でうまく動かない。 .\"O .\" .SH AUTHORS -.\" .SH Ãø¼Ô +.\" .SH 著者 .\"O .\" This man page was written by Andi Kleen. -.\" ¤³¤Î man ¥Ú¡¼¥¸¤Ï Andi Kleen ¤¬½ñ¤¤¤¿¡£ +.\" この man ページは Andi Kleen が書いた。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR recvmsg (2), .BR sendmsg (2), .BR byteorder (3), @@ -1820,13 +1820,13 @@ glibc .PP .\"O RFC\ 791 for the original IP specification. .BR RFC\ 791 : -¥ª¥ê¥¸¥Ê¥ë¤Î IP ¤Î»ÅÍÍ +オリジナルの IP の仕様 .br .\"O RFC\ 1122 for the IPv4 host requirements. .BR RFC\ 1122 : -IPv4 ¥Û¥¹¥È¤ÎɬÍ×¾ò·ï +IPv4 ホストの必要条件 .br .\"O RFC\ 1812 for the IPv4 router requirements. .BR RFC\ 1812 : -IPv4 ¥ë¡¼¥¿¤ÎɬÍ×¾ò·ï +IPv4 ルータの必要条件 .\" FIXME autobind INADDR REUSEADDR diff --git a/draft/man7/ipv6.7 b/draft/man7/ipv6.7 index f5c8d484..ecc5fcea 100644 --- a/draft/man7/ipv6.7 +++ b/draft/man7/ipv6.7 @@ -12,19 +12,19 @@ .\" Updated 2007-05-28, Akihiro MOTOKI , LDP v2.50 .\" Updated 2008-08-07, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: flow identifier ¥Õ¥í¡¼»ØÄê»Ò -.\"WORD: control message À©¸æ¥á¥Ã¥»¡¼¥¸ -.\"WORD: incoming ¡Á ¼õ¿® (¥Ñ¥±¥Ã¥È¡¢¥Ç¡¼¥¿¥°¥é¥à) -.\"WORD: outgoing ¡Á Á÷¿® (¥Ñ¥±¥Ã¥È¡¢¥Ç¡¼¥¿¥°¥é¥à) -.\"WORD: asynchronous error ÈóƱ´ü¥¨¥é¡¼ +.\"WORD: flow identifier フロー指定子 +.\"WORD: control message 制御メッセージ +.\"WORD: incoming 〜 受信 (パケット、データグラム) +.\"WORD: outgoing 〜 送信 (パケット、データグラム) +.\"WORD: asynchronous error 非同期エラー .\" .TH IPV6 7 2011-09-08 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O ipv6, AF_INET6 \- Linux IPv6 protocol implementation -.SH ̾Á° -ipv6, AF_INET6 \- Linux ¤Î IPv6 ¥×¥í¥È¥³¥ë¼ÂÁõ +.SH 名前 +ipv6, AF_INET6 \- Linux の IPv6 プロトコル実装 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include @@ -35,30 +35,30 @@ ipv6, AF_INET6 \- Linux .br .IB udp6_socket " = socket(AF_INET6, SOCK_DGRAM, " protocol ");" .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Linux 2.2 optionally implements the Internet Protocol, version 6. .\"O This man page contains a description of the IPv6 basic API as .\"O implemented by the Linux kernel and glibc 2.1. .\"O The interface .\"O is based on the BSD sockets interface; see .\"O .BR socket (7). -Linux 2.2 ¤Ç¤Ï¡¢Internet Protocol, version 6 ¤ò -¥ª¥×¥·¥ç¥ó¤È¤·¤Æ¼ÂÁõ¤·¤Æ¤¤¤ë¡£ -¤³¤Î man ¥Ú¡¼¥¸¤Ç¤Ï¡¢Linux ¥«¡¼¥Í¥ë¤È glibc 2.1 ¤Ç¤Î¼ÂÁõ¤Ë´ð¤Å¤¤¤Æ¡¢ -IPv6 ¤Î´ðËÜŪ¤Ê API ¤ò²òÀ⤹¤ë¡£ -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï BSD ¥½¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò¤â¤È¤Ë¤·¤Æ¤¤¤ë¡£ +Linux 2.2 では、Internet Protocol, version 6 を +オプションとして実装している。 +この man ページでは、Linux カーネルと glibc 2.1 での実装に基づいて、 +IPv6 の基本的な API を解説する。 +インターフェースは BSD ソケットインターフェースをもとにしている。 .BR socket (7) -¤ò»²¾È¡£ +を参照。 .PP .\"O The IPv6 API aims to be mostly compatible with the .\"O IPv4 API (see .\"O .BR ip (7)). .\"O Only differences are described in this man page. -IPv6 API ¤Ï¡¢ +IPv6 API は、 IPv4 API .RB ( ip (7) -»²¾È) ¤È¤Û¤Ü¸ß´¹¤Ë¤Ê¤ë¤³¤È¤òÌܻؤ·¤Æ¤¤¤ë¡£ -¤³¤Î man ¥Ú¡¼¥¸¤Ç¤ÏÁê°ãÅÀ¤Î¤ß¤ò²òÀ⤹¤ë¡£ +参照) とほぼ互換になることを目指している。 +この man ページでは相違点のみを解説する。 .PP .\"O To bind an .\"O .B AF_INET6 @@ -72,16 +72,16 @@ IPv4 API .\"O may also be used, which expands to a constant expression. .\"O Both of them are in network byte order. .B AF_INET6 -¥½¥±¥Ã¥È¤ò²¿¤é¤«¤Î¥×¥í¥»¥¹¤Ë¥Ð¥¤¥ó¥É¤¹¤ë¤Ë¤Ï¡¢ -¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤ò +ソケットを何らかのプロセスにバインドするには、 +ローカルアドレスを .I in6_addr -·¿¤ÎÊÑ¿ô +型の変数 .I in6addr_any -¤«¤é¥³¥Ô¡¼¤·¤Æ¤¯¤ëɬÍפ¬¤¢¤ë¡£ -static ¤Ê½é´üÃÍ +からコピーしてくる必要がある。 +static な初期値 .B IN6ADDR_ANY_INIT -¤âÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¡¢¤³¤ì¤ÏÄê¿ô¼°¤ËŸ³«¤µ¤ì¤ë¡£ -¤³¤ì¤é¤Îξ¼Ô¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Ç¤¢¤ë¡£ +も用いることができ、これは定数式に展開される。 +これらの両者はネットワークバイトオーダーである。 .PP .\"O The IPv6 loopback address (::1) is available in the global .\"O .I in6addr_loopback @@ -89,11 +89,11 @@ static .\"O For initializations, .\"O .B IN6ADDR_LOOPBACK_INIT .\"O should be used. -IPv6 ¤Î¥ë¡¼¥×¥Ð¥Ã¥¯¥¢¥É¥ì¥¹ (::1) ¤Ï global ÊÑ¿ô +IPv6 のループバックアドレス (::1) は global 変数 .I in6addr_loopback -¤«¤é¼èÆÀ¤Ç¤­¤ë¡£½é´ü²½¤Ë¤Ï +から取得できる。初期化には .B IN6ADDR_LOOPBACK_INIT -¤òÍѤ¤¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +を用いるべきである。 .PP .\"O IPv4 connections can be handled with the v6 API by using the .\"O v4-mapped-on-v6 address type; @@ -101,24 +101,24 @@ IPv6 .\"O support both protocols. .\"O This is handled transparently by the address .\"O handling functions in the C library. -v4-mapped-on-v6 ¥¢¥É¥ì¥¹·¿¤òÍѤ¤¤ë¤³¤È¤Ç¡¢ -IPv4 Àܳ¤â v6 API ¤Ç°·¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤¦¤¹¤ì¤Ð¡¢¥×¥í¥°¥é¥à¤Ï v6 ¤Î API ¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤À¤±¤Ç¡¢ -ξÊý¤Î¥×¥í¥È¥³¥ë¤ò¥µ¥Ý¡¼¥È¤Ç¤­¤ë¡£ -v4-mapped-on-v6 ¥¢¥É¥ì¥¹·¿¤Ï C ¥é¥¤¥Ö¥é¥êÆâÉô¤Î¥¢¥É¥ì¥¹¤ò -°·¤¦´Ø¿ô¤Ë¤è¤Ã¤ÆÆ©²áŪ¤Ë½èÍý¤µ¤ì¤ë¡£ +v4-mapped-on-v6 アドレス型を用いることで、 +IPv4 接続も v6 API で扱うことができる。 +こうすれば、プログラムは v6 の API をサポートするだけで、 +両方のプロトコルをサポートできる。 +v4-mapped-on-v6 アドレス型は C ライブラリ内部のアドレスを +扱う関数によって透過的に処理される。 .PP .\"O IPv4 and IPv6 share the local port space. .\"O When you get an IPv4 connection .\"O or packet to a IPv6 socket, its source address will be mapped .\"O to v6 and it will be mapped to v6. -IPv4 ¤È IPv6 ¤Ï¥í¡¼¥«¥ë¥Ý¡¼¥È¶õ´Ö¤ò¶¦Í­¤¹¤ë¡£ -IPv4 ¤ÎÀܳ (¤Þ¤¿¤Ï¥Ñ¥±¥Ã¥È) ¤ò IPv6 ¥½¥±¥Ã¥È¤¬¼èÆÀ¤¹¤ë¤È¡¢ -ȯ¿®¸µ¥¢¥É¥ì¥¹¤¬ v6 ¤Ë¥Þ¥Ã¥×¤µ¤ì¡¢¤½¤ÎÀܳ (¥Ñ¥±¥Ã¥È) ¤â v6 ¤Ë¥Þ¥Ã¥×¤µ¤ì¤ë¡£ -.\"nakano: ºÇ¸å¤Î it ¤¬¤Ê¤Ë¤ò»Ø¤¹¤Î¤«¤ï¤«¤é¤ó¡£ +IPv4 と IPv6 はローカルポート空間を共有する。 +IPv4 の接続 (またはパケット) を IPv6 ソケットが取得すると、 +発信元アドレスが v6 にマップされ、その接続 (パケット) も v6 にマップされる。 +.\"nakano: 最後の it がなにを指すのかわからん。 .\"O .\"O .SS Address Format -.SS ¥¢¥É¥ì¥¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È +.SS アドレスのフォーマット .in +4n .nf struct sockaddr_in6 { @@ -155,56 +155,56 @@ struct in6_addr { .\"O contains the interface index (see .\"O .BR netdevice (7)) .I sin6_family -¤Ï¾ï¤Ë +は常に .B AF_INET6 -¤ËÀßÄꤵ¤ì¤ë¡£ +に設定される。 .I sin6_port -¤Ï¥×¥í¥È¥³¥ë¥Ý¡¼¥È¤Ç¤¢¤ë +はプロトコルポートである .RB ( ip (7) -¤Î +の .I sin_port -¤ò»²¾È)¡£ +を参照)。 .I sin6_flowinfo -¤Ï IPv6 ¤Î¥Õ¥í¡¼»ØÄê»Ò (flow identifier) ¤Ç¤¢¤ë¡£ +は IPv6 のフロー指定子 (flow identifier) である。 .I sin6_addr -¤Ï 128 ¥Ó¥Ã¥È¤Î IPv6 ¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +は 128 ビットの IPv6 アドレスである。 .I sin6_scope_id -¤Ï¥¢¥É¥ì¥¹¤Î¥¹¥³¡¼¥×¤Ë°Í¸¤·¤¿ ID ¤Ç¤¢¤ë -(¤³¤ì¤Ï Linux 2.4 ¤ÇƳÆþ¤µ¤ì¤¿)¡£ -Linux ¤Î¾ì¹ç¤Ï¡¢¤³¤ì¤Ï¥ê¥ó¥¯¥¹¥³¡¼¥×¥¢¥É¥ì¥¹¤Ç¤·¤«¥µ¥Ý¡¼¥È¤µ¤ì¤Ê¤¤¡£ -¤³¤Î¾ì¹ç +はアドレスのスコープに依存した ID である +(これは Linux 2.4 で導入された)。 +Linux の場合は、これはリンクスコープアドレスでしかサポートされない。 +この場合 .I sin6_scope_id -¤Ë¤Ï¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬´Þ¤Þ¤ì¤ë¤³¤È¤Ë¤Ê¤ë +にはインターフェースのインデックスが含まれることになる .RB ( netdevice (7) -¤ò»²¾È)¡£ +を参照)。 .PP .\"O IPv6 supports several address types: unicast to address a single .\"O host, multicast to address a group of hosts, .\"O anycast to address the nearest member of a group of hosts .\"O (not implemented in Linux), IPv4-on-IPv6 to .\"O address a IPv4 host, and other reserved address types. -IPv6 ¤Ï²¿¼ïÎफ¤Î¥¢¥É¥ì¥¹¥¿¥¤¥×¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -ñ°ì¤Î¥Û¥¹¥È¤ò¥¢¥É¥ì¥¹¤¹¤ë¤¿¤á¤Î unicast¡¢ -¥Û¥¹¥È¤Î¥°¥ë¡¼¥×¤ò¥¢¥É¥ì¥¹¤¹¤ë¤¿¤á¤Î multicast¡¢ -¥Û¥¹¥È¤Î¥°¥ë¡¼¥×Ãæ¤ÇºÇ¤â¶á¤¯¤Ë¤¤¤ë¤â¤Î¤ò¥¢¥É¥ì¥¹¤¹¤ë¤¿¤á¤Î anycast -(¤³¤ì¤Ï Linux ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤)¡¢ -IPv4 ¥Û¥¹¥È¤ò¥¢¥É¥ì¥¹¤¹¤ë¤¿¤á¤Î IPv4-on-IPv6¡£ -¾¤Ë¤âͽÌóºÑ¤ß¤Î¥¢¥É¥ì¥¹¥¿¥¤¥×¤¬¤¢¤ë¡£ +IPv6 は何種類かのアドレスタイプをサポートしている。 +単一のホストをアドレスするための unicast、 +ホストのグループをアドレスするための multicast、 +ホストのグループ中で最も近くにいるものをアドレスするための anycast +(これは Linux では実装されていない)、 +IPv4 ホストをアドレスするための IPv4-on-IPv6。 +他にも予約済みのアドレスタイプがある。 .PP .\"O The address notation for IPv6 is a group of 8 4-digit hexadecimal .\"O numbers, separated with a \(aq:\(aq. .\"O \&"::" stands for a string of 0 bits. .\"O Special addresses are ::1 for loopback and ::FFFF: .\"O for IPv4-mapped-on-IPv6. -IPv6 ¤Ç¤Î¥¢¥É¥ì¥¹É½µ­¤Ï 4 ·å¤Î 16 ¿Ê¿ô 8 ¸Ä¤«¤é¤Ê¤ê¡¢ -\(aq:\(aq ¤Ï¶èÀÚ¤êʸ»ú¤Ï¤Ç¡¢"::" ¤Ï 0 ¥Ó¥Ã¥È¤Îʸ»úÎó¤òɽ¤¹¡£ -Æüì¤Ê¥¢¥É¥ì¥¹¤È¤·¤Æ¡¢¥ë¡¼¥×¥Ð¥Ã¥¯¤òɽ¤¹ ::1¡¢ -IPv4-mapped-on-IPv6 ¤òɽ¤¹ ::FFFF:: ¤¬¤¢¤ë¡£ +IPv6 でのアドレス表記は 4 桁の 16 進数 8 個からなり、 +\(aq:\(aq は区切り文字はで、"::" は 0 ビットの文字列を表す。 +特殊なアドレスとして、ループバックを表す ::1、 +IPv4-mapped-on-IPv6 を表す ::FFFF:: がある。 .PP .\"O The port space of IPv6 is shared with IPv4. -IPv6 ¤Î¥Ý¡¼¥È¶õ´Ö¤Ï IPv4 ¤È¶¦Í­¤µ¤ì¤Æ¤¤¤ë¡£ +IPv6 のポート空間は IPv4 と共有されている。 .\"O .SS "Socket Options" -.SS ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó +.SS ソケットオプション .\"O IPv6 supports some protocol-specific socket options that can be set with .\"O .BR setsockopt (2) .\"O and read with @@ -212,16 +212,16 @@ IPv6 .\"O The socket option level for IPv6 is .\"O .BR IPPROTO_IPV6 . .\"O A boolean integer flag is zero when it is false, otherwise true. -IPv6 ¤Ï¥×¥í¥È¥³¥ë¸ÇÍ­¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤ò¤¤¤¯¤Ä¤«¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Ï +IPv6 はプロトコル固有のソケットオプションをいくつかサポートしている。 +これらは .BR setsockopt (2) -¤ÇÀßÄê¤Ç¤­¡¢ +で設定でき、 .BR getsockopt (2) -¤Ç¼èÆÀ¤Ç¤­¤ë¡£ -IPv6 ¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¥ì¥Ù¥ë¤Ï +で取得できる。 +IPv6 のソケットオプションレベルは .B IPPROTO_IPV6 -¤Ç¤¢¤ë¡£ -¥Ö¡¼¥ëÀ°¿ô¤Î¥Õ¥é¥°¤Ï¡¢0 ¤¬µ¶¤Ç¤¢¤ê¡¢¤½¤ì°Ê³°¤Ï¿¿¤Ç¤¢¤ë¡£ +である。 +ブール整数のフラグは、0 が偽であり、それ以外は真である。 .TP .B IPV6_ADDRFORM .\"O Turn an @@ -237,51 +237,51 @@ IPv6 .\"O This is useful to pass v4-mapped sockets as file descriptors to .\"O programs that don't know how to deal with the IPv6 API. .B AF_INET6 -¥½¥±¥Ã¥È¤òÊ̤Υ¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤Î¥½¥±¥Ã¥È¤ËÊѤ¨¤ë¡£ -¸½ºß¤Ï +ソケットを別のアドレスファミリーのソケットに変える。 +現在は .B AF_INET -¤Î¤ß¤¬Êѹ¹Àè¤Î¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤È¤·¤Æ¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤¬µö²Ä¤µ¤ì¤ë¤Î¤Ï¡¢IPv6 ¤¬Àܳ¤µ¤ì¡¢ -v4-mapped-on-v6 ¥¢¥É¥ì¥¹¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¤¿¾ì¹ç¤Ë¸Â¤é¤ì¤ë¡£ -°ú¤­¿ô¤Ï +のみが変更先のアドレスファミリーとしてサポートされている。 +これが許可されるのは、IPv6 が接続され、 +v4-mapped-on-v6 アドレスにバインドされた場合に限られる。 +引き数は .B AF_INET -¤¬Æþ¤Ã¤Æ¤¤¤ëÀ°¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -v4-mapped ¥½¥±¥Ã¥È¤ò¡¢IPv6 API ¤ò°·¤¨¤Ê¤¤¥×¥í¥°¥é¥à¤ËÂФ·¤Æ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤È¤·¤ÆÅϤ¹¾ì¹ç¤ËÊØÍø¡£ +が入っている整数へのポインタである。 +v4-mapped ソケットを、IPv6 API を扱えないプログラムに対して +ファイルディスクリプターとして渡す場合に便利。 .TP .B IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP .\"O Control membership in multicast groups. .\"O Argument is a pointer to a .\"O .I struct ipv6_mreq .\"O structure. -multicast ¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð¡¼¤òÀ©¸æ¤¹¤ë¡£ -°ú¤­¿ô¤Ï +multicast グループのメンバーを制御する。 +引き数は .I struct ipv6_mreq -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¡£ +構造体へのポインタ。 .\"O .\" FIXME IPV6_CHECKSUM is not documented, and probably should be .\"O .\" FIXME IPV6_JOIN_ANYCAST is not documented, and probably should be .\"O .\" FIXME IPV6_LEAVE_ANYCAST is not documented, and probably should be -.\" FIXME IPV6_CHECKSUM ¤Ïµ­½Ò¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢µ­½Ò¤¹¤Ù¤­¤À¤í¤¦¡£ -.\" FIXME IPV6_JOIN_ANYCAST ¤Ïµ­½Ò¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢µ­½Ò¤¹¤Ù¤­¤À¤í¤¦¡£ -.\" FIXME IPV6_LEAVE_ANYCAST ¤Ïµ­½Ò¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢µ­½Ò¤¹¤Ù¤­¤À¤í¤¦¡£ +.\" FIXME IPV6_CHECKSUM は記述されていないが、記述すべきだろう。 +.\" FIXME IPV6_JOIN_ANYCAST は記述されていないが、記述すべきだろう。 +.\" FIXME IPV6_LEAVE_ANYCAST は記述されていないが、記述すべきだろう。 .\"O .\" FIXME IPV6_RECVPKTINFO is not documented, and probably should be .\"O .\" FIXME IPV6_2292PKTINFO is not documented, and probably should be .\"O .\" FIXME there are probably many other IPV6_* socket options that .\"O .\" should be documented -.\" FIXME IPV6_RECVPKTINFO ¤Ïµ­½Ò¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢µ­½Ò¤¹¤Ù¤­¤À¤í¤¦¡£ -.\" FIXME IPV6_2292PKTINFO ¤Ïµ­½Ò¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢µ­½Ò¤¹¤Ù¤­¤À¤í¤¦¡£ -.\" FIXME ¾¤Ë¤â¿¤¯¤Îµ­½Ò¤¹¤Ù¤­ IPV6_* ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬¤¢¤ë¤À¤í¤¦¡£ +.\" FIXME IPV6_RECVPKTINFO は記述されていないが、記述すべきだろう。 +.\" FIXME IPV6_2292PKTINFO は記述されていないが、記述すべきだろう。 +.\" FIXME 他にも多くの記述すべき IPV6_* ソケットオプションがあるだろう。 .TP .B IPV6_MTU .\"O Set the MTU to be used for the socket. .\"O The MTU is limited by the device .\"O MTU or the path MTU when path MTU discovery is enabled. .\"O Argument is a pointer to integer. -¤½¤Î¥½¥±¥Ã¥È¤ËÂФ·¤ÆÍѤ¤¤ë MTU ¤ÎÃͤòÀßÄꤹ¤ë¡£ -MTU ¤ÎÂ礭¤µ¤Ï¡¢ -¤½¤Î¥Ç¥Ð¥¤¥¹¤Î MTU ¤Þ¤¿¤Ï (Path MTU Discovery -¤¬²Äǽ¤Ê¤é) ¤½¤Î·ÐÏ©¤Î MTU ¤ÎÂ礭¤µ°Ê²¼¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -°ú¤­¿ô¤ÏÀ°¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ +そのソケットに対して用いる MTU の値を設定する。 +MTU の大きさは、 +そのデバイスの MTU または (Path MTU Discovery +が可能なら) その経路の MTU の大きさ以下でなければならない。 +引き数は整数へのポインタ。 .TP .B IPV6_MTU_DISCOVER .\"O Control path-MTU discovery on the socket. @@ -290,12 +290,12 @@ MTU .\"O in .\"O .BR ip (7) .\"O for details. -¤½¤Î¥½¥±¥Ã¥È¤Ç¤Î Path MTU Discovery ¤òÀ©¸æ¤¹¤ë¡£ -¾ÜºÙ¤Ï +そのソケットでの Path MTU Discovery を制御する。 +詳細は .BR ip (7) -¤Î +の .B IP_MTU_DISCOVER -¤ò»²¾È¡£ +を参照。 .TP .B IPV6_MULTICAST_HOPS .\"O Set the multicast hop limit for the socket. @@ -303,10 +303,10 @@ MTU .\"O integer. .\"O \-1 in the value means use the route default, otherwise it should be .\"O between 0 and 255. -¤½¤Î¥½¥±¥Ã¥È¤Ç¤Î multicast ¤Î hop ¿ô¤Î¾å¸ÂÃͤòÀßÄꤹ¤ë¡£ -°ú¤­¿ô¤ÏÀ°¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -\-1 ¤ò»ØÄꤹ¤ë¤È·ÐÏ©¤Î¥Ç¥Õ¥©¥ë¥È¤òÍѤ¤¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤«¤é 255 ¤ÎÈϰϤò»ØÄꤹ¤ë¡£ +そのソケットでの multicast の hop 数の上限値を設定する。 +引き数は整数へのポインタである。 +\-1 を指定すると経路のデフォルトを用いることを意味する。 +それ以外の場合は 0 から 255 の範囲を指定する。 .TP .B IPV6_MULTICAST_IF .\"O Set the device for outgoing multicast packets on the socket. @@ -319,22 +319,22 @@ MTU .\"O The argument is a pointer to an interface index (see .\"O .BR netdevice (7)) .\"O in an integer. -¤½¤Î¥½¥±¥Ã¥È¤Ç¤Î¡¢Á÷¿® multicast ¥Ñ¥±¥Ã¥È¤ËÍѤ¤¤ë¥Ç¥Ð¥¤¥¹¤òÀßÄꤹ¤ë¡£ -¤³¤ì¤Ï +そのソケットでの、送信 multicast パケットに用いるデバイスを設定する。 +これは .B SOCK_DGRAM -¤ª¤è¤Ó +および .B SOCK_RAW -³Æ¥½¥±¥Ã¥È¤Ç¤Î¤ßµö¤µ¤ì¤ë¡£ -°ú¤­¿ô¤Ï¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÎÀ°¿ôÃÍ +各ソケットでのみ許される。 +引き数はインターフェースのインデックスの整数値 .RB ( netdevice (7) -¤ò»²¾È) ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +を参照) へのポインタである。 .TP .B IPV6_MULTICAST_LOOP .\"O Control whether the socket sees multicast packets that it has send itself. .\"O Argument is a pointer to boolean. -¥½¥±¥Ã¥È¤¬¡¢¼«Ê¬¼«¿È¤ÎÁ÷¿®¤·¤¿ -multicast ¥Ñ¥±¥Ã¥È¤ò´Æ»ë¤¹¤ë¤«¤É¤¦¤«¤òÀ©¸æ¤¹¤ë¡£ -°ú¤­¿ô¤Ï¥Ö¡¼¥ëÃͤؤΥݥ¤¥ó¥¿¡£ +ソケットが、自分自身の送信した +multicast パケットを監視するかどうかを制御する。 +引き数はブール値へのポインタ。 .TP .B IPV6_PKTINFO .\"O Set delivery of the @@ -346,46 +346,46 @@ multicast .\"O .B SOCK_RAW .\"O sockets. .\"O Argument is a pointer to a boolean value in an integer. -¥Ç¡¼¥¿¥°¥é¥à¤ÎÅþÃå»þ¤Ë¤ª¤±¤ë +データグラムの到着時における .B IPV6_PKTINFO -À©¸æ¥á¥Ã¥»¡¼¥¸¤òÇÛÁ÷¤¹¤ë¤«¤É¤¦¤«¤òÀßÄꤹ¤ë¡£ +制御メッセージを配送するかどうかを設定する。 .B SOCK_DGRAM -¥½¥±¥Ã¥È¤Þ¤¿¤Ï +ソケットまたは .B SOCK_RAW -¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤Î¤ßµö²Ä¤µ¤ì¤ë¡£ -°ú¤­¿ô¤Ï¥Ö¡¼¥ëÃͤÎÆþ¤Ã¤¿À°¿ô¡£ +ソケットに対してのみ許可される。 +引き数はブール値の入った整数。 .TP .nh .B IPV6_RTHDR, IPV6_AUTHHDR, IPV6_DSTOPTS, IPV6_HOPOPTS, IPV6_FLOWINFO, IPV6_HOPLIMIT .hy .\"O Set delivery of control messages for incoming datagrams containing .\"O extension headers from the received packet. -¼õ¿®¥Ñ¥±¥Ã¥È¤Î¥Ç¡¼¥¿¥°¥é¥à¤Ë³ÈÄ¥¥Ø¥Ã¥À¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤Î¡¢ -À©¸æ¥á¥Ã¥»¡¼¥¸¤ÎÇÛÁ÷¤òÀßÄꤹ¤ë¡£ +受信パケットのデータグラムに拡張ヘッダが含まれている場合の、 +制御メッセージの配送を設定する。 .\"O .B IPV6_RTHDR .\"O delivers the routing header, .BR IPV6_RTHDR : -routing ¥Ø¥Ã¥À¤òÇÛÁ÷¤¹¤ë¤«¤É¤¦¤«¡£ +routing ヘッダを配送するかどうか。 .\"O .B IPV6_AUTHHDR .\"O delivers the authentication header, .BR IPV6_AUTHHDR : -authentication ¥Ø¥Ã¥À¤òÇÛÁ÷¤¹¤ë¤«¤É¤¦¤«¡£ +authentication ヘッダを配送するかどうか。 .\"O .B IPV6_DSTOPTS .\"O delivers the destination options, .BR IPV6_DSTOPTS : -destination ¥ª¥×¥·¥ç¥ó¤òÇÛÁ÷¤¹¤ë¤«¤É¤¦¤«¡£ +destination オプションを配送するかどうか。 .\"O .B IPV6_HOPOPTS .\"O delivers the hop options, .BR IPV6_HOPOPTS : -hop ¥ª¥×¥·¥ç¥ó¤òÇÛÁ÷¤¹¤ë¤«¤É¤¦¤«¡£ +hop オプションを配送するかどうか。 .\"O .B IPV6_FLOWINFO .\"O delivers an integer containing the flow ID, .BR IPV6_FLOWINFO : -flow ID ¤ò´Þ¤àÀ°¿ô¤òÇÛÁ÷¤¹¤ë¤«¤É¤¦¤«¡£ +flow ID を含む整数を配送するかどうか。 .\"O .B IPV6_HOPLIMIT .\"O delivers an integer containing the hop count of the packet. .BR IPV6_HOPLIMIT : -¥Ñ¥±¥Ã¥È¤Î hop ¥«¥¦¥ó¥È¤ò´Þ¤àÀ°¿ô¤òÇÛÁ÷¤¹¤ë¤«¤É¤¦¤«¡£ +パケットの hop カウントを含む整数を配送するかどうか。 .\"O The control messages have the same type as the socket option. .\"O All these header options can also be set for outgoing packets .\"O by putting the appropriate control message into the control buffer of @@ -396,16 +396,16 @@ flow ID .\"O .B SOCK_RAW .\"O sockets. .\"O Argument is a pointer to a boolean value. -À©¸æ¥á¥Ã¥»¡¼¥¸¤Ï¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤Î¤â¤Î¤ÈƱ¤¸¥¿¥¤¥×¤ò»ý¤Ä¡£ -¤³¤ì¤é¤Î¤¹¤Ù¤Æ¤Î¥Ø¥Ã¥À¥ª¥×¥·¥ç¥ó¤Ï¡¢ -ŬÀÚ¤ÊÀ©¸æ¥á¥Ã¥»¡¼¥¸¤ò +制御メッセージはソケットオプションのものと同じタイプを持つ。 +これらのすべてのヘッダオプションは、 +適切な制御メッセージを .BR sendmsg (2) -¤ÎÀ©¸æ¥Ð¥Ã¥Õ¥¡¡¼¤Ë½ñ¤­¤³¤á¤Ð¡¢ -Á÷¿®¥Ñ¥±¥Ã¥È¤Ë¤Ç¤âÀßÄê¤Ç¤­¤ë¡£ +の制御バッファーに書きこめば、 +送信パケットにでも設定できる。 .B SOCK_DGRAM -¥½¥±¥Ã¥È¤Þ¤¿¤Ï +ソケットまたは .B SOCK_RAW -¥½¥±¥Ã¥È¤Ç¤Î¤ßµö¤µ¤ì¤ë¡£°ú¤­¿ô¤Ï¥Ö¡¼¥ëÃͤؤΥݥ¤¥ó¥¿¡£ +ソケットでのみ許される。引き数はブール値へのポインタ。 .TP .B IPV6_RECVERR .\"O Control receiving of asynchronous error options. @@ -415,13 +415,13 @@ flow ID .\"O .BR ip (7) .\"O for details. .\"O Argument is a pointer to boolean. -ÈóƱ´ü¥¨¥é¡¼ (asynchronous error) ¥ª¥×¥·¥ç¥ó¤Î¼õ¿®¤òÀ©¸æ¤¹¤ë¡£ -¾ÜºÙ¤Ï +非同期エラー (asynchronous error) オプションの受信を制御する。 +詳細は .BR ip (7) -¤Î +の .B IP_RECVERR -¤ò»²¾È¡£ -°ú¤­¿ô¤Ï¥Ö¡¼¥ëÃͤؤΥݥ¤¥ó¥¿¡£ +を参照。 +引き数はブール値へのポインタ。 .TP .B IPV6_ROUTER_ALERT .\"O Pass forwarded packets containing a router alert hop-by-hop option to @@ -429,23 +429,23 @@ flow ID .\"O Only allowed for SOCK_RAW sockets. .\"O The tapped packets are not forwarded by the kernel, it is the .\"O user's responsibility to send them out again. -¤³¤Î¥½¥±¥Ã¥È¤Ç¡¢router alert hop-by-hop ¥ª¥×¥·¥ç¥ó¤ÎÉÕ¤¤¤¿Å¾Á÷¥Ñ¥±¥Ã¥È¤ò -Ä̤¹¤«¤É¤¦¤«¤òÀ©¸æ¤¹¤ë¡£ +このソケットで、router alert hop-by-hop オプションの付いた転送パケットを +通すかどうかを制御する。 .B SOCK_RAW -¥½¥±¥Ã¥È¤Ç¤Î¤ßµö²Ä¤µ¤ì¤ë¡£ -tap ¤µ¤ì¤¿¥Ñ¥±¥Ã¥È¤Ï¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ¤ÏžÁ÷¤µ¤ì¤Ê¤¤¡£¤½¤¦¤·¤¿¥Ñ¥±¥Ã¥È¤ò -ºÆÅÙÁ÷¿®¤¹¤ë¤Î¤Ï¥æ¡¼¥¶¡¼¤ÎÀÕǤ¤Ç¤¢¤ë¡£ +ソケットでのみ許可される。 +tap されたパケットはカーネルによっては転送されない。そうしたパケットを +再度送信するのはユーザーの責任である。 .\"O Argument is a pointer to an integer. .\"O A positive integer indicates a router alert option value to intercept. .\"O Packets carrying a router alert option with a value field containing .\"O this integer will be delivered to the socket. .\"O A negative integer disables delivery of packets with router alert options .\"O to this socket. -°ú¤­¿ô¤ÏÀ°¿ô (integer) ¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ -Àµ¤ÎÀ°¿ô¤Ï˵¼õ¤ò¹Ô¤¦ router alert ¥ª¥×¥·¥ç¥óÃͤò¼¨¤¹¡£ -¥ª¥×¥·¥ç¥óÃͤ¬¤³¤ÎÀ°¿ô¤Ç¤¢¤ë router alert ¥ª¥×¥·¥ç¥ó¤ÎÉÕ¤¤¤¿¥Ñ¥±¥Ã¥È¤Ï -¥½¥±¥Ã¥È¤ËÇÛÁ÷¤µ¤ì¤ë¡£Éé¤ÎÀ°¿ô¤ò»ØÄꤹ¤ë¤È¡¢¤³¤Î¥½¥±¥Ã¥È¤Ø¤Î -router alert ¥ª¥×¥·¥ç¥ó¤ÎÉÕ¤¤¤¿¥Ñ¥±¥Ã¥È¤ÎÇÛÁ÷¤¬¹Ô¤ï¤ì¤Ê¤¤¡£ +引き数は整数 (integer) へのポインタ。 +正の整数は傍受を行う router alert オプション値を示す。 +オプション値がこの整数である router alert オプションの付いたパケットは +ソケットに配送される。負の整数を指定すると、このソケットへの +router alert オプションの付いたパケットの配送が行われない。 .\" FLOWLABEL_MGR, FLOWINFO_SEND .TP .B IPV6_UNICAST_HOPS @@ -453,49 +453,49 @@ router alert .\"O Argument is a pointer to an integer. .\"O \-1 in the value means use the route default, .\"O otherwise it should be between 0 and 255. -¤½¤Î¥½¥±¥Ã¥È¤Ç¤Î unicast ¤Î hop ¿ô¤Î¾å¸ÂÃͤòÀßÄꤹ¤ë¡£ -°ú¤­¿ô¤ÏÀ°¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -\-1 ¤ò»ØÄꤹ¤ë¤È·ÐÏ©¤Î¥Ç¥Õ¥©¥ë¥È¤òÍѤ¤¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤«¤é 255 ¤ÎÈϰϤò»ØÄꤹ¤ë¡£ +そのソケットでの unicast の hop 数の上限値を設定する。 +引き数は整数へのポインタである。 +\-1 を指定すると経路のデフォルトを用いることを意味する。 +それ以外の場合は 0 から 255 の範囲を指定する。 .TP .\"O .BR IPV6_V6ONLY " (since Linux 2.4.21 and 2.6)" -.BR IPV6_V6ONLY " (Linux 2.4.21 °Ê¹ß¤ª¤è¤Ó 2.6 °Ê¹ß)" +.BR IPV6_V6ONLY " (Linux 2.4.21 以降および 2.6 以降)" .\" See RFC 3493 .\"O If this flag is set to true (nonzero), then the socket is restricted .\"O to sending and receiving IPv6 packets only. .\"O In this case, an IPv4 and an IPv6 application can bind .\"O to a single port at the same time. -¤³¤Î¥Õ¥é¥°¤ò¿¿ (0 °Ê³°) ¤ËÀßÄꤹ¤ë¤È¡¢¤½¤Î¥½¥±¥Ã¥È¤Ï IPv6 ¥Ñ¥±¥Ã¥È¤À¤±¤ò -Á÷¼õ¿®¤¹¤ë¤è¤¦¤ËÀ©¸Â¤µ¤ì¤ë¡£ -¤³¤Î¾ì¹ç¡¢IPv4 ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤È IPv6 ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬Æ±»þ¤Ë -°ì¤Ä¤Î¥Ý¡¼¥È¤ò¥Ð¥¤¥ó¥É¤Ç¤­¤ë¡£ +このフラグを真 (0 以外) に設定すると、そのソケットは IPv6 パケットだけを +送受信するように制限される。 +この場合、IPv4 アプリケーションと IPv6 アプリケーションが同時に +一つのポートをバインドできる。 .\"O If this flag is set to false (zero), .\"O then the socket can be used to send and receive packets .\"O to and from an IPv6 address or an IPv4-mapped IPv6 address. -¤³¤Î¥Õ¥é¥°¤òµ¶ (0) ¤ËÀßÄꤹ¤ë¤È¡¢¤½¤Î¥½¥±¥Ã¥È¤Ï¥Ñ¥±¥Ã¥È¤ÎÁ÷¼õ¿®¤Ë -IPv6 ¥¢¥É¥ì¥¹¤È IPv4-mapped IPv6 ¥¢¥É¥ì¥¹¤ÎξÊý¤ò»ÈÍѤǤ­¤ë¡£ +このフラグを偽 (0) に設定すると、そのソケットはパケットの送受信に +IPv6 アドレスと IPv4-mapped IPv6 アドレスの両方を使用できる。 .\"O The argument is a pointer to a boolean value in an integer. -°ú¤­¿ô¤Ï¥Ö¡¼¥ëÃͤÎÆþ¤Ã¤¿À°¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +引き数はブール値の入った整数へのポインタである。 .\"O The default value for this flag is defined by the contents of the file .\"O .IR /proc/sys/net/ipv6/bindv6only . .\"O The default value for that file is 0 (false). -¤³¤Î¥Õ¥é¥°¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤϥե¡¥¤¥ë +このフラグのデフォルト値はファイル .I /proc/sys/net/ipv6/bindv6only -¤ÎÆâÍƤˤè¤êÄêµÁ¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 0 (µ¶) ¤Ç¤¢¤ë¡£ +の内容により定義される。 +このファイルのデフォルト値は 0 (偽) である。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The older .\"O .I libinet6 .\"O libc5 based IPv6 API implementation for Linux is not described here .\"O and may vary in details. -IPv6 API ¤ò libc5 ¥Ù¡¼¥¹¤Ç Linux ¸þ¤±¤Ë¼ÂÁõ¤·¤¿¡¢°ÊÁ°¤Î +IPv6 API を libc5 ベースで Linux 向けに実装した、以前の .I libinet6 -¤Ë¤Ä¤¤¤Æ¤Ï¤³¤³¤Ç¤Ïµ­½Ò¤·¤Æ¤¤¤Ê¤¤¡£ -¤ª¤½¤é¤¯ºÙ¤«¤¤¤È¤³¤í¤Ë¤ÏÁê°ãÅÀ¤¬¤¢¤ë¤À¤í¤¦¡£ +についてはここでは記述していない。 +おそらく細かいところには相違点があるだろう。 .PP .\"O Linux 2.4 will break binary compatibility for the .\"O .I sockaddr_in6 @@ -512,20 +512,20 @@ IPv6 API .\"O into other structures may not be. .\"O This is not .\"O a problem for 32bit hosts like i386. -Linux 2.4 ¤Ç¤Ï 64 ¥Ó¥Ã¥È¤Î¥Û¥¹¥È¤ËÂФ·¤Æ +Linux 2.4 では 64 ビットのホストに対して .I sockaddr_in6 -¤Î¥Ð¥¤¥Ê¥ê¸ß´¹À­¤¬Êݤ¿¤ì¤Æ¤¤¤Ê¤¤¡£ +のバイナリ互換性が保たれていない。 .I in6_addr -¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤¬Êѹ¹¤µ¤ì¡¢¤Þ¤¿ +のアラインメントが変更され、また .I sin6_scope_id -¥Õ¥£¡¼¥ë¥É¤¬¿·¤¿¤ËÄɲ䵤줿¤«¤é¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¸ß´¹À­¤ÏÊݤ¿¤ì¤Æ¤¤¤ë¤¬¡¢ +フィールドが新たに追加されたからである。 +カーネルインターフェースの互換性は保たれているが、 .I sockaddr_in6 -¤ä +や .I in6_addr -¤ò¾¤Î¹½Â¤ÂΤ˴ޤó¤Ç¤¤¤ë¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï -Êݤ¿¤ì¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤ì¤Ï i386 ¤Î¤è¤¦¤Ê 32 ¥Ó¥Ã¥È¤Î¥Û¥¹¥È¤Ç¤ÏÌäÂê¤Ë¤Ê¤é¤Ê¤¤¡£ +を他の構造体に含んでいるようなプログラムでは +保たれないかもしれない。 +これは i386 のような 32 ビットのホストでは問題にならない。 .PP .\"O The .\"O .I sin6_flowinfo @@ -535,15 +535,15 @@ Linux 2.4 .\"O Some programs that pass a longer address buffer and then .\"O check the outgoing address length may break. .I sin6_flowinfo -¥Õ¥£¡¼¥ë¥É¤Ï Linux 2.4 ¤ÇÅо줷¤¿¡£ -¤³¤ì¤¬ÅϤµ¤ì¤¿¥¢¥É¥ì¥¹Ä¹¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤È¡¢ -¥«¡¼¥Í¥ë¤ËÆ©²áŪ¤ËÅϤµ¤ì¡¢Æɤޤì¤ë¡£ -.\"nakano ¤³¤³¤ï¤«¤é¤Ê¤¤¤Ç¤¹... -¤è¤êŤ¤¥¢¥É¥ì¥¹¥Ð¥Ã¥Õ¥¡¤òÅϤ·¡¢ -¤½¤·¤ÆÁ÷¿®¥¢¥É¥ì¥¹¤ÎŤµ¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ï -¤¦¤Þ¤¯Æ°¤«¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ +フィールドは Linux 2.4 で登場した。 +これが渡されたアドレス長に含まれていると、 +カーネルに透過的に渡され、読まれる。 +.\"nakano ここわからないです... +より長いアドレスバッファを渡し、 +そして送信アドレスの長さをチェックするようなプログラムは +うまく動かないかもしれない。 .\"O .SH "NOTES" -.SH Ãí°Õ +.SH 注意 .\"O The .\"O .I sockaddr_in6 .\"O structure is bigger than the generic @@ -554,39 +554,39 @@ Linux 2.4 .\"O .I struct sockaddr_storage .\"O for that instead. .I sockaddr_in6 -¹½Â¤ÂΤϥ¸¥§¥Í¥ê¥Ã¥¯¤Ê +構造体はジェネリックな .I sockaddr -¤è¤ê¤âÂ礭¤¤¡£ -¤¹¤Ù¤Æ¤Î¥¢¥É¥ì¥¹¥¿¥¤¥×¤¬ +よりも大きい。 +すべてのアドレスタイプが .I struct sockaddr -¤ÎÃæ¤Ë°ÂÁ´¤ËǼ¤á¤é¤ì¤ë¤È²¾Äꤷ¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤Ï¡¢Âå¤ï¤ê¤Ë +の中に安全に納められると仮定しているプログラムは、代わりに .I struct sockaddr_storage -¤òÍѤ¤¤ë¤è¤¦¤ËÊѹ¹¤¹¤ëɬÍפ¬¤¢¤ë¡£ +を用いるように変更する必要がある。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O The IPv6 extended API as in RFC\ 2292 is currently only partly .\"O implemented; .\"O although the 2.2 kernel has near complete support for receiving options, .\"O the macros for generating IPv6 options are missing in glibc 2.1. -IPv6 ³ÈÄ¥ API ¤Ï¡¢¸½ºß¤Þ¤À RFC\ 2292 ¤ò´°Á´¤Ë¤Ï¼ÂÁõ¤·¤Æ¤¤¤Ê¤¤¡£ -2.2 ¥«¡¼¥Í¥ë¤Ï¼õ¿®¥ª¥×¥·¥ç¥ó¤ò¤Û¤Ü´°Á´¤Ë¥µ¥Ý¡¼¥È¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤¬¡¢ -glibc2.1 ¤Ë¤Ï IPv6 ¥ª¥×¥·¥ç¥ó¤òÀ¸À®¤¹¤ë¥Þ¥¯¥í¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤¤¡£ +IPv6 拡張 API は、現在まだ RFC\ 2292 を完全には実装していない。 +2.2 カーネルは受信オプションをほぼ完全にサポートサポートしているが、 +glibc2.1 には IPv6 オプションを生成するマクロが存在していない。 .PP .\"O IPSec support for EH and AH headers is missing. -EH ¤ª¤è¤Ó AH ¥Ø¥Ã¥À ¤Ç¤Î IPSec ¤Î¥µ¥Ý¡¼¥È¤Ï¸ºß¤·¤Ê¤¤¡£ +EH および AH ヘッダ での IPSec のサポートは存在しない。 .PP .\"O Flow label management is not complete and not documented here. -¥Õ¥í¡¼¥é¥Ù¥ë´ÉÍý¤Ï¤Þ¤À´°Á´¤Ç¤Ê¤¯¡¢¤³¤³¤Ë¤âµ­½Ò¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +フローラベル管理はまだ完全でなく、ここにも記述されていない。 .PP .\"O This man page is not complete. -¤³¤Î man ¥Ú¡¼¥¸¤Ï¤Þ¤À´°À®¤·¤Æ¤¤¤Ê¤¤¡£ +この man ページはまだ完成していない。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cmsg (3), .BR ip (7) .LP RFC\ 2553: IPv6 BASIC API. .\"O Linux tries to be compliant to this. -Linux ¤Ï¤³¤Î RFC ¤Ë½àµò¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤ë¡£ +Linux はこの RFC に準拠するようにしている。 .LP RFC\ 2460: IPv6 specification. diff --git a/draft/man7/iso_8859-1.7 b/draft/man7/iso_8859-1.7 index 412ca7c9..230bd346 100644 --- a/draft/man7/iso_8859-1.7 +++ b/draft/man7/iso_8859-1.7 @@ -34,89 +34,89 @@ .\" .TH ISO_8859-1 7 1999-05-31 "Linux" "Linux Programmer's Manual" .nh -.SH ̾Á° -iso_8859-1 \- ISO 8859-1 ʸ»ú½¸¹ç¤Î 8¿Ê¿ô¡¢10¿Ê¿ô¡¢16¿Ê¿ô¤Ë¤è¤ëÉä¹æ²½ -.SH ÀâÌÀ -ISO 8859 µ¬³Ê¤Ï ASCII ʸ»ú½¸¹ç (ISO 6460IRV ¤È¤·¤Æ¤âÃΤé¤ì¤Æ¤¤¤ë) ¤Î -¤¤¤¯¤Ä¤«¤Î 8 ¥Ó¥Ã¥È³ÈÄ¥¤ò´Þ¤ó¤Ç¤¤¤ë¡£Æä˽ÅÍ×¤Ê¤Î¤Ï ISO 8859-1¡¢ -"¥é¥Æ¥ó¡¦¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È No. 1" ¤Ç¡¢¹­¤¯¼ÂÁõ¤µ¤ì¡¢´û¤Ë ASCII ¤ËÂå¤ï¤Ã¤Æ -»ö¼Â¾å¤Îɸ½à¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤è¤¦¤Ë¤ß¤¨¤ë¡£ +.SH 名前 +iso_8859-1 \- ISO 8859-1 文字集合の 8進数、10進数、16進数による符号化 +.SH 説明 +ISO 8859 規格は ASCII 文字集合 (ISO 6460IRV としても知られている) の +いくつかの 8 ビット拡張を含んでいる。特に重要なのは ISO 8859-1、 +"ラテン・アルファベット No. 1" で、広く実装され、既に ASCII に代わって +事実上の標準になっているようにみえる。 .P -ISO 8859-1 ¤Ï°Ê²¼¤Î¸À¸ì¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë: ¥¢¥Õ¥ê¥«¡¼¥ó¥¹¸ì¡¢¥Ð¥¹¥¯¸ì¡¢ -¥«¥¿¥í¥Ë¥¢¸ì¡¢¥Ç¥ó¥Þ¡¼¥¯¸ì¡¢¥ª¥é¥ó¥À¸ì¡¢±Ñ¸ì¡¢¥Õ¥§¥í¡¼¸ì¡¢¥Õ¥£¥ó¥é¥ó¥É¸ì¡¢ -¥Õ¥é¥ó¥¹¸ì¡¢¥¬¥ê¥·¥¢¸ì¡¢¥É¥¤¥Ä¸ì¡¢¥¢¥¤¥¹¥é¥ó¥É¸ì¡¢¥¢¥¤¥ë¥é¥ó¥É¸ì¡¢¥¤¥¿¥ê¥¢¸ì¡¢ -¥Î¥ë¥¦¥§¡¼¸ì¡¢¥Ý¥ë¥È¥¬¥ë¸ì¡¢¥¹¥³¥Ã¥È¥é¥ó¥É¸ì¡¢¥¹¥Ú¥¤¥ó¸ì¡¢¥¹¥¦¥§¡¼¥Ç¥ó¸ì +ISO 8859-1 は以下の言語をサポートしている: アフリカーンス語、バスク語、 +カタロニア語、デンマーク語、オランダ語、英語、フェロー語、フィンランド語、 +フランス語、ガリシア語、ドイツ語、アイスランド語、アイルランド語、イタリア語、 +ノルウェー語、ポルトガル語、スコットランド語、スペイン語、スウェーデン語 .P -ISO 8859-1 ¤Îʸ»ú¤Ï ISO 10646 (Unicode) ¤ÎºÇ½é¤Î 256 ʸ»ú¤Ç¤¢¤ë¤³¤È¤Ë -Ãí°Õ¤·¤Æ¤Û¤·¤¤¡£ -.SS "ISO 8859 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È" -´°Á´¤Ê ISO 8859 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Ï°Ê²¼¤Î¤â¤Î¤ò´Þ¤ó¤Ç¤¤¤ë: +ISO 8859-1 の文字は ISO 10646 (Unicode) の最初の 256 文字であることに +注意してほしい。 +.SS "ISO 8859 アルファベット" +完全な ISO 8859 アルファベットは以下のものを含んでいる: .TS l l. -ISO 8859-1 À¾¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-1) -ISO 8859-2 Ãæ±û¤ª¤è¤ÓÅì¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-2) -ISO 8859-3 ÅìÆî¥è¡¼¥í¥Ã¥Ñ¤ä¤½¤Î¾¤Î¸À¸ì (Latin-3) -ISO 8859-4 ¥¹¥«¥ó¥¸¥Ê¥Ó¥¢/¥Ð¥ë¥È¸ìÇɤθÀ¸ì (Latin-4) -ISO 8859-5 ¥é¥Æ¥ó/¥­¥ê¥ëʸ»ú -ISO 8859-6 ¥é¥Æ¥ó/¥¢¥é¥Ó¥¢¸ì -ISO 8859-7 ¥é¥Æ¥ó/¥®¥ê¥·¥ã¸ì -ISO 8859-8 ¥é¥Æ¥ó/¥Ø¥Ö¥é¥¤¸ì -ISO 8859-9 ¥È¥ë¥³¸ì½¤Àµ¤ò¹Ô¤Ê¤Ã¤¿ Latin-1 (Latin-5) -ISO 8859-10 ¥é¥Ã¥×/¥Î¥ë¥Ç¥£¥Ã¥¯/¥¨¥¹¥­¥â¡¼¤Î¸À¸ì (Latin-6) -ISO 8859-11 ¥é¥Æ¥ó/¥¿¥¤¸ì -ISO 8859-13 ¥Ð¥ë¥È½ô¹ñ¤Î¸À¸ì (Latin-7) -ISO 8859-14 ¥±¥ë¥È¸ì (Latin-8) -ISO 8859-15 À¾¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-9) -ISO 8859-16 ¥ë¡¼¥Þ¥Ë¥¢¸ì (Latin-10) +ISO 8859-1 西ヨーロッパの言語 (Latin-1) +ISO 8859-2 中央および東ヨーロッパの言語 (Latin-2) +ISO 8859-3 東南ヨーロッパやその他の言語 (Latin-3) +ISO 8859-4 スカンジナビア/バルト語派の言語 (Latin-4) +ISO 8859-5 ラテン/キリル文字 +ISO 8859-6 ラテン/アラビア語 +ISO 8859-7 ラテン/ギリシャ語 +ISO 8859-8 ラテン/ヘブライ語 +ISO 8859-9 トルコ語修正を行なった Latin-1 (Latin-5) +ISO 8859-10 ラップ/ノルディック/エスキモーの言語 (Latin-6) +ISO 8859-11 ラテン/タイ語 +ISO 8859-13 バルト諸国の言語 (Latin-7) +ISO 8859-14 ケルト語 (Latin-8) +ISO 8859-15 西ヨーロッパの言語 (Latin-9) +ISO 8859-16 ルーマニア語 (Latin-10) .TE -.SS "ISO 8859-1 ʸ»ú" +.SS "ISO 8859-1 文字" .\"O The following table displays the characters in ISO 8859-1 (Latin-1), .\"O which are printable and unlisted in the .\"O .BR ascii (7) .\"O manual page. .\"O The fourth column will only show the proper glyphs .\"O in an environment configured for ISO 8859-1. -°Ê²¼¤Îɽ¤Ï ISO 8859-1 (Latin-1) ¤Îɽ¼¨²Äǽ¤Êʸ»ú¤Î¤¦¤Á +以下の表は ISO 8859-1 (Latin-1) の表示可能な文字のうち .BR ascii (7) -¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤ËºÜ¤Ã¤Æ¤¤¤Ê¤¤¤â¤Î¤ò¼¨¤·¤Æ¤¤¤ë¡£ -4ÎóÌÜ¤Ï ISO 8859-1 ÍѤËÀßÄꤵ¤ì¤¿´Ä¶­¤Ç¤Î¤ßÀµ¤·¤¯É½¼¨¤Ç¤­¤ë¤À¤í¤¦¡£ +マニュアル・ページに載っていないものを示している。 +4列目は ISO 8859-1 用に設定された環境でのみ正しく表示できるだろう。 -[ ÌõÃí ¸¶Ê¸¤Ç¤Ï Char ¤ÎÉôʬ¤Ë ISO 8859-1 ¤Îʸ»ú¤¬¤¢¤Ã¤¿¤¬¡¢ -ÆüËܸì EUC ¤È¤ÎÊ»ÍѤÏÆñ¤·¤¤¤Î¤Çºï½ü¤·¡¢JIS X 0208 ¤ÎƱ¤¸Ê¸»ú¤ò -¼¨¤¹¤è¤¦¤Ë¤·¤¿¡£¤½¤Î¾¤Îʸ»ú¤Ë´Ø¤·¤Æ¤Ï -±Ñ¸ìÈǤΠiso_8859-1(7) ¤ò»²¾È¡£ ] +[ 訳注 原文では Char の部分に ISO 8859-1 の文字があったが、 +日本語 EUC との併用は難しいので削除し、JIS X 0208 の同じ文字を +示すようにした。その他の文字に関しては +英語版の iso_8859-1(7) を参照。 ] .TS l l l c lp-1. Oct Dec Hex Char Description _ 240 160 A0 NO-BREAK SPACE 241 161 A1 INVERTED EXCLAMATION MARK -242 162 A2 ¡ñ CENT SIGN -243 163 A3 ¡ò POUND SIGN +242 162 A2 ¢ CENT SIGN +243 163 A3 £ POUND SIGN 244 164 A4 CURRENCY SIGN -245 165 A5 ¡ï YEN SIGN +245 165 A5 Â¥ YEN SIGN 246 166 A6 BROKEN BAR -247 167 A7 ¡ø SECTION SIGN -250 168 A8 ¡¯ DIAERESIS +247 167 A7 § SECTION SIGN +250 168 A8 ¨ DIAERESIS 251 169 A9 COPYRIGHT SIGN 252 170 AA FEMININE ORDINAL INDICATOR -253 171 AB ¡Ô LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -254 172 AC ¢Ì NOT SIGN +253 171 AB 《 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +254 172 AC ¬ NOT SIGN 255 173 AD SOFT HYPHEN 256 174 AE REGISTERED SIGN 257 175 AF MACRON -260 176 B0 ¡ë DEGREE SIGN -261 177 B1 ¡Þ PLUS-MINUS SIGN +260 176 B0 ° DEGREE SIGN +261 177 B1 ± PLUS-MINUS SIGN 262 178 B2 SUPERSCRIPT TWO 263 179 B3 SUPERSCRIPT THREE -264 180 B4 ¡­ ACUTE ACCENT -265 181 B5 ¦Ì MICRO SIGN -266 182 B6 ¢ù PILCROW SIGN -267 183 B7 ¡¦ MIDDLE DOT +264 180 B4 ´ ACUTE ACCENT +265 181 B5 μ MICRO SIGN +266 182 B6 ¶ PILCROW SIGN +267 183 B7 ・ MIDDLE DOT 270 184 B8 CEDILLA 271 185 B9 SUPERSCRIPT ONE 272 186 BA MASCULINE ORDINAL INDICATOR -273 187 BB ¡Õ RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +273 187 BB 》 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 274 188 BC VULGAR FRACTION ONE QUARTER 275 189 BD VULGAR FRACTION ONE HALF 276 190 BE VULGAR FRACTION THREE QUARTERS @@ -144,7 +144,7 @@ _ 324 212 D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX 325 213 D5 LATIN CAPITAL LETTER O WITH TILDE 326 214 D6 LATIN CAPITAL LETTER O WITH DIAERESIS -327 215 D7 ¡ß MULTIPLICATION SIGN +327 215 D7 × MULTIPLICATION SIGN 330 216 D8 LATIN CAPITAL LETTER O WITH STROKE 331 217 D9 LATIN CAPITAL LETTER U WITH GRAVE 332 218 DA LATIN CAPITAL LETTER U WITH ACUTE @@ -176,7 +176,7 @@ _ 364 244 F4 LATIN SMALL LETTER O WITH CIRCUMFLEX 365 245 F5 LATIN SMALL LETTER O WITH TILDE 366 246 F6 LATIN SMALL LETTER O WITH DIAERESIS -367 247 F7 ¡à DIVISION SIGN +367 247 F7 ÷ DIVISION SIGN 370 248 F8 LATIN SMALL LETTER O WITH STROKE 371 249 F9 LATIN SMALL LETTER U WITH GRAVE 372 250 FA LATIN SMALL LETTER U WITH ACUTE @@ -186,6 +186,6 @@ _ 376 254 FE LATIN SMALL LETTER THORN 377 255 FF LATIN SMALL LETTER Y WITH DIAERESIS .TE -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ascii (7), .BR iso_8859-15 (7) diff --git a/draft/man7/iso_8859-15.7 b/draft/man7/iso_8859-15.7 index c5de03fb..aa173f02 100644 --- a/draft/man7/iso_8859-15.7 +++ b/draft/man7/iso_8859-15.7 @@ -31,12 +31,12 @@ .TH ISO_8859-15 7 1999-05-31 "Linux" "Linux Programmer's Manual" .nh .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O iso_8859-15 \- ISO 8859-15 character set encoded in octal, decimal, .\"O and hexadecimal -iso_8859-15 \- ISO 8859-15 ʸ»ú½¸¹ç¤Î 8¿Ê¿ô¡¢10¿Ê¿ô¡¢16¿Ê¿ô¤Ë¤è¤ëÉä¹æ²½ +iso_8859-15 \- ISO 8859-15 文字集合の 8進数、10進数、16進数による符号化 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The ISO 8859 standard includes several 8-bit extensions to the ASCII .\"O character set (also known as ISO 646-IRV). .\"O Especially important is @@ -47,29 +47,29 @@ iso_8859-15 \- ISO 8859-15 ʸ .\"O cover Finnish and French. .\"O ISO 8859-15 is a modification of ISO 8859-1 .\"O that covers these needs. -ISO 8859 µ¬³Ê¤Ï ASCII ʸ»ú½¸¹ç (ISO 646-IRV ¤È¤â¸Æ¤Ð¤ì¤ë) ¤Î -¤¤¤¯¤Ä¤«¤Î 8 ¥Ó¥Ã¥È³ÈÄ¥¤ò´Þ¤ó¤Ç¤¤¤ë¡£Æä˽ÅÍ×¤Ê ISO 8859-1¡¢ -"¥é¥Æ¥ó¡¦¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È No. 1" ¤Ç¡¢¹­¤¯¼ÂÁõ¤µ¤ì¡¢´û¤Ë ASCII ¤ËÂå¤ï¤Ã¤Æ -»ö¼Â¾å¤Îɸ½à¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤è¤¦¤Ë¤ß¤¨¤ë¡£°ìÊý¤Ç¤½¤ì¤Ï¥æ¡¼¥í (EURO) µ­¹æ¤¬ -´Þ¤Þ¤ì¤Æ¤ª¤é¤º¡¢¥Õ¥£¥ó¥é¥ó¥É¸ì¤È¥Õ¥é¥ó¥¹¸ì¤ò´°Á´¤Ë¥µ¥Ý¡¼¥È¤Ç¤­¤Æ¤¤¤Ê¤¤¡£ -ISO 8859-15 ¤Ï¤³¤ì¤é¤ÎÍ×µá¤òËþ¤¿¤¹¤¿¤á¤Ë ISO 8859-1 ¤ò½¤Àµ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +ISO 8859 規格は ASCII 文字集合 (ISO 646-IRV とも呼ばれる) の +いくつかの 8 ビット拡張を含んでいる。特に重要な ISO 8859-1、 +"ラテン・アルファベット No. 1" で、広く実装され、既に ASCII に代わって +事実上の標準になっているようにみえる。一方でそれはユーロ (EURO) 記号が +含まれておらず、フィンランド語とフランス語を完全にサポートできていない。 +ISO 8859-15 はこれらの要求を満たすために ISO 8859-1 を修正したものである。 .P .\"O ISO 8859-15 supports the following languages: Albanian, Basque, Breton, .\"O Catalan, Danish, Dutch, English, Estonian, Faroese, Finnish, French, .\"O Frisian, Galician, German, Greenlandic, Icelandic, Irish Gaelic, .\"O Italian, Latin, Luxemburgish, Norwegian, Portuguese, Rhaeto-Romanic, .\"O Scottish Gaelic, Spanish, and Swedish. -ISO 8859-15 ¤Ï°Ê²¼¤Î¸À¸ì¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë: ¥¢¥ë¥Ð¥Ë¥¢¸ì¡¢¥Ð¥¹¥¯¸ì¡¢ -¥Ö¥ë¥¿¡¼¥Ë¥å¸ì¡¢¥«¥¿¥í¥Ë¥¢¸ì¡¢¥Ç¥ó¥Þ¡¼¥¯¸ì¡¢¥ª¥é¥ó¥À¸ì¡¢±Ñ¸ì¡¢ -¥¨¥¹¥È¥Ë¥¢¸ì¡¢¥Õ¥§¥í¡¼¸ì¡¢¥Õ¥£¥ó¥é¥ó¥É¸ì¡¢¥Õ¥é¥ó¥¹¸ì¡¢¥Õ¥ê¡¼¥¹¥é¥ó¥É¸ì¡¢ -¥¬¥ê¥·¥¢¸ì¡¢¥É¥¤¥Ä¸ì¡¢¥°¥ê¡¼¥ó¥é¥ó¥É¸ì¡¢¥¢¥¤¥¹¥é¥ó¥É¸ì¡¢ -¥¢¥¤¥ë¥é¥ó¥É¡¦¥²¡¼¥ë¸ì¡¢¥¤¥¿¥ê¥¢¸ì¡¢¥é¥Æ¥ó¸ì¡¢¥ë¥¯¥»¥ó¥Ö¥ë¥°¸ì¡¢ -¥Î¥ë¥¦¥§¡¼¸ì¡¢¥Ý¥ë¥È¥¬¥ë¸ì¡¢¥ì¡¼¥È¥í¥Þ¥ó¥¹¸ì¡¢¥¹¥³¥Ã¥È¥é¥ó¥É¡¦¥²¡¼¥ë¸ì¡¢ -¥¹¥Ú¥¤¥ó¸ì¡¢¥¹¥¦¥§¡¼¥Ç¥ó¸ì¡£ +ISO 8859-15 は以下の言語をサポートしている: アルバニア語、バスク語、 +ブルターニュ語、カタロニア語、デンマーク語、オランダ語、英語、 +エストニア語、フェロー語、フィンランド語、フランス語、フリースランド語、 +ガリシア語、ドイツ語、グリーンランド語、アイスランド語、 +アイルランド・ゲール語、イタリア語、ラテン語、ルクセンブルグ語、 +ノルウェー語、ポルトガル語、レートロマンス語、スコットランド・ゲール語、 +スペイン語、スウェーデン語。 .\"O .SS "ISO 8859 Alphabets" -.SS "ISO 8859 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È" +.SS "ISO 8859 アルファベット" .\"O The full set of ISO 8859 alphabets includes: -´°Á´¤Ê ISO 8859 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Ï°Ê²¼¤Î¤â¤Î¤ò´Þ¤ó¤Ç¤¤¤ë: +完全な ISO 8859 アルファベットは以下のものを含んでいる: .TS l l. .\"O ISO 8859-1 West European languages (Latin-1) @@ -87,71 +87,71 @@ l l. .\"O ISO 8859-14 Celtic (Latin-8) .\"O ISO 8859-15 west European languages (Latin-9) .\"O ISO 8859-16 Romanian (Latin-10) -ISO 8859-1 À¾¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-1) -ISO 8859-2 Ãæ±û¡¦Åì¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-2) -ISO 8859-3 ÅìÆî¥è¡¼¥í¥Ã¥Ñ¤ä¤½¤Î¾¤Î¸À¸ì (Latin-3) -ISO 8859-4 ¥¹¥«¥ó¥¸¥Ê¥Ó¥¢/¥Ð¥ë¥È¸ìÇɤθÀ¸ì (Latin-4) -ISO 8859-5 ¥é¥Æ¥ó/¥­¥ê¥ëʸ»ú -ISO 8859-6 ¥é¥Æ¥ó/¥¢¥é¥Ó¥¢Ê¸»ú -ISO 8859-7 ¥é¥Æ¥ó¥®¥ê¥·¥ãʸ»ú -ISO 8859-8 ¥é¥Æ¥ó/¥Ø¥Ö¥é¥¤¸ì -ISO 8859-9 ¥È¥ë¥³¸ì½¤Àµ¤ò¹Ô¤Ê¤Ã¤¿ Latin-1 (Latin-5) -ISO 8859-10 ¥é¥Ã¥×/¥Î¥ë¥Ç¥£¥Ã¥¯/¥¨¥¹¥­¥â¡¼¤Î¸À¸ì (Latin-6) -ISO 8859-11 ¥é¥Æ¥ó/¥¿¥¤¸ì -ISO 8859-13 ¥Ð¥ë¥È½ô¹ñ¤Î¸À¸ì (Latin-7) -ISO 8859-14 ¥±¥ë¥È¸ì (Latin-8) -ISO 8859-15 À¾¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-9) -ISO 8859-16 ¥ë¡¼¥Þ¥Ë¥¢¸ì (Latin-10) +ISO 8859-1 西ヨーロッパの言語 (Latin-1) +ISO 8859-2 中央・東ヨーロッパの言語 (Latin-2) +ISO 8859-3 東南ヨーロッパやその他の言語 (Latin-3) +ISO 8859-4 スカンジナビア/バルト語派の言語 (Latin-4) +ISO 8859-5 ラテン/キリル文字 +ISO 8859-6 ラテン/アラビア文字 +ISO 8859-7 ラテンギリシャ文字 +ISO 8859-8 ラテン/ヘブライ語 +ISO 8859-9 トルコ語修正を行なった Latin-1 (Latin-5) +ISO 8859-10 ラップ/ノルディック/エスキモーの言語 (Latin-6) +ISO 8859-11 ラテン/タイ語 +ISO 8859-13 バルト諸国の言語 (Latin-7) +ISO 8859-14 ケルト語 (Latin-8) +ISO 8859-15 西ヨーロッパの言語 (Latin-9) +ISO 8859-16 ルーマニア語 (Latin-10) .TE .\"O .SS "ISO 8859-15 Characters" -.SS "ISO 8859-15 ʸ»ú" +.SS "ISO 8859-15 文字" .\"O The following table displays the characters in ISO 8859-15 (Latin-9), .\"O which are printable and unlisted in the .\"O .BR ascii (7) .\"O manual page. .\"O The fourth column will only show the proper glyphs .\"O in an environment configured for ISO 8859-15. -°Ê²¼¤Îɽ¤Ï ISO 8859-15 (Latin-9) ¤Îɽ¼¨²Äǽ¤Êʸ»ú¤Î¤¦¤Á +以下の表は ISO 8859-15 (Latin-9) の表示可能な文字のうち .BR ascii (7) -¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤ËºÜ¤Ã¤Æ¤¤¤Ê¤¤¤â¤Î¤ò¼¨¤·¤Æ¤¤¤ë¡£ -4ÎóÌÜ¤Ï ISO 8859-15 ÍѤËÀßÄꤵ¤ì¤¿´Ä¶­¤Ç¤Î¤ßÀµ¤·¤¯É½¼¨¤Ç¤­¤ë¤À¤í¤¦¡£ +マニュアル・ページに載っていないものを示している。 +4列目は ISO 8859-15 用に設定された環境でのみ正しく表示できるだろう。 -[ ÌõÃí ¸¶Ê¸¤Ç¤Ï Char ¤ÎÉôʬ¤Ë ISO 8859-15 ¤Îʸ»ú¤¬¤¢¤Ã¤¿¤¬¡¢ -ÆüËܸì EUC ¤È¤ÎÊ»ÍѤÏÆñ¤·¤¤¤Î¤Çºï½ü¤·¡¢JIS X 0208 ¤ÎƱ¤¸Ê¸»ú¤ò -¼¨¤¹¤è¤¦¤Ë¤·¤¿¡£¤½¤Î¾¤Îʸ»ú¤Ë´Ø¤·¤Æ¤Ï -±Ñ¸ìÈǤΠiso_8859-15(7) ¤òŬÀڤʥե©¥ó¥È¤ò½àÈ÷¤·¤Æ»²¾È¡£ ] +[ 訳注 原文では Char の部分に ISO 8859-15 の文字があったが、 +日本語 EUC との併用は難しいので削除し、JIS X 0208 の同じ文字を +示すようにした。その他の文字に関しては +英語版の iso_8859-15(7) を適切なフォントを準備して参照。 ] .TS l l l c lp-1. Oct Dec Hex Char Description _ 240 160 A0 NO-BREAK SPACE 241 161 A1 INVERTED EXCLAMATION MARK -242 162 A2 ¡ñ CENT SIGN -243 163 A3 ¡ò POUND SIGN +242 162 A2 ¢ CENT SIGN +243 163 A3 £ POUND SIGN 244 164 A4 EURO SIGN -245 165 A5 ¡ï YEN SIGN +245 165 A5 Â¥ YEN SIGN 246 166 A6 LATIN CAPITAL LETTER S WITH CARON -247 167 A7 ¡ø SECTION SIGN +247 167 A7 § SECTION SIGN 250 168 A8 LATIN SMALL LETTER S WITH CARON 251 169 A9 COPYRIGHT SIGN 252 170 AA FEMININE ORDINAL INDICATOR -253 171 AB ¡Ô LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -254 172 AC ¢Ì NOT SIGN +253 171 AB 《 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +254 172 AC ¬ NOT SIGN 255 173 AD SOFT HYPHEN 256 174 AE REGISTERED SIGN 257 175 AF MACRON -260 176 B0 ¡ë DEGREE SIGN -261 177 B1 ¡Þ PLUS-MINUS SIGN +260 176 B0 ° DEGREE SIGN +261 177 B1 ± PLUS-MINUS SIGN 262 178 B2 SUPERSCRIPT TWO 263 179 B3 SUPERSCRIPT THREE 264 180 B4 LATIN CAPITAL LETTER Z WITH CARON -265 181 B5 ¦Ì MICRO SIGN -266 182 B6 ¢ù PILCROW SIGN -267 183 B7 ¡¦ MIDDLE DOT +265 181 B5 μ MICRO SIGN +266 182 B6 ¶ PILCROW SIGN +267 183 B7 ・ MIDDLE DOT 270 184 B8 LATIN SMALL LETTER Z WITH CARON 271 185 B9 SUPERSCRIPT ONE 272 186 BA MASCULINE ORDINAL INDICATOR -273 187 BB ¡Õ RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +273 187 BB 》 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 274 188 BC LATIN CAPITAL LIGATURE OE 275 189 BD LATIN SMALL LIGATURE OE 276 190 BE LATIN CAPITAL LETTER Y WITH DIAERESIS @@ -179,7 +179,7 @@ _ 324 212 D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX 325 213 D5 LATIN CAPITAL LETTER O WITH TILDE 326 214 D6 LATIN CAPITAL LETTER O WITH DIAERESIS -327 215 D7 ¡ß MULTIPLICATION SIGN +327 215 D7 × MULTIPLICATION SIGN 330 216 D8 LATIN CAPITAL LETTER O WITH STROKE 331 217 D9 LATIN CAPITAL LETTER U WITH GRAVE 332 218 DA LATIN CAPITAL LETTER U WITH ACUTE @@ -211,7 +211,7 @@ _ 364 244 F4 LATIN SMALL LETTER O WITH CIRCUMFLEX 365 245 F5 LATIN SMALL LETTER O WITH TILDE 366 246 F6 LATIN SMALL LETTER O WITH DIAERESIS -367 247 F7 ¡à DIVISION SIGN +367 247 F7 ÷ DIVISION SIGN 370 248 F8 LATIN SMALL LETTER O WITH STROKE 371 249 F9 LATIN SMALL LETTER U WITH GRAVE 372 250 FA LATIN SMALL LETTER U WITH ACUTE @@ -222,6 +222,6 @@ _ 377 255 FF LATIN SMALL LETTER Y WITH DIAERESIS .TE .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ascii (7), .BR iso_8859-1 (7) diff --git a/draft/man7/iso_8859-16.7 b/draft/man7/iso_8859-16.7 index 2644138d..c51a97f2 100644 --- a/draft/man7/iso_8859-16.7 +++ b/draft/man7/iso_8859-16.7 @@ -29,37 +29,37 @@ .TH ISO_8859-16 7 2003-03-05 "Linux" "Linux Programmer's Manual" .nh .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O iso_8859-16 \- ISO 8859-16 character set encoded in octal, decimal, .\"O and hexadecimal -iso_8859-16 \- ISO 8859-16 ʸ»ú½¸¹ç¤Î 8¿Ê¿ô¡¢10¿Ê¿ô¡¢16¿Ê¿ô¤Ë¤è¤ëÉä¹æ²½ +iso_8859-16 \- ISO 8859-16 文字集合の 8進数、10進数、16進数による符号化 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The ISO 8859 standard includes several 8-bit extensions to the ASCII .\"O character set (also known as ISO 646-IRV). .\"O ISO 8859-16, the "Latin .\"O Alphabet No. 10" is used to encode Central and Eastern European Latin .\"O characters and is not implemented yet by any program vendors. -ISO 8859 µ¬³Ê¤Ï ASCII ʸ»ú½¸¹ç (ISO 646-IRV ¤È¤â¸Æ¤Ð¤ì¤ë) ¤Î -¤¤¤¯¤Ä¤«¤Î 8 ¥Ó¥Ã¥È³ÈÄ¥¤ò´Þ¤ó¤Ç¤¤¤ë¡£ ISO 8859-16¡¢ -¡Ö¥é¥Æ¥ó¡¦¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È No.10¡×¤ÏÃæ±û¡¦Åì¥è¡¼¥í¥Ã¥Ñ¤Î¥é¥Æ¥óʸ»ú¤òÉä¹æ²½ -¤¹¤ë¤¿¤á¤Î¤â¤Î¤À¤¬¡¢¤Þ¤À¼ÂÁõ¤·¤Æ¤¤¤ë¥×¥í¥°¥é¥à¡¦¥Ù¥ó¥À¤Ï¤Ê¤¤¡£ +ISO 8859 規格は ASCII 文字集合 (ISO 646-IRV とも呼ばれる) の +いくつかの 8 ビット拡張を含んでいる。 ISO 8859-16、 +「ラテン・アルファベット No.10」は中央・東ヨーロッパのラテン文字を符号化 +するためのものだが、まだ実装しているプログラム・ベンダはない。 .P .\"O ISO 8859-16 supports the following languages: Albanian, Bosnian, .\"O Croatian, English, Finnish, German, Hungarian, Irish, Polish, .\"O Romanian, Slovenian and Serbian. -ISO 8859-16 ¤Ï°Ê²¼¤Î¸À¸ì¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë: ¥¢¥ë¥Ð¥Ë¥¢¸ì¡¢¥Ü¥¹¥Ë¥¢¸ì¡¢ -¥¯¥í¥¢¥Á¥¢¸ì¡¢±Ñ¸ì¡¢¥Õ¥£¥ó¥é¥ó¥É¸ì¡¢¥É¥¤¥Ä¸ì¡¢¥Ï¥ó¥¬¥ê¡¼¸ì¡¢ -¥¢¥¤¥ë¥é¥ó¥É¸ì¡¢¥Ý¡¼¥é¥ó¥É¸ì¡¢¥ë¡¼¥Þ¥Ë¥¢¸ì¡¢¥¹¥í¥Ù¥Ë¥¢¸ì¡¢¥»¥ë¥Ó¥¢¸ì¡£ +ISO 8859-16 は以下の言語をサポートしている: アルバニア語、ボスニア語、 +クロアチア語、英語、フィンランド語、ドイツ語、ハンガリー語、 +アイルランド語、ポーランド語、ルーマニア語、スロベニア語、セルビア語。 .P .\"O Also note that the following Cyrillic-based languages have one-to-one .\"O transliterations to Latin 10: Macedonian and Serbian. -¤Þ¤¿¡¢°Ê²¼¤Î¥­¥ê¥ëʸ»ú¥Ù¡¼¥¹¤Î¸À¸ì¤â Latin 10 ¤Ë 1 ÂÐ 1 ¤ÇÊÑ´¹²Äǽ¤Ç¤¢¤ë: -¥Þ¥±¥É¥Ë¥¢¸ì¡¢¥»¥ë¥Ó¥¢¸ì¡£ +また、以下のキリル文字ベースの言語も Latin 10 に 1 対 1 で変換可能である: +マケドニア語、セルビア語。 .\"O .SS "ISO 8859 Alphabets" -.SS "ISO 8859 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È" +.SS "ISO 8859 アルファベット" .\"O The full set of ISO 8859 alphabets includes: -´°Á´¤Ê ISO 8859 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Ï°Ê²¼¤Î¤â¤Î¤ò´Þ¤ó¤Ç¤¤¤ë: +完全な ISO 8859 アルファベットは以下のものを含んでいる: .TS l l. .\"O ISO 8859-1 West European languages (Latin-1) @@ -77,66 +77,66 @@ l l. .\"O ISO 8859-14 Celtic (Latin-8) .\"O ISO 8859-15 West European languages (Latin-9) .\"O ISO 8859-16 Romanian (Latin-10) -ISO 8859-1 À¾¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-1) -ISO 8859-2 Ãæ±û¡¦Åì¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-2) -ISO 8859-3 ÅìÆî¥è¡¼¥í¥Ã¥Ñ¤ä¤½¤Î¾¤Î¸À¸ì (Latin-3) -ISO 8859-4 ¥¹¥«¥ó¥¸¥Ê¥Ó¥¢/¥Ð¥ë¥È¸ìÇɤθÀ¸ì (Latin-4) -ISO 8859-5 ¥é¥Æ¥ó/¥­¥ê¥ëʸ»ú -ISO 8859-6 ¥é¥Æ¥ó/¥¢¥é¥Ó¥¢Ê¸»ú -ISO 8859-7 ¥é¥Æ¥ó/¥®¥ê¥·¥ãʸ»ú -ISO 8859-8 ¥é¥Æ¥ó/¥Ø¥Ö¥é¥¤¸ì -ISO 8859-9 ¥È¥ë¥³¸ìÍѤ˽¤Àµ¤ò¹Ô¤Ê¤Ã¤¿ Latin-1 (Latin-5) -ISO 8859-10 ¥é¥Ã¥×/¥Î¥ë¥Ç¥£¥Ã¥¯/¥¨¥¹¥­¥â¡¼¤Î¸À¸ì (Latin-6) -ISO 8859-11 ¥é¥Æ¥ó/¥¿¥¤¸ì -ISO 8859-13 ¥Ð¥ë¥È½ô¹ñ¤Î¸À¸ì (Latin-7) -ISO 8859-14 ¥±¥ë¥È¸ì (Latin-8) -ISO 8859-15 À¾¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-9) -ISO 8859-16 ¥ë¡¼¥Þ¥Ë¥¢¸ì (Latin-10) +ISO 8859-1 西ヨーロッパの言語 (Latin-1) +ISO 8859-2 中央・東ヨーロッパの言語 (Latin-2) +ISO 8859-3 東南ヨーロッパやその他の言語 (Latin-3) +ISO 8859-4 スカンジナビア/バルト語派の言語 (Latin-4) +ISO 8859-5 ラテン/キリル文字 +ISO 8859-6 ラテン/アラビア文字 +ISO 8859-7 ラテン/ギリシャ文字 +ISO 8859-8 ラテン/ヘブライ語 +ISO 8859-9 トルコ語用に修正を行なった Latin-1 (Latin-5) +ISO 8859-10 ラップ/ノルディック/エスキモーの言語 (Latin-6) +ISO 8859-11 ラテン/タイ語 +ISO 8859-13 バルト諸国の言語 (Latin-7) +ISO 8859-14 ケルト語 (Latin-8) +ISO 8859-15 西ヨーロッパの言語 (Latin-9) +ISO 8859-16 ルーマニア語 (Latin-10) .TE .\"O .SS "ISO 8859-16 Characters" -.SS "ISO 8859-16 ʸ»ú" +.SS "ISO 8859-16 文字" .\"O The following table displays the characters in ISO 8859-16 (Latin-10), .\"O which are printable and unlisted in the .\"O .BR ascii (7) .\"O manual page. .\"O The fourth column will only show the proper glyphs .\"O in an environment configured for ISO 8859-16. -°Ê²¼¤Îɽ¤Ï ISO 8859-16 (Latin-10) ¤Îɽ¼¨²Äǽ¤Êʸ»ú¤Î¤¦¤Á +以下の表は ISO 8859-16 (Latin-10) の表示可能な文字のうち .BR ascii (7) -¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤ËºÜ¤Ã¤Æ¤¤¤Ê¤¤¤â¤Î¤ò¼¨¤·¤Æ¤¤¤ë¡£ -4ÎóÌÜ¤Ï ISO 8859-16 ÍѤËÀßÄꤵ¤ì¤¿´Ä¶­¤Ç¤Î¤ßÀµ¤·¤¯É½¼¨¤Ç¤­¤ë¤À¤í¤¦¡£ +マニュアル・ページに載っていないものを示している。 +4列目は ISO 8859-16 用に設定された環境でのみ正しく表示できるだろう。 .TS l l l c lp-1. Oct Dec Hex Char Description _ 240 160 A0 NO-BREAK SPACE 241 161 A1 LATIN CAPITAL LETTER A WITH OGONEK -242 162 A2 ¡ñ LATIN SMALL LETTER A WITH OGONEK -243 163 A3 ¡ò LATIN CAPITAL LETTER L WITH STROKE +242 162 A2 ¢ LATIN SMALL LETTER A WITH OGONEK +243 163 A3 £ LATIN CAPITAL LETTER L WITH STROKE 244 164 A4 EURO SIGN -245 165 A5 ¡ï DOUBLE LOW-9 QUOTATION MARK +245 165 A5 Â¥ DOUBLE LOW-9 QUOTATION MARK 246 166 A6 LATIN CAPITAL LETTER S WITH CARON -247 167 A7 ¡ø SECTION SIGN +247 167 A7 § SECTION SIGN 250 168 A8 LATIN SMALL LETTER S WITH CARON 251 169 A9 COPYRIGHT SIGN 252 170 AA LATIN CAPITAL LETTER S WITH COMMA BELOW -253 171 AB ¡Ô LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -254 172 AC ¢Ì LATIN CAPITAL LETTER Z WITH ACUTE +253 171 AB 《 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +254 172 AC ¬ LATIN CAPITAL LETTER Z WITH ACUTE 255 173 AD SOFT HYPHEN 256 174 AE LATIN SMALL LETTER Z WITH ACUTE 257 175 AF LATIN CAPITAL LETTER Z WITH DOT ABOVE -260 176 B0 ¡ë DEGREE SIGN -261 177 B1 ¡Þ PLUS-MINUS SIGN +260 176 B0 ° DEGREE SIGN +261 177 B1 ± PLUS-MINUS SIGN 262 178 B2 LATIN CAPITAL LETTER C WITH CARON 263 179 B3 LATIN SMALL LETTER L WITH STROKE 264 180 B4 LATIN CAPITAL LETTER Z WITH CARON -265 181 B5 ¦Ì LEFT DOUBLE QUOTATION MARK -266 182 B6 ¢ù PILCROW SIGN -267 183 B7 ¡¦ MIDDLE DOT +265 181 B5 μ LEFT DOUBLE QUOTATION MARK +266 182 B6 ¶ PILCROW SIGN +267 183 B7 ・ MIDDLE DOT 270 184 B8 LATIN SMALL LETTER Z WITH CARON 271 185 B9 LATIN SMALL LETTER C WITH CARON 272 186 BA LATIN SMALL LETTER S WITH COMMA BELOW -273 187 BB ¡Õ RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +273 187 BB 》 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 274 188 BC LATIN CAPITAL LIGATURE OE 275 189 BD LATIN SMALL LIGATURE OE 276 190 BE LATIN CAPITAL LETTER Y WITH DIAERESIS @@ -164,7 +164,7 @@ _ 324 212 D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX 325 213 D5 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE 326 214 D6 LATIN CAPITAL LETTER O WITH DIAERESIS -327 215 D7 ¡ß LATIN CAPITAL LETTER S WITH ACUTE +327 215 D7 × LATIN CAPITAL LETTER S WITH ACUTE 330 216 D8 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE 331 217 D9 LATIN CAPITAL LETTER U WITH GRAVE 332 218 DA LATIN CAPITAL LETTER U WITH ACUTE @@ -196,7 +196,7 @@ _ 364 244 F4 LATIN SMALL LETTER O WITH CIRCUMFLEX 365 245 F5 LATIN SMALL LETTER O WITH DOUBLE ACUTE 366 246 F6 LATIN SMALL LETTER O WITH DIAERESIS -367 247 F7 ¡à LATIN SMALL LETTER S WITH ACUTE +367 247 F7 ÷ LATIN SMALL LETTER S WITH ACUTE 370 248 F8 LATIN SMALL LETTER U WITH DOUBLE ACUTE 371 249 F9 LATIN SMALL LETTER U WITH GRAVE 372 250 FA LATIN SMALL LETTER U WITH ACUTE @@ -207,7 +207,7 @@ _ 377 255 FF LATIN SMALL LETTER Y WITH DIAERESIS .TE .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ascii (7), .BR iso_8859-1 (7), .BR iso_8859-15 (7), @@ -216,6 +216,6 @@ _ .\"O Additional information: .\"O .I ISO 8859-16 (Latin 10) Resources .\"O (http://bucovina.chem.tue.nl/fonturi/index-en.html). -Êä­¾ðÊó: +補足情報: .I ISO 8859-16 (Latin 10) Resources (http://bucovina.chem.tue.nl/fonturi/index-en.html) diff --git a/draft/man7/iso_8859-2.7 b/draft/man7/iso_8859-2.7 index e323114a..d16ddd6d 100644 --- a/draft/man7/iso_8859-2.7 +++ b/draft/man7/iso_8859-2.7 @@ -34,38 +34,38 @@ .TH ISO_8859-2 7 2007-11-25 "Linux" "Linux Programmer's Manual" .nh .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O iso_8859-2 \- ISO 8859-2 character set encoded in octal, decimal, .\"O and hexadecimal -iso_8859-2 \- ISO 8859-2 ʸ»ú½¸¹ç¤Î 8¿Ê¿ô¡¢10¿Ê¿ô¡¢16¿Ê¿ô¤Ë¤è¤ëÉä¹æ²½ +iso_8859-2 \- ISO 8859-2 文字集合の 8進数、10進数、16進数による符号化 .\"O .SH DESCRIPTION -.SH ½ñ¼° +.SH 書式 .\"O The ISO 8859 standard includes several 8-bit extensions to the ASCII .\"O character set (also known as ISO 646-IRV). .\"O ISO 8859-2, the "Latin .\"O Alphabet No. 2" is used to encode Central and Eastern European Latin .\"O characters and is implemented by several program vendors. -ISO 8859 µ¬³Ê¤Ï ASCII ʸ»ú½¸¹ç (ISO 646-IRV ¤È¤â¸Æ¤Ð¤ì¤ë) ¤Î -¤¤¤¯¤Ä¤«¤Î 8 ¥Ó¥Ã¥È³ÈÄ¥¤ò´Þ¤ó¤Ç¤¤¤ë¡£ISO 8859-2¡¢ - "¥é¥Æ¥ó¡¦¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È No. 2" ¤ÏÃæ±û¥è¡¼¥í¥Ã¥Ñ¡¢Åì¥è¡¼¥í¥Ã¥Ñ¤Î -¥é¥Æ¥óʸ»ú¤òÉä¹æ²½¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¡¢¤¤¤¯¤Ä¤«¤Î¥×¥í¥°¥é¥à¡¦¥Ù¥ó¥À¡¼¤â -¼ÂÁõ¤·¤Æ¤¤¤ë¡£ +ISO 8859 規格は ASCII 文字集合 (ISO 646-IRV とも呼ばれる) の +いくつかの 8 ビット拡張を含んでいる。ISO 8859-2、 + "ラテン・アルファベット No. 2" は中央ヨーロッパ、東ヨーロッパの +ラテン文字を符号化するために使用され、いくつかのプログラム・ベンダーも +実装している。 .P .\"O ISO 8859-2 supports the following languages: Albanian, Bosnian, .\"O Croatian, Czech, English, Finnish, German, Hungarian, Irish, Polish, .\"O Slovak, Slovenian and Sorbian. -ISO 8859-2 ¤Ï°Ê²¼¤Î¸À¸ì¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë: ¥¢¥ë¥Ð¥Ë¥¢¸ì¡¢¥Ü¥¹¥Ë¥¢¸ì¡¢ -¥¯¥í¥¢¥Á¥¢¸ì¡¢¥Á¥§¥³¸ì¡¢±Ñ¸ì¡¢¥Õ¥£¥ó¥é¥ó¥É¸ì¡¢¥É¥¤¥Ä¸ì¡¢¥Ï¥ó¥¬¥ê¡¼¸ì¡¢ -¥¢¥¤¥ë¥é¥ó¥É¸ì¡¢¥Ý¡¼¥é¥ó¥É¸ì¡¢¥¹¥í¥ô¥¡¥­¥¢¸ì¡¢¥¹¥í¥ô¥§¥Ë¥¢¸ì¡¢¥½¥ë¥Ó¥¢¸ì¡£ +ISO 8859-2 は以下の言語をサポートしている: アルバニア語、ボスニア語、 +クロアチア語、チェコ語、英語、フィンランド語、ドイツ語、ハンガリー語、 +アイルランド語、ポーランド語、スロヴァキア語、スロヴェニア語、ソルビア語。 .P .\"O Also note that the following Cyrillic-based languages have one-to-one .\"O transliterations to Latin 2: Macedonian and Serbian. -¤Þ¤¿°Ê²¼¤Î¥­¥ê¥ëʸ»ú¥Ù¡¼¥¹¤Î¸À¸ì¤â 1 ÂÐ 1 ¤Ç Latin 2 ¤ËÃÖ¤­´¹¤¨¤ë¤³¤È -¤¬¤Ç¤­¤ë: ¥Þ¥±¥É¥Ë¥¢¸ì¡¢¥»¥ë¥Ó¥¢¸ì +また以下のキリル文字ベースの言語も 1 対 1 で Latin 2 に置き換えること +ができる: マケドニア語、セルビア語 .\"O .SS "ISO 8859 Alphabets" -.SS "ISO 8859 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È" +.SS "ISO 8859 アルファベット" .\"O The full set of ISO 8859 alphabets includes: -´°Á´¤Ê ISO 8859 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Ï°Ê²¼¤Î¤â¤Î¤ò´Þ¤ó¤Ç¤¤¤ë: +完全な ISO 8859 アルファベットは以下のものを含んでいる: .TS l l. .\"O ISO 8859-1 West European languages (Latin-1) @@ -83,39 +83,39 @@ l l. .\"O ISO 8859-14 Celtic (Latin-8) .\"O ISO 8859-15 West European languages (Latin-9) .\"O ISO 8859-16 Romanian (Latin-10) -ISO 8859-1 À¾¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-1) -ISO 8859-2 Ãæ±û¤ª¤è¤ÓÅì¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-2) -ISO 8859-3 ÅìÆî¥è¡¼¥í¥Ã¥Ñ¤ä¤½¤Î¾¤Î¸À¸ì (Latin-3) -ISO 8859-4 ¥¹¥«¥ó¥¸¥Ê¥Ó¥¢/¥Ð¥ë¥È¸ìÇɤθÀ¸ì (Latin-4) -ISO 8859-5 ¥é¥Æ¥ó/¥­¥ê¥ëʸ»ú -ISO 8859-6 ¥é¥Æ¥ó/¥¢¥é¥Ó¥¢Ê¸»ú -ISO 8859-7 ¥é¥Æ¥ó/¥®¥ê¥·¥ãʸ»ú -ISO 8859-8 ¥é¥Æ¥ó/¥Ø¥Ö¥é¥¤¸ì -ISO 8859-9 ¥È¥ë¥³¸ì½¤Àµ¤ò¹Ô¤Ê¤Ã¤¿ Latin-1 (Latin-5) -ISO 8859-10 ¥é¥Ã¥×/¥Î¥ë¥Ç¥£¥Ã¥¯/¥¨¥¹¥­¥â¡¼¤Î¸À¸ì (Latin-6) -ISO 8859-11 ¥é¥Æ¥ó/¥¿¥¤¸ì -ISO 8859-13 ¥Ð¥ë¥È½ô¹ñ¤Î¸À¸ì (Latin-7) -ISO 8859-14 ¥±¥ë¥È¸ì (Latin-8) -ISO 8859-15 À¾¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-9) -ISO 8859-16 ¥ë¡¼¥Þ¥Ë¥¢¸ì (Latin-10) +ISO 8859-1 西ヨーロッパの言語 (Latin-1) +ISO 8859-2 中央および東ヨーロッパの言語 (Latin-2) +ISO 8859-3 東南ヨーロッパやその他の言語 (Latin-3) +ISO 8859-4 スカンジナビア/バルト語派の言語 (Latin-4) +ISO 8859-5 ラテン/キリル文字 +ISO 8859-6 ラテン/アラビア文字 +ISO 8859-7 ラテン/ギリシャ文字 +ISO 8859-8 ラテン/ヘブライ語 +ISO 8859-9 トルコ語修正を行なった Latin-1 (Latin-5) +ISO 8859-10 ラップ/ノルディック/エスキモーの言語 (Latin-6) +ISO 8859-11 ラテン/タイ語 +ISO 8859-13 バルト諸国の言語 (Latin-7) +ISO 8859-14 ケルト語 (Latin-8) +ISO 8859-15 西ヨーロッパの言語 (Latin-9) +ISO 8859-16 ルーマニア語 (Latin-10) .TE .\"O .SS "ISO 8859-2 Characters" -.SS "ISO 8859-2 ʸ»ú" +.SS "ISO 8859-2 文字" .\"O The following table displays the characters in ISO 8859-2 (Latin-2), .\"O which are printable and unlisted in the .\"O .BR ascii (7) .\"O manual page. .\"O The fourth column will only show the proper glyphs .\"O in an environment configured for ISO 8859-2. -°Ê²¼¤Îɽ¤Ï ISO 8859-2 (Latin-2) ¤Îɽ¼¨²Äǽ¤Êʸ»ú¤Î¤¦¤Á +以下の表は ISO 8859-2 (Latin-2) の表示可能な文字のうち .BR ascii (7) -¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤ËºÜ¤Ã¤Æ¤¤¤Ê¤¤¤â¤Î¤ò¼¨¤·¤Æ¤¤¤ë¡£ -4ÎóÌÜ¤Ï ISO 8859-2 ÍѤËÀßÄꤵ¤ì¤¿´Ä¶­¤Ç¤Î¤ßÀµ¤·¤¯É½¼¨¤Ç¤­¤ë¤À¤í¤¦¡£ +マニュアル・ページに載っていないものを示している。 +4列目は ISO 8859-2 用に設定された環境でのみ正しく表示できるだろう。 -[ ÌõÃí ¸¶Ê¸¤Ç¤Ï Char ¤ÎÉôʬ¤Ë ISO 8859-2 ¤Îʸ»ú¤¬¤¢¤Ã¤¿¤¬¡¢ -ÆüËܸì EUC ¤È¤ÎÊ»ÍѤÏÆñ¤·¤¤¤Î¤Çºï½ü¤·¡¢JIS X 0208 ¤ÎƱ¤¸Ê¸»ú¤ò¼¨¤¹¤è¤¦ -¤Ë¤·¤¿¡£¤½¤Î¾¤Îʸ»ú¤Ë´Ø¤·¤Æ¤Ï±Ñ¸ìÈǤΠiso_8859-2(7) ¤ò -ŬÀڤʥե©¥ó¥È¤ò½àÈ÷¤·¤Æ»²¾È¡£ ] +[ 訳注 原文では Char の部分に ISO 8859-2 の文字があったが、 +日本語 EUC との併用は難しいので削除し、JIS X 0208 の同じ文字を示すよう +にした。その他の文字に関しては英語版の iso_8859-2(7) を +適切なフォントを準備して参照。 ] .TS l l l c lp-1. Oct Dec Hex Char Description @@ -127,8 +127,8 @@ _ 244 164 A4 CURRENCY SIGN 245 165 A5 LATIN CAPITAL LETTER L WITH CARON 246 166 A6 LATIN CAPITAL LETTER S WITH ACUTE -247 167 A7 ¡ø SECTION SIGN -250 168 A8 ¡¯ DIAERESIS +247 167 A7 § SECTION SIGN +250 168 A8 ¨ DIAERESIS 251 169 A9 LATIN CAPITAL LETTER S WITH CARON 252 170 AA LATIN CAPITAL LETTER S WITH CEDILLA 253 171 AB LATIN CAPITAL LETTER T WITH CARON @@ -136,11 +136,11 @@ _ 255 173 AD SOFT HYPHEN 256 174 AE LATIN CAPITAL LETTER Z WITH CARON 257 175 AF LATIN CAPITAL LETTER Z WITH DOT ABOVE -260 176 B0 ¡ë DEGREE SIGN +260 176 B0 ° DEGREE SIGN 261 177 B1 LATIN SMALL LETTER A WITH OGONEK 262 178 B2 OGONEK 263 179 B3 LATIN SMALL LETTER L WITH STROKE -264 180 B4 ¡­ ACUTE ACCENT +264 180 B4 ´ ACUTE ACCENT 265 181 B5 LATIN SMALL LETTER L WITH CARON 266 182 B6 LATIN SMALL LETTER S WITH ACUTE 267 183 B7 CARON @@ -175,7 +175,7 @@ _ 324 212 D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX 325 213 D5 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE 326 214 D6 LATIN CAPITAL LETTER O WITH DIAERESIS -327 215 D7 ¡ß MULTIPLICATION SIGN +327 215 D7 × MULTIPLICATION SIGN 330 216 D8 LATIN CAPITAL LETTER R WITH CARON 331 217 D9 LATIN CAPITAL LETTER U WITH RING ABOVE 332 218 DA LATIN CAPITAL LETTER U WITH ACUTE @@ -207,7 +207,7 @@ _ 364 244 F4 LATIN SMALL LETTER O WITH CIRCUMFLEX 365 245 F5 LATIN SMALL LETTER O WITH DOUBLE ACUTE 366 246 F6 LATIN SMALL LETTER O WITH DIAERESIS -367 247 F7 ¡à DIVISION SIGN +367 247 F7 ÷ DIVISION SIGN 370 248 F8 LATIN SMALL LETTER R WITH CARON 371 249 F9 LATIN SMALL LETTER U WITH RING ABOVE 372 250 FA LATIN SMALL LETTER U WITH ACUTE @@ -218,13 +218,13 @@ _ 377 255 FF DOT ABOVE .TE .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ascii (7), .BR iso_8859-1 (7) .P .\"O Additional information: .\"O .I ISO 8859-2 (Latin 2) Resources .\"O (http://sizif.mf.uni-lj.si/linux/cee/iso8859-2.html). -ÄɲþðÊó: -.I ISO 8859-2 (Latin 2) ¾ðÊó +追加情報: +.I ISO 8859-2 (Latin 2) 情報 (http://sizif.mf.uni-lj.si/linux/cee/iso8859-2.html). diff --git a/draft/man7/iso_8859-7.7 b/draft/man7/iso_8859-7.7 index 72824d3c..2915d92d 100644 --- a/draft/man7/iso_8859-7.7 +++ b/draft/man7/iso_8859-7.7 @@ -30,22 +30,22 @@ .TH ISO_8859-7 7 2008-10-30 "Linux" "Linux Programmer's Manual" .nh .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O iso_8859-7 \- ISO 8859-7 character set encoded in octal, decimal, .\"O and hexadecimal -iso_8859-7 \- ISO 8859-7 ʸ»ú½¸¹ç¤Î 8¿Ê¿ô¡¢10¿Ê¿ô¡¢16¿Ê¿ô¤Ë¤è¤ëÉä¹æ²½ +iso_8859-7 \- ISO 8859-7 文字集合の 8進数、10進数、16進数による符号化 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The ISO 8859 standard includes several 8-bit extensions to the ASCII .\"O character set (also known as ISO 646-IRV). .\"O ISO 8859-7 encodes the .\"O characters used in modern monotonic Greek. -ISO 8859 µ¬³Ê¤Ï ASCII ʸ»ú½¸¹ç (ISO 646-IRV ¤È¤â¸Æ¤Ð¤ì¤ë) ¤Î -¤¤¤¯¤Ä¤«¤Î 8 ¥Ó¥Ã¥È³ÈÄ¥¤ò´Þ¤ó¤Ç¤¤¤ë¡£ISO 8859-7 ¤Ï¸½Âå¤ÎñĴ¤Î -¥®¥ê¥·¥¢¸ì¤Ë»ÈÍѤµ¤ì¤ëʸ»ú¤òÉä¹æ²½¤·¤Æ¤¤¤ë¡£ -.SS "ISO 8859 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È" +ISO 8859 規格は ASCII 文字集合 (ISO 646-IRV とも呼ばれる) の +いくつかの 8 ビット拡張を含んでいる。ISO 8859-7 は現代の単調の +ギリシア語に使用される文字を符号化している。 +.SS "ISO 8859 アルファベット" .\"O The full set of ISO 8859 alphabets includes: -´°Á´¤Ê ISO 8859 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Ï°Ê²¼¤Î¤â¤Î¤ò´Þ¤ó¤Ç¤¤¤ë: +完全な ISO 8859 アルファベットは以下のものを含んでいる: .TS l l. .\"O ISO 8859-1 West European languages (Latin-1) @@ -63,24 +63,24 @@ l l. .\"O ISO 8859-14 Celtic (Latin-8) .\"O ISO 8859-15 West European languages (Latin-9) .\"O ISO 8859-16 Romanian (Latin-10) -ISO 8859-1 À¾¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-1) -ISO 8859-2 Ãæ±û¡¦Åì¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-2) -ISO 8859-3 ÅìÆî¥è¡¼¥í¥Ã¥Ñ¤ä¤½¤Î¾¤Î¸À¸ì (Latin-3) -ISO 8859-4 ¥¹¥«¥ó¥¸¥Ê¥Ó¥¢/¥Ð¥ë¥È¸ìÇɤθÀ¸ì (Latin-4) -ISO 8859-5 ¥é¥Æ¥ó/¥­¥ê¥ëʸ»ú -ISO 8859-6 ¥é¥Æ¥ó/¥¢¥é¥Ó¥¢Ê¸»ú -ISO 8859-7 ¥é¥Æ¥ó¥®¥ê¥·¥ãʸ»ú -ISO 8859-8 ¥é¥Æ¥ó/¥Ø¥Ö¥é¥¤¸ì -ISO 8859-9 ¥È¥ë¥³¸ì½¤Àµ¤ò¹Ô¤Ê¤Ã¤¿ Latin-1 (Latin-5) -ISO 8859-10 ¥é¥Ã¥×/¥Î¥ë¥Ç¥£¥Ã¥¯/¥¨¥¹¥­¥â¡¼¤Î¸À¸ì (Latin-6) -ISO 8859-11 ¥é¥Æ¥ó/¥¿¥¤¸ì -ISO 8859-13 ¥Ð¥ë¥È½ô¹ñ¤Î¸À¸ì (Latin-7) -ISO 8859-14 ¥±¥ë¥È¸ì (Latin-8) -ISO 8859-15 À¾¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-9) -ISO 8859-16 ¥ë¡¼¥Þ¥Ë¥¢¸ì (Latin-10) +ISO 8859-1 西ヨーロッパの言語 (Latin-1) +ISO 8859-2 中央・東ヨーロッパの言語 (Latin-2) +ISO 8859-3 東南ヨーロッパやその他の言語 (Latin-3) +ISO 8859-4 スカンジナビア/バルト語派の言語 (Latin-4) +ISO 8859-5 ラテン/キリル文字 +ISO 8859-6 ラテン/アラビア文字 +ISO 8859-7 ラテンギリシャ文字 +ISO 8859-8 ラテン/ヘブライ語 +ISO 8859-9 トルコ語修正を行なった Latin-1 (Latin-5) +ISO 8859-10 ラップ/ノルディック/エスキモーの言語 (Latin-6) +ISO 8859-11 ラテン/タイ語 +ISO 8859-13 バルト諸国の言語 (Latin-7) +ISO 8859-14 ケルト語 (Latin-8) +ISO 8859-15 西ヨーロッパの言語 (Latin-9) +ISO 8859-16 ルーマニア語 (Latin-10) .TE .\"O .SS "ISO 8859-7 Characters" -.SS "ISO 8859-7 ʸ»ú" +.SS "ISO 8859-7 文字" .\"O The following table displays the characters in ISO 8859-7, which .\"O are printable and unlisted in the .\"O .BR ascii (7) @@ -88,15 +88,15 @@ ISO 8859-16 .\"O The fourth column will only show the proper glyphs .\"O in an environment configured for ISO 8859-7. -°Ê²¼¤Îɽ¤Ï ISO 8859-7 ¤Îɽ¼¨²Äǽ¤Êʸ»ú¤Î¤¦¤Á +以下の表は ISO 8859-7 の表示可能な文字のうち .BR ascii (7) -¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤ËºÜ¤Ã¤Æ¤¤¤Ê¤¤¤â¤Î¤ò¼¨¤·¤Æ¤¤¤ë¡£ -4ÎóÌÜ¤Ï ISO 8859-7 ÍѤËÀßÄꤵ¤ì¤¿´Ä¶­¤Ç¤Î¤ßÀµ¤·¤¯É½¼¨¤Ç¤­¤ë¤À¤í¤¦¡£ +マニュアル・ページに載っていないものを示している。 +4列目は ISO 8859-7 用に設定された環境でのみ正しく表示できるだろう。 -[ ÌõÃí ¸¶Ê¸¤Ç¤Ï Char ¤ÎÉôʬ¤Ë ISO 8859-7 ¤Îʸ»ú¤¬¤¢¤Ã¤¿¤¬¡¢ -ÆüËܸì EUC ¤È¤ÎÊ»ÍѤÏÆñ¤·¤¤¤Î¤Çºï½ü¤·¡¢JIS X 0208 ¤ÎƱ¤¸Ê¸»ú¤ò -¼¨¤¹¤è¤¦¤Ë¤·¤¿¡£¤½¤Î¾¤Îʸ»ú¤Ë´Ø¤·¤Æ¤Ï -±Ñ¸ìÈǤΠiso_8859-7(7) ¤òŬÀڤʥե©¥ó¥È¤ò½àÈ÷¤·¤Æ»²¾È¤·¤Æ¤Û¤·¤¤¡£ ] +[ 訳注 原文では Char の部分に ISO 8859-7 の文字があったが、 +日本語 EUC との併用は難しいので削除し、JIS X 0208 の同じ文字を +示すようにした。その他の文字に関しては +英語版の iso_8859-7(7) を適切なフォントを準備して参照してほしい。 ] .TS l l l c lp-1. Oct Dec Hex Char Description @@ -104,59 +104,59 @@ _ 240 160 A0 NO-BREAK SPACE 241 161 A1 LEFT SINGLE QUOTATION MARK 242 162 A2 RIGHT SINGLE QUOTATION MARK -243 163 A3 ¡ò POUND SIGN +243 163 A3 £ POUND SIGN 244 164 A4 EURO SIGN 245 165 A5 DRACHMA SIGN 246 166 A6 BROKEN BAR -247 167 A7 ¡ø SECTION SIGN -250 168 A8 ¡¯ DIAERESIS +247 167 A7 § SECTION SIGN +250 168 A8 ¨ DIAERESIS 251 169 A9 COPYRIGHT SIGN 252 170 AA GREEK YPOGEGRAMMENI -253 171 AB ¡Ô LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -254 172 AC ¢Ì NOT SIGN +253 171 AB 《 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +254 172 AC ¬ NOT SIGN 255 173 AD SOFT HYPHEN -257 175 AF ¡½ HORIZONTAL BAR -260 176 B0 ¡ë DEGREE SIGN -261 177 B1 ¡Þ PLUS-MINUS SIGN +257 175 AF — HORIZONTAL BAR +260 176 B0 ° DEGREE SIGN +261 177 B1 ± PLUS-MINUS SIGN 262 178 B2 SUPERSCRIPT TWO 263 179 B3 SUPERSCRIPT THREE 264 180 B4 GREEK TONOS 265 181 B5 GREEK DIALYTIKA TONOS 266 182 B6 GREEK CAPITAL LETTER ALPHA WITH TONOS -267 183 B7 ¡¦ MIDDLE DOT +267 183 B7 ・ MIDDLE DOT 270 184 B8 GREEK CAPITAL LETTER EPSILON WITH TONOS 271 185 B9 GREEK CAPITAL LETTER ETA WITH TONOS 272 186 BA GREEK CAPITAL LETTER IOTA WITH TONOS -273 187 BB ¡Õ RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +273 187 BB 》 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 274 188 BC GREEK CAPITAL LETTER OMICRON WITH TONOS 275 189 BD VULGAR FRACTION ONE HALF 276 190 BE GREEK CAPITAL LETTER UPSILON WITH TONOS 277 191 BF GREEK CAPITAL LETTER OMEGA WITH TONOS 300 192 C0 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS -301 193 C1 ¦¡ GREEK CAPITAL LETTER ALPHA -302 194 C2 ¦¢ GREEK CAPITAL LETTER BETA -303 195 C3 ¦£ GREEK CAPITAL LETTER GAMMA -304 196 C4 ¦¤ GREEK CAPITAL LETTER DELTA -305 197 C5 ¦¥ GREEK CAPITAL LETTER EPSILON -306 198 C6 ¦¦ GREEK CAPITAL LETTER ZETA -307 199 C7 ¦§ GREEK CAPITAL LETTER ETA -310 200 C8 ¦¨ GREEK CAPITAL LETTER THETA -311 201 C9 ¦© GREEK CAPITAL LETTER IOTA -312 202 CA ¦ª GREEK CAPITAL LETTER KAPPA -313 203 CB ¦« GREEK CAPITAL LETTER LAMBDA -314 204 CC ¦¬ GREEK CAPITAL LETTER MU -315 205 CD ¦­ GREEK CAPITAL LETTER NU -316 206 CE ¦® GREEK CAPITAL LETTER XI -317 207 CF ¦¯ GREEK CAPITAL LETTER OMICRON -320 208 D0 ¦° GREEK CAPITAL LETTER PI -321 209 D1 ¦± GREEK CAPITAL LETTER RHO -323 211 D3 ¦² GREEK CAPITAL LETTER SIGMA -324 212 D4 ¦³ GREEK CAPITAL LETTER TAU -325 213 D5 ¦´ GREEK CAPITAL LETTER UPSILON -326 214 D6 ¦µ GREEK CAPITAL LETTER PHI -327 215 D7 ¦¶ GREEK CAPITAL LETTER CHI -330 216 D8 ¦· GREEK CAPITAL LETTER PSI -331 217 D9 ¦¸ GREEK CAPITAL LETTER OMEGA +301 193 C1 Α GREEK CAPITAL LETTER ALPHA +302 194 C2 Β GREEK CAPITAL LETTER BETA +303 195 C3 Γ GREEK CAPITAL LETTER GAMMA +304 196 C4 Δ GREEK CAPITAL LETTER DELTA +305 197 C5 Ε GREEK CAPITAL LETTER EPSILON +306 198 C6 Ζ GREEK CAPITAL LETTER ZETA +307 199 C7 Η GREEK CAPITAL LETTER ETA +310 200 C8 Θ GREEK CAPITAL LETTER THETA +311 201 C9 Ι GREEK CAPITAL LETTER IOTA +312 202 CA Κ GREEK CAPITAL LETTER KAPPA +313 203 CB Λ GREEK CAPITAL LETTER LAMBDA +314 204 CC Μ GREEK CAPITAL LETTER MU +315 205 CD Ν GREEK CAPITAL LETTER NU +316 206 CE Ξ GREEK CAPITAL LETTER XI +317 207 CF Ο GREEK CAPITAL LETTER OMICRON +320 208 D0 Π GREEK CAPITAL LETTER PI +321 209 D1 Ρ GREEK CAPITAL LETTER RHO +323 211 D3 Σ GREEK CAPITAL LETTER SIGMA +324 212 D4 Τ GREEK CAPITAL LETTER TAU +325 213 D5 Î¥ GREEK CAPITAL LETTER UPSILON +326 214 D6 Φ GREEK CAPITAL LETTER PHI +327 215 D7 Χ GREEK CAPITAL LETTER CHI +330 216 D8 Ψ GREEK CAPITAL LETTER PSI +331 217 D9 Ω GREEK CAPITAL LETTER OMEGA 332 218 DA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA 333 219 DB GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA 334 220 DC GREEK SMALL LETTER ALPHA WITH TONOS @@ -164,31 +164,31 @@ _ 336 222 DE GREEK SMALL LETTER ETA WITH TONOS 337 223 DF GREEK SMALL LETTER IOTA WITH TONOS 340 224 E0 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS -341 225 E1 ¦Á GREEK SMALL LETTER ALPHA -342 226 E2 ¦Â GREEK SMALL LETTER BETA -343 227 E3 ¦Ã GREEK SMALL LETTER GAMMA -344 228 E4 ¦Ä GREEK SMALL LETTER DELTA -345 229 E5 ¦Å GREEK SMALL LETTER EPSILON -346 230 E6 ¦Æ GREEK SMALL LETTER ZETA -347 231 E7 ¦Ç GREEK SMALL LETTER ETA -350 232 E8 ¦È GREEK SMALL LETTER THETA -351 233 E9 ¦É GREEK SMALL LETTER IOTA -352 234 EA ¦Ê GREEK SMALL LETTER KAPPA -353 235 EB ¦Ë GREEK SMALL LETTER LAMBDA -354 236 EC ¦Ì GREEK SMALL LETTER MU -355 237 ED ¦Í GREEK SMALL LETTER NU -356 238 EE ¦Î GREEK SMALL LETTER XI -357 239 EF ¦Ï GREEK SMALL LETTER OMICRON -360 240 F0 ¦Ð GREEK SMALL LETTER PI -361 241 F1 ¦Ñ GREEK SMALL LETTER RHO +341 225 E1 α GREEK SMALL LETTER ALPHA +342 226 E2 β GREEK SMALL LETTER BETA +343 227 E3 γ GREEK SMALL LETTER GAMMA +344 228 E4 δ GREEK SMALL LETTER DELTA +345 229 E5 ε GREEK SMALL LETTER EPSILON +346 230 E6 ζ GREEK SMALL LETTER ZETA +347 231 E7 η GREEK SMALL LETTER ETA +350 232 E8 θ GREEK SMALL LETTER THETA +351 233 E9 ι GREEK SMALL LETTER IOTA +352 234 EA κ GREEK SMALL LETTER KAPPA +353 235 EB λ GREEK SMALL LETTER LAMBDA +354 236 EC μ GREEK SMALL LETTER MU +355 237 ED ν GREEK SMALL LETTER NU +356 238 EE ξ GREEK SMALL LETTER XI +357 239 EF ο GREEK SMALL LETTER OMICRON +360 240 F0 π GREEK SMALL LETTER PI +361 241 F1 ρ GREEK SMALL LETTER RHO 362 242 F2 GREEK SMALL LETTER FINAL SIGMA -363 243 F3 ¦Ò GREEK SMALL LETTER SIGMA -364 244 F4 ¦Ó GREEK SMALL LETTER TAU -365 245 F5 ¦Ô GREEK SMALL LETTER UPSILON -366 246 F6 ¦Õ GREEK SMALL LETTER PHI -367 247 F7 ¦Ö GREEK SMALL LETTER CHI -370 248 F8 ¦× GREEK SMALL LETTER PSI -371 249 F9 ¦Ø GREEK SMALL LETTER OMEGA +363 243 F3 σ GREEK SMALL LETTER SIGMA +364 244 F4 τ GREEK SMALL LETTER TAU +365 245 F5 υ GREEK SMALL LETTER UPSILON +366 246 F6 φ GREEK SMALL LETTER PHI +367 247 F7 χ GREEK SMALL LETTER CHI +370 248 F8 ψ GREEK SMALL LETTER PSI +371 249 F9 ω GREEK SMALL LETTER OMEGA 372 250 FA GREEK SMALL LETTER IOTA WITH DIALYTIKA 373 251 FB GREEK SMALL LETTER UPSILON WITH DIALYTIKA 374 252 FC GREEK SMALL LETTER OMICRON WITH TONOS @@ -196,9 +196,9 @@ _ 376 254 FE GREEK SMALL LETTER OMEGA WITH TONOS .TE .\"O .SH NOTES -.SH È÷¹Í +.SH 備考 .\"O ISO 8859-7 was formerly known as ELOT-928 or ECMA-118:1986. -ISO 8859-7 ¤Ï°ÊÁ°¤Ï ELOT-928 ¤È¤« ECMA-118:1986 ¤È¸Æ¤Ð¤ì¤Æ¤¤¤¿¡£ +ISO 8859-7 は以前は ELOT-928 とか ECMA-118:1986 と呼ばれていた。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ascii (7) diff --git a/draft/man7/iso_8859-9.7 b/draft/man7/iso_8859-9.7 index 7d8f4a9d..be789066 100644 --- a/draft/man7/iso_8859-9.7 +++ b/draft/man7/iso_8859-9.7 @@ -32,21 +32,21 @@ .\"O .SH NAME .\"O iso_8859-9 \- ISO 8859-9 character set encoded in octal, decimal, .\"O and hexadecimal -.SH ̾Á° -iso_8859-9 \- ISO 8859-9 ʸ»ú½¸¹ç¤Î 8¿Ê¿ô¡¢10¿Ê¿ô¡¢16¿Ê¿ô¤Ë¤è¤ëÉä¹æ²½ +.SH 名前 +iso_8859-9 \- ISO 8859-9 文字集合の 8進数、10進数、16進数による符号化 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The ISO 8859 standard includes several 8-bit extensions to the ASCII .\"O character set (also known as ISO 646-IRV). .\"O ISO 8859-9, also known as .\"O the "Latin Alphabet No. 5", encodes the characters used in Turkish. -ISO 8859 µ¬³Ê¤Ï ASCII ʸ»ú½¸¹ç (ÊÌ̾¡¢ISO 646-IRV) ¤Ø¤Î 8 ¥Ó¥Ã¥È³ÈÄ¥ -¤ò¤¤¤¯¤Ä¤«´Þ¤ó¤Ç¤¤¤ë¡£ISO 8859-9 (ÊÌ̾¡¢¥é¥Æ¥ó¡¦¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È No.2) -¤Ï¥È¥ë¥³¸ì¤Ë»ÈÍѤµ¤ì¤ëʸ»ú¤òÉä¹æ²½¤·¤Æ¤¤¤ë¡£ +ISO 8859 規格は ASCII 文字集合 (別名、ISO 646-IRV) への 8 ビット拡張 +をいくつか含んでいる。ISO 8859-9 (別名、ラテン・アルファベット No.2) +はトルコ語に使用される文字を符号化している。 .\"O .SS "ISO 8859 Alphabets" -.SS "ISO 8859 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È" +.SS "ISO 8859 アルファベット" .\"O The full set of ISO 8859 alphabets includes: -´°Á´¤Ê ISO 8859 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Ï°Ê²¼¤Î¤â¤Î¤ò´Þ¤ó¤Ç¤¤¤ë: +完全な ISO 8859 アルファベットは以下のものを含んでいる: .TS l l. .\"O ISO 8859-1 West European languages (Latin-1) @@ -64,38 +64,38 @@ l l. .\"O ISO 8859-14 Celtic (Latin-8) .\"O ISO 8859-15 West European languages (Latin-9) .\"O ISO 8859-16 Romanian (Latin-10) -ISO 8859-1 À¾¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-1) -ISO 8859-2 Ãæ±û¡¦Åì¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-2) -ISO 8859-3 ÅìÆî¥è¡¼¥í¥Ã¥Ñ¤ä¤½¤Î¾¤Î¸À¸ì (Latin-3) -ISO 8859-4 ¥¹¥«¥ó¥¸¥Ê¥Ó¥¢/¥Ð¥ë¥È¸ìÇɤθÀ¸ì (Latin-4) -ISO 8859-5 ¥é¥Æ¥ó/¥­¥ê¥ëʸ»ú -ISO 8859-6 ¥é¥Æ¥ó/¥¢¥é¥Ó¥¢Ê¸»ú -ISO 8859-7 ¥é¥Æ¥ó/¥®¥ê¥·¥ãʸ»ú -ISO 8859-8 ¥é¥Æ¥ó/¥Ø¥Ö¥é¥¤¸ì -ISO 8859-9 ¥È¥ë¥³¸ìÍѤ˽¤Àµ¤ò¹Ô¤Ê¤Ã¤¿ Latin-1 (Latin-5) -ISO 8859-10 ¥é¥Ã¥×/¥Î¥ë¥Ç¥£¥Ã¥¯/¥¨¥¹¥­¥â¡¼¤Î¸À¸ì (Latin-6) -ISO 8859-11 ¥é¥Æ¥ó/¥¿¥¤¸ì -ISO 8859-13 ¥Ð¥ë¥È½ô¹ñ¤Î¸À¸ì (Latin-7) -ISO 8859-14 ¥±¥ë¥È¸ì (Latin-8) -ISO 8859-15 À¾¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-9) -ISO 8859-16 ¥ë¡¼¥Þ¥Ë¥¢¸ì (Latin-10) +ISO 8859-1 西ヨーロッパの言語 (Latin-1) +ISO 8859-2 中央・東ヨーロッパの言語 (Latin-2) +ISO 8859-3 東南ヨーロッパやその他の言語 (Latin-3) +ISO 8859-4 スカンジナビア/バルト語派の言語 (Latin-4) +ISO 8859-5 ラテン/キリル文字 +ISO 8859-6 ラテン/アラビア文字 +ISO 8859-7 ラテン/ギリシャ文字 +ISO 8859-8 ラテン/ヘブライ語 +ISO 8859-9 トルコ語用に修正を行なった Latin-1 (Latin-5) +ISO 8859-10 ラップ/ノルディック/エスキモーの言語 (Latin-6) +ISO 8859-11 ラテン/タイ語 +ISO 8859-13 バルト諸国の言語 (Latin-7) +ISO 8859-14 ケルト語 (Latin-8) +ISO 8859-15 西ヨーロッパの言語 (Latin-9) +ISO 8859-16 ルーマニア語 (Latin-10) .TE .\"O .SS "ISO 8859-9 Characters" -.SS "ISO 8859-9 ʸ»ú" +.SS "ISO 8859-9 文字" .\"O The following table displays the characters in ISO 8859-9 (Latin-5), .\"O which are printable and unlisted in the .\"O .BR ascii (7) .\"O The fourth column will only show the proper glyphs .\"O configured for ISO 8859-9. -°Ê²¼¤Îɽ¤Ï ISO 8859-9 (Latin-5) ¤Îɽ¼¨²Äǽ¤Êʸ»ú¤Î¤¦¤Á +以下の表は ISO 8859-9 (Latin-5) の表示可能な文字のうち .BR ascii (7) -¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤ËºÜ¤Ã¤Æ¤¤¤Ê¤¤¤â¤Î¤ò¼¨¤·¤Æ¤¤¤ë¡£ -4ÎóÌÜ¤Ï ISO 8859-9 ÍѤËÀßÄꤵ¤ì¤¿´Ä¶­¤Ç¤Î¤ßÀµ¤·¤¯É½¼¨¤Ç¤­¤ë¤À¤í¤¦¡£ +マニュアル・ページに載っていないものを示している。 +4列目は ISO 8859-9 用に設定された環境でのみ正しく表示できるだろう。 -[ ÌõÃí ¸¶Ê¸¤Ç¤Ï Char ¤ÎÉôʬ¤Ë ISO 8859-9 ¤Îʸ»ú¤¬¤¢¤Ã¤¿¤¬¡¢ -ÆüËܸì EUC ¤È¤ÎÊ»ÍѤÏÆñ¤·¤¤¤Î¤Çºï½ü¤·¡¢JIS X 0208 ¤ÎƱ¤¸Ê¸»ú¤ò -¼¨¤¹¤è¤¦¤Ë¤·¤¿¡£¤½¤Î¾¤Îʸ»ú¤Ë´Ø¤·¤Æ¤Ï -±Ñ¸ìÈǤΠiso_8859-9(7) ¤òŬÀڤʥե©¥ó¥È¤ò½àÈ÷¤·¤Æ»²¾È¡£ ] +[ 訳注 原文では Char の部分に ISO 8859-9 の文字があったが、 +日本語 EUC との併用は難しいので削除し、JIS X 0208 の同じ文字を +示すようにした。その他の文字に関しては +英語版の iso_8859-9(7) を適切なフォントを準備して参照。 ] .TS l l l c lp-1. Oct Dec Hex Char Description @@ -103,31 +103,31 @@ _ 240 160 A0 NO-BREAK SPACE 241 161 A1 INVERTED EXCLAMATION MARK 242 162 A2 CENT SIGN -243 163 A3 ¡ò POUND SIGN +243 163 A3 £ POUND SIGN 244 164 A4 CURRENCY SIGN 245 165 A5 YEN SIGN 246 166 A6 BROKEN BAR -247 167 A7 ¡ø SECTION SIGN +247 167 A7 § SECTION SIGN 250 168 A8 DIAERESIS 251 169 A9 COPYRIGHT SIGN 252 170 AA FEMININE ORDINAL INDICATOR -253 171 AB ¡Ô LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -254 172 AC ¢Ì NOT SIGN +253 171 AB 《 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +254 172 AC ¬ NOT SIGN 255 173 AD SOFT HYPHEN 256 174 AE REGISTERED SIGN 257 175 AF MACRON -260 176 B0 ¡ë DEGREE SIGN -261 177 B1 ¡Þ PLUS-MINUS SIGN +260 176 B0 ° DEGREE SIGN +261 177 B1 ± PLUS-MINUS SIGN 262 178 B2 SUPERSCRIPT TWO 263 179 B3 SUPERSCRIPT THREE -264 180 B4 ¡ì ACUTE ACCENT -265 181 B5 ¦Ì MICRO SIGN +264 180 B4 ′ ACUTE ACCENT +265 181 B5 μ MICRO SIGN 266 182 B6 PILCROW SIGN -267 183 B7 ¡¦ MIDDLE DOT +267 183 B7 ・ MIDDLE DOT 270 184 B8 CEDILLA 271 185 B9 SUPERSCRIPT ONE 272 186 BA MASCULINE ORDINAL INDICATOR -273 187 BB ¡Õ RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +273 187 BB 》 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 274 188 BC 1/4 VULGAR FRACTION ONE QUARTER 275 189 BD 1/2 VULGAR FRACTION ONE HALF 276 190 BE 3/4 VULGAR FRACTION THREE QUARTERS @@ -155,7 +155,7 @@ _ 324 212 D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX 325 213 D5 LATIN CAPITAL LETTER O WITH TILDE 326 214 D6 LATIN CAPITAL LETTER O WITH DIAERESIS -327 215 D7 ¡ß MULTIPLICATION SIGN +327 215 D7 × MULTIPLICATION SIGN 330 216 D8 LATIN CAPITAL LETTER O WITH STROKE 331 217 D9 LATIN CAPITAL LETTER U WITH GRAVE 332 218 DA LATIN CAPITAL LETTER U WITH ACUTE @@ -187,7 +187,7 @@ _ 364 244 F4 LATIN SMALL LETTER O WITH CIRCUMFLEX 365 245 F5 LATIN SMALL LETTER O WITH TILDE 366 246 F6 LATIN SMALL LETTER O WITH DIAERESIS -367 247 F7 ¡à DIVISION SIGN +367 247 F7 ÷ DIVISION SIGN 370 248 F8 LATIN SMALL LETTER O WITH STROKE 371 249 F9 LATIN SMALL LETTER U WITH GRAVE 372 250 FA LATIN SMALL LETTER U WITH ACUTE @@ -198,5 +198,5 @@ _ 377 255 FF LATIN SMALL LETTER Y WITH DIAERESIS .TE .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ascii (7) diff --git a/draft/man7/koi8-r.7 b/draft/man7/koi8-r.7 index 75da5518..3da692c5 100644 --- a/draft/man7/koi8-r.7 +++ b/draft/man7/koi8-r.7 @@ -28,36 +28,36 @@ .\" Translated Sat Jul 7 21:41:56 JST 2001 .\" by Yuichi SATO .\" -.\"WORD: Cyrillic ¥­¥ê¥ë -.\"WORD: ex-SU µì¥½¥Ó¥¨¥ÈϢˮ -.\"WORD: Ukrainian ¥¦¥¯¥é¥¤¥Ê¸ì -.\"WORD: Byelorussian ¥Ù¥é¥ë¡¼¥·¸ì +.\"WORD: Cyrillic キリル +.\"WORD: ex-SU 旧ソビエト連邦 +.\"WORD: Ukrainian ウクライナ語 +.\"WORD: Byelorussian ベラルーシ語 .\" .TH KOI8-R 7 2010-10-24 "Linux" "Linux Programmer's Manual" .nh .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O koi8-r \- Russian character set encoded in octal, decimal, and .\"O hexadecimal -koi8-r \- ¥í¥·¥¢¸ìʸ»ú½¸¹ç¤Î 8 ¿Ê¿ô¡¢10 ¿Ê¿ô¡¢16 ¿Ê¿ô¤Ë¤è¤ëÉä¹æ²½ +koi8-r \- ロシア語文字集合の 8 進数、10 進数、16 進数による符号化 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O KOI8-R is the character set of choice for encoding Russian texts for .\"O many UNIX-like operation systems. .\"O KOI8-R is a successor for KOI-8, a .\"O de-facto standard for Internet Mail, News, WWW and other interactive .\"O services at least all over the ex-SU territory. -KOI8-R ¤Ï¿¤¯¤Î UNIX ·Ï OS ¤Ç»È¤ï¤ì¤ë¥í¥·¥¢¸ìʸ½ñ¤òÉä¹æ²½¤¹¤ë -ʸ»ú½¸¹ç¤ÎÁªÂò»Þ¤Î°ì¤Ä¤Ç¤¢¤ë¡£ -KOI8-R ¤Ï¡¢¾¯¤Ê¤¯¤È¤âµì¥½¥Ó¥¨¥ÈϢˮ¤ÎÁ´¤Æ¤Î·÷Æâ¤Ë¤ª¤¤¤Æ -¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Î¥á¡¼¥ë¡¦¥Ë¥å¡¼¥¹¡¦WWW¡¦¤½¤Î¾¤ÎÂÐÏÃŪ¥µ¡¼¥Ó¥¹¤Î -»ö¼Â¾å¤Îɸ½à¤Ç¤¢¤Ã¤¿ KOI-8 ¤ò·Ñ¾µ¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +KOI8-R は多くの UNIX ç³» OS で使われるロシア語文書を符号化する +文字集合の選択枝の一つである。 +KOI8-R は、少なくとも旧ソビエト連邦の全ての圏内において +インターネットのメール・ニュース・WWW・その他の対話的サービスの +事実上の標準であった KOI-8 を継承するものである。 .PP .\"O KOI8-R is defined by RFC\ 1489 (Registration of a Cyrillic Character .\"O Set). -KOI8-R ¤Ï RFC\ 1489 (¥­¥ê¥ëʸ»ú½¸¹ç¤ÎÅÐÏ¿) ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +KOI8-R は RFC\ 1489 (キリル文字集合の登録) で定義されている。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O KOI8-R was designed for mixed Russian/English texts and covers .\"O only Russian Cyrillic characters, so if you're looking for Ukrainian, .\"O Byelorussian, etc. @@ -65,48 +65,48 @@ KOI8-R .\"O (Ukrainian Character Set), or KOI8-C (for ancient Russian texts) .\"O instead, which are identical to KOI8-R in the Russian Cyrillic letters .\"O area. -KOI8-R ¤Ï¥í¥·¥¢¸ì¤È±Ñ¸ì¤¬º®¤¸¤Ã¤¿Ê¸½ñ¤Î¤¿¤á¤Ë¥Ç¥¶¥¤¥ó¤µ¤ì¡¢ -¥í¥·¥¢¸ì¥­¥ê¥ëʸ»ú¤Î¤ß¤ò°·¤¦¡£ -¥¦¥¯¥é¥¤¥Ê¸ì¤ä¥Ù¥é¥ë¡¼¥·¸ì¤Î¥­¥ê¥ëʸ»ú¤ò»È¤¤¤¿¤¤¤È¤­¤Ï¡¢ -ISO-IR-111, KOI8-U (¥¦¥¯¥é¥¤¥Ê¸ìʸ»ú½¸¹ç), -(¸ÅÂå¥í¥·¥¢¸ìʸ½ñ¤Î¤¿¤á¤Î) KOI8-C ¤Ê¤É¤ò»î¤¹¤³¤È¡£ -¤³¤ì¤é¤Îʸ»ú½¸¹ç¤Ï¡¢¥í¥·¥¢¸ì¥­¥ê¥ëʸ»ú¤ÎÈÏ°Ï¤Ç¤Ï KOI8-R ¤ÈÅù¤·¤¤¡£ +KOI8-R はロシア語と英語が混じった文書のためにデザインされ、 +ロシア語キリル文字のみを扱う。 +ウクライナ語やベラルーシ語のキリル文字を使いたいときは、 +ISO-IR-111, KOI8-U (ウクライナ語文字集合), +(古代ロシア語文書のための) KOI8-C などを試すこと。 +これらの文字集合は、ロシア語キリル文字の範囲では KOI8-R と等しい。 .PP .\"O A more complete set of Cyrillic characters is also defined by the .\"O ISO-8859-5 character set. -¤â¤Ã¤È´°Á´¤Ê¥­¥ê¥ëʸ»ú½¸¹ç¤Ï ISO-8859-5 ʸ»ú½¸¹ç¤Ç¤âÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +もっと完全なキリル文字集合は ISO-8859-5 文字集合でも定義されている。 .\"O .SS "KOI8-R Characters" -.SS "KOI8-R ʸ»ú½¸¹ç" +.SS "KOI8-R 文字集合" .\"O The following table displays the characters in KOI8-R, which .\"O are printable and unlisted in the .\"O .BR ascii (7) .\"O manual page. -°Ê²¼¤Îɽ¤Ï KOI8-R ¤Îɽ¼¨²Äǽ¤Êʸ»ú¤Î¤¦¤Á +以下の表は KOI8-R の表示可能な文字のうち .BR ascii (7) -¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤ËºÜ¤Ã¤Æ¤¤¤Ê¤¤¤â¤Î¤ò¼¨¤·¤Æ¤¤¤ë¡£ +マニュアル・ページに載っていないものを示している。 -[ ÌõÃí ¸¶Ê¸¤Ç¤Ï Char ¤ÎÉôʬ¤Ë KOI8-R ¤Îʸ»ú¤¬¤¢¤Ã¤¿¤¬¡¢ -ÆüËܸì EUC ¤È¤ÎÊ»ÍѤÏÆñ¤·¤¤¤Î¤Çºï½ü¤·¡¢JIS X 0208 ¤ÎƱ¤¸Ê¸»ú¤ò -¼¨¤¹¤è¤¦¤Ë¤·¤¿¡£¤½¤Î¾¤Îʸ»ú¤Ë´Ø¤·¤Æ¤Ï -±Ñ¸ìÈǤΠkoi8-r(7) ¤òŬÀڤʥե©¥ó¥È¤ò½àÈ÷¤·¤Æ»²¾È¡£ ] +[ 訳注 原文では Char の部分に KOI8-R の文字があったが、 +日本語 EUC との併用は難しいので削除し、JIS X 0208 の同じ文字を +示すようにした。その他の文字に関しては +英語版の koi8-r(7) を適切なフォントを準備して参照。 ] .TS l l l c lp-1. Oct Dec Hex Char Description _ -200 128 80 ¨¡ BOX DRAWINGS LIGHT HORIZONTAL -201 129 81 ¨¢ BOX DRAWINGS LIGHT VERTICAL -202 130 82 ¨£ BOX DRAWINGS LIGHT DOWN AND RIGHT -203 131 83 ¨¤ BOX DRAWINGS LIGHT DOWN AND LEFT -204 132 84 ¨¦ BOX DRAWINGS LIGHT UP AND RIGHT -205 133 85 ¨¥ BOX DRAWINGS LIGHT UP AND LEFT -206 134 86 ¨§ BOX DRAWINGS LIGHT VERTICAL AND RIGHT -207 135 87 ¨© BOX DRAWINGS LIGHT VERTICAL AND LEFT -210 136 88 ¨¨ BOX DRAWINGS LIGHT DOWN AND HORIZONTAL -211 137 89 ¨ª BOX DRAWINGS LIGHT UP AND HORIZONTAL -212 138 8A ¨« BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL +200 128 80 ─ BOX DRAWINGS LIGHT HORIZONTAL +201 129 81 │ BOX DRAWINGS LIGHT VERTICAL +202 130 82 ┌ BOX DRAWINGS LIGHT DOWN AND RIGHT +203 131 83 ┐ BOX DRAWINGS LIGHT DOWN AND LEFT +204 132 84 └ BOX DRAWINGS LIGHT UP AND RIGHT +205 133 85 ┘ BOX DRAWINGS LIGHT UP AND LEFT +206 134 86 ├ BOX DRAWINGS LIGHT VERTICAL AND RIGHT +207 135 87 ┤ BOX DRAWINGS LIGHT VERTICAL AND LEFT +210 136 88 ┬ BOX DRAWINGS LIGHT DOWN AND HORIZONTAL +211 137 89 ┴ BOX DRAWINGS LIGHT UP AND HORIZONTAL +212 138 8A ┼ BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL 213 139 8B UPPER HALF BLOCK 214 140 8C LOWER HALF BLOCK -215 141 8D ¢£ FULL BLOCK +215 141 8D ■ FULL BLOCK 216 142 8E LEFT HALF BLOCK 217 143 8F RIGHT HALF BLOCK 220 144 90 LIGHT SHADE @@ -115,116 +115,116 @@ _ 223 147 93 TOP HALF INTEGRAL 224 148 94 BLACK SQUARE 225 149 95 BULLET OPERATOR -226 150 96 ¢å SQUARE ROOT -227 151 97 ¢â ALMOST EQUAL TO -230 152 98 ¡å LESS-THAN OR EQUAL TO -231 153 99 ¡æ GREATER-THAN OR EQUAL TO +226 150 96 √ SQUARE ROOT +227 151 97 ≒ ALMOST EQUAL TO +230 152 98 ≦ LESS-THAN OR EQUAL TO +231 153 99 ≧ GREATER-THAN OR EQUAL TO 232 154 9A NO-BREAK SPACE 233 155 9B BOTTOM HALF INTEGRAL -234 156 9C ¡¬ DEGREE SIGN +234 156 9C ゜ DEGREE SIGN 235 157 9D SUPERSCRIPT TWO -236 158 9E ¡¦ MIDDLE DOT -237 159 9F ¡à DIVISION SIGN -240 160 A0 ¨¬ BOX DRAWINGS DOUBLE HORIZONTAL -241 161 A1 ¨­ BOX DRAWINGS DOUBLE VERTICAL +236 158 9E ・ MIDDLE DOT +237 159 9F ÷ DIVISION SIGN +240 160 A0 ━ BOX DRAWINGS DOUBLE HORIZONTAL +241 161 A1 ┃ BOX DRAWINGS DOUBLE VERTICAL 242 162 A2 BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE -243 163 A3 §× CYRILLIC SMALL LETTER IO +243 163 A3 ё CYRILLIC SMALL LETTER IO 244 164 A4 BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE -245 165 A5 ¨® BOX DRAWINGS DOUBLE DOWN AND RIGHT +245 165 A5 ┏ BOX DRAWINGS DOUBLE DOWN AND RIGHT 246 166 A6 BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE 247 167 A7 BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE -250 168 A8 ¨¯ BOX DRAWINGS DOUBLE DOWN AND LEFT +250 168 A8 ┓ BOX DRAWINGS DOUBLE DOWN AND LEFT 251 169 A9 BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE 252 170 AA BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE -253 171 AB ¨± BOX DRAWINGS DOUBLE UP AND RIGHT +253 171 AB ┗ BOX DRAWINGS DOUBLE UP AND RIGHT 254 172 AC BOX DRAWINGS UP SINGLE AND LEFT DOUBLE 255 173 AD BOX DRAWINGS UP DOUBLE AND LEFT SINGLE -256 174 AE ¨° BOX DRAWINGS DOUBLE UP AND LEFT -257 175 AF ¨¼ BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE -260 176 B0 ¨· BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE -261 177 B1 ¨² BOX DRAWINGS DOUBLE VERTICAL AND RIGHT -262 178 B2 ¨¾ BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE -263 179 B3 §§ CYRILLIC CAPITAL LETTER IO -264 180 B4 ¨¹ BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE -265 181 B5 ¨´ BOX DRAWINGS DOUBLE VERTICAL AND LEFT -266 182 B6 ¨¸ BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE -267 183 B7 ¨½ BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE -270 184 B8 ¨³ BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL -271 185 B9 ¨º BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE -272 186 BA ¨¿ BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE -273 187 BB ¨µ BOX DRAWINGS DOUBLE UP AND HORIZONTAL -274 188 BC ¨» BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE -275 189 BD ¨À BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE -276 190 BE ¨¶ BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL +256 174 AE ┛ BOX DRAWINGS DOUBLE UP AND LEFT +257 175 AF ┝ BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE +260 176 B0 ┠ BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE +261 177 B1 ┣ BOX DRAWINGS DOUBLE VERTICAL AND RIGHT +262 178 B2 ┥ BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE +263 179 B3 Ё CYRILLIC CAPITAL LETTER IO +264 180 B4 ┨ BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE +265 181 B5 ┫ BOX DRAWINGS DOUBLE VERTICAL AND LEFT +266 182 B6 ┯ BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE +267 183 B7 ┰ BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE +270 184 B8 ┳ BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL +271 185 B9 ┷ BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE +272 186 BA ┸ BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE +273 187 BB ┻ BOX DRAWINGS DOUBLE UP AND HORIZONTAL +274 188 BC ┿ BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE +275 189 BD ╂ BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE +276 190 BE ╋ BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL 277 191 BF COPYRIGHT SIGN -300 192 C0 §ð CYRILLIC SMALL LETTER YU -301 193 C1 §Ñ CYRILLIC SMALL LETTER A -302 194 C2 §Ò CYRILLIC SMALL LETTER BE -303 195 C3 §è CYRILLIC SMALL LETTER TSE -304 196 C4 §Õ CYRILLIC SMALL LETTER DE -305 197 C5 §Ö CYRILLIC SMALL LETTER IE -306 198 C6 §æ CYRILLIC SMALL LETTER EF -307 199 C7 §Ô CYRILLIC SMALL LETTER GHE -310 200 C8 §ç CYRILLIC SMALL LETTER HA -311 201 C9 §Ú CYRILLIC SMALL LETTER I -312 202 CA §Û CYRILLIC SMALL LETTER SHORT I -313 203 CB §Ü CYRILLIC SMALL LETTER KA -314 204 CC §Ý CYRILLIC SMALL LETTER EL -315 205 CD §Þ CYRILLIC SMALL LETTER EM -316 206 CE §ß CYRILLIC SMALL LETTER EN -317 207 CF §à CYRILLIC SMALL LETTER O -320 208 D0 §á CYRILLIC SMALL LETTER PE -321 209 D1 §ñ CYRILLIC SMALL LETTER YA -322 210 D2 §â CYRILLIC SMALL LETTER ER -323 211 D3 §ã CYRILLIC SMALL LETTER ES -324 212 D4 §ä CYRILLIC SMALL LETTER TE -325 213 D5 §å CYRILLIC SMALL LETTER U -326 214 D6 §Ø CYRILLIC SMALL LETTER ZHE -327 215 D7 §Ó CYRILLIC SMALL LETTER VE -330 216 D8 §î CYRILLIC SMALL LETTER SOFT SIGN -331 217 D9 §í CYRILLIC SMALL LETTER YERU -332 218 DA §Ù CYRILLIC SMALL LETTER ZE -333 219 DB §ê CYRILLIC SMALL LETTER SHA -334 220 DC §ï CYRILLIC SMALL LETTER E -335 221 DD §ë CYRILLIC SMALL LETTER SHCHA -336 222 DE §é CYRILLIC SMALL LETTER CHE -337 223 DF §ì CYRILLIC SMALL LETTER HARD SIGN -340 224 E0 §À CYRILLIC CAPITAL LETTER YU -341 225 E1 §¡ CYRILLIC CAPITAL LETTER A -342 226 E2 §¢ CYRILLIC CAPITAL LETTER BE -343 227 E3 §¸ CYRILLIC CAPITAL LETTER TSE -344 228 E4 §¥ CYRILLIC CAPITAL LETTER DE -345 229 E5 §¦ CYRILLIC CAPITAL LETTER IE -346 230 E6 §¶ CYRILLIC CAPITAL LETTER EF -347 231 E7 §¤ CYRILLIC CAPITAL LETTER GHE -350 232 E8 §· CYRILLIC CAPITAL LETTER HA -351 233 E9 §ª CYRILLIC CAPITAL LETTER I -352 234 EA §« CYRILLIC CAPITAL LETTER SHORT I -353 235 EB §¬ CYRILLIC CAPITAL LETTER KA -354 236 EC §­ CYRILLIC CAPITAL LETTER EL -355 237 ED §® CYRILLIC CAPITAL LETTER EM -356 238 EE §¯ CYRILLIC CAPITAL LETTER EN -357 239 EF §° CYRILLIC CAPITAL LETTER O -360 240 F0 §± CYRILLIC CAPITAL LETTER PE -361 241 F1 §Á CYRILLIC CAPITAL LETTER YA -362 242 F2 §² CYRILLIC CAPITAL LETTER ER -363 243 F3 §³ CYRILLIC CAPITAL LETTER ES -364 244 F4 §´ CYRILLIC CAPITAL LETTER TE -365 245 F5 §µ CYRILLIC CAPITAL LETTER U -366 246 F6 §¨ CYRILLIC CAPITAL LETTER ZHE -367 247 F7 §£ CYRILLIC CAPITAL LETTER VE -370 248 F8 §¾ CYRILLIC CAPITAL LETTER SOFT SIGN -371 249 F9 §½ CYRILLIC CAPITAL LETTER YERU -372 250 FA §© CYRILLIC CAPITAL LETTER ZE -373 251 FB §º CYRILLIC CAPITAL LETTER SHA -374 252 FC §¿ CYRILLIC CAPITAL LETTER E -375 253 FD §» CYRILLIC CAPITAL LETTER SHCHA -376 254 FE §¹ CYRILLIC CAPITAL LETTER CHE -377 255 FF §¼ CYRILLIC CAPITAL LETTER HARD SIGN +300 192 C0 ю CYRILLIC SMALL LETTER YU +301 193 C1 а CYRILLIC SMALL LETTER A +302 194 C2 б CYRILLIC SMALL LETTER BE +303 195 C3 ц CYRILLIC SMALL LETTER TSE +304 196 C4 д CYRILLIC SMALL LETTER DE +305 197 C5 е CYRILLIC SMALL LETTER IE +306 198 C6 ф CYRILLIC SMALL LETTER EF +307 199 C7 г CYRILLIC SMALL LETTER GHE +310 200 C8 х CYRILLIC SMALL LETTER HA +311 201 C9 и CYRILLIC SMALL LETTER I +312 202 CA й CYRILLIC SMALL LETTER SHORT I +313 203 CB к CYRILLIC SMALL LETTER KA +314 204 CC л CYRILLIC SMALL LETTER EL +315 205 CD м CYRILLIC SMALL LETTER EM +316 206 CE н CYRILLIC SMALL LETTER EN +317 207 CF о CYRILLIC SMALL LETTER O +320 208 D0 п CYRILLIC SMALL LETTER PE +321 209 D1 я CYRILLIC SMALL LETTER YA +322 210 D2 р CYRILLIC SMALL LETTER ER +323 211 D3 с CYRILLIC SMALL LETTER ES +324 212 D4 т CYRILLIC SMALL LETTER TE +325 213 D5 у CYRILLIC SMALL LETTER U +326 214 D6 ж CYRILLIC SMALL LETTER ZHE +327 215 D7 в CYRILLIC SMALL LETTER VE +330 216 D8 ь CYRILLIC SMALL LETTER SOFT SIGN +331 217 D9 ы CYRILLIC SMALL LETTER YERU +332 218 DA з CYRILLIC SMALL LETTER ZE +333 219 DB ш CYRILLIC SMALL LETTER SHA +334 220 DC э CYRILLIC SMALL LETTER E +335 221 DD щ CYRILLIC SMALL LETTER SHCHA +336 222 DE ч CYRILLIC SMALL LETTER CHE +337 223 DF ъ CYRILLIC SMALL LETTER HARD SIGN +340 224 E0 Ю CYRILLIC CAPITAL LETTER YU +341 225 E1 А CYRILLIC CAPITAL LETTER A +342 226 E2 Б CYRILLIC CAPITAL LETTER BE +343 227 E3 Ц CYRILLIC CAPITAL LETTER TSE +344 228 E4 Д CYRILLIC CAPITAL LETTER DE +345 229 E5 Е CYRILLIC CAPITAL LETTER IE +346 230 E6 Ф CYRILLIC CAPITAL LETTER EF +347 231 E7 Г CYRILLIC CAPITAL LETTER GHE +350 232 E8 Ð¥ CYRILLIC CAPITAL LETTER HA +351 233 E9 И CYRILLIC CAPITAL LETTER I +352 234 EA Й CYRILLIC CAPITAL LETTER SHORT I +353 235 EB К CYRILLIC CAPITAL LETTER KA +354 236 EC Л CYRILLIC CAPITAL LETTER EL +355 237 ED М CYRILLIC CAPITAL LETTER EM +356 238 EE Н CYRILLIC CAPITAL LETTER EN +357 239 EF О CYRILLIC CAPITAL LETTER O +360 240 F0 П CYRILLIC CAPITAL LETTER PE +361 241 F1 Я CYRILLIC CAPITAL LETTER YA +362 242 F2 Р CYRILLIC CAPITAL LETTER ER +363 243 F3 С CYRILLIC CAPITAL LETTER ES +364 244 F4 Т CYRILLIC CAPITAL LETTER TE +365 245 F5 У CYRILLIC CAPITAL LETTER U +366 246 F6 Ж CYRILLIC CAPITAL LETTER ZHE +367 247 F7 В CYRILLIC CAPITAL LETTER VE +370 248 F8 Ь CYRILLIC CAPITAL LETTER SOFT SIGN +371 249 F9 Ы CYRILLIC CAPITAL LETTER YERU +372 250 FA З CYRILLIC CAPITAL LETTER ZE +373 251 FB Ш CYRILLIC CAPITAL LETTER SHA +374 252 FC Э CYRILLIC CAPITAL LETTER E +375 253 FD Щ CYRILLIC CAPITAL LETTER SHCHA +376 254 FE Ч CYRILLIC CAPITAL LETTER CHE +377 255 FF Ъ CYRILLIC CAPITAL LETTER HARD SIGN .TE .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ascii (7), .BR iso-8859-5 (7), .BR koi8-u (7), diff --git a/draft/man7/locale.7 b/draft/man7/locale.7 index c8934143..f09ea9bd 100644 --- a/draft/man7/locale.7 +++ b/draft/man7/locale.7 @@ -31,52 +31,52 @@ .\" by HANATAKA Shinya .\" Modified Thu 14 Nov 2002 by NAKANO Takeo .\" -.\"WORD: locale ¥í¥±¡¼¥ë +.\"WORD: locale ロケール .\" .TH LOCALE 7 2008-12-05 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O locale \- Description of multilanguage support -.SH ̾Á° -locale \- ¿¸À¸ì¥µ¥Ý¡¼¥È¤Î²òÀâ +.SH 名前 +locale \- 多言語サポートの解説 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O A locale is a set of language and cultural rules. .\"O These cover aspects .\"O such as language for messages, different character sets, lexicographic .\"O conventions, etc. .\"O A program needs to be able to determine its locale .\"O and act accordingly to be portable to different cultures. -¥í¥±¡¼¥ë (locale) ¤Ï¸À¸ì¤äʸ²½¥ë¡¼¥ë¤Î½¸¹ç¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Ï¡¢¥á¥Ã¥»¡¼¥¸½ÐÎϤ˻ÈÍѤ¹¤ë¸À¸ì¡¦¤¤¤í¤¤¤í¤Êʸ»ú½¸¹ç¡¦ -ɽµ­¤Ë´Ø¤¹¤ë´·½¬¤È¤¤¤Ã¤¿¤è¤¦¤ÊÌ̤ò¥«¥Ð¡¼¤·¤Æ¤¤¤ë¡£ -¥×¥í¥°¥é¥à¤ò¤¤¤í¤¤¤í¤Êʸ²½¤Ë°Ü¿¢²Äǽ¤È¤¹¤ë¤Ë¤Ï¡¢ -¤½¤Î¥×¥í¥°¥é¥à¤Ï¼«Ê¬¤Î¥í¥±¡¼¥ë¤ò·è¤á¤Æ¡¢ -¤½¤ì¤Ë±þ¤¸¤¿Å¬ÀÚ¤ÊÆ°ºî¤¬¤Ç¤­¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ロケール (locale) は言語や文化ルールの集合である。 +これらは、メッセージ出力に使用する言語・いろいろな文字集合・ +表記に関する慣習といったような面をカバーしている。 +プログラムをいろいろな文化に移植可能とするには、 +そのプログラムは自分のロケールを決めて、 +それに応じた適切な動作ができなければならない。 .PP .\"O The header .\"O .I .\"O declares data types, functions and macros which are useful in this .\"O task. -¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë +ヘッダーファイル .I -¤Ë¤Ï¡¢¤³¤ÎÌÜŪ¤ËÊØÍø¤Ê¥Ç¡¼¥¿·¿¡¦´Ø¿ô¡¦¥Þ¥¯¥í¤Ê¤É¤ÎÀë¸À¤¬¤¢¤ë¡£ +には、この目的に便利なデータ型・関数・マクロなどの宣言がある。 .PP .\"O The functions it declares are .\"O .BR setlocale (3) .\"O to set the current locale, and .\"O .BR localeconv (3) .\"O to get information about number formatting. -¤³¤Î¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤Ë¤Ï¡¢ -¸½ºß¤Î¥í¥±¡¼¥ë¤òÀßÄꤹ¤ë +このヘッダーファイルで宣言されている関数には、 +現在のロケールを設定する .BR setlocale (3) -¤È¡¢¿ôÃͤΥե©¡¼¥Þ¥Ã¥ÈÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë +と、数値のフォーマット方法についての情報を取得する .BR localeconv (3) -¤¬¤¢¤ë¡£ +がある。 .PP .\"O There are different categories for local information a program might .\"O need; they are declared as macros. @@ -84,12 +84,12 @@ locale \- ¿ .\"O to the .\"O .BR setlocale (3) .\"O function, it is possible to set one of these to the desired locale: -¥×¥í¥°¥é¥à¤ÎɬÍפ˱þ¤¸¤Æ¡¢¥í¡¼¥«¥ë¾ðÊó¤Ï¤¤¤í¤¤¤í¤Ê¥«¥Æ¥´¥ê¤Ëʬ¤«¤ì¤Æ¤ª¤ê¡¢ -¤½¤ì¤é¤Ï¥Þ¥¯¥í¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Î¥Þ¥¯¥í¤ò +プログラムの必要に応じて、ローカル情報はいろいろなカテゴリに分かれており、 +それらはマクロとして宣言されている。 +これらのマクロを .BR setlocale (3) -´Ø¿ô¤ÎºÇ½é¤Î°ú¤­¿ô¤ËÍѤ¤¤ë¤È¡¢ -¤³¤ì¤é¤Î¤É¤ì¤«¤ò˾¤à¥í¥±¡¼¥ë¤ËÀßÄê¤Ç¤­¤ë¡£ +関数の最初の引き数に用いると、 +これらのどれかを望むロケールに設定できる。 .TP .B LC_COLLATE .\"O This is used to change the behavior of the functions @@ -99,12 +99,12 @@ locale \- ¿ .\"O which are used to compare strings in the local alphabet. .\"O For example, .\"O the German sharp s is sorted as "ss". -¤³¤ì¤ÏÃÏ°èŪ¤Ê¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»úÎó¤ÎÈæ³Ó¤Ë»ÈÍѤ¹¤ë +これは地域的なアルファベット文字列の比較に使用する .BR strcoll (3) -´Ø¿ô¤È +関数と .BR strxfrm (3) -´Ø¿ô¤ÎÆ°ºî¤òÊѹ¹¤¹¤ë¡£Î㤨¤Ð¥É¥¤¥Ä¸ì¤Î¥¨¥¹¥Ä¥§¥Ã¥È (±Ô¤¤ s) -¤Ï¡¢¥½¡¼¥È¤ÎºÝ "ss" ¤È¤·¤Æ°·¤ï¤ì¤ë¡£ +関数の動作を変更する。例えばドイツ語のエスツェット (鋭い s) +は、ソートの際 "ss" として扱われる。 .TP .B LC_CTYPE .\"O This changes the behavior of the character handling and @@ -116,15 +116,15 @@ locale \- ¿ .\"O .BR mblen (3) .\"O or .\"O .BR wctomb (3). -¤³¤ì¤Ï +これは .BR isupper (3) -¤ä +や .BR toupper (3) -¤Î¤è¤¦¤Êʸ»ú¤ÎȽÄꡦÁàºî¤ò¤¹¤ë´Ø¿ô¤ä¡¢Â¿¥Ð¥¤¥Èʸ»ú¤ò°·¤¦ +のような文字の判定・操作をする関数や、多バイト文字を扱う .BR mblen (3) -¤ä +や .BR wctomb (3) -¤Î¤è¤¦¤Ê´Ø¿ô¤ÎÆ°ºî¤òÊѹ¹¤¹¤ë¡£ +のような関数の動作を変更する。 .TP .B LC_MONETARY .\"O changes the information returned by @@ -135,11 +135,11 @@ locale \- ¿ .\"O used by the function .\"O .BR strfmon (3). .BR localeconv (3) -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë¾ðÊó¤òÊѹ¹¤¹¤ë¡£ -¤³¤ì¤Ë¤Ï¾®¿ôÅÀ¤ä¶èÀڤꥳ¥ó¥Þ¤Î°ÌÃ֤ʤɡ¢ -¿ô»ú¤Îɽ¼¨ÊýË¡¤Ë´Ø¤¹¤ë¾ÜºÙ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£¤³¤Î¾ðÊó¤Ï +によって返される情報を変更する。 +これには小数点や区切りコンマの位置など、 +数字の表示方法に関する詳細が含まれている。この情報は .BR strfmon (3) -´Ø¿ô¤¬ÆâÉô¤Ç»ÈÍѤ¹¤ë¡£ +関数が内部で使用する。 .TP .B LC_MESSAGES .\"O changes the language messages are displayed in and what an affirmative or @@ -156,20 +156,20 @@ locale \- ¿ .\"O (containing a colon-separated list of locales) .\"O if the category is set to a valid locale other than .\"O .BR """C""" . -¥á¥Ã¥»¡¼¥¸É½¼¨¤Ë»ÈÍѤ¹¤ë¸À¸ì¤òÊѹ¹¤¹¤ë¡£ -¤Þ¤¿¹ÎÄêŪ¡¦ÈÝÄêŪ¤Ê²óÅú¤ò¤É¤Î¤è¤¦¤Ëɽ¼¨¤¹¤ë¤«¤òÊѹ¹¤¹¤ë¡£ -¤³¤ì¤é¤Î¾ðÊó¤ò´Êñ¤Ë»ÈÍѤ¹¤ë¤¿¤á¤Ë¡¢ GNU C ¥é¥¤¥Ö¥é¥ê¤Ë¤Ï +メッセージ表示に使用する言語を変更する。 +また肯定的・否定的な回答をどのように表示するかを変更する。 +これらの情報を簡単に使用するために、 GNU C ライブラリには .BR gettext (3), .BR ngettext (3), .BR rpmatch (3) -´Ø¿ô¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -GNU gettext ¥Õ¥¡¥ß¥ê¡¼¤Ë°¤¹¤ë´Ø¿ô¤Ï¡¢¥«¥Æ¥´¥ê¤¬ +関数が含まれている。 +GNU gettext ファミリーに属する関数は、カテゴリが .B """C""" -°Ê³°¤ÎÍ­¸ú¤Ê¥í¥±¡¼¥ë¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢´Ä¶­ÊÑ¿ô +以外の有効なロケールに設定されている場合、環境変数 .B LANGUAGE -¤Ë¤â½¾¤¦ +にも従う .RB ( LANGUAGE -¤Ï¥³¥í¥ó¶èÀÚ¤ê¤Î¥í¥±¡¼¥ë¤Î¥ê¥¹¥È¤Ç¤¢¤ë)¡£ +はコロン区切りのロケールのリストである)。 .TP .B LC_NUMERIC .\"O changes the information used by the @@ -182,12 +182,12 @@ GNU gettext .\"O .BR localeconv (3) .\"O function. .BR printf (3) -´Ø¿ô¤ª¤è¤Ó +関数および .BR scanf (3) -´Ø¿ô¤Î¥Õ¥¡¥ß¥ê¡¼¤Ç¥í¥±¡¼¥ëÀßÄê¤ò»È¤¦¤è¤¦»Ø¼¨¤µ¤ì¤¿¾ì¹ç¤Ë -ÍѤ¤¤ë¾ðÊó¤òÊѹ¹¤¹¤ë¡£¤³¤Î¾ðÊó¤Ï +関数のファミリーでロケール設定を使うよう指示された場合に +用いる情報を変更する。この情報は .BR localeconv (3) -´Ø¿ô¤Ç¼èÆÀ¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +関数で取得することもできる。 .TP .B LC_TIME .\"O changes the behavior of the @@ -196,14 +196,14 @@ GNU gettext .\"O example, most of Europe uses a 24-hour clock versus the .\"O 12-hour clock used in the United States. .BR strftime (3) -´Ø¿ô¤ÎÆ°ºî¤òÊѹ¹¤·¡¢ -ÃÏ°è¤ÇÍøÍѤµ¤ì¤Æ¤¤¤ëÊýË¡¤Ç¸½ºß»þ¹ï¤òɽ¼¨¤¹¤ë¡£ -Î㤨¤Ð¡¢¥è¡¼¥í¥Ã¥Ñ¤Î¿¤¯¤Ç¤Ï 24»þ´Ö¼°¤Î»þ·×¤ò»È¤¦¤¬¡¢ -¥¢¥á¥ê¥«¤Ç¤Ï 12»þ´Ö¼°¤Î»þ·×¤ò»È¤¦¡£ +関数の動作を変更し、 +地域で利用されている方法で現在時刻を表示する。 +例えば、ヨーロッパの多くでは 24時間式の時計を使うが、 +アメリカでは 12時間式の時計を使う。 .TP .B LC_ALL .\"O All of the above. -¾åµ­¤ÎÁ´¤Æ¡£ +上記の全て。 .\" FIXME glibc 2.2.2 added new nonstandard locale categories: .\" LC_ADDRESS, LC_IDENTIFICATION, LC_MEASUREMENT, LC_NAME, .\" LC_PAPER, LC_TELEPHONE. These need to be documented. @@ -214,53 +214,53 @@ GNU gettext .\"O .BR """""" , .\"O for the default locale, it is determined using the following steps: .BR setlocale (3) -¤ÎÆóÈÖÌܤΰú¤­¿ô¤¬¶õʸ»úÎó \fB""\fP ¤Î¾ì¹ç¡¢ -¥Ç¥Õ¥©¥ë¥È¤Î¥í¥±¡¼¥ë¤Ï°Ê²¼¤Î¼ê½ç¤Ç·èÄꤹ¤ë: +の二番目の引き数が空文字列 \fB""\fP の場合、 +デフォルトのロケールは以下の手順で決定する: .IP 1. .\"O If there is a non-null environment variable .\"O .BR LC_ALL , .\"O the value of .\"O .B LC_ALL .\"O is used. -´Ä¶­ÊÑ¿ô +環境変数 .B LC_ALL -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï +が設定されている場合には .B LC_ALL -¤ÎÃͤ¬»ÈÍѤµ¤ì¤ë¡£ +の値が使用される。 .IP 2. .\"O If an environment variable with the same name as one of the categories .\"O above exists and is non-null, its value is used for that category. -¾åµ­¤Î¥«¥Æ¥´¥ê¤Î¤É¤ì¤«¤ÈƱ¤¸Ì¾Á°¤Î´Ä¶­ÊÑ¿ô¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -¤½¤Î¥«¥Æ¥´¥ê¤Ë¤Ï¤½¤ÎÃͤ¬»ÈÍѤµ¤ì¤ë¡£ +上記のカテゴリのどれかと同じ名前の環境変数が設定されている場合には、 +そのカテゴリにはその値が使用される。 .IP 3. .\"O If there is a non-null environment variable .\"O .BR LANG , .\"O the value of .\"O .B LANG .\"O is used. -´Ä¶­ÊÑ¿ô +環境変数 .B LANG -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï +が設定されている場合には .B LANG -¤ÎÃͤ¬»ÈÍѤµ¤ì¤ë¡£ +の値が使用される。 .PP .\"O Values about local numeric formatting is made available in a .\"O .I struct lconv .\"O returned by the .\"O .BR localeconv (3) .\"O function, which has the following declaration: -ÃÏ°èŪ¤Ê¿ôÃÍ¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¾ðÊó¤Ï +地域的な数値フォーマットの情報は .BR localeconv (3) -´Ø¿ô¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë +関数によって返される .I struct lconv -¤ÇÆÀ¤ë¤³¤È¤¬¤Ç¤­¡¢¤³¤ì¤Ï°Ê²¼¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤Æ¤¤¤ë: +で得ることができ、これは以下のように宣言されている: .in +4n .nf struct lconv { .\"O /* Numeric (nonmonetary) information */ - /* (Ä̲߰ʳ°¤Î) ¿ôÃ;ðÊó */ + /* (通貨以外の) 数値情報 */ .\"O char *decimal_point; /* Radix character */ .\"O char *thousands_sep; /* Separator for digit groups to left @@ -271,18 +271,18 @@ struct lconv { .\"O means that no further grouping is done. An .\"O element with value 0 means that the previous .\"O element is used for all groups further left. */ - char *decimal_point; /* ¾®¿ôÅÀ¤Îʸ»ú */ - char *thousands_sep; /* ¾®¿ôÅÀ¤Îº¸Â¦¤Î¿ô»ú¤Î¥°¥ë¡¼¥×¤Î - ¶èÀÚ¤êʸ»ú */ - char *grouping; /* ¤½¤ì¤¾¤ì¤ÎÍ×ÁǤϳƥ°¥ë¡¼¥×¤Î¿ô»ú¤Î¸Ä¿ô¤Ç¤¢¤ë¡£ - ¥¤¥ó¥Ç¥Ã¥¯¥¹Ãͤ¬Â礭¤¤¤Û¤É¡¢º¸Â¦¤Î¥°¥ë¡¼¥×¤òɽ¤¹¡£ - Í×ÁǤÎÃͤ¬ CHAR_MAX ¤Î¾ì¹ç¤Ï¡¢ºÇ¸å¤Î¥°¥ë¡¼¥×¤Ç - ¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£Í×ÁǤÎÃͤ¬ 0 ¤Î¾ì¹ç¤Ï¡¢ - ¤½¤ÎÍ×ÁǤè¤êº¸Â¦¤ÎÁ´¤Æ¤ÎÍ×ÁǤËÁ°¤ÎÍ×ÁǤÈƱ¤¸Ãͤò - »ÈÍѤ¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ */ + char *decimal_point; /* 小数点の文字 */ + char *thousands_sep; /* 小数点の左側の数字のグループの + 区切り文字 */ + char *grouping; /* それぞれの要素は各グループの数字の個数である。 + インデックス値が大きいほど、左側のグループを表す。 + 要素の値が CHAR_MAX の場合は、最後のグループで + あることを意味する。要素の値が 0 の場合は、 + その要素より左側の全ての要素に前の要素と同じ値を + 使用することを意味する。 */ .\"O /* Remaining fields are for monetary information */ - /* »Ä¤ê¤Î¥Õ¥£¡¼¥ë¥É¤ÏÄ̲߾ðÊóÍѤǤ¢¤ë */ + /* 残りのフィールドは通貨情報用である */ .\"O char *int_curr_symbol; /* First three chars are a currency symbol .\"O from ISO 4217. Fourth char is the @@ -295,17 +295,17 @@ struct lconv { .\"O char *negative_sign; /* Sign for negative values */ .\"O char int_frac_digits; /* International fractional digits */ .\"O char frac_digits; /* Local fractional digits */ - char *int_curr_symbol; /* ºÇ½é¤Î»°¤Ä¤Îʸ»ú¤Ï ISO 4217 ¤ÎÄ̲ߵ­¹æ¡£ - »ÍÈÖÌܤÎʸ»ú¤Ï¶èÀÚ¤êʸ»ú¡£ - ¸ÞÈÖÌÜ¤Ï \(aq\0\(aq¡£ */ - char *currency_symbol; /* ÃÏ°è¤ÎÄ̲ߵ­¹æ */ - char *mon_decimal_point; /* ¾®¿ôÅÀ¤Îʸ»ú */ - char *mon_thousands_sep; /* ¾åµ­¤Î `thousands_sep' ¤ÈƱÍÍ */ - char *mon_grouping; /* ¾åµ­¤Î `grouping' ¤ÈƱÍÍ */ - char *positive_sign; /* Àµ¤ÎÃͤÎÉä¹æ */ - char *negative_sign; /* Éé¤ÎÃͤÎÉä¹æ */ - char int_frac_digits; /* ¹ñºÝŪ¤Ê¾®¿ôÉô¤Î¿ô»ú */ - char frac_digits; /* ÃÏ°è¤Î¾®¿ôÉô¤Î¿ô»ú */ + char *int_curr_symbol; /* 最初の三つの文字は ISO 4217 の通貨記号。 + 四番目の文字は区切り文字。 + 五番目は \(aq\0\(aq。 */ + char *currency_symbol; /* 地域の通貨記号 */ + char *mon_decimal_point; /* 小数点の文字 */ + char *mon_thousands_sep; /* 上記の `thousands_sep' と同様 */ + char *mon_grouping; /* 上記の `grouping' と同様 */ + char *positive_sign; /* 正の値の符号 */ + char *negative_sign; /* 負の値の符号 */ + char int_frac_digits; /* 国際的な小数部の数字 */ + char frac_digits; /* 地域の小数部の数字 */ .\"O char p_cs_precedes; /* 1 if currency_symbol precedes a .\"O positive value, 0 if succeeds */ .\"O char p_sep_by_space; /* 1 if a space separates currency_symbol @@ -314,39 +314,39 @@ struct lconv { .\"O negative value, 0 if succeeds */ .\"O char n_sep_by_space; /* 1 if a space separates currency_symbol .\"O from a negative value */ - char p_cs_precedes; /* Àµ¤ÎÃͤÎÁ°¤ËÄ̲ߵ­¹æ¤òÃÖ¤¯¾ì¹ç¤Ï 1, - ¸å¤í¤ËÃÖ¤¯¾ì¹ç¤Ï 0 */ - char p_sep_by_space; /* Àµ¤ÎÃͤÈÄ̲ߵ­¹æ¤Î´Ö¤Ë¥¹¥Ú¡¼¥¹¤ò - Æþ¤ì¤ë¾ì¹ç¤Ï 1 */ - char n_cs_precedes; /* Éé¤ÎÃͤÎÁ°¤ËÄ̲ߵ­¹æ¤òÃÖ¤¯¾ì¹ç¤Ï 1, - ¸å¤í¤ËÃÖ¤¯¾ì¹ç¤Ï 0 */ - char n_sep_by_space; /* Éé¤ÎÃͤÈÄ̲ߵ­¹æ¤Î´Ö¤Ë¥¹¥Ú¡¼¥¹¤ò - Æþ¤ì¤ë¾ì¹ç¤Ï 1 */ + char p_cs_precedes; /* 正の値の前に通貨記号を置く場合は 1, + 後ろに置く場合は 0 */ + char p_sep_by_space; /* 正の値と通貨記号の間にスペースを + 入れる場合は 1 */ + char n_cs_precedes; /* 負の値の前に通貨記号を置く場合は 1, + 後ろに置く場合は 0 */ + char n_sep_by_space; /* 負の値と通貨記号の間にスペースを + 入れる場合は 1 */ .\"O /* Positive and negative sign positions: .\"O 0 Parentheses surround the quantity and currency_symbol. .\"O 1 The sign string precedes the quantity and currency_symbol. .\"O 2 The sign string succeeds the quantity and currency_symbol. .\"O 3 The sign string immediately precedes the currency_symbol. .\"O 4 The sign string immediately succeeds the currency_symbol. */ - /* Àµ¤ÈÉé¤ÎÉä¹æ¤Î°ÌÃÖ: - 0 ÃͤÈÄ̲ߵ­¹æ¤ò³ç¸Ì¤Ç°Ï¤à - 1 Éä¹æ¤ÏÃͤÈÄ̲ߵ­¹æ¤ÎÁ°¤ËÃÖ¤¯ - 2 Éä¹æ¤ÏÃͤÈÄ̲ߵ­¹æ¤Î¸å¤ËÃÖ¤¯ - 3 Éä¹æ¤ÏÄ̲ߵ­¹æ¤Îľ¸å¤ËÃÖ¤¯ - 4 Éä¹æ¤ÏÄ̲ߵ­¹æ¤ÎľÁ°¤ËÃÖ¤¯ */ + /* 正と負の符号の位置: + 0 値と通貨記号を括弧で囲む + 1 符号は値と通貨記号の前に置く + 2 符号は値と通貨記号の後に置く + 3 符号は通貨記号の直後に置く + 4 符号は通貨記号の直前に置く */ char p_sign_posn; char n_sign_posn; }; .fi .in .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001 .\"O The GNU gettext functions are specified in LI18NUX2000. -GNU gettext ´Ø¿ô¥Õ¥¡¥ß¥ê¡¼¤Ï LI18NUX2000 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +GNU gettext 関数ファミリーは LI18NUX2000 で規定されている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR locale (1), .BR localedef (1), .BR gettext (3), diff --git a/draft/man7/mailaddr.7 b/draft/man7/mailaddr.7 index 2746fc89..d94401ce 100644 --- a/draft/man7/mailaddr.7 +++ b/draft/man7/mailaddr.7 @@ -31,11 +31,11 @@ .TH MAILADDR 7 2004-09-15 "Linux" "Linux User's Manual" .UC 5 .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mailaddr \- mail addressing description -mailaddr \- ¥á¡¼¥ë¡¦¥¢¥É¥ì¥¹¤ÎÀâÌÀ +mailaddr \- メール・アドレスの説明 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .nh .\"O This manual page gives a brief introduction to SMTP mail addresses, as .\"O used on the Internet. @@ -45,15 +45,15 @@ mailaddr \- .\"O .PP .\"O where a domain is a hierarchical dot-separated list of subdomains. .\"O These examples are valid forms of the same address: -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤Ç¤Ï¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ç»ÈÍѤµ¤ì¤ë SMTP ¥á¡¼¥ë¡¦ -¥¢¥É¥ì¥¹¤Î´Êñ¤Ê¾Ò²ð¤ò¹Ô¤¦¡£¥á¡¼¥ë¡¦¥¢¥É¥ì¥¹¤Ï°ìÈÌŪ¤Ë¤Ï +このマニュアル・ページでは、インターネットで使用される SMTP メール・ +アドレスの簡単な紹介を行う。メール・アドレスは一般的には .PP user@domain .PP -¤Î·Á¤Ç¤¢¤ë¡£ -domain ¤Ï¥µ¥Ö¡¦¥É¥á¥¤¥ó¤Î³¬Áؤò ¥É¥Ã¥È (.) ¤Ç -¶èÀڤäƤĤʤ¤¤À¤â¤Î¤Ç¤¢¤ë¡£ -°Ê²¼¤ÎÎã¤ÏÁ´¤ÆƱ¤¸¥¢¥É¥ì¥¹¤ÎÀµ¤·¤¤É½µ­Ë¡¤Ç¤¢¤ë: +の形である。 +domain はサブ・ドメインの階層を ドット (.) で +区切ってつないだものである。 +以下の例は全て同じアドレスの正しい表記法である: .PP eric@monet.berkeley.edu .br @@ -64,9 +64,9 @@ domain .\"O The domain part ("monet.berkeley.edu") is a mail-accepting domain. .\"O It can be a host and in the past it usually was, but it doesn't have to be. .\"O The domain part is not case sensitive. -¥É¥á¥¤¥óÉôʬ ("monet.berkeley.edu") ¤Ï¥á¡¼¥ë¤ò¼õ¿®¤¹¤ë¥É¥á¥¤¥ó¤Ç¤¢¤ë¡£ -¥É¥á¥¤¥ó¤Ï¥Û¥¹¥È̾¤Ç¤¢¤Ã¤Æ¤â¤è¤¯¡¢°ÊÁ°¤Ï¥Û¥¹¥È̾¤¬ÉáÄ̤Ǥ¢¤Ã¤¿¤¬¡¢ -¤½¤¦¤Ç¤¢¤ëɬÍפϤʤ¤¡£¥É¥á¥¤¥óÉôʬ¤ÏÂçʸ»ú¡¢¾®Ê¸»ú¤Î¶èÊ̤Ϥµ¤ì¤Ê¤¤¡£ +ドメイン部分 ("monet.berkeley.edu") はメールを受信するドメインである。 +ドメインはホスト名であってもよく、以前はホスト名が普通であったが、 +そうである必要はない。ドメイン部分は大文字、小文字の区別はされない。 .PP .\"O The local part ("eric") is often a username, but its meaning is .\"O defined by the local software. @@ -75,12 +75,12 @@ domain .\"O If you see a local-part that looks like .\"O garbage, it is usually because of a gateway between an internal e-mail .\"O system and the net, here are some examples: -¥í¡¼¥«¥ëÉôʬ ("eric") ¤ÏÉáÄ̤ϥ桼¥¶¡¼¤Î̾Á°¤Ç¤¢¤ë¤¬¡¢ -¤½¤Î°ÕÌ£¤Ï¥í¡¼¥«¥ë¤Ê¥½¥Õ¥È¥¦¥§¥¢¤Ë¤è¤Ã¤ÆÄêµÁ¤µ¤ì¤ë¡£ -Âçʸ»ú¡¢¾®Ê¸»ú¤ò¶èÊ̤·¤Æ¤â¤è¤¤¤¬¡¢ÉáÄ̤϶èÊ̤µ¤ì¤Ê¤¤¡£ -¥í¡¼¥«¥ëÉôʬ¤¬¥´¥ß¤Î¤è¤¦¤Ë¸«¤¨¤ë¾ì¹ç¤Ï¡¢¤½¤ì¤Ï¤¿¤¤¤ÆÆâÉôŪ¤ÊÅŻҥ᡼¥ë -¥·¥¹¥Æ¥à¤È¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Î´Ö¤Ë¤¢¤ë¥²¡¼¥È¥¦¥§¥¤¤Î¤»¤¤¤Ç¤¢¤ë¡£ -Î㤨¤Ð¡¢°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤¬¤¢¤ë¡£ +ローカル部分 ("eric") は普通はユーザーの名前であるが、 +その意味はローカルなソフトウェアによって定義される。 +大文字、小文字を区別してもよいが、普通は区別されない。 +ローカル部分がゴミのように見える場合は、それはたいて内部的な電子メール +システムとインターネットの間にあるゲートウェイのせいである。 +例えば、以下のようなものがある。 .PP "surname/admd=telemail/c=us/o=hp/prmd=hp"@some.where .br @@ -93,24 +93,24 @@ domain .\"O (These are, respectively, an X.400 gateway, a gateway to an arbitrary .\"O internal mail system that lacks proper internet support, an UUCP .\"O gateway, and the last one is just boring username policy.) -(¤½¤ì¤¾¤ì¡¢X.400 ¥²¡¼¥È¥¦¥§¥¤¡¢ -Àµ¤·¤¤¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥µ¥Ý¡¼¥È¤ò·ç¤¤¤¿¾¡¼ê¤ÊÆâÉô¥á¡¼¥ë¥·¥¹¥Æ¥à¡¢ -UUCP ¥²¡¼¥È¥¦¥§¥¤¤Ç¤ÎÎã¤Ç¤¢¤ë¡£ -ºÇ¸å¤Î¤Ïñ¤Ë´ÖÈ´¤±¤Ê¥æ¡¼¥¶¡¼Ì¾¤Ç¤¢¤ë¡£) +(それぞれ、X.400 ゲートウェイ、 +正しいインターネットサポートを欠いた勝手な内部メールシステム、 +UUCP ゲートウェイでの例である。 +最後のは単に間抜けなユーザー名である。) .PP .\"O The real-name part ("Eric Allman") can either be placed before .\"O <>, or in () at the end. .\"O (Strictly speaking the two aren't the same, .\"O but the difference is beyond the scope of this page.) .\"O The name may have to be quoted using "", for example, if it contains ".": -¼Â̾Éôʬ ("Eric Allman") ¤Ï <> ¤ÎÁ°¤ËÃÖ¤¯¤³¤È¤â¤Ç¤­¤ë¤·¡¢ -()¤ËÆþ¤ì¤ÆºÇ¸å¤ËÃÖ¤¯¤³¤È¤â¤Ç¤­¤ë¡£(¸·Ì©¤Ë¸À¤¦¤È¡¢Æó¤Ä¤ÏÁ´¤¯Æ±¤¸ -¤ï¤±¤Ç¤Ï¤Ê¤¤¤¬¡¢¤½¤Î°ã¤¤¤Ï¤³¤Î¥Ú¡¼¥¸¤ÎÌÜŪ¤«¤é³°¤ì¤ë¤Î¤Ç¸ÀµÚ¤·¤Ê¤¤¡£) -Î㤨¤Ð "." ¤Ê¤É¤Îʸ»ú¤ò´Þ¤à¾ì¹ç¤Ë¤Ï̾Á°¤ò "" ¤Ç³ç¤ëɬÍפ¬¤¢¤ë: +実名部分 ("Eric Allman") は <> の前に置くこともできるし、 +()に入れて最後に置くこともできる。(厳密に言うと、二つは全く同じ +わけではないが、その違いはこのページの目的から外れるので言及しない。) +例えば "." などの文字を含む場合には名前を "" で括る必要がある: .PP "Eric P. Allman" .\"O .SS Abbreviation. -.SS ¾Êά·Á +.SS 省略形 .PP .\"O Many mail systems let users abbreviate the domain name. .\"O For instance, @@ -118,23 +118,23 @@ UUCP .\"O Eric Allman. .\"O .I "This behavior is deprecated." .\"O Sometimes it works, but you should not depend on it. -¿¤¯¤Î¥á¡¼¥ë¡¦¥·¥¹¥Æ¥à¤¬¥É¥á¥¤¥ó̾¤Î¾Êά·Á¤òµö¤·¤Æ¤¤¤ë¡£ -Î㤨¤Ð berkeley.edu ¤Î¥æ¡¼¥¶¡¼¤Ï Eric Allman ¤Ë¥á¡¼¥ë¤òÁ÷¤ë¤¿¤á¤Ë -"eric@monet" ¤¬»ÈÍѤǤ­¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¡Ø¤³¤ÎÆ°ºî¤Ï¿ä¾©¤µ¤ì¤ë¤â¤Î¤Ç¤Ï¤Ê¤¤¡Ù -Àµ¤·¤¯Æ°ºî¤¹¤ë¾ì¹ç¤â¤¢¤ë¤¬¡¢¤½¤ì¤ò¤¢¤Æ¤Ë¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +多くのメール・システムがドメイン名の省略形を許している。 +例えば berkeley.edu のユーザーは Eric Allman にメールを送るために +"eric@monet" が使用できるかもしれない。 +『この動作は推奨されるものではない』 +正しく動作する場合もあるが、それをあてにすべきではない。 .\"O .SS Route-addrs. -.SS ·ÐÏ©¥¢¥É¥ì¥¹ +.SS 経路アドレス .PP .\"O In the past, sometimes one had to route a message through .\"O several hosts to get it to its final destination. .\"O Addresses which .\"O show these relays are termed "route-addrs". .\"O These use the syntax: -°ÊÁ°¤Ï¡¢¥á¥Ã¥»¡¼¥¸¤¬ºÇ½ªÌÜŪÃϤØÅþ㤹¤ë¤¿¤á¤ËÄ̲᤹¤ë¥Û¥¹¥È¤ò -»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤¬»þ¡¹¤¢¤Ã¤¿¡£ -Ãæ·ÑÅÀ¤ò»ØÄꤷ¤¿¥¢¥É¥ì¥¹¤ò "·ÐÏ©¥¢¥É¥ì¥¹ (route-addrs)" ¤È¤¤¤¦¡£ -°Ê²¼¤Î½ñ¼°¤ò»ÈÍѤ¹¤ë: +以前は、メッセージが最終目的地へ到達するために通過するホストを +指定しなければならないことが時々あった。 +中継点を指定したアドレスを "経路アドレス (route-addrs)" という。 +以下の書式を使用する: .PP <@hosta,@hostb:user@hostc> .PP @@ -142,36 +142,36 @@ UUCP .\"O to hostb, and finally to hostc. .\"O Many hosts disregard route-addrs .\"O and send directly to hostc. -¤³¤ì¤ÏÄÌ¿®Ê¸¤ò hosta ¤ËÁ÷¤ê¡¢¤½¤³¤«¤é hostb ¤ËÁ÷¤ê¡¢ºÇ½ªÅª¤Ë hostc ¤Ë -Á÷¤ë¤³¤È¤ò»ØÄꤷ¤Æ¤¤¤ë¡£Â¿¤¯¤Î¥Û¥¹¥È¤Ï·ÐÏ©¥¢¥É¥ì¥¹¤ò̵»ë¤·¤ÆľÀÜ hostc -¤ËÁ÷¤ë¡£ +これは通信文を hosta に送り、そこから hostb に送り、最終的に hostc に +送ることを指定している。多くのホストは経路アドレスを無視して直接 hostc +に送る。 .PP .\"O Route-addrs are very unusual now. .\"O They occur sometimes in old mail .\"O archives. .\"O It is generally possible to ignore all but the "user@hostc" .\"O part of the address to determine the actual address. -º£¤Ç¤Ï·ÐÏ©¥¢¥É¥ì¥¹¤¬»È¤ï¤ì¤ë¤³¤È¤Ï¤Û¤È¤ó¤É¤Ê¤¤¡£ -¸Å¤¤¥á¡¼¥ë¡¦¥¢¡¼¥«¥¤¥Ö¤Ç»þ¡¹¤ËÌܤˤ¹¤ë¤³¤È¤¬¤¢¤ë¡£ -°ìÈ̤ˤϼºݤΥ¢¥É¥ì¥¹¤òµá¤á¤ë¤¿¤á¤Ë "user@hostc" °Ê³°¤ÎÁ´¤ÆÉôʬ¤ò̵»ë -¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +今では経路アドレスが使われることはほとんどない。 +古いメール・アーカイブで時々に目にすることがある。 +一般には実際のアドレスを求めるために "user@hostc" 以外の全て部分を無視 +することもできる。 .\"O .SS Postmaster. -.SS "¥Ý¥¹¥È¥Þ¥¹¥¿¡¼ (postmaster)" +.SS "ポストマスター (postmaster)" .PP .\"O Every site is required to have a user or user alias designated .\"O "postmaster" to which problems with the mail system may be .\"O addressed. .\"O The "postmaster" address is not case sensitive. -Á´¤Æ¤Î¥µ¥¤¥È¤Ï¡¢¥á¡¼¥ë¡¦¥·¥¹¥Æ¥à¤ÎÌäÂê¤òÃΤ餻¤ë°¸¤ÆÀè¤È¤·¤Æ¡¢ -"postmaster" ¤È¤¤¤¦¥æ¡¼¥¶¤«ÊÌ̾ÄêµÁ (alias) ¤òÍÑ°Õ¤·¤Ê¤±¤ì¤Ð -¤Ê¤é¤Ê¤¤¡£ "postmaster" ¤Î¥¢¥É¥ì¥¹¤ÏÂçʸ»ú¡¢¾®Ê¸»ú¤Î¶èÊ̤Ϥµ¤ì¤Ê¤¤¡£ +全てのサイトは、メール・システムの問題を知らせる宛て先として、 +"postmaster" というユーザか別名定義 (alias) を用意しなければ +ならない。 "postmaster" のアドレスは大文字、小文字の区別はされない。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .I /etc/aliases .br .I ~/.forward .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR binmail (1), .BR mail (1), .BR mconnect (1), diff --git a/draft/man7/man-pages.7 b/draft/man7/man-pages.7 index 848e3eb3..f0bf1eef 100644 --- a/draft/man7/man-pages.7 +++ b/draft/man7/man-pages.7 @@ -34,84 +34,84 @@ .\" .TH MAN-PAGES 7 2008-10-28 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O man-pages \- conventions for writing Linux man pages -man-pages \- Linux ¤Î man ¥Ú¡¼¥¸¤ò½ñ¤¯ºÝ¤Î·è¤Þ¤ê»ö +man-pages \- Linux の man ページを書く際の決まり事 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B man .RI [ section ] .I title .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This page describes the conventions that should be employed .\"O when writing man pages for the Linux \fIman-pages\fP project, .\"O which comprises Sections 2, 3, 4, 5, and 7 of the Linux manual pages. .\"O The conventions described on this page may also be useful .\"O for authors writing man pages for other projects. -¤³¤Î¥Ú¡¼¥¸¤Ç¤Ï¡¢ -Linux \fIman-pages\fP ¥×¥í¥¸¥§¥¯¥È¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò½ñ¤¯ºÝ¤Ë -½¾¤¦¤Ù¤­·è¤Þ¤ê»ö¤Ë¤Ä¤¤¤ÆÀâÌÀ¤¹¤ë¡£ -Linux \fIman-pages\fP ¤Ï Linux ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î -¥»¥¯¥·¥ç¥ó 2, 3, 4, 5, 7 ¤«¤é¹½À®¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥Ú¡¼¥¸¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë·è¤Þ¤ê»ö¤Ï¡¢Â¾¤Î¥×¥í¥¸¥§¥¯¥È¤Î -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò½ñ¤¯ºî¼Ô¤Ë¤âÌòΩ¤Ä¤³¤È¤À¤í¤¦¡£ +このページでは、 +Linux \fIman-pages\fP プロジェクトのマニュアルページを書く際に +従うべき決まり事について説明する。 +Linux \fIman-pages\fP は Linux のマニュアルページの +セクション 2, 3, 4, 5, 7 から構成されている。 +このページで説明されている決まり事は、他のプロジェクトの +マニュアルページを書く作者にも役立つことだろう。 .\"O .SS Sections of the Manual Pages -.SS ¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¥»¥¯¥·¥ç¥ó +.SS マニュアルページのセクション .PP .\"O The manual Sections are traditionally defined as follows: -¥Þ¥Ë¥å¥¢¥ë¤Î¥»¥¯¥·¥ç¥ó¤Ï¡¢½¬´·Åª¤Ë°Ê²¼¤Î¤è¤¦¤ÊÄêµÁ¤¬ÍѤ¤¤é¤ì¤Æ¤¤¤ë: +マニュアルのセクションは、習慣的に以下のような定義が用いられている: .TP 10 .\"O .B 1 Commands (Programs) .\"O Those commands that can be executed by the user from within .\"O a shell. -.B 1 ¥³¥Þ¥ó¥É (¥×¥í¥°¥é¥à) -¥·¥§¥ë¤ÎÃ椫¤é¥æ¡¼¥¶¤¬¼Â¹Ô¤Ç¤­¤ë¥³¥Þ¥ó¥É¡£ +.B 1 コマンド (プログラム) +シェルの中からユーザが実行できるコマンド。 .TP .\"O .B 2 System calls .\"O Those functions which must be performed by the kernel. -.B 2 ¥·¥¹¥Æ¥à¥³¡¼¥ë -¥«¡¼¥Í¥ë¤¬½èÍý¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤´Ø¿ô¡£ +.B 2 システムコール +カーネルが処理しなければならない関数。 .TP .\"O .B 3 Library calls .\"O Most of the .\"O .I libc .\"O functions. -.B 3 ¥é¥¤¥Ö¥é¥ê¥³¡¼¥ë +.B 3 ライブラリコール .I libc -¤Î´Ø¿ô¤ÎÂçÉôʬ¡£ +の関数の大部分。 .TP .\"O .B 4 Special files (devices) .\"O Files found in .\"O .IR /dev . -.B 4 ¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë (¥Ç¥Ð¥¤¥¹) +.B 4 スペシャルファイル (デバイス) .I /dev -°Ê²¼¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¡£ +以下にあるファイル。 .TP .\"O .B 5 File formats and conventions .\"O The format for .\"O .I /etc/passwd .\"O and other human-readable files. -.B 5 ¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Èµ¬Ìó +.B 5 ファイルのフォーマットと規約 .I /etc/passwd -¤Ê¤É¤Î¿Í¤¬Æɤá¤ë¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¡£ +などの人が読めるファイルのフォーマット。 .TP .\"O .B 6 Games -.B 6 ¥²¡¼¥à +.B 6 ゲーム .TP .\"O .B 7 Conventions and miscellaneous .\"O Overviews of various topics, conventions and protocols, .\"O character set standards, and miscellaneous other things. -.B 7 Ìó«»ö¤½¤Î¾ -ÍÍ¡¹¤Ê»öÊÁ¤Î³µÍס¢´·½¬¡¢¥×¥í¥È¥³¥ë¡¢Ê¸»ú½¸¹ç¤Îµ¬³Ê¡¢¤½¤Î¾»¨Â¿¤Ê¤³¤È¡£ +.B 7 約束事その他 +様々な事柄の概要、慣習、プロトコル、文字集合の規格、その他雑多なこと。 .TP .\"O .B 8 System management commands .\"O Commands like .\"O .BR mount (8), .\"O many of which only root can execute. -.B 8 ¥·¥¹¥Æ¥à´ÉÍý¥³¥Þ¥ó¥É +.B 8 システム管理コマンド .BR mount (8) -¤Î¤è¤¦¤Ê root ¤Î¤ß¤¬¼Â¹Ô²Äǽ¤Ê¥³¥Þ¥ó¥É¡£ +のような root のみが実行可能なコマンド。 .\" .TP .\"O .\" .B 9 Kernel routines .\"O .\" This is an obsolete manual section. @@ -120,48 +120,48 @@ Linux \fIman-pages\fP .\"O .\" that exists is outdated already. .\"O .\" There are better sources of .\"O .\" information for kernel developers. -.\" .B 9 ¥«¡¼¥Í¥ë¥ë¡¼¥Á¥ó -.\" ¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥»¥¯¥·¥ç¥ó¤ÏÇѻߤµ¤ì¤¿¡£ -.\" ¤«¤Ä¤Æ¤Ï¤³¤³¤Ë Linux ¥«¡¼¥Í¥ë¤Î¥É¥­¥å¥á¥ó¥È¤òÃÖ¤¯¤Î¤¬Îɤ¤¤³¤È¤À¤È -.\" ¹Í¤¨¤é¤ì¤Æ¤¤¤¿¡£¤·¤«¤·¡¢Ê¸½ñ²½¤µ¤ì¤¿¤â¤Î¤ÏÈó¾ï¤Ë¾¯¤Ê¤¯¡¢ -.\" ¤Þ¤¿¤½¤ì¤é¤â¤¹¤Ç¤Ë¸Å¤¤¤â¤Î¤È¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£ -.\" ¥«¡¼¥Í¥ë³«È¯¼Ô¤Ë¤È¤Ã¤Æ¡¢¤â¤Ã¤È¤è¤¤¾ðÊ󸻤¬Â¾¤Ë¤¢¤ë¤À¤í¤¦¡£ +.\" .B 9 カーネルルーチン +.\" このマニュアルセクションは廃止された。 +.\" かつてはここに Linux カーネルのドキュメントを置くのが良いことだと +.\" 考えられていた。しかし、文書化されたものは非常に少なく、 +.\" またそれらもすでに古いものとなってしまった。 +.\" カーネル開発者にとって、もっとよい情報源が他にあるだろう。 .\"O .SS Macro package -.SS ¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸ +.SS マクロパッケージ .\"O New manual pages should be marked up using the .\"O .B groff an.tmac .\"O package described in .\"O .BR man (7). .\"O This choice is mainly for consistency: the vast majority of .\"O existing Linux manual pages are marked up using these macros. -¿·¤·¤¤¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï +新しいマニュアルページは .BR man (7) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë +で説明されている .B groff an.tmac -¥Ñ¥Ã¥±¡¼¥¸¤ò»È¤Ã¤Æµ­½Ò¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¤³¤ÎÊý¿Ë¤Ï°ì´ÓÀ­¤Î³ÎÊݤ¬¼ç¤ÊÍýͳ¤Ç¤¢¤ë¡£´û¸¤Î Linux ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸ -¤Î°µÅÝŪ¿¿ô¤¬¤³¤ì¤é¤Î¥Þ¥¯¥í¤ò»È¤Ã¤Æµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +パッケージを使って記述すべきである。 +この方針は一貫性の確保が主な理由である。既存の Linux のマニュアルページ +の圧倒的多数がこれらのマクロを使って記述されている。 .\"O .SS Conventions for source file layout -.SS ¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ÎÇÛÃ֤˴ؤ¹¤ë·è¤Þ¤ê»ö +.SS ソースファイルの配置に関する決まり事 .\"O Please limit source code line length to no more than about 75 characters .\"O wherever possible. .\"O This helps avoid line-wrapping in some mail clients when patches are .\"O submitted inline. -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¥½¡¼¥¹¥³¡¼¥É¤Î 1¹Ô¤ÎŤµ¤Ï -²Äǽ¤Ê¸Â¤ê 75ʸ»ú¤ò±Û¤¨¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤Û¤·¤¤¡£ -¤³¤¦¤¹¤ë¤³¤È¤Ç¡¢¥Ñ¥Ã¥Á¤ò¥á¡¼¥ëËÜʸ¤ËºÜ¤»¤ÆÁ÷¤ë¾ì¹ç¤Ë¡¢ -¥á¡¼¥ë¥¯¥é¥¤¥¢¥ó¥È¤Ë¤è¤ë¹ÔÀÞ¤êÊÖ¤·¤ò²óÈò¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +マニュアルページのソースコードの 1行の長さは +可能な限り 75文字を越えないようにしてほしい。 +こうすることで、パッチをメール本文に載せて送る場合に、 +メールクライアントによる行折り返しを回避することができる。 .\"O New sentences should be started on new lines. .\"O This makes it easier to see the effect of patches, .\"O which often operate at the level of individual sentences. -¿·¤·¤¤Ê¸¤Ï¹ÔƬ¤«¤é³«»Ï¤¹¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢¥Ñ¥Ã¥Á¤ÎÆâÍƤò³Îǧ¤·¤ä¤¹¤¯¤Ê¤ë¡£ -¥Ñ¥Ã¥Á¤Ïʸñ°Ì¤Ç¤¢¤ë¤³¤È¤¬Â¿¤¤¤«¤é¤Ç¤¢¤ë¡£ +新しい文は行頭から開始する。 +これにより、パッチの内容を確認しやすくなる。 +パッチは文単位であることが多いからである。 .\"O .SS Title line -.SS ¥¿¥¤¥È¥ë¹Ô +.SS タイトル行 .\"O The first command in a man page should be a \fBTH\fP command: -man ¥Ú¡¼¥¸¤ÎºÇ½é¤Î¹Ô¤Ï \fBTH\fP ¥³¥Þ¥ó¥É¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +man ページの最初の行は \fBTH\fP コマンドにすべきである。 .RS .sp .B \&.TH @@ -169,41 +169,41 @@ man .sp .RE .\"O where: -¸Ä¡¹¤ÎÀâÌÀ: +個々の説明: .RS .TP 10 .I title .\"O The title of the man page, written in all caps (e.g., .\"O .IR MAN-PAGES ). -man ¥Ú¡¼¥¸¤Î¥¿¥¤¥È¥ë¡£Á´ÉôÂçʸ»ú¤Çµ­ºÜ¤¹¤ë (Îã: -.IR MAN-PAGES )¡£ +man ページのタイトル。全部大文字で記載する (例: +.IR MAN-PAGES )。 .TP .I section .\"O The section number in which the man page should be placed (e.g., .\"O .IR 7 ). -man ¥Ú¡¼¥¸¤¬Â°¤¹¤ë¥»¥¯¥·¥ç¥óÈÖ¹æ (Îã: -.IR 7 )¡£ +man ページが属するセクション番号 (例: +.IR 7 )。 .TP .I date .\"O The date of the last revision\(emremember to change this every time a .\"O change is made to the man page, .\"O since this is the most general way of doing version control. .\"O Dates should be written in the form YYYY-MM-DD. -ºÇ¿·¤Î¥ê¥Ó¥¸¥ç¥ó¤ÎÆüÉÕ\(emman ¥Ú¡¼¥¸¤ËÊѹ¹¤ò²Ã¤¨¤¿¤È¤­¤Ë¤Ï -ɬ¤º¤³¤ì¤òÊѹ¹¤¹¤ë¤³¤È¡£ -¤³¤ì¤¬ºÇ¤â°ìÈÌŪ¤Ê¥Ð¡¼¥¸¥ç¥ó´ÉÍýÊýË¡¤Ç¤¢¤ë¡£ -ÆüÉÕ¤Ï YYYY-MM-DD ¤Î·Á¼°¤Çµ­ºÜ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +最新のリビジョンの日付\(emman ページに変更を加えたときには +必ずこれを変更すること。 +これが最も一般的なバージョン管理方法である。 +日付は YYYY-MM-DD の形式で記載すべきである。 .TP .I source .\"O The source of the command, function, or system call. -¥³¥Þ¥ó¥É¡¢´Ø¿ô¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î½Ð¼«¡£ +コマンド、関数、システムコールの出自。 .\"O For those few \fIman-pages\fP pages in Sections 1 and 8, .\"O probably you just want to write .\"O .IR GNU . -¿ô¾¯¤Ê¤¤¥»¥¯¥·¥ç¥ó 1 ¤È 8 ¤Î¥Ú¡¼¥¸¤Î¾ì¹ç¡¢¤ª¤½¤é¤¯Ã±¤Ë +数少ないセクション 1 と 8 のページの場合、おそらく単に .I GNU -¤È¤À¤±½ñ¤¯¤³¤È¤¬Â¿¤¤¤À¤í¤¦¡£ +とだけ書くことが多いだろう。 .\"O For system calls, just write .\"O .IR "Linux" . @@ -212,113 +212,113 @@ man .\"O However, this was never done consistently, and so was .\"O probably worse than including no version number. .\"O Henceforth, avoid including a version number.) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¾ì¹ç¡¢Ã±¤Ë +システムコールの場合、単に .I "Linux" -¤È¤À¤±½ñ¤¯¡£ -(°ÊÁ°¤Î´·½¬¤Ç¤Ï¡¢¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤òµ­ºÜ¤·¤¿/ÆâÍƤò³Îǧ¤·¤¿¥«¡¼¥Í¥ë¤Î -¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òµ­ºÜ¤·¤Æ¤¤¤¿¡£¤·¤«¤·¡¢¥Ð¡¼¥¸¥ç¥óÈֹ椬¼ÂºÝ¤ÎÆâÍÆ¤È -°ìÃפ·¤Æ¤¤¤ë¤³¤È¤Ï¤Ê¤¯¡¢¤½¤Î¤¿¤á¥Ð¡¼¥¸¥ç¥óÈֹ椬¤Ê¤¤¤è¤ê¤â -¤ª¤½¤é¤¯°­¤¤·Á¤Ë¤Ê¤Ã¤Æ¤¤¤¿¡£ -º£¸å¤Ï¡¢¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤ò´Þ¤á¤ë¤Î¤ÏÈò¤±¤ë¤³¤È¡£) +とだけ書く。 +(以前の慣習では、マニュアルページを記載した/内容を確認したカーネルの +バージョン番号を記載していた。しかし、バージョン番号が実際の内容と +一致していることはなく、そのためバージョン番号がないよりも +おそらく悪い形になっていた。 +今後は、バージョン番号を含めるのは避けること。) .\"O For library calls that are part of glibc or one of the .\"O other common GNU libraries, just use .\"O .IR "GNU C Library" ", " GNU , .\"O or an empty string. -glibc ¤Î¥é¥¤¥Ö¥é¥ê¥³¡¼¥ë¤ä -¤½¤Î¾¤Î°ìÈÌŪ¤Ê GNU ¥é¥¤¥Ö¥é¥ê¤Î¥é¥¤¥Ö¥é¥ê¥³¡¼¥ë¤Î¾ì¹ç¡¢ -ñ¤Ë +glibc のライブラリコールや +その他の一般的な GNU ライブラリのライブラリコールの場合、 +単に .IR "GNU C Library" ", " GNU -¤È½ñ¤¯¤«¡¢¶õ¤Îʸ»úÎó¤ò»È¤¦¡£ +と書くか、空の文字列を使う。 .\"O For Section 4 pages, use .\"O .IR "Linux" . -¥»¥¯¥·¥ç¥ó 4 ¤Î¥Ú¡¼¥¸¤Ç¤Ï +セクション 4 のページでは .I "Linux" -¤ò»È¤¦¡£ +を使う。 .\"O In cases of doubt, just write .\"O .IR Linux ", or " GNU . -¤è¤¯¤ï¤«¤é¤Ê¤¤¾ì¹ç¤Ï¡¢ +よくわからない場合は、 .I Linux -¤È¤« +とか .I GNU -¤È½ñ¤¤¤Æ¤ª¤¯¡£ +と書いておく。 .TP .I manual .\"O The title of the manual (e.g., for Section 2 and 3 pages in .\"O the \fIman-pages\fP package, use .\"O .IR "Linux Programmer's Manual" ). -¥Þ¥Ë¥å¥¢¥ë¤Î¥¿¥¤¥È¥ë (Îã: -\fIman-pages\fP ¥Ñ¥Ã¥±¡¼¥¸¤Î¥»¥¯¥·¥ç¥ó 2 ¤ª¤è¤Ó 3 ¤Î¥Ú¡¼¥¸¤Î¾ì¹ç¤Ë¤Ï¡¢ +マニュアルのタイトル (例: +\fIman-pages\fP パッケージのセクション 2 および 3 のページの場合には、 .I "Linux Programmer's Manual" -¤ò»È¤¦¤³¤È)¡£ +を使うこと)。 .RE .\"O .SS Sections within a manual page -.SS ¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¥»¥¯¥·¥ç¥ó +.SS マニュアルページのセクション .\"O The list below shows conventional or suggested sections. .\"O Most manual pages should include at least the .\"O .B highlighted .\"O sections. .\"O Arrange a new manual page so that sections .\"O are placed in the order shown in the list. -ÀΤ«¤é»È¤ï¤ì¤Æ¤­¤¿¥»¥¯¥·¥ç¥ó̾¤ò°Ê²¼¤Î¥ê¥¹¥È¤Ë¼¨¤¹¡£ -¤³¤ì¤é¤ò»È¤¦¤ÈÎɤ¤¤À¤í¤¦¡£ -°ìÈÌŪ¤Ë¡¢¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï¡¢¾¯¤Ê¤¯¤È¤â -.B ¿§¤Ä¤­ -¤Î¥»¥¯¥·¥ç¥ó¤ò»ý¤Ä¤Î¤¬Ë¾¤Þ¤·¤¤¡£ -¿·¤·¤¯¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤òºîÀ®¤¹¤ëºÝ¤Ë¤Ï¡¢¤À¤¤¤¿¤¤°Ê²¼¤Î¥ê¥¹¥È¤Ë¼¨¤·¤¿ -½ç½ø¤Ç¥»¥¯¥·¥ç¥ó¤òÇÛÃÖ¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤â¤é¤¤¤¿¤¤¡£ +昔から使われてきたセクション名を以下のリストに示す。 +これらを使うと良いだろう。 +一般的に、マニュアルページは、少なくとも +.B 色つき +のセクションを持つのが望ましい。 +新しくマニュアルページを作成する際には、だいたい以下のリストに示した +順序でセクションを配置するようにしてもらいたい。 .in +0.5i .nf .\"O \fBNAME\fP -\fB̾Á°\fP +\fB名前\fP .\"O \fBSYNOPSIS\fP -\fB½ñ¼°\fP +\fB書式\fP .\"O CONFIGURATION [Normally only in Section 4] -ÀßÄê [Ä̾ï¤Ï¥»¥¯¥·¥ç¥ó 4 ¤Î¤ß] +設定 [通常はセクション 4 のみ] .\"O \fBDESCRIPTION\fP -\fBÀâÌÀ\fP +\fB説明\fP .\"O OPTIONS [Normally only in Sections 1, 8] -¥ª¥×¥·¥ç¥ó [Ä̾ï¤Ï¥»¥¯¥·¥ç¥ó 1, 8 ¤Î¤ß] +オプション [通常はセクション 1, 8 のみ] .\"O EXIT STATUS [Normally only in Sections 1, 8] -½ªÎ»¥¹¥Æ¡¼¥¿¥¹ [Ä̾ï¤Ï¥»¥¯¥·¥ç¥ó 1, 8 ¤Î¤ß] +終了ステータス [通常はセクション 1, 8 のみ] .\"O RETURN VALUE [Normally only in Sections 2, 3] -ÊÖ¤êÃÍ [Ä̾ï¤Ï¥»¥¯¥·¥ç¥ó 2, 3 ¤Î¤ß] +返り値 [通常はセクション 2, 3 のみ] .\" May 07: Few current man pages have an ERROR HANDLING section,,, .\"O .\" ERROR HANDLING, -.\" ¥¨¥é¡¼½èÍý +.\" エラー処理 .\"O ERRORS [Typically only in Sections 2, 3] -¥¨¥é¡¼ [¤¿¤¤¤Æ¤¤¤Ï¥»¥¯¥·¥ç¥ó 2, 3 ¤Î¤ß] +エラー [たいていはセクション 2, 3 のみ] .\" May 07: Almost no current man pages have a USAGE section,,, .\"O .\" USAGE, -.\" ÍøÍÑË¡ +.\" 利用法 .\"O .\" DIAGNOSTICS, -.\" ¿ÇÃÇ¥á¥Ã¥»¡¼¥¸ +.\" 診断メッセージ .\" May 07: Almost no current man pages have a SECURITY section,,, .\"O .\" SECURITY, -.\" ¥»¥­¥å¥ê¥Æ¥£ +.\" セキュリティ .\"O ENVIRONMENT -´Ä¶­ÊÑ¿ô +環境変数 .\"O FILES -¥Õ¥¡¥¤¥ë +ファイル .\"O VERSIONS [Normally only in Sections 2, 3] -¥Ð¡¼¥¸¥ç¥ó [Ä̾ï¤Ï¥»¥¯¥·¥ç¥ó 2, 3 ¤Î¤ß] +バージョン [通常はセクション 2, 3 のみ] .\"O CONFORMING TO -½àµò +準拠 .\"O NOTES -Ãí°Õ/È÷¹Í +注意/備考 .\"O BUGS -¥Ð¥° +バグ .\"O EXAMPLE -Îã +例 .\"O .\" AUTHORS sections are discouraged .\"O .\" AUTHORS [Discouraged] -.\" Ãø¼Ô ¥»¥¯¥·¥ç¥ó¤ÏÈó¿ä¾©¤Ç¤¢¤ë -.\" Ãø¼Ô +.\" 著者 セクションは非推奨である +.\" 著者 .\"O \fBSEE ALSO\fP -\fB´ØÏ¢¹àÌÜ\fP +\fB関連項目\fP .fi .in @@ -330,33 +330,33 @@ glibc .\"O However, before doing this, consider whether you could use the .\"O traditional headings, with some subsections (\fI.SS\fP) within .\"O those sections. -¡ÖÅÁÅýŪ¤Ë»È¤ï¤ì¤Æ¤­¤¿¸«½Ð¤·¤¬»È¤¨¤ë¾ì¹ç¤Ë¤Ï¡¢¤½¤ì¤ò»È¤Ã¤Æ¤Û¤·¤¤¡£¡× -¤³¤Î¼ï¤Î°ì´ÓÀ­¤òÊݤĤ³¤È¤Ç¡¢¾ðÊó¤òÍý²ò¤·¤ä¤¹¤¯¤Ê¤ë¤«¤é¤Ç¤¢¤ë¡£ -¤É¤¦¤·¤Æ¤âɬÍפʾì¹ç¤Ë¤Ï¡¢Íý²ò¤·¤ä¤¹¤¯¤Ê¤ë¤è¤¦¤ËÆȼ«¤Î¸«½Ð¤·¤ò -ºî¤Ã¤Æ¤â¤è¤¤ (Æä˥»¥¯¥·¥ç¥ó 4 ¤ä 5 ¤Î¥Ú¡¼¥¸¤Ç¤Ï¤³¤¦¤·¤¿Êý¤¬ -¤ï¤«¤ê¤ä¤¹¤¯¤Ê¤ë)¡£¤¿¤À¤·¡¢¤½¤¦¤¹¤ëÁ°¤Ë¡¢ÅÁÅýŪ¤Ê¸«½Ð¤·¤ò»È¤¤¡¢ -¤½¤Î¥»¥¯¥·¥ç¥óÆâ¤Ë¥µ¥Ö¥»¥¯¥·¥ç¥ó (\fI.SS\fP) ¤òÀߤ±¤ë¤³¤È¤Ç -Âбþ¤Ç¤­¤Ê¤¤¤«¹Í¤¨¤Æ¤Û¤·¤¤¡£ +「伝統的に使われてきた見出しが使える場合には、それを使ってほしい。」 +この種の一貫性を保つことで、情報を理解しやすくなるからである。 +どうしても必要な場合には、理解しやすくなるように独自の見出しを +作ってもよい (特にセクション 4 や 5 のページではこうした方が +わかりやすくなる)。ただし、そうする前に、伝統的な見出しを使い、 +そのセクション内にサブセクション (\fI.SS\fP) を設けることで +対応できないか考えてほしい。 .\"O The following list elaborates on the contents of each of .\"O the above sections. -°Ê²¼¤Î¥ê¥¹¥È¤Ç¤Ï¡¢¾åµ­¤Î¥»¥¯¥·¥ç¥ó¤Î¤½¤ì¤¾¤ì¤ÎÆâÍƤˤĤ¤¤Æ -¾Ü¤·¤¯ÀâÌÀ¤¹¤ë¡£ +以下のリストでは、上記のセクションのそれぞれの内容について +詳しく説明する。 .TP 14 .\"O .B NAME -.B ̾Á° (NAME) +.B 名前 (NAME) .\"O The name of this manual page. .\"O See .\"O .BR man (7) .\"O for important details of the line(s) that should follow the .\"O \fB.SH NAME\fP command. -¤½¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î̾Á°¡£ -\fB.SH NAME\fP ¥³¥Þ¥ó¥É¤Î¹Ô¤¬½¾¤¦¤Ù¤­Âç»ö¤ÊÅÀ¤Ë¤Ä¤¤¤Æ¤Ï +そのマニュアルページの名前。 +\fB.SH NAME\fP コマンドの行が従うべき大事な点については .BR man (7) -¤ò»²¾È¤·¤Æ¤Û¤·¤¤¡£ +を参照してほしい。 .TP .\"O .B SYNOPSIS -.B ½ñ¼° (SYNOPSIS) +.B 書式 (SYNOPSIS) .\"O briefly describes the command or function's interface. .\"O For commands, this shows the syntax of the command and its arguments .\"O (including options); @@ -367,35 +367,35 @@ glibc .\"O For functions, it shows any required data declarations or .\"O .B #include .\"O directives, followed by the function declaration. -¥³¥Þ¥ó¥É¤ä´Ø¿ô¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò´Ê·é¤Ëµ­½Ò¤¹¤ë¡£ -¥³¥Þ¥ó¥É¤ËÂФ·¤Æ¤Ï¡¢¥³¥Þ¥ó¥É¤ä°ú¤­¿ô (¥ª¥×¥·¥ç¥ó) ¤Îʸˡ¤ò½ñ¤¯¡£ -¤½¤Î¤Þ¤Þ½ñ¤¯¥Æ¥­¥¹¥È¤Ë¤Ï¥Ü¡¼¥ë¥ÉÂΤòÍѤ¤¡¢ÃÖ¤­´¹¤¨¤ë°ú¤­¿ô¤Ë¤Ï -¥¤¥¿¥ê¥Ã¥¯ÂΤòÍѤ¤¤ë¡£¾Êά²Äǽ¤Ê¥ª¥×¥·¥ç¥ó¤Ï¥Ö¥é¥±¥Ã¥È ([]) ¤Ç°Ï¤¤¡¢ -ÁªÂò»è¤Ï½ÄËÀ (|) ¤Ç¶èÀڤꡢ·«¤êÊÖ¤·¤Ë¤Ï¾ÊάÉä¹æ (...) ¤ò½ñ¤¯¡£ -´Ø¿ô¤ËÂФ·¤Æ¤Ï¡¢É¬Íפʥǡ¼¥¿Àë¸À¤ä +コマンドや関数のインターフェースを簡潔に記述する。 +コマンドに対しては、コマンドや引き数 (オプション) の文法を書く。 +そのまま書くテキストにはボールド体を用い、置き換える引き数には +イタリック体を用いる。省略可能なオプションはブラケット ([]) で囲い、 +選択肢は縦棒 (|) で区切り、繰り返しには省略符号 (...) を書く。 +関数に対しては、必要なデータ宣言や .B #include -»ØÄê¤ò½ñ¤­¡¢´Ø¿ôÀë¸À¤ò³¤±¤ë¡£ +指定を書き、関数宣言を続ける。 .\"O Where a feature test macro must be defined in order to obtain .\"O the declaration of a function (or a variable) from a header file, .\"O then the SYNOPSIS should indicate this, as described in .\"O .BR feature_test_macros (7). -¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤«¤é´Ø¿ô (¤äÊÑ¿ô) ¤ÎÄêµÁ¤òÆÀ¤ë¤¿¤á¤Ë -µ¡Ç½¸¡ºº¥Þ¥¯¥í (feature test macro) ¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¾ì¹ç¡¢ -½ñ¼° (SYNOPSIS) ¤ËɬÍפʵ¡Ç½¸¡ºº¥Þ¥¯¥í¤òµ­ºÜ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤Ë¤Ä¤¤¤Æ¤Ï +ヘッダファイルから関数 (や変数) の定義を得るために +機能検査マクロ (feature test macro) を定義しなければならない場合、 +書式 (SYNOPSIS) に必要な機能検査マクロを記載すべきである。 +機能検査マクロについては .BR feature_test_macros (7) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡£ +で説明されている。 .\" FIXME . Say something here about compiler options .TP .B CONFIGURATION .\"O Configuration details for a device. .\"O This section normally only appears in Section 4 pages. -¥Ç¥Ð¥¤¥¹¤ÎÀßÄê¾ÜºÙ¡£ -Ä̾¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï 4 ¾Ï¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Î¤ßÅо줹¤ë¡£ +デバイスの設定詳細。 +通常、このセクションは 4 章のマニュアルページでのみ登場する。 .TP .\"O .B DESCRIPTION -.B ÀâÌÀ (DESCRIPTION) +.B 説明 (DESCRIPTION) .\"O gives an explanation of what the program, function, or format does. .\"O Discuss how it interacts with files and standard input, and what it .\"O produces on standard output or standard error. @@ -405,82 +405,82 @@ glibc .\"O for information on command-line options of a program use the .\"O .B OPTIONS .\"O section. -¥×¥í¥°¥é¥à¡¦´Ø¿ô¡¦¥Õ¥©¡¼¥Þ¥Ã¥È¤ÎÆ°ºî¡¦ÌÜŪ¤òÀâÌÀ¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¤äɸ½àÆþÎϤò¤É¤Î¤è¤¦¤Ë½èÍý¤·¡¢É¸½à½ÐÎϤäɸ½à¥¨¥é¡¼½ÐÎϤò -¤É¤Î¤è¤¦¤ËÀ¸À®¤¹¤ë¤«¤È¤¤¤Ã¤¿¤³¤È¤Ë¤Ä¤¤¤Æ½Ò¤Ù¤ë¡£ -ÆâÉôÆ°ºî¤ä¼ÂÁõ¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¾Êά¤¹¤ë -(¤¿¤À¤·¤½¤ì¤¬Æ°ºî¤ÎÍý²ò¤Ë¤É¤¦¤·¤Æ¤âɬÍפʤéÊÌ)¡£ -Ä̾ï¤Î¾ì¹ç¤Ë¤Ä¤¤¤Æµ­½Ò¤¹¤ë¡£ -¥×¥í¥°¥é¥à¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¡¦¥ª¥×¥·¥ç¥ó¤ÎÀâÌÀ¤Ë¤Ï¡¢ -.B ¥ª¥×¥·¥ç¥ó -¤Î¥»¥¯¥·¥ç¥ó¤òÍѤ¤¤ë¡£ +プログラム・関数・フォーマットの動作・目的を説明する。 +ファイルや標準入力をどのように処理し、標準出力や標準エラー出力を +どのように生成するかといったことについて述べる。 +内部動作や実装の詳細については省略する +(ただしそれが動作の理解にどうしても必要なら別)。 +通常の場合について記述する。 +プログラムのコマンドライン・オプションの説明には、 +.B オプション +のセクションを用いる。 .\"O .\" If there is some kind of input grammar or complex set of subcommands, .\"O .\" consider describing them in a separate .\"O .\" .B USAGE .\"O .\" section (and just place an overview in the .\"O .\" .B DESCRIPTION .\"O .\" section). -.\" ÆþÎϤˤ¢¤ë¼ï¤Îʸˡ¤¬¤¢¤Ã¤¿¤ê¡¢Ê£»¨¤Ê¥µ¥Ö¥³¥Þ¥ó¥É¤¬¤¢¤ë¾ì¹ç¤Ï¡¢ -.\" ¤½¤ì¤é¤Ï -.\" .B ÍøÍÑË¡ -.\" ¤Î¥»¥¯¥·¥ç¥ó¤ËʬΥ¤¹¤ë¤³¤È¤ò¹Í¤¨¤ë¤È¤è¤¤ -.\" .RB ( ÀâÌÀ -.\" ¤Î¥»¥¯¥·¥ç¥ó¤Ë¤Ï³µÍפÀ¤±¤òÃÖ¤¯¤è¤¦¤Ë¤¹¤ë)¡£ +.\" 入力にある種の文法があったり、複雑なサブコマンドがある場合は、 +.\" それらは +.\" .B 利用法 +.\" のセクションに分離することを考えるとよい +.\" .RB ( 説明 +.\" のセクションには概要だけを置くようにする)。 .TP .\"O .B OPTIONS -.B ¥ª¥×¥·¥ç¥ó (OPTIONS) +.B オプション (OPTIONS) .\"O describes the command-line options accepted by a .\"O program and how they change its behavior. .\"O This section should only appear for Section 1 and 8 manual pages. -¥×¥í¥°¥é¥à¤¬¼õ¤±ÉÕ¤±¤ë¥³¥Þ¥ó¥É¥é¥¤¥ó¡¦¥ª¥×¥·¥ç¥ó¤È¡¢ -¤½¤Î¾ì¹ç¥×¥í¥°¥é¥à¤Î¿¶Éñ¤¤¤¬¤É¤¦ÊѤï¤ë¤«¤òÀâÌÀ¤¹¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥»¥¯¥·¥ç¥ó 1 ¤È 8 ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë¤À¤±Åо줹¤Ù¤­¤Ç¤¢¤ë¡£ +プログラムが受け付けるコマンドライン・オプションと、 +その場合プログラムの振舞いがどう変わるかを説明する。 +このセクションはセクション 1 と 8 のマニュアルページにだけ登場すべきである。 .\" .TP .\"O .\" .B USAGE -.\" .B ÍøÍÑË¡ (USAGE) +.\" .B 利用法 (USAGE) .\"O .\" describes the grammar of any sublanguage this implements. -.\" ¥³¥Þ¥ó¥É¤Ê¤É¤¬¼ÂÁõ¤·¤Æ¤¤¤ëÉû¸À¸ì (sublanguage) ¤Îʸˡ¤òµ­½Ò¤¹¤ë¡£ +.\" コマンドなどが実装している副言語 (sublanguage) の文法を記述する。 .TP .\"O .B EXIT STATUS -.B ½ªÎ»¥¹¥Æ¡¼¥¿¥¹ (EXIT STATUS) +.B 終了ステータス (EXIT STATUS) .\"O lists the possible exit status values of a program and .\"O the conditions that cause these values to be returned. .\"O This section should only appear for Section 1 and 8 manual pages. -¥×¥í¥°¥é¥à¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤ÎÃͤȡ¢¤½¤ì¤é¤ÎÃͤËÂбþ¤¹¤ë¾õ¶·¤òÎóµó¤¹¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥»¥¯¥·¥ç¥ó 1 ¤È 8 ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë¤À¤±Åо줹¤Ù¤­¤Ç¤¢¤ë¡£ +プログラムの終了ステータスの値と、それらの値に対応する状況を列挙する。 +このセクションはセクション 1 と 8 のマニュアルページにだけ登場すべきである。 .TP .\"O .B RETURN VALUE -.B ÊÖ¤êÃÍ (RETURN VALUE) +.B 返り値 (RETURN VALUE) .\"O For Section 2 and 3 pages, this section gives a .\"O list of the values the library routine will return to the caller .\"O and the conditions that cause these values to be returned. -¥»¥¯¥·¥ç¥ó 2 ¤È 3 ¤Î¥Ú¡¼¥¸¤Î¾ì¹ç¡¢¤³¤Î¥»¥¯¥·¥ç¥ó¤Ë -¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤¬¸Æ¤Ó½Ð¤·¸µ¤ËÊÖ¤¹ÃͤΥꥹ¥È¤òµ­ºÜ¤¹¤ë¡£ -¤½¤ì¤é¤ÎÃͤ¬ÊÖ¤µ¤ì¤¿¾ì¹ç¤Î¾õÂÖ¤ËÂФ¹¤ëÀâÌÀ¤â½ñ¤¯¡£ +セクション 2 と 3 のページの場合、このセクションに +ライブラリルーチンが呼び出し元に返す値のリストを記載する。 +それらの値が返された場合の状態に対する説明も書く。 .TP .\"O .B ERRORS -.B ¥¨¥é¡¼ (ERRORS) +.B エラー (ERRORS) .\"O For Section 2 and 3 manual pages, this is a list of the .\"O values that may be placed in .\"O .I errno .\"O in the event of an error, along with information about the cause .\"O of the errors. .\"O .IR "The error list should be in alphabetical order" . -¥»¥¯¥·¥ç¥ó 2 ¤È 3 ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Ï¡¢ -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë +セクション 2 と 3 のマニュアルページでは、 +エラーが発生した場合に .I errno -¤ËÀßÄꤵ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ëÃͤΥꥹ¥È¤òµ­ºÜ¤¹¤ë¡£ -¥ê¥¹¥È¤Ë¤Ï¡¢¥¨¥é¡¼¤ÎÃͤȥ¨¥é¡¼¤Î¸¶°ø¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤ò½ñ¤¯¡£ -¡Ö¥¨¥é¡¼¥ê¥¹¥È¤Ï¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½ç¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£¡× +に設定される可能性がある値のリストを記載する。 +リストには、エラーの値とエラーの原因についての情報を書く。 +「エラーリストはアルファベット順にすべきである。」 .TP .\"O .B ENVIRONMENT -.B ´Ä¶­ÊÑ¿ô (ENVIRONMENT) +.B 環境変数 (ENVIRONMENT) .\"O lists all environment variables that affect the program or function .\"O and how they affect it. -¥×¥í¥°¥é¥à¤ä´Ø¿ô¤Ë±Æ¶Á¤¹¤ë´Ä¶­ÊÑ¿ô¤ò¥ê¥¹¥È¤·¡¢¤½¤ì¤é¤Î¸ú²Ì¤ò½ñ¤¯¡£ +プログラムや関数に影響する環境変数をリストし、それらの効果を書く。 .TP .\"O .B FILES -.B ¥Õ¥¡¥¤¥ë (FILES) +.B ファイル (FILES) .\"O lists the files the program or function uses, such as .\"O configuration files, startup files, .\"O and files the program directly operates on. @@ -491,36 +491,36 @@ glibc .\"O so your base manual page should use .\"O .I /usr/local .\"O as the base. -¥×¥í¥°¥é¥à¤ä´Ø¿ô¤¬ÍѤ¤¤ë¥Õ¥¡¥¤¥ë¤òÎóµ­¤¹¤ë¡£ -Î㤨¤Ð¡¢ÀßÄê¥Õ¥¡¥¤¥ë¡¢µ¯Æ°¥Õ¥¡¥¤¥ë¡¢¥×¥í¥°¥é¥à¤¬Ä¾ÀÜÁàºî¤¹¤ë¥Õ¥¡¥¤¥ë¤Ê¤É¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë̾¤Ï¥Õ¥ë¥Ñ¥¹¤Çµ­ºÜ¤·¡¢ -¥Ç¥£¥ì¥¯¥È¥ê¤ÎÉôʬ¤Ï¥æ¡¼¥¶¡¼¤Î¹¥¤ß¤Ë¹ç¤ï¤»¤Æ -¥¤¥ó¥¹¥È¡¼¥ë½èÍý¤ÇÊѹ¹¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ -¿¤¯¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¥Ç¥Õ¥©¥ë¥È¤Î¥¤¥ó¥¹¥È¡¼¥ëÀè¤Ï +プログラムや関数が用いるファイルを列記する。 +例えば、設定ファイル、起動ファイル、プログラムが直接操作するファイルなどである。 +これらのファイルのファイル名はフルパスで記載し、 +ディレクトリの部分はユーザーの好みに合わせて +インストール処理で変更できるようにする。 +多くのプログラムではデフォルトのインストール先は .I /usr/local -¤Ç¤¢¤ë¡£¤·¤¿¤¬¤Ã¤Æ¥Ù¡¼¥¹¤È¤Ê¤ë¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤â +である。したがってベースとなるマニュアルページでも .I /usr/local -¤¬»È¤ï¤ì¤Æ¤¤¤ë¤³¤È¤¬Â¿¤¤¤À¤í¤¦¡£ +が使われていることが多いだろう。 .\" May 07: Almost no current man pages have a DIAGNOSTICS section; .\" "RETURN VALUE" or "EXIT STATUS" is preferred. .\" .TP .\"O .\" .B DIAGNOSTICS -.\" .B ¿ÇÃÇ¥á¥Ã¥»¡¼¥¸ (DIAGNOSTICS) +.\" .B 診断メッセージ (DIAGNOSTICS) .\"O .\" gives an overview of the most common error messages and how to .\"O .\" cope with them. .\"O .\" You don't need to explain system error messages .\"O .\" or fatal signals that can appear during execution of any program .\"O .\" unless they're special in some way to the program. -.\" ¤´¤¯°ìÈÌŪ¤Ê¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Î³µÍפȡ¢ -.\" ¤½¤ì¤é¤ò¤É¤¦°·¤¦¤«¤Ë¤Ä¤¤¤Æ½Ò¤Ù¤ë¡£¥×¥í¥°¥é¥à¤Î¼Â¹Ô»þ¤Ë¸½¤ì¤ë -.\" ¥·¥¹¥Æ¥à¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤äÃ×̿Ū¥·¥°¥Ê¥ë¤òÁ´ÉôÀâÌÀ¤¹¤ëɬÍפϤʤ¤¡£ -.\" ¤¿¤À¤·¤½¤ì¤é¤¬¥×¥í¥°¥é¥à¤ËÂФ·¤Æ -.\" ²¿¤é¤«¤ÎÆüì¤Ê°ÕÌ£¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¤ÏÊ̤Ǥ¢¤ë¡£ +.\" ごく一般的なエラーメッセージの概要と、 +.\" それらをどう扱うかについて述べる。プログラムの実行時に現れる +.\" システムエラーメッセージや致命的シグナルを全部説明する必要はない。 +.\" ただしそれらがプログラムに対して +.\" 何らかの特殊な意味を持っている場合は別である。 .\" .\" May 07: Almost no current man pages have a SECURITY section. .\".TP .\"O .\".B SECURITY -.\" .B ¥»¥­¥å¥ê¥Æ¥£ (SECURITY) +.\" .B セキュリティ (SECURITY) .\"O .\"discusses security issues and implications. .\"O .\"Warn about configurations or environments that should be avoided, .\"O .\"commands that may have security implications, and so on, especially @@ -533,25 +533,25 @@ glibc .\"O .\" .B USAGE .\"O .\" section). .\"O .\" However, please include security information somewhere! -.\" ¥»¥­¥å¥ê¥Æ¥£´ØÏ¢¤ÎÏÃÂꡦÌäÂê¤Ë¤Ä¤¤¤Æ½Ò¤Ù¤ë¡£ -.\" Èò¤±¤ë¤Ù¤­ÀßÄê¤ä´Ä¶­¡¦¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÌäÂê¤ò°ú¤­µ¯¤³¤¹¥³¥Þ¥ó¥É -.\" ¤Ê¤É¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë¡£¤½¤ì¤é¤¬ÌÀ¤é¤«¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢¤³¤ì¤ÏÆä˽ÅÍפǤ¢¤ë¡£ -.\" ¥»¥­¥å¥ê¥Æ¥£¤Ë´Ø¤¹¤ëÏÃÂê¤Ï¡¢É¬¤º¤·¤âÆÈΩ¤·¤¿¥»¥¯¥·¥ç¥ó¤Ë¤¹¤ëɬÍפϤʤ¤¡£ -.\" ¤â¤·Íý²ò¤·¤ä¤¹¤±¤ì¤Ð¡¢¥»¥­¥å¥ê¥Æ¥£¤Î¾ðÊó¤Ï¾¤Î¥»¥¯¥·¥ç¥ó -.\" (Î㤨¤Ð -.\" .B ÀâÌÀ -.\" ¤ä -.\" .B ÍøÍÑË¡ -.\" ¤Ê¤É) ¤Ë½ñ¤¤¤Æ¤â¤è¤¤¡£ -.\" ¤·¤«¤·¡¢¥»¥­¥å¥ê¥Æ¥£¤Î¾ðÊó¤Ï¤É¤³¤«¤Ë¤Ï½ñ¤¤¤Æ¤ª¤¤¤Æ¤Û¤·¤¤! +.\" セキュリティ関連の話題・問題について述べる。 +.\" 避けるべき設定や環境・セキュリティ上の問題を引き起こすコマンド +.\" などについて警告する。それらが明らかでない場合には、これは特に重要である。 +.\" セキュリティに関する話題は、必ずしも独立したセクションにする必要はない。 +.\" もし理解しやすければ、セキュリティの情報は他のセクション +.\" (例えば +.\" .B 説明 +.\" や +.\" .B 利用法 +.\" など) に書いてもよい。 +.\" しかし、セキュリティの情報はどこかには書いておいてほしい! .TP .\"O .B VERSIONS -.B ¥Ð¡¼¥¸¥ç¥ó (VERSIONS) +.B バージョン (VERSIONS) .\"O A brief summary of the Linux kernel or glibc versions where a .\"O system call or library function appeared, .\"O or changed significantly in its operation. -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä¥é¥¤¥Ö¥é¥ê´Ø¿ô¤¬Åо줷¤¿¤ê¡¢Æ°ºî¤Î½ÅÍפÊÊѹ¹¤¬¹Ô¤ï¤ì¤¿¡¢ -Linux ¥«¡¼¥Í¥ë¤ä glibc ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Î´Ê·é¤Ê³µÍס£ +システムコールやライブラリ関数が登場したり、動作の重要な変更が行われた、 +Linux カーネルや glibc のバージョンについての簡潔な概要。 .\"O As a general rule, every new interface should .\"O include a VERSIONS section in its manual page. .\"O Unfortunately, @@ -564,27 +564,27 @@ Linux .\"O (i.e., changes since kernel 2.2), .\"O and library functions that have been added to glibc since version 2.1 .\"O (i.e., changes since glibc 2.0). -°ìÈ̤ˡ¢Á´¤Æ¤Î¿·¤·¤¤¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï¡¢¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë -¡Ö¥Ð¡¼¥¸¥ç¥ó¡×¤ÎÀá¤òÀߤ±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -»ÄÇ°¤Ê¤³¤È¤Ë¡¢Â¿¤¯¤Î´û¸¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë¤³¤Î¾ðÊó¤Ï´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤ -(¤³¤ì¤é¤Î¥Ú¡¼¥¸¤¬½ñ¤«¤ì¤¿»þÅÀ¤Ç¤Ï¤½¤Î¤è¤¦¤Ê¥Ý¥ê¥·¡¼¤Ï¤Ê¤«¤Ã¤¿¤«¤é¤Ç¤¢¤ë)¡£ -¤³¤ì¤ò²þÁ±¤¹¤ë¥Ñ¥Ã¥Á¤Ï´¿·Þ¤µ¤ì¤ë¤¬¡¢ -¿·¤·¤¤¥³¡¼¥É¤ò½ñ¤¯¥×¥í¥°¥é¥Þ¤Î´ÑÅÀ¤«¤é¤¹¤ì¤Ð¡¢ -¤ª¤½¤é¤¯¤³¤Î¾ðÊ󤬽ÅÍפˤʤë¤Î¤Ï¡¢ -Linux 2.4 °Ê¹ß¤ÇÄɲ䵤줿¥«¡¼¥Í¥ë¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹ (¥«¡¼¥Í¥ë 2.2 ¤«¤é¤ÎÊѹ¹) ¤È -glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤ÇÄɲ䵤줿¥é¥¤¥Ö¥é¥ê´Ø¿ô (glibc 2.0 ¤«¤é¤ÎÊѹ¹) -¤Ë¤Ä¤¤¤Æ¤Î¤ß¤Ç¤¢¤í¤¦¡£ +一般に、全ての新しいインターフェイスは、マニュアルページに +「バージョン」の節を設けるべきである。 +残念なことに、多くの既存のマニュアルページにこの情報は含まれていない +(これらのページが書かれた時点ではそのようなポリシーはなかったからである)。 +これを改善するパッチは歓迎されるが、 +新しいコードを書くプログラマの観点からすれば、 +おそらくこの情報が重要になるのは、 +Linux 2.4 以降で追加されたカーネルインターフェイス (カーネル 2.2 からの変更) と +glibc バージョン 2.1 以降で追加されたライブラリ関数 (glibc 2.0 からの変更) +についてのみであろう。 .\"O The .\"O .BR syscalls (2) .\"O manual page also provides information about kernel versions .\"O in which various system calls first appeared. .BR syscalls (2) -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë¤â¡¢¤¤¤í¤¤¤í¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬½é¤á¤ÆÅо줷¤¿ -¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Î¾ðÊ󤬽ñ¤«¤ì¤Æ¤¤¤ë¡£ +マニュアルページにも、いろいろなシステムコールが初めて登場した +カーネルバージョンについての情報が書かれている。 .TP .\"O .B CONFORMING TO -.B ½àµò (CONFORMING TO) +.B 準拠 (CONFORMING TO) .\"O describes any standards or conventions that relate to the function .\"O or command described by the manual page. .\"O For a page in Section 2 or 3, @@ -597,103 +597,103 @@ glibc .\"O but isn't in the current version of POSIX.1.) .\"O (See .\"O .BR standards (7).) -¤½¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë´Ø¿ô¤ä¥³¥Þ¥ó¥É¤Ë´ØÏ¢¤¹¤ë -ɸ½àµ¬³Ê¤ä´·½¬¤Ë¤Ä¤¤¤Æµ­ºÜ¤¹¤ë¡£ -¥»¥¯¥·¥ç¥ó 2 ¤ä 3 ¤Î¥Ú¡¼¥¸¤Ç¤Ï¡¢¤³¤Î¥»¥¯¥·¥ç¥ó¤Ç -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä´Ø¿ô¤¬½àµò¤¹¤ë POSIX.1 ¤Î¥Ð¡¼¥¸¥ç¥ó¤È¡¢ -C99 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¤«¤Ë¿¨¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -(SUS, SUSv2, XPG ¤Ê¤É¤Î¾¤Îɸ½àµ¬³Ê¤ä¡¢SVr4 ¤ä 4.xBSD ¤Î¼ÂÁõɸ½à¤Ë -¤Ä¤¤¤Æ¤Ï¡¢ÀâÌÀ¤·¤Æ¤¤¤ë¥³¡¼¥ë¤¬¤³¤ì¤é¤Îµ¬³Ê¤Çµ¬Äꤵ¤ì¤Æ¤ª¤ê -POSIX.1 ¤Î¸½¹Ô¥Ð¡¼¥¸¥ç¥ó¤Çµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç°Ê³°¤Ï¡¢ -¤¢¤Þ¤ê¿¼¤¯µ¤¤Ë¤¹¤ëɬÍפϤʤ¤¡£) +そのマニュアルページで説明している関数やコマンドに関連する +標準規格や慣習について記載する。 +セクション 2 や 3 のページでは、このセクションで +システムコールや関数が準拠する POSIX.1 のバージョンと、 +C99 で規定されているかに触れるべきである。 +(SUS, SUSv2, XPG などの他の標準規格や、SVr4 や 4.xBSD の実装標準に +ついては、説明しているコールがこれらの規格で規定されており +POSIX.1 の現行バージョンで規定されていない場合以外は、 +あまり深く気にする必要はない。) .RB ( standards (7) -»²¾È¡£) +参照。) .\"O If the call is not governed by any standards but commonly .\"O exists on other systems, note them. .\"O If the call is Linux-specific, note this. -¤½¤Î¥³¡¼¥ë¤¬¤É¤Îɸ½à¤Ë¤â´ð¤Å¤¤¤Æ¤¤¤Ê¤¤¤¬¡¢ -¾¤Î¥·¥¹¥Æ¥à¤Ç¹­¤¯Â¸ºß¤¹¤ë¾ì¹ç¤Ï¡¢¤½¤Î»Ý¤òµ­ºÜ¤¹¤ë¤³¤È¡£ -¤½¤Î¥³¡¼¥ë¤¬ Linux ¸ÇÍ­¤Î¾ì¹ç¤Ï¡¢¤½¤Î»Ý¤òµ­ºÜ¤¹¤ë¤³¤È¡£ +そのコールがどの標準にも基づいていないが、 +他のシステムで広く存在する場合は、その旨を記載すること。 +そのコールが Linux 固有の場合は、その旨を記載すること。 .\"O If this section consists of just a list of standards .\"O (which it commonly does), .\"O terminate the list with a period (\(aq.\(aq). -(¤½¤¦¤Ê¤Ã¤Æ¤¤¤ë¥Ú¡¼¥¸¤¬Â¿¤¤¤¬) ¤³¤Î¥»¥¯¥·¥ç¥ó¤ÎÆâÍƤ¬É¸½à¤Î¥ê¥¹¥È -¤À¤±¤Î¾ì¹ç¡¢¥ê¥¹¥È¤ÎºÇ¸å¤Ë¥Ô¥ê¥ª¥É (\(aq.\(aq) ¤òÃÖ¤¯¤³¤È¡£ +(そうなっているページが多いが) このセクションの内容が標準のリスト +だけの場合、リストの最後にピリオド (\(aq.\(aq) を置くこと。 .TP .\"O .B NOTES -.B Ãí°Õ (NOTES) +.B 注意 (NOTES) .\"O provides miscellaneous notes. .\"O For Section 2 and 3 man pages you may find it useful to include .\"O subsections (\fBSS\fP) named \fILinux Notes\fP and \fIGlibc Notes\fP. -¤½¤Î¾¤ÎÃí°ÕÅÀ¤ò½ñ¤¯¡£ -¥»¥¯¥·¥ç¥ó 2 ¤È 3 ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Ï¡¢ -\fILinux ¤Ç¤ÎÃí°Õ (Linux Notes)\fP ¤ä \fIglibc ¤Ç¤ÎÃí°Õ (Glibc Notes)\fP -¤È¤¤¤¦Ì¾Á°¤Î¥µ¥Ö¥»¥¯¥·¥ç¥ó (\fBSS\fP) ¤òÀߤ±¤ë¤ÈÊØÍø¤Ê¤³¤È¤â¤¢¤ë¡£ +その他の注意点を書く。 +セクション 2 と 3 のマニュアルページでは、 +\fILinux での注意 (Linux Notes)\fP や \fIglibc での注意 (Glibc Notes)\fP +という名前のサブセクション (\fBSS\fP) を設けると便利なこともある。 .TP .\"O .B BUGS -.B ¥Ð¥° (BUGS) +.B バグ (BUGS) .\"O lists limitations, known defects or inconveniences, .\"O and other questionable activities. -À©¸Â¡¦ÃΤé¤ì¤Æ¤¤¤ë·ç´Ù¤äÉÔÊؤÊÅÀ¡¢¤½¤Î¾ÉԻ׵ĤÊÆ°ºî¤Ê¤É¤ò½ñ¤¯¡£ +制限・知られている欠陥や不便な点、その他不思議な動作などを書く。 .TP .\"O .B EXAMPLE -.B Îã (EXAMPLE) +.B 例 (EXAMPLE) .\"O provides one or more examples describing how this function, file or .\"O command is used. .\"O For details on writing example programs, .\"O see \fIExample Programs\fP below. -¤³¤Î´Ø¿ô¡¦¥Õ¥¡¥¤¥ë¡¦¥³¥Þ¥ó¥É¤ò¤É¤Î¤è¤¦¤Ë»È¤¦¤«¤ò¼¨¤·¤¿ -¤Ò¤È¤Ä¤Þ¤¿¤ÏÊ£¿ô¤ÎÎã¤òµ­½Ò¤¹¤ë¡£ -¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤ò½ñ¤¯ºÝ¤Î¾ÜºÙ¤Ï -°Ê²¼¤Î¡Ö¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¡×¤ÎÀá¤ò»²¾È¤Î¤³¤È¡£ +この関数・ファイル・コマンドをどのように使うかを示した +ひとつまたは複数の例を記述する。 +サンプルプログラムを書く際の詳細は +以下の「サンプルプログラム」の節を参照のこと。 .TP .\"O .B AUTHORS -.B Ãø¼Ô (AUTHORS) +.B 著者 (AUTHORS) .\"O lists authors of the documentation or program. -ʸ½ñ¤Þ¤¿¤Ï¥×¥í¥°¥é¥à¤ÎÃø¼Ô¤òÎóµ­¤¹¤ë¡£ +文書またはプログラムの著者を列記する。 .\"O \fBUse of an AUTHORS section is strongly discouraged\fP. -.B Ãø¼Ô¥»¥¯¥·¥ç¥ó¤Ï¶ËÎÏ»ÈÍѤ·¤Ê¤¤¤³¤È¡£ +.B 著者セクションは極力使用しないこと。 .\"O Generally, it is better not to clutter every page with a list .\"O of (over time potentially numerous) authors; .\"O if you write or significantly amend a page, .\"O add a copyright notice as a comment in the source file. -°ìÈÌŪ¤Ë¤Ï¡¢Ãø¼Ô¤Î¥ê¥¹¥È¤ò³Æ¥Ú¡¼¥¸¤Ë»µ¤­»¶¤é¤µ¤Ê¤¤Êý¤¬¤è¤¤ -(»þ´Ö¤¬¤¿¤Ä¤È¡¢ºî¼Ô¤Î¥ê¥¹¥È¤ÏËÄÂç¤Ë¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ë)¡£ -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò¿·µ¬¤Ë½ñ¤¤¤¿¤ê¡¢ÂçÉý¤Ë½¤Àµ¤ò¹Ô¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ -¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ë¥³¥á¥ó¥È¤È¤·¤ÆÃøºî¸¢É½¼¨¤òÄɲ乤뤳¤È¡£ +一般的には、著者のリストを各ページに撒き散らさない方がよい +(時間がたつと、作者のリストは膨大になる可能性がある)。 +マニュアルページを新規に書いたり、大幅に修正を行った場合には、 +ソースファイルにコメントとして著作権表示を追加すること。 .\"O If you are the author of a device driver and what to include .\"O an address for reporting bugs, place this under the BUGS section. -¤¢¤Ê¤¿¤¬¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Îºî¼Ô¤Ç¡¢¥Ð¥°¤òÊó¹ð¤¹¤ë¤¿¤á¤Î¥¢¥É¥ì¥¹¤ò -ºÜ¤»¤¿¤¤¾ì¹ç¤Ï¡¢¡Ö¥Ð¥°¡×¥»¥¯¥·¥ç¥ó¤Î¸å¤í¤Ë¤³¤Î¥»¥¯¥·¥ç¥ó¤òÇÛÃÖ¤¹¤ë¤³¤È¡£ +あなたがデバイスドライバの作者で、バグを報告するためのアドレスを +載せたい場合は、「バグ」セクションの後ろにこのセクションを配置すること。 .TP .\"O .B SEE ALSO -.B ´ØÏ¢¹àÌÜ (SEE ALSO) +.B 関連項目 (SEE ALSO) .\"O provides a comma-separated list of related man pages, .\"O ordered by section number and .\"O then alphabetically by name, possibly followed by .\"O other related pages or documents. .\"O Do not terminate this with a period. -´ØÏ¢¤¹¤ë¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò¡¢¥³¥ó¥Þ¶èÀÚ¤ê¤Î¥ê¥¹¥È¤Ç¡¢ -¥»¥¯¥·¥ç¥óÈÖ¹æ½ç¤Ë¡¢¥»¥¯¥·¥ç¥óÆâ¤Ç¤Ï¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½ç¤Çµ­ºÜ¤¹¤ë¡£ -²Äǽ¤Ê¤é´ØÏ¢¤¹¤ë¾¤Îʸ½ñ¤â½ñ¤¯¡£ -´·½¬¤Ç¤Ï¡¢¤³¤Î¥»¥¯¥·¥ç¥ó¤ÏºÇ¸å¤ËÃÖ¤¯¡£ -¥ê¥¹¥È¤ÎËöÈø¤Ë¥Ô¥ê¥ª¥É¤òÃÖ¤«¤Ê¤¤¤³¤È¡£ +関連するマニュアルページを、コンマ区切りのリストで、 +セクション番号順に、セクション内ではアルファベット順で記載する。 +可能なら関連する他の文書も書く。 +慣習では、このセクションは最後に置く。 +リストの末尾にピリオドを置かないこと。 .\"O .SS Font conventions -.SS ¥Õ¥©¥ó¥È¤Î´·½¬ +.SS フォントの慣習 .PP .\"O For functions, the arguments are always specified using italics, .\"O .IR "even in the SYNOPSIS section" , .\"O where the rest of the function is specified in bold: -´Ø¿ô¤ËÂФ·¤Æ¤Ï¡¢°ú¤­¿ô¤Ë¤Ï¾ï¤Ë¥¤¥¿¥ê¥Ã¥¯ÂΤòÍѤ¤¤ë¡£ -¡Ö¤¿¤È¤¨½ñ¼° (SYNOPSIS) ¥»¥¯¥·¥ç¥ó¤Ç¤¢¤Ã¤Æ¤â¡¢¤³¤Î¥ë¡¼¥ë¤Ë½¾¤¦¡× -´Ø¿ô¤Î¾¤ÎÉôʬ¤Ï¥Ü¡¼¥ë¥É¤ò»ØÄꤹ¤ë: +関数に対しては、引き数には常にイタリック体を用いる。 +「たとえ書式 (SYNOPSIS) セクションであっても、このルールに従う」 +関数の他の部分はボールドを指定する: .PP .BI " int myfunction(int " argc ", char **" argv ); .PP .\"O Variable names should, like argument names, be specified in italics. -°ú¤­¿ô̾¤È¤¤¤Ã¤¿ÊÑ¿ô̾¤Ï¥¤¥¿¥ê¥Ã¥¯ÂΤò»ØÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£ +引き数名といった変数名はイタリック体を指定すべきである。 .PP .\"O Filenames (whether pathnames, or references to files in the .\"O .I /usr/include @@ -702,43 +702,43 @@ POSIX.1 .\"O .IR ), .\"O except in the SYNOPSIS section, where included files are in bold (e.g., .\"O .BR "#include " ). -¥Õ¥¡¥¤¥ë̾ (¥Ñ¥¹Ì¾¡¢¤Þ¤¿¤Ï +ファイル名 (パス名、または .I /usr/include -¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¤Ø¤Î»²¾È) ¤Ï¾ï¤Ë¥¤¥¿¥ê¥Ã¥¯ÂΤˤ¹¤ë (Îã: -.IR )¡£ -¤¿¤À¤·¡¢½ñ¼° (SYNOPSIS) ¥»¥¯¥·¥ç¥ó¤ÏÎã³°¤Ç¡¢ -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Ï¥Ü¡¼¥ë¥É¤Ë¤¹¤ë (Îã: -.BR "#include " )¡£ +ディレクトリ内のファイルへの参照) は常にイタリック体にする (例: +.IR )。 +ただし、書式 (SYNOPSIS) セクションは例外で、 +インクルードファイルはボールドにする (例: +.BR "#include " )。 .\"O When referring to a standard include file under .\"O .IR /usr/include , .\"O specify the header file surrounded by angle brackets, .\"O in the usual C way (e.g., .\"O .IR ). .I /usr/include -°Ê²¼¤Îɸ½à¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ëºÝ¤Ï¡¢ -Ä̾ï¤Î C ¸À¸ì¤ÈƱÍͤ˻³³ç¸Ì¤Ç¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò°Ï¤Ì¤Ç»ØÄꤹ¤ë (Î㡧 -.IR )¡£ +以下の標準のインクルードファイルを参照する際は、 +通常の C 言語と同様に山括弧でヘッダファイルを囲ぬで指定する (例: +.IR )。 .PP .\"O Special macros, which are usually in upper case, are in bold (e.g., .\"O .BR MAXINT ). .\"O Exception: don't boldface NULL. -Ä̾Âçʸ»ú¤Çɽ¸½¤¹¤ëÆüì¥Þ¥¯¥í¤Ï¥Ü¡¼¥ë¥É¤Çɽ¤¹ (Î㤨¤Ð -.BR MAXINT )¡£ -Îã³°¤È¤·¤Æ NULL ¤Ï¥Ü¡¼¥ë¥É¤Ë¤·¤Ê¤¤¡£ +通常、大文字で表現する特殊マクロはボールドで表す (例えば +.BR MAXINT )。 +例外として NULL はボールドにしない。 .PP .\"O When enumerating a list of error codes, the codes are in bold (this list .\"O usually uses the .\"O .B \&.TP .\"O macro). -¥¨¥é¡¼¥³¡¼¥É¤Î¥ê¥¹¥È¤òÎóµó¤¹¤ë»þ¤Ë¤Ï¡¢¥³¡¼¥É¤Ï¥Ü¡¼¥ë¥É¤Çɽ¤¹ -(¤³¤Î¥ê¥¹¥È¤Ë¤ÏÄ̾ï +エラーコードのリストを列挙する時には、コードはボールドで表す +(このリストには通常 .B \&.TP -¥Þ¥¯¥í¤òÍѤ¤¤ë)¡£ +マクロを用いる)。 .PP .\"O Complete commands should, if long, .\"O be written as in an indented line on their own, for example -´°Á´¤Ê¥³¥Þ¥ó¥É¤Ï¡¢Ä¹¤¤¾ì¹ç¤Ë¤Ï¡¢Îã¤Ë¼¨¤¹¤è¤¦¤Ë -»ú²¼¤²¤·¤¿¹Ô¤Ë¥³¥Þ¥ó¥É¤À¤±¤òµ­ºÜ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +完全なコマンドは、長い場合には、例に示すように +字下げした行にコマンドだけを記載すべきである。 .in +4n .nf @@ -753,22 +753,22 @@ man 7 man-pages .\"O ("\e\ ") at suitable places in the command. .\"O Command options should be written in italics, e.g., .\"O .IR \-l . -¥³¥Þ¥ó¥É¤¬Ã»¤¤¾ì¹ç¤Ï¡¢ +コマンドが短い場合は、 .I "man 7 man-pages" -¤Î¤è¤¦¤Ë¥¤¥¿¥ê¥Ã¥¯ÂΤÇʸÃæ¤ËËä¤á¹þ¤ó¤Çµ­ºÜ¤·¤Æ¤â¤è¤¤¡£ -¤³¤Î¾ì¹ç¡¢¥³¥Þ¥ó¥ÉÆâ¤ÎŬÀڤʰÌÃ֤ˡ¢²þ¹Ô¤Ç¤­¤Ê¤¤¥¹¥Ú¡¼¥¹ ("\e\ ") -¤ò»È¤¦¤È¤è¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -¥³¥Þ¥ó¥É¥ª¥×¥·¥ç¥ó¤â +のようにイタリック体で文中に埋め込んで記載してもよい。 +この場合、コマンド内の適切な位置に、改行できないスペース ("\e\ ") +を使うとよいかもしれない。 +コマンドオプションも .I \-l -¤Î¤è¤¦¤Ë¥¤¥¿¥ê¥Ã¥¯ÂΤǵ­ºÜ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +のようにイタリック体で記載すべきである。 .PP .\"O Expressions, if not written on a separate indented line, should .\"O be specified in italics. .\"O Again, the use of nonbreaking spaces may be appropriate .\"O if the expression is inlined with normal text. -¼°¤Ï¡¢ÀìÍѤλú²¼¤²¤·¤¿¹Ô¤Ëµ­ºÜ¤·¤Ê¤¤¾ì¹ç¡¢¥¤¥¿¥ê¥Ã¥¯ÂΤò»ØÄꤹ¤ë¤³¤È¡£ -·«¤êÊÖ¤·¤Ë¤Ê¤ë¤¬¡¢¼°¤òÄ̾ï¤ÎʸÃæ¤ËËä¤á¹þ¤à¾ì¹ç¤Ë¤â¡¢ -²þ¹Ô¤Ç¤­¤Ê¤¤¥¹¥Ú¡¼¥¹¤ò»È¤¦¤È¤è¤¤¤À¤í¤¦¡£ +式は、専用の字下げした行に記載しない場合、イタリック体を指定すること。 +繰り返しになるが、式を通常の文中に埋め込む場合にも、 +改行できないスペースを使うとよいだろう。 .PP .\"O Any reference to the subject of the current manual page .\"O should be written with the name in bold. @@ -780,15 +780,15 @@ man 7 man-pages .\"O man page, references to the subject of the page would be written as: .\"O .BR fcntl (). .\"O The preferred way to write this in the source file is: -¤½¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÎÀâÌÀÂоݤؤλ²¾È¤Ï¡¢¥Ü¡¼¥ë¥É¤Ç̾Á°¤òµ­ºÜ¤¹¤ë¡£ -Âоݤ¬´Ø¿ô (¤Ä¤Þ¤ê¡¢¥»¥¯¥·¥ç¥ó 2 ¤ä 3 ¤Î¥Ú¡¼¥¸) ¤Î¾ì¹ç¡¢ -̾Á°¤Î¸å¤í¤Ë¥í¡¼¥Þ¥ó¥Õ¥©¥ó¥È (Ä̾ï¤Î¥Õ¥©¥ó¥È) ¤Ç´Ý³ç¸Ì¤ÎÂФò³¤±¤ë¡£ -Î㤨¤Ð¡¢ +そのマニュアルページの説明対象への参照は、ボールドで名前を記載する。 +対象が関数 (つまり、セクション 2 や 3 のページ) の場合、 +名前の後ろにローマンフォント (通常のフォント) で丸括弧の対を続ける。 +例えば、 .BR fcntl (2) -¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Ï¡¢ÀâÌÀÂоݤؤλ²¾È¤Ï +のマニュアルページでは、説明対象への参照は .BR fcntl () -¤Î¤è¤¦¤Ëµ­ºÜ¤¹¤ë¡£ -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ë¤Ï¼¡¤Î¤è¤¦¤Ëµ­ºÜ¤¹¤ë¤Î¤¬Ë¾¤Þ¤·¤¤: +のように記載する。 +マニュアルページのソースファイルには次のように記載するのが望ましい: .nf .BR fcntl () @@ -796,9 +796,9 @@ man 7 man-pages .fi .\"O (Using this format, rather than the use of "\\fB...\\fP()" .\"O makes it easier to write tools that parse man page source files.) -("\\fB...\\fP()" ¤è¤ê¤â¡¢¤³¤Î·Á¼°¤ò»È¤¦¤³¤È¡£ -¤³¤ì¤Ë¤è¤ê¡¢¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ò²ò¼á¤¹¤ë¥Ä¡¼¥ë¤ò -½ñ¤¯¤Î¤¬´Êñ¤Ë¤Ê¤ë¡£) +("\\fB...\\fP()" よりも、この形式を使うこと。 +これにより、マニュアルページのソースファイルを解釈するツールを +書くのが簡単になる。) .PP .\"O Any reference to another man page .\"O should be written with the name in bold, @@ -807,12 +807,12 @@ man 7 man-pages .\"O separating spaces (e.g., .\"O .BR intro (2)). .\"O The preferred way to write this in the source file is: -Ê̤Υޥ˥奢¥ë¥Ú¡¼¥¸¤Ø¤Î»²¾È¤Ï¡¢¥Ü¡¼¥ë¥É¤Ç̾Á°¤òµ­ºÜ¤·¡¢ -¤½¤ì¤Ë³¤±¤Æ¥»¥¯¥·¥ç¥óÈÖ¹æ¤ò¡Öɬ¤º¡×½ñ¤¯¡£¥»¥¯¥·¥ç¥óÈÖ¹æ¤Ï -¥í¡¼¥Þ¥ó¥Õ¥©¥ó¥È (Ä̾ï¤Î¥Õ¥©¥ó¥È) ¤Ç½ñ¤­¡¢¥¹¥Ú¡¼¥¹¤ÏÆþ¤ì¤Ê¤¤ -(Îã: -.BR intro (2))¡£ -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ë¤Ï¼¡¤Î¤è¤¦¤Ëµ­ºÜ¤¹¤ë¤Î¤¬Ë¾¤Þ¤·¤¤: +別のマニュアルページへの参照は、ボールドで名前を記載し、 +それに続けてセクション番号を「必ず」書く。セクション番号は +ローマンフォント (通常のフォント) で書き、スペースは入れない +(例: +.BR intro (2))。 +マニュアルページのソースファイルには次のように記載するのが望ましい: .nf .BR intro (2) @@ -821,31 +821,31 @@ man 7 man-pages .\"O (Including the section number in cross references lets tools like .\"O .BR man2html (1) .\"O create properly hyperlinked pages.) -(Áê¸ß»²¾È¤Ë¥»¥¯¥·¥ç¥óÈÖ¹æ¤ò´Þ¤á¤Æ¤ª¤¯¤È¡¢ +(相互参照にセクション番号を含めておくと、 .B man2html -¤È¤¤¤Ã¤¿¥Ä¡¼¥ë¤¬¥Ú¡¼¥¸´Ö¤Î¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤òŬÀÚ¤ËÀ¸À®¤Ç¤­¤ë¡£) +といったツールがページ間のハイパーリンクを適切に生成できる。) .\"O .SS Spelling -.SS ÄÖ¤ê (spelling) +.SS 綴り (spelling) .\"O Starting with release 2.59, .\"O .I man-pages .\"O follows American spelling conventions; .\"O please write all new pages and patches according to these conventions. -¥ê¥ê¡¼¥¹ 2.59 ¤«¤é¤À¤¬¡¢ +リリース 2.59 からだが、 .I man-pages -¤Ï¥¢¥á¥ê¥«±Ñ¸ì¤ÎÄÖ¤ê¤Î´·½¬¤Ë½¾¤Ã¤Æ¤¤¤ë¡£ -¿·¤·¤¤¥Ú¡¼¥¸¤ä¥Ñ¥Ã¥Á¤ÏÁ´¤Æ¤³¤Î´·½¬¤Ë½¾¤Ã¤Æ²¼¤µ¤¤¡£ +はアメリカ英語の綴りの慣習に従っている。 +新しいページやパッチは全てこの慣習に従って下さい。 .\"O .SS Example Programs and Shell Sessions -.SS ¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤È¥·¥§¥ë¤Î¥»¥Ã¥·¥ç¥ó +.SS サンプルプログラムとシェルのセッション .\"O Manual pages can include example programs demonstrating how to .\"O use a system call or library function. .\"O However, note the following: -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Î»È¤¤Êý¤ò¼¨¤¹ -¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤ò´Þ¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤½¤ÎºÝ¤Ë¤Ï¡¢°Ê²¼¤ÎÅÀ¤Ëα°Õ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +マニュアルページには、システムコールやライブラリ関数の使い方を示す +サンプルプログラムを含めることができる。 +その際には、以下の点に留意すべきである。 .TP 3 * .\"O Example programs should be written in C. -¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ï C ¤Çµ­ºÜ¤¹¤ë¤³¤È¡£ +サンプルプログラムは C で記載すること。 .TP * .\"O An example program is only necessary and useful if it demonstrates @@ -853,79 +853,79 @@ man 7 man-pages .\"O description of the interface. .\"O An example program that does nothing .\"O other than call an interface usually serves little purpose. -¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ï¡¢ -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æʸ¾Ï¤Ç´Êñ¤ËÀâÌÀ¤Ç¤­¤ë°Ê¾å¤Î¤³¤È¤ò¼¨¤¹¾ì¹ç¤Ë¤À¤± -ɬÍפ«¤ÄÍ­ÍѤǤ¢¤ë¡£¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò¸Æ¤Ó½Ð¤¹°Ê³°¤Ë²¿¤â¤·¤Ê¤¤¥µ¥ó¥×¥ë -¥×¥í¥°¥é¥à¤ÏÉáÄ̤ϤۤȤó¤ÉÌò¤ËΩ¤¿¤Ê¤¤¡£ +サンプルプログラムは、 +インタフェースについて文章で簡単に説明できる以上のことを示す場合にだけ +必要かつ有用である。インタフェースを呼び出す以外に何もしないサンプル +プログラムは普通はほとんど役に立たない。 .TP * .\"O Example programs should be fairly short (preferably less than 100 lines; .\"O ideally less than 50 lines). -¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ï¤«¤Ê¤êû¤á¤Ë¤¹¤ë¤³¤È -(100¹Ô̤Ëþ¤¬Ë¾¤Þ¤·¤¯¡¢50¹Ô̤Ëþ¤¬ÍýÁÛŪ¤Ç¤¢¤ë)¡£ +サンプルプログラムはかなり短めにすること +(100行未満が望ましく、50行未満が理想的である)。 .TP * .\"O Example programs should do error checking after system calls and .\"O library function calls. -¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä¥é¥¤¥Ö¥é¥ê´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿¸å¤Ç -¥¨¥é¡¼¥Á¥§¥Ã¥¯¤ò¹Ô¤¦¤³¤È¡£ +サンプルプログラムでは、システムコールやライブラリ関数を呼び出した後で +エラーチェックを行うこと。 .TP * .\"O Example programs should be complete, and compile without .\"O warnings when compiled with \fIcc\ \-Wall\fP. -¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ï´°·ë¤·¤Æ¤¤¤Æ¡¢ +サンプルプログラムは完結していて、 \fIcc\ \-Wall\fP -¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿ºÝ¤Ë·Ù¹ð¤Ê¤·¤Ç¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤ë¤³¤È¡£ +でコンパイルした際に警告なしでコンパイルできること。 .TP * .\"O Where possible and appropriate, example programs should allow .\"O experimentation, by varying their behavior based on inputs .\"O (ideally from command-line arguments, or alternatively, via .\"O input read by the program). -²Äǽ¤«¤ÄŬÀڤʾì¹ç¤Ë¤Ï¡¢¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ç -ÆþÎϤˤè¤êÆ°ºî¤òÊѲ½¤µ¤»¤ë¤Ê¤É¤Î¼Â¸³¤ò¹Ô¤¦¤È¤è¤¤ -(ÍýÁÛŪ¤Ë¤Ï¡¢¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤ä¡¢¥×¥í¥°¥é¥à¤¬Æɤ߹þ¤àÆþÎϥǡ¼¥¿ -·Ðͳ¤Ç¡¢Æ°ºî¤òÊѲ½¤µ¤»¤ë¤Î¤¬¤è¤¤)¡£ +可能かつ適切な場合には、サンプルプログラムで +入力により動作を変化させるなどの実験を行うとよい +(理想的には、コマンドライン引き数や、プログラムが読み込む入力データ +経由で、動作を変化させるのがよい)。 .TP * .\"O Example programs should be laid out according to Kernighan and .\"O Ritchie style, with 4-space indents. -¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ï¡¢K&R (Kernighan and Ritchie) ¥¹¥¿¥¤¥ë¤Ç½ñ¤­¡¢ -»ú²¼¤²¤Ï¥¹¥Ú¡¼¥¹ 4ʸ»ú¤Ç¹Ô¤¦¡£ +サンプルプログラムは、K&R (Kernighan and Ritchie) スタイルで書き、 +字下げはスペース 4文字で行う。 .\"O (Avoid the use of TAB characters in source code!) -(¥½¡¼¥¹¥³¡¼¥É¤Ç TAB ʸ»ú¤ò»È¤¦¤Î¤ÏÈò¤±¤ë¤³¤È¡£) +(ソースコードで TAB 文字を使うのは避けること。) .PP .\"O For some examples of what example programs should look like, see .\"O .BR wait (2) .\"O and .\"O .BR pipe (2). -¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤¬¤É¤ó¤ÊÉ÷¤Ë¤Ê¤Ã¤Æ¤¤¤ì¤Ð¤è¤¤¤«¤ÎÎã¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +サンプルプログラムがどんな風になっていればよいかの例については、 .BR wait (2) -¤È +と .BR pipe (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O If you include a shell session demonstrating the use of a program .\"O or other system feature, boldface the user input text, .\"O to distinguish it from output produced by the system. -¥×¥í¥°¥é¥à¤Î»È¤¤Êý¤ä¾¤Î¥·¥¹¥Æ¥à¤ÎÆÃħ¤ò¼¨¤¹¤¿¤á¤Ë¥·¥§¥ë¤Î¥»¥Ã¥·¥ç¥óÎã -¤ò´Þ¤á¤ë¾ì¹ç¡¢¥æ¡¼¥¶¤ÎÆþÎÏʸ¤ò¥Ü¡¼¥ë¥É¤Ë¤·¤Æ¡¢¥·¥¹¥Æ¥à¤¬À¸À®¤¹¤ë -½ÐÎϤȶèÊ̤Ǥ­¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¡£ +プログラムの使い方や他のシステムの特徴を示すためにシェルのセッション例 +を含める場合、ユーザの入力文をボールドにして、システムが生成する +出力と区別できるようにすること。 .\"O .SS Indentation of structure definitions, shell session logs, etc. -.SS ¹½Â¤ÂΤÎÄêµÁ¡¢¥·¥§¥ë¤Î¥»¥Ã¥·¥ç¥ó¥í¥°¤Ê¤É¤Î»ú²¼¤² +.SS 構造体の定義、シェルのセッションログなどの字下げ .\"O When structure definitions, shell session logs, etc. are included .\"O in running text, indent them by 4 spaces (i.e., a block enclosed by .\"O .I ".in\ +4n" .\"O and .\"O .IR ".in" ). -¹½Â¤ÂΤÎÄêµÁ¤ä¥·¥§¥ë¤Î¥»¥Ã¥·¥ç¥ó¥í¥°¤Ê¤É¤òËÜʸÃæ¤Ëµ­ºÜ¤¹¤ëºÝ¤Ï¡¢ -¥¹¥Ú¡¼¥¹ 4¸Äʬ¤Î»ú²¼¤²¤ò¹Ô¤¦ (¤Ä¤Þ¤ê¡¢¥Ö¥í¥Ã¥¯¤ò +構造体の定義やシェルのセッションログなどを本文中に記載する際は、 +スペース 4個分の字下げを行う (つまり、ブロックを .I ".in\ +4n" -¤È +と .I ".in" -¤Ç°Ï¤à)¡£ +で囲む)。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O For canonical examples of how man pages in the .\"O .I man-pages .\"O package should look, see @@ -933,13 +933,13 @@ man 7 man-pages .\"O and .\"O .BR fcntl (2). .I man-pages -¥Ñ¥Ã¥±¡¼¥¸¤Ë´Þ¤Þ¤ì¤ë¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÎÂκۤÎɸ½àŪ¤ÊÎã¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +パッケージに含まれるマニュアルページの体裁の標準的な例については、 .BR pipe (2) -¤È +と .BR fcntl (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR man (1), .BR man2html (1), .BR groff (7), diff --git a/draft/man7/man.7 b/draft/man7/man.7 index 8bad1bcd..a6fd71fc 100644 --- a/draft/man7/man.7 +++ b/draft/man7/man.7 @@ -40,15 +40,15 @@ .\" Updated 2007-06-13, Akihiro MOTOKI , LDP v2.53 .\" Updated 2007-06-13, Akihiro MOTOKI , LDP v2.54 .\" -.\"WORD: prevailing indent Í¥À襤¥ó¥Ç¥ó¥È +.\"WORD: prevailing indent 優先インデント .\" .TH MAN 7 2007-05-30 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O man \- macros to format man pages -man \- man ¥Ú¡¼¥¸¤òÀ°·Á¤¹¤ë¥Þ¥¯¥í +man \- man ページを整形するマクロ .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B groff \-Tascii \-man .I file \&... @@ -61,7 +61,7 @@ man \- man .RI [ section ] .I title .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This manual page explains the .\"O .B "groff an.tmac" .\"O macro package (often called the @@ -74,20 +74,20 @@ man \- man .\"O problem (exceptions include the NET-2 BSD release, which uses a totally .\"O different macro package called mdoc; see .\"O .BR mdoc (7)). -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Ï¡¢ +このマニュアルページでは、 .B "groff an.tmac" -¤Î¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸ +のマクロパッケージ .RB ( man -¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸¤È¤â¸Æ¤Ð¤ì¤ë¤³¤È¤â¿¤¤) ¤Ë¤Ä¤¤¤ÆÀâÌÀ¤¹¤ë¡£ -¤³¤Î¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢ -Linux ¤Î man ¥Ú¡¼¥¸¤ò½ñ¤¤¤¿¤ê°Ü¿¢¤·¤¿¤ê¤¹¤ë¤È¤­¤Ë¡¢ -³«È¯¼Ô¤¬ÍѤ¤¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸¤Ï¥Ð¡¼¥¸¥ç¥ó´Ö¤Ç¤Î¸ß´¹À­¤¬¹â¤¯¡¢ -man page ¤Î°Ü¿¢¤Ë¤¢¤¿¤Ã¤Æ¤ÏÂ礭¤ÊÌäÂê¤Ï¤Ê¤¤¤À¤í¤¦ -(⤷¡¢NET-2 BSD release ¤ÏÎã³°¤Ç¤¢¤ë¡£ -¤³¤Á¤é¤Ç¤Ï mdoc ¤È¸Æ¤Ð¤ì¤ëÁ´¤¯°Û¤Ê¤ë¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ +マクロパッケージとも呼ばれることも多い) について説明する。 +このマクロパッケージは、 +Linux の man ページを書いたり移植したりするときに、 +開発者が用いるものである。 +このマクロパッケージはバージョン間での互換性が高く、 +man page の移植にあたっては大きな問題はないだろう +(但し、NET-2 BSD release は例外である。 +こちらでは mdoc と呼ばれる全く異なるマクロパッケージが使用されている。 .BR mdoc (7) -¤ò»²¾È)¡£ +を参照)。 .PP .\"O Note that NET-2 BSD mdoc man pages can be used with .\"O .B groff @@ -100,31 +100,31 @@ man page .\"O .B \-mandoc .\"O option is, however, recommended, since this will automatically detect which .\"O macro package is in use. -NET-2 BSD ¤Î man ¥Ú¡¼¥¸¤â¡¢ +NET-2 BSD の man ページも、 .B groff -¤Î¥ª¥×¥·¥ç¥ó¤È¤·¤Æ +のオプションとして .B \-man -¤ÎÂå¤ï¤ê¤Ë +の代わりに .B \-mdoc -¤ò»ØÄꤹ¤ë¤À¤±¤Ç¡¢ÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を指定するだけで、利用することができる。 .B \-mandoc -¥ª¥×¥·¥ç¥ó¤ò»È¤¨¤Ð¤É¤Î¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸¤¬ÍѤ¤¤é¤ì¤Æ¤¤¤ë¤« -¼«Æ°Åª¤Ë¸¡½Ð¤Ç¤­¤ë¤Î¤Ç¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤Î¤¬¤ªÁ¦¤á¤Ç¤¢¤ë¡£ +オプションを使えばどのマクロパッケージが用いられているか +自動的に検出できるので、このオプションを使うのがお薦めである。 .PP .\"O For conventions that should be employed when writing man pages .\"O for the Linux \fIman-pages\fP package, see .\"O .BR man-pages (7). -Linux \fIman-pages\fP ¥×¥í¥¸¥§¥¯¥È¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò½ñ¤¯ºÝ¤Ë -½¾¤¦¤Ù¤­·è¤Þ¤ê»ö¤Ë¤Ä¤¤¤Æ¤Ï +Linux \fIman-pages\fP プロジェクトのマニュアルページを書く際に +従うべき決まり事については .BR man-pages (7) -¤ò»²¾È¡£ +を参照。 .\"O .SS Title line -.SS ¥¿¥¤¥È¥ë¹Ô +.SS タイトル行 .\"O The first command in a man page (after comment lines, .\"O that is, lines that start with \fB.\\"\fP) should be -man ¥Ú¡¼¥¸¤Î (¥³¥á¥ó¥È¹Ô¤ò½ü¤¯) ºÇ½é¤Î¥³¥Þ¥ó¥É¤Ï¡¢ -°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ëɬÍפ¬¤¢¤ë¡£ -¥³¥á¥ó¥È¹Ô¤È¤Ï \fB.\\"\fP ¤Ç»Ï¤Þ¤ë¹Ô¤Î¤³¤È¤Ç¤¢¤ë¡£ +man ページの (コメント行を除く) 最初のコマンドは、 +以下のようにする必要がある。 +コメント行とは \fB.\\"\fP で始まる行のことである。 .RS .sp .B \&.TH @@ -134,22 +134,22 @@ man .\"O For details of the arguments that should be supplied to the \fBTH\fP .\"O command, see .\"O .BR man-pages (7). -\fBTH\fP ¤ËÅϤ¹°ú¤­¿ô¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï +\fBTH\fP に渡す引き数の詳細については .BR man-pages (7) -¤ò»²¾È¡£ +を参照。 .PP .\"O Note that BSD mdoc-formatted pages begin with the .\"O .B Dd .\"O command, not the .\"O .B TH .\"O command. -¤Ê¤ª BSD ¤Î mdoc ¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥Ú¡¼¥¸¤Ï +なお BSD の mdoc フォーマットのページは .B TH -¥³¥Þ¥ó¥É¤Ç¤Ï¤Ê¤¯ +コマンドではなく .B Dd -¥³¥Þ¥ó¥É¤«¤é»Ï¤Þ¤ë¡£ +コマンドから始まる。 .\"O .SS Sections -.SS ¥»¥¯¥·¥ç¥ó +.SS セクション .\"O Sections are started with .\"O .B \&.SH .\"O followed by the heading name. @@ -158,19 +158,19 @@ man .\"O .\" on the same line as .\"O .\" .BR \&.SH , .\"O .\" then place the heading in double quotes. -¥»¥¯¥·¥ç¥ó¤Ï +セクションは .B \&.SH -¤Ç»Ï¤Þ¤ê¡¢¸«½Ð¤·Ì¾¤¬¤½¤ì¤Ë³¤¯¡£ -.\" °Ê²¼¤Ïɬ¿Ü¤Ç¤Ï¤Ê¤¤¤è¤¦¤À (Debian bug 411303 »²¾È), -.\" ¥¹¥Ú¡¼¥¹¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë̾Á°¤ò +で始まり、見出し名がそれに続く。 +.\" 以下は必須ではないようだ (Debian bug 411303 参照), +.\" スペースが含まれている名前を .\" .BR \&.SH -.\" ¤ÈƱ¤¸¹Ô¤ËÃÖ¤¯¾ì¹ç¤Ï¡¢¸«½Ð¤·Ì¾¤Ï¥À¥Ö¥ë¥¯¥©¡¼¥È¤Ç°Ï¤à¡£ +.\" と同じ行に置く場合は、見出し名はダブルクォートで囲む。 .\"O The only mandatory heading is NAME, which should be the first section and .\"O be followed on the next line by a one line description of the program: -NAME (̾Á°) ¤È¤¤¤¦¸«½Ð¤·¤À¤±¤Ïɬ¤ºÃÖ¤«¤Ê¤¤¤È¤¤¤±¤Ê¤¤¡£ -¤³¤Î¸«½Ð¤·¤Ï°ìÈֺǽé¤Î¥»¥¯¥·¥ç¥ó¤Ë¤¹¤Ù¤­¤Ç¡¢¸«½Ð¤·¤Î -¼¡¤Î¹Ô¤Ë¤Ï¥×¥í¥°¥é¥à¤ÎÀâÌÀ¤ò°ì¹Ô¤Ç½ñ¤¯¡£ +NAME (名前) という見出しだけは必ず置かないといけない。 +この見出しは一番最初のセクションにすべきで、見出しの +次の行にはプログラムの説明を一行で書く。 .RS .sp \&.SH NAME @@ -186,71 +186,71 @@ NAME (̾ .\"O and .\"O .BR apropos (1) .\"O commands. -¤³¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë½¾¤¤¡¢¥³¥Þ¥ó¥É̾¤Ë³¤¯¥·¥ó¥°¥ë¥À¥Ã¥·¥å (-) -¤ÎÁ°¤Ë¤Ïɬ¤º¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤òÃÖ¤¯¤³¤È¡£ -¤³¤Îʸˡ¤Ï¡¢ +このフォーマットに従い、コマンド名に続くシングルダッシュ (-) +の前には必ずバックスラッシュを置くこと。 +この文法は、 .BR makewhatis (8) -¥×¥í¥°¥é¥à¤¬ +プログラムが .BR whatis (1) -¤ä +や .BR apropos (1) -¥³¥Þ¥ó¥ÉÍѤΠ(¥³¥Þ¥ó¥É¤Îû¤¤ÀâÌÀ¤Î) ¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÀ¸À®¤¹¤ëºÝ¤ËÍøÍѤµ¤ì¤ë¡£ +コマンド用の (コマンドの短い説明の) データベースを生成する際に利用される。 .PP .\"O For a list of other sections that might appear in a manual page, see .\"O .BR man-pages (7). -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ËÅо줹¤ë²ÄǽÀ­¤Î¤¢¤ë¤³¤ì°Ê³°¤Î¥»¥¯¥·¥ç¥ó¤Î¥ê¥¹¥È¤Ë -¤Ä¤¤¤Æ¤Ï +マニュアルページに登場する可能性のあるこれ以外のセクションのリストに +ついては .BR man-pages (7) -¤ò»²¾È¡£ +を参照。 .\"O .SS Fonts -.SS ¥Õ¥©¥ó¥È +.SS フォント .\"O The commands to select the type face are: -¥¿¥¤¥×¥Õ¥§¥¤¥¹¤òÁªÂò¤¹¤ë¥³¥Þ¥ó¥É¤Ï°Ê²¼¤Î¤è¤¦¤Ë»ØÄꤹ¤ë: +タイプフェイスを選択するコマンドは以下のように指定する: .TP 4 .B \&.B .\"O Bold -¥Ü¡¼¥ë¥É¡£ +ボールド。 .TP .B \&.BI .\"O Bold alternating with italics .\"O (especially useful for function specifications) -¥Ü¡¼¥ë¥É¤È¥¤¥¿¥ê¥Ã¥¯¤È¤ò¸ò¸ß¤Ë -(Æä˴ؿô»ØÄê¤ËÊØÍø)¡£ +ボールドとイタリックとを交互に +(特に関数指定に便利)。 .TP .B \&.BR .\"O Bold alternating with Roman .\"O (especially useful for referring to other .\"O manual pages) -¥Ü¡¼¥ë¥É¤È¥í¡¼¥Þ¥ó¤È¤ò¸ò¸ß¤Ë -(Æä˾¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¤¹¤ë¤È¤­¤ËÊØÍø)¡£ +ボールドとローマンとを交互に +(特に他のマニュアルページを参照するときに便利)。 .TP .B \&.I .\"O Italics -¥¤¥¿¥ê¥Ã¥¯¡£ +イタリック。 .TP .B \&.IB .\"O Italics alternating with bold -¥¤¥¿¥ê¥Ã¥¯¤È¥Ü¡¼¥ë¥É¤È¤ò¸ò¸ß¤Ë¡£ +イタリックとボールドとを交互に。 .TP .B \&.IR .\"O Italics alternating with Roman -¥¤¥¿¥ê¥Ã¥¯¤È¥í¡¼¥Þ¥ó¤È¤ò¸ò¸ß¤Ë¡£ +イタリックとローマンとを交互に。 .TP .B \&.RB .\"O Roman alternating with bold -¥í¡¼¥Þ¥ó¤È¥Ü¡¼¥ë¥É¤È¤ò¸ò¸ß¤Ë¡£ +ローマンとボールドとを交互に。 .TP .B \&.RI .\"O Roman alternating with italics -¥í¡¼¥Þ¥ó¤È¥¤¥¿¥ê¥Ã¥¯¤È¤ò¸ò¸ß¤Ë¡£ +ローマンとイタリックとを交互に。 .TP .B \&.SB .\"O Small alternating with bold -¥¹¥â¡¼¥ë¤È¥Ü¡¼¥ë¥É¤ò¸ò¸ß¤Ë¡£ +スモールとボールドを交互に。 .TP .B \&.SM .\"O Small (useful for acronyms) -¥¹¥â¡¼¥ë (Ƭ»ú¸ì¤Ê¤É¤ËÍѤ¤¤ë) +スモール (頭字語などに用いる) .LP .\"O Traditionally, each command can have up to six arguments, but the GNU .\"O implementation removes this limitation (you might still want to limit @@ -265,18 +265,18 @@ NAME (̾ .\"O punctuation in Roman. .\"O If no arguments are given, the command is applied to the following line .\"O of text. -´·Îã¤È¤·¤Æ¤Ï¡¢³Æ¥³¥Þ¥ó¥É¤Ï 6 ¤Ä¤Þ¤Ç¤Î°ú¤­¿ô¤ò»ý¤Ä»ö¤¬²Äǽ¤À¤¬¡¢ -GNU ¤Î¼ÂÁõ¤Ç¤ÏÀ©¸Â¤Ï¤Ê¤¤¤è¤¦¤À (¤·¤«¤·°Ü¿¢À­¤òÊÝ»ý¤¹¤ë¤¿¤á¤Ë¤Ï -°ú¤­¿ô¤Ï 6 ¤Þ¤Ç¤Ë¸Â¤Ã¤Æ¤ª¤¯¤Î¤¬Îɤ¤¤À¤í¤¦)¡£ -°ú¤­¿ô¤Ï¥¹¥Ú¡¼¥¹¤Ç¶èÀÚ¤é¤ì¤ë¡£ -¥¹¥Ú¡¼¥¹¤ò´Þ¤ó¤À°ú¤­¿ô¤òÍ¿¤¨¤ë¤Ë¤Ï¡¢¥À¥Ö¥ë¥¯¥©¡¼¥È¤Ç°Ï¤¨¤Ð¤è¤¤¡£ -¤¹¤Ù¤Æ¤Î°ú¤­¿ô¤Ï¥¹¥Ú¡¼¥¹¤ò¼è¤ê½ü¤¤¤Æʤ٤é¤ì¤ë¤Î¤Ç¡¢ +慣例としては、各コマンドは 6 つまでの引き数を持つ事が可能だが、 +GNU の実装では制限はないようだ (しかし移植性を保持するためには +引き数は 6 までに限っておくのが良いだろう)。 +引き数はスペースで区切られる。 +スペースを含んだ引き数を与えるには、ダブルクォートで囲えばよい。 +すべての引き数はスペースを取り除いて並べられるので、 .B \&.BR -¥³¥Þ¥ó¥É¤ò»È¤¨¤Ð¡¢Ã±¸ì¤Ï¥Ü¡¼¥ë¥É¤Ç¡¢¶çÆÉÅÀ¤ò¥í¡¼¥Þ¥ó¤Çɽ¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ -°ú¤­¿ô¤¬Á´¤¯Í¿¤¨¤é¤ì¤Ê¤±¤ì¤Ð¡¢ -¤½¤Î¥³¥Þ¥ó¥É¤Ï¼¡¤Î¹Ô¤Î¥Æ¥­¥¹¥È¤ËŬÍѤµ¤ì¤ë¡£ +コマンドを使えば、単語はボールドで、句読点をローマンで表すことができる。 +引き数が全く与えられなければ、 +そのコマンドは次の行のテキストに適用される。 .\"O .SS "Other Macros and Strings" -.SS ¤½¤Î¾¤Î¥Þ¥¯¥í¤äʸ»úÎó +.SS その他のマクロや文字列 .PP .\"O Below are other relevant macros and predefined strings. .\"O Unless noted otherwise, all macros @@ -296,47 +296,47 @@ GNU .\"O try to use ens or ems as units for .\"O indents, since these will automatically adjust to font size changes. .\"O The other key macro definitions are: -°Ê²¼¤Ë¡¢Â¾¤Î¥Þ¥¯¥í¤äÄêµÁºÑ¤ß¤Îʸ»úÎó¤ò¼¨¤¹¡£ -Æä˵­½Ò¤¬¤Ê¤¤¸Â¤ê¡¢¥Þ¥¯¥í¤ò»È¤¦¤È²þ¹Ô¤¬¹Ô¤ï¤ì¤ë -(¥Æ¥­¥¹¥È¤Î¸½ºß¤Î¹Ô¤ò½ªÎ»¤¹¤ë)¡£ -¿¤¯¤Î¥Þ¥¯¥í¤Ï -¡ÖÍ¥À襤¥ó¥Ç¥ó¥È (prevailing indent)¡×¤òÀßÄꤷ¤¿¤ê¡¢»ÈÍѤ¹¤ë¡£ -Í¥À襤¥ó¥Ç¥ó¥È¤ÎÃͤϡ¢¤É¤Î¥Þ¥¯¥í¤«¤é¤â¥Ñ¥é¥á¡¼¥¿ +以下に、他のマクロや定義済みの文字列を示す。 +特に記述がない限り、マクロを使うと改行が行われる +(テキストの現在の行を終了する)。 +多くのマクロは +「優先インデント (prevailing indent)」を設定したり、使用する。 +優先インデントの値は、どのマクロからもパラメータ .I i -¤Ë¤è¤Ã¤Æ»ØÄê¤Ç¤­¤ë (°Ê²¼¤Ë¼¨¤¹)¡£ -¥Þ¥¯¥í¤Ç¤Ï +によって指定できる (以下に示す)。 +マクロでは .I i -¤ò¾Êά¤¹¤ë¤³¤È¤â¤Ç¤­¡¢¤½¤Î¾ì¹ç¤Ï¸½ºß¤ÎÍ¥À襤¥ó¥Ç¥ó¥È¤ÎÃͤ¬ÍѤ¤¤é¤ì¤ë¡£ -¤³¤ì¤Ë¤è¤ê·ë²Ì¤È¤·¤Æ¡¢¥¤¥ó¥Ç¥ó¥È¤µ¤ì¤¿ÃÊÍϢ³¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -¥¤¥ó¥Ç¥ó¥È¤ÎÃͤòºÆ»ØÄꤷ¤Ê¤¯¤Æ¤â¥¤¥ó¥Ç¥ó¥ÈÎ̤òƱ¤¸¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -Ä̾ï¤Î (¥¤¥ó¥Ç¥ó¥È¤µ¤ì¤Æ¤¤¤Ê¤¤) ÃÊÍÅо줹¤ë¤È¡¢ -Í¥À襤¥ó¥Ç¥ó¥È¤ÎÃͤϥǥե©¥ë¥È¤ÎÃÍ (0.5 ¥¤¥ó¥Á) ¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢Í¿¤¨¤¿¥¤¥ó¥Ç¥ó¥È¤ÎÃÍ¤Ï ens ñ°Ì¤Ç¤¢¤ë¡£ -¥¤¥ó¥Ç¥ó¥È¤Îñ°Ì¤Ë¤Ï ens ¤ä ems ¤òÍѤ¤¤ë¤È¤è¤¤¡£¤³¤ì¤é¤Îñ°Ì¤Ï -¥Õ¥©¥ó¥È¥µ¥¤¥º¤¬Êѹ¹¤µ¤ì¤ë¤È¼«Æ°Åª¤ËÄ´À°¤µ¤ì¤ë¤«¤é¤Ç¤¢¤ë¡£ -¾¤Î½ÅÍפʥޥ¯¥íÄêµÁ¤Ï°Ê²¼¤ÎÄ̤ê: +を省略することもでき、その場合は現在の優先インデントの値が用いられる。 +これにより結果として、インデントされた段落が連続している場合、 +インデントの値を再指定しなくてもインデント量を同じにすることができる。 +通常の (インデントされていない) 段落が登場すると、 +優先インデントの値はデフォルトの値 (0.5 インチ) にリセットされる。 +デフォルトでは、与えたインデントの値は ens 単位である。 +インデントの単位には ens や ems を用いるとよい。これらの単位は +フォントサイズが変更されると自動的に調整されるからである。 +他の重要なマクロ定義は以下の通り: .\"O .SS "Normal Paragraphs" -.SS Ä̾ï¤ÎÃÊÍî +.SS 通常の段落 .TP 9m .B \&.LP .\"O Same as .\"O .B \&.PP .\"O (begin a new paragraph). .B \&.PP -¤ÈƱ¤¸ (¿·¤¿¤ÊÃÊÍî¤Î³«»Ï)¡£ +と同じ (新たな段落の開始)。 .TP .B \&.P .\"O Same as .\"O .B \&.PP .\"O (begin a new paragraph). .B \&.PP -¤ÈƱ¤¸ (¿·¤¿¤ÊÃÊÍî¤Î³«»Ï)¡£ +と同じ (新たな段落の開始)。 .TP .B \&.PP .\"O Begin a new paragraph and reset prevailing indent. -¿·¤·¤¤ÃÊÍî¤ò³«»Ï¤·¡¢¥¤¥ó¥Ç¥ó¥È¤ò¥ê¥»¥Ã¥È¤¹¤ë¡£ +新しい段落を開始し、インデントをリセットする。 .\"O .SS "Relative Margin Indent" -.SS ÁêÂÐ¥Þ¡¼¥¸¥ó¥¤¥ó¥Ç¥ó¥È +.SS 相対マージンインデント .TP 9m .BI \&.RS " i" .\"O Start relative margin indent: moves the left margin @@ -348,32 +348,32 @@ GNU .\"O As a result, all following paragraph(s) will be .\"O indented until the corresponding .\"O .BR \&.RE . -ÁêÂÐ¥Þ¡¼¥¸¥ó¥¤¥ó¥Ç¥ó¥È (relative margin indent) ¤ò³«»Ï¤¹¤ë¡£ -º¸¥Þ¡¼¥¸¥ó¤ò +相対マージンインデント (relative margin indent) を開始する。 +左マージンを .I i -¤À¤±±¦¤Ë°ÜÆ°¤¹¤ë +だけ右に移動する .RI ( i -¤¬¾Êά¤µ¤ì¤ë¤ÈÍ¥À襤¥ó¥Ç¥ó¥È¤ÎÃͤ¬ÍѤ¤¤é¤ì¤ë)¡£ -¿·¤¿¤ÊÍ¥À襤¥ó¥Ç¥ó¥È¤Ï 0.5 ¥¤¥ó¥Á¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ -·ë²Ì¤È¤·¤Æ¡¢°Ê²¼¤ÎÃÊÍî¤ÏÂбþ¤¹¤ë +が省略されると優先インデントの値が用いられる)。 +新たな優先インデントは 0.5 インチにセットされる。 +結果として、以下の段落は対応する .B \&.RE -¤¬¸½¤ì¤ë¤Þ¤Ç¥¤¥ó¥Ç¥ó¥È¤µ¤ì¤ë¡£ +が現れるまでインデントされる。 .TP .B \&.RE .\"O End relative margin indent and .\"O restores the previous value of the prevailing indent. -ÁêÂÐ¥Þ¡¼¥¸¥ó¥¤¥ó¥Ç¥ó¥È¤ò½ªÎ»¤·¡¢ -Í¥À襤¥ó¥Ç¥ó¥È¤ÎÃͤò¸µ¤ËÌ᤹¡£ +相対マージンインデントを終了し、 +優先インデントの値を元に戻す。 .\"O .SS "Indented Paragraph Macros" -.SS ÃÊÍî¤ò¥¤¥ó¥Ç¥ó¥È¤¹¤ë¥Þ¥¯¥í +.SS 段落をインデントするマクロ .TP 9m .BI \&.HP " i" .\"O Begin paragraph with a hanging indent .\"O (the first line of the paragraph is at the left margin of .\"O normal paragraphs, and the rest of the paragraph's lines are indented). -¤Ö¤é¤µ¤¬¤ê¥¤¥ó¥Ç¥ó¥È¤ÎÃÊÍî¤ò³«»Ï¤¹¤ë -(ÃÊÍî¤ÎÀèƬ¹Ô¤ÏÄ̾ï¤ÎÃÊÍî¤Îº¸¥Þ¡¼¥¸¥ó¤È¤Ê¤ê¡¢ -ÃÊÍî¤Î»Ä¤ê¤Î¹Ô¤Ï¥¤¥ó¥Ç¥ó¥È¤µ¤ì¤ë)¡£ +ぶらさがりインデントの段落を開始する +(段落の先頭行は通常の段落の左マージンとなり、 +段落の残りの行はインデントされる)。 .TP .BI \&.IP " x i" .\"O Indented paragraph with optional hanging tag. @@ -395,22 +395,22 @@ GNU .\"O as the tag, and for numbered lists, use the number or letter followed by .\"O a period as the tag; .\"O this simplifies translation to other formats. -¥¤¥ó¥Ç¥ó¥È¤µ¤ì¤¿ÃÊÍî¡£¥ª¥×¥·¥ç¥ó¤È¤·¤Æ¤Ö¤é¤µ¤¬¤ê¥¿¥°¤ò¤È¤ë¡£ -¥¿¥° +インデントされた段落。オプションとしてぶらさがりタグをとる。 +タグ .I x -¤¬¾Êά¤µ¤ì¤ë¤È¡¢°Ê²¼¤ÎÃÊÍ¤Ù¤Æ¤¬ +が省略されると、以下の段落すべてが .I i -¤Ç¥¤¥ó¥Ç¥ó¥È¤µ¤ì¤ë¡£¥¿¥° +でインデントされる。タグ .I x -¤¬Í¿¤¨¤é¤ì¤ë¤È¡¢¥¿¥°¤Ï¥¤¥ó¥Ç¥ó¥È¤µ¤ì¤¿ÃÊÍî¤ÎÁ°¤Ë¤Ö¤é²¼¤²¤é¤ì¤ë +が与えられると、タグはインデントされた段落の前にぶら下げられる .RB ( \&.TP -¤È¤Á¤ç¤¦¤ÉƱ¤¸¡£¤¿¤À¤·¥¿¥°¤ò¼¡¤Î¹Ô¤Ë½ñ¤¯Âå¤ï¤ê¤Ë¥³¥Þ¥ó¥É¤Ë»ØÄꤹ¤ë)¡£ -¥¿¥°¤¬Ä¹¤¹¤®¤ë¾ì¹ç¤Ë¤Ï¡¢¥¿¥°¤Ë³¤¯¥Æ¥­¥¹¥È¤Ï¼¡¤Î¹Ô¤Ë°ÜÆ°¤¹¤ë -(¥Æ¥­¥¹¥È¤¬¼º¤ï¤ì¤¿¤êº®¤¶¤Ã¤¿¤ê¤¹¤ë¤³¤È¤Ï¤Ê¤¤)¡£ -²Õ¾ò½ñ¤­¤ò¤¹¤ë¤Ë¤Ï¡¢ \e(bu (ÅÀ) ¤¢¤ë¤¤¤Ï \e(em (¥À¥Ã¥·¥å) -¤ò¥¿¥°¤Ë¤·¤Æ¤³¤Î¥Þ¥¯¥í¤òÍѤ¤¤ë¤È¤è¤¤¡£ÈÖ¹æÉÕ¤­¤Ç²Õ¾ò½ñ¤­¤ò¤¹¤ë¾ì¹ç¤Ï¡¢ -¿ô»ú¤Þ¤¿¤Ïʸ»ú¤Ë¥Ô¥ê¥ª¥É¤òÉÕ¤±¤¿¤â¤Î¤ò¥¿¥°¤Ë¤¹¤ì¤Ð¤è¤¤¡£ -¤³¤¦¤¹¤ì¤Ð¾¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ø¤ÎÊÑ´¹¤¬´Êñ¤Ë¤Ê¤ë¡£ +とちょうど同じ。ただしタグを次の行に書く代わりにコマンドに指定する)。 +タグが長すぎる場合には、タグに続くテキストは次の行に移動する +(テキストが失われたり混ざったりすることはない)。 +箇条書きをするには、 \e(bu (点) あるいは \e(em (ダッシュ) +をタグにしてこのマクロを用いるとよい。番号付きで箇条書きをする場合は、 +数字または文字にピリオドを付けたものをタグにすればよい。 +こうすれば他のフォーマットへの変換が簡単になる。 .TP .BI \&.TP " i" .\"O Begin paragraph with hanging tag. @@ -418,12 +418,12 @@ GNU .\"O its results are like those of the .\"O .B \&.IP .\"O command. -¤Ö¤é¤µ¤¬¤ê¥¿¥°¤ÎÃÊÍî¤ò³«»Ï¤¹¤ë¡£¥¿¥°¤Ï¼¡¤Î¹Ô¤Ë»ØÄꤹ¤ë¡£ -·ë²Ì¤Ï +ぶらさがりタグの段落を開始する。タグは次の行に指定する。 +結果は .B \&.IP -¥³¥Þ¥ó¥É¤È»÷¤¿¤â¤Î¤Ë¤Ê¤ë¡£ +コマンドと似たものになる。 .\"O .SS "Hypertext Link Macros" -.SS ¥Ï¥¤¥Ñ¡¼¥Æ¥­¥¹¥È¥ê¥ó¥¯ÍѤΥޥ¯¥í +.SS ハイパーテキストリンク用のマクロ .\"O (Feature supported with .\"O .B groff .\"O only.) @@ -434,16 +434,16 @@ GNU .\"O .B .mso www.tmac .\"O to do this. .RB ( groff -¤À¤±¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ëµ¡Ç½) -¥Ï¥¤¥Ñ¡¼¥Æ¥­¥¹¥È¥ê¥ó¥¯ÍѤΥޥ¯¥í¤ò»ÈÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢ +だけでサポートされている機能) +ハイパーテキストリンク用のマクロを使用するためには、 .B www.tmac -¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸¤ò¥í¡¼¥É¤¹¤ëɬÍפ¬¤¢¤ë¡£ -¥í¡¼¥É¤ò¹Ô¤¦¤Ë¤Ï +マクロパッケージをロードする必要がある。 +ロードを行うには .B .mso www.tmac -¥ê¥¯¥¨¥¹¥È¤ò»ÈÍѤ¹¤ë¡£ +リクエストを使用する。 .TP 9m .BI \&.URL " link url trailer" -.\" motoki: ¸¶Ê¸¤Ç¤Ï .URL url link trailer ¤È¤Ê¤Ã¤Æ¤¤¤ë¤¬¡¢¸íµ­¡£ +.\" motoki: 原文では .URL url link trailer となっているが、誤記。 .\"O Inserts a hypertext link to the URI (URL) .\"O .IR url , .\"O with @@ -454,31 +454,31 @@ GNU .\"O will be printed immediately afterward. URI (URL) .I url -¤Ø¤Î¥Ï¥¤¥Ñ¡¼¥Æ¥­¥¹¥È¥ê¥ó¥¯¤òÁÞÆþ¤¹¤ë¡£ +へのハイパーテキストリンクを挿入する。 .I link -¤Ï¥ê¥ó¥¯Ì¾¤Î¥Æ¥­¥¹¥È¤Ç¤¢¤ê¡¢ +はリンク名のテキストであり、 .I trailer -¤ÎÆâÍƤϥê¥ó¥¯¤Îľ¸å¤Ëɽ¼¨¤µ¤ì¤ë¡£ +の内容はリンクの直後に表示される。 .\"O When generating HTML this should translate into the HTML command .\"O \fB\fP\fIlink\fP\fB\fP\fItrailer\fP. -HTML ¤òÀ¸À®¤¹¤ë»þ¤Ë¡¢¤³¤Î¥Þ¥¯¥í¤Ï +HTML を生成する時に、このマクロは \fB\fP\fIlink\fP\fB\fP\fItrailer\fP -¤È¤¤¤¦ HTML ¥³¥Þ¥ó¥É¤ËÊÑ´¹¤µ¤ì¤ë¡£ +という HTML コマンドに変換される。 .\"O .\" The following is a kludge to get a paragraph into the listing. -.\" °Ê²¼¤Ï¥ê¥¹¥Èɽ¼¨¤ÎÃæ¤ÇÃÊÍî¤òºî¤ë¤¿¤á¤Î¤½¤Î¾ì¤·¤Î¤®¤ÎÊýË¡¤Ç¤¢¤ë¡£ +.\" 以下はリスト表示の中で段落を作るためのその場しのぎの方法である。 .TP .B " " .\"O This and other related macros are new, and .\"O many tools won't do anything with them, but .\"O since many tools (including troff) will simply ignore undefined macros .\"O (or at worst insert their text) these are safe to insert. -¤³¤Î¥Þ¥¯¥í¤ä¾¤Î´ØÏ¢¥Þ¥¯¥í¤Ï¿·¤·¤¯¡¢ -¿¤¯¤Î¥Ä¡¼¥ë¤Ï¤³¤ì¤é¤ËÂФ·¤Æ¤Ï²¿¤â¤·¤Ê¤¤¤Ç¤¢¤í¤¦¡£ -(troff ¤ò´Þ¤á¤¿) ¿¤¯¤Î¥Ä¡¼¥ë¤Ï̤ÄêµÁ¤Î¥Þ¥¯¥í¤òñ¤Ë̵»ë¤¹¤ë¤À¤± -(¤¢¤ë¤¤¤ÏºÇ°­¤Ç¤â¥Þ¥¯¥í¤ò¥Æ¥­¥¹¥È¤È¤·¤ÆÁÞÆþ¤¹¤ë¤À¤±) -¤Ê¤Î¤Ç¡¢¤³¤ì¤é¤ò½ñ¤¤¤Æ¤â´í¸±¤Ï¤Ê¤¤¡£ +このマクロや他の関連マクロは新しく、 +多くのツールはこれらに対しては何もしないであろう。 +(troff を含めた) 多くのツールは未定義のマクロを単に無視するだけ +(あるいは最悪でもマクロをテキストとして挿入するだけ) +なので、これらを書いても危険はない。 .\"O .\" The following is a kludge to get a paragraph into the listing. -.\" °Ê²¼¤Ï¥ê¥¹¥Èɽ¼¨¤ÎÃæ¤ÇÃÊÍî¤òºî¤ë¤¿¤á¤Î¤½¤Î¾ì¤·¤Î¤®¤ÎÊýË¡¤Ç¤¢¤ë¡£ +.\" 以下はリスト表示の中で段落を作るためのその場しのぎの方法である。 .TP .B " " .\"O It can be useful to define your own @@ -487,19 +487,19 @@ HTML .\"O viewer other than .\"O .BR groff . .\"O That way, the URL, link text, and trailer text (if any) are still visible. -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸Æâ¤Ç¼«Ê¬¤Ç +マニュアルページ内で自分で .B URL -¥Þ¥¯¥í¤òÄêµÁ¤·¤Æ¡¢ +マクロを定義して、 .B groff -°Ê³°¤Î roff ¥Ó¥å¡¼¥¢¤Ç¤âɽ¼¨¤µ¤ì¤ë¤è¤¦¤Ë¤¹¤ë¤Î¤â¤¤¤¤¤À¤í¤¦¡£ -¤³¤¦¤¹¤ë¤³¤È¤Ç¡¢URL ¤â¡¢¥ê¥ó¥¯ÍѤΥƥ­¥¹¥È¤â¡¢(¤â¤·¤¢¤ì¤Ð) ¤½¤ì¤Ë³¤¯ -¥Æ¥­¥¹¥È¤â¡¢É½¼¨¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +以外の roff ビューアでも表示されるようにするのもいいだろう。 +こうすることで、URL も、リンク用のテキストも、(もしあれば) それに続く +テキストも、表示できるようになる。 .\"O .\" The following is a kludge to get a paragraph into the listing. -.\" °Ê²¼¤Ï¥ê¥¹¥Èɽ¼¨¤ÎÃæ¤ÇÃÊÍî¤òºî¤ë¤¿¤á¤Î¤½¤Î¾ì¤·¤Î¤®¤ÎÊýË¡¤Ç¤¢¤ë¡£ +.\" 以下はリスト表示の中で段落を作るためのその場しのぎの方法である。 .TP .B " " .\"O Here's an example: -°Ê²¼¤ËÎã¤òµó¤²¤ë: +以下に例を挙げる: .RS 1.5i \&.de URL .br @@ -521,7 +521,7 @@ This software comes from the \&.URL "http://www.fsf.org/" "Free Software Foundation" . .RE .\"O .\" The following is a kludge to get a paragraph into the listing. -.\" °Ê²¼¤Ï¥ê¥¹¥Èɽ¼¨¤ÎÃæ¤ÇÃÊÍî¤òºî¤ë¤¿¤á¤Î¤½¤Î¾ì¤·¤Î¤®¤ÎÊýË¡¤Ç¤¢¤ë¡£ +.\" 以下はリスト表示の中で段落を作るためのその場しのぎの方法である。 .TP .B " " .\"O In the above, if @@ -530,38 +530,38 @@ This software comes from the .\"O .B www.tmac .\"O macro package's definition of the URL macro will supersede the locally .\"O defined one. -¾åµ­¤ÎÎã¤Ë¤ª¤¤¤Æ¡¢ +上記の例において、 .B groff -¤ò»È¤Ã¤Æɽ¼¨¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ +を使って表示しようとした場合には、 .B www.tmac -¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸¤Î URL ¥Þ¥¯¥í¤ÎÄêµÁ¤ÎÊý¤¬ -¥í¡¼¥«¥ë¤Ç¹Ô¤ï¤ì¤¿ÄêµÁ¤è¤ê¤âÍ¥À褵¤ì¤ë¡£ +マクロパッケージの URL マクロの定義の方が +ローカルで行われた定義よりも優先される。 .PP .\"O A number of other link macros are available. .\"O See .\"O .BR groff_www (7) .\"O for more details. -.\" motoki: groff_mwww (7) ¤Î¸íµ­¤È»×¤ï¤ì¤ë¡£ -¾¤Ë¤â¤¤¤¯¤Ä¤«¤Î¥ê¥ó¥¯ÍѤΥޥ¯¥í¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¡£ -¾Ü¤·¤¯¤Ï +.\" motoki: groff_mwww (7) の誤記と思われる。 +他にもいくつかのリンク用のマクロが用意されている。 +詳しくは .BR groff_mwww (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .BR .\"O .SS "Miscellaneous Macros" -.SH ¤½¤Î¾¤Î¥Þ¥¯¥í +.SH その他のマクロ .TP 9m .B \&.DT .\"O Reset tabs to default tab values (every 0.5 inches); .\"O does not cause a break. -¥¿¥Ö¤ò¥Ç¥Õ¥©¥ë¥È¤Î¥¿¥ÖÃÍ (0.5 ¥¤¥ó¥Á¤´¤È) ¤Ë¥ê¥»¥Ã¥È¤¹¤ë¡£ -²þ¹Ô¤Ï¤·¤Ê¤¤¡£ +タブをデフォルトのタブ値 (0.5 インチごと) にリセットする。 +改行はしない。 .TP .BI \&.PD " d" .\"O Set inter-paragraph vertical distance to d .\"O (if omitted, d=0.4v); .\"O does not cause a break. -¥Ñ¥é¥°¥é¥Õ´Ö¤Î´Ö³Ö¤ò°ú¤­¿ô¤Ë¥»¥Ã¥È¤¹¤ë -(¾Êά¤µ¤ì¤ë¤È d=0.4v ¤È¤Ê¤ë)¡£ +パラグラフ間の間隔を引き数にセットする +(省略されると d=0.4v となる)。 .TP .BI \&.SS " t" .\"O Subheading @@ -569,34 +569,34 @@ This software comes from the .\"O (like .\"O .BR \&.SH , .\"O but used for a subsection inside a section). -¥µ¥Ö¥Ø¥Ã¥À +サブヘッダ .I t .RB ( \&.SH -¤Î¤è¤¦¤Ê¤â¤Î¤À¤¬¡¢¥µ¥Ö¥»¥¯¥·¥ç¥ó¤Î¤¿¤á¤ËÍѤ¤¤ë)¡£ +のようなものだが、サブセクションのために用いる)。 .\"O .SS "Predefined Strings" -.SS ÄêµÁºÑ¤ß¤Îʸ»úÎó +.SS 定義済みの文字列 .\"O The .\"O .B man .\"O package has the following predefined strings: .B man -¥Ñ¥Ã¥±¡¼¥¸¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤ÊÄêµÁºÑ¤ß¤Îʸ»úÎ󤬤¢¤ë: +パッケージには、以下のような定義済みの文字列がある: .IP \e*R .\"O Registration Symbol: \*R -ÅÐÏ¿¥·¥ó¥Ü¥ë: \*R +登録シンボル: \*R .IP \e*S .\"O Change to default font size -¥Ç¥Õ¥©¥ë¥È¥Õ¥©¥ó¥È¥µ¥¤¥º¤òÊѹ¹¤¹¤ë +デフォルトフォントサイズを変更する .IP \e*(Tm .\"O Trademark Symbol: \*(Tm -¾¦É¸¥·¥ó¥Ü¥ë: \*(Tm +商標シンボル: \*(Tm .IP \e*(lq .\"O Left angled double quote: \*(lq -º¸¤Ë·¹¤¤¤¿¥À¥Ö¥ë¥¯¥©¡¼¥È: \*(lq +左に傾いたダブルクォート: \*(lq .IP \e*(rq .\"O Right angled double quote: \*(rq -±¦¤Ë·¹¤¤¤¿¥À¥Ö¥ë¥¯¥©¡¼¥È: \*(rq +右に傾いたダブルクォート: \*(rq .\"O .SS "Safe Subset" -.SS °ÂÁ´¤Ê¥µ¥Ö¥»¥Ã¥È +.SS 安全なサブセット .\"O Although technically .\"O .B man .\"O is a troff macro package, in reality a large number of other tools @@ -615,24 +615,24 @@ This software comes from the .\"O Use simple commands that are easy to translate to other formats. .\"O The following troff macros are believed to be safe (though in many cases .\"O they will be ignored by translators): -µ»½ÑŪ¤Ë¤Ï +技術的には .B man -¤Ï troff ¤Î¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸¤À¤¬¡¢¼ÂºÝ¤Ë¤Ï¿¿ô¤ÎÊ̤Υġ¼¥ë¤¬ -man ¥Ú¡¼¥¸¤Î¥Õ¥¡¥¤¥ë¤ò½èÍý¤·¤Æ¤ª¤ê¡¢¤½¤ì¤é¤Ï troff ¤ÎÁ´¤Æ¤Îµ¡Ç½¤ò -¼ÂÁõ¤·¤Æ¤¤¤Ê¤¤¤³¤È¤â¤¢¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢Â¾¤Î¥Ä¡¼¥ë¤Ç¤âÀµ¤·¤¯½èÍý¤Ç¤­¤ë¤è¤¦¤Ë¡¢ -troff ¤Î¤¢¤Þ¤ê°ìÈÌŪ¤Ç¤Ê¤¤µ¡Ç½¤Ï¡¢²Äǽ¤Ê¤é¤ÐÍѤ¤¤Ê¤¤¤Î¤¬Ë¾¤Þ¤·¤¤¡£ -ÍÍ¡¹¤Ê troff ¥×¥ê¥×¥í¥»¥Ã¥µ -¤âÍѤ¤¤Ê¤¤¤Û¤¦¤¬Îɤ¤¤À¤í¤¦ (¤ä¤à¤òÆÀ¤Ê¤¤¾ì¹ç¤Ï +は troff のマクロパッケージだが、実際には多数の別のツールが +man ページのファイルを処理しており、それらは troff の全ての機能を +実装していないこともある。したがって、他のツールでも正しく処理できるように、 +troff のあまり一般的でない機能は、可能ならば用いないのが望ましい。 +様々な troff プリプロセッサ +も用いないほうが良いだろう (やむを得ない場合は .BR tbl (1) -¤ÏÍѤ¤¤Æ¤âÎɤ¤¡£¤·¤«¤· 2 Îó¤Îɽ¤Ê¤é¡¢Âå¤ï¤ê¤Ë +は用いても良い。しかし 2 列の表なら、代わりに .B IP -¤ä +や .B TP -¥³¥Þ¥ó¥É¤òÍѤ¤¤Æ¤ß¤è¤¦)¡£ -·×»»µ¡Ç½¤âÍѤ¤¤Ê¤¤Êý¤¬Îɤ¤¤À¤í¤¦¡£Â¾¤Î¥Ä¡¼¥ë¤Î¤Û¤È¤ó¤É¤Ï¤³¤ì¤é¤ò½èÍý¤Ç¤­¤Ê¤¤¡£ -¾¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ËÊÑ´¹¤¬Íưפʡ¢Ã±½ã¤Ê¥³¥Þ¥ó¥É¤ò»È¤¦¤è¤¦¤Ë¤·¤è¤¦¡£ -°Ê²¼¤Î troff ¥³¥Þ¥ó¥É¤Ï¡¢»È¤Ã¤Æ¤âÌäÂê¤Ê¤¤¤È¹Í¤¨¤Æ¤è¤¤¤À¤í¤¦ -(¿¤¯¤Î¾ì¹ç¡¢ÊÑ´¹¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤Æ̵»ë¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¤¬)¡£ +コマンドを用いてみよう)。 +計算機能も用いない方が良いだろう。他のツールのほとんどはこれらを処理できない。 +他のフォーマットに変換が容易な、単純なコマンドを使うようにしよう。 +以下の troff コマンドは、使っても問題ないと考えてよいだろう +(多くの場合、変換コマンドによって無視されるかもしれないが)。 .BR \e" , .BR . , .BR ad , @@ -666,11 +666,11 @@ troff .\"O use \ee. .\"O Other sequences you may use, where x or xx are any characters and N .\"O is any digit, include: -troff ¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤Î¿¤¯¤âÍøÍѤǤ­¤ë -(¤³¤ì¤é¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤Ï \e ¤Ç»Ï¤Þ¤ë)¡£ -¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥åʸ»ú¤òÄ̾ï¤Î¥Æ¥­¥¹¥È¤È¤·¤Æ»È¤¤¤¿¤¤¾ì¹ç¤Ï \ee ¤È¤¹¤ë¡£ -ÍøÍѤǤ­¤ë¾¤Î¥·¡¼¥±¥ó¥¹¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤¬¤¢¤ë (x ¤ä xx -¤ÏǤ°Õ¤Îʸ»ú, N ¤ÏǤ°Õ¤Î¿ô»ú): +troff のエスケープシーケンスの多くも利用できる +(これらのエスケープシーケンスは \e で始まる)。 +バックスラッシュ文字を通常のテキストとして使いたい場合は \ee とする。 +利用できる他のシーケンスには以下のようなものがある (x や xx +は任意の文字, N は任意の数字): .BR \e' , .BR \e` , .BR \e- , @@ -687,7 +687,7 @@ troff .\"O and .BR \ef(xx . .\"O Avoid using the escape sequences for drawing graphics. -¥°¥é¥Õ¥£¥Ã¥¯¤ÎÉÁ²è¤Ë¤Ï¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤ÏÍѤ¤¤Ê¤¤¤Û¤¦¤¬Îɤ¤¡£ +グラフィックの描画にはエスケープシーケンスは用いないほうが良い。 .PP .\"O Do not use the optional parameter for .\"O .B bp @@ -720,31 +720,31 @@ troff .\"O should only have the values 1, 2, 3, 4, R, I, B, P, or CW .\"O (the ft command may also have no parameters). .B bp -(²þÊÇ) ¤Ë¤Ï¥ª¥×¥·¥ç¥ó¥Ñ¥é¥á¡¼¥¿¤òÍѤ¤¤Ê¤¤¤³¤È¡£ +(改頁) にはオプションパラメータを用いないこと。 .B sp -(¿âľ¥¹¥Ú¡¼¥¹) ¤Ë¤ÏÀµ¤ÎÃͤΤߤòÍѤ¤¤ë¤³¤È¡£ -man ¤ä mdoc ¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸¤Ë¤¢¤ë¥Þ¥¯¥í¤È¡¢ -̾Á°¤¬Æ±¤¸¤Çµ¡Ç½¤Î°Û¤Ê¤ë¥Þ¥¯¥í¤òÄêµÁ +(垂直スペース) には正の値のみを用いること。 +man や mdoc マクロパッケージにあるマクロと、 +名前が同じで機能の異なるマクロを定義 .RB ( de ) -¤·¤Ê¤¤¤³¤È¡£¤½¤Î¤è¤¦¤ÊºÆÄêµÁ¤Ï̵»ë¤µ¤ì¤ë²ÄǽÀ­¤¬¹â¤¤¡£ -ÀµÊý¸þ¤Ø¤Î¥¤¥ó¥Ç¥ó¥È +しないこと。そのような再定義は無視される可能性が高い。 +正方向へのインデント .RB ( in ) -¤Ë¤Ï¡¢Éé¤Î¥¤¥ó¥Ç¥ó¥È¤òÂбþ¤µ¤»¤ë¤³¤È (¤³¤Î¥Þ¥¯¥í¤ÎÂå¤ï¤ê¤Ë +には、負のインデントを対応させること (このマクロの代わりに .B RS -¤È +と .B RE -¥Þ¥¯¥í¤ò»È¤Ã¤¿Êý¤¬¤è¤¤¤Î¤À¤¬)¡£ -¾ò·ï¥Æ¥¹¥È +マクロを使った方がよいのだが)。 +条件テスト .RB ( if , ie ) -¤Ï¾õÂ֤Ȥ·¤Æ \(aqt\(aq ¤Þ¤¿¤Ï \(aqn\(aq ¤À¤±¤ò»ý¤Ä¤è¤¦¤Ë¤¹¤ë¤³¤È¡£ -ÊÑ´¹ +は状態として \(aqt\(aq または \(aqn\(aq だけを持つようにすること。 +変換 .RB ( tr ) -¤Ë¤Ï̵»ë¤Ç¤­¤ë¤â¤Î¤À¤±¤ò»È¤¦¤³¤È¡£ -¥Õ¥©¥ó¥È¤ÎÊѹ¹ +には無視できるものだけを使うこと。 +フォントの変更 .RB ( ft -¤È \fB\ef\fP ¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹) ¤Ë¤Ï -1, 2, 3, 4, R, I, B, P, CW ¤Î¤ß¤òÍѤ¤¤ë¤³¤È -(ft ¥³¥Þ¥ó¥É¤Î¾ì¹ç¤Ï¥Ñ¥é¥á¡¼¥¿¤ò»ØÄꤷ¤Ê¤¯¤Æ¤â¤è¤¤)¡£ +と \fB\ef\fP エスケープシーケンス) には +1, 2, 3, 4, R, I, B, P, CW のみを用いること +(ft コマンドの場合はパラメータを指定しなくてもよい)。 .PP .\"O If you use capabilities beyond these, check the .\"O results carefully on several tools. @@ -752,17 +752,17 @@ man .\"O let the maintainer of this .\"O document know about the safe command or sequence .\"O that should be added to this list. -¤³¤ÎÀ©¸Â¤ò±Û¤¨¤Æµ¡Ç½¤òÍѤ¤¤ë¾ì¹ç¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¥Ä¡¼¥ë¤ò»È¤Ã¤Æ¡¢ -¤½¤Î·ë²Ì¤òÃí°Õ¤·¤Æ¥Á¥§¥Ã¥¯¤¹¤ë¤³¤È¡£Äɲä·¤¿µ¡Ç½¤¬°ÂÁ´¤À¤È -³Î¿®¤·¤¿¤é¡¢¤³¤Îʸ½ñ¤Î´ÉÍý¼Ô¤Ë¤½¤Î°ÂÁ´¤Ê¥³¥Þ¥ó¥É¤Þ¤¿¤Ï¥·¡¼¥±¥ó¥¹¤ò -¶µ¤¨¤Æ¤Û¤·¤¤¡£¥ê¥¹¥È¤ËÄɲ乤롣 +この制限を越えて機能を用いる場合は、いくつかのツールを使って、 +その結果を注意してチェックすること。追加した機能が安全だと +確信したら、この文書の管理者にその安全なコマンドまたはシーケンスを +教えてほしい。リストに追加する。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .IR /usr/share/groff/ [*/] tmac/an.tmac .br .I /usr/man/whatis .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .PP .\"O By all means include full URLs (or URIs) in the text itself; .\"O some tools such as @@ -774,14 +774,14 @@ man .\"O If you include URLs, use the full URL .\"O (e.g., ) to ensure that tools .\"O can automatically find the URLs. -¥Æ¥­¥¹¥È¤Ë¤Ï¤¼¤Ò¤È¤â´°Á´¤Ê URL (¤Þ¤¿¤Ï URI) ¤ò½ñ¤¯¤è¤¦¤Ë¤¹¤ë¤³¤È¡£ +テキストにはぜひとも完全な URL (または URI) を書くようにすること。 .BR man2html (1) -¤Î¤è¤¦¤Ê¥Ä¡¼¥ë¤Ï¡¢¤³¤ì¤é¤ò¼«Æ°Åª¤Ë¥Ï¥¤¥Ñ¡¼¥Æ¥­¥¹¥È¥ê¥ó¥¯¤ËÊÑ´¹¤¹¤ë¡£ -¿·¤¿¤Ë¼è¤êÆþ¤ì¤é¤ì¤¿ +のようなツールは、これらを自動的にハイパーテキストリンクに変換する。 +新たに取り入れられた .B URL -¥Þ¥¯¥í¤ò´ØÏ¢¾ðÊó¤Ø¤Î¥ê¥ó¥¯¤ËÍѤ¤¤Æ¤âÎɤ¤¡£ URL ¤ò½ñ¤¯¾ì¹ç¤Ï¡¢ -Î㤨¤Ð ¤Î¤è¤¦¤Ë´°Á´¤Ê·Á¼°¤Ç½ñ¤­¡¢ -¥Ä¡¼¥ë¤Ë¤è¤ë URL ¼«Æ°¸¡ÃΤ¬¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¡£ +マクロを関連情報へのリンクに用いても良い。 URL を書く場合は、 +例えば のように完全な形式で書き、 +ツールによる URL 自動検知ができるようにすること。 .PP .\"O Tools processing these files should open the file and examine the first .\"O nonwhitespace character. @@ -791,12 +791,12 @@ man .\"O file (such as HTML or Docbook). .\"O Anything else suggests simple ASCII .\"O text (e.g., a "catman" result). -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ò½èÍý¤¹¤ë¥Ä¡¼¥ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤·¤Æ -ºÇ½é¤Î¶õÇò°Ê³°¤Îʸ»ú¤òÄ´¤Ù¤ë¡£¹Ô¤ÎÀèƬ¤Ë¥Ô¥ê¥ª¥É (.) -¤Þ¤¿¤Ï¥·¥ó¥°¥ë¥¯¥©¡¼¥È (') ¤¬¤¢¤ë¤È¡¢¤³¤ì¤Ï troff ¥Ù¡¼¥¹¤Î -¥Õ¥¡¥¤¥ë (man ¤ä mdoc) ¤Ç¤¢¤ë¤È¤ß¤Ê¤¹¡£º¸³Ñ³ç¸Ì (<) ¤Ï -SGML/XML ¥Ù¡¼¥¹¤Î¥Õ¥¡¥¤¥ë (HTML ¤ä Docbook) ¤Ç¤¢¤ë¤È¤ß¤Ê¤¹¡£ -¤½¤ì°Ê³°¤Ïñ½ã¤Ê ASCII ¥Æ¥­¥¹¥È ("catman" ¤Î·ë²Ì¤Ê¤É) ¤È¤ß¤Ê¤¹¡£ +これらのファイルを処理するツールは、ファイルをオープンして +最初の空白以外の文字を調べる。行の先頭にピリオド (.) +またはシングルクォート (') があると、これは troff ベースの +ファイル (man や mdoc) であるとみなす。左角括弧 (<) は +SGML/XML ベースのファイル (HTML や Docbook) であるとみなす。 +それ以外は単純な ASCII テキスト ("catman" の結果など) とみなす。 .PP .\"O Many man pages begin with \fB\'\e"\fP followed by a .\"O space and a list of characters, @@ -808,14 +808,14 @@ SGML/XML .\"O However, you might want to include this information so your man page .\"O can be handled by other (less capable) systems. .\"O Here are the definitions of the preprocessors invoked by these characters: -¿¤¯¤Î man ¥Ú¡¼¥¸¤Ï¡¢ºÇ½é¤Î¹Ô¤¬ \fB\'\e"\fP ¤È¥¹¥Ú¡¼¥¹¤Ç»Ï¤Þ¤Ã¤Æ¤ª¤ê¡¢ -¤½¤³¤Ë¤Ï¤½¤Î¥Ú¡¼¥¸¤¬½èÍý¤µ¤ì¤ë¤Ù¤­¥×¥ê¥×¥í¥»¥¹¤òɽ¤¹Ê¸»ú¤¬½ñ¤¤¤Æ¤¢¤ë¡£ -troff °Ê³°¤ÎÊÑ´¹¥×¥í¥°¥é¥à¤Ø¤Î°Ü¿¢À­¤Î¤¿¤á¡¢ +多くの man ページは、最初の行が \fB\'\e"\fP とスペースで始まっており、 +そこにはそのページが処理されるべきプリプロセスを表す文字が書いてある。 +troff 以外の変換プログラムへの移植性のため、 .BR tbl (1) -¤ä¡¢ Linux ¤¬¼«Æ°Åª¤Ë¸¡ÃΤǤ­¤ë¤â¤Î°Ê³°¤Ï»È¤ï¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤³¤È¤ò´«¤á¤ë¡£ -¤·¤«¤·¡¢¤³¤Î¾ðÊó¤òµ­½Ò¤·¤Æ¡¢½ñ¤¤¤¿¥Ú¡¼¥¸¤¬Â¾¤Î (¤è¤êÄ㵡ǽ¤Ê) ¥·¥¹¥Æ¥à¤Ç¤â -°·¤¨¤ë¤è¤¦¤Ë¤·¤¿¤¤¾ì¹ç¤â¤¢¤ë¤«¤âÃΤì¤Ê¤¤¡£ -°Ê²¼¤Ë¤³¤ì¤é¤Îʸ»ú¤Ë¤è¤Ã¤Æµ¯Æ°¤µ¤ì¤ë¥×¥ê¥×¥í¥»¥Ã¥µ¤ÎÄêµÁ¤ò¼¨¤¹: +や、 Linux が自動的に検知できるもの以外は使わないようにすることを勧める。 +しかし、この情報を記述して、書いたページが他の (より低機能な) システムでも +扱えるようにしたい場合もあるかも知れない。 +以下にこれらの文字によって起動されるプリプロセッサの定義を示す: .TP 3 .B e eqn(1) @@ -835,7 +835,7 @@ tbl(1) .B v vgrind(1) .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .PP .\"O Most of the macros describe formatting (e.g., font type and spacing) instead .\"O of marking semantic content (e.g., this text is a reference to another page), @@ -848,26 +848,26 @@ vgrind(1) .\"O insert cross-references. .\"O By sticking to the safe subset described above, it should be easier to .\"O automate transitioning to a different reference page format in the future. -mdoc ¤ä DocBook ¤ËÈæ¤Ù¤ë¤È¡¢ -¥Þ¥¯¥í¤Î¿¤¯¤Ï½ñ¼° (¥Õ¥©¥ó¥È¥¿¥¤¥×¤ä¥¹¥Ú¡¼¥·¥ó¥°¤Ê¤É) ¤Ë´Ø¤¹¤ë¤â¤Î¤Ç¤¢¤ê¡¢ -°ÕÌ£¾å¤Î¤â¤Î (¤³¤Î¥Æ¥­¥¹¥È¤Ï¾¤Î¥Ú¡¼¥¸¤Ø¤Î»²¾È¤Ç¤¢¤ë¡¢¤Ê¤É) ¤Ç¤Ï¤Ê¤¤ -(HTML ¤Ç¤¹¤é°Ọ̃Ū¤Ê¥Þ¡¼¥­¥ó¥°¤Ë»×¤¨¤ë)¡£ -¤³¤Î¤¿¤á¡¢ +mdoc や DocBook に比べると、 +マクロの多くは書式 (フォントタイプやスペーシングなど) に関するものであり、 +意味上のもの (このテキストは他のページへの参照である、など) ではない +(HTML ですら意味的なマーキングに思える)。 +このため、 .B man -¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¾¤Î¥á¥Ç¥£¥¢¤ØÊÑ´¹¤·¤¿¤ê¡¢ -¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¾¤Î¥á¥Ç¥£¥¢¤ÇÍ­¸ú¤Ê¤â¤Î¤Ë¤·¤¿¤ê¡¢ -Áê¸ß»²¾È¤ò¼«Æ°Åª¤ËÁÞÆþ¤·¤¿¤ê¤¹¤ë¤³¤È¤¬º¤Æñ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -¾å¤Ëµó¤²¤¿¤è¤¦¤Ê°ÂÁ´¤Ê¥µ¥Ö¥»¥Ã¥È¤ò¼é¤ì¤Ð¡¢ -¾­ÍèÊ̤Υê¥Õ¥¡¥ì¥ó¥¹¥Ú¡¼¥¸¥Õ¥©¡¼¥Þ¥Ã¥È¤ØÊÑ´¹¤¹¤ëºî¶È¤¬´Êñ¤Ë¤Ê¤ë¤À¤í¤¦¡£ +フォーマットを他のメディアへ変換したり、 +フォーマットを他のメディアで有効なものにしたり、 +相互参照を自動的に挿入したりすることが困難になっている。 +上に挙げたような安全なサブセットを守れば、 +将来別のリファレンスページフォーマットへ変換する作業が簡単になるだろう。 .LP .\"O The Sun macro .\"O .B TX .\"O is not implemented. -Sun ¤Î¥Þ¥¯¥í¤Ç¤¢¤ë +Sun のマクロである .B TX -¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +は定義されていない。 .\"O .\" .SH AUTHORS -.\" .SH Ãø¼Ô +.\" .SH 著者 .\"O .\" .IP \(em 3m .\"O .\" James Clark (jjc@jclark.com) wrote the implementation of the macro package. .\"O .\" .IP \(em @@ -880,17 +880,17 @@ Sun .\"O .\" David A. Wheeler (dwheeler@ida.org) heavily modified this .\"O .\" manual page, such as adding detailed information on sections and macros. .\" .IP \(em 3m -.\" James Clark (jjc@jclark.com) ¤¬¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸¤Î¼ÂÁõ¤ò½ñ¤¤¤¿¡£ +.\" James Clark (jjc@jclark.com) がマクロパッケージの実装を書いた。 .\" .IP \(em -.\" Rickard E. Faith (faith@cs.unc.edu) ¤¬¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÎºÇ½é¤ÎÈǤò½ñ¤¤¤¿¡£ +.\" Rickard E. Faith (faith@cs.unc.edu) がこのマニュアルページの最初の版を書いた。 .\" .IP \(em -.\" Jens Schweikhardt (schweikh@noc.fdn.de) ¤Ï Linux Man-Page Mini-HOWTO -.\" ¤ò½ñ¤¤¤¿ (Ëܥޥ˥奢¥ë¥Ú¡¼¥¸¤â¤³¤Îʸ½ñ¤Î±Æ¶Á¤ò¼õ¤±¤Æ¤¤¤ë)¡£ +.\" Jens Schweikhardt (schweikh@noc.fdn.de) は Linux Man-Page Mini-HOWTO +.\" を書いた (本マニュアルページもこの文書の影響を受けている)。 .\" .IP \(em -.\" David A. Wheeler (dwheeler@ida.org) ¤Ï¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤òÂ礭¤¯Êѹ¹¤·¡¢ -.\" ¥»¥¯¥·¥ç¥ó¤ä¥Þ¥¯¥í¤Ë´Ø¤¹¤ëºÙ¤«¤Ê¾ðÊó¤òÄɲ乤ë¤Ê¤É¤ò¹Ô¤Ã¤¿¡£ +.\" David A. Wheeler (dwheeler@ida.org) はこのマニュアルページを大きく変更し、 +.\" セクションやマクロに関する細かな情報を追加するなどを行った。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR apropos (1), .BR groff (1), .BR man (1), diff --git a/draft/man7/math_error.7 b/draft/man7/math_error.7 index f6b23f85..414eeae4 100644 --- a/draft/man7/math_error.7 +++ b/draft/man7/math_error.7 @@ -25,25 +25,25 @@ .\" all rights reserved. .\" Translated 2008-08-17, Akihiro MOTOKI , LDP v3.07 .\" -.\"WORD: significand ²¾¿ôÉô -.\"WORD: domain error Îΰ襨¥é¡¼ -.\"WORD: pole error ¶Ë¥¨¥é¡¼ -.\"WORD: range error ÈÏ°Ï¥¨¥é¡¼ +.\"WORD: significand 仮数部 +.\"WORD: domain error 領域エラー +.\"WORD: pole error 極エラー +.\"WORD: range error 範囲エラー .\" .TH MATH_ERROR 7 2008-08-11 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O math_error \- detecting errors from mathematical functions -math_error \- ¿ô³Ø´Ø¿ô¤«¤é¤Î¥¨¥é¡¼¤Î¸¡½Ð +math_error \- 数学関数からのエラーの検出 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include .B #include .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O When an error occurs, .\"O most library functions indicate this fact by returning a special value .\"O (e.g., \-1 or NULL). @@ -61,30 +61,30 @@ math_error \- .\"O as outlined below) .\"O described in .\"O .BR fenv (3). -¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤È¡¢¤Û¤È¤ó¤É¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ï (\-1 ¤ä NULL ¤Ê¤É¤Î) -ÆÃÊ̤ÊÃͤòÊÖ¤¹¤³¤È¤Ç¥¨¥é¡¼¤òÄÌÃΤ¹¤ë¡£ +エラーが発生すると、ほとんどのライブラリ関数は (\-1 や NULL などの) +特別な値を返すことでエラーを通知する。 .I -¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤ë¿ô³Ø´Ø¿ô¤Ï¡¢Ä̾ï¤ÏÉâÆ°¾®¿ôÅÀÃͤòÊÖ¤¹¤Î¤Ç¡¢ -¾¤Îµ¡¹½¤ò»È¤Ã¤Æ¥¨¥é¡¼¤òÄÌÃΤ¹¤ë¡£ -¥¨¥é¡¼ÄÌÃε¡¹½¤Ï 2 ¼ïÎढ¤ê¡¢ -¸Å¤¤¤â¤Î¤¬ +で宣言されている数学関数は、通常は浮動小数点値を返すので、 +他の機構を使ってエラーを通知する。 +エラー通知機構は 2 種類あり、 +古いものが .I errno -¤òÀßÄꤹ¤ë¤ä¤êÊý¤Ç¤¢¤ê¡¢¿·¤·¤¤¤â¤Î¤¬ +を設定するやり方であり、新しいものが .BR fenv (3) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ëÉâÆ°¾®¿ôÅÀÎã³°µ¡¹½¤Ç¤¢¤ë¡£ +で説明されている浮動小数点例外機構である。 .RB ( feclearexcept (3) -¤È +と .BR fetestexcept (3) -¤ò»ÈÍѤ¹¤ë¡£¤³¤ì¤é¤Ë¤Ä¤¤¤Æ¤Ï°Ê²¼¤Ç³µÍפòÀâÌÀ¤·¤Æ¤¤¤ë¡£) +を使用する。これらについては以下で概要を説明している。) .\"O A portable program that needs to check for an error from a mathematical .\"O function should set .\"O .I errno .\"O to zero, and make the following call -°Ü¿¢À­¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç¡¢¿ô³Ø´Ø¿ô¤«¤é¤Î¥¨¥é¡¼¤ò³Îǧ¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢ -¿ô³Ø´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë +移植性が必要なプログラムで、数学関数からのエラーを確認する必要がある場合には、 +数学関数を呼び出す前に .I errno -¤ò 0 ¤ËÀßÄꤷ¡¢°Ê²¼¤ò¸Æ¤Ó½Ð¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +を 0 に設定し、以下を呼び出すべきである。 .in +4n .nf @@ -93,18 +93,18 @@ feclearexcept(FE_ALL_EXCEPT); .fi .in .\"O before calling a mathematical function. -.\"Omotoki: Âбþ¤¹¤ëÌõ¤Ï feclearexcept ¤Î°úÍѤÎÁ°¤Ë¤¢¤ë¡£ +.\"Omotoki: 対応する訳は feclearexcept の引用の前にある。 .\"O Upon return from the mathematical function, if .\"O .I errno .\"O is nonzero, or the following call (see .\"O .BR fenv (3)) .\"O returns nonzero -¿ô³Ø´Ø¿ô¤«¤éÊ֤äƤ­¤¿ºÝ¤Ë¡¢ +数学関数から返ってきた際に、 .I errno -¤¬ 0 °Ê³°¤«¡¢°Ê²¼¤Î¸Æ¤Ó½Ð¤·¤¬ 0 °Ê³°¤òÊÖ¤·¤¿¾ì¹ç +が 0 以外か、以下の呼び出しが 0 以外を返した場合 .RB ( fenv (3) -»²¾È)¡¢¿ô³Ø´Ø¿ô¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤Æ¤¤¤ë¡£ +参照)、数学関数でエラーが発生している。 .in +4n .nf @@ -123,13 +123,13 @@ fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | .\" FE_INEXACT = 0x20 .\" }; .\"O then an error occurred in the mathematical function. -.\"Omotoki: Âбþ¤¹¤ëÌõ¤Ï fetestexcept ¤Î°úÍѤÎÁ°¤Ë¤¢¤ë¡£ +.\"Omotoki: 対応する訳は fetestexcept の引用の前にある。 .\"O The error conditions that can occur for mathematical functions .\"O are described below. -¿ô³Ø´Ø¿ô¤ÇȯÀ¸¤¹¤ë¥¨¥é¡¼¾ò·ï¤Ë¤Ä¤¤¤Æ¤Ï°Ê²¼¤ÇÀâÌÀ¤¹¤ë¡£ +数学関数で発生するエラー条件については以下で説明する。 .\"O .SS Domain Error -.SS Îΰ襨¥é¡¼ (domain error) +.SS 領域エラー (domain error) .\"O A .\"O .I domain error .\"O occurs when a mathematical function is supplied with an argument whose @@ -145,23 +145,23 @@ fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | .\"O and an "invalid" .\"O .RB ( FE_INVALID ) .\"O floating-point exception is raised. -.I Îΰ襨¥é¡¼ -¤¬È¯À¸¤¹¤ë¤Î¤Ï¡¢¿ô³Ø´Ø¿ô¤ËÅϤµ¤ì¤¿°ú¤­¿ô¤ÎÃͤ¬¤½¤Î´Ø¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë -Îΰè¤ËÆþ¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ç¤¢¤ë (Î㤨¤Ð +.I 領域エラー +が発生するのは、数学関数に渡された引き数の値がその関数が定義されている +領域に入っていない場合である (例えば .BR log (3) -¤ËÉé¤Î°ú¤­¿ô¤òÅϤ·¤¿¾ì¹ç)¡£ -Îΰ襨¥é¡¼¤¬È¯À¸¤¹¤ë¤È¡¢ -¿ô³Ø´Ø¿ô¤ÏÉáÄÌ¤Ï NaN ¤òÊÖ¤· -(Ʊ¤¸¾õ¶·¤Ç°ã¤¦ÃͤòÊÖ¤¹´Ø¿ô¤â¤¢¤ë)¡¢ +に負の引き数を渡した場合)。 +領域エラーが発生すると、 +数学関数は普通は NaN を返し +(同じ状況で違う値を返す関数もある)、 .I errno -¤Ë +に .B EDOM -¤òÀßÄꤷ¡¢¡Ö̵¸ú (invalid)¡× -ÉâÆ°¾®¿ôÅÀÎã³° +を設定し、「無効 (invalid)」 +浮動小数点例外 .RB ( FE_INVALID ) -¤ò¾å¤²¤ë¡£ +を上げる。 .\"O .SS Pole Error -.SS ¶Ë¥¨¥é¡¼ (pole error) +.SS 極エラー (pole error) .\"O A .\"O .I pole error .\"O occurs when the mathematical result of a function is an exact infinity @@ -179,21 +179,21 @@ fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | .\"O .IR "long double" . .\"O The sign of the result is that which is mathematically correct for .\"O the function. -.I ¶Ë¥¨¥é¡¼ -¤¬È¯À¸¤¹¤ë¤Î¤Ï¡¢´Ø¿ô¤Î¿ô³ØŪ¤Ê·ë²Ì¤¬Ìµ¸ÂÂ礽¤Î¤â¤Î¤È¤Ê¤ë¾ì¹ç¤Ç¤¢¤ë -(Î㤨¤Ð -0 ¤ÎÂпô¤ÏÉé¤Î̵¸ÂÂç¤Ç¤¢¤ë)¡£ -¶Ë¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤È¡¢¤½¤Î´Ø¿ô¤ÎÊÖ¤êÃÍ¤Ï (Éä¹æÉÕ¤­¤Î) +.I 極エラー +が発生するのは、関数の数学的な結果が無限大そのものとなる場合である +(例えば +0 の対数は負の無限大である)。 +極エラーが発生すると、その関数の返り値は (符号付きの) .BR HUGE_VAL , .BR HUGE_VALF , .B HUGE_VALL -¤Î¤¤¤º¤ì¤«¤È¤Ê¤ë (Á°µ­¤ÎÃͤΤ¦¤Á¤É¤ì¤¬Ê֤뤫¤Ï´Ø¿ô¤ÎÊÖ¤êÃͤη¿¤Ë¤è¤ê·è¤Þ¤ê¡¢ -¤½¤ì¤¾¤ì +のいずれかとなる (前記の値のうちどれが返るかは関数の返り値の型により決まり、 +それぞれ .IR double , .IR float , .I "long double" -¤ËÂбþ¤¹¤ë)¡£ -·ë²Ì¤ÎÉä¹æ¤Ï¡¢¤½¤Î´Ø¿ô¤Î¿ô³ØŪ¤ÊÄêµÁ¤«¤é·èÄꤵ¤ì¤ë¡£ +に対応する)。 +結果の符号は、その関数の数学的な定義から決定される。 .\"O .I errno .\"O is set to .\"O .BR ERANGE , @@ -201,24 +201,24 @@ fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | .\"O .RB ( FE_DIVBYZERO ) .\"O floating-point exception is raised. .I errno -¤Ï +は .B ERANGE -¤ËÀßÄꤵ¤ì¡¢¡Ö0 ¤Ë¤è¤ë½ü»» (divide-by-zero)¡× -ÉâÆ°¾®¿ôÅÀÎã³° +に設定され、「0 による除算 (divide-by-zero)」 +浮動小数点例外 .RB ( FE_DIVBYZERO ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .\"O .SS Range Error -.SS ÈÏ°Ï¥¨¥é¡¼ (range ¥¨¥é¡¼) +.SS 範囲エラー (range エラー) .\"O A .\"O .I range error .\"O occurs when the magnitude of the function result means that it .\"O cannot be represented in the result type of the function. .\"O The return value of the function depends on whether the range error .\"O was an overflow or an underflow. -.I ÈÏ°Ï¥¨¥é¡¼ -¤¬È¯À¸¤¹¤ë¤Î¤Ï¡¢´Ø¿ô¤Î·ë²Ì¤ÎÃͤ¬¤½¤Î´Ø¿ô¤ÎÊÖ¤êÃͤη¿¤Ç¤Ïɽ¸½¤Ç¤­¤Ê¤¤¾ì¹ç -¤Ç¤¢¤ë¡£´Ø¿ô¤ÎÊÖ¤êÃͤϡ¢ÈÏ°Ï¥¨¥é¡¼¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ç¤¢¤Ã¤¿¤«¥¢¥ó¥À¡¼¥Õ¥í¡¼ -¤Ç¤¢¤Ã¤¿¤«¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¡£ +.I 範囲エラー +が発生するのは、関数の結果の値がその関数の返り値の型では表現できない場合 +である。関数の返り値は、範囲エラーがオーバーフローであったかアンダーフロー +であったかによって異なる。 .\"O A floating result .\"O .I overflows @@ -241,26 +241,26 @@ fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | .\"O and an "overflow" .\"O .RB ( FE_OVERFLOW ) .\"O floating-point exception is raised. -ÉâÆ°¾®¿ôÅÀ¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ï¡¢·ë²Ì¤¬Í­¸Â¤À¤¬¡¢Â礭²á¤®¤Æ -·ë²Ì¤òÊÖ¤¹·¿¤Ç¤Ïɽ¸½¤Ç¤­¤Ê¤¤¾ì¹ç¤ËȯÀ¸¤¹¤ë¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬È¯À¸¤¹¤ë¤È¡¢ -¤½¤Î´Ø¿ô¤Ï +浮動小数点のオーバーフローは、結果が有限だが、大き過ぎて +結果を返す型では表現できない場合に発生する。 +オーバーフローが発生すると、 +その関数は .BR HUGE_VAL , .BR HUGE_VALF , .B HUGE_VALL -¤Î¤¤¤º¤ì¤«¤òÊÖ¤¹ (Á°µ­¤ÎÃͤΤ¦¤Á¤É¤ì¤¬Ê֤뤫¤Ï´Ø¿ô¤ÎÊÖ¤êÃͤη¿¤Ë¤è¤ê·è¤Þ¤ê¡¢ -¤½¤ì¤¾¤ì +のいずれかを返す (前記の値のうちどれが返るかは関数の返り値の型により決まり、 +それぞれ .IR double , .IR float , .I "long double" -¤ËÂбþ¤¹¤ë)¡£ +に対応する)。 .I errno -¤Ï +は .B ERANGE -¤ËÀßÄꤵ¤ì¡¢¡Ö¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ (overflow)¡× -ÉâÆ°¾®¿ôÅÀÎã³° +に設定され、「オーバーフロー (overflow)」 +浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .\"O A floating result .\"O .I underflows @@ -270,11 +270,11 @@ fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | .\"O (C99 says a function shall return "an implementation-defined value .\"O whose magnitude is no greater than the smallest normalized .\"O positive number in the specified type"). -ÉâÆ°¾®¿ôÅÀ¤Î¥¢¥ó¥À¡¼¥Õ¥í¡¼¤Ï¡¢ -·ë²Ì¤¬¾®¤µ²á¤®¤Æ¡¢·ë²Ì¤òÊÖ¤¹·¿¤Ç¤Ïɽ¸½¤Ç¤­¤Ê¤¤¾ì¹ç¤ËȯÀ¸¤¹¤ë¡£ -¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¬È¯À¸¤¹¤ë¤È¡¢¿ô³Ø´Ø¿ô¤ÏÄ̾ï¤Ï 0.0 ¤òÊÖ¤¹ -(C99 ¤Ç¤Ï¡¢»ØÄꤵ¤ì¤¿·¿¤Ë¤ª¤¤¤ÆºÇ¾®¤ÎÀµµ¬²½¤µ¤ì¤¿Àµ¤ÎÃͤè¤êÂ礭¤¯¤Ê¤¤ -Ãͤò»ý¤Ä¼ÂÁõÄêµÁ (implementation-defined) ¤ÎÃͤòÊÖ¤¹¡¢¤È¤Ê¤Ã¤Æ¤¤¤ë)¡£ +浮動小数点のアンダーフローは、 +結果が小さ過ぎて、結果を返す型では表現できない場合に発生する。 +アンダーフローが発生すると、数学関数は通常は 0.0 を返す +(C99 では、指定された型において最小の正規化された正の値より大きくない +値を持つ実装定義 (implementation-defined) の値を返す、となっている)。 .\"O .I errno .\"O may be set to .\"O .BR ERANGE , @@ -282,11 +282,11 @@ fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | .\"O .RB ( FE_UNDERFLOW ) .\"O floating-point exception may be raised. .I errno -¤Ï +は .B ERANGE -¤ËÀßÄꤵ¤ì¡¢¡Ö¥¢¥ó¥À¡¼¥Õ¥í¡¼¡×ÉâÆ°¾®¿ôÅÀÎã³° +に設定され、「アンダーフロー」浮動小数点例外 .RB ( FE_UNDERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .\"O Some functions deliver a range error if the supplied argument value, .\"O or the correct function result, would be @@ -297,21 +297,21 @@ fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | .\"O (i.e., with a 1 in the most significant bit of the significand). .\"O The representation of a subnormal number will contain one .\"O or more leading zeros in the significand. -¤¤¤¯¤Ä¤«¤Î´Ø¿ô¤Ç¤Ï¡¢ÅϤµ¤ì¤¿°ú¤­¿ô¤ÎÃͤ䡢Àµ¤·¤¤´Ø¿ô¤Î·ë²Ì¤¬ -.I subnormal (ÈóÀµµ¬²½¿ô) -¤Ë¤Ê¤ë¾ì¹ç¤ËÈÏ°Ï¥¨¥é¡¼¤ò¾å¤²¤ë¡£ -subnormal ¤ÊÃͤȤϡ¢0 ¤Ç¤Ï¤Ê¤¤¤¬¡¢¤½¤ÎÃͤ¬¾®¤µ¤¹¤®¤Æ -(²¾¿ôÉô¤ÎºÇ¾å°Ì¥Ó¥Ã¥È¤¬ 1 ¤È¤Ê¤ë) ɸ½à·Á¤Ç¤Ïɽ¸½¤Ç¤­¤Ê¤¤¤è¤¦¤ÊÃͤǤ¢¤ë¡£ -subnormal ¤ÊÃͤÎɽ¸½¤Ç¤Ï¡¢²¾¿ôÉô¤Î¾å°Ì¦¤Î¥Ó¥Ã¥È¤Ë 1 ¸Ä°Ê¾å¤Î 0 ¤¬ -´Þ¤Þ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ +いくつかの関数では、渡された引き数の値や、正しい関数の結果が +.I subnormal (非正規化数) +になる場合に範囲エラーを上げる。 +subnormal な値とは、0 ではないが、その値が小さすぎて +(仮数部の最上位ビットが 1 となる) 標準形では表現できないような値である。 +subnormal な値の表現では、仮数部の上位側のビットに 1 個以上の 0 が +含まれることになる。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The .\"O .I math_errhandling .\"O identifier specified by C99 and POSIX.1-2001 is not supported by glibc. -C99 ¤È POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë +C99 と POSIX.1-2001 で規定されている .I math_errhandling -¼±ÊÌ»Ò¤Ï glibc ¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +識別子は glibc ではサポートされていない。 .\" See CONFORMANCE in the glibc 2.8 (and earlier) source. .\"O This identifier is supposed to indicate which of the two .\"O error-notification mechanisms @@ -319,12 +319,12 @@ C99 .\"O exceptions retrievable via .\"O .BR fettestexcept (3)) .\"O is in use. -¤³¤Î¼±Ê̻Ҥϡ¢2 ¤Ä¤Î¥¨¥é¡¼ÄÌÃε¡¹½ +この識別子は、2 つのエラー通知機構 .RI ( errno -¤È +と .BR fetestexcept (3) -·Ðͳ¤Ç¼èÆÀ¤Ç¤­¤ëÎã³°) ¤Î¤¦¤Á¤É¤Á¤é¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¤«¤òÄÌÃÎ -¤¹¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +経由で取得できる例外) のうちどちらが使用されているかを通知 +することになっている。 .\"O The standards require that at least one be in use, .\"O but permit both to be available. .\"O The current (version 2.8) situation under glibc is messy. @@ -336,17 +336,17 @@ C99 .\"O but don't raise an exception. .\"O A very few functions do neither. .\"O See the individual manual pages for details. -ɸ½à¤Ç¤Ï¡¢¾¯¤Ê¤¯¤È¤â°ì¤Ä¤Ï»ÈÍѤµ¤ì¤ë¤³¤È¤¬Í׵ᤵ¤ì¤Æ¤¤¤ë¤¬¡¢ -ξÊý¤È¤âÍøÍѲÄǽ¤Ç¤¢¤Ã¤Æ¤â¤è¤¤¤È¤µ¤ì¤Æ¤¤¤ë¡£ -glibc ¤Ç¤Î¸½ºß¤Î (¥Ð¡¼¥¸¥ç¥ó 2.8 ¤Ç¤Î) ¾õ¶·¤Ï¤«¤Ê¤êº®Í𤷤Ƥ¤¤ë¡£ -¤Û¤È¤ó¤É¤Î´Ø¿ô (¤¿¤À¤·Á´Éô¤Ç¤Ï¤Ê¤¤) ¤Ï¥¨¥é¡¼»þ¤ËÎã³°¤ò¾å¤²¤ë¡£ -¤¤¤¯¤Ä¤«¤Î´Ø¿ô¤Ï +標準では、少なくとも一つは使用されることが要求されているが、 +両方とも利用可能であってもよいとされている。 +glibc での現在の (バージョン 2.8 での) 状況はかなり混乱している。 +ほとんどの関数 (ただし全部ではない) はエラー時に例外を上げる。 +いくつかの関数は .I errno -¤âÀßÄꤹ¤ë¡£ +も設定する。 .I errno -¤òÀßÄꤹ¤ë¤¬¡¢Îã³°¤ò¾å¤²¤Ê¤¤´Ø¿ô¤â¾¯¤·¤À¤±Â¸ºß¤¹¤ë¡£ -¤É¤Á¤é¤â¹Ô¤ï¤Ê¤¤´Ø¿ô¤â¤´¤¯¾¯¿ô¤À¤¬Â¸ºß¤¹¤ë¡£ -¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¸Ä¡¹¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¤Î¤³¤È¡£ +を設定するが、例外を上げない関数も少しだけ存在する。 +どちらも行わない関数もごく少数だが存在する。 +詳細については個々のマニュアルページを参照のこと。 .\"O To avoid the complexities of using .\"O .I errno @@ -356,20 +356,20 @@ glibc .\"O it is often advised that one should instead check for bad argument .\"O values before each call. .I errno -¤È +と .BR fetestexcept (3) -¤ÎξÊý¤ò»È¤Ã¤Æ¥¨¥é¡¼¥Á¥§¥Ã¥¯¤ò¹Ô¤¦¤³¤È¤ÇÊ£»¨¤Ë¤Ê¤ë¤Î¤òÈò¤±¤ë¤¿¤á¡¢ -¿¤¯¤Î¾ì¹ç¡¢´Ø¿ô¸Æ¤Ó½Ð¤·¤ò¹Ô¤¦Á°¤ËÉÔÀµ¤Ê°ú¤­¿ô¤«¤Î¥Á¥§¥Ã¥¯¤ò¹Ô¤¦ -ÊýË¡¤¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£ +の両方を使ってエラーチェックを行うことで複雑になるのを避けるため、 +多くの場合、関数呼び出しを行う前に不正な引き数かのチェックを行う +方法が推奨されている。 .\" http://www.securecoding.cert.org/confluence/display/seccode/FLP32-C.+Prevent+or+detect+domain+and+range+errors+in+math+functions .\"O For example, the following code ensures that .\"O .BR log (3)'s .\"O argument is not a NaN and is not zero (a pole error) or .\"O less than zero (a domain error): -Î㤨¤Ð¡¢°Ê²¼¤Î¥³¡¼¥É¤Ï¡¢ +例えば、以下のコードは、 .BR log (3) -¤Î°ú¤­¿ô¤¬ NaN ¤Ç¤â (¶Ë¥¨¥é¡¼¤È¤Ê¤ë) 0 ¤Ç¤â (Îΰ襨¥é¡¼¤È¤Ê¤ë) 0 ̤Ëþ -¤Ç¤â¤Ê¤¤¤³¤È¤òÊݾڤ¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +の引き数が NaN でも (極エラーとなる) 0 でも (領域エラーとなる) 0 未満 +でもないことを保証するものである。 .in +4n .nf @@ -388,11 +388,11 @@ r = log(x); .\"O .IR ), .\"O which in general are not required to return errors by C99 .\"O and POSIX.1-2001. -¤³¤Î¥Ú¡¼¥¸¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¤³¤È¤Ï¡¢ +このページに書かれていることは、 .RI ( -¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤ë) Ê£ÁÇ¿ô´Ø¿ô¤Ë¤Ï¤¢¤Æ¤Ï¤Þ¤é¤Ê¤¤¡£ -°ìÈ̤ˡ¢C99 ¤ä POSIX.1-2001 ¤Ç¤Ï¤³¤ì¤é¤Î´Ø¿ô¤¬¥¨¥é¡¼¤òÊÖ¤¹¤³¤È¤ò -Í׵ᤷ¤Æ¤Ê¤¤¡£ +で宣言されている) 複素数関数にはあてはまらない。 +一般に、C99 や POSIX.1-2001 ではこれらの関数がエラーを返すことを +要求してない。 .\"O The .\"O .BR gcc (1) @@ -410,24 +410,24 @@ r = log(x); .\"O An error can still be tested for using .\"O .BR fetestexcept (3). .BR gcc (1) -¤Î +の .I "-fno-math-errno" -¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¡¢¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ç¡¢É¸½à¤Î¼ÂÁõ¤è¤ê¤â¹â®¤Ê¿ô³Ø´Ø¿ô¤Î -¼ÂÁõ¤¬»ÈÍѤµ¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¤¬¡¢ -¥¨¥é¡¼»þ¤Ë +オプションを使うと、実行ファイルで、標準の実装よりも高速な数学関数の +実装が使用されるようになるが、 +エラー時に .I errno -¤¬ÀßÄꤵ¤ì¤Ê¤¤ +が設定されない .RB ( gcc (1) -¤Î +の .I "-ffast-math" -¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤¿¾ì¹ç¤Ë¤â +オプションを指定した場合にも .I "-fno-math-errno" -¤ÏÍ­¸ú¤Ë¤Ê¤ë)¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤¿¾ì¹ç¤Ç¤â¡¢ +は有効になる)。 +このオプションを指定した場合でも、 .BR fetestexcept (3) -¤ò»È¤Ã¤¿¥¨¥é¡¼¤Î¸¡ºº¤Ï²Äǽ¤Ç¤¢¤ë¡£ +を使ったエラーの検査は可能である。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR gcc (1), .BR errno (3), .BR fenv (3), diff --git a/draft/man7/mdoc.7 b/draft/man7/mdoc.7 index b5807a1a..3bd20cdf 100644 --- a/draft/man7/mdoc.7 +++ b/draft/man7/mdoc.7 @@ -40,29 +40,29 @@ .\" Translated Fri 14 Jan 2000 by NAKANO Takeo .\" Updated 2008-07-31 by Kentaro Shirakata .\" -.\"WORD: manual domain macro ¥Þ¥Ë¥å¥¢¥ë¥É¥á¥¤¥ó¥Þ¥¯¥í -.\"WORD: general text domain macro °ìÈ̥ƥ­¥¹¥È¥É¥á¥¤¥ó¥Þ¥¯¥í -.\"WORD: callable macro ¸Æ¤Ó½Ð¤·²Äǽ¥Þ¥¯¥í +.\"WORD: manual domain macro マニュアルドメインマクロ +.\"WORD: general text domain macro 一般テキストドメインマクロ +.\"WORD: callable macro 呼び出し可能マクロ .\" .Dd July 11, 1999 .Dt MDOC 7 .Os Linux .\"O .Sh NAME -.Sh ̾Á° +.Sh 名前 .Nm mdoc .\"O .Nd quick reference guide for the .Nd .Nm \-mdoc -¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸¤Î¥¯¥¤¥Ã¥¯¥ê¥Õ¥¡¥ì¥ó¥¹¥¬¥¤¥É +マクロパッケージのクイックリファレンスガイド .\"O .Nm \-mdoc .\"O macro package .\"O .Sh SYNOPSIS -.Sh ½ñ¼° +.Sh 書式 .Nm groff .Fl m Ns Ar doc .Ar files ... .\"O .Sh DESCRIPTION -.Sh ÀâÌÀ +.Sh 説明 .\"O The .\"O .Nm \-mdoc .\"O package is a set of content-based and domain-based macros @@ -75,24 +75,24 @@ .\"O see the tutorial sampler .\"O .Xr mdoc.samples 7 . .Nm \-mdoc -¥Ñ¥Ã¥±¡¼¥¸¤Ï +パッケージは .Bx -man ¥Ú¡¼¥¸¤ËÍѤ¤¤é¤ì¤ëÆâÍÆ¥Ù¡¼¥¹¡¦¥É¥á¥¤¥ó¥Ù¡¼¥¹¤Î¥Þ¥¯¥í¤Ç¤¢¤ë¡£ -°Ê²¼¤Ç¤Ï¥¯¥¤¥Ã¥¯¥ê¥Õ¥¡¥ì¥ó¥¹¤È¤·¤Æ¥Þ¥¯¥í¤Î̾Á°¤È¤½¤Î°ÕÌ£¤ò¥ê¥¹¥È¤¹¤ë¡£ -¤³¤Î¥Ñ¥Ã¥±¡¼¥¸¤ÎÍøÍÑË¡¤Ë´Ø¤¹¤ë¾ÜºÙ¤ÊÀâÌÀ¤Ï¡¢ -¥Á¥å¡¼¥È¥ê¥¢¥ëÍѤθ«ËܤǤ¢¤ë +man ページに用いられる内容ベース・ドメインベースのマクロである。 +以下ではクイックリファレンスとしてマクロの名前とその意味をリストする。 +このパッケージの利用法に関する詳細な説明は、 +チュートリアル用の見本である .Xr mdoc.samples 7 -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .Pp .\"O Note that this is not the usual macro package for Linux documentation, .\"O although it is used for documentation of several widely used programs; .\"O see .\"O .Xr man 7 . -¤³¤ì¤Ï Linux ¤Îʸ½ñ¤ÇÄ̾ïÍѤ¤¤é¤ì¤Æ¤¤¤ë¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸¤È¤Ï°Û¤Ê¤ë¡£ -¤·¤«¤·¹­¤¯ÍѤ¤¤é¤ì¤Æ¤¤¤ë¤¤¤¯¤Ä¤«¤Î¥×¥í¥°¥é¥à¤Îʸ½ñ¤Ç¡¢ -¤³¤Î¥Þ¥¯¥í¤¬ÍøÍѤµ¤ì¤Æ¤¤¤ë¡£ +これは Linux の文書で通常用いられているマクロパッケージとは異なる。 +しかし広く用いられているいくつかのプログラムの文書で、 +このマクロが利用されている。 .Xr man 7 -¤ò¸«¤è¡£ +を見よ。 .Pp .\"O The macros are described in two groups, the first .\"O includes the structural and physical page layout macros. @@ -102,49 +102,49 @@ man .\"O package from other .\"O .Xr troff .\"O formatting packages. -¥Þ¥¯¥í¤Ï 2 ¤Ä¤Î¥°¥ë¡¼¥×¤Ëʬ¤±¤ÆÀâÌÀ¤¹¤ë¡£ -ºÇ½é¤Î¥°¥ë¡¼¥×¤Ï¹½Â¤¤äʪÍýŪ¤Ê¥Ú¡¼¥¸¥ì¥¤¥¢¥¦¥È¤Ë´Ø¤¹¤ë¥Þ¥¯¥í¤Ç¤¢¤ë¡£ -2 ¤Ä¤á¤Ï¥Þ¥Ë¥å¥¢¥ë¥É¥á¥¤¥ó¥Þ¥¯¥í (manual domain macro) -¤ä°ìÈ̥ƥ­¥¹¥È¥É¥á¥¤¥ó¥Þ¥¯¥í (general text domain macro) -¤Ç¡¢ +マクロは 2 つのグループに分けて説明する。 +最初のグループは構造や物理的なページレイアウトに関するマクロである。 +2 つめはマニュアルドメインマクロ (manual domain macro) +や一般テキストドメインマクロ (general text domain macro) +で、 .Nm \-mdoc -¥Ñ¥Ã¥±¡¼¥¸¤ò¾¤Î +パッケージを他の .Xr troff -¥Õ¥©¡¼¥Þ¥Ã¥È¥Ñ¥Ã¥±¡¼¥¸¤Èº¹Ê̲½¤·¤Æ¤¤¤ë¤â¤Î¤Ç¤¢¤ë¡£ +フォーマットパッケージと差別化しているものである。 .\"O .Sh PAGE STRUCTURE DOMAIN -.Sh ¥Ú¡¼¥¸¹½Â¤¤Î¥É¥á¥¤¥ó +.Sh ページ構造のドメイン .\"O .Ss Title Macros -.Ss ¥¿¥¤¥È¥ë¥Þ¥¯¥í +.Ss タイトルマクロ .\"O To create a valid manual page, these three macros, in this order, .\"O are required: -Àµ¤·¤¤¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤òÀ¸À®¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¤³¤ì¤é¤Î 3 ¤Ä¤Î¥Þ¥¯¥í¤ò -¤³¤Î½çÈ֤ǽñ¤¯É¬Íפ¬¤¢¤ë¡£ +正しいマニュアルページを生成するためには、これらの 3 つのマクロを +この順番で書く必要がある。 .Bl -tag -width "xxxx.Os OPERATINGxSYSTEM [version/release]" -compact .It Li "\&.Dd " Ar "Month day, year" .\"O Document date. -ʸ½ñ¤ÎÆüÉÕ¡£ +文書の日付。 .It Li "\&.Dt " Ar "DOCUMENT_TITLE [section] [volume]" .\"O Title, in upper case. -¥¿¥¤¥È¥ë¤òÂçʸ»ú¤Ç¡£ +タイトルを大文字で。 .It Li "\&.Os " Ar "OPERATING_SYSTEM [version/release]" .\"O Operating system -¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à +オペレーティングシステム .Pq Tn BSD . .El .\"O .Ss Page Layout Macros -.Ss ¥Ú¡¼¥¸¥ì¥¤¥¢¥¦¥È¥Þ¥¯¥í +.Ss ページレイアウトマクロ .\"O Section headers, paragraph breaks, lists and displays. -¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¡¢ÃÊÍî¤Î½ª¤ï¤ê¡¢¥ê¥¹¥È¡¢É½¼¨¤Ê¤É¡£ +セクションヘッダ、段落の終わり、リスト、表示など。 .Bl -tag -width flag -compact .It Li \&.Sh .\"O Section Headers. .\"O Valid headers, in the order of presentation: -¥»¥¯¥·¥ç¥ó¤Î¥Ø¥Ã¥À¡£ -Àµ¤·¤¤¥Ø¥Ã¥À¤Ï¡¢¸½¤ì¤ë½ç¤Ë: +セクションのヘッダ。 +正しいヘッダは、現れる順に: .Bl -tag -width "RETURN VALUE" -compact .It Ar NAME .\"O Name section, should include the -̾Á°¤Î¥»¥¯¥·¥ç¥ó¡£ +名前のセクション。 .Ql \&.Nm .\"O or , @@ -153,157 +153,157 @@ man , .Ql \&.Nd .\"O macros. -¤Ê¤É¤Î¥Þ¥¯¥í¤ò´Þ¤à¡£ +などのマクロを含む。 .It Ar SYNOPSIS .\"O Usage. -ÍøÍÑË¡¡£ +利用法。 .It Ar DESCRIPTION .\"O General description, should include .\"O options and parameters. -°ìÈÌŪ¤ÊÀâÌÀ¡£¥ª¥×¥·¥ç¥ó¤ä¥Ñ¥é¥á¡¼¥¿¤ÎÀâÌÀ¤â´Þ¤à¡£ +一般的な説明。オプションやパラメータの説明も含む。 .It Ar RETURN VALUE .\"O Sections two and three function calls. -¥»¥¯¥·¥ç¥ó 2 ¤ä 3 ¤Î´Ø¿ô¥³¡¼¥ë¡£ +セクション 2 や 3 の関数コール。 .It Ar ENVIRONMENT .\"O Describe environment variables. -´Ä¶­ÊÑ¿ô¤òÀâÌÀ¤¹¤ë¡£ +環境変数を説明する。 .It Ar FILES .\"O Files associated with the subject. -ÆâÍƤ˴ط¸¤¹¤ë¥Õ¥¡¥¤¥ë¡£ +内容に関係するファイル。 .It Ar EXAMPLES .\"O Examples and suggestions. -Îã¤ä¤ª¤¹¤¹¤á¡£ +例やおすすめ。 .It Ar DIAGNOSTICS .\"O Normally used for section four device interface diagnostics. -Ä̾糧¥¯¥·¥ç¥ó 4 ¤Î¥Ç¥Ð¥¤¥¹¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¿ÇÃÇÍÑ¡£ +通常セクション 4 のデバイスインターフェースの診断用。 .It Ar ERRORS .\"O Sections two and three error and signal .\"O handling. -¥»¥¯¥·¥ç¥ó 2 ¤ä 3 ¤Î¥¨¥é¡¼¤ä¥·¥°¥Ê¥ë½èÍý¡£ +セクション 2 や 3 のエラーやシグナル処理。 .It Ar SEE ALSO .\"O Cross references and citations. -Áê¸ß»²¾È¤ä°úÍÑ¡£ +相互参照や引用。 .It Ar CONFORMING TO .\"O Conformance to standards if applicable. -²Äǽ¤Ê¤éɸ½à¤Ø¤Î½àµò¡£ +可能なら標準への準拠。 .It Ar HISTORY .\"O If a standard is not applicable, the history .\"O of the subject should be given. -ɸ½à¤¬Å¬ÍѤµ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢ -Îò»ËŪ¤ÊÆâÍƤòÍ¿¤¨¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +標準が適用されていない場合は、 +歴史的な内容を与えるべきである。 .It Ar BUGS .\"O Gotchas and caveats. -àìáÓ¤ä·Ù¹ð¡£ +瑕疵や警告。 .It Ar other .\"O Customized headers may be added at .\"O the authors discretion. -É®¼Ô¤ÎȽÃǤǥإåÀ¤ò¤¢¤Ä¤é¤¨¤Æ¤â¤è¤¤¡£ +筆者の判断でヘッダをあつらえてもよい。 .El .It Li \&.Ss .\"O Subsection Headers. -¥µ¥Ö¥»¥¯¥·¥ç¥ó¤Î¥Ø¥Ã¥À¡£ +サブセクションのヘッダ。 .It Li \&.Pp .\"O Paragraph Break. .\"O Vertical space (one line). -ÃÊÍî¤Î¶èÀڤꡣ -¿âľ¥¹¥Ú¡¼¥¹ (°ì¹Ô)¡£ +段落の区切り。 +垂直スペース (一行)。 .It Li \&.D1 .\"O (D-one) Display-one .\"O Indent and display one text line. (D-one) Display-one -¥¤¥ó¥Ç¥ó¥È¤·¤Æ¥Æ¥­¥¹¥È¤ò°ì¹Ôɽ¼¨¡£ +インデントしてテキストを一行表示。 .It Li \&.Dl .\"O (D-ell) Display-one literal. .\"O Indent and display one line of literal text. -(D-ell) Displey-one literal¡£ -¥¤¥ó¥Ç¥ó¥È¤·¤Æ¥ê¥Æ¥é¥ë¤Ê¥Æ¥­¥¹¥È¤ò°ì¹Ôɽ¼¨¡£ +(D-ell) Displey-one literal。 +インデントしてリテラルなテキストを一行表示。 .It Li \&.Bd .\"O Begin-display block. .\"O Display options: -ɽ¼¨¥Ö¥í¥Ã¥¯¤Î³«»Ï¡£ -ɽ¼¨¥ª¥×¥·¥ç¥ó: +表示ブロックの開始。 +表示オプション: .Bl -tag -width "xoffset string " -compact .It Fl ragged .\"O Unjustified (ragged edges). -·¤¨¤Ê¤¤ (ξü¤ÏÉÔ·¤¤)¡£ +揃えない (両端は不揃い)。 .It Fl filled .\"O Justified. -·¤¨¤ë¡£ +揃える。 .It Fl literal .\"O Literal text or code. -¥ê¥Æ¥é¥ë¤Ê¥Æ¥­¥¹¥È¤Þ¤¿¤Ï¥³¡¼¥É¡£ +リテラルなテキストまたはコード。 .It Fl file Ar name .\"O Read in named .\"O .Ar file .\"O and display. -»ØÄꤵ¤ì¤¿ +指定された .Ar file -¤òÆɤó¤Çɽ¼¨¤¹¤ë¡£ +を読んで表示する。 .It Fl offset Ar string .\"O Offset display. .\"O Acceptable .\"O .Ar string .\"O values: -¥ª¥Õ¥»¥Ã¥Èɽ¼¨¡£ -¼õÉÕ¤±¤ë +オフセット表示。 +受付ける .Ar string -¤ÎÃͤÏ: +の値は: .Bl -tag -width indent-two -compact .It Ar left .\"O Align block on left (default). -¥Ö¥í¥Ã¥¯¤òº¸¤Ë·¤¨¤ë (¥Ç¥Õ¥©¥ë¥È)¡£ +ブロックを左に揃える (デフォルト)。 .It Ar center .\"O Approximate center margin. -Âç¤Þ¤«¤Ê¥»¥ó¥¿¡¼¥Þ¡¼¥¸¥ó¡£ +大まかなセンターマージン。 .It Ar indent .\"O Six constant width spaces (a tab). -Äê¿ôÉý¤Î¶õÇò 6 ¤Ä (¥¿¥Ö 1 ¤Ä)¡£ +定数幅の空白 6 つ (タブ 1 つ)。 .It Ar indent-two .\"O Two tabs. -¥¿¥Ö 2 ¤Ä¡£ +タブ 2 つ。 .It Ar right .\"O Left aligns block 2 inches from .\"O right. -·¤¨¥Ö¥í¥Ã¥¯¤ò±¦¤«¤é 2 ¥¤¥ó¥Á¤Î°ÌÃ֤˻Ĥ¹¡£ +揃えブロックを右から 2 インチの位置に残す。 .\"NAKANO ??? .It Ar xx Ns Cm n .\"O Where .\"O .Ar xx .\"O is a number from .Ar xx -¤Ï +は .No \&4 Ns Cm n .\"O to -¤«¤é +から .\"O .No \&9\&9 Ns Cm n . .No \&9\&9 Ns Cm n -¤Þ¤Ç¤Î¿ô»ú¡£ +までの数字。 .It Ar Aa .\"O Where .\"O .Ar Aa .\"O is a callable macro name. .Ar Aa -¤Ï¸Æ¤Ó¤À¤·²Äǽ¤Ê¥Þ¥¯¥í¤Î̾Á°¡£ +は呼びだし可能なマクロの名前。 .It Ar string .\"O The width of .\"O .Ar string .\"O is used. .Ar string -¤ÎÉý¤¬ÍѤ¤¤é¤ì¤ë¡£ +の幅が用いられる。 .El .El .It Li \&.Ed .\"O End-display (matches \&.Bd). -ɽ¼¨½ªÎ» (\&.Bd ¤Ë¥Þ¥Ã¥Á¤¹¤ë)¡£ +表示終了 (\&.Bd にマッチする)。 .It Li \&.Bl .\"O Begin-list. .\"O Create lists or columns. .\"O Options: -¥ê¥¹¥È³«»Ï¡£ -¥ê¥¹¥È¤Þ¤¿¤Ï¥³¥é¥à¤òÀ¸À®¤¹¤ë¡£¥ª¥×¥·¥ç¥ó¤Ï°Ê²¼: +リスト開始。 +リストまたはコラムを生成する。オプションは以下: .Bl -tag -width flag -compact .\"O .It Ar List-types -.It Ar ¥ê¥¹¥È·Á¼° +.It Ar リスト形式 .Bl -column xbullet -compact .\"O .It Fl bullet Ta "Bullet Item List" .\"O .It Fl item Ta "Unlabeled List" @@ -313,64 +313,64 @@ man .\"O .It Fl hang Ta "Hanging Labeled List" .\"O .It Fl ohang Ta "Overhanging Labeled List" .\"O .It Fl inset Ta "Inset or Run-on Labeled List" -.It Fl bullet Ta "Ãæ¹õ¤Î¥¢¥¤¥Æ¥à¥ê¥¹¥È" -.It Fl item Ta "¥é¥Ù¥ë¤Ê¤·¥ê¥¹¥È" -.It Fl enum Ta "¿ôÃÍÉÕ¤­¥ê¥¹¥È" -.It Fl tag Ta "¥¿¥°¥é¥Ù¥ëÉÕ¤­¥ê¥¹¥È" -.It Fl diag Ta "¿ÇÃǥꥹ¥È (diagnostic list)" -.It Fl hang Ta "¤Ö¤é¤µ¤¬¤ê¥é¥Ù¥ë¥ê¥¹¥È" -.It Fl ohang Ta "Èô¤Ó½Ð¤·¥é¥Ù¥ë¥ê¥¹¥È" -.It Fl inset Ta "¥é¥Ù¥ëÉÕ¤­¥ê¥¹¥È¤ÎÁÞÆþ¡¦·Ñ³" +.It Fl bullet Ta "中黒のアイテムリスト" +.It Fl item Ta "ラベルなしリスト" +.It Fl enum Ta "数値付きリスト" +.It Fl tag Ta "タグラベル付きリスト" +.It Fl diag Ta "診断リスト (diagnostic list)" +.It Fl hang Ta "ぶらさがりラベルリスト" +.It Fl ohang Ta "飛び出しラベルリスト" +.It Fl inset Ta "ラベル付きリストの挿入・継続" .El .\"O .It List-parameters -.It ¥ê¥¹¥È¥Ñ¥é¥á¡¼¥¿ +.It リストパラメータ .Bl -tag -width "xcompact " -compact .It Fl offset .\"O (All lists.) See .\"O .Ql \&.Bd .\"O begin-display above. -(Á´¤Æ¤Î¥ê¥¹¥È) ¾åµ­¤Î +(全てのリスト) 上記の .Ql \&.Bd -¥Ç¥£¥¹¥×¥ì¥¤³«»Ï (begin-display) ¤ò¸«¤è¡£ +ディスプレイ開始 (begin-display) を見よ。 .It Fl width .Pf ( Fl tag .\"O and -¤ª¤è¤Ó +および .Fl hang .\"O lists only.) -¥ê¥¹¥È¤Î¤ß) +リストのみ) .\"O See .\"O .Ql \&.Bd . .Ql \&.Bd . -¤ò¸«¤è¡£ +を見よ。 .It Fl compact .\"O (All lists.) .\"O Suppresses blank lines. -(Á´¤Æ¤Î¥ê¥¹¥È) -¶õ¹Ô¤òÍÞÀ©¤¹¤ë¡£ +(全てのリスト) +空行を抑制する。 .El .El .It Li \&.El .\"O End-list. -¥ê¥¹¥È¤Î½ª¤ï¤ê¡£ +リストの終わり。 .It Li \&.It .\"O List item. -¥ê¥¹¥È¹àÌÜ¡£ +リスト項目。 .El .\"O .Sh MANUAL AND GENERAL TEXT DOMAIN MACROS -.Sh ¥Þ¥Ë¥å¥¢¥ë¥É¥á¥¤¥ó¥Þ¥¯¥í¤È°ìÈ̥ƥ­¥¹¥È¥É¥á¥¤¥ó¥Þ¥¯¥í +.Sh マニュアルドメインマクロと一般テキストドメインマクロ .\"O The manual and general text domain macros are special in that .\"O most of them are parsed for callable macros .\"O for example: -¥Þ¥Ë¥å¥¢¥ë¥É¥á¥¤¥ó¥Þ¥¯¥í¤È°ìÈ̥ƥ­¥¹¥È¥É¥á¥¤¥ó¥Þ¥¯¥í¤È¤¬ -¾¤È°Û¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ï¡¢ -¸Æ¤Ó¤À¤·²Äǽ¥Þ¥¯¥í (callable macro) ¤ÎÆâÉô¤Ç¤Ï¡¢ -¤½¤Î¤Û¤È¤ó¤É¤¬¥Ñ¡¼¥º¤µ¤ì¤ë¤È¤¤¤¦ÅÀ¤Ç¤¢¤ë¡£ -Î㤨¤Ð°Ê²¼¤Î¤è¤¦¤ËÊÑ´¹¤µ¤ì¤ë: +マニュアルドメインマクロと一般テキストドメインマクロとが +他と異なっているのは、 +呼びだし可能マクロ (callable macro) の内部では、 +そのほとんどがパーズされるという点である。 +例えば以下のように変換される: .Bl -tag -width ".Op Fl s Ar filex" -offset indent .It Li "\&.Op Fl s Ar file" .\"O Produces -¢ª +→ .Op Fl s Ar file .El .Pp @@ -390,26 +390,26 @@ man .\"O and .\"O .Em callable .\"O columns below. -¤³¤ÎÎã¤Ç¤Ï¡¢°Ï¤ß¥Þ¥¯¥í +この例では、囲みマクロ .Ql \&.Op -¤ËÍ¿¤¨¤é¤ì¤¿¥ª¥×¥·¥ç¥ó¤¬¥Ñ¡¼¥º¤µ¤ì¡¢ -Ãæ¿È¤Î¸Æ¤Ó¤À¤·²Äǽ¤Ê¥Þ¥¯¥í¤Ç¤¢¤ë +に与えられたオプションがパーズされ、 +中身の呼びだし可能なマクロである .Ql \&Fl -¤¬¸Æ¤Ð¤ì¡¢°ú¿ô¤Ç¤¢¤ë +が呼ばれ、引数である .Ql s -¤ËÂФ·¤ÆºîÍѤ¹¤ë¡£¤½¤·¤Æ¼¡¤ËÃæ¿È¤Î¸Æ¤Ó¤À¤·²Äǽ¤Ê¥Þ¥¯¥í +に対して作用する。そして次に中身の呼びだし可能なマクロ .Ql \&Ar -¤¬¸Æ¤Ð¤ì¡¢°ú¿ô¤Ç¤¢¤ë +が呼ばれ、引数である .Ql file -¤ËºîÍѤ¹¤ë¡£¸Æ¤Ó¤À¤·²Äǽ¤Ç¤¢¤ë¤¬¥Ñ¡¼¥¹¤µ¤ì¤Ê¤¤¥Þ¥¯¥í¤ä¡¢ -¤½¤ÎµÕ¤Î¥Þ¥¯¥í¤â¸ºß¤¹¤ë¡£¤³¤Î¤è¤¦¤Ê¥Þ¥¯¥í¤Ï°Ê²¼¤Î +に作用する。呼びだし可能であるがパースされないマクロや、 +その逆のマクロも存在する。このようなマクロは以下の .Em parsed -¥«¥é¥à¤ä +カラムや .Em callable -¥«¥é¥à¤Ç¼¨¤¹¡£ +カラムで示す。 .Pp .\"O Unless stated, manual domain macros share a common syntax: -Æä˵­½Ò¤¬¤Ê¤±¤ì¤Ð¡¢¥Þ¥Ë¥å¥¢¥ë¥É¥á¥¤¥ó¥Þ¥¯¥í¤Ï¶¦Ä̤νñ¼°¤ò¤È¤ë: +特に記述がなければ、マニュアルドメインマクロは共通の書式をとる: .Pp .Dl \&.Va argument [\ .\ ,\ ;\ :\ (\ )\ [\ ]\ argument \...\ ] .Pp @@ -421,198 +421,198 @@ man .\"O .Ql ")," .\"O is not recognized as punctuation and will be output with a leading white .\"O space and in what ever font the calling macro uses. -.Sy Ãí°Õ : -¶çÆÉʸ»ú (punctuation character) ¤Î³«¤­¡¦ÊĤ¸¤Ï¡¢ -¤½¤ì¤é¤¬°ìÅÙ¤Ëñ°ì¤Îʸ»ú¤Ç¸½¤ì¤¿¾ì¹ç¤Î¤ß¤½¤Î¤è¤¦¤Ë²ò¼á¤µ¤ì¤ë¡£ -ʸ»úÎó +.Sy 注意 : +句読文字 (punctuation character) の開き・閉じは、 +それらが一度に単一の文字で現れた場合のみそのように解釈される。 +文字列 .Ql ")," -¤Ï¡¢¶çÆɶèÀÚ¤ê¤È¤Ï¤ß¤Ê¤µ¤ì¤º¡¢¤½¤ÎÁ°¤Ë¶õÇòʸ»ú¤¬¤¢¤ì¤Ð -¤½¤Îʸ»ú¤È¤È¤â¤Ë¡¢¤Þ¤¿¸Æ¤Ó½Ð¤·¤¿¥Þ¥¯¥í¤¬ÍѤ¤¤ë¥Õ¥©¥ó¥È¤Ç½ÐÎϤµ¤ì¤ë¡£ +は、句読区切りとはみなされず、その前に空白文字があれば +その文字とともに、また呼び出したマクロが用いるフォントで出力される。 .\"O The .\"O argument list .\"O .Ql "] ) ," .\"O is recognized as three sequential closing punctuation characters .\"O and a leading white space is not output between the characters .\"O and the previous argument (if any). -°ú¿ô¥ê¥¹¥È +引数リスト .Ql "] ) ," -¤Ï 3 ¤Ä¤ÎϢ³¤·¤¿ÊĤ¸¶çÆÉʸ»ú¤È²ò¼á¤µ¤ì¡¢ -¤½¤ì¤¾¤ì¤ÎÁ°¤Ë¤¢¤ë¶õÇòʸ»ú¤Ï¡¢³Æʸ»ú¤ä (¤â¤·¤¢¤ì¤Ð) ¤½¤ÎÁ°¤Ë¤¢¤ë -°ú¿ô¤È¤Î´Ö¤Ë¤Ï½ÐÎϤµ¤ì¤Ê¤¤¡£ +は 3 つの連続した閉じ句読文字と解釈され、 +それぞれの前にある空白文字は、各文字や (もしあれば) その前にある +引数との間には出力されない。 .\"O The special meaning of a punctuation character may be escaped .\"O with the string .\"O .Ql \e& . .\"O For example the following string, -Æüì¤Ê°ÕÌ£¤ò»ý¤Ä¶çÆÉʸ»ú¤Ï¡¢Ê¸»úÎó +特殊な意味を持つ句読文字は、文字列 .Ql \e& -¤Ë¤è¤Ã¤Æ¥¨¥¹¥±¡¼¥×¤Ç¤­¤ë¡£ -Î㤨¤Ð°Ê²¼¤Îº¸¤Îʸ»úÎó¤Ï±¦¤Î¤è¤¦¤ËÊÑ´¹¤µ¤ì¤ë¡£ +によってエスケープできる。 +例えば以下の左の文字列は右のように変換される。 .Bl -tag -width "&.Ar file1\ , file2\ , file3\ )\ ." -offset indent .It Li "\&.Ar file1\ , file2\ , file3\ )\ ." .\"O Produces -¢ª +→ .Ar file1 , file2 , file3 ) . .El .ne 1i .\"O .Ss Manual Domain Macros -.Ss ¥Þ¥Ë¥å¥¢¥ë¥É¥á¥¤¥ó¥Þ¥¯¥í +.Ss マニュアルドメインマクロ .Bl -column "Name" "Parsed" Callable" -compact .\"O .It Em Name Parsed Callable Description -.It Em ̾Á° Parsed Callable ÀâÌÀ +.It Em 名前 Parsed Callable 説明 .\"O .It Li \&Ad Ta Yes Ta Yes Ta "Address. (This macro may be deprecated.)" .\"O .It Li \&An Ta Yes Ta Yes Ta "Author name." .\"O .It Li \&Ar Ta Yes Ta Yes Ta "Command-line argument." .\"O .It Li \&Cd Ta \&No Ta \&No Ta "Configuration declaration (section four only)." .\"O .It Li \&Cm Ta Yes Ta Yes Ta "Command-line argument modifier." -.It Li \&Ad Ta Yes Ta Yes Ta "¥¢¥É¥ì¥¹ (¤³¤Î¥Þ¥¯¥í¤Ï»È¤ï¤Ê¤¤Êý¤¬Îɤ¤)" -.It Li \&An Ta Yes Ta Yes Ta "Ãø¼Ô¤Î̾Á°" -.It Li \&Ar Ta Yes Ta Yes Ta "¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¿ô" -.It Li \&Cd Ta \&No Ta \&No Ta "ÀßÄê¤ÎÀë¸À (¥»¥¯¥·¥ç¥ó 4 ¤Î¤ß)" -.It Li \&Cm Ta Yes Ta Yes Ta "¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¿ô¤Î½¤Àµ»Ò" +.It Li \&Ad Ta Yes Ta Yes Ta "アドレス (このマクロは使わない方が良い)" +.It Li \&An Ta Yes Ta Yes Ta "著者の名前" +.It Li \&Ar Ta Yes Ta Yes Ta "コマンドライン引数" +.It Li \&Cd Ta \&No Ta \&No Ta "設定の宣言 (セクション 4 のみ)" +.It Li \&Cm Ta Yes Ta Yes Ta "コマンドライン引数の修正子" .\"O .It Li \&Dv Ta Yes Ta Yes Ta "Defined variable (source code)." .\"O .It Li \&Er Ta Yes Ta Yes Ta "Error number (source code)." .\"O .It Li \&Ev Ta Yes Ta Yes Ta "Environment variable." .\"O .It Li \&Fa Ta Yes Ta Yes Ta "Function argument." .\"O .It Li \&Fd Ta Yes Ta Yes Ta "Function declaration." -.It Li \&Dv Ta Yes Ta Yes Ta "ÄêµÁºÑ¤ßÊÑ¿ô (¥½¡¼¥¹¥³¡¼¥É)" -.It Li \&Er Ta Yes Ta Yes Ta "¥¨¥é¡¼ÈÖ¹æ (¥½¡¼¥¹¥³¡¼¥É)" -.It Li \&Ev Ta Yes Ta Yes Ta "´Ä¶­ÊÑ¿ô" -.It Li \&Fa Ta Yes Ta Yes Ta "´Ø¿ô¤Î°ú¤­¿ô" -.It Li \&Fd Ta Yes Ta Yes Ta "´Ø¿ô¤ÎÀë¸À" +.It Li \&Dv Ta Yes Ta Yes Ta "定義済み変数 (ソースコード)" +.It Li \&Er Ta Yes Ta Yes Ta "エラー番号 (ソースコード)" +.It Li \&Ev Ta Yes Ta Yes Ta "環境変数" +.It Li \&Fa Ta Yes Ta Yes Ta "関数の引き数" +.It Li \&Fd Ta Yes Ta Yes Ta "関数の宣言" .\"O .It Li \&Fn Ta Yes Ta Yes Ta "Function call (also .Fo and .Fc)." .\"O .It Li \&Ic Ta Yes Ta Yes Ta "Interactive command." .\"O .It Li \&Li Ta Yes Ta Yes Ta "Literal text." .\"O .It Li \&Nm Ta Yes Ta Yes Ta "Command name." .\"O .It Li \&Op Ta Yes Ta Yes Ta "Option (also .Oo and .Oc)." -.It Li \&Fn Ta Yes Ta Yes Ta "´Ø¿ô¸Æ¤Ó¤À¤· (.Fo ¤È .Fc ¤â)" -.It Li \&Ic Ta Yes Ta Yes Ta "¥¤¥ó¥¿¥é¥¯¥Æ¥£¥Ö¤Ê¥³¥Þ¥ó¥É" -.It Li \&Li Ta Yes Ta Yes Ta "¥ê¥Æ¥é¥ë¤Ê¥Æ¥­¥¹¥È" -.It Li \&Nm Ta Yes Ta Yes Ta "¥³¥Þ¥ó¥É¤Î̾Á°" -.It Li \&Op Ta Yes Ta Yes Ta "¥ª¥×¥·¥ç¥ó (.Oo ¤È .Oc ¤â)" +.It Li \&Fn Ta Yes Ta Yes Ta "関数呼びだし (.Fo と .Fc も)" +.It Li \&Ic Ta Yes Ta Yes Ta "インタラクティブなコマンド" +.It Li \&Li Ta Yes Ta Yes Ta "リテラルなテキスト" +.It Li \&Nm Ta Yes Ta Yes Ta "コマンドの名前" +.It Li \&Op Ta Yes Ta Yes Ta "オプション (.Oo と .Oc も)" .\"O .It Li \&Ot Ta Yes Ta Yes Ta "Old style function type (Fortran only)." .\"O .It Li \&Pa Ta Yes Ta Yes Ta "Pathname or filename." .\"O .It Li \&St Ta Yes Ta Yes Ta "Standards (\-p1003.2, \-p1003.1 or \-ansiC)" .\"O .It Li \&Va Ta Yes Ta Yes Ta "Variable name." .\"O .It Li \&Vt Ta Yes Ta Yes Ta "Variable type (Fortran only)." .\"O .It Li \&Xr Ta Yes Ta Yes Ta "Manual Page Cross Reference." -.It Li \&Ot Ta Yes Ta Yes Ta "¸Å¤¤·Á¼°¤Î´Ø¿ô·¿ (Fortran ¤Î¤ß)." -.It Li \&Pa Ta Yes Ta Yes Ta "¥Ñ¥¹Ì¾¤Þ¤¿¤Ï¥Õ¥¡¥¤¥ë̾" -.It Li \&St Ta Yes Ta Yes Ta "ɸ½à (\-p1003.2, \-p1003.1, \-ansiC ¤Î¤É¤ì¤«)" -.It Li \&Va Ta Yes Ta Yes Ta "ÊÑ¿ô¤Î̾Á°" -.It Li \&Vt Ta Yes Ta Yes Ta "ÊÑ¿ô¤Î·¿ (Fortran ¤Î¤ß)" -.It Li \&Xr Ta Yes Ta Yes Ta "¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÎÁê¸ß»²¾È" +.It Li \&Ot Ta Yes Ta Yes Ta "古い形式の関数型 (Fortran のみ)." +.It Li \&Pa Ta Yes Ta Yes Ta "パス名またはファイル名" +.It Li \&St Ta Yes Ta Yes Ta "標準 (\-p1003.2, \-p1003.1, \-ansiC のどれか)" +.It Li \&Va Ta Yes Ta Yes Ta "変数の名前" +.It Li \&Vt Ta Yes Ta Yes Ta "変数の型 (Fortran のみ)" +.It Li \&Xr Ta Yes Ta Yes Ta "マニュアルページの相互参照" .El .\"O .Ss General Text Domain Macros -.Ss °ìÈ̥ƥ­¥¹¥È¥É¥á¥¤¥ó¥Þ¥¯¥í +.Ss 一般テキストドメインマクロ .Bl -column "Name" "Parsed" Callable" -compact .\"O .It Em "Name Parsed Callable Description" -.It Em ̾Á° Parsed Callable ÀâÌÀ +.It Em 名前 Parsed Callable 説明 .\"O .It Li \&%A Ta Yes Ta \&No Ta "Reference author." .\"O .It Li \&%B Ta Yes Ta Yes Ta "Reference book title." .\"O .It Li \&%\&C Ta \&No Ta \&No Ta "Reference place of publishing (city)." .\"O .It Li \&%\&D Ta \&No Ta \&No Ta "Reference date." .\"O .It Li \&%J Ta Yes Ta Yes Ta "Reference journal title." -.It Li \&%A Ta Yes Ta \&No Ta "»²¹Íʸ¸¥¤ÎÃø¼Ô" -.It Li \&%B Ta Yes Ta Yes Ta "»²¹Íʸ¸¥¤Î½ñÀÒ¥¿¥¤¥È¥ë" -.It Li \&%\&C Ta \&No Ta \&No Ta "»²¹Íʸ¸¥¤Î½ÐÈÇÃÏ (³¹)" -.It Li \&%\&D Ta \&No Ta \&No Ta "»²¹Íʸ¸¥¤ÎÆüÉÕ" -.It Li \&%J Ta Yes Ta Yes Ta "»²¹Íʸ¸¥¤Î»¨»ï̾" +.It Li \&%A Ta Yes Ta \&No Ta "参考文献の著者" +.It Li \&%B Ta Yes Ta Yes Ta "参考文献の書籍タイトル" +.It Li \&%\&C Ta \&No Ta \&No Ta "参考文献の出版地 (街)" +.It Li \&%\&D Ta \&No Ta \&No Ta "参考文献の日付" +.It Li \&%J Ta Yes Ta Yes Ta "参考文献の雑誌名" .\"O .It Li \&%N Ta \&No Ta \&No Ta "Reference issue number." .\"O .It Li \&%\&O Ta \&No Ta \&No Ta "Reference optional information." .\"O .It Li \&%P Ta \&No Ta \&No Ta "Reference page number(s)." .\"O .It Li \&%R Ta \&No Ta \&No Ta "Reference report Name." .\"O .It Li \&%T Ta Yes Ta Yes Ta "Reference article title." -.It Li \&%N Ta \&No Ta \&No Ta "»²¹Íʸ¸¥¤Î¹æ¿ô" -.It Li \&%\&O Ta \&No Ta \&No Ta "»²¹Íʸ¸¥¤ÎÊä½õ¾ðÊó" -.It Li \&%P Ta \&No Ta \&No Ta "»²¹Íʸ¸¥¤Î¥Ú¡¼¥¸" -.It Li \&%R Ta \&No Ta \&No Ta "»²¹Íʸ¸¥¤Î¥ê¥Ý¡¼¥È̾" -.It Li \&%T Ta Yes Ta Yes Ta "»²¹Íʸ¸¥¤Îµ­»ö¥¿¥¤¥È¥ë" +.It Li \&%N Ta \&No Ta \&No Ta "参考文献の号数" +.It Li \&%\&O Ta \&No Ta \&No Ta "参考文献の補助情報" +.It Li \&%P Ta \&No Ta \&No Ta "参考文献のページ" +.It Li \&%R Ta \&No Ta \&No Ta "参考文献のリポート名" +.It Li \&%T Ta Yes Ta Yes Ta "参考文献の記事タイトル" .\"O .It Li \&%V Ta \&No Ta \&No Ta "Reference volume." .\"O .It Li \&Ac Ta Yes Ta Yes Ta "Angle close quote." .\"O .It Li \&Ao Ta Yes Ta Yes Ta "Angle open quote." .\"O .It Li \&Ap Ta Yes Ta Yes Ta "Apostrophe." .\"O .It Li \&Aq Ta Yes Ta Yes Ta "Angle quote." -.It Li \&%V Ta \&No Ta \&No Ta "»²¹Íʸ¸¥¤Î´¬¿ô" -.It Li \&Ac Ta Yes Ta Yes Ta "¥¢¥ó¥°¥ë¥¯¥©¡¼¥È¤ÎÊĤ¸" -.It Li \&Ao Ta Yes Ta Yes Ta "¥¢¥ó¥°¥ë¥¯¥©¡¼¥È¤Î³«¤­" -.It Li \&Ap Ta Yes Ta Yes Ta "¥¢¥Ý¥¹¥È¥í¥Õ¥£" -.It Li \&Aq Ta Yes Ta Yes Ta "¥¢¥ó¥°¥ë¥¯¥©¡¼¥È" +.It Li \&%V Ta \&No Ta \&No Ta "参考文献の巻数" +.It Li \&Ac Ta Yes Ta Yes Ta "アングルクォートの閉じ" +.It Li \&Ao Ta Yes Ta Yes Ta "アングルクォートの開き" +.It Li \&Ap Ta Yes Ta Yes Ta "アポストロフィ" +.It Li \&Aq Ta Yes Ta Yes Ta "アングルクォート" .\"O .It Li \&At Ta \&No Ta \&No Ta Tn "AT&T UNIX" .\"O .It Li \&Bc Ta Yes Ta Yes Ta "Bracket close quote." .\"O .It Li \&Bf Ta \&No Ta \&No Ta "Begin font mode." .\"O .It Li \&Bo Ta Yes Ta Yes Ta "Bracket open quote." .\"O .It Li \&Bq Ta Yes Ta Yes Ta "Bracket quote." .It Li \&At Ta \&No Ta \&No Ta Tn "AT&T UNIX" -.It Li \&Bc Ta Yes Ta Yes Ta "¥Ö¥é¥±¥Ã¥È¥¯¥©¡¼¥È¤ÎÊĤ¸" -.It Li \&Bf Ta \&No Ta \&No Ta "¥Õ¥©¥ó¥È¥â¡¼¥É¤Î³«»Ï" -.It Li \&Bo Ta Yes Ta Yes Ta "¥Ö¥é¥±¥Ã¥È¥¯¥©¡¼¥È¤Î³«¤­" -.It Li \&Bq Ta Yes Ta Yes Ta "¥Ö¥é¥±¥Ã¥È¥¯¥©¡¼¥È" +.It Li \&Bc Ta Yes Ta Yes Ta "ブラケットクォートの閉じ" +.It Li \&Bf Ta \&No Ta \&No Ta "フォントモードの開始" +.It Li \&Bo Ta Yes Ta Yes Ta "ブラケットクォートの開き" +.It Li \&Bq Ta Yes Ta Yes Ta "ブラケットクォート" .\"O .It Li \&Bx Ta Yes Ta Yes Ta Bx . .\"O .It Li \&Db Ta \&No Ta \&No Ta "Debug (default is \\*qoff\\*q)" .\"O .It Li \&Dc Ta Yes Ta Yes Ta "Double close quote." .\"O .It Li \&Do Ta Yes Ta Yes Ta "Double open quote." .\"O .It Li \&Dq Ta Yes Ta Yes Ta "Double quote." .It Li \&Bx Ta Yes Ta Yes Ta Bx . -.It Li \&Db Ta \&No Ta \&No Ta "¥Ç¥Ð¥Ã¥° (¥Ç¥Õ¥©¥ë¥È¤Ï \\*qoff\\*q)" -.It Li \&Dc Ta Yes Ta Yes Ta "¥À¥Ö¥ë¥¯¥©¡¼¥È¤ÎÊĤ¸" -.It Li \&Do Ta Yes Ta Yes Ta "¥À¥Ö¥ë¥¯¥©¡¼¥È¤Î³«¤­" -.It Li \&Dq Ta Yes Ta Yes Ta "¥À¥Ö¥ë¥¯¥©¡¼¥È" +.It Li \&Db Ta \&No Ta \&No Ta "デバッグ (デフォルトは \\*qoff\\*q)" +.It Li \&Dc Ta Yes Ta Yes Ta "ダブルクォートの閉じ" +.It Li \&Do Ta Yes Ta Yes Ta "ダブルクォートの開き" +.It Li \&Dq Ta Yes Ta Yes Ta "ダブルクォート" .\"O .It Li \&Ec Ta Yes Ta Yes Ta "Enclose string close quote." .\"O .It Li \&Ef Ta \&No Ta \&No Ta "End font mode." .\"O .It Li \&Em Ta Yes Ta Yes Ta "Emphasis (traditional English)." .\"O .It Li \&Eo Ta Yes Ta Yes Ta "Enclose string open quote." .\"O .It Li \&Fx Ta \&No Ta \&No Ta Tn "FreeBSD operating system" -.It Li \&Ec Ta Yes Ta Yes Ta "¥¨¥ó¥¯¥í¡¼¥ºÊ¸»úÎó°úÍѤÎÊĤ¸" -.It Li \&Ef Ta \&No Ta \&No Ta "¥Õ¥©¥ó¥È¥â¡¼¥É¤Î½ªÎ»" -.It Li \&Em Ta Yes Ta Yes Ta "¶¯Ä´ (traditional English)." -.It Li \&Eo Ta Yes Ta Yes Ta "¥¨¥ó¥¯¥í¡¼¥ºÊ¸»úÎó°úÍѤ㫤­" +.It Li \&Ec Ta Yes Ta Yes Ta "エンクローズ文字列引用の閉じ" +.It Li \&Ef Ta \&No Ta \&No Ta "フォントモードの終了" +.It Li \&Em Ta Yes Ta Yes Ta "強調 (traditional English)." +.It Li \&Eo Ta Yes Ta Yes Ta "エンクローズ文字列引用の開き" .It Li \&Fx Ta \&No Ta \&No Ta Tn "FreeBSD operating system" .\"O .It Li \&No Ta Yes Ta Yes Ta "Normal text (no-op)." .\"O .It Li \&Ns Ta Yes Ta Yes Ta "No space." .\"O .It Li \&Pc Ta Yes Ta Yes Ta "Parenthesis close quote." .\"O .It Li \&Pf Ta Yes Ta \&No Ta "Prefix string." .\"O .It Li \&Po Ta Yes Ta Yes Ta "Parenthesis open quote." -.It Li \&No Ta Yes Ta Yes Ta "Ä̾ï¤Î¥Æ¥­¥¹¥È (¸ú²Ì¤Ê¤·)" -.It Li \&Ns Ta Yes Ta Yes Ta "¥¹¥Ú¡¼¥¹Ìµ¤·" -.It Li \&Pc Ta Yes Ta Yes Ta "³ç¸Ì¥¯¥©¡¼¥È¤ÎÊĤ¸" -.It Li \&Pf Ta Yes Ta \&No Ta "Á°ÃÖʸ»ú" -.It Li \&Po Ta Yes Ta Yes Ta "³ç¸Ì¥¯¥©¡¼¥È¤Î³«¤­" +.It Li \&No Ta Yes Ta Yes Ta "通常のテキスト (効果なし)" +.It Li \&Ns Ta Yes Ta Yes Ta "スペース無し" +.It Li \&Pc Ta Yes Ta Yes Ta "括弧クォートの閉じ" +.It Li \&Pf Ta Yes Ta \&No Ta "前置文字" +.It Li \&Po Ta Yes Ta Yes Ta "括弧クォートの開き" .\"O .It Li \&Pq Ta Yes Ta Yes Ta "Parentheses quote." .\"O .It Li \&Qc Ta Yes Ta Yes Ta "Straight Double close quote." .\"O .It Li \&Ql Ta Yes Ta Yes Ta "Quoted literal." .\"O .It Li \&Qo Ta Yes Ta Yes Ta "Straight Double open quote." .\"O .It Li \&Qq Ta Yes Ta Yes Ta "Straight Double quote." -.It Li \&Pq Ta Yes Ta Yes Ta "³ç¸Ì¥¯¥©¡¼¥È" -.It Li \&Qc Ta Yes Ta Yes Ta "¥À¥Ö¥ë¥¹¥È¥ì¡¼¥È¥¯¥©¡¼¥È¤ÎÊĤ¸" -.It Li \&Ql Ta Yes Ta Yes Ta "¥¯¥©¡¼¥È¤µ¤ì¤¿¥ê¥Æ¥é¥ë" -.It Li \&Qo Ta Yes Ta Yes Ta "¥À¥Ö¥ë¥¹¥È¥ì¡¼¥È¥¯¥©¡¼¥È¤ÎÊĤ¸" -.It Li \&Qq Ta Yes Ta Yes Ta "¥À¥Ö¥ë¥¹¥È¥ì¡¼¥È¥¯¥©¡¼¥È¤ÎÊĤ¸" +.It Li \&Pq Ta Yes Ta Yes Ta "括弧クォート" +.It Li \&Qc Ta Yes Ta Yes Ta "ダブルストレートクォートの閉じ" +.It Li \&Ql Ta Yes Ta Yes Ta "クォートされたリテラル" +.It Li \&Qo Ta Yes Ta Yes Ta "ダブルストレートクォートの閉じ" +.It Li \&Qq Ta Yes Ta Yes Ta "ダブルストレートクォートの閉じ" .\"O .It Li \&Re Ta \&No Ta \&No Ta "Reference end." .\"O .It Li \&Rs Ta \&No Ta \&No Ta "Reference start." .\"O .It Li \&Rv Ta \&No Ta \&No Ta "Return values (sections two and three only)." .\"O .It Li \&Sc Ta Yes Ta Yes Ta "Single close quote." .\"O .It Li \&So Ta Yes Ta Yes Ta "Single open quote." -.It Li \&Re Ta \&No Ta \&No Ta "»²¹Íʸ¸¥¤Î½ªÎ»" -.It Li \&Rs Ta \&No Ta \&No Ta "»²¹Íʸ¸¥¤Î³«»Ï" -.It Li \&Rv Ta \&No Ta \&No Ta "ÊÖ¤êÃÍ (¥»¥¯¥·¥ç¥ó 2, 3 ¤Î¤ß)" -.It Li \&Sc Ta Yes Ta Yes Ta "¥·¥ó¥°¥ë¥¯¥©¡¼¥È¤ÎÊĤ¸" -.It Li \&So Ta Yes Ta Yes Ta "¥·¥ó¥°¥ë¥¯¥©¡¼¥È¤Î³«¤­" +.It Li \&Re Ta \&No Ta \&No Ta "参考文献の終了" +.It Li \&Rs Ta \&No Ta \&No Ta "参考文献の開始" +.It Li \&Rv Ta \&No Ta \&No Ta "返り値 (セクション 2, 3 のみ)" +.It Li \&Sc Ta Yes Ta Yes Ta "シングルクォートの閉じ" +.It Li \&So Ta Yes Ta Yes Ta "シングルクォートの開き" .\"O .It Li \&Sq Ta Yes Ta Yes Ta "Single quote." .\"O .It Li \&Sm Ta \&No Ta \&No Ta "Space mode (default is \\*qon\\*q)" .\"O .It Li \&Sx Ta Yes Ta Yes Ta "Section Cross Reference." .\"O .It Li \&Sy Ta Yes Ta Yes Ta "Symbolic (traditional English)." .\"O .It Li \&Tn Ta Yes Ta Yes Ta "Trade or type name (small Caps)." -.It Li \&Sq Ta Yes Ta Yes Ta "¥·¥ó¥°¥ë¥¯¥©¡¼¥È" -.It Li \&Sm Ta \&No Ta \&No Ta "¥¹¥Ú¡¼¥¹¥â¡¼¥É (¥Ç¥Õ¥©¥ë¥È¤Ï \\*qon\\*q)" -.It Li \&Sx Ta Yes Ta Yes Ta "¥»¥¯¥·¥ç¥ó¤ÎÁê¸ß»²¾È" -.It Li \&Sy Ta Yes Ta Yes Ta "¥·¥ó¥Ü¥ê¥Ã¥¯ (traditional English)." -.It Li \&Tn Ta Yes Ta Yes Ta "Trade ¤Þ¤¿¤Ï·¿Ì¾ (small Caps)." +.It Li \&Sq Ta Yes Ta Yes Ta "シングルクォート" +.It Li \&Sm Ta \&No Ta \&No Ta "スペースモード (デフォルトは \\*qon\\*q)" +.It Li \&Sx Ta Yes Ta Yes Ta "セクションの相互参照" +.It Li \&Sy Ta Yes Ta Yes Ta "シンボリック (traditional English)." +.It Li \&Tn Ta Yes Ta Yes Ta "Trade または型名 (small Caps)." .\"O .It Li \&Ux Ta Yes Ta Yes Ta Ux .\"O .It Li \&Xc Ta Yes Ta Yes Ta "Extend argument list close." .\"O .It Li \&Xo Ta Yes Ta Yes Ta "Extend argument list open." .It Li \&Ux Ta Yes Ta Yes Ta Ux -.It Li \&Xc Ta Yes Ta Yes Ta "³ÈÄ¥°ú¿ô¥ê¥¹¥È¤ÎÊĤ¸" -.It Li \&Xo Ta Yes Ta Yes Ta "³ÈÄ¥°ú¿ô¥ê¥¹¥È¤Î³«¤­" +.It Li \&Xc Ta Yes Ta Yes Ta "拡張引数リストの閉じ" +.It Li \&Xo Ta Yes Ta Yes Ta "拡張引数リストの開き" .El .\" .It Sy \&Hf Ta \&No Ta \&No Ta "Include file with header" .Pp @@ -627,13 +627,13 @@ man .\"O Enclosure macros may be nested and are limited to .\"O eight arguments. .Ql q -¤Ç½ª¤ï¤ë̾Á°¤Î¥Þ¥¯¥í¤Ï¡¢°ú¿ô¥ê¥¹¥È¤Î»Ä¤ê¤Î¹àÌܤò¥¯¥©¡¼¥È¤¹¤ë¡£ +で終わる名前のマクロは、引数リストの残りの項目をクォートする。 .Ql o -¤Ç½ª¤ï¤ë̾Á°¤Î¥Þ¥¯¥í¤Ï°ì¹Ô°Ê¾å¤Ë¤ï¤¿¤ëÆþÎϤΥ¯¥©¡¼¥È¤ò³«»Ï¤·¡¢ -¤³¤ì¤ÏÂбþ¤¹¤ë̾Á°¤Î +で終わる名前のマクロは一行以上にわたる入力のクォートを開始し、 +これは対応する名前の .Ql c -¤Ç¤ª¤ï¤ë̾Á°¤Î¥Þ¥¯¥í¤Ç½ªÎ»¤¹¤ë¡£ -°Ï¤ß¥Þ¥¯¥í¤Ï¥Í¥¹¥È¤Ç¤­¡¢°ú¿ô¤Ï 8 ¤Ä¤Þ¤Ç¼è¤ì¤ë¡£ +でおわる名前のマクロで終了する。 +囲みマクロはネストでき、引数は 8 つまで取れる。 .Pp .\"O Note: the extended argument list macros .\"O .Pf ( Ql \&.Xo , @@ -646,65 +646,65 @@ man .\"O would exceed the .\"O .Xr troff .\"O limitation of nine arguments. -Ãí°Õ: ³ÈÄ¥°ú¿ô¥ê¥¹¥È¥Þ¥¯¥í +注意: 拡張引数リストマクロ .Pf ( Ql \&.Xo , .Ql \&.Xc ) -¤ª¤è¤Ó´Ø¿ô¤Î°Ï¤ß¥Þ¥¯¥í +および関数の囲みマクロ .Pf ( Ql \&.Fo , .Ql \&.Fc ) -¤ÏÊѧ¤Ç¤¢¤ë¡£ -³ÈÄ¥¥ê¥¹¥È¥Þ¥¯¥í¤Ï¥Þ¥¯¥í¤Î°ú¿ô¤¬ +は変則である。 +拡張リストマクロはマクロの引数が .Xr troff -¤ÎÀ©¸Â¤Ç¤¢¤ë 9 ¸Ä¤ò±Û¤¨¤ë¤È¤­¤ËÍѤ¤¤é¤ì¤ë¡£ +の制限である 9 個を越えるときに用いられる。 .Pp .\"O The macros UR (starting a URI/URL hypertext reference), UE (ending one), .\"O and UN (identifying a target for a reference) are also available. .\"O See .\"O .Xr man 7 .\"O for more information on these macros. -UR ¥Þ¥¯¥í (URI/URL ¥Ï¥¤¥Ñ¡¼¥Æ¥­¥¹¥È»²¾È¤Î³«»Ï), UE ¥Þ¥¯¥í (½ªÎ»), -UN ¥Þ¥¯¥í (»²¾ÈÍÑ¥¿¡¼¥²¥Ã¥È¤Î»ØÄê) ¤âÍøÍѤǤ­¤ë¡£ -¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ë´Ø¤¹¤ë¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï +UR マクロ (URI/URL ハイパーテキスト参照の開始), UE マクロ (終了), +UN マクロ (参照用ターゲットの指定) も利用できる。 +これらのマクロに関するより詳しい情報は .Xr man 7 -¤ò¸«¤è¡£ +を見よ。 .\" The following does not apply on Linux: .\"O .\".Sh CONFIGURATION .\"O .\"For site specific configuration of the macro package, .\"O .\"see the file .\"O .\".Pa /usr/src/share/tmac/README . -.\".Sh ÀßÄê -.\"¥µ¥¤¥ÈÆÃÍ­¤Î¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸¤ÎÀßÄê¤Ë´Ø¤·¤Æ¤Ï¡¢ +.\".Sh 設定 +.\"サイト特有のマクロパッケージの設定に関しては、 .\".Pa /usr/src/share/tmac/README -.\"¥Õ¥¡¥¤¥ë¤ò¸«¤è¡£ +.\"ファイルを見よ。 .\"O .Sh FILES -.Sh ¥Õ¥¡¥¤¥ë +.Sh ファイル .Bl -tag -width "tmac.doc-ditroff" -compact .It Pa doc.tmac .\"O Manual and general text domain macros. -¥Þ¥Ë¥å¥¢¥ë¥É¥á¥¤¥ó¥Þ¥¯¥í¤È°ìÈ̥ƥ­¥¹¥È¥É¥á¥¤¥ó¥Þ¥¯¥í¡£ +マニュアルドメインマクロと一般テキストドメインマクロ。 .It Pa tmac/doc-common .\"O Common structural macros and definitions. -¶¦Ä̤ι½Â¤¥Þ¥¯¥í¤ÈÄêµÁ¡£ +共通の構造マクロと定義。 .It Pa tmac/doc-nroff .\"O Site dependent .\"O .Xr nroff .\"O style file. -¥µ¥¤¥È°Í¸¤Î +サイト依存の .Xr nroff -¥¹¥¿¥¤¥ë¥Õ¥¡¥¤¥ë¡£ +スタイルファイル。 .It Pa tmac/doc-ditroff .\"O Site dependent .\"O .Xr troff .\"O style file. -¥µ¥¤¥È°Í¸¤Î +サイト依存の .Xr troff -¥¹¥¿¥¤¥ë¥Õ¥¡¥¤¥ë¡£ +スタイルファイル。 .It Pa tmac/doc-syms .\"O Special defines (such as the standards macro). -ÆüìÄêµÁ (ɸ½à¥Þ¥¯¥í¤Ê¤É)¡£ +特殊定義 (標準マクロなど)。 .El .\"O .Sh "SEE ALSO" -.Sh ´ØÏ¢¹àÌÜ +.Sh 関連項目 .Xr groff_mdoc 7 , .Xr mdoc.samples 7 , .Xr man 7 , diff --git a/draft/man7/mq_overview.7 b/draft/man7/mq_overview.7 index 2c9b3fdb..ebdbb1f5 100644 --- a/draft/man7/mq_overview.7 +++ b/draft/man7/mq_overview.7 @@ -29,16 +29,16 @@ .\" Updated 2009-02-23, Akihiro MOTOKI , LDP v3.19 .\" Updated 2010-04-11, Akihiro MOTOKI , LDP v3.24 .\" -.\"WORD: message queue descriptor ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò»Ò -.\"WORD: message queue description ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò +.\"WORD: message queue descriptor メッセージキュー記述子 +.\"WORD: message queue description メッセージキュー記述 .\" .TH MQ_OVERVIEW 7 2009-09-27 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O mq_overview \- Overview of POSIX message queues -mq_overview \- POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î³µÍ× +mq_overview \- POSIX メッセージキューの概要 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O POSIX message queues allow processes to exchange data in .\"O the form of messages. .\"O This API is distinct from that provided by System V message queues @@ -46,13 +46,13 @@ mq_overview \- POSIX .\"O .BR msgsnd (2), .\"O .BR msgrcv (2), .\"O etc.), but provides similar functionality. -POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤ò»ÈÍѤ¹¤ë¤È¡¢¥×¥í¥»¥¹´Ö¤Ç -¥á¥Ã¥»¡¼¥¸¤Î·Á¤Ç¤Î¥Ç¡¼¥¿¤Î¤ä¤ê¼è¤ê¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î API ¤Ï System V ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î API +POSIX メッセージキューを使用すると、プロセス間で +メッセージの形でのデータのやり取りを行うことができる。 +この API は System V メッセージキューの API .RB ( msgget (2), .BR msgsnd (2), .BR msgrcv (2) -¤Ê¤É) ¤È¤Ï°Û¤Ê¤ë¤â¤Î¤À¤¬¡¢Æ±Íͤε¡Ç½¤òÄ󶡤¹¤ë¡£ +など) とは異なるものだが、同様の機能を提供する。 .\"O Message queues are created and opened using .\"O .BR mq_open (3); @@ -66,26 +66,26 @@ POSIX .\"O .BI NAME_MAX .\"O (i.e., 255) characters consisting of an initial slash, .\"O followed by one or more characters, none of which are slashes. -¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤ÎºîÀ®¤È¥ª¡¼¥×¥ó¤Ï +メッセージキューの作成とオープンは .BR mq_open (3) -¤ò»È¤Ã¤Æ¹Ô¤¦¡£¤³¤Î´Ø¿ô¤Ï -.I ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò»Ò (message queue descriptor) +を使って行う。この関数は +.I メッセージキュー記述子 (message queue descriptor) .RI ( mqd_t ) -¤òÊÖ¤¹¡£¤³¤ì°Ê¹ß¤Î¥³¡¼¥ë¤Ç¤Ï¡¢¥ª¡¼¥×¥ó¤µ¤ì¤¿¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ï -.I ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò»Ò -¤ò»È¤Ã¤Æ»²¾È¤µ¤ì¤ë¡£ -³Æ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ï +を返す。これ以降のコールでは、オープンされたメッセージキューは +.I メッセージキュー記述子 +を使って参照される。 +各メッセージキューは .I /somename -¤Î·Á¤Î̾Á°¤Ç¶èÊ̤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤½¤Î̾Á°¤Ï¡¢ºÇÂç¤Ç +の形の名前で区別することができる。 +その名前は、最大で .B NAME_MAX -(¤¹¤Ê¤ï¤Á 255) ʸ»ú¤Î NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ç¡¢ -¥¹¥é¥Ã¥·¥å¤Ç»Ï¤Þ¤ê¡¢¥¹¥é¥Ã¥·¥å°Ê³°¤Îʸ»ú¤¬ 1 ʸ»ú°Ê¾å³¤¯·Á¼°¤Ç¤¢¤ë¡£ +(すなわち 255) 文字の NULL 終端された文字列で、 +スラッシュで始まり、スラッシュ以外の文字が 1 文字以上続く形式である。 .\"O Two processes can operate on the same queue by passing the same name to .\"O .BR mq_open (3). .BR mq_open (3) -¤ËƱ¤¸Ì¾Á°¤òÅϤ¹¤³¤È¤Ç¡¢2¤Ä¤Î¥×¥í¥»¥¹¤ÇƱ°ì¤Î¥­¥å¡¼¤ò -Áàºî¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +に同じ名前を渡すことで、2つのプロセスで同一のキューを +操作することができる。 .\"O Messages are transferred to and from a queue using .\"O .BR mq_send (3) @@ -102,22 +102,22 @@ POSIX .\"O A process can request asynchronous notification .\"O of the arrival of a message on a previously empty queue using .\"O .BR mq_notify (3). -¥á¥Ã¥»¡¼¥¸¤Î¥­¥å¡¼¤Ø¤ÎÁ÷¼õ¿®¤Ï +メッセージのキューへの送受信は .BR mq_send (3) -¤È +と .BR mq_receive (3) -¤ò»È¤Ã¤Æ¹Ô¤¦¡£¥×¥í¥»¥¹¤¬¥­¥å¡¼¤Î»ÈÍѤò½ª¤¨¤ë¤È¤­¤Ë¤Ï¡¢ +を使って行う。プロセスがキューの使用を終えるときには、 .BR mq_close (3) -¤ò»È¤Ã¤Æ¥­¥å¡¼¤ò¥¯¥í¡¼¥º¤¹¤ë¡£¥­¥å¡¼¤¬¤â¤Ï¤äÉÔÍפȤʤ俾ì¹ç¤Ë¤Ï¡¢ +を使ってキューをクローズする。キューがもはや不要となった場合には、 .BR mq_unlink (3) -¤ò»È¤Ã¤Æ¥­¥å¡¼¤òºï½ü¤Ç¤­¤ë¡£¥­¥å¡¼¤Î°À­¤Ï +を使ってキューを削除できる。キューの属性は .BR mq_getattr (3) -¤Ç¼èÆÀ¤Ç¤­¡¢ (À©¸Â¤Ï¤¢¤ë¤¬) +で取得でき、 (制限はあるが) .BR mq_setattr (3) -¤ÇÊѹ¹¤Ç¤­¤ë¡£ +で変更できる。 .BR mq_notify (3) -¤ò»È¤¦¤³¤È¤Ç¡¢¶õ¤Î¥­¥å¡¼¤Ø¤Î¥á¥Ã¥»¡¼¥¸ÅþÃå¤òÈóƱ´ü¤Ç -ÄÌÃΤ¹¤ë¤è¤¦¤ËÍ׵᤹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +を使うことで、空のキューへのメッセージ到着を非同期で +通知するように要求することもできる。 .\"O A message queue descriptor is a reference to an .\"O .I "open message queue description" @@ -131,18 +131,18 @@ POSIX .\"O Corresponding descriptors in the two processes share the flags .\"O .RI ( mq_flags ) .\"O that are associated with the open message queue description. -¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò»Ò¤Ï -.I "¥ª¡¼¥×¥ó¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò (open message queue description)" -¤Ø¤Î»²¾È¤Ç¤¢¤ë +メッセージキュー記述子は +.I "オープンメッセージキュー記述 (open message queue description)" +への参照である .RB ( open (2) -¤â»²¾È)¡£ +も参照)。 .BR fork (2) -¼Â¹Ô¸å¤Ï¡¢»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò»Ò¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£ -¤³¤ì¤é¤Îµ­½Ò»Ò¤Ï¡¢¿Æ¥×¥í¥»¥¹¤ÎÂбþ¤¹¤ëµ­½Ò»Ò¤ÈƱ¤¸¥ª¡¼¥×¥ó¥á¥Ã¥»¡¼¥¸¥­¥å¡¼ -µ­½Ò¤ò»²¾È¤·¤Æ¤¤¤ë¡£¿Æ¥×¥í¥»¥¹¤È»Ò¥×¥í¥»¥¹¤ÎÂбþ¤¹¤ëµ­½Ò»Ò¤Ï¡¢¥Õ¥é¥° +実行後は、子プロセスは親プロセスのメッセージキュー記述子のコピーを継承する。 +これらの記述子は、親プロセスの対応する記述子と同じオープンメッセージキュー +記述を参照している。親プロセスと子プロセスの対応する記述子は、フラグ .RI ( mq_flags ) -¤ò¶¦Í­¤¹¤ë¡£¤Ê¤¼¤Ê¤é¡¢¥Õ¥é¥°¤Ï¥ª¡¼¥×¥ó¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò¤Ë -´ØÏ¢ÉÕ¤±¤é¤ì¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£ +を共有する。なぜなら、フラグはオープンメッセージキュー記述に +関連付けられているからである。 .\"O Each message has an associated .\"O .IR priority , @@ -156,36 +156,36 @@ POSIX .\"O returns 32768, but POSIX.1-2001 only requires .\"O an implementation to support priorities in the range 0 to 31; .\"O some implementations only provide this range. -³Æ¥á¥Ã¥»¡¼¥¸¤Ë¤Ï¤½¤ì¤¾¤ì -.I Í¥ÀèÅÙ (priority) -¤¬¤¢¤ê¡¢¥á¥Ã¥»¡¼¥¸¤Î¼õ¿®¥×¥í¥»¥¹¤Ø¤ÎÇÛÁ÷¤Ï¾ï¤Ë -Í¥ÀèÅ٤ι⤤¥á¥Ã¥»¡¼¥¸¤«¤é½ç¤Ë¹Ô¤ï¤ì¤ë¡£ -¥á¥Ã¥»¡¼¥¸¤ÎÍ¥ÀèÅÙ¤Ï 0 (ÄãÍ¥Àè) ¤«¤é +各メッセージにはそれぞれ +.I 優先度 (priority) +があり、メッセージの受信プロセスへの配送は常に +優先度の高いメッセージから順に行われる。 +メッセージの優先度は 0 (低優先) から .I sysconf(_SC_MQ_PRIO_MAX)\ -\ 1 -(¹âÍ¥Àè) ¤ÎÃͤò»ý¤Ä¡£ -Linux ¤Ç¤Ï¡¢ +(高優先) の値を持つ。 +Linux では、 .I sysconf(_SC_MQ_PRIO_MAX) -¤Ï 32768 ¤òÊÖ¤¹¤¬¡¢ -POSIX.1-2001 ¤ÇÍ׵ᤵ¤ì¤Æ¤¤¤ë¤Î¤Ï 0 ¤«¤é 31 ¤Þ¤Ç¤ÎÍ¥ÀèÅÙ¤ò -¼ÂÁõ¤¹¤ë¤³¤È¤À¤±¤Ç¤¢¤ê¡¢¼ÂÁõ¤Ë¤è¤Ã¤Æ¤Ï¤³¤ÎÈϰϤÎÍ¥ÀèÅÙ¤·¤« -Âбþ¤·¤Æ¤¤¤Ê¤¤¡£ +は 32768 を返すが、 +POSIX.1-2001 で要求されているのは 0 から 31 までの優先度を +実装することだけであり、実装によってはこの範囲の優先度しか +対応していない。 .PP .\"O The remainder of this section describes some specific details .\"O of the Linux implementation of POSIX message queues. -¤³¤ÎÀá¤Î»Ä¤ê¤Ç¤Ï¡¢POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î Linux ¤Î¼ÂÁõ¤Î¾ÜºÙ -¤Ë¤Ä¤¤¤ÆÀâÌÀ¤¹¤ë¡£ +この節の残りでは、POSIX メッセージキューの Linux の実装の詳細 +について説明する。 .\"O .SS Library interfaces and system calls -.SS ¥é¥¤¥Ö¥é¥ê¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤È¥·¥¹¥Æ¥à¥³¡¼¥ë +.SS ライブラリインタフェースとシステムコール .\"O In most cases the .\"O .B mq_*() .\"O library interfaces listed above are implemented .\"O on top of underlying system calls of the same name. .\"O Deviations from this scheme are indicated in the following table: -¤Û¤È¤ó¤É¤Î¾ì¹ç¡¢¾åµ­¤Î +ほとんどの場合、上記の .B mq_*() -¥é¥¤¥Ö¥é¥ê¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¡¢Æ±¤¸Ì¾Á°¤Î²¼°ÌÁؤΥ·¥¹¥Æ¥à¥³¡¼¥ë¤ò -»È¤Ã¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£¤³¤ÎÏÈÁȤߤˤ¢¤Æ¤Ï¤Þ¤é¤Ê¤¤¤â¤Î¤ò -°Ê²¼¤Îɽ¤Ë¼¨¤¹¡£ +ライブラリインタフェースは、同じ名前の下位層のシステムコールを +使って実装されている。この枠組みにあてはまらないものを +以下の表に示す。 .in +4n .TS lB lB @@ -204,48 +204,48 @@ mq_unlink(3) mq_unlink(2) .TE .in .\"O .SS Versions -.SS ¥Ð¡¼¥¸¥ç¥ó +.SS バージョン .\"O POSIX message queues have been supported on Linux since kernel 2.6.6. .\"O Glibc support has been provided since version 2.3.4. -Linux ¤Ç¤Ï POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ï¥«¡¼¥Í¥ë 2.6.6 °Ê¹ß¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -glibc ¤Ç¤Ï¥Ð¡¼¥¸¥ç¥ó 2.3.4 °Ê¹ß¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +Linux では POSIX メッセージキューはカーネル 2.6.6 以降でサポートされている。 +glibc ではバージョン 2.3.4 以降でサポートされている。 .\"O .SS Kernel configuration -.SS ¥«¡¼¥Í¥ë¤ÎÀßÄê +.SS カーネルの設定 .\"O Support for POSIX message queues is configurable via the .\"O .B CONFIG_POSIX_MQUEUE .\"O kernel configuration option. .\"O This option is enabled by default. -POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î¥µ¥Ý¡¼¥È¤Ï¡¢¥«¡¼¥Í¥ë¤ÎÀßÄê (configuration) -¥ª¥×¥·¥ç¥ó +POSIX メッセージキューのサポートは、カーネルの設定 (configuration) +オプション .B CONFIG_POSIX_MQUEUE -¤ÇÀßÄê²Äǽ¤Ç¤¢¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤ÏÍ­¸ú¤Ç¤¢¤ë¡£ +で設定可能である。このオプションはデフォルトでは有効である。 .\"O .SS Persistence -.SS »ý³À­ +.SS 持続性 .\"O POSIX message queues have kernel persistence: .\"O if not removed by .\"O .BR mq_unlink (3), .\"O a message queue will exist until the system is shut down. -POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ï¥«¡¼¥Í¥ëÆâ¤ÇÊÝ»ý¤µ¤ì¤ë¡£ +POSIX メッセージキューはカーネル内で保持される。 .BR mq_unlink (3) -¤Çºï½ü¤µ¤ì¤Ê¤±¤ì¤Ð¡¢¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ï -¥·¥¹¥Æ¥à¤¬¥·¥ã¥Ã¥È¥À¥¦¥ó¤µ¤ì¤ë¤Þ¤Ç¸ºß¤·Â³¤±¤ë¡£ +で削除されなければ、メッセージキューは +システムがシャットダウンされるまで存在し続ける。 .\"O .SS Linking -.SS ¥ê¥ó¥¯ +.SS リンク .\"O Programs using the POSIX message queue API must be compiled with .\"O .I cc \-lrt .\"O to link against the real-time library, .\"O .IR librt . -POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼ API ¤ò»ÈÍѤ·¤¿¥×¥í¥°¥é¥à¤Ï +POSIX メッセージキュー API を使用したプログラムは .I cc \-lrt -¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¡¢¥ê¥¢¥ë¥¿¥¤¥à¥é¥¤¥Ö¥é¥ê +でコンパイルし、リアルタイムライブラリ .I librt -¤È¥ê¥ó¥¯¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +とリンクしなければならない。 .\"O .SS /proc interfaces -.SS /proc ¥¤¥ó¥¿¥Õ¥§¡¼¥¹ +.SS /proc インタフェース .\"O The following interfaces can be used to limit the amount of .\"O kernel memory consumed by POSIX message queues: -°Ê²¼¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò»È¤Ã¤Æ¡¢POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤¬¾ÃÈñ¤¹¤ë¥«¡¼¥Í¥ë -¥á¥â¥ê¤ÎÎ̤òÀ©¸Â¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +以下のインタフェースを使って、POSIX メッセージキューが消費するカーネル +メモリの量を制限することができる。 .TP .I /proc/sys/fs/mqueue/msg_max .\"O This file can be used to view and change the ceiling value for the @@ -267,24 +267,24 @@ POSIX .\"O but the .\"O .B HARD_MAX .\"O ceiling is nevertheless imposed. -¤³¤Î¥Õ¥¡¥¤¥ë¤ò»È¤Ã¤Æ¡¢°ì¤Ä¤Î¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤ë¥á¥Ã¥»¡¼¥¸¤ÎºÇÂç¿ô¤Î -¾å¸ÂÃͤò»²¾È¤·¤¿¤êÊѹ¹¤·¤¿¤ê¤Ç¤­¤ë¡£¤³¤ÎÃͤϡ¢ +このファイルを使って、一つのキューに入れられるメッセージの最大数の +上限値を参照したり変更したりできる。この値は、 .BR mq_open (3) -¤ËÅϤ¹ +に渡す .I attr\->mq_maxmsg -°ú¤­¿ô¤ËÂФ¹¤ë¾å¸ÂÃͤȤ·¤Æµ¡Ç½¤¹¤ë¡£ +引き数に対する上限値として機能する。 .I msg_max -¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 10 ¤Ç¡¢ -ºÇ¾®ÃÍ¤Ï 1 (2.6.28 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï 10) ¤Ç¤¢¤ë¡£ -¾å¸Â¤Ï¡ÖËä¤á¹þ¤ß¤Î¸ÇÄêÃÍ¡× +のデフォルト値は 10 で、 +最小値は 1 (2.6.28 より前のカーネルでは 10) である。 +上限は「埋め込みの固定値」 .RB ( HARD_MAX ) -¤Ç +で .IR "(131072\ /\ sizeof(void\ *))" -(Linux/86 ¤Ç¤Ï 32768) ¤Ç¤¢¤ë¡£ -¤³¤Î¾å¸Â¤ÏÆø¢¥×¥í¥»¥¹ +(Linux/86 では 32768) である。 +この上限は特権プロセス .RB ( CAP_SYS_RESOURCE ) -¤Ç¤Ï̵»ë¤µ¤ì¤ë¤¬¡¢Ëä¤á¹þ¤ß¤Î¸ÇÄêÃͤˤè¤ë¾å¸Â¤Ï -¤É¤ó¤Ê¾ì¹ç¤Ë¤Ç¤âŬÍѤµ¤ì¤ë¡£ +では無視されるが、埋め込みの固定値による上限は +どんな場合にでも適用される。 .TP .I /proc/sys/fs/mqueue/msgsize_max .\"O This file can be used to view and change the ceiling on the @@ -304,24 +304,24 @@ POSIX .\"O that is, 2,147,483,647 on Linux/86). .\"O This limit is ignored for privileged processes .\"O .RB ( CAP_SYS_RESOURCE ). -¤³¤Î¥Õ¥¡¥¤¥ë¤ò»È¤Ã¤Æ¡¢¥á¥Ã¥»¡¼¥¸¤ÎºÇÂ祵¥¤¥º¤Î¾å¸ÂÃͤò -»²¾È¤·¤¿¤êÊѹ¹¤·¤¿¤ê¤Ç¤­¤ë¡£ -¤³¤ÎÃͤϡ¢ +このファイルを使って、メッセージの最大サイズの上限値を +参照したり変更したりできる。 +この値は、 .BR mq_open (3) -¤ËÅϤ¹ +に渡す .I attr\->mq_msgsize -°ú¤­¿ô¤ËÂФ¹¤ë¾å¸ÂÃͤȤ·¤Æµ¡Ç½¤¹¤ë¡£ +引き数に対する上限値として機能する。 .I msgsize_max -¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 8192 ¥Ð¥¤¥È¤Ç¡¢ -ºÇ¾®ÃÍ¤Ï 128 (2.6.28 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï 8192) ¤Ç¤¢¤ë¡£ +のデフォルト値は 8192 バイトで、 +最小値は 128 (2.6.28 より前のカーネルでは 8192) である。 .I msgsize_max -¤Î¾å¸Â¤Ï 1,048,576 ¤Ç¤¢¤ë -(2.6.28 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¾å¸Â¤Ï +の上限は 1,048,576 である +(2.6.28 より前のカーネルでは、上限は .B INT_MAX -(Linux/86 ¤Ç¤Ï 2,147,483,647) ¤Ç¤¢¤Ã¤¿)¡£ -¤³¤Î¾å¸Â¤ÏÆø¢¥×¥í¥»¥¹ +(Linux/86 では 2,147,483,647) であった)。 +この上限は特権プロセス .RB ( CAP_SYS_RESOURCE ) -¤Ç¤Ï̵»ë¤µ¤ì¤ë¡£ +では無視される。 .TP .I /proc/sys/fs/mqueue/queues_max .\"O This file can be used to view and change the system-wide limit on the @@ -332,41 +332,41 @@ POSIX .\"O The default value for .\"O .I queues_max .\"O is 256; it can be changed to any value in the range 0 to INT_MAX. -¤³¤Î¥Õ¥¡¥¤¥ë¤ò»È¤Ã¤Æ¡¢ºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î¿ô¤Ë -ÂФ¹¤ë¥·¥¹¥Æ¥àÁ´ÂΤǤÎÀ©¸Â¤ò»²¾È¤·¤¿¤êÊѹ¹¤·¤¿¤ê¤Ç¤­¤ë¡£ -°ìÅÙ¤³¤Î¾å¸Â¤Ë㤹¤ë¤È¡¢¿·¤·¤¤¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤òºîÀ®¤Ç¤­¤ë¤Î¤Ï -Æø¢¥×¥í¥»¥¹ +このファイルを使って、作成することができるメッセージキューの数に +対するシステム全体での制限を参照したり変更したりできる。 +一度この上限に達すると、新しいメッセージキューを作成できるのは +特権プロセス .RB ( CAP_SYS_RESOURCE ) -¤À¤±¤È¤Ê¤ë¡£ +だけとなる。 .I queues_max -¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 256 ¤Ç¤¢¤ê¡¢ -0 ¤«¤é INT_MAX ¤ÎÈϰϤÎǤ°Õ¤ÎÃͤËÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +のデフォルト値は 256 であり、 +0 から INT_MAX の範囲の任意の値に変更することができる。 .\"O .SS Resource limit -.SS ¥ê¥½¡¼¥¹À©¸Â +.SS リソース制限 .\"O The .\"O .B RLIMIT_MSGQUEUE .\"O resource limit, which places a limit on the amount of space .\"O that can be consumed by all of the message queues .\"O belonging to a process's real user ID, is described in .\"O .BR getrlimit (2). -¥ê¥½¡¼¥¹¾å¸Â +リソース上限 .B RLIMIT_MSGQUEUE -¤Ï¡¢¥×¥í¥»¥¹¤Î¼Â UID ¤ËÂбþ¤¹¤ëÁ´¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤¬¾ÃÈñ¤¹¤ë -¥á¥â¥ê¶õ´Ö¤ÎÎ̤ËÂФ·¤Æ¾å¸Â¤òÀßÄꤹ¤ë¡£ +は、プロセスの実 UID に対応する全メッセージキューが消費する +メモリ空間の量に対して上限を設定する。 .BR getrlimit (2) -¤ò»²¾È¡£ +を参照。 .\"O .SS Mounting the message queue file system -.SS ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¡¦¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Þ¥¦¥ó¥È +.SS メッセージキュー・ファイルシステムのマウント .\"O On Linux, message queues are created in a virtual file system. .\"O (Other implementations may also provide such a feature, .\"O but the details are likely to differ.) .\"O This file system can be mounted (by the superuser) using the following .\"O commands: -Linux ¤Ç¤Ï¡¢¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ï²¾ÁÛ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÆâ¤ËºîÀ®¤µ¤ì¤ë -(¾¤Î¼ÂÁõ¤Ç¤âƱÍͤε¡Ç½¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¤â¤Î¤â¤¢¤ë¤¬¡¢ -¾ÜºÙ¤Ï°ã¤Ã¤Æ¤¤¤ë¤À¤í¤¦)¡£ -°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò»È¤¦¤³¤È¤Ç (¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ï) -¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥Þ¥¦¥ó¥È¤Ç¤­¤ë: +Linux では、メッセージキューは仮想ファイルシステム内に作成される +(他の実装でも同様の機能が提供されているものもあるが、 +詳細は違っているだろう)。 +以下のコマンドを使うことで (スーパーユーザは) +このファイルシステムをマウントできる: .in +4n .nf @@ -376,8 +376,8 @@ Linux .fi .in .\"O The sticky bit is automatically enabled on the mount directory. -¥Þ¥¦¥ó¥È¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Î¥¹¥Æ¥£¥Ã¥­¡¼¥Ó¥Ã¥È (sticky bit) ¤Ï -¼«Æ°Åª¤Ë¥ª¥ó¤È¤Ê¤ë¡£ +マウントしたディレクトリのスティッキービット (sticky bit) は +自動的にオンとなる。 .\"O After the file system has been mounted, the message queues on the system .\"O can be viewed and manipulated using the commands usually used for files @@ -385,18 +385,18 @@ Linux .\"O .BR ls (1) .\"O and .\"O .BR rm (1)). -¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¡¦¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Þ¥¦¥ó¥È¸å¤Ï¡¢¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ -Ä̾ï»È¤¦¥³¥Þ¥ó¥É (Î㤨¤Ð +メッセージキュー・ファイルシステムのマウント後は、ファイルに対して +通常使うコマンド (例えば .BR ls (1) -¤ä +や .BR rm (1)) -¤ò»È¤Ã¤Æ¡¢¥·¥¹¥Æ¥à¾å¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤òɽ¼¨¤·¤¿¤ê -Áàºî¤·¤¿¤ê¤Ç¤­¤ë¡£ +を使って、システム上のメッセージキューを表示したり +操作したりできる。 .\"O The contents of each file in the directory consist of a single line .\"O containing information about the queue: -¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î³Æ¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¤Ï 1¹Ô¤Ç¤¢¤ê¡¢ -¥­¥å¡¼¤Ë´Ø¤¹¤ë¾ðÊó¤¬É½¼¨¤µ¤ì¤ë¡£ +ディレクトリ内の各ファイルの内容は 1行であり、 +キューに関する情報が表示される。 .in +4n .nf @@ -406,21 +406,21 @@ QSIZE:129 NOTIFY:2 SIGNO:0 NOTIFY_PID:8260 .fi .in .\"O These fields are as follows: -³Æ¥Õ¥£¡¼¥ë¥É¤Î¾ÜºÙ¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë: +各フィールドの詳細は以下の通りである: .TP .B QSIZE .\"O Number of bytes of data in all messages in the queue. -¥­¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ëÁ´¥á¥Ã¥»¡¼¥¸¤Î¹ç·×¥Ð¥¤¥È¿ô¡£ +キューに入っている全メッセージの合計バイト数。 .TP .B NOTIFY_PID .\"O If this is nonzero, then the process with this PID has used .\"O .BR mq_notify (3) .\"O to register for asynchronous message notification, .\"O and the remaining fields describe how notification occurs. -¤³¤ÎÃͤ¬ 0 °Ê³°¤Î¾ì¹ç¡¢¤³¤ÎÃͤΠPID ¤ò»ý¤Ä¥×¥í¥»¥¹¤¬ +この値が 0 以外の場合、この値の PID を持つプロセスが .BR mq_notify (3) -¤ò»È¤Ã¤Æ¡¢ÈóƱ´ü¤Î¥á¥Ã¥»¡¼¥¸ÄÌÃΤò¹Ô¤¦¤è¤¦¤ËÀßÄꤷ¤¿¤³¤È¤ò¼¨¤¹¡£ -¤É¤Î¤è¤¦¤ËÄÌÃΤ¬¹Ô¤ï¤ì¤ë¤«¤Ï¡¢°Ê²¼¤Î¥Õ¥£¡¼¥ë¥É¤Ë¤è¤ê·èÄꤵ¤ì¤ë¡£ +を使って、非同期のメッセージ通知を行うように設定したことを示す。 +どのように通知が行われるかは、以下のフィールドにより決定される。 .TP .B NOTIFY .\"O Notification method: @@ -431,21 +431,21 @@ QSIZE:129 NOTIFY:2 SIGNO:0 NOTIFY_PID:8260 .\"O and .\"O 2 is .\"O .BR SIGEV_THREAD . -ÄÌÃÎÊýË¡: -0 ¤Ï +通知方法: +0 は .BR SIGEV_SIGNAL ; -1 ¤Ï +1 は .BR SIGEV_NONE ; -2 ¤Ï +2 は .B SIGEV_THREAD .TP .B SIGNO .\"O Signal number to be used for .\"O .BR SIGEV_SIGNAL . .B SIGEV_SIGNAL -¤Ë»ÈÍѤµ¤ì¤ë¥·¥°¥Ê¥ëÈֹ档 +に使用されるシグナル番号。 .\"O .SS Polling message queue descriptors -.SS ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò»Ò¤Î¥Ý¡¼¥ê¥ó¥° +.SS メッセージキュー記述子のポーリング .\"O On Linux, a message queue descriptor is actually a file descriptor, .\"O and can be monitored using .\"O .BR select (2), @@ -453,18 +453,18 @@ QSIZE:129 NOTIFY:2 SIGNO:0 NOTIFY_PID:8260 .\"O or .\"O .BR epoll (7). .\"O This is not portable. -Linux ¤Ç¤Ï¡¢¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò»Ò¤Ï¼ÂºÝ¤Ï¥Õ¥¡¥¤¥ëµ­½Ò»Ò (file descriptor) -¤Ç¤¢¤ê¡¢ +Linux では、メッセージキュー記述子は実際はファイル記述子 (file descriptor) +であり、 .BR select (2), .BR poll (2), .BR epoll (7) -¤ò»È¤Ã¤Æ´Æ»ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Îµ¡Ç½¤Î°Ü¿¢À­¤Ï¤Ê¤¤¡£ +を使って監視することができる。 +この機能の移植性はない。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O System V message queues .\"O .RB ( msgget (2), .\"O .BR msgsnd (2), @@ -474,30 +474,30 @@ POSIX.1-2001. .\"O System V message queues; .\"O on the other hand POSIX message queues are less widely available .\"O (especially on older systems) than System V message queues. -System V ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼ +System V メッセージキュー .RB ( msgget (2), .BR msgsnd (2), .BR msgrcv (2) -¤Ê¤É) ¤Ï¥×¥í¥»¥¹´Ö¤Ç¥á¥Ã¥»¡¼¥¸¤ò¤ä¤ê¼è¤ê¤¹¤ë¤¿¤á¤Î¸Å¤¤ API ¤Ç¤¢¤ë¡£ -POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ï System V ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤è¤ê¤â¤¦¤Þ¤¯ -À߷פµ¤ì¤¿¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤·¤Æ¤¤¤ë¡£ -°ìÊý¤Ç¡¢POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ï System V ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤ÈÈæ¤Ù¤ë¤È -ÍøÍѤǤ­¤ë¥·¥¹¥Æ¥à¤¬¾¯¤Ê¤¤ (Æäˡ¢¸Å¤¤¥·¥¹¥Æ¥à¤Ç¤Ï¾¯¤Ê¤¤)¡£ +など) はプロセス間でメッセージをやり取りするための古い API である。 +POSIX メッセージキューは System V メッセージキューよりもうまく +設計されたインタフェースを提供している。 +一方で、POSIX メッセージキューは System V メッセージキューと比べると +利用できるシステムが少ない (特に、古いシステムでは少ない)。 .\"O Linux does not currently (2.6.26) support the use of access control .\"O lists (ACLs) for POSIX message queues. -¸½ºß¤Î¤³¤È¤í (¥Ð¡¼¥¸¥ç¥ó 2.6.26 »þÅÀ)¡¢ -Linux ¤Ï POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤ËÂФ¹¤ë¥¢¥¯¥»¥¹À©¸æ¥ê¥¹¥È (ACL) ¤Ë -Âбþ¤·¤Æ¤¤¤Ê¤¤¡£ +現在のことろ (バージョン 2.6.26 時点)、 +Linux は POSIX メッセージキューに対するアクセス制御リスト (ACL) に +対応していない。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O An example of the use of various message queue functions is shown in .\"O .BR mq_notify (3). -³Æ¼ï¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼´Ø¿ô¤ò»ÈÍѤ·¤¿Î㤬 +各種のメッセージキュー関数を使用した例が .BR mq_notify (3) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ +に記載されている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getrlimit (2), .BR mq_getsetattr (2), .BR poll (2), diff --git a/draft/man7/netdevice.7 b/draft/man7/netdevice.7 index da5f20c7..6b2f0ffc 100644 --- a/draft/man7/netdevice.7 +++ b/draft/man7/netdevice.7 @@ -14,26 +14,26 @@ .\" Updated Wed 14 Feb 2001 by Kentaro Shirakata .\" Updated 2009-02-12 by Kentaro Shirakata .\" -.\"WORD load balancing bundle Éé²Ùʬ»¶¥°¥ë¡¼¥× -.\"WORD file descriptor ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD capability ¸¢¸Â +.\"WORD load balancing bundle 負荷分散グループ +.\"WORD file descriptor ファイルディスクリプタ +.\"WORD capability 権限 .\" .TH NETDEVICE 7 2009-01-14 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O netdevice \- Low level access to Linux network devices -.SH ̾Á° -netdevice \- Linux ¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¤Ø¤ÎÄã¥ì¥Ù¥ë¥¢¥¯¥»¥¹ +.SH 名前 +netdevice \- Linux ネットワークデバイスへの低レベルアクセス .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B "#include " .br .B "#include " .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This man page describes the sockets interface which is used to configure .\"O network devices. -¤³¤Î man ¥Ú¡¼¥¸¤Ç¤Ï¡¢¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¤òÀßÄꤹ¤ë¤¿¤á¤Ë -ÍѤ¤¤ë¥½¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æ²òÀ⤹¤ë¡£ +この man ページでは、ネットワークデバイスを設定するために +用いるソケットインターフェースについて解説する。 .\"O Linux supports some standard ioctls to configure network devices. .\"O They can be used on any socket's file descriptor regardless of the @@ -41,12 +41,12 @@ netdevice \- Linux .\"O They pass an .\"O . ifreq .\"O structure: -Linux ¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¤òÀßÄꤹ¤ë¤¿¤á¤Îɸ½àŪ¤Ê ioctl ¤ò -¤¤¤¯¤Ä¤«È÷¤¨¤Æ¤¤¤ë¡£¤³¤ì¤é¤Ï¤É¤ó¤Ê¥½¥±¥Ã¥È¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤â -ÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¥Õ¥¡¥ß¥ê¡¼¤ä¥¿¥¤¥×¤Ï²¿¤Ç¤â¤è¤¤¡£ -¤³¤ì¤é¤Î ioctl ¤Ï +Linux はネットワークデバイスを設定するための標準的な ioctl を +いくつか備えている。これらはどんなソケットのファイルディスクリプタにも +用いることができる。ファミリーやタイプは何でもよい。 +これらの ioctl は .I ifreq -¹½Â¤ÂΤòÅϤ¹¡£ +構造体を渡す。 .in +4n .nf @@ -84,10 +84,10 @@ struct ifconf { .\"O to the name of the interface. .\"O All other members of the structure may .\"O share memory. -Ä̾¥æ¡¼¥¶¡¼¤Ë¤è¤ëÀßÄêÂоݥǥХ¤¥¹¤Î»ØÄê¤Ï¡¢ +通常、ユーザーによる設定対象デバイスの指定は、 .I ifr_name -¤Ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î̾Á°¤ò¥»¥Ã¥È¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¹Ô¤¦¡£ -¾¤Î¹½Â¤ÂΤÎÁ´¤Æ¤Î¥á¥ó¥Ð¤Ï¡¢¥á¥â¥ê¤ò¶¦Í­¤¹¤ë¡£ +にインターフェースの名前をセットすることによって行う。 +他の構造体の全てのメンバは、メモリを共有する。 .\"O .SS Ioctls .SS ioctl .\"O If an ioctl is marked as privileged then using it requires an effective @@ -97,12 +97,12 @@ struct ifconf { .\"O If this is not the case .\"O .B EPERM .\"O will be returned. -¡ÖÆø¢¤¬É¬Íספȵ­½Ò¤µ¤ì¤Æ¤¤¤ë ioctl ¤ò¼Â¹Ô¤¹¤ë¤Ë¤Ï¡¢ -¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤«¡¢ +「特権が必要」と記述されている ioctl を実行するには、 +実効ユーザー ID が 0 か、 .B CAP_NET_ADMIN -¸¢¸Â¤¬É¬ÍפǤ¢¤ë¡£¤³¤ì¤¬Ëþ¤¿¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï +権限が必要である。これが満たされていない場合は .B EPERM -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .TP .B SIOCGIFNAME .\"O Given the @@ -112,26 +112,26 @@ struct ifconf { .\"O This is the only ioctl which returns its result in .\"O .IR ifr_name . .I ifr_ifindex -¤ò¼õ¤±¼è¤ê¡¢¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î̾Á°¤ò +を受け取り、インターフェースの名前を .I ifr_name -¤ËÆþ¤ì¤ÆÊÖ¤¹¡£¤³¤ì¤Ï·ë²Ì¤ò +に入れて返す。これは結果を .I ifr_name -¤È¤·¤ÆÊÖ¤¹Í£°ì¤Î ioctl ¤Ç¤¢¤ë¡£ +として返す唯一の ioctl である。 .TP .B SIOCGIFINDEX .\"O Retrieve the interface index of the interface into .\"O .IR ifr_ifindex . -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î interface index ¤ò¼èÆÀ¤·¡¢ +インターフェースの interface index を取得し、 .I ifr_ifindex -¤ËÆþ¤ì¤ÆÊÖ¤¹¡£ +に入れて返す。 .TP .BR SIOCGIFFLAGS ", " SIOCSIFFLAGS .\"O Get or set the active flag word of the device. .\"O .I ifr_flags .\"O contains a bit mask of the following values: -¥Ç¥Ð¥¤¥¹¤Î active ¥Õ¥é¥°¥ï¡¼¥É¤ò¼èÆÀ¤Þ¤¿¤ÏÀßÄꤹ¤ë¡£ +デバイスの active フラグワードを取得または設定する。 .I ifr_flags -¤Ë¤Ï°Ê²¼¤ÎÃͤΥӥåȥޥ¹¥¯¤¬Æþ¤ë¡£ +には以下の値のビットマスクが入る。 .TS tab(:); c s @@ -158,39 +158,39 @@ l l. .\"O IFF_LOWER_UP:Driver signals L1 up (since Linux 2.6.17) .\"O IFF_DORMANT:Driver signals dormant (since Linux 2.6.17) .\"O IFF_ECHO:Echo sent packets (since Linux 2.6.25) -¥Ç¥Ð¥¤¥¹¥Õ¥é¥° -IFF_UP:¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÏÆ°ºîÃæ¡£ +デバイスフラグ +IFF_UP:インターフェースは動作中。 IFF_BROADCAST:T{ -Í­¸ú¤Ê¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¡£ +有効なブロードキャストアドレスがセットされている。 T} -IFF_DEBUG:ÆâÉô¤Î¥Ç¥Ð¥Ã¥°¥Õ¥é¥°¡£ -IFF_LOOPBACK:¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¥ë¡¼¥×¥Ð¥Ã¥¯¤Ç¤¢¤ë¡£ +IFF_DEBUG:内部のデバッグフラグ。 +IFF_LOOPBACK:インターフェースはループバックである。 IFF_POINTOPOINT:T{ -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï point-to-point ¥ê¥ó¥¯¤Ç¤¢¤ë¡£ +インターフェースは point-to-point リンクである。 T} -IFF_RUNNING:¥ê¥½¡¼¥¹¤¬³ä¤êÅö¤ÆºÑ¤ß¡£ -IFF_NOARP:arp ¥×¥í¥È¥³¥ë¤¬¤Ê¤¤¡£ -IFF_PROMISC:¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï promiscuous ¥â¡¼¥É¤Ç¤¢¤ë¡£ -IFF_NOTRAILERS:trailer ¤ÎÍøÍѤòÈò¤±¤ë¡£ -IFF_ALLMULTI:Á´¤Æ¤Î¥Þ¥ë¥Á¥­¥ã¥¹¥È¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤¹¤ë¡£ -IFF_MASTER:Éé²Ùʬ»¶¥°¥ë¡¼¥×¤Î¥Þ¥¹¥¿¡¼¤Ç¤¢¤ë¡£ -IFF_SLAVE:Éé²Ùʬ»¶¥°¥ë¡¼¥×¤Î¥¹¥ì¡¼¥Ö¤Ç¤¢¤ë¡£ -IFF_MULTICAST:¥Þ¥ë¥Á¥­¥ã¥¹¥È¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -IFF_PORTSEL:ifmap ¤Ë¤è¤Ã¤Æ¥á¥Ç¥£¥¢¥¿¥¤¥×¤òÁªÂò¤Ç¤­¤ë¡£ -IFF_AUTOMEDIA:¼«Æ°¥á¥Ç¥£¥¢ÁªÂò¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +IFF_RUNNING:リソースが割り当て済み。 +IFF_NOARP:arp プロトコルがない。 +IFF_PROMISC:インターフェースは promiscuous モードである。 +IFF_NOTRAILERS:trailer の利用を避ける。 +IFF_ALLMULTI:全てのマルチキャストパケットを受信する。 +IFF_MASTER:負荷分散グループのマスターである。 +IFF_SLAVE:負荷分散グループのスレーブである。 +IFF_MULTICAST:マルチキャストをサポートしている。 +IFF_PORTSEL:ifmap によってメディアタイプを選択できる。 +IFF_AUTOMEDIA:自動メディア選択が有効になっている。 IFF_DYNAMIC:T{ -¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ÊĤ¸¤ë¤È¡¢¥¢¥É¥ì¥¹¤Ï¼º¤ï¤ì¤ë¡£ +このインターフェースが閉じると、アドレスは失われる。 T} -IFF_LOWER_UP:¥É¥é¥¤¥Ð¤«¤é¤Î L1 ¥¢¥Ã¥×¤ÎÄÌÃÎ (Linux 2.6.17 °Ê¹ß) -IFF_DORMANT:¥É¥é¥¤¥Ð¤«¤é¤ÎµÙ»ß¾õÂÖ¤ÎÄÌÃÎ (Linux 2.6.17 °Ê¹ß) -IFF_ECHO:Á÷¤é¤ì¤¿¥Ñ¥±¥Ã¥È¤ò¥¨¥³¡¼¤¹¤ë (Linux 2.6.25 °Ê¹ß) +IFF_LOWER_UP:ドライバからの L1 アップの通知 (Linux 2.6.17 以降) +IFF_DORMANT:ドライバからの休止状態の通知 (Linux 2.6.17 以降) +IFF_ECHO:送られたパケットをエコーする (Linux 2.6.25 以降) .TE .\"O Setting the active flag word is a privileged operation, but any .\"O process may read it. -active ¥Õ¥é¥°¥ï¡¼¥É¤ÎÀßÄê¤ÏÆø¢¤¬É¬ÍפÊÁàºî¤Ç¤¢¤ë¡£ -¤·¤«¤·Æɤ߽Ф·¤Ï¤É¤ó¤Ê¥×¥í¥»¥¹¤«¤é¤â²Äǽ¤Ç¤¢¤ë¡£ +active フラグワードの設定は特権が必要な操作である。 +しかし読み出しはどんなプロセスからも可能である。 .TP .BR SIOCGIFMETRIC ", " SIOCSIFMETRIC .\"O Get or set the metric of the device using @@ -200,14 +200,14 @@ active .\"O to 0 if you attempt to read it and returns .\"O .B EOPNOTSUPP .\"O if you attempt to set it. -¥Ç¥Ð¥¤¥¹¤Î¥á¥È¥ê¥Ã¥¯¤ò +デバイスのメトリックを .I ifr_metric -¤òÍѤ¤¤Æ¼èÆÀ¡¦ÀßÄꤹ¤ë¡£ -¤³¤ì¤Ï¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£Æɤ߽Ф½¤¦¤È¤¹¤ë¤È +を用いて取得・設定する。 +これはまだ実装されていない。読み出そうとすると .I ifr_metric -¤Ë 0 ¤ò¥»¥Ã¥È¤·¤ÆÊ֤ꡢÀßÄꤷ¤è¤¦¤È¤¹¤ë¤È +に 0 をセットして返り、設定しようとすると .B EOPNOTSUPP -¤¬Ê֤롣 +が返る。 .TP .BR SIOCGIFMTU ", " SIOCSIFMTU .\"O Get or set the MTU (Maximum Transfer Unit) of a device using @@ -215,49 +215,49 @@ active .\"O Setting the MTU is a privileged operation. .\"O Setting the MTU to .\"O too small values may cause kernel crashes. -¥Ç¥Ð¥¤¥¹¤Î MTU (Maximum Transfer Unit) ¤ò +デバイスの MTU (Maximum Transfer Unit) を .I ifr_mtu -¤òÍѤ¤¤Æ¼èÆÀ¡¦ÀßÄꤹ¤ë¡£ MTU ¤ÎÀßÄê¤ÏÆø¢¤¬É¬ÍפÊÁàºî¤Ç¤¢¤ë¡£ -MTU ¤ÎÃͤò¾®¤µ¤¯¤·¤¹¤®¤ë¤È¥«¡¼¥Í¥ë¤¬¥¯¥é¥Ã¥·¥å¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +を用いて取得・設定する。 MTU の設定は特権が必要な操作である。 +MTU の値を小さくしすぎるとカーネルがクラッシュするかもしれない。 .TP .BR SIOCGIFHWADDR ", " SIOCSIFHWADDR .\"O Get or set the hardware address of a device using .\"O .IR ifr_hwaddr . -¥Ç¥Ð¥¤¥¹¤Î¥Ï¡¼¥É¥¦¥§¥¢¥¢¥É¥ì¥¹¤ò +デバイスのハードウェアアドレスを .I ifr_hwaddr -¤òÍѤ¤¤Æ¼èÆÀ¡¦ÀßÄꤹ¤ë¡£ +を用いて取得・設定する。 .\"O The hardware address is specified in a struct .\"O .IR sockaddr . -¥Ï¡¼¥É¥¦¥§¥¢¥¢¥É¥ì¥¹¤Ï +ハードウェアアドレスは .I sockaddr -¹½Â¤ÂΤËÀßÄꤵ¤ì¤ë¡£ +構造体に設定される。 .\"O .I sa_family .\"O contains the ARPHRD_* device type, .\"O .I sa_data .\"O the L2 hardware address starting from byte 0. .I sa_family -¤Ë¤Ï ARPHRD_* ¥Ç¥Ð¥¤¥¹¥¿¥¤¥×¤¬Æþ¤ê¡¢ +には ARPHRD_* デバイスタイプが入り、 .I sa_data -¤Ë¤Ï¥Ð¥¤¥È 0 ¤«¤é»Ï¤Þ¤ë L2 ¥Ï¡¼¥É¥¦¥§¥¢¥¢¥É¥ì¥¹¤¬Æþ¤ë¡£ +にはバイト 0 から始まる L2 ハードウェアアドレスが入る。 .\"O Setting the hardware address is a privileged operation. -¥Ï¡¼¥É¥¦¥§¥¢¥¢¥É¥ì¥¹¤ÎÀßÄê¤ÏÆø¢¤¬É¬ÍפÊÁàºî¤Ç¤¢¤ë¡£ +ハードウェアアドレスの設定は特権が必要な操作である。 .TP .B SIOCSIFHWBROADCAST .\"O Set the hardware broadcast address of a device from .\"O .IR ifr_hwaddr . .\"O This is a privileged operation. -¥Ç¥Ð¥¤¥¹¤Î¥Ï¡¼¥É¥¦¥§¥¢¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤ò +デバイスのハードウェアブロードキャストアドレスを .I ifr_hwaddr -¤ÎÃͤËÀßÄꤹ¤ë¡£¤³¤ÎÁàºî¤Ë¤ÏÆø¢¤¬É¬ÍפǤ¢¤ë¡£ +の値に設定する。この操作には特権が必要である。 .TP .BR SIOCGIFMAP ", " SIOCSIFMAP .\"O Get or set the interface's hardware parameters using .\"O .IR ifr_map . .\"O Setting the parameters is a privileged operation. -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¥Ï¡¼¥É¥¦¥§¥¢¤Î¥Ñ¥é¥á¡¼¥¿¤ò +インターフェースのハードウェアのパラメータを .I ifr_map -¤òÍѤ¤¤Æ¼èÆÀ¡¦ÀßÄꤹ¤ë¡£ -¥Ñ¥é¥á¡¼¥¿¤ÎÀßÄê¤ÏÆø¢¤¬É¬ÍפÊÁàºî¤Ç¤¢¤ë¡£ +を用いて取得・設定する。 +パラメータの設定は特権が必要な操作である。 .in +4n .nf @@ -274,7 +274,7 @@ struct ifmap { .\"O The interpretation of the ifmap structure depends on the device driver .\"O and the architecture. -ifmap ¹½Â¤ÂΤβò¼á¤Ï¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë°Í¸¤¹¤ë¡£ +ifmap 構造体の解釈はデバイスドライバとアーキテクチャに依存する。 .TP .BR SIOCADDMULTI ", " SIOCDELMULTI .\"O Add an address to or delete an address from the device's link layer @@ -284,20 +284,20 @@ ifmap .\"O See also .\"O .BR packet (7) .\"O for an alternative. -¥Ç¥Ð¥¤¥¹¤Î¥ê¥ó¥¯ÁؤΥޥë¥Á¥­¥ã¥¹¥È¥Õ¥£¥ë¥¿¡¼¤«¤é¡¢ +デバイスのリンク層のマルチキャストフィルターから、 .I ifr_hwaddr -¤Î¥¢¥É¥ì¥¹¤òÄɲᦺï½ü¤¹¤ë¡£¤³¤ì¤é¤ÎÁàºî¤Ë¤ÏÆø¢¤¬É¬ÍפǤ¢¤ë¡£ -Ê̤ÎÊýË¡¤¬ +のアドレスを追加・削除する。これらの操作には特権が必要である。 +別の方法が .BR packet (7) -¤Ç²òÀ⤵¤ì¤Æ¤¤¤ë¡£ +で解説されている。 .TP .BR SIOCGIFTXQLEN ", " SIOCSIFTXQLEN .\"O Get or set the transmit queue length of a device using .\"O .IR ifr_qlen . .\"O Setting the transmit queue length is a privileged operation. -¥Ç¥Ð¥¤¥¹¤ÎÁ÷¿®¥­¥å¡¼¤ÎŤµ¤ò +デバイスの送信キューの長さを .I ifr_qlen -¤Ë¼èÆÀ¡¦ÀßÄꤹ¤ë¡£Á÷¿®¥­¥å¡¼¤ÎŤµ¤ÎÀßÄê¤Ë¤ÏÆø¢¤¬É¬ÍפǤ¢¤ë¡£ +に取得・設定する。送信キューの長さの設定には特権が必要である。 .TP .B SIOCSIFNAME .\"O Changes the name of the interface specified in @@ -308,10 +308,10 @@ ifmap .\"O It is only allowed when the interface .\"O is not up. .I ifr_name -¤Ç»ØÄꤷ¤¿¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î̾Á°¤ò +で指定したインターフェースの名前を .I ifr_newname -¤ËÊѹ¹¤¹¤ë¡£¤³¤ÎÁàºî¤Ë¤ÏÆø¢¤¬É¬ÍפǤ¢¤ë¡£¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ up ¤·¤Æ¤¤¤Ê¤¤ -»þ¤Ë¤Î¤ß»ÈÍѤǤ­¤ë¡£ +に変更する。この操作には特権が必要である。インターフェースが up していない +時にのみ使用できる。 .TP .B SIOCGIFCONF .\"O Return a list of interface (transport layer) addresses. @@ -319,10 +319,10 @@ ifmap .\"O means only addresses of the .\"O .B AF_INET .\"O (IPv4) family for compatibility. -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹(¥È¥é¥ó¥¹¥Ý¡¼¥ÈÁØ)¥¢¥É¥ì¥¹¤Î¥ê¥¹¥È¤òÊÖ¤¹¡£ -¸½ºß¤Î¤È¤³¤í¡¢¸ß´¹À­¤Î¤¿¤á¤Ë +インターフェース(トランスポート層)アドレスのリストを返す。 +現在のところ、互換性のために .B AF_INET -(IPv4) ¥Õ¥¡¥ß¥ê¡¼¤Î¥¢¥É¥ì¥¹¤Î¤ß¤Ç¤¢¤ë¡£ +(IPv4) ファミリーのアドレスのみである。 .\"O The user passes a .\"O .I ifconf .\"O structure as argument to the ioctl. @@ -332,47 +332,47 @@ ifmap .\"O .I ifc_req .\"O and its length in bytes in .\"O .IR ifc_len . -¥æ¡¼¥¶¡¼¤Ï +ユーザーは .I ifconf -¹½Â¤ÂΤò ioctl ¤Î°ú¿ô¤È¤·¤ÆÅϤ¹¡£ +構造体を ioctl の引数として渡す。 .I ifconf -¹½Â¤ÂΤˤϡ¢ +構造体には、 .I ifreq -¹½Â¤ÂΤÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë +構造体の配列へのポインタである .I ifc_req -¤È¡¢¥Ð¥¤¥Èñ°Ì¤ÎÇÛÎó¤ÎŤµ¤ò»ØÄꤹ¤ë +と、バイト単位の配列の長さを指定する .I ifc_len -¤¬´Þ¤Þ¤ì¤ë¡£ +が含まれる。 .\"O The kernel fills the ifreqs with all current L3 interface addresses that .\"O are running: .\"O .I ifr_name .\"O contains the interface name (eth0:1 etc.), .\"O .I ifr_addr .\"O the address. -¥«¡¼¥Í¥ë¤Ï ifreqs ¤ò¸½ºßÆ°ºî¤·¤Æ¤¤¤ëÁ´¤Æ¤Î L3 ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹¤ÇËä¤á¤ë¡£ +カーネルは ifreqs を現在動作している全ての L3 インターフェースアドレスで埋める。 .I ifr_name -¤Ë¤Ï¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹Ì¾ (eth0:1 ¤Ê¤É) ¤¬Æþ¤ê¡¢ +にはインターフェース名 (eth0:1 など) が入り、 .I ifr_addr -¤Ë¤Ï¥¢¥É¥ì¥¹¤¬Æþ¤ë¡£ +にはアドレスが入る。 .\"O The kernel returns with the actual length in .\"O .IR ifc_len . -¥«¡¼¥Í¥ë¤Ï¼ÂºÝ¤ÎŤµ¤ò +カーネルは実際の長さを .I ifc_len -¤ËÊÖ¤¹¡£ +に返す。 .\"O If .\"O .I ifc_len .\"O is equal to the original length the buffer probably has overflowed .\"O and you should retry with a bigger buffer to get all addresses. .I ifc_len -¤¬¸µ¤Î¥Ð¥Ã¥Õ¥¡¤ÎŤµ¤ÈƱ¤¸¤À¤Ã¤¿¾ì¹ç¡¢ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤òµ¯¤³¤·¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç¡¢ -Á´¤Æ¤Î¥¢¥É¥ì¥¹¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Ë¤è¤êÂ礭¤Ê¥Ð¥Ã¥Õ¥¡¤ÇºÆ»î¹Ô¤¹¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +が元のバッファの長さと同じだった場合、 +オーバーフローを起こしている可能性があるので、 +全てのアドレスを取得するためにより大きなバッファで再試行するべきである。 .\"O When no error occurs the ioctl returns 0; .\"O otherwise \-1. .\"O Overflow is no an error. -¥¨¥é¡¼¤¬¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï ioctl ¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬¤¢¤Ã¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ï¥¨¥é¡¼¤È¤Ï¸«¤Ê¤µ¤ì¤Ê¤¤¡£ +エラーがなかった場合は ioctl は 0 を返す。 +エラーがあった場合は \-1 を返す。 +オーバーフローはエラーとは見なされない。 .\" Slaving isn't supported in 2.2 .\" . .\" .TP @@ -386,58 +386,58 @@ ifmap .\"O Most protocols support their own ioctls to configure protocol-specific .\"O interface options. .\"O See the protocol man pages for a description. -¤Û¤È¤ó¤É¤Î¥×¥í¥È¥³¥ë¤Ë¤Ï¡¢ÀìÍѤΥ¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥ª¥×¥·¥ç¥ó¤ò -ÀßÄꤹ¤ë¤¿¤á¤ÎÆȼ«¤Î ioctl ¤¬Â¸ºß¤¹¤ë¡£ -ÀâÌÀ¤Ï³Æ¥×¥í¥È¥³¥ë¤Î man ¥Ú¡¼¥¸¤ò¸«¤è¡£ +ほとんどのプロトコルには、専用のインターフェースオプションを +設定するための独自の ioctl が存在する。 +説明は各プロトコルの man ページを見よ。 .PP .\"O In addition some devices support private ioctls. .\"O These are not described here. -¤µ¤é¤Ë¡¢¥Ç¥Ð¥¤¥¹¤Ë¤è¤Ã¤Æ¤Ï¥×¥é¥¤¥Ù¡¼¥È¤Ê ioctl ¤¬¤¢¤ë¡£ -¤³¤ì¤é¤Ï¤³¤³¤Ç¤ÏÀâÌÀ¤·¤Ê¤¤¡£ +さらに、デバイスによってはプライベートな ioctl がある。 +これらはここでは説明しない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Strictly speaking, .\"O .B SIOCGIFCONF .\"O is IP specific and belongs in .\"O .BR ip (7). -¸·Ì©¤Ë¤¤¤¦¤È¡¢ +厳密にいうと、 .B SIOCGIFCONF -¤Ï IP ¸ÇÍ­¤Ç¤¢¤ê¡¢ +は IP 固有であり、 .BR ip (7) -¤Ë°¤¹¤ë¡£ +に属する。 .LP .\"O The names of interfaces with no addresses or that don't have the .\"O .B IFF_RUNNING .\"O flag set can be found via .\"O .IR /proc/net/dev . -¥¢¥É¥ì¥¹¤¬¤Ê¤«¤Ã¤¿¤ê¡¢ +アドレスがなかったり、 .B IFF_RUNNING -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î̾Á°¤Ï +フラグがセットされていないインターフェースの名前は .I /proc/net/dev -¤ÇÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ +で知ることができる。 .LP .\"O Local IPv6 IP addresses can be found via .\"O .I /proc/net .\"O or via .\"O .BR rtnetlink (7). -¥í¡¼¥«¥ë IPV6 IP ¥¢¥É¥ì¥¹¤Ï +ローカル IPV6 IP アドレスは .I /proc/net -¤« +か .BR rtnetlink (7) -¤ÇÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ +で知ることができる。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O glibc 2.1 is missing the .\"O .I ifr_newname .\"O macro in .\"O .IR . .\"O Add the following to your program as a workaround: -glibc 2.1 ¤Ç¤Ï +glibc 2.1 では .I -¤Ë +に .I ifr_newname -¥Þ¥¯¥í¤¬¤Ê¤¤¡£ -¤È¤ê¤¢¤¨¤º¤ÎÂбþºö¤È¤·¤Æ¡¢°Ê²¼¤Î¥³¡¼¥É¤òÄɲ䷤Ƥª¤¯¤³¤È¡£ +マクロがない。 +とりあえずの対応策として、以下のコードを追加しておくこと。 .sp .in +4n .nf @@ -448,7 +448,7 @@ glibc 2.1 .in .RE .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR proc (5), .BR capabilities (7), .BR ip (7), diff --git a/draft/man7/netlink.7 b/draft/man7/netlink.7 index f88284c5..185533c5 100644 --- a/draft/man7/netlink.7 +++ b/draft/man7/netlink.7 @@ -9,16 +9,16 @@ .\" Updated 2001-04-04 by Yuichi SATO , catch up to LDP v1.35 .\" Updated 2006-06-23 by Yuichi SATO , catch up to LDP v2.29 .\" -.\"WORD payload ¥Ú¥¤¥í¡¼¥É -.\"WORD capability ¸¢¸Â +.\"WORD payload ペイロード +.\"WORD capability 権限 .\" .TH NETLINK 7 2008-11-11 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O netlink \- Communication between kernel and userspace (AF_NETLINK) -netlink \- ¥«¡¼¥Í¥ë¤È¥æ¡¼¥¶¡¼¶õ´Ö¤ÎÄÌ¿® (AF_NETLINK) +netlink \- カーネルとユーザー空間の通信 (AF_NETLINK) .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -27,7 +27,7 @@ netlink \- .BI "netlink_socket = socket(AF_NETLINK, " socket_type ", " netlink_family ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Netlink is used to transfer information between kernel and .\"O userspace processes. .\"O It consists of a standard sockets-based interface for userspace @@ -36,15 +36,15 @@ netlink \- .\"O There is also an obsolete netlink interface .\"O via netlink character devices; this interface is not documented here .\"O and is only provided for backward compatibility. -netlink ¤Ï¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¤È¥æ¡¼¥¶¡¼¶õ´Ö¤Î¥×¥í¥»¥¹´Ö¤Ç -¾ðÊó¤ò¤ä¤ê¤È¤ê¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ -netlink ¤Ï¡¢¥æ¡¼¥¶¡¼¥×¥í¥»¥¹¤ËÂФ·¤Æ¤Ï -ɸ½àŪ¤Ê¥½¥±¥Ã¥È¥Ù¡¼¥¹¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò¡¢ -¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¤Ë¤Ï¥«¡¼¥Í¥ë¤ÎÆâÉô API ¤òÄ󶡤¹¤ë¡£ -¥«¡¼¥Í¥ëÆâÉô¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æ¤Ï¤³¤Î man ¥Ú¡¼¥¸¤Ç¤Ïµ­½Ò¤·¤Ê¤¤¡£ -¤Þ¤¿¡¢netlink ¥­¥ã¥é¥¯¥¿¥Ç¥Ð¥¤¥¹¤òÍѤ¤¤¿ -obsolete ¤Ê netlink ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤â¤¢¤ë¤¬¡¢¤³¤ì¤â¤³¤Îʸ½ñ¤Ç¤Ï²òÀ⤷¤Ê¤¤¡£ -¤³¤ì¤Ïñ¤Ë²áµî¸ß´¹À­¤Î¤¿¤á¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤Ë¤¹¤®¤Ê¤¤¡£ +netlink はカーネルモジュールとユーザー空間のプロセス間で +情報をやりとりするために用いられる。 +netlink は、ユーザープロセスに対しては +標準的なソケットベースのインターフェースを、 +カーネルモジュールにはカーネルの内部 API を提供する。 +カーネル内部のインターフェースについてはこの man ページでは記述しない。 +また、netlink キャラクタデバイスを用いた +obsolete な netlink インターフェースもあるが、これもこの文書では解説しない。 +これは単に過去互換性のために用意されているものにすぎない。 .\"O Netlink is a datagram-oriented service. .\"O Both @@ -55,21 +55,21 @@ obsolete .\"O .IR socket_type . .\"O However, the netlink protocol does not distinguish between datagram .\"O and raw sockets. -netlink ¤Ï¥Ç¡¼¥¿¥°¥é¥à»Ø¸þ¤Î¥µ¡¼¥Ó¥¹¤Ç¤¢¤ë¡£ +netlink はデータグラム指向のサービスである。 .I socket_type -¤Ë¤Ï +には .B SOCK_RAW -¤È +と .B SOCK_DGRAM -¤ÎξÊý¤È¤â»ØÄê²Äǽ¤Ç¤¢¤ë¡£ -¤·¤«¤· netlink ¥×¥í¥È¥³¥ë¤Ï¥Ç¡¼¥¿¥°¥é¥à¤È raw ¥½¥±¥Ã¥È¤Î¶èÊ̤ò¤·¤Ê¤¤¡£ +の両方とも指定可能である。 +しかし netlink プロトコルはデータグラムと raw ソケットの区別をしない。 .\"O .I netlink_family .\"O selects the kernel module or netlink group to communicate with. .\"O The currently assigned netlink families are: .I netlink_family -¤Ï¡¢ÄÌ¿®¤¹¤ë¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¤ä netlink ¥°¥ë¡¼¥×¤ÎÁªÂò¤ËÍѤ¤¤ë¡£ -¸½ºß³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë netlink ¥Õ¥¡¥ß¥ê¡¼¤Ï°Ê²¼¤ÎÄ̤ꡣ +は、通信するカーネルモジュールや netlink グループの選択に用いる。 +現在割り当てられている netlink ファミリーは以下の通り。 .TP .B NETLINK_ROUTE .\"O Receives routing and link updates and may be used to modify the routing @@ -77,35 +77,35 @@ netlink .\"O neighbor setups, queueing disciplines, traffic classes and .\"O packet classifiers (see .\"O .BR rtnetlink (7)). -¥ë¡¼¥Æ¥£¥ó¥°¤È¥ê¥ó¥¯¤Î¹¹¿·¤ò¼õ¿®¤¹¤ë¡£ -(IPv4 ¤È IPv6 ξÊý¤Î) ¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¡¦ -IP ¥¢¥É¥ì¥¹¡¦¥ê¥ó¥¯¥Ñ¥é¥á¡¼¥¿¡¦¶á˵ÀßÄê (neighbor setup)¡¦ -¥­¥å¡¼¥¤¥ó¥°¥ë¡¼¥ë (queueing dicipline)¡¦¥È¥é¥Õ¥£¥Ã¥¯¥¯¥é¥¹¡¦ -¥Ñ¥±¥Ã¥È¤Î¥¯¥é¥¹Ê¬Îà¤Î½¤Àµ¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¤À¤í¤¦ +ルーティングとリンクの更新を受信する。 +(IPv4 と IPv6 両方の) ルーティングテーブル・ +IP アドレス・リンクパラメータ・近傍設定 (neighbor setup)・ +キューイングルール (queueing dicipline)・トラフィッククラス・ +パケットのクラス分類の修正に用いることができるだろう .RB ( rtnetlink (7) -¤ò¸«¤è)¡£ +を見よ)。 .TP .B NETLINK_W1 .\"O Messages from 1-wire subsystem. -ñÀþ (1-wire) ¤Î¥µ¥Ö¥·¥¹¥Æ¥à¤«¤é¤Î¥á¥Ã¥»¡¼¥¸¡£ +単線 (1-wire) のサブシステムからのメッセージ。 .TP .B NETLINK_USERSOCK .\"O Reserved for user-mode socket protocols. -¥æ¡¼¥¶¡¼¥â¡¼¥É¥½¥±¥Ã¥È¥×¥í¥È¥³¥ë¤Î¤¿¤á¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ +ユーザーモードソケットプロトコルのために予約されている。 .TP .B NETLINK_FIREWALL .\"O Transport IPv4 packets from netfilter to userspace. .\"O Used by .\"O .I ip_queue .\"O kernel module. -IPv4 ¥Ñ¥±¥Ã¥È¤ò netfilter ¤«¤é¥æ¡¼¥¶¡¼¶õ´Ö¤ØžÁ÷¤¹¤ë¡£ +IPv4 パケットを netfilter からユーザー空間へ転送する。 .I ip_queue -¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¤Ç»ÈÍѤµ¤ì¤ë¡£ +カーネルモジュールで使用される。 .TP .B NETLINK_INET_DIAG .\" FIXME More details on NETLINK_INET_DIAG needed. .\"O INET socket monitoring. -INET ¥½¥±¥Ã¥È¤ò¥â¥Ë¥¿¥ê¥ó¥°¤¹¤ë¡£ +INET ソケットをモニタリングする。 .TP .B NETLINK_NFLOG Netfilter/iptables ULOG. @@ -116,7 +116,7 @@ IPsec. .TP .B NETLINK_SELINUX .\"O SELinux event notifications. -SELinux ¤Î¥¤¥Ù¥ó¥ÈÄÌÃΡ£ +SELinux のイベント通知。 .TP .B NETLINK_ISCSI .\" FIXME More details on NETLINK_ISCSI needed. @@ -125,69 +125,69 @@ Open-iSCSI. .B NETLINK_AUDIT .\" FIXME More details on NETLINK_AUDIT needed. .\"O Auditing. -´Æºº (audit) ¤ò¹Ô¤¦¡£ +監査 (audit) を行う。 .TP .B NETLINK_FIB_LOOKUP .\" FIXME More details on NETLINK_FIB_LOOKUP needed. .\"O Access to FIB lookup from userspace. -¥æ¡¼¥¶¡¼¶õ´Ö¤«¤é FIB ¥ë¥Ã¥¯¥¢¥Ã¥×¤Ë¥¢¥¯¥»¥¹¤¹¤ë¡£ +ユーザー空間から FIB ルックアップにアクセスする。 .TP .B NETLINK_CONNECTOR .\"O Kernel connector. .\"O See .\"O .I Documentation/connector/* .\"O in the kernel source for further information. -¥«¡¼¥Í¥ë¥³¥Í¥¯¥¿¡£ -¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï¥«¡¼¥Í¥ë¥½¡¼¥¹¤Î +カーネルコネクタ。 +より詳しい情報はカーネルソースの .I Documentation/connector/* -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .TP .B NETLINK_NETFILTER .\" FIXME More details on NETLINK_NETFILTER needed. .\"O Netfilter subsystem. -netfilter ¥µ¥Ö¥·¥¹¥Æ¥à¡£ +netfilter サブシステム。 .TP .B NETLINK_IP6_FW .\"O Transport IPv6 packets from netfilter to userspace. .\"O Used by .\"O .I ip6_queue .\"O kernel module. -IPv6 ¥Ñ¥±¥Ã¥È¤ò netfilter ¤«¤é¥æ¡¼¥¶¡¼¶õ´Ö¤ØžÁ÷¤¹¤ë¡£ +IPv6 パケットを netfilter からユーザー空間へ転送する。 .I ip6_queue -¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¤Ç»ÈÍѤµ¤ì¤ë¡£ +カーネルモジュールで使用される。 .TP .B NETLINK_DNRTMSG .\"O DECnet routing messages. -DECnet ¥ë¡¼¥Æ¥£¥ó¥°¥á¥Ã¥»¡¼¥¸¡£ +DECnet ルーティングメッセージ。 .TP .B NETLINK_KOBJECT_UEVENT .\" FIXME More details on NETLINK_KOBJECT_UEVENT needed. .\"O Kernel messages to userspace. -¥æ¡¼¥¶¡¼¶õ´Ö¤Ø¤Î¥«¡¼¥Í¥ë¥á¥Ã¥»¡¼¥¸ +ユーザー空間へのカーネルメッセージ .TP .B NETLINK_GENERIC .\"O Generic netlink family for simplified netlink usage. -netlink ¤ò´Êñ¤Ë»ÈÍѤ¹¤ë¤¿¤á¤Î°ìÈÌŪ¤Ê netlink ¥Õ¥¡¥ß¥ê¡¼¡£ +netlink を簡単に使用するための一般的な netlink ファミリー。 .PP .\"O Netlink messages consist of a byte stream with one or multiple .\"O .I nlmsghdr .\"O headers and associated payload. -netlink ¥á¥Ã¥»¡¼¥¸¤Ï¥Ð¥¤¥È¥¹¥È¥ê¡¼¥à¤«¤é¤Ê¤ê¡¢ -°ì¤Ä°Ê¾å¤Î +netlink メッセージはバイトストリームからなり、 +一つ以上の .I nlmsghdr -¥Ø¥Ã¥À¤È¡¢¤½¤ì¤ËÂбþ¤¹¤ë¥Ú¥¤¥í¡¼¥É (payload) ¤¬´Þ¤Þ¤ì¤ë¡£ +ヘッダと、それに対応するペイロード (payload) が含まれる。 .\"O The byte stream should only be accessed with the standard .\"O .B NLMSG_* .\"O macros. .\"O See .\"O .BR netlink (3) .\"O for further information. -¥Ð¥¤¥È¥¹¥È¥ê¡¼¥à¤Ë¤Ï¡¢É¸½à¤Î +バイトストリームには、標準の .B NLMSG_* -¥Þ¥¯¥í¤Ë¤è¤Ã¤Æ¤Î¤ß¥¢¥¯¥»¥¹¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï +マクロによってのみアクセスすべきである。 +より詳しい情報は .BR netlink (3) -¤ò¸«¤è¡£ +を見よ。 .\"O In multipart messages (multiple .\"O .I nlmsghdr @@ -196,22 +196,22 @@ netlink .\"O .B NLM_F_MULTI .\"O flag set, except for the last header which has the type .\"O .BR NLMSG_DONE . -¥Þ¥ë¥Á¥Ñ¡¼¥È¥á¥Ã¥»¡¼¥¸ (°ì¤Ä°Ê¾å¤Î +マルチパートメッセージ (一つ以上の .I nlmsghdr -¥Ø¥Ã¥À¤È¡¢¤½¤ì¤ËÂбþ¤¹¤ë¥Ú¥¤¥í¡¼¥É¤¬ -°ì¤Ä¥Ð¥¤¥È¥¹¥È¥ê¡¼¥à¤Ë´Þ¤Þ¤ì¤ë) ¤Ë¤ª¤¤¤Æ¤Ï¡¢ -ÀèƬ¤Î¥Ø¥Ã¥À¡¦¸å³¤Î¥Ø¥Ã¥À¤Ë¤Ï +ヘッダと、それに対応するペイロードが +一つバイトストリームに含まれる) においては、 +先頭のヘッダ・後続のヘッダには .B NLM_F_MULTI -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£¤¿¤À¤·ºÇ¸å¤Î¥Ø¥Ã¥À¤À¤±¤ÏÎã³°¤Ç¡¢ +フラグがセットされる。ただし最後のヘッダだけは例外で、 .B NLMSG_DONE -¥¿¥¤¥×¤È¤Ê¤ë¡£ +タイプとなる。 .\"O After each .\"O .I nlmsghdr .\"O the payload follows. -¤½¤ì¤¾¤ì¤Î +それぞれの .B nlmsghdr -¤Î¸å¤Ë¤Ï¥Ú¥¤¥í¡¼¥É¤¬Â³¤¯¡£ +の後にはペイロードが続く。 .in +4n .nf @@ -221,11 +221,11 @@ struct nlmsghdr { .\"O __u16 nlmsg_flags; /* Additional flags. */ .\"O __u32 nlmsg_seq; /* Sequence number. */ .\"O __u32 nlmsg_pid; /* PID of the sending process. */ - __u32 nlmsg_len; /* ¥Ø¥Ã¥À¤ò´Þ¤à¥á¥Ã¥»¡¼¥¸¤ÎŤµ */ - __u16 nlmsg_type; /* ¥á¥Ã¥»¡¼¥¸¤ÎÆâÍƤΥ¿¥¤¥× */ - __u16 nlmsg_flags; /* Äɲåե饰 */ - __u32 nlmsg_seq; /* ¥·¡¼¥±¥ó¥¹ÈÖ¹æ */ - __u32 nlmsg_pid; /* Á÷¿®¥×¥í¥»¥¹¤Î PID */ + __u32 nlmsg_len; /* ヘッダを含むメッセージの長さ */ + __u16 nlmsg_type; /* メッセージの内容のタイプ */ + __u16 nlmsg_flags; /* 追加フラグ */ + __u32 nlmsg_seq; /* シーケンス番号 */ + __u32 nlmsg_pid; /* 送信プロセスの PID */ }; .fi .in @@ -241,23 +241,23 @@ struct nlmsghdr { .\"O .B NLMSG_DONE .\"O message terminates a multipart message. .I nlmsg_type -¤Ïɸ½à¤Î¥á¥Ã¥»¡¼¥¸¥¿¥¤¥×¤Î¤É¤ì¤«°ì¤Ä¤Ç¤¢¤ë: +は標準のメッセージタイプのどれか一つである: .B NLMSG_NOOP -¥á¥Ã¥»¡¼¥¸¤Ï̵»ë¤µ¤ì¤ë¡£ +メッセージは無視される。 .B NLMSG_ERROR -¥á¥Ã¥»¡¼¥¸¤Ï¥¨¥é¡¼¤ò¼¨¤·¡¢¥Ú¥¤¥í¡¼¥É¤Ë¤Ï +メッセージはエラーを示し、ペイロードには .I nlmsgerr -¹½Â¤ÂΤ¬Æþ¤ë¡£ +構造体が入る。 .B NLMSG_DONE -¥á¥Ã¥»¡¼¥¸¤Ï¥Þ¥ë¥Á¥Ñ¡¼¥È¥á¥Ã¥»¡¼¥¸¤Î½ªÎ»¤òÅÁ¤¨¤ë¡£ +メッセージはマルチパートメッセージの終了を伝える。 .in +4n .nf struct nlmsgerr { .\"O int error; /* Negative errno or 0 for acknowledgements */ .\"O struct nlmsghdr msg; /* Message header that caused the error */ - int error; /* Éé¤Þ¤¿¤Ï 0 ¤Î errno ¤Ï±þÅú¤òɽ¤¹ */ - struct nlmsghdr msg; /* ¥¨¥é¡¼¤òµ¯¤³¤·¤¿¥á¥Ã¥»¡¼¥¸¤Î¥Ø¥Ã¥À */ + int error; /* 負または 0 の errno は応答を表す */ + struct nlmsghdr msg; /* エラーを起こしたメッセージのヘッダ */ }; .fi .in @@ -267,18 +267,18 @@ struct nlmsgerr { .\"O .BR rtnetlink (7) .\"O for .\"O .BR NETLINK_ROUTE . -¤¢¤ë netlink ¥Õ¥¡¥ß¥ê¡¼¤Ç»ØÄê¤Ç¤­¤ë¥á¥Ã¥»¡¼¥¸¥¿¥¤¥×¤Ï¡¢ -Ä̾ï¤â¤Ã¤È¿¤¤¡£¤³¤ì¤é¤Ë´Ø¤·¤Æ¤ÏŬÀÚ¤Ê man ¥Ú¡¼¥¸¤ò¸«¤Æ¤Û¤·¤¤¡£ -¤¿¤È¤¨¤Ð +ある netlink ファミリーで指定できるメッセージタイプは、 +通常もっと多い。これらに関しては適切な man ページを見てほしい。 +たとえば .B NETLINK_ROUTE -¤Ë´Ø¤·¤Æ¤Ï +に関しては .BR rtnetlink (7) -¤Ë½ñ¤¤¤Æ¤¢¤ë¡£ +に書いてある。 .\"O Standard flag bits in .\"O .I nlmsg_flags .I nlmsg_flags -¤Îɸ½à¥Õ¥é¥°¥Ó¥Ã¥È +の標準フラグビット .br --------------------------------- .TS @@ -291,19 +291,19 @@ lB l. .\"O T} .\"O NLM_F_ACK:Request for an acknowledgment on success. .\"O NLM_F_ECHO:Echo this request. -NLM_F_REQUEST:Í×µá¥á¥Ã¥»¡¼¥¸Á´¤Æ¤Ç¥»¥Ã¥È¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +NLM_F_REQUEST:要求メッセージ全てでセットされなければならない。 NLM_F_MULTI:T{ -¤³¤Î¥á¥Ã¥»¡¼¥¸¤Ï¥Þ¥ë¥Á¥Ñ¡¼¥È¥á¥Ã¥»¡¼¥¸¤Î°ìÉô¤Ç¤¢¤ë¡£ -¥Þ¥ë¥Á¥Ñ¡¼¥È¥á¥Ã¥»¡¼¥¸¤Ï +このメッセージはマルチパートメッセージの一部である。 +マルチパートメッセージは .B NLMSG_DONE -¤Ç½ªÃ¼¤¹¤ë¡£ +で終端する。 T} -NLM_F_ACK:À®¸ù¤·¤¿¾ì¹ç¤Î±þÅú¤òÍ׵᤹¤ë¡£ -NLM_F_ECHO:¤³¤ÎÍ×µá¤ò¥¨¥³¡¼¤¹¤ë¡£ +NLM_F_ACK:成功した場合の応答を要求する。 +NLM_F_ECHO:この要求をエコーする。 .TE .\"O Additional flag bits for GET requests -GET Í×µá¤Ë¤ª¤±¤ëÄɲåե饰¥Ó¥Ã¥È +GET 要求における追加フラグビット .br ------------------------------------- .TS @@ -317,14 +317,14 @@ lB l. .\" FIXME NLM_F_ATOMIC is not used any more? .\"O NLM_F_ATOMIC:Return an atomic snapshot of the table. .\"O NLM_F_DUMP:Convenience macro; equivalent to (NLM_F_ROOT|NLM_F_MATCH). -NLM_F_ROOT:ñ°ì¤Î¥¨¥ó¥È¥ê¤Ç¤Ï¤Ê¤¯¥Æ¡¼¥Ö¥ëÁ´ÂΤòÊÖ¤¹¡£ +NLM_F_ROOT:単一のエントリではなくテーブル全体を返す。 NLM_F_MATCH:T{ -¥á¥Ã¥»¡¼¥¸¤ÎÆâÍƤÇÅϤµ¤ì¤¿´ð½à (criteria) ¤Ë¥Þ¥Ã¥Á¤¹¤ë -Á´¤Æ¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£ -¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +メッセージの内容で渡された基準 (criteria) にマッチする +全てのエントリを返す。 +まだ実装されていない。 T} -NLM_F_ATOMIC:¥Æ¡¼¥Ö¥ë¤Î¥¢¥È¥ß¥Ã¥¯¤Ê¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¤òÊÖ¤¹¡£ -NLM_F_DUMP:ÊØÍø¤Ê¥Þ¥¯¥í¡£(NLM_F_ROOT|NLM_F_MATCH) ¤ÈƱ¤¸¡£ +NLM_F_ATOMIC:テーブルのアトミックなスナップショットを返す。 +NLM_F_DUMP:便利なマクロ。(NLM_F_ROOT|NLM_F_MATCH) と同じ。 .TE .\"O Note that @@ -333,12 +333,12 @@ NLM_F_DUMP: .\"O .B CAP_NET_ADMIN .\"O capability or an effective UID of 0. .B NLM_F_ATOMIC -¤ò»È¤¦¾ì¹ç¤Ï¡¢ +を使う場合は、 .B CAP_NET_ADMIN -¸¢¸Â¤ò»ý¤Ä¤«¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +権限を持つか実効ユーザー ID が 0 でなければならない点に注意すること。 .\"O Additional flag bits for NEW requests -NEW Í×µá¤Ë¤ª¤±¤ëÄɲåե饰¥Ó¥Ã¥È +NEW 要求における追加フラグビット .br ------------------------------------- .TS @@ -348,10 +348,10 @@ lB l. .\"O NLM_F_EXCL:Don't replace if the object already exists. .\"O NLM_F_CREATE:Create object if it doesn't already exist. .\"O NLM_F_APPEND:Add to the end of the object list. -NLM_F_REPLACE:¸½Â¸¤Î¥ª¥Ö¥¸¥§¥¯¥È¤òÃÖ´¹¤¹¤ë¡£ -NLM_F_EXCL:¤¹¤Ç¤Ë¥ª¥Ö¥¸¥§¥¯¥È¤¬¤¢¤Ã¤¿¤éÃÖ´¹¤·¤Ê¤¤¡£ -NLM_F_CREATE:¤Þ¤À¥ª¥Ö¥¸¥§¥¯¥È¤¬¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë¡£ -NLM_F_APPEND:¥ª¥Ö¥¸¥§¥¯¥È¥ê¥¹¥È¤ÎºÇ¸å¤ËÄɲ乤롣 +NLM_F_REPLACE:現存のオブジェクトを置換する。 +NLM_F_EXCL:すでにオブジェクトがあったら置換しない。 +NLM_F_CREATE:まだオブジェクトがなければ作成する。 +NLM_F_APPEND:オブジェクトリストの最後に追加する。 .TE .\"O .I nlmsg_seq @@ -359,26 +359,26 @@ NLM_F_APPEND: .\"O .I nlmsg_pid .\"O are used to track messages. .I nlmsg_seq -¤È +と .I nlmsg_pid -¤Ï¥á¥Ã¥»¡¼¥¸¤ÎÄÉÀפ˻ÈÍѤµ¤ì¤ë¡£ +はメッセージの追跡に使用される。 .\"O .I nlmsg_pid .\"O shows the origin of the message. .I nlmsg_pid -¤Ï¥á¥Ã¥»¡¼¥¸¤ÎÁ÷¿®¸µ¤òɽ¤¹¡£ +はメッセージの送信元を表す。 .\"O Note that there isn't a 1:1 relationship between .\"O .I nlmsg_pid .\"O and the PID of the process if the message originated from a netlink .\"O socket. -¥á¥Ã¥»¡¼¥¸¤¬ netlink ¥½¥±¥Ã¥È¤ÇÁ÷¿®¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ +メッセージが netlink ソケットで送信されている場合、 .I nlmsg_pid -¤È¥×¥í¥»¥¹¤Î PID ¤Ï 1:1 ¤Î´Ø·¸¤Ç¤Ï¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +とプロセスの PID は 1:1 の関係ではない点に注意すること。 .\"O See the .\"O .B ADDRESS FORMATS .\"O section for further information. -¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï¡¢ -.RB ¡Ö ¥¢¥É¥ì¥¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È ¡× -¤Î¥»¥¯¥·¥ç¥ó¤ò»²¾È¤¹¤ë¤³¤È¡£ +より詳しい情報は、 +.RB 「 アドレスのフォーマット 」 +のセクションを参照すること。 .\"O Both .\"O .I nlmsg_seq @@ -387,12 +387,12 @@ NLM_F_APPEND: .\"O .\" FIXME Explain more about nlmsg_seq and nlmsg_pid. .\"O are opaque to netlink core. .I nlmsg_seq -¤È +と .I nlmsg_pid -¤Ï netlink ¤Î¥³¥¢¤Ë¤Ï¸«¤¨¤Ê¤¤ (opaque)¡£ +は netlink のコアには見えない (opaque)。 .\"O Netlink is not a reliable protocol. -netlink ¤Ï¿®ÍêÀ­¤Î¹â¤¤¥×¥í¥È¥³¥ë¤Ç¤Ï¤Ê¤¤¡£ +netlink は信頼性の高いプロトコルではない。 .\"O It tries its best to deliver a message to its destination(s), .\"O but may drop messages when an out-of-memory condition or .\"O other error occurs. @@ -403,53 +403,53 @@ netlink .\"O An acknowledgment is an .\"O .B NLMSG_ERROR .\"O packet with the error field set to 0. -netlink ¤Ï¥á¥Ã¥»¡¼¥¸¤ò¹Ô¤­Àè¤ËÆϤ±¤ë¤¿¤á¤ËºÇÁ±¤ò¿Ô¤¯¤¹¤¬¡¢ -¥á¥â¥ê¤¬Â­¤ê¤Ê¤«¤Ã¤¿¤ê¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¤ê¤¹¤ë¤È -¥á¥Ã¥»¡¼¥¸¤ò¼è¤ê¤³¤Ü¤¹¤³¤È¤â¤¢¤ë¡£ -¿®ÍêÀ­¤Î¹â¤¤Å¾Á÷¤ò¹Ô¤¤¤¿¤¤¤È¤­¤Ï¡¢ -Á÷¿®¼Ô¤Ï¼õ¿®¼Ô¤Ë±þÅú¤òÍ׵᤹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¤³¤ì¤Ë¤Ï +netlink はメッセージを行き先に届けるために最善を尽くすが、 +メモリが足りなかったりエラーが起こったりすると +メッセージを取りこぼすこともある。 +信頼性の高い転送を行いたいときは、 +送信者は受信者に応答を要求することもできる。 +これには .B NLM_F_ACK -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -±þÅú¤Ï +フラグをセットする。 +応答は .B NLMSG_ERROR -¥Ñ¥±¥Ã¥È¤Î¥¨¥é¡¼¥Õ¥£¡¼¥ë¥É¤ò 0 ¤Ë¤·¤¿¤â¤Î¤Ë¤Ê¤ë¡£ +パケットのエラーフィールドを 0 にしたものになる。 .\"O The application must generate acknowledgements for .\"O received messages itself. .\"O The kernel tries to send an .\"O .B NLMSG_ERROR .\"O message for every failed packet. -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¼«Ê¬¼«¿È¤Î¥á¥Ã¥»¡¼¥¸¤ò¼õ¤±¤¿¤È¤­¤Ë¤Ï¡¢ -±þÅú¤òÀ¸À®¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥«¡¼¥Í¥ë¤Ï¼ºÇÔ¤·¤¿¥Ñ¥±¥Ã¥È¤ËÂФ·¤Æ¡¢ +アプリケーションは自分自身のメッセージを受けたときには、 +応答を生成しなければならない。 +カーネルは失敗したパケットに対して、 .B NLMSG_ERROR -¥á¥Ã¥»¡¼¥¸¤òÁ÷¤í¤¦¤È¤¹¤ë¡£ +メッセージを送ろうとする。 .\"O A user process should follow this convention too. -¥æ¡¼¥¶¡¼¥×¥í¥»¥¹¤Ï¤³¤Î´·½¬¤Ë¤â½¾¤¦É¬Íפ¬¤¢¤ë¡£ +ユーザープロセスはこの慣習にも従う必要がある。 .\"O However, reliable transmissions from kernel to user are impossible .\"O in any case. -¤·¤«¤·¡¢¤É¤Î¤è¤¦¤Ê¾ì¹ç¤Ç¤â¥«¡¼¥Í¥ë¤«¤é¥æ¡¼¥¶¡¼¤Ø¤Î -¿®ÍêÀ­¤Î¹â¤¤Å¾Á÷¤ÏÉÔ²Äǽ¤Ç¤¢¤ë¡£ +しかし、どのような場合でもカーネルからユーザーへの +信頼性の高い転送は不可能である。 .\"O The kernel can't send a netlink message if the socket buffer is full: .\"O the message will be dropped and the kernel and the userspace process will .\"O no longer have the same view of kernel state. -¥½¥±¥Ã¥È¥Ð¥Ã¥Õ¥¡¤¬ËþÇդξì¹ç¡¢¥«¡¼¥Í¥ë¤Ï netlink ¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¤Ç¤­¤Ê¤¤¡£ -¥á¥Ã¥»¡¼¥¸¤Ï¼è¤ê¤³¤Ü¤µ¤ì¤Æ¡¢¥«¡¼¥Í¥ë¤È¥æ¡¼¥¶¡¼¶õ´Ö¥×¥í¥»¥¹¤Ï¡¢ -¥«¡¼¥Í¥ë¤Î¾õÂ֤ˤĤ¤¤Æ¤ÎƱ¤¸¥Ó¥å¡¼¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤Ê¤¯¤Ê¤ë¡£ +ソケットバッファが満杯の場合、カーネルは netlink メッセージを送信できない。 +メッセージは取りこぼされて、カーネルとユーザー空間プロセスは、 +カーネルの状態についての同じビューを持つことができなくなる。 .\"O It is up to the application to detect when this happens (via the .\"O .B ENOBUFS .\"O error returned by .\"O .BR recvmsg (2)) .\"O and resynchronize. -¤³¤ì¤¬µ¯¤³¤Ã¤¿¤³¤È +これが起こったこと .RB ( recvmsg (2) -¤Ë¤è¤Ã¤Æ +によって .B ENOBUFS -¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë) ¤ò¸¡ÃΤ·¤ÆºÆ¤ÓƱ´ü¤µ¤»¤ë¤Î¤Ï¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÀÕǤ¤Ç¤¢¤ë¡£ +エラーが返される) を検知して再び同期させるのは、 +アプリケーションの責任である。 .\"O .SS Address Formats -.SS ¥¢¥É¥ì¥¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È +.SS アドレスのフォーマット .\"O The .\"O .I sockaddr_nl .\"O structure describes a netlink client in user space or in the kernel. @@ -460,12 +460,12 @@ netlink .\"O .RI ( nl_groups .\"O not equal 0). .I sockaddr_nl -¹½Â¤ÂΤϥ桼¥¶¡¼¶õ´Ö¤ä¥«¡¼¥Í¥ë¶õ´Ö¤Ç netlink ¥¯¥é¥¤¥¢¥ó¥È¤òµ­½Ò¤¹¤ë¡£ +構造体はユーザー空間やカーネル空間で netlink クライアントを記述する。 .I sockaddr_nl -¤Ï¥æ¥Ë¥­¥ã¥¹¥È (ñ°ì¤ÎÀܳÀè¤Ë¤À¤±Á÷¤é¤ì¤ë) ¤Ë¤â¤Ç¤­¤ë¤·¡¢ -netlink ¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥× +はユニキャスト (単一の接続先にだけ送られる) にもできるし、 +netlink マルチキャストグループ .RI ( nl_groups -¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç) ¤Ë¤âÁ÷¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +が 0 でない場合) にも送ることができる。 .in +4n .nf @@ -475,9 +475,9 @@ struct sockaddr_nl { .\"O pid_t nl_pid; /* Process ID. */ .\"O __u32 nl_groups; /* Multicast groups mask. */ sa_family_t nl_family; /* AF_NETLINK */ - unsigned short nl_pad; /* 0 ¤Ç¤¢¤ë */ - pid_t nl_pid; /* ¥×¥í¥»¥¹ ID */ - __u32 nl_groups; /* ¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¥Þ¥¹¥¯ */ + unsigned short nl_pad; /* 0 である */ + pid_t nl_pid; /* プロセス ID */ + __u32 nl_groups; /* マルチキャストグループマスク */ }; .fi .in @@ -486,32 +486,32 @@ struct sockaddr_nl { .\"O is the unicast address of netlink socket. .\"O It's always 0 if the destination is in the kernel. .I nl_pid -¤Ï netlink ¥½¥±¥Ã¥È¤Î¥æ¥Ë¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ -¹Ô¤­À褬¥«¡¼¥Í¥ë¤Î¾ì¹ç¤Ï¡¢¾ï¤Ë 0 ¤Ç¤¢¤ë¡£ +は netlink ソケットのユニキャストアドレスである。 +行き先がカーネルの場合は、常に 0 である。 .\"O For a userspace process, .\"O .I nl_pid .\"O is usually the PID of the process owning the destination socket. -¥æ¡¼¥¶¡¼¶õ´Ö¥×¥í¥»¥¹¤Î¾ì¹ç¡¢Ä̾ï¤Ï +ユーザー空間プロセスの場合、通常は .I nl_pid -¤Ï¹Ô¤­Àè¤Î¥½¥±¥Ã¥È¤ò½êÍ­¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î PID ¤Ç¤¢¤ë¡£ +は行き先のソケットを所有しているプロセスの PID である。 .\"O However, .\"O .I nl_pid .\"O identifies a netlink socket, not a process. -¤¿¤À¤·¡¢ +ただし、 .I nl_pid -¤Ï¥×¥í¥»¥¹¤Ç¤Ï¤Ê¤¯ netlink ¥½¥±¥Ã¥È¤òƱÄꤹ¤ë¡£ +はプロセスではなく netlink ソケットを同定する。 .\"O If a process owns several netlink .\"O sockets, then .\"O .I nl_pid .\"O can only be equal to the process ID for at most one socket. -¥×¥í¥»¥¹¤¬Ê£¿ô¤Î netlink ¥½¥±¥Ã¥È¤ò½êÍ­¤¹¤ë¾ì¹ç¡¢ +プロセスが複数の netlink ソケットを所有する場合、 .I nl_pid -¤ÏºÇÂç¤Ç¤â°ì¤Ä¤Î¥½¥±¥Ã¥È¤Î¥×¥í¥»¥¹ ID ¤È¤·¤«Åù¤·¤¯¤Ê¤é¤Ê¤¤¡£ +は最大でも一つのソケットのプロセス ID としか等しくならない。 .\"O There are two ways to assign .\"O .I nl_pid .\"O to a netlink socket. .I nl_pid -¤ò netlink ¥½¥±¥Ã¥È¤Ë³ä¤êÅö¤Æ¤ëÊýË¡¤Ï 2 ¤Ä¤¢¤ë¡£ +を netlink ソケットに割り当てる方法は 2 つある。 .\"O If the application sets .\"O .I nl_pid .\"O before calling @@ -519,33 +519,33 @@ struct sockaddr_nl { .\"O then it is up to the application to make sure that .\"O .I nl_pid .\"O is unique. -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬ +アプリケーションが .BR bind (2) -¤ò¸Æ¤ÖÁ°¤Ë +を呼ぶ前に .I nl_pid -¤òÀßÄꤹ¤ë¾ì¹ç¡¢ +を設定する場合、 .I nl_pid -¤¬°ì°Õ¤Ç¤¢¤ë¤³¤È¤ò³Îǧ¤¹¤ë¤Î¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÀÕǤ¤È¤Ê¤ë¡£ +が一意であることを確認するのはアプリケーションの責任となる。 .\"O If the application sets it to 0, the kernel takes care of assigning it. -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬ +アプリケーションが .I nl_pid -¤ò 0 ¤ËÀßÄꤷ¤¿¾ì¹ç¡¢¥«¡¼¥Í¥ë¤¬¤³¤ÎÃͤò³ä¤êÅö¤Æ¤ë¡£ +を 0 に設定した場合、カーネルがこの値を割り当てる。 .\"O The kernel assigns the process ID to the first netlink socket the process .\"O opens and assigns a unique .\"O .I nl_pid .\"O to every netlink socket that the process subsequently creates. -¥«¡¼¥Í¥ë¤Ï¥×¥í¥»¥¹¤¬ºÇ½é¤Ë¥ª¡¼¥×¥ó¤·¤¿ -netlink ¥½¥±¥Ã¥È¤ËÂФ·¤Æ¥×¥í¥»¥¹ ID ¤ò³ä¤êÅö¤Æ¡¢ -¤½¤ì°Ê¹ß¤Ë¥×¥í¥»¥¹¤¬ºîÀ®¤·¤¿Á´¤Æ¤Î netlink ¥½¥±¥Ã¥È¤Ë¤â°ì°Õ¤Ê +カーネルはプロセスが最初にオープンした +netlink ソケットに対してプロセス ID を割り当て、 +それ以降にプロセスが作成した全ての netlink ソケットにも一意な .I nl_pid -¤ò³ä¤êÅö¤Æ¤ë¡£ +を割り当てる。 .\"O .I nl_groups .\"O is a bit mask with every bit representing a netlink group number. .I nl_groups -¤Ï¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¡¢¤¹¤Ù¤Æ¤Î¥Ó¥Ã¥È¤¬ netlink ¥°¥ë¡¼¥×ÈÖ¹æ¤òɽ¤¹¡£ +はビットマスクで、すべてのビットが netlink グループ番号を表す。 .\"O Each netlink family has a set of 32 multicast groups. -¤½¤ì¤¾¤ì¤Î netlink ¥Õ¥¡¥ß¥ê¡¼¤Ï 32 ¤Î¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¤Î¥»¥Ã¥È¤ò»ý¤Ä¡£ +それぞれの netlink ファミリーは 32 のマルチキャストグループのセットを持つ。 .\"O When .\"O .BR bind (2) .\"O is called on the socket, the @@ -553,14 +553,14 @@ netlink .\"O field in the .\"O .I sockaddr_nl .\"O should be set to a bit mask of the groups which it wishes to listen to. -¤½¤ì¤¾¤ì¤Î netlink ¥Õ¥¡¥ß¥ê¡¼¤Ï 32 ¤Î¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¤Î -¥»¥Ã¥È¤ò»ý¤Ä¡£ +それぞれの netlink ファミリーは 32 のマルチキャストグループの +セットを持つ。 .BR bind (2) -¤¬¥½¥±¥Ã¥È¤ËÂФ·¤Æ¸Æ¤Ð¤ì¤ë¤È¡¢ +がソケットに対して呼ばれると、 .I sockaddr_nl -¤Î +の .I nl_groups -¥Õ¥£¡¼¥ë¥É¤Ë¤Ï listen ¤·¤¿¤¤¥°¥ë¡¼¥×¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +フィールドには listen したいグループのビットマスクがセットされる。 .\"O The default value for this field is zero which means that no multicasts .\"O will be received. .\"O A socket may multicast messages to any of the multicast groups by setting @@ -569,73 +569,73 @@ netlink .\"O .BR sendmsg (2) .\"O or does a .\"O .BR connect (2). -¥Ç¥Õ¥©¥ë¥È¤ÎÃÍ¤Ï 0 ¤Ç¡¢¥Þ¥ë¥Á¥­¥ã¥¹¥È¤ò°ìÀÚ¼õ¿®¤·¤Ê¤¤¡£ +デフォルトの値は 0 で、マルチキャストを一切受信しない。 .BR sendmsg (2) -¤ä +や .BR connect (2) -¤Ë¤è¤Ã¤Æ¡¢¤¢¤ë¥½¥±¥Ã¥È¤«¤é¥á¥Ã¥»¡¼¥¸¤ò¥Þ¥ë¥Á¥­¥ã¥¹¥È¤·¤¿¤¤¤È¤­¤Ï¡¢ +によって、あるソケットからメッセージをマルチキャストしたいときは、 .I nl_groups -¤ËÁ÷¿®¤·¤¿¤¤¥°¥ë¡¼¥×¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤ò¥»¥Ã¥È¤¹¤ì¤Ð¤è¤¤¡£ +に送信したいグループのビットマスクをセットすればよい。 .\"O Only processes with an effective UID of 0 or the .\"O .B CAP_NET_ADMIN .\"O capability may send or listen to a netlink multicast group. -¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤«¡¢ +実効ユーザー ID が 0 か、 .B CAP_NET_ADMIN -¸¢¸Â¤ò»ý¤Ä¥æ¡¼¥¶¡¼¤Î¤ß¤¬ netlink ¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¤Ë -Á÷¿®¤·¤¿¤ê¡¢¤³¤ì¤ò listen ¤·¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +権限を持つユーザーのみが netlink マルチキャストグループに +送信したり、これを listen したりすることができる。 .\"O Any replies to a message received for a multicast group should be .\"O sent back to the sending PID and the multicast group. -¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¸þ¤±¥á¥Ã¥»¡¼¥¸¤ò¼õ¿®¤·¤¿¾ì¹ç¡¢¤³¤ìÂФ¹¤ë±þÅú¤Ï -Á÷¤ê¼ç¤Î PID ¤È¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¤È¤ËÁ÷¤êÊÖ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +マルチキャストグループ向けメッセージを受信した場合、これ対する応答は +送り主の PID とマルチキャストグループとに送り返すべきである。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The socket interface to netlink is a new feature of Linux 2.2. -netlink ¤Ø¤Î¥½¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï Linux 2.2 ¤Î¿·µ¡Ç½¤Ç¤¢¤ë¡£ +netlink へのソケットインターフェースは Linux 2.2 の新機能である。 .\"O Linux 2.0 supported a more primitive device-based netlink interface .\"O (which is still available as a compatibility option). .\"O This obsolete interface is not described here. -Linux 2.0 ¤Ï¡¢¤â¤Ã¤È¸¶»ÏŪ¤Ê¥Ç¥Ð¥¤¥¹¥Ù¡¼¥¹¤Î netlink ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò -¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤¿ (¤³¤ì¤â¸ß´¹À­¤Î¤¿¤á¤Ëº£¤Ç¤â»ÈÍѤǤ­¤ë)¡£ -¸Å¤¤¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë´Ø¤·¤Æ¤Ï¤³¤³¤Ç¤Ïµ­½Ò¤·¤Ê¤¤¡£ +Linux 2.0 は、もっと原始的なデバイスベースの netlink インターフェースを +サポートしていた (これも互換性のために今でも使用できる)。 +古いインターフェースに関してはここでは記述しない。 .\"O NETLINK_SELINUX appeared in Linux 2.6.4. -NETLINK_SELINUX ¤Ï Linux 2.6.4 ¤ÇÅо줷¤¿¡£ +NETLINK_SELINUX は Linux 2.6.4 で登場した。 .\"O NETLINK_AUDIT appeared in Linux 2.6.6. -NETLINK_AUDIT ¤Ï Linux 2.6.6 ¤ÇÅо줷¤¿¡£ +NETLINK_AUDIT は Linux 2.6.6 で登場した。 .\"O NETLINK_KOBJECT_UEVENT appeared in Linux 2.6.10. -NETLINK_KOBJECT_UEVENT ¤Ï Linux 2.6.10 ¤ÇÅо줷¤¿¡£ +NETLINK_KOBJECT_UEVENT は Linux 2.6.10 で登場した。 .\"O NETLINK_W1 and NETLINK_FIB_LOOKUP appeared in Linux 2.6.13. -NETLINK_W1, NETLINK_FIB_LOOKUP ¤Ï Linux 2.6.13 ¤ÇÅо줷¤¿¡£ +NETLINK_W1, NETLINK_FIB_LOOKUP は Linux 2.6.13 で登場した。 .\"O NETLINK_INET_DIAG, NETLINK_CONNECTOR and NETLINK_NETFILTER appeared in .\"O Linux 2.6.14. -NETLINK_INET_DIAG, NETLINK_CONNECTOR, NETLINK_NETFILTER ¤Ï -Linux 2.6.14 ¤ÇÅо줷¤¿¡£ +NETLINK_INET_DIAG, NETLINK_CONNECTOR, NETLINK_NETFILTER は +Linux 2.6.14 で登場した。 .\"O NETLINK_GENERIC and NETLINK_ISCSI appeared in Linux 2.6.15. -NETLINK_GENERIC, NETLINK_ISCSI ¤Ï Linux 2.6.15 ¤ÇÅо줷¤¿¡£ +NETLINK_GENERIC, NETLINK_ISCSI は Linux 2.6.15 で登場した。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O It is often better to use netlink via .\"O .I libnetlink .\"O or .\"O .I libnl .\"O than via the low-level kernel interface. -Äã¥ì¥Ù¥ë¤Î¥«¡¼¥Í¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤è¤ê¡¢ +低レベルのカーネルインターフェースより、 .I libnetlink -¤Þ¤¿¤Ï +または .I libnl -¤òÄ̤·¤Æ netlink ¤òÍøÍѤ¹¤ë¤Û¤¦¤¬Îɤ¤¤³¤È¤¬Â¿¤¤¡£ +を通して netlink を利用するほうが良いことが多い。 .\"O .SH BUGS .\"O This manual page is not complete. -.SH ¥Ð¥° -¤³¤Î man ¥Ú¡¼¥¸¤Ï´°À®¤·¤Æ¤¤¤Ê¤¤¡£ +.SH バグ +この man ページは完成していない。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O The following example creates a .\"O .B NETLINK_ROUTE .\"O netlink socket which will listen to the @@ -643,13 +643,13 @@ NETLINK_GENERIC, NETLINK_ISCSI .\"O (network interface create/delete/up/down events) and .\"O .B RTMGRP_IPV4_IFADDR .\"O (IPv4 addresses add/delete events) multicast groups. -°Ê²¼¤ÎÎã¤Ç¤Ï¡¢ +以下の例では、 .B RTMGRP_LINK -(¥Í¥Ã¥È¥ï¡¼¥¯¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î create/delete/up/down ¥¤¥Ù¥ó¥È) ¤È +(ネットワークインターフェースの create/delete/up/down イベント) と .B RTMGRP_IPV4_IFADDR -(IPv4 ¥¢¥É¥ì¥¹¤Î add/delete ¥¤¥Ù¥ó¥È) ¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¤ò listen ¤¹¤ë +(IPv4 アドレスの add/delete イベント) マルチキャストグループを listen する .B NETLINK_ROUTE -netlink ¤òºîÀ®¤·¤Æ¤¤¤ë¡£ +netlink を作成している。 .in +4n .nf @@ -668,14 +668,14 @@ bind(fd, (struct sockaddr *) &sa, sizeof(sa)); .\"O kernel (pid 0). .\"O Note that application must take care of message sequence numbers .\"O in order to reliably track acknowledgements. -¼¡¤ÎÎã¤Ç¤Ï¡¢netlink ¥á¥Ã¥»¡¼¥¸¤ò¥«¡¼¥Í¥ë (pid 0) ¤ËÁ÷¤ëÊýË¡¤ò¼¨¤·¤Æ¤¤¤ë¡£ -±þÅú¤òÄÉÀפ¹¤ëºÝ¤Î¿®ÍêÀ­¤ò¹â¤á¤ë¤¿¤á¤Ë¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬ -¥á¥Ã¥»¡¼¥¸¤Î¥·¡¼¥±¥ó¥¹ÈÖ¹æ¤òÀµ¤·¤¯½èÍý¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +次の例では、netlink メッセージをカーネル (pid 0) に送る方法を示している。 +応答を追跡する際の信頼性を高めるために、アプリケーションが +メッセージのシーケンス番号を正しく処理しなければならない点に注意すること。 .in +4n .nf .\"O struct nlmsghdr *nh; /* The nlmsghdr with payload to send. */ -struct nlmsghdr *nh; /* Á÷¿®¤¹¤ë nlmsghdr ¤È¥Ú¥¤¥í¡¼¥É */ +struct nlmsghdr *nh; /* 送信する nlmsghdr とペイロード */ struct sockaddr_nl sa; struct iovec iov = { (void *) nh, nh\->nlmsg_len }; struct msghdr msg; @@ -686,7 +686,7 @@ sa.nl_family = AF_NETLINK; nh\->nlmsg_pid = 0; nh\->nlmsg_seq = ++sequence_number; .\"O /* Request an ack from kernel by setting NLM_F_ACK. */ -/* NLM_F_ACK ¤òÀßÄꤹ¤ë¤³¤È¤Ç¡¢¥«¡¼¥Í¥ë¤Ë±þÅú¤òÍ׵᤹¤ë */ +/* NLM_F_ACK を設定することで、カーネルに応答を要求する */ nh\->nlmsg_flags |= NLM_F_ACK; sendmsg(fd, &msg, 0); @@ -694,7 +694,7 @@ sendmsg(fd, &msg, 0); .in .\"O And the last example is about reading netlink message. -ºÇ¸å¤Ï¡¢netlink ¥á¥Ã¥»¡¼¥¸¤ÎÆɤ߹þ¤ß¤ÎÎã¤Ç¤¢¤ë¡£ +最後は、netlink メッセージの読み込みの例である。 .in +4n .nf @@ -711,23 +711,23 @@ len = recvmsg(fd, &msg, 0); for (nh = (struct nlmsghdr *) buf; NLMSG_OK (nh, len); nh = NLMSG_NEXT (nh, len)) { .\"O /* The end of multipart message. */ - /* ¥Þ¥ë¥Á¥Ñ¡¼¥È¥á¥Ã¥»¡¼¥¸¤Î½ª¤ï¤ê */ + /* マルチパートメッセージの終わり */ if (nh\->nlmsg_type == NLMSG_DONE) return; if (nh\->nlmsg_type == NLMSG_ERROR) .\"O /* Do some error handling. */ - /* ²¿¤é¤«¤Î¥¨¥é¡¼½èÍý¤ò¹Ô¤¦ */ + /* 何らかのエラー処理を行う */ ... .\"O /* Continue with parsing payload. */ - /* ¥Ú¥¤¥í¡¼¥É¤Î²òÀϤò³¤±¤ë */ + /* ペイロードの解析を続ける */ ... } .fi .in .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cmsg (3), .BR netlink (3), .BR capabilities (7), @@ -735,12 +735,12 @@ for (nh = (struct nlmsghdr *) buf; NLMSG_OK (nh, len); .PP .\"O ftp://ftp.inr.ac.ru/ip-routing/iproute2* .\"O for information about libnetlink. -libnetlink ¤Ë´Ø¤¹¤ë¾ðÊó¤Ï +libnetlink に関する情報は ftp://ftp.inr.ac.ru/ip-routing/iproute2* .\"O http://people.suug.ch/~tgr/libnl/ .\"O for information about libnl. -libnl ¤Ë´Ø¤¹¤ë¾ðÊó¤Ï +libnl に関する情報は http://people.suug.ch/~tgr/libnl/ RFC 3549 "Linux Netlink as an IP Services Protocol" diff --git a/draft/man7/operator.7 b/draft/man7/operator.7 index 1a75ae04..02ad4b85 100644 --- a/draft/man7/operator.7 +++ b/draft/man7/operator.7 @@ -42,13 +42,13 @@ .\" .TH OPERATOR 7 2011-09-09 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O operator \- C operator precedence and order of evaluation -operator \- C ¸À¸ì¤Î±é»»»Ò¤ÎÍ¥Àè½ç°Ì¤Èɾ²Á¤Î½ç½ø +operator \- C 言語の演算子の優先順位と評価の順序 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This manual page lists C operators and their precedence in evaluation. -¤³¤Î man ¥Ú¡¼¥¸¤Ç¤Ï C ¸À¸ì¤Î±é»»»Ò¤Èɾ²Á¤ÎÍ¥Àè½ç°Ì¤ò¥ê¥¹¥È¤¹¤ë¡£ +この man ページでは C 言語の演算子と評価の優先順位をリストする。 .nf .\"O .B "Operator Associativity" @@ -67,21 +67,21 @@ operator \- C .\"O ?: right to left .\"O = += \-= *= /= %= <<= >>= &= ^= |= right to left .\"O , left to right -.B "±é»»»Ò ·ë¹ç¤Î½ç½ø" -() [] \-> . º¸¤«¤é±¦¤Ø -! ~ ++ \-\- + \- (type) * & sizeof ±¦¤«¤éº¸¤Ø -* / % º¸¤«¤é±¦¤Ø -+ \- º¸¤«¤é±¦¤Ø -<< >> º¸¤«¤é±¦¤Ø -< <= > >= º¸¤«¤é±¦¤Ø -== != º¸¤«¤é±¦¤Ø -& º¸¤«¤é±¦¤Ø -^ º¸¤«¤é±¦¤Ø -| º¸¤«¤é±¦¤Ø -&& º¸¤«¤é±¦¤Ø -|| º¸¤«¤é±¦¤Ø -?: ±¦¤«¤éº¸¤Ø -= += \-= *= /= %= <<= >>= &= ^= |= ±¦¤«¤éº¸¤Ø -, º¸¤«¤é±¦¤Ø +.B "演算子 結合の順序" +() [] \-> . 左から右へ +! ~ ++ \-\- + \- (type) * & sizeof 右から左へ +* / % 左から右へ ++ \- 左から右へ +<< >> 左から右へ +< <= > >= 左から右へ +== != 左から右へ +& 左から右へ +^ 左から右へ +| 左から右へ +&& 左から右へ +|| 左から右へ +?: 右から左へ += += \-= *= /= %= <<= >>= &= ^= |= 右から左へ +, 左から右へ .fi .\" diff --git a/draft/man7/packet.7 b/draft/man7/packet.7 index ce01d0dc..22550080 100644 --- a/draft/man7/packet.7 +++ b/draft/man7/packet.7 @@ -10,21 +10,21 @@ .\" Updated 2001-02-13, Kentaro Shirakata .\" Updated 2005-02-21, Akihiro MOTOKI .\" -.\"WORD physical layer ʪÍýÁØ -.\"WORD link level header(s) ¥ê¥ó¥¯¥ì¥Ù¥ë¥Ø¥Ã¥À -.\"WORD phyxical header(s) ʪÍý¥Ø¥Ã¥À -.\"WORD effective user id ¼Â¸ú¥æ¡¼¥¶¡¼ ID -.\"WORD capability ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ -.\"WORD pending error Ãٱ䥨¥é¡¼ -.\"WORD promiscuous mode ̵º¹Ê̥⡼¥É +.\"WORD physical layer 物理層 +.\"WORD link level header(s) リンクレベルヘッダ +.\"WORD phyxical header(s) 物理ヘッダ +.\"WORD effective user id 実効ユーザー ID +.\"WORD capability ケーパビリティ +.\"WORD pending error 遅延エラー +.\"WORD promiscuous mode 無差別モード .\" .TH PACKET 7 2008-08-08 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O packet, AF_PACKET \- packet interface on device level. -packet, AF_PACKET \- ¥Ç¥Ð¥¤¥¹¥ì¥Ù¥ë¤Î¥Ñ¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ +packet, AF_PACKET \- デバイスレベルのパケットインターフェース .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .br @@ -35,15 +35,15 @@ packet, AF_PACKET \- .BI "packet_socket = socket(AF_PACKET, int " socket_type ", int "protocol ); .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Packet sockets are used to receive or send raw packets at the device driver .\"O (OSI Layer 2) level. .\"O They allow the user to implement protocol modules in user space .\"O on top of the physical layer. -packet ¥½¥±¥Ã¥È¤Ï¡¢¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð (OSI ¥ì¥¤¥ä 2) ¥ì¥Ù¥ë¤Ç -À¸¤Î¥Ñ¥±¥Ã¥È (raw packet) ¤òÁ÷¼õ¿®¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ -packet ¥½¥±¥Ã¥È¤ò»È¤¦¤È¡¢¥æ¡¼¥¶¡¼¶õ´Ö¤ÇʪÍýÁؤξå¤Ë -¥×¥í¥È¥³¥ë¥â¥¸¥å¡¼¥ë¤ò¼ÂÁõ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +packet ソケットは、デバイスドライバ (OSI レイヤ 2) レベルで +生のパケット (raw packet) を送受信するために用いられる。 +packet ソケットを使うと、ユーザー空間で物理層の上に +プロトコルモジュールを実装することができる。 .\"O The .\"O .I socket_type @@ -67,37 +67,37 @@ packet .\"O All incoming packets of that protocol type will be passed to the packet .\"O socket before they are passed to the protocols implemented in the kernel. .I socket_type -¤Ë¤Ï +には .B SOCK_RAW -¤È +と .B SOCK_DGRAM -¤Î¤¤¤º¤ì¤«¤ò»ØÄꤹ¤ë¡£ +のいずれかを指定する。 .B SOCK_RAW -¤Ï¥ê¥ó¥¯¥ì¥Ù¥ë¥Ø¥Ã¥À¤ò´Þ¤à raw ¥Ñ¥±¥Ã¥È¤ò¡¢ +はリンクレベルヘッダを含む raw パケットを、 .B SOCK_DGRAM -¤Ï¥ê¥ó¥¯¥ì¥Ù¥ë¥Ø¥Ã¥À¤¬ºï½ü¤µ¤ì¤¿²Ã¹©ºÑ¤ß¥Ñ¥±¥Ã¥È¤ò¼¨¤¹¡£ -¥ê¥ó¥¯¥ì¥Ù¥ë¥Ø¥Ã¥À¾ðÊó¤Ï +はリンクレベルヘッダが削除された加工済みパケットを示す。 +リンクレベルヘッダ情報は .I sockaddr_ll -¤Ç¶¦Ä̤Υե©¡¼¥Þ¥Ã¥È¤ÇÆþ¼ê¤Ç¤­¤ë¡£ +で共通のフォーマットで入手できる。 .I protocol -¤Ë¤Ï IEEE 802.3 ¥×¥í¥È¥³¥ëÈÖ¹æ¤ò -¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Ç»ØÄꤹ¤ë¡£ -»ØÄê¤Ç¤­¤ë¥×¥í¥È¥³¥ë¤Î¥ê¥¹¥È¤Ï¡¢¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +には IEEE 802.3 プロトコル番号を +ネットワークバイトオーダーで指定する。 +指定できるプロトコルのリストは、インクルードファイル .I -¤ò»²¾È¡£¥×¥í¥È¥³¥ë¤ò +を参照。プロトコルを .B htons(ETH_P_ALL) -¤Ë¤¹¤ë¤È¡¢Á´¤Æ¤Î¥×¥í¥È¥³¥ë¤¬¼õ¿®¤µ¤ì¤ë¡£ -³°Éô¤«¤éÍ褿¥Ñ¥±¥Ã¥È¤Î¤¦¤Á»ØÄꤷ¤¿¥×¥í¥È¥³¥ë¤Î¤â¤Î¤Ï¡¢ -¥«¡¼¥Í¥ë¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¥×¥í¥È¥³¥ë¤ËÅϤµ¤ì¤ëÁ°¤ÎÃʳ¬¤Ç¡¢ -packet ¥½¥±¥Ã¥È¤ËÅϤµ¤ì¤ë¡£ +にすると、全てのプロトコルが受信される。 +外部から来たパケットのうち指定したプロトコルのものは、 +カーネルに実装されているプロトコルに渡される前の段階で、 +packet ソケットに渡される。 .\"O Only processes with effective UID 0 or the .\"O .B CAP_NET_RAW .\"O capability may open packet sockets. -packet ¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤Ç¤­¤ë¤Î¤Ï¡¢ -¼Â¸ú¥æ¡¼¥¶¡¼ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤«¡¢ +packet ソケットをオープンできるのは、 +実効ユーザーID が 0 のプロセスか、 .B CAP_NET_RAW -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹¤À¤±¤Ç¤¢¤ë¡£ +ケーパビリティを持つプロセスだけである。 .\"O .B SOCK_RAW .\"O packets are passed to and from the device driver without any changes in @@ -117,20 +117,20 @@ packet .\"O .B AF_INET/SOCK_PACKET .\"O of Linux 2.0. .B SOCK_RAW -¥Ñ¥±¥Ã¥È¤Ç¤Ï¡¢¥Ñ¥±¥Ã¥È¤ò¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤È¼õ¤±ÅϤ·¤¹¤ëºÝ¡¢ -¥Ñ¥±¥Ã¥È¥Ç¡¼¥¿¤ËÊѹ¹¤¬¹Ô¤ï¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ -¥Ñ¥±¥Ã¥È¤Î¼õ¿®»þ¤Ë¤Ï¡¢¥¢¥É¥ì¥¹¤Î²òÀϤÀ¤±¤Ï¹Ô¤ï¤ì¡¢ -ɸ½àŪ¤Ê +パケットでは、パケットをデバイスドライバと受け渡しする際、 +パケットデータに変更が行われることはない。 +パケットの受信時には、アドレスの解析だけは行われ、 +標準的な .I sockaddr_ll -¥¢¥É¥ì¥¹¹½Â¤ÂΤËÅϤµ¤ì¤ë¡£¥Ñ¥±¥Ã¥È¤ÎÁ÷¿®»þ¤Ë¤Ï¡¢¥æ¡¼¥¶¤¬»ØÄꤹ¤ë -¥Ð¥Ã¥Õ¥¡¤ËʪÍýÁؤΥإåÀ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ -¥Ñ¥±¥Ã¥È¤Ï¤½¤Î¤Þ¤Þ½¤Àµ¤ò¼õ¤±¤º¤Ë¡¢¹Ô¤­À襢¥É¥ì¥¹¤«¤é·èÄꤵ¤ì¤ë -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥É¥é¥¤¥Ð¤Ë¥­¥å¡¼¥¤¥ó¥°¤µ¤ì¤ë¡£ -¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ë¤è¤Ã¤Æ¤Ï¡¢Â¾¤Î¥Ø¥Ã¥À¤ò¾ï¤ËÄɲ乤ë¤â¤Î¤â¤¢¤ë¡£ +アドレス構造体に渡される。パケットの送信時には、ユーザが指定する +バッファに物理層のヘッダが含まれている必要がある。 +パケットはそのまま修正を受けずに、行き先アドレスから決定される +インターフェースのネットワークドライバにキューイングされる。 +デバイスドライバによっては、他のヘッダを常に追加するものもある。 .B SOCK_RAW -¤Ï Linux 2.0 ¤Î obosolete ¤Ê +は Linux 2.0 の obosolete な .B AF_INET/SOCK_PACKET -¤È»÷¤Æ¤¤¤ë¤¬¡¢¸ß´¹À­¤¬¤¢¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ +と似ているが、互換性があるわけではない。 .\"O .B SOCK_DGRAM .\"O operates on a slightly higher level. @@ -142,13 +142,13 @@ packet .\"O .I sockaddr_ll .\"O destination address before they are queued. .B SOCK_DGRAM -¤Ï¤ä¤ä¹â°Ì¤Î¥ì¥Ù¥ë¤ÇÆ°ºî¤¹¤ë¡£ÊªÍý¥Ø¥Ã¥À¤Ï¡¢¥Ñ¥±¥Ã¥È¤¬¥æ¡¼¥¶¡¼¤Ë -ÅϤµ¤ì¤ëÁ°¤Ëºï½ü¤µ¤ì¤ë¡£ +はやや高位のレベルで動作する。物理ヘッダは、パケットがユーザーに +渡される前に削除される。 .B SOCK_DGRAM -¤Î packet ¥½¥±¥Ã¥È¤òÄ̤·¤ÆÁ÷¤é¤ì¤ë¥Ñ¥±¥Ã¥È¤Ï¡¢ +の packet ソケットを通して送られるパケットは、 .I sockaddr_ll -¤Î¹Ô¤­À襢¥É¥ì¥¹¤Î¾ðÊó¤Ë´ð¤Å¤­¡¢Å¬ÀÚ¤ÊʪÍýÁؤΥإåÀ¤¬Éղ䵤ì¤Æ¤«¤é¡¢ -¥­¥å¡¼¤ËÁ÷¤é¤ì¤ë¡£ +の行き先アドレスの情報に基づき、適切な物理層のヘッダが付加されてから、 +キューに送られる。 .\"O By default all packets of the specified protocol type .\"O are passed to a packet socket. @@ -162,24 +162,24 @@ packet .\"O and the .\"O .I sll_ifindex .\"O address fields are used for purposes of binding. -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢»ØÄꤷ¤¿¥×¥í¥È¥³¥ë·¿¤Î¥Ñ¥±¥Ã¥È¤Ï¤¹¤Ù¤Æ packet -¥½¥±¥Ã¥È¤ËÁ÷¤é¤ì¤ë¡£ÆÃÄê¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤«¤é¤Î¥Ñ¥±¥Ã¥È¤À¤±¤ò -¼èÆÀ¤·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ +デフォルトでは、指定したプロトコル型のパケットはすべて packet +ソケットに送られる。特定のインターフェースからのパケットだけを +取得したい場合には、 .I struct sockaddr_ll -¤Ë¥¢¥É¥ì¥¹¤ò»ØÄꤷ¤Æ +にアドレスを指定して .BR bind (2) -¤ò¸Æ¤Ó¡¢ packet ¥½¥±¥Ã¥È¤ò¤½¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë·ë¤ÓÉÕ¤±¤ë (¥Ð¥¤¥ó¥É¤¹¤ë)¡£ -¥Ð¥¤¥ó¥É¤ÎºÝ¤Ë¤Ï¡¢¥¢¥É¥ì¥¹¥Õ¥£¡¼¥ë¥É¤Î¤¦¤Á +を呼び、 packet ソケットをそのインターフェースに結び付ける (バインドする)。 +バインドの際には、アドレスフィールドのうち .I sll_protocol -¤È +と .I sll_ifindex -¤À¤±¤¬ÍѤ¤¤é¤ì¤ë¡£ +だけが用いられる。 .\"O The .\"O .BR connect (2) .\"O operation is not supported on packet sockets. .BR connect (2) -Áàºî¤Ï packet ¥½¥±¥Ã¥È¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +操作は packet ソケットではサポートされていない。 .\"O When the .\"O .B MSG_TRUNC @@ -190,16 +190,16 @@ packet .\"O the real length of the packet on the wire is always returned, .\"O even when it is longer than the buffer. .B MSG_TRUNC -¥Õ¥é¥°¤¬ +フラグが .BR recvmsg (2), .BR recv (2), .BR recvfrom (2) -¤ËÅϤµ¤ì¤ë¤È¡¢ (¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤è¤êÂ礭¤«¤Ã¤¿¤È¤·¤Æ¤â) ¾ï¤Ë¼ÂºÝ¤ËÄÌ¿®¤µ¤ì¤¿ -¥Ñ¥±¥Ã¥È¤ÎŤµ¤¬ÊÖ¤µ¤ì¤ë¡£ +に渡されると、 (バッファサイズより大きかったとしても) 常に実際に通信された +パケットの長さが返される。 .\"O .SS Address Types -.SS ¥¢¥É¥ì¥¹¤Î¥¿¥¤¥× +.SS アドレスのタイプ .\"O The sockaddr_ll is a device independent physical layer address. -sockaddr_ll ¤Ï¥Ç¥Ð¥¤¥¹¤Ë°Í¸¤·¤Ê¤¤ÊªÍýÁؤΥ¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +sockaddr_ll はデバイスに依存しない物理層のアドレスである。 .in +4n .nf @@ -213,13 +213,13 @@ sockaddr_ll .\"O unsigned char sll_addr[8]; /* Physical layer address */ .\"O }; struct sockaddr_ll { - unsigned short sll_family; /* ¾ï¤Ë AF_PACKET */ - unsigned short sll_protocol; /* ʪÍýÁؤΥץí¥È¥³¥ë */ - int sll_ifindex; /* ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ÈÖ¹æ */ - unsigned short sll_hatype; /* ¥Ø¥Ã¥À¼ïÊÌ */ - unsigned char sll_pkttype; /* ¥Ñ¥±¥Ã¥È¼ïÊÌ */ - unsigned char sll_halen; /* ¥¢¥É¥ì¥¹¤ÎŤµ */ - unsigned char sll_addr[8]; /* ʪÍýÁؤΥ¢¥É¥ì¥¹ */ + unsigned short sll_family; /* 常に AF_PACKET */ + unsigned short sll_protocol; /* 物理層のプロトコル */ + int sll_ifindex; /* インターフェース番号 */ + unsigned short sll_hatype; /* ヘッダ種別 */ + unsigned char sll_pkttype; /* パケット種別 */ + unsigned char sll_halen; /* アドレスの長さ */ + unsigned char sll_addr[8]; /* 物理層のアドレス */ }; .fi .in @@ -231,12 +231,12 @@ struct sockaddr_ll { .\"O include file. .\"O It defaults to the socket's protocol. .I sll_protocol -¤Ïɸ½àŪ¤Ê¥¤¡¼¥µ¥Í¥Ã¥È¥×¥í¥È¥³¥ë¤Î¥¿¥¤¥×¤Ç¡¢ -¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Çµ­½Ò¤¹¤ë¡£ -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +は標準的なイーサネットプロトコルのタイプで、 +ネットワークバイトオーダーで記述する。 +インクルードファイル .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤¬¤³¤Î¥½¥±¥Ã¥È¤Î¥×¥í¥È¥³¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤È¤Ê¤ë¡£ +で定義されている。 +これがこのソケットのプロトコルのデフォルトとなる。 .\"O .I sll_ifindex .\"O is the interface index of the interface @@ -244,19 +244,19 @@ struct sockaddr_ll { .\"O .BR netdevice (7)); .\"O 0 matches any interface (only permitted for binding). .I sll_ifindex -¤Ï¤½¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î interface index ¤Ç¤¢¤ë +はそのインターフェースの interface index である .RB ( netdevice (7) -¤ò»²¾È)¡£ -0 ¤Ï (¥Ð¥¤¥ó¥É¤¬µö²Ä¤µ¤ì¤Æ¤¤¤ë) Ǥ°Õ¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ +を参照)。 +0 は (バインドが許可されている) 任意のインターフェースにマッチする。 .\"O .I sll_hatype .\"O is a ARP type as defined in the .\"O .I .\"O include file. .I sll_hatype -¤Ï¡¢¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +は、インクルードファイル .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë ARP ¼ïÊ̤Ǥ¢¤ë¡£ +で定義されている ARP 種別である。 .\"O .I sll_pkttype .\"O contains the packet type. @@ -275,20 +275,20 @@ struct sockaddr_ll { .\"O socket. .\"O These types make only sense for receiving. .I sll_pkttype -¤Ï¥Ñ¥±¥Ã¥È¼ïÊ̤Ǥ¢¤ë¡£»ØÄê¤Ç¤­¤ë¼ïÊ̤ϰʲ¼¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë: +はパケット種別である。指定できる種別は以下のいずれかである: .B PACKET_HOST -(¥í¡¼¥«¥ë¥Û¥¹¥È¸þ¤±¤Î¥Ñ¥±¥Ã¥È)¡¢ +(ローカルホスト向けのパケット)、 .B PACKET_BORADCAST -(ʪÍýÁØ¤Î¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥Ñ¥±¥Ã¥È)¡¢ +(物理層のブロードキャストパケット)、 .B PACKET_MULTICAST -(ʪÍýÁؤΥޥë¥Á¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤ËÁ÷¤ë¥Ñ¥±¥Ã¥È)¡¢ +(物理層のマルチキャストアドレスに送るパケット)、 .B PACKET_OTHERHOST -(¾¤Î¥Û¥¹¥È¤Ë¸þ¤±¤é¤ì¤¿¥Ñ¥±¥Ã¥È¤Î¤¦¤Á¡¢ -̵º¹Ê̥⡼¥É (promiscuous mode: ¸å½Ò) ¤Î¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ë¤è¤êÊä­¤µ¤ì¤¿¤â¤Î)¡¢ +(他のホストに向けられたパケットのうち、 +無差別モード (promiscuous mode: 後述) のデバイスドライバにより補足されたもの)、 .B PACKET_OUTGOING -(¥í¡¼¥«¥ë¥Û¥¹¥È¤«¤éȯ¿®¤µ¤ì¡¢ -packet ¥½¥±¥Ã¥È¤Ë¥ë¡¼¥×¥Ð¥Ã¥¯¤·¤Æ¤­¤¿¥Ñ¥±¥Ã¥È)¡£ -¤³¤ì¤é¤Î¼ïÊ̤¬°ÕÌ£¤ò»ý¤Ä¤Î¤Ï¼õ¿®»þ¤Î¤ß¤Ç¤¢¤ë¡£ +(ローカルホストから発信され、 +packet ソケットにループバックしてきたパケット)。 +これらの種別が意味を持つのは受信時のみである。 .\"O .I sll_addr .\"O and @@ -296,44 +296,44 @@ packet .\"O contain the physical layer (e.g., IEEE 802.3) address and its length. .\"O The exact interpretation depends on the device. .I sll_addr -¤È +と .I sll_halen -¤Ï¡¢ÊªÍýÁؤΠ(¤Ä¤Þ¤ê IEEE 802.3 ¤Î) ¥¢¥É¥ì¥¹¤È¤½¤ÎŤµ¤Ç¤¢¤ë¡£ -¸·Ì©¤Ê²ò¼á¤Ï¥Ç¥Ð¥¤¥¹¤Ë°Í¸¤¹¤ë¡£ +は、物理層の (つまり IEEE 802.3 の) アドレスとその長さである。 +厳密な解釈はデバイスに依存する。 .\"O When you send packets it is enough to specify .\"O .IR sll_family , .\"O .IR sll_addr , .\"O .IR sll_halen , .\"O .IR sll_ifindex . -¥Ñ¥±¥Ã¥È¤òÁ÷¤ë¾ì¹ç¤Ï¡¢ +パケットを送る場合は、 .IR sll_family , .IR sll_addr , .IR sll_halen , .I sll_ifindex -¤ò»ØÄꤹ¤ì¤Ð½½Ê¬¤Ç¤¢¤ë¡£ +を指定すれば十分である。 .\"O The other fields should be 0. -¤½¤Î¾¤Î¥Õ¥£¡¼¥ë¥É¤Ï 0 ¤Ë¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£ +その他のフィールドは 0 にしておくべきである。 .\"O .I sll_hatype .\"O and .\"O .I sll_pkttype .\"O are set on received packets for your information. .I sll_hatype -¤È +と .I sll_pkttype -¤Ë¤Ï¼õ¿®¤·¤¿¥Ñ¥±¥Ã¥È¤Î¾ðÊó¤¬ÀßÄꤵ¤ì¤ë¡£ +には受信したパケットの情報が設定される。 .\"O For bind only .\"O .I sll_protocol .\"O and .\"O .I sll_ifindex .\"O are used. -¥Ð¥¤¥ó¥É¤ÎºÝ¤Ë¤Ï¡¢ +バインドの際には、 .I sll_protocol -¤È +と .I sll_ifindex -¤À¤±¤¬»ÈÍѤµ¤ì¤ë¡£ +だけが使用される。 .\"O .SS Socket Options -.SS ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó +.SS ソケットオプション .\"O Packet sockets can be used to configure physical layer multicasting .\"O and promiscuous mode. .\"O It works by calling @@ -348,20 +348,20 @@ packet .\"O They both expect a .\"O .B packet_mreq .\"O structure as argument: -packet ¥½¥±¥Ã¥È¤Ï¡¢ÊªÍýÁؤΥޥë¥Á¥­¥ã¥¹¥È¤ä -̵º¹Ê̥⡼¥É (promiscuous mode) ¤òÀßÄꤷ¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤Ë¤Ï +packet ソケットは、物理層のマルチキャストや +無差別モード (promiscuous mode) を設定して使うことができる。 +これには .B SOL_PACKET -¤È°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤Î¤¤¤º¤ì¤«¤ò»ØÄꤷ¤Æ +と以下のオプションのいずれかを指定して .BR setsockopt (2) -¤ò¸Æ¤Ù¤Ð¤è¤¤¡£ -¥Ð¥¤¥ó¥É¤òÄɲ乤ë¾ì¹ç¤Ï +を呼べばよい。 +バインドを追加する場合は .B PACKET_ADD_MEMBERSHIP -¤Ç¤¢¤ê¡¢¼è¤êµî¤ë¾ì¹ç¤Ï +であり、取り去る場合は .B PACKET_DROP_MEMBERSHIP -¤Ç¤¢¤ë¡£¤³¤ì¤é¤Ï¤¤¤º¤ì¤â +である。これらはいずれも .B packet_mreq -¹½Â¤ÂΤò°ú¤­¿ô¤Ë¼è¤ë¡£ +構造体を引き数に取る。 .in +4n .nf @@ -372,10 +372,10 @@ packet .\"O unsigned char mr_address[8]; /* physical layer address */ .\"O }; struct packet_mreq { - int mr_ifindex; /* ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ÈÖ¹æ */ - unsigned short mr_type; /* Æ°ºî */ - unsigned short mr_alen; /* ¥¢¥É¥ì¥¹¤ÎŤµ */ - unsigned char mr_address[8]; /* ʪÍýÁؤΥ¢¥É¥ì¥¹ */ + int mr_ifindex; /* インターフェース番号 */ + unsigned short mr_type; /* 動作 */ + unsigned short mr_alen; /* アドレスの長さ */ + unsigned char mr_address[8]; /* 物理層のアドレス */ }; .fi .in @@ -399,33 +399,33 @@ struct packet_mreq { .\"O sets the socket up to receive all multicast packets arriving at .\"O the interface. .I mr_ifindex -¤Ï¡¢¥¹¥Æ¡¼¥¿¥¹¤òÊѹ¹¤·¤¿¤¤¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ÈÖ¹æ¤Ç¤¢¤ë¡£ +は、ステータスを変更したいインターフェースの +インターフェース番号である。 .I mr_type -¥Ñ¥é¥á¡¼¥¿¤Ï¼Â¹Ô¤¹¤ëÆ°ºî¤ò»ØÄꤹ¤ë: +パラメータは実行する動作を指定する: .B PACKET_MR_PROMISC -¤Ï¡¢¶¦Í­¤·¤Æ¤¤¤ëÇÞÂΤ«¤é¤ÎÁ´¤Æ¤Î¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë -(¤·¤Ð¤·¤Ð "̵º¹Ê̥⡼¥É (promiscuous mode)" ¤È¸Æ¤Ð¤ì¤ë)¡£ +は、共有している媒体からの全てのパケットを受信できるようにする +(しばしば "無差別モード (promiscuous mode)" と呼ばれる)。 .B PACKET_MR_MULTICAST -¤Ï¡¢¤½¤Î¥½¥±¥Ã¥È¤ò¡¢ +は、そのソケットを、 .I mr_address -¤È +と .I mr_alen -¤Ç»ØÄꤵ¤ì¤ëʪÍýÁؤΥޥë¥Á¥­¥ã¥¹¥È¥Ö¥ë¡¼¥×¤Ë¥Ð¥¤¥ó¥É¤¹¤ë¡£ +で指定される物理層のマルチキャストブループにバインドする。 .B PACKET_MR_ALLMULTI -¤Ï socket ¤ò up ¤Ë¤·¤Æ¡¢¤½¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ËÅþ㤷¤¿¤¹¤Ù¤Æ¤Î -¥Þ¥ë¥Á¥­¥ã¥¹¥È¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ +は socket を up にして、そのインターフェースに到達したすべての +マルチキャストパケットを受信できるようにする。 .\"O In addition the traditional ioctls .\"O .BR SIOCSIFFLAGS , .\"O .BR SIOCADDMULTI , .\"O .B SIOCDELMULTI .\"O can be used for the same purpose. -ÀΤ«¤é¤¢¤ë ioctl ¤À¤±¤Ç¤Ê¤¯¡¢ +昔からある ioctl だけでなく、 .BR SIOCSIFFLAGS , .BR SIOCADDMULTI , .B SIOCDELMULTI -¤òƱ¤¸ÌÜŪ¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を同じ目的に用いることができる。 .\"O .SS Ioctls .SS ioctl .\"O .B SIOCGSTAMP @@ -433,10 +433,10 @@ struct packet_mreq { .\"O Argument is a .\"O .IR "struct timeval" . .B SIOCGSTAMP -¤òÍѤ¤¤ë¤È¡¢ºÇ¸å¤Ë¼õ¿®¤·¤¿¥Ñ¥±¥Ã¥È¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -°ú¤­¿ô¤Ï +を用いると、最後に受信したパケットのタイムスタンプを得ることができる。 +引き数は .I struct timeval -¤Ç¤¢¤ë¡£ +である。 .\" FIXME Document SIOCGSTAMPNS .\"O In addition all standard ioctls defined in @@ -444,89 +444,89 @@ struct packet_mreq { .\"O and .\"O .BR socket (7) .\"O are valid on packet sockets. -¤µ¤é¤Ë¡¢ +さらに、 .BR netdevice (7) -¤ª¤è¤Ó +および .BR socket (7) -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëɸ½à¤Î ioctl ¤Ï¤¤¤º¤ì¤â -packet ¥½¥±¥Ã¥È¤Ë»ØÄê²Äǽ¤Ç¤¢¤ë¡£ +で定義されている標準の ioctl はいずれも +packet ソケットに指定可能である。 .\"O .SS Error Handling -.SS ¥¨¥é¡¼½èÍý +.SS エラー処理 .\"O Packet sockets do no error handling other than errors occurred .\"O while passing the packet to the device driver. .\"O They don't have the concept of a pending error. -packet ¥½¥±¥Ã¥È¤Ï¡¢¥Ñ¥±¥Ã¥È¤ò¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤ËÅϤ¹¤È¤­¤Ë -µ¯¤­¤¿¥¨¥é¡¼¤·¤«½èÍý¤·¤Ê¤¤¡£Ãٱ䥨¥é¡¼ (pending error) -¤Ë´Ø¤¹¤ë³µÇ°¤Ï»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +packet ソケットは、パケットをデバイスドライバに渡すときに +起きたエラーしか処理しない。遅延エラー (pending error) +に関する概念は持っていない。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EADDRNOTAVAIL .\"O Unknown multicast group address passed. -ÉÔÌÀ¤Ê¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¥¢¥É¥ì¥¹¤¬ÅϤµ¤ì¤¿¡£ +不明なマルチキャストグループアドレスが渡された。 .TP .B EFAULT .\"O User passed invalid memory address. -¥æ¡¼¥¶¤¬ÅϤ·¤¿¥á¥â¥ê¥¢¥É¥ì¥¹¤¬ÉÔÀµ¡£ +ユーザが渡したメモリアドレスが不正。 .TP .B EINVAL .\"O Invalid argument. -°ú¤­¿ô¤¬ÉÔÀµ¡£ +引き数が不正。 .TP .B EMSGSIZE .\"O Packet is bigger than interface MTU. -¥Ñ¥±¥Ã¥È¤¬¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î MTU ¤è¤êÂ礭¤¤¡£ +パケットがインターフェースの MTU より大きい。 .TP .B ENETDOWN .\"O Interface is not up. -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ up ¤Ç¤Ê¤¤¡£ +インターフェースが up でない。 .TP .B ENOBUFS .\"O Not enough memory to allocate the packet. -¥Ñ¥±¥Ã¥È¤Ë³ä¤êÅö¤Æ¤ë¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£ +パケットに割り当てるメモリが足りない。 .TP .B ENODEV .\"O Unknown device name or interface index specified in interface address. -¥Ç¥Ð¥¤¥¹Ì¾¤¬ÉÔÌÀ¡£¤¢¤ë¤¤¤Ï¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹¤Ç»ØÄꤵ¤ì¤¿ -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬ÉÔÌÀ¡£ +デバイス名が不明。あるいはインターフェースアドレスで指定された +インターフェースインデックスが不明。 .TP .B ENOENT .\"O No packet received. -¥Ñ¥±¥Ã¥È¤ò°ì¤Ä¤â¼õ¿®¤·¤Æ¤¤¤Ê¤¤¡£ +パケットを一つも受信していない。 .TP .B ENOTCONN .\"O No interface address passed. -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹¤¬ÅϤµ¤ì¤Ê¤«¤Ã¤¿¡£ +インターフェースアドレスが渡されなかった。 .TP .B ENXIO .\"O Interface address contained an invalid interface index. -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹¤ËÉÔÀµ¤Ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +インターフェースアドレスに不正なインターフェースインデックスが含まれている。 .TP .B EPERM .\"O User has insufficient privileges to carry out this operation. -¤³¤ÎÁàºî¤ò¹Ô¤¦¤Î¤ËɬÍפʸ¢¸Â¤ò¥æ¡¼¥¶¤¬»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +この操作を行うのに必要な権限をユーザが持っていない。 .\"O In addition other errors may be generated by the low-level driver. -¾åµ­°Ê³°¤Î¥¨¥é¡¼¤¬¡¢Äã¥ì¥Ù¥ë¤Î¥É¥é¥¤¥Ð¤ÇÀ¸À®¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ +上記以外のエラーが、低レベルのドライバで生成されることがある。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .B AF_PACKET .\"O is a new feature in Linux 2.2. .\"O Earlier Linux versions supported only .\"O .BR SOCK_PACKET . .B AF_PACKET -¤Ï Linux 2.2 ¤Î¿·µ¡Ç½¤Ç¤¢¤ë¡£¤³¤ì¤è¤ê¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Î Linux ¤Ç¤Ï +は Linux 2.2 の新機能である。これより古いバージョンの Linux では .B SOCK_PACKET -¤Î¤ß¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤¿¡£ +のみをサポートしていた。 .PP .\"O The include file .\"O .I .\"O is present since glibc 2.1. .\"O Older systems need: -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +インクルードファイル .I -¤¬Â¸ºß¤¹¤ë¤Î¤Ï glibc 2.1 °Ê¹ß¤Ç¤¢¤ë¡£ -¤½¤ì°ÊÁ°¤Î¥·¥¹¥Æ¥à¤Ç¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ëɬÍפ¬¤¢¤ë: +が存在するのは glibc 2.1 以降である。 +それ以前のシステムでは以下のようにする必要がある: .sp .in +4n .nf @@ -536,7 +536,7 @@ packet .fi .in .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O For portable programs it is suggested to use .\"O .B AF_PACKET .\"O via @@ -544,13 +544,13 @@ packet .\"O although this only covers a subset of the .\"O .B AF_PACKET .\"O features. -°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ +移植性の必要なプログラムでは、 .BR pcap (3) -·Ðͳ¤Ç +経由で .B AF_PACKET -¤òÍѤ¤¤ë¤³¤È¤ò¤ªÁ¦¤á¤¹¤ë¡£¤¿¤À¤·¡¢¤³¤ÎÊýË¡¤Ç¤Ï +を用いることをお薦めする。ただし、この方法では .B AF_PACKET -¤Îµ¡Ç½¤¹¤Ù¤Æ¤òÍøÍѤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +の機能すべてを利用することはできない。 .\"O The .\"O .B SOCK_DGRAM @@ -573,28 +573,28 @@ packet .\"O The default for sending is the standard Ethernet DIX .\"O encapsulation with the protocol filled in. .B SOCK_DGRAM -packet ¥½¥±¥Ã¥È¤Ï¡¢IEEE 802.3 ¥Õ¥ì¡¼¥à¤Î IEEE 802.2 LLC ¥Ø¥Ã¥À¤Î -À¸À®¤ä²òÀϤò¹Ô¤ª¤¦¤È¤·¤Ê¤¤¡£ +packet ソケットは、IEEE 802.3 フレームの IEEE 802.2 LLC ヘッダの +生成や解析を行おうとしない。 .B ETH_P_802_3 -¤¬Á÷¿®¥×¥í¥È¥³¥ë¤Ë»ØÄꤵ¤ì¤ë¤È¡¢¥«¡¼¥Í¥ë¤Ï 802.3 ¥Õ¥ì¡¼¥à¤ò -À¸À®¤·¤Æ length ¥Õ¥£¡¼¥ë¥É¤Ë½ñ¤­¹þ¤à¡£ -´°Á´¤Ë½àµò¤·¤¿¥Ñ¥±¥Ã¥È¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¥æ¡¼¥¶¡¼¤¬ LLC ¥Ø¥Ã¥À¤ò -Í¿¤¨¤ëɬÍפ¬¤¢¤ë¡£ÅþÃ夷¤¿ 802.3 ¥Ñ¥±¥Ã¥È¤Ç¤Ï¡¢ -DSAP/SSAP protocol ¤Î³Æ¥Õ¥£¡¼¥ë¥É¤Ï¿½Å²½ (multiplex) ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -Âå¤ï¤ê¤Ë¤³¤ì¤é¤Ï LLC ¥Ø¥Ã¥À¤¬Á°ÃÖ¤µ¤ì¤¿ +が送信プロトコルに指定されると、カーネルは 802.3 フレームを +生成して length フィールドに書き込む。 +完全に準拠したパケットを得るためにはユーザーが LLC ヘッダを +与える必要がある。到着した 802.3 パケットでは、 +DSAP/SSAP protocol の各フィールドは多重化 (multiplex) されていない。 +代わりにこれらは LLC ヘッダが前置された .B ETH_P_802_2 -¥×¥í¥È¥³¥ë¤È¤·¤ÆÍ¿¤¨¤é¤ì¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢ +プロトコルとして与えられる。したがって、 .B ETH_P_802_3 -¤Ë¥Ð¥¤¥ó¥É¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£¤«¤ï¤ê¤Ë +にバインドすることはできない。かわりに .B ETH_P_802_2 -¤Ë¥Ð¥¤¥ó¥É¤·¡¢¼«Ê¬¼«¿È¤Ç¥×¥í¥È¥³¥ë¤Î¿½Å²½¤ò¹Ô¤¦¤³¤È¡£ -Á÷¿®¤Î¥Ç¥Õ¥©¥ë¥È¤Ï¡¢¥×¥í¥È¥³¥ë¥Õ¥£¡¼¥ë¥É¤ò»ý¤Ä -ɸ½à¤Î Ethernet DIX encapsulation ¤Ç¤¢¤ë¡£ +にバインドし、自分自身でプロトコルの多重化を行うこと。 +送信のデフォルトは、プロトコルフィールドを持つ +標準の Ethernet DIX encapsulation である。 .\"O Packet sockets are not subject to the input or output firewall chains. -packet ¥½¥±¥Ã¥È¤ÏÆþ½ÐÎϤΠfirewall chain ¤Ë±Æ¶Á¤ò¤¦¤±¤Ê¤¤¡£ +packet ソケットは入出力の firewall chain に影響をうけない。 .\"O .SS Compatibility -.SS °Ü¿¢À­ +.SS 移植性 .\"O In Linux 2.0, the only way to get a packet socket was by calling .\"O .BI "socket(AF_INET, SOCK_PACKET, " protocol )\fR. .\"O This is still supported but strongly deprecated. @@ -604,14 +604,14 @@ packet .\"O .I struct sockaddr_pkt .\"O to specify an interface, which doesn't provide physical layer .\"O independence. -Linux 2.0 ¤Ç¤Ï¡¢ packet ¥½¥±¥Ã¥È¤òÆÀ¤ëÊýË¡¤Ï +Linux 2.0 では、 packet ソケットを得る方法は .BI "socket(AF_INET, SOCK_PACKET, " protocol )\fR -¤ò¸Æ¤Ö¤ä¤êÊý¤·¤«¤Ê¤«¤Ã¤¿¡£¤³¤ÎÊýË¡¤Ï¤Þ¤À¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -ÍѤ¤¤Ê¤¤¤³¤È¤ò¶¯¤¯¿ä¾©¤¹¤ë¡£¸½ºß¤ÎÊýË¡¤È¤Î¼ç¤Ê°ã¤¤¤Ï¡¢ +を呼ぶやり方しかなかった。この方法はまだサポートされているが、 +用いないことを強く推奨する。現在の方法との主な違いは、 .B SOCK_PACKET -¤Ç¤Ï¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î»ØÄê¤Ë¸Å¤¤ +ではインターフェースの指定に古い .I struct sockaddr_pkt -¤òÍѤ¤¤ëÅÀ¤Ç¤¢¤ë¡£¤³¤ì¤Ë¤ÏʪÍýÁؤ«¤é¤ÎÆÈΩÀ­¤¬¤Ê¤¤¡£ +を用いる点である。これには物理層からの独立性がない。 .in +4n .nf @@ -633,25 +633,25 @@ struct sockaddr_pkt { .\"O .I spkt_device .\"O is the device name as a null-terminated string, for example, eth0. .I spkt_family -¤Ï¥Ç¥Ð¥¤¥¹¤Î¥¿¥¤¥×¡¢ +はデバイスのタイプ、 .I spkt_protocol -¤Ï +は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë IEEE 802.3 ¥×¥í¥È¥³¥ë¥¿¥¤¥×¡¢ +で定義されている IEEE 802.3 プロトコルタイプ、 .I spkt_device -¤Ï¥Ç¥Ð¥¤¥¹¤Î̾Á°¤ò NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤ÇÍ¿¤¨¤¿¤â¤Î (Îã: eth0) ¤Ç¤¢¤ë¡£ +はデバイスの名前を NULL 終端された文字列で与えたもの (例: eth0) である。 .\"O This structure is obsolete and should not be used in new code. -¤³¤Î¹½Â¤ÂÎ¤Ï obsolete ¤Ç¤¢¤ê¡¢ -¿·¤·¤¯¥³¡¼¥É¤ò½ñ¤¯»þ¤Ë¤ÏÍѤ¤¤ë¤Ù¤­¤Ç¤Ê¤¤¡£ +この構造体は obsolete であり、 +新しくコードを書く時には用いるべきでない。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O glibc 2.1 does not have a define for .\"O .BR SOL_PACKET . .\"O The suggested workaround is to use: -glibc 2.1 ¤Ë¤Ï +glibc 2.1 には .B SOL_PACKET -¤ÎÄêµÁ¤¬¤Ê¤¤¡£²óÈòºö¤È¤·¤Æ¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë¤È¤è¤¤¡£ +の定義がない。回避策としては、以下のようにするとよい。 .in +4n .nf @@ -663,14 +663,14 @@ glibc 2.1 .in .\"O This is fixed in later glibc versions and also does not occur on .\"O libc5 systems. -¤³¤ÎÌäÂê¤Ï¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤Î glibc ¤Ç¤Ï½¤Àµ¤µ¤ì¤Æ¤¤¤ë¡£ -libc5 ¤Î¥·¥¹¥Æ¥à¤Ë¤Ï¤³¤ÎÌäÂê¤Ï¤Ê¤¤¡£ +この問題は新しいバージョンの glibc では修正されている。 +libc5 のシステムにはこの問題はない。 .\"O The IEEE 802.2/803.3 LLC handling could be considered as a bug. -IEEE 802.2/803.3 ¤Î LLC ¤Î°·¤¤Êý¤Ï¡¢¥Ð¥°¤È¹Í¤¨¤Æ¤âÎɤ¤¤À¤í¤¦¡£ +IEEE 802.2/803.3 の LLC の扱い方は、バグと考えても良いだろう。 .\"O Socket filters are not documented. -¥½¥±¥Ã¥È¥Õ¥£¥ë¥¿¡¼¤Ë¤Ä¤¤¤Æµ­ºÜ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +ソケットフィルターについて記載されていない。 .\"O The .\"O .B MSG_TRUNC @@ -681,20 +681,20 @@ IEEE 802.2/803.3 .\"O .BR SOCK_DGRAM . .B MSG_TRUNC .BR recvmsg (2) -³ÈÄ¥¤ÏÈó¾ï¤Ë¤Þ¤º¤¤Âнè¤Ç¤¢¤ê¡¢À©¸æ¥á¥Ã¥»¡¼¥¸¤ÇÃÖ¤­´¹¤¨¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -º£¤Î¤È¤³¤í +拡張は非常にまずい対処であり、制御メッセージで置き換えるべきである。 +今のところ .B SOCK_DGRAM -·Ðͳ¤Ç¥Ñ¥±¥Ã¥È¤Ë¤Ä¤¤¤Æ¤¤¤¿°¸À襢¥É¥ì¥¹¤òÆÀ¤ëÊýË¡¤¬¤Ê¤¤¡£ +経由でパケットについていた宛先アドレスを得る方法がない。 .\"O .\" .SH CREDITS -.\" .SH Ãø¼Ô +.\" .SH 著者 .\"O .\" This man page was written by Andi Kleen with help from Matthew Wilcox. .\"O .\" AF_PACKET in Linux 2.2 was implemented .\"O .\" by Alexey Kuznetsov, based on code by Alan Cox and others. -.\" ¤³¤Î man ¥Ú¡¼¥¸¤Ï Matthew Wilcox ¤Î½õÎϤΤâ¤È¤Ë Andi Kleen ¤¬½ñ¤¤¤¿¡£ -.\" Linux 2.2 ¤Î AF_PACKET ¤Ï¡¢ -.\" Alan Cox ¤¿¤Á¤Î¥³¡¼¥É¤ò¤â¤È¤Ë¤·¤Æ Alexey Kuznetsov ¤¬¼ÂÁõ¤·¤¿¡£ +.\" この man ページは Matthew Wilcox の助力のもとに Andi Kleen が書いた。 +.\" Linux 2.2 の AF_PACKET は、 +.\" Alan Cox たちのコードをもとにして Alexey Kuznetsov が実装した。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR socket (2), .BR pcap (3), .BR capabilities (7), @@ -703,14 +703,14 @@ IEEE 802.2/803.3 .BR socket (7) .\"O RFC\ 894 for the standard IP Ethernet encapsulation. -ɸ½à IP Ethernet encapsulation ¤Ë´Ø¤¹¤ë¾ðÊó¤Ï RFC\ 894 ¤Ë¤¢¤ë¡£ +標準 IP Ethernet encapsulation に関する情報は RFC\ 894 にある。 .\"O RFC\ 1700 for the IEEE 802.3 IP encapsulation. -IEEE 802.3 IP encapsulation ¤Ë´Ø¤¹¤ë¾ðÊó¤Ï RFC\ 1700 ¤Ë¤¢¤ë¡£ +IEEE 802.3 IP encapsulation に関する情報は RFC\ 1700 にある。 .\"O The .\"O .I .\"O include file for physical layer protocols. -ʪÍýÁؤΥץí¥È¥³¥ë¤Ë´Ø¤¹¤ëµ­½Ò¤Ï +物理層のプロトコルに関する記述は .I -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë¡£ +インクルードファイルにある。 diff --git a/draft/man7/path_resolution.7 b/draft/man7/path_resolution.7 index 1858a325..e81f6514 100644 --- a/draft/man7/path_resolution.7 +++ b/draft/man7/path_resolution.7 @@ -28,18 +28,18 @@ .\" .TH PATH_RESOLUTION 7 2009-12-05 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O path_resolution \- how a pathname is resolved to a file -path_resolution \- ¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹Ì¾¤Î²ò·èÊýË¡ +path_resolution \- ファイルのパス名の解決方法 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Some UNIX/Linux system calls have as parameter one or more filenames. .\"O A filename (or pathname) is resolved as follows. -¤¤¤¯¤Ä¤«¤Î UNIX/Linux ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ -1 ¤Ä°Ê¾å¤Î¥Õ¥¡¥¤¥ë̾¤ò°ú¤­¿ô¤È¤·¤Æ»ý¤Ä¡£ -¥Õ¥¡¥¤¥ë̾ (¤Þ¤¿¤Ï¥Ñ¥¹Ì¾) ¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ²ò·è¤µ¤ì¤ë¡£ +いくつかの UNIX/Linux システムコールは、 +1 つ以上のファイル名を引き数として持つ。 +ファイル名 (またはパス名) は以下のようにして解決される。 .\"O .SS "Step 1: Start of the resolution process" -.SS "¥¹¥Æ¥Ã¥× 1: ²ò·è²áÄø¤ò³«»Ï¤¹¤ë" +.SS "ステップ 1: 解決過程を開始する" .\"O If the pathname starts with the \(aq/\(aq character, .\"O the starting lookup directory .\"O is the root directory of the calling process. @@ -58,20 +58,20 @@ path_resolution \- .\"O .B CLONE_NEWNS .\"O flag set.) .\"O This handles the \(aq/\(aq part of the pathname. -¥Ñ¥¹Ì¾¤¬ \(aq/\(aq ʸ»ú¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -¥Ç¥£¥ì¥¯¥È¥ê¸¡º÷¤Î³«»ÏÅÀ¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ê¤ë¡£ -(¥×¥í¥»¥¹¤Ï¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤ò¿Æ¥×¥í¥»¥¹¤«¤é·Ñ¾µ¤¹¤ë¡£ -Ä̾ï¤Ï¡¢¤³¤ì¤¬¥Õ¥¡¥¤¥ë³¬ÁؤΥ롼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ê¤ë¡£ -¥×¥í¥»¥¹¤Ï +パス名が \(aq/\(aq 文字で始まっている場合、 +ディレクトリ検索の開始点は呼び出し元のプロセスのルートディレクトリになる。 +(プロセスはルートディレクトリを親プロセスから継承する。 +通常は、これがファイル階層のルートディレクトリになる。 +プロセスは .BR chroot (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤ÆÊ̤Υ롼¥È¥Ç¥£¥ì¥¯¥È¥ê¤ò¼èÆÀ¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¤³¤Î¾ì¹ç¡¢¤½¤Î¥×¥í¥»¥¹¤È +システムコールを使って別のルートディレクトリを取得することもできる。 +この場合、そのプロセスと .B CLONE_NEWNS -¥Õ¥é¥°¤òÀßÄꤷ¤Æ +フラグを設定して .BR clone (2) -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ë¤è¤Ã¤Æ³«»Ï¤µ¤ì¤¿¤½¤Î¥×¥í¥»¥¹¤Î»Ò¹¤Ï¡¢ -´°Á´¤Ë¥×¥é¥¤¥Ù¡¼¥È¤Ê¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤ò¼èÆÀ¤Ç¤­¤ë¡£) -¥Ñ¥¹Ì¾¤Î \(aq/\(aq ¤ÎÉôʬ¤Ï¡¢¤³¤Î¤è¤¦¤Ë¤·¤Æ°·¤ï¤ì¤ë¡£ +を呼び出すことによって開始されたそのプロセスの子孫は、 +完全にプライベートなマウント名前空間を取得できる。) +パス名の \(aq/\(aq の部分は、このようにして扱われる。 .\"O If the pathname does not start with the \(aq/\(aq character, the .\"O starting lookup directory of the resolution process is the current working @@ -80,83 +80,83 @@ path_resolution \- .\"O It can be changed by use of the .\"O .BR chdir (2) .\"O system call.) -¥Ñ¥¹Ì¾¤¬ \(aq/\(aq ʸ»ú¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -²ò·è²áÄø¤Ë¤ª¤±¤ë¥Ç¥£¥ì¥¯¥È¥ê¸¡º÷¤Î³«»ÏÅÀ¤Ï¡¢ -¥×¥í¥»¥¹¤Î¸½ºß¤Îºî¶È (working) ¥Ç¥£¥ì¥¯¥È¥ê¤È¤Ê¤ë¡£ -(¤³¤ì¤â¿Æ¥×¥í¥»¥¹¤«¤é·Ñ¾µ¤µ¤ì¤ë¡£ -¤³¤ì¤Ï +パス名が \(aq/\(aq 文字で始まっていない場合、 +解決過程におけるディレクトリ検索の開始点は、 +プロセスの現在の作業 (working) ディレクトリとなる。 +(これも親プロセスから継承される。 +これは .BR chdir (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤¦¤³¤È¤ÇÊѹ¹¤Ç¤­¤ë¡£) +システムコールを使うことで変更できる。) .\"O Pathnames starting with a \(aq/\(aq character are called absolute pathnames. .\"O Pathnames not starting with a \(aq/\(aq are called relative pathnames. -\(aq/\(aq ʸ»ú¤Ç»Ï¤Þ¤ë¥Ñ¥¹Ì¾¤ÏÀäÂХѥ¹Ì¾¤È¸Æ¤Ð¤ì¡¢ -\(aq/\(aq ʸ»ú¤Ç»Ï¤Þ¤é¤Ê¤¤¥Ñ¥¹Ì¾¤ÏÁêÂХѥ¹Ì¾¤È¸Æ¤Ð¤ì¤ë¡£ +\(aq/\(aq 文字で始まるパス名は絶対パス名と呼ばれ、 +\(aq/\(aq 文字で始まらないパス名は相対パス名と呼ばれる。 .\"O .SS "Step 2: Walk along the path" -.SS "¥¹¥Æ¥Ã¥× 2: ¥Ñ¥¹¤òé¤ë" +.SS "ステップ 2: パスを辿る" .\"O Set the current lookup directory to the starting lookup directory. .\"O Now, for each nonfinal component of the pathname, where a component .\"O is a substring delimited by \(aq/\(aq characters, this component is looked up .\"O in the current lookup directory. -¸½ºß¤Î¸¡º÷¥Ç¥£¥ì¥¯¥È¥ê¤ò¥Ç¥£¥ì¥¯¥È¥ê¸¡º÷¤Î³«»ÏÅÀ¤È¤¹¤ë¡£ -¤½¤·¤Æ¡¢¥Ñ¥¹Ì¾¤ÎºÇ¸å¤Î¹½À®Í×ÁÇ (component) ¤Ç¤Ê¤¤³Æ¹½À®Í×ÁǤˤĤ¤¤Æ¡¢ -¸½ºß¤Î¸¡º÷¥Ç¥£¥ì¥¯¥È¥ê¤Ç¸¡º÷¤ò¹Ô¤¦¡£ -¤³¤³¤Ç¹½À®Í×ÁÇ¤Ï \(aq/\(aq ¤Ç¶èÀÚ¤é¤ì¤¿Éôʬʸ»úÎó¤Ç¤¢¤ë¡£ +現在の検索ディレクトリをディレクトリ検索の開始点とする。 +そして、パス名の最後の構成要素 (component) でない各構成要素について、 +現在の検索ディレクトリで検索を行う。 +ここで構成要素は \(aq/\(aq で区切られた部分文字列である。 .\"O If the process does not have search permission on .\"O the current lookup directory, .\"O an .\"O .B EACCES .\"O error is returned ("Permission denied"). -¥×¥í¥»¥¹¤¬¸½ºß¤Î¸¡º÷¥Ç¥£¥ì¥¯¥È¥ê¤Î¸¡º÷µö²Ä¤ò»ý¤¿¤Ê¤¤¾ì¹ç¡¢ +プロセスが現在の検索ディレクトリの検索許可を持たない場合、 .B EACCES -¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë ("Permission denied")¡£ +エラーが返される ("Permission denied")。 .\"O If the component is not found, an .\"O .B ENOENT .\"O error is returned .\"O \"O ("No such file or directory"). -¹½À®Í×ÁǤ¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¡¢ +構成要素が見つからない場合、 .B ENOENT -¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë -("No such file or directory")¡£ +エラーが返される +("No such file or directory")。 .\"O If the component is found, but is neither a directory nor a symbolic link, .\"O an .\"O .B ENOTDIR .\"O error is returned ("Not a directory"). -¹½À®Í×ÁǤϸ«¤Ä¤«¤Ã¤¿¤¬¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤â¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¤â¤Ê¤¤¾ì¹ç¡¢ +構成要素は見つかったが、ディレクトリでもシンボリックリンクでもない場合、 .B ENOTDIR -¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë ("Not a directory")¡£ +エラーが返される ("Not a directory")。 .\"O If the component is found and is a directory, we set the .\"O current lookup directory to that directory, and go to the .\"O next component. -¹½À®Í×ÁǤ¬¸«¤Ä¤«¤Ã¤Æ¡¢¤«¤Ä¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¾ì¹ç¡¢ -¸½ºß¤Î¸¡º÷¥Ç¥£¥ì¥¯¥È¥ê¤ò¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËÀßÄꤷ¡¢ -¼¡¤Î¹½À®Í×ÁǤ˰ÜÆ°¤¹¤ë¡£ +構成要素が見つかって、かつディレクトリである場合、 +現在の検索ディレクトリをそのディレクトリに設定し、 +次の構成要素に移動する。 .\"O If the component is found and is a symbolic link (symlink), we first .\"O resolve this symbolic link (with the current lookup directory .\"O as starting lookup directory). .\"O Upon error, that error is returned. -¹½À®Í×ÁǤ¬¸«¤Ä¤«¤Ã¤Æ¡¢¤«¤Ä¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯ (symlink) ¤Ç¤¢¤ë¾ì¹ç¡¢ -(¸½ºß¤Î¸¡º÷¥Ç¥£¥ì¥¯¥È¥ê¤ò¥Ç¥£¥ì¥¯¥È¥ê¸¡º÷¤Î³«»ÏÅÀ¤È¤·¤Æ) -ºÇ½é¤Ë¤½¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ò²ò·è¤¹¤ë¡£ +構成要素が見つかって、かつシンボリックリンク (symlink) である場合、 +(現在の検索ディレクトリをディレクトリ検索の開始点として) +最初にそのシンボリックリンクを解決する。 .\"O If the result is not a directory, an .\"O .B ENOTDIR .\"O error is returned. -·ë²Ì¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¾ì¹ç¡¢ +結果がディレクトリでない場合、 .B ENOTDIR -¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ +エラーが返される。 .\"O If the resolution of the symlink is successful and returns a directory, .\"O we set the current lookup directory to that directory, and go to .\"O the next component. -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î²ò·è¤¬À®¸ù¤·¤Æ¥Ç¥£¥ì¥¯¥È¥ê¤¬ÊÖ¤µ¤ì¤¿¾ì¹ç¡¢ -¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¸½ºß¤Î¸¡º÷¥Ç¥£¥ì¥¯¥È¥ê¤È¤·¤ÆÀßÄꤷ¡¢ -¼¡¤Î¹½À®Í×ÁǤ˰ÜÆ°¤¹¤ë¡£ +シンボリックリンクの解決が成功してディレクトリが返された場合、 +そのディレクトリを現在の検索ディレクトリとして設定し、 +次の構成要素に移動する。 .\"O Note that the resolution process here involves recursion. -²ò·è²áÄø¤ËºÆµ¢¤¬´Þ¤Þ¤ì¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +解決過程に再帰が含まれる点に注意すること。 .\"O In order to protect the kernel against stack overflow, and also .\"O to protect against denial of service, there are limits on the .\"O maximum recursion depth, and on the maximum number of symbolic links @@ -165,22 +165,22 @@ path_resolution \- .\"O .B ELOOP .\"O error is returned when the maximum is .\"O exceeded ("Too many levels of symbolic links"). -¥«¡¼¥Í¥ë¤ò¥¹¥¿¥Ã¥¯¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤ä -¥µ¡¼¥Ó¥¹µñÈÝ (denial of service) ¤«¤é¼é¤ë¤¿¤á¡¢ -ºÆµ¢¤ÎºÇÂç¤Î¿¼¤µ¤È¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òé¤ëºÇÂç²ó¿ô¤ËÀ©¸Â¤¬¤¢¤ë¡£ -ºÇÂçÃͤòĶ¤¨¤¿¾ì¹ç +カーネルをスタックオーバーフローや +サービス拒否 (denial of service) から守るため、 +再帰の最大の深さとシンボリックリンクを辿る最大回数に制限がある。 +最大値を超えた場合 .B ELOOP -¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë -("Too many levels of symbolic links")¡£ +エラーが返される +("Too many levels of symbolic links")。 .\" .\"O .\" presently: max recursion depth during symlink resolution: 5 .\"O .\" max total number of symbolic links followed: 40 .\"O .\" _POSIX_SYMLOOP_MAX is 8 -.\" ¸½ºß¤Î¤È¤³¤í: ¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯²ò·è¤Ë¤ª¤±¤ëºÆµ¢¤ÎºÇÂç¤Î¿¼¤µ¤Ï 5 ¤Ç¤¢¤ë¡£ -.\" ¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òé¤ëºÇÂç²ó¿ô¤Ï 40 ¤Ç¤¢¤ë¡£ -.\" _POSIX_SYMLOOP_MAX ¤Ï 8 ¤Ç¤¢¤ë¡£ +.\" 現在のところ: シンボリックリンク解決における再帰の最大の深さは 5 である。 +.\" シンボリックリンクを辿る最大回数は 40 である。 +.\" _POSIX_SYMLOOP_MAX は 8 である。 .\"O .SS "Step 3: Find the final entry" -.SS "¥¹¥Æ¥Ã¥× 3: ºÇ¸å¤Î¥¨¥ó¥È¥ê¤ò¸«¤Ä¤±¤ë" +.SS "ステップ 3: 最後のエントリを見つける" .\"O The lookup of the final component of the pathname goes just like .\"O that of all other components, as described in the previous step, .\"O with two differences: (i) the final component need not be a @@ -192,118 +192,118 @@ path_resolution \- .\"O The details on the treatment .\"O of the final entry are described in the manual pages of the specific .\"O system calls. -¥Ñ¥¹Ì¾¤ÎºÇ¸å¤Î¹½À®Í×ÁǤθ¡º÷¤Ï¡¢Á°¤Î¥¹¥Æ¥Ã¥×¤ÇÀâÌÀ¤·¤¿ -¾¤ÎÁ´¤Æ¤Î¹½À®Í×ÁǤÈƱ¤¸¤è¤¦¤Ë¼Â¹Ô¤µ¤ì¤ë¤¬¡¢2 ¤Ä¤Î°ã¤¤¤¬¤¢¤ë¡£ -(i) ºÇ¸å¤Î¹½À®Í×ÁǤϥǥ£¥ì¥¯¥È¥ê¤Ç¤¢¤ëɬÍפ¬¤Ê¤¤ -(¥Ñ¥¹²ò·è²áÄø¤Ë´Ø¤¹¤ë¸Â¤ê¤Ï¤É¤Á¤é¤Ç¤â¹½¤ï¤Ê¤¤ \(em -ÆÃÄê¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Í׵᤹¤ë¤â¤Î¤Ë¤è¤Ã¤Æ¡¢ -¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¾ì¹ç¤â¤¢¤ë¤·¡¢ -¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¾ì¹ç¤â¤¢¤ë)¡£ -(ii) ¹½À®Í×ÁǤ¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ë¥¨¥é¡¼¤Ë¤¹¤ëɬÍפϤʤ¤ \(em -¤½¤Î¹½À®Í×ÁǤòºîÀ®¤¹¤ë¤À¤±¤Ç¤è¤¤¾ì¹ç¤â¤¢¤ë¡£ -ºÇ¸å¤Î¥¨¥ó¥È¥ê¤Î¾ÜºÙ¤Ê°·¤¤¤Ï¡¢ -ÆÃÄê¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡£ +パス名の最後の構成要素の検索は、前のステップで説明した +他の全ての構成要素と同じように実行されるが、2 つの違いがある。 +(i) 最後の構成要素はディレクトリである必要がない +(パス解決過程に関する限りはどちらでも構わない \(em +特定のシステムコールが要求するものによって、 +ディレクトリでなければならない場合もあるし、 +ディレクトリ以外でなければならない場合もある)。 +(ii) 構成要素が見つからない場合にエラーにする必要はない \(em +その構成要素を作成するだけでよい場合もある。 +最後のエントリの詳細な扱いは、 +特定のシステムコールの man ページで説明されている。 .\"O .SS ". and .." -.SS ". ¤È .." +.SS ". と .." .\"O By convention, every directory has the entries "." and "..", .\"O which refer to the directory itself and to its parent directory, .\"O respectively. -´·½¬¤È¤·¤Æ¡¢Á´¤Æ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¥¨¥ó¥È¥ê "." ¤È ".." ¤ò»ý¤Ä¡£ -¤³¤ì¤é¤Ï¤½¤ì¤¾¤ì¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¼«¿È¤È¤½¤Î¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤¹¤ë¡£ +慣習として、全てのディレクトリはエントリ "." と ".." を持つ。 +これらはそれぞれ、そのディレクトリ自身とその親ディレクトリを参照する。 .\"O The path resolution process will assume that these entries have .\"O their conventional meanings, regardless of whether they are .\"O actually present in the physical file system. -¥Ñ¥¹²ò·è²áÄø¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥¨¥ó¥È¥ê¤¬ÊªÍýŪ¤Ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë -¼ÂºÝ¤Ë¸ºß¤¹¤ë¤«Èݤ«¤Ë´Ø¤ï¤é¤º¡¢´·½¬Åª¤Ê°ÕÌ£¤ò»ý¤Ä¤È²¾Äꤹ¤ë¡£ +パス解決過程では、これらのエントリが物理的なファイルシステムに +実際に存在するか否かに関わらず、慣習的な意味を持つと仮定する。 .\"O One cannot walk down past the root: "/.." is the same as "/". -¥ë¡¼¥È¤è¤ê¾å¤Ëé¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤: "/.." ¤Ï "/" ¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +ルートより上に辿ることはできない: "/.." は "/" と同じである。 .\"O .SS "Mount points" -.SS "¥Þ¥¦¥ó¥È°ÌÃÖ" +.SS "マウント位置" .\"O After a "mount dev path" command, the pathname "path" refers to .\"O the root of the file system hierarchy on the device "dev", and no .\"O longer to whatever it referred to earlier. -"mount dev path" ¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤¿¸å¡¢ -¥Ñ¥¹Ì¾ "path" ¤Ï¥Ç¥Ð¥¤¥¹ "dev" ¾å¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à³¬ÁؤΠ-¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤¹¤ë¤è¤¦¤Ë¤Ê¤ê¡¢°ÊÁ°¤Î°ÌÃÖ¤ò»²¾È¤·¤Ê¤¤¡£ +"mount dev path" コマンドを実行した後、 +パス名 "path" はデバイス "dev" 上のファイルシステム階層の +ルートディレクトリを参照するようになり、以前の位置を参照しない。 .\"O One can walk out of a mounted file system: "path/.." refers to .\"O the parent directory of "path", .\"O outside of the file system hierarchy on "dev". -¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î³°¤Ë½Ð¤ë¤³¤È¤¬¤Ç¤­¤ë: -"path/.." ¤Ï "dev" ¾å¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à³¬Áؤγ°¤Ç¤¢¤ë -"path" ¤Î¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤¹¤ë¡£ +マウントされたファイルシステムの外に出ることができる: +"path/.." は "dev" 上のファイルシステム階層の外である +"path" の親ディレクトリを参照する。 .\"O .SS "Trailing slashes" -.SS "ËöÈø¤Î¥¹¥é¥Ã¥·¥å" +.SS "末尾のスラッシュ" .\"O If a pathname ends in a \(aq/\(aq, that forces resolution of the preceding .\"O component as in Step 2: it has to exist and resolve to a directory. .\"O Otherwise a trailing \(aq/\(aq is ignored. .\"O (Or, equivalently, a pathname with a trailing \(aq/\(aq is equivalent to .\"O the pathname obtained by appending \(aq.\(aq to it.) -¥Ñ¥¹Ì¾¤¬ \(aq/\(aq ¤Ç½ª¤ï¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -¥¹¥Æ¥Ã¥× 2 ¤Ë¤ª¤¤¤Æ¡¢¤½¤ÎÁ°¤Ë¤¢¤ë¹½À®Í×ÁǤβò·èË¡¤ò¼¡¤Î¤è¤¦¤Ë¶¯À©¤¹¤ë: -¤½¤Î¹½À®Í×ÁǤ¬Â¸ºß¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢¥Ç¥£¥ì¥¯¥È¥ê¤È¤·¤Æ²ò·è¤µ¤ì¤ë¡£ -¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¡¢ËöÈø¤Î \(aq/\(aq ¤¬Ìµ»ë¤µ¤ì¤ë¡£ -(¤Þ¤¿Æ±Íͤˡ¢ËöÈø¤Ë \(aq/\(aq ¤¬¤¢¤ë¥Ñ¥¹Ì¾¤Ï¡¢ -\(aq.\(aq ¤òËöÈø¤Ë²Ã¤¨¤ÆÆÀ¤é¤ì¤ë¥Ñ¥¹Ì¾¤ÈÅù¤·¤¤¡£) +パス名が \(aq/\(aq で終わっている場合、 +ステップ 2 において、その前にある構成要素の解決法を次のように強制する: +その構成要素が存在しなければならず、ディレクトリとして解決される。 +存在しない場合は、末尾の \(aq/\(aq が無視される。 +(また同様に、末尾に \(aq/\(aq があるパス名は、 +\(aq.\(aq を末尾に加えて得られるパス名と等しい。) .\"O .SS "Final symlink" -.SS "ºÇ¸å¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¤È¤­" +.SS "最後がシンボリックリンクのとき" .\"O If the last component of a pathname is a symbolic link, then it .\"O depends on the system call whether the file referred to will be .\"O the symbolic link or the result of path resolution on its contents. -¥Ñ¥¹Ì¾¤ÎºÇ¸å¤Î¹½À®Í×ÁǤ¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¤¢¤ë¾ì¹ç¡¢ -»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤ò¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤È¤¹¤ë¤«¡¢ -¤½¤ÎÆâÍƤˤĤ¤¤Æ¥Ñ¥¹¤ò²ò·è¤·¤¿·ë²Ì¤È¤¹¤ë¤«¤Ï¡¢ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë°Í¸¤¹¤ë¡£ +パス名の最後の構成要素がシンボリックリンクである場合、 +参照されるファイルをシンボリックリンクとするか、 +その内容についてパスを解決した結果とするかは、 +システムコールに依存する。 .\"O For example, the system call .\"O .BR lstat (2) .\"O will operate on the symlink, while .\"O .BR stat (2) .\"O operates on the file pointed to by the symlink. -¤¿¤È¤¨¤Ð¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë +たとえば、システムコール .BR lstat (2) -¤Ï¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ËºîÍѤ¹¤ë¡£ -°ìÊý¡¢ +はシンボリックリンクに作用する。 +一方、 .BR stat (2) -¤Ï¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç»Ø¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËºîÍѤ¹¤ë¡£ +はシンボリックリンクで指されたファイルに作用する。 .\"O .SS "Length limit" -.SS "Ťµ¤ÎÀ©¸Â" +.SS "長さの制限" .\"O There is a maximum length for pathnames. .\"O If the pathname (or some .\"O intermediate pathname obtained while resolving symbolic links) .\"O is too long, an .\"O .B ENAMETOOLONG .\"O error is returned ("Filename too long"). -¥Ñ¥¹Ì¾¤Ë¤ÏºÇÂ獬¤¢¤ë¡£ -¥Ñ¥¹Ì¾ (¤Þ¤¿¤Ï¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ò²ò·è¤¹¤ë¤È¤­¤ËÆÀ¤é¤ì¤ëÃæ´Ö¥Ñ¥¹Ì¾) ¤¬ -Ť¹¤®¤ë¾ì¹ç¡¢ +パス名には最大長がある。 +パス名 (またはシンボリックリンクを解決するときに得られる中間パス名) が +長すぎる場合、 .B ENAMETOOLONG -¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë ("Filename too long")¡£ +エラーが返される ("Filename too long")。 .\"O .SS "Empty pathname" -.SS "¶õ¤Î¥Ñ¥¹Ì¾" +.SS "空のパス名" .\"O In the original UNIX, the empty pathname referred to the current directory. .\"O Nowadays POSIX decrees that an empty pathname must not be resolved .\"O successfully. .\"O Linux returns .\"O .B ENOENT .\"O in this case. -¸µ¡¹¤Î UNIX ¤Ç¤Ï¡¢¶õ¤Î¥Ñ¥¹Ì¾¤Ï¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤·¤Æ¤¤¤¿¡£ -ºÇ¶á¡¢POSIX ¤Ç¤Ï¶õ¤Î¥Ñ¥¹Ì¾¤ò²ò·è¤¹¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¤È¤¤¤¦·èÄ꤬¤Ê¤µ¤ì¤¿¡£ -¤³¤Î¾ì¹ç¡¢Linux ¤Ï +元々の UNIX では、空のパス名は現在のディレクトリを参照していた。 +最近、POSIX では空のパス名を解決するべきではないという決定がなされた。 +この場合、Linux は .B ENOENT -¤òÊÖ¤¹¡£ +を返す。 .\"O .SS "Permissions" -.SS "µö²Ä" +.SS "許可" .\"O The permission bits of a file consist of three groups of three bits, cf.\& .\"O .BR chmod (1) .\"O and .\"O .BR stat (2). -¥Õ¥¡¥¤¥ë¤Îµö²Ä¥Ó¥Ã¥È¤Ï¡¢3 ÁȤΠ3 ¥Ó¥Ã¥È¤«¤é¹½À®¤µ¤ì¤ë¡£ +ファイルの許可ビットは、3 組の 3 ビットから構成される。 .BR chmod (1) -¤È +と .BR stat (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O The first group of three is used when the effective user ID of .\"O the calling process equals the owner ID of the file. .\"O The second group @@ -312,30 +312,30 @@ path_resolution \- .\"O supplementary group IDs of the calling process (as set by .\"O .BR setgroups (2)). .\"O When neither holds, the third group is used. -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤¬¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô ID ¤ÈÅù¤·¤¤¾ì¹ç¡¢ -3 ¤Ä¤Î¤¦¤ÁºÇ½é¤Î¥°¥ë¡¼¥×¤¬»È¤ï¤ì¤ë¡£ -¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥× ID ¤¬¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¸ú¥°¥ë¡¼¥× ID ¤Þ¤¿¤Ï +呼び出し元のプロセスの実効ユーザ ID がファイルの所有者 ID と等しい場合、 +3 つのうち最初のグループが使われる。 +ファイルのグループ ID が呼び出し元のプロセスの実効グループ ID または .RB ( setgroups (2) -¤ÇÀßÄꤵ¤ì¤ë) ¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÎÊä½õ (supplementary) ¥°¥ë¡¼¥× ID ¤È -Åù¤·¤¤¾ì¹ç¡¢3 ¤Ä¤Î¤¦¤Á 2 ÈÖÌܤΥ°¥ë¡¼¥×¤¬»È¤ï¤ì¤ë¡£ -¤É¤Á¤é¤Ë¤âÅö¤Æ¤Ï¤Þ¤é¤Ê¤¤¾ì¹ç¡¢3 ÈÖÌܤΥ°¥ë¡¼¥×¤¬»È¤ï¤ì¤ë¡£ +で設定される) 呼び出し元のプロセスの補助 (supplementary) グループ ID と +等しい場合、3 つのうち 2 番目のグループが使われる。 +どちらにも当てはまらない場合、3 番目のグループが使われる。 .\"O Of the three bits used, the first bit determines read permission, .\"O the second write permission, and the last execute permission .\"O in case of ordinary files, or search permission in case of directories. -3 ¥Ó¥Ã¥È¤¬»È¤ï¤ì¤ë¾ì¹ç¡¢ºÇ½é¤Î¥Ó¥Ã¥È¤ÏÆɤ߹þ¤ßµö²Ä¤ò·èÄꤷ¡¢ -2 ÈÖÌܤΥӥåȤϽñ¤­¹þ¤ßµö²Ä¤ò·èÄꤹ¤ë¡£ -¤Þ¤¿ 3 ÈÖÌܤΥӥåȤϡ¢Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¤Ï¼Â¹Ôµö²Ä¤òɽ¤·¡¢ -¥Ç¥£¥ì¥¯¥È¥ê¤Î¾ì¹ç¤Ï¸¡º÷µö²Ä¤òɽ¤¹¡£ +3 ビットが使われる場合、最初のビットは読み込み許可を決定し、 +2 番目のビットは書き込み許可を決定する。 +また 3 番目のビットは、通常のファイルの場合は実行許可を表し、 +ディレクトリの場合は検索許可を表す。 .\"O Linux uses the fsuid instead of the effective user ID in permission checks. .\"O Ordinarily the fsuid will equal the effective user ID, but the fsuid can be .\"O changed by the system call .\"O .BR setfsuid (2). -Linux ¤Ï¡¢µö²Ä¤Î¥Á¥§¥Ã¥¯¤Ë¤ª¤¤¤Æ¡¢¼Â¸ú¥æ¡¼¥¶ ID ¤Ç¤Ï¤Ê¤¯ fsuid ¤ò»È¤¦¡£ -Ä̾ï¤Ï fsuid ¤Ï¼Â¸ú¥æ¡¼¥¶ ID ¤ÈÅù¤·¤¤¤¬¡¢fsuid ¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë +Linux は、許可のチェックにおいて、実効ユーザ ID ではなく fsuid を使う。 +通常は fsuid は実効ユーザ ID と等しいが、fsuid はシステムコール .BR setfsuid (2) -¤ÇÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +で変更することができる。 .\"O (Here "fsuid" stands for something like "file system user ID". .\"O The concept was required for the implementation of a user space @@ -344,33 +344,33 @@ Linux .\"O It is obsolete now. .\"O Nobody should use .\"O .BR setfsuid (2).) -(¤³¤³¤Ç "fsuid" ¤Ï "file system user ID" ¤òɽ¤·¤Æ¤¤¤ë¡£ -¤³¤Î³µÇ°¤Ï¡Ö¥×¥í¥»¥¹¤¬Æ±¤¸¼Â¸ú¥æ¡¼¥¶ ID ¤ò»ý¤Ä¥×¥í¥»¥¹¤Ë -Ʊ»þ¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤ë¡×¤È¤¤¤¦¥æ¡¼¥¶¶õ´Ö NFS ¥µ¡¼¥Ð¤ò -¼ÂÁõ¤¹¤ëºÝ¤ËɬÍפǤ¢¤Ã¤¿¡£ -¤³¤ì¤Ïº£¤Ç¤ÏÇѤì¤Æ¤·¤Þ¤Ã¤¿¡£ +(ここで "fsuid" は "file system user ID" を表している。 +この概念は「プロセスが同じ実効ユーザ ID を持つプロセスに +同時にシグナルを送ることができる」というユーザ空間 NFS サーバを +実装する際に必要であった。 +これは今では廃れてしまった。 .BR setfsuid (2) -¤ò»È¤¦¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +を使うべきではない。 .\"O Similarly, Linux uses the fsgid ("file system group ID") .\"O instead of the effective group ID. .\"O See .\"O .BR setfsgid (2). -ƱÍͤˡ¢Linux ¤Ç¤Ï¼Â¸ú¥°¥ë¡¼¥× ID ¤ÎÂå¤ï¤ê¤Ë -fsgid ("¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¡¦¥°¥ë¡¼¥×ID") ¤ò»È¤¦¡£ +同様に、Linux では実効グループ ID の代わりに +fsgid ("ファイルシステム・グループID") を使う。 .BR setfsgid (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\" FIXME say something about file system mounted read-only ? .\"O .SS "Bypassing permission checks: superuser and capabilities" -.SS "µö²Ä¤Î³Îǧ¤ò¥¹¥­¥Ã¥×¤¹¤ë: ¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤È¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£" +.SS "許可の確認をスキップする: スーパーユーザとケーパビリティ" .\"O On a traditional UNIX system, the superuser .\"O .RI ( root , .\"O user ID 0) is all-powerful, and bypasses all permissions restrictions .\"O when accessing files. -ÅÁÅýŪ¤Ê UNIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶ +伝統的な UNIX システムでは、スーパーユーザ .RI ( root , -¥æ¡¼¥¶ ID 0) ¤ÏÈó¾ï¤Ë¶¯ÎϤǤ¢¤ê¡¢¥Õ¥¡¥¤¥ë¥¢¥¯¥»¥¹»þ¤Î -µö²Ä¤Ë¤è¤ëÀ©¸Â¤òÁ´¤Æ¥¹¥­¥Ã¥×¤¹¤ë¡£ +ユーザ ID 0) は非常に強力であり、ファイルアクセス時の +許可による制限を全てスキップする。 .\" (but for exec at least one x bit must be set) -- AEB .\" but there is variation across systems on this point: for .\" example, HP-UX and Tru64 are as described by AEB. However, @@ -383,32 +383,32 @@ fsgid (" .\"O Two capabilities are relevant for file permissions checks: .\"O \fBCAP_DAC_OVERRIDE\fP and \fBCAP_DAC_READ_SEARCH\fP. .\"O (A process has these capabilities if its fsuid is 0.) -Linux ¤Ç¤Ï¡¢¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¸¢¸Â¤¬Ê£¿ô¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ëʬ³ä¤µ¤ì¤Æ¤¤¤ë +Linux では、スーパーユーザ権限が複数のケーパビリティに分割されている .RB ( capabilities (7) -»²¾È)¡£¥Õ¥¡¥¤¥ë¤Îµö²Ä¤Î³Îǧ¤Ë¤Ï¡¢ +参照)。ファイルの許可の確認には、 .B CAP_DAC_OVERRIDE -¤È +と .B CAP_DAC_READ_SEARCH -¤Î 2¤Ä¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬´Ø·¸¤¹¤ë -(¥×¥í¥»¥¹¤Î fsuid ¤¬ 0 ¤Î¾ì¹ç¡¢¤½¤Î¥×¥í¥»¥¹¤Ï¤³¤ì¤é¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä)¡£ +の 2つのケーパビリティが関係する +(プロセスの fsuid が 0 の場合、そのプロセスはこれらのケーパビリティを持つ)。 .\"O The \fBCAP_DAC_OVERRIDE\fP capability overrides all permission checking, .\"O but only grants execute permission when at least one .\"O of the file's three execute permission bits is set. .B CAP_DAC_OVERRIDE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ÏÁ´¤Æ¤Îµö²Ä¥Á¥§¥Ã¥¯¤ò¾å½ñ¤­¤¹¤ë¡£ -¼ÂºÝ¤Ë¤Ï¡¢ÂоݤȤʤë¥Õ¥¡¥¤¥ë¤Î 3 ¤Ä¤Î¼Â¹Ôµö²Ä¥Ó¥Ã¥È¤Î¤¦¤Á¤Î -¾¯¤Ê¤¯¤È¤â 1 ¤Ä¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢¼Â¹Ô¤òµö²Ä¤¹¤ë¤À¤±¤Ç¤¢¤ë¡£ +ケーパビリティは全ての許可チェックを上書きする。 +実際には、対象となるファイルの 3 つの実行許可ビットのうちの +少なくとも 1 つが設定されていれば、実行を許可するだけである。 .\"O The \fBCAP_DAC_READ_SEARCH\fP capability grants read and search permission .\"O on directories, and read permission on ordinary files. .B CAP_DAC_READ_SEARCH -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ·¤ÆÆɤ߹þ¤ß¤È¸¡º÷¤òµö²Ä¤·¡¢ -Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤ÆÆɤ߹þ¤ß¤òµö²Ä¤¹¤ë¡£ +ケーパビリティは、ディレクトリに対して読み込みと検索を許可し、 +通常のファイルに対して読み込みを許可する。 .\" FIXME say something about immutable files .\" FIXME say something about ACLs .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR readlink (2), .BR capabilities (7), .BR credentials (7), diff --git a/draft/man7/pipe.7 b/draft/man7/pipe.7 index df83f41c..8faf4605 100644 --- a/draft/man7/pipe.7 +++ b/draft/man7/pipe.7 @@ -27,11 +27,11 @@ .\" .TH PIPE 7 2005-12-08 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O pipe \- overview of pipes and FIFOs -pipe \- ¥Ñ¥¤¥×¤È FIFO ¤Î³µÍ× +pipe \- パイプと FIFO の概要 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Pipes and FIFOs (also known as named pipes) .\"O provide a unidirectional interprocess communication channel. .\"O A pipe has a @@ -40,11 +40,11 @@ pipe \- .\"O .IR "write end" . .\"O Data written to the write end of a pipe can be read .\"O from the read end of the pipe. -¥Ñ¥¤¥×¤È FIFO (̾Á°ÉÕ¤­¥Ñ¥¤¥×¤È¤â¤¤¤¦) ¤Ï¡¢ -ñÊý¸þ¤Î¥×¥í¥»¥¹´ÖÄÌ¿®¥Á¥ã¥Í¥ë¤òÄ󶡤¹¤ë¡£ -¥Ñ¥¤¥×¤Ë¤Ï¡ÖÆɤ߽Ф·Â¦¡×¤È¡Ö½ñ¤­¹þ¤ß¦¡×¤¬¤¢¤ë¡£ -¥Ñ¥¤¥×¤Î½ñ¤­¹þ¤ß¦¤Ç½ñ¤­¹þ¤Þ¤ì¤¿¥Ç¡¼¥¿¤Ï¡¢ -¥Ñ¥¤¥×¤ÎÆɤ߽Ф·Â¦¤«¤éÆɤ߽Ф¹¤³¤È¤¬¤Ç¤­¤ë¡£ +パイプと FIFO (名前付きパイプともいう) は、 +単方向のプロセス間通信チャネルを提供する。 +パイプには「読み出し側」と「書き込み側」がある。 +パイプの書き込み側で書き込まれたデータは、 +パイプの読み出し側から読み出すことができる。 .\"O A pipe is created using .\"O .BR pipe (2), @@ -55,17 +55,17 @@ pipe \- .\"O processes; see .\"O .BR pipe (2) .\"O for an example. -¥Ñ¥¤¥×¤òºîÀ®¤¹¤ë¤Ë¤Ï +パイプを作成するには .BR pipe (2) -¤ò»ÈÍѤ¹¤ë¡£ +を使用する。 .BR pipe (2) -¤Ï¿·¤·¤¤¥Ñ¥¤¥×¤òºîÀ®¤·¡¢¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÆó¤ÄÊÖ¤¹¡£ -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¦¤Á¡¢°ìÊý¤Ï¥Ñ¥¤¥×¤ÎÆɤ߽Ф·Â¦¤ò¡¢¤â¤¦°ìÊý¤Ï -½ñ¤­¹þ¤ß¦¤ò»²¾È¤·¤Æ¤¤¤ë¡£ -¥Ñ¥¤¥×¤Ï´ØÏ¢¤¹¤ë¥×¥í¥»¥¹´Ö¤ÎÄÌ¿®¤òºîÀ®¤¹¤ë¤Î¤Ë»ÈÍѤǤ­¤ë¡£ -Îã¤Ï +は新しいパイプを作成し、ファイル・ディスクリプタを二つ返す。 +ディスクリプタのうち、一方はパイプの読み出し側を、もう一方は +書き込み側を参照している。 +パイプは関連するプロセス間の通信を作成するのに使用できる。 +例は .BR pipe (2) -¤ò»²¾È¡£ +を参照。 .\"O A FIFO (short for First In First Out) has a name within the file .\"O system (created using @@ -73,13 +73,13 @@ pipe \- .\"O and is opened using .\"O .BR open (2). .\"O Any process may open a FIFO, assuming the file permissions allow it. -FIFO (First In First Out ¤Î¾Êά) ¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Î̾Á°¤ò»ý¤Á¡¢ +FIFO (First In First Out の省略) はファイルシステムでの名前を持ち、 .BR open (2) -¤ò»È¤Ã¤Æ¥ª¡¼¥×¥ó¤Ç¤­¤ë +を使ってオープンできる .RB ( mkfifo (3) -¤ò»È¤Ã¤ÆºîÀ®¤µ¤ì¤ë)¡£ -¤É¤ó¤Ê¥×¥í¥»¥¹¤Ç¤â¡¢¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹µö²Ä¤¬¤¢¤ì¤Ð FIFO ¤ò¥ª¡¼¥×¥ó¤¹¤ë -¤³¤È¤¬¤Ç¤­¤ë¡£ +を使って作成される)。 +どんなプロセスでも、ファイルのアクセス許可があれば FIFO をオープンする +ことができる。 .\"O The read end is opened using the .\"O .B O_RDONLY .\"O flag; the write end is opened using the @@ -88,30 +88,30 @@ FIFO (First In First Out .\"O See .\"O .BR fifo (7) .\"O for further details. -Æɤ߽Ф·Â¦¤ò¥ª¡¼¥×¥ó¤¹¤ë¤Ë¤Ï +読み出し側をオープンするには .B O_RDONLY -¥Õ¥é¥°¤ò»ÈÍѤ·¡¢½ñ¤­¹þ¤ß¦¤ò¥ª¡¼¥×¥ó¤¹¤ë¤Ë¤Ï +フラグを使用し、書き込み側をオープンするには .B O_WRONLY -¥Õ¥é¥°¤ò»ÈÍѤ¹¤ë¡£¾ÜºÙ¤Ï +フラグを使用する。詳細は .BR fifo (7) -¤ò»²¾È¡£ +を参照。 .\"O .IR Note : .\"O although FIFOs have a pathname in the file system, .\"O I/O on FIFOs does not involve operations on the underlying device .\"O (if there is one). -¡ÚÃí°Õ¡Û -FIFO ¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÆâ¤Î¥Ñ¥¹Ì¾¤ò»ý¤Ä¤¬¡¢ -FIFO ¤ËÂФ·¤ÆÆþ½ÐÎϤò¹Ô¤Ã¤Æ¤â¡¢(¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬Â¸ºß¤¹¤ë¥Ç¥Ð¥¤¥¹¤¬ -¤¢¤Ã¤¿¤È¤·¤Æ¤â) ¤½¤Î¥Ç¥Ð¥¤¥¹¤ËÂФ¹¤ëÁàºî¤ÏȯÀ¸¤·¤Ê¤¤¡£ +【注意】 +FIFO はファイルシステム内のパス名を持つが、 +FIFO に対して入出力を行っても、(ファイルシステムが存在するデバイスが +あったとしても) そのデバイスに対する操作は発生しない。 .\"O .SS "I/O on Pipes and FIFOs" -.SS "¥Ñ¥¤¥×¤ä FIFO ¤ËÂФ¹¤ëÆþ½ÐÎÏ" +.SS "パイプや FIFO に対する入出力" .\"O The only difference between pipes and FIFOs is the manner in which .\"O they are created and opened. .\"O Once these tasks have been accomplished, .\"O I/O on pipes and FIFOs has exactly the same semantics. -¥Ñ¥¤¥×¤È FIFO ¤Î°ã¤¤¤ÏºîÀ®¤ä¥ª¡¼¥×¥ó¤ÎÊýË¡¤À¤±¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤ÎÁàºî¤¬´°Î»¤·¤¿¸å¤Ï¡¢¥Ñ¥¤¥×¤È FIFO ¤ËÂФ¹¤ëÆþ½ÐÎÏ¤Ï -Á´¤¯Æ±¤¸»ÅÁȤߤǹԤï¤ì¤ë¡£ +パイプと FIFO の違いは作成やオープンの方法だけである。 +これらの操作が完了した後は、パイプと FIFO に対する入出力は +全く同じ仕組みで行われる。 .\"O If a process attempts to read from an empty pipe, then .\"O .BR read (2) @@ -126,26 +126,26 @@ FIFO .\"O operation to enable the .\"O .B O_NONBLOCK .\"O open file status flag. -¥×¥í¥»¥¹¤¬¶õ¤Î¥Ñ¥¤¥×¤«¤éÆɤ߽Ф·¤ò¹Ô¤ª¤¦¤È¤·¤¿¾ì¹ç¡¢ +プロセスが空のパイプから読み出しを行おうとした場合、 .BR read (2) -¤Ï¥Ç¡¼¥¿¤¬Æɤ߽Ф·²Äǽ¤Ë¤Ê¤ë¤Þ¤ÇÄä»ß¤¹¤ë¡£ -¥×¥í¥»¥¹¤¬¥Õ¥ë¾õÂ֤Υѥ¤¥×¤Ë½ñ¤­¹þ¤ß¤ò¹Ô¤ª¤¦¤È¤·¤¿¾ì¹ç¡¢ +はデータが読み出し可能になるまで停止する。 +プロセスがフル状態のパイプに書き込みを行おうとした場合、 .BR write (2) -¤Ï½ñ¤­¹þ¤ß¤ò´°Î»¤¹¤ë¤Î¤Ë½½Ê¬¤ÊÎ̤Υѥ¤¥×¤«¤é¤ÎÆɤ߽Ф·¤¬ -¹Ô¤ï¤ì¤ë¤Þ¤ÇÄä»ß¤¹¤ë¡£ -ÈóÄä»ß (nonblocking) I/O ¤ò»È¤¦¤³¤È¤â¤Ç¤­¤ë¡£ -ÈóÄä»ß I/O ¤ò»È¤¦¤Ë¤Ï¡¢ +は書き込みを完了するのに十分な量のパイプからの読み出しが +行われるまで停止する。 +非停止 (nonblocking) I/O を使うこともできる。 +非停止 I/O を使うには、 .BR fcntl (2) .B F_SETFL -Áàºî¤ò»È¤Ã¤Æ¡¢ +操作を使って、 .B O_NONBLOCK -¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤òÍ­¸ú¤Ë¤¹¤ë¡£ +オープンファイル状態フラグを有効にする。 .\"O The communication channel provided by a pipe is a .\"O .IR "byte stream" : .\"O there is no concept of message boundaries. -¥Ñ¥¤¥×¤Ë¤è¤êÄ󶡤µ¤ì¤ëÄÌ¿®¥Á¥ã¥Í¥ë¤Ï¡Ö¥Ð¥¤¥È¥¹¥È¥ê¡¼¥à¡×¤Ç¤¢¤ê¡¢ -¥á¥Ã¥»¡¼¥¸¶­³¦¤Î³µÇ°¤Ï¤Ê¤¤¡£ +パイプにより提供される通信チャネルは「バイトストリーム」であり、 +メッセージ境界の概念はない。 .\"O If all file descriptors referring to the write end of a pipe .\"O have been closed, then an attempt to @@ -153,34 +153,34 @@ FIFO .\"O from the pipe will see end-of-file .\"O .RB ( read (2) .\"O will return 0). -¥Ñ¥¤¥×¤Î½ñ¤­¹þ¤ß¦¤ò»²¾È¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ -¤¹¤Ù¤Æ¥¯¥í¡¼¥º¤µ¤ì¤¿¸å¤Ç¡¢¤½¤Î¥Ñ¥¤¥×¤«¤é +パイプの書き込み側を参照しているファイル・ディスクリプタが +すべてクローズされた後で、そのパイプから .BR read (2) -¤ò¹Ô¤ª¤¦¤È¤·¤¿¾ì¹ç¡¢ -end-of-file (¥Õ¥¡¥¤¥ëËöÈø) ¤¬¸«¤¨¤ë +を行おうとした場合、 +end-of-file (ファイル末尾) が見える .RB ( read (2) -¤Ï 0 ¤òÊÖ¤¹)¡£ +は 0 を返す)。 .\"O If all file descriptors referring to the read end of a pipe .\"O have been closed, then a .\"O .BR write (2) .\"O will cause a .\"O .B SIGPIPE .\"O signal to be generated for the calling process. -¥Ñ¥¤¥×¤ÎÆɤ߽Ф·Â¦¤ò»²¾È¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ -¤¹¤Ù¤Æ¥¯¥í¡¼¥º¤µ¤ì¤¿¸å¤Ç¡¢ +パイプの読み出し側を参照しているファイル・ディスクリプタが +すべてクローズされた後で、 .BR write (2) -¤ò¹Ô¤¦¤È¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë +を行うと、呼び出し元プロセスに .B SIGPIPE -¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£ +シグナルが送られる。 .\"O If the calling process is ignoring this signal, then .\"O .BR write (2) .\"O fails with the error .\"O .BR EPIPE . -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬¤³¤Î¥·¥°¥Ê¥ë¤ò̵»ë¤·¤Æ¤¤¤ë¤È¤­¤Ë¤Ï¡¢ +呼び出し元プロセスがこのシグナルを無視しているときには、 .BR write (2) -¤Ï¥¨¥é¡¼ +はエラー .B EPIPE -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .\"O An application that uses .\"O .BR pipe (2) .\"O and @@ -192,24 +192,24 @@ end-of-file ( .\"O .BR SIGPIPE / EPIPE .\"O are delivered when appropriate. .BR pipe (2) -¤È +と .BR fork (2) -¤ò»ÈÍѤ¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ +を使用するアプリケーションでは、 .BR close (2) -¤òŬÀڤ˻ȤäÆÉÔɬÍפʥե¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÊ£À½¤ò -¥¯¥í¡¼¥º¤¹¤Ù¤­¤Ç¤¢¤ë¡£¤³¤¦¤¹¤ë¤³¤È¤Ç¡¢É¬Íפʻþ¤Ë³Î¼Â¤Ë -end-of-file ¤ä +を適切に使って不必要なファイル・ディスクリプタの複製を +クローズすべきである。こうすることで、必要な時に確実に +end-of-file や .BR SIGPIPE / EPIPE -¤¬ÇÛÁ÷¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +が配送されるようになる。 .\"O It is not possible to apply .\"O .BR lseek (2) .\"O to a pipe. -¥Ñ¥¤¥×¤Ë¤Ï +パイプには .BR lseek (2) -¤ò¹Ô¤¦¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +を行うことはできない。 .\"O .SS "Pipe Capacity" -.SS ¥Ñ¥¤¥×¤ÎÍÆÎÌ +.SS パイプの容量 .\"O A pipe has a limited capacity. .\"O If the pipe is full, then a .\"O .BR write (2) @@ -221,24 +221,24 @@ end-of-file .\"O an application should be designed so that a reading process consumes data .\"O as soon as it is available, .\"O so that a writing process does not remain blocked. -¥Ñ¥¤¥×¤ÎÍÆÎ̤ˤϾå¸Â¤¬¤¢¤ë¡£ -¥Ñ¥¤¥×¤¬¥Õ¥ë¤Î¾ì¹ç¡¢ +パイプの容量には上限がある。 +パイプがフルの場合、 .BR write (2) -¤ÏÄä»ß¤·¤¿¤ê¼ºÇÔ¤·¤¿¤ê¤¹¤ë¡£¤É¤Á¤é¤Ë¤Ê¤ë¤«¤Ï +は停止したり失敗したりする。どちらになるかは .B O_NONBLOCK -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Ë°Í¸¤¹¤ë (²¼µ­»²¾È)¡£ -¼ÂÁõ¤Ë¤è¤ê¡¢¥Ñ¥¤¥×¤ÎÍÆÎ̤ξå¸Â¤Ï°Û¤Ê¤ë¡£ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÏÆÃÄê¤ÎÍÆÎ̤òÁ°Äó¤Ë¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -½ñ¤­¹þ¤ß¦¤Î¥×¥í¥»¥¹¤¬Ää»ß¤·¤¿¤Þ¤Þ¤Ë¤Ê¤é¤Ê¤¤¤è¤¦¡¢ -Æɤ߽Ф·Â¦¤Î¥×¥í¥»¥¹¤Ï¥Ç¡¼¥¿¤¬ÍøÍѲÄǽ¤Ë¤Ê¤Ã¤¿¤é¤Ç¤­¤ë¤À¤±¤¹¤°¤Ë -Æɤ߽Ф·¤ò¹Ô¤¦¤è¤¦¤Ë¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òÀ߷פ¹¤Ù¤­¤Ç¤¢¤ë¡£ +フラグがセットされているかどうかに依存する (下記参照)。 +実装により、パイプの容量の上限は異なる。 +アプリケーションは特定の容量を前提にすべきではない。 +書き込み側のプロセスが停止したままにならないよう、 +読み出し側のプロセスはデータが利用可能になったらできるだけすぐに +読み出しを行うように、アプリケーションを設計すべきである。 .\"O In Linux versions before 2.6.11, the capacity of a pipe was the same as .\"O the system page size (e.g., 4096 bytes on i386). .\"O Since Linux 2.6.11, the pipe capacity is 65536 bytes. -¥Ð¡¼¥¸¥ç¥ó 2.6.11 ¤è¤êÁ°¤Î Linux ¤Ç¤Ï¥Ñ¥¤¥×¤ÎÍÆÎ̤ϥ·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥º -¤ÈƱ¤¸¤Ç¤¢¤Ã¤¿ (Î㤨¤Ð i386 ¤Ç¤Ï 4096 ¥Ð¥¤¥È)¡£ -Linux 2.6.11 °Ê¹ß¤Ç¤Ï¡¢¥Ñ¥¤¥×¤ÎÍÆÎÌ¤Ï 65536 ¥Ð¥¤¥È¤Ç¤¢¤ë¡£ +バージョン 2.6.11 より前の Linux ではパイプの容量はシステムのページサイズ +と同じであった (例えば i386 では 4096 バイト)。 +Linux 2.6.11 以降では、パイプの容量は 65536 バイトである。 .\"O .SS PIPE_BUF .SS PIPE_BUF .\"O POSIX.1-2001 says that @@ -257,36 +257,36 @@ Linux 2.6.11 .\"O (On Linux, .\"O .B PIPE_BUF .\"O is 4096 bytes.) -POSIX.1-2001 ¤Ç¤Ï¡¢ +POSIX.1-2001 では、 .B PIPE_BUF -¥Ð¥¤¥È°Ê²¼¤Î +バイト以下の .BR write (2) -¤Ï atomic ¤Ë¹Ô¤ï¤ì¤ë¤³¤È¡¢¤Ä¤Þ¤ê¥Ñ¥¤¥×¤Ø¤Î½ÐÎϥǡ¼¥¿¤Î½ñ¤­¹þ¤ß¤Ï -Ϣ³¤·¤¿¥·¡¼¥±¥ó¥¹¤È¤·¤Æ¹Ô¤ï¤ì¤ë¤³¤È¤òɬ¿Ü¤È¤·¤Æ¤¤¤ë (MUST)¡£ +は atomic に行われること、つまりパイプへの出力データの書き込みは +連続したシーケンスとして行われることを必須としている (MUST)。 .B PIPE_BUF -¥Ð¥¤¥È¤è¤ê¿¤¯¤Î¥Ç¡¼¥¿¤ò½ñ¤­¹þ¤ß¾ì¹ç¤Ï atomic ¤È¤Ï¤Ê¤é¤Ê¤¤¡¢ -¤Ä¤Þ¤ê¥Ñ¥¤¥×¤Ø¤Î¾¤Î¥×¥í¥»¥¹¤Ë¤è¤ë¥Ç¡¼¥¿¤Î½ñ¤­¹þ¤ß¤¬´Ö¤ËÆþ¤ë -²ÄǽÀ­¤¬¤¢¤ë¡£ -POSIX.1-2001 ¤Î»ÅÍͤǤϡ¢ +バイトより多くのデータを書き込み場合は atomic とはならない、 +つまりパイプへの他のプロセスによるデータの書き込みが間に入る +可能性がある。 +POSIX.1-2001 の仕様では、 .B PIPE_BUF -¤ÏºÇ¾®¤Ç¤â 512 ¥Ð¥¤¥È¤Ç¤¢¤ë¤³¤È¤¬Í׵ᤵ¤ì¤Æ¤¤¤ë -(Linux ¤Ç¤Ï +は最小でも 512 バイトであることが要求されている +(Linux では .B PIPE_BUF -¤Ï 4096 ¥Ð¥¤¥È¤Ç¤¢¤ë)¡£ +は 4096 バイトである)。 .\"O The precise semantics depend on whether the file descriptor is nonblocking .\"O .RB ( O_NONBLOCK ), .\"O whether there are multiple writers to the pipe, and on .\"O .IR n , .\"O the number of bytes to be written: -Àµ³Î¤ÊÆ°ºî¤Ï¡¢¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ nonblocking +正確な動作は、ファイル・ディスクリプタが nonblocking .RB ( O_NONBLOCK ) -¤«¤É¤¦¤«¡¢¥Ñ¥¤¥×¤Ø¤Î½ñ¤­¹þ¤ß¤¬Ê£¿ô¤«¤é¹Ô¤ï¤ì¤ë¤«¤É¤¦¤«¡¢¤ª¤è¤Ó -½ñ¤­¹þ¤ß¤ò¹Ô¤¦¥Ð¥¤¥È¿ô +かどうか、パイプへの書き込みが複数から行われるかどうか、および +書き込みを行うバイト数 .I n -¤Ë¤è¤ê·èÄꤵ¤ì¤ë¡£ +により決定される。 .TP .\"O \fBO_NONBLOCK\fP disabled, \fIn\fP <= \fBPIPE_BUF\fP -\fBO_NONBLOCK\fP ̵¸ú, \fIn\fP <= \fBPIPE_BUF\fP +\fBO_NONBLOCK\fP 無効, \fIn\fP <= \fBPIPE_BUF\fP .\"O All .\"O .I n .\"O bytes are written atomically; @@ -295,14 +295,14 @@ POSIX.1-2001 .\"O .I n .\"O bytes to be written immediately .I n -¥Ð¥¤¥ÈÁ´Éô¤Î½ñ¤­¹þ¤ß¤¬ atomic ¤Ë¹Ô¤ï¤ì¤ë¡£ +バイト全部の書き込みが atomic に行われる。 .I n -¥Ð¥¤¥Èʬ¤ò¤¹¤°¤Ë½ñ¤­¹þ¤à;ÃϤ¬¤Ê¤¤¾ì¹ç¤Ï +バイト分をすぐに書き込む余地がない場合は .BR write (2) -¤ÏÄä»ß (block) ¤¹¤ë¤³¤È¤¬¤¢¤ë¡£ +は停止 (block) することがある。 .TP .\"O \fBO_NONBLOCK\fP enabled, \fIn\fP <= \fBPIPE_BUF\fP -\fBO_NONBLOCK\fP Í­¸ú, \fIn\fP <= \fBPIPE_BUF\fP +\fBO_NONBLOCK\fP 有効, \fIn\fP <= \fBPIPE_BUF\fP .\"O If there is room to write .\"O .I n .\"O bytes to the pipe, then @@ -315,21 +315,21 @@ POSIX.1-2001 .\"O .I errno .\"O set to .\"O .BR EAGAIN . -¥Ñ¥¤¥×¤Ë +パイプに .I n -¥Ð¥¤¥È¤ò½ñ¤­¹þ¤à;ÃϤ¬¤¢¤ë¾ì¹ç¤Ï¡¢ +バイトを書き込む余地がある場合は、 .I n -¥Ð¥¤¥ÈÁ´Éô¤¬¤¹¤°¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£ -;ÃϤ¬¤Ê¤¤¾ì¹ç¤Ï¡¢ +バイト全部がすぐに書き込まれる。 +余地がない場合は、 .BR write (2) -¤Ï¼ºÇÔ¤·¡¢ +は失敗し、 .I errno -¤Ë +に .B EAGAIN -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .TP .\"O \fBO_NONBLOCK\fP disabled, \fIn\fP > \fBPIPE_BUF\fP -\fBO_NONBLOCK\fP ̵¸ú, \fIn\fP > \fBPIPE_BUF\fP +\fBO_NONBLOCK\fP 無効, \fIn\fP > \fBPIPE_BUF\fP .\"O The write is nonatomic: the data given to .\"O .BR write (2) .\"O may be interleaved with @@ -340,18 +340,18 @@ POSIX.1-2001 .\"O blocks until .\"O .I n .\"O bytes have been written. -½ñ¤­¹þ¤ß¤Ï atomic ¤È¤Ï¤Ê¤é¤Ê¤¤¡£ +書き込みは atomic とはならない。 .BR write (2) -¤ËÅϤµ¤ì¤¿¥Ç¡¼¥¿¤Î´Ö¤Ë¡¢Â¾¤Î¥×¥í¥»¥¹¤Ë¤è¤ê +に渡されたデータの間に、他のプロセスにより .BR write (2) -¤µ¤ì¤¿¥Ç¡¼¥¿¤¬Æþ¤ë¤³¤È¤¬¤¢¤ë¡£ +されたデータが入ることがある。 .BR write (2) -¤Ï +は .I n -¥Ð¥¤¥È¤Î½ñ¤­¹þ¤ß¤¬´°Î»¤¹¤ë¤Þ¤ÇÄä»ß¤¹¤ë¡£ +バイトの書き込みが完了するまで停止する。 .TP .\"O \fBO_NONBLOCK\fP enabled, \fIn\fP > \fBPIPE_BUF\fP -\fBO_NONBLOCK\fP Í­¸ú, \fIn\fP > \fBPIPE_BUF\fP +\fBO_NONBLOCK\fP 有効, \fIn\fP > \fBPIPE_BUF\fP .\"O If the pipe is full, then .\"O .BR write (2) .\"O fails, with @@ -365,34 +365,34 @@ POSIX.1-2001 .\"O .BR write (2) .\"O to see how many bytes were actually written), .\"O and these bytes may be interleaved with writes by other processes. -¥Ñ¥¤¥×¤¬¥Õ¥ë¤Î¾ì¹ç¡¢ +パイプがフルの場合、 .BR write (2) -¤Ï¼ºÇÔ¤·¡¢ +は失敗し、 .I errno -¤Ë +に .B EAGAIN -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢1 ¥Ð¥¤¥È°Ê¾å +がセットされる。 +それ以外の場合、1 バイト以上 .I n -¥Ð¥¤¥È°Ê²¼¤Î¥Ç¡¼¥¿¤¬½ñ¤­¹þ¤Þ¤ì¤ë -(¤Ä¤Þ¤ê¡Ö°ìÉôʬ¤À¤±½ñ¤­¹þ¤Þ¤ì¤ë¡×¾ì¹ç¤â¤¢¤êÆÀ¤ë)¡£ -¸Æ¤Ó½Ð¤·¸µ¤Ï +バイト以下のデータが書き込まれる +(つまり「一部分だけ書き込まれる」場合もあり得る)。 +呼び出し元は .BR write (2) -¤ÎÊÖ¤êÃͤò»²¾È¤·¡¢¼ÂºÝ¤Ë²¿¥Ð¥¤¥È½ñ¤­¹þ¤Þ¤ì¤¿¤Î¤«¤ò³Îǧ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¤Þ¤¿¡¢½ñ¤­¹þ¤ß¤ËÀ®¸ù¤·¤¿¥Ç¡¼¥¿¤â¡¢Â¾¤Î¥×¥í¥»¥¹¤¬½ñ¤­¹þ¤ó¤À¥Ç¡¼¥¿¤¬ -´Ö¤ËÆþ¤ë¤³¤È¤¬¤¢¤ë¡£ +の返り値を参照し、実際に何バイト書き込まれたのかを確認すべきである。 +また、書き込みに成功したデータも、他のプロセスが書き込んだデータが +間に入ることがある。 .\"O .SS "Open File Status Flags" -.SS ¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ë¾õÂ֥ե饰 +.SS オープンファイル状態フラグ .\"O The only open file status flags that can be meaningfully applied to .\"O a pipe or FIFO are .\"O .B O_NONBLOCK .\"O and .\"O .BR O_ASYNC . -¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤Î¤¦¤Á¡¢¥Ñ¥¤¥×¤ä FIFO ¤ËÂФ·¤Æ°ÕÌ£¤ò»ý¤Ä¤Î¤Ï +オープンファイル状態フラグのうち、パイプや FIFO に対して意味を持つのは .B O_NONBLOCK -¤È +と .B O_ASYNC -¤À¤±¤Ç¤¢¤ë¡£ +だけである。 .\"O Setting the .\"O .B O_ASYNC @@ -405,31 +405,31 @@ POSIX.1-2001 .\"O On Linux, .\"O .B O_ASYNC .\"O is supported for pipes and FIFOs only since kernel 2.6. -¥Ñ¥¤¥×¤ÎÆɤ߽Ф·Â¦¤Ë +パイプの読み出し側に .B O_ASYNC -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢¥Ñ¥¤¥×¤Ë¿·¤¿¤ÊÆþÎϤ¬¤¢¤ë¤È¥·¥°¥Ê¥ë (¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï +フラグをセットすると、パイプに新たな入力があるとシグナル (デフォルトでは .BR SIGIO ) -¤¬À¸À®¤µ¤ì¤ë (¾ÜºÙ¤Ï +が生成される (詳細は .BR fcntl (2) -¤ò»²¾È)¡£ -Linux ¤Ç¤Ï¡¢ -¥Ñ¥¤¥×¤È FIFO ¤ËÂФ¹¤ë +を参照)。 +Linux では、 +パイプと FIFO に対する .B O_ASYNC -¤Ï¥«¡¼¥Í¥ë 2.6 °Ê¹ß¤Ç¤Î¤ß¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +はカーネル 2.6 以降でのみサポートされている。 .\"O .SS "Portability notes" -.SS °Ü¿¢¤Ë´Ø¤¹¤ëÃí°Õ +.SS 移植に関する注意 .\"O On some systems (but not Linux), pipes are bidirectional: .\"O data can be transmitted in both directions between the pipe ends. .\"O According to POSIX.1-2001, pipes only need to be unidirectional. .\"O Portable applications should avoid reliance on .\"O bidirectional pipe semantics. -¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à (Linux ¤Ç¤Ï¤Ê¤¤) ¤Ç¤Ï¡¢¥Ñ¥¤¥×¤ÏÁÐÊý¸þ¤Ç¤¢¤ë¡¢ -¤Ä¤Þ¤ê¥Ñ¥¤¥×¤Îξü´Ö¤Ç¥Ç¡¼¥¿¤òξÊý¸þ¤ËÁ÷¿®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -POSIX.1-2001 ¤Ç¤Ï¡¢¥Ñ¥¤¥×¤Ï°ìÊý¸þ¤ÎÄÌ¿®¤À¤±¤ËÂбþ¤·¤Æ¤¤¤ì¤Ð¤è¤¤¡£ -°Ü¿¢¤ò¹Íθ¤·¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ÁÐÊý¸þ¥Ñ¥¤¥×¤Î»ÅÁȤߤò -Á°Äó¤Ë¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +いくつかのシステム (Linux ではない) では、パイプは双方向である、 +つまりパイプの両端間でデータを両方向に送信することができる。 +POSIX.1-2001 では、パイプは一方向の通信だけに対応していればよい。 +移植を考慮したアプリケーションでは、双方向パイプの仕組みを +前提にすべきではない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR dup (2), .BR fcntl (2), .BR open (2), diff --git a/draft/man7/posixoptions.7 b/draft/man7/posixoptions.7 index 1ead1518..dafd2be4 100644 --- a/draft/man7/posixoptions.7 +++ b/draft/man7/posixoptions.7 @@ -25,19 +25,19 @@ .\" Translated Thu Dec 16 03:35:45 JST 2004 .\" by Yuichi SATO .\" -.\"WORD: feature test macro µ¡Ç½¥Æ¥¹¥È¥Þ¥¯¥í +.\"WORD: feature test macro 機能テストマクロ .\" .TH POSIXOPTIONS 7 2007-12-21 "" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O posixoptions \- optional parts of the POSIX standard -POSIX ɸ½à¤ÎÁªÂò²Äǽ¤ÊÉôʬ +POSIX 標準の選択可能な部分 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The POSIX standard (the information below is from POSIX.1-2001) .\"O describes a set of behaviors and interfaces for a compliant system. -POSIX ɸ½à (°Ê²¼¤Î¾ðÊó¤Ï POSIX.1-2001 ¤ÎÈ´¿è) ¤Ï -¸ß´¹¥·¥¹¥Æ¥à¤ÎÆ°ºî¤È¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î¥»¥Ã¥È¤òµ­½Ò¤·¤Æ¤¤¤ë¡£ +POSIX 標準 (以下の情報は POSIX.1-2001 の抜粋) は +互換システムの動作とインタフェースのセットを記述している。 .\"O However, many interfaces are optional and there are feature test macros .\"O to test the availability of interfaces at compile time, and functions .\"O .BR sysconf (3), @@ -47,37 +47,37 @@ POSIX ɸ .\"O to do this at run time. .\"O From shell scripts one can use .\"O .BR getconf (1). -¤·¤«¤·¡¢Â¿¤¯¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÏÁªÂò²Äǽ¤Ç¤¢¤ê¡¢ -¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¬»ÈÍѲÄǽ¤«¤ò¥Æ¥¹¥È¤¹¤ëµ¡Ç½¥Æ¥¹¥È¥Þ¥¯¥í¤È¡¢ -¼Â¹Ô»þ¤Ë¥Æ¥¹¥È¤¹¤ë´Ø¿ô +しかし、多くのインタフェースは選択可能であり、 +コンパイル時にインタフェースが使用可能かをテストする機能テストマクロと、 +実行時にテストする関数 .BR sysconf (3), .BR fpathconf (3), .BR pathconf (3), .BR confstr (3) -¤¬¤¢¤ë¡£ -¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤Ç¤Ï +がある。 +シェルスクリプトでは .BR getconf (1) -¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +を使うことができる。 .\"O For more detail, see .\"O .BR sysconf (3). -¾ÜºÙ¤Ï +詳細は .BR sysconf (3) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .LP .\"O We give the name of the POSIX abbreviation, the option, the name of the .\"O .BR sysconf (3) .\"O parameter used to inquire about the option, and possibly .\"O a very short description. -POSIX ¾Êά·Á¤Î̾Á°¡¦¥ª¥×¥·¥ç¥ó¡¦¥ª¥×¥·¥ç¥ó¤òÄ´¤Ù¤ë¤¿¤á¤Î +POSIX 省略形の名前・オプション・オプションを調べるための .BR sysconf (3) -°ú¤­¿ô¤Î̾Á°¡¦(²Äǽ¤Ê¤é¤Ð) Èó¾ï¤Ëû¤¤ÀâÌÀ¤òµ­½Ò¤¹¤ë¡£ +引き数の名前・(可能ならば) 非常に短い説明を記述する。 .\"O Much more precise detail can be found in the POSIX standard itself, .\"O versions of which can nowadays be accessed freely on the web. -¤è¤êÀµ³Î¤Ê¾ÜºÙ¤Ï POSIX ɸ½à¼«¿È¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ -POSIX ɸ½à¤Ïº£Æü¤Ç¤Ï Web ¤Ç¼«Í³¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ +より正確な詳細は POSIX 標準自身に書かれている。 +POSIX 標準は今日では Web で自由にアクセスできる。 .SS "ADV - _POSIX_ADVISORY_INFO - _SC_ADVISORY_INFO" .\"O The following advisory functions are present: -°Ê²¼¤Î¥¢¥É¥Ð¥¤¥¹¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下のアドバイスの関数が存在する。 .br .nf .in +4 @@ -91,12 +91,12 @@ POSIX ɸ .fi .SS "AIO - _POSIX_ASYNCHRONOUS_IO - _SC_ASYNCHRONOUS_IO" .\"O The header -¥Ø¥Ã¥À +ヘッダ .I .\"O is present. -¤¬Â¸ºß¤¹¤ë¡£ +が存在する。 .\"O The following functions are present: -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下の関数が存在する。 .br .nf .in +4 @@ -118,13 +118,13 @@ POSIX ɸ .\"O and .\"O .B _POSIX_THREAD_SAFE_FUNCTIONS .\"O options. -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +このオプションは .B _POSIX_THREADS -¤È +と .B _POSIX_THREAD_SAFE_FUNCTIONS -¥ª¥×¥·¥ç¥ó¤ò°ÅÌÛ¤ÎÆâ¤Ë»ØÄꤹ¤ë¡£ +オプションを暗黙の内に指定する。 .\"O The following functions are present: -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下の関数が存在する。 .br .nf .in +4 @@ -139,20 +139,20 @@ POSIX ɸ .fi .\" .SS "BE" .\"O .\" Batch environment. -.\" ¥Ð¥Ã¥Á´Ä¶­ +.\" バッチ環境 .\" .SS "CD" .\"O .\" C development. -.\" C ¤Ë¤è¤ë³«È¯ +.\" C による開発 .SS "--- - POSIX_CHOWN_RESTRICTED" .\"O If this option is in effect (as it always is under POSIX.1-2001) .\"O then only root may change the owner of a file, and nonroot can only .\"O set the group of a file to one of the groups it belongs to. -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ê¾ì¹ç (POSIX.1-2001 ¤Ç¤Ï¾ï¤ËÍ­¸ú)¡¢ -root ¤À¤±¤¬¥Õ¥¡¥¤¥ë½êÍ­¼Ô¤ÎÊѹ¹¤òµö¤µ¤ì¡¢ -root °Ê³°¤Ï¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥×¤ò -¼«Ê¬¤¬½ê°¤¹¤ë¥°¥ë¡¼¥×¤Î 1 ¤Ä¤ËÀßÄꤹ¤ë¤³¤È¤À¤±¤¬¤Ç¤­¤ë¡£ +このオプションが有効な場合 (POSIX.1-2001 では常に有効)、 +root だけがファイル所有者の変更を許され、 +root 以外はファイルのグループを +自分が所属するグループの 1 つに設定することだけができる。 .\"O This affects the functions -¤³¤ì¤Ï°Ê²¼¤Î´Ø¿ô¤Ë±Æ¶Á¤¹¤ë¡£ +これは以下の関数に影響する。 .br .nf .in +4n @@ -160,7 +160,7 @@ root .IR chown (), .IR fchown (). .\"O .\" What about lchown() ? -.\" lchown() ¤Ï¤É¤¦¤Ê¤Î¤«? +.\" lchown() はどうなのか? .in -4 .br .fi @@ -168,11 +168,11 @@ root .\"O This option implies the .\"O .B _POSIX_TIMERS .\"O option. -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +このオプションは .B _POSIX_TIMERS -¥ª¥×¥·¥ç¥ó¤ò°ÅÌÛ¤ÎÆâ¤Ë»ØÄꤹ¤ë¡£ +オプションを暗黙の内に指定する。 .\"O The following functions are present: -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下の関数が存在する。 .br .nf .in +4 @@ -190,51 +190,51 @@ root .\"O .IR clock_settime (), .\"O then this affects all timers set for an absolute time. .B CLOCK_REALTIME -¤¬´Ø¿ô +が関数 .IR clock_settime () -¤ÇÊѹ¹¤µ¤ì¤¿¾ì¹ç¡¢ÀäÂлþ´Ö¤Ë´Ø·¸¤¹¤ëÁ´¤Æ¤Î¥¿¥¤¥Þ¤Î¥»¥Ã¥È¤Ë±Æ¶Á¤¹¤ë¡£ +で変更された場合、絶対時間に関係する全てのタイマのセットに影響する。 .SS "CPT - _POSIX_CPUTIME - _SC_CPUTIME" .\"O The clockID CLOCK_PROCESS_CPUTIME_ID is supported. .\"O The initial value of this clock is 0 for each process. .\"O This option implies the .\"O .B _POSIX_TIMERS .\"O option. -clockID CLOCK_PROCESS_CPUTIME_ID ¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥¯¥í¥Ã¥¯¤Î½é´üÃͤϡ¢³Æ¥×¥í¥»¥¹Ëè¤Ë 0 ¤È¤Ê¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +clockID CLOCK_PROCESS_CPUTIME_ID がサポートされている。 +このクロックの初期値は、各プロセス毎に 0 となる。 +このオプションは .B _POSIX_TIMERS -¥ª¥×¥·¥ç¥ó¤ò°ÅÌÛ¤ÎÆâ¤Ë»ØÄꤹ¤ë¡£ +オプションを暗黙の内に指定する。 .\"O The function -´Ø¿ô +関数 .IR clock_getcpuclockid () .\"O is present. -¤¬Â¸ºß¤¹¤ë¡£ +が存在する。 .\" .SS "FD" .\"O .\" Fortran development -.\" Fortran ¤Ë¤è¤ë³«È¯ +.\" Fortran による開発 .\" .SS "FR" .\"O .\" Fortran runtime -.\" Fortran ¥é¥ó¥¿¥¤¥à +.\" Fortran ランタイム .SS "--- - _POSIX_FILE_LOCKING - _SC_FILE_LOCKING" .\"O This option has been deleted. .\"O Not in final XPG6. -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ïºï½ü¤µ¤ì¤¿¡£XPG6 ºÇ½ªÈǤˤϤʤ¤¡£ +このオプションは削除された。XPG6 最終版にはない。 .SS "FSC - _POSIX_FSYNC - _SC_FSYNC " .\"O The function -´Ø¿ô +関数 .IR fsync () .\"O is present. -¤¬Â¸ºß¤¹¤ë¡£ +が存在する。 .SS "IP6 - _POSIX_IPV6 - _SC_IPV6" .\"O Internet Protocol Version 6 is supported. -Internet Protocol Version 6 ¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +Internet Protocol Version 6 がサポートされている。 .SS "--- - _POSIX_JOB_CONTROL - _SC_JOB_CONTROL" .\"O If this option is in effect (as it always is under POSIX.1-2001) .\"O then the system implements POSIX-style job control, .\"O and the following functions are present: -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ê¾ì¹ç (POSIX.1-2001 ¤Ç¤Ï¾ï¤ËÍ­¸ú)¡¢ -¥·¥¹¥Æ¥à¤Ï POSIX Êý¼°¤Î¥¸¥ç¥ÖÀ©¸æ¤ò¼ÂÁõ¤·¤Æ¤ª¤ê¡¢ -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +このオプションが有効な場合 (POSIX.1-2001 では常に有効)、 +システムは POSIX 方式のジョブ制御を実装しており、 +以下の関数が存在する。 .br .nf .in +4 @@ -250,14 +250,14 @@ Internet Protocol Version 6 .fi .SS "MF - _POSIX_MAPPED_FILES - _SC_MAPPED_FILES" .\"O Shared memory is supported. -¶¦Í­¥á¥â¥ê¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +共有メモリがサポートされている。 .\"O The include file -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +インクルードファイル .I .\"O is present. -¤¬Â¸ºß¤¹¤ë¡£ +が存在する。 .\"O The following functions are present: -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下の関数が存在する。 .br .nf .in +4n @@ -270,9 +270,9 @@ Internet Protocol Version 6 .fi .SS "ML - _POSIX_MEMLOCK - _SC_MEMLOCK" .\"O Shared memory can be locked into core. -¶¦Í­¥á¥â¥ê¤¬¥³¥¢Æâ¤Ë¥í¥Ã¥¯¤Ç¤­¤ë¡£ +共有メモリがコア内にロックできる。 .\"O The following functions are present: -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下の関数が存在する。 .br .nf .in +4n @@ -284,9 +284,9 @@ Internet Protocol Version 6 .fi .SS "MR/MLR - _POSIX_MEMLOCK_RANGE - _SC_MEMLOCK_RANGE" .\"O More precisely, ranges can be locked into core. -¤è¤ê¾ÜºÙ¤Ë¡¢ÈϰϤò¥³¥¢Æâ¤Ë¥í¥Ã¥¯¤Ç¤­¤ë¡£ +より詳細に、範囲をコア内にロックできる。 .\"O The following functions are present: -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下の関数が存在する。 .br .nf .in +4n @@ -298,18 +298,18 @@ Internet Protocol Version 6 .fi .SS "MPR - _POSIX_MEMORY_PROTECTION - _SC_MEMORY_PROTECTION" .\"O The function -´Ø¿ô +関数 .IR mprotect () .\"O is present. -¤¬Â¸ºß¤¹¤ë¡£ +が存在する。 .SS "MSG - _POSIX_MESSAGE_PASSING - _SC_MESSAGE_PASSING" .\"O The include file -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +インクルードファイル .I .\"O is present. -¤¬Â¸ºß¤¹¤ë¡£ +が存在する。 .\"O The following functions are present: -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下の関数が存在する。 .br .nf .in +4 @@ -332,12 +332,12 @@ Internet Protocol Version 6 .\"O .B _POSIX_TIMERS .\"O option. .B CLOCK_MONOTONIC -¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +がサポートされている。 +このオプションは .B _POSIX_TIMERS -¥ª¥×¥·¥ç¥ó¤ò°ÅÌÛ¤ÎÆâ¤Ë»ØÄꤹ¤ë¡£ +オプションを暗黙の内に指定する。 .\"O Affected functions are -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +影響を受ける関数は以下の通り。 .nf .in +4 @@ -351,26 +351,26 @@ Internet Protocol Version 6 .SS "--- - _POSIX_MULTI_PROCESS - _SC_MULTI_PROCESS" .\"O This option has been deleted. .\"O Not in final XPG6. -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ïºï½ü¤µ¤ì¤¿¡£XPG6 ºÇ½ªÈǤˤϤʤ¤¡£ +このオプションは削除された。XPG6 最終版にはない。 .\" .SS "MX" .\"O .\" IEC 60559 Floating-Point Option. -.\" IEC 60559 ÉâÆ°¾®¿ôÅÀ¿ô¥ª¥×¥·¥ç¥ó¡£ +.\" IEC 60559 浮動小数点数オプション。 .SS "--- - _POSIX_NO_TRUNC" .\"O If this option is in effect (as it always is under POSIX.1-2001) .\"O then pathname components longer than .\"O .B NAME_MAX .\"O are not truncated, .\"O but give an error. -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ê¾ì¹ç (POSIX.1-2001 ¤Ç¤Ï¾ï¤ËÍ­¸ú)¡¢ +このオプションが有効な場合 (POSIX.1-2001 では常に有効)、 .B NAME_MAX -¤è¤êŤ¤¥Ñ¥¹Ì¾¤Î¹½À®Í×ÁǤÏÀÚ¤êµÍ¤á¤é¤ì¤Ê¤¤¤¬¡¢¥¨¥é¡¼¤Ë¤Ê¤ë¡£ +より長いパス名の構成要素は切り詰められないが、エラーになる。 .\"O This property may be dependent on the path prefix of the component. -¤³¤ÎÀßÄê¤Ï¹½À®Í×ÁǤΥѥ¹ÀÜƬ¼­¤Ë°Í¸¤¹¤ë¾ì¹ç¤â¤¢¤ë¡£ +この設定は構成要素のパス接頭辞に依存する場合もある。 .SS "PIO - _POSIX_PRIORITIZED_IO - _SC_PRIORITIZED_IO" .\"O This option says that one can specify priorities for asynchronous I/O. -¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÈóƱ´ü I/O ¤ÎÍ¥ÀèÅÙ¤¬»ØÄê¤Ç¤­¤ë¤³¤È¤òɽ¤¹¡£ +このオプションは非同期 I/O の優先度が指定できることを表す。 .\"O This affects the functions -¤³¤ì¤Ï°Ê²¼¤Î´Ø¿ô¤Ë±Æ¶Á¤¹¤ë¡£ +これは以下の関数に影響する。 .br .nf .in +4 @@ -381,12 +381,12 @@ Internet Protocol Version 6 .fi .SS "PS - _POSIX_PRIORITY_SCHEDULING - _SC_PRIORITY_SCHEDULING" .\"O The include file -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +インクルードファイル .I .\"O is present. -¤¬Â¸ºß¤¹¤ë¡£ +が存在する。 .\"O The following functions are present: -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下の関数が存在する。 .br .nf .in +4 @@ -406,7 +406,7 @@ Internet Protocol Version 6 .\"O .B _POSIX_SPAWN .\"O is in effect, then the following functions are present: .B _POSIX_SPAWN -¤âÍ­¸ú¤Ê¾ì¹ç¤Ï¡¢°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +も有効な場合は、以下の関数が存在する。 .br .nf .in +4 @@ -419,9 +419,9 @@ Internet Protocol Version 6 .fi .SS "RS - _POSIX_RAW_SOCKETS" .\"O Raw sockets are supported. -raw ¥½¥±¥Ã¥È¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +raw ソケットがサポートされている。 .\"O Affected functions are -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +影響を受ける関数は以下の通り。 .br .nf .in +4n @@ -439,14 +439,14 @@ raw .\"O under POSIX.1-2001 the .\"O .B _POSIX_THREADS .\"O option implies this option. -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +このオプションは .B _POSIX_THREADS -¥ª¥×¥·¥ç¥ó¤ò°ÅÌÛ¤ÎÆâ¤Ë»ØÄꤹ¤ë¡£ -µÕ¤Ë POSIX.1-2001 ¤Ç¤Ï +オプションを暗黙の内に指定する。 +逆に POSIX.1-2001 では .B _POSIX_THREADS -¥ª¥×¥·¥ç¥ó¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤ò°ÅÌÛ¤ÎÆâ¤Ë»ØÄꤹ¤ë¡£ +オプションはこのオプションを暗黙の内に指定する。 .\"O The following functions are present: -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下の関数が存在する。 .nf .in +4 @@ -463,9 +463,9 @@ raw .fi .SS "RTS - _POSIX_REALTIME_SIGNALS - _SC_REALTIME_SIGNALS" .\"O Realtime signals are supported. -¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +リアルタイムシグナルがサポートされている。 .\"O The following functions are present: -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下の関数が存在する。 .br .nf .in +4 @@ -480,8 +480,8 @@ raw .\"O If this option is in effect (as it always is under POSIX.1-2001) .\"O then POSIX regular expressions are supported .\"O and the following functions are present: -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ê¾ì¹ç (POSIX.1-2001 ¤Ç¤Ï¾ï¤ËÍ­¸ú)¡¢ -POSIX Àµµ¬É½¸½¤¬¥µ¥Ý¡¼¥È¤µ¤ì¡¢°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +このオプションが有効な場合 (POSIX.1-2001 では常に有効)、 +POSIX 正規表現がサポートされ、以下の関数が存在する。 .br .nf .in +4 @@ -494,10 +494,10 @@ POSIX .in -4 .fi .SS "--- - _POSIX_SAVED_IDS - _SC_SAVED_IDS" -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ê¾ì¹ç (POSIX.1-2001 ¤Ç¤Ï¾ï¤ËÍ­¸ú)¡¢ -¥×¥í¥»¥¹¤ÏÊݸ (saved) set-user-ID ¤ÈÊݸ set-group-ID ¤ò»ý¤Ä¡£ +このオプションが有効な場合 (POSIX.1-2001 では常に有効)、 +プロセスは保存 (saved) set-user-ID と保存 set-group-ID を持つ。 .\"O Affected functions are -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +影響を受ける関数は以下の通り。 .br .nf .in +4 @@ -513,15 +513,15 @@ POSIX .fi .\" .SS "SD" .\"O .\" Software development -.\" Software ³«È¯ +.\" Software 開発 .SS "SEM - _POSIX_SEMAPHORES - _SC_SEMAPHORES" .\"O The include file -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +インクルードファイル .I .\"O is present. -¤¬Â¸ºß¤¹¤ë¡£ +が存在する。 .\"O The following functions are present: -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下の関数が存在する。 .br .nf .in +4 @@ -540,7 +540,7 @@ POSIX .fi .SS "SHM - _POSIX_SHARED_MEMORY_OBJECTS - _SC_SHARED_MEMORY_OBJECTS" .\"O The following functions are present: -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下の関数が存在する。 .br .nf .in +4 @@ -555,28 +555,28 @@ POSIX .SS "--- - _POSIX_SHELL - _SC_SHELL" .\"O If this option is in effect (as it always is under POSIX.1-2001), .\"O the function -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ê¾ì¹ç (POSIX.1-2001 ¤Ç¤Ï¾ï¤ËÍ­¸ú)¡¢´Ø¿ô +このオプションが有効な場合 (POSIX.1-2001 では常に有効)、関数 .IR system () .\"O is present. -¤¬Â¸ºß¤¹¤ë¡£ +が存在する。 .SS "SPN - _POSIX_SPAWN - _SC_SPAWN" .\"O This option describes support for process creation in a context where .\"O it is difficult or impossible to use .\"O .IR fork (), .\"O for example, because no MMU is present. -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢Î㤨¤Ð MMU ¤¬Â¸ºß¤·¤Ê¤¤¤Ê¤É¤ÎÍýͳ¤Ë¤è¤Ã¤Æ¡¢ +このオプションは、例えば MMU が存在しないなどの理由によって、 .IR fork () -¤ò»ÈÍѤ¹¤ë¤³¤È¤¬Æñ¤·¤¤¤«ÉÔ²Äǽ¤È¤¤¤¦¾õ¶·¤Ç¡¢ -¥×¥í¥»¥¹À¸À®¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤³¤È¤òɽ¤¹¡£ +を使用することが難しいか不可能という状況で、 +プロセス生成をサポートすることを表す。 .\"O If .\"O .B _POSIX_SPAWN .\"O is in effect, then the include file .\"O .I .\"O and the following functions are present: .B _POSIX_SPAWN -¤¬Í­¸ú¤Ê¾ì¹ç¡¢¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +が有効な場合、インクルードファイル .I -¤È¡¢°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +と、以下の関数が存在する。 .br .nf .in +4 @@ -607,7 +607,7 @@ POSIX .\"O is in effect, then .\"O the following functions are present: .B _POSIX_PRIORITY_SCHEDULING -¤âÍ­¸ú¤Ê¾ì¹ç¡¢°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +も有効な場合、以下の関数が存在する。 .br .nf .in +4 @@ -624,13 +624,13 @@ POSIX .\"O and .\"O .B _POSIX_THREAD_SAFE_FUNCTIONS .\"O options. -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +このオプションは .B _POSIX_THREADS -¤È +と .B _POSIX_THREAD_SAFE_FUNCTIONS -¥ª¥×¥·¥ç¥ó¤ò°ÅÌÛ¤ÎÆâ¤Ë»ØÄꤹ¤ë¡£ +オプションを暗黙の内に指定する。 .\"O The following functions are present: -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下の関数が存在する。 .br .nf .in +4 @@ -650,14 +650,14 @@ POSIX .\"O This option implies the .\"O .B _POSIX_PRIORITY_SCHEDULING .\"O option. -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥Ý¥ê¥·¡¼ +スケジューリングポリシー .B SCHED_SPORADIC -¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +がサポートされている。 +このオプションは .B _POSIX_PRIORITY_SCHEDULING -¥ª¥×¥·¥ç¥ó¤ò°ÅÌÛ¤ÎÆâ¤Ë»ØÄꤹ¤ë¡£ +オプションを暗黙の内に指定する。 .\"O Affected functions are -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +影響を受ける関数は以下の通り。 .br .nf .in +4 @@ -669,14 +669,14 @@ POSIX .fi .SS "SIO - _POSIX_SYNCHRONIZED_IO - _SC_SYNCHRONIZED_IO" .\"O Affected functions are -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +影響を受ける関数は以下の通り。 .IR open (), .IR msync (), .IR fsync (), .IR fdatasync (). .SS "TSA - _POSIX_THREAD_ATTR_STACKADDR - _SC_THREAD_ATTR_STACKADDR" .\"O Affected functions are -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +影響を受ける関数は以下の通り。 .br .nf .in +4 @@ -690,7 +690,7 @@ POSIX .fi .SS "TSS - _POSIX_THREAD_ATTR_STACKSIZE - _SC_THREAD_ATTR_STACKSIZE" .\"O Affected functions are -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +影響を受ける関数は以下の通り。 .br .nf .in +4 @@ -707,12 +707,12 @@ POSIX .\"O This option implies the .\"O .B _POSIX_TIMERS .\"O option. -clockID CLOCK_THREAD_CPUTIME_ID ¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +clockID CLOCK_THREAD_CPUTIME_ID がサポートされている。 +このオプションは .B _POSIX_TIMERS -¥ª¥×¥·¥ç¥ó¤ò°ÅÌÛ¤ÎÆâ¤Ë»ØÄꤹ¤ë¡£ +オプションを暗黙の内に指定する。 .\"O Affected functions are -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +影響を受ける関数は以下の通り。 .br .nf .in +4 @@ -727,7 +727,7 @@ clockID CLOCK_THREAD_CPUTIME_ID .fi .SS "TPI - _POSIX_THREAD_PRIO_INHERIT - _SC_THREAD_PRIO_INHERIT" .\"O Affected functions are -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +影響を受ける関数は以下の通り。 .br .nf .in +4 @@ -739,7 +739,7 @@ clockID CLOCK_THREAD_CPUTIME_ID .fi .SS "TPP - _POSIX_THREAD_PRIO_PROTECT - _SC_THREAD_PRIO_PROTECT" .\"O Affected functions are -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +影響を受ける関数は以下の通り。 .br .nf .in +4 @@ -756,10 +756,10 @@ clockID CLOCK_THREAD_CPUTIME_ID .SS "TPS - _POSIX_THREAD_PRIORITY_SCHEDULING - _SC_THREAD_PRIORITY_SCHEDULING" .\"O If this option is in effect, the different threads inside a process .\"O can run with different priorities and/or different schedulers. -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ê¾ì¹ç¡¢1 ¤Ä¤Î¥×¥í¥»¥¹Æâ¤Î¸Ä¡¹¤Î¥¹¥ì¥Ã¥É¤ò -¸Ä¡¹¤ÎÍ¥ÀèÅÙ¤Þ¤¿¤Ï¸Ä¡¹¤Î¥¹¥±¥¸¥å¡¼¥é (¤Þ¤¿¤Ï¤½¤ÎξÊý) ¤Ç¼Â¹Ô¤Ç¤­¤ë¡£ +このオプションが有効な場合、1 つのプロセス内の個々のスレッドを +個々の優先度または個々のスケジューラ (またはその両方) で実行できる。 .\"O Affected functions are -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +影響を受ける関数は以下の通り。 .br .nf .in +4 @@ -778,7 +778,7 @@ clockID CLOCK_THREAD_CPUTIME_ID .fi .SS "TSH - _POSIX_THREAD_PROCESS_SHARED - _SC_THREAD_PROCESS_SHARED" .\"O Affected functions are -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +影響を受ける関数は以下の通り。 .br .nf .in +4 @@ -796,7 +796,7 @@ clockID CLOCK_THREAD_CPUTIME_ID .fi .SS "TSF - _POSIX_THREAD_SAFE_FUNCTIONS - _SC_THREAD_SAFE_FUNCTIONS" .\"O Affected functions are -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +影響を受ける関数は以下の通り。 .br .nf .in +4 @@ -827,11 +827,11 @@ clockID CLOCK_THREAD_CPUTIME_ID .\"O This option implies the .\"O .B _POSIX_THREAD_PRIORITY_SCHEDULING .\"O option. -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +このオプションは .B _POSIX_THREAD_PRIORITY_SCHEDULING -¥ª¥×¥·¥ç¥ó¤ò°ÅÌÛ¤ÎÆâ¤Ë»ØÄꤹ¤ë¡£ +オプションを暗黙の内に指定する。 .\"O Affected functions are -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +影響を受ける関数は以下の通り。 .br .nf .in +4 @@ -844,9 +844,9 @@ clockID CLOCK_THREAD_CPUTIME_ID .fi .SS "THR - _POSIX_THREADS - _SC_THREADS" .\"O Basic support for POSIX threads is available. -POSIX ¥¹¥ì¥Ã¥É¤Î´ðËÜ¥µ¥Ý¡¼¥È¤¬»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ +POSIX スレッドの基本サポートが使用可能である。 .\"O The following functions are present: -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下の関数が存在する。 .br .nf .in +4 @@ -904,7 +904,7 @@ POSIX .fi .SS "TMO - _POSIX_TIMEOUTS - _SC_TIMEOUTS" .\"O The following functions are present: -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下の関数が存在する。 .br .nf .in +4 @@ -921,7 +921,7 @@ POSIX .fi .SS "TMR - _POSIX_TIMERS - _SC_TIMERS" .\"O The following functions are present: -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下の関数が存在する。 .br .nf .in +4 @@ -940,9 +940,9 @@ POSIX .fi .SS "TRC - _POSIX_TRACE - _SC_TRACE" .\"O POSIX tracing is available. -POSIX ¥È¥ì¡¼¥·¥ó¥° (tracing) ¤¬»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ +POSIX トレーシング (tracing) が使用可能である。 .\"O The following functions are present: -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下の関数が存在する。 .br .nf .in +4 @@ -985,11 +985,11 @@ POSIX .\"O This option implies the .\"O .B _POSIX_TRACE .\"O option. -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +このオプションは .B _POSIX_TRACE -¥ª¥×¥·¥ç¥ó¤ò°ÅÌÛ¤ÎÆâ¤Ë»ØÄꤹ¤ë¡£ +オプションを暗黙の内に指定する。 .\"O The following functions are present: -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下の関数が存在する。 .br .nf .in +4 @@ -1007,15 +1007,15 @@ POSIX .fi .SS "TRI - _POSIX_TRACE_INHERIT - _SC_TRACE_INHERIT" .\"O Tracing children of the traced process is supported. -¥È¥ì¡¼¥¹¤µ¤ì¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Î¥È¥ì¡¼¥¹¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ +トレースされているプロセスの子プロセスのトレースをサポートする。 .\"O This option implies the .\"O .B _POSIX_TRACE .\"O option. -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +このオプションは .B _POSIX_TRACE -¥ª¥×¥·¥ç¥ó¤ò°ÅÌÛ¤ÎÆâ¤Ë»ØÄꤹ¤ë¡£ +オプションを暗黙の内に指定する。 .\"O The following functions are present: -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下の関数が存在する。 .br .nf .in +4 @@ -1029,11 +1029,11 @@ POSIX .\"O This option implies the .\"O .B _POSIX_TRACE .\"O option. -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +このオプションは .B _POSIX_TRACE -¥ª¥×¥·¥ç¥ó¤ò°ÅÌÛ¤ÎÆâ¤Ë»ØÄꤹ¤ë¡£ +オプションを暗黙の内に指定する。 .\"O The following functions are present: -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下の関数が存在する。 .br .nf .in +4 @@ -1051,7 +1051,7 @@ POSIX .fi .SS "TYM - _POSIX_TYPED_MEMORY_OBJECTS - _SC_TYPED_MEMORY_OBJECT" .\"O The following functions are present: -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下の関数が存在する。 .br .nf .in +4 @@ -1066,19 +1066,19 @@ POSIX .\"O Always present (probably 0). .\"O Value to set a changeable special control .\"O character to indicate that it is disabled. -¾ï¤Ë¸ºß¤¹¤ë (¤¿¤Ö¤ó 0 ¤Ç¤¢¤ë)¡£ -Êѹ¹²Äǽ¤ÊÆüìÀ©¸æʸ»ú¤òÀßÄꤹ¤ëÃÍ¡£ -¤³¤ì¤Ë¤è¤êÆüìÀ©¸æʸ»ú¤¬Ìµ¸ú¤Ç¤¢¤ë¤³¤È¤òɽ¤¹¡£ +常に存在する (たぶん 0 である)。 +変更可能な特殊制御文字を設定する値。 +これにより特殊制御文字が無効であることを表す。 .\"O .SH "XOPEN EXTENSIONS" -.SH "XOPEN ³ÈÄ¥" +.SH "XOPEN 拡張" .BR _XOPEN_CRYPT , .BR _XOPEN_LEGACY , .BR _XOPEN_REALTIME , .BR _XOPEN_REALTIME_THREADS , .BR _XOPEN_UNIX . .\"O .\" To be described. -.\" µ­½Ò¤µ¤ì¤ëͽÄê¤Ç¤¢¤ë¡£ +.\" 記述される予定である。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sysconf (3), .BR standards (7) diff --git a/draft/man7/pthreads.7 b/draft/man7/pthreads.7 index 71693e7e..cdfae9ee 100644 --- a/draft/man7/pthreads.7 +++ b/draft/man7/pthreads.7 @@ -30,166 +30,166 @@ .\" Updated 2008-11-09, Akihiro MOTOKI, LDP v3.13 .\" Updated 2008-12-26, Akihiro MOTOKI, LDP v3.14 .\" -.\"WORD: manager thread ´ÉÍý¥¹¥ì¥Ã¥É -.\"WORD: thread group ¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥× -.\"WORD: real-time signal ¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë -.\"WORD: non-conformant ɸ½àÈó½àµò¤Î -.\"WORD: alternate signal stack ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯ +.\"WORD: manager thread 管理スレッド +.\"WORD: thread group スレッド・グループ +.\"WORD: real-time signal リアルタイムシグナル +.\"WORD: non-conformant 標準非準拠の +.\"WORD: alternate signal stack 代替シグナルスタック .\" .TH PTHREADS 7 2008-11-18 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O pthreads \- POSIX threads -pthreads \- POSIX ¥¹¥ì¥Ã¥É +pthreads \- POSIX スレッド .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O POSIX.1 specifies a set of interfaces (functions, header files) for .\"O threaded programming commonly known as POSIX threads, or Pthreads. .\"O A single process can contain multiple threads, .\"O all of which are executing the same program. .\"O These threads share the same global memory (data and heap segments), .\"O but each thread has its own stack (automatic variables). -POSIX.1 ¤Ï¡¢°ìÈÌ¤Ë POSIX ¥¹¥ì¥Ã¥É¤ä Pthreads ¤È¤·¤ÆÃΤé¤ì¤ë -¥¹¥ì¥Ã¥É¡¦¥×¥í¥°¥é¥ß¥ó¥°¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹·² (´Ø¿ô¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë) -¤òµ¬Äꤷ¤Æ¤¤¤ë¡£°ì¤Ä¤Î¥×¥í¥»¥¹¤ÏÊ£¿ô¤Î¥¹¥ì¥Ã¥É¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¡¢ -Á´¤Æ¤Î¥¹¥ì¥Ã¥É¤ÏƱ¤¸¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¡£ -¤³¤ì¤é¤Î¥¹¥ì¥Ã¥É¤ÏƱ¤¸Âç°è¥á¥â¥ê (¥Ç¡¼¥¿¤È¥Ò¡¼¥×Îΰè) ¤ò¶¦Í­¤¹¤ë¤¬¡¢ -³Æ¥¹¥ì¥Ã¥É¤Ï¼«Ê¬ÀìÍѤΥ¹¥¿¥Ã¥¯ (¼«Æ°ÊÑ¿ô) ¤ò»ý¤Ä¡£ +POSIX.1 は、一般に POSIX スレッドや Pthreads として知られる +スレッド・プログラミングのインタフェース群 (関数、ヘッダファイル) +を規定している。一つのプロセスは複数のスレッドを持つことができ、 +全てのスレッドは同じプログラムを実行する。 +これらのスレッドは同じ大域メモリ (データとヒープ領域) を共有するが、 +各スレッドは自分専用のスタック (自動変数) を持つ。 .\"O POSIX.1 also requires that threads share a range of other attributes .\"O (i.e., these attributes are process-wide rather than per-thread): -POSIX.1 ¤Ï¥¹¥ì¥Ã¥É´Ö¤Ç¤É¤Î¤è¤¦¤Ê°À­¤ò¶¦Í­¤¹¤ë¤«¤Ë¤Ä¤¤¤Æ¤âÄê¤á¤Æ¤¤¤ë -(¤Ä¤Þ¤ê¡¢¤³¤ì¤é¤Î°À­¤Ï¥¹¥ì¥Ã¥Éñ°Ì¤Ç¤Ï¤Ê¤¯¥×¥í¥»¥¹Á´ÂΤǶ¦Ä̤Ǥ¢¤ë): +POSIX.1 はスレッド間でどのような属性を共有するかについても定めている +(つまり、これらの属性はスレッド単位ではなくプロセス全体で共通である): .IP \- 3 .\"O process ID -¥×¥í¥»¥¹ ID +プロセス ID .IP \- 3 .\"O parent process ID -¿Æ¥×¥í¥»¥¹ ID +親プロセス ID .IP \- 3 .\"O process group ID and session ID -¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤È¥»¥Ã¥·¥ç¥ó ID +プロセスグループ ID とセッション ID .IP \- 3 .\"O controlling terminal -À©¸æüËö +制御端末 .IP \- 3 .\"O user and group IDs -¥æ¡¼¥¶ ID ¤È¥°¥ë¡¼¥× ID +ユーザ ID とグループ ID .IP \- 3 .\"O open file descriptors -¥ª¡¼¥×¥ó¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +オープンするファイルディスクリプタ .IP \- 3 .\"O record locks (see .\"O .BR fcntl (2)) -¥ì¥³¡¼¥É¤Î¥í¥Ã¥¯ +レコードのロック .RB ( fcntl (3) -»²¾È) +参照) .IP \- 3 .\"O signal dispositions -¥·¥°¥Ê¥ë¤ÎÇÛÃÖ +シグナルの配置 .IP \- 3 .\"O file mode creation mask .\"O .RB ( umask (2)) -¥Õ¥¡¥¤¥ë¥â¡¼¥ÉºîÀ®¥Þ¥¹¥¯ +ファイルモード作成マスク .RB ( umask (2)) .IP \- 3 .\"O current directory -¥«¥ì¥ó¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê +カレント・ディレクトリ .RB ( chdir (2)) .\"O and .\"O root directory -¤È¥ë¡¼¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê +とルート・ディレクトリ .RB ( chroot (2)) .IP \- 3 .\"O interval timers -¥¤¥ó¥¿¡¼¥Ð¥ë¡¦¥¿¥¤¥Þ +インターバル・タイマ .RB ( setitimer (2)) .\"O and POSIX timers -¤È POSIX ¥¿¥¤¥Þ +と POSIX タイマ .RB ( timer_create (2)) .IP \- 3 .\"O nice value -nice ÃÍ +nice 値 .RB ( setpriority (2)) .IP \- 3 .\"O resource limits -¥ê¥½¡¼¥¹À©¸Â +リソース制限 .RB ( setrlimit (2)) .IP \- 3 .\"O measurements of the consumption of CPU time .\"O .RB ( times (2)) .\"O and resources .\"O .RB ( getrusage (2)) -CPU »þ´Ö +CPU 時間 .RB ( times (2)) -¤È¥ê¥½¡¼¥¹ +とリソース .RB ( getrusage (2)) -¤Î¾ÃÈñ¾õ¶·¤Î·×¬ +の消費状況の計測 .PP .\"O As well as the stack, POSIX.1 specifies that various other .\"O attributes are distinct for each thread, including: -¥¹¥¿¥Ã¥¯¤Ë¤Ä¤¤¤Æ¤â¡¢POSIX.1 ¤Ï¤É¤Î¤è¤¦¤Ê°À­¤¬ -¸Ä¡¹¤Î¥¹¥ì¥Ã¥É¤ÇÆÈΩ¤Ë´ÉÍý¤µ¤ì¤ë¤«¤òµ¬Äꤷ¤Æ¤¤¤ë: +スタックについても、POSIX.1 はどのような属性が +個々のスレッドで独立に管理されるかを規定している: .IP \- 3 .\"O thread ID (the .\"O .I pthread_t .\"O data type) -¥¹¥ì¥Ã¥É ID +スレッド ID .RB ( pthread_t -¥Ç¡¼¥¿·¿) +データ型) .IP \- 3 .\"O signal mask -¥·¥°¥Ê¥ë¥Þ¥¹¥¯ +シグナルマスク .RB ( pthread_sigmask (3)) .IP \- 3 .\"O the .\"O .I errno .\"O variable .I errno -ÊÑ¿ô +変数 .IP \- 3 .\"O alternate signal stack -ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯ +代替シグナルスタック .RB ( sigaltstack (2)) .IP \- 3 .\"O real-time scheduling policy and priority -¥ê¥¢¥ë¥¿¥¤¥à¡¦¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤Î¥Ý¥ê¥·¡¼¤ÈÍ¥ÀèÅÙ +リアルタイム・スケジューリングのポリシーと優先度 .RB ( sched_setscheduler (2) .\"O and -¤È +と .BR sched_setparam (2)) .PP .\"O The following Linux-specific features are also per-thread: -°Ê²¼¤Î Linux ÆÃÍ­¤Îµ¡Ç½¤â¥¹¥ì¥Ã¥Éñ°Ì¤Ç¤¢¤ë: +以下の Linux 特有の機能もスレッド単位である: .IP \- 3 .\"O capabilities (see .\"O .BR capabilities (7)) -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ +ケーパビリティ .RB ( capabilities (7) -»²¾È) +参照) .IP \- 3 .\"O CPU affinity -CPU affinity (¿ÆÏÂÅÙ) +CPU affinity (親和度) .RB ( sched_setaffinity (2)) .\"O .SS "Pthreads function return values" -.SS "pthreads ´Ø¿ô¤ÎÊÖ¤êÃÍ" +.SS "pthreads 関数の返り値" .\"O Most pthreads functions return 0 on success, and an error number of failure. .\"O Note that the pthreads functions do not set .\"O .IR errno . .\"O For each of the pthreads functions that can return an error, .\"O POSIX.1-2001 specifies that the function can never fail with the error .\"O .BR EINTR . -¤Û¤È¤ó¤É¤Î pthreads ´Ø¿ô¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤·¡¢ -¼ºÇÔ¤·¤¿¾ì¹ç¥¨¥é¡¼ÈÖ¹æ¤òÊÖ¤¹¡£ -pthreads ´Ø¿ô¤Ï +ほとんどの pthreads 関数は成功すると 0 を返し、 +失敗した場合エラー番号を返す。 +pthreads 関数は .I errno -¤ò¥»¥Ã¥È¤·¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -POSIX.1-2001 ¤Ç¤Ï¡¢ -¥¨¥é¡¼¤òÊÖ¤¹²ÄǽÀ­¤Î¤¢¤ë pthreads ´Ø¿ô¤¬¥¨¥é¡¼ +をセットしない点に注意すること。 +POSIX.1-2001 では、 +エラーを返す可能性のある pthreads 関数がエラー .B EINTR -¤Ç¼ºÇÔ¤¹¤ë¤³¤È¤Ï·è¤·¤Æ¤Ê¤¤¤Èµ¬Äꤷ¤Æ¤¤¤ë¡£ +で失敗することは決してないと規定している。 .\"O .SS Thread IDs -.SS "¥¹¥ì¥Ã¥É ID" +.SS "スレッド ID" .\"O Each of the threads in a process has a unique thread identifier .\"O (stored in the type .\"O .IR pthread_t ). @@ -203,32 +203,32 @@ POSIX.1-2001 .\"O In all pthreads functions that accept a thread ID as an argument, .\"O that ID by definition refers to a thread in .\"O the same process as the caller. -¤¢¤ë¥×¥í¥»¥¹Æâ¤Î³Æ¥¹¥ì¥Ã¥É¤Ï +あるプロセス内の各スレッドは .RI ( pthread_t -·¿¤Î) °ì°Õ¤Ê¥¹¥ì¥Ã¥É¼±Ê̻Ҥò»ý¤Ä¡£ -¤³¤Î¼±Ê̻Ҥϡ¢ +型の) 一意なスレッド識別子を持つ。 +この識別子は、 .BR pthread_create (3) -¤Î¸Æ¤Ó½Ð¤·¸µ¤ËÊÖ¤µ¤ì¤ë¡£¤Þ¤¿¡¢¥¹¥ì¥Ã¥É¤Ï¼«¿È¤Î¥¹¥ì¥Ã¥É¼±Ê̻Ҥò +の呼び出し元に返される。また、スレッドは自身のスレッド識別子を .BR pthread_self (3) -¤ò»È¤Ã¤Æ¼èÆÀ¤Ç¤­¤ë¡£ -¥¹¥ì¥Ã¥É ID ¤Î°ì°ÕÀ­¤¬Êݾڤµ¤ì¤ë¤Î¤Ï¡¢°ì¤Ä¤Î¥×¥í¥»¥¹Æâ¤Ë¤ª¤¤¤Æ¤Î¤ß¤Ç¤¢¤ë¡£ -½ªÎ»¤·¤¿¥¹¥ì¥Ã¥É¤¬ join ¤µ¤ì¤¿¸å¤Ç¤Ï¡¢¥¹¥ì¥Ã¥É ID ¤ÏºÆÍøÍѤµ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¥¹¥ì¥Ã¥É ID ¤ò°ú¤­¿ô¤Ë¼è¤ëÁ´¤Æ¤Î¥¹¥ì¥Ã¥É´Ø¿ô¤Ë¤ª¤¤¤Æ¡¢ -¤½¤Î ID ¤Ï¸Æ¤Ó½Ð¤·¸µ¤ÈƱ¤¸¥×¥í¥»¥¹Æâ¤Î°ì¤Ä¤Î¥¹¥ì¥Ã¥É¤ò»²¾È¤¹¤ë¡£ +を使って取得できる。 +スレッド ID の一意性が保証されるのは、一つのプロセス内においてのみである。 +終了したスレッドが join された後では、スレッド ID は再利用される可能性がある。 +スレッド ID を引き数に取る全てのスレッド関数において、 +その ID は呼び出し元と同じプロセス内の一つのスレッドを参照する。 .\"O .SS "Thread-safe functions" -.SS "¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ê´Ø¿ô" +.SS "スレッドセーフな関数" .\"O A thread-safe function is one that can be safely .\"O (i.e., it will deliver the same results regardless of whether it is) .\"O called from multiple threads at the same time. -¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ê´Ø¿ô¤Ï¡¢Ê£¿ô¤Î¥¹¥ì¥Ã¥É¤«¤éƱ»þ¤Ë¸Æ¤Ó½Ð¤·¤Æ¤â°ÂÁ´¤Ê -(¤¹¤Ê¤ï¤Á¡¢Æ±»þ¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿¤«¤Ë´Ø¤ï¤é¤º¡¢Æ±¤¸·ë²Ì¤òÊÖ¤¹) ´Ø¿ô¤Î¤³¤È¤Ç¤¢¤ë¡£ +スレッドセーフな関数は、複数のスレッドから同時に呼び出しても安全な +(すなわち、同時に呼び出されたかに関わらず、同じ結果を返す) 関数のことである。 .\"O POSIX.1-2001 and POSIX.1-2008 require that all functions specified .\"O in the standard shall be thread-safe, .\"O except for the following functions: -POSIX.1-2001 ¤È POSIX.1-2008¤Ç¤Ï¡¢°ìÉô¤ÎÎã³°¤ò½ü¤­¡¢ -ɸ½à¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î´Ø¿ô¤¬¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤¢¤ë¤³¤È¤òÍ׵ᤷ¤Æ¤¤¤ë¡£ -°Ê²¼¤Î´Ø¿ô¤¬Îã³°¤Ç¤¢¤ë¡£ +POSIX.1-2001 と POSIX.1-2008では、一部の例外を除き、 +標準で規定されている全ての関数がスレッドセーフであることを要求している。 +以下の関数が例外である。 .in +4n .nf @@ -237,7 +237,7 @@ basename() catgets() crypt() .\"O ctermid() if passed a non-NULL argument -ctermid() (NULL ¤Ç¤Ê¤¤°ú¤­¿ô¤òÅϤµ¤ì¤¿¾ì¹ç) +ctermid() (NULL でない引き数を渡された場合) ctime() dbm_clearerr() dbm_close() @@ -252,16 +252,16 @@ dirname() dlerror() drand48() .\"O ecvt() [POSIX.1-2001 only (function removed in POSIX.1-2008)] -ecvt() [POSIX.1-2001 ¤Î¤ß (POSIX.1-2008 ¤Çºï½ü¤µ¤ì¤¿)] +ecvt() [POSIX.1-2001 のみ (POSIX.1-2008 で削除された)] encrypt() endgrent() endpwent() endutxent() .\"O fcvt() [POSIX.1-2001 only (function removed in POSIX.1-2008)] -fcvt() [POSIX.1-2001 ¤Î¤ß (POSIX.1-2008 ¤Çºï½ü¤µ¤ì¤¿)] +fcvt() [POSIX.1-2001 のみ (POSIX.1-2008 で削除された)] ftw() .\"O gcvt() [POSIX.1-2001 only (function removed in POSIX.1-2008)] -gcvt() [POSIX.1-2001 ¤Î¤ß (POSIX.1-2008 ¤Çºï½ü¤µ¤ì¤¿)] +gcvt() [POSIX.1-2001 のみ (POSIX.1-2008 で削除された)] getc_unlocked() getchar_unlocked() getdate() @@ -271,8 +271,8 @@ getgrgid() getgrnam() .\"O gethostbyaddr() [POSIX.1-2001 only (function removed in POSIX.1-2008)] .\"O gethostbyname() [POSIX.1-2001 only (function removed in POSIX.1-2008)] -gethostbyaddr() [POSIX.1-2001 ¤Î¤ß (POSIX.1-2008 ¤Çºï½ü¤µ¤ì¤¿)] -gethostbyname() [POSIX.1-2001 ¤Î¤ß (POSIX.1-2008 ¤Çºï½ü¤µ¤ì¤¿)] +gethostbyaddr() [POSIX.1-2001 のみ (POSIX.1-2008 で削除された)] +gethostbyname() [POSIX.1-2001 のみ (POSIX.1-2008 で削除された)] gethostent() getlogin() getnetbyaddr() @@ -320,42 +320,42 @@ setpwent() setutxent() strerror() .\"O strsignal() [Added in POSIX.1-2008] -strsignal() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +strsignal() [POSIX.1-2008 で追加された] strtok() .\"O system() [Added in POSIX.1-2008] -system() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +system() [POSIX.1-2008 で追加された] .\"O tmpnam() if passed a non-NULL argument -tmpnam() (NULL ¤Ç¤Ê¤¤°ú¤­¿ô¤òÅϤµ¤ì¤¿¾ì¹ç) +tmpnam() (NULL でない引き数を渡された場合) ttyname() unsetenv() .\"O wcrtomb() if its final argument is NULL -wcrtomb() (ºÇ¸å¤Î°ú¤­¿ô¤¬ NULL ¤Î¾ì¹ç) +wcrtomb() (最後の引き数が NULL の場合) .\"O wcsrtombs() if its final argument is NULL -wcsrtombs() (ºÇ¸å¤Î°ú¤­¿ô¤¬ NULL ¤Î¾ì¹ç) +wcsrtombs() (最後の引き数が NULL の場合) wcstombs() wctomb() .fi .in .\"O .SS Cancellation Points -.SS ¼è¤ê¾Ã¤·¥Ý¥¤¥ó¥È (cancellation points) +.SS 取り消しポイント (cancellation points) .\"O POSIX.1 specifies that certain functions must, .\"O and certain other functions may, be cancellation points. .\"O If a thread is cancelable, its cancelability type is deferred, .\"O and a cancellation request is pending for the thread, .\"O then the thread is canceled when it calls a function .\"O that is a cancellation point. -POSIX.1 ¤Îµ¬Äê¤Ç¤Ï¡¢ÆÃÄê¤Î´Ø¿ô¤Ï¼è¤ê¾Ã¤·¥Ý¥¤¥ó¥È¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -¾¤ÎÆÃÄê¤Î´Ø¿ô¤Ï¼è¤ê¾Ã¤·¥Ý¥¤¥ó¥È¤Ç¤¢¤Ã¤Æ¤â¤è¤¤¤È¤µ¤ì¤Æ¤¤¤ë¡£ -¤¢¤ë¥¹¥ì¥Ã¥É¤¬¼è¤ê¾Ã¤·²Äǽ¤Ç¡¢¤½¤Î¼è¤ê¾Ã¤·¼ïÊÌ (cancelability type) -¤¬±ä´ü (deferred) ¤Ç¡¢¤½¤Î¥¹¥ì¥Ã¥É¤ËÂФ¹¤ë¼è¤ê¾Ã¤·Í׵᤬½èÍýÂÔ¤Á¤Î¾ì¹ç¡¢ -¼è¤ê¾Ã¤·¥Ý¥¤¥ó¥È¤Ç¤¢¤ë´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿»þÅÀ¤Ç¡¢¤½¤Î¥¹¥ì¥Ã¥É¤Î¥­¥ã¥ó¥»¥ë¤¬ -¹Ô¤ï¤ì¤ë¡£ +POSIX.1 の規定では、特定の関数は取り消しポイントでなければならず、 +他の特定の関数は取り消しポイントであってもよいとされている。 +あるスレッドが取り消し可能で、その取り消し種別 (cancelability type) +が延期 (deferred) で、そのスレッドに対する取り消し要求が処理待ちの場合、 +取り消しポイントである関数を呼び出した時点で、そのスレッドのキャンセルが +行われる。 .\"O The following functions are required to be cancellation points by .\"O POSIX.1-2001 and/or POSIX.1-2008: -POSIX.1-2001 ¤È POSIX.1-2008 ¤ÎξÊý¡¢¤â¤·¤¯¤Ï¤¤¤º¤ì¤«°ìÊý¤Ç¤Ï¡¢ -°Ê²¼¤Î´Ø¿ô¤Ï¡¢¼è¤ê¾Ã¤·¥Ý¥¤¥ó¥È (cancellation points) ¤Ç -¤¢¤ë¤³¤È¤¬É¬¿Ü¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ +POSIX.1-2001 と POSIX.1-2008 の両方、もしくはいずれか一方では、 +以下の関数は、取り消しポイント (cancellation points) で +あることが必須となっている。 .\" FIXME .\" Document the list of all functions that are cancellation points in glibc @@ -383,7 +383,7 @@ msync() nanosleep() open() .\"O openat() [Added in POSIX.1-2008] -openat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +openat() [POSIX.1-2008 で追加された] pause() poll() pread() @@ -416,7 +416,7 @@ sleep() system() tcdrain() .\"O usleep() [POSIX.1-2001 only (function removed in POSIX.1-2008)] -usleep() [POSIX.1-2001 ¤Î¤ß (POSIX.1-2008 ¤Çºï½ü¤µ¤ì¤¿)] +usleep() [POSIX.1-2001 のみ (POSIX.1-2008 で削除された)] wait() waitid() waitpid() @@ -427,9 +427,9 @@ writev() .\"O The following functions may be cancellation points according to .\"O POSIX.1-2001 and/or POSIX.1-2008: -POSIX.1-2001 ¤È POSIX.1-2008 ¤ÎξÊý¡¢¤â¤·¤¯¤Ï¤¤¤º¤ì¤«°ìÊý¤Ç¤Ï¡¢ -°Ê²¼¤Î´Ø¿ô¤Ï¡¢¼è¤ê¾Ã¤·¥Ý¥¤¥ó¥È (cancellation points) ¤Ç -¤¢¤Ã¤Æ¤â¤è¤¤¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +POSIX.1-2001 と POSIX.1-2008 の両方、もしくはいずれか一方では、 +以下の関数は、取り消しポイント (cancellation points) で +あってもよいことになっている。 .in +4n .nf @@ -441,8 +441,8 @@ catgets() catopen() .\"O chmod() [Added in POSIX.1-2008] .\"O chown() [Added in POSIX.1-2008] -chmod() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -chown() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +chmod() [POSIX.1-2008 で追加された] +chown() [POSIX.1-2008 で追加された] closedir() closelog() ctermid() @@ -457,7 +457,7 @@ dbm_store() dlclose() dlopen() .\"O dprintf() [Added in POSIX.1-2008] -dprintf() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +dprintf() [POSIX.1-2008 で追加された] endgrent() endhostent() endnetent() @@ -470,14 +470,14 @@ endutxent() .\"O fchmodat() [Added in POSIX.1-2008] .\"O fchown() [Added in POSIX.1-2008] .\"O fchownat() [Added in POSIX.1-2008] -faccessat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -fchmod() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -fchmodat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -fchown() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -fchownat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +faccessat() [POSIX.1-2008 で追加された] +fchmod() [POSIX.1-2008 で追加された] +fchmodat() [POSIX.1-2008 で追加された] +fchown() [POSIX.1-2008 で追加された] +fchownat() [POSIX.1-2008 で追加された] fclose() .\"O fcntl() (for any value of cmd argument) -fcntl() (cmd °ú¤­¿ô¤¬²¿¤Ç¤¢¤Ã¤Æ¤â) +fcntl() (cmd 引き数が何であっても) fflush() fgetc() fgetpos() @@ -500,12 +500,12 @@ fseeko() fsetpos() fstat() .\"O fstatat() [Added in POSIX.1-2008] -fstatat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +fstatat() [POSIX.1-2008 で追加された] ftell() ftello() ftw() .\"O futimens() [Added in POSIX.1-2008] -futimens() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +futimens() [POSIX.1-2008 で追加された] fwprintf() fwrite() fwscanf() @@ -517,7 +517,7 @@ getchar_unlocked() getcwd() getdate() .\"O getdelim() [Added in POSIX.1-2008] -getdelim() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +getdelim() [POSIX.1-2008 で追加された] getgrent() getgrgid() getgrgid_r() @@ -525,13 +525,13 @@ getgrnam() getgrnam_r() .\"O gethostbyaddr() [SUSv3 only (function removed in POSIX.1-2008)] .\"O gethostbyname() [SUSv3 only (function removed in POSIX.1-2008)] -gethostbyaddr() [SUSv3 ¤Î¤ß (¤³¤Î´Ø¿ô¤Ï POSIX.1-2008 ¤Çºï½ü¤µ¤ì¤Æ¤¤¤ë)] -gethostbyname() [SUSv3 ¤Î¤ß (¤³¤Î´Ø¿ô¤Ï POSIX.1-2008 ¤Çºï½ü¤µ¤ì¤Æ¤¤¤ë)] +gethostbyaddr() [SUSv3 のみ (この関数は POSIX.1-2008 で削除されている)] +gethostbyname() [SUSv3 のみ (この関数は POSIX.1-2008 で削除されている)] gethostent() gethostid() gethostname() .\"O getline() [Added in POSIX.1-2008] -getline() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +getline() [POSIX.1-2008 で追加された] getlogin() getlogin_r() getnameinfo() @@ -539,7 +539,7 @@ getnetbyaddr() getnetbyname() getnetent() .\"O getopt() (if opterr is nonzero) -getopt() (opterr ¤¬ 0 °Ê³°¤Î¾ì¹ç) +getopt() (opterr が 0 以外の場合) getprotobyname() getprotobynumber() getprotoent() @@ -558,7 +558,7 @@ getutxline() getwc() getwchar() .\"O getwd() [SUSv3 only (function removed in POSIX.1-2008)] -getwd() [SUSv3 ¤Î¤ß (¤³¤Î´Ø¿ô¤Ï POSIX.1-2008 ¤Çºï½ü¤µ¤ì¤Æ¤¤¤ë)] +getwd() [SUSv3 のみ (この関数は POSIX.1-2008 で削除されている)] glob() iconv_close() iconv_open() @@ -566,12 +566,12 @@ ioctl() link() .\"O linkat() [Added in POSIX.1-2008] .\"O lio_listio() [Added in POSIX.1-2008] -linkat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -lio_listio() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +linkat() [POSIX.1-2008 で追加された] +lio_listio() [POSIX.1-2008 で追加された] localtime() localtime_r() .\"O lockf() [Added in POSIX.1-2008] -lockf() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +lockf() [POSIX.1-2008 で追加された] lseek() lstat() .\"O mkdir() [Added in POSIX.1-2008] @@ -581,13 +581,13 @@ lstat() .\"O mkfifoat() [Added in POSIX.1-2008] .\"O mknod() [Added in POSIX.1-2008] .\"O mknodat() [Added in POSIX.1-2008] -mkdir() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -mkdirat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -mkdtemp() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -mkfifo() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -mkfifoat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -mknod() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -mknodat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +mkdir() [POSIX.1-2008 で追加された] +mkdirat() [POSIX.1-2008 で追加された] +mkdtemp() [POSIX.1-2008 で追加された] +mkfifo() [POSIX.1-2008 で追加された] +mkfifoat() [POSIX.1-2008 で追加された] +mknod() [POSIX.1-2008 で追加された] +mknodat() [POSIX.1-2008 で追加された] mkstemp() mktime() nftw() @@ -623,8 +623,8 @@ posix_typed_mem_open() printf() .\"O psiginfo() [Added in POSIX.1-2008] .\"O psignal() [Added in POSIX.1-2008] -psiginfo() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -psignal() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +psiginfo() [POSIX.1-2008 で追加された] +psignal() [POSIX.1-2008 で追加された] pthread_rwlock_rdlock() pthread_rwlock_timedrdlock() pthread_rwlock_timedwrlock() @@ -641,16 +641,16 @@ readdir() readdir_r() .\"O readlink() [Added in POSIX.1-2008] .\"O readlinkat() [Added in POSIX.1-2008] -readlink() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -readlinkat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +readlink() [POSIX.1-2008 で追加された] +readlinkat() [POSIX.1-2008 で追加された] remove() rename() .\"O renameat() [Added in POSIX.1-2008] -renameat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +renameat() [POSIX.1-2008 で追加された] rewind() rewinddir() .\"O scandir() [Added in POSIX.1-2008] -scandir() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +scandir() [POSIX.1-2008 で追加された] scanf() seekdir() semop() @@ -662,14 +662,14 @@ setpwent() setservent() setutxent() .\"O sigpause() [Added in POSIX.1-2008] -sigpause() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +sigpause() [POSIX.1-2008 で追加された] stat() strerror() strerror_r() strftime() symlink() .\"O symlinkat() [Added in POSIX.1-2008] -symlinkat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +symlinkat() [POSIX.1-2008 で追加された] sync() syslog() tmpfile() @@ -685,11 +685,11 @@ unlink() .\"O utimensat() [Added in POSIX.1-2008] .\"O utimes() [Added in POSIX.1-2008] .\"O vdprintf() [Added in POSIX.1-2008] -unlinkat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -utime() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -utimensat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -utimes() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -vdprintf() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +unlinkat() [POSIX.1-2008 で追加された] +utime() [POSIX.1-2008 で追加された] +utimensat() [POSIX.1-2008 で追加された] +utimes() [POSIX.1-2008 で追加された] +vdprintf() [POSIX.1-2008 で追加された] vfprintf() vfwprintf() vprintf() @@ -706,11 +706,11 @@ wscanf() .\"O In particular, an implementation is likely to mark .\"O any nonstandard function that may block as a cancellation point. .\"O (This includes most functions that can touch files.) -¼ÂÁõ»þ¤Ë¡¢É¸½àµ¬³Ê¤Çµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤½¤Î¾¤Î´Ø¿ô¤ò¼è¤ê¾Ã¤·¥Ý¥¤¥ó¥È -¤È¤¹¤ë¤³¤È¤âǧ¤á¤é¤ì¤Æ¤¤¤ë¡£ -Æäˡ¢Ää»ß (block) ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ëÈóɸ½à¤Î´Ø¿ô¤ò¼è¤ê¾Ã¤·¥Ý¥¤¥ó¥È¤È -¤¹¤ë¼ÂÁõ¤Ï¤¢¤êÆÀ¤ë¤³¤È¤À¤í¤¦ -(¥Õ¥¡¥¤¥ë¤ò°·¤¦²ÄǽÀ­¤Î¤¢¤ë¤Û¤È¤ó¤É¤Î´Ø¿ô¤¬¤³¤ì¤Ë´Þ¤Þ¤ì¤ë)¡£ +実装時に、標準規格で規定されていないその他の関数を取り消しポイント +とすることも認められている。 +特に、停止 (block) する可能性がある非標準の関数を取り消しポイントと +する実装はあり得ることだろう +(ファイルを扱う可能性のあるほとんどの関数がこれに含まれる)。 .\" So, scanning "cancellation point" comments in the glibc 2.8 header .\" files, it looks as though at least the following nonstandard .\" functions are cancellation points: @@ -802,24 +802,24 @@ wscanf() .\" vsyslog .\" vwscanf .\"O .SS "Compiling on Linux" -.SS "Linux ¤Ç¤Î¥³¥ó¥Ñ¥¤¥ë" +.SS "Linux でのコンパイル" .\"O On Linux, programs that use the Pthreads API should be compiled using .\"O .IR "cc \-pthread" . -Linux ¤Ç¤Ï¡¢Pthreads API ¤òÍѤ¤¤¿¥×¥í¥°¥é¥à¤Ï +Linux では、Pthreads API を用いたプログラムは .I "cc \-pthread" -¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +でコンパイルすべきである。 .\"O .SS "Linux Implementations of POSIX Threads" -.SS "POSIX ¥¹¥ì¥Ã¥É¤Î Linux ¤Ç¤Î¼ÂÁõ" +.SS "POSIX スレッドの Linux での実装" .\"O Over time, two threading implementations have been provided by .\"O the GNU C library on Linux: -¤³¤ì¤Þ¤Ç¡¢2¤Ä¤Î¥¹¥ì¥Ã¥É¤Î¼ÂÁõ¤¬ Linux ¤Î GNU C ¥é¥¤¥Ö¥é¥ê¤Ë¤è¤ê -Ä󶡤µ¤ì¤Æ¤­¤¿¡£ +これまで、2つのスレッドの実装が Linux の GNU C ライブラリにより +提供されてきた。 .TP .B LinuxThreads .\"O This is the original Pthreads implementation. .\"O Since glibc 2.4, this implementation is no longer supported. -ºÇ½é¤Î Pthreads ¤Î¼ÂÁõ¡£ -glibc 2.4 °Ê¹ß¤Ï¡¢¤³¤Î¼ÂÁõ¤Ï¤â¤Ï¤ä¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +最初の Pthreads の実装。 +glibc 2.4 以降は、この実装はもはやサポートされていない。 .TP .BR NPTL " (Native POSIX Threads Library)" .\"O This is the modern Pthreads implementation. @@ -828,16 +828,16 @@ glibc 2.4 .\"O when creating large numbers of threads. .\"O NPTL is available since glibc 2.3.2, .\"O and requires features that are present in the Linux 2.6 kernel. -¿·¤·¤¤ Pthreads ¤Î¼ÂÁõ¡£LinuxThreads ¤ÈÈæ¤Ù¤ë¤È¡¢ -NPTL ¤Ï POSIX.1 ¤ÎÍ×µá»ÅÍͤؤνàµò¤ÎÅٹ礤¤¬¹â¤¯¡¢ -¿¿ô¤Î¥¹¥ì¥Ã¥É¤òºîÀ®¤·¤¿ºÝ¤ÎÀ­Ç½¤â¹â¤¤¡£ -NPTL ¤Ï glibc 2.3.2 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -NPTL ¤òÍøÍѤ¹¤ë¤Ë¤Ï Linux 2.6 ¥«¡¼¥Í¥ë¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ëµ¡Ç½¤¬É¬ÍפǤ¢¤ë¡£ +新しい Pthreads の実装。LinuxThreads と比べると、 +NPTL は POSIX.1 の要求仕様への準拠の度合いが高く、 +多数のスレッドを作成した際の性能も高い。 +NPTL は glibc 2.3.2 以降で利用可能である。 +NPTL を利用するには Linux 2.6 カーネルに実装されている機能が必要である。 .PP .\"O Both of these are so-called 1:1 implementations, meaning that each .\"O thread maps to a kernel scheduling entity. -¤É¤Á¤é¤Î¼ÂÁõ¤â¤¤¤ï¤æ¤ë 1:1 ¼ÂÁõ¡¢¤¹¤Ê¤ï¤Á¸Ä¡¹¤Î¥¹¥ì¥Ã¥É¤¬ -¥«¡¼¥Í¥ë¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¼ÂÂΤ˥ޥåԥ󥰤µ¤ì¤ë¡£ +どちらの実装もいわゆる 1:1 実装、すなわち個々のスレッドが +カーネルのスケジューリング実体にマッピングされる。 .\"O Both threading implementations employ the Linux .\"O .BR clone (2) .\"O system call. @@ -845,16 +845,16 @@ NPTL .\"O thread joining, etc.) are implemented using the Linux .\"O .BR futex (2) .\"O system call. -¤É¤Á¤é¤Î¥¹¥ì¥Ã¥É¤Î¼ÂÁõ¤â Linux ¤Î +どちらのスレッドの実装も Linux の .BR clone (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÍøÍѤ·¤Æ¤¤¤ë¡£ -NPTL ¤Ç¤Ï¡¢¥¹¥ì¥Ã¥ÉƱ´ü¤Î´ðËܵ¡¹½ (mutex ¤ä ¥¹¥ì¥Ã¥É¤Î join Åù) ¤Ï -Linux ¤Î +システムコールを利用している。 +NPTL では、スレッド同期の基本機構 (mutex や スレッドの join 等) は +Linux の .BR futex (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +システムコールを使って実装されている。 .SS LinuxThreads .\"O The notable features of this implementation are the following: -¤³¤Î¼ÂÁõ¤ÎÂ礭¤ÊÆÃħ¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë: +この実装の大きな特徴は以下の通りである: .IP \- 3 .\"O In addition to the main (initial) thread, .\"O and the threads that the program creates using @@ -862,12 +862,12 @@ Linux .\"O the implementation creates a "manager" thread. .\"O This thread handles thread creation and termination. .\"O (Problems can result if this thread is inadvertently killed.) -¥á¥¤¥ó¥¹¥ì¥Ã¥É (ºÇ½é¤Î¥¹¥ì¥Ã¥É) ¤È¥×¥í¥°¥é¥à¤¬ +メインスレッド (最初のスレッド) とプログラムが .BR pthread_create (3) -¤ò»È¤Ã¤ÆºîÀ®¤·¤¿¥¹¥ì¥Ã¥É¤Ë²Ã¤¨¡¢ -¤³¤Î¼ÂÁõ¤Ç¤Ï¡Ö´ÉÍý (manager)¡×¥¹¥ì¥Ã¥É¤¬ºîÀ®¤µ¤ì¤ë¡£ -´ÉÍý¥¹¥ì¥Ã¥É¤Ï¥¹¥ì¥Ã¥É¤ÎºîÀ®¤È½ªÎ»¤ò¼è¤ê°·¤¦ -(¤³¤Î¥¹¥ì¥Ã¥É¤¬¤¦¤Ã¤«¤ê kill ¤µ¤ì¤ë¤È¡¢ÌäÂ꤬µ¯¤³¤ë¤³¤È¤¬¤¢¤ë)¡£ +を使って作成したスレッドに加え、 +この実装では「管理 (manager)」スレッドが作成される。 +管理スレッドはスレッドの作成と終了を取り扱う +(このスレッドがうっかり kill されると、問題が起こることがある)。 .IP \- 3 .\"O Signals are used internally by the implementation. .\"O On Linux 2.2 and later, the first three real-time signals are used @@ -880,17 +880,17 @@ Linux .\"O are used. .\"O Applications must avoid the use of whichever set of signals is .\"O employed by the implementation. -¤³¤Î¼ÂÁõ¤Ç¤ÏÆâÉô¤Ç¥·¥°¥Ê¥ë¤ò»ÈÍѤ·¤Æ¤¤¤ë¡£ -Linux 2.2 °Ê¹ß¤Ç¤Ï¡¢¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Î¤¦¤ÁºÇ½é¤Î 3¤Ä¤¬»È¤ï¤ì¤ë +この実装では内部でシグナルを使用している。 +Linux 2.2 以降では、リアルタイムシグナルのうち最初の 3つが使われる .RB ( signal (7) -»²¾È)¡£ -¤½¤ì°ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï +参照)。 +それ以前のカーネルでは .B SIGUSR1 -¤È +と .B SIGUSR2 -¤¬»È¤ï¤ì¤ë¡£ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢¥¹¥ì¥Ã¥É¼ÂÁõ¤ÇÍøÍѤµ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤ò -¤É¤ì¤â»È¤ï¤Ê¤¤¤è¤¦¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +が使われる。 +アプリケーションは、スレッド実装で利用されているシグナルを +どれも使わないようにしなければならない。 .IP \- 3 .\"O Threads do not share process IDs. .\"O (In effect, LinuxThreads threads are implemented as processes which share @@ -898,23 +898,23 @@ Linux 2.2 .\"O LinuxThreads threads (including the manager thread) .\"O are visible as separate processes using .\"O .BR ps (1). -¥¹¥ì¥Ã¥É´Ö¤Ç¥×¥í¥»¥¹ ID ¤ò¶¦Í­¤·¤Ê¤¤ -(¼ÂºÝ¤Ë¤Ï LinuxThreads ¤Î¥¹¥ì¥Ã¥É¤ÏÄ̾ï¤è¤ê¤Ï¾ðÊó¤ò¶¦Í­¤¹¤ë¥×¥í¥»¥¹¤È¤·¤Æ -¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢°ì¤Ä¤Î¶¦ÄÌ¤Î¥×¥í¥»¥¹ ID ¤ò¶¦Í­¤·¤Æ¤Ï¤¤¤Ê¤¤)¡£ -(´ÉÍý¥¹¥ì¥Ã¥É¤ò´Þ¤à) LinuxThreads ¥¹¥ì¥Ã¥É¤Ï +スレッド間でプロセス ID を共有しない +(実際には LinuxThreads のスレッドは通常よりは情報を共有するプロセスとして +実装されているが、一つの共通のプロセス ID を共有してはいない)。 +(管理スレッドを含む) LinuxThreads スレッドは .BR ps (1) -¤ò»È¤¦¤ÈÊÌ¤Î¥×¥í¥»¥¹¤Î¤è¤¦¤Ë¸«¤¨¤ë¡£ +を使うと別のプロセスのように見える。 .PP .\"O The LinuxThreads implementation deviates from the POSIX.1 .\"O specification in a number of ways, including the following: -LinuxThreads ¤Î¼ÂÁõ¤Ç¤Ï POSIX.1 »ÅÍͤ«¤é°ï椷¤Æ¤¤¤ëÅÀ¤¬ -¤¤¤¯¤Ä¤«¤¢¤ë¡£°Ê²¼¤Ë¼¨¤¹¤è¤¦¤ÊÅÀ¤¬¤¢¤ë: +LinuxThreads の実装では POSIX.1 仕様から逸脱している点が +いくつかある。以下に示すような点がある: .IP \- 3 .\"O Calls to .\"O .BR getpid (2) .\"O return a different value in each thread. .BR getpid (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¤È¤­¤Ë¡¢¥¹¥ì¥Ã¥ÉËè¤Ë°Û¤Ê¤ëÃͤ¬ÊÖ¤µ¤ì¤ë¡£ +を呼び出したときに、スレッド毎に異なる値が返される。 .IP \- 3 .\"O Calls to .\"O .BR getppid (2) @@ -924,14 +924,14 @@ LinuxThreads .\"O in these threads should return the same value as .\"O .BR getppid (2) .\"O in the main thread. -¥á¥¤¥ó¥¹¥ì¥Ã¥É°Ê³°¤Î¥¹¥ì¥Ã¥É¤Ç +メインスレッド以外のスレッドで .BR getppid (2) -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢´ÉÍý¥¹¥ì¥Ã¥É¤Î¥×¥í¥»¥¹ ID ¤¬ÊÖ¤µ¤ì¤ë¡£ -ËÜÅö¤Ï¡¢¤³¤ì¤é¤Î¥¹¥ì¥Ã¥É¤Ç +を呼び出すと、管理スレッドのプロセス ID が返される。 +本当は、これらのスレッドで .BR getppid (2) -¤ò¸Æ¤ó¤À¾ì¹ç¤Ë¤Ï¥á¥¤¥ó¥¹¥ì¥Ã¥É¤Ç¤Î +を呼んだ場合にはメインスレッドでの .BR getppid (2) -¤ÈƱ¤¸Ãͤ¬ÊÖ¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +と同じ値が返るべきである。 .IP \- 3 .\"O When one thread creates a new child process using .\"O .BR fork (2), @@ -942,15 +942,15 @@ LinuxThreads .\"O created the child to .\"O .BR wait (2) .\"O on it. -¤¢¤ë¥¹¥ì¥Ã¥É¤¬ +あるスレッドが .BR fork (2) -¤ò»È¤Ã¤Æ¿·¤·¤¤»Ò¥×¥í¥»¥¹¤òºîÀ®¤·¤¿¾ì¹ç¡¢ -¤É¤Î¥¹¥ì¥Ã¥É¤Ç¤â¤³¤Î»Ò¥×¥í¥»¥¹¤ò +を使って新しい子プロセスを作成した場合、 +どのスレッドでもこの子プロセスを .BR wait (2) -¤Ç¤­¤ë¤Ù¤­¤Ç¤¢¤ë¡£¤·¤«¤·¤Ê¤¬¤é¡¢¤³¤Î¼ÂÁõ¤Ç¤Ï»Ò¥×¥í¥»¥¹¤òºîÀ®¤·¤¿ -¥¹¥ì¥Ã¥É¤À¤±¤¬¤³¤Î»Ò¥×¥í¥»¥¹¤ò +できるべきである。しかしながら、この実装では子プロセスを作成した +スレッドだけがこの子プロセスを .BR wait (2) -¤Ç¤­¤ë¡£ +できる。 .IP \- 3 .\"O When a thread calls .\"O .BR execve (2), @@ -958,13 +958,13 @@ LinuxThreads .\"O However, the resulting process has the same PID as the thread that called .\"O .BR execve (2): .\"O it should have the same PID as the main thread. -¤¢¤ë¥¹¥ì¥Ã¥É¤¬ +あるスレッドが .BR execve (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¡¢Â¾¤Î¥¹¥ì¥Ã¥É¤ÏÁ´¤Æ½ªÎ»¤µ¤ì¤ë (POSIX.1 ¤Î»ÅÍÍÄ̤ê)¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢¿·¤·¤¤¥×¥í¥»¥¹¤Ï +を呼び出した場合、他のスレッドは全て終了される (POSIX.1 の仕様通り)。 +しかしながら、新しいプロセスは .BR execve (2) -¤ò¸Æ¤ó¤À¥¹¥ì¥Ã¥É¤ÈƱ¤¸ PID ¤ò»ý¤Ä¡£Àµ¤·¤¯¤Ï -¥á¥¤¥ó¥¹¥ì¥Ã¥É¤ÈƱ¤¸ PID ¤ò»ý¤Ä¤Ù¤­¤Ç¤¢¤ë¡£ +を呼んだスレッドと同じ PID を持つ。正しくは +メインスレッドと同じ PID を持つべきである。 .IP \- 3 .\"O Threads do not share user and group IDs. .\"O This can cause complications with set-user-ID programs and @@ -972,21 +972,21 @@ LinuxThreads .\"O changes its credentials using .\"O .BR seteuid (2) .\"O or similar. -¥¹¥ì¥Ã¥É´Ö¤Ç¥æ¡¼¥¶ ID ¤È¥°¥ë¡¼¥× ID ¤¬¶¦Í­¤µ¤ì¤Ê¤¤ -¤³¤Î¤³¤È¤Ï¡¢set-user-ID ¥×¥í¥°¥é¥à¤ÇÌÌÅݤʻöÂÖ¤ò¾·¤¤¤¿¤ê¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬ +スレッド間でユーザ ID とグループ ID が共有されない +このことは、set-user-ID プログラムで面倒な事態を招いたり、 +アプリケーションが .BR seteuid (2) -¤Ê¤É¤ò»È¤Ã¤Æ¿®ÍѾðÊó (credentials) ¤òÊѹ¹¤·¤¿¾ì¹ç¤Ë -Pthreads ´Ø¿ô¤¬¼ºÇÔ¤¹¤ë¸¶°ø¤È¤Ê¤ë¡£ +などを使って信用情報 (credentials) を変更した場合に +Pthreads 関数が失敗する原因となる。 .IP \- 3 .\"O Threads do not share a common session ID and process group ID. -¥¹¥ì¥Ã¥É´Ö¤Ç¶¦Ä̤Υ»¥Ã¥·¥ç¥ó ID ¤ä¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤ò¶¦Í­¤·¤Ê¤¤¡£ +スレッド間で共通のセッション ID やプロセスグループ ID を共有しない。 .IP \- 3 .\"O Threads do not share record locks created using .\"O .BR fcntl (2). -¥¹¥ì¥Ã¥É´Ö¤Ç +スレッド間で .BR fcntl (2) -¤ò»È¤Ã¤ÆºîÀ®¤µ¤ì¤ë¥ì¥³¡¼¥É¡¦¥í¥Ã¥¯¤ò¶¦Í­¤·¤Ê¤¤¡£ +を使って作成されるレコード・ロックを共有しない。 .IP \- 3 .\"O The information returned by .\"O .BR times (2) @@ -994,21 +994,21 @@ Pthreads .\"O .BR getrusage (2) .\"O is per-thread rather than process-wide. .BR times (2) -¤È +と .BR getrusage (2) -¤¬ÊÖ¤¹¾ðÊó¤¬¥×¥í¥»¥¹Á´ÂΤξðÊó¤Ç¤Ê¤¯¥¹¥ì¥Ã¥Éñ°Ì¤Î¾ðÊó¤Ç¤¢¤ë¡£ +が返す情報がプロセス全体の情報でなくスレッド単位の情報である。 .IP \- 3 .\"O Threads do not share semaphore undo values (see .\"O .BR semop (2)). -¥¹¥ì¥Ã¥É´Ö¤Ç¥»¥Þ¥Õ¥©¤Î¥¢¥ó¥É¥¥ÃÍ +スレッド間でセマフォのアンドゥ値 .RB ( semop (2) -»²¾È) ¤ò¶¦Í­¤·¤Ê¤¤¡£ +参照) を共有しない。 .IP \- 3 .\"O Threads do not share interval timers. -¥¹¥ì¥Ã¥É´Ö¤Ç¥¤¥ó¥¿¡¼¥Ð¥ë¡¦¥¿¥¤¥Þ¤ò¶¦Í­¤·¤Ê¤¤¡£ +スレッド間でインターバル・タイマを共有しない。 .IP \- 3 .\"O Threads do not share a common nice value. -¥¹¥ì¥Ã¥É¤Ï¶¦Ä̤Πnice Ãͤò¶¦Í­¤·¤Ê¤¤¡£ +スレッドは共通の nice 値を共有しない。 .IP \- 3 .\"O POSIX.1 distinguishes the notions of signals that are directed .\"O to the process as a whole and signals that are directed to individual @@ -1019,14 +1019,14 @@ Pthreads .\"O arbitrarily selected thread within the process. .\"O LinuxThreads does not support the notion of process-directed signals: .\"O signals may only be sent to specific threads. -POSXI.1 ¤Ç¤Ï¡¢Á´ÂΤȤ·¤Æ¤Î¥×¥í¥»¥¹¤ËÁ÷¤é¤ì¤ë¥·¥°¥Ê¥ë¤È¡¢ -¸ÄÊ̤Υ¹¥ì¥Ã¥É¤ËÁ÷¤é¤ì¤ë¥·¥°¥Ê¥ë¤ò¶èÊ̤·¤Æ¹Í¤¨¤Æ¤¤¤ë¡£ -POSIX.1 ¤Ë¤è¤ë¤È¡¢¥×¥í¥»¥¹¤ËÁ÷¤é¤ì¤¿¥·¥°¥Ê¥ë (Î㤨¤Ð +POSXI.1 では、全体としてのプロセスに送られるシグナルと、 +個別のスレッドに送られるシグナルを区別して考えている。 +POSIX.1 によると、プロセスに送られたシグナル (例えば .BR kill (2) -¤ò»È¤Ã¤ÆÁ÷¤ë) ¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤Ë°¤¹¥¹¥ì¥Ã¥É¤Î¤¦¤Á -¾¡¼ê¤Ë (arbitrarily) ¤ËÁªÂò¤µ¤ì¤¿°ì¤Ä¤Î¥¹¥ì¥Ã¥É¤Ë¤è¤ê½èÍý¤µ¤ì¤ë -¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£LinuxThreads ¤Ï¥×¥í¥»¥¹¤ËÁ÷¤é¤ì¤ë¥·¥°¥Ê¥ë¤Î -³µÇ°¤ËÂбþ¤·¤Æ¤ª¤é¤º¡¢¥·¥°¥Ê¥ë¤ÏÆÃÄê¤Î¥¹¥ì¥Ã¥É¤Ë¤À¤±Á÷¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使って送る) は、そのプロセスに属すスレッドのうち +勝手に (arbitrarily) に選択された一つのスレッドにより処理される +ことになっている。LinuxThreads はプロセスに送られるシグナルの +概念に対応しておらず、シグナルは特定のスレッドにだけ送ることができる。 .IP \- 3 .\"O Threads have distinct alternate signal stack settings. .\"O However, a new thread's alternate signal stack settings @@ -1036,15 +1036,15 @@ POSIX.1 .\"O If two threads handle signals on their shared alternate signal .\"O stack at the same time, unpredictable program failures are .\"O likely to occur.) -¥¹¥ì¥Ã¥É¤Ï¤½¤ì¤¾¤ì¤ÎÆȼ«¤ÎÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ÎÀßÄê¤ò»ý¤Ä¡£ -¤·¤«¤·¡¢¿·¤·¤¤¥¹¥ì¥Ã¥É¤ÎÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ÎÀßÄê¤Ï -¤½¤Î¥¹¥ì¥Ã¥É¤òºîÀ®¤·¤¿¥¹¥ì¥Ã¥É¤«¤é¥³¥Ô¡¼¤µ¤ì¡¢¤½¤Î¤¿¤á -¥¹¥ì¥Ã¥É¤ÏºÇ½é¤Ï°ì¤Ä¤ÎÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ò¶¦Í­¤¹¤ë¡£ -(»ÅÍͤǤϡ¢¿·¤·¤¤¥¹¥ì¥Ã¥É¤ÏÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¾õÂÖ -¤Ç³«»Ï¤µ¤ì¤ë¤Ù¤­¤È¤µ¤ì¤Æ¤¤¤ë¡£ -2¤Ä¤Î¥¹¥ì¥Ã¥É¤¬¶¦Í­¤µ¤ì¤Æ¤¤¤ëÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¾å¤ÇƱ»þ¤Ë -¥·¥°¥Ê¥ë¤Î½èÍý¤ò¹Ô¤Ã¤¿¾ì¹ç¡¢Í½Â¬ÉÔ²Äǽ¤Ê¥×¥í¥°¥é¥à¤Î¥¨¥é¡¼¤¬ -µ¯¤³¤êÆÀ¤ë¡£) +スレッドはそれぞれの独自の代替シグナルスタックの設定を持つ。 +しかし、新しいスレッドの代替シグナルスタックの設定は +そのスレッドを作成したスレッドからコピーされ、そのため +スレッドは最初は一つの代替シグナルスタックを共有する。 +(仕様では、新しいスレッドは代替シグナルスタックが定義されていない状態 +で開始されるべきとされている。 +2つのスレッドが共有されている代替シグナルスタック上で同時に +シグナルの処理を行った場合、予測不可能なプログラムのエラーが +起こり得る。) .SS NPTL .\"O With NPTL, all of the threads in a process are placed .\"O in the same thread group; @@ -1054,18 +1054,18 @@ POSIX.1 .\"O (see also .\"O .BR signal (7)); .\"O these signals cannot be used in applications. -NPTL ¤Ç¤Ï¡¢°ì¤Ä¤Î¥×¥í¥»¥¹¤ÎÁ´¤Æ¤Î¥¹¥ì¥Ã¥É¤ÏƱ¤¸¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥× -¤Ë°¤¹¤ë; ¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤ÎÁ´¥á¥ó¥Ð¡¼¤ÏƱ¤¸ PID ¤ò¶¦Í­¤¹¤ë¡£ -NPTL ¤Ï´ÉÍý¥¹¥ì¥Ã¥É (manager thread) ¤òÍøÍѤ·¤Ê¤¤¡£ -NPTL ¤ÏÆâÉô¤Ç¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Î¤¦¤ÁºÇ½é¤Î 2¤Ä¤ÎÈÖ¹æ¤ò»ÈÍѤ·¤Æ¤ª¤ê +NPTL では、一つのプロセスの全てのスレッドは同じスレッド・グループ +に属する; スレッド・グループの全メンバーは同じ PID を共有する。 +NPTL は管理スレッド (manager thread) を利用しない。 +NPTL は内部でリアルタイムシグナルのうち最初の 2つの番号を使用しており .RB ( signal (7) -»²¾È)¡¢¤³¤ì¤é¤Î¥·¥°¥Ê¥ë¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï»ÈÍѤǤ­¤Ê¤¤¡£ +参照)、これらのシグナルはアプリケーションでは使用できない。 .\"O NPTL still has at least one nonconformance with POSIX.1: -NPTL ¤Ë¤â POSIX.1 ¤Ë½àµò¤·¤Æ¤¤¤Ê¤¤ÅÀ¤¬¾¯¤Ê¤¯¤È¤â°ì¤Ä¤¢¤ë: +NPTL にも POSIX.1 に準拠していない点が少なくとも一つある: .IP \- 3 .\"O Threads do not share a common nice value. -¥¹¥ì¥Ã¥É¤Ï¶¦Ä̤Πnice Ãͤò¶¦Í­¤·¤Ê¤¤¡£ +スレッドは共通の nice 値を共有しない。 .\" FIXME . bug report filed for NPTL nice nonconformance .\" http://bugzilla.kernel.org/show_bug.cgi?id=6258 .\" Sep 08: there is a patch by Denys Vlasenko to address this @@ -1073,7 +1073,7 @@ NPTL .\" Monitor this to see if it makes it into mainline. .PP .\"O Some NPTL nonconformances only occur with older kernels: -NPTL ¤Îɸ½àÈó½àµò¤ÊÅÀ¤Î¤¦¤Á¤¤¤¯¤Ä¤«¤Ï°ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Î¤ßȯÀ¸¤¹¤ë: +NPTL の標準非準拠な点のうちいくつかは以前のカーネルでのみ発生する: .IP \- 3 .\"O The information returned by .\"O .BR times (2) @@ -1081,48 +1081,48 @@ NPTL .\"O .BR getrusage (2) .\"O is per-thread rather than process-wide (fixed in kernel 2.6.9). .BR times (2) -¤È +と .BR getrusage (2) -¤¬ÊÖ¤¹¾ðÊó¤¬¥×¥í¥»¥¹Á´ÂΤξðÊó¤Ç¤Ê¤¯¥¹¥ì¥Ã¥Éñ°Ì¤Î¾ðÊó¤Ç¤¢¤ë -(¥«¡¼¥Í¥ë 2.6.9 ¤Ç½¤Àµ¤µ¤ì¤¿)¡£ +が返す情報がプロセス全体の情報でなくスレッド単位の情報である +(カーネル 2.6.9 で修正された)。 .IP \- 3 .\"O Threads do not share resource limits (fixed in kernel 2.6.10). -¥¹¥ì¥Ã¥É´Ö¤Ç¥ê¥½¡¼¥¹À©¸Â¤ò¶¦Í­¤·¤Ê¤¤ (¥«¡¼¥Í¥ë 2.6.10 ¤Ç½¤Àµ¤µ¤ì¤¿)¡£ +スレッド間でリソース制限を共有しない (カーネル 2.6.10 で修正された)。 .IP \- 3 .\"O Threads do not share interval timers (fixed in kernel 2.6.12). -¥¹¥ì¥Ã¥É´Ö¤Ç¥¤¥ó¥¿¡¼¥Ð¥ë¡¦¥¿¥¤¥Þ¤ò¶¦Í­¤·¤Ê¤¤ -(¥«¡¼¥Í¥ë 2.6.12 ¤Ç½¤Àµ¤µ¤ì¤¿)¡£ +スレッド間でインターバル・タイマを共有しない +(カーネル 2.6.12 で修正された)。 .IP \- 3 .\"O Only the main thread is permitted to start a new session using .\"O .BR setsid (2) .\"O (fixed in kernel 2.6.16). -¥á¥¤¥ó¥¹¥ì¥Ã¥É¤À¤±¤¬ +メインスレッドだけが .BR setsid (2) -¤ò»È¤Ã¤Æ¿·¤·¤¤¥»¥Ã¥·¥ç¥ó¤ò³«»Ï¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë -(¥«¡¼¥Í¥ë 2.6.16 ¤Ç½¤Àµ¤µ¤ì¤¿)¡£ +を使って新しいセッションを開始することができる +(カーネル 2.6.16 で修正された)。 .IP \- 3 .\"O Only the main thread is permitted to make the process into a .\"O process group leader using .\"O .BR setpgid (2) .\"O (fixed in kernel 2.6.16). -¥á¥¤¥ó¥¹¥ì¥Ã¥É¤À¤±¤¬ +メインスレッドだけが .BR setpgid (2) -¤ò»È¤Ã¤Æ¤½¤Î¥×¥í¥»¥¹¤ò¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¡¦¥ê¡¼¥À¡¼¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë -(¥«¡¼¥Í¥ë 2.6.16 ¤Ç½¤Àµ¤µ¤ì¤¿)¡£ +を使ってそのプロセスをプロセス・グループ・リーダーにすることができる +(カーネル 2.6.16 で修正された)。 .IP \- 3 .\"O Threads have distinct alternate signal stack settings. .\"O However, a new thread's alternate signal stack settings .\"O are copied from the thread that created it, so that .\"O the threads initially share an alternate signal stack .\"O (fixed in kernel 2.6.16). -¥¹¥ì¥Ã¥É¤Ï¤½¤ì¤¾¤ì¤ÎÆȼ«¤ÎÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ÎÀßÄê¤ò»ý¤Ä¡£ -¤·¤«¤·¡¢¿·¤·¤¤¥¹¥ì¥Ã¥É¤ÎÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ÎÀßÄê¤Ï -¤½¤Î¥¹¥ì¥Ã¥É¤òºîÀ®¤·¤¿¥¹¥ì¥Ã¥É¤«¤é¥³¥Ô¡¼¤µ¤ì¡¢¤½¤Î¤¿¤á -¥¹¥ì¥Ã¥É¤ÏºÇ½é¤Ï°ì¤Ä¤ÎÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ò¶¦Í­¤¹¤ë -(¥«¡¼¥Í¥ë 2.6.16 ¤Ç½¤Àµ¤µ¤ì¤¿)¡£ +スレッドはそれぞれの独自の代替シグナルスタックの設定を持つ。 +しかし、新しいスレッドの代替シグナルスタックの設定は +そのスレッドを作成したスレッドからコピーされ、そのため +スレッドは最初は一つの代替シグナルスタックを共有する +(カーネル 2.6.16 で修正された)。 .PP .\"O Note the following further points about the NPTL implementation: -NPTL ¤Î¼ÂÁõ¤Ç¤Ï°Ê²¼¤ÎÅÀ¤Ë¤Ä¤¤¤Æ¤âÃí°Õ¤¹¤ë¤³¤È: +NPTL の実装では以下の点についても注意すること: .IP \- 3 .\"O If the stack size soft resource limit (see the description of .\"O .B RLIMIT_STACK @@ -1137,31 +1137,31 @@ NPTL .\"O shell built-in command .\"O .RI ( "limit stacksize" .\"O in the C shell). -¥¹¥¿¥Ã¥¯¥µ¥¤¥º¤Î¥ê¥½¡¼¥¹¤Î¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È +スタックサイズのリソースのソフト・リミット .RB ( setrlimit (2) -¤Î +の .B RLIMIT_STACK -¤ÎÀâÌÀ¤ò»²¾È) ¤¬ +の説明を参照) が .I unlimited -°Ê³°¤ÎÃͤËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤ÎÃͤ¬ -¿·¤·¤¤¥¹¥ì¥Ã¥É¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥¹¥¿¥Ã¥¯¥µ¥¤¥º¤È¤Ê¤ë¡£ -ÀßÄê¤òÍ­¸ú¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ëÁ°¤Ë¥ê¥ß¥Ã¥ÈÃͤò -ÀßÄꤷ¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤¿¤¤¤Æ¤¤¤Ï¡¢¥·¥§¥ë¤ÎÁȤ߹þ¤ß¥³¥Þ¥ó¥É¤Î +以外の値に設定されている場合、ソフト・リミットの値が +新しいスレッドのデフォルトのスタックサイズとなる。 +設定を有効にするためには、プログラムを実行する前にリミット値を +設定しておかなければならない。たいていは、シェルの組み込みコマンドの .I ulimit -s -(C ¥·¥§¥ë¤Ç¤Ï +(C シェルでは .IR "limit stacksize" ) -¤ò»È¤Ã¤ÆÀßÄꤹ¤ë¡£ +を使って設定する。 .\"O .SS "Determining the Threading Implementation" -.SS "¥¹¥ì¥Ã¥É¼ÂÁõ¤ÎȽÄê" +.SS "スレッド実装の判定" .\"O Since glibc 2.3.2, the .\"O .BR getconf (1) .\"O command can be used to determine .\"O the system's threading implementation, for example: -glibc 2.3.2 °Ê¹ß¤Ç¤Ï¡¢ +glibc 2.3.2 以降では、 .BR getconf (1) -¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¡¢ -¥·¥¹¥Æ¥à¤Î¥¹¥ì¥Ã¥É¼ÂÁõ¤òȽÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -°Ê²¼¤ËÎã¤ò¼¨¤¹: +コマンドを使って、 +システムのスレッド実装を判定することができる。 +以下に例を示す: .nf .in +4n @@ -1172,8 +1172,8 @@ NPTL 2.3.4 .PP .\"O With older glibc versions, a command such as the following should .\"O be sufficient to determine the default threading implementation: -¤¾¤ì°ÊÁ°¤Î glibc ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ê¥³¥Þ¥ó¥É¤Ç -¥Ç¥Õ¥©¥ë¥È¤Î¥¹¥ì¥Ã¥É¼ÂÁõ¤òȽÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +ぞれ以前の glibc のバージョンでは、以下のようなコマンドで +デフォルトのスレッド実装を判定することができる。 .nf .in +4n @@ -1183,7 +1183,7 @@ bash$ $( ldd /bin/ls | grep libc.so | awk \(aq{print $3}\(aq ) | \\ .in .fi .\"O .SS "Selecting the Threading Implementation: LD_ASSUME_KERNEL" -.SS "¥¹¥ì¥Ã¥É¤Î¼ÂÁõ¤ÎÁªÂò: LD_ASSUME_KERNEL" +.SS "スレッドの実装の選択: LD_ASSUME_KERNEL" .\"O On systems with a glibc that supports both LinuxThreads and NPTL .\"O (i.e., glibc 2.3.\fIx\fP), the .\"O .B LD_ASSUME_KERNEL @@ -1191,13 +1191,13 @@ bash$ $( ldd /bin/ls | grep libc.so | awk \(aq{print $3}\(aq ) | \\ .\"O the dynamic linker's default choice of threading implementation. .\"O This variable tells the dynamic linker to assume that it is .\"O running on top of a particular kernel version. -LinuxThreads ¤È NPTL ¤ÎξÊý¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë glibc -(glibc 2.3.\fIx\fP) ¤¬¤¢¤ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +LinuxThreads と NPTL の両方をサポートしている glibc +(glibc 2.3.\fIx\fP) があるシステムでは、 .B LD_ASSUME_KERNEL -´Ä¶­ÊÑ¿ô¤ò»È¤¦¤³¤È¤Ç¡¢Æ°Åª¥ê¥ó¥«¤¬¥Ç¥Õ¥©¥ë¥È¤Ç -ÁªÂò¤¹¤ë¥¹¥ì¥Ã¥É¼ÂÁõ¤ò¾å½ñ¤­¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ÎÊÑ¿ô¤Ë¤è¤ê¡¢Æ°Åª¥ê¥ó¥«¤¬ÆÃÄê¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥«¡¼¥Í¥ë¾å¤Ç -Æ°ºî¤·¤Æ¤¤¤ë¤È²¾Äꤹ¤ë¤è¤¦¤Ë»ØÄꤹ¤ë¡£ +環境変数を使うことで、動的リンカがデフォルトで +選択するスレッド実装を上書きすることができる。 +この変数により、動的リンカが特定のバージョンのカーネル上で +動作していると仮定するように指定する。 .\"O By specifying a kernel version that does not .\"O provide the support required by NPTL, we can force the use .\"O of LinuxThreads. @@ -1205,12 +1205,12 @@ LinuxThreads .\"O (broken) application that depends on some nonconformant behavior .\"O in LinuxThreads.) .\"O For example: -NPTL ¤¬É¬ÍפȤ¹¤ë¥µ¥Ý¡¼¥Èµ¡Ç½¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó¤ò -»ØÄꤹ¤ë¤³¤È¤Ç¡¢¶¯À©Åª¤Ë LinuxThreads ¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë -(¤³¤Î¤è¤¦¤Ê¤³¤È¤ò¤¹¤ëºÇ¤â¤¢¤ê¤½¤¦¤Ê¾ìÌ̤ϡ¢ -LinuxThreads ¤Îɸ½àÈó½àµò¤Ê¿¶Éñ¤¤¤Ë°Í¸¤¹¤ë (²õ¤ì¤¿) ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó -¤òÆ°ºî¤µ¤»¤ë¾ì¹ç¤À¤í¤¦)¡£ -°Ê²¼¤ËÎã¤ò¼¨¤¹: +NPTL が必要とするサポート機能を提供していないカーネルバージョンを +指定することで、強制的に LinuxThreads を使うことができる +(このようなことをする最もありそうな場面は、 +LinuxThreads の標準非準拠な振舞いに依存する (壊れた) アプリケーション +を動作させる場合だろう)。 +以下に例を示す: .nf .in +4n @@ -1220,7 +1220,7 @@ bash$ $( LD_ASSUME_KERNEL=2.2.5 ldd /bin/ls | grep libc.so | \\ .in .fi .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR clone (2), .BR futex (2), .BR gettid (2), @@ -1229,7 +1229,7 @@ bash$ $( LD_ASSUME_KERNEL=2.2.5 ldd /bin/ls | grep libc.so | \\ .BR signal (7), .br .\"O and various Pthreads manual pages, for example: -¤ª¤è¤Ó Pthreads ¤Î³Æ¼ï¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¡¢Î㤨¤Ð: +および Pthreads の各種マニュアルページ、例えば: .BR pthread_attr_init (3), .BR pthread_atfork (3), .BR pthread_cancel (3), diff --git a/draft/man7/pty.7 b/draft/man7/pty.7 index a1fcb3ca..4c2c748f 100644 --- a/draft/man7/pty.7 +++ b/draft/man7/pty.7 @@ -25,39 +25,39 @@ .\" Japanese Version Copyright (c) 2005 Akihiro MOTOKI all rights reserved. .\" Translated 2005-10-14, Akihiro MOTOKI .\" -.\"WORD: pseudoterminal µ¼»÷üËö -.\"WORD: character device ¥­¥ã¥é¥¯¥¿¥Ç¥Ð¥¤¥¹ +.\"WORD: pseudoterminal 擬似端末 +.\"WORD: character device キャラクタデバイス .\" .TH PTY 7 2005-10-10 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O pty \- pseudoterminal interfaces -pty \- µ¼»÷üËö¥¤¥ó¥¿¥Õ¥§¡¼¥¹ +pty \- 擬似端末インタフェース .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O A pseudoterminal (sometimes abbreviated "pty") .\"O is a pair of virtual character devices that .\"O provide a bidirectional communication channel. -µ¼»÷üËö (pseudoterminal; "pty" ¤Èά¤µ¤ì¤ë¤³¤È¤â¤¢¤ë) ¤Ï¡¢ -ÁÐÊý¸þÄÌ¿®¥Á¥ã¥ó¥Í¥ë¤òÄ󶡤¹¤ë²¾ÁÛ¥­¥ã¥é¥¯¥¿¥Ç¥Ð¥¤¥¹¤Î¥Ú¥¢¤Ç¤¢¤ë¡£ +擬似端末 (pseudoterminal; "pty" と略されることもある) は、 +双方向通信チャンネルを提供する仮想キャラクタデバイスのペアである。 .\"O One end of the channel is called the .\"O .IR master ; .\"O the other end is called the .\"O .IR slave . -¥Á¥ã¥ó¥Í¥ë¤Î°ìÊý¤ÎüÅÀ¤Ï -.I ¥Þ¥¹¥¿ (master) -¤È¸Æ¤Ð¤ì¡¢¤â¤¦°ìÊý¤ÎüÅÀ¤Ï -.I ¥¹¥ì¡¼¥Ö (slave) -¤È¸Æ¤Ð¤ì¤ë¡£ +チャンネルの一方の端点は +.I マスタ (master) +と呼ばれ、もう一方の端点は +.I スレーブ (slave) +と呼ばれる。 .\"O The slave end of the pseudoterminal provides an interface .\"O that behaves exactly like a classical terminal. .\"O A process that expects to be connected to a terminal, .\"O can open the slave end of a pseudoterminal and .\"O then be driven by a program that has opened the master end. -µ¼»÷üËö¤Î¥¹¥ì¡¼¥Ö¤Ï¡¢ÅÁÅýŪ¤ÊüËö¤ÈÁ´¤¯Æ±¤¸Æ°ºî¤ò¤¹¤ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò -Ä󶡤¹¤ë¡£Ã¼Ëö¤ËÀܳ¤µ¤ì¤ë¤³¤È¤òÁÛÄꤷ¤Æ¤¤¤ë¥×¥í¥»¥¹¤Ïµ¼»÷üËö¤Î -¥¹¥ì¡¼¥Ö¤ò¥ª¡¼¥×¥ó¤¹¤ë¤³¤È¤¬¤Ç¤­¡¢¤½¤ì°Ê¹ß¤Ï¥Þ¥¹¥¿Â¦¤ò¥ª¡¼¥×¥ó -¤·¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤«¤é¤½¤Î¥×¥í¥»¥¹¤òÀ©¸æ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +擬似端末のスレーブは、伝統的な端末と全く同じ動作をするインタフェースを +提供する。端末に接続されることを想定しているプロセスは擬似端末の +スレーブをオープンすることができ、それ以降はマスタ側をオープン +しているプログラムからそのプロセスを制御することができる。 .\"O Anything that is written on the master end is provided to the process .\"O on the slave end as though it was input typed on a terminal. .\"O For example, writing the interrupt character (usually control-C) @@ -68,15 +68,15 @@ pty \- .\"O Conversely, anything that is written to the slave end of the .\"O pseudoterminal can be read by the process that is connected to .\"O the master end. -üËö¤ÇÆþÎϤµ¤ì¤¿¤Î¤ÈƱ¤¸¤è¤¦¤Ë¡¢ -¥Þ¥¹¥¿Â¦¤Ë½ñ¤­¹þ¤Þ¤ì¤¿Á´¤Æ¤Î¥Ç¡¼¥¿¤Ï¡¢¥¹¥ì¡¼¥Ö¦¤Î¥×¥í¥»¥¹¤ËÁ÷¤é¤ì¤ë¡£ -Î㤨¤Ð¡¢¥Þ¥¹¥¿¥Ç¥Ð¥¤¥¹¤Ë³ä¤ê¹þ¤ß¥­¥ã¥é¥¯¥¿ (Ä̾ï¤Ï control-C) ¤ò½ñ¤­¹þ¤à¤È¡¢ -¥¹¥ì¡¼¥Ö¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¡¦¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ËÂФ·¤Æ -³ä¤ê¹þ¤ß¥·¥°¥Ê¥ë +端末で入力されたのと同じように、 +マスタ側に書き込まれた全てのデータは、スレーブ側のプロセスに送られる。 +例えば、マスタデバイスに割り込みキャラクタ (通常は control-C) を書き込むと、 +スレーブに接続されているフォアグラウンド・プロセスグループに対して +割り込みシグナル .RB ( SIGINT ) -¤¬À¸À®¤µ¤ì¤ë¡£ -È¿ÂФˡ¢µ¼»÷üËö¤Î¥¹¥ì¡¼¥Ö¦¤Ë½ñ¤­¹þ¤Þ¤ì¤¿Á´¤Æ¤Î¥Ç¡¼¥¿¤Ï¡¢ -¥Þ¥¹¥¿Â¦¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¥×¥í¥»¥¹¤«¤éÆɤ߽Ф¹¤³¤È¤¬¤Ç¤­¤ë¡£ +が生成される。 +反対に、擬似端末のスレーブ側に書き込まれた全てのデータは、 +マスタ側に接続されているプロセスから読み出すことができる。 .\"O Pseudoterminals are used by applications such as network login services .\"O .RB ( ssh "(1), " rlogin "(1), " telnet (1)), .\"O terminal emulators, @@ -84,21 +84,21 @@ pty \- .\"O .BR screen (1), .\"O and .\"O .BR expect (1). -µ¼»÷üËö¤Ï¡¢¥Í¥Ã¥È¥ï¡¼¥¯¥í¥°¥¤¥ó¥µ¡¼¥Ó¥¹ +擬似端末は、ネットワークログインサービス .RB ( ssh "(1), " rlogin "(1), " telnet (1)) -¤äüËö¥¨¥ß¥å¥ì¡¼¥¿¡¢ +や端末エミュレータ、 .BR script (1), .BR screen (1), .BR expect (1) -¤Ê¤É¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ +などのアプリケーションで使用されている。 .\"O Historically, two pseudoterminal APIs have evolved: BSD and System V. .\"O SUSv1 standardized a pseudoterminal API based on the System V API, .\"O and this API should be employed in all new programs that use .\"O pseudoterminals. -Îò»ËŪ¤Ë¸«¤ë¤È BSD ¤È System V ¤Î2¼ïÎà¤Îµ¼»÷üËö¤Î API ¤¬È¯Å¸¤·¤Æ¤­¤Æ¤¤¤ë¡£ -SUSv1 ¤Ï System V API ¤Ë´ð¤Å¤¤¤¿µ¼»÷üËö API ¤òɸ½à²½¤·¤Æ¤ª¤ê¡¢ -µ¼»÷üËö¤ò»ÈÍѤ¹¤ë¿·¤·¤¤¥×¥í¥°¥é¥à¤Ï¤¹¤Ù¤Æ¤³¤Î API ¤òºÎÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +歴史的に見ると BSD と System V の2種類の擬似端末の API が発展してきている。 +SUSv1 は System V API に基づいた擬似端末 API を標準化しており、 +擬似端末を使用する新しいプログラムはすべてこの API を採用すべきである。 .\"O Linux provides both BSD-style and (standardized) System V-style .\"O pseudoterminals. @@ -107,27 +107,27 @@ SUSv1 .\"O Since kernel 2.6.4, BSD-style pseudoterminals are considered deprecated .\"O (they can be disabled when configuring the kernel); .\"O UNIX 98 pseudoterminals should be used in new applications. -Linux ¤Ç¤Ï BSD É÷¤È (ɸ½à²½¤µ¤ì¤¿) System V É÷¤Îµ¼»÷üËö¤òÄ󶡤·¤Æ¤¤¤ë¡£ -System V É÷¤ÎüËö¤Ï¡¢Linux ¥·¥¹¥Æ¥à¤Ç¤Ï°ìÈÌ¤Ë UNIX 98 µ¼»÷üËö¤È¸Æ¤Ð¤ì¤Æ¤¤¤ë¡£ -¥«¡¼¥Í¥ë 2.6.4 °Ê¹ß¤Ç¤Ï¡¢BSD É÷¤Îµ¼»÷üËö¤ÏÇÑ»ßͽÄê¤È¤ß¤Ê¤µ¤ì¤Æ¤¤¤ë -(¥«¡¼¥Í¥ë¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ç BSD É÷¤Îµ¼»÷üËö¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë)¡£ -¿·¤·¤¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢UNIX 98 µ¼»÷üËö¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +Linux では BSD 風と (標準化された) System V 風の擬似端末を提供している。 +System V 風の端末は、Linux システムでは一般に UNIX 98 擬似端末と呼ばれている。 +カーネル 2.6.4 以降では、BSD 風の擬似端末は廃止予定とみなされている +(カーネルのコンフィギュレーションで BSD 風の擬似端末を無効にすることができる)。 +新しいアプリケーションでは、UNIX 98 擬似端末を使用すべきである。 .\"O .SS "UNIX 98 pseudoterminals" -.SS "UNIX 98 µ¼»÷üËö" +.SS "UNIX 98 擬似端末" .\"O An unused UNIX 98 pseudoterminal master is opened by calling .\"O .BR posix_openpt (3). .\"O (This function opens the master clone device, .\"O .IR /dev/ptmx ; .\"O see .\"O .BR pts (4).) -̤»ÈÍѤΠUNIX 98 µ¼»÷üËö¥Þ¥¹¥¿¤ò¥ª¡¼¥×¥ó¤¹¤ë¤Ë¤Ï +未使用の UNIX 98 擬似端末マスタをオープンするには .BR posix_openpt (3) -¤ò¸Æ¤Ó½Ð¤¹ -(¤³¤Î´Ø¿ô¤Ï¥Þ¥¹¥¿¡¦¥¯¥í¡¼¥ó¡¦¥Ç¥Ð¥¤¥¹ (master clone device), +を呼び出す +(この関数はマスタ・クローン・デバイス (master clone device), .I /dev/ptmx -¤ò¥ª¡¼¥×¥ó¤¹¤ë; +をオープンする; .BR pts (4) -¤ò»²¾È)¡£ +を参照)。 .\"O After performing any program-specific initializations, .\"O changing the ownership and permissions of the slave device using .\"O .BR grantpt (3), @@ -138,16 +138,16 @@ System V .\"O .BR ptsname (3) .\"O in a call to .\"O .BR open (2). -¥×¥í¥°¥é¥à¸ÇÍ­¤Î½é´ü²½½èÍý¤ò¼Â¹Ô¤·¡¢ +プログラム固有の初期化処理を実行し、 .BR grantpt (3) -¤ò»È¤Ã¤Æ¥¹¥ì¡¼¥Ö¥Ç¥Ð¥¤¥¹¤Î½êÍ­¸¢¤äµö²Ä¤òÊѹ¹¤·¡¢ +を使ってスレーブデバイスの所有権や許可を変更し、 .BR unlockpt (3) -¤ò»È¤Ã¤Æ¥¹¥ì¡¼¥Ö¤Î¥í¥Ã¥¯²ò½ü¤ò¹Ô¤¦¤È¡¢ +を使ってスレーブのロック解除を行うと、 .BR ptsname (3) -¤¬ÊÖ¤¹Ì¾Á°¤òÅϤ·¤Æ +が返す名前を渡して .BR open (2) -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ë¤è¤ê -Âбþ¤¹¤ë¥¹¥ì¡¼¥Ö¥Ç¥Ð¥¤¥¹¤ò¥ª¡¼¥×¥ó¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +を呼び出すことにより +対応するスレーブデバイスをオープンできるようになる。 .\"O The Linux kernel imposes a limit on the number of available .\"O UNIX 98 pseudoterminals. @@ -163,21 +163,21 @@ System V .\"O indicates how many pseudoterminals are currently in use. .\"O For further details on these two files, see .\"O .BR proc (5). -Linux ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ÍøÍѤǤ­¤ë UNIX 98 µ¼»÷üËö¤Î¿ô¤Ë¾å¸Â¤òÀߤ±¤Æ¤¤¤ë¡£ -2.6.3 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¤³¤Î¾å¸Â¤Ï¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤ÎÀßÄê +Linux カーネルでは、利用できる UNIX 98 擬似端末の数に上限を設けている。 +2.6.3 以前のカーネルでは、この上限はカーネルのコンパイル時の設定 .RB ( CONFIG_UNIX98_PTYS ) -¤Ç¤¢¤ë¡£µö²Ä¤µ¤ì¤ëµ¼»÷üËö¤Î¿ô¤ÏºÇÂç 2048 ¤Ç¤¢¤ê¡¢ -¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¤Ï 256 ¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë 2.6.4 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¾å¸Â¤Ï +である。許可される擬似端末の数は最大 2048 であり、 +デフォルトの設定は 256 である。 +カーネル 2.6.4 以降では、この上限は .I /proc/sys/kernel/pty/max -·Ðͳ¤ÇưŪ¤ËÄ´À°²Äǽ¤È¤Ê¤Ã¤Æ¤¤¤ë¡£¤Þ¤¿¡¢ +経由で動的に調整可能となっている。また、 .I /proc/sys/kernel/pty/nr -¤Ç¸½ºß»ÈÍÑÃæ¤Îµ¼»÷üËö¤Î¿ô¤ò¼èÆÀ¤Ç¤­¤ë¡£ -¤³¤Î 2¤Ä¤Î¥Õ¥¡¥¤¥ë¤Î¾ÜºÙ¤Ï +で現在使用中の擬似端末の数を取得できる。 +この 2つのファイルの詳細は .BR proc (5) -¤ò»²¾È¡£ +を参照。 .\"O .SS "BSD pseudoterminals" -.SS "BSD µ¼»÷üËö" +.SS "BSD 擬似端末" .\"O BSD-style pseudoterminals are provided as precreated pairs, with .\"O names of the form .\"O .I /dev/ptyXY @@ -188,61 +188,61 @@ Linux .\"O and Y is a letter from the 16-character set [0-9a-f]. .\"O (The precise range of letters in these two sets varies across UNIX .\"O implementations.) -BSD É÷¤Îµ¼»÷üËö¤Ï¤¢¤é¤«¤¸¤áºîÀ®¤µ¤ì¤¿¥Ú¥¢¤È¤·¤ÆÄ󶡤µ¤ì¤ë¡£¤½¤Î̾Á°¤Ï +BSD 風の擬似端末はあらかじめ作成されたペアとして提供される。その名前は .I /dev/ptyXY -(¥Þ¥¹¥¿Â¦)¡¢ +(マスタ側)、 .I /dev/ttyXY -(¥¹¥ì¡¼¥Ö¦) ¤Ç¤¢¤ë¡£¤³¤³¤Ç¡¢ -X ¤Ï [p-za-e] ¤Î 16ʸ»ú¤Î¤¦¤Á¤Î°ìʸ»ú¡¢ -Y ¤Ï [0-9a-f] ¤Î 16ʸ»ú¤Î¤¦¤Á¤Î°ìʸ»ú¤Ç¤¢¤ë -(X, Y ¤Ë»È¤ï¤ì¤ëʸ»ú¤ÎÀµ³Î¤ÊÈÏ°Ï¤Ï UNIX ¤Î¼ÂÁõ¤Ë¤è¤ê°Û¤Ê¤ë)¡£ +(スレーブ側) である。ここで、 +X は [p-za-e] の 16文字のうちの一文字、 +Y は [0-9a-f] の 16文字のうちの一文字である +(X, Y に使われる文字の正確な範囲は UNIX の実装により異なる)。 .\"O For example, .\"O .I /dev/ptyp1 .\"O and .\"O .I /dev/ttyp1 .\"O constitute a BSD pseudoterminal pair. -Î㤨¤Ð¡¢ +例えば、 .I /dev/ptyp1 -¤È +と .I /dev/ttyp1 -¤Ï BSD µ¼»÷üËö¥Ú¥¢¤ò¹½À®¤¹¤ë¡£ +は BSD 擬似端末ペアを構成する。 .\"O A process finds an unused pseudoterminal pair by trying to .\"O .BR open (2) .\"O each pseudoterminal master until an open succeeds. .\"O The corresponding pseudoterminal slave (substitute "tty" .\"O for "pty" in the name of the master) can then be opened. -¥×¥í¥»¥¹¤¬Ì¤»ÈÍѤε¼»÷üËö¥Ú¥¢¤ò¸«¤Ä¤±¤ë¤Ë¤Ï¡¢ -³Æµ¼»÷üËö¤Î¥Þ¥¹¥¿¤Î +プロセスが未使用の擬似端末ペアを見つけるには、 +各擬似端末のマスタの .BR open (2) -¤ò»î¤ß¡¢open ¤¬À®¸ù¤¹¤ë¤Þ¤Ç¤³¤ì¤ò·«¤êÊÖ¤¹¡£ -¥Þ¥¹¥¿¤ò open ¤¹¤ë¤È¡¢Âбþ¤¹¤ëµ¼»÷üËö¤Î¥¹¥ì¡¼¥Ö¤â open ¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë -(¥¹¥ì¡¼¥Ö¤Î̾Á°¤Ï¡¢¥Þ¥¹¥¿¤Î̾Á°¤Î "pty" ¤ò "tty" ¤ËÃÖ¤­´¹¤¨¤¿¤â¤Î¤Ç¤¢¤ë)¡£ +を試み、open が成功するまでこれを繰り返す。 +マスタを open すると、対応する擬似端末のスレーブも open できるようになる +(スレーブの名前は、マスタの名前の "pty" を "tty" に置き換えたものである)。 .\"O .SH "FILES" -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .I /dev/ptmx -(UNIX 98 ¥Þ¥¹¥¿¡¦¥¯¥í¡¼¥ó¡¦¥Ç¥Ð¥¤¥¹) +(UNIX 98 マスタ・クローン・デバイス) .br .I /dev/pts/* -(UNIX 98 ¥¹¥ì¡¼¥Ö¥Ç¥Ð¥¤¥¹) +(UNIX 98 スレーブデバイス) .br .I /dev/pty[p-za-e][0-9a-f] -(BSD ¥Þ¥¹¥¿¥Ç¥Ð¥¤¥¹) +(BSD マスタデバイス) .br .I /dev/tty[p-za-e][0-9a-f] -(BSD ¥¹¥ì¡¼¥Ö¥Ç¥Ð¥¤¥¹) +(BSD スレーブデバイス) .\"O .SH "NOTES" -.SH Ãí°Õ +.SH 注意 .\"O A description of the .\"O .B TIOCPKT .\"O .BR ioctl (2), .\"O which controls packet mode operation, can be found in .\"O .BR tty_ioctl (4). -¥Ñ¥±¥Ã¥È¡¦¥â¡¼¥ÉÁàºî¤ÎÀ©¸æ¤ò¹Ô¤¦ +パケット・モード操作の制御を行う .B TIOCPKT .BR ioctl (2) -¤ÎÀâÌÀ¤Ï +の説明は .BR tty_ioctl (4) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ +に書かれている。 .\"O The BSD .\"O .BR ioctl (2) @@ -255,14 +255,14 @@ Y .\"O have not been implemented under Linux. BSD .BR ioctl (2) -¤Î +の .BR TIOCSTOP , .BR TIOCSTART , .BR TIOCUCNTL , .B TIOCREMOTE -¤Ï¤³¤ì¤Þ¤Ç¤Î¤È¤³¤í Linux ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +はこれまでのところ Linux では実装されていない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR select (2), .BR setsid (2), .BR forkpty (3), diff --git a/draft/man7/raw.7 b/draft/man7/raw.7 index 2d9a04ce..2e3f70cb 100644 --- a/draft/man7/raw.7 +++ b/draft/man7/raw.7 @@ -11,52 +11,52 @@ .\" Translated 1999-12-06, NAKANO Takeo .\" Updated 2007-01-05, Akihiro MOTOKI , LDP v2.43 .\" -.\"WORD link level header(s) ¥ê¥ó¥¯¥ì¥Ù¥ë¥Ø¥Ã¥À -.\"WORD effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ ID -.\"WORD capability ¸¢¸Â -.\"WORD route (¥Ñ¥±¥Ã¥È¤Î) ·ÐÏ© +.\"WORD link level header(s) リンクレベルヘッダ +.\"WORD effective user ID 実効ユーザー ID +.\"WORD capability 権限 +.\"WORD route (パケットの) 経路 .\" .TH RAW 7 2008-11-20 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O raw, SOCK_RAW \- Linux IPv4 raw sockets -.SH ̾Á° -raw, SOCK_RAW \- Linux ¤Î IPv4 raw ¥½¥±¥Ã¥È +.SH 名前 +raw, SOCK_RAW \- Linux の IPv4 raw ソケット .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include .br .BI "raw_socket = socket(AF_INET, SOCK_RAW, int " protocol ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Raw sockets allow new IPv4 protocols to be implemented in user space. .\"O A raw socket receives or sends the raw datagram not .\"O including link level headers. -raw ¥½¥±¥Ã¥È¤ò»È¤¦¤È¡¢¿·¤·¤¤ IPv4 ¥×¥í¥È¥³¥ë¤ò¥æ¡¼¥¶¶õ´Ö¤Ç -¼ÂÁõ¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ raw ¥½¥±¥Ã¥È¤Ï¡¢¥ê¥ó¥¯¥ì¥Ù¥ë¥Ø¥Ã¥À¤ò -´Þ¤Þ¤Ê¤¤ raw ¥Ç¡¼¥¿¥°¥é¥à¤ÎÁ÷¼õ¿®¤¬¤Ç¤­¤ë¡£ +raw ソケットを使うと、新しい IPv4 プロトコルをユーザ空間で +実装できるようになる。 raw ソケットは、リンクレベルヘッダを +含まない raw データグラムの送受信ができる。 .\"O The IPv4 layer generates an IP header when sending a packet unless the .\"O .B IP_HDRINCL .\"O socket option is enabled on the socket. .\"O When it is enabled, the packet must contain an IP header. .\"O For receiving the IP header is always included in the packet. -IPv4 ¥ì¥¤¥ä¤Ï¡¢°·¤Ã¤Æ¤¤¤ë¥½¥±¥Ã¥È¤Ç +IPv4 レイヤは、扱っているソケットで .B IP_HDRINCL -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ -¥Ñ¥±¥Ã¥È¤òÁ÷¿®¤¹¤ë¤È¤­¤Ë IP ¥Ø¥Ã¥À¤òÀ¸À®¤¹¤ë¡£ +ソケットオプションが有効になっていなければ、 +パケットを送信するときに IP ヘッダを生成する。 .B IP_HDRINCL -¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¤­¤Ï¡¢¥Ñ¥±¥Ã¥È¤Ë¤Ï -IP ¥Ø¥Ã¥À¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¼õ¿®»þ¤Ë¤Ï¡¢ IP ¥Ø¥Ã¥À¤Ï¾ï¤Ë¥Ñ¥±¥Ã¥È¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +オプションが有効になっているときは、パケットには +IP ヘッダが含まれていなければならない。 +受信時には、 IP ヘッダは常にパケットに含まれている。 .\"O Only processes with an effective user ID of 0 or the .\"O .B CAP_NET_RAW .\"O capability are allowed to open raw sockets. -¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤«¡¢ +実効ユーザー ID が 0 のプロセスか、 .B CAP_NET_RAW -¸¢¸Â¤ò»ý¤Ä¥×¥í¥»¥¹¤À¤±¤¬ raw ¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +権限を持つプロセスだけが raw ソケットをオープンすることができる。 .\"O All packets or errors matching the .\"O .I protocol @@ -64,12 +64,12 @@ IP .\"O for the raw socket are passed to this socket. .\"O For a list of the allowed protocols see RFC\ 1700 assigned numbers and .\"O .BR getprotobyname (3). -¤³¤Î raw ¥½¥±¥Ã¥È¤Ë»ØÄꤵ¤ì¤¿ +この raw ソケットに指定された .I protocol -ÈÖ¹æ¤Ë¥Þ¥Ã¥Á¤¹¤ëÁ´¤Æ¤Î¥Ñ¥±¥Ã¥È¤È¥¨¥é¡¼¤È¤¬¡¢¤³¤Î¥½¥±¥Ã¥È¤ËÅϤµ¤ì¤ë¡£ -µö²Ä¤µ¤ì¤Æ¤¤¤ë¥×¥í¥È¥³¥ë¤Î¥ê¥¹¥È¤Ï RFC\ 1700 ¤Î³ä¤êÅö¤ÆÈÖ¹æ¤È +番号にマッチする全てのパケットとエラーとが、このソケットに渡される。 +許可されているプロトコルのリストは RFC\ 1700 の割り当て番号と .BR getprotobyname (3) -¤ò¸«¤è¡£ +を見よ。 .\"O A protocol of .\"O .B IPPROTO_RAW @@ -81,13 +81,13 @@ IP .\"O .B IPPROTO_RAW .\"O is not possible using raw sockets. .B IPPROTO_RAW -¤Î¥×¥í¥È¥³¥ë¤Ï°ÅÌۤΤ¦¤Á¤Ë +のプロトコルは暗黙のうちに .B IP_HDRINCL -¤òÍ­¸ú¤Ë¤¹¤ë¤Î¤Ç¡¢ -ÅϤµ¤ì¤¿¥Ø¥Ã¥À¤Ç»ØÄꤵ¤ì¤¿¡¢¤¢¤é¤æ¤ë IP ¥×¥í¥È¥³¥ë¤òÁ÷¿®¤Ç¤­¤ë¡£ +を有効にするので、 +渡されたヘッダで指定された、あらゆる IP プロトコルを送信できる。 .B IPPROTO_RAW -·Ðͳ¤Ç¤Î¤¢¤é¤æ¤ë IP ¥×¥í¥È¥³¥ë¤Î¼õ¿®¤Ï¡¢ -raw ¥½¥±¥Ã¥È¤òÍѤ¤¤Æ¤Ï¹Ô¤¨¤Ê¤¤¡£ +経由でのあらゆる IP プロトコルの受信は、 +raw ソケットを用いては行えない。 .\"O .TS tab(:) allbox; @@ -98,16 +98,16 @@ l l. .\"O Source Address:Filled in when zero. .\"O Packet Id:Filled in when zero. .\"O Total Length:Always filled in. -IP ¥Ø¥Ã¥À¥Õ¥£¡¼¥ë¥É¡£ \fBIP_HDRINCL\fP ¤Ë¤è¤Ã¤ÆÁ÷¿®»þ¤ËÊѹ¹¤µ¤ì¤ë¡£ -IP ¥Á¥§¥Ã¥¯¥µ¥à:¾ï¤ËÊѹ¹¤µ¤ì¤ë¡£ -¥½¡¼¥¹¥¢¥É¥ì¥¹:¸µ¤ÎÃͤ¬ 0 ¤Î»þ¤ËÊѹ¹¤µ¤ì¤ë¡£ -¥Ñ¥±¥Ã¥È ID:¸µ¤ÎÃͤ¬ 0 ¤Î»þ¤ËÊѹ¹¤µ¤ì¤ë¡£ -Á´ÂΤÎŤµ:¾ï¤ËËä¤á¤é¤ì¤ë¡£ +IP ヘッダフィールド。 \fBIP_HDRINCL\fP によって送信時に変更される。 +IP チェックサム:常に変更される。 +ソースアドレス:元の値が 0 の時に変更される。 +パケット ID:元の値が 0 の時に変更される。 +全体の長さ:常に埋められる。 .TE .\"O.RE .sp .PP -.\"NAKANO Aloways filled in. ¤È¤Ï? +.\"NAKANO Aloways filled in. とは? .\"O If .\"O .B IP_HDRINCL .\"O is specified and the IP header has a nonzero destination address then @@ -118,15 +118,15 @@ IP .\"O otherwise a routing table lookup is done anyway but gatewayed routes .\"O are ignored. .B IP_HERINCL -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢ IP ¥Ø¥Ã¥À¤Ë -0 ¤Ç¤Ê¤¤Á÷¿®À襢¥É¥ì¥¹¤¬µ­Æþ¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ï¡¢ -¤½¤ÎÁ÷¿®À襢¥É¥ì¥¹¤¬¥Ñ¥±¥Ã¥È¤Î·ÐÏ©¤ò·è¤á¤ë¤Î¤ËÍѤ¤¤é¤ì¤ë¡£ +が指定されていて、 IP ヘッダに +0 でない送信先アドレスが記入されていた場合は、 +その送信先アドレスがパケットの経路を決めるのに用いられる。 .B MSG_DONTROUTE -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë»þ¤Ë¤Ï¡¢ -Á÷¿®À襢¥É¥ì¥¹¤Ï¥í¡¼¥«¥ë¤Ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»²¾È¤¹¤ë¤â¤Î¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤µ¤â¤Ê¤¤¤È¡¢¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤Î»²¾È¤Ï¤¤¤º¤ì¤Ë¤»¤è¹Ô¤ï¤ì¤ë¤¬¡¢ -¥²¡¼¥È¥¦¥§¥¤¤¬É¬ÍפʷÐÏ©¤Ï̵»ë¤µ¤ì¤ë¡£ -.\"NAKANO ¥í¡¼¥«¥ë¤Ê¥Í¥Ã¥È¤Ê¤Î¤«¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ê¤Î¤«¡© +が指定されている時には、 +送信先アドレスはローカルなインターフェースを参照するものでなければならない。 +さもないと、ルーティングテーブルの参照はいずれにせよ行われるが、 +ゲートウェイが必要な経路は無視される。 +.\"NAKANO ローカルなネットなのかインターフェースなのか? .\"O If .\"O .B IP_HDRINCL @@ -136,32 +136,32 @@ IP .\"O .BR ip (7) .\"O for more information. .B IP_HDRINCL -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ -raw ¥½¥±¥Ã¥È¤Î IP ¥Ø¥Ã¥À¥ª¥×¥·¥ç¥ó¤ò +がセットされていなければ、 +raw ソケットの IP ヘッダオプションを .BR setsockopt (2) -¤òÍѤ¤¤ÆÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¾ÜºÙ¤Ê¾ðÊó¤Ï +を用いて設定することができる。詳細な情報は .BR ip (7) -¤ò¸«¤è¡£ +を見よ。 .\"O In Linux 2.2, all IP header fields and options can be set using .\"O IP socket options. .\"O This means raw sockets are usually only needed for new .\"O protocols or protocols with no user interface (like ICMP). -Linux 2.2 ¤Ç¤Ï¡¢ IP ¥Ø¥Ã¥À¤ÎÁ´¤Æ¤Î¥Õ¥£¡¼¥ë¥É¤È¥ª¥×¥·¥ç¥ó¤È¤ò -IP ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤ÆÀßÄê¤Ç¤­¤ë¡£¤·¤¿¤¬¤Ã¤Æ -raw ¥½¥±¥Ã¥È¤¬É¬Íפˤʤë¤Î¤Ï¡¢¿·¤·¤¤¥×¥í¥È¥³¥ë¤òÀ߷פ¹¤ë¾ì¹ç¤«¡¢ -¥æ¡¼¥¶¡¼¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»ý¤¿¤Ê¤¤¥×¥í¥È¥³¥ë (ICMP ¤Ê¤É) ¤ò°·¤¦¾ì¹ç¤Ë -¸Â¤é¤ì¤ë¡£ +Linux 2.2 では、 IP ヘッダの全てのフィールドとオプションとを +IP ソケットオプションによって設定できる。したがって +raw ソケットが必要になるのは、新しいプロトコルを設計する場合か、 +ユーザーインターフェースを持たないプロトコル (ICMP など) を扱う場合に +限られる。 .\"O When a packet is received, it is passed to any raw sockets which have .\"O been bound to its protocol before it is passed to other protocol handlers .\"O (e.g., kernel protocol modules). -¥Ñ¥±¥Ã¥È¤Ï¡¢¼õ¿®¤µ¤ì¤ë¤È¤Þ¤º¥×¥í¥È¥³¥ë¤Ë¥Ð¥¤¥ó¥É¤·¤Æ¤¤¤ë -raw ¥½¥±¥Ã¥È¤ËÅϤµ¤ì¡¢ -¤½¤Î¸å¤Ç¾¤Î¥×¥í¥È¥³¥ë¥Ï¥ó¥É¥é (¥«¡¼¥Í¥ë¤Î¥×¥í¥È¥³¥ë¥â¥¸¥å¡¼¥ë¤Ê¤É) -¤ËÅϤµ¤ì¤ë¡£ +パケットは、受信されるとまずプロトコルにバインドしている +raw ソケットに渡され、 +その後で他のプロトコルハンドラ (カーネルのプロトコルモジュールなど) +に渡される。 .\"O .SS Address Format -.SS ¥¢¥É¥ì¥¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È +.SS アドレスのフォーマット .\"O Raw sockets use the standard .\"O .I sockaddr_in .\"O address structure defined in @@ -177,23 +177,23 @@ raw .\"O See the .\"O .I .\"O include file for valid IP protocols. -raw ¥½¥±¥Ã¥È¤Ïɸ½à¤Î +raw ソケットは標準の .I sockaddr_in -¥¢¥É¥ì¥¹¹½Â¤ÂΤòÍѤ¤¤ë¡£ÄêµÁ¤Ï +アドレス構造体を用いる。定義は .BR ip (7) -¤Ç¤Ê¤µ¤ì¤Æ¤¤¤ë¡£ +でなされている。 .I sin_port -¥Õ¥£¡¼¥ë¥É¤ò IP ¥×¥í¥È¥³¥ëÈÖ¹æ¤Î»ØÄê¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¤¬¡¢ -Linux 2.2 ¤Ç¤Ï¤³¤ì¤ÏÁ÷¿®»þ¤Ë¤Ï̵»ë¤µ¤ì¡¢¾ï¤Ë 0 ¤Ë¤µ¤ì¤ë -(¥Ð¥° ¤Î¹à¤ò»²¾È)¡£ -¼õ¿®¥Ñ¥±¥Ã¥È¤ËÂФ·¤Æ¤Ï¡¢ +フィールドを IP プロトコル番号の指定に用いることができるが、 +Linux 2.2 ではこれは送信時には無視され、常に 0 にされる +(バグ の項を参照)。 +受信パケットに対しては、 .I sin_port -¤Ï¤½¤Î¥Ñ¥±¥Ã¥È¤Î¥×¥í¥È¥³¥ë¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ -ÍѤ¤¤ë¤³¤È¤Î¤Ç¤­¤ë IP ¥×¥í¥È¥³¥ë¤Ï¡¢¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +はそのパケットのプロトコルにセットされる。 +用いることのできる IP プロトコルは、インクルードファイル .I -¤ò¸«¤è¡£ +を見よ。 .\"O .SS Socket Options -.SS ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó +.SS ソケットオプション .\"O Raw socket options can be set with .\"O .BR setsockopt (2) .\"O and read with @@ -202,14 +202,14 @@ Linux 2.2 .\"O .B IPPROTO_RAW .\"O .\" Or SOL_RAW on Linux .\"O family flag. -raw ¥½¥±¥Ã¥È¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ +raw ソケットのオプションは、 .B IPPROTO_RAW -.\" ¤â¤·¤¯¤Ï Linux ¤Ç¤Ï .I SOL_RAW -¥Õ¥¡¥ß¥ê¡¼¥Õ¥é¥°¤òÍ¿¤¨¤Æ +.\" もしくは Linux では .I SOL_RAW +ファミリーフラグを与えて .BR setsockopt (2) -¤ò¸Æ¤Ù¤ÐÀßÄê¤Ç¤­¡¢ +を呼べば設定でき、 .BR getsockopt (2) -¤ò¸Æ¤Ù¤Ð¼èÆÀ¤Ç¤­¤ë¡£ +を呼べば取得できる。 .TP .B ICMP_FILTER .\"O Enable a special filter for raw sockets bound to the @@ -219,21 +219,21 @@ raw .\"O should be filtered out. .\"O The default is to filter no ICMP messages. .B IPPROTO_ICMP -¥×¥í¥È¥³¥ë¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¤¿ raw ¥½¥±¥Ã¥È¤Î¤¿¤á¤ÎÆüì¤Ê¥Õ¥£¥ë¥¿¤òÍ­¸ú¤Ë¤¹¤ë¡£ -¤³¤ÎÃÍ¤Ï ICMP ¥á¥Ã¥»¡¼¥¸¤Î¥¿¥¤¥×¤½¤ì¤¾¤ì¤ËÂФ·¤Æ¡¢¤É¤ì¤ò¥Õ¥£¥ë¥¿¡¼¥¢¥¦¥È -¤¹¤ë¤«¤òɽ¤·¤¿¥Ó¥Ã¥È¥»¥Ã¥È¤Ç¤¢¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï -ICMP ¥á¥Ã¥»¡¼¥¸¤ÏÁ´¤¯¥Õ¥£¥ë¥¿¡¼¤·¤Ê¤¤¡£ +プロトコルにバインドされた raw ソケットのための特殊なフィルタを有効にする。 +この値は ICMP メッセージのタイプそれぞれに対して、どれをフィルターアウト +するかを表したビットセットである。デフォルトでは +ICMP メッセージは全くフィルターしない。 .PP .\"O In addition, all .\"O .BR ip (7) .\"O .B IPPROTO_IP .\"O socket options valid for datagram sockets are supported. -¤µ¤é¤Ë¡¢¥Ç¡¼¥¿¥°¥é¥à¥½¥±¥Ã¥È¤Ë»È¤¨¤ëÁ´¤Æ¤Î +さらに、データグラムソケットに使える全ての .BR ip (7) .B SOL_IP -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +ソケットオプションがサポートされている。 .\"O .SS Error Handling -.SS ¥¨¥é¡¼½èÍý +.SS エラー処理 .\"O Errors originating from the network are only passed to the user when the .\"O socket is connected or the .\"O .B IP_RECVERR @@ -246,33 +246,33 @@ ICMP .\"O With .\"O .BR IP_RECVERR , .\"O all network errors are saved in the error queue. -¥Í¥Ã¥È¥ï¡¼¥¯¤ÇÀ¸¤¸¤¿¥¨¥é¡¼¤¬¥æ¡¼¥¶¤ËÅϤµ¤ì¤ë¤Î¤Ï¡¢ -¥½¥±¥Ã¥È¤¬ÀܳºÑ¤ß¤Î¾ì¹ç¤« +ネットワークで生じたエラーがユーザに渡されるのは、 +ソケットが接続済みの場合か .B IP_RECVERR -¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¸Â¤é¤ì¤ë¡£ -ÀܳºÑ¤ß¤Î¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤Ï¡¢ +フラグが有効になっている場合に限られる。 +接続済みのソケットに対しては、 .B EMSGSIZE -¤ª¤è¤Ó +および .B EPROTO -¤À¤±¤¬ÅϤµ¤ì¤ë (¸ß´¹À­¤Î¤¿¤á)¡£ +だけが渡される (互換性のため)。 .B IP_RECVERR -¤òÀßÄꤹ¤ë¤È¡¢Á´¤Æ¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¨¥é¡¼¤¬¥¨¥é¡¼¥­¥å¡¼¤ËÊݸ¤µ¤ì¤ë¡£ +を設定すると、全てのネットワークエラーがエラーキューに保存される。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EACCES .\"O User tried to send to a broadcast address without having the .\"O broadcast flag set on the socket. -¥æ¡¼¥¶¡¼¤¬ broadcast ¥Õ¥é¥°¤òÀßÄꤷ¤Æ¤¤¤Ê¤¤¥½¥±¥Ã¥È¤òÍѤ¤¤Æ -¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤ËÁ÷¿®¤ò¹Ô¤ª¤¦¤È¤·¤¿¡£ +ユーザーが broadcast フラグを設定していないソケットを用いて +ブロードキャストアドレスに送信を行おうとした。 .TP .B EFAULT .\"O An invalid memory address was supplied. -ÉÔÀµ¤Ê¥á¥â¥ê¥¢¥É¥ì¥¹¤¬Í¿¤¨¤é¤ì¤¿¡£ +不正なメモリアドレスが与えられた。 .TP .B EINVAL .\"O Invalid argument. -°ú¿ô¤¬Àµ¤·¤¯¤Ê¤¤¡£ +引数が正しくない。 .TP .B EMSGSIZE .\"O Packet too big. @@ -280,56 +280,56 @@ ICMP .\"O .B IP_MTU_DISCOVER .\"O socket flag) or the packet size exceeds the maximum allowed IPv4 .\"O packet size of 64KB. -¥Ñ¥±¥Ã¥È¤¬Â礭¤¹¤®¤ë¡£ Path MTU Discoverry ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë +パケットが大きすぎる。 Path MTU Discoverry が有効になっている .RB ( IP_MTU_DISCOVER -¥½¥±¥Ã¥È¥Õ¥é¥°) ¤«¡¢¥Ñ¥±¥Ã¥È¤Î¥µ¥¤¥º¤¬ IPv4 ¤Çµö¤µ¤ì¤Æ¤¤¤ë -¥Ñ¥±¥Ã¥È¥µ¥¤¥º¤ÎºÇÂçÃÍ 64KB ¤ò±Û¤¨¤Æ¤¤¤ë¡£ +ソケットフラグ) か、パケットのサイズが IPv4 で許されている +パケットサイズの最大値 64KB を越えている。 .TP .B EOPNOTSUPP .\"O Invalid flag has been passed to a socket call (like .\"O .BR MSG_OOB ). -¥½¥±¥Ã¥È¸Æ¤Ó½Ð¤·¤ËÉÔÀµ¤Ê¥Õ¥é¥° +ソケット呼び出しに不正なフラグ .RB ( MSG_OOB -¤Ê¤É) ¤¬ÅϤµ¤ì¤¿¡£ +など) が渡された。 .TP .B EPERM .\"O The user doesn't have permission to open raw sockets. .\"O Only processes with an effective user ID of 0 or the .\"O .B CAP_NET_RAW .\"O attribute may do that. -¥æ¡¼¥¶¡¼¤Ï raw ¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤¹¤ë¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -¼Â¹Ô¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤«¡¢ +ユーザーは raw ソケットをオープンする権限を持っていない。 +実行ユーザー ID が 0 のプロセスか、 .B CAP_NET_RAW -°À­¤ò»ý¤Ä¥×¥í¥»¥¹¤À¤±¤¬¤³¤ì¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +属性を持つプロセスだけがこれを行うことができる。 .TP .B EPROTO .\"O An ICMP error has arrived reporting a parameter problem. -¥Ñ¥é¥á¡¼¥¿¤ÎÌäÂê¤òÊó¹ð¤¹¤ë ICMP ¥¨¥é¡¼¤ò¼õ¤±¼è¤Ã¤¿¡£ +パラメータの問題を報告する ICMP エラーを受け取った。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .B IP_RECVERR .\"O and .\"O .B ICMP_FILTER .\"O are new in Linux 2.2. .\"O They are Linux extensions and should not be used in portable programs. .B IP_RECVERR -¤È +と .B ICMP_FILTER -¤Ï Linux 2.2 ¤ÇÅо줷¤¿¡£¤³¤ì¤é¤Ï Linux ¤Ç¤Î³ÈÄ¥¤Ç¤¢¤ê¡¢ -°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤ÏÍѤ¤¤ë¤Ù¤­¤Ç¤Ê¤¤¡£ +は Linux 2.2 で登場した。これらは Linux での拡張であり、 +移植性の必要なプログラムでは用いるべきでない。 .\"O Linux 2.0 enabled some bug-to-bug compatibility with BSD in the .\"O raw socket code when the .\"O .B SO_BSDCOMPAT .\"O socket option was set \(em since Linux 2.2, .\"O this option no longer has that effect. -Linux 2.0 ¤Ç¤Ï +Linux 2.0 では .B SO_BSDCOMPAT -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢ -BSD ¤Î raw ¥½¥±¥Ã¥È¤Ë¤¢¤ë¥Ð¥°¤Ë¸ß´¹À­¤ò¼è¤ë¤³¤È¤¬¤Ç¤­¤¿ \(em -Linux 2.2 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¤â¤Ï¤ä¸úÎϤò»ý¤¿¤Ê¤¤¡£ +ソケットオプションをセットすると、 +BSD の raw ソケットにあるバグに互換性を取ることができた \(em +Linux 2.2 以降では、このオプションはもはや効力を持たない。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O By default, raw sockets do path MTU (Maximum Transmission Unit) discovery. .\"O This means the kernel .\"O will keep track of the MTU to a specific target IP address and return @@ -347,26 +347,26 @@ Linux 2.2 .\"O that exceed the interface MTU. .\"O However, disabling it is not recommended .\"O for performance and reliability reasons. -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢raw ¥½¥±¥Ã¥È¤Ï Path MTU Discovery ¤ò¹Ô¤¦¡£ -¤Ä¤Þ¤ê¡¢¥«¡¼¥Í¥ë¤ÏÆÃÄê¤Î°¸Àè IP ¥¢¥É¥ì¥¹¤Î MTU (Maximum Transmission Unit; -ºÇÂçžÁ÷ñ°Ì) ¤òµ­Ï¿¤·¡¢raw ¥Ñ¥±¥Ã¥È¤Î½ñ¤­¹þ¤ß¤¬ MTU ¤òĶ¤¨¤¿¾ì¹ç +デフォルトでは、raw ソケットは Path MTU Discovery を行う。 +つまり、カーネルは特定の宛先 IP アドレスの MTU (Maximum Transmission Unit; +最大転送単位) を記録し、raw パケットの書き込みが MTU を超えた場合 .B EMSGSIZE -¤òÊÖ¤¹¡£ +を返す。 .B EMSGSIZE -¤òÊÖ¤µ¤ì¤¿¾ì¹ç¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¥Ñ¥±¥Ã¥È¥µ¥¤¥º¤ò¾®¤µ¤¯¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó +を返された場合、アプリケーションはパケットサイズを小さくすべきである。 +ソケットオプション .B IP_MTU_DISCOVER -¤Þ¤¿¤Ï +または .I /proc/sys/net/ipv4/ip_no_pmtu_disc -¥Õ¥¡¥¤¥ë¤ò»È¤Ã¤Æ Path MTU Discovery ¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤â¤Ç¤­¤ë -(¾ÜºÙ¤Ï +ファイルを使って Path MTU Discovery を無効にすることもできる +(詳細は .BR ip (7) -¤ò»²¾È)¡£ -Path MTU Discovery ¤ò̵¸ú¤Ë¤·¤¿¾ì¹ç¤Ï¡¢¥Ñ¥±¥Ã¥È¥µ¥¤¥º¤¬ -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î MTU ¤è¤ê¤âÂ礭¤¤¤È raw ¥½¥±¥Ã¥È¤Ï¤½¤Î¥Ñ¥±¥Ã¥È¤ò -¥Õ¥é¥°¥á¥ó¥È²½¤·¤ÆÁ÷½Ð¤¹¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢À­Ç½¤È¿®ÍêÀ­¤ÎÍýͳ¤«¤é Path MTU Discovery ¤ò -̵¸ú¤Ë¤¹¤ë¤Î¤Ï¿ä¾©¤Ç¤­¤Ê¤¤¡£ +を参照)。 +Path MTU Discovery を無効にした場合は、パケットサイズが +インタフェースの MTU よりも大きいと raw ソケットはそのパケットを +フラグメント化して送出する。 +しかしながら、性能と信頼性の理由から Path MTU Discovery を +無効にするのは推奨できない。 .\"O A raw socket can be bound to a specific local address using the .\"O .BR bind (2) @@ -377,17 +377,17 @@ Path MTU Discovery .\"O see .\"O .BR socket (7). .BR bind (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÍѤ¤¤ë¤È¡¢ -raw ¥½¥±¥Ã¥È¤ò -ÆÃÄê¤Î¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤Ë¥Ð¥¤¥ó¥É¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î¥Ð¥¤¥ó¥É¤¬¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢»ØÄꤷ¤¿ IP ¥×¥í¥È¥³¥ë¤Î -¤¹¤Ù¤Æ¤Î¥Ñ¥±¥Ã¥È¤¬¼õ¿®¤µ¤ì¤ë¡£ -¤µ¤é¤Ë¡¢ +システムコールを用いると、 +raw ソケットを +特定のローカルアドレスにバインドさせることができる。 +このバインドがされていない場合は、指定した IP プロトコルの +すべてのパケットが受信される。 +さらに、 .B SO_BINDTODEVICE -¤òÍѤ¤¤ì¤Ð raw ¥½¥±¥Ã¥È¤òÆÃÄê¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¤Ë -¥Ð¥¤¥ó¥É¤µ¤»¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +を用いれば raw ソケットを特定のネットワークデバイスに +バインドさせることもできる。 .BR socket (7) -¤ò¸«¤è¡£ +を見よ。 .\"O An .\"O .B IPPROTO_RAW @@ -400,75 +400,75 @@ raw .\"O Note that packet sockets don't reassemble IP fragments, .\"O unlike raw sockets. .B IPPROTO_RAW -¥½¥±¥Ã¥È¤ÏÁ÷¿®ÀìÍѤǤ¢¤ë¡£¤â¤·¤É¤¦¤·¤Æ¤â¤¹¤Ù¤Æ¤Î IP ¥Ñ¥±¥Ã¥È¤ò -¼õ¿®¤·¤¿¤¤¾ì¹ç¤Ï¡¢ +ソケットは送信専用である。もしどうしてもすべての IP パケットを +受信したい場合は、 .BR packet (7) -¥½¥±¥Ã¥È¤ò +ソケットを .B ETH_P_IP -¥×¥í¥È¥³¥ë¤ÇÍѤ¤¤ë¤³¤È¡£ -packet ¥½¥±¥Ã¥È¤Ï raw ¥½¥±¥Ã¥È¤Î¤è¤¦¤Ë -IP ¥Õ¥é¥°¥á¥ó¥È¤òºÆ¹½À®¤·¤Ê¤¤¤³¤È¤ËÃí°Õ¡£ +プロトコルで用いること。 +packet ソケットは raw ソケットのように +IP フラグメントを再構成しないことに注意。 .\"O If you want to receive all ICMP packets for a datagram socket, .\"O it is often better to use .\"O .B IP_RECVERR .\"O on that particular socket; see .\"O .BR ip (7). -datagram ¥½¥±¥Ã¥È¤ËÂФ¹¤ë¤¹¤Ù¤Æ¤Î ICMP ¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤·¤¿¤¤¾ì¹ç¤Ï¡¢ -ÆÃÄê¤Î¥½¥±¥Ã¥È¤ËÂФ·¤Æ +datagram ソケットに対するすべての ICMP パケットを受信したい場合は、 +特定のソケットに対して .B IP_RECVERR -¤òÍѤ¤¤ë¤Û¤¦¤¬Îɤ¤¾ì¹ç¤¬Â¿¤¤¡£ +を用いるほうが良い場合が多い。 .BR ip (7) -¤ò¸«¤è¡£ +を見よ。 .\"O Raw sockets may tap all IP protocols in Linux, even .\"O protocols like ICMP or TCP which have a protocol module in the kernel. .\"O In this case, the packets are passed to both the kernel module and the raw .\"O socket(s). This should not be relied upon in portable programs, many other BSD .\"O socket implementation have limitations here. -raw ¥½¥±¥Ã¥È¤Ï¡¢ Linux ¤Î¤¹¤Ù¤Æ¤Î IP ¥×¥í¥È¥³¥ë¤ò¼õ¿®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -ICMP ¤ä TCP ¤Î¤è¤¦¤Ë¡¢¥«¡¼¥Í¥ëÆâÉô¤Ë¥×¥í¥È¥³¥ë¥â¥¸¥å¡¼¥ë¤ò»ý¤Ä¤è¤¦¤Ê -¤â¤Î¤â²Äǽ¤Ç¤¢¤ë¡£¤³¤Î¾ì¹ç¤Ë¤Ï¡¢¥Ñ¥±¥Ã¥È¤Ï¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¤È -raw ¥½¥±¥Ã¥È¤ÎξÊý¤ËÅϤµ¤ì¤ë (raw ¥½¥±¥Ã¥È¤¬Ê£¿ô¤¢¤ì¤Ð¤½¤ì¤¾¤ì¤ËÅϤµ¤ì¤ë)¡£ -°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Îµ¡Ç½¤Ë°Í¸¤¹¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¾¤Î¿¤¯¤Î BSD ¤Ë¤ª¤±¤ë¥½¥±¥Ã¥È¤Î¼ÂÁõ¤Ç¤Ï¤³¤ÎÅÀ¤Ë¤ª¤¤¤ÆÀ©¸Â¤¬¤¢¤ë¡£ +raw ソケットは、 Linux のすべての IP プロトコルを受信することができる。 +ICMP や TCP のように、カーネル内部にプロトコルモジュールを持つような +ものも可能である。この場合には、パケットはカーネルモジュールと +raw ソケットの両方に渡される (raw ソケットが複数あればそれぞれに渡される)。 +移植性の必要なプログラムではこの機能に依存するべきではない。 +他の多くの BSD におけるソケットの実装ではこの点において制限がある。 .\"O Linux never changes headers passed from the user (except for filling .\"O in some zeroed fields as described for .\"O .BR IP_HDRINCL ). .\"O This differs from many other implementations of raw sockets. -Linux ¤Ï¥æ¡¼¥¶¡¼¤«¤éÅϤµ¤ì¤¿¥Ø¥Ã¥À¤ò·è¤·¤ÆÊѹ¹¤·¤Ê¤¤ (¤¿¤À¤· +Linux はユーザーから渡されたヘッダを決して変更しない (ただし .B IP_HDRINCL -¤ÎÀâÌÀ¤Ë¤¢¤ë¤è¤¦¤Ë¡¢ 0 ¤ò¤¤¤¯¤Ä¤«Ëä¤á¤ë¾ì¹ç¤ò½ü¤¯)¡£ -¤³¤ì¤Ï¾¤Î¿¤¯¤Î raw ¥½¥±¥Ã¥È¤Î¼ÂÁõ¤Ç¤Ï°Û¤Ê¤ë¡£ +の説明にあるように、 0 をいくつか埋める場合を除く)。 +これは他の多くの raw ソケットの実装では異なる。 .\"O RAW sockets are generally rather unportable and should be avoided in .\"O programs intended to be portable. -°ìÈÌ¤Ë raw ¥½¥±¥Ã¥È¤Ï°Ü¿¢À­¤¬¤Ê¤¤¤³¤È¤¬Â¿¤¤¤Î¤Ç¡¢ -°Ü¿¢À­¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç¤ÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +一般に raw ソケットは移植性がないことが多いので、 +移植性が必要なプログラムでは避けるべきである。 .\"O Sending on raw sockets should take the IP protocol from .\"O .IR sin_port ; .\"O this ability was lost in Linux 2.2. .\"O The workaround is to use .\"O .BR IP_HDRINCL . -raw ¥½¥±¥Ã¥È¤Ø¤ÎÁ÷¿®¤Ç¤Ï¡¢ IP ¥×¥í¥È¥³¥ë¤ò +raw ソケットへの送信では、 IP プロトコルを .I sin_port -¤«¤é¼èÆÀ¤Ç¤­¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤Îµ¡Ç½¤Ï Linux 2.2 ¤Ç¤Ï»È¤¨¤Ê¤¯¤Ê¤Ã¤¿¡£ +から取得できなければならない。この機能は Linux 2.2 では使えなくなった。 .B IP_HDRINCL -¤òÍѤ¤¤ì¤ÐƱÍͤΤ³¤È¤¬¼Â¸½¤Ç¤­¤ë¡£ +を用いれば同様のことが実現できる。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Transparent proxy extensions are not described. -Æ©²á¥×¥í¥¯¥· (transparent proxy) ³ÈÄ¥¤Ë¤Ä¤¤¤Æ¤Ïµ­½Ò¤·¤Æ¤¤¤Ê¤¤¡£ +透過プロクシ (transparent proxy) 拡張については記述していない。 .\"O When the .\"O .B IP_HDRINCL .\"O option is set, datagrams will not be fragmented and are limited to .\"O the interface MTU. .B IP_HDRINCL -¥ª¥×¥·¥ç¥ó¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¥Ç¡¼¥¿¥°¥é¥à¤Ï¥Õ¥é¥°¥á¥ó¥È²½¤µ¤ì¤º¡¢ -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î MTU ¤ÎÂ礭¤µ¤ËÀ©¸Â¤µ¤ì¤ë¡£ +オプションがセットされているとデータグラムはフラグメント化されず、 +インターフェースの MTU の大きさに制限される。 .\"O Setting the IP protocol for sending in .\"O .I sin_port @@ -477,18 +477,18 @@ raw .\"O was specified in the initial .\"O .BR socket (2) .\"O call is always used. -Á÷¿®ÍѤΠIP ¥×¥í¥È¥³¥ë¤ÎÀßÄê¤ò +送信用の IP プロトコルの設定を .I sin_port -¤Ë¤·¤Æ¤ª¤¯µ¡Ç½¤Ï Linux 2.2 ¤«¤é»È¤¨¤Ê¤¯¤Ê¤Ã¤¿¡£ -¥½¥±¥Ã¥È¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¤Æ¤¤¤ë¥×¥í¥È¥³¥ë¤«¡¢ºÇ½é¤Î +にしておく機能は Linux 2.2 から使えなくなった。 +ソケットにバインドされているプロトコルか、最初の .BR socket (2) -¥³¡¼¥ë¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿¥×¥í¥È¥³¥ë¤¬¾ï¤ËÍѤ¤¤é¤ì¤ë¡£ +コールによって指定されたプロトコルが常に用いられる。 .\"O .\" .SH AUTHORS -.\" .SH Ãø¼Ô +.\" .SH 著者 .\"O .\" This man page was written by Andi Kleen. -.\" ¤³¤Î man ¥Ú¡¼¥¸¤Ï Andi Kleen ¤¬½ñ¤¤¤¿¡£ +.\" この man ページは Andi Kleen が書いた。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR recvmsg (2), .BR sendmsg (2), .BR capabilities (7), @@ -497,16 +497,16 @@ raw .\"O .B RFC\ 1191 .\"O for path MTU discovery. -¥Ñ¥¹ MTU ȯ¸«¤Ë´Ø¤¹¤ë¾ðÊó¤Ï +パス MTU 発見に関する情報は .B RFC\ 1191 -¤Ë¤¢¤ë +にある .\"O .B RFC\ 791 .\"O and the .\"O .I .\"O include file for the IP protocol. -IP ¥×¥í¥È¥³¥ë¤Ë´Ø¤·¤Æ¤Ï +IP プロトコルに関しては .B RFC\ 791 -¤È¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +とインクルードファイル .I -¤ò»²¾È¡£ +を参照。 diff --git a/draft/man7/regex.7 b/draft/man7/regex.7 index 943c2472..1bd33468 100644 --- a/draft/man7/regex.7 +++ b/draft/man7/regex.7 @@ -36,31 +36,31 @@ .\" Japanese Version Copyright (c) 1998 NAKANO Takeo all rights reserved. .\" Translated Wed 8 Jul 1998 by NAKANO Takeo .\" -.\"WORD: regular expression Àµµ¬É½¸½ -.\"WORD: modern RE ¿·¤·¤¤Àµµ¬É½¸½ -.\"WORD: obsolete RE ¸Å¤¤Àµµ¬É½¸½ -.\"WORD: basic RE ´ðËÜÀµµ¬É½¸½ -.\"WORD: extended RE ³ÈÄ¥Àµµ¬É½¸½ -.\"WORD: branch »Þ -.\"WORD: piece ʸÀá -.\"WORD: atom ¥¢¥È¥à -.\"WORD: bound ·«¤êÊÖ¤·»ØÄê -.\"WORD: bracket expression ¥Ö¥é¥±¥Ã¥Èɽ¸½ -.\"WORD: digit ¿ô»ú -.\"WORD: collating sequence ¾È¹ç½ç½ø -.\"WORD: collating element ¾È¹ç½ç½ø¤ÎÍ×ÁÇ -.\"WORD: character class ʸ»ú¥¯¥é¥¹ -.\"WORD: equivalent class Åù²Á¥¯¥é¥¹ -.\"WORD: substring Éôʬʸ»úÎó -.\"WORD: subexpression ÉôʬÀµµ¬É½¸½ +.\"WORD: regular expression 正規表現 +.\"WORD: modern RE 新しい正規表現 +.\"WORD: obsolete RE 古い正規表現 +.\"WORD: basic RE 基本正規表現 +.\"WORD: extended RE 拡張正規表現 +.\"WORD: branch 枝 +.\"WORD: piece 文節 +.\"WORD: atom アトム +.\"WORD: bound 繰り返し指定 +.\"WORD: bracket expression ブラケット表現 +.\"WORD: digit 数字 +.\"WORD: collating sequence 照合順序 +.\"WORD: collating element 照合順序の要素 +.\"WORD: character class 文字クラス +.\"WORD: equivalent class 等価クラス +.\"WORD: substring 部分文字列 +.\"WORD: subexpression 部分正規表現 .\" .TH REGEX 7 2009-01-12 "" "Linux Programmer's Manual" .\"O .SH NAME .\"O regex \- POSIX.2 regular expressions -.SH ̾Á° -regex \- POSIX.2 Àµµ¬É½¸½ +.SH 名前 +regex \- POSIX.2 正規表現 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Regular expressions ("RE"s), .\"O as defined in POSIX.2, come in two forms: .\"O modern REs (roughly those of @@ -74,32 +74,32 @@ regex \- POSIX.2 .\"O POSIX.2 leaves some aspects of RE syntax and semantics open; .\"O "\*(dg" marks decisions on these aspects that .\"O may not be fully portable to other POSIX.2 implementations. -Àµµ¬É½¸½ (Regular expression: RE) ¤Ï POSIX.2 ¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ -Æó¤Ä¤Î·Á¼°¤¬¤¢¤ë¡£¿·¤·¤¤Àµµ¬É½¸½ (modern RE) ¤È¸Å¤¤Àµµ¬É½¸½ (obsolete RE) -¤Ç¤¢¤ë¡£¿·¤·¤¤Àµµ¬É½¸½¤Ï¤À¤¤¤¿¤¤ +正規表現 (Regular expression: RE) は POSIX.2 で定義されており、 +二つの形式がある。新しい正規表現 (modern RE) と古い正規表現 (obsolete RE) +である。新しい正規表現はだいたい .I egrep -¤Î¤â¤Î¤ÈƱ¤¸¤Ç¡¢ POSIX.2 ¤Ç¤Ï¡Ö³ÈÄ¥¡×Àµµ¬É½¸½ ("extended" RE) -¤È¸Æ¤Ð¤ì¤Æ¤¤¤ë¡£¸Å¤¤Àµµ¬É½¸½¤Ï¤À¤¤¤¿¤¤ +のものと同じで、 POSIX.2 では「拡張」正規表現 ("extended" RE) +と呼ばれている。古い正規表現はだいたい .BR ed (1) -¤Î¤â¤Î¤ÈƱ¤¸¤Ç¡¢ POSIX.2 ¤Ç¤Ï¡Ö´ðËÜ¡×Àµµ¬É½¸½ ("basic" RE) ¤Ç¤¢¤ë¡£ -¸Å¤¤Àµµ¬É½¸½¤Ï¡¢¸Å¤¤¥×¥í¥°¥é¥à¤È¤Î¸ß´¹À­¤òÊݤĤ¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤ì¤Ë¤Ä¤¤¤Æ¤ÏºÇ¸å¤ËµÄÏÀ¤¹¤ë¡£ -POSIX.2 ¤Ç¤Ï¡¢Àµµ¬É½¸½¤Îʸˡ¤äµ­¹æ¤Î°ìÉô¤¬¡¢Ì¤ÄêµÁ¤Î¤Þ¤Þ»Ä¤µ¤ì¤Æ¤¤¤ë¡£ -"\*(dg" ¤Ï¡¢¤³¤Î¤è¤¦¤Ê°ÕÌ£¤Ç¡¢Â¾¤Î POSIX.2 ¤Î¼ÂÁõ¤È -´°Á´¤Ë¤Ï¸ß´¹¤Ç¤Ê¤¤¤«¤âÃΤì¤Ê¤¤Éôʬ¤Ç¤¢¤ë¡£ +のものと同じで、 POSIX.2 では「基本」正規表現 ("basic" RE) である。 +古い正規表現は、古いプログラムとの互換性を保つためのものである。 +これについては最後に議論する。 +POSIX.2 では、正規表現の文法や記号の一部が、未定義のまま残されている。 +"\*(dg" は、このような意味で、他の POSIX.2 の実装と +完全には互換でないかも知れない部分である。 .PP .\"O A (modern) RE is one\*(dg or more nonempty\*(dg \fIbranches\fR, .\"O separated by \(aq|\(aq. .\"O It matches anything that matches one of the branches. -(¿·¤·¤¤) Àµµ¬É½¸½¤Ï°ì¤Ä°Ê¾å\*(dg ¤Î¶õÇò¤Ç¤Ê¤¤ \fI»Þ (branch)\fP ¤«¤é¤Ê¤ë¡£ -»Þ¤É¤¦¤·¤Ï \(aq|\(aq ¤Ç¶èÀÚ¤é¤ì¤ë¡£Àµµ¬É½¸½¤Ï¡¢ -»Þ¤Î¤É¤ì¤«¤Ë¥Þ¥Ã¥Á (match) ¤·¤¿¤â¤Î¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ +(新しい) 正規表現は一つ以上\*(dg の空白でない \fI枝 (branch)\fP からなる。 +枝どうしは \(aq|\(aq で区切られる。正規表現は、 +枝のどれかにマッチ (match) したものにマッチする。 .PP .\"O A branch is one\*(dg or more \fIpieces\fR, concatenated. .\"O It matches a match for the first, followed by a match for the second, etc. -»Þ¤Ï°ì¤Ä°Ê¾å¤ÎʸÀá (piece) ¤¬·ë¹ç¤µ¤ì¤¿¤â¤Î¤Ç¤¢¤ë¡£ -»Þ¤ÏÂè°ì¤ÎʸÀ᤬¥Þ¥Ã¥Á¤·¡¢ -³¤¤¤ÆÂèÆó¤ÎʸÀ᤬¥Þ¥Ã¥Á¤·¡¢... ¤·¤¿¤â¤Î¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ +枝は一つ以上の文節 (piece) が結合されたものである。 +枝は第一の文節がマッチし、 +続いて第二の文節がマッチし、... したものにマッチする。 .PP .\"O A piece is an \fIatom\fR possibly followed .\"O by a single\*(dg \(aq*\(aq, \(aq+\(aq, \(aq?\(aq, or \fIbound\fR. @@ -109,20 +109,20 @@ POSIX.2 .\"O matches a sequence of 1 or more matches of the atom. .\"O An atom followed by \(aq?\(aq .\"O matches a sequence of 0 or 1 matches of the atom. -ʸÀá¤Ï\fI¥¢¥È¥à (atom)\fR ¤«¤é¤Ê¤ë¡£¤¿¤À¤·¥¢¥È¥à¤Î¸å¤Ë¤Ï°ì¤Ä\*(dg ¤Î \(aq*\(aq, -\(aq+\(aq, \(aq?\(aq ¤¢¤ë¤¤¤Ï \fI·«¤êÊÖ¤·»ØÄê (bound)\fR ¤¬Â³¤¯¤³¤È¤â¤¢¤ë¡£ -\(aq*\(aq ¤¬¸åÃÖ¤µ¤ì¤¿¥¢¥È¥à¤Ï¡¢¥Þ¥Ã¥Á¤·¤¿¥¢¥È¥à¤Î 0 ¸Ä°Ê¾å¤ÎʤӤ˥ޥåÁ¤¹¤ë¡£ -\(aq+\(aq ¤¬¸åÃÖ¤µ¤ì¤¿¥¢¥È¥à¤Ï¡¢¥Þ¥Ã¥Á¤·¤¿¥¢¥È¥à¤Î 1 ¸Ä°Ê¾å¤ÎʤӤ˥ޥåÁ¤¹¤ë¡£ -\(aq?\(aq ¤¬¸åÃÖ¤µ¤ì¤¿¥¢¥È¥à¤Ï¡¢¥Þ¥Ã¥Á¤·¤¿¥¢¥È¥à¤Î 0 ¸Ä¤Þ¤¿¤Ï 1 ¸Ä¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ +文節は\fIアトム (atom)\fR からなる。ただしアトムの後には一つ\*(dg の \(aq*\(aq, +\(aq+\(aq, \(aq?\(aq あるいは \fI繰り返し指定 (bound)\fR が続くこともある。 +\(aq*\(aq が後置されたアトムは、マッチしたアトムの 0 個以上の並びにマッチする。 +\(aq+\(aq が後置されたアトムは、マッチしたアトムの 1 個以上の並びにマッチする。 +\(aq?\(aq が後置されたアトムは、マッチしたアトムの 0 個または 1 個にマッチする。 .PP .\"O A \fIbound\fR is \(aq{\(aq followed by an unsigned decimal integer, .\"O possibly followed by \(aq,\(aq .\"O possibly followed by another unsigned decimal integer, .\"O always followed by \(aq}\(aq. -\fI·«¤êÊÖ¤·»ØÄê\fR¤È¤Ï \(aq{\(aq ¤Ë³¤¤¤Æ¡¢Éä¹æ¤Ê¤· 10 ¿ÊÀ°¿ô¡¢\(aq,\(aq¡¢ -¤â¤¦°ì¤Ä¤Î 10 ¿ÊÀ°¿ô¡¢\(aq}\(aq ¤òʤ٤¿¤â¤Î¤Ç¤¢¤ë¡£\(aq,\(aq ¤ÈÆó¤Ä¤á¤Î -10 ¿ÊÀ°¿ô¤Ï¾Êά¤Ç¤­¤ë¡£Æó¤Ä¤á¤Î 10 ¿ÊÀ°¿ô¤À¤±¤ò¾Êά¤¹¤ë¤³¤È¤â¤Ç¤­¤ë -(ºÇ¸å¤Î `}' ¤Ï¾Êά¤Ç¤­¤Ê¤¤)¡£ +\fI繰り返し指定\fRとは \(aq{\(aq に続いて、符号なし 10 進整数、\(aq,\(aq、 +もう一つの 10 進整数、\(aq}\(aq を並べたものである。\(aq,\(aq と二つめの +10 進整数は省略できる。二つめの 10 進整数だけを省略することもできる +(最後の `}' は省略できない)。 .\"O The integers must lie between 0 and .\"O .B RE_DUP_MAX .\"O (255\*(dg) inclusive, @@ -136,16 +136,16 @@ POSIX.2 .\"O An atom followed by a bound .\"O containing two integers \fIi\fR and \fIj\fR matches .\"O a sequence of \fIi\fR through \fIj\fR (inclusive) matches of the atom. -À°¿ô¤Ï 0 °Ê¾å +整数は 0 以上 .B RE_DUP_MAX -(255\*(dg) °Ê²¼¤Î´Ö¤Ç»ØÄê¤Ç¤­¤ë¡£ -Æó¤Ä»ØÄꤹ¤ë¾ì¹ç¤Ë¤Ï¡¢ºÇ½é¤Î¿ôÃͤϸå¤Î¿ôÃͤò±Û¤¨¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -À°¿ô \fIi\fR ¤À¤±¤«¤é¤Ê¤ë·«¤êÊÖ¤·»ØÄê¤ò¸åÃÖ¤µ¤ì¤¿¥¢¥È¥à¤Ï¡¢ -¥¢¥È¥à¤ò¤Ô¤Ã¤¿¤ê¤Á¤ç¤¦¤É \fIi\fR ¸Ä¤À¤±Ê¤٤¿¤â¤Î¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -À°¿ô \fIi\fR ¤È¥³¥ó¥Þ¤¬»ØÄꤵ¤ì¤¿·«¤êÊÖ¤·»ØÄê¤ò¸åÃÖ¤µ¤ì¤¿¥¢¥È¥à¤Ï¡¢ -¥¢¥È¥à¤ò \fIi\fR¸Ä°Ê¾åʤ٤¿¤â¤Î¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -À°¿ô \fIi\fR ¤È \fIj\fR ¤¬»ØÄꤵ¤ì¤¿·«¤êÊÖ¤·»ØÄê¤ò¸åÃÖ¤µ¤ì¤¿¥¢¥È¥à¤Ï¡¢ -¥¢¥È¥à¤ò \fIi\fR¸Ä°Ê¾å \fIj\fR ¸Ä°Ê²¼¤À¤±Ê¤٤¿¤â¤Î¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ +(255\*(dg) 以下の間で指定できる。 +二つ指定する場合には、最初の数値は後の数値を越えてはならない。 +整数 \fIi\fR だけからなる繰り返し指定を後置されたアトムは、 +アトムをぴったりちょうど \fIi\fR 個だけ並べたものにマッチする。 +整数 \fIi\fR とコンマが指定された繰り返し指定を後置されたアトムは、 +アトムを \fIi\fR個以上並べたものにマッチする。 +整数 \fIi\fR と \fIj\fR が指定された繰り返し指定を後置されたアトムは、 +アトムを \fIi\fR個以上 \fIj\fR 個以下だけ並べたものにマッチする。 .PP .\"O An atom is a regular expression enclosed in "\fI()\fP" .\"O (matching a match for the regular expression), @@ -160,24 +160,24 @@ POSIX.2 .\"O (matching that character taken as an ordinary character, .\"O as if the \(aq\e\(aq had not been present\*(dg), .\"O or a single character with no other significance (matching that character). -¥¢¥È¥à¤Î¼ïÎà¤Ï°Ê²¼¤ÎÄ̤ꡣ"\fI()\fP" ¤Ë°Ï¤Þ¤ì¤¿Àµµ¬É½¸½ -(¤½¤ÎÀµµ¬É½¸½¤¬¥Þ¥Ã¥Á¤¹¤ëʸ»úÎó¤Ë¥Þ¥Ã¥Á¤¹¤ë)¡¢ -Ãæ¿È¤¬¶õ¤Î "\fI()\fP" (null ʸ»úÎó¤Ë¥Þ¥Ã¥Á¤¹¤ë)\*(dg¡¢ -\fI¥Ö¥é¥±¥Ã¥Èɽ¸½ (bracket expression\fR :¸å½Ò)¡¢ -\(aq.\(aq (Ǥ°Õ¤Î 1 ʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë)¡¢ -\(aq^\(aq (¹ÔƬ¤Î¶õÇòʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë)¡¢ -\(aq$\(aq (¹ÔËö¤Î¶õÇòʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë)¡¢ -\(aq\e\(aq ¤Ë "\fI^.[$()|*+?{\e\fP" ¤Î¤¤¤º¤ì¤«°ìʸ»ú¤ò¸åÃÖ¤·¤¿¤â¤Î -(Ä̾ï¤Îʸ»ú¤È¤·¤Æ°·¤ï¤ì¡¢¤½¤Îʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë)¡¢ -\(aq\e\(aq ¤Ë¤½¤ì°Ê³°¤Îʸ»ú¤ò¸åÃÖ¤·¤¿¤â¤Î\*(dg -(\(aq\e\(aq ¤¬¤Ê¤¤¾ì¹ç¤ÈƱ¤¸¤è¤¦¤Ë¡¢¤½¤Îʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë\*(dg)¡¢ -Æä˰ÕÌ£¤ò»ý¤¿¤Ê¤¤Ê¸»ú°ì¤Ä (¤½¤Îʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë)¡£ +アトムの種類は以下の通り。"\fI()\fP" に囲まれた正規表現 +(その正規表現がマッチする文字列にマッチする)、 +中身が空の "\fI()\fP" (null 文字列にマッチする)\*(dg、 +\fIブラケット表現 (bracket expression\fR :後述)、 +\(aq.\(aq (任意の 1 文字にマッチする)、 +\(aq^\(aq (行頭の空白文字にマッチする)、 +\(aq$\(aq (行末の空白文字にマッチする)、 +\(aq\e\(aq に "\fI^.[$()|*+?{\e\fP" のいずれか一文字を後置したもの +(通常の文字として扱われ、その文字にマッチする)、 +\(aq\e\(aq にそれ以外の文字を後置したもの\*(dg +(\(aq\e\(aq がない場合と同じように、その文字にマッチする\*(dg)、 +特に意味を持たない文字一つ (その文字にマッチする)。 .\"O A \(aq{\(aq followed by a character other than a digit is an ordinary .\"O character, not the beginning of a bound\*(dg. .\"O It is illegal to end an RE with \(aq\e\(aq. -\(aq{\(aq ¤Ï¿ô»ú°Ê³°¤Îʸ»ú¤¬¸åÃÖ¤µ¤ì¤ë¤ÈÄ̾ï¤Îʸ»ú¤È¤·¤Æ°·¤ï¤ì¡¢ -·«¤êÊÖ¤·»ØÄê¤Î»Ï¤Þ¤ê¤È¤Ï¤µ¤ì¤Ê¤¤\*(dg¡£\(aq\e\(aq -¤Ç½ª¤ï¤ëÀµµ¬É½¸½¤ÏÉÔÀµ¤Ê¤â¤Î¤È¤ß¤Ê¤µ¤ì¤ë¡£ +\(aq{\(aq は数字以外の文字が後置されると通常の文字として扱われ、 +繰り返し指定の始まりとはされない\*(dg。\(aq\e\(aq +で終わる正規表現は不正なものとみなされる。 .PP .\"O A \fIbracket expression\fR is a list of characters enclosed in "\fI[]\fP". .\"O It normally matches any single character from the list (but see below). @@ -192,32 +192,32 @@ POSIX.2 .\"O endpoint, for example, "\fIa-c-e\fP". .\"O Ranges are very collating-sequence-dependent, .\"O and portable programs should avoid relying on them. -\fI¥Ö¥é¥±¥Ã¥Èɽ¸½\fR¤Ï "\fI[]\fP" ¤Ë¤è¤Ã¤ÆÊĤ¸¤é¤ì¤¿Ê¸»ú¤Î¥ê¥¹¥È¤Ç¤¢¤ë¡£ -¤³¤ì¤ÏÄ̾ï¥ê¥¹¥ÈÃæ¤Ë¸ºß¤·¤Æ¤¤¤ëʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -(Îã³°¤¢¤ê¡¢¸å½Ò¡£) ¥ê¥¹¥È¤¬ \(aq^\(aq ¤Ç»Ï¤Þ¤ë¤È¡¢ -\fI¥Ö¥é¥±¥Ã¥Èɽ¸½\fR¤Ï¥ê¥¹¥È¤Ë¸ºß¤·¤Æ\fI¤¤¤Ê¤¤\fRʸ»ú°ì¤Ä¤Ë¥Þ¥Ã¥Á¤¹¤ë -(Îã³°¤¢¤ê¡¢¸å½Ò)¡£ ¥ê¥¹¥ÈÃæ¤ÎÆó¤Ä¤Îʸ»ú¤¬ \(aq\-\(aq ¤Ç¶èÀÚ¤é¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ -¤³¤ì¤Ï¾È¹ç½ç½ø (collating sequence) ¤Ç¤½¤ÎÆó¤Ä¤Îʸ»ú¤Ë¶´¤Þ¤ì¤ë¡¢ -¤¹¤Ù¤Æ¤Îʸ»ú¤ÎʤӤòû½Ì¤·¤¿¤â¤Î¤È¤ß¤Ê¤µ¤ì¤ë (ξü´Þ¤à)¡£ -Î㤨¤Ð "\fI[0\-9]\fP" ¤Ï ASCII ¤Ç¤Ï 10 ¿Ê¤Î¿ô»ú (digit) ¤Î¤¤¤º¤ì¤«¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -Æó¤Ä¤ÎÎΰè»ØÄ꤬üÅÀ¤ò¶¦Í­¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤\*(dg¡£ -¤Ä¤Þ¤ê "\fIa-c-e\fP" ¤Î¤è¤¦¤Ê¤â¤Î¤ÏÉÔÀµ¤Ç¤¢¤ë¡£Îΰè»ØÄê¤Ï¾È¹ç½ç½ø¤Ë¶¯¤¯°Í¸¤¹¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ°Ü¿¢À­¤Î¹â¤¤¥×¥í¥°¥é¥à¤òºî¤ë¾ì¹ç¤Ï¡¢ -Îΰè»ØÄê¤Ë¤ÏÍê¤é¤Ê¤¤¤Û¤¦¤¬Îɤ¤¤À¤í¤¦¡£ +\fIブラケット表現\fRは "\fI[]\fP" によって閉じられた文字のリストである。 +これは通常リスト中に存在している文字にマッチする。 +(例外あり、後述。) リストが \(aq^\(aq で始まると、 +\fIブラケット表現\fRはリストに存在して\fIいない\fR文字一つにマッチする +(例外あり、後述)。 リスト中の二つの文字が \(aq\-\(aq で区切られている場合は、 +これは照合順序 (collating sequence) でその二つの文字に挟まれる、 +すべての文字の並びを短縮したものとみなされる (両端含む)。 +例えば "\fI[0\-9]\fP" は ASCII では 10 進の数字 (digit) のいずれかにマッチする。 +二つの領域指定が端点を共有してはならない\*(dg。 +つまり "\fIa-c-e\fP" のようなものは不正である。領域指定は照合順序に強く依存する。 +したがって移植性の高いプログラムを作る場合は、 +領域指定には頼らないほうが良いだろう。 .PP -¡ÚÌõÃí: ¾È¹ç½ç½ø (collating sequence) ¤È¤¤¤¦¤Î¤Ï¡¢¹ñºÝ²½ -(Internationalization) ¤Ë´ØÏ¢¤·¤¿ÍѸì¤Ç¤¹¡£¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½ç¤Ëñ¸ì¤òÊ -¤Ù¤ëºÝ¤Ë¤Ï¡¢¸À¸ì¤Ë¤è¤Ã¤Æʤ٤ë´ð½à¤¬°Û¤Ê¤ê¤Þ¤¹¡£¾È¹ç½ç½ø¤Ï¡¢¤½¤Îº¹°Û¤ò -µÛ¼ý¤¹¤ë¤¿¤á¤Î»ÅÁȤߤǤ¹¡£ +【訳注: 照合順序 (collating sequence) というのは、国際化 +(Internationalization) に関連した用語です。アルファベット順に単語を並 +べる際には、言語によって並べる基準が異なります。照合順序は、その差異を +吸収するための仕組みです。 .PP -Î㤨¤Ð¡¢¥¹¥Ú¥¤¥ó¸ì¤Ç¤Ï ch ¤È¤¤¤¦Ê¸»úʤӤòÆÃÊÌ°·¤¤¤¹¤ë¤¿¤á¡¢¥¢¥ë¥Õ¥¡¥Ù¥Ã -¥È½ç¤¬ a, b, c, ch, d, e, ... ¤Î½ç¤Ë¤Ê¤ë¤½¤¦¤Ç¤¹¡£¤³¤Î¤è¤¦¤Ê¥·¡¼¥±¥ó¥¹ -¤Î¤³¤È¤ò collating sequence ¤È¸À¤¤¤Þ¤¹¡£¤³¤Î¤È¤­ `ch' ¤È¤¤¤¦Ê¸»úʤӤϡ¢ -ñ¸ìÀ°Îó¤ÎºÝ¤Ë¤¢¤¿¤«¤â¡Ö°ìʸ»ú¡×¤Î¤è¤¦¤Ë°·¤ï¤ì¤Þ¤¹¡£¤³¤³¤Ç¡¢ -½ç½øÉÕ¤±¤ò¹Ô¤¦ºÝ¤ËºÇ¾®¤Îñ°Ì¤È¤Ê¤ë¡¢`a'¡¢`b' ¤Îʸ»ú¤ä -`ch' ¤Î¤è¤¦¤ÊÆÃÊ̤Êʸ»úʤӤʤɡ¢¾È¹ç½ç½ø¤ÎÍ×ÁǤΤ³¤È¤ò -collating element ¤È¸À¤¤¤Þ¤¹¡£collating sequence ¤Ï¡¢Ê¸»úñ°Ì¤Ç¤Ï¤Ê¤¯ -collating element ¤òñ°Ì¤È¤·¤ÆÄêµÁ¤µ¤ì¤Þ¤¹¡£¡Û +例えば、スペイン語では ch という文字並びを特別扱いするため、アルファベッ +ト順が a, b, c, ch, d, e, ... の順になるそうです。このようなシーケンス +のことを collating sequence と言います。このとき `ch' という文字並びは、 +単語整列の際にあたかも「一文字」のように扱われます。ここで、 +順序付けを行う際に最小の単位となる、`a'、`b' の文字や +`ch' のような特別な文字並びなど、照合順序の要素のことを +collating element と言います。collating sequence は、文字単位ではなく +collating element を単位として定義されます。】 .PP .\"O To include a literal \(aq]\(aq in the list, make it the first character .\"O (following a possible \(aq^\(aq). @@ -233,15 +233,15 @@ collating element .\"O With the exception of these and some combinations using \(aq[\(aq (see next .\"O paragraphs), all other special characters, including \(aq\e\(aq, lose their .\"O special significance within a bracket expression. -ʸ»ú \(aq]\(aq ¤½¤Î¤â¤Î¤ò¥ê¥¹¥È¤ËÆþ¤ì¤¿¤¤¾ì¹ç¤Ï¡¢ -ºÇ½é¤Îʸ»ú¤È¤·¤Æ»ØÄꤹ¤ì¤ÐÎɤ¤ (\(aq^\(aq) ¤Î¸å¤Ë³¤±¤ë¤Î¤Ç¤âÎɤ¤)¡£ -ʸ»ú \(aq\-\(aq ¤½¤Î¤â¤Î¤ò¥ê¥¹¥È¤ËÆþ¤ì¤¿¤¤¾ì¹ç¤Ï¡¢ -ºÇ½é¤«ºÇ¸å¤Îʸ»ú¤È¤¹¤ì¤ÐÎɤ¤¡£ -¤¢¤ë¤¤¤ÏÎΰè»ØÄê¤Î½ªÃ¼Ê¸»ú¤È¤·¤Æ»ØÄꤷ¤Æ¤âÎɤ¤¡£ -\(aq\-\(aq ¤òÎΰè»ØÄê¤ÎÀèƬʸ»ú¤Ë»ØÄꤹ¤ë¤Ë¤Ï¡¢"\fI[.\fP" ¤È "\fI.]\fP" ¤Ç°Ï¤Ã¤Æ¡¢ -¾È¹ç½ç½ø¤ÎÍ×ÁÇ (collating element: ¸å½Ò) ¤Ë¤¹¤ì¤ÐÎɤ¤¡£ -¾¤ÎÆüìʸ»ú ( ¤â´Þ¤à) ¤Ï¡¢ -¥Ö¥é¥±¥Ã¥Èɽ¸½¤ÎÆâÉô¤Ç¤Ï¤¹¤Ù¤ÆÄ̾ï¤Îʸ»ú¤È¤·¤Æ°·¤ï¤ì¤ë¡£ +文字 \(aq]\(aq そのものをリストに入れたい場合は、 +最初の文字として指定すれば良い (\(aq^\(aq) の後に続けるのでも良い)。 +文字 \(aq\-\(aq そのものをリストに入れたい場合は、 +最初か最後の文字とすれば良い。 +あるいは領域指定の終端文字として指定しても良い。 +\(aq\-\(aq を領域指定の先頭文字に指定するには、"\fI[.\fP" と "\fI.]\fP" で囲って、 +照合順序の要素 (collating element: 後述) にすれば良い。 +他の特殊文字 ( も含む) は、 +ブラケット表現の内部ではすべて通常の文字として扱われる。 .PP .\"O Within a bracket expression, a collating element (a character, .\"O a multicharacter sequence that collates as if it were a single character, @@ -254,16 +254,16 @@ collating element .\"O for example, if the collating sequence includes a "ch" collating element, .\"O then the RE "\fI[[.ch.]]*c\fP" matches the first five characters .\"O of "chchcc". -¥Ö¥é¥±¥Ã¥Èɽ¸½¤ÎÆâÉô¤Ç¤Ï¡¢"\fI[.\fP" ¤È "\fI.]\fP" ¤Ë°Ï¤ï¤ì¤¿¾È¹ç½ç½ø¤ÎÍ×ÁǤϡ¢ -¤½¤ÎÍ×ÁǤËÂбþ¤¹¤ëʸ»úʤӤòɽ¤¹¡£ -¡Ö¾È¹ç½ç½ø¤ÎÍ×ÁǡפȤϡ¢ -[1] ʸ»ú¡¢ [2] ñ°ìʸ»ú¤Î¤è¤¦¤Ë°·¤ï¤ì¤ëÊ£¿ôʸ»ú¤Î¥·¡¼¥±¥ó¥¹¡¢ -[3] 1, 2 ¤¤¤º¤ì¤«¤ËÂбþ¤¹¤ë¾È¹ç½ç½ø¾å¤Î̾Á°¡¢¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¡£ -¤³¤Î·«¤êÊÖ¤·¤Ï¡¢¥Ö¥é¥±¥Ã¥Èɽ¸½¤Î¥ê¥¹¥È¤Ë¤ª¤±¤ëñ°ì¤ÎÍ×ÁǤȤʤ롣 -¾åµ­ [2] ¤Î¡¢¡ÖÊ£¿ôʸ»ú¤«¤é¤Ê¤ë¾È¹ç½ç½øÍ×Áǡפò´Þ¤à¥Ö¥é¥±¥Ã¥Èɽ¸½¤Ï¡¢ -¤·¤¿¤¬¤Ã¤Æ°ìʸ»ú°Ê¾å¤Ë¥Þ¥Ã¥Á¤¹¤ë¤³¤È¤¬¤¢¤ë¡£ -Î㤨¤Ð¡¢¤â¤·¾È¹ç½ç½ø¤¬ "ch" ¤È¤¤¤¦Í×ÁǤò´Þ¤ó¤Ç¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -Àµµ¬É½¸½ "\fI[[.ch.]]*c\fP" ¤Ï "chchcc" ¤ÎºÇ½é¤Î 5 ʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ +ブラケット表現の内部では、"\fI[.\fP" と "\fI.]\fP" に囲われた照合順序の要素は、 +その要素に対応する文字並びを表す。 +「照合順序の要素」とは、 +[1] 文字、 [2] 単一文字のように扱われる複数文字のシーケンス、 +[3] 1, 2 いずれかに対応する照合順序上の名前、のいずれかである。 +この繰り返しは、ブラケット表現のリストにおける単一の要素となる。 +上記 [2] の、「複数文字からなる照合順序要素」を含むブラケット表現は、 +したがって一文字以上にマッチすることがある。 +例えば、もし照合順序が "ch" という要素を含んでいる場合には、 +正規表現 "\fI[[.ch.]]*c\fP" は "chchcc" の最初の 5 文字にマッチする。 .PP .\"O Within a bracket expression, a collating element enclosed in "\fI[=\fP" and .\"O "\fI=]\fP" is an equivalence class, standing for the sequences of characters @@ -276,24 +276,24 @@ collating element .\"O and "\fI[o\o'o^']\fP" are all synonymous. .\"O An equivalence class may not\*(dg be an endpoint .\"O of a range. -¥Ö¥é¥±¥Ã¥Èɽ¸½¤ÎÆâÉô¤Ç¤Ï¡¢"\fI[=\fP" ¤È "\fI=]\fP" ¤Ë°Ï¤Þ¤ì¤¿¾È¹ç½ç½ø¤ÎÍ×ÁǤϡ¢ -Åù²Á¥¯¥é¥¹ (equivalence class) ¤È¤Ê¤ë¡£ -¤³¤ì¤Ï¡¢¤½¤ÎÍ×ÁǤÈÅù²Á¤ÊÍ×ÁǤ¹¤Ù¤Æ¤«¤é¤Ê¤ëʸ»ú¥·¡¼¥±¥ó¥¹ (¼«¿È¤â´Þ¤à) ¤òɽ¤¹¡£ -¾¤ËÅù²Á¤ÊÍ×ÁǤ¬¤Ê¤±¤ì¤Ð¡¢ -¼è¤ê°·¤¤¤Ï "\fI[.\fP" ¤È "\fI.]\fP" ¤Ç°Ï¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -Î㤨¤Ð o ¤È ou ¤¬Åù²Á¥¯¥é¥¹¤Î¥á¥ó¥Ð¡¼¤Ç¤¢¤ì¤Ð¡¢ -"\fI[[=o=]]\fP", "\fI[[=\o'o^'=]]\fP", "\fI[o\o'o^']\fP" ¤Ï¤¹¤Ù¤ÆƱ¤¸°ÕÌ£¤Ë¤Ê¤ë¡£ -Åù²Á¥¯¥é¥¹¤ÏÎΰè»ØÄê¤ÎüÅÀ¤Ë¤Ï¤Ê¤ì¤Ê¤¤\*(dg¡£ -.\" nippon üËö¤Ç¤Ï \o'o^' ¤¬Àµ¤·¤¯½Ð¤Ê¤¤¤Î¤Ç¡¢Î㼨¤òÊѹ¹¤·¤Þ¤·¤¿¡£ +ブラケット表現の内部では、"\fI[=\fP" と "\fI=]\fP" に囲まれた照合順序の要素は、 +等価クラス (equivalence class) となる。 +これは、その要素と等価な要素すべてからなる文字シーケンス (自身も含む) を表す。 +他に等価な要素がなければ、 +取り扱いは "\fI[.\fP" と "\fI.]\fP" で囲まれている場合と同じである。 +例えば o と ou が等価クラスのメンバーであれば、 +"\fI[[=o=]]\fP", "\fI[[=\o'o^'=]]\fP", "\fI[o\o'o^']\fP" はすべて同じ意味になる。 +等価クラスは領域指定の端点にはなれない\*(dg。 +.\" nippon 端末では \o'o^' が正しく出ないので、例示を変更しました。 .PP .\"O Within a bracket expression, the name of a \fIcharacter class\fR enclosed .\"O in "\fI[:\fP" and "\fI:]\fP" stands for the list .\"O of all characters belonging to that .\"O class. .\"O Standard character class names are: -¥Ö¥é¥±¥Ã¥Èɽ¸½¤ÎÆâÉô¤Ç¤Ï¡¢"\fI[:\fP" ¤È "\fI:]\fP" ¤Ç°Ï¤ï¤ì¤¿\fIʸ»ú¥¯¥é¥¹ -(character class)\fR ¤Ï¤½¤Î¥¯¥é¥¹¤Ë°¤¹¤ë¤¹¤Ù¤Æ¤Îʸ»ú¤Î¥ê¥¹¥È¤òɽ¤¹¡£ -ɸ½à¤ÇÍÑ°Õ¤µ¤ì¤Æ¤¤¤ëʸ»ú¥¯¥é¥¹¤Î̾Á°¤Ï°Ê²¼¤ÎÄ̤ê: +ブラケット表現の内部では、"\fI[:\fP" と "\fI:]\fP" で囲われた\fI文字クラス +(character class)\fR はそのクラスに属するすべての文字のリストを表す。 +標準で用意されている文字クラスの名前は以下の通り: .PP .RS .nf @@ -309,11 +309,11 @@ cntrl print xdigit .\"O .BR wctype (3). .\"O A locale may provide others. .\"O A character class may not be used as an endpoint of a range. -¤³¤ì¤é¤Ï +これらは .BR wctype (3) -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëʸ»ú¥¯¥é¥¹¤òɽ¤·¤Æ¤¤¤ë¡£¥í¥±¡¼¥ë (locale) ¤Ë¤è¤Ã¤Æ¡¢ -¤³¤ì¤é°Ê³°¤Î¥¯¥é¥¹¤¬ÄêµÁ¤µ¤ì¤ë¤³¤È¤â¤¢¤ë¡£ -ʸ»ú¥¯¥é¥¹¤ÏÎΰè»ØÄê¤ÎüÅÀ¤Ë¤Ï¤Ê¤ì¤Ê¤¤¡£ +で定義されている文字クラスを表している。ロケール (locale) によって、 +これら以外のクラスが定義されることもある。 +文字クラスは領域指定の端点にはなれない。 .\" .PP .\"O .\" As per http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=295666 .\"O .\" The following does not seem to apply in the glibc implementation @@ -333,22 +333,22 @@ cntrl print xdigit .\"O .\" compatible with but not specified by POSIX.2, .\"O .\" and should be used with .\"O .\" caution in software intended to be portable to other systems. -.\" http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=295666 ¤Ë¤¢¤ë¤è¤¦¤Ë -.\" °Ê²¼¤Îµ­ºÜ¤Ï glibc ¤Î¼ÂÁõ¤Ë¤Ï¤¢¤Æ¤Ï¤Þ¤é¤Ê¤¤¤è¤¦¤Ç¤¢¤ë¡£ -.\" ¥Ö¥é¥±¥Ã¥Èɽ¸½¤Ë¤Ï¡¢Æüì¤Ê°ÕÌ£¤ò»ý¤Ä¤â¤Î¤¬Æó¤Ä¸ºß¤¹¤ë\*(dg¡£ -.\" ¥Ö¥é¥±¥Ã¥Èɽ¸½ "\fI[[:<:]]\fP" ¤Ï¥ï¡¼¥É (word) ÀèƬ¤Î¥Ì¥ëʸ»úÎó¤Ë¡¢ -.\" "\fI[[:>:]]\fP" ¤Ï¥ï¡¼¥ÉËöÈø¤Î¥Ì¥ëʸ»úÎó¤Ë¤½¤ì¤¾¤ì¥Þ¥Ã¥Á¤¹¤ë¡£ -.\" ¥ï¡¼¥É¤È¤Ï¥ï¡¼¥Éʸ»ú¤ÎʤӤǤ¢¤ê¡¢ -.\" ¥ï¡¼¥Éʸ»ú¤¬Á°ÃÖ¤â¸åÃ֤⤵¤ì¤Æ¤¤¤Ê¤¤¤â¤Î¤Ç¤¢¤ë¡£ -.\" ¥ï¡¼¥Éʸ»ú¤Ï +.\" http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=295666 にあるように +.\" 以下の記載は glibc の実装にはあてはまらないようである。 +.\" ブラケット表現には、特殊な意味を持つものが二つ存在する\*(dg。 +.\" ブラケット表現 "\fI[[:<:]]\fP" はワード (word) 先頭のヌル文字列に、 +.\" "\fI[[:>:]]\fP" はワード末尾のヌル文字列にそれぞれマッチする。 +.\" ワードとはワード文字の並びであり、 +.\" ワード文字が前置も後置もされていないものである。 +.\" ワード文字は .\" .I alnum -.\" ʸ»ú +.\" 文字 .\" .RB ( wctype (3) -.\" ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë) ¤ª¤è¤Ó¥¢¥ó¥À¡¼¥¹¥³¥¢ `_' ¤Ç¤¢¤ë¡£ -.\" ¤³¤ì¤Ï³ÈÄ¥µ­Ë¡¤Ç¤¢¤ê¡¢POSIX.2 ¤ËÈ¿¤·¤Æ¤Ï¤¤¤Ê¤¤¤¬¡¢ -.\" ÄêµÁ¤â¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.\" ¾¤Î¥·¥¹¥Æ¥à¤È¸ß´¹À­¤ò³ÎÊݤ·¤¿¤¤¥½¥Õ¥È¥¦¥§¥¢¤Ç¤Ï¡¢ -.\" Ãí°Õ¤·¤ÆÍѤ¤¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¡£ +.\" で定義されている) およびアンダースコア `_' である。 +.\" これは拡張記法であり、POSIX.2 に反してはいないが、 +.\" 定義もされていない。 +.\" 他のシステムと互換性を確保したいソフトウェアでは、 +.\" 注意して用いるようにすること。 .PP .\"O In the event that an RE could match more than one substring of a given .\"O string, @@ -361,16 +361,16 @@ cntrl print xdigit .\"O ones starting later. .\"O Note that higher-level subexpressions thus take priority over .\"O their lower-level component subexpressions. -Àµµ¬É½¸½¤¬¡¢Í¿¤¨¤é¤ì¤¿Ê¸»úÎó¤ÎÊ£¿ô¤ÎÉôʬʸ»úÎó -(substring) ¤Ë¥Þ¥Ã¥Á¤Ç¤­¤ë¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï¡¢ -ºÇ¤âÀèƬ¤Î¶á¤¯¤«¤é»Ï¤Þ¤ë¤â¤Î¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -¤½¤Î°ÌÃÖ¤«¤é»Ï¤Þ¤ê¡¢Àµµ¬É½¸½¤¬¥Þ¥Ã¥Á¤Ç¤­¤ëÉôʬʸ»úÎó¤¬Ê£¿ô¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢ -ºÇŤΤâ¤Î¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -ÉôʬÀµµ¬É½¸½ (subexpression) ¤âºÇ¤âŤ¤Éôʬʸ»úÎó¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -¤¿¤À¤·¡¢Á´ÂΤΥޥåÁ¤¬ºÇŤǤ¢¤ë¤è¤¦¤Ë¡¢¤È¤¤¤¦¾ò·ï¤¬Í¥À褵¤ì¤ë¡£ -Àµµ¬É½¸½¤ÎÃæ¤ÇÀè¤Ë¸½¤ì¤ëÉôʬÀµµ¬É½¸½¤Ï¡¢¸å¤Ë¸½¤ì¤ë¤â¤Î¤è¤êÍ¥À褵¤ì¤ë¡£ -¤¿¤À¤·¡¢¤è¤ê¹â°Ì¤ÎÉôʬÀµµ¬É½¸½¤Ï¡¢ -¤½¤ì¤ò¹½À®¤¹¤ëÄã°Ì¤ÎÉôʬÀµµ¬É½¸½¤è¤ê¤âÍ¥À褵¤ì¤ë¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +正規表現が、与えられた文字列の複数の部分文字列 +(substring) にマッチできるような場合には、 +最も先頭の近くから始まるものにマッチする。 +その位置から始まり、正規表現がマッチできる部分文字列が複数ある場合には、 +最長のものにマッチする。 +部分正規表現 (subexpression) も最も長い部分文字列にマッチする。 +ただし、全体のマッチが最長であるように、という条件が優先される。 +正規表現の中で先に現れる部分正規表現は、後に現れるものより優先される。 +ただし、より高位の部分正規表現は、 +それを構成する低位の部分正規表現よりも優先されることに注意すること。 .PP .\"O Match lengths are measured in characters, not collating elements. .\"O A null string is considered longer than no match at all. @@ -383,14 +383,14 @@ cntrl print xdigit .\"O when "\fI(a*)*\fP" is matched against "bc" .\"O both the whole RE and the parenthesized .\"O subexpression match the null string. -¥Þ¥Ã¥ÁĹ¤Ï¾È¹ç½ç½ø¤ÎÍ×ÁǤǤϤʤ¯¡¢Ê¸»ú¿ô¤òñ°Ì¤È¤·¤Æ¥«¥¦¥ó¥È¤µ¤ì¤ë¡£ -null ʸ»úÎó¤Ï¡¢Á´¤¯¥Þ¥Ã¥Á¤·¤Ê¤«¤Ã¤¿¾ì¹ç¤è¤ê¤âŤ¤¤È¤ß¤Ê¤µ¤ì¤ë¡£ -Î㤨¤Ð "\fIbb*\fP" ¤Ï "abbbc" ¤Î¤Þ¤óÃæ¤Î 3 ʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -"\fI(wee|week)(knights|nights)\fP" ¤Ï "weeknights" ¤ÎÁ´ÂΤ˥ޥåÁ¤¹¤ë¡£ -"\fI(.*).*\fP" ¤ò "abc" ¤Ë¥Þ¥Ã¥Á¤µ¤»¤ë¤È¡¢ -³ç¸Ì¤ÎÆâÉô¤ÎÉôʬÀµµ¬É½¸½¤¬ 3 ʸ»ú¤¹¤Ù¤Æ¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -"\fI(a*)*\fP" ¤ò "bc" ¤Ë¥Þ¥Ã¥Á¤µ¤»¤ë¤È¡¢Àµµ¬É½¸½Á´ÂΤ⡢ -³ç¸Ì¤Ç³ç¤é¤ì¤¿ÉôʬÀµµ¬É½¸½¤â null ʸ»úÎó¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ +マッチ長は照合順序の要素ではなく、文字数を単位としてカウントされる。 +null 文字列は、全くマッチしなかった場合よりも長いとみなされる。 +例えば "\fIbb*\fP" は "abbbc" のまん中の 3 文字にマッチする。 +"\fI(wee|week)(knights|nights)\fP" は "weeknights" の全体にマッチする。 +"\fI(.*).*\fP" を "abc" にマッチさせると、 +括弧の内部の部分正規表現が 3 文字すべてにマッチする。 +"\fI(a*)*\fP" を "bc" にマッチさせると、正規表現全体も、 +括弧で括られた部分正規表現も null 文字列にマッチする。 .PP .\"O If case-independent matching is specified, .\"O the effect is much as if all case distinctions had vanished from the @@ -402,26 +402,26 @@ null ʸ .\"O When it appears inside a bracket expression, all case counterparts .\"O of it are added to the bracket expression, so that, for example, "\fI[x]\fP" .\"O becomes "\fI[xX]\fP" and "\fI[^x]\fP" becomes "\fI[^xX]\fP". -¥Þ¥Ã¥Á¤¬Âçʸ»ú¡¦¾®Ê¸»ú¤ò̵»ë¤¹¤ë¤è¤¦¤Ë»ØÄꤵ¤ì¤ë¤È¡¢ -¥¢¥ë¥Õ¥¡¥Ù¥Ã¥ÈÁ´ÂΤ«¤éÂ羮ʸ»ú¤Î¶èÊ̤¬Ìµ¤¯¤Ê¤Ã¤¿¤«¤Î¤è¤¦¤Ê¸ú²Ì¤È¤Ê¤ë¡£ -Âçʸ»ú¡¦¾®Ê¸»ú¤ò»ý¤Ä¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤¬¥Ö¥é¥±¥Ã¥Èɽ¸½¤Î³°Éô¤Ç -Ä̾ï¤Îʸ»ú¤È¤·¤Æ¸½¤ì¤ë¤È¡¢ -¤³¤ì¤Ï¼Â¸úŪ¤ËÂ羮ξÊý¤Îʸ»ú¤Î¥Ö¥é¥±¥Ã¥Èɽ¸½¤Î¤è¤¦¤ËÊÑ´¹¤µ¤ì¤ë¡£ -¤¹¤Ê¤ï¤Á \(aqx\(aq ¤Ï "\fI[xX]\fP" ¤È¤Ê¤ë¡£¥Ö¥é¥±¥Ã¥Èɽ¸½¤ÎÆâÉô¤Ë¸½¤ì¤ë¤È¡¢ -Âçʸ»ú¤Ê¤é¾®Ê¸»ú¤¬¡¢¾®Ê¸»ú¤Ê¤éÂçʸ»ú¤¬¤½¤Î¥Ö¥é¥±¥Ã¥Èɽ¸½¤Ë²Ã¤¨¤é¤ì¤ë¡£ -¤¹¤Ê¤ï¤Á -"\fI[x]\fP" ¤Ï "\fI[xX]\fP" ¤Ë¡¢"\fI[^x]\fP" ¤Ï "\fI[^xX]\fP" ¤Ë¤Ê¤ë¡£ +マッチが大文字・小文字を無視するように指定されると、 +アルファベット全体から大小文字の区別が無くなったかのような効果となる。 +大文字・小文字を持つアルファベットがブラケット表現の外部で +通常の文字として現れると、 +これは実効的に大小両方の文字のブラケット表現のように変換される。 +すなわち \(aqx\(aq は "\fI[xX]\fP" となる。ブラケット表現の内部に現れると、 +大文字なら小文字が、小文字なら大文字がそのブラケット表現に加えられる。 +すなわち +"\fI[x]\fP" は "\fI[xX]\fP" に、"\fI[^x]\fP" は "\fI[^xX]\fP" になる。 .PP .\"O No particular limit is imposed on the length of REs\*(dg. .\"O Programs intended to be portable should not employ REs longer .\"O than 256 bytes, .\"O as an implementation can refuse to accept such REs and remain .\"O POSIX-compliant. -Àµµ¬É½¸½¤ÎŤµ¤Ë¤ÏÆäËÀ©¸Â¤Ï¤Ê¤¤\*(dg¡£ -¤¿¤À¤·°Ü¿¢À­¤ò¹â¤¯¤·¤¿¤¤¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ -256 ¥Ð¥¤¥È¤è¤êŤ¤Àµµ¬É½¸½¤Ï¼Â¹Ô¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤Û¤¦¤¬Îɤ¤¡£ -¤Ê¤¼¤Ê¤é¡¢¤½¤Î¤è¤¦¤ÊÀµµ¬É½¸½¤òµñÈݤ·¡¢ -¤·¤«¤â POSIX ¸ß´¹¤òÊݤĤ褦¤Ê¼ÂÁõ¤¬²Äǽ¤À¤«¤é¤Ç¤¢¤ë¡£ +正規表現の長さには特に制限はない\*(dg。 +ただし移植性を高くしたいプログラムでは、 +256 バイトより長い正規表現は実行しないようにするほうが良い。 +なぜなら、そのような正規表現を拒否し、 +しかも POSIX 互換を保つような実装が可能だからである。 .PP .\"O Obsolete ("basic") regular expressions differ in several respects. .\"O \(aq|\(aq, \(aq+\(aq, and \(aq?\(aq are @@ -438,20 +438,20 @@ null ʸ .\"O and \(aq*\(aq is an ordinary character if it appears at the beginning of the .\"O RE or the beginning of a parenthesized subexpression .\"O (after a possible leading \(aq^\(aq). -¸Å¤¤ ("´ðËÜ") Àµµ¬É½¸½¤Ï¡¢¤¤¤¯¤Ä¤«¤ÎÅÀ¤Ë¤ª¤¤¤Æ°Û¤Ê¤ë¡£ -\(aq|\(aq, \(aq+\(aq, and \(aq?\(aq ¤ÏÄ̾ï¤Îʸ»ú¤È¤Ê¤ë¡£ -Âбþ¤¹¤ëµ¡Ç½¤Ï¸ºß¤·¤Ê¤¤¡£·«¤êÊÖ¤·»ØÄê¤Î¶èÀÚ¤ê¤Ï -"\fI\e{\fP" ¤ª¤è¤Ó "\fI\e}\fP" ¤È¤Ê¤ë¡£\(aq{\(aq ¤È \(aq}\(aq ¤Ï¡¢ -ñÆȤǤÏÄ̾ï¤Îʸ»ú¤È¤·¤Æ°·¤ï¤ì¤ë¡£ -ÉôʬÀµµ¬É½¸½¤ò¥Í¥¹¥È¤¹¤ë³ç¸Ì¤Ï "\fI\e(\fP" ¤ª¤è¤Ó "\fI\e)\fP" ¤È¤Ê¤ê¡¢ -\(aq(\(aq ¤È \(aq)\(aq ¤ÏñÆȤǤÏÄ̾ï¤Îʸ»ú¤È¤Ê¤ë¡£ -\(aq^\(aq ¤ÏÀµµ¬É½¸½¤ÎÀèƬ¤«¡¢ -³ç¸Ì¤Ç¤¯¤¯¤é¤ì¤¿Éôʬɽ¸½¤ÎÀèƬ\*(dg¤ò½ü¤¤¤ÆÄ̾ï¤Îʸ»ú¤È¤Ê¤ë¡£ -\(aq$\(aq ¤ÏÀµµ¬É½¸½¤ÎËöÈø¤«¡¢ -³ç¸Ì¤Ç¤¯¤¯¤é¤ì¤¿ÉôʬÀµµ¬É½¸½¤ÎËöÈø\*(dg¤ò½ü¤¤¤ÆÄ̾ï¤Îʸ»ú¤È¤Ê¤ë¡£ -\(aq*\(aq ¤Ï¡¢Àµµ¬É½¸½¤ÎÀèƬ¤«¡¢ -³ç¸Ì¤Ç¤¯¤¯¤é¤ì¤¿Éôʬʸ»úÎó¤ÎÀèƬ¤ËÃÖ¤«¤ì¤¿¾ì¹ç¤ÏÄ̾ï¤Îʸ»ú¤È¤Ê¤ë -(\(aq^\(aq) ¤¬Á°ÃÖ¤µ¤ì¤Æ¤¤¤Æ¤â¤è¤¤)¡£ +古い ("基本") 正規表現は、いくつかの点において異なる。 +\(aq|\(aq, \(aq+\(aq, and \(aq?\(aq は通常の文字となる。 +対応する機能は存在しない。繰り返し指定の区切りは +"\fI\e{\fP" および "\fI\e}\fP" となる。\(aq{\(aq と \(aq}\(aq は、 +単独では通常の文字として扱われる。 +部分正規表現をネストする括弧は "\fI\e(\fP" および "\fI\e)\fP" となり、 +\(aq(\(aq と \(aq)\(aq は単独では通常の文字となる。 +\(aq^\(aq は正規表現の先頭か、 +括弧でくくられた部分表現の先頭\*(dgを除いて通常の文字となる。 +\(aq$\(aq は正規表現の末尾か、 +括弧でくくられた部分正規表現の末尾\*(dgを除いて通常の文字となる。 +\(aq*\(aq は、正規表現の先頭か、 +括弧でくくられた部分文字列の先頭に置かれた場合は通常の文字となる +(\(aq^\(aq) が前置されていてもよい)。 .PP .\"O Finally, there is one new type of atom, a \fIback reference\fR: .\"O \(aq\e\(aq followed by a nonzero decimal digit \fId\fR @@ -460,29 +460,29 @@ null ʸ .\"O (numbering subexpressions by the positions of their opening parentheses, .\"O left to right), .\"O so that, for example, "\fI\e([bc]\e)\e1\fP" matches "bb" or "cc" but not "bc". -ºÇ¸å¤Ë¡¢¥¢¥È¥à¤È¤·¤ÆÊ̤Υ¿¥¤¥×¤¬Â¸ºß¤¹¤ë¡£ -\fI¸åÊý»²¾È (back reference)\fR ¤Ç¤¢¤ë¡£ -\(aq\e\(aq ¤Î¸å¤Ë 0 ¤Ç¤Ê¤¤ 10 ¿Ê¿ôÃÍʸ»ú \fId\fR ¤¬Â³¤¯¤È¡¢ -³ç¸Ì¤Ç¤¯¤¯¤é¤ì¤¿ÉôʬÀµµ¬É½¸½¤Î -\fId\fR ÈÖÌܤ˥ޥåÁ¤·¤¿Ê¸»úʤӤÈƱ¤¸¤â¤Î¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -(ÉôʬÀµµ¬É½¸½¤ÎÈÖ¹æÉÕ¤±¤Ï¡¢ -³«¤­³ç¸Ì `(' ¤Î°ÌÃÖ¤¬º¸¤Î¤â¤Î¤«¤é±¦¤Î¤â¤Î¤Ø¸þ¤«¤Ã¤Æ¤Ê¤µ¤ì¤ë¡£) -¤·¤¿¤¬¤Ã¤Æ "\fI\e([bc]\e)\e1\fP" ¤Ï -"bb" ¤Þ¤¿¤Ï "cc" ¤Ë¤Ï¥Þ¥Ã¥Á¤¹¤ë¤¬¡¢"bc" ¤Ë¤Ï¥Þ¥Ã¥Á¤·¤Ê¤¤¡£ +最後に、アトムとして別のタイプが存在する。 +\fI後方参照 (back reference)\fR である。 +\(aq\e\(aq の後に 0 でない 10 進数値文字 \fId\fR が続くと、 +括弧でくくられた部分正規表現の +\fId\fR 番目にマッチした文字並びと同じものにマッチする。 +(部分正規表現の番号付けは、 +開き括弧 `(' の位置が左のものから右のものへ向かってなされる。) +したがって "\fI\e([bc]\e)\e1\fP" は +"bb" または "cc" にはマッチするが、"bc" にはマッチしない。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Having two kinds of REs is a botch. -Àµµ¬É½¸½¤¬ 2 ¼ïÎढ¤ë¤Î¤Ï³Ê¹¥°­¤¤¡£ +正規表現が 2 種類あるのは格好悪い。 .PP .\"O The current POSIX.2 spec says that \(aq)\(aq is an ordinary character in .\"O the absence of an unmatched \(aq(\(aq; .\"O this was an unintentional result of a wording error, .\"O and change is likely. .\"O Avoid relying on it. -¸½ºß¤Î POSIX.2 µ¬³Ê¤Ë¤ª¤¤¤Æ¤Ï¡¢\(aq)\(aq ¤Ï¡¢ -Âбþ¤¹¤ë \(aq(\(aq ¤¬¤Ê¤¤¾ì¹ç¤Ë¤ÏÄ̾ï¤Îʸ»ú¤È¤·¤Æ°·¤ï¤ì¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤·¤«¤·¤³¤ì¤Ï¡¢ËÜÍè¤Î°Õ¿Þ¤È¤Ï°Û¤Ê¤ëµ­½Ò¾å¤Î¥¨¥é¡¼¤Ç¤¢¤ê¡¢ -½¤Àµ¤µ¤ì¤ë²ÄǽÀ­¤¬¹â¤¤¡£¤³¤ì¤Ë°Í¸¤·¤¿¥³¡¼¥É¤Ï»È¤ï¤Ê¤¤¤³¤È¡£ +現在の POSIX.2 規格においては、\(aq)\(aq は、 +対応する \(aq(\(aq がない場合には通常の文字として扱われることになっている。 +しかしこれは、本来の意図とは異なる記述上のエラーであり、 +修正される可能性が高い。これに依存したコードは使わないこと。 .PP .\"O Back references are a dreadful botch, .\"O posing major problems for efficient implementations. @@ -490,33 +490,33 @@ null ʸ .\"O (does .\"O "\fIa\e(\e(b\e)*\e2\e)*d\fP" match "abbbd"?). .\"O Avoid using them. -¸åÊý»²¾È¤Ï¤Ò¤É¤¯½ÐÍè¤Î°­¤¤Âåʪ¤Ç¤¢¤ë¡£ -¸úΨ¤ÎÎɤ¤¼ÂÁõ¤ò¤¹¤ë¤Î¤Ï¤È¤Æ¤âÆñ¤·¤¤¡£ -¤Þ¤¿ÄêµÁ¤¬¤¢¤¤¤Þ¤¤¤Ç¤¢¤ë¡£ -("\fIa\e(\e(b\e)*\e2\e)*d\fP" ¤Ï "abbbd" ¤Ë¥Þ¥Ã¥Á¤¹¤ë¤È»×¤¦¤«¡©) -»È¤ï¤Ê¤¤¤Û¤¦¤¬Îɤ¤¡£ +後方参照はひどく出来の悪い代物である。 +効率の良い実装をするのはとても難しい。 +また定義があいまいである。 +("\fIa\e(\e(b\e)*\e2\e)*d\fP" は "abbbd" にマッチすると思うか?) +使わないほうが良い。 .PP .\"O POSIX.2's specification of case-independent matching is vague. .\"O The "one case implies all cases" definition given above .\"O is current consensus among implementors as to the right interpretation. -POSIX.2 ¤Îµ¬³Ê¤Ç¤Ï¡¢case (Âçʸ»ú¤«¾®Ê¸»ú¤«) -¤Ë°Í¸¤·¤Ê¤¤¥Þ¥Ã¥Á¤Îµ­½Ò¤¬¤¢¤¤¤Þ¤¤¤Ç¤¢¤ë¡£ -¸½ºß¤Î¤È¤³¤í¤Ç¤Ï¡Ö°ì¤Ä¤Î case ¤¬¤¹¤Ù¤Æ¤Î case ¤ò°ÕÌ£¤¹¤ë¡× -¤È¤¤¤¦¾åµ­¤ÎÄêµÁ¤¬Àµ¤·¤¤²ò¼á¤Ç¤¢¤ë¤È¤¤¤¦¤Î¤¬¡¢ -¼ÂÁõ¼Ô¤Î´Ö¤Ç¤Î¶¦ÄÌǧ¼±¤Î¤è¤¦¤Ç¤¢¤ë¡£ +POSIX.2 の規格では、case (大文字か小文字か) +に依存しないマッチの記述があいまいである。 +現在のところでは「一つの case がすべての case を意味する」 +という上記の定義が正しい解釈であるというのが、 +実装者の間での共通認識のようである。 .\" As per http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=295666 .\" The following does not seem to apply in the glibc implementation .\" .PP .\"O .\" The syntax for word boundaries is incredibly ugly. -.\" ¥ï¡¼¥É¶­³¦¤Ë´Ø¤¹¤ëʸˡÄêµÁ¤¬Èó¾ï¤Ë½¹¤¤¡£ +.\" ワード境界に関する文法定義が非常に醜い。 .\"O .SH AUTHOR -.SH Ãø¼Ô +.SH 著者 .\" Sigh... The page license means we must have the author's name .\" in the formatted output. .\"O This page was taken from Henry Spencer's regex package. -¤³¤Î¥Ú¡¼¥¸¤Ï Henry Spencer ¤Î regex ¥Ñ¥Ã¥±¡¼¥¸¤«¤éºÎÏ¿¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +このページは Henry Spencer の regex パッケージから採録したものである。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR grep (1), .BR regex (3) .PP diff --git a/draft/man7/rtnetlink.7 b/draft/man7/rtnetlink.7 index e524cb69..5ed33d28 100644 --- a/draft/man7/rtnetlink.7 +++ b/draft/man7/rtnetlink.7 @@ -12,17 +12,17 @@ .\" Japanese Version Copyright (c) 1999 NAKANO Takeo all rights reserved. .\" Translated Mon 6 Dec 1999 by NAKANO Takeo .\" -.\"WORD queueing dicipline ¥­¥å¡¼¥¤¥ó¥°(¤Î)¥ë¡¼¥ë -.\"WORD permanent ±Ê³Ū¤Ê -.\"WORD neighbor ¶á˵ +.\"WORD queueing dicipline キューイング(の)ルール +.\"WORD permanent 永続的な +.\"WORD neighbor 近傍 .\" .TH RTNETLINK 7 2008-08-08 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O rtnetlink, NETLINK_ROUTE \- Linux IPv4 routing socket -.SH ̾Á° -rtnetlink, NETLINK_ROUTE \- Linux IPv4 ¥ë¡¼¥Æ¥£¥ó¥°¥½¥±¥Ã¥È +.SH 名前 +rtnetlink, NETLINK_ROUTE \- Linux IPv4 ルーティングソケット .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include @@ -33,7 +33,7 @@ rtnetlink, NETLINK_ROUTE \- Linux IPv4 .sp .BI "rtnetlink_socket = socket(AF_NETLINK, int " socket_type ", NETLINK_ROUTE);" .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Rtnetlink allows the kernel's routing tables to be read and altered. .\"O It is used within the kernel to communicate between .\"O various subsystems, though this usage is not documented here, and for @@ -47,25 +47,25 @@ rtnetlink, NETLINK_ROUTE \- Linux IPv4 .\"O .BR netlink (7) .\"O for more information. .B rtnetlink -¤Ï¥«¡¼¥Í¥ë¤Î¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤òÆɤó¤À¤êÊѹ¹¤·¤¿¤ê -¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£¤³¤ì¤Ï¥«¡¼¥Í¥ë¤¬ÆâÉô¤Î¥µ¥Ö¥·¥¹¥Æ¥à¤È -ÄÌ¿®¤¹¤ë¤¿¤á¤Ë¤âÍѤ¤¤é¤ì¤Æ¤¤¤ë¤¬¡¢¤½¤ì¤Ï¤³¤³¤Ç¤Ïµ­½Ò¤·¤Ê¤¤¡£ -¤³¤Î man ¥Ú¡¼¥¸¤Ç¤Ï¥æ¡¼¥¶¡¼¶õ´Ö¤Î¥×¥í¥°¥é¥à¤È¤ÎÄÌ¿®¤Ë´Ø¤·¤Æ¤Î¤ß½Ò¤Ù¤ë¡£ -¥Í¥Ã¥È¥ï¡¼¥¯·ÐÏ©¡¦IP ¥¢¥É¥ì¥¹¡¦¥ê¥ó¥¯¥Ñ¥é¥á¡¼¥¿¡¦ -¶á˵ÀßÄê (neighbor setup)¡¦¥­¥å¡¼¥¤¥ó¥°¥ë¡¼¥ë (queueing dicipline)¡¦ -¥È¥é¥Õ¥£¥Ã¥¯¥¯¥é¥¹¡¦¥Ñ¥±¥Ã¥È¤Î¥¯¥é¥¹Ê¬Îà¤Ê¤É¤¬¡¢¤¹¤Ù¤Æ +はカーネルのルーティングテーブルを読んだり変更したり +するためのものである。これはカーネルが内部のサブシステムと +通信するためにも用いられているが、それはここでは記述しない。 +この man ページではユーザー空間のプログラムとの通信に関してのみ述べる。 +ネットワーク経路・IP アドレス・リンクパラメータ・ +近傍設定 (neighbor setup)・キューイングルール (queueing dicipline)・ +トラフィッククラス・パケットのクラス分類などが、すべて .B NETLINK_ROUTE -¥½¥±¥Ã¥È¤òÄ̤·¤ÆÀ©¸æ¤Ç¤­¤ë¡£ +ソケットを通して制御できる。 .B rtnetlink -¤Ï netlink ¥á¥Ã¥»¡¼¥¸¤ò¥Ù¡¼¥¹¤Ë¤·¤Æ¤¤¤ë¡£¾ÜºÙ¤Ï +は netlink メッセージをベースにしている。詳細は .BR netlink (7) -¤ò¸«¤ë¤³¤È¡£ +を見ること。 .\" FIXME ? all these macros could be moved to rtnetlink(3) .\"O .SS "Routing Attributes" -.SS ¥ë¡¼¥Æ¥£¥ó¥°Â°À­ +.SS ルーティング属性 .\"O Some rtnetlink messages have optional attributes after the initial header: -rtnetlink ¥á¥Ã¥»¡¼¥¸¤Ë¤Ï¡¢½é´ü¥Ø¥Ã¥À¤Î¸å¤ËÉÕ²ÃŪ¤Ê°À­¤ò -»ý¤Ä¤â¤Î¤¬¤¢¤ë¡£ +rtnetlink メッセージには、初期ヘッダの後に付加的な属性を +持つものがある。 .in +4n .nf @@ -80,16 +80,16 @@ struct rtattr { .\"O These attributes should be only manipulated using the RTA_* macros .\"O or libnetlink, see .\"O .BR rtnetlink (3). -¤³¤ì¤é¤Î°À­¤ÎÁàºî¤Ï¡¢ RTA_* ¥Þ¥¯¥í¤« libnetlink ¤òÄ̤·¤Æ¤Î¤ß -¹Ô¤¦¤Ù¤­¤Ç¤¢¤ë¡£ +これらの属性の操作は、 RTA_* マクロか libnetlink を通してのみ +行うべきである。 .BR rtnetlink (3) -¤ò¸«¤è¡£ +を見よ。 .\"O .SS Messages -.SS ¥á¥Ã¥»¡¼¥¸ +.SS メッセージ .\"O Rtnetlink consists of these message types .\"O (in addition to standard netlink messages): -rtnetlink ¤Ï (ɸ½àŪ¤Ê netlink ¥á¥Ã¥»¡¼¥¸¤Ë²Ã¤¨¤Æ) -°Ê²¼¤Î¥á¥Ã¥»¡¼¥¸¥¿¥¤¥×¤«¤é¹½À®¤µ¤ì¤ë¡£ +rtnetlink は (標準的な netlink メッセージに加えて) +以下のメッセージタイプから構成される。 .TP .BR RTM_NEWLINK ", " RTM_DELLINK ", " RTM_GETLINK .\"O Create, remove or get information about a specific network interface. @@ -98,12 +98,12 @@ rtnetlink .\"O structure followed by a series of .\"O .I rtattr .\"O structures. -»ØÄꤷ¤¿¥Í¥Ã¥È¥ï¡¼¥¯¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¾ðÊó¤ò¡¢À¸À®¡¦ºï½ü¡¦¼èÆÀ¤¹¤ë¡£ -¤³¤ì¤é¤Î¥á¥Ã¥»¡¼¥¸¤Ï +指定したネットワークインターフェースの情報を、生成・削除・取得する。 +これらのメッセージは .I ifinfomsg -¹½Â¤ÂΤȡ¢¤½¤ì¤Ë³¤¤¤Æ¤¤¤¯¤Ä¤«¤Î +構造体と、それに続いていくつかの .I rtattr -¹½Â¤ÂΤòȼ¤¦¡£ +構造体を伴う。 .nf struct ifinfomsg { @@ -124,14 +124,14 @@ struct ifinfomsg { .\"O .I ifi_change .\"O is reserved for future use and should be always set to 0xFFFFFFFF. .I ifi_flags -¤Ï¥Ç¥Ð¥¤¥¹¤Î¥Õ¥é¥°¤Ç¤¢¤ë¡£ +はデバイスのフラグである。 .BR netdevice (7) -¤ò¸«¤è¡£ +を見よ。 .I ifi_index -¤Ï¾¤È½Å¤Ê¤é¤Ê¤¤¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î index ¤Ç¤¢¤ë¡£ +は他と重ならないインターフェースの index である。 .I ifi_change -¤Ï¾­Íè¤ÎÍøÍѤΤ¿¤á¤ËͽÌ󤵤ì¤Æ¤ª¤ê¡¢¾ï¤Ë -0xFFFFFFFF ¤Ë¥»¥Ã¥È¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +は将来の利用のために予約されており、常に +0xFFFFFFFF にセットすべきである。 .TS tab(:); c @@ -149,27 +149,27 @@ l l l. .\"O IFLA_STATS:T{ .\"O see below .\"O T}:Interface Statistics. -¥ë¡¼¥Æ¥£¥ó¥°Â°À­ -rta_type:Ãͤη¿:ÀâÌÀ +ルーティング属性 +rta_type:値の型:説明 _ -IFLA_UNSPEC:-:»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +IFLA_UNSPEC:-:指定されていない。 IFLA_ADDRESS:hardware address:T{ -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ L2 ¥¢¥É¥ì¥¹ +インターフェース L2 アドレス T} IFLA_BROADCAST:hardware address:T{ -L2 ¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹ +L2 ブロードキャストアドレス T} -IFLA_IFNAME:asciiz string:¥Ç¥Ð¥¤¥¹Ì¾ -IFLA_MTU:unsigned int:¥Ç¥Ð¥¤¥¹¤Î MTU -IFLA_LINK:int:¥ê¥ó¥¯¥¿¥¤¥× -IFLA_QDISC:asciiz string:¥­¥å¡¼¥¤¥ó¥°¤Î¥ë¡¼¥ë +IFLA_IFNAME:asciiz string:デバイス名 +IFLA_MTU:unsigned int:デバイスの MTU +IFLA_LINK:int:リンクタイプ +IFLA_QDISC:asciiz string:キューイングのルール IFLA_STATS:T{ -²¼µ­»²¾È -T}:¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÎÅý·× +下記参照 +T}:インターフェースの統計 .TE .sp .\"O The value type for IFLA_STATS is \fIstruct net_device_stats\fP. -IFLA_STATS ¤ÎÃͤη¿¤Ï \fIstruct net_device_stats\fP ¤Ç¤¢¤ë¡£ +IFLA_STATS の値の型は \fIstruct net_device_stats\fP である。 .TP .BR RTM_NEWADDR ", " RTM_DELADDR ", " RTM_GETADDR .\"O Add, remove or receive information about an IP address associated with @@ -183,16 +183,16 @@ IFLA_STATS .\"O structure, optionally followed by .\"O .I rtattr .\"O routing attributes. -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î IP ¥¢¥É¥ì¥¹¤Î¾ðÊó¤òÄɲᦺï½ü¡¦¼èÆÀ¤¹¤ë¡£ -Linux 2.2 ¤Ç¤Ï¡¢°ì¤Ä¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ËÊ£¿ô¤Î IP ¥¢¥É¥ì¥¹¤ò -ÊÝ»ý¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¡¢¤³¤ì¤Ï 2.0 ¤ÎÊÌ̾¥Ç¥Ð¥¤¥¹¤Î³µÇ°¤òÃÖ¤­´¹¤¨¤ë¡£ -Linux 2.2 ¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥á¥Ã¥»¡¼¥¸¤Ï -IPv4 ¤È IPv6 ¤ÎξÊý¤Î¥¢¥É¥ì¥¹¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Ï +インターフェースの IP アドレスの情報を追加・削除・取得する。 +Linux 2.2 では、一つのインターフェースに複数の IP アドレスを +保持させることができ、これは 2.0 の別名デバイスの概念を置き換える。 +Linux 2.2 では、これらのメッセージは +IPv4 と IPv6 の両方のアドレスをサポートしている。 +これらは .I ifaddrmsg -¹½Â¤ÂΤòȼ¤¦¡£¤½¤Î¤¢¤È¤Ë +構造体を伴う。そのあとに .I rtattr -¥ë¡¼¥Æ¥£¥ó¥°Â°À­¤¬Â³¤¯¤³¤È¤â¤¢¤ë¡£ +ルーティング属性が続くこともある。 .nf struct ifaddrmsg { @@ -223,25 +223,25 @@ struct ifaddrmsg { .\"O .B IFA_F_PERMANENT .\"O for a permanent address set by the user and other undocumented flags. .I ifa_family -¤Ï¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤Î¥¿¥¤¥×¤Ç¤¢¤ë (¸½ºß¤Ï +はアドレスファミリーのタイプである (現在は .B AF_INET -¤Þ¤¿¤Ï -.BR AF_INET6 )¡£ +または +.BR AF_INET6 )。 .I ifa_prefixlen -¤Ï¥¢¥É¥ì¥¹¤Î¥¢¥É¥ì¥¹¥Þ¥¹¥¯¤ÎŤµ¤Ç¤¢¤ë (IPv4 ¤Î¤è¤¦¤Ë¡¢ -¤½¤Î¥Õ¥¡¥ß¥ê¡¼¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç)¡£ +はアドレスのアドレスマスクの長さである (IPv4 のように、 +そのファミリーで定義されている場合)。 .I ifa_scope -¤Ï¥¢¥É¥ì¥¹¤Î¥¹¥³¡¼¥×¤Ç¤¢¤ë¡£ +はアドレスのスコープである。 .I ifa_index -¤Ï¥¢¥É¥ì¥¹¤¬´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î index ¤Ç¤¢¤ë¡£ +はアドレスが関連づけられているインターフェースの index である。 .I ifa_flags -¤Ï¥Õ¥é¥°¥ï¡¼¥É¤Ç¡¢ -Æó¤Ä¤á¤Î¥¢¥É¥ì¥¹ (¸Å¤¤ÊÌ̾¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹) ¤Î¾ì¹ç¤Ï +はフラグワードで、 +二つめのアドレス (古い別名インターフェース) の場合は .B IFA_F_SECONDARY -¤Ë¡¢±Ê³Ū¤Ê¥¢¥É¥ì¥¹¤Î¾ì¹ç¤Ï +に、永続的なアドレスの場合は .B IFA_F_PERMANENT -¤ËŬÍѤµ¤ì¤ë¡£¥æ¡¼¥¶¡¼¤Ë¤è¤Ã¤Æ¥»¥Ã¥È¤µ¤ì¤ë¥Õ¥é¥°¤È¡¢ -undocumented ¤Ê¥Õ¥é¥°¤¬¤¢¤ë¡£ +に適用される。ユーザーによってセットされるフラグと、 +undocumented なフラグがある。 .TS tab(:); c @@ -256,16 +256,16 @@ l l l. .\"O IFA_BROADCAST:raw protocol address:broadcast address. .\"O IFA_ANYCAST:raw protocol address:anycast address .\"O IFA_CACHEINFO:struct ifa_cacheinfo:Address information. -°À­ -rta_type:Ãͤη¿:ÀâÌÀ +属性 +rta_type:値の型:説明 _ -IFA_UNSPEC:-:»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤ -IFA_ADDRESS:raw protocol address:¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹ -IFA_LOCAL:raw protocol address:¥í¡¼¥«¥ë¥¢¥É¥ì¥¹ -IFA_LABEL:asciiz string:¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î̾Á° -IFA_BROADCAST:raw protocol address:¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹ -IFA_ANYCAST:raw protocol address:anycast ¥¢¥É¥ì¥¹ -IFA_CACHEINFO:struct ifa_cacheinfo:¥¢¥É¥ì¥¹¾ðÊó +IFA_UNSPEC:-:指定されていない +IFA_ADDRESS:raw protocol address:インターフェースアドレス +IFA_LOCAL:raw protocol address:ローカルアドレス +IFA_LABEL:asciiz string:インターフェースの名前 +IFA_BROADCAST:raw protocol address:ブロードキャストアドレス +IFA_ANYCAST:raw protocol address:anycast アドレス +IFA_CACHEINFO:struct ifa_cacheinfo:アドレス情報 .TE .\" FIXME struct ifa_cacheinfo .TP @@ -283,28 +283,28 @@ IFA_CACHEINFO:struct ifa_cacheinfo: .\"O and .\"O .I rtm_src_len .\"O to 0 means you get all entries for the specified routing table. -¥Í¥Ã¥È¥ï¡¼¥¯·ÐÏ©¤Î¾ðÊó¤òÀ¸À®¡¦ºï½ü¡¦¼èÆÀ¤¹¤ë¡£ -¤³¤ì¤é¤Î¥á¥Ã¥»¡¼¥¸¤Ï +ネットワーク経路の情報を生成・削除・取得する。 +これらのメッセージは .I rtmsg -¹½Â¤ÂΤòȼ¤¦¡£¤½¤Î¤¢¤È¤Ë¤¤¤¯¤Ä¤«¤Î +構造体を伴う。そのあとにいくつかの .I rtattr -¹½Â¤ÂΤò³¤±¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +構造体を続けることもできる。 .B RTM_GETROUTE -¤Ç +で .I rtm_dst_len -¤È +と .I rtm_src_len -¤Ë 0 ¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢ -»ØÄꤵ¤ì¤¿¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤ÎÁ´¤Æ¤Î¥¨¥ó¥È¥ê¤ò½êÆÀ¤¹¤ë¡£ +に 0 をセットすると、 +指定されたルーティングテーブルの全てのエントリを所得する。 .\"O For the other fields, except .\"O .I rtm_table .\"O and .\"O .IR rtm_protocol , .\"O 0 is the wildcard. .I rtm_table -¤È +と .I rtm_protocol -°Ê³°¤Î¾¤Î¥Õ¥£¡¼¥ë¥É¤Ë 0 ¤òÆþ¤ì¤ë¤È¡¢¥ï¥¤¥ë¥É¥«¡¼¥É¤ò°ÕÌ£¤¹¤ë¡£ +以外の他のフィールドに 0 を入れると、ワイルドカードを意味する。 .nf struct rtmsg { @@ -344,27 +344,27 @@ l l. .\"O RTN_XRESOLVE:T{ .\"O refer to an external resolver (not implemented) .\"O T} -rtm_type:·ÐÏ©¤Î¥¿¥¤¥× +rtm_type:経路のタイプ _ -RTN_UNSPEC:̤ÃΤηÐÏ© -RTN_UNICAST:¥²¡¼¥È¥¦¥§¥¤¤Þ¤¿¤Ï¥À¥¤¥ì¥¯¥È¤Ê·ÐÏ© -RTN_LOCAL:¥í¡¼¥«¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î·ÐÏ© +RTN_UNSPEC:未知の経路 +RTN_UNICAST:ゲートウェイまたはダイレクトな経路 +RTN_LOCAL:ローカルインターフェースの経路 RTN_BROADCAST:T{ -¥í¡¼¥«¥ë¤Ê¥Ö¥í¡¼¥É¥­¥ã¥¹¥È·ÐÏ© -(¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¤È¤·¤ÆÁ÷¿®¤µ¤ì¤ë) +ローカルなブロードキャスト経路 +(ブロードキャストとして送信される) T} RTN_ANYCAST:T{ -¥í¡¼¥«¥ë¤Ê¥Ö¥í¡¼¥É¥­¥ã¥¹¥È·ÐÏ© -(¥æ¥Ë¥­¥ã¥¹¥È¤È¤·¤ÆÁ÷¿®¤µ¤ì¤ë) +ローカルなブロードキャスト経路 +(ユニキャストとして送信される) T} -RTN_MULTICAST:¥Þ¥ë¥Á¥­¥ã¥¹¥È·ÐÏ© -RTN_BLACKHOLE:¥Ñ¥±¥Ã¥È¤ò¼Î¤Æ¤ë·ÐÏ© -RTN_UNREACHABLE:Åþã¤Ç¤­¤Ê¤¤¹Ô¤­Àè -RTN_PROHIBIT:¥Ñ¥±¥Ã¥È¤òµñÈݤ¹¤ë·ÐÏ© -RTN_THROW:·Ðϩõº÷¤òÊ̤Υơ¼¥Ö¥ë¤Ç·Ñ³ -RTN_NAT:¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤ÎÊÑ´¹¥ë¡¼¥ë +RTN_MULTICAST:マルチキャスト経路 +RTN_BLACKHOLE:パケットを捨てる経路 +RTN_UNREACHABLE:到達できない行き先 +RTN_PROHIBIT:パケットを拒否する経路 +RTN_THROW:経路探索を別のテーブルで継続 +RTN_NAT:ネットワークアドレスの変換ルール RTN_XRESOLVE:T{ -³°Éô¥ì¥¾¥ë¥Ð¤ò»²¾È (¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤) +外部レゾルバを参照 (実装されていない) T} .TE .TS @@ -379,15 +379,15 @@ l l. .\"O RTPROT_KERNEL:by the kernel .\"O RTPROT_BOOT:during boot .\"O RTPROT_STATIC:by the administrator -rtm_protocol:·ÐÏ©¤Î¾ðÊó¸» +rtm_protocol:経路の情報源 _ -RTPROT_UNSPEC:ÉÔÌÀ +RTPROT_UNSPEC:不明 RTPROT_REDIRECT:T{ -ICMP ¥ê¥À¥¤¥ì¥¯¥È¤Ë¤è¤ë (¸½ºß¤ÏÍѤ¤¤é¤ì¤Ê¤¤) +ICMP リダイレクトによる (現在は用いられない) T} -RTPROT_KERNEL:¥«¡¼¥Í¥ë¤Ë¤è¤ë -RTPROT_BOOT:¥Ö¡¼¥È»þ -RTPROT_STATIC:´ÉÍý¼Ô¤Ë¤è¤ë +RTPROT_KERNEL:カーネルによる +RTPROT_BOOT:ブート時 +RTPROT_STATIC:管理者による .TE .\"O Values larger than @@ -399,18 +399,18 @@ RTPROT_STATIC: .\"O .I .\"O for the routing daemon identifiers which are already assigned. .B RTPROT_STATIC -¤è¤ê¤âÂ礭¤ÊÃͤϥ«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ²ò¼á¤µ¤ì¤Ê¤¤¡£¤³¤ì¤Ï -ñ¤Ê¤ë¥æ¡¼¥¶¡¼¤Ø¤Î¾ðÊó¤Ç¤¢¤ë¡£¤³¤ì¤é¤Ï·ÐÏ©¾ðÊó¤Î¾ðÊ󸻤ò -¥¿¥°ÉÕ¤±¤·¤¿¤ê¡¢Ê£¿ô¤Î¥ë¡¼¥Æ¥£¥ó¥°¥Ç¡¼¥â¥ó¤«¤é¤Î¾ðÊó¤ò -¶èÊ̤¹¤ë¤¿¤á¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -´û¤Ë³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¥ë¡¼¥Æ¥£¥ó¥°¥Ç¡¼¥â¥ó¤Î¼±Ê̻ҤˤĤ¤¤Æ¤Ï +よりも大きな値はカーネルによって解釈されない。これは +単なるユーザーへの情報である。これらは経路情報の情報源を +タグ付けしたり、複数のルーティングデーモンからの情報を +区別するために用いることができる。 +既に割り当てられているルーティングデーモンの識別子については .I -¤ò¸«¤è¡£ +を見よ。 .\"O .I rtm_scope .\"O is the distance to the destination: .I rtm_scope -¤Ï¹Ô¤­Àè¤Ø¤Îµ÷Î¥¤Ç¤¢¤ë¡£ +は行き先への距離である。 .TS tab(:); @@ -422,13 +422,13 @@ l l. .\"O RT_SCOPE_LINK:route on this link .\"O RT_SCOPE_HOST:route on the local host .\"O RT_SCOPE_NOWHERE:destination doesn't exist -RT_SCOPE_UNIVERSE:¥°¥í¡¼¥Ð¥ë¤Ê·ÐÏ© +RT_SCOPE_UNIVERSE:グローバルな経路 RT_SCOPE_SITE:T{ -¥í¡¼¥«¥ë¤Ê¼«Î§¥·¥¹¥Æ¥à¤Ë¤ª¤±¤ëÆâÉô·ÐÏ© +ローカルな自律システムにおける内部経路 T} -RT_SCOPE_LINK:¤³¤Î¥ê¥ó¥¯¾å¤Î·ÐÏ© -RT_SCOPE_HOST:¥í¡¼¥«¥ë¥Û¥¹¥È¾å¤Î·ÐÏ© -RT_SCOPE_NOWHERE:¹Ô¤­À褬¸ºß¤·¤Ê¤¤ +RT_SCOPE_LINK:このリンク上の経路 +RT_SCOPE_HOST:ローカルホスト上の経路 +RT_SCOPE_NOWHERE:行き先が存在しない .TE .\"O The values between @@ -436,17 +436,17 @@ RT_SCOPE_NOWHERE: .\"O and .\"O .B RT_SCOPE_SITE .\"O are available to the user. -¥æ¡¼¥¶¡¼¤Ï +ユーザーは .B RT_SCOPE_UNIVERSE -¤È +と .B RT_SCOPE_SITE -¤Î´Ö¤ÎÃͤòÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +の間の値を用いることができる。 .\"O The .\"O .I rtm_flags .\"O have the following meanings: .I rtm_flags -¤Ï°Ê²¼¤Î°ÕÌ£¤ò»ý¤Ä: +は以下の意味を持つ: .TS tab(:); l l. @@ -456,16 +456,16 @@ l l. .\"O RTM_F_CLONED:route is cloned from another route .\"O RTM_F_EQUALIZE:a multipath equalizer (not yet implemented) RTM_F_NOTIFY:T{ -·ÐÏ©¤¬Êѹ¹¤µ¤ì¤ë¤È¡¢ rtnetlink ¤òÄ̤·¤Æ¥æ¡¼¥¶¡¼¤ËÄÌÃΤ¬¹Ô¤¯¡£ +経路が変更されると、 rtnetlink を通してユーザーに通知が行く。 T} -RTM_F_CLONED:·ÐÏ©¤Ï¾¤Î·ÐÏ©¤Ë¤è¤Ã¤ÆÊ£À½¤µ¤ì¤¿¡£ -RTM_F_EQUALIZE:¥Þ¥ë¥Á¥Ñ¥¹¥¤¥³¥é¥¤¥¶ (¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤) +RTM_F_CLONED:経路は他の経路によって複製された。 +RTM_F_EQUALIZE:マルチパスイコライザ (まだ実装されていない) .TE .\"O .I rtm_table .\"O specifies the routing table .I rtm_table -¤Ç¤Ï¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤ò»ØÄꤹ¤ë¡£ +ではルーティングテーブルを指定する。 .TS tab(:); l l. @@ -473,21 +473,21 @@ l l. .\"O RT_TABLE_DEFAULT:the default table .\"O RT_TABLE_MAIN:the main table .\"O RT_TABLE_LOCAL:the local table -RT_TABLE_UNSPEC:»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë -RT_TABLE_DEFAULT:¥Ç¥Õ¥©¥ë¥È¤Î¥Æ¡¼¥Ö¥ë -RT_TABLE_MAIN:¥á¥¤¥ó¤Î¥Æ¡¼¥Ö¥ë -RT_TABLE_LOCAL:¥í¡¼¥«¥ë¥Æ¡¼¥Ö¥ë +RT_TABLE_UNSPEC:指定されていないルーティングテーブル +RT_TABLE_DEFAULT:デフォルトのテーブル +RT_TABLE_MAIN:メインのテーブル +RT_TABLE_LOCAL:ローカルテーブル .TE .\"O The user may assign arbitrary values between .\"O .B RT_TABLE_UNSPEC .\"O and .\"O .BR RT_TABLE_DEFAULT . -¥æ¡¼¥¶¡¼¤Ï +ユーザーは .B RT_TABLE_UNSPEC -¤È +と .BR RT_TABLE_DEFAULT . -¤Î´Ö¤ÎǤ°Õ¤ÎÃͤòÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +の間の任意の値を用いることができる。 .TS tab(:); c @@ -508,18 +508,18 @@ l l l. .\"O RTA_PROTOINFO:: .\"O RTA_FLOW:: .\"O RTA_CACHEINFO:: -°À­ -rta_type:Ãͤη¿:ÀâÌÀ +属性 +rta_type:値の型:説明 _ -RTA_UNSPEC:-:̵»ë¤µ¤ì¤ë -RTA_DST:protocol address:·ÐÏ©¤Î¹Ô¤­À襢¥É¥ì¥¹ -RTA_SRC:protocol address:·ÐÏ©¤Îȯ¿®¸µ¥¢¥É¥ì¥¹ -RTA_IIF:int:ÆþÎÏ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î index -RTA_OIF:int:½ÐÎÏ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î index -RTA_GATEWAY:protocol address:·ÐÏ©¤Î¥²¡¼¥È¥¦¥§¥¤ -RTA_PRIORITY:int:·ÐÏ©¤ÎÍ¥ÀèÅÙ +RTA_UNSPEC:-:無視される +RTA_DST:protocol address:経路の行き先アドレス +RTA_SRC:protocol address:経路の発信元アドレス +RTA_IIF:int:入力インターフェースの index +RTA_OIF:int:出力インターフェースの index +RTA_GATEWAY:protocol address:経路のゲートウェイ +RTA_PRIORITY:int:経路の優先度 RTA_PREFSRC:: -RTA_METRICS:int:·ÐÏ©¤Î¥á¥È¥ê¥Ã¥¯ +RTA_METRICS:int:経路のメトリック RTA_MULTIPATH:: RTA_PROTOINFO:: RTA_FLOW:: @@ -527,7 +527,7 @@ RTA_CACHEINFO:: .TE .\"O .B Fill these values in! -.B (¤³¤ì¤é¤ÎÃͤòËä¤á¤ë¤³¤È!) +.B (これらの値を埋めること!) .TP .BR RTM_NEWNEIGH ", " RTM_DELNEIGH ", " RTM_GETNEIGH .\"O Add, remove or receive information about a neighbor table @@ -535,11 +535,11 @@ RTA_CACHEINFO:: .\"O The message contains an .\"O .I ndmsg .\"O structure. -¶á˵¥Æ¡¼¥Ö¥ë (neighbor table) ¤Î¥¨¥ó¥È¥ê -(Î㤨¤Ð ARP ¥¨¥ó¥È¥ê) ¤Î¾ðÊó¤òÄɲᦺï½ü¡¦¼èÆÀ¤¹¤ë¡£ -¤³¤Î¥á¥Ã¥»¡¼¥¸¤Ï +近傍テーブル (neighbor table) のエントリ +(例えば ARP エントリ) の情報を追加・削除・取得する。 +このメッセージは .I ndmsg -¹½Â¤ÂΤòȼ¤¦¡£ +構造体を伴う。 .nf struct ndmsg { @@ -561,7 +561,7 @@ struct nda_cacheinfo { .\"O .I ndm_state .\"O is a bit mask of the following states: .I ndm_state -¤Ï°Ê²¼¤Î¾õÂ֤Υӥåȥޥ¹¥¯¤Ç¤¢¤ë: +は以下の状態のビットマスクである: .TS tab(:); l l. @@ -573,29 +573,29 @@ l l. .\"O NUD_FAILED:an invalid cache entry .\"O NUD_NOARP:a device with no destination cache .\"O NUD_PERMANENT:a static entry -NUD_INCOMPLETE:¸½ºß¥ì¥¾¥ë¥ÖÃæ¤Î¥­¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê -NUD_REACHABLE:Æ°ºî³ÎǧºÑ¤ß¤Î¥­¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê -NUD_STALE:´ü¸ÂÀÚ¤ì¤Î¥­¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê -NUD_DELAY:¥¿¥¤¥ÞÂÔ¤Á¤Î¥­¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê -NUD_PROBE:ºÆ³ÎǧÃæ¤Î¥­¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê -NUD_FAILED:ÉÔÀµ¤Ê¥­¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê -NUD_NOARP:¹Ô¤­À襭¥ã¥Ã¥·¥å¤Î¤Ê¤¤¥Ç¥Ð¥¤¥¹ -NUD_PERMANENT:ÀÅŪ¤Ê¥¨¥ó¥È¥ê +NUD_INCOMPLETE:現在レゾルブ中のキャッシュエントリ +NUD_REACHABLE:動作確認済みのキャッシュエントリ +NUD_STALE:期限切れのキャッシュエントリ +NUD_DELAY:タイマ待ちのキャッシュエントリ +NUD_PROBE:再確認中のキャッシュエントリ +NUD_FAILED:不正なキャッシュエントリ +NUD_NOARP:行き先キャッシュのないデバイス +NUD_PERMANENT:静的なエントリ .TE .\"O Valid .\"O .I ndm_flags .\"O are: -Í­¸ú¤Ê +有効な .I ndm_flags -¤Ï°Ê²¼¤ÎÄ̤ê: +は以下の通り: .TS tab(:); l l. .\"O NTF_PROXY:a proxy arp entry .\"O NTF_ROUTER:an IPv6 router -NTF_PROXY:¥×¥í¥¯¥· arp ¥¨¥ó¥È¥ê -NTF_ROUTER:IPv6 ¥ë¡¼¥¿ +NTF_PROXY:プロクシ arp エントリ +NTF_ROUTER:IPv6 ルータ .TE .\" FIXME @@ -606,9 +606,9 @@ NTF_ROUTER:IPv6 .\"O .I rta_type .\"O field: .I rtattr -¹½Â¤ÂΤϡ¢ +構造体は、 .I rta_type -¥Õ¥£¡¼¥ë¥É¤Ë±þ¤¸¤Æ¤½¤ì¤¾¤ì°Ê²¼¤Î°ÕÌ£¤ò»ý¤Ä: +フィールドに応じてそれぞれ以下の意味を持つ: .TS tab(:); l l. @@ -616,10 +616,10 @@ l l. .\"O NDA_DST:a neighbor cache n/w layer destination address .\"O NDA_LLADDR:a neighbor cache link layer address .\"O NDA_CACHEINFO:cache statistics. -NDA_UNSPEC:̤ÃΤΥ¿¥¤¥× -NDA_DST:¶á˵¥­¥ã¥Ã¥·¥å¥Í¥Ã¥È¥ï¡¼¥¯ÁؤιԤ­À襢¥É¥ì¥¹ -NDA_LLADDR:¶á˵¥­¥ã¥Ã¥·¥å¥ê¥ó¥¯ÁؤΥ¢¥É¥ì¥¹ -NDA_CACHEINFO:¥­¥ã¥Ã¥·¥å¤ÎÅý·× +NDA_UNSPEC:未知のタイプ +NDA_DST:近傍キャッシュネットワーク層の行き先アドレス +NDA_LLADDR:近傍キャッシュリンク層のアドレス +NDA_CACHEINFO:キャッシュの統計 .TE .\"O If the @@ -630,19 +630,19 @@ NDA_CACHEINFO: .\"O .I struct nda_cacheinfo .\"O header follows .I rta_type -¥Õ¥£¡¼¥ë¥É¤¬ +フィールドが .B NDA_CACHEINFO -¤Î¾ì¹ç¤Ë¤Ï¡¢ +の場合には、 .I struct nda_cacheinfo -¥Ø¥Ã¥À¤¬Â³¤¯¡£ +ヘッダが続く。 .TP .BR RTM_NEWRULE ", " RTM_DELRULE ", " RTM_GETRULE .\"O Add, delete or retrieve a routing rule. .\"O Carries a .\"O .I struct rtmsg -¥ë¡¼¥Æ¥£¥ó¥°¥ë¡¼¥ë¤òÄɲᦺï½ü¡¦¼èÆÀ¤¹¤ë¡£ +ルーティングルールを追加・削除・取得する。 .I struct rtmsg -¤òȼ¤¦¡£ +を伴う。 .\"O .TP .BR RTM_NEWQDISC ", " RTM_DELQDISC ", " RTM_GETQDISC @@ -651,10 +651,10 @@ NDA_CACHEINFO: .\"O .I struct tcmsg .\"O and may be followed by a series of .\"O attributes. -¥­¥å¡¼¥¤¥ó¥°¥ë¡¼¥ë¤òÄɲᦺï½ü¡¦¼èÆÀ¤¹¤ë¡£ -¤³¤Î¥á¥Ã¥»¡¼¥¸¤Ï +キューイングルールを追加・削除・取得する。 +このメッセージは .I struct tcmsg -¤òȼ¤¤¡¢¤Þ¤¿¤½¤Î¤¢¤È¤Ë°À­¤¬¤¤¤¯¤Ä¤«Â³¤¯¤³¤È¤â¤¢¤ë¡£ +を伴い、またそのあとに属性がいくつか続くこともある。 .nf struct tcmsg { @@ -678,53 +678,53 @@ l l l. .\"O TCA_STATS:struct tc_stats:Qdisc statistics. .\"O TCA_XSTATS:qdisc specific:Module-specific statistics. .\"O TCA_RATE:struct tc_estimator:Rate limit. -°À­ -rta_type:Ãͤη¿:ÀâÌÀ +属性 +rta_type:値の型:説明 _ -TCA_UNSPEC:-:»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤ -TCA_KIND:asciiz string:¥­¥å¡¼¥¤¥ó¥°¥ë¡¼¥ë¤Î̾Á° -TCA_OPTIONS:byte sequence:Qdisc ÆÃÍ­¤Î¥ª¥×¥·¥ç¥ó¤¬Â³¤¯ -TCA_STATS:struct tc_stats:Qdisc ¤ÎÅý·× -TCA_XSTATS:qdisc specific:¥â¥¸¥å¡¼¥ëÆÃÍ­¤ÎÅý·× -TCA_RATE:struct tc_estimator:¥ì¡¼¥ÈÀ©¸Â +TCA_UNSPEC:-:指定されていない +TCA_KIND:asciiz string:キューイングルールの名前 +TCA_OPTIONS:byte sequence:Qdisc 特有のオプションが続く +TCA_STATS:struct tc_stats:Qdisc の統計 +TCA_XSTATS:qdisc specific:モジュール特有の統計 +TCA_RATE:struct tc_estimator:レート制限 .TE .\"O In addition various other qdisc module specific attributes are allowed. .\"O For more information see the appropriate include files. -¤µ¤é¤Ë¡¢ qdisc ¥â¥¸¥å¡¼¥ëÆÃÍ­¤ÎÍÍ¡¹¤Ê°À­¤ò»ØÄê¤Ç¤­¤ë¡£ -¾ÜºÙ¤Ê¾ðÊó¤ÏŬÀڤʥ¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤ò¸«¤è¡£ +さらに、 qdisc モジュール特有の様々な属性を指定できる。 +詳細な情報は適切なインクルードファイルを見よ。 .TP .BR RTM_NEWTCLASS ", " RTM_DELTCLASS ", " RTM_GETTCLASS .\"O Add, remove or get a traffic class. .\"O These messages contain a .\"O .I struct tcmsg .\"O as described above. -¥È¥é¥Õ¥£¥Ã¥¯¥¯¥é¥¹¤òÄɲᦺï½ü¡¦¼èÆÀ¤¹¤ë¡£ -¤³¤ì¤é¤Î¥á¥Ã¥»¡¼¥¸¤Ï¡¢¾å½Ò¤Î +トラフィッククラスを追加・削除・取得する。 +これらのメッセージは、上述の .I struct tcmsg -¤òȼ¤¦¡£ +を伴う。 .TP .BR RTM_NEWTFILTER ", " RTM_DELTFILTER ", " RTM_GETTFILTER .\"O Add, remove or receive information about a traffic filter. .\"O These messages contain a .\"O .I struct tcmsg .\"O as described above. -¥È¥é¥Õ¥£¥Ã¥¯¥Õ¥£¥ë¥¿¡¼¤Î¾ðÊó¤òÄɲᦺï½ü¡¦¼èÆÀ¤¹¤ë¡£ -¤³¤ì¤é¤Î¥á¥Ã¥»¡¼¥¸¤Ï¡¢¾å½Ò¤Î +トラフィックフィルターの情報を追加・削除・取得する。 +これらのメッセージは、上述の .I struct tcmsg -¤òȼ¤¦¡£ +を伴う。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .B rtnetlink .\"O is a new feature of Linux 2.2. .B rtnetlink -¤Ï Linux 2.2 ¤Î¿·µ¡Ç½¤Ç¤¢¤ë¡£ +は Linux 2.2 の新機能である。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O This manual page is incomplete. -¤³¤Î man ¥Ú¡¼¥¸¤ÏÉÔ´°Á´¤Ç¤¢¤ë¡£ +この man ページは不完全である。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cmsg (3), .BR rtnetlink (3), .BR ip (7), diff --git a/draft/man7/sem_overview.7 b/draft/man7/sem_overview.7 index 1315a22d..ab8a193f 100644 --- a/draft/man7/sem_overview.7 +++ b/draft/man7/sem_overview.7 @@ -30,14 +30,14 @@ .\" .TH SEM_OVERVIEW 7 2010-05-22 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sem_overview \- Overview of POSIX semaphores -sem_overview \- POSIX ¥»¥Þ¥Õ¥©¤Î³µÍ× +sem_overview \- POSIX セマフォの概要 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O POSIX semaphores allow processes and threads to synchronize their actions. -POSIX ¥»¥Þ¥Õ¥©¤ò»ÈÍѤ¹¤ë¤È¡¢¥×¥í¥»¥¹¤ä¥¹¥ì¥Ã¥É´Ö¤Ç¤½¤ÎÆ°ºî¤ò -Ʊ´ü¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +POSIX セマフォを使用すると、プロセスやスレッド間でその動作を +同期させることができる。 .\"O A semaphore is an integer whose value is never allowed to fall below zero. .\"O Two operations can be performed on semaphores: @@ -48,39 +48,39 @@ POSIX .\"O If the value of a semaphore is currently zero, then a .\"O .BR sem_wait (3) .\"O operation will block until the value becomes greater than zero. -¥»¥Þ¥Õ¥©¤ÏÀ°¿ô¤Ç¤¢¤ê¡¢¤½¤ÎÃͤϷ褷¤Æ 0 ̤Ëþ¤Ë¤Ê¤ë¤³¤È¤Ïµö¤µ¤ì¤Ê¤¤¡£ -¥»¥Þ¥Õ¥©¤ËÂФ·¤Æ¤Ç¤­¤ëÁàºî¤Ï 2 ¤Ä¤Ç¤¢¤ë: -¥»¥Þ¥Õ¥©Ãͤò 1 Áý¤ä¤¹ +セマフォは整数であり、その値は決して 0 未満になることは許されない。 +セマフォに対してできる操作は 2 つである: +セマフォ値を 1 増やす .RB ( sem_post (3)); -¥»¥Þ¥Õ¥©Ãͤò 1 ¸º¤é¤¹ -.RB ( sem_wait (3))¡£ -¥»¥Þ¥Õ¥©¤ÎÃͤ¬¤¹¤Ç¤Ë 0 ¤Î¾ì¹ç¡¢¥»¥Þ¥Õ¥©Ãͤ¬ 0 ¤è¤êÂ礭¤¯¤Ê¤ë¤Þ¤Ç +セマフォ値を 1 減らす +.RB ( sem_wait (3))。 +セマフォの値がすでに 0 の場合、セマフォ値が 0 より大きくなるまで .BR sem_wait (3) -Áàºî¤ÏÄä»ß (block) ¤¹¤ë¡£ +操作は停止 (block) する。 .\"O POSIX semaphores come in two forms: named semaphores and .\"O unnamed semaphores. -POSIX ¥»¥Þ¥Õ¥©¤Ë¤Ï¡¢Ì¾Á°ÉÕ¤­¥»¥Þ¥Õ¥© (named semaphore) ¤È -̾Á°¤Ê¤·¥»¥Þ¥Õ¥© (unnamed semaphore) ¤Î 2¤Ä¤Î·Á¤¬¤¢¤ë¡£ +POSIX セマフォには、名前付きセマフォ (named semaphore) と +名前なしセマフォ (unnamed semaphore) の 2つの形がある。 .TP .\"O .B Named semaphores -.B ̾Á°ÉÕ¤­¥»¥Þ¥Õ¥© +.B 名前付きセマフォ .\"O A named semaphore is identified by a name of the form .\"O .IR /somename ; .\"O that is, a null-terminated string of up to .\"O .BI NAME_MAX \-4 .\"O (i.e., 251) characters consisting of an initial slash, -̾Á°ÉÕ¤­¥»¥Þ¥Õ¥©¤Ï +名前付きセマフォは .I /somename -¤È¤¤¤¦·Á¼°¤Î̾Á°¤Ç¼±Ê̤µ¤ì¤ë¡£ -¤½¤Î̾Á°¤Ï¡¢ºÇÂç¤Ç +という形式の名前で識別される。 +その名前は、最大で .BI NAME_MAX \-4 -(¤¹¤Ê¤ï¤Á 251) ʸ»ú¤Î NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ç¡¢ +(すなわち 251) 文字の NULL 終端された文字列で、 .\" glibc allows the initial slash to be omitted, and makes .\" multiple initial slashes equivalent to a single slash. .\" This differs from the implementation of POSIX message queues. .\"O followed by one or more characters, none of which are slashes. -¥¹¥é¥Ã¥·¥å¤Ç»Ï¤Þ¤ê¡¢¥¹¥é¥Ã¥·¥å°Ê³°¤Îʸ»ú¤¬ 1 ʸ»ú°Ê¾å³¤¯·Á¼°¤Ç¤¢¤ë¡£ +スラッシュで始まり、スラッシュ以外の文字が 1 文字以上続く形式である。 .\" glibc allows subdirectory components in the name, in which .\" case the subdirectory tree must exist under /dev/shm, and .\" the fist subdirectory component must exist as the name @@ -91,8 +91,8 @@ POSIX .\"O the same name to .\"O .BR sem_open (3). .BR sem_open (3) -¤ËƱ¤¸Ì¾Á°¤òÅϤ¹¤³¤È¤Ë¤è¤ê¡¢2 ¤Ä¤Î¥×¥í¥»¥¹´Ö¤ÇƱ¤¸Ì¾Á°¤Î¥»¥Þ¥Õ¥© -¤ËÂФ·Áàºî¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +に同じ名前を渡すことにより、2 つのプロセス間で同じ名前のセマフォ +に対し操作を行うことができる。 .\"O The .\"O .BR sem_open (3) @@ -109,22 +109,22 @@ POSIX .\"O it can be removed from the system using .\"O .BR sem_unlink (3). .BR sem_open (3) -´Ø¿ô¤Ï¡¢¿·¤·¤¤Ì¾Á°ÉÕ¤­¥»¥Þ¥Õ¥©¤òºîÀ®¤¹¤ë¤«¡¢´û¤Ë¸ºß¤¹¤ë̾Á°ÉÕ¤­ -¥»¥Þ¥Õ¥©¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£ -¥»¥Þ¥Õ¥©¤ò¥ª¡¼¥×¥ó¤·¤¿¸å¤Ï¡¢ +関数は、新しい名前付きセマフォを作成するか、既に存在する名前付き +セマフォをオープンする。 +セマフォをオープンした後は、 .BR sem_post (3) -¤È +と .BR sem_wait (3) -¤ò»È¤Ã¤Æ¥»¥Þ¥Õ¥©¤òÁàºî¤Ç¤­¤ë¡£ -¥×¥í¥»¥¹¤¬¥»¥Þ¥Õ¥©¤Î»ÈÍѤò½ª¤¨¤¿ºÝ¤Ï¡¢ +を使ってセマフォを操作できる。 +プロセスがセマフォの使用を終えた際は、 .BR sem_close (3) -¤ò»È¤Ã¤Æ¥»¥Þ¥Õ¥©¤ò¥¯¥í¡¼¥º¤Ç¤­¤ë¡£ -¤¢¤ë¥»¥Þ¥Õ¥©¤ò¤É¤Î¥×¥í¥»¥¹¤â»ÈÍѤ·¤Ê¤¯¤Ê¤ë¤È¡¢ +を使ってセマフォをクローズできる。 +あるセマフォをどのプロセスも使用しなくなると、 .BR sem_unlink (3) -¤ò»È¤Ã¤Æ¤½¤Î¥»¥Þ¥Õ¥©¤ò¥·¥¹¥Æ¥à¤«¤éºï½ü¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使ってそのセマフォをシステムから削除することができる。 .TP .\"O .B Unnamed semaphores (memory-based semaphores) -.B ̾Á°¤Ê¤·¥»¥Þ¥Õ¥© (¥á¥â¥ê¥Ù¡¼¥¹¡¦¥»¥Þ¥Õ¥©) +.B 名前なしセマフォ (メモリベース・セマフォ) .\"O An unnamed semaphore does not have a name. .\"O Instead the semaphore is placed in a region of memory that .\"O is shared between multiple threads (a @@ -138,20 +138,20 @@ POSIX .\"O .BR shmget (2), .\"O or a POSIX shared memory object built created using .\"O .BR shm_open (3)). -̾Á°¤Ê¤·¥»¥Þ¥Õ¥©¤Ï̾Á°¤ò»ý¤¿¤Ê¤¤¡£¤½¤ÎÂå¤ï¤ê¡¢¥»¥Þ¥Õ¥©¤Ï¡¢ -Ê£¿ô¥¹¥ì¥Ã¥É´Ö¤Ç¶¦Í­¤µ¤ì¤ë¥á¥â¥êÎΰ衢¤â¤·¤¯¤ÏÊ£¿ô¥×¥í¥»¥¹´Ö¤Ç -¶¦Í­¤µ¤ì¤¿¥á¥â¥êÎΰè¤ËÃÖ¤«¤ì¤ë (Á°¼Ô¤ò -.IR "¥¹¥ì¥Ã¥É¶¦Í­¥»¥Þ¥Õ¥© (thread-shared semaphore)" ¡¢ -¸å¼Ô¤ò -.IR "¥×¥í¥»¥¹¶¦Í­¥»¥Þ¥Õ¥© (process-shared semaphore)" -¤È¸Æ¤Ö)¡£¥¹¥ì¥Ã¥É¶¦Í­¥»¥Þ¥Õ¥©¤Ï¡¢Æ±¤¸¥×¥í¥»¥¹Æâ¤Î¥¹¥ì¥Ã¥É´Ö¤Ç¶¦Í­¤µ¤ì¤ë -¥á¥â¥êÎΰ衢Î㤨¤ÐÂç°èÊÑ¿ô (global variable) ¤ËÇÛÃÖ¤µ¤ì¤ë¡£ -¥×¥í¥»¥¹¶¦Í­¥»¥Þ¥Õ¥©¤Ï¡¢¶¦Í­¥á¥â¥êÎΰè (Î㤨¤Ð¡¢ +名前なしセマフォは名前を持たない。その代わり、セマフォは、 +複数スレッド間で共有されるメモリ領域、もしくは複数プロセス間で +共有されたメモリ領域に置かれる (前者を +.IR "スレッド共有セマフォ (thread-shared semaphore)" 、 +後者を +.IR "プロセス共有セマフォ (process-shared semaphore)" +と呼ぶ)。スレッド共有セマフォは、同じプロセス内のスレッド間で共有される +メモリ領域、例えば大域変数 (global variable) に配置される。 +プロセス共有セマフォは、共有メモリ領域 (例えば、 .BR shmget (2) -¤ò»È¤Ã¤ÆºîÀ®¤Ç¤­¤ë System V ¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ä +を使って作成できる System V 共有メモリ・セグメントや .BR shm_open (3) -¤ò»È¤Ã¤ÆºîÀ®¤Ç¤­¤ë POSIX ¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È) -Æâ¤ËÇÛÃÖ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を使って作成できる POSIX 共有メモリ・オブジェクト) +内に配置しなければならない。 .\"O Before being used, an unnamed semaphore must be initialized using .\"O .BR sem_init (3). @@ -163,89 +163,89 @@ POSIX .\"O and before the memory in which it is located is deallocated, .\"O the semaphore should be destroyed using .\"O .BR sem_destroy (3). -̾Á°¤Ê¤·¥»¥Þ¥Õ¥©¤Ï¡¢»ÈÍѤ¹¤ëÁ°¤Ë +名前なしセマフォは、使用する前に .BR sem_init (3) -¤ò»È¤Ã¤Æ½é´ü²½¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥»¥Þ¥Õ¥©¤Ï +を使って初期化しなければならない。 +セマフォは .BR sem_post (3) -¤È +と .BR sem_wait (3) -¤ò»È¤Ã¤ÆÁàºî¤Ç¤­¤ë¡£ -¥»¥Þ¥Õ¥©¤¬¤â¤Ï¤äɬÍפʤ¯¤Ê¤Ã¤¿¤È¤­¤ä¡¢ -¥»¥Þ¥Õ¥©¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¥á¥â¥ê¤ò²òÊü¤¹¤ëÁ°¤Ë¤Ï¡¢ +を使って操作できる。 +セマフォがもはや必要なくなったときや、 +セマフォが置かれているメモリを解放する前には、 .BR sem_destroy (3) -¤ò»È¤Ã¤Æ¥»¥Þ¥Õ¥©¤òÇË´þ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +を使ってセマフォを破棄すべきである。 .PP .\"O The remainder of this section describes some specific details .\"O of the Linux implementation of POSIX semaphores. -¤³¤ÎÀá¤Î»Ä¤ê¤Ç¤Ï¡¢POSIX ¥»¥Þ¥Õ¥©¤Î Linux ¤Î¼ÂÁõ¤Î¾ÜºÙ -¤Ë¤Ä¤¤¤ÆÀâÌÀ¤¹¤ë¡£ +この節の残りでは、POSIX セマフォの Linux の実装の詳細 +について説明する。 .\"O .SS Versions -.SS ¥Ð¡¼¥¸¥ç¥ó +.SS バージョン .\"O Prior to kernel 2.6, Linux only supported unnamed, .\"O thread-shared semaphores. .\"O On a system with Linux 2.6 and a glibc that provides the NPTL .\"O threading implementation, .\"O a complete implementation of POSIX semaphores is provided. -¥Ð¡¼¥¸¥ç¥ó 2.6 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢Linux ¤Ï -̾Á°¤Ê¤·¤Î¥¹¥ì¥Ã¥É¶¦Í­¥»¥Þ¥Õ¥©¤Î¤ß¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤¿¡£ -Linux 2.6 ¤È NPTL ¥¹¥ì¥Ã¥É¼ÂÁõ¤òÄ󶡤·¤Æ¤¤¤ë glibc ¤¬Æþ¤Ã¤¿ -¥·¥¹¥Æ¥à¤Ç¤Ï¡¢POSIX ¥»¥Þ¥Õ¥©¤Î´°Á´¤Ê¼ÂÁõ¤¬Ä󶡤µ¤ì¤ë¡£ +バージョン 2.6 より前のカーネルでは、Linux は +名前なしのスレッド共有セマフォのみをサポートしていた。 +Linux 2.6 と NPTL スレッド実装を提供している glibc が入った +システムでは、POSIX セマフォの完全な実装が提供される。 .\"O .SS Persistence -.SS »ý³À­ +.SS 持続性 .\"O POSIX named semaphores have kernel persistence: .\"O if not removed by .\"O .BR sem_unlink (3), .\"O a semaphore will exist until the system is shut down. -POSIX ̾Á°ÉÕ¤­¥»¥Þ¥Õ¥©¤Ï¥«¡¼¥Í¥ëÆâ¤ÇÊÝ»ý¤µ¤ì¤ë¡£ +POSIX 名前付きセマフォはカーネル内で保持される。 .BR sem_unlink (3) -¤Çºï½ü¤µ¤ì¤Ê¤±¤ì¤Ð¡¢¥»¥Þ¥Õ¥©¤Ï -¥·¥¹¥Æ¥à¤¬¥·¥ã¥Ã¥È¥À¥¦¥ó¤µ¤ì¤ë¤Þ¤Ç¸ºß¤·Â³¤±¤ë¡£ +で削除されなければ、セマフォは +システムがシャットダウンされるまで存在し続ける。 .\"O .SS Linking -.SS ¥ê¥ó¥¯ +.SS リンク .\"O Programs using the POSIX semaphores API must be compiled with .\"O .I cc \-lrt .\"O to link against the real-time library, .\"O .IR librt . -POSIX ¥»¥Þ¥Õ¥© API ¤ò»ÈÍѤ·¤¿¥×¥í¥°¥é¥à¤Ï +POSIX セマフォ API を使用したプログラムは .I cc \-lrt -¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¡¢¥ê¥¢¥ë¥¿¥¤¥à¥é¥¤¥Ö¥é¥ê +でコンパイルし、リアルタイムライブラリ .I librt -¤È¥ê¥ó¥¯¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +とリンクしなければならない。 .\"O .SS Accessing named semaphores via the file system -.SS ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à·Ðͳ¤Ç¤Î̾Á°ÉÕ¤­¥»¥Þ¥Õ¥©¤Ø¤Î¥¢¥¯¥»¥¹ +.SS ファイルシステム経由での名前付きセマフォへのアクセス .\"O On Linux, named semaphores are created in a virtual file system, .\"O normally mounted under .\"O .IR /dev/shm , .\"O with names of the form .\"O .IR \fBsem.\fPsomename . -Linux ¤Ç¤Ï¡¢Ì¾Á°ÉÕ¤­¥»¥Þ¥Õ¥©¤Ï²¾ÁÛ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -(virtual file system) Æâ¤Ë +Linux では、名前付きセマフォは仮想ファイルシステム +(virtual file system) 内に .I \fBsem.\fPsomename -¤È¤¤¤¦·Á¤Î̾Á°¤ÇºîÀ®¤µ¤ì¤ë¡£²¾ÁÛ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÏÄ̾ï +という形の名前で作成される。仮想ファイルシステムは通常 .I /dev/shm -°Ê²¼¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤ë¡£ +以下にマウントされる。 .\"O (This is the reason that semaphore names are limited to .\"O .BI NAME_MAX \-4 .\"O rather than .\"O .B NAME_MAX .\"O characters.) -(¤³¤ì¤¬¡¢¥»¥Þ¥Õ¥©¤Î̾Á°¤Îʸ»ú¿ô¤Î¾å¸Â¤¬ +(これが、セマフォの名前の文字数の上限が .B NAME_MAX -¤Ç¤Ï¤Ê¤¯ +ではなく .BI NAME_MAX \-4 -¤È¤Ê¤Ã¤Æ¤¤¤ëÍýͳ¤Ç¤¢¤ë¡£) +となっている理由である。) .\"O Since Linux 2.6.19, ACLs can be placed on files under this directory, .\"O to control object permissions on a per-user and per-group basis. -Linux 2.6.19 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¥Ç¥£¥ì¥¯¥È¥êÇÛ²¼¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ ACL ¤ò -ÀßÄê¤Ç¤­¡¢¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Îµö²Ä¤ò¥æ¡¼¥¶Ã±°Ì¡¢¥°¥ë¡¼¥×ñ°Ì¤ÇÀ©¸æ¤¹¤ë¤³¤È¤¬ -¤Ç¤­¤ë¡£ +Linux 2.6.19 以降では、このディレクトリ配下のファイルに対して ACL を +設定でき、オブジェクトへの許可をユーザ単位、グループ単位で制御することが +できる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O System V semaphores .\"O .RB ( semget (2), .\"O .BR semop (2), @@ -254,22 +254,22 @@ POSIX.1-2001. .\"O System V semaphores; .\"O on the other hand POSIX semaphores are less widely available .\"O (especially on older systems) than System V semaphores. -System V ¥»¥Þ¥Õ¥© +System V セマフォ .RB ( semget (2), .BR semop (2) -¤Ê¤É) ¤Ï¸Å¤¤¥»¥Þ¥Õ¥© API ¤Ç¤¢¤ë¡£ POSIX ¥»¥Þ¥Õ¥©¤Ï System V ¤è¤ê¤â -´Êñ¤Ç¡¢¤¦¤Þ¤¯À߷פµ¤ì¤¿¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤·¤Æ¤¤¤ë¡£ -°ìÊý¤Ç¡¢POSIX ¥»¥Þ¥Õ¥©¤Ï System V ¥»¥Þ¥Õ¥©¤ÈÈæ¤Ù¤ë¤È -ÍøÍѤǤ­¤ë¥·¥¹¥Æ¥à¤¬¾¯¤Ê¤¤ (Æäˡ¢¸Å¤¤¥·¥¹¥Æ¥à¤Ç¤Ï¾¯¤Ê¤¤)¡£ +など) は古いセマフォ API である。 POSIX セマフォは System V よりも +簡単で、うまく設計されたインタフェースを提供している。 +一方で、POSIX セマフォは System V セマフォと比べると +利用できるシステムが少ない (特に、古いシステムでは少ない)。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O An example of the use of various POSIX semaphore functions is shown in .\"O .BR sem_wait (3). -³Æ¼ï¤Î POSIX ¥»¥Þ¥Õ¥©´Ø¿ô¤ò»ÈÍѤ·¤¿Î㤬 +各種の POSIX セマフォ関数を使用した例が .BR sem_wait (3) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ +に記載されている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sem_close (3), .BR sem_destroy (3), .BR sem_getvalue (3), diff --git a/draft/man7/shm_overview.7 b/draft/man7/shm_overview.7 index 0288adcf..be62dec9 100644 --- a/draft/man7/shm_overview.7 +++ b/draft/man7/shm_overview.7 @@ -30,18 +30,18 @@ .\" .TH SHM_OVERVIEW 7 2010-09-10 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O shm_overview \- Overview of POSIX shared memory -shm_overview \- POSIX ¶¦Í­¥á¥â¥ê¤Î³µÍ× +shm_overview \- POSIX 共有メモリの概要 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The POSIX shared memory API allows processes to communicate information .\"O by sharing a region of memory. -POSIX ¶¦Í­¥á¥â¥ê API ¤ò»ÈÍѤ¹¤ë¤È¡¢¥á¥â¥ê¤Î¤¢¤ëÎΰè¤ò¶¦Í­¤·¤Æ¡¢ -¥×¥í¥»¥¹´Ö¤Ç¾ðÊó¤ò¤ä¤ê¼è¤ê¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +POSIX 共有メモリ API を使用すると、メモリのある領域を共有して、 +プロセス間で情報をやり取りすることができる。 .\"O The interfaces employed in the API are: -¤³¤Î API ¤Ç¤Ï°Ê²¼¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ºÎÍѤµ¤ì¤Æ¤¤¤ë¡£ +この API では以下のインターフェースが採用されている。 .TP 15 .BR shm_open (3) .\"O Create and open a new object, or open an existing object. @@ -49,40 +49,40 @@ POSIX .\"O .BR open (2). .\"O The call returns a file descriptor for use by the other .\"O interfaces listed below. -¿·¤·¤¤¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤·¥ª¡¼¥×¥ó¤¹¤ë¡¢¤â¤·¤¯¤Ï -´û¸¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£¤³¤ì¤Ï +新しいオブジェクトを生成しオープンする、もしくは +既存のオブジェクトをオープンする。これは .BR open (2) -¤ÈƱ¤¸¤Ç¤¢¤ë¡£²¼µ­¤Ë¤¢¤ë¾¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç»ÈÍѤ¹¤ë -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ +と同じである。下記にある他のインターフェースで使用する +ファイルディスクリプタを返す。 .TP .BR ftruncate (2) .\"O Set the size of the shared memory object. .\"O (A newly created shared memory object has a length of zero.) -¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È¤ÎÂ礭¤µ¤òÀßÄꤹ¤ë¡£ +共有メモリオブジェクトの大きさを設定する。 .TP .BR mmap (2) .\"O Map the shared memory object into the virtual address space .\"O of the calling process. -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î²¾ÁÛ¥¢¥É¥ì¥¹¶õ´Ö¤Ë¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È¤ò -¥Þ¥Ã¥×¤¹¤ë¡£ +呼び出したプロセスの仮想アドレス空間に共有メモリオブジェクトを +マップする。 .TP .BR munmap (2) .\"O Unmap the shared memory object from the virtual address space .\"O of the calling process. -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î²¾ÁÛ¥¢¥É¥ì¥¹¶õ´Ö¤«¤é -¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È¤ò¥¢¥ó¥Þ¥Ã¥×¤¹¤ë¡£ +呼び出したプロセスの仮想アドレス空間から +共有メモリオブジェクトをアンマップする。 .TP .BR shm_unlink (3) .\"O Remove a shared memory object name. -¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È̾¤òºï½ü¤¹¤ë¡£ +共有メモリオブジェクト名を削除する。 .TP .BR close (2) .\"O Close the file descriptor allocated by .\"O .BR shm_open (3) .\"O when it is no longer needed. .BR shm_open (3) -¤Ç³ä¤êÅö¤Æ¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÉÔÍפˤʤ俺ݤˡ¢ -¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +で割り当てられたファイルディスクリプタが不要になった際に、 +そのファイルディスクリプタをクローズする。 .TP .BR fstat (2) .\"O Obtain a @@ -97,77 +97,77 @@ POSIX .\"O .RI ( st_uid ), .\"O and group .\"O .RI ( st_gid ). -¤½¤Î¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤¬Æþ¤Ã¤¿ +その共有メモリオブジェクトについての情報が入った .I stat -¹½Â¤ÂΤò¼èÆÀ¤¹¤ë¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ÊÖ¤¹¾ðÊó¤Ë¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¤Î¥µ¥¤¥º -.RI ( st_size )¡¢ -µö²Ä°À­ -.RI ( st_mode )¡¢ -½êÍ­¼Ô -.RI ( st_uid )¡¢ -¥°¥ë¡¼¥× +構造体を取得する。 +このシステムコールが返す情報には、オブジェクトのサイズ +.RI ( st_size )、 +許可属性 +.RI ( st_mode )、 +所有者 +.RI ( st_uid )、 +グループ .RI ( st_gid ) -¤¬¤¢¤ë¡£ +がある。 .TP .BR fchown (2) .\"O To change the ownership of a shared memory object. -¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È¤Î½êÍ­¸¢¤òÊѹ¹¤¹¤ë¡£ +共有メモリオブジェクトの所有権を変更する。 .TP .BR fchmod (2) .\"O To change the permissions of a shared memory object. -¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È¤Îµö²Ä°À­¤òÊѹ¹¤¹¤ë¡£ +共有メモリオブジェクトの許可属性を変更する。 .\"O .SS Versions -.SS ¥Ð¡¼¥¸¥ç¥ó +.SS バージョン .\"O POSIX shared memory is supported since Linux 2.4 and glibc 2.2. -POSIX ¶¦Í­¥á¥â¥ê¤Ï Linux 2.4 ¤È glibc 2.2 °Ê¹ß¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +POSIX 共有メモリは Linux 2.4 と glibc 2.2 以降でサポートされている。 .\"O .SS Persistence -.SS »ý³À­ +.SS 持続性 .\"O POSIX shared memory objects have kernel persistence: .\"O a shared memory object will exist until the system is shut down, .\"O or until all processes have unmapped the object and it has been deleted with .\"O .BR shm_unlink (3) -POSIX ¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È¤Ï¥«¡¼¥Í¥ëÆâ¤ÇÊÝ»ý¤µ¤ì¤ë¡£ -¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢¥·¥¹¥Æ¥à¤¬¥·¥ã¥Ã¥È¥À¥¦¥ó¤µ¤ì¤ë¤«¡¢ -Á´¤Æ¤Î¥×¥í¥»¥¹¤¬¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò¥¢¥ó¥Þ¥Ã¥×¤·¡¢ +POSIX 共有メモリオブジェクトはカーネル内で保持される。 +共有メモリオブジェクトは、システムがシャットダウンされるか、 +全てのプロセスがそのオブジェクトをアンマップし、 .BR shm_unlink (3) -¤Çºï½ü¤µ¤ì¤ë¤Þ¤Ç¡¢Â¸ºß¤·Â³¤±¤ë¡£ +で削除されるまで、存在し続ける。 .\"O .SS Linking -.SS ¥ê¥ó¥¯ +.SS リンク .\"O Programs using the POSIX shared memory API must be compiled with .\"O .I cc \-lrt .\"O to link against the real-time library, .\"O .IR librt . -POSIX ¶¦Í­¥á¥â¥ê API ¤ò»ÈÍѤ·¤¿¥×¥í¥°¥é¥à¤Ï +POSIX 共有メモリ API を使用したプログラムは .I cc \-lrt -¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¡¢¥ê¥¢¥ë¥¿¥¤¥à¥é¥¤¥Ö¥é¥ê +でコンパイルし、リアルタイムライブラリ .I librt -¤È¥ê¥ó¥¯¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +とリンクしなければならない。 .\"O .SS Accessing shared memory objects via the file system -.SS ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à·Ðͳ¤Ç¤Î¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î¥¢¥¯¥»¥¹ +.SS ファイルシステム経由での共有メモリオブジェクトへのアクセス .\"O On Linux, shared memory objects are created in a .\"O .RI ( tmpfs ) .\"O virtual file system, normally mounted under .\"O .IR /dev/shm . .\"O Since kernel 2.6.19, Linux supports the use of access control lists (ACLs) .\"O to control the permissions of objects in the virtual file system. -Linux ¤Ç¤Ï¡¢¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È¤ÏÄ̾ï +Linux では、共有メモリオブジェクトは通常 .I /dev/shm -°Ê²¼¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤ë²¾ÁÛ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à +以下にマウントされる仮想ファイルシステム .RI ( tmpfs ) -Æâ¤ËºîÀ®¤µ¤ì¤ë¡£ -¥«¡¼¥Í¥ë 2.6.19 °Ê¹ß¤Î Linux ¤Ç¤Ï¡¢ -²¾ÁÛ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÆâ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Îµö²Ä°À­¤ÎÀ©¸æ¤Ë¡¢ -¥¢¥¯¥»¥¹À©¸æ¥ê¥¹¥È (ACL; access control lists) ¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +内に作成される。 +カーネル 2.6.19 以降の Linux では、 +仮想ファイルシステム内のオブジェクトの許可属性の制御に、 +アクセス制御リスト (ACL; access control lists) を使うことができる。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.1-2001. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Typically, processes must synchronize their access to a shared .\"O memory object, using, for example, POSIX semaphores. -Ä̾ï¤Ï¡¢¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¯¥»¥¹¤¹¤ë¥×¥í¥»¥¹¤Ï¡¢ -POSIX ¥»¥Þ¥Õ¥©¤Ê¤É¤ò»È¤Ã¤Æ¥×¥í¥»¥¹´Ö¤ÇƱ´ü¤ò¤È¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +通常は、共有メモリオブジェクトにアクセスするプロセスは、 +POSIX セマフォなどを使ってプロセス間で同期をとらなければならない。 .\"O System V shared memory .\"O .RB ( shmget (2), @@ -176,15 +176,15 @@ POSIX .\"O POSIX shared memory provides a simpler, and better designed interface; .\"O on the other hand POSIX shared memory is somewhat less widely available .\"O (especially on older systems) than System V shared memory. -System V ¶¦Í­¥á¥â¥ê +System V 共有メモリ .RB ( shmget (2), .BR shmop (2) -¤Ê¤É) ¤Ï¸Å¤¤¶¦Í­¥á¥â¥ê API ¤Ç¤¢¤ë¡£ -POSIX ¶¦Í­¥á¥â¥ê¤Ï¡¢¤è¤ê´Êñ¤Ç¡¢¤¦¤Þ¤¯À߷פµ¤ì¤¿¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤·¤Æ¤¤¤ë¡£ -°ìÊý¤Ç¡¢POSIX ¶¦Í­¥á¥â¥ê¤Ï System V ¶¦Í­¥á¥â¥ê¤ÈÈæ¤Ù¤ë¤È -ÍøÍѤǤ­¤ë¥·¥¹¥Æ¥à¤¬¾¯¤Ê¤¤ (Æäˡ¢¸Å¤¤¥·¥¹¥Æ¥à¤Ç¤Ï¾¯¤Ê¤¤)¡£ +など) は古い共有メモリ API である。 +POSIX 共有メモリは、より簡単で、うまく設計されたインタフェースを提供している。 +一方で、POSIX 共有メモリは System V 共有メモリと比べると +利用できるシステムが少ない (特に、古いシステムでは少ない)。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fchmod (2), .BR fchown (2), .BR fstat (2), diff --git a/draft/man7/signal.7 b/draft/man7/signal.7 index 8eecae05..ecd554f3 100644 --- a/draft/man7/signal.7 +++ b/draft/man7/signal.7 @@ -57,53 +57,53 @@ .\" Updated 2008-11-21, Akihiro MOTOKI , LDP v3.13 .\" Updated 2010-04-10, Akihiro MOTOKI , LDP v3.24 .\" -.\"WORD: disposition ½èÍýÊýË¡ -.\"WORD: pending ½èÍýÂÔ¤Á -.\"WORD: signal handler ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é +.\"WORD: disposition 処理方法 +.\"WORD: pending 処理待ち +.\"WORD: signal handler シグナルハンドラ .\" .TH SIGNAL 7 2011-09-18 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O signal \- overview of signals -.SH ̾Á° -signal \- ¥·¥°¥Ê¥ë¤Î³µÍ× +.SH 名前 +signal \- シグナルの概要 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Linux supports both POSIX reliable signals (hereinafter .\"O "standard signals") and POSIX real-time signals. -Linux ¤Ï POSIX ¿®Íꥷ¥°¥Ê¥ë (reliable signal; °Ê¸å "ɸ½à¥·¥°¥Ê¥ë"¤Èɽµ­) -¤È POSIX ¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÎξÊý¤ËÂбþ¤·¤Æ¤¤¤ë¡£ +Linux は POSIX 信頼シグナル (reliable signal; 以後 "標準シグナル"と表記) +と POSIX リアルタイムシグナルの両方に対応している。 .\"O .SS "Signal Dispositions" -.SS ¥·¥°¥Ê¥ë½èÍýÊýË¡ +.SS シグナル処理方法 .\"O Each signal has a current .\"O .IR disposition , .\"O which determines how the process behaves when it is delivered .\"O the signal. -¥·¥°¥Ê¥ë¤Ï¤½¤ì¤¾¤ì¸½ºß¤Î¡Ö½èÍýÊýË¡ (disposition)¡×¤òÊÝ»ý¤·¤Æ¤ª¤ê¡¢ -¤³¤Î½èÍýÊýË¡¤Ë¤è¤ê¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤¿ºÝ¤Ë¥×¥í¥»¥¹¤¬ -¤É¤Î¤è¤¦¤Ê¿¶Éñ¤¤¤ò¤¹¤ë¤«¤¬·è¤Þ¤ë¡£ +シグナルはそれぞれ現在の「処理方法 (disposition)」を保持しており、 +この処理方法によりシグナルが配送された際にプロセスが +どのような振舞いをするかが決まる。 .\"O The entries in the "Action" column of the tables below specify .\"O the default disposition for each signal, as follows: -¸å½Ò¤Îɽ¤Î "Æ°ºî" ¤ÎÍó¤Î¥¨¥ó¥È¥ê¤Ï³Æ¥·¥°¥Ê¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤Î -½èÍýÊýË¡¤ò¼¨¤·¤Æ¤ª¤ê¡¢°Ê²¼¤Î¤è¤¦¤Ê°ÕÌ£¤ò»ý¤Ä¡£ +後述の表の "動作" の欄のエントリは各シグナルのデフォルトの +処理方法を示しており、以下のような意味を持つ。 .IP Term .\"O Default action is to terminate the process. -¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¥×¥í¥»¥¹½ªÎ»¡£ +デフォルトの動作はプロセス終了。 .IP Ign .\"O Default action is to ignore the signal. -¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¤³¤Î¥·¥°¥Ê¥ë¤Î̵»ë¡£ +デフォルトの動作はこのシグナルの無視。 .IP Core .\"O Default action is to terminate the process and dump core (see .\"O .BR core (5)). -¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¥×¥í¥»¥¹½ªÎ»¤È¥³¥¢¥À¥ó¥×½ÐÎÏ +デフォルトの動作はプロセス終了とコアダンプ出力 .RB ( core (5) -»²¾È)¡£ +参照)。 .IP Stop .\"O Default action is to stop the process. -¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¥×¥í¥»¥¹¤Î°ì»þÄä»ß¡£ +デフォルトの動作はプロセスの一時停止。 .IP Cont .\"O Default action is to continue the process if it is currently stopped. -¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¡¢¥×¥í¥»¥¹¤¬Ää»ßÃæ¤Î¾ì¹ç¤Ë¤½¤Î¼Â¹Ô¤ÎºÆ³«¡£ +デフォルトの動作は、プロセスが停止中の場合にその実行の再開。 .PP .\"O A process can change the disposition of a signal using .\"O .BR sigaction (2) @@ -113,16 +113,16 @@ Linux .\"O see .\"O .BR signal (2) .\"O for details.) -¥×¥í¥»¥¹¤Ï¡¢ +プロセスは、 .BR sigaction (2) -¤ä +や .BR signal (2) -¤ò»È¤Ã¤Æ¡¢¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë +を使って、シグナルの処理方法を変更することができる .RB ( signal (2) -¤ÎÊý¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄꤹ¤ëºÝ¤Î°Ü¿¢À­¤¬Ä㤤; -¾ÜºÙ¤Ï +の方がシグナルハンドラを設定する際の移植性が低い; +詳細は .BR signal (2) -¤ò»²¾È)¡£ +を参照)。 .\"O Using these system calls, a process can elect one of the .\"O following behaviors to occur on delivery of the signal: .\"O perform the default action; ignore the signal; @@ -136,25 +136,25 @@ Linux .\"O uses an alternate stack; see .\"O .BR sigaltstack (2) .\"O for a discussion of how to do this and when it might be useful.) -¥·¥°¥Ê¥ë¤ÎÇÛÁ÷»þ¤Ëµ¯¤³¤ëÆ°ºî¤È¤·¤Æ -¥×¥í¥»¥¹¤¬ÁªÂò¤Ç¤­¤ë¤Î¤Ï¡¢¼¡¤Î¤¤¤º¤ì¤«°ì¤Ä¤Ç¤¢¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤ò¼Â¹Ô¤¹¤ë¡¢¥·¥°¥Ê¥ë¤ò̵»ë¤¹¤ë¡¢ -.I "¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é (signal handler)" -¤Ç¥·¥°¥Ê¥ë¤òÊ᪤¹¤ë¡£¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤È¤Ï¡¢¥·¥°¥Ê¥ëÇÛÁ÷»þ¤Ë -¼«Æ°Åª¤Ëµ¯Æ°¤µ¤ì¤ë¥×¥í¥°¥é¥ÞÄêµÁ¤Î´Ø¿ô¤Ç¤¢¤ë¡£ -(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ÏÄ̾ï¤Î¥×¥í¥»¥¹¤Î¥¹¥¿¥Ã¥¯¾å¤Çµ¯Æ°¤µ¤ì¤ë¡£ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬ÂåÂØ¥¹¥¿¥Ã¥¯ (alternate stack) ¤ò»ÈÍѤ¹¤ë¤è¤¦¤ËÀßÄꤹ¤ë -¤³¤È¤â¤Ç¤­¤ë¡£ÂåÂØ¥¹¥¿¥Ã¥¯¤ò»ÈÍѤ¹¤ë¤è¤¦¤ËÀßÄꤹ¤ëÊýË¡¤È¡¢¤É¤Î¤è¤¦¤ÊºÝ¤Ë -ÂåÂØ¥¹¥¿¥Ã¥¯¤¬Ìò¤ËΩ¤Ä¤«¤Ë¤Ä¤¤¤Æ¤ÎµÄÏÀ¤Ë¤Ä¤¤¤Æ¤Ï +シグナルの配送時に起こる動作として +プロセスが選択できるのは、次のいずれか一つである。 +デフォルトの動作を実行する、シグナルを無視する、 +.I "シグナルハンドラ (signal handler)" +でシグナルを捕捉する。シグナルハンドラとは、シグナル配送時に +自動的に起動されるプログラマ定義の関数である。 +(デフォルトでは、シグナルハンドラは通常のプロセスのスタック上で起動される。 +シグナルハンドラが代替スタック (alternate stack) を使用するように設定する +こともできる。代替スタックを使用するように設定する方法と、どのような際に +代替スタックが役に立つかについての議論については .BR sigaltstack (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O The signal disposition is a per-process attribute: .\"O in a multithreaded application, the disposition of a .\"O particular signal is the same for all threads. -¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤Ï¥×¥í¥»¥¹Ã±°Ì¤Î°À­¤Ç¤¢¤ë¡£ -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢¤¢¤ë¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤Ï -Á´¤Æ¤Î¥¹¥ì¥Ã¥É¤ÇƱ¤¸¤Ç¤¢¤ë¡£ +シグナルの処理方法はプロセス単位の属性である。 +マルチスレッドのアプリケーションでは、あるシグナルの処理方法は +全てのスレッドで同じである。 .\"O A child created via .\"O .BR fork (2) @@ -164,83 +164,83 @@ Linux .\"O the dispositions of handled signals are reset to the default; .\"O the dispositions of ignored signals are left unchanged. .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£ +で作成された子プロセスは親プロセスのシグナルの処理方法のコピーを継承する。 .BR execve (2) -¤Î´Ö¡¢¥Ï¥ó¥É¥é¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤Ï¥Ç¥Õ¥©¥ë¥È¤Ë¥ê¥»¥Ã¥È -¤µ¤ì¡¢Ìµ»ë¤È¤Ê¤Ã¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤ÏÊѹ¹¤µ¤ì¤º¤½¤Î¤Þ¤Þ¤È¤Ê¤ë¡£ +の間、ハンドラが登録されているシグナルの処理方法はデフォルトにリセット +され、無視となっているシグナルの処理方法は変更されずそのままとなる。 .\"O .SS Sending a Signal -.SS ¥·¥°¥Ê¥ë¤ÎÁ÷¿® +.SS シグナルの送信 .\"O The following system calls and library functions allow .\"O the caller to send a signal: -°Ê²¼¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¥é¥¤¥Ö¥é¥ê´Ø¿ô¤ò»È¤Ã¤Æ¡¢ -¸Æ¤Ó½Ð¤·¼Ô¤Ï¥·¥°¥Ê¥ë¤òÁ÷¿®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +以下のシステムコールとライブラリ関数を使って、 +呼び出し者はシグナルを送信することができる。 .TP 16 .BR raise (3) .\"O Sends a signal to the calling thread. -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +呼び出したスレッドにシグナルを送る。 .TP .BR kill (2) .\"O Sends a signal to a specified process, .\"O to all members of a specified process group, .\"O or to all processes on the system. -»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤ä¡¢»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÎÁ´¥á¥ó¥Ð¡¼¡¢ -¥·¥¹¥Æ¥à¤ÎÁ´¥×¥í¥»¥¹¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +指定されたプロセスや、指定されたプロセスグループの全メンバー、 +システムの全プロセスにシグナルを送る。 .TP .BR killpg (2) .\"O Sends a signal to all of the members of a specified process group. -»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÎÁ´¥á¥ó¥Ð¡¼¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +指定されたプロセスグループの全メンバーにシグナルを送る。 .TP .BR pthread_kill (3) .\"O Sends a signal to a specified POSIX thread in the same process as .\"O the caller. -¸Æ¤Ó½Ð¤·¼Ô¤ÈƱ¤¸¥×¥í¥»¥¹Æâ¤Î»ØÄꤵ¤ì¤¿ POSIX ¥¹¥ì¥Ã¥É¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +呼び出し者と同じプロセス内の指定された POSIX スレッドにシグナルを送る。 .TP .BR tgkill (2) .\"O Sends a signal to a specified thread within a specific process. .\"O (This is the system call used to implement .\"O .BR pthread_kill (3).) -»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹Æâ¤Î»ØÄꤵ¤ì¤¿¥¹¥ì¥Ã¥É¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë -(¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤Æ +指定されたプロセス内の指定されたスレッドにシグナルを送る +(このシステムコールを使って .BR pthread_kill (3) -¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë)¡£ +は実装されている)。 .TP .BR sigqueue (3) .\"O Sends a real-time signal with accompanying data to a specified process. -»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤ËÉÕ°¥Ç¡¼¥¿¤È¤È¤â¤Ë¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +指定されたプロセスに付属データとともにリアルタイムシグナルを送る。 .\"O .SS Waiting for a Signal to be Caught -.SS ¥·¥°¥Ê¥ë¤¬Ê᪤µ¤ì¤ë¤Î¤òÂÔ¤Ä +.SS シグナルが捕捉されるのを待つ .\"O The following system calls suspend execution of the calling process .\"O or thread until a signal is caught .\"O (or an unhandled signal terminates the process): -°Ê²¼¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤Æ¡¢¥·¥°¥Ê¥ë¤¬Ê᪤µ¤ì¤ë¤Þ¤Ç -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ä¥¹¥ì¥Ã¥É¤Î¼Â¹Ô¤òÃæÃÇ (suspend) ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë -(¥Ï¥ó¥É¥é¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¥·¥°¥Ê¥ë¤Ë¤è¤ê¤½¤Î¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿ -¾ì¹ç¤Ë¤â¼Â¹Ô¤ÎÄä»ß¤Ï½ªÎ»¤¹¤ë)¡£ +以下のシステムコールを使って、シグナルが捕捉されるまで +呼び出したプロセスやスレッドの実行を中断 (suspend) することができる +(ハンドラが設定されていないシグナルによりそのプロセスが終了した +場合にも実行の停止は終了する)。 .TP 16 .BR pause (2) .\"O Suspends execution until any signal is caught. -²¿¤«¥·¥°¥Ê¥ë¤¬Ê᪤µ¤ì¤ë¤Þ¤Ç¼Â¹Ô¤òÄä»ß¤¹¤ë¡£ +何かシグナルが捕捉されるまで実行を停止する。 .TP .BR sigsuspend (2) .\"O Temporarily changes the signal mask (see below) and suspends .\"O execution until one of the unmasked signals is caught. -°ì»þŪ¤Ë¥·¥°¥Ê¥ë¥Þ¥¹¥¯ (²¼µ­»²¾È) ¤òÊѹ¹¤·¡¢ -¥Þ¥¹¥¯¤µ¤ì¤Æ¤¤¤Ê¤¤¥·¥°¥Ê¥ë¤Î¤¤¤º¤ì¤«¤¬Ê᪤µ¤ì¤ë¤Þ¤Ç -¼Â¹Ô¤òÃæÃǤ¹¤ë¡£ +一時的にシグナルマスク (下記参照) を変更し、 +マスクされていないシグナルのいずれかが捕捉されるまで +実行を中断する。 .\"O .SS Synchronously Accepting a Signal -.SS ¥·¥°¥Ê¥ë¤ÎƱ´ü¼õ¿® +.SS シグナルの同期受信 .\"O Rather than asynchronously catching a signal via a signal handler, .\"O it is possible to synchronously accept the signal, that is, .\"O to block execution until the signal is delivered, .\"O at which point the kernel returns information about the .\"O signal to the caller. .\"O There are two general ways to do this: -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é·Ðͳ¤Ç¥·¥°¥Ê¥ë¤òÈóƱ´ü (asynchronously) ¤ÇÊ᪤¹¤ë°Ê³°¤Ë¤â¡¢ -¥·¥°¥Ê¥ë¤òƱ´ü (synchronously) ¤·¤Æ¼õ¤±ÉÕ¤±¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -Ʊ´ü¤·¤Æ¼õ¤±ÉÕ¤±¤ë¤È¤Ï¡¢¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ë¤Þ¤Ç¼Â¹Ô¤òÄä»ß (block) -¤¹¤ë¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£¥·¥°¥Ê¥ë¤ò¼õ¤±ÉÕ¤±¤¿ºÝ¤Ë¡¢¥«¡¼¥Í¥ë¤Ï -¤½¤Î¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤ò¸Æ¤Ó½Ð¤·¼Ô¤ËÊÖ¤¹¡£ -¤³¤ì¤ò¹Ô¤¦°ìÈÌŪ¤ÊÊýË¡¤¬Æó¤Ä¤¢¤ë¡£ +シグナルハンドラ経由でシグナルを非同期 (asynchronously) で捕捉する以外にも、 +シグナルを同期 (synchronously) して受け付けることもできる。 +同期して受け付けるとは、シグナルが配送されるまで実行を停止 (block) +するということである。シグナルを受け付けた際に、カーネルは +そのシグナルに関する情報を呼び出し者に返す。 +これを行う一般的な方法が二つある。 .IP * 2 .\"O .BR sigwaitinfo (2), .\"O .BR sigtimedwait (2), @@ -252,8 +252,8 @@ Linux .BR sigwaitinfo (2), .BR sigtimedwait (2), .BR sigwait (3) -¤Ï¡¢»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë½¸¹ç¤Î¥·¥°¥Ê¥ë¤Î°ì¤Ä¤¬ÇÛÁ÷¤µ¤ì¤ë¤Þ¤Ç¼Â¹Ô¤òÃæÃǤ¹¤ë¡£ -¤É¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä´Ø¿ô¤Ç¤â¡¢ÇÛÁ÷¤µ¤ì¤¿¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤¬ÊÖ¤µ¤ì¤ë¡£ +は、指定されたシグナル集合のシグナルの一つが配送されるまで実行を中断する。 +どのシステムコールや関数でも、配送されたシグナルに関する情報が返される。 .IP * .\"O .BR signalfd (2) .\"O returns a file descriptor that can be used to read information @@ -268,31 +268,31 @@ Linux .\"O .BR read (2) .\"O contains a structure describing the signal. .BR signalfd (2) -¤¬ÊÖ¤¹¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò»È¤¦¤È¡¢¸Æ¤Ó½Ð¤·¸µ¤ËÇÛÁ÷¤µ¤ì¤¿ -¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤òÆɤ߽Ф¹¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤é¤Î +が返すファイルディスクリプタを使うと、呼び出し元に配送された +シグナルに関する情報を読み出すことができる。 +このファイルディスクリプタからの .BR read (2) -¤Ï¡¢ +は、 .BR signalfd (2) -¤Î¸Æ¤Ó½Ð¤·»þ¤Ë»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë½¸¹ç¤Î¥·¥°¥Ê¥ë¤Î°ì¤Ä¤¬¸Æ¤Ó½Ð¤·¸µ¤Ë -ÇÛÁ÷¤µ¤ì¤ë¤Þ¤ÇÄä»ß (block) ¤¹¤ë¡£ +の呼び出し時に指定されたシグナル集合のシグナルの一つが呼び出し元に +配送されるまで停止 (block) する。 .BR read (2) -¤¬ÊÖ¤¹¥Ð¥Ã¥Õ¥¡¤Ë¤Ï¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤ò³ÊǼ¤·¤¿¹½Â¤ÂΤ¬Æþ¤Ã¤Æ¤¤¤ë¡£ +が返すバッファにはシグナルに関する情報を格納した構造体が入っている。 .\"O .SS "Signal Mask and Pending Signals" -.SS ¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤È½èÍýÂÔ¤Á¥·¥°¥Ê¥ë +.SS シグナルマスクと処理待ちシグナル .\"O A signal may be .\"O .IR blocked , .\"O which means that it will not be delivered until it is later unblocked. .\"O Between the time when it is generated and when it is delivered .\"O a signal is said to be .\"O .IR pending . -¥·¥°¥Ê¥ë¤Ï -.I "¥Ö¥í¥Ã¥¯ (block)" -¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¤È¡¢¤½¤Î¥·¥°¥Ê¥ë¤Ï -¤½¤Î¸å¥Ö¥í¥Ã¥¯¤ò²ò½ü¤µ¤ì¤ë¤Þ¤ÇÇÛÁ÷¤µ¤ì¤Ê¤¯¤Ê¤ë¡£ -¥·¥°¥Ê¥ë¤¬À¸À®¤µ¤ì¤Æ¤«¤éÇÛÁ÷¤µ¤ì¤ë¤Þ¤Ç¤Î´Ö¡¢¤½¤Î¥·¥°¥Ê¥ë¤Ï -.I "½èÍýÂÔ¤Á (pending)" -¤Ç¤¢¤ë¤È¸Æ¤Ð¤ì¤ë¡£ +シグナルは +.I "ブロック (block)" +されることがある。ブロックされると、そのシグナルは +その後ブロックを解除されるまで配送されなくなる。 +シグナルが生成されてから配送されるまでの間、そのシグナルは +.I "処理待ち (pending)" +であると呼ばれる。 .\"O Each thread in a process has an independent .\"O .IR "signal mask" , @@ -302,16 +302,16 @@ Linux .\"O In a traditional single-threaded application, .\"O .BR sigprocmask (2) .\"O can be used to manipulate the signal mask. -¥×¥í¥»¥¹Æâ¤Î³Æ¥¹¥ì¥Ã¥É¤Ï¡¢¤½¤ì¤¾¤ìÆÈΩ¤Ê -.I "¥·¥°¥Ê¥ë¥Þ¥¹¥¯ (signal mask)" -¤ò»ý¤Ä¡£¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ï¤½¤Î¥¹¥ì¥Ã¥É¤¬¸½ºß¥Ö¥í¥Ã¥¯¤·¤Æ¤¤¤ë -¥·¥°¥Ê¥ë½¸¹ç¤ò¼¨¤¹¤â¤Î¤Ç¤¢¤ë¡£ -¥¹¥ì¥Ã¥É¤Ï¡¢ +プロセス内の各スレッドは、それぞれ独立な +.I "シグナルマスク (signal mask)" +を持つ。シグナルマスクはそのスレッドが現在ブロックしている +シグナル集合を示すものである。 +スレッドは、 .BR pthread_sigmask (3) -¤ò»È¤Ã¤Æ¼«Ê¬¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÁàºî¤Ç¤­¤ë¡£ -ÅÁÅýŪ¤Ê¥·¥ó¥°¥ë¥¹¥ì¥Ã¥É¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ +を使って自分のシグナルマスクを操作できる。 +伝統的なシングルスレッドのアプリケーションでは、 .BR sigprocmask (2) -¤ò»È¤Ã¤Æ¡¢¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÁàºî¤Ç¤­¤ë¡£ +を使って、シグナルマスクを操作できる。 .\"O A child created via .\"O .BR fork (2) @@ -319,10 +319,10 @@ Linux .\"O the signal mask is preserved across .\"O .BR execve (2). .BR fork (2) -·Ðͳ¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢ -¿Æ¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£ +経由で作成された子プロセスは、 +親プロセスのシグナルマスクのコピーを継承する。 .BR execve (2) -¤ÎÁ°¸å¤Ç¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ÏÊÝ»ý¤µ¤ì¤ë¡£ +の前後でシグナルマスクは保持される。 .\"O A signal may be generated (and thus pending) .\"O for a process as a whole (e.g., when sent using @@ -340,24 +340,24 @@ Linux .\"O threads that does not currently have the signal blocked. .\"O If more than one of the threads has the signal unblocked, then the .\"O kernel chooses an arbitrary thread to which to deliver the signal. -À¸À®¤µ¤ì¤ë¥·¥°¥Ê¥ë (¤·¤¿¤¬¤Ã¤Æ½èÍýÂÔ¤Á¤È¤Ê¤ë¥·¥°¥Ê¥ë) ¤Ë¤Ï¡¢ -¥×¥í¥»¥¹Á´Âΰ¸¤Æ¤ÈÆÃÄê¤Î¥¹¥ì¥Ã¥É°¸¤Æ¤¬¤¢¤ë¡£ -Î㤨¤Ð¡¢¥×¥í¥»¥¹Á´Âΰ¸¤Æ¤Î¥·¥°¥Ê¥ë¤Ï +生成されるシグナル (したがって処理待ちとなるシグナル) には、 +プロセス全体宛てと特定のスレッド宛てがある。 +例えば、プロセス全体宛てのシグナルは .BR kill (2) -¤ò»È¤Ã¤ÆÁ÷¿®¤µ¤ì¤ë¡£ -ÆÃÄê¤Î¥Þ¥·¥ó¸ì¤ÎÌ¿Îá¤Î¼Â¹Ô¤Î·ë²Ì¤È¤·¤ÆÀ¸À®¤µ¤ì¤ë¡¢ +を使って送信される。 +特定のマシン語の命令の実行の結果として生成される、 .B SIGSEGV -¤ä +や .B SIGFPE -¤Ê¤É¤Î¥·¥°¥Ê¥ë¤Ï¡¢¥¹¥ì¥Ã¥É°¸¤Æ¤È¤Ê¤ë¡£ -¤Þ¤¿¡¢ +などのシグナルは、スレッド宛てとなる。 +また、 .BR pthread_kill (3) -¤ò»È¤Ã¤ÆÆÃÄê¤Î¥¹¥ì¥Ã¥É°¸¤Æ¤ËÀ¸À®¤µ¤ì¤¿¥·¥°¥Ê¥ë¤â -¥¹¥ì¥Ã¥É°¸¤Æ¤È¤Ê¤ë¡£ -¥×¥í¥»¥¹°¸¤Æ¤Î¥·¥°¥Ê¥ë¤Ï¡¢¤½¤Î¥·¥°¥Ê¥ë¤ò¥Ö¥í¥Ã¥¯¤·¤Æ¤¤¤Ê¤¤¥¹¥ì¥Ã¥É¤Î¤¦¤Á -¤¤¤º¤ì¤«¤Î°ì¤Ä¤ËÇÛÁ÷¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤½¤Î¥·¥°¥Ê¥ë¤ò¥Ö¥í¥Ã¥¯¤·¤Æ¤¤¤Ê¤¤ -¥¹¥ì¥Ã¥É¤¬Ê£¿ô¤¢¤ë¾ì¹ç¡¢¥·¥°¥Ê¥ë¤òÇÛÁ÷¤¹¤ë¥¹¥ì¥Ã¥É¤Ï¥«¡¼¥Í¥ë¤¬ -̵ºî°Ù¤ËÁªÂò¤¹¤ë¡£ +を使って特定のスレッド宛てに生成されたシグナルも +スレッド宛てとなる。 +プロセス宛てのシグナルは、そのシグナルをブロックしていないスレッドのうち +いずれかの一つに配送することができる。そのシグナルをブロックしていない +スレッドが複数ある場合、シグナルを配送するスレッドはカーネルが +無作為に選択する。 .\"O A thread can obtain the set of signals that it currently has pending .\"O using @@ -365,11 +365,11 @@ Linux .\"O This set will consist of the union of the set of pending .\"O process-directed signals and the set of signals pending for .\"O the calling thread. -¥¹¥ì¥Ã¥É¤Ï¡¢ +スレッドは、 .BR sigpending (2) -¤ò»È¤Ã¤Æ¡¢¸½ºß½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë½¸¹ç¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î½¸¹ç¤Ï¡¢¥×¥í¥»¥¹°¸¤Æ¤Î½èÍýÂÔ¤Á¥·¥°¥Ê¥ë¤È -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É°¸¤Æ¤Î¥·¥°¥Ê¥ë¤ÎξÊý¤«¤é¹½À®¤µ¤ì¤ë¡£ +を使って、現在処理待ちのシグナル集合を取得することができる。 +この集合は、プロセス宛ての処理待ちシグナルと +呼び出したスレッド宛てのシグナルの両方から構成される。 .\"O A child created via .\"O .BR fork (2) @@ -377,12 +377,12 @@ Linux .\"O the pending signal set is preserved across an .\"O .BR execve (2). .BR fork (2) -·Ðͳ¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ç¤Ï¡¢½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë½¸¹ç¤Ï -¶õ¤Î½¸¹ç¤Ç½é´ü²½¤µ¤ì¤ë¡£ +経由で作成された子プロセスでは、処理待ちのシグナル集合は +空の集合で初期化される。 .BR execve (2) -¤ÎÁ°¸å¤Ç¡¢½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë½¸¹ç¤ÏÊÝ»ý¤µ¤ì¤ë¡£ +の前後で、処理待ちのシグナル集合は保持される。 .\"O .SS "Standard Signals" -.SS ɸ½à¥·¥°¥Ê¥ë +.SS 標準シグナル .\"O Linux supports the standard signals listed below. .\"O Several signal numbers .\"O are architecture-dependent, as indicated in the "Value" column. @@ -390,27 +390,27 @@ Linux .\"O alpha and sparc, .\"O the middle one for ix86, ia64, ppc, s390, arm and sh, .\"O and the last one for mips. -Linux ¤Ï°Ê²¼¤Ë¼¨¤¹É¸½à¥·¥°¥Ê¥ë¤ËÂбþ¤·¤Æ¤¤¤ë¡£ -¥·¥°¥Ê¥ëÈÖ¹æ¤Î°ìÉô¤Ï¥¢¡¼¥­¥Æ¥¯¥Á¥ã°Í¸¤Ç¤¢¤ê¡¢"ÃÍ" Íó¤Ë¼¨¤¹Ä̤ê¤Ç¤¢¤ë¡£ -(3¤Ä¤ÎÃͤ¬½ñ¤«¤ì¤Æ¤¤¤ë¤â¤Î¤Ï¡¢ 1¤ÄÌܤ¬ alpha ¤È sparc ¤ÇÄ̾ïÍ­¸ú¤ÊÃÍ¡¢ -¿¿¤óÃ椬 ix86, ia64, ppc, s390, arm, sh ¤Ç¤ÎÃÍ¡¢ºÇ¸å¤¬ mips ¤Ç¤ÎÃͤǤ¢¤ë¡£ +Linux は以下に示す標準シグナルに対応している。 +シグナル番号の一部はアーキテクチャ依存であり、"値" 欄に示す通りである。 +(3つの値が書かれているものは、 1つ目が alpha と sparc で通常有効な値、 +真ん中が ix86, ia64, ppc, s390, arm, sh での値、最後が mips での値である。 .\" parisc is a law unto itself .\"O A \- denotes that a signal is absent on the corresponding architecture.) -\- ¤Ï¤½¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤ª¤¤¤ÆÂбþ¤¹¤ë¥·¥°¥Ê¥ë¤¬¤Ê¤¤¤³¤È¤ò¼¨¤¹¡£) +\- はそのアーキテクチャにおいて対応するシグナルがないことを示す。) .\"O First the signals described in the original POSIX.1-1990 standard. -ºÇ½é¤Ë¡¢POSIX.1-1990 ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤ò¼¨¤¹¡£ +最初に、POSIX.1-1990 に定義されているシグナルを示す。 .TS l c c l ____ lB c c l. .\"O Signal Value Action Comment -¥·¥°¥Ê¥ë ÃÍ Æ°ºî ¥³¥á¥ó¥È +シグナル 値 動作 コメント .\"O SIGHUP \01 Term Hangup detected on controlling terminal .\"O or death of controlling process SIGHUP \01 Term T{ -À©¸æüËö(controlling terminal)¤Î¥Ï¥ó¥°¥¢¥Ã¥×¸¡½Ð¡¢ -¤Þ¤¿¤ÏÀ©¸æ¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î»à +制御端末(controlling terminal)のハングアップ検出、 +または制御しているプロセスの死 T} .\"O SIGINT \02 Term Interrupt from keyboard .\"O SIGQUIT \03 Core Quit from keyboard @@ -418,37 +418,37 @@ T} .\"O SIGABRT \06 Core Abort signal from \fBabort\fP(3) .\"O SIGFPE \08 Core Floating point exception .\"O SIGKILL \09 Term Kill signal -SIGINT \02 Term ¥­¡¼¥Ü¡¼¥É¤«¤é¤Î³ä¤ê¹þ¤ß (Interrupt) -SIGQUIT \03 Core ¥­¡¼¥Ü¡¼¥É¤Ë¤è¤ëÃæ»ß (Quit) -SIGILL \04 Core ÉÔÀµ¤ÊÌ¿Îá -SIGABRT \06 Core \fBabort\fP(3) ¤«¤é¤ÎÃæÃÇ (Abort) ¥·¥°¥Ê¥ë -SIGFPE \08 Core ÉâÆ°¾®¿ôÅÀÎã³° -SIGKILL \09 Term Kill ¥·¥°¥Ê¥ë +SIGINT \02 Term キーボードからの割り込み (Interrupt) +SIGQUIT \03 Core キーボードによる中止 (Quit) +SIGILL \04 Core 不正な命令 +SIGABRT \06 Core \fBabort\fP(3) からの中断 (Abort) シグナル +SIGFPE \08 Core 浮動小数点例外 +SIGKILL \09 Term Kill シグナル .\"O SIGSEGV 11 Core Invalid memory reference .\"O SIGPIPE 13 Term Broken pipe: write to pipe with no .\"O readers .\"O SIGALRM 14 Term Timer signal from \fBalarm\fP(2) .\"O SIGTERM 15 Term Termination signal -SIGSEGV 11 Core ÉÔÀµ¤Ê¥á¥â¥ê»²¾È -SIGPIPE 13 Term ¥Ñ¥¤¥×Ç˲õ: Æɤ߼ê¤Î̵¤¤¥Ñ¥¤¥×¤Ø¤Î½ñ¤­½Ð¤· -SIGALRM 14 Term \fBalarm\fP(2) ¤«¤é¤Î¥¿¥¤¥Þ¡¼¥·¥°¥Ê¥ë -SIGTERM 15 Term ½ªÎ» (termination) ¥·¥°¥Ê¥ë +SIGSEGV 11 Core 不正なメモリ参照 +SIGPIPE 13 Term パイプ破壊: 読み手の無いパイプへの書き出し +SIGALRM 14 Term \fBalarm\fP(2) からのタイマーシグナル +SIGTERM 15 Term 終了 (termination) シグナル .\"O SIGUSR1 30,10,16 Term User-defined signal 1 .\"O SIGUSR2 31,12,17 Term User-defined signal 2 .\"O SIGCHLD 20,17,18 Ign Child stopped or terminated .\"O SIGCONT 19,18,25 Cont Continue if stopped -SIGUSR1 30,10,16 Term ¥æ¡¼¥¶ÄêµÁ¥·¥°¥Ê¥ë 1 -SIGUSR2 31,12,17 Term ¥æ¡¼¥¶ÄêµÁ¥·¥°¥Ê¥ë 2 -SIGCHLD 20,17,18 Ign »Ò¥×¥í¥»¥¹¤Î°ì»þÄä»ß (stop) ¤Þ¤¿¤Ï½ªÎ» -SIGCONT 19,18,25 Cont °ì»þÄä»ß (stop) ¤«¤é¤ÎºÆ³« +SIGUSR1 30,10,16 Term ユーザ定義シグナル 1 +SIGUSR2 31,12,17 Term ユーザ定義シグナル 2 +SIGCHLD 20,17,18 Ign 子プロセスの一時停止 (stop) または終了 +SIGCONT 19,18,25 Cont 一時停止 (stop) からの再開 .\"O SIGSTOP 17,19,23 Stop Stop process .\"O SIGTSTP 18,20,24 Stop Stop typed at tty .\"O SIGTTIN 21,21,26 Stop tty input for background process .\"O SIGTTOU 22,22,27 Stop tty output for background process -SIGSTOP 17,19,23 Stop ¥×¥í¥»¥¹¤Î°ì»þÄä»ß (stop) -SIGTSTP 18,20,24 Stop üËö (tty) ¤è¤êÆþÎϤµ¤ì¤¿°ì»þÄä»ß (stop) -SIGTTIN 21,21,26 Stop ¥Ð¥Ã¥¯¥°¥é¥ó¥É¥×¥í¥»¥¹¤Î tty ÆþÎÏ -SIGTTOU 22,22,27 Stop ¥Ð¥Ã¥¯¥°¥é¥ó¥É¥×¥í¥»¥¹¤Î tty ½ÐÎÏ +SIGSTOP 17,19,23 Stop プロセスの一時停止 (stop) +SIGTSTP 18,20,24 Stop 端末 (tty) より入力された一時停止 (stop) +SIGTTIN 21,21,26 Stop バックグランドプロセスの tty 入力 +SIGTTOU 22,22,27 Stop バックグランドプロセスの tty 出力 .TE .\"O The signals @@ -456,44 +456,44 @@ SIGTTOU 22,22,27 Stop .\"O and .\"O .B SIGSTOP .\"O cannot be caught, blocked, or ignored. -¥·¥°¥Ê¥ë +シグナル .B SIGKILL -¤È +と .B SIGSTOP -¤Ï¥­¥ã¥Ã¥Á¡¢¥Ö¥í¥Ã¥¯¡¢Ìµ»ë¤Ç¤­¤Ê¤¤¡£ +はキャッチ、ブロック、無視できない。 .\"O Next the signals not in the POSIX.1-1990 standard but described in .\"O SUSv2 and POSIX.1-2001. -¼¡¤Ë¡¢ POSIX.1-1990 ɸ½à¤Ë¤Ï¤Ê¤¤¤¬¡¢ SUSv2 ¤È -POSIX.1-2001 ¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤ò¼¨¤¹¡£ +次に、 POSIX.1-1990 標準にはないが、 SUSv2 と +POSIX.1-2001 に記述されているシグナルを示す。 .TS l c c l ____ lB c c l. .\"O Signal Value Action Comment -¥·¥°¥Ê¥ë ÃÍ Æ°ºî ¥³¥á¥ó¥È +シグナル 値 動作 コメント .\"O SIGBUS 10,7,10 Core Bus error (bad memory access) .\"O SIGPOLL Term Pollable event (Sys V). .\"O Synonym for \fBSIGIO\fP .\"O SIGPROF 27,27,29 Term Profiling timer expired -SIGBUS 10,7,10 Core ¥Ð¥¹¥¨¥é¡¼ (ÉÔÀµ¤Ê¥á¥â¥ê¥¢¥¯¥»¥¹) -SIGPOLL Term ¥Ý¡¼¥ê¥ó¥°²Äǽ¤Ê¥¤¥Ù¥ó¥È (Sys V)¡£ - \fBSIGIO\fP ¤ÈƱµÁ -SIGPROF 27,27,29 Term profiling ¥¿¥¤¥Þ¤Î»þ´ÖÀÚ¤ì +SIGBUS 10,7,10 Core バスエラー (不正なメモリアクセス) +SIGPOLL Term ポーリング可能なイベント (Sys V)。 + \fBSIGIO\fP と同義 +SIGPROF 27,27,29 Term profiling タイマの時間切れ .\"O SIGSYS 12,31,12 Core Bad argument to routine (SVr4) .\"O SIGTRAP 5 Core Trace/breakpoint trap .\"O SIGURG 16,23,21 Ign Urgent condition on socket (4.2BSD) -SIGSYS 12,31,12 Core ¥ë¡¼¥Á¥ó¤Ø¤Î°ú¤­¿ô¤¬ÉÔÀµ (SVr4) -SIGTRAP 5 Core ¥È¥ì¡¼¥¹/¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È ¥È¥é¥Ã¥× +SIGSYS 12,31,12 Core ルーチンへの引き数が不正 (SVr4) +SIGTRAP 5 Core トレース/ブレークポイント トラップ SIGURG 16,23,21 Ign T{ -¥½¥±¥Ã¥È¤Î¶ÛµÞ»öÂÖ (urgent condition) (4.2BSD) +ソケットの緊急事態 (urgent condition) (4.2BSD) T} .\"O SIGVTALRM 26,26,28 Term Virtual alarm clock (4.2BSD) .\"O SIGXCPU 24,24,30 Core CPU time limit exceeded (4.2BSD) .\"O SIGXFSZ 25,25,31 Core File size limit exceeded (4.2BSD) -SIGVTALRM 26,26,28 Term ²¾ÁÛ¥¢¥é¡¼¥à¥¯¥í¥Ã¥¯ (4.2BSD) -SIGXCPU 24,24,30 Core CPU»þ´ÖÀ©¸ÂĶ²á (4.2BSD) -SIGXFSZ 25,25,31 Core ¥Õ¥¡¥¤¥ë¥µ¥¤¥ºÀ©¸Â¤ÎĶ²á (4.2BSD) +SIGVTALRM 26,26,28 Term 仮想アラームクロック (4.2BSD) +SIGXCPU 24,24,30 Core CPU時間制限超過 (4.2BSD) +SIGXFSZ 25,25,31 Core ファイルサイズ制限の超過 (4.2BSD) .TE .\"O Up to and including Linux 2.2, the default behavior for @@ -506,50 +506,50 @@ SIGXFSZ 25,25,31 Core .\"O is to terminate the process without a core dump.) .\"O Linux 2.4 conforms to the POSIX.1-2001 requirements for these signals, .\"O terminating the process with a core dump. -Linux 2.2 °ÊÁ°¤Ç¤Ï¡¢ +Linux 2.2 以前では、 .BR SIGSYS ", " SIGXCPU ", " SIGXFSZ -¤ª¤è¤Ó SPARC ¤È MIPS °Ê³°¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Î +および SPARC と MIPS 以外のアーキテクチャでの .B SIGBUS -¤Î¥Ç¥Õ¥©¥ë¥È¤Î¿¶¤ëÉñ¤¤¤Ï (¥³¥¢¥À¥ó¥×½ÐÎϤʤ·¤Î) ¥×¥í¥»¥¹½ªÎ»¤Ç¤¢¤Ã¤¿¡£ -(¾¤Î UNIX ¥·¥¹¥Æ¥à¤Ë¤â -.BR SIGXCPU " ¤È " SIGXFSZ -¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤¬¥³¥¢¥À¥ó¥×¤Ê¤·¤Î¥×¥í¥»¥¹½ªÎ»¤Î¤â¤Î¤¬¤¢¤ë¡£) -Linux 2.4 ¤Ç¤Ï¡¢POSIX.1-2001 ¤Ç¤ÎÍ×µá»ÅÍͤ˽àµò¤·¤Æ¡¢ -¤³¤ì¤é¤Î¥·¥°¥Ê¥ë¤Ç¡¢¥×¥í¥»¥¹¤ò½ªÎ»¤µ¤»¡¢¥³¥¢¥À¥ó¥×¤ò½ÐÎϤ¹¤ë -¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +のデフォルトの振る舞いは (コアダンプ出力なしの) プロセス終了であった。 +(他の UNIX システムにも +.BR SIGXCPU " と " SIGXFSZ +のデフォルトの動作がコアダンプなしのプロセス終了のものがある。) +Linux 2.4 では、POSIX.1-2001 での要求仕様に準拠して、 +これらのシグナルで、プロセスを終了させ、コアダンプを出力する +ようになっている。 .\"O Next various other signals. -¼¡¤Ë¤½¤Î¾¤Î³Æ¼ï¥·¥°¥Ê¥ë¤ò¼¨¤¹¡£ +次にその他の各種シグナルを示す。 .TS l c c l ____ lB c c l. .\"O Signal Value Action Comment -¥·¥°¥Ê¥ë ÃÍ Æ°ºî ¥³¥á¥ó¥È +シグナル 値 動作 コメント .\"O SIGIOT 6 Core IOT trap. A synonym for \fBSIGABRT\fP .\"O SIGEMT 7,\-,7 Term .\"O SIGSTKFLT \-,16,\- Term Stack fault on coprocessor (unused) .\"O SIGIO 23,29,22 Term I/O now possible (4.2BSD) .\"O SIGCLD \-,\-,18 Ign A synonym for \fBSIGCHLD\fP -SIGIOT 6 Core IOT ¥È¥é¥Ã¥×¡£\fBSIGABRT\fP ¤ÈƱµÁ +SIGIOT 6 Core IOT トラップ。\fBSIGABRT\fP と同義 SIGEMT 7,\-,7 Term SIGSTKFLT \-,16,\- A T{ -¿ôÃͱ黻¥×¥í¥»¥Ã¥µ¤Ë¤ª¤±¤ë¥¹¥¿¥Ã¥¯¥Õ¥©¥ë¥È (̤»ÈÍÑ) +数値演算プロセッサにおけるスタックフォルト (未使用) T} -SIGIO 23,29,22 Term Æþ½ÐÎϤ¬²Äǽ¤Ë¤Ê¤Ã¤¿ (4.2BSD) -SIGCLD \-,\-,18 Ign \fBSIGCHLD\fP ¤ÈƱµÁ +SIGIO 23,29,22 Term 入出力が可能になった (4.2BSD) +SIGCLD \-,\-,18 Ign \fBSIGCHLD\fP と同義 .\"O SIGPWR 29,30,19 Term Power failure (System V) .\"O SIGINFO 29,\-,\- A synonym for \fBSIGPWR\fP .\"O SIGLOST \-,\-,\- Term File lock lost .\"O SIGWINCH 28,28,20 Ign Window resize signal (4.3BSD, Sun) .\"O SIGUNUSED \-,31,\- Core Synonymous with \fBSIGSYS\fP -SIGPWR 29,30,19 Term ÅŸ»ÁÓ¼º (Power failure) (System V) -SIGINFO 29,\-,\- \fBSIGPWR\fP ¤ÈƱµÁ -SIGLOST \-,\-,\- Term ¥Õ¥¡¥¤¥ë¥í¥Ã¥¯¤¬¼º¤ï¤ì¤¿ +SIGPWR 29,30,19 Term 電源喪失 (Power failure) (System V) +SIGINFO 29,\-,\- \fBSIGPWR\fP と同義 +SIGLOST \-,\-,\- Term ファイルロックが失われた SIGWINCH 28,28,20 Ign T{ -¥¦¥£¥ó¥É¥¦ ¥ê¥µ¥¤¥º ¥·¥°¥Ê¥ë (4.3BSD, Sun) +ウィンドウ リサイズ シグナル (4.3BSD, Sun) T} -SIGUNUSED \-,31,\- Core \fBSIGSYS\fP ¤ÈƱµÁ +SIGUNUSED \-,31,\- Core \fBSIGSYS\fP と同義 .TE .\"O (Signal 29 is @@ -559,13 +559,13 @@ SIGUNUSED \-,31,\- Core \fBSIGSYS\fP .\"O on an alpha but .\"O .B SIGLOST .\"O on a sparc.) -(¥·¥°¥Ê¥ë 29 ¤Ï alpha ¤Ç¤Ï +(シグナル 29 は alpha では .B SIGINFO / .B SIGPWR -¤À¤¬¡¢sparc ¤Ç¤Ï +だが、sparc では .B SIGLOST -¤Ç¤¢¤ë¡£) +である。) .\"O .B SIGEMT .\"O is not specified in POSIX.1-2001, but nevertheless appears @@ -573,23 +573,23 @@ SIGUNUSED \-,31,\- Core \fBSIGSYS\fP .\"O where its default action is typically to terminate .\"O the process with a core dump. .B SIGEMT -¤Ï POSIX.1-2001 ¤Ëµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -¤½¤Î¾¤Î¿¤¯¤Î UNIX ¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¿¤¯¤Î¾ì¹ç¡¢¥³¥¢¥À¥ó¥×½ÐÎϤòȼ¤¦¥×¥í¥»¥¹¤Î½ªÎ»¤Ç¤¢¤ë¡£ +は POSIX.1-2001 に規定されていないが、 +その他の多くの UNIX システムに存在する。 +デフォルトの動作は多くの場合、コアダンプ出力を伴うプロセスの終了である。 .\"O .B SIGPWR .\"O (which is not specified in POSIX.1-2001) is typically ignored .\"O by default on those other UNIX systems where it appears. .B SIGPWR -¤Ï (POSIX.1-2001 ¤Ëµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬) ¤³¤Î¥·¥°¥Ê¥ë¤¬Â¸ºß¤¹¤ë -¾¤Î UNIX ¥·¥¹¥Æ¥à¤Ç¤Ï¿¤¯¤Î¾ì¹ç¡¢¥Ç¥Õ¥©¥ë¥ÈÆ°ºî¤Ï̵»ë¤Ç¤¢¤ë¡£ +は (POSIX.1-2001 に規定されていないが) このシグナルが存在する +他の UNIX システムでは多くの場合、デフォルト動作は無視である。 .\"O .B SIGIO .\"O (which is not specified in POSIX.1-2001) is ignored by default .\"O on several other UNIX systems. .B SIGIO -¤Ï (POSIX.1-2001 ¤Ëµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬) ¤¤¤¯¤Ä¤«¤Î¾¤Î UNIX ¥·¥¹¥Æ¥à¤Ç¤Ï -¥Ç¥Õ¥©¥ë¥ÈÆ°ºî¤Ï̵»ë¤Ç¤¢¤ë¡£ +は (POSIX.1-2001 に規定されていないが) いくつかの他の UNIX システムでは +デフォルト動作は無視である。 .\"O Where defined, .\"O .B SIGUNUSED @@ -598,17 +598,17 @@ SIGUNUSED \-,31,\- Core \fBSIGSYS\fP .\"O .B SIGSYS .\"O on most architectures. .B SIGUNUSED -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢¤Û¤È¤ó¤É¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç +が定義されている場合には、ほとんどのアーキテクチャで .B SIGSYS -¤ÎƱµÁ¸ì¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ +の同義語となっている。 .\" parisc is the only exception: SIGSYS is 12, SIGUNUSED is 31 .\"O .SS "Real-time Signals" -.SS ¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë +.SS リアルタイムシグナル .\"O Linux supports real-time signals as originally defined in the POSIX.1b .\"O real-time extensions (and now included in POSIX.1-2001). -Linux ¤Ï¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Ï¸µ¡¹ POSIX.1b ¤Î¥ê¥¢¥ë¥¿¥¤¥à³ÈÄ¥¤ÇÄêµÁ¤µ¤ì¤Æ -¤¤¤ë¤â¤Î¤Ç¤¢¤ê¡¢¸½ºß¤Ç¤Ï POSIX.1-2001 ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +Linux はリアルタイムシグナルをサポートしている。 +リアルタイムシグナルは元々 POSIX.1b のリアルタイム拡張で定義されて +いるものであり、現在では POSIX.1-2001 に含まれている。 .\"O The range of supported real-time signals is defined by the macros .\"O .B SIGRTMIN .\"O and @@ -616,14 +616,14 @@ Linux .\"O POSIX.1-2001 requires that an implementation support at least .\"O .B _POSIX_RTSIG_MAX .\"O (8) real-time signals. -Âбþ¤·¤Æ¤¤¤ë¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÎÈϰϤϡ¢¥Þ¥¯¥í +対応しているリアルタイムシグナルの範囲は、マクロ .B SIGRTMIN -¤È +と .B SIGRTMAX -¤ÇÄêµÁ¤µ¤ì¤ë¡£ -POSIX.1-2001 ¤Ç¤Ï¡¢¾¯¤Ê¤¯¤È¤â +で定義される。 +POSIX.1-2001 では、少なくとも .B _POSIX_RTSIG_MAX -(8) ¸Ä¤Î¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ËÂбþ¤·¤¿¼ÂÁõ¤¬Í׵ᤵ¤ì¤Æ¤¤¤ë¡£ +(8) 個のリアルタイムシグナルに対応した実装が要求されている。 .PP .\"O The Linux kernel supports a range of 32 different real-time .\"O signals, numbered 33 to 64. @@ -634,15 +634,15 @@ POSIX.1-2001 .\"O and adjusts the value of .\"O .B SIGRTMIN .\"O suitably (to 34 or 35). -Linux ¤Ï¡¢32 ¸Ä¤Î°Û¤Ê¤ë¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ËÂбþ¤·¤Æ¤ª¤ê¡¢ -¤½¤ÎÈÖ¹æ¤Ï 33 ¤«¤é 64 ¤Ç¤¢¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢glibc ¤Î POSIX ¥¹¥ì¥Ã¥É¼ÂÁõ¤Ï¡¢ -ÆâÉô¤Ç 2¸Ä (NPTL ¤Î¾ì¹ç) ¤« 3¸Ä (LinuxThreads ¤Î¾ì¹ç) ¤Î -¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ò»ÈÍѤ·¤Æ¤ª¤ê +Linux は、32 個の異なるリアルタイムシグナルに対応しており、 +その番号は 33 から 64 である。 +しかしながら、glibc の POSIX スレッド実装は、 +内部で 2個 (NPTL の場合) か 3個 (LinuxThreads の場合) の +リアルタイムシグナルを使用しており .RB ( pthreads (7) -»²¾È)¡¢ +参照)、 .B SIGRTMIN -¤ÎÃͤòŬÀÚ¤Ë (34 ¤« 35 ¤Ë) Ä´À°¤¹¤ë¡£ +の値を適切に (34 か 35 に) 調整する。 .\"O Because the range of available real-time signals varies according .\"O to the glibc threading implementation (and this variation can occur .\"O at run time according to the available kernel and glibc), @@ -655,49 +655,49 @@ Linux .\"O .BR SIGRTMIN +n .\"O does not exceed .\"O .BR SIGRTMAX . -ÍøÍѲÄǽ¤Ê¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÎÈÏ°Ï¤Ï glibc ¤Î¥¹¥ì¥Ã¥É¼ÂÁõ¤Ë¤è¤ê -°Û¤Ê¤ë¤· (»ÈÍѤ¹¤ë¥«¡¼¥Í¥ë¤È glibc ¤Ë¤è¤ê¼Â¹Ô»þ¤Ë¤âÊѲ½¤¹¤ë)¡¢ -UNIX ¥·¥¹¥Æ¥à¤Î¼ïÎà¤Ë¤è¤Ã¤Æ¤â°Û¤Ê¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢ -¥×¥í¥°¥é¥à¤Ç¤Ï¡Ö¥Ï¡¼¥É¥³¡¼¥Ç¥£¥ó¥°¤·¤¿¿ô»ú¤ò»È¤Ã¤Æ¤Î¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Î -»²¾È¤Ï·è¤·¤Æ¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¯¡×¡¢Âå¤ï¤ê¤Ë +利用可能なリアルタイムシグナルの範囲は glibc のスレッド実装により +異なるし (使用するカーネルと glibc により実行時にも変化する)、 +UNIX システムの種類によっても異なる。したがって、 +プログラムでは「ハードコーディングした数字を使ってのリアルタイムシグナルの +参照は決してすべきではなく」、代わりに .BR SIGRTMIN +n -¤Î·Á¤Ç»²¾È¤¹¤Ù¤­¤Ç¤¢¤ë¡£¤Þ¤¿¡¢ +の形で参照すべきである。また、 .BR SIGRTMIN +n -¤¬ +が .B SIGRTMAX -¤òĶ¤¨¤Æ¤¤¤Ê¤¤¤«¤Î¥Á¥§¥Ã¥¯¤ò (¼Â¹Ô»þ¤Ë) ŬÀڤ˹Ԥ¦¤Ù¤­¤Ç¤¢¤ë¡£ +を超えていないかのチェックを (実行時に) 適切に行うべきである。 .PP .\"O Unlike standard signals, real-time signals have no predefined meanings: .\"O the entire set of real-time signals can be used for application-defined .\"O purposes. -ɸ½à¥·¥°¥Ê¥ë¤È°Û¤Ê¤ê¡¢¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Ë¤Ï -»öÁ°¤ËÄêµÁ¤µ¤ì¤¿°ÕÌ£¤Ï¤Ê¤¤¡£ -¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÎÁ´Éô¤ò¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÇÄêµÁ¤·¤¿ÍÑÅӤ˻Ȥ¨¤ë¡£ +標準シグナルと異なり、リアルタイムシグナルには +事前に定義された意味はない。 +リアルタイムシグナルの全部をアプリケーションで定義した用途に使える。 .PP .\"O The default action for an unhandled real-time signal is to terminate the .\"O receiving process. -¥Ï¥ó¥É¥ê¥ó¥°¤·¤Ê¤¤¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï -¼õ¿®¤·¤¿¥×¥í¥»¥¹¤Î½ªÎ»¤Ç¤¢¤ë¡£ +ハンドリングしないリアルタイムシグナルのデフォルトの動作は +受信したプロセスの終了である。 .PP .\"O Real-time signals are distinguished by the following: -¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Ï°Ê²¼¤ÎÆÃħ¤¬¤¢¤ë: +リアルタイムシグナルは以下の特徴がある: .IP 1. 4 .\"O Multiple instances of real-time signals can be queued. .\"O By contrast, if multiple instances of a standard signal are delivered .\"O while that signal is currently blocked, then only one instance is queued. -¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÏÊ£¿ô¤Î¼ÂÂΤò¥­¥å¡¼¤ËÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -°ìÊý¡¢É¸½à¥·¥°¥Ê¥ë¤Î¾ì¹ç¡¢¤½¤Î¥·¥°¥Ê¥ë¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë´Ö¤Ë -Ʊ¤¸¥·¥°¥Ê¥ë¤ÎÊ£¿ô¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤¬ÇÛÁ÷¤µ¤ì¤Æ¤â¡¢ -1 ¤Ä¤À¤±¤¬¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤ë¡£ +リアルタイムシグナルは複数の実体をキューに入れることができる。 +一方、標準シグナルの場合、そのシグナルがブロックされている間に +同じシグナルの複数のインスタンスが配送されても、 +1 つだけがキューに入れられる。 .IP 2. 4 .\"O If the signal is sent using .\"O .BR sigqueue (3), .\"O an accompanying value (either an integer or a pointer) can be sent .\"O with the signal. -¥·¥°¥Ê¥ë¤¬ +シグナルが .BR sigqueue (3) -¤òÍѤ¤¤ÆÁ÷¿®¤µ¤ì¤¿¾ì¹ç¡¢ -ÉÕ°¥Ç¡¼¥¿ (À°¿ô¤«¥Ý¥¤¥ó¥¿) ¤ò¥·¥°¥Ê¥ë¤È¶¦¤ËÁ÷¿®¤Ç¤­¤ë¡£ +を用いて送信された場合、 +付属データ (整数かポインタ) をシグナルと共に送信できる。 .\"O If the receiving process establishes a handler for this signal using the .\"O .B SA_SIGINFO .\"O flag to @@ -707,29 +707,29 @@ UNIX .\"O field of the .\"O .I siginfo_t .\"O structure passed as the second argument to the handler. -¼õ¿®Â¦¥×¥í¥»¥¹¤¬ +受信側プロセスが .BR sigaction (2) -¤Ë +に .B SA_SIGINFO -¥Õ¥é¥°¤ò»ØÄꤷ¤Æ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄꤷ¤¿¾ì¹ç¡¢ -¤³¤Î¥Ç¡¼¥¿¤Ï +フラグを指定してシグナルハンドラを設定した場合、 +このデータは .I siginfo_t -¹½Â¤ÂΤΠ+構造体の .I si_value -¥Õ¥£¡¼¥ë¥É·Ðͳ¤Ç¥Ï¥ó¥É¥é¤ÎÂè 2 °ú¤­¿ô¤È¤·¤ÆÅϤµ¤ì¡¢ -ÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +フィールド経由でハンドラの第 2 引き数として渡され、 +利用することができる。 .\"O Furthermore, the .\"O .I si_pid .\"O and .\"O .I si_uid .\"O fields of this structure can be used to obtain the PID .\"O and real user ID of the process sending the signal. -¤µ¤é¤Ë¡¢¤³¤Î¹½Â¤ÂΤΠ+さらに、この構造体の .I si_pid -¤È +と .I si_uid -¥Õ¥£¡¼¥ë¥É¤Ç¥·¥°¥Ê¥ë¤òÁ÷¿®¤·¤¿¥×¥í¥»¥¹¤Î PID ¤È¼Â¥æ¡¼¥¶ ID ¤ò -ÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +フィールドでシグナルを送信したプロセスの PID と実ユーザ ID を +得ることができる。 .IP 3. 4 .\"O Real-time signals are delivered in a guaranteed order. .\"O Multiple real-time signals of the same type are delivered in the order @@ -739,50 +739,50 @@ UNIX .\"O (I.e., low-numbered signals have highest priority.) .\"O By contrast, if multiple standard signals are pending for a process, .\"O the order in which they are delivered is unspecified. -¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Ç¤ÏÇÛÁ÷¤µ¤ì¤ë½ç½ø¤¬Êݾڤµ¤ì¤ë¡£ -Ʊ¤¸¥¿¥¤¥×¤Î¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÏÁ÷¿®¤µ¤ì¤¿½çÈÖ¤ËÅþÃ夹¤ë¡£ -°Û¤Ê¤ë¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤¬°ì¤Ä¤Î¥×¥í¥»¥¹¤ËÁ÷¿®¤µ¤ì¤¿¾ì¹ç¡¢ -ÈÖ¹æ¤Î¾®¤µ¤¤¥·¥°¥Ê¥ë¤«¤éÀè¤ËÅþÃ夹¤ë¡£ -(¤Ä¤Þ¤ê¾®¤µ¤¤ÈÖ¹æ¤Î¥·¥°¥Ê¥ë¤¬¹â¤¤Í¥Àè½ç°Ì¤ò»ý¤Ä¡£) -ÂоÈŪ¤Ë¡¢°ì¤Ä¤Î¥×¥í¥»¥¹¤ËÂФ·¤ÆÊ£¿ô¤Îɸ½à¥·¥°¥Ê¥ë¤¬½èÍýÂÔ¤Á¤È¤Ê¤Ã¤¿¾ì¹ç¡¢ -¤³¤ì¤é¤Î¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ë½ç½ø¤ÏÉÔÄê¤Ç¤¢¤ë¡£ +リアルタイムシグナルでは配送される順序が保証される。 +同じタイプのリアルタイムシグナルは送信された順番に到着する。 +異なるリアルタイムシグナルが一つのプロセスに送信された場合、 +番号の小さいシグナルから先に到着する。 +(つまり小さい番号のシグナルが高い優先順位を持つ。) +対照的に、一つのプロセスに対して複数の標準シグナルが処理待ちとなった場合、 +これらのシグナルが配送される順序は不定である。 .PP .\"O If both standard and real-time signals are pending for a process, .\"O POSIX leaves it unspecified which is delivered first. .\"O Linux, like many other implementations, gives priority .\"O to standard signals in this case. -°ì¤Ä¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æɸ½à¥·¥°¥Ê¥ë¤È¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÎξÊý¤¬ -½èÍýÂÔ¤Á¤Î¾ì¹ç¡¢POSIX ¤Ï¤É¤Á¤é¤¬Àè¤ËÇÛÁ÷¤µ¤ì¤ë¤«¤òµ¬Äꤷ¤Æ¤¤¤Ê¤¤¡£ -Linux ¤Ç¤Ï¡¢Â¾¤Î¿¤¯¤Î¼ÂÁõ¤ÈƱÍÍ¡¢¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï -ɸ½à¥·¥°¥Ê¥ë¤¬Í¥À褵¤ì¤ë¡£ +一つのプロセスに対して標準シグナルとリアルタイムシグナルの両方が +処理待ちの場合、POSIX はどちらが先に配送されるかを規定していない。 +Linux では、他の多くの実装と同様、このような場合には +標準シグナルが優先される。 .PP .\"O According to POSIX, an implementation should permit at least .\"O .B _POSIX_SIGQUEUE_MAX .\"O (32) real-time signals to be queued to .\"O a process. -POSIX ¤Ë¤è¤ì¤Ð¡¢1 ¥×¥í¥»¥¹Ëè¤ËºÇÄã +POSIX によれば、1 プロセス毎に最低 .B _POSIX_SIGQUEUE_MAX -(32) ¸Ä¤Î¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ò¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤ë¤Ù¤­¤È¤·¤Æ¤¤¤ë¡£ +(32) 個のリアルタイムシグナルをキューに入れられるべきとしている。 .\"O However, Linux does things differently. .\"O In kernels up to and including 2.6.7, Linux imposes .\"O a system-wide limit on the number of queued real-time signals .\"O for all processes. -¤·¤«¤·¡¢ Linux ¤Ç¤Ï°ã¤Ã¤¿¼ÂÁõ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¥«¡¼¥Í¥ë 2.6.7 ¤Þ¤Ç¤Ï -(2.6.7 ¤ò´Þ¤à)¡¢Á´¥×¥í¥»¥¹¤Ç¥­¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ë¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë -¤Î¿ô¤Î¹ç·×¤Ë¤Ä¤¤¤Æ¥·¥¹¥Æ¥àÁ´ÂΤǤÎÀ©¸Â¤¬¤¢¤ë¡£ +しかし、 Linux では違った実装になっている。カーネル 2.6.7 までは +(2.6.7 を含む)、全プロセスでキューに入っているリアルタイムシグナル +の数の合計についてシステム全体での制限がある。 .\"O This limit can be viewed and (with privilege) changed via the .\"O .I /proc/sys/kernel/rtsig-max .\"O file. .\"O A related file, .\"O .IR /proc/sys/kernel/rtsig-nr , .\"O can be used to find out how many real-time signals are currently queued. -¤³¤ÎÀ©¸Â¤Ï +この制限は .I /proc/sys/kernel/rtsig-max -¥Õ¥¡¥¤¥ë¤Ç¸«¤ë¤³¤È¤¬¤Ç¤­¡¢ (¸¢¸Â¤¬¤¢¤ì¤Ð) Êѹ¹¤â¤Ç¤­¤ë¡£ -´Ø·¸¤¹¤ë¥Õ¥¡¥¤¥ë¤È¤·¤Æ¡¢ +ファイルで見ることができ、 (権限があれば) 変更もできる。 +関係するファイルとして、 .I /proc/sys/kernel/rtsig-nr -¤ò¸«¤ë¤³¤È¤Ç¡¢¤¤¤¯¤Ä¤Î¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤¬¸½ºß¥­¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ë¤«¤ò -ÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ +を見ることで、いくつのリアルタイムシグナルが現在キューに入っているかを +知ることができる。 .\"O In Linux 2.6.8, these .\"O .I /proc .\"O interfaces were replaced by the @@ -791,18 +791,18 @@ POSIX .\"O signals; see .\"O .BR setrlimit (2) .\"O for further details. -Linux 2.6.8 ¤Ç¡¢¤³¤ì¤é¤Î +Linux 2.6.8 で、これらの .I /proc -·Ðͳ¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¡¢ +経由のインターフェースは、 .B RLIMIT_SIGPENDING -¥ê¥½¡¼¥¹À©¸Â¤ËÃÖ¤­´¹¤¨¤é¤ì¤¿¡£ -¤³¤ì¤Ï¡¢¥­¥å¡¼¤ËÆþ¤ë¥·¥°¥Ê¥ë¿ô¤Ë´Ø¤·¤Æ¥æ¡¼¥¶Ã±°Ì¤Ë -¾å¸Â¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¾Ü¤·¤¯¤Ï +リソース制限に置き換えられた。 +これは、キューに入るシグナル数に関してユーザ単位に +上限を指定するものである。 +詳しくは .BR setrlimit (2) -¤ò»²¾È¡£ +を参照。 .\"O .SS "Async-signal-safe functions" -.SS "ÈóƱ´ü¥·¥°¥Ê¥ë¤Ç°ÂÁ´¤Ê´Ø¿ô (async-signal-safe functions)" +.SS "非同期シグナルで安全な関数 (async-signal-safe functions)" .PP .\"O A signal handler function must be very careful, .\"O since processing elsewhere may be interrupted @@ -811,19 +811,19 @@ Linux 2.6.8 .\"O If a signal interrupts the execution of an unsafe function, and .\"O .I handler .\"O calls an unsafe function, then the behavior of the program is undefined. -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é´Ø¿ô¤Ë¤ÏÈó¾ï¤ËÃí°Õ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¾¤Î¾ì½ê¤Î½èÍý¤Ï¥×¥í¥°¥é¥à¼Â¹Ô¤ÎǤ°Õ¤Î²Õ½ê¤ÇÃæÃǤµ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¤¿¤á¤Ç¤¢¤ë¡£ -POSIX ¤Ë¤Ï¡Ö°ÂÁ´¤Ê´Ø¿ô (safe function)¡×¤È¤¤¤¦³µÇ°¤¬¤¢¤ë¡£ -¥·¥°¥Ê¥ë¤¬°ÂÁ´¤Ç¤Ê¤¤´Ø¿ô¤Î¼Â¹Ô¤òÃæÃǤ·¡¢¤«¤Ä +シグナルハンドラ関数には非常に注意しなければならない。 +他の場所の処理はプログラム実行の任意の箇所で中断される可能性があるためである。 +POSIX には「安全な関数 (safe function)」という概念がある。 +シグナルが安全でない関数の実行を中断し、かつ .I handler -¤¬°ÂÁ´¤Ç¤Ê¤¤´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¡¢¥×¥í¥°¥é¥à¤ÎµóÆ°¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +が安全でない関数を呼び出した場合、プログラムの挙動は未定義である。 .\"O POSIX.1-2004 (also known as POSIX.1-2001 Technical Corrigendum 2) .\"O requires an implementation to guarantee that the following .\"O functions can be safely called inside a signal handler: -POSIX.1-2004 (POSIX.1-2001 Technical Corrigendum (Àµ¸íɽ) 2 ¤È¤â¸À¤¦) ¤Ç¤Ï¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥éÆâ¤Ç¤Î°ÂÁ´¤Ê¸Æ¤Ó½Ð¤·¤òÊݾڤ¹¤ë¤³¤È¤¬É¬¿Ü¤Î´Ø¿ô¤È¤·¤Æ -°Ê²¼¤¬µ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +POSIX.1-2004 (POSIX.1-2001 Technical Corrigendum (正誤表) 2 とも言う) では、 +シグナルハンドラ内での安全な呼び出しを保証することが必須の関数として +以下が規定されている。 .in +4 .nf @@ -950,8 +950,8 @@ write() .PP .\"O POSIX.1-2008 removes fpathconf(), pathconf(), and sysconf() .\"O from the above list, and adds the following functions: -POSIX.1-2008 ¤Ç¤Ï¡¢¾åµ­¤Î¥ê¥¹¥È¤Î¤¦¤Á fpathconf(), pathconf(), sysconf() -¤¬ºï½ü¤µ¤ì¡¢°Ê²¼¤Î´Ø¿ô¤¬Äɲ䵤줿¡£ +POSIX.1-2008 では、上記のリストのうち fpathconf(), pathconf(), sysconf() +が削除され、以下の関数が追加された。 .PP .in +4n .nf @@ -978,20 +978,20 @@ utimes() .fi .in .\"O .SS Interruption of System Calls and Library Functions by Signal Handlers -.SS ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ø¤Î³ä¤ê¹þ¤ß +.SS シグナルハンドラによるシステムコールやライブラリ関数への割り込み .\"O If a signal handler is invoked while a system call or library .\"O function call is blocked, then either: -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä¥é¥¤¥Ö¥é¥ê¤¬Ää»ß (block) ¤·¤Æ¤¤¤ë´Ö¤Ë¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬ -µ¯Æ°¤µ¤ì¤ë¤È¡¢°Ê²¼¤Î¤É¤Á¤é¤«¤È¤Ê¤ë¡£ +システムコールやライブラリが停止 (block) している間にシグナルハンドラが +起動されると、以下のどちらかとなる。 .IP * 2 .\"O the call is automatically restarted after the signal handler returns; or -¥·¥°¥Ê¥ë¤¬Ê֤俸塢¸Æ¤Ó½Ð¤·¤Ï¼«Æ°Åª¤ËºÆ¥¹¥¿¡¼¥È¤µ¤ì¤ë¡£ +シグナルが返った後、呼び出しは自動的に再スタートされる。 .IP * .\"O the call fails with the error .\"O .BR EINTR . -¸Æ¤Ó½Ð¤·¤Ï¥¨¥é¡¼ +呼び出しはエラー .B EINTR -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .PP .\"O Which of these two behaviors occurs depends on the interface and .\"O whether or not the signal handler was established using the @@ -1000,14 +1000,14 @@ utimes() .\"O .BR sigaction (2)). .\"O The details vary across UNIX systems; .\"O below, the details for Linux. -¤³¤ì¤é¤ÎÆó¤Ä¤ÎµóÆ°¤Î¤¦¤Á¤É¤Á¤é¤¬µ¯¤³¤ë¤«¤Ï¡¢¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ë¤è¤ê°Í¸¤·¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬ +これらの二つの挙動のうちどちらが起こるかは、インターフェイスにより依存し、 +シグナルハンドラが .B SA_RESTART -¥Õ¥é¥° +フラグ .RB ( sigaction (2) -»²¾È) ¤ò»È¤Ã¤ÆÀßÄꤵ¤ì¤Æ¤¤¤¿¤«¤Ë¤â°Í¸¤¹¤ë¡£ -¾ÜºÙ¤Ï UNIX ¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¡£ -Linux ¤Ë¤ª¤±¤ë¾ÜºÙ¤ò°Ê²¼¤ÇÀâÌÀ¤¹¤ë¡£ +参照) を使って設定されていたかにも依存する。 +詳細は UNIX システムによって異なる。 +Linux における詳細を以下で説明する。 .\"O If a blocked call to one of the following interfaces is interrupted .\"O by a signal handler, then the call will be automatically restarted @@ -1017,16 +1017,16 @@ Linux .\"O .BR EINTR : .\"O .\" The following system calls use ERESTARTSYS, .\"O .\" so that they are restartable -°Ê²¼¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Î¤¤¤º¤ì¤«¤Î¸Æ¤Ó½Ð¤·¤¬Ää»ß¤·¤Æ¤¤¤ë´Ö¤Ë -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¾ì¹ç¡¢ +以下のインターフェイスのいずれかの呼び出しが停止している間に +シグナルハンドラにより割り込まれた場合、 .B SA_RESTART -¥Õ¥é¥°¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ì¤Ð¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬Ê֤俸å¤Ë -¤½¤Î¸Æ¤Ó½Ð¤·¤Ï¼«Æ°Åª¤ËºÆ¥¹¥¿¡¼¥È¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢¤½¤Î¸Æ¤Ó½Ð¤·¤Ï¥¨¥é¡¼ +フラグが使用されていれば、シグナルハンドラが返った後に +その呼び出しは自動的に再スタートされることになる。 +それ以外の場合は、その呼び出しはエラー .B EINTR -¤Ç¼ºÇÔ¤¹¤ë¤³¤È¤Ë¤Ê¤ë¡£ -.\" °Ê²¼¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï ERESTARTSYS ¤ò»È¤Ã¤Æ¤¤¤ë¡£ -.\" ¤½¤Î¤¿¤á¡¢¤³¤ì¤é¤ÏºÆ¥¹¥¿¡¼¥È¤¬²Äǽ¤Ç¤¢¤ë¡£ +で失敗することになる。 +.\" 以下のシステムコールは ERESTARTSYS を使っている。 +.\" そのため、これらは再スタートが可能である。 .RS 4 .IP * 2 .\"O .BR read (2), @@ -1048,23 +1048,23 @@ Linux .BR write (2), .BR writev (2), .BR ioctl (2) -¤Î¡ÖÃÙ¤¤ (slow)¡×¥Ç¥Ð¥¤¥¹¤ËÂФ¹¤ë¸Æ¤Ó½Ð¤·¡£ -¤³¤³¤Ç¤¤¤¦¡ÖÃÙ¤¤¡×¥Ç¥Ð¥¤¥¹¤È¤Ï¡¢I/O ¸Æ¤Ó½Ð¤·¤¬Ìµ´ü¸Â¤ËÄä»ß (block) ¤¹¤ë -²ÄǽÀ­¤Î¤¢¤ë¥Ç¥Ð¥¤¥¹¤Î¤³¤È¤Ç¡¢Îã¤È¤·¤Æ¤ÏüËö¡¢¥Ñ¥¤¥×¡¢¥½¥±¥Ã¥È¤¬¤¢¤ë -(¤³¤ÎÄêµÁ¤Ç¤Ï¡¢¥Ç¥£¥¹¥¯¤ÏÃÙ¤¤¥Ç¥Ð¥¤¥¹¤Ç¤Ï¤Ê¤¤)¡£ -ÃÙ¤¤¥Ç¥Ð¥¤¥¹¤ËÂФ¹¤ë I/O ¸Æ¤Ó½Ð¤·¤¬¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿»þÅÀ¤Þ¤Ç¤Ë²¿¤é¤«¤Î¥Ç¡¼¥¿¤ò -¤¹¤Ç¤ËžÁ÷¤·¤Æ¤¤¤ì¤Ð¡¢¸Æ¤Ó½Ð¤·¤ÏÀ®¸ù¥¹¥Æ¡¼¥¿¥¹ -(Ä̾ï¤Ï¡¢Å¾Á÷¤µ¤ì¤¿¥Ð¥¤¥È¿ô) ¤òÊÖ¤¹¤³¤È¤À¤í¤¦¡£ +の「遅い (slow)」デバイスに対する呼び出し。 +ここでいう「遅い」デバイスとは、I/O 呼び出しが無期限に停止 (block) する +可能性のあるデバイスのことで、例としては端末、パイプ、ソケットがある +(この定義では、ディスクは遅いデバイスではない)。 +遅いデバイスに対する I/O 呼び出しが、 +シグナルハンドラにより割り込まれた時点までに何らかのデータを +すでに転送していれば、呼び出しは成功ステータス +(通常は、転送されたバイト数) を返すことだろう。 .IP * .\"O .BR open (2), .\"O if it can block (e.g., when opening a FIFO; see .\"O .BR fifo (7)). -Ää»ß (block) ¤¹¤ë²ÄǽÀ­¤Î¤¢¤ë +停止 (block) する可能性のある .BR open (2) -(Î㤨¤Ð¡¢FIFO ¤Î¥ª¡¼¥×¥ó»þ; +(例えば、FIFO のオープン時; .BR fifo (7) -»²¾È)¡£ +参照)。 .IP * .\"O .BR wait (2), .\"O .BR wait3 (2), @@ -1079,7 +1079,7 @@ Linux .BR waitpid (2). .IP * .\"O Socket interfaces: -¥½¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹: +ソケットインターフェイス: .\" If a timeout (setsockopt()) is in effect on the socket, then these .\" system calls switch to using EINTR. Consequently, they and are not .\" automatically restarted, and they show the stop/cont behavior @@ -1102,10 +1102,10 @@ Linux .BR send (2), .BR sendto (2), .BR sendmsg (2). -⤷¡¢¥½¥±¥Ã¥È¤Ë¥¿¥¤¥à¥¢¥¦¥È¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç (²¼µ­»²¾È)¡£ +但し、ソケットにタイムアウトが設定されていない場合 (下記参照)。 .IP * .\"O File locking interfaces: -¥Õ¥¡¥¤¥ë¥í¥Ã¥¯ÍÑ¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹: +ファイルロック用インターフェイス: .\"O .BR flock (2) .\"O and .\"O .BR fcntl (2) @@ -1115,7 +1115,7 @@ Linux .BR F_SETLKW . .IP * .\"O POSIX message queue interfaces: -POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹: +POSIX メッセージキューインターフェイス: .BR mq_receive (3), .BR mq_timedreceive (3), .BR mq_send (3), @@ -1126,12 +1126,12 @@ POSIX .B FUTEX_WAIT .\"O (since Linux 2.6.22; beforehand, always failed with .\"O .BR EINTR ). -(Linux 2.6.22 °Ê¹ß; ¤½¤ì°ÊÁ°¤Ï¾ï¤Ë +(Linux 2.6.22 以降; それ以前は常に .B EINTR -¤Ç¼ºÇÔ¤·¤Æ¤¤¤¿)¡£ +で失敗していた)。 .IP * .\"O POSIX semaphore interfaces: -POSIX ¥»¥Þ¥Õ¥©¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹: +POSIX セマフォインターフェイス: .\"O .BR sem_wait (3) .\"O and .\"O .BR sem_timedwait (3) @@ -1139,9 +1139,9 @@ POSIX .\"O .BR EINTR ). .BR sem_wait (3), .BR sem_timedwait (3) -(Linux 2.6.22 °Ê¹ß; ¤½¤ì°ÊÁ°¤Ï¾ï¤Ë +(Linux 2.6.22 以降; それ以前は常に .B EINTR -¤Ç¼ºÇÔ¤·¤Æ¤¤¤¿)¡£ +で失敗していた)。 .RE .PP .\"O The following interfaces are never restarted after @@ -1153,15 +1153,15 @@ POSIX .\"O when interrupted by a signal handler: .\"O .\" These are the system calls that give EINTR or ERESTARTNOHAND .\"O .\" on interruption by a signal handler. -°Ê²¼¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï¡¢ +以下のインターフェイスは、 .B SA_RESTART -¤ò»È¤Ã¤Æ¤¤¤ë¤É¤¦¤«¤Ë´Ø¤ï¤é¤º¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¸å¡¢ -ºÆ¥¹¥¿¡¼¥È¤¹¤ë¤³¤È¤Ï·è¤·¤Æ¤Ê¤¤¡£ -¤³¤ì¤é¤Ï¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤ë¤È¡¢¾ï¤Ë¥¨¥é¡¼ +を使っているどうかに関わらず、シグナルハンドラにより割り込まれた後、 +再スタートすることは決してない。 +これらは、シグナルハンドラにより割り込まれると、常にエラー .B EINTR -¤Ç¼ºÇÔ¤¹¤ë¡£ -.\" ¤³¤ì¤é¤Ï¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ë³ä¤ê¹þ¤ß¤ÎºÝ¤Ë -.\" EINTR ¤« ERESTARTNOHAND ¤òÊÖ¤¹¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤¢¤ë¡£ +で失敗する。 +.\" これらは、シグナルハンドラによる割り込みの際に +.\" EINTR か ERESTARTNOHAND を返すシステムコールである。 .RS 4 .IP * 2 .\"O Socket interfaces, when a timeout has been set on the socket using @@ -1183,24 +1183,24 @@ POSIX .\"O .RB ( SO_SNDTIMEO ) .\"O has been set. .BR setsockopt (2) -¤ò»È¤Ã¤Æ¥¿¥¤¥à¥¢¥¦¥È¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¥½¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹: +を使ってタイムアウトが設定されているソケットインターフェース: .BR accept (2), .BR recv (2), .BR recvfrom (2), .BR recvmsg (2) -¤Ç¼õ¿®¥¿¥¤¥à¥¢¥¦¥È +で受信タイムアウト .RB ( SO_RCVTIMEO ) -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤È¡¢ +が設定されている場合と、 .BR connect (2), .BR send (2), .BR sendto (2), .BR sendmsg (2) -¤ÇÁ÷¿®¥¿¥¤¥à¥¢¥¦¥È +で送信タイムアウト .RB ( SO_SNDTIMEO ) -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡£ +が設定されている場合。 .IP * .\"O Interfaces used to wait for signals: -¥·¥°¥Ê¥ëÂÔ¤Á¤Ë»È¤ï¤ì¤ë¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹: +シグナル待ちに使われるインターフェイス: .BR pause (2), .BR sigsuspend (2), .BR sigtimedwait (2), @@ -1208,7 +1208,7 @@ POSIX .BR sigwaitinfo (2). .IP * .\"O File descriptor multiplexing interfaces: -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿Â¿½Å¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹: +ファイルディスクリプタ多重インターフェイス: .BR epoll_wait (2), .BR epoll_pwait (2), .BR poll (2), @@ -1218,7 +1218,7 @@ POSIX .BR pselect (2). .IP * .\"O System V IPC interfaces: -System V IPC ¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹: +System V IPC インターフェイス: .\" On some other systems, SA_RESTART does restart these system calls .BR msgrcv (2), .BR msgsnd (2), @@ -1227,7 +1227,7 @@ System V IPC .BR semtimedop (2). .IP * .\"O Sleep interfaces: -¥¹¥ê¡¼¥×ÍѤΥ¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹: +スリープ用のインターフェイス: .BR clock_nanosleep (2), .BR nanosleep (2), .\"O and @@ -1238,7 +1238,7 @@ System V IPC .\"O .BR inotify (7) .\"O file descriptor. .BR inotify (7) -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤é¤Î +ファイルディスクリプタからの .BR read (2). .IP * .BR io_getevents (2). @@ -1249,10 +1249,10 @@ System V IPC .\"O function is also never restarted if interrupted by a handler, .\"O but gives a success return: the number of seconds remaining to sleep. .BR sleep (3) -´Ø¿ô¤â¡¢¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¾ì¹ç¡¢·è¤·¤ÆºÆ¥¹¥¿¡¼¥È¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ -¤·¤«¤·¡¢À®¸ù¤È¤Ê¤ê¡¢»Ä¤Ã¤Æ¤¤¤ëÄä»ß»þ´Ö¤òÊÖ¤¹¡£ +関数も、ハンドラにより割り込まれた場合、決して再スタートされることはない。 +しかし、成功となり、残っている停止時間を返す。 .\"O .SS Interruption of System Calls and Library Functions by Stop Signals -.SS °ì»þÄä»ß¥·¥°¥Ê¥ë¤Ë¤è¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ø¤Î³ä¤ê¹þ¤ß +.SS 一時停止シグナルによるシステムコールやライブラリ関数への割り込み .\"O On Linux, even in the absence of signal handlers, .\"O certain blocking interfaces can fail with the error .\"O .BR EINTR @@ -1261,17 +1261,17 @@ System V IPC .\"O .BR SIGCONT . .\"O This behavior is not sanctioned by POSIX.1, and doesn't occur .\"O on other systems. -Linux ¤Ç¤Ï¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ç¤â¡¢ -¤¤¤¯¤Ä¤«¤Î¥Ö¥í¥Ã¥­¥ó¥°·¿¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï¡¢ -¥×¥í¥»¥¹¤¬°ì»þÄä»ß (stop) ¥·¥°¥Ê¥ë¤Î°ì¤Ä¤Ë¤è¤êÄä»ß¤µ¤ì¡¢ +Linux では、シグナルハンドラが設定されていない場合でも、 +いくつかのブロッキング型のインターフェイスは、 +プロセスが一時停止 (stop) シグナルの一つにより停止され、 .B SIGCONT -¤Ë¤è¤êºÆ³«¤µ¤ì¤¿¸å¤Ë¡¢¥¨¥é¡¼ +により再開された後に、エラー .B EINTR -¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¤³¤ÎµóÆ°¤Ï POSIX.1 ¤Çǧ¤á¤é¤ì¤Æ¤ª¤é¤º¡¢Â¾¤Î¥·¥¹¥Æ¥à¤Ç¤Ïµ¯¤³¤é¤Ê¤¤¡£ +で失敗する可能性がある。 +この挙動は POSIX.1 で認められておらず、他のシステムでは起こらない。 .\"O The Linux interfaces that display this behavior are: -¤³¤ÎµóÆ°¤ò¼¨¤¹ Linux ¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +この挙動を示す Linux のインターフェイスは以下の通りである。 .RS 4 .IP * 2 .\"O Socket interfaces, when a timeout has been set on the socket using @@ -1293,21 +1293,21 @@ Linux .\"O .RB ( SO_SNDTIMEO ) .\"O has been set. .BR setsockopt (2) -¤ò»È¤Ã¤Æ¥¿¥¤¥à¥¢¥¦¥È¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¥½¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹: +を使ってタイムアウトが設定されているソケットインターフェース: .BR accept (2), .BR recv (2), .BR recvfrom (2), .BR recvmsg (2) -¤Ç¼õ¿®¥¿¥¤¥à¥¢¥¦¥È +で受信タイムアウト .RB ( SO_RCVTIMEO ) -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤È¡¢ +が設定されている場合と、 .BR connect (2), .BR send (2), .BR sendto (2), .BR sendmsg (2) -¤ÇÁ÷¿®¥¿¥¤¥à¥¢¥¦¥È +で送信タイムアウト .RB ( SO_SNDTIMEO ) -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡£ +が設定されている場合。 .IP * 2 .BR epoll_wait (2), .BR epoll_pwait (2). @@ -1323,31 +1323,31 @@ Linux .\"O .BR inotify (7) .\"O file descriptor. .BR inotify (7) -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤é¤Î +ファイルディスクリプタからの .BR read (2). .IP * .\"O Linux 2.6.21 and earlier: -Linux 2.6.21 °ÊÁ°: +Linux 2.6.21 以前: .BR futex (2) .BR FUTEX_WAIT , .BR sem_timedwait (3), .BR sem_wait (3). .IP * .\"O Linux 2.6.8 and earlier: -Linux 2.6.8 °ÊÁ°: +Linux 2.6.8 以前: .BR msgrcv (2), .BR msgsnd (2). .IP * .\"O Linux 2.4 and earlier: -Linux 2.4 °ÊÁ°: +Linux 2.4 以前: .BR nanosleep (2). .RE .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O POSIX.1, except as noted. -POSIX.1 (Ãíµ­¤·¤¿ÆâÍưʳ°)¡£ +POSIX.1 (注記した内容以外)。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O .B SIGIO .\"O and .\"O .B SIGLOST @@ -1357,16 +1357,16 @@ POSIX.1 ( .\"O signal 29 is .\"O .BR SIGLOST . .B SIGIO -¤È +と .B SIGLOST -¤ÏƱ¤¸Ãͤò»ý¤Ã¤Æ¤¤¤ë¡£ +は同じ値を持っている。 .B SIGLOST -¤Ï¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹¤Ç¤Ï¥³¥á¥ó¥È¥¢¥¦¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¤·¤«¤·¡¢¥½¥Õ¥È¥¦¥§¥¢¤Ë¤è¤Ã¤Æ¤Ï¥Ó¥ë¥É¤Î²áÄø¤Ç¥·¥°¥Ê¥ë 29 ¤ò +はカーネルのソースではコメントアウトされている。 +しかし、ソフトウェアによってはビルドの過程でシグナル 29 を .B SIGLOST -¤È¤ß¤Ê¤·¤Æ¤·¤Þ¤¦¤â¤Î¤¬¤¢¤ë¡£ +とみなしてしまうものがある。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR kill (1), .BR getrlimit (2), .BR kill (2), diff --git a/draft/man7/socket.7 b/draft/man7/socket.7 index 4c39568b..c3570bdd 100644 --- a/draft/man7/socket.7 +++ b/draft/man7/socket.7 @@ -33,27 +33,27 @@ .\" Updated 2006-04-15, Akihiro MOTOKI, Catch up to LDP man-pages 2.29 .\" Updated 2007-01-05, Akihiro MOTOKI, Catch up to LDP man-pages 2.43 .\" -.\"WORD protocol family ¥×¥í¥È¥³¥ë¥Õ¥¡¥ß¥ê¡¼ -.\"WORD socket type ¥½¥±¥Ã¥È¥¿¥¤¥× -.\"WORD file descriptor ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD anonymous socket ̾Á°Ìµ¤·¥½¥±¥Ã¥È -.\"WORD asynchronous ÈóƱ´ü (Ū) -.\"WORD credential ¿®Ç¤¾õ -.\"WORD capability ¸¢¸Â -.\"WORD ancillary data Êä½õ¥Ç¡¼¥¿ +.\"WORD protocol family プロトコルファミリー +.\"WORD socket type ソケットタイプ +.\"WORD file descriptor ファイルディスクリプタ +.\"WORD anonymous socket 名前無しソケット +.\"WORD asynchronous 非同期 (的) +.\"WORD credential 信任状 +.\"WORD capability 権限 +.\"WORD ancillary data 補助データ .\" .TH SOCKET 7 2008-12-03 Linux "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O socket \- Linux socket interface -socket \- Linux ¤Î¥½¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ +socket \- Linux のソケットインターフェース .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .sp .IB sockfd " = socket(int " socket_family ", int " socket_type ", int " protocol ); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This manual page describes the Linux networking socket layer user .\"O interface. .\"O The BSD compatible sockets @@ -72,31 +72,31 @@ socket \- Linux .\"O See .\"O .BR socket (2) .\"O for more information on families and types. -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï Linux ¥Í¥Ã¥È¥ï¡¼¥¯¤Î¥½¥±¥Ã¥ÈÁؤËÂФ¹¤ë -¥æ¡¼¥¶¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òµ­½Ò¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -BSD ¸ß´¹¥½¥±¥Ã¥È¤Ï¡¢¥æ¡¼¥¶¥×¥í¥»¥¹¤È¥«¡¼¥Í¥ëÆâÉô¤Î -¥Í¥Ã¥È¥ï¡¼¥¯¥×¥í¥È¥³¥ë¥¹¥¿¥Ã¥¯·²¤È¤Î´Ö¤Ë¡¢ -Åý°ìŪ¤Ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÄ󶡤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¥×¥í¥È¥³¥ë¥â¥¸¥å¡¼¥ë¤Ï -.I "¥×¥í¥È¥³¥ë¥Õ¥¡¥ß¥ê¡¼ (protocol familiy)" -(Î㡧 +このマニュアルページは Linux ネットワークのソケット層に対する +ユーザインターフェースを記述するものである。 +BSD 互換ソケットは、ユーザプロセスとカーネル内部の +ネットワークプロトコルスタック群との間に、 +統一的なインターフェースを提供するものである。 +プロトコルモジュールは +.I "プロトコルファミリー (protocol familiy)" +(例: .BR AF_INET ", " AF_IPX ", " AF_PACKET ) -¤È -.I "¥½¥±¥Ã¥È¥¿¥¤¥× (socket types)" -(Î㡧 +と +.I "ソケットタイプ (socket types)" +(例: .BR SOCK_STREAM ", " SOCK_DGRAM ) -¤ËʬÎà¤Ç¤­¤ë¡£ -¤³¤ì¤é¤Ë´Ø¤¹¤ë¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï +に分類できる。 +これらに関するより詳しい情報は .BR socket (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SS Socket Layer Functions -.SS ¥½¥±¥Ã¥ÈÁؤδؿô·² +.SS ソケット層の関数群 .\"O These functions are used by the user process to send or receive packets .\"O and to do other socket operations. .\"O For more information see their respective manual pages. -¤³¤ì¤é¤Î´Ø¿ô¤Ï¥æ¡¼¥¶¥×¥í¥»¥¹¤¬¥Ñ¥±¥Ã¥È¤òÁ÷¼õ¿®¤·¤¿¤ê¡¢¤½¤Î¾¤Î¥½¥±¥Ã¥ÈÁàºî¤ò -¹Ô¤Ã¤¿¤ê¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£¾ÜºÙ¤Ï¤½¤ì¤¾¤ì¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò -¸«¤Æ¤Û¤·¤¤¡£ +これらの関数はユーザプロセスがパケットを送受信したり、その他のソケット操作を +行ったりするために用いられる。詳細はそれぞれのマニュアルページを +見てほしい。 .\"O .BR socket (2) .\"O creates a socket, @@ -114,19 +114,19 @@ BSD .\"O local families like .\"O .BR AF_UNIX ) .BR socket (2) -¤Ï¥½¥±¥Ã¥È¤òÀ¸À®¤¹¤ë¡£ +はソケットを生成する。 .BR connect (2) -¤Ï¥½¥±¥Ã¥È¤ò¥ê¥â¡¼¥È¤Î¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤ËÀܳ¤¹¤ë¡£ +はソケットをリモートのソケットアドレスに接続する。 .BR bind (2) -¤Ï¥½¥±¥Ã¥È¤ò¥í¡¼¥«¥ë¤Î¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Ë¥Ð¥¤¥ó¥É¤¹¤ë¡£ +はソケットをローカルのソケットアドレスにバインドする。 .BR listen (2) -¤Ï¥½¥±¥Ã¥È¤Ë¿·¤·¤¤Àܳ¤¬Í褿¤é¼õ¿®¤¹¤ë¤è¤¦¤ËÅÁ¤¨¡¢ +はソケットに新しい接続が来たら受信するように伝え、 .BR accept (2) -¤Ï³°Éô¤«¤é¤ä¤Ã¤Æ¤­¤¿Àܳ¤ËÂФ·¤Æ¿·¤·¤¤¥½¥±¥Ã¥È¤òÆÀ¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ +は外部からやってきた接続に対して新しいソケットを得るために用いられる。 .BR socketpair (2) -¤Ï¸ß¤¤¤ËÀܳ¤µ¤ì¤¿Æó¤Ä¤Î̾Á°Ìµ¤·¥½¥±¥Ã¥È (anonymous socket) ¤òÊÖ¤¹ +は互いに接続された二つの名前無しソケット (anonymous socket) を返す .RB ( AF_UNIX -¤Î¤è¤¦¤Ê¡¢¤¤¤¯¤Ä¤«¤Î¥í¡¼¥«¥ë¤Ê¥Õ¥¡¥ß¥ê¡¼¤Ç¤·¤«¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤)¡£ +のような、いくつかのローカルなファミリーでしか実装されていない)。 .PP .\"O .BR send (2), .\"O .BR sendto (2), @@ -152,22 +152,22 @@ BSD .BR send (2), .BR sendto (2), .BR sendmsg (2) -¤Ï¥½¥±¥Ã¥È¤òÄ̤·¤Æ¥Ç¡¼¥¿¤òÁ÷¿®¤·¡¢ +はソケットを通してデータを送信し、 .BR recv (2) .BR recvfrom (2), .BR recvmsg (2) -¤Ï¥½¥±¥Ã¥È¤«¤é¥Ç¡¼¥¿¤ò¼õ¿®¤¹¤ë¡£ +はソケットからデータを受信する。 .BR poll (2) -¤È +と .BR select (2) -¤Ï¥Ç¡¼¥¿¤ÎÅþÃå¤òÂԤ俤ꡢ¥Ç¡¼¥¿Á÷¿®¤Î½àÈ÷¤¬¤Ç¤­¤ë¤Þ¤ÇÂԤ俤ꤹ¤ë¡£ -¤µ¤é¤Ë¡¢ +はデータの到着を待ったり、データ送信の準備ができるまで待ったりする。 +さらに、 .BR write (2), .BR writev (2), .BR sendfile (2), .BR read (2), .BR readv (2) -¤Î¤è¤¦¤Êɸ½àŪ¤Ê I/O Áàºî¤â¥Ç¡¼¥¿¤ÎÆɤ߽ñ¤­¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +のような標準的な I/O 操作もデータの読み書きに用いることができる。 .PP .\"O .BR getsockname (2) .\"O returns the local socket address and @@ -180,36 +180,36 @@ BSD .\"O .BR ioctl (2) .\"O can be used to set or read some other options. .BR getsockbyname (2) -¤Ï¥í¡¼¥«¥ë¤Î¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤òÊÖ¤·¡¢ +はローカルのソケットアドレスを返し、 .BR getpeername (2) -¤Ï¥ê¥â¡¼¥È¤Î¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤òÊÖ¤¹¡£ +はリモートのソケットアドレスを返す。 .BR getsockopt (2) -¤È +と .BR setsockopt (2) -¤Ï¥½¥±¥Ã¥ÈÁؤΥª¥×¥·¥ç¥ó¤ä¥×¥í¥È¥³¥ë¥ª¥×¥·¥ç¥ó¤Î¼èÆÀ¡¦ÀßÄê¤ËÍѤ¤¤é¤ì¤ë¡£ -¾¤Î¤¤¤¯¤Ä¤«¤Î¥ª¥×¥·¥ç¥ó¤Î¼èÆÀ¡¦ÀßÄê¤Ë¤Ï +はソケット層のオプションやプロトコルオプションの取得・設定に用いられる。 +他のいくつかのオプションの取得・設定には .BR ioctl (2) -¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +を使うことができる。 .PP .\"O .BR close (2) .\"O is used to close a socket. .\"O .BR shutdown (2) .\"O closes parts of a full-duplex socket connection. .BR close (2) -¤Ï¥½¥±¥Ã¥È¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +はソケットをクローズする。 .BR shutdown (2) -¤ÏÁ´Æó½Å¤Ê¥½¥±¥Ã¥ÈÀܳ¤òÉôʬŪ¤Ë¥¯¥í¡¼¥º¤¹¤ë¡£ +は全二重なソケット接続を部分的にクローズする。 .PP .\"O Seeking, or calling .\"O .BR pread (2) .\"O or .\"O .BR pwrite (2) .\"O with a nonzero position is not supported on sockets. -¥·¡¼¥¯Æ°ºî¤ä¡¢ 0 °Ê³°¤Î°ÌÃÖ¤ËÂФ¹¤ë +シーク動作や、 0 以外の位置に対する .BR pread (2) -¤ä +や .BR pwrite (2) -¤Ï¥½¥±¥Ã¥È¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +はソケットではサポートされていない。 .PP .\"O It is possible to do nonblocking I/O on sockets by setting the .\"O .B O_NONBLOCK @@ -219,59 +219,59 @@ BSD .\"O return with .\"O .B EAGAIN .\"O (operation should be retried later); -Èó¥Ö¥í¥Ã¥­¥ó¥°¤Ê I/O ¤ò¥½¥±¥Ã¥È¤Ç¹Ô¤¦¤³¤È¤Ï²Äǽ¤Ç¡¢ +非ブロッキングな I/O をソケットで行うことは可能で、 .BR fcntl (2) -¤ò»È¤Ã¤Æ¥½¥±¥Ã¥È¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë +を使ってソケットのファイルディスクリプタに .B O_NONBLOCK -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ì¤ÐÎɤ¤¡£ -¤³¤¦¤¹¤ë¤È¥Ö¥í¥Ã¥¯¤µ¤ì¤ëÁàºî¤Ï¡¢ (Ä̾ï) +フラグをセットすれば良い。 +こうするとブロックされる操作は、 (通常) .B EAGAIN -¥¨¥é¡¼¤ÇÌá¤ë¤³¤È¤Ë¤Ê¤ë -(¸å¤Ç½èÍý¤¬ºÆ»î¹Ô¤µ¤ì¤ë¤³¤È¤¬´üÂÔ¤µ¤ì¤Æ¤¤¤ë)¡£ +エラーで戻ることになる +(後で処理が再試行されることが期待されている)。 .\"O .BR connect (2) .\"O will return .\"O .B EINPROGRESS .\"O error. .BR connect (2) -¤Ç¤Ï +では .B EINPROGRESS -¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ +エラーが返される。 .\"O The user can then wait for various events via .\"O .BR poll (2) .\"O or .\"O .BR select (2). -¤³¤Î¾ì¹ç¡¢¥æ¡¼¥¶¤Ï¤µ¤Þ¤¶¤Þ¤Ê¥¤¥Ù¥ó¥È¤ò +この場合、ユーザはさまざまなイベントを .BR poll (2) -¤ä +や .BR select (2) -¤ò»È¤Ã¤ÆÂԤĤ³¤È¤¬¤Ç¤­¤ë¡£ +を使って待つことができる。 .TS tab(:) allbox; c s s l l l. .\"O I/O events -I/O ¥¤¥Ù¥ó¥È +I/O イベント .\"O Event:Poll flag:Occurrence -¥¤¥Ù¥ó¥È:poll ¥Õ¥é¥°:ÆâÍÆ +イベント:poll フラグ:内容 .\"O Read:POLLIN:T{ .\"O New data arrived. .\"O T} Read:POLLIN:T{ -¿·¤·¤¤¥Ç¡¼¥¿¤¬ÅþÃ夷¤¿¡£ +新しいデータが到着した。 T} .\"O Read:POLLIN:T{ .\"O A connection setup has been completed .\"O (for connection-oriented sockets) .\"O T} Read:POLLIN:T{ -(Àܳ»Ö¸þ¤Î¥½¥±¥Ã¥È¤Ç) -Àܳ¤ÎÀßÄ꤬½ªÎ»¤·¤¿¡£ +(接続志向のソケットで) +接続の設定が終了した。 T} .\"O Read:POLLHUP:T{ .\"O A disconnection request has been initiated by the other end. .\"O T} Read:POLLHUP:T{ -ÀܳÀè¤ÇÀÚÃÇÍ׵᤬À¸À®¤µ¤ì¤¿¡£ +接続先で切断要求が生成された。 T} .\"O Read:POLLHUP:T{ .\"O A connection is broken (only for connection-oriented protocols). @@ -280,17 +280,17 @@ T} .\"O is also sent. .\"O T} Read:POLLHUP:T{ -Àܳ¤¬²õ¤ì¤¿ (Àܳ»Ö¸þ¤Î¥×¥í¥È¥³¥ë¤Î¤ß)¡£ -¤³¤Î¾ì¹ç¡¢¥½¥±¥Ã¥È¤Ë½ñ¤­¹þ¤ß¤¬¹Ô¤ï¤ì¤ë¤È +接続が壊れた (接続志向のプロトコルのみ)。 +この場合、ソケットに書き込みが行われると .B SIGPIPE -¤âÁ÷¿®¤µ¤ì¤ë¡£ +も送信される。 T} .\"O Write:POLLOUT:T{ .\"O Socket has enough send buffer space for writing new data. .\"O T} Write:POLLOUT:T{ -¥½¥±¥Ã¥È¤Ë¤Ï¿·¤·¤¤¥Ç¡¼¥¿¤ò½ñ¤­¹þ¤à¤Î¤Ë -½¼Ê¬¤Ê¥Ð¥Ã¥Õ¥¡Îΰ褬¤¢¤ë¡£ +ソケットには新しいデータを書き込むのに +充分なバッファ領域がある。 T} .\"O Read/Write:T{ .\"O POLLIN| @@ -306,26 +306,26 @@ POLLIN| .br POLLOUT T}:T{ -³°Éô¸þ¤±¤Î +外部向けの .BR connect (2) -¤¬½ªÎ»¤·¤¿¡£ +が終了した。 T} .\"O Read/Write:POLLERR:An asynchronous error occurred. Read/Write:POLLERR:T{ -ÈóƱ´üŪ (asynchronous) ¤Ê¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£ +非同期的 (asynchronous) なエラーが起こった。 T} .\"O Read/Write:POLLHUP:The other end has shut down one direction. -Read/Write:POLLHUP:ÀܳÀ褬ÊÒÊý¸þ¤òÀÚÃǤ·¤¿¡£ +Read/Write:POLLHUP:接続先が片方向を切断した。 .\"O Exception:POLLPRI:T{ .\"O Urgent data arrived. .\"O .B SIGURG .\"O is sent then. .\"O T} Exception:POLLPRI:T{ -¶ÛµÞ¥Ç¡¼¥¿ (urgent data) ¤¬ÅþÃ夷¤¿¡£ -¤³¤Î¾ì¹ç¤Ï +緊急データ (urgent data) が到着した。 +この場合は .B SIGURG -¤¬Á÷¿®¤µ¤ì¤ë¡£ +が送信される。 T} .\" FIXME . The following is not true currently: .\" It is no I/O event when the connection @@ -356,26 +356,26 @@ T} .\"O .I Signals .\"O discussion below. .BR poll (2) -¤ä +や .BR select (2) -¤ò»È¤¦Âå¤ï¤ê¤Ë¡¢¥«¡¼¥Í¥ë¤«¤é¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë -¥¤¥Ù¥ó¥È¤òÄÌÃΤµ¤»¤ë¤Î¤Ë +を使う代わりに、カーネルからアプリケーションに +イベントを通知させるのに .B SIGIO -¥·¥°¥Ê¥ë¤ò»È¤¦ÊýË¡¤â¤¢¤ë¡£ -¤³¤ÎÊýË¡¤ò»È¤¦¤Ë¤Ï¡¢ +シグナルを使う方法もある。 +この方法を使うには、 .BR fcntl (2) -¤òÍѤ¤¤Æ¥½¥±¥Ã¥È¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë +を用いてソケットのファイルディスクリプタに .B O_ASYNC -¥Õ¥é¥°¤ò¥»¥Ã¥È¤·¡¢ +フラグをセットし、 .B SIGIO -¤ËÂФ¹¤ëÍ­¸ú¤Ê¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò +に対する有効なシグナルハンドラを .BR sigaction (2) -¤Ë¤è¤Ã¤ÆÀßÄꤷ¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¡£ -¸å½Ò¤Î -.I ¥·¥°¥Ê¥ë -¤Ë´Ø¤¹¤ëµÄÏÀ¤â»²¹Í¤Ë¤¹¤ë¤³¤È¡£ +によって設定しておく必要がある。 +後述の +.I シグナル +に関する議論も参考にすること。 .\"O .SS Socket Options -.SS ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó +.SS ソケットオプション .\"O These socket options can be set by using .\"O .BR setsockopt (2) .\"O and read with @@ -383,19 +383,19 @@ T} .\"O with the socket level set to .\"O .B SOL_SOCKET .\"O for all sockets: -¤³¤ì¤é¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤Ï¡¢ +これらのソケットオプションは、 .BR setsockopt (2) -¤òÍѤ¤¤ì¤ÐÀßÄê¤Ç¤­¡¢ +を用いれば設定でき、 .BR getsockopt (2) -¤òÍѤ¤¤ì¤Ð¼èÆÀ¤Ç¤­¤ë¡£ -⤷¡¢¤É¤Î¥½¥±¥Ã¥È¤Î¾ì¹ç¤â -¥½¥±¥Ã¥È¥ì¥Ù¥ë¤Ë¤Ï +を用いれば取得できる。 +但し、どのソケットの場合も +ソケットレベルには .B SOL_SOCKET -¤ò»ØÄꤹ¤ë¤³¤È¡£ +を指定すること。 .\"O .\" SO_ACCEPTCONN is in POSIX.1-2001, and its origin is explained in .\"O .\" W R Stevens, UNPv1 -.\" SO_ACCEPTCONN ¤Ï POSIX.1-2001 ¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢¸µ¤Ï -.\" W R Stevens ¤Î UNPv1 ¤Ë½ñ¤«¤ì¤Æ¤¤¤¿¡£ +.\" SO_ACCEPTCONN は POSIX.1-2001 で定義されており、元は +.\" W R Stevens の UNPv1 に書かれていた。 .TP .B SO_ACCEPTCONN .\"O Returns a value indicating whether or not this socket has been marked @@ -406,13 +406,13 @@ T} .\"O Can only be read .\"O with .\"O .BR getsockopt (2). -¤³¤Î¥½¥±¥Ã¥È¤¬ +このソケットが .BR listen (2) -¤Ë¤è¤Ã¤ÆÀܳÂÔ¤Á¼õ¤±¾õÂÖ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò¼¨¤¹ÃͤòÊÖ¤¹¡£ -ÃÍ 0 ¤Ï listen ¾õÂ֤Υ½¥±¥Ã¥È¤Ç¤Ê¤¤¤³¤È¤ò¡¢ -ÃÍ 1 ¤Ï listen ¾õÂ֤Υ½¥±¥Ã¥È¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ +によって接続待ち受け状態に設定されているかどうかを示す値を返す。 +値 0 は listen 状態のソケットでないことを、 +値 1 は listen 状態のソケットであることを示す。 .BR getsockopt (2) -¤«¤é¤Î¤ßÆɤ߽Ф·²Äǽ¤Ç¤¢¤ë¡£ +からのみ読み出し可能である。 .TP .B SO_BINDTODEVICE .\"O Bind this socket to a particular device like \(lqeth0\(rq, @@ -423,14 +423,14 @@ T} .\"O The passed option is a variable-length null-terminated .\"O interface name string with the maximum size of .\"O .BR IFNAMSIZ . -¤³¤Î¥½¥±¥Ã¥È¤ò¡¢°ú¤­¿ô¤ÇÅϤ·¤¿¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹Ì¾¤Ç»ØÄꤵ¤ì¤ë -(\(lqeth0\(rq ¤Î¤è¤¦¤Ê) ÆÃÄê¤Î¥Ç¥Ð¥¤¥¹¤Ë¥Ð¥¤¥ó¥É¤¹¤ë¡£ -̾Á°¤¬¶õʸ»úÎó¤À¤Ã¤¿¤ê¡¢¥ª¥×¥·¥ç¥ó¤ÎŤµ (optlen) ¤¬ 0 ¤Î¾ì¹ç¤Ë¤Ï¡¢ -¥½¥±¥Ã¥È¤Î¥Ð¥¤¥ó¥É¤¬ºï½ü¤µ¤ì¤ë¡£ÅϤ¹¥ª¥×¥·¥ç¥ó¤Ï¡¢¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹Ì¾¤¬ -Æþ¤Ã¤¿¥Ì¥ëʸ»ú¤Ç½ªÃ¼¤µ¤ì¤¿²ÄÊÑŤÎʸ»úÎó¤Ç¤¢¤ë¡£ -ʸ»úÎó¤ÎºÇÂç¤Î¥µ¥¤¥º¤Ï +このソケットを、引き数で渡したインターフェース名で指定される +(\(lqeth0\(rq のような) 特定のデバイスにバインドする。 +名前が空文字列だったり、オプションの長さ (optlen) が 0 の場合には、 +ソケットのバインドが削除される。渡すオプションは、インターフェース名が +入ったヌル文字で終端された可変長の文字列である。 +文字列の最大のサイズは .B IFNAMSIX -¤Ç¤¢¤ë¡£ +である。 .\"O If a socket is bound to an interface, .\"O only packets received from that particular interface are processed by the .\"O socket. @@ -440,14 +440,14 @@ T} .\"O It is not supported for packet sockets (use normal .\"O .BR bind (8) .\"O there). -¥½¥±¥Ã¥È¤¬¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¤ë¤È¡¢ -¤½¤ÎÆÃÄê¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤«¤é¼õ¿®¤µ¤ì¤¿¥Ñ¥±¥Ã¥È¤À¤±¤ò½èÍý¤¹¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¤¤¤¯¤Ä¤«¤Î¥½¥±¥Ã¥È¥¿¥¤¥×¡¢ÆÃ¤Ë +ソケットがインターフェースにバインドされると、 +その特定のインターフェースから受信されたパケットだけを処理する。 +このオプションはいくつかのソケットタイプ、特に .B AF_INET -¤ËÂФ·¤Æ¤Î¤ßÆ°ºî¤¹¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¥Ñ¥±¥Ã¥È¥½¥±¥Ã¥È¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤ (Ä̾ï¤Î +に対してのみ動作する点に注意すること。 +パケットソケットではサポートされていない (通常の .BR bind (8) -¤ò»È¤¦¤³¤È)¡£ +を使うこと)。 .TP .B SO_BROADCAST .\"O Set or get the broadcast flag. @@ -455,10 +455,10 @@ T} .\"O receive packets sent to a broadcast address and they are allowed to send .\"O packets to a broadcast address. .\"O This option has no effect on stream-oriented sockets. -¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥Õ¥é¥°¤òÀßÄꡦ¼èÆÀ¤¹¤ë¡£Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢ -¥Ç¡¼¥¿¥°¥é¥à¥½¥±¥Ã¥È¤Ï¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤ËÁ÷¤é¤ì¤¿¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤·¤¿¤ê¡¢ -¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤Ë¥Ñ¥±¥Ã¥È¤òÁ÷¿®¤·¤¿¤ê¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¥¹¥È¥ê¡¼¥à»Ø¸þ¤Î¥½¥±¥Ã¥È¤Ë¤Ï²¿¤Î¸ú²Ì¤â¤Ê¤¤¡£ +ブロードキャストフラグを設定・取得する。有効になっていると、 +データグラムソケットはブロードキャストアドレスに送られたパケットを受信したり、 +ブロードキャストアドレスにパケットを送信したりできるようになる。 +ストリーム指向のソケットには何の効果もない。 .TP .B SO_BSDCOMPAT .\"O Enable BSD bug-to-bug compatibility. @@ -471,40 +471,40 @@ T} .\"O Linux 2.0 also enabled BSD bug-to-bug compatibility .\"O options (random header changing, skipping of the broadcast flag) for raw .\"O sockets with this option, but that was removed in Linux 2.2. -BSD ¤Î¥Ð¥°¤ËÂФ·¤Æ¸ß´¹À­¤ò¼è¤ë¤¿¤á¤Îµ¡Ç½¤òÍ­¸ú¤Ë¤¹¤ë¡£ -¤³¤Îµ¡Ç½¤Ï Linux 2.0 ¤È 2.2 ¤Î UDP ¥×¥í¥È¥³¥ë¥â¥¸¥å¡¼¥ë¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ -Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢ UDP ¥½¥±¥Ã¥È¤Ç¼õ¿®¤µ¤ì¤¿ ICMP ¥¨¥é¡¼¤Ï -¥æ¡¼¥¶¥×¥í¥°¥é¥à¤ËÅϤµ¤ì¤Ê¤¤¡£ -¤³¤ì°Ê¹ß¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Î¥µ¥Ý¡¼¥È¤Ï -Ãʳ¬Åª¤ËÇѻߤµ¤ì¤Æ¤­¤¿¡£ -Linux 2.4 ¤Ç¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÌۤäÆ̵»ë¤µ¤ì¡¢ -Linux 2.6 ¤Ç¤Ï¥×¥í¥°¥é¥à¤¬¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¤È (printk() ¤ò»È¤Ã¤Æ) -¥«¡¼¥Í¥ë¤Î·Ù¹ð¥á¥Ã¥»¡¼¥¸¤¬½ÐÎϤµ¤ì¤ë¡£ -Linux 2.0 ¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢ -raw ¥½¥±¥Ã¥È¤Ë¤ª¤¤¤Æ¤â BSD ¤Î¥Ð¥° (¥é¥ó¥À¥à¥Ø¥Ã¥ÀÊѹ¹¡¢ -¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥Õ¥é¥°¤Î¥¹¥­¥Ã¥×) -¤ËÂФ¹¤ë¸ß´¹µ¡Ç½¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤¿¡£ -¤·¤«¤·¡¢¤³¤Á¤é¤Ï Linux 2.2 ¤Çºï½ü¤µ¤ì¤¿¡£ +BSD のバグに対して互換性を取るための機能を有効にする。 +この機能は Linux 2.0 と 2.2 の UDP プロトコルモジュールで使用されている。 +有効になっていると、 UDP ソケットで受信された ICMP エラーは +ユーザプログラムに渡されない。 +これ以降のバージョンのカーネルでは、このオプションのサポートは +段階的に廃止されてきた。 +Linux 2.4 ではこのオプションは黙って無視され、 +Linux 2.6 ではプログラムがこのオプションを使用すると (printk() を使って) +カーネルの警告メッセージが出力される。 +Linux 2.0 では、このオプションを指定すると、 +raw ソケットにおいても BSD のバグ (ランダムヘッダ変更、 +ブロードキャストフラグのスキップ) +に対する互換機能が有効になっていた。 +しかし、こちらは Linux 2.2 で削除された。 .TP .B SO_DEBUG .\"O Enable socket debugging. .\"O Only allowed for processes with the .\"O .B CAP_NET_ADMIN .\"O capability or an effective user ID of 0. -¥½¥±¥Ã¥È¤Î¥Ç¥Ð¥Ã¥°µ¡Ç½¤òÍ­¸ú¤Ë¤¹¤ë¡£ +ソケットのデバッグ機能を有効にする。 .B CAP_NET_ADMIN -¸¢¸Â¤ò»ý¤Ä¥×¥í¥»¥¹¤«¡¢¼Â¸ú¥æ¡¼¥¶ ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤Ç¤·¤« -ÍøÍѤǤ­¤Ê¤¤¡£ +権限を持つプロセスか、実効ユーザ ID が 0 のプロセスでしか +利用できない。 .TP .B SO_ERROR .\"O Get and clear the pending socket error. .\"O Only valid as a .\"O .BR getsockopt (2). .\"O Expects an integer. -ÊÝα¤Ë¤Ê¤Ã¤Æ¤¤¤¿¥½¥±¥Ã¥È¥¨¥é¡¼¤ò¼èÆÀ¤·¤Æ¥¯¥ê¥¢¤¹¤ë¡£ +保留になっていたソケットエラーを取得してクリアする。 .BR getsockopt (2) -¤Ç¤Î¤ßÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -À°¿ôÃͤò¤È¤ë¡£ +でのみ用いることができる。 +整数値をとる。 .TP .B SO_DONTROUTE .\"O Don't send via a gateway, only send to directly connected hosts. @@ -514,18 +514,18 @@ raw .\"O .BR send (2) .\"O operation. .\"O Expects an integer boolean flag. -¥²¡¼¥È¥¦¥§¥¤¤ò·Ðͳ¤»¤º¡¢Ä¾ÀÜÀܳ¤µ¤ì¤Æ¤¤¤ë¥Û¥¹¥È¤ËÁ÷¿®¤¹¤ë¡£ +ゲートウェイを経由せず、直接接続されているホストに送信する。 .BR send (2) -Áàºî¤Ç +操作で .B MSG_DONTROUTE -¥Õ¥é¥°¤ò¥»¥Ã¥È¤·¤¿¾ì¹ç¤âƱ¤¸¸ú²Ì¤¬ÆÀ¤é¤ì¤ë¡£ -¥Ö¡¼¥ëÀ°¿ô¤Î¥Õ¥é¥°¤ò¼è¤ë¡£ +フラグをセットした場合も同じ効果が得られる。 +ブール整数のフラグを取る。 .TP .B SO_KEEPALIVE .\"O Enable sending of keep-alive messages on connection-oriented sockets. .\"O Expects an integer boolean flag. -Àܳ»Ö¸þ¤Î¥½¥±¥Ã¥È¤ËÂФ¹¤ë keep-alive ¥á¥Ã¥»¡¼¥¸¤ÎÁ÷¿®¤òÍ­¸ú¤Ë¤¹¤ë¡£ -¥Ö¡¼¥ëÃͤÎÀ°¿ô¥Õ¥é¥°¤ò¤È¤ë¡£ +接続志向のソケットに対する keep-alive メッセージの送信を有効にする。 +ブール値の整数フラグをとる。 .TP .B SO_LINGER .\"O Sets or gets the @@ -535,9 +535,9 @@ raw .\"O .I linger .\"O structure. .B SO_LINGER -¥ª¥×¥·¥ç¥ó¤ò¼èÆÀ¡¦ÀßÄꤹ¤ë¡£°ú¤­¿ô¤Ë¤Ï +オプションを取得・設定する。引き数には .I linger -¹½Â¤ÂΤò¼è¤ë¡£ +構造体を取る。 .sp .in +4n .nf @@ -559,17 +559,17 @@ struct linger { .\"O When the socket is closed as part of .\"O .BR exit (2), .\"O it always lingers in the background. -Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢ +有効になっていると、 .BR close (2) -¤ä +や .BR shutdown (2) -¤Ï¡¢¤½¤Î¥½¥±¥Ã¥È¤Ë¥­¥å¡¼¥¤¥ó¥°¤µ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤¬¤¹¤Ù¤ÆÁ÷¿®´°Î»¤¹¤ë¤«¡¢ -linger (µï»Ä¤ê) ¥¿¥¤¥à¥¢¥¦¥È¤Ë¤Ê¤ë¤Þ¤ÇÊÖ¤é¤Ê¤¤¡£Ìµ¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢ -¤³¤ì¤é¤Î¥³¡¼¥ë¤Ï¤¿¤À¤Á¤ËÌá¤ê¡¢¥¯¥í¡¼¥ºÆ°ºî¤Ï¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤Ç¹Ô¤ï¤ì¤ë¡£ -¥½¥±¥Ã¥È¤Î¥¯¥í¡¼¥º¤ò +は、そのソケットにキューイングされたメッセージがすべて送信完了するか、 +linger (居残り) タイムアウトになるまで返らない。無効になっていると、 +これらのコールはただちに戻り、クローズ動作はバックグラウンドで行われる。 +ソケットのクローズを .BR exit (2) -¤Î°ìÉô¤È¤·¤Æ¹Ô¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢»Ä¤Ã¤Æ¤¤¤ë¥½¥±¥Ã¥È¤Î -¥¯¥í¡¼¥ºÆ°ºî¤Ïɬ¤º¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤ËÁ÷¤é¤ì¤ë¡£ +の一部として行った場合には、残っているソケットの +クローズ動作は必ずバックグラウンドに送られる。 .TP .B SO_OOBINLINE .\"O If this option is enabled, @@ -577,14 +577,14 @@ linger ( .\"O Otherwise out-of-band data is only passed when the .\"O .B MSG_OOB .\"O flag is set during receiving. -¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤¹¤ë¤È¡¢ÂÓ°è³°¥Ç¡¼¥¿ (out-of-band data) ¤Ï -¼õ¿®¥Ç¡¼¥¿¥¹¥È¥ê¡¼¥àÃæ¤ËÃÖ¤«¤ì¤ë¡£Í­¸ú¤Ë¤·¤Ê¤±¤ì¤Ð¡¢ -ÂÓ°è³°¥Ç¡¼¥¿¤Ï¼õ¿®»þ¤Ë +このオプションを有効にすると、帯域外データ (out-of-band data) は +受信データストリーム中に置かれる。有効にしなければ、 +帯域外データは受信時に .B MSG_OOB -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¸Â¤Ã¤ÆÅϤµ¤ì¤ë¡£ +フラグがセットされている場合に限って渡される。 .\"O .\" don't document it because it can do too much harm. .\"O .\".B SO_NO_CHECK -.\" ¤¢¤Þ¤ê¤Ë´í¸±¤Ê¤³¤È¤¬¤Ç¤­¤ë¤Î¤Ç¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Ïµ­ºÜ¤·¤Ê¤¤¤³¤È¡£ +.\" あまりに危険なことができるので、このオプションについては記載しないこと。 .\".B SO_NO_CHECK .TP .B SO_PASSCRED @@ -594,9 +594,9 @@ linger ( .\"O For more information see .\"O .BR unix (7). .B SCM_CREDENTIALS -À©¸æ¥á¥Ã¥»¡¼¥¸¤Î¼õ¿®¤òÍ­¸ú/̵¸ú¤Ë¤¹¤ë¡£¾ÜºÙ¤Ï +制御メッセージの受信を有効/無効にする。詳細は .BR unix (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\" FIXME Document SO_PASSSEC, added in 2.6.18; there is some info .\" in the 2.6.18 ChangeLog .TP @@ -610,17 +610,17 @@ linger ( .\"O .BR socketpair (2); .\"O see .\"O .BR unix (7). -¤³¤Î¥½¥±¥Ã¥È¤ËÀܳ¤·¤Æ¤­¤¿³°Éô¥×¥í¥»¥¹¤Î¿®Ç¤¾õ (credential) ¤òÊÖ¤¹¡£ -¤³¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬ÍøÍѤǤ­¤ë¤Î¤Ï¡¢ -Àܳ¤µ¤ì¤¿ +このソケットに接続してきた外部プロセスの信任状 (credential) を返す。 +このソケットオプションが利用できるのは、 +接続された .B AF_UNIX -¥¹¥È¥ê¡¼¥à¥½¥±¥Ã¥È´Ö¡¢¤ª¤è¤Ó +ストリームソケット間、および .BR socketpair (2) -¤ò»È¤Ã¤ÆºîÀ®¤µ¤ì¤¿ +を使って作成された .B AF_UNIX -¤Î¥¹¥È¥ê¡¼¥à¥½¥±¥Ã¥È¤È¥Ç¡¼¥¿¥°¥é¥à¥½¥±¥Ã¥È¤Î¥Ú¥¢¤À¤±¤Ç¤¢¤ë¡£ +のストリームソケットとデータグラムソケットのペアだけである。 .BR unix (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O The returned credentials are those that were in effect at the time .\"O of the call to .\"O .BR connect (2) @@ -632,14 +632,14 @@ linger ( .\"O Only valid as a .\"O .BR getsockopt (2). .BR connect (2) -¤ä +や .BR socketpair (2) -¤¬¸Æ¤Ð¤ì¤¿»þ¤ËÍ­¸ú¤Ç¤¢¤Ã¤¿¿®Ç¤¾õ¤¬ÊÖ¤µ¤ì¤ë¡£ -°ú¤­¿ô¤Ï +が呼ばれた時に有効であった信任状が返される。 +引き数は .I ucred -¹½Â¤ÂΤǤ¢¤ë¡£ +構造体である。 .BR getsockopt (2) -¤Ç¤Î¤ßÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +でのみ用いることができる。 .TP .B SO_PRIORITY .\"O Set the protocol-defined priority for all packets to be sent on @@ -653,15 +653,15 @@ linger ( .\"O Setting a priority outside the range 0 to 6 requires the .\"O .B CAP_NET_ADMIN .\"O capability. -¥×¥í¥È¥³¥ë¤ÇÄêµÁ¤µ¤ì¤¿Í¥ÀèÅÙ¤ò¡¢¤³¤Î¥½¥±¥Ã¥È¤«¤é -Á÷¿®¤µ¤ì¤ëÁ´¤Æ¤Î¥Ñ¥±¥Ã¥È¤Ë¥»¥Ã¥È¤¹¤ë¡£ Linux ¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥­¥å¡¼ÆâÉô¤Î -À°Îó¤Ë¤³¤ÎÃͤòÍѤ¤¤ë¡£¹â¤¤Í¥ÀèÅÙ¤ò»ý¤Ã¤Æ¤¤¤ë¥Ñ¥±¥Ã¥È¤ÏÀè¤Ë½èÍý¤µ¤ì¤ë¡£ -¤¿¤À¤·¤½¤Î¥Ç¥Ð¥¤¥¹¤Î¥­¥å¡¼½èÍý¤Î¤ä¤êÊý¤Ë°Í¸¤¹¤ë¡£ +プロトコルで定義された優先度を、このソケットから +送信される全てのパケットにセットする。 Linux はネットワークキュー内部の +整列にこの値を用いる。高い優先度を持っているパケットは先に処理される。 +ただしそのデバイスのキュー処理のやり方に依存する。 .BR ip (7) -¤Ç¤Ï¡¢³°¸þ¤±¥Ñ¥±¥Ã¥È¤Î IP type-of-service (TOS) ¥Õ¥£¡¼¥ë¥É¤Ë¤â¤³¤ÎÃͤ¬ÀßÄꤵ¤ì¤ë¡£ -0 ¤«¤é 6 °Ê³°¤ÎÍ¥ÀèÅÙ¤ò¥»¥Ã¥È¤¹¤ë¤Ë¤Ï +では、外向けパケットの IP type-of-service (TOS) フィールドにもこの値が設定される。 +0 から 6 以外の優先度をセットするには .B CAP_NET_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティが必要である。 .TP .B SO_RCVBUF .\"O Sets or gets the maximum socket receive buffer in bytes. @@ -677,22 +677,22 @@ linger ( .\"O .I /proc/sys/net/core/rmem_max .\"O file. .\"O The minimum (doubled) value for this option is 256. -¥½¥±¥Ã¥È¤Î¼õ¿®¥Ð¥Ã¥Õ¥¡¤ÎºÇÂ祵¥¤¥º¤òÀßÄꡦ¼èÆÀ¤¹¤ë (¥Ð¥¤¥Èñ°Ì)¡£ +ソケットの受信バッファの最大サイズを設定・取得する (バイト単位)。 .BR setsockopt (2) -¤ò»È¤Ã¤ÆÃͤ¬ÀßÄꤵ¤ì¤¿¤È¤­¤Ë (´ÉÍý¥ª¡¼¥Ð¥Ø¥Ã¥ÉÍѤÎÎΰè¤ò³ÎÊݤ¹¤ë¤¿¤á¤Ë) -¥«¡¼¥Í¥ë¤Ï¤³¤ÎÃͤò 2Çܤ·¡¢ -.\" ¾¤Î¤Û¤È¤ó¤É¤Î (Á´¤Æ¤Î?) ¼ÂÁõ¤Ç¤Ï¤³¤ó¤Ê¤³¤È¤Ï¹Ô¤Ã¤Æ¤¤¤Ê¤¤ -- MTK, Dec 05 +を使って値が設定されたときに (管理オーバヘッド用の領域を確保するために) +カーネルはこの値を 2倍し、 +.\" 他のほとんどの (全ての?) 実装ではこんなことは行っていない -- MTK, Dec 05 .BR getsockopt (2) -¤Ï¤³¤Î 2Çܤµ¤ì¤¿ÃͤòÊÖ¤¹¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÃÍ¤Ï +はこの 2倍された値を返す。 +デフォルトの値は .I /proc/sys/net/core/rmem_default -¥Õ¥¡¥¤¥ë¤ÇÀßÄꤵ¤ì¡¢µöÍƤµ¤ì¤ëºÇÂç¤ÎÃÍ¤Ï +ファイルで設定され、許容される最大の値は .I /proc/sys/net/core/rmem_max -¥Õ¥¡¥¤¥ë¤ÇÀßÄꤵ¤ì¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ÎºÇ¾®ÃÍ¤Ï (2Çܤ·¤¿ÃͤÇ) 256 ¤Ç¤¢¤ë¡£ +ファイルで設定される。 +このオプションの最小値は (2倍した値で) 256 である。 .TP .\"O .BR SO_RCVBUFFORCE " (since Linux 2.6.14)" -.BR SO_RCVBUFFORCE " (Linux 2.6.14 °Ê¹ß)" +.BR SO_RCVBUFFORCE " (Linux 2.6.14 以降)" .\"O Using this socket option, a privileged .\"O .RB ( CAP_NET_ADMIN ) .\"O process can perform the same task as @@ -700,17 +700,17 @@ linger ( .\"O but the .\"O .I rmem_max .\"O limit can be overridden. -¤³¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¡¢Æø¢¥×¥í¥»¥¹ +このソケットオプションを使うと、特権プロセス .RB ( CAP_NET_ADMIN -¤ò»ý¤Ä¥×¥í¥»¥¹) ¤Ï +を持つプロセス) は .B SO_RCVBUF -¤ÈƱ¤¸¤³¤È¤ò¼Â¹Ô¤Ç¤­¤ë¡£ -¤¿¤À¤·¡¢¾å¸Â +と同じことを実行できる。 +ただし、上限 .I rmem_max -¤ò¾å½ñ¤­¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を上書きすることができる。 .TP .\"O .BR SO_RCVLOWAT " and " SO_SNDLOWAT -.BR SO_RCVLOWAT " ¤È " SO_SNDLOWAT +.BR SO_RCVLOWAT " と " SO_SNDLOWAT .\"O Specify the minimum number of bytes in the buffer until the socket layer .\"O will pass the data to the protocol .\"O .RB ( SO_SNDLOWAT ) @@ -725,20 +725,20 @@ linger ( .\"O .B SO_RCVLOWAT .\"O is changeable .\"O only since Linux 2.4. -¥Ð¥Ã¥Õ¥¡Ãæ¤Ëί¤á¤ë¤³¤È¤Î¤Ç¤­¤ë¥Ç¡¼¥¿¤ÎºÇ¾®Ãͤò»ØÄꤹ¤ë¡£ -¤³¤Î¥µ¥¤¥º¤ò±Û¤¨¤ë¤È¡¢¥½¥±¥Ã¥ÈÁؤϤ½¤Î¥Ç¡¼¥¿¤ò¥×¥í¥È¥³¥ë¤ËÅϤ· -.RB ( SO_SNDLOWAT )¡¢ -¼õ¿®»þ¤Ë¤Ï¥æ¡¼¥¶¤ËÅϤ¹ -.RB ( SO_RCVLOWAT )¡£ -¤³¤ì¤éÆó¤Ä¤ÎÃÍ¤Ï 1 ¤Ë½é´ü²½¤µ¤ì¤ë¡£ +バッファ中に溜めることのできるデータの最小値を指定する。 +このサイズを越えると、ソケット層はそのデータをプロトコルに渡し +.RB ( SO_SNDLOWAT )、 +受信時にはユーザに渡す +.RB ( SO_RCVLOWAT )。 +これら二つの値は 1 に初期化される。 .B SO_SNDLOWAT -¤Ï Linux ¤Ç¤ÏÊѹ¹¤Ç¤­¤Ê¤¤ +は Linux では変更できない .RB ( setsockopt (2) -¤Ï +は .B ENOPROTOOPT -¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë)¡£ +エラーで失敗する)。 .B SO_RCVLOWAT -¤Ï Linux 2.4 °Ê¹ß¤Ç¤Î¤ßÊѹ¹²Äǽ¤Ç¤¢¤ë¡£ +は Linux 2.4 以降でのみ変更可能である。 .\"O The .\"O .BR select (2) .\"O and @@ -752,29 +752,29 @@ linger ( .\"O bytes are available. .\"O .\" See http://marc.theaimsgroup.com/?l=linux-kernel&m=111049368106984&w=2 .\"O .\" Tested on kernel 2.6.14 -- mtk, 30 Nov 05 -¸½¾õ¡¢Linux ¤Ç¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë +現状、Linux ではシステムコール .BR select (2) -¤È +と .BR poll (2) -¤Ï +は .B SO_RCVLOWAT -¤ÎÀßÄê¤ò¹Íθ¤ËÆþ¤ì¤º¤ËÆ°ºî¤·¡¢ -¥Ç¡¼¥¿¤¬1¥Ð¥¤¥ÈÍøÍѲÄǽ¤Ë¤Ê¤Ã¤¿¤À¤±¤Ç¤â¡¢ -¥½¥±¥Ã¥È¤ÏÆɤ߽Ф·²Äǽ¤È¤Î¥Þ¡¼¥¯¤ò¤Ä¤±¤ë¡£ -°ìÊý¡¢¤½¤ì¤Ë³¤±¤Æ¹Ô¤¦¥½¥±¥Ã¥È¤«¤é¤Î read ¤Ï +の設定を考慮に入れずに動作し、 +データが1バイト利用可能になっただけでも、 +ソケットは読み出し可能とのマークをつける。 +一方、それに続けて行うソケットからの read は .B SO_RCVLOWAT -¥Ð¥¤¥È¤Î¥Ç¡¼¥¿¤¬ÍøÍѲÄǽ¤Ë¤Ê¤ë¤Þ¤ÇÄä»ß¤·¤Æ¤·¤Þ¤¦¡£ +バイトのデータが利用可能になるまで停止してしまう。 .\" See http://marc.theaimsgroup.com/?l=linux-kernel&m=111049368106984&w=2 .\" Tested on kernel 2.6.14 -- mtk, 30 Nov 05 .TP .\"O .BR SO_RCVTIMEO " and " SO_SNDTIMEO -.BR SO_RCVTIMEO " ¤È " SO_SNDTIMEO +.BR SO_RCVTIMEO " と " SO_SNDTIMEO .\"O .\" Not implemented in 2.0. .\"O .\" Implemented in 2.1.11 for getsockopt: always return a zero struct. .\"O .\" Implemented in 2.3.41 for setsockopt, and actually used. -.\" 2.0 ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.\" getsockopt ¤Ë¤Ä¤¤¤Æ¤Ï 2.1.11 ¤Ç¼ÂÁõ¤µ¤ì¤¿¡£¾ï¤Ë 0 ¤Î¹½Â¤ÂΤòÊÖ¤¹¡£ -.\" setsockopt ¤Ë¤Ä¤¤¤Æ¤Ï 2.3.41 ¤Ç¼ÂÁõ¤µ¤ì¡¢¼ÂºÝ¤Ë»È¤ï¤ì¤Æ¤¤¤ë¡£ +.\" 2.0 では実装されていない。 +.\" getsockopt については 2.1.11 で実装された。常に 0 の構造体を返す。 +.\" setsockopt については 2.3.41 で実装され、実際に使われている。 .\"O Specify the receiving or sending timeouts until reporting an error. .\"O The argument is a .\"O .IR "struct timeval" . @@ -791,24 +791,24 @@ linger ( .\"O just as if the socket was specified to be nonblocking. .\"O If the timeout is set to zero (the default) .\"O then the operation will never timeout. -Á÷¿®¡¦¼õ¿®¤Î¥¿¥¤¥à¥¢¥¦¥È¤ò»ØÄꤹ¤ë¡£¤³¤ì¤ò±Û¤¨¤ë¤È¥¨¥é¡¼¤òÊó¹ð¤¹¤ë¡£ -°ú¤­¿ô¤Ï +送信・受信のタイムアウトを指定する。これを越えるとエラーを報告する。 +引き数は .I "struct timeval" -¤Ç¤¢¤ë¡£ -Æþ½ÐÎÏ´Ø¿ô¤¬¥¿¥¤¥à¥¢¥¦¥È»þ´Ö¤Î´Ö¥Ö¥í¥Ã¥¯¤µ¤ì¡¢¤«¤Ä¥Ç¡¼¥¿¤ÎÁ÷¿®¤Þ¤¿¤Ï -¼õ¿®¤¬¹Ô¤ï¤ì¤Æ¤¤¤¿¾ì¹ç¤Ï¡¢Å¾Á÷¤µ¤ì¤¿¥Ç¡¼¥¿Î̤¬´Ø¿ô¤ÎÊÖ¤êÃͤȤʤ롣 -²¿¤â¥Ç¡¼¥¿¤¬Å¾Á÷¤µ¤ì¤º¤Ë¥¿¥¤¥à¥¢¥¦¥È¤Ë㤷¤¿¾ì¹ç¤Ï¡¢ -\-1 ¤òÊÖ¤·¡¢ +である。 +入出力関数がタイムアウト時間の間ブロックされ、かつデータの送信または +受信が行われていた場合は、転送されたデータ量が関数の返り値となる。 +何もデータが転送されずにタイムアウトに達した場合は、 +\-1 を返し、 .I errno -¤Ë +に .B EAGAIN -¤« +か .B EWOULDBLOCK -¤òÀßÄꤵ¤ì¡¢ -.\" ¼ÂºÝ¤Ë¤Ï EAGAIN ¤¬ÀßÄꤵ¤ì¤ë -¤¢¤¿¤«¤â¥½¥±¥Ã¥È¤ËÈó¥Ö¥í¥Ã¥­¥ó¥°¤¬»ØÄꤵ¤ì¤¿¤è¤¦¤Ë¸«¤¨¤ë¡£ -¥¿¥¤¥à¥¢¥¦¥ÈÃÍ¤Ë (¥Ç¥Õ¥©¥ë¥ÈÃͤǤ¢¤ë) 0 ¤ËÀßÄꤹ¤ë¤È¡¢ -Áàºî¤Ï·è¤·¤Æ¥¿¥¤¥à¥¢¥¦¥È¤·¤Ê¤¯¤Ê¤ë¡£ +を設定され、 +.\" 実際には EAGAIN が設定される +あたかもソケットに非ブロッキングが指定されたように見える。 +タイムアウト値に (デフォルト値である) 0 に設定すると、 +操作は決してタイムアウトしなくなる。 .\"O Timeouts only have effect for system calls that perform socket I/O (e.g., .\"O .BR read (2), .\"O .BR recvmsg (2), @@ -819,18 +819,18 @@ linger ( .\"O .BR poll (2), .\"O .BR epoll_wait (2), .\"O etc. -¥¿¥¤¥à¥¢¥¦¥È¤¬±Æ¶Á¤òµÚ¤Ü¤¹¤Î¤Ï¡¢ -¥½¥±¥Ã¥È I/O ¤ò¼Â¹Ô¤¹¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤À¤± -(Î㤨¤Ð +タイムアウトが影響を及ぼすのは、 +ソケット I/O を実行するシステムコールだけ +(例えば .BR read (2), .BR recvmsg (2), .BR send (2), .BR sendmsg (2)) -¤Ç¤¢¤ë¡£ +である。 .BR select (2), .BR poll (2), .BR epoll_wait (2) -¤Ê¤É¤Ë¤Ï¥¿¥¤¥à¥¢¥¦¥È¤Ï±Æ¶Á¤òµÚ¤Ü¤µ¤Ê¤¤¡£ +などにはタイムアウトは影響を及ぼさない。 .TP .B SO_REUSEADDR .\"O Indicates that the rules used in validating addresses supplied in a @@ -847,17 +847,17 @@ linger ( .\"O to bind to this port for any local address. .\"O Argument is an integer boolean flag. .BR bind (2) -¥³¡¼¥ë¤ËÍ¿¤¨¤é¤ì¤¿¥¢¥É¥ì¥¹¤¬Àµ¤·¤¤¤«¤òȽÃǤ¹¤ë¥ë¡¼¥ë¤Ç¡¢ -¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤ÎºÆÍøÍѤò²Äǽ¤Ë¤¹¤ë¡£ -¤Ä¤Þ¤ê +コールに与えられたアドレスが正しいかを判断するルールで、 +ローカルアドレスの再利用を可能にする。 +つまり .B AF_INET -¥½¥±¥Ã¥È¤Ê¤é¡¢¤½¤Î¥¢¥É¥ì¥¹¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¤¿¥¢¥¯¥Æ¥£¥Ö¤Ê listen -¾õÂ֤Υ½¥±¥Ã¥È¤¬Â¸ºß¤·¤Ê¤¤¸Â¤ê¡¢¥Ð¥¤¥ó¥É¤¬¹Ô¤¨¤ë¡£ -listen ¾õÂ֤Υ½¥±¥Ã¥È¤¬¥¢¥É¥ì¥¹ +ソケットなら、そのアドレスにバインドされたアクティブな listen +状態のソケットが存在しない限り、バインドが行える。 +listen 状態のソケットがアドレス .B INADDR_ANY -¤ÇÆÃÄê¤Î¥Ý¡¼¥È¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -¤³¤Î¥Ý¡¼¥È¤ËÂФ·¤Æ¤Ï¡¢¤É¤ó¤Ê¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤Ç¤â¥Ð¥¤¥ó¥É¤Ç¤­¤Ê¤¤¡£ -°ú¤­¿ô¤Ï¥Ö¡¼¥ëÀ°¿ô¤Î¥Õ¥é¥°¤Ç¤¢¤ë¡£ +で特定のポートにバインドされている場合には、 +このポートに対しては、どんなローカルアドレスでもバインドできない。 +引き数はブール整数のフラグである。 .TP .B SO_SNDBUF .\"O Sets or gets the maximum socket send buffer in bytes. @@ -873,22 +873,22 @@ listen .\"O .I /proc/sys/net/core/wmem_max .\"O file. .\"O The minimum (doubled) value for this option is 2048. -¥½¥±¥Ã¥È¤ÎÁ÷¿®¥Ð¥Ã¥Õ¥¡¤ÎºÇÂ祵¥¤¥º¤òÀßÄꡦ¼èÆÀ¤¹¤ë (¥Ð¥¤¥Èñ°Ì)¡£ +ソケットの送信バッファの最大サイズを設定・取得する (バイト単位)。 .BR setsockopt (2) -¤ò»È¤Ã¤ÆÃͤ¬ÀßÄꤵ¤ì¤¿¤È¤­¤Ë (´ÉÍý¥ª¡¼¥Ð¥Ø¥Ã¥ÉÍѤÎÎΰè¤ò³ÎÊݤ¹¤ë¤¿¤á¤Ë) -¥«¡¼¥Í¥ë¤Ï¤³¤ÎÃͤò 2Çܤ·¡¢ -.\" ¾¤Î¤Û¤È¤ó¤É¤Î (Á´¤Æ¤Î?) ¼ÂÁõ¤Ç¤Ï¤³¤ó¤Ê¤³¤È¤Ï¹Ô¤Ã¤Æ¤¤¤Ê¤¤ -- MTK, Dec 05 +を使って値が設定されたときに (管理オーバヘッド用の領域を確保するために) +カーネルはこの値を 2倍し、 +.\" 他のほとんどの (全ての?) 実装ではこんなことは行っていない -- MTK, Dec 05 .BR getsockopt (2) -¤Ï¤³¤Î 2Çܤµ¤ì¤¿ÃͤòÊÖ¤¹¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÃÍ¤Ï +はこの 2倍された値を返す。 +デフォルトの値は .I /proc/sys/net/core/wmem_default -¥Õ¥¡¥¤¥ë¤ÇÀßÄꤵ¤ì¡¢µöÍƤµ¤ì¤ëºÇÂç¤ÎÃÍ¤Ï +ファイルで設定され、許容される最大の値は .I /proc/sys/net/core/wmem_max -¥Õ¥¡¥¤¥ë¤ÇÀßÄꤵ¤ì¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ÎºÇ¾®ÃÍ¤Ï (2Çܤ·¤¿ÃͤÇ) 2048 ¤Ç¤¢¤ë¡£ +ファイルで設定される。 +このオプションの最小値は (2倍した値で) 2048 である。 .TP .\"O .BR SO_SNDBUFFORCE " (since Linux 2.6.14)" -.BR SO_SNDBUFFORCE " (Linux 2.6.14 °Ê¹ß)" +.BR SO_SNDBUFFORCE " (Linux 2.6.14 以降)" .\"O Using this socket option, a privileged .\"O .RB ( CAP_NET_ADMIN ) .\"O process can perform the same task as @@ -896,14 +896,14 @@ listen .\"O but the .\"O .I wmem_max .\"O limit can be overridden. -¤³¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¡¢Æø¢¥×¥í¥»¥¹ +このソケットオプションを使うと、特権プロセス .RB ( CAP_NET_ADMIN -¤ò»ý¤Ä¥×¥í¥»¥¹) ¤Ï +を持つプロセス) は .B SO_SNDBUF -¤ÈƱ¤¸¤³¤È¤ò¼Â¹Ô¤Ç¤­¤ë¡£ -¤¿¤À¤·¡¢¾å¸Â +と同じことを実行できる。 +ただし、上限 .I wmem_max -¤ò¾å½ñ¤­¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を上書きすることができる。 .TP .B SO_TIMESTAMP .\"O Enable or disable the receiving of the @@ -921,18 +921,18 @@ listen .\"O .BR cmsg (3) .\"O for details on control messages. .B SO_TIMESTAMP -À©¸æ¥á¥Ã¥»¡¼¥¸¤Î¼õ¿®¤òÍ­¸ú/̵¸ú¤Ë¤¹¤ë¡£ -¥¿¥¤¥à¥¹¥¿¥ó¥×À©¸æ¥á¥Ã¥»¡¼¥¸¤Ï¥ì¥Ù¥ë +制御メッセージの受信を有効/無効にする。 +タイムスタンプ制御メッセージはレベル .B SOL_SOCKET -¤ÇÁ÷¿®¤µ¤ì¡¢ +で送信され、 .I cmsg_data -¥Õ¥£¡¼¥ë¥É¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¥æ¡¼¥¶¤ËÅϤ·¤¿ -ºÇ¸å¤Î¥Ñ¥±¥Ã¥È¤Î¼õ¿®»þ¹ï¤ò¼¨¤¹ +フィールドはこのシステムコールでユーザに渡した +最後のパケットの受信時刻を示す .I "struct timeval" -¤Ç¤¢¤ë¡£ -À©¸æ¥á¥Ã¥»¡¼¥¸¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï +である。 +制御メッセージの詳細については .BR cmsg (3) -¤ò»²¾È¡£ +を参照。 .TP .B SO_TYPE .\"O Gets the socket type as an integer (like @@ -940,12 +940,12 @@ listen .\"O Can only be read .\"O with .\"O .BR getsockopt (2). -¥½¥±¥Ã¥È¤Î¥¿¥¤¥×¤òÀ°¿ô¤Ç¼èÆÀ¤¹¤ë (Îã: -.BR SOCK_STREAM )¡£ +ソケットのタイプを整数で取得する (例: +.BR SOCK_STREAM )。 .BR getsockopt (2) -¤«¤é¤Î¤ßÆɤ߽Ф·²Äǽ¤Ç¤¢¤ë¡£ +からのみ読み出し可能である。 .\"O .SS Signals -.SS ¥·¥°¥Ê¥ë +.SS シグナル .\"O When writing onto a connection-oriented socket that has been shut down .\"O (by the local or the remote end) .\"O .B SIGPIPE @@ -956,15 +956,15 @@ listen .\"O specified the .\"O .B MSG_NOSIGNAL .\"O flag. -(¥í¡¼¥«¥ë¤â¤·¤¯¤Ï¥ê¥â¡¼¥È¦¤Ç) ÀÚÃǤµ¤ì¤¿ -Àܳ»Ø¸þ (connection-oriented) ¤Î¥½¥±¥Ã¥È¤ËÂФ·¤Æ -½ñ¤­¹þ¤ß¤ò¹Ô¤¦¤È¡¢¤½¤Î½ñ¤­¹þ¤ß¤ò¹Ô¤Ã¤¿¥×¥í¥»¥¹¤Ë +(ローカルもしくはリモート側で) 切断された +接続指向 (connection-oriented) のソケットに対して +書き込みを行うと、その書き込みを行ったプロセスに .B SIGPIPE -¤¬Á÷¤é¤ì¡¢ +が送られ、 .B EPIPE -¤¬ÊÖ¤µ¤ì¤ë¡£ write ¸Æ¤Ó½Ð¤·¤Ë +が返される。 write 呼び出しに .B MSG_NOSIGNAL -¥Õ¥é¥°¤ò»ØÄꤷ¤Æ¤¤¤¿¾ì¹ç¤Ï¥·¥°¥Ê¥ë¤ÏÁ÷¤é¤ì¤Ê¤¤¡£ +フラグを指定していた場合はシグナルは送られない。 .PP .\"O When requested with the .\"O .B FIOSETOWN @@ -981,18 +981,18 @@ listen .\"O in the signal handler to find out which socket the event occurred on. .B FIOSETOWN .BR fcntl (2) -¤ä +や .B SIOCSPGRP .BR ioctl (2) -¤ò¥×¥í¥»¥¹¤Þ¤¿¤Ï¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë»ØÄꤷ¤Æ¤ª¤¯¤È¡¢ -I/O ¥¤¥Ù¥ó¥È¤¬µ¯¤­¤¿¤È¤­¤Ë +をプロセスまたはプロセスグループに指定しておくと、 +I/O イベントが起きたときに .B SIGIO -¤¬Á÷¤é¤ì¤ë¡£ +が送られる。 .BR poll (2) -¤ä +や .BR select (2) -¤ò¥·¥°¥Ê¥ë¥Ï¥ó¥É¥éÆâ¤ÇÍѤ¤¤ì¤Ð¡¢¤É¤Î¥½¥±¥Ã¥È¤Ç¥¤¥Ù¥ó¥È¤¬µ¯¤³¤Ã¤¿¤«¤ò -ÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ +をシグナルハンドラ内で用いれば、どのソケットでイベントが起こったかを +知ることができる。 .\"O An alternative (in Linux 2.2) is to set a real-time signal using the .\"O .B F_SETSIG .\"O .BR fcntl (2); @@ -1004,18 +1004,18 @@ I/O .\"O See .\"O .BR fcntl (2) .\"O for more information. -(Linux 2.2 ¤Ë¤ª¤±¤ë) Ê̤ÎÊýË¡¤È¤·¤Æ¤Ï¡¢ +(Linux 2.2 における) 別の方法としては、 .B F_SETSIG .BR fcntl (2) -¤òÍѤ¤¤Æ¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤òÀßÄꤹ¤ë¤ä¤êÊý¤â¤¢¤ë¡£ -¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Î¥Ï¥ó¥É¥é¤Ï¡¢ +を用いてリアルタイムシグナルを設定するやり方もある。 +リアルタイムシグナルのハンドラは、 .I siginfo_t -¤Î +の .I si_fd -¥Õ¥£¡¼¥ë¥É¤Ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Æþ¤Ã¤¿¾õÂ֤ǸƤӽФµ¤ì¤ë¡£ -¾ÜºÙ¤Ï +フィールドにファイルディスクリプタが入った状態で呼び出される。 +詳細は .BR fcntl (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP .\"O Under some circumstances (e.g., multiple processes accessing a .\"O single socket), the condition that caused the @@ -1023,25 +1023,25 @@ I/O .\"O may have already disappeared when the process reacts to the signal. .\"O If this happens, the process should wait again because Linux .\"O will resend the signal later. -¾õ¶·¤Ë¤è¤Ã¤Æ¤Ï (Î㤨¤ÐÊ£¿ô¤Î¥×¥í¥»¥¹¤¬°ì¤Ä¤Î¥½¥±¥Ã¥È¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¤¤ë¤Ê¤É)¡¢ +状況によっては (例えば複数のプロセスが一つのソケットにアクセスしているなど)、 .B SIGIO -¤Î¸¶°ø¤È¤Ê¤Ã¤¿¾õÂ֤ϡ¢¥×¥í¥»¥¹¤¬¤½¤Î¥·¥°¥Ê¥ë¤Ø¤ÎÂбþ¤ò¹Ô¤Ã¤¿¤È¤­¤Ë¤Ï -¾Ã¤¨¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤Î¾ì¹ç¤Ï¡¢¥×¥í¥»¥¹¤ÏºÆ¤ÓÂԤĤ褦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -Linux ¤ÏƱ¤¸¥·¥°¥Ê¥ë¤ò¸å¤ÇºÆÁ÷¤¹¤ë¤«¤é¤Ç¤¢¤ë¡£ +の原因となった状態は、プロセスがそのシグナルへの対応を行ったときには +消えてしまっているかもしれない。 +この場合は、プロセスは再び待つようにすべきである。 +Linux は同じシグナルを後で再送するからである。 .\" .SS Ancillary Messages .\"O .SS /proc interfaces -.SS /proc ¥¤¥ó¥¿¥Õ¥§¡¼¥¹ +.SS /proc インタフェース .\"O The core socket networking parameters can be accessed .\"O via files in the directory .\"O .IR /proc/sys/net/core/ . -core ¤Î¥½¥±¥Ã¥È¤Î¥Í¥Ã¥È¥ï¡¼¥­¥ó¥°¥Ñ¥é¥á¡¼¥¿¤Ë¤Ï¡¢ +core のソケットのネットワーキングパラメータには、 .I /proc/sys/net/core/ -¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¤òÄ̤·¤Æ¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ +ディレクトリ内のファイルを通してアクセスできる。 .TP .I rmem_default .\"O contains the default setting in bytes of the socket receive buffer. -¥½¥±¥Ã¥È¤Î¼õ¿®¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ (¥Ð¥¤¥Èñ°Ì)¡£ +ソケットの受信バッファサイズのデフォルト値 (バイト単位)。 .TP .I rmem_max .\"O contains the maximum socket receive buffer size in bytes which a user may @@ -1049,12 +1049,12 @@ core .\"O .B SO_RCVBUF .\"O socket option. .B SO_RCVBUF -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤Æ¥æ¡¼¥¶¤¬ÀßÄê¤Ç¤­¤ë -¥½¥±¥Ã¥È¤Î¼õ¿®¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤ÎºÇÂçÃÍ (¥Ð¥¤¥Èñ°Ì)¡£ +ソケットオプションを用いてユーザが設定できる +ソケットの受信バッファサイズの最大値 (バイト単位)。 .TP .I wmem_default .\"O contains the default setting in bytes of the socket send buffer. -¥½¥±¥Ã¥È¤ÎÁ÷¿®¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ (¥Ð¥¤¥Èñ°Ì)¡£ +ソケットの送信バッファサイズのデフォルト値 (バイト単位)。 .TP .I wmem_max .\"O contains the maximum socket send buffer size in bytes which a user may @@ -1062,35 +1062,35 @@ core .\"O .B SO_SNDBUF .\"O socket option. .B SO_SNDBUF -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤Æ¥æ¡¼¥¶¤¬ÀßÄê¤Ç¤­¤ë -¥½¥±¥Ã¥È¤ÎÁ÷¿®¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤ÎºÇÂçÃÍ (¥Ð¥¤¥Èñ°Ì)¡£ +ソケットオプションを用いてユーザが設定できる +ソケットの送信バッファサイズの最大値 (バイト単位)。 .TP .\"O .IR message_cost " and " message_burst -.IR message_cost " ¤È " message_burst +.IR message_cost " と " message_burst .\"O configure the token bucket filter used to load limit warning messages .\"O caused by external network events. -¥È¡¼¥¯¥ó¡¦¥Ð¥±¥Ã¥È¡¦¥Õ¥£¥ë¥¿¡¼¤òÀßÄꤹ¤ë¡£ -¤³¤ì¤Ï³°Éô¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¤¥Ù¥ó¥È¤Ë¤è¤Ã¤Æ°ú¤­µ¯¤³¤µ¤ì¤¿ -Éé²Ù¸Â³¦¤Î·Ù¹ð¥á¥Ã¥»¡¼¥¸¤ËÍѤ¤¤é¤ì¤ë¡£ -.\"NAKANO "load limit" ¤À¤È»×¤¦¤ó¤À¤±¤É... +トークン・バケット・フィルターを設定する。 +これは外部のネットワークイベントによって引き起こされた +負荷限界の警告メッセージに用いられる。 +.\"NAKANO "load limit" だと思うんだけど... .TP .I netdev_max_backlog .\"O Maximum number of packets in the global input queue. -¥°¥í¡¼¥Ð¥ë¤ÊÆþÎÏ¥­¥å¡¼¤Ë¤ª¤±¤ëºÇÂç¤Î¥Ñ¥±¥Ã¥È¿ô¡£ +グローバルな入力キューにおける最大のパケット数。 .TP .I optmem_max .\"O Maximum length of ancillary data and user control data like the iovecs .\"O per socket. -¥½¥±¥Ã¥È¤¢¤¿¤ê¤Î¡¢Êä½õ¥Ç¡¼¥¿ (ancillary data) ¤È¥æ¡¼¥¶À©¸æ¥Ç¡¼¥¿ -(iovecs ¤Î¤è¤¦¤Ê¤â¤Î) ¤È¤ÎϤκÇÂçĹ¡£ +ソケットあたりの、補助データ (ancillary data) とユーザ制御データ +(iovecs のようなもの) との和の最大長。 .\" netdev_fastroute is not documented because it is experimental .\"O .SS Ioctls .SS ioctl .\"O These operations can be accessed using .\"O .BR ioctl (2): -°Ê²¼¤Ë¼¨¤¹Áàºî¤Ë¤Ï +以下に示す操作には .BR ioctl (2) -¤òÍѤ¤¤Æ¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ +を用いてアクセスできる。 .in +4n .nf @@ -1107,14 +1107,14 @@ core .\"O .BR setitimer (2) .\"O for a description of .\"O .IR "struct timeval" . -ºÇ¸å¤Ë¥æ¡¼¥¶¤ËÅϤµ¤ì¤¿¥Ñ¥±¥Ã¥È¤Î¼õ¿®¥¿¥¤¥à¥¹¥¿¥ó¥×¤ò +最後にユーザに渡されたパケットの受信タイムスタンプを .I struct timeval -¤ËÆþ¤ì¤ÆÊÖ¤¹¡£ -¤³¤ì¤Ï round trip »þ´Ö¤òÀµ³Î¤Ë¬¤ê¤¿¤¤¤È¤­¤ËÊØÍø¤Ç¤¢¤ë¡£ +に入れて返す。 +これは round trip 時間を正確に測りたいときに便利である。 .I struct timeval -¤ÎÀâÌÀ¤Ï +の説明は .BR setitimer (2) -¤ò¸«¤Æ¤Û¤·¤¤¡£ +を見てほしい。 .\" .\"O This ioctl should only be used if the socket option .\"O .B SO_TIMESTAMP @@ -1129,20 +1129,20 @@ core .\"O .I errno .\"O set to .\"O .BR ENOENT ). -¤³¤Î ioctl ¤Ï¡¢¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó +この ioctl は、ソケットオプション .B SO_TIMESTAMP -¤¬¥½¥±¥Ã¥È¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Î¤ß»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ -¤µ¤â¤Ê¤±¤ì¤Ð¡¢¤³¤Î ioctl ¤Ï +がソケットにセットされていない場合にのみ使用すべきである。 +さもなければ、この ioctl は .B SO_TIMESTAMP -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿´Ö¤Ë¼õ¿®¤·¤¿ºÇ¸å¤Î¥Ñ¥±¥Ã¥È¤Î»þ¹ï¤òÊÖ¤¹¤«¡¢ -¤½¤Î¤è¤¦¤Ê¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¼ºÇÔ¤¹¤ë -(¤Ä¤Þ¤ê¡¢ +がセットされていなかった間に受信した最後のパケットの時刻を返すか、 +そのようなパケットを受信していない場合には失敗する +(つまり、 .BR ioctl (2) -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤Ë +に .B ENOENT -¤ò¥»¥Ã¥È¤¹¤ë)¡£ +をセットする)。 .TP .B SIOCSPGRP .\"O Set the process or process group to send @@ -1162,21 +1162,21 @@ core .\"O signals unless it has the .\"O .B CAP_KILL .\"O capability or an effective UID of 0. -ÈóƱ´ü I/O Áàºî¤Î½ªÎ»»þ¤ä¶ÛµÞ¥Ç¡¼¥¿¤Î¼õ¿®»þ¤Ë +非同期 I/O 操作の終了時や緊急データの受信時に .B SIGIO -¤ä +や .B SIGURG -¥·¥°¥Ê¥ë·²¤òÁ÷¤ë¥×¥í¥»¥¹¤ä¥×¥í¥»¥¹¥°¥ë¡¼¥×¤òÀßÄꤹ¤ë¡£ -°ú¤­¿ô¤Ï +シグナル群を送るプロセスやプロセスグループを設定する。 +引き数は .I pid_t -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -°ú¤­¿ô¤¬Àµ¤À¤È¡¢¤½¤Î¥×¥í¥»¥¹¤Ë¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£Éé¤À¤È¡¢ -°ú¤­¿ô¤ÎÀäÂÐÃͤò ID ¤Ë»ý¤Ä¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£ -¥·¥°¥Ê¥ë¼õ¿®Àè¤Ë¤Ï¡¢¼«Ê¬¼«¿È¤Î¥×¥í¥»¥¹ / ¼«Ê¬¤Î½ê°¤¹¤ë¥×¥í¥»¥¹¥°¥ë¡¼¥× -¤·¤«»ØÄê¤Ç¤­¤Ê¤¤¡£Ã¢¤·¡¢ +へのポインタである。 +引き数が正だと、そのプロセスにシグナルが送られる。負だと、 +引き数の絶対値を ID に持つプロセスグループにシグナルが送られる。 +シグナル受信先には、自分自身のプロセス / 自分の所属するプロセスグループ +しか指定できない。但し、 .B CAP_KILL -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢µÚ¤Ó¼Â¸ú¥æ¡¼¥¶ ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤Î¾ì¹ç¤Ï -¤³¤Î¸Â¤ê¤Ç¤Ï¤Ê¤¤¡£ +ケーパビリティを持っている場合、及び実効ユーザ ID が 0 のプロセスの場合は +この限りではない。 .TP .B FIOASYNC .\"O Change the @@ -1188,26 +1188,26 @@ core .\"O .B F_SETSIG .\"O is raised when a new I/O event occurs. .B O_ASYNC -¥Õ¥é¥°¤òÊѹ¹¤·¡¢¥½¥±¥Ã¥È¤ÎÈóƱ´ü (asynchronous) I/O ¥â¡¼¥É¤ò -Í­¸ú/̵¸ú¤Ë¤¹¤ë¡£ÈóƱ´ü I/O ¥â¡¼¥É¤Ç¤Ï¡¢ -¿·¤·¤¤ I/O ¥¤¥Ù¥ó¥È¤¬µ¯¤­¤¿¤È¤­¤Ë¡¢ +フラグを変更し、ソケットの非同期 (asynchronous) I/O モードを +有効/無効にする。非同期 I/O モードでは、 +新しい I/O イベントが起きたときに、 .B SIGIO -¥·¥°¥Ê¥ë¤ä +シグナルや .B F_SETSIG -¤ÇÀßÄꤵ¤ì¤¿¥·¥°¥Ê¥ë¡¦¥»¥Ã¥È¤¬È¯¹Ô¤µ¤ì¤ë¡£ +で設定されたシグナル・セットが発行される。 .IP .\"O Argument is an integer boolean flag. -°ú¤­¿ô¤Ï¥Ö¡¼¥ëÀ°¿ô¤Î¥Õ¥é¥°¤Ç¤¢¤ë¡£ +引き数はブール整数のフラグである。 .\"O (This operation is synonymous with the use of .\"O .BR fcntl (2) .\"O to set the .\"O .B O_ASYNC .\"O flag.) -(¤³¤ÎÁàºî¤Ï +(この操作は .BR fcntl (2) -¤ò»È¤Ã¤Æ +を使って .B O_ASYNC -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤Î¤ÈƱ¤¸°ÕÌ£¤Ç¤¢¤ë¡£) +フラグをセットするのと同じ意味である。) .\" .TP .B SIOCGPGRP @@ -1219,17 +1219,17 @@ core .\"O or 0 .\"O when none is set. .B SIGIO -¤ä +や .B SIGURG -¤ò¼õ¿®¤·¤¿¥«¥ì¥ó¥È¥×¥í¥»¥¹¡¦¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ò¼èÆÀ¤¹¤ë¡£ -¤Ê¤¤¾ì¹ç¤Ï 0 ¤¬Ê֤롣 +を受信したカレントプロセス・プロセスグループを取得する。 +ない場合は 0 が返る。 .PP .\"O Valid .\"O .BR fcntl (2) .\"O operations: -Í­¸ú¤Ê +有効な .BR fcntl (2) -Áàºî: +操作: .TP .B FIOGETOWN .\"O The same as the @@ -1237,7 +1237,7 @@ core .\"O .BR ioctl (2). .B SIOCGPGRP .BR ioctl (2) -¤ÈƱ¤¸¡£ +と同じ。 .TP .B FIOSETOWN .\"O The same as the @@ -1245,9 +1245,9 @@ core .\"O .BR ioctl (2). .B SIOCSPGRP .BR ioctl (2) -¤ÈƱ¤¸¡£ +と同じ。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .B SO_BINDTODEVICE .\"O was introduced in Linux 2.0.30. .\"O .B SO_PASSCRED @@ -1256,11 +1256,11 @@ core .\"O .I /proc .\"O interfaces was introduced in Linux 2.2. .B SO_BINDTODEVICE -¤Ï Linux 2.0.30 ¤ÇƳÆþ¤µ¤ì¤¿¡£ +は Linux 2.0.30 で導入された。 .B SO_PASSCRED -¤Ï Linux 2.2 ¤ÇÅо줷¤¿¡£ +は Linux 2.2 で登場した。 .I /proc -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï Linux 2.2 ¤ÇƳÆþ¤µ¤ì¤¿¡£ +インタフェースは Linux 2.2 で導入された。 .\"O .B SO_RCVTIMEO .\"O and .\"O .B SO_SNDTIMEO @@ -1268,21 +1268,21 @@ core .\"O Earlier, timeouts were fixed to .\"O a protocol-specific setting, and could not be read or written. .B SO_RCVTIMEO -¤È +と .B SO_SNDTIMEO -¤Ï Linux 2.3.41 °Ê¹ß¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¤½¤ì°ÊÁ°¤Ï¡¢¥¿¥¤¥à¥¢¥¦¥È¤Ï¥×¥í¥È¥³¥ë¸ÇÍ­¤Î¸ÇÄê¤ÎÀßÄêÃͤǡ¢ -Æɤ߽ñ¤­¤ò¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +は Linux 2.3.41 以降でサポートされている。 +それ以前は、タイムアウトはプロトコル固有の固定の設定値で、 +読み書きをすることはできなかった。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Linux assumes that half of the send/receive buffer is used for internal .\"O kernel structures; thus the values in the corresponding .\"O .I /proc .\"O files are twice what can be observed on the wire. -Linux ¤Ï¡¢Á÷¼õ¿®¥Ð¥Ã¥Õ¥¡¤ÎȾʬ¤òÆâÉô¤Î¥«¡¼¥Í¥ë¹½Â¤ÂΤÇÍѤ¤¤ë¤È²¾Äꤷ¤Æ¤¤¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢Âбþ¤¹¤ë +Linux は、送受信バッファの半分を内部のカーネル構造体で用いると仮定している。 +したがって、対応する .I /proc -¥Õ¥¡¥¤¥ë¤Ï¥Í¥Ã¥È¥ï¡¼¥¯²óÀþ¾å¤Ç¤ÎÂ礭¤µ¤Î 2 Çܤˤʤ롣 +ファイルはネットワーク回線上での大きさの 2 倍になる。 .\"O Linux will only allow port reuse with the .\"O .B SO_REUSEADDR @@ -1296,23 +1296,23 @@ Linux .\"O option. .\"O Typically this difference is invisible, since, for example, a server .\"O program is designed to always set this option. -Linux ¤Ç¤Ï¡¢ +Linux では、 .B SO_REUSEADDR -¥ª¥×¥·¥ç¥ó¤Ç¥Ý¡¼¥È¤ÎºÆÍøÍѤ¬µö²Ä¤µ¤ì¤ë¤Î¤Ï¡¢ -¤½¤Î¥Ý¡¼¥È¤ËÂФ·¤Æ +オプションでポートの再利用が許可されるのは、 +そのポートに対して .BR bind (2) -¤òÁ°¤Ë¼Â¹Ô¤·¤¿¥×¥í¥°¥é¥à¤È¤½¤Î¥Ý¡¼¥È¤òºÆÍøÍÑ -¤·¤è¤¦¤È¤¹¤ë¥×¥í¥°¥é¥à¤ÎξÊý¤Ç +を前に実行したプログラムとそのポートを再利用 +しようとするプログラムの両方で .B SO_REUSEADDR -¤¬¥»¥Ã¥È¤µ¤ì¤¿¾ì¹ç¤Î¤ß¤Ç¤¢¤ë¡£ -¤³¤ÎÆ°ºî¤Ï (FreeBSD ¤Ê¤É¤Î) ¤¤¤¯¤Ä¤«¤Î¼ÂÁõ¤È¤Ï°Û¤Ê¤ë¡£¤³¤ì¤é¤Ç¤Ï¡¢ -¸å¤Ç¥Ý¡¼¥È¤òºÆÍøÍѤ·¤è¤¦¤È¤¹¤ë¥×¥í¥°¥é¥à¤Ç +がセットされた場合のみである。 +この動作は (FreeBSD などの) いくつかの実装とは異なる。これらでは、 +後でポートを再利用しようとするプログラムで .B SO_REUSEADDR -¥ª¥×¥·¥ç¥ó¤ò¥»¥Ã¥È¤¹¤ë¤À¤±¤Ç¤è¤¤¡£ -¤¿¤¤¤Æ¤¤¤Ï¤³¤Î°ã¤¤¤Ï¸«¤¨¤Ê¤¤¡£¤Ê¤¼¤Ê¤é¡¢Î㤨¤Ð¥µ¡¼¥Ð¥×¥í¥°¥é¥à¤Ï -¾ï¤Ë¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¥»¥Ã¥È¤¹¤ë¤è¤¦¤ËÀ߷פµ¤ì¤ë¤«¤é¤Ç¤¢¤ë¡£ +オプションをセットするだけでよい。 +たいていはこの違いは見えない。なぜなら、例えばサーバプログラムは +常にこのオプションをセットするように設計されるからである。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O The .\"O .B CONFIG_FILTER .\"O socket options @@ -1324,18 +1324,18 @@ Linux .\"O The suggested interface to use them is via the libpcap .\"O library. .B CONFIG_FILTER -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë +ソケットオプションである .B SO_ATTACH_FILTER -¤È +と .B SO_DETACH_FILTER -¤Ë¤Ä¤¤¤Æµ­ºÜ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£¤³¤ì¤é¤Ï libpcap ¥é¥¤¥Ö¥é¥ê¤òÄ̤·¤Æ -ÍѤ¤¤ëÊý¤¬Îɤ¤¡£ +について記載されていない。これらは libpcap ライブラリを通して +用いる方が良い。 .\"O .\" .SH AUTHORS -.\" .SH Ãø¼Ô +.\" .SH 著者 .\"O .\" This man page was written by Andi Kleen. -.\" ¤³¤Î man ¥Ú¡¼¥¸¤Ï Andi Kleen ¤¬½ñ¤¤¤¿¡£ +.\" この man ページは Andi Kleen が書いた。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getsockopt (2), .BR setsockopt (2), .BR socket (2), diff --git a/draft/man7/spufs.7 b/draft/man7/spufs.7 index 205a1943..32e71127 100644 --- a/draft/man7/spufs.7 +++ b/draft/man7/spufs.7 @@ -30,17 +30,17 @@ .\" .TH SPUFS 7 2007-07-10 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O spufs \- the SPU file system -spufs \- SPU ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à +spufs \- SPU ファイルシステム .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The SPU file system is used on PowerPC machines that implement the .\"O Cell Broadband Engine Architecture in order to access Synergistic .\"O Processor Units (SPUs). -SPU ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï¡¢Cell Broadband Engine ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ò¼ÂÁõ¤·¤¿ -PowerPC ¥Þ¥·¥ó¤Ë¤ª¤¤¤Æ¡¢Synergistic Processor Unit (SPU) ¤Ë¥¢¥¯¥»¥¹¤¹¤ë -¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ +SPU ファイルシステムは、Cell Broadband Engine アーキテクチャを実装した +PowerPC マシンにおいて、Synergistic Processor Unit (SPU) にアクセスする +ために使用される。 .\"O The file system provides a name space similar to POSIX shared .\"O memory or message queues. @@ -48,11 +48,11 @@ PowerPC .\"O on the file system can use .\"O .BR spu_create (2) .\"O to establish SPU contexts under the spufs root directory. -¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢POSIX ¶¦Í­¥á¥â¥ê¤ä¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ë -»÷¤¿Ì¾Á°¶õ´Ö¤¬Ä󶡤µ¤ì¤ë¡£ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë½ñ¤­¹þ¤ßµö²Ä¤ò»ý¤Ä¥æ¡¼¥¶¤Ï +このファイルシステムでは、POSIX 共有メモリやメッセージキューに +似た名前空間が提供される。 +ファイルシステムに書き込み許可を持つユーザは .BR spu_create (2) -¤ò»È¤Ã¤Æ spufs ¤Î¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ë SPU ¥³¥ó¥Æ¥­¥¹¥È¤òºîÀ®¤Ç¤­¤ë¡£ +を使って spufs のルートディレクトリに SPU コンテキストを作成できる。 .\"O Every SPU context is represented by a directory containing .\"O a predefined set of files. @@ -60,25 +60,25 @@ PowerPC .\"O used for manipulating the state of the logical SPU. .\"O Users can change permissions on those files, but can't .\"O add or remove files. -³Æ SPU ¥³¥ó¥Æ¥­¥¹¥È¤Ï¡¢¤¢¤é¤«¤¸¤áÄêµÁ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë·²¤ò´Þ¤à -¥Ç¥£¥ì¥¯¥È¥ê¤È¤·¤Æɽ¸½¤µ¤ì¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ò»È¤Ã¤Æ¡¢ÏÀÍý SPU ¤Î¾õÂÖ¤òÁàºî¤Ç¤­¤ë¡£ -¥æ¡¼¥¶¤Ï¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹µö²Ä¤òÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ç¤­¤ë¤¬¡¢ -¥Õ¥¡¥¤¥ë¤ÎÄɲᦺï½ü¤ò¹Ô¤¦¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +各 SPU コンテキストは、あらかじめ定義されたファイル群を含む +ディレクトリとして表現される。 +これらのファイルを使って、論理 SPU の状態を操作できる。 +ユーザはこれらのファイルのアクセス許可を変更することはできるが、 +ファイルの追加・削除を行うことはできない。 .\"O .SS Mount Options -.SS ¥Þ¥¦¥ó¥È¥ª¥×¥·¥ç¥ó +.SS マウントオプション .TP .B uid= .\"O set the user owning the mount point; the default is 0 (root). -¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ò½êÍ­¤¹¤ë¥æ¡¼¥¶¤òÀßÄꤹ¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 0 (root) ¤Ç¤¢¤ë¡£ +マウントポイントを所有するユーザを設定する。 +デフォルトは 0 (root) である。 .TP .B gid= .\"O set the group owning the mount point; the default is 0 (root). -¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ò½êÍ­¤¹¤ë¥°¥ë¡¼¥×¤òÀßÄꤹ¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 0 (root) ¤Ç¤¢¤ë¡£ +マウントポイントを所有するグループを設定する。 +デフォルトは 0 (root) である。 .\"O .SS Files -.SS ¥Õ¥¡¥¤¥ë +.SS ファイル .\"O The files in .\"O .I spufs .\"O mostly follow the standard behavior for regular system calls like @@ -91,15 +91,15 @@ PowerPC .\"O operations and the deviations from the standard behavior described .\"O in the respective man pages. .I spufs -¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¤Û¤È¤ó¤É¤Î¾ì¹ç +のファイルは、ほとんどの場合 .BR read (2) -¤ä +や .BR write (2) -¤È¤¤¤Ã¤¿Ä̾ï¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ëɸ½àŪ¤Ê¿¶¤ëÉñ¤¤¤ò¼¨¤¹¤¬¡¢ -¿¤¯¤Î¾ì¹çÄ̾ï¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ëÁàºî¤Î°ìÉôʬ¤À¤±¤¬ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£°Ê²¼¤Î¥ê¥¹¥È¤Ç¤Ï¡¢¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ëÁàºî¤È -¤½¤ì¤¾¤ì¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë½ñ¤«¤ì¤Æ¤¤¤ëɸ½àŪ¤Ê¿¶¤ëÉñ¤¤¤È¤Î°ã¤¤¤Ë -¤Ä¤¤¤ÆÀâÌÀ¤¹¤ë¡£ +といった通常のシステムコールに対する標準的な振る舞いを示すが、 +多くの場合通常のファイルシステムでサポートされている操作の一部分だけが +サポートされている。以下のリストでは、サポートされている操作と +それぞれのマニュアルページに書かれている標準的な振る舞いとの違いに +ついて説明する。 .\"O All files that support the .\"O .BR read (2) @@ -110,13 +110,13 @@ PowerPC .\"O operation also support .\"O .BR writev (2). .BR read (2) -Áàºî¤ËÂбþ¤·¤Æ¤¤¤ëÁ´¤Æ¤Î¥Õ¥¡¥¤¥ë¤Ï +操作に対応している全てのファイルは .BR readv (2) -¤Ë¤âÂбþ¤·¤Æ¤¤¤ë¡£¤Þ¤¿¡¢ +にも対応している。また、 .BR write (2) -Áàºî¤ËÂбþ¤·¤Æ¤¤¤ëÁ´¤Æ¤Î¥Õ¥¡¥¤¥ë¤Ï +操作に対応している全てのファイルは .BR writev (2) -¤Ë¤âÂбþ¤·¤Æ¤¤¤ë¡£ +にも対応している。 .\"O All files support the .\"O .BR access (2) @@ -131,20 +131,20 @@ PowerPC .\"O .IR st_uid , .\"O and .\"O .IR st_gid . -Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢ +全てのファイルは、 .BR access (2) -¤È +と .BR stat (2) -·Ï¤ÎÁàºî¤ËÂбþ¤·¤Æ¤¤¤ë¤¬¡¢ +系の操作に対応しているが、 .BR stat (2) -¤Ç¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿ºÝ¤ËÊÖ¤µ¤ì¤ë +では、呼び出した際に返される .I stat -¹½Â¤ÂΤΥե£¡¼¥ë¥É¤Î¤¦¤Á¿®Íê¤Ç¤­¤ë¾ðÊó¤¬Æþ¤Ã¤Æ¤¤¤ë¤Î¤Ï +構造体のフィールドのうち信頼できる情報が入っているのは .IR st_mode , .IR st_nlink , .IR st_uid , .I st_gid -¤À¤±¤Ç¤¢¤ë¡£ +だけである。 .\"O All files support the .\"O .BR chmod (2)/ fchmod (2) @@ -154,18 +154,18 @@ PowerPC .\"O the possible operations (e.g., read access on the .\"O .I wbox .\"O file). -Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¤Ï +全てのファイルは .BR chmod (2)/ fchmod (2) -¤È +と .BR chown (2)/ fchown (2) -¤ÎÁàºî¤ËÂбþ¤·¤Æ¤¤¤ë¤¬¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¤¬Âбþ¤·¤Æ¤¤¤ëÁàºî¤ÈÌ·½â¤¹¤ë¥¢¥¯¥»¥¹µö²Ä¤ò -ÉÕÍ¿¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤ (Î㤨¤Ð¡¢ +の操作に対応しているが、 +そのファイルが対応している操作と矛盾するアクセス許可を +付与することはできない (例えば、 .I wbox -¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ëÆɤ߽Ф·¥¢¥¯¥»¥¹¤Ê¤É)¡£ +ファイルに対する読み出しアクセスなど)。 .\"O The current set of files is: -¸½»þÅÀ¤Ç¤Î¥Õ¥¡¥¤¥ë¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +現時点でのファイルは以下の通りである。 .TP .B /mem .\"O the contents of the local storage memory of the SPU. @@ -175,12 +175,12 @@ PowerPC .\"O The possible operations on an open .\"O .I mem .\"O file are: -SPU ¤Î¥í¡¼¥«¥ë¥¹¥È¥ì¡¼¥¸¤ÎÆâÍÆ¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤ÏÄ̾ï¤Î¶¦Í­¥á¥â¥ê¥Õ¥¡¥¤¥ë¤ÈƱÍͤ˥¢¥¯¥»¥¹¤Ç¤­¡¢ -SPU ¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤Ï¥³¡¼¥É¤È¥Ç¡¼¥¿¤ÎξÊý¤ò³ÊǼ¤Ç¤­¤ë¡£ -¥ª¡¼¥×¥ó¤µ¤ì¤¿ +SPU のローカルストレージの内容。 +このファイルは通常の共有メモリファイルと同様にアクセスでき、 +SPU のアドレス空間にはコードとデータの両方を格納できる。 +オープンされた .I mem -¥Õ¥¡¥¤¥ë¤Ë²Äǽ¤ÊÁàºî¤Ï°Ê²¼¤Ç¤¢¤ë¡£ +ファイルに可能な操作は以下である。 .RS .TP .BR read "(2), " pread "(2), " write "(2), " pwrite "(2), " lseek (2) @@ -192,14 +192,14 @@ SPU .\"O The file size .\"O is the size of the local storage of the SPU, .\"O which is normally 256 kilobytes. -¤³¤ì¤é¤ÏÄ̾ïÄ̤êÆ°ºî¤¹¤ë¤¬¡¢ -¥Õ¥¡¥¤¥ëËöÈø¤ò±Û¤¨¤Æ¤Î +これらは通常通り動作するが、 +ファイル末尾を越えての .BR lseek (2), .BR write (2), .BR pwrite (2) -¤ËÂбþ¤·¤Æ¤¤¤Ê¤¤ÅÀ¤À¤±¤¬°Û¤Ê¤ë¡£ -¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤Ï SPU ¤Î¥í¡¼¥«¥ë¥¹¥È¥ì¡¼¥¸¤Î¥µ¥¤¥º¤Ç¤¢¤ê¡¢ -Ä̾ï¤Ï 256 ¥­¥í¥Ð¥¤¥È¤Ç¤¢¤ë¡£ +に対応していない点だけが異なる。 +ファイルサイズは SPU のローカルストレージのサイズであり、 +通常は 256 キロバイトである。 .TP .BR mmap (2) .\"O Mapping @@ -210,9 +210,9 @@ SPU .\"O .B MAP_SHARED .\"O mappings are allowed. .I mem -¤ò¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¥Þ¥Ã¥Ô¥ó¥°¤¹¤ë¤È¡¢ -¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Î°ìÉô¤È¤·¤Æ -SPU ¤Î¥í¡¼¥«¥ë¡¦¥¹¥È¥ì¡¼¥¸¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +をプロセスのアドレス空間にマッピングすると、 +プロセスのアドレス空間の一部として +SPU のローカル・ストレージにアクセスできるようになる。 .RE .TP .B /mbox @@ -226,14 +226,14 @@ SPU .\"O The only possible operation on an open .\"O .I mbox .\"O file is: -SPU ¤«¤é CPU ¤Ø¤ÎÄÌ¿®ÍѤΰì¤ÄÌܤΥ᡼¥ë¥Ü¥Ã¥¯¥¹¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤ÏÆɤ߽Ф·ÀìÍѤǡ¢Æɤ߽Ф·¤Ï 32¥Ó¥Ã¥Èñ°Ì¤Ç¹Ô¤¦¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤ÏÈóÄä»ß (non-blocking) ¥â¡¼¥É¤Ç¤Î¤ß»ÈÍѤǤ­¡¢ +SPU から CPU への通信用の一つ目のメールボックス。 +このファイルは読み出し専用で、読み出しは 32ビット単位で行う。 +このファイルは非停止 (non-blocking) モードでのみ使用でき、 .BR poll (2) -¤Ç¤¢¤Ã¤Æ¤â¤³¤Î¥Õ¥¡¥¤¥ë¤ÇÄä»ß (block) ¤¹¤ë¤³¤È¤Ï¤Ê¤¤¡£ -¥ª¡¼¥×¥ó¤µ¤ì¤¿ +であってもこのファイルで停止 (block) することはない。 +オープンされた .I mbox -¥Õ¥¡¥¤¥ë¤Ë²Äǽ¤ÊÁàºî¤Ï°Ê²¼¤Ç¤¢¤ë¡£ +ファイルに可能な操作は以下である。 .RS .TP .BR read (2) @@ -254,19 +254,19 @@ SPU .\"O has been read successfully, four bytes are placed in .\"O the data buffer and the value four is returned. .I count -¤¬ 4 ¤è¤ê¾®¤µ¤¤¾ì¹ç¡¢ +が 4 より小さい場合、 .BR read (2) -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤ò +を .B EINVAL -¤ËÀßÄꤹ¤ë¡£ -¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¤Ë¥Ç¡¼¥¿¤¬¤Ê¤¤¾ì¹ç¡¢\-1 ¤¬Ê֤ꡢ +に設定する。 +メールボックスにデータがない場合、\-1 が返り、 .I errno -¤¬ +が .B EAGAIN -¤ËÀßÄꤵ¤ì¤ë¡£¥Ç¡¼¥¿¤ÎÆɤ߽Ф·¤ËÀ®¸ù¤·¤¿¾ì¹ç¡¢ -4 ¥Ð¥¤¥È¤¬¥Ç¡¼¥¿¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¡¢ÊÖ¤êÃͤȤ·¤Æ 4 ¤¬ÊÖ¤µ¤ì¤ë¡£ +に設定される。データの読み出しに成功した場合、 +4 バイトがデータバッファに格納され、返り値として 4 が返される。 .RE .TP .B /ibox @@ -278,14 +278,14 @@ SPU .\"O The possible operations on an open .\"O .I ibox .\"O file are: -SPU ¤«¤é CPU ¤Ø¤ÎÄÌ¿®ÍѤÎÆó¤ÄÌܤΥ᡼¥ë¥Ü¥Ã¥¯¥¹¤Ç¤¢¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï°ì¤ÄÌܤΥ᡼¥ë¥Ü¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤È»÷¤Æ¤¤¤ë¤¬¡¢ -Ää»ß (blocking) I/O ¥â¡¼¥É¤Ç¤ÎÆɤ߽Ф·¤¬²Äǽ¤Ç¤¢¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢ +SPU から CPU への通信用の二つ目のメールボックスである。 +このファイルは一つ目のメールボックスファイルと似ているが、 +停止 (blocking) I/O モードでの読み出しが可能である。したがって、 .BR poll (2) -¤äƱÍͤΥ·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤Æ¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ò´Æ»ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥ª¡¼¥×¥ó¤µ¤ì¤¿ +や同様のシステムコールを使って、このファイルを監視することができる。 +オープンされた .I ibox -¥Õ¥¡¥¤¥ë¤Ë²Äǽ¤ÊÁàºî¤Ï°Ê²¼¤Ç¤¢¤ë¡£ +ファイルに可能な操作は以下である。 .RS .TP .BR read (2) @@ -305,20 +305,20 @@ SPU .\"O is set to .\"O .BR EAGAIN . .I count -¤¬ 4 ¤è¤ê¾®¤µ¤¤¾ì¹ç¡¢ +が 4 より小さい場合、 .BR read (2) -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤ò +を .B EINVAL -¤ËÀßÄꤹ¤ë¡£ -¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¤Ë¥Ç¡¼¥¿¤¬¤Ê¤¤¾ì¹ç¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ +に設定する。 +メールボックスにデータがない場合、ファイルディスクリプタが .B O_NONBLOCK -¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢ÊÖ¤êÃÍ¤Ï \-1 ¤È¤Ê¤ê¡¢ +でオープンされていれば、返り値は \-1 となり、 .I errno -¤Ï +は .B EAGAIN -¤ËÀßÄꤵ¤ì¤ë¡£ +に設定される。 .\"O If there is no data available in the mailbox and the file .\"O descriptor has been opened without @@ -327,15 +327,15 @@ SPU .\"O block until the SPU writes to its interrupt mailbox channel. .\"O When data has been read successfully, four bytes are placed in .\"O the data buffer and the value four is returned. -¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¤Ë¥Ç¡¼¥¿¤¬¤Ê¤¤¾ì¹ç¤Ç¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ +メールボックスにデータがない場合で、ファイルディスクリプタが .B O_NONBLOCK -¤Ê¤·¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢ -SPU ¤¬¼«Ê¬¤Î³ä¤ê¹þ¤ß¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¥Á¥ã¥Í¥ë (interrupt mailbox channel) -¤Ë½ñ¤­¹þ¤ß¤ò¹Ô¤¦¤Þ¤Ç +なしでオープンされていれば、 +SPU が自分の割り込みメールボックスチャネル (interrupt mailbox channel) +に書き込みを行うまで .BR read (2) -¤ÏÄä»ß (block) ¤¹¤ë¡£ -¥Ç¡¼¥¿¤ÎÆɤ߽Ф·¤ËÀ®¸ù¤·¤¿¾ì¹ç¡¢ -4 ¥Ð¥¤¥È¤¬¥Ç¡¼¥¿¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¡¢ÊÖ¤êÃͤȤ·¤Æ 4 ¤¬ÊÖ¤µ¤ì¤ë¡£ +は停止 (block) する。 +データの読み出しに成功した場合、 +4 バイトがデータバッファに格納され、返り値として 4 が返される。 .TP .BR poll (2) .\"O Poll on the @@ -344,11 +344,11 @@ SPU .\"O .I "(POLLIN | POLLRDNORM)" .\"O whenever data is available for reading. .I ibox -¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë +ファイルに対する .BR poll (2) -¤Ï¡¢Æɤ߽Ф·¥Ç¡¼¥¿¤¬ÍøÍѲÄǽ¤Ë¤Ê¤ëÅÙ¤Ë +は、読み出しデータが利用可能になる度に .I "(POLLIN | POLLRDNORM)" -¤òÊÖ¤¹¡£ +を返す。 .RE .TP .B /wbox @@ -362,16 +362,16 @@ SPU .\"O The possible operations on an open .\"O .I wbox .\"O file are: -CPU ¤«¤é SPU ¤Ø¤ÎÄÌ¿®ÍѤΥ᡼¥ë¥Ü¥Ã¥¯¥¹¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï½ñ¤­¹þ¤ßÀìÍѤǡ¢½ñ¤­¹þ¤ß¤Ï 32¥Ó¥Ã¥Èñ°Ì¤Ç¹Ô¤¦¡£ -¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¤¬°ìÇդξì¹ç¡¢ +CPU から SPU への通信用のメールボックス。 +このファイルは書き込み専用で、書き込みは 32ビット単位で行う。 +メールボックスが一杯の場合、 .BR write (2) -¤ÏÄä»ß (block) ¤·¡¢ +は停止 (block) し、 .BR poll (2) -¤ò»È¤Ã¤Æ¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¤ËºÆÅÙ¶õ¤­¤¬¤Ç¤­¤ë¤Þ¤ÇÂԤĤ³¤È¤¬¤Ç¤­¤ë¡£ -¥ª¡¼¥×¥ó¤µ¤ì¤¿ +を使ってメールボックスに再度空きができるまで待つことができる。 +オープンされた .I wbox -¥Õ¥¡¥¤¥ë¤Ë²Äǽ¤ÊÁàºî¤Ï°Ê²¼¤Ç¤¢¤ë¡£ +ファイルに可能な操作は以下である。 .RS .TP .BR write (2) @@ -392,20 +392,20 @@ CPU .\"O is set to .\"O .BR EAGAIN . .I count -¤¬ 4 ¤è¤ê¾®¤µ¤¤¾ì¹ç¡¢ +が 4 より小さい場合、 .BR write (2) -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤ò +を .B EINVAL -¤ËÀßÄꤹ¤ë¡£ -¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¤Ë¶õ¤­Îΰ褬¤Ê¤¤¾ì¹ç¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ +に設定する。 +メールボックスに空き領域がない場合、ファイルディスクリプタが .B O_NONBLOCK -¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢ÊÖ¤êÃÍ¤Ï \-1 ¤È¤Ê¤ê¡¢ +でオープンされていれば、返り値は \-1 となり、 .I errno -¤Ï +は .B EAGAIN -¤ËÀßÄꤵ¤ì¤ë¡£ +に設定される。 .\"O If there is no space available in the mailbox and the file .\"O descriptor has been opened without @@ -414,13 +414,13 @@ CPU .\"O block until the SPU reads from its PPE mailbox channel. .\"O When data has been written successfully, .\"O the system call returns four as its function result. -¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¤Ë¶õ¤­Îΰ褬¤Ê¤¤¾ì¹ç¤Ç¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ +メールボックスに空き領域がない場合で、ファイルディスクリプタが .B O_NONBLOCK -¤Ê¤·¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢ -SPU ¤¬¼«Ê¬¤Î PPE ¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¥Á¥ã¥Í¥ë¤«¤éÆɤ߽Ф·¤ò¹Ô¤¦¤Þ¤Ç +なしでオープンされていれば、 +SPU が自分の PPE メールボックスチャネルから読み出しを行うまで .BR write (2) -¤ÏÄä»ß (block) ¤¹¤ë¡£ -¥Ç¡¼¥¿¤Î½ñ¤­¹þ¤ß¤ËÀ®¸ù¤·¤¿¾ì¹ç¡¢ÊÖ¤êÃͤȤ·¤Æ 4 ¤¬ÊÖ¤µ¤ì¤ë¡£ +は停止 (block) する。 +データの書き込みに成功した場合、返り値として 4 が返される。 .TP .BR poll (2) .\"O A poll on the @@ -429,11 +429,11 @@ SPU .\"O .I "(POLLOUT | POLLWRNORM)" .\"O whenever space is available for writing. .I wbox -¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë +ファイルに対する .BR poll (2) -¤Ï¡¢½ñ¤­¹þ¤ßÍѤζõ´Ö¤¬ÍøÍѲÄǽ¤Ë¤Ê¤ëÅÙ¤Ë +は、書き込み用の空間が利用可能になる度に .I "(POLLOUT | POLLWRNORM)" -¤òÊÖ¤¹¡£ +を返す。 .RE .TP .BR /mbox_stat ", " /ibox_stat ", " /wbox_stat @@ -448,18 +448,18 @@ SPU .\"O The possible operations on an open .\"O .I *box_stat .\"O file are: -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ÏÆɤ߽Ф·ÀìÍѤǡ¢ -³Æ¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¤Î¸½ºß¤Î¥­¥å¡¼Ä¹¤òÊÝ»ý¤¹¤ë¡£ -¶ñÂÎŪ¤Ë¤Ï¡¢Ää»ß (blocking) ¤»¤º¤Ë¡¢ -.IR mbox " ¤ä " ibox -¤«¤é²¿¥ï¡¼¥É¤òÆɤ߽Ф¹¤³¤È¤¬¤Ç¤­¡¢ +これらのファイルは読み出し専用で、 +各メールボックスの現在のキュー長を保持する。 +具体的には、停止 (blocking) せずに、 +.IR mbox " や " ibox +から何ワードを読み出すことができ、 .I wbox -¤Ë²¿¥ï¡¼¥É¤ò½ñ¤­¹þ¤à¤³¤È¤¬¤Ç¤­¤ë¤«¡¢¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï 4 ¥Ð¥¤¥Èñ°Ì¤Ç¤Î¤ßÆɤ߽Ф·¤¬²Äǽ¤Ç¡¢ -¥Ó¥Ã¥°¡¦¥¨¥ó¥Ç¥£¥¢¥ó¤ÎÀ°¿ôÃͤòÊÖ¤¹¡£ -¥ª¡¼¥×¥ó¤µ¤ì¤¿ +に何ワードを書き込むことができるか、ということである。 +これらのファイルは 4 バイト単位でのみ読み出しが可能で、 +ビッグ・エンディアンの整数値を返す。 +オープンされた .I *box_stat -¥Õ¥¡¥¤¥ë¤Ë²Äǽ¤ÊÁàºî¤Ï°Ê²¼¤Ç¤¢¤ë¡£ +ファイルに可能な操作は以下である。 .RS .TP .BR read (2) @@ -482,23 +482,23 @@ SPU .\"O .B EAGAIN .\"O error. .I count -¤¬ 4 ¤è¤ê¾®¤µ¤¤¾ì¹ç¡¢ +が 4 より小さい場合、 .BR read (2) -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤ò +を .B EINVAL -¤ËÀßÄꤹ¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¥Ç¡¼¥¿¥Ð¥Ã¥Õ¥¡¤Ë 4 ¥Ð¥¤¥È¤ÎÃͤ¬½ñ¤­¹þ¤Þ¤ì¤ë¡£ -¤³¤ÎÃͤϡ¢³Æ¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¤Ë¤ª¤¤¤ÆÄä»ß¤»¤º¤Ë¡¢¤Þ¤¿¤Ï +に設定する。 +それ以外の場合、データバッファに 4 バイトの値が書き込まれる。 +この値は、各メールボックスにおいて停止せずに、または .B EAGAIN -¥¨¥é¡¼¤Ê¤·¤Ç¡¢Æɤ߽Ф·²Äǽ¤Ê¥¨¥ì¥á¥ó¥È¿ô +エラーなしで、読み出し可能なエレメント数 .RI ( mbox_stat -¤ä +や .I ibox_stat -¤Î¾ì¹ç)¡¢½ñ¤­¹þ¤ß²Äǽ¤Ê¥¨¥ì¥á¥ó¥È¿ô +の場合)、書き込み可能なエレメント数 .RI ( wbox_stat -¤Î¾ì¹ç) ¤Ç¤¢¤ë¡£ +の場合) である。 .RE .TP .BR /npc ", " /decr ", " /decr_status ", " /spu_tag_mask ", " \ @@ -511,22 +511,22 @@ SPU .\"O accesses to any of them except .\"O .I npc .\"O require an SPU context save, which is very inefficient. -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï SPU ¤ÎÆâÉô¥ì¥¸¥¹¥¿¤ò¸ø³«¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -Ãͤϡ¢³Æ¥ì¥¸¥¹¥¿¤Î¿ôÃͤò´Þ¤à¥¢¥¹¥­¡¼Ê¸»úÎó¤Çɽ¸½¤µ¤ì¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï¥Ç¥Ð¥Ã¥°ÍѤȤ·¤ÆÆɤ߽Ф·/½ñ¤­¹þ¤ß¤Îξ¥â¡¼¥É¤ÇÍøÍѤǤ­¤ë¤¬¡¢ -¥×¥í¥°¥é¥à¤ÎÄ̾ï¤ÎÁàºî¤Ï¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ë°Í¸¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¡¢¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Î¤¦¤Á +これらのファイルは SPU の内部レジスタを公開するものである。 +値は、各レジスタの数値を含むアスキー文字列で表現される。 +これらのファイルはデバッグ用として読み出し/書き込みの両モードで利用できるが、 +プログラムの通常の操作はこれらのファイルに依存すべきではない。 +なぜなら、これらのファイルのうち .I npc -°Ê³°¤Ø¤Î¥¢¥¯¥»¥¹¤Ç¤Ï SPU ¥³¥ó¥Æ¥­¥¹¥È¤ÎÊݸ¤¬É¬¿Ü¤Ç¤¢¤ê¡¢ -SPU ¥³¥ó¥Æ¥­¥¹¥È¤ÎÊݸ¤ÏÈó¾ï¤Ë¸úΨ¤¬°­¤¤¤«¤é¤Ç¤¢¤ë¡£ +以外へのアクセスでは SPU コンテキストの保存が必須であり、 +SPU コンテキストの保存は非常に効率が悪いからである。 .IP .\"O The contents of these files are: -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ÎÆâÍƤϰʲ¼¤ÎÄ̤ꡣ +これらのファイルの内容は以下の通り。 .RS .TP 16 .I npc .\"O Next Program Counter -¼¡¤Î¥×¥í¥°¥é¥à¥«¥¦¥ó¥¿ +次のプログラムカウンタ .TP .I decr .\"O SPU Decrementer @@ -534,23 +534,23 @@ SPU Decrementer .TP .I decr_status .\"O Decrementer Status -Decrementer ¤Î¾õÂÖ +Decrementer の状態 .TP .I spu_tag_mask .\"O MFC tag mask for SPU DMA -SPU ¤Î DMA ÍѤΠMFA ¥¿¥°¥Þ¥¹¥¯ +SPU の DMA 用の MFA タグマスク .TP .I event_mask .\"O Event mask for SPU interrupts -SPU ¤Î³ä¤ê¹þ¤ß¤Î¥¤¥Ù¥ó¥È¥Þ¥¹¥¯ +SPU の割り込みのイベントマスク .TP .I srr0 .\"O Interrupt Return address register -³ä¤ê¹þ¤ß¥ê¥¿¡¼¥ó¥¢¥É¥ì¥¹¥ì¥¸¥¹¥¿ +割り込みリターンアドレスレジスタ .RE .IP .\"O The possible operations on one of these files are: -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ²Äǽ¤ÊÁàºî¤Ï°Ê²¼¤Ç¤¢¤ë¡£ +これらのファイルに対して可能な操作は以下である。 .RS .TP .BR read (2) @@ -566,13 +566,13 @@ SPU .\"O will return zero bytes and a new file descriptor needs to be opened .\"O to read a new value. .BR read (2) -¤ËÅϤµ¤ì¤¿ +に渡された .I count -¤¬¥ì¥¸¥¹¥¿ÃͤȲþ¹Ô (newline) ʸ»ú 1 ¸Ä¤ò³ÊǼ¤¹¤ë¤Î¤ËɬÍפÊŤµ¤è¤êû¤¤¾ì¹ç¡¢ -Ʊ¤¸¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò³¤±¤Æ read ¤¹¤ë¤³¤È¤Ç¡¢Ê¸»úÎóÁ´ÂΤòÆɤ߽Ф¹¤³¤È -¤¬¤Ç¤­¤ë¡£¤³¤ÎºÝ¡¢¼Â¹ÔÃæ¤Î SPU ¥¿¥¹¥¯¤Ë¤è¤ê¥ì¥¸¥¹¥¿ÃͤÎÊѹ¹¤Î±Æ¶Á¤Ï¼õ¤±¤Ê¤¤¡£ -ʸ»úÎóÁ´ÂΤ¬Æɤ߽Фµ¤ì¤ë¤È¡¢¤½¤ì°Ê¹ß¤Î read Áàºî¤Ç¤Ï 0 ¥Ð¥¤¥È¤¬ÊÖ¤µ¤ì¡¢ -¿·¤·¤¤ÃͤòÆɤ߽Ф¹¤Ë¤Ï¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥ª¡¼¥×¥ó¤¹¤ëɬÍפ¬¤¢¤ë¡£ +がレジスタ値と改行 (newline) 文字 1 個を格納するのに必要な長さより短い場合、 +同じファイルディスクリプタを続けて read することで、文字列全体を読み出すこと +ができる。この際、実行中の SPU タスクによりレジスタ値の変更の影響は受けない。 +文字列全体が読み出されると、それ以降の read 操作では 0 バイトが返され、 +新しい値を読み出すには新しいファイルディスクリプタをオープンする必要がある。 .TP .BR write (2) .\"O A @@ -583,13 +583,13 @@ SPU .\"O until the first non-numeric character or the end of the buffer. .\"O Subsequent writes to the same file descriptor overwrite the .\"O previous setting. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ø¤Î +このファイルへの .BR write (2) -Áàºî¤Ï¥ì¥¸¥¹¥¿Ãͤòʸ»úÎó¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£ -ʸ»úÎó¤Î²ò¼á¤ÏÀèƬ¤«¤é³«»Ï¤µ¤ì¡¢¿ô»ú°Ê³°¤Îʸ»ú¤¬½é¤á¤ÆÅо줹¤ë¤«¡¢ -¥Ð¥Ã¥Õ¥¡¤ÎËöÈø¤Ë㤹¤ë¤Þ¤Ç¹Ô¤ï¤ì¤ë¡£ -Ʊ¤¸¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ø³¤±¤Æ write ¤ò¹Ô¤¦¤È¡¢ -¸å¤Î write ¤Ë¤è¤êÁ°¤ÎÀßÄ꤬¾å½ñ¤­¤µ¤ì¤ë¡£ +操作はレジスタ値を文字列で指定された値に設定する。 +文字列の解釈は先頭から開始され、数字以外の文字が初めて登場するか、 +バッファの末尾に達するまで行われる。 +同じファイルディスクリプタへ続けて write を行うと、 +後の write により前の設定が上書きされる。 .RE .TP .B /fpcr @@ -598,10 +598,10 @@ SPU .\"O The operations on the .\"O .I fpcr .\"O file are: -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤è¤ê Floating Point Status and Control Register ¤Ë -¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£¤³¤Î¥Õ¥¡¥¤¥ë¤ÏÂ礭¤µ 4 ¥Ð¥¤¥È¤Ç¤¢¤ë¡£ +このファイルにより Floating Point Status and Control Register に +アクセスできる。このファイルは大きさ 4 バイトである。 .I fpcr -¥Õ¥¡¥¤¥ë¤Ë²Äǽ¤ÊÁàºî¤Ï°Ê²¼¤Ç¤¢¤ë¡£ +ファイルに可能な操作は以下である。 .RS .TP .BR read (2) @@ -618,17 +618,17 @@ SPU .\"O .I fpcr .\"O register. .I count -¤¬ 4 ¤è¤ê¾®¤µ¤¤¾ì¹ç¡¢ +が 4 より小さい場合、 .BR read (2) -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤ò +を .B EINVAL -¤ËÀßÄꤹ¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¥Ç¡¼¥¿¥Ð¥Ã¥Õ¥¡¤Ë 4 ¥Ð¥¤¥È¤ÎÃͤ¬½ñ¤­¹þ¤Þ¤ì¤ë¡£ -½ñ¤­¹þ¤Þ¤ì¤ëÃÍ¤Ï +に設定する。 +それ以外の場合、データバッファに 4 バイトの値が書き込まれる。 +書き込まれる値は .I fpcr -¥ì¥¸¥¹¥¿¤Î¸½ºß¤ÎÃͤǤ¢¤ë¡£ +レジスタの現在の値である。 .TP .BR write (2) .\"O If @@ -644,16 +644,16 @@ SPU .\"O .I fpcr .\"O register. .I count -¤¬ 4 ¤è¤ê¾®¤µ¤¤¾ì¹ç¡¢ +が 4 より小さい場合、 .BR write (2) -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤ò +を .B EINVAL -¤ËÀßÄꤹ¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢ 4 ¥Ð¥¤¥È¤ÎÃͤ¬¥Ç¡¼¥¿¥Ð¥Ã¥Õ¥¡¤«¤é¥³¥Ô¡¼¤µ¤ì¡¢ +に設定する。 +それ以外の場合、 4 バイトの値がデータバッファからコピーされ、 .I fpcr -¥ì¥¸¥¹¥¿¤ÎÃͤ¬¹¹¿·¤µ¤ì¤ë¡£ +レジスタの値が更新される。 .RE .TP .BR /signal1 ", " /signal2 @@ -670,20 +670,20 @@ SPU .\"O or .\"O .I signal2 .\"O file are: -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ë¤è¤ê -SPU ¤ÎÆó¤Ä¤Î¥·¥°¥Ê¥ëÄÌÃÎ¥Á¥ã¥Í¥ë (signal notification channel) ¤Ë -¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ -¤³¤ì¤é¤Ï 32 ¥Ó¥Ã¥Èñ°Ì¤ÎÆɤ߽ñ¤­¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Î°ì¤Ä¤Ë½ñ¤­¹þ¤ß¤ò¹Ô¤¦¤È¡¢¤½¤Î SPU ¤Î³ä¤ê¹þ¤ß¤¬ -ȯÀ¸¤¹¤ë¥È¥ê¥¬¡¼¤È¤Ê¤ë¡£ -¥·¥°¥Ê¥ë¥Õ¥¡¥¤¥ë¤Ø½ñ¤­¹þ¤Þ¤ì¤¿Ãͤϡ¢¥Á¥ã¥Í¥ë·Ðͳ¤Ç SPU ¤ÇÆɤ߽Ф·¤¿¤ê¡¢ -¤³¤Î¥Õ¥¡¥¤¥ë·Ðͳ¤Ç¥Û¥¹¥È¤Î¥æ¡¼¥¶¶õ´Ö¤ÇÆɤ߽Ф·¤¿¤ê¤Ç¤­¤ë¡£ -SPU ¤¬ÃͤòÆɤ߽Ф·¤¿¸å¤Ç¤Ï¡¢ÃÍ¤Ï 0 ¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë¡£ -¥ª¡¼¥×¥ó¤µ¤ì¤¿ +これらのファイルにより +SPU の二つのシグナル通知チャネル (signal notification channel) に +アクセスできる。 +これらは 32 ビット単位の読み書きができる。 +これらのファイルの一つに書き込みを行うと、その SPU の割り込みが +発生するトリガーとなる。 +シグナルファイルへ書き込まれた値は、チャネル経由で SPU で読み出したり、 +このファイル経由でホストのユーザ空間で読み出したりできる。 +SPU が値を読み出した後では、値は 0 にリセットされる。 +オープンされた .I signal1 -¤ä +や .I signal2 -¥Õ¥¡¥¤¥ë¤Ë²Äǽ¤ÊÁàºî¤Ï°Ê²¼¤Ç¤¢¤ë¡£ +ファイルに可能な操作は以下である。 .RS .TP .BR read (2) @@ -699,15 +699,15 @@ SPU .\"O this is the current value of the specified signal notification .\"O register. .I count -¤¬ 4 ¤è¤ê¾®¤µ¤¤¾ì¹ç¡¢ +が 4 より小さい場合、 .BR read (2) -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤ò +を .B EINVAL -¤ËÀßÄꤹ¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¥Ç¡¼¥¿¥Ð¥Ã¥Õ¥¡¤Ë 4 ¥Ð¥¤¥È¤ÎÃͤ¬½ñ¤­¹þ¤Þ¤ì¤ë¡£ -½ñ¤­¹þ¤Þ¤ì¤ëÃͤϡ¢»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ëÄÌÃΥ쥸¥¹¥¿¤Î¸½ºß¤ÎÃͤǤ¢¤ë¡£ +に設定する。 +それ以外の場合、データバッファに 4 バイトの値が書き込まれる。 +書き込まれる値は、指定されたシグナル通知レジスタの現在の値である。 .TP .BR write (2) .\"O If @@ -722,15 +722,15 @@ SPU .\"O updating the value of the specified signal notification .\"O register. .I count -¤¬ 4 ¤è¤ê¾®¤µ¤¤¾ì¹ç¡¢ +が 4 より小さい場合、 .BR write (2) -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤ò +を .B EINVAL -¤ËÀßÄꤹ¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢ 4 ¥Ð¥¤¥È¤ÎÃͤ¬¥Ç¡¼¥¿¥Ð¥Ã¥Õ¥¡¤«¤é¥³¥Ô¡¼¤µ¤ì¡¢ -»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ëÄÌÃΥ쥸¥¹¥¿¤ÎÃͤ¬¹¹¿·¤µ¤ì¤ë¡£ +に設定する。 +それ以外の場合、 4 バイトの値がデータバッファからコピーされ、 +指定されたシグナル通知レジスタの値が更新される。 .\"O The signal notification register will either be replaced with .\"O the input data or will be updated to the bitwise OR operation .\"O of the old value and the input data, depending on the contents @@ -739,12 +739,12 @@ SPU .\"O or .\"O .I signal2_type .\"O files respectively. -¥·¥°¥Ê¥ëÄÌÃΥ쥸¥¹¥¿¤Î¹¹¿·¤Ë¤Ï¡¢¥ì¥¸¥¹¥¿ÃͤòÆþÎϥǡ¼¥¿¤ÇÃÖ¤­´¹¤¨¤ë¥â¡¼¥É¤È -°ÊÁ°¤ÎÃͤÈÆþÎϥǡ¼¥¿¤Î¥Ó¥Ã¥Èñ°Ì¤Î OR ¤ò¤È¤Ã¤¿Ãͤ˹¹¿·¤¹¤ë¥â¡¼¥É¤¬¤¢¤ë¡£ -¤É¤Á¤é¤Î¥â¡¼¥É¤Ë¤Ê¤ë¤«¤Ï¡¢¤½¤ì¤¾¤ì +シグナル通知レジスタの更新には、レジスタ値を入力データで置き換えるモードと +以前の値と入力データのビット単位の OR をとった値に更新するモードがある。 +どちらのモードになるかは、それぞれ .IR signal1_type , .I signal2_type -¥Õ¥¡¥¤¥ë¤ÎÆâÍƤˤè¤Ã¤Æ·è¤Þ¤ë¡£ +ファイルの内容によって決まる。 .RE .TP .BR /signal1_type ", " /signal2_type @@ -753,33 +753,33 @@ SPU .\"O and .\"O .I signal2 .\"O notification files. -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¥·¥°¥Ê¥ëÄÌÃÎ¥Õ¥¡¥¤¥ë +これらのファイルは、シグナル通知ファイル .I signal1 -¤È +と .I signal2 -¤ÎÆ°ºî¤òÊѹ¹¤¹¤ë¡£ +の動作を変更する。 .\"O They contain a numerical .\"O ASCII string which is read as either "1" or "0". .\"O In mode 0 (overwrite), the hardware replaces the contents .\"O of the signal channel with the data that is written to it. .\"O In mode 1 (logical OR), the hardware accumulates the bits .\"O that are subsequently written to it. -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï¿ôÃͤòɽ¤¹¥¢¥¹¥­¡¼Ê¸»úÎó¤òÊÝ»ý¤·¡¢ -Æɤ߽Ф¹¤È "1" ¤« "0" ¤Î¤É¤Á¤é¤«¤¬ÆÀ¤é¤ì¤ë¡£ -¥â¡¼¥É 0 (¾å½ñ¤­¥â¡¼¥É) ¤Ç¤Ï¡¢¥Ï¡¼¥É¥¦¥§¥¢¤Ï¥·¥°¥Ê¥ë¥Á¥ã¥Í¥ë¤ÎÆâÍƤò -¥·¥°¥Ê¥ë¥Á¥ã¥Í¥ë¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¥Ç¡¼¥¿¤ÇÃÖ¤­´¹¤¨¤ë¡£ -¥â¡¼¥É 1 (ÏÀÍý OR ¥â¡¼¥É) ¤Ç¤Ï¡¢¥Ï¡¼¥É¥¦¥§¥¢¤Ï¥·¥°¥Ê¥ë¥Á¥ã¥Í¥ë¤Ë -½ñ¤­¹þ¤Þ¤ì¤¿¥Ó¥Ã¥È¤òÀÑ»»¤·¤Æ¤¤¤¯¡£ +これらのファイルは数値を表すアスキー文字列を保持し、 +読み出すと "1" か "0" のどちらかが得られる。 +モード 0 (上書きモード) では、ハードウェアはシグナルチャネルの内容を +シグナルチャネルに書き込まれたデータで置き換える。 +モード 1 (論理 OR モード) では、ハードウェアはシグナルチャネルに +書き込まれたビットを積算していく。 .\"O The possible operations on an open .\"O .I signal1_type .\"O or .\"O .I signal2_type .\"O file are: -¥ª¡¼¥×¥ó¤µ¤ì¤¿ +オープンされた .I signal1_type -¤ä +や .I signal2_type -¥Õ¥¡¥¤¥ë¤Ë²Äǽ¤ÊÁàºî¤Ï°Ê²¼¤Ç¤¢¤ë¡£ +ファイルに可能な操作は以下である。 .RS .TP .BR read (2) @@ -792,13 +792,13 @@ SPU .\"O will return zero bytes and a new file descriptor needs to be opened .\"O to read the value again. .BR read (2) -¤ËÅϤµ¤ì¤¿ +に渡された .I count -¤¬¥ì¥¸¥¹¥¿¤Î¿ôÃͤȲþ¹Ô (newline) ʸ»ú 1 ¸Ä¤ò³ÊǼ¤¹¤ë¤Î¤ËɬÍפÊŤµ¤è¤ê -û¤¤¾ì¹ç¡¢Æ±¤¸¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò³¤±¤Æ read ¤¹¤ë¤³¤È¤Ç¡¢ -ʸ»úÎóÁ´ÂΤòÆɤ߽Ф¹¤³¤È¤¬¤Ç¤­¤ë¡£ -ʸ»úÎóÁ´ÂΤ¬Æɤ߽Фµ¤ì¤ë¤È¡¢¤½¤ì°Ê¹ß¤Î read Áàºî¤Ç¤Ï 0 ¥Ð¥¤¥È¤¬ÊÖ¤µ¤ì¡¢ -¿·¤·¤¤ÃͤòÆɤ߽Ф¹¤Ë¤Ï¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥ª¡¼¥×¥ó¤¹¤ëɬÍפ¬¤¢¤ë¡£ +がレジスタの数値と改行 (newline) 文字 1 個を格納するのに必要な長さより +短い場合、同じファイルディスクリプタを続けて read することで、 +文字列全体を読み出すことができる。 +文字列全体が読み出されると、それ以降の read 操作では 0 バイトが返され、 +新しい値を読み出すには新しいファイルディスクリプタをオープンする必要がある。 .TP .BR write (2) .\"O A @@ -809,16 +809,16 @@ SPU .\"O until the first non-numeric character or the end of the buffer. .\"O Subsequent writes to the same file descriptor overwrite the .\"O previous setting. -¤³¤Î¥Õ¥¡¥¤¥ë¤Ø¤Î +このファイルへの .BR write (2) -Áàºî¤Ï¥ì¥¸¥¹¥¿Ãͤòʸ»úÎó¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£ -ʸ»úÎó¤Î²ò¼á¤ÏÀèƬ¤«¤é³«»Ï¤µ¤ì¡¢¿ô»ú°Ê³°¤Îʸ»ú¤¬½é¤á¤ÆÅо줹¤ë¤«¡¢ -¥Ð¥Ã¥Õ¥¡¤ÎËöÈø¤Ë㤹¤ë¤Þ¤Ç¹Ô¤ï¤ì¤ë¡£ -Ʊ¤¸¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ø³¤±¤Æ write ¤ò¹Ô¤¦¤È¡¢ -¸å¤Î write ¤Ë¤è¤êÁ°¤ÎÀßÄ꤬¾å½ñ¤­¤µ¤ì¤ë¡£ +操作はレジスタ値を文字列で指定された値に設定する。 +文字列の解釈は先頭から開始され、数字以外の文字が初めて登場するか、 +バッファの末尾に達するまで行われる。 +同じファイルディスクリプタへ続けて write を行うと、 +後の write により前の設定が上書きされる。 .RE .\"O .SH EXAMPLE -.SH Îã +.SH 例 .TP .IR /etc/fstab " entry" none /spu spufs gid=spu 0 0 @@ -827,7 +827,7 @@ none /spu spufs gid=spu 0 0 .\" Mark Nutter and .\" Ulrich Weigand .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR close (2), .BR spu_create (2), .BR spu_run (2) diff --git a/draft/man7/standards.7 b/draft/man7/standards.7 index 65612dd8..447da1db 100644 --- a/draft/man7/standards.7 +++ b/draft/man7/standards.7 @@ -27,28 +27,28 @@ .\" Updated 2008-08-07, Akihiro MOTOKI, LDP v3.05 .\" Updated 2008-08-20, Akihiro MOTOKI, LDP v3.07 .\" -.\" WORD: standards ɸ½àµ¬³Ê -.\" WORD: revision ²þÄûÈÇ -.\" WORD: guide »Ø¿Ë +.\" WORD: standards 標準規格 +.\" WORD: revision 改訂版 +.\" WORD: guide 指針 .\" .TH STANDARDS 7 2009-06-01 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O standards \- C and UNIX Standards -standards \- C ¤È UNIX ¤Îɸ½àµ¬³Ê +standards \- C と UNIX の標準規格 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The CONFORMING TO section that appears in many manual pages identifies .\"O various standards to which the documented interface conforms. .\"O The following list briefly describes these standards. -¿¤¯¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¡Ö½àµò (CONFORMING TO)¡×¤Î¾Ï¤Ï¡¢ -¤½¤Î¥Ú¡¼¥¸¤Ëµ­ºÜ¤µ¤ì¤¿¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¬½àµò¤¹¤ë -³Æ¼ï¤Îɸ½àµ¬³Ê¤ò¼¨¤¹¤â¤Î¤Ç¤¢¤ë¡£ -°Ê²¼¤Ë¤³¤ì¤é¤Îɸ½àµ¬³Ê¤Î´Êñ¤ÊÀâÌÀ¤òµ­¤¹¡£ +多くのマニュアルページの「準拠 (CONFORMING TO)」の章は、 +そのページに記載されたインタフェースが準拠する +各種の標準規格を示すものである。 +以下にこれらの標準規格の簡単な説明を記す。 .TP .B V7 .\"O Version 7, the ancestral UNIX from Bell Labs. -¥Ù¥ë¸¦µæ½ê¤Ë¤è¤ë¸µÁÄ UNIX ¤Ç¤¢¤ë Version 7¡£ +ベル研究所による元祖 UNIX である Version 7。 .TP .B 4.2BSD .\"O This is an implementation standard defined by the 4.2 release @@ -58,28 +58,28 @@ standards \- C .\"O This was the first Berkeley release that contained a TCP/IP .\"O stack and the sockets API. .\"O 4.2BSD was released in 1983. -¥«¥ê¥Õ¥©¥ë¥Ë¥¢Âç¥Ð¡¼¥¯¥ì¡¼¹» (the University of California at Berkeley) -¤Ë¤è¤ê¥ê¥ê¡¼¥¹¤µ¤ì¤¿ +カリフォルニア大バークレー校 (the University of California at Berkeley) +によりリリースされた .IR "Berkeley Software Distribution" -¥ê¥ê¡¼¥¹ 4.2 ¤Ë¤è¤Ã¤Æµ¬Äꤵ¤ì¤¿¡¢¼ÂÁõ¤Ë´ð¤Å¤¯É¸½àµ¬³Ê -(implementation standard)¡£ -¥Ð¡¼¥¯¥ì¡¼¤Ë¤è¤ë¥ê¥ê¡¼¥¹¤ÎÃæ¤Ç -TCP/IP ¥¹¥¿¥Ã¥¯¤È¥½¥±¥Ã¥È API ¤ò´Þ¤àºÇ½é¤Î¥ê¥ê¡¼¥¹¤Ç¤¢¤ë¡£ +リリース 4.2 によって規定された、実装に基づく標準規格 +(implementation standard)。 +バークレーによるリリースの中で +TCP/IP スタックとソケット API を含む最初のリリースである。 .\"O Earlier major BSD releases included \fI3BSD\fP (1980), \fI4BSD\fP (1980), .\"O and \fI4.1BSD\fP (1981). -¤³¤ì¤è¤êÁ°¤ÎBSD ¤Î¼ç¤Ê¥ê¥ê¡¼¥¹¤È¤·¤Æ¤Ï -\fI3BSD\fP (1980), \fI4BSD\fP (1980), \fI4.1BSD\fP (1981) ¤¬¤¢¤ë¡£ +これより前のBSD の主なリリースとしては +\fI3BSD\fP (1980), \fI4BSD\fP (1980), \fI4.1BSD\fP (1981) がある。 .TP .B 4.3BSD .\"O The successor to 4.2BSD, released in 1986. -1986 ǯ¤Ë¥ê¥ê¡¼¥¹¤µ¤ì¤¿ 4.2BSD ¤Î¸å·Ñ¡£ +1986 年にリリースされた 4.2BSD の後継。 .TP .B 4.4BSD .\"O The successor to 4.3BSD, released in 1993. .\"O This was the last major Berkeley release. -1993 ǯ¤Ë¥ê¥ê¡¼¥¹¤µ¤ì¤¿ 4.3BSD ¤Î¸å·Ñ¡£ -¥Ð¡¼¥¯¥ì¡¼ (Berkeley) ¤Ë¤è¤ëºÇ¸å¤ÎÂ礭¤Ê¥ê¥ê¡¼¥¹¤Ç¤¢¤ë¡£ +1993 年にリリースされた 4.3BSD の後継。 +バークレー (Berkeley) による最後の大きなリリースである。 .TP .B System V .\"O This is an implementation standard defined by AT&T's milestone 1983 @@ -87,11 +87,11 @@ TCP/IP .\"O The previous major AT&T release was .\"O .IR "System III" , .\"O released in 1981. -AT&T ¤Î¾¦ÍÑ System V (5) ¥ê¥ê¡¼¥¹¤Î 1983 ǯÈǤˤè¤êµ¬Äꤵ¤ì¤¿ -¼ÂÁõ¤Ë´ð¤Å¤¯É¸½àµ¬³Ê¡£ -°ì¤ÄÁ°¤Î AT&T ¤ÎÂ礭¤Ê¥ê¥ê¡¼¥¹¤Ï 1981 ǯ¤Ë¥ê¥ê¡¼¥¹¤µ¤ì¤¿ +AT&T の商用 System V (5) リリースの 1983 年版により規定された +実装に基づく標準規格。 +一つ前の AT&T の大きなリリースは 1981 年にリリースされた .I "System III" -¤Ç¤¢¤ë¡£ +である。 .TP .B System V release 2 (SVr2) .\"O This was the next System V release, made in 1985. @@ -99,22 +99,22 @@ AT&T .\"O .I "System V Interface Definition version 1" .\"O .RI ( "SVID 1" ) .\"O published in 1985. -System V ¤ÎÆóÈÖÌܤΥê¥ê¡¼¥¹¤Ç¤¢¤ê¡¢1985 ǯ¤ËºîÀ®¤µ¤ì¤¿¡£ -SVr2 ¤ÏÀµ¼°¤Ë¤Ï 1985 ǯ¤Ëȯ¹Ô¤µ¤ì¤¿ +System V の二番目のリリースであり、1985 年に作成された。 +SVr2 は正式には 1985 年に発行された .I "System V Interface Definition version 1" .RI ( "SVID 1" ) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ +に記載されている。 .TP .B System V release 3 (SVr3) .\"O This was the successor to SVr2, released in 1986. .\"O This release was formally described in the .\"O .I "System V Interface Definition version 2" .\"O .RI ( "SVID 2" ). -SVr2 ¤Î¸å·Ñ¡£1986 ǯ¤Ë¥ê¥ê¡¼¥¹¤µ¤ì¤¿¡£ -¤³¤Î¥ê¥ê¡¼¥¹¤ÏÀµ¼°¤Ë¤Ï +SVr2 の後継。1986 年にリリースされた。 +このリリースは正式には .I "System V Interface Definition version 2" .RI ( "SVID 2" ) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ +に記載されている。 .TP .B System V release 4 (SVr4) .\"O This was the successor to SVr3, released in 1989. @@ -125,22 +125,22 @@ SVr2 .\"O .I "System V Interface Definition version 3" .\"O .RI ( "SVID 3" ), .\"O and is considered the definitive System V release. -SVr3 ¤Î¸å·Ñ¡£1989 ǯ¤Ë¥ê¥ê¡¼¥¹¤µ¤ì¤¿¡£ -¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Î System V ¤Ë¤Ä¤¤¤Æ¤Ï +SVr3 の後継。1989 年にリリースされた。 +このバージョンの System V については "Programmer's Reference Manual: Operating System API (Intel processors)" -(Prentice-Hall 1992, ISBN 0-13-951294-2) ¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥ê¥ê¡¼¥¹¤ÏÀµ¼°¤Ë¤Ï +(Prentice-Hall 1992, ISBN 0-13-951294-2) に記載されている。 +このリリースは正式には .I "System V Interface Definition version 3" .RI ( "SVID 3" ) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤ª¤ê¡¢System V ¤ÎºÇ½ªÅª¤Ê¥ê¥ê¡¼¥¹¤È¹Í¤¨¤é¤ì¤Æ¤¤¤ë¡£ +に記載されており、System V の最終的なリリースと考えられている。 .TP .B SVID 4 .\"O System V Interface Definition version 4, issued in 1995. .\"O Available online at http://www.sco.com/developers/devspecs/ . -System V Interface Definition version 4¡£ -1995 ǯ¤Ëȯ¹Ô¤µ¤ì¤¿¡£ -¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ç¤Ï http://www.sco.com/developers/devspecs/ -¤ÇÆþ¼ê¤Ç¤­¤ë¡£ +System V Interface Definition version 4。 +1995 年に発行された。 +インターネットでは http://www.sco.com/developers/devspecs/ +で入手できる。 .TP .B C89 .\"O This was the first C language standard, ratified by ANSI @@ -155,30 +155,30 @@ System V Interface Definition version 4 .\"O .RI ( "ISO/IEC 9899:1990" ), .\"O and is thus occasionally referred to as .\"O .IR "ISO C90" . -ºÇ½é¤Î C ¸À¸ì¤Îɸ½àµ¬³Ê¤Ç¤¢¤ë¡£ -ANSI (American National Standards Institute) ¤Ë¤è¤ê -1989 ǯ¤Î¾µÇ§¤µ¤ì¤¿ -.RI ( X3.159-1989 )¡£ -»þ¤Ë¤Ï¡¢¤³¤Îµ¬³Ê¤Ï +最初の C 言語の標準規格である。 +ANSI (American National Standards Institute) により +1989 年の承認された +.RI ( X3.159-1989 )。 +時には、この規格は .I "ANSI C" -¤È¤â¸Æ¤Ð¤ì¤ë¤¬¡¢ -C99 ¤â ANSI ɸ½à¤Ê¤Î¤Ç¡¢¤³¤Î¸À¤¤Êý¤Ï¤¢¤¤¤Þ¤¤¤Ç¤¢¤ë¡£ -¤³¤Îµ¬³Ê¤Ï 1990 ǯ¤Ë ISO (International Standards Organization) ¤Ë¤è¤ë -¾µÇ§¤â¼õ¤±¤Æ¤ª¤ê -.RI ( "ISO/IEC 9899:1990" )¡¢ -¤½¤Î¤¿¤á +とも呼ばれるが、 +C99 も ANSI 標準なので、この言い方はあいまいである。 +この規格は 1990 年に ISO (International Standards Organization) による +承認も受けており +.RI ( "ISO/IEC 9899:1990" )、 +そのため .I "ISO C90" -¤È¤·¤Æ»²¾È¤µ¤ì¤ë¤³¤È¤â¤¿¤Þ¤Ë¤¢¤ë¡£ +として参照されることもたまにある。 .TP .B C99 .\"O This revision of the C language standard was ratified by ISO in 1999 .\"O .RI ( "ISO/IEC 9899:1999" ). .\"O Available online at .\"O http://www.open-std.org/jtc1/sc22/wg14/www/standards. -C ¸À¸ì¤Îɸ½àµ¬³Ê¤Î¤³¤Î²þÄûÈÇ¤Ï ISO ¤Ë¤è¤ê 1999 ǯ¤Ë¾µÇ§¤µ¤ì¤¿ -.RI ( "ISO/IEC 9899:1999" )¡£ +C 言語の標準規格のこの改訂版は ISO により 1999 年に承認された +.RI ( "ISO/IEC 9899:1999" )。 http://www.open-std.org/jtc1/sc22/wg14/www/standards -¤«¤é¥ª¥ó¥é¥¤¥ó¤ÇÆþ¼ê²Äǽ¤Ç¤¢¤ë¡£ +からオンラインで入手可能である。 .TP .B POSIX.1-1990 .\"O "Portable Operating System Interface for Computing Environments". @@ -186,55 +186,55 @@ http://www.open-std.org/jtc1/sc22/wg14/www/standards .\"O .RI ( "ISO/IEC 9945-1:1990" ). .\"O The term "POSIX" was coined by Richard Stallman. "Portable Operating System Interface for Computing Environments". -1990 ǯ¤Ë ISO ¤Ë¤è¤ê¾µÇ§¤µ¤ì¤¿¡¢IEEE 1003.1-1990 part 1 -.RI ( "ISO/IEC 9945-1:1990" )¡£ -"POSIX" ¤È¤¤¤¦¸ÀÍÕ¤Ï Richard Stallman ¤¬½é¤á¤Æºî¤Ã¤¿¡£ +1990 年に ISO により承認された、IEEE 1003.1-1990 part 1 +.RI ( "ISO/IEC 9945-1:1990" )。 +"POSIX" という言葉は Richard Stallman が初めて作った。 .TP .B POSIX.2 .\"O IEEE Std 1003.2-1992, .\"O describing commands and utilities, ratified by ISO in 1993 .\"O .RI ( "ISO/IEC 9945-2:1993" ). IEEE Std 1003.2-1992. -¥³¥Þ¥ó¥É¤È¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ë¤Ä¤¤¤ÆÀâÌÀ¤¬½ñ¤«¤ì¤Æ¤ª¤ê¡¢ -1993 ǯ¤Ë ISO ¤Ë¤è¤ê¾µÇ§¤µ¤ì¤¿ -.RI ( "ISO/IEC 9945-2:1993" )¡£ +コマンドとユーティリティについて説明が書かれており、 +1993 年に ISO により承認された +.RI ( "ISO/IEC 9945-2:1993" )。 .TP .\"O .BR POSIX.1b " (formerly known as \fIPOSIX.4\fP)" -.BR POSIX.1b " (°ÊÁ°¤Ï \fIPOSIX.4\fP ¤È¤â¸À¤ï¤ì¤¿)" +.BR POSIX.1b " (以前は \fIPOSIX.4\fP とも言われた)" .\"O IEEE Std 1003.1b-1993 .\"O describing real-time facilities .\"O for portable operating systems, ratified by ISO in 1996 .\"O .RI ( "ISO/IEC 9945-1:1996" ). IEEE Std 1003.1b-1993. -°Ü¿¢²Äǽ¤Ê¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Î¤¿¤á¤Î¥ê¥¢¥ë¥¿¥¤¥àµ¡Ç½¤Ë¤Ä¤¤¤Æ -µ­ºÜ¤µ¤ì¤Æ¤ª¤ê¡¢ -1996 ǯ¤Î ISO ¤Ë¤è¤ê¾µÇ§¤µ¤ì¤¿ -.RI ( "ISO/IEC 9945-1:1996" )¡£ +移植可能なオペレーティングシステムのためのリアルタイム機能について +記載されており、 +1996 年の ISO により承認された +.RI ( "ISO/IEC 9945-1:1996" )。 .TP .B POSIX.1c .\"O IEEE Std 1003.1c-1995 describing the POSIX threads interfaces. IEEE Std 1003.1c-1995. -POSIX ¥¹¥ì¥Ã¥É¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æµ­ºÜ¤·¤Æ¤¤¤ë¡£ +POSIX スレッドインタフェースについて記載している。 .TP .B POSIX.1d .\"O IEEE Std 1003.1c-1999 describing additional real-time extensions. IEEE Std 1003.1c-1999. -ÄɲäΥꥢ¥ë¥¿¥¤¥à³ÈÄ¥¤Ë¤Ä¤¤¤Æµ­ºÜ¤·¤Æ¤¤¤ë¡£ +追加のリアルタイム拡張について記載している。 .TP .B POSIX.1g .\"O IEEE Std 1003.1g-2000 describing networking APIs (including sockets). IEEE Std 1003.1g-2000. -(¥½¥±¥Ã¥È¤ò´Þ¤á¤¿) ¥Í¥Ã¥È¥ï¡¼¥¯ API ¤Ë¤Ä¤¤¤Æµ­ºÜ¤·¤Æ¤¤¤ë¡£ +(ソケットを含めた) ネットワーク API について記載している。 .TP .B POSIX.1j .\"O IEEE Std 1003.1j-2000 describing advanced real-time extensions. IEEE Std 1003.1j-2000. -¹âÅ٤ʥꥢ¥ë¥¿¥¤¥à³ÈÄ¥¤Ë¤Ä¤¤¤Æµ­ºÜ¤·¤Æ¤¤¤ë¡£ +高度なリアルタイム拡張について記載している。 .TP .B POSIX.1-1996 .\"O A 1996 revision of POSIX.1 which incorporated POSIX.1b and POSIX.1c. -POSIX.1 ¤Î 1996 ǯ¤Î²þÄûÈÇ¡£ -POSIX.1b ¤È POSIX.1c ¤ò¼è¤ê¹þ¤ó¤Ç¤¤¤ë¡£ +POSIX.1 の 1996 年の改訂版。 +POSIX.1b と POSIX.1c を取り込んでいる。 .TP .B XPG3 .\"O Released in 1989, this was the first significant release of the @@ -242,15 +242,15 @@ POSIX.1b .\"O produced by the .\"O X/Open Company, a multivendor consortium. .\"O This multivolume guide was based on the POSIX standards. -1989 ǯ¥ê¥ê¡¼¥¹¤Î¡¢¥Þ¥ë¥Á¥Ù¥ó¥À¤Ë¤è¤ë¶È³¦ÃÄÂΤǤ¢¤ë X/Open ¼Ò¤Ë¤è¤ë +1989 年リリースの、マルチベンダによる業界団体である X/Open 社による .I "X/Open Portability Guide" -¤ÎºÇ½é¤ÎÂ礭¤Ê¥ê¥ê¡¼¥¹¤Ç¤¢¤ë¡£ -¤³¤Î»Ø¿Ë¤Ï POSIX ɸ½àµ¬³Ê¤Ë´ð¤Å¤¤¤Æ¤¤¤ë¡£ +の最初の大きなリリースである。 +この指針は POSIX 標準規格に基づいている。 .TP .B XPG4 .\"O A revision of the X/Open Portability Guide, released in 1992. -1992 ǯ¤Ë¥ê¥ê¡¼¥¹¤µ¤ì¤¿¡¢X/Open Portability Guide (°Ü¿¢À­¤Ë´Ø¤¹¤ë»Ø¿Ë) -¤Î²þÄûÈÇ¡£ +1992 年にリリースされた、X/Open Portability Guide (移植性に関する指針) +の改訂版。 .TP .B XPG4v2 .\"O A 1994 revision of XPG4. @@ -258,10 +258,10 @@ POSIX.1b .\"O .IR "Spec 1170" , .\"O where 1170 referred to the number of interfaces .\"O defined by this standard. -XPG4 ¤Î 1994ǯ²þÄûÈÇ¡£ +XPG4 の 1994年改訂版。 .I "Spec 1170" -¤È¤â¸Æ¤Ð¤ì¤ë¡£ -1170 ¤È¤Ï¤³¤Îɸ½àµ¬³Ê¤¬ÄêµÁ¤·¤Æ¤¤¤ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î¿ô¤òɽ¤¹¤â¤Î¤Ç¤¢¤ë¡£ +とも呼ばれる。 +1170 とはこの標準規格が定義しているインタフェースの数を表すものである。 .TP .B SUS (SUSv1) .\"O Single UNIX Specification. @@ -271,13 +271,13 @@ XPG4 .\"O Systems conforming to this standard can be branded .\"O .IR "UNIX 95" . Single UNIX Specification. -¤³¤Îµ¬³Ê¤Ï¡¢XPG4v2 ¤ä¤½¤Î¾¤Î X/Open ¤Ë¤è¤ëɸ½àµ¬³Ê +この規格は、XPG4v2 やその他の X/Open による標準規格 (X/Open Curses Issue 4 version 2, X/Open Networking Service (XNS) Issue 4) -¤òºÆ¹½À®¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Îµ¬³Ê¤Ë½àµò¤¹¤ë¥·¥¹¥Æ¥à¤Ï +を再構成したものである。 +この規格に準拠するシステムは .I "UNIX 95" -¤ò̾¾è¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を名乗ることができる。 .TP .B SUSv2 .\"O Single UNIX Specification version 2. @@ -290,13 +290,13 @@ X/Open Networking Service (XNS) Issue 4) .\"O http://www.UNIX-systems.org/version2/ .) Single UNIX Specification version 2. .I XPG5 -¤È¸Æ¤Ð¤ì¤ë¤³¤È¤â¤¢¤ë¡£ -¤³¤Îµ¬³Ê¤Ï 1997 ǯ¤ËÅо줷¤¿¡£ -¤³¤Îµ¬³Ê¤Ë½àµò¤¹¤ë¥·¥¹¥Æ¥à¤Ï +と呼ばれることもある。 +この規格は 1997 年に登場した。 +この規格に準拠するシステムは .I "UNIX 98" -¤ò̾¾è¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を名乗ることができる。 http://www.UNIX-systems.org/version2/ -¤â»²¾È¤Î¤³¤È¡£ +も参照のこと。 .TP .B POSIX.1-2001, SUSv3 .\"O This was a 2001 revision and consolidation of the @@ -307,15 +307,15 @@ http://www.UNIX-systems.org/version2/ .\"O http://www.unix-systems.org/version3/ , .\"O and the interfaces that it describes are also available in the Linux .\"O manual pages package under sections 1p and 3p (e.g., "man 3p open"). -¤³¤ì¤Ï POSIX.1, POSIX.2, SUS ¤Î 2001ǯ¤Î²þÄûÈǤǤ¢¤ë¡£ -¤Þ¤¿¡¢POSIX.1, POSIX.2, SUS ¤ò°ì¤Ä¤Îʸ½ñ¤ËÅý¹ç¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤ÎÅý¹ç¤Ï Austin Group (http://www.opengroup.org/austin/) -¤Î¸å±ç¤Î¸µ¤Ç¹Ô¤ï¤ì¤¿¡£ -¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ç¤Ï -http://www.unix-systems.org/version3/ ¤ÇÆþ¼ê¤Ç¤­¤ë¡£ -¤Þ¤¿¡¢¤³¤Îµ¬³Ê¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æ¤Ï -Linux ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¡¦¥Ñ¥Ã¥±¡¼¥¸¤Î 1p, 3p ¥»¥¯¥·¥ç¥ó¤Ç¤â -»²¾È¤Ç¤­¤ë (Î㤨¤Ð¡¢"man 3p open")¡£ +これは POSIX.1, POSIX.2, SUS の 2001年の改訂版である。 +また、POSIX.1, POSIX.2, SUS を一つの文書に統合したものである。 +この統合は Austin Group (http://www.opengroup.org/austin/) +の後援の元で行われた。 +インターネットでは +http://www.unix-systems.org/version3/ で入手できる。 +また、この規格に書かれているインタフェースについては +Linux のマニュアルページ・パッケージの 1p, 3p セクションでも +参照できる (例えば、"man 3p open")。 .\"O The standard defines two levels of conformance: .\"O .IR "POSIX conformance" , @@ -329,53 +329,53 @@ Linux .\"O (XSI conformance constitutes the .\"O .I "Single UNIX Specification version 3" .\"O .RI ( SUSv3 ).) -¤³¤Îµ¬³Ê¤Ç¤Ï¡¢ -.I "POSIX Conformance (POSIX ½àµò)" -¤È -.I "XSI Conformance (XSI ½àµò)" -¤ÎÆóÃʳ¬¤ÎŬ¹çÀ­¤òÄêµÁ¤·¤Æ¤¤¤ë¡£ -.I "POSIX ½àµò" -¤Ï½àµò¤¹¤ë¥·¥¹¥Æ¥à¤ËɬÍפȤµ¤ì¤ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î´ðËÜ¥»¥Ã¥È¤Ç¤¢¤ê¡¢ -.I "XSI ½àµò)" -¤Ç¤Ï "XSI ³ÈÄ¥" ¤È¤¤¤¦ÄɲäΥ¤¥ó¥¿¥Õ¥§¡¼¥¹·²¤¬µÁ̳ÉÕ¤±¤é¤ì¤Æ¤¤¤ë -(POSIX ½àµò¤Ç¤Ï XSI ³ÈÄ¥¤Î¼ÂÁõ¤ÏǤ°Õ (optional) ¤È¤Ê¤Ã¤Æ¤¤¤ë)¡£ -XSI ½àµò¤Î¥·¥¹¥Æ¥à¤Ï +この規格では、 +.I "POSIX Conformance (POSIX 準拠)" +と +.I "XSI Conformance (XSI 準拠)" +の二段階の適合性を定義している。 +.I "POSIX 準拠" +は準拠するシステムに必要とされるインタフェースの基本セットであり、 +.I "XSI 準拠)" +では "XSI 拡張" という追加のインタフェース群が義務付けられている +(POSIX 準拠では XSI 拡張の実装は任意 (optional) となっている)。 +XSI 準拠のシステムは .I "UNIX 03" -¤ò̾¾è¤ë¤³¤È¤¬¤Ç¤­¤ë -(XSI ½àµò¤ÎÆâÍƤ¬ +を名乗ることができる +(XSI 準拠の内容が .I "Single UNIX Specification version 3" .RI ( SUSv3 ) -¤Ç¤¢¤ë)¡£ +である)。 .\"O The POSIX.1-2001 document is broken into four parts: -POSIX.1-2001 ʸ½ñ¤Ï 4¤Ä¤ÎÉôʬ¤Ëʬ¤±¤ë¤³¤È¤¬¤Ç¤­¤ë: +POSIX.1-2001 文書は 4つの部分に分けることができる: .BR XBD : .\"O Definitions, terms and concepts, header file specifications. -ÄêµÁ¡¢ÍѸì¤È³µÇ°¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Î»ÅÍÍ¡£ +定義、用語と概念、ヘッダファイルの仕様。 .BR XSH : .\"O Specifications of functions (i.e., system calls and library .\"O functions in actual implementations). -´Ø¿ô¤Î»ÅÍÍ (´Ø¿ô¤È¤Ï¡¢¼ÂºÝ¤Î¼ÂÁõ¤Ç¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤È -¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Î¤³¤È¤Ç¤¢¤ë)¡£ +関数の仕様 (関数とは、実際の実装でのシステムコールと +ライブラリ関数のことである)。 .BR XCU : .\"O Specifications of commands and utilities .\"O (i.e., the area formerly described by POSIX.2). -¥³¥Þ¥ó¥É¤È¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Î»ÅÍÍ -(°ÊÁ°¡¢ POSIX.2 ¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤¿ÆâÍÆ)¡£ +コマンドとユーティリティの仕様 +(以前、 POSIX.2 に記載されていた内容)。 .BR XRAT : .\"O Informative text on the other parts of the standard. -»²¹Í¾ðÊó¤Èµ¬³Ê¤Î¤½¤ì°Ê³°¤ÎÉôʬ +参考情報と規格のそれ以外の部分 .\"O POSIX.1-2001 is aligned with C99, so that all of the .\"O library functions standardized in C99 are also .\"O standardized in POSIX.1-2001. -POSIX.1-2001 ¤Ï C99 ¤ÈÀ°¹ç¤¬¤È¤é¤ì¤Æ¤ª¤ê¡¢ -C99 ¤Çɸ½à²½¤µ¤ì¤¿¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ï POSIX.1-2001 ¤Ç¤â -ɸ½à²½¤µ¤ì¤Æ¤¤¤ë¡£ +POSIX.1-2001 は C99 と整合がとられており、 +C99 で標準化されたライブラリ関数は POSIX.1-2001 でも +標準化されている。 .\"O Two Technical Corrigenda (minor fixes and improvements) .\"O of the original 2001 standard have occurred: @@ -383,18 +383,18 @@ C99 .\"O .IR POSIX.1-2003 ), .\"O and TC2 in 2004 (referred to as .\"O .IR POSIX.1-2004 ). -¸µ¤Î 2001 ǯÈǤÎɸ½à¤ËÂФ¹¤ë Technical Corrigenda -(Àµ¸íɽ; ºÙ¤«¤Ê½¤Àµ¤È²þÎÉ) ¤¬Æó¤Ä¹Ô¤ï¤ì¤Æ¤¤¤ë: -2003 ǯ¤Î TC1 +元の 2001 年版の標準に対する Technical Corrigenda +(正誤表; 細かな修正と改良) が二つ行われている: +2003 年の TC1 .RI ( POSIX.1-2003 -¤È¸Æ¤Ð¤ì¤ë) ¤È 2004 ǯ¤Î TC2 +と呼ばれる) と 2004 年の TC2 .RI ( POSIX.1-2004 -¤È¸Æ¤Ð¤ì¤ë) ¤Ç¤¢¤ë¡£ +と呼ばれる) である。 .TP .B POSIX.1-2008, SUSv4 .\"O Work on the next revision of POSIX.1/SUS was completed and .\"O ratified in 2008. -POSIX.1/SUS ¤Î¼¡¤Î²þÄûÈǤ˴ؤ¹¤ëºî¶È¤Ï 2008 ǯ¤Ë´°Î»¤·¾µÇ§¤µ¤ì¤¿¡£ +POSIX.1/SUS の次の改訂版に関する作業は 2008 年に完了し承認された。 .\"O The changes in this revision are not as large as those .\"O that occurred for POSIX.1-2001/SUSv3, @@ -404,14 +404,14 @@ POSIX.1/SUS .\"O POSIX.1-2001 become mandatory in the 2008 revision of the standard. .\"O A few interfaces that are present in POSIX.1-2001 are marked .\"O as obsolete in POSIX.1-2008, or removed from the standard altogether. -¤³¤Î²þÄûÈǤǤÎÊѹ¹¤Ï POSIX.1-2001/SUSv3 ¤Ç¹Ô¤ï¤ì¤¿Êѹ¹¤Û¤ÉÂ礭¤¯¤Ê¤¤¤¬¡¢ -¿¤¯¤Î¿·¤·¤¤¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤¬Äɲ䵤졢´û¸¤Î»ÅÍͤ˴ؤ·¤Æ¤â -¼ï¡¹¤Î¾ÜºÙ¤¬Êѹ¹¤µ¤ì¤Æ¤¤¤ë¡£ -POSIX.1-2001 ¤Ç¤ÏǤ°Õ (optional) ¤È¤µ¤ì¤Æ¤¤¤¿¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Î¿¤¯¤¬ -2008 ǯÈǤÎɸ½à¤Ç¤Ïɬ¿Ü (mandatory) ¤Ë¤Ê¤ë¡£ -POSIX.1-2001 ¤Ë¸ºß¤¹¤ë¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Î¤¤¤¯¤Ä¤«¤Ï¡¢ -POSIX.1-2008 ¤Ç¤ÏÇÑ»ßͽÄê¤Î°õ¤¬ÉÕ¤±¤é¤ì¤¿¤ê¡¢ -ɸ½à¤«¤é´°Á´¤Ëºï½ü¤µ¤ì¤¿¤ê¤·¤Æ¤¤¤ë¡£ +この改訂版での変更は POSIX.1-2001/SUSv3 で行われた変更ほど大きくないが、 +多くの新しいインターフェイスが追加され、既存の仕様に関しても +種々の詳細が変更されている。 +POSIX.1-2001 では任意 (optional) とされていたインターフェイスの多くが +2008 年版の標準では必須 (mandatory) になる。 +POSIX.1-2001 に存在するインターフェイスのいくつかは、 +POSIX.1-2008 では廃止予定の印が付けられたり、 +標準から完全に削除されたりしている。 .\"O The revised standard is broken into the same four parts as POSIX.1-2001, .\"O and again there are two levels of conformance: the baseline @@ -420,30 +420,30 @@ POSIX.1-2008 .\"O .IR "XSI Conformance" , .\"O which mandates an additional set of interfaces .\"O beyond those in the base specification. -²þÄû¤µ¤ì¤¿É¸½à¤Ï POSIX.1-2001 ¤ÈƱ¤¸¤¯ 4 ¤Ä¤ÎÉôʬ¤Ëʬ¤±¤é¤ì¡¢ -Á°²ó¤ÈƱÍͤËÆóÃʳ¬¤ÎŬ¹çÀ­¤òÄêµÁ¤·¤Æ¤¤¤ë¡£ -´ðËÜ¥»¥Ã¥È¤Ç¤¢¤ë -.I "POSIX Conformance (POSIX ½àµò)" -¤È¡¢ -´ðËÜ»ÅÍͤΥ¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ë²Ã¤¨¤ÆÄɲäΥ¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹·²¤¬ -µÁ̳ÉÕ¤±¤é¤ì¤Æ¤¤¤ë -.I "XSI Conformance (XSI ½àµò)" -¤ÎÆó¤Ä¤Ç¤¢¤ë¡£ +改訂された標準は POSIX.1-2001 と同じく 4 つの部分に分けられ、 +前回と同様に二段階の適合性を定義している。 +基本セットである +.I "POSIX Conformance (POSIX 準拠)" +と、 +基本仕様のインターフェイスに加えて追加のインターフェイス群が +義務付けられている +.I "XSI Conformance (XSI 準拠)" +の二つである。 .\"O In general, where the CONFORMING TO section of a manual page .\"O lists POSIX.1-2001, it can be assumed that the interface also .\"O conforms to POSIX.1-2008, unless otherwise noted. -°ìÈ̤ˤϡ¢¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¡Ö½àµò¡×¤Î¾Ï¤Î¥ê¥¹¥È¤Ë POSIX.1-2001 ¤¬ -¤¢¤ì¤Ð¡¢Â¾¤ËÃí°Õ½ñ¤­¤¬¤Ê¤±¤ì¤Ð¡¢¤½¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï POSIX.1-2008 -¤Ë¤â½àµò¤·¤Æ¤¤¤ë¤È¹Í¤¨¤Æ¤è¤¤¡£ +一般には、マニュアルページの「準拠」の章のリストに POSIX.1-2001 が +あれば、他に注意書きがなければ、そのインターフェイスは POSIX.1-2008 +にも準拠していると考えてよい。 .\"O Further information can be found on the Austin group web site, .\"O http://www.opengroup.org/austin/ . -¾Ü¤·¤¤¾ðÊó¤Ï Austin Group ¤Î¥¦¥§¥Ö¥µ¥¤¥È +詳しい情報は Austin Group のウェブサイト http://www.opengroup.org/austin/ -¤ËºÜ¤Ã¤Æ¤¤¤ë¡£ +に載っている。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR feature_test_macros (7), .BR libc (7), .BR posixoptions (7) diff --git a/draft/man7/suffixes.7 b/draft/man7/suffixes.7 index 5a70d006..ba8842f2 100644 --- a/draft/man7/suffixes.7 +++ b/draft/man7/suffixes.7 @@ -49,15 +49,15 @@ .\" Updated Tue Apr 24 21:51:14 JST 2001 .\" by Yuichi SATO .\" -.\"WORD: suffix ÀÜÈø +.\"WORD: suffix 接尾 .\" .TH SUFFIXES 7 2000-11-16 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O suffixes \- list of file suffixes -suffixes \- ¥Õ¥¡¥¤¥ë¤ÎÀÜÈø (suffix) ¤Î¥ê¥¹¥È +suffixes \- ファイルの接尾 (suffix) のリスト .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O It is customary to indicate the contents of a file with the file suffix, .\"O which consists of a period, followed by one or more letters. .\"O Many standard utilities, such as compilers, use this to recognize the type of @@ -65,16 +65,16 @@ suffixes \- .\"O The .\"O .BR make (1) .\"O utility is driven by rules based on file suffix. -½¬´·Åª¤Ë¥Õ¥¡¥¤¥ë¤ÎÀÜÈø (suffix) ¤Ï¥Õ¥¡¥¤¥ë¤ÎÆâÍƤò¼¨¤·¤Æ¤¤¤ë¡£ -¤³¤ÎÀÜÈø¤Ï¥Ô¥ê¥ª¥É (.) ¤È¤½¤ì¤Ë³¤¯°ì¤Ä°Ê¾å¤Îʸ»ú¤«¤é¤Ê¤Ã¤Æ¤¤¤ë¡£ -¥³¥ó¥Ñ¥¤¥é¡¼¤Î¤è¤¦¤Ê¡¢Â¿¤¯¤Îɸ½àŪ¤Ê¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ï¡¢ -¤³¤ÎÀÜÈø¤ò»ÈÍѤ·¤Æ¼è¤ê°·¤¦¥Õ¥¡¥¤¥ë¤Î·¿¤òÍý²ò¤¹¤ë¡£ +習慣的にファイルの接尾 (suffix) はファイルの内容を示している。 +この接尾はピリオド (.) とそれに続く一つ以上の文字からなっている。 +コンパイラーのような、多くの標準的なユーティリティは、 +この接尾を使用して取り扱うファイルの型を理解する。 .BR make (1) -¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ï¥Õ¥¡¥¤¥ë¤ÎÀÜÈø¤Ë´ð¤Å¤¤¤¿¥ë¡¼¥ë¤Ë½¾¤Ã¤ÆÆ°ºî¤¹¤ë¡£ +ユーティリティはファイルの接尾に基づいたルールに従って動作する。 .PP .\"O Following is a list of suffixes which are likely to be found on a .\"O Linux system. -°Ê²¼¤Ï Linux ¥·¥¹¥Æ¥à¤Ç¤è¤¯¸«¤é¤ì¤ëÀÜÈø¤Î¥ê¥¹¥È¤Ç¤¢¤ë¡£ +以下は Linux システムでよく見られる接尾のリストである。 .PP .TS @@ -83,444 +83,444 @@ _ | _ lI | l . Suffix File type .\"O ,v files for RCS (Revision Control System) - ,v RCS (¥ê¥Ó¥¸¥ç¥ó¡¦¥³¥ó¥È¥í¡¼¥ë) ¤Î¤¿¤á¤Î¥Õ¥¡¥¤¥ë + ,v RCS (リビジョン・コントロール) のためのファイル .\"O - backup file - - ¥Ð¥Ã¥¯¥¢¥Ã¥×¡¦¥Õ¥¡¥¤¥ë + - バックアップ・ファイル .\"O .C C++ source code, equivalent to \fI.cc\fP - .C C++ ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É¡¢\fI.cc\fP ¤ÈÅù²Á + .C C++ のソース・コード、\fI.cc\fP と等価 .\"O .F Fortran source with \fBcpp\fP(1) directives .\"O or file compressed using freeze - .F \fBcpp\fP(1)Ì¿Îá¤ò¤â¤Ã¤¿¥Õ¥©¡¼¥È¥é¥ó¤Î¥½¡¼¥¹ - ¤Þ¤¿¤Ï freeze(1) ¤Ç°µ½Ì¤µ¤ì¤¿¥Õ¥¡¥¤¥ë + .F \fBcpp\fP(1)命令をもったフォートランのソース + または freeze(1) で圧縮されたファイル .\"O .S assembler source with \fBcpp\fP(1) directives - .S \fBcpp\fP(1)Ì¿Îá¤ò¤â¤Ã¤¿¥¢¥»¥ó¥Ö¥é¡¦¥½¡¼¥¹ + .S \fBcpp\fP(1)命令をもったアセンブラ・ソース .\"O .Y file compressed using yabba - .Y yabba(1) ¤Ç°µ½Ì¤µ¤ì¤¿¥Õ¥¡¥¤¥ë + .Y yabba(1) で圧縮されたファイル .\"O .Z file compressed using \fBcompress\fP(1) - .Z \fBcompress\fP(1)¤Ç°µ½Ì¤µ¤ì¤¿¥Õ¥¡¥¤¥ë + .Z \fBcompress\fP(1)で圧縮されたファイル .\"O .[0-9]+gf TeX generic font files - .[0-9]+gf TeX ¤Î°ìÈÌ¥Õ¥©¥ó¥È + .[0-9]+gf TeX の一般フォント .\"O .[0-9]+pk TeX packed font files - .[0-9]+pk TeX ¤Î°µ½Ì¥Õ¥©¥ó¥È + .[0-9]+pk TeX の圧縮フォント .\"O .[1-9] manual page for the corresponding section - .[1-9] Âбþ¤¹¤ë¾Ï¤Î¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸ + .[1-9] 対応する章のマニュアル・ページ .\"O .[1-9][a-z] manual page for section plus subsection - .[1-9][a-z] ¥µ¥Ö¥»¥¯¥·¥ç¥óÉÕ¤­¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸ + .[1-9][a-z] サブセクション付きマニュアル・ページ .\"O .a static object code library - .a ¥ª¥Ö¥¸¥§¥¯¥È¡¦¥³¡¼¥É¤ÎÀÅŪ¥é¥¤¥Ö¥é¥ê + .a オブジェクト・コードの静的ライブラリ .\"O .ad X application default resource file - .ad X ¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¡¦¥Ç¥Õ¥©¥ë¥È¡¦¥Õ¥¡¥¤¥ë + .ad X のアプリケーション・デフォルト・ファイル .\"O .ada Ada source (may be body, spec, or combination) - .ada Ada ¤Î¥½¡¼¥¹(ËÜÂΤ«»ÞÍÕ¤«ÁȤ߹ç¤ï¤») + .ada Ada のソース(本体か枝葉か組み合わせ) .\"O .adb Ada body source - .adb Ada ¤Î¥½¡¼¥¹ËÜÂÎ + .adb Ada のソース本体 .\"O .ads Ada spec source - .ads Ada ¤Î¥½¡¼¥¹»ÅÍÍ + .ads Ada のソース仕様 .\"O .afm PostScript font metrics - .afm PostScript ¤Î¥Õ¥©¥ó¥È¡¦¥á¥È¥ê¥¯¥¹ + .afm PostScript のフォント・メトリクス .\"O .al Perl autoload file - .al Perl ¤Î¥ª¡¼¥È¥í¡¼¥É¡¦¥Õ¥¡¥¤¥ë + .al Perl のオートロード・ファイル .\"O .am \fBautomake\fP(1) input file - .am \fBautomake\fP(1) ¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë + .am \fBautomake\fP(1) の入力ファイル .\"O .arc \fBarc\fP(1) archive - .arc \fBarc\fP(1)¤Î¥¢¡¼¥«¥¤¥Ö + .arc \fBarc\fP(1)のアーカイブ .\"O .arj \fBarj\fP(1) archive - .arj \fBarj\fP(1)¤Î¥¢¡¼¥«¥¤¥Ö + .arj \fBarj\fP(1)のアーカイブ .\"O .asc PGP ASCII-armored data - .asc PGP ¤Î ASCII ²½¤µ¤ì¤¿¥Ç¡¼¥¿ + .asc PGP の ASCII 化されたデータ .\"O .asm (GNU) assembler source file - .asm (GNU) ¥¢¥»¥ó¥Ö¥é¤Î¥½¡¼¥¹ + .asm (GNU) アセンブラのソース .\"O .au Audio sound file - .au ¥ª¡¼¥Ç¥£¥ª¡¦¥µ¥¦¥ó¥É¡¦¥Õ¥¡¥¤¥ë + .au オーディオ・サウンド・ファイル .\"O .aux LaTeX auxiliary file - .aux LaTeX ¤ÎÊä½õ¥Õ¥¡¥¤¥ë + .aux LaTeX の補助ファイル .\"O .avi (msvideo) movie -.avi (Microsoft ¥Ó¥Ç¥ª) ¥à¡¼¥Ó¡¼ +.avi (Microsoft ビデオ) ムービー .\"O .awk AWK language program - .awk AWK ¸À¸ì¤Î¥×¥í¥°¥é¥à + .awk AWK 言語のプログラム .\"O .b LILO boot loader image - .b LILO ¤Î¥Ö¡¼¥È¥í¡¼¥À¡¦¥¤¥á¡¼¥¸ + .b LILO のブートローダ・イメージ .\"O .bak backup file - .bak ¥Ð¥Ã¥¯¥¢¥Ã¥×¡¦¥Õ¥¡¥¤¥ë + .bak バックアップ・ファイル .\"O .bash \fBbash\fP(1) shell script - .bash \fBbash\fP(1) ¥·¥§¥ë¡¦¥¹¥¯¥ê¥×¥È + .bash \fBbash\fP(1) シェル・スクリプト .\"O .bb basic block list data produced by .\"O gcc \-ftest\-coverage - .bb gcc -ftest-coverage ¤Î¥Ù¡¼¥·¥Ã¥¯¡¦¥Ö¥í¥Ã¥¯¡¦¥ê¥¹¥È + .bb gcc -ftest-coverage のベーシック・ブロック・リスト .\"O .bbg basic block graph data produced by .\"O gcc \-ftest\-coverage - .bbg gcc -ftest-coverage ¤Î¥Ù¡¼¥·¥Ã¥¯¡¦¥Ö¥í¥Ã¥¯¡¦¥°¥é¥Õ + .bbg gcc -ftest-coverage のベーシック・ブロック・グラフ .\"O .bbl BibTeX output - .bbl BibTeX ¤Î½ÐÎÏ + .bbl BibTeX の出力 .\"O .bdf X font file - .bdf X ¤Î¥Õ¥©¥ó¥È¥Õ¥¡¥¤¥ë + .bdf X のフォントファイル .\"O .bib TeX bibliographic database, BibTeX input - .bib TeX ʸ¸¥¥Ç¡¼¥¿¥Ù¡¼¥¹, BibTeX ¤ÎÆþÎÏ + .bib TeX 文献データベース, BibTeX の入力 .\"O .bm bitmap source - .bm ¥Ó¥Ã¥È¥Þ¥Ã¥×¤Î¥½¡¼¥¹ + .bm ビットマップのソース .\"O .bmp bitmap - .bmp ¥Ó¥Ã¥È¥Þ¥Ã¥× + .bmp ビットマップ .\"O .bz2 file compressed using \fBbzip2\fP(1) - .bz2 \fBbzip2\fP(1) ¤ò»ÈÍѤ·¤Æ°µ½Ì¤µ¤ì¤¿¥Õ¥¡¥¤¥ë + .bz2 \fBbzip2\fP(1) を使用して圧縮されたファイル .\"O .c C source - .c C ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É + .c C のソース・コード .\"O .cat message catalog files - .cat ¥á¥Ã¥»¡¼¥¸¡¦¥«¥¿¥í¥°¡¦¥Õ¥¡¥¤¥ë + .cat メッセージ・カタログ・ファイル .\"O .cc C++ source - .cc C++ ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É + .cc C++ のソース・コード .\"O .cf configuration file - .cf ÀßÄê¥Õ¥¡¥¤¥ë + .cf 設定ファイル .\"O .cfg configuration file - .cfg ÀßÄê¥Õ¥¡¥¤¥ë + .cfg 設定ファイル .\"O .cgi WWW content generating script or program - .cgi WWW ¤Î¥³¥ó¥Æ¥ó¥Ä¤òºîÀ®¤¹¤ë¥×¥í¥°¥é¥à + .cgi WWW のコンテンツを作成するプログラム .\"O .cls LaTeX Class definition - .cls LaTeX ¤Î¥¯¥é¥¹ÄêµÁ¥Õ¥¡¥¤¥ë + .cls LaTeX のクラス定義ファイル .\"O .class Java compiled byte-code - .class Java ¤Î¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥Ð¥¤¥È¥³¡¼¥É + .class Java のコンパイルされたバイトコード .\"O .conf configuration file - .conf ÀßÄê¥Õ¥¡¥¤¥ë + .conf 設定ファイル .\"O .config configuration file - .config ÀßÄê¥Õ¥¡¥¤¥ë + .config 設定ファイル .\"O .cpp equivalent to \fI.cc\fR - .cpp \fI.cc\fR ¤ÈƱ¤¸ + .cpp \fI.cc\fR と同じ .\"O .csh \fBcsh\fP(1) shell script - .csh \fBcsh\fP(1) ¥·¥§¥ë¡¦¥¹¥¯¥ê¥×¥È + .csh \fBcsh\fP(1) シェル・スクリプト .\"O .cxx equivalent to \fI.cc\fR - .cxx \fI.cc\fR ¤ÈƱ¤¸ + .cxx \fI.cc\fR と同じ .\"O .dat data file - .dat ¥Ç¡¼¥¿¡¦¥Õ¥¡¥¤¥ë + .dat データ・ファイル .\"O .deb Debian software package - .deb Debian ¤Î¥½¥Õ¥È¥¦¥§¥¢¡¦¥Ñ¥Ã¥±¡¼¥¸ + .deb Debian のソフトウェア・パッケージ .\"O .def Modula-2 source for definition modules - .def Modula-2 ¥½¡¼¥¹¤Î¥â¥¸¥å¡¼¥ëÄêµÁ¥Õ¥¡¥¤¥ë + .def Modula-2 ソースのモジュール定義ファイル .\"O .def other definition files - .def ¤½¤Î¾¤ÎÄêµÁ¥Õ¥¡¥¤¥ë + .def その他の定義ファイル .\"O .desc initial part of mail message unpacked with .\"O \fBmunpack\fP(1) - .desc \fBmunpack\fP(1) ¤Ç¥¢¥ó¥Ñ¥Ã¥¯¤µ¤ì¤¿¥á¡¼¥ë¤ÎºÇ½é¤ÎÉôʬ + .desc \fBmunpack\fP(1) でアンパックされたメールの最初の部分 .\"O .diff file differences (\fBdiff\fP(1) command output) - .diff ¥Õ¥¡¥¤¥ëº¹Ê¬ (\fBdiff\fP(1) ¥³¥Þ¥ó¥É¤Î½ÐÎÏ) + .diff ファイル差分 (\fBdiff\fP(1) コマンドの出力) .\"O .dir dbm data base directory file - .dir dbm ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Ç¥£¥ì¥¯¥È¥ê¡¦¥Õ¥¡¥¤¥ë + .dir dbm データベースのディレクトリ・ファイル .\"O .doc documentation file - .doc ¥É¥­¥å¥á¥ó¥È¡¦¥Õ¥¡¥¤¥ë + .doc ドキュメント・ファイル .\"O .dsc Debian Source Control (source package) - .dsc Debian ¤Î¥½¡¼¥¹¡¦¥³¥ó¥È¥í¡¼¥ë¥Õ¥¡¥¤¥ë - (¥½¡¼¥¹¡¦¥Ñ¥Ã¥±¡¼¥¸) + .dsc Debian のソース・コントロールファイル + (ソース・パッケージ) .\"O .dtx LaTeX package source file - .dtx LaTeX ¥Ñ¥Ã¥±¡¼¥¸¤Î¥½¡¼¥¹ + .dtx LaTeX パッケージのソース .\"O .dvi TeX's device independent output - .dvi TeX ¤Î¥Ç¥Ð¥¤¥¹ÆÈΩ½ÐÎÏ¥Õ¥¡¥¤¥ë + .dvi TeX のデバイス独立出力ファイル .\"O .el Emacs-Lisp source - .el Emacs-Lisp ¤Î¥½¡¼¥¹ + .el Emacs-Lisp のソース .\"O .elc compiled Emacs-Lisp source - .elc ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿ Emacs-Lisp¤Î¥³¡¼¥É + .elc コンパイルされた Emacs-Lispのコード .\"O .eps encapsulated PostScript - .eps ¥«¥×¥»¥ë²½¤µ¤ì¤¿PostScript + .eps カプセル化されたPostScript .\"O .exp Expect source code - .exp Expect ¤Î¥½¡¼¥¹¥³¡¼¥É + .exp Expect のソースコード .\"O .f Fortran source - .f Fortran ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É + .f Fortran のソース・コード .\"O .f77 Fortran 77 source - .f77 Fortran 77 ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É + .f77 Fortran 77 のソース・コード .\"O .f90 Fortran 90 source - .f90 Fortran 90 ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É + .f90 Fortran 90 のソース・コード .\"O .fas precompiled Common-Lisp - .fas ¥×¥ê¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿ Common-Lisp¤Î¥³¡¼¥É + .fas プリコンパイルされた Common-Lispのコード .\"O .fi Fortran include files - .fi ¥Õ¥©¡¼¥È¥é¥ó¤Î¥¤¥ó¥¯¥ë¡¼¥É¡¦¥Õ¥¡¥¤¥ë + .fi フォートランのインクルード・ファイル .\"O .fig FIG image file (used by \fBxfig\fP(1)) - .fig FIG ¥¤¥á¡¼¥¸¡¦¥Õ¥¡¥¤¥ë (\fBxfig\fR(1) ¤Ç»ÈÍѤµ¤ì¤ë) + .fig FIG イメージ・ファイル (\fBxfig\fR(1) で使用される) .\"O .fmt TeX format file - .fmt TeX ¥Õ¥©¡¼¥Þ¥Ã¥È¡¦¥Õ¥¡¥¤¥ë + .fmt TeX フォーマット・ファイル .\"O .gif Compuserve Graphics Image File format - .gif ¥°¥é¥Õ¥£¥Ã¥¯¡¦¥¤¥á¡¼¥¸ (Compuserve Graphics Image File) + .gif グラフィック・イメージ (Compuserve Graphics Image File) .\"O .gmo GNU format message catalog - .gmo GNU ¥Õ¥©¡¼¥Þ¥Ã¥È¡¦¥á¥Ã¥»¡¼¥¸¡¦¥«¥¿¥í¥° + .gmo GNU フォーマット・メッセージ・カタログ .\"O .gsf Ghostscript fonts - .gsf ghostscript ¤Î¥Õ¥©¥ó¥È + .gsf ghostscript のフォント .\"O .gz file compressed using \fBgzip\fP(1) - .gz \fBgzip\fP(1) ¤ò»ÈÍѤ·¤Æ°µ½Ì¤µ¤ì¤¿¥Õ¥¡¥¤¥ë + .gz \fBgzip\fP(1) を使用して圧縮されたファイル .\"O .h C or C++ header files - .h C ¤Þ¤¿¤Ï C++ ¤Î¥Ø¥Ã¥À¡¼¡¦¥Õ¥¡¥¤¥ë + .h C または C++ のヘッダー・ファイル .\"O .help help file - .help ¥Ø¥ë¥×¡¦¥Õ¥¡¥¤¥ë + .help ヘルプ・ファイル .\"O .hf equivalent to \fI.help\fP - .hf \fI.help\fP ¤ËƱ¤¸ + .hf \fI.help\fP に同じ .\"O .hlp equivalent to \fI.help\fP - .hlp \fI.help\fP ¤ËƱ¤¸ + .hlp \fI.help\fP に同じ .\"O .htm poor man's \fI.html\fP - .htm ÉÏ˳¿Í¤Î \fI.html\fP + .htm 貧乏人の \fI.html\fP .\"O .html HTML document used with the World Wide Web - .html World Wide Web ¤Ç»ÈÍѤ¹¤ë HTML ¤Îʸ½ñ + .html World Wide Web で使用する HTML の文書 .\"O .hqx 7-bit encoded Macintosh file - .hqx 7 ¥Ó¥Ã¥È¥¨¥ó¥³¡¼¥É¤µ¤ì¤¿ Macintosh ¥Õ¥¡¥¤¥ë + .hqx 7 ビットエンコードされた Macintosh ファイル .\"O .i C source after preprocessing - .i ¥×¥ê¥×¥í¥»¥¹¤ò¹Ô¤Ê¤Ã¤¿ C ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É + .i プリプロセスを行なった C のソース・コード .\"O .icon bitmap source - .icon ¥Ó¥Ã¥È¥Þ¥Ã¥×¤Î¥½¡¼¥¹ + .icon ビットマップのソース .\"O .idx reference or datum-index file for hypertext .\"O or database system - .idx ¥Ï¥¤¥Ñ¡¼¥Æ¥­¥¹¥È¤ä¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¡¦¥Õ¥¡¥¤¥ë + .idx ハイパーテキストやデータベースのインデックス・ファイル .\"O .image bitmap source - .image ¥Ó¥Ã¥È¥Þ¥Ã¥×¤Î¥½¡¼¥¹ + .image ビットマップのソース .\"O .in configuration template, especially for GNU Autoconf - .in ¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Î¥Æ¥ó¥×¥ì¡¼¥È (ÆÃ¤Ë GNU Autoconf) + .in コンフィギュレーションのテンプレート (特に GNU Autoconf) .\"O .info files for the Emacs info browser - .info Emacs info ¥Õ¥¡¥¤¥ë + .info Emacs info ファイル .\"O .info-[0-9]+ split info files - .info-[0-9]+ ʬ³ä¤µ¤ì¤¿ info ¥Õ¥¡¥¤¥ë + .info-[0-9]+ 分割された info ファイル .\"O .ins LaTeX package install file for docstrip - .ins docstrip ¤Î LaTeX ¥Ñ¥Ã¥±¡¼¥¸¡¦¥¤¥ó¥¹¥È¡¼¥ë¡¦¥Õ¥¡¥¤¥ë + .ins docstrip の LaTeX パッケージ・インストール・ファイル .\"O .itcl itcl source code; .\"O itcl ([incr Tcl]) is an OO extension of tcl - .itcl itcl ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É - itcl (incr tcl) ¤Ï tcl ¤Î OO ³ÈÄ¥ + .itcl itcl のソース・コード + itcl (incr tcl) は tcl の OO 拡張 .\"O .java a Java source file - .java Java ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É + .java Java のソース・コード .\"O .jpeg Joint Photographic Experts Group format - .jpeg ¥°¥é¥Õ¥£¥Ã¥¯¥¤¥á¡¼¥¸ (Joint Photographic Experts Group) + .jpeg グラフィックイメージ (Joint Photographic Experts Group) .\"O .jpg poor man's \fI.jpeg\fP - .jpg ÉÏ˳¿Í¤Î \fI.jpeg\fP + .jpg 貧乏人の \fI.jpeg\fP .\"O .kmap \fBlyx\fP(1) keymap - .kmap \fBlyx\fP(1) ¤Î¥­¡¼¥Þ¥Ã¥× + .kmap \fBlyx\fP(1) のキーマップ .\"O .l equivalent to \fI.lex\fP or \fI.lisp\fP - .l \fI.lex\fP ¤Þ¤¿¤Ï \fI.lisp\fP ¤ËƱ¤¸ + .l \fI.lex\fP または \fI.lisp\fP に同じ .\"O .lex \fBlex\fP(1) or \fBflex\fP(1) files - .lex \fBlex\fP(1) ¤Þ¤¿¤Ï \fBflex\fP(1) ¥Õ¥¡¥¤¥ë + .lex \fBlex\fP(1) または \fBflex\fP(1) ファイル .\"O .lha lharc archive - .lha lharc ¥¢¡¼¥«¥¤¥Ö + .lha lharc アーカイブ .\"O .lib Common-Lisp library - .lib Common-Lisp ¤Î¥é¥¤¥Ö¥é¥ê + .lib Common-Lisp のライブラリ .\"O .lisp Lisp source - .lisp Lisp ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É + .lisp Lisp のソース・コード .\"O .ln files for use with \fBlint\fP(1) - .ln \fBlint\fP(1) ¤Ç»ÈÍѤ¹¤ë¤¿¤á¤Î¥Õ¥¡¥¤¥ë + .ln \fBlint\fP(1) で使用するためのファイル .\"O .log log file, in particular produced by TeX - .log ¥í¥°¡¦¥Õ¥¡¥¤¥ë, ÆÃ¤Ë TeX ¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤ë + .log ログ・ファイル, 特に TeX によって生成される .\"O .lsm Linux Software Map entry - .lsm Linux ¥½¥Õ¥È¥¦¥§¥¢¡¦¥Þ¥Ã¥×¤Î¸«½Ð¤· + .lsm Linux ソフトウェア・マップの見出し .\"O .lsp Common-Lisp source - .lsp Common-Lisp ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É + .lsp Common-Lisp のソース・コード .\"O .lzh lharc archive - .lzh lharc ¥¢¡¼¥«¥¤¥Ö + .lzh lharc アーカイブ .\"O .m Objective-C source code - .m Objective-C ¥½¡¼¥¹¡¦¥³¡¼¥É + .m Objective-C ソース・コード .\"O .m4 \fBm4\fP(1) source - .m4 \fBm4\fP(1) ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É + .m4 \fBm4\fP(1) のソース・コード .\"O .mac macro files for various programs - .mac ¤¤¤í¤¤¤í¤Ê¥×¥í¥°¥é¥à¤Ç¤Î¥Þ¥¯¥í¡¦¥Õ¥¡¥¤¥ë + .mac いろいろなプログラムでのマクロ・ファイル .\"O .man manual page (usually source rather than formatted) - .man ¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸ (ÂçÄñ¤Ï¥Õ¥©¡¼¥Þ¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤) + .man マニュアル・ページ (大抵はフォーマットされていない) .\"O .map map files for various programs - .map ³Æ¼ï¥×¥í¥°¥é¥à¤Î¥Þ¥Ã¥×¡¦¥Õ¥¡¥¤¥ë + .map 各種プログラムのマップ・ファイル .\"O .me Nroff source using the me macro package - .me me ¥Þ¥¯¥í¡¦¥Ñ¥Ã¥±¡¼¥¸¤ò»ÈÍѤ·¤¿ Nroff ¤Î¥½¡¼¥¹ + .me me マクロ・パッケージを使用した Nroff のソース .\"O .mf Metafont (font generator for TeX) source - .mf ¥á¥¿¥Õ¥©¥ó¥È (TeX ¤Î¥Õ¥©¥ó¥ÈºîÀ®¥Ä¡¼¥ë) ¤Î¥½¡¼¥¹ + .mf メタフォント (TeX のフォント作成ツール) のソース .\"O .mgp MagicPoint file - .mgp MagicPoint ¥Õ¥¡¥¤¥ë + .mgp MagicPoint ファイル .\"O .mm sources for \fBgroff\fP(1) in mm - format - .mm mm ¥Þ¥¯¥í¤ò»ÈÍѤ·¤¿ \fBgroff\fP(1) ¤Î¥½¡¼¥¹ + .mm mm マクロを使用した \fBgroff\fP(1) のソース .\"O .mo Message catalog binary file - .mo ¥á¥Ã¥»¡¼¥¸¡¦¥«¥¿¥í¥°¤Î¥Ð¥¤¥Ê¥ê + .mo メッセージ・カタログのバイナリ .\"O .mod Modula-2 source for implementation modules - .mod Modula-2 ¤Î¥â¥¸¥å¡¼¥ë¼ÂÁõ¤Î¤¿¤á¤Î¥½¡¼¥¹¡¦¥³¡¼¥É + .mod Modula-2 のモジュール実装のためのソース・コード .\"O .mov (quicktime) movie - .mov (quicktime) ¥à¡¼¥Ó¡¼ + .mov (quicktime) ムービー .\"O .mp Metapost source - .mp Metapost ¤Î¥½¡¼¥¹ + .mp Metapost のソース .\"O .mp2 MPEG Layer 2 (audio) file - .mp2 MPEG ¥ì¥¤¥ä¡¼ 2 (¥ª¡¼¥Ç¥£¥ª) ¥Õ¥¡¥¤¥ë + .mp2 MPEG レイヤー 2 (オーディオ) ファイル .\"O .mp3 MPEG Layer 3 (audio) file - .mp3 MPEG ¥ì¥¤¥ä¡¼ 3 (¥ª¡¼¥Ç¥£¥ª) ¥Õ¥¡¥¤¥ë + .mp3 MPEG レイヤー 3 (オーディオ) ファイル .\"O .mpeg movie file - .mpeg ¥à¡¼¥Ó¡¼¡¦¥Õ¥¡¥¤¥ë + .mpeg ムービー・ファイル .\"O .o object file - .o ¥ª¥Ö¥¸¥§¥¯¥È¡¦¥Õ¥¡¥¤¥ë + .o オブジェクト・ファイル .\"O .old old or backup file - .old ¸Å¤¤¥Õ¥¡¥¤¥ë¡¢¤Þ¤¿¤Ï¥Ð¥Ã¥¯¥¢¥Ã¥×¡¦¥Õ¥¡¥¤¥ë + .old 古いファイル、またはバックアップ・ファイル .\"O .orig backup (original) version of a file, from \fBpatch\fP(1) - .orig \fBpatch\fP(1) ¤Ë¤è¤ë (¥ª¥ê¥¸¥Ê¥ë¤Î) ¥Ð¥Ã¥¯¥¢¥Ã¥×¡¦¥Õ¥¡¥¤¥ë + .orig \fBpatch\fP(1) による (オリジナルの) バックアップ・ファイル .\"O .out output file, often executable program (a.out) - .out ½ÐÎÏ¥Õ¥¡¥¤¥ë¡¢ÂçÄñ¤Ï¼Â¹Ô¥×¥í¥°¥é¥à¤Ç¤¢¤ë (a.out) + .out 出力ファイル、大抵は実行プログラムである (a.out) .\"O .p Pascal source - .p pascal ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É + .p pascal のソース・コード .\"O .pag dbm data base data file - .pag dbm ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Ç¡¼¥¿¡¦¥Õ¥¡¥¤¥ë + .pag dbm データベースのデータ・ファイル .\"O .patch file differences for \fBpatch\fP(1) - .patch \fBpatch\fP(1) ¤Ç»ÈÍѤ¹¤ë¤¿¤á¤Îº¹Ê¬¥Õ¥¡¥¤¥ë + .patch \fBpatch\fP(1) で使用するための差分ファイル .\"O .pbm portable bitmap format - .pbm ¥°¥é¥Õ¥£¥Ã¥¯¡¦¥¤¥á¡¼¥¸ (portable bitmap format) + .pbm グラフィック・イメージ (portable bitmap format) .\"O .pcf X11 font files - .pcf X11 ¤Î¥Õ¥©¥ó¥È¡¦¥Õ¥¡¥¤¥ë + .pcf X11 のフォント・ファイル .\"O .pdf Adobe Portable Data Format .\"O (use Acrobat/\fBacroread\fP or \fBxpdf\fP) .pdf Adobe Portable Data Format - (Acrobat/\fBacroread\fP ¤ä \fBxpdf\fP ¤Ç»ÈÍѤ¹¤ë) + (Acrobat/\fBacroread\fP や \fBxpdf\fP で使用する) .\"O .perl Perl source (see .ph, .pl and .pm) - .perl Perl ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É (.ph, .pl, .pm ¤ò»²¾È) + .perl Perl のソース・コード (.ph, .pl, .pm を参照) .\"O .pfa PostScript font definition files, ASCII format - .pfa PostScript¤Î¥Õ¥©¥ó¥ÈÄêµÁ (ASCII ¥Õ¥©¡¼¥Þ¥Ã¥È) + .pfa PostScriptのフォント定義 (ASCII フォーマット) .\"O .pfb PostScript font definition files, binary format - .pfb PostScript¤Î¥Õ¥©¥ó¥ÈÄêµÁ (¥Ð¥¤¥Ê¥ê¡¦¥Õ¥©¡¼¥Þ¥Ã¥È) + .pfb PostScriptのフォント定義 (バイナリ・フォーマット) .\"O .pgm portable greymap format - .pgm ¥°¥é¥Õ¥£¥Ã¥¯¡¦¥¤¥á¡¼¥¸ (portable greymap format) + .pgm グラフィック・イメージ (portable greymap format) .\"O .pgp PGP binary data - .pgp PGP ¤Î¥Ð¥¤¥Ê¥ê¡¦¥Ç¡¼¥¿ + .pgp PGP のバイナリ・データ .\"O .ph Perl header file - .ph Perl ¤Î¥Ø¥Ã¥À¡¼¡¦¥Õ¥¡¥¤¥ë + .ph Perl のヘッダー・ファイル .\"O .php PHP program file - .php PHP ¤Î¥×¥í¥°¥é¥à¡¦¥Õ¥¡¥¤¥ë + .php PHP のプログラム・ファイル .\"O .php3 PHP3 program file - .php3 PHP3 ¤Î¥×¥í¥°¥é¥à¡¦¥Õ¥¡¥¤¥ë + .php3 PHP3 のプログラム・ファイル .\"O .pid File to store daemon PID (e.g., crond.pid) - .pid ¥Ç¡¼¥â¥ó¤Î PID ¤ò³ÊǼ¤·¤¿¥Õ¥¡¥¤¥ë (crond.pid ¤Ê¤É) + .pid デーモンの PID を格納したファイル (crond.pid など) .\"O .pl TeX property list file or Perl library file - .pl TeX ¤Î¥×¥í¥Ñ¥Æ¥£¡¦¥ê¥¹¥È¤Þ¤¿¤Ï Perl ¤Î¥é¥¤¥Ö¥é¥ê + .pl TeX のプロパティ・リストまたは Perl のライブラリ .\"O .pm Perl module - .pm Perl ¤Î¥â¥¸¥å¡¼¥ë + .pm Perl のモジュール .\"O .png Portable Network Graphics file - .png ¥°¥é¥Õ¥£¥Ã¥¯¡¦¥¤¥á¡¼¥¸ (Portable Network Graphics) + .png グラフィック・イメージ (Portable Network Graphics) .\"O .po Message catalog source - .po ¥á¥Ã¥»¡¼¥¸¡¦¥«¥¿¥í¥°¤Î¥½¡¼¥¹ + .po メッセージ・カタログのソース .\"O .pod \fBperldoc\fP(1) file - .pod \fBperldoc\fP(1) ¥Õ¥¡¥¤¥ë + .pod \fBperldoc\fP(1) ファイル .\"O .ppm portable pixmap format - .ppm ¥°¥é¥Õ¥£¥Ã¥¯¡¦¥¤¥á¡¼¥¸ (portable pixmap format) + .ppm グラフィック・イメージ (portable pixmap format) .\"O .pr bitmap source - .pr ¥Ó¥Ã¥È¥Þ¥Ã¥×¤Î¥½¡¼¥¹ + .pr ビットマップのソース .\"O .ps PostScript file - .ps PostScript ¥Õ¥¡¥¤¥ë + .ps PostScript ファイル .\"O .py Python source - .py python ¤Î¥½¡¼¥¹ + .py python のソース .\"O .pyc compiled python - .pyc ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿ python + .pyc コンパイルされた python .\"O .qt quicktime movie - .qt quicktime ¥à¡¼¥Ó¡¼ + .qt quicktime ムービー .\"O .r RATFOR source (obsolete) - .r RATFOR ¤Î¥½¡¼¥¹ (ÇѸì) + .r RATFOR のソース (廃語) .\"O .rej patches that \fBpatch\fP(1) couldn't apply - .rej \fBpatch\fP(1) ¤Ë¼ºÇÔ¤·¤¿ pacth ¥Õ¥¡¥¤¥ë + .rej \fBpatch\fP(1) に失敗した pacth ファイル .\"O .rpm RPM software package - .rpm RPM ¤Î¥½¥Õ¥È¥¦¥§¥¢¡¦¥Ñ¥Ã¥±¡¼¥¸ + .rpm RPM のソフトウェア・パッケージ .\"O .rtf Rich Text Format file - .rtf ¥ê¥Ã¥Á¡¦¥Æ¥­¥¹¥È¡¦¥Õ¥©¡¼¥Þ¥Ã¥È + .rtf リッチ・テキスト・フォーマット .\"O .rules rules for something - .rules ²¿¤«¤Î¤¿¤á¤Î¥ë¡¼¥ë + .rules 何かのためのルール .\"O .s assembler source - .s ¥¢¥»¥ó¥Ö¥é¤Î¥½¡¼¥¹ + .s アセンブラのソース .\"O .sa stub libraries for a.out shared libraries - .sa a.out ¶¦Í­¥é¥¤¥Ö¥é¥ê¤Î¤¿¤á¤Î¥¹¥¿¥Ö¡¦¥é¥¤¥Ö¥é¥ê + .sa a.out 共有ライブラリのためのスタブ・ライブラリ .\"O .sc \fBsc\fP(1) spreadsheet commands - .sc \fBsc\fP(1) ¤Î¥¹¥×¥ì¥Ã¥É¥·¡¼¥ÈÌ¿Îá + .sc \fBsc\fP(1) のスプレッドシート命令 .\"O .scm Scheme source code - .scm Scheme ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É + .scm Scheme のソース・コード .\"O .sed sed source file - .sed sed ¤Î¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë + .sed sed のソース・ファイル .\"O .sgml SGML source file - .sgml SGML ¥½¡¼¥¹ + .sgml SGML ソース .\"O .sh \fBsh\fP(1) scripts - .sh \fBsh\fP(1) ¤Î¥¹¥¯¥ê¥×¥È + .sh \fBsh\fP(1) のスクリプト .\"O .shar archive created by the \fBshar\fP(1) utility - .shar \fBshar\fP(1) ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ÇºîÀ®¤µ¤ì¤¿¥¢¡¼¥«¥¤¥Ö + .shar \fBshar\fP(1) ユーティリティで作成されたアーカイブ .\"O .so Shared library or dynamically loadable object - .so ¶¦Í­¥é¥¤¥Ö¥é¥ê¤Þ¤¿¤ÏưŪ¥í¡¼¥É¡¦¥ª¥Ö¥¸¥§¥¯¥È + .so 共有ライブラリまたは動的ロード・オブジェクト .\"O .sql SQL source - .sql SQL ¤Î¥½¡¼¥¹ + .sql SQL のソース .\"O .sqml SQML schema or query program - .sqml SQML ¤Î schema ¤Þ¤¿¤Ï query program + .sqml SQML の schema または query program .\"O .sty LaTeX style files - .sty LaTeX ¤Î¥¹¥¿¥¤¥ë¡¦¥Õ¥¡¥¤¥ë + .sty LaTeX のスタイル・ファイル .\"O .sym Modula-2 compiled definition modules - .sym Modula-2 ¤Î¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿ÄêµÁ¥â¥¸¥å¡¼¥ë + .sym Modula-2 のコンパイルされた定義モジュール .\"O .tar archive created by the \fBtar\fP(1) utility - .tar \fBtar\fP(1) ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ÇºîÀ®¤µ¤ì¤¿¥¢¡¼¥«¥¤¥Ö + .tar \fBtar\fP(1) ユーティリティで作成されたアーカイブ .\"O .tar.Z tar(1) archive compressed with \fBcompress\fP(1) - .tar.Z \fBcompress\fP(1) ¤Ç°µ½Ì¤µ¤ì¤¿ \fBtar\fP(1) ¥¢¡¼¥«¥¤¥Ö + .tar.Z \fBcompress\fP(1) で圧縮された \fBtar\fP(1) アーカイブ .\"O .tar.bz2 tar(1) archive compressed with \fBbzip2\fP(1) - .tar.bz2 \fBbzip2\fP(1) ¤Ç°µ½Ì¤µ¤ì¤¿ \fBtar\fP(1) ¥¢¡¼¥«¥¤¥Ö + .tar.bz2 \fBbzip2\fP(1) で圧縮された \fBtar\fP(1) アーカイブ .\"O .tar.gz tar(1) archive compressed with \fBgzip\fP(1) - .tar.gz \fBgzip\fP(1) ¤Ç°µ½Ì¤µ¤ì¤¿ \fBtar\fP(1) ¥¢¡¼¥«¥¤¥Ö + .tar.gz \fBgzip\fP(1) で圧縮された \fBtar\fP(1) アーカイブ .\"O .taz tar(1) archive compressed with \fBcompress\fP(1) - .taz \fBcompress\fP(1) ¤Ç°µ½Ì¤µ¤ì¤¿ \fBtar\fP(1) ¥¢¡¼¥«¥¤¥Ö + .taz \fBcompress\fP(1) で圧縮された \fBtar\fP(1) アーカイブ .\"O .tcl tcl source code - .tcl tcl ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É + .tcl tcl のソース・コード .\"O .tex TeX or LaTeX source - .tex TeX ¤Þ¤¿¤Ï LaTeX ¤Î¥½¡¼¥¹ + .tex TeX または LaTeX のソース .\"O .texi equivalent to \fI.texinfo\fP - .texi \fI.texinfo\fP ¤ËƱ¤¸ + .texi \fI.texinfo\fP に同じ .\"O .texinfo Texinfo documentation source - .texinfo texinfo ʸ½ñ¤Î¥½¡¼¥¹ + .texinfo texinfo 文書のソース .\"O .text text file - .text ¥Æ¥­¥¹¥È¡¦¥Õ¥¡¥¤¥ë + .text テキスト・ファイル .\"O .tfm TeX font metric file - .tfm TeX ¤Î¥Õ¥©¥ó¥È¡¦¥á¥È¥ê¥Ã¥¯ + .tfm TeX のフォント・メトリック .\"O .tgz tar archive compressed with \fBgzip\fP(1) - .tgz \fRgzip\fP(1)¤Ç°µ½Ì¤µ¤ì¤¿ \fRtar\fP(1) ¥¢¡¼¥«¥¤¥Ö + .tgz \fRgzip\fP(1)で圧縮された \fRtar\fP(1) アーカイブ .\"O .tif poor man's \fI.tiff\fP - .tif ÉÏ˳¿Í¤Î \fI.tiff\fP + .tif 貧乏人の \fI.tiff\fP .\"O .tiff Tagged Image File Format - .tiff ¥°¥é¥Õ¥£¥Ã¥¯¡¦¥¤¥á¡¼¥¸ (Tagged Image File Format) + .tiff グラフィック・イメージ (Tagged Image File Format) .\"O .tk tcl/tk script - .tk tcl/tk ¥¹¥¯¥ê¥×¥È + .tk tcl/tk スクリプト .\"O .tmp temporary file - .tmp °ì»þ¥Õ¥¡¥¤¥ë + .tmp 一時ファイル .\"O .tmpl template files - .tmpl ¥Æ¥ó¥×¥ì¡¼¥È¡¦¥Õ¥¡¥¤¥ë + .tmpl テンプレート・ファイル .\"O .txt equivalent to \fI.text\fP - .txt \fI.text\fP ¤ËƱ¤¸ + .txt \fI.text\fP に同じ .\"O .uu equivalent to \fI.uue\fP - .uu \fI.uue\fP ¤ËƱ¤¸ + .uu \fI.uue\fP に同じ .\"O .uue binary file encoded with \fBuuencode\fP(1) - .uue \fBuuencode\fP(1) ¤ÇÉä¹æ²½¤µ¤ì¤¿¥Ð¥¤¥Ê¥ê¡¦¥Õ¥¡¥¤¥ë + .uue \fBuuencode\fP(1) で符号化されたバイナリ・ファイル .\"O .vf TeX virtual font file - .vf TeX ¤Î²¾ÁÛ¥Õ¥©¥ó¥È¡¦¥Õ¥¡¥¤¥ë + .vf TeX の仮想フォント・ファイル .\"O .vpl TeX virtual property list file - .vpl TeX ¤Î²¾ÁÛ¥×¥í¥Ñ¥Æ¥£¡¦¥ê¥¹¥È¡¦¥Õ¥¡¥¤¥ë + .vpl TeX の仮想プロパティ・リスト・ファイル .\"O .w Silvio Levi's CWEB - .w Silvio Levi ¤Î CWEB + .w Silvio Levi の CWEB .\"O .wav wave sound file - .wav ¥¦¥§¡¼¥Ö¡¦¥µ¥¦¥ó¥É¡¦¥Õ¥¡¥¤¥ë + .wav ウェーブ・サウンド・ファイル .\"O .web Donald Knuth's WEB - .web Donald Knuth ¤Î WEB + .web Donald Knuth の WEB .\"O .wml Source file for Web Meta Language - .wml Web Meta Language ¤Î¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë + .wml Web Meta Language のソース・ファイル .\"O .xbm X11 bitmap source - .xbm X11 ¥Ó¥Ã¥È¥Þ¥Ã¥×¤Î¥½¡¼¥¹ + .xbm X11 ビットマップのソース .\"O .xcf GIMP graphic - .xcf GIMP ¥°¥é¥Õ¥£¥Ã¥¯¡¦¥Õ¥¡¥¤¥ë + .xcf GIMP グラフィック・ファイル .\"O .xml eXtended Markup Language file - .xml XML (³ÈÄ¥µ­½Ò¸À¸ì)¥Õ¥¡¥¤¥ë + .xml XML (拡張記述言語)ファイル .\"O .xpm X11 pixmap source - .xpm X11 ¥Ô¥¯¥¹¥Þ¥Ã¥×¤Î¥½¡¼¥¹ + .xpm X11 ピクスマップのソース .\"O .xs Perl xsub file produced by h2xs - .xs h2xs ¤ÇÀ¸À®¤µ¤ì¤ë Perl xsub ¥Õ¥¡¥¤¥ë + .xs h2xs で生成される Perl xsub ファイル .\"O .xsl XSL stylesheet - .xsl XSL ¥¹¥¿¥¤¥ë¥·¡¼¥È + .xsl XSL スタイルシート .\"O .y \fByacc\fP(1) or \fBbison\fP(1) (parser generator) files - .y \fByacc\fP(1) ¤Þ¤¿¤Ï \fBbison\fP(1) ¤Î¥Õ¥¡¥¤¥ë + .y \fByacc\fP(1) または \fBbison\fP(1) のファイル .\"O .z File compressed using \fBpack\fP(1) (or an old \fBgzip\fP(1)) - .z \fBpack\fP(1) (¤Þ¤¿¤Ï¸Å¤¤ \fBgzip\fP(1)) ¤Ç°µ½Ì¤µ¤ì¤¿¥Õ¥¡¥¤¥ë + .z \fBpack\fP(1) (または古い \fBgzip\fP(1)) で圧縮されたファイル .\"O .zip \fBzip\fP(1) archive - .zip \fBzip\fP(1) ¥¢¡¼¥«¥¤¥Ö + .zip \fBzip\fP(1) アーカイブ .\"O .zoo \fBzoo\fP(1) archive - .zoo \fBzoo\fP(1) ¥¢¡¼¥«¥¤¥Ö + .zoo \fBzoo\fP(1) アーカイブ .\"O ~ Emacs or \fBpatch\fP(1) backup file - ~ Emacs ¤Þ¤¿¤Ï \fBpatch\fP(1) ¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×¡¦¥Õ¥¡¥¤¥ë + ~ Emacs または \fBpatch\fP(1) のバックアップ・ファイル .\"O rc startup (`run control') file, e.g., \fI.newsrc\fP - rc µ¯Æ°¥Õ¥¡¥¤¥ë (`run control') (Îã \fI.newsrc\fP) + rc 起動ファイル (`run control') (例 \fI.newsrc\fP) .TE .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .\"O General UNIX conventions. -°ìÈÌŪ¤Ê UNIX ¤ÎºîË¡¡£ +一般的な UNIX の作法。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O This list is not exhaustive. -¤³¤Î¥ê¥¹¥È¤Ï´°Á´¤Ç¤Ï¤Ê¤¤¡£ +このリストは完全ではない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR file (1), .BR make (1) diff --git a/draft/man7/svipc.7 b/draft/man7/svipc.7 index 628a3932..2044931b 100644 --- a/draft/man7/svipc.7 +++ b/draft/man7/svipc.7 @@ -25,19 +25,19 @@ .\" Translated Wed Feb 11 21:29:14 JST 1998 .\" by HANATAKA Shinya .\" -.\"WORD: semaphore set ¥»¥Þ¥Õ¥©¡¼½¸¹ç -.\"WORD: shared memory segment ¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È -.\"WORD: message queue ¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼ +.\"WORD: semaphore set セマフォー集合 +.\"WORD: shared memory segment 共有メモリ・セグメント +.\"WORD: message queue メッセージ・キュー .\" .\" FIXME There is now duplication of some of the information .\" below in semctl.2, msgctl.2, and shmctl.2 -- MTK, Nov 04 .TH SVIPC 7 2009-01-26 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O svipc \- System V interprocess communication mechanisms -svipc \- System V ¥×¥í¥»¥¹´ÖÄÌ¿®µ¡¹½ +svipc \- System V プロセス間通信機構 .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .B #include .B #include @@ -46,40 +46,40 @@ svipc \- System V .B #include .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This manual page refers to the Linux implementation of the System V .\"O interprocess communication (IPC) mechanisms: .\"O message queues, semaphore sets, and shared memory segments. .\"O In the following, the word .\"O .I resource .\"O means an instantiation of one among such mechanisms. -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤Ï System V ¥×¥í¥»¥¹´ÖÄÌ¿® -(interprocess communication; IPC) µ¡¹½¤Î Linux ¤Ë -¤ª¤±¤ë¼ÂÁõ¤òÀâÌÀ¤¹¤ë¡£ -¤³¤Î¥×¥í¥»¥¹´ÖÄÌ¿®µ¡¹½¤Ë¤Ï¡¢ -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼ (message queue)¡¢¥»¥Þ¥Õ¥©¡¼½¸¹ç (semaphore set)¡¢ -¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È (shared memory segment) ¤Ê¤É¤¬¤¢¤ë¡£°Ê²¼¤Ç -.I "»ñ¸» (resource)" -¤È¤¤¤¦ÍѸì¤ò»ÈÍѤ·¤¿¾ì¹ç¤Ë¤Ï¤³¤ì¤é¤Îµ¡¹½¤Î¤É¤ì¤«¤ò°ÕÌ£¤¹¤ë¡£ +このマニュアル・ページは System V プロセス間通信 +(interprocess communication; IPC) 機構の Linux に +おける実装を説明する。 +このプロセス間通信機構には、 +メッセージ・キュー (message queue)、セマフォー集合 (semaphore set)、 +共有メモリ・セグメント (shared memory segment) などがある。以下で +.I "資源 (resource)" +という用語を使用した場合にはこれらの機構のどれかを意味する。 .\"O .SS Resource Access Permissions -.SS »ñ¸»¤Ø¤Î¥¢¥¯¥»¥¹µö²Ä +.SS 資源へのアクセス許可 .\"O For each resource, the system uses a common structure of type .\"O .I "struct ipc_perm" .\"O to store information needed in determining permissions to perform an .\"O IPC operation. -¥·¥¹¥Æ¥à¤Î¤½¤ì¤¾¤ì¤Î»ñ¸»¤Ï¡¢IPC ¤Ø¤ÎÁàºî¤òµö²Ä¤¹¤ë¤«¤É¤¦¤«¤ò·èÄꤹ¤ë -¤¿¤á¤Î¾ðÊó¤ò¶¦Ä̤ι½Â¤ÂÎ +システムのそれぞれの資源は、IPC への操作を許可するかどうかを決定する +ための情報を共通の構造体 .I "struct ipc_perm" -¤Ë³ÊǼ¤·¤Æ»ÈÍѤ¹¤ë¡£ +に格納して使用する。 .\"O The .\"O .I ipc_perm .\"O structure, defined by the .\"O .I .\"O system header file, includes the following members: .I ipc_perm -¹½Â¤ÂΤϡ¢¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤Î +構造体は、ヘッダーファイルの .I -¤ËÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢°Ê²¼¤Î¥á¥ó¥Ð¡¼¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë: +に定義されており、以下のメンバーが含まれている: .in +4n .nf @@ -89,11 +89,11 @@ struct ipc_perm { .\"O uid_t uid; /* owner user ID */ .\"O gid_t gid; /* owner group ID */ .\"O unsigned short mode; /* r/w permissions */ - uid_t cuid; /* ºîÀ®¼Ô¤Î¥æ¡¼¥¶¡¼ID */ - gid_t cgid; /* ºîÀ®¼Ô¤Î¥°¥ë¡¼¥×ID */ - uid_t uid; /* ½êÍ­¼Ô¤Î¥æ¡¼¥¶¡¼ID */ - gid_t gid; /* ½êÍ­¼Ô¤Î¥°¥ë¡¼¥×ID */ - unsigned short mode; /* Æɤ߽ñ¤­¤Îµö²Ä */ + uid_t cuid; /* 作成者のユーザーID */ + gid_t cgid; /* 作成者のグループID */ + uid_t uid; /* 所有者のユーザーID */ + gid_t gid; /* 所有者のグループID */ + unsigned short mode; /* 読み書きの許可 */ }; .fi .in @@ -106,27 +106,27 @@ struct ipc_perm { .\"O resource for a process executing an IPC system call. .\"O The permissions are interpreted as follows: .I ipc_perm -¹½Â¤ÂΤΠ+構造体の .I mode -¥á¥ó¥Ð¡¼¤Ï°Ê²¼¤Î 9 ¥Ó¥Ã¥È¤Ç¡¢¥×¥í¥»¥¹¤Î IPC ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë -¤Ë¤è¤ë»ñ¸»¤Ø¤Î¥¢¥¯¥»¥¹µö²Ä¤òÄêµÁ¤¹¤ë¡£ -µö²Ä¤Ï°Ê²¼¤Î¤è¤¦¤Ë²ò¼á¤µ¤ì¤ë: +メンバーは以下の 9 ビットで、プロセスの IPC システム・コール +による資源へのアクセス許可を定義する。 +許可は以下のように解釈される: .sp .nf .\"O 0400 Read by user. .\"O 0200 Write by user. - 0400 ¥æ¡¼¥¶¡¼¤Ë¤è¤ëÆɤ߹þ¤ß¡£ - 0200 ¥æ¡¼¥¶¡¼¤Ë¤è¤ë½ñ¤­¹þ¤ß¡£ + 0400 ユーザーによる読み込み。 + 0200 ユーザーによる書き込み。 .sp .5 .\"O 0040 Read by group. .\"O 0020 Write by group. - 0040 ¥°¥ë¡¼¥×¤Ë¤è¤ëÆɤ߹þ¤ß¡£ - 0020 ¥°¥ë¡¼¥×¤Ë¤è¤ë½ñ¤­¹þ¤ß¡£ + 0040 グループによる読み込み。 + 0020 グループによる書き込み。 .sp .5 .\"O 0004 Read by others. .\"O 0002 Write by others. - 0004 ¾¿Í¤Ë¤è¤ëÆɤ߹þ¤ß¡£ - 0002 ¾¿Í¤Ë¤è¤ë½ñ¤­¹þ¤ß¡£ + 0004 他人による読み込み。 + 0002 他人による書き込み。 .fi .PP .\"O Bits 0100, 0010, and 0001 (the execute bits) are unused by the system. @@ -135,44 +135,44 @@ struct ipc_perm { .\"O effectively means .\"O "alter" .\"O for a semaphore set. -¥·¥¹¥Æ¥à¤Ï¥Ó¥Ã¥È 0100, 0010, 0001 (¼Â¹Ô¥Ó¥Ã¥È) ¤Ï»ÈÍѤ·¤Ê¤¤¡£ -¤µ¤é¤Ë¡¢¥»¥Þ¥Õ¥©¡¼¤Î¾ì¹ç¤Ë¤Ï -"½ñ¤­¹þ¤ß(write)" -¤Ï¼ÂºÝ¤Ë¤Ï -"Êѹ¹(alter)" -¤ò°ÕÌ£¤¹¤ë¡£ +システムはビット 0100, 0010, 0001 (実行ビット) は使用しない。 +さらに、セマフォーの場合には +"書き込み(write)" +は実際には +"変更(alter)" +を意味する。 .PP .\"O The same system header file also defines the following symbolic .\"O constants: -Ʊ¤¸¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤Ë¤Ï°Ê²¼¤Î¥·¥ó¥Ü¥ë¤ÎÄêµÁ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë: +同じヘッダーファイルには以下のシンボルの定義が含まれている: .TP 14 .B IPC_CREAT .\"O Create entry if key doesn't exist. -¥­¡¼(key)¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ë¤Ï¿·¤¿¤Ê¥¨¥ó¥È¥ê¤òºîÀ®¤¹¤ë¡£ +キー(key)が存在しない場合には新たなエントリを作成する。 .TP .B IPC_EXCL .\"O Fail if key exists. -¥­¡¼(key)¤¬Â¸ºß¤¹¤ë¾ì¹ç¤Ë¤Ï¼ºÇÔ¤¹¤ë¡£ +キー(key)が存在する場合には失敗する。 .TP .B IPC_NOWAIT .\"O Error if request must wait. -Í׵᤬ÂÔ¤¿¤µ¤ì¤ë¾ì¹ç¤Ë¤Ï¥¨¥é¡¼¤Ë¤Ê¤ë¡£ +要求が待たされる場合にはエラーになる。 .TP .B IPC_PRIVATE .\"O Private key. -¥×¥é¥¤¥Ù¡¼¥È¡¦¥­¡¼¡£ +プライベート・キー。 .TP .B IPC_RMID .\"O Remove resource. -»ñ¸»¤òºï½ü¤¹¤ë¡£ +資源を削除する。 .TP .B IPC_SET .\"O Set resource options. -»ñ¸»¤Ë¥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ë¡£ +資源にオプションを設定する。 .TP .B IPC_STAT .\"O Get resource options. -»ñ¸»¤Î¥ª¥×¥·¥ç¥ó¤ò¼èÆÀ¤¹¤ë¡£ +資源のオプションを取得する。 .PP .\"O Note that .\"O .B IPC_PRIVATE @@ -183,13 +183,13 @@ struct ipc_perm { .\"O .I int .\"O type variable. .B IPC_PRIVATE -¤Ï +は .I key_t -·¿¤Ç¤¢¤ë¡£¤½¤Î¾¤ÎÁ´¤Æ¤Î¥·¥ó¥Ü¥ë¤Ï¥Õ¥é¥°¡¦¥Õ¥£¡¼¥ë¥É¤È¤·¤Æ +型である。その他の全てのシンボルはフラグ・フィールドとして .I int -ÊÑ¿ô¤Ë OR ±é»»¤Ç³ÊǼ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +変数に OR 演算で格納することができる。 .\"O .SS Message Queues -.SS ¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼ +.SS メッセージ・キュー .\"O A message queue is uniquely identified by a positive integer .\"O .RI "(its " msqid ) .\"O and has an associated data structure of type @@ -197,14 +197,14 @@ struct ipc_perm { .\"O defined in .\"O .IR , .\"O containing the following members: -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ÏÀµ¤ÎÀ°¿ô +メッセージ・キューは正の整数 .RI "(" msqid ) -¤Ë¤è¤Ã¤Æ¼±Ê̤µ¤ì¡¢ +によって識別され、 .I -¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¹½Â¤ÂÎ +に定義されている構造体 .IR "struct msqid_ds" -¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¹½Â¤ÂΤϰʲ¼¤Î¥á¥ó¥Ð¡¼¤ò´Þ¤ó¤Ç¤¤¤ë: +に結びつけられている。 +この構造体は以下のメンバーを含んでいる: .in +4n .nf @@ -217,13 +217,13 @@ struct msqid_ds { .\"O time_t msg_stime; /* last msgsnd(2) time */ .\"O time_t msg_rtime; /* last msgrcv(2) time */ .\"O time_t msg_ctime; /* last change time */ - msgqnum_t msg_qnum; /* ¥­¥å¡¼¤Ë¤¢¤ë¥á¥Ã¥»¡¼¥¸¤Î¿ô */ - msglen_t msg_qbytes; /* ¥­¥å¡¼¤ÎºÇÂç¥Ð¥¤¥È¿ô */ - pid_t msg_lspid; /* ºÇ¸å¤Ë msgsnd(2) ¤ò¤·¤¿ PID */ - pid_t msg_lrpid; /* ºÇ¸å¤Ë msgrcv(2) ¤ò¤·¤¿ PID */ - time_t msg_stime; /* ºÇ¸å¤Ë msgsnd(2) ¤ò¤·¤¿»þ´Ö */ - time_t msg_rtime; /* ºÇ¸å¤Ë msgrcv(2) ¤ò¤·¤¿»þ´Ö */ - time_t msg_ctime; /* ºÇ¸å¤ËÊѹ¹¤µ¤ì¤¿»þ´Ö */ + msgqnum_t msg_qnum; /* キューにあるメッセージの数 */ + msglen_t msg_qbytes; /* キューの最大バイト数 */ + pid_t msg_lspid; /* 最後に msgsnd(2) をした PID */ + pid_t msg_lrpid; /* 最後に msgrcv(2) をした PID */ + time_t msg_stime; /* 最後に msgsnd(2) をした時間 */ + time_t msg_rtime; /* 最後に msgrcv(2) をした時間 */ + time_t msg_ctime; /* 最後に変更された時間 */ }; .fi .in @@ -232,60 +232,60 @@ struct msqid_ds { .\"O .I ipc_perm .\"O structure that specifies the access permissions on the message .\"O queue. -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Ø¤Î¥¢¥¯¥»¥¹µö²Ä¤ò»ØÄꤹ¤ë +メッセージ・キューへのアクセス許可を指定する .I ipc_perm -¹½Â¤ÂΡ£ +構造体。 .TP .I msg_qnum .\"O Number of messages currently on the message queue. -¸½ºß¡¢¤³¤Î¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Ë¤¢¤ë¥á¥Ã¥»¡¼¥¸¤Î¿ô¡£ +現在、このメッセージ・キューにあるメッセージの数。 .TP .I msg_qbytes .\"O Maximum number of bytes of message text allowed on the message .\"O queue. -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ËÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤ë¥á¥Ã¥»¡¼¥¸¤ÎºÇÂç¥Ð¥¤¥È¿ô¡£ +メッセージ・キューに入れることができるメッセージの最大バイト数。 .TP .I msg_lspid .\"O ID of the process that performed the last .\"O .BR msgsnd (2) .\"O system call. -ºÇ¸å¤Ë +最後に .BR msgsnd (2) -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¹Ô¤Ê¤Ã¤¿¥×¥í¥»¥¹¤Î ID¡£ +システム・コールを行なったプロセスの ID。 .TP .I msg_lrpid .\"O ID of the process that performed the last .\"O .BR msgrcv (2) .\"O system call. -ºÇ¸å¤Ë +最後に .BR msgrcv (2) -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¹Ô¤Ê¤Ã¤¿¥×¥í¥»¥¹¤Î ID¡£ +システム・コールを行なったプロセスの ID。 .TP .I msg_stime .\"O Time of the last .\"O .BR msgsnd (2) .\"O system call. -ºÇ¸å¤Ë +最後に .BR msgsnd (2) -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¹Ô¤Ê¤Ã¤¿»þ´Ö¡£ +システム・コールを行なった時間。 .I msg_rtime .\"O Time of the last .\"O .BR msgrcv (2) .\"O system call. -ºÇ¸å¤Ë +最後に .BR msgrcv (2) -¤ò¹Ô¤Ê¤Ã¤¿»þ´Ö¡£ +を行なった時間。 .TP .I msg_ctime .\"O Time of the last .\"O system call that changed a member of the .\"O .I msqid_ds .\"O structure. -ºÇ¸å¤Ë +最後に .I msqid_ds -¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤¬Êѹ¹¤µ¤ì¤¿»þ´Ö¡£ +構造体のメンバーが変更された時間。 .\"O .SS Semaphore Sets -.SS ¥»¥Þ¥Õ¥©¡¼½¸¹ç +.SS セマフォー集合 .\"O A semaphore set is uniquely identified by a positive integer .\"O .RI "(its " semid ) .\"O and has an associated data structure of type @@ -293,14 +293,14 @@ struct msqid_ds { .\"O defined in .\"O .IR , .\"O containing the following members: -¥»¥Þ¥Õ¥©¡¼½¸¹ç¤ÏÀµ¤ÎÀ°¿ô +セマフォー集合は正の整数 .RI "(" semid ) -¤Ë¤è¤Ã¤Æ¼±Ê̤µ¤ì¡¢ +によって識別され、 .I -¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¹½Â¤ÂÎ +に定義されている構造体 .IR "struct semid_ds" -¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¹½Â¤ÂΤϰʲ¼¤Î¥á¥ó¥Ð¡¼¤ò´Þ¤ó¤Ç¤¤¤ë: +に結びつけられている。 +この構造体は以下のメンバーを含んでいる: .in +4n .nf @@ -309,9 +309,9 @@ struct semid_ds { .\"O time_t sem_otime; /* last operation time */ .\"O time_t sem_ctime; /* last change time */ .\"O unsigned long sem_nsems; /* count of sems in set */ - time_t sem_otime; /* ºÇ¸å¤ËÁàºî¤·¤¿»þ´Ö */ - time_t sem_ctime; /* ºÇ¸å¤ËÊѹ¹¤·¤¿»þ´Ö */ - unsigned long sem_nsems; /* ½¸¹ç¤ÎÃæ¤Ë¤¢¤ë¥»¥Þ¥Õ¥©¡¼¿ô */ + time_t sem_otime; /* 最後に操作した時間 */ + time_t sem_ctime; /* 最後に変更した時間 */ + unsigned long sem_nsems; /* 集合の中にあるセマフォー数 */ }; .fi .in @@ -320,27 +320,27 @@ struct semid_ds { .\"O .I ipc_perm .\"O structure that specifies the access permissions on the semaphore .\"O set. -¥»¥Þ¥Õ¥©¡¼½¸¹ç¤Ø¤Î¥¢¥¯¥»¥¹µö²Ä¤ò»ØÄꤹ¤ë +セマフォー集合へのアクセス許可を指定する .I ipc_perm -¹½Â¤ÂΡ£ +構造体。 .TP .I sem_otime .\"O Time of last .\"O .BR semop (2) .\"O system call. -ºÇ¸å¤Ë +最後に .BR semop (2) -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¹Ô¤Ê¤Ã¤¿»þ´Ö¡£ +システム・コールを行なった時間。 .TP .I sem_ctime .\"O Time of last .\"O .BR semctl (2) .\"O system call that changed a member of the above structure or of one .\"O semaphore belonging to the set. -ºÇ¸å¤Ë +最後に .BR semctl (2) -¤ò¹Ô¤Ê¤Ã¤Æ¾åµ­¤Î¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤òÊѹ¹¤¹¤ë¤«¡¢¥»¥Þ¥Õ¥©¡¼½¸¹ç¤Ë°¤¹¤ë -¥»¥Þ¥Õ¥©¡¼¤òÊѹ¹¤·¤¿»þ´Ö¡£ +を行なって上記の構造体のメンバーを変更するか、セマフォー集合に属する +セマフォーを変更した時間。 .TP .I sem_nsems .\"O Number of semaphores in the set. @@ -349,19 +349,19 @@ struct semid_ds { .\"O .B 0 .\"O to .\"O .IR sem_nsems\-1 . -¥»¥Þ¥Õ¥©¡¼½¸¹ç¤ÎÃæ¤Ë¤¢¤ë¥»¥Þ¥Õ¥©¡¼¤Î¿ô¡£ -½¸¹ç¤ÎÃæ¤Ë¤¢¤ë¤½¤ì¤¾¤ì¤Î¥»¥Þ¥Õ¥©¡¼¤ÏÉé¤Ç¤Ê¤¤À°¿ô¤Ë¤è¤Ã¤Æ»²¾È¤µ¤ì¡¢ +セマフォー集合の中にあるセマフォーの数。 +集合の中にあるそれぞれのセマフォーは負でない整数によって参照され、 .B 0 -¤«¤é +から .I sem_nsems\-1 -¤Þ¤Ç¤ÎÈÖ¹æ¤ò»ý¤Ä¡£ +までの番号を持つ。 .PP .\"O A semaphore is a data structure of type .\"O .I "struct sem" .\"O containing the following members: -¥»¥Þ¥Õ¥©¡¼¤Ï +セマフォーは .I "struct sem" -·¿¤Î¥Ç¡¼¥¿¹½Â¤ÂΤǤ¢¤ê¡¢°Ê²¼¤Î¥á¥ó¥Ð¡¼¤ò´Þ¤ó¤Ç¤¤¤ë: +型のデータ構造体であり、以下のメンバーを含んでいる: .in +4n .nf @@ -370,38 +370,38 @@ struct sem { .\"O int sempid; /* PID for last operation */ .\"O .\" unsigned short semncnt; /* nr awaiting semval to increase */ .\"O .\" unsigned short semzcnt; /* nr awaiting semval = 0 */ - int semval; /* ¥»¥Þ¥Õ¥©¡¼¤ÎÃÍ */ - int sempid; /* ºÇ¸å¤ËÁàºî¤·¤¿¥×¥í¥»¥¹ ID */ -.\" unsigned short semncnt; /* semval ¤ÎÁý²Ã¤òÂԤĿô */ -.\" unsigned short semzcnt; /* semval = 0 ¤òÂԤĿô */ + int semval; /* セマフォーの値 */ + int sempid; /* 最後に操作したプロセス ID */ +.\" unsigned short semncnt; /* semval の増加を待つ数 */ +.\" unsigned short semzcnt; /* semval = 0 を待つ数 */ }; .fi .in .TP 11 .I semval .\"O Semaphore value: a nonnegative integer. -¥»¥Þ¥Õ¥©¡¼ÃÍ: Éé¤Ç¤Ê¤¤À°¿ô¡£ +セマフォー値: 負でない整数。 .TP .I sempid .\"O ID of the last process that performed a semaphore operation .\"O on this semaphore. -¤³¤Î¥»¥Þ¥Õ¥©¡¼¤òºÇ¸å¤ËÁàºî¤·¤¿¥×¥í¥»¥¹¤Î ID¡£ +このセマフォーを最後に操作したプロセスの ID。 .\".TP .\".I semncnt .\"O .\"Number of processes suspended awaiting for .\"O .\".I semval .\"O .\"to increase. .\".I semval -.\"¤ÎÃͤ¬Áý²Ã¤¹¤ë¤òÂԤäÆÄä»ß¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î¿ô¡£ +.\"の値が増加するを待って停止しているプロセスの数。 .\".TP .\".I semznt .\"O .\"Number of processes suspended awaiting for .\"O .\".I semval .\"O .\"to become zero. .\".I semval -.\"¤¬ 0 ¤Ë¤Ê¤ë¤Î¤òÂԤäÆÄä»ß¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î¿ô¡£ +.\"が 0 になるのを待って停止しているプロセスの数。 .\"O .SS Shared Memory Segments -.SS ¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È +.SS 共有メモリ・セグメント .\"O A shared memory segment is uniquely identified by a positive integer .\"O .RI "(its " shmid ) .\"O and has an associated data structure of type @@ -409,14 +409,14 @@ struct sem { .\"O defined in .\"O .IR , .\"O containing the following members: -¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥È¤ÏÀµ¤ÎÀ°¿ô +共有メモリ・セグメトは正の整数 .RI "(" shmid ) -¤Ë¤è¤Ã¤Æ¼±Ê̤µ¤ì¡¢ +によって識別され、 .I -¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë +に定義されている .IR "struct shmid_ds" -¹½Â¤ÂΤ˷ë¤Ó¤Ä¤±¤é¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¹½Â¤ÂΤϰʲ¼¤Î¥á¥ó¥Ð¡¼¤ò´Þ¤ó¤Ç¤¤¤ë: +構造体に結びつけられている。 +この構造体は以下のメンバーを含んでいる: .in +4n .nf @@ -429,13 +429,13 @@ struct shmid_ds { .\"O time_t shm_atime; /* time of last attach */ .\"O time_t shm_dtime; /* time of last detach */ .\"O time_t shm_ctime; /* time of last change */ - size_t shm_segsz; /* ¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º */ - pid_t shm_cpid; /* ºîÀ®¼Ô¤Î¥×¥í¥»¥¹ ID */ - pid_t shm_lpid; /* ºÇ¸å¤ËÁàºî¤·¤¿¥×¥í¥»¥¹ ID */ - shmatt_t shm_nattch; /* ¸½ºß¡¢Éղ䷤Ƥ¤¤ë¿ô */ - time_t shm_atime; /* ºÇ¸å¤ËÉղä·¤¿»þ´Ö */ - time_t shm_dtime; /* ºÇ¸å¤ËʬΥ¤·¤¿»þ´Ö */ - time_t shm_ctime; /* ºÇ¸å¤ËÊѹ¹¤·¤¿»þ´Ö */ + size_t shm_segsz; /* セグメントのサイズ */ + pid_t shm_cpid; /* 作成者のプロセス ID */ + pid_t shm_lpid; /* 最後に操作したプロセス ID */ + shmatt_t shm_nattch; /* 現在、付加している数 */ + time_t shm_atime; /* 最後に付加した時間 */ + time_t shm_dtime; /* 最後に分離した時間 */ + time_t shm_ctime; /* 最後に変更した時間 */ }; .fi .in @@ -444,18 +444,18 @@ struct shmid_ds { .\"O .I ipc_perm .\"O structure that specifies the access permissions on the shared memory .\"O segment. -¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Ø¤Î¥¢¥¯¥»¥¹µö²Ä¤ò»ØÄꤷ¤¿ +共有メモリ・セグメントへのアクセス許可を指定した .I ipc_perm -¹½Â¤ÂΡ£ +構造体。 .TP .I shm_segsz .\"O .I shm_segsz .\"O Size in bytes of the shared memory segment. -¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Î¥Ð¥¤¥È¿ô¡£ +共有メモリ・セグメントのバイト数。 .TP .I shm_cpid .\"O ID of the process that created the shared memory segment. -¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤òºîÀ®¤·¤¿¥×¥í¥»¥¹¤Î ID¡£ +共有メモリ・セグメントを作成したプロセスの ID。 .TP .I shm_lpid .\"O ID of the last process that executed a @@ -463,44 +463,44 @@ struct shmid_ds { .\"O or .\"O .BR shmdt (2) .\"O system call. -ºÇ¸å¤Ë +最後に .BR shmat (2) -¤Þ¤¿¤Ï +または .BR shmdt (2) -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¼Â¹Ô¤·¤¿¥×¥í¥»¥¹¤Î ID¡£ +システム・コールを実行したプロセスの ID。 .TP .I shm_nattch .\"O Number of current alive attaches for this shared memory segment. -¤³¤Î¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ò¥á¥â¥ê¤ËÉղà (attach) ¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î¿ô¡£ +この共有メモリ・セグメントをメモリに付加 (attach) しているプロセスの数。 .TP .I shm_atime .\"O Time of the last .\"O .BR shmat (2) .\"O system call. -ºÇ¸å¤Ë +最後に .BR shmat (2) -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¹Ô¤Ê¤Ã¤¿»þ´Ö¡£ +システム・コールを行なった時間。 .TP .I shm_dtime .\"O Time of the last .\"O .BR shmdt (2) .\"O system call. -ºÇ¸å¤Ë +最後に .BR shmdt (2) -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¹Ô¤Ê¤Ã¤¿»þ´Ö¡£ +システム・コールを行なった時間。 .TP .I shm_ctime .\"O Time of the last .\"O .BR shmctl (2) .\"O system call that changed .\"O .IR shmid_ds . -ºÇ¸å¤Ë +最後に .BR shmctl (2) -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¹Ô¤Ê¤Ã¤Æ¡¢ +システム・コールを行なって、 .I shmid_ds -¹½Â¤ÂΤòÊѹ¹¤·¤¿»þ´Ö¡£ +構造体を変更した時間。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ipc (2), .BR msgctl (2), .BR msgget (2), diff --git a/draft/man7/tcp.7 b/draft/man7/tcp.7 index ffb8a21b..a8ee5ca9 100644 --- a/draft/man7/tcp.7 +++ b/draft/man7/tcp.7 @@ -24,18 +24,18 @@ .\" Updated 2008-12-31, Akihiro MOTOKI, LDP v3.15 .\" Updated 2009-03-01, Akihiro MOTOKI, LDP v3.19 .\" -.\"WORD full duplex connection Á´Æó½ÅÄÌ¿® -.\"WORD listening state ÀܳÂÔ¤Á¼õ¤±¾õÂÖ -.\"WORD denial of service attack DoS ¹¶·â -.\"WORD urgent data ¶ÛµÞ¥Ç¡¼¥¿ +.\"WORD full duplex connection 全二重通信 +.\"WORD listening state 接続待ち受け状態 +.\"WORD denial of service attack DoS 攻撃 +.\"WORD urgent data 緊急データ .\" .TH TCP 7 2009-09-30 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O tcp \- TCP protocol -.SH ̾Á° -tcp \- TCP ¥×¥í¥È¥³¥ë +.SH 名前 +tcp \- TCP プロトコル .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include @@ -44,7 +44,7 @@ tcp \- TCP .sp .B tcp_socket = socket(AF_INET, SOCK_STREAM, 0); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This is an implementation of the TCP protocol defined in .\"O RFC\ 793, RFC\ 1122 and RFC\ 2001 with the NewReno and SACK .\"O extensions. @@ -57,19 +57,19 @@ tcp \- TCP .\"O It generates and checks a per-packet checksum to catch .\"O transmission errors. .\"O TCP does not preserve record boundaries. -¤³¤ì¤Ï RFC\ 793, RFC\ 1122, RFC\ 2001 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë TCP ¥×¥í¥È¥³¥ë¤ò -NewReno ³ÈÄ¥¤È SACK ³ÈÄ¥¤ò´Þ¤á¤Æ¼ÂÁõ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -TCP ¤Ï¡¢ +これは RFC\ 793, RFC\ 1122, RFC\ 2001 で定義されている TCP プロトコルを +NewReno 拡張と SACK 拡張を含めて実装したものである。 +TCP は、 .BR ip (7) -¾å¤ÎÆó¤Ä¤Î¥½¥±¥Ã¥È´Ö¤Ë¡¢¿®ÍêÀ­¤Î¹â¤¤¡¢¥¹¥È¥ê¡¼¥à»Ø¸þ¤ÎÁ´Æó½Å -(full-duplex) ÄÌ¿®¤òÄ󶡤¹¤ë¡£ -v4 ¤È v6 ¤ÎξÊý¤Î¥Ð¡¼¥¸¥ç¥ó¤Î +上の二つのソケット間に、信頼性の高い、ストリーム指向の全二重 +(full-duplex) 通信を提供する。 +v4 と v6 の両方のバージョンの .BR ip (7) -¤ËÂбþ¤·¤Æ¤¤¤ë¡£ -TCP ¤Ï¡¢¥Ç¡¼¥¿¤¬½ç½ø¤ò¼é¤Ã¤ÆÅþÃ夹¤ë¤³¤È¡¢ÅÓÃæ¤Ç¼º¤ï¤ì¤¿¥Ñ¥±¥Ã¥È¤¬ -ºÆÁ÷¤µ¤ì¤ë¤³¤È¤òÊݾڤ¹¤ë¡£¤Þ¤¿¡¢¥Ñ¥±¥Ã¥Èñ°Ì¤Ë¥Á¥§¥Ã¥¯¥µ¥à¤ò -À¸À®¡¢¸¡ºº¤¹¤ë¤³¤È¤Ç¡¢Å¾Á÷¥¨¥é¡¼¤ò¸¡ÃΤ¹¤ë¡£ -TCP ¤Ï¥ì¥³¡¼¥É¶­³¦ (record boundary) ¤òÊݸ¤·¤Ê¤¤¡£ +に対応している。 +TCP は、データが順序を守って到着すること、途中で失われたパケットが +再送されることを保証する。また、パケット単位にチェックサムを +生成、検査することで、転送エラーを検知する。 +TCP はレコード境界 (record boundary) を保存しない。 .\"O A newly created TCP socket has no remote or local address and is not .\"O fully specified. @@ -89,26 +89,26 @@ TCP .\"O .BR connect (2) .\"O successfully called on it is fully specified and may transmit data. .\"O Data cannot be transmitted on listening or not yet connected sockets. -¿·¤·¤¯À¸À®¤µ¤ì¤¿¤Ð¤«¤ê¤Î TCP ¥½¥±¥Ã¥È¤Ï¡¢ -¥ê¥â¡¼¥È¥¢¥É¥ì¥¹¤«¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤¬¤Ê¤¯¡¢ -¤·¤¿¤¬¤Ã¤Æ¾ÜºÙ¤¬´°Á´¤Ë»ØÄꤵ¤ì¤¿¾õÂ֤ǤϤʤ¤¡£ -³°Éô¤Ø¤Î TCP Àܳ¤òÀ¸À®¤¹¤ë¤Ë¤Ï¡¢ +新しく生成されたばかりの TCP ソケットは、 +リモートアドレスかローカルアドレスがなく、 +したがって詳細が完全に指定された状態ではない。 +外部への TCP 接続を生成するには、 .BR connect (2) -¤òÍѤ¤¤Æ¤â¤¦°ìÊý¤Î TCP ¥½¥±¥Ã¥È¤Ø¤ÎÀܳ¤ò³ÎΩ¤¹¤ë¡£ -³°Éô¤«¤é¤Î¿·¤¿¤ÊÀܳ¤ò¼õ¤±¤ë¤Ë¤Ï¡¢¤Þ¤º +を用いてもう一方の TCP ソケットへの接続を確立する。 +外部からの新たな接続を受けるには、まず .BR bind (2) -¤Ç¥½¥±¥Ã¥È¤ò¥í¡¼¥«¥ë¤Ê¥¢¥É¥ì¥¹¤È¥Ý¡¼¥È¤Ë·ë¤Ó¤Ä¤±¡¢¼¡¤Ë +でソケットをローカルなアドレスとポートに結びつけ、次に .BR listen (2) -¤ò¸Æ¤ó¤Ç¥½¥±¥Ã¥È¤òÀܳÂÔ¤Á¼õ¤±¾õÂ֤ˤ¹¤ë¡£ -¤½¤Î¸å¡¢ÅþÃ夷¤¿ÀܳÍ×µá¤ËÂФ·¤Æ +を呼んでソケットを接続待ち受け状態にする。 +その後、到着した接続要求に対して .BR accept (2) -¤òÍѤ¤¡¢¥½¥±¥Ã¥È¤ò¿·¤·¤¯À¸À®¤¹¤ë¡£ +を用い、ソケットを新しく生成する。 .BR accept (2) -¤Þ¤¿¤Ï +または .BR connect (2) -¤Î¥³¡¼¥ë¤¬À®¸ù¤·¤¿¥½¥±¥Ã¥È¤Ï¡¢¾ÜºÙ¤¬´°Á´¤Ë»ØÄꤵ¤ì¤¿¾õÂ֤Ȥʤꡢ -¥Ç¡¼¥¿¤Î¤ä¤ê¤È¤ê¤¬²Äǽ¤È¤Ê¤ë¡£ÀܳÂÔ¤Á¼õ¤±¾õÂ֤Π(listening) ¥½¥±¥Ã¥È¤ä¡¢ -Àܳ (connect) ¤µ¤ì¤Æ¤¤¤Ê¤¤¥½¥±¥Ã¥È¤òÄ̤·¤Æ¥Ç¡¼¥¿¤ò¤ä¤ê¤È¤ê¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +のコールが成功したソケットは、詳細が完全に指定された状態となり、 +データのやりとりが可能となる。接続待ち受け状態の (listening) ソケットや、 +接続 (connect) されていないソケットを通してデータをやりとりすることはできない。 .\"O Linux supports RFC\ 1323 TCP high performance .\"O extensions. @@ -129,24 +129,24 @@ TCP .\"O socket options with the .\"O .BR setsockopt (2) .\"O call. -Linux ¤Ï RFC\ 1323 ¤Î TCP high performance ³ÈÄ¥¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤Ë¤Ï¡¢Protection Against Wrapped Sequence Numbers (PAWS)¡¢ -¥¦¥£¥ó¥É¥¦¥¹¥±¡¼¥ê¥ó¥°¡¢¥¿¥¤¥à¥¹¥¿¥ó¥×¤Ê¤É¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -¥¦¥£¥ó¥É¥¦¥¹¥±¡¼¥ê¥ó¥°¤òÍøÍѤ¹¤ë¤È¡¢ÃÙ±ä¤Þ¤¿¤ÏÂÓ°è¤ÎÂ礭¤ÊÀܳ¤Ç¡¢ -(64K °Ê¾å¤Î) µðÂç¤Ê TCP ¥¦¥£¥ó¥É¥¦¤òÍѤ¤¤ë¤³¤È¤¬²Äǽ¤È¤Ê¤ë¡£ -¤³¤ì¤òÍѤ¤¤ë¤Ë¤Ï¡¢Á÷¼õ¿®¤Î¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤òÂ礭¤¯¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥·¥¹¥Æ¥àÁ´ÂΤËÂФ¹¤ë¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤ÎÊѹ¹¤Ï¡¢¥Õ¥¡¥¤¥ë +Linux は RFC\ 1323 の TCP high performance 拡張をサポートしている。 +これには、Protection Against Wrapped Sequence Numbers (PAWS)、 +ウィンドウスケーリング、タイムスタンプなどが含まれている。 +ウィンドウスケーリングを利用すると、遅延または帯域の大きな接続で、 +(64K 以上の) 巨大な TCP ウィンドウを用いることが可能となる。 +これを用いるには、送受信のバッファサイズを大きくしなければならない。 +システム全体に対するバッファサイズの変更は、ファイル .I /proc/sys/net/ipv4/tcp_wmem -¤È +と .I /proc/sys/net/ipv4/tcp_rmem -¤òÍѤ¤¤Æ¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¤Þ¤¿¡¢¸Ä¡¹¤Î¥½¥±¥Ã¥È¤Î¤ß¤òÂ礭¤¯¤·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ +を用いて行うことができる。 +また、個々のソケットのみを大きくしたい場合には、 .B SO_SNDBUF -¤ä +や .B SO_RCVBUF -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤Æ +ソケットオプションを用いて .BR setsockopt (2) -¥³¡¼¥ë¤òÍѤ¤¤ÆÀßÄꤹ¤ì¤Ð¤è¤¤¡£ +コールを用いて設定すればよい。 .\"O The maximum sizes for socket buffers declared via the .\"O .B SO_SNDBUF @@ -158,13 +158,13 @@ Linux .\"O .I /proc/sys/net/core/wmem_max .\"O files. .B SO_SNDBUF -¤ä +や .B SO_RCVBUF -¤Î¥á¥«¥Ë¥º¥à¤ÇÀë¸À¤µ¤ì¤ë¥½¥±¥Ã¥È¥Ð¥Ã¥Õ¥¡¤ÎºÇÂ祵¥¤¥º¤Ï¡¢¥Õ¥¡¥¤¥ë +のメカニズムで宣言されるソケットバッファの最大サイズは、ファイル .I /proc/sys/net/core/rmem_max -¤ä +や .I /proc/sys/net/core/wmem_max -¤Ç»ØÄꤵ¤ì¤¿¥·¥¹¥Æ¥à¤È¤·¤Æ¤ÎÀ©¸ÂÃͤòĶ¤¨¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +で指定されたシステムとしての制限値を超えることはできない。 .\"O Note that TCP actually allocates twice the size of .\"O the buffer requested in the .\"O .BR setsockopt (2) @@ -173,22 +173,22 @@ Linux .\"O call will not return the same size of buffer as requested in the .\"O .BR setsockopt (2) .\"O call. -TCP ¤Ï¼ÂºÝ¤Ë¤Ï +TCP は実際には .BR setsockopt (2) -¥³¡¼¥ë¤¬Í׵ᤷ¤¿¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤ÎÆóÇܤò³ä¤êÅö¤Æ¤ë¡£ -¤½¤Î¤¿¤á¡¢¤³¤Î¸å¤Ç +コールが要求したバッファサイズの二倍を割り当てる。 +そのため、この後で .BR getsockopt (2) -¥³¡¼¥ë¤ò¹Ô¤¦¤È¡¢ +コールを行うと、 .BR setsockopt (2) -¤ÇÍ׵ᤷ¤¿¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤È¤Ï°Û¤Ê¤ëÃͤ¬Ê֤롣 +で要求したバッファサイズとは異なる値が返る。 .\"O TCP uses the extra space for administrative purposes and internal .\"O kernel structures, and the .\"O .I /proc .\"O file values reflect the .\"O larger sizes compared to the actual TCP windows. -TCP ¤Ï¤³¤Î;ʬ¤Ê¶õ´Ö¤ò¡¢´ÉÍýÌÜŪ¤ä¥«¡¼¥Í¥ëÆâÉô¤Î¹½Â¤ÂΤËÍѤ¤¤Æ¤¤¤ë¡£ +TCP はこの余分な空間を、管理目的やカーネル内部の構造体に用いている。 .I /proc -¥Õ¥¡¥¤¥ë¤ÎÃͤϡ¢¤³¤ì¤é¤òÈ¿±Ç¤·¡¢¼ÂºÝ¤Î TCP ¥¦¥£¥ó¥É¥¦¤è¤ê¤âÂ礭¤ÊÃͤȤʤ롣 +ファイルの値は、これらを反映し、実際の TCP ウィンドウよりも大きな値となる。 .\"O On individual connections, the socket buffer size must be set prior to the .\"O .BR listen (2) .\"O or @@ -197,14 +197,14 @@ TCP .\"O See .\"O .BR socket (7) .\"O for more information. -³ÆÀܳ¤Ë¤ª¤±¤ë¥½¥±¥Ã¥È¤Î¥Ð¥Ã¥Õ¥¡¥µ¥¤¥ºÊѹ¹¤òÍ­¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢ +各接続におけるソケットのバッファサイズ変更を有効にするには、 .BR listen (2) -¤ä +や .BR connect (2) -¥³¡¼¥ë¤ÎÁ°¤ËÀßÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï +コールの前に設定しなければならない。 +より詳しい情報は .BR socket (7) -¤ò¸«¤è¡£ +を見よ。 .PP .\"O TCP supports urgent data. .\"O Urgent data is used to signal the @@ -214,14 +214,14 @@ TCP .\"O .B MSG_OOB .\"O option to .\"O .BR send (2). -TCP ¤Ï¶ÛµÞ¥Ç¡¼¥¿ (urgent data) ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£¶ÛµÞ¥Ç¡¼¥¿¤Ï -²¿¤é¤«¤Î½ÅÍפʥá¥Ã¥»¡¼¥¸¤¬¥Ç¡¼¥¿¥¹¥È¥ê¡¼¥à¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤³¤È¡¢ -¤½¤Î¥Ç¡¼¥¿¤ò¤Ç¤­¤ë¤À¤±Á᤯½èÍý¤¹¤Ù¤­¤³¤È¡¢¤ò¼õ¿®¼Ô¤ËÅÁ¤¨¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ -¶ÛµÞ¥Ç¡¼¥¿¤òÁ÷¤ë¤Ë¤Ï¡¢ +TCP は緊急データ (urgent data) をサポートしている。緊急データは +何らかの重要なメッセージがデータストリームに含まれていること、 +そのデータをできるだけ早く処理すべきこと、を受信者に伝えるために用いられる。 +緊急データを送るには、 .BR send (2) -¤Ë +に .B MSG_OOB -¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¡£ +オプションを指定する。 .\"O When urgent data is received, the kernel sends a .\"O .B SIGURG .\"O signal to the process or process group that has been set as the @@ -245,29 +245,29 @@ TCP .\"O .BR recv (2) .\"O or .\"O .BR recvmsg (2). -¶ÛµÞ¥Ç¡¼¥¿¤ò¼õ¿®¤¹¤ë¤È¡¢¥«¡¼¥Í¥ë¤Ï +緊急データを受信すると、カーネルは .B SIGURG -¥·¥°¥Ê¥ë¤òÁ÷¿®¤¹¤ë¡£Á÷¿®Àè¤Ï +シグナルを送信する。送信先は .B SIOCSPGRP -¤ä +や .B FIOSETOWN -ioctl (¤ä POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë +ioctl (や POSIX.1-2001 で規定されている .BR fcntl (2) .B F_SETOWN -Áàºî) ¤òÍѤ¤¤Æ¤½¤Î¥½¥±¥Ã¥È¤Î¡Ö½êÍ­¼Ô¡×¤È¤·¤ÆÀßÄꤵ¤ì¤¿ -¥×¥í¥»¥¹¤«¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ç¤¢¤ë¡£ +操作) を用いてそのソケットの「所有者」として設定された +プロセスかプロセスグループである。 .B SO_OOBINLINE -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢¶ÛµÞ¥Ç¡¼¥¿¤Ï -Ä̾ï¤Î¥Ç¡¼¥¿¥¹¥È¥ê¡¼¥à¤ÎÃæ¤Ëº®¤¼¤ÆÁ÷¤é¤ì¤ë (¥×¥í¥°¥é¥à¤Ï²¼µ­¤Î +ソケットオプションが有効になっていると、緊急データは +通常のデータストリームの中に混ぜて送られる (プログラムは下記の .B SIOCATMARK -ioctl ¤ò»È¤Ã¤Æ¶ÛµÞ¥Ç¡¼¥¿¤Î¾ì½ê¤òÄ´¤Ù¤ë¤³¤È¤¬¤Ç¤­¤ë)¡£ -̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ +ioctl を使って緊急データの場所を調べることができる)。 +無効になっている場合には、 .BR recv (2) -¤ä +や .BR recvmsg (2) -¤Ç +で .B MSG_OOB -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ë¤Î¤ß¡¢¶ÛµÞ¥Ç¡¼¥¿¤ò¼õ¿®¤Ç¤­¤ë¡£ +フラグがセットされているときにのみ、緊急データを受信できる。 .\"O Linux 2.4 introduced a number of changes for improved .\"O throughput and scaling, as well as enhanced functionality. @@ -276,16 +276,16 @@ ioctl .\"O Explicit Congestion Notification, new .\"O management of TIME_WAIT sockets, keep-alive socket options .\"O and support for Duplicate SACK extensions. -Linux 2.4 ¤Ç¤Ï¿¤¯¤ÎÊѹ¹¤¬¤Ê¤µ¤ì¡¢ -¥¹¥ë¡¼¥×¥Ã¥È¤È¥¹¥±¡¼¥ê¥ó¥°¤¬¸þ¾å¤·¡¢µ¡Ç½¤â¹â¤Þ¤Ã¤¿¡£ -¤³¤ì¤é¤Îµ¡Ç½¤Ë¤Ï¡¢¥¼¥í¥³¥Ô¡¼ -.BR sendfile (2)¡¢ -Explicit Congestion Notification¡¢ -TIME_WAIT ¥½¥±¥Ã¥È¤Î¿·¤·¤¤´ÉÍýË¡¡¢ -keep-alive ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¡¢ -Duplicate SACK ³ÈÄ¥¤Î¥µ¥Ý¡¼¥È¤Ê¤É¤¬¤¢¤ë¡£ +Linux 2.4 では多くの変更がなされ、 +スループットとスケーリングが向上し、機能も高まった。 +これらの機能には、ゼロコピー +.BR sendfile (2)、 +Explicit Congestion Notification、 +TIME_WAIT ソケットの新しい管理法、 +keep-alive ソケットオプション、 +Duplicate SACK 拡張のサポートなどがある。 .\"O .SS Address Formats -.SS ¥¢¥É¥ì¥¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È +.SS アドレスのフォーマット .\"O TCP is built on top of IP (see .\"O .BR ip (7)). .\"O The address formats defined by @@ -294,79 +294,79 @@ Duplicate SACK .\"O TCP only supports point-to-point .\"O communication; broadcasting and multicasting are not .\"O supported. -TCP ¤Ï IP ¤Î¾åÁؤ˹½ÃÛ¤µ¤ì¤Æ¤¤¤ë +TCP は IP の上層に構築されている .RB ( ip (7) -¤ò»²¾È)¡£ +を参照)。 .BR ip (7) -¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï TCP ¤Ë¤âŬÍѤµ¤ì¤ë¡£ -TCP ¤Ï point-to-point ¤ÎÄÌ¿®¤À¤±¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ -¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¤ä¥Þ¥ë¥Á¥­¥ã¥¹¥È¤Ï¥µ¥Ý¡¼¥È¤·¤Ê¤¤¡£ +に定義されているアドレスフォーマットは TCP にも適用される。 +TCP は point-to-point の通信だけをサポートする。 +ブロードキャストやマルチキャストはサポートしない。 .\"O .SS /proc interfaces -.SS /proc ¥¤¥ó¥¿¥Õ¥§¡¼¥¹ +.SS /proc インタフェース .\"O System-wide TCP parameter settings can be accessed by files in the directory .\"O .IR /proc/sys/net/ipv4/ . .\"O In addition, most IP .\"O .I /proc .\"O interfaces also apply to TCP; see .\"O .BR ip (7). -¥·¥¹¥Æ¥àÁ´ÂΤËÂФ¹¤ë TCP ¥Ñ¥é¥á¡¼¥¿¤ÎÀßÄê¤Ë¤Ï¡¢ +システム全体に対する TCP パラメータの設定には、 .I /proc/sys/net/ipv4/ -¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¤Ë¤è¤ê¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ -¤µ¤é¤Ë¡¢IP ¤Ë´ØÏ¢¤¹¤ë +ディレクトリ内のファイルによりアクセスできる。 +さらに、IP に関連する .I /proc -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î¤Û¤È¤ó¤É¤Ï TCP ¤Ë¤Ä¤¤¤Æ¤âŬÍѤµ¤ì¤ë¡£ +インタフェースのほとんどは TCP についても適用される。 .BR ip (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .I Boolean .\"O take an integer value, with a nonzero value ("true") meaning that .\"O the corresponding option is enabled, and a zero value ("false") .\"O meaning that the option is disabled. .I Boolean -¤ÏÀ°¿ôÃͤǡ¢ -0 °Ê³°¤ÎÃÍ ("true") ¤ÏÂбþ¤¹¤ë¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¡¢ -0 ÃÍ ("false") ¤Ï̵¸ú¡¢¤Ç¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +は整数値で、 +0 以外の値 ("true") は対応するオプションが有効、 +0 値 ("false") は無効、であることを意味する。 .TP .\"O .IR tcp_abc " (Integer; default: 0; since Linux 2.6.15)" -.IR tcp_abc " (Integer; default: 0; Linux 2.6.15 °Ê¹ß)" +.IR tcp_abc " (Integer; default: 0; Linux 2.6.15 以降)" .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt .\"O Control the Appropriate Byte Count (ABC), defined in RFC 3465. .\"O ABC is a way of increasing the congestion window .\"O .RI ( cwnd ) .\"O more slowly in response to partial acknowledgments. -RFC 3465 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë Appropriate Byte Count (ABC) ¤òÀ©¸æ¤¹¤ë¡£ -ABC ¤Ï¡¢ÉôʬŪ¤Ê ACK ¤Ë±þ¤¸¤¿íÕíÔ¥¦¥£¥ó¥É¥¦ +RFC 3465 で定義されている Appropriate Byte Count (ABC) を制御する。 +ABC は、部分的な ACK に応じた輻輳ウィンドウ .RI ( cwnd ) -¤ÎÁý²Ã¤ò¤è¤ê´Ë¤ä¤«¤Ë¤¹¤ëÊýË¡¤Ç¤¢¤ë¡£ +の増加をより緩やかにする方法である。 .\"O Possible values are: -°Ê²¼¤ÎÃͤò»ØÄê¤Ç¤­¤ë¡£ +以下の値を指定できる。 .RS .IP 0 3 .\"O increase .\"O .I cwnd .\"O once per acknowledgment (no ABC) -ACK ¤ò¼õ¿®¤¹¤ëËè¤Ë +ACK を受信する毎に .I cwnd -¤òÁý¤ä¤¹ (ABC ¤Ê¤·)¡£ +を増やす (ABC なし)。 .IP 1 .\"O increase .\"O .I cwnd .\"O once per acknowledgment of full sized segment -¥Õ¥ë¥µ¥¤¥º¤Î¥»¥°¥á¥ó¥È¤Î ACK ¤ò¼õ¿®¤¹¤ëËè¤Ë +フルサイズのセグメントの ACK を受信する毎に .I cwnd -¤òÁý¤ä¤¹¡£ +を増やす。 .IP 2 .\"O allow increase .\"O .I cwnd .\"O by two if acknowledgment is .\"O of two segments to compensate for delayed acknowledgments. -ACK ¤¬ÃÙ±ä ACK (delayed acknowledgment) ¤òÁ껦¤¹¤ë¤¿¤á¤Î 2 ¥»¥°¥á¥ó¥È¤Ë -ÂФ¹¤ë ACK ¤Î¾ì¹ç¤Ë¡¢ +ACK が遅延 ACK (delayed acknowledgment) を相殺するための 2 セグメントに +対する ACK の場合に、 .I cwnd -¤ò 2 Áý¤ä¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +を 2 増やすことができる。 .RE .TP .\"O .IR tcp_abort_on_overflow " (Boolean; default: disabled; since Linux 2.4)" -.IR tcp_abort_on_overflow " (Boolean; default: disabled; Linux 2.4 °Ê¹ß)" +.IR tcp_abort_on_overflow " (Boolean; default: disabled; Linux 2.4 以降)" .\" Since 2.3.41 .\"O Enable resetting connections if the listening service is too .\"O slow and unable to keep up and accept them. @@ -377,16 +377,16 @@ ACK .\"O if you are really sure that the listening daemon .\"O cannot be tuned to accept connections faster. .\"O Enabling this option can harm the clients of your server. -Àܳ¤òÂÔ¤Á¼õ¤±¤Æ¤¤¤ë¥µ¡¼¥Ó¥¹¤¬ÃÙ¤¹¤®¤Æ¡¢¼õ¿®¤Ë¤Ä¤¤¤Æ¤¤¤±¤Ê¤¤¾ì¹ç¤Ë¡¢ -Àܳ¤ò¥ê¥»¥Ã¥È¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ -¤³¤ì¤òÍѤ¤¤ë¤È¡¢¥Ð¡¼¥¹¥È¤Ë¤è¤Ã¤Æ¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬µ¯¤³¤Ã¤¿¤È¤­¤Ë¡¢ -Àܳ¤ò²óÉü¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤Î¤Ï¡¢ -¼õ¿®¥Ç¡¼¥â¥ó¤ò¹â®²½¤Ç¤­¤Ê¤¤¾ì¹ç¤Ë¡Ö¸ÂÄꤹ¤ë¡×¤³¤È¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤È¡¢¤½¤Î¥µ¡¼¥Ð¤ËÀܳ¤·¤Æ¤¤¤ë¥¯¥é¥¤¥¢¥ó¥È -¤Ë¤È¤Ã¤Æ¤Ï³²¤Ë¤Ê¤ë¤³¤È¤¬¤¢¤ë¡£ +接続を待ち受けているサービスが遅すぎて、受信についていけない場合に、 +接続をリセットできるようにする。 +これを用いると、バーストによってオーバーフローが起こったときに、 +接続を回復できるようになる。このオプションを用いるのは、 +受信デーモンを高速化できない場合に「限定する」こと。 +このオプションを用いると、そのサーバに接続しているクライアント +にとっては害になることがある。 .TP .\"O .IR tcp_adv_win_scale " (integer; default: 2; since Linux 2.4)" -.IR tcp_adv_win_scale " (integer; default: 2; Linux 2.4 °Ê¹ß)" +.IR tcp_adv_win_scale " (integer; default: 2; Linux 2.4 以降)" .\" Since 2.4.0-test7 .\"O Count buffering overhead as .\"O .IR "bytes/2^tcp_adv_win_scale" , @@ -397,15 +397,15 @@ ACK .\"O if .\"O .I tcp_adv_win_scale .\"O is less than or equal to zero. -¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤Î¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤Î·×»»ÊýË¡¤ò¡¢ +バッファリングのオーバーヘッドの計算方法を、 .I tcp_adv_win_scale -¤¬Àµ¤Î¾ì¹ç¤Ï +が正の場合は .I "bytes/2^tcp_adv_win_scale" -¤Ë¡¢ +に、 .I tcp_adv_win_scale -¤¬É餫 0 ¤Î¾ì¹ç¤Ï +が負か 0 の場合は .I "bytes-bytes/2^(\-tcp_adv_win_scale)" -¤È¤¹¤ë¡£ +とする。 .\"O The socket receive buffer space is shared between the .\"O application and kernel. @@ -419,17 +419,17 @@ ACK .\"O .I tcp_adv_win_scale .\"O default value of 2 implies that the space .\"O used for the application buffer is one fourth that of the total. -¥½¥±¥Ã¥È¤Î¼õ¿®¥Ð¥Ã¥Õ¥¡¶õ´Ö¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤È¥«¡¼¥Í¥ë¤Ç¶¦Í­¤µ¤ì¤ë¡£ -TCP ¤Ï¥Ð¥Ã¥Õ¥¡¤Î°ìÉô¤ò TCP ¥¦¥£¥ó¥É¥¦¤È¤·¤Æ´ÉÍý¤·¡¢ -¤³¤ì¤ò¼õ¿®¥¦¥£¥ó¥É¥¦¤È¤·¤ÆÀܳ¤Î¾ü¤ËÄÌÃΤ¹¤ë¡£ -¶õ´Ö¤Î»Ä¤ê¤Ï¡Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¡×¥Ð¥Ã¥Õ¥¡¤È¤·¤ÆÍѤ¤¤é¤ì¡¢ -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ä¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÃٱ䤫¤é¥Í¥Ã¥È¥ï¡¼¥¯¤ò³ÖÎ¥¤¹¤ë¡£ +ソケットの受信バッファ空間はアプリケーションとカーネルで共有される。 +TCP はバッファの一部を TCP ウィンドウとして管理し、 +これを受信ウィンドウとして接続の他端に通知する。 +空間の残りは「アプリケーション」バッファとして用いられ、 +スケジューリングやアプリケーションの遅延からネットワークを隔離する。 .I tcp_adv_win_scale -¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 2 ¤Ç¤¢¤ê¡¢ -¤³¤Î¾ì¹ç¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥Ð¥Ã¥Õ¥¡¤ÏÁ´ÂΤΠ1/4 ¤Ë¤Ê¤ë¡£ +のデフォルト値は 2 であり、 +この場合アプリケーションバッファは全体の 1/4 になる。 .TP .\"O .IR tcp_allowed_congestion_control " (String; default: see text; since Linux 2.4.20)" -.IR tcp_allowed_congestion_control " (String; default: see text; Linux 2.4.20 °Ê¹ß)" +.IR tcp_allowed_congestion_control " (String; default: see text; Linux 2.4.20 以降)" .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt .\"O Show/set the congestion control algorithm choices available to unprivileged .\"O processes (see the description of the @@ -437,69 +437,69 @@ TCP .\"O socket option). .\"O The list is a subset of those listed in .\"O .IR tcp_available_congestion_control . -ÈóÆø¢¥×¥í¥»¥¹¤ÇÍøÍѤǤ­¤ëíÕíÔÀ©¸æ¥¢¥ë¥´¥ê¥º¥à¤ÎÁªÂò»è¤òɽ¼¨/ÀßÄꤹ¤ë +非特権プロセスで利用できる輻輳制御アルゴリズムの選択肢を表示/設定する .RB ( TCP_CONGESTION -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È)¡£ -¤³¤Î¥ê¥¹¥È¤Ï +ソケットオプションの説明を参照のこと)。 +このリストは .I tcp_available_congestion_control -¤Çɽ¼¨¤µ¤ì¤ë¥ê¥¹¥È¤ÎÉôʬ½¸¹ç¤È¤Ê¤ë¡£ +で表示されるリストの部分集合となる。 .\" FIXME How are the items in this delimited? Null bytes, spaces, commas? .\"O The default value for this list is "reno" plus the default setting of .\"O .IR tcp_congestion_control . -¤³¤Î¥ê¥¹¥È¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤϡ¢"reno" ¤È +このリストのデフォルト値は、"reno" と .I tcp_congestion_control -¤Î¥Ç¥Õ¥©¥ë¥ÈÀßÄê¤ò¤¢¤ï¤»¤¿¤â¤Î¤È¤Ê¤ë¡£ +のデフォルト設定をあわせたものとなる。 .TP .\"O .IR tcp_available_congestion_control " (String; read-only; since Linux 2.4.20)" -.IR tcp_available_congestion_control " (String; read-only; Linux 2.4.20 °Ê¹ß)" +.IR tcp_available_congestion_control " (String; read-only; Linux 2.4.20 以降)" .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt .\"O Show a list of the congestion-control algorithms .\"O that are registered. -ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ëíÕíÔÀ©¸æ¥¢¥ë¥´¥ê¥º¥à¤Î¥ê¥¹¥È¤òɽ¼¨¤¹¤ë¡£ +登録されている輻輳制御アルゴリズムのリストを表示する。 .\" FIXME How are the items in this delimited? Null bytes, spaces, commas? .\"O This list is a limiting set for the list in .\"O .IR tcp_allowed_congestion_control . .\"O More congestion-control algorithms may be available as modules, .\"O but not loaded. -¤³¤Î¥ê¥¹¥È¤ËºÜ¤Ã¤Æ¤¤¤ë¤â¤Î¤À¤±¤¬¡¢ +このリストに載っているものだけが、 .I tcp_allowed_congestion_control -¤Ëɽ¼¨¤µ¤ì¤ë¡£ -¾¤ÎíÕíÔÀ©¸æ¥¢¥ë¥´¥ê¥º¥à¤¬¥â¥¸¥å¡¼¥ë¤È¤·¤ÆÍøÍѲÄǽ¤À¤¬¡¢ -¥â¥¸¥å¡¼¥ë¤¬¥í¡¼¥É¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤â¤¢¤ë¡£ +に表示される。 +他の輻輳制御アルゴリズムがモジュールとして利用可能だが、 +モジュールがロードされていないこともある。 .TP .\"O .IR tcp_app_win " (integer; default: 31; since Linux 2.4)" -.IR tcp_app_win " (integer; default: 31; Linux 2.4 °Ê¹ß)" +.IR tcp_app_win " (integer; default: 31; Linux 2.4 以降)" .\" Since 2.4.0-test7 .\"O This variable defines how many .\"O bytes of the TCP window are reserved for buffering overhead. -¤³¤ÎÊÑ¿ô¤Ï¡¢TCP ¥¦¥£¥ó¥É¥¦¤Î²¿¥Ð¥¤¥Èʬ¤ò -¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤Î¥ª¡¼¥Ð¡¼¥Ø¥Ã¥ÉÍѤËͽÌ󤹤뤫¤ò»ØÄꤹ¤ë¡£ +この変数は、TCP ウィンドウの何バイト分を +バッファリングのオーバーヘッド用に予約するかを指定する。 .\"O A maximum of (\fIwindow/2^tcp_app_win\fP, mss) bytes in the window .\"O are reserved for the application buffer. .\"O A value of 0 implies that no amount is reserved. -¤½¤Î¥¦¥£¥ó¥É¥¦¤Î \fIwindow/2^tcp_app_win\fP ¤È mss ¤ÎÂ礭¤¤¤Û¤¦ (¥Ð¥¤¥Èñ°Ì) -¤¬¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥Ð¥Ã¥Õ¥¡¤È¤·¤ÆͽÌ󤵤ì¤ë¡£ -0 ¤ò»ØÄꤹ¤ë¤È°ìÀÚͽÌóÎΰè¤ò¼è¤é¤Ê¤¤¡£ +そのウィンドウの \fIwindow/2^tcp_app_win\fP と mss の大きいほう (バイト単位) +がアプリケーションバッファとして予約される。 +0 を指定すると一切予約領域を取らない。 .\" .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt .TP .\"O .IR tcp_base_mss " (Integer; default: 512; since Linux 2.6.17)" -.IR tcp_base_mss " (Integer; default: 512; Linux 2.6.17 °Ê¹ß)" +.IR tcp_base_mss " (Integer; default: 512; Linux 2.6.17 以降)" .\"O The initial value of .\"O .I search_low .\"O to be used by the packetization layer Path MTU discovery (MTU probing). .\"O If MTU probing is enabled, .\"O this is the initial MSS used by the connection. -¥Ñ¥±¥Ã¥È²½¥ì¥¤¥ä¤Î Path MTU discovery (MTU probing) ¤Ç¡¢ +パケット化レイヤの Path MTU discovery (MTU probing) で、 .I search_low -¤Î½é´üÃͤȻÈÍѤµ¤ì¤ëÃÍ¡£ -MTU probing ¤¬Í­¸ú¤Ê¾ì¹ç¡¢¤³¤ÎÃͤϤ½¤ÎÀܳ¤Î MSS ¤Î½é´üÃͤȤʤ롣 +の初期値と使用される値。 +MTU probing が有効な場合、この値はその接続の MSS の初期値となる。 .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt .TP .\"O .IR tcp_bic " (Boolean; default: disabled; Linux 2.4.27/2.6.6 to 2.6.13)" -.IR tcp_bic " (Boolean; default: disabled; Linux 2.4.27/2.6.6 ¤«¤é 2.6.13 ¤Þ¤Ç)" +.IR tcp_bic " (Boolean; default: disabled; Linux 2.4.27/2.6.6 から 2.6.13 まで)" .\"O Enable BIC TCP congestion control algorithm. .\"O BIC-TCP is a sender-side only change that ensures a linear RTT .\"O fairness under large windows while offering both scalability and @@ -510,106 +510,106 @@ MTU probing .\"O increment ensures linear RTT fairness as well as good scalability. .\"O Under small congestion windows, binary search .\"O increase provides TCP friendliness. -BIC TCP íÕíÔÀ©¸æ¥¢¥ë¥´¥ê¥º¥à¤òÍ­¸ú¤Ë¤¹¤ë¡£ -BIC-TCP ¤ÏÁ÷¿®Â¦¤Î¤ß¤ÎÊѹ¹¤Ç¡¢ -¥¹¥±¡¼¥é¥Ó¥ê¥Æ¥£¤È TCP ¿ÆÏÂÀ­ (friendliness) ¤ÎξÊý¤òÄ󶡤·¤Ä¤Ä¡¢ -Â礭¤Ê¥¦¥£¥ó¥É¥¦¤Î²¼¤Ç¤ÎÀþ·Á¤Ê RTT ¸øÊ¿À­¤òÊݾڤ¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î¥×¥í¥È¥³¥ë¤Ç¤Ï additive increase (ÄɲÃŪ¤ÊÁý²Ã) ¤È -binary search increase (Æóʬõº÷Áý²Ã) ¤È¤¤¤ï¤ì¤ëÆó¤Ä¤Î»ÅÁȤߤò -ÁȤ߹ç¤ï¤»¤Æ¤¤¤ë¡£íÕíÔ¥¦¥£¥ó¥É¥¦¤¬Â礭¤¤¤È¤­¤Ï¡¢Áýʬ¤ÎÂ礭¤¤ -additive increase ¤Ë¤è¤ê¡¢¥¹¥±¡¼¥é¥Ó¥ê¥Æ¥£¤ò³ÎÊݤ·¤Ê¤¬¤é -Àþ·Á¤Ê RTT ¸øÊ¿À­¤òÊݾڤ¹¤ë¡£ -íÕíÔ¥¦¥£¥ó¥É¥¦¤¬¾®¤µ¤¤¤È¤­¤Ë¤Ï binary search increase ¤Ë¤è¤ê -TCP ¿ÆÏÂÀ­¤òãÀ®¤·¤Æ¤¤¤ë¡£ +BIC TCP 輻輳制御アルゴリズムを有効にする。 +BIC-TCP は送信側のみの変更で、 +スケーラビリティと TCP 親和性 (friendliness) の両方を提供しつつ、 +大きなウィンドウの下での線形な RTT 公平性を保証するものである。 +このプロトコルでは additive increase (追加的な増加) と +binary search increase (二分探索増加) といわれる二つの仕組みを +組み合わせている。輻輳ウィンドウが大きいときは、増分の大きい +additive increase により、スケーラビリティを確保しながら +線形な RTT 公平性を保証する。 +輻輳ウィンドウが小さいときには binary search increase により +TCP 親和性を達成している。 .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt .TP .\"O .IR tcp_bic_low_window " (integer; default: 14; Linux 2.4.27/2.6.6 to 2.6.13)" -.IR tcp_bic_low_window " (integer; default: 14; Linux 2.4.27/2.6.6 °Ê¹ß 2.6.13 ¤Þ¤Ç)" +.IR tcp_bic_low_window " (integer; default: 14; Linux 2.4.27/2.6.6 以降 2.6.13 まで)" .\"O Set the threshold window (in packets) where BIC TCP starts to .\"O adjust the congestion window. .\"O Below this threshold BIC TCP behaves the same as the default TCP Reno. -BIC TCP ¤¬íÕíÔ¥¦¥£¥ó¥É¥¦¤ÎÄ´À°¤ò³«»Ï¤¹¤ëïçÃÍ¥¦¥£¥ó¥É¥¦ (¥Ñ¥±¥Ã¥Èñ°Ì) -¤òÀßÄꤹ¤ë¡£¤³¤ÎïçÃͤò²¼²ó¤ë¾ì¹ç¡¢BIC TCP ¤Ï¥Ç¥Õ¥©¥ë¥È¤Î TCP Reno ¤È -Ʊ¤¸Æ°ºî¤ò¤¹¤ë¡£ +BIC TCP が輻輳ウィンドウの調整を開始する閾値ウィンドウ (パケット単位) +を設定する。この閾値を下回る場合、BIC TCP はデフォルトの TCP Reno と +同じ動作をする。 .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt .TP .\"O .IR tcp_bic_fast_convergence " (Boolean; default: enabled; Linux 2.4.27/2.6.6 to 2.6.13)" -.IR tcp_bic_fast_convergence " (Boolean; default: enabled; Linux 2.4.27/2.6.6 °Ê¹ß 2.6.13 ¤Þ¤Ç)" +.IR tcp_bic_fast_convergence " (Boolean; default: enabled; Linux 2.4.27/2.6.6 以降 2.6.13 まで)" .\"O Force BIC TCP to more quickly respond to changes in congestion window. .\"O Allows two flows sharing the same connection to converge more rapidly. -BIC TCP ¤¬íÕíÔ¥¦¥£¥ó¥É¥¦¤ÎÊѲ½¤Ë¤è¤ê®¤¯È¿±þ¤¹¤ë¤è¤¦¤Ë¤¹¤ë¡£ -Ʊ¤¸¥³¥Í¥¯¥·¥ç¥ó¤ò¶¦Í­¤¹¤ëÆó¤Ä¤Î¥Õ¥í¡¼¤¬°ì¤Ä¤Ë¤Þ¤È¤Þ¤ë¤Î¤ò -¤è¤ê®¤¯¹Ô¤¦¤è¤¦¤Ë¤¹¤ë¡£ +BIC TCP が輻輳ウィンドウの変化により速く反応するようにする。 +同じコネクションを共有する二つのフローが一つにまとまるのを +より速く行うようにする。 .TP .\"O .IR tcp_congestion_control " (String; default: see text; since Linux 2.4.13)" -.IR tcp_congestion_control " (String; default: ÀâÌÀ»²¾È; Linux 2.4.13 °Ê¹ß)" +.IR tcp_congestion_control " (String; default: 説明参照; Linux 2.4.13 以降)" .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt .\"O Set the default congestion-control algorithm to be used for new connections. .\"O The algorithm "reno" is always available, .\"O but additional choices may be available depending on kernel configuration. .\"O The default value for this file is set as part of kernel configuration. -¿·µ¬¤ÎÀܳ¤Ç»ÈÍѤµ¤ì¤ë¥Ç¥Õ¥©¥ë¥È¤ÎíÕíÔÀ©¸æ¥¢¥ë¥´¥ê¥º¥à¤òÀßÄꤹ¤ë¡£ -"reno" ¥¢¥ë¥´¥ê¥º¥à¤Ï¾ï¤ËÍøÍѲÄǽ¤À¤¬¡¢ -¥«¡¼¥Í¥ëÀßÄ꼡Âè¤Ç¤ÏÊ̤ÎÁªÂò»è¤¬ÍøÍѤǤ­¤ë¤³¤È¤â¤¢¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤϥ«¡¼¥Í¥ëÀßÄê¤Î°ì¤Ä¤È¤·¤ÆÀßÄꤵ¤ì¤ë¡£ +新規の接続で使用されるデフォルトの輻輳制御アルゴリズムを設定する。 +"reno" アルゴリズムは常に利用可能だが、 +カーネル設定次第では別の選択肢が利用できることもある。 +このファイルのデフォルト値はカーネル設定の一つとして設定される。 .TP .\"O .IR tcp_dma_copybreak " (integer; default: 4096; since Linux 2.6.24)" -.IR tcp_dma_copybreak " (integer; default: 4096; Linux 2.6.24 °Ê¹ß)" +.IR tcp_dma_copybreak " (integer; default: 4096; Linux 2.6.24 以降)" .\"O Lower limit, in bytes, of the size of socket reads that will be .\"O offloaded to a DMA copy engine, if one is present in the system .\"O and the kernel was configured with the .\"O .B CONFIG_NET_DMA .\"O option. -¥·¥¹¥Æ¥à¤Ë DMA ¥³¥Ô¡¼¥¨¥ó¥¸¥ó¤¬Â¸ºß¤·¡¢¥«¡¼¥Í¥ë¤Ç +システムに DMA コピーエンジンが存在し、カーネルで .B CONFIG_NET_DMA -¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢ -DMA ¥³¥Ô¡¼¥¨¥ó¥¸¥ó¤Ë¥ª¥Õ¥í¡¼¥É¤µ¤ì¤ë¥½¥±¥Ã¥È¤ÎÆɤ߹þ¤ß¥µ¥¤¥º¤Î²¼¸ÂÃÍ -(¥Ð¥¤¥Èñ°Ì)¡£ +オプションが有効になっている場合に、 +DMA コピーエンジンにオフロードされるソケットの読み込みサイズの下限値 +(バイト単位)。 .TP .\"O .IR tcp_dsack " (Boolean; default: enabled; since Linux 2.4)" -.IR tcp_dsack " (Boolean; default: enabled; Linux 2.4 °Ê¹ß)" +.IR tcp_dsack " (Boolean; default: enabled; Linux 2.4 以降)" .\" Since 2.4.0-test7 .\"O Enable RFC\ 2883 TCP Duplicate SACK support. -RFC\ 2883 ¤Î TCP Duplicate SACK ¤Î¥µ¥Ý¡¼¥È¤òÍ­¸ú¤Ë¤¹¤ë¡£ +RFC\ 2883 の TCP Duplicate SACK のサポートを有効にする。 .TP .\"O .IR tcp_ecn " (Boolean; default: disabled; since Linux 2.4)" -.IR tcp_ecn " (Boolean; default: disabled; Linux 2.4 °Ê¹ß)" +.IR tcp_ecn " (Boolean; default: disabled; Linux 2.4 以降)" .\" Since 2.4.0-test7 .\"O Enable RFC\ 2884 Explicit Congestion Notification. .\"O When enabled, connectivity to some .\"O destinations could be affected due to older, misbehaving .\"O routers along the path causing connections to be dropped. -RFC\ 2884 ¤Î Explicit Congestion Notification ¤òÍ­¸ú¤Ë¤¹¤ë¡£ -¤³¤ì¤òÍ­¸ú¤Ë¤¹¤ë¤È¡¢´Ö°ã¤Ã¤¿¿¶Éñ¤¤¤ò¤¹¤ë¸Å¤¤¥ë¡¼¥¿¤¬ -·ÐÏ©¤ÎÅÓÃæ¤Ë¤¢¤ë¤è¤¦¤ÊÀܳÀè¤ËÂФ·¤Æ±Æ¶Á¤¬À¸¤¸¡¢ -¾ì¹ç¤Ë¤è¤Ã¤Æ¤ÏÀܳ¤¬Íî¤Á¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +RFC\ 2884 の Explicit Congestion Notification を有効にする。 +これを有効にすると、間違った振舞いをする古いルータが +経路の途中にあるような接続先に対して影響が生じ、 +場合によっては接続が落ちるかもしれない。 .TP .\"O .IR tcp_fack " (Boolean; default: enabled; since Linux 2.2)" -.IR tcp_fack " (Boolean; default: enabled; Linux 2.2 °Ê¹ß)" +.IR tcp_fack " (Boolean; default: enabled; Linux 2.2 以降)" .\" Since 2.1.92 .\"O Enable TCP Forward Acknowledgement support. -TCP Forward Acknowledgement ¤Î¥µ¥Ý¡¼¥È¤òÍ­¸ú¤Ë¤¹¤ë¡£ +TCP Forward Acknowledgement のサポートを有効にする。 .TP .\"O .IR tcp_fin_timeout " (integer; default: 60; since Linux 2.2)" -.IR tcp_fin_timeout " (integer; default: 60; Linux 2.2 °Ê¹ß)" +.IR tcp_fin_timeout " (integer; default: 60; Linux 2.2 以降)" .\" Since 2.1.53 .\"O This specifies how many seconds to wait for a final FIN packet before the .\"O socket is forcibly closed. .\"O This is strictly a violation of the TCP specification, .\"O but required to prevent denial-of-service attacks. .\"O In Linux 2.2, the default value was 180. -¥½¥±¥Ã¥È¤ò¶¯À©Åª¤Ë¥¯¥í¡¼¥º¤¹¤ëÁ°¤Ë¡¢ -ºÇ¸å¤Î FIN ¥Ñ¥±¥Ã¥È¤òÂԤĻþ´Ö¤òÉÃñ°Ì¤Ç»ØÄꤹ¤ë¡£ -¤³¤ì¤Ï¸·Ì©¤Ë¤Ï TCP ¤Î»ÅÍͤòËþ¤¿¤·¤Æ¤¤¤Ê¤¤¤¬¡¢ -DoS ¹¶·â (denial of service attack) ¤«¤é¿È¤ò¼é¤ë¤¿¤á¤ËɬÍפǤ¢¤ë¡£ -Linux 2.2 ¤Ç¤Ï¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 180 ¤Ç¤¢¤Ã¤¿¡£ +ソケットを強制的にクローズする前に、 +最後の FIN パケットを待つ時間を秒単位で指定する。 +これは厳密には TCP の仕様を満たしていないが、 +DoS 攻撃 (denial of service attack) から身を守るために必要である。 +Linux 2.2 ではデフォルト値は 180 であった。 .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt .TP .\"O .IR tcp_frto " (integer; default: 0; since Linux 2.4.21/2.6)" -.IR tcp_frto " (integer; default: 0; Linux 2.4.21/2.6 °Ê¹ß)" +.IR tcp_frto " (integer; default: 0; Linux 2.4.21/2.6 以降)" .\" Since 2.4.21/2.5.43 .\"O Enable F-RTO, an enhanced recovery algorithm for TCP retransmission .\"O timeouts (RTOs). @@ -617,50 +617,50 @@ Linux 2.2 .\"O where packet loss is typically due to random radio interference .\"O rather than intermediate router congestion. .\"O See RFC 4138 for more details. -F-RTO ¤òÍ­¸ú¤Ë¤¹¤ë¡£F-RTO ¤Ï TCP ºÆÁ÷¥¿¥¤¥à¥¢¥¦¥È (RTO) ¤«¤é¤Î -ÉüµìÀ­Ç½¤ò¸þ¾å¤µ¤»¤¿¥¢¥ë¥´¥ê¥º¥à¤Ç¤¢¤ë¡£ -¤³¤Îµ¡Ç½¤Ï̵Àþ´Ä¶­¤ÇÆä˸ú²Ì¤òȯ´ø¤¹¤ë¡£ -̵Àþ´Ä¶­¤Ç¤Ï¡¢Ä̾ï¤Ï¡¢Ãæ´Ö¥ë¡¼¥¿¤ÎíÕíԤǤϤʤ¯¥é¥ó¥À¥à¤Ê̵Àþ¤Î´³¾Ä -¤Ë¤è¤ê¥Ñ¥±¥Ã¥È¥í¥¹¤¬È¯À¸¤¹¤ë¡£ -¾ÜºÙ¤Ï RFC\ 4138 ¤ò»²¾È¡£ +F-RTO を有効にする。F-RTO は TCP 再送タイムアウト (RTO) からの +復旧性能を向上させたアルゴリズムである。 +この機能は無線環境で特に効果を発揮する。 +無線環境では、通常は、中間ルータの輻輳ではなくランダムな無線の干渉 +によりパケットロスが発生する。 +詳細は RFC\ 4138 を参照。 .\"O This file can have one of the following values: -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«¤ÎÃͤò¼è¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +このファイルは以下のいずれかの値を取ることができる。 .RS .IP 0 3 .\"O Disabled. -F-RTO ¤ò̵¸ú¤Ë¤¹¤ë¡£ +F-RTO を無効にする。 .IP 1 .\"O The basic version F-RTO algorithm is enabled. -´ðËÜÈǤΠF-RTO ¥¢¥ë¥´¥ê¥º¥à¤òÍ­¸ú¤Ë¤¹¤ë¡£ +基本版の F-RTO アルゴリズムを有効にする。 .IP 2 .\"O Enable SACK-enhanced F-RTO if flow uses SACK. .\"O The basic version can be used also when .\"O SACK is in use though in that case scenario(s) exists where F-RTO .\"O interacts badly with the packet counting of the SACK-enabled TCP flow. -¤½¤Î¥Õ¥í¡¼¤Ç SACK ¤ò»ÈÍѤ¹¤ë¾ì¹ç¡¢SACK ³ÈÄ¥ÈǤΠF-RTO ¤òÍ­¸ú¤Ë¤¹¤ë¡£ -´ðËÜÈǤΠF-RTO ¤â SACK ¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤â»ÈÍѤǤ­¤ë¤¬¡¢ -´ðËÜÈǤξì¹ç¤Ë¤Ï F-RTO ¤¬ SACK ¤¬Í­¸ú¤Ë¤Ê¤Ã¤¿ TCP ¥Õ¥í¡¼¤Ç¤Î -¥Ñ¥±¥Ã¥È¿ô·×¬¤È¡¢ÁêÀ­¤¬°­¤¯Áê¸ß´³¾Ä¤¬µ¯¤³¤ë¾ìÌ̤¬Â¸ºß¤¹¤ë¡£ +そのフローで SACK を使用する場合、SACK 拡張版の F-RTO を有効にする。 +基本版の F-RTO も SACK が使用されている場合にも使用できるが、 +基本版の場合には F-RTO が SACK が有効になった TCP フローでの +パケット数計測と、相性が悪く相互干渉が起こる場面が存在する。 .RE .IP .\"O Before Linux 2.6.22, this parameter was a Boolean value, .\"O supporting just values 0 and 1 above. -Linu 2.6.22 ¤è¤êÁ°¤Ç¤Ï¡¢¤³¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¥Ö¡¼¥ëÃͤǤ¢¤ê¡¢ -¾åµ­¤Î 0 ¤È 1 ¤Î¤ß¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤¿¡£ +Linu 2.6.22 より前では、このパラメータはブール値であり、 +上記の 0 と 1 のみをサポートしていた。 .TP .\"O .IR tcp_frto_response " (integer; default: 0; since Linux 2.6.22)" -.IR tcp_frto_response " (integer; default: 0; Linux 2.6.22 °Ê¹ß)" +.IR tcp_frto_response " (integer; default: 0; Linux 2.6.22 以降)" .\"O When F-RTO has detected that a TCP retransmission timeout was spurious .\"O (i.e, the timeout would have been avoided had TCP set a .\"O longer retransmission timeout), .\"O TCP has several options concerning what to do next. .\"O Possible values are: -F-RTO ¤¬ TCP ºÆÁ÷¥¿¥¤¥à¥¢¥¦¥È¤¬µ¶Êª¤À¤È¸¡½Ð¤·¤¿¾ì¹ç -(¤Ä¤Þ¤ê¡¢TCP ¤¬¤â¤Ã¤ÈŤ¤ºÆÁ÷¥¿¥¤¥à¥¢¥¦¥È¤òÀßÄꤷ¤Æ¤¤¤ì¤Ð -¥¿¥¤¥à¥¢¥¦¥È¤¬Èò¤±¤é¤ì¤¿¾ì¹ç)¡¢ -¼¡¤Ë¤É¤¦¤¹¤ë¤«¤Ë´Ø¤·¤ÆÁªÂò»è¤¬¤¤¤¯¤Ä¤«¤¢¤ë¡£ -°Ê²¼¤ÎÃͤòÁªÂò¤Ç¤­¤ë¡£ +F-RTO が TCP 再送タイムアウトが偽物だと検出した場合 +(つまり、TCP がもっと長い再送タイムアウトを設定していれば +タイムアウトが避けられた場合)、 +次にどうするかに関して選択肢がいくつかある。 +以下の値を選択できる。 .RS .IP 0 3 .\"O Rate halving based; a smooth and conservative response, @@ -669,13 +669,13 @@ F-RTO .\"O and slow-start threshold .\"O .RI ( ssthresh ) .\"O after one RTT. -¥ì¡¼¥È¤ò¸µ¤ÎȾʬ¤Ë¤¹¤ë¡£ -³ê¤é¤«¤Ç¡¢ÊݼéŪ¤ÊÈ¿±þ¤ò¹Ô¤¤¡¢RTT 1²óʬ¤Î»þ´Ö¸å¤Ë -íÕíÔ¥¦¥£¥ó¥É¥¦ +レートを元の半分にする。 +滑らかで、保守的な反応を行い、RTT 1回分の時間後に +輻輳ウィンドウ .RI ( cwnd ) -¤È¥¹¥í¡¼¥¹¥¿¡¼¥È¤ÎïçÃÍ +とスロースタートの閾値 .RI ( ssthresh ) -¤¬È¾Ê¬¤Ë¤Ê¤ë¡£ +が半分になる。 .IP 1 .\"O Very conservative response; not recommended because even .\"O though being valid, it interacts poorly with the rest of Linux TCP; halves @@ -683,13 +683,13 @@ F-RTO .\"O and .\"O .I ssthresh .\"O immediately. -Èó¾ï¤ËÊݼéŪ¤ÊÈ¿±þ¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Î»ÈÍѤϿ侩¤µ¤ì¤Ê¤¤¡£ -È¿±þ¤¬Àµ¤·¤«¤Ã¤¿¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢Linux TCP ¤Î¾¤ÎÉôʬ¤È -¤¦¤Þ¤¯Ï¢·È¤Ç¤­¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +非常に保守的な反応。このオプションの使用は推奨されない。 +反応が正しかった場合であっても、Linux TCP の他の部分と +うまく連携できないからである。 .I cwnd -¤È +と .I ssthresh -¤Ïľ¤Á¤ËȾʬ¤Ë¤µ¤ì¤ë¡£ +は直ちに半分にされる。 .IP 2 .\"O Aggressive response; undoes congestion-control measures .\"O that are now known to be unnecessary @@ -699,35 +699,35 @@ F-RTO .\"O and .\"O .I ssthresh .\"O are restored to the values prior to timeout. -.\"O motoki: ³ç¸ÌÆâ (ignoring ¡Á) ¤ÎÉôʬ¤Î°ÕÌ£¤òº£°ì¤ÄÍý²ò¤Ç¤­¤Æ¤¤¤Þ¤»¤ó¡£ -ÀѶËŪ¤ÊÈ¿±þ¡£ -ÉÔÍפÈȽÌÀ¤·¤¿íÕíÔÀ©¸æ¤Î¬Äê¾ðÊó¤ò¼è¤ê¾Ã¤¹ -(TCP ¤¬¤â¤Ã¤ÈÃí°Õ¿¼¤¯°·¤¦¤Ù¤­ºÆÁ÷¤¬¼º¤ï¤ì¤ë²ÄǽÀ­¤ò̵»ë¤¹¤ë)¡£ -¡£ +.\"O motoki: 括弧内 (ignoring 〜) の部分の意味を今一つ理解できていません。 +積極的な反応。 +不要と判明した輻輳制御の測定情報を取り消す +(TCP がもっと注意深く扱うべき再送が失われる可能性を無視する)。 +。 .I cwnd -¤È +と .I ssthresh -¤Ï¥¿¥¤¥à¥¢¥¦¥ÈÁ°¤ÎÃͤËÌᤵ¤ì¤ë¡£ +はタイムアウト前の値に戻される。 .RE .TP .\"O .IR tcp_keepalive_intvl " (integer; default: 75; since Linux 2.4)" -.IR tcp_keepalive_intvl " (integer; default: 75; Linux 2.4 °Ê¹ß)" +.IR tcp_keepalive_intvl " (integer; default: 75; Linux 2.4 以降)" .\" Since 2.3.18 .\"O The number of seconds between TCP keep-alive probes. -TCP keep-alive ¤Î¥×¥í¡¼¥Ö¤òÁ÷¤ë´Ö³Ö (ÉÃñ°Ì)¡£ +TCP keep-alive のプローブを送る間隔 (秒単位)。 .TP .\"O .IR tcp_keepalive_probes " (integer; default: 9; since Linux 2.2)" -.IR tcp_keepalive_probes " (integer; default: 9; Linux 2.2 °Ê¹ß)" +.IR tcp_keepalive_probes " (integer; default: 9; Linux 2.2 以降)" .\" Since 2.1.43 .\"O The maximum number of TCP keep-alive probes to send .\"O before giving up and killing the connection if .\"O no response is obtained from the other end. -TCP keep-alive ¥×¥í¡¼¥Ö¤ÎºÇÂç²ó¿ô¡£ -¤³¤Î²ó¿ô¤À¤±»î¤·¤Æ¤âÀܳÀ褫¤éÈ¿±þ¤¬ÆÀ¤é¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢ -¤¢¤­¤é¤á¤ÆÀܳ¤òÀÚÃǤ¹¤ë¡£ +TCP keep-alive プローブの最大回数。 +この回数だけ試しても接続先から反応が得られない場合は、 +あきらめて接続を切断する。 .TP .\"O .IR tcp_keepalive_time " (integer; default: 7200; since Linux 2.2)" -.IR tcp_keepalive_time " (integer; default: 7200; Linux 2.2 °Ê¹ß)" +.IR tcp_keepalive_time " (integer; default: 7200; Linux 2.2 以降)" .\" Since 2.1.43 .\"O The number of seconds a connection needs to be idle .\"O before TCP begins sending out keep-alive probes. @@ -738,39 +738,39 @@ TCP keep-alive .\"O An idle connection is terminated after .\"O approximately an additional 11 minutes (9 probes an interval .\"O of 75 seconds apart) when keep-alive is enabled. -Àܳ¤¬¥¢¥¤¥É¥ë¾õÂ֤ˤʤäƤ«¤é¡¢keep-alive -¥×¥í¡¼¥Ö¤òÁ÷¿®¤¹¤ë¤Þ¤Ç¤Î»þ´Ö¤òÉÃñ°Ì¤Ç»ØÄꤹ¤ë¡£ +接続がアイドル状態になってから、keep-alive +プローブを送信するまでの時間を秒単位で指定する。 .B SO_KEEPALIVE -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤È -keep-alive ¤ÏÁ÷¤é¤ì¤Ê¤¤¡£ -¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 7200 Éà (2 »þ´Ö)¡£ -keep-alive ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -¤µ¤é¤Ë¤ª¤è¤½ 11 ʬ (75 Éôֳ֤Π9 ¥×¥í¡¼¥Öʬ) -·Ð²á¤¹¤ë¤È¥¢¥¤¥É¥ë¾õÂÖ¤ÎÀܳ¤Ï½ªÎ»¤µ¤»¤é¤ì¤ë¡£ +ソケットオプションが有効になっていないと +keep-alive は送られない。 +デフォルト値は 7200 秒 (2 時間)。 +keep-alive が有効になっている場合、 +さらにおよそ 11 分 (75 秒間隔の 9 プローブ分) +経過するとアイドル状態の接続は終了させられる。 .\"O Note that underlying connection tracking mechanisms and .\"O application timeouts may be much shorter. -²¼Áؤˤ¢¤ëÀܳÄÉÀ×µ¡¹½¤ä¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Î¥¿¥¤¥à¥¢¥¦¥È¤Ï¡¢ -¤â¤Ã¤È¤º¤Ã¤Èû¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ +下層にある接続追跡機構やアプリケーションでのタイムアウトは、 +もっとずっと短いかもしれない。 .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt .TP .\"O .IR tcp_low_latency " (Boolean; default: disabled; since Linux 2.4.21/2.6)" -.IR tcp_low_latency " (Boolean; default: disabled; Linux 2.4.21/2.6 °Ê¹ß)" +.IR tcp_low_latency " (Boolean; default: disabled; Linux 2.4.21/2.6 以降)" .\" Since 2.4.21/2.5.60 .\"O If enabled, the TCP stack makes decisions that prefer lower .\"O latency as opposed to higher throughput. .\"O It this option is disabled, then higher throughput is preferred. .\"O An example of an application where this default should be .\"O changed would be a Beowulf compute cluster. -Í­¸ú¤Ë¤¹¤ë¤È¡¢TCP ¥¹¥¿¥Ã¥¯¤Ï¥¹¥ë¡¼¥×¥Ã¥È¤ò¹â¤¯¤¹¤ë¤è¤ê¤â -ÃÙ±ä¤ò¾¯¤Ê¤¯¤¹¤ë¤³¤È¤òÍ¥À褷¤ÆȽÃǤò¹Ô¤¦¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò̵¸ú¤Ë¤¹¤ë¤È¡¢¥¹¥ë¡¼¥×¥Ã¥È¤ò¹â¤¯¤¹¤ë¤³¤È¤¬Í¥À褵¤ì¤ë¡£ -¤³¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤòÊѹ¹¤·¤¿Êý¤¬¤è¤¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÎã¤È¤·¤Æ¤Ï -Beowulf ¥³¥ó¥Ô¥å¡¼¥¿¥¯¥é¥¹¥¿¤¬µó¤²¤é¤ì¤ë¤À¤í¤¦¡£ +有効にすると、TCP スタックはスループットを高くするよりも +遅延を少なくすることを優先して判断を行う。 +このオプションを無効にすると、スループットを高くすることが優先される。 +このデフォルト値を変更した方がよいアプリケーションの例としては +Beowulf コンピュータクラスタが挙げられるだろう。 .TP .\"O .IR tcp_max_orphans " (integer; default: see below; since Linux 2.4)" -.IR tcp_max_orphans " (integer; default: see below; Linux 2.4 °Ê¹ß)" +.IR tcp_max_orphans " (integer; default: see below; Linux 2.4 以降)" .\" Since 2.3.41 .\"O The maximum number of orphaned (not attached to any user file .\"O handle) TCP sockets allowed in the system. @@ -783,20 +783,20 @@ Beowulf .\"O of unswappable memory. .\"O The default initial value is set equal to the kernel parameter NR_FILE. .\"O This initial default is adjusted depending on the memory in the system. -¥·¥¹¥Æ¥à¤¬µöÍƤ¹¤ë¡¢ -orphan ¤Ê (¤É¤Î¥æ¡¼¥¶¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤Ë¤â¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤Ê¤¤) -TCP ¥½¥±¥Ã¥È¤ÎºÇÂç¿ô¡£ -¤³¤Î¿ô¤ò±Û¤¨¤ë¤È¡¢orphan ¤ÊÀܳ¤Ï¥ê¥»¥Ã¥È¤µ¤ì¡¢·Ù¹ð¤¬É½¼¨¤µ¤ì¤ë¡£ -¤³¤ÎÀ©¸Â¤¬Â¸ºß¤¹¤ë¤Î¤Ï¡¢Ã±½ã¤Ê»ÈÍÑÉÔǽ (denial-of-service) ¹¶·â¤ò -Ëɤ°¤¿¤á¤Ë²á¤®¤Ê¤¤¡£¤³¤ÎÃͤò¾®¤µ¤¯¤¹¤ë¤³¤È¤Ï¿ä¾©¤·¤Ê¤¤¡£ -¥Í¥Ã¥È¥ï¡¼¥¯¤Î¾ò·ï¤Ë¤è¤Ã¤Æ¤Ï¡¢¤³¤Î¿ôÃͤòÂ礭¤¯¤·¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¤¬¡¢ -orphan ¤Ê¥½¥±¥Ã¥È¤Ò¤È¤Ä¤¢¤¿¤ê -64K ÄøÅ٤Υ¹¥ï¥Ã¥×ÉÔ²Äǽ¤Ê¥á¥â¥ê¤ò¾ÃÈñ¤¹¤ë¤³¤È¤âÃí°Õ¤»¤è¡£ -¥Ç¥Õ¥©¥ë¥È¤Î½é´üÃͤϥ«¡¼¥Í¥ë¥Ñ¥é¥á¡¼¥¿¤Î NR_FILE ¤ÈÅù¤·¤¤¡£ -¤³¤Î½é´ü¥Ç¥Õ¥©¥ë¥ÈÃͤϥ·¥¹¥Æ¥à¤Î¥á¥â¥ê¤Ë±þ¤¸¤ÆÄ´À°¤µ¤ì¤ë¡£ +システムが許容する、 +orphan な (どのユーザファイルハンドルにもアタッチされていない) +TCP ソケットの最大数。 +この数を越えると、orphan な接続はリセットされ、警告が表示される。 +この制限が存在するのは、単純な使用不能 (denial-of-service) 攻撃を +防ぐために過ぎない。この値を小さくすることは推奨しない。 +ネットワークの条件によっては、この数値を大きくしないといけないかもしれないが、 +orphan なソケットひとつあたり +64K 程度のスワップ不可能なメモリを消費することも注意せよ。 +デフォルトの初期値はカーネルパラメータの NR_FILE と等しい。 +この初期デフォルト値はシステムのメモリに応じて調整される。 .TP .\"O .IR tcp_max_syn_backlog " (integer; default: see below; since Linux 2.2)" -.IR tcp_max_syn_backlog " (integer; default: ²¼µ­»²¾È; Linux 2.2 °Ê¹ß)" +.IR tcp_max_syn_backlog " (integer; default: 下記参照; Linux 2.2 以降)" .\" Since 2.1.53 .\"O The maximum number of queued connection requests which have .\"O still not received an acknowledgement from the connecting client. @@ -812,20 +812,20 @@ orphan .\"O be modified to keep .\"O TCP_SYNQ_HSIZE*16<=tcp_max_syn_backlog, and the kernel be .\"O recompiled. -Àܳ¤·¤Æ¤­¤Æ¤¤¤ë¥¯¥é¥¤¥¢¥ó¥È¤«¤é -ack ¤ò¼õ¿®¤·¤Æ¤¤¤Ê¤¤¾õÂÖ¤ÎÀܳ¥ê¥¯¥¨¥¹¥È¤ò¥­¥å¡¼¤ËÃÖ¤±¤ëºÇÂç¿ô¡£ -¤³¤Î¿ôÃͤò±Û¤¨¤ë¤È¡¢¥«¡¼¥Í¥ë¤Ï¥ê¥¯¥¨¥¹¥È¤ò¼Î¤Æ»Ï¤á¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÃÍ¤Ï 256 ¤Ç¡¢ -¥·¥¹¥Æ¥à¤Ë½¼Ê¬¤Ê¥á¥â¥ê¤¬¤¢¤ë (128Mb °Ê¾å) ¾ì¹ç¤Ï 1024 ¤Ë¤Ê¤ê¡¢ -¥á¥â¥ê¤¬Èó¾ï¤Ë¾¯¤Ê¤¤¾ì¹ç (32 Mb °Ê²¼) ¤Ï 128 ¤Ë¤Ê¤ë¡£ -¤³¤Î¿ôÃͤò 1024 °Ê¾å¤ËÁý¤ä¤·¤¿¤¤¾ì¹ç¤Ï¡¢ +接続してきているクライアントから +ack を受信していない状態の接続リクエストをキューに置ける最大数。 +この数値を越えると、カーネルはリクエストを捨て始める。 +デフォルトの値は 256 で、 +システムに充分なメモリがある (128Mb 以上) 場合は 1024 になり、 +メモリが非常に少ない場合 (32 Mb 以下) は 128 になる。 +この数値を 1024 以上に増やしたい場合は、 .I include/net/tcp.h -¤Î TCP_SYNQ_HSIZE ¤ò -TCP_SYNQ_HSIZE*16<=tcp_max_syn_backlog ¤Î¤è¤¦¤Ë½¤Àµ¤·¡¢ -¥«¡¼¥Í¥ë¤òºÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¤ò¾©¤á¤ë¡£ +の TCP_SYNQ_HSIZE を +TCP_SYNQ_HSIZE*16<=tcp_max_syn_backlog のように修正し、 +カーネルを再コンパイルすることを奨める。 .TP .\"O .IR tcp_max_tw_buckets " (integer; default: see below; since Linux 2.4)" -.IR tcp_max_tw_buckets " (integer; default: ²¼µ­»²¾È; Linux 2.4 °Ê¹ß)" +.IR tcp_max_tw_buckets " (integer; default: 下記参照; Linux 2.4 以降)" .\" Since 2.3.41 .\"O The maximum number of sockets in TIME_WAIT state allowed in .\"O the system. @@ -834,27 +834,27 @@ TCP_SYNQ_HSIZE*16<=tcp_max_syn_backlog .\"O depending on the memory in the system. .\"O If this number is .\"O exceeded, the socket is closed and a warning is printed. -¥·¥¹¥Æ¥à¤¬µöÍƤ¹¤ë TIME_WAIT ¾õÂ֤ˤ¢¤ë¥½¥±¥Ã¥È¤ÎºÇÂç¿ô¡£ -¤³¤ÎÀ©¸Â¤¬Â¸ºß¤¹¤ë¤Î¤Ï¡¢ -ñ½ã¤Ê»ÈÍÑÉÔǽ (denial-of-service) ¹¶·â¤òËɤ°¤¿¤á¤Ë²á¤®¤Ê¤¤¡£ -¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï NR_FILE*2 ¤Ç¡¢¥·¥¹¥Æ¥à¤Î¥á¥â¥ê¤Ë±þ¤¸¤ÆÄ´À°¤µ¤ì¤ë¡£ -¤³¤Î¿ôÃͤò±Û¤¨¤ë¤È¡¢¤½¤Î¤è¤¦¤Ê¥½¥±¥Ã¥È¤Ï¥¯¥í¡¼¥º¤µ¤ì¡¢·Ù¹ð¤¬É½¼¨¤µ¤ì¤ë¡£ +システムが許容する TIME_WAIT 状態にあるソケットの最大数。 +この制限が存在するのは、 +単純な使用不能 (denial-of-service) 攻撃を防ぐために過ぎない。 +デフォルト値は NR_FILE*2 で、システムのメモリに応じて調整される。 +この数値を越えると、そのようなソケットはクローズされ、警告が表示される。 .TP .\"O .IR tcp_moderate_rcvbuf " (Boolean; default: enabled; since Linux 2.4.17/2.6.7)" -.IR tcp_moderate_rcvbuf " (Boolean; default: enabled; Linux 2.4.17/2.6.7 °Ê¹ß)" +.IR tcp_moderate_rcvbuf " (Boolean; default: enabled; Linux 2.4.17/2.6.7 以降)" .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt .\"O If enabled, TCP performs receive buffer auto-tuning, .\"O attempting to automatically size the buffer (no greater than .\"O .IR tcp_rmem[2] ) .\"O to match the size required by the path for full throughput. -Í­¸ú¤Ë¤¹¤ë¤È¡¢TCP ¤Ï¼õ¿®¥Ð¥Ã¥Õ¥¡¤Î¼«Æ°Ä´À°¤ò¹Ô¤¦¡£ -¶ñÂÎŪ¤Ë¤Ï¡¢ +有効にすると、TCP は受信バッファの自動調整を行う。 +具体的には、 .RI ( tcp_rmem[2] -¤òĶ¤¨¤Ê¤¤ÈϰϤÇ) ¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ¤ò¼«Æ°Åª¤ËÊѲ½¤µ¤»¡¢ -¤½¤Î·ÐÏ©¤ÇºÇÂç¤Î¥¹¥ë¡¼¥×¥Ã¥È¤òãÀ®¤¹¤ë¤Î¤ËɬÍפÊÂ礭¤µ¤Ë¹ç¤ï¤»¤è¤¦¤È¤¹¤ë¡£ +を超えない範囲で) バッファの大きさを自動的に変化させ、 +その経路で最大のスループットを達成するのに必要な大きさに合わせようとする。 .TP .\"O .IR tcp_mem " (since Linux 2.4)" -.IR tcp_mem " (Linux 2.4 °Ê¹ß)" +.IR tcp_mem " (Linux 2.4 以降)" .\" Since 2.4.0-test7 .\"O This is a vector of 3 integers: [low, pressure, high]. .\"O These bounds, measured in units of the system page size, @@ -865,21 +865,21 @@ TCP_SYNQ_HSIZE*16<=tcp_max_syn_backlog .\"O .I "low memory" .\"O for this, which is limited to around 900 megabytes on 32-bit systems. .\"O 64-bit systems do not suffer this limitation.) -¤³¤ì¤Ï 3 ¤Ä¤ÎÀ°¿ô [low, pressure, high] ¤«¤é¤Ê¤ë¥Ù¥¯¥È¥ëÃͤǤ¢¤ë¡£ -¤³¤ì¤é¤Ï TCP ¤¬¥á¥â¥ê»ÈÍÑÎ̤òÄÉÀפ¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë -(»ÈÍÑÎ̤ϥ·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥ºÃ±°Ì¤Ç·×¬¤µ¤ì¤ë)¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï¥Ö¡¼¥È»þ¤ËÍøÍѤǤ­¤ë¥á¥â¥ê¤ÎÎ̤«¤é·×»»¤µ¤ì¤ë¡£ -(¼ÂºÝ¤Ë¤Ï¡¢TCP ¤Ï +これは 3 つの整数 [low, pressure, high] からなるベクトル値である。 +これらは TCP がメモリ使用量を追跡するために用いられる +(使用量はシステムのページサイズ単位で計測される)。 +デフォルトはブート時に利用できるメモリの量から計算される。 +(実際には、TCP は .I "low memory" -¤Î¤ß¤ò»ÈÍѤ¹¤ë¡£ÃÍ¤Ï 32¥Ó¥Ã¥È¥·¥¹¥Æ¥à¤Ç¤ÏÌó 900 ¥á¥¬¥Ð¥¤¥È¤ËÀ©¸Â¤µ¤ì¤ë¡£ -64 ¥Ó¥Ã¥È¥·¥¹¥Æ¥à¤Ç¤Ï¤³¤ÎÀ©¸Â¤Ï¤Ê¤¤¡£) +のみを使用する。値は 32ビットシステムでは約 900 メガバイトに制限される。 +64 ビットシステムではこの制限はない。) .RS .TP 10 .I low .\"O TCP doesn't regulate its memory allocation when the number .\"O of pages it has allocated globally is below this number. -TCP ¤Ï¡¢¥°¥í¡¼¥Ð¥ë¤Ë¥¢¥í¥±¡¼¥È¤·¤¿¥Ú¡¼¥¸¤¬¤³¤Î¿ôÃͰʲ¼¤Î¾ì¹ç¤Ï¡¢ -¥á¥â¥ê¥¢¥í¥±¡¼¥·¥ç¥ó¤òÄ´À°¤·¤Ê¤¤¡£ +TCP は、グローバルにアロケートしたページがこの数値以下の場合は、 +メモリアロケーションを調整しない。 .TP .I pressure .\"O When the amount of memory allocated by TCP @@ -889,44 +889,44 @@ TCP .\"O the .\"O .I low .\"O mark. -TCP ¤¬¥¢¥í¥±¡¼¥È¤·¤¿¥á¥â¥ê¤¬¤³¤Î¿ôÃÍʬ¤Î¥Ú¡¼¥¸¿ô¤ò±Û¤¨¤ë¤È¡¢ -TCP ¤Ï¥á¥â¥ê¾ÃÈñ¤òÍÞ¤¨¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¥¢¥í¥±¡¼¥È¤·¤¿¥Ú¡¼¥¸¿ô¤¬ +TCP がアロケートしたメモリがこの数値分のページ数を越えると、 +TCP はメモリ消費を抑えるようになる。 +アロケートしたページ数が .I low -°Ê²¼¤Ë¤Ê¤ë¤È¡¢¤³¤Î¥á¥â¥ê°µÇ÷¾õÂÖ¤«¤é椹¤ë¡£ +以下になると、このメモリ圧迫状態から脱する。 .TP .I high .\"O The maximum number of pages, globally, that TCP will allocate. .\"O This value overrides any other limits imposed by the kernel. -TCP ¤¬¥°¥í¡¼¥Ð¥ë¤Ë³ä¤êÅö¤Æ¤ë¥Ú¡¼¥¸¿ô¤ÎºÇÂçÃÍ¡£ -¤³¤ÎÃͤϥ«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ²Ý¤µ¤ì¤ë¤¢¤é¤æ¤ëÀ©¸Â¤è¤ê¤âÍ¥À褵¤ì¤ë¡£ +TCP がグローバルに割り当てるページ数の最大値。 +この値はカーネルによって課されるあらゆる制限よりも優先される。 .RE .TP .\"O .IR tcp_mtu_probing " (integer; default: 0; since Linux 2.6.17)" -.IR tcp_mtu_probing " (integer; default: 0; Linux 2.6.17 °Ê¹ß)" +.IR tcp_mtu_probing " (integer; default: 0; Linux 2.6.17 以降)" .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt .\"O This parameter controls TCP Packetization-Layer Path MTU Discovery. .\"O The following values may be assigned to the file: -¤³¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¡¢TCP ¤Î¥Ñ¥±¥Ã¥È²½¥ì¥¤¥ä¤Î Path MTU discovery ¤òÀ©¸æ¤¹¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï°Ê²¼¤ÎÃͤòÀßÄê¤Ç¤­¤ë¡£ +このパラメータは、TCP のパケット化レイヤの Path MTU discovery を制御する。 +このファイルには以下の値を設定できる。 .RS .IP 0 3 .\"O Disabled -̵¸ú¤Ë¤¹¤ë¡£ +無効にする。 .IP 1 .\"O Disabled by default, enabled when an ICMP black hole detected -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï̵¸ú¤À¤¬¡¢ICMP ¥Ö¥é¥Ã¥¯¥Û¡¼¥ë¤¬¸¡½Ð¤µ¤ì¤¿¾ì¹ç¤ÏÍ­¸ú¤Ë¤¹¤ë¡£ +デフォルトでは無効だが、ICMP ブラックホールが検出された場合は有効にする。 .IP 2 .\"O Always enabled, use initial MSS of .\"O .IR tcp_base_mss . -¾ï¤ËÍ­¸ú¤Ë¤¹¤ë¡£ -MSS ¤Î½é´üÃͤȤ·¤Æ +常に有効にする。 +MSS の初期値として .I tcp_base_mss -¤¬»ÈÍѤµ¤ì¤ë¡£ +が使用される。 .RE .TP .\"O .IR tcp_no_metrics_save " (Boolean; default: disabled; since Linux 2.6.6)" -.IR tcp_no_metrics_save " (Boolean; default: disabled; Linux 2.6.6 °Ê¹ß)" +.IR tcp_no_metrics_save " (Boolean; default: disabled; Linux 2.6.6 以降)" .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt .\"O By default, TCP saves various connection metrics in the route cache .\"O when the connection closes, so that connections established in the @@ -936,25 +936,25 @@ MSS .\"O If .\"O .I tcp_no_metrics_save .\"O is enabled, TCP will not cache metrics on closing connections. -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢TCP ¤ÏÀܳ¥¯¥í¡¼¥º»þ¤Ë³Æ¼ï¤ÎÀܳ¥Ñ¥é¥á¡¼¥¿¤ò -¥ë¡¼¥È¥­¥ã¥Ã¥·¥å (route cache) ¤ËÊݸ¤·¡¢¶á¤¤¾­Íè¤ËÀܳ¤¬³ÎΩ¤µ¤ì¤¿ºÝ¤Ë -¤³¤ì¤é¤Î¾ðÊó¤ò½é´ü¾õÂ֤Ȥ·¤Æ»ÈÍѤǤ­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -Ä̾ï¤Ï¡¢¤³¤ì¤Ë¤è¤êÁ´ÂΤȤ·¤ÆÀ­Ç½¤¬¸þ¾å¤¹¤ë¤¬¡¢ -»þ¤È¤·¤ÆÀ­Ç½¤ÎÎô²½¤ò°ú¤­µ¯¤³¤¹¤³¤È¤â¤¢¤ë¡£ +デフォルトでは、TCP は接続クローズ時に各種の接続パラメータを +ルートキャッシュ (route cache) に保存し、近い将来に接続が確立された際に +これらの情報を初期状態として使用できるようになっている。 +通常は、これにより全体として性能が向上するが、 +時として性能の劣化を引き起こすこともある。 .I tcp_no_metrics_save -¤òÍ­¸ú¤Ë¤¹¤ë¤È¡¢TCP ¤ÏÀܳ¥¯¥í¡¼¥º»þ¤ËÀܳ¥Ñ¥é¥á¡¼¥¿¤ò¥­¥ã¥Ã¥·¥å -¤·¤Ê¤¯¤Ê¤ë¡£ +を有効にすると、TCP は接続クローズ時に接続パラメータをキャッシュ +しなくなる。 .TP .\"O .IR tcp_orphan_retries " (integer; default: 8; since Linux 2.4)" -.IR tcp_orphan_retries " (integer; default: 8; Linux 2.4 °Ê¹ß)" +.IR tcp_orphan_retries " (integer; default: 8; Linux 2.4 以降)" .\" Since 2.3.41 .\"O The maximum number of attempts made to probe the other .\"O end of a connection which has been closed by our end. -¤³¤Á¤é¤«¤é¥¯¥í¡¼¥º¤·¤¿Àܳ¤Ë¤Ä¤¤¤Æ¡¢ -ÀèÊý¤ò¥×¥í¡¼¥Ö¤¹¤ëºÇÂç»î¹Ô¿ô¡£ +こちらからクローズした接続について、 +先方をプローブする最大試行数。 .TP .\"O .IR tcp_reordering " (integer; default: 3; since Linux 2.4)" -.IR tcp_reordering " (integer; default: 3; Linux 2.4 °Ê¹ß)" +.IR tcp_reordering " (integer; default: 3; Linux 2.4 以降)" .\" Since 2.4.0-test7 .\"O The maximum a packet can be reordered in a TCP packet stream .\"O without TCP assuming packet loss and going into slow start. @@ -962,23 +962,23 @@ MSS .\"O This is a packet reordering detection metric designed to .\"O minimize unnecessary back off and retransmits provoked by .\"O reordering of packets on a connection. -TCP ¥Ñ¥±¥Ã¥È¥¹¥È¥ê¡¼¥à¤Ç¥Ñ¥±¥Ã¥È½ç½ø¤ÎµÕž¤¬È¯À¸¤·¤¿¤À¤±¤Ç¤¢¤ê¡¢ -¥Ñ¥±¥Ã¥È¥í¥¹¤¬µ¯¤³¤Ã¤¿¤È¤Ï¤ß¤Ê¤µ¤Ê¤¤¡¢¥Ñ¥±¥Ã¥È¿ô¤ÎºÇÂçÃÍ¡£ -¤³¤ÎÃͤòĶ¤¨¤Æ¥Ñ¥±¥Ã¥È¤Î½ç½øµÕž¤¬µ¯¤³¤ë¤È¡¢¥Ñ¥±¥Ã¥È¥í¥¹¤¬À¸¤¸¤¿¤È -¤ß¤Ê¤·¡¢slow start ¤ËÆþ¤ë¡£ -¤³¤Î¿ôÃͤÏÊѹ¹¤·¤Ê¤¤¤Û¤¦¤¬Îɤ¤¡£ -¤³¤ì¤Ï¡¢ÀܳÃæ¤Î¥Ñ¥±¥Ã¥È¤ÎʤÓÂؤ¨¤Ë¤è¤Ã¤ÆÀ¸¤¸¤ë -ÉÔɬÍפÊ®ÅÙÄã²¼¤äºÆÁ÷¤òºÇ¾®²½¤¹¤ë¤è¤¦¤ËÀ߷פµ¤ì¤¿¡¢ -¥Ñ¥±¥Ã¥ÈʤÓÂؤ¨ (packet reordering) ¤Î¸¡ÃÎ¥á¥È¥ê¥Ã¥¯¤Ê¤Î¤Ç¤¢¤ë¡£ +TCP パケットストリームでパケット順序の逆転が発生しただけであり、 +パケットロスが起こったとはみなさない、パケット数の最大値。 +この値を超えてパケットの順序逆転が起こると、パケットロスが生じたと +みなし、slow start に入る。 +この数値は変更しないほうが良い。 +これは、接続中のパケットの並び替えによって生じる +不必要な速度低下や再送を最小化するように設計された、 +パケット並び替え (packet reordering) の検知メトリックなのである。 .TP .\"O .IR tcp_retrans_collapse " (Boolean; default: enabled; since Linux 2.2)" -.IR tcp_retrans_collapse " (Boolean; default: enabled; Linux 2.2 °Ê¹ß)" +.IR tcp_retrans_collapse " (Boolean; default: enabled; Linux 2.2 以降)" .\" Since 2.1.96 .\"O Try to send full-sized packets during retransmit. -ºÆÁ÷¤ÎºÝ¤Ë¥Õ¥ë¥µ¥¤¥º¤Î¥Ñ¥±¥Ã¥È¤òÁ÷¤í¤¦¤È¤¹¤ë¡£ +再送の際にフルサイズのパケットを送ろうとする。 .TP .\"O .IR tcp_retries1 " (integer; default: 3; since Linux 2.2)" -.IR tcp_retries1 " (integer; default: 3; Linux 2.2 °Ê¹ß)" +.IR tcp_retries1 " (integer; default: 3; Linux 2.2 以降)" .\" Since 2.1.43 .\"O The number of times TCP will attempt to retransmit a .\"O packet on an established connection normally, @@ -987,14 +987,14 @@ TCP .\"O retransmits, we first have the network layer .\"O update the route if possible before each new retransmit. .\"O The default is the RFC specified minimum of 3. -ÉáÄ̤˳ÎΩ¤µ¤ì¤Æ¤¤¤ëÀܳ¾å¤Ë¡¢ -TCP ¤¬¥Í¥Ã¥È¥ï¡¼¥¯Áؤò´¬¤­¹þ¤Þ¤º¤ËºÆÁ÷¤ò»î¤ß¤ë²ó¿ô¡£ -ºÆÁ÷¤¬¤³¤Î²ó¿ô¤ò±Û¤¨¤ë¤È¡¢¤Þ¤ººÇ½é¤Ë¡¢ -¿·¤·¤¤ºÆÁ÷¤òÁ÷¤ëÁ°¤Ë²Äǽ¤Ê¤é¥Í¥Ã¥È¥ï¡¼¥¯Áؤ˷ÐÏ©¤ò¹¹¿·¤µ¤»¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï RFC ¤¬»ØÄꤷ¤Æ¤¤¤ëºÇ¾¯¿ô¤Ç¤¢¤ë 3¡£ +普通に確立されている接続上に、 +TCP がネットワーク層を巻き込まずに再送を試みる回数。 +再送がこの回数を越えると、まず最初に、 +新しい再送を送る前に可能ならネットワーク層に経路を更新させる。 +デフォルトは RFC が指定している最少数である 3。 .TP .\"O .IR tcp_retries2 " (integer; default: 15; since Linux 2.2)" -.IR tcp_retries2 " (integer; default: 15; Linux 2.2 °Ê¹ß)" +.IR tcp_retries2 " (integer; default: 15; Linux 2.2 以降)" .\" Since 2.1.43 .\"O The maximum number of times a TCP packet is retransmitted .\"O in established state before giving up. @@ -1003,38 +1003,38 @@ TCP .\"O on the retransmission timeout. .\"O The RFC\ 1122 specified .\"O minimum limit of 100 seconds is typically deemed too short. -³ÎΩ¾õÂÖ¤ÎÀܳ¤Ë¡¢¤³¤Î²ó¿ô TCP ¥Ñ¥±¥Ã¥È¤ÎºÆÁ÷¿®¤ò -¹Ô¤Ê¤Ã¤Æ¤â¤À¤á¤Ê¾ì¹ç¤Ï¤¢¤­¤é¤á¤ë¡£ -¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 15 ¤Ç¡¢¤³¤ì¤Ï (ºÆÁ÷¤Î¥¿¥¤¥à¥¢¥¦¥È¤Ë°Í¸¤¹¤ë¤¬) -¤ª¤è¤½ 13¡Á30 ʬÄøÅ٤δü´Ö¤ËÂбþ¤¹¤ë¡£ -RFC\ 1122 ¤ÏºÇ¾®¤Î¸Â³¦¤ò 100 ÉäÈÃÖ¤¤¤Æ¤¤¤ë¤¬¡¢ -¤³¤ì¤Ï¤¿¤¤¤Æ¤¤¤Î¾ì¹ç¤Ë¤Ïû¤¹¤®¤ë¤È»×¤ï¤ì¤ë¡£ +確立状態の接続に、この回数 TCP パケットの再送信を +行なってもだめな場合はあきらめる。 +デフォルト値は 15 で、これは (再送のタイムアウトに依存するが) +およそ 13〜30 分程度の期間に対応する。 +RFC\ 1122 は最小の限界を 100 秒と置いているが、 +これはたいていの場合には短すぎると思われる。 .TP .\"O .IR tcp_rfc1337 " (Boolean; default: disabled; since Linux 2.2)" -.IR tcp_rfc1337 " (Boolean; default: disabled; Linux 2.2 °Ê¹ß)" +.IR tcp_rfc1337 " (Boolean; default: disabled; Linux 2.2 以降)" .\" Since 2.1.90 .\"O Enable TCP behavior conformant with RFC\ 1337. .\"O When disabled, .\"O if a RST is received in TIME_WAIT state, we close .\"O the socket immediately without waiting for the end .\"O of the TIME_WAIT period. -TCP ¤ÎÆ°ºî¤ò RFC\ 1337 ¤Ë½àµò¤µ¤»¤ë¡£ -̵¸ú¤Ë¤¹¤ë¤È¡¢TIME_WAIT ¾õÂ֤ΤȤ­¤Ë RST ¤¬¼õ¿®¤µ¤ì¤¿¾ì¹ç¡¢ -TIME_WAIT ´ü´Ö¤Î½ªÎ»¤òÂÔ¤¿¤º¤Ë¤½¤Î¥½¥±¥Ã¥È¤òľ¤Á¤Ë¥¯¥í¡¼¥º¤¹¤ë¡£ +TCP の動作を RFC\ 1337 に準拠させる。 +無効にすると、TIME_WAIT 状態のときに RST が受信された場合、 +TIME_WAIT 期間の終了を待たずにそのソケットを直ちにクローズする。 .TP .\"O .IR tcp_rmem " (since Linux 2.4)" -.IR tcp_rmem " (Linux 2.4 °Ê¹ß)" +.IR tcp_rmem " (Linux 2.4 以降)" .\" Since 2.4.0-test7 .\"O This is a vector of 3 integers: [min, default, max]. .\"O These parameters are used by TCP to regulate receive buffer sizes. .\"O TCP dynamically adjusts the size of the .\"O receive buffer from the defaults listed below, in the range .\"O of these values, depending on memory available in the system. -¤³¤ì¤Ï 3 ¤Ä¤ÎÀ°¿ô [min, default, max] ¤«¤é¤Ê¤ë¥Ù¥¯¥È¥ëÃͤǤ¢¤ë¡£ -¤³¤ì¤é¤Ï TCP ¤¬¼õ¿®¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤òÄ´À°¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ -TCP ¤Ï¡¢¥·¥¹¥Æ¥à¤ÇÍøÍѤǤ­¤ë¥á¥â¥ê¤Ë±þ¤¸¤Æ¡¢ -¼õ¿®¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤ò¤³¤ì¤é¤ÎÊÑ¿ô¤ÎÈÏ°Ï¤Ç -°Ê²¼¤Ë¼¨¤¹¥Ç¥Õ¥©¥ë¥È¤«¤éưŪ¤ËÄ´À°¤¹¤ë¡£ +これは 3 つの整数 [min, default, max] からなるベクトル値である。 +これらは TCP が受信バッファサイズを調整するために用いられる。 +TCP は、システムで利用できるメモリに応じて、 +受信バッファのサイズをこれらの変数の範囲で +以下に示すデフォルトから動的に調整する。 .RS .TP 10 .I min @@ -1051,19 +1051,19 @@ TCP .\"O using .\"O .B SO_RCVBUF .\"O on a socket. -³Æ TCP ¥½¥±¥Ã¥È¤¬ÍѤ¤¤ë¼õ¿®¥Ð¥Ã¥Õ¥¡¤ÎºÇ¾®¥µ¥¤¥º¡£ -¥Ç¥Õ¥©¥ë¥ÈÃͤϥ·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥º¤Ç¤¢¤ë -(Linux 2.4 ¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 4K ¥Ð¥¤¥È¤Ç¡¢ -¥á¥â¥ê¤Î¾¯¤Ê¤¤¥·¥¹¥Æ¥à¤Ç¤Ï +各 TCP ソケットが用いる受信バッファの最小サイズ。 +デフォルト値はシステムのページサイズである +(Linux 2.4 では、デフォルト値は 4K バイトで、 +メモリの少ないシステムでは .B PAGE_SIZE -¥Ð¥¤¥È¤Ë¸º¤é¤µ¤ì¤ë)¡£ -¤³¤ÎÃͤϡ¢¥á¥â¥ê°µÇ÷¥â¡¼¥É¤Ë¤ª¤¤¤Æ¤â¡¢ -¤³¤Î¥µ¥¤¥º¤Î³ä¤êÅö¤Æ¤¬À®¸ù¤¹¤ë¤³¤È¤òÊݾڤ¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ -¤³¤ì¤Ï¡¢ +バイトに減らされる)。 +この値は、メモリ圧迫モードにおいても、 +このサイズの割り当てが成功することを保証するために用いられる。 +これは、 .B SO_RCVBUF -¤òÍѤ¤¤Æ¥½¥±¥Ã¥È¤ÎºÇÄã¼õ¿®¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤òÀë¸À¤¹¤ëºÝ¤Ë¤ÏÍѤ¤¤é¤ì¤Ê¤¤¡£ +を用いてソケットの最低受信バッファサイズを宣言する際には用いられない。 .\"nakano Documentation/networking/ip-sysctls.txt -.\"nakano ¤ò¤ß¤ë¸Â¤ê¤Ç¤Ï¤³¤¦¤¤¤¦ÆâÍƤΤ褦¤Ê¡£ +.\"nakano をみる限りではこういう内容のような。 .TP .I default .\"O the default size of the receive buffer for a TCP socket. @@ -1078,19 +1078,19 @@ TCP .\"O To employ large TCP windows, the .\"O .I net.ipv4.tcp_window_scaling .\"O must be enabled (default). -TCP ¥½¥±¥Ã¥È¤Î¼õ¿®¥Ð¥Ã¥Õ¥¡¤Î¥Ç¥Õ¥©¥ë¥È¥µ¥¤¥º¡£ -¤³¤ÎÃͤϡ¢¤¹¤Ù¤Æ¤Î¥×¥í¥È¥³¥ë¤ËÂФ·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡¢ -¥¸¥§¥Í¥ê¥Ã¥¯¤Ê¥°¥í¡¼¥Ð¥ë¤Î¥Ç¥Õ¥©¥ë¥È¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º +TCP ソケットの受信バッファのデフォルトサイズ。 +この値は、すべてのプロトコルに対して定義されている、 +ジェネリックなグローバルのデフォルトバッファサイズ .I net.core.rmem_default -¤è¤êÍ¥À褵¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 87380 ¥Ð¥¤¥È¤Ç¤¢¤ë -(Linux 2.4 ¤Ç¤Ï¡¢¥á¥â¥ê¤Î¾¯¤Ê¤¤¥·¥¹¥Æ¥à¤Î¾ì¹ç -43689 ¤Þ¤Ç¸º¤é¤µ¤ì¤ë)¡£ -Â礭¤Ê¼õ¿®¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤¬É¬Íפʾì¹ç¤Ï¡¢ -¤³¤ÎÃͤòÁý¤ä¤¹¤Ù¤­¤Ç¤¢¤ë (¤¹¤Ù¤Æ¤Î¥½¥±¥Ã¥È¤Ë±Æ¶Á¤¹¤ë)¡£ -Â礭¤Ê TCP ¥¦¥£¥ó¥É¥¦¤òÍѤ¤¤ë¤Ë¤Ï¡¢ +より優先される。 +デフォルト値は 87380 バイトである +(Linux 2.4 では、メモリの少ないシステムの場合 +43689 まで減らされる)。 +大きな受信バッファサイズが必要な場合は、 +この値を増やすべきである (すべてのソケットに影響する)。 +大きな TCP ウィンドウを用いるには、 .I net.ipv4.tcp_window_scaling -¤òÍ­¸ú¤Ë¤·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ (¥Ç¥Õ¥©¥ë¥È¤ÏÍ­¸ú)¡£ +を有効にしておかなければならない (デフォルトは有効)。 .TP .I max .\"O the maximum size of the receive buffer used by each TCP socket. @@ -1105,43 +1105,43 @@ TCP .\"O .\"O (On Linux 2.4, the default is 87380*2 bytes, .\"O lowered to 87380 in low-memory systems). -³Æ TCP ¥½¥±¥Ã¥È¤ÇÍѤ¤¤ë¼õ¿®¥Ð¥Ã¥Õ¥¡¤ÎºÇÂ祵¥¤¥º¡£ -¤³¤ÎÃͤè¤ê¤â¥°¥í¡¼¥Ð¥ë¤Î +各 TCP ソケットで用いる受信バッファの最大サイズ。 +この値よりもグローバルの .I net.core.rmem_max -¤¬Í¥À褵¤ì¤ë¡£ -¤³¤ì¤Ï¡¢ +が優先される。 +これは、 .B SO_RCVBUF -¤òÍѤ¤¤Æ¥½¥±¥Ã¥È¤Î¼õ¿®¥Ð¥Ã¥Õ¥¡¥µ¥¤¥ºÀ©¸Â¤òÀë¸À¤¹¤ëºÝ¤Ë¤ÏÍѤ¤¤é¤ì¤Ê¤¤¡£ -.\"nakano Ʊ¾å¡£ -¥Ç¥Õ¥©¥ë¥ÈÃͤϰʲ¼¤Î¼°¤Ç·×»»¤µ¤ì¤ë¡£ +を用いてソケットの受信バッファサイズ制限を宣言する際には用いられない。 +.\"nakano 同上。 +デフォルト値は以下の式で計算される。 max(87380, min(4MB, \fItcp_mem\fP[1]*PAGE_SIZE/128)) -(Linux 2.4 ¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 87380*2 ¥Ð¥¤¥È¤Ç¡¢ -¥á¥â¥ê¤Î¾¯¤Ê¤¤¥·¥¹¥Æ¥à¤Ç¤Ï 87380 ¤Þ¤Ç¸º¤é¤µ¤ì¤ë¡£) +(Linux 2.4 では、デフォルト値は 87380*2 バイトで、 +メモリの少ないシステムでは 87380 まで減らされる。) .RE .TP .\"O .IR tcp_sack " (Boolean; default: enabled; since Linux 2.2)" -.IR tcp_sack " (Boolean; default: enabled; Linux 2.2 °Ê¹ß)" +.IR tcp_sack " (Boolean; default: enabled; Linux 2.2 以降)" .\" Since 2.1.36 .\"O Enable RFC\ 2018 TCP Selective Acknowledgements. -RFC\ 2018 ¤Î TCP Selective Acknowledgements ¤òÍ­¸ú¤Ë¤¹¤ë¡£ +RFC\ 2018 の TCP Selective Acknowledgements を有効にする。 .TP .\"O .IR tcp_slow_start_after_idle " (Boolean; default: enabled; since Linux 2.6.18)" -.IR tcp_slow_start_after_idle " (Boolean; default: enabled; Linux 2.6.18 °Ê¹ß)" +.IR tcp_slow_start_after_idle " (Boolean; default: enabled; Linux 2.6.18 以降)" .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt .\"O If enabled, provide RFC 2861 behavior and time out the congestion .\"O window after an idle period. .\"O An idle period is defined as the current RTO (retransmission timeout). .\"O If disabled, the congestion window will not .\"O be timed out after an idle period. -Í­¸ú¤Ë¤¹¤ë¤È¡¢RFC 2861 ¤ÎÆ°ºî¤¬¹Ô¤ï¤ì¡¢ -¥¢¥¤¥É¥ë»þ´Ö·Ð²á¸å¤ËíÕíÔ¥¦¥£¥ó¥É¥¦¤ò¥¿¥¤¥à¥¢¥¦¥È¤µ¤»¤ë¡£ -¥¢¥¤¥É¥ë»þ´Ö¤Ï¸½ºß¤Î RTO (ºÆÁ÷¥¿¥¤¥à¥¢¥¦¥È) ¤ÇÄêµÁ¤µ¤ì¤ë¡£ -̵¸ú¤Ë¤¹¤ë¤È¡¢íÕíÔ¥¦¥£¥ó¥É¥¦¤Ï¥¢¥¤¥É¥ë»þ´Ö·Ð²á¸å¤â¥¿¥¤¥à¥¢¥¦¥È¤µ¤ì¤Ê¤¤¡£ +有効にすると、RFC 2861 の動作が行われ、 +アイドル時間経過後に輻輳ウィンドウをタイムアウトさせる。 +アイドル時間は現在の RTO (再送タイムアウト) で定義される。 +無効にすると、輻輳ウィンドウはアイドル時間経過後もタイムアウトされない。 .TP .\"O .IR tcp_stdurg " (Boolean; default: disabled; since Linux 2.2)" -.IR tcp_stdurg " (Boolean; default: disabled; Linux 2.2 °Ê¹ß)" +.IR tcp_stdurg " (Boolean; default: disabled; Linux 2.2 以降)" .\" Since 2.1.44 .\"O If this option is enabled, then use the RFC\ 1122 interpretation .\"O of the TCP urgent-pointer field. @@ -1154,45 +1154,45 @@ RFC\ 2018 .\"O the urgent pointer: .\"O the urgent pointer points to the first byte after the urgent data. .\"O Enabling this option may lead to interoperability problems. -¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤¹¤ë¤È¡¢ TCP ¶ÛµÞ¥Ý¥¤¥ó¥¿ (urgent-pointer) -¥Õ¥£¡¼¥ë¥É¤ò RFC\ 1122 ¤Ë½¾¤Ã¤¿²ò¼á¤ò¹Ô¤¦¡£ -.\" RFC\ 793 ¤Ï¶ÛµÞ¥Ý¥¤¥ó¥¿¤Î°ÕÌ£¤Îµ¬Ä꤬ۣËæ¤Ç¤¢¤Ã¤¿¡£ -.\" RFC\ 1122 (¤È RFC\ 961) ¤Ç¤Ï¤³¤ÎÛ£Ë椵¤Ë°ì¤Ä¤Î²ò·èºö¤òÄê¤á¤¿ -.\" (»ÄÇ°¤Ê¤¬¤é "´Ö°ã¤Ã¤¿" ²ò·èºö¤Ç¤¢¤Ã¤¿¤¬)¡£ -¤³¤Î²ò¼á¤Ë½¾¤¦¤È¡¢¶ÛµÞ¥Ý¥¤¥ó¥¿¤Ï¶ÛµÞ¥Ç¡¼¥¿¤ÎºÇ¸å¤Î¥Ð¥¤¥È¤ò»Ø¤¹¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò̵¸ú¤Ë¤¹¤ë¤È¡¢¶ÛµÞ¥Ý¥¤¥ó¥¿¤Î²ò¼á¤¬ BSD ¸ß´¹¤ÎÊýË¡¤Ç -¹Ô¤ï¤ì¤ë: ¶ÛµÞ¥Ý¥¤¥ó¥¿¤Ï¶ÛµÞ¥Ç¡¼¥¿¤Î¸å¤ÎºÇ½é¤Î¥Ð¥¤¥È¤ò»Ø¤¹¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤¹¤ë¤È¡¢Áê¸ß±¿ÍÑÀ­¤ËÌäÂ꤬À¸¤¸¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +このオプションを有効にすると、 TCP 緊急ポインタ (urgent-pointer) +フィールドを RFC\ 1122 に従った解釈を行う。 +.\" RFC\ 793 は緊急ポインタの意味の規定が曖昧であった。 +.\" RFC\ 1122 (と RFC\ 961) ではこの曖昧さに一つの解決策を定めた +.\" (残念ながら "間違った" 解決策であったが)。 +この解釈に従うと、緊急ポインタは緊急データの最後のバイトを指す。 +このオプションを無効にすると、緊急ポインタの解釈が BSD 互換の方法で +行われる: 緊急ポインタは緊急データの後の最初のバイトを指す。 +このオプションを有効にすると、相互運用性に問題が生じるかもしれない。 .TP .\"O .IR tcp_syn_retries " (integer; default: 5; since Linux 2.2)" -.IR tcp_syn_retries " (integer; default: 5; Linux 2.2 °Ê¹ß)" +.IR tcp_syn_retries " (integer; default: 5; Linux 2.2 以降)" .\" Since 2.1.38 .\"O The maximum number of times initial SYNs for an active TCP .\"O connection attempt will be retransmitted. .\"O This value should not be higher than 255. .\"O The default value is 5, which corresponds to approximately 180 seconds. -¥¢¥¯¥Æ¥£¥Ö¤Ê TCP Àܳ¤Ë½é´ü SYN ¤ÎºÆÁ÷¤ò»î¤ß¤ëºÇÂç²ó¿ô¡£ -¤³¤Î¿ôÃÍ¤Ï 255 ¤è¤ê¤âÂ礭¤¯¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÃÍ¤Ï 5 ¤Ç¡¢¤ª¤è¤½ 180 ÉäËÂбþ¤¹¤ë¡£ +アクティブな TCP 接続に初期 SYN の再送を試みる最大回数。 +この数値は 255 よりも大きくすべきではない。 +デフォルトの値は 5 で、およそ 180 秒に対応する。 .TP .\"O .IR tcp_synack_retries " (integer; default: 5; since Linux 2.2)" -.IR tcp_synack_retries " (integer; default: 5; Linux 2.2 °Ê¹ß)" +.IR tcp_synack_retries " (integer; default: 5; Linux 2.2 以降)" .\" Since 2.1.38 .\"O The maximum number of times a SYN/ACK segment .\"O for a passive TCP connection will be retransmitted. .\"O This number should not be higher than 255. -passive ¤Ê TCP Àܳ¤Î SYN/ACK ¥»¥°¥á¥ó¥È¤ÇºÆÁ÷¤ò»î¤ß¤ëºÇÂç¿ô¡£ -¤³¤Î¿ôÃÍ¤Ï 255 ¤è¤ê¤âÂ礭¤¯¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +passive な TCP 接続の SYN/ACK セグメントで再送を試みる最大数。 +この数値は 255 よりも大きくすべきではない。 .TP .\"O .IR tcp_syncookies " (Boolean; since Linux 2.2)" -.IR tcp_syncookies " (Boolean; Linux 2.2 °Ê¹ß)" +.IR tcp_syncookies " (Boolean; Linux 2.2 以降)" .\" Since 2.1.43 .\"O Enable TCP syncookies. .\"O The kernel must be compiled with .\"O .BR CONFIG_SYN_COOKIES . -.TCP syncookies ¤òÍ­¸ú¤Ë¤¹¤ë¡£¥«¡¼¥Í¥ë¤Ï +.TCP syncookies を有効にする。カーネルは .B CONFIG_SYNCOOKIES -¤ò¤Ä¤±¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +をつけてコンパイルしておかなければならない。 .\"O Send out syncookies when the syn backlog queue of a socket overflows. .\"O The syncookies feature attempts to protect a .\"O socket from a SYN flood attack. @@ -1207,66 +1207,66 @@ passive .\"O .IR tcp_synack_retries , .\"O and .\"O .IR tcp_abort_on_overflow . -¥½¥±¥Ã¥È¤Î¥Ð¥Ã¥¯¥í¥°¥­¥å¡¼¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¤È¡¢ -syncookies ¤¬Á÷¿®¤µ¤ì¤ë¡£ -syncookies µ¡Ç½¤Ï¡¢SYN flood ¹¶·â¤«¤é¥½¥±¥Ã¥È¤ò¼é¤í¤¦¤È¤¹¤ë¡£ -¤³¤ì¤Ï¤¤¤º¤ì¤Ë¤·¤Æ¤â¡¢ºÇ½ª¼êÃʤȤ·¤ÆÍѤ¤¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï TCP ¥×¥í¥È¥³¥ë¤Ë°ãÈ¿¤·¤Æ¤ª¤ê¡¢ -TCP ³ÈÄ¥¤Î¤è¤¦¤Ê¡¢TCP ¤Î¾¤ÎÉôʬ¤È¾×Æͤ·¤Æ¤·¤Þ¤¦¡£ -¥¯¥é¥¤¥¢¥ó¥È¤ä¥ê¥ì¡¼¤ÇÌäÂ꤬µ¯¤³¤ë¤³¤È¤â¤¢¤ë¡£ -²áÉé²Ù¤äÀßÄê´Ö°ã¤¤¤Ë¤è¤Ã¤ÆÉé²Ù¤ÎÂ礭¤Ê¾õÂ֤ˤ¢¤ë¥µ¡¼¥Ð¤òÄ´À°¤·¤Æµß¤¦¤¿¤á¤Î -µ¡¹½¤È¤ß¤Ê¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¤½¤Î¤è¤¦¤ÊÍÑÅӤˤϡ¢Âå¤ï¤ê¤Ë +ソケットのバックログキューがオーバーフローすると、 +syncookies が送信される。 +syncookies 機能は、SYN flood 攻撃からソケットを守ろうとする。 +これはいずれにしても、最終手段として用いるべきである。 +これは TCP プロトコルに違反しており、 +TCP 拡張のような、TCP の他の部分と衝突してしまう。 +クライアントやリレーで問題が起こることもある。 +過負荷や設定間違いによって負荷の大きな状態にあるサーバを調整して救うための +機構とみなすべきではない。 +そのような用途には、代わりに .IR tcp_max_syn_backlog , .IR tcp_synack_retries , .I tcp_abort_on_overflow -¤Ê¤É¤Î»ÈÍѤò¹Í¤¨¤ë¤³¤È¡£ +などの使用を考えること。 .TP .\"O .IR tcp_timestamps " (Boolean; default: enabled; since Linux 2.2)" -.IR tcp_timestamps " (Boolean; default: enabled; Linux 2.2 °Ê¹ß)" +.IR tcp_timestamps " (Boolean; default: enabled; Linux 2.2 以降)" .\" Since 2.1.36 .\"O Enable RFC\ 1323 TCP timestamps. -RFC\ 1323 ¤Î TCP timestamps ¤òÍ­¸ú¤Ë¤¹¤ë¡£ +RFC\ 1323 の TCP timestamps を有効にする。 .TP .\"O .IR tcp_tso_win_divisor " (integer; default: 3; since Linux 2.6.9)" -.IR tcp_tso_win_divisor " (integer; default: 3; Linux 2.6.9 °Ê¹ß)" +.IR tcp_tso_win_divisor " (integer; default: 3; Linux 2.6.9 以降)" .\"O This parameter controls what percentage of the congestion window .\"O can be consumed by a single TCP Segmentation Offload (TSO) frame. .\"O The setting of this parameter is a tradeoff between burstiness and .\"O building larger TSO frames. -¤³¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¡¢°ì¤Ä¤Î TCP Segmentation Offload (TSO) ¥Õ¥ì¡¼¥à¤Ç -¾ÃÈñ¤Ç¤­¤ëíÕíÔ¥¦¥£¥ó¥É¥¦¤Î³ä¹ç (¥Ñ¡¼¥»¥ó¥È) ¤òÀ©¸æ¤¹¤ë¡£ -¥Ð¡¼¥¹¥ÈÀ­¤È¡¢¤É¤ì¤À¤±Â礭¤Ê TSO ¥Õ¥ì¡¼¥à¤ò¹½ÃÛ¤¹¤ë¤«¤Î¤Ï¥È¥ì¡¼¥É¥ª¥Õ¤Ç¤¢¤ê¡¢ -¤³¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¤½¤ÎÅٹ礤¤òÀßÄꤹ¤ë¡£ +このパラメータは、一つの TCP Segmentation Offload (TSO) フレームで +消費できる輻輳ウィンドウの割合 (パーセント) を制御する。 +バースト性と、どれだけ大きな TSO フレームを構築するかのはトレードオフであり、 +このパラメータはその度合いを設定する。 .TP .\"O .IR tcp_tw_recycle " (Boolean; default: disabled; since Linux 2.4)" -.IR tcp_tw_recycle " (Boolean; default: disabled; Linux 2.4 °Ê¹ß)" +.IR tcp_tw_recycle " (Boolean; default: disabled; Linux 2.4 以降)" .\" Since 2.3.15 .\"O Enable fast recycling of TIME_WAIT sockets. .\"O Enabling this option is not .\"O recommended since this causes problems when working .\"O with NAT (Network Address Translation). -TIME_WAIT ¥½¥±¥Ã¥È¤ÎÁÇÁᤤºÆÍøÍѤòÍ­¸ú¤Ë¤¹¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤¹¤ë¤È¡¢ -NAT (¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹ÊÑ´¹) ¤òÍѤ¤¤Æ¤¤¤ë¤ÈÌäÂ꤬À¸¤¸¤ë¤Î¤Ç¡¢ -¤¢¤Þ¤ê¿ä¾©¤·¤Ê¤¤¡£ +TIME_WAIT ソケットの素早い再利用を有効にする。 +このオプションを有効にすると、 +NAT (ネットワークアドレス変換) を用いていると問題が生じるので、 +あまり推奨しない。 .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt .TP .\"O .IR tcp_tw_reuse " (Boolean; default: disabled; since Linux 2.4.19/2.6)" -.IR tcp_tw_reuse " (Boolean; default: disabled; Linux 2.4.19/2.6 °Ê¹ß)" +.IR tcp_tw_reuse " (Boolean; default: disabled; Linux 2.4.19/2.6 以降)" .\" Since 2.4.19/2.5.43 .\"O Allow to reuse TIME_WAIT sockets for new connections when it is .\"O safe from protocol viewpoint. .\"O It should not be changed without advice/request of technical experts. -¥×¥í¥È¥³¥ë¤ÎÌ̤«¤é¸«¤ÆÌäÂê¤Ê¤¤¾ì¹ç¤Ë¿·µ¬¥³¥Í¥¯¥·¥ç¥ó¤Ë TIME_WAIT -¾õÂ֤Υ½¥±¥Ã¥È¤òºÆÍøÍѤ¹¤ë¤³¤È¤òµö²Ä¤¹¤ë¡£µ»½ÑŪ¤Ë¾Ü¤·¤¤¿Í¤Î½õ¸À¤ä -Í×ÀÁ¤Ê¤·¤Ë¤³¤Î¥ª¥×¥·¥ç¥ó¤òÊѹ¹¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +プロトコルの面から見て問題ない場合に新規コネクションに TIME_WAIT +状態のソケットを再利用することを許可する。技術的に詳しい人の助言や +要請なしにこのオプションを変更すべきではない。 .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt .TP .\"O .IR tcp_vegas_cong_avoid " (Boolean; default: disabled; Linux 2.2 to 2.6.13)" -.IR tcp_vegas_cong_avoid " (Boolean; default: disabled; Linux 2.2 ¤«¤é 2.6.13 ¤Þ¤Ç)" +.IR tcp_vegas_cong_avoid " (Boolean; default: disabled; Linux 2.2 から 2.6.13 まで)" .\" Since 2.1.8; removed in 2.6.13 .\"O Enable TCP Vegas congestion avoidance algorithm. .\"O TCP Vegas is a sender-side only change to TCP that anticipates @@ -1274,17 +1274,17 @@ NAT ( .\"O TCP Vegas adjusts the sending rate by modifying the congestion window. .\"O TCP Vegas should provide less packet loss, but it is .\"O not as aggressive as TCP Reno. -TCP Vegas íÕíÔÀ©¸æ¥¢¥ë¥´¥ê¥º¥à¤òÍ­¸ú¤Ë¤¹¤ë¡£ -TCP Vegas ¤ÏÂÓ°è¤ò¿ä¬¤¹¤ë¤³¤È¤ÇíÕíԤε¯¤³¤ê»Ï¤á¤òͽÁÛ¤¹¤ë¤è¤¦¤Ë -TCP ¤ÎÁ÷¿®Â¦¤Î¤ß¤ËÊѹ¹¤ò²Ã¤¨¤¿¤â¤Î¤Ç¤¢¤ë¡£ -TCP Vegas ¤ÏíÕíÔ¥¦¥£¥ó¥É¥¦¤ò½¤Àµ¤¹¤ë¤³¤È¤Ç¡¢Á÷¿®¥ì¡¼¥È¤òÄ´À°¤¹¤ë¡£ -TCP Vegas ¤Ï TCP Reno ¤ÈÈæ¤Ù¤Æ¥Ñ¥±¥Ã¥È¥í¥¹¤Ï¾¯¤Ê¤¤¤¬¡¢ -TCP Reno ¤Û¤ÉÀѶËŪ¤ÊµóÆ°¤Ï¤·¤Ê¤¤¡£ +TCP Vegas 輻輳制御アルゴリズムを有効にする。 +TCP Vegas は帯域を推測することで輻輳の起こり始めを予想するように +TCP の送信側のみに変更を加えたものである。 +TCP Vegas は輻輳ウィンドウを修正することで、送信レートを調整する。 +TCP Vegas は TCP Reno と比べてパケットロスは少ないが、 +TCP Reno ほど積極的な挙動はしない。 .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt .TP .\"O .IR tcp_westwood " (Boolean; default: disabled; Linux 2.4.26/2.6.3 to 2.6.13)" -.IR tcp_westwood " (Boolean; default: disabled; Linux 2.4.26/2.6.3 ¤«¤é 2.6.13 ¤Þ¤Ç)" +.IR tcp_westwood " (Boolean; default: disabled; Linux 2.4.26/2.6.3 から 2.6.13 まで)" .\"O Enable TCP Westwood+ congestion control algorithm. .\"O TCP Westwood+ is a sender-side only modification of the TCP Reno .\"O protocol stack that optimizes the performance of TCP congestion control. @@ -1295,18 +1295,18 @@ TCP Reno .\"O account the bandwidth used at the time congestion is experienced. .\"O TCP Westwood+ significantly increases fairness with respect to .\"O TCP Reno in wired networks and throughput over wireless links. -TCP Westwood+ íÕíÔÀ©¸æ¥¢¥ë¥´¥ê¥º¥à¤òÍ­¸ú¤Ë¤¹¤ë¡£ -TCP Westwood+ ¤Ï TCP íÕíÔÀ©¸æ¤ÎÀ­Ç½¤òºÇŬ²½¤¹¤ë¤è¤¦¤Ë TCP Reno ¤Î -¥×¥í¥È¥³¥ë¥¹¥¿¥Ã¥¯¤ÎÁ÷¿®Â¦¤Î¤ß¤Ë½¤Àµ¤ò²Ã¤¨¤¿¤â¤Î¤Ç¤¢¤ë¡£ -íÕíÔ¤¬µ¯¤³¤Ã¤¿¸å¤Ç¡¢íÕíÔ¥¦¥£¥ó¥É¥¦¤ä slow start ¤ÎïçÃͤò -ÄÌ¿®Î¾Ã¼´Ö¤ÎÂÓ°è¤Î¿ä¬¤Ë´ð¤Å¤¤¤ÆÀßÄꤹ¤ë¡£ -¤³¤Î¿ä¬¤ò»È¤Ã¤Æ¡¢TCP Westwood+ ¤ÏíÕíÔ¤¬È¯À¸¤·¤¿»þ¤Ë»È¤Ã¤Æ¤¤¤¿ -ÂÓ°è¤ò¹Íθ¤ËÆþ¤ì¤¿ slow start ¤ÎïçÃͤÈíÕíÔ¥¦¥£¥ó¥É¥¦¤òÀßÄꤹ¤ë¡£ -TCP Westwood+ ¤Ï¡¢Í­Àþ¥Í¥Ã¥È¥ï¡¼¥¯¤Ë¤ª¤±¤ë TCP Reno ¤Î¸øÊ¿À­ -(fairness) ¤È¡¢ÌµÀþ¥ê¥ó¥¯¤Ç¤Î¥¹¥ë¡¼¥×¥Ã¥È¤òÂ礭¤¯¸þ¾å¤¹¤ë¡£ +TCP Westwood+ 輻輳制御アルゴリズムを有効にする。 +TCP Westwood+ は TCP 輻輳制御の性能を最適化するように TCP Reno の +プロトコルスタックの送信側のみに修正を加えたものである。 +輻輳が起こった後で、輻輳ウィンドウや slow start の閾値を +通信両端間の帯域の推測に基づいて設定する。 +この推測を使って、TCP Westwood+ は輻輳が発生した時に使っていた +帯域を考慮に入れた slow start の閾値と輻輳ウィンドウを設定する。 +TCP Westwood+ は、有線ネットワークにおける TCP Reno の公平性 +(fairness) と、無線リンクでのスループットを大きく向上する。 .TP .\"O .IR tcp_window_scaling " (Boolean; default: enabled; since Linux 2.2)" -.IR tcp_window_scaling " (Boolean; default: enabled; Linux 2.2 °Ê¹ß)" +.IR tcp_window_scaling " (Boolean; default: enabled; Linux 2.2 以降)" .\" Since 2.1.36 .\"O Enable RFC\ 1323 TCP window scaling. .\"O This feature allows the use of a large window @@ -1319,31 +1319,31 @@ TCP Westwood+ .\"O .I tcp_window_scaling .\"O is disabled, TCP will not negotiate the use of window .\"O scaling with the other end during connection setup. -RFC\ 1323 ¤Î TCP ¥¦¥£¥ó¥É¥¦¥¹¥±¡¼¥ê¥ó¥°¤òÍ­¸ú¤Ë¤¹¤ë¡£ -¤³¤Îµ¡Ç½¤òÍѤ¤¤ë¤È¡¢ÀܳÀ褬Âбþ¤·¤Æ¤¤¤ì¤Ð¡¢ -TCP Àܳ¤ÇÂ礭¤Ê (64K °Ê¾å¤Î) ¥¦¥£¥ó¥É¥¦¤¬»È¤¨¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -Ä̾ï¤Ï TCP ¥Ø¥Ã¥À¤Î¥¦¥¤¥ó¥É¥¦Ä¹¥Õ¥£¡¼¥ë¥É¤Ï 16 ¥Ó¥Ã¥È¤Ê¤Î¤Ç¡¢ -¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤Ï 64K ¥Ð¥¤¥È°Ê²¼¤Ë¸Â¤é¤ì¤ë¡£ -¤â¤Ã¤ÈÂ礭¤Ê¥¦¥£¥ó¥É¥¦¤ò»È¤¤¤¿¤¤¾ì¹ç¤Ï¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¥½¥±¥Ã¥È¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤òÁý¤ä¤·¤Æ¡¢ -¥¦¥£¥ó¥É¥¦¥¹¥±¡¼¥ê¥ó¥°¤Î¥ª¥×¥·¥ç¥ó¤òÍøÍѤ¹¤ì¤Ð¤è¤¤¡£ +RFC\ 1323 の TCP ウィンドウスケーリングを有効にする。 +この機能を用いると、接続先が対応していれば、 +TCP 接続で大きな (64K 以上の) ウィンドウが使えるようになる。 +通常は TCP ヘッダのウインドウ長フィールドは 16 ビットなので、 +ウィンドウサイズは 64K バイト以下に限られる。 +もっと大きなウィンドウを使いたい場合は、 +アプリケーションはソケットバッファのサイズを増やして、 +ウィンドウスケーリングのオプションを利用すればよい。 .I tcp_window_scaling -¤ò̵¸ú¤Ë¤·¤Æ¤¤¤ë¤È¡¢ -TCP ¤Ï¾ü¤È¤ÎÀܳÀßÄê¤ÎºÝ¤Ë¡¢ -¥¦¥£¥ó¥É¥¦¥¹¥±¡¼¥ê¥ó¥°¤Î¥Í¥´¥·¥¨¡¼¥·¥ç¥ó¤ò¹Ô¤Ê¤ï¤Ê¤¤¡£ +を無効にしていると、 +TCP は他端との接続設定の際に、 +ウィンドウスケーリングのネゴシエーションを行なわない。 .TP .\"O .IR tcp_wmem " (since Linux 2.4)" -.IR tcp_wmem " (Linux 2.4 °Ê¹ß)" +.IR tcp_wmem " (Linux 2.4 以降)" .\" Since 2.4.0-test7 .\"O This is a vector of 3 integers: [min, default, max]. .\"O These parameters are used by TCP to regulate send buffer sizes. .\"O TCP dynamically adjusts the size of the send buffer from the .\"O default values listed below, in the range of these values, .\"O depending on memory available. -¤³¤ì¤Ï 3 ¤Ä¤ÎÀ°¿ô [min, default, max] ¤«¤é¤Ê¤ë¥Ù¥¯¥È¥ëÃͤǤ¢¤ë¡£ -¤³¤ì¤é¤Ï TCP ¤¬Á÷¿®¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤òÄ´À°¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ -TCP ¤Ï¡¢¥·¥¹¥Æ¥à¤ÇÍøÍѤǤ­¤ë¥á¥â¥ê¤Ë±þ¤¸¤Æ¡¢Á÷¿®¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤ò -¤³¤ì¤é¤ÎÊÑ¿ô¤ÎÈϰϤǰʲ¼¤Ë¼¨¤¹¥Ç¥Õ¥©¥ë¥È¤«¤éưŪ¤ËÄ´À°¤¹¤ë¡£ +これは 3 つの整数 [min, default, max] からなるベクトル値である。 +これらは TCP が送信バッファサイズを調整するために用いられる。 +TCP は、システムで利用できるメモリに応じて、送信バッファのサイズを +これらの変数の範囲で以下に示すデフォルトから動的に調整する。 .RS .TP 10 .I min @@ -1355,14 +1355,14 @@ TCP .\"O This is not used to bound the size of the send buffer declared using .\"O .B SO_SNDBUF .\"O on a socket. -³Æ TCP ¥½¥±¥Ã¥È¤¬ÍѤ¤¤ëÁ÷¿®¥Ð¥Ã¥Õ¥¡¤ÎºÇ¾®¥µ¥¤¥º¡£ -¥Ç¥Õ¥©¥ë¥ÈÃͤϥ·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥º¤Ç¤¢¤ë -(Linux 2.4 ¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 4K ¤Ç¤¢¤ë)¡£ -¤³¤ÎÃͤϡ¢¥á¥â¥ê°µÇ÷¥â¡¼¥É¤Ë¤ª¤¤¤Æ¤â¡¢ -¤³¤Î¥µ¥¤¥º°Ê²¼¤Î³ä¤êÅö¤Æ¤¬À®¸ù¤¹¤ë¤³¤È¤òÊݾڤ¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ -¤³¤ì¤Ï¡¢ +各 TCP ソケットが用いる送信バッファの最小サイズ。 +デフォルト値はシステムのページサイズである +(Linux 2.4 では、デフォルト値は 4K である)。 +この値は、メモリ圧迫モードにおいても、 +このサイズ以下の割り当てが成功することを保証するために用いられる。 +これは、 .B SO_SNDBUF -¤òÍѤ¤¤Æ¥½¥±¥Ã¥È¤ÎºÇÄãÁ÷¿®¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤òÀë¸À¤¹¤ëºÝ¤Ë¤ÏÍѤ¤¤é¤ì¤Ê¤¤¡£ +を用いてソケットの最低送信バッファサイズを宣言する際には用いられない。 .TP .I default .\"O The default size of the send buffer for a TCP socket. @@ -1377,18 +1377,18 @@ TCP .\"O To employ large TCP windows, the .\"O .I /proc/sys/net/ipv4/tcp_window_scaling .\"O must be set to a nonzero value (default). -TCP ¥½¥±¥Ã¥È¤ÎÁ÷¿®¥Ð¥Ã¥Õ¥¡¤Î¥Ç¥Õ¥©¥ë¥È¥µ¥¤¥º¡£ -¤³¤ÎÃͤϡ¢¤¹¤Ù¤Æ¤Î¥×¥í¥È¥³¥ë¤ËÂФ·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡¢ -¥¸¥§¥Í¥ê¥Ã¥¯¤Ê¥°¥í¡¼¥Ð¥ë¤Î¥Ç¥Õ¥©¥ë¥È¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º +TCP ソケットの送信バッファのデフォルトサイズ。 +この値は、すべてのプロトコルに対して定義されている、 +ジェネリックなグローバルのデフォルトバッファサイズ .I /proc/sys/net/core/wmem_default -¤è¤êÍ¥À褵¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 16K ¥Ð¥¤¥È¤Ç¤¢¤ë¡£ -.\" Linux 2.4 ¤È 2.6 ¤Ç¤ÏÀµ¤·¤¤¡£ -Â礭¤ÊÁ÷¿®¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤¬É¬Íפʾì¹ç¤Ï¡¢ -¤³¤ÎÃͤòÁý¤ä¤¹¤Ù¤­¤Ç¤¢¤ë (¤¹¤Ù¤Æ¤Î¥½¥±¥Ã¥È¤Ë±Æ¶Á¤¹¤ë)¡£ -Â礭¤Ê TCP ¥¦¥£¥ó¥É¥¦¤òÍѤ¤¤ë¤Ë¤Ï¡¢ +より優先される。 +デフォルト値は 16K バイトである。 +.\" Linux 2.4 と 2.6 では正しい。 +大きな送信バッファサイズが必要な場合は、 +この値を増やすべきである (すべてのソケットに影響する)。 +大きな TCP ウィンドウを用いるには、 .I /proc/sys/net/ipv4/tcp_window_scaling -¤ò 0 °Ê³°¤ÎÃÍ (¥Ç¥Õ¥©¥ë¥ÈÃÍ) ¤Ë¤·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を 0 以外の値 (デフォルト値) にしておかなければならない。 .TP .I max .\"O The maximum size of the send buffer used by each TCP socket. @@ -1403,62 +1403,62 @@ TCP .\"O .\"O (On Linux 2.4, the default value is 128K bytes, .\"O lowered 64K depending on low-memory systems.) -³Æ TCP ¥½¥±¥Ã¥È¤ÇÍѤ¤¤ëÁ÷¿®¥Ð¥Ã¥Õ¥¡¤ÎºÇÂ祵¥¤¥º¡£ -¤³¤ÎÃͤè¤ê¤â +各 TCP ソケットで用いる送信バッファの最大サイズ。 +この値よりも .IR /proc/sys/net/core/wmem_max -¤¬Í¥À褵¤ì¤ë¡£ -¤³¤ì¤Ï +が優先される。 +これは .B SO_SNDBUF -¤òÍѤ¤¤Æ¥½¥±¥Ã¥È¤ÎÁ÷¿®¥Ð¥Ã¥Õ¥¡¥µ¥¤¥ºÀ©¸Â¤òÀë¸À¤¹¤ëºÝ¤Ë¤ÏÍѤ¤¤é¤ì¤Ê¤¤¡£ -¥Ç¥Õ¥©¥ë¥ÈÃͤϰʲ¼¤Î¼°¤Ç·×»»¤µ¤ì¤ë¡£ +を用いてソケットの送信バッファサイズ制限を宣言する際には用いられない。 +デフォルト値は以下の式で計算される。 max(65536, min(4MB, \fItcp_mem\fP[1]*PAGE_SIZE/128)) -(Linux 2.4 ¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 128K ¥Ð¥¤¥È¤Ç¡¢ -¥á¥â¥ê¤Î¾¯¤Ê¤¤¥·¥¹¥Æ¥à¤Ç¤Ï 64K ¤Ë¤Þ¤Ç¸º¤é¤µ¤ì¤ë¡£) +(Linux 2.4 では、デフォルト値は 128K バイトで、 +メモリの少ないシステムでは 64K にまで減らされる。) .RE .TP .\"O .IR tcp_workaround_signed_windows " (Boolean; default: disabled; since Linux 2.6.26)" -.IR tcp_workaround_signed_windows " (Boolean; default: disabled; Linux 2.6.26 °Ê¹ß)" +.IR tcp_workaround_signed_windows " (Boolean; default: disabled; Linux 2.6.26 以降)" .\"O If enabled, assume that no receipt of a window-scaling option means that the .\"O remote TCP is broken and treats the window as a signed quantity. .\"O If disabled, assume that the remote TCP is not broken even if we do .\"O not receive a window scaling option from it. -Í­¸ú¤Ë¤¹¤ë¤È¡¢¥¦¥£¥ó¥É¥¦¥¹¥±¡¼¥ê¥ó¥°¥ª¥×¥·¥ç¥ó¤ò¼õ¿®¤·¤Ê¤¤¤Î¤Ï¡¢ -ÀܳÁê¼ê¤Î TCP ¤¬²õ¤ì¤Æ¤¤¤ë¤È¹Í¤¨¡¢¥¦¥£¥ó¥É¥¦¤òÉä¹æÉÕ¤­¤ÎÎ̤Ȥߤʤ¹¡£ -̵¸ú¤Ë¤¹¤ë¤È¡¢ÀܳÁê¼ê¤«¤é¥¦¥£¥ó¥É¥¦¥¹¥±¡¼¥ê¥ó¥°¥ª¥×¥·¥ç¥ó¤ò¼õ¿®¤·¤Ê¤«¤Ã¤¿ -¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢ÀܳÁê¼ê¤Î TCP ¤¬²õ¤ì¤Æ¤¤¤ë¤È¤Ï¤ß¤Ê¤µ¤Ê¤¤¡£ +有効にすると、ウィンドウスケーリングオプションを受信しないのは、 +接続相手の TCP が壊れていると考え、ウィンドウを符号付きの量とみなす。 +無効にすると、接続相手からウィンドウスケーリングオプションを受信しなかった +場合であっても、接続相手の TCP が壊れているとはみなさない。 .\"O .SS Socket Options -.SS ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó +.SS ソケットオプション .\"O To set or get a TCP socket option, call .\"O .BR getsockopt (2) .\"O to read or .\"O .BR setsockopt (2) .\"O to write the option with the option level argument set to .\"O .BR IPPROTO_TCP . -TCP ¥½¥±¥Ã¥È¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ -¥ª¥×¥·¥ç¥ó¥ì¥Ù¥ë°ú¿ô¤Ë +TCP ソケットのオプションは、 +オプションレベル引数に .I IPPROTO_TCP -¤ò»ØÄꤷ¤¿ +を指定した .BR setsockopt (2) -¤ÇÀßÄê¤Ç¤­¡¢ +で設定でき、 .BR getsockopt (2) -¤Ç¼èÆÀ¤Ç¤­¤ë¡£ +で取得できる。 .\"O In addition, .\"O most .\"O .B IPPROTO_IP .\"O socket options are valid on TCP sockets. .\"O For more information see .\"O .BR ip (7). -¤µ¤é¤Ë¡¢¤Û¤È¤ó¤É¤Î +さらに、ほとんどの .B IPPROTO_IP -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤â TCP ¥½¥±¥Ã¥È¤ËÂФ·¤ÆÍ­¸ú¤Ç¤¢¤ë¡£¾ÜºÙ¤Ï +ソケットオプションも TCP ソケットに対して有効である。詳細は .BR ip (7) -¤ò¸«¤è¡£ +を見よ。 .\" FIXME Document TCP_CONGESTION (new in 2.6.13) .TP .\"O .BR TCP_CORK " (since Linux 2.2)" -.BR TCP_CORK " (Linux 2.2 °Ê¹ß)" +.BR TCP_CORK " (Linux 2.2 以降)" .\" precisely: since 2.1.127 .\"O If set, don't send out partial frames. .\"O All queued partial frames are sent when the option is cleared again. @@ -1473,60 +1473,60 @@ TCP .\"O .B TCP_NODELAY .\"O only since Linux 2.5.71. .\"O This option should not be used in code intended to be portable. -¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢ partial ¥Õ¥ì¡¼¥à¤òÁ÷¿®¤·¤Ê¤¤¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬²ò½ü¤µ¤ì¤ë¤È¡¢ -¥­¥å¡¼¥¤¥ó¥°¤µ¤ì¤¿ partial ¥Õ¥ì¡¼¥à¤¬Á÷¤é¤ì¤ë¡£¤³¤ì¤Ï +セットされると、 partial フレームを送信しない。 +このオプションが解除されると、 +キューイングされた partial フレームが送られる。これは .BR sendfile (2) -¤ò¸Æ¤ÖÁ°¤Ë¥Ø¥Ã¥À¤òÁ°ÃÖ¤·¤¿¤ê¡¢ -¥¹¥ë¡¼¥×¥Ã¥È¤òºÇŬ²½¤·¤¿¤¤¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£ -¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¡¢ +を呼ぶ前にヘッダを前置したり、 +スループットを最適化したい場合に便利である。 +現在の実装では、 .B TCP_CORK -¤Ç½ÐÎϤòÍÞ¤¨¤ë¤³¤È¤¬¤Ç¤­¤ë»þ´Ö¤Î¾å¸Â¤Ï 200 ¥ß¥êÉäǤ¢¤ë¡£ -¤³¤Î¾å¸Â¤Ë㤹¤ë¤È¡¢¥­¥å¡¼¥¤¥ó¥°¤µ¤ì¤¿¥Ç¡¼¥¿¤Ï¼«Æ°Åª¤ËÁ÷¿®¤µ¤ì¤ë¡£ -Linux 2.5.71 °Ê¹ß¤Ë¤ª¤¤¤Æ¤Î¤ß¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò +で出力を抑えることができる時間の上限は 200 ミリ秒である。 +この上限に達すると、キューイングされたデータは自動的に送信される。 +Linux 2.5.71 以降においてのみ、このオプションを .B TCP_NODELAY -¤ÈƱ»þ¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +と同時に用いることができる。 +移植性の必要なプログラムではこのオプションを用いるべきではない。 .TP .\"O .BR TCP_DEFER_ACCEPT " (since Linux 2.4)" -.BR TCP_DEFER_ACCEPT " (Linux 2.4 °Ê¹ß)" +.BR TCP_DEFER_ACCEPT " (Linux 2.4 以降)" .\" Precisely: since 2.3.38 .\"O Allow a listener to be awakened only when data arrives on the socket. .\"O Takes an integer value (seconds), this can .\"O bound the maximum number of attempts TCP will make to .\"O complete the connection. .\"O This option should not be used in code intended to be portable. -¤³¤ì¤òÍѤ¤¤ë¤È¡¢¥ê¥¹¥Ê¤Ï¥Ç¡¼¥¿¤¬¥½¥±¥Ã¥È¤ËÅþÃ夷¤¿»þ¤Î¤ßÌܳФá¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -À°¿ôÃÍ (ÉÃ) ¤ò¤È¤ê¡¢ -TCP ¤¬Àܳ¤ò´°Î»¤·¤è¤¦¤È»î¤ß¤ë²ó¿ô¤òÀ©¸Â¤Ç¤­¤ë¡£ -°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +これを用いると、リスナはデータがソケットに到着した時のみ目覚めるようになる。 +整数値 (秒) をとり、 +TCP が接続を完了しようと試みる回数を制限できる。 +移植性の必要なプログラムではこのオプションを用いるべきではない。 .TP .\"O .BR TCP_INFO " (since Linux 2.4)" -.BR TCP_INFO " (Linux 2.4 °Ê¹ß)" +.BR TCP_INFO " (Linux 2.4 以降)" .\"O Used to collect information about this socket. .\"O The kernel returns a \fIstruct tcp_info\fP as defined in the file .\"O .IR /usr/include/linux/tcp.h . .\"O This option should not be used in .\"O code intended to be portable. -¤³¤Î¥½¥±¥Ã¥È¤Î¾ðÊó¤ò¼ý½¸¤¹¤ë¤Î¤ËÍѤ¤¤ë¡£ -¥«¡¼¥Í¥ë¤Ï +このソケットの情報を収集するのに用いる。 +カーネルは .I /usr/include/linux/tcp.h -¥Õ¥¡¥¤¥ë¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë -\fIstruct tcp_info\fP ¤òÊÖ¤¹¡£ -°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +ファイルで定義されている +\fIstruct tcp_info\fP を返す。 +移植性の必要なプログラムではこのオプションを用いるべきではない。 .TP .\"O .BR TCP_KEEPCNT " (since Linux 2.4)" -.BR TCP_KEEPCNT " (Linux 2.4 °Ê¹ß)" +.BR TCP_KEEPCNT " (Linux 2.4 以降)" .\" Precisely: since 2.3.18 .\"O The maximum number of keepalive probes TCP should send .\"O before dropping the connection. .\"O This option should not be .\"O used in code intended to be portable. -Àܳ¤òÍî¤È¤¹Á°¤Ë TCP ¤¬»î¤ß¤ë keepalive ¥×¥í¡¼¥Ö¤ÎºÇÂç²ó¿ô¡£ -°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +接続を落とす前に TCP が試みる keepalive プローブの最大回数。 +移植性の必要なプログラムではこのオプションを用いるべきではない。 .TP .\"O .BR TCP_KEEPIDLE " (since Linux 2.4)" -.BR TCP_KEEPIDLE " (Linux 2.4 °Ê¹ß)" +.BR TCP_KEEPIDLE " (Linux 2.4 以降)" .\" Precisely: since 2.3.18 .\"O The time (in seconds) the connection needs to remain idle .\"O before TCP starts sending keepalive probes, if the socket @@ -1534,23 +1534,23 @@ TCP .\"O .B SO_KEEPALIVE .\"O has been set on this socket. .\"O This option should not be used in code intended to be portable. -¤³¤Î»þ´Ö (ÉÃñ°Ì) ¤ò±Û¤¨¤ÆÀܳ¤¬¥¢¥¤¥É¥ë¾õÂÖ¤Ëα¤Þ¤Ã¤Æ¤¤¤ë¤È¡¢ -¤³¤Î¥½¥±¥Ã¥È¤Ë +この時間 (秒単位) を越えて接続がアイドル状態に留まっていると、 +このソケットに .B SO_KEEPALIVE -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -TCP ¤Ï keepalive ¥×¥í¡¼¥Ö¤òÁ÷¤ê¤Ï¤¸¤á¤ë¡£ -°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +ソケットオプションが設定されている場合、 +TCP は keepalive プローブを送りはじめる。 +移植性の必要なプログラムではこのオプションを用いるべきではない。 .TP .\"O .BR TCP_KEEPINTVL " (since Linux 2.4)" -.BR TCP_KEEPINTVL " (Linux 2.4 °Ê¹ß)" +.BR TCP_KEEPINTVL " (Linux 2.4 以降)" .\" Precisely: since 2.3.18 .\"O The time (in seconds) between individual keepalive probes. .\"O This option should not be used in code intended to be portable. -³Æ keepalive ¥×¥í¡¼¥Ö¤Î´Ö³Ö (ÉÃñ°Ì)¡£ -°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +各 keepalive プローブの間隔 (秒単位)。 +移植性の必要なプログラムではこのオプションを用いるべきではない。 .TP .\"O .BR TCP_LINGER2 " (since Linux 2.4)" -.BR TCP_LINGER2 " (Linux 2.4 °Ê¹ß)" +.BR TCP_LINGER2 " (Linux 2.4 以降)" .\" Precisely: since 2.3.41 .\"O The lifetime of orphaned FIN_WAIT2 state sockets. .\"O This option can be used to override the system-wide setting in the file @@ -1561,15 +1561,15 @@ TCP .\"O level option .\"O .BR SO_LINGER . .\"O This option should not be used in code intended to be portable. -orphan ¤µ¤ì¤¿ FIN_WAIT2 ¾õÂ֤Υ½¥±¥Ã¥È¤Î¼÷Ì¿¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤È¡¢¥·¥¹¥Æ¥àÁ´ÂΤËŬÍѤµ¤ì¤ë¥Õ¥¡¥¤¥ë +orphan された FIN_WAIT2 状態のソケットの寿命。 +このオプションを用いると、システム全体に適用されるファイル .I /proc/sys/net/ipv4/tcp_fin_timeout -¤ÎÃͤò¡¢¤³¤Î¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤Î¤ßÊѹ¹¤Ç¤­¤ë¡£ +の値を、このソケットに対してのみ変更できる。 .BR socket (7) -¥ì¥Ù¥ë¤Î¥ª¥×¥·¥ç¥ó +レベルのオプション .B SO_LINGER -¤Èº®Æ±¤·¤Ê¤¤¤³¤È¡£ -°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +と混同しないこと。 +移植性の必要なプログラムではこのオプションを用いるべきではない。 .TP .B TCP_MAXSEG .\" Present in Linux 1.0 @@ -1579,12 +1579,12 @@ orphan .\"O Values greater than the (eventual) interface MTU have no effect. .\"O TCP will also impose .\"O its minimum and maximum bounds over the value provided. -Á÷½Ð TCP ¥Ñ¥±¥Ã¥È¤ÎºÇÂ祻¥°¥á¥ó¥È¥µ¥¤¥º¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤òÀܳ³ÎΩ¤ÎÁ°¤ËÀßÄꤹ¤ë¤È¡¢ -½é´ü¥Ñ¥±¥Ã¥È¤Ç¾ü¤Ë¥¢¥Ê¥¦¥ó¥¹¤¹¤ë MSS ¤ÎÃͤâÊѲ½¤¹¤ë¡£ -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î MTU ¤è¤ê¤âÂ礭¤Ê (¤¢¤ë¤¤¤ÏÂ礭¤¯¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿) -Ãͤϸú²Ì¤ò»ý¤¿¤Ê¤¤¡£ -¤Þ¤¿ TCP ¤Ï¡¢¤³¤ÎÃͤè¤ê¤âºÇ¾®¡¦ºÇÂç¤ÎÀ©¸Â¤ÎÊý¤òÍ¥À褹¤ë¡£ +送出 TCP パケットの最大セグメントサイズ。 +このオプションを接続確立の前に設定すると、 +初期パケットで他端にアナウンスする MSS の値も変化する。 +インターフェースの MTU よりも大きな (あるいは大きくなってしまった) +値は効果を持たない。 +また TCP は、この値よりも最小・最大の制限の方を優先する。 .\" FIXME .\" Document TCP_MD5SIG, added in Linux 2.6.20, .\" Needs CONFIG_TCP_MD5SIG @@ -1617,22 +1617,22 @@ orphan .\"O pending output, even if .\"O .B TCP_CORK .\"O is currently set. -ÀßÄꤹ¤ë¤È Nagle ¥¢¥ë¥´¥ê¥º¥à¤ò̵¸ú¤Ë¤¹¤ë¡£ -¤¹¤Ê¤ï¤Á¡¢¥Ç¡¼¥¿Î̤¬¾¯¤Ê¤¤¾ì¹ç¤Ç¤â -³Æ¥»¥°¥á¥ó¥È¤Ï²Äǽ¤Ê¸Â¤êÁ᤯Á÷¿®¤µ¤ì¤ë¡£ -ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¡¢ -Á÷¿®¤¹¤ëʬ¤À¤±Î¯¤Þ¤ë¤Þ¤Ç¥Ç¡¼¥¿¤Ï¥Ð¥Ã¥Õ¥¡¤µ¤ì¡¢ -¾®¤µ¤Ê¥Ñ¥±¥Ã¥È¤òÉÑÈˤËÁ÷¤é¤º¤Ë¤¹¤ß¡¢ -¥Í¥Ã¥È¥ï¡¼¥¯¤òÍ­¸ú¤ËÍøÍѤǤ­¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +設定すると Nagle アルゴリズムを無効にする。 +すなわち、データ量が少ない場合でも +各セグメントは可能な限り早く送信される。 +設定されていないと、 +送信する分だけ溜まるまでデータはバッファされ、 +小さなパケットを頻繁に送らずにすみ、 +ネットワークを有効に利用できる。 +このオプションは .B TCP_CORK -¤Ë¤è¤ê¾å½ñ¤­¤µ¤ì¤ë¡£¤·¤«¤·¤Ê¤¬¤é¡¢ +により上書きされる。しかしながら、 .B TCP_CORK -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ë¤È¡¢ -Á÷¿®ÂÔ¤Á¤Î½ÐÎϤòÌÀ¼¨Åª¤ËÁݤ­½Ð¤¹ (flush) ¤³¤È¤Ë¤Ê¤ë¡£ +が設定されている場合であっても、このオプションを設定すると、 +送信待ちの出力を明示的に掃き出す (flush) ことになる。 .TP .\"O .BR TCP_QUICKACK " (since Linux 2.4.4)" -.BR TCP_QUICKACK " (Linux 2.4.4 °Ê¹ß)" +.BR TCP_QUICKACK " (Linux 2.4.4 以降)" .\"O Enable quickack mode if set or disable quickack .\"O mode if cleared. .\"O In quickack mode, acks are sent @@ -1646,40 +1646,40 @@ orphan .\"O delayed ack timeouts occurring and data transfer. .\"O This option should not be used in code intended to be .\"O portable. -ÀßÄꤵ¤ì¤Æ¤¤¤ë¤È quickack ¥â¡¼¥É¤òÍ­¸ú¤Ë¤·¡¢¥¯¥ê¥¢¤µ¤ì¤ë¤È̵¸ú¤Ë¤¹¤ë¡£ -Ä̾ï¤Î TCP Æ°ºî¤Ç¤Ï ack ¤ÏɬÍפ˱þ¤¸¤ÆÃٱ䤵¤ì¤ë¤Î¤ËÂФ·¡¢ -quickack ¥â¡¼¥É¤Ç¤Ï ack ¤Ï¤¹¤°¤ËÁ÷¿®¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï±Ê³Ū¤Ê¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢ -quickack ¥â¡¼¥É¤«¤é/¥â¡¼¥É¤ØÀÚ¤êÂؤ¨¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤ì°Ê¹ß¤Î TCP ¥×¥í¥È¥³¥ë¤ÎÆ°ºî¤Ë¤è¤Ã¤Æ¤Ï¡¢ -ÆâÉô¤Î¥×¥í¥È¥³¥ë½èÍý¤ä¡¢ÃÙ±ä ack ¥¿¥¤¥à¥¢¥¦¥È¤ÎȯÀ¸¡¢ -¥Ç¡¼¥¿Å¾Á÷¤Ê¤É¤ÎÍ×°ø¤Ë¤è¤Ã¤Æ¡¢ -ºÆ¤Ó quickack ¤«¤é½Ð¤¿¤êÆþ¤Ã¤¿¤ê¤¹¤ë¡£ -°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +設定されていると quickack モードを有効にし、クリアされると無効にする。 +通常の TCP 動作では ack は必要に応じて遅延されるのに対し、 +quickack モードでは ack はすぐに送信される。 +このフラグは永続的なものではなく、 +quickack モードから/モードへ切り替えるためのものである。 +これ以降の TCP プロトコルの動作によっては、 +内部のプロトコル処理や、遅延 ack タイムアウトの発生、 +データ転送などの要因によって、 +再び quickack から出たり入ったりする。 +移植性の必要なプログラムではこのオプションを用いるべきではない。 .TP .\"O .BR TCP_SYNCNT " (since Linux 2.4)" -.BR TCP_SYNCNT " (Linux 2.4 °Ê¹ß)" +.BR TCP_SYNCNT " (Linux 2.4 以降)" .\" Precisely: since 2.3.18 .\"O Set the number of SYN retransmits that TCP should send before .\"O aborting the attempt to connect. .\"O It cannot exceed 255. .\"O This option should not be used in code intended to be portable. -Àܳ¤Î»î¹Ô¤òÃæ»ß¤µ¤»¤ëÁ°¤Ë TCP ¤¬Á÷¤ë SYN ºÆÁ÷¿ô¤òÀßÄꤹ¤ë¡£ -¤³¤ì¤Ï 255 ¤è¤êÂ礭¤¯¤Ï¤Ç¤­¤Ê¤¤¡£ -°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +接続の試行を中止させる前に TCP が送る SYN 再送数を設定する。 +これは 255 より大きくはできない。 +移植性の必要なプログラムではこのオプションを用いるべきではない。 .TP .\"O .BR TCP_WINDOW_CLAMP " (since Linux 2.4)" -.BR TCP_WINDOW_CLAMP " (Linux 2.4 °Ê¹ß)" +.BR TCP_WINDOW_CLAMP " (Linux 2.4 以降)" .\" Precisely: since 2.3.41 .\"O Bound the size of the advertised window to this value. .\"O The kernel imposes a minimum size of SOCK_MIN_RCVBUF/2. .\"O This option should not be used in code intended to be .\"O portable. -¹­Ê󤹤륦¥£¥ó¥É¥¦¤Î¥µ¥¤¥º¤ò¤³¤ÎÃͤ˸ÇÄꤹ¤ë¡£ -¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤ÆºÇ¾®¥µ¥¤¥º¤Ï SOCK_MIN_RCVBUF/2 ¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï°Ü¿¢À­¤ÎɬÍפʥ³¡¼¥É¤Ç¤ÏÍѤ¤¤ë¤Ù¤­¤Ç¤Ê¤¤¡£ +広報するウィンドウのサイズをこの値に固定する。 +カーネルによって最小サイズは SOCK_MIN_RCVBUF/2 に制限されている。 +このオプションは移植性の必要なコードでは用いるべきでない。 .\"O .SS Sockets API -.SS ¥½¥±¥Ã¥È API +.SS ソケット API .\"O TCP provides limited support for out-of-band data, .\"O in the form of (a single byte of) urgent data. .\"O In Linux this means if the other end sends newer out-of-band @@ -1688,15 +1688,15 @@ quickack .\"O .B SO_OOBINLINE .\"O is not set). .\"O This differs from BSD-based stacks. -TCP ¤ÏÂÓ°è³°¥Ç¡¼¥¿ (out-of-band data) ¤ò¸ÂÄêŪ¤Ë¥µ¥Ý¡¼¥È¤·¤Æ¤ª¤ê¡¢ -(1 ¥Ð¥¤¥È¤Î) ¶ÛµÞ¥Ç¡¼¥¿¤È¤¤¤¦·Á¤Ç¤¢¤ë¡£ -¤Ä¤Þ¤ê Linux ¤Ë¤ª¤¤¤Æ¤Ï¡¢ -ÀܳÀ褬 (¿·¤·¤¤¤ä¤êÊý¤Î) ÂÓ°è³°¥Ç¡¼¥¿¤òÁ÷¤Ã¤Æ¤­¤¿¾ì¹ç¡¢ -(¸Å¤¤¤ä¤êÊý¤Î) -¶ÛµÞ¥Ç¡¼¥¿¤ÏÄ̾ï¤Î¥Ç¡¼¥¿¤È¤·¤Æ¥¹¥È¥ê¡¼¥à¤ËÁÞÆþ¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë (¤³¤ì¤Ï +TCP は帯域外データ (out-of-band data) を限定的にサポートしており、 +(1 バイトの) 緊急データという形である。 +つまり Linux においては、 +接続先が (新しいやり方の) 帯域外データを送ってきた場合、 +(古いやり方の) +緊急データは通常のデータとしてストリームに挿入されることになる (これは .B SO_OOBINLINE -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ç¤âƱÍͤǤ¢¤ë)¡£ -¤³¤ì¤Ï BSD ¥Ù¡¼¥¹¤Î¥¹¥¿¥Ã¥¯¤È¤Ï°Û¤Ê¤ë¡£ +がセットされている場合でも同様である)。 +これは BSD ベースのスタックとは異なる。 .PP .\"O Linux uses the BSD compatible interpretation of the urgent .\"O pointer field by default. @@ -1704,20 +1704,20 @@ TCP .\"O required for interoperability with other stacks. .\"O It can be changed via .\"O .IR /proc/sys/net/ipv4/tcp_stdurg . -Linux ¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï urgent ¥Ý¥¤¥ó¥¿¥Õ¥£¡¼¥ë¥É¤Î²ò¼á¤Ë -BSD ¸ß´¹¤ÎÊýË¡¤òÍѤ¤¤ë¡£¤³¤ì¤Ï RFC\ 1122 ¤ËÈ¿¤·¤Æ¤¤¤ë¤¬¡¢ -¾¤Î¥¹¥¿¥Ã¥¯¤ÈƱ»þ¤ËÆ°ºî¤µ¤»¤ë¤Ë¤Ï¤ä¤à¤òÆÀ¤Ê¤¤¡£¤³¤ì¤Ï +Linux は、デフォルトでは urgent ポインタフィールドの解釈に +BSD 互換の方法を用いる。これは RFC\ 1122 に反しているが、 +他のスタックと同時に動作させるにはやむを得ない。これは .I /proc/sys/net/ipv4/tcp_stdurg -¤Ë¤è¤Ã¤ÆÊѹ¹¤Ç¤­¤ë¡£ +によって変更できる。 .\"O It is possible to peek at out-of-band data using the .\"O .IR recv (2) .\"O .B MSG_PEEK .\"O flag. .BR recv (2) -¤Î +の .B MSG_PEEK -¥Õ¥é¥°¤ò»È¤¦¤È¡¢ÂÓ°è³°¥Ç¡¼¥¿¤òÇÁ¤­¸«¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +フラグを使うと、帯域外データを覗き見することができる。 .\"O Since version 2.4, Linux supports the use of .\"O .B MSG_TRUNC @@ -1727,15 +1727,15 @@ BSD .\"O .BR recv (2) .\"O (and .\"O .BR recvmsg (2)). -Linux 2.4 °Ê¹ß¤Ç¤Ï¡¢ +Linux 2.4 以降では、 .BR recv (2) -(¤ä +(や .BR recvmsg (2)) -¤Î +の .I flags -°ú¤­¿ô¤Ë +引き数に .B MSG_TRUNC -¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +を使うことができる。 .\"O This flag causes the received bytes of data to be discarded, .\"O rather than passed back in a caller-supplied buffer. .\"O Since Linux 2.4.4, @@ -1743,13 +1743,13 @@ Linux 2.4 .\"O also has this effect when used in conjunction with .\"O .BR MSG_OOB .\"O to receive out-of-band data. -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È¡¢¼õ¿®¥Ç¡¼¥¿¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤«¤éÅϤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡ -¤Ë¥³¥Ô¡¼¤µ¤ì¤ÆÊÖ¤µ¤ì¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ÇÑ´þ¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -Linux 2.4.4 °Ê¹ß¤Ç¤Ï¡¢ +このフラグを指定すると、受信データは、呼び出し元から渡されたバッファ +にコピーされて返されるのではなく、廃棄されるようになる。 +Linux 2.4.4 以降では、 .B MSG_PEEK -¤ò¡¢ÂÓ°è³°¥Ç¡¼¥¿¤ò¼õ¿®¤¹¤ë¤¿¤á¤Î +を、帯域外データを受信するための .B MSG_OOB -¤ÈÁȤ߹ç¤ï¤»¤Æ»È¤Ã¤¿¾ì¹ç¤Ë¤â¡¢¤³¤ì¤ÈƱ¤¸¸ú²Ì¤ò»ý¤Ä¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +と組み合わせて使った場合にも、これと同じ効果を持つようになっている。 .\"O .SS Ioctlsl .SS ioctl .\"O These following @@ -1757,12 +1757,12 @@ Linux 2.4.4 .\"O calls return information in .\"O .IR value . .\"O The correct syntax is: -°Ê²¼¤Î +以下の .BR ioctl (2) -¸Æ¤Ó½Ð¤·¤Ï +呼び出しは .I value -¤Ë¾ðÊó¤òÆþ¤ì¤ÆÊÖ¤¹¡£ -Àµ¤·¤¤½ñ¼°¤Ï°Ê²¼¤ÎÄ̤ꡣ +に情報を入れて返す。 +正しい書式は以下の通り。 .PP .RS .nf @@ -1774,26 +1774,26 @@ Linux 2.4.4 .\"O .I ioctl_type .\"O is one of the following: .I ioctl_type -¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«°ì¤Ä¤Ç¤¢¤ë: +は以下のいずれか一つである: .TP .B SIOCINQ .\"O Returns the amount of queued unread data in the receive buffer. .\"O The socket must not be in LISTEN state, otherwise an error .\"O .RB ( EINVAL ) .\"O is returned. -¼õ¿®¥Ð¥Ã¥Õ¥¡¤Î¥­¥å¡¼¤Ë¤¢¤ë¡¢¤Þ¤ÀÆɤó¤Ç¤¤¤Ê¤¤¥Ç¡¼¥¿¤ÎÎ̤òÊÖ¤¹¡£ -¥½¥±¥Ã¥È¤Ï LISTEN ¾õÂ֤ˤ¢¤Ã¤Æ¤Ï¤Ê¤é¤º¡¢ -¤µ¤â¤Ê¤¤¤È¥¨¥é¡¼ +受信バッファのキューにある、まだ読んでいないデータの量を返す。 +ソケットは LISTEN 状態にあってはならず、 +さもないとエラー .RB ( EINVAL ) -¤¬Ê֤롣 +が返る。 .TP .B SIOCATMARK .\"O Returns true (i.e., .\"O .I value .\"O is nonzero) if the inbound data stream is at the urgent mark. -¼õ¿®¥Ç¡¼¥¿¥¹¥È¥ê¡¼¥à¤¬¶ÛµÞ¥Þ¡¼¥¯¤Î°ÌÃ֤Ǥ¢¤ì¤Ð¡¢¿¿¤òÊÖ¤¹ (¤Ä¤Þ¤ê +受信データストリームが緊急マークの位置であれば、真を返す (つまり .I value -¤¬ 0 °Ê³°)¡£ +が 0 以外)。 .sp .\"O If the .\"O .B SO_OOBINLINE @@ -1811,17 +1811,17 @@ Linux 2.4.4 .\"O .B recv(MSG_OOB) .\"O flag). .B SO_OOBINLINE -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Æ¡¢ +ソケットオプションが設定されていて、 .B SIOCATMARK -¤¬¿¿¤òÊÖ¤·¤¿¾ì¹ç¡¢¼¡¤Î¥½¥±¥Ã¥È¤«¤é¤ÎÆɤ߹þ¤ß¤Ç¤Ï¶ÛµÞ¥Ç¡¼¥¿¤¬ -ÊÖ¤µ¤ì¤ë¡£ +が真を返した場合、次のソケットからの読み込みでは緊急データが +返される。 .B SO_OOBINLINE -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬ÀßÄꤵ¤ì¤Æ¤ª¤é¤º¡¢ +ソケットオプションが設定されておらず、 .B SIOCATMARK -¤¬¿¿¤òÊÖ¤·¤¿¾ì¹ç¡¢¼¡¤Î¥½¥±¥Ã¥È¤«¤é¤ÎÆɤ߹þ¤ß¤Ç¤Ï¶ÛµÞ¥Ç¡¼¥¿¤Ë -³¤¯¥Ç¡¼¥¿¤¬ÊÖ¤µ¤ì¤ë (¼ÂºÝ¤Ë¶ÛµÞ¥Ç¡¼¥¿¤òÆɤ߹þ¤à¤Ë¤Ï +が真を返した場合、次のソケットからの読み込みでは緊急データに +続くデータが返される (実際に緊急データを読み込むには .B recv(MSG_OOB) -¤È¥Õ¥é¥°¤ò¤Ä¤±¤ëɬÍפ¬¤¢¤ë)¡£ +とフラグをつける必要がある)。 .\"O Note that a read never reads across the urgent mark. .\"O If an application is informed of the presence of urgent data via @@ -1836,40 +1836,40 @@ Linux 2.4.4 .\"O and performs a read (requesting any number of bytes) as long as .\"O .B SIOCATMARK .\"O returns false. -¥Ç¡¼¥¿¤Î°ì²ó¤ÎÆɤ߹þ¤ß¤Ç¤Ï¶ÛµÞ¥Þ¡¼¥¯¤ò¸Ù¤¬¤Ã¤Æ¤ÎÆɤ߹þ¤ß¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¶ÛµÞ¥Ç¡¼¥¿¤Î¸ºß¤ò +データの一回の読み込みでは緊急マークを跨がっての読み込みは行われない。 +アプリケーションが緊急データの存在を .RI ( exceptfds -°ú¤­¿ô¤ò»È¤Ã¤Æ) +引き数を使って) .BR select (2) -·Ðͳ¤Þ¤¿¤Ï +経由または .B SIGURG -¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤òÄ̤¸¤ÆÃΤ餵¤ì¤¿¾ì¹ç¡¢ +シグナルの配送を通じて知らされた場合、 .B SIOCATMARK -¤Î¥Á¥§¥Ã¥¯¤ÈÆɤ߹þ¤ß (²¿¥Ð¥¤¥ÈÆɤ߹þ¤ßÍ×µá¤ò¤·¤Æ¤â¤è¤¤) ¤ò +のチェックと読み込み (何バイト読み込み要求をしてもよい) を .B SIOCATMARK -¤¬µ¶¤òÊÖ¤µ¤Ê¤¯¤Ê¤ë¤Þ¤Ç·«¤êÊÖ¤·¹Ô¤¦¤³¤È¤Ç¡¢¶ÛµÞ¥Þ¡¼¥¯¤Î°ÌÃÖ¤Þ¤Ç -Æɤ߿ʤá¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +が偽を返さなくなるまで繰り返し行うことで、緊急マークの位置まで +読み進めることができる。 .TP .B SIOCOUTQ .\"O Returns the amount of unsent data in the socket send queue. .\"O The socket must not be in LISTEN state, otherwise an error .\"O .RB ( EINVAL ) .\"O is returned. -¥½¥±¥Ã¥È¤ÎÁ÷¿®¥­¥å¡¼¤Ë»Ä¤Ã¤Æ¤¤¤ë̤Á÷¿®¥Ç¡¼¥¿¤ÎÎ̤òÊÖ¤¹¡£ -¥½¥±¥Ã¥È¤Ï LISTEN ¾õÂ֤ˤ¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -LISTEN ¾õÂ֤ξì¹ç¤Ë¤Ï¥¨¥é¡¼ +ソケットの送信キューに残っている未送信データの量を返す。 +ソケットは LISTEN 状態にあってはならない。 +LISTEN 状態の場合にはエラー .RB ( EINVAL ) -¤È¤Ê¤ë¡£ +となる。 .\"O .SS Error Handling -.SS ¥¨¥é¡¼½èÍý +.SS エラー処理 .\"O When a network error occurs, TCP tries to resend the packet. .\"O If it doesn't succeed after some time, either .\"O .B ETIMEDOUT .\"O or the last received error on this connection is reported. -¥Í¥Ã¥È¥ï¡¼¥¯¥¨¥é¡¼¤¬µ¯¤³¤ë¤È¡¢ TCP ¤Ï¥Ñ¥±¥Ã¥È¤ÎºÆÁ÷¤ò»î¤ß¤ë¡£ -²¿²ó¤«¤ä¤Ã¤Æ¤âÀ®¸ù¤·¤Ê¤±¤ì¤Ð¡¢¤³¤ÎÀܳ¤ËÂФ·¤Æ +ネットワークエラーが起こると、 TCP はパケットの再送を試みる。 +何回かやっても成功しなければ、この接続に対して .B ETIMEOUT -¥¨¥é¡¼¤«ºÇ¸å¤Ë¼õ¿®¤·¤¿¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ +エラーか最後に受信したエラーが返される。 .PP .\"O Some applications require a quicker error notification. .\"O This can be enabled with the @@ -1881,17 +1881,17 @@ LISTEN .\"O errors are immediately passed to the user program. .\"O Use this option with care \(em it makes TCP less tolerant to routing .\"O changes and other normal network conditions. -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤è¤Ã¤Æ¤Ï¡¢¤â¤Ã¤ÈÁ᤯¥¨¥é¡¼¤òÃΤ餻¤Æ¤Û¤·¤¤¾ì¹ç¤¬¤¢¤ë¡£ -¤³¤ì¤Ë¤Ï +アプリケーションによっては、もっと早くエラーを知らせてほしい場合がある。 +これには .B IPPROTO_IP -¥ì¥Ù¥ë¤Î +レベルの .B IP_RECVERR -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤ÈÎɤ¤¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢ -ÅþÃ夷¤¿¥¨¥é¡¼¤Ï¤¹¤Ù¤Æ¤¿¤À¤Á¤Ë¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥à¤ËÅϤµ¤ì¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¿µ½Å¤ËÍѤ¤¤ë¤³¤È \(em ¥ë¡¼¥Æ¥£¥ó¥°¤ÎÊѹ¹¤Ê¤É¡¢ -Ä̾濫¤ê¤¦¤ë¥Í¥Ã¥È¥ï¡¼¥¯¾õÂÖ¤ËÂФ·¤Æ TCP ¤ò¤è¤êÀȼå¤Ë¤·¤Æ¤·¤Þ¤¦¡£ +ソケットオプションを用いると良い。このオプションが有効になっていると、 +到着したエラーはすべてただちにユーザープログラムに渡される。 +このオプションは慎重に用いること \(em ルーティングの変更など、 +通常ありうるネットワーク状態に対して TCP をより脆弱にしてしまう。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EAFNOTSUPPORT .\"O Passed socket address type in @@ -1899,61 +1899,61 @@ LISTEN .\"O was not .\"O .BR AF_INET . .I sin_family -¤ËÅϤµ¤ì¤¿¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Î¥¿¥¤¥×¤¬ +に渡されたソケットアドレスのタイプが .B AF_INET -¤Ç¤Ï¤Ê¤«¤Ã¤¿¡£ +ではなかった。 .TP .B EPIPE .\"O The other end closed the socket unexpectedly or a read is .\"O executed on a shut down socket. -ÀܳÀ褬ͽ´ü¤·¤Ê¤«¤Ã¤¿¤«¤¿¤Á¤Ç¥½¥±¥Ã¥È¤ò¥¯¥í¡¼¥º¤·¤¿¡£ -¤Þ¤¿¤Ï¥·¥ã¥Ã¥È¥À¥¦¥ó¤µ¤ì¤¿¥½¥±¥Ã¥È¤ËÆɤ߹þ¤ß¤¬¼Â¹Ô¤µ¤ì¤¿¡£ +接続先が予期しなかったかたちでソケットをクローズした。 +またはシャットダウンされたソケットに読み込みが実行された。 .TP .B ETIMEDOUT .\"O The other end didn't acknowledge retransmitted data after some time. -ÀܳÀ褬¡¢²¿²ó¤«¥Ç¡¼¥¿¤òºÆÁ÷¤·¤Æ¤âÈ¿±þ¤·¤Ê¤¤¡£ +接続先が、何回かデータを再送しても反応しない。 .PP .\"O Any errors defined for .\"O .BR ip (7) .\"O or the generic socket layer may also be returned for TCP. .BR ip (7) -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤ä¡¢¥¸¥§¥Í¥ê¥Ã¥¯¤Ê¥½¥±¥Ã¥ÈÁؤˤª¤±¤ë¥¨¥é¡¼¤â -TCP ¤ËÊÖ¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ +で定義されているエラーや、ジェネリックなソケット層におけるエラーも +TCP に返されることがある。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O Support for Explicit Congestion Notification, zero-copy .\"O .BR sendfile (2), .\"O reordering support and some SACK extensions .\"O (DSACK) were introduced in 2.4. .\"O Support for forward acknowledgement (FACK), TIME_WAIT recycling, .\"O and per-connection keepalive socket options were introduced in 2.3. -Explicit Congestion Notification¡¢zero-copy ¤Î -.BR sendfile (2)¡¢ -ʤÓÂؤ¨¤Î¥µ¥Ý¡¼¥È¡¢SACK ³ÈÄ¥ (DSACK) ¤Ê¤É¤Î¥µ¥Ý¡¼¥È¤Ï -2.4 ¤ÇƳÆþ¤µ¤ì¤¿¡£ -¥Õ¥©¥ï¡¼¥É³Îǧ (FACK)¡¢TIME_WAIT ¥ê¥µ¥¤¥¯¥ë¡¢Àܳ¤´¤È¤Î keepalive -¤ËÂФ¹¤ë¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤Ï 2.3 ¤ÇƳÆþ¤µ¤ì¤¿¡£ +Explicit Congestion Notification、zero-copy の +.BR sendfile (2)、 +並び替えのサポート、SACK 拡張 (DSACK) などのサポートは +2.4 で導入された。 +フォワード確認 (FACK)、TIME_WAIT リサイクル、接続ごとの keepalive +に対するソケットオプションは 2.3 で導入された。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Not all errors are documented. -¤Þ¤ÀÀâÌÀ¤µ¤ì¤Æ¤¤¤Ê¤¤¥¨¥é¡¼¤¬¤¢¤ë¡£ +まだ説明されていないエラーがある。 .br .\"O IPv6 is not described. -IPv6 ¤Ë´Ø¤¹¤ëµ­½Ò¤¬¤Ê¤¤¡£ +IPv6 に関する記述がない。 .\" Only a single Linux kernel version is described .\" Info for 2.2 was lost. Should be added again, .\" or put into a separate page. .\"O .SH .\" AUTHORS -.\" .SH Ãø¼Ô +.\" .SH 著者 .\"O .\" This man page was originally written by Andi Kleen. .\"O .\" It was updated for 2.4 by Nivedita Singhvi with input from .\"O .\" Alexey Kuznetsov's Documentation/networking/ip-sysctl.txt .\"O .\" document. -.\" ¤³¤Î man ¥Ú¡¼¥¸¤ÏºÇ½é Andi Kleen ¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤¿¡£ -.\" Alexey Kuznetsov ¤Îʸ½ñ Documentation/networking/ip-sysctl.txt -.\" ¤Î¾ðÊó¤ò¸µ¤Ë¡¢Nivedita Singhvi ¤¬ 2.4 ¸þ¤±¤Ë¹¹¿·¤·¤¿¡£ +.\" この man ページは最初 Andi Kleen によって書かれた。 +.\" Alexey Kuznetsov の文書 Documentation/networking/ip-sysctl.txt +.\" の情報を元に、Nivedita Singhvi が 2.4 向けに更新した。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR accept (2), .BR bind (2), .BR connect (2), @@ -1967,22 +1967,22 @@ IPv6 .BR socket (7) .sp .\"O RFC\ 793 for the TCP specification. -RFC\ 793: TCP ¤Î»ÅÍÍ¡£ +RFC\ 793: TCP の仕様。 .br .\"O RFC\ 1122 for the TCP requirements and a description of the Nagle algorithm. -RFC\ 1122: TCP ¤ÎÍ×µá»ö¹à¤È Nagle ¥¢¥ë¥´¥ê¥º¥à¤Îµ­½Ò¡£ +RFC\ 1122: TCP の要求事項と Nagle アルゴリズムの記述。 .br .\"O RFC\ 1323 for TCP timestamp and window scaling options. -RFC\ 1323: TCP ¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×¡¦¥¦¥£¥ó¥É¥¦¥¹¥±¡¼¥ê¥ó¥°³Æ¥ª¥×¥·¥ç¥ó¡£ +RFC\ 1323: TCP のタイムスタンプ・ウィンドウスケーリング各オプション。 .br .\"O RFC\ 1644 for a description of TIME_WAIT assassination hazards. -RFC\ 1644: TIME_WAIT assassination hazard ¤Ë´Ø¤¹¤ëµ­½Ò¡£ +RFC\ 1644: TIME_WAIT assassination hazard に関する記述。 .br .\"O RFC\ 3168 for a description of Explicit Congestion Notification. -RFC\ 3168: Explicit Congestion Notification ¤Ë´Ø¤¹¤ëµ­½Ò¡£ +RFC\ 3168: Explicit Congestion Notification に関する記述。 .br .\"O RFC\ 2581 for TCP congestion control algorithms. -RFC\ 2581: TCP íÕíÔÀ©¸æ¥¢¥ë¥´¥ê¥º¥à¡£ +RFC\ 2581: TCP 輻輳制御アルゴリズム。 .br .\"O RFC\ 2018 and RFC\ 2883 for SACK and extensions to SACK. -RFC\ 2018 ¤È RFC\ 2883: SACK ¤È¤½¤Î³ÈÄ¥¡£ +RFC\ 2018 と RFC\ 2883: SACK とその拡張。 diff --git a/draft/man7/termio.7 b/draft/man7/termio.7 index 3a2d4e2d..2e42e48c 100644 --- a/draft/man7/termio.7 +++ b/draft/man7/termio.7 @@ -28,11 +28,11 @@ .\" .TH TERMIO 7 2006-12-28 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O termio \- System V terminal driver interface -termio \- System V üËö¥É¥é¥¤¥Ð¥¤¥ó¥¿¥Õ¥§¡¼¥¹ +termio \- System V 端末ドライバインタフェース .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .B termio .\"O is the name of the old System V terminal driver interface. .\"O This interface defined a @@ -41,13 +41,13 @@ termio \- System V ü .\"O .BR ioctl (2) .\"O operations to get and set terminal attributes. .B termio -¤Ï¡¢¸Å¤¤ System V üËö¥É¥é¥¤¥Ð¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î̾Á°¤Ç¤¢¤ë¡£ -¤³¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¡¢ -üËöÀßÄê¤òÊÝ»ý¤¹¤ë¤¿¤á¤Î +は、古い System V 端末ドライバインタフェースの名前である。 +このインタフェースは、 +端末設定を保持するための .I termio -¹½Â¤ÂΡ¢¤ª¤è¤ÓüËö°À­¤ò¼èÆÀ¡¦Êѹ¹¤¹¤ë¤¿¤á¤Î¼ï¡¹¤Î +構造体、および端末属性を取得・変更するための種々の .BR ioctl (2) -Áàºî¤òÄêµÁ¤·¤Æ¤¤¤¿¡£ +操作を定義していた。 .\"O The .\"O .B termio @@ -64,32 +64,32 @@ termio \- System V ü .\"O was unstandardized, and its variadic third argument .\"O does not allow argument type checking.) .B termio -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¸½ºß¤Ç¤Ï»þÂåÃÙ¤ì¤Ç¤¢¤ë¡£ -POSIX.1-1990 ¤Ç¡¢¤³¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î½¤ÀµÈǤ¬ +インタフェースは現在では時代遅れである。 +POSIX.1-1990 で、このインタフェースの修正版が .B termios -¤È¤¤¤¦Ì¾Á°¤Çɸ½à²½¤µ¤ì¤¿¡£ -POSIX.1 ¤Î¥Ç¡¼¥¿¹½Â¤¤Ï System V ÈǤȾ¯¤·°ã¤¤¤¬¤¢¤ë¡£ -¤Þ¤¿¡¢POSIX.1 ¤Ï System V ÈǤǸºß¤·¤¿¼ï¡¹¤Î +という名前で標準化された。 +POSIX.1 のデータ構造は System V 版と少し違いがある。 +また、POSIX.1 は System V 版で存在した種々の .BR ioctl (2) -Áàºî¤òÃÖ¤­´¹¤¨¤ë´Ø¿ô·²¤òÄêµÁ¤·¤¿ -(¤³¤Î¤è¤¦¤Ë¤Ê¤Ã¤¿¤Î¤Ï¡¢ +操作を置き換える関数群を定義した +(このようになったのは、 .BR ioctl (2) -¤¬É¸½à²½¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¤³¤È¤È¡¢ +が標準化されていなかったことと、 .BR ioctl (2) -¤ÎÂè»°°ú¤­¿ô¤¬²ÄÊÑĹ°ú¤­¿ô¤Ç·¿¥Á¥§¥Ã¥¯¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¤Î¤¬Íýͳ¤Ç¤¢¤ë)¡£ +の第三引き数が可変長引き数で型チェックができなかったのが理由である)。 .\"O If you're looking for page called "termio", then you can probably .\"O find most of the information that you seek in either .\"O .BR termios (3) .\"O or .\"O .BR tty_ioctl (4). -"termio" ¤È¤¤¤¦ man page ¤òõ¤·¤Æ¤¤¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢ -õ¤·¤Æ¤¤¤ë¾ðÊó¤Î¤Û¤È¤ó¤É¤Ï +"termio" という man page を探しているのであれば、 +探している情報のほとんどは .BR termios (3) -¤« +か .BR tty_ioctl (4) -¤Î¤É¤Á¤é¤«¤Ç¸«¤Ä¤«¤ë¤³¤È¤À¤í¤¦¡£ +のどちらかで見つかることだろう。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR termios (3), .BR tty_ioctl (4) diff --git a/draft/man7/time.7 b/draft/man7/time.7 index e95d5206..36894ebf 100644 --- a/draft/man7/time.7 +++ b/draft/man7/time.7 @@ -31,24 +31,24 @@ .\" .TH TIME 7 2010-02-25 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O time \- overview of time and timers -time \- »þ´Ö¤È¥¿¥¤¥Þ¤Î³µÍ× +time \- 時間とタイマの概要 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .SS "Real time and process time" -.SS "¼Â»þ´Ö (real time) ¤È¥×¥í¥»¥¹»þ´Ö" +.SS "実時間 (real time) とプロセス時間" .\"O .I "Real time" .\"O is defined as time measured from some fixed point, .\"O either from a standard point in the past .\"O (see the description of the Epoch and calendar time below), .\"O or from some point (e.g., the start) in the life of a process .\"O .RI ( "elapsed time" ). -\fI¼Â»þ´Ö\fR¤Ï¡¢ÆÃÄê¤Î»þÅÀ¤«¤é·×¤Ã¤¿»þ´Ö¤ÈÄêµÁ¤µ¤ì¤ë¡£ -ÆÃÄê¤Î»þÅÀ¤È¤Ï¡¢²áµî¤Îɸ½àŪ¤Ê»þÅÀ -(²¼µ­¤Îµª¸µ (Epoch) ¤È¥«¥ì¥ó¥À»þ¹ï¤ÎÀâÌÀ¤ò»²¾È) ¤ä¡¢ -¥×¥í¥»¥¹¤Î°ìÀ¸¤Ë¤ª¤±¤ë²¿¤é¤«¤Î»þÅÀ (Î㤨¤Ð¡¢³«»Ï»þ) ¤Ç¤¢¤ë -.RI ( "·Ð²á»þ´Ö" )¡£ +\fI実時間\fRは、特定の時点から計った時間と定義される。 +特定の時点とは、過去の標準的な時点 +(下記の紀元 (Epoch) とカレンダ時刻の説明を参照) や、 +プロセスの一生における何らかの時点 (例えば、開始時) である +.RI ( "経過時間" )。 .\"O .I "Process time" .\"O is defined as the amount of CPU time used by a process. @@ -57,50 +57,50 @@ time \- .\"O and .\"O .I system .\"O components. -\fI¥×¥í¥»¥¹»þ´Ö\fR¤Ï¡¢¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ»È¤ï¤ì¤¿Áí CPU »þ´Ö¤ÈÄêµÁ¤µ¤ì¤ë¡£ -¿¤¯¤Î¾ì¹ç¡¢\fI¥æ¡¼¥¶\fR»þ´Ö¤È\fI¥·¥¹¥Æ¥à\fR»þ´Ö¤Ëʬ¤±¤é¤ì¤ë¡£ +\fIプロセス時間\fRは、プロセスによって使われた総 CPU 時間と定義される。 +多くの場合、\fIユーザ\fR時間と\fIシステム\fR時間に分けられる。 .\"O User CPU time is the time spent executing code in user mode. .\"O System CPU time is the time spent by the kernel executing .\"O in system mode on behalf of the process (e.g., executing system calls). -¥æ¡¼¥¶ CPU »þ´Ö¤Ï¡¢¥³¡¼¥É¤ò¥æ¡¼¥¶¥â¡¼¥É¤Ç¼Â¹Ô¤¹¤ë¤Î¤Ë»È¤Ã¤¿»þ´Ö¤Ç¤¢¤ë¡£ -¥·¥¹¥Æ¥à CPU »þ´Ö¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤Î¤¿¤á¤Ë -¥«¡¼¥Í¥ë¤¬¥·¥¹¥Æ¥à¥â¡¼¥É¤Ç¼Â¹Ô¤¹¤ë¤Î¤Ë»È¤Ã¤¿»þ´Ö¤Ç¤¢¤ë -(Î㤨¤Ð¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¼Â¹Ô¤¹¤ë¤Î¤Ë»È¤Ã¤¿»þ´Ö)¡£ +ユーザ CPU 時間は、コードをユーザモードで実行するのに使った時間である。 +システム CPU 時間は、そのプロセスのために +カーネルがシステムモードで実行するのに使った時間である +(例えば、システムコールを実行するのに使った時間)。 .\"O The .\"O .BR time (1) .\"O command can be used to determine the amount of CPU time consumed .\"O during the execution of a program. .BR time (1) -¥³¥Þ¥ó¥É¤Ï¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤ËÈñ¤µ¤ì¤¿Áí CPU »þ´Ö¤ò·×¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ +コマンドはプログラムの実行に費された総 CPU 時間を計るのに使用される。 .\"O A program can determine the amount of CPU time it has consumed using .\"O .BR times (2), .\"O .BR getrusage (2), .\"O or .\"O .BR clock (3). -¥×¥í¥°¥é¥à¤Ï¡¢¼«¿È¤¬Èñ¤·¤¿Áí CPU »þ´Ö¤ò +プログラムは、自身が費した総 CPU 時間を .BR times (2), .BR getrusage (2), .BR clock (3) -¤ò»È¤Ã¤Æ·×¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使って計ることができる。 .\"O .SS "The Hardware Clock" -.SS ¥Ï¡¼¥É¥¦¥§¥¢¥¯¥í¥Ã¥¯ +.SS ハードウェアクロック .\"O Most computers have a (battery-powered) hardware clock which the kernel .\"O reads at boot time in order to initialize the software clock. -¿¤¯¤Î¥³¥ó¥Ô¥å¡¼¥¿¤¬ (ÅÅÃӤǶîÆ°¤µ¤ì¤ë) ¥Ï¡¼¥É¥¦¥§¥¢¥¯¥í¥Ã¥¯¤ò»ý¤Ã¤Æ¤¤¤ë¡£ -¥«¡¼¥Í¥ë¤Ïµ¯Æ°»þ¤Ë¥½¥Õ¥È¥¦¥§¥¢¥¯¥í¥Ã¥¯¤ò½é´ü²½¤¹¤ë¤¿¤á¤Ë -¥Ï¡¼¥É¥¦¥§¥¢¥¯¥í¥Ã¥¯¤òÆɤ߹þ¤à¡£ +多くのコンピュータが (電池で駆動される) ハードウェアクロックを持っている。 +カーネルは起動時にソフトウェアクロックを初期化するために +ハードウェアクロックを読み込む。 .\"O For further details, see .\"O .BR rtc (4) .\"O and .\"O .BR hwclock (8). -¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï¡¢ +より詳しい情報は、 .BR rtc (4) -¤È +と .BR hwclock (8) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O .SS "The Software Clock, HZ, and Jiffies" -.\"Osato: °Ê²¼¤Ç¤Ï jiffies ¤Ïñ¿ô·Á jiffy ¤ËÅý°ì¤·¤Æ¤¤¤ë¡£ -.SS "¥½¥Õ¥È¥¦¥§¥¢¥¯¥í¥Ã¥¯, HZ, Jiffy" +.\"Osato: 以下では jiffies は単数形 jiffy に統一している。 +.SS "ソフトウェアクロック, HZ, Jiffy" .\"O The accuracy of various system calls that set timeouts, .\"O (e.g., .\"O .BR select (2), @@ -115,27 +115,27 @@ time \- .\"O .IR jiffies . .\"O The size of a jiffy is determined by the value of the kernel constant .\"O .IR HZ . -¥¿¥¤¥à¥¢¥¦¥È¤òÀßÄꤷ¤¿¤ê (Î㤨¤Ð +タイムアウトを設定したり (例えば .BR select (2), -.BR sigtimedwait (2))¡¢ -.\" semtimedop(), mq_timedwait(), io_getevents(), poll() ¤ÏƱ¤¸ futex ¤Ç¤¢¤ê¡¢ -.\" ¤·¤¿¤¬¤Ã¤Ã¤Æ sem_timedwait() ¤Ï¹âÀºÅÙ¥¿¥¤¥Þ¤ò»ÈÍѤ·¤Æ¤¤¤ë¤è¤¦¤Ç¤¢¤ë¡£ -CPU »þ´Ö¤ò·×¬¤·¤¿¤ê (Î㤨¤Ð -.BR getrusage (2)) ¤¹¤ëÍÍ¡¹¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÀºÅÙ¤Ï -.I ¥½¥Õ¥È¥¦¥§¥¢¥¯¥í¥Ã¥¯ -¤Îʬ²òǽ (resolution) ¤ËÀ©¸Â¤µ¤ì¤ë¡£ -¥½¥Õ¥È¥¦¥§¥¢¥¯¥í¥Ã¥¯¤È¤Ï¡¢¥«¡¼¥Í¥ë¤¬´ÉÍý¤¹¤ë +.BR sigtimedwait (2))、 +.\" semtimedop(), mq_timedwait(), io_getevents(), poll() は同じ futex であり、 +.\" したがっって sem_timedwait() は高精度タイマを使用しているようである。 +CPU 時間を計測したり (例えば +.BR getrusage (2)) する様々なシステムコールの精度は +.I ソフトウェアクロック +の分解能 (resolution) に制限される。 +ソフトウェアクロックとは、カーネルが管理する .I jiffy -ñ°Ì¤Ç»þ´Ö¤ò·×¬¤¹¤ë¥¯¥í¥Ã¥¯¤Î¤³¤È¤Ç¤¢¤ë¡£ -jiffy ¤ÎÂ礭¤µ¤Ï¥«¡¼¥Í¥ëÄê¿ô +単位で時間を計測するクロックのことである。 +jiffy の大きさはカーネル定数 .I HZ -¤ÎÃͤǷèÄꤵ¤ì¤ë¡£ +の値で決定される。 .\"O The value of .\"O .I HZ .\"O varies across kernel versions and hardware platforms. .I HZ -¤ÎÃͤϥ«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤È¥Ï¡¼¥É¥¦¥§¥¢¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç°Û¤Ê¤ë¡£ +の値はカーネルのバージョンとハードウェアプラットフォームで異なる。 .\"O On i386 the situation is as follows: .\"O on kernels up to and including 2.4.x, HZ was 100, .\"O giving a jiffy value of 0.01 seconds; @@ -144,18 +144,18 @@ jiffy .\"O Since kernel 2.6.13, the HZ value is a kernel .\"O configuration parameter and can be 100, 250 (the default) or 1000, .\"O yielding a jiffies value of, respectively, 0.01, 0.004, or 0.001 seconds. -i386 ¤Î¾ì¹ç¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë: -2.4.x ¤È¤½¤ì¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢HZ ¤Ï 100 ¤Ç¤¢¤Ã¤¿¤Î¤Ç¡¢ -jiffy ¤ÎÃÍ¤Ï 0.01 ÉäˤʤäƤ¤¤¿¡£ -2.6.0 °Ê¹ß¤Ç¤Ï¡¢HZ ¤Ï 1000 ¤ËÁý¤ä¤µ¤ì¤¿¤Î¤Ç¡¢jiffy ¤ÎÃÍ¤Ï 0.001 ÉäǤ¢¤ë¡£ -¥«¡¼¥Í¥ë 2.6.13 °Ê¹ß¤Ç¤Ï¡¢HZ ¤ÎÃͤϥ«¡¼¥Í¥ëÀßÄê¥Ñ¥é¥á¡¼¥¿¤Ë¤Ê¤ê¡¢ -100, 250 (¥Ç¥Õ¥©¥ë¥È), 1000 ¤È¤¤¤¦ÃͤˤǤ­¤ë¡£ -¤½¤ì¤¾¤ì jiffy ¤ÎÃÍ¤Ï 0.01, 0.004, 0.001 Éäˤʤ롣 +i386 の場合は以下の通りである: +2.4.x とそれより前のカーネルでは、HZ は 100 であったので、 +jiffy の値は 0.01 秒になっていた。 +2.6.0 以降では、HZ は 1000 に増やされたので、jiffy の値は 0.001 秒である。 +カーネル 2.6.13 以降では、HZ の値はカーネル設定パラメータになり、 +100, 250 (デフォルト), 1000 という値にできる。 +それぞれ jiffy の値は 0.01, 0.004, 0.001 秒になる。 .\"O Since kernel 2.6.20, a further frequency is available: .\"O 300, a number that divides evenly for the common video .\"O frame rates (PAL, 25 HZ; NTSC, 30 HZ). -¥«¡¼¥Í¥ë 2.6.20 °Ê¹ß¤Ç¤Ï¡¢300 ¤âÍøÍѤǤ­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -300 ¤Ï°ìÈÌŪ¤Ê±ÇÁü¥Õ¥ì¡¼¥à¥ì¡¼¥È¤Î¸øÇÜ¿ô¤Ç¤¢¤ë (PAL, 25HZ; NTSC, 30HZ)¡£ +カーネル 2.6.20 以降では、300 も利用できるようになっている。 +300 は一般的な映像フレームレートの公倍数である (PAL, 25HZ; NTSC, 30HZ)。 .\"O The .\"O .BR times (2) @@ -165,22 +165,22 @@ jiffy .\"O Userspace applications can determine the value of this constant using .\"O .IR sysconf(_SC_CLK_TCK) . .BR times (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÆüì¤Ê¥±¡¼¥¹¤Ç¤¢¤ê¡¢ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ëÄê¿ô +システムコールは特殊なケースであり、 +このシステムコールはカーネル定数 .I USER_HZ -¤ÇÄêµÁ¤µ¤ì¤¿Î³Å٤ǻþ´Ö¤òÊó¹ð¤¹¤ë¡£ -¥æ¡¼¥¶¶õ´Ö¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï +で定義された粒度で時間を報告する。 +ユーザ空間のアプリケーションは .I sysconf(_SC_CLK_TCK) -¤ò»È¤Ã¤Æ¤³¤ÎÄê¿ô¤ÎÃͤòÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ +を使ってこの定数の値を知ることができる。 .\" glibc gets this info with a little help from the ELF loader; .\" see glibc elf/dl-support.c and kernel fs/binfmt_elf.c. .\" .\"O .SS "High-Resolution Timers" -.SS "¹âÀºÅÙ¥¿¥¤¥Þ" +.SS "高精度タイマ" .\"O Before Linux 2.6.21, the accuracy of timer and sleep system calls .\"O (see below) was also limited by the size of the jiffy. -Linux 2.6.21 ¤è¤êÁ°¤Ç¤Ï¡¢¥¿¥¤¥Þ¤ä¥¹¥ê¡¼¥×´ØÏ¢¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÀºÅÙ¤â -jiffy ¤Î¥µ¥¤¥º¤Ë¤è¤êÀ©¸Â¤µ¤ì¤Æ¤¤¤¿¡£ +Linux 2.6.21 より前では、タイマやスリープ関連のシステムコールの精度も +jiffy のサイズにより制限されていた。 .\"O Since Linux 2.6.21, Linux supports high-resolution timers (HRTs), .\"O optionally configurable via @@ -194,31 +194,31 @@ jiffy .\"O .BR clock_getres (2) .\"O or looking at the "resolution" entries in .\"O .IR /proc/timer_list . -Linux 2.6.21 °Ê¹ß¤Ç¤Ï¡¢Linux ¤Ï¹âÀºÅÙ¥¿¥¤¥Þ (high-resolution timers; HRTs) -¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤ª¤ê¡¢ +Linux 2.6.21 以降では、Linux は高精度タイマ (high-resolution timers; HRTs) +をサポートしており、 .B CONFIG_HIGH_RES_TIMERS -¤ÇÀ©¸æ¤Ç¤­¤ë¡£ -¹âÀºÅÙ¥¿¥¤¥Þ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥¿¥¤¥Þ¤È¥¹¥ê¡¼¥×´ØÏ¢¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë -¤ÎÀºÅ٤Ϥâ¤Ï¤ä jiffy ¤ËÀ©Ì󤵤ì¤ë¤³¤È¤Ï¤Ê¤¯¡¢ -¥Ï¡¼¥É¥¦¥§¥¢¤¬µö¤¹¸Â¤ê¤ÎÀºÅ٤Ȥʤë -(ºÇ¶á¤Î¥Ï¡¼¥É¥¦¥§¥¢¤Ç¤Ï¥Þ¥¤¥¯¥íÉÃñ°Ì¤ÎÀºÅÙ¤¬°ìÈÌŪ¤Ç¤¢¤ë)¡£ -¹âÀºÅÙ¥¿¥¤¥Þ¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤«¤Ï¡¢ +で制御できる。 +高精度タイマをサポートしているシステムでは、タイマとスリープ関連のシステムコール +の精度はもはや jiffy に制約されることはなく、 +ハードウェアが許す限りの精度となる +(最近のハードウェアではマイクロ秒単位の精度が一般的である)。 +高精度タイマがサポートされているかは、 .BR clock_getres (2) -¤ò¸Æ¤Ó½Ð¤·¤Æʬ²òǽ¤ò³Îǧ¤¹¤ë¤«¡¢ +を呼び出して分解能を確認するか、 .I /proc/timer_list -Æâ¤Î "resolution" ¥¨¥ó¥È¥ê¤ò»²¾È¤¹¤ë¤«¤ÇȽÃǤǤ­¤ë¡£ +内の "resolution" エントリを参照するかで判断できる。 .\"O HRTs are not supported on all hardware architectures. .\"O (Support is provided on x86, arm, and powerpc, among others.) -¹âÀºÅÙ¥¿¥¤¥Þ¤Ï¤¹¤Ù¤Æ¤Î¥Ï¡¼¥É¥¦¥§¥¢¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë -Ìõ¤Ç¤Ï¤Ê¤¤ (Âбþ¤·¤Æ¤¤¤ë¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ï x86, arm, powerpc ¤Ç¤¢¤ë)¡£ +高精度タイマはすべてのハードウェアアーキテクチャでサポートされている +訳ではない (対応しているアーキテクチャは x86, arm, powerpc である)。 .\"O .SS "The Epoch" -.SS "µª¸µ" +.SS "紀元" .\"O UNIX systems represent time in seconds since the .\"O .IR Epoch , .\"O 1970-01-01 00:00:00 +0000 (UTC). -UNIX ¥·¥¹¥Æ¥à¤Ï»þ¹ï¤ò -µª¸µ (1970-01-01 00:00:00 +0000 (UTC)) ¤«¤é¤ÎÉÿô¤Çɽ¸½¤¹¤ë¡£ +UNIX システムは時刻を +紀元 (1970-01-01 00:00:00 +0000 (UTC)) からの秒数で表現する。 .\"O A program can determine the .\"O .I "calendar time" @@ -226,22 +226,22 @@ UNIX .\"O .BR gettimeofday (2), .\"O which returns time (in seconds and microseconds) that have .\"O elapsed since the Epoch; -¥×¥í¥°¥é¥à¤Ï \fI¥«¥ì¥ó¥À»þ¹ï\fR ¤ò +プログラムは \fIカレンダ時刻\fR を .BR gettimeofday (2) -¤ò»È¤Ã¤Æ·×¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î´Ø¿ô¤Ïµª¸µ¤«¤é¤Î·Ð²á»þ´Ö¤ò (Éäȥޥ¤¥¯¥íÉäÇ) ÊÖ¤¹¡£ +を使って計ることができる。 +この関数は紀元からの経過時間を (秒とマイクロ秒で) 返す。 .\"O .BR time (2) .\"O provides similar information, but only with accuracy to the .\"O nearest second. .\"O The system time can be changed using .\"O .BR settimeofday (2). .BR time (2) -¤ÏƱÍͤξðÊó¤òÄ󶡤¹¤ë¤¬¡¢ºÇ¤â¶á¤¤ÉäÎÀºÅÙ¤·¤«¤Ê¤¤¡£ -¥·¥¹¥Æ¥à»þ¹ï¤Ï +は同様の情報を提供するが、最も近い秒の精度しかない。 +システム時刻は .BR settimeofday (2) -¤ÇÊѹ¹¤Ç¤­¤ë¡£ +で変更できる。 .\"O .SS "Broken-down time" -.SS "Í×ÁÇÊ̤λþ¹ï" +.SS "要素別の時刻" .\"O Certain library functions use a structure of .\"O type .\"O .I tm @@ -249,44 +249,44 @@ UNIX .\"O .IR "broken-down time" , .\"O which stores time value separated out into distinct components .\"O (year, month, day, hour, minute, second, etc.). -¥é¥¤¥Ö¥é¥ê´Ø¿ô¤ÎÃæ¤Ë¤Ï +ライブラリ関数の中には .I tm -·¿¤Î¹½Â¤ÂΤò»È¤¦¤â¤Î¤¬¤¢¤ë¡£ -¤³¤Î¹½Â¤ÂΤÏ\fIÍ×ÁÇÊ̤λþ¹ï\fR¤òɽ¤·¡¢ -»þ¹ï¤ÎÃͤòÊÌ¡¹¤ÎÍ×ÁÇ (ǯ¡¦·î¡¦Æü¡¦»þ¡¦Ê¬¡¦ÉäʤÉ) ¤Ëʬ¤±¤Æ³ÊǼ¤¹¤ë¡£ +型の構造体を使うものがある。 +この構造体は\fI要素別の時刻\fRを表し、 +時刻の値を別々の要素 (年・月・日・時・分・秒など) に分けて格納する。 .\"O This structure is described in .\"O .BR ctime (3), .\"O which also describes functions that convert between calendar time and .\"O broken-down time. -¤³¤Î¹½Â¤ÂÎ¤Ï +この構造体は .BR ctime (3) -¤Ëµ­½Ò¤µ¤ì¤Æ¤ª¤ê¡¢¥«¥ì¥ó¥À»þ¹ï¤òÍ×ÁÇÊ̤λþ¹ï¤ËÊÑ´¹¤¹¤ë -´Ø¿ô¤Ë¤Ä¤¤¤Æ¤âµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +に記述されており、カレンダ時刻を要素別の時刻に変換する +関数についても記述されている。 .\"O Functions for converting between broken-down time and printable .\"O string representations of the time are described in .\"O .BR ctime (3), .\"O .BR strftime (3), .\"O and .\"O .BR strptime (3). -Í×ÁÇÊ̤λþ¹ï¤òɽ¼¨²Äǽ¤Êʸ»úÎó¤ËÊÑ´¹¤¹¤ë´Ø¿ô¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +要素別の時刻を表示可能な文字列に変換する関数については、 .BR ctime (3), .BR strftime (3), .BR strptime (3) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +に記述されている。 .\"O .SS "Sleeping and Setting Timers" -.SS "¥¿¥¤¥Þ¤Î¥¹¥ê¡¼¥×¤ÈÀßÄê" +.SS "タイマのスリープと設定" .\"O Various system calls and functions allow a program to sleep .\"O (suspend execution) for a specified period of time; see .\"O .BR nanosleep (2), .\"O .BR clock_nanosleep (2), .\"O and .\"O .BR sleep (3). -ÍÍ¡¹¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤È´Ø¿ô¤Ë¤è¤ê¡¢»ØÄꤵ¤ì¤¿°ìÄê¤Î»þ´Ö¡¢ -¥×¥í¥°¥é¥à¤Ï¥¹¥ê¡¼¥× (¼Â¹Ô¤òÄä»ß) ¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£ +様々なシステムコールと関数により、指定された一定の時間、 +プログラムはスリープ (実行を停止) することが可能である。 .BR nanosleep (2), .BR clock_nanosleep (2), .BR sleep (3) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O Various system calls allow a process to set a timer that expires .\"O at some point in the future, and optionally at repeated intervals; @@ -296,16 +296,16 @@ UNIX .\"O .BR timerfd_create (2), .\"O and .\"O .BR timer_create (2). -ÍÍ¡¹¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤è¤ê¡¢¥×¥í¥»¥¹¤Ï¾­Íè¤Î¤¢¤ë»þÅÀ¤Ç -Í­¸ú´ü´Ö¤¬½ªÎ»¤¹¤ë¥¿¥¤¥Þ¤òÀßÄê¤Ç¤­¤ë¡£ -¤Þ¤¿¥ª¥×¥·¥ç¥ó¤È¤·¤Æ·«¤êÊÖ¤·´Ö³Ö¤¬»ØÄê¤Ç¤­¤ë¤â¤Î¤â¤¢¤ë¡£ +様々なシステムコールにより、プロセスは将来のある時点で +有効期間が終了するタイマを設定できる。 +またオプションとして繰り返し間隔が指定できるものもある。 .BR alarm (2), .BR getitimer (2), .BR timerfd_create (2), .BR timer_create (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR date (1), .BR time (1), .BR adjtimex (2), diff --git a/draft/man7/udp.7 b/draft/man7/udp.7 index c7e09cb5..29fc835a 100644 --- a/draft/man7/udp.7 +++ b/draft/man7/udp.7 @@ -15,26 +15,26 @@ .TH UDP 7 2009-09-30 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O udp \- User Datagram Protocol for IPv4 -.SH ̾Á° -udp \- IPv4 ¤Î ¥æ¡¼¥¶¡¼¥Ç¡¼¥¿¥°¥é¥à¥×¥í¥È¥³¥ë +.SH 名前 +udp \- IPv4 の ユーザーデータグラムプロトコル .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include .sp .B udp_socket = socket(AF_INET, SOCK_DGRAM, 0); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This is an implementation of the User Datagram Protocol .\"O described in RFC\ 768. .\"O It implements a connectionless, unreliable datagram packet service. .\"O Packets may be reordered or duplicated before they arrive. .\"O UDP generates and checks checksums to catch transmission errors. -¤³¤ì¤Ï RFC\ 768 ¤Çµ­½Ò¤µ¤ì¤Æ¤¤¤ë User Datagram Protocol ¤Î¼ÂÁõ¤Ç¤¢¤ë¡£ -UDP ¤Ï¥³¥Í¥¯¥·¥ç¥ó¥ì¥¹¤Î¡¢¿®ÍêÀ­¤ÎÄ㤤¥Ç¡¼¥¿¥Ñ¥±¥Ã¥È¥µ¡¼¥Ó¥¹¤Ç¤¢¤ë¡£ -¥Ñ¥±¥Ã¥È¤ÏÅþÃåÁ°¤ËʤÓÂؤ¨¤é¤ì¤¿¤êÊ£À½¤µ¤ì¤¿¤ê¤¹¤ë¡£ -UDP ¤ÏžÁ÷¥¨¥é¡¼¤ò¸¡½Ð¤¹¤ë¤¿¤á¤Ë¥Á¥§¥Ã¥¯¥µ¥à¤òÀ¸À®¡¦¥Á¥§¥Ã¥¯¤¹¤ë¡£ +これは RFC\ 768 で記述されている User Datagram Protocol の実装である。 +UDP はコネクションレスの、信頼性の低いデータパケットサービスである。 +パケットは到着前に並び替えられたり複製されたりする。 +UDP は転送エラーを検出するためにチェックサムを生成・チェックする。 .\"O When a UDP socket is created, .\"O its local and remote addresses are unspecified. @@ -51,62 +51,62 @@ UDP .\"O or .\"O .BR write (2) .\"O without specifying a destination address. -UDP ¥½¥±¥Ã¥È¤¬À¸À®¤µ¤ì¤ë¤È¤­¡¢ -¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤ä¥ê¥â¡¼¥È¥¢¥É¥ì¥¹¤Ï»ØÄꤵ¤ì¤Ê¤¤¡£ -Àµ¤·¤¤¹Ô¤­À襢¥É¥ì¥¹¤ò°ú¿ô¤È¤·¤Æ +UDP ソケットが生成されるとき、 +ローカルアドレスやリモートアドレスは指定されない。 +正しい行き先アドレスを引数として .BR sendto (2) -¤ä +や .BR sendmsg (2) -¤ò¸Æ¤Ù¤Ð¡¢¥Ç¡¼¥¿¥°¥é¥à¤Ï¤¿¤À¤Á¤ËÁ÷¿®¤µ¤ì¤ë¡£ -¥½¥±¥Ã¥È¤ËÂФ·¤Æ +を呼べば、データグラムはただちに送信される。 +ソケットに対して .BR connect (2) -¤ò¸Æ¤Ö¤È¡¢¥Ç¥Õ¥©¥ë¥È¤Î¹Ô¤­À襢¥É¥ì¥¹¤¬ÀßÄꤵ¤ì¡¢ +を呼ぶと、デフォルトの行き先アドレスが設定され、 .BR send (2) -¤ä +や .BR write (2) -¤ò»È¤Ã¤Æ¡¢¹Ô¤­À襢¥É¥ì¥¹¤Î»ØÄê¤Ê¤·¤Ë¥Ç¡¼¥¿¥°¥é¥à¤òÁ÷¿®¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +を使って、行き先アドレスの指定なしにデータグラムを送信できるようになる。 .\"O It is still possible to send to other destinations by passing an .\"O address to .\"O .BR sendto (2) .\"O or .\"O .BR sendmsg (2). -¤³¤Î¾ì¹ç¤Ç¤â¡¢¹Ô¤­À襢¥É¥ì¥¹¤ò +この場合でも、行き先アドレスを .BR sendto (2) -¤ä +や .BR sendmsg (2) -¤ËÅϤ»¤Ð¡¢¥Ç¥Õ¥©¥ë¥È°Ê³°¤Î¥¢¥É¥ì¥¹¤ËÁ÷¿®²Äǽ¤Ç¤¢¤ë¡£ +に渡せば、デフォルト以外のアドレスに送信可能である。 .\"O In order to receive packets, the socket can be bound to a local .\"O address first by using .\"O .BR bind (2). -¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤¹¤ë¤¿¤á¤Ë¡¢¤Þ¤º¥½¥±¥Ã¥È¤ò +パケットを受信するために、まずソケットを .BR bind (2) -¤òÍѤ¤¤Æ¥í¡¼¥«¥ë¤Ê¥¢¥É¥ì¥¹¤Ë¥Ð¥¤¥ó¥É¤µ¤»¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +を用いてローカルなアドレスにバインドさせることもできる。 .\"O Otherwise the socket layer will automatically assign .\"O a free local port out of the range defined by .\"O .I /proc/sys/net/ipv4/ip_local_port_range .\"O and bind the socket to .\"O .BR INADDR_ANY . -¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢¥½¥±¥Ã¥ÈÁؤϼ«Æ°Åª¤Ë +そうでない場合は、ソケット層は自動的に .I /proc/sys/net/ipv4/ip_local_port_range -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëÈϰϤγ°¤Ç¶õ¤¤¤Æ¤¤¤ë¥í¡¼¥«¥ë¤Ê¥Ý¡¼¥È¤ò³ä¤êÅö¤Æ¡¢ -¥½¥±¥Ã¥È¤ò +で定義されている範囲の外で空いているローカルなポートを割り当て、 +ソケットを .B INADDR_ANY -¤Ë¥Ð¥¤¥ó¥É¤¹¤ë¡£ +にバインドする。 .\"O All receive operations return only one packet. .\"O When the packet is smaller than the passed buffer, only that much .\"O data is returned, when it is bigger, the packet is truncated and the .\"O .B MSG_TRUNC .\"O flag is set. -¼õ¿®Æ°ºî¤Ï¥Ñ¥±¥Ã¥È¤ò°ì¤Ä¤À¤±ÊÖ¤¹¡£ÅϤ·¤¿¥Ð¥Ã¥Õ¥¡¤è¤ê¤â¥Ñ¥±¥Ã¥È¤¬ -¾®¤µ¤±¤ì¤Ð¡¢¤½¤Î¥Ñ¥±¥Ã¥È¤ÎÂ礭¤µ¤Î¥Ç¡¼¥¿¤À¤±¤¬ÊÖ¤µ¤ì¤ë¡£ -µÕ¤Ë¥Ð¥Ã¥Õ¥¡¤è¤ê¤âÂ礭¤¤¾ì¹ç¤Ï¥Ñ¥±¥Ã¥È¤Ï´Ý¤á¤é¤ì¡¢ +受信動作はパケットを一つだけ返す。渡したバッファよりもパケットが +小さければ、そのパケットの大きさのデータだけが返される。 +逆にバッファよりも大きい場合はパケットは丸められ、 .B MSG_TRUNC -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +フラグがセットされる。 .\"O .B MSG_WAITALL .\"O is not supported. .B MSG_WAITALL -¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +はサポートしていない。 .\"O IP options may be sent or received using the socket options described in .\"O .BR ip (7). @@ -116,24 +116,24 @@ UDP .\"O is enabled (but still passed to the user even when it is turned off). .\"O See .\"O .BR ip (7). -IP ¥ª¥×¥·¥ç¥ó¤Ï¡¢ +IP オプションは、 .BR ip (7) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ÆÆɤ߽ñ¤­¤Ç¤­¤ë¡£ -¤³¤ì¤é¤ÏŬÀÚ¤Ê +に記述されているソケットオプションを用いて読み書きできる。 +これらは適切な .I /proc -¥Ñ¥é¥á¡¼¥¿¤¬Í­¸ú¤Ê¾ì¹ç¤Ë¸Â¤Ã¤Æ¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ½èÍý¤µ¤ì¤ë -(¤·¤«¤·Ìµ¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ç¤â¥æ¡¼¥¶¡¼¤Ë¤ÏÅϤµ¤ì¤ë)¡£ +パラメータが有効な場合に限ってカーネルによって処理される +(しかし無効になっている場合でもユーザーには渡される)。 .BR ip (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O When the .\"O .B MSG_DONTROUTE .\"O flag is set on sending, the destination address must refer to a local .\"O interface address and the packet is only sent to that interface. .B MSG_DONTROUTE -¥Õ¥é¥°¤¬Á÷¿®»þ¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -¹Ô¤­À襢¥É¥ì¥¹¤Ï¥í¡¼¥«¥ë¤Ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹¤«¤é -»²¾È¤Ç¤­¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¥Ñ¥±¥Ã¥È¤Ï¤½¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤·¤«Á÷¤é¤ì¤Ê¤¤¡£ +フラグが送信時にセットされている場合には、 +行き先アドレスはローカルなインターフェースアドレスから +参照できなければならない。パケットはそのインターフェースにしか送られない。 .\"O By default, Linux UDP does path MTU (Maximum Transmission Unit) discovery. .\"O This means the kernel @@ -152,58 +152,58 @@ IP .\"O that exceed the interface MTU. .\"O However, disabling it is not recommended .\"O for performance and reliability reasons. -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢Linux ¤Î UDP ¤Ï Path MTU Discovery ¤ò¹Ô¤¦¡£ -¤Ä¤Þ¤ê¡¢¥«¡¼¥Í¥ë¤ÏÆÃÄê¤Î°¸Àè IP ¥¢¥É¥ì¥¹¤Î MTU (Maximum Transmission Unit; -ºÇÂçžÁ÷ñ°Ì) ¤òµ­Ï¿¤·¡¢UDP ¥Ñ¥±¥Ã¥È¤Î½ñ¤­¹þ¤ß¤¬ MTU ¤òĶ¤¨¤¿¾ì¹ç +デフォルトでは、Linux の UDP は Path MTU Discovery を行う。 +つまり、カーネルは特定の宛先 IP アドレスの MTU (Maximum Transmission Unit; +最大転送単位) を記録し、UDP パケットの書き込みが MTU を超えた場合 .B EMSGSIZE -¤òÊÖ¤¹¡£ +を返す。 .B EMSGSIZE -¤òÊÖ¤µ¤ì¤¿¾ì¹ç¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¥Ñ¥±¥Ã¥È¥µ¥¤¥º¤ò¾®¤µ¤¯¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó +を返された場合、アプリケーションはパケットサイズを小さくすべきである。 +ソケットオプション .B IP_MTU_DISCOVER -¤Þ¤¿¤Ï +または .I /proc/sys/net/ipv4/ip_no_pmtu_disc -¥Õ¥¡¥¤¥ë¤ò»È¤Ã¤Æ Path MTU Discovery ¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤â¤Ç¤­¤ë -(¾ÜºÙ¤Ï +ファイルを使って Path MTU Discovery を無効にすることもできる +(詳細は .BR ip (7) -¤ò»²¾È)¡£ -Path MTU Discovery ¤ò̵¸ú¤Ë¤·¤¿¾ì¹ç¤Ï¡¢¥Ñ¥±¥Ã¥È¥µ¥¤¥º¤¬ -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î MTU ¤è¤ê¤âÂ礭¤¤¤È UDP ¤Ï¤½¤Î¥Ñ¥±¥Ã¥È¤ò -¥Õ¥é¥°¥á¥ó¥È²½¤·¤ÆÁ÷½Ð¤¹¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢À­Ç½¤È¿®ÍêÀ­¤ÎÍýͳ¤«¤é Path MTU Discovery ¤ò -̵¸ú¤Ë¤¹¤ë¤Î¤Ï¿ä¾©¤Ç¤­¤Ê¤¤¡£ +を参照)。 +Path MTU Discovery を無効にした場合は、パケットサイズが +インタフェースの MTU よりも大きいと UDP はそのパケットを +フラグメント化して送出する。 +しかしながら、性能と信頼性の理由から Path MTU Discovery を +無効にするのは推奨できない。 .\"O .SS Address Format -.SS ¥¢¥É¥ì¥¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È +.SS アドレスのフォーマット .\"O UDP uses the IPv4 .\"O .I sockaddr_in .\"O address format described in .\"O .BR ip (7). -UDP ¤Ï IPv4 ¤Î +UDP は IPv4 の .I sockaddr_in -¥¢¥É¥ì¥¹¥Õ¥©¡¼¥Þ¥Ã¥È¤òÍѤ¤¤ë¡£¤³¤ì¤Ï +アドレスフォーマットを用いる。これは .BR ip (7) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +に記述されている。 .\"O .SS Error Handling -.SS ¥¨¥é¡¼½èÍý +.SS エラー処理 .\"O All fatal errors will be passed to the user as an error return even .\"O when the socket is not connected. .\"O This includes asynchronous errors .\"O received from the network. .\"O You may get an error for an earlier packet .\"O that was sent on the same socket. -Ã×̿Ū¤Ê¥¨¥é¡¼¤Ï¡¢¤¿¤È¤¨¥½¥±¥Ã¥È¤¬Àܳ¤µ¤ì¤Æ¤¤¤Ê¤¯¤Æ¤â¡¢ -¤¹¤Ù¤Æ¥¨¥é¡¼Ìá¤êÃͤȤ·¤Æ¥æ¡¼¥¶¡¼¤ËÅϤµ¤ì¤ë¡£ -¤³¤ì¤Ë¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¤«¤é¼õ¤±¼è¤ëÈóƱ´ü¥¨¥é¡¼¤â´Þ¤Þ¤ì¤ë¡£ -Ʊ¤¸¥½¥±¥Ã¥È¤ò»È¤Ã¤ÆÁ÷¿®¤·¤¿ÀΤΥѥ±¥Ã¥È¤Ë´Ø¤¹¤ë¥¨¥é¡¼¤ò¼õ¤±¼è¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +致命的なエラーは、たとえソケットが接続されていなくても、 +すべてエラー戻り値としてユーザーに渡される。 +これにはネットワークから受け取る非同期エラーも含まれる。 +同じソケットを使って送信した昔のパケットに関するエラーを受け取るかもしれない。 .\"O This behavior differs from many other BSD socket implementations .\"O which don't pass any errors unless the socket is connected. .\"O Linux's behavior is mandated by .\"O .BR RFC\ 1122 . -¤³¤Î¿¶¤ëÉñ¤¤¤Ï¾¤Î BSD ¥½¥±¥Ã¥È¤Î¼ÂÁõ¤Î¿¤¯¤È¤Ï°Û¤Ê¤ë¡£ -¤³¤ì¤é¤Ç¤Ï¥½¥±¥Ã¥È¤¬Àܳ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¥¨¥é¡¼¤òÁ´¤¯ÊÖ¤µ¤Ê¤¤¡£ -Linux ¤Î¿¶¤ëÉñ¤¤¤Ï +この振る舞いは他の BSD ソケットの実装の多くとは異なる。 +これらではソケットが接続されていない場合はエラーを全く返さない。 +Linux の振る舞いは .B RFC\ 1122 -¤Ç¤Î»ØÄê¤Ë½¾¤Ã¤¿¤â¤Î¤Ç¤¢¤ë¡£ +での指定に従ったものである。 .\"O For compatibility with legacy code, in Linux 2.0 and 2.2 .\"O it was possible to set the @@ -218,18 +218,18 @@ Linux .\"O Support for this socket option was removed in later kernels; see .\"O .BR socket (7) .\"O for further information. -Linux 2.0 ¤È 2.2 ¤Ç¤Ï¡¢¸Å¤¤¥³¡¼¥É¤È¤Î¸ß´¹À­¤Î¤¿¤á¤Ë¡¢ +Linux 2.0 と 2.2 では、古いコードとの互換性のために、 .B SO_BSDCOMPAT .B SOL_SOCKET -¥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ì¤Ð¡¢¥½¥±¥Ã¥È¤¬Àܳ¤µ¤ì¤Æ¤¤¤ë -¾ì¹ç¤Ë¸Â¤Ã¤Æ¥ê¥â¡¼¥È¤Î¥¨¥é¡¼¤ò¼õ¿®¤¹¤ë¤è¤¦¤Ë¤Ç¤­¤¿ -.RB ( EPROTO " ¤È " EMSGSIZE -¤ò½ü¤¯)¡£ -¥í¡¼¥«¥ë¤ÇÀ¸À®¤µ¤ì¤¿¥¨¥é¡¼¤Ï¾ï¤ËÅϤµ¤ì¤ë¡£ -¤³¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤Î¥µ¥Ý¡¼¥È¤Ï¤½¤ì°Ê¹ß¤Î¥Ð¡¼¥¸¥ç¥ó¤Î Linux ¤Ç -ºï½ü¤µ¤ì¤¿¡£¾ÜºÙ¤Ï +オプションを設定すれば、ソケットが接続されている +場合に限ってリモートのエラーを受信するようにできた +.RB ( EPROTO " と " EMSGSIZE +を除く)。 +ローカルで生成されたエラーは常に渡される。 +このソケットオプションのサポートはそれ以降のバージョンの Linux で +削除された。詳細は .BR socket (7) -¤ò»²¾È¡£ +を参照。 .\"O When the .\"O .B IP_RECVERR @@ -240,27 +240,27 @@ Linux 2.0 .\"O .B MSG_ERRQUEUE .\"O flag set. .B IP_RECVERR -¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢ -¤¹¤Ù¤Æ¤Î¥¨¥é¡¼¤Ï¥½¥±¥Ã¥È¤Î¥¨¥é¡¼¥­¥å¡¼¤ËÊݸ¤µ¤ì¤ë¡£ -¤³¤ì¤Ï +オプションが有効になっていると、 +すべてのエラーはソケットのエラーキューに保存される。 +これは .B MSG_ERRQUEUE -¥Õ¥é¥°¤ò¥»¥Ã¥È¤·¤Æ +フラグをセットして .BR recvmsg (2) -¤ò¸Æ¤Ù¤Ð¼õ¿®¤Ç¤­¤ë¡£ +を呼べば受信できる。 .\"O .SS /proc interfaces -.SS /proc ¥¤¥ó¥¿¥Õ¥§¡¼¥¹ +.SS /proc インタフェース .\"O System-wide UDP parameter settings can be accessed by files in the directory .\"O .IR /proc/sys/net/ipv4/ . -¥·¥¹¥Æ¥àÁ´ÂΤΠUDP ¥Ñ¥é¥á¡¼¥¿ÀßÄê¤Ë¤Ï¡¢ +システム全体の UDP パラメータ設定には、 .I /proc/sys/net/ipv4/ -¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¤ÎÆɤ߽ñ¤­¤Ç¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ +ディレクトリ内のファイルの読み書きでアクセスできる。 .TP .\"O .IR udp_mem " (since Linux 2.6.25)" -.IR udp_mem " (Linux 2.6.25 °Ê¹ß)" +.IR udp_mem " (Linux 2.6.25 以降)" .\"O This is a vector of three integers governing the number .\"O of pages allowed for queueing by all UDP sockets. -¤³¤ì¤Ï 3 ¤Ä¤ÎÀ°¿ô¤«¤é¤Ê¤ë¥Ù¥¯¥È¥ëÃͤǡ¢ -UDP ¤ÎÁ´¥½¥±¥Ã¥È¤Î¥­¥å¡¼¤ÇÍøÍѲÄǽ¤Ê¥Ú¡¼¥¸¿ô¤òÀ©¸æ¤¹¤ë¡£ +これは 3 つの整数からなるベクトル値で、 +UDP の全ソケットのキューで利用可能なページ数を制御する。 .RS .TP 10 .I min @@ -268,87 +268,87 @@ UDP .\"O memory appetite. .\"O When the amount of memory allocated by UDP exceeds .\"O this number, UDP starts to moderate memory usage. -¤³¤Î¥Ú¡¼¥¸¿ô¤è¤ê¾¯¤Ê¤±¤ì¤Ð¡¢UDP ¤Ï¤½¤Î¥á¥â¥ê»ÈÍѤ˴ؤ·¤Æ -´³¾Ä¤µ¤ì¤Ê¤¤¡£ -UDP ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥êÁíÎ̤¬¤³¤ÎÃͤòĶ²á¤¹¤ë¤È¡¢ -UDP ¤Ï¥á¥â¥ê»ÈÍÑÎ̤òÄ´À°¤·»Ï¤á¤ë¡£ +このページ数より少なければ、UDP はそのメモリ使用に関して +干渉されない。 +UDP に割り当てられたメモリ総量がこの値を超過すると、 +UDP はメモリ使用量を調整し始める。 .TP .I pressure .\"O This value was introduced to follow the format of .\"O .IR tcp_mem .\"O (see .\"O .BR tcp (7)). -¤³¤ÎÃÍ¤Ï +この値は .I tcp_mem -¤Î·Á¼° +の形式 .RB ( tcp (7) -»²¾È) ¤È¹ç¤ï¤»¤ë¤¿¤á¤ËƳÆþ¤µ¤ì¤¿ +参照) と合わせるために導入された .TP .I max .\"O Number of pages allowed for queueing by all UDP sockets. -UDP ¤ÎÁ´¥½¥±¥Ã¥È¤Î¥­¥å¡¼¤ÇÍøÍѲÄǽ¤Ê¥Ú¡¼¥¸¿ô¡£ +UDP の全ソケットのキューで利用可能なページ数。 .RE .IP .\"O Defaults values for these three items are .\"O calculated at boot time from the amount of available memory. -¤³¤ì¤é¤Î 3 ¤Ä¤ÎÃͤΥǥե©¥ë¥ÈÃͤϡ¢ -¥Ö¡¼¥È»þ¤ËÍøÍѲÄǽ¤Ê¥á¥â¥êÁíÎ̤«¤é·×»»¤µ¤ì¤ë¡£ +これらの 3 つの値のデフォルト値は、 +ブート時に利用可能なメモリ総量から計算される。 .TP .\"O .IR udp_rmem_min " (integer; default value: PAGE_SIZE; since Linux 2.6.25)" -.IR udp_rmem_min " (integer; ¥Ç¥Õ¥©¥ë¥ÈÃÍ: PAGE_SIZE; Linux 2.6.25 °Ê¹ß)" +.IR udp_rmem_min " (integer; デフォルト値: PAGE_SIZE; Linux 2.6.25 以降)" .\"O Minimal size, in bites, of receive buffers used by UDP sockets in moderation. .\"O Each UDP socket is able to use the size for receiving data, .\"O even if total pages of UDP sockets exceed .\"O .I udp_mem .\"O pressure. -¥á¥â¥ê»ÈÍÑÎ̤ÎÄ´À°Ãæ¤Ë¡¢UDP ¥½¥±¥Ã¥È¤¬»ÈÍѤǤ­¤ë¼õ¿®¥Ð¥Ã¥Õ¥¡¤ÎºÇ¾®ÃÍ -(¥Ð¥¤¥Èñ°Ì)¡£ -UDP ¤ÎÁ´¥½¥±¥Ã¥È¤Î¥Ú¡¼¥¸»ÈÍÑÎ̤ιç·×¤¬ +メモリ使用量の調整中に、UDP ソケットが使用できる受信バッファの最小値 +(バイト単位)。 +UDP の全ソケットのページ使用量の合計が .I udp_mem -pressure ¤òĶ²á¤·¤Æ¤¤¤ë¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢ -³Æ UDP ¥½¥±¥Ã¥È¤Ï¥Ç¡¼¥¿¤Î¼õ¿®¤Ë¤³¤Î¥µ¥¤¥ºÊ¬¤À¤±¤Ï»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +pressure を超過している場合であっても、 +各 UDP ソケットはデータの受信にこのサイズ分だけは使用することができる。 .TP .\"O .IR udp_wmem_min " (integer; default value: PAGE_SIZE; since Linux 2.6.25)" -.IR udp_wmem_min " (integer; ¥Ç¥Õ¥©¥ë¥ÈÃÍ: PAGE_SIZE; Linux 2.6.25 °Ê¹ß)" +.IR udp_wmem_min " (integer; デフォルト値: PAGE_SIZE; Linux 2.6.25 以降)" .\"O Minimal size, in bytes, of send buffer used by UDP sockets in moderation. .\"O Each UDP socket is able to use the size for sending data, .\"O even if total pages of UDP sockets exceed .\"O .I udp_mem .\"O pressure. -¥á¥â¥ê»ÈÍÑÎ̤ÎÄ´À°Ãæ¤Ë¡¢UDP ¥½¥±¥Ã¥È¤¬»ÈÍѤǤ­¤ëÁ÷¿®¥Ð¥Ã¥Õ¥¡¤ÎºÇ¾®ÃÍ -(¥Ð¥¤¥Èñ°Ì)¡£ -UDP ¤ÎÁ´¥½¥±¥Ã¥È¤Î¥Ú¡¼¥¸»ÈÍÑÎ̤ιç·×¤¬ +メモリ使用量の調整中に、UDP ソケットが使用できる送信バッファの最小値 +(バイト単位)。 +UDP の全ソケットのページ使用量の合計が .I udp_mem -pressure ¤òĶ²á¤·¤Æ¤¤¤ë¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢ -³Æ UDP ¥½¥±¥Ã¥È¤Ï¥Ç¡¼¥¿¤ÎÁ÷¿®¤Ë¤³¤Î¥µ¥¤¥ºÊ¬¤À¤±¤Ï»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +pressure を超過している場合であっても、 +各 UDP ソケットはデータの送信にこのサイズ分だけは使用することができる。 .\"O \"O .SS "Socket Options" -.SS ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó +.SS ソケットオプション .\"O To set or get a UDP socket option, call .\"O .BR getsockopt (2) .\"O to read or .\"O .BR setsockopt (2) .\"O to write the option with the option level argument set to .\"O .BR IPPROTO_UDP . -UDP ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤òÀßÄê¤Þ¤¿¤Ï¼èÆÀ¤¹¤ë¤Ë¤Ï¡¢ -¼èÆÀ¤Ë¤Ï +UDP ソケットオプションを設定または取得するには、 +取得には .BR getsockopt (2) -¤ò¡¢ÀßÄê¤Ë¤Ï +を、設定には .BR setsockopt (2) -¤ò¥ª¥×¥·¥ç¥ó¥ì¥Ù¥ë°ú¿ô¤Ë +をオプションレベル引数に .B IPPROTO_UDP -¤ò»ØÄꤷ¤Æ¸Æ¤Ó½Ð¤¹¡£ +を指定して呼び出す。 .TP .\"O .BR UDP_CORK " (since Linux 2.5.44)" -.BR UDP_CORK " (Linux 2.5.44 °Ê¹ß)" +.BR UDP_CORK " (Linux 2.5.44 以降)" .\"O If this option is enabled, then all data output on this socket .\"O is accumulated into a single datagram that is transmitted when .\"O the option is disabled. .\"O This option should not be used in code intended to be .\"O portable. -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤ë¤È¡¢¤³¤Î¥½¥±¥Ã¥È¤ÎÁ´¤Æ¤Î¥Ç¡¼¥¿½ÐÎÏ¤Ï -°ì¤Ä¤Î¥Ç¡¼¥¿¥°¥é¥à¤ËÃßÀѤµ¤ì¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Ìµ¸ú²½¤µ¤ì¤¿»þ¤Ë -Á÷¿®¤µ¤ì¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï°Ü¿¢À­¤ò¹Íθ¤·¤¿¥³¡¼¥É¤Ç¤ÏÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +このオプションが指定されると、このソケットの全てのデータ出力は +一つのデータグラムに蓄積され、このオプションが無効化された時に +送信される。 +このオプションは移植性を考慮したコードでは用いるべきではない。 .\" FIXME document UDP_ENCAP (new in kernel 2.5.67) .\" From include/linux/udp.h: .\" /* UDP encapsulation types */ @@ -359,11 +359,11 @@ UDP .SS ioctl .\"O These ioctls can be accessed using .\"O .BR ioctl (2). -°Ê²¼¤Ë¼¨¤¹ ioctl ¤Ï +以下に示す ioctl は .BR ioctl (2) -¤ò»È¤Ã¤Æ¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ +を使ってアクセスできる。 .\"O The correct syntax is: -Àµ¤·¤¤Ê¸Ë¡¤Ï°Ê²¼¤ÎÄ̤ꡣ +正しい文法は以下の通り。 .PP .RS .nf @@ -376,57 +376,57 @@ UDP .\"O Gets a pointer to an integer as argument. .\"O Returns the size of the next pending datagram in the integer in bytes, .\"O or 0 when no datagram is pending. -integer ¤Î¥Ý¥¤¥ó¥¿¤ò°ú¿ô¤È¤·¤Æ¼è¤ë¡£ -¼¡¤ËÂÔµ¡¤·¤Æ¤¤¤ë¥Ç¡¼¥¿¥°¥é¥à¤Î¥µ¥¤¥º¤ò¥Ð¥¤¥Èñ°Ì¤ÎÀ°¿ô¤ÇÊÖ¤¹¡£ -ÂÔµ¡¤·¤Æ¤¤¤ë¥Ç¡¼¥¿¥°¥é¥à¤¬¤Ê¤¤¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +integer のポインタを引数として取る。 +次に待機しているデータグラムのサイズをバイト単位の整数で返す。 +待機しているデータグラムがない場合は 0 を返す。 .TP .BR TIOCOUTQ " (" SIOCOUTQ ) .\"O Returns the number of data bytes in the local send queue. .\"O Only supported with Linux 2.4 and above. -¥í¡¼¥«¥ëÁ÷¿®¥­¥å¡¼¤Ë¤¢¤ë¥Ç¡¼¥¿¥µ¥¤¥º¤ò¥Ð¥¤¥Èñ°Ì¤ÇÊÖ¤¹¡£ -Linux 2.4 °Ê¾å¤Ç¤Î¤ßÂбþ¤·¤Æ¤¤¤ë¡£ +ローカル送信キューにあるデータサイズをバイト単位で返す。 +Linux 2.4 以上でのみ対応している。 .PP .\"O In addition all ioctls documented in .\"O .BR ip (7) .\"O and .\"O .BR socket (7) .\"O are supported. -¤µ¤é¤Ë¡¢ +さらに、 .BR ip (7) -¤È +と .BR socket (7) -¤Ç½Ò¤Ù¤é¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î ioctl ¤âÂбþ¤·¤Æ¤¤¤ë¡£ +で述べられている全ての ioctl も対応している。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O All errors documented for .\"O .BR socket (7) .\"O or .\"O .BR ip (7) .\"O may be returned by a send or receive on a UDP socket. .BR socket (7) -¤ä +や .BR ip (7) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¥¨¥é¡¼¤¬¡¢ -UDP ¥½¥±¥Ã¥È¤ÎÁ÷¼õ¿®¤ÇÊÖ¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +に記述されている全てのエラーが、 +UDP ソケットの送受信で返される可能性がある。 .TP .B ECONNREFUSED .\"O No receiver was associated with the destination address. .\"O This might be caused by a previous packet sent over the socket. -¹Ô¤­À襢¥É¥ì¥¹¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ë¼õ¿®¼Ô¤¬¤¤¤Ê¤¤¡£ -¤³¤ì¤Ï°ÊÁ°¤Î¥Ñ¥±¥Ã¥È¤¬¤½¤Î¥Ñ¥±¥Ã¥È¤ò -¾å½ñ¤­Á÷¿®¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¤³¤È¤¬Â¿¤¤¡£ +行き先アドレスに関連づけられている受信者がいない。 +これは以前のパケットがそのパケットを +上書き送信してしまっているからであることが多い。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .B IP_RECVERR .\"O is a new feature in Linux 2.2. .B IP_RECVERR -¤Ï Linux 2.2 ¤Î¿·¤·¤¤µ¡Ç½¤Ç¤¢¤ë¡£ +は Linux 2.2 の新しい機能である。 .\"O .\" .SH CREDITS -.\" .SH Ãø¼Ô +.\" .SH 著者 .\"O .\" This man page was written by Andi Kleen. -.\" ¤³¤Î man ¥Ú¡¼¥¸¤Ï Andi Kleen ¤¬½ñ¤¤¤¿¡£ +.\" この man ページは Andi Kleen が書いた。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ip (7), .BR raw (7), .BR socket (7), @@ -436,7 +436,7 @@ UDP RFC\ 768 : User Datagram Protocol .br .\"O RFC\ 1122 for the host requirements. -RFC\ 1122 : ¥Û¥¹¥È¤ÎɬÍ×¾ò·ï +RFC\ 1122 : ホストの必要条件 .br .\"O RFC\ 1191 for a description of path MTU discovery. -RFC\ 1191 : path MTU discovery ¤Îµ­½Ò +RFC\ 1191 : path MTU discovery の記述 diff --git a/draft/man7/udplite.7 b/draft/man7/udplite.7 index e83ac222..97b5ce80 100644 --- a/draft/man7/udplite.7 +++ b/draft/man7/udplite.7 @@ -28,11 +28,11 @@ .\" .TH UDPLITE 7 2008-12-03 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O udplite \- Lightweight User Datagram Protocol -udplite \- ·ÚÎ̤ʥ桼¥¶¡¼¥Ç¡¼¥¿¥°¥é¥à¥×¥í¥È¥³¥ë +udplite \- 軽量なユーザーデータグラムプロトコル .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .\" FIXME . see #defines under `BUGS', @@ -41,44 +41,44 @@ udplite \- .sp .B sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDPLITE); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O This is an implementation of the Lightweight User Datagram Protocol .\"O (UDP-Lite), as described in RFC\ 3828. -¤³¤ì¤Ï RFC\ 3828 ¤Ë½ñ¤«¤ì¤Æ¤¤¤ë·ÚÎ̤ʥ桼¥¶¡¼¥Ç¡¼¥¿¥°¥é¥à¥×¥í¥È¥³¥ë -(Lightweight User Datagram Protocol; UDP-Lite) ¤Î¼ÂÁõ¤Ç¤¢¤ë¡£ +これは RFC\ 3828 に書かれている軽量なユーザーデータグラムプロトコル +(Lightweight User Datagram Protocol; UDP-Lite) の実装である。 .\"O UDP-Lite is an extension of UDP (RFC\ 768) to support variable-length .\"O checksums. .\"O This has advantages for some types of multimedia transport that .\"O may be able to make use of slightly damaged datagrams, .\"O rather than having them discarded by lower-layer protocols. -UDP-Lite ¤Ï UDP (RFC\ 768) ¤Î³ÈÄ¥¤Ç¡¢²ÄÊÑĹ¤Î¥Á¥§¥Ã¥¯¥µ¥à¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -¤³¤Î¥×¥í¥È¥³¥ë¤¬¸ú²Ì¤òȯ´ø¤¹¤ë¤Î¤Ï¡¢¾¯¤·¤À¤±²õ¤ì¤¿¥Ç¡¼¥¿¥°¥é¥à¤¬¤¢¤Ã¤¿¾ì¹ç¤Ë¡¢ -¤½¤Î¥Ç¡¼¥¿¥°¥é¥à¤ò²¼°Ì¥ì¥¤¥ä¡¼¤Î¥×¥í¥È¥³¥ë¤ËÇÑ´þ¤µ¤»¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ -¤½¤ì¤òÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ê¡¢¤¢¤ë¼ï¤Î¥Þ¥ë¥Á¥á¥Ç¥£¥¢Å¾Á÷¤Ë¤ª¤¤¤Æ¤Ç¤¢¤ë¡£ +UDP-Lite は UDP (RFC\ 768) の拡張で、可変長のチェックサムをサポートしている。 +このプロトコルが効果を発揮するのは、少しだけ壊れたデータグラムがあった場合に、 +そのデータグラムを下位レイヤーのプロトコルに廃棄させるのではなく、 +それを利用することができるような、ある種のマルチメディア転送においてである。 .\"O The variable-length checksum coverage is set via a .\"O .BR setsockopt (2) .\"O option. .\"O If this option is not set, the only difference to UDP is .\"O in using a different IP protocol identifier (IANA number 136). -²ÄÊÑĹ¤Î¥Á¥§¥Ã¥¯¥µ¥à¤ÎÂоÝÈÏ°Ï¤Ï +可変長のチェックサムの対象範囲は .BR setsockopt (2) -¥ª¥×¥·¥ç¥ó·Ðͳ¤ÇÀßÄꤵ¤ì¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢UDP ¤È°Û¤Ê¤ë¤Î¤Ï -°ã¤¦ IP ¥×¥í¥È¥³¥ë¼±ÊÌ»Ò (IANA ÈÖ¹æ 136) ¤ò»ÈÍѤ¹¤ëÅÀ¤À¤±¤Ç¤¢¤ë¡£ +オプション経由で設定される。 +このオプションが設定されていない場合、UDP と異なるのは +違う IP プロトコル識別子 (IANA 番号 136) を使用する点だけである。 .\"O The UDP-Lite implementation is a full extension of .\"O .BR udp (7), .\"O i.e., it shares the same API and API behaviour, and in addition .\"O offers two socket options to control the checksum coverage. -UDP-Lite ¤Î¼ÂÁõ¤Ï +UDP-Lite の実装は .BR udp (7) -¤Î´°Á´¤Ê³ÈÄ¥¡¢¤¹¤Ê¤ï¤Á API ¤È API ¤ÎÆ°ºî¤ÏƱ¤¸¤Ç¤¢¤ë¡£ -¤³¤ì¤Ë²Ã¤¨¤Æ¡¢2 ¤Ä¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬¥Á¥§¥Ã¥¯¥µ¥à¤ÎÂоÝÈϰϤò -À©¸æ¤¹¤ë¤¿¤á¤ËÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +の完全な拡張、すなわち API と API の動作は同じである。 +これに加えて、2 つのソケットオプションがチェックサムの対象範囲を +制御するために提供されている。 .\"O .SS "Address Format" -.SS ¥¢¥É¥ì¥¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È +.SS アドレスのフォーマット .\"O UDP-Litev4 uses the .\"O .I sockaddr_in .\"O address format described in @@ -87,18 +87,18 @@ UDP-Lite .\"O .I sockaddr_in6 .\"O address format described in .\"O .BR ipv6 (7). -UDP-Litev4 ¤Ï +UDP-Litev4 は .BR ip (7) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë +で説明されている .I sockaddr_in -¥¢¥É¥ì¥¹¤ò»ÈÍѤ¹¤ë¡£ -UDP-Litev6 ¤Ï +アドレスを使用する。 +UDP-Litev6 は .BR ipv6 (7) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë +で説明されている .I sockaddr_in6 -¥¢¥É¥ì¥¹¤ò»ÈÍѤ¹¤ë¡£ +アドレスを使用する。 .\"O .SS "Socket Options" -.SS ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó +.SS ソケットオプション .\"O To set or get a UDP-Lite socket option, call .\"O .BR getsockopt (2) .\"O to read or @@ -111,50 +111,50 @@ UDP-Litev6 .\"O See .\"O .BR udp (7) .\"O for more information. -UDP-Lite ¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤òÀßÄê/¼èÆÀ¤¹¤ë¤Ë¤Ï¡¢ -¥ª¥×¥·¥ç¥ó¥ì¥Ù¥ë°ú¤­¿ô¤Ë +UDP-Lite のソケットオプションを設定/取得するには、 +オプションレベル引き数に .B IPPROTO_UDPLITE -¤ò»ØÄꤷ¤Æ¡¢¼èÆÀ»þ¤Ë¤Ï +を指定して、取得時には .BR getsockopt (2) -¤ò¡¢ÀßÄê»þ¤Ë¤Ï +を、設定時には .BR setsockopt (2) -¤ò¸Æ¤Ó½Ð¤¹¡£¤µ¤é¤Ë¡¢Á´¤Æ¤Î +を呼び出す。さらに、全ての .B IPPROTO_UDP -¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬ UDP-Lite ¥½¥±¥Ã¥È¤Ç¤â»ÈÍѤǤ­¤ë¡£ -¾ÜºÙ¤Ï +のソケットオプションが UDP-Lite ソケットでも使用できる。 +詳細は .BR udp (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O The following two options are specific to UDP-Lite. -°Ê²¼¤Î 2 ¤Ä¤¬ UDP-Lite ¤Ë¸ÇÍ­¤Î¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë¡£ +以下の 2 つが UDP-Lite に固有のオプションである。 .TP .BR UDPLITE_SEND_CSCOV .\"O This option sets the sender checksum coverage and takes an .\"O .I int .\"O as argument, with a checksum coverage value in the range 0..2^16-1. -¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÁ÷¿®Â¦¤Î¥Á¥§¥Ã¥¯¥µ¥à¤ÎÂоÝÈϰϤòÀßÄꤹ¤ë¡£ +このオプションは送信側のチェックサムの対象範囲を設定する。 .I int -·¿¤ò°ú¤­¿ô¤È¤·¤Æ¼è¤ê¡¢ÀßÄê²Äǽ¤ÊÃͤÎÈÏ°Ï¤Ï 0 ¤«¤é 2^16-1 ¤Þ¤Ç¤Ç¤¢¤ë¡£ +型を引き数として取り、設定可能な値の範囲は 0 から 2^16-1 までである。 .\"O A value of 0 means that the entire datagram is always covered. .\"O Values from 1-7 are illegal (RFC\ 3828, 3.1) and are rounded up to .\"O the minimum coverage of 8. -ÃÍ 0 ¤Ï¥Ç¡¼¥¿¥°¥é¥àÁ´ÂΤ¬¾ï¤Ë¥Á¥§¥Ã¥¯¥µ¥à¤ÎÂоݤȤʤ뤳¤È¤ò°ÕÌ£¤¹¤ë¡£ -ÃÍ 1¡Á7 ¤ÏÉÔÀµ¤Ç¤¢¤ê (RFC\ 3828 ¤Î 3.1 ¾Ï)¡¢ÈϰϤÎÀßÄê¤È¤·¤ÆºÇ¾®ÃͤǤ¢¤ë -8 ¤ËÀÚ¤ê¾å¤²¤é¤ì¤ë¡£ +値 0 はデータグラム全体が常にチェックサムの対象となることを意味する。 +値 1〜7 は不正であり (RFC\ 3828 の 3.1 ç« )、範囲の設定として最小値である +8 に切り上げられる。 .\"O With regard to IPv6 jumbograms (RFC\ 2675), the UDP-Litev6 checksum .\"O coverage is limited to the first 2^16-1 octets, as per RFC\ 3828, 3.5. .\"O Higher values are therefore silently truncated to 2^16-1. .\"O If in doubt, the current coverage value can always be queried using .\"O .BR getsockopt (2). -IPv6 ¤Î jumbograms (µðÂç¤Ê¥Ç¡¼¥¿¥°¥é¥à; RFC\ 2675) ¤Î¾ì¹ç¤Ë¤Ï¡¢ -UDP-Litev6 ¤Î¥Á¥§¥Ã¥¯¥µ¥à¤ÎÂоÝÈϰϤϡ¢RFC\ 3828 ¤Î 3.5 ¾Ï¤Ë¤¢¤ë¤è¤¦¤Ë¡¢ -ÀèƬ¤«¤é 2^16-1 ¥ª¥¯¥Æ¥Ã¥È¤Þ¤Ç¤Ë¸ÂÄꤵ¤ì¤ë¡£ -¤½¤Î¤¿¤á¡¢¤½¤ì¤è¤êÂ礭¤ÊÃÍ¤Ï 2^16-1 ¤ËÌۤäÆÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ -¸½ºß¤ÎÂоÝÈϰϤÎÃͤòÃΤꤿ¤±¤ì¤Ð¡¢¤¤¤Ä¤Ç¤â +IPv6 の jumbograms (巨大なデータグラム; RFC\ 2675) の場合には、 +UDP-Litev6 のチェックサムの対象範囲は、RFC\ 3828 の 3.5 章にあるように、 +先頭から 2^16-1 オクテットまでに限定される。 +そのため、それより大きな値は 2^16-1 に黙って切り詰められる。 +現在の対象範囲の値を知りたければ、いつでも .BR getsockopt (2) -¤ò»È¤Ã¤ÆÃͤòÌ䤤¹ç¤ï¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使って値を問い合わせることができる。 .TP .BR UDPLITE_RECV_CSCOV .\"O This is the receiver-side analogue and uses the same argument format @@ -166,23 +166,23 @@ UDP-Litev6 .\"O instructs the kernel to drop all packets which have a coverage .\"O .I less .\"O than the specified coverage value. -¤³¤ì¤Ï¼õ¿®Â¦¤Î¥Á¥§¥Ã¥¯¥µ¥à¤ÎÂоÝÈϰϤòÀßÄꤹ¤ë¤â¤Î¤Ç¡¢ -»ÈÍѤµ¤ì¤ë°ú¤­¿ô·Á¼°¤ÈÃͤÎÈÏ°Ï¤Ï +これは受信側のチェックサムの対象範囲を設定するもので、 +使用される引き数形式と値の範囲は .B UDPLITE_SEND_CSCOV -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ÉôʬŪ¤Ê¥Á¥§¥Ã¥¯¥µ¥àÂоÝÈϰϤò»ý¤Ä¥È¥é¥Õ¥£¥Ã¥¯¤ò -Í­¸ú¤Ë¤¹¤ë¤Î¤ËɬÍפʤ櫓¤Ç¤Ï¤Ê¤¯¡¢¥È¥é¥Õ¥£¥Ã¥¯¥Õ¥£¥ë¥¿¡¼¤È¤·¤Æµ¡Ç½¤¹¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤¹¤ë¤È¡¢¥«¡¼¥Í¥ë¤Ï»ØÄꤵ¤ì¤¿¥Á¥§¥Ã¥¯¥µ¥àÂоÝÈÏ°Ï -¤è¤ê¤â¡Öû¤«¤¤¡×ÂоÝÈϰϤò»ý¤Ä¥Ñ¥±¥Ã¥È¤òÁ´¤ÆÇÑ´þ¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +と同じである。 +このオプションは、部分的なチェックサム対象範囲を持つトラフィックを +有効にするのに必要なわけではなく、トラフィックフィルターとして機能する。 +このオプションが有効にすると、カーネルは指定されたチェックサム対象範囲 +よりも「短かい」対象範囲を持つパケットを全て廃棄するようになる。 .\"O When the value of .\"O .B UDPLITE_RECV_CSCOV .\"O exceeds the actual packet coverage, incoming packets are silently dropped, .\"O but may generate a warning message in the system log. .B UDPLITE_RECV_CSCOV -¤ÎÃͤ¬¼ÂºÝ¤Î¥Ñ¥±¥Ã¥È¤Î¥Á¥§¥Ã¥¯¥µ¥àÂоÝÈϰϤè¤ê¤âÂ礭¤¤¾ì¹ç¡¢ -¼õ¿®¤·¤¿¥Ñ¥±¥Ã¥È¤ÏÌۤäÆÇÑ´þ¤µ¤ì¤ë¡£ -¤¿¤À¤·¡¢¥·¥¹¥Æ¥à¥í¥°¤ËÂФ·¤Æ·Ù¹ð¥á¥Ã¥»¡¼¥¸¤¬À¸À®¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +の値が実際のパケットのチェックサム対象範囲よりも大きい場合、 +受信したパケットは黙って廃棄される。 +ただし、システムログに対して警告メッセージが生成されるかもしれない。 .\" SO_NO_CHECK exists and is supported by UDPv4, but is .\" commented out in socket(7), hence also commented out here .\".PP @@ -192,19 +192,19 @@ UDP-Litev6 .\"option from .\".BR socket (7). .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .\"O All errors documented for .\"O .BR udp (7) .\"O may be returned. .\"O UDP-Lite does not add further errors. .BR udp (7) -¤Ë¤Ä¤¤¤Æ½ñ¤«¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¥¨¥é¡¼¤ÏÊÖ¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -UDP-Lite ¼«ÂΤϿ·¤¿¤Ê¥¨¥é¡¼¤ÏÄɲ䷤Ƥ¤¤Ê¤¤¡£ +について書かれている全てのエラーは返る可能性がある。 +UDP-Lite 自体は新たなエラーは追加していない。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\" FIXME . remove this section once glibc supports UDP-Lite .\"O Where glibc support is missing, the following definitions are needed: -glibc ¤Ë¤è¤ë¥µ¥Ý¡¼¥È¤¬¤Ê¤¤¾ì¹ç¤Ï¡¢°Ê²¼¤ÎÄêµÁ¤ò¹Ô¤¦É¬Íפ¬¤¢¤ë¡£ +glibc によるサポートがない場合は、以下の定義を行う必要がある。 .in +4n .nf @@ -215,20 +215,20 @@ glibc .fi .in .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .I /proc/net/snmp .\"O \- basic UDP-Litev4 statistics counters. -\- UDP-Litev4 ¤Î´ðËÜŪ¤ÊÅý·×¾ðÊ󥫥¦¥ó¥¿¡¼¡£ +\- UDP-Litev4 の基本的な統計情報カウンター。 .br .I /proc/net/snmp6 .\"O \- basic UDP-Litev6 statistics counters. -\- UDP-Litev6 ¤Î´ðËÜŪ¤ÊÅý·×¾ðÊ󥫥¦¥ó¥¿¡¼¡£ +\- UDP-Litev6 の基本的な統計情報カウンター。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O UDP-Litev4/v6 first appeared in Linux 2.6.20. -UDP-Litev4/v6 ¤Ï Linux 2.6.20 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +UDP-Litev4/v6 は Linux 2.6.20 で初めて登場した。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ip (7), .BR ipv6 (7), .BR socket (7), diff --git a/draft/man7/unicode.7 b/draft/man7/unicode.7 index ad27408c..91e0f1bc 100644 --- a/draft/man7/unicode.7 +++ b/draft/man7/unicode.7 @@ -35,17 +35,17 @@ .\" by Yuichi SATO .\" .\"WORD: -.\"WORD: diacritical mark ȯ²»¶èÊÌÉä¹æ -.\"WORD: International Phonetic Alphabet ¹ñºÝ²»À¼»úÊì +.\"WORD: diacritical mark 発音区別符号 +.\"WORD: International Phonetic Alphabet 国際音声字母 .\"WORD: .\" .TH UNICODE 7 2001-05-11 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O Unicode \- Universal character set -Unicode \- ÈÆÍÑʸ»ú½¸¹ç +Unicode \- 汎用文字集合 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The international standard .\"O .B ISO 10646 .\"O defines the @@ -55,17 +55,17 @@ Unicode \- .\"O .BR "round-trip compatibility" , .\"O i.e., conversion tables can be built such that no information is lost .\"O when a string is converted from any other encoding to UCS and back. -¹ñºÝµ¬³Ê +国際規格 .B ISO 10646 -¤Ï -.B "ÈÆÍÑʸ»ú½¸¹ç (Universal Character Set (UCS))" -¤òÄêµÁ¤·¤Æ¤¤¤ë¡£ -UCS ¤Ï¾µ¬³Ê¤Îʸ»ú½¸¹ç¤Îʸ»ú¤òÁ´¤Æ´Þ¤ó¤Ç¤¤¤ë¡£ -¤µ¤é¤Ë¡¢ -.B "ÁÐÊý¸þ¤Î¸ß´¹À­ (round-trip compatibility)" -¤òÊݾڤ¹¤ë¡£ -Î㤨¤Ð¾¤ÎÉä¹æ¤«¤é UCS ¤ËÊÑ´¹¤·¤µ¤é¤Ë¸µ¤ÎÉä¹æ¤ËÊÑ´¹¤·¤¿¤È¤·¤Æ¤â¡¢ -²¿¤Î¾ðÊó¤â¼º¤Ê¤ï¤ì¤Ê¤¤¤è¤¦¤ËÊÑ´¹¥Æ¡¼¥Ö¥ë¤òºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +は +.B "汎用文字集合 (Universal Character Set (UCS))" +を定義している。 +UCS は他規格の文字集合の文字を全て含んでいる。 +さらに、 +.B "双方向の互換性 (round-trip compatibility)" +を保証する。 +例えば他の符号から UCS に変換しさらに元の符号に変換したとしても、 +何の情報も失なわれないように変換テーブルを作成することができる。 .\"O UCS contains the characters required to represent practically all .\"O known languages. @@ -76,17 +76,17 @@ UCS .\"O Oriya, Tamil, Telugu, Kannada, Malayalam, Thai, Lao, Khmer, Bopomofo, .\"O Tibetan, Runic, Ethiopic, Canadian Syllabics, Cherokee, Mongolian, .\"O Ogham, Myanmar, Sinhala, Thaana, Yi, and others. -UCS ¤Ï¸½¼ÂŪ¤ËÃΤé¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¸À¸ì¤òɽ¸½¤¹¤ë¤Î¤ËɬÍפÊʸ»ú¤ò´Þ¤ó¤Ç¤¤¤ë¡£ -¤³¤ì¤Ë¤Ï¥é¥Æ¥óʸ»ú¡¢¥®¥ê¥·¥ãʸ»ú¡¢¥­¥ê¥ëʸ»ú¡¢¥Ø¥Ö¥é¥¤Ê¸»ú¡¢¥¢¥é¥Ó¥¢Ê¸»ú¡¢ -¥¢¥ë¥á¥Ë¥¢Ê¸»ú¡¢¥°¥ë¥¸¥¢Ê¸»ú¤À¤±¤Ç¤Ê¤¯¡¢Ãæ¹ñ¡¦ÆüËÜ¡¦´Ú¹ñ¤Ç»È¤ï¤ì¤Æ¤¤¤ë´Á»ú¡¢ -¤µ¤é¤Ë¤Ï¡¢Ê¿²¾Ì¾¡¢ÊÒ²¾Ì¾¡¢¥Ï¥ó¥°¥ëʸ»ú¡¢ -¥Ç¡¼¥ô¥¡¥Ê¡¼¥¬¥ê¡¼Ê¸»ú¡¢¥Ù¥ó¥¬¥ëʸ»ú¡¢¥°¥ë¥à¥­¡¼Ê¸»ú¡¢¥°¥¸¥ã¥é¡¼¥Èʸ»ú¡¢ -¥ª¥ê¥ä¡¼Ê¸»ú¡¢¥¿¥ß¡¼¥ëʸ»ú¡¢¥Æ¥ë¥°Ê¸»ú¡¢¥«¥Ê¥éʸ»ú¡¢¥Þ¥é¥ä¡¼¥é¥àʸ»ú¡¢ -¥¿¥¤Ê¸»ú¡¢¥é¥ª¥¹Ê¸»ú¡¢¥¯¥á¡¼¥ëʸ»ú¡¢¥Ü¥Ý¥â¥Õ¥©Ê¸»ú (Ãí²»»úÊì)¡¢ -¥Á¥Ù¥Ã¥Èʸ»ú¡¢¥ë¡¼¥óʸ»ú¡¢¥¨¥Á¥ª¥Ô¥¢Ê¸»ú¡¢¥«¥Ê¥À²»Àáʸ»ú¡¢ -¥Á¥§¥í¥­¡¼Ê¸»ú¡¢¥â¥ó¥´¥ëʸ»ú¡¢ -¥ª¥¬¥àʸ»ú¡¢¥ß¥ã¥ó¥Þ¡¼Ê¸»ú¡¢¥·¥ó¥Ï¥éʸ»ú¡¢ -¥¿¡¼¥Êʸ»ú¡¢¥¤ (׳) ʸ»ú¤Ê¤É¤¬´Þ¤Þ¤ì¤ë¡£ +UCS は現実的に知られている全ての言語を表現するのに必要な文字を含んでいる。 +これにはラテン文字、ギリシャ文字、キリル文字、ヘブライ文字、アラビア文字、 +アルメニア文字、グルジア文字だけでなく、中国・日本・韓国で使われている漢字、 +さらには、平仮名、片仮名、ハングル文字、 +デーヴァナーガリー文字、ベンガル文字、グルムキー文字、グジャラート文字、 +オリヤー文字、タミール文字、テルグ文字、カナラ文字、マラヤーラム文字、 +タイ文字、ラオス文字、クメール文字、ボポモフォ文字 (注音字母)、 +チベット文字、ルーン文字、エチオピア文字、カナダ音節文字、 +チェロキー文字、モンゴル文字、 +オガム文字、ミャンマー文字、シンハラ文字、 +ターナ文字、イ (彝) 文字などが含まれる。 .\"O For scripts not yet .\"O covered, research on how to best encode them for computer usage is .\"O still going on and they will be added eventually. @@ -94,21 +94,21 @@ UCS .\"O eventually include not only Hieroglyphs and various historic .\"O Indo-European languages, but even some selected artistic scripts such .\"O as Tengwar, Cirth, and Klingon. -¤Þ¤À¥«¥Ð¡¼¤µ¤ì¤Æ¤¤¤Ê¤¤Ê¸»ú¤ËÉÕ¤¤¤Æ¤â¡¢ -¥³¥ó¥Ô¥å¡¼¥¿¤Ç»ÈÍѤ¹¤ë¤¿¤á¤Ë -¤É¤Î¤è¤¦¤Ê¥¨¥ó¥³¡¼¥É¤¬¤â¤Ã¤È¤âÎɤ¤¤«¤È¤¤¤¦¸¦µæ¤¬¿Ê¤á¤é¤ì¤Æ¤ª¤ê¡¢ -ºÇ½ªÅª¤Ë¤ÏÄɲ䵤ì¤ë¤À¤í¤¦¡£ -¥Ò¥¨¥í¥°¥ê¥Õ¤äÎò»ËŪ¤Ê¤¤¤í¤¤¤í¤Ê¥¤¥ó¥É¡á¥è¡¼¥í¥Ã¥Ñ¸À¸ì¤À¤±¤Ç¤Ê¤¯¡¢ -¥Æ¥ó¥°¥ï¡¼¥ëʸ»ú¡¢¥­¥¢¥¹Ê¸»ú¡¢¥¯¥ê¥ó¥´¥óʸ»ú¤Ê¤É¤Î¿Í¹©Åª¤Ê¸À¸ì¤âÁª¤Ð¤ì¤Æ¤¤¤ë¡£ +まだカバーされていない文字に付いても、 +コンピュータで使用するために +どのようなエンコードがもっとも良いかという研究が進められており、 +最終的には追加されるだろう。 +ヒエログリフや歴史的ないろいろなインド=ヨーロッパ言語だけでなく、 +テングワール文字、キアス文字、クリンゴン文字などの人工的な言語も選ばれている。 .\"O UCS also covers a large number of .\"O graphical, typographical, mathematical and scientific symbols, .\"O including those provided by TeX, Postscript, APL, MS-DOS, MS-Windows, .\"O Macintosh, OCR fonts, as well as many word processing and publishing .\"O systems, and more are being added. -UCS ¤Ï¡¢¤³¤ì¤é¤Îʸ»ú¤Ë²Ã¤¨¤Æ¡¢TeX, PostScript, APL, MS-DOS, MS-Windows, -Macintosh, OCR ¥Õ¥©¥ó¥È¡¢¿ô¿¤¯¤Î¥ï¡¼¥É¥×¥í¥»¥Ã¥µ¡¼¤ä -½ÐÈÇ¥·¥¹¥Æ¥à¡¢¤Ê¤É¤¬Ä󶡤¹¤ë -¿Þ·Áµ­¹æ¡¦°õ»úµ­¹æ¡¦¿ô³Øµ­¹æ¡¦²Ê³Øµ­¹æ¤Ê¤É¤Î¿¤¯¤ò´Þ¤à¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ +UCS は、これらの文字に加えて、TeX, PostScript, APL, MS-DOS, MS-Windows, +Macintosh, OCR フォント、数多くのワードプロセッサーや +出版システム、などが提供する +図形記号・印字記号・数学記号・科学記号などの多くを含むようになった。 .\"O The UCS standard (ISO 10646) describes a .\"O .I "31-bit character set architecture" @@ -121,58 +121,58 @@ Macintosh, OCR .\"O with 256 .\"O .I column .\"O positions, one for each character. -UCS µ¬³Ê (ISO 10646) ¤Ï -.I "31¥Ó¥Ã¥È¤Îʸ»ú½¸¹ç¥¢¡¼¥­¥Æ¥¯¥Á¥ã¡¼" -¤òµ­½Ò¤·¤Æ¤ª¤ê¡¢128 ¸Ä¤Î 24 ¥Ó¥Ã¥È -.IR ·² " (" group ) -¤«¤é¹½À®¤µ¤ì¤Æ¤¤¤ë¡£ -³Æ·²¤Ï 256 ¸Ä¤Î 16 ¥Ó¥Ã¥È -.IR ÌÌ " (" plane ) -¤Ëʬ³ä¤µ¤ì¤Æ¤ª¤ê¡¢³Æʸ»ú¤Ï 256 ¸Ä¤Î 8 ¥Ó¥Ã¥È -.IR ¶è " (" row ) -¤Î 256 -.IR ÅÀ " (" column ) -¤ÎÃæ¤Ë°ÌÃÖ¤¹¤ë¡£ +UCS 規格 (ISO 10646) は +.I "31ビットの文字集合アーキテクチャー" +を記述しており、128 個の 24 ビット +.IR 群 " (" group ) +から構成されている。 +各群は 256 個の 16 ビット +.IR 面 " (" plane ) +に分割されており、各文字は 256 個の 8 ビット +.IR 区 " (" row ) +の 256 +.IR 点 " (" column ) +の中に位置する。 .\"O Part 1 of the standard .\"O .RB ( "ISO 10646-1" ) .\"O defines the first 65534 code positions (0x0000 to 0xfffd), which form .\"O the .\"O .IR "Basic Multilingual Plane (BMP)" , .\"O that is plane 0 in group 0. -¤³¤Îµ¬³Ê¤Î Part 1 +この規格の Part 1 .RB ( "ISO 10646-1" ) -¤Ç¤Ï¡¢ºÇ½é¤Î 65534 ¸Ä¤Î¥³¡¼¥É°ÌÃÖ (0x0000 ¡Á 0xfffd) ¤òÄêµÁ¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤ÏÂè 0 ·²¤ÎÂè 0 Ì̤Ǥ¢¤ë -.IR "´ðËÜ¿¸À¸ìÌÌ (Basic Multilingual Plane (BMP))" -¤ò¹½À®¤¹¤ë¡£ +では、最初の 65534 個のコード位置 (0x0000 〜 0xfffd) を定義している。 +これは第 0 群の第 0 面である +.IR "基本多言語面 (Basic Multilingual Plane (BMP))" +を構成する。 .\"O Part 2 of the standard .\"O .RB ( "ISO 10646-2" ) .\"O adds characters to group 0 outside the BMP in several .\"O .I "supplementary planes" .\"O in the range 0x10000 to 0x10ffff. -¤³¤Îµ¬³Ê¤Î Part 2 +この規格の Part 2 .RB ( "ISO 10646-2" ) -¤Ç¤Ï¡¢Âè 0 ·²¤Î BMP ¤Î³°Éô¤Ç¤¢¤ë -0x10000 ¡Á 0x10ffff ¤ÎÈϰϤˤ¢¤ë -.I "Êä½õÌÌ" -¤Ëʸ»ú¤òÄɲä·¤¿¡£ +では、第 0 群の BMP の外部である +0x10000 〜 0x10ffff の範囲にある +.I "補助面" +に文字を追加した。 .\"O There are no plans to add characters .\"O beyond 0x10ffff to the standard, therefore of the entire code space, .\"O only a small fraction of group 0 will ever be actually used in the .\"O foreseeable future. -¤³¤Îµ¬³Ê¤Ç¤Ï 0x10ffff ¤ò±Û¤¨¤¿°ÌÃÖ¤Ëʸ»ú¤òÄɲ乤ëͽÄê¤Ï¤Ê¤¤¤Î¤Ç¡¢ -ͽÁۤǤ­¤ë¾­Íè¤Ë¤ª¤¤¤Æ¤Ï¡¢ -Á´¥³¡¼¥É¶õ´Ö¤Î¤¦¤Á¥°¥ë¡¼¥× 0 ¤Î°ìÉôʬ¤Ï¼ÂºÝ¤Ë¤Ï»È¤ï¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ +この規格では 0x10ffff を越えた位置に文字を追加する予定はないので、 +予想できる将来においては、 +全コード空間のうちグループ 0 の一部分は実際には使われることはない。 .\"O The BMP contains all characters found in the .\"O commonly used other character sets. .\"O The supplemental planes added by .\"O ISO 10646-2 cover only more exotic characters for special scientific, .\"O dictionary printing, publishing industry, higher-level protocol and .\"O enthusiast needs. -BMP ¤Ë¤Ï¾¤Îʸ»ú½¸¹ç¤Ç°ìÈ̤˻Ȥï¤ì¤ëÁ´¤Æ¤Îʸ»ú¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -ISO 10646-2 ¤ÇÄɲ䵤줿Êä½õÌ̤ϡ¢ -ÆÃÄê¤Î²Ê³ØʬÌ¼­½ñ½ÐÈÇ¡¦°õºþ»º¶È¡¦¹â¼¡¥×¥í¥È¥³¥ë¡¦ -²¿¤«¤Î¥Õ¥¡¥ó¤Î´Ö¤Ê¤É¤Ç»È¤ï¤ì¤ëÆüì¤Êʸ»ú¤À¤±¤ò¥«¥Ð¡¼¤¹¤ë¡£ +BMP には他の文字集合で一般に使われる全ての文字が含まれている。 +ISO 10646-2 で追加された補助面は、 +特定の科学分野・辞書出版・印刷産業・高次プロトコル・ +何かのファンの間などで使われる特殊な文字だけをカバーする。 .PP .\"O The representation of each UCS character as a 2-byte word is referred .\"O to as the @@ -180,25 +180,25 @@ ISO 10646-2 .\"O form (only for BMP characters), whereas .\"O .B UCS-4 .\"O is the representation of each character by a 4-byte word. -UCS ʸ»ú¤ò 2 ¥Ð¥¤¥È¤Î¥ï¡¼¥É¤Çɽ¸½¤¹¤ë¤Î¤¬ +UCS 文字を 2 バイトのワードで表現するのが .B UCS-2 -·Á¼°¤Ç¤¢¤ë (BMP ʸ»ú¤Î¤ß)¡£ -¤Þ¤¿¡¢ +形式である (BMP 文字のみ)。 +また、 .B UCS-4 -¤Ç¤Ïʸ»ú¤ò 4 ¥Ð¥¤¥È¤Î¥ï¡¼¥É¤Çɽ¸½¤¹¤ë¡£ +では文字を 4 バイトのワードで表現する。 .\"O In addition, there exist two encoding forms .\"O .B UTF-8 .\"O for backward compatibility with ASCII processing software and .\"O .B UTF-16 .\"O for the backward compatible handling of non-BMP characters up to .\"O 0x10ffff by UCS-2 software. -¤µ¤é¤Ë¡¢ASCII ¤ò½èÍý¤¹¤ë¥½¥Õ¥È¥¦¥§¥¢¤Ø¤Î²¼°Ì¸ß´¹¤Î¤¿¤á¤Ë +さらに、ASCII を処理するソフトウェアへの下位互換のために .B UTF-8 -¥¨¥ó¥³¡¼¥É·Á¼°¤¬¤¢¤ë¡£ -¤Þ¤¿¡¢0x10ffff ¤Þ¤Ç¤ÎÈó BMP ʸ»ú¤ò°·¤¦ -UCS-2 Âбþ¥½¥Õ¥È¥¦¥§¥¢¤È¤Î¸ß´¹¤Î¤¿¤á¤Ë +エンコード形式がある。 +また、0x10ffff までの非 BMP 文字を扱う +UCS-2 対応ソフトウェアとの互換のために .B UTF-16 -¥¨¥ó¥³¡¼¥É·Á¼°¤¬¤¢¤ë¡£ +エンコード形式がある。 .PP .\"O The UCS characters 0x0000 to 0x007f are identical to those of the .\"O classic @@ -206,14 +206,14 @@ UCS-2 .\"O character set and the characters in the range 0x0000 to 0x00ff .\"O are identical to those in .\"O .BR "ISO 8859-1 Latin-1" . -UCS ʸ»ú½¸¹ç¤Î 0x0000 ¤«¤é 0x007f ¤Ï¡¢¸ÅŵŪ¤Ê +UCS 文字集合の 0x0000 から 0x007f は、古典的な .B US-ASCII -ʸ»ú½¸¹ç¤Îʸ»ú¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -¤Þ¤¿ 0x0000 ¤«¤é 0x00ff ¤ÎÈϰϤǤϡ¢ +文字集合の文字と同じである。 +また 0x0000 から 0x00ff の範囲では、 .B ISO 8859-1 Latin-1 -ʸ»ú½¸¹ç¤Îʸ»ú¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +文字集合の文字と同じである。 .\"O .SS Combining Characters -.SS "¹çÀ®Ê¸»ú (Combining Characters)" +.SS "合成文字 (Combining Characters)" .\"O Some code points in .\"O .B UCS .\"O have been assigned to @@ -231,33 +231,33 @@ UCS ʸ .\"O alternatively as the combination of a normal "Latin capital letter A" .\"O followed by a "combining diaeresis": 0x0041 0x0308. .B UCS -¤Î¤¤¤¯¤Ä¤«¤Î¥³¡¼¥É¡¦¥Ý¥¤¥ó¥È¤Ï -.I "¹çÀ®Ê¸»ú (combining characters)" -¤Ë³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Ï¥¿¥¤¥×¥é¥¤¥¿¡¼¤Î°ÜÆ°¤·¤Ê¤¤¥¢¥¯¥»¥ó¥È¡¦¥­¡¼¤Ë»÷¤Æ¤¤¤ë¡£ -¹çÀ®Ê¸»ú¤ÏľÁ°¤Îʸ»ú¤Ë¥¢¥¯¥»¥ó¥È¤Î¤ß¤ò²Ã¤¨¤ë¡£ -ºÇ¤â½ÅÍפʥ¢¥¯¥»¥ó¥ÈÉÕ¤­¤Îʸ»ú¤Ï¤½¤ì¼«¿È¤Î¥³¡¼¥É¤ò UCS ¤Ë»ý¤Ã¤Æ¤¤¤ë¡£ -°ìÊý¤Ç¹çÀ®Ê¸»úµ¡¹½¤ÏÁ´¤Æ¤Îʸ»ú¤Ë¥¢¥¯¥»¥ó¥È¤äȯ²»¶èÊÌÉä¹æ¤ò²Ã¤¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¹çÀ®Ê¸»ú¤Ï¾ï¤Ë¤½¤ì¤¬½¤Àµ¤¹¤ëʸ»ú¤Ë³¤¯¡£ -Î㤨¤Ð¥É¥¤¥Ä¸ì¤Îʸ»ú A ¥¦¥à¥é¥¦¥È ("Latin capital letter A with diaeresis") ¤Ï -UCS ¤ËÁ°¤â¤Ã¤Æ½àÈ÷¤µ¤ì¤¿¥³¡¼¥É 0x00c4 ¤Ç¤â¡¢ -Ä̾ï¤Î A "Latin capital letter A" ¤Ë -"combining diaeresis (¹çÀ®Ê¬²»µ­¹æ)" ¤ò³¤±¤¿Áȹ礻 -(0x0041 0x0308) ¤Î¤É¤Á¤é¤Ç¤âɽ¸½¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +のいくつかのコード・ポイントは +.I "合成文字 (combining characters)" +に割り当てられている。 +これらはタイプライターの移動しないアクセント・キーに似ている。 +合成文字は直前の文字にアクセントのみを加える。 +最も重要なアクセント付きの文字はそれ自身のコードを UCS に持っている。 +一方で合成文字機構は全ての文字にアクセントや発音区別符号を加えることができる。 +合成文字は常にそれが修正する文字に続く。 +例えばドイツ語の文字 A ウムラウト ("Latin capital letter A with diaeresis") は +UCS に前もって準備されたコード 0x00c4 でも、 +通常の A "Latin capital letter A" に +"combining diaeresis (合成分音記号)" を続けた組合せ +(0x0041 0x0308) のどちらでも表現することができる。 .PP .\"O Combining characters are essential for instance for encoding the Thai .\"O script or for mathematical typesetting and users of the International .\"O Phonetic Alphabet. -¹çÀ®Ê¸»ú¤Ï¡¢¥¿¥¤Ê¸»ú¤ä¿ô³Ø¿¢»ú¤Î¥¨¥ó¥³¡¼¥É¡¦ -¹ñºÝ²»À¼»úÊì¤ò»È¤¦¥æ¡¼¥¶¡¼¤Ê¤É¤Ë¤Ïɬ¿Ü¤Ç¤¢¤ë¡£ +合成文字は、タイ文字や数学植字のエンコード・ +国際音声字母を使うユーザーなどには必須である。 .\"O .SS Implementation Levels -.SS ¼ÂÁõ¥ì¥Ù¥ë +.SS 実装レベル .\"O As not all systems are expected to support advanced mechanisms like .\"O combining characters, ISO 10646-1 specifies the following three .\"O .I implementation levels .\"O of UCS: -Á´¤Æ¤Î¥·¥¹¥Æ¥à¤Ë¹çÀ®Ê¸»ú¤Î¤è¤¦¤Ê¿Ê¤ó¤À¥µ¥Ý¡¼¥È¤ò´üÂÔ¤·¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -ISO 10646-1 ¤Ï°Ê²¼¤Î»°Ãʳ¬¤Î UCS ¤Î¼ÂÁõ¥ì¥Ù¥ë¤ò»ØÄꤷ¤Æ¤¤¤ë¡£ +全てのシステムに合成文字のような進んだサポートを期待しているわけではない。 +ISO 10646-1 は以下の三段階の UCS の実装レベルを指定している。 .TP 0.9i Level 1 .\"O Combining characters and @@ -265,27 +265,27 @@ Level 1 .\"O (a variant encoding of the Korean script, where a Hangul syllable .\"O glyph is coded as a triplet or pair of vovel/consonant codes) are not .\"O supported. -¹çÀ®Ê¸»ú¤È -.B ¥Ï¥ó¥°¥ë¡¦¥¸¥ã¥âʸ»ú -(¤¤¤í¤¤¤í¤Ê´Ú¹ñ¡¦Ä«Á¯Ê¸»ú¤ÎÉä¹æ²½¡£ -¤³¤ÎÉä¹æ²½¤Ç¤Ï¡¢¥Ï¥ó¥°¥ë²»Àá¤Î¥°¥ê¥Õ¤¬ -3 ¤Ä¤Þ¤¿¤Ï 2 ¤Ä¤ÎÊì²»¡¦»Ò²»¥³¡¼¥É¤ÎÁȤ߹ç¤ï¤»¤ÇÉä¹æ²½¤µ¤ì¤ë) ¤Ï¥µ¥Ý¡¼¥È¤·¤Ê¤¤¡£ +合成文字と +.B ハングル・ジャモ文字 +(いろいろな韓国・朝鮮文字の符号化。 +この符号化では、ハングル音節のグリフが +3 つまたは 2 つの母音・子音コードの組み合わせで符号化される) はサポートしない。 .TP Level 2 .\"O In addition to level 1, combining characters are now allowed for some .\"O languages where they are essential (e.g., Thai, Lao, Hebrew, .\"O Arabic, Devanagari, Malayalam, etc.). -Level 1 ¤ÈƱÍͤÀ¤¬¡¢¹çÀ®Ê¸»ú¤òɬ¿Ü¤È¤¹¤ë¸À¸ì¤Î¤¿¤á¤Îʸ»ú -(Î㤨¤Ð¡¢¥¿¥¤Ê¸»ú¡¦¥é¥ª¥¹Ê¸»ú¡¦¥Ø¥Ö¥é¥¤Ê¸»ú¡¦¥¢¥é¥Ó¥¢Ê¸»ú¡¦ -¥Ç¡¼¥ô¥¡¥Ê¡¼¥¬¥ê¡¼Ê¸»ú¡¦¥Þ¥ì¥ä¡¼¥é¥àʸ»ú¤Ê¤É) ¤Ï»È¤¨¤ë¡£ +Level 1 と同様だが、合成文字を必須とする言語のための文字 +(例えば、タイ文字・ラオス文字・ヘブライ文字・アラビア文字・ +デーヴァナーガリー文字・マレヤーラム文字など) は使える。 .TP Level 3 .\"O All .\"O .B UCS .\"O characters are supported. -Á´¤Æ¤Î +全ての .B UCS -ʸ»ú¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ +文字をサポートする。 .PP .\"O The .\"O .B Unicode 3.0 Standard @@ -294,12 +294,12 @@ Level 3 .\"O contains exactly the .\"O .B UCS Basic Multilingual Plane .\"O at implementation level 3, as described in ISO 10646-1:2000. -.B ¥æ¥Ë¥³¡¼¥É¡¦¥³¥ó¥½¡¼¥·¥¢¥à (Unicode Consortium) -¤«¤éȯ¹Ô¤µ¤ì¤¿ +.B ユニコード・コンソーシアム (Unicode Consortium) +から発行された .B Unicode 3.0 Standard -¤Ï¡¢ISO 10646-1:2000 ¤Ëµ­½Ò¤µ¤ì¤¿ +は、ISO 10646-1:2000 に記述された .B UCS Basic Multilingual Plane -¤Î level 3 ¼ÂÁõ¤ÈÁ´¤¯Æ±¤¸¤Ç¤¢¤ë¡£ +の level 3 実装と全く同じである。 .\"O .B Unicode 3.1 .\"O added the supplemental planes of ISO 10646-2. .\"O The Unicode standard and @@ -310,14 +310,14 @@ Level 3 .\"O editing, sorting, comparing, normalizing, converting and displaying .\"O Unicode strings. .B Unicode 3.1 -¤Ç¤Ï ISO 10646-2 ¤ÎÊä½õÌ̤¬Äɲ䵤ì¤Æ¤¤¤ë¡£ -Unicode Consortium ¤«¤éȯ¹Ô¤µ¤ì¤ë Unicode µ¬³Ê¤Èµ»½Ñ¥ì¥Ý¡¼¥È¤Ë¤è¤ê¡¢ -¤¤¤í¤¤¤í¤Êʸ»ú¤Î°ÕÌ£¤È¿ä¾©¤µ¤ì¤ë»ÈÍÑË¡¤Ë¤Ä¤¤¤Æ¤Î¹¹¤Ê¤ë¾ðÊó¤¬ÆÀ¤é¤ì¤ë¡£ -¤³¤ì¤é¤Îµ¬³Ê½ñ¤äµ»½Ñ¥ì¥Ý¡¼¥È¤Ç¡¢Unicode ʸ»úÎó¤ò -ÊÔ½¸¡¦Ê¤ÙÂؤ¨¡¦Èæ³Ó¡¦Àµµ¬²½¡¦ÊÑ´¹¡¦É½¼¨¤¹¤ë¤¿¤á¤Î -¥¬¥¤¥É¥é¥¤¥ó¤È¥¢¥ë¥´¥ê¥º¥à¤¬Ê¬¤«¤ë¡£ +では ISO 10646-2 の補助面が追加されている。 +Unicode Consortium から発行される Unicode 規格と技術レポートにより、 +いろいろな文字の意味と推奨される使用法についての更なる情報が得られる。 +これらの規格書や技術レポートで、Unicode 文字列を +編集・並べ替え・比較・正規化・変換・表示するための +ガイドラインとアルゴリズムが分かる。 .\"O .SS Unicode Under Linux -.SS "Linux ¤Ë¤ª¤±¤ë Unicode" +.SS "Linux における Unicode" .\"O Under GNU/Linux, the C type .\"O .B wchar_t .\"O is a signed 32-bit integer type. @@ -328,17 +328,17 @@ Unicode Consortium .\"O C library to applications by defining the constant .\"O .B __STDC_ISO_10646__ .\"O as specified in the ISO C99 standard. -GNU/Linux ¤Ç¤Ï¡¢C ¸À¸ì¤Î·¿ +GNU/Linux では、C 言語の型 .B wchar_t -¤ÏÉä¹æÉÕ¤­ 32 ¥Ó¥Ã¥ÈÀ°¿ô·¿¤Ç¤¢¤ë¡£ -¤½¤ÎÃÍ¤Ï C ¥é¥¤¥Ö¥é¥ê¤Ë¤è¤ê (¤¹¤Ù¤Æ¤Î¥í¥±¡¼¥ë¤Ë¤ª¤¤¤Æ) ¾ï¤Ë +は符号付き 32 ビット整数型である。 +その値は C ライブラリにより (すべてのロケールにおいて) 常に .B UCS -¥³¡¼¥É¤ÎÃͤȤ·¤Æ²ò¼á¤µ¤ì¤ë¡£ -¤³¤ì¤ò GNU C ¥é¥¤¥Ö¥é¥ê¤¬¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ËÃΤ餻¤ë¤¿¤á¤Îµ¬Ìó¤È¤·¤Æ¡¢ -Äê¿ô +コードの値として解釈される。 +これを GNU C ライブラリがアプリケーションに知らせるための規約として、 +定数 .B __STDC_ISO_10646__ -¤òÄêµÁ¤¹¤ë¡£ -¤³¤ì¤Ï ISO C99 µ¬³Ê¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¡£ +を定義する。 +これは ISO C99 規格で指定されている。 .\"O UCS/Unicode can be used just like ASCII in input/output streams, .\"O terminal communication, plaintext files, filenames, and environment @@ -350,16 +350,16 @@ GNU/Linux .\"O .I locale .\"O has to be selected via environment variables (e.g., .\"O "LANG=en_GB.UTF-8"). -ASCII ¸ß´¹¤Î +ASCII 互換の .B UTF-8 -¥Þ¥ë¥Á¥Ð¥¤¥È¥¨¥ó¥³¡¼¥É¤Ç¤Ï¡¢Æþ½ÐÎÏ¥¹¥È¥ê¡¼¥à¡¦Ã¼ËöÄÌ¿®¡¦ -¥×¥ì¡¼¥ó¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¡¦¥Õ¥¡¥¤¥ë̾¡¦´Ä¶­ÊÑ¿ô¤Ë¤ª¤¤¤Æ¡¢ -UCS/Unicode ¤ò ASCII ¤Î¤è¤¦¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -UTF-8 ¤òʸ»ú¥¨¥ó¥³¡¼¥É¤È¤·¤Æ»È¤¦¤³¤È¤ò -Á´¤Æ¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ËÃΤ餻¤ë¤¿¤á¤Ë¤Ï¡¢ -("LANG=en_GB.UTF-8" ¤Î¤è¤¦¤Ë) ´Ä¶­ÊÑ¿ô¤ò»È¤Ã¤ÆŬÀÚ¤Ê -.I ¥í¥±¡¼¥ë (locale) -¤òÁªÂò¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +マルチバイトエンコードでは、入出力ストリーム・端末通信・ +プレーンテキストファイル・ファイル名・環境変数において、 +UCS/Unicode を ASCII のように使うことができる。 +UTF-8 を文字エンコードとして使うことを +全てのアプリケーションに知らせるためには、 +("LANG=en_GB.UTF-8" のように) 環境変数を使って適切な +.I ロケール (locale) +を選択しなければならない。 .PP .\"O The .\"O .B nl_langinfo(CODESET) @@ -376,17 +376,17 @@ UTF-8 .\"O tells, how many positions (0\(en2) the cursor is advanced by the .\"O output of a character. .B nl_langinfo(CODESET) -´Ø¿ô¤ÏÁªÂò¤µ¤ì¤¿¥¨¥ó¥³¡¼¥É¤Î̾Á°¤òÊÖ¤¹¡£ -ÆâÉôŪ¤Ê +関数は選択されたエンコードの名前を返す。 +内部的な .I wchar_t -ʸ»ú¤äʸ»úÎó¤ò¥·¥¹¥Æ¥àʸ»úÎ󥨥󥳡¼¥É¤ËÊÑ´¹ (µÕÊÑ´¹) ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë +文字や文字列をシステム文字列エンコードに変換 (逆変換) するのに使われる .BR wctomb (3) -¤ä -.BR mbsrtowcs (3)¡¢ -¤µ¤é¤Ë¤Ï +や +.BR mbsrtowcs (3)、 +さらには .BR wcwidth (3) -¤È¤¤¤Ã¤¿¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ï¡¢ -ʸ»ú½ÐÎϤǤɤì¤À¤±¥«¡¼¥½¥ë¤¬¿Ê¤ó¤À¤« (0\(en2) ¤òÊÖ¤¹¡£ +といったライブラリ関数は、 +文字出力でどれだけカーソルが進んだか (0\(en2) を返す。 .PP .\"O Under Linux, in general only the BMP at implementation level 1 should .\"O be used at the moment. @@ -396,17 +396,17 @@ UTF-8 .\"O general precomposed characters should be preferred where available .\"O (Unicode calls this .\"O .BR "Normalization Form C" ). -°ìÈÌŪ¤Ë¸À¤¦¤È¡¢Linux ¤Ç¤Ï¸½ºß¤Î¤È¤³¤í -BMP ¤Î level 1 ¼ÂÁõ¤Î¤ß¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£ -¤¢¤ë¸À¸ì¤Îʸ»ú (¤È¤¯¤Ë¥¿¥¤Ê¸»ú) ¤Ç¤Ï¡¢ -¥Ù¡¼¥¹Ê¸»úÅö¤¿¤ê 2 ¤Ä¤Þ¤Ç¤Î¹çÀ®Ê¸»ú¤ò»È¤¦¤³¤È¤¬ -UTF-8 üËö¥¨¥ß¥å¥ì¡¼¥¿¤È ISO 10646 ¥Õ¥©¥ó¥È (level 2) ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¤·¤«¤·°ìÈÌŪ¤Ë¸À¤¨¤Ð¡¢¤â¤·²Äǽ¤Ê¤é¤Ð¤¢¤é¤«¤¸¤á¹çÀ®¤·¤¿Ê¸»ú¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë -(Unicode ¤Ç¤Ï¡¢¤³¤ì¤ò -.B "Normalization Form C (¹çÀ®Ê¸»ú¤ÎÀµµ¬²½·Á¼°)" -¤È¤¤¤¦)¡£ +一般的に言うと、Linux では現在のところ +BMP の level 1 実装のみを使うべきである。 +ある言語の文字 (とくにタイ文字) では、 +ベース文字当たり 2 つまでの合成文字を使うことが +UTF-8 端末エミュレータと ISO 10646 フォント (level 2) でサポートされている。 +しかし一般的に言えば、もし可能ならばあらかじめ合成した文字を使うべきである +(Unicode では、これを +.B "Normalization Form C (合成文字の正規化形式)" +という)。 .\"O .SS Private Area -.SS ¥×¥é¥¤¥Ù¡¼¥È¡¦¥¨¥ê¥¢ +.SS プライベート・エリア .\"O In the .\"O .BR BMP , .\"O the range 0xe000 to 0xf8ff will never be assigned to any characters by @@ -420,17 +420,17 @@ UTF-8 ü .\"O assigned to the Linux zone is currently maintained by H. Peter Anvin .\"O . .B BMP -¤Î 0xe000 ¡Á 0xf8ff ¤ÎÈϰϤϡ¢µ¬³Ê¤Ç¤Ï¤¤¤«¤Ê¤ëʸ»ú¤â³ä¤êÅö¤Æ¤º¡¢ -»äŪ¤Ê»ÈÍѤΤ¿¤á¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ -Linux ¥³¥ß¥å¥Ë¥Æ¥£¤Ç¤Ï¡¢ -¤³¤Î¥×¥é¥¤¥Ù¡¼¥È¡¦¥¨¥ê¥¢¤ò¤µ¤é¤ËºÙ¤«¤¯Ê¬³ä¤·¤Æ»ÈÍѤ¹¤ë¡£ -0xe000 ¡Á 0xefff ¤ÎÈϰϤϥ¨¥ó¥É¡¦¥æ¡¼¥¶¡¼¤¬¸Ä¡¹¤Ë»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -0xf000 ¡Á 0xf8ff ¤ÎÈÏ°Ï¤Ï Linux Zone ¤Ç -Á´¤Æ¤Î Linux ¥æ¡¼¥¶¡¼¤Ç¶¦Ä̤˻ÈÍѤ¹¤ë¡£ -Linux Zone ¤Ø¤Îʸ»ú³ä¤êÅö¤Æ¤ÎÅÐÏ¿¤Ï¡¢ -¸½ºß H. Peter Anvin ¤Ë¤è¤Ã¤Æ´ÉÍý¤µ¤ì¤Æ¤¤¤ë¡£ +の 0xe000 〜 0xf8ff の範囲は、規格ではいかなる文字も割り当てず、 +私的な使用のために予約されている。 +Linux コミュニティでは、 +このプライベート・エリアをさらに細かく分割して使用する。 +0xe000 〜 0xefff の範囲はエンド・ユーザーが個々に使用することができる。 +0xf000 〜 0xf8ff の範囲は Linux Zone で +全ての Linux ユーザーで共通に使用する。 +Linux Zone への文字割り当ての登録は、 +現在 H. Peter Anvin によって管理されている。 .\"O .SS Literature -.SS ʸ¸¥ +.SS 文献 .TP 0.2i * Information technology \(em Universal Multiple-Octet Coded Character @@ -441,10 +441,10 @@ for Standardization, Geneva, 2000. .\"O This is the official specification of .\"O .BR UCS . .\"O Available as a PDF file on CD-ROM from http://www.iso.ch/. -¤³¤ì¤Ï +これは .B UCS -¤Î¸ø¼°¤Ê»ÅÍͤǤ¢¤ë¡£ -http://www.iso.ch/ ¤«¤éÃíʸ¤Ç¤­¤ë CD-ROM ¤Ç PDF ¥Õ¥¡¥¤¥ë¤È¤·¤ÆÆþ¼ê¤Ç¤­¤ë¡£ +の公式な仕様である。 +http://www.iso.ch/ から注文できる CD-ROM で PDF ファイルとして入手できる。 .TP * The Unicode Standard, Version 3.0. @@ -461,23 +461,23 @@ Prentice Hall, Englewood Cliffs, 1995, ISBN 0-13-326224-3. .\"O adds a large number of new C library functions for handling wide and .\"O multibyte character encodings, but it does not yet cover ISO C99, .\"O which improved wide and multibyte character support even further. -C ¥×¥í¥°¥é¥à¸À¸ì¤Ë¤Ä¤¤¤Æ¤Î¤È¤Æ¤âÎɤ¤»²¹Í½ñ¤Ç¤¢¤ë¡£ -Âè»ÍÈǤǤϡ¢¥ï¥¤¥Éʸ»ú¤ä¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¥¨¥ó¥³¡¼¥É¤ò°·¤¦¤¿¤á¤Î -¿¤¯¤Î¿·¤·¤¤ C ¥é¥¤¥Ö¥é¥ê´Ø¿ô¤¬ -²Ã¤¨¤é¤ì¤¿ ISO C90 µ¬³Ê¤Î 1994 Amendment 1 ¤ò¥«¥Ð¡¼¤·¤Æ¤¤¤ë¡£ -¤·¤«¤·¡¢¥ï¥¤¥Éʸ»ú¤ä¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤Î¥µ¥Ý¡¼¥È¤ò -¹¹¤Ë²þÁ±¤·¤¿ ISO C99 ¤Ï¡¢¤Þ¤À¥«¥Ð¡¼¤·¤Æ¤¤¤Ê¤¤¡£ +C プログラム言語についてのとても良い参考書である。 +第四版では、ワイド文字やマルチバイト文字エンコードを扱うための +多くの新しい C ライブラリ関数が +加えられた ISO C90 規格の 1994 Amendment 1 をカバーしている。 +しかし、ワイド文字やマルチバイト文字のサポートを +更に改善した ISO C99 は、まだカバーしていない。 .TP * .\"O Unicode Technical Reports. -Unicode µ»½Ñ¥ì¥Ý¡¼¥È¡£ +Unicode 技術レポート。 .RS http://www.unicode.org/unicode/reports/ .RE .TP * .\"O Markus Kuhn: UTF-8 and Unicode FAQ for UNIX/Linux. -Markus Kuhn: UNIX/Linux ¤Î¤¿¤á¤Î UTF-8 ¤È Unicode ¤Î FAQ¡£ +Markus Kuhn: UNIX/Linux のための UTF-8 と Unicode の FAQ。 .RS http://www.cl.cam.ac.uk/~mgk25/unicode.html @@ -486,8 +486,8 @@ http://www.cl.cam.ac.uk/~mgk25/unicode.html .\"O mailing list, which is the best place to look for advice on using .\"O Unicode under Linux. .I linux-utf8 -¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ò¹ØÆɤ¹¤ë¤¿¤á¤Î¾ðÊ󤬤¢¤ë¡£ -Linux ¤Ç Unicode ¤ò»È¤¦¾ì¹ç¤Î¥¢¥É¥Ð¥¤¥¹¤òõ¤¹¤Î¤Ë°ìÈÖÎɤ¤¾ì½ê¤Ç¤¢¤ë¡£ +メーリングリストを購読するための情報がある。 +Linux で Unicode を使う場合のアドバイスを探すのに一番良い場所である。 .RE .TP * @@ -496,21 +496,21 @@ Bruno Haible: Unicode HOWTO. ftp://ftp.ilog.fr/pub/Users/haible/utf8/Unicode-HOWTO.html .RE .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O When this man page was last revised, the GNU C Library support for .\"O .B UTF-8 .\"O locales was mature and XFree86 support was in an advanced state, but .\"O work on making applications (most notably editors) suitable for use in .\"O .B UTF-8 .\"O locales was still fully in progress. -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤òºÇ¸å¤Ë²þÄû¤·¤¿»þÅÀ¤Ç¡¢ -GNU C ¥é¥¤¥Ö¥é¥ê¤Î +このマニュアル・ページを最後に改訂した時点で、 +GNU C ライブラリの .B UTF-8 -¥µ¥Ý¡¼¥È¤Ï´°À®¤·¤Æ¤¤¤ë¡£ -XFree86 ¤Ë¤è¤ë¥µ¥Ý¡¼¥È¤Ï¿Ê¹ÔÃæ¤Ç¤¢¤ë¡£ +サポートは完成している。 +XFree86 によるサポートは進行中である。 .B UTF-8 -¥í¥±¡¼¥ë¤Ç²÷Ŭ¤Ë»È¤¨¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó -(¿¤¯¤Îͭ̾¤Ê¥¨¥Ç¥£¥¿) ¤ÎºîÀ®¤Ï¡¢¤Þ¤À¿Ê¹ÔÃæ¤Ç¤¢¤ë¡£ +ロケールで快適に使えるアプリケーション +(多くの有名なエディタ) の作成は、まだ進行中である。 .\"O Current general .\"O .B UCS .\"O support under Linux usually provides for CJK double-width characters @@ -518,23 +518,23 @@ XFree86 .\"O usually does not include support for scripts with right-to-left .\"O writing direction or ligature substitution requirements such as .\"O Hebrew, Arabic, or the Indic scripts. -Linux ¤Ç¤Î +Linux での .B UCS -¥µ¥Ý¡¼¥È¤Ç¤ÏÄ̾ï CJK ¤Î 2 ¥ï¥¤¥Éʸ»ú¤¬Ä󶡤µ¤ì¤ë¡£ -ñ½ã¤Ê½Å¤ÍÂǤÁ¤Ë¤è¤ë¹çÀ®Ê¸»ú¤¬Ä󶡤µ¤ì¤ë¾ì¹ç¤â¤¢¤ë¡£ -¤·¤«¤·¡¢±¦¤«¤éº¸¤Ø½ñ¤¯Ê¸»ú¤ä¥Ø¥Ö¥é¥¤Ê¸»ú¡¦¥¢¥é¥Ó¥¢Ê¸»ú¡¦¥¤¥ó¥É¸ì·Ïʸ»ú¤Ê¤É¤Î -¹ç»ú¤ÎÃÖ¤­´¹¤¨¤òɬÍפȤ¹¤ëʸ»ú¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +サポートでは通常 CJK の 2 ワイド文字が提供される。 +単純な重ね打ちによる合成文字が提供される場合もある。 +しかし、右から左へ書く文字やヘブライ文字・アラビア文字・インド語系文字などの +合字の置き換えを必要とする文字はサポートされていない。 .\"O These scripts are currently only .\"O supported in certain GUI applications (HTML viewers, word processors) .\"O with sophisticated text rendering engines. -¸½ºß¡¢¤³¤ì¤é¤Îʸ»ú¤ÏÀöÎý¤µ¤ì¤¿¥Æ¥­¥¹¥ÈÉÁ²è¥¨¥ó¥¸¥ó¤òÈ÷¤¨¤¿ -GUI ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó (HTML ¥Ó¥å¡¼¥¢¡¦¥ï¡¼¥É¥×¥í¥»¥Ã¥µ) ¤Ç¤Î¤ß -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +現在、これらの文字は洗練されたテキスト描画エンジンを備えた +GUI アプリケーション (HTML ビューア・ワードプロセッサ) でのみ +サポートされている。 .\"O .\" .SH AUTHOR -.\" .SH Ãø¼Ô +.\" .SH 著者 .\" Markus Kuhn .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR setlocale (3), .BR charsets (7), .BR utf-8 (7) diff --git a/draft/man7/units.7 b/draft/man7/units.7 index 9473b5f0..5ce2dfb8 100644 --- a/draft/man7/units.7 +++ b/draft/man7/units.7 @@ -27,23 +27,23 @@ .TH UNITS 7 2001-12-22 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O units, kilo, kibi, mega, mebi, giga, gibi \- decimal and binary prefixes -.SH ̾Á° -units, kilo, kibi, mega, mebi, giga, gibi \- 10 ¿Ê¤ª¤è¤Ó 2 ¿Ê¤ÎÀÜƬ¸ì +.SH 名前 +units, kilo, kibi, mega, mebi, giga, gibi \- 10 進および 2 進の接頭語 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .SS Decimal prefixes -.SS 10 ¿Ê¤ÎÀÜƬ¸ì +.SS 10 進の接頭語 .\"O The SI system of units uses prefixes that indicate powers of ten. .\"O A kilometer is 1000 meter, and a megawatt is 1000000 watt. .\"O Below the standard prefixes. -SI ñ°Ì·Ï¤Ç¤Ï 10 ¤ÎÎß¾è¤ò¼¨¤¹ÀÜƬ¸ì¤òÍѤ¤¤ë¡£ -¥­¥í¥á¡¼¥È¥ë¤Ï 1000 ¥á¡¼¥È¥ë¡¢¥á¥¬¥ï¥Ã¥È¤Ï 1000000 ¥ï¥Ã¥È¤Ç¤¢¤ë¡£ -¼¡¤Ëɸ½àŪ¤ÊÀÜƬ¸ì¤ò¼¨¤¹¡£ +SI 単位系では 10 の累乗を示す接頭語を用いる。 +キロメートルは 1000 メートル、メガワットは 1000000 ワットである。 +次に標準的な接頭語を示す。 .RS .TS l l l. .\"O Prefix Name Value -ÀÜƬ¸ì ̾Á° ÃÍ +接頭語 名前 値 .\"O y yocto 10^-24 = 0.000000000000000000000001 .\"O z zepto 10^-21 = 0.000000000000000000001 .\"O a atto 10^-18 = 0.000000000000000001 @@ -64,26 +64,26 @@ l l l. .\"O E exa 10^18 = 1000000000000000000 .\"O Z zetta 10^21 = 1000000000000000000000 .\"O Y yotta 10^24 = 1000000000000000000000000 -y ¥è¥¯¥È(yocto) 10^-24 = 0.000000000000000000000001 -z ¥¼¥×¥È(zepto) 10^-21 = 0.000000000000000000001 -a ¥¢¥È(atto) 10^-18 = 0.000000000000000001 -f ¥Õ¥§¥à¥È(femto) 10^-15 = 0.000000000000001 -p ¥Ô¥³(pico) 10^-12 = 0.000000000001 -n ¥Ê¥Î(nano) 10^-9 = 0.000000001 -u ¥Þ¥¤¥¯¥í(micro) 10^-6 = 0.000001 -m ¥ß¥ê(milli) 10^-3 = 0.001 -c ¥»¥ó¥Á(centi) 10^-2 = 0.01 -d ¥Ç¥·(deci) 10^-1 = 0.1 -da ¥Ç¥«(deka) 10^ 1 = 10 -h ¥Ø¥¯¥È(hecto) 10^ 2 = 100 -k ¥­¥í(kilo) 10^ 3 = 1000 -M ¥á¥¬(mega) 10^ 6 = 1000000 -G ¥®¥¬(giga) 10^ 9 = 1000000000 -T ¥Æ¥é(tera) 10^12 = 1000000000000 -P ¥Ú¥¿(peta) 10^15 = 1000000000000000 -E ¥¨¥¯¥µ(exa) 10^18 = 1000000000000000000 -Z ¥¼¥¿(zetta) 10^21 = 1000000000000000000000 -Y ¥è¥¿(yotta) 10^24 = 1000000000000000000000000 +y ヨクト(yocto) 10^-24 = 0.000000000000000000000001 +z ゼプト(zepto) 10^-21 = 0.000000000000000000001 +a アト(atto) 10^-18 = 0.000000000000000001 +f フェムト(femto) 10^-15 = 0.000000000000001 +p ピコ(pico) 10^-12 = 0.000000000001 +n ナノ(nano) 10^-9 = 0.000000001 +u マイクロ(micro) 10^-6 = 0.000001 +m ミリ(milli) 10^-3 = 0.001 +c センチ(centi) 10^-2 = 0.01 +d デシ(deci) 10^-1 = 0.1 +da デカ(deka) 10^ 1 = 10 +h ヘクト(hecto) 10^ 2 = 100 +k キロ(kilo) 10^ 3 = 1000 +M メガ(mega) 10^ 6 = 1000000 +G ギガ(giga) 10^ 9 = 1000000000 +T テラ(tera) 10^12 = 1000000000000 +P ペタ(peta) 10^15 = 1000000000000000 +E エクサ(exa) 10^18 = 1000000000000000000 +Z ゼタ(zetta) 10^21 = 1000000000000000000000 +Y ヨタ(yotta) 10^24 = 1000000000000000000000000 .TE .RE .\"O @@ -91,44 +91,44 @@ Y .\"O The symbol for micro is the Greek letter mu, often written u .\"O in an ASCII context where this Greek letter is not available. .\"O See also -¥Þ¥¤¥¯¥í¤Îµ­¹æ¤Ï¥®¥ê¥·¥ãʸ»ú¤Î¦Ì¤Ç¤¢¤ë¤¬¡¢ -ASCII ¤Ç¥Æ¥­¥¹¥È¤¬µ­½Ò¤µ¤ì¤Æ¤¤¤Æ¡¢¥®¥ê¥·¥ãʸ»ú¤¬»È¤¨¤Ê¤¤¾ì¹ç¤Ï -u ¤È½ñ¤«¤ì¤ë¤³¤È¤¬Â¿¤¤¡£ +マイクロの記号はギリシャ文字のμであるが、 +ASCII でテキストが記述されていて、ギリシャ文字が使えない場合は +u と書かれることが多い。 .sp .RS http://physics.nist.gov/cuu/Units/prefixes.html .RE .sp -¤â»²¹Í¤Ë¤·¤Æ¤Û¤·¤¤¡£ +も参考にしてほしい。 .\"O .SS Binary prefixes -.SS 2 ¿Ê¤ÎÀÜƬ¸ì +.SS 2 進の接頭語 .\"O The binary prefixes resemble the decimal ones, .\"O but have an additional \(aqi\(aq .\"O (and "Ki" starts with a capital \(aqK\(aq). .\"O The names are formed by taking the .\"O first syllable of the names of the decimal prefix with roughly the same .\"O size, followed by "bi" for "binary". -2 ¿Ê¤ÎÀÜƬ¸ì¤Ï 10 ¿Ê¤ÎÀÜƬ¸ì¤È»÷¤Æ¤¤¤ë¤¬¡¢¸å¤í¤Ë \(aqi\(aq ¤¬ÉÕ¤¯ -(¤Þ¤¿ "Ki" ¤Ë¤Ä¤¤¤Æ¤ÏÂçʸ»ú¤Î \(aqK\(aq) ¤Ç»Ï¤Þ¤ë)¡£ -̾Á°¤Ï¡¢¤À¤¤¤¿¤¤Æ±¤¸¤¯¤é¤¤¤Î 10 ¿ÊÀÜƬ¸ì¤ÎºÇ½é¤Î²»Àá¤Ë¡¢ -2 ¿Ê¿ô¤Ç¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë "bi" ¤ò­¤·¤¿¤â¤Î¤Ë¤Ê¤ë¡£ +2 進の接頭語は 10 進の接頭語と似ているが、後ろに \(aqi\(aq が付く +(また "Ki" については大文字の \(aqK\(aq) で始まる)。 +名前は、だいたい同じくらいの 10 進接頭語の最初の音節に、 +2 進数であることを意味する "bi" を足したものになる。 .RS .TS l l l. .\"O Prefix Name Value -ÀÜƬ¸ì ̾Á° ÃÍ +接頭語 名前 値 .\"O Ki kibi 2^10 = 1024 .\"O Mi mebi 2^20 = 1048576 .\"O Gi gibi 2^30 = 1073741824 .\"O Ti tebi 2^40 = 1099511627776 .\"O Pi pebi 2^50 = 1125899906842624 .\"O Ei exbi 2^60 = 1152921504606846976 -Ki ¥­¥Ó(kibi) 2^10 = 1024 -Mi ¥á¥Ó(mebi) 2^20 = 1048576 -Gi ¥®¥Ó(gibi) 2^30 = 1073741824 -Ti ¥Æ¥Ó(tebi) 2^40 = 1099511627776 -Pi ¥Ú¥Ó(pebi) 2^50 = 1125899906842624 -Ei ¥¨¥¯¥·¥Ó(exbi) 2^60 = 1152921504606846976 +Ki キビ(kibi) 2^10 = 1024 +Mi メビ(mebi) 2^20 = 1048576 +Gi ギビ(gibi) 2^30 = 1073741824 +Ti テビ(tebi) 2^40 = 1099511627776 +Pi ペビ(pebi) 2^50 = 1125899906842624 +Ei エクシビ(exbi) 2^60 = 1152921504606846976 .TE .RE .\"O @@ -138,18 +138,18 @@ Ei http://physics.nist.gov/cuu/Units/binary.html .RE .sp -¤â»²¹Í¤Ë¤·¤Æ¤Û¤·¤¤¡£ +も参考にしてほしい。 .\"O .SS Discussion -.SS ¹Í»¡ +.SS 考察 .\"O Before these binary prefixes were introduced, it was fairly .\"O common to use k=1000 and K=1024, just like b=bit, B=byte. .\"O Unfortunately, the M is capital already, and cannot be .\"O capitalized to indicate binary-ness. -¤³¤ì¤é¤Î 2 ¿Ê¤ÎÀÜƬ¸ì¤¬Æ³Æþ¤µ¤ì¤ëÁ°¤Ï¡¢ -k=1000 ¤È K=1024 ¤Î¤è¤¦¤Ë»È¤¦¤Î¤¬³ä¤ËÎɤ¯ÃΤé¤ì¤¿½¬´·¤À¤Ã¤¿ -(b=¥Ó¥Ã¥È¡¢B=¥Ð¥¤¥È ¤Î´Ø·¸¤Ë»÷¤Æ¤¤¤ë)¡£ -»ÄÇ°¤Ê¤¬¤é M ¤ÏºÇ½é¤«¤éÂçʸ»ú¤Ê¤Î¤Ç¡¢ -2 ¿Ê¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¤¿¤á¤Ë¤µ¤é¤ËÂçʸ»ú¤Ë¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +これらの 2 進の接頭語が導入される前は、 +k=1000 と K=1024 のように使うのが割に良く知られた習慣だった +(b=ビット、B=バイト の関係に似ている)。 +残念ながら M は最初から大文字なので、 +2 進であることを示すためにさらに大文字にすることはできなかった。 .\"O At first that didn't matter too much, since memory modules .\"O and disks came in sizes that were powers of two, so everyone @@ -161,17 +161,17 @@ k=1000 .\"O But then disk technology changed, and disk sizes became arbitrary numbers. .\"O After a period of uncertainty all disk manufacturers settled on the .\"O standard, namely k=1000, M=1000k, G=1000M. -Åö½é¤Ï¤³¤Î¤³¤È¤Ï¤¢¤Þ¤êÂ礭¤ÊÌäÂê¤Ç¤Ï¤Ê¤«¤Ã¤¿¡£ -¤Ê¤¼¤Ê¤é¥á¥â¥ê¥â¥¸¥å¡¼¥ë¤ä¥Ç¥£¥¹¥¯¤Ï 2 ¤ÎÎß¾è¤Ë¤Ê¤ë¤â¤Î¤À¤Ã¤¿¤Î¤Ç¡¢ -³§¤½¤Î¤è¤¦¤Ê¤È¤³¤í¤Ç¤Ï¡Ö¥­¥í¥Ð¥¤¥È¡×¤ò 1024 ¥Ð¥¤¥È¡¢ -¡Ö¥á¥¬¥Ð¥¤¥È¡×¤ò 1048576 ¥Ð¥¤¥È¤Ç¤¢¤ë¤È¤ß¤Ê¤·¤Æ¤¤¤¿¤«¤é¤Ç¤¢¤ë¡£ -ºÇ½é¤ÏÀÜƬ¸ì¤Î¡Ö¥­¥í¡×¤È¤«¡Ö¥á¥¬¡×¤òÛ£Ëæ¤Ë±çÍѤ·¤Æ¤¤¤¿¤Î¤À¤¬¡¢ -¤½¤Î¤¦¤Á¥³¥ó¥Ô¥å¡¼¥¿¤Ë´ØÏ¢¤¹¤ëÏÃÂê¤Ç¤Ï¡¢¤³¤Á¤é¤¬¡Ö¼ÂºÝ¤Î°ÕÌ£¡×¤Ë¤Ê¤Ã¤Æ¤¤¤Ã¤¿¡£ -¤·¤«¤·¤½¤Î¸å¥Ç¥£¥¹¥¯¤Î¥Æ¥¯¥Î¥í¥¸¡¼¤¬Âå¤ï¤ê¡¢ -¥Ç¥£¥¹¥¯¥µ¥¤¥º¤ÏǤ°Õ¤Î¿ôÃͤò¤È¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ -¤É¤Ã¤Á¤Ä¤«¤º¤Î»þ´ü¤¬¤·¤Ð¤é¤¯Â³¤¤¤¿¤¢¤È¡¢ -¥Ç¥£¥¹¥¯¤Î¥á¡¼¥«¡¼¤¹¤Ù¤Æ¤¬¡¢É¸½à¤ò»È¤¦¤³¤È¤Ë¹ç°Õ¤·¤¿¡£ -¤¹¤Ê¤ï¤Á k=1000, M=1000k, G=1000M ¤Ç¤¢¤ë¡£ +当初はこのことはあまり大きな問題ではなかった。 +なぜならメモリモジュールやディスクは 2 の累乗になるものだったので、 +皆そのようなところでは「キロバイト」を 1024 バイト、 +「メガバイト」を 1048576 バイトであるとみなしていたからである。 +最初は接頭語の「キロ」とか「メガ」を曖昧に援用していたのだが、 +そのうちコンピュータに関連する話題では、こちらが「実際の意味」になっていった。 +しかしその後ディスクのテクノロジーが代わり、 +ディスクサイズは任意の数値をとるようになった。 +どっちつかずの時期がしばらく続いたあと、 +ディスクのメーカーすべてが、標準を使うことに合意した。 +すなわち k=1000, M=1000k, G=1000M である。 .\"O The situation was messy: in the 14k4 modems, k=1000; in the 1.44MB .\"O .\" also common: 14.4k modem @@ -179,20 +179,20 @@ k=1000 .\"O In 1998 the IEC approved the standard .\"O that defines the binary prefixes given above, enabling people .\"O to be precise and unambiguous. -¾õ¶·¤Ï¤Ò¤É¤¯¤Ê¤Ã¤¿¡£14.4k ¥â¥Ç¥à¤Ç¤Ï k=1000, -1.44MB ¥Õ¥í¥Ã¥Ô¡¼¤Ç¤Ï M=1024000 ¤Ë¤Ê¤Ã¤¿¡£ -1998 ǯ¤Ë¡¢IEC ¤Ï¾åµ­¤Î¤è¤¦¤Ê 2 ¿ÊÍѤÎÀÜƬ¸ì¤ò¾µÇ§¤·¡¢ -¤³¤ì¤Ë¤è¤Ã¤Æξ¼Ô¤ò¤Ï¤Ã¤­¤ê¶èÊ̤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤Ã¤¿¡£ +状況はひどくなった。14.4k モデムでは k=1000, +1.44MB フロッピーでは M=1024000 になった。 +1998 年に、IEC は上記のような 2 進用の接頭語を承認し、 +これによって両者をはっきり区別することが可能になった。 .\"O Thus, today, MB = 1000000B and MiB = 1048576B. -¤·¤¿¤¬¤Ã¤Æº£Æü¤Ç¤Ï¡¢MB=1000000B ¤Ç¡¢MiB = 1048576B ¤Ê¤Î¤Ç¤¢¤ë¡£ +したがって今日では、MB=1000000B で、MiB = 1048576B なのである。 .\"O In the free software world programs are slowly .\"O being changed to conform. .\"O When the Linux kernel boots and says -¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¤ÎÀ¤³¦¤Ç¤â¡¢ -¥×¥í¥°¥é¥à¤¿¤Á¤Ï¤æ¤Ã¤¯¤ê¤È¤³¤ì¤é¤Ë½àµò¤·¤Æ¤­¤Æ¤¤¤ë¡£ -Linux ¥«¡¼¥Í¥ë¤Ï¡¢¥Ö¡¼¥È¤¹¤ë¤È¼¡¤Î¤è¤¦¤Ê¥á¥Ã¥»¡¼¥¸¤ò½Ð¤¹¡£ +フリーソフトウェアの世界でも、 +プログラムたちはゆっくりとこれらに準拠してきている。 +Linux カーネルは、ブートすると次のようなメッセージを出す。 .\"O .sp .RS @@ -203,4 +203,4 @@ hda: 120064896 sectors (61473 MB) w/2048KiB Cache .\"O .sp .\"O the MB are megabytes and the KiB are kibibytes. -MB ¤Ï¥á¥¬¥Ð¥¤¥È¤Ç¡¢KiB ¤Ï¥­¥Ó¥Ð¥¤¥È¤Ç¤¢¤ë¡£ +MB はメガバイトで、KiB はキビバイトである。 diff --git a/draft/man7/unix.7 b/draft/man7/unix.7 index 6e13ce94..ca17cf2c 100644 --- a/draft/man7/unix.7 +++ b/draft/man7/unix.7 @@ -21,25 +21,25 @@ .\" Updated 2005-12-26, Akihiro MOTOKI .\" Updated 2008-08-08, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD abstract namespace Ãê¾Ý̾Á°¶õ´Ö -.\"WORD anonymous socket ̾Á°Ìµ¤·¥½¥±¥Ã¥È -.\"WORD credential ¿®Ç¤¾õ -.\"WORD ancillary message Êä½õ¥á¥Ã¥»¡¼¥¸ -.\"WORD file descriptor ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +.\"WORD abstract namespace 抽象名前空間 +.\"WORD anonymous socket 名前無しソケット +.\"WORD credential 信任状 +.\"WORD ancillary message 補助メッセージ +.\"WORD file descriptor ファイルディスクリプタ .\" -.\" ÌõÃí: Ìõ¤¹ºÝ¤â Unix ¤Ï capitalize ¤·¤Æ¤ª¤¯¤³¤È¡£ -.\" LDP_man-pages 1.66¢ª2.01 ¤Ë¤ª¤¤¤Æ unix ¢ª Unix ¤ÎÊѹ¹¤¬¤¢¤ê¡¢ -.\" °Õ¿ÞŪ¤Êɽµ­¤È»×¤ï¤ì¤ë¡£ +.\" 訳注: 訳す際も Unix は capitalize しておくこと。 +.\" LDP_man-pages 1.66→2.01 において unix → Unix の変更があり、 +.\" 意図的な表記と思われる。 .\" .TH UNIX 7 2008-12-01 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O unix, AF_UNIX, AF_LOCAL \- Sockets for local .\"O interprocess communication -unix, AF_UNIX, AF_LOCAL \- ¥í¡¼¥«¥ë¤Ê -¥×¥í¥»¥¹´ÖÄÌ¿®ÍѤΥ½¥±¥Ã¥È +unix, AF_UNIX, AF_LOCAL \- ローカルな +プロセス間通信用のソケット .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include @@ -48,7 +48,7 @@ unix, AF_UNIX, AF_LOCAL \- .br .IB error " = socketpair(AF_UNIX, type, 0, int *" sv ");" .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .B AF_UNIX .\"O (also known as @@ -59,15 +59,15 @@ unix, AF_UNIX, AF_LOCAL \- .\"O or bound to a file system pathname (marked as being of type socket). .B AF_UNIX .RB ( AF_LOCAL -¤È¤â¸À¤ï¤ì¤ë) ¥½¥±¥Ã¥È¥Õ¥¡¥ß¥ê¡¼¤Ï¡¢Æ±¤¸¥Þ¥·¥ó¾å¤Ç¥×¥í¥»¥¹Æ±»Î¤¬ -¸úΨŪ¤ËÄÌ¿®¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ -ÅÁÅýŪ¤Ë¡¢Unix ¥½¥±¥Ã¥È¤Ï¡¢Ì¾Á°¤Ê¤·¤Ë¤â¤Ç¤­¤ë¤·¡¢ -(¥½¥±¥Ã¥È·¿¤Ç¤¢¤ë¤È°õ¤Î¤Ä¤¤¤¿) ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Ñ¥¹Ì¾¤Ë -·ë¤ÓÉÕ¤±¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +とも言われる) ソケットファミリーは、同じマシン上でプロセス同士が +効率的に通信するために用いられる。 +伝統的に、Unix ソケットは、名前なしにもできるし、 +(ソケット型であると印のついた) ファイルシステムのパス名に +結び付けることもできる。 .\"O Linux also supports an abstract namespace which is independent of the .\"O file system. -¤µ¤é¤Ë Linux ¤Ç¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë°Í¸¤·¤Ê¤¤ -Ãê¾Ý̾Á°¶õ´Ö (abstract namespace) ¤â¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ +さらに Linux では、ファイルシステムに依存しない +抽象名前空間 (abstract namespace) もサポートしている。 .\"O Valid types are: .\"O .BR SOCK_STREAM , @@ -80,30 +80,30 @@ unix, AF_UNIX, AF_LOCAL \- .\"O .BR SOCK_SEQPACKET , .\"O for a connection-oriented socket that preserves message boundaries .\"O and delivers messages in the order that they were sent. -.\" MOTOKI: ¸«¤ä¤¹¤¤¤è¤¦¤Ë .TP ·Á¼°¤ËÊѹ¹ -Í­¸ú¤Ê¥¿¥¤¥×¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë: +.\" MOTOKI: 見やすいように .TP 形式に変更 +有効なタイプは以下の通りである: .TP .B SOCK_STREAM -¥¹¥È¥ê¡¼¥à»Ø¸þ¤Î¥½¥±¥Ã¥È +ストリーム指向のソケット .TP .B SOCK_DGRAM -¥á¥Ã¥»¡¼¥¸¶­³¦¤òÊݸ¤¹¤ë¥Ç¡¼¥¿¥°¥é¥à»Ø¸þ¤Î¥½¥±¥Ã¥È -(¤Û¤È¤ó¤É¤Î Unix ¤Î¼ÂÁõ¤Ç¤Ï¡¢Unix ¥É¥á¥¤¥ó¡¦¥Ç¡¼¥¿¥°¥é¥à¡¦¥½¥±¥Ã¥È¤Ï -¾ï¤Ë¿®Íê¤Ç¤­¡¢¥Ç¡¼¥¿¥°¥é¥à¤ÎʤÓÂؤ¨¤Ï¹Ô¤ï¤Ê¤¤) +メッセージ境界を保存するデータグラム指向のソケット +(ほとんどの Unix の実装では、Unix ドメイン・データグラム・ソケットは +常に信頼でき、データグラムの並び替えは行わない) .TP .B SOCK_SEQPACKET -(Linux 2.6.4 °Ê¹ß¤ÇÍøÍѤǤ­¤ë) -¥á¥Ã¥»¡¼¥¸¶­³¦¤òÊݸ¤·¡¢Á÷¿®¤µ¤ì¤¿½ç½ø¤Ç¥á¥Ã¥»¡¼¥¸¤òÆϤ±¤ëÀܳ»Ø¸þ¥½¥±¥Ã¥È +(Linux 2.6.4 以降で利用できる) +メッセージ境界を保存し、送信された順序でメッセージを届ける接続指向ソケット .\"O Unix sockets support passing file descriptors or process credentials .\"O to other processes using ancillary data. -Unix ¥½¥±¥Ã¥È¤Ç¤Ï¡¢Êä½õ¥Ç¡¼¥¿¤ò»È¤Ã¤Æ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ä¥×¥í¥»¥¹¤Î¿®Ç¤¾õ (credential) ¤ò -Á÷¼õ¿®¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +Unix ソケットでは、補助データを使って +ファイルディスクリプタやプロセスの信任状 (credential) を +送受信することもできる。 .\"O .SS Address Format -.SS ¥¢¥É¥ì¥¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È +.SS アドレスのフォーマット .\"O A Unix domain socket address is represented in the following structure: -Unix ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤Î¥¢¥É¥ì¥¹¤Ï°Ê²¼¤Î¹½Â¤ÂΤÇɽ¸½¤µ¤ì¤ë¡£ +Unix ドメインソケットのアドレスは以下の構造体で表現される。 .in +4n .nf @@ -120,12 +120,12 @@ struct sockaddr_un { .\"O always contains .\"O .BR AF_UNIX . .I sun_family -¤Ë¤Ïɬ¤º +には必ず .B AF_UNIX -¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ +が入っている。 .\"O Three types of address are distinguished in this structure: -¤³¤Î¹½Â¤ÂÎ¤Ç¤Ï 3 ¼ïÎà¤Î¥¢¥É¥ì¥¹¤¬¶èÊ̤µ¤ì¤ë¡£ +この構造体では 3 種類のアドレスが区別される。 .IP * 3 .\"O .IR pathname : .\"O a Unix domain socket can be bound to a null-terminated file @@ -141,19 +141,19 @@ struct sockaddr_un { .\"O and .\"O .I sun_path .\"O contains the null-terminated pathname. -.IR "pathname (¥Ñ¥¹Ì¾)" : +.IR "pathname (パス名)" : .BR bind (2) -¤ò»È¤Ã¤Æ¡¢Unix ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤ò NULL ½ªÃ¼¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î -¥Ñ¥¹Ì¾¤Ë·ë¤ÓÉÕ¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使って、Unix ドメインソケットを NULL 終端されたファイルシステム上の +パス名に結び付けることができる。 .BR getsockname (2), .BR getpeername (2), .BR accept (2) -¤¬¥½¥±¥Ã¥È¤Î¥¢¥É¥ì¥¹¤òÊÖ¤¹ºÝ¤Ë¤Ï¡¢ -¤½¤ÎŤµ¤Ï +がソケットのアドレスを返す際には、 +その長さは .I "sizeof(sa_family_t) + strlen(sun_path) + 1" -¤Ç¤¢¤ê¡¢ +であり、 .I sun_path -¤Ë NULL ½ªÃ¼¤µ¤ì¤¿¥Ñ¥¹Ì¾¤¬³ÊǼ¤µ¤ì¤ë¡£ +に NULL 終端されたパス名が格納される。 .IP * .\"O .IR unnamed : .\"O A stream socket that has not been bound to a pathname using @@ -174,23 +174,23 @@ struct sockaddr_un { .\"O should not be inspected. .\"O .\" There is quite some variation across implementations: FreeBSD .\"O .\" says the length is 16 bytes, HP-UX 11 says it's zero bytes. -.IR "unnamed (̾Á°¤Ê¤·)" : +.IR "unnamed (名前なし)" : .BR bind (2) -¤ò»È¤Ã¤Æ¥Ñ¥¹Ì¾¤Ë·ë¤ÓÉÕ¤±¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¥¹¥È¥ê¡¼¥à·¿¤Î¥½¥±¥Ã¥È¤Ï -̾Á°¤ò»ý¤¿¤Ê¤¤¡£Æ±Íͤˡ¢ +を使ってパス名に結び付けることができないストリーム型のソケットは +名前を持たない。同様に、 .BR socketpair (2) -¤ÇºîÀ®¤µ¤ì¤ë 2 ¤Ä¤Î¥½¥±¥Ã¥È¤â̾Á°¤ò»ý¤¿¤Ê¤¤¡£ +で作成される 2 つのソケットも名前を持たない。 .BR getsockname (2), .BR getpeername (2), .BR accept (2) -¤¬Ì¾Á°¤Ê¤·¤Î¥½¥±¥Ã¥È¤Î¥¢¥É¥ì¥¹¤òÊÖ¤¹ºÝ¤Ë¤Ï¡¢ -¤½¤ÎŤµ¤Ï +が名前なしのソケットのアドレスを返す際には、 +その長さは .I "sizeof(sa_family_t)" -¤Ç¤¢¤ê¡¢ +であり、 .I sun_path -¤Ï¸¡ºº¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.\" ¼ÂÁõ¤´¤È¤Ë¤«¤Ê¤ê¤Î°ã¤¤¤¬Â¸ºß¤¹¤ë¡£ -.\" FreeBSD ¤Ç¤ÏŤµ¤Ï 16 ¥Ð¥¤¥È¤È¤Ê¤ê¡¢HP-UX ¤Ç¤ÏŤµ¤Ï 0 ¥Ð¥¤¥È¤È¤Ê¤ë¡£ +は検査すべきではない。 +.\" 実装ごとにかなりの違いが存在する。 +.\" FreeBSD では長さは 16 バイトとなり、HP-UX では長さは 0 バイトとなる。 .IP * .\"O .IR abstract : .\"O an abstract socket address is distinguished by the fact that @@ -201,14 +201,14 @@ struct sockaddr_un { .\"O define the "name" of the socket. .\"O (Null bytes in the name have no special significance.) .\"O The name has no connection with file system pathnames. -.IR "abstract (Ãê¾Ý)" : -Ãê¾Ý¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Ï¡¢ +.IR "abstract (抽象)" : +抽象ソケットアドレスは、 .I sun_path[0] -¤¬¥Ì¥ë¥Ð¥¤¥È ('\\0') ¤Ç¤¢¤ë¤³¤È¤«¤é¶èÊ̤Ǥ­¤ë¡£ +がヌルバイト ('\\0') であることから区別できる。 .I sun_path -¤Î»Ä¤ê¤ÎÁ´¥Ð¥¤¥È¤Ë¤è¤ê¥½¥±¥Ã¥È¤Î¡Ö̾Á°¡×¤¬ÄêµÁ¤µ¤ì¤ë -(̾Á°Ãæ¤Î¥Ì¥ë¥Ð¥¤¥È¤Ë¤ÏÆÃÊ̤ʰÕÌ£¤Ï¤Ê¤¤)¡£ -¤³¤Î̾Á°¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Ñ¥¹Ì¾¤È¤Ï²¿¤Î´Ø·¸¤â¤Ê¤¤¡£ +の残りの全バイトによりソケットの「名前」が定義される +(名前中のヌルバイトには特別な意味はない)。 +この名前はファイルシステムのパス名とは何の関係もない。 .\"O The socket's address in this namespace is given by the rest of the .\"O bytes in .\"O .IR sun_path . @@ -223,20 +223,20 @@ struct sockaddr_un { .\"O .I sun_path .\"O contains the abstract name. .\"O The abstract socket namespace is a nonportable Linux extension. -¤³¤Î̾Á°¶õ´Ö¤Ë¤ª¤±¤ë¥½¥±¥Ã¥È¤Î¥¢¥É¥ì¥¹¤Ï¡¢ +この名前空間におけるソケットのアドレスは、 .I sun_path -¤Î»Ä¤ê¤Î¥Ð¥¤¥È¤Çɽ¤µ¤ì¤ë¡£ +の残りのバイトで表される。 .BR getsockname (2), .BR getpeername (2), .BR accept (2) -¤¬Ãê¾Ý¥½¥±¥Ã¥È¤Î¥¢¥É¥ì¥¹¤òÊÖ¤¹ºÝ¤Ë¤Ï¡¢¤½¤ÎŤµ¤Ï +が抽象ソケットのアドレスを返す際には、その長さは .I "sizeof(struct sockaddr_un)" -¤Ç¤¢¤ê¡¢ +であり、 .I sun_path -¤ËÃê¾Ý̾Á°¶õ´Ö¤Î̾Á°¤¬³ÊǼ¤µ¤ì¤ë¡£ -¥½¥±¥Ã¥È¤ÎÃê¾Ý̾Á°¶õ´Ö¤Ï Linux ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ê¡¢°Ü¿¢À­¤Ï¤Ê¤¤¡£ +に抽象名前空間の名前が格納される。 +ソケットの抽象名前空間は Linux による拡張であり、移植性はない。 .\"O .SS Socket Options -.SS ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó +.SS ソケットオプション .\"O For historical reasons these socket options are specified with a .\"O .B SOL_SOCKET .\"O type even though they are @@ -249,19 +249,19 @@ struct sockaddr_un { .\"O by specifying .\"O .B SOL_SOCKET .\"O as the socket family. -Îò»ËŪ¤ÊÍýͳ¤Ë¤è¤ê¡¢¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Ï -¤¿¤È¤¨ +歴史的な理由により、これらのオプションは +たとえ .B AF_UNIX -¸ÇÍ­¤Î¥ª¥×¥·¥ç¥ó¤Ç¤¢¤Ã¤Æ¤â +固有のオプションであっても .B SOL_SOCKET -·¿¤Ç»ØÄꤹ¤ë¡£ -¥½¥±¥Ã¥È¥Õ¥¡¥ß¥ê¡¼¤È¤·¤Æ +型で指定する。 +ソケットファミリーとして .B SOL_SOCKET -¤ò»ØÄꤹ¤ë¤È¡¢ +を指定すると、 .BR setsockopt (2) -¤Ç¥ª¥×¥·¥ç¥ó¤¬ÀßÄê¤Ç¤­¡¢ +でオプションが設定でき、 .BR getsockopt (2) -¤Ç¼èÆÀ¤¬¤Ç¤­¤ë¡£ +で取得ができる。 .\" NAKANO added this TP .TP .B SO_PASSCRED @@ -270,17 +270,17 @@ struct sockaddr_un { .\"O When this option is set and the socket is not yet connected .\"O a unique name in the abstract namespace will be generated automatically. .\"O Expects an integer boolean flag. -Á÷¿®¥×¥í¥»¥¹¤ÎÊä½õ¥á¥Ã¥»¡¼¥¸¤È¤·¤Æ¿®Ç¤¾õ¤ò¼õ¿®¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Æ¡¢¤Þ¤À¥½¥±¥Ã¥È¤¬Àܳ¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¡¢ -Ãê¾Ý̾Á°¶õ´Ö¤Ë¾¤È½Å¤Ê¤é¤Ê¤¤Ì¾Á°¤¬¼«Æ°Åª¤ËÀ¸À®¤µ¤ì¤ë¡£ -¥Ö¡¼¥ëÀ°¿ôÃͤΥե饰¤ò¼è¤ë¡£ +送信プロセスの補助メッセージとして信任状を受信できるようにする。 +このオプションがセットされていて、まだソケットが接続されていないと、 +抽象名前空間に他と重ならない名前が自動的に生成される。 +ブール整数値のフラグを取る。 .\"O .SS Sockets API -.SS ¥½¥±¥Ã¥È API +.SS ソケット API .\"O The following paragraphs describe domain-specific details and .\"O unsupported features of the sockets API for Unix domain sockets on Linux. -¤³¤ÎÀá¤Ç¤Ï¡¢Linux ¤Î Unix ¥É¥á¥¤¥ó¡¦¥½¥±¥Ã¥È¤Ç¤Î¡¢ -¥É¥á¥¤¥ó¸ÇÍ­¤Î¾ÜºÙ»ÅÍͤȥ½¥±¥Ã¥È API ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤µ¡Ç½¤Ë -¤Ä¤¤¤ÆÀâÌÀ¤¹¤ë¡£ +この節では、Linux の Unix ドメイン・ソケットでの、 +ドメイン固有の詳細仕様とソケット API でサポートされていない機能に +ついて説明する。 .\"O Unix domain sockets do not support the transmission of .\"O out-of-band data (the @@ -289,14 +289,14 @@ struct sockaddr_un { .\"O .BR send (2) .\"O and .\"O .BR recv (2)). -Unix ¥É¥á¥¤¥ó¡¦¥½¥±¥Ã¥È¤Ç¤Ï¡¢ÂÓ°è³°¥Ç¡¼¥¿ (out-of-band data) ¤Î -Á÷¿® +Unix ドメイン・ソケットでは、帯域外データ (out-of-band data) の +送信 .RB ( send (2) -¤È +と .BR recv (2) -¤Î +の .B MSG_OOB -¥Õ¥é¥°) ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +フラグ) はサポートされていない。 .\"O The .\"O .BR send (2) @@ -304,7 +304,7 @@ Unix .\"O flag is not supported by Unix domain sockets. .BR send (2) .B MSG_MORE -¥Õ¥é¥°¤Ï Unix ¥É¥á¥¤¥ó¡¦¥½¥±¥Ã¥È¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +フラグは Unix ドメイン・ソケットではサポートされていない。 .\"O The use of .\"O .B MSG_TRUNC @@ -314,11 +314,11 @@ Unix .\"O .BR recv (2) .\"O is not supported by Unix domain sockets. .BR recv (2) -¤Î +の .I flags -°ú¤­¿ô¤Ç¤Î +引き数での .B MSG_TRUNC -¤Î»ÈÍÑ¤Ï Unix ¥É¥á¥¤¥ó¡¦¥½¥±¥Ã¥È¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +の使用は Unix ドメイン・ソケットではサポートされていない。 .\"O The .\"O .B SO_SNDBUF @@ -332,40 +332,40 @@ Unix .\"O .BR socket (7)) .\"O option value less 32 bytes used for overhead. .B SO_SNDBUF -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤Ï Unix ¥É¥á¥¤¥ó¡¦¥½¥±¥Ã¥È¤Ç¸ú²Ì¤ò»ý¤Ä¤¬¡¢ +ソケットオプションは Unix ドメイン・ソケットで効果を持つが、 .B SO_RCVBUF -¤Ï¸ú²Ì¤¬¤Ê¤¤¡£ -¥Ç¡¼¥¿¥°¥é¥à¡¦¥½¥±¥Ã¥È¤Ç¤Ï¡¢ +は効果がない。 +データグラム・ソケットでは、 .B SO_SNDBUF -¤ÎÃͤ¬½ÐÎϥǡ¼¥¿¥°¥é¥à¤Î¾å¸Â¥µ¥¤¥º¤È¤Ê¤ë¡£ -¼ÂºÝ¤Î¾å¸ÂÃͤϡ¢ +の値が出力データグラムの上限サイズとなる。 +実際の上限値は、 .B SO_SNDBUF -¥ª¥×¥·¥ç¥ó¤È¤·¤ÆÀßÄꤵ¤ì¤¿ÃͤΠ2ÇÜ +オプションとして設定された値の 2倍 .RB ( socket (7) -»²¾È) ¤«¤é¥ª¡¼¥Ð¥Ø¥Ã¥É¤È¤·¤Æ»ÈÍѤµ¤ì¤ë 32 ¥Ð¥¤¥È¤ò°ú¤¤¤¿ÃͤȤʤ롣 +参照) からオーバヘッドとして使用される 32 バイトを引いた値となる。 .\"O .SS Ancillary Messages -.SS Êä½õ¥á¥Ã¥»¡¼¥¸ +.SS 補助メッセージ .\"O Ancillary data is sent and received using .\"O .BR sendmsg (2) .\"O and .\"O .BR recvmsg (2). -Êä½õ¥Ç¡¼¥¿¤òÁ÷¼õ¤¹¤ë¤Ë¤Ï¡¢ +補助データを送受するには、 .BR sendmsg (2) -¤ä +や .BR recvmsg (2) -¤ò»ÈÍѤ¹¤ë¡£ +を使用する。 .\"O For historical reasons the ancillary message types listed below .\"O are specified with a .\"O .B SOL_SOCKET .\"O type even though they are .\"O .B AF_UNIX .\"O specific. -Îò»ËŪ¤ÊÍýͳ¤Ë¤è¤ê¡¢°Ê²¼¤Ë¼¨¤¹Êä½õ¥á¥Ã¥»¡¼¥¸¤Î·¿¤Ï -¤¿¤È¤¨ +歴史的な理由により、以下に示す補助メッセージの型は +たとえ .B AF_UNIX -¸ÇÍ­¤Î¤â¤Î¤Ç¤¢¤Ã¤Æ¤â +固有のものであっても .B SOL_SOCKET -·¿¤Ç»ØÄꤹ¤ë¡£ +型で指定する。 .\"O To send them set the .\"O .I cmsg_level .\"O field of the struct @@ -377,29 +377,29 @@ Unix .\"O field to the type. .\"O For more information see .\"O .BR cmsg (3). -¤³¤ì¤é¤òÁ÷¤ë¤Ë¤Ï¡¢¹½Â¤ÂÎ +これらを送るには、構造体 .I cmsghdr -¤Î +の .I cmsg_level -¥Õ¥£¡¼¥ë¥É¤Ë +フィールドに .B SOL_SOCKET -¤ò¥»¥Ã¥È¤·¡¢ +をセットし、 .I cmsg_type -¥Õ¥£¡¼¥ë¥É¤Ë¥¿¥¤¥×¤ò¥»¥Ã¥È¤¹¤ë¡£ -¾ÜºÙ¤Ï +フィールドにタイプをセットする。 +詳細は .BR cmsg (3) -¤ò¸«¤è¡£ +を見よ。 .TP .B SCM_RIGHTS .\"O Send or receive a set of open file descriptors from another process. .\"O The data portion contains an integer array of the file descriptors. .\"O The passed file descriptors behave as though they have been created with .\"O .BR dup (2). -¾¤Î¥×¥í¥»¥¹¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¥»¥Ã¥È¤òÁ÷¼õ¿®¤¹¤ë¡£ -¥Ç¡¼¥¿Éôʬ¤Ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÀ°¿ôÇÛÎó¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ -ÅϤµ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢¤¢¤¿¤«¤â +他のプロセスでオープンされたファイルディスクリプタのセットを送受信する。 +データ部分にファイルディスクリプタの整数配列が入っている。 +渡されたファイルディスクリプタは、あたかも .BR dup (2) -¤ÇÀ¸À®¤µ¤ì¤¿¤«¤Î¤è¤¦¤Ë¿¶¤ëÉñ¤¦¡£ +で生成されたかのように振る舞う。 .TP .B SCM_CREDENTIALS .\"O Send or receive Unix credentials. @@ -410,13 +410,13 @@ Unix .\"O Thus structure is defined in .\"O .I .\"O as follows: -Unix ¿®Ç¤¾õ¤òÁ÷¼õ¿®¤¹¤ë¡£¤³¤ì¤Ïǧ¾Ú¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¿®Ç¤¾õ¤Ï¡¢ +Unix 信任状を送受信する。これは認証に用いることができる。 +信任状は、 .I struct ucred -¤ÎÊä½õ¥á¥Ã¥»¡¼¥¸¤È¤·¤ÆÅϤµ¤ì¤ë¡£ -¤³¤Î¹½Â¤ÂÎ¤Ï +の補助メッセージとして渡される。 +この構造体は .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で以下のように定義されている。 .in +4n .nf @@ -432,16 +432,16 @@ struct ucred { .\"O .B _GNU_SOURCE .\"O feature test macro must be defined in order to obtain the definition .\"O of this structure. -glibc 2.8 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¹½Â¤ÂΤÎÄêµÁ¤òÆÀ¤ë¤¿¤á¤Ë¤Ïµ¡Ç½¸¡ºº¥Þ¥¯¥í +glibc 2.8 以降では、この構造体の定義を得るためには機能検査マクロ .B _GNU_SOURCE -¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を定義しなければならない。 .\"O The credentials which the sender specifies are checked by the kernel. .\"O A process with effective user ID 0 is allowed to specify values that do .\"O not match its own. -Á÷¿®Â¦¤¬»ØÄꤷ¤¿¿®Ç¤¾õ¤Ï¡¢¥«¡¼¥Í¥ë¤¬¥Á¥§¥Ã¥¯¤¹¤ë¡£ -¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤Ë¤Ï¡¢ -¼«Ê¬¼«¿È°Ê³°¤ÎÃͤò»ØÄꤹ¤ë»ö¤¬µö¤µ¤ì¤ë¡£ +送信側が指定した信任状は、カーネルがチェックする。 +実効ユーザー ID が 0 のプロセスには、 +自分自身以外の値を指定する事が許される。 .\"O The sender must specify its own process ID (unless it has the capability .\"O .BR CAP_SYS_ADMIN ), .\"O its user ID, effective user ID, or saved set-user-ID (unless it has @@ -449,51 +449,51 @@ glibc 2.8 .\"O and its group ID, effective group ID, or saved set-group-ID .\"O (unless it has .\"O .BR CAP_SETGID ). -Á÷¿®Â¦¤Ï°Ê²¼¤Î 3 ¤Ä¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -1) ¼«Ê¬¼«¿È¤Î¥×¥í¥»¥¹ ID +送信側は以下の 3 つを指定しなければならない。 +1) 自分自身のプロセス ID .RB ( CAP_SYS_ADMIN -¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç)¡¢ -2) ¼«Ê¬¼«¿È¤Î¥æ¡¼¥¶¡¼ ID ¤¢¤ë¤¤¤Ï¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤«Êݸ set-user-ID +権限を持っていない場合)、 +2) 自分自身のユーザー ID あるいは実効ユーザー ID か保存 set-user-ID .RB ( CAP_SETUID -¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç)¡¢ -3) ¼«Ê¬¼«¿È¤Î¥°¥ë¡¼¥× ID ¤¢¤ë¤¤¤Ï¼Â¹Ô¥°¥ë¡¼¥× ID ¤«Êݸ set-group-ID +権限を持っていない場合)、 +3) 自分自身のグループ ID あるいは実行グループ ID か保存 set-group-ID .RB ( CAP_SETGID -¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç)¡£ +を持っていない場合)。 .\"O To receive a .\"O .I struct ucred .\"O message the .\"O .B SO_PASSCRED .\"O option must be enabled on the socket. .I struct ucred -¥á¥Ã¥»¡¼¥¸¤ò¼õ¿®¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¥½¥±¥Ã¥È¤ËÂФ· +メッセージを受信するためには、ソケットに対し .B SO_PASSCRED -¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤·¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +オプションを有効にしなくてはならない。 .\"O .SH ERRORS -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EADDRINUSE .\"O Selected local address is already taken or file system socket .\"O object already exists. -ÁªÂò¤·¤¿¥½¥±¥Ã¥È¤¬´û¤ËÍѤ¤¤é¤ì¤Æ¤¤¤¿¡£¤Þ¤¿¤Ï¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥½¥±¥Ã¥È¥ª¥Ö¥¸¥§¥¯¥È¤¬´û¤Ë¸ºß¤·¤Æ¤¤¤¿¡£ +選択したソケットが既に用いられていた。または、 +ファイルシステムのソケットオブジェクトが既に存在していた。 .TP .B ECONNREFUSED .\"O .BR connect (2) .\"O called with a socket object that isn't listening. .\"O This can happen when .\"O the remote socket does not exist or the filename is not a socket. -listen ¾õÂ֤ˤʤ¤¥½¥±¥Ã¥È¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ·¤Æ +listen 状態にないソケットオブジェクトに対して .BR connect (2) -¤¬¸Æ¤Ð¤ì¤¿¡£¥ê¥â¡¼¥È¥½¥±¥Ã¥È¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¡¢ -¥Õ¥¡¥¤¥ë̾¤¬¥½¥±¥Ã¥È¤Ç¤Ï¤Ê¤«¤Ã¤¿¡¢¤Ê¤É¤Î¤È¤­¤Ëµ¯¤³¤ë¡£ +が呼ばれた。リモートソケットが存在していなかった、 +ファイル名がソケットではなかった、などのときに起こる。 .TP .B ECONNRESET .\"O Remote socket was unexpectedly closed. -¥ê¥â¡¼¥È¥½¥±¥Ã¥È¤¬Í½´ü¤·¤Ê¤¤¤«¤¿¤Á¤Ç¥¯¥í¡¼¥º¤µ¤ì¤¿¡£ +リモートソケットが予期しないかたちでクローズされた。 .TP .B EFAULT .\"O User memory address was not valid. -¥æ¡¼¥¶¡¼¥á¥â¥ê¥¢¥É¥ì¥¹¤¬ÉÔÀµ¡£ +ユーザーメモリアドレスが不正。 .TP .B EINVAL .\"O Invalid argument passed. @@ -502,42 +502,42 @@ listen .\"O .I sun_type .\"O field of passed addresses or the socket being in an .\"O invalid state for the applied operation. -ÅϤ·¤¿°ú¿ô¤¬ÉÔÀµ¡£¤è¤¯¤¢¤ë¸¶°ø¤Ï¡¢ -ÅϤ·¤¿¥¢¥É¥ì¥¹¤Î +渡した引数が不正。よくある原因は、 +渡したアドレスの .I sun_type -¥Õ¥£¡¼¥ë¥É¤Ë AF_UNIX ¤òÀßÄꤷ¤Ê¤«¤Ã¤¿¡¢ -¹Ô¤ª¤¦¤È¤·¤¿Áàºî¤ËÂФ·¤Æ¥½¥±¥Ã¥È¤Î¾õÂÖ¤¬Í­¸ú¤Ç¤Ï¤Ê¤«¤Ã¤¿¡¢¤Ê¤É¡£ +フィールドに AF_UNIX を設定しなかった、 +行おうとした操作に対してソケットの状態が有効ではなかった、など。 .TP .B EISCONN .\"O .BR connect (2) .\"O called on an already connected socket or a target address was .\"O specified on a connected socket. -´û¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¥½¥±¥Ã¥È¤ËÂФ·¤Æ +既に接続されているソケットに対して .BR connect (2) -¤¬¸Æ¤Ð¤ì¤¿¡£¤Þ¤¿¤Ï¡¢»ØÄꤷ¤¿¥¿¡¼¥²¥Ã¥È¥¢¥É¥ì¥¹¤¬ -´û¤ËÀܳºÑ¤ß¤Î¥½¥±¥Ã¥È¤À¤Ã¤¿¡£ +が呼ばれた。または、指定したターゲットアドレスが +既に接続済みのソケットだった。 .TP .B ENOMEM .\"O Out of memory. -¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£ +メモリが足りない。 .TP .B ENOTCONN .\"O Socket operation needs a target address, but the socket is not connected. -¥½¥±¥Ã¥ÈÁàºî¤Ë¥¿¡¼¥²¥Ã¥È¥¢¥É¥ì¥¹¤¬É¬ÍפÀ¤¬¡¢ -¤³¤Î¥½¥±¥Ã¥È¤ÏÀܳ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +ソケット操作にターゲットアドレスが必要だが、 +このソケットは接続されていない。 .TP .B EOPNOTSUPP .\"O Stream operation called on non-stream oriented socket or tried to .\"O use the out-of-band data option. -¥¹¥È¥ê¡¼¥à»Ø¸þ¤Ç¤Ê¤¤¥½¥±¥Ã¥È¤ËÂФ·¤Æ¥¹¥È¥ê¡¼¥àÁàºî¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¡£ -¤Þ¤¿¤ÏÂÓ°è³°¥Ç¡¼¥¿¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤è¤¦¤È¤·¤¿¡£ +ストリーム指向でないソケットに対してストリーム操作が呼び出された。 +または帯域外データオプションを用いようとした。 .TP .B EPERM .\"O The sender passed invalid credentials in the .\"O .IR "struct ucred" . -Á÷¿®¼Ô¤¬ +送信者が .I struct ucred -¤ËÉÔÀµ¤Ê¿®Ç¤¾õ¤òÅϤ·¤¿¡£ +に不正な信任状を渡した。 .TP .B EPIPE .\"O Remote socket was closed on a stream socket. @@ -550,56 +550,56 @@ listen .\"O .BR sendmsg (2) .\"O or .\"O .BR recvmsg (2). -¥ê¥â¡¼¥È¥½¥±¥Ã¥È¤¬¥¹¥È¥ê¡¼¥à¥½¥±¥Ã¥È¾å¤Ç¥¯¥í¡¼¥º¤µ¤ì¤¿¡£ -²Äǽ¤Ê¾ì¹ç¤Ï +リモートソケットがストリームソケット上でクローズされた。 +可能な場合は .B SIGPIPE -¤âƱ»þ¤ËÁ÷¤é¤ì¤ë¡£¤³¤ì¤òÈò¤±¤ë¤Ë¤Ï +も同時に送られる。これを避けるには .B MSG_NOSIGNAL -¥Õ¥é¥°¤ò +フラグを .BR sendmsg (2) -¤ä +や .BR recvmsg (2) -¤ËÅϤ¹¡£ +に渡す。 .TP .B EPROTONOSUPPORT .\"O Passed protocol is not AF_UNIX. -ÅϤµ¤ì¤¿¥×¥í¥È¥³¥ë¤¬ AF_UNIX ¤Ç¤Ê¤¤¡£ +渡されたプロトコルが AF_UNIX でない。 .TP .B EPROTOTYPE .\"O Remote socket does not match the local socket type .\"O .RB ( SOCK_DGRAM .\"O vs. .\"O .BR SOCK_STREAM ) -¥ê¥â¡¼¥È¥½¥±¥Ã¥È¤È¥í¡¼¥«¥ë¥½¥±¥Ã¥È¤Î¥¿¥¤¥×¤¬°ìÃפ·¤Æ¤¤¤Ê¤«¤Ã¤¿ +リモートソケットとローカルソケットのタイプが一致していなかった .RB ( SOCK_DGRAM -¤È -.BR SOCK_STREAM )¡£ +と +.BR SOCK_STREAM )。 .TP .B ESOCKTNOSUPPORT .\"O Unknown socket type. -̤ÃΤΥ½¥±¥Ã¥È¥¿¥¤¥×¡£ +未知のソケットタイプ。 .PP .\"O Other errors can be generated by the generic socket layer or .\"O by the file system while generating a file system socket object. .\"O See the appropriate manual pages for more information. -¾¤Ë¤âÈÆÍѤΥ½¥±¥Ã¥ÈÁؤǥ¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¤ê¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ë¥½¥±¥Ã¥È¥ª¥Ö¥¸¥§¥¯¥È¤òºî¤í¤¦¤È¤·¤¿¾ì¹ç¤Ë -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë¤³¤È¤¬¤¢¤ë¡£ -¤½¤ì¤¾¤ì¤Î¾ÜºÙ¤ÏŬÀÚ¤Ê man ¥Ú¡¼¥¸¤ò»²¾È¤¹¤ë¤³¤È¡£ +他にも汎用のソケット層でエラーが起こったり、 +ファイルシステム上にソケットオブジェクトを作ろうとした場合に +ファイルシステムのエラーが起こることがある。 +それぞれの詳細は適切な man ページを参照すること。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O .B SCM_CREDENTIALS .\"O and the abstract namespace were introduced with Linux 2.2 and should not .\"O be used in portable programs. .B SCM_CREDENTIALS -¤ÈÃê¾Ý̾Á°¶õ´Ö¤Ï¡¢Linux 2.2 ¤ÇƳÆþ¤µ¤ì¤¿¡£ -°Ü¿¢À­¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï»È¤¦¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +と抽象名前空間は、Linux 2.2 で導入された。 +移植性が必要なプログラムでは使うべきではない。 .\"O (Some BSD-derived systems also support credential passing, .\"O but the implementation details differ.) -(BSD ͳÍè¤Î¥·¥¹¥Æ¥à¤ÎÃæ¤Ë¤â¿®Ç¤¾õ¤ÎÁ÷¼õ¿®¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤â¤Î¤¬¤¢¤ë¤¬¡¢ -¤½¤Î¼ÂÁõ¤Î¾ÜºÙ¤Ï¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë) +(BSD 由来のシステムの中にも信任状の送受信をサポートしているものがあるが、 +その実装の詳細はシステムによって異なる) .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O In the Linux implementation, sockets which are visible in the .\"O file system honor the permissions of the directory they are in. .\"O Their owner, group and their permissions can be changed. @@ -610,32 +610,32 @@ listen .\"O ignore permissions for Unix sockets. .\"O Portable programs should not rely on .\"O this feature for security. -Linux ¤Î¼ÂÁõ¤Ç¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤«¤é¸«¤¨¤ë¥½¥±¥Ã¥È¤Ï¡¢ -¤½¤ì¤é¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Ë½¾¤¦¡£ -¥½¥±¥Ã¥È¤Î½êÍ­¼Ô¡¢¥°¥ë¡¼¥×¡¢¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ÏÊѹ¹¤Ç¤­¤ë¡£ -¿·¤·¤¤¥½¥±¥Ã¥È¤òºî¤ë¤È¤­¡¢ºî¤í¤¦¤È¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ·¤Æ -¥×¥í¥»¥¹¤¬½ñ¤­¹þ¤ß¤È¸¡º÷ (¼Â¹Ô) ¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ºîÀ®¤Ë¼ºÇÔ¤¹¤ë¡£ -¥½¥±¥Ã¥È¥ª¥Ö¥¸¥§¥¯¥È¤ËÀܳ¤¹¤ë¤Ë¤Ï¡¢ read/write ¸¢¸Â¤¬É¬ÍפǤ¢¤ë¡£ -¤³¤ÎÆ°ºî¤Ï¡¢Â¿¤¯¤Î BSD ͳÍè¤Î¥·¥¹¥Æ¥à¤È¤Ï°Û¤Ê¤Ã¤Æ¤¤¤ë -(BSD ¤Ç¤Ï Unix ¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤Ï¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ò̵»ë¤¹¤ë)¡£ -°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ -¥»¥­¥å¥ê¥Æ¥£¤ò¤³¤Î»ÅÍͤ˰͸¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +Linux の実装では、ファイルシステム上から見えるソケットは、 +それらが置かれているディレクトリのパーミッションに従う。 +ソケットの所有者、グループ、パーミッションは変更できる。 +新しいソケットを作るとき、作ろうとするディレクトリに対して +プロセスが書き込みと検索 (実行) 権限を持っていなければ、作成に失敗する。 +ソケットオブジェクトに接続するには、 read/write 権限が必要である。 +この動作は、多くの BSD 由来のシステムとは異なっている +(BSD では Unix ソケットに対してはパーミッションを無視する)。 +移植性の必要なプログラムでは、 +セキュリティをこの仕様に依存してはならない。 .\"O Binding to a socket with a filename creates a socket .\"O in the file system that must be deleted by the caller when it is no .\"O longer needed (using .\"O .BR unlink (2)). -¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤷ¤Æ¥½¥±¥Ã¥È¤Ë¥Ð¥¤¥ó¥É¤¹¤ë¤È¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¥½¥±¥Ã¥È¤¬À¸À®¤µ¤ì¤ë¡£ -¤³¤ì¤ÏɬÍפʤ¯¤Ê¤Ã¤¿¤È¤­¤Ë¸Æ¤Ó¤À¤·¤¿¥æ¡¼¥¶¡¼¤¬ºï½ü¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ +ファイル名を指定してソケットにバインドすると、 +ファイルシステムにソケットが生成される。 +これは必要なくなったときに呼びだしたユーザーが削除しなければならない .RB ( unlink (2) -¤òÍѤ¤¤ë)¡£ +を用いる)。 .\"O The usual Unix close-behind semantics apply; the socket can be unlinked .\"O at any time and will be finally removed from the file system when the last .\"O reference to it is closed. -Unix ¤ÇÄ̾ï»È¤ï¤ì¤ë¡ÖÇظå¤ÇÊĤ¸¤ëÊý¼°¡×¤¬Å¬ÍѤµ¤ì¤ë¡£ -¥½¥±¥Ã¥È¤Ï¤¤¤Ä¤Ç¤â unlink ¤¹¤ë¤³¤È¤¬¤Ç¤­¡¢ºÇ¸å¤Î»²¾È¤¬ -¥¯¥í¡¼¥º¤µ¤ì¤¿¤È¤­¤Ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤«¤éºï½ü¤µ¤ì¤ë¡£ +Unix で通常使われる「背後で閉じる方式」が適用される。 +ソケットはいつでも unlink することができ、最後の参照が +クローズされたときにファイルシステムから削除される。 .\"O To pass file descriptors or credentials over a .\"O .BR SOCK_STREAM , @@ -646,24 +646,24 @@ Unix .\"O .BR recvmsg (2) .\"O call. .B SOCK_STREAM -¾å¤Ç¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ä¿®Ç¤¾õ¤òÅϤ¹¤¿¤á¤Ë¤Ï¡¢Æ±¤¸ +上でファイルディスクリプタや信任状を渡すためには、同じ .BR sendmsg (2) -¤ä +や .BR recvmsg (2) -¥³¡¼¥ë¤ÇÊä½õ¥Ç¡¼¥¿°Ê³°¤Î¥Ç¡¼¥¿¤ò¾¯¤Ê¤¯¤È¤â -1 ¥Ð¥¤¥ÈÁ÷¿®/¼õ¿®¤¹¤ëɬÍפ¬¤¢¤ë¡£ +コールで補助データ以外のデータを少なくとも +1 バイト送信/受信する必要がある。 .\"O Unix domain stream sockets do not support the notion of out-of-band data. -Unix ¥É¥á¥¤¥ó¤Î¥¹¥È¥ê¡¼¥à¡¦¥½¥±¥Ã¥È¤Ç¤Ï¡¢ -ÂÓ°è³°¥Ç¡¼¥¿¤Î³µÇ°¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Ê¤¤¡£ +Unix ドメインのストリーム・ソケットでは、 +帯域外データの概念はサポートされない。 .\"O .SH EXAMPLE -.SH Îã +.SH 例 .\"O See .\"O .BR bind (2). .BR bind (2) -»²¾È¡£ +参照。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR recvmsg (2), .BR sendmsg (2), .BR socket (2), diff --git a/draft/man7/uri.7 b/draft/man7/uri.7 index 916d8def..556497c2 100644 --- a/draft/man7/uri.7 +++ b/draft/man7/uri.7 @@ -47,15 +47,15 @@ .\" Japanese Version Copyright (c) 2000 NAKANO Takeo all rights reserved. .\" Translated San 12 Mar 2000 by NAKANO Takeo .\" -.\"WORD: generated file (KDE ¤Î) À¸À®¥Õ¥¡¥¤¥ë +.\"WORD: generated file (KDE の) 生成ファイル .\" .TH URI 7 2000-03-14 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O uri, url, urn \- uniform resource identifier (URI), including a URL or URN -.SH ̾Á° -uri, url, urn \- uniform resource identifier (URI), URL ¤È URN ¤â´Þ¤à. +.SH 名前 +uri, url, urn \- uniform resource identifier (URI), URL と URN も含む. .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .nf .HP 0.2i URI = [ absoluteURI | relativeURI ] [ "#" fragment ] @@ -76,7 +76,7 @@ absolute_path = "/" path_segments relative_path = relative_segment [ absolute_path ] .fi .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .PP .\"O A Uniform Resource Identifier (URI) is a short string of characters .\"O identifying an abstract or physical resource (for example, a web page). @@ -88,15 +88,15 @@ relative_path = relative_segment [ absolute_path ] .\"O that must remain globally unique and persistent even when .\"O the resource ceases to exist or becomes unavailable. Uniform Resource Identifier (URI) -¤ÏÃê¾ÝŪ¡¦ÊªÍýŪ¤Ê¥ê¥½¡¼¥¹ (web ¥Ú¡¼¥¸¤Ê¤É) -¤ò¼±Ê̤¹¤ë¤¿¤á¤Îû¤¤Ê¸»úÎó¤Ç¤¢¤ë¡£ -Uniform Resource Locator (URL) ¤Ï URI ¤Î°ì¼ï¤Ç¡¢ -¥ê¥½¡¼¥¹¤Î̾Á°¤Ê¤É¤Î°À­¤Ç¤Ç¤Ï¤Ê¤¯¡¢ -¤½¤Î¥ê¥½¡¼¥¹¤ËÂбþ¤¹¤ë¥¢¥¯¥»¥¹¥á¥«¥Ë¥º¥à¤òÄ̤·¤Æ¥ê¥½¡¼¥¹¤ò»ØÄꤹ¤ë -(¤Ä¤Þ¤ê¥Í¥Ã¥È¥ï¡¼¥¯¾å¤Î¡Ö¾ì½ê (location)¡×¤ò»ØÄꤹ¤ë)¡£ -Uniform Resource Name (URN) ¤Ï URI ¤Î°ì¼ï¤Ç¡¢ -¤³¤ì¤ÏÂоݤΥ꥽¡¼¥¹¤¬ÇÑ´þ¤µ¤ì¤¿¤êÍøÍѤǤ­¤Ê¤¯¤Ê¤Ã¤¿¾ì¹ç¤Ë¤â¡¢ -¥°¥í¡¼¥Ð¥ë¤Ë¾¤È½Å¤Ê¤ë¤³¤È¤Ê¤¯±Ê³¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は抽象的・物理的なリソース (web ページなど) +を識別するための短い文字列である。 +Uniform Resource Locator (URL) は URI の一種で、 +リソースの名前などの属性でではなく、 +そのリソースに対応するアクセスメカニズムを通してリソースを指定する +(つまりネットワーク上の「場所 (location)」を指定する)。 +Uniform Resource Name (URN) は URI の一種で、 +これは対象のリソースが廃棄されたり利用できなくなった場合にも、 +グローバルに他と重なることなく永続しなければならない。 .PP .\"O URIs are the standard way to name hypertext link destinations .\"O for tools such as web browsers. @@ -104,11 +104,11 @@ Uniform Resource Name (URN) .\"O is also a URI). .\"O Many people use the term URL loosely as a synonym for URI .\"O (though technically URLs are a subset of URIs). -URI ¤Ï¡¢ web ¥Ö¥é¥¦¥¶¤Ê¤É¤Î¥Ä¡¼¥ë¤Ç -¥Ï¥¤¥Ñ¡¼¥Æ¥­¥¹¥È¥ê¥ó¥¯¤Î¥ê¥ó¥¯Àè¤ò»ØÄꤹ¤ë»þ¤Îɸ½àŪ¤ÊÊýË¡¤Ç¤¢¤ë¡£ -ʸ»úÎó "http://www.kernelnotes.org" ¤Ï URL ¤Ç¤¢¤ë (½¾¤Ã¤Æ -URI ¤Ç¤â¤¢¤ë)¡£Â¿¤¯¤Î¿Í¡¹¤Ï¡¢ URL ¤È¤¤¤¦¸ÀÍÕ¤ò¤Û¤Ü URI ¤Î -ƱµÁ¸ì¤È¤·¤Æ»È¤Ã¤Æ¤¤¤ë (¤·¤«¤·µ»½ÑŪ¤Ë¤Ï URL ¤Ï URI ¤Î¥µ¥Ö¥»¥Ã¥È¤Ç¤¢¤ë)¡£ +URI は、 web ブラウザなどのツールで +ハイパーテキストリンクのリンク先を指定する時の標準的な方法である。 +文字列 "http://www.kernelnotes.org" は URL である (従って +URI でもある)。多くの人々は、 URL という言葉をほぼ URI の +同義語として使っている (しかし技術的には URL は URI のサブセットである)。 .PP .\"O URIs can be absolute or relative. .\"O An absolute identifier refers to a resource independent of @@ -125,29 +125,29 @@ URI .\"O precede such segments with ./ (e.g., "./this:that"). .\"O Note that descendants of MS-DOS (e.g., Microsoft Windows) replace .\"O devicename colons with the vertical bar ("|") in URIs, so "C:" becomes "C|". -URI ¤ÏÀäÂÐŪ¤Ë¤âÁêÂÐŪ¤Ë¤â»ØÄê¤Ç¤­¤ë¡£ -ÀäÂÐŪ¤Ê»ØÄê¤Ï¡¢¥ê¥½¡¼¥¹¤ò¥³¥ó¥Æ¥¯¥¹¥È¤Ë°Í¸¤·¤Ê¤¤¤«¤¿¤Á¤Ç»²¾È¤¹¤ë¡£ -ÁêÂÐŪ¤Ê»ØÄê¤Ï¡¢¥ê¥½¡¼¥¹¤ò¸½ºß¤Î¥³¥ó¥Æ¥¯¥¹¥È¤«¤é¤Îº¹°Û¤Ë¤è¤Ã¤Æµ­½Ò¤¹¤ë¡£ -ÁêÂХѥ¹»²¾È¤Ç¤Ï¡¢ "." ¤ª¤è¤Ó ".." ¤À¤±¤Î¥Ñ¥¹Éôʬ (path segment) -¤ÏÆÃÊ̤ʰÕÌ£¤ò»ý¤Á¡¢ -¤½¤ì¤¾¤ì¡Ö¸½ºß¤Î³¬ÁØ¥ì¥Ù¥ë¡×¤ª¤è¤Ó¡Ö¸½ºß¤Î³¬Áؤΰì¤Ä¾å¤Î¥ì¥Ù¥ë¡× -¤È¤·¤Æ°·¤ï¤ì¤ë (UNIX É÷¤Î¥·¥¹¥Æ¥à¤ÈƱÍÍ)¡£ -¥³¥í¥óʸ»ú¤ò´Þ¤à¥Ñ¥¹Éôʬ¤ÏÁêÂÐ URI ¥Ñ¥¹¤ÎÀèƬ¤ËÍѤ¤¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤ -(¤Ä¤Þ¤ê "this:that" ¤Ï¥À¥á)¡£¥¹¥­¡¼¥à̾¤È¶èÊ̤Ǥ­¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ -¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï ./ ¤òÁ°ÃÖ¤¹¤ë¤³¤È (¤Ä¤Þ¤ê "./this:that" ¤È¤¹¤ë)¡£ -MS-DOS ¤Î»Ò¹ (Microsoft Windows ¤Ê¤É) ¤Ï¡¢ -¥Ç¥Ð¥¤¥¹Ì¾¤Î¥³¥í¥ó¤ò URI ¤Ç¤Ï¿âľ¥Ð¡¼ ("|") ¤ËÃÖ¤­´¹¤¨¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ "C:" ¤Ï "C|" ¤È¤Ê¤ë¡£ +URI は絶対的にも相対的にも指定できる。 +絶対的な指定は、リソースをコンテクストに依存しないかたちで参照する。 +相対的な指定は、リソースを現在のコンテクストからの差異によって記述する。 +相対パス参照では、 "." および ".." だけのパス部分 (path segment) +は特別な意味を持ち、 +それぞれ「現在の階層レベル」および「現在の階層の一つ上のレベル」 +として扱われる (UNIX 風のシステムと同様)。 +コロン文字を含むパス部分は相対 URI パスの先頭に用いることはできない +(つまり "this:that" はダメ)。スキーム名と区別できないからである。 +このような場合には ./ を前置すること (つまり "./this:that" とする)。 +MS-DOS の子孫 (Microsoft Windows など) は、 +デバイス名のコロンを URI では垂直バー ("|") に置き換える。 +したがって "C:" は "C|" となる。 .PP .\"O A fragment identifier, if included, refers to a particular named portion .\"O (fragment) of a resource; text after a \(aq#\(aq identifies the fragment. .\"O A URI beginning with \(aq#\(aq refers to that fragment in the current resource. -¥Õ¥é¥°¥á¥ó¥È»ØÄê»Ò (fragment identifier) ¤Ï¡¢(¤â¤·´Þ¤Þ¤ì¤Æ¤¤¤ì¤Ð) -¥ê¥½¡¼¥¹Ãæ¤Î̾Á°ÉÕ¤±¤µ¤ì¤¿ÆÃÄê¤ÎÉôʬ (¥Õ¥é¥°¥á¥ó¥È) ¤ò»²¾È¤¹¤ë¡£ -\(aq#\(aq »ØÄê»Ò°Ê¹ß¤Îʸ»úÎ󤬥ե饰¥á¥ó¥È¤ò»ØÄꤹ¤ë¡£ -\(aq#\(aq ¤Ç»Ï¤Þ¤ë URI ¤Ï¸½ºß¤Î¥ê¥½¡¼¥¹Ãæ¤Î¥Õ¥é¥°¥á¥ó¥È¤ò»²¾È¤¹¤ë¡£ +フラグメント指定子 (fragment identifier) は、(もし含まれていれば) +リソース中の名前付けされた特定の部分 (フラグメント) を参照する。 +\(aq#\(aq 指定子以降の文字列がフラグメントを指定する。 +\(aq#\(aq で始まる URI は現在のリソース中のフラグメントを参照する。 .\"O .SS USAGE -.S ÍøÍÑË¡ +.S 利用法 .\"O There are many different URI schemes, each with specific .\"O additional rules and meanings, but they are intentionally made to be .\"O as similar as possible. @@ -155,14 +155,14 @@ MS-DOS .\"O permit the authority to be the following format, called here an .\"O .I ip_server .\"O (square brackets show what's optional): -URI ¤Î¥¹¥­¡¼¥à¤Ë¤Ï¿§¡¹¤Ê¼ïÎब¤¢¤ê¡¢ -¤½¤ì¤¾¤ì¸ÇÍ­¤Î¥ë¡¼¥ë¤ä°ÕÌ£¤¬Äɲ䵤ì¤Æ¤¤¤ë¡£ -¤·¤«¤·¤Ç¤­¤ë¤À¤±Åý°ì¤·¤¿¤â¤Î¤Ë¤·¤è¤¦¤È¤¤¤¦ÅØÎϤâ¤Ê¤µ¤ì¤Æ¤¤¤ë¡£ -Î㤨¤Ð¡¢Â¿¤¯¤Î URL ¥¹¥­¡¼¥à¤Ï¡Öµ¡´Ø (authority)¡×¤ËÂФ·¤Æ°Ê²¼¤Î½ñ¼° -(¤³¤³¤Ç¤Ï +URI のスキームには色々な種類があり、 +それぞれ固有のルールや意味が追加されている。 +しかしできるだけ統一したものにしようという努力もなされている。 +例えば、多くの URL スキームは「機関 (authority)」に対して以下の書式 +(ここでは .I ip_server -¤È¸Æ¤Ö¤³¤È¤Ë¤¹¤ë) -¤òµö¤·¤Æ¤¤¤ë (³Ñ³ç¸ÌÆâÉô¤Ï¾Êά²Äǽ)¡£ +と呼ぶことにする) +を許している (角括弧内部は省略可能)。 .HP .IR "ip_server = " [ user " [ : " password " ] @ ] " host " [ : " port ] .PP @@ -181,31 +181,31 @@ URI .\"O If the URL supplies a username but no password, and the remote .\"O server requests a password, the program interpreting the URL .\"O should request one from the user. -¤³¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¤Ï¡¢¥æ¡¼¥¶Ì¾¡¢¥æ¡¼¥¶Ì¾+¥Ñ¥¹¥ï¡¼¥É¤ò»ØÄê¤Ç¤­¤ë¡£ -¥Ý¡¼¥ÈÈÖ¹æ¤òÄɲ乤뤳¤È¤â²Äǽ¤Ç¤¢¤ë¡£ +このフォーマットには、ユーザ名、ユーザ名+パスワードを指定できる。 +ポート番号を追加することも可能である。 .I host -¤Ï¥Û¥¹¥È¥³¥ó¥Ô¥å¡¼¥¿¤Î̾Á°¤Ç¡¢ DNS ¤ÇÄêµÁ¤µ¤ì¤ë̾Á°¤« IP ¥¢¥É¥ì¥¹ -(¥Ô¥ê¥ª¥É¤Ç¶èÀÚ¤é¤ì¤¿¿ô»ú) ¤Ç»ØÄꤹ¤ë¡£¤·¤¿¤¬¤Ã¤Æ URI +はホストコンピュータの名前で、 DNS で定義される名前か IP アドレス +(ピリオドで区切られた数字) で指定する。したがって URI -¤Ï¡¢¥Û¥¹¥È xyz.com ¤Ë fred ¤È¤·¤Æ (¥Ñ¥¹¥ï¡¼¥É¤ò»È¤Ã¤Æ) -¥Ý¡¼¥È 8080 ¤ò»È¤Ã¤Æ¥í¥°¥¤¥ó¤¹¤ë¡£ -¥Ñ¥¹¥ï¡¼¥É¤Ï²Äǽ¤Ê¤é URI ¤Ë¤Ï´Þ¤á¤Ê¤¤¤Û¤¦¤¬Îɤ¤¤À¤í¤¦¡£ -¥Ñ¥¹¥ï¡¼¥É¤òľ½ñ¤­¤¹¤ë¤ÈÍÍ¡¹¤Ê¥»¥­¥å¥ê¥Æ¥£¾å¤Î¥ê¥¹¥¯¤¬À¸¤¸¤ë¤«¤é¤Ç¤¢¤ë¡£ -URL ¤Ë¥æ¡¼¥¶Ì¾¤À¤±¤òÍ¿¤¨¡¢¥Ñ¥¹¥ï¡¼¥É¤òÍ¿¤¨¤Ê¤¤¾ì¹ç¤Ï¡¢ -¥ê¥â¡¼¥È¥µ¡¼¥Ð¤Ï¥Ñ¥¹¥ï¡¼¥É¤òÍ׵ᤷ¤Æ¤¯¤ë¡£ -URL ¤ò²ò¼á¤·¤¿¥×¥í¥°¥é¥à¤¬¡¢¥æ¡¼¥¶¤Ë¤³¤ÎÆþÎϤòÂ¥¤¹¤³¤È¤Ë¤Ê¤í¤¦¡£ +は、ホスト xyz.com に fred として (パスワードを使って) +ポート 8080 を使ってログインする。 +パスワードは可能なら URI には含めないほうが良いだろう。 +パスワードを直書きすると様々なセキュリティ上のリスクが生じるからである。 +URL にユーザ名だけを与え、パスワードを与えない場合は、 +リモートサーバはパスワードを要求してくる。 +URL を解釈したプログラムが、ユーザにこの入力を促すことになろう。 .PP .\"O Here are some of the most common schemes in use on UNIX-like systems .\"O that are understood by many tools. .\"O Note that many tools using URIs also have internal schemes or specialized .\"O schemes; see those tools' documentation for information on those schemes. -°Ê²¼¤Ë¡¢ UNIX É÷¤Î¥·¥¹¥Æ¥à¤ÇÈó¾ï¤ËÎɤ¯ÍѤ¤¤é¤ì¤Æ¤ª¤ê¡¢ -¿¤¯¤Î¥Ä¡¼¥ë¤¬Íý²ò¤¹¤ë¥¹¥­¡¼¥à¤ò¼¨¤¹¡£ -URI ¤ò»È¤¦¥Ä¡¼¥ë¤Î¿¤¯¤Ç¤Ï¡¢ÆâÉô¥¹¥­¡¼¥à¤äÆüì¤Ê¥¹¥­¡¼¥à¤â -»È¤¨¤ë¤³¤È¤¬Â¿¤¤¡£¤½¤Î¤è¤¦¤Ê¥¹¥­¡¼¥à¤Ë´Ø¤·¤Æ¤Ï¥Ä¡¼¥ë¤Î¥É¥­¥å¥á¥ó¥È¤ò¸«¤ë¤³¤È¡£ +以下に、 UNIX 風のシステムで非常に良く用いられており、 +多くのツールが理解するスキームを示す。 +URI を使うツールの多くでは、内部スキームや特殊なスキームも +使えることが多い。そのようなスキームに関してはツールのドキュメントを見ること。 .PP .\"O .B "http \- Web (HTTP) server" -.B "http \- Web (HTTP) ¥µ¡¼¥Ð" +.B "http \- Web (HTTP) サーバ" .PP .RI http:// ip_server / path .br @@ -218,12 +218,12 @@ URI .\"O its content is returned, otherwise, a list of the files in the current .\"O directory (with appropriate links) is generated and returned. .\"O An example is . -¤³¤ì¤Ï web (HTTP) ¥µ¡¼¥Ð¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Î URL ¤Ç¤¢¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Î¥Ý¡¼¥È¤Ï 80¡£¥Ñ¥¹¤¬¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤·¤Æ¤¤¤ë¤È¤­¤Ï¡¢ -ÊÖ¤µ¤ì¤ë¾ðÊó¤Ï web ¥µ¡¼¥Ð¤¬ÁªÂò¤¹¤ë¡£Ä̾ï¤Ï¡¢ -"index.html" ¤ä "index.htm" ¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¤¬¤¢¤ì¤Ð¡¢¤½¤ÎÆâÍƤ¬ÊÖ¤µ¤ì¤ë¡£ -¤Ê¤±¤ì¤Ð¡¢¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤¬ (ŬÀڤʥê¥ó¥¯¤È¤È¤â¤Ë) À¸À®¤µ¤ì¤Æ -ÊÖ¤µ¤ì¤ë¡£Îã¤È¤·¤Æ¤Ï ¤Ê¤É¡£ +これは web (HTTP) サーバにアクセスするための URL である。 +デフォルトのポートは 80。パスがディレクトリを参照しているときは、 +返される情報は web サーバが選択する。通常は、 +"index.html" や "index.htm" のようなファイルがあれば、その内容が返される。 +なければ、カレントディレクトリのリストが (適切なリンクとともに) 生成されて +返される。例としては など。 .PP .\"O A query can be given in the archaic "isindex" format, consisting of a .\"O word or phrase and not including an equal sign (=). @@ -231,12 +231,12 @@ URI .\"O query entries of the form .\"O .IR key = value .\"O separated by the ampersand character (&). -Ì䤤¹ç¤ï¤» (query) ¤ò¡¢¸Å¤¤ "isindex" ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¤è¤Ã¤ÆÁ÷¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¤³¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ïñ¸ì¤Þ¤¿¤Ï¥Õ¥ì¡¼¥º¤«¤é¤Ê¤ê¡¢Åù¹æ (=) ¤Ï´Þ¤Þ¤Ê¤¤¡£ -¤è¤êŤ¤ "GET" ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤âÌ䤤¹ç¤ï¤»¤Ï¹Ô¤¨¤ë¡£ -¤³¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¤Ï¡¢°ì¤Ä°Ê¾å¤ÎÌ䤤¹ç¤ï¤»¥¨¥ó¥È¥ê¤¬ +問い合わせ (query) を、古い "isindex" フォーマットによって送ることもできる。 +このフォーマットは単語またはフレーズからなり、等号 (=) は含まない。 +より長い "GET" フォーマットでも問い合わせは行える。 +このフォーマットには、一つ以上の問い合わせエントリが .IR key = value -¤È¤¤¤¦·Á¼°¤Ç´Þ¤Þ¤ì¤ë¡£¤½¤ì¤¾¤ì¤Î¥¨¥ó¥È¥ê¤Ï¥¢¥ó¥Ñ¥µ¥ó¥É (&) ¤Ç¶èÀÚ¤é¤ì¤ë¡£ +という形式で含まれる。それぞれのエントリはアンパサンド (&) で区切られる。 .\"O Note that .\"O .I key .\"O can be repeated more than once, though it's up to the web server @@ -250,23 +250,23 @@ URI .\"O interaction mechanism (called POST) which does .\"O not include the data in the URI. .I key -¤ÏÊ£¿ô¸Ä»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¡£¤·¤«¤·¤½¤ì¤Ë°ÕÌ£¤¬¤¢¤ë¤«¤É¤¦¤«¤Ï -web ¥µ¡¼¥Ð¤È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤¬·è¤á¤ë¡£ -HTML/XML/SGML ¤È GET Ì䤤¹ç¤ï¤»·Á¼°¤Î´Ö¤Ë¤Ï¡¢ÉÔ¹¬¤Ê´Ø·¸¤¬¤¢¤ë¡£ -°ì¤Ä°Ê¾å¤Î¥­¡¼¤Î´Þ¤Þ¤ì¤ë URI ¤¬ SGML/XML ʸ½ñ (HTML ¤â¤½¤¦) -¤ËËä¤á¤³¤Þ¤ì¤ëºÝ¤Ë¤Ï¡¢¥¢¥ó¥Ñ¥µ¥ó¥É (&) ¤Ï & ¤È½ñ¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Á´¤Æ¤ÎÌ䤤¹ç¤ï¤»¤¬¤³¤Î·Á¼°¤ò»È¤¦¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -¥Õ¥©¡¼¥à¤¬Ä¹¤¯¤Ê¤ë¤È URI ¤ËÆþ¤ì¤ë¤Ë¤ÏŤ¹¤®¤ë¤«¤é¡¢ -Ê̤ÎÄÌ¿®¥á¥«¥Ë¥º¥à (POST ¤È¸Æ¤Ð¤ì¤ë) ¤¬ÍѤ¤¤é¤ì¤ë¡£ -POST ¤Ç¤Ï URI ¤Ë¤Ï¥Ç¡¼¥¿¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ +は複数個指定することもできる。しかしそれに意味があるかどうかは +web サーバとアプリケーションプログラムが決める。 +HTML/XML/SGML と GET 問い合わせ形式の間には、不幸な関係がある。 +一つ以上のキーの含まれる URI が SGML/XML 文書 (HTML もそう) +に埋めこまれる際には、アンパサンド (&) は & と書かなければならない。 +全ての問い合わせがこの形式を使うわけではない。 +フォームが長くなると URI に入れるには長すぎるから、 +別の通信メカニズム (POST と呼ばれる) が用いられる。 +POST では URI にはデータは含まれない。 .\"O See the Common Gateway Interface specification at .\"O for more information. -¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï¡¢ - ¤Ë¤¢¤ë -Common Gateway Interface ¤Î»ÅÍͽñ¤ò¸«¤è¡£ +より詳しい情報は、 + にある +Common Gateway Interface の仕様書を見よ。 .PP .\"O .B "ftp \- File Transfer Protocol (FTP)" -.B "ftp \- ¥Õ¥¡¥¤¥ëžÁ÷¥×¥í¥È¥³¥ë (FTP)" +.B "ftp \- ファイル転送プロトコル (FTP)" .PP .RI ftp:// ip_server / path .PP @@ -277,15 +277,15 @@ Common Gateway Interface .\"O Internet email address. .\"O An example is .\"O . -¤³¤ì¤Ï¥Õ¥¡¥¤¥ëžÁ÷¥×¥í¥È¥³¥ë (FTP) ¤òÄ̤·¤Æ¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Î -URL ¤Ç¤¢¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Î (À©¸æÍÑ) ¥Ý¡¼¥È¤Ï 21 ¤Ç¤¢¤ë¡£ -¥æ¡¼¥¶Ì¾¤¬¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢¥æ¡¼¥¶Ì¾ anonymous ¤¬Í¿¤¨¤é¤ì¤ë¡£ -¤½¤·¤Æ¤½¤Î¾ì¹ç¤Ë¤Ï¡¢¥¯¥é¥¤¥¢¥ó¥È¤Î¿¤¯¤ÏÍ׵ᤷ¤¿¿Í¤Î -¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò¥Ñ¥¹¥ï¡¼¥É¤È¤·¤ÆÍ¿¤¨¤ë¡£ -Îã¤È¤·¤Æ¤Ï ¤Ê¤É¡£ +これはファイル転送プロトコル (FTP) を通してファイルにアクセスするための +URL である。デフォルトの (制御用) ポートは 21 である。 +ユーザ名がない場合には、ユーザ名 anonymous が与えられる。 +そしてその場合には、クライアントの多くは要求した人の +インターネットメールアドレスをパスワードとして与える。 +例としては など。 .PP .\"O .B "gopher \- Gopher server" -.B "gofer \- Gofer ¥µ¡¼¥Ð" +.B "gofer \- Gofer サーバ" .PP .RI gopher:// ip_server / "gophertype selector" .br @@ -302,12 +302,12 @@ URL .\"O The entire path may also be empty, in .\"O which case the delimiting "/" is also optional and the gophertype .\"O defaults to "1". -¥Ç¥Õ¥©¥ë¥È¤Î gopher ¥Ý¡¼¥È¤Ï 70 ¤Ç¤¢¤ë¡£ +デフォルトの gopher ポートは 70 である。 .I gophertype -¤Ï 1 ʸ»ú¤«¤é¤Ê¤ë¥Õ¥£¡¼¥ë¥É¤Ç¡¢ -URL ¤¬»²¾È¤·¤Æ¤¤¤ë Gopher ¤Î¥ê¥½¡¼¥¹¥¿¥¤¥×¤ò¼¨¤¹¡£ -¥Ñ¥¹Á´ÂΤ¬¶õ¤Ç¤¢¤Ã¤Æ¤â¤è¤¯¡¢¤½¤Î¾ì¹ç¤Ï¶èÀÚ¤ê¤Î "/" ¤â¾Êά¤Ç¤­¤ë¡£ -¤³¤Î¤È¤­ gophertype ¤Î¥Ç¥Õ¥©¥ë¥È¤Ï "1" ¤Ë¤Ê¤ë¡£ +は 1 文字からなるフィールドで、 +URL が参照している Gopher のリソースタイプを示す。 +パス全体が空であってもよく、その場合は区切りの "/" も省略できる。 +このとき gophertype のデフォルトは "1" になる。 .PP .\"O .I selector .\"O is the Gopher selector string. @@ -316,13 +316,13 @@ URL .\"O any octets except 09 hexadecimal (US-ASCII HT or tab), 0A hexadecimal .\"O (US-ASCII character LF), and 0D (US-ASCII character CR). .I selector -¤Ï Gopher ¥»¥ì¥¯¥¿Ê¸»úÎó¤Ç¤¢¤ë¡£Gopher ¥×¥í¥È¥³¥ë¤Ç¤Ï¡¢ -Gopher ¥»¥ì¥¯¥¿Ê¸»úÎó¤Ï¥ª¥¯¥Æ¥Ã¥Èʸ»ú¤«¤é¤Ê¤ê¡¢ -16¿Ê¿ô¤Î 09 (US-ASCII ¤Î HT ¤Þ¤¿¤Ï tab)¡¢ 0A (US-ASCII ¤Î LF ʸ»ú)¡¢ -0D (US-ASCII ¤Î CR ʸ»ú) °Ê³°¤Ê¤é¤É¤ó¤Ê¥ª¥¯¥Æ¥Ã¥È¤â»ØÄê¤Ç¤­¤ë¡£ +は Gopher セレクタ文字列である。Gopher プロトコルでは、 +Gopher セレクタ文字列はオクテット文字からなり、 +16進数の 09 (US-ASCII の HT または tab)、 0A (US-ASCII の LF 文字)、 +0D (US-ASCII の CR 文字) 以外ならどんなオクテットも指定できる。 .PP .\"O .B "mailto \- Email address" -.B "mailto \- ÅŻҥ᡼¥ë¥¢¥É¥ì¥¹" +.B "mailto \- 電子メールアドレス" .PP .RI mailto: email-address .PP @@ -333,16 +333,16 @@ Gopher .\"O for more information on the correct format of an email address. .\"O Note that any % character must be rewritten as %25. .\"O An example is . -¤³¤ì¤ÏÅŻҥ᡼¥ë¥¢¥É¥ì¥¹¤Ç¡¢Ä̾ï +これは電子メールアドレスで、通常 .IR name @ hostname -¤È¤¤¤¦·Á¼°¤ò¤È¤ë¡£ÅŻҥ᡼¥ë¥¢¥É¥ì¥¹¤ÎÀµ¤·¤¤¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë´Ø¤¹¤ë -¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï +という形式をとる。電子メールアドレスの正しいフォーマットに関する +より詳しい情報は .BR mailaddr (7) -¤ò¸«¤è¡£ % ʸ»ú¤Ï¤¹¤Ù¤Æ %25 ¤È½ñ¤­Ä¾¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤ËÃí°Õ¡£ -Îã¤È¤·¤Æ¤Ï ¤Ê¤É¡£ +を見よ。 % 文字はすべて %25 と書き直さなければならないことに注意。 +例としては など。 .PP .\"O .B "news \- Newsgroup or News message" -.B "news \- ¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×¡¦¥Ë¥å¡¼¥¹¥á¥Ã¥»¡¼¥¸" +.B "news \- ニュースグループ・ニュースメッセージ" .PP .RI news: newsgroup-name .br @@ -356,11 +356,11 @@ Gopher .\"O to "all available news groups". .\"O An example is . .I newsgroup-name -¤Ï¥Ô¥ê¥ª¥É¤Ç¶èÀÚ¤é¤ì¤¿³¬ÁØŪ¤Ê̾Á°¤Ç¤¢¤ë¡£Î㤨¤Ð -"comp.infosystems.www.misc" ¤Ê¤É¡£ - ¤¬ "*" (¤Ä¤Þ¤ê ) ¤Î¾ì¹ç¤Ë¤Ï¡¢ -¡Ö»²¾È¤Ç¤­¤ëÁ´¤Æ¤Î¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×¡×¤Î°ÕÌ£¤Ë¤Ê¤ë¡£ -Îã¤È¤·¤Æ¤Ï ¤Ê¤É¡£ +はピリオドで区切られた階層的な名前である。例えば +"comp.infosystems.www.misc" など。 + が "*" (つまり ) の場合には、 +「参照できる全てのニュースグループ」の意味になる。 +例としては など。 .PP .\"O A .\"O .I message-id @@ -374,18 +374,18 @@ Gopher .\"O A message identifier may be distinguished from a news group name by the .\"O presence of the "@" character. .I message-id -¤Ï +は .UR http://www.ietf.org/rfc/rfc1036.txt IETF RFC\ 1036 .UE -¤Î Message-ID ¤«¤é¡¢°Ï¤ß¤Î "<" ¤È ">" ¤ò¼è¤Ã¤¿¤â¤Î¤ËÂбþ¤¹¤ë¡£ -Message-ID ¤Ï +の Message-ID から、囲みの "<" と ">" を取ったものに対応する。 +Message-ID は .IR unique @ full_domain_name -¤È¤¤¤¦·Á¼°¤ò¤È¤ë¡£¥á¥Ã¥»¡¼¥¸¤Î»ØÄê¤Ë¤Ï "@" ʸ»ú¤¬´Þ¤Þ¤ì¤ë¤Î¤Ç¡¢ -¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×¤Î̾Á°¤È¶èÊ̤Ǥ­¤ë¤À¤í¤¦¡£ +という形式をとる。メッセージの指定には "@" 文字が含まれるので、 +ニュースグループの名前と区別できるだろう。 .PP .\"O .B "telnet \- Telnet login" -.B "telnet \- telnet ¥í¥°¥¤¥ó" +.B "telnet \- telnet ログイン" .PP .RI telnet:// ip_server / .PP @@ -394,12 +394,12 @@ Message-ID .\"O The final "/" character may be omitted. .\"O The default port is 23. .\"O An example is . -Telnet URL ¥¹¥­¡¼¥à¤ÏÂÐÏÃŪ¤Ê¥Æ¥­¥¹¥È¥µ¡¼¥Ó¥¹¤Ë Telnet ¥×¥í¥È¥³¥ë¤ò -Ä̤·¤Æ¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ºÇ¸å¤Î "/" ʸ»ú¤Ï¾Êά¤·¤Æ¤è¤¤¡£ -Îã¤È¤·¤Æ¤Ï ¤Ê¤É¡£ +Telnet URL スキームは対話的なテキストサービスに Telnet プロトコルを +通してアクセスするために用いられる。最後の "/" 文字は省略してよい。 +例としては など。 .PP .\"O .B "file \- Normal file" -.B "file \- Ä̾ï¤Î¥Õ¥¡¥¤¥ë" +.B "file \- 通常のファイル" .PP .RI file:// ip_server / path_segments .br @@ -421,22 +421,22 @@ Telnet URL .\"O .BR glob (7) .\"O and .\"O .BR glob (3)). -¤³¤ì¤Ï¥í¡¼¥«¥ë¤ËľÀÜ¥¢¥¯¥»¥¹¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¤ò¼¨¤¹¡£ -Æüì¤Ê¥±¡¼¥¹¤È¤·¤Æ¡¢ +これはローカルに直接アクセスできるファイルを示す。 +特殊なケースとして、 .I host -¤Ë¤Ï "localhost" ¤È¤¤¤¦Ê¸»úÎó¤òÍѤ¤¤¿¤ê¡¢¶õʸ»ú¤Ë¤·¤Æ¤â¤è¤¤¡£ -¤³¤ì¤Ï¡ÖURI ¤¬²ò¼á¤µ¤ì¤¿¥Þ¥·¥ó¡×¤È¤ß¤Ê¤µ¤ì¤ë¡£ -path ¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Î¾ì¹ç¤Ï¡¢¥Ó¥å¡¼¥¢¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤ÎÆâÍƤò -¥ê¥ó¥¯¤òÄ¥¤Ã¤¿¤«¤¿¤Á¤Çɽ¼¨¤¹¤ë¤È¤è¤¤¤À¤í¤¦¡£ -¤·¤«¤·¸½ºß¤Ï¡¢¤Þ¤ÀÁ´¤Æ¤Î¥Ó¥å¡¼¥¢¤¬¤³¤ÎÆ°ºî¤ò¤¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -KDE ¤ÏÀ¸À®¥Õ¥¡¥¤¥ë (generated file) ¤ò URL -¤Î·Á¼°¤Ç¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -Í¿¤¨¤é¤ì¤¿¥Õ¥¡¥¤¥ë¤¬¸«ÉÕ¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ -¥Õ¥¡¥¤¥ë̾¤ò¥°¥í¥Ö¤Ë¤è¤Ã¤ÆŸ³«¤¹¤ë¤ÈÎɤ¤¤«¤â¤·¤ì¤Ê¤¤ +には "localhost" という文字列を用いたり、空文字にしてもよい。 +これは「URI が解釈されたマシン」とみなされる。 +path がディレクトリの場合は、ビューアはディレクトリの内容を +リンクを張ったかたちで表示するとよいだろう。 +しかし現在は、まだ全てのビューアがこの動作をするわけではない。 +KDE は生成ファイル (generated file) を URL +の形式でサポートしている。 +与えられたファイルが見付からなかった場合は、 +ファイル名をグロブによって展開すると良いかもしれない .RB ( glob (7) -¤ª¤è¤Ó +および .BR glob (3) -¤ò¸«¤è)¡£ +を見よ)。 .PP .\"O The second format (e.g., ) .\"O is a correct format for referring to @@ -451,20 +451,20 @@ KDE .\"O specify the scheme at all; use a relative address like <../test.txt>, .\"O which has the side-effect of being scheme-independent. .\"O An example of this scheme is . -Æó¤Ä¤á¤Î½ñ¼° (Î㤨¤Ð ) ¤â¥í¡¼¥«¥ë¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë -Àµ¤·¤¤¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤¢¤ë¡£¤·¤«¤·¸Å¤¤É¸½à¤Ç¤Ï¤³¤Î½ñ¼°¤òµö¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¤Î¤Ç¡¢ -¤³¤ì¤ò URI ¤È¤·¤Æǧ¼±¤·¤Ê¤¤¥×¥í¥°¥é¥à¤â¸ºß¤¹¤ë¡£ -¤è¤êÈÆÍÑŪ¤Êʸˡ¤Ï¡¢¥µ¡¼¥Ð̾¤Ë¶õʸ»ú¤òÍѤ¤¤ë¤â¤Î¡¢ -¤Ä¤Þ¤ê ¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î·Á¼°¤â»Ø¤¹ÆâÍƤÏƱ¤¸¤Ç¤¢¤ê¡¢¥Ñ¥¿¡¼¥ó¥Þ¥Ã¥Á¤ä¤è¤ê¸Å¤¤¥×¥í¥°¥é¥à¤Ç¤â -URI ¤È¤·¤Æǧ¼±¤µ¤ì¤ä¤¹¤¤¡£ -¤â¤·°Õ¿Þ¤¹¤ë¤È¤³¤í¤¬¡Ö¸½ºß¤Î¾ì½ê¤«¤é¥¹¥¿¡¼¥È¡×¤Ê¤é¡¢ -¥¹¥­¡¼¥à¤Ï°ìÀÚÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -<../test.txt> ¤Î¤è¤¦¤Ê¡¢¥¹¥­¡¼¥à¤Ë°Í¸¤·¤Ê¤¤ÁêÂÐ¥ê¥ó¥¯¤òÍѤ¤¤ë¤³¤È¡£ -¤³¤Î¥¹¥­¡¼¥à¤ÎÎã¤È¤·¤Æ¤Ï ¤Ê¤É¡£ +二つめの書式 (例えば ) もローカルファイルを参照する +正しいフォーマットである。しかし古い標準ではこの書式を許していなかったので、 +これを URI として認識しないプログラムも存在する。 +より汎用的な文法は、サーバ名に空文字を用いるもの、 +つまり のようなものである。 +この形式も指す内容は同じであり、パターンマッチやより古いプログラムでも +URI として認識されやすい。 +もし意図するところが「現在の場所からスタート」なら、 +スキームは一切用いるべきではない。 +<../test.txt> のような、スキームに依存しない相対リンクを用いること。 +このスキームの例としては など。 .PP .\"O .B "man \- Man page documentation" -.B "man \- man ¥Ú¡¼¥¸Ê¸½ñ" +.B "man \- man ページ文書" .PP .RI man: command-name .br @@ -478,16 +478,16 @@ URI .\"O This URI scheme is unique to UNIX-like systems (such as Linux) .\"O and is not currently registered by the IETF. .\"O An example is . -¤³¤ì¤Ï¥í¡¼¥«¥ë¤Î¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë (man) ¥ê¥Õ¥¡¥ì¥¹¥Ú¡¼¥¸¤ò»²¾È¤¹¤ë¡£ -command-name ¤Ë¤Ï³ç¸Ì¤È¥»¥¯¥·¥ç¥óÈÖ¹æ¤òÄɲ䷤Ƥâ¤è¤¤¡£ -¥»¥¯¥·¥ç¥óÈÖ¹æ¤Î°ÕÌ£¤Ë¤Ä¤¤¤Æ¾Ü¤·¤¯ÃΤꤿ¤¤¾ì¹ç¤Ï +これはローカルのオンラインマニュアル (man) リファレスページを参照する。 +command-name には括弧とセクション番号を追加してもよい。 +セクション番号の意味について詳しく知りたい場合は .BR man (7) -¤ò¤ß¤è¡£¤³¤Î URI ¥¹¥­¡¼¥à¤Ï UNIX É÷¤Î¥·¥¹¥Æ¥à (Linux ¤Ê¤É) -¤ËÆÃÍ­¤Î¤â¤Î¤Ç¤¢¤ê¡¢¸½ºß¤Ï¤Þ¤À IETF ¤Ë¤è¤ëÅÐÏ¿¤Ï¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -Îã¤È¤·¤Æ¤Ï ¤Ê¤É¡£ +をみよ。この URI スキームは UNIX 風のシステム (Linux など) +に特有のものであり、現在はまだ IETF による登録はされていない。 +例としては など。 .PP .\"O .B "info \- Info page documentation" -.B "info \- info ¥Ú¡¼¥¸Ê¸½ñ" +.B "info \- info ページ文書" .PP .RI info: virtual-filename .br @@ -515,27 +515,27 @@ command-name .\"O nodename is assumed to be "Top". .\"O Examples of the GNOME format are and . .\"O Examples of the KDE format are and . -¤³¤Î¥¹¥­¡¼¥à¤Ï¡¢¥ª¥ó¥é¥¤¥ó¤Î info ¥ê¥Õ¥¡¥ì¥ó¥¹¥Ú¡¼¥¸ -(texinfo ¥Õ¥¡¥¤¥ë¤«¤éÀ¸À®¤µ¤ì¤ë) ¤ò»²¾È¤¹¤ë¡£ info ¥Ú¡¼¥¸¤Ï -GNU ¥Ä¡¼¥ë¤Ê¤É¤Î¥×¥í¥°¥é¥à¤ÇÍѤ¤¤é¤ì¤Æ¤¤¤ëʸ½ñ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤¢¤ë¡£ -¤³¤Î URI ¥¹¥­¡¼¥à¤Ï UNIX É÷¤Î¥·¥¹¥Æ¥à (Linux ¤Ê¤É) -¤ËÆÃÍ­¤Î¤â¤Î¤Ç¤¢¤ê¡¢¸½ºß¤Ï¤Þ¤À IETF ¤Ë¤è¤ëÅÐÏ¿¤Ï¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤³¤Îʸ½ñ¤Î¼¹É®»þ¤Ë¤ª¤¤¤Æ¡¢ GNOME ¤È KDE ¤Ï¤½¤ì¤¾¤ì°Û¤Ê¤ëʸˡ¤Î URI -¤òÍѤ¤¤Æ¤ª¤ê¡¢¤ª¸ß¤¤Áê¼ê¤Îʸˡ¤ò¼õ¤±Æþ¤ì¤Ê¤¤¡£ -ºÇ½é¤Î 2 ¤Ä¤Î½ñ¼°¤Ï GNOME ¤Î½ñ¼°¤Ç¤¢¤ë¡£¥Î¡¼¥É̾ (nodename) -¤Î¥¹¥Ú¡¼¥¹¤Ï¤¹¤Ù¤Æ¥¢¥ó¥À¡¼¥¹¥³¥¢¤ËÊÑ´¹¤µ¤ì¤ë¡£ -3 ¤Ä¤á¤È 4 ¤Ä¤á¤Ï KDE ¤Î½ñ¼°¤Ç¤¢¤ë¡£¥Î¡¼¥É̾¤Î¥¹¥Ú¡¼¥¹¤Ï -¤½¤Î¤Þ¤Þ¥¹¥Ú¡¼¥¹¤Ç½ñ¤«¤ì¤ë -(URI ¤Îɸ½à¤Ç¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¤Î¤À¤¬)¡£ -¾­Íè¤Ï¿¤¯¤Î¥Ä¡¼¥ë¤¬¤³¤ì¤é¤Î½ñ¼°¤¹¤Ù¤Æ¤òÍý²ò¤¹¤ë¤è¤¦¤Ë¤Ê¤ê¡¢ -¥Î¡¼¥É̾¤Î¥¢¥ó¥À¡¼¥¹¥³¥¢¡¢¥¹¥Ú¡¼¥¹¤òξÊý¤È¤âÍý²ò¤Ç¤­¤ë¤è¤¦¤Ë -¤Ê¤ë¤³¤È¤ò´üÂÔ¤·¤¿¤¤¡£ GNOME ¤Ç¤â KDE ¤Ç¤â¡¢ -¥Î¡¼¥É̾¤¬¾Êά¤µ¤ì¤¿¾ì¹ç¤Ï¡¢¥Î¡¼¥É̾¤È¤·¤Æ "Top" ¤¬ÍѤ¤¤é¤ì¤ë¡£ -GNOME ½ñ¼°¤ÎÎã¤È¤·¤Æ¤Ï ¤ä ¤Ê¤É¡¢ -KDE ½ñ¼°¤ÎÎã¤È¤·¤Æ¤Ï ¤ä ¤Ê¤É¡£ +このスキームは、オンラインの info リファレンスページ +(texinfo ファイルから生成される) を参照する。 info ページは +GNU ツールなどのプログラムで用いられている文書フォーマットである。 +この URI スキームは UNIX 風のシステム (Linux など) +に特有のものであり、現在はまだ IETF による登録はされていない。 +この文書の執筆時において、 GNOME と KDE はそれぞれ異なる文法の URI +を用いており、お互い相手の文法を受け入れない。 +最初の 2 つの書式は GNOME の書式である。ノード名 (nodename) +のスペースはすべてアンダースコアに変換される。 +3 つめと 4 つめは KDE の書式である。ノード名のスペースは +そのままスペースで書かれる +(URI の標準では禁止されているのだが)。 +将来は多くのツールがこれらの書式すべてを理解するようになり、 +ノード名のアンダースコア、スペースを両方とも理解できるように +なることを期待したい。 GNOME でも KDE でも、 +ノード名が省略された場合は、ノード名として "Top" が用いられる。 +GNOME 書式の例としては や など、 +KDE 書式の例としては や など。 .PP .\"O .B "whatis \- Documentation search" -.B "whatis \- ʸ½ñ¸¡º÷" +.B "whatis \- 文書検索" .PP .RI whatis: string .PP @@ -546,26 +546,26 @@ KDE .\"O .BR whatis (1). .\"O This URI scheme is unique to UNIX-like systems (such as Linux) .\"O and is not currently registered by the IETF. -¤³¤Î¥¹¥­¡¼¥à¤Ï¡¢¥³¥Þ¥ó¥É¤Ë´Ø¤¹¤ëû¤¤ (1 ¹Ô¤Î) ÀâÌÀ¤ò½¸¤á¤¿ -¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¸¡º÷¤·¡¢ string ¤ò´Þ¤àʸ»úÎó¤ò¥ê¥¹¥È¤·¤ÆÊÖ¤¹¡£ -ñ¸ì¤¬´°Á´¤Ë¥Þ¥Ã¥Á¤·¤¿·ë²Ì¤À¤±¤¬ÊÖ¤µ¤ì¤ë¡£ +このスキームは、コマンドに関する短い (1 行の) 説明を集めた +データベースを検索し、 string を含む文字列をリストして返す。 +単語が完全にマッチした結果だけが返される。 .BR whatis (1) -¤ò¸«¤è¡£ -¤³¤Î URI ¥¹¥­¡¼¥à¤Ï UNIX É÷¤Î¥·¥¹¥Æ¥à (Linux ¤Ê¤É) -¤ËÆÃÍ­¤Î¤â¤Î¤Ç¤¢¤ê¡¢¸½ºß¤Ï¤Þ¤À IETF ¤Ë¤è¤ëÅÐÏ¿¤Ï¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +を見よ。 +この URI スキームは UNIX 風のシステム (Linux など) +に特有のものであり、現在はまだ IETF による登録はされていない。 .PP .\"O .B "ghelp \- GNOME help documentation" -.B "ghelp \- GNOME ¥Ø¥ë¥×ʸ½ñ" +.B "ghelp \- GNOME ヘルプ文書" .PP .RI ghelp: name-of-application .PP .\"O This loads GNOME help for the given application. .\"O Note that not much documentation currently exists in this format. -Í¿¤¨¤é¤ì¤¿ application ¤ËÂбþ¤¹¤ë GNOME help ¤ò¥í¡¼¥É¤¹¤ë¡£ -¤³¤Î½ñ¼°¤òÍѤ¤¤¿Ê¸½ñ¤Ï¤Þ¤À¤¢¤Þ¤ê¿¤¯¤Ê¤¤¡£ +与えられた application に対応する GNOME help をロードする。 +この書式を用いた文書はまだあまり多くない。 .PP .\"O .B "ldap \- Lightweight Directory Access Protocol" -.B "ldap \- ·ÚÎ̥ǥ£¥ì¥¯¥È¥ê¥¢¥¯¥»¥¹¥×¥í¥È¥³¥ë" +.B "ldap \- 軽量ディレクトリアクセスプロトコル" .PP .RI ldap:// hostport .br @@ -590,23 +590,23 @@ KDE .\"O RFC\ 2255. .\"O .UE .\"O The components of this URL are: -¤³¤Î¥¹¥­¡¼¥à¤Ï Lightweight Directory Access Protocol (LDAP) -¤Ø¤Î¥¯¥¨¥ê¡¼¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ LDAP ¤ÏÊ£¿ô¤Î¥µ¡¼¥Ð¤Ëʬ»¶¤·¤¿¡¢ -³¬Áز½¤µ¤ì¤¿¾ðÊó (¿Í¡¹¤ä·×»»»ñ¸»¤Ê¤É) ¤ËÌ䤤¹ç¤ï¤»¤ë¤¿¤á¤Î -¥×¥í¥È¥³¥ë¤Ç¤¢¤ë¡£ LDAP ¤Î URL ¥¹¥­¡¼¥à¤Ë´Ø¤¹¤ë¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï +このスキームは Lightweight Directory Access Protocol (LDAP) +へのクエリーをサポートする。 LDAP は複数のサーバに分散した、 +階層化された情報 (人々や計算資源など) に問い合わせるための +プロトコルである。 LDAP の URL スキームに関するより詳しい情報は .UR http://www.ietf.org/rfc/rfc2255.txt RFC\ 2255 .UE -¤Ç¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î URL ¤Î³ÆÉô¤Ï°Ê²¼¤ÎÄ̤ê: +で見ることができる。 +この URL の各部は以下の通り: .IP hostport 12 .\"O the LDAP server to query, written as a hostname optionally followed by .\"O a colon and the port number. .\"O The default LDAP port is TCP port 389. .\"O If empty, the client determines which the LDAP server to use. -¥¯¥¨¥ê¡¼¤ò¹Ô¤¦ LDAP ¥µ¡¼¥Ð¡£¥Û¥¹¥È̾¤ò½ñ¤¯¡£Â³¤±¤Æ¥³¥í¥ó¤È¥Ý¡¼¥ÈÈÖ¹æ¤ò -Äɲ乤뤳¤È¤â¤Ç¤­¤ë¡£ LDAP ¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥Ý¡¼¥È¤Ï TCP ¥Ý¡¼¥È 389 ¤Ç¤¢¤ë¡£ -¾Êά¤µ¤ì¤ë¤È¡¢¤É¤Î LDAP ¥µ¡¼¥Ð¤òÍѤ¤¤ë¤«¤Ï¥¯¥é¥¤¥¢¥ó¥È¤¬·èÄꤹ¤ë¡£ +クエリーを行う LDAP サーバ。ホスト名を書く。続けてコロンとポート番号を +追加することもできる。 LDAP のデフォルトのポートは TCP ポート 389 である。 +省略されると、どの LDAP サーバを用いるかはクライアントが決定する。 .IP dn .\"O the LDAP Distinguished Name, which identifies .\"O the base object of the LDAP search (see @@ -614,27 +614,27 @@ RFC\ 2255 .\"O RFC\ 2253 .\"O .UE .\"O section 3). -LDAP ¤Î Distintuished Name (¼±ÊÌ̾)¡£ -LDAP ¸¡º÷¤Î base ¥ª¥Ö¥¸¥§¥¯¥È¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¤¢¤ë ( +LDAP の Distintuished Name (識別名)。 +LDAP 検索の base オブジェクトを指定するものである ( .UR http://www.ietf.org/rfc/rfc2253.txt RFC\ 2253 .UE -¤Î section 3 ¤ò¸«¤è)¡£ +の section 3 を見よ)。 .IP attributes .\"O a comma-separated list of attributes to be returned; .\"O see RFC\ 2251 section 4.1.5. .\"O If omitted, all attributes should be returned. -¥³¥ó¥Þ¶èÀÚ¤ê¤Î¡¢ÊÖ¤µ¤ì¤ë°À­ (attribute) ¤Î¥ê¥¹¥È¡£ -RFC\ 2251 ¤Î section 4.1.5 ¤ò¸«¤è¡£¾Êά¤µ¤ì¤ë¤ÈÁ´¤Æ¤Î°À­¤¬ÊÖ¤µ¤ì¤ë¡£ +コンマ区切りの、返される属性 (attribute) のリスト。 +RFC\ 2251 の section 4.1.5 を見よ。省略されると全ての属性が返される。 .IP scope .\"O specifies the scope of the search, which can be one of .\"O "base" (for a base object search), "one" (for a one-level search), .\"O or "sub" (for a subtree search). .\"O If scope is omitted, "base" is assumed. -¸¡º÷¤Î¥¹¥³¡¼¥×¤ò»ØÄꤹ¤ë¡£ -"base" (base ¥ª¥Ö¥¸¥§¥¯¥È¸¡º÷), "one" (1 ¥ì¥Ù¥ë¸¡º÷), -"sub" (¥µ¥Ö¥Ä¥ê¡¼¸¡º÷) ¤Î¤¤¤º¤ì¤«¤ò»ØÄꤹ¤ë¡£ -¾Êά¤¹¤ë¤È "base" ¤¬²¾Äꤵ¤ì¤ë¡£ +検索のスコープを指定する。 +"base" (base オブジェクト検索), "one" (1 レベル検索), +"sub" (サブツリー検索) のいずれかを指定する。 +省略すると "base" が仮定される。 .IP filter .\"O specifies the search filter (subset of entries .\"O to return). @@ -644,38 +644,38 @@ RFC\ 2251 .\"O RFC\ 2254 .\"O .UE .\"O section 4. -¸¡º÷¥Õ¥£¥ë¥¿ (ÊÖ¤µ¤ì¤ë¥¨¥ó¥È¥ê¤Î¥µ¥Ö¥»¥Ã¥È) ¤ò»ØÄꤹ¤ë¡£ -¾Êά¤µ¤ì¤ë¤È¡¢Á´¤Æ¤Î¥¨¥ó¥È¥ê¤¬ÊÖ¤µ¤ì¤ë¡£ +検索フィルタ (返されるエントリのサブセット) を指定する。 +省略されると、全てのエントリが返される。 .UR http://www.ietf.org/rfc/rfc2254.txt RFC\ 2254 .UE -¤Î section 4 ¤ò¸«¤è¡£ +の section 4 を見よ。 .IP extensions .\"O a comma-separated list of type=value .\"O pairs, where the =value portion may be omitted for options not .\"O requiring it. .\"O An extension prefixed with a \(aq!\(aq is critical .\"O (must be supported to be valid), otherwise it is noncritical (optional). -¥³¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿ type=value ¥Ú¥¢¤Î¥ê¥¹¥È¡£ -¤³¤³¤Ç =value ¤ÎÉôʬ¤Ï¡¢¤½¤ì¤òÍ׵ᤷ¤Ê¤¤¥ª¥×¥·¥ç¥ó¤ËÂФ·¤Æ¤Ï -¾Êά¤Ç¤­¤ë¡£ \(aq!\(aq ¤¬Á°ÃÖ¤µ¤ì¤¿ extension ¤Ï critical -(¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤) ¤Ç¤¢¤ê¡¢ -¤½¤¦¤Ç¤Ê¤±¤ì¤Ð critical ¤Ç¤Ï¤Ê¤¤ (¾Êά¤Ç¤­¤ë)¡£ +コンマで区切られた type=value ペアのリスト。 +ここで =value の部分は、それを要求しないオプションに対しては +省略できる。 \(aq!\(aq が前置された extension は critical +(サポートしていなければならない) であり、 +そうでなければ critical ではない (省略できる)。 .PP .\"O LDAP queries are easiest to explain by example. .\"O Here's a query that asks ldap.itd.umich.edu for information about .\"O the University of Michigan in the U.S.: -LDAP ¤Î¥¯¥¨¥ê¡¼¤Ï¡¢Îã¤È¤È¤â¤ËÀâÌÀ¤¹¤ë¤Î¤¬ºÇ¤â´Êñ¤Ç¤¢¤ë¡£ -¼¡¤ÎÎã¤Ï¡¢ ldap.itd.umich.edu ¤Ë¡¢ -U.S. ¤Ë¤¢¤ë University of Michigan ¤Î¾ðÊó¤ò¿Ò¤Í¤ëÎã¤Ç¤¢¤ë¡£ +LDAP のクエリーは、例とともに説明するのが最も簡単である。 +次の例は、 ldap.itd.umich.edu に、 +U.S. にある University of Michigan の情報を尋ねる例である。 .PP .nf ldap://ldap.itd.umich.edu/o=University%20of%20Michigan,c=US .fi .PP .\"O To just get its postal address attribute, request: -͹ÊØÍѤν»½ê°À­¤À¤±¤ò¼èÆÀ¤¹¤ë¾ì¹ç¤Ï¡¢ -¼¡¤Î¤è¤¦¤Ë¥ê¥¯¥¨¥¹¥È¤¹¤ë: +郵便用の住所属性だけを取得する場合は、 +次のようにリクエストする: .PP .nf ldap://ldap.itd.umich.edu/o=University%20of%20Michigan,c=US?postalAddress @@ -683,16 +683,16 @@ ldap://ldap.itd.umich.edu/o=University%20of%20Michigan,c=US?postalAddress .PP .\"O To ask a host.com at port 6666 for information about the person .\"O with common name (cn) "Babs Jensen" at University of Michigan, request: -host.com ¤Î¥Ý¡¼¥È 6666 ¤Ë¡¢ University of Michigan ¤Ë¤¤¤ë -common name (cn) ¤¬ "Babs Jenson" ¤Î¿Í¤Î¾ðÊó¤ò¿Ò¤Í¤ë¾ì¹ç¤Ï¡¢ -¼¡¤Î¤è¤¦¤Ë¥ê¥¯¥¨¥¹¥È¤¹¤ë: +host.com のポート 6666 に、 University of Michigan にいる +common name (cn) が "Babs Jenson" の人の情報を尋ねる場合は、 +次のようにリクエストする: .PP .nf ldap://host.com:6666/o=University%20of%20Michigan,c=US??sub?(cn=Babs%20Jensen) .fi .PP .\"O .B "wais \- Wide Area Information Servers" -.B "wais \- ¹­°è¾ðÊ󥵡¼¥Ó¥¹" +.B "wais \- 広域情報サービス" .PP .RI wais:// hostport / database .br @@ -708,14 +708,14 @@ ldap://host.com:6666/o=University%20of%20Michigan,c=US??sub?(cn=Babs%20Jensen) .\"O for more information on WAIS). .\"O Hostport is the hostname, optionally followed by a colon and port number .\"O (the default port number is 210). -¤³¤Î¥¹¥­¡¼¥à¤Ï WAIS ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¡¢¸¡º÷¡¢Ê¸½ñ¤ò»ØÄꤹ¤ë -(WAIS ¤Ë´Ø¤¹¤ë¾Ü¤·¤¤¾ðÊó¤Ï +このスキームは WAIS のデータベース、検索、文書を指定する +(WAIS に関する詳しい情報は .UR http://www.ietf.org/rfc/rfc1625.txt IETF RFC\ 1625 .UE -¤ò¸«¤è)¡£ -hostport ¤Ï¡¢¥Û¥¹¥È̾¤Ë¥³¥í¥ó¤È¥Ý¡¼¥ÈÈÖ¹æ¤òÉղä·¤¿¤â¤Î¤Ç¤¢¤ë -(¥³¥í¥ó + ¥Ý¡¼¥ÈÈÖ¹æ¤Ï¾Êά²Ä¡£¥Ç¥Õ¥©¥ë¥È¤Î¥Ý¡¼¥ÈÈÖ¹æ¤Ï 210 ¤Ç¤¢¤ë)¡£ +を見よ)。 +hostport は、ホスト名にコロンとポート番号を付加したものである +(コロン + ポート番号は省略可。デフォルトのポート番号は 210 である)。 .PP .\"O The first form designates a WAIS database for searching. .\"O The second form designates a particular search of the WAIS database @@ -726,18 +726,18 @@ hostport .\"O is the WAIS designation of the type of the object and .\"O .I wpath .\"O is the WAIS document-id. -ºÇ½é¤Î½ñ¼°¤Ï WAIS ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÂФ¹¤ë¸¡º÷¤Î»ØÄê¤Ç¤¢¤ë¡£ -Æó¤Ä¤á¤Î½ñ¼°¤ÏÆÃÄê¤Î WAIS ¥Ç¡¼¥¿¥Ù¡¼¥¹ +最初の書式は WAIS のデータベースに対する検索の指定である。 +二つめの書式は特定の WAIS データベース .I database -¤ËÂФ¹¤ë¸¡º÷¤Î»ØÄê¤Ç¤¢¤ë¡£ -»°¤Ä¤á¤Î½ñ¼°¤Ï WAIS ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤¢¤ëÆÃÄê¤Îʸ½ñ¤ò¼è½Ð¤¹»ØÄê¤Ç¤¢¤ë¡£ +に対する検索の指定である。 +三つめの書式は WAIS データベースにある特定の文書を取出す指定である。 .I wtype -¤Ï WAIS ¤Î¥ª¥Ö¥¸¥§¥¯¥È·Á¼°»ØÄê¤Ç¤¢¤ê¡¢ +は WAIS のオブジェクト形式指定であり、 .I wpath -¤Ï WAIS document-id ¤Ç¤¢¤ë¡£ +は WAIS document-id である。 .PP .\"O .B "other schemes" -.B ¤½¤Î¾¤Î¥¹¥­¡¼¥à +.B その他のスキーム .PP .\"O There are many other URI schemes. .\"O Most tools that accept URIs support a set of internal URIs @@ -752,31 +752,31 @@ hostport .\"O (e.g., urn:ietf:... would identify IETF documents); at this time .\"O URNs are not widely implemented. .\"O Not all tools support all schemes. -¾¤Ë¤â¿¤¯¤Î URI ¥¹¥­¡¼¥à¤¬Â¸ºß¤¹¤ë¡£ -URI ¤ò¼õÉÕ¤±¤ë¤Û¤È¤ó¤É¤Î¥Ä¡¼¥ë¤Ï¡¢ÆâÉô URI ¤Î¥»¥Ã¥È¤ò¥µ¥Ý¡¼¥È¤¹¤ë -(Î㤨¤Ð Mozilla ¤ÏÆâÉô¾ðÊóÍѤΠabout: ¤È¤¤¤¦¥¹¥­¡¼¥à¤ò¼õÉÕ¤±¤ë¤·¡¢ -GNOME ¥Ø¥ë¥×¥Ö¥é¥¦¥¶¤Ï¤¤¤í¤¤¤í¤Ê½ÐȯÅÀÍÑ¤Ë toc: ¤È¤¤¤¦¥¹¥­¡¼¥à¤ò»ý¤Ã¤Æ¤¤¤ë)¡£ -ÄêµÁ¤µ¤ì¤¿¥¹¥­¡¼¥à¤Ï¤¿¤¯¤µ¤ó¤¢¤ë¤¬¡¢¸½»þÅÀ¤Ç¹­¤¯ÍѤ¤¤é¤ì¤Æ¤Ï¤¤¤Ê¤¤ -(Î㤨¤Ð prospero ¤È¤«)¡£ -nntp: ¥¹¥­¡¼¥à¤Ï news: ¥¹¥­¡¼¥à¤¬¹¥¤ó¤ÇÍѤ¤¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤Î¤Ç -»È¤ï¤Ê¤¤¤Û¤¦¤¬Îɤ¤¡£ URN ¤Ï urn: ¥¹¥­¡¼¥à¤Ë¤è¤Ã¤Æ¡¢³¬ÁØŪ¤Ê̾Á°¶õ´Ö -(Î㤨¤Ð urn:ietf:... ¤Ï IETF ʸ½ñ¤ò¼¨¤¹) -¤È¤·¤Æ¥µ¥Ý¡¼¥È¤µ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¤¬¡¢¸½»þÅÀ¤Ç¤Ï URN ¤Ï¤¢¤Þ¤êÍѤ¤¤é¤ì¤Æ¤¤¤Ê¤¤¡£ -Á´¤Æ¤Î¥Ä¡¼¥ë¤¬Á´¤Æ¤Î¥¹¥­¡¼¥à¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ +他にも多くの URI スキームが存在する。 +URI を受付けるほとんどのツールは、内部 URI のセットをサポートする +(例えば Mozilla は内部情報用の about: というスキームを受付けるし、 +GNOME ヘルプブラウザはいろいろな出発点用に toc: というスキームを持っている)。 +定義されたスキームはたくさんあるが、現時点で広く用いられてはいない +(例えば prospero とか)。 +nntp: スキームは news: スキームが好んで用いられるようになったので +使わないほうが良い。 URN は urn: スキームによって、階層的な名前空間 +(例えば urn:ietf:... は IETF 文書を示す) +としてサポートされるべきであるが、現時点では URN はあまり用いられていない。 +全てのツールが全てのスキームをサポートしているわけではない。 .\"O .SS Character Encoding -.SS ʸ»ú¥¨¥ó¥³¡¼¥É +.SS 文字エンコード .PP .\"O URIs use a limited number of characters so that they can be .\"O typed in and used in a variety of situations. -URI ¤Ç¤Ï¡¢¿§¡¹¤Ê¾õ¶·²¼¤ÇÆþÎϤǤ­¤ë¤è¤¦¤Ë¡¢Ê¸»ú¤Î¼ïÎà¤òÀ©¸Â¤·¤Æ¤¤¤ë¡£ +URI では、色々な状況下で入力できるように、文字の種類を制限している。 .PP .\"O The following characters are reserved, that is, they may appear in a .\"O URI but their use is limited to their reserved purpose .\"O (conflicting data must be escaped before forming the URI): -°Ê²¼¤Îʸ»ú¤ÏͽÌ󤵤ì¤Æ¤¤¤ë¡£¤¹¤Ê¤ï¤Á¡¢¤³¤ì¤é¤Îʸ»ú¤Ï -URI ¤ËÅо줹¤ë¤³¤È¤¬¤¢¤ë¤¬¡¢¤½¤ì¤é¤ÎÍøÍÑË¡ (²ò¼á¤Î¤µ¤ìÊý) ¤Ï -ͽÌ󤵤줿ÌÜŪ¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë (¾×Æͤ¹¤ë¥Ç¡¼¥¿¤Ï -URI ¤Ë¤¹¤ëÁ°¤Ë¥¨¥¹¥±¡¼¥×¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£ +以下の文字は予約されている。すなわち、これらの文字は +URI に登場することがあるが、それらの利用法 (解釈のされ方) は +予約された目的に制限されている (衝突するデータは +URI にする前にエスケープしなければならない)。 .IP ; / ? : @ & = + $ , .PP @@ -785,9 +785,9 @@ URI .\"O include upper and lower case English letters, .\"O decimal digits, and the following .\"O limited set of punctuation marks and symbols: -̤ͽÌóʸ»ú (unreserved character) ¤Ï URI ¤Ë»È¤Ã¤Æ¤è¤¤¡£ -¤³¤ì¤Ë¤Ï±Ñ»ú¤ÎÂçʸ»ú¤È¾®Ê¸»ú¡¢10 ¿Ê¤Î¿ô»ú¡¢¤ª¤è¤Ó -°Ê²¼¤Î¶çÆÉʸ»ú¡¦µ­¹æ¤¬´Þ¤Þ¤ì¤ë +未予約文字 (unreserved character) は URI に使ってよい。 +これには英字の大文字と小文字、10 進の数字、および +以下の句読文字・記号が含まれる .IP \- _ . ! ~ * ' ( ) .PP @@ -805,53 +805,53 @@ URI .\"O in the relevant RFCs (which recommend %20 instead) but any tool accepting .\"O URIs with query text should be prepared for them. .\"O A URI is always shown in its "escaped" form. -¾¤Îʸ»ú¤Ï¤¹¤Ù¤Æ¥¨¥¹¥±¡¼¥×¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥¨¥¹¥±¡¼¥×¤µ¤ì¤¿¥ª¥¯¥Æ¥Ã¥È¤Ï 3 ʸ»ú¤«¤é¤Ê¤ë: -ÀèƬ¤Ë¥Ñ¡¼¥»¥ó¥Èʸ»ú "%"¡¢¤½¤ì¤Ë³¤±¤Æ¥ª¥¯¥Æ¥Ã¥È¥³¡¼¥É¤òɽ¤¹ -2 ʸ»ú¤Î 16 ¿Ê¿ô»ú¤Ç¤¢¤ë (16 ¿Ê¿ô¤Î±Ñ»ú¤ÏÂçʸ»ú¾®Ê¸»ú¤É¤Á¤é¤Ç¤âÎɤ¤)¡£ -Î㤨¤Ð¶õÇòʸ»ú¤Ï "%20" ¤Î¤è¤¦¤Ë¥¨¥¹¥±¡¼¥×¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -¥¿¥Öʸ»ú¤Ï "%09"¡¢ "&" ¤Ï "%26" ¤È¤Ê¤ë¡£ -¥Ñ¡¼¥»¥ó¥Èʸ»ú "%" ¤Ï¾ï¤Ë¥¨¥¹¥±¡¼¥×¤ò¼¨¤¹Í½Ì󤵤줿ÌÜŪ¤ËÍѤ¤¤é¤ì¤ë¤Î¤Ç¡¢ -"%" ¼«¿È¤òɽ¤¹¤Ë¤Ï "%25" ¤È¥¨¥¹¥±¡¼¥×¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥¯¥¨¥ê¡¼¤Î¥Æ¥­¥¹¥È¤Ç¤Ï¡¢¥¹¥Ú¡¼¥¹Ê¸»ú¤ò¥×¥é¥¹µ­¹æ (+) ¤Ç¥¨¥¹¥±¡¼¥×¤¹¤ë¤³¤È¤â -°ìÈ̤ËÎɤ¯¹Ô¤ï¤ì¤ë¡£¤³¤Î´·Îã¤Ï´ØÏ¢ RFC ¤Ç¼ÂºÝ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤ -(Âå¤ï¤ê¤Ë %20 ¤ò¿ä¾©¤·¤Æ¤¤¤ë) ¤¬¡¢¥¯¥¨¥ê¡¼¥Æ¥­¥¹¥È¤ò¼õÉÕ¤±¤ë -¥Ä¡¼¥ë¤Ï¡¢¤³¤Î½ñ¼°¤Ø¤ÎÂбþ¤òÍÑ°Õ¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤í¤¦¡£ -URI ¤Ï¡¢¾ï¤Ë¡Ö¥¨¥¹¥±¡¼¥×¤µ¤ì¤¿¡×¤«¤¿¤Á¤Çɽ¼¨¤µ¤ì¤ë¡£ +他の文字はすべてエスケープしなければならない。 +エスケープされたオクテットは 3 文字からなる: +先頭にパーセント文字 "%"、それに続けてオクテットコードを表す +2 文字の 16 進数字である (16 進数の英字は大文字小文字どちらでも良い)。 +例えば空白文字は "%20" のようにエスケープしなければならず、 +タブ文字は "%09"、 "&" は "%26" となる。 +パーセント文字 "%" は常にエスケープを示す予約された目的に用いられるので、 +"%" 自身を表すには "%25" とエスケープしなければならない。 +クエリーのテキストでは、スペース文字をプラス記号 (+) でエスケープすることも +一般に良く行われる。この慣例は関連 RFC で実際に定義されているわけではない +(代わりに %20 を推奨している) が、クエリーテキストを受付ける +ツールは、この書式への対応を用意しておくべきであろう。 +URI は、常に「エスケープされた」かたちで表示される。 .PP .\"O Unreserved characters can be escaped without changing the semantics .\"O of the URI, but this should not be done unless the URI is being used .\"O in a context that does not allow the unescaped character to appear. .\"O For example, "%7e" is sometimes used instead of "~" in an HTTP URL .\"O path, but the two are equivalent for an HTTP URL. -̤ͽÌóʸ»ú¤â¥¨¥¹¥±¡¼¥×¤¹¤ë¤³¤È¤¬¤Ç¤­¡¢¤³¤ì¤Ë¤è¤Ã¤Æ -URI ¤Î°ÕÌ£¤¹¤ë¤È¤³¤í¤¬ÊѤï¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -¤·¤«¤·URI ¤Ë¤½¤ÎÈ󥨥¹¥±¡¼¥×ʸ»ú¤¬¸½¤ì¤ë¤³¤È¤¬µö¤µ¤ì¤Ê¤¤¤è¤¦¤Ê -Æüì¤Ê¾ì¹ç¤ò½ü¤¤¤Æ¡¢¤³¤ì¤ÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -Î㤨¤Ð¡¢ HTTP URL ¤Î path ¤Ë¤ª¤¤¤Æ -"%7e" ¤¬ "~" ¤ÎÂå¤ï¤ê¤ËÍѤ¤¤é¤ì¤ë¤³¤È¤¬¤¢¤ë¤¬¡¢ -¤³¤ÎÆó¤Ä¤Ï HTTP URL ¤È¤·¤Æ¤ÏÅù²Á¤Ç¤¢¤ë¡£ +未予約文字もエスケープすることができ、これによって +URI の意味するところが変わるわけではない。 +しかしURI にその非エスケープ文字が現れることが許されないような +特殊な場合を除いて、これは避けるべきである。 +例えば、 HTTP URL の path において +"%7e" が "~" の代わりに用いられることがあるが、 +この二つは HTTP URL としては等価である。 .PP .\"O For URIs which must handle characters outside the US ASCII character set, .\"O the HTML 4.01 specification (section B.2) and .\"O IETF RFC\ 2718 (section 2.2.5) recommend the following approach: -US ASCII ¥­¥ã¥é¥¯¥¿¥»¥Ã¥È°Ê³°¤Îʸ»ú¤ò URI ¤È¤·¤Æ°·¤¦¾ì¹ç¡¢ -HTML 4.1 µ¬³Ê (section B.2) µÚ¤Ó IETF RFC\ 2718 (section 2.2.5) ¤Ï -°Ê²¼¤Î¼êË¡¤òÍѤ¤¤ë¤è¤¦¿ä¾©¤·¤Æ¤¤¤ë¡£ +US ASCII キャラクタセット以外の文字を URI として扱う場合、 +HTML 4.1 規格 (section B.2) 及び IETF RFC\ 2718 (section 2.2.5) は +以下の手法を用いるよう推奨している。 .IP 1. 4 .\"O translate the character sequences into UTF-8 (IETF RFC\ 2279)\(emsee .\"O .BR utf-8 (7)\(emand .\"O then -¥­¥ã¥é¥¯¥¿Îó¤ò UTF-8 (IETF RFC\ 2279, +キャラクタ列を UTF-8 (IETF RFC\ 2279, .BR utf-8 (7) -»²¾È) ¤ËÊÑ´¹¤·¡¢ +参照) に変換し、 .IP 2. .\"O use the URI escaping mechanism, that is, .\"O use the %HH encoding for unsafe octets. -URI ¥¨¥¹¥±¡¼¥×µ¡¹½¤òÍѤ¤¤ë¡£ -¤Ä¤Þ¤ê¡¢°ÂÁ´¤Ç¤Ê¤¤¥ª¥¯¥Æ¥Ã¥È¤ò %HH ¤Ç¥¨¥ó¥³¡¼¥É¤¹¤ë¡£ +URI エスケープ機構を用いる。 +つまり、安全でないオクテットを %HH でエンコードする。 .\"O .SS Writing a URI -.SS "URI ¤ò½ñ¤¯¤Ë¤Ï" +.SS "URI を書くには" .\"O When written, URIs should be placed inside double quotes .\"O (e.g., "http://www.kernelnotes.org"), .\"O enclosed in angle brackets (e.g., ), @@ -873,26 +873,26 @@ URI .\"O for more information). .\"O Older documents suggested inserting the prefix "URL:" .\"O just before the URI, but this form has never caught on. -URI ¤ò½ñ¤¯»þ¤Ë¤Ï¡¢¥À¥Ö¥ë¥¯¥©¡¼¥È¤ÎÆâÉô¤Ë½ñ¤¯ -(Îã: "http://www.kernelnotes.org") ¤«¡¢ -angle ¥Ö¥é¥±¥Ã¥È¤Ç°Ï¤à (Îã: ) ¤«¡¢ -°ì¹Ô¤Ë URI ¤À¤±¤ò½ñ¤¯¤«¤¹¤ë¡£ -¥À¥Ö¥ë¥¯¥©¡¼¥È¤ò»È¤¦¿Í¤Ë·Ù¹ð: -\fBÀäÂФË\fP¶çÆÉÅÀ (ʸËö¤Î¥Ô¥ê¥ª¥É¤ä¥ê¥¹¥È¶èÀÚ¤ê¤Î¥³¥ó¥Þ) ¤ò -URI ¤ÎÆâÉô¤Ë°ÜÆ°¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -Âå¤ï¤ê¤Ë angle ¥Ö¥é¥±¥Ã¥È¤ò»È¤¦¤«¡¢ -³°¤Ë¤¢¤ëʸ»ú¤ò¥¯¥©¡¼¥Æ¡¼¥·¥ç¥ó¥Þ¡¼¥¯¤ÎÆâÉô¤Ë -·è¤·¤Æ´Þ¤á¤Ê¤¤¤è¤¦¤Ê°úÍÑÊý¼°¤ËÀÚÂؤ¨¤ë¤³¤È¡£ -¸å¼Ô¤ÎÊý¼°¤Ï "Hart's Rules" ¤ä -"Oxford Dictionary for Writers and Editors" ¤Ë¤è¤ì¤Ð -¡Ö¿·¤·¤¤ (new) °úÍÑÊý¼°¡×¤¢¤ë¤¤¤Ï¡ÖÏÀÍýŪ (logical) ¤Ê°úÍÑÊý¼°¡× -¤È¸Æ¤Ð¤ì¤Æ¤ª¤ê¡¢ ¥¤¥®¥ê¥¹¿Í¤äÀ¤³¦Ãæ¤Î¥Ï¥Ã¥«¡¼Ã£¤Ï¤³¤Á¤é¤Î´·½¬¤ò¹¥¤ó¤Ç¤¤¤ë -(¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï -Hacker Writing Style ¤Î Jargon File ¤Î¥»¥¯¥·¥ç¥ó +URI を書く時には、ダブルクォートの内部に書く +(例: "http://www.kernelnotes.org") か、 +angle ブラケットで囲む (例: ) か、 +一行に URI だけを書くかする。 +ダブルクォートを使う人に警告: +\fB絶対に\fP句読点 (文末のピリオドやリスト区切りのコンマ) を +URI の内部に移動してはならない。 +代わりに angle ブラケットを使うか、 +外にある文字をクォーテーションマークの内部に +決して含めないような引用方式に切替えること。 +後者の方式は "Hart's Rules" や +"Oxford Dictionary for Writers and Editors" によれば +「新しい (new) 引用方式」あるいは「論理的 (logical) な引用方式」 +と呼ばれており、 イギリス人や世界中のハッカー達はこちらの慣習を好んでいる +(より詳しい情報は +Hacker Writing Style の Jargon File のセクション .I http://www.fwi.uva.nl/~mes/jargon/h/HackerWritingStyle.html -¤ò¸«¤è)¡£ -¸Å¤¤Ê¸½ñ¤Ç¤Ï¡¢ "URL:" ¤È¤¤¤¦Ê¸»úÎó¤ò URI ¤ÎľÁ°¤ËÁÞÆþ¤¹¤ë¤³¤È¤ò -´«¤á¤Æ¤¤¤ë¤â¤Î¤â¤¢¤ë¤¬¡¢¤·¤«¤·¤³¤Î·Á¼°¤Ï¤Þ¤Ã¤¿¤¯Î®¹Ô¤·¤Ê¤«¤Ã¤¿¡£ +を見よ)。 +古い文書では、 "URL:" という文字列を URI の直前に挿入することを +勧めているものもあるが、しかしこの形式はまったく流行しなかった。 .PP .\"O The URI syntax was designed to be unambiguous. .\"O However, as URIs have become commonplace, traditional media @@ -906,16 +906,16 @@ Hacker Writing Style .\"O the URI (e.g., hostnames beginning with "www" are likely to have .\"O a URI prefix of "http://" and hostnames beginning with "ftp" likely .\"O to have a prefix of "ftp://"). -URI ¤Î½ñ¼°¤ÏÛ£Ë椵¤òÇÓ½ü¤¹¤ë¤è¤¦¤ËÀ߷פµ¤ì¤Æ¤¤¤ë¡£ -¤·¤«¤· URI ¤¬¹­¤Þ¤ë¤Ë¤Ä¤ì¡¢ÀΤʤ¬¤é¤Î¥á¥Ç¥£¥¢ (TV¡¢¥é¥¸¥ª¡¢¿·Ê¹¡¢ -´ÇÈĤʤɤʤÉ) ¤Ï URI »²¾È¤ò¾Êά¤·¤¿¤«¤¿¤Á¡¢¤¹¤Ê¤ï¤Á -µ¡´ØÉô¤È¥Ñ¥¹Éô¤À¤±¤Ç¥ê¥½¡¼¥¹¤ò»ØÄꤹ¤ë¤³¤È¤¬Â¿¤¯¤Ê¤Ã¤Æ¤¤¤ë -(Îã: )¡£ -¤³¤Î¤è¤¦¤Ê»²¾È¤Ï¥Þ¥·¥ó¤È¤¤¤¦¤è¤ê¤Ï¿Í´Ö¸þ¤±¤Î¤â¤Î¤Ç¡¢ -¥³¥ó¥Æ¥­¥¹¥È¥Ù¡¼¥¹¤Î¿ä¬¤Ë¤è¤Ã¤Æ URI ¤ÎÊä´°¤¬²Äǽ¤Ç¤¢¤ë¤³¤È¤ò -¤¢¤Æ¤Ë¤·¤Æ¤¤¤ë¤Î¤Ç¤¢¤ë (Î㤨¤Ð "www" ¤Ç¤Ï¤¸¤Þ¤ë¥Û¥¹¥È̾¤Ê¤é -"http://" ¤¬¤Ä¤¯¤À¤í¤¦¤·¡¢ "ftp" ¤Ç¤Ï¤¸¤Þ¤ë¥Û¥¹¥È̾¤Ê¤é -"ftp://" ¤¬¤Ä¤¯¤À¤í¤¦)¡£ +URI の書式は曖昧さを排除するように設計されている。 +しかし URI が広まるにつれ、昔ながらのメディア (TV、ラジオ、新聞、 +看板などなど) は URI 参照を省略したかたち、すなわち +機関部とパス部だけでリソースを指定することが多くなっている +(例: )。 +このような参照はマシンというよりは人間向けのもので、 +コンテキストベースの推測によって URI の補完が可能であることを +あてにしているのである (例えば "www" ではじまるホスト名なら +"http://" がつくだろうし、 "ftp" ではじまるホスト名なら +"ftp://" がつくだろう)。 .\"O Many client implementations heuristically resolve these references. .\"O Such heuristics may .\"O change over time, particularly when new schemes are introduced. @@ -925,18 +925,18 @@ URI .\"O (such as in dialog boxes). .\"O Don't use abbreviated URIs as hypertext links inside a document; .\"O use the standard format as described here. -¿¤¯¤Î¥¯¥é¥¤¥¢¥ó¥È¤Î¼ÂÁõ¤Ç¤Ï¡¢¤³¤Î¼ï¤Î»²¾È¤ò¿ä¬¤Ë¤è¤Ã¤Æ²ò·è¤¹¤ë¡£ -¤³¤Î¤è¤¦¤Ê¿ä¬¤Ï»þÂå¤È¤È¤â¤ËÊѤï¤ê¤¦¤ë¡£ -Æä˿·¤·¤¤¥¹¥­¡¼¥à¤¬Æ³Æþ¤µ¤ì¤ë¤È¤½¤¦¤Ç¤¢¤ë¡£ -URI ¤Î¾Êά·Á¤Ç¤ÏÁêÂÐ URL ¥Ñ¥¹¤Î¶èÊ̤¬ÉÕ¤±¤é¤ì¤Ê¤¤¤Î¤Ç¡¢ -¾Êά·Á URI »²¾È¤ÏÁêÂÐ URI ¤ÎÍøÍѤǤ­¤ë¤È¤³¤í¤Ç¤Ï»È¤¨¤Ê¤¤¡£ -¤Ä¤Þ¤êÄêµÁºÑ¤ß¤Î¥Ù¡¼¥¹ (¥À¥¤¥¢¥í¥°¥Ü¥Ã¥¯¥¹¤Ê¤É) -¤¬¤Ê¤¤¾ì¹ç¤Ë¸Â¤Ã¤ÆÍøÍѤǤ­¤ë¡£ -.\"nakano: ¤³¤Îʸ̮¤Ç¤Î dialog box ¤È¤Ï¡© -ʸ½ñÆâÉô¤Ç¤Î¥Ï¥¤¥Ñ¡¼¥Æ¥­¥¹¥È¥ê¥ó¥¯¤Ë¤Ï¾Êά·Á URI ¤ò»È¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -¾å½Ò¤Îɸ½à¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»È¤¦¤³¤È¡£ +多くのクライアントの実装では、この種の参照を推測によって解決する。 +このような推測は時代とともに変わりうる。 +特に新しいスキームが導入されるとそうである。 +URI の省略形では相対 URL パスの区別が付けられないので、 +省略形 URI 参照は相対 URI の利用できるところでは使えない。 +つまり定義済みのベース (ダイアログボックスなど) +がない場合に限って利用できる。 +.\"nakano: この文脈での dialog box とは? +文書内部でのハイパーテキストリンクには省略形 URI を使ってはならない。 +上述の標準フォーマットを使うこと。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 .PP .I http://www.ietf.org/rfc/rfc2396.txt (IETF RFC\ 2396), @@ -944,20 +944,20 @@ URI .I http://www.w3.org/TR/REC-html40 (HTML 4.0). .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O Any tool accepting URIs (e.g., a web browser) on a Linux system should .\"O be able to handle (directly or indirectly) all of the .\"O schemes described here, including the man: and info: schemes. .\"O Handling them by invoking some other program is .\"O fine and in fact encouraged. -Linux ¥·¥¹¥Æ¥à¤Ç URI ¤ò¼õÉÕ¤±¤ë¥Ä¡¼¥ë (Î㤨¤Ð web ¥Ö¥é¥¦¥¶¤Ê¤É) ¤Ï¡¢ -¾å¤Ë¤¢¤²¤¿Á´¤Æ¤Î¥¹¥­¡¼¥à¤ò (ľÀܤޤ¿¤Ï´ÖÀܤË) °·¤¨¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -man: ¤ä info: ¤â´Þ¤á¤Æ¡¢¤Ç¤¢¤ë¡£ -¥¹¥­¡¼¥à¤Î½èÍý¤Ë¾¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤Î¤ÏÎɤ¤¤³¤È¤À¤·¡¢ -¼Â¤Ï¤¹¤¹¤ó¤Ç¤½¤¦¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +Linux システムで URI を受付けるツール (例えば web ブラウザなど) は、 +上にあげた全てのスキームを (直接または間接に) 扱えるべきである。 +man: や info: も含めて、である。 +スキームの処理に他のプログラムを実行するのは良いことだし、 +実はすすんでそうすべきである。 .PP .\"O Technically the fragment isn't part of the URI. -µ»½ÑŪ¤Ë¤Ï¡¢¥Õ¥é¥°¥á¥ó¥È¤Ï URI ¤Î°ìÉô¤Ç¤Ï¤Ê¤¤¡£ +技術的には、フラグメントは URI の一部ではない。 .PP .\"O For information on how to embed URIs (including URLs) in a data format, .\"O see documentation on that format. @@ -967,13 +967,13 @@ man: .\"O Texinfo files use the format @uref{\fIuri\fP}. .\"O Man and mdoc have the recently added UR macro, or just include the .\"O URI in the text (viewers should be able to detect :// as part of a URI). -URI (URL ¤â´Þ¤à) ¤ò¥Ç¡¼¥¿¥Õ¥©¡¼¥Þ¥Ã¥È¤ËËä¤á¤³¤àÊýË¡¤Ë´Ø¤¹¤ë¾ðÊó¤Ï¡¢ -¤½¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥É¥­¥å¥á¥ó¥È¤ò¸«¤è¡£ HTML ¤Ï +URI (URL も含む) をデータフォーマットに埋めこむ方法に関する情報は、 +そのフォーマットのドキュメントを見よ。 HTML は \fItext\fP -¤òÍѤ¤¤ë¡£ texinfo ¤Ï @uref{\fIuri\fP} ¤È¤¤¤¦½ñ¼°¤òÍѤ¤¤ë¡£ -man ¤È mdoc ¤Ï¡¢ºÇ¶áÄɲ䵤줿 UR ¥Þ¥¯¥í¤ò»È¤¦¡£ -¤¢¤ë¤¤¤Ï URI ¤ò¤½¤Î¤Þ¤Þ¥Æ¥­¥¹¥È¤ËËä¤á¤³¤à -(¥Ó¥å¡¼¥¢¤¬ :// ¤ò URI ¤Î°ìÉô¤È²ò¼á¤Ç¤­¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£ +を用いる。 texinfo は @uref{\fIuri\fP} という書式を用いる。 +man と mdoc は、最近追加された UR マクロを使う。 +あるいは URI をそのままテキストに埋めこむ +(ビューアが :// を URI の一部と解釈できなければならない)。 .PP .\"O The GNOME and KDE desktop environments currently vary in the URIs .\"O they accept, in particular in their respective help browsers. @@ -983,42 +983,42 @@ man .\"O regular format would be even better). .\"O In general, KDE uses as a prefix to a set of generated .\"O files. -¥Ç¥¹¥¯¥È¥Ã¥×´Ä¶­¤Ç¤¢¤ë GNOME ¤È KDE ¤Ï¡¢ -¤½¤ì¤¾¤ì¼õÉÕ¤±¤ë URI ¤¬ (Æäˤ½¤ì¤¾¤ì¤Î¥Ø¥ë¥×¥Ö¥é¥¦¥¶¤Ë¤ª¤¤¤Æ) -°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ -man ¥Ú¡¼¥¸¤ò¥ê¥¹¥È¤¹¤ë¤Ë¤Ï¡¢ -GNOME ¤Ç¤Ï ¤òÍѤ¤¡¢ KDE ¤Ç¤Ï ¤òÍѤ¤¤ë¡£ -¤Þ¤¿ info ¥Ú¡¼¥¸¤ò¥ê¥¹¥È¤¹¤ë¤Ë¤Ï¡¢ -GNOME ¤Ç¤Ï ¤òÍѤ¤¡¢ KDE ¤Ç¤Ï ¤òÍѤ¤¤ë -(ËÜ man ¥Ú¡¼¥¸¤ÎÃø¼Ô¤Ï KDE ¤Î¥¢¥×¥í¡¼¥Á¤Î¤Û¤¦¤¬¹¥¤ß¤Ç¤¢¤ë¡£ -¤·¤«¤·¤è¤êɸ½àŪ¤Ê½ñ¼°¤ÎÊý¤¬¹¹¤ËÎɤ¤¤¬)¡£ -°ìÈÌ¤Ë KDE ¤ÏÀ¸À®¥Õ¥¡¥¤¥ë (generated file) ¤Î¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤È¤·¤Æ - ¤òÍѤ¤¤ë¡£ -.\"nakano: °ÕÌ£¥ï¥«¥é¥ó... KDE ¤Ë¾Ü¤·¤¤¿Í¡Á +デスクトップ環境である GNOME と KDE は、 +それぞれ受付ける URI が (特にそれぞれのヘルプブラウザにおいて) +異なっている。 +man ページをリストするには、 +GNOME では を用い、 KDE では を用いる。 +また info ページをリストするには、 +GNOME では を用い、 KDE では を用いる +(本 man ページの著者は KDE のアプローチのほうが好みである。 +しかしより標準的な書式の方が更に良いが)。 +一般に KDE は生成ファイル (generated file) のプレフィックスとして + を用いる。 +.\"nakano: 意味ワカラン... KDE に詳しい人〜 .\"O KDE prefers documentation in HTML, accessed via the .\"O . .\"O GNOME prefers the ghelp scheme to store and find documentation. .\"O Neither browser handles file: references to directories at the time .\"O of this writing, making it difficult to refer to an entire directory with .\"O a browsable URI. -KDE ¤Ï HTML ¤Îʸ½ñ¤ò - ·Ðͳ¤Ç¥¢¥¯¥»¥¹¤¹¤ë¤Î¤¬¹¥¤ß¤Ê¤è¤¦¤Ç¤¢¤ë¡£ -GNOME ¤Ïʸ½ñ¤ÎÊÝ´É¡¦¸¡º÷¤Ë ghelp ¥¹¥­¡¼¥à¤òÍѤ¤¤ëÊýË¡¤ò¼è¤Ã¤Æ¤¤¤ë¤è¤¦¤À¡£ -¤É¤Á¤é¤Î¥Ö¥é¥¦¥¶¤â¡¢¸½»þÅÀ¤Ç¤Ï file: ¤Ë¤è¤ë¥Ç¥£¥ì¥¯¥È¥ê»²¾È¤ò°·¤¨¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¥Ç¥£¥ì¥¯¥È¥êÁ´ÂΤò¥Ö¥é¥¦¥º²Äǽ¤Ê URI ¤Ç»²¾È¤¹¤ë¤³¤È¤¬Æñ¤·¤¤¡£ +KDE は HTML の文書を + 経由でアクセスするのが好みなようである。 +GNOME は文書の保管・検索に ghelp スキームを用いる方法を取っているようだ。 +どちらのブラウザも、現時点では file: によるディレクトリ参照を扱えない。 +したがってディレクトリ全体をブラウズ可能な URI で参照することが難しい。 .\"O As noted above, these environments differ in how they handle the .\"O info: scheme, probably the most important variation. .\"O It is expected that GNOME and KDE .\"O will converge to common URI formats, and a future .\"O version of this man page will describe the converged result. .\"O Efforts to aid this convergence are encouraged. -Àè¤Ë½Ò¤Ù¤¿¤è¤¦¤Ë¡¢¤³¤ì¤éÆó¤Ä¤Î´Ä¶­¤Ç¤Ï info: ¥¹¥­¡¼¥à¤Î -°·¤¤¤¬°Û¤Ê¤Ã¤Æ¤¤¤ë (¤ª¤½¤é¤¯ºÇ¤â½ÅÍפʺ¹°Û¤Ç¤¢¤í¤¦)¡£ -GNOME ¤È KDE ¤¬¶¦ÄÌ URI ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¼ýṲ́¹¤ë¤³¤È¤¬Ë¾¤Þ¤·¤¤¡£ -¤³¤Î man ¥Ú¡¼¥¸¤¬¡¢¾­Íè¤Ï¤½¤Î¼ýṲ́·¤¿·ë²Ì¤òµ­½Ò¤Ç¤­¤ë¤³¤È¤ò˾¤à¡£ -¤³¤Îºî¶È¤Ø¤Î½õÎϤò´­µ¯¤·¤¿¤¤¡£ +先に述べたように、これら二つの環境では info: スキームの +扱いが異なっている (おそらく最も重要な差異であろう)。 +GNOME と KDE が共通 URI フォーマットに収斂することが望ましい。 +この man ページが、将来はその収斂した結果を記述できることを望む。 +この作業への助力を喚起したい。 .\"O .SS Security -.SS ¥»¥­¥å¥ê¥Æ¥£ +.SS セキュリティ .PP .\"O A URI does not in itself pose a security threat. .\"O There is no general guarantee that a URL, which at one time @@ -1028,12 +1028,12 @@ GNOME .\"O later point in time; such a guarantee can only be .\"O obtained from the person(s) controlling that namespace and the .\"O resource in question. -URI ¤½¤Î¤â¤Î¤Ï¥»¥­¥å¥ê¥Æ¥£¤Î¶¼°Ò¤ò°ú¤­µ¯¤³¤¹¤â¤Î¤Ç¤Ï¤Ê¤¤¡£ -¤¢¤ë»þÅÀ¤Ç¤Ï¥ê¥½¡¼¥¹¤Î¾ì½ê¤òÍ¿¤¨¤Æ¤¤¤¿ URL ¤¬¡¢ -¤º¤Ã¤È¤½¤¦¤Ç¤¢¤ê¤Ä¤Å¤±¤ë¤È¤¤¤¦ÊݾڤϰìÈ̤ˤϤʤ¤¡£ -¤Þ¤¿¤¢¤ë URL ¤¬¡¢¾­Íè¤Ë¤ÏÊ̤Υ꥽¡¼¥¹¤ò¼¨¤µ¤Ê¤¤¤È¤â¸Â¤é¤Ê¤¤¡£ -¤³¤Î¤è¤¦¤ÊÊݾڤϡ¢¤½¤Î̾Á°¶õ´Ö¤È¥ê¥½¡¼¥¹¤È¤ò´ÉÍý¤·¤Æ¤¤¤ë¸Ä¿Í¤Ë -µ¢¤¹¤ë¤â¤Î¤Ë²á¤®¤Ê¤¤¡£ +URI そのものはセキュリティの脅威を引き起こすものではない。 +ある時点ではリソースの場所を与えていた URL が、 +ずっとそうでありつづけるという保証は一般にはない。 +またある URL が、将来には別のリソースを示さないとも限らない。 +このような保証は、その名前空間とリソースとを管理している個人に +帰するものに過ぎない。 .PP .\"O It is sometimes possible to construct a URL such that an attempt to .\"O perform a seemingly harmless operation, such as the @@ -1049,23 +1049,23 @@ URI .\"O operation. .\"O An example has been the use of a gopher URL to cause an .\"O unintended or impersonating message to be sent via a SMTP server. -̵³²¤Ë¸«¤¨¤ëÁàºî (¥ê¥½¡¼¥¹¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥¨¥ó¥Æ¥£¥Æ¥£¤Î¼èÆÀ¤Ê¤É) -¤Ë¤è¤Ã¤Æ¡¢¼ÂºÝ¤Ë¤Ï¥ê¥â¡¼¥È¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ëÆ°ºî¤ò°ú¤­µ¯¤³¤¹¤è¤¦¤Ê -URL ¤òµ­½Ò¤¹¤ë¤³¤È¤â¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï²Äǽ¤Ç¤¢¤ë¡£ -´í¸±¤Ê URL ¤Îŵ·¿Åª¤Ê¤â¤Î¤Ï¡¢¤½¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥×¥í¥È¥³¥ë¤Ë -ͽÌ󤵤ì¤Æ¤¤¤ë¥Ý¡¼¥ÈÈÖ¹æ¤È¤Ï°Û¤Ê¤ë¥Ý¡¼¥È¤ò»ØÄꤷ¤Æ¤¤¤ë¤â¤Î¤Ç¤¢¤ë¡£ -URL ¤ÎÆâÍƤˤÏÌ¿Î᤬´Þ¤Þ¤ì¤Æ¤¤¤Æ¡¢ -¤½¤Î¥×¥í¥È¥³¥ë¤Ë¤·¤¿¤¬¤Ã¤Æ²ò¼á¤µ¤ì¤¿¤È¤­¡¢ -ͽ´ü¤µ¤ì¤Ê¤¤Æ°ºî¤ò°úµ¯¤³¤¹¤Î¤Ç¤¢¤ë¡£ -Îã¤ò¤¢¤²¤ë¤È¡¢ gopher ¤Î URL ¤Ë¤è¤Ã¤Æ¡¢°Õ¿Þ¤·¤Ê¤¤¥á¥Ã¥»¡¼¥¸¤ä -¤Ê¤ê¤¹¤Þ¤·¥á¥Ã¥»¡¼¥¸¤Ê¤É¤¬ SMTP ¥µ¡¼¥Ð·Ðͳ¤ÇÁ÷¿®¤µ¤ì¤ë¤è¤¦¤Ê¤³¤È¤¬¤¢¤Ã¤¿¡£ +無害に見える操作 (リソースに関連づけられたエンティティの取得など) +によって、実際にはリモートにダメージを与える動作を引き起こすような +URL を記述することも場合によっては可能である。 +危険な URL の典型的なものは、そのネットワークプロトコルに +予約されているポート番号とは異なるポートを指定しているものである。 +URL の内容には命令が含まれていて、 +そのプロトコルにしたがって解釈されたとき、 +予期されない動作を引起こすのである。 +例をあげると、 gopher の URL によって、意図しないメッセージや +なりすましメッセージなどが SMTP サーバ経由で送信されるようなことがあった。 .PP .\"O Caution should be used when using any URL that specifies a port .\"O number other than the default for the protocol, especially when it is .\"O a number within the reserved space. -¤½¤Î¥×¥í¥È¥³¥ë¤Î¥Ç¥Õ¥©¥ë¥È°Ê³°¤Î¥Ý¡¼¥ÈÈÖ¹æ¤ò»ØÄꤷ¤Æ¤¤¤ë -URL ¤òÍѤ¤¤ë¤È¤­¤Ë¤ÏÃí°Õ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -Æäˤ½¤ÎÈֹ椬ͽÌó¶õ´Ö¤ÎÆâÉô¤Ë¤¢¤ë¾ì¹ç¤Ë¤Ï¡£ +そのプロトコルのデフォルト以外のポート番号を指定している +URL を用いるときには注意すべきである。 +特にその番号が予約空間の内部にある場合には。 .PP .\"O Care should be taken when a URI contains escaped delimiters for a .\"O given protocol (for example, CR and LF characters for telnet @@ -1074,24 +1074,24 @@ URL .\"O characters to be used to simulate an extra operation or parameter in .\"O that protocol, which might lead to an unexpected and possibly harmful .\"O remote operation to be performed. -URI ¤Ë¡¢¤½¤Î¥×¥í¥È¥³¥ë¤ËÂФ¹¤ë¥Ç¥ê¥ß¥¿¤¬¥¨¥¹¥±¡¼¥×¤µ¤ì¤¿¤«¤¿¤Á¤ÇÆþ¤Ã¤Æ¤¤¤ë -¾ì¹ç¤âÃí°Õ¤¬É¬ÍפǤ¢¤ë -(Î㤨¤Ð telnet ¥×¥í¥È¥³¥ë¤ËÂФ¹¤ë CR ʸ»ú¤ä LF ʸ»ú¤Ê¤É)¡£ -¤Ê¤¼¤Ê¤é¤³¤ì¤é¤ÏžÁ÷Á°¤Ë¥¨¥¹¥±¡¼¥×¤¬³°¤µ¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï¥×¥í¥È¥³¥ë¤ËÈ¿¤·¤Æ¤ª¤ê¡¢Í½´ü¤·¤Ê¤¤¡¢¤ª¤½¤é¤¯¤Ï³²¤Ë¤Ê¤ë¤è¤¦¤Ê -¥ê¥â¡¼¥ÈÆ°ºî¤ò°úµ¯¤³¤¹·ë²Ì¤È¤Ê¤ê¤«¤Í¤Ê¤¤¡£ +URI に、そのプロトコルに対するデリミタがエスケープされたかたちで入っている +場合も注意が必要である +(例えば telnet プロトコルに対する CR 文字や LF 文字など)。 +なぜならこれらは転送前にエスケープが外されないからである。 +これはプロトコルに反しており、予期しない、おそらくは害になるような +リモート動作を引起こす結果となりかねない。 .PP .\"O It is clearly unwise to use a URI that contains a password which is .\"O intended to be secret. .\"O In particular, the use of a password within .\"O the "userinfo" component of a URI is strongly recommended against except .\"O in those rare cases where the "password" parameter is intended to be public. -ÈëÌ©¤Ë¤·¤Æ¤ª¤¯¤Ù¤­¥Ñ¥¹¥ï¡¼¥É¤ò´Þ¤ó¤À URI ¤ò»È¤¦¤Î¤¬ -¸­¤¯¤Ê¤¤¤Î¤ÏÌÀ¤é¤«¤Ç¤¢¤ë¡£Æäˡ¢¥Ñ¥¹¥ï¡¼¥É¤ò URI ¤Î -"userinfo" ¤ÎÉôʬ¤Ë»È¤¦¤Î¤ÏÀäÂФËÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -¤¿¤À¤·¤½¤Î "password" ¤Î¥Ñ¥é¥á¡¼¥¿¤ò°Õ¿ÞŪ¤Ë¸ø³«¤·¤¿¤¤¾ì¹ç¤ÏÊ̤Ǥ¢¤ë¤¬¡£ +秘密にしておくべきパスワードを含んだ URI を使うのが +賢くないのは明らかである。特に、パスワードを URI の +"userinfo" の部分に使うのは絶対に避けるべきである。 +ただしその "password" のパラメータを意図的に公開したい場合は別であるが。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .PP .\"O Documentation may be placed in a variety of locations, so there .\"O currently isn't a good URI scheme for general online documentation @@ -1102,58 +1102,58 @@ URI .\"O directories .\"O (it may be in /usr/doc, or /usr/local/doc, or /usr/share, .\"O or somewhere else). -ʸ½ñ¤ÏÍÍ¡¹¤Ê¾ì½ê¤ËÃÖ¤«¤ì¤¦¤ë¡£¤·¤¿¤¬¤Ã¤Æ¸½»þÅÀ¤Ç¤Ï¡¢ -Ǥ°Õ¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç½ñ¤«¤ì¤¿°ìÈ̤Υª¥ó¥é¥¤¥óʸ½ñ¤ËÂФ¹¤ëÎɤ¤ URI ¥¹¥­¡¼¥à¤¬ -¸ºß¤·¤Ê¤¤¡£ - ·Á¼°¤Î»²¾È¤Ï»È¤¨¤Ê¤¤¡£¤Ê¤¼¤Ê¤é -¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤ä¥í¡¼¥«¥ë¤Ø¤Î¥¤¥ó¥¹¥È¡¼¥ë¤ÎºÝ¤Î¾ò·ï¤Ë¤è¤Ã¤Æ¡¢ -¥Õ¥¡¥¤¥ë¤Ï°Û¤Ê¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¤ë¤³¤È¤¬¤¢¤ë¤«¤é¤Ç¤¢¤ë -(/usr/doc ¤« /usr/local/doc ¤« /usr/share ¤«¤½¤Î¾¤Î¾ì½ê¤«¡¢¤Ê¤É¤Ê¤É)¡£ +文書は様々な場所に置かれうる。したがって現時点では、 +任意のフォーマットで書かれた一般のオンライン文書に対する良い URI スキームが +存在しない。 + 形式の参照は使えない。なぜなら +ディストリビューションやローカルへのインストールの際の条件によって、 +ファイルは異なるディレクトリに置かれることがあるからである +(/usr/doc か /usr/local/doc か /usr/share かその他の場所か、などなど)。 .\"O Also, the directory ZZZ usually changes when a version changes .\"O (though filename globbing could partially overcome this). .\"O Finally, using the file: scheme doesn't easily support people .\"O who dynamically load documentation from the Internet (instead of .\"O loading the files onto a local file system). -¤Þ¤¿¡¢¥Ç¥£¥ì¥¯¥È¥ê ZZZ ¤ÏÄ̾ï¥Ð¡¼¥¸¥ç¥ó¤¬ÊѤï¤ë¤È°Û¤Ê¤Ã¤¿¤â¤Î¤Ë¤Ê¤ë -(¥Õ¥¡¥¤¥ë̾¤Î¥°¥í¥Ö¤Ë¤è¤Ã¤Æ¤¢¤ëÄøÅÙ¹îÉþ¤Ç¤­¤ë¤À¤í¤¦¤¬)¡£ -ºÇ¸å¤Ë¤â¤¦°ì¤Ä¡¢Ê¸½ñ¤ò¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤«¤é (¥í¡¼¥«¥ë¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë -¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥É¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯) ưŪ¤Ë¥í¡¼¥É¤¹¤ë¿Í¡¹¤Ï¡¢ -¤Ê¤«¤Ê¤« file: ¥¹¥­¡¼¥à¤ò»È¤Ã¤Æ¤¯¤ì¤Ê¤¤¡£ +また、ディレクトリ ZZZ は通常バージョンが変わると異なったものになる +(ファイル名のグロブによってある程度克服できるだろうが)。 +最後にもう一つ、文書をインターネットから (ローカルのファイルシステムに +ファイルをロードするのではなく) 動的にロードする人々は、 +なかなか file: スキームを使ってくれない。 .\"O A future URI scheme may be added (e.g., "userdoc:") to permit .\"O programs to include cross-references to more detailed documentation .\"O without having to know the exact location of that documentation. .\"O Alternatively, a future version of the file-system specification may .\"O specify file locations sufficiently so that the file: scheme will .\"O be able to locate documentation. -¾­Íè¤Ë¤Ï¿·¤¿¤Ê URI ¥¹¥­¡¼¥à (Î㤨¤Ð "userdoc:" ¤Î¤è¤¦¤Ê) ¤¬Äɲ䵤졢 -¤è¤ê¾Ü¤·¤¤Ê¸½ñ¤Ø¤Î¥¯¥í¥¹¥ê¥Õ¥¡¥ì¥ó¥¹¤¬¡¢ -¤½¤Îʸ½ñ¤ÎÀµ³Î¤Ê¾ì½ê¤ò¥×¥í¥°¥é¥à¤¬ÃΤé¤Ê¤¯¤Æ¤â²Äǽ¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤¢¤ë¤¤¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àµ¬³Ê¤Î¾­Íè¤ÎÈÇ¤Ç -¥Õ¥¡¥¤¥ë¤Î¾ì½ê¤Î»ØÄê¤ò¤è¤ê¸·Ì©¤Ë¤·¤Æ¡¢ -file: ¥¹¥­¡¼¥à¤Ë¤è¤ëʸ½ñ¤Î°ÌÃÖ»ØÄ꤬²Äǽ¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +将来には新たな URI スキーム (例えば "userdoc:" のような) が追加され、 +より詳しい文書へのクロスリファレンスが、 +その文書の正確な場所をプログラムが知らなくても可能になるかもしれない。 +あるいは、ファイルシステム規格の将来の版で +ファイルの場所の指定をより厳密にして、 +file: スキームによる文書の位置指定が可能になるかもしれない。 .PP .\"O Many programs and file formats don't include a way to incorporate .\"O or implement links using URIs. -¥×¥í¥°¥é¥à¤ä¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¿¤¯¤Ç¤Ï¡¢ -URI ¤ò»È¤Ã¤¿¥ê¥ó¥¯¤ò¼è¤ê¹þ¤ó¤À¤ê¼ÂÁõ¤·¤¿¤ê¤¹¤ëÊýË¡¤¬¤Ê¤¤¡£ +プログラムやファイルフォーマットの多くでは、 +URI を使ったリンクを取り込んだり実装したりする方法がない。 .PP .\"O Many programs can't handle all of these different URI formats; there .\"O should be a standard mechanism to load an arbitrary URI that automatically .\"O detects the users' environment (e.g., text or graphics, .\"O desktop environment, local user preferences, and currently executing .\"O tools) and invokes the right tool for any URI. -¥×¥í¥°¥é¥à¤Î¿¤¯¤Ï¡¢¤³¤ì¤é¤Î URI ¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¤¹¤Ù¤Æ¤Ï°·¤¨¤Ê¤¤¡£ -¥æ¡¼¥¶¤Î´Ä¶­ (¥Æ¥­¥¹¥È¤«¥°¥é¥Õ¥£¥Ã¥¯¤«¡¢ -¥Ç¥¹¥¯¥È¥Ã¥×´Ä¶­¡¢¥í¡¼¥«¥ë¥æ¡¼¥¶¤Î¹¥¤ß¡¢ -¸½ºß¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¥Ä¡¼¥ë) ¤Ê¤É¤ò¼«Æ°Åª¤Ë¸¡ÃΤ·¤Æ¡¢ -Ǥ°Õ¤Î URI ¤ò¥í¡¼¥É¤·¡¢¤½¤Î URI ¤ËŬ¤·¤¿¥Ä¡¼¥ë¤òµ¯Æ°¤¹¤ë¤è¤¦¤Ê -ɸ½àŪ¤Ê»ÅÁȤߤ¬¤¢¤ë¤È¤¤¤¤¤Î¤À¤í¤¦¤¬¡£ +プログラムの多くは、これらの URI フォーマットをすべては扱えない。 +ユーザの環境 (テキストかグラフィックか、 +デスクトップ環境、ローカルユーザの好み、 +現在実行されているツール) などを自動的に検知して、 +任意の URI をロードし、その URI に適したツールを起動するような +標準的な仕組みがあるといいのだろうが。 .\"O .\" .SH AUTHOR -.\" .SH Ãø¼Ô +.\" .SH 著者 .\"O .\" David A. Wheeler (dwheeler@dwheeler.com) wrote this man page. -.\" ¤³¤Î man ¥Ú¡¼¥¸¤Ï David A. Wheeler (dwheeler@ida.dwheeler.com) ¤¬½ñ¤¤¤¿¡£ +.\" この man ページは David A. Wheeler (dwheeler@ida.dwheeler.com) が書いた。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR lynx (1), .BR man2html (1), .BR mailaddr (7), diff --git a/draft/man7/utf-8.7 b/draft/man7/utf-8.7 index 3f47db03..17398730 100644 --- a/draft/man7/utf-8.7 +++ b/draft/man7/utf-8.7 @@ -39,10 +39,10 @@ .TH UTF-8 7 2001-05-11 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O UTF-8 \- an ASCII compatible multibyte Unicode encoding -.SH ̾Á° -UTF-8 \- ASCII ¤È¸ß´¹À­¤Î¤¢¤ë¿¥Ð¥¤¥È Unicode ¤ÎÉä¹æ²½ +.SH 名前 +UTF-8 \- ASCII と互換性のある多バイト Unicode の符号化 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .B Unicode 3.0 .\"O character set occupies a 16-bit code space. @@ -66,26 +66,26 @@ UTF-8 \- ASCII .\"O a superset of Unicode, occupies even a 31-bit code space and the obvious .\"O .B UCS-4 .\"O encoding for it (a sequence of 32-bit words) has the same problems. -.B "¥æ¥Ë¥³¡¼¥É (Unicode) 3.0" -ʸ»ú½¸¹ç¤Ï 16 ¥Ó¥Ã¥È¤Î¥³¡¼¥É¶õ´Ö¤òÀê¤á¤ë¡£ -ºÇ¤âñ½ã¤Ê Unicode ¤ÎÉä¹æ²½ÊýË¡ +.B "ユニコード (Unicode) 3.0" +文字集合は 16 ビットのコード空間を占める。 +最も単純な Unicode の符号化方法 .RB ( UCS-2 ) -¤Ç¤Ï¡¢Ê¸»ú¤Ï 16 ¥Ó¥Ã¥È¡¦¥ï¡¼¥É (16 ¥Ó¥Ã¥Èʸ»ú¤ÎÎó) ¤Ç¹½À®¤µ¤ì¤ë¡£ -¤³¤ÎÎó¤Ë¤Ï¡¢ -\(aq\\0\(aq ¤ä \(aq/\(aq ¤Î¤è¤¦¤Ê (¥Õ¥¡¥¤¥ë̾¤ä C ¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Î°ú¤­¿ô¤ÎÆâÉô¤Ç) -Æüì¤Ê°ÕÌ£¤ò»ý¤Ä 16 ¥Ó¥Ã¥Èʸ»ú¤¬´Þ¤Þ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ -¤µ¤é¤Ë¡¢¤Û¤È¤ó¤É¤Î UNIX ¥Ä¡¼¥ë¤Ï ASCII ¥Õ¥¡¥¤¥ë¤òÆþÎϤȤ·¤Æ´üÂÔ¤¹¤ë¤Î¤Ç¡¢ -ÂçÉý¤ÊÊѹ¹¤Ê¤·¤Ë¤Ï 16 ¥Ó¥Ã¥È¥ï¡¼¥É¤òʸ»ú¤È¤·¤ÆÆɤळ¤È¤¬¤Ç¤­¤Ê¤¤¡£ -¤³¤ì¤é¤ÎÍýͳ¤«¤é¡¢ +では、文字は 16 ビット・ワード (16 ビット文字の列) で構成される。 +この列には、 +\(aq\\0\(aq や \(aq/\(aq のような (ファイル名や C のライブラリ関数の引き数の内部で) +特殊な意味を持つ 16 ビット文字が含まれることがある。 +さらに、ほとんどの UNIX ツールは ASCII ファイルを入力として期待するので、 +大幅な変更なしには 16 ビットワードを文字として読むことができない。 +これらの理由から、 .B UCS-2 -¤Ï¥Õ¥¡¥¤¥ë̾¡¦¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¡¦´Ä¶­ÊÑ¿ô¤Ê¤É¤ËÍѤ¤¤ë¡¢³°ÉôÍѤΠ+はファイル名・テキストファイル・環境変数などに用いる、外部用の .B Unicode -Éä¹æ¤È¤·¤Æ¤ÏÉÔŬÀڤǤ¢¤ë¡£ -Unicode ¤Î¥¹¡¼¥Ñ¡¼¥»¥Ã¥È¤Ç¤¢¤ë +符号としては不適切である。 +Unicode のスーパーセットである .B "ISO 10646 Universal Character Set (UCS)" -¤Ï 31 ¥Ó¥Ã¥È¤Î¥³¡¼¥É¶õ´Ö¤òÀê¤á¤ë¤¬¡¢¤½¤ÎºÇ¤âñ½ã¤ÊÉä¹æ²½¤Ç¤¢¤ë +は 31 ビットのコード空間を占めるが、その最も単純な符号化である .B UCS-4 -¤Ë¤â (32 ¥Ó¥Ã¥È¡¦¥ï¡¼¥É¤ÎÎó¤È¤·¤Æ) Ʊ¤¸ÌäÂ꤬¤¢¤ë¡£ +にも (32 ビット・ワードの列として) 同じ問題がある。 .PP .\"O The .\"O .B UTF-8 @@ -97,20 +97,20 @@ Unicode .\"O .B Unicode .\"O is used on UNIX-style operating systems. .B Unicode -¤È +と .B UCS -¤Î +の .B UTF-8 -Éä¹æ²½¤Ë¤Ï¤³¤ì¤é¤ÎÌäÂ꤬¤Ê¤¤¤Î¤Ç¡¢UNIX ·Á¼°¤Î OS ¾å¤Ç +符号化にはこれらの問題がないので、UNIX 形式の OS 上で .B Unicode -ʸ»ú½¸¹ç¤ò»ÈÍѤ¹¤ë¤¿¤á¤Î°ìÈÌŪ¤ÊÊýË¡¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ +文字集合を使用するための一般的な方法となっている。 .\"O .SS Properties -.SS À­¼Á +.SS 性質 .\"O The .\"O .B UTF-8 .\"O encoding has the following nice properties: .B UTF-8 -Éä¹æ²½¤Ï°Ê²¼¤Î¤è¤¦¤ÊÁÇÀ²¤·¤¤À­¼Á¤òÈ÷¤¨¤Æ¤¤¤ë: +符号化は以下のような素晴しい性質を備えている: .TP 0.2i * .\"O .B UCS @@ -124,15 +124,15 @@ Unicode .\"O and .\"O .BR UTF-8 . .B UCS -ʸ»ú¤Î¤¦¤Á 0x00000000 ¤«¤é 0x0000007f ¤Þ¤Ç (¸ÅŵŪ¤Ê +文字のうち 0x00000000 から 0x0000007f まで (古典的な .B US-ASCII -¤Îʸ»ú) ¤Ï (ASCII ¤È¤Î¸ß´¹À­¤Î¤¿¤á¤Ë) ñ½ã¤Ë 0x00 ¤«¤é 0x7f ¤Î¥Ð¥¤¥È¤Ë -Éä¹æ²½¤¹¤ë¡£¤³¤ì¤Ï 7 ¥Ó¥Ã¥È ASCII ʸ»ú¤Î¤ß¤ò´Þ¤à¥Õ¥¡¥¤¥ë¤äʸ»úÎó¤Ë -´Ø¤·¤Æ¤Ï¡¢ +の文字) は (ASCII との互換性のために) 単純に 0x00 から 0x7f のバイトに +符号化する。これは 7 ビット ASCII 文字のみを含むファイルや文字列に +関しては、 .B ASCII -¤È +と .B UTF-8 -¤ÇƱ¤¸Éä¹æ²½¤ò¹Ô¤Ê¤¦¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +で同じ符号化を行なうことを意味する。 .TP * .\"O All @@ -141,33 +141,33 @@ Unicode .\"O consisting only of bytes in the range 0x80 to 0xfd, so no ASCII .\"O byte can appear as part of another character and there are no .\"O problems with, for example, \(aq\\0\(aq or \(aq/\(aq. -0x7f ¤è¤êÂ礭¤¤¤Î¤¹¤Ù¤Æ¤Î +0x7f より大きいのすべての .B UCS -ʸ»ú¤Ï¡¢ 0x80 ¤«¤é 0xfd ¤Þ¤Ç¤ÎÈϰϤΥХ¤¥È¤Î¤ß¤ò´Þ¤à -¿¥Ð¥¤¥Èʸ»úÎó¤ËÉä¹æ²½¤µ¤ì¤ë¡£ -¤·¤¿¤¬¤Ã¤Æʸ»úÎó¤Ë -ASCII ¥Ð¥¤¥È¤¬´Þ¤Þ¤ì¤ë¤³¤È¤¬¤Ê¤¯¡¢\(aq\\0\(aq ¤ä \(aq/\(aq ¤ÎÌäÂê¤ÏȯÀ¸¤·¤Ê¤¤¡£ +文字は、 0x80 から 0xfd までの範囲のバイトのみを含む +多バイト文字列に符号化される。 +したがって文字列に +ASCII バイトが含まれることがなく、\(aq\\0\(aq や \(aq/\(aq の問題は発生しない。 .TP * .\"O The lexicographic sorting order of .\"O .B UCS-4 .\"O strings is preserved. .B UCS-4 -ʸ»úÎó¤Ç¤Ï¼­½ñŪ¥½¡¼¥È¤Î½ç½ø¤¬Êݤ¿¤ì¤ë¡£ +文字列では辞書的ソートの順序が保たれる。 .TP * .\"O All possible 2^31 UCS codes can be encoded using .\"O .BR UTF-8 . -2^31 ¥Ó¥Ã¥È¤Î¤¹¤Ù¤Æ¤Î UCS ¥³¡¼¥É ¤¬ +2^31 ビットのすべての UCS コード が .B UTF-8 -¤ò»ÈÍѤ·¤ÆÉä¹æ²½¤Ç¤­¤ë¡£ +を使用して符号化できる。 .TP * .\"O The bytes 0xfe and 0xff are never used in the .\"O .B UTF-8 .\"O encoding. .B UTF-8 -Éä¹æ²½¤Ç¤Ï 0xfe ¤È 0xff ¤Î¥Ð¥¤¥È¤ÏÀäÂФ˻ÈÍѤ·¤Ê¤¤¡£ +符号化では 0xfe と 0xff のバイトは絶対に使用しない。 .TP * .\"O The first byte of a multibyte sequence which represents a single non-ASCII @@ -178,14 +178,14 @@ ASCII .\"O are in the range 0x80 to 0xbf. .\"O This allows easy resynchronization and .\"O makes the encoding stateless and robust against missing bytes. -ASCII ¤Ç¤Ê¤¤ +ASCII でない .B UCS -ʸ»ú¤Î¿¥Ð¥¤¥ÈÎó¤ÎºÇ½é¤Î¥Ð¥¤¥È¤Ï¡¢ -¾ï¤Ë 0xc0 ¤«¤é 0xfd ¤ÎÈϰϤÇɽ¸½¤µ¤ì¡¢ -¤½¤Îʸ»ú¤¬²¿¥Ð¥¤¥È¤Ç¹½À®¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤¹¡£ -¿¥Ð¥¤¥ÈÎó¤Î»Ä¤ê¤ÎÉôʬ¤Î¥Ð¥¤¥È¤Ï¡¢¤½¤ì¤¾¤ì 0x80 ¤«¤é 0xbf ¤ÎÈϰϤˤ¢¤ë¡£ -¤³¤ì¤Ë¤è¤êƱ´ü¤¬Íưפˤʤꡢ¥¹¥Æ¡¼¥È¥ì¥¹¤ÊÉä¹æ²½¤¬²Äǽ¤Ë¤Ê¤ê¡¢ -¥Ð¥¤¥È¤Îʶ¼º¤ËÂФ·¤Æ·ø¸Ç¤Ë¤Ê¤ë¡£ +文字の多バイト列の最初のバイトは、 +常に 0xc0 から 0xfd の範囲で表現され、 +その文字が何バイトで構成されているかを示す。 +多バイト列の残りの部分のバイトは、それぞれ 0x80 から 0xbf の範囲にある。 +これにより同期が容易になり、ステートレスな符号化が可能になり、 +バイトの紛失に対して堅固になる。 .TP * .\"O .B UTF-8 @@ -197,20 +197,20 @@ ASCII .\"O can only be up to four bytes long in .\"O .BR UTF-8 . .B UTF-8 -¤ò»ÈÍѤ·¤¿ +を使用した .B UCS -ʸ»ú¤ÎÉä¹æ²½¤ÏºÇÂç 6 ¥Ð¥¤¥È¤ÎŤµ¤Ë¤Ê¤ë¡£ -¤·¤«¤·¡¢ +文字の符号化は最大 6 バイトの長さになる。 +しかし、 .B Unicode -µ¬³Ê¤Ç¤Ï 0x10ffff ¤è¤êÀè¤Îʸ»ú¤ò»ØÄꤷ¤Ê¤¤¤Î¤Ç¡¢Unicode ʸ»ú¤Ï +規格では 0x10ffff より先の文字を指定しないので、Unicode 文字は .B UTF-8 -¤Ç¤Ï 4 ¥Ð¥¤¥È¤Þ¤Ç¤Ë¤·¤«¤Ê¤é¤Ê¤¤¡£ +では 4 バイトまでにしかならない。 .\"O .SS Encoding -.SS Éä¹æ²½ +.SS 符号化 .\"O The following byte sequences are used to represent a character. .\"O The sequence to be used depends on the UCS code number of the character: -°Ê²¼¤Î¥Ð¥¤¥ÈÎó¤¬Ê¸»ú¤Îɽ¸½¤Ë»ÈÍѤµ¤ì¤ë¡£ -¤É¤Î¥Ð¥¤¥ÈÎó¤ò»ÈÍѤ¹¤ë¤«¤Ïʸ»ú¤Î UCS ¥³¡¼¥ÉÈÖ¹æ¤Ë°Í¸¤¹¤ë: +以下のバイト列が文字の表現に使用される。 +どのバイト列を使用するかは文字の UCS コード番号に依存する: .TP 0.4i 0x00000000 \- 0x0000007F: .RI 0 xxxxxxx @@ -252,8 +252,8 @@ ASCII .\"O Only the shortest possible multibyte sequence .\"O which can represent the code number of the character can be used. .I xxx -¥Ó¥Ã¥È¤ÎÉôʬ¤Ë¤Ï 2 ¿Ê¿ô¤Çɽ¤ï¤·¤¿Ê¸»ú¥³¡¼¥É¤Î¥Ó¥Ã¥ÈÉôʬ¤¬Âбþ¤¹¤ë¡£ -¤½¤Îʸ»ú¤òɽ¸½¤¹¤ë¤Î¤ËºÇ¤âû¤¤¥Ð¥¤¥ÈÎó¤Î¤ß¤¬»ÈÍѤǤ­¤ë¡£ +ビットの部分には 2 進数で表わした文字コードのビット部分が対応する。 +その文字を表現するのに最も短いバイト列のみが使用できる。 .PP .\"O The .\"O .B UCS @@ -261,37 +261,37 @@ ASCII .\"O 0xffff (UCS noncharacters) should not appear in conforming .\"O .B UTF-8 .\"O streams. -0xd800\(en0xdfff (UTF-16 ¥µ¥í¥²¡¼¥È) ¤ä -0xfffe, 0xffff (UCS ¤Î noncharacter) ¤È¤¤¤¦ +0xd800\(en0xdfff (UTF-16 サロゲート) や +0xfffe, 0xffff (UCS の noncharacter) という .B UCS -¥³¡¼¥É¤ÎÃͤϡ¢ +コードの値は、 .B UTF-8 -¤Ë½àµò¤·¤¿¥¹¥È¥ê¡¼¥à¤ËÆþ¤ì¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +に準拠したストリームに入れるべきではない。 .\"O .SS Example -.SS Îã +.SS 例 .\"O .B Unicode .\"O character 0xa9 = 1010 1001 (the copyright sign) is encoded .\"O in UTF-8 as .B Unicode -ʸ»ú¤Î 0xa9 = 1010 1001 (¥³¥Ô¡¼¥é¥¤¥È¡¦¥Þ¡¼¥¯) ¤Ï UTF-8 ¤ÇÉä¹æ²½¤¹¤ë¤È +文字の 0xa9 = 1010 1001 (コピーライト・マーク) は UTF-8 で符号化すると .sp .RS 11000010 10101001 = 0xc2 0xa9 .RE .sp -¤Ë¤Ê¤ë¡£ +になる。 .PP .\"O and character 0x2260 = 0010 0010 0110 0000 (the "not equal" symbol) is .\"O encoded as: -0x2260 = 0010 0010 0110 0000 (ÉÔÅù¹æ) ¤Ï +0x2260 = 0010 0010 0110 0000 (不等号) は .sp .RS 11100010 10001001 10100000 = 0xe2 0x89 0xa0 .RE .sp -¤Ë¤Ê¤ë¡£ +になる。 .\"O .SS Application Notes -.SS ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤ª¤±¤ëÃí°Õ +.SS アプリケーションにおける注意 .\"O Users have to select a .\"O .B UTF-8 .\"O locale, for example with @@ -303,11 +303,11 @@ ASCII .\"O in order to activate the .\"O .B UTF-8 .\"O support in applications. -¥æ¡¼¥¶¡¼¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î +ユーザーはアプリケーションの .B UTF-8 -¥µ¥Ý¡¼¥È¤òÍ­¸ú¤Ë¤¹¤ë¤¿¤á¤Ë¡¢°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ +サポートを有効にするために、以下のようにして .B UTF-8 -¥í¥±¡¼¥ë¤òÁªÂò¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ロケールを選択しなければならない。 .PP .RS export LANG=en_GB.UTF-8 @@ -320,9 +320,9 @@ export LANG=en_GB.UTF-8 .\"O setlocale(LC_CTYPE, "") .\"O .RE .\"O .PP -»ÈÍѤµ¤ì¤Æ¤¤¤ëʸ»úÉä¹æ²½¤òʬ¤«¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥½¥Õ¥È¥¦¥§¥¢¤Ï¡¢ -°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ¾ï¤Ë¥í¥±¡¼¥ë¤òÀßÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£ +使用されている文字符号化を分かっていなければならない +アプリケーションソフトウェアは、 +以下のようにして常にロケールを設定すべきである。 .PP .RS setlocale(LC_CTYPE, "") @@ -341,13 +341,13 @@ setlocale(LC_CTYPE, "") .\"O communication, plaintext file content, filenames and environment .\"O variables are encoded in .\"O .BR UTF-8 . -¤Þ¤¿ +また .B UTF-8 -¥í¥±¡¼¥ë¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Æ¡¢¥×¥ì¡¼¥ó¥Æ¥­¥¹¥È¤Îɸ½àÆþ½ÐÎÏ¡¦Ã¼Ëö´ÖÄÌ¿®¡¦ -¥×¥ì¡¼¥ó¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¡¦¥Õ¥¡¥¤¥ë̾¡¦´Ä¶­ÊÑ¿ô¤¬ +ロケールが選択されていて、プレーンテキストの標準入出力・端末間通信・ +プレーンテキストファイルの内容・ファイル名・環境変数が .B UTF-8 -¤ÇÉä¹æ²½¤µ¤ì¤Æ¤¤¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤¿¤á¤Ë¡¢ -¥×¥í¥°¥é¥Þ¡¼¤Ï°Ê²¼¤Î¤è¤¦¤Ê¼°¤ò»î¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +で符号化されているかをチェックするために、 +プログラマーは以下のような式を試すことができる。 .PP .RS strcmp(nl_langinfo(CODESET), "UTF-8") == 0 @@ -362,15 +362,15 @@ strcmp(nl_langinfo(CODESET), "UTF-8") == 0 .\"O .B UTF-8 .\"O locales. .B US-ASCII -¤ä +や .B ISO 8859 -¤È¤¤¤Ã¤¿¥·¥ó¥°¥ë¥Ð¥¤¥È¤ÎÉä¹æ²½¤¬½¬´·¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥×¥í¥°¥é¥Þ¡¼¤Ï¡¢ -¤³¤ì¤Þ¤Ç¤Î 2 ¤Ä¤Î²¾Ä꤬ +といったシングルバイトの符号化が習慣になっているプログラマーは、 +これまでの 2 つの仮定が .B UTF-8 -¥í¥±¡¼¥ë¤Ë¤ª¤¤¤Æ¤ÏºÇÁáÍ­¸ú¤Ç¤Ï¤Ê¤¯¤Ê¤Ã¤¿¤³¤È¤òÃΤäƤª¤¯¤Ù¤­¤À¡£ +ロケールにおいては最早有効ではなくなったことを知っておくべきだ。 .\"O Firstly, a single byte does not necessarily correspond any .\"O more to a single character. -1 ÈÖÌܤÎÊѹ¹ÅÀ¤Ï¡¢1 ¥Ð¥¤¥È¤¬É¬¤º¤·¤â 1 ¤Ä¤Îʸ»ú¤ËÂбþ¤·¤Ê¤¤¤È¤¤¤¦ÅÀ¤Ç¤¢¤ë¡£ +1 番目の変更点は、1 バイトが必ずしも 1 つの文字に対応しないという点である。 .\"O Secondly, since modern terminal emulators .\"O in .\"O .B UTF-8 @@ -381,26 +381,26 @@ strcmp(nl_langinfo(CODESET), "UTF-8") == 0 .\"O outputting a single character does not necessarily advance the cursor .\"O by one position as it did in .\"O .BR ASCII . -2 ÈÖÌܤÎÊѹ¹ÅÀ¤Ï¡¢ºÇ¶á¤ÎüËö¥¨¥ß¥å¥ì¡¼¥¿¤Ï +2 番目の変更点は、最近の端末エミュレータは .B UTF-8 -¥â¡¼¥É¤Ë¤ª¤¤¤ÆÃæ¹ñ¸ì¡¦ÆüËܸ졦´Ú¹ñÄ«Á¯¸ì¤Î -.B Á´³Ñʸ»ú -¤ä¥¹¥Ú¡¼¥¹¤¬Æþ¤é¤Ê¤¤ (nonspacing) -.B "¹çÀ®Ê¸»ú (combining characters)" -¤ËÂбþ¤·¤Æ¤¤¤ë¤Î¤Ç¡¢ +モードにおいて中国語・日本語・韓国朝鮮語の +.B 全角文字 +やスペースが入らない (nonspacing) +.B "合成文字 (combining characters)" +に対応しているので、 .B ASCII -¤Î¤È¤­¤Î¤è¤¦¤Ë 1 ʸ»ú½ÐÎϤ·¤¿¸å¤Ç -¥«¡¼¥½¥ë¤òɬ¤º¤·¤â 1 ¤Ä¤À¤±¿Ê¤á¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¤È¤¤¤¦ÅÀ¤Ç¤¢¤ë¡£ +のときのように 1 文字出力した後で +カーソルを必ずしも 1 つだけ進めるわけではないという点である。 .\"O Library functions such as .\"O .BR mbsrtowcs (3) .\"O and .\"O .BR wcswidth (3) .\"O should be used today to count characters and cursor positions. -º£Æü¤Ç¤Ï¡¢Ê¸»ú¤ä¥«¡¼¥½¥ë¤Î°ÌÃÖ¤ò¿ô¤¨¤ë¤Î¤Ë +今日では、文字やカーソルの位置を数えるのに .BR mbsrtowcs (3) -¤ä +や .BR wcswidth (3) -¤È¤¤¤Ã¤¿¥é¥¤¥Ö¥é¥ê´Ø¿ô¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£ +といったライブラリ関数を使うべきである。 .PP .\"O The official ESC sequence to switch from an .\"O .B ISO 2022 @@ -413,18 +413,18 @@ strcmp(nl_langinfo(CODESET), "UTF-8") == 0 .\"O to ISO 2022 is ESC % @ ("\\x1b%@"). .\"O Other ISO 2022 sequences (such as .\"O for switching the G0 and G1 sets) are not applicable in UTF-8 mode. -(VT100 üËö¤Ê¤É¤Ç»È¤ï¤ì¤ë) +(VT100 端末などで使われる) .B ISO 2022 -Éä¹æ²½·Á¼°¤«¤é +符号化形式から .B UTF-8 -¤ØÀÚÂؤ¨¤ë¸ø¼°¤Ê¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤Ï ESC % G ("\\x1b%G") ¤Ç¤¢¤ë¡£ -¤³¤ì¤ËÂбþ¤¹¤ë +へ切替える公式なエスケープシーケンスは ESC % G ("\\x1b%G") である。 +これに対応する .B UTF-8 -¤«¤é +から .B ISO 2022 -¤Ø¤Î¥ê¥¿¡¼¥ó¥·¡¼¥±¥ó¥¹¤Ï ESC % @ ("\\x1b%@") ¤Ç¤¢¤ë¡£ -(G0 ¥»¥Ã¥È¤È G1 ¥»¥Ã¥È¤òÀÚÂؤ¨¤ë¤È¤¤¤Ã¤¿) -¤½¤Î¾¤Î ISO 2022 ¥·¡¼¥±¥ó¥¹¤Ï¡¢UTF-8 ¥â¡¼¥É¤Ç¤Ï»È¤¨¤Ê¤¤¡£ +へのリターンシーケンスは ESC % @ ("\\x1b%@") である。 +(G0 セットと G1 セットを切替えるといった) +その他の ISO 2022 シーケンスは、UTF-8 モードでは使えない。 .PP .\"O It can be hoped that in the foreseeable future, .\"O .B UTF-8 @@ -434,27 +434,27 @@ strcmp(nl_langinfo(CODESET), "UTF-8") == 0 .\"O .B ISO 8859 .\"O at all levels as the common character encoding on POSIX systems, .\"O leading to a significantly richer environment for handling plain text. -ͽÃΤǤ­¤ë¾­Íè¤Ç¤Ï¡¢POSIX ¥·¥¹¥Æ¥à¾å¤Î°ìÈÌŪ¤Êʸ»úÉä¹æ²½¤ÎÁ´¤Æ¤Î¥ì¥Ù¥ë¤Ç +予知できる将来では、POSIX システム上の一般的な文字符号化の全てのレベルで .B UTF-8 -¤¬ +が .B ASCII -¤È +と .B ISO 8859 -¤òÃÖ¤­´¹¤¨¡¢¥×¥ì¡¼¥ó¥Æ¥­¥¹¥È¤ò°·¤¦Èó¾ï¤ËÍ¥¤ì¤¿´Ä¶­¤¬ºî¤é¤ì¤ë¤³¤È¤¬´üÂԤǤ­¤ë¡£ +を置き換え、プレーンテキストを扱う非常に優れた環境が作られることが期待できる。 .\"O .SS Security -.SS ¥»¥­¥å¥ê¥Æ¥£ +.SS セキュリティ .\"O The .\"O .BR Unicode " and " UCS .\"O standards require that producers of .\"O .B UTF-8 .\"O shall use the shortest form possible, for example, producing a two-byte .\"O sequence with first byte 0xc0 is nonconforming. -.BR Unicode " ¤È " UCS -¤Îµ¬³Ê¤Ç¤Ï¡¢ +.BR Unicode " と " UCS +の規格では、 .B UTF-8 -¤ÎÀ¸À®¼Ô¤Ï¤Ç¤­¤ë¤À¤±Ã»¤¤·Á¼°¤òÍѤ¤¤ë¤è¤¦Í׵ᤷ¤Æ¤¤¤ë¡£ -Î㤨¤Ð¡¢ÀèƬ¥Ð¥¤¥È¤¬ 0xc0 ¤Ç¤¢¤ë¤è¤¦¤Ê 2 ¥Ð¥¤¥ÈÎó¤ò -À¸À®¤¹¤ë¤Î¤Ï½àµò¤·¤Æ¤¤¤ë¤È¤Ï¤¤¤¨¤Ê¤¤¡£ +の生成者はできるだけ短い形式を用いるよう要求している。 +例えば、先頭バイトが 0xc0 であるような 2 バイト列を +生成するのは準拠しているとはいえない。 .\"O .B Unicode 3.1 .\"O has added the requirement that conforming programs must not accept .\"O non-shortest forms in their input. @@ -468,27 +468,27 @@ strcmp(nl_langinfo(CODESET), "UTF-8") == 0 .\"O .B UTF-8 .\"O encoding. .B Unicode 3.1 -¤Ç¤Ï¡¢µ¬³Ê¤Ë½àµò¤¹¤ë¥×¥í¥°¥é¥à¤Ï -ºÇû¤Îɽ¸½·Á¼°¤Ç¤Ï¤Ê¤¤ÆþÎϤò¼õ¤±ÉÕ¤±¤Ê¤¤¡¢¤È¤¤¤¦Í×µá»ö¹à¤¬Äɲ䵤줿¡£ -¤³¤ì¤Ï¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÍýͳ¤Ë¤è¤ë¡£ -¥æ¡¼¥¶¡¼ÆþÎϤ¬¥»¥­¥å¥ê¥Æ¥£¾å¤Î´í¸±¤ËÂФ·¥Á¥§¥Ã¥¯¤µ¤ì¤ë¾ì¹ç¡¢ -¥×¥í¥°¥é¥à¤Ï +では、規格に準拠するプログラムは +最短の表現形式ではない入力を受け付けない、という要求事項が追加された。 +これはセキュリティ上の理由による。 +ユーザー入力がセキュリティ上の危険に対しチェックされる場合、 +プログラムは .B ASCII -ÈǤΠ"/../" ¤ä ";" ¤ä "NUL" ¤À¤±¤ò¥Á¥§¥Ã¥¯¤·¡¢ -ºÇû¤ËÉä¹æ²½¤µ¤ì¤Æ¤Ê¤¤¤³¤ì¤é¤Îʸ»ú¤ò¸«²á¤´¤·¤Æ¤·¤Þ¤¦¤«¤â¤·¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ -¤Ê¤¼¤Ê¤é¡¢ºÇû¤Ç¤Ï¤Ê¤¤ +版の "/../" や ";" や "NUL" だけをチェックし、 +最短に符号化されてないこれらの文字を見過ごしてしまうかもしれないからである。 +なぜなら、最短ではない .B UTF-8 -Éä¹æ²½¤Ç¤Ï¡¢¤³¤ì¤é¤Îʸ»ú¤òɽ¸½¤¹¤ë¤è¤¦¤ÊÍÍ¡¹¤Ê +符号化では、これらの文字を表現するような様々な .B ASCII -°Ê³°¤Î·Á¼°¤¬Â¸ºß¤¹¤ë¤¿¤á¤Ç¤¢¤ë¡£ +以外の形式が存在するためである。 .\"O .SS Standards -.SS ½àµò +.SS 準拠 ISO/IEC 10646-1:2000, Unicode 3.1, RFC\ 2279, Plan 9. .\"O .\" .SH AUTHOR -.\" .SH Ãø¼Ô +.\" .SH 著者 .\" Markus Kuhn .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR nl_langinfo (3), .BR setlocale (3), .BR charsets (7), diff --git a/draft/man7/x25.7 b/draft/man7/x25.7 index d6226320..173621c3 100644 --- a/draft/man7/x25.7 +++ b/draft/man7/x25.7 @@ -11,17 +11,17 @@ .TH X25 7 2008-08-08 "Linux" "Linux Programmer's Manual" .\"O .SH NAME .\"O x25, AF_X25 \- ITU-T X.25 / ISO-8208 protocol interface. -.SH ̾Á° -x25, AF_X25 \- ITU-T X.25 / ISO-8208 ¥×¥í¥È¥³¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ +.SH 名前 +x25, AF_X25 \- ITU-T X.25 / ISO-8208 プロトコルインターフェース .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B #include .br .B #include .sp .B x25_socket = socket(AF_X25, SOCK_SEQPACKET, 0); .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O X25 sockets provide an interface to the X.25 packet layer protocol. .\"O This allows applications to .\"O communicate over a public X.25 data network as standardized by @@ -30,14 +30,14 @@ x25, AF_X25 \- ITU-T X.25 / ISO-8208 .\"O X25 sockets can also be used for communication .\"O without an intermediate X.25 network (X.25 DTE-DTE mode) as described .\"O in ISO-8208. -X25 ¥½¥±¥Ã¥È¤Ï X.25 ¥Ñ¥±¥Ã¥ÈÁØ¥×¥í¥È¥³¥ë¤ËÂФ¹¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÄ󶡤¹¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¥Ñ¥Ö¥ê¥Ã¥¯¤Ê X.25 ¥Ç¡¼¥¿¥Í¥Ã¥È¥ï¡¼¥¯¤Ç -ÄÌ¿®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ X.25 ¤Ï +X25 ソケットは X.25 パケット層プロトコルに対するインターフェースを提供する。 +これにより、アプリケーションはパブリックな X.25 データネットワークで +通信することができるようになる。 X.25 は International Telecommunication Union's recommendation X.25 -(X.25 DTE-DCE mode) ¤Çɸ½à²½¤µ¤ì¤Æ¤¤¤ë¡£ -X25 ¥½¥±¥Ã¥È¤Ï¡¢Ãæ´ÖÁؤΤʤ¤ X.25 ¥Í¥Ã¥È¥ï¡¼¥¯ (X.25 DTE-DTE mode) -¤Ç¤ÎÄÌ¿®¤Ë¤âÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -DTE-DTE ¥â¡¼¥É¤Ï ISO-8208 ¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +(X.25 DTE-DCE mode) で標準化されている。 +X25 ソケットは、中間層のない X.25 ネットワーク (X.25 DTE-DTE mode) +での通信にも用いることができる。 +DTE-DTE モードは ISO-8208 に記述されている。 .PP .\"O Message boundaries are preserved \(em a .\"O .BR read (2) @@ -55,21 +55,21 @@ DTE-DTE .\"O (such as socket memory or buffer size limits) become effective. .\"O If that .\"O occurs, the X.25 connection will be reset. -¥á¥Ã¥»¡¼¥¸¶­³¦¤ÏÊݸ¤µ¤ì¤ë¡£¥½¥±¥Ã¥È¤«¤é¤Î +メッセージ境界は保存される。ソケットからの .BR read (2) -¤Ï¡¢È¿ÂЦ¤Î¥½¥±¥Ã¥È¤«¤é¤ÎÂбþ¤¹¤ë +は、反対側のソケットからの対応する .BR write (2) -¤ÈƱ¤¸Â礭¤µ¤Î¥Ç¡¼¥¿¤ò¼õ¤±¼è¤ê¡¢½ÐÎϤ¹¤ë¡£ -ɬÍפ¬¤¢¤ë¾ì¹ç¤Ï¡¢¥«¡¼¥Í¥ë¤¬Ä¹¤¤¥á¥Ã¥»¡¼¥¸¤Î -ʬ³ä (segmenting) ¤ÈºÆ¹½À® (reassembling) ¤ò¹Ô¤¦¡£ -¤³¤ì¤Ë¤Ï X.25 ¤Î M ¥Ó¥Ã¥È¤¬ÍѤ¤¤é¤ì¤ë¡£ -¥á¥Ã¥»¡¼¥¸¥µ¥¤¥º¤Ë¤Ï¡¢¥Ï¡¼¥É¥³¡¼¥Ç¥£¥ó¥°¤µ¤ì¤¿¾å¸Â¤Ï¤Ê¤¤¡£ -¤·¤«¤·¡¢°ì»þŪ¤Ë¥·¥¹¥Æ¥à¥ê¥½¡¼¥¹¤¬Â­¤ê¤Ê¤«¤Ã¤¿¤ê¡¢ -¾¤ÎÀ©Ìó (¥½¥±¥Ã¥È¥á¥â¥ê¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥ºÀ©¸Â¤Ê¤É) ¤¬ -¸ú¤¤¤Æ¤·¤Þ¤¦¤È¡¢Ä¹¤¤¥á¥Ã¥»¡¼¥¸¤ÎºÆ¹½À®¤Ë¤Ï¼ºÇÔ¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤Î¾ì¹ç¡¢¤½¤Î X.25 Àܳ¤Ï¥ê¥»¥Ã¥È¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ +と同じ大きさのデータを受け取り、出力する。 +必要がある場合は、カーネルが長いメッセージの +分割 (segmenting) と再構成 (reassembling) を行う。 +これには X.25 の M ビットが用いられる。 +メッセージサイズには、ハードコーディングされた上限はない。 +しかし、一時的にシステムリソースが足りなかったり、 +他の制約 (ソケットメモリバッファのサイズ制限など) が +効いてしまうと、長いメッセージの再構成には失敗するかもしれない。 +この場合、その X.25 接続はリセットされることになる。 .\"O .SS Socket Addresses -.SS ¥½¥±¥Ã¥È¥¢¥É¥ì¥¹ +.SS ソケットアドレス .\"O The .\"O .B AF_X25 .\"O socket address family uses the @@ -77,9 +77,9 @@ DTE-DTE .\"O for representing network addresses as defined in ITU-T .\"O recommendation X.121. .B AF_X25 -¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤Ï¡¢¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤òɽ¤¹¤¿¤á¤Ë +ソケットアドレスファミリーは、ネットワークアドレスを表すために .I struct sockaddr_x25 -¤òÍѤ¤¤ë¡£¤³¤ì¤Ï ITU-T recommendation X.121 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +を用いる。これは ITU-T recommendation X.121 で定義されている。 .PP .in +4n .nf @@ -99,15 +99,15 @@ struct sockaddr_x25 { .\"O characters forming the X.121 address. .\"O Only the decimal digit characters from \(aq0\(aq to \(aq9\(aq are allowed. .I sx25_addr -¤Ë¤Ï char ÇÛÎó +には char 配列 .I x25_addr[] -¤ò´Þ¤Þ¤ì¤ë¡£¤³¤ì¤Ï 0 ¤Ç½ªÃ¼¤¹¤ëʸ»úÎó¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +を含まれる。これは 0 で終端する文字列として解釈される。 .I sx25_addr.x25_addr[] -¤Ï 15 ¸Ä¤Þ¤Ç¤Î ASCII ʸ»ú¤ò´Þ¤à¤³¤È¤¬¤Ç¤­ (½ªÃ¼¤Î 0 ¤Ï´Þ¤Þ¤Ê¤¤)¡¢ -¤³¤ì¤¬ X.121 ¥¢¥É¥ì¥¹¤ò¤Ê¤¹¡£ -10 ¿Ê¤Î¿ôʸ»ú¡¢\(aq0\(aq ¤«¤é \(aq9\(aq ¤Þ¤Ç¤À¤±¤¬µö¤µ¤ì¤ë¡£ +は 15 個までの ASCII 文字を含むことができ (終端の 0 は含まない)、 +これが X.121 アドレスをなす。 +10 進の数文字、\(aq0\(aq から \(aq9\(aq までだけが許される。 .\"O .SS Socket Options -.SS ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó +.SS ソケットオプション .\"O The following X.25-specific socket options can be set by using .\"O .BR setsockopt (2) .\"O and read with @@ -116,15 +116,15 @@ struct sockaddr_x25 { .\"O .I level .\"O argument set to .\"O .BR SOL_X25 . -°Ê²¼¤Î X.25 ÆÃÍ­¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤Ï¡¢ +以下の X.25 特有のソケットオプションは、 .BR setsockopt (2) -¤ÇÀßÄê¤Ç¤­¡¢ +で設定でき、 .BR getsockopt (2) -¤Ç¼èÆÀ¤Ç¤­¤ë¡£¤³¤Î¤È¤­ +で取得できる。このとき .I level -°ú¤­¿ô¤Ë¤Ï +引き数には .B SOL_X25 -¤ò»ØÄꤹ¤ë¡£ +を指定する。 .TP .B X25_QBITINCL .\"O Controls whether the X.25 Q-bit (Qualified Data Bit) is accessible by the @@ -144,33 +144,33 @@ struct sockaddr_x25 { .\"O corresponding outgoing data packets will be set. .\"O If the first byte is 0 .\"O the Q-bit will not be set. -X.25 ¤Î Q ¥Ó¥Ã¥È (Qualified ¥Ç¡¼¥¿¥Ó¥Ã¥È) ¤Ë¥æ¡¼¥¶¡¼¤¬¥¢¥¯¥»¥¹ -¤Ç¤­¤ë¤«¤É¤¦¤«¤ò¥³¥ó¥È¥í¡¼¥ë¤¹¤ë¡£À°¿ô¤Î°ú¿ô¤ò¼è¤ë¡£ -0 ¤Ë¥»¥Ã¥È¤¹¤ë¤È¡¢ Q ¥Ó¥Ã¥È¤Ïȯ¿®¥Ñ¥±¥Ã¥È¤Ë¤Ï·è¤·¤Æ¥»¥Ã¥È¤µ¤ì¤º¡¢ -¼õ¿®¥Ñ¥±¥Ã¥È¤Ç¤Ï̵»ë¤µ¤ì¤ë (¥Ç¥Õ¥©¥ë¥È)¡£ -1 ¤Ë¥»¥Ã¥È¤¹¤ë¤È¡¢¥½¥±¥Ã¥È¤«¤éÆɤࡢ¤¢¤ë¤¤¤Ï¥½¥±¥Ã¥È¤ËÁ÷¤ë -¥á¥Ã¥»¡¼¥¸¤½¤ì¤¾¤ì¤ËÀèƬ¥Ð¥¤¥È¤¬Á°ÃÖ¤µ¤ì¤ë¡£ -¥½¥±¥Ã¥È¤«¤éÆɤó¤À¥Ç¡¼¥¿¤Ç¤Ï¡¢ÀèƬ¥Ð¥¤¥È¤¬ 0 ¤À¤È¡¢ -¤³¤ÎÅþÃå¥Ç¡¼¥¿¥Ñ¥±¥Ã¥È¤ËÂбþ¤¹¤ë Q ¥Ó¥Ã¥È¤Ï¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¤³¤È¤Ë¤Ê¤ë¡£ -ÀèƬ¥Ð¥¤¥È¤¬ 1 ¤À¤È¡¢ÅþÃå¥Ç¡¼¥¿¥Ñ¥±¥Ã¥È¤Î -Q ¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤¿¤³¤È¤Ë¤Ê¤ë¡£ -¥½¥±¥Ã¥È¤Ë½ñ¤­¹þ¤à¥Ç¡¼¥¿¤ÎÀèƬ¥Ð¥¤¥È¤¬ 1 ¤À¤È¡¢ -¤½¤Îȯ¿®¥Ñ¥±¥Ã¥È¤Î Q ¥Ó¥Ã¥È¤ò¥»¥Ã¥È¤¹¤ë¡£ -0 ¤À¤È¡¢ Q ¥Ó¥Ã¥È¤ò¥»¥Ã¥È¤·¤Ê¤¤¡£ +X.25 の Q ビット (Qualified データビット) にユーザーがアクセス +できるかどうかをコントロールする。整数の引数を取る。 +0 にセットすると、 Q ビットは発信パケットには決してセットされず、 +受信パケットでは無視される (デフォルト)。 +1 にセットすると、ソケットから読む、あるいはソケットに送る +メッセージそれぞれに先頭バイトが前置される。 +ソケットから読んだデータでは、先頭バイトが 0 だと、 +この到着データパケットに対応する Q ビットはセットされていなかったことになる。 +先頭バイトが 1 だと、到着データパケットの +Q ビットがセットされていたことになる。 +ソケットに書き込むデータの先頭バイトが 1 だと、 +その発信パケットの Q ビットをセットする。 +0 だと、 Q ビットをセットしない。 .\"O .SH VERSIONS -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .\"O The AF_X25 protocol family is a new feature of Linux 2.2. -AF_X25 ¥×¥í¥È¥³¥ë¥Õ¥¡¥ß¥ê¤Ï Linux 2.2 ¤Î¿·µ¡Ç½¤Ç¤¢¤ë¡£ +AF_X25 プロトコルファミリは Linux 2.2 の新機能である。 .\"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .\"O Plenty, as the X.25 PLP implementation is .\"O .BR CONFIG_EXPERIMENTAL . -X.25 PLP ¼ÂÁõ¤Ï +X.25 PLP 実装は .B CONFIG_EXPERIMENTAL -¤Ê¤Î¤Ç¡¢¤¿¤¯¤µ¤ó¤¢¤ë¤À¤í¤¦¡£ +なので、たくさんあるだろう。 .PP .\"O This man page is incomplete. -¤³¤Î man ¥Ú¡¼¥¸¤Ï´°À®¤·¤Æ¤¤¤Ê¤¤¡£ +この man ページは完成していない。 .PP .\"O There is no dedicated application programmer's header file yet; .\"O you need to include the kernel header file @@ -178,29 +178,29 @@ X.25 PLP .\"O .B CONFIG_EXPERIMENTAL .\"O might also imply that future versions of the .\"O interface are not binary compatible. -¤Þ¤À¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥Þ¡¼ÍѤΥإåÀ¥Õ¥¡¥¤¥ë¤¬¤Ê¤¤¡£ -¥«¡¼¥Í¥ë¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë +まだアプリケーションプログラマー用のヘッダファイルがない。 +カーネルのヘッダファイル .I -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +をインクルードしなければならない。 .B CONFIG_EXPERIMENTAL -¤Ê¤Î¤Ç¡¢¾­Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤Ï -¥Ð¥¤¥Ê¥ê¸ß´¹À­¤¬¼º¤ï¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +なので、将来のバージョンのインターフェースでは +バイナリ互換性が失われるかもしれない。 .PP .\"O X.25 N-Reset events are not propagated to the user process yet. .\"O Thus, .\"O if a reset occurred, data might be lost without notice. -X.25 N-Reset ¥¤¥Ù¥ó¥È¤Ï¡¢¤Þ¤À¥æ¡¼¥¶¡¼¥×¥í¥»¥¹¤ËÅÁÇŤ·¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¥ê¥»¥Ã¥È¤¬µ¯¤³¤ë¤È¡¢¥Ç¡¼¥¿¤ÏÄÌÃÎ̵¤·¤Ë¼º¤ï¤ì¤ë¡£ +X.25 N-Reset イベントは、まだユーザープロセスに伝播しない。 +したがってリセットが起こると、データは通知無しに失われる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR socket (2), .BR socket (7) .PP Jonathan Simon Naylor: .\"O \(lqThe Re-Analysis and Re-Implementation of X.25.\(rq -\(lqX.25 ¤ÎºÆʬÀϤȺƼÂÁõ\(rq +\(lqX.25 の再分析と再実装\(rq .\"O The URL is .RS -URL ¤Ï +URL は .I ftp://ftp.pspt.fi/pub/ham/linux/ax25/x25doc.tgz .RE diff --git a/draft/man8/intro.8 b/draft/man8/intro.8 index 969a9ceb..5c4aef03 100644 --- a/draft/man8/intro.8 +++ b/draft/man8/intro.8 @@ -32,18 +32,18 @@ .\" .TH INTRO 8 2007-10-23 "Linux" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O intro \- Introduction to administration and privileged commands -intro \- ´ÉÍý¥³¥Þ¥ó¥É¤ÈÆø¢¥³¥Þ¥ó¥É¤ÎÀâÌÀ +intro \- 管理コマンドと特権コマンドの説明 .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Section 8 of the manual describes commands .\"O which either can be or are only used by the superuser, .\"O like system-administration commands, daemons, .\"O and hardware-related commands. -¥Þ¥Ë¥å¥¢¥ë¤Î 8 ¾Ï¤Ï¡¢¥·¥¹¥Æ¥à´ÉÍýÍѤΥ³¥Þ¥ó¥É¡¢¥Ç¡¼¥â¥ó (daemon)¡¢ -¥Ï¡¼¥É¥¦¥§¥¢´ØÏ¢¤Î¥³¥Þ¥ó¥É¤È¤¤¤Ã¤¿¡¢¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼¤Ë¤è¤Ã¤Æ¤Î¤ß -»ÈÍѤµ¤ì¤ë/¤Ç¤­¤ë¥³¥Þ¥ó¥É¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤ë¡£ +マニュアルの 8 章は、システム管理用のコマンド、デーモン (daemon)、 +ハードウェア関連のコマンドといった、スーパー・ユーザーによってのみ +使用される/できるコマンドについて説明している。 .\"O As with the commands in described section 1, the commands described .\"O in this section terminate with an exit status that indicates @@ -51,17 +51,17 @@ intro \- .\"O See .\"O .BR intro (1) .\"O for more information. -1 ¾Ï¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¥³¥Þ¥ó¥É¤ÈƱÍÍ¡¢¤³¤Î¾Ï¤ÇÀâÌÀ¤µ¤ì¤ë¥³¥Þ¥ó¥É¤Ï -¥³¥Þ¥ó¥É¤ÎÀ®¸ù¡¦¼ºÇÔ¤ò¼¨¤¹½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ç½ªÎ»¤¹¤ë¡£ -¤µ¤é¤Ê¤ë¾ðÊó¤Ï +1 章で説明されているコマンドと同様、この章で説明されるコマンドは +コマンドの成功・失敗を示す終了ステータスで終了する。 +さらなる情報は .BR intro (1) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\"O .SH NOTES -.SH È÷¹Í +.SH 備考 .\"O .SS Authors and Copyright Conditions -.SS Ãø¼Ô¤ÈÃøºî¸¢ +.SS 著者と著作権 .\"O Look at the header of the manual page source for the author(s) and copyright .\"O conditions. .\"O Note that these can be different from page to page! -Ãø¼Ô¤ÈÃøºî¸¢ (copyright) ¤Ë´Ø¤·¤Æ¤Ï³Æ¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤Î¥½¡¼¥¹¤Î¥Ø¥Ã¥À¡¼¤ò¸«¤ë¤³¤È¡£ -¤³¤ì¤é¤Ï¥Ú¡¼¥¸¤´¤È¤Ë°Û¤Ã¤Æ¤¤¤ë¡£ +著者と著作権 (copyright) に関しては各マニュアル・ページのソースのヘッダーを見ること。 +これらはページごとに異っている。 diff --git a/draft/man8/ld.so.8 b/draft/man8/ld.so.8 index d92e6966..0626a743 100644 --- a/draft/man8/ld.so.8 +++ b/draft/man8/ld.so.8 @@ -11,10 +11,10 @@ .TH LD.SO 8 2009-01-12 "GNU" "Linux Programmer's Manual" .\"O .SH NAME .\"O ld.so, ld-linux.so* \- dynamic linker/loader -.SH ̾Á° -ld.so, ld-linux.so* \- ưŪ¤Ê¥ê¥ó¥«/¥í¡¼¥À +.SH 名前 +ld.so, ld-linux.so* \- 動的なリンカ/ローダ .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .\"O The dynamic linker can be run either indirectly by running some .\"O dynamically linked program or library (in which case no command-line options .\"O to the dynamic linker can be passed and, in the ELF case, the dynamic linker @@ -24,30 +24,30 @@ ld.so, ld-linux.so* \- ưŪ .\"O .P .\"O .I /lib/ld-linux.so.* .\"O [OPTIONS] [PROGRAM [ARGUMENTS]] -ưŪ¥ê¥ó¥«¤Ï¡¢Æ°Åª¤Ë¥ê¥ó¥¯¤µ¤ì¤¿¥×¥í¥°¥é¥à¤ä¥é¥¤¥Ö¥é¥ê¤Î¼Â¹Ô¤Ë¤è¤Ã¤Æ -´ÖÀÜŪ¤Ë¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë -(ELF ¤Î¾ì¹ç¡¢Æ°Åª¥ê¥ó¥«¤Ë¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤òÅϤ¹¤³¤È¤Ï¤Ç¤­¤º¡¢ -¥×¥í¥°¥é¥à¤Î +動的リンカは、動的にリンクされたプログラムやライブラリの実行によって +間接的に実行することができる +(ELF の場合、動的リンカにコマンドラインオプションを渡すことはできず、 +プログラムの .B .interp -¥»¥¯¥·¥ç¥ó¤ËÆþ¤Ã¤Æ¤¤¤ëưŪ¥ê¥ó¥«¤¬¼Â¹Ô¤µ¤ì¤ë)¡£ -¤Þ¤¿°Ê²¼¤Î¤è¤¦¤ËľÀܼ¹Ԥ¹¤ë¤³¤È¤â¤Ç¤­¤ë +セクションに入っている動的リンカが実行される)。 +また以下のように直接実行することもできる .P .I /lib/ld-linux.so.* [OPTIONS] [PROGRAM [ARGUMENTS]] .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The programs .\"O .B ld.so .\"O and .\"O .B ld-linux.so* .\"O find and load the shared libraries needed by a program, prepare .\"O the program to run, and then run it. -¥×¥í¥°¥é¥à +プログラム .B ld.so -¤È +と .B ld-linux.so* -¤Ï¥×¥í¥°¥é¥à¤ËɬÍפʶ¦Í­¥é¥¤¥Ö¥é¥ê¤ò¸«¤Ä¤±¤Æ¥í¡¼¥É¤·¡¢ -¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤ò½àÈ÷¤·¤Æ¤«¤éµ¯Æ°¤µ¤»¤ë¡£ +はプログラムに必要な共有ライブラリを見つけてロードし、 +プログラムの実行を準備してから起動させる。 .LP .\"O Linux binaries require dynamic linking (linking at run time) .\"O unless the @@ -55,71 +55,71 @@ ld.so, ld-linux.so* \- ưŪ .\"O option was given to .\"O .BR ld (1) .\"O during compilation. -Linux ¤Î¥Ð¥¤¥Ê¥ê¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë¤Î»þ¤Ë +Linux のバイナリは、コンパイルの時に .BR ld (1) -¤ËÂФ·¤Æ +に対して .B \-static -¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¸Â¤ê¡¢Æ°Åª¥ê¥ó¥¯ (¼Â¹Ô»þ¥ê¥ó¥¯) ¤¬É¬ÍפȤʤ롣 +オプションが指定されていない限り、動的リンク (実行時リンク) が必要となる。 .LP .\"O The program .\"O .B ld.so .\"O handles a.out binaries, a format used long ago; -¥×¥í¥°¥é¥à +プログラム .B ld.so -¤Ï a.out ¥Ð¥¤¥Ê¥ê¤ò°·¤¦¡£ -¤³¤ì¤Ï¤º¤Ã¤ÈÀΤ˻Ȥï¤ì¤Æ¤¤¤¿¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤¢¤ë¡£ +は a.out バイナリを扱う。 +これはずっと昔に使われていたフォーマットである。 .\"O .B ld-linux.so* .\"O handles ELF (\fI/lib/ld-linux.so.1\fP for libc5, \fI/lib/ld-linux.so.2\fP .\"O for glibc2), which everybody has been using for years now. .B ld-linux.so* -(libc5 ¤Ç¤Ï \fI/lib/ld-linux.so.1\fP, -glibc2 ¤Ç¤Ï \fI/lib/ld-linux.so.2\fP) -¤Ï ELF ¥Ð¥¤¥Ê¥ê¤ò°·¤¦¡£ -¤³¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¿¤¯¤Î¿Í¤¬ºÇ¶á²¿Ç¯¤â»È¤Ã¤Æ¤¤¤ë¡£ +(libc5 では \fI/lib/ld-linux.so.1\fP, +glibc2 では \fI/lib/ld-linux.so.2\fP) +は ELF バイナリを扱う。 +このフォーマットは多くの人が最近何年も使っている。 .\"O Otherwise both have the same behavior, and use the same .\"O support files and programs .\"O .BR ldd (1), .\"O .BR ldconfig (8) .\"O and .\"O .IR /etc/ld.so.conf . -¤½¤ì°Ê³°¤ÎÅÀ¤Ç¤ÏξÊý¤È¤âƱ¤¸¤è¤¦¤ËÆ°ºî¤·¡¢ -Ʊ¤¸¥µ¥Ý¡¼¥È¥Õ¥¡¥¤¥ë¤È¥×¥í¥°¥é¥à +それ以外の点では両方とも同じように動作し、 +同じサポートファイルとプログラム .BR ldd (1), .BR ldconfig (8), .I /etc/ld.so.conf -¤ò»ÈÍѤ¹¤ë¡£ +を使用する。 .LP .\"O The shared libraries needed by the program are searched for .\"O in the following order: -¥×¥í¥°¥é¥à¤ÇɬÍפȤµ¤ì¤ë¶¦Í­¥é¥¤¥Ö¥é¥ê¤Ï¡¢ -°Ê²¼¤Î½ç½ø¤Ç¸¡º÷¤µ¤ì¤ë¡£ +プログラムで必要とされる共有ライブラリは、 +以下の順序で検索される。 .IP o 3 .\"O (ELF only) Using the directories specified in the .\"O DT_RPATH dynamic section attribute .\"O of the binary if present and DT_RUNPATH attribute does not exist. .\"O Use of DT_RPATH is deprecated. -(ELF ¤Î¤ß) -¥Ð¥¤¥Ê¥ê¤ÎưŪ¥»¥¯¥·¥ç¥ó°À­ DT_RPATH ¤¬Â¸ºß¤·¡¢ -DT_RUNPATH °À­¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¡¢ -DT_RPATH ¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ò»ÈÍѤ¹¤ë¡£ -DT_RPATH ¤Î»ÈÍѤϿ侩¤µ¤ì¤Ê¤¤¡£ +(ELF のみ) +バイナリの動的セクション属性 DT_RPATH が存在し、 +DT_RUNPATH 属性が存在しない場合は、 +DT_RPATH で指定されたディレクトリを使用する。 +DT_RPATH の使用は推奨されない。 .IP o .\"O Using the environment variable .\"O .BR LD_LIBRARY_PATH . .\"O Except if the executable is a set-user-ID/set-group-ID binary, .\"O in which case it is ignored. -´Ä¶­ÊÑ¿ô +環境変数 .B LD_LIBRARY_PATH -¤òÍѤ¤¤ë¡£ -¤¿¤À¤·¼Â¹Ô¥Õ¥¡¥¤¥ë¤¬ set-user-ID/set-group-ID ¥Ð¥¤¥Ê¥ê¤Î¾ì¹ç¡¢ -¤³¤ì¤Ï̵»ë¤µ¤ì¤ë¡£ +を用いる。 +ただし実行ファイルが set-user-ID/set-group-ID バイナリの場合、 +これは無視される。 .IP o .\"O (ELF only) Using the directories specified in the .\"O DT_RUNPATH dynamic section attribute .\"O of the binary if present. -(ELF ¤Î¤ß) -¥Ð¥¤¥Ê¥ê¤ÎưŪ¥»¥¯¥·¥ç¥ó°À­ DT_RUNPATH ¤¬Â¸ºß¤¹¤ì¤Ð¡¢ -DT_RUNPATH ¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ò»ÈÍѤ¹¤ë¡£ +(ELF のみ) +バイナリの動的セクション属性 DT_RUNPATH が存在すれば、 +DT_RUNPATH で指定されたディレクトリを使用する。 .IP o .\"O From the cache file .\"O .I /etc/ld.so.cache @@ -128,33 +128,33 @@ DT_RUNPATH .\"O If, however, the binary was linked with the .\"O .B \-z nodeflib .\"O linker option, libraries in the default library paths are skipped. -¥­¥ã¥Ã¥·¥å¥Õ¥¡¥¤¥ë +キャッシュファイル .I /etc/ld.so.cache -¤òõ¤¹¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢ -(ld.so.conf ¤ÇÄɲûØÄꤵ¤ì¤¿¤â¤Î¤â´Þ¤á¤¿) ¥é¥¤¥Ö¥é¥ê¸¡º÷¥Ñ¥¹¤«¤é -¸«¤Ä¤«¤Ã¤¿¥é¥¤¥Ö¥é¥ê¥Õ¥¡¥¤¥ë¤Î¾ðÊó¤ò½¸¤á¤¿¤â¤Î¤Ç¤¢¤ë¡£ -¤¿¤À¤·¥Ð¥¤¥Ê¥ê¤¬¥ê¥ó¥«¥ª¥×¥·¥ç¥ó +を探す。このファイルは、 +(ld.so.conf で追加指定されたものも含めた) ライブラリ検索パスから +見つかったライブラリファイルの情報を集めたものである。 +ただしバイナリがリンカオプション .B \-z nodeflib -¤Ç¥ê¥ó¥¯¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥é¥¤¥Ö¥é¥ê¥Ñ¥¹¤Ë¤¢¤ë -¥é¥¤¥Ö¥é¥ê¤Ï¥¹¥­¥Ã¥×¤µ¤ì¤ë¡£ +でリンクされている場合は、デフォルトのライブラリパスにある +ライブラリはスキップされる。 .IP o .\"O In the default path .\"O .IR /lib , .\"O and then .\"O .IR /usr/lib . -¥Ç¥Õ¥©¥ë¥È¥Ñ¥¹¤Ç¤¢¤ë -.IR /lib ¡¢ -¼¡¤¤¤Ç +デフォルトパスである +.IR /lib 、 +次いで .I /usr/lib -¤òÍѤ¤¤ë¡£ +を用いる。 .\"O If the binary was linked with the .\"O .B \-z nodeflib .\"O linker option, this step is skipped. -¥Ð¥¤¥Ê¥ê¤¬¥ê¥ó¥«¥ª¥×¥·¥ç¥ó +バイナリがリンカオプション .B \-z nodeflib -¤Ç¥ê¥ó¥¯¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¤³¤Î¥¹¥Æ¥Ã¥×¤Ï¥¹¥­¥Ã¥×¤µ¤ì¤ë¡£ +でリンクされている場合、このステップはスキップされる。 .\"O .SS $ORIGIN and rpath -.SS $ORIGIN ¤È rpath +.SS $ORIGIN と rpath .PP .\"O .B ld.so .\"O understands the string @@ -164,13 +164,13 @@ DT_RUNPATH .\"O in an rpath specification (DT_RPATH or DT_RUNPATH) to mean .\"O the directory containing the application executable. .B ld.so -¤Ç¤Ï¡¢rpath »ØÄê (DT_RPATH ¤ä DT_RUNPATH) Ãæ¤Ë +では、rpath 指定 (DT_RPATH や DT_RUNPATH) 中に .I $ORIGIN -¤È¤¤¤¦Ê¸»úÎó +という文字列 .RI ( ${ORIGIN} -¤âÅù²Á) ¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +も等価) を使うことができる。 .I $ORIGIN -¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¼Â¹Ô¥Õ¥¡¥¤¥ë¤¬Æþ¤Ã¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤òɽ¤¹¡£ +はアプリケーションの実行ファイルが入っているディレクトリを表す。 .\"O Thus, an application located in .\"O .I somedir/app .\"O could be compiled with @@ -180,23 +180,23 @@ DT_RUNPATH .\"O no matter where .\"O .I somedir .\"O is located in the directory hierarchy. -¤³¤ì¤ò»È¤Ã¤Æ +これを使って .I somedir/app -¤ËÃÖ¤«¤ì¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò +に置かれたアプリケーションを .I gcc -Wl,-rpath,'$ORIGIN/../lib' -¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¡¢ +でコンパイルすると、 .I somedir -¤¬¥Ç¥£¥ì¥¯¥È¥ê³¬ÁؤΤɤ³¤Ë¤¢¤Ã¤Æ¤â¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï +がディレクトリ階層のどこにあっても、アプリケーションは .I somedir/lib -¤Ë¤¢¤ëÂбþ¤¹¤ë¶¦Í­¥é¥¤¥Ö¥é¥ê¤ò¸«¤Ä¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +にある対応する共有ライブラリを見つけることができる。 .\"O This facilitates the creation of "turn-key" applications that .\"O do not need to be installed into special directories, .\"O but can instead be unpacked into any directory .\"O and still find their own shared libraries. -¤³¤Îµ¡Ç½¤ò»È¤¦¤È¡¢ -ÆÃÊ̤ʥǥ£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¯Ç¤°Õ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤â -"¤ä¤ä¤³¤·¤¤ÀßÄê¤Ê¤·¤Ç" -Æȼ«¤Î¶¦Í­¥é¥¤¥Ö¥é¥ê¤ò»È¤¨¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +この機能を使うと、 +特別なディレクトリではなく任意のディレクトリにインストールしても +"ややこしい設定なしで" +独自の共有ライブラリを使えるアプリケーションを作成することができる。 .\" ld.so also understands $LIB, with the same meaning as $ORIGIN/lib, .\" it appears. .\" @@ -211,38 +211,38 @@ DT_RUNPATH .\" ld.so lets names be abbreviated, so $O will work for $ORIGIN; .\" Don't do this!! .\"O .SH OPTIONS -.SH ¥ª¥×¥·¥ç¥ó +.SH オプション .TP .B \-\-list .\"O List all dependencies and how they are resolved. -Á´¤Æ¤Î°Í¸´Ø·¸¤È¤½¤Î²ò·èË¡¤ò¥ê¥¹¥È¤¹¤ë¡£ +全ての依存関係とその解決法をリストする。 .TP .B \-\-verify .\"O Verify that program is dynamically linked and this dynamic linker can handle .\"O it. -¥×¥í¥°¥é¥à¤¬Æ°Åª¤Ë¥ê¥ó¥¯¤µ¤ì¤Æ¤¤¤ë¤«¤È¡¢ -ưŪ¥ê¥ó¥«¤¬¤½¤Î¥×¥í¥°¥é¥à¤ò°·¤¨¤ë¤«¤ò¸¡¾Ú¤¹¤ë¡£ +プログラムが動的にリンクされているかと、 +動的リンカがそのプログラムを扱えるかを検証する。 .TP .B \-\-library\-path PATH .\"O Override .\"O .B LD_LIBRARY_PATH .\"O environment variable setting (see below). .B LD_LIBRARY_PATH -´Ä¶­ÊÑ¿ô¤ÎÀßÄê¤ò¾å½ñ¤­¤¹¤ë (²¼µ­»²¾È)¡£ +環境変数の設定を上書きする (下記参照)。 .TP .B \-\-inhibit\-rpath LIST .\"O Ignore RPATH and RUNPATH information in object names in LIST. .\"O This option is ignored if .\"O .B ld.so .\"O is set-user-ID or set-group-ID. -LIST ¤Ë¤¢¤ë¥ª¥Ö¥¸¥§¥¯¥È̾¤Î RPATH ¤È RUNPATH ¤Î¾ðÊó¤ò̵»ë¤¹¤ë¡£ +LIST にあるオブジェクト名の RPATH と RUNPATH の情報を無視する。 .B ld.so -¤¬ set-user-ID ¤« set-group-ID ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵»ë¤µ¤ì¤ë¡£ +が set-user-ID か set-group-ID されている場合、 +このオプションは無視される。 .\"O .SH ENVIRONMENT -.SH ´Ä¶­ÊÑ¿ô +.SH 環境変数 .\"O There are four important environment variables. -4 ¤Ä¤Î½ÅÍפʴĶ­ÊÑ¿ô¤¬¤¢¤ë¡£ +4 つの重要な環境変数がある。 .TP .B LD_BIND_NOW .\"O (libc5; glibc since 2.1.1) @@ -251,12 +251,12 @@ LIST .\"O at program startup instead of deferring function call resolution to the point .\"O when they are first referenced. .\"O This is useful when using a debugger. -(libc5; glibc 2.1.1 °Ê¹ß) -¶õʸ»úÎó¤Ç¤Ê¤¤¾ì¹ç¡¢ -ưŪ¥ê¥ó¥«¤Ï¥×¥í¥°¥é¥à¤Î³«»Ï»þ¤ËÁ´¤Æ¤Î¥·¥ó¥Ü¥ë¤ò²ò·è¤¹¤ë¡£ -¶õʸ»úÎó¤Î¾ì¹ç¡¢²ò·è¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤´Ø¿ô¸Æ¤Ó½Ð¤·¤¬ -ºÇ½é¤Ë»²¾È¤µ¤ì¤¿»þÅÀ¤Ç²ò·è¤¹¤ë¡£ -¥Ç¥Ð¥Ã¥¬¤ò»È¤Ã¤Æ¤¤¤ë¤È¤­¤ËÌòΩ¤Ä¡£ +(libc5; glibc 2.1.1 以降) +空文字列でない場合、 +動的リンカはプログラムの開始時に全てのシンボルを解決する。 +空文字列の場合、解決しなければならない関数呼び出しが +最初に参照された時点で解決する。 +デバッガを使っているときに役立つ。 .TP .B LD_LIBRARY_PATH .\"O A colon-separated list of directories in which to search for @@ -264,23 +264,23 @@ LIST .\"O Similar to the .\"O .B PATH .\"O environment variable. -¥³¥í¥ó¶èÀÚ¤ê¤Î¥Ç¥£¥ì¥¯¥È¥ê¥ê¥¹¥È¡£ -¼Â¹Ô»þ¤Ë ELF ¥é¥¤¥Ö¥é¥ê¤ò¸¡º÷¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ò»ØÄꤹ¤ë¡£ +コロン区切りのディレクトリリスト。 +実行時に ELF ライブラリを検索するディレクトリを指定する。 .B PATH -´Ä¶­ÊÑ¿ô¤ÈƱ¤¸¤è¤¦¤Ë»ØÄꤹ¤ë¡£ +環境変数と同じように指定する。 .TP .B LD_PRELOAD .\"O A whitespace-separated list of additional, user-specified, ELF shared .\"O libraries to be loaded before all others. .\"O This can be used to selectively override functions in other shared libraries. -¥¹¥Ú¡¼¥¹¶èÀÚ¤ê¤Ç ELF ¶¦Í­¥é¥¤¥Ö¥é¥ê¤ò»ØÄꤹ¤ë¡£ -¤³¤ì¤Ï¥æ¡¼¥¶¡¼¤¬»ØÄê¤Ç¤­¡¢¤¹¤Ù¤Æ¤Î¥é¥¤¥Ö¥é¥ê¤ËÀèΩ¤Ã¤Æ¥í¡¼¥É¤µ¤ì¤ë¡£ -¾¤Î¶¦Í­¥é¥¤¥Ö¥é¥ê¤Ë¤¢¤ë´Ø¿ô¤òÁªÂòŪ¤ËÃÖ¤­´¹¤¨¤ë¤¿¤á¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +スペース区切りで ELF 共有ライブラリを指定する。 +これはユーザーが指定でき、すべてのライブラリに先立ってロードされる。 +他の共有ライブラリにある関数を選択的に置き換えるために用いることができる。 .\"O For set-user-ID/set-group-ID ELF binaries, .\"O only libraries in the standard search .\"O directories that are also set-user-ID will be loaded. -set-user-ID/set-group-ID ¤µ¤ì¤¿ ELF ¥Ð¥¤¥Ê¥ê¤ËÂФ·¤Æ¡¢ -ɸ½àŪ¤Ê¸¡º÷¥Ñ¥¹¤Ë¤¢¤ë¥é¥¤¥Ö¥é¥ê¤Î¤¦¤Á set-user-ID ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤Ï¥í¡¼¥É¤·¤Ê¤¤¡£ +set-user-ID/set-group-ID された ELF バイナリに対して、 +標準的な検索パスにあるライブラリのうち set-user-ID されているものはロードしない。 .TP .B LD_TRACE_LOADED_OBJECTS .\"O (ELF only) @@ -288,16 +288,16 @@ set-user-ID/set-group-ID .\"O dependencies, as if run by .\"O .BR ldd (1), .\"O instead of running normally. -(ELF ¤Î¤ß) -¶õʸ»úÎó¤Ç¤Ê¤¤¾ì¹ç¡¢ -¥×¥í¥°¥é¥à¤òÉáÄ̤˼¹Ԥ¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ +(ELF のみ) +空文字列でない場合、 +プログラムを普通に実行するのではなく、 .BR ldd (1) -¤ò¼Â¹Ô¤·¤¿¤È¤­¤Î¤è¤¦¤ËưŪ¥é¥¤¥Ö¥é¥ê¤Î°Í¸´Ø·¸¤ò¥ê¥¹¥Èɽ¼¨¤µ¤»¤ë¡£ +を実行したときのように動的ライブラリの依存関係をリスト表示させる。 .LP .\"O Then there are lots of more or less obscure variables, .\"O many obsolete or only for internal use. -¤½¤·¤Æ¡¢¤½¤ì¤Û¤ÉÃΤé¤ì¤Æ¤¤¤Ê¤¤´Ä¶­ÊÑ¿ô¤â¤¢¤ë¡£ -¿¤¯¤ÏÇѤì¤Æ¤·¤Þ¤Ã¤¿¤â¤Î¤«ÆâÉô¤Ç¤Î¤ß»ÈÍѤµ¤ì¤ë´Ä¶­ÊÑ¿ô¤Ç¤¢¤ë¡£ +そして、それほど知られていない環境変数もある。 +多くは廃れてしまったものか内部でのみ使用される環境変数である。 .TP .B LD_AOUT_LIBRARY_PATH (libc5) @@ -306,12 +306,12 @@ set-user-ID/set-group-ID .\"O for a.out binaries only. .\"O Old versions of ld\-linux.so.1 also supported .\"O .BR LD_ELF_LIBRARY_PATH . -a.out ¥Ð¥¤¥Ê¥ê¤Ë¤Î¤ß»È¤ï¤ì¤ë´Ä¶­ÊÑ¿ô¤Ç¡¢ +a.out バイナリにのみ使われる環境変数で、 .B LD_LIBRARY_PATH -¤ÈƱ¤¸Ìò³ä¤ò¤¹¤ë¡£ -ld\-linux.so.1 ¤Î¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï +と同じ役割をする。 +ld\-linux.so.1 の古いバージョンでは .B LD_ELF_LIBRARY_PATH -¤â¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤¿¡£ +もサポートしていた。 .TP .B LD_AOUT_PRELOAD (libc5) @@ -320,16 +320,16 @@ ld\-linux.so.1 .\"O for a.out binaries only. .\"O Old versions of ld\-linux.so.1 also supported .\"O .BR LD_ELF_PRELOAD . -a.out ¥Ð¥¤¥Ê¥ê¤Ë¤Î¤ß»È¤ï¤ì¤ë´Ä¶­ÊÑ¿ô¤Ç¡¢ +a.out バイナリにのみ使われる環境変数で、 .B LD_PRELOAD -¤ÈƱ¤¸Ìò³ä¤ò¤¹¤ë¡£ -ld\-linux.so.1 ¤Î¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï +と同じ役割をする。 +ld\-linux.so.1 の古いバージョンでは .B LD_ELF_PRELOAD -¤â¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤¿¡£ +もサポートしていた。 .TP .B LD_AUDIT .\"O (glibc since 2.4) -(glibc 2.4 °Ê¹ß) +(glibc 2.4 以降) .\"O A colon-separated list of user-specified, ELF shared objects .\"O to be loaded before all others in a separate linker namespace .\"O (i.e., one that does not intrude upon the normal symbol bindings that @@ -337,24 +337,24 @@ ld\-linux.so.1 .\"O These libraries can be used to audit the operation of the dynamic linker. .\"O .B LD_AUDIT .\"O is ignored for set-user-ID/set-group-ID binaries. -¾¤Î¥ª¥Ö¥¸¥§¥¯¥È¤è¤ê¤âÁ°¤Ë¡¢Ê̤Υê¥ó¥«Ì¾Á°¶õ´Ö (¤½¤Î¥×¥í¥»¥¹¤Ç¹Ô¤ï¤ì¤ë -Ä̾ï¤Î¥·¥ó¥Ü¥ë·ë¹ç (symbol bindigns) ¤Ë¤Ï´ØÍ¿¤·¤Ê¤¤Ì¾Á°¶õ´Ö) ¤Ç -¥í¡¼¥É¤µ¤ì¤ë¡¢¥æ¡¼¥¶»ØÄê¤Î ELF ¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Î¥³¥í¥ó¶èÀÚ¤ê¤Î¥ê¥¹¥È¡£ -¤³¤ì¤é¤Î¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤Æ¡¢Æ°Åª¥ê¥ó¥«¤ÎÆ°ºî¤ò´Æºº¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -set-user-ID/set-group-ID ¤µ¤ì¤¿¥Ð¥¤¥Ê¥ê¤Ç¤Ï¡¢ +他のオブジェクトよりも前に、別のリンカ名前空間 (そのプロセスで行われる +通常のシンボル結合 (symbol bindigns) には関与しない名前空間) で +ロードされる、ユーザ指定の ELF 共有オブジェクトのコロン区切りのリスト。 +これらのライブラリを使って、動的リンカの動作を監査することができる。 +set-user-ID/set-group-ID されたバイナリでは、 .B LD_AUDIT -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\"O The dynamic linker will notify the audit .\"O libraries at so-called auditing checkpoints\(emfor example, .\"O loading a new library, resolving a symbol, .\"O or calling a symbol from another shared object\(emby .\"O calling an appropriate function within the audit library. -ưŪ¥ê¥ó¥«¤Ï¡¢¤¤¤ï¤æ¤ë´Æºº¥Á¥§¥Ã¥¯¥Ý¥¤¥ó¥È (auditing checkpoints) -¤Ë¤ª¤¤¤Æ¡¢´Æºº (audit) ¥é¥¤¥Ö¥é¥ê¤ÎŬÀڤʴؿô¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¡¢ -´Æºº¥é¥¤¥Ö¥é¥ê¤Ø¤ÎÄÌÃΤò¹Ô¤¦¡£´Æºº¥Á¥§¥Ã¥¯¥Ý¥¤¥ó¥È¤ÎÎã¤È¤·¤Æ¤Ï¡¢ -¿·¤¿¤Ê¥é¥¤¥Ö¥é¥ê¤Î¥í¡¼¥É¡¢¥·¥ó¥Ü¥ë¤Î²ò·è¡¢Ê̤ζ¦Í­¥ª¥Ö¥¸¥§¥¯¥È -¤«¤é¤Î¥·¥ó¥Ü¥ë¤Î¸Æ¤Ó½Ð¤·¡¢¤Ê¤É¤¬¤¢¤ë¡£ +動的リンカは、いわゆる監査チェックポイント (auditing checkpoints) +において、監査 (audit) ライブラリの適切な関数を呼び出すことで、 +監査ライブラリへの通知を行う。監査チェックポイントの例としては、 +新たなライブラリのロード、シンボルの解決、別の共有オブジェクト +からのシンボルの呼び出し、などがある。 .\"O For details, see .\"O .BR rtld-audit (7). .\"O The auditing interface is largely compatible with that provided on Solaris, @@ -362,23 +362,23 @@ set-user-ID/set-group-ID .\"O .IR "Linker and Libraries Guide" , .\"O in the chapter .\"O .IR "Runtime Linker Auditing Interface" . -¾ÜºÙ¤Ï +詳細は .BR rtld-audit (7) -¤ò»²¾È¤·¤Æ¤Û¤·¤¤¡£ -audit ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¡¢Solaris ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¤â¤Î¤È -ÂçÉôʬ¤Ï¸ß´¹À­¤¬¤¢¤ë¡£Solaris ¤Î audit ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +を参照してほしい。 +audit インタフェースは、Solaris で提供されているものと +大部分は互換性がある。Solaris の audit インタフェースについては、 .I "Linker and Libraries Guide" -¤Î +の .I "Runtime Linker Auditing Interface" -¤Î¾Ï¤ËÀâÌÀ¤¬¤¢¤ë¡£ +の章に説明がある。 .TP .B LD_BIND_NOT .\"O (glibc since 2.1.95) .\"O Do not update the GOT (global offset table) and PLT (procedure linkage table) .\"O after resolving a symbol. -(glibc 2.1.95 °Ê¹ß) -¥·¥ó¥Ü¥ë¤ò²ò·è¤·¤¿¸å¡¢GOT (global offset table) ¤È -PLT (procedure linkage table) ¤ò¹¹¿·¤·¤Ê¤¤¡£ +(glibc 2.1.95 以降) +シンボルを解決した後、GOT (global offset table) と +PLT (procedure linkage table) を更新しない。 .TP .B LD_DEBUG .\"O (glibc since 2.1) @@ -392,16 +392,16 @@ PLT (procedure linkage table) .\"O Since glibc 2.3.4, .\"O .B LD_DEBUG .\"O is ignored for set-user-ID/set-group-ID binaries. -(glibc 2.1 °Ê¹ß) -ưŪ¥ê¥ó¥«¤Î¾ÜºÙ¤Ê¥Ç¥Ð¥Ã¥°¾ðÊó¤ò½ÐÎϤ¹¤ë¡£ +(glibc 2.1 以降) +動的リンカの詳細なデバッグ情報を出力する。 .B all -¤ËÀßÄꤷ¤¿¾ì¹ç¡¢Á´¤Æ¤ÎưŪ¥ê¥ó¥«¤¬»ý¤Ä¥Ç¥Ð¥Ã¥°¾ðÊó¤òɽ¼¨¤¹¤ë¡£ +に設定した場合、全ての動的リンカが持つデバッグ情報を表示する。 .B help -¤ËÀßÄꤷ¤¿¾ì¹ç¡¢¤³¤Î´Ä¶­ÊÑ¿ô¤Ç»ØÄꤵ¤ì¤ë¥«¥Æ¥´¥ê¤Î¥Ø¥ë¥×¾ðÊó¤òɽ¼¨¤¹¤ë¡£ -glibc 2.3.4 °Ê¹ß¡¢ -set-user-ID/set-group-ID ¤µ¤ì¤¿¥Ð¥¤¥Ê¥ê¤Ç¤Ï +に設定した場合、この環境変数で指定されるカテゴリのヘルプ情報を表示する。 +glibc 2.3.4 以降、 +set-user-ID/set-group-ID されたバイナリでは .B LD_DEBUG -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .TP .B LD_DEBUG_OUTPUT .\"O (glibc since 2.1) @@ -410,13 +410,13 @@ set-user-ID/set-group-ID .\"O output should be fed into, default is standard output. .\"O .B LD_DEBUG_OUTPUT .\"O is ignored for set-user-ID/set-group-ID binaries. -(glibc 2.1 °Ê¹ß) +(glibc 2.1 以降) .B LD_DEBUG -¤Î½ÐÎϤò½ñ¤­¹þ¤à¥Õ¥¡¥¤¥ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ïɸ½à½ÐÎϤǤ¢¤ë¡£ -set-user-ID/set-group-ID ¤µ¤ì¤¿¥Ð¥¤¥Ê¥ê¤Ç¤Ï¡¢ +の出力を書き込むファイル。 +デフォルトは標準出力である。 +set-user-ID/set-group-ID されたバイナリでは、 .B LD_DEBUG_OUTPUT -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .TP .B LD_DYNAMIC_WEAK .\"O (glibc since 2.1.91) @@ -424,34 +424,34 @@ set-user-ID/set-group-ID .\"O For security reasons, since glibc 2.3.4, .\"O .B LD_DYNAMIC_WEAK .\"O is ignored for set-user-ID/set-group-ID binaries. -(glibc 2.1.19 °Ê¹ß) -¾å½ñ¤­¤µ¤ì¤ë¼å¤¤¥·¥ó¥Ü¥ë (ÀΤΠglibc ¤ÎµóÆ°¤òµÕ¤Ë¤¹¤ë)¡£ -¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÍýͳ¤«¤é¡¢glibc 2.3.4 °Ê¹ß¡¢ -set-user-ID/set-group-ID ¤µ¤ì¤¿¥Ð¥¤¥Ê¥ê¤Ç¤Ï +(glibc 2.1.19 以降) +上書きされる弱いシンボル (昔の glibc の挙動を逆にする)。 +セキュリティ上の理由から、glibc 2.3.4 以降、 +set-user-ID/set-group-ID されたバイナリでは .B LD_DYNAMIC_WEAK -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .TP .B LD_HWCAP_MASK .\"O (glibc since 2.1) .\"O Mask for hardware capabilities. -(glibc 2.1 °Ê¹ß) -¥Ï¡¼¥É¥¦¥§¥¢µ¡Ç½¤Î¥Þ¥¹¥¯¡£ +(glibc 2.1 以降) +ハードウェア機能のマスク。 .TP .B LD_KEEPDIR .\"O (a.out only)(libc5) .\"O Don't ignore the directory in the names of a.out libraries to be loaded. .\"O Use of this option is strongly discouraged. -(a.out ¤Î¤ß)(libc5) -¥í¡¼¥É¤¹¤ë a.out ¥é¥¤¥Ö¥é¥ê¤Î̾Á°¤Ë¤ª¤¤¤Æ¡¢¥Ç¥£¥ì¥¯¥È¥ê¤ò̵»ë¤·¤Ê¤¤¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +(a.out のみ)(libc5) +ロードする a.out ライブラリの名前において、ディレクトリを無視しない。 +このオプションは用いるべきではない。 .TP .B LD_NOWARN .\"O (a.out only)(libc5) .\"O Suppress warnings about a.out libraries with incompatible minor .\"O version numbers. -(a.out ¤Î¤ß)(libc5) -a.out ¥é¥¤¥Ö¥é¥ê¤Ë¤ª¤±¤ë¥Þ¥¤¥Ê¡¼¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤ÎÈó¸ß´¹¤Ë -ÂФ¹¤ë·Ù¹ð¥á¥Ã¥»¡¼¥¸¤òÍÞÀ©¤¹¤ë¡£ +(a.out のみ)(libc5) +a.out ライブラリにおけるマイナーバージョン番号の非互換に +対する警告メッセージを抑制する。 .TP .B LD_ORIGIN_PATH .\"O (glibc since 2.1) @@ -459,18 +459,18 @@ a.out .\"O For security reasons, since glibc 2.4, .\"O .B LD_ORIGIN_PATH .\"O is ignored for set-user-ID/set-group-ID binaries. -(glibc 2.1 °Ê¹ß) -¥Ð¥¤¥Ê¥ê¤Ø¤Î¥Ñ¥¹ (set-user-ID ¤µ¤ì¤Æ¤¤¤Ê¤¤¥×¥í¥°¥é¥à¤Ë¤Ä¤¤¤Æ)¡£ -¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÍýͳ¤«¤é¡¢glibc 2.3.4 °Ê¹ß¡¢ -set-user-ID/set-group-ID ¤µ¤ì¤¿¥Ð¥¤¥Ê¥ê¤Ç¤Ï +(glibc 2.1 以降) +バイナリへのパス (set-user-ID されていないプログラムについて)。 +セキュリティ上の理由から、glibc 2.3.4 以降、 +set-user-ID/set-group-ID されたバイナリでは .B LD_ORIGIN_PATH -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\" Only used if $ORIGIN can't be determined by normal means .\" (from the origin path saved at load time, or from /proc/self/exe)? .TP .B LD_POINTER_GUARD .\"O (glibc since 2.4) -(glibc 2.4 °Ê¹ß) +(glibc 2.4 以降) .\"O Set to 0 to disable pointer guarding. .\"O Any other value enables pointer guarding, which is also the default. .\"O Pointer guarding is a security mechanism whereby some pointers to code @@ -480,13 +480,13 @@ set-user-ID/set-group-ID .\"O semi-randomly to make it more difficult for an attacker to hijack .\"O the pointers for use in the event of a buffer overrun or .\"O stack-smashing attack. -0 ¤ËÀßÄꤹ¤ë¤È¡¢¥Ý¥¤¥ó¥¿Êݸî (pointer guarding) ¤¬Ìµ¸ú¤Ë¤Ê¤ë¡£ -¤½¤ì°Ê³°¤ÎÃͤξì¹ç¤Ï¥Ý¥¤¥ó¥¿Êݸͭ¸ú¤Ë¤Ê¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï¥Ý¥¤¥ó¥¿ÊݸîÍ­¸ú¤Ç¤¢¤ë¡£ -¥Ý¥¤¥ó¥¿Êݸî¤Ï¥»¥­¥å¥ê¥Æ¥£µ¡¹½¤Î°ì¤Ä¤Ç¡¢½ñ¤­¹þ¤ß²Äǽ¤Ê¥×¥í¥°¥é¥à¥á¥â¥ê -¤Ë³ÊǼ¤µ¤ì¤¿¥³¡¼¥É¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò¤Û¤Ü¥é¥ó¥À¥à²½¤¹¤ë¤³¤È¤Ç¡¢ -¹¶·â¼Ô¤¬¥Ð¥Ã¥Õ¥¡¥ª¡¼¥Ð¡¼¥é¥ó¤ä¥¹¥¿¥Ã¥¯Ç˲õ (stack-smashing) ¹¶·â¤ÎºÝ¤Ë -¥Ý¥¤¥ó¥¿¤ò¾è¤Ã¼è¤ë¤³¤È¤òº¤Æñ¤Ë¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +0 に設定すると、ポインタ保護 (pointer guarding) が無効になる。 +それ以外の値の場合はポインタ保護が有効になる。 +デフォルトはポインタ保護有効である。 +ポインタ保護はセキュリティ機構の一つで、書き込み可能なプログラムメモリ +に格納されたコードへのポインタをほぼランダム化することで、 +攻撃者がバッファオーバーランやスタック破壊 (stack-smashing) 攻撃の際に +ポインタを乗っ取ることを困難にするものである。 .TP .B LD_PROFILE .\"O (glibc since 2.1) @@ -494,12 +494,12 @@ set-user-ID/set-group-ID .\"O specified either as a pathname or a soname. .\"O Profiling output is written to the file whose name is: .\"O "\fI$LD_PROFILE_OUTPUT\fP/\fI$LD_PROFILE\fP.profile". -(glibc 2.1 °Ê¹ß) -¥×¥í¥Õ¥¡¥¤¥ë¤ò¹Ô¤¦¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¡£ -¥Ñ¥¹Ì¾¤«¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È̾ (soname) ¤Ç»ØÄꤵ¤ì¤ë¡£ -¥×¥í¥Õ¥£¡¼¥ë¤Î½ÐÎÏ¤Ï -"\fI$LD_PROFILE_OUTPUT\fP/\fI$LD_PROFILE\fP.profile" ¤È¤¤¤¦Ì¾Á°¤Î -¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£ +(glibc 2.1 以降) +プロファイルを行う共有オブジェクト。 +パス名か共有オブジェクト名 (soname) で指定される。 +プロフィールの出力は +"\fI$LD_PROFILE_OUTPUT\fP/\fI$LD_PROFILE\fP.profile" という名前の +ファイルに書き込まれる。 .TP .B LD_PROFILE_OUTPUT .\"O (glibc since 2.1) @@ -513,18 +513,18 @@ set-user-ID/set-group-ID .\"O is ignored for set-user-ID and set-group-ID programs, .\"O which always use .\"O .IR /var/profile . -(glibc 2.1 °Ê¹ß) +(glibc 2.1 以降) .B LD_PROFILE -¤Î½ÐÎϤ¬½ñ¤­¹þ¤Þ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¡£ -¤³¤ÎÊÑ¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢¶õ¤Îʸ»úÎó¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï +の出力が書き込まれるディレクトリ。 +この変数が定義されていないか、空の文字列が定義されている場合、 +デフォルト値は .I /var/tmp -¤È¤Ê¤ë¡£ -set-user-ID/set-group-ID ¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ -LD_PROFILE_OUTPUT ¤Ï̵»ë¤µ¤ì¤ë¡£ -½ÐÎÏ¥Õ¥¡¥¤¥ë¤Ï¾ï¤Ë +となる。 +set-user-ID/set-group-ID されたプログラムでは、 +LD_PROFILE_OUTPUT は無視される。 +出力ファイルは常に .I /var/profile -¤¬»ÈÍѤµ¤ì¤ë¡£ +が使用される。 .TP .B LD_SHOW_AUXV .\"O (glibc since 2.1) @@ -532,12 +532,12 @@ LD_PROFILE_OUTPUT .\"O For security reasons, since glibc 2.3.5, .\"O .B LD_SHOW_AUXV .\"O is ignored for set-user-ID/set-group-ID binaries. -(glibc 2.1 °Ê¹ß) -¥«¡¼¥Í¥ë¤«¤éÅϤµ¤ì¤ëÊä½õŪ¤Ê (¥Ñ¥é¥á¡¼¥¿¤Î) ÇÛÎó¤òɽ¼¨¤¹¤ë¡£ -¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÍýͳ¤«¤é¡¢glibc 2.3.4 °Ê¹ß¡¢ -set-user-ID/set-group-ID ¤µ¤ì¤¿¥Ð¥¤¥Ê¥ê¤Ç¤Ï +(glibc 2.1 以降) +カーネルから渡される補助的な (パラメータの) 配列を表示する。 +セキュリティ上の理由から、glibc 2.3.4 以降、 +set-user-ID/set-group-ID されたバイナリでは .B LD_SHOW_AUXV -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\" FIXME .\" Document LD_TRACE_PRELINKING (e.g.: LD_TRACE_PRELINKING=libx1.so ./prog) .\" Since glibc 2.3 @@ -552,29 +552,29 @@ set-user-ID/set-group-ID .\"O shared objects will honor base addresses of their dependent libraries .\"O and (nonprelinked) position-independent executables (PIEs) .\"O and other shared objects will not honor them. -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï (¤Ä¤Þ¤ê¡¢¤³¤ÎÊÑ¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç)¡¢ -¼Â¹Ô¥Õ¥¡¥¤¥ë¤È prelink ¤µ¤ì¤¿¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤Ï¡¢¤½¤ì¤é¤¬°Í¸¤¹¤ë -¥é¥¤¥Ö¥é¥ê¤Î¥Ù¡¼¥¹¥¢¥É¥ì¥¹¤¬Âº½Å¤µ¤ì¤ë°ìÊý¡¢ -(prelink ¤µ¤ì¤Æ¤¤¤Ê¤¤) position-independent executables (PIEs) ¤È -¾¤Î¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤Ï°Í¸¤¹¤ë¥é¥¤¥Ö¥é¥ê¤Î¥Ù¡¼¥¹¥¢¥É¥ì¥¹¤Ï -º½Å¤µ¤ì¤Ê¤¤¡£ +デフォルトでは (つまり、この変数が定義されていない場合)、 +実行ファイルと prelink された共有オブジェクトでは、それらが依存する +ライブラリのベースアドレスが尊重される一方、 +(prelink されていない) position-independent executables (PIEs) と +他の共有オブジェクトでは依存するライブラリのベースアドレスは +尊重されない。 .\"O If .\"O .B LD_USE_LOAD_BIAS .\"O is defined wit the value, both executables and PIEs .\"O will honor the base addresses. .B LD_USE_LOAD_BIAS -¤ËÃͤ¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¡¢¼Â¹Ô¥Õ¥¡¥¤¥ë¤È PIE ¤Î¤É¤Á¤é¤Ç¤â -¥Ù¡¼¥¹¥¢¥É¥ì¥¹¤¬Âº½Å¤µ¤ì¤ë¡£ +に値が定義された場合、実行ファイルと PIE のどちらでも +ベースアドレスが尊重される。 .\"O If .\"O .B LD_USE_LOAD_BIAS .\"O is defined with the value 0, .\"O neither executables nor PIEs will honor the base addresses. .B LD_USE_LOAD_BIAS -¤¬ÃÍ 0 ¤ÇÄêµÁ¤µ¤ì¤¿¾ì¹ç¡¢¼Â¹Ô¥Õ¥¡¥¤¥ë¤È PIE ¤Î¤É¤Á¤é¤Ç¤â -¥Ù¡¼¥¹¥¢¥É¥ì¥¹¤Ïº½Å¤µ¤ì¤Ê¤¤¡£ +が値 0 で定義された場合、実行ファイルと PIE のどちらでも +ベースアドレスは尊重されない。 .\"O This variable is ignored by set-user-ID and set-group-ID programs. -set-user-ID ¤ä set-group-ID ¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ -¤³¤ÎÊÑ¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ +set-user-ID や set-group-ID されたプログラムでは、 +この変数は無視される。 .TP .B LD_VERBOSE .\"O (glibc since 2.1) @@ -587,22 +587,22 @@ set-user-ID .\"O or .\"O .B \-\-verify .\"O options have been given to the dynamic linker). -(glibc 2.1 °Ê¹ß) -¶õʸ»úÎó¤Ç¤Ê¤¤¾ì¹ç¤Ë¡¢ +(glibc 2.1 以降) +空文字列でない場合に、 .RB ( LD_TRACE_LOADED_OBJECTS -¤òÀßÄꤹ¤ë¤«¡¢ +を設定するか、 .B \-\-list -¤Þ¤¿¤Ï +または .B \-\-verify -¥ª¥×¥·¥ç¥ó¤òưŪ¥ê¥ó¥«¤Ë»ØÄꤹ¤ë¤³¤È¤Ë¤è¤ê) -¥×¥í¥°¥é¥à¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÌ䤤¹ç¤ï¤»¤ë¤È¡¢ -¥×¥í¥°¥é¥à¤Î¥·¥ó¥Ü¥ë¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɽ¼¨¤¹¤ë¡£ +オプションを動的リンカに指定することにより) +プログラムについての情報を問い合わせると、 +プログラムのシンボルバージョン情報を表示する。 .TP .B LD_WARN .\"O (ELF only)(glibc since 2.1.3) .\"O If set to a nonempty string, warn about unresolved symbols. -(ELF ¤Î¤ß)(glibc 2.1.3 °Ê¹ß) -¶õʸ»úÎó¤Ç¤Ê¤¤¾ì¹ç¡¢²ò·è¤µ¤ì¤Æ¤¤¤Ê¤¤¥·¥ó¥Ü¥ë¤¬¤¢¤ì¤Ð·Ù¹ð¤ò½Ð¤¹¡£ +(ELF のみ)(glibc 2.1.3 以降) +空文字列でない場合、解決されていないシンボルがあれば警告を出す。 .TP .B LDD_ARGV0 (libc5) @@ -611,61 +611,61 @@ set-user-ID .\"O .BR ldd (1) .\"O when none is present. .BR ldd (1) -¤Î°ú¤­¿ô¤¬¤Ê¤¤¾ì¹ç¤Ë¡¢ +の引き数がない場合に、 .IR argv [0] -¤È¤·¤Æ»È¤ï¤ì¤ëÃÍ¡£ +として使われる値。 .\"O .TP .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .PD 0 .TP .I /lib/ld.so .\"O a.out dynamic linker/loader -a.out ¤ÎưŪ¥ê¥ó¥«/¥í¡¼¥À +a.out の動的リンカ/ローダ .TP .IR /lib/ld\-linux.so. { 1 , 2 } .\"O ELF dynamic linker/loader -ELF ¤ÎưŪ¥ê¥ó¥«/¥í¡¼¥À +ELF の動的リンカ/ローダ .TP .I /etc/ld.so.cache .\"O File containing a compiled list of directories in which to search for .\"O libraries and an ordered list of candidate libraries. -¥é¥¤¥Ö¥é¥ê¤ò¸¡º÷¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ò½¸¤á¤¿¥ê¥¹¥È¤È¡¢ -¶¦Í­¥é¥¤¥Ö¥é¥ê¤Î¸õÊä¤ÎÀ°Îó¥ê¥¹¥È¤ò´Þ¤à¥Õ¥¡¥¤¥ë¡£ +ライブラリを検索するディレクトリを集めたリストと、 +共有ライブラリの候補の整列リストを含むファイル。 .TP .I /etc/ld.so.preload .\"O File containing a whitespace separated list of ELF shared libraries to .\"O be loaded before the program. -¥×¥í¥°¥é¥à¤ÎÁ°¤Ë¥í¡¼¥É¤¹¤Ù¤­ ELF ¶¦Í­¥é¥¤¥Ö¥é¥ê¤ò -¥¹¥Ú¡¼¥¹¤Ç¶èÀڤ俥ꥹ¥È¤¬½ñ¤«¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¡£ +プログラムの前にロードすべき ELF 共有ライブラリを +スペースで区切ったリストが書かれているファイル。 .TP .B lib*.so* .\"O shared libraries -¶¦Í­¥é¥¤¥Ö¥é¥ê +共有ライブラリ .PD .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The .\"O .B ld.so .\"O functionality is available for executables compiled using libc version .\"O 4.4.3 or greater. .B ld.so -¤Îµ¡Ç½¤Ï libc ¤Î¥Ð¡¼¥¸¥ç¥ó 4.4.3 °Ê¾å¤òÍѤ¤¤Æ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿ -¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ç»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ +の機能は libc のバージョン 4.4.3 以上を用いてコンパイルされた +実行ファイルで使用可能である。 .\"O ELF functionality is available since Linux 1.1.52 and libc5. -ELF ¤Îµ¡Ç½¤Ï Linux 1.1.52 °Ê¹ß¤È libc5 °Ê¹ß¤Ç»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ +ELF の機能は Linux 1.1.52 以降と libc5 以降で使用可能である。 .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ldd (1), .BR rtld-audit (7), .BR ldconfig (8) .\"O .\" .SH AUTHORS -.\" .SH Ãø¼Ô +.\" .SH 著者 .\" ld.so: David Engel, Eric Youngdale, Peter MacDonald, Hongjiu Lu, Linus .\" Torvalds, Lars Wirzenius and Mitch D'Souza .\"O .\" ld-linux.so: Roland McGrath, Ulrich Drepper and others. -.\" ld-linux.so: Roland McGrath, Ulrich Drepper, ¤½¤Î¾¤Î¿Í¡¹ +.\" ld-linux.so: Roland McGrath, Ulrich Drepper, その他の人々 .\" .\"O .\" In the above, (libc5) stands for David Engel's ld.so/ld-linux.so. -.\" ¾åµ­¤ÎÀâÌÀ¤Ë¤ª¤¤¤Æ¡¢(libc5) ¤Ï David Engel ¤Î -.\" ld.so/ld-linux.so ¤òɽ¤·¤Æ¤¤¤ë¡£ +.\" 上記の説明において、(libc5) は David Engel の +.\" ld.so/ld-linux.so を表している。 diff --git a/draft/man8/ldconfig.8 b/draft/man8/ldconfig.8 index 66af3ed3..a6840c23 100644 --- a/draft/man8/ldconfig.8 +++ b/draft/man8/ldconfig.8 @@ -26,16 +26,16 @@ .\" Updated & Modified Mon Jun 4 20:13:57 JST 2001 .\" by Yuichi SATO .\" -.\"WORD: verbose mode ¾ÜºÙɽ¼¨¥â¡¼¥É -.\"WORD: quiet mode ¥á¥Ã¥»¡¼¥¸ÍÞÀ©¥â¡¼¥É +.\"WORD: verbose mode 詳細表示モード +.\"WORD: quiet mode メッセージ抑制モード .\" .TH LDCONFIG 8 2009-04-15 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O /sbin/ldconfig \- configure dynamic linker run-time bindings -/sbin/ldconfig \- ưŪ¥ê¥ó¥«¤Ë¤è¤ë¼Â¹Ô»þ¤Î·ë¹ç´Ø·¸¤òÀßÄꤹ¤ë +/sbin/ldconfig \- 動的リンカによる実行時の結合関係を設定する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B /sbin/ldconfig [ .B \-nNvXV @@ -65,7 +65,7 @@ .B /sbin/ldconfig .B \-p .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .B ldconfig .\"O creates the necessary links and cache to the most recent shared .\"O libraries found in the directories specified on the command line, @@ -76,29 +76,29 @@ .\"O and .\"O .IR /usr/lib ). .B ldcofig -¤ÏºÇ¿·¤Î¶¦Í­¥é¥¤¥Ö¥é¥ê¤ËÂФ·¤ÆɬÍפʥê¥ó¥¯¤òºîÀ®¤·¤¿¤ê¡¢ -¥é¥¤¥Ö¥é¥ê¤ò¥­¥ã¥Ã¥·¥å¤·¤¿¤ê¤¹¤ë¡£ -¥é¥¤¥Ö¥é¥ê¤Ï¡¢¥³¥Þ¥ó¥É¥é¥¤¥ó¤ä +は最新の共有ライブラリに対して必要なリンクを作成したり、 +ライブラリをキャッシュしたりする。 +ライブラリは、コマンドラインや .I /etc/ld.so.conf -¥Õ¥¡¥¤¥ë¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ä¡¢¶¦Í­¥é¥¤¥Ö¥é¥ê¤¬ -Ä̾ïÃÖ¤«¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê -.RI ( /lib " ¤È " /usr/lib ) -¤«¤é¸¡º÷¤µ¤ì¤ë¡£ +ファイルで指定されたディレクトリや、共有ライブラリが +通常置かれるディレクトリ +.RI ( /lib " と " /usr/lib ) +から検索される。 .\"O The cache is used by the run-time linker, .\"O .I ld.so .\"O or .\"O .IR ld-linux.so . -¥­¥ã¥Ã¥·¥å¤Ï¼Â¹Ô»þ¥ê¥ó¥« +キャッシュは実行時リンカ .I ld.so -¤Þ¤¿¤Ï +または .I ld-linux.so -¤Ë¤è¤Ã¤Æ»È¤ï¤ì¤ë¡£ +によって使われる。 .\"O .B ldconfig .\"O checks the header and filenames of the libraries it encounters when .\"O determining which versions should have their links updated. .B ldconfig -¤Ï½èÍý¤¹¤ë¥é¥¤¥Ö¥é¥ê¤Î¥Ø¥Ã¥ÀÉôʬ¤È¥Õ¥¡¥¤¥ë̾¤ò¥Á¥§¥Ã¥¯¤·¡¢ -¤É¤Î¥Ð¡¼¥¸¥ç¥ó¤ËÂФ·¤Æ¥ê¥ó¥¯¤ò¹¹¿·¤¹¤Ù¤­¤«¤òȽÃǤ¹¤ë¡£ +は処理するライブラリのヘッダ部分とファイル名をチェックし、 +どのバージョンに対してリンクを更新すべきかを判断する。 .PP .\"O .B ldconfig .\"O will attempt to deduce the type of ELF libs (i.e., libc5 or libc6/glibc) @@ -108,12 +108,12 @@ .\"O .\" Therefore, when making dynamic libraries, .\"O .\" it is wise to explicitly link against libc (use \-lc). .B ldconfig -¤Ï ELF ¥é¥¤¥Ö¥é¥ê¤Î¼ïÎà (libc5 ¤« libc6/glibc ¤«) ¤òȽÃǤ¹¤ë¤È¤­¡¢ -¤½¤Î¥é¥¤¥Ö¥é¥ê¤¬¥ê¥ó¥¯¤·¤Æ¤¤¤ë C ¥é¥¤¥Ö¥é¥ê¤ò»²¹Í¤Ë¤¹¤ë¡£ -.\" °Ê²¼¤Îʸ¤ÎÆâÍƤÏËÜÅö¤«¤É¤¦¤«µ¿¤ï¤·¤¤ -.\" (¤ª¤½¤é¤¯²áµî¤Î°äʪ¤Ç¤¢¤í¤¦) -- MTK, Jul 2005 -.\" ¤·¤¿¤¬¤Ã¤Æ¥À¥¤¥Ê¥ß¥Ã¥¯¥é¥¤¥Ö¥é¥ê¤òºîÀ®¤¹¤ë¤È¤­¤Ë¤Ï¡¢ -.\" libc ¤ËÂФ¹¤ë¥ê¥ó¥¯¤ò (\-lc ¤ò¤Ä¤«¤Ã¤Æ) ÌÀ¼¨¤·¤Æ¤ª¤¯¤ÈÎɤ¤¡£ +は ELF ライブラリの種類 (libc5 か libc6/glibc か) を判断するとき、 +そのライブラリがリンクしている C ライブラリを参考にする。 +.\" 以下の文の内容は本当かどうか疑わしい +.\" (おそらく過去の遺物であろう) -- MTK, Jul 2005 +.\" したがってダイナミックライブラリを作成するときには、 +.\" libc に対するリンクを (\-lc をつかって) 明示しておくと良い。 .PP .\"O Some existing libs do not contain enough information to allow the deduction of .\"O their type. @@ -132,38 +132,38 @@ .\"O Also see the .\"O .B \-p .\"O option. -¤¹¤Ç¤Ë¸ºß¤·¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥ê¤ÎÃæ¤Ë¤Ï¡¢¼ïÎà¤ò¶èÊ̤¹¤ë¤¿¤á¤Ë½¼Ê¬¤Ê -¾ðÊ󤬴ޤޤì¤Æ¤¤¤Ê¤¤¤â¤Î¤â¤¢¤ë¡£ -¤³¤Î¤¿¤á +すでに存在しているライブラリの中には、種類を区別するために充分な +情報が含まれていないものもある。 +このため .I /etc/ld.so.conf -¥Õ¥¡¥¤¥ë¤Ç¥é¥¤¥Ö¥é¥ê¤Î·Á¼°¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï¶èÊÌÉÔǽ¤Ê ELF ¥é¥¤¥Ö¥é¥ê¡Ö¤À¤±¡×¤ËÍѤ¤¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï "dirname=TYPE" ¤È¤¹¤ë¡£ -¤³¤³¤Ç TYPE ¤Ï libc4, libc5, libc6 ¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë -(¤³¤Î½ñ¼°¤Ï¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç¤â»È¤¨¤ë)¡£ -¡Ö¥¹¥Ú¡¼¥¹¤òÆþ¤ì¤Æ¤Ï¤Ê¤é¤Ê¤¤¡×¡£ +ファイルでライブラリの形式を指定することができるようになっている。 +これは区別不能な ELF ライブラリ「だけ」に用いるものである。 +フォーマットは "dirname=TYPE" とする。 +ここで TYPE は libc4, libc5, libc6 のいずれかである +(この書式はコマンドラインでも使える)。 +「スペースを入れてはならない」。 .B \-p -¥ª¥×¥·¥ç¥ó¤â¸«¤Æ¤ª¤¯¤³¤È¡£ +オプションも見ておくこと。 .\"O .B ldconfig .\"O should normally be run by the superuser as it may require write .\"O permission on some root owned directories and files. .B ldconfig -¤ÏÄ̾凉¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¸¢¸Â¤Ç¼Â¹Ô¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -root ¤¬½êÍ­¤·¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ä¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤­¹þ¤ß¸¢¸Â¤¬ -ɬÍפˤʤ뤫¤é¤Ç¤¢¤ë¡£ +は通常スーパーユーザー権限で実行しなければならない。 +root が所有しているディレクトリやファイルへの書き込み権限が +必要になるからである。 .\"O .SH OPTIONS -.SH ¥ª¥×¥·¥ç¥ó +.SH オプション .TP .B \-v .\"O Verbose mode. .\"O Print current version number, the name of each directory as it .\"O is scanned, and any links that are created. .\"O Overrides quiet mode. -¾ÜºÙɽ¼¨¥â¡¼¥É¡£ -¸½ºß¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òɽ¼¨¤¹¤ë¡£ -¤Þ¤¿¤½¤ì¤¾¤ì¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¥¹¥­¥ã¥ó¤·¡¢ -¿·¤·¤¤¥ê¥ó¥¯¤òÀ¸À®¤¹¤ë¤¿¤Ó¤Ë¡¢¤½¤ÎÆâÍƤòɽ¼¨¤¹¤ë¡£ -¥á¥Ã¥»¡¼¥¸ÍÞÀ©¥â¡¼¥É¤ò¾å½ñ¤­¤¹¤ë¡£ +詳細表示モード。 +現在のバージョン番号を表示する。 +またそれぞれのディレクトリをスキャンし、 +新しいリンクを生成するたびに、その内容を表示する。 +メッセージ抑制モードを上書きする。 .TP .B \-n .\"O Only process directories specified on the command line. @@ -176,34 +176,34 @@ root .\"O Implies .\"O .BR \-N . -¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Î¤ß¤ò½èÍý¤¹¤ë¡£ -Ä̾ﶦͭ¥é¥¤¥Ö¥é¥ê¤¬ÃÖ¤«¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê -.RI ( /lib " ¤È " /usr/lib ) -¤ä +コマンドラインで指定されたディレクトリのみを処理する。 +通常共有ライブラリが置かれるディレクトリ +.RI ( /lib " と " /usr/lib ) +や .I /etc/ld.so.conf -¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ï½èÍý¤·¤Ê¤¤¡£ -°ÅÌۤΤ¦¤Á¤Ë +で指定されたディレクトリは処理しない。 +暗黙のうちに .B \-N -¤¬»ØÄꤵ¤ì¤ë¡£ +が指定される。 .TP .B \-N .\"O Don't rebuild the cache. .\"O Unless .\"O .B \-X .\"O is also specified, links are still updated. -¥­¥ã¥Ã¥·¥å¤òºÆ¹½À®¤·¤Ê¤¤¡£ -Ʊ»þ¤Ë +キャッシュを再構成しない。 +同時に .B \-X -¤¬Æ±»þ¤Ë»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¡¢¥ê¥ó¥¯¤Î¤Û¤¦¤Ï¹¹¿·¤µ¤ì¤ë¡£ +が同時に指定されなければ、リンクのほうは更新される。 .TP .B \-X .\"O Don't update links. .\"O Unless .\"O .B \-N .\"O is also specified, the cache is still rebuilt. -¥ê¥ó¥¯¤ò¹¹¿·¤·¤Ê¤¤¡£ +リンクを更新しない。 .B \-N -¤¬Æ±»þ¤Ë»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¡¢¥­¥ã¥Ã¥·¥å¤Î¤Û¤¦¤ÏºÆ¹½À®¤µ¤ì¤ë¡£ +が同時に指定されなければ、キャッシュのほうは再構成される。 .TP .B \-f conf .\"O Use @@ -211,9 +211,9 @@ root .\"O instead of .\"O .IR /etc/ld.so.conf . .B conf -¤ò +を .I /etc/ld.so.conf -¤ÎÂå¤ï¤ê¤ËÍѤ¤¤ë¡£ +の代わりに用いる。 .TP .B \-C cache .\"O Use @@ -221,42 +221,42 @@ root .\"O instead of .\"O .IR /etc/ld.so.cache . .B cache -¤ò +を .I /etc/ld.so.cache -¤ÎÂå¤ï¤ê¤ËÍѤ¤¤ë¡£ +の代わりに用いる。 .TP .B \-r root .\"O Change to and use .\"O .I root .\"O as the root directory. .I root -¤Ë¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤òÊѹ¹¤·¡¢¤³¤³¤ò¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤È¤·¤ÆÍѤ¤¤ë¡£ +にカレントディレクトリを変更し、ここをルートディレクトリとして用いる。 .TP .B \-l .\"O Library mode. .\"O Manually link individual libraries. .\"O Intended for use by experts only. -¥é¥¤¥Ö¥é¥ê¥â¡¼¥É¡£¤½¤ì¤¾¤ì¤Î¥é¥¤¥Ö¥é¥ê¤ò¼êÆ°¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -½ÏÎý¼Ô¤Î¤ß¤¬ÍѤ¤¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +ライブラリモード。それぞれのライブラリを手動でリンクする。 +熟練者のみが用いるべきである。 .TP .B \-p .\"O Print the lists of directories and candidate libraries stored in .\"O the current cache. -¸½ºß¤Î¥­¥ã¥Ã¥·¥å¤ËÊݸ¤µ¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤È¡¢ -¥é¥¤¥Ö¥é¥ê¤Î¸õÊä¤òɽ¼¨¤¹¤ë¡£ +現在のキャッシュに保存されているディレクトリのリストと、 +ライブラリの候補を表示する。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .PD 0 .TP 20 .I /lib/ld.so .\"O run-time linker/loader -¼Â¹Ô»þ¥ê¥ó¥«/¥í¡¼¥À¡¼¡£ +実行時リンカ/ローダー。 .TP 20 .I /etc/ld.so.conf .\"O File containing a list of colon, space, tab, newline, or comma-spearated .\"O directories in which to search for libraries. -¥³¥í¥ó¡¦¥¹¥Ú¡¼¥¹¡¦¥¿¥Ö¡¦²þ¹Ô¡¦¥³¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¡£ -¤½¤ì¤¾¤ì¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç¥é¥¤¥Ö¥é¥ê¤¬¸¡º÷¤µ¤ì¤ë¡£ +コロン・スペース・タブ・改行・コンマで区切られたディレクトリのリスト。 +それぞれのディレクトリでライブラリが検索される。 .TP 20 .I /etc/ld.so.cache .\"O File containing an ordered list of libraries found in the directories @@ -267,13 +267,13 @@ root .\"O and .\"O .IR /usr/lib . .I /etc/ld.so.conf -¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¥é¥¤¥Ö¥é¥ê¡¢¤ª¤è¤Ó +で指定されたディレクトリにあるライブラリ、および .I /lib -¤È +と .I /usr/lib -¤Ë¤¢¤ë¥é¥¤¥Ö¥é¥ê¤Î½ç½øÉÕ¤­¥ê¥¹¥È¡£ +にあるライブラリの順序付きリスト。 .PD .\"O .SH SEE ALSO -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ldd (1), .BR ld.so (8) diff --git a/draft/man8/nscd.8 b/draft/man8/nscd.8 index cd78070e..9a113a5b 100644 --- a/draft/man8/nscd.8 +++ b/draft/man8/nscd.8 @@ -30,11 +30,11 @@ .\" .TH NSCD 8 2008-12-05 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O /usr/sbin/nscd \- name service cache daemon -/usr/sbin/nscd \- ¥Í¡¼¥à¥µ¡¼¥Ó¥¹¥­¥ã¥Ã¥·¥å¥Ç¡¼¥â¥ó +/usr/sbin/nscd \- ネームサービスキャッシュデーモン .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O Nscd is a daemon that provides a cache for the most common name service .\"O requests. .\"O The default configuration file, @@ -42,13 +42,13 @@ .\"O determines the behavior of the cache daemon. .\"O See .\"O .BR nscd.conf (5). -nscd ¤Ï°ìÈÌŪ¤Ê¥Í¡¼¥à¥µ¡¼¥Ó¥¹¤ËɬÍפÊ¿¤¯¤Î¤â¤Î¤ò -¥­¥ã¥Ã¥·¥å¤È¤·¤ÆÄ󶡤¹¤ë¥Ç¡¼¥â¥ó¤Ç¤¢¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¥Õ¥¡¥¤¥ë +nscd は一般的なネームサービスに必要な多くのものを +キャッシュとして提供するデーモンである。 +デフォルトの設定ファイル .I /etc/nscd.conf -¤Ç¥­¥ã¥Ã¥·¥å¥Ç¡¼¥â¥ó¤ÎÆ°ºî¤ò·èÄꤹ¤ë¡£ +でキャッシュデーモンの動作を決定する。 .BR nscd.conf (5) -¤ò¸«¤è¡£ +を見よ。 .\"O Nscd provides caching for accesses of the .\"O .BR passwd (5), @@ -62,17 +62,17 @@ nscd .\"O .BR getgrgid (3), .\"O .BR gethostbyname (3), .\"O and others. -nscd ¤Ï +nscd は .BR passwd (5), .BR group (5), .BR hosts (5) -¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤Î¥¢¥¯¥»¥¹¤Î¥­¥ã¥Ã¥·¥å¤ò +データベースへのアクセスのキャッシュを .BR getpwnam (3), .BR getpwuid (3), .BR getgrnam (3), .BR getgrgid (3), .BR gethostbyname (3) -¤Ê¤É¤Îɸ½à libc ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÄ̤·¤ÆÄ󶡤¹¤ë¡£ +などの標準 libc インターフェースを通して提供する。 .\"O There are two caches for each database: .\"O a positive one for items found, and a negative one @@ -82,21 +82,21 @@ nscd .\"O Note that the shadow file is specifically not cached. .\"O .BR getspnam (3) .\"O calls remain uncached as a result. -³Æ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤Ï 2 ¤Ä¤Î¥­¥ã¥Ã¥·¥å¤¬¤¢¤ë¡£ -¹ÎÄêŪ (positive) ¤Ê¥­¥ã¥Ã¥·¥å¤Ï¸«¤Ä¤«¤Ã¤¿¥¢¥¤¥Æ¥à¤ò¥­¥ã¥Ã¥·¥å¤·¡¢ -ÈÝÄêŪ (negative) ¤Ê¥­¥ã¥Ã¥·¥å¤Ï¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¥¢¥¤¥Æ¥à¤ò¥­¥ã¥Ã¥·¥å¤¹¤ë¡£ -³Æ¥­¥ã¥Ã¥·¥å¤Ï¥Ç¡¼¥¿¤Î TTL (time-to-live, À¸Â¸»þ´Ö) ¤ò¸ÄÊ̤˻ý¤Ã¤Æ¤¤¤ë¡£ -ÆÃÎã¤È¤·¤Æ shadow ¥Õ¥¡¥¤¥ë¤Ï¥­¥ã¥Ã¥·¥å¤µ¤ì¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +各データベースには 2 つのキャッシュがある。 +肯定的 (positive) なキャッシュは見つかったアイテムをキャッシュし、 +否定的 (negative) なキャッシュは見つからなかったアイテムをキャッシュする。 +各キャッシュはデータの TTL (time-to-live, 生存時間) を個別に持っている。 +特例として shadow ファイルはキャッシュされない点に注意すること。 .BR getspnam (3) -¤ò¸Æ¤Ó½Ð¤·¤Æ¤â·ë²Ì¤È¤·¤Æ¥­¥ã¥Ã¥·¥å¤µ¤ì¤Ê¤¤¤Þ¤Þ¤Ë¤Ê¤ë¡£ +を呼び出しても結果としてキャッシュされないままになる。 .\"O .SH OPTIONS -.SH ¥ª¥×¥·¥ç¥ó +.SH オプション .TP .B "\-\-help" .\"O will give you a list with all options and what they do. -Á´¤Æ¤Î¥ª¥×¥·¥ç¥ó¤È¤½¤ÎÆ°ºî¤ò¥ê¥¹¥È¤·¤Æɽ¼¨¤¹¤ë¡£ +全てのオプションとその動作をリストして表示する。 .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O The daemon will try to watch for changes in configuration files .\"O appropriate for each database (e.g. .\"O .I /etc/passwd @@ -109,45 +109,45 @@ nscd .\"O for the .\"O .I hosts .\"O database), and flush the cache when these are changed. -¥Ç¡¼¥â¥ó¤Ï( +デーモンは( .I passwd -¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤Ä¤¤¤Æ¤Ï -.IR /etc/passwd ¡¢ +データベースについては +.IR /etc/passwd 、 .I hosts -¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤Ä¤¤¤Æ¤Ï +データベースについては .I /etc/hosts -¤È +と .I /etc/resolv.conf -¤È¤¤¤¦¤è¤¦¤Ê)¤½¤ì¤¾¤ì¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¤¿¤á¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤ò¸«Ä¥¤Ã¤Æ¡¢ -¤³¤ì¤é¤¬Êѹ¹¤µ¤ì¤ë¤È¥­¥ã¥Ã¥·¥å¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë¡£ +というような)それぞれのデータベースのための設定ファイルを見張って、 +これらが変更されるとキャッシュをフラッシュする。 .\"O However, this will happen only after a short delay (unless the .\"O .BR inotify (7) .\"O mechanism is available and glibc 2.9 or later is available), .\"O and this auto-detection does not cover configuration files .\"O required by nonstandard NSS modules, if any are specified in .\"O .IR /etc/nsswitch.conf . -¤·¤«¤·¡¢¤³¤ì¤Ï( +しかし、これは( .BR inotify (7) -¤¬ÍøÍѲÄǽ¤Ç¡¢glibc 2.9 °Ê¹ß¤¬ÍøÍѲÄǽ¤Ê¾ì¹ç¤ò½ü¤¤¤Æ) -û¤¤ÃÙ±ä¤Î¸å¤Ëµ¯¤³¤ê¡¢¤Þ¤¿¤³¤Î¼«Æ°¸¡½Ð¤ÏÈóɸ½à NSS ¥â¥¸¥å¡¼¥ë¤¬ +が利用可能で、glibc 2.9 以降が利用可能な場合を除いて) +短い遅延の後に起こり、またこの自動検出は非標準 NSS モジュールが .I /etc/nsswitch.conf -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¤½¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ë¤ÏÂбþ¤·¤Ê¤¤¡£ +で指定されている場合はその設定ファイルには対応しない。 .\"O In that case, you need to run the following command .\"O after changing the configuration file of the database so that .\"O .B nscd .\"O invalidates its cache: -¤³¤Î¾ì¹ç¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤òÊѹ¹¤·¤¿¸å¡¢ +この場合、データベースの設定ファイルを変更した後、 .B nscd -¤Î¥­¥ã¥Ã¥·¥å¤ò̵¸ú¤Ë¤¹¤ë¤¿¤á¤Ë°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ëɬÍפ¬¤¢¤ë: +のキャッシュを無効にするために以下のコマンドを実行する必要がある: $ \fBnscd -i\fP \fI\fP .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR nscd.conf (5), .BR nsswitch.conf (5) .\"O .\" .SH AUTHOR -.\" .SH Ãø¼Ô +.\" .SH 著者 .\"O .\" .B nscd .\"O .\" was written by Thorsten Kukuk and Ulrich Drepper. .\" .B nscd -.\" ¤Ï Thorsten Kukuk ¤È Ulrich Drepper ¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤¿¡£ +.\" は Thorsten Kukuk と Ulrich Drepper によって書かれた。 diff --git a/draft/man8/sync.8 b/draft/man8/sync.8 index 030db742..0d0c9306 100644 --- a/draft/man8/sync.8 +++ b/draft/man8/sync.8 @@ -9,21 +9,21 @@ .\" Translated Tue Jun 13 14:04:28 JST 2000 .\" by by Yuichi SATO .\" -.\"WORD: synchronize Ʊ´ü -.\"WORD: superblock ¥¹¡¼¥Ñ¡¼¥Ö¥í¥Ã¥¯ -.\"WORD: halt Ää»ß -.\"WORD: processer ¥×¥í¥»¥Ã¥µ¡¼ +.\"WORD: synchronize 同期 +.\"WORD: superblock スーパーブロック +.\"WORD: halt 停止 +.\"WORD: processer プロセッサー .\" .TH SYNC 8 1998-11-01 "GNU" "Linux Programmer's Manual" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O sync \- synchronize data on disk with memory -sync \- ¥Ç¥£¥¹¥¯¾å¤Î¥Ç¡¼¥¿¤ò¥á¥â¥ê¤ÈƱ´ü¤µ¤»¤ë +sync \- ディスク上のデータをメモリと同期させる .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B "sync [\-\-help] [\-\-version]" .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .B sync .\"O writes any data buffered in memory out to disk. .\"O This can include (but is not limited to) modified superblocks, @@ -35,15 +35,15 @@ sync \- .\"O .BR sync (2) .\"O system call. .B sync -¤Ï¥á¥â¥ê¤Ë¥Ð¥Ã¥Õ¥¡¤µ¤ì¤¿¤¹¤Ù¤Æ¤Î¥Ç¡¼¥¿¤ò¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤à¡£ -¤³¤ì¤Ë¤Ï¡¢Êѹ¹¤µ¤ì¤¿¥¹¡¼¥Ñ¡¼¥Ö¥í¥Ã¥¯¡¦Êѹ¹¤µ¤ì¤¿ inode¡¦ -Ãٱ䤷¤¿Æɤ߽ñ¤­¤¬´Þ¤Þ¤ì¤ë (¾¤Ë¤â¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤)¡£ -¤³¤ì¤Ï¥«¡¼¥Í¥ë¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -¤Ê¤¼¤Ê¤é +はメモリにバッファされたすべてのデータをディスクに書き込む。 +これには、変更されたスーパーブロック・変更された inode・ +遅延した読み書きが含まれる (他にもあるかもしれない)。 +これはカーネルに実装されているべきである。 +なぜなら .B sync -¥×¥í¥°¥é¥à¤Ï +プログラムは .BR sync (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¹Ô»È¤¹¤ë¤À¤±¤À¤«¤é¤Ç¤¢¤ë¡£ +システムコールを行使するだけだからである。 .PP .\"O The kernel keeps data in memory to avoid doing (relatively slow) disk .\"O reads and writes. @@ -51,12 +51,12 @@ sync \- .\"O crashes, data may be lost or the filesystem corrupted as a result. .\"O .B sync .\"O ensures that everything in memory is written to disk. -¥«¡¼¥Í¥ë¤Ï (Èæ³ÓŪÃÙ¤¤) ¥Ç¥£¥¹¥¯¤ÎÆɤ߽ñ¤­¤òÈò¤±¤ë¤¿¤á¡¢ -¥Ç¡¼¥¿¤ò¥á¥â¥ê¤ËÊÝ»ý¤¹¤ë¡£ -¤³¤ì¤Ë¤è¤êÀ­Ç½¤Ï¸þ¾å¤¹¤ë¤¬¡¢¥³¥ó¥Ô¥å¡¼¥¿¤¬¥¯¥é¥Ã¥·¥å¤·¤¿¾ì¹ç¡¢ -·ë²Ì¤È¤·¤Æ¥Ç¡¼¥¿¤¬Â»¼º¤·¤¿¤ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬²õ¤ì¤¿¤ê¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +カーネルは (比較的遅い) ディスクの読み書きを避けるため、 +データをメモリに保持する。 +これにより性能は向上するが、コンピュータがクラッシュした場合、 +結果としてデータが損失したりファイルシステムが壊れたりするかもしれない。 .B sync -¤Ï¥á¥â¥ê¤Ë¤¢¤ëÆâÍƤ¹¤Ù¤Æ¤¬¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¤³¤È¤òÊݾڤ¹¤ë¡£ +はメモリにある内容すべてがディスクに書き込まれることを保証する。 .PP .\"O .B sync .\"O should be called before the processor is halted in an unusual manner @@ -76,48 +76,48 @@ sync \- .\"O and .\"O .BR halt (8) .\"O directly.) -(¿·¤·¤¤¥«¡¼¥Í¥ë¥³¡¼¥É¤ò¥Ç¥Ð¥Ã¥¯¤·¤Æ¤¤¤Æ¥«¡¼¥Í¥ë¥Ñ¥Ë¥Ã¥¯¤ò°ú¤­µ¯¤³¤¹Á°¤Ê¤É¤Î) -Ä̾ï¤È°Û¤Ê¤ëÊýË¡¤Ç¥×¥í¥»¥Ã¥µ¡¼¤òÄä»ß¤µ¤»¤ëÁ°¤Ë¤Ï¡¢ +(新しいカーネルコードをデバックしていてカーネルパニックを引き起こす前などの) +通常と異なる方法でプロセッサーを停止させる前には、 .B sync -¤ò¸Æ¤Ó½Ð¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -°ìÈÌŪ¤Ë¤Ï +を呼び出すべきである。 +一般的には .BR sync (2) -¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¡¢ -¥·¥¹¥Æ¥à¤òÀŻ߾õÂ֤ˤµ¤»¤ë +を呼び出す前に、 +システムを静止状態にさせる .BR shutdown (8), .BR reboot (8), .BR halt (8) -¤È¤¤¤Ã¤¿¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¥×¥í¥»¥Ã¥µ¡¼¤òÄä»ß¤µ¤»¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -(¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤Ë¤Ï¤¤¤í¤¤¤í¤Ê¼ÂÁõ¤¬¤¢¤ë¤Î¤Ç¡¢ -¥É¥­¥å¥á¥ó¥È¤òÅö¤ë¤³¤È¡£ +といったコマンドを使ってプロセッサーを停止させるべきである。 +(これらのコマンドにはいろいろな実装があるので、 +ドキュメントを当ること。 .BR reboot (8), .BR halt (8) -¤òľÀܸƤӽФ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¥·¥¹¥Æ¥à¤â¤¢¤ë¡£) +を直接呼び出すべきではないシステムもある。) .\"O .SH "OPTIONS" -.SH ¥ª¥×¥·¥ç¥ó +.SH オプション .TP .B "\-\-help" .\"O Print a usage message on standard output and exit successfully. -ɸ½à½ÐÎϤ˻ÈÍÑÊýË¡¤Î¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¤ÆÀµ¾ï½ªÎ»¤¹¤ë¡£ +標準出力に使用方法のメッセージを出力して正常終了する。 .TP .B "\-\-version" .\"O Print version information on standard output, then exit successfully. -ɸ½à½ÐÎϤ˥С¼¥¸¥ç¥ó¾ðÊó¤ò½ÐÎϤ·¤ÆÀµ¾ï½ªÎ»¤¹¤ë¡£ +標準出力にバージョン情報を出力して正常終了する。 .TP .B "\-\-" .\"O Terminate option list. -¥ª¥×¥·¥ç¥ó¥ê¥¹¥È¤ò½ªÎ»¤¹¤ë¡£ +オプションリストを終了する。 .\"O .SH ENVIRONMENT -.SH ´Ä¶­ÊÑ¿ô +.SH 環境変数 .\"O The variables \fBLANG\fP, \fBLC_ALL\fP, \fBLC_CTYPE\fP, .\"O and \fBLC_MESSAGES\fP have the usual meaning. -ÊÑ¿ô \fBLANG\fP, \fBLC_ALL\fP, \fBLC_CTYPE\fP, \fBLC_MESSAGES\fP -¤ÏÄ̾ï¤Î°ÕÌ£¤ò»ý¤Ä¡£ +変数 \fBLANG\fP, \fBLC_ALL\fP, \fBLC_CTYPE\fP, \fBLC_MESSAGES\fP +は通常の意味を持つ。 .\"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 POSIX.2. .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O On Linux, .\"O .B sync .\"O is only guaranteed to schedule the dirty blocks for writing; it can @@ -129,27 +129,27 @@ POSIX.2. .\"O commands take this into account by sleeping for a few seconds after .\"O calling .\"O .BR sync (2). -Linux ¤Ç¤Ï¡¢ +Linux では、 .B sync -¤Ï (¤Þ¤À½ñ¤­¹þ¤Þ¤ì¤Æ¤¤¤Ê¤¤) ¥À¡¼¥Æ¥£¤Ê¥Ö¥í¥Ã¥¯¤Î½ñ¤­¹þ¤ß¤ò -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤¹¤ë¤³¤È¤Î¤ß¤òÊݾڤ¹¤ë¡£ -¤Ä¤Þ¤ê¡¢¤¹¤Ù¤Æ¤Î¥Ö¥í¥Ã¥¯¤Î½ñ¤­¹þ¤ß¤¬½ª¤ë¤Þ¤Ç¤Ë¡¢¼ÂºÝ¤Ë¤Ï¾¯¤·»þ´Ö¤¬¤«¤«¤ë¡£ +は (まだ書き込まれていない) ダーティなブロックの書き込みを +スケジューリングすることのみを保証する。 +つまり、すべてのブロックの書き込みが終るまでに、実際には少し時間がかかる。 .BR reboot (8), .BR halt (8) -¥³¥Þ¥ó¥É¤Ï +コマンドは .BR sync (2) -¤ò¸Æ¤ó¤À¸å¤Ë¿ôÉô֥¹¥ê¡¼¥×¤¹¤ë¤³¤È¤Ç¡¢¤³¤ì¤ò¹Íθ¤ËÆþ¤ì¤Æ¤¤¤ë¡£ +を呼んだ後に数秒間スリープすることで、これを考慮に入れている。 .PP .\"O This page describes .\"O .B sync .\"O as found in the file\%utils-4.0 package; .\"O other versions may differ slightly. -¤³¤Î¥Ú¡¼¥¸¤Ç¤Ï file\%utils-4.0 ¥Ñ¥Ã¥±¡¼¥¸¤Ç¤Î +このページでは file\%utils-4.0 パッケージでの .B sync -¥³¥Þ¥ó¥É¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤ë¤Î¤Ç¡¢ -¤½¤Î¾¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¾¯¤·°ã¤¤¤¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +コマンドについて説明しているので、 +その他のバージョンでは少し違いがあるかもしれない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sync (2), .BR halt (8), .BR reboot (8), diff --git a/draft/man8/tzselect.8 b/draft/man8/tzselect.8 index 657e1621..6806331a 100644 --- a/draft/man8/tzselect.8 +++ b/draft/man8/tzselect.8 @@ -7,18 +7,18 @@ .\" by Yuichi SATO .\" Updated & Modified Sun Dec 23 08:41:42 JST 2001 by Yuichi SATO .\" -.\"WORD: country code ¹ñÊÌ¥³¡¼¥É +.\"WORD: country code 国別コード .\" .TH TZSELECT 8 2007-05-18 "" "Linux System Administration" .\"O .SH NAME .\"O tzselect \- select a timezone -.SH ̾Á° -tzselect \- ¥¿¥¤¥à¥¾¡¼¥ó¤òÁªÂò¤¹¤ë +.SH 名前 +tzselect \- タイムゾーンを選択する .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B tzselect .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O The .\"O .B tzselect .\"O program asks the user for information about the current location, @@ -27,56 +27,56 @@ tzselect \- .\"O .B TZ .\"O environment variable. .B tzselect -¥×¥í¥°¥é¥à¤Ï¡¢¥æ¡¼¥¶¡¼¤¬¸½ºß¤¤¤ë¾ì½ê¤Î¾ðÊó¤ò¿Ò¤Í¤Æ¡¢ -¤½¤Î·ë²ÌÆÀ¤é¤ì¤¿¥¿¥¤¥à¥¾¡¼¥ó¤Îɽµ­¤òɸ½à½ÐÎϤËɽ¼¨¤¹¤ë¡£ -¤³¤Î½ÐÎÏ¤Ï +プログラムは、ユーザーが現在いる場所の情報を尋ねて、 +その結果得られたタイムゾーンの表記を標準出力に表示する。 +この出力は .B TZ -´Ä¶­ÊÑ¿ô¤ÎÃͤˤ¹¤ë¤ÈÎɤ¤¡£ +環境変数の値にすると良い。 .PP .\"O All interaction with the user is done via standard input and standard error. -¥æ¡¼¥¶¤È¤ÎÂÐÏäϡ¢Á´¤Æɸ½àÆþÎϤÈɸ½à¥¨¥é¡¼½ÐÎϤȤǹԤï¤ì¤ë¡£ +ユーザとの対話は、全て標準入力と標準エラー出力とで行われる。 .\"O .SH "EXIT STATUS" -.SH ÊÖ¤êÃÍ +.SH 返り値 .\"O The exit status is zero if a timezone was successfully obtained .\"O from the user, nonzero otherwise. -¥æ¡¼¥¶¤«¤é¤ÎÆþÎϤˤè¤Ã¤Æ¥¿¥¤¥à¥¾¡¼¥ó¤¬Àµ¤·¤¯¼èÆÀ¤Ç¤­¤¿¾ì¹ç¤Ï 0 ¤ò -ÊÖ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 °Ê³°¤òÊÖ¤¹¡£ +ユーザからの入力によってタイムゾーンが正しく取得できた場合は 0 を +返す。それ以外の場合は 0 以外を返す。 .\"O .SH ENVIRONMENT -.SH ´Ä¶­ +.SH 環境 .TP \fBAWK\fP .\"O Name of a Posix-compliant -Posix ¸ß´¹¤Î +Posix 互換の .I awk .\"O program (default: .\"O .BR awk ). -¥×¥í¥°¥é¥à (¥Ç¥Õ¥©¥ë¥È¤Ï -.BR awk )¡£ +プログラム (デフォルトは +.BR awk )。 .TP \fBTZDIR\fP .\"O Name of the directory containing timezone data files (default: .\"O .IR /usr/share/zoneinfo ). .\"O .\" or perhaps /usr/local/etc/zoneinfo in some older systems. -¥¿¥¤¥à¥¾¡¼¥ó¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î̾Á° (¥Ç¥Õ¥©¥ë¥È¤Ï -.IR /usr/share/zoneinfo )¡£ -.\" ¸Å¤¤¥·¥¹¥Æ¥à¤Ç¤Ï /usr/local/etc/zoneinfo ¤À¤í¤¦ +タイムゾーンデータファイルが置かれているディレクトリの名前 (デフォルトは +.IR /usr/share/zoneinfo )。 +.\" 古いシステムでは /usr/local/etc/zoneinfo だろう .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .TP \fBTZDIR\fP\fI/iso3166.tab\fP .\"O Table of ISO 3166 2-letter country codes and country names. -2 ʸ»ú¤Î¹ñÊÌ¥³¡¼¥É (countory code) ¤È¹ñ¤Î̾Á°¤«¤é¤Ê¤ë ISO 3166 ¤Îɽ¡£ +2 文字の国別コード (countory code) と国の名前からなる ISO 3166 の表。 .TP \fBTZDIR\fP\fI/zone.tab\fP .\"O Table of country codes, latitude and longitude, TZ values, and .\"O descriptive comments. -¹ñÊÌ¥³¡¼¥É¡¢·ÐÅÙ¡¦°ÞÅÙ¡¢TZ ¤ÎÃÍ¡¢ÀâÌÀʸ¤«¤é¤Ê¤ëɽ¡£ +国別コード、経度・緯度、TZ の値、説明文からなる表。 .TP \fBTZDIR\fP\fI/\fP\fITZ\fP .\"O Time zone data file for timezone \fITZ\fP. -¥¿¥¤¥à¥¾¡¼¥ó \fITZ\fP ¤ËÂФ¹¤ë¥¿¥¤¥à¥¾¡¼¥ó¥Ç¡¼¥¿¤Î¥Õ¥¡¥¤¥ë¡£ +タイムゾーン \fITZ\fP に対するタイムゾーンデータのファイル。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR tzfile (5), .BR zdump (8), .BR zic (8) diff --git a/draft/man8/zdump.8 b/draft/man8/zdump.8 index 4b355783..9472cf60 100644 --- a/draft/man8/zdump.8 +++ b/draft/man8/zdump.8 @@ -7,10 +7,10 @@ .TH ZDUMP 8 2007-05-18 "" "Linux System Administration" .\"O .SH NAME .\"O zdump \- timezone dumper -.SH ̾Á° -zdump \- ¥¿¥¤¥à¥¾¡¼¥ó¤ò¥À¥ó¥×¤¹¤ë +.SH 名前 +zdump \- タイムゾーンをダンプする .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B zdump [ .B \-v @@ -18,19 +18,19 @@ zdump \- .B \-c cutoffyear ] [ zonename ... ] .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .\"O .I Zdump .\"O prints the current time in each .\"O .I zonename .\"O named on the command line. .I zdump -¤Ï -¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç»ØÄꤷ¤¿ +は +コマンドラインで指定した .I zonename -¤½¤ì¤¾¤ì¤Ë¤ª¤±¤ë¸½ºß»þ¹ï¤òɽ¼¨¤¹¤ë¡£ +それぞれにおける現在時刻を表示する。 .PP .\"O These options are available: -°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄê¤Ç¤­¤ë: +以下のオプションを指定できる: .TP .B \-v .\"O For each @@ -47,25 +47,25 @@ cutoffyear ] [ zonename ... ] .\"O if the given time is Daylight Saving Time or .\"O .B isdst=0 .\"O otherwise. -¥³¥Þ¥ó¥É¥é¥¤¥ó¤ÇÍ¿¤¨¤é¤ì¤¿ +コマンドラインで与えられた .I zonename -¤½¤ì¤¾¤ì¤ËÂФ·¤Æ¡¢»ØÄê²Äǽ¤ÊºÇÄã°Ì¤Î»þ¹ïÃÍ (time value)¡¢ -ºÇÄã°Ì¤Î»þ¹ïÃͤΰìÆü¸å¤Î»þ¹ï¡¢ -¸«ÉÕ¤«¤Ã¤¿»þ´ÖÉÔϢ³¤Î°ìÉÃÁ°¤ÈÃúÅÙ¤½¤Î»þ¹ï¡¢ -ºÇ¹â°Ì»þ¹ïÃͤΰìÆüÁ°¤Î»þ¹ï¡¢ -»ØÄê²Äǽ¤ÊºÇ¹â°Ì¤Î»þ¹ïÃÍ¡¢¤òɽ¼¨¤¹¤ë¡£ -¤½¤ì¤¾¤ì¤Î¹Ô¤ÎËöÈø¤Ë¤Ï¡¢ -Í¿¤¨¤é¤ì¤Æ¤¤¤ë»þ¹ï¤¬¥µ¥Þ¡¼¥¿¥¤¥à (Daylight Saving Time) ¤Ê¤é +それぞれに対して、指定可能な最低位の時刻値 (time value)、 +最低位の時刻値の一日後の時刻、 +見付かった時間不連続の一秒前と丁度その時刻、 +最高位時刻値の一日前の時刻、 +指定可能な最高位の時刻値、を表示する。 +それぞれの行の末尾には、 +与えられている時刻がサマータイム (Daylight Saving Time) なら .B isdst=1 -¤¬¡¢¤½¤¦¤Ç¤Ê¤±¤ì¤Ð +が、そうでなければ .B isdst=0 -¤¬Éղ䵤ì¤ë¡£ +が付加される。 .TP .BI "\-c " cutoffyear .\"O Cut off the verbose output near the start of the given year. -Í¿¤¨¤é¤ì¤¿Ç¯¤ÎºÇ½é¤Îº¢¤Ë¤ª¤±¤ë;·×¤Ê½ÐÎϤòÀÚ¤ê¼Î¤Æ¤ë¡£ +与えられた年の最初の頃における余計な出力を切り捨てる。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR tzfile (5), .BR zic (8) .\" @(#)zdump.8 7.3 diff --git a/draft/man8/zic.8 b/draft/man8/zic.8 index d27c146a..3cf5483a 100644 --- a/draft/man8/zic.8 +++ b/draft/man8/zic.8 @@ -6,21 +6,21 @@ .\" Updated Wed Apr 4 2001 .\" by Yuichi SATO .\" -.\"WORD: time value »þ¹ïÃÍ -.\"WORD: rule line ¥ë¡¼¥ë¹Ô -.\"WORD: zone line ¥¾¡¼¥ó¹Ô -.\"WORD: link line ¥ê¥ó¥¯¹Ô -.\"WORD: continuation line ·Ñ³¹Ô -.\"WORD: wall clock (time) ÊÉ»þ·× (»þ¹ï) -.\"WORD: standard (time) ɸ½à (»þ¹ï) +.\"WORD: time value 時刻値 +.\"WORD: rule line ルール行 +.\"WORD: zone line ゾーン行 +.\"WORD: link line リンク行 +.\"WORD: continuation line 継続行 +.\"WORD: wall clock (time) 壁時計 (時刻) +.\"WORD: standard (time) 標準 (時刻) .\" .TH ZIC 8 2010-02-25 "" "Linux System Administration" .\"O .SH NAME -.SH ̾Á° +.SH 名前 .\"O zic \- timezone compiler -zic \- ¥¿¥¤¥à¥¾¡¼¥ó¥³¥ó¥Ñ¥¤¥é +zic \- タイムゾーンコンパイラ .\"O .SH SYNOPSIS -.SH ½ñ¼° +.SH 書式 .B zic [ .B \-v @@ -45,7 +45,7 @@ zic \- .I filename \&... ] .\"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .if t .ds lq `` .if t .ds rq '' .if n .ds lq \&"\" @@ -62,29 +62,29 @@ zic \- .\"O .BR \- , .\"O the standard input is read. .I zic -¤Ï¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë (Ê£¿ô»ØÄê²Ä) ¤«¤é¥Æ¥­¥¹¥È¤òÆɤߡ¢ -»þ¹ïÊÑ´¹¾ðÊó¥Õ¥¡¥¤¥ë¤òÀ¸À®¤¹¤ë¡£¥Õ¥¡¥¤¥ë̾¤âÆɤ߹þ¤ß¥Æ¥­¥¹¥È¤Ç»ØÄꤷ¤Æ¤ª¤¯¡£ +はコマンドラインで指定されたファイル (複数指定可) からテキストを読み、 +時刻変換情報ファイルを生成する。ファイル名も読み込みテキストで指定しておく。 .I filename -¤¬ +が .B \- -¤Î¾ì¹ç¤Ï¡¢É¸½àÆþÎϤ«¤éÆɤ߹þ¤à¡£ +の場合は、標準入力から読み込む。 .PP .\"O These options are available: -°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄê¤Ç¤­¤ë: +以下のオプションを指定できる: .TP .BI "\-d " directory .\"O Create time conversion information files in the named directory rather than .\"O in the standard directory named below. -»þ¹ïÊÑ´¹¾ðÊó¥Õ¥¡¥¤¥ë¤òÀ¸À®¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ò¡¢É¸½à¤Î¥Ç¥£¥ì¥¯¥È¥ê -(°Ê²¼¤ò»²¾È) ¤Ç¤Ï¤Ê¤¯»ØÄꤷ¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¹¤ë¡£ +時刻変換情報ファイルを生成するディレクトリを、標準のディレクトリ +(以下を参照) ではなく指定したディレクトリにする。 .TP .BI "\-l " timezone .\"O Use the given timezone as local time. .\"O .I Zic .\"O will act as if the input contained a link line of the form -»ØÄꤷ¤¿¥¿¥¤¥à¥¾¡¼¥ó¤ò¥í¡¼¥«¥ë¥¿¥¤¥à¤ËÍѤ¤¤ë¡£ +指定したタイムゾーンをローカルタイムに用いる。 .I zic -¤ÏÆþÎϤ˰ʲ¼¤Î½ñ¼°¤Î¥ê¥ó¥¯¹Ô¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤«¤Î¤è¤¦¤Ë¿¶¤ëÉñ¤¦¡£ +は入力に以下の書式のリンク行が含まれているかのように振る舞う。 .sp .ti +.5i Link \fItimezone\fP localtime @@ -94,10 +94,10 @@ Link \fItimezone\fP localtime .\"O timezone environment variables. .\"O .I Zic .\"O will act as if the input contained a link line of the form -POSIX ·Á¼°¤Î¥¿¥¤¥à¥¾¡¼¥ó´Ä¶­ÊÑ¿ô¤ò°·¤¦¤È¤­¡¢ -»ØÄꤷ¤¿¥¿¥¤¥à¥¾¡¼¥ó¤Î¥ë¡¼¥ë¤òÍѤ¤¤ë¡£ +POSIX 形式のタイムゾーン環境変数を扱うとき、 +指定したタイムゾーンのルールを用いる。 .I zic -¤ÏÆþÎϤ˰ʲ¼¤Î½ñ¼°¤Î¥ê¥ó¥¯¹Ô¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤«¤Î¤è¤¦¤Ë¿¶¤ëÉñ¤¦¡£ +は入力に以下の書式のリンク行が含まれているかのように振る舞う。 .sp .ti +.5i Link \fItimezone\fP posixrules @@ -106,26 +106,26 @@ Link \fItimezone\fP posixrules .\"O Read leap second information from the file with the given name. .\"O If this option is not used, .\"O no leap second information appears in output files. -±¼ÉþðÊó¤òÍ¿¤¨¤é¤ì¤¿Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤«¤éÆɤ߹þ¤à¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ -½ÐÎÏ¥Õ¥¡¥¤¥ë¤Ë¤Ï±¼ÉäξðÊó¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ +閏秒情報を与えられた名前のファイルから読み込む。 +このオプションが指定されなかった場合には、 +出力ファイルには閏秒の情報は含まれない。 .TP .B \-v .\"O Complain if a year that appears in a data file is outside the range .\"O of years representable by .\"O .BR time (2) .\"O values. -¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤Ë¸½¤ì¤ëǯ¤¬ +データファイルに現れる年が .BR time (2) -¤Çɽµ­¤Ç¤­¤ëÈϰϤò±Û¤¨¤Æ¤¤¤ë¾ì¹ç¤Ëʸ¶ç¤ò¸À¤¦¡£ +で表記できる範囲を越えている場合に文句を言う。 .TP .B \-s .\"O Limit time values stored in output files to values that are the same .\"O whether they're taken to be signed or unsigned. .\"O You can use this option to generate SVVS-compatible files. -½ÐÎÏ¥Õ¥¡¥¤¥ë¤Ë³ÊǼ¤µ¤ì¤ë»þ¹ï¤ÎÃͤò¡¢ signed ¤Çɾ²Á¤·¤Æ¤â unsigned ¤Ç -ɾ²Á¤·¤Æ¤âƱ¤¸Ãͤˤʤë¤è¤¦¤ÊÈϰϤËÀ©¸Â¤¹¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È SVVS ¸ß´¹¤Ê¥Õ¥¡¥¤¥ë¤òÀ¸À®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +出力ファイルに格納される時刻の値を、 signed で評価しても unsigned で +評価しても同じ値になるような範囲に制限する。 +このオプションを使うと SVVS 互換なファイルを生成することができる。 .TP .BI "\-y " command .\"O Use the given @@ -133,11 +133,11 @@ Link \fItimezone\fP posixrules .\"O rather than .\"O .B yearistype .\"O when checking year types (see below). -ǯ¤Î·¿¤Î¥Á¥§¥Ã¥¯ (°Ê²¼»²¾È) ¤Ë +年の型のチェック (以下参照) に .B yearistype -¤Ç¤Ï¤Ê¤¯»ØÄꤷ¤¿ +ではなく指定した .I command -¤òÍѤ¤¤ë¡£ +を用いる。 .PP .\"O Input lines are made up of fields. .\"O Fields are separated from one another by any number of white space characters. @@ -149,20 +149,20 @@ Link \fItimezone\fP posixrules .\"O Any line that is blank (after comment stripping) is ignored. .\"O Nonblank lines are expected to be of one of three types: .\"O rule lines, zone lines, and link lines. -ÆþÎϹԤϥե£¡¼¥ë¥É¤«¤é¤Ê¤ë¡£ -¥Õ¥£¡¼¥ë¥É´Ö¤Ï¡¢Ï¢Â³¤·¤¿Ç¤°Õ¤Î¸Ä¿ô¤Î¶õÇòʸ»ú¤Ë¤è¤Ã¤Æ¶èÀÚ¤é¤ì¤ë¡£ -¹ÔƬ¡¦¹ÔËö¤Î¶õÇòʸ»ú¤Ï̵»ë¤µ¤ì¤ë¡£ -¥¯¥©¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥·¥ã¡¼¥×ʸ»ú (#) ¤¬ÆþÎϹԤ˸½¤ì¤¿¾ì¹ç¤Ï¡¢ -¤½¤³¤«¤é¹ÔËö¤Þ¤Ç¤Ï¥³¥á¥ó¥È¤È¤·¤Æ°·¤ï¤ì¤ë¡£ -¶õÇòʸ»ú¤ä¥·¥ã¡¼¥×ʸ»ú¤ò¥À¥Ö¥ë¥¯¥©¡¼¥È (") ¤Ç°Ï¤á¤Ð¡¢ -¥Õ¥£¡¼¥ë¥É¤Î°ìÉô¤È¤·¤ÆÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -(¥³¥á¥ó¥È½üµî½èÍý¤ò¹Ô¤Ã¤¿¸å¤Î¤â¤Î¤ò´Þ¤á¤Æ) ¶õ¹Ô¤Ï̵»ë¤µ¤ì¤ë¡£ -¶õ¹Ô°Ê³°¤Î¹Ô¤Ï¡¢ 3 ¼ïÎढ¤ë¥¿¥¤¥×¤Î¹Ô¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¤È¤ß¤Ê¤µ¤ì¤ë¡£ -3 ¤Ä¤Î¥¿¥¤¥×¤È¤Ï¡¢¥ë¡¼¥ë¹Ô (rule line)¡¢¥¾¡¼¥ó¹Ô (zone line)¡¢ -¥ê¥ó¥¯¹Ô (link line) ¤Ç¤¢¤ë¡£ +入力行はフィールドからなる。 +フィールド間は、連続した任意の個数の空白文字によって区切られる。 +行頭・行末の空白文字は無視される。 +クォートされていないシャープ文字 (#) が入力行に現れた場合は、 +そこから行末まではコメントとして扱われる。 +空白文字やシャープ文字をダブルクォート (") で囲めば、 +フィールドの一部として用いることができる。 +(コメント除去処理を行った後のものを含めて) 空行は無視される。 +空行以外の行は、 3 種類あるタイプの行のいずれかであるとみなされる。 +3 つのタイプとは、ルール行 (rule line)、ゾーン行 (zone line)、 +リンク行 (link line) である。 .PP .\"O A rule line has the form -¥ë¡¼¥ë¹Ô¤Î½ñ¼°¤Ï°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¡£ +ルール行の書式は以下のようなものである。 .nf .ti +.5i .ta \w'Rule\0\0'u +\w'NAME\0\0'u +\w'FROM\0\0'u +\w'1973\0\0'u +\w'TYPE\0\0'u +\w'Apr\0\0'u +\w'lastSun\0\0'u +\w'2:00\0\0'u +\w'SAVE\0\0'u @@ -170,18 +170,18 @@ Link \fItimezone\fP posixrules Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S .sp .\"O For example: -Îã: +例: .ti +.5i .sp Rule US 1967 1973 \- Apr lastSun 2:00 1:00 D .sp .fi .\"O The fields that make up a rule line are: -¥ë¡¼¥ë¹Ô¤ò¹½À®¤¹¤ë¥Õ¥£¡¼¥ë¥É¤Ï°Ê²¼¤ÎÄ̤ê: +ルール行を構成するフィールドは以下の通り: .TP "\w'LETTER/S'u" .B NAME .\"O Gives the (arbitrary) name of the set of rules this rule is part of. -¤³¤Î¥ë¡¼¥ë¤¬½ê°¤¹¤ë¥ë¡¼¥ë¥»¥Ã¥È¤Î̾Á°¤òÍ¿¤¨¤ë (Ǥ°Õ)¡£ +このルールが所属するルールセットの名前を与える (任意)。 .TP .B FROM .\"O Gives the first year in which the rule applies. @@ -195,15 +195,15 @@ Rule US 1967 1973 \- Apr lastSun 2:00 1:00 D .\"O Rules can describe times that are not representable as time values, .\"O with the unrepresentable times ignored; this allows rules to be portable .\"O among hosts with differing time value types. -¤³¤Î¥ë¡¼¥ë¤¬Å¬ÍѤµ¤ì¤ëºÇ½é¤Îǯ¤òÍ¿¤¨¤ë¡£ -Ǥ°Õ¤ÎÀ°¿ô¤òǯ¤È¤·¤ÆÍ¿¤¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¥°¥ì¥´¥ê¥ªÎñ¤¬²¾Äꤵ¤ì¤ë¡£ +このルールが適用される最初の年を与える。 +任意の整数を年として与えることができる。グレゴリオ暦が仮定される。 .I minimum -(¤¢¤ë¤¤¤Ï¤½¤Îû½Ì) ¤ÏÀ°¿ôɽµ­¤Ç¤­¤ëºÇ¾®¤Îǯ¤ò°ÕÌ£¤¹¤ë¡£ +(あるいはその短縮) は整数表記できる最小の年を意味する。 .I maximum -(¤¢¤ë¤¤¤Ï¤½¤Îû½Ì) ¤ÏÀ°¿ôɽµ­¤Ç¤­¤ëºÇÂç¤Îǯ¤ò°ÕÌ£¤¹¤ë¡£ -¥ë¡¼¥ë¤Ç¤Ï»þ¹ïÃÍ (time value) ¤Ç¤Ïɽµ­¤Ç¤­¤Ê¤¤»þ¹ï¤âµ­½Ò¤Ç¤­¤ë¡£ -ɽµ­¤Ç¤­¤Ê¤¤»þ¹ï¤Ï̵»ë¤µ¤ì¤ë¡£¤Ä¤Þ¤ê¥ë¡¼¥ë¤Ï -°Û¤Ê¤Ã¤¿»þ¹ïÃͤη¿¤ò»ý¤Ä¥Û¥¹¥È´Ö¤Ç¥Ý¡¼¥¿¥Ö¥ë¤Ç¤¢¤ë¡£ +(あるいはその短縮) は整数表記できる最大の年を意味する。 +ルールでは時刻値 (time value) では表記できない時刻も記述できる。 +表記できない時刻は無視される。つまりルールは +異なった時刻値の型を持つホスト間でポータブルである。 .TP .B TO .\"O Gives the final year in which the rule applies. @@ -218,15 +218,15 @@ Rule US 1967 1973 \- Apr lastSun 2:00 1:00 D .\"O may be used to repeat the value of the .\"O .B FROM .\"O field. -¤³¤Î¥ë¡¼¥ë¤¬Å¬ÍѤµ¤ì¤ëºÇ¸å¤Îǯ¤òÍ¿¤¨¤ë¡£ +このルールが適用される最後の年を与える。 .I minimum -¤È +と .I maximum -(¾å½Ò) ¤Ë²Ã¤¨¡¢ +(上述) に加え、 .I only -(¤Þ¤¿¤Ï¤½¤Îû½Ì) ¤òÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¡¢¤³¤Î¾ì¹ç¤Ï +(またはその短縮) を用いることができ、この場合は .B FROM -¥Õ¥£¡¼¥ë¥É¤Ë»ØÄꤷ¤¿ÃͤÈƱ¤¸Ãͤ¬ÍѤ¤¤é¤ì¤ë¡£ +フィールドに指定した値と同じ値が用いられる。 .TP .B TYPE .\"O Gives the type of year in which the rule applies. @@ -244,39 +244,39 @@ Rule US 1967 1973 \- Apr lastSun 2:00 1:00 D .\"O is something else, then .\"O .I zic .\"O executes the command -¥ë¡¼¥ë¤ÎŬÍѤµ¤ì¤ëǯ¤Î¥¿¥¤¥×¤òÍ¿¤¨¤ë¡£ +ルールの適用される年のタイプを与える。 .B TYPE -¤¬ +が .B \- -¤Ç¤¢¤ì¤Ð¡¢¤³¤Î¥ë¡¼¥ë¤Ï +であれば、このルールは .B FROM -¤«¤é +から .B TO -¤Ë¶´¤Þ¤ì¤¿ (ξü´Þ¤à) Á´¤Æ¤Îǯ¤ËŬÍѤµ¤ì¤ë¡£ +に挟まれた (両端含む) 全ての年に適用される。 .B TYPE -¤¬¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï¡¢ +がそれ以外の場合には、 .I zic -¤Ï°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Æǯ¤Î¥¿¥¤¥×¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ +は以下のコマンドを実行して年のタイプをチェックする。 .ti +.5i \fByearistype\fP \fIyear\fP \fItype\fP .br .\"O to check the type of a year: .\"O an exit status of zero is taken to mean that the year is of the given type; .\"O an exit status of one is taken to mean that the year is not of the given type. -ÊÖ¤êÃͤ¬ 0 ¤Î¾ì¹ç¤Ï¡¢¤½¤Îǯ¤ÏÍ¿¤¨¤é¤ì¤¿¥¿¥¤¥×¤Ë´Þ¤Þ¤ì¡¢ -ÊÖ¤êÃͤ¬ 1 ¤Î¾ì¹ç¤Ï´Þ¤Þ¤ì¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¡£ +返り値が 0 の場合は、その年は与えられたタイプに含まれ、 +返り値が 1 の場合は含まれないことになる。 .TP .B IN .\"O Names the month in which the rule takes effect. .\"O Month names may be abbreviated. -¥ë¡¼¥ë¤¬¸úÎϤò»ý¤Ä·î¤Î̾Á°¤ò»ØÄꤹ¤ë¡£ -·î̾¤Ïû½Ì¤Ç¤­¤ë¡£ +ルールが効力を持つ月の名前を指定する。 +月名は短縮できる。 .TP .B ON .\"O Gives the day on which the rule takes effect. .\"O Recognized forms include: -¥ë¡¼¥ë¤¬¸úÎϤò»ý¤ÄÆü¤Î̾Á°¤ò»ØÄꤹ¤ë¡£ -°Ê²¼¤Î¤è¤¦¤Ê½ñ¼°¤òǧ¼±¤¹¤ë: +ルールが効力を持つ日の名前を指定する。 +以下のような書式を認識する: .nf .in +.5i .sp @@ -286,11 +286,11 @@ Rule US 1967 1973 \- Apr lastSun 2:00 1:00 D .\"O lastMon the last Monday in the month .\"O Sun>=8 first Sunday on or after the eighth .\"O Sun<=25 last Sunday on or before the 25th -5 ¤½¤Î·î¤ÎÂè 5 Æü -lastSun ¤½¤Î·î¤ÎºÇ¸å¤ÎÆüÍËÆü -lastMon ¤½¤Î·î¤ÎºÇ¸å¤Î·îÍËÆü -Sun>=8 Âè 8 Æü°Ê¹ß¤ÎºÇ½é¤ÎÆüÍËÆü -Sun<=25 Âè 25 Æü°ÊÁ°¤ÎºÇ¸å¤ÎÆüÍËÆü +5 その月の第 5 日 +lastSun その月の最後の日曜日 +lastMon その月の最後の月曜日 +Sun>=8 第 8 日以降の最初の日曜日 +Sun<=25 第 25 日以前の最後の日曜日 .fi .in -.5i .sp @@ -298,15 +298,15 @@ Sun<=25 .\"O Note that there must be no spaces within the .\"O .B ON .\"O field. -ÍËÆü¤Î̾Á°¤Ïû½Ì¤Ç¤­¤ë¡£Á´ÉôÄ֤äƤâÎɤ¤¡£ +曜日の名前は短縮できる。全部綴っても良い。 .B ON -¥Õ¥£¡¼¥ë¥É¤ÎÆâÉô¤Ë¤Ï¥¹¥Ú¡¼¥¹¤òÆþ¤ì¤Æ¤Ï¤¤¤±¤Ê¤¤¤³¤È¤ËÃí°Õ¡£ +フィールドの内部にはスペースを入れてはいけないことに注意。 .TP .B AT .\"O Gives the time of day at which the rule takes effect. .\"O Recognized forms include: -¥ë¡¼¥ë¤¬¸úÎϤò»ý¤Ä°ìÆü¤Î¤¦¤Á¤Î»þ¹ï¤òÍ¿¤¨¤ë¡£ -°Ê²¼¤Î¤è¤¦¤Ê½ñ¼°¤òǧ¼±¤¹¤ë: +ルールが効力を持つ一日のうちの時刻を与える。 +以下のような書式を認識する: .nf .in +.5i .sp @@ -316,11 +316,11 @@ Sun<=25 .\"O 15:00 24-hour format time (for times after noon) .\"O 1:28:14 time in hours, minutes, and seconds .\"O \- equivalent to 0 -2 »þ´Ö¤Ç¤Îɽµ­ -2:00 »þ´Ö¤Èʬ¤Ç¤Îɽµ­ -15:00 24 »þ´Ö·Á¼°¤Î»þ´Ö (Àµ¸á°Ê¹ß) -1:28:14 »þ´Ö¡¦Ê¬¡¦ÉäǤÎɽµ­ -\- 0 ¤ÈƱ¤¸ +2 時間での表記 +2:00 時間と分での表記 +15:00 24 時間形式の時間 (正午以降) +1:28:14 時間・分・秒での表記 +\- 0 と同じ .fi .in -.5i .sp @@ -343,25 +343,25 @@ Sun<=25 .\"O if the given time is universal time; .\"O in the absence of an indicator, .\"O wall clock time is assumed. -¤³¤³¤Ç 0 »þ¤Ï¤½¤ÎÆü¤Î¤Ï¤¸¤Þ¤ê¤Ç¤¢¤ê¡¢ -24 »þ¤Ï¤½¤ÎÆü¤Î½ª¤ï¤ê¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î½ñ¼°¤Î¤¢¤È¤Ë¤Ï¡¢°Ê²¼¤Îʸ»ú¤Î¤¤¤º¤ì¤«¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +ここで 0 時はその日のはじまりであり、 +24 時はその日の終わりである。 +これらの書式のあとには、以下の文字のいずれかを指定することができる。 .I w -Í¿¤¨¤é¤ì¤¿»þ¹ï¤¬¥í¡¼¥«¥ë¤Ê -.q "ÊÉ»þ·× (wall clock)" -»þ¹ï¤Ç¤¢¤ë; +与えられた時刻がローカルな +.q "壁時計 (wall clock)" +時刻である; .I s -Í¿¤¨¤é¤ì¤¿»þ¹ï¤¬¥í¡¼¥«¥ë¤Ê -.q "ɸ½à (standard)" -»þ¹ï¤Ç¤¢¤ë; +与えられた時刻がローカルな +.q "標準 (standard)" +時刻である; .I u -(¤Þ¤¿¤Ï +(または .I g -¤Þ¤¿¤Ï +または .IR z ) -Í¿¤¨¤é¤ì¤¿»þ¹ï¤¬É¸½à»þ (universal time) ¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Îɽ°Õʸ»ú¤¬¤¤¤º¤ì¤â»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ -ÊÉ»þ·×»þ¹ï¤¬²¾Äꤵ¤ì¤ë¡£ +与えられた時刻が標準時 (universal time) である。 +これらの表意文字がいずれも指定されなかった場合は、 +壁時計時刻が仮定される。 .TP .B SAVE .\"O Gives the amount of time to be added to local standard time when the rule is in @@ -374,14 +374,14 @@ Sun<=25 .\"O and .\"O .I s .\"O suffixes are not used). -¥ë¡¼¥ë¤¬¸úÎϤò»ý¤Ã¤Æ¤¤¤ë¤È¤­¡¢¥í¡¼¥«¥ë¤Êɸ½à»þ¹ï¤ËÄɲ乤٤­ -»þ´Ö¤ÎÎ̤òÍ¿¤¨¤ë¡£¤³¤Î¥Õ¥£¡¼¥ë¥É¤Î½ñ¼°¤Ï +ルールが効力を持っているとき、ローカルな標準時刻に追加すべき +時間の量を与える。このフィールドの書式は .B AT -¥Õ¥£¡¼¥ë¥É¤Î¤â¤Î¤ÈƱ¤¸¤Ç¤¢¤ë (¤¿¤À¤·¤â¤Á¤í¤ó +フィールドのものと同じである (ただしもちろん .I w -¤È +と .I s -¤Î¸åÃÖʸ»ú¤ÏÍѤ¤¤é¤ì¤Ê¤¤)¡£ +の後置文字は用いられない)。 .TP .B LETTER/S .\"O Gives the @@ -398,24 +398,24 @@ Sun<=25 .\"O If this field is .\"O .BR \- , .\"O the variable part is null. -¤³¤Î¥ë¡¼¥ë¤¬¸úÎϤò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¤ËÍѤ¤¤é¤ì¤ë¥¿¥¤¥à¥¾¡¼¥óû½Ì·¿¤Î -.q "²ÄÊÑÉô (variable part) -¤òÍ¿¤¨¤ë (Î㤨¤Ð +このルールが効力を持っている場合に用いられるタイムゾーン短縮型の +.q "可変部 (variable part) +を与える (例えば .q EST -¤ä +や .q EDT -¤Ë¤ª¤±¤ë +における .q S -¤ä +や .q D -¤Ê¤É)¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤¬ +など)。 +このフィールドが .B \- -¤Ç¤¢¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ -²ÄÊÑÉô¤Ï¸ºß¤·¤Ê¤¤¡£ +であった場合には、 +可変部は存在しない。 .PP .\"O A zone line has the form -¥¾¡¼¥ó¹Ô¤Î½ñ¼°¤Ï°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¡£ +ゾーン行の書式は以下のようなものである。 .sp .nf .ti +.5i @@ -423,21 +423,21 @@ Sun<=25 Zone NAME UTCOFF RULES/SAVE FORMAT [UNTIL] .sp .\"O For example: -Îã: +例: .sp .ti +.5i Zone Australia/Adelaide 9:30 Aus CST 1971 Oct 31 2:00 .sp .fi .\"O The fields that make up a zone line are: -¥¾¡¼¥ó¹Ô¤ò¹½À®¤¹¤ë¥Õ¥£¡¼¥ë¥É¤Ï°Ê²¼¤ÎÄ̤ê: +ゾーン行を構成するフィールドは以下の通り: .TP "\w'UTCOFF'u" .B NAME .\"O The name of the timezone. .\"O This is the name used in creating the time conversion information file for the .\"O zone. -¥¿¥¤¥à¥¾¡¼¥ó¤Î̾Á°¡£¤³¤Î̾Á°¤¬¤³¤Î¥¾¡¼¥ó¤Î»þ¹ïÊÑ´¹¾ðÊó¥Õ¥¡¥¤¥ë¤ò -À¸À®¤¹¤ë¤È¤­¤ËÍѤ¤¤é¤ì¤ë¡£ +タイムゾーンの名前。この名前がこのゾーンの時刻変換情報ファイルを +生成するときに用いられる。 .TP .B UTCOFF .\"O The amount of time to add to UTC to get standard time in this zone. @@ -447,13 +447,13 @@ Zone Australia/Adelaide 9:30 Aus CST 1971 Oct 31 2:00 .\"O .B SAVE .\"O fields of rule lines; .\"O begin the field with a minus sign if time must be subtracted from UTC. -¤³¤Î¥¾¡¼¥ó¤Îɸ½à»þ¹ï¤òÆÀ¤ë¤¿¤á¤Ë¡¢ UTC ¤Ë²Ã¤¨¤ë»þ´Ö¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Î½ñ¼°¤Ï¡¢¥ë¡¼¥ë¹Ô¤Î +このゾーンの標準時刻を得るために、 UTC に加える時間。 +このフィールドの書式は、ルール行の .B AT -¤ª¤è¤Ó +および .B SAVE -¥Õ¥£¡¼¥ë¥É¤Î¤â¤Î¤ÈƱ¤¸¤Ç¤¢¤ë¡£»þ´Ö¤ò UTC ¤«¤é°ú¤¯É¬Íפ¬¤¢¤ë¾ì¹ç¤Ï -¥Þ¥¤¥Ê¥¹µ­¹æ¤òÁ°ÃÖ¤¹¤ë¡£ +フィールドのものと同じである。時間を UTC から引く必要がある場合は +マイナス記号を前置する。 .TP .B RULES/SAVE .\"O The name of the rule(s) that apply in the timezone or, @@ -461,11 +461,11 @@ Zone Australia/Adelaide 9:30 Aus CST 1971 Oct 31 2:00 .\"O If this field is .\"O .B \- .\"O then standard time always applies in the timezone. -¥¿¥¤¥à¥¾¡¼¥ó¤ËŬÍѤµ¤ì¤ë¥ë¡¼¥ë¤Î̾Á°¤«¡¢¤¢¤ë¤¤¤Ï -¥í¡¼¥«¥ëɸ½à»þ¹ï¤Ë²Ã¤¨¤ë¤Ù¤­»þ´Ö¤ÎÎ̤ò»ØÄꤹ¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤¬ +タイムゾーンに適用されるルールの名前か、あるいは +ローカル標準時刻に加えるべき時間の量を指定する。 +このフィールドが .B \- -¤Ê¤é¤Ð¡¢¾ï¤Ëɸ½à»þ¹ï¤¬¤³¤Î¥¾¡¼¥ó¤ËÂФ·¤ÆÍѤ¤¤é¤ì¤ë¡£ +ならば、常に標準時刻がこのゾーンに対して用いられる。 .TP .B FORMAT .\"O The format for timezone abbreviations in this timezone. @@ -477,13 +477,13 @@ Zone Australia/Adelaide 9:30 Aus CST 1971 Oct 31 2:00 .\"O Alternately, .\"O a slash (/) .\"O separates standard and daylight abbreviations. -¤³¤Î¥¿¥¤¥à¥¾¡¼¥ó¤ËÂФ¹¤ë¥¿¥¤¥à¥¾¡¼¥óû½Ì̾¤Î½ñ¼°¡£ -2 ʸ»ú¤Îʸ»úÎó +このタイムゾーンに対するタイムゾーン短縮名の書式。 +2 文字の文字列 .B %s -¤òÍѤ¤¤Æ¡¢¤É¤³¤¬ -.q ²ÄÊÑÉô -¤Ë¤Ê¤ë¤«¤ò»ØÄê¤Ç¤­¤ë¡£¤¢¤ë¤¤¤Ï¥¹¥é¥Ã¥·¥åʸ»ú (/) ¤òÍѤ¤¤Æ -ɸ½à¤Îû½Ì̾¤È¥µ¥Þ¡¼¥¿¥¤¥àû½Ì̾¤ò¶èÀڤ뤳¤È¤¬¤Ç¤­¤ë¡£ +を用いて、どこが +.q 可変部 +になるかを指定できる。あるいはスラッシュ文字 (/) を用いて +標準の短縮名とサマータイム短縮名を区切ることができる。 .TP .B UNTIL .\"O The time at which the UTC offset or the rule(s) change for a location. @@ -494,14 +494,14 @@ Zone Australia/Adelaide 9:30 Aus CST 1971 Oct 31 2:00 .\"O The month, day, and time of day have the same format as the IN, ON, and AT .\"O columns of a rule; trailing columns can be omitted, and default to the .\"O earliest possible value for the missing columns. -UTC ¤ËÂФ¹¤ë¥ª¥Õ¥»¥Ã¥È¤«¡¢¤½¤Î¾ì½ê¤Ë¤ª¤±¤ë¥ë¡¼¥ë¤¬Êѹ¹¤µ¤ì¤ë»þ¹ï¡£ -ǯ¡¦·î¡¦Æü¡¦»þ¹ï¤Ç»ØÄꤹ¤ë¡£ -¤³¤ì¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢¥¿¥¤¥à¥¾¡¼¥ó¤Î¾ðÊó¤ÏÍ¿¤¨¤é¤ì¤Æ¤¤¤ë -UTC ¥ª¥Õ¥»¥Ã¥È¤«¤éÀ¸À®¤µ¤ì¡¢¥ë¡¼¥ë¤Ï»ØÄê»þ¹ï¤Ë¤Ê¤ë¤ÈÊѹ¹¤µ¤ì¤ë¡£ -·î¡¦Æü¡¦»þ¹ï¤Ï¡¢¥ë¡¼¥ë¤Î IN, ON, AT ¥«¥é¥à¤ÈƱ¤¸½ñ¼°¤Ç»ØÄꤹ¤ë¡£ -¤³¤Î¸å¤Ë³¤¯¥«¥é¥à¤Ï¾Êά¤Ç¤­¤ë¡£ -¾Êά¤µ¤ì¤¿¥«¥é¥à¤ËÂФ·¤Æ¤Ï¡¢ -²ÄǽÀ­¤Î¤¢¤ë¤â¤Î¤Î¤¦¤ÁºÇ¤âÁᤤÃͤ¬¥Ç¥Õ¥©¥ë¥È¤ÇÍѤ¤¤é¤ì¤ë¡£ +UTC に対するオフセットか、その場所におけるルールが変更される時刻。 +年・月・日・時刻で指定する。 +これが指定された場合には、タイムゾーンの情報は与えられている +UTC オフセットから生成され、ルールは指定時刻になると変更される。 +月・日・時刻は、ルールの IN, ON, AT カラムと同じ書式で指定する。 +この後に続くカラムは省略できる。 +省略されたカラムに対しては、 +可能性のあるもののうち最も早い値がデフォルトで用いられる。 .IP .\"O The next line must be a .\"O .q continuation @@ -516,21 +516,21 @@ UTC .\"O .B UNTIL .\"O field, just as zone lines do, indicating that the next line is a further .\"O continuation. -¤³¤Î¹Ô¤Ë¤Ïɬ¤º -.q ·Ñ³ (continuation) -¹Ô¤¬Â³¤¯¡£ -·Ñ³¹Ô¤Ï¥¾¡¼¥ó¹Ô¤ÈƱ¤¸½ñ¼°¤ò»ý¤Ä¤¬¡¢ +この行には必ず +.q 継続 (continuation) +行が続く。 +継続行はゾーン行と同じ書式を持つが、 .q Zone -¤È̾Á°¤Ï¾Êά¤µ¤ì¤ë¡£¤Ê¤¼¤Ê¤é·Ñ³¹Ô¤ÏľÁ°¤Î¹Ô¤Î +と名前は省略される。なぜなら継続行は直前の行の .B UNTIL -¥Õ¥£¡¼¥ë¥É¤Ç»ØÄꤵ¤ì¤¿»þ¹ï°Ê¹ß¤Î¾ðÊó¤òÍ¿¤¨¤ë¤â¤Î¤À¤«¤é¤Ç¤¢¤ë¡£ -·Ñ³¹Ô¤Ë¤â¥¾¡¼¥ó¹Ô¤ÈƱ¤¸¤è¤¦¤Ë +フィールドで指定された時刻以降の情報を与えるものだからである。 +継続行にもゾーン行と同じように .B UNTIL -¥Õ¥£¡¼¥ë¥É¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¡¢¤³¤Î¾ì¹ç¤Ï¤½¤Î¼¡¤Î¹Ô¤¬ -¤µ¤é¤Ê¤ë·Ñ³¹Ô¤Ë¤Ê¤ë¤³¤È¤È¤Ê¤ë¡£ +フィールドを指定することができ、この場合はその次の行が +さらなる継続行になることとなる。 .PP .\"O A link line has the form -¥ê¥ó¥¯¹Ô¤Î½ñ¼°¤Ï°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¡£ +リンク行の書式は以下のようなものである。 .sp .nf .ti +.5i @@ -538,7 +538,7 @@ UTC Link LINK-FROM LINK-TO .sp .\"O For example: -Îã: +例: .sp .ti +.5i Link Europe/Istanbul Asia/Istanbul @@ -556,14 +556,14 @@ Link Europe/Istanbul Asia/Istanbul .\"O Except for continuation lines, .\"O lines may appear in any order in the input. .B LINK-FROM -¥Õ¥£¡¼¥ë¥É¤Ï¥¾¡¼¥ó¹Ô¤Î +フィールドはゾーン行の .B NAME -¥Õ¥£¡¼¥ë¥É¤¬µ­½Ò¤µ¤ì¤ë¡£ +フィールドが記述される。 .B LINK-TO -¥Õ¥£¡¼¥ë¥É¤Ï¤½¤Î¥¾¡¼¥ó¤ÎÊÌ̾¤Ç¤¢¤ë¡£ +フィールドはそのゾーンの別名である。 .PP .\"O Lines in the file that describes leap seconds have the following form: -¥Õ¥¡¥¤¥ëÃæ¤Ç±¼Éäòµ­½Ò¤¹¤ë¹Ô¤Ï°Ê²¼¤Î¤è¤¦¤Ê½ñ¼°¤ò»ý¤Ä¡£ +ファイル中で閏秒を記述する行は以下のような書式を持つ。 .nf .ti +.5i .ta \w'Leap\0\0'u +\w'YEAR\0\0'u +\w'MONTH\0\0'u +\w'DAY\0\0'u +\w'HH:MM:SS\0\0'u +\w'CORR\0\0'u @@ -571,7 +571,7 @@ Link Europe/Istanbul Asia/Istanbul Leap YEAR MONTH DAY HH:MM:SS CORR R/S .sp .\"O For example: -Îã: +例: .ti +.5i .sp Leap 1974 Dec 31 23:59:60 + S @@ -597,13 +597,13 @@ Leap 1974 Dec 31 23:59:60 + S .BR MONTH , .BR DAY , .B HH:MM:SS -¤Ï±¼ÉäÎÀ¸¤¸¤¿½Ö´Ö¤ò¼¨¤¹¡£ +は閏秒の生じた瞬間を示す。 .B CORR -¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¡¢Éä¬ÁÞÆþ¤µ¤ì¤¿¾ì¹ç +フィールドには、秒が挿入された場合 .q + -¤ò¡¢É䬥¹¥­¥Ã¥×¤µ¤ì¤¿¾ì¹ç +を、秒がスキップされた場合 .q - -¤ò»ØÄꤹ¤ë¡£ +を指定する。 .\" There's no need to document the following, since it's impossible for more .\" than one leap second to be inserted or deleted at a time. .\" The C Standard is in error in suggesting the possibility. @@ -627,32 +627,32 @@ Leap 1974 Dec 31 23:59:60 + S .\"O if the leap second time given by the other fields should be interpreted as .\"O local wall clock time. .B R/S -¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¡¢Â¾¤Î¥Õ¥£¡¼¥ë¥É¤¬µ­½Ò¤·¤Æ¤¤¤ë±¼Éäλþ¹ï¤¬ -UTC ¤Ê¤é¤Ð +フィールドには、他のフィールドが記述している閏秒の時刻が +UTC ならば .q Stationary -(¤¢¤ë¤¤¤Ï¤½¤Îû½Ì·Á) ¤ò¡¢¥í¡¼¥«¥ë¤ÊÊÉ»þ·×»þ¹ï¤Ê¤é +(あるいはその短縮形) を、ローカルな壁時計時刻なら .q Rolling -(¤¢¤ë¤¤¤Ï¤½¤Îû½Ì·Á) ¤ò»ØÄꤹ¤ë¡£ +(あるいはその短縮形) を指定する。 .\"O .SH FILES -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .\"O /usr/local/etc/zoneinfo standard directory used for created files -/usr/local/etc/zoneinfo À¸À®¤µ¤ì¤¿¥Õ¥¡¥¤¥ëÍѤÎɸ½à¥Ç¥£¥ì¥¯¥È¥ê +/usr/local/etc/zoneinfo 生成されたファイル用の標準ディレクトリ .\"O .SH NOTES -.SH Ãí°Õ +.SH 注意 .\"O For areas with more than two types of local time, .\"O you may need to use local standard time in the .\"O .B AT .\"O field of the earliest transition time's rule to ensure that .\"O the earliest transition time recorded in the compiled file is correct. -Æó¤Ä°Ê¾å¤Î¥í¡¼¥«¥ë¥¿¥¤¥à¤ò»ý¤Ã¤Æ¤¤¤ëÃÏ°è¤Ç¤Ï¡¢ -¥í¡¼¥«¥ë¤Êɸ½à»þ¤ò -ºÇ¤âÁᤤÊý¤Î»þ¹ïÊÑ´¹¥ë¡¼¥ë¤Î +二つ以上のローカルタイムを持っている地域では、 +ローカルな標準時を +最も早い方の時刻変換ルールの .B AT -¥Õ¥£¡¼¥ë¥É¤ËÍѤ¤¤ëɬÍפ¬¤¢¤ë¤À¤í¤¦¡£¤µ¤â¤Ê¤¤¤È -¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ëµ­Ï¿¤µ¤ì¤¿ºÇ¤âÁᤤÊÑ´¹»þ¹ï¤¬ -Àµ¤·¤¤¤³¤È¤¬Êݾڤµ¤ì¤Ê¤¤¡£ +フィールドに用いる必要があるだろう。さもないと +コンパイルされたファイルに記録された最も早い変換時刻が +正しいことが保証されない。 .\"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR tzfile (5), .BR zdump (8) .\" @(#)zic.8 7.19 diff --git a/release/man1/intro.1 b/release/man1/intro.1 index 8a38fce8..54c2b4db 100644 --- a/release/man1/intro.1 +++ b/release/man1/intro.1 @@ -26,72 +26,72 @@ .\" Japanese Version Copyright (c) 2002 Akihiro MOTOKI, all rights reserved. .\" Translated Mon Mar 5 2003 by Akihiro MOTOKI .\" -.\"WORD introduction ¾Ò²ð -.\"WORD tree ÌÚ +.\"WORD introduction 紹介 +.\"WORD tree 木 .\" .TH INTRO 1 2007-11-15 "Linux" "Linux User's Manual" -.SH ̾Á° -intro \- ¥æ¡¼¥¶¡¼¥³¥Þ¥ó¥É¤Î¾Ò²ð -.SH ÀâÌÀ -¥Þ¥Ë¥å¥¢¥ë¤Î 1 ¾Ï¤Ï¡¢¥æ¡¼¥¶¡¼¥³¥Þ¥ó¥É¤ä¥Ä¡¼¥ë¤ÎÀâÌÀ¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤ë¡£ -Î㤨¤Ð¡¢¥Õ¥¡¥¤¥ëÁàºî¥Ä¡¼¥ë¡¢¥·¥§¥ë¡¢¥³¥ó¥Ñ¥¤¥é¡¢¥¦¥§¥Ö¥Ö¥é¥¦¥¶¡¢ -¥Õ¥¡¥¤¥ë¤ä¥¤¥á¡¼¥¸¤Î¥Ó¥å¡¼¥¢¤ä¥¨¥Ç¥£¥¿¡¢¤Ê¤É¤Ç¤¢¤ë¡£ +.SH 名前 +intro \- ユーザーコマンドの紹介 +.SH 説明 +マニュアルの 1 章は、ユーザーコマンドやツールの説明について説明している。 +例えば、ファイル操作ツール、シェル、コンパイラ、ウェブブラウザ、 +ファイルやイメージのビューアやエディタ、などである。 -¤¹¤Ù¤Æ¤Î¥³¥Þ¥ó¥É¤Ï½ªÎ»»þ¤Ë¥¹¥Æ¡¼¥¿¥¹ÃͤòÊÖ¤¹¡£ -¤³¤ÎÃͤò¸¡ºº¤¹¤ë¤³¤È¤Ç (Î㤨¤Ð¡¢¤Û¤È¤ó¤É¤Î¥·¥§¥ë¤Ç¤ÏÊÑ¿ô +すべてのコマンドは終了時にステータス値を返す。 +この値を検査することで (例えば、ほとんどのシェルでは変数 .I $? -¤ËºÇ¸å¤Ë¼Â¹Ô¤·¤¿¥³¥Þ¥ó¥É¤Î¥¹¥Æ¡¼¥¿¥¹¤¬ÊÝ»ý¤µ¤ì¤ë)¡¢ -¤½¤Î¥³¥Þ¥ó¥É¤¬À®¸ù¤·¤Æ´°Î»¤·¤¿¤«¤É¤¦¤«¤òÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ -ÅÁÅýŪ¤Ë¡¢½ªÎ»¥¹¥Æ¡¼¥¿¥¹ 0 ¤ÏÀ®¸ù¤ò¼¨¤¹¤Î¤Ë»È¤ï¤ì¡¢Èó 0 ¤ÎÃÍ¤Ï -¤½¤Î¥³¥Þ¥ó¥É¤¬À®¸ù¤·¤Ê¤«¤Ã¤¿¤³¤È¤ò¼¨¤¹ -(½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Î¾ÜºÙ¤Ï +に最後に実行したコマンドのステータスが保持される)、 +そのコマンドが成功して完了したかどうかを知ることができる。 +伝統的に、終了ステータス 0 は成功を示すのに使われ、非 0 の値は +そのコマンドが成功しなかったことを示す +(終了ステータスの詳細は .BR wait (2) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë)¡£ -Èó 0 ¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ï 1 ¤«¤é 255 ¤ÎÈϰϤÎÃͤò¤È¤ë¤³¤È¤¬¤Ç¤­¡¢ -¤¤¤¯¤Ä¤«¤Î¥³¥Þ¥ó¥É¤Ç¤Ï¥³¥Þ¥ó¥É¤¬¼ºÇÔ¤·¤¿Íýͳ¤ò¼¨¤¹¤¿¤á¤Ë -Ê£¿ô¤ÎÈó 0 ¤Î¥¹¥Æ¡¼¥¿¥¹Ãͤ¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ -.SH È÷¹Í -Linux ¤Ï UNIX ¤Î°ì¼ï¤Ç¤¢¤ê¡¢Â绨ÇĤˤ¤¤¨¤Ð¡¢ -UNIX ¾å¤Î¥æ¡¼¥¶¥³¥Þ¥ó¥É¤Ï¤¹¤Ù¤Æ Linux ¾å¤Ç¤âÁ´¤¯Æ±¤¸Æ°ºî¤ò¤¹¤ë -(FreeBSD ¤ä¾¤Î¤Î¿¤¯¤Î UNIX É÷¤Î¥·¥¹¥Æ¥à¤Ç¤âƱÍͤǤ¢¤ë)¡£ +に書かれている)。 +非 0 の終了ステータスは 1 から 255 の範囲の値をとることができ、 +いくつかのコマンドではコマンドが失敗した理由を示すために +複数の非 0 のステータス値が使用されている。 +.SH 備考 +Linux は UNIX の一種であり、大雑把にいえば、 +UNIX 上のユーザコマンドはすべて Linux 上でも全く同じ動作をする +(FreeBSD や他のの多くの UNIX 風のシステムでも同様である)。 .LP -Linux ¤Ë¤Ï GUI (¥°¥é¥Õ¥£¥«¥ë¡¦¥æ¡¼¥¶¡¦¥¤¥ó¥¿¥Õ¥§¡¼¥¹) ¤¬ÍÑ°Õ¤µ¤ì¤Æ¤ª¤ê¡¢ -²¿¤«¤ò¥Ý¥¤¥ó¥È¤·¤¿¤ê¡¢¥¯¥ê¥Ã¥¯¤·¤¿¤ê¡¢¥É¥é¥Ã¥°¤·¤¿¤ê¤Ç¤­¡¢¤¦¤Þ¤¯¤¤¤±¤Ð -ºÇ½é¤Ë¤¿¤¯¤µ¤ó¤Îʸ½ñ¤òÆɤޤʤ¯¤Æ¤âÌÜŪ¤Îºî¶È¤¬¤Ç¤­¤Æ¤·¤Þ¤¦¤³¤È¤â¤¢¤ë¡£ -ÅÁÅýŪ¤Ê UNIX ´Ä¶­¤Ï CLI (¥³¥Þ¥ó¥É¡¦¥é¥¤¥ó¡¦¥¤¥ó¥¿¥Õ¥§¡¼¥¹) ¤Ç¤¢¤ê¡¢ -¥³¥Þ¥ó¥É¤òÂǤÁ¹þ¤ó¤Ç¡¢¥³¥ó¥Ô¥å¡¼¥¿¤Ë²¿¤ò¤¹¤Ù¤­¤«¶µ¤¨¤Æ¤ä¤ë¡£ -CLI ¤Ï GUI ¤è¤ê¤â®¤¯¶¯ÎϤÀ¤¬¡¢¤É¤Î¥³¥Þ¥ó¥É¤¬²¿¤ò¤¹¤ë¤Î¤«ÃΤäƤ¤¤ëɬÍ× -¤¬¤¢¤ë¡£CLI ¤ò»È¤¤»Ï¤á¤ë¤¿¤á¤ËɬÍ׺Ǿ®¸Â¤Î¥³¥Þ¥ó¥É¤ò°Ê²¼¤Ë½Ò¤Ù¤ë¡£ -.SS ¥í¥°¥¤¥ó -ºî¶È¤ò³«»Ï¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¤Þ¤¹ºÇ½é¤Ë¥í¥°¥¤¥ó¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤À¤í¤¦¡£ -¤¹¤Ê¤ï¤Á¡¢¥æ¡¼¥¶Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¾Ü¤·¤¯¤Ï +Linux には GUI (グラフィカル・ユーザ・インタフェース) が用意されており、 +何かをポイントしたり、クリックしたり、ドラッグしたりでき、うまくいけば +最初にたくさんの文書を読まなくても目的の作業ができてしまうこともある。 +伝統的な UNIX 環境は CLI (コマンド・ライン・インタフェース) であり、 +コマンドを打ち込んで、コンピュータに何をすべきか教えてやる。 +CLI は GUI よりも速く強力だが、どのコマンドが何をするのか知っている必要 +がある。CLI を使い始めるために必要最小限のコマンドを以下に述べる。 +.SS ログイン +作業を開始するためには、ます最初にログインしなければならないだろう。 +すなわち、ユーザ名とパスワードを入力しなければならない。詳しくは .BR login (1) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .I login -¥×¥í¥°¥é¥à¤Ï (¥³¥Þ¥ó¥É¡¦¥¤¥ó¥¿¡¼¥×¥ê¥¿¤Ç¤¢¤ë) -.I "¥·¥§¥ë (shell)" -¤òµ¯Æ°¤¹¤ë¡£¥°¥é¥Õ¥£¥«¥ë¡¦¥í¥°¥¤¥ó¤Î¾ì¹ç¤Ï¡¢¥á¥Ë¥å¡¼¤ä¥¢¥¤¥³¥ó¤¬¤¢¤ë -¥¹¥¯¥ê¡¼¥ó¤¬É½¼¨¤µ¤ì¡¢¥Þ¥¦¥¹¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¥¦¥£¥ó¥É¥¦¤¬³«¤¤¤Æ -¥·¥§¥ë¤¬µ¯Æ°¤µ¤ì¤ë¤³¤È¤À¤í¤¦¡£¾Ü¤·¤¯¤Ï +プログラムは (コマンド・インタープリタである) +.I "シェル (shell)" +を起動する。グラフィカル・ログインの場合は、メニューやアイコンがある +スクリーンが表示され、マウスをクリックするとウィンドウが開いて +シェルが起動されることだろう。詳しくは .BR xterm (1) -¤ò»²¾È¤Î¤³¤È¡£ -.SS ¥·¥§¥ë -¥³¥Þ¥ó¥É¤Ï¡¢¥³¥Þ¥ó¥É¡¦¥¤¥ó¥¿¡¼¥×¥ê¥¿¤Ç¤¢¤ë -.I ¥·¥§¥ë -¤ËÂФ·¤ÆÆþÎϤ¹¤ë¡£ -.I ¥·¥§¥ë -¤Ï¡¢ÁȤ߹þ¤ß¥³¥Þ¥ó¥É¤Ç¤Ï¤Ê¤¯ÉáÄÌ¤Î¥×¥í¥°¥é¥à¤Ç¤¢¤ê¡¢¹¥¤ß¤Î¤â¤Î¤ËÊѹ¹¤¹¤ë -¤³¤È¤¬¤Ç¤­¤ë¡£³Æ¿Í¤Ë¤Ï¤½¤ì¤¾¤ì¹¥¤ß¤Î¥·¥§¥ë¤¬¤¢¤ë¡£É¸½à¤Î¥·¥§¥ë¤Ï +を参照のこと。 +.SS シェル +コマンドは、コマンド・インタープリタである +.I シェル +に対して入力する。 +.I シェル +は、組み込みコマンドではなく普通のプログラムであり、好みのものに変更する +ことができる。各人にはそれぞれ好みのシェルがある。標準のシェルは .I sh -¤È¸Æ¤Ð¤ì¤ë¡£ +と呼ばれる。 .BR ash (1), .BR bash (1), .BR csh (1), .BR zsh (1), .BR chsh (1) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .LP -¥»¥Ã¥·¥ç¥ó¤ÎÎã¤ò°Ê²¼¤Ë¼¨¤¹¡£ +セッションの例を以下に示す。 .RS .nf @@ -137,158 +137,158 @@ maja 0501\-1136285 .fi .RE -¤³¤³¤Ç Control-D ¤òÂǤĤȥ»¥Ã¥·¥ç¥ó¤¬½ªÎ»¤¹¤ë¡£ -¤³¤³¤Ç¡¢ +ここで Control-D を打つとセッションが終了する。 +ここで、 .B "% " -¤Ï¥³¥Þ¥ó¥É¡¦¥×¥í¥ó¥×¥È¤Ç¤¢¤ë¡£¥³¥Þ¥ó¥É¡¦¥×¥í¥ó¥×¥È¤Ï¥·¥§¥ëÆÈÆäΤä¤êÊý¤Ç¡¢ -¥·¥§¥ë¤¬¼¡¤Î¥³¥Þ¥ó¥É¤ò¼õ¤±ÉÕ¤±¤é¤ì¤ë¾õÂ֤ˤʤäƤ¤¤ë¤³¤È¤ò¼¨¤·¤Æ¤¤¤ë¡£ -¥×¥í¥ó¥×¥È¤Ï¡¢½ÀÆð¤Ë¥«¥¹¥¿¥Þ¥¤¥º -¤¹¤ë¤³¤È¤¬¤Ç¤­¡¢¥æ¡¼¥¶Ì¾¡¢¥Þ¥·¥ó̾¡¢¥«¥ì¥ó¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¡¢»þ¹ï¤Ê¤É¤ò -¥×¥í¥ó¥×¥È¤Ë´Þ¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -PS1="What next, master? " ¤ÈÀßÄꤹ¤ë¤È¡¢ -¥×¥í¥ó¥×¥È¤Ï¤½¤Î¤è¤¦¤ËÊѹ¹¤µ¤ì¤ë¤À¤í¤¦¡£ +はコマンド・プロンプトである。コマンド・プロンプトはシェル独特のやり方で、 +シェルが次のコマンドを受け付けられる状態になっていることを示している。 +プロンプトは、柔軟にカスタマイズ +することができ、ユーザ名、マシン名、カレント・ディレクトリ、時刻などを +プロンプトに含めることができる。 +PS1="What next, master? " と設定すると、 +プロンプトはそのように変更されるだろう。 .LP -Îã¤Ë¤¢¤ë¤è¤¦¤Ë¡¢ +例にあるように、 .I date -¤È¤¤¤¦ÆüÉդȻþ¹ï¤òɽ¼¨¤¹¤ë¥³¥Þ¥ó¥É¤ä¡¢ +という日付と時刻を表示するコマンドや、 .I cal -¤È¤¤¤¦¥«¥ì¥ó¥À¤òɽ¼¨¤¹¤ë¥³¥Þ¥ó¥É¤â¤¢¤ë¡£ +というカレンダを表示するコマンドもある。 .LP .I ls -¥³¥Þ¥ó¥É¤Ï¥«¥ì¥ó¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤ÎÆâÍƤò¥ê¥¹¥Èɽ¼¨¤¹¤ë¡¢¤Ä¤Þ¤ê -¥Ç¥£¥ì¥¯¥È¥êÆâ¤Ë¤É¤ó¤Ê¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¤«¤ò¶µ¤¨¤Æ¤¯¤ì¤ë¡£ +コマンドはカレント・ディレクトリの内容をリスト表示する、つまり +ディレクトリ内にどんなファイルがあるかを教えてくれる。 .I \-l -¥ª¥×¥·¥ç¥ó¤ò¤Ä¤±¤Æ¼Â¹Ô¤¹¤ë¤È¡¢¾ÜºÙɽ¼¨¤¬¹Ô¤ï¤ì¡¢ -¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¡¢¥µ¥¤¥º¡¢ÆüÉդʤɤ¬É½¼¨¤µ¤ì¤ë¡£ -¾å¤ÎÎã¤Ç¤Ï¡¢"tel" ¥Õ¥¡¥¤¥ë¤Ï¡¢¥µ¥¤¥º¤¬ 37 ¥Ð¥¤¥È¤Ç¡¢½êÍ­¼Ô¤Ï aeb ¤Ç¡¢ -½êÍ­¼Ô¤ÏÆɤ߽ñ¤­¤¬¤Ç¤­¡¢Â¾¤Î¿Í¤ÏÆɤ߽Ф·¤À¤±¤¬¤Ç¤­¤ë¤³¤È¤¬Ê¬¤«¤ë¡£ -¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤È¸¢¸Â (permission) ¤Ï¡¢¤½¤ì¤¾¤ì +オプションをつけて実行すると、詳細表示が行われ、 +ファイルの所有者、サイズ、日付などが表示される。 +上の例では、"tel" ファイルは、サイズが 37 バイトで、所有者は aeb で、 +所有者は読み書きができ、他の人は読み出しだけができることが分かる。 +ファイルの所有者と権限 (permission) は、それぞれ .I chown -¥³¥Þ¥ó¥É¤È +コマンドと .I chmod -¥³¥Þ¥ó¥É¤ÇÊѹ¹¤Ç¤­¤ë¡£ +コマンドで変更できる。 .LP .I cat -¥³¥Þ¥ó¥É¤Ï¥Õ¥¡¥¤¥ë¤ÎÆâÍƤòɽ¼¨¤¹¤ë¡£ -(¥³¥Þ¥ó¥É̾¤Ï "concatenate and print" (Ï¢·ë¤·¤Æ°õ»ú¤¹¤ë) ¤ËͳÍ褷¤Æ¤¤¤ë¡£ -°ú¿ô¤È¤·¤ÆÍ¿¤¨¤é¤ì¤¿Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¤ÎÆâÍƤ¬Ï¢·ë¤µ¤ì¡¢¡Öɸ½à½ÐÎÏ¡× -¤ËÁ÷¤é¤ì¤ë¡£¾å¤ÎÎã¤Ç¤Ï¡¢É¸½à½ÐÎϤÏüËö¤Î¥¹¥¯¥ê¡¼¥ó¤Ç¤¢¤ë¡£) +コマンドはファイルの内容を表示する。 +(コマンド名は "concatenate and print" (連結して印字する) に由来している。 +引数として与えられた全てのファイルの内容が連結され、「標準出力」 +に送られる。上の例では、標準出力は端末のスクリーンである。) .LP .I cp -¥³¥Þ¥ó¥É¤Ï¥Õ¥¡¥¤¥ë¤Î¥³¥Ô¡¼¤ò¹Ô¤¦ (¤½¤Î̾Á°¤Ï "copy" ¤ËͳÍ褹¤ë)¡£ -°ìÊý¡¢ +コマンドはファイルのコピーを行う (その名前は "copy" に由来する)。 +一方、 .I mv -¥³¥Þ¥ó¥É¤Ïñ½ã¤Ë¥Õ¥¡¥¤¥ë̾¤ÎÊѹ¹¤ò¹Ô¤¦ -(¤½¤Î̾Á°¤Ï "move" ¤ËͳÍ褹¤ë)¡£ +コマンドは単純にファイル名の変更を行う +(その名前は "move" に由来する)。 .LP .I diff -¥³¥Þ¥ó¥É¤Ï 2 ¤Ä¤Î¥Õ¥¡¥¤¥ë¤Î°ã¤¤¤òɽ¼¨¤¹¤ë¡£ -¾å¤ÎÎã¤Ç¤Ï¡¢Æó¤Ä¤Î¥Õ¥¡¥¤¥ë¤Ë°ã¤¤¤¬¤Ê¤¤¤Î¤Ç¡¢²¿¤â½ÐÎϤµ¤ì¤Æ¤¤¤Ê¤¤¡£ +コマンドは 2 つのファイルの違いを表示する。 +上の例では、二つのファイルに違いがないので、何も出力されていない。 .LP .I rm -¥³¥Þ¥ó¥É¤Ï¥Õ¥¡¥¤¥ë¤òºï½ü¤¹¤ë¡£¥Õ¥¡¥¤¥ë¤Ï¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤Î¤Ç -Ãí°Õ¤·¤Æ»ÈÍѤ¹¤ë¤³¤È! ¥´¥ßÈ¢¤ËÁêÅö¤¹¤ë¤â¤Î¤Ï¤Ê¤¯¡¢ -ºï½ü¤Ï¤½¤Î¥Õ¥¡¥¤¥ë¤¬´°Á´¤Ë¼º¤ï¤ì¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +コマンドはファイルを削除する。ファイルはなくなってしまうので +注意して使用すること! ゴミ箱に相当するものはなく、 +削除はそのファイルが完全に失われることを意味する。 .LP .I grep -¥³¥Þ¥ó¥É¤Ï¡¢»ØÄꤵ¤ì¤¿Ê¸»úÎó¤ò°ì¤Ä°Ê¾å¤Î¥Õ¥¡¥¤¥ë¤«¤éõ¤¹ -(¥³¥Þ¥ó¥É̾¤Ï "g/re/p" ¤ËͳÍ褷¤Æ¤¤¤ë)¡£ -¾å¤ÎÎã¤Ç¤Ï¡¢Maja ¤ÎÅÅÏÃÈֹ椬¸«¤Ä¤«¤Ã¤Æ¤¤¤ë¡£ -.SS ¥Ñ¥¹Ì¾¤È¥«¥ì¥ó¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê -¥Õ¥¡¥¤¥ë¤Ï¥Õ¥¡¥¤¥ë³¬ÁؤȤ¤¤¦Â礭¤ÊÌÚ¤ÎÃæ¤Ë¤¢¤ë¡£¤½¤ì¤¾¤ì¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï -.I "¥Ñ¥¹Ì¾ (pathname)" -¤¬¤¢¤ê¡¢¥Ñ¥¹Ì¾¤Ï (/ ¤È¸Æ¤Ð¤ì¤ë) Ìڤꬤ«¤é¤Î·ÐÏ©¤ò¼¨¤¹¤â¤Î¤Ç¤¢¤ë¡£ -¾å¤ÎÎã¤Ç¤Ï¡¢´°Á´¤Ê¥Ñ¥¹Ì¾¤Ï /home/aeb/tel ¤Î¤è¤¦¤Ë¤Ê¤ë¡£ -¤¤¤Ä¤â´°Á´¤Ê¥Ñ¥¹Ì¾¤ò»È¤¦¤Î¤ÏÉÔÊؤʤΤǡ¢¥«¥ì¥ó¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë -¥Õ¥¡¥¤¥ë̾¤Ï¡¢¥Õ¥¡¥¤¥ë̾¤ÎºÇ¸å¤ÎÉôʬ¤À¤±¤Ë¾Êά¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¥«¥ì¥ó¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤¬ "/home/aeb" ¤Î»þ¤Ï¡¢ "/home/aeb/tel" -¤ò "tel" ¤Ë¾Êά¤·¤Æ½ñ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£ +コマンドは、指定された文字列を一つ以上のファイルから探す +(コマンド名は "g/re/p" に由来している)。 +上の例では、Maja の電話番号が見つかっている。 +.SS パス名とカレント・ディレクトリ +ファイルはファイル階層という大きな木の中にある。それぞれのファイルには +.I "パス名 (pathname)" +があり、パス名は (/ と呼ばれる) 木の根からの経路を示すものである。 +上の例では、完全なパス名は /home/aeb/tel のようになる。 +いつも完全なパス名を使うのは不便なので、カレント・ディレクトリにある +ファイル名は、ファイル名の最後の部分だけに省略することができる。 +したがって、カレント・ディレクトリが "/home/aeb" の時は、 "/home/aeb/tel" +を "tel" に省略して書くことができる。 .LP .I pwd -¥³¥Þ¥ó¥É¤Ï¥«¥ì¥ó¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤òɽ¼¨¤¹¤ë¡£ +コマンドはカレント・ディレクトリを表示する。 .LP .I cd -¥³¥Þ¥ó¥É¤Ï¥«¥ì¥ó¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤òÊѹ¹¤¹¤ë¡£ -"cd /"¡¢"pwd"¡¢"cd"¡¢"pwd" ¤È½ç¤Ë¼Â¹Ô¤·¤Æ¤ß¤ë¤È¤è¤¤¡£ -.SS ¥Ç¥£¥ì¥¯¥È¥ê +コマンドはカレント・ディレクトリを変更する。 +"cd /"、"pwd"、"cd"、"pwd" と順に実行してみるとよい。 +.SS ディレクトリ .I mkdir -¥³¥Þ¥ó¥É¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤ò¿·µ¬¤ËºîÀ®¤¹¤ë¡£ +コマンドはディレクトリを新規に作成する。 .LP .I rmdir -¥³¥Þ¥ó¥É¤Ï¶õ¤Ç¤¢¤ì¤Ð¥Ç¥£¥ì¥¯¥È¥ê¤òºï½ü¤·¡¢ -¶õ¤Ç¤Ê¤±¤ì¤Ð¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¡£ +コマンドは空であればディレクトリを削除し、 +空でなければエラーメッセージを表示する。 .LP .I find -¥³¥Þ¥ó¥É¤Ï¡¢»ØÄꤵ¤ì¤¿Ì¾Á°¤ä¤½¤Î¾¤Î°À­¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤òõ¤¹ -(½ñ¼°¤Ï¤«¤Ê¤êÊѤï¤Ã¤Æ¤¤¤ë)¡£Î㤨¤Ð¡¢"find . \-name tel" ¤ò¼Â¹Ô¤¹¤ë¤È¡¢ -"tel" ¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤Î¸¡º÷¤ò¥«¥ì¥ó¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤«¤é³«»Ï¤¹¤ë¡£ -(¥«¥ì¥ó¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤Ï "." ¤Çɽ¤¹)¡£"find / \-name tel" ¤È¤·¤Æ¤â -Ʊ¤¸¤³¤È¤ò¹Ô¤¦¤¬¡¢¸¡º÷¤ÏÌڤκ¬ (/) ¤«¤é³«»Ï¤µ¤ì¤ë¡£ -¿ô GB ¤Î¥Ç¥£¥¹¥¯¤ËÂФ·¤Æ¸¡º÷¤ò¤«¤±¤ë¤È»þ´Ö¤¬¤«¤«¤ë¤Î¤Ç¡¢ -¤½¤Î¤è¤¦¤Ê¤È¤­¤Ï +コマンドは、指定された名前やその他の属性を持つファイルを探す +(書式はかなり変わっている)。例えば、"find . \-name tel" を実行すると、 +"tel" という名前のファイルの検索をカレント・ディレクトリから開始する。 +(カレント・ディレクトリは "." で表す)。"find / \-name tel" としても +同じことを行うが、検索は木の根 (/) から開始される。 +数 GB のディスクに対して検索をかけると時間がかかるので、 +そのようなときは .BR locate (1) -¤ò»È¤Ã¤¿Êý¤¬¤¤¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -.SS ¥Ç¥£¥¹¥¯¤È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à +を使った方がいいかもしれない。 +.SS ディスクとファイルシステム .I mount -¥³¥Þ¥ó¥É¤Ï¡¢(¥Õ¥í¥Ã¥Ô¡¼¤ä CDROM ¤Ê¤É¤Î) ¥Ç¥£¥¹¥¯¾å¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò -Â礭¤Ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à³¬ÁؤËÀܳ¤¹¤ë¡£µÕ¤Ë +コマンドは、(フロッピーや CDROM などの) ディスク上のファイルシステムを +大きなファイルシステム階層に接続する。逆に .I umount -¥³¥Þ¥ó¥É¤ÏÀÚ¤êÎ¥¤·¤ò¹Ô¤¦¡£ +コマンドは切り離しを行う。 .I df -¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤È¡¢¥Ç¥£¥¹¥¯¤Î̤»ÈÍÑÎ̤¬¤É¤ÎÄøÅÙ¤«¤òɽ¼¨¤¹¤ë¡£ -.SS ¥×¥í¥»¥¹ -UNIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢Â¿¤¯¤Î¥æ¡¼¥¶¥×¥í¥»¥¹¤È¥·¥¹¥Æ¥à¥×¥í¥»¥¹¤¬Æ±»þ¤Ë¼Â¹Ô¤µ¤ì¤ë¡£ -ÂÐÏÃŪ¤Ë¼Â¹Ô¤Ç¤­¤ë¥×¥í¥»¥¹¤Ï +コマンドを実行すると、ディスクの未使用量がどの程度かを表示する。 +.SS プロセス +UNIX システムでは、多くのユーザプロセスとシステムプロセスが同時に実行される。 +対話的に実行できるプロセスは .I foreground -¤Ç¼Â¹Ô¤µ¤ì¤Æ¤ª¤ê¡¢¤½¤¦¤Ç¤Ê¤¤¤â¤Î¤Ï +で実行されており、そうでないものは .I background -¤Ç¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¡£ -¥³¥Þ¥ó¥É +で実行されている。 +コマンド .I ps -¤Ë¤è¤ê¡¢¤É¤Î¥×¥í¥»¥¹¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¤«¤ä¥×¥í¥»¥¹¤¬»ý¤Ã¤Æ¤¤¤ëÈÖ¹æ -(¥×¥í¥»¥¹ÈÖ¹æ) ¤òɽ¼¨¤Ç¤­¤ë¡£ -¥³¥Þ¥ó¥É +により、どのプロセスが実行されているかやプロセスが持っている番号 +(プロセス番号) を表示できる。 +コマンド .I kill -¤ò»È¤¦¤³¤È¤Ç¡¢¥×¥í¥»¥¹¤ò¼è¤ê½ü¤¯¤³¤È¤¬¤Ç¤­¤ë¡£ -¥ª¥×¥·¥ç¥ó¤Ê¤·¤Ç¼Â¹Ô¤µ¤ì¤ë¤È¡¢¡Ö¤¤¤Ê¤¯¤Ê¤Ã¤Æ²¼¤µ¤¤¡×¤È¤¤¤¦¤ä¤µ¤·¤¤Í×µá -¤ò¹Ô¤¦¡£"kill \-9" ¤Ë³¤±¤Æ¥×¥í¥»¥¹ÈÖ¹æ¤ò»ØÄꤹ¤ë¤È¡¢»ØÄꤷ¤¿¥×¥í¥»¥¹¤ò -ľ¤Á¤Ëºï½ü¤¹¤ë¡£ -foreground ¥×¥í¥»¥¹¤Ï¿¤¯¤Î¾ì¹ç Control-C ¤ò¥¿¥¤¥×¤¹¤ë¤³¤È¤Ç -»¦¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ -.SS ¾ðÊó¤Îõ¤·Êý -Èó¾ï¤Ë¤¿¤¯¤µ¤ó¤Î¥³¥Þ¥ó¥É¤¬¤¢¤ê¡¢ -¤½¤ì¤¾¤ì¤Î¥³¥Þ¥ó¥É¤Ë¤Ï¤¿¤¯¤µ¤ó¤Î¥ª¥×¥·¥ç¥ó¤¬¤¢¤ë¡£ -ÅÁÅýŪ¤Ë¤Ï¡¢¥³¥Þ¥ó¥É¤ÎÀâÌÀ¤Ï (¤³¤Î¥É¥­¥å¥á¥ó¥È¤â¤½¤¦¤À¤¬) -.I "man ¥Ú¡¼¥¸" -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£Î㤨¤Ð "man kill" ¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤È¡¢"kill" ¥³¥Þ¥ó¥É¤Î -»È¤¤Êý¤Ë´Ø¤¹¤ëÀâÌÀ¤¬É½¼¨¤µ¤ì¤ë¡£(ƱÍÍ¤Ë "man man" ¤Ï "man" ¥³¥Þ¥ó¥É¤Ë -¤Ä¤¤¤Æ¤ÎÀâÌÀ¤òɽ¼¨¤¹¤ë¡£) +を使うことで、プロセスを取り除くことができる。 +オプションなしで実行されると、「いなくなって下さい」というやさしい要求 +を行う。"kill \-9" に続けてプロセス番号を指定すると、指定したプロセスを +直ちに削除する。 +foreground プロセスは多くの場合 Control-C をタイプすることで +殺すことができる。 +.SS 情報の探し方 +非常にたくさんのコマンドがあり、 +それぞれのコマンドにはたくさんのオプションがある。 +伝統的には、コマンドの説明は (このドキュメントもそうだが) +.I "man ページ" +に書かれている。例えば "man kill" コマンドを実行すると、"kill" コマンドの +使い方に関する説明が表示される。(同様に "man man" は "man" コマンドに +ついての説明を表示する。) .I man -¥×¥í¥°¥é¥à¤Ï¥Æ¥­¥¹¥È¤ò +プログラムはテキストを .I pager -¤ËÅϤ·¤Æɽ¼¨¤ò¹Ô¤¦¡£ +に渡して表示を行う。 .I pager -¤È¤·¤Æ +として .I less -¤¬»È¤ï¤ì¤ë¤³¤È¤¬Â¿¤¤¡£ -¼¡¤Î¥Ú¡¼¥¸¤Ë¿Ê¤à¤Ë¤Ï¥¹¥Ú¡¼¥¹¡¦¥­¡¼¤ò¡¢½ªÎ»¤¹¤ë¤Ë¤Ï q ¤ò²¡¤¹¡£ +が使われることが多い。 +次のページに進むにはスペース・キーを、終了するには q を押す。 .LP -¥É¥­¥å¥á¥ó¥È¤Ç¤Ï¡¢Â¾¤Î man ¥Ú¡¼¥¸¤Ø¤Î»²¾È¤Ï +ドキュメントでは、他の man ページへの参照は .BR man (1) -¤Î¤è¤¦¤Ë̾Á°¤È¥»¥¯¥·¥ç¥óÈÖ¹æ¤Ç¼¨¤¹¤Î¤¬°ìÈÌŪ¤Ç¤¢¤ë¡£ -man ¥Ú¡¼¥¸¤Ï´Ê·é¤Ë½ñ¤«¤ì¤Æ¤ª¤ê¡¢¾ÜºÙ¤ò˺¤ì¤¿¤È¤­¤ËÁÇÁ᤯¾ðÊó¤ò¸«¤Ä¤±¤ë -¤³¤È¤¬¤Ç¤­¤ë¡£Îã¤äÀâÌÀ¤È¤È¤â¤ËÆþÌç¸þ¤±¤Îµ­ºÜ¤â¤¢¤ë¤Î¤Ç¡¢½é¤á¤Æ¤Î¿Í¤Ë¤È¤Ã¤Æ¤â -Ìò¤ËΩ¤Ä¤â¤Î¤Ç¤¢¤ë¡£ +のように名前とセクション番号で示すのが一般的である。 +man ページは簡潔に書かれており、詳細を忘れたときに素早く情報を見つける +ことができる。例や説明とともに入門向けの記載もあるので、初めての人にとっても +役に立つものである。 .LP -¿¤¯¤Î GNU/FSF ¥½¥Õ¥È¥¦¥§¥¢¤Ë¤Ï info ¥Õ¥¡¥¤¥ë¤¬ÉÕ°¤·¤Æ¤¤¤ë¡£ -"info info" ¤È¥¿¥¤¥×¤¹¤ë¤È¡¢"info" ¥×¥í¥°¥é¥à¤Î»È¤¤Êý¤Î¾Ò²ð¤¬É½¼¨¤µ¤ì¤ë¡£ +多くの GNU/FSF ソフトウェアには info ファイルが付属している。 +"info info" とタイプすると、"info" プログラムの使い方の紹介が表示される。 .LP -Æý¸µ­»ö¤Ë¤Ä¤¤¤Æ¤Ï HOWTO ¤Ç°·¤ï¤ì¤ë¤³¤È¤¬Â¿¤¤¡£ +特集記事については HOWTO で扱われることが多い。 .I /usr/share/doc/howto/en -¤ò¸«¤ë¤È¤¤¤¤¤À¤í¤¦¡£ -HTML ¥Õ¥¡¥¤¥ë¤¬¤¢¤Ã¤¿¾ì¹ç¤Ï¥Ö¥é¥¦¥¶¤ò»È¤Ã¤Æɽ¼¨¤¹¤ì¤Ð¤è¤¤¡£ +を見るといいだろう。 +HTML ファイルがあった場合はブラウザを使って表示すればよい。 .\" .\" Actual examples? Separate section for each of cat, cp, ...? .\" gzip, bzip2, tar, rpm -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR standards (7) diff --git a/release/man1/ldd.1 b/release/man1/ldd.1 index 9638b5e2..8380bd66 100644 --- a/release/man1/ldd.1 +++ b/release/man1/ldd.1 @@ -15,69 +15,69 @@ .\" by Yuichi SATO .\" .TH LDD 1 2000-10-30 "" "Linux Programmer's Manual" -.SH ̾Á° -ldd \- ¶¦Í­¥é¥¤¥Ö¥é¥ê¤Ø¤Î°Í¸´Ø·¸¤òɽ¼¨¤¹¤ë -.SH ½ñ¼° +.SH 名前 +ldd \- 共有ライブラリへの依存関係を表示する +.SH 書式 .BR ldd " [OPTION]... FILE..." -.SH ÀâÌÀ +.SH 説明 .B ldd -¤Ï¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç»ØÄꤷ¤¿¥×¥í¥°¥é¥à¤ä¶¦Í­¥é¥¤¥Ö¥é¥ê¤Ë¤Ä¤¤¤Æ¡¢ -¤½¤ì¤¾¤ì¤ÇɬÍפȤµ¤ì¤ë¶¦Í­¥é¥¤¥Ö¥é¥ê¤òɽ¼¨¤¹¤ë¡£ -.SH ¥ª¥×¥·¥ç¥ó +はコマンドラインで指定したプログラムや共有ライブラリについて、 +それぞれで必要とされる共有ライブラリを表示する。 +.SH オプション .TP .B \-\-version .B ldd -¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òɽ¼¨¤¹¤ë¡£ +のバージョン番号を表示する。 .TP .B \-v\ \-\-verbose -¥·¥ó¥Ü¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤Ê¤É¤ò´Þ¤á¤¿Á´¤Æ¤Î¾ðÊó¤òɽ¼¨¤¹¤ë¡£ +シンボルのバージョン情報などを含めた全ての情報を表示する。 .TP .B \-u\ \-\-unused -»ÈÍѤµ¤ì¤Æ¤¤¤Ê¤¤Ä¾Àܤΰ͸´Ø·¸¤òɽ¼¨¤¹¤ë -(glibc 2.3.4 °Ê¹ß)¡£ +使用されていない直接の依存関係を表示する +(glibc 2.3.4 以降)。 .TP .B \-d\ \-\-data\-relocs -¥ê¥í¥±¡¼¥·¥ç¥ó¤ò¼Â¹Ô¤·¡¢Â­¤ê¤Ê¤¤¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ä¤¤¤Æ¥ì¥Ý¡¼¥È¤¹¤ë (ELF ¤Î¤ß)¡£ +リロケーションを実行し、足りないオブジェクトについてレポートする (ELF のみ)。 .TP .B \-r\ \-\-function\-relocs -­¤ê¤Ê¤¤¥ª¥Ö¥¸¥§¥¯¥È¤ä´Ø¿ô¤Ë¤Ä¤¤¤Æ¥ì¥Ý¡¼¥È¤¹¤ë (ELF ¤Î¤ß)¡£ +足りないオブジェクトや関数についてレポートする (ELF のみ)。 .TP .B \-\-help -»ÈÍÑË¡¤òɽ¼¨¤¹¤ë¡£ -.SH Ãí°Õ -ɸ½àŪ¤Ê¥Ð¡¼¥¸¥ç¥ó¤Î +使用法を表示する。 +.SH 注意 +標準的なバージョンの .B ldd -¤Ï glibc2 ¤ËÉÕ°¤·¤Æ¤¤¤ë¡£ -libc5 ¤Ë¤Ï¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Î¤â¤Î¤¬ÉÕ°¤·¤Æ¤ª¤ê¡¢ -¤³¤ì¤¬Æþ¤Ã¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤â¤Þ¤À¸ºß¤¹¤ë¡£ -libc5 ¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¥í¥ó¥°¥ª¥×¥·¥ç¥ó¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -°ìÊý¡¢glibc2 ¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï +は glibc2 に付属している。 +libc5 には古いバージョンのものが付属しており、 +これが入っているシステムもまだ存在する。 +libc5 バージョンではロングオプションがサポートされていない。 +一方、glibc2 バージョンでは .B \-V -¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤ª¤é¤º¡¢¤³¤ì¤ÈƱ¤¸°ÕÌ£¤Î +をサポートしておらず、これと同じ意味の .B \-\-version -¤·¤«¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +しかサポートしていない。 .LP -libc5 ¥Ð¡¼¥¸¥ç¥ó¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ -¥³¥Þ¥ó¥É¥é¥¤¥ó¤ÇÍ¿¤¨¤é¤ì¤¿¥é¥¤¥Ö¥é¥ê̾¤Ë -\(aq/\(aq ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¥é¥¤¥Ö¥é¥ê̾¤ò¤½¤Î¤Þ¤ÞÍѤ¤¤ë¡£ -\(aq/\(aq ¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢É¸½àŪ¤Ê¥Ñ¥¹¤«¤é¥é¥¤¥Ö¥é¥ê¤ò¸¡º÷¤¹¤ë¡£ -¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¶¦Í­¥é¥¤¥Ö¥é¥ê¤ËÂФ·¤Æ¼Â¹Ô¤¹¤ë¤Ë¤Ï¡¢ -̾Á°¤Ë¥×¥ì¥Õ¥£¥Ã¥¯¥¹ "./" ¤òÉÕ¤±¤ë¤³¤È¡£ -.SH ¥Ð¥° +libc5 バージョンのプログラムでは、 +コマンドラインで与えられたライブラリ名に +\(aq/\(aq が含まれている場合は、ライブラリ名をそのまま用いる。 +\(aq/\(aq が含まれていない場合は、標準的なパスからライブラリを検索する。 +カレントディレクトリにある共有ライブラリに対して実行するには、 +名前にプレフィックス "./" を付けること。 +.SH バグ .B ldd -¤Ï a.out ¶¦Í­¥é¥¤¥Ö¥é¥ê¤Ç¤ÏÆ°ºî¤·¤Ê¤¤¡£ +は a.out 共有ライブラリでは動作しない。 .PP .B ldd -¤ÏÈó¾ï¤Ë¸Å¤¤ a.out ¥×¥í¥°¥é¥à +は非常に古い a.out プログラム .RB ( ldd -¤Î¥µ¥Ý¡¼¥È¤¬¥³¥ó¥Ñ¥¤¥é¤ËÄɲ䵤ì¤ë°ÊÁ°¤Ë¥Ó¥ë¥É¤µ¤ì¤¿¤è¤¦¤Ê¥×¥í¥°¥é¥à) -¤Ç¤ÏÆ°ºî¤·¤Ê¤¤¡£ -¤³¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤ËÂФ·¤Æ +のサポートがコンパイラに追加される以前にビルドされたようなプログラム) +では動作しない。 +このようなプログラムに対して .B ldd -¤òÍѤ¤¤ë¤È¡¢¥×¥í¥°¥é¥à¤Ï \fIargc\fP = 0 ¤Ç¼Â¹Ô¤µ¤ì¤ë¡£·ë²Ì¤ÏͽÁÛÉÔ²Äǽ¤Ç¤¢¤ë¡£ -.\" .SH Ãø¼Ô +を用いると、プログラムは \fIargc\fP = 0 で実行される。結果は予想不可能である。 +.\" .SH 著者 .\" David Engel. .\" Roland McGrath and Ulrich Drepper. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ld.so (8), .BR ldconfig (8) diff --git a/release/man1/time.1 b/release/man1/time.1 index 7e56deac..8798d158 100644 --- a/release/man1/time.1 +++ b/release/man1/time.1 @@ -9,73 +9,73 @@ .\" Translated 2008-11-20, Akihiro MOTOKI , LDP v3.13 .\" .TH TIME 1 2008-11-14 "" "Linux User's Manual" -.SH ̾Á° -time \- ¥³¥Þ¥ó¥É¤Î»þ´Ö·×¬¤ä¥ê¥½¡¼¥¹»ÈÍÑÎ̤òɽ¼¨¤¹¤ë -.SH ½ñ¼° +.SH 名前 +time \- コマンドの時間計測やリソース使用量を表示する +.SH 書式 .BI "time [" options "] " command " [" arguments... "] " -.SH ÀâÌÀ +.SH 説明 .B time -¥³¥Þ¥ó¥É¤Ï¡¢»ØÄꤵ¤ì¤¿¥×¥í¥°¥é¥à +コマンドは、指定されたプログラム .I command -¤òÅϤµ¤ì¤¿°ú¤­¿ô¤Ç¼Â¹Ô¤¹¤ë¡£ +を渡された引き数で実行する。 .I command -¤¬½ªÎ»¤¹¤ë¤È¡¢ +が終了すると、 .B time -¤Ï¤³¤Î¥×¥í¥°¥é¥à¤Î¼Â¹Ô»þ´Ö¤ÎÅý·×¾ðÊó¤Ë¤Ä¤¤¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤ò -ɸ½à¥¨¥é¡¼½ÐÎϤ˽ÐÎϤ¹¤ë¡£ -ɽ¼¨¤µ¤ì¤ëÅý·×¾ðÊó¤Ï°Ê²¼¤Î»°¤Ä¤«¤é¹½À®¤µ¤ì¤ë: -(i) µ¯Æ°¤«¤é½ªÎ»¤Þ¤Ç¤Ë·Ð²á¤·¤¿¼Â»þ´Ö (real time)¡¢ -(ii) ¥æ¡¼¥¶ CPU »þ´Ö +はこのプログラムの実行時間の統計情報についてのメッセージを +標準エラー出力に出力する。 +表示される統計情報は以下の三つから構成される: +(i) 起動から終了までに経過した実時間 (real time)、 +(ii) ユーザ CPU 時間 .RB ( times (2) -¤¬ÊÖ¤¹ +が返す .I "struct tms" -¤Î +の .I tms_utime -¤È +と .I tms_cutime -¤ÎÃͤιç·×)¡¢ -(iii) ¥·¥¹¥Æ¥à CPU »þ´Ö +の値の合計)、 +(iii) システム CPU 時間 .RB ( times (2) -¤¬ÊÖ¤¹ +が返す .I "struct tms" -¤Î +の .I tms_stime -¤È +と .I tms_cstime -¤ÎÃͤιç·×)¡£ +の値の合計)。 .RB ( bash (1) -¤Ê¤É¤Î) ¤¤¤¯¤Ä¤«¤Î¥·¥§¥ë¤Ë¤Ï¡¢¤³¤³¤ÇÀâÌÀ¤¹¤ë¥³¥Þ¥ó¥É¤è¤ê¤â -µ¡Ç½¤¬¾¯¤Ê¤¤¡¢ÁȤ߹þ¤ß¤Î +などの) いくつかのシェルには、ここで説明するコマンドよりも +機能が少ない、組み込みの .B time -¥³¥Þ¥ó¥É¤¬Â¸ºß¤¹¤ë¡£ -ÁȤ߹þ¤ß¤Ç¤Ï¤Ê¤¤¼ÂºÝ¤Î¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢ +コマンドが存在する。 +組み込みではない実際のコマンドを使用するためには、 .RI ( /usr/bin/time -¤Î¤è¤¦¤Ê) ¥³¥Þ¥ó¥É¤Î¥Ñ¥¹Ì¾¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -.SH ¥ª¥×¥·¥ç¥ó +のような) コマンドのパス名を指定する必要があるかもしれない。 +.SH オプション .TP .B \-p -POSIX ¥í¥±¡¼¥ë¤Î¾ì¹ç¡¢ÅÁÅýŪ¤Ê¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤¢¤ë +POSIX ロケールの場合、伝統的なフォーマットである .in +5 "real %f\enuser %f\ensys %f\en" .in -5 -¤¬»ÈÍѤµ¤ì¤ë (³Æ¿ô»ú¤ÏÉÃñ°Ì)¡£ -%f ¤Î½ÐÎϤǤξ®¿ôÅÀ°Ê²¼¤Î·å¿ô¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -¥¯¥í¥Ã¥¯¡¦¥Æ¥£¥Ã¥¯ (clock tick) ¤ÎÀºÅÙ¤òɽ¤¹¤Î¤Ë½½Ê¬¤Ê·å¿ô¤È¤Ê¤ê¡¢ -¾¯¤Ê¤¯¤È¤â°ì·å¤Ï¸ºß¤¹¤ë¡£ -.SH ½ªÎ»¥¹¥Æ¡¼¥¿¥¹ +が使用される (各数字は秒単位)。 +%f の出力での小数点以下の桁数は規定されていないが、 +クロック・ティック (clock tick) の精度を表すのに十分な桁数となり、 +少なくとも一桁は存在する。 +.SH 終了ステータス .I command -¤¬µ¯Æ°¤µ¤ì¤¿¾ì¹ç¤Ï¡¢ +が起動された場合は、 .I command -¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤¬½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤È¤Ê¤ë¡£ +の終了ステータスが終了ステータスとなる。 .I command -¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ï 127 ¤Ç¡¢ +が見つからなかった場合は終了ステータスは 127 で、 .I command -¤¬¸«¤Ä¤«¤Ã¤¿¤¬µ¯Æ°¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï 126 ¤È¤Ê¤ë¡£ -¤³¤ì°Ê³°¤Ç²¿¤«¥¨¥é¡¼¤¬¤¢¤Ã¤¿¾ì¹ç¤Ï¡¢½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ï -0 °Ê³°¤ÎÁ°µ­°Ê³°¤ÎÃÍ (1-125) ¤Î²¿¤«¤Ë¤Ê¤ë¡£ -.SH ´Ä¶­ÊÑ¿ô -´Ä¶­ÊÑ¿ô +が見つかったが起動できなかった場合は 126 となる。 +これ以外で何かエラーがあった場合は、終了ステータスは +0 以外の前記以外の値 (1-125) の何かになる。 +.SH 環境変数 +環境変数 .BR LANG , .BR LC_ALL , .BR LC_CTYPE , @@ -83,24 +83,24 @@ POSIX .BR LC_NUMERIC , .BR NLSPATH , .B PATH -¤¬»ÈÍѤµ¤ì¤ë¡£ +が使用される。 .B PATH -¤Ï +は .I command -¤òõ¤¹¤Î¤Ë»È¤ï¤ì¤ë¡£¤½¤ì°Ê³°¤Ï½ÐÎÏʸ»ú¤ä½ñ¼°¤Ë»ÈÍѤµ¤ì¤ë¡£ -.SH GNU ¥Ð¡¼¥¸¥ç¥ó -°Ê²¼¤Ï GNU 1.7 ¥Ð¡¼¥¸¥ç¥ó¤Î +を探すのに使われる。それ以外は出力文字や書式に使用される。 +.SH GNU バージョン +以下は GNU 1.7 バージョンの .BR time -¤ÎÀâÌÀ¤Ç¤¢¤ë¡£¥³¥Þ¥ó¥É̾¤È¤Ï΢ʢ¤Ë¡¢GNU ¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï -Í­±×¤Ê¾ðÊ󤬤¿¤¯¤µ¤ó½ÐÎϤµ¤ì¤ë¡£»ÈÍÑ»þ´Ö¤À¤±¤Ç¤Ê¤¯¡¢ -(¼èÆÀ¤Ç¤­¤ë¾ì¹ç¤Ë¤Ï) ¥á¥â¥ê¤ä I/O¡¢IPC ¸Æ¤Ó½Ð¤·¤Ê¤É¤Î¾¤Î¥ê¥½¡¼¥¹ -¤Ë´Ø¤¹¤ë¾ðÊó¤â½ÐÎϤµ¤ì¤ë¡£ -½ÐÎϤϥե©¡¼¥Þ¥Ã¥Èʸ»úÎó¤ò»È¤Ã¤ÆÀ°·Á¤µ¤ì¡¢ -¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤Ï \-f ¥ª¥×¥·¥ç¥ó¤«´Ä¶­ÊÑ¿ô +の説明である。コマンド名とは裏腹に、GNU バージョンでは +有益な情報がたくさん出力される。使用時間だけでなく、 +(取得できる場合には) メモリや I/O、IPC 呼び出しなどの他のリソース +に関する情報も出力される。 +出力はフォーマット文字列を使って整形され、 +フォーマット文字列は \-f オプションか環境変数 .B TIME -¤Ç»ØÄê¤Ç¤­¤ë¡£ +で指定できる。 .LP -¥Ç¥Õ¥©¥ë¥È¤Î¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤Ï°Ê²¼¤ÎÄ̤ꡣ +デフォルトのフォーマット文字列は以下の通り。 .br .in +3 %Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k @@ -109,8 +109,8 @@ POSIX .br .in -3 .LP -\-p ¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢(¾¤È¸ß´¹À­¤Î¤¢¤ë) ½ÐÎÏ -¥Õ¥©¡¼¥Þ¥Ã¥È¤¬»ÈÍѤµ¤ì¤ë¡£ +\-p オプションが指定された場合には、(他と互換性のある) 出力 +フォーマットが使用される。 .br .in +3 real %e @@ -120,177 +120,177 @@ user %U sys %S .br .in -3 -.SS "¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó" -¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¤è¤¯¤¢¤ë printf ·Á¼°¤Ç²ò¼á¤µ¤ì¤ë¡£ -Ä̾ï¤Îʸ»ú¤Ï¤½¤Î¤Þ¤Þ¥³¥Ô¡¼¤µ¤ì¡¢ -¥¿¥Ö¡¢²þ¹Ô (newline)¡¢¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤Ï¤½¤ì¤¾¤ì \et, \en, \e\e ¤Ç -¥¨¥¹¥±¡¼¥×¤µ¤ì¤ë¡£ -¥Ñ¡¼¥»¥ó¥Èµ­¹æ¤Ï %% ¤Çɽ¸½¤µ¤ì¡¢¤½¤ì°Ê³°¤Î % ¤ÏÊÑ´¹¤ò¼¨¤¹¡£ -ËöÈø¤Ë¤Ïɬ¤º²þ¹Ôʸ»ú (newline) ¤¬Äɲ䵤ì¤ë¡£ -ÊÑ´¹¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +.SS "フォーマット文字列" +フォーマットはよくある printf 形式で解釈される。 +通常の文字はそのままコピーされ、 +タブ、改行 (newline)、バックスラッシュはそれぞれ \et, \en, \e\e で +エスケープされる。 +パーセント記号は %% で表現され、それ以外の % は変換を示す。 +末尾には必ず改行文字 (newline) が追加される。 +変換は以下の通りである。 .BR tcsh (1) -¤Ç»ÈÍѤµ¤ì¤ëÊÑ´¹¤ÏÁ´¤Æ¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +で使用される変換は全てサポートされている。 .LP .B "Time" .TP .B %E -·Ð²á¤·¤¿¼Â»þ´Ö ([hours:]minutes:seconds ¤Î·Á¼°)¡£ +経過した実時間 ([hours:]minutes:seconds の形式)。 .TP .B %e -(tcsh ¤Ë¤Ï¤Ê¤¤) ·Ð²á¤·¤¿¼Â»þ´Ö (ÉÃñ°Ì)¡£ +(tcsh にはない) 経過した実時間 (秒単位)。 .TP .B %S -¤½¤Î¥×¥í¥»¥¹¤¬¥«¡¼¥Í¥ë¥â¡¼¥É¤Ç¾ÃÈñ¤·¤¿ CPU »þ´Ö¤Î¹ç·× (ÉÃñ°Ì)¡£ +そのプロセスがカーネルモードで消費した CPU 時間の合計 (秒単位)。 .TP .B %U -¤½¤Î¥×¥í¥»¥¹¤¬¥æ¡¼¥¶¥â¡¼¥É¤Ç¾ÃÈñ¤·¤¿ CPU »þ´Ö¤Î¹ç·× (ÉÃñ°Ì)¡£ +そのプロセスがユーザモードで消費した CPU 時間の合計 (秒単位)。 .TP .B %P -¤³¤Î¥¸¥ç¥Ö¤¬³ÍÆÀ¤·¤¿ CPU ¤Î³ä¤ê¹ç¤¤ (¥Ñ¡¼¥»¥ó¥Æ¡¼¥¸)¡£ -(%U + %S) / %E ¤Ç·×»»¤µ¤ì¤ë¡£ +このジョブが獲得した CPU の割り合い (パーセンテージ)。 +(%U + %S) / %E で計算される。 .LP .B "Memory" .TP .B %M -¥×¥í¥»¥¹À¸Â¸Ãæ¤Î¤½¤Î¥×¥í¥»¥¹¤Î resident set size ¤ÎºÇÂçÃÍ¡£ -¥­¥í¥Ð¥¤¥Èñ°Ì¡£ +プロセス生存中のそのプロセスの resident set size の最大値。 +キロバイト単位。 .TP .B %t -(tcsh ¤Ë¤Ï¤Ê¤¤) -¤½¤Î¥×¥í¥»¥¹¤Î resident set size ¤ÎÊ¿¶ÑÃÍ¡£ -¥­¥í¥Ð¥¤¥Èñ°Ì¡£ +(tcsh にはない) +そのプロセスの resident set size の平均値。 +キロバイト単位。 .TP .B %K -¤½¤Î¥×¥í¥»¥¹¤Î¥á¥â¥ê»ÈÍÑÎ̤ιç·× (¥Ç¡¼¥¿+¥¹¥¿¥Ã¥¯+¥Æ¥­¥¹¥È) ¤ÎÊ¿¶ÑÃÍ¡£ -¥­¥í¥Ð¥¤¥Èñ°Ì¡£ +そのプロセスのメモリ使用量の合計 (データ+スタック+テキスト) の平均値。 +キロバイト単位。 .TP .B %D -¤½¤Î¥×¥í¥»¥¹¤ÎÈó¶¦Í­¥Ç¡¼¥¿Îΰè¤ÎÊ¿¶Ñ¥µ¥¤¥º¡£ -¥­¥í¥Ð¥¤¥Èñ°Ì¡£ +そのプロセスの非共有データ領域の平均サイズ。 +キロバイト単位。 .TP .B %p -(tcsh ¤Ë¤Ï¤Ê¤¤) -¤½¤Î¥×¥í¥»¥¹¤ÎÈó¶¦Í­¥¹¥¿¥Ã¥¯¶õ´Ö¤ÎÊ¿¶Ñ¥µ¥¤¥º¡£ -¥­¥í¥Ð¥¤¥Èñ°Ì¡£ +(tcsh にはない) +そのプロセスの非共有スタック空間の平均サイズ。 +キロバイト単位。 .TP .B %X -¤½¤Î¥×¥í¥»¥¹¤Î¶¦Í­¥Æ¥­¥¹¥È¶õ´Ö¤ÎÊ¿¶Ñ¥µ¥¤¥º¡£ -¥­¥í¥Ð¥¤¥Èñ°Ì¡£ +そのプロセスの共有テキスト空間の平均サイズ。 +キロバイト単位。 .TP .B %Z -(tcsh ¤Ë¤Ï¤Ê¤¤) ¥·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì)¡£ -¤³¤ÎÃͤϥ·¥¹¥Æ¥àËè¤Ë·è¤Þ¤ëÄê¿ô¤À¤¬¡¢¥·¥¹¥Æ¥à¤Ë¤è¤ê°Û¤Ê¤ë¡£ +(tcsh にはない) システムのページサイズ (バイト単位)。 +この値はシステム毎に決まる定数だが、システムにより異なる。 .TP .B %F -¥×¥í¥»¥¹¤ÎÆ°ºîÃæ¤ËȯÀ¸¤·¤¿¥á¥¸¥ã¡¼¥Ú¡¼¥¸¥Õ¥©¥ë¥È¤Î²ó¿ô¡£ -¤³¤ì¤Ï¡¢¥Ç¥£¥¹¥¯¤«¤é¥Ú¡¼¥¸¤òÆɤ߹þ¤àɬÍפ¬¤¢¤Ã¤¿¥Ú¡¼¥¸¥Õ¥©¥ë¥È¤Ë -´Ø¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +プロセスの動作中に発生したメジャーページフォルトの回数。 +これは、ディスクからページを読み込む必要があったページフォルトに +関するものである。 .TP .B %R -¥Þ¥¤¥Ê¡¼¥Ú¡¼¥¸¥Õ¥©¡¼¥ë¥È¡¢¤Ä¤Þ¤ê²óÉü²Äǽ¤Ê¥Ú¡¼¥¸¥Õ¥©¥ë¥È¤Î²ó¿ô¡£ -¤³¤ì¤Ï¡¢¤½¤Î¥Ú¡¼¥¸¤ÏÍ­¸ú¤Ç¤Ê¤¤¤¬¡¢¤Þ¤À¾¤Î²¾ÁÛ¥Ú¡¼¥¸¤ËÃ¥¤ï¤ì¤Æ -¤¤¤Ê¤«¤Ã¤¿¥Ú¡¼¥¸¤ËÂФ¹¤ë¥Ú¡¼¥¸¥Õ¥©¥ë¥È¤Ë´Ø¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +マイナーページフォールト、つまり回復可能なページフォルトの回数。 +これは、そのページは有効でないが、まだ他の仮想ページに奪われて +いなかったページに対するページフォルトに関するものである。 .TP .B %W -¤½¤Î¥×¥í¥»¥¹¤¬¼çµ­²±¤«¤é¥¹¥ï¥Ã¥×¥¢¥¦¥È¤µ¤ì¤¿²ó¿ô¡£ +そのプロセスが主記憶からスワップアウトされた回数。 .TP .B %c -¤½¤Î¥×¥í¥»¥¹¤¬ (¥¿¥¤¥à¥¹¥é¥¤¥¹¤Î·Ð²á¤Ë¤è¤ê) ¶¯À©Åª¤Ë¥³¥ó¥Æ¥­¥¹¥È¥¹¥¤¥Ã¥Á -¤µ¤ì¤¿²ó¿ô¡£ +そのプロセスが (タイムスライスの経過により) 強制的にコンテキストスイッチ +された回数。 .TP .B %w -wait ¤Î²ó¿ô¡¢¤Ä¤Þ¤ê¤½¤Î¥×¥í¥°¥é¥à¤¬¼«È¯Åª¤Ë¥³¥ó¥Æ¥­¥¹¥È¥¹¥¤¥Ã¥Á¤µ¤ì¤¿²ó¿ô¡£ -Î㤨¤Ð¡¢I/O Áàºî¤Î´°Î»¤òÂԤäƤ¤¤ë´Ö¤Ê¤É¤¬³ºÅö¤¹¤ë¡£ +wait の回数、つまりそのプログラムが自発的にコンテキストスイッチされた回数。 +例えば、I/O 操作の完了を待っている間などが該当する。 .LP .B "I/O" .TP .B %I -¤½¤Î¥×¥í¥»¥¹¤Ë¤è¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤«¤é¤ÎÆþÎϤβó¿ô¡£ +そのプロセスによるファイルシステムからの入力の回数。 .TP .B %O -¤½¤Î¥×¥í¥»¥¹¤Ë¤è¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ø¤Î½ÐÎϤβó¿ô¡£ +そのプロセスによるファイルシステムへの出力の回数。 .TP .B %r -¤½¤Î¥×¥í¥»¥¹¤¬¼õ¿®¤·¤¿¥½¥±¥Ã¥È¥á¥Ã¥»¡¼¥¸¿ô¡£ +そのプロセスが受信したソケットメッセージ数。 .TP .B %s -¤½¤Î¥×¥í¥»¥¹¤¬Á÷¿®¤·¤¿¥½¥±¥Ã¥È¥á¥Ã¥»¡¼¥¸¿ô¡£ +そのプロセスが送信したソケットメッセージ数。 .TP .B %k -¤½¤Î¥×¥í¥»¥¹¤ËÇÛÁ÷¤µ¤ì¤¿¥·¥°¥Ê¥ë¿ô¡£ +そのプロセスに配送されたシグナル数。 .TP .B %C -(tcsh ¤Ë¤Ï¤Ê¤¤) time ¤ÎÂоݤȤʤä¿¥³¥Þ¥ó¥É̾¤È¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¡£ +(tcsh にはない) time の対象となったコマンド名とコマンドライン引き数。 .TP .B %x -(tcsh ¤Ë¤Ï¤Ê¤¤) ¥³¥Þ¥ó¥É¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¡£ -.SS "GNU ¥ª¥×¥·¥ç¥ó" +(tcsh にはない) コマンドの終了ステータス。 +.SS "GNU オプション" .TP .BI "\-f " FORMAT ", \-\-format=" FORMAT -½ÐÎÏ¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»ØÄꤹ¤ë¡£ -´Ä¶­ÊÑ¿ô +出力フォーマットを指定する。 +環境変数 .B TIME -¤Ç»ØÄꤵ¤ì¤¿¥Õ¥©¡¼¥Þ¥Ã¥È¤è¤ê¤âÍ¥À褵¤ì¤ë¡£ +で指定されたフォーマットよりも優先される。 .TP .B "\-p, \-\-portability" -¾¤Î time ¤È¸ß´¹À­¤Î¤¢¤ë½ÐÎÏ¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»ÈÍѤ¹¤ë¡£ +他の time と互換性のある出力フォーマットを使用する。 .TP .BI "\-o " FILE ", \-\-output=" FILE -·ë²Ì¤ò \fIstderr\fP ¤ËÁ÷¤é¤º¡¢»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤à¡£ -¥Õ¥¡¥¤¥ë¤Ï¾å½ñ¤­¤µ¤ì¤ë¡£ +結果を \fIstderr\fP に送らず、指定されたファイルに書き込む。 +ファイルは上書きされる。 .TP .B "\-a, \-\-append" -(\-o ¤È°ì½ï¤Ë»ÈÍѤ¹¤ë¡£) -¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤­¤»¤º¤Ë¡¢·ë²Ì¤ò¥Õ¥¡¥¤¥ëËöÈø¤ËÄɲ乤롣 +(\-o と一緒に使用する。) +ファイルを上書きせずに、結果をファイル末尾に追加する。 .TP .B "\-v, \-\-verbose" -Èó¾ï¤Ë¾Ü¤·¤¤½ÐÎϤǡ¢Æþ¼ê¤Ç¤­¤ëÁ´¤Æ¤Î¾ðÊó¤ò½ÐÎϤ¹¤ë¡£ -.SS "GNU ɸ½à¥ª¥×¥·¥ç¥ó" +非常に詳しい出力で、入手できる全ての情報を出力する。 +.SS "GNU 標準オプション" .TP .B "\-\-help" -»ÈÍÑÊýË¡¤Ë´Ø¤¹¤ë¥á¥Ã¥»¡¼¥¸¤òɸ½à½ÐÎϤËɽ¼¨¤·¡¢Àµ¾ï½ªÎ»¤¹¤ë¡£ +使用方法に関するメッセージを標準出力に表示し、正常終了する。 .TP .B "\-V, \-\-version" -¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɸ½à½ÐÎϤËɽ¼¨¤·¡¢Àµ¾ï½ªÎ»¤¹¤ë¡£ +バージョン情報を標準出力に表示し、正常終了する。 .TP .B "\-\-" -¥ª¥×¥·¥ç¥ó¥ê¥¹¥È¤ÎËöÈø¤ò¼¨¤¹¡£ -.SH ¥Ð¥° -Á´¤Æ¤Î¥ê¥½¡¼¥¹¤¬ UNIX ¤ÎÁ´¤Æ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç·×¬¤µ¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢ -¤¤¤¯¤Ä¤«¤ÎÃͤ¬ 0 ¤ÈÊó¹ð¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¸½ºß¤Î½ÐÎϹàÌܤΤۤȤó¤É¤Ï 4.2BSD ¤ä 4.3BSD ¤Ç¼èÆÀ²Äǽ¤Ê¥Ç¡¼¥¿¤Ë -´ð¤Å¤¤¤ÆÁªÂò¤µ¤ì¤Æ¤¤¤ë¡£ +オプションリストの末尾を示す。 +.SH バグ +全てのリソースが UNIX の全てのバージョンで計測されているわけではないので、 +いくつかの値が 0 と報告される可能性がある。 +現在の出力項目のほとんどは 4.2BSD や 4.3BSD で取得可能なデータに +基づいて選択されている。 .LP -GNU time ¥Ð¡¼¥¸¥ç¥ó 1.7 ¤Ï¤Þ¤À¥í¡¼¥«¥é¥¤¥º¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤½¤Î¤¿¤á¡¢POSIX ¤ÎÍ×·ï¤ò¼ÂÁõ¤·¤Æ¤¤¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¡£ +GNU time バージョン 1.7 はまだローカライズされていない。 +そのため、POSIX の要件を実装していないことになる。 .LP .B TIME -¤È¤¤¤¦´Ä¶­ÊÑ¿ô¤Ï̾Á°¤ÎÁªÂò¤¬¤Þ¤º¤¤¡£ +という環境変数は名前の選択がまずい。 .BR autoconf (1) -¤ä +や .BR make (1) -¤Î¤è¤¦¤Ê¥·¥¹¥Æ¥à¤Ç¤Ï¡¢»ÈÍѤ¹¤ë¥³¥Þ¥ó¥É¤ò¾å½ñ¤­¤¹¤ë¤Î¤Ë¤½¤Î¥³¥Þ¥ó¥É¤Î -̾Á°¤Î´Ä¶­ÊÑ¿ô¤ò»È¤¦¤Î¤¬ÄÁ¤·¤¯¤Ê¤¤¡£ -MORE ¤ä TIME ¤Î¤è¤¦¤Ê̾Á°¤ò (¥×¥í¥°¥é¥à¤Î¥Ñ¥¹Ì¾¤Î»ØÄê¤Ç¤Ï¤Ê¤¯) -¥×¥í¥°¥é¥à¤Ø¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤Î¤Ë»È¤¦¤È¡¢ -ÌÌÅݤʤ³¤È¤ò°ú¤­µ¯¤³¤¹²ÄǽÀ­¤¬¹â¤¤¡£ +のようなシステムでは、使用するコマンドを上書きするのにそのコマンドの +名前の環境変数を使うのが珍しくない。 +MORE や TIME のような名前を (プログラムのパス名の指定ではなく) +プログラムへのオプションを指定するのに使うと、 +面倒なことを引き起こす可能性が高い。 .LP -\-o ¤¬Äɵ­¤Ç¤Ï¤Ê¤¯¾å½ñ¤­¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ï»ÄÇ°¤Ê¤³¤È¤À -(¤Ä¤Þ¤ê \-a ¥ª¥×¥·¥ç¥ó¤¬¥Ç¥Õ¥©¥ë¥È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Ù¤­¤À¤í¤¦¤È¤¤¤¦¤³¤È¤À)¡£ +\-o が追記ではなく上書きになっているのは残念なことだ +(つまり \-a オプションがデフォルトになっているべきだろうということだ)。 .LP GNU .B time -¤ËÂФ¹¤ëÄó°Æ¤ä¥Ð¥°¥ì¥Ý¡¼¥È¤Ï +に対する提案やバグレポートは .br .I bug\-utils@prep.ai.mit.edu .br -¤Þ¤Ç¥á¡¼¥ë¤òÁ÷¤Ã¤Æ¤Û¤·¤¤¡£ -¤½¤Î¾ì¹ç¤Ë¤Ï +までメールを送ってほしい。 +その場合には .B time -¤ä OS¡¢»ÈÍѤ·¤Æ¤¤¤ë C ¥³¥ó¥Ñ¥¤¥é¤Î -¥Ð¡¼¥¸¥ç¥ó¤òµ­ºÜ¤·¤Æ¤Û¤·¤¤¡£ +や OS、使用している C コンパイラの +バージョンを記載してほしい。 .B time -¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï°Ê²¼¤Î¥³¥Þ¥ó¥É¤Ç¼èÆÀ¤Ç¤­¤ë¡£ +のバージョンは以下のコマンドで取得できる。 .br .I time \-\-version .br @@ -305,7 +305,7 @@ GNU .\" Helped with portability .\" .IP "Francois Pinard" .\" Helped with portability -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR tcsh (1), .BR times (2), .BR wait3 (2) diff --git a/release/man2/_exit.2 b/release/man2/_exit.2 index 0b2d9cb1..0304a8a3 100644 --- a/release/man2/_exit.2 +++ b/release/man2/_exit.2 @@ -35,12 +35,12 @@ .\" Updated Sat Sep 3 04:26:00 JST 2005 .\" by Akihiro MOTOKI .\" -.\"WORD descriptors ¥Ç¥£¥¹¥¯¥ê¥×¥¿ +.\"WORD descriptors ディスクリプタ .\" .TH _EXIT 2 2010-09-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -_exit, _Exit \- ¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ò½ªÎ»¤µ¤»¤ë -.SH ½ñ¼° +.SH 名前 +_exit, _Exit \- 呼び出し元のプロセスを終了させる +.SH 書式 .B #include .sp .BI "void _exit(int " status ); @@ -50,9 +50,9 @@ _exit, _Exit \- .BI "void _Exit(int " status ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -61,78 +61,78 @@ glibc _XOPEN_SOURCE\ >=\ 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L; .br -¤Þ¤¿¤Ï +または .I cc\ -std=c99 .ad -.SH ÀâÌÀ +.SH 説明 .BR _exit () -¤Ï¡¢¤½¤ì¤ò¸Æ¤ó¤À¥×¥í¥»¥¹¤ò¡Öľ¤Á¤Ë¡×½ªÎ»¤µ¤»¤ë¡£ -¤½¤ÎºÝ¡¢¤³¤Î¥×¥í¥»¥¹¤¬½êÍ­¤·¤Æ¤¤¤ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ (descriptor) ¤Ç¡¢ -¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤ÏÁ´¤Æ¥¯¥í¡¼¥º¤µ¤ì¤ë¡£ -¤Þ¤¿¡¢¤³¤Î¥×¥í¥»¥¹¤¬½êÍ­¤¹¤ë»Ò¥×¥í¥»¥¹¤ÏÁ´¤Æ¡¢¥×¥í¥»¥¹ÈÖ¹æ 1¡¢ -¤Ä¤Þ¤ê +は、それを呼んだプロセスを「直ちに」終了させる。 +その際、このプロセスが所有しているディスクリプタ (descriptor) で、 +オープンされているものは全てクローズされる。 +また、このプロセスが所有する子プロセスは全て、プロセス番号 1、 +つまり .I init -¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ·Ñ¾µ¤µ¤ì¡¢¤³¤Î¥×¥í¥»¥¹¤Î¿Æ¥×¥í¥»¥¹¤ËÂФ·¤Æ +プロセスによって継承され、このプロセスの親プロセスに対して .B SIGCHLD -¥·¥°¥Ê¥ë¤¬Á÷½Ð¤µ¤ì¤ë¡£ +シグナルが送出される。 .LP .I status -¤ÎÃͤϡ¢¤³¤Î¥×¥í¥»¥¹¤Î½ªÎ»¾õÂ֤Ȥ·¤Æ¤½¤Î¿Æ¥×¥í¥»¥¹¤ËÂФ·¤ÆÊÖ¤µ¤ì¡¢ +の値は、このプロセスの終了状態としてその親プロセスに対して返され、 .BR wait (2) -·Ï´Ø¿ô¤òÍøÍѤ¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +系関数を利用することによって取得することができる。 .LP -´Ø¿ô +関数 .BR _Exit () -¤Ï +は .BR _exit () -¤ÈÅù²Á¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤ÏÃͤòÊÖ¤µ¤Ê¤¤¡£ -.SH ½àµò +と等価である。 +.SH 返り値 +これらの関数は値を返さない。 +.SH 準拠 SVr4, POSIX.1-2001, 4.3BSD. -´Ø¿ô +関数 .BR _Exit () -¤Ï C99 ¤ÇƳÆþ¤µ¤ì¤¿¡£ -.SH Ãí°Õ -exit ¤ÎÌò³ä¡¦½ªÎ»¾õÂ֤μõÅϤ·¡¦ -¥¾¥ó¥Ó¥×¥í¥»¥¹¡¦¥·¥°¥Ê¥ëÁ÷½Ð¤Ê¤É¤Ë¤Ä¤¤¤Æ¤ÎµÄÏÀ¤Ï¡¢ +は C99 で導入された。 +.SH 注意 +exit の役割・終了状態の受渡し・ +ゾンビプロセス・シグナル送出などについての議論は、 .BR exit (3) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .LP -´Ø¿ô +関数 .BR _exit () -¤Ï +は .BR exit (3) -¤Ë»÷¤Æ¤¤¤ë¤¬¡¢ANSI C ¤Î +に似ているが、ANSI C の .BR atexit (3) -¤ä +や .BR on_exit (3) -¤Ë¤è¤Ã¤ÆÅÐÏ¿¤µ¤ì¤¿¤¤¤«¤Ê¤ë´Ø¿ô¤â¸Æ¤Ó½Ð¤µ¤Ê¤¤¡£ -ɸ½à I/O ¥Ð¥Ã¥Õ¥¡¤Î¥Õ¥é¥Ã¥·¥å¤ä¡¢ +によって登録されたいかなる関数も呼び出さない。 +標準 I/O バッファのフラッシュや、 .BR tmpfile (3) -¤ÇºîÀ®¤µ¤ì¤¿¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë¤Îºï½ü¤ò¹Ô¤¦¤«¤É¤¦¤«¤Ï¡¢¼ÂÁõ¤Ë°Í¸¤¹¤ë¡£ -°ìÊý¤Ç¡¢ +で作成されたテンポラリファイルの削除を行うかどうかは、実装に依存する。 +一方で、 .BR _exit () -¤Ï¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¯¥í¡¼¥º¤·¤Ê¤¤¤¿¤á¡¢ -̤·èÄê¤Ë¤Ê¤Ã¤Æ¤¤¤ë½ÐÎϤ¬¥Õ¥é¥Ã¥·¥å¤µ¤ì¤ë¤Î¤òÂԤĤΤËÉÔ³ÎÄê¤ÊÃ٤줬ȯÀ¸¤¹¤ë¡£ -¤³¤ÎÃÙ¤ì¤òȯÀ¸¤µ¤»¤¿¤¯¤Ê¤±¤ì¤Ð¡¢ +はオープンされているファイルディスクリプタをクローズしないため、 +未決定になっている出力がフラッシュされるのを待つのに不確定な遅れが発生する。 +この遅れを発生させたくなければ、 .BR _exit () -¤ÎÁ°¤Ë +の前に .BR tcflush (3) -¤Î¤è¤¦¤Ê´Ø¿ô¤ò¸Æ¤Ó½Ð¤»¤Ð¤è¤¤¡£ +のような関数を呼び出せばよい。 .BR _exit () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¤È¤­¤Ë¡¢ -̤·èÄê¤Ë¤Ê¤Ã¤Æ¤¤¤ëÁ´¤Æ¤Î I/O ¤¬¥­¥ã¥ó¥»¥ë¤µ¤ì¤ë¤Î¤«¡¢ -¤Þ¤¿¤É¤Î I/O ¤¬¥­¥ã¥ó¥»¥ë¤µ¤ì¤ë¤Î¤«¤Ï¼ÂÁõ¤Ë°Í¸¤¹¤ë¡£ +が呼び出されたときに、 +未決定になっている全ての I/O がキャンセルされるのか、 +またどの I/O がキャンセルされるのかは実装に依存する。 -¥Ð¡¼¥¸¥ç¥ó 2.3 ¤è¤êÁ°¤Î glibc ¤Ç¤Ï¡¢ +バージョン 2.3 より前の glibc では、 .BR _exit () -¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤ÏƱ¤¸Ì¾Á°¤Î¥«¡¼¥Í¥ë¡¦¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤·¤Æ¤¤¤¿¡£ -glibc 2.3 °Ê¹ß¤Ç¤Ï¡¢¥×¥í¥»¥¹Æâ¤ÎÁ´¤Æ¤Î¥¹¥ì¥Ã¥É¤ò½ªÎ»¤¹¤ë¤¿¤á¤Ë¡¢ -¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï +のラッパー関数は同じ名前のカーネル・システムコールを起動していた。 +glibc 2.3 以降では、プロセス内の全てのスレッドを終了するために、 +ラッパー関数は .BR exit_group (2) -¤òµ¯Æ°¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を起動する。 +.SH 関連項目 .BR execve (2), .BR exit_group (2), .BR fork (2), diff --git a/release/man2/_syscall.2 b/release/man2/_syscall.2 index 15837d7a..07e8cb70 100644 --- a/release/man2/_syscall.2 +++ b/release/man2/_syscall.2 @@ -40,72 +40,72 @@ .\" Translated 2008-02-11, Akihiro MOTOKI .\" .TH _SYSCALL 2 2007-12-19 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -_syscall \- ¥é¥¤¥Ö¥é¥ê¤Î¥µ¥Ý¡¼¥È¤Ê¤·¤Ç¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤¹¤ë (ÀΤÎÊýË¡) -.SH ½ñ¼° +.SH 名前 +_syscall \- ライブラリのサポートなしでシステムコールを起動する (昔の方法) +.SH 書式 .B #include A _syscall macro desired system call -.SH ÀâÌÀ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë´Ø¤·¤Æ¤½¤Î¥×¥í¥È¥¿¥¤¥×¤òÃΤ뤳¤È¤¬½ÅÍפǤ¢¤ë¡£ -°ú¤­¿ô¤Î¸Ä¿ô¡¢¤½¤ì¤é¤Î·¿¡¢ÊÖ¤êÃͤη¿¤òÃΤëɬÍפ¬¤¢¤ë¡£ -¼ÂºÝ¤Î»ÈÍѤˤ¢¤¿¤Ã¤Æ¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¥·¥¹¥Æ¥à¤Ë¸Æ¤Ó½Ð¤·¤ä¤¹¤¯¤¹¤ë¤¿¤á¤Ë¡¢ -7 ¸Ä¤Î¥Þ¥¯¥í¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¡£¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ï°Ê²¼¤Î·Á¤Ç¤¢¤ë¡£ +.SH 説明 +システムコールに関してそのプロトタイプを知ることが重要である。 +引き数の個数、それらの型、返り値の型を知る必要がある。 +実際の使用にあたっては、システムコールをシステムに呼び出しやすくするために、 +7 個のマクロが用意されている。これらのマクロは以下の形である。 .sp .RS .RI _syscall X ( type , name , type1 , arg1 , type2 , arg2 ,...) .RE .PP -¤³¤³¤Ç +ここで .IP -\fIX\fP ¤Ï 0¡Á6 ¤Ç¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¼è¤ë°ú¤­¿ô¤Î¸Ä¿ô¤Ç¤¢¤ë¡£ +\fIX\fP は 0〜6 で、システムコールが取る引き数の個数である。 .IP -\fItype\fP ¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÊÖ¤êÃͤη¿¤Ç¤¢¤ë¡£ +\fItype\fP はシステムコールの返り値の型である。 .IP -\fIname\fP ¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î̾Á°¤Ç¤¢¤ë¡£ +\fIname\fP はシステムコールの名前である。 .IP -\fItypeN\fP ¤Ï N ÈÖÌܤΰú¤­¿ô¤Î·¿¤Ç¤¢¤ë¡£ +\fItypeN\fP は N 番目の引き数の型である。 .IP -\fIargN\fP ¤Ï N ÈÖÌܤΰú¤­¿ô¤Î̾Á°¤Ç¤¢¤ë¡£ +\fIargN\fP は N 番目の引き数の名前である。 .PP -¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ï¡¢»ØÄꤷ¤¿°ú¤­¿ô¤ò»ý¤Ä \fIname\fP ¤È¤¤¤¦Ì¾Á°¤Î´Ø¿ô¤òÀ¸À®¤¹¤ë¡£ -°ìÅÙ¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ÎÃæ¤Ç _syscall() ¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ¤ª¤¯¤È¡¢ -¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò \fIname\fP ¤È¤¤¤¦Ì¾Á°¤Ç¸Æ¤Ö¤³¤È¤¬¤Ç¤­¤ë¡£ -.SH ¥Õ¥¡¥¤¥ë +これらのマクロは、指定した引き数を持つ \fIname\fP という名前の関数を生成する。 +一度ソースファイルの中で _syscall() をインクルードしておくと、 +そのシステムコールを \fIname\fP という名前で呼ぶことができる。 +.SH ファイル .I /usr/include/linux/unistd.h -.SH ½àµò -¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢¤½¤Î»ÈÍѤÏÈó¿ä¾©¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -¥«¡¼¥Í¥ë 2.6.18 ¤¢¤¿¤ê¤«¤é¡¢_syscall ¥Þ¥¯¥í·²¤Ï¥æ¡¼¥¶¶õ´Ö¤ËÂФ·¤ÆÄ󶡤µ¤ì¤ë -¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤«¤éºï½ü¤µ¤ì¤¿¡£Âå¤ï¤ê¤Ë +.SH 準拠 +これらのマクロは Linux 固有であり、その使用は非推奨である。 +.SH 注意 +カーネル 2.6.18 あたりから、_syscall マクロ群はユーザ空間に対して提供される +ヘッダファイルから削除された。代わりに .BR syscall (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ -(¤¤¤¯¤Ä¤«¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¡¢ÆÃ¤Ë ia64¡¢¤Ç¤Ï¡¢¤³¤ì¤Þ¤Ç _syscall ¥Þ¥¯¥í¤¬ -Ä󶡤µ¤ì¤¿¤³¤È¤Ï¤Ê¤¤¡£¤³¤Î¤è¤¦¤Ê¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢¾ï¤Ë +を使用すること。 +(いくつかのアーキテクチャ、特に ia64、では、これまで _syscall マクロが +提供されたことはない。このようなアーキテクチャでは、常に .BR syscall (2) -¤¬É¬ÍפǤ¢¤Ã¤¿¡£) +が必要であった。) -_syscall() ¥Þ¥¯¥í¤Ï¥×¥í¥È¥¿¥¤¥×¤ò¡ÖÀ¸À®¤·¤Ê¤¤¡×¡£ -¥æ¡¼¥¶¤Ï¥×¥í¥È¥¿¥¤¥×¤ò¼«Ê¬¤Ç½ñ¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -¤È¤ê¤ï¤± C++ ¥æ¡¼¥¶¤Î¾ì¹ç¤Ï¤½¤¦¤Ç¤¢¤í¤¦¡£ +_syscall() マクロはプロトタイプを「生成しない」。 +ユーザはプロトタイプを自分で書かなければならないかもしれない。 +とりわけ C++ ユーザの場合はそうであろう。 -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢Àµ¤Î¥¨¥é¡¼¥³¡¼¥É¤Î¤ß¡¢¤Þ¤¿¤ÏÉé¤Î¥¨¥é¡¼¥³¡¼¥É¤Î¤ß¤òÊÖ¤¹¤è¤¦¤Ë -Äê¤á¤é¤ì¤Æ¤¤¤ëÌõ¤Ç¤Ï¤Ê¤¤¡£¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤É¤Î¤è¤¦¤Ê¥¨¥é¡¼¥³¡¼¥É¤òÊÖ¤¹¤«¤ò -³Îǧ¤¹¤ë¤Ë¤Ï¡¢¤½¤Î¥½¡¼¥¹¥³¡¼¥É¤òÆɤàɬÍפ¬¤¢¤ë¡£¤¿¤¤¤Æ¤¤¤Î¾ì¹ç¤Ï¡¢É¸½à¤Î¥¨¥é¡¼ -¥³¡¼¥É¤òÉé¤Ë¤·¤¿¤â¤Î¤Ç¤¢¤ë (Î㤨¤Ð \-\fBEPERM\fP)¡£ -_syscall() ¥Þ¥¯¥í¤Ï¡¢¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÊÖ¤êÃÍ \fIr\fP ¤¬Éé¤Ç¤Ê¤¤¾ì¹ç¡¢¤½¤ÎÃÍ -¤ò¤½¤Î¤Þ¤ÞÊÖ¤¹¡£°ìÊý¡¢\fIr\fP ¤¬Éé¤Î¾ì¹ç¤Ë¤Ï¡¢ÊÑ¿ô +システムコールは、正のエラーコードのみ、または負のエラーコードのみを返すように +定められている訳ではない。そのシステムコールがどのようなエラーコードを返すかを +確認するには、そのソースコードを読む必要がある。たいていの場合は、標準のエラー +コードを負にしたものである (例えば \-\fBEPERM\fP)。 +_syscall() マクロは、そのシステムコールの返り値 \fIr\fP が負でない場合、その値 +をそのまま返す。一方、\fIr\fP が負の場合には、変数 .I errno -¤Ë \-\fIr\fP ¤òÀßÄꤷ¡¢\-1 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¥³¡¼¥É¤Ë¤Ä¤¤¤Æ¤Ï +に \-\fIr\fP を設定し、\-1 を返す。 +エラーコードについては .BR errno (3) -¤ò»²¾È¡£ +を参照。 -¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÄêµÁ¤¹¤ëºÝ¡¢°ú¤­¿ô¤Î·¿¤ÏÃÍÅϤ· (by-value) ¤«¡¢ -(¹½Â¤ÂΤΤ褦¤Ë½¸¹çŪ¤Ê¥Ç¡¼¥¿¤Î¾ì¹ç¤Ï) ¥Ý¥¤¥ó¥¿ÅϤ· (by-pointer) -¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +システムコールを定義する際、引き数の型は値渡し (by-value) か、 +(構造体のように集合的なデータの場合は) ポインタ渡し (by-pointer) +でなければならない。 .\" The preferred way to invoke system calls that glibc does not know .\" about yet is via .\" .BR syscall (2). @@ -117,7 +117,7 @@ _syscall() .\" header file contains the required SYS_foo definition. .\" Otherwise, the use of a _syscall macro is required. .\" -.SH Îã +.SH 例 .nf #include #include @@ -127,8 +127,8 @@ _syscall() _syscall1(int, sysinfo, struct sysinfo *, info); -/* Note: nroff ¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤«¤éľÀÜ¥³¥Ô¡¼¤¹¤ëºÝ¤Ë¤Ï¡¢ -printf ʸÆâ¤Î;ʬ¤Ê¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤ò˺¤ì¤º¤Ëºï½ü¤¹¤ë¤è¤¦¤Ë¡£ */ +/* Note: nroff のソースファイルから直接コピーする際には、 +printf 文内の余分なバックスラッシュを忘れずに削除するように。 */ int main(void) @@ -161,7 +161,7 @@ Memory in buffers = 5066752 Swap: total 27881472 / free 24698880 Number of processes = 40 .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR intro (2), .BR syscall (2), .BR errno (3) diff --git a/release/man2/accept.2 b/release/man2/accept.2 index 4207b103..0a344303 100644 --- a/release/man2/accept.2 +++ b/release/man2/accept.2 @@ -48,177 +48,177 @@ .\" Updated & Modified 2008-12-24, Akihiro MOTOKI, LDP v3.15 .\" Updated 2008-04-13, Akihiro MOTOKI, LDP v3.20 .\" -.\"WORD: pending ÊÝαÃæ¤Î -.\"WORD: queue ¥­¥å¡¼ -.\"WORD: file descriptor ¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: nonblocking ÈóÄä»ß -.\"WORD: async ÈóƱ´ü -.\"WORD: communication layer ÄÌ¿®ÁØ -.\"WORD: value-result argument Æþ½ÐÎÏξÍѤΰú¤­¿ô -.\"WORD: confirmation Àܳ³Îǧ -.\"WORD: dequeue ¥­¥å¡¼¤«¤é¼è¤ê½Ð¤¹ -.\"WORD: rejection ÀܳµñÈÝ +.\"WORD: pending 保留中の +.\"WORD: queue キュー +.\"WORD: file descriptor ファイル・ディスクリプタ +.\"WORD: nonblocking 非停止 +.\"WORD: async 非同期 +.\"WORD: communication layer 通信層 +.\"WORD: value-result argument 入出力両用の引き数 +.\"WORD: confirmation 接続確認 +.\"WORD: dequeue キューから取り出す +.\"WORD: rejection 接続拒否 .\" .TH ACCEPT 2 2010-09-10 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -accept \- ¥½¥±¥Ã¥È¤Ø¤ÎÀܳ¤ò¼õ¤±¤ë -.SH ½ñ¼° +.SH 名前 +accept \- ソケットへの接続を受ける +.SH 書式 .nf -.BR "#include " " /* ¡ÖÃí°Õ¡×»²¾È */" +.BR "#include " " /* 「注意」参照 */" .B #include .BI "int accept(int " sockfd ", struct sockaddr *" addr ", socklen_t *" addrlen ); -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .BI "int accept4(int " sockfd ", struct sockaddr *" addr , .BI " socklen_t *" addrlen ", int " flags ); .fi -.SH ÀâÌÀ +.SH 説明 .BR accept () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢Àܳ»Ø¸þ¤Î¥½¥±¥Ã¥È·¿ +システムコールは、接続指向のソケット型 .RB ( SOCK_STREAM ", " SOCK_SEQPACKET ) -¤ÇÍѤ¤¤é¤ì¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢ÀܳÂÔ¤Á¥½¥±¥Ã¥È +で用いられる。 +この関数は、接続待ちソケット .I socket -°¸¤Æ¤ÎÊÝα¾õÂÖ¤ÎÀܳÍ׵᤬Æþ¤Ã¤Æ¤¤¤ë¥­¥å¡¼¤«¤é -ÀèƬ¤ÎÀܳÍ×µá¤ò¼è¤ê½Ð¤·¡¢ÀܳºÑ¤ß¥½¥±¥Ã¥È¤ò¿·µ¬¤ËÀ¸À®¤·¡¢ -¤½¤Î¥½¥±¥Ã¥È¤ò»²¾È¤¹¤ë¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¿·µ¬¤ËÀ¸À®¤µ¤ì¤¿¥½¥±¥Ã¥È¤Ï¡¢ÀܳÂÔ¤Á (listen) ¾õÂ֤ǤϤʤ¤¡£ -¤â¤È¤â¤È¤Î¥½¥±¥Ã¥È +宛ての保留状態の接続要求が入っているキューから +先頭の接続要求を取り出し、接続済みソケットを新規に生成し、 +そのソケットを参照する新しいファイル・ディスクリプタを返す。 +新規に生成されたソケットは、接続待ち (listen) 状態ではない。 +もともとのソケット .I sockfd -¤Ï¤³¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤Æ±Æ¶Á¤ò¼õ¤±¤Ê¤¤¡£ +はこの呼び出しによって影響を受けない。 .PP -°ú¤­¿ô +引き数 .I sockfd -¤Ï¡¢ +は、 .BR socket (2) -¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¡¢ +によって生成され、 .BR bind (2) -¤Ë¤è¤Ã¤Æ¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¡¢ +によってローカルアドレスにバインドされ、 .BR listen (2) -¤ò·Ð¤ÆÀܳ¤òÂԤäƤ¤¤ë¥½¥±¥Ã¥È¤Ç¤¢¤ë¡£ +を経て接続を待っているソケットである。 .I addr -°ú¤­¿ô¤Ï +引き数は .I sockaddr -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤³¤Î¹½Â¤ÂΤˤÏÀܳÁê¼ê¤Î¥½¥±¥Ã¥È¤Î¥¢¥É¥ì¥¹¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ +構造体へのポインタである。 +この構造体には接続相手のソケットのアドレスが入っている。 .I addr -°ú¤­¿ô¤ÇÊÖ¤µ¤ì¤ë¥¢¥É¥ì¥¹¤ÎÀµ³Î¤Ê¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢ -¥½¥±¥Ã¥È¤Î¥¢¥É¥ì¥¹¼ïÊ̤ˤè¤Ã¤ÆÊѤï¤ë +引き数で返されるアドレスの正確なフォーマットは、 +ソケットのアドレス種別によって変わる .RB ( socket (2) -¤ª¤è¤Ó¤½¤ì¤¾¤ì¤Î¥×¥í¥È¥³¥ë¤Î man ¥Ú¡¼¥¸¤ò»²¾È)¡£ +およびそれぞれのプロトコルの man ページを参照)。 .I addr -¤¬ NULL ¤Î¾ì¹ç¡¢ +が NULL の場合、 .I addr -¤Ë¤Ï²¿¤âÆþ¤é¤Ê¤¤¡£¤³¤Î¾ì¹ç¡¢ +には何も入らない。この場合、 .I addrlen -¤Ï»ÈÍѤµ¤ì¤º¡¢¤³¤Î°ú¤­¿ô¤Ï NULL ¤Ë¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£ +は使用されず、この引き数は NULL にしておくべきである。 .I addrlen -°ú¤­¿ô¤ÏÆþ½ÐÎÏξÍѤΰú¤­¿ô¤Ç¤¢¤ë¡£¸Æ¤Ó½Ð¤·»þ¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤¬ +引き数は入出力両用の引き数である。呼び出し時には、呼び出し元が .I addr -¤¬»Ø¤¹¹½Â¤ÂΤΥµ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤Ç½é´ü²½¤·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Ê֤äƤ¯¤ë»þ¤Ë¤Ï¡¢ÀܳÁê¼ê¤Î¥¢¥É¥ì¥¹¤Î¼ÂºÝ¤ÎÂ礭¤µ¤¬³ÊǼ¤µ¤ì¤ë¡£ +が指す構造体のサイズ (バイト単位) で初期化しておかなければならない。 +返ってくる時には、接続相手のアドレスの実際の大きさが格納される。 -ÅϤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤¬¾®¤µ²á¤®¤ë¾ì¹ç¤Ë¤Ï¡¢ÊÖ¤µ¤ì¤ë¥¢¥É¥ì¥¹¤ÎËöÈø¤Ï -ÀÚ¤êµÍ¤á¤é¤ì¤ë¡£¤³¤Î¾ì¹ç¤Ë¤Ï¡¢ +渡されたバッファが小さ過ぎる場合には、返されるアドレスの末尾は +切り詰められる。この場合には、 .I addrlen -¤Ç¤Ï¡¢¸Æ¤Ó½Ð¤·»þ¤ËÅϤµ¤ì¤¿Ãͤè¤ê¤âÂ礭¤ÊÃͤ¬ÊÖ¤µ¤ì¤ë¡£ +では、呼び出し時に渡された値よりも大きな値が返される。 .PP -¥­¥å¡¼¤ËÊÝα¤È¤Ê¤Ã¤Æ¤¤¤ëÀܳÍ׵᤬¤Ê¤¯¡¢ -¤«¤Ä¥½¥±¥Ã¥È¤¬ÈóÄä»ß¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤È¤­¤Ï¡¢ +キューに保留となっている接続要求がなく、 +かつソケットが非停止になっていないときは、 .BR accept () -¤ÏÀܳ¤¬È¯À¸¤¹¤ë¤Þ¤Ç¸Æ¤Ó½Ð¤·¸µ¤òÄä»ß (block) ¤¹¤ë¡£ -¥½¥±¥Ã¥È¤¬ÈóÄä»ß¤Ë¤Ê¤Ã¤Æ¤¤¤Æ¡¢ -ÂÔ¤Á¾õÂÖ¤ÎÀܳÍ׵᤬¥­¥å¡¼¤Ë̵¤¤¤È¤­¤Ï¡¢ +は接続が発生するまで呼び出し元を停止 (block) する。 +ソケットが非停止になっていて、 +待ち状態の接続要求がキューに無いときは、 .BR accept () -¤Ï¥¨¥é¡¼ +はエラー .B EAGAIN -¤« +か .B EWOULDBLOCK -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .PP -¥½¥±¥Ã¥È¤Ø¤ÎÀܳÅþÃå¤òÃΤë¤Ë¤Ï¡¢ +ソケットへの接続到着を知るには、 .BR select (2) -¤Þ¤¿¤Ï +または .BR poll (2) -¤òÍѤ¤¤ì¤Ð¤è¤¤¡£ -¿·¤·¤¤ÀܳÍ׵᤬Íè¤ë¤È¥½¥±¥Ã¥È¤ÏÆɤ߹þ¤ß²Äǽ¤Ë¤Ê¤ë¤Î¤Ç¡¢ -¤½¤¦¤·¤¿¤é +を用いればよい。 +新しい接続要求が来るとソケットは読み込み可能になるので、 +そうしたら .BR accept () -¤ò¸Æ¤ó¤Ç¤½¤ÎÀܳ¤ËÂФ¹¤ë¥½¥±¥Ã¥È¤ò¼èÆÀ¤¹¤ì¤Ð¤è¤¤¡£ -¤¢¤ë¤¤¤Ï¥½¥±¥Ã¥È¤ËÀßÄê¤ò¹Ô¤¤¡¢²¿¤é¤«¤Î¥¢¥¯¥·¥ç¥ó¤¬¤¢¤Ã¤¿¤È¤­¤Ë +を呼んでその接続に対するソケットを取得すればよい。 +あるいはソケットに設定を行い、何らかのアクションがあったときに .B SIGIO -¤òÇÛÁ÷ (deliver) ¤µ¤»¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£¾ÜºÙ¤Ï +を配送 (deliver) させるようにすることもできる。詳細は .BR socket (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -ÌÀ¼¨Åª¤ÊÀܳ³Îǧ (confirmation) ¤òɬÍפȤ¹¤ë¤è¤¦¤Ê¥×¥í¥È¥³¥ë -(DECNet ¤Ê¤É) ¤Ç¤Ï¡¢ +明示的な接続確認 (confirmation) を必要とするようなプロトコル +(DECNet など) では、 .BR accept () -¤Ïñ¤Ë¼¡¤ÎÀܳÍ×µá¤ò¥­¥å¡¼¤«¤é¼è¤ê½Ð¤¹¤À¤±¤Ç¤¢¤ê¡¢ -Àܳ³Îǧ¤Ï¹Ô¤ï¤Ê¤¤¤³¤È¤ËÃí°Õ¤»¤è¡£Àܳ³Îǧ¤Ï¡¢ -¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ¹¤ë -Ä̾ï¤ÎÆɤ߼è¤ê/½ñ¤­¹þ¤ß¤Ë¤è¤Ã¤Æ¤Ê¤µ¤ì¡¢ÀܳµñÈÝ (rejection) -¤Ï¿·¤·¤¤¥½¥±¥Ã¥È¤ò¥¯¥í¡¼¥º¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¤Ê¤µ¤ì¤ë¡£ -¸½ºß¤Î¤È¤³¤í¡¢ -Linux ¾å¤Ç¤³¤ì¤é¤Î¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤ò»ý¤Ä¤Î¤Ï DECNet ¤À¤±¤Ç¤¢¤ë¡£ +は単に次の接続要求をキューから取り出すだけであり、 +接続確認は行わないことに注意せよ。接続確認は、 +新しいファイル・ディスクリプタに対する +通常の読み取り/書き込みによってなされ、接続拒否 (rejection) +は新しいソケットをクローズすることによってなされる。 +現在のところ、 +Linux 上でこれらのセマンティクスを持つのは DECNet だけである。 .I flags -¤¬ 0 ¤Î¾ì¹ç¡¢ +が 0 の場合、 .BR accept4 () -¤Ï +は .BR accept () -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .I flags -¤Ë°Ê²¼¤ÎÃͤò¥Ó¥Ã¥ÈËè¤ÎÏÀÍýÏ (OR) ¤Ç»ØÄꤹ¤ë¤³¤È¤Ç¡¢ -°Û¤Ê¤ëÆ°ºî¤ò¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +に以下の値をビット毎の論理和 (OR) で指定することで、 +異なる動作をさせることができる。 .TP 16 .B SOCK_NONBLOCK -¿·¤·¤¯À¸À®¤µ¤ì¤ë¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò (open file description) ¤Î +新しく生成されるオープンファイル記述 (open file description) の .B O_NONBLOCK -¥Õ¥¡¥¤¥ë¥¹¥Æ¡¼¥¿¥¹¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤³¤È¤Ç¡¢ +ファイルステータスフラグをセットする。 +このフラグを使うことで、 .B O_NONBLOCK -¤ò¥»¥Ã¥È¤¹¤ë¤¿¤á¤Ë +をセットするために .BR fcntl (2) -¤òÄɲäǸƤӽФ¹É¬Íפ¬¤Ê¤¯¤Ê¤ë¡£ +を追加で呼び出す必要がなくなる。 .TP .B SOCK_CLOEXEC -¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ +新しいファイルディスクリプタに対して close-on-exec .RB ( FD_CLOEXEC ) -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬Ìò¤ËΩ¤ÄÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +フラグをセットする。 +このフラグが役に立つ理由については、 .BR open (2) -¤Î +の .B O_CLOEXEC -¥Õ¥é¥°¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï -¼õ¤±ÉÕ¤±¤¿¥½¥±¥Ã¥È¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ëÈóÉé¤ÎÀ°¿ôÃͤòÊÖ¤¹¡£ -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +フラグの説明を参照のこと。 +.SH 返り値 +成功した場合、これらのシステムコールは +受け付けたソケットのディスクリプタである非負の整数値を返す。 +エラーが発生した場合は \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SS ¥¨¥é¡¼½èÍý -Linux ¤Î +を適切に設定する。 +.SS エラー処理 +Linux の .BR accept () -(¤È +(と .BR accept4 ()) -¤Ï¡¢¿·¤·¤¤¥½¥±¥Ã¥È¤Ë¤ª¤±¤ë¡¢È¯À¸ºÑ¤ß¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¨¥é¡¼¤ò +は、新しいソケットにおける、発生済みのネットワークエラーを .BR accept () -¤«¤é¤Î¥¨¥é¡¼¥³¡¼¥É¤È¤·¤ÆÅϤ¹¡£ -¤³¤Î¿¶Éñ¤¤¤Ï BSD ¥½¥±¥Ã¥È¤Î¼ÂÁõ¤È¤Ï°Û¤Ê¤ë¡£ -¿®ÍêÀ­¤Î¹â¤¤Æ°ºî¤ò¹Ô¤¦¤¿¤á¤Ë¤Ï¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¥×¥í¥È¥³¥ë¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥Í¥Ã¥È¥ï¡¼¥¯¥¨¥é¡¼¤Î¸¡ÃΤò +からのエラーコードとして渡す。 +この振舞いは BSD ソケットの実装とは異なる。 +信頼性の高い動作を行うためには、 +アプリケーションはプロトコルで定義されているネットワークエラーの検知を .BR accept () -¤Î¤¢¤È¤Ë¹Ô¤¤¡¢¤½¤ì¤é¤Î¥¨¥é¡¼¤ò +のあとに行い、それらのエラーを .B EAGAIN -¤ÈƱ¤¸¤è¤¦¤Ë°·¤¤¡¢ºÆ»î¹Ô (retry) ¤ò¹Ô¤¦¤Ù¤­¤Ç¤¢¤ë¡£ -TCP/IP ¤Ç¤Ï¡¢°Ê²¼¤Î¥¨¥é¡¼¤¬³ºÅö¤¹¤ë: +と同じように扱い、再試行 (retry) を行うべきである。 +TCP/IP では、以下のエラーが該当する: .BR ENETDOWN , .BR EPROTO , .BR ENOPROTOOPT , @@ -227,186 +227,186 @@ TCP/IP .BR EHOSTUNREACH , .BR EOPNOTSUPP , .B ENETUNREACH -.SH ¥¨¥é¡¼ +.SH エラー .TP -.BR EAGAIN " ¤Þ¤¿¤Ï " EWOULDBLOCK +.BR EAGAIN " または " EWOULDBLOCK .\" Actually EAGAIN on Linux -¥½¥±¥Ã¥È¤¬ÈóÄä»ß¤Ë¤Ê¤Ã¤Æ¤¤¤Æ¡¢ -¤«¤Ä¼õÉÕ¤±ÂоݤÎÀܳ¤¬Â¸ºß¤·¤Ê¤¤¡£ -POSIX.1-2001 ¤Ï¡¢¤³¤Î¾ì¹ç¤Ë¤É¤Á¤é¤Î¥¨¥é¡¼¤òÊÖ¤¹¤³¤È¤âǧ¤á¤Æ¤ª¤ê¡¢ -¤³¤ì¤é 2 ¤Ä¤ÎÄê¿ô¤¬Æ±¤¸Ãͤò»ý¤Ä¤³¤È¤âµá¤á¤Æ¤¤¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢Î¾Êý¤Î²ÄǽÀ­¤ò -³Îǧ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +ソケットが非停止になっていて、 +かつ受付け対象の接続が存在しない。 +POSIX.1-2001 は、この場合にどちらのエラーを返すことも認めており、 +これら 2 つの定数が同じ値を持つことも求めていない。 +したがって、移植性が必要なアプリケーションでは、両方の可能性を +確認すべきである。 .TP .B EBADF -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÉÔÀµ¡£ +ディスクリプタが不正。 .TP .B ECONNABORTED -Àܳ¤¬Ãæ»ß¤µ¤ì¤¿¡£ +接続が中止された。 .TP .B EFAULT .I addr -°ú¤­¿ô¤¬¥æ¡¼¥¶¥¢¥É¥ì¥¹¶õ´Ö¤Î½ñ¤­¹þ¤ß²ÄǽÎΰè¤Ë¤Ê¤¤¡£ +引き数がユーザアドレス空間の書き込み可能領域にない。 .TP .B EINTR -Í­¸ú¤ÊÀܳ¤¬ÅþÃ夹¤ëÁ°¤ËÊ᪤µ¤ì¤¿¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤Æ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ÃæÃǤµ¤ì¤¿¡£ +有効な接続が到着する前に捕捉されたシグナルによって +システムコールが中断された。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL -¥½¥±¥Ã¥È¤¬ÀܳÂÔ¤Á¾õÂ֤ǤϤʤ¤¡£¤â¤·¤¯¤Ï¡¢ +ソケットが接続待ち状態ではない。もしくは、 .I addrlen -¤¬ÉÔÀµ¤Ç¤¢¤ë (Î㤨¤Ð¡¢Éé¤Î¾ì¹ç¤Ê¤É)¡£ +が不正である (例えば、負の場合など)。 .TP .B EINVAL .RB ( accept4 ()) .I flags -¤ËÉÔÀµ¤ÊÃͤ¬»ØÄꤵ¤ì¤Æ¤¤¤ë¡£ +に不正な値が指定されている。 .TP .B EMFILE -1¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¿ô¤Î¾å¸Â¤Ë㤷¤¿¡£ +1プロセスがオープンできるファイル・ディスクリプタ数の上限に達した。 .TP .B ENFILE -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ÎÁí¿ô¤¬¥·¥¹¥Æ¥àÁ´ÂΤξå¸Â¤Ë㤷¤¿¡£ +オープンされたファイルの総数がシステム全体の上限に達した。 .TP .BR ENOBUFS ", " ENOMEM -¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£ -¿¤¯¤Î¾ì¹ç¤Ï¡¢¥·¥¹¥Æ¥à¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¤ï¤±¤Ç¤Ï¤Ê¤¯¡¢ -¥½¥±¥Ã¥È¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ¤Ë¤è¤ë¥á¥â¥ê³ä¤êÅö¤Æ¤ÎÀ©¸Â¤Ç¤¢¤ë¡£ +メモリが足りない。 +多くの場合は、システムメモリが足りないわけではなく、 +ソケットバッファの大きさによるメモリ割り当ての制限である。 .TP .B ENOTSOCK -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¥½¥±¥Ã¥È¤Ç¤Ï¤Ê¤¯¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤ë¡£ +ディスクリプタはソケットではなくファイルを参照している。 .TP .B EOPNOTSUPP -»²¾È¤·¤Æ¤¤¤ë¥½¥±¥Ã¥È¤Î·¿¤¬ +参照しているソケットの型が .B SOCK_STREAM -¤Ç¤Ê¤¤¡£ +でない。 .TP .B EPROTO -¥×¥í¥È¥³¥ë¡¦¥¨¥é¡¼¡£ +プロトコル・エラー。 .PP -¾åµ­¤Ë²Ã¤¨¤Æ¡¢Linux ¤Î +上記に加えて、Linux の .BR accept () -¤Ï°Ê²¼¤Î¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë: +は以下のエラーで失敗する: .TP .B EPERM -¥Õ¥¡¥¤¥¢¥¦¥©¡¼¥ë¤Î¥ë¡¼¥ë¤Ë¤è¤êÀܳ¤¬¶Ø»ß¤µ¤ì¤¿¡£ +ファイアウォールのルールにより接続が禁止された。 .PP -¤³¤Î¾¤Ë¡¢¿·¤·¤¤¥½¥±¥Ã¥È¤ËÂФ¹¤ë¥Í¥Ã¥È¥ï¡¼¥¯¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¤³¤È¤â¤¢¤ë¡£ -¤³¤ì¤é¤Ï¤½¤ì¤¾¤ì¤Î¥×¥í¥È¥³¥ë¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤¤¤í¤¤¤í¤Ê Linux ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -°Ê²¼¤Ë¼¨¤¹¤è¤¦¤Ê¥¨¥é¡¼¤òÊÖ¤¹¤³¤È¤â¤¢¤ë¡£ +この他に、新しいソケットに対するネットワークエラーが返されることもある。 +これらはそれぞれのプロトコルで定義されている。 +いろいろな Linux カーネルでは、 +以下に示すようなエラーを返すこともある。 .BR ENOSR , .BR ESOCKTNOSUPPORT , .BR EPROTONOSUPPORT , .BR ETIMEDOUT . .B ERESTARTSYS -¤¬¥È¥ì¡¼¥¹¤ÎºÇÃæ¤Ë¸½¤ì¤ë¤³¤È¤â¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +がトレースの最中に現れることもある。 +.SH バージョン .BR accept4 () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 2.6.28 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.10 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH ½àµò +システムコールは Linux 2.6.28 以降で利用可能である。 +glibc でのサポートはバージョン 2.10 以降で利用可能である。 +.SH 準拠 .BR accept (): POSIX.1-2001, SVr4, 4.4BSD, .RB ( accept () -¤Ï 4.2BSD ¤Ç½é¤á¤Æ¼ÂÁõ¤µ¤ì¤¿). -.\" BSD ¤Î man ¥Ú¡¼¥¸¤Ë¤Ï¡¢ 5 ¤Ä¤Î¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤¦¤ë¤È½ñ¤«¤ì¤Æ¤¤¤ë -.\" (EBADF, ENOTSOCK, EOPNOTSUPP, EWOULDBLOCK, EFAULT)¡£ -.\" POSIX.1-2001 ¤Ç¤Ï¡¢ +は 4.2BSD で初めて実装された). +.\" BSD の man ページには、 5 つのエラーが返されうると書かれている +.\" (EBADF, ENOTSOCK, EOPNOTSUPP, EWOULDBLOCK, EFAULT)。 +.\" POSIX.1-2001 では、 .\" EAGAIN, EBADF, ECONNABORTED, EINTR, EINVAL, EMFILE, .\" ENFILE, ENOBUFS, ENOMEM, ENOTSOCK, EOPNOTSUPP, EPROTO, EWOULDBLOCK -.\" ¤¬¥¨¥é¡¼¤È¤·¤Æµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -.\" ¤µ¤é¤Ë¡¢SUSv2 ¤Ë¤Ï EFAULT, ENOSR ¤âµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +.\" がエラーとして記述されている。 +.\" さらに、SUSv2 には EFAULT, ENOSR も記述されている。 .BR accept4 () -¤ÏÈóɸ½à¤Î Linux ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ +は非標準の Linux による拡張である。 .LP -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR accept () -¤¬ÊÖ¤¹¿·¤·¤¤¥½¥±¥Ã¥È¤Ï listen ¤ò¹Ô¤Ã¤Æ¤¤¤ë¥½¥±¥Ã¥È¤Î -¥Õ¥¡¥¤¥ë¾õÂ֥ե饰 +が返す新しいソケットは listen を行っているソケットの +ファイル状態フラグ .RB ( O_NONBLOCK -¤ä +や .B O_ASYNC -¤Ê¤É) ¤ò·Ñ¾µ¡Ö¤·¤Ê¤¤¡×¡£ -¤³¤ÎÆ°ºî¤Ïɸ½àŪ¤Ê BSD ¥½¥±¥Ã¥È¤Î¼ÂÁõ¤È¤Ï°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ -.\" ¤¤¤¯¤Ä¤«¼Â¸³¤·¤¿¤È¤³¤í¤Ç¤Ï Tru64 5.1 ¤È HP-UX 11 ¤â -.\" ¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤ò·Ñ¾µ¤·¤Ê¤¤¤è¤¦¤Ç¤¢¤ë¡£ -- MTK Jun 05 -°Ü¿¢À­¤ò¹Íθ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤¬·Ñ¾µ¤µ¤ì¤ë¤«¤É¤¦¤«¤Ï -Á°Äó¤Ë¤»¤º¡¢¾ï¤Ë +など) を継承「しない」。 +この動作は標準的な BSD ソケットの実装とは異なっている。 +.\" いくつか実験したところでは Tru64 5.1 と HP-UX 11 も +.\" ファイル状態フラグを継承しないようである。 -- MTK Jun 05 +移植性を考慮したプログラムではファイル状態フラグが継承されるかどうかは +前提にせず、常に .BR accept () -¤¬ÊÖ¤·¤¿¥½¥±¥Ã¥È¤ËÂФ·¤ÆÁ´¤Æ¤ÎɬÍפʥե饰¤òÌÀ¼¨Åª¤ËÀßÄꤹ¤ë¤è¤¦¤Ë -¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +が返したソケットに対して全ての必要なフラグを明示的に設定するように +すべきである。 -.SH Ãí°Õ -POSIX.1-2001 ¤Ç¤Ï +.SH 注意 +POSIX.1-2001 では .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ïɬ¿Ü¤È¤µ¤ì¤Æ¤ª¤é¤º¡¢ -Linux ¤Ç¤Ï¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÏɬÍפǤϤʤ¤¡£ -¤·¤«¤·¡¢Îò»ËŪ¤Ë¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¼ÂÁõ (BSD ·Ï) ¤Ç¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬ -ɬÍפǤ¢¤ê¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤ò -¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤Î¤¬¸­ÌÀ¤Ç¤¢¤í¤¦¡£ +のインクルードは必須とされておらず、 +Linux ではこのヘッダファイルは必要ではない。 +しかし、歴史的には、いくつかの実装 (BSD ç³») でこのヘッダファイルが +必要であり、移植性が必要なアプリケーションではこのファイルを +インクルードするのが賢明であろう。 .B SIGIO -¤¬ÆϤ±¤é¤ì¤¿¸å¤ä¡¢ +が届けられた後や、 .BR select (2) -¤Þ¤¿¤Ï +または .BR poll (2) -¤¬Æɤ߹þ¤ß²Äǽ¥¤¥Ù¥ó¥È¤òÊÖ¤·¤¿¸å¤Ë¡¢ -ɬ¤º¤·¤âÂÔµ¡Ãæ¤ÎÀܳ¤¬¤¢¤ë¤È¤Ï¸Â¤é¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¤½¤ÎÀܳ¤Ï¡¢ +が読み込み可能イベントを返した後に、 +必ずしも待機中の接続があるとは限らない。 +なぜならその接続は、 .BR accept () -¤¬¸Æ¤Ð¤ì¤ëÁ°¤Ë¡¢ÈóƱ´üŪ¤Ê¥Í¥Ã¥È¥ï¡¼¥¯¥¨¥é¡¼¤ä -¾¤Î¥¹¥ì¥Ã¥É¤«¤é¸Æ¤Ð¤ì¤¿ (Ê̤Î) accept ¤Ë¤è¤Ã¤Æ -ºï½ü¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ -¤³¤Î¾ì¹ç¡¢¤½¤Î +が呼ばれる前に、非同期的なネットワークエラーや +他のスレッドから呼ばれた (別の) accept によって +削除されているかもしれないからである。 +この場合、その .BR accept () -¸Æ¤Ó½Ð¤·¤ÏÄä»ß (block) ¤·¡¢¼¡¤ÎÀܳ¤ÎÅþÃå¤òÂÔ¤Á¤Ä¤Å¤±¤ë¡£ +呼び出しは停止 (block) し、次の接続の到着を待ちつづける。 .BR accept () -¤ËÄä»ß¤ò¹Ô¤ï¤»¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï¡¢°ú¤­¿ô¤ËÅϤ¹¥½¥±¥Ã¥È +に停止を行わせないようにするには、引き数に渡すソケット .I sockfd -¤Ë +に .B O_NONBLOCK -¥Õ¥é¥°¤ò¥»¥Ã¥È¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë +フラグをセットしておく必要がある .RB ( socket (7) -¤ò¸«¤è)¡£ -.SS socklen_t ·¿ +を見よ)。 +.SS socklen_t 型 .BR accept () -¤ÎÂè 3 °ú¤­¿ô¤Ï¡¢¤â¤È¤â¤È \fIint *\fP ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤¿ -(libc4 ¤ä libc5, 4.x BSD, SunOS 4, SGI ¤Ê¤É¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¤½¤¦¤Ê¤Ã¤Æ¤¤¤ë)¡£ -POSIX.1g draft ɸ½à¤Ï¡¢ -¤³¤ì¤ò \fIsize_t *\fP ¤ËÊѹ¹¤·¤è¤¦¤È¤·¡¢SunOS 5 ¤Ç¤Ï¤½¤¦Àë¸À¤µ¤ì¤Æ¤¤¤ë¡£ -¸å¤Ë POSIX drafts ¤Ë¤Ï \fIsocklen_t *\fP ¤¬´Þ¤Þ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¡¢ -Single UNIX Specification ¤ä glibc2 ¤Ç¤Ï¤³¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ -Linus Torvald ¤Îȯ¸À¤ò°úÍѤ¹¤ë: +の第 3 引き数は、もともと \fIint *\fP と宣言されていた +(libc4 や libc5, 4.x BSD, SunOS 4, SGI など多くのシステムではそうなっている)。 +POSIX.1g draft 標準は、 +これを \fIsize_t *\fP に変更しようとし、SunOS 5 ではそう宣言されている。 +後に POSIX drafts には \fIsocklen_t *\fP が含まれるようになり、 +Single UNIX Specification や glibc2 ではこのように宣言されるようになった。 +Linus Torvald の発言を引用する: .\" .I fails: only italicizes a single line -¡Ö¤Þ¤È¤â¤Ê¥é¥¤¥Ö¥é¥ê¤òºî¤ê¤¿¤±¤ì¤Ð¡¢ "socklen_t" -¤Î¥µ¥¤¥º¤Ï int ¤ÈƱ¤¸¤Ë¤·¤Ê¤­¤ã¤Ê¤é¤Ê¤¤¡£ -¤µ¤â¤Ê¤¤¤È BSD ¥½¥±¥Ã¥ÈÁؤòÇ˲õ¤¹¤ë¤³¤È¤Ë¤Ê¤Ã¤Á¤ã¤¦¡£ -POSIX ¤ÏºÇ½é¤³¤¤¤Ä¤ò size_t ¤Ë¤·¤¿¤ó¤Ç¡¢ -¤Ü¤¯¤ÏÈà¤é¤Ëʸ¶ç¤ò¤¬¤Ê¤ê¤¿¤Æ¤¿ -(¿ʬ¤½¤¦¤¤¤¦¿Í¤Ï¾¤Ë¤â¤¤¤¿¤È»×¤¦¡£Â¿¤¯¤Ï¤Ê¤«¤Ã¤¿¤è¤¦¤À¤±¤É)¡£ -¤³¤¤¤Ä¤ò size_t ¤Ë¤¹¤ë¤Î¤Ï´°Á´¤Ë¤¤¤«¤ì¤Æ¤ë¡£ -Î㤨¤Ð 64 ¥Ó¥Ã¥È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢ -size_t ¤¬ "int" ¤ÈƱ¤¸¥µ¥¤¥º¤À¤Ê¤ó¤Æ¤³¤È¤Ï¤Û¤È¤ó¤É¤Ê¤¤¤«¤é¤Í¡£ -¤³¤Î¥µ¥¤¥º¤Ï "int" ¤È Ʊ¤¸¤Ç¤Ê¤­¤ã¡Ø¥À¥á¡Ù¤Ê¤ó¤À¡£ -BSD ¥½¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ã¤Æ¤¤¤¦¤Î¤Ï¤½¤¦¤¤¤¦¤â¤Î¤Ê¤ó¤À¤«¤é¡£ -¤Þ¤¢¤È¤â¤«¤¯ POSIX ¤Î¿Í¤¿¤Á¤â¡¢ -"socklen_t" ¤òºî¤ë¤È¤¤¤¦²ò·èºö¤ò¤Ê¤ó¤È¤«¤Ò¤Í¤ê½Ð¤·¤¿¡£ -¤½¤â¤½¤âºÇ½é¤«¤éÊü¤Ã¤Æ¤ª¤±¤ÐÎɤ«¤Ã¤¿¤ó¤À¤¬¡¢ -¤¤¤¸¤Ã¤Á¤ã¤Ã¤¿°Ê¾å¡¢ -̾Á°ÉÕ¤­¤Î·¿¤ò»ý¤¿¤»¤Ê¤­¤ã¤Ê¤é¤Ê¤¤¡¢¤È»×¤Ã¤¿¤ß¤¿¤¤¤À¤Í¡£ -¤Ê¤ó¤Ç¤«¤Ï¤ï¤«¤ó¤Ê¤¤¤±¤É -(¤­¤Ã¤ÈºÇ½é¤Ë¤ä¤Ã¤Á¤Þ¤Ã¤¿Çϼ¯¤Ê´Ö°ã¤¤¤Ç´é¤ò¤Ä¤Ö¤·¤¿¤¯¤Ê¤«¤Ã¤¿¤«¤é¡¢ -¤³¤Ã¤½¤ê̾Á°¤òÉÕ¤±Âؤ¨¤Æ¼«Ê¬¤¿¤Á¤ÎÂ缺ÇÔ¤ò¤´¤Þ¤«¤½¤¦¤È¤·¤¿¤ó¤À¤í¤¦)¡£¡× -.SH Îã +「まともなライブラリを作りたければ、 "socklen_t" +のサイズは int と同じにしなきゃならない。 +さもないと BSD ソケット層を破壊することになっちゃう。 +POSIX は最初こいつを size_t にしたんで、 +ぼくは彼らに文句をがなりたてた +(多分そういう人は他にもいたと思う。多くはなかったようだけど)。 +こいつを size_t にするのは完全にいかれてる。 +例えば 64 ビットアーキテクチャでは、 +size_t が "int" と同じサイズだなんてことはほとんどないからね。 +このサイズは "int" と 同じでなきゃ『ダメ』なんだ。 +BSD ソケットインターフェースっていうのはそういうものなんだから。 +まあともかく POSIX の人たちも、 +"socklen_t" を作るという解決策をなんとかひねり出した。 +そもそも最初から放っておけば良かったんだが、 +いじっちゃった以上、 +名前付きの型を持たせなきゃならない、と思ったみたいだね。 +なんでかはわかんないけど +(きっと最初にやっちまった馬鹿な間違いで顔をつぶしたくなかったから、 +こっそり名前を付け替えて自分たちの大失敗をごまかそうとしたんだろう)。」 +.SH 例 .BR bind (2) -»²¾È¡£ -.SH ´ØÏ¢¹àÌÜ +参照。 +.SH 関連項目 .BR bind (2), .BR connect (2), .BR listen (2), diff --git a/release/man2/access.2 b/release/man2/access.2 index 59b80ac5..58a45c43 100644 --- a/release/man2/access.2 +++ b/release/man2/access.2 @@ -50,220 +50,220 @@ .\" Updated 2007-05-01, Akihiro MOTOKI, LDP v2.46 .\" Updated 2007-09-04, Akihiro MOTOKI, LDP v2.64 .\" -.\"WORD: permission ¥¢¥¯¥»¥¹¸¢ -.\"WORD: privileges ¸¢¸Â -.\"WORD: user ¥æ¡¼¥¶¡¼ -.\"WORD: file system ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à -.\"WORD: object ¥ª¥Ö¥¸¥§¥¯¥È -.\"WORD: symbolic link ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: refer »²¾È¤¹¤ë -.\"WORD: mask ¥Þ¥¹¥¯ -.\"WORD: path ¥Ñ¥¹ -.\"WORD: effective user-ID ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: real user-ID ¼Â¥æ¡¼¥¶¡¼ID -.\"WORD: uid ¥æ¡¼¥¶¡¼ ID -.\"WORD: gid ¥°¥ë¡¼¥× ID -.\"WORD: directory ¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: call ¥³¡¼¥ë -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: memory ¥á¥â¥ê -.\"WORD: dangling »²¾ÈÀè¤Î¤Ê¤¤ +.\"WORD: permission アクセス権 +.\"WORD: privileges 権限 +.\"WORD: user ユーザー +.\"WORD: file system ファイル・システム +.\"WORD: object オブジェクト +.\"WORD: symbolic link シンボリック・リンク +.\"WORD: refer 参照する +.\"WORD: mask マスク +.\"WORD: path パス +.\"WORD: effective user-ID 実効ユーザーID +.\"WORD: real user-ID 実ユーザーID +.\"WORD: uid ユーザー ID +.\"WORD: gid グループ ID +.\"WORD: directory ディレクトリ +.\"WORD: call コール +.\"WORD: kernel カーネル +.\"WORD: memory メモリ +.\"WORD: dangling 参照先のない .\" .TH ACCESS 2 2007-07-10 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -access \- ¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¼Â¥æ¡¼¥¶¡¼¤Ç¤Î¥¢¥¯¥»¥¹¸¢¤ò¥Á¥§¥Ã¥¯¤¹¤ë -.SH ½ñ¼° +.SH 名前 +access \- ファイルに対する実ユーザーでのアクセス権をチェックする +.SH 書式 .nf .B #include .sp .BI "int access(const char *" pathname ", int " mode ); .fi -.SH ÀâÌÀ +.SH 説明 .BR access () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬¥Õ¥¡¥¤¥ë +は、呼び出し元プロセスがファイル .I pathname -¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ +にアクセスできるかどうかをチェックする。 .I pathname -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Î¾ì¹ç¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤ÏŸ³«¤µ¤ì¤ë¡£ +がシンボリック・リンクの場合、シンボリック・リンクは展開される。 .\" F_OK is defined as 0 on every system that I know of. .I mode -¤Ï¥Á¥§¥Ã¥¯¤ò¹Ô¤¦¥¢¥¯¥»¥¹¸¢¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¡¢¤½¤ÎÃÍ¤Ï -.BR F_OK ¡¢ -.\" »ä¤¬ÃΤäƤ¤¤ë¤¹¤Ù¤Æ¤Î¥·¥¹¥Æ¥à¤Ç F_OK ¤Ï 0 ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤â¤·¤¯¤Ï +はチェックを行うアクセス権を指定するもので、その値は +.BR F_OK 、 +.\" 私が知っているすべてのシステムで F_OK は 0 に定義されている。 +もしくは .BR R_OK ", " W_OK ", " X_OK -¤Î 1¸Ä°Ê¾å¤Î¥Ó¥Ã¥Èñ°Ì¤ÎÏÀÍýϤ«¤é¹½À®¤µ¤ì¤ë¥Þ¥¹¥¯¤Ç¤¢¤ë¡£ +の 1個以上のビット単位の論理和から構成されるマスクである。 .B F_OK -¤Ï¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¤«¤É¤¦¤«¤Î¤ß¤ò¸¡ºº¤¹¤ë¡£ +はファイルが存在するかどうかのみを検査する。 .BR R_OK ", " W_OK ", " X_OK -¤Ï¡¢¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Æ¡¢¤½¤ì¤¾¤ìÆɤ߹þ¤ß¡¢½ñ¤­¹þ¤ß¡¢¼Â¹Ô¤Îµö²Ä¤¬¤¢¤ë¤« -¤ò¸¡ºº¤¹¤ë¡£ +は、ファイルが存在して、それぞれ読み込み、書き込み、実行の許可があるか +を検査する。 -¥Á¥§¥Ã¥¯¤Ï¡¢¼ÂºÝ¤ËÁàºî¤¬¹Ô¤ï¤ì¤ëºÝ¤Ë»ÈÍѤµ¤ì¤ë¼Â¸ú (effective) ID ¤Ç¤Ê¤¯¡¢ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -.I "¼Â (real)" -UID ¤È -.I "¼Â (real)" -GID ¤ò»È¤Ã¤Æ¹Ô¤ï¤ì¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢set-user-ID ¥×¥í¥°¥é¥à¤Ç¡¢¥×¥í¥°¥é¥à¤òµ¯Æ°¤¹¤ë¥æ¡¼¥¶¤Î¸¢¸Â¤ò -´Êñ¤Ë·èÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +チェックは、実際に操作が行われる際に使用される実効 (effective) ID でなく、 +呼び出し元プロセスの +.I "実 (real)" +UID と +.I "実 (real)" +GID を使って行われる。 +これにより、set-user-ID プログラムで、プログラムを起動するユーザの権限を +簡単に決定することができる。 -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬Æø¢¥×¥í¥»¥¹ (¤Ä¤Þ¤ê¡¢¥×¥í¥»¥¹¤Î¼Â UID ¤¬ 0) ¤Î¾ì¹ç¡¢ -Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë +呼び出し元プロセスが特権プロセス (つまり、プロセスの実 UID が 0) の場合、 +通常のファイルに対する .B X_OK -¤Î¥Á¥§¥Ã¥¯¤Ï¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¡¢¥°¥ë¡¼¥×¡¢Â¾¿Í¤Î¤¤¤º¤ì¤«¤Î -¼Â¹Ôµö²Ä¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ì¤ÐÀ®¸ù¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç(Á´¤Æ¤ÎÍ׵ᤵ¤ì¤¿µö²Ä¤¬ÆÀ¤é¤ì¤¿¤é)¡¢¥¼¥í¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç (¾¯¤Ê¤¯¤È¤â°ì¤Ä¤Î +のチェックは、そのファイルの所有者、グループ、他人のいずれかの +実行許可が有効になっていれば成功する。 +.SH 返り値 +成功した場合(全ての要求された許可が得られたら)、ゼロが返される。 +エラーの場合 (少なくとも一つの .I mode -¤ÇÍ׵ᤵ¤ì¤¿µö²Ä¤¬¤Ê¤«¤Ã¤¿¾ì¹ç¤ä¡¢Â¾¤Î¥¨¥é¡¼¤¬µ¯¤­¤¿¾ì¹ç)¡¢ -\-1 ¤¬ÊÖ¤µ¤ì¡¢ +で要求された許可がなかった場合や、他のエラーが起きた場合)、 +\-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .BR access () -¤Ï°Ê²¼¤Î¾ì¹ç¤Ë¼ºÇÔ¤¹¤ë¡£ +は以下の場合に失敗する。 .TP .B EACCES -Í׵ᤵ¤ì¤¿¥¢¥¯¥»¥¹¤Ï -¤½¤Î¥Õ¥¡¥¤¥ë¼«¿È¤ËµñÈݤµ¤ì¤¿¤« +要求されたアクセスは +そのファイル自身に拒否されたか .I pathname -¤Ø»ê¤ë¤Þ¤Ç¥Ç¥£¥ì¥¯¥È¥ê¤Î¤¤¤º¤ì¤«¤ËÂФ¹¤ë¸¡º÷µö²Ä -(search permission) ¤¬ÆÀ¤é¤ì¤Ê¤«¤Ã¤¿¡£ +へ至るまでディレクトリのいずれかに対する検索許可 +(search permission) が得られなかった。 .RB ( path_resolution (7) -¤â»²¾È¤Î¤³¤È) +も参照のこと) .TP .B ELOOP .I pathname -¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ +を解決する際に遭遇したシンボリック・リンクが多過ぎる。 .TP .B ENAMETOOLONG .I pathname -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENOENT .I pathname -¤ò¹½À®¤¹¤ë¥Ñ¥¹¤Î¤¤¤º¤ì¤«¤¬¡¢Â¸ºß¤·¤Ê¤¤¤«¡¢ -»²¾ÈÀè¤Î¤Ê¤¤ (dangling) ¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +を構成するパスのいずれかが、存在しないか、 +参照先のない (dangling) シンボリックリンクになっている。 .TP .B ENOTDIR .I pathname -¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬¡¢¼ÂºÝ¤Ë¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +のディレクトリ部分が、実際にはディレクトリでない。 .TP .B EROFS -Æɤ߹þ¤ßÀìÍÑ (read-only) ¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ËÂФ·¤Æ½ñ¤­¹þ¤ßµö²Ä¤ò -Í׵ᤷ¤¿¡£ +読み込み専用 (read-only) のファイル・システムに対して書き込み許可を +要求した。 .PP .BR access () -¤Ï°Ê²¼¤ÎÍýͳ¤Ë¤è¤ê¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ë¡£ +は以下の理由により失敗することがある。 .TP .B EFAULT .I pathname -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がアクセス可能なアドレス空間の外を指している。 .TP .B EINVAL .I mode -¤ËÉÔÀµ¤ÊÃͤ¬»ØÄꤵ¤ì¤¿¡£ +に不正な値が指定された。 .TP .B EIO -I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +I/O エラーが発生した。 .TP .B ENOMEM -¥«¡¼¥Í¥ë¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +カーネルに十分なメモリがない。 .TP .B ETXTBSY -¼Â¹ÔÃæ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ½ñ¤­¹þ¤ß¤òÍ׵ᤷ¤¿¡£ -.SH ½àµò +実行中のファイルに対して書き込みを要求した。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .PP -.BR ·Ù¹ð : -¤¢¤ë¥æ¡¼¥¶¤¬¡¢Î㤨¤Ð +.BR 警告 : +あるユーザが、例えば .BR open (2) -¤Ë¤è¤ë¥¢¥¯¥»¥¹¤¬²Äǽ¤«¤É¤¦¤«¤ò¡¢(¼ÂºÝ¤Ë¹Ô¤¦Á°¤Ë) +によるアクセスが可能かどうかを、(実際に行う前に) .BR access () -¤ò»È¤Ã¤Æ¥Á¥§¥Ã¥¯¤¹¤ë¤Î¤Ï¡¢¥»¥­¥å¥ê¥Æ¥£¥Û¡¼¥ë¤Î¸¶°ø¤Ë¤Ê¤ë¡£ -¤Ê¤¼¤Ê¤é¥Á¥§¥Ã¥¯¤ò¤·¤Æ¤«¤é -¼ÂºÝ¤Ë¥Õ¥¡¥¤¥ë¤Î¥ª¡¼¥×¥óÁàºî¤ò¤¹¤ë´Ö¤Îû¤¤´Ö³Ö¤ò°­ÍѤǤ­¤ë¤«¤é¤Ç¤¢¤ë¡£ -.BR ¤³¤ÎÍýͳ¤¬¤¢¤ë¤Î¤Ç¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤¦¤Î¤ÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +を使ってチェックするのは、セキュリティホールの原因になる。 +なぜならチェックをしてから +実際にファイルのオープン操作をする間の短い間隔を悪用できるからである。 +.BR この理由があるので、このシステムコールを使うのは避けるべきである。 .PP .I mode -¤Ç»ØÄꤵ¤ì¤¿¥¢¥¯¥»¥¹¼ïÊ̤Τ¤¤º¤ì¤«°ì¤Ä¤Ç¤âµñÈݤµ¤ì¤ë¤È¡¢ -¤¿¤È¤¨ +で指定されたアクセス種別のいずれか一つでも拒否されると、 +たとえ .I mode -¤Ç»ØÄꤵ¤ì¤¿Â¾¤Î¥¢¥¯¥»¥¹¼ïÊ̤¬µö²Ä¤µ¤ì¤¿¤È¤·¤Æ¤â¡¢ +で指定された他のアクセス種別が許可されたとしても、 .BR access () -¤Ï¥¨¥é¡¼¤òÊÖ¤¹¡£ +はエラーを返す。 .PP -POSIX.1-2001 ¤Ç¤Ï¡¢ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬Å¬ÀÚ¤ÊÆø¢¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç -(¤Ä¤Þ¤ê¡¢¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Î¾ì¹ç)¡¢ -¤¿¤È¤¨¥Õ¥¡¥¤¥ë¤Î¼Â¹Ôµö²Ä¥Ó¥Ã¥È¤¬Á´¤¯¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¯¤Æ¤â +POSIX.1-2001 では、 +呼び出し元プロセスが適切な特権を持っている場合 +(つまり、スーパーユーザの場合)、 +たとえファイルの実行許可ビットが全くセットされていなくても .B X_OK -¤Î¥Á¥§¥Ã¥¯¤È¤·¤ÆÀ®¸ù¤òÊÖ¤¹¼ÂÁõ¤¬Ç§¤á¤é¤ì¤Æ¤¤¤ë¡£ -.\" HPU-UX 11 ¤È Tru64 5.1 ¤Ï¤³¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -Linux ¤Ï¤³¤Î¤è¤¦¤Ë¤Ï¤Ê¤Ã¤Æ¤¤¤Ê¤¤¡£ +のチェックとして成功を返す実装が認められている。 +.\" HPU-UX 11 と Tru64 5.1 はこのようになっている。 +Linux はこのようにはなっていない。 .PP .I pathname -¤Î¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤ò¹½À®¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ÎÁ´¤Æ¤ËÂФ·¤Æ -¸¡º÷¥¢¥¯¥»¥¹ (¤¹¤Ê¤ï¤Á¡¢¼Â¹Ô¥¢¥¯¥»¥¹) ¤¬µö²Ä¤µ¤ì¤¿¾ì¹ç¤Ë¤Î¤ß¡¢ -¥Õ¥¡¥¤¥ë¤Ï¥¢¥¯¥»¥¹²Äǽ¤È¤Ê¤ë¡£ -¤¤¤º¤ì¤«¤Î¥Ç¥£¥ì¥¯¥È¥ê¤¬¥¢¥¯¥»¥¹ÉԲĤξì¹ç¡¢ -¥Õ¥¡¥¤¥ë¼«¿È¤Î¥¢¥¯¥»¥¹µö²Ä¤Ë´Ø¤ï¤é¤º¡¢ +のプレフィックスを構成するディレクトリの全てに対して +検索アクセス (すなわち、実行アクセス) が許可された場合にのみ、 +ファイルはアクセス可能となる。 +いずれかのディレクトリがアクセス不可の場合、 +ファイル自身のアクセス許可に関わらず、 .BR access () -¤Ï¼ºÇÔ¤¹¤ë¡£ +は失敗する。 .PP -¥¢¥¯¥»¥¹¡¦¥Ó¥Ã¥È¤Î¤ß¤¬¥Á¥§¥Ã¥¯¤µ¤ì¡¢¥Õ¥¡¥¤¥ë¤Î¼ïÎà¤äÆâÍƤϥÁ¥§¥Ã¥¯¤µ¤ì¤Ê¤¤¡£ -½¾¤Ã¤Æ¡¢¥Ç¥£¥ì¥¯¥È¥ê¤¬½ñ¤­¹þ¤ß²Äǽ¤È¤Ê¤Ã¤¿¾ì¹ç¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ë -¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¤³¤È¤¬²Äǽ¤Ê¤³¤È¤ò°ÕÌ£¤¹¤ë¤Î¤Ç¤¢¤ê¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ë -¥Õ¥¡¥¤¥ë¤È¤·¤Æ½ñ¤­¹þ¤à¤³¤È¤¬¤Ç¤­¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -ƱÍÍ¤Ë DOS ¤Î¥Õ¥¡¥¤¥ë¤Ï¡Ö¼Â¹Ô²Äǽ¡×¤ÈȽÃǤµ¤ì¤ë¤¬¡¢ +アクセス・ビットのみがチェックされ、ファイルの種類や内容はチェックされない。 +従って、ディレクトリが書き込み可能となった場合は、ディレクトリに +ファイルを作成することが可能なことを意味するのであり、ディレクトリに +ファイルとして書き込むことができるわけではない。 +同様に DOS のファイルは「実行可能」と判断されるが、 .BR execve (2) -¥³¡¼¥ë¤Ï¼ºÇÔ¤¹¤ë¤À¤í¤¦¡£ +コールは失敗するだろう。 .PP .BR access () -¤Ï¡¢ UID ¥Þ¥Ã¥Ô¥ó¥°¤ò»ÈÍѤ·¤¿ NFS ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ç¤ÏÀµ¾ï¤Ë -µ¡Ç½¤·¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£¤Ê¤¼¤Ê¤é¤Ð UID ¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ï¥µ¡¼¥Ð¡¼¤Ç -¹Ô¤Ê¤ï¤ì¡¢¸¢Íø¤Î¥Á¥§¥Ã¥¯¤ò¤¹¤ë¥¯¥é¥¤¥¢¥ó¥È¤Ë¤Ï¸«¤¨¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ -.SH ¥Ð¥° -¥Ð¡¼¥¸¥ç¥ó 2.4 (¤È¤½¤ì°ÊÁ°) ¤Î¥«¡¼¥Í¥ë¤Ë¤Ï¡¢¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ç¤Î +は、 UID マッピングを使用した NFS ファイル・システムでは正常に +機能しないかもしれない。なぜならば UID のマッピングはサーバーで +行なわれ、権利のチェックをするクライアントには見えないからである。 +.SH バグ +バージョン 2.4 (とそれ以前) のカーネルには、スーパーユーザでの .B X_OK -¤Î¥Á¥§¥Ã¥¯¤Î°·¤¤¤Ë´ñ̯¤ÊÅÀ¤¬¤¢¤ë¡£ -¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤Ç -(¥æ¡¼¥¶¡¢¥°¥ë¡¼¥×¡¢Â¾¿Í¤Î) Á´¤Æ¤Î¥«¥Æ¥´¥ê¤Ë¤Ä¤¤¤Æ -¼Â¹Ôµö²Ä¤¬¤Ê¤¤¾ì¹ç¡¢ +のチェックの扱いに奇妙な点がある。 +ディレクトリ以外のファイルで +(ユーザ、グループ、他人の) 全てのカテゴリについて +実行許可がない場合、 .BR access () -¤Î¥Á¥§¥Ã¥¯¤Ç \-1 ¤¬ÊÖ¤ë¤Î¤Ï +のチェックで \-1 が返るのは .I mode -¤Ë +に .B X_OK -¤À¤±¤¬»ØÄꤵ¤ì¤¿¤È¤­¤À¤±¤Ç¤¢¤ê +だけが指定されたときだけであり .I mode -¤Ë +に .B R_OK -¤ä +や .B W_OK -¤¬°ì½ï¤Ë»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï +が一緒に指定された場合には .BR access () -¤Ï 0 ¤òÊÖ¤¹¡£ -.\" ¤³¤ÎµóÆ°¤Ï¼ÂÁõ»þ¤Î»ö¸Î¤À¤Ã¤¿¤è¤¦¤Ç¤¢¤ë¡£ -(¥Ð¡¼¥¸¥ç¥ó 2.6.3 °ÊÁ°¤Î) ½é´ü¤Î 2.6 ·Ï¤Î¥«¡¼¥Í¥ë¤â -2.4 ·Ï¤Î¥«¡¼¥Í¥ë¤ÈƱÍͤÎÆ°ºî¤ò¤¹¤ë¡£ +は 0 を返す。 +.\" この挙動は実装時の事故だったようである。 +(バージョン 2.6.3 以前の) 初期の 2.6 系のカーネルも +2.4 系のカーネルと同様の動作をする。 -2.6.20 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò +2.6.20 より前のカーネルでは、 +ファイルが存在するファイルシステムを .BR mount (2) -¤¹¤ëºÝ¤Ë»ØÄꤵ¤ì¤¿ +する際に指定された .B MS_NOEXEC -¥Õ¥é¥°¤Î¸ú²Ì¤ò¡¢ +フラグの効果を、 .BR access () -¤Ï̵»ë¤·¤Æ¤¤¤¿¡£ -¥«¡¼¥Í¥ë 2.6.20 °Ê¹ß¤Ç¤Ï¡¢ +は無視していた。 +カーネル 2.6.20 以降では、 .BR access () -¤Ï¤³¤Î¥Õ¥é¥°¤ò¹Íθ¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +はこのフラグを考慮するようになっている。 +.SH 関連項目 .BR chmod (2), .BR chown (2), .BR faccessat (2), diff --git a/release/man2/acct.2 b/release/man2/acct.2 index 41c1f8e0..45769857 100644 --- a/release/man2/acct.2 +++ b/release/man2/acct.2 @@ -38,13 +38,13 @@ .\" Updated and Modified 2004-12-28, Yuichi SATO .\" Updated 2008-08-04, Akihiro MOTOKI .\" -.\"WORD: account ¥¢¥«¥¦¥ó¥È -.\"WORD: process ¥×¥í¥»¥¹ +.\"WORD: account アカウント +.\"WORD: process プロセス .\" .TH ACCT 2 2008-06-16 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -acct \- ¥×¥í¥»¥¹¡¦¥¢¥«¥¦¥ó¥È¤Î¥ª¥ó¤È¥ª¥Õ¤òÀڤ괹¤¨¤ë -.SH ½ñ¼° +.SH 名前 +acct \- プロセス・アカウントのオンとオフを切り換える +.SH 書式 .ad l .nf .B #include @@ -54,107 +54,107 @@ acct \- .ad b .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR acct (): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) -.SH ÀâÌÀ +.SH 説明 .BR acct () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¥×¥í¥»¥¹¡¦¥¢¥«¥¦¥ó¥È¤ÎÍ­¸ú¡¦Ìµ¸ú¤òÀÚ¤êÂؤ¨¤ë¡£ -´û¸¤Î¥Õ¥¡¥¤¥ë¤Î̾Á°¤ò°ú¤­¿ô¤Ë»ØÄꤷ¤Æ¸Æ¤Ó½Ð¤µ¤ì¤¿¤é¡¢ -¥¢¥«¥¦¥ó¥È (account) ¤¬Í­¸ú¤Ë¤Ê¤ê¡¢ -½ªÎ»¤·¤¿¥×¥í¥»¥¹¤Îµ­Ï¿¤¬ \fIfilename\fP ¤ËÄɵ­¤µ¤ì¤ë¡£ -NULL ¤ò°ú¤­¿ô¤È¤·¤Æ¸Æ¤Ó½Ð¤µ¤ì¤¿¤é¥¢¥«¥¦¥ó¥È¤ò¥ª¥Õ¤Ë¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +システムコールは、プロセス・アカウントの有効・無効を切り替える。 +既存のファイルの名前を引き数に指定して呼び出されたら、 +アカウント (account) が有効になり、 +終了したプロセスの記録が \fIfilename\fP に追記される。 +NULL を引き数として呼び出されたらアカウントをオフにする。 +.SH 返り値 +成功した場合は 0 が返される。エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EACCES -»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤­¹þ¤ßµö²Ä¤¬¤Ê¤¯¡¢½ñ¤­¹þ¤ß¤¬µñÈݤµ¤ì¤¿¡£ +指定したファイルへの書き込み許可がなく、書き込みが拒否された。 .TP .B EACCES -»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤­¹þ¤ßµö²Ä¤¬¤Ê¤¯¡¢½ñ¤­¹þ¤ß¤¬µñÈݤµ¤ì¤¿¡£ -¤Þ¤¿¤Ï +指定したファイルへの書き込み許可がなく、書き込みが拒否された。 +または .I filename -¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤Î²¿¤ì¤«¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¸¡º÷µö²Ä¤¬¤Ê¤¯µñÈݤµ¤ì¤¿ +のディレクトリ部分の何れかのディレクトリに検索許可がなく拒否された .RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È)¡£ -¤Þ¤¿¤Ï +も参照すること)。 +または .I filename -¤¬Ä̾ï (regular) ¤Î¥Õ¥¡¥¤¥ë¤Ç¤Ê¤¤¡£ +が通常 (regular) のファイルでない。 .TP .B EFAULT -¥¢¥¯¥»¥¹¤Ç¤­¤ë¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò +アクセスできるアドレス空間の外を .I filename -¤¬»Ø¤·¤Æ¤¤¤ë¡£ +が指している。 .TP .B EIO .I filename -¤Ø¤Î½ñ¤­¹þ¤ß¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +への書き込みにエラーが発生した。 .TP .B EISDIR .I filename -¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¡£ +がディレクトリである。 .TP .B ELOOP .I filename -¤Î¼ÂÂΤˤ¿¤É¤êÃ夯¤Þ¤Ç¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¿ô¤¬Â¿¤¹¤®¤ë¡£ +の実体にたどり着くまでのシンボリックリンクの数が多すぎる。 .TP .B ENAMETOOLONG .I filename -¤¬Ä¹¤¹¤®¤ë¡£ +が長すぎる。 .TP .B ENFILE -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ÎÁí¿ô¤¬¥·¥¹¥Æ¥àÀ©¸Â¤Ë㤷¤¿¡£ +オープンされたファイルの総数がシステム制限に達した。 .TP .B ENOENT -»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ +指定されたファイルが存在しない。 .TP .B ENOMEM -¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£ +メモリが足りない。 .TP .B ENOSYS -¥«¡¼¥Í¥ë¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤¿»þ¤Ë BSD ¥×¥í¥»¥¹¡¦¥¢¥«¥¦¥ó¥È¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¡£ -¤³¤Îµ¡Ç½¤Ï¥«¡¼¥Í¥ë¤Î¥³¥ó¥Õ¥£¥°¤Î +カーネルをコンパイルした時に BSD プロセス・アカウントが有効になっていない。 +この機能はカーネルのコンフィグの .B CONFIG_BSD_PROCESS_ACCT -¥Ñ¥é¥á¡¼¥¿¤Ë¤è¤Ã¤ÆÀ©¸æ¤µ¤ì¤ë¡£ +パラメータによって制御される。 .TP .B ENOTDIR .I filename -¤ÎÃæ¤Ç¥Ç¥£¥ì¥¯¥È¥ê¤·¤Æ°·¤ï¤ì¤Æ¤¤¤ëÍ×ÁǤ¬¡¢ -¼ÂºÝ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +の中でディレクトリして扱われている要素が、 +実際はディレクトリでない。 .TP .B EPERM -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ë¤Ï¥×¥í¥»¥¹¡¦¥¢¥«¥¦¥ó¥È¤òÍ­¸ú¤Ë¤¹¤ë¤Î¤Ë½½Ê¬¤ÊÆø¢¤¬¤Ê¤¤¡£ -Linux ¤Ç¤Ï +呼び出したプロセスにはプロセス・アカウントを有効にするのに十分な特権がない。 +Linux では .B CAP_SYS_PACCT -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティ (capability) が必要である。 .TP .B EROFS -Æɤ߹þ¤ß¤À¤±¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î¥Õ¥¡¥¤¥ë¤ò +読み込みだけのファイルシステム上のファイルを .I filename -¤¬»²¾È¤·¤Æ¤¤¤ë¡£ +が参照している。 .TP .B EUSERS -»ÈÍѲÄǽ¤Ê¥Õ¥¡¥¤¥ë¹½Â¤ÂΤ¬¤Ê¤¤¤«¡¢¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£ -.SH ½àµò -SVr4, 4.3BSD (POSIX ¤Ç¤Ï¤Ê¤¤)¡£ -.\" SVr4 ¤Ë¤Ï EBUSY ¥¨¥é¡¼¤¬µ­½Ò¤µ¤ì¤Æ¤¤¤ë¤¬¡¢EISDIR, ENOSYS ¤Ï¤Ê¤¤¡£ -.\" AIX ¤È HPUX ¤Ë¤Ï¡¢EBUSY ¤Ë¤Ä¤¤¤Æ¡Ö¤¹¤Ç¤Ë¥¢¥«¥¦¥ó¥È¤¬Í­¸ú¤Ë¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢ -.\" ¤µ¤é¤ËÍ­¸ú¤Ë¤·¤è¤¦¤È¤·¤¿¡×¤È¤¤¤¦µ­½Ò¤¬¤¢¤ë¡£ -.\" ¤³¤ì¤Ï Solaris ¤Ë¤ª¤±¤ë¡Ö¸½ºß¡¢¥¢¥«¥¦¥ó¥È¤Ë»È¤ï¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤È -.\" Ʊ¤¸¥Õ¥¡¥¤¥ë¤Ç¥¢¥«¥¦¥ó¥È¤òÍ­¸ú¤Ë¤·¤è¤¦¤È¤·¤¿¡×¤È¤¤¤¦µ­½Ò¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -¥·¥¹¥Æ¥à¤¬¥¯¥é¥Ã¥·¥å¤·¤¿»þ¤Ë¼Â¹ÔÃæ¤À¤Ã¤¿¥×¥í¥°¥é¥à¤Î¥¢¥«¥¦¥ó¥È¤ÏÀ¸À®¤µ¤ì¤Ê¤¤¡£ -Æäˡ¢½ªÎ»¤·¤Ê¤¤¥×¥í¥°¥é¥à¤¬¥¢¥«¥¦¥ó¥È¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ +使用可能なファイル構造体がないか、メモリが足りない。 +.SH 準拠 +SVr4, 4.3BSD (POSIX ではない)。 +.\" SVr4 には EBUSY エラーが記述されているが、EISDIR, ENOSYS はない。 +.\" AIX と HPUX には、EBUSY について「すでにアカウントが有効にされている場合に、 +.\" さらに有効にしようとした」という記述がある。 +.\" これは Solaris における「現在、アカウントに使われているファイルと +.\" 同じファイルでアカウントを有効にしようとした」という記述と同じである。 +.SH 注意 +システムがクラッシュした時に実行中だったプログラムのアカウントは生成されない。 +特に、終了しないプログラムがアカウントされることはない。 -¥¢¥«¥¦¥ó¥ÈÍÑ¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¥ì¥³¡¼¥É¤Î¹½Â¤ÂΤˤĤ¤¤Æ¤Ï +アカウント用ファイルに書き込まれるレコードの構造体については .BR acct (5) -¤ËÀâÌÀ¤¬¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +に説明がある。 +.SH 関連項目 .BR acct (5) diff --git a/release/man2/adjtimex.2 b/release/man2/adjtimex.2 index 794b1923..bbb2abb5 100644 --- a/release/man2/adjtimex.2 +++ b/release/man2/adjtimex.2 @@ -33,34 +33,34 @@ .\" Updated and Modified 2004-12-28, Yuichi SATO .\" Updated 2006-07-16, Akihiro MOTOKI , LDP v2.34 .\" -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: algorithm ¥¢¥ë¥´¥ê¥º¥à -.\"WORD: update ¹¹¿· -.\"WORD: parameter ¥Ñ¥é¥á¡¼¥¿¡¼ -.\"WORD: field ¥Õ¥£¡¼¥ë¥É -.\"WORD: super user ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ -.\"WORD: timer ¥¿¥¤¥Þ¡¼ -.\"WORD: interrupt ³ä¤ê¹þ¤ß -.\"WORD: memory ¥á¥â¥ê +.\"WORD: kernel カーネル +.\"WORD: algorithm アルゴリズム +.\"WORD: update 更新 +.\"WORD: parameter パラメーター +.\"WORD: field フィールド +.\"WORD: super user スーパー・ユーザー +.\"WORD: timer タイマー +.\"WORD: interrupt 割り込み +.\"WORD: memory メモリ .\" .TH ADJTIMEX 2 2004-05-27 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -adjtimex \- ¥«¡¼¥Í¥ë¤Î»þ·×¤òÄ´À°¤¹¤ë -.SH ½ñ¼° +.SH 名前 +adjtimex \- カーネルの時計を調整する +.SH 書式 .B #include .sp .BI "int adjtimex(struct timex *" "buf" ); -.SH ÀâÌÀ -Linux ¤Ï David L. Mill ¤Î»þ·×Ä´Àᥢ¥ë¥´¥ê¥º¥à¤ò»ÈÍѤ·¤Æ¤¤¤ë -(RFC\ 1305 ¤ò»²¾È)¡£ -¥·¥¹¥Æ¥à¥³¡¼¥ë +.SH 説明 +Linux は David L. Mill の時計調節アルゴリズムを使用している +(RFC\ 1305 を参照)。 +システムコール .BR adjtimex () -¤Ï¤³¤Î¥¢¥ë¥´¥ê¥º¥à¤ÎÄ´Àá¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤òÆɤ߼è¤Ã¤¿¤ê¡¢ÀßÄꤷ¤¿¤ê¤¹¤ë¡£ -¤³¤Î´Ø¿ô¤Ï +はこのアルゴリズムの調節のパラメーターを読み取ったり、設定したりする。 +この関数は .I timex -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¡¼¤ò¼õ¤±¼è¤ê¡¢¤½¤ÎÃͤǥ«¡¼¥Í¥ë¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ò¹¹¿·¤·¤Æ¡¢ -Ʊ¤¸¹½Â¤ÂΤ˸½ºß¤Î¥«¡¼¥Í¥ë¤ÎÃͤòÊÖ¤¹¡£ -¤³¤Î¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤ë: +構造体へのポインターを受け取り、その値でカーネルのパラメーターを更新して、 +同じ構造体に現在のカーネルの値を返す。 +この構造体は以下のように宣言される: .PP .in +4n .nf @@ -83,10 +83,10 @@ struct timex { .in .PP .I modes -¥Õ¥£¡¼¥ë¥É¤Ï (ɬÍפ˱þ¤¸¤Æ) ¤É¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤òÀßÄꤹ¤ë¤«·èÄꤹ¤ë¡£ -¤½¤ì¤Ï°Ê²¼¤Î¥Ó¥Ã¥ÈÃͤΠ0 ¸Ä°Ê¾å¤Î -.RI "¥Ó¥Ã¥È " OR -¤«¤é¤Ê¤ë: +フィールドは (必要に応じて) どのパラメーターを設定するか決定する。 +それは以下のビット値の 0 個以上の +.RI "ビット " OR +からなる: .PP .in +4n .nf @@ -101,17 +101,17 @@ struct timex { .fi .in .PP -Ä̾ï¤Î¥æ¡¼¥¶¡¼¤Ï +通常のユーザーは .I mode -¤ÎÃÍ¤Ï 0 ¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë¡£ -¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼¤Î¤ß¤¬Á´¤Æ¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤òÀßÄê¤Ç¤­¤ë¡£ +の値は 0 に制限されている。 +スーパー・ユーザーのみが全てのパラメーターを設定できる。 .br .ne 12v -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +.SH 返り値 +成功した場合、 .BR adjtimex () -¤Ï -¥¯¥í¥Ã¥¯¤Î¾õÂÖ¤òÊÖ¤¹: +は +クロックの状態を返す: .PP .in +4n .nf @@ -123,47 +123,47 @@ struct timex { .fi .in .PP -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï +失敗した場合は .BR adjtimex () -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が設定される。 +.SH エラー .TP .B EFAULT .I buf -¤¬½ñ¤­¹þ¤ß²Äǽ¤Ê¥á¥â¥ê¤ò»Ø¤·¤Æ¤¤¤Ê¤¤¡£ +が書き込み可能なメモリを指していない。 .TP .B EINVAL .I buf.offset -¤Ø \-131071 ¡Á +131071 ¤ÎÈϰϰʳ°¤ÎÃͤòÀßÄꤷ¤è¤¦¤È¤·¤¿¤«¡¢ +へ \-131071 〜 +131071 の範囲以外の値を設定しようとしたか、 .I buf.status -¤Ë¾åµ­°Ê³°¤ÎÃͤòÀßÄꤷ¤è¤¦¤È¤·¤¿¤«¡¢ +に上記以外の値を設定しようとしたか、 .I buf.tick -¤Ë +に .RB 900000/ HZ -¡Á +〜 .RB 1100000/ HZ -¤ÎÈϰϰʳ°¤ÎÃͤòÀßÄꤷ¤è¤¦¤È¤·¤¿¡£ -¤³¤³¤Ç +の範囲以外の値を設定しようとした。 +ここで .B HZ -¤Ï¥·¥¹¥Æ¥à¤Î¥¿¥¤¥Þ¡¼³ä¤ê¹þ¤ß¤Î¼þ´ü¤Ç¤¢¤ë¡£ +はシステムのタイマー割り込みの周期である。 .TP .B EPERM .I buf.mode -¤¬ 0 ¤Ç¤Ê¤¯¡¢¤«¤Ä¸Æ¤Ó½Ð¤·¸µ¤¬½½Ê¬¤ÊÆø¢¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -Linux ¤Ç¤Ï +が 0 でなく、かつ呼び出し元が十分な特権を持っていない。 +Linux では .B CAP_SYS_TIME -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ -.SH ½àµò +ケーパビリティが必要である。 +.SH 準拠 .BR adjtimex () -¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢ -°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤òÄ´À°¤¹¤ëÊýË¡¤Ç¡¢ -°Ü¿¢À­¤¬¤¢¤ë¤¬¼«Í³ÅÙ¤ÏÎô¤ëÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï +は Linux 特有であり、 +移植を意図したプログラムで使用すべきではない。 +システムクロックを調整する方法で、 +移植性があるが自由度は劣る方法については .BR adjtime (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を参照のこと。 +.SH 関連項目 .BR settimeofday (2), .BR adjtime (3), .BR capabilities (7), diff --git a/release/man2/alarm.2 b/release/man2/alarm.2 index b254a500..bf8c8750 100644 --- a/release/man2/alarm.2 +++ b/release/man2/alarm.2 @@ -32,63 +32,63 @@ .\" Translated Wed Feb 22 20:02:18 JST 1997 .\" by HANATAKA Shinya .\" -.\"WORD: alarm ¥¢¥é¡¼¥à -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: clock ¥¯¥í¥Ã¥¯ -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: timer ¥¿¥¤¥Þ¡¼ -.\"WORD: scheduling ¥¹¥±¥¸¥å¡¼¥ê¥ó¥° +.\"WORD: alarm アラーム +.\"WORD: signal シグナル +.\"WORD: clock クロック +.\"WORD: process プロセス +.\"WORD: timer タイマー +.\"WORD: scheduling スケジューリング .\" .TH ALARM 2 2008-06-12 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -alarm \- ¥·¥°¥Ê¥ëÇÛÁ÷¤Î¤¿¤á¤Î¥¢¥é¡¼¥à¡¦¥¯¥í¥Ã¥¯¤òÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +alarm \- シグナル配送のためのアラーム・クロックを設定する +.SH 書式 .nf .B #include .sp .BI "unsigned int alarm(unsigned int " seconds ); .fi -.SH ÀâÌÀ +.SH 説明 .BR alarm () -¤Ï +は .B SIGALRM -¥·¥°¥Ê¥ë¤ò +シグナルを .I seconds -Éøå¤Ë¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ËÇÛÁ÷¤¹¤ë¤è¤¦¤Ë¼êÇÛ¤¹¤ë¡£ +秒後に呼び出したプロセスに配送するように手配する。 .I seconds -¤¬¥¼¥í¤Ê¤é¤Ð¡¢¿·¤¿¤Ê +がゼロならば、新たな .BR alarm () -¤Ï¼êÇÛ¤µ¤ì¤Ê¤¤¡£ +は手配されない。 -º£¤Þ¤Ç¤ËÀßÄꤵ¤ì¤Æ¤¤¤¿ +今までに設定されていた .BR alarm () -¤ÏÃæÃǤµ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +は中断される。 +.SH 返り値 .BR alarm () -¤Ï°ÊÁ°¤ËͽÄꤵ¤ì¤Æ¤¤¤¿¥¢¥é¡¼¥à¤ÎÇÛÁ÷¤Þ¤Ç¤Î»Ä¤ê»þ´Ö¤òÊÖ¤¹¡£°ÊÁ°¤Ë -¥¢¥é¡¼¥à¤¬Í½Äꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¥¼¥í¤òÊÖ¤¹¡£ -.SH ½àµò +は以前に予定されていたアラームの配送までの残り時間を返す。以前に +アラームが予定されていなければゼロを返す。 +.SH 準拠 SVr4, POSIX.1-2001, 4.3BSD. -.SH Ãí°Õ +.SH 注意 .BR alarm () -¤È +と .BR setitimer (2) -¤ÏƱ¤¸¥¿¥¤¥Þ¡¼¤ò¶¦Í­¤·¤Æ¤¤¤ë; ÊÒÊý¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ï¤â¤¦°ìÊý¤Î -»ÈÍѤ˱ƶÁ¤òÍ¿¤¨¤ë¡£ +は同じタイマーを共有している; 片方を呼び出すことはもう一方の +使用に影響を与える。 .PP .BR sleep (3) -¤Ï +は .B SIGALRM -¤òÍøÍѤ·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +を利用して実装されているかもしれない。 .BR alarm () -¤È +と .BR sleep (3) -¤òº®¤¼¤Æ»ÈÍѤ·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +を混ぜて使用してはならない。 -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°(scheduling)¤ÎÃÙ±ä¤Ë¤è¤ê¡¢¥×¥í¥»¥¹¤Î¼Â¹Ô¤ËÉÔÄêÎ̤Π-Ãٱ䤬µ¯¤­¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +スケジューリング(scheduling)の遅延により、プロセスの実行に不定量の +遅延が起きる可能性がある。 +.SH 関連項目 .BR gettimeofday (2), .BR pause (2), .BR select (2), diff --git a/release/man2/alloc_hugepages.2 b/release/man2/alloc_hugepages.2 index 110fb99b..dda0d2f0 100644 --- a/release/man2/alloc_hugepages.2 +++ b/release/man2/alloc_hugepages.2 @@ -28,12 +28,12 @@ .\" Translated 2004-06-06, Yuichi SATO .\" Updated 2007-06-11, Akihiro MOTOKI , LDP v2.54 .\" -.\"WORD: huge page ¥Ò¥å¡¼¥¸¥Ú¡¼¥¸ +.\"WORD: huge page ヒュージページ .\" .TH ALLOC_HUGEPAGES 2 2007-05-31 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -alloc_hugepages, free_hugepages \- Â礭¤Ê¥µ¥¤¥º¤Î¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤È²òÊü¤ò¹Ô¤¦ -.SH ½ñ¼° +.SH 名前 +alloc_hugepages, free_hugepages \- 大きなサイズのページの割り当てと解放を行う +.SH 書式 .nf .BI "void *alloc_hugepages(int " key ", void *" addr ", size_t " len , .BI " int " prot ", int " flag ); @@ -43,122 +43,122 @@ alloc_hugepages, free_hugepages \- .BI "int free_hugepages(void *" addr ); .\" asmlinkage int sys_free_hugepages(unsigned long addr); .fi -.SH ÀâÌÀ -¥·¥¹¥Æ¥à¥³¡¼¥ë +.SH 説明 +システムコール .BR alloc_hugepages () -¤È +と .BR free_hugepages () -¤Ï Linux 2.5.36 ¤ÇƳÆþ¤µ¤ì¡¢2.5.54 ¤ÇºÆ¤Óºï½ü¤µ¤ì¤¿¡£ -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï i386 ¤È ia64 ¤Î¤ß¤Ç -(¤«¤Ä +は Linux 2.5.36 で導入され、2.5.54 で再び削除された。 +これらのシステムコールは i386 と ia64 のみで +(かつ .B CONFIG_HUGETLB_PAGE -¤ò»ØÄꤷ¤Æ¥Ó¥ë¥É¤µ¤ì¤¿¾ì¹ç¤Ë) ¸ºß¤¹¤ë¡£ -Linux 2.4.20 ¤Ç¤Ï syscall Èֹ椬¸ºß¤¹¤ë¤¬¡¢ -¸Æ¤Ó½Ð¤¹¤È¥¨¥é¡¼ +を指定してビルドされた場合に) 存在する。 +Linux 2.4.20 では syscall 番号が存在するが、 +呼び出すとエラー .B ENOSYS -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .LP -i386 ¤Ç¤Ï¡¢¥á¥â¥ê´ÉÍý¥Ï¡¼¥É¥¦¥§¥¢¤ÏÄ̾ï¤Î¥Ú¡¼¥¸ (4 KiB) ¤È -Â礭¤Ê¥µ¥¤¥º¤Î¥Ú¡¼¥¸ (°Ê²¼¡¢¥Ò¥å¡¼¥¸¥Ú¡¼¥¸; 2MiB ¤Þ¤¿¤Ï 4 MiB) ¤ò -°·¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -ƱÍͤˡ¢ia64 ¤â¤¤¤¯¤Ä¤«¤Î¥µ¥¤¥º¤Î¥Ò¥å¡¼¥¸¥Ú¡¼¥¸¤ò°·¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¥Ò¥å¡¼¥¸¥Ú¡¼¥¸¤ò¥×¥í¥»¥¹¤Î¥á¥â¥ê¤Ë¥Þ¥Ã¥×¤·¤¿¤ê¡¢ -ºÆ¤Ó²òÊü¤·¤¿¤ê¤¹¤ë¡£ -¥Ò¥å¡¼¥¸¥Ú¡¼¥¸¤Ï¥á¥â¥êÆâ¤Ë¥í¥Ã¥¯¤µ¤ì¡¢¥¹¥ï¥Ã¥×¤µ¤ì¤Ê¤¤¡£ +i386 では、メモリ管理ハードウェアは通常のページ (4 KiB) と +大きなサイズのページ (以下、ヒュージページ; 2MiB または 4 MiB) を +扱うことができる。 +同様に、ia64 もいくつかのサイズのヒュージページを扱うことができる。 +これらのシステムコールは、ヒュージページをプロセスのメモリにマップしたり、 +再び解放したりする。 +ヒュージページはメモリ内にロックされ、スワップされない。 .LP .I key -°ú¤­¿ô¤Ï¼±Ê̻ҤǤ¢¤ë¡£ -0 ¤Î¾ì¹ç¡¢¥Ú¡¼¥¸¤ÏÈó¸ø³«¤Ë¤Ê¤ê¡¢»Ò¥×¥í¥»¥¹¤Ë·Ñ¾µ¤µ¤ì¤Ê¤¤¡£ -Àµ¤Î¾ì¹ç¡¢¥Ú¡¼¥¸¤ÏƱ¤¸ +引き数は識別子である。 +0 の場合、ページは非公開になり、子プロセスに継承されない。 +正の場合、ページは同じ .I key -¤ò»È¤¦Â¾¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤È¶¦Í­¤µ¤ì¡¢»Ò¥×¥í¥»¥¹¤Ë·Ñ¾µ¤µ¤ì¤ë¡£ +を使う他のアプリケーションと共有され、子プロセスに継承される。 .LP .BR free_hugepages () -¤Î +の .I addr -°ú¤­¿ô¤Ï¡¢¤É¤Î¥Ú¡¼¥¸¤ò²òÊü¤¹¤ë¤«¤ò»ØÄꤹ¤ë: +引き数は、どのページを解放するかを指定する: .I addr -¤Ï +は .BR alloc_hugepages () -¤Î¸Æ¤Ó½Ð¤·¤ÎÊÖ¤êÃͤǤ¢¤ë -(Á´¤Æ¤Î¥æ¡¼¥¶¤¬¥á¥â¥ê¤ò²òÊü¤·¤¿¤È¤­¤Ë¡¢ -¤½¤Î¥á¥â¥ê¤Ï½é¤á¤Æ¼ÂºÝ¤Ë²òÊü¤µ¤ì¤ë)¡£ +の呼び出しの返り値である +(全てのユーザがメモリを解放したときに、 +そのメモリは初めて実際に解放される)。 .BR alloc_hugepages () -¤Î +の .I addr -°ú¤­¿ô¤Ï¥Ò¥ó¥È¤Ç¤¢¤ê¡¢¥«¡¼¥Í¥ë¤Ï¤½¤ì¤Ë½¾¤¦¤«¤â¤·¤ì¤Ê¤¤¤·¡¢ -½¾¤ï¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -¥¢¥É¥ì¥¹¤ÏÀµ¤·¤¯ÇÛÃÖ¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数はヒントであり、カーネルはそれに従うかもしれないし、 +従わないかもしれない。 +アドレスは正しく配置されなければならない。 .LP .I len -°ú¤­¿ô¤ÏÍ׵ᤵ¤ì¤¿¥»¥°¥á¥ó¥È¤ÎŤµ¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï¥Ò¥å¡¼¥¸¥Ú¡¼¥¸¤Î¥µ¥¤¥º¤ÎÇÜ¿ô¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数は要求されたセグメントの長さである。 +これはヒュージページのサイズの倍数にしなければならない。 .LP .I prot -°ú¤­¿ô¤Ï¥»¥°¥á¥ó¥È¤Î¥á¥â¥êÊݸî¤ò»ØÄꤹ¤ë¡£ -¤³¤ì¤Ï +引き数はセグメントのメモリ保護を指定する。 +これは .BR PROT_READ , .BR PROT_WRITE , .B PROT_EXEC -¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¡£ +のいずれかである。 .LP .I key -¤¬Àµ¤Ç¤Ê¤¤¸Â¤ê¡¢ +が正でない限り、 .I flag -°ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ +引き数は無視される。 .I key -¤¬Àµ¤Ç¡¢¤«¤Ä +が正で、かつ .I flag -¤¬ +が .B IPC_CREAT -¤Ç¤¢¤ê¡¢¤«¤Ä»ØÄꤵ¤ì¤¿ +であり、かつ指定された .I key -¤Ç (¥»¥°¥á¥ó¥È¤¬) ²¿¤â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢ -¿·¤·¤¤¥Ò¥å¡¼¥¸¥Ú¡¼¥¸¥»¥°¥á¥ó¥È¤¬ºîÀ®¤µ¤ì¤ë¡£ +で (セグメントが) 何も存在しない場合、 +新しいヒュージページセグメントが作成される。 .I flag -¤¬ÀßÄꤵ¤ì¤Æ¤ª¤é¤º¡¢¤«¤Ä»ØÄꤵ¤ì¤¿ +が設定されておらず、かつ指定された .I key -¤Î¥»¥°¥á¥ó¥È¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢ +のセグメントが存在しない場合、 .B ENOENT -¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +が返される。 +.SH 返り値 +成功した場合、 .BR alloc_hugepages () -¤Ï³ä¤êÅö¤Æ¤é¤ì¤¿²¾ÁÛ¥¢¥É¥ì¥¹¤òÊÖ¤·¡¢ +は割り当てられた仮想アドレスを返し、 .BR free_hugepages () -¤Ï 0 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。 +失敗した場合、\-1 を返し、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B ENOSYS -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ¥Õ¥¡¥¤¥ë +このシステムコールはカーネルでサポートされていない。 +.SH ファイル .TP .I /proc/sys/vm/nr_hugepages -ÀßÄꤵ¤ì¤¿ hugetlb ¥Ú¡¼¥¸¤Î¿ô¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤ÏÆɤ߽ñ¤­¤Ç¤­¤ë¡£ +設定された hugetlb ページの数。 +このファイルは読み書きできる。 .TP .I /proc/meminfo -ÀßÄꤵ¤ì¤¿ hugetlb ¥Ú¡¼¥¸¤Î¿ô¤È¡¢ -3 ¤Ä¤ÎÊÑ¿ô HugePages_Total, HugePages_Free, Hugepagesize ¤Î -¥µ¥¤¥º¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÄ󶡤¹¤ë¡£ -.SH ½àµò -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Intel ¥×¥í¥»¥Ã¥µ¾å¤Î Linux ¤Ë¸ÇÍ­¤Î¤â¤Î¤Ç¤¢¤ê¡¢ -°Ü¿¢À­¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç»È¤¦¤Ù¤­¤Ç¤Ê¤¤¡£ -.SH Ãí°Õ -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¤Ê¤¯¤Ê¤Ã¤¿¡£ -¤³¤ì¤é¤Ï Linux 2.5.36 ¤«¤é 2.5.54 ¤Ë¤Î¤ß¸ºß¤¹¤ë¡£ -Âå¤ï¤ê¤Ëº£¤Ï hugetlbfs ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -(CPU ¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç) ¥Ò¥å¡¼¥¸¥Ú¡¼¥¸¤ò»ý¤Ä¥á¥â¥ê¤Ï¡¢ +設定された hugetlb ページの数と、 +3 つの変数 HugePages_Total, HugePages_Free, Hugepagesize の +サイズについての情報を提供する。 +.SH 準拠 +このシステムコールは Intel プロセッサ上の Linux に固有のものであり、 +移植性が必要なプログラムで使うべきでない。 +.SH 注意 +これらのシステムコールはなくなった。 +これらは Linux 2.5.36 から 2.5.54 にのみ存在する。 +代わりに今は hugetlbfs ファイルシステムを使うことができる。 +(CPU がサポートしている場合) ヒュージページを持つメモリは、 .BR mmap (2) -¤ò»È¤Ã¤Æ¤³¤Î²¾ÁÛ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¥Õ¥¡¥¤¥ë¤ò¥Þ¥Ã¥×¤¹¤ë¤³¤È¤Ç¼èÆÀ¤Ç¤­¤ë¡£ +を使ってこの仮想ファイルシステムでファイルをマップすることで取得できる。 .LP -¥Ò¥å¡¼¥¸¥Ú¡¼¥¸¤ÎºÇÂç¿ô¤Ï¡¢ +ヒュージページの最大数は、 .B hugepages= -µ¯Æ°¥Ñ¥é¥á¡¼¥¿¤ò»È¤Ã¤Æ»ØÄê¤Ç¤­¤ë¡£ -.\" ("Processor type and features" °Ê²¼¤Î) CONFIG_HUGETLB_PAGE -.\" ("Filesystems" °Ê²¼¤Î).CONFIG_HUGETLBFS ¤¬É¬ÍפǤ¢¤ë¡£ +起動パラメータを使って指定できる。 +.\" ("Processor type and features" 以下の) CONFIG_HUGETLB_PAGE +.\" ("Filesystems" 以下の).CONFIG_HUGETLBFS が必要である。 .\" mount -t hugetlbfs hugetlbfs /huge .\" SHM_HUGETLB diff --git a/release/man2/arch_prctl.2 b/release/man2/arch_prctl.2 index 981d35fd..c0e4e7ec 100644 --- a/release/man2/arch_prctl.2 +++ b/release/man2/arch_prctl.2 @@ -29,9 +29,9 @@ .\" Updated 2008-02-10, Akihiro MOTOKI , LDP v2.77 .\" .TH ARCH_PRCTL 2 2007-12-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -arch_prctl \- ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¸ÇÍ­¤Î¥¹¥ì¥Ã¥É¾õÂÖ¤òÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +arch_prctl \- アーキテクチャ固有のスレッド状態を設定する +.SH 書式 .nf .B #include .br @@ -39,111 +39,111 @@ arch_prctl \- .sp .BI "int arch_prctl(int " code ", unsigned long *" addr ); .fi -.SH ÀâÌÀ +.SH 説明 .BR arch_prctl () -´Ø¿ô¤Ï¥¢¡¼¥­¥Æ¥¯¥Á¥ã¸ÇÍ­¤Î¥×¥í¥»¥¹¾õÂÖ¤Þ¤¿¤Ï¥¹¥ì¥Ã¥É¾õÂÖ¤òÀßÄꤹ¤ë¡£ +関数はアーキテクチャ固有のプロセス状態またはスレッド状態を設定する。 .I code -¤ÏÉûµ¡Ç½¤òÁªÂò¤·¡¢°ú¤­¿ô +は副機能を選択し、引き数 .I addr -¤òÉûµ¡Ç½¤ËÅϤ¹¡£ +を副機能に渡す。 .I addr -¤Ï¡¢"set" Áàºî¤Ç¤Ï +は、"set" 操作では .I "unsigned long" -¤È¤·¤Æ¡¢"get" Áàºî¤Ç¤Ï +として、"get" 操作では .I "unsigned long *" -¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +として解釈される。 .LP -x86-64 ¤ÎÉûµ¡Ç½¤Ï°Ê²¼¤ÎÄ̤ê: +x86-64 の副機能は以下の通り: .TP .B ARCH_SET_FS .I FS -¥ì¥¸¥¹¥¿¤Î 64 ¥Ó¥Ã¥È¥Ù¡¼¥¹¤ò +レジスタの 64 ビットベースを .I addr -¤ËÀßÄꤹ¤ë¡£ +に設定する。 .TP .B ARCH_GET_FS -¸½ºß¤Î¥¹¥ì¥Ã¥É¤Î +現在のスレッドの .I FS -¥ì¥¸¥¹¥¿¤Î 64 ¥Ó¥Ã¥È¥Ù¡¼¥¹Ãͤò¡¢ +レジスタの 64 ビットベース値を、 .I addr -¤¬»Ø¤¹ +が指す .I unsigned long -¤ÎÎΰè¤Ë³ÊǼ¤¹¤ë¡£ +の領域に格納する。 .TP .B ARCH_SET_GS .I GS -¥ì¥¸¥¹¥¿¤Î 64 ¥Ó¥Ã¥È¥Ù¡¼¥¹¤ò +レジスタの 64 ビットベースを .I addr -¤ËÀßÄꤹ¤ë¡£ +に設定する。 .TP .B ARCH_GET_GS -¸½ºß¤Î¥¹¥ì¥Ã¥É¤Î +現在のスレッドの .I GS -¥ì¥¸¥¹¥¿¤Î 64 ¥Ó¥Ã¥È¥Ù¡¼¥¹Ãͤò¡¢ +レジスタの 64 ビットベース値を、 .I addr -¤¬»Ø¤¹ +が指す .I unsigned long -¤ÎÎΰè¤Ë³ÊǼ¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +の領域に格納する。 +.SH 返り値 +成功すると、 .BR arch_prctl () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤ò¥¨¥é¡¼¤ò¼¨¤¹ÃͤËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +をエラーを示す値に設定する。 +.SH エラー .TP .B EFAULT .I addr -¤¬¥¢¥ó¥Þ¥Ã¥×¤µ¤ì¤¿¥¢¥É¥ì¥¹¤ò»Ø¤·¤Æ¤¤¤ë¤«¡¢¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤Ë¤¢¤ë¡£ +がアンマップされたアドレスを指しているか、プロセスのアドレス空間の外にある。 .TP .B EINVAL .I code -¤¬Í­¸ú¤Ê¥µ¥Ö¥³¥Þ¥ó¥É¤Ç¤Ê¤¤¡£ +が有効なサブコマンドでない。 .TP .B EPERM .I addr -¤¬¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤Ë¤¢¤ë¡£ -.\" .SH Ãø¼Ô -.\" ¤³¤Î man ¥Ú¡¼¥¸¤Ï Andi Kleen ¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤¿¡£ -.SH ½àµò +がプロセスのアドレス空間の外にある。 +.\" .SH 著者 +.\" この man ページは Andi Kleen によって書かれた。 +.SH 準拠 .BR arch_prctl () -¤Ï Linux/x86-64 ³ÈÄ¥¤Ç¤¢¤ê¡¢°Ü¿¢À­¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï»È¤¦¤Ù¤­¤Ç¤Ê¤¤¡£ -.SH Ãí°Õ +は Linux/x86-64 拡張であり、移植性を意図したプログラムでは使うべきでない。 +.SH 注意 .BR arch_prctl () -¤Ï¸½ºß¤Î¤È¤³¤í Linux/x86-64 ¾å¤Î 64 ¥Ó¥Ã¥È¥×¥í¥°¥é¥à¤Ç¤Î¤ß¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +は現在のところ Linux/x86-64 上の 64 ビットプログラムでのみサポートされている。 -¿·¤·¤¤ 32 ¥Ó¥Ã¥È¥»¥°¥á¥ó¥È¥»¥ì¥¯¥¿¤¬¥í¡¼¥É¤µ¤ì¤¿¾ì¹ç¡¢ -64 ¥Ó¥Ã¥È¥Ù¡¼¥¹¤ÏÊѹ¹¤µ¤ì¤ë¡£ +新しい 32 ビットセグメントセレクタがロードされた場合、 +64 ビットベースは変更される。 .B ARCH_SET_GS -¤¬Ìµ¸ú¤Ë¤µ¤ì¤Æ¤¤¤ë¥«¡¼¥Í¥ë¤â¤¢¤ë¡£ +が無効にされているカーネルもある。 -64 ¥Ó¥Ã¥È¥»¥°¥á¥ó¥È¥Ù¡¼¥¹¤Î¥³¥ó¥Æ¥­¥¹¥È¥¹¥¤¥Ã¥Á¤Ï¡¢¤ä¤ä¹â²Á¤Ç¤¢¤ë¡£ -LDT ¤ò +64 ビットセグメントベースのコンテキストスイッチは、やや高価である。 +LDT を .BR modify_ldt (2) -¤ÇÀßÄꤷ¤Æ¥»¥°¥á¥ó¥È¥»¥ì¥¯¥¿¤ò»È¤¦¤«¡¢ -(¥«¡¼¥Í¥ë 2.5 °Ê¹ß¤Î) +で設定してセグメントセレクタを使うか、 +(カーネル 2.5 以降の) .BR set_thread_area (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤¦¤³¤È¤Ë¤è¤ê¡¢ -32 ¥Ó¥Ã¥È¥Ù¡¼¥¹¤òÀßÄꤹ¤ë¤È¤¤¤¦¹â®¤ÊÂåÂؼêÃʤ⤢¤ë¡£ -4GB ¤è¤êÂ礭¤Ê¥Ù¡¼¥¹¤òÀßÄꤷ¤¿¤¤¾ì¹ç¤Ë¤Î¤ß¡¢ +システムコールを使うことにより、 +32 ビットベースを設定するという高速な代替手段もある。 +4GB より大きなベースを設定したい場合にのみ、 .BR arch_prctl () -¤¬É¬ÍפǤ¢¤ë¡£ -¥¢¥É¥ì¥¹¶õ´Ö¤ÎºÇ½é¤Î 2GB ¤Ë¤¢¤ë¥á¥â¥ê¤Ï¡¢ +が必要である。 +アドレス空間の最初の 2GB にあるメモリは、 .BR mmap (2) -¤Ë +に .B MAP_32BIT -¥Õ¥é¥°¤ò»ØÄꤷ¤Æ³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +フラグを指定して割り当てることができる。 -¥Ð¡¼¥¸¥ç¥ó 2.7 »þÅÀ¤Ç¤Ï¡¢glibc ¤Ë¤Ï +バージョン 2.7 時点では、glibc には .BR arch_prctl () -¤Î¥×¥í¥È¥¿¥¤¥×¤¬¤Ê¤¤¡£ -º£¤Î¤È¤³¤í¥æ¡¼¥¶¤Ï¼«Ê¬¼«¿È¤ÇÀë¸À¤¹¤ëɬÍפ¬¤¢¤ë¡£ -¤³¤ì¤Ï¾­Íè¤Î glibc ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç½¤Àµ¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +のプロトタイプがない。 +今のところユーザは自分自身で宣言する必要がある。 +これは将来の glibc のバージョンで修正されるかもしれない。 .I FS -¤Ï¥¹¥ì¥Ã¥É¥é¥¤¥Ö¥é¥ê¤Ç´û¤Ë»È¤ï¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +はスレッドライブラリで既に使われているかもしれない。 +.SH 関連項目 .BR mmap (2), .BR modify_ldt (2), .BR prctl (2), diff --git a/release/man2/bdflush.2 b/release/man2/bdflush.2 index 58f29e05..f627d5a4 100644 --- a/release/man2/bdflush.2 +++ b/release/man2/bdflush.2 @@ -33,88 +33,88 @@ .\" Updated & Modified Thu Feb 3 03:15:15 JST 2005 .\" by Yuichi SATO .\" -.\"WORD: buffer-dirty-flush ¥Ð¥Ã¥Õ¥¡¡¼¡¦¥À¡¼¥Æ¥£¡¼¡¦¥Õ¥é¥Ã¥·¥å -.\"WORD: daemon ¥Ç¡¼¥â¥ó -.\"WORD: flush ¥Õ¥é¥Ã¥·¥å -.\"WORD: tune Ä´À° -.\"WORD: long word ¥í¥ó¥°¡¦¥ï¡¼¥É -.\"WORD: parameter ¥Ñ¥é¥á¡¼¥¿¡¼ -.\"WORD: source file ¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë +.\"WORD: buffer-dirty-flush バッファー・ダーティー・フラッシュ +.\"WORD: daemon デーモン +.\"WORD: flush フラッシュ +.\"WORD: tune 調整 +.\"WORD: long word ロング・ワード +.\"WORD: parameter パラメーター +.\"WORD: source file ソース・ファイル .\" .TH BDFLUSH 2 2004-06-17 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -bdflush \- ¥Ð¥Ã¥Õ¥¡¡¼¡¦¥À¡¼¥Æ¥£¡¼¡¦¥Õ¥é¥Ã¥·¥å¡¦¥Ç¡¼¥â¥ó¤òµ¯Æ°¡¢¥Õ¥é¥Ã¥·¥å¡¢Ä´À°¤¹¤ë -.SH ½ñ¼° +.SH 名前 +bdflush \- バッファー・ダーティー・フラッシュ・デーモンを起動、フラッシュ、調整する +.SH 書式 .nf .B #include .BI "int bdflush(int " func ", long *" address ); .BI "int bdflush(int " func ", long " data ); .fi -.SH ÀâÌÀ +.SH 説明 .BR bdflush () -¤Ï¥Ð¥Ã¥Õ¥¡¡¼¡¦¥À¡¼¥Æ¥£¡¼¡¦¥Õ¥é¥Ã¥·¥å (buffer-dirty-flush)¡¦ -¥Ç¡¼¥â¥ó (daemon) ¤òµ¯Æ°¡¢¥Õ¥é¥Ã¥·¥å (flush)¡¢Ä´À° (tune) ¤¹¤ë¡£ +はバッファー・ダーティー・フラッシュ (buffer-dirty-flush)・ +デーモン (daemon) を起動、フラッシュ (flush)、調整 (tune) する。 .RB ( CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤Ä) Æø¢¥×¥í¥»¥¹¤Î¤ß¤¬ +ケーパビリティ (capability) を持つ) 特権プロセスのみが .BR bdflush () -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +を呼び出すことができる。 .PP .I func -¤¬É餫 0 ¤Ç¥Ç¡¼¥â¥ó¤¬µ¯Æ°¤µ¤ì¤Æ¤¤¤Ê¤ì¤Ð¡¢ +が負か 0 でデーモンが起動されていなれば、 .BR bdflush () -¤Ï¥Ç¡¼¥â¥ó¤Î¥³¡¼¥É¤ØÆþ¤ê¡¢Ìá¤Ã¤Æ¤³¤Ê¤¤¡£ +はデーモンのコードへ入り、戻ってこない。 .PP .I func -¤¬ 1 ¤Ê¤é¤Ð¡¢ -±ø¤ì¤¿ (dirty) ¥Ð¥Ã¥Õ¥¡¡¼¤¬¥Ç¥£¥¹¥¯¤Ø¤È½ñ¤­¹þ¤Þ¤ì¤ë¡£ +が 1 ならば、 +汚れた (dirty) バッファーがディスクへと書き込まれる。 .PP .I func -¤¬ 2 °Ê¾å¤Ç¶ö¿ô (ºÇ¾®¥Ó¥Ã¥È¤¬ 0) ¤Ê¤é¤Ð¡¢ +が 2 以上で偶数 (最小ビットが 0) ならば、 .I address -¤Ë¥í¥ó¥°¡¦¥ï¡¼¥É¤Ç¥¢¥É¥ì¥¹¤ò»ØÄꤷ¡¢¤½¤Î¥¢¥É¥ì¥¹¤Ë +にロング・ワードでアドレスを指定し、そのアドレスに .RI "(" "func" "\-2)/2" -¤Ç»ØÄꤵ¤ì¤¿Ä´Àá¥Ñ¥é¥á¡¼¥¿¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ +で指定された調節パラメーターが返される。 .PP .I func -¤¬ 3 °Ê¾å¤Ç´ñ¿ô (ºÇ¾®¥Ó¥Ã¥È¤¬ 1) ¤Ê¤é¤Ð¡¢ +が 3 以上で奇数 (最小ビットが 1) ならば、 .I data -¤ò¥í¥ó¥°¡¦¥ï¡¼¥É¤Ç»ØÄꤷ¡¢¤½¤ÎÃͤò +をロング・ワードで指定し、その値を .RI "(" "func" "\-3)/2" -¤Ç»ØÄꤵ¤ì¤¿Ä´Àá¥Ñ¥é¥á¡¼¥¿¡¼¤ËÀßÄꤹ¤ë¡£ +で指定された調節パラメーターに設定する。 .PP -¥Ñ¥é¥á¡¼¥¿¡¼¤Î½¸¹ç¤ä¤½¤ÎÃÍ¡¢Í­¸ú¤ÊÈϰϤϥ«¡¼¥Í¥ë¤Î¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤Î +パラメーターの集合やその値、有効な範囲はカーネルのソース・ファイルの .I fs/buffer.c -¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ÊÖ¤êÃÍ +に定義されている。 +.SH 返り値 .I func -¤¬É餫 0 ¤Ç¡¢¥Ç¥â¡¼¥ó¤Îµ¯Æ°¤ËÀ®¸ù¤·¤¿¾ì¹ç¤Ï +が負か 0 で、デモーンの起動に成功した場合は .BR bdflush () -¤ÏÊ֤äƤ³¤Ê¤¤¡£ -¤½¤¦¤Ç¤Ê¤±¤ì¤ÐÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +は返ってこない。 +そうでなければ成功した場合には 0 が返される。失敗した場合には \-1 が返され、 .I errno -¤Ë¤½¤Î¥¨¥é¡¼¤¬»Ø¼¨¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +にそのエラーが指示される。 +.SH エラー .TP .B EBUSY -¾¤Î¥×¥í¥»¥¹¤¬´û¤Ë¥Ç¡¼¥â¥ó¡¦¥³¡¼¥É¤ËÆþ¤Ã¤Æ¤¤¤ë¤Î¤Ë¡¢Æþ¤í¤¦¤È»î¤ß¤¿¡£ +他のプロセスが既にデーモン・コードに入っているのに、入ろうと試みた。 .TP .B EFAULT .I address -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°Éô¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がアクセス可能なアドレス空間の外部を指している。 .TP .B EINVAL -ÉÔÀµ¤Ê¥Ñ¥é¥á¡¼¥¿¡¼¤ÎÆɤ߽ñ¤­¤ò»î¤ß¤¿¤«¡¢¥Ñ¥é¥á¡¼¥¿¡¼¤ØÉÔÀµ¤ÊÃͤò -½ñ¤­¹þ¤â¤¦¤È¤·¤¿¡£ +不正なパラメーターの読み書きを試みたか、パラメーターへ不正な値を +書き込もうとした。 .TP .B EPERM -¸Æ¤Ó½Ð¤·¸µ¤Ë +呼び出し元に .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¤Ê¤¤¡£ -.SH ½àµò +ケーパビリティがない。 +.SH 準拠 .BR bdflush () -¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +は Linux 特有であり移植を意図したプログラムで使用すべきではない。 +.SH 関連項目 .BR fsync (2), .BR sync (2), .BR sync (8), diff --git a/release/man2/bind.2 b/release/man2/bind.2 index 8d5c91f4..733ecc0d 100644 --- a/release/man2/bind.2 +++ b/release/man2/bind.2 @@ -75,77 +75,77 @@ .\" Updated 2008-02-10, Akihiro MOTOKI , LDP v2.77 .\" .TH BIND 2 2007-12-28 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -bind \- ¥½¥±¥Ã¥È¤Ë̾Á°¤ò¤Ä¤±¤ë -.SH ½ñ¼° +.SH 名前 +bind \- ソケットに名前をつける +.SH 書式 .nf -.BR "#include " " /* ¡ÖÃí°Õ¡×»²¾È */" +.BR "#include " " /* 「注意」参照 */" .B #include .sp .BI "int bind(int " sockfd ", const struct sockaddr *" addr , .BI " socklen_t " addrlen ); .fi -.SH ÀâÌÀ +.SH 説明 .BR socket (2) -¤Ç¥½¥±¥Ã¥È¤¬ºîÀ®¤µ¤ì¤¿¤È¤­¡¢¤½¤Î¥½¥±¥Ã¥È¤Ï̾Á°¶õ´Ö (¥¢¥É¥ì¥¹¡¦¥Õ¥¡¥ß¥ê¡¼) ¤Ë -¸ºß¤¹¤ë¤¬¡¢¥¢¥É¥ì¥¹¤Ï³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤Ê¤¤¡£ +でソケットが作成されたとき、そのソケットは名前空間 (アドレス・ファミリー) に +存在するが、アドレスは割り当てられていない。 .BR bind () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +は、ファイルディスクリプタ .I sockfd -¤Ç»²¾È¤µ¤ì¤ë¥½¥±¥Ã¥È¤Ë +で参照されるソケットに .I addr -¤Ç»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤ò³ä¤êÅö¤Æ¤ë¡£ +で指定されたアドレスを割り当てる。 .I addrlen -¤Ë¤Ï +には .I addr -¤¬»Ø¤¹¥¢¥É¥ì¥¹¹½Â¤ÂΤΥµ¥¤¥º¤ò¥Ð¥¤¥Èñ°Ì¤Ç»ØÄꤹ¤ë¡£ -ÅÁÅýŪ¤Ë¤³¤ÎÁàºî¤Ï -¡Ö¥½¥±¥Ã¥È¤Ë̾Á°¤ò¤Ä¤±¤ë¡× -¤È¸Æ¤Ð¤ì¤ë¡£ +が指すアドレス構造体のサイズをバイト単位で指定する。 +伝統的にこの操作は +「ソケットに名前をつける」 +と呼ばれる。 .PP .B SOCK_STREAM -¥½¥±¥Ã¥È¤¬Àܳ¤ò¼õ¤±ÉÕ¤±¤é¤ì¤ë¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï +ソケットが接続を受け付けられるようにするには .RB ( accept (2) -¤ò»²¾È)¡¢Ä̾綠¤ÎÁ°¤Ë +を参照)、通常その前に .BR bind () -¤ò»ÈÍѤ·¤Æ¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤ò³ä¤êÅö¤Æ¤ëɬÍפ¬¤¢¤ë¡£ +を使用してローカルアドレスを割り当てる必要がある。 -̾Á°ÉÕ¤±¤Î¥ë¡¼¥ë¤Ï¥¢¥É¥ì¥¹¡¦¥Õ¥¡¥ß¥ê¡¼¤´¤È¤Ë°Û¤Ê¤Ã¤Æ¤¤¤ë¡£¾ÜºÙ¤Ê¾ðÊó¤Ï -Âè 7 ¾Ï¤Î³Æ¥Þ¥Ë¥å¥¢¥ë¤ò»²¾È¤¹¤ë¤³¤È¡£ +名前付けのルールはアドレス・ファミリーごとに異なっている。詳細な情報は +第 7 章の各マニュアルを参照すること。 .B AF_INET -¤Ï +は .BR ip (7) -¤ò¡¢ +を、 .B AF_INET6 -¤Ï +は .BR ipv6 (7) -¤ò¡¢ +を、 .B AF_UNIX -¤Ï +は .BR unix (7) -¤ò¡¢ +を、 .B AF_APPLETALK -¤Ï +は .BR ddp (7) -¤ò¡¢ +を、 .B AF_PACKET -¤Ï +は .BR packet (7) -¤ò¡¢ +を、 .B AF_X25 -¤Ï +は .BR x25 (7) -¤ò¡¢ +を、 .B AF_NETLINK -¤Ï +は .BR netlink (7) -¤ò»²¾È¡£ +を参照。 .I addr -°ú¤­¿ô¤Ë¼ÂºÝ¤Ë¤É¤Î¤è¤¦¤Ê¹½Â¤ÂΤ¬ÅϤµ¤ì¤ë¤«¤Ï¡¢ -¥¢¥É¥ì¥¹¡¦¥Õ¥¡¥ß¥ê¡¼¤Ë°Í¸¤¹¤ë¡£ +引き数に実際にどのような構造体が渡されるかは、 +アドレス・ファミリーに依存する。 .I sockaddr -¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤Ê´¶¤¸¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +構造体は以下のような感じで定義されている: .in +4n .nf @@ -156,122 +156,122 @@ struct sockaddr { .fi .in -¤³¤Î¹½Â¤ÂΤϡ¢ +この構造体は、 .I addr -¤ËÅϤµ¤ì¤ë¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ò¥­¥ã¥¹¥È¤·¡¢ -¥³¥ó¥Ñ¥¤¥é¤Î·Ù¹ð¥á¥Ã¥»¡¼¥¸¤òÍÞ¤¨¤ë¤¿¤á¤À¤±¤Ë¸ºß¤¹¤ë¡£ -²¼µ­¤Î¡ÖÎã¡×¤ò»²¾È¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤¹¤ë¤È \-1 ¤òÊÖ¤·¡¢ +に渡される構造体へのポインタをキャストし、 +コンパイラの警告メッセージを抑えるためだけに存在する。 +下記の「例」を参照。 +.SH 返り値 +成功すると 0 を返す。 +失敗すると \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切に設定する。 +.SH エラー .TP .B EACCES .\" e.g., privileged port in AF_INET domain -¤½¤Î¥¢¥É¥ì¥¹¤ÏÊݸ¤ì¤Æ¤¤¤Æ¡¢¤«¤Ä¥æ¡¼¥¶¤¬¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ç¤Ï¤Ê¤¤¡£ +そのアドレスは保護されていて、かつユーザがスーパーユーザではない。 .TP .B EADDRINUSE -»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤¬´û¤Ë»ÈÍÑÃæ¤Ç¤¢¤ë¡£ +指定されたアドレスが既に使用中である。 .TP .B EBADF .I sockfd -¤¬ÉÔÀµ¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +が不正なディスクリプタである。 .TP .B EINVAL -¥½¥±¥Ã¥È¤¬¤¹¤Ç¤Ë¥¢¥É¥ì¥¹¤Ë·ë¤Ó¤Ä¤± (bind) ¤é¤ì¤Æ¤¤¤ë¡£ -.\" ¤³¤ì¤Ï¾­ÍèÊѹ¹¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -.\" ¾Ü¤·¤¯¤Ï +ソケットがすでにアドレスに結びつけ (bind) られている。 +.\" これは将来変更されるかもしれない。 +.\" 詳しくは .\" .I linux/unix/sock.c -.\" ¤ò»²¾È¤¹¤ë¤³¤È¡£ +.\" を参照すること。 .B ENOTSOCK .I sockfd -¤¬¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¡¢¥½¥±¥Ã¥È¤ËÂФ¹¤ë¤â¤Î¤Ç¤Ï¤Ê¤¤¡£ +がファイルに対するディスクリプタで、ソケットに対するものではない。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤Ï UNIX¥É¥á¥¤¥ó +以下のエラーは UNIXドメイン .RB ( AF_UNIX ) -¤Î¥½¥±¥Ã¥ÈÆÃÍ­¤Ç¤¢¤ë: +のソケット特有である: .TP .B EACCES -¥Ñ¥¹Ì¾¤Î¹½À®Í×ÁǤ˸¡º÷µö²Ä (search permission) ¤¬¤Ê¤¤ +パス名の構成要素に検索許可 (search permission) がない .RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È)¡£ +も参照すること)。 .TP .B EADDRNOTAVAIL -¸ºß¤·¤Ê¤¤¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¬Í׵ᤵ¤ì¤¿¤«¡¢Í׵ᤵ¤ì¤¿¥¢¥É¥ì¥¹¤¬ -¥í¡¼¥«¥ë¤Ç¤Ï¤Ê¤«¤Ã¤¿¡£ +存在しないインタフェースが要求されたか、要求されたアドレスが +ローカルではなかった。 .TP .B EFAULT .I addr -¤¬¥æ¡¼¥¶¤Î¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がユーザのアクセス可能なアドレス空間の外を指している。 .TP .B EINVAL .I addrlen -¤¬ÉÔÀµ¤Ç¤¢¤ë¤«¡¢¥½¥±¥Ã¥È¤¬ +が不正であるか、ソケットが .B AF_UNIX -¥Õ¥¡¥ß¥ê¡¼¤Ç¤Ï¤Ê¤¤¡£ +ファミリーではない。 .TP .B ELOOP .I addr -¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ +を解決する際に遭遇したシンボリック・リンクが多過ぎる。 .TP .B ENAMETOOLONG .I addr -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENOENT -¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ +ファイルが存在しない。 .TP .B ENOMEM -¥«¡¼¥Í¥ë¤Ë¡¢ÍøÍѲÄǽ¤Ê¥á¥â¥ê¡¼¤¬½½Ê¬¤Ë¤Ê¤¤¡£ +カーネルに、利用可能なメモリーが十分にない。 .TP .B ENOTDIR -¥Ñ¥¹Ì¾¤Î¹½À®Í×ÁǤ¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£ +パス名の構成要素がディレクトリではない。 .TP .B EROFS -¥½¥±¥Ã¥È inode ¤¬Æɤ߹þ¤ßÀìÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ë¤¢¤ë¡£ -.SH ½àµò +ソケット inode が読み込み専用のファイルシステム上にある。 +.SH 準拠 SVr4, 4.4BSD, POSIX.1-2001 .RB ( bind () -¤Ï 4.2BSD ¤ÇºÇ½é¤Ë¸½¤ï¤ì¤¿)¡£ -.\" SVr4 ¤Ë¤Ï¾¤Ë¡¢°ìÈ̤Υ¨¥é¡¼¾õÂÖ +は 4.2BSD で最初に現われた)。 +.\" SVr4 には他に、一般のエラー状態 .\" .B ENOSR -.\" µÚ¤Ó UNIX ¥É¥á¥¤¥ó¤Î¥¨¥é¡¼¾õÂÖ +.\" 及び UNIX ドメインのエラー状態 .\" .BR EIO , .\" .B EISDIR -.\" ¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ -.SH Ãí°Õ -POSIX.1-2001 ¤Ç¤Ï +.\" についての記述がある。 +.SH 注意 +POSIX.1-2001 では .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ïɬ¿Ü¤È¤µ¤ì¤Æ¤ª¤é¤º¡¢ -Linux ¤Ç¤Ï¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÏɬÍפǤϤʤ¤¡£ -¤·¤«¤·¡¢Îò»ËŪ¤Ë¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¼ÂÁõ (BSD ·Ï) ¤Ç¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬ -ɬÍפǤ¢¤ê¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤ò -¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤Î¤¬¸­ÌÀ¤Ç¤¢¤í¤¦¡£ +のインクルードは必須とされておらず、 +Linux ではこのヘッダファイルは必要ではない。 +しかし、歴史的には、いくつかの実装 (BSD ç³») でこのヘッダファイルが +必要であり、移植性が必要なアプリケーションではこのファイルを +インクルードするのが賢明であろう。 .BR bind () -¤Î»°ÈÖÌܤΰú¤­¿ô¤Ï (4.x BSD ¤ä libc4, libc5 ¤ÈƱÍͤË) ¼ÂºÝ¤Ë¤Ï +の三番目の引き数は (4.x BSD や libc4, libc5 と同様に) 実際には .I int -¤Ç¤¢¤ë¡£glibc ¤Ç¤â»È¤ï¤ì¤Æ¤¤¤ë¸½ºß¤Î +である。glibc でも使われている現在の .I socklen_t -¤Ë´Ø¤·¤Æ¡¢POSIX ¤Ë¤Ï¾¯¤·º®Í𤬤¢¤ë¡£ -¾Ü¤·¤¯¤Ï +に関して、POSIX には少し混乱がある。 +詳しくは .BR accept (2) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ¥Ð¥° -Æ©²áŪ¥×¥í¥­¥· (transparent proxy) ¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æµ­½Ò¤·¤Æ¤¤¤Ê¤¤¡£ +を参照のこと。 +.SH バグ +透過的プロキシ (transparent proxy) オプションについて記述していない。 .\" FIXME What *are* transparent proxy options? -.SH Îã -¥¤¥ó¥¿¡¼¥Í¥Ã¥È¡¦¥É¥á¥¤¥ó¡¦¥½¥±¥Ã¥È¤Ç¤Î +.SH 例 +インターネット・ドメイン・ソケットでの .BR bind () -¤ÎÍøÍÑÎ㤬 +の利用例が .BR getaddrinfo (3) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ +に記載されている。 -°Ê²¼¤ÎÎã¤Ï¡¢UNIX ¥É¥á¥¤¥ó +以下の例は、UNIX ドメイン .RB ( AF_UNIX ) -¤Ç¥¹¥È¥ê¡¼¥à¥½¥±¥Ã¥È¤ò bind ¤¹¤ëÊýË¡¤ò¼¨¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +でストリームソケットを bind する方法を示したものである。 .\" listen.7 refers to this example. .\" accept.7 refers to this example. .\" unix.7 refers to this example. @@ -328,7 +328,7 @@ main(int argc, char *argv[]) should be deleted using unlink(2) or remove(3) */ } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR accept (2), .BR connect (2), .BR getsockname (2), diff --git a/release/man2/brk.2 b/release/man2/brk.2 index c9d764b8..4b767fd3 100644 --- a/release/man2/brk.2 +++ b/release/man2/brk.2 @@ -39,9 +39,9 @@ .\" Updated 2008-08-04, Akihiro MOTOKI , LDP v3.05 .\" .TH BRK 2 2010-09-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -brk, sbrk \- ¥Ç¡¼¥¿¡¦¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º¤ÎÊѹ¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +brk, sbrk \- データ・セグメントのサイズの変更する +.SH 書式 .B #include .sp .BI "int brk(void *" addr ); @@ -49,9 +49,9 @@ brk, sbrk \- .BI "void *sbrk(intptr_t " increment ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR brk (), @@ -60,7 +60,7 @@ glibc .RS 4 .PD 0 .TP 4 -glibc 2.12 °Ê¹ß: +glibc 2.12 以降: .nf _BSD_SOURCE || _SVID_SOURCE || (_XOPEN_SOURCE\ >=\ 500 || @@ -68,123 +68,123 @@ _BSD_SOURCE || _SVID_SOURCE || !(_POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600) .fi .TP 4 -glibc 2.12 ¤è¤êÁ°: +glibc 2.12 より前: _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .PD .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR brk () -¤È +と .BR sbrk () -¤Ï -.I "¥×¥í¥°¥é¥à¡¦¥Ö¥ì¡¼¥¯ (program break)" -¤Î¾ì½ê¤òÊѹ¹¤¹¤ë¡£ -¥×¥í¥°¥é¥à¡¦¥Ö¥ì¡¼¥¯¤Ï¥×¥í¥»¥¹¤Î¥Ç¡¼¥¿¡¦¥»¥°¥á¥ó¥È (data segment) ¤Î -ËöÈø¤ò¼¨¤¹ (¥×¥í¥°¥é¥à¡¦¥Ö¥ì¡¼¥¯¤Ï¡¢½é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¤ -¥Ç¡¼¥¿¡¦¥»¥°¥á¥ó¥È¤ÎËöÈø¤Îľ¸å¤Î¾ì½ê¤È¤Ê¤ë)¡£ -¥×¥í¥°¥é¥à¡¦¥Ö¥ì¡¼¥¯¤òÁý¤ä¤¹¤È¤¤¤¦¤³¤È¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤Ø¤Î -¥á¥â¥ê¤ò³ä¤êÅö¤Æ¤ë¸ú²Ì¤¬¤¢¤ê¡¢ -¥×¥í¥°¥é¥à¡¦¥Ö¥ì¡¼¥¯¤ò¸º¤é¤¹¤È¤¤¤¦¤³¤È¤Ï¡¢¥á¥â¥ê¤ò²òÊü¤¹¤ë -¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ +は +.I "プログラム・ブレーク (program break)" +の場所を変更する。 +プログラム・ブレークはプロセスのデータ・セグメント (data segment) の +末尾を示す (プログラム・ブレークは、初期化されていない +データ・セグメントの末尾の直後の場所となる)。 +プログラム・ブレークを増やすということは、そのプロセスへの +メモリを割り当てる効果があり、 +プログラム・ブレークを減らすということは、メモリを解放する +ということである。 .BR brk () -¤Ï¡¢¥Ç¡¼¥¿¡¦¥»¥°¥á¥ó¥È¤ÎËöÈø¤ò +は、データ・セグメントの末尾を .I addr -¤Ç»ØÄꤷ¤¿ÃͤËÀßÄꤹ¤ë¡£ -ÀßÄ꤬¹Ô¤ï¤ì¤ë¤Î¤Ï¡¢»ØÄꤷ¤¿Ãͤ¬Í­¸ú¤Ç¡¢ -¥·¥¹¥Æ¥à¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤¢¤ê¡¢ -¥×¥í¥»¥¹¤Î¥Ç¡¼¥¿¥µ¥¤¥º¤ÎºÇÂçÃͤòĶ¤¨¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ç¤¢¤ë +で指定した値に設定する。 +設定が行われるのは、指定した値が有効で、 +システムに十分なメモリがあり、 +プロセスのデータサイズの最大値を超えていない場合である .RB ( setrlimit (2) -¤ò»²¾È)¡£ +を参照)。 .BR sbrk () -¤Ï¡¢¥×¥í¥°¥é¥à¤Î¥Ç¡¼¥¿¶õ´Ö¤ò +は、プログラムのデータ空間を .I increment -¥Ð¥¤¥È¤À¤±Áý¤ä¤¹¡£ +バイトだけ増やす。 .I increment -¤ò 0 ¤Ë¤·¤Æ +を 0 にして .BR sbrk () -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¡¢¥×¥í¥°¥é¥à¤Î¸½ºß¤Î¥Ö¥ì¡¼¥¯ (break) ¾ì½ê¤òÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +を呼び出すことで、プログラムの現在のブレーク (break) 場所を知ることができる。 +.SH 返り値 +成功した場合、 .BR brk () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。 +エラーの場合には、\-1 を返し、 .I errno -¤Ë +に .B ENOMEM -¤òÀßÄꤹ¤ë -(¤¿¤À¤·¡ÖLINUX ¤Ç¤ÎÃí°Õ¡×¤ò»²¾È¤¹¤ë¤³¤È)¡£ +を設定する +(ただし「LINUX での注意」を参照すること)。 -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR sbrk () -¤ÏÊѹ¹Á°¤Î¥×¥í¥°¥é¥à¡¦¥Ö¥ì¡¼¥¯¤òÊÖ¤¹ -(¥×¥í¥°¥é¥à¡¦¥Ö¥ì¡¼¥¯¤¬Áý¤ä¤µ¤ì¤¿¾ì¹ç¡¢¤³¤ÎÃÍ¤Ï -¿·¤·¤¯³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤ÎÀèƬ¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤È¤Ê¤ë)¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï¡¢ +は変更前のプログラム・ブレークを返す +(プログラム・ブレークが増やされた場合、この値は +新しく割り当てられたメモリの先頭を指すポインタとなる)。 +エラーの場合には、 .I "(void\ *)\ \-1" -¤òÊÖ¤·¡¢ +を返し、 .I errno -¤Ë +に .B ENOMEM -¤òÀßÄꤹ¤ë¡£ -.SH ½àµò +を設定する。 +.SH 準拠 4.3BSD, SUSv1. -SUSv2 ¤Ç¤Ï¡Ö²áµî¤Î̾»Ä (LEGACY)¡×¤È°ÌÃÖÉÕ¤±¤é¤ì¤Æ¤ª¤ê¡¢ -POSIX.1-2001 ¤Çºï½ü¤µ¤ì¤¿¡£ +SUSv2 では「過去の名残 (LEGACY)」と位置付けられており、 +POSIX.1-2001 で削除された。 .\" .BR brk () -.\" ¤È +.\" と .\" .BR sbrk () -.\" ¤Ï C µ¬³Ê (C Standard) ¤Ë¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.\" ¤Þ¤¿ POSIX.1 µ¬³Ê¤«¤é¤Ï°Õ¿ÞŪ¤Ë½ü³°¤µ¤ì¤Æ¤¤¤ë (ÃÊÍî B.1.1.1.3, B.8.3.3 »²¾È)¡£ -.SH Ãí°Õ +.\" は C 規格 (C Standard) には定義されていない。 +.\" また POSIX.1 規格からは意図的に除外されている (段落 B.1.1.1.3, B.8.3.3 参照)。 +.SH 注意 .BR brk () -¤ä +や .BR sbrk () -¤ò»ÈÍѤ¹¤ë¤Î¤ÏÈò¤±¤ë¤³¤È¡£ +を使用するのは避けること。 .BR malloc (3) -¥á¥â¥ê³ä¤êÅö¤Æ¥Ñ¥Ã¥±¡¼¥¸¤ÎÊý¤¬¡¢°Ü¿¢À­¤¬¹â¤¯¡¢ -»È¤¤¤ä¤¹¤¤¥á¥â¥ê³ä¤êÅö¤ÆÊýË¡¤òÄ󶡤·¤Æ¤¤¤ë¡£ +メモリ割り当てパッケージの方が、移植性が高く、 +使いやすいメモリ割り当て方法を提供している。 -¤¤¤í¤¤¤í¤Ê¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¡¢ +いろいろなシステムにおいて、 .BR sbrk () -¤Î°ú¤­¿ô¤ËÍÍ¡¹¤Ê·¿¤¬»È¤ï¤ì¤Æ¤¤¤ë¡£ -°ìÈÌŪ¤Ê¤Î¤Ï \fIint\fP, \fIssize_t\fP, \fIptrdiff_t\fP, \fIintptr_t\fP ¤Ç¤¢¤ë¡£ -.\" \fIint\fP (¤¿¤È¤¨¤Ð XPGv4, DU 4.0, HP-UX 11, FreeBSD 4.0, OpenBSD 3.2), +の引き数に様々な型が使われている。 +一般的なのは \fIint\fP, \fIssize_t\fP, \fIptrdiff_t\fP, \fIintptr_t\fP である。 +.\" \fIint\fP (たとえば XPGv4, DU 4.0, HP-UX 11, FreeBSD 4.0, OpenBSD 3.2), .\" \fIssize_t\fP (OSF1 2.0, Irix 5.3, 6.5), .\" \fIptrdiff_t\fP (libc4, libc5, ulibc, glibc 2.0, 2.1), -.\" \fIintptr_t\fP (¤¿¤È¤¨¤Ð XPGv5, AIX, SunOS 5.8, 5.9, FreeBSD 4.7, +.\" \fIintptr_t\fP (たとえば XPGv5, AIX, SunOS 5.8, 5.9, FreeBSD 4.7, .\" NetBSD 1.6, Tru64 5.1, glibc2.2). -.\" ¤È¤¤¤¦¤Î¤¬Ê¬¤«¤ë¤À¤í¤¦¡£ -.SS Linux ¤Ç¤ÎÃí°Õ -¾å¤ÇÀâÌÀ¤·¤¿ +.\" というのが分かるだろう。 +.SS Linux での注意 +上で説明した .BR brk () -¤ÎÊÖ¤êÃͤˤĤ¤¤Æ¤ÎÆ°ºî¤Ï¡¢ -Linux ¤Î +の返り値についての動作は、 +Linux の .BR brk () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¥é¥Ã¥×¤¹¤ë glibc ¤Î´Ø¿ô¤Ë¤è¤ë¤â¤Î¤Ç¤¢¤ë¡£ -(¤½¤Î¾¤Î¿¤¯¤Î¼ÂÁõ¤Ç¤â¡¢ +システムコールをラップする glibc の関数によるものである。 +(その他の多くの実装でも、 .BR brk () -¤ÎÊÖ¤êÃͤϤ³¤ì¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -¤³¤ÎÊÖ¤êÃÍ¤Ï SUSv2 ¤Ç¤âµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£) -¤·¤«¤·¡¢¼ÂºÝ¤Î Linux ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¡¢ -¥×¥í¥°¥é¥à¤Î¿·¤·¤¤¥Ö¥ì¡¼¥¯¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¸½ºß¤Î¥Ö¥ì¡¼¥¯¤òÊÖ¤¹¡£ -glibc ¥é¥Ã¥Ñ¡¼´Ø¿ô¤ÏƱÍͤÎƯ¤­¤ò¤· -(¤¹¤Ê¤ï¤Á¡¢¿·¤·¤¤¥Ö¥ì¡¼¥¯¤¬ +の返り値はこれと同じである。 +この返り値は SUSv2 でも規定されている。) +しかし、実際の Linux システムコールは、成功した場合、 +プログラムの新しいブレークを返す。 +失敗した場合、このシステムコールは現在のブレークを返す。 +glibc ラッパー関数は同様の働きをし +(すなわち、新しいブレークが .I addr -¤è¤ê¾®¤µ¤¤¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤·)¡¢ -¾å¤ÇÀâÌÀ¤·¤¿ 0 ¤È \-1 ¤È¤¤¤¦ÊÖ¤êÃͤòÊÖ¤¹¡£ +より小さいかどうかをチェックし)、 +上で説明した 0 と \-1 という返り値を返す。 -Linux ¤Ç¤Ï +Linux では .BR sbrk () -¤Ï +は .BR brk () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤¦¥é¥¤¥Ö¥é¥ê´Ø¿ô¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤ª¤ê¡¢ -°ÊÁ°¤Î¥Ö¥ì¡¼¥¯¤ÎÃͤòÊÖ¤¹¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤ËÆâÉô¤ÇÄ´À°¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +システムコールを使うライブラリ関数として実装されており、 +以前のブレークの値を返すことができるように内部で調整が行われている。 +.SH 関連項目 .BR execve (2), .BR getrlimit (2), .BR end (3), diff --git a/release/man2/cacheflush.2 b/release/man2/cacheflush.2 index 9d9724f3..53cef42a 100644 --- a/release/man2/cacheflush.2 +++ b/release/man2/cacheflush.2 @@ -27,71 +27,71 @@ .\" by HANATAKA Shinya .\" Updated 2007-06-13, Akihiro MOTOKI , LDP v2.55 .\" -.\"WORD: instruction cache Ì¿Îᥭ¥ã¥Ã¥·¥å -.\"WORD: data cache ¥Ç¡¼¥¿¥­¥ã¥Ã¥·¥å -.\"WORD: flush ¥Õ¥é¥Ã¥·¥å +.\"WORD: instruction cache 命令キャッシュ +.\"WORD: data cache データキャッシュ +.\"WORD: flush フラッシュ .\" .TH CACHEFLUSH 2 2007-05-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -cacheflush \- Ì¿Îᥭ¥ã¥Ã¥·¥å¤ä¥Ç¡¼¥¿¥­¥ã¥Ã¥·¥å¤ÎÆâÍƤò¥Õ¥é¥Ã¥·¥å¤¹¤ë -.SH ½ñ¼° +.SH 名前 +cacheflush \- 命令キャッシュやデータキャッシュの内容をフラッシュする +.SH 書式 .nf .B #include .sp .BI "int cacheflush(char *" addr ", int "nbytes ", int "cache ); .fi -.SH ÀâÌÀ +.SH 説明 .BR cacheflush () -¤Ï +は .I addr -¤«¤é +から .I (addr+nbytes-1) -¤ÎÈϰϤΥ桼¥¶¥¢¥É¥ì¥¹¤ËÂбþ¤¹¤ë -»ØÄꤵ¤ì¤¿¥­¥ã¥Ã¥·¥å¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë¡£ +の範囲のユーザアドレスに対応する +指定されたキャッシュをフラッシュする。 .I cache -¤Ë¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«¤ò»ØÄꤹ¤ë: +には以下のいずれかを指定する: .TP .B ICACHE -Ì¿Îá (instruction) ¥­¥ã¥Ã¥·¥å¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë¡£ +命令 (instruction) キャッシュをフラッシュする。 .TP .B DCACHE -Êѹ¹¤¬¤¢¤Ã¤¿¥­¥ã¥Ã¥·¥å¥é¥¤¥ó¤ò¥á¥â¥ê¤Ë½ñ¤­Ìᤷ¡¢Ìµ¸ú¤Ë¤¹¤ë¡£ +変更があったキャッシュラインをメモリに書き戻し、無効にする。 .TP .B BCACHE .B (ICACHE|DCACHE) -¤ÈƱ¤¸¡£ -.SH ÊÖ¤êÃÍ +と同じ。 +.SH 返り値 .BR cacheflush () -¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤ò¡¢¼ºÇÔ¤·¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤¬¸¡½Ð¤µ¤ì¤¿¾ì¹ç¤Ï +は成功した場合は 0 を、失敗した場合は \-1 を返す。エラーが検出された場合は .I errno -¤Ë¥¨¥é¡¼¤¬»Ø¼¨¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーが指示される。 +.SH エラー .TP .B EFAULT .I addr -¤«¤é +から .I (addr+nbytes-1) -¤ÎÈϰϤΥ¢¥É¥ì¥¹¤ÎÁ´¤Æ¤Þ¤¿¤Ï°ìÉô¤¬ -¥¢¥¯¥»¥¹²Äǽ¤Ç¤Ï¤Ê¤¤¡£ +の範囲のアドレスの全てまたは一部が +アクセス可能ではない。 .TP .B EINVAL .I cache -¥Ñ¥é¥á¡¼¥¿¤¬ +パラメータが .BR ICACHE , .BR DCACHE , .B BCACHE -¤Î¤É¤ì¤Ç¤â¤Ê¤¤¡£ -.SH ½àµò -¤³¤Î Linux ÆÃÍ­¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï MIPS ¥Ù¡¼¥¹¤Î¥·¥¹¥Æ¥à¤Ç¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£ +のどれでもない。 +.SH 準拠 +この Linux 特有のシステムコールは MIPS ベースのシステムでのみ有効である。 .\" FIXME This system call was only on MIPS back in 1.2 days, but .\" by now it is on a number of other architectures (but not i386). .\" Investigate the details and update this page. -°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +移植を意図したプログラムで使用すべきではない。 .\" Irix 6.5 appears to have a cacheflush() syscall -- mtk -.SH ¥Ð¥° -¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¡¢°ú¤­¿ô +.SH バグ +現在の実装では、引き数 .I addr -¤È +と .I nbytes -¤Ï̵»ë¤µ¤ì¤ë¡£¤½¤Î¤¿¤á¡¢ -¾ï¤ËÁ´¤Æ¤Î¥­¥ã¥Ã¥·¥å¤¬¥Õ¥é¥Ã¥·¥å¤µ¤ì¤ë¡£ +は無視される。そのため、 +常に全てのキャッシュがフラッシュされる。 diff --git a/release/man2/capget.2 b/release/man2/capget.2 index e2cc5076..4a543be6 100644 --- a/release/man2/capget.2 +++ b/release/man2/capget.2 @@ -17,59 +17,59 @@ .\" Updated & Modified 2008-08-11, Akihiro MOTOKI, LDP v3.05 .\" Updated 2009-02-24, Akihiro MOTOKI, LDP v3.19 .\" -.\"WORD: capability ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ -.\"WORD: effective capability ¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ -.\"WORD: inheritable capabilit ·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ -.\"WORD: permitted capabily µö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ +.\"WORD: capability ケーパビリティ +.\"WORD: effective capability 実効ケーパビリティ +.\"WORD: inheritable capabilit 継承可能ケーパビリティ +.\"WORD: permitted capabily 許可ケーパビリティ .\" .TH CAPGET 2 2010-09-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -capget, capset \- ¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÀßÄê/¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +capget, capset \- スレッドのケーパビリティを設定/取得する +.SH 書式 .B #include .sp .BI "int capget(cap_user_header_t " hdrp ", cap_user_data_t " datap ); .sp .BI "int capset(cap_user_header_t " hdrp ", const cap_user_data_t " datap ); -.SH ÀâÌÀ -Linux 2.2 ¤Ç¡¢¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼ (root) ¤Î¸¢¸Â¤Ï¡¢¸ÄÊ̤Υ±¡¼¥Ñ¥Ó¥ê¥Æ¥£ -(capabilities) ¤Ø¤Èʬ³ä¤µ¤ì¡¢¤½¤Î½¸¹ç¤È¤·¤Æɽ¸½¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ -³Æ¥¹¥ì¥Ã¥É¤Ï¡Ö¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (effective capability) ¤Î½¸¹ç¡×¤ò»ý¤Á¡¢ -¤½¤ì¤Ë¤è¤Ã¤Æ¸½ºß¤É¤ÎÁàºî¤¬¼Â¹Ô²Äǽ¤«¤ò¼±Ê̤Ǥ­¤ë¡£ -¤Þ¤¿¡¢³Æ¥¹¥ì¥Ã¥É¤Ï¡¢ -¡Ö·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (inheritable capability) ¤Î½¸¹ç¡×¤È -¡Öµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (permitted capability) ¤Î½¸¹ç¡×¤ò»ý¤Ä¡£ -¡Ö·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î½¸¹ç¡×¤Ï +.SH 説明 +Linux 2.2 で、スーパーユーザー (root) の権限は、個別のケーパビリティ +(capabilities) へと分割され、その集合として表現されるようになった。 +各スレッドは「実効ケーパビリティ (effective capability) の集合」を持ち、 +それによって現在どの操作が実行可能かを識別できる。 +また、各スレッドは、 +「継承可能ケーパビリティ (inheritable capability) の集合」と +「許可ケーパビリティ (permitted capability) の集合」を持つ。 +「継承可能ケーパビリティの集合」は .BR execve (2) -¤òÄ̤¸¤ÆÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î½¸¹ç¤Ç¤¢¤ê¡¢ -¡Öµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (permitted capability) ¤Î½¸¹ç¡×¤Ï -¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ä·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤È¤·¤ÆÍ­¸ú¤Ë¤Ç¤­¤ë -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òµ¬Äꤹ¤ë¤â¤Î¤Ç¤¢¤ë¡£ +を通じて渡すことができるケーパビリティの集合であり、 +「許可ケーパビリティ (permitted capability) の集合」は +実効ケーパビリティや継承可能ケーパビリティとして有効にできる +ケーパビリティを規定するものである。 .PP -¤³¤ÎÆó¤Ä¤Î´Ø¿ô¤Ï¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¼èÆÀ¤·¤¿¤êÀßÄꤷ¤¿¤ê¤¹¤ë¤¿¤á¤Î -À¸¤Î¥«¡¼¥Í¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ÆÃÍ­¤Ç¤¢¤ë¤È¤¤¤¦¤À¤±¤Ç¤Ê¤¯¡¢ -¥«¡¼¥Í¥ë API ¤ÏÊѹ¹¤µ¤ì¤ë¤«¤â¤·¤ì¤º¡¢¤³¤ì¤é¤Î -´Ø¿ô¤Î»ÈÍÑË¡ (ÆÃ¤Ë +この二つの関数はスレッドのケーパビリティを取得したり設定したりするための +生のカーネルインターフェースである。 +これらのシステムコールは Linux 特有であるというだけでなく、 +カーネル API は変更されるかもしれず、これらの +関数の使用法 (特に .I cap_user_*_t -·¿¤È¤¤¤¦½ñ¼°) ¤Ï¥«¡¼¥Í¥ë¤Î¥ê¥Ó¥¸¥ç¥óËè¤Ë³ÈÄ¥¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¤¬¡¢ -°ÊÁ°¤Î¥×¥í¥°¥é¥à¤Ï¤½¤Î¤Þ¤ÞÆ°ºî¤¹¤ë¡£ +型という書式) はカーネルのリビジョン毎に拡張されるかもしれないが、 +以前のプログラムはそのまま動作する。 .sp -°Ü¿¢À­¤Î¤¢¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï +移植性のあるインターフェースは .BR cap_set_proc (3) -¤È +と .BR cap_get_proc (3) -¤Ç¤¢¤ë¡£ -²Äǽ¤Ê¤é¤Ð¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¤³¤ì¤é¤Î´Ø¿ô¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë Linux ³ÈÄ¥¤ò»ÈÍѤ·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢¤è¤ê´Êñ¤Ë -»È¤¨¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¢¤ë +である。 +可能ならばアプリケーションはこれらの関数を使用すべきである。 +アプリケーションに Linux 拡張を使用したい場合には、より簡単に +使えるインターフェースである .BR capsetp (3) -¤È +と .BR capgetp (3) -¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ -.SS ¸½ºß¤Î¾ÜºÙ -¸½ºß¤Î¥«¡¼¥Í¥ë¤Î¾ÜºÙ¤Ë¤Ä¤¤¤ÆÃí°Õ¤ò½Ò¤Ù¤Æ¤ª¤¯¡£ -¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë¡£ +を使用すべきである。 +.SS 現在の詳細 +現在のカーネルの詳細について注意を述べておく。 +構造体は以下のように定義される。 .sp .nf .in +4n @@ -93,157 +93,157 @@ typedef struct __user_cap_data_struct { .in -4n .sp .I effective, permitted, inheritable -¤Ï¡¢ +は、 .BR capability (7) -¤ÇÄêµÁ¤µ¤ì¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ë¡£ +で定義されるケーパビリティのビットマスクである。 .I CAP_* -¤Ï¥Ó¥Ã¥ÈÈÖ¹æ¤òɽ¤¹¥¤¥ó¥Ç¥Ã¥¯¥¹ÃͤǤ¢¤ê¡¢ -¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤Ë OR ¤ò¹Ô¤¦Á°¤Ë +はビット番号を表すインデックス値であり、 +ビットフィールドに OR を行う前に .I CAP_* -¤ÎÃͤÎʬ¤À¤±¥Ó¥Ã¥È¥·¥Õ¥È¤ò¹Ô¤¦É¬Íפ¬¤¢¤ë¡£ -typedef ¤ÎÊý¤Ï¥Ý¥¤¥ó¥¿¤Ê¤Î¤Ç¡¢ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÅϤ¹¹½Â¤ÂΤòÄêµÁ¤¹¤ë¤Ë¤Ï¡¢ +の値の分だけビットシフトを行う必要がある。 +typedef の方はポインタなので、 +このシステムコールに渡す構造体を定義するには、 .I struct __user_cap_header_struct -¤È +と .I struct __user_cap_data_struct -¤È¤¤¤¦Ì¾Á°¤ò»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +という名前を使用しなければならない。 -¥«¡¼¥Í¥ë 2.6.25 ¤è¤êÁ°¤Ç¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó +カーネル 2.6.25 より前では、バージョン .B _LINUX_CAPABILITY_VERSION_1 -¤Î 32 ¥Ó¥Ã¥È¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¿ä¾©¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë 2.6.25 °Ê¹ß¤Ç¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó +の 32 ビットケーパビリティが推奨である。 +カーネル 2.6.25 以降では、バージョン .B _LINUX_CAPABILITY_VERSION_2 -¤Î 64 ¥Ó¥Ã¥È¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¿ä¾©¤Ç¤¢¤ë¡£ -64 ¥Ó¥Ã¥È¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ç¤Ï +の 64 ビットケーパビリティが推奨である。 +64 ビットケーパビリティでは .IR datap [0] -¤È +と .IR datap [1] -¤¬»ÈÍѤµ¤ì¤ë¤Î¤ËÂФ·¡¢ -32 ¥Ó¥Ã¥È¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ç¤Ï +が使用されるのに対し、 +32 ビットケーパビリティでは .IR datap [0] -¤À¤±¤¬»ÈÍѤµ¤ì¤ë¡£ +だけが使用される。 .sp -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎµóÆ°¤Ë±Æ¶Á¤¬¤¢¤ë¤â¤¦°ì¤Ä¤ÎÊѹ¹ÅÀ¤Ï¡¢ -¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (file capabilities) ¤Î¥«¡¼¥Í¥ë¤Ë¤è¤ë¥µ¥Ý¡¼¥È -(VFS ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¥µ¥Ý¡¼¥È) ¤Ç¤¢¤ë¡£ -VFS ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¥µ¥Ý¡¼¥È¤Ï¸½ºß¤Î¤È¤³¤í¥³¥ó¥Ñ¥¤¥ë»þ¤Î¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë -(¥«¡¼¥Í¥ë 2.6.24 ¤ÇÄɲ䵤줿)¡£ +これらのシステムコールの挙動に影響があるもう一つの変更点は、 +ファイルケーパビリティ (file capabilities) のカーネルによるサポート +(VFS ケーパビリティのサポート) である。 +VFS ケーパビリティのサポートは現在のところコンパイル時のオプションである +(カーネル 2.6.24 で追加された)。 .sp .BR capget () -¤Ç¤Ï¡¢ +では、 .I hdrp->pid -¤Î¥Õ¥£¡¼¥ë¥ÉÃͤ˥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÃΤꤿ¤¤¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤ò -»ØÄꤹ¤ë¤³¤È¤Ç¡¢Ç¤°Õ¤Î¥×¥í¥»¥¹¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÄ´¤Ù¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.SS VFS ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç -VFS ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¥µ¥Ý¡¼¥È¤Ç¤Ï¡¢Æø¢¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò -Äɲ乤뤿¤á¤Î¥Õ¥¡¥¤¥ë°À­¥á¥½¥Ã¥É¤¬ºîÀ®¤µ¤ì¤¿¡£ -¤³¤ÎÆø¢¥â¥Ç¥ë¤ÎƳÆþ¤Ë¤è¤ê¡¢¤¢¤ë¥×¥í¥»¥¹¤Ë¤è¤êÊÌ¤Î¥×¥í¥»¥¹¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ -¤òÈóƱ´ü¤ËÀßÄꤹ¤ëµ¡Ç½¤Î¥«¡¼¥Í¥ë¤Ë¤è¤ë¥µ¥Ý¡¼¥È¤ÏÇѻߤµ¤ì¤ë¡£ -¤Ä¤Þ¤ê¡¢VFS ¥µ¥Ý¡¼¥È¤Ç¤Ï¡¢ +のフィールド値にケーパビリティを知りたいプロセスのプロセス ID を +指定することで、任意のプロセスのケーパビリティを調べることができる。 +.SS VFS ケーパビリティがサポートされている場合 +VFS ケーパビリティのサポートでは、特権実行ファイルにケーパビリティを +追加するためのファイル属性メソッドが作成された。 +この特権モデルの導入により、あるプロセスにより別のプロセスのケーパビリティ +を非同期に設定する機能のカーネルによるサポートは廃止される。 +つまり、VFS サポートでは、 .BR capset () -¤ò¸Æ¤Ó½Ð¤¹ºÝ¤Ë +を呼び出す際に .I hdrp->pid -¤ÎÃͤȤ·¤Æµö¤µ¤ì¤ë¤Î¤Ï 0 ¤È +の値として許されるのは 0 と .BR getpid (2) -¤¬ÊÖ¤¹ÃͤÀ¤±¤È¤Ê¤ë (¤É¤Á¤é¤ÎÃͤǤâÅù²Á¤Ç¤¢¤ë)¡£ -.SS VFS ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç -¥«¡¼¥Í¥ë¤¬ VFS ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +が返す値だけとなる (どちらの値でも等価である)。 +.SS VFS ケーパビリティがサポートされていない場合 +カーネルが VFS ケーパビリティをサポートしていない場合、 .I hdrp -¤Î +の .I pid -¥Õ¥£¡¼¥ë¥É¤¬ 0 °Ê³°¤Ç¤¢¤ì¤Ð¡¢ +フィールドが 0 以外であれば、 .BR capset () -¤ÎÁàºîÂÐ¾Ý¤Ï +の操作対象は .I pid -¤Ç»ØÄꤵ¤ì¤¿¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ë¤Ê¤ë¡£ +で指定されたスレッドのケーパビリティになる。 .I pid -¤¬ 0 ¤Î¾ì¹ç¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬ÁàºîÂоݤȤʤ롣 +が 0 の場合は呼び出し元のスレッドのケーパビリティが操作対象となる。 .I pid -¤¬¥·¥ó¥°¥ë¥¹¥ì¥Ã¥É¡¦¥×¥í¥»¥¹¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¡¢ +がシングルスレッド・プロセスを参照している場合、 .I pid -¤Ï°ÊÁ°¤«¤é»È¤ï¤ì¤Æ¤¤¤ë¥×¥í¥»¥¹ID ¤ò»È¤Ã¤Æ»ØÄê¤Ç¤­¤ë¡£ -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¡¦¥×¥í¥»¥¹Æâ¤Î¤¢¤ë¥¹¥ì¥Ã¥É¤òÂоݤˤ¹¤ë¾ì¹ç¤Ï¡¢ +は以前から使われているプロセスID を使って指定できる。 +マルチスレッド・プロセス内のあるスレッドを対象にする場合は、 .BR gettid (2) -¤¬ÊÖ¤¹¥¹¥ì¥Ã¥ÉID ¤òÍѤ¤¤Æ»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¡£ -¤Þ¤¿¡¢ +が返すスレッドID を用いて指定する必要がある。 +また、 .BR capset () -¤Ç¤Ï \-1 ¤ä \-1 ¤è¤ê¾®¤µ¤ÊÃͤò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -\-1 ¤Ï¸Æ¤Ó½Ð¤·¸µ¤È +では \-1 や \-1 より小さな値を指定することもできる。 +\-1 は呼び出し元と .BR init (8) -¤ò½ü¤¯Á´¤Æ¤Î¥¹¥ì¥Ã¥É¤òÂоݤȤ·¤ÆÊѹ¹¤ò¹Ô¤¦¤³¤È¤ò¡¢ -\-1 ¤è¤ê¾®¤µ¤ÊÃÍ¤Ï ID ¤¬ \-\fIpid\fP ¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÎÁ´¥á¥ó¥Ð -¤òÂоݤȤ·¤ÆÊѹ¹¤ò¹Ô¤¦¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +を除く全てのスレッドを対象として変更を行うことを、 +\-1 より小さな値は ID が \-\fIpid\fP のプロセスグループの全メンバ +を対象として変更を行うことを意味する。 -¤³¤Î¥Ç¡¼¥¿¤Î¾ÜºÙ¤Ï +このデータの詳細は .BR capabilities (7) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï \-1 ¤òÊÖ¤·¡¢ +を参照すること。 +.SH 返り値 +成功した場合には 0 を返す。エラーの場合には \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .I hdrp -¤Î¥Õ¥£¡¼¥ë¥É +のフィールド .I version -¤Ë¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤Ãͤ¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ -¸Æ¤Ó½Ð¤·¤Ï¥¨¥é¡¼ +にサポートされていない値が指定された場合、 +呼び出しはエラー .B EINVAL -¤Ç¼ºÇÔ¤·¡¢ +で失敗し、 .I version -¤Ë¥«¡¼¥Í¥ë¿ä¾©¤Î +にカーネル推奨の .B _LINUX_CAPABILITY_VERSION_? -¤òÀßÄꤹ¤ë¡£ -¤³¤Î¤è¤¦¤Ë¤·¤Æ¡¢¸½ºß¤Î¿ä¾©¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥ê¥Ó¥¸¥ç¥ó¤¬²¿¤«¤ò -Ä´¤Ù¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.SH ¥¨¥é¡¼ +を設定する。 +このようにして、現在の推奨ケーパビリティ・リビジョンが何かを +調べることができる。 +.SH エラー .TP .B EFAULT -ÉÔÀµ¤Ê¥á¥â¥ê¥¢¥É¥ì¥¹¡£ +不正なメモリアドレス。 .I hdrp -¤Ï NULL ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +は NULL であってはならない。 .I datap -¤Ë NULL ¤ò»ØÄꤷ¤Æ¤è¤¤¤Î¤Ï¡¢¥æ¡¼¥¶¤¬¥«¡¼¥Í¥ë¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë -¿ä¾©¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¡¼¥¸¥ç¥ó¤òȽÄꤷ¤è¤¦¤È¤·¤Æ¤¤¤ë¤È¤­¤À¤±¤Ç¤¢¤ë¡£ +に NULL を指定してよいのは、ユーザがカーネルがサポートしている +推奨のケーパビリティ・バージョンを判定しようとしているときだけである。 .TP .B EINVAL -°ú¤­¿ô¤Î¤É¤ì¤«¤¬Ìµ¸ú¤Ç¤¢¤ë¡£ +引き数のどれかが無効である。 .TP .B EPERM -¡Öµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¡×¤Ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÄɲ䷤褦¤È¤·¤Æ¤¤¤ë¤«¡¢ -¤â¤·¤¯¤Ï¡Öµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¡×¤Ë´Þ¤Þ¤ì¤Ê¤¤¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò -¡Ö¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¡×¤ä¡Ö·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¡×¤Ë -¥»¥Ã¥È¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¡£ +「許可ケーパビリティセット」にケーパビリティを追加しようとしているか、 +もしくは「許可ケーパビリティセット」に含まれないケーパビリティを +「実効ケーパビリティセット」や「継承可能ケーパビリティセット」に +セットしようとしている。 .TP .B EPERM -¸Æ¤Ó½Ð¤·¸µ¤¬¼«Ê¬°Ê³°¤Î¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò +呼び出し元が自分以外のスレッドのケーパビリティを .BR capset () -¤ò»È¤Ã¤Æ½¤Àµ¤·¤è¤¦¤È¤·¤¿¤¬¡¢½½Ê¬¤ÊÆø¢¤¬¤Ê¤«¤Ã¤¿¡£ -VFS ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -¤³¤ÎÁàºî¤¬µö²Ä¤µ¤ì¤ë¤³¤È¤Ï·è¤·¤Æ¤Ê¤¤¡£ -VFS ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +を使って修正しようとしたが、十分な特権がなかった。 +VFS ケーパビリティをサポートしているカーネルでは、 +この操作が許可されることは決してない。 +VFS ケーパビリティをサポートしていないカーネルでは、 .B CAP_SETPCAP -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ -(¥Ð¡¼¥¸¥ç¥ó 2.6.11 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ë¤Ï¡¢ -¤³¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤¥¹¥ì¥Ã¥É¤¬ +ケーパビリティが必要である。 +(バージョン 2.6.11 より前のカーネルには、 +このケーパビリティを持たないスレッドが .I pid -¥Õ¥£¡¼¥ë¥É¤Ë 0 ¤Ç¤Ê¤¤ÃÍ (¤Ä¤Þ¤ê¡¢0 ¤ÎÂå¤ï¤ê¤Ë +フィールドに 0 でない値 (つまり、0 の代わりに .BR getpid (2) -¤¬ÊÖ¤¹ÃÍ) ¤ò»ØÄꤷ¤Æ¼«Ê¬¼«¿È¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÊѹ¹¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤Ë¤â¡¢ -¤³¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤È¤¤¤¦¥Ð¥°¤¬¤¢¤Ã¤¿¡£) +が返す値) を指定して自分自身のケーパビリティを変更しようとした場合にも、 +このエラーが発生するというバグがあった。) .TP .B ESRCH -¤½¤Î¤è¤¦¤Ê¥¹¥ì¥Ã¥É¤¬Â¸ºß¤·¤Ê¤¤¡£ -.SH ½àµò -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ -.SH È÷¹Í -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÀßÄꤷ¤¿¤ê¼èÆÀ¤·¤¿¤ê¤¹¤ëµ¡Ç½¤Î¤¿¤á¤Î°Ü¿¢À­¤¢¤ë -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï +そのようなスレッドが存在しない。 +.SH 準拠 +これらのシステムコールは Linux 独自である。 +.SH 備考 +ケーパビリティを設定したり取得したりする機能のための移植性ある +インターフェースは .I libcap -¥é¥¤¥Ö¥é¥ê¤Ë¤è¤Ã¤ÆÄ󶡤µ¤ì¤ë¡£ -¤³¤Î¥é¥¤¥Ö¥é¥ê¤Ï°Ê²¼¤«¤éÆþ¼ê¤Ç¤­¤ë: +ライブラリによって提供される。 +このライブラリは以下から入手できる: .br http://www.kernel.org/pub/linux/libs/security/linux-privs -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR clone (2), .BR gettid (2), .BR capabilities (7) diff --git a/release/man2/chdir.2 b/release/man2/chdir.2 index aef8baf1..31044c63 100644 --- a/release/man2/chdir.2 +++ b/release/man2/chdir.2 @@ -39,9 +39,9 @@ .\" Updated 2007-09-04, Akihiro MOTOKI , LDP v2.64 .\" .TH CHDIR 2 2010-09-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -chdir, fchdir \- ºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤ÎÊѹ¹ -.SH ½ñ¼° +.SH 名前 +chdir, fchdir \- 作業ディレクトリの変更 +.SH 書式 .B #include .sp .BI "int chdir(const char *" path ); @@ -49,9 +49,9 @@ chdir, fchdir \- .BI "int fchdir(int " fd ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR fchdir (): @@ -61,91 +61,91 @@ glibc _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .br -|| /* glibc 2.12 °Ê¹ß: */ _POSIX_C_SOURCE\ >=\ 200809L +|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\ >=\ 200809L .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR chdir () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê (current working directory) ¤ò¡¢ +は、呼び出し元プロセスの現在の作業ディレクトリ (current working directory) を、 .I path -¤Ë»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ËÊѹ¹¤¹¤ë¡£ +に指定されたディレクトリに変更する。 .PP .BR fchdir () -¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤È¤·¤Æ -»ØÄꤵ¤ì¤ë°Ê³°¤Ï¡¢ +は、ディレクトリがオープンされたファイル・ディスクリプターとして +指定される以外は、 .BR chdir () -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢0 ¤òÊÖ¤¹¡£¼ºÇÔ¤¹¤ë¤È¡¢\-1 ¤òÊÖ¤·¡¢ +と同じである。 +.SH 返り値 +成功すると、0 を返す。失敗すると、\-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤò¥»¥Ã¥È¤¹¤ë¡£ -.SH ¥¨¥é¡¼ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¾¤Î¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë»ö¤¬¤¢¤ë¡£ +に適切な値をセットする。 +.SH エラー +ファイルシステムによっては他のエラーが返される事がある。 .BR chdir () -¤Ç°ìÈÌŪ¤Ê¥¨¥é¡¼¤ò°Ê²¼¤Ëµó¤²¤ë: +で一般的なエラーを以下に挙げる: .TP .B EACCES .I path -¤Î¹½À®Í×ÁǤΤ¤¤º¤ì¤«¤Ë¸¡º÷µö²Ä (search permission) ¤¬¤Ê¤¤ +の構成要素のいずれかに検索許可 (search permission) がない .RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È)¡£ +も参照すること)。 .TP .B EFAULT -³ä¤êÅö¤Æ¤é¤ì¤¿¥¢¥É¥ì¥¹¶õ´Ö³°¤ò +割り当てられたアドレス空間外を .I path -¤¬»Ø¤·¤Æ¤¤¤ë¡£ +が指している。 .TP .B EIO -I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +I/O エラーが発生した。 .TP .B ELOOP .I path -¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ +を解決する際に遭遇したシンボリック・リンクが多過ぎる。 .TP .B ENAMETOOLONG .I path -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENOENT -¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¸ºß¤·¤Ê¤¤¡£ +そのディレクトリは存在しない。 .TP .B ENOMEM -¥«¡¼¥Í¥ë¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +カーネルに十分なメモリがない。 .TP .B ENOTDIR .I path -¤Î¹½À®Í×ÁǤ¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£ +の構成要素がディレクトリではない。 .PP .BR fchdir () -¤Ç°ìÈÌŪ¤Ê¥¨¥é¡¼¤ò°Ê²¼¤Ëµó¤²¤ë: +で一般的なエラーを以下に挙げる: .TP .B EACCES .I fd -¤ò¥Ç¥£¥ì¥¯¥È¥ê¤È¤·¤Æ¥ª¡¼¥×¥ó¤¹¤ë¤¿¤á¤Î¸¡º÷µö²Ä¤¬¤Ê¤¤¡£ +をディレクトリとしてオープンするための検索許可がない。 .TP .B EBADF .I fd -¤¬Å¬Àڤʥե¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ç¤Ê¤¤¡£ -.SH ½àµò +が適切なファイル・ディスクリプターでない。 +.SH 準拠 SVr4, 4.4BSD, POSIX.1-2001. -.SH Ãí°Õ -¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢ÁêÂХѥ¹Ì¾ (\(aq/\(aq) ¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤Ê¤¤¥Ñ¥¹Ì¾) ¤ò -²ò¼á¤¹¤ëºÝ¤Î³«»ÏÅÀ¤Ç¤¢¤ë¡£ +.SH 注意 +現在の作業ディレクトリは、相対パス名 (\(aq/\(aq) で始まっていないパス名) を +解釈する際の開始点である。 .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢¿Æ¥×¥í¥»¥¹¤Î¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤ò -·Ñ¾µ¤¹¤ë¡£ +で作成された子プロセスは、親プロセスの現在の作業ディレクトリを +継承する。 .BR execve (2) -¤ÎÁ°¸å¤Ç¡¢¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +の前後で、現在の作業ディレクトリは変更されない。 .BR fchdir () -¤Î¥×¥í¥È¥¿¥¤¥×¤¬Í­¸ú¤Ë¤Ê¤ë¤Î¤Ï¡¢ +のプロトタイプが有効になるのは、 .B _BSD_SOURCE -¤òÄêµÁ¤·¤¿¾ì¹ç¤«¡¢ +を定義した場合か、 .B _XOPEN_SOURCE -¤òÃÍ 500 ¤ÇÄêµÁ¤·¤¿¾ì¹ç¤Î¤ß¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を値 500 で定義した場合のみである。 +.SH 関連項目 .BR chroot (2), .BR getcwd (3), .BR path_resolution (7) diff --git a/release/man2/chmod.2 b/release/man2/chmod.2 index c216c51d..a32624ef 100644 --- a/release/man2/chmod.2 +++ b/release/man2/chmod.2 @@ -37,9 +37,9 @@ .\" Updated 2008-08-09, Akihiro MOTOKI , LDP v3.05 .\" .TH CHMOD 2 2010-09-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -chmod, fchmod \- ¥Õ¥¡¥¤¥ë¤Î¥â¡¼¥É¤òÊѹ¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +chmod, fchmod \- ファイルのモードを変更する +.SH 書式 .B #include .sp .BI "int chmod(const char *" path ", mode_t " mode ); @@ -47,9 +47,9 @@ chmod, fchmod \- .BI "int fchmod(int " fd ", mode_t " mode ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -60,185 +60,185 @@ _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .br -|| /* glibc 2.12 °Ê¹ß: */ _POSIX_C_SOURCE\ >=\ 200809L +|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\ >=\ 200809L .PD .ad -.SH ÀâÌÀ -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹µö²Ä (permission) ¤òÊѹ¹¤¹¤ë¡£ -¥·¥¹¥Æ¥à¥³¡¼¥ë´Ö¤Î°ã¤¤¤Ï¡¢¥Õ¥¡¥¤¥ë¤Î»ØÄê¤Î»ÅÊý¤À¤±¤Ç¤¢¤ë¡£ +.SH 説明 +これらのシステムコールはファイルのアクセス許可 (permission) を変更する。 +システムコール間の違いは、ファイルの指定の仕方だけである。 .IP * 2 .BR chmod () -¤Ï¡¢ +は、 .I path -¤Ç»ØÄꤵ¤ì¤¿¥Ñ¥¹Ì¾¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤Îµö²Ä¤òÊѹ¹¤¹¤ë¡£ +で指定されたパス名を持つファイルの許可を変更する。 .I path -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Î¾ì¹ç¤Ï¡¢¥ê¥ó¥¯¤ÎŸ³«¤¬¹Ô¤ï¤ì¤ë¡£ +がシンボリック・リンクの場合は、リンクの展開が行われる。 .IP * .BR fchmod () -¤Ï¡¢¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +は、オープンされたファイルディスクリプタ .I fd -¤Ë¤è¤ê»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Îµö²Ä¤òÊѹ¹¤¹¤ë¡£ +により参照されるファイルの許可を変更する。 .PP -¿·¤·¤¤¥Õ¥¡¥¤¥ëµö²Ä¤Ï +新しいファイル許可は .I mode -¤Ç»ØÄꤵ¤ì¤ë¡£ +で指定される。 .I mode -¤Ï¡¢°Ê²¼¤Ë¼¨¤¹ÃͤΠ0 ¸Ä°Ê¾å¤Î OR (ÏÀÍýÏÂ) ¤ò¤È¤Ã¤ÆºîÀ®¤µ¤ì¤ë -¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ë¡£ +は、以下に示す値の 0 個以上の OR (論理和) をとって作成される +ビットマスクである。 .TP 18 .BR S_ISUID " (04000)" set-user-ID .RB ( execve (2) -»þ¤Ë¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤Ë¥»¥Ã¥È¤µ¤ì¤ë) +時にプロセスの実効ユーザ ID にセットされる) .TP .BR S_ISGID " (02000)" set-group-ID -(°Ê²¼¤Î¾ì¹ç¤Ë +(以下の場合に .RB ( execve (2) -¼Â¹Ô»þ¤Ë¥×¥í¥»¥¹¤Î¼Â¸ú¥°¥ë¡¼¥× ID ¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡¢ -¶¯À©¥í¥Ã¥¯ (mandatory locking) ¤ò¹Ô¤¦ +実行時にプロセスの実効グループ ID にセットされる、 +強制ロック (mandatory locking) を行う .RB ( fcntl (2) -¤ÎÀâÌÀ¤ò»²¾È)¡¢ -¿·¤·¤¤¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥×¤È¤·¤Æ¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤ÈƱ¤¸¤â¤Î¤ò»È¤¦ +の説明を参照)、 +新しいファイルのグループとして親ディレクトリと同じものを使う .RB ( chown (2) -¤È +と .BR ( mkdir (2) -¤ÎÀâÌÀ¤ò»²¾È) +の説明を参照) .TP .BR S_ISVTX " (01000)" -¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È (sticky bit) (ºï½üÀ©¸Â¥Õ¥é¥°¡¢ +スティッキー・ビット (sticky bit) (削除制限フラグ、 .BR unlink (2) -¤ÎÀâÌÀ¤ò»²¾È) +の説明を参照) .TP .BR S_IRUSR " (00400)" -½êÍ­¼Ô¤Ë¤è¤ëÆɤ߼è¤ê +所有者による読み取り .TP .BR S_IWUSR " (00200)" -½êÍ­¼Ô¤Ë¤è¤ë½ñ¤­¹þ¤ß +所有者による書き込み .TP .BR S_IXUSR " (00100)" -½êÍ­¼Ô¤Ë¤è¤ë¼Â¹Ô (execute) / ¸¡º÷ (search) -(¡Ö¸¡º÷¡×¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ·¤ÆŬÍѤµ¤ì¤ë¤â¤Î¤Ç¡¢ -¤½¤Î¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥¨¥ó¥È¥ê¡¼¤Ø¥¢¥¯¥»¥¹¤Ç¤­¤ë¤«¤ò°ÕÌ£¤¹¤ë) +所有者による実行 (execute) / 検索 (search) +(「検索」はディレクトリに対して適用されるもので、 +そのディレクトリ内のエントリーへアクセスできるかを意味する) .TP .BR S_IRGRP " (00040)" -¥°¥ë¡¼¥×¤Ë¤è¤ëÆɤ߼è¤ê +グループによる読み取り .TP .BR S_IWGRP " (00020)" -¥°¥ë¡¼¥×¤Ë¤è¤ë½ñ¤­¹þ¤ß +グループによる書き込み .TP .BR S_IXGRP " (00010)" -¥°¥ë¡¼¥×¤Ë¤è¤ë¼Â¹Ô / ¸¡º÷ +グループによる実行 / 検索 .TP .BR S_IROTH " (00004)" -¾¿Í (others) ¤Ë¤è¤ëÆɤ߼è¤ê +他人 (others) による読み取り .TP .BR S_IWOTH " (00002)" -¾¿Í¤Ë¤è¤ë½ñ¤­¹þ¤ß +他人による書き込み .TP .BR S_IXOTH " (00001)" -¾¿Í¤Ë¤è¤ë¼Â¹Ô / ¸¡º÷ +他人による実行 / 検索 .PP -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú (effective) UID ¤¬¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤È°ìÃפ¹¤ë¤«¡¢ -¤½¤Î¥×¥í¥»¥¹¤¬Æø¢¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(Linux ¤Ç¤Ï +呼び出したプロセスの実効 (effective) UID がファイルの所有者と一致するか、 +そのプロセスが特権を持たなければならない +(Linux では .B CAP_FOWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£ +ケーパビリティ (capability) を持たなければならない)。 -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ËÆø¢¤¬¤Ê¤¯ (Linux ¤Ç¤Ï +呼び出したプロセスに特権がなく (Linux では .B CAP_FSETID -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¤Ê¤¯)¡¢¤«¤Ä¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥× ID ¤¬ -¥×¥í¥»¥¹¤Î¼Â¸ú¥°¥ë¡¼¥× ID ¤Þ¤¿¤ÏÊä½õŪ¤Ê¥°¥ë¡¼¥× ID ¤Ë¥Þ¥Ã¥Á¤·¤Ê¤¤¾ì¹ç¡¢ +ケーパビリティがなく)、かつファイルのグループ ID が +プロセスの実効グループ ID または補助的なグループ ID にマッチしない場合、 .B S_ISGID -¥Ó¥Ã¥È¤Ï¥ª¥Õ¤Ë¤µ¤ì¤ë¤¬¡¢¤³¤ì¤Ë¤è¤Ã¤Æ¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ +ビットはオフにされるが、これによってエラーが返されることはない。 -°ÂÁ´¤Î¤¿¤á¤Î½èÃ֤Ȥ·¤Æ¡¢ -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¡¢¥Õ¥¡¥¤¥ë¤Î½ñ¤­¹þ¤ß¤ò¹Ô¤¦»þ¤Ë -¥»¥Ã¥È¡¦¥æ¡¼¥¶¡¼ ID ¤È¥»¥Ã¥È¡¦¥°¥ë¡¼¥× ID ¥Ó¥Ã¥È¤È¼Â¹Ô¥Ó¥Ã¥È¤¬ -¥ª¥Õ¤Ë¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ -(Linux ¤Ç¤Ï¡¢½ñ¤­¹þ¤ß¥×¥í¥»¥¹¤¬ +安全のための処置として、 +ファイル・システムによっては、ファイルの書き込みを行う時に +セット・ユーザー ID とセット・グループ ID ビットと実行ビットが +オフにされることがある。 +(Linux では、書き込みプロセスが .B CAP_FSETID -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¡¢¤³¤ì¤¬µ¯¤³¤ë¡£) -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ÎÃæ¤Ë¤Ï¡¢¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼¤À¤±¤¬ -ÆÃÊ̤ΰÕÌ£¤ò»ý¤Ä¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È¤òÀßÄê¤Ç¤­¤ë¤â¤Î¤¬¤¢¤ë¡£ -¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È¤È¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ¹¤ë -¥»¥Ã¥È¡¦¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×)¡¦ID ¥Ó¥Ã¥È¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +ケーパビリティを持っていない場合に、これが起こる。) +ファイル・システムの中には、スーパー・ユーザーだけが +特別の意味を持つスティッキー・ビットを設定できるものがある。 +スティッキー・ビットとディレクトリに対する +セット・ユーザー (グループ)・ID ビットについては、 .BR stat (2) -¤ò¸«¤è¡£ +を見よ。 -NFS ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ç¤Ï¡¢¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤òÀ©¸Â¤¹¤ë¤È¡¢ -´û¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¤¹¤°¤Ë±Æ¶Á¤¬µÚ¤Ö¡£ -¤³¤ì¤Ï¥¢¥¯¥»¥¹À©¸æ¤¬¥µ¡¼¥Ð¡¼¾å¤Ç¹Ô¤ï¤ì¤Æ¤¤¤ë¤¬¡¢ -¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Ï¥¯¥é¥¤¥¢¥ó¥È¦¤Ç´ÉÍý¤µ¤ì¤Æ¤¤¤ë¤¿¤á¤Ç¤¢¤ë¡£ -¥¯¥é¥¤¥¢¥ó¥È¦¤Ç¥Õ¥¡¥¤¥ë°À­¤Î¥­¥ã¥Ã¥·¥å¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢ -¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ÎÀ©¸Â¤ò´Ë¤¯¤¹¤ë¤È¡¢ -¾¤Î¥¯¥é¥¤¥¢¥ó¥È¤Ë¾ðÊó¤¬ÅÁ¤ï¤ë¤Î¤¬ÃÙ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢0 ¤òÊÖ¤¹¡£¼ºÇÔ¤¹¤ë¤È¡¢\-1¤òÊÖ¤·¡¢ +NFS ファイルシステム上では、パーミッションを制限すると、 +既にオープンされているファイルに対してすぐに影響が及ぶ。 +これはアクセス制御がサーバー上で行われているが、 +オープンされているファイルはクライアント側で管理されているためである。 +クライアント側でファイル属性のキャッシュが有効になっている場合に、 +パーミッションの制限を緩くすると、 +他のクライアントに情報が伝わるのが遅れるかもしれない。 +.SH 返り値 +成功すると、0 を返す。失敗すると、\-1を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¾¤Î¥¨¥é¡¼¤òÊÖ¤¹¾ì¹ç¤¬¤¢¤ë¡£ +に適切な値を設定する。 +.SH エラー +ファイル・システムによっては他のエラーを返す場合がある。 .BR chmod () -¤Ç°ìÈÌŪ¤Ê¥¨¥é¡¼¤ò°Ê²¼¤Ëµó¤²¤ë¡£ +で一般的なエラーを以下に挙げる。 .TP .B EACCES -¥Ñ¥¹Ì¾¤Î¹½À®Í×ÁǤ˸¡º÷µö²Ä¤¬¤Ê¤¤ +パス名の構成要素に検索許可がない .RB ( path_resolution (7) -¤â¸«¤è)¡£ +も見よ)。 .TP .B EFAULT .I path -¤¬³ä¤êÅö¤Æ¤é¤ì¤¿¥¢¥É¥ì¥¹¶õ´Ö³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +が割り当てられたアドレス空間外を指している。 .TP .B EIO -I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +I/O エラーが発生した。 .TP .B ELOOP .I path -¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ +を解決する際に遭遇したシンボリック・リンクが多過ぎる。 .TP .B ENAMETOOLONG .I path -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENOENT -¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ +ファイルが存在しない。 .TP .B ENOMEM -¥«¡¼¥Í¥ë¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +カーネルに十分なメモリがない。 .TP .B ENOTDIR -¥Ñ¥¹Ì¾¤Î¹½À®Í×ÁǤ¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£ +パス名の構成要素がディレクトリではない。 .TP .B EPERM -¼Â¸ú UID ¤¬¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤È°ìÃפ»¤º¡¢¥×¥í¥»¥¹¤ËÆø¢¤¬¤Ê¤¤ -(Linux ¤Ç¤Ï +実効 UID がファイルの所有者と一致せず、プロセスに特権がない +(Linux では .B CAP_FOWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤)¡£ +ケーパビリティを持たない)。 .TP .B EROFS -¥Õ¥¡¥¤¥ë¤¬Æɤ߹þ¤ßÀìÍÑ (read only) ¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¾å¤Ë¤¢¤ë¡£ +ファイルが読み込み専用 (read only) のファイル・システム上にある。 .PP .BR fchmod () -¤Ç°ìÈÌŪ¤Ê¥¨¥é¡¼¤òµó¤²¤ë: +で一般的なエラーを挙げる: .TP .B EBADF -¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ +ファイル・ディスクリプター .I fd -¤¬Í­¸ú¤Ç¤Ê¤¤¡£ +が有効でない。 .TP .B EIO -¾åµ­¤ò»²¾È¡£ +上記を参照。 .TP .B EPERM -¾åµ­¤ò»²¾È¡£ +上記を参照。 .TP .B EROFS -¾åµ­¤ò»²¾È¡£ -.SH ½àµò +上記を参照。 +.SH 準拠 4.4BSD, SVr4, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chown (2), .BR execve (2), .BR fchmodat (2), diff --git a/release/man2/chown.2 b/release/man2/chown.2 index eede5c6a..1cac0892 100644 --- a/release/man2/chown.2 +++ b/release/man2/chown.2 @@ -45,9 +45,9 @@ .\" Updated 2008-08-09, Akihiro MOTOKI , LDP v3.05 .\" .TH CHOWN 2 2010-09-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -chown, fchown, lchown \- ¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤òÊѹ¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +chown, fchown, lchown \- ファイルの所有者を変更する +.SH 書式 .B #include .sp .BI "int chown(const char *" path ", uid_t " owner ", gid_t " group ); @@ -57,9 +57,9 @@ chown, fchown, lchown \- .BI "int lchown(const char *" path ", uid_t " owner ", gid_t " group ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR fchown (), @@ -70,227 +70,227 @@ glibc _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .br -|| /* glibc 2.12 °Ê¹ß: */ _POSIX_C_SOURCE\ >=\ 200809L +|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\ >=\ 200809L .RE .ad .PD -.SH ÀâÌÀ -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô (owner) ¤È¥°¥ë¡¼¥×¤òÊѹ¹¤¹¤ë¡£ -¥·¥¹¥Æ¥à¥³¡¼¥ë´Ö¤Î°ã¤¤¤Ï¡¢¥Õ¥¡¥¤¥ë¤Î»ØÄê¤Î»ÅÊý¤À¤±¤Ç¤¢¤ë¡£ +.SH 説明 +これらのシステムコールは、ファイルの所有者 (owner) とグループを変更する。 +システムコール間の違いは、ファイルの指定の仕方だけである。 .IP * 2 .BR chown () -¤Ï +は .I path -¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î½êÍ­¸¢¤òÊѹ¹¤¹¤ë¡£ +で指定されたファイルの所有権を変更する。 .I path -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Î¾ì¹ç¤Ï¡¢¥ê¥ó¥¯¤ÎŸ³«¤¬¹Ô¤ï¤ì¤ë¡£ +がシンボリック・リンクの場合は、リンクの展開が行われる。 .IP * .BR fchown () -¤Ï¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +はオープンされたファイルディスクリプタ .I fd -¤Ë¤è¤ê»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Î½êÍ­¸¢¤òÊѹ¹¤¹¤ë¡£ +により参照されるファイルの所有権を変更する。 .IP * .BR lchown () -¤Ï +は .BR chown () -¤ÈƱ¤¸¤À¤¬¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤òŸ³«¤·¤Ê¤¤ÅÀ¤¬°Û¤Ê¤ë¡£ +と同じだが、シンボリック・リンクを展開しない点が異なる。 .PP -Æø¢¤ò»ý¤Ä¥×¥í¥»¥¹ (Linux ¤Ç¤Ï +特権を持つプロセス (Linux では .B CAP_CHOWN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤Ä¥×¥í¥»¥¹) ¤À¤±¤¬ -¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤òÊѹ¹¤Ç¤­¤ë¡£ -¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤Ï¡¢¤½¤Î½êÍ­¼Ô¤¬Â°¤·¤Æ¤¤¤ë¥°¥ë¡¼¥×¤Î¤¤¤º¤ì¤«¤Ë -¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥×¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -Æø¢ (Linux ¤Ç¤Ï +ケーパビリティ (capability) を持つプロセス) だけが +ファイルの所有者を変更できる。 +ファイルの所有者は、その所有者が属しているグループのいずれかに +ファイルのグループを変更することができる。 +特権 (Linux では .BR CAP_CHOWN ) -¤ò»ý¤Ä¥×¥í¥»¥¹¤Ï¡¢Ç¤°Õ¤Î¥°¥ë¡¼¥×¤ËÊѹ¹¤Ç¤­¤ë¡£ +を持つプロセスは、任意のグループに変更できる。 .I owner -¤Þ¤¿¤Ï +または .I group -¤Ë \-1 ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¤½¤ì¤é¤Î ID ¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +に \-1 が指定された場合、それらの ID は変更されない。 -ÈóÆø¢¥æ¡¼¥¶¡¼¤Ë¤è¤ê¼Â¹Ô¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤Þ¤¿¤Ï¥°¥ë¡¼¥×¤¬ -Êѹ¹¤µ¤ì¤¿¾ì¹ç¤Ï +非特権ユーザーにより実行ファイルの所有者またはグループが +変更された場合は .B S_ISUID -¤È +と .B ISGID -¥â¡¼¥É¥Ó¥Ã¥È¤Ï¥¯¥ê¥¢¤µ¤ì¤ë¡£ -POSIX ¤Ï¤³¤ÎÆ°ºî¤ä¥ë¡¼¥È¤¬ +モードビットはクリアされる。 +POSIX はこの動作やルートが .BR chown () -¤ò¹Ô¤Ê¤Ã¤¿¾ì¹ç¤Ë¤Ä¤¤¤Æ¤ÏÆä˻ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -Linux ¤Ë¤ª¤±¤ëÆ°ºî¤Ï¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë°Í¸¤¹¤ë¡£ -.\" Linux 2.0 ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼¤Ç¤ÎÆ°ºî¤Ï -.\" ¾¤Î¥æ¡¼¥¶¡¼¤Î¾ì¹ç¤ÈƱ¤¸¤Ç¤¢¤Ã¤¿¡£ -.\" 2.2 ¤Ç¤Ï¡¢2.2.12 ¤Þ¤Ç¤Ï¡¢¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼¤Î¾ì¹ç¤Ë¤Ï -.\" ¤³¤ì¤é¤Î¥Ó¥Ã¥È¤Ï¥¯¥ê¥¢¤µ¤ì¤Ê¤¯¤Ê¤Ã¤¿¡£ -.\" 2.2.13 °Ê¹ß¤Ç¤Ï¡¢¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼¤Ç¤ÎÆ°ºî¤Ï -.\" ºÆ¤Ó¾¤Î¥æ¡¼¥¶¡¼¤Î¾ì¹ç¤ÈƱ¤¸¤Ë¤Ê¤Ã¤¿¡£ -È󥰥롼¥×¼Â¹Ô¥Õ¥¡¥¤¥ë +を行なった場合については特に指定されていない。 +Linux における動作はカーネルのバージョンに依存する。 +.\" Linux 2.0 カーネルでは、スーパー・ユーザーでの動作は +.\" 他のユーザーの場合と同じであった。 +.\" 2.2 では、2.2.12 までは、スーパー・ユーザーの場合には +.\" これらのビットはクリアされなくなった。 +.\" 2.2.13 以降では、スーパー・ユーザーでの動作は +.\" 再び他のユーザーの場合と同じになった。 +非グループ実行ファイル .RB ( S_IXGRP -¥Ó¥Ã¥È¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¥Õ¥¡¥¤¥ë) ¤Î¾ì¹ç¤Ë¤Ï +ビットが設定されていないファイル) の場合には .B S_ISGID -¥Ó¥Ã¥È¤Ï¶¯À©¥í¥Ã¥¯ (mandatory locking) ¤ò°ÕÌ£¤·¤Æ¤¤¤ë¡£ -¤½¤·¤Æ¤½¤ì¤Ï +ビットは強制ロック (mandatory locking) を意味している。 +そしてそれは .BR chown () -¤Ç¤Ï¥¯¥ê¥¢¤Ç¤­¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢0 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤¹¤ë¤È¡¢\-1 ¤òÊÖ¤·¡¢ +ではクリアできない。 +.SH 返り値 +成功すると、0 を返す。 +失敗すると、\-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¾¤Î¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë»ö¤¬¤¢¤ë¡£ +に適切な値を設定する。 +.SH エラー +ファイルシステムによっては他のエラーが返される事がある。 .B chmod -¤Ç°ìÈÌŪ¤Ê¥¨¥é¡¼¤ò°Ê²¼¤Ëµó¤²¤ë¡£ +で一般的なエラーを以下に挙げる。 .TP .B EACCES .I path -¤Î¹½À®Í×ÁǤ˸¡º÷µö²Ä (search permission) ¤¬¤Ê¤¤ +の構成要素に検索許可 (search permission) がない .RB ( path_resolution (7) -¤â»²¾È)¡£ +も参照)。 .TP .B EFAULT .I path -¤¬³ä¤êÅö¤Æ¤é¤ì¤¿¥¢¥É¥ì¥¹¶õ´Ö³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +が割り当てられたアドレス空間外を指している。 .TP .B ELOOP .I path -¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ +を解決する際に遭遇したシンボリック・リンクが多過ぎる。 .TP .B ENAMETOOLONG .I path -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENOENT -¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ +ファイルが存在しない。 .TP .B ENOMEM -¥«¡¼¥Í¥ë¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +カーネルに十分なメモリがない。 .TP .B ENOTDIR .I path -¤Î¹½À®Í×ÁǤ¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +の構成要素がディレクトリでない。 .TP .B EPERM -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ë½êÍ­¼Ô¤Þ¤¿¤Ï¥°¥ë¡¼¥× (¤â¤·¤¯¤Ï¤½¤ÎξÊý) ¤òÊѹ¹¤¹¤ë¤¿¤á¤Ë -Í׵ᤵ¤ì¤ëµö²Ä (¾åµ­¤ò»²¾È) ¤¬¤Ê¤¤¡£ +呼び出したプロセスに所有者またはグループ (もしくはその両方) を変更するために +要求される許可 (上記を参照) がない。 .TP .B EROFS -»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤¬Æɤ߹þ¤ßÀìÍÑ (read-only) ¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¾å¤Ë¤¢¤ë¡£ +指定したファイルが読み込み専用 (read-only) のファイル・システム上にある。 .PP .BR fchown () -¤Ç°ìÈÌŪ¤Ê¥¨¥é¡¼¤ò°Ê²¼¤Ëµó¤²¤ë: +で一般的なエラーを以下に挙げる: .TP .B EBADF -¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤¬Í­¸ú¤Ç¤Ê¤¤¡£ +ディスクリプターが有効でない。 .TP .B EIO -i ¥Î¡¼¥É (inode) ¤òÊѹ¹¤¹¤ëºÝ¤ËÄã¥ì¥Ù¥ë I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +i ノード (inode) を変更する際に低レベル I/O エラーが発生した。 .TP .B ENOENT -¾åµ­¤ò»²¾È¡£ +上記を参照。 .TP .B EPERM -¾åµ­¤ò»²¾È¡£ +上記を参照。 .TP .B EROFS -¾åµ­¤ò»²¾È¡£ -.SH ½àµò +上記を参照。 +.SH 準拠 4.4BSD, SVr4, POSIX.1-2001. -4.4BSD ÈǤǤϥ¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼¤Î¤ß¤¬»ÈÍѤǤ­¤ë -(¤Ä¤Þ¤ê¡¢ÉáÄ̤Υ桼¥¶¡¼¤Ï¥Õ¥¡¥¤¥ë¤ò¼êÊü¤¹¤³¤È¤Ï¤Ç¤­¤Ê¤¤)¡£ +4.4BSD 版ではスーパー・ユーザーのみが使用できる +(つまり、普通のユーザーはファイルを手放すことはできない)。 .\" chown(): -.\" SVr4 ¤Ë¤Ï EINVAL, EINTR, ENOLINK, EMULTIHOP ¤òÊÖ¤¹¤Èµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -.\" ENOMEM ¤Ï¤Ê¤¤¡£ -.\" POSIX.1 ¤Ë¤Ï ENOMEM, ELOOP ¤Ë¤Ä¤¤¤Æµ­ºÜ¤Ï¤Ê¤¤¡£ +.\" SVr4 には EINVAL, EINTR, ENOLINK, EMULTIHOP を返すと記載されているが、 +.\" ENOMEM はない。 +.\" POSIX.1 には ENOMEM, ELOOP について記載はない。 .\" fchown(): -.\" SVr4 ¤Ë¤Ï¾¤Ë EINVAL, EIO, EINTR, ENOLINK ¥¨¥é¡¼¾õÂ֤ˤĤ¤¤Æ¤Îµ­ºÜ¤¬¤¢¤ë¡£ -.SH Ãí°Õ +.\" SVr4 には他に EINVAL, EIO, EINTR, ENOLINK エラー状態についての記載がある。 +.SH 注意 .RB ( open (2) -¤ä +や .BR mkdir (2) -¤Ê¤É¤Ë¤è¤ê) ¿·¤·¤¤¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤ë¤È¤­¡¢ -¤½¤Î½êÍ­¼Ô¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¡¦¥æ¡¼¥¶ ID ¤È -Ʊ¤¸¤ËÀßÄꤵ¤ì¤ë¡£ -¤½¤Î¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥×¤Ï¤¤¤¯¤Ä¤«¤ÎÍ×°ø¤Ë¤è¤ê·èÄꤵ¤ì¤ë¡£ -¤½¤ÎÍ×°ø¤È¤·¤Æ¤Ï¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¼ïÎà¡¢¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Þ¥¦¥ó¥È»þ¤Ë -»ÈÍѤµ¤ì¤¿¥ª¥×¥·¥ç¥ó¡¢¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ç set-group-ID µö²Ä¥Ó¥Ã¥È¤¬ -Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤É¤¦¤«¡¢¤¬¤¢¤ë¡£ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ +などにより) 新しいファイルが作成されるとき、 +その所有者は呼び出したプロセスのファイルシステム・ユーザ ID と +同じに設定される。 +そのファイルのグループはいくつかの要因により決定される。 +その要因としては、 +ファイルシステムの種類、そのファイルシステムのマウント時に +使用されたオプション、親ディレクトリで set-group-ID 許可ビットが +有効になっているどうか、がある。 +ファイルシステムが .BR mount (8) -¥ª¥×¥·¥ç¥ó¤Î +オプションの .I "\-o\ grpid" .RI ( "\-o\ bsdgroups" -¤âƱµÁ¸ì) ¤È +も同義語) と .I "\-o\ nogrpid" .RI ( "\-o sysvgroups" -¤âƱµÁ¸ì) ¤ËÂбþ¤·¤Æ¤¤¤ë¾ì¹ç¡¢¥ë¡¼¥ë¤Ï°Ê²¼¤ÎÄ̤ê¤È¤Ê¤ë¡£ +も同義語) に対応している場合、ルールは以下の通りとなる。 .IP * 2 -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ +ファイルシステムが .I "\-o\ grpid" -ÉÕ¤­¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¿·¤·¤¤¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥×¤Ï -¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Î¥°¥ë¡¼¥×¤ÈƱ¤¸¤Ë¤Ê¤ë¡£ +付きでマウントされている場合、新しいファイルのグループは +親ディレクトリのグループと同じになる。 .IP * -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ +ファイルシステムが .I "\-o\ nogrpid" -ÉÕ¤­¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤ª¤ê¡¢¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï set-group-ID ¥Ó¥Ã¥È¤¬ -̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢¿·¤·¤¤¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥×¤Ï -¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à GID ¤ÈƱ¤¸¤Ë¤Ê¤ë¡£ +付きでマウントされており、親ディレクトリでは set-group-ID ビットが +無効になっている場合、新しいファイルのグループは +プロセスのファイルシステム GID と同じになる。 .IP * -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ +ファイルシステムが .I "\-o\ nogrpid" -ÉÕ¤­¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤ª¤ê¡¢¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï set-group-ID ¥Ó¥Ã¥È¤¬ -Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢¿·¤·¤¤¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥×¤Ï -¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Î¥°¥ë¡¼¥×¤ÈƱ¤¸¤Ë¤Ê¤ë¡£ +付きでマウントされており、親ディレクトリでは set-group-ID ビットが +有効になっている場合、新しいファイルのグループは +親ディレクトリのグループと同じになる。 .PP -Linux 2.6.25 ¤Ç¤Ï¡¢¥Þ¥¦¥ó¥È¥ª¥×¥·¥ç¥ó +Linux 2.6.25 では、マウントオプション .I "\-o\ grpid" -¤È +と .I "\-o\ nogrpid" -¤ËÂбþ¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï -ext2, ext3, ext4, XFS ¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î¥Þ¥¦¥ó¥È¥ª¥×¥·¥ç¥ó¤ËÂбþ¤·¤Æ¤¤¤Ê¤¤¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +に対応しているファイルシステムは +ext2, ext3, ext4, XFS である。 +これらのマウントオプションに対応していないファイルシステムでは、 .I "\-o\ nogrpid" -¤Ë´Ø¤¹¤ë¥ë¡¼¥ë¤¬Å¬ÍѤµ¤ì¤ë¡£ +に関するルールが適用される。 .PP .BR chown () -Êý¼°¤Ï UID ¥Þ¥Ã¥Ô¥ó¥°¤ò»ÈÍѤ·¤¿ -NFS ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ò¿¯³²¤¹¤ë¡£ -¤µ¤é¤Ë¥Õ¥¡¥¤¥ë¤ÎÆâÍƤ˥¢¥¯¥»¥¹¤¹¤ëÁ´¤Æ¤Î¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¿¯³²¤¹¤ë¡£ -¤³¤ì¤Ï +方式は UID マッピングを使用した +NFS ファイル・システムを侵害する。 +さらにファイルの内容にアクセスする全てのシステム・コールを侵害する。 +これは .BR chown () -¤¬´û¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë -¥¢¥¯¥»¥¹¤ò¤¿¤À¤Á¤Ë¼è¤ê¾Ã¤¹¤³¤È¤Ë¤è¤ë¡£ -¥¯¥é¥¤¥¢¥ó¥È¦¤Î¥­¥ã¥Ã¥·¥å¤Ë¤è¤ê½êÍ­¸¢¤¬Êѹ¹¤µ¤ì¤Æ -¥æ¡¼¥¶¡¼¤Î¥¢¥¯¥»¥¹¤¬µö¤·¤¿»þÅÀ¤È¡¢¼ÂºÝ¤Ë¾¤Î¥¯¥é¥¤¥¢¥ó¥È¤Ç¥æ¡¼¥¶¡¼¤Ë¤è¤Ã¤Æ -¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë»þÅÀ¤È¤Î´Ö¤Ë»þ´Öº¹¤¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +が既にオープンされたファイルに対する +アクセスをただちに取り消すことによる。 +クライアント側のキャッシュにより所有権が変更されて +ユーザーのアクセスが許した時点と、実際に他のクライアントでユーザーによって +ファイルにアクセスできる時点との間に時間差があるかもしれない。 -Linux ¤Î 2.1.81 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó (ÆÃ¤Ë 2.1.46 °ÊÁ°) ¤Ç¤Ï¡¢ +Linux の 2.1.81 より前のバージョン (特に 2.1.46 以前) では、 .BR chown () -¤Ï¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤òÄÉÀפ·¤Ê¤¤¡£ -Linux 2.1.81 °Ê¹ß¤Ç¤Ï +はシンボリック・リンクを追跡しない。 +Linux 2.1.81 以降では .BR chown () -¤Ï¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤òÄÉÀפ·¡¢¿·¤¿¤Ê¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë +はシンボリック・リンクを追跡し、新たなシステム・コール .BR lchown () -¤Ï¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤òÄÉÀפ·¤Ê¤¤¡£ -Linux 2.1.86 °Ê¹ß¤Ç¤Ï¤³¤Î¿·¤·¤¤¥³¡¼¥ë (¸Å¤¤ +はシンボリック・リンクを追跡しない。 +Linux 2.1.86 以降ではこの新しいコール (古い .BR chown () -¤ÈÁ´¤¯Æ±¤¸Æ°ºî¤ò¹Ô¤Ê¤¦) ¤ÏƱ¤¸¥·¥¹¥Æ¥à¥³¡¼¥ëÈÖ¹æ¤ò»ý¤Á +と全く同じ動作を行なう) は同じシステムコール番号を持ち .BR chown () -¤Ï¿·¤·¤¯Æ³Æþ¤µ¤ì¤¿ÈÖ¹æ¤ò»ý¤Ä¡£ -.SH Îã +は新しく導入された番号を持つ。 +.SH 例 .PP -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢ -Æó¤ÄÌܤΥ³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤ò¡¢ -°ì¤ÄÌܤΥ³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿ÃͤËÊѹ¹¤¹¤ë¡£ -¿·¤·¤¤½êÍ­¼Ô¤Ï¡¢¿ô»ú¤Î¥æ¡¼¥¶ ID ¤«¥æ¡¼¥¶Ì¾¤Î¤¤¤º¤ì¤«¤Ç»ØÄê¤Ç¤­¤ë -(¥æ¡¼¥¶Ì¾¤Ç»ØÄꤷ¤¿¾ì¹ç¤Ë¤Ï¡¢ +以下のプログラムは、 +二つ目のコマンドライン引き数で指定された名前のファイルの所有者を、 +一つ目のコマンドライン引き数で指定された値に変更する。 +新しい所有者は、数字のユーザ ID かユーザ名のいずれかで指定できる +(ユーザ名で指定した場合には、 .BR getpwnam (3) -¤ò»È¤Ã¤Æ¥·¥¹¥Æ¥à¤Î¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Î¸¡º÷¤¬¹Ô¤ï¤ì¡¢ -¥æ¡¼¥¶ ID ¤Ø¤ÎÊÑ´¹¤¬¹Ô¤ï¤ì¤ë)¡£ +を使ってシステムのパスワードファイルの検索が行われ、 +ユーザ ID への変換が行われる)。 .nf #include @@ -330,7 +330,7 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chmod (2), .BR fchownat (2), .BR flock (2), diff --git a/release/man2/chroot.2 b/release/man2/chroot.2 index 036ed7c7..c337c0c8 100644 --- a/release/man2/chroot.2 +++ b/release/man2/chroot.2 @@ -42,17 +42,17 @@ .\" by Yuichi SATO .\" .TH CHROOT 2 2010-09-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -chroot \- ¥ë¡¼¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤òÊѹ¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +chroot \- ルート・ディレクトリを変更する +.SH 書式 .B #include .sp .BI "int chroot(const char *" path ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR chroot (): @@ -60,7 +60,7 @@ glibc .RS 4 .PD 0 .TP 4 -glibc 2.2.2 °Ê¹ß: +glibc 2.2.2 以降: .nf _BSD_SOURCE || (_XOPEN_SOURCE\ >=\ 500 || @@ -68,101 +68,101 @@ _BSD_SOURCE || !(_POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600) .fi .TP 4 -glibc 2.2.2 ¤è¤êÁ°: ¤Ê¤· +glibc 2.2.2 より前: なし .PD .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR chroot () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥ë¡¼¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤ò +は、呼び出し元プロセスのルート・ディレクトリを .I path -¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ËÊѹ¹¤¹¤ë¡£ -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤¬ \fI/\fP ¤«¤é»Ï¤Þ¤ë¥Ñ¥¹Ì¾¤È¤·¤Æ»È¤ï¤ì¤ë¡£ -¤³¤Î¥ë¡¼¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÎÁ´¤Æ¤Î»Ò¥×¥í¥»¥¹¤Ë¼õ¤±·Ñ¤¬¤ì¤ë¡£ +で指定されたディレクトリに変更する。 +このディレクトリ以下が \fI/\fP から始まるパス名として使われる。 +このルート・ディレクトリは呼び出し元のプロセスの全ての子プロセスに受け継がれる。 .PP -Æø¢¥×¥í¥»¥¹ (Linux ¤Ç¤Ï¡¢ +特権プロセス (Linux では、 .B CAP_SYS_CHROOT -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹) ¤Î¤ß¤¬ +ケーパビリティを持つプロセス) のみが .BR chroot () -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +を呼び出すことができる。 .PP -¤³¤Î¥³¡¼¥ë¤Ï¥Ñ¥¹Ì¾²ò·è¤Î²áÄø¤Ç¹½À®Í×ÁǤòÊѹ¹¤¹¤ë¤Î¤ß¤Ç¡¢ -¤½¤Î¾¤Ë¤Ï²¿¤â¹Ô¤ï¤Ê¤¤¡£ +このコールはパス名解決の過程で構成要素を変更するのみで、 +その他には何も行わない。 .PP -¤³¤Î¥³¡¼¥ë¤Ï¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê -(working directory) ¤òÊѹ¹¤·¤Ê¤¤¡£ -¤½¤Î¤¿¤á¡¢¤³¤Î¥³¡¼¥ë¤Î¸å¤Ë \(aq\fI.\fP\(aq ¤¬ \(aq\fI/\fP\(aq ¤ò -º¬¤È¤¹¤ë¥Ä¥ê¡¼¤Î³°¤Ë¤Ê¤ë¾ì¹ç¤¬¤¢¤ë¡£ -Æäˡ¢¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ç -"chroot jail" ¤«¤éƨ¤²½Ð¤»¤Æ¤·¤Þ¤¦¡£ +このコールは現在の作業ディレクトリ +(working directory) を変更しない。 +そのため、このコールの後に \(aq\fI.\fP\(aq が \(aq\fI/\fP\(aq を +根とするツリーの外になる場合がある。 +特に、スーパー・ユーザーは以下のようにすることで +"chroot jail" から逃げ出せてしまう。 .nf mkdir foo; chroot foo; cd .. .fi -¤³¤Î¥³¡¼¥ë¤Ï¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¯¥í¡¼¥º¤·¤Ê¤¤¤Î¤Ç¡¢ -¤³¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï chroot ¥Ä¥ê¡¼¤Î³°¤Ë¤¢¤ë -¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤¹¤ë¤È \-1 ¤òÊÖ¤·¡¢ +このコールはオープンファイルディスクリプタをクローズしないので、 +このようなファイルディスクリプタは chroot ツリーの外にある +ファイルにアクセスできる。 +.SH 返り値 +成功すると 0 を返す。 +失敗すると \-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¾¤Î¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë»ö¤¬¤¢¤ë¡£ -°ìÈÌŪ¤Ê¥¨¥é¡¼¤ò°Ê²¼¤Ëµó¤²¤ë: +に適切な値を設定する。 +.SH エラー +ファイルシステムによっては他のエラーが返される事がある。 +一般的なエラーを以下に挙げる: .TP .B EACCES -¥Ñ¥¹Ì¾¤ÎÅÓÃæ¤Î¤É¤³¤«¤Ë¸¡º÷µö²Ä (search permission) ¤¬¤Ê¤¤¡£ +パス名の途中のどこかに検索許可 (search permission) がない。 .RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È¡£) -.\" ¥Ñ¥¹Ì¾¤ÎºÇ¸å¤Î¹½À®Í×ÁǤˤ⸡º÷µö²Ä¤¬É¬ÍפǤ¢¤ë¡£ -.\" ¤ª¤½¤é¤¯¡¢¤½¤ì¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¤³¤È¤òÊݾڤ¹¤ë¤¿¤á¤Ê¤Î¤«? +も参照すること。) +.\" パス名の最後の構成要素にも検索許可が必要である。 +.\" おそらく、それがディレクトリであることを保証するためなのか? .TP .B EFAULT .I path -¤¬³ä¤êÅö¤Æ¤é¤ì¤¿¥¢¥É¥ì¥¹¶õ´Ö³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +が割り当てられたアドレス空間外を指している。 .TP .B EIO -I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +I/O エラーが発生した。 .TP .B ELOOP .I path -¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ +を解決する際に遭遇したシンボリック・リンクが多過ぎる。 .TP .B ENAMETOOLONG .I path -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENOENT -¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ +ファイルが存在しない。 .TP .B ENOMEM -¥«¡¼¥Í¥ë¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +カーネルに十分なメモリがない。 .TP .B ENOTDIR .I path -¤ÎÆâÍƤ¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£ +の内容がディレクトリではない。 .TP .B EPERM -¸Æ¤Ó½Ð¤·Â¦¤Ë½½Ê¬¤ÊÆø¢¤¬¤Ê¤¤¡£ -.SH ½àµò -SVr4, 4.4BSD, SUSv2 (⤷¡¢SUSv2 ¤Ç¤Ï²áµî¤Î̾»Ä¤È¤µ¤ì¤Æ¤¤¤ë)¡£ -¤³¤Î´Ø¿ô¤Ï POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -.\" SVr4 ¤Ë¤Ï¾¤Ë EINTR, ENOLINK, EMULTIHOP ¥¨¥é¡¼¾õÂ֤ˤĤ¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ -.\" X/OPEN ¤Ë¤Ï EIO, ENOMEM, EFAULT ¥¨¥é¡¼¾õÂ֤ε­½Ò¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ +呼び出し側に十分な特権がない。 +.SH 準拠 +SVr4, 4.4BSD, SUSv2 (但し、SUSv2 では過去の名残とされている)。 +この関数は POSIX.1-2001 にはない。 +.\" SVr4 には他に EINTR, ENOLINK, EMULTIHOP エラー状態についての記述がある。 +.\" X/OPEN には EIO, ENOMEM, EFAULT エラー状態の記述はない。 +.SH 注意 .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢ -¿Æ¥×¥í¥»¥¹¤Î¥ë¡¼¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤ò·Ñ¾µ¤¹¤ë¡£ +で作成された子プロセスは、 +親プロセスのルート・ディレクトリを継承する。 .BR execve (2) -¤Î¾ì¹ç¤â¡¢¥ë¡¼¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +の場合も、ルート・ディレクトリは変更されない。 -FreeBSD ¤Ë¤Ï¤è¤ê¶¯ÎÏ¤Ê +FreeBSD にはより強力な .BR jail () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤¢¤ë¡£ +システムコールがある。 .\" FIXME . eventually say something about containers, .\" virtual servers, etc.? -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chdir (2), .BR path_resolution (7) diff --git a/release/man2/clock_getres.2 b/release/man2/clock_getres.2 index 729c22e4..305796b4 100644 --- a/release/man2/clock_getres.2 +++ b/release/man2/clock_getres.2 @@ -36,9 +36,9 @@ .\" Updated 2010-04-11, Akihiro MOTOKI .\" .TH CLOCK_GETRES 2 2010-02-03 "" "Linux Programmer's Manual" -.SH ̾Á° -clock_getres, clock_gettime, clock_settime \- ¥¯¥í¥Ã¥¯¤È»þ´Ö¤Î´Ø¿ô -.SH ½ñ¼° +.SH 名前 +clock_getres, clock_gettime, clock_settime \- クロックと時間の関数 +.SH 書式 .B #include .sp .BI "int clock_getres(clockid_t " clk_id ", struct timespec *" res ); @@ -47,12 +47,12 @@ clock_getres, clock_gettime, clock_settime \- .BI "int clock_settime(clockid_t " clk_id ", const struct timespec *" tp ); .sp -\fI\-lrt\fP ¤È¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP とリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -63,44 +63,44 @@ glibc _POSIX_C_SOURCE\ >=\ 199309L .RE .ad b -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR clock_getres () -¤Ï -»ØÄꤵ¤ì¤¿¥¯¥í¥Ã¥¯ +は +指定されたクロック .I clk_id -¤Îʬ²òǽ (ÀºÅÙ) ¤òõ¤·½Ð¤¹¡£ +の分解能 (精度) を探し出す。 .I res -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢¤½¤Îʬ²òǽ¤ò +が NULL でない場合、その分解能を .I res -¤Ç»Ø¤µ¤ì¤ë \fIstruct timespec\fP ¤Ë³ÊǼ¤¹¤ë¡£ -¥¯¥í¥Ã¥¯¤Îʬ²òǽ¤Ï¼ÂÁõ¤Ë°Í¸¤·¡¢ -ÆÃÄê¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤ÆÀßÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +で指される \fIstruct timespec\fP に格納する。 +クロックの分解能は実装に依存し、 +特定のプロセスによって設定することはできない。 .BR clock_settime () -¤Î°ú¤­¿ô +の引き数 .I tp -¤Ç»Ø¤µ¤ì¤ë»þ´Ö¤ÎÃͤ¬ +で指される時間の値が .I res -¤ÎÇÜ¿ô¤Ç¤Ê¤¤¾ì¹ç¡¢ +の倍数でない場合、 .I res -¤ÎÇÜ¿ô¤ËÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ +の倍数に切り詰められる。 .PP -´Ø¿ô +関数 .BR clock_gettime () -¤È +と .BR clock_settime () -¤Ï¡¢»ØÄꤵ¤ì¤¿¥¯¥í¥Ã¥¯ +は、指定されたクロック .I clk_id -¤Î»þ´Ö¤ò¼èÆÀ¤Þ¤¿¤ÏÀßÄꤹ¤ë¡£ +の時間を取得または設定する。 .PP .I res -¤È +と .I tp -°ú¤­¿ô¤Ï +引き数は .I timespec -¹½Â¤ÂΤǤ¢¤ê¡¢ +構造体であり、 .I -¤Ç°Ê²¼¤Î¤è¤¦¤Ëµ¬Äꤵ¤ì¤Æ¤¤¤ë: +で以下のように規定されている: .sp .in +4n .nf @@ -112,129 +112,129 @@ struct timespec { .in .PP .I clk_id -°ú¤­¿ô¤ÏÆÃÄê¤Î¥¯¥í¥Ã¥¯¤Î¼±Ê̻ҤǤ¢¤ê¡¢¤½¤Î¥¯¥í¥Ã¥¯¤ÇÆ°ºî¤¹¤ë¡£ -¥¯¥í¥Ã¥¯¤Ï¥·¥¹¥Æ¥àÁ´ÂΤËŬÍѤ¹¤ë¤³¤È¤â¤Ç¤­¡¢ -¤½¤Î¾ì¹ç¤ÏÁ´¤Æ¤Î¥×¥í¥»¥¹¤«¤é¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤Þ¤¿ 1 ¤Ä¤Î¥×¥í¥»¥¹Æâ¤Ç¤Î¤ß»þ´Ö¤ò·×¬¤¹¤ë¾ì¹ç¤Ï¡¢ -¥×¥í¥»¥¹Ëè¤ËŬÍѤ¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +引き数は特定のクロックの識別子であり、そのクロックで動作する。 +クロックはシステム全体に適用することもでき、 +その場合は全てのプロセスから見ることができる。 +また 1 つのプロセス内でのみ時間を計測する場合は、 +プロセス毎に適用することもできる。 .LP -Á´¤Æ¤Î¼ÂÁõ¤Ë¤ª¤¤¤Æ¥·¥¹¥Æ¥àÁ´ÂΤΥꥢ¥ë¥¿¥¤¥à¥¯¥í¥Ã¥¯¤¬¥µ¥Ý¡¼¥È¤µ¤ì¡¢ +全ての実装においてシステム全体のリアルタイムクロックがサポートされ、 .B CLOCK_REALTIME -¤Ç¼±Ê̤µ¤ì¤ë¡£ -»þ´Ö¤Ïµª¸µ (the Epoch) ¤«¤é¤ÎÉäȥʥÎÉäÇɽ¤µ¤ì¤ë¡£ -»þ´Ö¤¬Êѹ¹¤µ¤ì¤¿¾ì¹ç¡¢ÁêÂÐŪ¤Ê»þ´Ö´Ö³Ö¤Î¥¿¥¤¥Þ¤Ï±Æ¶Á¤ò¼õ¤±¤Ê¤¤¤¬¡¢ -ÀäÂÐŪ¤Ê»þÅÀ¤Î¥¿¥¤¥Þ¤Ï±Æ¶Á¤ò¼õ¤±¤ë¡£ +で識別される。 +時間は紀元 (the Epoch) からの秒とナノ秒で表される。 +時間が変更された場合、相対的な時間間隔のタイマは影響を受けないが、 +絶対的な時点のタイマは影響を受ける。 .LP -¤µ¤é¤Ë¤¤¤¯¤Ä¤«¤Î¥¯¥í¥Ã¥¯¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -Âбþ¤¹¤ë»þ´Ö¤ÎÃͤò²ò¼á¤¹¤ëÊýË¡¤È¥¿¥¤¥Þ¤Ø¤Î±Æ¶Á¤Ï¡¢Äê¤á¤é¤ì¤Æ¤¤¤Ê¤¤¡£ +さらにいくつかのクロックが実装されているかもしれない。 +対応する時間の値を解釈する方法とタイマへの影響は、定められていない。 .LP -glibc ¤È Linux ¥«¡¼¥Í¥ë¤ÎºÇ¿·¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ -°Ê²¼¤Î¤è¤¦¤Ê½½Ê¬¤Ê¥¯¥í¥Ã¥¯¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +glibc と Linux カーネルの最新のバージョンでは、 +以下のような十分なクロックがサポートされている。 .TP .B CLOCK_REALTIME -¥·¥¹¥Æ¥àÁ´ÂΤΥꥢ¥ë¥¿¥¤¥à¥¯¥í¥Ã¥¯¡£ -¤³¤Î¥¯¥í¥Ã¥¯¤òÀßÄꤹ¤ë¤Ë¤ÏŬÀÚ¤ÊÆø¢¤¬É¬ÍפǤ¢¤ë¡£ +システム全体のリアルタイムクロック。 +このクロックを設定するには適切な特権が必要である。 .TP .B CLOCK_MONOTONIC -¤¤¤¯¤Ä¤«¤Î³«»ÏÅÀ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤¿¤á¡¢ -¥¯¥í¥Ã¥¯¤¬¥â¥Î¥È¥Ë¥Ã¥¯¥¿¥¤¥à¤òÀßÄꤷ¤¿¤êɽ¸½¤·¤¿¤ê¤Ç¤­¤Ê¤¤¡£ +いくつかの開始点が指定されていないため、 +クロックがモノトニックタイムを設定したり表現したりできない。 .TP -.BR CLOCK_MONOTONIC_RAW " (Linux 2.6.28 °Ê¹ß; Linux ÆÃÍ­)" +.BR CLOCK_MONOTONIC_RAW " (Linux 2.6.28 以降; Linux 特有)" .\" Added in commit 2d42244ae71d6c7b0884b5664cf2eda30fb2ae68, John Stultz .B CLOCK_MONOTONIC -¤ÈƱÍͤÀ¤¬¡¢NTP ¤Ë¤è¤ëÄ´À°¤Î±Æ¶Á¤ò¼õ¤±¤Ê¤¤¡¢¥Ï¡¼¥É¥¦¥§¥¢¤Ë¤è¤ë -À¸¤Î»þ¹ï¤Ø¤Î¥¢¥¯¥»¥¹¤¬¤Ç¤­¤ë¡£ +と同様だが、NTP による調整の影響を受けない、ハードウェアによる +生の時刻へのアクセスができる。 .TP .B CLOCK_PROCESS_CPUTIME_ID -CPU ¤Ë¤è¤ë¹âʬ²òǽ¤Î¥×¥í¥»¥¹Ëè¤Î¥¿¥¤¥Þ¡£ +CPU による高分解能のプロセス毎のタイマ。 .TP .B CLOCK_THREAD_CPUTIME_ID -¥¹¥ì¥Ã¥É¸ÇÍ­¤Î CPU ¥¿¥¤¥à¥¯¥í¥Ã¥¯¡£ -.SH ÊÖ¤êÃÍ +スレッド固有の CPU タイムクロック。 +.SH 返り値 .BR clock_gettime (), .BR clock_settime (), .BR clock_getres () -¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ë 0 ¤òÊÖ¤·¡¢¼ºÇÔ¤·¤¿¾ì¹ç¤Ë \-1 ¤òÊÖ¤¹ -(¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +は成功した場合に 0 を返し、失敗した場合に \-1 を返す +(失敗した場合、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë)¡£ -.SH ¥¨¥é¡¼ +が適切に設定される)。 +.SH エラー .TP .B EFAULT .I tp -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤¿¡£ +がアクセス可能なアドレス空間の外を指した。 .TP .B EINVAL .\" Linux also gives this error on attempts to set CLOCK_PROCESS_CPUTIME_ID .\" and CLOCK_THREAD_CPUTIME_ID, when probably the proper error should be .\" EPERM. -»ØÄꤵ¤ì¤¿ +指定された .I clk_id -¤¬¤³¤Î¥·¥¹¥Æ¥à¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +がこのシステムでサポートされていない。 .TP .B EPERM -»Ø¼¨¤µ¤ì¤¿¥¯¥í¥Ã¥¯¤òÀßÄꤹ¤ë¸¢¸Â¤¬ +指示されたクロックを設定する権限が .BR clock_settime () -¤Ë¤Ê¤¤¡£ -.SH ½àµò +にない。 +.SH 準拠 SUSv2, POSIX.1-2001. -.SH ²ÄÍÑÀ­ -¤³¤ì¤é¤Î´Ø¿ô¤¬ÍøÍѲÄǽ¤Ê POSIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢\fI\fP ¤Ë¤ª¤¤¤Æ¥·¥ó¥Ü¥ë +.SH 可用性 +これらの関数が利用可能な POSIX システムでは、\fI\fP においてシンボル .B _POSIX_TIMERS -¤¬ 0 ¤è¤êÂ礭¤¤ÃͤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¥·¥ó¥Ü¥ë +が 0 より大きい値に定義されている。 +シンボル .BR _POSIX_MONOTONIC_CLOCK , .BR _POSIX_CPUTIME , .B _POSIX_THREAD_CPUTIME -¤Ï +は .BR CLOCK_MONOTONIC , .BR CLOCK_PROCESS_CPUTIME_ID , .B CLOCK_THREAD_CPUTIME_ID -¤¬ÍøÍѲÄǽ¤Ê¤³¤È¤ò¼¨¤¹¡£ +が利用可能なことを示す。 .RB ( sysconf (3) -¤â»²¾È¤¹¤ë¤³¤È¡£) -.SH Ãí°Õ -.SS "SMP ¥·¥¹¥Æ¥à¤Ë¤Ä¤¤¤Æ¤ÎÃí°Õ" +も参照すること。) +.SH 注意 +.SS "SMP システムについての注意" .B CLOCK_PROCESS_CPUTIME_ID -¤È +と .B CLOCK_THREAD_CPUTIME_ID -¥¯¥í¥Ã¥¯¤Ï¡¢CPU ¤«¤é¤Î¥¿¥¤¥Þ -(i386 ¾å¤Î TSC¡¢Itanium ¾å¤Î AR.ITC) ¤òÍѤ¤¤Æ¼Â¸½¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Î¥ì¥¸¥¹¥¿¤Ï CPU ´Ö¤Ç°Û¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ê¡¢ -¥×¥í¥»¥¹¤¬Â¾¤Î CPU ¤Ë°ÜÆ°¤µ¤»¤é¤ì¤¿¾ì¹ç¡¢ -·ë²Ì¤È¤·¤Æ¤³¤ì¤é¤Î¥¯¥í¥Ã¥¯¤¬\fBµ¶¤Î·ë²Ì\fR -(bogus results) ¤òÊÖ¤¹¤«¤â¤·¤ì¤Ê¤¤¡£ +クロックは、CPU からのタイマ +(i386 上の TSC、Itanium 上の AR.ITC) を用いて実現されている。 +これらのレジスタは CPU 間で異なる可能性があり、 +プロセスが他の CPU に移動させられた場合、 +結果としてこれらのクロックが\fB偽の結果\fR +(bogus results) を返すかもしれない。 .PP -SMP ¥·¥¹¥Æ¥à¤Î³Æ CPU ¤¬ÊÌ¡¹¤Î¥¯¥í¥Ã¥¯¸»¤ò»ý¤Ä¾ì¹ç¡¢ -¥¿¥¤¥Þ¥ì¥¸¥¹¥¿´Ö¤ÎÁê¸ß´Ø·¸¤ò´ÉÍý¤¹¤ëÊýË¡¤Ï¤Ê¤¤¡£ -¤³¤ì¤Ï³Æ CPU ¤¬Èù̯¤Ë°Û¤Ê¤ë¼þÇÈ¿ô¤ÇÆ°ºî¤¹¤ë¤¿¤á¤Ç¤¢¤ë¡£ -¤³¤ì¤¬¿¿¼Â¤Î¾ì¹ç (ÌõÃð: ³Æ CPU ¤¬ÊÌ¡¹¤Î¥¯¥í¥Ã¥¯¸»¤ò»ý¤Ä¾ì¹ç)¡¢ +SMP システムの各 CPU が別々のクロック源を持つ場合、 +タイマレジスタ間の相互関係を管理する方法はない。 +これは各 CPU が微妙に異なる周波数で動作するためである。 +これが真実の場合 (訳註: 各 CPU が別々のクロック源を持つ場合)、 .I clock_getcpuclockid(0) -¤Ï +は .B ENOENT -¤òÊÖ¤·¤Æ¡¢¤½¤Î¾õ¶·¤òɽ¤¹¡£ -2 ¤Ä¤Î¥¯¥í¥Ã¥¯¤Ï¡¢¥×¥í¥»¥¹¤¬ÆÃÄê¤Î CPU ¾å¤Ëα¤Þ¤Ã¤Æ¤¤¤ë¤³¤È¤¬ -ÊݾڤǤ­¤ë¾ì¹ç¤Ë¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£ +を返して、その状況を表す。 +2 つのクロックは、プロセスが特定の CPU 上に留まっていることが +保証できる場合にのみ有効である。 .PP -SMP ¥·¥¹¥Æ¥à¤Î³Æ¥×¥í¥»¥Ã¥µ¤ÏÁ´¤¯Æ±¤¸»þ¹ï¤Ëµ¯Æ°¤¹¤ëÌõ¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢ -³Æ¥¿¥¤¥Þ¥ì¥¸¥¹¥¿¤ÏÄ̾ï¤Ï¤¢¤ë¥ª¥Õ¥»¥Ã¥È¤ÇÆ°ºî¤·¤Æ¤¤¤ë¡£ -¥ª¥Õ¥»¥Ã¥È¤ò¥Ö¡¼¥È»þ¤ËÀ©¸Â¤¹¤ë¥³¡¼¥É¤¬´Þ¤Þ¤ì¤ë¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤â¤¢¤ë¡£ -¤·¤«¤·¡¢¤³¤Î¥³¡¼¥É¤¬¥ª¥Õ¥»¥Ã¥È¤òÀµ³Î¤ËÄ´À°¤¹¤ë¤³¤È¤ÏÊݾڤǤ­¤Ê¤¤¡£ -glibc ¤Ï (Linux ¥«¡¼¥Í¥ë¤È¤Ï°Û¤Ê¤ê) ¥ª¥Õ¥»¥Ã¥È¤ò°·¤¦¤¿¤á¤Î¥³¡¼¥É¤òÄ󶡤·¤Ê¤¤¡£ -Ä̾ï¤Ï¤³¤ì¤é¤Î¥ª¥Õ¥»¥Ã¥È¤¬¾®¤µ¤¤¤Î¤Ç¡¢Â¿¤¯¤Î¾ì¹ç¤Ç¤½¤Î±Æ¶Á¤Ï̵»ë¤Ç¤­¤ë¡£ -.SH ¥Ð¥° -POSIX.1-2001 ¤Ç¤Ï¡¢ -¡ÖŬÀÚ¤ÊÆø¢ (appropriate privileges)¡×¤ò»ý¤Ã¤¿¥×¥í¥»¥¹¤Ï¡¢ +SMP システムの各プロセッサは全く同じ時刻に起動する訳ではないので、 +各タイマレジスタは通常はあるオフセットで動作している。 +オフセットをブート時に制限するコードが含まれるアーキテクチャもある。 +しかし、このコードがオフセットを正確に調整することは保証できない。 +glibc は (Linux カーネルとは異なり) オフセットを扱うためのコードを提供しない。 +通常はこれらのオフセットが小さいので、多くの場合でその影響は無視できる。 +.SH バグ +POSIX.1-2001 では、 +「適切な特権 (appropriate privileges)」を持ったプロセスは、 .BR clock_settime () -¤ò»È¤Ã¤Æ¡¢¥¯¥í¥Ã¥¯ +を使って、クロック .B CLOCK_PROCESS_CPUTIME_ID -¤È +と .B CLOCK_THREAD_CPUTIME_ID -¤òÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¤È¤µ¤ì¤Æ¤¤¤ë¡£ -Linux ¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥¯¥í¥Ã¥¯¤ÏÀßÄê²Äǽ¤Ç¤Ï¤Ê¤¤ -(¤¹¤Ê¤ï¤Á¡¢¤É¤Î¥×¥í¥»¥¹¤â¡ÖŬÀÚ¤ÊÆø¢¡×¤ò»ý¤¿¤Ê¤¤)¡£ +を設定することができるとされている。 +Linux では、これらのクロックは設定可能ではない +(すなわち、どのプロセスも「適切な特権」を持たない)。 .\" See http://bugzilla.kernel.org/show_bug.cgi?id=11972 -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR date (1), .BR adjtimex (2), .BR gettimeofday (2), diff --git a/release/man2/clock_nanosleep.2 b/release/man2/clock_nanosleep.2 index e89c82ca..5e1919c7 100644 --- a/release/man2/clock_nanosleep.2 +++ b/release/man2/clock_nanosleep.2 @@ -26,9 +26,9 @@ .\" Translated 2008-08-21, Akihiro MOTOKI , LDP v3.04 .\" .TH CLOCK_NANOSLEEP 2 2010-12-03 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -clock_nanosleep \- »ØÄꤷ¤¿¥¯¥í¥Ã¥¯¤Ç¤Î¹âÀºÅ٤ʼ¹ÔÄä»ß (sleep) -.SH ½ñ¼° +.SH 名前 +clock_nanosleep \- 指定したクロックでの高精度な実行停止 (sleep) +.SH 書式 .B #include .nf .sp @@ -37,13 +37,13 @@ clock_nanosleep \- .BI " struct timespec *" remain ); .fi .sp -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP でリンクする。 .sp .ad l .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR clock_nanosleep (): @@ -51,19 +51,19 @@ glibc _XOPEN_SOURCE\ >=\ 600 || _POSIX_C_SOURCE\ >=\ 200112L .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR clock_nanosleep () -¤ò»È¤¦¤È¡¢ +を使うと、 .BR nanosleep (2) -ƱÍÍ¡¢¥Ê¥ÎÉäÎÀºÅ٤ǻØÄꤵ¤ì¤¿´ü´Ö¤À¤±¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î¼Â¹Ô¤ò -Ää»ß¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +同様、ナノ秒の精度で指定された期間だけ呼び出したスレッドの実行を +停止することができる。 .BR nanosleep (2) -¤È°ã¤¦¤Î¤Ï¡¢¸Æ¤Ó½Ð¤·Â¦¤¬Ää»ß´ü´Ö¤ò¤É¤Î¥¯¥í¥Ã¥¯¤ËÂФ·¤Æ·×¬¤¹¤ë¤Î¤«¤òÁªÂò -¤Ç¤­¤ëÅÀ¤È¡¢Ää»ß´ü´Ö¤òÀäÂÐÃͤǤâÁêÂÐÃͤǤâ»ØÄê¤Ç¤­¤ëÅÀ¤Ç¤¢¤ë¡£ +と違うのは、呼び出し側が停止期間をどのクロックに対して計測するのかを選択 +できる点と、停止期間を絶対値でも相対値でも指定できる点である。 -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÅϤ·¤¿¤ê¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ÊÖ¤·¤¿¤ê¤¹¤ë»þ´Ö¤ÎÃÍ¤Ï +このシステムコールに渡したり、このシステムコールが返したりする時間の値は .I timespec -¹½Â¤ÂΤò»È¤Ã¤Æ»ØÄꤵ¤ì¤ë¡£¤³¤Î¹½Â¤ÂΤÎÄêµÁ¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +構造体を使って指定される。この構造体の定義は以下の通りである。 .sp .in +4n .nf @@ -75,170 +75,170 @@ struct timespec { .in .I clock_id -°ú¤­¿ô¤Ç¡¢Ää»ß´ü´Ö¤ò¤É¤Î¥¯¥í¥Ã¥¯¤ËÂФ·¤Æ·×¬¤¹¤ë¤«¤ò»ØÄꤹ¤ë¡£ -¤³¤Î°ú¤­¿ô¤Ë¤Ï°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«°ì¤Ä¤ò»ØÄê¤Ç¤­¤ë¡£ +引き数で、停止期間をどのクロックに対して計測するかを指定する。 +この引き数には以下の値のいずれか一つを指定できる。 .TP 17 .BR CLOCK_REALTIME -¥·¥¹¥Æ¥àÁ´ÂΤǻȤï¤ì¤ë¼Â»þ´Ö¥¯¥í¥Ã¥¯¡£ -¤³¤Î¥¯¥í¥Ã¥¯¤ÏÊѹ¹²Äǽ¤Ç¤¢¤ë¡£ +システム全体で使われる実時間クロック。 +このクロックは変更可能である。 .TP .BR CLOCK_MONOTONIC -²áµî¤Î¤¢¤ë»þÅÀ¤«¤é¤Î»þ´Ö¤ò·×¬¤¹¤ë¡¢Ã±Ä´Áý²Ã¤Î¥¯¥í¥Ã¥¯¡£ -µ¯ÅÀ¤È¤Ê¤ë»þÅÀ¤Ï¥·¥¹¥Æ¥àµ¯Æ°¸å¤Ë¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ -¤³¤Î¥¯¥í¥Ã¥¯¤ÏÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ -.\" Linux ¤Ç¤Ï¡¢¤³¤Î¥¯¥í¥Ã¥¯¤Ïµ¯Æ°¤«¤é¤Î»þ´Ö¤ò·×¬¤¹¤ë¡£ +過去のある時点からの時間を計測する、単調増加のクロック。 +起点となる時点はシステム起動後には変更されない。 +このクロックは変更することができない。 +.\" Linux では、このクロックは起動からの時間を計測する。 .TP .BR CLOCK_PROCESS_CPUTIME_ID -¤½¤Î¥×¥í¥»¥¹¤ÎÁ´¥¹¥ì¥Ã¥É¤Ç¾ÃÈñ¤µ¤ì¤ë CPU »þ´Ö¤ò·×¬¤¹¤ë¥×¥í¥»¥¹Ã±°Ì¤Î -¥¯¥í¥Ã¥¯¡£¤³¤Î¥¯¥í¥Ã¥¯¤ÏÀßÄê²Äǽ¤Ç¤¢¤ë¡£ +そのプロセスの全スレッドで消費される CPU 時間を計測するプロセス単位の +クロック。このクロックは設定可能である。 .\" There is some trickery between glibc and the kernel .\" to deal with the CLOCK_PROCESS_CPUTIME_ID case. .PP -¤³¤ì¤é¤Î¥¯¥í¥Ã¥¯¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï +これらのクロックの詳細については .BR clock_getres (2) -¤ò»²¾È¡£ +を参照。 .I flags -¤¬ 0 ¤Î¾ì¹ç¡¢ +が 0 の場合、 .I request -¤Ë»ØÄꤵ¤ì¤¿ÃÍ¤Ï +に指定された値は .I clock_id -¤Ç»ØÄꤵ¤ì¤¿¥¯¥í¥Ã¥¯¤Î¸½ºß¤ÎÃͤ«¤é¤ÎÁêÂÐŪ¤Ê´ü´Ö¤È²ò¼á¤µ¤ì¤ë¡£ +で指定されたクロックの現在の値からの相対的な期間と解釈される。 .I flags -¤¬ +が .B TIMER_ABSTIME -¤Î¾ì¹ç¡¢ +の場合、 .I request -¤Ï»ØÄꤵ¤ì¤¿¥¯¥í¥Ã¥¯¤Ç·×¬¤µ¤ì¤ëÀäÂлþ¹ï¤È²ò¼á¤µ¤ì¤ë¡£ +は指定されたクロックで計測される絶対時刻と解釈される。 .I request -¤¬»ØÄꤵ¤ì¤¿¥¯¥í¥Ã¥¯¤Î¸½ºß¤ÎÃͰʲ¼¤Î¾ì¹ç¡¢ +が指定されたクロックの現在の値以下の場合、 .BR clock_nanosleep () -¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤ÎÄä»ß¤ò¹Ô¤ï¤º¡¢¤¹¤°¤ËÊ֤롣 +は、呼び出したスレッドの停止を行わず、すぐに返る。 .BR clock_nanosleep () -¤Ï¡¢¾¯¤Ê¤¯¤È¤â +は、少なくとも .I request -¤Ç»ØÄꤵ¤ì¤¿»þ´Ö¤¬·Ð²á¤¹¤ë¤Þ¤Ç¡¢¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î¼Â¹Ô¤òÄä»ß¤¹¤ë¡£ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¤ê¡¢¤½¤Î¥×¥í¥»¥¹¤ò½ªÎ»¤µ¤»¤ë¤è¤¦¤Ê -¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤¿¤ê¤·¤¿¾ì¹ç¤Ë¤â¡¢¥¹¥ì¥Ã¥É¤Î¼Â¹ÔÄä»ß¤Ï½ªÎ»¤¹¤ë¡£ +で指定された時間が経過するまで、呼び出したスレッドの実行を停止する。 +シグナルハンドラが呼び出されたり、そのプロセスを終了させるような +シグナルが配送されたりした場合にも、スレッドの実行停止は終了する。 -¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿¾ì¹ç¡¢ +呼び出しがシグナルハンドラによって割り込まれた場合、 .BR clock_nanosleep () -¤Ï¥¨¥é¡¼ +はエラー .B EINTR -¤Ç¼ºÇÔ¤¹¤ë¡£¤µ¤é¤Ë¡¢ +で失敗する。さらに、 .I remain -¤¬ NULL ¤Ç¤Ê¤¯¡¢¤«¤Ä +が NULL でなく、かつ .I flags -¤¬ +が .B TIMER_ABSTIME -¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ +でない場合には、 .I remain -¤Ë»Ä¤ê¤ÎÄä»ß»þ´Ö¤¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤ÎÃͤò»È¤Ã¤Æ +に残りの停止時間が返される。 +この値を使って .BR clock_nanosleep () -¤òºÆÅٸƤӽФ¹¤³¤È¤Ç¡¢(ÁêÂÐŪ¤Ê´ü´Ö¤Î) Ää»ß¤ò´°Î»¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.SH ÊÖ¤êÃÍ -Í׵ᤵ¤ì¤¿´ü´Ö¤ÎÄä»ß¤ËÀ®¸ù¤¹¤ë¤È¡¢ +を再度呼び出すことで、(相対的な期間の) 停止を完了することができる。 +.SH 返り値 +要求された期間の停止に成功すると、 .BR clock_nanosleep () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ç³ä¤ê¹þ¤Þ¤ì¤¿¤ê¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤ê¤·¤¿¾ì¹ç¡¢ -¡Ö¥¨¥é¡¼¡×¤ÎÀá¤Î¥ê¥¹¥È¤Ë¤¢¤ëÀµ¤Î¥¨¥é¡¼ÈÖ¹æ¤Î¤¤¤º¤ì¤«°ì¤Ä¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +は 0 を返す。 +シグナルハンドラで割り込まれたり、エラーが発生したりした場合、 +「エラー」の節のリストにある正のエラー番号のいずれか一つを返す。 +.SH エラー .TP .B EFAULT .I request -¤ä +や .I remain -¤Ë̵¸ú¤Ê¥¢¥É¥ì¥¹¤¬»ØÄꤵ¤ì¤¿¡£ +に無効なアドレスが指定された。 .TP .B EINTR -Ää»ß¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¡£ +停止がシグナルハンドラにより割り込まれた。 .TP .B EINVAL .I tv_nsec -¥Õ¥£¡¼¥ë¥É¤ÎÃͤ¬ 0 ¤«¤é 999999999 ¤ÎÈϰϤǤʤ¤¤«¡¢ +フィールドの値が 0 から 999999999 の範囲でないか、 .I tv_sec -¤ÎÃͤ¬Éé¤Ç¤¢¤Ã¤¿¡£ +の値が負であった。 .TP .B EINVAL .I clock_id -¤¬Ìµ¸ú¤Ç¤¢¤Ã¤¿ +が無効であった .RB ( CLOCK_THREAD_CPUTIME_ID -¤¬ +が .I clock_id -¤È¤·¤ÆÍ­¸ú¤ÊÃͤǤϤʤ¤)¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +として有効な値ではない)。 +.SH バージョン .BR clock_nanosleep () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 2.6 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -glibc ¤Ç¤Ï¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò +システムコールは Linux 2.6 で初めて登場した。 +glibc ではバージョン 2.1 以降でサポートされている。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .I request -¤Ç»ØÄꤵ¤ì¤¿Ää»ß´ü´Ö¤¬¡¢»þ´Ö¤Î·×¬¤Ë»ÈÍѤµ¤ì¤ë¥¯¥í¥Ã¥¯ +で指定された停止期間が、時間の計測に使用されるクロック .RB ( time (7) -»²¾È) ¤ÎÀºÅÙ¤ÎÇÜ¿ô¤Á¤ç¤¦¤É¤Ç¤Ê¤¤¾ì¹ç¡¢Ää»ß´ü´Ö¤Ï°ìÈֶᤤ¼¡¤ÎÇÜ¿ô¤Ë -ÀÚ¤ê¾å¤²¤é¤ì¤ë¡£¤µ¤é¤Ë¡¢Ää»ß¤¬´°Î»¤·¤¿¸å¤Ë¡¢CPU ¤¬¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤ò -¤â¤¦°ìÅټ¹ԤǤ­¤ë¤è¤¦¤Ë¤Ê¤ë¤Þ¤Ç¤Ë¤Ï¡¢Ãٱ䤬Æþ¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +参照) の精度の倍数ちょうどでない場合、停止期間は一番近い次の倍数に +切り上げられる。さらに、停止が完了した後に、CPU が呼び出したスレッドを +もう一度実行できるようになるまでには、遅延が入る可能性がある。 -ÀäÂÐÃÍ»ØÄê¤Î¥¿¥¤¥Þ¤ò»È¤¦¤Î¤Ï¡¢ +絶対値指定のタイマを使うのは、 .BR nanosleep (2) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ëÎà¤Î¥¿¥¤¥Þ¤Î¤º¤ì¤ÎÌäÂê¤òËɻߤ¹¤ë¤Î¤ËÌòΩ¤Ä -(¤³¤Î¼ï¤ÎÌäÂê¤Ï¡¢¥·¥°¥Ê¥ë¤Ë³ä¤ê¹þ¤Þ¤ì¤¿ºÝ¤ËÁêÂлØÄê¤ÎÄä»ß¤ò -·«¤êÊÖ¤·ºÆ³«¤·¤è¤¦¤È¤¹¤ë¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¤«¤¨¤Ã¤Æ°­²½¤¹¤ë)¡£ -¤³¤ì¤é¤ÎÌäÂê¤ò²óÈò¤·¤ÆÁêÂлØÄê¤ÎÄä»ß¤ò¼Â¹Ô¤¹¤ë¤Ë¤Ï¡¢ -´õ˾¤¹¤ë¥¯¥í¥Ã¥¯¤Ç +に書かれている類のタイマのずれの問題を防止するのに役立つ +(この種の問題は、シグナルに割り込まれた際に相対指定の停止を +繰り返し再開しようとするプログラムでは、かえって悪化する)。 +これらの問題を回避して相対指定の停止を実行するには、 +希望するクロックで .BR clock_gettime (2) -¤ò¸Æ¤Ó½Ð¤·¡¢¤½¤ÎÊÖ¤êÃͤλþ¹ïÃͤ˴õ˾¤¹¤ë´ü´Ö¤ò²Ã»»¤·¤Æ¤«¤é¡¢ +を呼び出し、その返り値の時刻値に希望する期間を加算してから、 .B TIMER_ABSTIME -¥Õ¥é¥°¤ò»ØÄꤷ¤Æ +フラグを指定して .BR clock_nanosleep () -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .BR sigaction (2) -¤Ç +で .BR SA_RESTART -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤«¤Ë´Ø¤ï¤é¤º¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¸å¤Ë +フラグが指定されているかに関わらず、 +シグナルハンドラにより割り込まれた後に .BR clock_nanosleep () -¤¬ºÆ³«¤µ¤ì¤ë¤³¤È¤Ï·è¤·¤Æ¤Ê¤¤¡£ +が再開されることは決してない。 .I flags -¤¬ +が .B TIMER_ABSTIME -¤Î¾ì¹ç¡¢ +の場合、 .I remain -°ú¤­¿ô¤Ï»ÈÍѤµ¤ì¤º¡¢ÉÔÍפǤ¢¤ë -(ÀäÂÐÃͤǤÎÄä»ß¤Ç¤Ï¡¢Æ±¤¸ +引き数は使用されず、不要である +(絶対値での停止では、同じ .I request -°ú¤­¿ô¤ò»È¤Ã¤ÆºÆÅٸƤӽФ¹¤³¤È¤¬¤Ç¤­¤ë)¡£ +引き数を使って再度呼び出すことができる)。 -POSIX.1 ¤Îµ¬Äê¤Ç¤Ï¡¢ +POSIX.1 の規定では、 .BR clock_nanosleep () -¤Ï¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤ä¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ë±Æ¶Á¤òÍ¿¤¨¤Ê¤¤¡¢¤È¤µ¤ì¤Æ¤¤¤ë¡£ +はシグナルの処理方法やシグナルマスクに影響を与えない、とされている。 -POSIX.1 ¤Îµ¬Äê¤Ç¤Ï¡¢ +POSIX.1 の規定では、 .BR clock_settime (2) -¤Ç +で .B CLOCK_REALTIME -¥¯¥í¥Ã¥¯¤ÎÃͤòÊѹ¹¤·¤¿¸å¤Ï¡¢ÀäÂÐÃÍ»ØÄê¤Î +クロックの値を変更した後は、絶対値指定の .BR clock_nanosleep () -¤ÇÄä»ß¤·¤Æ¤¤¤ë¥¹¥ì¥Ã¥É¤òµ¯Æ°¤µ¤»¤ë»þ¹ï¤ÎȽÄê¤Ï¡¢ -¿·¤·¤¤¥¯¥í¥Ã¥¯Ãͤò»È¤Ã¤Æ¹Ô¤ï¤ì¤ë¡¢¤È¤µ¤ì¤Æ¤¤¤ë¡£ -¿·¤·¤¤¥¯¥í¥Ã¥¯Ãͤˤª¤¤¤ÆÄä»ß´ü´Ö¤Î½ªÎ»»þ¹ï¤¬²áµî¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ +で停止しているスレッドを起動させる時刻の判定は、 +新しいクロック値を使って行われる、とされている。 +新しいクロック値において停止期間の終了時刻が過去になってしまった場合には、 .BR clock_nanosleep () -¤Ï¤¹¤°¤ËÊ֤뤳¤È¤Ë¤Ê¤ë¡£ +はすぐに返ることになる。 -POSIX.1 ¤Îµ¬Äê¤Ç¤Ï¡¢ +POSIX.1 の規定では、 .BR clock_settime (2) -¤Ç +で .B CLOCK_REALTIME -¥¯¥í¥Ã¥¯¤ÎÃͤòÊѹ¹¤·¤Æ¤â¡¢ÁêÂÐÃÍ»ØÄê¤Î +クロックの値を変更しても、相対値指定の .BR clock_nanosleep () -¤ÇÄä»ß¤·¤Æ¤¤¤ë¥¹¥ì¥Ã¥É¤Ë¤Ï±Æ¶Á¤òÍ¿¤¨¤Ê¤¤¡¢¤È¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +で停止しているスレッドには影響を与えない、とされている。 +.SH 関連項目 .BR clock_getres (2), .BR nanosleep (2), .BR timer_create (2), diff --git a/release/man2/clone.2 b/release/man2/clone.2 index 2504a431..52e505b1 100644 --- a/release/man2/clone.2 +++ b/release/man2/clone.2 @@ -58,16 +58,16 @@ .\" Updated 2009-03-02, Akihiro MOTOKI, LDP v3.19 .\" Updated 2010-04-11, Akihiro MOTOKI, LDP v3.24 .\" -.\"WORD: capability ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ -.\"WORD: pending signals ½èÍýÂÔ¤Á¥·¥°¥Ê¥ë -.\"WORD: namespace ̾Á°¶õ´Ö +.\"WORD: capability ケーパビリティ +.\"WORD: pending signals 処理待ちシグナル +.\"WORD: namespace 名前空間 .\" .TH CLONE 2 2010-11-01 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -clone, __clone2 \- »Ò¥×¥í¥»¥¹¤òºîÀ®¤¹¤ë -.SH ½ñ¼° +.SH 名前 +clone, __clone2 \- 子プロセスを作成する +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .\" Actually _BSD_SOURCE || _SVID_SOURCE .\" See http://sources.redhat.com/bugzilla/show_bug.cgi?id=4749 .B #include @@ -77,306 +77,306 @@ clone, __clone2 \- .BI " /* pid_t *" ptid ", struct user_desc *" tls \ ", pid_t *" ctid " */ );" .fi -.SH ÀâÌÀ +.SH 説明 .BR clone () -¤Ï +は .BR fork (2) -¤ÈƱ¤¸¤è¤¦¤ÊÊýË¡¤Ç¿·¤·¤¤¥×¥í¥»¥¹¤òºîÀ®¤¹¤ë¡£ +と同じような方法で新しいプロセスを作成する。 .BR clone () -¤Ë¤Ï¡¢¥é¥¤¥Ö¥é¥ê´Ø¿ô¤È¤½¤Î²¼Áؤˤ¢¤¿¤ë +には、ライブラリ関数とその下層にあたる .BR clone () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Â¸ºß¤¹¤ë¡£°Ê²¼¤ÎÀâÌÀ¤Ç¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÊý¤ò +システムコールが存在する。以下の説明では、システムコールの方を .B sys_clone -¤Èɽ¤¹¤³¤È¤È¤¹¤ë¡£ +と表すこととする。 .B sys_clone -¤Ë´Ø¤¹¤ëÀâÌÀ¤Ï¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤ÎºÇ¸å¤ÎÊý¤Ë¤¢¤ë¡£ +に関する説明はこのマニュアルの最後の方にある。 .BR fork (2) -¤È¤Ï°Û¤Ê¤ê¡¢¤³¤ì¤é¤Î¥³¡¼¥ë¤Ç¤Ï¡¢»Ò¥×¥í¥»¥¹ (child process) -¤È¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤È¤¬¡¢¥á¥â¥ê¶õ´Ö¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¥Æ¡¼¥Ö¥ë¡¢¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤Î¥Æ¡¼¥Ö¥ë¤Ê¤É¤Î -¼Â¹Ô¥³¥ó¥Æ¥­¥¹¥È¤Î°ìÉô¤ò¶¦Í­¤Ç¤­¤ë¡£ -(¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Ë¤ª¤±¤ë¡Ö¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¡×¤Ï¡¢Ä̾ï¤Ï -¡Ö¿Æ¥×¥í¥»¥¹¡×¤È°ìÃפ¹¤ë¡£Ã¢¤·¡¢¸å½Ò¤Î +とは異なり、これらのコールでは、子プロセス (child process) +と呼び出し元のプロセスとが、メモリ空間、 +ファイルディスクリプタのテーブル、シグナル・ハンドラのテーブルなどの +実行コンテキストの一部を共有できる。 +(このマニュアルにおける「呼び出し元のプロセス」は、通常は +「親プロセス」と一致する。但し、後述の .B CLONE_PARENT -¤Î¹à¤â»²¾È¤Î¤³¤È) +の項も参照のこと) .BR clone () -¤Î¼çÍפʻÈÍÑË¡¤Ï¥¹¥ì¥Ã¥É (threads) ¤ò¼ÂÁõ¤¹¤ë¤³¤È¤Ç¤¢¤ë: -°ì¤Ä¤Î¥×¥í¥°¥é¥à¤ÎÃæ¤ÎÊ£¿ô¤Î¥¹¥ì¥Ã¥É¤Ï¶¦Í­¤µ¤ì¤¿¥á¥â¥ê¶õ´Ö¤Ç -Ʊ»þ¤Ë¼Â¹Ô¤µ¤ì¤ë¡£ +の主要な使用法はスレッド (threads) を実装することである: +一つのプログラムの中の複数のスレッドは共有されたメモリ空間で +同時に実行される。 .BR clone () -¤Ç»Ò¥×¥í¥»¥¹¤¬ºîÀ®¤µ¤ì¤¿»þ¤Ë¡¢ºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï´Ø¿ô +で子プロセスが作成された時に、作成された子プロセスは関数 .IR fn ( arg ) -¤ò¼Â¹Ô¤¹¤ë¡£ -(¤³¤ÎÅÀ¤¬ +を実行する。 +(この点が .BR fork (2) -¤È¤Ï°Û¤Ê¤ë¡£ +とは異なる。 .BR fork (2) -¤Î¾ì¹ç¡¢»Ò¥×¥í¥»¥¹¤Ï +の場合、子プロセスは .BR fork (2) -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì½ê¤«¤é¼Â¹Ô¤ò³¤±¤ë¡£) +が呼び出された場所から実行を続ける。) .I fn -°ú¤­¿ô¤Ï¡¢»Ò¥×¥í¥»¥¹¤¬¼Â¹Ô¤ò»Ï¤á¤ë»þ¤Ë»Ò¥×¥í¥»¥¹¤¬¸Æ¤Ó½Ð¤¹ -´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +引き数は、子プロセスが実行を始める時に子プロセスが呼び出す +関数へのポインタである。 .I arg -°ú¤­¿ô¤Ï¤½¤Î¤Þ¤Þ +引き数はそのまま .I fn -´Ø¿ô¤Ø¤ÈÅϤµ¤ì¤ë¡£ +関数へと渡される。 .IR fn ( arg ) -´Ø¿ô¤¬½ªÎ»¤¹¤ë¤È¡¢»Ò¥×¥í¥»¥¹¤Ï½ªÎ»¤¹¤ë¡£ +関数が終了すると、子プロセスは終了する。 .I fn -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤¿À°¿ô¤¬»Ò¥×¥í¥»¥¹¤Î½ªÎ»¥³¡¼¥É¤È¤Ê¤ë¡£ -»Ò¥×¥í¥»¥¹¤Ï¡¢ +によって返された整数が子プロセスの終了コードとなる。 +子プロセスは、 .BR exit (2) -¤ò¸Æ¤ó¤ÇÌÀ¼¨Åª¤Ë½ªÎ»¤¹¤ë¤³¤È¤â¤¢¤ë¤·¡¢Ã×̿Ū¤Ê¥·¥°¥Ê¥ë¤ò¼õ¿®¤·¤¿ -¾ì¹ç¤Ë½ªÎ»¤¹¤ë¤³¤È¤â¤¢¤ë¡£ +を呼んで明示的に終了することもあるし、致命的なシグナルを受信した +場合に終了することもある。 .I child_stack -°ú¤­¿ô¤Ï¡¢»Ò¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤ë¥¹¥¿¥Ã¥¯¤Î°ÌÃÖ¤ò»ØÄꤹ¤ë¡£ -»Ò¥×¥í¥»¥¹¤È¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ï¥á¥â¥ê¤ò¶¦Í­¤¹¤ë¤³¤È¤¬¤¢¤ë¤¿¤á¡¢ -»Ò¥×¥í¥»¥¹¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÈƱ¤¸¥¹¥¿¥Ã¥¯¤Ç¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ -¤³¤Î¤¿¤á¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ï»Ò¥×¥í¥»¥¹¤Î¥¹¥¿¥Ã¥¯¤Î¤¿¤á¤Î¥á¥â¥ê¶õ´Ö¤ò -ÍÑ°Õ¤·¤Æ¡¢¤³¤Î¶õ´Ö¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò +引き数は、子プロセスによって使用されるスタックの位置を指定する。 +子プロセスと呼び出し元のプロセスはメモリを共有することがあるため、 +子プロセスは呼び出し元のプロセスと同じスタックで実行することができない。 +このため、呼び出し元のプロセスは子プロセスのスタックのためのメモリ空間を +用意して、この空間へのポインタを .BR clone () -¤ØÅϤµ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -(HP PA ¥×¥í¥»¥Ã¥µ°Ê³°¤Î) Linux ¤¬Æ°ºî¤¹¤ëÁ´¤Æ¤Î¥×¥í¥»¥Ã¥µ¤Ç¤Ï¡¢ -¥¹¥¿¥Ã¥¯¤Ï²¼Êý (¥¢¥É¥ì¥¹¤¬¾®¤µ¤¤Êý¸þ) ¤Ø¤È¿­¤Ó¤ë¡£¤³¤Î¤¿¤á¡¢ÉáÄÌ¤Ï +へ渡さなければならない。 +(HP PA プロセッサ以外の) Linux が動作する全てのプロセッサでは、 +スタックは下方 (アドレスが小さい方向) へと伸びる。このため、普通は .I child_stack -¤Ï»Ò¥×¥í¥»¥¹¤Î¥¹¥¿¥Ã¥¯¤Î¤¿¤á¤ËÍÑ°Õ¤·¤¿¥á¥â¥ê¶õ´Ö¤Î°ìÈÖÂ礭¤¤ -¥¢¥É¥ì¥¹¤ò»Ø¤¹¤è¤¦¤Ë¤¹¤ë¡£ +は子プロセスのスタックのために用意したメモリ空間の一番大きい +アドレスを指すようにする。 .I flags -¤Î²¼°Ì 1 ¥Ð¥¤¥È¤Ï»Ò¥×¥í¥»¥¹¤¬»à¤ó¤À¾ì¹ç¤Ë¿Æ¥×¥í¥»¥¹¤Ø¤ÈÁ÷¤é¤ì¤ë -.I "½ªÎ»¥·¥°¥Ê¥ë (termination signal)" -¤ÎÈÖ¹æ¤ò»ØÄꤹ¤ë¡£¤³¤Î¥·¥°¥Ê¥ë¤È¤·¤Æ +の下位 1 バイトは子プロセスが死んだ場合に親プロセスへと送られる +.I "終了シグナル (termination signal)" +の番号を指定する。このシグナルとして .B SIGCHLD -°Ê³°¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¿Æ¥×¥í¥»¥¹¤Ï¡¢ +以外が指定された場合、親プロセスは、 .BR wait (2) -¤Ç»Ò¥×¥í¥»¥¹¤òÂԤĺݤˡ¢¥ª¥×¥·¥ç¥ó¤È¤·¤Æ +で子プロセスを待つ際に、オプションとして .B __WALL -¤Þ¤¿¤Ï +または .B __WCLONE -¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤É¤Î¥·¥°¥Ê¥ë¤â»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿»þ¤Ë¿Æ¥×¥í¥»¥¹ -¤Ë¥·¥°¥Ê¥ë¤ÏÁ÷¤é¤ì¤Ê¤¤¡£ +を指定しなければならない。 +どのシグナルも指定されなかった場合、子プロセスが終了した時に親プロセス +にシグナルは送られない。 .I flags -¤Ë¤Ï¡¢°Ê²¼¤ÎÄê¿ô¤Î¤¦¤Á 0¸Ä°Ê¾å¤ò¥Ó¥Ã¥ÈËè¤ÎÏÀÍýÏ (bitwise-or) -¤ò¤È¤Ã¤¿¤â¤Î¤ò»ØÄê¤Ç¤­¤ë¡£¤³¤ì¤é¤ÎÄê¿ô¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤È -»Ò¥×¥í¥»¥¹¤Î´Ö¤Ç²¿¤ò¶¦Í­¤¹¤ë¤«¤ò»ØÄꤹ¤ë: +には、以下の定数のうち 0個以上をビット毎の論理和 (bitwise-or) +をとったものを指定できる。これらの定数は呼び出し元のプロセスと +子プロセスの間で何を共有するかを指定する: .TP -.BR CLONE_CHILD_CLEARTID " (Linux 2.5.49 °Ê¹ß)" -»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿¤È¤­¤Ë»Ò¥×¥í¥»¥¹¤Î¥á¥â¥êÆâ¤Î +.BR CLONE_CHILD_CLEARTID " (Linux 2.5.49 以降)" +子プロセスが終了したときに子プロセスのメモリ内の .I ctid -¤¬»Ø¤¹¾ì½ê¤Ë¤¢¤ë»Ò¥×¥í¥»¥¹¤Î¥¹¥ì¥Ã¥É ID ¤ò¾Ãµî¤·¡¢ -¤½¤Î¥¢¥É¥ì¥¹¤Ç futex ¤ò wake (µ¯¾²) ¤µ¤»¤ë¡£ -¤³¤Î¥¢¥É¥ì¥¹¤Ï +が指す場所にある子プロセスのスレッド ID を消去し、 +そのアドレスで futex を wake (起床) させる。 +このアドレスは .BR set_tid_address (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÇÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Îµ¡Ç½¤Ï¥¹¥ì¥Ã¥É¥é¥¤¥Ö¥é¥ê¤Ç»ÈÍѤµ¤ì¤ë¡£ +システムコールで変更することができる。 +この機能はスレッドライブラリで使用される。 .TP -.BR CLONE_CHILD_SETTID " (Linux 2.5.49 °Ê¹ß)" -»Ò¥×¥í¥»¥¹¤Î¥á¥â¥êÆâ¤Î +.BR CLONE_CHILD_SETTID " (Linux 2.5.49 以降)" +子プロセスのメモリ内の .I ctid -¤¬»Ø¤¹¾ì½ê¤Ë»Ò¥×¥í¥»¥¹¤Î¥¹¥ì¥Ã¥É ID ¤ò³ÊǼ¤¹¤ë¡£ +が指す場所に子プロセスのスレッド ID を格納する。 .TP .B CLONE_FILES .B CLONE_FILES -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤È»Ò¥×¥í¥»¥¹¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î -¥Æ¡¼¥Ö¥ë¤ò¶¦Í­¤¹¤ë¡£ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤È¤½¤Î»Ò¥×¥í¥»¥¹¤Î°ìÊý¤¬ºîÀ®¤·¤¿ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢¤â¤¦°ìÊý¤Ë¤ª¤¤¤Æ¤âÍ­¸ú¤Ç¤¢¤ë¡£ -Ʊ¤¸¤è¤¦¤Ë¡¢°ìÊý¤Î¥×¥í¥»¥¹¤¬¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊĤ¸¤¿¤ê¡¢ +が設定された場合、呼び出し元のプロセスと子プロセスはファイルディスクリプタの +テーブルを共有する。 +呼び出し元プロセスとその子プロセスの一方が作成した +ファイルディスクリプタは、もう一方においても有効である。 +同じように、一方のプロセスがファイルディスクリプタを閉じたり、 .RB ( fcntl (2) .B F_SETFD -Áàºî¤ò»È¤Ã¤Æ) ¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë´ØÏ¢¤¹¤ë¥Õ¥é¥°¤òÊѹ¹¤·¤¿¤ê¤¹¤ë¤È¡¢ -¤â¤¦°ìÊý¤Î¥×¥í¥»¥¹¤Ë¤â±Æ¶Á¤¹¤ë¡£ +操作を使って) ディスクリプタに関連するフラグを変更したりすると、 +もう一方のプロセスにも影響する。 .B CLONE_FILES -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢»Ò¥×¥í¥»¥¹¤Ï¡¢ +が設定されていない場合、子プロセスは、 .BR clone () -¤¬¼Â¹Ô¤µ¤ì¤¿»þÅÀ¤Ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ëÁ´¤Æ¤Î -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë -(»Ò¥×¥í¥»¥¹¤ÎÊ£À½¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢ -Âбþ¤¹¤ë¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤È -Ʊ¤¸¥Õ¥¡¥¤¥ëµ­½Ò +が実行された時点で、呼び出し元のプロセスがオープンしている全ての +ファイルディスクリプタのコピーを継承する +(子プロセスの複製されたファイルディスクリプタは、 +対応する呼び出し元のプロセスのファイルディスクリプタと +同じファイル記述 .RB ( open (2) -»²¾È) ¤ò»²¾È¤¹¤ë)¡£ -¤³¤ì°Ê¹ß¤Ë¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤È»Ò¥×¥í¥»¥¹¤Î°ìÊý¤¬ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÁàºî (¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î -¥ª¡¼¥×¥ó¡¦¥¯¥í¡¼¥º¤ä¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Õ¥é¥°¤ÎÊѹ¹) -¤ò¹Ô¤Ã¤Æ¤â¡¢¤â¤¦°ìÊý¤Î¥×¥í¥»¥¹¤Ë¤Ï±Æ¶Á¤òÍ¿¤¨¤Ê¤¤¡£ +参照) を参照する)。 +これ以降に、呼び出し元のプロセスと子プロセスの一方が +ファイルディスクリプタの操作 (ファイルディスクリプタの +オープン・クローズや、ファイルディスクリプタ・フラグの変更) +を行っても、もう一方のプロセスには影響を与えない。 .TP .B CLONE_FS .B CLONE_FS -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤È»Ò¥×¥í¥»¥¹¤¬Æ±¤¸¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à -¾ðÊó¤ò¶¦Í­¤¹¤ë¡£¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¾ðÊó¤Ï¡¢¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î¥ë¡¼¥È (root)¡¢ -¥«¥ì¥ó¥È¡¦¥ï¡¼¥­¥ó¥°¡¦¥Ç¥£¥ì¥¯¥È¥ê (current working directory) -¤ä umask ¤Ê¤É¤Ç¤¢¤ë¡£ -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ä»Ò¥×¥í¥»¥¹¤Î¤É¤Á¤é¤«°ìÊý¤Ë¤è¤Ã¤Æ +が設定された場合、呼び出し元のプロセスと子プロセスが同じファイル・システム +情報を共有する。ファイル・システム情報は、ファイル・システムのルート (root)、 +カレント・ワーキング・ディレクトリ (current working directory) +や umask などである。 +呼び出し元のプロセスや子プロセスのどちらか一方によって .BR chroot (2), .BR chdir (2), .BR umask (2) -¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤È¡¢¤â¤¦°ìÊý¤Î¥×¥í¥»¥¹¤Ë¤â±Æ¶Á¤¬µÚ¤Ö¡£ +が呼び出されると、もう一方のプロセスにも影響が及ぶ。 .B CLONE_FS -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢»Ò¥×¥í¥»¥¹¤Ï¡¢ +が設定されていない場合、子プロセスは、 .BR clone () -¤¬¼Â¹Ô¤µ¤ì¤¿»þÅÀ¤Ç¤Î¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¾ðÊó¤Î¥³¥Ô¡¼¤ò -»ÈÍѤ¹¤ë¡£ -¤³¤ì°Ê¹ß¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤È»Ò¥×¥í¥»¥¹¤Î°ìÊý¤¬ +が実行された時点での、呼び出し元のプロセスのファイル・システム情報のコピーを +使用する。 +これ以降は、呼び出し元のプロセスと子プロセスの一方が .BR chroot (2), .BR chdir (2), .BR umask (2) -¤ò¸Æ¤Ó½Ð¤·¤Æ¤â¡¢¤â¤¦°ìÊý¤Î¥×¥í¥»¥¹¤Ë¤Ï±Æ¶Á¤òÍ¿¤¨¤Ê¤¤¡£ +を呼び出しても、もう一方のプロセスには影響を与えない。 .TP -.BR CLONE_IO " (Linux 2.6.25 °Ê¹ß)" +.BR CLONE_IO " (Linux 2.6.25 以降)" .B CLONE_IO -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¿·¤·¤¤¥×¥í¥»¥¹¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤È -I/O ¥³¥ó¥Æ¥­¥¹¥È¤ò¶¦Í­¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ +が設定された場合、新しいプロセスは呼び出し元のプロセスと +I/O コンテキストを共有する。 +このフラグが設定されていない場合には、 .RB ( fork (2) -¤Î¾ì¹ç¤ÈƱÍÍ) ¿·¤·¤¤¥×¥í¥»¥¹¤Ï¼«Ê¬ÀìÍѤΠI/O ¥³¥ó¥Æ¥­¥¹¥È¤ò»ý¤Ä¡£ +の場合と同様) 新しいプロセスは自分専用の I/O コンテキストを持つ。 .\" The following based on text from Jens Axboe -I/O ¥³¥ó¥Æ¥­¥¹¥È¤Ï¡¢¥Ç¥£¥¹¥¯¥¹¥±¥¸¥å¡¼¥ë¤Î I/O ¥¹¥³¡¼¥×¤Ç¤¢¤ë -(¸À¤¤´¹¤¨¤ë¤È¡¢I/O ¥³¥ó¥Æ¥­¥¹¥È¤Ï I/O ¥¹¥±¥¸¥å¡¼¥é¤¬¥×¥í¥»¥¹ I/O ¤Î -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ò¥â¥Ç¥ë²½¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë)¡£ -Ê£¿ô¤Î¥×¥í¥»¥¹¤¬Æ±¤¸ I/O ¥³¥ó¥Æ¥­¥¹¥È¤ò¶¦Í­¤¹¤ë¾ì¹ç¡¢ -¤³¤ì¤é¤Î¥×¥í¥»¥¹¤Ï I/O ¥¹¥±¥¸¥å¡¼¥é¤«¤é¤Ï°ì¤Ä¤È¤·¤Æ°·¤ï¤ì¤ë¡£ -·ë²Ì¤È¤·¤Æ¡¢¤³¤ì¤é¤Î¥×¥í¥»¥¹¤Ï¥Ç¥£¥¹¥¯¥¢¥¯¥»¥¹¤Î»þ´Ö¤ò¶¦Í­¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¤¤¤¯¤Ä¤«¤Î I/O ¥¹¥±¥¸¥å¡¼¥é¤Ç¤Ï¡¢ -.\" ͽ¬¥¹¥±¥¸¥å¡¼¥é¤È CFQ ¥¹¥±¥¸¥å¡¼¥é -Æó¤Ä¤Î¥×¥í¥»¥¹¤¬ I/O ¥³¥ó¥Æ¥­¥¹¥È¤ò¶¦Í­¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -¤³¤ì¤é¤Î¥×¥í¥»¥¹¤Ï¥Ç¥£¥¹¥¯¥¢¥¯¥»¥¹¤ò¸ò¸ß¤Ë¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -Ʊ¤¸¥×¥í¥»¥¹¤ÎÊ£¿ô¤Î¥¹¥ì¥Ã¥É¤¬ I/O ¤ò¼Â¹Ô¤·¤Æ¤¤¤ë¾ì¹ç -(Î㤨¤Ð -.BR aio_read (3))¡¢ +I/O コンテキストは、ディスクスケジュールの I/O スコープである +(言い換えると、I/O コンテキストは I/O スケジューラがプロセス I/O の +スケジューリングをモデル化するのに使用される)。 +複数のプロセスが同じ I/O コンテキストを共有する場合、 +これらのプロセスは I/O スケジューラからは一つとして扱われる。 +結果として、これらのプロセスはディスクアクセスの時間を共有するようになる。 +いくつかの I/O スケジューラでは、 +.\" 予測スケジューラと CFQ スケジューラ +二つのプロセスが I/O コンテキストを共有している場合、 +これらのプロセスはディスクアクセスを交互に行うことができる。 +同じプロセスの複数のスレッドが I/O を実行している場合 +(例えば +.BR aio_read (3))、 .B CLONE_IO -¤òÍøÍѤ¹¤ë¤³¤È¤Ç I/O À­Ç½¤òÎɤ¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.\" CFQ ¤È AS ¤Î¾ì¹ç +を利用することで I/O 性能を良くすることができる。 +.\" CFQ と AS の場合 -¥«¡¼¥Í¥ë¤ÎÀßÄ꤬ +カーネルの設定が .B CONFIG_BLOCK -¥ª¥×¥·¥ç¥óÉÕ¤­¤Ç¤Ê¤¤¾ì¹ç¡¢ -¤³¤Î¥Õ¥é¥°¤Ï²¿¤Î°ÕÌ£¤â»ý¤¿¤Ê¤¤¡£ +オプション付きでない場合、 +このフラグは何の意味も持たない。 .TP -.BR CLONE_NEWIPC " (Linux 2.6.19 °Ê¹ß)" +.BR CLONE_NEWIPC " (Linux 2.6.19 以降)" .B CLONE_NEWIPC -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¿·¤·¤¤ IPC ̾Á°¶õ´Ö (namespace) ¤Ç¥×¥í¥»¥¹¤òºîÀ®¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +が設定された場合、新しい IPC 名前空間 (namespace) でプロセスを作成する。 +このフラグが設定されていない場合、 .RB ( fork (2) -¤Î¾ì¹ç¤ÈƱÍÍ) ¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÈƱ¤¸ IPC ̾Á°¶õ´Ö¤Ç¥×¥í¥»¥¹¤¬ -ºîÀ®¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï¡¢¥³¥ó¥Æ¥Ê¤Î¼ÂÁõ¤Ç¤Î»ÈÍѤò°Õ¿Þ¤·¤ÆÍÑ°Õ¤µ¤ì¤¿¤â¤Î¤Ç¤¢¤ë¡£ +の場合と同様) 呼び出し元のプロセスと同じ IPC 名前空間でプロセスが +作成される。 +このフラグは、コンテナの実装での使用を意図して用意されたものである。 -IPC ̾Á°¶õ´Ö¤Ï¡¢System V IPC ¥ª¥Ö¥¸¥§¥¯¥ÈÍѤμ±ÊÌ»Ò (identifiers) ¤Î -½¸¹ç¤Ç¹½À®¤µ¤ì¤ë -(System V IPC ¥ª¥Ö¥¸¥§¥¯¥È¤Ï +IPC 名前空間は、System V IPC オブジェクト用の識別子 (identifiers) の +集合で構成される +(System V IPC オブジェクトは .BR msgctl (2), .BR semctl (2), .BR shmctl (2) -¤ò»È¤Ã¤ÆºîÀ®¤µ¤ì¤ë)¡£ -¤¢¤ë IPC ̾Á°¶õ´Ö¤ËºîÀ®¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢ -¤½¤Î̾Á°¶õ´Ö¤Î¥á¥ó¥Ð¡¼¤Ç¤¢¤ë¾¤Î¤¹¤Ù¤Æ¤Î¥×¥í¥»¥¹¤«¤é¤â¸«¤¨¤ë¤¬¡¢ -°ã¤¦ IPC ̾Á°¶õ´Ö¤Î¥×¥í¥»¥¹¤«¤é¤Ï¸«¤¨¤Ê¤¤¡£ +を使って作成される)。 +ある IPC 名前空間に作成されたオブジェクトは、 +その名前空間のメンバーである他のすべてのプロセスからも見えるが、 +違う IPC 名前空間のプロセスからは見えない。 -IPC ̾Á°¶õ´Ö¤¬ÇË´þ¤µ¤ì¤ë»þ -(¤¹¤Ê¤ï¤Á¡¢¤½¤Î̾Á°¶õ´Ö¤Î¥á¥ó¥Ð¡¼¤ÎºÇ¸å¤Î¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë»þ)¡¢ -¤½¤Î̾Á°¶õ´Ö¤ÎÁ´¤Æ¤Î IPC ¥ª¥Ö¥¸¥§¥¯¥È¤Ï¼«Æ°Åª¤ËÇË´þ¤µ¤ì¤ë¡£ +IPC 名前空間が破棄される時 +(すなわち、その名前空間のメンバーの最後のプロセスが終了する時)、 +その名前空間の全ての IPC オブジェクトは自動的に破棄される。 -¤³¤Î¥Õ¥é¥°¤ò»ÈÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢ -¥«¡¼¥Í¥ë¤Ç¥ª¥×¥·¥ç¥ó +このフラグを使用するためには、 +カーネルでオプション .B CONFIG_SYSVIPC -¤È +と .B CONFIG_IPC_NS -¤òÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¡¢ -¥×¥í¥»¥¹¤¬Æø¢ +を有効になっていること、 +プロセスが特権 .RB ( CAP_SYS_ADMIN ) -¤ò»ý¤Ã¤Æ¤¤¤ë¤³¤È¤¬É¬ÍפǤ¢¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï +を持っていることが必要である。 +このフラグは .B CLONE_SYSVSEM -¤ÈÁȤ߹ç¤ï¤»¤Æ»È¤¦¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +と組み合わせて使うことはできない。 .TP -.BR CLONE_NEWNET " (Linux 2.6.24 °Ê¹ß)" -(¤³¤Î¥Õ¥é¥°¤Î¼ÂÁõ¤Ï¡¢Linux 2.6.29 ¤¢¤¿¤ê¤Þ¤Ç¤Ë´°À®¤·¤¿¡£) +.BR CLONE_NEWNET " (Linux 2.6.24 以降)" +(このフラグの実装は、Linux 2.6.29 あたりまでに完成した。) .B CLONE_NEWNET -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¿·¤·¤¤¥Í¥Ã¥È¥ï¡¼¥¯Ì¾Á°¶õ´Ö (network namaspace) -¤Ç¥×¥í¥»¥¹¤òºîÀ®¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +が設定された場合、新しいネットワーク名前空間 (network namaspace) +でプロセスを作成する。 +このフラグが設定されていない場合、 .RB ( fork (2) -¤Î¾ì¹ç¤ÈƱÍÍ) ¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÈƱ¤¸¥Í¥Ã¥È¥ï¡¼¥¯Ì¾Á°¶õ´Ö¤Ç¥×¥í¥»¥¹¤¬ -ºîÀ®¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï¡¢¥³¥ó¥Æ¥Ê¤Î¼ÂÁõ¤Ç¤Î»ÈÍѤò°Õ¿Þ¤·¤ÆÍÑ°Õ¤µ¤ì¤¿¤â¤Î¤Ç¤¢¤ë¡£ - -¥Í¥Ã¥È¥ï¡¼¥¯Ì¾Á°¶õ´Ö¤Ï¡¢Ê¬Î¥¤µ¤ì¤¿¥Í¥Ã¥È¥ï¡¼¥¯¥¹¥¿¥Ã¥¯¤òÄ󶡤¹¤ë¤â¤Î¤Ç¤¢¤ë -(¥Í¥Ã¥È¥ï¡¼¥¯¥¹¥¿¥Ã¥¯¤È¤Ï¡¢ -¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¥¤¥ó¥¿¥Õ¥§¡¼¥¹¡¢IPv4 ¤ä IPv6 ¥×¥í¥È¥³¥ë¥¹¥¿¥Ã¥¯¡¢ -.IR /proc/net ¡¢ +の場合と同様) 呼び出し元のプロセスと同じネットワーク名前空間でプロセスが +作成される。 +このフラグは、コンテナの実装での使用を意図して用意されたものである。 + +ネットワーク名前空間は、分離されたネットワークスタックを提供するものである +(ネットワークスタックとは、 +ネットワークデバイスインタフェース、IPv4 や IPv6 プロトコルスタック、 +.IR /proc/net 、 .I /sys/class/net -¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¡¢¥½¥±¥Ã¥È¤Ê¤É¤Ç¤¢¤ë)¡£ -ʪÍý¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¤¬½ê°¤Ç¤­¤ë¥Í¥Ã¥È¥ï¡¼¥¯Ì¾Á°¶õ´Ö¤Ï°ì¤Ä¤À¤±¤Ç¤¢¤ë¡£ -²¾Áۥͥåȥ¥¯¥Ç¥Ð¥¤¥¹ ("veth") ¤Î¥Ú¥¢¤Ë¤è¤ê -¥Ñ¥¤¥×É÷¤ÎÃê¾Ý²½ (abstraction) ¤¬¼Â¸½¤µ¤ì¤Æ¤ª¤ê¡¢ -¤³¤ì¤ò»È¤¦¤³¤È¤Ç¡¢¥Í¥Ã¥È¥ï¡¼¥¯Ì¾Á°¶õ´Ö´Ö¤Î¥È¥ó¥Í¥ë¤òºîÀ®¤·¤¿¤ê¡¢ -Ê̤Î̾Á°¶õ´Ö¤ÎʪÍý¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¤Ø¤Î¥Ö¥ê¥Ã¥¸¤òºîÀ®¤·¤¿¤ê -¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ - -¥Í¥Ã¥È¥ï¡¼¥¯Ì¾Á°¶õ´Ö¤¬²òÊü¤µ¤ì¤ë»þ -(¤¹¤Ê¤ï¤Á¡¢¤½¤Î̾Á°¶õ´Ö¤ÎºÇ¸å¤Î¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë»þ)¡¢ -ʪÍý¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¤Ï½é´ü¥Í¥Ã¥È¥ï¡¼¥¯Ì¾Á°¶õ´Ö -(initial network namespace) ¤ËÌᤵ¤ì¤ë -(¿Æ¥×¥í¥»¥¹¤Î¥Í¥Ã¥È¥ï¡¼¥¯Ì¾Á°¶õ´Ö¤ËÌᤵ¤ì¤ëÌõ¤Ç¤Ï¤Ê¤¤)¡£ - -¤³¤Î¥Õ¥é¥°¤ò»ÈÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢ -¥«¡¼¥Í¥ë¤Ç¥ª¥×¥·¥ç¥ó +ディレクトリツリー、ソケットなどである)。 +物理ネットワークデバイスが所属できるネットワーク名前空間は一つだけである。 +仮想ネットワークデバイス ("veth") のペアにより +パイプ風の抽象化 (abstraction) が実現されており、 +これを使うことで、ネットワーク名前空間間のトンネルを作成したり、 +別の名前空間の物理ネットワークデバイスへのブリッジを作成したり +することができる。 + +ネットワーク名前空間が解放される時 +(すなわち、その名前空間の最後のプロセスが終了する時)、 +物理ネットワークデバイスは初期ネットワーク名前空間 +(initial network namespace) に戻される +(親プロセスのネットワーク名前空間に戻される訳ではない)。 + +このフラグを使用するためには、 +カーネルでオプション .B CONFIG_NET_NS -¤òÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¡¢ -¥×¥í¥»¥¹¤¬Æø¢ +を有効になっていること、 +プロセスが特権 .RB ( CAP_SYS_ADMIN ) -¤ò»ý¤Ã¤Æ¤¤¤ë¤³¤È¤¬É¬ÍפǤ¢¤ë¡£ +を持っていることが必要である。 .TP -.BR CLONE_NEWNS " (Linux 2.4.19 °Ê¹ß)" -»Ò¥×¥í¥»¥¹¤ò¿·¤·¤¤¥Þ¥¦¥ó¥È̾Á°¶õ´Ö (mount namespace) ¤Ç³«»Ï¤¹¤ë¡£ +.BR CLONE_NEWNS " (Linux 2.4.19 以降)" +子プロセスを新しいマウント名前空間 (mount namespace) で開始する。 -³Æ¥×¥í¥»¥¹¤Ï¤¢¤ë°ì¤Ä¤Î¥Þ¥¦¥ó¥È̾Á°¶õ´ÖÃæ¤Ë¸ºß¤¹¤ë¡£¥×¥í¥»¥¹¤Î -.I "̾Á°¶õ´Ö (namespace)" -¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤«¤é¸«¤¨¤ë¥Õ¥¡¥¤¥ë³¬Áؤòɽ¤¹¥Ç¡¼¥¿ (mount ¤Î½¸¹ç) ¤Ç¤¢¤ë¡£ +各プロセスはある一つのマウント名前空間中に存在する。プロセスの +.I "名前空間 (namespace)" +は、そのプロセスから見えるファイル階層を表すデータ (mount の集合) である。 .B CLONE_NEWNS -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤º¤Ë +フラグがセットされずに .BR fork (2) -¤« +か .BR clone () -¤¬¸Æ¤Ð¤ì¤ë¤È¡¢»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤ÈƱ¤¸¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤ËºîÀ®¤µ¤ì¤ë¡£ -¥·¥¹¥Æ¥à¥³¡¼¥ë -.BR mount (2)¡¢ +が呼ばれると、子プロセスは親プロセスと同じマウント名前空間に作成される。 +システムコール +.BR mount (2)、 .BR umount (2) -¤¬¸Æ¤Ð¤ì¤ë¤È¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤¬Êѹ¹¤µ¤ì¡¢¤³¤Î·ë²Ì -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÈƱ¤¸Ì¾Á°¶õ´Ö¤Ë¤¤¤ë¥×¥í¥»¥¹¤Ï¤¹¤Ù¤Æ±Æ¶Á¤ò¼õ¤±¤ë¤¬¡¢ -°Û¤Ê¤ë¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤Ë¤¤¤ë¥×¥í¥»¥¹¤Ï±Æ¶Á¤ò¼õ¤±¤Ê¤¤¡£ +が呼ばれると呼び出し元のプロセスのマウント名前空間が変更され、この結果 +呼び出し元のプロセスと同じ名前空間にいるプロセスはすべて影響を受けるが、 +異なるマウント名前空間にいるプロセスは影響を受けない。 .B CLONE_NEWNS -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ +フラグがセットされて .BR clone () -¤¬¸Æ¤Ð¤ì¤ë¤È¡¢clone ¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¿·¤·¤¤¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤Ç -³«»Ï¤µ¤ì¤ë¡£¿·¤·¤¤Ì¾Á°¶õ´Ö¤Ï¿Æ¥×¥í¥»¥¹¤Î̾Á°¶õ´Ö¤Î¥³¥Ô¡¼¤Ç½é´ü²½¤µ¤ì¤ë¡£ +が呼ばれると、clone で作成された子プロセスは新しいマウント名前空間で +開始される。新しい名前空間は親プロセスの名前空間のコピーで初期化される。 -Æø¢¥×¥í¥»¥¹ (\fBCAP_SYS_ADMIN\fP ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹) ¤Î¤ß¤¬ +特権プロセス (\fBCAP_SYS_ADMIN\fP ケーパビリティを持つプロセス) のみが .B CLONE_NEWNS -¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -°ì¤Ä¤Î +フラグを指定することができる。 +一つの .BR clone () -¸Æ¤Ó½Ð¤·¤Ç¡¢ +呼び出しで、 .B CLONE_NEWNS -¤È +と .B CLONE_FS -¤ÎξÊý¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +の両方を指定することはできない。 .TP -.BR CLONE_NEWPID " (Linux 2.6.24 °Ê¹ß)" +.BR CLONE_NEWPID " (Linux 2.6.24 以降)" .\" This explanation draws a lot of details from .\" http://lwn.net/Articles/259217/ .\" Authors: Pavel Emelyanov @@ -385,560 +385,560 @@ IPC ̾ .\" The primary kernel commit is 30e49c263e36341b60b735cbef5ca37912549264 .\" Author: Pavel Emelyanov .B CLONE_NEWPID -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¿·¤·¤¤ PID ̾Á°¶õ´Ö¤Ç¥×¥í¥»¥¹¤òºîÀ®¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +が設定された場合、新しい PID 名前空間でプロセスを作成する。 +このフラグが設定されていない場合、 .RB ( fork (2) -¤Î¾ì¹ç¤ÈƱÍÍ) ¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÈƱ¤¸ PID ̾Á°¶õ´Ö¤Ç -¥×¥í¥»¥¹¤¬ºîÀ®¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï¡¢¥³¥ó¥Æ¥Ê¤Î¼ÂÁõ¤Ç¤Î»ÈÍѤò°Õ¿Þ¤·¤ÆÍÑ°Õ¤µ¤ì¤¿¤â¤Î¤Ç¤¢¤ë¡£ +の場合と同様) 呼び出し元のプロセスと同じ PID 名前空間で +プロセスが作成される。 +このフラグは、コンテナの実装での使用を意図して用意されたものである。 -PID ̾Á°¶õ´Ö¤Ï¡¢PID ¤Ë´Ø¤·¤ÆʬΥ¤µ¤ì¤¿´Ä¶­¤òÄ󶡤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¿·¤·¤¤Ì¾Á°¶õ´Ö¤Ë¤ª¤±¤ë PID ¤Ï 1 ¤«¤é»Ï¤Þ¤ê -(¤³¤ì¤Ï¥¹¥¿¥ó¥É¥¢¥í¥ó¤Î¥·¥¹¥Æ¥à¤È»÷¤¿¤è¤¦¤Ê´¶¤¸)¡¢ +PID 名前空間は、PID に関して分離された環境を提供するものである。 +新しい名前空間における PID は 1 から始まり +(これはスタンドアロンのシステムと似たような感じ)、 .BR fork (2), .BR vfork (2), .BR clone () -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¤½¤Î̾Á°¶õ´Ö¤Ç°ì°Õ¤Ê PID ¤ò»ý¤Ã¤¿¥×¥í¥»¥¹¤¬ºîÀ®¤µ¤ì¤ë¡£ +を呼び出すと、その名前空間で一意な PID を持ったプロセスが作成される。 -¿·¤·¤¤Ì¾Á°¶õ´Ö¤ÇºîÀ®¤µ¤ì¤ëºÇ½é¤Î¥×¥í¥»¥¹ -(¤Ä¤Þ¤ê¡¢ +新しい名前空間で作成される最初のプロセス +(つまり、 .B CLONE_NEWPID -¥Õ¥é¥°¤ò»È¤Ã¤ÆºîÀ®¤µ¤ì¤¿¥×¥í¥»¥¹) ¤Î PID ¤Ï 1 ¤Ç¤¢¤ê¡¢ -¤³¤Î¥×¥í¥»¥¹¤Ï¤½¤Î̾Á°¶õ´Ö¤Ë¤ª¤±¤ë "init" ¥×¥í¥»¥¹¤È¤Ê¤ë¡£ -¤³¤Î̾Á°¶õ´Ö¤Ë¤ª¤¤¤Æ¸É»ù (orphaned) ¤È¤Ê¤Ã¤¿»Ò¥×¥í¥»¥¹¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +フラグを使って作成されたプロセス) の PID は 1 であり、 +このプロセスはその名前空間における "init" プロセスとなる。 +この名前空間において孤児 (orphaned) となった子プロセスについては、 .BR init (8) -¤Ç¤Ï¤Ê¤¯¤³¤Î¥×¥í¥»¥¹¤¬¿Æ¥×¥í¥»¥¹¤È¤Ê¤ë¡£ -ÀΤʤ¬¤é¤Î +ではなくこのプロセスが親プロセスとなる。 +昔ながらの .B init -¥×¥í¥»¥¹¤È¤Ï°ã¤¤¡¢PID ̾Á°¶õ´Ö¤Î "init" ¥×¥í¥»¥¹¤Ï½ªÎ» (terminated) ¤¹¤ë -¤³¤È¤¬¤Ç¤­¡¢¤½¤Î¾ì¹ç¤Ë¤Ï¡¢¤³¤Î̾Á°¶õ´Ö¤ÎÁ´¤Æ¤Î¥×¥í¥»¥¹¤¬½ªÎ»¤µ¤ì¤ë¡£ - -PID ̾Á°¶õ´Ö´Ö¤Ë¤Ï³¬Áع½Â¤¤¬·ÁÀ®¤µ¤ì¤ë¡£ -¿·¤·¤¤ PID ̾Á°¶õ´Ö¤¬ºîÀ®¤µ¤ì¤ë¤È¡¢¤½¤Î̾Á°¶õ´Ö¤Î¥×¥í¥»¥¹¤Ï¡¢ -¿·¤·¤¤Ì¾Á°¶õ´Ö¤òºîÀ®¤·¤¿¥×¥í¥»¥¹¤Î PID ̾Á°¶õ´Ö¤Ç¸«¤¨¤ë¡£ -ƱÍͤˡ¢¿Æ¤Î PID ̾Á°¶õ´Ö¼«ÂΤ¬Ê̤ΠPID ̾Á°¶õ´Ö¤Î»Ò¶¡¤Î¾ì¹ç¤Ë¤Ï¡¢ -»Ò¶¡¤Î PID ̾Á°¶õ´Ö¤È¿Æ¤Î PID ̾Á°¶õ´Ö¤Î¥×¥í¥»¥¹¤Ï¤É¤ì¤â -¿Æ¤Î¿Æ¤Î PID ̾Á°¶õ´Ö¤Ç¤â¸«¤¨¤ë¤³¤È¤Ë¤Ê¤ë¡£ -È¿ÂФˡ¢¡Ö»Ò¶¡¡×¤Î PID ̾Á°¶õ´Ö¤Î¥×¥í¥»¥¹¤Ë¤Ï¡¢ -¿Æ¤Î̾Á°¶õ´Ö¤Î¥×¥í¥»¥¹¤Ï¸«¤¨¤Ê¤¤¡£ -̾Á°¶õ´Ö¤Ë³¬Áع½Â¤¤¬Â¸ºß¤¹¤ë¤È¤¤¤¦¤³¤È¤Ï¡¢¸Ä¡¹¤Î¥×¥í¥»¥¹¤Ï -Ê£¿ô¤Î PID ¤ò»ý¤Ä¤È¤¤¤¦¤³¤È¤ò°ÕÌ£¤·¤Æ¤¤¤ë¡£ -¤½¤Î¥×¥í¥»¥¹¤¬¸«¤¨¤ë̾Á°¶õ´Ö°ì¤Ä¤Ë¤Ä¤­ PID ¤¬°ì¤Ä¤¢¤ê¡¢ -¤½¤ì¤¾¤ì¤Î PID ¤ÏÂбþ¤¹¤ë̾Á°¶õ´Ö¤Ë¤ª¤¤¤Æ°ì°Õ¤Ç¤¢¤ë¡£ +プロセスとは違い、PID 名前空間の "init" プロセスは終了 (terminated) する +ことができ、その場合には、この名前空間の全てのプロセスが終了される。 + +PID 名前空間間には階層構造が形成される。 +新しい PID 名前空間が作成されると、その名前空間のプロセスは、 +新しい名前空間を作成したプロセスの PID 名前空間で見える。 +同様に、親の PID 名前空間自体が別の PID 名前空間の子供の場合には、 +子供の PID 名前空間と親の PID 名前空間のプロセスはどれも +親の親の PID 名前空間でも見えることになる。 +反対に、「子供」の PID 名前空間のプロセスには、 +親の名前空間のプロセスは見えない。 +名前空間に階層構造が存在するということは、個々のプロセスは +複数の PID を持つということを意味している。 +そのプロセスが見える名前空間一つにつき PID が一つあり、 +それぞれの PID は対応する名前空間において一意である。 .RB ( getpid (2) -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¾ï¤Ë¤½¤Î¥×¥í¥»¥¹¤¬Â¸ºß¤·¤Æ¤¤¤ë̾Á°¶õ´Ö¤Ë¤ª¤±¤ë -PID ¤¬ÊÖ¤µ¤ì¤ë¡£) +を呼び出すと、常にそのプロセスが存在している名前空間における +PID が返される。) -¿·¤·¤¤Ì¾Á°¶õ´Ö¤ÎºîÀ®¸å¤Ë¤Ï¡¢ -»Ò¥×¥í¥»¥¹¤Ë¤ª¤¤¤Æ¡¢ +新しい名前空間の作成後には、 +子プロセスにおいて、 .BR ps (1) -¤È¤¤¤Ã¤¿¥Ä¡¼¥ë¤¬Àµ¤·¤¯Æ°ºî¤¹¤ë¤è¤¦¤Ë¡¢ -¼«¿È¤Î root ¥Ç¥£¥ì¥¯¥È¥ê¤òÊѹ¹¤·¡¢ +といったツールが正しく動作するように、 +自身の root ディレクトリを変更し、 .I /proc -¤Ë¿·¤·¤¤ procfs ¥¤¥ó¥¹¥¿¥ó¥¹¤ò¥Þ¥¦¥ó¥È¤¹¤ë¤Î¤¬¤è¤¤¤À¤í¤¦¡£ +に新しい procfs インスタンスをマウントするのがよいだろう。 .\" mount -t proc proc /proc .RB ( flags -¤Ë +に .B CLONE_NEWNS -¤â»ØÄꤵ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ë¤Ï¡¢root ¥Ç¥£¥ì¥¯¥È¥ê¤òÊѹ¹¤¹¤ëɬÍפϤʤ¯¡¢ -¤¤¤­¤Ê¤ê¿·¤·¤¤ procfs ¥¤¥ó¥¹¥¿¥ó¥¹¤ò +も指定されていた場合には、root ディレクトリを変更する必要はなく、 +いきなり新しい procfs インスタンスを .I /proc -¤Ë¥Þ¥¦¥ó¥È¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£) +にマウントすることができる。) -¤³¤Î¥Õ¥é¥°¤ò»ÈÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢ -¥«¡¼¥Í¥ë¤Ç¥ª¥×¥·¥ç¥ó +このフラグを使用するためには、 +カーネルでオプション .B CONFIG_PID_NS -¤òÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¡¢ -¥×¥í¥»¥¹¤¬Æø¢ +を有効になっていること、 +プロセスが特権 .RB ( CAP_SYS_ADMIN ) -¤ò»ý¤Ã¤Æ¤¤¤ë¤³¤È¤¬É¬ÍפǤ¢¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï +を持っていることが必要である。 +このフラグは .B CLONE_THREAD -¤ÈÁȤ߹ç¤ï¤»¤Æ»È¤¦¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +と組み合わせて使うことはできない。 .TP -.BR CLONE_NEWUTS " (Linux 2.6.19 °Ê¹ß)" +.BR CLONE_NEWUTS " (Linux 2.6.19 以降)" .B CLONE_NEWUTS -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¿·¤·¤¤ UTS ̾Á°¶õ´Ö¤Ç¥×¥í¥»¥¹¤òºîÀ®¤¹¤ë¡£ -¿·¤·¤¤ UTS ̾Á°¶õ´Ö¤Î¼±Ê̻Ҥνé´üÃͤϡ¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î -UTS ̾Á°¶õ´Ö¤Î¼±Ê̻ҤòÊ£À½¤·¤¿¤â¤Î¤È¤Ê¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +が設定された場合、新しい UTS 名前空間でプロセスを作成する。 +新しい UTS 名前空間の識別子の初期値は、呼び出し元のプロセスの +UTS 名前空間の識別子を複製したものとなる。 +このフラグが設定されていない場合、 .RB ( fork (2) -¤Î¾ì¹ç¤ÈƱÍÍ) ¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÈƱ¤¸ UTS ̾Á°¶õ´Ö¤Ç -¥×¥í¥»¥¹¤¬ºîÀ®¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï¡¢¥³¥ó¥Æ¥Ê¤Î¼ÂÁõ¤Ç¤Î»ÈÍѤò°Õ¿Þ¤·¤ÆÍÑ°Õ¤µ¤ì¤¿¤â¤Î¤Ç¤¢¤ë¡£ +の場合と同様) 呼び出し元のプロセスと同じ UTS 名前空間で +プロセスが作成される。 +このフラグは、コンテナの実装での使用を意図して用意されたものである。 -UTS ̾Á°¶õ´Ö¤Ï¡¢ +UTS 名前空間は、 .BR uname (2) -¤¬ÊÖ¤¹¼±Ê̻Ҥν¸¹ç¤Ç¤¢¤ë¡£ -¼±Ê̻ҤȤ·¤Æ¤Ï¥É¥á¥¤¥ó̾¤È¥Û¥¹¥È̾¤¬¤¢¤ê¡¢ -¤½¤ì¤¾¤ì +が返す識別子の集合である。 +識別子としてはドメイン名とホスト名があり、 +それぞれ .BR setdomainname (2), .BR sethostname (2) -¤Ç½¤Àµ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤¢¤ë UTS ̾Á°¶õ´Ö¤Ë¤ª¤±¤ë¼±Ê̻ҤÎÊѹ¹¤ÏƱ¤¸Ì¾Á°¶õ´Ö¤Î¾¤Î¤¹¤Ù¤Æ¤Î -¥×¥í¥»¥¹¤Ë¸«¤¨¤ë¤¬¡¢Ê̤ΠUTS ̾Á°¶õ´Ö¤Î¥×¥í¥»¥¹¤Ë¤Ï¸«¤¨¤Ê¤¤¡£ +で修正することができる。 +ある UTS 名前空間における識別子の変更は同じ名前空間の他のすべての +プロセスに見えるが、別の UTS 名前空間のプロセスには見えない。 -¤³¤Î¥Õ¥é¥°¤ò»ÈÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢ -¥«¡¼¥Í¥ë¤Ç¥ª¥×¥·¥ç¥ó +このフラグを使用するためには、 +カーネルでオプション .B CONFIG_UTS_NS -¤òÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¡¢ -¥×¥í¥»¥¹¤¬Æø¢ +を有効になっていること、 +プロセスが特権 .RB ( CAP_SYS_ADMIN ) -¤ò»ý¤Ã¤Æ¤¤¤ë¤³¤È¤¬É¬ÍפǤ¢¤ë¡£ +を持っていることが必要である。 .TP -.BR CLONE_PARENT " (Linux 2.3.12 °Ê¹ß)" +.BR CLONE_PARENT " (Linux 2.3.12 以降)" .B CLONE_PARENT -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¿·¤·¤¤»Ò¶¡¤Î +が設定された場合、新しい子供の .RB ( getppid (2) -¤ÇÊÖ¤µ¤ì¤ë) ¿Æ¥×¥í¥»¥¹¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¿Æ¥×¥í¥»¥¹¤ÈƱ¤¸¤Ë¤Ê¤ë¡£ +で返される) 親プロセスは呼び出し元のプロセスの親プロセスと同じになる。 .B CLONE_PARENT -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +が設定されていない場合、 .RB ( fork (2) -¤ÈƱÍͤË) ¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬¤½¤Î»Ò¶¡¤Î¿Æ¤Ë¤Ê¤ë¡£ +と同様に) 呼び出し元のプロセスがその子供の親になる。 -»Ò¶¡¤¬½ªÎ»¤·¤¿»þ¤Ë¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¤Î¤Ï +子供が終了した時にシグナルが送られるのは .BR getppid (2) -¤¬ÊÖ¤¹¿Æ¥×¥í¥»¥¹¤Ç¤¢¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£¤³¤Î¤¿¤á +が返す親プロセスである点に注意すること。このため .B CLONE_PARENT -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ç¤Ï¤Ê¤¯¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î -¿Æ¥×¥í¥»¥¹¤Ë¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£ +が設定された場合、呼び出し元のプロセスではなく呼び出し元のプロセスの +親プロセスにシグナルが送られる。 .TP -.BR CLONE_PARENT_SETTID " (Linux 2.5.49 °Ê¹ß)" -¿Æ¥×¥í¥»¥¹¤È»Ò¥×¥í¥»¥¹¤Î¥á¥â¥êÆâ¤Î +.BR CLONE_PARENT_SETTID " (Linux 2.5.49 以降)" +親プロセスと子プロセスのメモリ内の .I ptid -¤¬»Ø¤¹Îΰè¤Ë»Ò¥×¥í¥»¥¹¤Î¥¹¥ì¥Ã¥É ID ¤ò³ÊǼ¤¹¤ë¡£ -(Linux 2.5.32-2.5.48 ¤Ç¤Ï¡¢ -Ʊ¤¸¤³¤È¤ò¤¹¤ë +が指す領域に子プロセスのスレッド ID を格納する。 +(Linux 2.5.32-2.5.48 では、 +同じことをする .B CLONE_SETTID -¤È¤¤¤¦¥Õ¥é¥°¤¬Â¸ºß¤·¤¿¡£) +というフラグが存在した。) .TP -.BR CLONE_PID " (ÇÑ»ßͽÄê)" +.BR CLONE_PID " (廃止予定)" .B CLONE_PID -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢»Ò¥×¥í¥»¥¹¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÈƱ¤¸¥×¥í¥»¥¹ ID -¤ÇºîÀ®¤µ¤ì¤ë¡£¤³¤ì¤Ï¥·¥¹¥Æ¥à¤ò¥Ï¥Ã¥­¥ó¥°¤¹¤ë¤Î¤Ë¤ÏÊØÍø¤À¤¬¡¢ -¤½¤ì°Ê³°¤Ë¤Ï¤¢¤Þ¤ê»È¤ï¤ì¤Ê¤¤¡£ Linux 2.3.21 °Ê¹ß¤Ç¤Ï¡¢ -¥·¥¹¥Æ¥à¤Î¥Ö¡¼¥È¥×¥í¥»¥¹ (PID 0) ¤À¤±¤¬¤³¤Î¥Õ¥é¥°¤ò»ØÄê¤Ç¤­¤ë¡£ -Linux 2.5.16 ¤Çºï½ü¤µ¤ì¤¿¡£ +が設定された場合、子プロセスは呼び出し元のプロセスと同じプロセス ID +で作成される。これはシステムをハッキングするのには便利だが、 +それ以外にはあまり使われない。 Linux 2.3.21 以降では、 +システムのブートプロセス (PID 0) だけがこのフラグを指定できる。 +Linux 2.5.16 で削除された。 .TP .B CLONE_PTRACE .B CLONE_PTRACE -¤¬»ØÄꤵ¤ì¡¢¤«¤Ä¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬ÄÉÀ× (trace) ¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢»Ò¥×¥í¥»¥¹¤â -ƱÍͤËÄÉÀפµ¤ì¤ë¡£ +が指定され、かつ呼び出し元のプロセスが追跡 (trace) されていた場合、子プロセスも +同様に追跡される。 .RB ( ptrace (2) -¤ò»²¾È¤Î¤³¤È) +を参照のこと) .TP -.BR CLONE_SETTLS " (Linux 2.5.32 °Ê¹ß)" +.BR CLONE_SETTLS " (Linux 2.5.32 以降)" .I newtls -°ú¤­¿ô¤Ï¡¢¿·¤·¤¤ TLS (Thread Local Storage) ¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +引き数は、新しい TLS (Thread Local Storage) ディスクリプタである。 .RB ( set_thread_area (2) -¤ò»²¾È¤Î¤³¤È) +を参照のこと) .TP .B CLONE_SIGHAND .B CLONE_SIGHAND -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤È»Ò¥×¥í¥»¥¹¤ÏƱ¤¸¥·¥°¥Ê¥ë¡¦¥Ï¥ó -¥É¥é¤Î¥Æ¡¼¥Ö¥ë¤ò¶¦Í­¤¹¤ë¡£¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Þ¤¿¤Ï»Ò¥×¥í¥»¥¹¤Î¤É¤Á¤é¤«¤¬ +が設定された場合、呼び出し元のプロセスと子プロセスは同じシグナル・ハン +ドラのテーブルを共有する。呼び出し元のプロセスまたは子プロセスのどちらかが .BR sigaction (2) -¤ò¸Æ¤Ó½Ð¤·¤Æ¥·¥°¥Ê¥ë¤ËÂбþ¤¹¤ëÆ°ºî¤òÊѹ¹¤·¤¿¾ì¹ç¡¢ -¤â¤¦°ìÊý¤Î¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ëÆ°ºî¤âÊѹ¹¤µ¤ì¤ë¡£ -⤷¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤È»Ò¥×¥í¥»¥¹¤Ï¡¢ -¥×¥í¥»¥¹Ëè¤Ë¡¢¥·¥°¥Ê¥ë¡¦¥Þ¥¹¥¯ (signal mask) ¤È½èÍýÂÔ¤Á¥·¥°¥Ê¥ë¤Î½¸¹ç -¤ò»ý¤Ã¤Æ¤¤¤ë¡£¤³¤Î¤¿¤á¡¢¤¢¤ë¥×¥í¥»¥¹¤Ï¡¢ +を呼び出してシグナルに対応する動作を変更した場合、 +もう一方のプロセスのシグナル動作も変更される。 +但し、呼び出し元のプロセスと子プロセスは、 +プロセス毎に、シグナル・マスク (signal mask) と処理待ちシグナルの集合 +を持っている。このため、あるプロセスは、 .BR sigprocmask (2) -¤ò»ÈÍѤ·¤Æ¡¢¤â¤¦°ìÊý¤Î¥×¥í¥»¥¹¤Ë±Æ¶Á¤òÍ¿¤¨¤º¤Ë -¥·¥°¥Ê¥ë¤ò¶Ø»ß (block) ¤·¤¿¤êµö²Ä (unblock) ¤·¤¿¤ê¤Ç¤­¤ë¡£ +を使用して、もう一方のプロセスに影響を与えずに +シグナルを禁止 (block) したり許可 (unblock) したりできる。 .B CLONE_SIGHAND -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢»Ò¥×¥í¥»¥¹¤Ï +が設定されていない場合、子プロセスは .BR clone () -¤¬¼Â¹Ô¤µ¤ì¤¿»þÅÀ¤Ç¤Î¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤Î -¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£¤³¤ì°Ê¹ß¤Ï¡¢°ìÊý¤Î¥×¥í¥»¥¹¤¬ +が実行された時点での、呼び出し元のプロセスのシグナル・ハンドラの +コピーを継承する。これ以降は、一方のプロセスが .BR sigaction (2) -¤ò¸Æ¤Ó½Ð¤·¤Æ¤â¡¢¤â¤¦°ìÊý¤Î¥×¥í¥»¥¹¤Ë¤Ï±Æ¶Á¤òÍ¿¤¨¤Ê¤¤¡£ +を呼び出しても、もう一方のプロセスには影響を与えない。 -Linux 2.6.0-test6 °Ê¹ß¤Ç¤Ï¡¢ +Linux 2.6.0-test6 以降では、 .B CLONE_SIGHAND -¤ò»ØÄꤹ¤ë¾ì¹ç¡¢ +を指定する場合、 .B CLONE_VM -¤â +も .I flags -¤Ë´Þ¤á¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +に含めなければならない。 .TP -.BR CLONE_STOPPED " (Linux 2.6.0-test2 °Ê¹ß)" +.BR CLONE_STOPPED " (Linux 2.6.0-test2 以降)" .B CLONE_STOPPED -¤¬ÀßÄꤵ¤ì¤ë¤È¡¢»Ò¥×¥í¥»¥¹¤ÏºÇ½é +が設定されると、子プロセスは最初 .RB ( SIGSTOP -¥·¥°¥Ê¥ë¤òÁ÷¤é¤ì¤¿¤«¤Î¤è¤¦¤Ë) Ää»ß¤·¤¿¾õÂ֤Ȥʤ롣 -»Ò¥×¥í¥»¥¹¤òºÆ³«¤µ¤»¤ë¤Ë¤Ï +シグナルを送られたかのように) 停止した状態となる。 +子プロセスを再開させるには .B SIGCONT -¥·¥°¥Ê¥ë¤òÁ÷¿®¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +シグナルを送信しなければならない。 -.I "Linux 2.6.25 °Ê¹ß¡¢¤³¤Î¥Õ¥é¥°¤ÏÈó¿ä¾©¤Ç¤¢¤ë¡£" -¤³¤Î¥Õ¥é¥°¤ò»È¤¤¤¿¤¤¤È»×¤¦¤³¤È¤Ï·è¤·¤Æ¤Ê¤¤¤À¤í¤¦¤·¡¢ -³Î¼Â¤Ë»È¤ï¤Ê¤¤¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï¶á¤¤¤¦¤Á¤Ë¤Ê¤¯¤Ê¤ë¤³¤È¤À¤í¤¦¡£ +.I "Linux 2.6.25 以降、このフラグは非推奨である。" +このフラグを使いたいと思うことは決してないだろうし、 +確実に使わないようにすべきである。 +このフラグは近いうちになくなることだろう。 .\" glibc 2.8 removed this defn from bits/sched.h .TP -.BR CLONE_SYSVSEM " (Linux 2.5.10 °Ê¹ß)" +.BR CLONE_SYSVSEM " (Linux 2.5.10 以降)" .B CLONE_SYSVSEM -¤¬¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢»Ò¥×¥í¥»¥¹¤È¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ï°ì¤Ä¤Î -System V ¥»¥Þ¥Õ¥©¤Î¥¢¥ó¥É¥¥Ãͥꥹ¥È +がセットされると、子プロセスと呼び出し元プロセスは一つの +System V セマフォのアンドゥ値リスト .RB ( semop (2) -»²¾È) ¤ò¶¦Í­¤¹¤ë¡£¤³¤Î¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ -»Ò¥×¥í¥»¥¹¤ÏÆȼ«¤Î¥¢¥ó¥É¥¥¥ê¥¹¥È¤ò»ý¤Ä (¥ê¥¹¥È¤Î½é´üÃͤ϶õ¤Ç¤¢¤ë)¡£ +参照) を共有する。このフラグがセットされていなければ、 +子プロセスは独自のアンドゥリストを持つ (リストの初期値は空である)。 .TP -.BR CLONE_THREAD " (Linux 2.4.0-test8°Ê¹ß)" +.BR CLONE_THREAD " (Linux 2.4.0-test8以降)" .B CLONE_THREAD -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢»Ò¥×¥í¥»¥¹¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÈƱ¤¸¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Ë -ÃÖ¤«¤ì¤ë¡£ +が設定された場合、子プロセスは呼び出し元のプロセスと同じスレッド・グループに +置かれる。 .B CLONE_THREAD -¤Ë¤Ä¤¤¤Æ¤Î°Ê¹ß¤ÎµÄÏÀ¤òÆɤߤ䤹¤¯¤¹¤ë¤¿¤á¡¢ -¡Ö¥¹¥ì¥Ã¥É¡×¤È¤¤¤¦ÍѸì¤Ï¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤ÎÃæ¤Î¥×¥í¥»¥¹¤ò -»²¾È¤¹¤ë¤Î¤Ë»È¤¦¤³¤È¤È¤¹¤ë¡£ - -¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Ï¡¢ ¥¹¥ì¥Ã¥É½¸¹ç¤Ç°ì¤Ä¤Î PID ¤ò¶¦Í­¤¹¤ë¤È¤¤¤¦ POSIX -¥¹¥ì¥Ã¥É¤Î³µÇ°¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¿¤á¤Ë Linux 2.4 ¤Ë²Ã¤¨¤é¤ì¤¿µ¡Ç½¤Ç¤¢¤Ã¤¿¡£ -ÆâÉôŪ¤Ë¤Ï¡¢¤³¤Î¶¦Í­ PID ¤Ï¤¤¤ï¤æ¤ë¤½¤Î¥¹¥ì¥Ã¥É¥°¥ë¡¼¥×¤Î -¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¼±ÊÌ»Ò (TGID) ¤Ç¤¢¤ë¡£ -Linux 2.4 °Ê¹ß¤Ç¤Ï¡¢ +についての以降の議論を読みやすくするため、 +「スレッド」という用語はスレッド・グループの中のプロセスを +参照するのに使うこととする。 + +スレッド・グループは、 スレッド集合で一つの PID を共有するという POSIX +スレッドの概念をサポートするために Linux 2.4 に加えられた機能であった。 +内部的には、この共有 PID はいわゆるそのスレッドグループの +スレッド・グループ識別子 (TGID) である。 +Linux 2.4 以降では、 .BR getpid (2) -¤Î¸Æ¤Ó½Ð¤·¤Ç¤Ï¤½¤Î¥×¥í¥»¥¹¤Î¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥× ID ¤òÊÖ¤¹¡£ +の呼び出しではそのプロセスのスレッド・グループ ID を返す。 -¤¢¤ë¥°¥ë¡¼¥×¤Ë°¤¹¤ë¥¹¥ì¥Ã¥É¤Ï (¥·¥¹¥Æ¥àÁ´ÂΤÇ) °ì°Õ¤Ê¥¹¥ì¥Ã¥É ID (TID) -¤Ç¶èÊ̤Ǥ­¤ë¡£¿·¤·¤¤¥¹¥ì¥Ã¥É¤Î TID ¤Ï +あるグループに属するスレッドは (システム全体で) 一意なスレッド ID (TID) +で区別できる。新しいスレッドの TID は .BR clone () -¤Î¸Æ¤Ó½Ð¤·¸µ¤Ø´Ø¿ô¤Î·ë²Ì¤È¤·¤ÆÊÖ¤µ¤ì¡¢ -¥¹¥ì¥Ã¥É¤Ï¼«Ê¬¼«¿È¤Î TID ¤ò +の呼び出し元へ関数の結果として返され、 +スレッドは自分自身の TID を .BR gettid (2) -¤Ç¼èÆÀ¤Ç¤­¤ë¡£ +で取得できる。 .B CLONE_THREAD -¤ò»ØÄꤻ¤º¤Ë +を指定せずに .BR clone () -¤Î¸Æ¤Ó½Ð¤·¤¬¹Ô¤ï¤ì¤ë¤È¡¢ -À¸À®¤µ¤ì¤¿¥¹¥ì¥Ã¥É¤Ï¤½¤Î¥¹¥ì¥Ã¥É¤Î TID ¤ÈƱ¤¸ÃͤΠTGID ¤ò»ý¤Ä -¿·¤·¤¤¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤ËÃÖ¤«¤ì¤ë¡£¤³¤Î¥¹¥ì¥Ã¥É¤Ï -¿·¤·¤¤¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Î¡Ö¥ê¡¼¥À¡¼¡×¤Ç¤¢¤ë¡£ +の呼び出しが行われると、 +生成されたスレッドはそのスレッドの TID と同じ値の TGID を持つ +新しいスレッド・グループに置かれる。このスレッドは +新しいスレッド・グループの「リーダー」である。 .B CLONE_THREAD -¤ò»ØÄꤷ¤ÆºîÀ®¤µ¤ì¤¿¿·¤·¤¤¥¹¥ì¥Ã¥É¤Ï¡¢ +を指定して作成された新しいスレッドは、 .RB ( CLONE_PARENT -¤Î¾ì¹ç¤ÈƱÍͤË) +の場合と同様に) .BR clone () -¤ò¸Æ¤Ó½Ð¤·¸µ¤ÈƱ¤¸¿Æ¥×¥í¥»¥¹¤ò»ý¤Ä¡£ -¤½¤Î¤¿¤á¡¢ +を呼び出し元と同じ親プロセスを持つ。 +そのため、 .BR getppid (2) -¤ò¸Æ¤Ö¤È¡¢°ì¤Ä¤Î¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Ë°¤¹¥¹¥ì¥Ã¥É¤ÏÁ´¤ÆƱ¤¸ÃͤòÊÖ¤¹¡£ +を呼ぶと、一つのスレッド・グループに属すスレッドは全て同じ値を返す。 .B CLONE_THREAD -¤Çºî¤é¤ì¤¿¥¹¥ì¥Ã¥É¤¬½ªÎ»¤·¤¿ºÝ¤Ë¡¢ -¤½¤Î¥¹¥ì¥Ã¥É¤ò +で作られたスレッドが終了した際に、 +そのスレッドを .BR clone () -¤ò»È¤Ã¤ÆÀ¸À®¤·¤¿¥¹¥ì¥Ã¥É¤Ë¤Ï +を使って生成したスレッドには .B SIGCHLD -(¤â¤·¤¯¤Ï¾¤Î½ªÎ»¥·¥°¥Ê¥ë) ¤ÏÁ÷¿®¤µ¤ì¤Ê¤¤¡£ -¤Þ¤¿¡¢ +(もしくは他の終了シグナル) は送信されない。 +また、 .BR wait (2) -¤ò»È¤Ã¤Æ½ªÎ»¤·¤¿¥¹¥ì¥Ã¥É¤Î¾õÂÖ¤ò¼èÆÀ¤¹¤ë¤³¤È¤â¤Ç¤­¤Ê¤¤ -(¤½¤Î¤è¤¦¤Ê¥¹¥ì¥Ã¥É¤Ï +を使って終了したスレッドの状態を取得することもできない +(そのようなスレッドは .I detached -(ʬΥ¤µ¤ì¤¿) ¤È¤¤¤ï¤ì¤ë)¡£ +(分離された) といわれる)。 -¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Ë°¤¹Á´¤Æ¤Î¥¹¥ì¥Ã¥É¤¬½ªÎ»¤·¤¿¸å¡¢ -¤½¤Î¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Î¿Æ¥×¥í¥»¥¹¤Ë +スレッド・グループに属す全てのスレッドが終了した後、 +そのスレッド・グループの親プロセスに .B SIGCHLD -(¤â¤·¤¯¤Ï¾¤Î½ªÎ»¥·¥°¥Ê¥ë) ¤¬Á÷¤é¤ì¤ë¡£ +(もしくは他の終了シグナル) が送られる。 -¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Ë°¤¹¤¤¤º¤ì¤«¤Î¥¹¥ì¥Ã¥É¤¬ +スレッド・グループに属すいずれかのスレッドが .BR execve (2) -¤ò¼Â¹Ô¤¹¤ë¤È¡¢¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¡¦¥ê¡¼¥À¡¼°Ê³°¤ÎÁ´¤Æ¤Î¥¹¥ì¥Ã¥É¤Ï -½ªÎ»¤µ¤ì¡¢¿·¤·¤¤¥×¥í¥»¥¹¤¬¤½¤Î¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¡¦¥ê¡¼¥À¡¼¤Î²¼¤Ç -¼Â¹Ô¤µ¤ì¤ë¡£ +を実行すると、スレッド・グループ・リーダー以外の全てのスレッドは +終了され、新しいプロセスがそのスレッド・グループ・リーダーの下で +実行される。 -¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Ë°¤¹¥¹¥ì¥Ã¥É¤Î°ì¤Ä¤¬ +スレッド・グループに属すスレッドの一つが .BR fork (2) -¤ò»È¤Ã¤Æ»Ò¥×¥í¥»¥¹¤òºîÀ®¤·¤¿¾ì¹ç¡¢ -¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Î¤É¤Î¥¹¥ì¥Ã¥É¤Ç¤¢¤Ã¤Æ¤â -¤½¤Î»Ò¶¡¤ò +を使って子プロセスを作成した場合、 +スレッド・グループのどのスレッドであっても +その子供を .BR wait (2) -¤Ç¤­¤ë¡£ +できる。 -Linux 2.5.35 °Ê¹ß¤Ç¤Ï¡¢ +Linux 2.5.35 以降では、 .B CLONE_THREAD -¤ò»ØÄꤹ¤ë¾ì¹ç¡¢ +を指定する場合、 .I flags -¤Ë +に .B CLONE_SIGHAND -¤â´Þ¤Þ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +も含まれていなければならない。 .BR kill (2) -¤ò»È¤Ã¤Æ¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×Á´ÂÎ (¤Ä¤Þ¤ê TGID) ¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¤³¤È¤â¤Ç¤­¤ì¤Ð¡¢ +を使ってスレッド・グループ全体 (つまり TGID) にシグナルを送ることもできれば、 .BR tgkill (2) -¤ò»È¤Ã¤ÆÆÃÄê¤Î¥¹¥ì¥Ã¥É (¤Ä¤Þ¤ê TID) ¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +を使って特定のスレッド (つまり TID) にシグナルを送ることもできる。 -¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤È½èÍý¤Ï¥×¥í¥»¥¹Á´ÂΤ˱ƶÁ¤¹¤ë: -¥Ï¥ó¥É¥é¤òÀßÄꤷ¤Æ¤¤¤Ê¤¤¥·¥°¥Ê¥ë¤¬¤¢¤ë¥¹¥ì¥Ã¥É¤ËÇÛÁ÷¤µ¤ì¤ë¤È¡¢ -¤½¤Î¥·¥°¥Ê¥ë¤Ï¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤ÎÁ´¥á¥ó¥Ð¡¼¤Ë±Æ¶Á¤òµÚ¤Ü¤¹ -(½ªÎ»¤·¤¿¤ê¡¢Ää»ß¤·¤¿¤ê¡¢Æ°ºî¤ò·Ñ³¤·¤¿¤ê¡¢Ìµ»ë¤µ¤ì¤¿¤ê¤¹¤ë)¡£ +シグナルの配送と処理はプロセス全体に影響する: +ハンドラを設定していないシグナルがあるスレッドに配送されると、 +そのシグナルはスレッド・グループの全メンバーに影響を及ぼす +(終了したり、停止したり、動作を継続したり、無視されたりする)。 -³Æ¡¹¤Î¥¹¥ì¥Ã¥É¤ÏÆȼ«¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ò»ý¤Ã¤Æ¤ª¤ê¡¢ +各々のスレッドは独自のシグナルマスクを持っており、 .BR sigprocmask (2) -¤ÇÀßÄê¤Ç¤­¤ë¡£ -¤À¤¬¡¢½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë¤Ë¤Ï¡¢ +で設定できる。 +だが、処理待ちのシグナルには、 .BR kill (2) -¤ÇÁ÷¿®¤µ¤ì¤ë¥×¥í¥»¥¹Á´ÂΤËÂФ¹¤ë¤â¤Î (¤Ä¤Þ¤ê¡¢¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Î -¤É¤Î¥á¥ó¥Ð¡¼¤Ë¤âÇÛÁ÷¤Ç¤­¤ë¤â¤Î) ¤È¡¢ +で送信されるプロセス全体に対するもの (つまり、スレッド・グループの +どのメンバーにも配送できるもの) と、 .BR tgkill (2) -¤ÇÁ÷¿®¤µ¤ì¤ë¸Ä¡¹¤Î¥¹¥ì¥Ã¥É¤ËÂФ¹¤ë¤â¤Î¤¬¤¢¤ê¤¨¤ë¡£ +で送信される個々のスレッドに対するものがありえる。 .BR sigpending (2) -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¥×¥í¥»¥¹Á´ÂΤËÂФ¹¤ë½èÍýÂÔ¤Á¥·¥°¥Ê¥ë¤È¸Æ¤Ó½Ð¤·¸µ¤Î -¥¹¥ì¥Ã¥É¤ËÂФ¹¤ë½èÍýÂÔ¤Á¥·¥°¥Ê¥ë¤ò·ë¹ç¤·¤¿¥·¥°¥Ê¥ë½¸¹ç¤¬ÊÖ¤µ¤ì¤ë¡£ +を呼び出すと、プロセス全体に対する処理待ちシグナルと呼び出し元の +スレッドに対する処理待ちシグナルを結合したシグナル集合が返される。 .BR kill (2) -¤ò»È¤Ã¤Æ¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Ë¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤¿¾ì¹ç¤Ç¡¢ -¤½¤Î¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤¬¤½¤Î¥·¥°¥Ê¥ë¤ËÂФ¹¤ë¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤¬ -ÅÐÏ¿¤µ¤ì¤Æ¤¤¤¿¤È¤­¤Ë¤Ï¡¢¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤Ï¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Î -¥á¥ó¥Ð¡¼¤Î¤¦¤Á¡¢¤¿¤À°ì¤Ä¤Î¥¹¥ì¥Ã¥É¤Ç¤À¤±µ¯Æ°¤µ¤ì¤ë¡£¥Ï¥ó¥É¥é¤¬ -µ¯Æ°¤µ¤ì¤ë¥¹¥ì¥Ã¥É¤Ï¡¢¤½¤Î¥·¥°¥Ê¥ë¤ò¶Ø»ß (block) ¤·¤Æ¤¤¤Ê¤¤ -¥á¥ó¥Ð¡¼¤ÎÃ椫¤é°ì¤Ä¤À¤±¤¬¾¡¼ê¤Ë (arbitrarily) Áª¤Ð¤ì¤ë¡£ -¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Ë°¤¹Ê£¿ô¤Î¥¹¥ì¥Ã¥É¤¬ +を使ってスレッド・グループにシグナルが送られた場合で、 +そのスレッド・グループがそのシグナルに対するシグナル・ハンドラが +登録されていたときには、シグナル・ハンドラはスレッド・グループの +メンバーのうち、ただ一つのスレッドでだけ起動される。ハンドラが +起動されるスレッドは、そのシグナルを禁止 (block) していない +メンバーの中から一つだけが勝手に (arbitrarily) 選ばれる。 +スレッド・グループに属す複数のスレッドが .BR sigwaitinfo (2) -¤ò»È¤Ã¤ÆƱ¤¸¥·¥°¥Ê¥ë¤òÂԤäƤ¤¤ë¾ì¹ç¡¢ -¤³¤ì¤é¤Î¥¹¥ì¥Ã¥É¤ÎÃ椫¤é°ì¤Ä¤ò¥«¡¼¥Í¥ë¤¬¾¡¼ê¤ËÁªÂò¤·¡¢ -¤½¤Î¥¹¥ì¥Ã¥É¤¬ +を使って同じシグナルを待っている場合、 +これらのスレッドの中から一つをカーネルが勝手に選択し、 +そのスレッドが .B kill (2) -¤ò»È¤Ã¤ÆÁ÷¿®¤µ¤ì¤¿¥·¥°¥Ê¥ë¤ò¼õ¿®¤¹¤ë¡£ +を使って送信されたシグナルを受信する。 .TP -.BR CLONE_UNTRACED " (Linux 2.5.46 °Ê¹ß)" +.BR CLONE_UNTRACED " (Linux 2.5.46 以降)" .B CLONE_UNTRACED -¤¬»ØÄꤵ¤ì¤ë¤È¡¢ trace ¤ò¹Ô¤Ã¤Æ¤¤¤ë¥×¥í¥»¥¹¤Ï -¤³¤Î»Ò¥×¥í¥»¥¹¤Ë +が指定されると、 trace を行っているプロセスは +この子プロセスに .B CLONE_PTRACE -¤òŬÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +を適用することができない。 .TP .B CLONE_VFORK .B CLONE_VFORK -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ +が設定された場合、 .RB ( vfork (2) -¤ÈƱÍͤË) »Ò¥×¥í¥»¥¹¤¬ +と同様に) 子プロセスが .BR execve (2) -¤Þ¤¿¤Ï +または .BR _exit (2) -¤Ë¤è¤Ã¤Æ²¾ÁÛ¥á¥â¥ê¤ò²òÊü¤¹¤ë¤Þ¤Ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¹Ô¤ÏÄä»ß¤µ¤ì¤ë¡£ +によって仮想メモリを解放するまで、呼び出し元のプロセスの実行は停止される。 .B CLONE_VFORK -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +が設定されていない場合、 .BR clone () -¸Æ¤Ó½Ð¤·¸å¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤È»Ò¥×¥í¥»¥¹¤Î -ξÊý¤¬¥¹¥±¥¸¥å¡¼¥ëÂоݤȤʤꡢ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¤³¤ì¤é¤Î¥×¥í¥»¥¹¤Î -¼Â¹Ô½ç½ø¤Ë°Í¸¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +呼び出し後は、呼び出し元のプロセスと子プロセスの +両方がスケジュール対象となり、アプリケーションはこれらのプロセスの +実行順序に依存しないようにすべきである。 .TP .B CLONE_VM .B CLONE_VM -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤È»Ò¥×¥í¥»¥¹¤ÏƱ¤¸¥á¥â¥ê¶õ´Ö¤Ç -¼Â¹Ô¤µ¤ì¤ë¡£Æäˡ¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ä»Ò¥×¥í¥»¥¹¤Î°ìÊý¤¬¥á¥â¥ê¤Ë -½ñ¤­¹þ¤ó¤ÀÆâÍƤϤ⤦°ìÊý¤Î¥×¥í¥»¥¹¤«¤é¤â¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤µ¤é¤Ë¡¢ -»Ò¥×¥í¥»¥¹¤ä¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î°ìÊý¤¬ +が設定された場合、呼び出し元のプロセスと子プロセスは同じメモリ空間で +実行される。特に、呼び出し元のプロセスや子プロセスの一方がメモリに +書き込んだ内容はもう一方のプロセスからも見ることができる。さらに、 +子プロセスや呼び出し元のプロセスの一方が .BR mmap (2) -¤ä +や .BR munmap (2) -¤ò»È¤Ã¤Æ¥á¥â¥ê¤ò¥Þ¥Ã¥×¤·¤¿¤ê¥¢¥ó¥Þ¥Ã¥×¤·¤¿¾ì¹ç¡¢ -¤â¤¦°ìÊý¤Î¥×¥í¥»¥¹¤Ë¤â±Æ¶Á¤¬µÚ¤Ö¡£ +を使ってメモリをマップしたりアンマップした場合、 +もう一方のプロセスにも影響が及ぶ。 .B CLONE_VM -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢»Ò¥×¥í¥»¥¹¤Ï +が設定されていない場合、子プロセスは .BR clone () -¤¬¼Â¹Ô¤µ¤ì¤¿»þÅÀ¤Ç¤Î¡¢¿Æ¥×¥í¥»¥¹¤Î¥á¥â¥ê¶õ´Ö¤ò¥³¥Ô¡¼¤·¤¿ -Ê̤Υá¥â¥ê¶õ´Ö¤Ç¼Â¹Ô¤µ¤ì¤ë¡£ -°ìÊý¤Î¥×¥í¥»¥¹¤¬¹Ô¤Ã¤¿¥á¥â¥ê¤Ø¤Î½ñ¤­¹þ¤ß¤ä -¥Õ¥¡¥¤¥ë¤Î¥Þ¥Ã¥×/¥¢¥ó¥Þ¥Ã¥×¤Ï¡¢ +が実行された時点での、親プロセスのメモリ空間をコピーした +別のメモリ空間で実行される。 +一方のプロセスが行ったメモリへの書き込みや +ファイルのマップ/アンマップは、 .BR fork (2) -¤Î¾ì¹ç¤ÈƱÍÍ¡¢¤â¤¦°ìÊý¤Î¥×¥í¥»¥¹¤Ë¤Ï±Æ¶Á¤·¤Ê¤¤¡£ +の場合と同様、もう一方のプロセスには影響しない。 .SS "sys_clone" .B sys_clone -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤è¤ê +システムコールは、より .BR fork (2) -¤Ë¶á¤¤¤«¤¿¤Á¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢»Ò¥×¥í¥»¥¹¤Î¼Â¹Ô¤¬¸Æ¤Ó½Ð¤·¤¬¹Ô¤ï¤ì¤¿¾ì½ê¤«¤é -³¤±¤é¤ì¤ë¡£ -¤½¤Î¤¿¤á¡¢ +に近いかたちになっており、子プロセスの実行が呼び出しが行われた場所から +続けられる。 +そのため、 .B sys_clone -¤¬É¬ÍפȤ¹¤ë°ú¤­¿ô¤Ï +が必要とする引き数は .I flags -¤È +と .I child_stack -¤À¤±¤Ç¤¢¤ê¡¢¤½¤ì¤é¤Ï +だけであり、それらは .BR clone () -¤ÈƱ¤¸°ÕÌ£¤ò»ý¤Ä -(¤³¤ì¤é¤Î°ú¤­¿ô¤Î½çÈÖ¤Ï +と同じ意味を持つ +(これらの引き数の順番は .BR clone () -¤È¤Ï°Û¤Ê¤ë¤³¤È¤ËÃí°Õ¤»¤è)¡£ +とは異なることに注意せよ)。 .B sys_clone -¤Î¤â¤¦°ì¤Ä¤Î°ã¤¤¤Ï¡¢ +のもう一つの違いは、 .I child_stack -°ú¤­¿ô¤¬¥¼¥í¤Ç¤âÎɤ¤¤³¤È¤Ç¤¢¤ë¡£¤³¤Î¾ì¹ç¤Ë¤Ï¡¢¤É¤Á¤é¤«¤Î¥×¥í¥»¥¹¤¬ -¥¹¥¿¥Ã¥¯¤òÊѹ¹¤·¤¿»þ¤Ë¡¢½ñ¤­¹þ¤ß»þ¥³¥Ô¡¼ (copy-on-write) Êý¼°¤Ë¤è¤ê -»Ò¥×¥í¥»¥¹¤¬¥¹¥¿¥Ã¥¯¡¦¥Ú¡¼¥¸¤ÎÆÈΩ¤·¤¿¥³¥Ô¡¼¤òÆÀ¤é¤ì¤ë¤³¤È¤¬Êݾڤµ¤ì¤ë¡£ -¤³¤Î¾ì¹ç¡¢Àµ¾ï¤ËÆ°ºî¤µ¤»¤ë¤¿¤á¤Ë¤Ï¡¢ +引き数がゼロでも良いことである。この場合には、どちらかのプロセスが +スタックを変更した時に、書き込み時コピー (copy-on-write) 方式により +子プロセスがスタック・ページの独立したコピーを得られることが保証される。 +この場合、正常に動作させるためには、 .B CLONE_VM -¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +オプションを指定してはならない。 -Linux 2.4 °ÊÁ°¤Ç¤Ï¡¢ +Linux 2.4 以前では、 .BR clone () -¤Ï°ú¤­¿ô +は引き数 .IR ptid , .IR tls , .IR ctid -¤ò¼è¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -.\" gettid(2) ¤Ï current->pid ¤òÊÖ¤¹ -.\" getpid(2) ¤Ï current->tgid ¤òÊÖ¤¹ -À®¸ù¤·¤¿¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¼Â¹Ô¥¹¥ì¥Ã¥É¤Ë¤Ï»Ò¥×¥í¥»¥¹¤Î¥¹¥ì¥Ã¥ÉID ¤¬ÊÖ¤µ¤ì¤ë¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢ ¸Æ¤Ó½Ð¤·¸µ¤Î¥³¥ó¥Æ¥­¥¹¥È¤Ë¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢»Ò¥×¥í¥»¥¹¤Ï -ºîÀ®¤µ¤ì¤º¡¢ +を取らない。 +.SH 返り値 +.\" gettid(2) は current->pid を返す +.\" getpid(2) は current->tgid を返す +成功した場合、呼び出し元の実行スレッドには子プロセスのスレッドID が返される。 +失敗した場合、 呼び出し元のコンテキストには \-1 が返され、子プロセスは +作成されず、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EAGAIN -¤¹¤Ç¤Ë¼Â¹ÔÃæ¤Î¥×¥í¥»¥¹¤¬Â¿¤¹¤®¤ë¡£ +すでに実行中のプロセスが多すぎる。 .TP .B EINVAL .B CLONE_SIGHAND -¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¤¬¡¢ +が指定されていたが、 .B CLONE_VM -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ -(Linux 2.6.0-test6 °Ê¹ß) +が指定されていなかった。 +(Linux 2.6.0-test6 以降) .TP .B EINVAL .B CLONE_THREAD -¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¤¬¡¢ +が指定されていたが、 .B CLONE_SIGHAND -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ -(Linux 2.5.35 °Ê¹ß) +が指定されていなかった。 +(Linux 2.5.35 以降) .\" .TP .\" .B EINVAL .\" .B CLONE_DETACHED -.\" ¤È +.\" と .\" .B CLONE_THREAD -.\" ¤Î¤¤¤º¤ì¤«°ìÊý¤À¤±¤¬»ØÄꤵ¤ì¤¿¡£ -.\" (Linux 2.6.0-test6 °Ê¹ß) +.\" のいずれか一方だけが指定された。 +.\" (Linux 2.6.0-test6 以降) .TP .B EINVAL .B CLONE_FS -¤È +と .B CLONE_NEWNS -¤ÎξÊý¤¬ +の両方が .I flags -¤Ë»ØÄꤵ¤ì¤¿¡£ +に指定された。 .TP .B EINVAL .B CLONE_NEWIPC -¤È +と .B CLONE_SYSVSEM -¤ÎξÊý¤¬ +の両方が .I flags -¤Ë»ØÄꤵ¤ì¤¿¡£ +に指定された。 .TP .B EINVAL .B CLONE_NEWPID -¤È +と .B CLONE_THREAD -¤ÎξÊý¤¬ +の両方が .I flags -¤Ë»ØÄꤵ¤ì¤¿¡£ +に指定された。 .TP .B EINVAL .I child_stack -¤Ë¥¼¥í¤ò»ØÄꤷ¤¿¾ì¹ç¤Ë +にゼロを指定した場合に .BR clone () -¤¬ÊÖ¤¹¡£ +が返す。 .TP .B EINVAL .I flags -¤Ë +に .B CLONE_NEWIPC -¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¥«¡¼¥Í¥ë¤Ç¥ª¥×¥·¥ç¥ó +が指定されたが、カーネルでオプション .B CONFIG_SYSVIPC -¤È +と .B CONFIG_IPC_NS -¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +が有効になっていなかった。 .TP .B EINVAL .I flags -¤Ë +に .B CLONE_NEWNET -¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¥«¡¼¥Í¥ë¤Ç¥ª¥×¥·¥ç¥ó +が指定されたが、カーネルでオプション .B CONFIG_NET_NS -¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +が有効になっていなかった。 .TP .B EINVAL .I flags -¤Ë +に .B CLONE_NEWPID -¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¥«¡¼¥Í¥ë¤Ç¥ª¥×¥·¥ç¥ó +が指定されたが、カーネルでオプション .B CONFIG_PID_NS -¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +が有効になっていなかった。 .TP .B EINVAL .I flags -¤Ë +に .B CLONE_NEWUTS -¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¥«¡¼¥Í¥ë¤Ç¥ª¥×¥·¥ç¥ó +が指定されたが、カーネルでオプション .B CONFIG_UTS -¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +が有効になっていなかった。 .TP .B ENOMEM -»Ò¥×¥í¥»¥¹¤Î¤¿¤á¤Ë³ÎÊݤ¹¤Ù¤­¥¿¥¹¥¯¹½Â¤ÂΤ䡢¸Æ¤Ó½Ð¤·¸µ¤Î¥³¥ó¥Æ¥­¥¹¥È¤Î -°ìÉô¤ò¥³¥Ô¡¼¤¹¤ë¤Î¤ËɬÍפʥá¥â¥ê¤ò½½Ê¬¤Ë³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +子プロセスのために確保すべきタスク構造体や、呼び出し元のコンテキストの +一部をコピーするのに必要なメモリを十分に割り当てることができない。 .TP .B EPERM -ÈóÆø¢¥×¥í¥»¥¹ (\fBCAP_SYS_ADMIN\fP ¤ò»ý¤¿¤Ê¤¤¥×¥í¥»¥¹) ¤¬ +非特権プロセス (\fBCAP_SYS_ADMIN\fP を持たないプロセス) が .BR CLONE_NEWIPC , .BR CLONE_NEWNET , .BR CLONE_NEWNS , .BR CLONE_NEWPID , .BR CLONE_NEWUTS -¤ò»ØÄꤷ¤¿¡£ +を指定した。 .TP .B EPERM -PID ¤¬ 0 °Ê³°¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ +PID が 0 以外のプロセスによって .B CLONE_PID -¤¬»ØÄꤵ¤ì¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -libc5 ¤Ë¤Ï +が指定された。 +.SH バージョン +libc5 には .BR clone () -¤Ï¤Ê¤¤¡£glibc2 ¤Ç¤Ï +はない。glibc2 では .BR clone () -¤¬Ä󶡤µ¤ì¤Æ¤ª¤ê¡¢¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ëµ­ºÜ¤ÎÄ̤ê¤Ç¤¢¤ë¡£ -.SH ½àµò +が提供されており、このマニュアルページに記載の通りである。 +.SH 準拠 .BR clone () -¤È +と .B sys_clone -¥³¡¼¥ë¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò¹Íθ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ¹¤Ù¤­ -¤Ç¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ -¥«¡¼¥Í¥ë 2.4.x ·ÏÎó¤Ç¤Ï¡¢°ìÈÌŪ¤Ë¤Ï +コールは Linux 特有であり、移植を考慮したプログラムでは使用すべき +ではない。 +.SH 注意 +カーネル 2.4.x 系列では、一般的には .B CLONE_THREAD -¥Õ¥é¥°¤ò»ØÄꤷ¤Æ¤â¿·¤·¤¤¥¹¥ì¥Ã¥É¤Î¿Æ¤ò -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¿Æ¤ÈƱ¤¸¤Ë¤Ï¤·¤Ê¤¤¡£ -¤·¤«¤·¡¢¥Ð¡¼¥¸¥ç¥ó 2.4.7¡Á2.4.18 ¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -(¥«¡¼¥Í¥ë 2.6 ¤ÈƱ¤¸¤è¤¦¤Ë) CLONE_THREAD ¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È¡¢ -°ÅÌۤΤ¦¤Á¤Ë CLONE_PARENT ¥Õ¥é¥°¤ò»ØÄꤷ¤¿¤³¤È¤Ë¤Ê¤ë¡£ +フラグを指定しても新しいスレッドの親を +呼び出し元プロセスの親と同じにはしない。 +しかし、バージョン 2.4.7〜2.4.18 のカーネルでは、 +(カーネル 2.6 と同じように) CLONE_THREAD フラグを指定すると、 +暗黙のうちに CLONE_PARENT フラグを指定したことになる。 .B CLONE_DETACHED -¤È¤¤¤¦¥Õ¥é¥°¤¬¡¢2.5.32 ¤ÇƳÆþ¤µ¤ì¤Æ°ÊÍ褷¤Ð¤é¤¯¤Î´Ö¸ºß¤·¤¿¡£ -¤³¤Î¥Õ¥é¥°¤Ï¿Æ¥×¥í¥»¥¹¤¬»Ò¥×¥í¥»¥¹½ªÎ»¤Î¥·¥°¥Ê¥ë¤òɬÍפȤ·¤Ê¤¤¤³¤È¤ò -ɽ¤¹¤â¤Î¤Ç¤¢¤ë¡£ -2.6.2 ¤Ç¡¢ CLONE_DETATCHED ¤ò CLONE_THREAD ¤È°ì½ï¤Ë»ØÄꤹ¤ëɬÍפϤʤ¯¤Ê¤Ã¤¿¡£ -¤³¤Î¥Õ¥é¥°¤Ï¤Þ¤ÀÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢²¿¤Î¸ú²Ì¤â¤Ê¤¤¡£ +というフラグが、2.5.32 で導入されて以来しばらくの間存在した。 +このフラグは親プロセスが子プロセス終了のシグナルを必要としないことを +表すものである。 +2.6.2 で、 CLONE_DETATCHED を CLONE_THREAD と一緒に指定する必要はなくなった。 +このフラグはまだ定義されているが、何の効果もない。 -i386 ¾å¤Ç¤Ï¡¢ +i386 上では、 .BR clone () -¤Ï vsyscall ·Ðͳ¤Ç¤Ï¤Ê¤¯¡¢Ä¾ÀÜ +は vsyscall 経由ではなく、直接 .I "int $0x80" -·Ðͳ¤Ç¸Æ¤Ó½Ð¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +経由で呼び出すべきである。 -ia64 ¤Ç¤Ï¡¢Ê̤Υ·¥¹¥Æ¥à¥³¡¼¥ë¤¬»ÈÍѤµ¤ì¤ë: +ia64 では、別のシステムコールが使用される: .nf .BI "int __clone2(int (*" "fn" ")(void *), " @@ -949,49 +949,49 @@ ia64 .fi .PP .BR __clone2 () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +システムコールは .BR clone () -¤ÈƱ¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¤¬¡¢°Ê²¼¤ÎÅÀ¤¬°Û¤Ê¤ë: +と同じように動作するが、以下の点が異なる: .I child_stack_base -¤Ï»Ò¥×¥í¥»¥¹¤Î¥¹¥¿¥Ã¥¯¥¨¥ê¥¢¤ÎºÇ¾®¤Î¥¢¥É¥ì¥¹¤ò»Ø¤·¡¢ +は子プロセスのスタックエリアの最小のアドレスを指し、 .I stack_size -¤Ï +は .I child_stack_base -¤¬»Ø¤·¼¨¤¹¥¹¥¿¥Ã¥¯¥¨¥ê¥¢¤ÎÂ礭¤µ¤ò¼¨¤¹¡£ -.SH ¥Ð¥° -NPTL ¥¹¥ì¥Ã¥É¡¦¥é¥¤¥Ö¥é¥ê¤ò´Þ¤ó¤Ç¤¤¤ë GNU C ¥é¥¤¥Ö¥é¥ê¤Î¤¤¤¯¤Ä¤«¤Î¥Ð¡¼¥¸¥ç¥ó -¤Ë¤Ï¡¢ +が指し示すスタックエリアの大きさを示す。 +.SH バグ +NPTL スレッド・ライブラリを含んでいる GNU C ライブラリのいくつかのバージョン +には、 .BR getpid (2) -¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤¬´Þ¤Þ¤ì¤Æ¤ª¤ê¡¢¤³¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï PID ¤ò¥­¥ã¥Ã¥·¥å¤¹¤ë¡£ -¤³¤Î¥­¥ã¥Ã¥·¥å½èÍý¤¬Àµ¤·¤¯Æ°ºî¤¹¤ë¤¿¤á¤Ë¤Ï glibc ¤Î +のラッパー関数が含まれており、このラッパー関数は PID をキャッシュする。 +このキャッシュ処理が正しく動作するためには glibc の .BR clone () -¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ç¤Î½õ¤±¤¬É¬ÍפÀ¤¬¡¢¸½¾õ¤Î¼ÂÁõ¤Ç¤Ï¡¢ -¤¢¤ë¾õ¶·²¼¤Ë¤ª¤¤¤Æ¥­¥ã¥Ã¥·¥å¤¬ºÇ¿·¤È¤Ê¤é¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ë¡£ -Æäˡ¢ +のラッパー関数での助けが必要だが、現状の実装では、 +ある状況下においてキャッシュが最新とならない可能性がある。 +特に、 .BR clone () -¤Î¸Æ¤Ó½Ð¤·Ä¾¸å¤Ë¥·¥°¥Ê¥ë¤¬»Ò¥×¥í¥»¥¹¤ËÇÛÁ÷¤µ¤ì¤¿¾ì¹ç¤Ë¡¢ -¤½¤Î¥·¥°¥Ê¥ë¤ËÂФ¹¤ë¥Ï¥ó¥É¥éÆâ¤Ç +の呼び出し直後にシグナルが子プロセスに配送された場合に、 +そのシグナルに対するハンドラ内で .BR getpid (2) -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¤½¤ì¤Þ¤Ç¤Ë clone ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤¬»Ò¥×¥í¥»¥¹¤Î PID ¥­¥ã¥Ã¥·¥å¤ò -¹¹¿·¤¹¤ëµ¡²ñ¤¬ÆÀ¤é¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹ ("¿Æ¥×¥í¥»¥¹") ¤Î PID ¤¬ -ÊÖ¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -(¤³¤ÎµÄÏÀ¤Ç¤Ï¡¢»Ò¥×¥í¥»¥¹¤¬ +を呼び出すと、それまでに clone のラッパー関数が子プロセスの PID キャッシュを +更新する機会が得られていなければ、呼び出し元プロセス ("親プロセス") の PID が +返される可能性がある。 +(この議論では、子プロセスが .B CLONE_THREAD -¤ò»È¤Ã¤ÆºîÀ®¤µ¤ì¤¿¾ì¹ç¤Î¤³¤È¤Ï̵»ë¤·¤Æ¤¤¤ë¡£ -»Ò¥×¥í¥»¥¹¤¬ +を使って作成された場合のことは無視している。 +子プロセスが .B CLONE_THREAD -¤òºî¤Ã¤ÆºîÀ®¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ -¸Æ¤Ó½Ð¤·¸µ¤È»Ò¥×¥í¥»¥¹¤ÏƱ¤¸¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤Ë°¤¹¤Î¤Ç¡¢ +を作って作成された場合には、 +呼び出し元と子プロセスは同じスレッド・グループに属すので、 .BR getpid (2) -¤Ï»Ò¥×¥í¥»¥¹¤È +は子プロセスと .BR clone () -¤ò¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ÇƱ¤¸ÃͤòÊÖ¤¹¤Î¤¬¡ÖÀµ¤·¤¤¡×¡£ -¥­¥ã¥Ã¥·¥å¤¬ºÇ¿·¤È¤Ê¤é¤Ê¤¤ÌäÂê (stale-cache problem) ¤Ï¡¢ +を呼び出したプロセスで同じ値を返すのが「正しい」。 +キャッシュが最新とならない問題 (stale-cache problem) は、 .I flags -¤Ë +に .B CLONE_VM -¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤âȯÀ¸¤·¤Ê¤¤¡£) -ËÜÅö¤ÎÃͤòÆÀ¤ë¤¿¤á¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤Ê¥³¡¼¥É¤ò»È¤¦É¬Íפ¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +が含まれている場合にも発生しない。) +本当の値を得るためには、次のようなコードを使う必要があるかもしれない。 .nf #include @@ -1003,7 +1003,7 @@ NPTL .\" See also the following bug reports .\" https://bugzilla.redhat.com/show_bug.cgi?id=417521 .\" http://sourceware.org/bugzilla/show_bug.cgi?id=6910 -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fork (2), .BR futex (2), .BR getpid (2), diff --git a/release/man2/close.2 b/release/man2/close.2 index aa5c7144..dfb691c2 100644 --- a/release/man2/close.2 +++ b/release/man2/close.2 @@ -46,94 +46,94 @@ .\" Updated 2007-10-12, Akihiro MOTOKI, LDP v2.66 .\" Updated 2008-02-10, Akihiro MOTOKI , LDP v2.77 .\" -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: close ¥¯¥í¡¼¥º -.\"WORD: lock ¥í¥Ã¥¯ -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: quota ¥¯¥©¡¼¥¿ +.\"WORD: descriptor ディスクリプタ +.\"WORD: close クローズ +.\"WORD: lock ロック +.\"WORD: process プロセス +.\"WORD: quota クォータ .\" .TH CLOSE 2 2007-12-28 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -close \- ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¯¥í¡¼¥º¤¹¤ë -.SH ½ñ¼° +.SH 名前 +close \- ファイルディスクリプタをクローズする +.SH 書式 .nf .B #include .sp .BI "int close(int " fd ); .fi -.SH ÀâÌÀ +.SH 説明 .BR close () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ -¤½¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢¤É¤Î¥Õ¥¡¥¤¥ë¤â»²¾È¤·¤Æ¤¤¤Ê¤¤¾õÂ֤ˤʤꡢ -ºÆÍøÍѤ¬²Äǽ¤Ë¤Ê¤ë¡£ -¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë -¤«¤±¤é¤ì¤¿¥ì¥³¡¼¥É¡¦¥í¥Ã¥¯ +は、ファイルディスクリプタをクローズする。 +そのディスクリプタは、どのファイルも参照していない状態になり、 +再利用が可能になる。 +そのファイルディスクリプタに関連づけられたファイルに +かけられたレコード・ロック .RB ( fcntl (2) -»²¾È) ¤Î¤¦¤Á¡¢¤½¤Î¥×¥í¥»¥¹¤¬ÊÝÍ­¤·¤Æ¤¤¤ë¤â¤Î¤Ï¡¢ -(¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥í¥Ã¥¯¼èÆÀ¤ËÍøÍѤµ¤ì¤¿¤« -¤É¤¦¤«¤Ë¤è¤é¤º) ¤¹¤Ù¤Æºï½ü¤µ¤ì¤ë¡£ +参照) のうち、そのプロセスが保有しているものは、 +(そのファイルディスクリプタがロック取得に利用されたか +どうかによらず) すべて削除される。 .PP .I fd -¤¬¡¢Âбþ¤¹¤ë¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò (open file description) +が、対応するオープンファイル記述 (open file description) .RB ( open (2) -»²¾È) ¤ò»²¾È¤¹¤ëºÇ¸å¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤À¤Ã¤¿¾ì¹ç¡¢ -¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¤Ë´ØÏ¢¤¹¤ë¥ê¥½¡¼¥¹¤¬²òÊü¤µ¤ì¤ë¡£ -¤½¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¡¢ +参照) を参照する最後のファイルディスクリプタだった場合、 +オープンファイル記述に関連するリソースが解放される。 +そのディスクリプタが、 .B unlink -¤ò»ÈÍѤ·¤Æºï½ü (remove) ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ëºÇ¸å¤Î»²¾È¤À¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¤Ïºï½ü (delete) ¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +を使用して削除 (remove) されたファイルに対する最後の参照だった場合には、 +そのファイルは削除 (delete) される。 +.SH 返り値 .BR close () -¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¤Æ¡¢ +は成功した場合は 0 を返す。 +エラーが発生した場合は \-1 を返して、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切に設定する。 +.SH エラー .TP .B EBADF .I fd -¤¬Í­¸ú¤Ê¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なオープンされたディスクリプタでない。 .TP .B EINTR .BR close () -¥³¡¼¥ë¤¬¥·¥°¥Ê¥ë¤Ë¤è¤êÃæÃÇ (interrupt) ¤µ¤ì¤¿¡£ +コールがシグナルにより中断 (interrupt) された。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EIO -I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ -.SH ½àµò +I/O エラーが発生した。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -.\" SVr4, SVID, POSIX, X/OPEN, 4.3BSD ¤Ë½àµò¤¹¤ë¡£ -.\" SVr4 ¤Ë¤Ï¾¤Ë ENOLINK ¥¨¥é¡¼¾õÂ֤ˤĤ¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ -.SH Ãí°Õ +.\" SVr4, SVID, POSIX, X/OPEN, 4.3BSD に準拠する。 +.\" SVr4 には他に ENOLINK エラー状態についての記述がある。 +.SH 注意 .BR close () -¤ÎÊÖ¤êÃͤΥÁ¥§¥Ã¥¯¤Ï¤è¤¯¾Êά¤µ¤ì¤ë¤¬¡¢ -¤³¤ì¤Ï¿¼¹ï¤Ê¥×¥í¥°¥é¥ß¥ó¥°¥¨¥é¡¼¤Ç¤¢¤ë¡£ -Á°¤Î +の返り値のチェックはよく省略されるが、 +これは深刻なプログラミングエラーである。 +前の .BR write (2) -½èÍý¤Ë´Ø¤¹¤ë¥¨¥é¡¼¤¬ºÇ¸å¤Î +処理に関するエラーが最後の .BR close () -¤Î¤È¤­¤Ë¤Ê¤Ã¤Æ½é¤á¤ÆÄÌÃΤµ¤ì¤ë¾ì¹ç¤¬¤¢¤ê¤¦¤ë¡£ -¥Õ¥¡¥¤¥ë¥¯¥í¡¼¥º¤ÎºÝ¤ËÊÖ¤êÃͤò¥Á¥§¥Ã¥¯¤·¤Ê¤¤¤È¡¢ -µ¤ÉÕ¤«¤Ê¤¤¤¦¤Á¤Ë¥Ç¡¼¥¿¤ò¼º¤Ã¤Æ¤·¤Þ¤¦¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤ì¤ÏÆÃ¤Ë NFS ¤ä¥Ç¥£¥¹¥¯¡¦¥¯¥©¡¼¥¿¤ò»ÈÍѤ·¤¿¾ì¹ç¤Ë¸«¤é¤ì¤ë¡£ +のときになって初めて通知される場合がありうる。 +ファイルクローズの際に返り値をチェックしないと、 +気付かないうちにデータを失ってしまうかもしれない。 +これは特に NFS やディスク・クォータを使用した場合に見られる。 .PP -¥¯¥í¡¼¥º¤ËÀ®¸ù¤·¤Æ¤â¡¢¥Ç¡¼¥¿¤¬¥Ç¥£¥¹¥¯¤ËÊݸ¤µ¤ì¤¿¤«¤É¤¦¤«¤Ï -Êݾڤµ¤ì¤Ê¤¤ (¥«¡¼¥Í¥ë¤¬½ñ¤­¤³¤ß¤òÃٱ䤵¤»¤ë¤³¤È¤¬¤¢¤ë¤¿¤á¤Ç¤¢¤ë)¡£ -¥¹¥È¥ê¡¼¥à¤¬¥¯¥í¡¼¥º¤µ¤ì¤ë¤È¤­¤Ë¥Ð¥Ã¥Õ¥¡¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë¤«¤É¤¦¤«¤Ï¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¡£ -¥Ç¡¼¥¿¤¬ÊªÍýŪ¤ËÊݸ¤µ¤ì¤ë¤³¤È¤òÊݾڤ¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢ +クローズに成功しても、データがディスクに保存されたかどうかは +保証されない (カーネルが書きこみを遅延させることがあるためである)。 +ストリームがクローズされるときにバッファをフラッシュするかどうかは、 +ファイルシステムによって異なる。 +データが物理的に保存されることを保証する必要がある場合には、 .BR fsync (2) -¤ò»ÈÍѤ¹¤ë¤³¤È +を使用すること .RB ( fsync (3) -¤ò¹Ô¤Ã¤¿»þÅÀ¤Ç¡¢¥Ç¡¼¥¿¤ÎÊݸ¤Ï¥Ç¥£¥¹¥¯¤Î¥Ï¡¼¥É¥¦¥§¥¢¤Ë°Í¸¤¹¤ë -ÌäÂê¤È¤Ê¤ë)¡£ +を行った時点で、データの保存はディスクのハードウェアに依存する +問題となる)。 .PP -Ʊ¤¸¥×¥í¥»¥¹Æâ¤Î¾¤Î¥¹¥ì¥Ã¥É¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬»ÈÍѤ·¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ë´Ö¤Ë¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¯¥í¡¼¥º¤¹¤ë¤Î¤Ï¡¢¤ª¤½¤é¤¯¸­ÌÀ¤Ç¤Ï¤Ê¤¤¤À¤í¤¦¡£ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏºÆÍøÍѤµ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¤Î¤Ç¡¢ -¤¢¤¤¤Þ¤¤¤Ê¶¥¹ç¾ò·ï¤È¤Ê¤ë¤³¤È¤¬¤¢¤ê¡¢°Õ¿Þ¤·¤Ê¤¤ÉûºîÍѤθ¶°ø¤È¤Ê¤ê¤¦¤ë¡£ +同じプロセス内の他のスレッドのシステムコールが使用している可能性がある間に、 +ファイルディスクリプタをクローズするのは、おそらく賢明ではないだろう。 +ファイルディスクリプタは再利用されるかもしれないので、 +あいまいな競合条件となることがあり、意図しない副作用の原因となりうる。 .\" Date: Tue, 4 Sep 2007 13:57:35 +0200 .\" From: Fredrik Noring .\" One such race involves signals and ERESTARTSYS. If a file descriptor @@ -142,7 +142,7 @@ SVr4, 4.3BSD, POSIX.1-2001. .\" call has restared after ERESTARTSYS, the original system call will .\" later restart with the reused file descriptor. This is most likely a .\" serious programming error. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fcntl (2), .BR fsync (2), .BR open (2), diff --git a/release/man2/connect.2 b/release/man2/connect.2 index 0c495e21..ec700ad4 100644 --- a/release/man2/connect.2 +++ b/release/man2/connect.2 @@ -72,174 +72,174 @@ .\" Updated & Modified 2005-10-05, Akihiro MOTOKI .\" .TH CONNECT 2 2008-12-03 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -connect \- ¥½¥±¥Ã¥È¤ÎÀܳ¤ò¹Ô¤¦ -.SH ½ñ¼° +.SH 名前 +connect \- ソケットの接続を行う +.SH 書式 .nf -.BR "#include " " /* ¡ÖÃí°Õ¡×»²¾È */" +.BR "#include " " /* 「注意」参照 */" .br .B #include .sp .BI "int connect(int " sockfd ", const struct sockaddr *" addr , .BI " socklen_t " addrlen ); .fi -.SH ÀâÌÀ +.SH 説明 .BR connect () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +システムコールは、ファイルディスクリプタ .I sockfd -¤¬»²¾È¤·¤Æ¤¤¤ë¥½¥±¥Ã¥È¤ò +が参照しているソケットを .I addr -¤Ç»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤ËÀܳ¤¹¤ë¡£ +で指定されたアドレスに接続する。 .I addrlen -°ú¤­¿ô¤Ï +引き数は .I addr -¤ÎÂ礭¤µ¤ò¼¨¤¹¡£ +の大きさを示す。 .I addr -¤Î¥¢¥É¥ì¥¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¥½¥±¥Ã¥È +のアドレスのフォーマットはソケット .I sockfd -¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤è¤ê°Û¤Ê¤ë¡£ -¤µ¤é¤Ê¤ë¾ÜºÙ¤Ï +のアドレス空間により異なる。 +さらなる詳細は .BR socket (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 -¥½¥±¥Ã¥È +ソケット .I sockfd -¤¬ +が .B SOCK_DGRAM -·¿¤Ç¤¢¤ì¤Ð¡¢ +型であれば、 .I addr -¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥Ç¡¼¥¿¥°¥é¥à¤ÎÁ÷¿®Àè¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ê¡¢ -¥Ç¡¼¥¿¥°¥é¥à¤ò¼õ¿®¤¹¤ëÍ£°ì¤Î¥¢¥É¥ì¥¹¤ò¼¨¤¹¤Ë²á¤®¤Ê¤¤¡£ -¥½¥±¥Ã¥È¤¬ +は、デフォルトのデータグラムの送信先のアドレスであり、 +データグラムを受信する唯一のアドレスを示すに過ぎない。 +ソケットが .B SOCK_STREAM -·¿¤â¤·¤¯¤Ï +型もしくは .B SOCK_SEQPACKET -·¿¤Ç¤¢¤ì¤Ð¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +型であれば、このシステムコールは .I addr -¤Ç»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤Ë·ë¤ÓÉÕ¤±¤é¤ì¤¿¥½¥±¥Ã¥È¤ËÂФ¹¤ëÀܳ¤Î -ºîÀ®¤ò»î¤ß¤ë¡£ +で指定されたアドレスに結び付けられたソケットに対する接続の +作成を試みる。 .PP -°ìÈÌŪ¤Ë¡¢Àܳ»Ø¸þ (connection-oriented) ¥×¥í¥È¥³¥ë¤Ç¤Ï°ìÅÙ¤À¤± +一般的に、接続指向 (connection-oriented) プロトコルでは一度だけ .BR connect () -¤¬À®¸ù¤¹¤ë¡£ -ÈóÀܳ (connectionless) ¥×¥í¥È¥³¥ë¤Ç¤ÏÂбþ¤òÊѹ¹¤¹¤ë¤¿¤á¤Ë²¿ÅÙ¤â +が成功する。 +非接続 (connectionless) プロトコルでは対応を変更するために何度も .BR connect () -¤ò»ÈÍѤǤ­¤ë¡£ -ÈóÀܳ¥½¥±¥Ã¥È¤Ï +を使用できる。 +非接続ソケットは .I sockaddr -¤Î +の .I sa_family -¥á¥ó¥Ð¤Ë +メンバに .B AF_UNSPEC -¤òÀßÄꤹ¤ë¤³¤È¤Ç¡¢Àܳ¥¢¥É¥ì¥¹¤ÎÂбþ¤ò²ò¾Ã¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë +を設定することで、接続アドレスの対応を解消することができる .RB ( AF_UNSPEC -¤Ï¥«¡¼¥Í¥ë 2.2 °Ê¹ß¤Î Linux ¤Ç¥µ¥Ý¡¼¥È)¡£ -.SH ÊÖ¤êÃÍ -Àܳ¤Þ¤¿¤ÏÂбþ¤Å¤±¤ËÀ®¸ù¤¹¤ë¤È¥¼¥í¤òÊÖ¤¹¡£ -¼ºÇÔ¤¹¤ë¤È \-1 ¤òÊÖ¤·¡¢ +はカーネル 2.2 以降の Linux でサポート)。 +.SH 返り値 +接続または対応づけに成功するとゼロを返す。 +失敗すると \-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ -°Ê²¼¤Ï°ìÈÌŪ¤Ê¥½¥±¥Ã¥È¤Ë¤Ä¤¤¤Æ¤Î¥¨¥é¡¼¤Ç¤¢¤ë¡£Â¾¤Ë¥É¥á¥¤¥óÆÃÍ­¤Î¥¨¥é¡¼ -¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +に適切な値を設定する。 +.SH エラー +以下は一般的なソケットについてのエラーである。他にドメイン特有のエラー +が発生する可能性がある。 .TP .B EACCES -UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤Ï¥Ñ¥¹Ì¾¤Ç¼±Ê̤µ¤ì¤ë¡£ -¥½¥±¥Ã¥È¡¦¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤­¹þ¤ßµö²Ä¤¬¤Ê¤«¤Ã¤¿¤«¡¢¥Ñ¥¹Ì¾¤Ø -Åþ㤹¤ë¤Þ¤Ç¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¤¤¤º¤ì¤«¤ËÂФ¹¤ë¸¡º÷µö²Ä¤¬¤Ê¤«¤Ã¤¿¡£ +UNIX ドメインソケットはパス名で識別される。 +ソケット・ファイルへの書き込み許可がなかったか、パス名へ +到達するまでのディレクトリのいずれかに対する検索許可がなかった。 .RB ( path_resolution (7) -¤â»²¾È¤Î¤³¤È) +も参照のこと) .TP .BR EACCES ", " EPERM -¥½¥±¥Ã¥È¤Î¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¡¦¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤Î¤Ë -¥æ¡¼¥¶¤¬¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¤ØÀܳ¤ò»î¤ß¤¿¡£¤Þ¤¿¤Ï¡¢¥í¡¼¥«¥ë¤Î¥Õ¥¡¥¤¥¢¥¦¥©¡¼¥ë¤Î -µ¬Â§¤Ë¤è¤êÀܳ¤ÎÍ׵᤬¼ºÇÔ¤·¤¿¡£ +ソケットのブロードキャスト・フラグが有効になっていないのに +ユーザがブロードキャストへ接続を試みた。または、ローカルのファイアウォールの +規則により接続の要求が失敗した。 .TP .B EADDRINUSE -¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤¬´û¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ +ローカルアドレスが既に使用されている。 .TP .B EAFNOSUPPORT -ÅϤµ¤ì¤¿¥¢¥É¥ì¥¹¤Î +渡されたアドレスの .I sa_family -¥Õ¥£¡¼¥ë¥É¤¬Àµ¤·¤¤¥¢¥É¥ì¥¹¡¦¥Õ¥¡¥ß¥ê¡¼¤Ç¤Ï¤Ê¤¤¡£ +フィールドが正しいアドレス・ファミリーではない。 .TP .B EAGAIN -»ÈÍѲÄǽ¤Ê¥í¡¼¥«¥ë¤Î¥Ý¡¼¥È¤¬¤Ê¤¤¤«¡¢ -¥ë¡¼¥Æ¥£¥ó¥°¥­¥ã¥Ã¥·¥å¤Ë½½Ê¬¤Ê¥¨¥ó¥È¥ê¤¬¤Ê¤¤¡£ +使用可能なローカルのポートがないか、 +ルーティングキャッシュに十分なエントリがない。 .B AF_INET -¤Î¾ì¹ç¤Ë¡¢¥í¡¼¥«¥ë¥Ý¡¼¥È¤Î¿ô¤òÁý¤ä¤¹ÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +の場合に、ローカルポートの数を増やす方法については、 .BR ip (7) -¤Î +の .I /proc/sys/net/ipv4/ip_local_port_range -¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +の説明を参照のこと。 .TP .B EALREADY -¥½¥±¥Ã¥È¤¬ÈóÄä»ß (nonblocking) ¤ËÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢ -Á°¤ÎÀܳ¤¬´°Î»¤·¤Æ¤¤¤Ê¤¤¡£ +ソケットが非停止 (nonblocking) に設定されており、 +前の接続が完了していない。 .TP .B EBADF -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤¬¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¥Æ¡¼¥Ö¥ë¤Î -Í­¸ú¤Ê¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤Ï¤Ê¤¤¡£ +ファイルディスクリプターがディスクリプターテーブルの +有効なインデックスではない。 .TP .B ECONNREFUSED -¥ê¥â¡¼¥È¥¢¥É¥ì¥¹¤ÇÀܳ¤òÂԤäƤ¤¤ë¥×¥í¥°¥é¥à¤¬¤Ê¤¤¡£ +リモートアドレスで接続を待っているプログラムがない。 .TP .B EFAULT -¥½¥±¥Ã¥È¹½Â¤ÂΤΥ¢¥É¥ì¥¹¤¬¥æ¡¼¥¶¡¼¤Î¥¢¥É¥ì¥¹¶õ´Ö³°¤Ë¤¢¤ë¡£ +ソケット構造体のアドレスがユーザーのアドレス空間外にある。 .TP .B EINPROGRESS -¥½¥±¥Ã¥È¤¬ÈóÄä»ß (nonblocking) ¤ËÀßÄꤵ¤ì¤Æ¤¤¤Æ¡¢Àܳ¤ò¤¹¤°¤Ë -´°Î»¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£¤½¤Î¾ì¹ç¡¢ +ソケットが非停止 (nonblocking) に設定されていて、接続をすぐに +完了することができない。その場合、 .BR select (2) -¤ä +や .BR poll (2) -¤ò»È¤Ã¤Æ¤½¤Î¥½¥±¥Ã¥È¤¬½ñ¤­¹þ¤ß²Äǽ¤Ë¤Ê¤ë¤Î¤òÂԤĤ³¤È¤Ç¡¢ -Àܳ¤Î´°Î»¤òÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ +を使ってそのソケットが書き込み可能になるのを待つことで、 +接続の完了を知ることができる。 .BR select (2) -¤Ç½ñ¤­¹þ¤ß²Äǽ¤Ë¤Ê¤Ã¤¿¸å¤Ë¡¢ +で書き込み可能になった後に、 .BR getsockopt (2) -¤ò»È¤Ã¤Æ +を使って .B SOL_SOCKET -¥ì¥Ù¥ë¤Ç +レベルで .B SO_ERROR -¥ª¥×¥·¥ç¥ó¤òÆɤ߽Ф¹¤³ -¤È¤Ë¤è¤ê¡¢ +オプションを読み出すこ +とにより、 .BR connect () -¤¬À®¸ù¤·¤¿¤«¡¢¼ºÇÔ¤·¤¿¤«¤òȽÃǤǤ­¤ë¡£ -À®¸ù¤Î¾ì¹ç +が成功したか、失敗したかを判断できる。 +成功の場合 .B SO_ERROR -¤¬ 0 ¤Ç¤¢¤ê¡¢ -¼ºÇԤξì¹ç +が 0 であり、 +失敗の場合 .B SO_ERROR -¤¬¤³¤³¤Î¥ê¥¹¥È¤Ë¤¢¤ë¤¤¤º¤ì¤«¤Î¥¨¥é¡¼¥³¡¼¥É¤Ç¤¢¤ê¡¢ -¤½¤ì¤Ë¤è¤ê¼ºÇԤθ¶°ø¤¬Ê¬¤«¤ë¡£ +がここのリストにあるいずれかのエラーコードであり、 +それにより失敗の原因が分かる。 .TP .B EINTR -Ê᪤µ¤ì¤¿¥·¥°¥Ê¥ë¤Ë¤è¤ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ÃæÃǤµ¤ì¤¿¡£ +捕捉されたシグナルによりシステムコールが中断された。 .BR signal (7) -»²¾È¡£ -.\" TCP ¤Î¾ì¹ç¤Ï¡¢Àܳ½èÍý¤ÏÈóƱ´ü¤Ë¤Ê¤ë¤¬´°Î»¤¹¤ë¤À¤í¤¦¡£ -.\" http://lkml.org/lkml/2005/7/12/254 ¤ò»²¾È¤Î¤³¤È¡£ +参照。 +.\" TCP の場合は、接続処理は非同期になるが完了するだろう。 +.\" http://lkml.org/lkml/2005/7/12/254 を参照のこと。 .TP .B EISCONN -¥½¥±¥Ã¥È¤Ï´û¤ËÀܳ (connect) ¤µ¤ì¤Æ¤¤¤ë¡£ +ソケットは既に接続 (connect) されている。 .TP .B ENETUNREACH -Åþã¤Ç¤­¤Ê¤¤¥Í¥Ã¥È¥ï¡¼¥¯¤Ç¤¢¤ë¡£ +到達できないネットワークである。 .TP .B ENOTSOCK -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤¬¥½¥±¥Ã¥È¤È´ØÏ¢ÉÕ¤±¤é¤ì¤Æ¤¤¤Ê¤¤¡£ +ファイルディスクリプターがソケットと関連付けられていない。 .TP .B ETIMEDOUT -Àܳ¤ò»î¤ß¤Æ¤¤¤ëÅÓÃæ¤Ç»þ´ÖÀÚ¤ì (timeout) ¤Ë¤Ê¤Ã¤¿¡£¥µ¡¼¥Ð¡¼¤¬º®»¨¤·¤Æ¤¤¤Æ -¿·¤¿¤ÊÀܳ¤ò¼õ¤±Æþ¤ì¤é¤ì¤Ê¤¤¤Î¤«¤â¤·¤ì¤Ê¤¤¡£ -IP ¥½¥±¥Ã¥È¤Ç¤Ï¡¢ syncookie ¤¬¥µ¡¼¥Ð¡¼¤ÇÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -¥¿¥¤¥à¥¢¥¦¥È¤¬Èó¾ï¤ËŤ¯¤Ê¤ë¾ì¹ç¤¬¤¢¤ë¤Î¤ÇÃí°Õ¤¹¤ë¤³¤È¡£ -.SH ½àµò +接続を試みている途中で時間切れ (timeout) になった。サーバーが混雑していて +新たな接続を受け入れられないのかもしれない。 +IP ソケットでは、 syncookie がサーバーで有効になっている場合、 +タイムアウトが非常に長くなる場合があるので注意すること。 +.SH 準拠 SVr4, 4.4BSD, .RB ( connect () -´Ø¿ô¤Ï 4.2BSD ¤ÇºÇ½é¤ËÅо줷¤¿), POSIX.1-2001. -.\" SVr4 ¤Ç¤Ï¡¢°ìÈÌŪ¤Ê¥¨¥é¡¼¡¦¥³¡¼¥É¤È¤·¤Æ +関数は 4.2BSD で最初に登場した), POSIX.1-2001. +.\" SVr4 では、一般的なエラー・コードとして .\" .BR EADDRNOTAVAIL , .\" .BR EINVAL , .\" .BR EAFNOSUPPORT , @@ -247,35 +247,35 @@ SVr4, 4.4BSD, .\" .BR EINTR , .\" .BR EPROTOTYPE , .\" .B ENOSR -.\" ¤¬Äɲ䵤ì¤Æ¤¤¤ë¡£ -.\" ¤Þ¤¿¡¢Ëܥޥ˥奢¥ë¤Ë¤Ïµ­ºÜ¤·¤Æ¤¤¤Ê¤¤ÄɲäΥ¨¥é¡¼¾ò·ï¤¬Â¿¤¯µ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -POSIX.1-2001 ¤Ç¤Ï +.\" が追加されている。 +.\" また、本マニュアルには記載していない追加のエラー条件が多く記載されている。 +.SH 注意 +POSIX.1-2001 では .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ïɬ¿Ü¤È¤µ¤ì¤Æ¤ª¤é¤º¡¢ -Linux ¤Ç¤Ï¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÏɬÍפǤϤʤ¤¡£ -¤·¤«¤·¡¢Îò»ËŪ¤Ë¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¼ÂÁõ (BSD ·Ï) ¤Ç¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬ -ɬÍפǤ¢¤ê¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤ò -¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤Î¤¬¸­ÌÀ¤Ç¤¢¤í¤¦¡£ +のインクルードは必須とされておらず、 +Linux ではこのヘッダファイルは必要ではない。 +しかし、歴史的には、いくつかの実装 (BSD ç³») でこのヘッダファイルが +必要であり、移植性が必要なアプリケーションではこのファイルを +インクルードするのが賢明であろう。 .BR connect () -¤Î»°ÈÖÌܤΰú¤­¿ô¤Ï 4.x BSD ¤ä libc4, libc5 ¤ÈƱÍÍ¤Ë¼ÂºÝ¤Ë¤Ï +の三番目の引き数は 4.x BSD や libc4, libc5 と同様に実際には .I int -¤Ç¤¢¤ë¡£ -POSIX ¤Ç¤Ïäþ;¶ÊÀÞ¤ò·Ð¤Æ¸½ºß¤Î +である。 +POSIX では紆余曲折を経て現在の .I socklen_t -¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢ -glibc ¤Ç¤â +になっており、 +glibc でも .I socklen_t -¤ò»È¤Ã¤Æ¤¤¤ë¡£ +を使っている。 .BR accept (2) -¤â»²¾È¤Î¤³¤È¡£ -.SH Îã +も参照のこと。 +.SH 例 .BR connect () -¤ÎÍøÍÑÎ㤬 +の利用例が .BR getaddrinfo (3) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +に記載されている。 +.SH 関連項目 .BR accept (2), .BR bind (2), .BR getsockname (2), diff --git a/release/man2/create_module.2 b/release/man2/create_module.2 index 230cfb10..c2efe288 100644 --- a/release/man2/create_module.2 +++ b/release/man2/create_module.2 @@ -9,56 +9,56 @@ .\" Translated 2006-07-29, Akihiro MOTOKI .\" .TH CREATE_MODULE 2 2007-06-03 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -create_module \- ¥í¡¼¥À¥Ö¥ë¥â¥¸¥å¡¼¥ë¤Î¥¨¥ó¥È¥ê¤òºîÀ®¤¹¤ë -.SH ½ñ¼° +.SH 名前 +create_module \- ローダブルモジュールのエントリを作成する +.SH 書式 .nf .B #include .sp .BI "caddr_t create_module(const char *" name ", size_t " size ); .fi -.SH ÀâÌÀ +.SH 説明 .BR create_module () -¤Ï¡¢¥í¡¼¥À¥Ö¥ë¥â¥¸¥å¡¼¥ë¤Î¥¨¥ó¥È¥ê¤òºîÀ®¤·¡¢¤½¤Î¥â¥¸¥å¡¼¥ë¤ÎÊÝ»ý¤ËɬÍ×¤Ê -¥«¡¼¥Í¥ë¥á¥â¥ê¤òͽÌ󤷤褦¤È¤¹¤ë¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤¦¤Ë¤ÏÆø¢¤¬É¬ÍפǤ¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¥â¥¸¥å¡¼¥ë¤¬ÇÛÃÖ¤µ¤ì¤ë¥«¡¼¥Í¥ë¶õ´Ö¤Î¥¢¥É¥ì¥¹¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤·¡¢ +は、ローダブルモジュールのエントリを作成し、そのモジュールの保持に必要な +カーネルメモリを予約しようとする。 +このシステムコールを使うには特権が必要である。 +.SH 返り値 +成功すると、モジュールが配置されるカーネル空間のアドレスを返す。 +エラーの場合 \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切に設定する。 +.SH エラー .TP .B EEXIST -¤½¤Î̾Á°¤Î¥â¥¸¥å¡¼¥ë¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¡£ +その名前のモジュールがすでに存在する。 .TP .B EFAULT .I name -¤¬¥×¥í¥°¥é¥à¤¬¥¢¥¯¥»¥¹¤Ç¤­¤ë¥¢¥É¥ì¥¹¶õ´Ö¤Î³°Éô¤Ë¤¢¤ë¡£ +がプログラムがアクセスできるアドレス空間の外部にある。 .TP .B EINVAL -Í׵ᤷ¤¿¥µ¥¤¥º¤¬¾®¤µ¤¹¤®¤Æ¡¢¥â¥¸¥å¡¼¥ë¤Î¥Ø¥Ã¥À¾ðÊ󤹤é³ÊǼ¤Ç¤­¤Ê¤¤¡£ +要求したサイズが小さすぎて、モジュールのヘッダ情報すら格納できない。 .TP .B ENOMEM -¥â¥¸¥å¡¼¥ë¤ò³ÊǼ¤¹¤ë¤Î¤ËɬÍפÊÂ礭¤µ¤ÎϢ³¤·¤¿¥á¥â¥ê¥Ö¥í¥Ã¥¯¤ò -¥«¡¼¥Í¥ë¤¬³ÎÊݤǤ­¤Ê¤«¤Ã¤¿¡£ +モジュールを格納するのに必要な大きさの連続したメモリブロックを +カーネルが確保できなかった。 .TP .B ENOSYS .BR create_module () -¤¬¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +がこのバージョンのカーネルではサポートされていない。 .TP .B EPERM -¸Æ¤Ó½Ð¤·¸µ¤¬Æø¢ +呼び出し元が特権 .RB ( CAP_SYS_MODULE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤ò»ý¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Â¸ºß¤¹¤ë¤Î¤Ï¥«¡¼¥Í¥ë 2.4 ¤Þ¤Ç¤Î Linux ¤À¤±¤Ç¤¢¤ë¡£ -Linux 2.6 ¤Ç¤Ïºï½ü¤µ¤ì¤¿¡£ +ケーパビリティ) を持っていなかった。 +.SH バージョン +このシステムコールが存在するのはカーネル 2.4 までの Linux だけである。 +Linux 2.6 では削除された。 .\" Removed in Linux 2.5.48 -.SH ½àµò +.SH 準拠 .BR create_module () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +は Linux 固有である。 +.SH 関連項目 .BR delete_module (2), .BR init_module (2), .BR query_module (2) diff --git a/release/man2/delete_module.2 b/release/man2/delete_module.2 index e6a12900..142362e0 100644 --- a/release/man2/delete_module.2 +++ b/release/man2/delete_module.2 @@ -9,49 +9,49 @@ .\" Translated 2006-07-29, Akihiro MOTOKI .\" .TH DELETE_MODULE 2 2006-02-09 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -delete_module \- ¥í¡¼¥À¥Ö¥ë¥â¥¸¥å¡¼¥ë¤Î¥¨¥ó¥È¥ê¤òºï½ü¤¹¤ë -.SH ½ñ¼° +.SH 名前 +delete_module \- ローダブルモジュールのエントリを削除する +.SH 書式 .nf .B #include .sp .BI "int delete_module(const char *" name ); .fi -.SH ÀâÌÀ +.SH 説明 .BR delete_module () -¤Ï¡¢Ì¤»ÈÍÑ¤Î¥í¡¼¥À¥Ö¥ë¥â¥¸¥å¡¼¥ë¤Î¥¨¥ó¥È¥ê¤òºï½ü¤·¤è¤¦¤È¤¹¤ë¡£ +は、未使用のローダブルモジュールのエントリを削除しようとする。 .I name -¤¬ NULL ¤Î¾ì¹ç¡¢Ì¤»ÈÍѤΥ⥸¥å¡¼¥ë¤Î¤¦¤Á¡Ö¼«Æ°ºï½ü (auto-clean)¡× -¥Þ¡¼¥¯¤¬¤Ä¤¤¤¿¤â¤Î¤òÁ´¤Æºï½ü¤¹¤ë¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤¦¤Ë¤ÏÆø¢¤¬É¬ÍפǤ¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤·¡¢ +が NULL の場合、未使用のモジュールのうち「自動削除 (auto-clean)」 +マークがついたものを全て削除する。 +このシステムコールを使うには特権が必要である。 +.SH 返り値 +成功すると 0 を返す。エラーの場合 \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切に設定する。 +.SH エラー .TP .B EBUSY -¤½¤Î¥â¥¸¥å¡¼¥ë¤Ï»ÈÍÑÃæ¤Ç¤¢¤ë¡£ +そのモジュールは使用中である。 .TP .B EFAULT .I name -¤¬¥×¥í¥°¥é¥à¤¬¥¢¥¯¥»¥¹¤Ç¤­¤ë¥¢¥É¥ì¥¹¶õ´Ö¤Î³°Éô¤Ë¤¢¤ë¡£ +がプログラムがアクセスできるアドレス空間の外部にある。 .TP .B EINVAL .I name -¤¬¶õʸ»úÎó¤Ç¤¢¤ë¡£ +が空文字列である。 .TP .B ENOENT -¤½¤Î̾Á°¤Î¥â¥¸¥å¡¼¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ +その名前のモジュールが存在しない。 .TP .B EPERM -¸Æ¤Ó½Ð¤·¸µ¤¬Æø¢ +呼び出し元が特権 .RB ( CAP_SYS_MODULE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤ò»ý¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ -.SH ½àµò +ケーパビリティ) を持っていなかった。 +.SH 準拠 .BR delete_module () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +は Linux 固有である。 +.SH 関連項目 .BR create_module (2), .BR init_module (2), .BR query_module (2) diff --git a/release/man2/dup.2 b/release/man2/dup.2 index e4ef4aeb..dda46cfd 100644 --- a/release/man2/dup.2 +++ b/release/man2/dup.2 @@ -44,185 +44,185 @@ .\" Updated 2008-11-09, Akihiro MOTOKI, LDP v3.13 .\" .TH DUP 2 2010-09-10 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -dup, dup2, dup3 \- ¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊ£À½¤¹¤ë -.SH ½ñ¼° +.SH 名前 +dup, dup2, dup3 \- ファイル・ディスクリプタを複製する +.SH 書式 .nf .B #include .sp .BI "int dup(int " oldfd ); .BI "int dup2(int " oldfd ", int " newfd ); .sp -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "int dup3(int " oldfd ", int " newfd ", int " flags ); .fi -.SH ÀâÌÀ -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿ +.SH 説明 +これらのシステムコールは、ファイル・ディスクリプタ .I oldfd -¤ÎÊ£À½¤òºî¤ë¡£ +の複製を作る。 .BR dup () -¤ÏºÇ¤â¾®¤µ¤¤ÈÖ¹æ¤Î̤»ÈÍѤΥǥ£¥¹¥¯¥ê¥×¥¿¤ò -¿·¤·¤¤¥Ç¥£¥¹¥¯¥ê¥×¥¿¤È¤·¤Æ»ÈÍѤ¹¤ë¡£ +は最も小さい番号の未使用のディスクリプタを +新しいディスクリプタとして使用する。 .BR dup2 () -¤Ï +は .I newfd -¤ò +を .I oldfd -¤ÎÊ£À½¤È¤·¤ÆºîÀ®¤¹¤ë¡£ -ɬÍפǤ¢¤ì¤ÐºÇ½é¤Ë +の複製として作成する。 +必要であれば最初に .I newfd -¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ -°Ê²¼¤ÎÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +をクローズする。 +以下の点に注意すること。 .IP * 3 .I oldfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¾ì¹ç¡¢¤½¤Î¸Æ¤Ó½Ð¤·¤Ï¼ºÇÔ¤·¡¢ +が有効なファイルディスクリプタでない場合、その呼び出しは失敗し、 .I newfd -¤Ï¥¯¥í¡¼¥º¤µ¤ì¤Ê¤¤¡£ +はクローズされない。 .IP * .I oldfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¡¢ +が有効なファイルディスクリプタで、 .I newfd -¤¬ +が .I oldfd -¤ÈƱ¤¸Ãͤξì¹ç¡¢ +と同じ値の場合、 .BR dup2 () -¤Ï²¿¤â¤»¤º¡¢ +は何もせず、 .I newfd -¤òÊÖ¤¹¡£ +を返す。 .PP -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¤¤¤º¤ì¤«¤¬À®¸ù¤òÊÖ¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ -¸Å¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤È¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï -¸ß¤¤¤Ë²Ä´¹¤Ê¤â¤Î¤È¤·¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -2¤Ä¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏƱ¤¸¥Õ¥¡¥¤¥ëµ­½Ò (description) +これらのシステムコールのいずれかが成功を返した場合には、 +古いファイル・ディスクリプタと新しいファイル・ディスクリプタは +互いに可換なものとして使うことができる。 +2つのファイル・ディスクリプタは同じファイル記述 (description) .RB ( open (2) -»²¾È) ¤ò»²¾È¤·¤Æ¤ª¤ê¡¢¤·¤¿¤¬¤Ã¤Æ¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤ä¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤¬ -¶¦Í­¤µ¤ì¤ë¡£Î㤨¤Ð¡¢°ìÊý¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ +参照) を参照しており、したがってファイルオフセットやファイル状態フラグが +共有される。例えば、一方のディスクリプタに対して .BR lseek (2) -¤ò»È¤Ã¤Æ¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤òÊѹ¹¤·¤¿¾ì¹ç¡¢¤â¤¦°ìÊý¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î -¥ª¥Õ¥»¥Ã¥È¤âÊѲ½¤¹¤ë¡£ +を使ってファイルオフセットを変更した場合、もう一方のディスクリプタの +オフセットも変化する。 -2¤Ä¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Õ¥é¥° (close-on-exec flag) -¤ò¶¦Í­¤·¤Ê¤¤¡£Ê£À½¤µ¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î +2つのディスクリプタはファイル・ディスクリプタ・フラグ (close-on-exec flag) +を共有しない。複製されたディスクリプタの close-on-exec flag .RB ( fcntl (2) -»²¾È) ¤Ï off ¤È¤Ê¤ë¡£ +参照) は off となる。 .BR dup3 () -¤Ï +は .BR dup2 () -¤ÈƱ¤¸¤À¤¬¡¢°Ê²¼¤ÎÅÀ¤¬°Û¤Ê¤ë¡£ +と同じだが、以下の点が異なる。 .IP * 3 -¸Æ¤Ó½Ð¤·¸µ¤¬¡¢¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ -close-on-exec ¥Õ¥é¥°¤ò¶¯À©Åª¤ËÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤ò¹Ô¤¦¤Ë¤Ï¡¢ +呼び出し元が、新しいファイル・ディスクリプタに対して +close-on-exec フラグを強制的に設定することができる。 +これを行うには、 .I flags -¤Ë +に .B O_CLOEXEC -¤ò»ØÄꤹ¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬Ìò¤ËΩ¤ÄÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +を指定する。 +このフラグが役に立つ理由については、 .BR open (2) -¤Î +の .B O_CLOEXEC -¥Õ¥é¥°¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +フラグの説明を参照のこと。 .IP * .\" FIXME . To confirm with Al Viro that this was intended, and its rationale .I oldfd -¤¬ +が .I newfd -¤ÈƱ¤¸¾ì¹ç¡¢ +と同じ場合、 .BR dup3 () -¤Ï +は .B EINVAL -¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¿·¤·¤¤¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +エラーで失敗する。 +.SH 返り値 +成功すると、これらのシステムコールは新しいディスクリプタを返す。 +エラーの場合、\-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切に設定する。 +.SH エラー .TP .B EBADF .I oldfd -¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¤«¡¢ +がオープンされたファイル・ディスクリプタでないか、 .I newfd -¤¬¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤È¤·¤Æµö¤µ¤ì¤ëÈϰϤ«¤é³°¤ì¤Æ¤¤¤ë¡£ +がファイル・ディスクリプタとして許される範囲から外れている。 .TP .B EBUSY -(Linux ¤Î¤ß) +(Linux のみ) .BR open (2) -¤ä +や .BR dup () -¤È¤Î¶¥¹ç¾õÂ֤ξì¹ç¤Ë¡¢ +との競合状態の場合に、 .BR dup2 () -¤ä +や .BR dup3 () -¤Ï¤³¤Î¥¨¥é¡¼¤òÊÖ¤¹¤«¤â¤·¤ì¤Ê¤¤¡£ +はこのエラーを返すかもしれない。 .TP .B EINTR .BR dup2 () -¤ä +や .BR dup3 () -¤Î¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¡£ +の呼び出しがシグナルにより割り込まれた。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .RB ( dup3 ()) .I flags -¤Ë̵¸ú¤ÊÃͤ¬Æþ¤Ã¤Æ¤¤¤ë¡£ +に無効な値が入っている。 .\" FIXME . To confirm with Al Viro that this was intended, and its rationale -¤â¤·¤¯¤Ï¡¢ +もしくは、 .I oldfd -¤¬ +が .I newfd -¤ÈƱ¤¸¤Ç¤¢¤Ã¤¿¡£ +と同じであった。 .TP .B EMFILE -¥×¥í¥»¥¹¤¬¤¹¤Ç¤Ë¥ª¡¼¥×¥ó¤Ç¤­¤ëºÇÂç¿ô¤Þ¤Ç¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿ -¤ò³«¤¤¤Æ¤¤¤Æ¡¢¤µ¤é¤Ë¿·¤·¤¤¤â¤Î¤ò³«¤³¤¦¤È¤·¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +プロセスがすでにオープンできる最大数までファイル・ディスクリプタ +を開いていて、さらに新しいものを開こうとした。 +.SH バージョン .BR dup3 () -¤Ï¥Ð¡¼¥¸¥ç¥ó 2.6.27 ¤Ç Linux ¤ËÄɲ䵤줿¡£ -glibc ¤Ë¤è¤ë¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.9 °Ê¹ß¤ÇÍøÍѤǤ­¤ë¡£ -.SH ½àµò +はバージョン 2.6.27 で Linux に追加された。 +glibc によるサポートはバージョン 2.9 以降で利用できる。 +.SH 準拠 .BR dup (), .BR dup2 (): SVr4, 4.3BSD, POSIX.1-2001. .BR dup3 () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -.\" SVr4 ¤Ë¤Ï¾¤Ë EINTR, ENOLINK ¥¨¥é¡¼¾õÂ֤ε­½Ò¤¬¤¢¤ë¡£ -.\" POSIX.1 ¤Ë¤Ï¾¤Ë EINTR ¤¬¤¢¤ë¡£ -.\" EBUSY ¤¬ÊÖ¤µ¤ì¤ë¤Î¤Ï Linux Æȼ«¤Î¤â¤Î¤Ç¤¢¤ë¡£ -.SH Ãí°Õ +は Linux 固有である。 +.\" SVr4 には他に EINTR, ENOLINK エラー状態の記述がある。 +.\" POSIX.1 には他に EINTR がある。 +.\" EBUSY が返されるのは Linux 独自のものである。 +.SH 注意 .I newfd -¤¬ÈϰϤòĶ¤¨¤¿»þ¤ËÊÖ¤µ¤ì¤ë¥¨¥é¡¼¤Ï¡¢ +が範囲を超えた時に返されるエラーは、 .BR dup2 () -¤È +と .BR fcntl( "..., " F_DUPFD ", ..." ) -¤Ç¤Ï°Û¤Ã¤Æ¤¤¤ë¡£ +では異っている。 .BR dup2 () -¤¬ +が .B F_DUPFD -¤ÈƱ¤¸¤è¤¦¤Ë +と同じように .B EINVAL -¤òÊÖ¤¹¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ +を返すシステムもある。 .I newfd -¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¤È¡¢ +がオープンされていると、 .BR close (2) -¤·¤¿»þ¤ËÊó¹ð¤µ¤ì¤ë¤Ï¤º¤Î¥¨¥é¡¼¤¬¼º¤ï¤ì¤Æ¤·¤Þ¤¦¡£ +した時に報告されるはずのエラーが失われてしまう。 .BR dup2 () -¤ä +や .BR dup3 () -¤ò»È¤¦Á°¤ËÀ褺 +を使う前に先ず .I newfd -¤ò¥¯¥í¡¼¥º¤¹¤ë¤è¤¦¤Ë¤·¤¿Êý¤¬¤¤¤¤¤À¤í¤¦¡£ -.SH ´ØÏ¢¹àÌÜ +をクローズするようにした方がいいだろう。 +.SH 関連項目 .BR close (2), .BR fcntl (2), .BR open (2) diff --git a/release/man2/epoll_create.2 b/release/man2/epoll_create.2 index 5c20ab43..1dddaa0d 100644 --- a/release/man2/epoll_create.2 +++ b/release/man2/epoll_create.2 @@ -30,108 +30,108 @@ .\" Updated & Modified Tue Apr 19 06:51:12 JST 2005 by Yuichi SATO .\" Updated 2009-03-05 by Kentaro Shirakata .\" -.\"WORD: backing store ¥Ð¥Ã¥­¥ó¥°¥¹¥È¥¢ +.\"WORD: backing store バッキングストア .\" .TH EPOLL_CREATE 2 2009-01-17 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -epoll_create, epoll_create1 \- epoll ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥ª¡¼¥×¥ó¤¹¤ë -.SH ½ñ¼° +.SH 名前 +epoll_create, epoll_create1 \- epoll ファイルディスクリプタをオープンする +.SH 書式 .nf .B #include .sp .BI "int epoll_create(int " size ); .BI "int epoll_create1(int " flags ); .fi -.SH ÀâÌÀ +.SH 説明 .BR epoll_create () -¤Ï¡¢ +は、 .I size -¸Ä¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÝ»ý¤Ç¤­¤ëÂ礭¤µ¤Î¥¤¥Ù¥ó¥È¥Ð¥Ã¥­¥ó¥° -¥¹¥È¥¢¤Î³ä¤êÅö¤Æ¤ò¥«¡¼¥Í¥ë¤ËÂФ·¤ÆÍ׵᤹¤ë¤³¤È¤Ë¤è¤ê¡¢ -epoll ¡Ö¥¤¥ó¥¹¥¿¥ó¥¹¡×¤òºîÀ®¤¹¤ë¡£ +個のディスクリプタを保持できる大きさのイベントバッキング +ストアの割り当てをカーネルに対して要求することにより、 +epoll 「インスタンス」を作成する。 .I size -¤Ï¥Ð¥Ã¥­¥ó¥°¥¹¥È¥¢¤ÎºÇÂ祵¥¤¥º¤Ç¤Ï¤Ê¤¯¡¢ -ÆâÉô¹½Â¤¤ÎÂ礭¤µ¤ò¤É¤Î°Ì¤Ë¤¹¤ë¤«¤ò¥«¡¼¥Í¥ë¤ËÃΤ餻¤ë¥Ò¥ó¥È¤Ç¤·¤«¤Ê¤¤¡£ -(¸½ºß¤Ï +はバッキングストアの最大サイズではなく、 +内部構造の大きさをどの位にするかをカーネルに知らせるヒントでしかない。 +(現在は .I size -¤Ï̵»ë¤µ¤ì¤ë¡£²¼µ­¤Î¡ÖÃí°Õ¡×¤ò»²¾È¡£) +は無視される。下記の「注意」を参照。) .BR epoll_create () -¤Ï¡¢¿·¤·¤¤ epoll ¥¤¥ó¥¹¥¿¥ó¥¹¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢¤½¤Î¸å¤Î +は、新しい epoll インスタンスを参照するファイルディスクリプタを返す。 +このファイルディスクリプタは、その後の .B epoll -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î¸Æ¤Ó½Ð¤·¤Ë»È¤ï¤ì¤ë¡£ -¤â¤¦É¬ÍפǤʤ¯¤Ê¤Ã¤¿¾ì¹ç¤Ï¡¢ +インタフェースの呼び出しに使われる。 +もう必要でなくなった場合は、 .BR epoll_create () -¤ÇÊÖ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï +で返されたファイルディスクリプタは .BR close (2) -¤ò»È¤Ã¤Æ¥¯¥í¡¼¥º¤µ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -¤¢¤ë epoll ¥¤¥ó¥¹¥¿¥ó¥¹¤ò»²¾È¤¹¤ëÁ´¤Æ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥¯¥í¡¼¥º¤µ¤ì¤ë¤È¡¢ -¥«¡¼¥Í¥ë¤Ï¤½¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤òÇ˲õ¤·¤Æ¡¢Âбþ¤¹¤ë¥ê¥½¡¼¥¹¤ò²òÊü¤·¡¢ -ºÆ»ÈÍѤǤ­¤ë¤è¤¦¤Ë¤¹¤ë¡£ +を使ってクローズされるべきである。 +ある epoll インスタンスを参照する全てのファイルディスクリプタがクローズされると、 +カーネルはそのインスタンスを破壊して、対応するリソースを解放し、 +再使用できるようにする。 .BR epoll_create1 () -¤Ï¡¢ +は、 .I flags -¤¬ 0 ¤Î¾ì¹ç¡¢¸½ºß¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤Ê¤¤ +が 0 の場合、現在では使われていない .I size -°ú¤­¿ô¤¬¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤ëÅÀ¤ò½ü¤±¤Ð +引き数がなくなっている点を除けば .BR epoll_create () -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .I flags -¤Ë°Ê²¼¤ÎÃͤò¥Ó¥Ã¥ÈËè¤ÎÏÀÍýÏ (OR) ¤Ç»ØÄꤹ¤ë¤³¤È¤Ç¡¢ -°Û¤Ê¤ëÆ°ºî¤ò¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +に以下の値をビット毎の論理和 (OR) で指定することで、 +異なる動作をさせることができる。 .TP .B EPOLL_CLOEXEC -¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ +新しいファイルディスクリプタに対して close-on-exec .RB ( FD_CLOEXEC ) -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬Ìò¤ËΩ¤ÄÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +フラグをセットする。 +このフラグが役に立つ理由については、 .BR open (2) -¤Î +の .B O_CLOEXEC -¥Õ¥é¥°¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï -ÈóÉé¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +フラグの説明を参照のこと。 +.SH 返り値 +成功すると、これらのシステムコールは +非負のファイルディスクリプタを返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値を設定する。 +.SH エラー .TP .B EINVAL .I size -¤¬Àµ¤Ç¤Ê¤¤¡£ +が正でない。 .TP .B EINVAL .RB ( epoll_create1 ()) .I flags -¤Ë̵¸ú¤ÊÃͤ¬»ØÄꤵ¤ì¤¿¡£ +に無効な値が指定された。 .TP .B EMFILE .I /proc/sys/fs/epoll/max_user_instances -¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤Æ¤¤¤ë¡¢epoll ¥¤¥ó¥¹¥¿¥ó¥¹¤Î¥æ¡¼¥¶¡¼Ã±°Ì¤ÎÀ©¸Â¤Ë㤷¤¿¡£ -¹¹¤Ê¤ë¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï +によって指定されている、epoll インスタンスのユーザー単位の制限に達した。 +更なる詳細については .BR epoll (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .TP .B ENFILE -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ÎÁí¿ô¤¬¥·¥¹¥Æ¥àÀ©¸Â¤Ë㤷¤¿¡£ +オープンされたファイルの総数がシステム制限に達した。 .TP .B ENOMEM -¥«¡¼¥Í¥ë¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤«¤Ã¤¿¡£ -.SH ½àµò +カーネルオブジェクトを作成するのに十分なメモリがなかった。 +.SH 準拠 .BR epoll_create () -¤Ï Linux Æȼ«¤Ç¤¢¤ê¡¢¥«¡¼¥Í¥ë 2.5.44 ¤ÇƳÆþ¤µ¤ì¤¿¡£ -.\" ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï Linux ¥«¡¼¥Í¥ë 2.5.66 ¤Ç³ÎÄꤵ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -Linux 2.6.8 °Ê¹ß¤Ç¤Ï¡¢ +は Linux 独自であり、カーネル 2.5.44 で導入された。 +.\" インタフェースは Linux カーネル 2.5.66 で確定されるべきである。 +.SH 注意 +Linux 2.6.8 以降では、 .I size -°ú¤­¿ô¤Ï»ÈÍѤµ¤ì¤Ê¤¤ -(¥«¡¼¥Í¥ë¤Ï¡¢Æ°Åª¤ËɬÍפʥǡ¼¥¿¹½Â¤¤ÎÂ礭¤µ¤ò·èÄꤷ¡¢ -ºÇ½é¤Î¥Ò¥ó¥È¤òɬÍפ·¤Ê¤¤)¡£ -.SH ´ØÏ¢¹àÌÜ +引き数は使用されない +(カーネルは、動的に必要なデータ構造の大きさを決定し、 +最初のヒントを必要しない)。 +.SH 関連項目 .BR close (2), .BR epoll_ctl (2), .BR epoll_wait (2), diff --git a/release/man2/epoll_ctl.2 b/release/man2/epoll_ctl.2 index 6ea27c3b..1025f051 100644 --- a/release/man2/epoll_ctl.2 +++ b/release/man2/epoll_ctl.2 @@ -28,64 +28,64 @@ .\" Updated 2009-02-23, Akihiro MOTOKI , LDP v3.19 .\" .TH EPOLL_CTL 2 2010-08-29 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -epoll_ctl \- epoll ¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÁàºî¤¹¤ë -.SH ½ñ¼° +.SH 名前 +epoll_ctl \- epoll ディスクリプタのインタフェースを操作する +.SH 書式 .B #include .sp .BI "int epoll_ctl(int " epfd ", int " op ", int " fd \ ", struct epoll_event *" event ); -.SH ÀâÌÀ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +.SH 説明 +このシステムコールは、ファイルディスクリプタ .I epfd -¤¬»²¾È¤¹¤ë epoll ¥¤¥ó¥¹¥¿¥ó¥¹¤ËÂФ¹¤ëÁàºî¤ò¹Ô¤¦¡£ -ÂоݤΥե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +が参照する epoll インスタンスに対する操作を行う。 +対象のファイルディスクリプタ .I fd -¤ËÂФ·¤Æ¡¢Áàºî +に対して、操作 .I op -¤Î¼Â¹Ô¤¬Í׵ᤵ¤ì¤ë¡£ +の実行が要求される。 .I op -°ú¤­¿ô¤Ë»ØÄê¤Ç¤­¤ëÍ­¸ú¤ÊÃͤϰʲ¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +引き数に指定できる有効な値は以下の通りである。 .TP .B EPOLL_CTL_ADD -ÂоݤΥե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +対象のファイルディスクリプタ .I fd -¤ò¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +をファイルディスクリプタ .I epfd -¤¬»²¾È¤¹¤ë +が参照する .B epoll -¥¤¥ó¥¹¥¿¥ó¥¹¤ËÅÐÏ¿¤·¡¢¥¤¥Ù¥ó¥È +インスタンスに登録し、イベント .I event -¤ò +を .I fd -¤Ë·ë¤ÓÉÕ¤±¤é¤ì¤¿ÆâÉô¥Õ¥¡¥¤¥ë¤Ë´ØÏ¢ÉÕ¤±¤ë¡£ +に結び付けられた内部ファイルに関連付ける。 .TP .B EPOLL_CTL_MOD -¥¤¥Ù¥ó¥È +イベント .I event -¤òÂоݤΥե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +を対象のファイルディスクリプタ .I fd -¤Ë´ØÏ¢ÉÕ¤±¤ë¤è¤¦¤ËÊѹ¹¤¹¤ë¡£ +に関連付けるように変更する。 .TP .B EPOLL_CTL_DEL -ÂоݤΥե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +対象のファイルディスクリプタ .I fd -¤ò +を .I epfd -¤¬»²¾È¤¹¤ë +が参照する .B epoll -¥¤¥ó¥¹¥¿¥ó¥¹¤«¤éºï½ü¤¹¤ë¡£ +インスタンスから削除する。 .I event -°ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¤Î¤Ç¡¢NULL ¤Ë¤¹¤ë¤³¤È¤â¤Ç¤­¤ë -(⤷¡¢²¼µ­¤Î¡Ö¥Ð¥°¡×¤ò»²¾È)¡£ +引き数は無視されるので、NULL にすることもできる +(但し、下記の「バグ」を参照)。 .PP .I event -°ú¤­¿ô¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +引き数は、ファイルディスクリプタ .I fd -¤Ë¥ê¥ó¥¯¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤òɽ¤¹¡£ +にリンクされたオブジェクトを表す。 .I struct epoll_event -¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë: +は以下のように定義される: .sp .in +4n .nf @@ -97,171 +97,171 @@ typedef union epoll_data { } epoll_data_t; struct epoll_event { - uint32_t events; /* epoll ¥¤¥Ù¥ó¥È */ - epoll_data_t data; /* ¥æ¡¼¥¶¥Ç¡¼¥¿ÊÑ¿ô */ + uint32_t events; /* epoll イベント */ + epoll_data_t data; /* ユーザデータ変数 */ }; .fi .in .I events -¥á¥ó¥Ð¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ê»ÈÍѲÄǽ¤Ê¥¤¥Ù¥ó¥È¥¿¥¤¥×¤ò»È¤Ã¤Æ¹½À®¤µ¤ì¤¿ -¥Ó¥Ã¥È¥»¥Ã¥È¤Ç¤¢¤ë¡£ +メンバは、以下のような使用可能なイベントタイプを使って構成された +ビットセットである。 .TP .B EPOLLIN -´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡¢ +関連付けられたファイルに対して、 .BR read (2) -Áàºî¤¬²Äǽ¤Ç¤¢¤ë¡£ +操作が可能である。 .TP .B EPOLLOUT -´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡¢ +関連付けられたファイルに対して、 .BR write (2) -Áàºî¤¬²Äǽ¤Ç¤¢¤ë¡£ +操作が可能である。 .TP -.BR EPOLLRDHUP" (Linux 2.6.17 °Ê¹ß)" -¥¹¥È¥ê¡¼¥à¥½¥±¥Ã¥È¤Î¾ü¤¬¡¢¥³¥Í¥¯¥·¥ç¥ó¤Î close ¡¢ -¤Þ¤¿¤Ï¥³¥Í¥¯¥·¥ç¥ó¤Î½ñ¤­¹þ¤ß¦¤Î shutdown ¤ò¹Ô¤Ã¤¿¡£ -(¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤È¡¢¥¨¥Ã¥¸¥È¥ê¥¬¤Î´Æ»ë¤ò¹Ô¤¦¾ì¹ç¤Ë¡¢ -ÄÌ¿®¤Î¤â¤¦°ìü¤¬ÊĤ¸¤é¤ì¤¿¤³¤È¤ò¸¡ÃΤ¹¤ë¥³¡¼¥É¤ò -Èó¾ï¤Ë´Ê·é¤Ë½ñ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£) +.BR EPOLLRDHUP" (Linux 2.6.17 以降)" +ストリームソケットの他端が、コネクションの close 、 +またはコネクションの書き込み側の shutdown を行った。 +(このフラグを使うと、エッジトリガの監視を行う場合に、 +通信のもう一端が閉じられたことを検知するコードを +非常に簡潔に書くことができる。) .TP .B EPOLLPRI .BR read (2) -Áàºî¤¬²Äǽ¤Ê¶ÛµÞ (urgent) ¥Ç¡¼¥¿¤¬¤¢¤ë¡£ +操作が可能な緊急 (urgent) データがある。 .TP .B EPOLLERR -´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¥¨¥é¡¼¾ò·ï¤¬µ¯¤³¤Ã¤¿¡£ +関連付けられたファイルディスクリプタにエラー条件が起こった。 .BR epoll_wait (2) -¤Ï¾ï¤Ë¤³¤Î¥¤¥Ù¥ó¥È¤òÂԤĤΤǡ¢ +は常にこのイベントを待つので、 .I events -¤ËÀßÄꤹ¤ëɬÍפϤʤ¤¡£ +に設定する必要はない。 .TP .B EPOLLHUP -´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¥Ï¥ó¥°¥¢¥Ã¥×¤¬µ¯¤³¤Ã¤¿¡£ +関連付けられたファイルディスクリプタにハングアップが起こった。 .BR epoll_wait (2) -¤Ï¾ï¤Ë¤³¤Î¥¤¥Ù¥ó¥È¤òÂԤĤΤǡ¢ +は常にこのイベントを待つので、 .I events -¤ËÀßÄꤹ¤ëɬÍפϤʤ¤¡£ +に設定する必要はない。 .TP .B EPOLLET -´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë -¥¨¥Ã¥¸¥È¥ê¥¬Æ°ºî (Edge Triggered behavior) ¤òÀßÄꤹ¤ë¡£ +関連付けられたファイルディスクリプタに +エッジトリガ動作 (Edge Triggered behavior) を設定する。 .B epoll -¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¡¢¥ì¥Ù¥ë¥È¥ê¥¬ (Level Triggered) ¤Ç¤¢¤ë¡£ -¥¨¥Ã¥¸¥È¥ê¥¬¤È¥ì¥Ù¥ë¥È¥ê¥¬¤Ë¤è¤ë¥¤¥Ù¥ó¥ÈʬÇÛµ¡¹½ -(event distribution architectures) ¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤Ê¾ðÊó¤Ï¡¢ +のデフォルトの動作は、レベルトリガ (Level Triggered) である。 +エッジトリガとレベルトリガによるイベント分配機構 +(event distribution architectures) についての詳細な情報は、 .BR epoll (7) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .TP -.BR EPOLLONESHOT " (Linux 2.6.2 °Ê¹ß)" -´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë -°ì·âÆ°ºî (One-Shot behavior) ¤òÀßÄꤹ¤ë¡£ -¤³¤ì¤Ï¥¤¥Ù¥ó¥È¤¬ +.BR EPOLLONESHOT " (Linux 2.6.2 以降)" +関連付けられたファイルディスクリプタに +一撃動作 (One-Shot behavior) を設定する。 +これはイベントが .BR epoll_wait (2) -¤Ë¤è¤Ã¤Æ°ú¤­½Ð¤µ¤ì¤¿¸å¡¢ -´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÆâÉôŪ¤ËÇË´þ¤µ¤ì¡¢ +によって引き出された後、 +関連付けられたファイルディスクリプタが内部的に破棄され、 .B epoll -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë¤è¤Ã¤Æ¥¤¥Ù¥ó¥È¤¬Êó¹ð¤µ¤ì¤Ê¤¯¤Ê¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -¿·¤·¤¤¥¤¥Ù¥ó¥È¥Þ¥¹¥¯¤Ç¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òºÆÅÙÍ­¸ú¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ +インタフェースによってイベントが報告されなくなることを意味する。 +新しいイベントマスクでファイルディスクリプタを再度有効にするためには、 .BR epoll_ctl () -¤Ë +に .B EPOLL_CTL_MOD -¤ò»ØÄꤷ¤Æ¸Æ¤Ó½Ð¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を指定して呼び出さなければならない。 .I op -°ú¤­¿ô¤Ë»ØÄê¤Ç¤­¤ëÍ­¸ú¤ÊÃͤϡ¢°Ê²¼¤ÎÄ̤ê: -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +引き数に指定できる有効な値は、以下の通り: +.SH 返り値 +成功した場合、 .BR epoll_ctl () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢ +は 0 を返す。 +エラーが起こった場合、 .BR epoll_ctl () -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切に設定する。 +.SH エラー .TP .B EBADF .I epfd -¤« +か .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B EEXIST .I op -¤¬ +が .B EPOLL_CTL_ADD -¤Ç¤¢¤ê¡¢¤«¤ÄÍ¿¤¨¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +であり、かつ与えられたファイルディスクリプタ .I fd -¤¬¤³¤Î epoll ¥¤¥ó¥¹¥¿¥ó¥¹¤Ë´û¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¡£ +がこの epoll インスタンスに既に登録されている。 .TP .B EINVAL .I epfd -¤¬ +が .B epoll -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ -¤Þ¤¿¤Ï +ファイルディスクリプタでない。 +または .I fd -¤¬ +が .I epfd -¤ÈƱ°ì¤Ç¤¢¤ë¡£ -¤Þ¤¿¤ÏÍ׵ᤵ¤ì¤¿Áàºî +と同一である。 +または要求された操作 .I op -¤¬¤³¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +がこのインタフェースでサポートされていない。 .TP .B ENOENT .I op -¤¬ +が .B EPOLL_CTL_MOD -¤Þ¤¿¤Ï +または .B EPOLL_CTL_DEL -¤Ç¡¢¤«¤Ä +で、かつ .I fd -¤¬¤³¤Î epoll ¥¤¥ó¥¹¥¿¥ó¥¹¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +がこの epoll インスタンスに登録されていない。 .TP .B ENOMEM -Í׵ᤵ¤ì¤¿ +要求された .I op -À©¸æÁàºî¤ò°·¤¦¤Î¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +制御操作を扱うのに十分なメモリがない。 .TP .B ENOSPC -epoll ¥¤¥ó¥¹¥¿¥ó¥¹¤Ë¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÅÐÏ¿ +epoll インスタンスに新しいファイルディスクリプタを登録 .RB ( EPOLL_CTL_ADD ) -¤·¤è¤¦¤È¤·¤¿ºÝ¤Ë¡¢ +しようとした際に、 .I /proc/sys/fs/epoll/max_user_watches -¤Ç·è¤Þ¤ë¾å¸Â¤Ë㤷¤¿¡£ -¾ÜºÙ¤Ï +で決まる上限に達した。 +詳細は .BR epoll (7) -¤ò»²¾È¡£ +を参照。 .TP .B EPERM -Âоݥե¡¥¤¥ë +対象ファイル .I fd -¤¬ +が .B epoll -¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ -.SH ½àµò +をサポートしていない。 +.SH 準拠 .BR epoll_ctl () -¤Ï Linux Æȼ«¤Ç¤¢¤ê¡¢¥«¡¼¥Í¥ë 2.5.44 ¤ÇƳÆþ¤µ¤ì¤¿¡£ -.\" ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï Linux ¥«¡¼¥Í¥ë 2.5.66 ¤Ç³ÎÄꤵ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -.SH È÷¹Í +は Linux 独自であり、カーネル 2.5.44 で導入された。 +.\" インタフェースは Linux カーネル 2.5.66 で確定されるべきである。 +.SH 備考 .B epoll -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¡¢ +インタフェースは、 .BR poll (2) -¤ËÂбþ¤·¤Æ¤¤¤ëÁ´¤Æ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂбþ¤·¤Æ¤¤¤ë¡£ -.SH ¥Ð¥° -Linux 2.6.9 ¤è¤êÁ°¤Ç¤Ï¡¢ +に対応している全てのファイルディスクリプタに対応している。 +.SH バグ +Linux 2.6.9 より前では、 .B EPOLL_CTL_DEL -Áàºî¤ÎºÝ¡¢°ú¤­¿ô +操作の際、引き数 .I event -¤Ë (¤¿¤È¤¨Ìµ»ë¤µ¤ì¤ë¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â) NULL ¤Ç¤Ê¤¤¥Ý¥¤¥ó¥¿¤òÅϤ¹É¬Íפ¬¤¢¤Ã¤¿¡£ -¥«¡¼¥Í¥ë 2.6.9 °Ê¹ß¤Ç¤Ï¡¢ +に (たとえ無視される場合であっても) NULL でないポインタを渡す必要があった。 +カーネル 2.6.9 以降では、 .B EPOLL_CTL_DEL -¤ò»È¤¦ºÝ¤Ë +を使う際に .I event -¤Ë NULL ¤ò»ØÄê¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -2.6.9 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ø¤Î°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ +に NULL を指定できるようになっている。 +2.6.9 より前のカーネルへの移植性が必要なアプリケーションでは、 .I event -¤Ë NULL ¤Ç¤Ê¤¤¥Ý¥¤¥ó¥¿¤ò»ØÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +に NULL でないポインタを指定すべきである。 +.SH 関連項目 .BR epoll_create (2), .BR epoll_wait (2), .BR poll (2), diff --git a/release/man2/epoll_wait.2 b/release/man2/epoll_wait.2 index a4c138b0..21e0c192 100644 --- a/release/man2/epoll_wait.2 +++ b/release/man2/epoll_wait.2 @@ -29,9 +29,9 @@ .\" Updated 2009-02-23, Akihiro MOTOKI , LDP v3.18 .\" .TH EPOLL_WAIT 2 2009-01-17 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -epoll_wait, epoll_pwait \- epoll ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î I/O ¥¤¥Ù¥ó¥È¤òÂÔ¤Ä -.SH ½ñ¼° +.SH 名前 +epoll_wait, epoll_pwait \- epoll ファイルディスクリプタの I/O イベントを待つ +.SH 書式 .nf .B #include .sp @@ -41,39 +41,39 @@ epoll_wait, epoll_pwait \- epoll .BI " int " maxevents ", int " timeout , .BI " const sigset_t *" sigmask ); .fi -.SH ÀâÌÀ +.SH 説明 .BR epoll_wait () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +システムコールは、 +ファイルディスクリプタ .I epfd -¤Ç»²¾È¤µ¤ì¤ë +で参照される .B epoll -¥¤¥ó¥¹¥¿¥ó¥¹¤ËÂФ¹¤ë¥¤¥Ù¥ó¥È¤òÂԤġ£ +インスタンスに対するイベントを待つ。 .I events -¤¬»Ø¤¹¥á¥â¥êÎΰè¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·Â¦¤¬ÍøÍѲÄǽ¤Ê¥¤¥Ù¥ó¥È¤¬³ÊǼ¤µ¤ì¤ë¡£ -ºÇÂç +が指すメモリ領域には、呼び出し側が利用可能なイベントが格納される。 +最大 .I maxevents -¸Ä¤Î¥¤¥Ù¥ó¥È¤¬ +個のイベントが .BR epoll_wait () -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë¡£ +によって返される。 .I maxevents -°ú¤­¿ô¤Ï 0 ¤è¤êÂ礭¤¯¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数は 0 より大きくなければならない。 -ºÇÂç¤Ç +最大で .I timeout -¥ß¥êÉô֥¤¥Ù¥ó¥È¤òÂԤġ£ +ミリ秒間イベントを待つ。 .I timeout -¤ò \-1 ¤Ë»ØÄꤹ¤ë¤È¡¢ +を \-1 に指定すると、 .BR epoll_wait () -¤Ï̵¸Â¤ËÂԤġ£ -¤Þ¤¿ +は無限に待つ。 +また .I timeout -¤ò 0 ¤Ë»ØÄꤹ¤ë¤È¡¢ +を 0 に指定すると、 .BR epoll_wait () -¤Ï¥¤¥Ù¥ó¥È¤¬ÍøÍѲÄǽ¤Ç¤Ê¤¯¤Æ¤â¡¢¤¹¤°¤ËÊÖ¤ë (ÊÖ¤êÃÍ¤Ï 0 ¤Ç¤¢¤ë)¡£ +はイベントが利用可能でなくても、すぐに返る (返り値は 0 である)。 .I struct epoll_event -¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë: +は以下のように定義される: .sp .in +4n .nf @@ -85,47 +85,47 @@ typedef union epoll_data { } epoll_data_t; struct epoll_event { - uint32_t events; /* epoll ¥¤¥Ù¥ó¥È */ - epoll_data_t data; /* ¥æ¡¼¥¶¥Ç¡¼¥¿ÊÑ¿ô */ + uint32_t events; /* epoll イベント */ + epoll_data_t data; /* ユーザデータ変数 */ }; .fi .in -ÊÖ¤µ¤ì¤ë¹½Â¤ÂΤΠ+返される構造体の .I data -¥á¥ó¥Ð¤Ë¤Ï¡¢¥æ¡¼¥¶¤¬ +メンバには、ユーザが .BR epoll_ctl (2) .RB ( EPOLL_CTL_ADD ", " EPOLL_CTL_MOD ) -¤Ç»ØÄꤷ¤¿¥Ç¡¼¥¿¤¬³ÊǼ¤µ¤ì¤ë¡£ -°ìÊý¡¢ +で指定したデータが格納される。 +一方、 .I events -¥á¥ó¥Ð¤Ë¤ÏÊÖ¤µ¤ì¤¿ÍøÍѲÄǽ¤Ê¥¤¥Ù¥ó¥È¤Î¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤¬³ÊǼ¤µ¤ì¤ë¡£ +メンバには返された利用可能なイベントのビットフィールドが格納される。 .SS epoll_pwait() .BR epoll_wait () -¤È +と .BR epoll_pwait () -¤Î´Ø·¸¤Ï¡¢ +の関係は、 .BR select (2) -¤È +と .BR pselect (2) -¤Î´Ø·¸¤ÈƱÍͤǤ¢¤ë¡£ +の関係と同様である。 .BR pselect (2) -ƱÍÍ¡¢ +同様、 .BR epoll_pwait () -¤ò»È¤¦¤È¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬½àÈ÷¤Ç¤­¤¿¾õÂ֤ˤʤ뤫¡¢ -¥·¥°¥Ê¥ë¤¬Ê᪤µ¤ì¤ë¤Þ¤Ç¡¢°ÂÁ´¤ËÂԤĤ³¤È¤¬¤Ç¤­¤ë¡£ +を使うと、アプリケーションは、ファイルディスクリプタが準備できた状態になるか、 +シグナルが捕捉されるまで、安全に待つことができる。 -°Ê²¼¤Î +以下の .BR epoll_pwait () -¤Î¸Æ¤Ó½Ð¤·¤Ï¡¢ +の呼び出しは、 .nf ready = epoll_pwait(epfd, &events, maxevents, timeout, &sigmask); .fi -¼¡¤Î¸Æ¤Ó½Ð¤·¤ò +次の呼び出しを .I atomic -¤Ë¼Â¹Ô¤¹¤ë¤Î¤ÈÅù²Á¤Ç¤¢¤ë¡£ +に実行するのと等価である。 .nf sigset_t origmask; @@ -136,60 +136,60 @@ struct epoll_event { .fi .PP .I sigmask -°ú¤­¿ô¤Ë¤Ï NULL ¤ò»ØÄꤷ¤Æ¤â¤è¤¤¡£ -¤½¤Î¾ì¹ç¤Ë¤Ï¡¢ +引き数には NULL を指定してもよい。 +その場合には、 .BR epoll_pwait () -¤Ï +は .BR epoll_wait () -¤ÈÅù²Á¤È¤Ê¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +と等価となる。 +.SH 返り値 +成功した場合、 .BR epoll_wait () -¤ÏÍ׵ᤵ¤ì¤¿ I/O ¤ËÂФ·¤Æ½àÈ÷¤¬¤Ç¤­¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¿ô¤òÊÖ¤¹¡£ -¤Þ¤¿Í׵ᤵ¤ì¤¿ +は要求された I/O に対して準備ができているファイルディスクリプタの数を返す。 +また要求された .I timeout -¥ß¥êÉäδ֤˥ե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬½àÈ÷¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¡¢0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢ +ミリ秒の間にファイルディスクリプタが準備できない場合は、0 を返す。 +エラーが起こった場合、 .BR epoll_wait () -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切に設定する。 +.SH エラー .TP .B EBADF .I epfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B EFAULT .I events -¤Ç»Ø¤µ¤ì¤ë¥á¥â¥êÎΰè¤Ë½ñ¤­¹þ¤ß¸¢¸Â¤Ç¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¡£ +で指されるメモリ領域に書き込み権限でアクセスできない。 .TP .B EINTR -Í׵ᤵ¤ì¤¿¤É¤Î¥¤¥Ù¥ó¥È¤âȯÀ¸¤»¤º¡¢¤«¤Ä +要求されたどのイベントも発生せず、かつ .I timeout -¤Î´ü¸Â¤¬ÀÚ¤ì¤ëÁ°¤Ë¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿¡£ +の期限が切れる前に、システムコールがシグナルハンドラによって割り込まれた。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .I epfd -¤¬ +が .B epoll -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ -¤Þ¤¿¤Ï +ファイルディスクリプタでない。 +または .I maxevents -¤¬ 0 °Ê²¼¤Ç¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +が 0 以下である。 +.SH バージョン .BR epoll_pwait () -¤Ï¥«¡¼¥Í¥ë 2.6.19 ¤Ç Linux ¤ËÄɲ䵤줿¡£ +はカーネル 2.6.19 で Linux に追加された。 .BR epoll_pwait () -¤Î glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï glibc 2.6 °Ê¹ß¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò +の glibc でのサポートは glibc 2.6 以降で提供されている。 +.SH 準拠 .BR epoll_wait () -¤Ï Linux Æȼ«¤Ç¤¢¤ê¡¢¥«¡¼¥Í¥ë 2.5.44 ¤ÇƳÆþ¤µ¤ì¤¿¡£ -.\" ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï Linux ¥«¡¼¥Í¥ë 2.5.66 ¤Ç³ÎÄꤵ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +は Linux 独自であり、カーネル 2.5.44 で導入された。 +.\" インタフェースは Linux カーネル 2.5.66 で確定されるべきである。 +.SH 関連項目 .BR epoll_create (2), .BR epoll_ctl (2), .BR epoll (7) diff --git a/release/man2/eventfd.2 b/release/man2/eventfd.2 index d7a3d233..e73e0b07 100644 --- a/release/man2/eventfd.2 +++ b/release/man2/eventfd.2 @@ -24,199 +24,199 @@ .\" Updated 2008-11-10, Akihiro MOTOKI , LDP v3.13 .\" .TH EVENTFD 2 2009-01-26 Linux "Linux Programmer's Manual" -.SH ̾Á° -eventfd \- ¥¤¥Ù¥ó¥ÈÄÌÃÎÍѤΥե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÀ¸À®¤¹¤ë -.SH ½ñ¼° +.SH 名前 +eventfd \- イベント通知用のファイルディスクリプタを生成する +.SH 書式 .B #include .sp .BI "int eventfd(unsigned int " initval ", int " flags ); -.SH ÀâÌÀ +.SH 説明 .BR eventfd () -¤Ï "eventfd ¥ª¥Ö¥¸¥§¥¯¥È" ¤òÀ¸À®¤¹¤ë¡£ -eventfd ¥ª¥Ö¥¸¥§¥¯¥È¤Ï¥æ¡¼¥¶¶õ´Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¥¤¥Ù¥ó¥ÈÂÔ¤Á¼õ¤±/ÄÌÃÎÍѤΠ-»ÅÁȤߤȤ·¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£¤Þ¤¿¡¢¥«¡¼¥Í¥ë¤¬¥æ¡¼¥¶¶õ´Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë -¥¤¥Ù¥ó¥È¤òÄÌÃΤ¹¤ë¤¿¤á¤Ë¤â»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ï¡¢unsigned ¤Î 64 ¥Ó¥Ã¥ÈÀ°¿ô +は "eventfd オブジェクト" を生成する。 +eventfd オブジェクトはユーザ空間アプリケーションがイベント待ち受け/通知用の +仕組みとして使うことができる。また、カーネルがユーザ空間アプリケーションに +イベントを通知するためにも使うことができる。 +このオブジェクトには、unsigned の 64 ビット整数 .RI ( uint64_t ) -·¿¤Î¥«¥¦¥ó¥¿¤¬´Þ¤Þ¤ì¤Æ¤ª¤ê¡¢¤³¤Î¥«¥¦¥ó¥¿¤Ï¥«¡¼¥Í¥ë¤Ë¤è¤ê´ÉÍý¤µ¤ì¤ë¡£ -¤³¤Î¥«¥¦¥ó¥¿¤Ï +型のカウンタが含まれており、このカウンタはカーネルにより管理される。 +このカウンタは .I initval -°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿Ãͤǽé´ü²½¤µ¤ì¤ë¡£ +引き数で指定された値で初期化される。 -Linux 2.6.27 °Ê¹ß¤Ç¤Ï¡¢ -°Ê²¼¤ÎÃͤΤ¤¤¯¤Ä¤«¤ò¥Ó¥Ã¥Èñ°Ì¤ÎÏÀÍýÏ (OR) ¤Ç»ØÄꤹ¤ë¤³¤È¤Ç¡¢ +Linux 2.6.27 以降では、 +以下の値のいくつかをビット単位の論理和 (OR) で指定することで、 .BR eventfd () -¤Î¿¶Éñ¤¤¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +の振舞いを変更することができる。 .TP 14 .B EFD_NONBLOCK -¿·¤·¤¯À¸À®¤µ¤ì¤ë¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò (open file description) ¤Î +新しく生成されるオープンファイル記述 (open file description) の .B O_NONBLOCK -¥Õ¥¡¥¤¥ë¥¹¥Æ¡¼¥¿¥¹¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤³¤È¤Ç¡¢ +ファイルステータスフラグをセットする。 +このフラグを使うことで、 .B O_NONBLOCK -¤ò¥»¥Ã¥È¤¹¤ë¤¿¤á¤Ë +をセットするために .BR fcntl (2) -¤òÄɲäǸƤӽФ¹É¬Íפ¬¤Ê¤¯¤Ê¤ë¡£ +を追加で呼び出す必要がなくなる。 .TP .B EFD_CLOEXEC -¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ +新しいファイルディスクリプタに対して close-on-exec .RB ( FD_CLOEXEC ) -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬Ìò¤ËΩ¤ÄÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +フラグをセットする。 +このフラグが役に立つ理由については、 .BR open (2) -¤Î +の .B O_CLOEXEC -¥Õ¥é¥°¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +フラグの説明を参照のこと。 .PP -¥Ð¡¼¥¸¥ç¥ó 2.6.26 °ÊÁ°¤Î Linux ¤Ç¤Ï¡¢ +バージョン 2.6.26 以前の Linux では、 .I flags -°ú¤­¿ô¤Ï̤»ÈÍѤǤ¢¤ê¡¢0 ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数は未使用であり、0 を指定しなければならない。 .BR eventfd () -¤Ï eventfd ¥ª¥Ö¥¸¥§¥¯¥È¤ò»²¾È¤¹¤ë¤Î¤Ë»ÈÍѤǤ­¤ë¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ -¤òÊÖ¤¹¡£ÊÖ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ¤Ï°Ê²¼¤ÎÁàºî¤ò¼Â¹Ô¤Ç¤­¤ë¡£ +は eventfd オブジェクトを参照するのに使用できる新しいファイルディスクリプタ +を返す。返されたファイルディスクリプタに対しては以下の操作を実行できる。 .TP .BR read (2) -eventfd ¥«¥¦¥ó¥¿¤¬ 0 °Ê³°¤ÎÃͤξì¹ç¡¢ +eventfd カウンタが 0 以外の値の場合、 .BR read (2) -¤Ï¥«¥¦¥ó¥¿Ãͤò³ÊǼ¤·¤¿ 8 ¥Ð¥¤¥È¤ÎÃͤòÊÖ¤·¡¢ -¥«¥¦¥ó¥¿ÃÍ¤Ï 0 ¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë -(ÊÖ¤êÃͤϥۥ¹¥È¡¦¥Ð¥¤¥È¥ª¡¼¥À¡¢¤Ä¤Þ¤ê -¥Û¥¹¥È¥Þ¥·¥ó¤ÇÀ°¿ôɽ¸½¤ËËÜÍè»ÈÍѤµ¤ì¤ë¥Ð¥¤¥È¥ª¡¼¥À¤Ç³ÊǼ¤µ¤ì¤ë)¡£ +はカウンタ値を格納した 8 バイトの値を返し、 +カウンタ値は 0 にリセットされる +(返り値はホスト・バイトオーダ、つまり +ホストマシンで整数表現に本来使用されるバイトオーダで格納される)。 .IP .BR read (2) -¤Î»þÅÀ¤Ç¥«¥¦¥ó¥¿¤¬ 0 ¤Î¾ì¹ç¡¢ +の時点でカウンタが 0 の場合、 .BR read (2) -¤Ï¥«¥¦¥ó¥¿¤¬ 0 °Ê³°¤Ë¤Ê¤ë¤Þ¤ÇÄä»ß (block) ¤¹¤ë¡¢ -¤â¤·¤¯¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÈóÄä»ß (nonblocking) -¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¥¨¥é¡¼ +はカウンタが 0 以外になるまで停止 (block) する、 +もしくはファイルディスクリプタが非停止 (nonblocking) +に設定されている場合はエラー .B EAGAIN -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .IP -ÅϤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ¤¬ 8 ¥Ð¥¤¥È̤Ëþ¤Î¾ì¹ç¡¢ +渡されたバッファの大きさが 8 バイト未満の場合、 .BR read (2) -¤Ï¥¨¥é¡¼ +はエラー .B EINVAL -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .TP .BR write (2) .BR write (2) -¤Ï¡¢°ú¤­¿ô¤Î¥Ð¥Ã¥Õ¥¡¤ÇÅϤµ¤ì¤¿ 8 ¥Ð¥¤¥È¤ÎÀ°¿ôÃͤò¥«¥¦¥ó¥¿¤Ë²Ã»»¤¹¤ë¡£ -¥«¥¦¥ó¥¿¤Ë³ÊǼ²Äǽ¤ÊºÇÂçÃÍ¤Ï unsigned ¤Î 64 ¥Ó¥Ã¥ÈÀ°¿ô¤ÎºÇÂçÃͤ«¤é -1 ¤ò°ú¤¤¤¿ÃÍ (¤¹¤Ê¤ï¤Á 0xfffffffffffffffe) ¤Ç¤¢¤ë¡£ -²Ã»»¤ò¹Ô¤¦¤È¥«¥¦¥ó¥¿Ãͤ¬ºÇÂçÃͤòĶ²á¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ +は、引き数のバッファで渡された 8 バイトの整数値をカウンタに加算する。 +カウンタに格納可能な最大値は unsigned の 64 ビット整数の最大値から +1 を引いた値 (すなわち 0xfffffffffffffffe) である。 +加算を行うとカウンタ値が最大値を超過する場合には、 +そのファイルディスクリプタに対して .BR read (2) -¤¬¼Â¹Ô¤µ¤ì¤ë¤Þ¤Ç¡¢ +が実行されるまで、 .BR write (2) -¤ÏÄä»ß (block) ¤¹¤ë¡¢ -¤â¤·¤¯¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÈóÄä»ß (nonblocking) -¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¥¨¥é¡¼ +は停止 (block) する、 +もしくはファイルディスクリプタが非停止 (nonblocking) +に設定されている場合はエラー .B EAGAIN -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .IP -ÅϤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ¤¬ 8 ¥Ð¥¤¥È̤Ëþ¤Î¾ì¹ç¡¢¤â¤·¤¯¤Ï -ÃÍ 0xffffffffffffffff ¤ò½ñ¤­¹þ¤â¤¦¤È¤·¤¿¾ì¹ç¡¢ +渡されたバッファの大きさが 8 バイト未満の場合、もしくは +値 0xffffffffffffffff を書き込もうとした場合、 .BR write (2) -¤Ï¥¨¥é¡¼ +はエラー .B EINVAL -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .TP -.BR poll "(2), " select "(2) (¤ÈƱÍͤÎÁàºî)" -ÊÖ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢ +.BR poll "(2), " select "(2) (と同様の操作)" +返されたファイルディスクリプタは、 .BR poll (2) .RB ( epoll (7) -¤âƱ¤¸) ¤ä +も同じ) や .BR select (2) -¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤ª¤ê¡¢°Ê²¼¤Î¤è¤¦¤ÊÆ°ºî¤ò¤¹¤ë¡£ +をサポートしており、以下のような動作をする。 .RS .IP * 3 -¥«¥¦¥ó¥¿¤¬ 0 ¤è¤êÂ礭¤¤Ãͤξì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÆɤ߽Ф·²Äǽ¤È¤Ê¤ë +カウンタが 0 より大きい値の場合、 +ファイルディスクリプタは読み出し可能となる .RB ( select (2) -¤Î +の .I readfds -°ú¤­¿ô¤ä +引き数や .BR poll (2) -¤Î +の .B POLLIN -¥Õ¥é¥°)¡£ +フラグ)。 .IP * -¾¯¤Ê¤¯¤È¤âÃÍ "1" ¤ò¡¢Ää»ß (block) ¤òȼ¤ï¤º¤Ë½ñ¤­¹þ¤á¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï½ñ¤­¹þ¤ß²Äǽ¤È¤Ê¤ë +少なくとも値 "1" を、停止 (block) を伴わずに書き込める場合、 +ファイルディスクリプタは書き込み可能となる .RB ( select (2) -¤Î +の .I writefds -°ú¤­¿ô¤ä +引き数や .BR poll (2) -¤Î +の .B POLLOUT -¥Õ¥é¥°)¡£ +フラグ)。 .IP * -¥«¥¦¥ó¥¿ÃͤΥª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬¸¡½Ð¤µ¤ì¤¿¾ì¹ç¡¢ +カウンタ値のオーバーフローが検出された場合、 .BR select (2) -¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÆɤ߽Ф·²Äǽ¤È½ñ¤­¹þ¤ß²Äǽ¤ÎξÊý¤òÄÌÃΤ·¡¢ +はファイルディスクリプタは読み出し可能と書き込み可能の両方を通知し、 .BR poll (2) -¤Ï +は .B POLLERR -¥¤¥Ù¥ó¥È¤òÊÖ¤¹¡£ -¾å½Ò¤ÎÄ̤ꡢ +イベントを返す。 +上述の通り、 .BR write (2) -¤Ç¥«¥¦¥ó¥¿¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¤³¤È¤Ï·è¤·¤Æ¤Ê¤¤¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢ KAIO ¥µ¥Ö¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ 2^64 ²ó¤Î eventfd "signal posts" ¤¬ -¼Â¹Ô¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬µ¯¤³¤êÆÀ¤ë -(ÍýÏÀŪ¤Ë¤Ï¤¢¤êÆÀ¤ë¤¬¡¢¼ÂÍÑŪ¤Ë¤Ï¤¢¤êÆÀ¤Ê¤¤)¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¡¢ +でカウンタがオーバーフローすることは決してない。 +しかしながら、 KAIO サブシステムによって 2^64 回の eventfd "signal posts" が +実行された場合にはオーバーフローが起こり得る +(理論的にはあり得るが、実用的にはあり得ない)。 +オーバーフローが発生した場合、 .BR read (2) -¤Ï +は .I uint64_t -¤ÎºÇÂçÃÍ (¤¹¤Ê¤ï¤Á 0xffffffffffffffff) ¤òÊÖ¤¹¡£ +の最大値 (すなわち 0xffffffffffffffff) を返す。 .RE .IP -eventfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢¤³¤ì°Ê³°¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ -¿½Å API ¤Ç¤¢¤ë +eventfd ファイルディスクリプタは、これ以外のファイルディスクリプタ +多重 API である .BR pselect (2), .BR ppoll (2), .BR epoll (7) -¤â¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ +もサポートしている。 .TP .BR close (2) -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¤½¤ì°Ê¹ß¤ÏɬÍפʤ¯¤Ê¤Ã¤¿ºÝ¤Ë¤Ï¡¢¥¯¥í¡¼¥º¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -Ʊ¤¸ eventfd ¥ª¥Ö¥¸¥§¥¯¥È¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Á´¤Æ -¥¯¥í¡¼¥º¤µ¤ì¤ë¤È¡¢¤½¤Î¥ª¥Ö¥¸¥§¥¯¥ÈÍѤλñ¸»¤¬¥«¡¼¥Í¥ë¤Ë¤è¤ê²òÊü¤µ¤ì¤ë¡£ +ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきである。 +同じ eventfd オブジェクトに関連付けられたファイルディスクリプタが全て +クローズされると、そのオブジェクト用の資源がカーネルにより解放される。 .PP .BR fork (2) -¤ÇÀ¸À®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢ +で生成された子プロセスは、 .BR eventfd () -¤ÇÀ¸À®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£ -Ê£À½¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏƱ¤¸ eventfd ¥ª¥Ö¥¸¥§¥¯¥È¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤ë¡£ +で生成されたファイルディスクリプタのコピーを継承する。 +複製されたファイルディスクリプタは同じ eventfd オブジェクトに関連付けられる。 .BR execve (2) -¤ÎÁ°¸å¤Ç +の前後で .BR eventfd () -¤ÇÀ¸À®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÊÝ»ý¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +で生成されたファイルディスクリプタは保持される。 +.SH 返り値 +成功すると、 .BR eventfd () -¤Ï¿·µ¬¤Î eventfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は新規の eventfd ファイルディスクリプタを返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値を設定する。 +.SH エラー .TP .B EINVAL .I flags -¤¬Ìµ¸ú¡£ -Linux 2.6.26 °ÊÁ°¤Ç¤Ï¡¢ +が無効。 +Linux 2.6.26 以前では、 .I flags -¤¬ 0 °Ê³°¤ÎÃÍ¡£ +が 0 以外の値。 .TP .B EMFILE -¥ª¡¼¥×¥óºÑ¤ß¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¿ô¤¬¥×¥í¥»¥¹¤¢¤¿¤ê¤Î¾å¸Â¤Ë -㤷¤Æ¤¤¤¿¡£ +オープン済みのファイルディスクリプタの数がプロセスあたりの上限に +達していた。 .TP .B ENFILE -¥ª¡¼¥×¥óºÑ¤ß¤Î¥Õ¥¡¥¤¥ëÁí¿ô¤¬¥·¥¹¥Æ¥àÁ´ÂΤξå¸Â¤Ë㤷¤Æ¤¤¤¿¡£ +オープン済みのファイル総数がシステム全体の上限に達していた。 .TP .B ENODEV .\" Note from Davide: @@ -224,79 +224,79 @@ Linux 2.6.26 .\" the kernel boots correctly. That error happen only if during .\" the kernel initialization, some error occur in the anonymous .\" inode source initialization. -(¥«¡¼¥Í¥ëÆâ¤Î) ̵̾ inode ¥Ç¥Ð¥¤¥¹¤ò¥Þ¥¦¥ó¥È¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +(カーネル内の) 無名 inode デバイスをマウントできなかった。 .TP .B ENOMEM -¿·¤·¤¤ eventfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÀ¸À®¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤«¤Ã¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +新しい eventfd ファイルディスクリプタを生成するのに十分なメモリがなかった。 +.SH バージョン .BR eventfd () -¤Ï¥«¡¼¥Í¥ë 2.6.22 °Ê¹ß¤Î Linux ¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -Àµ¤·¤¯Æ°ºî¤¹¤ë glibc ¦¤Î¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.8 °Ê¹ß¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +はカーネル 2.6.22 以降の Linux で利用可能である。 +正しく動作する glibc 側のサポートはバージョン 2.8 以降で提供されている。 .\" eventfd() is in glibc 2.7, but reportedly does not build .BR eventfd2 () -¥·¥¹¥Æ¥à¥³¡¼¥ë (¡ÖÃí°Õ¡×»²¾È) ¤Ï -¥«¡¼¥Í¥ë 2.6.27 °Ê¹ß¤Î Linux ¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -¥Ð¡¼¥¸¥ç¥ó 2.9 °Ê¹ß¤Ç¤Ï¡¢glibc ¤Î +システムコール (「注意」参照) は +カーネル 2.6.27 以降の Linux で利用可能である。 +バージョン 2.9 以降では、glibc の .BR eventfd () -¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢¥«¡¼¥Í¥ë¤¬Âбþ¤·¤Æ¤¤¤ì¤Ð +のラッパー関数は、カーネルが対応していれば .BR eventfd2 () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÍøÍѤ¹¤ë¡£ -.SH ½àµò +システムコールを利用する。 +.SH 準拠 .BR eventfd () -¤È +と .BR eventfd2 () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢¥Ñ¥¤¥×¤ò¥¤¥Ù¥ó¥È¤òÄÌÃΤ¹¤ë¤¿¤á¤À¤±¤Ë»ÈÍѤ·¤Æ¤¤¤ë -Á´¤Æ¤Î¾ìÌ̤ˤª¤¤¤Æ¡¢¥Ñ¥¤¥×¤ÎÂå¤ï¤ê¤Ë eventfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò -»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -eventfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò»È¤¦Êý¤¬¡¢¥Ñ¥¤¥×¤ò»È¤¦¾ì¹ç¤ËÈæ¤Ù¤Æ -¥«¡¼¥Í¥ë¤Ç¤Î¥ª¡¼¥Ð¥Ø¥Ã¥É¤ÏÈæ¤Ù¤ë¤È¤º¤Ã¤È¾®¤µ¤¯¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤â -°ì¤Ä¤·¤«É¬ÍפȤ·¤Ê¤¤ (¥Ñ¥¤¥×¤Î¾ì¹ç¤ÏÆó¤ÄɬÍפǤ¢¤ë)¡£ +は Linux 固有である。 +.SH 注意 +アプリケーションは、パイプをイベントを通知するためだけに使用している +全ての場面において、パイプの代わりに eventfd ファイルディスクリプタを +使用することができる。 +eventfd ファイルディスクリプタを使う方が、パイプを使う場合に比べて +カーネルでのオーバヘッドは比べるとずっと小さく、ファイルディスクリプタも +一つしか必要としない (パイプの場合は二つ必要である)。 -¥«¡¼¥Í¥ëÆâ¤Ç»ÈÍѤ¹¤ë¤È¡¢eventfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï -¥«¡¼¥Í¥ë¶õ´Ö¤È¥æ¡¼¥¶¶õ´Ö¤Î¥Ö¥ê¥Ã¥¸µ¡Ç½¤òÄ󶡤¹¤ë¤³¤È¤¬¤Ç¤­¡¢ -Î㤨¤Ð KAIO (kernel AIO) -.\" ¤ä eventually syslets/threadlets -¤Î¤è¤¦¤Êµ¡Ç½¤¬¡¢¤¢¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë²¿¤é¤«¤ÎÁàºî¤¬´°Î»¤·¤¿¤³¤È¤ò -ÄÌÃΤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +カーネル内で使用すると、eventfd ファイルディスクリプタは +カーネル空間とユーザ空間のブリッジ機能を提供することができ、 +例えば KAIO (kernel AIO) +.\" や eventually syslets/threadlets +のような機能が、あるファイルディスクリプタに何らかの操作が完了したことを +通知することができる。 -eventfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î½ÅÍפÊÅÀ¤Ï¡¢ -eventfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ +eventfd ファイルディスクリプタの重要な点は、 +eventfd ファイルディスクリプタが .BR select (2), .BR poll (2), .BR epoll (7) -¤ò»È¤Ã¤Æ¾¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÈÁ´¤¯Æ±Íͤ˴ƻë¤Ç¤­¤ëÅÀ¤Ç¤¢¤ë¡£ -¤³¤Î¤³¤È¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡Ö½¾Íè¤Î (traditional)¡× ¥Õ¥¡¥¤¥ë¤Î¾õÂÖÊѲ½¤È -eventfd ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò¥µ¥Ý¡¼¥È¤¹¤ë¾¤Î¥«¡¼¥Í¥ëµ¡¹½¤Î¾õÂÖÊѲ½¤òƱ»þ¤Ë´Æ»ë -¤Ç¤­¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë +を使って他のファイルディスクリプタと全く同様に監視できる点である。 +このことは、アプリケーションは「従来の (traditional)」 ファイルの状態変化と +eventfd インタフェースをサポートする他のカーネル機構の状態変化を同時に監視 +できることを意味する .RB ( eventfd () -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¬¤Ê¤¤»þ¤Ë¤Ï¡¢¤³¤ì¤é¤Î¥«¡¼¥Í¥ëµ¡¹½¤Ï +インタフェースがない時には、これらのカーネル機構は .BR select (2), .BR poll (2), .BR epoll (7) -·Ðͳ¤Ç¿½Å¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤«¤Ã¤¿)¡£ -.SS ²¼Áؤˤ¢¤ë Linux ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë -²¼Áؤˤ¢¤ë Linux ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÆó¼ïÎढ¤ê¡¢ +経由で多重することはできなかった)。 +.SS 下層にある Linux のシステムコール +下層にある Linux システムコールは二種類あり、 .BR eventfd () -¤È¡¢¤â¤Ã¤È¿·¤·¤¤ +と、もっと新しい .BR eventfd2 () -¤Ç¤¢¤ë¡£ +である。 .BR eventfd () -¤Ï +は .I flags -°ú¤­¿ô¤ò¼ÂÁõ¤·¤Æ¤¤¤Ê¤¤¡£ +引き数を実装していない。 .BR eventfd2 () -¤Ç¤Ï¾åµ­¤ÎÃͤΠ+では上記の値の .I flags -¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢ +が実装されている。 +glibc のラッパー関数は、 .BR eventfd2 () -¤¬ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢¤³¤ì¤ò»ÈÍѤ¹¤ë¡£ -.SS glibc ¤ÎÄɲõ¡Ç½ -GNU C ¥é¥¤¥Ö¥é¥ê¤Ï¡¢eventfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÆɤ߽Ф·¤È½ñ¤­¹þ¤ß¤Ë -¤ò´Ø¤¹¤ë¾ÜºÙ¤Î¤¤¤¯¤Ä¤«Ãê¾Ý²½¤¹¤ë¤¿¤á¤Ë¡¢°ì¤Ä¤Î·¿¤È¡¢Æó¤Ä¤Î´Ø¿ô¤òÄÉ²Ã¤Ç -ÄêµÁ¤·¤Æ¤¤¤ë¡£ +が利用可能であれば、これを使用する。 +.SS glibc の追加機能 +GNU C ライブラリは、eventfd ファイルディスクリプタの読み出しと書き込みに +を関する詳細のいくつか抽象化するために、一つの型と、二つの関数を追加で +定義している。 .in +4n .nf @@ -307,20 +307,20 @@ int eventfd_write(int fd, eventfd_t value); .fi .in -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢eventfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ¹¤ëÆɤ߽Ф·¤È -½ñ¤­¹þ¤ß¤ÎÁàºî¤ò¼Â¹Ô¤·¡¢Àµ¤·¤¤¥Ð¥¤¥È¿ô¤¬Å¾Á÷¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï -0 ¤òÊÖ¤·¡¢¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ -.SH Îã +これらの関数は、eventfd ファイルディスクリプタに対する読み出しと +書き込みの操作を実行し、正しいバイト数が転送された場合には +0 を返し、そうでない場合は \-1 を返す。 +.SH 例 .PP -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï eventfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÀ¸À®¤·¡¢ -¤½¤Î¸å fork ¤ò¼Â¹Ô¤·¤Æ»Ò¥×¥í¥»¥¹¤òÀ¸À®¤¹¤ë¡£ -¿Æ¥×¥í¥»¥¹¤¬¾¯¤·¤Î´Ö sleep ¤¹¤ë´Ö¤Ë¡¢»Ò¥×¥í¥»¥¹¤Ï -¥×¥í¥°¥é¥à¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿À°¿ô(Îó)¤ò¤½¤ì¤¾¤ì -eventfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë½ñ¤­¹þ¤à¡£ -¿Æ¥×¥í¥»¥¹¤Ï sleep ¤ò´°Î»¤¹¤ë¤È eventfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤é -Æɤ߽Ф·¤ò¹Ô¤¦¡£ +以下のプログラムは eventfd ファイルディスクリプタを生成し、 +その後 fork を実行して子プロセスを生成する。 +親プロセスが少しの間 sleep する間に、子プロセスは +プログラムのコマンドライン引き数で指定された整数(列)をそれぞれ +eventfd ファイルディスクリプタに書き込む。 +親プロセスは sleep を完了すると eventfd ファイルディスクリプタから +読み出しを行う。 -°Ê²¼¤Ë¼¨¤¹¥·¥§¥ë¥»¥Ã¥·¥ç¥ó¤Ë¤³¤Î¥×¥í¥°¥é¥à¤Î»È¤¤Êý¤ò¼¨¤¹¡£ +以下に示すシェルセッションにこのプログラムの使い方を示す。 .in +4n .nf @@ -335,7 +335,7 @@ Parent about to read Parent read 28 (0x1c) from efd .fi .in -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -393,7 +393,7 @@ main(int argc, char *argv[]) } } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR futex (2), .BR pipe (2), .BR poll (2), diff --git a/release/man2/execve.2 b/release/man2/execve.2 index f0674ae1..c95aca58 100644 --- a/release/man2/execve.2 +++ b/release/man2/execve.2 @@ -50,19 +50,19 @@ .\" Updated 2008-11-05, Akihiro MOTOKI, LDP v3.12 .\" .TH EXECVE 2 2010-01-06 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -execve \- ¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë -.SH ½ñ¼° +.SH 名前 +execve \- プログラムを実行する +.SH 書式 .B #include .sp .BI "int execve(const char *" filename ", char *const " argv "[], " .br .BI " char *const " envp []); -.SH ÀâÌÀ +.SH 説明 .BR execve () -¤Ï¡¢\fIfilename\fP ¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¡£ -\fIfilename\fP ¤Ï¡¢¥Ð¥¤¥Ê¥ê¼Â¹Ô·Á¼°¤«¡¢ -°Ê²¼¤Î·Á¼°¤Î¹Ô¤Ç»Ï¤Þ¤ë¥¹¥¯¥ê¥×¥È¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は、\fIfilename\fP によって指定されたプログラムを実行する。 +\fIfilename\fP は、バイナリ実行形式か、 +以下の形式の行で始まるスクリプトでなければならない。 .in +4n .nf @@ -70,14 +70,14 @@ execve \- .fi .in -¸å¼Ô¤Î¾ÜºÙ¤Ï¡¢¸å¤í¤Î¡Ö¥¤¥ó¥¿¥×¥ê¥¿¡¦¥¹¥¯¥ê¥×¥È¡×¤ÎÀá¤ò»²¾È¤Î¤³¤È¡£ +後者の詳細は、後ろの「インタプリタ・スクリプト」の節を参照のこと。 -\fIargv\fP ¤Ï¿·¤·¤¤¥×¥í¥°¥é¥à¤ËÅϤµ¤ì¤ë°ú¤­¿ôʸ»úÎó¤ÎÇÛÎó¤Ç¤¢¤ë¡£ -\fIenvp\fP ¤Ïʸ»úÎó¤ÎÇÛÎó¤Ç¤¢¤ê¡¢ÅÁÅýŪ¤Ë \fBkey=value\fP ¤Î·Á¼°¤ò -¤·¤Æ¤ª¤ê¡¢¿·¤·¤¤¥×¥í¥°¥é¥à¤Î´Ä¶­ÊÑ¿ô¤È¤·¤ÆÅϤµ¤ì¤ë¡£ -\fIargv\fP ¤È \fIenvp\fP ¤Ï¤¤¤º¤ì¤â¤Î NULL ¥Ý¥¤¥ó¥¿¤Ç½ª¤ï¤Ã¤Æ¤¤¤ë -ɬÍפ¬¤¢¤ë¡£°ú¤­¿ôÇÛÎó¤È´Ä¶­ÊÑ¿ô¤Ï¡¢¸Æ¤Ó½Ð¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Î main ´Ø¿ô¤ò -°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¥¢¥¯¥»¥¹²Äǽ¤Ë¤Ê¤ë¡£ +\fIargv\fP は新しいプログラムに渡される引き数文字列の配列である。 +\fIenvp\fP は文字列の配列であり、伝統的に \fBkey=value\fP の形式を +しており、新しいプログラムの環境変数として渡される。 +\fIargv\fP と \fIenvp\fP はいずれもの NULL ポインタで終わっている +必要がある。引き数配列と環境変数は、呼び出されたプログラムの main 関数を +以下のように定義することによってアクセス可能になる。 .in +4n .nf @@ -85,185 +85,185 @@ int main(int argc, char *argv[], char *envp[]) .fi .in -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR execve () -¤ÏÊÖ¤é¤Ê¤¤¡£ -¤½¤·¤Æ¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î text, data, bss, ¥¹¥¿¥Ã¥¯¤Ï¡¢ -Æɤ߹þ¤Þ¤ì¤¿¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤Æ¾å½ñ¤­¤µ¤ì¤ë¡£ +は返らない。 +そして、呼び出し元のプロセスの text, data, bss, スタックは、 +読み込まれたプログラムによって上書きされる。 -¸µ¤Î¥×¥í¥°¥é¥à¤¬ ptrace ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ +元のプログラムが ptrace されている場合、 .BR execve () -¤¬À®¸ù¤·¤¿¸å¤Ë -¤½¤Î¥×¥í¥°¥é¥à¤Ë \fBSIGTRAP\fP ¤¬Á÷¤é¤ì¤ë¡£ +が成功した後に +そのプログラムに \fBSIGTRAP\fP が送られる。 .I filename -¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥°¥é¥à¥Õ¥¡¥¤¥ë¤Ë set-user-ID ¥Ó¥Ã¥È¤¬ÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢ -¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ +で指定されたプログラムファイルに set-user-ID ビットが設定されており、 +ファイルが存在するファイルシステムが .I nosuid .RB ( mount (2) -¤Î +の .B MS_NOSUID -¥Õ¥é¥°) ¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤ª¤é¤º¡¢ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬ ptrace ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú (effective) ¥æ¡¼¥¶ ID ¤Ï -¥×¥í¥°¥é¥à¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô (owner) ¤ËÊѹ¹¤µ¤ì¤ë¡£ -ƱÍͤˡ¢¥×¥í¥°¥é¥à¥Õ¥¡¥¤¥ë¤Ë set-group-ID ¥Ó¥Ã¥È¤¬ÀßÄꤵ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ÎÍ­¸ú¥°¥ë¡¼¥× ID ¤Ï -¥×¥í¥°¥é¥à¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥×¤ËÊѹ¹¤µ¤ì¤ë¡£ - -¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤ÏÊݸ (saved) set-user-ID ¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¡£ -ƱÍͤˡ¢¼Â¸ú¥°¥ë¡¼¥× ID ¤ÏÊݸ set-group-ID ¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¡£ -¤³¤Î¥³¥Ô¡¼¤Ï¡¢set-user-ID / set-group-ID µö²Ä¥Ó¥Ã¥È¤Ë¤è¤êȯÀ¸¤¹¤ë -¼Â¸ú ID ¤ÎÊѹ¹¸å¤Ë¹Ô¤ï¤ì¤ë¡£ - -¼Â¹Ô¥Õ¥¡¥¤¥ë¤¬Æ°Åª¥ê¥ó¥¯¤µ¤ì¤¿ a.out ¼Â¹Ô·Á¼°¤Ç¡¢¶¦Í­¥é¥¤¥Ö¥é¥ê¤Î -¥¹¥¿¥Ö¤ò´Þ¤à¤â¤Î¤À¤Ã¤¿¾ì¹ç¡¢¼Â¹Ô¤Î³«»Ï»þ¤Ë Linux ¤Î -¥À¥¤¥Ê¥ß¥Ã¥¯¡¦¥ê¥ó¥« +フラグ) でマウントされておらず、 +呼び出したプロセスが ptrace されていない場合、 +呼び出したプロセスの実効 (effective) ユーザ ID は +プログラムファイルの所有者 (owner) に変更される。 +同様に、プログラムファイルに set-group-ID ビットが設定されていた場合、 +呼び出したプロセスの有効グループ ID は +プログラムファイルのグループに変更される。 + +プロセスの実効ユーザ ID は保存 (saved) set-user-ID にコピーされる。 +同様に、実効グループ ID は保存 set-group-ID にコピーされる。 +このコピーは、set-user-ID / set-group-ID 許可ビットにより発生する +実効 ID の変更後に行われる。 + +実行ファイルが動的リンクされた a.out 実行形式で、共有ライブラリの +スタブを含むものだった場合、実行の開始時に Linux の +ダイナミック・リンカ .BR ld.so (8) -¤¬¸Æ¤Ó½Ð¤µ¤ì¡¢É¬Íפʶ¦Í­¥é¥¤¥Ö¥é¥ê¤ò¥á¥â¥ê¤ËÆɤ߹þ¤ó¤Ç¥ê¥ó¥¯¤ò¹Ô¤¦¡£ - -¼Â¹Ô¥Õ¥¡¥¤¥ë¤¬¥À¥¤¥Ê¥ß¥Ã¥¯¡¦¥ê¥ó¥¯¤µ¤ì¤¿ ELF ¼Â¹Ô·Á¼°¤À¤Ã¤¿¾ì¹ç¡¢ -PT_INTERP ¥»¥°¥á¥ó¥È¤Ë»ØÄꤵ¤ì¤¿¥¤¥ó¥¿¥×¥ê¥¿¤¬É¬Í×¤Ê -¶¦Í­¥é¥¤¥Ö¥é¥ê (shared library) ¤òÆɤ߹þ¤à¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ -Ä̾¥¤¥ó¥¿¥×¥ê¥¿¤È¤·¤Æ¤Ï¡¢ -Linux libc 5 ¤ò¥ê¥ó¥¯¤·¤¿¥Ð¥¤¥Ê¥ê¤Î¾ì¹ç¤Ë¤Ï -\fI/lib/ld-linux.so.1\fP ¤¬¡¢ -glibc 2 ¤ò¥ê¥ó¥¯¤·¤¿¥Ð¥¤¥Ê¥ê¤Î¾ì¹ç¤Ë¤Ï -\fI/lib/ld-linux.so.2\fP ¤¬»ÈÍѤµ¤ì¤ë¡£ - -°Ê²¼¤Ë¼¨¤¹°Ê³°¤Î¤¹¤Ù¤Æ¤Î¥×¥í¥»¥¹Â°À­¤Ï +が呼び出され、必要な共有ライブラリをメモリに読み込んでリンクを行う。 + +実行ファイルがダイナミック・リンクされた ELF 実行形式だった場合、 +PT_INTERP セグメントに指定されたインタプリタが必要な +共有ライブラリ (shared library) を読み込むのに使用される。 +通常、インタプリタとしては、 +Linux libc 5 をリンクしたバイナリの場合には +\fI/lib/ld-linux.so.1\fP が、 +glibc 2 をリンクしたバイナリの場合には +\fI/lib/ld-linux.so.2\fP が使用される。 + +以下に示す以外のすべてのプロセス属性は .BR execve () -¤ÎÁ°¸å¤ÇÊÝ»ý¤µ¤ì¤ë¡£ +の前後で保持される。 .IP * -Ê᪤µ¤ì¤¿¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡ (disposition) ¤Ï -¥Ç¥Õ¥©¥ë¥ÈÆ°ºî¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë -.RB ( signal (7))¡£ +捕捉されたシグナルの処理方法 (disposition) は +デフォルト動作にリセットされる +.RB ( signal (7))。 .IP * -ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤Ï¤É¤ì¤âÊÝ»ý¤µ¤ì¤Ê¤¤ -.RB ( sigaltstack (2))¡£ +代替シグナルスタックはどれも保持されない +.RB ( sigaltstack (2))。 .IP * -¥á¥â¥ê¥Þ¥Ã¥Ô¥ó¥°¤ÏÊÝ»ý¤µ¤ì¤Ê¤¤ -.RB ( mmap (2))¡£ +メモリマッピングは保持されない +.RB ( mmap (2))。 .IP * -Éղ䵤줿 (attached) System V ¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤ÏʬΥ¤µ¤ì¤ë -.RB ( shmat (2))¡£ +付加された (attached) System V 共有メモリセグメントは分離される +.RB ( shmat (2))。 .IP * -POSIX ¶¦Í­¥á¥â¥êÎΰè¤Ï¥Þ¥Ã¥Ô¥ó¥°¤ò²ò½ü¤µ¤ì¤ë -.RB ( shm_open (3))¡£ +POSIX 共有メモリ領域はマッピングを解除される +.RB ( shm_open (3))。 .IP * -¥ª¡¼¥×¥ó¤µ¤ì¤¿ POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¥¯¥í¡¼¥º¤µ¤ì¤ë -.RB ( mq_overview (7))¡£ +オープンされた POSIX メッセージキューディスクリプタはクローズされる +.RB ( mq_overview (7))。 .IP * -¥ª¡¼¥×¥ó¤µ¤ì¤¿ POSIX ̾Á°ÉÕ¤­¥»¥Þ¥Õ¥©¤Ï¤¤¤º¤ì¤â¥¯¥í¡¼¥º¤µ¤ì¤ë -.RB ( sem_overview (7))¡£ +オープンされた POSIX 名前付きセマフォはいずれもクローズされる +.RB ( sem_overview (7))。 .IP * -POSIX ¥¿¥¤¥Þ¤ÏÊÝ»ý¤µ¤ì¤Ê¤¤ -.RB ( timer_create (2))¡£ +POSIX タイマは保持されない +.RB ( timer_create (2))。 .IP * -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤Ï¤¤¤º¤ì¤â¥¯¥í¡¼¥º¤µ¤ì¤ë -.RB ( opendir (3))¡£ +オープンされたディレクトリストリームはいずれもクローズされる +.RB ( opendir (3))。 .IP * -¥á¥â¥ê¥í¥Ã¥¯¤ÏÊÝ»ý¤µ¤ì¤Ê¤¤ +メモリロックは保持されない .RB ( mlock (2), -.BR mlockall (2))¡£ +.BR mlockall (2))。 .IP * -½ªÎ» (exit) ¥Ï¥ó¥É¥é¤ÏÊÝ»ý¤µ¤ì¤Ê¤¤ +終了 (exit) ハンドラは保持されない .RB ( atexit (3), -.BR on_exit (3))¡£ +.BR on_exit (3))。 .IP * -ÉâÆ°¾®¿ôÅÀ´ØÏ¢¤Î´Ä¶­¤Ï¥Ç¥Õ¥©¥ë¥È¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë +浮動小数点関連の環境はデフォルトにリセットされる .RB ( fenv (3) -»²¾È)¡£ +参照)。 .PP -¾åµ­¤Î¥ê¥¹¥È¤Î¥×¥í¥»¥¹Â°À­¤Ï¤¤¤º¤ì¤â POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -°Ê²¼¤Ë¼¨¤¹ Linux ¸ÇÍ­¤Î¥×¥í¥»¥¹Â°À­¤â +上記のリストのプロセス属性はいずれも POSIX.1-2001 で規定されている。 +以下に示す Linux 固有のプロセス属性も .BR execve () -¤ÎÁ°¸å¤ÇÊÝ»ý¤µ¤ì¤Ê¤¤¡£ +の前後で保持されない。 .IP * 3 -set-user-ID ¤« set-group-ID ¤µ¤ì¤¿¥×¥í¥°¥é¥à¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ +set-user-ID か set-group-ID されたプログラムが実行されている場合、 .BR prctl (2) -¤Î +の .B PR_SET_DUMPABLE -¥Õ¥é¥°¤Ï¥¯¥ê¥¢¤µ¤ì¤ë¡£¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¤³¤Î¥Õ¥é¥°¤Ï¥»¥Ã¥È¤µ¤ì¤ë¡£ +フラグはクリアされる。それ以外の場合、このフラグはセットされる。 .IP * .BR prctl (2) -¤Î +の .B PR_SET_KEEPCAPS -¥Õ¥é¥°¤Ï¥¯¥ê¥¢¤µ¤ì¤ë¡£ +フラグはクリアされる。 .IP * -¥×¥í¥»¥¹Ì¾¤Ï¿·¤·¤¤¼Â¹Ô¥Õ¥¡¥¤¥ë¤Î̾Á°¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë¡£ -¥×¥í¥»¥¹Ì¾¤Ï +プロセス名は新しい実行ファイルの名前にリセットされる。 +プロセス名は .BR prctl (2) -¤Î +の .B PR_SET_NAME -¤ÇÀßÄê¤Ç¤­¡¢ +で設定でき、 .I "ps\ \-o comm" -¤Çɽ¼¨¤Ç¤­¤ë¡£ +で表示できる。 .IP * -½ªÎ»¥·¥°¥Ê¥ë (termination signal) ¤Ï +終了シグナル (termination signal) は .B SIGCHLD -¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë +にリセットされる .RB ( clone (2) -»²¾È)¡£ +参照)。 .PP -°Ê²¼¤ÎÅÀ¤Ë¤Ä¤¤¤Æ¤âÃí°Õ¤¹¤ë¤³¤È: +以下の点についても注意すること: .IP * 3 -¸Æ¤Ó½Ð¤·¸µ¥¹¥ì¥Ã¥É°Ê³°¤ÎÁ´¤Æ¤Î¥¹¥ì¥Ã¥É¤Ï +呼び出し元スレッド以外の全てのスレッドは .BR execve () -Ãæ¤ËÇË´þ¤µ¤ì¤ë¡£ -mutex¡¢¾ò·ïÊÑ¿ô¡¢¤½¤Î¾¤Î pthread ¥ª¥Ö¥¸¥§¥¯¥È¤ÏÊÝ»ý¤µ¤ì¤Ê¤¤¡£ +中に破棄される。 +mutex、条件変数、その他の pthread オブジェクトは保持されない。 .IP * -\fIsetlocale(LC_ALL, "C")\fP ÁêÅö¤Î½èÍý¤¬¥×¥í¥°¥é¥à³«»Ï»þ¤Ë¼Â¹Ô¤µ¤ì¤ë¡£ +\fIsetlocale(LC_ALL, "C")\fP 相当の処理がプログラム開始時に実行される。 .IP * -POSIX.1-2001 ¤Ï¡¢Æ°ºî¤¬Ìµ»ë¤«¥Ç¥Õ¥©¥ë¥È¤ËÀßÄꤵ¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¥·¥°¥Ê¥ë -¤Î½èÍýÊýË¡¤ÏÊѹ¹¤»¤º¤½¤Î¤Þ¤Þ¤Ë¤¹¤ë¡¢¤Èµ¬Äꤷ¤Æ¤¤¤ë¡£ -⤷¡¢POSIX.1-2001 ¤Ë¤Ï°ì¤ÄÎã³°¤¬¤¢¤ê¡¢ +POSIX.1-2001 は、動作が無視かデフォルトに設定されている全てのシグナル +の処理方法は変更せずそのままにする、と規定している。 +但し、POSIX.1-2001 には一つ例外があり、 .B SIGCHLD -¤¬Ìµ»ë¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -¤½¤Î½èÍýÊýË¡¤òÊѹ¹¤»¤º¤Ë¤½¤Î¤Þ¤Þ¤Ë¤¹¤ë¤«¡¢¥Ç¥Õ¥©¥ë¥ÈÆ°ºî¤Ë¥ê¥»¥Ã¥È¤¹¤ë¤«¤Ï -¼ÂÁõ°Í¸¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ -Linux ¤Ç¤ÏÁ°¼Ô (Êѹ¹¤·¤Ê¤¤) ¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ +が無視になっている場合、 +その処理方法を変更せずにそのままにするか、デフォルト動作にリセットするかは +実装依存となっている。 +Linux では前者 (変更しない) となっている。 .IP * -´°Î»¤·¤Æ¤¤¤Ê¤¤ÈóƱ´ü I/O Áàºî¤Ï¥­¥ã¥ó¥»¥ë¤µ¤ì¤ë +完了していない非同期 I/O 操作はキャンセルされる .RB ( aio_read (3), -.BR aio_write (3))¡£ +.BR aio_write (3))。 .IP * .BR execve (2) -»þ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î°·¤¤¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +時のケーパビリティの扱いについては、 .BR capabilities (7) -¤ò»²¾È¡£ +を参照。 .IP * -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï +デフォルトでは、ファイルディスクリプタは .BR execve () -¤ò¹Ô¤Ã¤¿¸å¤Ç¤â¥ª¡¼¥×¥ó¤µ¤ì¤¿¤Þ¤Þ¤Ç¤¢¤ë¡£ -close-on-exec ¤Î°õ¤¬ÉÕ¤¤¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¥¯¥í¡¼¥º¤µ¤ì¤ë¡£ +を行った後でもオープンされたままである。 +close-on-exec の印が付いているファイルディスクリプタはクローズされる。 .BR fcntl (2) -¤Î +の .B FD_CLOEXEC -¤ÎÀâÌÀ¤ò»²¾È¡£ -(¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥¯¥í¡¼¥º¤µ¤ì¤ë¤È¡¢¤³¤Î¥×¥í¥»¥¹¤¬ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂбþ¤¹¤ë¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ³ÍÆÀ¤·¤Æ¤¤¤¿ -¥ì¥³¡¼¥É¤Î¥í¥Ã¥¯¤¬Á´¤Æ²òÊü¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£) -POSIX.1-2001 ¤Ç¤Ï¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ 0, 1, 2 ¤¬ +の説明を参照。 +(ファイルディスクリプタがクローズされると、このプロセスが +ファイルディスクリプタに対応するファイルに対して獲得していた +レコードのロックが全て解放されることになる。) +POSIX.1-2001 では、 +ファイルディスクリプタ 0, 1, 2 が .BR execve () -À®¸ù¸å¤Ë¤É¤³¤«¤Ç¥¯¥í¡¼¥º¤µ¤ì¡¢¤«¤Ä -¼Â¹Ô¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ë set-user_ID ¤« set-group_ID ¤Îµö²Ä¥Ó¥Ã¥È¤¬ -¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Æ¥×¥í¥»¥¹¤¬Æø¢¤ò³ÍÆÀ¤·¤¿¾ì¹ç¡¢ -¥·¥¹¥Æ¥à¤Ï²¿¤é¤«¤Î¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ëºÝ¤Ë -¤³¤ì¤é¤ÎÈÖ¹æ¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤É¤ì¤«¤ò»È¤¦¤³¤È¤¬¤¢¤ë¡¢ -¤È¤µ¤ì¤Æ¤¤¤ë¡£ -¸¶Â§¤È¤·¤Æ¡¢°Ü¿¢À­¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ -Æø¢¤Î̵ͭ¤Ë´Ø¤ï¤é¤º¡¢ +成功後にどこかでクローズされ、かつ +実行されるファイルに set-user_ID か set-group_ID の許可ビットが +セットされていてプロセスが特権を獲得した場合、 +システムは何らかのファイルをオープンする際に +これらの番号のディスクリプタのどれかを使うことがある、 +とされている。 +原則として、移植性が必要なプログラムでは、 +特権の有無に関わらず、 .BR execve () -¤ÎÁ°¸å¤Ç¤³¤ì¤é 3¤Ä¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥¯¥í¡¼¥º¤µ¤ì¤¿¤Þ¤Þ¤Ç -¤¢¤ë¤³¤È¤òÁ°Äó¤Ë¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +の前後でこれら 3つのファイルディスクリプタがクローズされたままで +あることを前提にすることはできない。 .\" On Linux it appears that these file descriptors are .\" always open after an execve(), and it looks like .\" Solaris 8 and FreeBSD 6.1 are the same. -- mtk, 30 Apr 2007 -.SS ¥¤¥ó¥¿¥×¥ê¥¿¡¦¥¹¥¯¥ê¥×¥È -¥¤¥ó¥¿¥×¥ê¥¿¡¦¥¹¥¯¥ê¥×¥È¤È¤Ï¡¢¼Â¹Ôµö²Ä¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Æ¡¢ -ºÇ½é¤Î¹Ô¤¬°Ê²¼¤Î·Á¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Î¤³¤È¤Ç¤¢¤ë¡£ +.SS インタプリタ・スクリプト +インタプリタ・スクリプトとは、実行許可が有効になっていて、 +最初の行が以下の形になっているテキストファイルのことである。 .in +4n .nf @@ -272,14 +272,14 @@ POSIX.1-2001 .in .I interpreter -¤ÏÍ­¸ú¤Ê¼Â¹Ô¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹Ì¾¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -¤½¤ì¼«¿È¤¬¥¹¥¯¥ê¥×¥È¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +は有効な実行ファイルのパス名でなければならず、 +それ自身がスクリプトであってはならない。 .BR execve () -¤Î +の .I filename -°ú¤­¿ô¤¬¥¤¥ó¥¿¥×¥ê¥¿¥¹¥¯¥ê¥×¥È¤ò»ØÄꤷ¤Æ¤¤¤ë¾ì¹ç¡¢ +引き数がインタプリタスクリプトを指定している場合、 .I interpreter -¤Ï°Ê²¼¤Î°ú¤­¿ô¤Çµ¯Æ°¤µ¤ì¤ë¡£ +は以下の引き数で起動される。 .in +4n .nf @@ -288,268 +288,268 @@ POSIX.1-2001 .in .I arg... -¤Ï +は .BR execve () -¤Î +の .I argv -°ú¤­¿ô¤¬»Ø¤¹¥ï¡¼¥ÉÎó¤Ç¤¢¤ë¡£ +引き数が指すワード列である。 -°Ü¿¢À­¤ò»ý¤¿¤¹¤Ë¤Ï¡¢ +移植性を持たすには、 .I optional-arg -¤Ï¶õ¤« 1¥ï¡¼¥É¤À¤±¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë -(¤Ä¤Þ¤ê¡¢¥Û¥ï¥¤¥È¡¦¥¹¥Ú¡¼¥¹¤ò´Þ¤á¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤)¡£ -²¼µ­¤Î¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¡£ -.SS "°ú¤­¿ô¤È´Ä¶­ÊÑ¿ô¤Î¹ç·×¥µ¥¤¥º¤Î¾å¸Â" -¤Û¤È¤ó¤É¤Î UNIX ¤Î¼ÂÁõ¤Ï¡¢¿·¤·¤¤¥×¥í¥°¥é¥à¤ËÅϤ¹¤³¤È¤¬¤Ç¤­¤ë -¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô +は空か 1ワードだけにすべきである +(つまり、ホワイト・スペースを含めるべきではない)。 +下記の「注意」の節を参照。 +.SS "引き数と環境変数の合計サイズの上限" +ほとんどの UNIX の実装は、新しいプログラムに渡すことができる +コマンドライン引き数 .RI ( argv ) -¤È´Ä¶­ÊÑ¿ô +と環境変数 .RI ( envp ) -¤Îʸ»úÎ󷲤ιç·×¥µ¥¤¥º¤Ë²¿¤é¤«¤Î¾å¸Â¤òÀߤ±¤Æ¤¤¤ë¡£ -POSIX.1 ¤Ï¡¢ +の文字列群の合計サイズに何らかの上限を設けている。 +POSIX.1 は、 .B ARG_MAX -Äê¿ô¤ò»È¤Ã¤Æ¤³¤Î¾å¸Â¤ò·è¤á¤ë¼ÂÁõ¤òǧ¤á¤Æ¤¤¤ë +定数を使ってこの上限を決める実装を認めている .RB ( ARG_MAX -¤Ï +は .I -¤ÇÄêµÁ¤µ¤ì¤ë¤«¡¢¼Â¹Ô»þ¤Ë +で定義されるか、実行時に .I "sysconf(_SC_ARG_MAX)" -¤Î¸Æ¤Ó½Ð¤·¤ÇÆþ¼ê¤Ç¤­¤ë¤«¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë)¡£ +の呼び出しで入手できるかのいずれかである)。 -¥«¡¼¥Í¥ë 2.6.23 ¤è¤êÁ°¤Î Linux ¤Ç¤Ï¡¢´Ä¶­ÊÑ¿ô¤È°ú¤­¿ô¤Îʸ»úÎ󷲤ò -³ÊǼ¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¥á¥â¥ê¤Ï 32 ¥Ú¡¼¥¸¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤¿ -(32 ¥Ú¡¼¥¸¤È¤¤¤¦¤Î¤Ï¥«¡¼¥Í¥ëÄê¿ô +カーネル 2.6.23 より前の Linux では、環境変数と引き数の文字列群を +格納するのに使用されるメモリは 32 ページに制限されていた +(32 ページというのはカーネル定数 .B MAX_ARG_PAGES -¤ÇÄêµÁ¤µ¤ì¤ë)¡£¤·¤¿¤¬¤Ã¤Æ¡¢ -¥Ú¡¼¥¸¥µ¥¤¥º¤¬ 4 kB ¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢ -ºÇÂ祵¥¤¥º¤Ï 128 kB ¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ë¡£ +で定義される)。したがって、 +ページサイズが 4 kB のアーキテクチャでは、 +最大サイズは 128 kB ということになる。 -¥«¡¼¥Í¥ë 2.6.23 °Ê¹ß¤Ç¤Ï¡¢¤Û¤È¤ó¤É¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤ª¤¤¤Æ¡¢ +カーネル 2.6.23 以降では、ほとんどのアーキテクチャにおいて、 .BR execve () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿»þÅÀ¤ÇŬÍѤµ¤ì¤Æ¤¤¤ë¥ê¥½¡¼¥¹¤Î¥½¥Õ¥È¾å¸Â +が呼び出された時点で適用されているリソースのソフト上限 .B RLIMIT_STACK -¤Ë´ð¤Å¤¤¤¿¥µ¥¤¥º¾å¸Â¤¬»È¤ï¤ì¤ë -(¥á¥â¥ê´ÉÍý¥æ¥Ë¥Ã¥È (MMU) ¤ò»ý¤¿¤Ê¤¤¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ï¾åµ­¤ÎÊѹ¹¤Î -Îã³°¤Ç¤¢¤ê¡¢¤³¤ì¤é¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¥«¡¼¥Í¥ë 2.6.23 ¤è¤êÁ°¤È -Ʊ¤¸¾å¸Â¤¬¤½¤Î¤Þ¤Þ»ÈÍѤµ¤ì¤ë)¡£ +に基づいたサイズ上限が使われる +(メモリ管理ユニット (MMU) を持たないアーキテクチャは上記の変更の +例外であり、これらのアーキテクチャではカーネル 2.6.23 より前と +同じ上限がそのまま使用される)。 .\" For some background on the changes to ARG_MAX in kernels 2.6.23 and .\" 2.6.25, see: .\" http://sourceware.org/bugzilla/show_bug.cgi?id=5786 .\" http://bugzilla.kernel.org/show_bug.cgi?id=10095 .\" http://thread.gmane.org/gmane.linux.kernel/646709/focus=648101, .\" checked into 2.6.25 as commit a64e715fc74b1a7dcc5944f848acc38b2c4d4ee2. -¤³¤ì¤é¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢¹ç·×¥µ¥¤¥º¤Ïµö²Ä¤µ¤ì¤¿¥¹¥¿¥Ã¥¯¥µ¥¤¥º¤Î -1/4 ¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë -(1/4 ¤Î¾å¸Â¤òÀߤ±¤Æ¤¤¤ë¤Î¤Ï¡¢¿·¤·¤¤¥×¥í¥°¥é¥à¤¬É¬¤º¤¢¤ëÄøÅ٤Π-¥¹¥¿¥Ã¥¯¶õ´Ö¤ò»ý¤Æ¤ë¤³¤È¤òÊݾڤ¹¤ë¤¿¤á¤Ç¤¢¤ë)¡£ +これらのアーキテクチャでは、合計サイズは許可されたスタックサイズの +1/4 に制限されている +(1/4 の上限を設けているのは、新しいプログラムが必ずある程度の +スタック空間を持てることを保証するためである)。 .\" Ollie: That doesn't include the lists of pointers, though, .\" so the actual usage is a bit higher (1 pointer per argument). -Linux 2.6.25 °Ê¹ß¤Ç¤Ï¡¢¥«¡¼¥Í¥ë¤Ï¤³¤Î¥µ¥¤¥º¾å¸Â¤Ë 32 ¥Ú¡¼¥¸¤Î²¼¸Â¤ò -Àߤ±¤Æ¤¤¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢ +Linux 2.6.25 以降では、カーネルはこのサイズ上限に 32 ページの下限を +設けている。これにより、 .B RLIMIT_STACK -¤¬Èó¾ï¤Ë¾®¤µ¤¯ÀßÄꤵ¤ì¤¿¾ì¹ç¤Ç¤â¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¾¯¤Ê¤¯¤È¤â -Linux 2.6.23 °ÊÁ°¤ÇÄ󶡤µ¤ì¤Æ¤¤¤¿¤Î¤ÈƱ¤¸Â礭¤µ¤Î°ú¤­¿ô¤È´Ä¶­ÊÑ¿ô¤Î¶õ´Ö -¤ÈƱ¤¸¤À¤±¤Ï³ÎÊݤǤ­¤ë¤³¤È¤¬Êݾڤµ¤ì¤Æ¤¤¤ë -(¤³¤ÎºÇÄã¸Â¤ÎÊÝ¾Ú¤Ï Linux 2.6.23 ¤È 2.6.24 ¤Ç¤ÏÄ󶡤µ¤ì¤Æ¤¤¤Ê¤¤)¡£ -¤Þ¤¿¡¢³Æʸ»úÎó¤Î¾å¸Â¤Ï 32 ¥Ú¡¼¥¸ (¥«¡¼¥Í¥ëÄê¿ô +が非常に小さく設定された場合でも、アプリケーションが少なくとも +Linux 2.6.23 以前で提供されていたのと同じ大きさの引き数と環境変数の空間 +と同じだけは確保できることが保証されている +(この最低限の保証は Linux 2.6.23 と 2.6.24 では提供されていない)。 +また、各文字列の上限は 32 ページ (カーネル定数 .BR MAX_ARG_STRLEN ) -¤Ç¡¢Ê¸»úÎó¿ô¤ÎºÇÂçÃÍ¤Ï 0x7FFFFFFF ¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È +で、文字列数の最大値は 0x7FFFFFFF である。 +.SH 返り値 +成功すると .BR execve () -¤ÏÊÖ¤é¤Ê¤¤¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +は返らない。エラーの場合は \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切に設定する。 +.SH エラー .TP .B E2BIG -´Ä¶­ÊÑ¿ô +環境変数 .RI ( envp ) -¤È°ú¤­¿ô¥ê¥¹¥È +と引き数リスト .RI ( argv ) -¤Î¹ç·×¥Ð¥¤¥È¿ô¤¬Â礭²á¤®¤ë¡£ +の合計バイト数が大き過ぎる。 .TP .B EACCES .I filename -¤ä¥¹¥¯¥ê¥×¥È¥¤¥ó¥¿¥×¥ê¥¿Ì¾¤Î¹½À®Í×ÁǤ˸¡º÷µö²Ä (search permission) -¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤ +やスクリプトインタプリタ名の構成要素に検索許可 (search permission) +が与えられていない .RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È)¡£ +も参照すること)。 .TP .B EACCES -¥Õ¥¡¥¤¥ë¤â¤·¤¯¤Ï¥¹¥¯¥ê¥×¥È¤Î¥¤¥ó¥¿¥×¥ê¥¿¤¬Ä̾ï¥Õ¥¡¥¤¥ë (regular file) -¤Ç¤Ê¤¤¡£ +ファイルもしくはスクリプトのインタプリタが通常ファイル (regular file) +でない。 .TP .B EACCES -¥Õ¥¡¥¤¥ë¤ä¥¹¥¯¥ê¥×¥È¤ä ELF ¥¤¥ó¥¿¥×¥ê¥¿¤Ë -¼Â¹Ôµö²Ä (execute permission) ¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤¡£ +ファイルやスクリプトや ELF インタプリタに +実行許可 (execute permission) が与えられていない。 .TP .B EACCES -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤¬ +ファイル・システムが .I noexec -¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¡£ +でマウントされている。 .TP .B EFAULT .I filename -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がアクセス可能なアドレス空間の外を指している。 .TP .B EINVAL -ELF ¼Â¹Ô·Á¼°¤ÇÊ£¿ô¤Î PT_INTERP ¥»¥°¥á¥ó¥È¤¬Â¸ºß¤¹¤ë¡£ -(¤¹¤Ê¤ï¤ÁÊ£¿ô¤Î¥¤¥ó¥¿¥×¥ê¥¿¤ò»ØÄꤷ¤¿¡£) +ELF 実行形式で複数の PT_INTERP セグメントが存在する。 +(すなわち複数のインタプリタを指定した。) .TP .B EIO -I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +I/O エラーが発生した。 .TP .B EISDIR -ELF ¥¤¥ó¥¿¥×¥ê¥¿¤¬¥Ç¥£¥ì¥¯¥È¥ê¤À¤Ã¤¿¡£ +ELF インタプリタがディレクトリだった。 .TP .B ELIBBAD -ELF ¥¤¥ó¥¿¥×¥ê¥¿¤¬Íý²ò¤Ç¤­¤ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤Ê¤«¤Ã¤¿¡£ +ELF インタプリタが理解できるフォーマットでなかった。 .TP .B ELOOP .I filename -¤ä¥¹¥¯¥ê¥×¥È¤ä ELF ¤Î¥¤¥ó¥¿¥×¥ê¥¿¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿ -¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ +やスクリプトや ELF のインタプリタを解決する際に遭遇した +シンボリック・リンクが多過ぎる。 .TP .B EMFILE -¤½¤Î¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¿ô¤Î¾å¸Â¤Þ¤Ç´û¤Ë¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¡£ +そのプロセスがオープンできるファイル数の上限まで既にオープンしている。 .TP .B ENAMETOOLONG .I filename -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENFILE -¤½¤Î¥·¥¹¥Æ¥à¤Ç¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¿ô¤ÎÀ©¸Â¤Ë㤷¤¿¡£ +そのシステムでオープンできるファイル数の制限に達した。 .TP .B ENOENT -¥Õ¥¡¥¤¥ë +ファイル .I filename -¤«¥¹¥¯¥ê¥×¥È¤ä ELF ¤Î¥¤¥ó¥¿¥×¥ê¥¿¤¬Â¸ºß¤·¤Ê¤¤¡£ +かスクリプトや ELF のインタプリタが存在しない。 .TP .B ENOEXEC -¼Â¹Ô¥Õ¥¡¥¤¥ë¤¬Íý²ò¤Ç¤­¤Ê¤¤·Á¼°¤Ç¤¢¤ë¤«¡¢°ã¤¦¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î¤â¤Î¤«¡¢ -¤½¤Î¾¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¡¦¥¨¥é¡¼¤Ë¤è¤ê¼Â¹Ô¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +実行ファイルが理解できない形式であるか、違うアーキテクチャのものか、 +その他のフォーマット・エラーにより実行ができなかった。 .TP .B ENOMEM -¥«¡¼¥Í¥ë¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +カーネルに十分なメモリがない。 .TP .B ENOTDIR .I filename -¤ä¥¹¥¯¥ê¥×¥È¤ä ELF ¤Î¥¤¥ó¥¿¥×¥ê¥¿¤Î¹½À®Í×ÁǤ¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +やスクリプトや ELF のインタプリタの構成要素がディレクトリでない。 .TP .B EPERM -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤¬ +ファイル・システムが .I nosuid -¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¡¢¥æ¡¼¥¶¤¬¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ç¤Ê¤¯¡¢ -¥Õ¥¡¥¤¥ë¤Ë set-user-ID ¤¢¤ë¤¤¤Ï set-group-ID ¥Ó¥Ã¥È¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¡£ +でマウントされ、ユーザがスーパーユーザでなく、 +ファイルに set-user-ID あるいは set-group-ID ビットが設定されている。 .TP .B EPERM -¥×¥í¥»¥¹¤¬¥È¥ì¡¼¥¹¤µ¤ì¡¢¥æ¡¼¥¶¤¬¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ç¤Ê¤¯¡¢ -¥Õ¥¡¥¤¥ë¤Ë set-user-ID ¤¢¤ë¤¤¤Ï set-group-ID ¥Ó¥Ã¥È¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¡£ +プロセスがトレースされ、ユーザがスーパーユーザでなく、 +ファイルに set-user-ID あるいは set-group-ID ビットが設定されている。 .TP .B ETXTBSY -¼Â¹Ô¥Õ¥¡¥¤¥ë¤ò½ñ¤­¹þ¤ßÍѤ˥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤¬¤¢¤ë¡£ -.SH ½àµò +実行ファイルを書き込み用にオープンしているプロセスがある。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -POSIX.1-2001 ¤Ë¤Ï #! Æ°ºî¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤Ï¤Ê¤¤¤¬¡¢ -¾¤Ï¸ß´¹À­¤¬¤¢¤ë¡£ -.\" SVr4 ¤Ë¤Ï¾¤Ë EAGAIN, EINTR, ELIBACC, ENOLINK, EMULTIHOP -.\" ¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ -.\" POSIX ¤Ë¤Ï ETXTBSY, EPERM, EFAULT, ELOOP, EIO, ENFILE, EMFILE, -.\" EINVAL, EISDIR, ELIBBAD ¥¨¥é¡¼¾õÂ֤ˤĤ¤¤Æ¤Îµ­½Ò¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ -set-user-id ¥×¥í¥»¥¹¤È set-group-ID ¥×¥í¥»¥¹¤Ï +POSIX.1-2001 には #! 動作についての記述はないが、 +他は互換性がある。 +.\" SVr4 には他に EAGAIN, EINTR, ELIBACC, ENOLINK, EMULTIHOP +.\" についての記述がある。 +.\" POSIX には ETXTBSY, EPERM, EFAULT, ELOOP, EIO, ENFILE, EMFILE, +.\" EINVAL, EISDIR, ELIBBAD エラー状態についての記述はない。 +.SH 注意 +set-user-id プロセスと set-group-ID プロセスは .BR ptrace (2) -¤Ç¤­¤Ê¤¤¡£ +できない。 -Linux ¤Ï¥¹¥¯¥ê¥×¥È¤Î set-user-ID ¤È set-group-ID ¥Ó¥Ã¥È¤ò̵»ë¤¹¤ë¡£ +Linux はスクリプトの set-user-ID と set-group-ID ビットを無視する。 -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò +ファイルシステムを .I nosuid -¤Ç¥Þ¥¦¥ó¥È¤·¤¿¾ì¹ç¤Ë set-user-ID/set-group-ID ¤Î¼Â¹Ô¥Õ¥¡¥¤¥ë¤ò -¤É¤ÎÍͤ˰·¤¦¤«¤Ï¡¢Linux ¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë: -¤¢¤ë¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢¤¹¤Ç¤ËɬÍפʸ¢¸Â¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¤ò½ü¤¤¤Æ¡¢ -¤½¤Î¼Â¹Ô¤òµñÈݤ¹¤ë (¤½¤·¤Æ +でマウントした場合に set-user-ID/set-group-ID の実行ファイルを +どの様に扱うかは、Linux カーネルのバージョンによって異なる: +あるバージョンでは、すでに必要な権限を持っている場合を除いて、 +その実行を拒否する (そして .B EPERM -¤òÊÖ¤¹)¡£Ê̤Τ¢¤ë¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï -set-user-ID/set-group-ID ¥Ó¥Ã¥È¤Î¤ß¤ò̵»ë¤· +を返す)。別のあるバージョンでは +set-user-ID/set-group-ID ビットのみを無視し .BR exec () -¤ÏÀ®¸ù¤¹¤ë¡£ +は成功する。 -#! ¼Â¹Ô·Á¼°¤Î¥·¥§¥ë¡¦¥¹¥¯¥ê¥×¥È¤Î 1¹ÔÌܤ˵ö¤µ¤ì¤Æ¤¤¤ëʸ»ú¿ô¤Ï¡¢ -ºÇÂç 127 ʸ»ú¤Ç¤¢¤ë¡£ +#! 実行形式のシェル・スクリプトの 1行目に許されている文字数は、 +最大 127 文字である。 -¥¤¥ó¥¿¥×¥ê¥¿¡¦¥¹¥¯¥ê¥×¥È¤Î +インタプリタ・スクリプトの .I optional-arg -°ú¤­¿ô¤Î²ò¼áÊýË¡¤Ï¼ÂÁõ¤Ë¤è¤ê°Û¤Ê¤ë¡£ -Linux ¤Ç¤Ï¡¢¥¤¥ó¥¿¥×¥ê¥¿Ì¾ +引き数の解釈方法は実装により異なる。 +Linux では、インタプリタ名 .I interpreter -¤Ë³¤¯Ê¸»úÎóÁ´ÂΤ¬¥¤¥ó¥¿¥×¥ê¥¿¤Ë 1¸Ä¤Î°ú¤­¿ô¤È¤·¤ÆÅϤµ¤ì¤ë¡£ -¤·¤«¤·¡¢Æ°ºî¤¬°Û¤Ê¤ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ -¤¢¤ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -.\" Î㤨¤Ð¡¢Solaris 8 +に続く文字列全体がインタプリタに 1個の引き数として渡される。 +しかし、動作が異なるシステムもある。 +あるシステムでは、 +.\" 例えば、Solaris 8 .I optional-arg -¤Î¤¦¤ÁºÇ½é¤Î¥Û¥ï¥¤¥È¡¦¥¹¥Ú¡¼¥¹¤Þ¤Ç¤¬ -°ú¤­¿ô¤È¤·¤ÆÅϤµ¤ì¤ë¡£ -¤Þ¤¿¡¢Ê̤Υ·¥¹¥Æ¥à¤Ç¤Ï -.\" Î㤨¤Ð¡¢6.0 ¤è¤êÁ°¤Î FreeBSD (FreeBSD 6.0 °Ê¹ß¤Ï°ã¤¦) -¥¤¥ó¥¿¥×¥ê¥¿¡¦¥¹¥¯¥ê¥×¥È¤ÏÊ£¿ô¤Î°ú¤­¿ô¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¡¢ +のうち最初のホワイト・スペースまでが +引き数として渡される。 +また、別のシステムでは +.\" 例えば、6.0 より前の FreeBSD (FreeBSD 6.0 以降は違う) +インタプリタ・スクリプトは複数の引き数を持つことができ、 .I optional-arg -Æâ¤Î¥Û¥ï¥¤¥È¡¦¥¹¥Ú¡¼¥¹¤¬°ú¤­¿ô¤Î¶èÀÚ¤ê¤È¤Ê¤ë¡£ +内のホワイト・スペースが引き数の区切りとなる。 -Linux ¤Ç¤Ï¡¢ +Linux では、 .I argv -¤Ë NULL ¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤ì¤Ï¡¢¤³¤Î°ú¤­¿ô¤Ë NULL ¥Ý¥¤¥ó¥¿ -1¸Ä¤À¤±¤ò´Þ¤à¥ê¥¹¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»ØÄꤷ¤¿¤Î¤ÈƱ¤¸¸ú²Ì¤ò»ý¤Ä¡£ -.BR ¡Ö¤³¤Î´Ö°ã¤Ã¤¿µ¡Ç½¤òÍøÍѤ·¤Ê¤¤¤³¤È¡× ¡£ -¤³¤ì¤ÏÈóɸ½à¤Ç¡¢°Ü¿¢À­¤â¤Ê¤¤¡£ -¾¤Î¤Û¤È¤ó¤É¤Î UNIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤ì¤ò¹Ô¤¦¤È¥¨¥é¡¼ +に NULL を指定することができる。これは、この引き数に NULL ポインタ +1個だけを含むリストへのポインタを指定したのと同じ効果を持つ。 +.BR 「この間違った機能を利用しないこと」 。 +これは非標準で、移植性もない。 +他のほとんどの UNIX システムでは、これを行うとエラー .RB ( EFAULT ) -¤Ë¤Ê¤ë¡£ +になる。 .\" e.g., EFAULT on Solaris 8 and FreeBSD 6.1; but .\" HP-UX 11 is like Linux -- mtk, Apr 2007 .\" Bug filed 30 Apr 2007: http://bugzilla.kernel.org/show_bug.cgi?id=8408 .\" Bug rejected (because fix would constitute an ABI change). .\" -POSIX.1-2001 ¤Ï¡¢ +POSIX.1-2001 は、 .BR sysconf (3) -¤¬ÊÖ¤¹ÃÍ¤Ï¥×¥í¥»¥¹¤ÎÀ¸Â¸Ãæ¤ÏÊѲ½¤·¤Ê¤¤¤Ù¤­¤À¤È¤·¤Æ¤¤¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢Linux 2.6.23 °Ê¹ß¤Ç¤Ï¡¢¥ê¥½¡¼¥¹¾å¸Â +が返す値はプロセスの生存中は変化しないべきだとしている。 +しかしながら、Linux 2.6.23 以降では、リソース上限 .B RLIMIT_STACK -¤¬ÊѲ½¤·¤¿¾ì¹ç¡¢ -¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤È´Ä¶­ÊÑ¿ô¤òÊÝ»ý¤¹¤ë¤¿¤á¤Î¶õ´Ö¤ËÂФ¹¤ë¾å¸Â¤¬ -ÊѲ½¤·¤¿¤³¤È¤òÈ¿±Ç¤·¤Æ¡¢ +が変化した場合、 +コマンドライン引き数と環境変数を保持するための空間に対する上限が +変化したことを反映して、 .B _SC_ARG_MAX -¤¬ÊÖ¤¹ÃͤâÊѲ½¤¹¤ë¡£ +が返す値も変化する。 .\" -.\" .SH ¥Ð¥° -.\" Linux ÈǤÎÃæ¤Ë¤Ï¡¢ELF ¥¤¥ó¥¿¥×¥ê¥¿¤Ë¤ª¤±¤ë -.\" ¸¢¸Â¤Î¥Á¥§¥Ã¥¯¤Ë¼ºÇÔ¤¹¤ë¤â¤Î¤¬¤¢¤ë¡£ -.\" ¤³¤ì¤Ï¥»¥­¥å¥ê¥Æ¥£¥Û¡¼¥ë¤Ç¤¢¤ë¡£ -.\" ¤Ê¤¼¤Ê¤é¡¢¥æ¡¼¥¶¤ËǤ°Õ¤Î¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤òµö²Ä¤·¤¿¤ê¡¢ -.\" Æɤ߹þ¤ß¤Î¤¿¤á¤Ë¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¤ò´¬¤­Ìᤷ¤òµö²Ä¤·¤¿¤ê¤¹¤ë¡£ -.\" Linux ÈǤÎÃæ¤Ë¤Ï +.\" .SH バグ +.\" Linux 版の中には、ELF インタプリタにおける +.\" 権限のチェックに失敗するものがある。 +.\" これはセキュリティホールである。 +.\" なぜなら、ユーザに任意のファイルをオープンを許可したり、 +.\" 読み込みのためにテープデバイスを巻き戻しを許可したりする。 +.\" Linux 版の中には .\" .BR execve () -.\" ¤Ë¾¤Î¥»¥­¥å¥ê¥Æ¥£¥Û¡¼¥ë¤¬ -.\" ¸ºß¤¹¤ë¤â¤Î¤â¤¢¤ê¡¢¹ªÌ¯¤ËºÙ¹©¤µ¤ì¤¿ ELF ¥Ð¥¤¥Ê¥ê¤Ë¤è¤Ã¤Æ -.\" ¥µ¡¼¥Ó¥¹µñÈÝ (denial of service) ¤ËÍøÍѤµ¤ì¤Æ¤·¤Þ¤¦¡£ -.\" 2.0.34 ¤Þ¤¿ 2.2.15 ¤Ë¤Ï¡¢ÃΤé¤ì¤Æ¤¤¤ëÌäÂê¤Ï¤Ê¤¤¡£ -.SS Îò»Ë -UNIX V6 ¤Ç¤Ï +.\" に他のセキュリティホールが +.\" 存在するものもあり、巧妙に細工された ELF バイナリによって +.\" サービス拒否 (denial of service) に利用されてしまう。 +.\" 2.0.34 また 2.2.15 には、知られている問題はない。 +.SS 歴史 +UNIX V6 では .BR exec () -¥³¡¼¥ë¤Î°ú¤­¿ô¥ê¥¹¥È¤Ï 0 ¤Ç½ªÃ¼¤µ¤ì¡¢ +コールの引き数リストは 0 で終端され、 .I main -¤Î°ú¤­¿ô¥ê¥¹¥È¤Ï \-1 ¤Ç½ªÃ¼¤µ¤ì¤Æ¤¤¤¿¡£ -¤½¤Î¤¿¤á¡¢ +の引き数リストは \-1 で終端されていた。 +そのため、 .I main -¤Î°ú¤­¿ô¥ê¥¹¥È¤Ï¡¢¤½¤Î¸å¤Î +の引き数リストは、その後の .BR exec () -¥³¡¼¥ë¤Ë¤ÏľÀÜ»ÈÍѤǤ­¤Ê¤«¤Ã¤¿¡£ -UNIX V7 °Ê¹ß¤Ç¤Ï¡¢¤È¤â¤Ë NULL ¤Ç½ªÃ¼¤µ¤ì¤ë¡£ -.SH Îã -¤³¤Î¥×¥í¥°¥é¥à¤Ï¡¢°Ê²¼¤ÎÆó¤ÄÌÜ¤Î¥×¥í¥°¥é¥à¤«¤é¼Â¹Ô¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ -¥³¥Þ¥ó¥É¥é¥¤¥ó¤ò 1¹Ô¤Ë 1¸Ä¤º¤Äɽ¼¨¤¹¤ë¤À¤±¤Î¥×¥í¥°¥é¥à¤Ç¤¢¤ë¡£ +コールには直接使用できなかった。 +UNIX V7 以降では、ともに NULL で終端される。 +.SH 例 +このプログラムは、以下の二つ目のプログラムから実行するためのものである。 +コマンドラインを 1行に 1個ずつ表示するだけのプログラムである。 .in +4n .nf @@ -571,8 +571,8 @@ main(int argc, char *argv[]) .fi .in -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ç»ØÄꤷ¤¿Ì¾Á°¤Î¥×¥í¥°¥é¥à¤ò -¼Â¹Ô¤¹¤ë¤Î¤Ë»È¤¦¡£ +以下のプログラムは、コマンドライン引き数で指定した名前のプログラムを +実行するのに使う。 .in +4n .nf @@ -602,8 +602,8 @@ main(int argc, char *argv[]) .fi .in -Æó¤ÄÌÜ¤Î¥×¥í¥°¥é¥à¤ò»È¤Ã¤Æ°ì¤ÄÌÜ¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤Ë¤Ï -°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë¡£ +二つ目のプログラムを使って一つ目のプログラムを実行するには +以下のようにする。 .in +4n .nf @@ -616,10 +616,10 @@ argv[2]: world .fi .in -¤µ¤é¤Ë¡¢¤³¤ì¤é¤Î¥×¥í¥°¥é¥à¤ò»È¤Ã¤Æ¡¢¥¹¥¯¥ê¥×¥È¡¦¥¤¥ó¥¿¥×¥ê¥¿¤ÎÎã¤ò¼¨¤¹¡£ -¤³¤Î¤¿¤á¤Ë¡¢¡Ö¥¤¥ó¥¿¥×¥ê¥¿¡×¤È¤·¤ÆÀè¤Û¤ÉºîÀ®¤·¤¿¥×¥í¥°¥é¥à +さらに、これらのプログラムを使って、スクリプト・インタプリタの例を示す。 +このために、「インタプリタ」として先ほど作成したプログラム .I myecho -¤ò»È¤¦¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë¡£ +を使うスクリプトを作成する。 .in +4n .nf @@ -630,7 +630,7 @@ argv[2]: world .fi .in -ºîÀ®¤·¤Æ¤ª¤¤¤¿¥×¥í¥°¥é¥à¤ò»È¤Ã¤Æ¥¹¥¯¥ê¥×¥È¤ò¼Â¹Ô¤¹¤ë¡£ +作成しておいたプログラムを使ってスクリプトを実行する。 .in +4n .nf @@ -642,7 +642,7 @@ argv[3]: hello argv[4]: world .fi .in -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chmod (2), .BR fork (2), .BR ptrace (2), diff --git a/release/man2/exit_group.2 b/release/man2/exit_group.2 index 3e36cf25..b17a52fa 100644 --- a/release/man2/exit_group.2 +++ b/release/man2/exit_group.2 @@ -26,30 +26,30 @@ .\" by Yuichi SATO .\" .TH EXIT_GROUP 2 2008-11-27 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -exit_group \- ¥×¥í¥»¥¹Ãæ¤ÎÁ´¤Æ¤Î¥¹¥ì¥Ã¥É¤ò exit ¤µ¤»¤ë -.SH ½ñ¼° +.SH 名前 +exit_group \- プロセス中の全てのスレッドを exit させる +.SH 書式 .nf .B #include .sp .BI "void exit_group(int " status ); .fi -.SH ÀâÌÀ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢´ðËÜŪ¤Ë +.SH 説明 +このシステムコールは、基本的に .BR exit (2) -¤ÈÅù¤·¤¤¤¬¡¢ -¸Æ¤Ó½Ð¤·¸µ¤Î¥¹¥ì¥Ã¥É¤À¤±¤Ç¤Ê¤¯¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥¹¥ì¥Ã¥É¥°¥ë¡¼¥×¤Ë -¤¢¤ëÁ´¤Æ¤Î¥¹¥ì¥Ã¥É¤ò½ªÎ»¤µ¤»¤ëÅÀ¤¬°Û¤Ê¤ë¡£ -.SH ÊÖ¤êÃÍ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÃͤòÊÖ¤µ¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤Î¥³¡¼¥ë¤Ï¡¢Linux 2.5.35 °Ê¹ß¤Ë¸ºß¤¹¤ë¡£ -.SH Ãí°Õ -glibc 2.3 °Ê¹ß¤Ç¤Ï¡¢ +と等しいが、 +呼び出し元のスレッドだけでなく、呼び出し元のプロセスのスレッドグループに +ある全てのスレッドを終了させる点が異なる。 +.SH 返り値 +このシステムコールは値を返さない。 +.SH バージョン +このコールは、Linux 2.5.35 以降に存在する。 +.SH 注意 +glibc 2.3 以降では、 .BR exit (2) -¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿ºÝ¤Ë¡¢ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬µ¯Æ°¤µ¤ì¤ë¡£ -.SH ½àµò -¤³¤Î¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +のラッパー関数が呼び出された際に、 +このシステムコールが起動される。 +.SH 準拠 +このコールは Linux 独自である。 +.SH 関連項目 .BR exit (2) diff --git a/release/man2/faccessat.2 b/release/man2/faccessat.2 index d9f53bca..64760d4a 100644 --- a/release/man2/faccessat.2 +++ b/release/man2/faccessat.2 @@ -29,12 +29,12 @@ .\" Updated 2007-05-04, Akihiro MOTOKI .\" .TH FACCESSAT 2 2009-12-13 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -faccessat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÁêÂÐŪ¤Ê°ÌÃ֤ˤ¢¤ë -¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹¸¢¤ò¥Á¥§¥Ã¥¯¤¹¤ë -.SH ½ñ¼° +.SH 名前 +faccessat \- ディレクトリファイルディスクリプタから相対的な位置にある +ファイルのアクセス権をチェックする +.SH 書式 .nf -.B #include /* AT_* Äê¿ô¤ÎÄêµÁ */ +.B #include /* AT_* 定数の定義 */ .B #include .sp .BI "int faccessat(int " dirfd ", const char *" pathname ", int " \ @@ -42,9 +42,9 @@ mode ", int " flags ); .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR faccessat (): @@ -52,112 +52,112 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR faccessat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë°ã¤¤¤¬¤¢¤ë°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明している違いがある以外は、 .BR access (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .I pathname -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パスである場合、 +ファイルディスクリプタ .I dirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( access (2) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤Î -ÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスのカレントワーキングディレクトリからの +相対パスとなる)。 .I pathname -¤¬ÁêÂХѥ¹¤Ç¤¢¤ê¡¢¤«¤Ä +が相対パスであり、かつ .I dirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I pathname -¤Ï +は .RB ( access (2) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .I pathname -¤¬ÀäÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ +が絶対パスである場合、 .I dirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .I flags -¤Ï°Ê²¼¤ÎÃͤò 0 ¸Ä°Ê¾å OR ¤·¤Æºî¤é¤ì¤ë¡£ +は以下の値を 0 個以上 OR して作られる。 .TP .B AT_EACCESS -¼Â¸ú (effective) ¥æ¡¼¥¶ ID ¤È¼Â¸ú¥°¥ë¡¼¥× ID ¤ò»È¤Ã¤Æ¡¢ -¥¢¥¯¥»¥¹¸¢¤Î¥Á¥§¥Ã¥¯¤ò¹Ô¤¦¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +実効 (effective) ユーザ ID と実効グループ ID を使って、 +アクセス権のチェックを行う。 +デフォルトでは、 .BR faccessat () -¤Ï +は .RB ( access (2) -¤ÈƱÍͤË) ¼Â ID ¤ò»È¤¦¡£ +と同様に) 実 ID を使う。 .TP .B AT_SYMLINK_NOFOLLOW .I pathname -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¤Ï¡¢¤½¤ì¤òé¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ -¥ê¥ó¥¯¼«¿È¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç (Á´¤Æ¤ÎÍ׵ᤵ¤ì¤¿µö²Ä¤¬ÆÀ¤é¤ì¤¿¤é)¡¢ +がシンボリックリンクの場合は、それを辿るのではなく、 +リンク自身についての情報を返す。 +.SH 返り値 +成功した場合 (全ての要求された許可が得られたら)、 .BR faccessat () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +は 0 を返す。 +エラーの場合、\-1 が返され、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +にはエラーを示す値が設定される。 +.SH エラー .BR access (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR faccessat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .BR faccessat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .I dirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B EINVAL .I flags -¤ËÉÔÀµ¤Ê¥Õ¥é¥°Ãͤ¬»ØÄꤵ¤ì¤¿¡£ +に不正なフラグ値が指定された。 .TP .B ENOTDIR .I pathname -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I dirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 +.SH バージョン .BR faccessat () -¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ -.SH ½àµò +は Linux カーネル 2.6.16 で追加された。 +.SH 準拠 POSIX.1-2008. -.SH Ãí°Õ +.SH 注意 .BR faccessat () -¤¬É¬ÍפÊÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が必要な理由については、 .BR openat (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SS glibc ¤Ë¤Ä¤¤¤Æ¤ÎÃí°Õ +を参照すること。 +.SS glibc についての注意 .B AT_EACCESS -¤È +と .B AT_SYMLINK_NOFOLLOW -¥Õ¥é¥°¤Ï¡¢ +フラグは、 .BR faccessat () -¤Î glibc ¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ç¼ÂºÝ¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥é¥°¤Î¤¤¤º¤ì¤«¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ -¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¥¢¥¯¥»¥¹¸¢¤ò·èÄꤹ¤ë¤¿¤á¤Ë +の glibc ラッパー関数で実際に実装されている。 +これらのフラグのいずれかが指定された場合、 +ラッパー関数はアクセス権を決定するために .BR fstatat (2) -¤ò»È¤¦¡£ -.SH ´ØÏ¢¹àÌÜ +を使う。 +.SH 関連項目 .BR access (2), .BR openat (2), .BR eauidaccess (3), diff --git a/release/man2/fallocate.2 b/release/man2/fallocate.2 index 26744065..b962e307 100644 --- a/release/man2/fallocate.2 +++ b/release/man2/fallocate.2 @@ -8,55 +8,55 @@ .\" Updated 2008-10-13, Akihiro MOTOKI , LDP v3.11 .\" .TH FALLOCATE 2 2010-09-10 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -fallocate \- ¥Õ¥¡¥¤¥ë¶õ´Ö¤ÎÁàºî -.SH ½ñ¼° +.SH 名前 +fallocate \- ファイル空間の操作 +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .BI "int fallocate(int " fd ", int " mode ", off_t " offset \ ", off_t " len ");" .fi -.SH ÀâÌÀ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢°Ü¿¢À­¤Î¤Ê¤¤¡¢Linux ¸ÇÍ­¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤¢¤ë¡£ -°Ü¿¢À­¤¬É¬Íפʾì¹ç¤Ï¡¢¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¥Ç¥£¥¹¥¯¶õ´Ö¤ò³Î¼Â¤Ë³ÎÊݤ¹¤ë¤¿¤á¤Ë¡¢ -POSIX.1 ¤Çµ¬Äꤵ¤ì¤¿ÊýË¡¤Ç¤¢¤ë +.SH 説明 +このシステムコールは、移植性のない、Linux 固有のシステムコールである。 +移植性が必要な場合は、ファイルに対してディスク空間を確実に確保するために、 +POSIX.1 で規定された方法である .BR posix_fallocate (3) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .BR fallocate () -¤ò»È¤¦¤È¡¢ +を使うと、 .I fd -¤¬»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥Ç¥£¥¹¥¯¶õ´Ö¤òľÀÜÁàºî¤Ç¤­¤ë¡£ -ÁàºîÂоݤϡ¢ +が参照するファイルに割り当てられたディスク空間を直接操作できる。 +操作対象は、 .I offset -¤«¤é»Ï¤Þ¤ëŤµ +から始まる長さ .I len -¥Ð¥¤¥È¤ÎÎΰè¤Ç¤¢¤ë¡£ +バイトの領域である。 .I mode -°ú¤­¿ô¤Ï¡¢»ØÄꤵ¤ì¤¿Îΰè¤ËÂФ·¤Æ¼Â¹Ô¤¹¤ëÁàºî¤ò»ØÄꤹ¤ë¡£ -¸½ºß¤Î¤È¤³¤í¡¢ +引き数は、指定された領域に対して実行する操作を指定する。 +現在のところ、 .I mode -¤Ë»ØÄê¤Ç¤­¤ë¥Õ¥é¥°¤Ï°Ê²¼¤Î°ì¤Ä¤À¤±¤Ç¤¢¤ë¡£ +に指定できるフラグは以下の一つだけである。 .TP .B FALLOC_FL_KEEP_SIZE -¤³¤Î¥Õ¥é¥°¤Ï¡¢ +このフラグは、 .I offset -¤È +と .I len -¤Ç»ØÄꤵ¤ì¤¿Îΰè¤Î¥Ç¥£¥¹¥¯¶õ´Ö¤ò³ä¤êÅö¤Æ¡¢¤½¤Î¶õ´Ö¤ò 0 ¤Ç½é´ü²½¤¹¤ë¡£ -¸Æ¤Ó½Ð¤·¤¬À®¸ù¤¹¤ë¤È¡¢¤½¤ì¤Ë³¤¤¤Æ¤³¤ÎÎΰè¤Ø¤Î½ñ¤­¹þ¤ß¤¬¹Ô¤ï¤ì¤ë¤¬¡¢ -¥Ç¥£¥¹¥¯¶õ´Ö¤ÎÉÔ­¤Ë¤è¤ë½ñ¤­¹þ¤ß¼ºÇÔ¤¬È¯À¸¤·¤Ê¤¤¤³¤È¤¬Êݾڤµ¤ì¤ë¡£ -¥Õ¥¡¥¤¥ëËöÈø¤è¤ê¸å¤í¤ÎÎΰè¤Ë¤Ä¤¤¤Æ 0 ¤ÇËä¤á¤¿¥Ö¥í¥Ã¥¯¤òÁ°¤â¤Ã¤Æ -³ä¤êÅö¤Æ¤Æ¤ª¤¯¤³¤È¤Ï¡¢Äɵ­ (append) ¤Îºî¶ÈÉé²Ù¤òºÇŬ²½¤¹¤ë¤Î¤Ë -Í­ÍѤǤ¢¤ë¡£ -¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤¬ +で指定された領域のディスク空間を割り当て、その空間を 0 で初期化する。 +呼び出しが成功すると、それに続いてこの領域への書き込みが行われるが、 +ディスク空間の不足による書き込み失敗が発生しないことが保証される。 +ファイル末尾より後ろの領域について 0 で埋めたブロックを前もって +割り当てておくことは、追記 (append) の作業負荷を最適化するのに +有用である。 +ファイルサイズが .IR offset + len -¤è¤ê¤â¾®¤µ¤¤¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢¥Ö¥í¥Ã¥¯¤ÎÁ°¤â¤Ã¤Æ¤Î³ä¤êÅö¤Æ¤Ë¤è¤ê +よりも小さい場合であっても、ブロックの前もっての割り当てにより .RB ( stat (2) -¤¬ÊÖ¤¹) ¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤ÏÊѹ¹¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ +が返す) ファイルサイズは変更されることはない。 .\" .\" Note from Amit Arora: .\" There were few more flags which were discussed, but none of @@ -67,78 +67,78 @@ POSIX.1 .\" if any/which one of these flags will make it to the later kernels. .PP .B FALLOC_FL_KEEP_SIZE -¥Õ¥é¥°¤¬ +フラグが .I mode -¤Ë»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï +に指定されなかった場合、デフォルトの動作は .B FALLOC_FL_KEEP_SIZE -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤È¤Û¤È¤ó¤ÉƱ¤¸¤È¤Ê¤ë¡£ -Í£°ì¤Î°ã¤¤¤Ï¡¢ +フラグが指定された場合とほとんど同じとなる。 +唯一の違いは、 .I "offset + len" -¤¬¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤è¤ê¤âÂ礭¤«¤Ã¤¿¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¤¬À®¸ù¤¹¤ë¤È -¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤¬Êѹ¹¤µ¤ì¤ëÅÀ¤Ç¤¢¤ë¡£ -¤³¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¡¢¥é¥¤¥Ö¥é¥ê´Ø¿ô +がファイルサイズよりも大きかった場合、呼び出しが成功すると +ファイルサイズが変更される点である。 +このデフォルトの動作は、ライブラリ関数 .BR posix_fallocate (3) -¤ÎÆ°ºî¤ÈÈó¾ï¤Ë»÷¤Æ¤¤¤ë¡£¤³¤ì¤Ï +の動作と非常に似ている。これは .BR posix_fallocate (3) -¤òºÇŬ¤Ë¼ÂÁõ¤¹¤ë¼êÃʤòÄ󶡤¹¤ë¤³¤È¤òÌÜŪ¤È¤·¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£ +を最適に実装する手段を提供することを目的としているからである。 .PP -³ä¤êÅö¤Æ¤Ï¥Ö¥í¥Ã¥¯¥µ¥¤¥ºÃ±°Ì¤Ç¹Ô¤ï¤ì¤ë¤¿¤á¡¢ +割り当てはブロックサイズ単位で行われるため、 .BR fallocate () -¤Ï»ØÄꤵ¤ì¤¿¤è¤ê¤âÂ礭¤ÊÎΰè¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +は指定されたよりも大きな領域を割り当てることがある。 +.SH 返り値 .BR fallocate () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤·¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +は成功すると 0 を返し、エラーの場合は \-1 を返す。 +.SH エラー .TP .B EBADF .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¤«¡¢ -½ñ¤­¹þ¤ßÍѤȤ·¤Æ¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +が有効なファイルディスクリプタでないか、 +書き込み用としてオープンされていない。 .TP .B EFBIG .I offset + len -¤¬¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤ÎºÇÂçÃͤè¤ê¤âÂ礭¤¤¡£ +がファイルサイズの最大値よりも大きい。 .TP .B EINTR -¼Â¹ÔÃæ¤Ë¥·¥°¥Ê¥ë¤¬Ê᪤µ¤ì¤¿¡£ +実行中にシグナルが捕捉された。 .TP .B EINVAL .I offset -¤¬ 0 ̤Ëþ¤Ç¤¢¤ë¤«¡¢ +が 0 未満であるか、 .I len -¤¬ 0 °Ê²¼¤Ç¤¢¤ë¡£ +が 0 以下である。 .TP .B EIO -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤È¤ÎÆɤ߽ñ¤­Ãæ¤ËÆþ½ÐÎÏ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +ファイルシステムとの読み書き中に入出力エラーが発生した。 .TP .B ENODEV .I fd -¤¬Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤«¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤ +が通常のファイルかディレクトリを参照していない .RI ( fd -¤¬¥Ñ¥¤¥×¤ä FIFO ¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¡¢Ê̤Υ¨¥é¡¼¤¬È¯À¸¤¹¤ë)¡£ +がパイプや FIFO を参照している場合、別のエラーが発生する)。 .TP .B ENOSPC .I fd -¤¬»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¤ò´Þ¤à¥Ç¥Ð¥¤¥¹¤Ë½½Ê¬¤Ê¶õ¤­Îΰ褬¤Ê¤¤¡£ +が参照するファイルを含むデバイスに十分な空き領域がない。 .TP .B ENOSYS .I fd -¤¬»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¤ò´Þ¤à¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ -»ØÄꤵ¤ì¤¿Áàºî¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +が参照するファイルを含むファイルシステムが +指定された操作をサポートしていない。 .TP .B EOPNOTSUPP .I fd -¤¬»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¤ò´Þ¤à¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ +が参照するファイルを含むファイルシステムが .I mode -¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +をサポートしていない。 +.SH バージョン .BR fallocate () -¤Ï¥«¡¼¥Í¥ë 2.6.23 °Ê¹ß¤Î Linux ¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -glibc ¤Ç¤ÎÂбþ¤Ï¥Ð¡¼¥¸¥ç¥ó 3.10 °Ê¹ß¤Ç¹Ô¤ï¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò +はカーネル 2.6.23 以降の Linux で利用可能である。 +glibc での対応はバージョン 3.10 以降で行われている。 +.SH 準拠 .BR fallocate () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +は Linux 固有である。 +.SH 関連項目 .BR ftruncate (2), .BR posix_fadvise (3), .BR posix_fallocate (3) diff --git a/release/man2/fchmodat.2 b/release/man2/fchmodat.2 index 2d847147..821cdcc3 100644 --- a/release/man2/fchmodat.2 +++ b/release/man2/fchmodat.2 @@ -27,11 +27,11 @@ .\" Translated 2006-10-14 by Yuichi SATO , LDP v2.39 .\" .TH FCHMODAT 2 2009-12-13 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -fchmodat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÁêÂÐŪ¤Ê°ÌÃ֤ˤ¢¤ë¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹¸¢¤òÊѹ¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +fchmodat \- ディレクトリファイルディスクリプタから相対的な位置にあるファイルのアクセス権を変更する +.SH 書式 .nf -.B #include /* AT_* Äê¿ô¤ÎÄêµÁ */ +.B #include /* AT_* 定数の定義 */ .B #include .sp .BI "int fchmodat(int " dirfd ", const char *" pathname ", mode_t " \ @@ -39,9 +39,9 @@ mode ", int " flags ); .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR fchmodat (): @@ -49,100 +49,100 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR fchmodat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë°ã¤¤¤¬¤¢¤ë°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明している違いがある以外は、 .BR chmod (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .I pathname -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パスである場合、 +ファイルディスクリプタ .I dirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( chmod (2) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤Î -ÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスのカレントワーキングディレクトリからの +相対パスとなる)。 .I pathname -¤¬ÁêÂХѥ¹¤Ç¤¢¤ê¡¢¤«¤Ä +が相対パスであり、かつ .I dirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I pathname -¤Ï +は .RB ( chmod (2) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .I pathname -¤¬ÀäÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ +が絶対パスである場合、 .I dirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .I flags -¤Ï 0 ¤Þ¤¿¤Ï°Ê²¼¤Î¥Õ¥é¥°¤Ç¤¢¤ë¡£ +は 0 または以下のフラグである。 .TP .B AT_SYMLINK_NOFOLLOW .I pathname -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¤Ï¡¢¤½¤ì¤òé¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ -¥ê¥ó¥¯¼«¿È¤ËÂФ·¤Æ (¥¢¥¯¥»¥¹¸¢¤ÎÊѹ¹¤Î) Áàºî¤ò¹Ô¤¦¡£ -¤³¤Î¥Õ¥é¥°¤Ï¸½ºß¤Î¤È¤³¤í¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +がシンボリックリンクの場合は、それを辿るのではなく、 +リンク自身に対して (アクセス権の変更の) 操作を行う。 +このフラグは現在のところ実装されていない。 +.SH 返り値 +成功した場合、 .BR fchmodat () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +は 0 を返す。 +エラーの場合、\-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +にはエラーを示す値が設定される。 +.SH エラー .BR chmod (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR fchmodat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .BR fchmodat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .I dirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B EINVAL .I flags -¤ËÉÔÀµ¤Ê¥Õ¥é¥°Ãͤ¬»ØÄꤵ¤ì¤¿¡£ +に不正なフラグ値が指定された。 .TP .B ENOTDIR .I pathname -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I dirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 .TP .B ENOTSUP .I flags -¤Ë¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤ÃÍ +にサポートされていない値 .B AT_SYMLINK_NOFOLLOW -¤¬ -»ØÄꤵ¤ì¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +が +指定された。 +.SH バージョン .BR fchmodat () -¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ -.SH ½àµò +は Linux カーネル 2.6.16 で追加された。 +.SH 準拠 POSIX.1-2008. -.SH Ãí°Õ +.SH 注意 .BR fchmodat () -¤¬É¬ÍפÊÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が必要な理由については、 .BR openat (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を参照すること。 +.SH 関連項目 .BR chmod (2), .BR openat (2), .BR path_resolution (7), diff --git a/release/man2/fchownat.2 b/release/man2/fchownat.2 index d8bccfd5..74389110 100644 --- a/release/man2/fchownat.2 +++ b/release/man2/fchownat.2 @@ -27,11 +27,11 @@ .\" Translated 2006-10-14 by Yuichi SATO , LDP v2.39 .\" .TH FCHOWNAT 2 2009-12-13 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -fchownat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÁêÂÐŪ¤Ê°ÌÃ֤ˤ¢¤ë¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤òÊѹ¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +fchownat \- ディレクトリファイルディスクリプタから相対的な位置にあるファイルの所有者を変更する +.SH 書式 .nf -.B #include /* AT_* Äê¿ô¤ÎÄêµÁ */ +.B #include /* AT_* 定数の定義 */ .B #include .sp .BI "int fchownat(int " dirfd ", const char *" pathname , @@ -39,9 +39,9 @@ fchownat \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR fchownat (): @@ -49,99 +49,99 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .RE .ad .PD .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR fchownat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë°ã¤¤¤¬¤¢¤ë°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明している違いがある以外は、 .BR chown (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .I pathname -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パスである場合、 +ファイルディスクリプタ .I dirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( chown (2) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤Î -ÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスのカレントワーキングディレクトリからの +相対パスとなる)。 .I pathname -¤¬ÁêÂХѥ¹¤Ç¤¢¤ê¡¢¤«¤Ä +が相対パスであり、かつ .I dirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I pathname -¤Ï +は .RB ( chown (2) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .I pathname -¤¬ÀäÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ +が絶対パスである場合、 .I dirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .I flags -¤Ï 0 ¤Þ¤¿¤Ï°Ê²¼¤Î¥Õ¥é¥°¤Ç¤¢¤ë¡£ +は 0 または以下のフラグである。 .TP .B AT_SYMLINK_NOFOLLOW .I pathname -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¤Ï¡¢¤½¤ì¤òé¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ +がシンボリックリンクの場合は、それを辿るのではなく、 .BR lchown (2) -¤ÈƱÍͤ˥ê¥ó¥¯¼«¿È¤ËÂФ·¤Æ (½êÍ­¼Ô¤ÎÊѹ¹¤Î) Áàºî¤ò¹Ô¤¦ -(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +と同様にリンク自身に対して (所有者の変更の) 操作を行う +(デフォルトでは、 .BR fchownat () -¤Ï +は .BR chown (2) -¤ÈƱÍͤ˥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òé¤ë)¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +と同様にシンボリックリンクを辿る)。 +.SH 返り値 +成功した場合、 .BR fchownat () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +は 0 を返す。 +エラーの場合、\-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +にはエラーを示す値が設定される。 +.SH エラー .BR chown (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR fchownat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .BR fchownat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .I dirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B EINVAL .I flags -¤ËÉÔÀµ¤Ê¥Õ¥é¥°Ãͤ¬»ØÄꤵ¤ì¤¿¡£ +に不正なフラグ値が指定された。 .TP .B ENOTDIR .I pathname -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I dirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 +.SH バージョン .BR fchownat () -¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ -.SH ½àµò +は Linux カーネル 2.6.16 で追加された。 +.SH 準拠 POSIX.1-2008. -Solaris ¤Ë¤Ï¡¢¤³¤ì¤ÈƱ¤¸¤è¤¦¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Â¸ºß¤¹¤ë¡£ -.SH Ãí°Õ +Solaris には、これと同じようなシステムコールが存在する。 +.SH 注意 .BR fchownat () -¤¬É¬ÍפÊÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が必要な理由については、 .BR openat (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を参照すること。 +.SH 関連項目 .BR chown (2), .BR openat (2), .BR path_resolution (7), diff --git a/release/man2/fcntl.2 b/release/man2/fcntl.2 index beb12c0b..9fc62745 100644 --- a/release/man2/fcntl.2 +++ b/release/man2/fcntl.2 @@ -72,156 +72,156 @@ .\" Updated 2008-09-19, Akihiro MOTOKI, LDP v3.09 .\" Updated 2010-04-23, Akihiro MOTOKI, LDP v3.24 .\" -.\"WORD: asynchronous I/O ÈóƱ´ü I/O -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: open file description ¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò -.\"WORD: feature test macro µ¡Ç½¸¡ºº¥Þ¥¯¥í -.\"WORD: I/O availability signal I/O ¤¬ÍøÍѲÄǽ¤Ë¤Ê¤Ã¤¿¤³¤È¤ò¼¨¤¹¥·¥°¥Ê¥ë +.\"WORD: asynchronous I/O 非同期 I/O +.\"WORD: descriptor ディスクリプタ +.\"WORD: open file description オープンファイル記述 +.\"WORD: feature test macro 機能検査マクロ +.\"WORD: I/O availability signal I/O が利用可能になったことを示すシグナル .\" .TH FCNTL 2 2009-10-17 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -fcntl \- ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÁàºî¤ò¹Ô¤¦ -.SH ½ñ¼° +.SH 名前 +fcntl \- ファイルディスクリプタの操作を行う +.SH 書式 .nf .B #include .B #include .sp .BI "int fcntl(int " fd ", int " cmd ", ... /* " arg " */ );" .fi -.SH ÀâÌÀ +.SH 説明 .BR fcntl () -¤Ï¡¢¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +は、オープンされたファイルディスクリプタ .I fd -¤Ë´Ø¤·¤Æ²¼µ­¤ÎÁàºî¤ò¹Ô¤¦¡£Áàºî¤Ï +に関して下記の操作を行う。操作は .I cmd -¤Ë¤è¤Ã¤Æ·è¤Þ¤ë: +によって決まる: .BR fcntl () -¤Ï¥ª¥×¥·¥ç¥ó¤È¤·¤ÆÂè»°°ú¤­¿ô¤ò¤È¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -Âè»°°ú¤­¿ô¤¬É¬Íפ«¤É¤¦¤«¤Ï +はオプションとして第三引き数をとることができる。 +第三引き数が必要かどうかは .I cmd -¤Ë¤è¤ê·è¤Þ¤ë¡£ -ɬÍפʰú¤­¿ô¤Î·¿¤Ï +により決まる。 +必要な引き数の型は .I cmd -̾¤Î¸å¤í¤Î³ç¸ÌÆâ¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë -(¤Û¤È¤ó¤É¤Î¾ì¹ç¡¢É¬Íפʷ¿¤Ï +名の後ろの括弧内で指定されている +(ほとんどの場合、必要な型は .I long -¤Ç¤¢¤ê¡¢¤³¤Î°ú¤­¿ô¤òɽ¤¹¤Î¤Ë +であり、この引き数を表すのに .I arg -¤È¤¤¤¦Ì¾Á°¤ò»È¤Ã¤Æ¤¤¤ë)¡£ -°ú¤­¿ô¤¬É¬Íפʤ¤¾ì¹ç¤Ë¤Ï +という名前を使っている)。 +引き数が必要ない場合には .I void -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¡£ -.SS "¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÊ£À½" +が指定されている。 +.SS "ファイルディスクリプタの複製" .TP .BR F_DUPFD " (\fIlong\fP)" -ÍøÍѲÄǽ¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¦¤Á¡¢ +利用可能なファイルディスクリプタのうち、 .I arg -°Ê¾å¤ÇºÇ¾®¤Î¤â¤Î¤òõ¤·¡¢ +以上で最小のものを探し、 .I fd -¤Î¥³¥Ô¡¼¤È¤¹¤ë¡£¤³¤ì¤ÏÊ̤ηÁ¤Î +のコピーとする。これは別の形の .BR dup2 (2) -¤Ç¤¢¤ë¡£ +である。 .BR dup2 (2) -¤Ç¤Ï»ØÄꤵ¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬»È¤ï¤ì¤ëÅÀ¤¬°ã¤¦¡£ +では指定されたディスクリプタが使われる点が違う。 .IP -À®¸ù¤¹¤ë¤È¡¢¿·¤·¤¤¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÊÖ¤µ¤ì¤ë¡£ +成功すると、新しいディスクリプタが返される。 .IP -¾ÜºÙ¤Ï +詳細は .BR dup (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .TP -.BR F_DUPFD_CLOEXEC " (\fIlong\fP; Linux 2.6.24 °Ê¹ß)" +.BR F_DUPFD_CLOEXEC " (\fIlong\fP; Linux 2.6.24 以降)" .B F_DUPFD -¤ÈƱÍͤÀ¤¬¡¢¤½¤ì¤Ë²Ã¤¨¤ÆÊ£À½¤µ¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ -close-on-exec ¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢¥×¥í¥°¥é¥à¤Ï +と同様だが、それに加えて複製されたディスクリプタに対して +close-on-exec フラグをセットする。 +このフラグを指定することで、プログラムは .B FD_CLOEXEC -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤¿¤á¤Ë +フラグをセットするために .BR fcntl () -¤Î +の .B F_SETFD -Áàºî¤òÄɲäǹԤ¦É¬Íפ¬¤Ê¤¯¤Ê¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬¤Ê¤¼Í­ÍѤ«¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +操作を追加で行う必要がなくなる。 +このフラグがなぜ有用かについては、 .BR open (2) -¤Î +の .B O_CLOEXEC -¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ -.SS "¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Õ¥é¥°" -°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë´ØÏ¢¤¹¤ë¥Õ¥é¥° -¤òÁàºî¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¸½ºß¤Î¤È¤³¤í¡¢ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥Õ¥é¥°¤Ï°ì¤Ä¤À¤±¤Ç¤¢¤ë: +の説明を参照のこと。 +.SS "ファイルディスクリプタ・フラグ" +以下のコマンドを使って、ファイルディスクリプタに関連するフラグ +を操作することができる。 +現在のところ、定義されているフラグは一つだけである: .B FD_CLOEXEC -(close-on-exec ¥Õ¥é¥°)¡£ +(close-on-exec フラグ)。 .B FD_CLOEXEC -¥Ó¥Ã¥È¤¬ 0 ¤Ê¤é¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï +ビットが 0 なら、ファイルディスクリプタは .BR execve (2) -¤ò¹Ô¤Ã¤Æ¤â¥ª¡¼¥×¥ó¤µ¤ì¤¿¤Þ¤Þ¤À¤¬¡¢¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï¥¯¥í¡¼¥º¤µ¤ì¤ë¡£ +を行ってもオープンされたままだが、そうでない場合はクローズされる。 .TP .BR F_GETFD " (\fIvoid\fP)" -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Õ¥é¥°¤òÆɤ߽Ф¹¡£ +ファイルディスクリプタ・フラグを読み出す。 .I arg -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .TP .BR F_SETFD " (\fIlong\fP)" -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Õ¥é¥°¤Ë +ファイルディスクリプタ・フラグに .I arg -¤Ç»ØÄꤷ¤¿ÃͤòÀßÄꤹ¤ë¡£ -.SS "¥Õ¥¡¥¤¥ë¾õÂ֥ե饰" -¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò (open file description) ¤Ë¤Ï¡¢ -¥Õ¥¡¥¤¥ëµ­½ÒËè¤ËÀßÄꤵ¤ì¤ë¾õÂ֥ե饰¤¬¤¤¤¯¤Ä¤«¤¢¤ë¡£¤³¤ì¤é¤Î¥Õ¥é¥°¤Ï +で指定した値を設定する。 +.SS "ファイル状態フラグ" +オープンファイル記述 (open file description) には、 +ファイル記述毎に設定される状態フラグがいくつかある。これらのフラグは .BR open (2) -.\" ¤ä +.\" や .\" .BR creat (2) -¤Ë¤è¤Ã¤Æ½é´ü²½¤µ¤ì¡¢ +によって初期化され、 .BR fcntl (2) -¤Ë¤è¤êÊѹ¹¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£¤³¤ì¤é¤Ï¡¢ +により変更することもできる。これらは、 .RB ( dup (2), .BR fcntl (F_DUPFD), .BR fork (2) -¤Ê¤É¤Ç) Ê£À½¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿Æ±»Î¤Ï -Ʊ¤¸¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¤ò»²¾È¤¹¤ë¡£ -¤½¤Î¤¿¤á¡¢ -Ʊ¤¸¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤¬¶¦Í­¤µ¤ì¤ë¡£ +などで) 複製されたファイルディスクリプタ同士は +同じオープンファイル記述を参照する。 +そのため、 +同じファイル状態フラグが共有される。 -¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤È¤½¤Î°ÕÌ£¤Ï +ファイル状態フラグとその意味は .BR open (2) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡£ +で説明されている。 .TP .BR F_GETFL " (\fIvoid\fP)" -¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤òÆɤ߽Ф¹¡£ +ファイル状態フラグを読み出す。 .I arg -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .TP .BR F_SETFL " (\fIlong\fP)" -¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤Ë +ファイル状態フラグに .I arg -¤Ç»ØÄꤵ¤ì¤¿ÃͤòÀßÄꤹ¤ë¡£ +で指定された値を設定する。 .I arg -¤Î¤¦¤Á¡¢¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹¥â¡¼¥É +のうち、ファイルのアクセスモード .RB ( O_RDONLY ", " O_WRONLY ", " O_RDWR ) -¤È¥Õ¥¡¥¤¥ëºîÀ®¥Õ¥é¥° (¤¹¤Ê¤ï¤Á +とファイル作成フラグ (すなわち .BR O_CREAT ", " O_EXCL ", " O_NOCTTY ", " O_TRUNC ) -¤Ë´Ø¤¹¤ë¥Ó¥Ã¥È¤Ï̵»ë¤µ¤ì¤ë¡£ -Linux ¤Ç¤Ï¡¢¤³¤Î¥³¥Þ¥ó¥É¤ÇÊѹ¹¤Ç¤­¤ë¤Î¤Ï +に関するビットは無視される。 +Linux では、このコマンドで変更できるのは .BR O_APPEND , .BR O_ASYNC , .BR O_DIRECT , .BR O_NOATIME , .B O_NONBLOCK -¥Õ¥é¥°¤À¤±¤Ç¤¢¤ë¡£ -.\" FIXME . POSIX.1-2001 ¤Ë¤è¤ë¤È¡¢ O_SYNC ¤â fcntl(2) ¤ÇÊѹ¹¤Ç¤­¤ë¤Ù¤­¤À¤¬¡¢ -.\" ¸½ºß¤Î¤È¤³¤í Linux ¤Ç¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.\" http://bugzilla.kernel.org/show_bug.cgi?id=5994 »²¾È -.SS "¥¢¥É¥Ð¥¤¥¶¥ê¡¦¥í¥Ã¥¯" +フラグだけである。 +.\" FIXME . POSIX.1-2001 によると、 O_SYNC も fcntl(2) で変更できるべきだが、 +.\" 現在のところ Linux では許可されていない。 +.\" http://bugzilla.kernel.org/show_bug.cgi?id=5994 参照 +.SS "アドバイザリ・ロック" .BR F_GETLK ", " F_SETLK ", " F_SETLKW -¤Ï¡¢¥ì¥³¡¼¥É¡¦¥í¥Ã¥¯¤Î³ÍÆÀ¡¿²òÊü¡¿¥Æ¥¹¥È¤Î¤¿¤á¤Ë»ÈÍѤ¹¤ë -(¥ì¥³¡¼¥É¡¦¥í¥Ã¥¯¤Ï¥Õ¥¡¥¤¥ë¥»¥°¥á¥ó¥È¡¦¥í¥Ã¥¯¤ä -¥Õ¥¡¥¤¥ëÎΰè¥í¥Ã¥¯¤È¤â¸Æ¤Ð¤ì¤ë)¡£ -»°ÈÖÌܤΰú¤­¿ô +は、レコード・ロックの獲得/解放/テストのために使用する +(レコード・ロックはファイルセグメント・ロックや +ファイル領域ロックとも呼ばれる)。 +三番目の引き数 .I lock -¤Ï¡¢°Ê²¼¤Ë¼¨¤¹¥Õ¥£¡¼¥ë¥É¤ò´Þ¤à¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë -(¥Õ¥£¡¼¥ë¥É¤Î½ç½ø¤Ï´Ø·¸¤Ê¤¯¡¢¹½Â¤ÂΤ˾¤Î¥Õ¥£¡¼¥ë¥É¤¬¤¢¤Ã¤Æ¤â¤è¤¤)¡£ +は、以下に示すフィールドを含む構造体へのポインタである +(フィールドの順序は関係なく、構造体に他のフィールドがあってもよい)。 .in +4n .nf .sp @@ -240,369 +240,369 @@ struct flock { .fi .in .P -¤³¤Î¹½Â¤ÂΤΠ+この構造体の .IR l_whence ", " l_start ", " l_len -¥Õ¥£¡¼¥ë¥É¤Ç¡¢¥í¥Ã¥¯¤ò¹Ô¤¤¤¿¤¤¥Ð¥¤¥ÈÈϰϤò»ØÄꤹ¤ë¡£ -¥Õ¥¡¥¤¥ë¤ÎËöÈø¤è¤ê¸å¤í¤Î¥Ð¥¤¥È¤ò¥í¥Ã¥¯¤¹¤ë¤³¤È¤Ï¤Ç¤­¤ë¤¬¡¢ -¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤è¤êÁ°¤Î¥Ð¥¤¥È¤ò¥í¥Ã¥¯¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +フィールドで、ロックを行いたいバイト範囲を指定する。 +ファイルの末尾より後ろのバイトをロックすることはできるが、 +ファイルの先頭より前のバイトをロックすることはできない。 .I l_start -¤Ï¥í¥Ã¥¯¤ò¹Ô¤¦Îΰè¤Î³«»Ï¥ª¥Õ¥»¥Ã¥È¤Ç¤¢¤ë¡£ -¤½¤Î°ÕÌ£¤Ï +はロックを行う領域の開始オフセットである。 +その意味は .I l_whence -¤Ë¤è¤ê°Û¤Ê¤ë: +により異なる: .I l_whence -¤¬ +が .B SEEK_SET -¤Î¾ì¹ç¤Ï¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤«¤é¤Î¥ª¥Õ¥»¥Ã¥È¡¢ +の場合はファイルの先頭からのオフセット、 .I l_whence -¤¬ +が .B SEEK_CUR -¤Î¾ì¹ç¤Ï¸½ºß¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤«¤é¤Î¥ª¥Õ¥»¥Ã¥È¡¢ +の場合は現在のファイルオフセットからのオフセット、 .I l_whence -¤¬ +が .B SEEK_END -¤Î¾ì¹ç¤Ï¥Õ¥¡¥¤¥ë¤ÎËöÈø¤«¤é¤Î¥ª¥Õ¥»¥Ã¥È¤È²ò¼á¤µ¤ì¤ë¡£ -¸å¤í¤Î£²¤Ä¤Î¾ì¹ç¤Ë¤Ï¡¢ -¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤è¤êÁ°¤Ë¤Ê¤é¤Ê¤¤ÈϰϤǡ¢ +の場合はファイルの末尾からのオフセットと解釈される。 +後ろの2つの場合には、 +ファイルの先頭より前にならない範囲で、 .I l_start -¤ËÉé¤ÎÃͤò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +に負の値を指定することができる。 .I l_len -¤Ï¥í¥Ã¥¯¤·¤¿¤¤¥Ð¥¤¥È¿ô¤ò¼¨¤¹¡£ +はロックしたいバイト数を示す。 .I l_len -¤¬Àµ¤Î¾ì¹ç¡¢¥í¥Ã¥¯¤µ¤ì¤ë¥Ð¥¤¥ÈÈÏ°Ï¤Ï +が正の場合、ロックされるバイト範囲は .I l_start -°Ê¾å +以上 .IR l_start + l_len \- 1 -°Ê²¼¤È¤Ê¤ë¡£ +以下となる。 .I l_len -¤Ë 0 ¤ò»ØÄꤷ¤¿¾ì¹ç¤ÏÆÃÊ̤ʰÕÌ£¤ò»ý¤Ä: +に 0 を指定した場合は特別な意味を持つ: .IR l_whence " and " l_start -¤Ç»ØÄꤵ¤ì¤ë°ÌÃÖ¤«¤é¥Õ¥¡¥¤¥ë¤ÎËöÈø¤Þ¤Ç¤ÎÁ´¤Æ¤Î¥Ð¥¤¥È¤ò¥í¥Ã¥¯¤¹¤ë -(¥Õ¥¡¥¤¥ë¤¬¤É¤ó¤Ê¤ËÂ礭¤¯¤Ê¤Ã¤¿¤È¤·¤Æ¤â¥Õ¥¡¥¤¥ë¤ÎËöÈø¤Þ¤Ç¥í¥Ã¥¯¤¹¤ë)¡£ +で指定される位置からファイルの末尾までの全てのバイトをロックする +(ファイルがどんなに大きくなったとしてもファイルの末尾までロックする)。 -POSIX.1-2001 ¤Ç¤Ï¡¢Éé¤ÎÃͤΠ+POSIX.1-2001 では、負の値の .I l_len -¤ò¥µ¥Ý¡¼¥È¤¹¤ë¼ÂÁõ¤òǧ¤á¤Æ¤¤¤ë (ɬ¿Ü¤Ç¤Ï¤Ê¤¤)¡£ +をサポートする実装を認めている (必須ではない)。 .I l_len -¤¬Éé¤Î¾ì¹ç¡¢¥í¥Ã¥¯¤µ¤ì¤ë¥Ð¥¤¥ÈÈÏ°Ï¤Ï +が負の場合、ロックされるバイト範囲は .IR l_start + l_len -°Ê¾å +以上 .IR l_start \-1 -°Ê²¼¤È¤Ê¤ë¡£ -¤³¤ÎÆ°ºî¤Ï¥«¡¼¥Í¥ë 2.4.21 °Ê¹ß¤ª¤è¤Ó 2.5.49 °Ê¹ß¤Î Linux ¤Ç -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +以下となる。 +この動作はカーネル 2.4.21 以降および 2.5.49 以降の Linux で +サポートされている。 .I l_type -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥Õ¥¡¥¤¥ë¤ËÂФ·¤ÆÆɤ߽Ф·¥í¥Ã¥¯ +フィールドは、ファイルに対して読み出しロック .RB ( F_RDLCK ) -¤È½ñ¤­¹þ¤ß¥í¥Ã¥¯ +と書き込みロック .RB ( F_WRLCK ) -¤Î¤É¤Á¤é¤ò -ÀßÄꤹ¤ë¤«¤ò»ØÄꤹ¤ë¡£ -¥Õ¥¡¥¤¥ë¤Î¤¢¤ëÎΰè¤ËÂФ·¤Æ¡¢Æɤ߽Ф·¥í¥Ã¥¯ (¶¦Í­¥í¥Ã¥¯) ¤òÊÝ»ý¤Ç¤­¤ë -¥×¥í¥»¥¹¿ô¤ËÀ©¸Â¤Ï¤Ê¤¤¤¬¡¢½ñ¤­¹þ¤ß¥í¥Ã¥¯ (ÇÓ¾¥í¥Ã¥¯) ¤òÊÝ»ý¤Ç¤­¤ë -¤Î¤Ï°ì¤Ä¤Î¥×¥í¥»¥¹¤À¤±¤Ç¤¢¤ë¡£ÇÓ¾¥í¥Ã¥¯¤òÀßÄꤹ¤ë¤È¡¢(¶¦Í­¥í¥Ã¥¯¤« -ÇÓ¾¥í¥Ã¥¯¤Ë¤«¤«¤ï¤é¤º) ¾¤Î¥í¥Ã¥¯¤Ï²¿¤âÀßÄê¤Ç¤­¤Ê¤¤¡£ -°ì¤Ä¤Î¥×¥í¥»¥¹¤Ï¡¢¥Õ¥¡¥¤¥ë¤Î¤¢¤ëÎΰè¤ËÂФ·¤Æ°ì¼ïÎà¤Î¥í¥Ã¥¯¤·¤«ÊÝ»ý¤Ç¤­¤Ê¤¤¡£ -¿·µ¬¤Î¥í¥Ã¥¯¤¬¥í¥Ã¥¯¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ëÎΰè¤ËÂФ·¤ÆŬÍѤµ¤ì¤ë¤È¡¢´û¸¤Î¥í¥Ã¥¯ -¤Ï¿·µ¬¤Î¥í¥Ã¥¯¤Î¼ïÊ̤ËÊÑ´¹¤µ¤ì¤ë -(¿·µ¬¤Î¥í¥Ã¥¯¤Ç»ØÄꤵ¤ì¤¿¥Ð¥¤¥ÈÈϰϤ¬´û¸¥í¥Ã¥¯¤ÎÈϰϤȰìÃפ¹¤ë¾ì¹ç°Ê³°¤Ç¤Ï¡¢ -ÊÑ´¹¤Î²áÄø¤Ç´û¸¤Î¥í¥Ã¥¯¤Îʬ³ä¡¢½Ì¾®¡¢·ë¹ç¤¬¹Ô¤ï¤ì¤ë¤³¤È¤¬¤¢¤ë)¡£ +のどちらを +設定するかを指定する。 +ファイルのある領域に対して、読み出しロック (共有ロック) を保持できる +プロセス数に制限はないが、書き込みロック (排他ロック) を保持できる +のは一つのプロセスだけである。排他ロックを設定すると、(共有ロックか +排他ロックにかかわらず) 他のロックは何も設定できない。 +一つのプロセスは、ファイルのある領域に対して一種類のロックしか保持できない。 +新規のロックがロックが設定されている領域に対して適用されると、既存のロック +は新規のロックの種別に変換される +(新規のロックで指定されたバイト範囲が既存ロックの範囲と一致する場合以外では、 +変換の過程で既存のロックの分割、縮小、結合が行われることがある)。 .TP .BR F_SETLK " (\fIstruct flock *\fP)" .RI ( l_type -¤¬ +が .B F_RDLCK -¤« +か .B F_WRLCK -¤Î¾ì¹ç¤Ï) ¥í¥Ã¥¯¤Î³ÍÆÀ¤ò¡¢ +の場合は) ロックの獲得を、 .RB ( F_UNLCK -¤Î¾ì¹ç¤Ï) ¥í¥Ã¥¯¤Î²òÊü¤ò¡¢ +の場合は) ロックの解放を、 .I flock -¹½Â¤ÂΤΥե£¡¼¥ë¥É +構造体のフィールド .IR l_whence ", " l_start ", " l_len -¤Ç»ØÄꤵ¤ì¤¿ÈϰϤΥХ¤¥È¤ËÂФ·¤Æ¹Ô¤¦¡£ -»ØÄꤵ¤ì¤¿¥í¥Ã¥¯¤¬Â¾¤Î¥×¥í¥»¥¹¤¬ÀßÄꤷ¤Æ¤¤¤ë¥í¥Ã¥¯¤È¾×Æͤ¹¤ë¾ì¹ç¤Ï¡¢ -\-1 ¤òÊÖ¤·¡¢ +で指定された範囲のバイトに対して行う。 +指定されたロックが他のプロセスが設定しているロックと衝突する場合は、 +\-1 を返し、 .I errno -¤Ë +に .B EACCES -¤« +か .B EAGAIN -¤òÀßÄꤹ¤ë¡£ +を設定する。 .TP .BR F_SETLKW " (\fIstruct flock *\fP)" .B F_SETLK -¤ÈƱÍͤÀ¤¬¡¢¤³¤Á¤é¤Ç¤Ï¤½¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¾×Æͤ¹¤ë¥í¥Ã¥¯¤¬ -ŬÍѤµ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ë¡¢¤½¤Î¥í¥Ã¥¯¤¬²òÊü¤µ¤ì¤ë¤Î¤òÂÔ¤ÄÅÀ¤¬°Û¤Ê¤ë¡£ -ÂԤäƤ¤¤ë´Ö¤Ë¥·¥°¥Ê¥ë¤ò¼õ¤±¤¿¾ì¹ç¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÃæÃǤµ¤ì¡¢ -(¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬Ìá¤Ã¤¿Ä¾¸å¤Ë) ÊÖ¤êÃÍ \-1 ¤òÊÖ¤¹ (¤Þ¤¿ +と同様だが、こちらではそのファイルに対して衝突するロックが +適用されていた場合に、そのロックが解放されるのを待つ点が異なる。 +待っている間にシグナルを受けた場合は、システムコールは中断され、 +(シグナルハンドラが戻った直後に) 返り値 \-1 を返す (また .I errno -¤Ë +に .B EINTR -¤¬ÀßÄꤵ¤ì¤ë; +が設定される; .BR signal (7) -»²¾È)¡£ +参照)。 .TP .BR F_GETLK " (\fIstruct flock *\fP)" -¤³¤Î¥³¡¼¥ë¤Î¸Æ¤Ó½Ð¤·»þ¤Ë¤Ï¡¢ +このコールの呼び出し時には、 .I lock -¤Ë¤Ï¤½¤Î¥Õ¥¡¥¤¥ë¤ËŬÍѤ·¤è¤¦¤È¤¹¤ë¥í¥Ã¥¯¤Ë´Ø¤¹¤ë¾ðÊó¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ -¥í¥Ã¥¯¤òŬÍѤǤ­¤ë¾ì¹ç¤Ë¤Ï¡¢ +にはそのファイルに適用しようとするロックに関する情報が入っている。 +ロックを適用できる場合には、 .BR fcntl () -¤Ï¼ÂºÝ¤Ë¤Ï¥í¥Ã¥¯¤ò¹Ô¤ï¤º¡¢¹½Â¤ÂÎ +は実際にはロックを行わず、構造体 .I lock -¤Î +の .I l_type -¥Õ¥£¡¼¥ë¥É¤Ë +フィールドに .B F_UNLCK -¤òÀßÄꤷ¡¢Â¾¤Î¥Õ¥£¡¼¥ë¥É¤ÏÊѹ¹¤»¤º¤Ë¡¢Éüµ¢¤¹¤ë¡£ -°ã¤¦¼ïÊ̤Υí¥Ã¥¯¤¬ (°ì¤Ä¤â¤·¤¯¤ÏÊ£¿ô) ŬÍѤµ¤ì¤Æ¤¤¤Æ -¥í¥Ã¥¯¤òŬÍѤǤ­¤Ê¤¤¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï¡¢ +を設定し、他のフィールドは変更せずに、復帰する。 +違う種別のロックが (一つもしくは複数) 適用されていて +ロックを適用できないような場合には、 .BR fcntl () -¤Ï¡¢¸¶°ø¤È¤Ê¤Ã¤¿¥í¥Ã¥¯¤Î°ì¤Ä¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¾ðÊó¤ò¹½Â¤ÂÎ +は、原因となったロックの一つについての詳細情報を構造体 .I lock -¤Î¥Õ¥£¡¼¥ë¥É +のフィールド .IR l_type ", " l_whence ", " l_start ", " l_len -¤Ë³ÊǼ¤·¡¢¤Þ¤¿ +に格納し、また .I l_pid -¤Ë¥í¥Ã¥¯¤òÊÝ»ý¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î PID ¤òÀßÄꤷ¤Æ¡¢Éüµ¢¤¹¤ë¡£ +にロックを保持しているプロセスの PID を設定して、復帰する。 .P -Æɤ߽Ф·¥í¥Ã¥¯¤òŬÍѤ¹¤ë¤Ë¤Ï¡¢ +読み出しロックを適用するには、 .I fd -¤ÏÆɤ߽Ф·ÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -½ñ¤­¹þ¤ß¥í¥Ã¥¯¤òŬÍѤ¹¤ë¤Ë¤Ï¡¢ +は読み出し用にオープンされていなければならない。 +書き込みロックを適用するには、 .I fd -¤Ï½ñ¤­¹þ¤ßÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Æɤ߽ñ¤­Î¾Êý¤Î¥í¥Ã¥¯¤òŬÍѤ¹¤ë¤Ë¤Ï¡¢Æɤ߽ñ¤­Î¾ÍÑ¤Ç -¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は書き込み用にオープンされていなければならない。 +読み書き両方のロックを適用するには、読み書き両用で +ファイルをオープンしなければならない。 .P -¥ì¥³¡¼¥É¤Î¥í¥Ã¥¯¤Ï¡¢ +レコードのロックは、 .B F_UNLCK -¤Ë¤è¤êÌÀ¼¨Åª¤Ëºï½ü¤µ¤ì¤ë¤À¤±¤Ç¤Ê¤¯¡¢ -¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿¤È¤­¤ä¡¢¥í¥Ã¥¯¤¬Å¬ÍѤµ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤ë -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¤¤º¤ì¤«¤¬¥¯¥í¡¼¥º¤µ¤ì¤¿¾ì¹ç¤Ë¤â²òÊü¤µ¤ì¤ë¡£ -¤³¤Î¥í¥Ã¥¯¤Î²òÊü¤Ï¼«Æ°Åª¤Ë¹Ô¤ï¤ì¤ë¡£ +により明示的に削除されるだけでなく、 +プロセスが終了したときや、ロックが適用されているファイルを参照している +ファイルディスクリプタのいずれかがクローズされた場合にも解放される。 +このロックの解放は自動的に行われる。 .\" .RB ( open "(2), " dup "(2), " dup2 "(2), " fcntl () -.\" ¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤ÆƱ¤¸¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ -.\" ¾¤Ë¤â¤Ç¤­¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤) -¤³¤ÎÆ°ºî¤Ï¤Þ¤º¤¤: ¤¢¤ë¥×¥í¥»¥¹¤¬ +.\" の呼び出しによって同じファイルを参照するファイルディスクリプタが +.\" 他にもできているかもしれない) +この動作はまずい: あるプロセスが .I /etc/passwd -¤ä +や .I /etc/mtab -¤È¤¤¤Ã¤¿¥Õ¥¡¥¤¥ë¤Ë¥í¥Ã¥¯¤òŬÍѤ·¤Æ¤¤¤ë¤È¤­¤Ë¡¢ -¤¢¤ë¥é¥¤¥Ö¥é¥ê´Ø¿ô¤¬²¿¤«¤ÎÍýͳ¤ÇƱ¤¸¥Õ¥¡¥¤¥ë¤ò open, read, close -¤¹¤ë¤È¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤Ø¤Î¥í¥Ã¥¯¤¬¼º¤ï¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ +といったファイルにロックを適用しているときに、 +あるライブラリ関数が何かの理由で同じファイルを open, read, close +すると、そのファイルへのロックが失われることになる。 .P -¥ì¥³¡¼¥É¤Î¥í¥Ã¥¯¤Ï +レコードのロックは .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ë¤Ï·Ñ¾µ¤µ¤ì¤Ê¤¤¤¬¡¢ +で作成された子プロセスには継承されないが、 .BR execve (2) -¤ÎÁ°¸å¤Ç¤ÏÊݸ¤µ¤ì¤ë¡£ +の前後では保存される。 .P .BR stdio (3) -¤Ç¤Ï¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤¬¹Ô¤ï¤ì¤ë¤Î¤Ç¡¢ -stdio ´ØÏ¢¤Î´Ø¿ô¤Ç¤Ï¥ì¥³¡¼¥É¤Î¥í¥Ã¥¯¤Î»ÈÍѤϲóÈò¤µ¤ì¤ë; -Âå¤ï¤ê¤Ë +ではバッファリングが行われるので、 +stdio 関連の関数ではレコードのロックの使用は回避される; +代わりに .BR read (2) -¤ä +や .BR write (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ -.SS "¶¯À©¥í¥Ã¥¯ (mandatory locking)" -¾å½Ò¤Î¥í¥Ã¥¯¤Ë¤Ï¥¢¥É¥Ð¥¤¥¶¥ê¡¦¥í¥Ã¥¯ (advisory lock) ¤È¶¯À©¥í¥Ã¥¯ (mandatory -lock) ¤ÎÆó¼ïÎब¤¢¤ë¤¬¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥¢¥É¥Ð¥¤¥¶¥ê¡¦¥í¥Ã¥¯¤È¤Ê¤ë¡£ +を使用すること。 +.SS "強制ロック (mandatory locking)" +上述のロックにはアドバイザリ・ロック (advisory lock) と強制ロック (mandatory +lock) の二種類があるが、デフォルトではアドバイザリ・ロックとなる。 -¥¢¥É¥Ð¥¤¥¶¥ê¡¦¥í¥Ã¥¯¤Ë¶¯À©ÎϤϤʤ¯¡¢¶¨Ä´¤·¤ÆÆ°ºî¤¹¤ë¥×¥í¥»¥¹´Ö¤Ç¤Î¤ß -Í­¸ú¤Ç¤¢¤ë¡£ +アドバイザリ・ロックに強制力はなく、協調して動作するプロセス間でのみ +有効である。 -¶¯À©¥í¥Ã¥¯¤ÏÁ´¤Æ¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ¸ú²Ì¤¬¤¢¤ë¡£ -¤¢¤ë¥×¥í¥»¥¹¤¬¸ß´¹À­¤Î¤Ê¤¤¶¯À©¥í¥Ã¥¯¤¬Å¬ÍѤµ¤ì¤¿¥Õ¥¡¥¤¥ëÎΰè¤ËÂФ·¤Æ +強制ロックは全てのプロセスに対して効果がある。 +あるプロセスが互換性のない強制ロックが適用されたファイル領域に対して .RB ( read (2) -¤ä +や .BR write (2) -¤Ë¤è¤ê) ¸ß´¹À­¤Î¤Ê¤¤¥¢¥¯¥»¥¹¤ò¼Â¹Ô¤·¤è¤¦¤È¤·¤¿¾ì¹ç¡¢ -¥¢¥¯¥»¥¹¤Î·ë²Ì¤Ï -¤½¤Î¥Õ¥¡¥¤¥ë¤Î¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¤Ç +により) 互換性のないアクセスを実行しようとした場合、 +アクセスの結果は +そのファイルのオープンファイル記述で .B O_NONBLOCK -¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤Ë¤è¤ê·è¤Þ¤ë¡£ +フラグが有効になっているかにより決まる。 .B O_NONBLOCK -¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤È¤­¤Ï¡¢¥í¥Ã¥¯¤¬ºï½ü¤µ¤ì¤ë¤«¡¢ -¥í¥Ã¥¯¤¬¥¢¥¯¥»¥¹¤È¸ß´¹À­¤Î¤¢¤ë¥â¡¼¥É¤ËÊÑ´¹¤µ¤ì¤ë¤Þ¤Ç¡¢ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÄä»ß (block) ¤µ¤ì¤ë¡£ +フラグが有効になっていないときは、ロックが削除されるか、 +ロックがアクセスと互換性のあるモードに変換されるまで、 +システムコールは停止 (block) される。 .B O_NONBLOCK -¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¤­¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥¨¥é¡¼ +フラグが有効になっているときは、システムコールはエラー .B EAGAIN -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 -¶¯À©¥í¥Ã¥¯¤ò»ÈÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢¥í¥Ã¥¯ÂоݤΥե¡¥¤¥ë¤¬´Þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -¤È¡¢¥í¥Ã¥¯ÂоݤΥե¡¥¤¥ë¼«¿È¤ÎξÊý¤Ë¤Ä¤¤¤Æ¡¢¶¯À©¥í¥Ã¥¯¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤±¤ì -¤Ð¤Ê¤é¤Ê¤¤¡£¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤Ä¤¤¤Æ¶¯À©¥í¥Ã¥¯¤òÍ­¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢ +強制ロックを使用するためには、ロック対象のファイルが含まれるファイルシステム +と、ロック対象のファイル自身の両方について、強制ロックが有効になっていなけれ +ばならない。ファイルシステムについて強制ロックを有効にするには、 .BR mount (8) -¤Ë "\-o mand" ¥ª¥×¥·¥ç¥ó¤òÅϤ¹¤«¡¢ +に "\-o mand" オプションを渡すか、 .BR mount (2) -¤Ë +に .B MS_MANDLOCK -¥Õ¥é¥°¤ò»ØÄꤹ¤ë¡£¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¶¯À©¥í¥Ã¥¯¤òÍ­¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥×¼Â¹Ôµö²Ä (group execute permission) ¤ò̵¸ú¤È¤·¡¢ -¤«¤Ä set-group-ID µö²Ä¥Ó¥Ã¥È¤òÍ­¸ú¤Ë¤¹¤ë +フラグを指定する。ファイルについて強制ロックを有効にするには、 +そのファイルのグループ実行許可 (group execute permission) を無効とし、 +かつ set-group-ID 許可ビットを有効にする .RB ( chmod (1) -¤È +と .BR chmod (2) -¤ò»²¾È)¡£ +を参照)。 -Linux ¤Î¶¯À©¥í¥Ã¥¯¤Î¼ÂÁõ¤Ï¿®ÍêÀ­¤Ë·ç¤±¤ë¤â¤Î¤Ç¤¢¤ë¡£ -²¼µ­¤Î¡Ö¥Ð¥°¡×¤ÎÀá¤ò»²¾È¤Î¤³¤È¡£ -.SS "¥·¥°¥Ê¥ë¤Î´ÉÍý" +Linux の強制ロックの実装は信頼性に欠けるものである。 +下記の「バグ」の節を参照のこと。 +.SS "シグナルの管理" .BR F_GETOWN , .BR F_SETOWN , .BR F_GETOWN_EX , .BR F_SETOWN_EX , .BR F_GETSIG , .B F_SETSIG -¤Ï¡¢I/O ¤¬ÍøÍѲÄǽ¤Ë¤Ê¤Ã¤¿¤³¤È¤ò¼¨¤¹¥·¥°¥Ê¥ë¤ò´ÉÍý¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ +は、I/O が利用可能になったことを示すシグナルを管理するために使用される。 .TP .BR F_GETOWN " (\fIvoid\fP)" -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +ファイルディスクリプタ .I fd -¤Î¥¤¥Ù¥ó¥È¤ËÂФ¹¤ë¥·¥°¥Ê¥ë +のイベントに対するシグナル .B SIGIO -¤ª¤è¤Ó +および .B SIGURG -¤ò¼õ¤±¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ID ¤«¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ò -(´Ø¿ô¤Î·ë²Ì¤È¤·¤Æ) ÊÖ¤¹¡£ -¥×¥í¥»¥¹ID ¤ÏÀµ¤ÎÃͤȤ·¤ÆÊÖ¤µ¤ì¤ë¡£ -¥×¥í¥»¥¹¥°¥ë¡¼¥×ID ¤ÏÉé¤ÎÃͤȤ·¤ÆÊÖ¤µ¤ì¤ë (²¼µ­¤Î¥Ð¥°¤Î¾Ï¤ò»²¾È)¡£ +を受けているプロセスのプロセスID かプロセスグループを +(関数の結果として) 返す。 +プロセスID は正の値として返される。 +プロセスグループID は負の値として返される (下記のバグの章を参照)。 .I arg -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .TP .BR F_SETOWN " (\fIlong\fP)" -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +ファイルディスクリプタ .I fd -¤Î¥¤¥Ù¥ó¥ÈȯÀ¸¤òÃΤ餻¤ë¥·¥°¥Ê¥ë +のイベント発生を知らせるシグナル .B SIGIO -¤ä +や .B SIGURG -¤ò¼õ¤±¤ë¥×¥í¥»¥¹¤Î -¥×¥í¥»¥¹ ID ¤Þ¤¿¤Ï¥×¥í¥»¥¹¥°¥ë¡¼¥×ID ¤ò +を受けるプロセスの +プロセス ID またはプロセスグループID を .I arg -¤Ç»ØÄꤵ¤ì¤¿ ID ¤ËÀßÄꤹ¤ë¡£ -¥×¥í¥»¥¹ID ¤ÏÀµ¤ÎÃͤȤ·¤Æ»ØÄꤷ¡¢ -¥×¥í¥»¥¹¥°¥ë¡¼¥×ID ¤ÏÉé¤ÎÃͤȤ·¤Æ»ØÄꤹ¤ë¡£ -¤Û¤È¤ó¤É¤Î¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ï½êÍ­¼Ô¤È¤·¤Æ¼«Ê¬¼«¿È¤ò»ØÄꤹ¤ë -(¤Ä¤Þ¤ê +で指定された ID に設定する。 +プロセスID は正の値として指定し、 +プロセスグループID は負の値として指定する。 +ほとんどの場合、呼び出し元プロセスは所有者として自分自身を指定する +(つまり .I arg -¤Ë +に .BR getpid (2) -¤ò»ØÄꤹ¤ë)¡£ +を指定する)。 -.\" glibc.info ¤è¤ê: +.\" glibc.info より: .BR fcntl () -¤Î +の .B F_SETFL -¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë +コマンドを使用してファイルディスクリプタに .B O_ASYNC -¾õÂ֥ե饰¤òÀßÄꤷ¤¿¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ø¤Î -Æþ½ÐÎϤ¬²Äǽ¤Ë¤Ê¤ëÅÙ¤Ë +状態フラグを設定した場合には、そのファイルディスクリプタへの +入出力が可能になる度に .B SIGIO -¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£ +シグナルが送られる。 .B F_SETSIG -¤Ï +は .B SIGIO -°Ê³°¤ÎÊ̤Υ·¥°¥Ê¥ë¤ÎÇÛÁ÷¤ò¼õ¤±¤é¤ì¤ë¤è¤¦¤Ë -¤¹¤ë¤Î¤Ë¤â»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -µö²Ä (permission) ¤Î¥Á¥§¥Ã¥¯¤Ç¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ -¥·¥°¥Ê¥ë¤ÏÌۤäƼΤƤé¤ì¤ë¡£ +以外の別のシグナルの配送を受けられるように +するのにも使うことができる。 +許可 (permission) のチェックで失敗した場合には、 +シグナルは黙って捨てられる。 .B F_SETOWN -¤Ë¤è¤ê»ØÄꤵ¤ì¤¿½êÍ­¼Ô¤Î¥×¥í¥»¥¹ (¤Þ¤¿¤Ï¥×¥í¥»¥¹¥°¥ë¡¼¥×) ¤Ë -¥·¥°¥Ê¥ë¤òÁ÷¤ëºÝ¤Ë¤Ï¡¢ +により指定された所有者のプロセス (またはプロセスグループ) に +シグナルを送る際には、 .BR kill (2) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¤Î¤ÈƱ¤¸µö²Ä¤Î¥Á¥§¥Ã¥¯¤¬¹Ô¤ï¤ì¤ë¡£ -¤³¤Î¤È¤­¡¢¥·¥°¥Ê¥ë¤òÁ÷¿®¤¹¤ë¥×¥í¥»¥¹¤Ï +に書かれているのと同じ許可のチェックが行われる。 +このとき、シグナルを送信するプロセスは .B F_SETOWN -¤ò»È¤Ã¤¿¥×¥í¥»¥¹¤Ç¤¢¤ë -(⤷¡¢²¼µ­¤Î¡Ö¥Ð¥°¡×¤Î¾Ï¤ò»²¾È¤Î¤³¤È)¡£ +を使ったプロセスである +(但し、下記の「バグ」の章を参照のこと)。 -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥½¥±¥Ã¥È¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ +ファイルディスクリプタがソケットを参照している場合は、 .B F_SETOWN -¤ò»ÈÍѤ·¤Æ¡¢¥½¥±¥Ã¥È¤ËÂÓ°è³° (out-of-band) ¥Ç¡¼¥¿¤¬ÆϤ¤¤¿»þ¤Ë +を使用して、ソケットに帯域外 (out-of-band) データが届いた時に .B SIGURG -¥·¥°¥Ê¥ë¤òÇÛÁ÷¤¹¤ëÁê¼ê¤òÁªÂò¤¹¤ë¤³¤È¤â¤Ç¤­¤ë +シグナルを配送する相手を選択することもできる .RB ( SIGURG -¤¬Á÷¤é¤ì¤¿¾ì¹ç¤Ë¤Ï +が送られた場合には .BR select (2) -¤¬¥½¥±¥Ã¥È¤¬¡ÖÆÃÊ̤ʾõÂ֡פˤ¢¤ë¤ÈÊó¹ð¤¹¤ë¤³¤È¤À¤í¤¦)¡£ -.\" °Ê²¼¤Îµ­½Ò¤Ï¥´¥ß¤À¤í¤¦¡£ -.\" ¥«¡¼¥Í¥ë¥½¡¼¥¹¤ò¸«¤ë¤È¤³¤Îµ­½Ò¤Ï´Ö°ã¤Ã¤Æ¤¤¤ë¤è¤¦¤À¤·¡¢ -.\" ¥×¥í¥°¥é¥à¤ò½ñ¤¤¤Æ¤ß¤¿¤È¤³¤í¡¢Ã¼Ëö¤Î¥Õ¥©¥¢¥°¥é¥ó¥É¡¦¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ç -.\" ¤Ê¤¯¤Æ¤â¡¢Ã¼Ëö¤¬À¸À®¤·¤¿ SIGIO ¥·¥°¥Ê¥ë¤ò¼õ¤±¤È¤ë¡£ +がソケットが「特別な状態」にあると報告することだろう)。 +.\" 以下の記述はゴミだろう。 +.\" カーネルソースを見るとこの記述は間違っているようだし、 +.\" プログラムを書いてみたところ、端末のフォアグランド・プロセスグループで +.\" なくても、端末が生成した SIGIO シグナルを受けとる。 .\" -- MTK, 8 Apr 05 .\" -.\" ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Ã¼Ëö¥Ç¥Ð¥¤¥¹¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -.\" SIGIO ¥·¥°¥Ê¥ë¤Ï¤½¤ÎüËö¤Î¥Õ¥©¥¢¥°¥é¥ó¥É¡¦¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ø¤ÈÁ÷¤é¤ì¤ë¡£ +.\" ファイルディスクリプタが端末デバイスを参照している場合には、 +.\" SIGIO シグナルはその端末のフォアグランド・プロセスグループへと送られる。 -¥Ð¡¼¥¸¥ç¥ó 2.6.11 °ÊÁ°¤Î 2.6.x ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢°Ê²¼¤Ë¼¨¤¹Æ°ºî¤Ç¤¢¤Ã¤¿¡£ +バージョン 2.6.11 以前の 2.6.x カーネルでは、以下に示す動作であった。 .RS .IP -¥¹¥ì¥Ã¥É¥°¥ë¡¼¥×¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥¹¥ì¥Ã¥É¥é¥¤¥Ö¥é¥ê (Î㤨¤Ð NPTL) ¤ò -»È¤Ã¤ÆÆ°ºî¤·¤Æ¤¤¤ë¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¡¦¥×¥í¥»¥¹¤Ç +スレッドグループをサポートしているスレッドライブラリ (例えば NPTL) を +使って動作しているマルチスレッド・プロセスで .B F_SETSIG -¤Ë 0 °Ê³°¤ÎÃͤò»ØÄꤷ¤¿¾ì¹ç¡¢ +に 0 以外の値を指定した場合、 .B F_SETOWN -¤ËÀµ¤ÎÃͤòÅϤ¹¤È¡¢¤½¤Î°ÕÌ£¤¬°ã¤Ã¤Æ¤¯¤ë: +に正の値を渡すと、その意味が違ってくる: .\" The relevant place in the (2.6) kernel source is the .\" 'switch' in fs/fcntl.c::send_sigio_to_task() -- MTK, Apr 2005 -¥×¥í¥»¥¹Á´ÂΤò¼¨¤¹¥×¥í¥»¥¹ID ¤Ç¤Ï¤Ê¤¯¡¢¥×¥í¥»¥¹Æâ¤ÎÆÃÄê¤Î -¥¹¥ì¥Ã¥É¤ò¼¨¤¹¥¹¥ì¥Ã¥ÉID ¤È²ò¼á¤µ¤ì¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢ +プロセス全体を示すプロセスID ではなく、プロセス内の特定の +スレッドを示すスレッドID と解釈される。 +したがって、 .B F_SETSIG -¤ò»È¤¦¾ì¹ç¤Ë¤Ï¡¢¤­¤Á¤ó¤È·ë²Ì¤ò¼õ¤±¼è¤ë¤Ë¤Ï¡¢ +を使う場合には、きちんと結果を受け取るには、 .B F_SETOWN -¤ËÅϤ¹Ãͤò +に渡す値を .BR getpid (2) -¤Ç¤Ï¤Ê¤¯ +ではなく .BR gettid (2) -¤ÎÊÖ¤êÃͤˤ¹¤ëɬÍפ¬¤¢¤ë¤À¤í¤¦¡£ -(¸½¾õ¤Î Linux ¥¹¥ì¥Ã¥É¼ÂÁõ¤Ç¤Ï¡¢¥á¥¤¥ó¡¦¥¹¥ì¥Ã¥É¤Î¥¹¥ì¥Ã¥ÉID ¤Ï -¤½¤Î¥¹¥ì¥Ã¥É¤Î¥×¥í¥»¥¹ID ¤ÈƱ¤¸¤Ç¤¢¤ë¡£¤Ä¤Þ¤ê¡¢ -¥·¥°¥Ê¥ë¡¦¥¹¥ì¥Ã¥É¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Î¾ì¹ç +の返り値にする必要があるだろう。 +(現状の Linux スレッド実装では、メイン・スレッドのスレッドID は +そのスレッドのプロセスID と同じである。つまり、 +シグナル・スレッドのプログラムではこの場合 .BR gettid (2) -¤È +と .BR getpid (2) -¤ÏÁ´¤¯Æ±¤¸¤è¤¦¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£) -¤¿¤À¤·¡¢Ãí°Õ¤¹¤Ù¤­ÅÀ¤È¤·¤Æ¡¢¤³¤ÎÃÊÍî¤Ç½Ò¤Ù¤¿¤³¤È¤Ï¡¢ -¥½¥±¥Ã¥È¤ÎÂÓ°è³°¥Ç¡¼¥¿¤¬ÆϤ¤¤¿¤È¤­¤ËÀ¸À®¤µ¤ì¤ë +は全く同じように使うことができる。) +ただし、注意すべき点として、この段落で述べたことは、 +ソケットの帯域外データが届いたときに生成される .B SIGURG -¥·¥°¥Ê¥ë¤Ë¤Ï¤¢¤Æ¤Ï¤Þ¤é¤Ê¤¤¡£ -¤³¤Î¥·¥°¥Ê¥ë¤Ï¾ï¤Ë¥×¥í¥»¥¹¤«¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ËÁ÷¤é¤ì¡¢ -Á÷¿®Àè¤Ï +シグナルにはあてはまらない。 +このシグナルは常にプロセスかプロセスグループに送られ、 +送信先は .B F_SETOWN -¤ËÅϤµ¤ì¤¿Ãͤˤ·¤¿¤¬¤Ã¤Æ·è¤á¤é¤ì¤ë¡£ +に渡された値にしたがって決められる。 .\" send_sigurg()/send_sigurg_to_task() bypasses .\" kill_fasync()/send_sigio()/send_sigio_to_task() .\" to directly call send_group_sig_info() .\" -- MTK, Apr 2005 (kernel 2.6.11) .RE .IP -¾åµ­¤ÎÆ°ºî¤Ï¡¢Linux 2.6.12 ¤Ç¿Þ¤é¤º¤âºï½ü¤µ¤ì¡¢ -¸µ¤ËÌᤵ¤ì¤Ê¤¤Í½Äê¤Ç¤¢¤ë¡£ -Linux 2.6.32 °Ê¹ß¤Ç¡¢ÆÃÄê¤Î¥¹¥ì¥Ã¥É°¸¤Ë¥·¥°¥Ê¥ë +上記の動作は、Linux 2.6.12 で図らずも削除され、 +元に戻されない予定である。 +Linux 2.6.32 以降で、特定のスレッド宛にシグナル .B SIGIO -¤È +と .B SIGURG -¤òÁ÷¤ë¤Ë¤Ï +を送るには .B F_SETOWN_EX -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .TP -.BR F_GETOWN_EX " (struct f_owner_ex *) (Linux 2.6.32 °Ê¹ß)" -ľÁ°¤Î +.BR F_GETOWN_EX " (struct f_owner_ex *) (Linux 2.6.32 以降)" +直前の .B F_SETOWN_EX -Áàºî¤ÇÄêµÁ¤µ¤ì¤¿¸½ºß¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î½êÍ­¼ÔÀßÄê -¤òÊÖ¤¹¡£¾ðÊó¤Ï +操作で定義された現在のファイルディスクリプタの所有者設定 +を返す。情報は .I arg -¤¬»Ø¤¹¹½Â¤ÂΤ˳ÊǼ¤µ¤ì¤ÆÊÖ¤µ¤ì¤ë¡£¹½Â¤ÂΤϰʲ¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +が指す構造体に格納されて返される。構造体は以下の通りである。 .nf .in +4n @@ -614,517 +614,517 @@ struct f_owner_ex { .in .fi .I type -¥Õ¥£¡¼¥ë¥É¤Ï¡¢ +フィールドは、 .B F_OWNER_TID , .B F_OWNER_PID , .B F_OWNER_PGRP -¤Î¤¤¤º¤ì¤«°ì¤Ä¤ÎÃͤȤʤ롣 +のいずれか一つの値となる。 .I pid -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥¹¥ì¥Ã¥É ID¡¢¥×¥í¥»¥¹ ID¡¢¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤ò -ɽ¤¹Àµ¤ÎÀ°¿ô¤Ç¤¢¤ë¡£¾ÜºÙ¤Ï +フィールドは、スレッド ID、プロセス ID、プロセスグループ ID を +表す正の整数である。詳細は .B F_SETOWN_EX -¤ò»²¾È¡£ +を参照。 .TP -.BR F_SETOWN_EX " (struct f_owner_ex *) (Linux 2.6.32 °Ê¹ß)" -¤³¤ÎÁàºî¤Ï +.BR F_SETOWN_EX " (struct f_owner_ex *) (Linux 2.6.32 以降)" +この操作は .B F_SETOWN -¤ÈƱÍͤνèÍý¤ò¹Ô¤¦¡£ -¤³¤ÎÁàºî¤ò»È¤¦¤È¡¢I/O ¤¬ÍøÍѲÄǽ¤Ë¤Ê¤Ã¤¿¤³¤È¤ò¼¨¤¹¥·¥°¥Ê¥ë¤ò¡¢ -ÆÃÄê¤Î¥¹¥ì¥Ã¥É¡¢¥×¥í¥»¥¹¡¢¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ËÁ÷¤ë¤³¤È¤¬¤Ç¤­¤ë -¤è¤¦¤Ë¤Ê¤ë¡£ -¸Æ¤Ó½Ð¤·¸µ¤Ï¡¢ +と同様の処理を行う。 +この操作を使うと、I/O が利用可能になったことを示すシグナルを、 +特定のスレッド、プロセス、プロセスグループに送ることができる +ようになる。 +呼び出し元は、 .I arg -·Ðͳ¤Ç¥·¥°¥Ê¥ë¤ÎÇÛÁ÷Àè¤ò»ØÄꤹ¤ë¡£ +経由でシグナルの配送先を指定する。 .I arg -¤Ï +は .I f_owner_ex -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ +構造体へのポインタである。 .I type -¥Õ¥£¡¼¥ë¥É¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«¤ÎÃͤò¼è¤ê¡¢ -¤³¤ÎÃͤˤè¤ê +フィールドは以下のいずれかの値を取り、 +この値により .I pid -¤¬¤É¤Î¤è¤¦¤Ë²ò¼á¤µ¤ì¤ë¤«¤¬µ¬Äꤵ¤ì¤ë¡£ +がどのように解釈されるかが規定される。 .RS .TP .BR F_OWNER_TID -¥¹¥ì¥Ã¥É ID ¤¬ +スレッド ID が .I pid -¤Ç»ØÄꤵ¤ì¤¿ÃͤΥ¹¥ì¥Ã¥É¤Ë¤½¤Î¥·¥°¥Ê¥ë¤òÁ÷¤ë -(¥¹¥ì¥Ã¥É ID ¤Ï +で指定された値のスレッドにそのシグナルを送る +(スレッド ID は .BR clone (2) -¤ä +や .BR gettid (2) -¤Î¸Æ¤Ó½Ð¤·¤ÇÊÖ¤µ¤ì¤ëÃͤǤ¢¤ë)¡£ +の呼び出しで返される値である)。 .TP .BR F_OWNER_PID -ID ¤¬ +ID が .I pid -¤Ç»ØÄꤵ¤ì¤¿ÃÍ¤Î¥×¥í¥»¥¹¤Ë¤½¤Î¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +で指定された値のプロセスにそのシグナルを送る。 .TP .BR F_OWNER_PGRP -ID ¤¬ +ID が .I pid -¤Ç»ØÄꤵ¤ì¤¿ÃÍ¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë¤½¤Î¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +で指定された値のプロセスグループにそのシグナルを送る。 .RB ( F_SETOWN -¤È°Û¤Ê¤ê¡¢¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤Ë¤ÏÀµ¤ÎÃͤò»ØÄꤹ¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£) +と異なり、プロセスグループ ID には正の値を指定する点に注意すること。) .RE .TP .BR F_GETSIG " (\fIvoid\fP)" -ÆþÎϤä½ÐÎϤ¬²Äǽ¤Ë¤Ê¤Ã¤¿¾ì¹ç¤ËÁ÷¤ë¥·¥°¥Ê¥ë¤ò -(´Ø¿ô¤Î·ë²Ì¤È¤·¤Æ) ÊÖ¤¹¡£ -ÃÍ¥¼¥í¤Ï +入力や出力が可能になった場合に送るシグナルを +(関数の結果として) 返す。 +値ゼロは .B SIGIO -¤òÁ÷¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +を送ることを意味する。 .RB ( SIGIO -¤ò´Þ¤à) ¾¤ÎÃͤϤ¤¤º¤ì¤â¡¢ +を含む) 他の値はいずれも、 .B SIGIO -¤ÎÂå¤ï¤ê¤ËÁ÷¤ë¥·¥°¥Ê¥ëÈÖ¹æ¤òɽ¤¹¡£ -¸å¼Ô¤Î¾ì¹ç¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò +の代わりに送るシグナル番号を表す。 +後者の場合、シグナルハンドラを .B SA_SIGINFO -¥Õ¥é¥°ÉÕ¤­¤ÇÀßÄꤹ¤ì¤Ð¡¢¥Ï¥ó¥É¥é¤ÇÄɲäξðÊó¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +フラグ付きで設定すれば、ハンドラで追加の情報を得ることができる。 .I arg -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .TP .BR F_SETSIG " (\fIlong\fP)" -ÆþÎϤä½ÐÎϤ¬²Äǽ¤Ë¤Ê¤Ã¤¿¾ì¹ç¤ËÁ÷¤ë¥·¥°¥Ê¥ë¤ò +入力や出力が可能になった場合に送るシグナルを .I arg -¤Ë»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£ -ÃÍ¥¼¥í¤Ï +に指定された値に設定する。 +値ゼロは .B SIGIO -¤òÁ÷¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +を送ることを意味する。 .RB ( SIGIO -¤ò´Þ¤à) ¾¤ÎÃͤϤ¤¤º¤ì¤â¡¢ +を含む) 他の値はいずれも、 .B SIGIO -¤ÎÂå¤ï¤ê¤ËÁ÷¤ë¥·¥°¥Ê¥ëÈÖ¹æ¤òɽ¤¹¡£ -¸å¼Ô¤Î¾ì¹ç¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò +の代わりに送るシグナル番号を表す。 +後者の場合、シグナルハンドラを .B SA_SIGINFO -¥Õ¥é¥°ÉÕ¤­¤ÇÀßÄꤹ¤ì¤Ð¡¢ -¥Ï¥ó¥É¥é¤ÇÄɲäξðÊó¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +フラグ付きで設定すれば、 +ハンドラで追加の情報を得ることができる。 .\" .\" The following was true only up until 2.6.11: .\" -.\" ¤Þ¤¿¡¢ +.\" また、 .\" .B F_SETSIG -.\" ¤Ë 0 °Ê³°¤ÎÃͤòÅϤ¹¤È¡¢¥·¥°¥Ê¥ë¤Î¼õ¿®¼Ô¤ò¥×¥í¥»¥¹Á´ÂΤ«¤é -.\" ¥×¥í¥»¥¹Æâ¤ÎÆÃÄê¤Î¥¹¥ì¥Ã¥É¤ËÊѹ¹¤µ¤ì¤ë¡£¾ÜºÙ¤Ï +.\" に 0 以外の値を渡すと、シグナルの受信者をプロセス全体から +.\" プロセス内の特定のスレッドに変更される。詳細は .\" .B F_SETOWN -.\" ¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +.\" の説明を参照のこと。 .B F_SETSIG -¤Ë¥¼¥í°Ê³°¤ÎÃͤòÀßÄꤷ¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë +にゼロ以外の値を設定し、シグナルハンドラに .B SA_SIGINFO -¥Õ¥é¥°¤òÀßÄꤹ¤ë¤È¡¢ +フラグを設定すると、 .RB ( sigaction (2) -¤ò»²¾È) I/O ¥¤¥Ù¥ó¥È¤Ë´Ø¤¹¤ëÄɲäξðÊó¤¬ +を参照) I/O イベントに関する追加の情報が .I siginfo_t -¹½Â¤ÂΤǥ·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ØÅϤµ¤ì¤ë¡£ +構造体でシグナルハンドラへ渡される。 .I si_code -¥Õ¥£¡¼¥ë¥É¤¬¼¨¤¹¥·¥°¥Ê¥ë¤Î¸¶°ø¤¬ +フィールドが示すシグナルの原因が .B SI_SIGIO -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I si_fd -¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¥¤¥Ù¥ó¥È¤ËÂбþ¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢¤É¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÍøÍѲÄǽ¤«¤ò¼¨¤¹¾ðÊó¤Ï -¤Ê¤¤¤Î¤Ç¡¢¤É¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç I/O ¤¬²Äǽ¤«¤òȽÃǤ¹¤ë¤¿¤á¤Ë¤Ï -Ä̾ï¤Îµ¡¹½ +フィールドにはイベントに対応するファイルディスクリプタが入っている。 +それ以外の場合は、どのファイルディスクリプタが利用可能かを示す情報は +ないので、どのファイルディスクリプタで I/O が可能かを判断するためには +通常の機構 .RB ( select (2), .BR poll (2), .B O_NONBLOCK -¤òÀßÄꤷ¤¿ +を設定した .BR read (2) -¤Ê¤É) ¤ò»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +など) を使用しなければならない。 -¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë (Ãͤ¬ +リアルタイムシグナル (値が .B SIGRTMIN -°Ê¾å) ¤òÁªÂò¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ -Ʊ¤¸¥·¥°¥Ê¥ëÈÖ¹æ¤ò»ý¤ÄÊ£¿ô¤Î I/O ¥¤¥Ù¥ó¥È¤¬¥­¥å¡¼¤ËÆþ¤ë¤³¤È¤¬¤¢¤ë -(¥­¥å¡¼¤ËÆþ¤ì¤ë¤«¤É¤¦¤«¤ÏÍøÍѲÄǽ¤Ê¥á¥â¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë)¡£ -¾åµ­¤ÈƱÍÍ¡¢ +以上) を選択している場合は、 +同じシグナル番号を持つ複数の I/O イベントがキューに入ることがある +(キューに入れるかどうかは利用可能なメモリに依存している)。 +上記と同様、 .B SA_SIGINFO -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Î¤¿¤á¤ÎÄɲäξðÊó¤¬ÆÀ¤é¤ì¤ë¡£ +が設定されている場合、シグナルハンドラのための追加の情報が得られる。 .\" See fs/fcntl.c::send_sigio_to_task() (2.4/2.6) sources -- MTK, Apr 05 -°Ê²¼¤ÎÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -Linux ¤Ç¤Ï°ì¤Ä¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤ë¥ê¥¢¥ë¥¿¥¤¥à -¥·¥°¥Ê¥ë¤Î¿ô¤Ë¾å¸Â¤¬Àߤ±¤é¤ì¤Æ¤ª¤ê +以下の点に注意すること。 +Linux では一つのプロセスに対してキューに入れられるリアルタイム +シグナルの数に上限が設けられており .RB ( getrlimit (2) -¤È +と .BR signal (7) -¤ò»²¾È)¡¢¤³¤Î¾å¸Â¤Ë㤹¤ë¤È¥«¡¼¥Í¥ë¤Ï +を参照)、この上限に達するとカーネルは .B SIGIO -¥·¥°¥Ê¥ë¤òÇÛÁ÷¤¹¤ë¡£¤³¤Î +シグナルを配送する。この .B SIGIO -¥·¥°¥Ê¥ë¤Ï¡¢»ØÄꤵ¤ì¤¿¥¹¥ì¥Ã¥É¤Ç¤Ï¤Ê¤¯¥×¥í¥»¥¹Á´ÂΤËÁ÷¤é¤ì¤ë¡£ +シグナルは、指定されたスレッドではなくプロセス全体に送られる。 .PP -¤³¤ì¤é¤Îµ¡¹½¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç¡¢¤Û¤È¤ó¤É¤Î¾ì¹ç¤Ç +これらの機構を使用することで、ほとんどの場合で .BR select (2) -¤ä +や .BR poll (2) -¤ò»ÈÍѤ»¤º¤Ë´°Á´¤ÊÈóƱ´ü I/O ¤ò¼ÂÁõ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使用せずに完全な非同期 I/O を実装することができる。 .PP .BR O_ASYNC , .BR F_GETOWN , .B F_SETOWN -¤Î»ÈÍÑ¤Ï BSD ¤È Linux ¤ËÆÃÍ­¤Ç¤¢¤ë¡£ +の使用は BSD と Linux に特有である。 .BR F_GETOWN_EX , .BR F_SETOWN_EX , .BR F_GETSIG , .B F_SETSIG -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£POSIX ¤Ë¤Ï¡¢Æ±ÍͤΤ³¤È¤ò¹Ô¤¦¤¿¤á¤Ë¡¢ÈóƱ´ü I/O ¤È +は Linux 固有である。POSIX には、同様のことを行うために、非同期 I/O と .I aio_sigevent -¹½Â¤ÂΤ¬¤¢¤ë¡£Linux ¤Ç¤Ï¡¢GNU C ¥é¥¤¥Ö¥é¥ê (Glibc) ¤Î°ìÉô¤È¤·¤Æ -¤³¤ì¤é¤âÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.SS "¥ê¡¼¥¹ (leases)" -(Linix 2.4 °Ê¹ß¤ÇÍøÍѲÄǽ) +構造体がある。Linux では、GNU C ライブラリ (Glibc) の一部として +これらも利用可能である。 +.SS "リース (leases)" +(Linix 2.4 以降で利用可能) .B F_SETLEASE -¤Ï¡¢ +は、 .I fd -¤¬»²¾È¤¹¤ë¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¤ËÂФ·¤Æ¿·¤·¤¤¥ê¡¼¥¹¤òÀßÄꤹ¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ +が参照するオープンファイル記述に対して新しいリースを設定するのに使用される。 .B F_GETLEASE -¤Ï¡¢ +は、 .I fd -¤¬»²¾È¤¹¤ë¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¤ËÂФ·¤ÆÀßÄꤵ¤ì¤Æ¤¤¤ë -¸½ºß¤Î¥ê¡¼¥¹¤ò¼èÆÀ¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ -¥Õ¥¡¥¤¥ë¤Î¥ê¡¼¥¹¤Ë¤è¤ê¡¢ -¤¢¤ë¥×¥í¥»¥¹ ("lease breaker") ¤¬¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬»²¾È -¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ +が参照するオープンファイル記述に対して設定されている +現在のリースを取得するのに使用される。 +ファイルのリースにより、 +あるプロセス ("lease breaker") がそのファイルディスクリプタが参照 +しているファイルに対して .BR open (2) -¤ä +や .BR truncate (2) -¤ò¹Ô¤ª¤¦¤È¤·¤¿ºÝ¤Ë¡¢¥ê¡¼¥¹¤òÊÝ»ý¤·¤Æ¤¤¤ë¥×¥í¥»¥¹ ("lease holder") ¤Ø -(¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤Ë¤è¤ë) ÄÌÃΤ¬¹Ô¤ï¤ì¤ë¤È¤¤¤¦µ¡¹½¤¬Ä󶡤µ¤ì¤ë¡£ +を行おうとした際に、リースを保持しているプロセス ("lease holder") へ +(シグナルの配送による) 通知が行われるという機構が提供される。 .TP .BR F_SETLEASE " (\fIlong\fP)" .I arg -¤ÎÆâÍƤ˴𤤤ƥե¡¥¤¥ë¤Î¥ê¡¼¥¹¤ÎÀßÄê¡¢ºï½ü¤ò¹Ô¤¦¡£À°¿ô +の内容に基いてファイルのリースの設定、削除を行う。整数 .I arg -¤Ë¤Ï°Ê²¼¤ÎÃͤ¬»ØÄê¤Ç¤­¤ë: +には以下の値が指定できる: .RS .TP .B F_RDLCK -Æɤ߽Ф·¥ê¡¼¥¹¤ò¼èÆÀ¤¹¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¤¬½ñ¤­¹þ¤ßÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤¿¤ê¡¢¥Õ¥¡¥¤¥ë¤¬ÀÚ¤êµÍ¤á¤é¤ì¤¿¾ì¹ç¤Ë¡¢ -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ËÄÌÃΤ¬¹Ô¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -.\" °Ê²¼¤ÎÆâÍƤϥ«¡¼¥Í¥ë 2.6.10 ¤Ç¼ÂÁõ¤µ¤ì¤¿¡£ -.\" ¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï man-pages-2.09 ¤Î Changelog ¤ò»²¾È¡£ -Æɤ߽Ф·¥ê¡¼¥¹¤òÀßÄê¤Ç¤­¤ë¤Î¤Ï¡¢Æɤ߽Ф·ÀìÍѤǥª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ¤Î¤ß¤Ç¤¢¤ë¡£ +読み出しリースを取得する。これにより、 +そのファイルが書き込み用にオープンされたり、ファイルが切り詰められた場合に、 +呼び出し元のプロセスに通知が行われるようになる。 +.\" 以下の内容はカーネル 2.6.10 で実装された。 +.\" より詳しい情報は man-pages-2.09 の Changelog を参照。 +読み出しリースを設定できるのは、読み出し専用でオープンされている +ファイルディスクリプタに対してのみである。 .TP .B F_WRLCK -½ñ¤­¹þ¤ß¥ê¡¼¥¹¤ò¼èÆÀ¤¹¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢ -(Æɤ߽Ф·ÍѤ«½ñ¤­¹þ¤ßÍѤˤ«¤«¤ï¤é¤º) ¤½¤Î¥Õ¥¡¥¤¥ë¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¤ê¡¢ -¥Õ¥¡¥¤¥ë¤¬ÀÚ¤êµÍ¤á¤é¤ì¤¿¾ì¹ç¤Ë¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ËÄÌÃΤ¬¹Ô¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -½ñ¤­¹þ¤ß¥ê¡¼¥¹¤Ï¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ -¾¤Ë¤Ê¤¤¾ì¹ç¤Ë¤Î¤ßÀßÄê¤Ç¤­¤ë¡£ +書き込みリースを取得する。これにより、 +(読み出し用か書き込み用にかかわらず) そのファイルがオープンされたり、 +ファイルが切り詰められた場合に、呼び出し元のプロセスに通知が行われるようになる。 +書き込みリースは、そのファイルに対するオープンされたファイルディスクリプタが +他にない場合にのみ設定できる。 .TP .B F_UNLCK -¤½¤Î¥Õ¥¡¥¤¥ë¤«¤é¥ê¡¼¥¹¤òºï½ü¤¹¤ë¡£ +そのファイルからリースを削除する。 .RE .P -¥ê¡¼¥¹¤Ï¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¤ËÂФ·¤Æ´ØÏ¢ÉÕ¤±¤é¤ì¤ë +リースはオープンファイル記述に対して関連付けられる .RB ( open (2) -»²¾È)¡£ -¤Ä¤Þ¤ê¡¢ +参照)。 +つまり、 .RB ( fork (2) -¤ä +や .BR dup (2) -¤Ê¤É¤Ë¤è¤êºîÀ®¤µ¤ì¤¿) ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÊ£À½¤ÏƱ¤¸¥ê¡¼¥¹¤ò»²¾È¤·¡¢ -Ê£À½¤â´Þ¤á¤¿¤É¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò»È¤Ã¤Æ¤â¤³¤Î¥ê¡¼¥¹¤òÊѹ¹¤·¤¿¤ê -²òÊü¤·¤¿¤ê¤Ç¤­¤ë¡£ -¤Þ¤¿¡¢¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¤¤º¤ì¤«¤ËÂФ·¤Æ +などにより作成された) ファイルディスクリプタの複製は同じリースを参照し、 +複製も含めたどのファイルディスクリプタを使ってもこのリースを変更したり +解放したりできる。 +また、これらのファイルディスクリプタのいずれかに対して .B F_UNLCK -Áàºî¤¬ÌÀ¼¨Åª¤Ë¼Â¹Ô¤µ¤ì¤¿¾ì¹ç¤ä¡¢¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ -ÊĤ¸¤é¤ì¤¿¾ì¹ç¤Ë¤â¡¢¥ê¡¼¥¹¤Ï²òÊü¤µ¤ì¤ë¡£ +操作が明示的に実行された場合や、すべてのファイルディスクリプタが +閉じられた場合にも、リースは解放される。 .P -¥ê¡¼¥¹¤Î¼èÆÀ¤ÏÄ̾ï¤Î¥Õ¥¡¥¤¥ë (regular file) ¤ËÂФ·¤Æ¤Î¤ß²Äǽ¤Ç¤¢¤ë¡£ -ÈóÆø¢¥×¥í¥»¥¹¤¬¥ê¡¼¥¹¤ò¼èÆÀ¤Ç¤­¤ë¤Î¤Ï¡¢UID (½êÍ­¼Ô) ¤¬¥×¥í¥»¥¹¤Î -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID ¤È°ìÃפ¹¤ë¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¤À¤±¤Ç¤¢¤ë¡£ +リースの取得は通常のファイル (regular file) に対してのみ可能である。 +非特権プロセスがリースを取得できるのは、UID (所有者) がプロセスの +ファイルシステム UID と一致するファイルに対してだけである。 .B CAP_LEASE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹¤ÏǤ°Õ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¥ê¡¼¥¹¤ò¼èÆÀ¤Ç¤­¤ë¡£ +ケーパビリティを持つプロセスは任意のファイルに対してリースを取得できる。 .TP .BR F_GETLEASE " (\fIvoid\fP)" -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +ファイルディスクリプタ .I fd -¤ËÂФ·¤ÆÀßÄꤵ¤ì¤Æ¤¤¤ë¥ê¡¼¥¹¤Î¼ïÊ̤ò¼èÆÀ¤¹¤ë¡£ +に対して設定されているリースの種別を取得する。 .BR F_RDLCK ", " F_WRLCK ", " F_UNLCK -¤Î¤¤¤º¤ì¤«¤¬ÊÖ¤µ¤ì¤ë¡£ +のいずれかが返される。 .BR F_RDLCK ", " F_WRLCK -¤Ï¤½¤ì¤¾¤ì¡¢Æɤ߽Ф·¥ê¡¼¥¹¡¢½ñ¤­¹þ¤ß¥ê¡¼¥¹¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤³¤È¤ò¼¨¤·¡¢ +はそれぞれ、読み出しリース、書き込みリースが設定されていることを示し、 .B F_UNLCK -¤Ï¥ê¡¼¥¹¤¬²¿¤âÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò¼¨¤¹¡£ +はリースが何も設定されていないことを示す。 .I arg -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .PP -¤¢¤ë¥×¥í¥»¥¹ ("lease folder") ¤¬ +あるプロセス ("lease folder") が .B F_SETLEASE -¤ÇÀßÄꤵ¤ì¤¿¥ê¡¼¥¹¤ÈÌ·½â¤¹¤ë¤è¤¦¤Ê +で設定されたリースと矛盾するような .BR open (2) -¤ä +や .BR truncate (2) -¤ò¼Â¹Ô¤·¤¿¾ì¹ç¡¢ -¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤ÆÄä»ß¤µ¤ì¡¢ -¥«¡¼¥Í¥ë¤Ï lease holder ¤Ë¥·¥°¥Ê¥ë (¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï +を実行した場合、 +そのシステムコールはカーネルによって停止され、 +カーネルは lease holder にシグナル (デフォルトでは .BR SIGIO ) -¤òÁ÷¤Ã¤ÆÄÌÃΤò¹Ô¤¦¡£ -lease holder ¤Ï¤³¤Î¥·¥°¥Ê¥ë¤ò¼õ¿®¤·¤¿¤È¤­¤Ë¤Ï¤­¤Á¤ó¤ÈÂбþ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¶ñÂÎŪ¤Ë¤Ï¡¢ÊÌ¤Î¥×¥í¥»¥¹¤¬¤½¤Î¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Î½àÈ÷¤È¤·¤Æ -ɬÍפʸåÊÒÉÕ¤± (Î㤨¤Ð¡¢¥­¥ã¥Ã¥·¥å¤µ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Î¥Õ¥é¥Ã¥·¥å) ¤ò -¤¹¤Ù¤Æ¹Ô¤Ã¤Æ¤«¤é¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤Î¥ê¡¼¥¹¤Îºï½ü¤Þ¤¿¤Ï³Ê²¼¤²¤ò¹Ô¤¦¡£ -¥ê¡¼¥¹¤òºï½ü¤ò¤¹¤ë¤Ë¤Ï¡¢ +を送って通知を行う。 +lease holder はこのシグナルを受信したときにはきちんと対応すべきである。 +具体的には、別のプロセスがそのファイルにアクセスするための準備として +必要な後片付け (例えば、キャッシュされたバッファのフラッシュ) を +すべて行ってから、そのファイルのリースの削除または格下げを行う。 +リースを削除をするには、 .I arg -¤Ë +に .B F_UNLCK -¤ò»ØÄꤷ¤Æ +を指定して .B F_SETLEASE -¤ò¼Â¹Ô¤¹¤ë¡£ -lease holder ¤¬¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤ß¥ê¡¼¥¹¤òÊÝ»ý¤·¤Æ¤¤¤Æ¡¢ -lease breaker ¤¬Æɤ߽Ф·ÍѤˤ½¤Î¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -lease holder ¤¬ÊÝ»ý¤·¤Æ¤¤¤ë¥ê¡¼¥¹¤òÆɤ߽Ф·¥ê¡¼¥¹¤Ë³Ê²¼¤²¤¹¤ì¤Ð -½½Ê¬¤Ç¤¢¤ë¡£¤³¤ì¤ò¤¹¤ë¤Ë¤Ï¡¢ +を実行する。 +lease holder がファイルに書き込みリースを保持していて、 +lease breaker が読み出し用にそのファイルをオープンしている場合、 +lease holder が保持しているリースを読み出しリースに格下げすれば +十分である。これをするには、 .I arg -¤Ë +に .B F_RDLCK -¤ò»ØÄꤷ¤Æ +を指定して .B F_SETLEASE -¤ò¼Â¹Ô¤¹¤ë¡£ +を実行する。 -lease holder ¤¬ +lease holder が .I /proc/sys/fs/lease-break-time -¤Ç»ØÄꤵ¤ì¤¿Éÿô°ÊÆâ¤Ë¥ê¡¼¥¹¤Î³Ê²¼¤²¤«ºï½ü¤ò¹Ô¤¨¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ -¥«¡¼¥Í¥ë¤Ï¶¯À©Åª¤Ë¤½¤Î lease holder ¤Î¥ê¡¼¥¹¤òºï½ü¤â¤·¤¯¤Ï³Ê²¼¤²¤ò¹Ô¤¦¡£ +で指定された秒数以内にリースの格下げか削除を行えなかった場合、 +カーネルは強制的にその lease holder のリースを削除もしくは格下げを行う。 -°ìÅ٥꡼¥¹¤Îºï½ü¤«³Ê²¼¤²¤¬¼«È¯Åª¤â¤·¤¯¤Ï¶¯À©Åª¤Ë¹Ô¤ï¤ì¤ë¤È¡¢ -lease breaker ¤¬¤Þ¤À¥·¥¹¥Æ¥à¥³¡¼¥ë¤òºÆ³«¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ -¥«¡¼¥Í¥ë¤¬ lease breaker ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î³¹Ô¤òµö²Ä¤¹¤ë¡£ +一度リースの削除か格下げが自発的もしくは強制的に行われると、 +lease breaker がまだシステムコールを再開していない場合には、 +カーネルが lease breaker のシステムコールの続行を許可する。 -lease breaker ¤¬¼Â¹Ô¤·¤¿ +lease breaker が実行した .BR open (2) -¤ä +や .BR truncate (2) -¤¬Ää»ßÃæ¤Ë¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤êÃæÃǤµ¤ì¤¿¾ì¹ç¡¢ -¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +が停止中にシグナルハンドラにより中断された場合、 +そのシステムコールは .B EINTR -¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë¤¬¡¢¾å¤Ç½Ò¤Ù¤¿Â¾¤Î½èÍý¤Ï -¤½¤Î¤Þ¤Þ¹Ô¤ï¤ì¤ë¡£ +エラーで失敗するが、上で述べた他の処理は +そのまま行われる。 .BR open (2) -¤ä +や .BR truncate (2) -¤¬Ää»ßÃæ¤Ë lease breaker ¤¬¥·¥°¥Ê¥ë¤Ë¤è¤ê kill ¤µ¤ì¤¿¾ì¹ç¡¢ -¾å¤Ç½Ò¤Ù¤¿Â¾¤Î½èÍý¤Ï¤½¤Î¤Þ¤Þ¹Ô¤ï¤ì¤ë¡£ -lease breaker ¤¬ +が停止中に lease breaker がシグナルにより kill された場合、 +上で述べた他の処理はそのまま行われる。 +lease breaker が .BR open (2) -¤ò¸Æ¤ÖºÝ¤Ë +を呼ぶ際に .B O_NONBLOCK -¥Õ¥é¥°¤ò»ØÄꤷ¤¿¾ì¹ç¡¢¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +フラグを指定した場合、そのシステムコールは .B EWOULDBLOCK -¥¨¥é¡¼¤Çľ¤Á¤Ë¼ºÇÔ¤¹¤ë¤¬¡¢¾å¤Ç½Ò¤Ù¤¿Â¾¤Î½èÍý¤Ï¤½¤Î¤Þ¤Þ¹Ô¤ï¤ì¤ë¡£ +エラーで直ちに失敗するが、上で述べた他の処理はそのまま行われる。 -lease holder ¤Ø¤ÎÄÌÃΤ˻Ȥï¤ì¤ë¥Ç¥Õ¥©¥ë¥È¤Î¥·¥°¥Ê¥ë¤Ï +lease holder への通知に使われるデフォルトのシグナルは .B SIGIO -¤À¤¬¡¢ +だが、 .BR fcntl () -¤Î +の .B F_SETSIG -¥³¥Þ¥ó¥É¤ÇÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +コマンドで変更することができる。 .B F_SETSIG -¥³¥Þ¥ó¥É¤¬¼Â¹Ô¤µ¤ì +コマンドが実行され .RB ( SIGIO -¤ò»ØÄꤵ¤ì¤¿¾ì¹ç¤â´Þ¤à)¡¢ +を指定された場合も含む)、 .B SA_SIGINFO -¥Õ¥é¥°ÉÕ¤­¤Ç¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -¥Ï¥ó¥É¥é¤ÎÂèÆó°ú¤­¿ô¤È¤·¤Æ +フラグ付きでシグナルハンドラが設定されている場合には、 +ハンドラの第二引き数として .I siginfo_t -¹½Â¤ÂΤ¬ÅϤµ¤ì¡¢¤³¤Î°ú¤­¿ô¤Î +構造体が渡され、この引き数の .I si_fd -¥Õ¥£¡¼¥ë¥É¤Ë¤ÏÊÌ¤Î¥×¥í¥»¥¹¤¬¥¢¥¯¥»¥¹¤·¤¿¥ê¡¼¥¹ÀßÄêºÑ¤ß¥Õ¥¡¥¤¥ë¤Î -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Æþ¤Ã¤Æ¤¤¤ë -(¤³¤Îµ¡Ç½¤ÏÊ£¿ô¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¥ê¡¼¥¹¤òÀßÄꤹ¤ë¾ì¹ç¤ËÍ­ÍѤǤ¢¤ë)¡£ -.SS "¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥ì¥¯¥È¥ê¤ÎÊѹ¹¤ÎÄÌÃÎ (dnotify)" +フィールドには別のプロセスがアクセスしたリース設定済みファイルの +ディスクリプタが入っている +(この機能は複数のファイルに対してリースを設定する場合に有用である)。 +.SS "ファイルやディレクトリの変更の通知 (dnotify)" .TP .BR F_NOTIFY " (\fIlong\fP)" -(Linux 2.4 °Ê¹ß) +(Linux 2.4 以降) .I fd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¡¢¤½¤ÎÃæ¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤ËÊѹ¹¤¬¤¢¤Ã¤¿¾ì¹ç¤Ë -ÄÌÃΤò¹Ô¤¦¡£¤É¤Î¥¤¥Ù¥ó¥È¤òÄÌÃΤ¹¤ë¤«¤Ï +で参照されるディレクトリか、その中にあるファイルに変更があった場合に +通知を行う。どのイベントを通知するかは .I arg -¤Ç»ØÄꤹ¤ë¡£ +で指定する。 .I arg -¤Ï¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¡¢°Ê²¼¤Î¥Ó¥Ã¥È¤Î 0¸Ä°Ê¾å¤ÎÏÀÍýϤò¤È¤Ã¤¿¤â¤Î¤ò»ØÄꤹ¤ë¡£ +はビットマスクで、以下のビットの 0個以上の論理和をとったものを指定する。 .RS .sp .PD 0 .TP 12 .B DN_ACCESS -¥Õ¥¡¥¤¥ë¤Ø¤Î¥¢¥¯¥»¥¹¤¬¤¢¤Ã¤¿ (read, pread, readv) +ファイルへのアクセスがあった (read, pread, readv) .TP .B DN_MODIFY -¥Õ¥¡¥¤¥ë¤ÎÆâÍƤ¬Êѹ¹¤µ¤ì¤¿ (write, pwrite, writev, truncate, ftruncate). +ファイルの内容が変更された (write, pwrite, writev, truncate, ftruncate). .TP .B DN_CREATE -¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤¿ (open, creat, mknod, mkdir, link, symlink, rename). +ファイルが作成された (open, creat, mknod, mkdir, link, symlink, rename). .TP .B DN_DELETE -¥Õ¥¡¥¤¥ë¤¬ºï½ü (unlink) ¤µ¤ì¤¿ (unlink, Ê̤Υǥ£¥ì¥¯¥È¥ê¤Ø¤Î rename, rmdir) +ファイルが削除 (unlink) された (unlink, 別のディレクトリへの rename, rmdir) .TP .B DN_RENAME -¥Ç¥£¥ì¥¯¥È¥êÆâ¤Ç¤Î¥Õ¥¡¥¤¥ë̾¤ÎÊѹ¹¤¬¤¢¤Ã¤¿ (rename) +ディレクトリ内でのファイル名の変更があった (rename) .TP .B DN_ATTRIB -¥Õ¥¡¥¤¥ë°À­¤¬Êѹ¹¤µ¤ì¤¿ (chown, chmod, utime[s]) +ファイル属性が変更された (chown, chmod, utime[s]) .PD .RE .IP -(¾åµ­¤ÎÄêµÁ¤òÍøÍѤ¹¤ë¤Ë¤Ï +(上記の定義を利用するには .B _GNU_SOURCE -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£) +機能検査マクロを定義しなければならない。) -¥Ç¥£¥ì¥¯¥È¥ê¤ÎÊѹ¹ÄÌÃΤÏÄ̾ï¡Ö°ì²ó¸Â¤ê (one-shot)¡×¤Ç¤¢¤ê¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¦¤Ç¤½¤Î¸å¤µ¤é¤ËÄÌÃΤò¼õ¿®¤·¤¿¤¤¾ì¹ç¤Ï -ºÆÅÐÏ¿¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ディレクトリの変更通知は通常「一回限り (one-shot)」であり、 +アプリケーション側でその後さらに通知を受信したい場合は +再登録しなければならない。 .I arg -¤Ë +に .B DN_MULTISHOT -¤¬´Þ¤Þ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ë¤Ï¡¢ -Êѹ¹ÄÌÃΤÏÌÀ¼¨Åª¤Ë²ò½ü¤µ¤ì¤ë¤Þ¤ÇÍ­¸ú¾õÂÖ¤¬·Ñ³¤¹¤ë¡£ +が含まれていた場合には、 +変更通知は明示的に解除されるまで有効状態が継続する。 -.\" °Ê²¼¤Ï API ¤ÎÀ߷פ¬¤Þ¤º¤¤¤È»×¤¦¤Î¤À¤¬... +.\" 以下は API の設計がまずいと思うのだが... .B F_NOTIFY -Í×µá¤ÏÀÑ»»¤µ¤ì¤Æ¤¤¤¯¡£¤Ä¤Þ¤ê¡¢ +要求は積算されていく。つまり、 .I arg -¤Ç»ØÄꤵ¤ì¤¿¥¤¥Ù¥ó¥È¤¬¤¹¤Ç¤Ë¥â¥Ë¥¿¤µ¤ì¤Æ¤¤¤ë -¥¤¥Ù¥ó¥È½¸¹ç¤Ë²Ã»»¤µ¤ì¤ë·Á¤Ë¤Ê¤ë¡£ -¤¹¤Ù¤Æ¤Î¥¤¥Ù¥ó¥È¤ÎÄÌÃΤò̵¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢ +で指定されたイベントがすでにモニタされている +イベント集合に加算される形になる。 +すべてのイベントの通知を無効にするには、 .I arg -¤Ë 0 ¤ò»ØÄꤷ¤Æ +に 0 を指定して .B F_NOTIFY -¤ò¸Æ¤Ó½Ð¤¹É¬Íפ¬¤¢¤ë¡£ +を呼び出す必要がある。 -ÄÌÃΤϥ·¥°¥Ê¥ë¤ÎÇÛÁ÷¤Ç¹Ô¤ï¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Î¥·¥°¥Ê¥ë¤Ï +通知はシグナルの配送で行われる。 +デフォルトのシグナルは .B SIGIO -¤À¤¬¡¢ +だが、 .BR fcntl () -¤Î +の .B F_SETSIG -¥³¥Þ¥ó¥É¤ÇÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¸å¼Ô¤Î¾ì¹ç¤Ë¤Ï¡¢ +コマンドで変更することができる。 +後者の場合には、 .RB ( SA_SIGINFO -¥Õ¥é¥°ÉÕ¤­¤Ç¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï) -¥Ï¥ó¥É¥é¤ÎÂèÆó°ú¤­¿ô¤È¤·¤Æ +フラグ付きでシグナルハンドラが設定されている場合には) +ハンドラの第二引き数として .I siginfo_t -¹½Â¤ÂΤ¬ÅϤµ¤ì¡¢¤³¤Î¹½Â¤ÂΤΠ+構造体が渡され、この構造体の .I si_fd -¥Õ¥£¡¼¥ë¥É¤Ë¤ÏÄÌÃΤιԤï¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Æþ¤Ã¤Æ¤¤¤ë -(¤³¤Îµ¡Ç½¤ÏÊ£¿ô¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ·¤ÆÄÌÃΤòÀßÄꤹ¤ë¾ì¹ç¤ËÍ­ÍѤǤ¢¤ë)¡£ +フィールドには通知の行われたファイルディスクリプタが入っている +(この機能は複数のディレクトリに対して通知を設定する場合に有用である)。 -ÆÃ¤Ë +特に .B DN_MULTISHOT -¤ò»È¤¦¾ì¹ç¤Ï¡¢ÄÌÃΤˤϥꥢ¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£ -¤½¤ì¤Ï¡¢¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ò»È¤¦¤³¤È¤Ç¡¢Ê£¿ô¤ÎÄÌÃΤò¥­¥å¡¼¤ËÆþ¤ì¤ë -¤³¤È¤¬¤Ç¤­¤ë¤«¤é¤Ç¤¢¤ë¡£ +を使う場合は、通知にはリアルタイムシグナルを使うべきである。 +それは、リアルタイムシグナルを使うことで、複数の通知をキューに入れる +ことができるからである。 -.B Ãí°Õ: -¿·¤·¤¯¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò½ñ¤¯ºÝ¤Ë¤Ï¡¢(¥«¡¼¥Í¥ë 2.6.13 °Ê¹ß¤ÇÍøÍѲÄǽ¤È¤Ê¤Ã¤¿) +.B 注意: +新しくアプリケーションを書く際には、(カーネル 2.6.13 以降で利用可能となった) .I inotify -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +インタフェースを使用すべきである。 .I inotify -¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¤¥Ù¥ó¥È¤ÎÄÌÃΤò¼èÆÀ¤¹¤ë¤¿¤á¤Î -¤º¤Ã¤ÈÍ¥¤ì¤¿¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ç¤¢¤ë¡£ +はファイルシステムイベントの通知を取得するための +ずっと優れたインタフェースである。 .BR inotify (7) -¤ò»²¾È¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤ÎÊÖ¤êÃͤÏÁàºî¤Î¼ïÎà¤Ë¤è¤ê°ã¤¦: +を参照。 +.SH 返り値 +成功した場合の返り値は操作の種類により違う: .TP 0.9i .B F_DUPFD -¿·¤·¤¤¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ +新しいディスクリプタを返す。 .TP .B F_GETFD -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Õ¥é¥°¤ÎÃͤòÊÖ¤¹¡£ +ファイルディスクリプタ・フラグの値を返す。 .TP .B F_GETFL -¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤ÎÃͤòÊÖ¤¹¡£ +ファイル状態フラグの値を返す。 .TP .B F_GETLEASE -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤ÆÊÝ»ý¤µ¤ì¤Æ¤¤¤ë¥ê¡¼¥¹¤Î¼ïÊ̤òÊÖ¤¹¡£ +ファイルディスクリプタに対して保持されているリースの種別を返す。 .TP .B F_GETOWN -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î½êÍ­¼Ô¤òÊÖ¤¹¡£ +ディスクリプタの所有者を返す。 .TP .B F_GETSIG -Æɤ߹þ¤ß¤ä½ñ¤­½Ð¤·¤¬²Äǽ¤Ë¤Ê¤Ã¤¿»þ¤ËÁ÷¤é¤ì¤ë¥·¥°¥Ê¥ë¤ÎÃÍ¡¢¤â¤·¤¯¤Ï -ÅÁÅýŪ¤Ê +読み込みや書き出しが可能になった時に送られるシグナルの値、もしくは +伝統的な .B SIGIO -Æ°ºî¤Î¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£ +動作の場合にはゼロを返す。 .TP -¾¤ÎÁ´¤Æ¤Î¥³¥Þ¥ó¥É¤Ï 0 ¤òÊÖ¤¹¡£ +他の全てのコマンドは 0 を返す。 .PP -¥¨¥é¡¼¤Î»þ¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +エラーの時は \-1 が返され、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +に適切な値が設定される。 +.SH エラー .TP -.BR EACCES " ¤« " EAGAIN -¾¤Î¥×¥í¥»¥¹¤¬ÊÝ»ý¤·¤Æ¤¤¤ë¥í¥Ã¥¯¤Ë¤è¤Ã¤ÆÁàºî¤¬¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¡£ +.BR EACCES " か " EAGAIN +他のプロセスが保持しているロックによって操作が禁止されている。 .TP .B EAGAIN -¤½¤Î¥Õ¥¡¥¤¥ë¤Ï¾¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¥á¥â¥ê¡¦¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤ë¤¿¤á¡¢ -Áàºî¤¬¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¡£ +そのファイルは他のプロセスによってメモリ・マップされているため、 +操作が禁止されている。 .TP .B EBADF .I fd -¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ -¤¢¤ë¤¤¤Ï¥³¥Þ¥ó¥É¤¬ +がオープンされたファイルディスクリプタでない。 +あるいはコマンドが .B F_SETLK -¤Þ¤¿¤Ï +または .B F_SETLKW -¤À¤Ã¤¿¤¬¡¢ÂоݤΥե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¥ª¡¼¥×¥ó¥â¡¼¥É¤¬ -ɬÍפȤʤë¥í¥Ã¥¯¤Î·¿¤Ë¥Þ¥Ã¥Á¤·¤Æ¤¤¤Ê¤¤¡£ +だったが、対象のファイルディスクリプタのオープンモードが +必要となるロックの型にマッチしていない。 .TP .B EDEADLK -»ØÄꤵ¤ì¤¿ +指定された .B F_SETLKW -¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤¿¾ì¹ç¤Ë¤Ï¥Ç¥Ã¥É¥í¥Ã¥¯¤Ë¤Ê¤ë¤³¤È¤¬¸¡½Ð¤µ¤ì¤¿¡£ +コマンドを実行した場合にはデッドロックになることが検出された。 .TP .B EFAULT .I lock -¤¬ÍøÍѲÄǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°Éô¤Ë¤¢¤ë¡£ +が利用可能なアドレス空間の外部にある。 .TP .B EINTR .B F_SETLKW -¥³¥Þ¥ó¥É¤¬¥·¥°¥Ê¥ë¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿ +コマンドがシグナルにより割り込まれた .RB ( signal (7) -»²¾È)¡£ -.BR F_GETLK " ¤È " F_SETLK -¤Î¾ì¹ç¡¢¥í¥Ã¥¯¤ò³Îǧ¤·¤¿¤ê¼èÆÀ¤·¤¿¤ê¤¹¤ëÁ°¤Ë¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿¡£ -¤³¤ì¤Ï¤¿¤¤¤Æ¤¤¥ê¥â¡¼¥È¤Î¥Õ¥¡¥¤¥ë¤ò¥í¥Ã¥¯¤¹¤ë¾ì¹ç -(Î㤨¤Ð NFS ¾å¤Ç¥í¥Ã¥¯¤¹¤ë¾ì¹ç) ¤Ëµ¯¤³¤ë¡£ -¤·¤«¤·¥í¡¼¥«¥ë¤Ç¤âµ¯¤³¤ë¾ì¹ç¤¬¤¢¤ë¡£ +参照)。 +.BR F_GETLK " と " F_SETLK +の場合、ロックを確認したり取得したりする前にシグナルによって割り込まれた。 +これはたいていリモートのファイルをロックする場合 +(例えば NFS 上でロックする場合) に起こる。 +しかしローカルでも起こる場合がある。 .TP .B EINVAL -.BR F_DUPFD ¤Ç¡¢ +.BR F_DUPFD で、 .I arg -¤¬É餫¡¢¤â¤·¤¯¤Ïµö¤µ¤ì¤ëºÇÂçÃͤè¤ê¤âÂ礭¤¤¡£ +が負か、もしくは許される最大値よりも大きい。 .B F_SETSIG -¤Î¾ì¹ç¡¢ +の場合、 .I arg -¤¬ÍøÍѲÄǽ¤Ê¥·¥°¥Ê¥ëÈÖ¹æ¤Ç¤Ï¤Ê¤¤¡£ +が利用可能なシグナル番号ではない。 .TP .B EMFILE -.BR F_DUPFD ¤Ç¡¢ -¥×¥í¥»¥¹¤¬¤¹¤Ç¤ËºÇÂç¿ô¤Þ¤Ç¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¡£ +.BR F_DUPFD で、 +プロセスがすでに最大数までファイルディスクリプタをオープンしている。 .TP .B ENOLCK -¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥í¥Ã¥¯¤Î¿ô¤¬Â¿²á¤®¤Æ¡¢¥í¥Ã¥¯¡¦¥Æ¡¼¥Ö¥ë¤¬¤¤¤Ã¤Ñ¤¤¤Ç¤¢¤ë¡£ -¤Þ¤¿¤Ï remote locking protocol (Î㤨¤Ð NFS ¾å¤Î¥í¥Ã¥¯) ¤¬¼ºÇÔ¤·¤¿¡£ +オープンされているロックの数が多過ぎて、ロック・テーブルがいっぱいである。 +または remote locking protocol (例えば NFS 上のロック) が失敗した。 .TP .B EPERM -ÄɲÃÀìÍÑ°À­¤¬ÀßÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î +追加専用属性が設定されたファイルの .B O_APPEND -¥Õ¥é¥°¤ò¥¯¥ê¥¢¤·¤è¤¦¤È»î¤ß¤¿¡£ -.SH ½àµò +フラグをクリアしようと試みた。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ëÁàºî¤Ï¡¢ +POSIX.1-2001 で規定されている操作は、 .BR F_DUPFD , .BR F_GETFD , .BR F_SETFD , @@ -1135,10 +1135,10 @@ POSIX.1-2001 .BR F_SETLKW , .BR F_GETOWN , .B F_SETOWN -¤À¤±¤Ç¤¢¤ë¡£ +だけである。 .B F_DUPFD_CLOEXEC -¤Ï POSIX.1-2008 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は POSIX.1-2008 で規定されている。 .BR F_GETOWN_EX , .BR F_SETOWN_EX , @@ -1147,86 +1147,86 @@ POSIX.1-2001 .BR F_NOTIFY , .BR F_GETLEASE , .B F_SETLEASE -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë (¤³¤ì¤é¤ÎÄêµÁ¤òÍ­¸ú¤Ë¤¹¤ë¤Ë¤Ï +は Linux 固有である (これらの定義を有効にするには .B _GNU_SOURCE -¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤³¤È)¡£ +マクロを定義すること)。 .\" .PP -.\" SVr4 ¤Ë¤Ï¾¤Ë EFAULT, EINTR, EIO, ENOLINK, EOVERFLOW ¥¨¥é¡¼¾õÂ֤ˤĤ¤¤Æ¤Î -.\" µ­½Ò¤¬¤¢¤ë¡£ -.SH Ãí°Õ -¥¨¥é¡¼¤ÎºÝ¤ÎÊÖ¤êÃͤ¬ +.\" SVr4 には他に EFAULT, EINTR, EIO, ENOLINK, EOVERFLOW エラー状態についての +.\" 記述がある。 +.SH 注意 +エラーの際の返り値が .BR dup2 (2) -¤È +と .B F_DUPFD -¤Ç¤Ï°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ +では異なっている。 -¥«¡¼¥Í¥ë 2.0 °Ê¹ß¤Ç¤Ï¡¢ +カーネル 2.0 以降では、 .BR flock (2) -¤È +と .BR fcntl () -¤¬ÀßÄꤹ¤ë¥í¥Ã¥¯¼ïÊ̤δ֤ËÁê¸ßºîÍѤϤʤ¤¡£ +が設定するロック種別の間に相互作用はない。 -¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¡¢ +システムによっては、 .I "struct flock" -¤Ë¾åµ­°Ê³°¤Î¥Õ¥£¡¼¥ë¥É¤¬¤¢¤ë¤â¤Î¤â¤¢¤ë (Î㤨¤Ð -.IR l_sysid )¡£ +に上記以外のフィールドがあるものもある (例えば +.IR l_sysid )。 .\" e.g., Solaris 8 documents this field in fcntl(2), and Irix 6.5 .\" documents it in fcntl(5). mtk, May 2007 -¤Ï¤Ã¤­¤ê¤È¸À¤¨¤ë¤³¤È¤Ï¡¢¥í¥Ã¥¯¤òÊÝ»ý¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤¬Ê̤Υޥ·¥ó¤Ë¸ºß -¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢ +はっきりと言えることは、ロックを保持しているプロセスが別のマシンに存在 +する場合には、 .I l_pid -¤À¤±¤Ï¤¢¤Þ¤êÌò¤Ë¤¿¤¿¤Ê¤¤¤À¤í¤¦¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ -.SH ¥Ð¥° -¤¤¤¯¤Ä¤«¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã (ÆÃ¤Ë i386) ¤Ë¤ª¤±¤ë Linux ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î´·½¬ -¤Î¤¿¤á°Ê²¼¤ÎÀ©¸Â¤¬Â¸ºß¤¹¤ë¡£ +だけはあまり役にたたないだろうということである。 +.SH バグ +いくつかのアーキテクチャ (特に i386) における Linux システムコールの慣習 +のため以下の制限が存在する。 .B F_GETOWN -¤¬ÊÖ¤¹ (Éé¤Î) ¥×¥í¥»¥¹¥°¥ë¡¼¥×ID ¤¬ \-1 ¤«¤é \-4095 ¤ÎÈϰϤËÆþ¤Ã¤¿¾ì¹ç¡¢ -glibc ¤Ï¤³¤ÎÊÖ¤êÃͤò¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¤È -´Ö°ã¤Ã¤Æ²ò¼á¤·¤Æ¤·¤Þ¤¦¡£¤Ä¤Þ¤ê¡¢ +が返す (負の) プロセスグループID が \-1 から \-4095 の範囲に入った場合、 +glibc はこの返り値をシステムコールでエラーが起こったと +間違って解釈してしまう。つまり、 .BR fcntl () -¤ÎÊÖ¤êÃÍ¤Ï \-1 ¤È¤Ê¤ê¡¢ +の返り値は \-1 となり、 .I errno -¤Ë¤Ï (Àµ¤Î) ¥×¥í¥»¥¹¥°¥ë¡¼¥×ID ¤¬ÀßÄꤵ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ -Linux ¸ÇÍ­¤Î +には (正の) プロセスグループID が設定されることになる。 +Linux 固有の .B F_SETOWN_EX -¤È +と .B F_GETOWN_EX -¤Ç¤Ï¤³¤ÎÌäÂê¤ò²óÈò¤Ç¤­¤ë¡£ -.\" mtk, Dec 04: alpha ¤È ia64 ¤Ç¤Ï¡¢¾¯¤·¥Æ¥¹¥È¤·¤Æ¤ß¤¿¸Â¤ê¡¢ -.\" ¡Ö¤É¤ó¤Ê¡×Éé¤Î PGID ¤Ç¤â F_GETOWN ¤Ç¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¤È´Ö°ã¤Ã¤Æ -.\" ²ò¼á¤µ¤ì¤Æ¤·¤Þ¤¦¤è¤¦¤À¡£Â¾¤Î¤¤¤¯¤Ä¤«¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢ -.\" i386 ¤ÈƱÍͤÎÈϰϤΥÁ¥§¥Ã¥¯¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë¤è¤¦¤À¡£ +ではこの問題を回避できる。 +.\" mtk, Dec 04: alpha と ia64 では、少しテストしてみた限り、 +.\" 「どんな」負の PGID でも F_GETOWN でエラーが起こったと間違って +.\" 解釈されてしまうようだ。他のいくつかのアーキテクチャでは、 +.\" i386 と同様の範囲のチェックが行われているようだ。 -Linux 2.4 °ÊÁ°¤Ç¤Ï¡¢ÈóÆø¢¥×¥í¥»¥¹¤¬ +Linux 2.4 以前では、非特権プロセスが .B F_SETOWN -¤ò»È¤Ã¤Æ¡¢¥½¥±¥Ã¥È¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î½êÍ­¼Ô¤Ë -¸Æ¤Ó½Ð¤·¸µ°Ê³°¤Î¥×¥í¥»¥¹ (¤ä¥×¥í¥»¥¹¥°¥ë¡¼¥×) ¤ò»ØÄꤹ¤ë¤È -ȯÀ¸¤¹¤ë¥Ð¥°¤¬¤¢¤ë¡£¤³¤Î¾ì¹ç¡¢ -¸Æ¤Ó½Ð¤·¸µ¤¬½êÍ­¼Ô¤È¤·¤Æ»ØÄꤷ¤¿¥×¥í¥»¥¹ (¤ä¥×¥í¥»¥¹¥°¥ë¡¼¥×) ¤Ë -¥·¥°¥Ê¥ë¤òÁ÷¤ëµö²Ä¤ò»ý¤Ã¤Æ¤¤¤¿¤È¤·¤Æ¤â¡¢ +を使って、ソケットのファイルディスクリプタの所有者に +呼び出し元以外のプロセス (やプロセスグループ) を指定すると +発生するバグがある。この場合、 +呼び出し元が所有者として指定したプロセス (やプロセスグループ) に +シグナルを送る許可を持っていたとしても、 .BR fcntl () -¤¬ \-1 ¤òÊÖ¤· +が \-1 を返し .I errno -¤Ë +に .B EPERM -¤òÀßÄꤹ¤ë¤³¤È¤¬¤¢¤ë¡£ -¤³¤Î¥¨¥é¡¼¤¬Ê֤俤ˤ⤫¤«¤ï¤é¤º¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î½êÍ­¼Ô -¤ÏÀßÄꤵ¤ì¡¢¥·¥°¥Ê¥ë¤Ï¤½¤Î½êÍ­¼Ô¤ËÁ÷¤é¤ì¤ë¡£ +を設定することがある。 +このエラーが返ったにもかかわらず、ファイルディスクリプタの所有者 +は設定され、シグナルはその所有者に送られる。 -¤³¤ì¤Þ¤Ç¤Î Linux ¤ÎÁ´¤Æ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤ª¤±¤ë¶¯À©¥í¥Ã¥¯¤Î¼ÂÁõ¤Ï¡¢ -¶¥¹ç¾ò·ï²¼¤Ç¶¯À©¥í¥Ã¥¯¤¬ÉÔ´°Á´¤Ë¤Ê¤ë¤è¤¦¤Ê¾ì¹ç¤¬¤¢¤ë¡£ +これまでの Linux の全てのバージョンにおける強制ロックの実装は、 +競合条件下で強制ロックが不完全になるような場合がある。 .\" http://marc.info/?l=linux-kernel&m=119013491707153&w=2 -¥í¥Ã¥¯¤È½Å¤Ê¤Ã¤Æ¼Â¹Ô¤µ¤ì¤¿ +ロックと重なって実行された .BR write (2) -¤Î¸Æ¤Ó½Ð¤·¤Ï¶¯À©¥í¥Ã¥¯¤¬³ÍÆÀ¤µ¤ì¤¿¸å¤Ë¤â¥Ç¡¼¥¿¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥í¥Ã¥¯¤È½Å¤Ê¤Ã¤Æ¼Â¹Ô¤µ¤ì¤¿ +の呼び出しは強制ロックが獲得された後にもデータを変更することができる。 +ロックと重なって実行された .BR read (2) -¤Î¸Æ¤Ó½Ð¤·¤Ï¶¯À©¥í¥Ã¥¯¤¬³ÍÆÀ¤µ¤ì¤¿¸å¤Ë¤Ê¤Ã¤Æ¹Ô¤ï¤ì¤¿¥Ç¡¼¥¿¤ÎÊѹ¹¤ò -¸¡½Ð¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -ƱÍͤζ¥¹ç¾ò·ï¤¬¶¯À©¥í¥Ã¥¯¤È +の呼び出しは強制ロックが獲得された後になって行われたデータの変更を +検出することができる。 +同様の競合条件が強制ロックと .BR mmap (2) -¤Î´Ö¤Ë¤â¸ºß¤¹¤ë¡£¤½¤ì¤æ¤¨¡¢¶¯À©¥í¥Ã¥¯¤ËÍê¤ë¤Î¤Ï¤ªÁ¦¤á¤Ç¤­¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +の間にも存在する。それゆえ、強制ロックに頼るのはお薦めできない。 +.SH 関連項目 .BR dup2 (2), .BR flock (2), .BR open (2), @@ -1235,17 +1235,17 @@ Linux 2.4 .BR capabilities (7), .BR feature_test_macros (7) .P -¥«¡¼¥Í¥ë¥½¡¼¥¹¤Î +カーネルソースの .IR Documentation/filesystems/ -¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î +ディレクトリ内の .IR locks.txt , .IR mandatory-locking.txt , .I dnotify.txt -¤â»²¾È¤Î¤³¤È¡£ -(°ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï +も参照のこと。 +(以前のカーネルでは、これらのファイルは .I Documentation/ -¥Ç¥£¥ì¥¯¥È¥êľ²¼¤Ë¤¢¤ê¡¢ +ディレクトリ直下にあり、 .I mandatory-locking.txt -¤Ï +は .I mandatory.txt -¤È¤¤¤¦Ì¾Á°¤Ç¤¢¤Ã¤¿¡£) +という名前であった。) diff --git a/release/man2/flock.2 b/release/man2/flock.2 index 475b489b..f188ccd6 100644 --- a/release/man2/flock.2 +++ b/release/man2/flock.2 @@ -41,173 +41,173 @@ .\" Updated 2005-09-06, Akihiro MOTOKI .\" .TH FLOCK 2 2009-07-25 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -flock \- ¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥¢¥É¥Ð¥¤¥¶¥ê¡¦¥í¥Ã¥¯¤ÎŬÍÑ¡¢²ò½ü¤ò¹Ô¤¦ -.SH ½ñ¼° +.SH 名前 +flock \- オープンされたファイルに対するアドバイザリ・ロックの適用、解除を行う +.SH 書式 .B #include .sp .BI "int flock(int " fd ", int " operation ); -.SH ÀâÌÀ -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë¥¢¥É¥Ð¥¤¥¶¥ê¡¦¥í¥Ã¥¯ (advisory lock) ¤ÎŬÍÑ -¤ä²ò½ü¤ò¹Ô¤¦¡£ -¥Õ¥¡¥¤¥ë¤Ï +.SH 説明 +オープンされたファイルにアドバイザリ・ロック (advisory lock) の適用 +や解除を行う。 +ファイルは .I fd -¤Ç»ØÄꤹ¤ë¡£°ú¤­¿ô +で指定する。引き数 .I operation -¤Ë¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«°ì¤Ä¤ò»ØÄꤹ¤ë: +には以下のいずれか一つを指定する: .RS 4 .TP 9 .B LOCK_SH -¶¦Í­¥í¥Ã¥¯¤òŬÍѤ¹¤ë¡£ »ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡¢ -°ì¤Ä°Ê¾å¤Î¥×¥í¥»¥¹¤¬Æ±»þ¤Ë¶¦Í­¥í¥Ã¥¯¤òÊÝ»ý¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +共有ロックを適用する。 指定したファイルに対して、 +一つ以上のプロセスが同時に共有ロックを保持することができる。 .TP .B LOCK_EX -ÇÓ¾¥í¥Ã¥¯¤òŬÍѤ¹¤ë¡£ »ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡¢ -¤¿¤À°ì¤Ä¤Î¥×¥í¥»¥¹¤À¤±¤¬Æ±»þ¤ËÇÓ¾¥í¥Ã¥¯¤òÊÝ»ý¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +排他ロックを適用する。 指定したファイルに対して、 +ただ一つのプロセスだけが同時に排他ロックを保持することができる。 .TP .B LOCK_UN -¤³¤Î¥×¥í¥»¥¹¤¬ÊÝ»ý¤·¤Æ¤¤¤ë´û¸¤Î¥í¥Ã¥¯¤ò²ò½ü¤¹¤ë¡£ +このプロセスが保持している既存のロックを解除する。 .RE .PP .BR flock () -¤ò¸Æ¤Ó½Ð¤·¤¿¤È¤­¤Ë¡¢»ØÄꤷ¤¿¥í¥Ã¥¯¼ïÊ̤Ȱۤʤë¥í¥Ã¥¯¤¬ÊÌ¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ -ÊÝ»ý¤µ¤ì¤Æ¤¤¤ë¤È¡¢ +を呼び出したときに、指定したロック種別と異なるロックが別プロセスによって +保持されていると、 .BR flock () -¤ÏÄä»ß (block) ¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ -ÈóÄä»ß (nonblocking) ¥¿¥¤¥×¤ÎÍ×µá¤ò¹Ô¤¦¤¿¤á¤Ë¤Ï¡¢ -¾åµ­¤ÎÁàºî (operation) ¤Ë +は停止 (block) されることがある。 +非停止 (nonblocking) タイプの要求を行うためには、 +上記の操作 (operation) に .B LOCK_NB -¤òÏÀÍýϤηÁ¤Ç»ØÄꤹ¤ë¡£ +を論理和の形で指定する。 -°ì¤Ä¤Î¥Õ¥¡¥¤¥ë¤Ë¶¦Í­¥í¥Ã¥¯¤ÈÇÓ¾¥í¥Ã¥¯¤òƱ»þ¤ËÀßÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +一つのファイルに共有ロックと排他ロックを同時に設定することはできない。 .BR flock () -¤Ë¤è¤Ã¤Æºî¤é¤ì¤ë¥í¥Ã¥¯¤Ï¡¢ -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥Æ¡¼¥Ö¥ë¡¦¥¨¥ó¥È¥ê¤È´ØÏ¢ÉÕ¤±¤é¤ì¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÊ£À½ +によって作られるロックは、 +オープンされたファイルのテーブル・エントリと関連付けられる。 +したがって、ファイル・ディスクリプタの複製 .RB ( fork (2) -¤ä +や .BR dup (2) -¤Ê¤É¤Ë¤è¤êºîÀ®¤µ¤ì¤ë) ¤ÏƱ¤¸¥í¥Ã¥¯¤ò»²¾È¤·¡¢ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤É¤ì¤ò»È¤Ã¤Æ¤â -¤³¤Î¥í¥Ã¥¯¤òÊѹ¹¤·¤¿¤ê²òÊü¤·¤¿¤ê¤Ç¤­¤ë¡£ -¤Þ¤¿¡¢¥í¥Ã¥¯¤Î²òÊü¤Ï¡¢ -¾åµ­¤ÎÊ£¿ô¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¤¤º¤ì¤«¤ËÂФ·¤Æ -ÌÀ¼¨Åª¤Ë +などにより作成される) は同じロックを参照し、 +これらのファイル・ディスクリプタのどれを使っても +このロックを変更したり解放したりできる。 +また、ロックの解放は、 +上記の複数のファイル・ディスクリプタのいずれかに対して +明示的に .B LOCK_UN -Áàºî¤ò»Ø¼¨¤·¤¿¾ì¹ç¤«¡¢¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¤¹¤Ù¤Æ -ÊĤ¸¤é¤ì¤¿¾ì¹ç¤Ë¹Ô¤ï¤ì¤ë¡£ +操作を指示した場合か、これらのファイル・ディスクリプタがすべて +閉じられた場合に行われる。 -¤¢¤ë¥×¥í¥»¥¹¤¬ +あるプロセスが .BR open (2) -(¤â¤·¤¯¤ÏƱÍͤÎÊýË¡) ¤ò»È¤Ã¤ÆƱ¤¸¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ -Ê£¿ô¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¼èÆÀ¤·¤¿¾ì¹ç¡¢ +(もしくは同様の方法) を使って同じファイルに対して +複数のディスクリプタを取得した場合、 .BR flock () -¤Ï¤³¤ì¤éÊ£¿ô¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò³Æ¡¹ÆÈΩ¤Î¤â¤Î¤È¤·¤Æ°·¤¦¡£ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î°ì¤Ä¤ò»È¤Ã¤Æ¥Õ¥¡¥¤¥ë¤ò¥í¥Ã¥¯¤·¤è¤¦¤È -¤·¤¿ºÝ¡¢¤½¤Î¥í¥Ã¥¯Í×µá¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬¤½¤Î¥Õ¥¡¥¤¥ë¤ÎÊ̤Π-¥Ç¥£¥¹¥¯¥ê¥×¥¿·Ðͳ¤Ç¤¹¤Ç¤ËÀßÄꤷ¤Æ¤¤¤ë¥í¥Ã¥¯¤Ë¤è¤Ã¤ÆµñÈݤµ¤ì¤ë¾ì¹ç¤¬¤¢¤ë¡£ +はこれら複数のディスクリプタを各々独立のものとして扱う。 +これらのファイル・ディスクリプタの一つを使ってファイルをロックしようと +した際、そのロック要求は、呼び出し元のプロセスがそのファイルの別の +ディスクリプタ経由ですでに設定しているロックによって拒否される場合がある。 -°ì¤Ä¤Î¥×¥í¥»¥¹¤Ï¡¢°ì¤Ä¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ (¶¦Í­¥í¥Ã¥¯¤ÈÇÓ¾¥í¥Ã¥¯¤Î¤¦¤Á) -¤¤¤º¤ì¤«°ì¼ïÎà¤Î¥í¥Ã¥¯¤·¤«ÀßÄê¤Ç¤­¤Ê¤¤¡£ -´û¤Ë¥í¥Ã¥¯¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ +一つのプロセスは、一つのファイルに対して (共有ロックと排他ロックのうち) +いずれか一種類のロックしか設定できない。 +既にロックされたファイルに対して .BR flock () -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢´û¸¤Î¥í¥Ã¥¯¤ò¿·¤·¤¤¥í¥Ã¥¯¥â¡¼¥É¤ËÊѹ¹¤¹¤ë¤³¤È¤Ë¤Ê¤ë¡£ +を呼び出すと、既存のロックを新しいロックモードに変更することになる。 .BR flock () -¤Ë¤è¤êºîÀ®¤µ¤ì¤¿¥í¥Ã¥¯¤Ï +により作成されたロックは .BR execve (2) -¤ÎÁ°¸å¤ÇÊݸ¤µ¤ì¤ë¡£ +の前後で保存される。 -¶¦Í­¥í¥Ã¥¯¤âÇÓ¾¥í¥Ã¥¯¤â¡¢¥Õ¥¡¥¤¥ë¤¬¤É¤Î¥â¡¼¥É¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤¿¤«¤Ë -´Ø·¸¤Ê¤¯Å¬ÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤Î¾ì¹ç¡¢0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +共有ロックも排他ロックも、ファイルがどのモードでオープンされたかに +関係なく適用することができる。 +.SH 返り値 +成功の場合、0 が返される。エラーの場合は、\-1 が返され、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +に適切な値が設定される。 +.SH エラー .TP .B EBADF .I fd -¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ +がオープンされたファイル・ディスクリプタではない。 .TP .B EINTR -¥í¥Ã¥¯¤Î³ÍÆÀ¤òÂԤäƤ¤¤ë´Ö¤Ë¡¢¥Ï¥ó¥É¥é¤Ë¤è¤êÊ᪤µ¤ì¤¿¥·¥°¥Ê¥ë¤ò -¼õ¿®¤·¡¢ +ロックの獲得を待っている間に、ハンドラにより捕捉されたシグナルを +受信し、 .BR flock () -¤¬ÃæÃǤµ¤ì¤¿¡£ +が中断された。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .I oepration -¤¬Ìµ¸ú¤Ç¤¢¤ë¡£ +が無効である。 .TP .B ENOLCK -¥í¥Ã¥¯¡¦¥ì¥³¡¼¥É¤ò³ä¤êÅö¤Æ¤ë¤¿¤á¤Î¥á¥â¥ê¤¬ÉÔ­¤·¤Æ¤¤¤ë¡£ +ロック・レコードを割り当てるためのメモリが不足している。 .TP .B EWOULDBLOCK -»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤¬¥í¥Ã¥¯¤µ¤ì¤Æ¤ª¤ê¡¢ +指定したファイルがロックされており、 .B LOCK_NB -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò +フラグが指定されている。 +.SH 準拠 4.4BSD .RB ( flock () -¥³¡¼¥ë¤Ï 4.2BSD ¤ÇºÇ½é¤ËÅо줷¤¿)¡£ +コールは 4.2BSD で最初に登場した)。 .BR fcntl (2) -¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤Ê¤É¤ò´Þ¤á¤ë¤È¡¢ +で実装されているものなどを含めると、 .BR flock () -¤Îµ¡Ç½¤Ï¤Û¤È¤ó¤É¤Î UNIX ¥·¥¹¥Æ¥à¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ +の機能はほとんどの UNIX システムで実装されている。 +.SH 注意 .BR flock () -¤Ï NFS ¾å¤Î¥Õ¥¡¥¤¥ë¤Î¥í¥Ã¥¯¤ò¤·¤Ê¤¤¡£Âå¤ï¤ê¤Ë +は NFS 上のファイルのロックをしない。代わりに .BR fcntl (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£¤³¤ì¤Ë¤è¤ê¡¢½½Ê¬¤Ë¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤Î Linux ¤È¡¢¥í¥Ã¥¯µ¡Ç½¤ò -¥µ¥Ý¡¼¥È¤·¤¿ NFS ¥µ¡¼¥Ð¤ò»ÈÍѤ¹¤ë¤³¤È¤Ë¤è¤ê¡¢NFS ¾å¤Ç¥í¥Ã¥¯¤¬¤Ç¤­¤ë¡£ +を使用すること。これにより、十分に新しいバージョンの Linux と、ロック機能を +サポートした NFS サーバを使用することにより、NFS 上でロックができる。 .PP -kernel 2.0 °Ê¹ß¤Ç¤Ï¡¢ +kernel 2.0 以降では、 .BR flock () -¤Ï¡¢GNU C ¥é¥¤¥Ö¥é¥ê¤Ç¤Î +は、GNU C ライブラリでの .BR fcntl (2) -¤ò¸Æ¤Ó½Ð¤·¤Æ¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤Ç¤Ï¤Ê¤¯¡¢ -¤½¤ì¼«ÂΤ¬¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤Ë¤è¤êÀµ¿¿ÀµÌäΠBSD ¤Ç¤ÎÆ°ºî¤¬Ã£À®¤µ¤ì¤ë: +を呼び出してのエミュレーションではなく、 +それ自体がシステムコールとして実装されている。 +これにより正真正銘の BSD での動作が達成される: .BR flock () -¤È +と .BR fcntl (2) -¤ÇŬÍѤµ¤ì¤ë¥í¥Ã¥¯¤Î¼ïÊ̤ˤÏÁê¸ßºîÍѤ¬¤Ê¤¯¤Ê¤ê¡¢ +で適用されるロックの種別には相互作用がなくなり、 .BR flock () -¤¬¥Ç¥Ã¥É¥í¥Ã¥¯¤ò¸¡½Ð¤·¤Ê¤¯¤Ê¤ë¡£ +がデッドロックを検出しなくなる。 .PP .BR flock () -¥¢¥É¥Ð¥¤¥¶¥ê¡¦¥í¥Ã¥¯¤À¤±¤òŬÍѤ¹¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢¥Õ¥¡¥¤¥ë¤ËŬÀڤʥ¢¥¯¥»¥¹¸¢¤ò -ÉÕÍ¿¤·¤Æ¤¤¤ì¤Ð¡¢¥×¥í¥»¥¹¤Ï +アドバイザリ・ロックだけを適用する。したがって、ファイルに適切なアクセス権を +付与していれば、プロセスは .BR flock () -¤Î»ÈÍѤË̵»ë¤·¤Æ¡¢¥Õ¥¡¥¤¥ë¤Ø¤ÎÆþ½ÐÎϤò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +の使用に無視して、ファイルへの入出力を行うことができる。 .PP .BR flock () -¤È +と .BR fcntl (2) -¤Ï fork ¤µ¤ì¤¿¥×¥í¥»¥¹¤È +は fork されたプロセスと .BR dup (2) -¤Ç°ã¤Ã¤¿Æ°ºî¤ò¤¹¤ë¡£ +で違った動作をする。 .BR flock () -¤ò +を .BR fcntl (2) -¤ò»È¤Ã¤Æ¼ÂÁõ¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +を使って実装しているシステムでは、 .BR flock () -¤ÎÆ°ºî¤Ï¤³¤Î¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤È¤Ï°ã¤¦¤À¤í¤¦¡£ +の動作はこのマニュアル・ページに記載されているものとは違うだろう。 .PP -¥í¥Ã¥¯¤ÎÊÑ´¹ (¶¦Í­¥í¥Ã¥¯¤«¤éÇÓ¾¥í¥Ã¥¯¤Ø¡¢¤â¤·¤¯¤Ï¤½¤ÎÈ¿ÂÐ) ¤¬¥¢¥È¥ß¥Ã¥¯¤Ë -¹Ô¤ï¤ì¤ë¤³¤È¤ÏÊݾڤµ¤ì¤Æ¤¤¤Ê¤¤: ´û¸¤Î¥í¥Ã¥¯¤¬¤Þ¤ººï½ü¤µ¤ì¡¢¤½¤ì¤«¤é¿·¤·¤¤ -¥í¥Ã¥¯¤¬ÀßÄꤵ¤ì¤ë¡£¤³¤Î 2¤Ä¤Î¥¹¥Æ¥Ã¥×¤Î´Ö¤Ë¡¢Â¾¤Î¥×¥í¥»¥¹¤«¤é¤Î½èÍýÂÔ¤Á¤Î -¥í¥Ã¥¯Í׵᤬ǧ¤á¤é¤ì¤ë¤«¤â¤·¤ì¤º¡¢·ë²Ì¤È¤·¤ÆÊÑ´¹¤ÏÄä»ß (block) ¤·¤¿¤ê¡¢ +ロックの変換 (共有ロックから排他ロックへ、もしくはその反対) がアトミックに +行われることは保証されていない: 既存のロックがまず削除され、それから新しい +ロックが設定される。この 2つのステップの間に、他のプロセスからの処理待ちの +ロック要求が認められるかもしれず、結果として変換は停止 (block) したり、 .RB ( LOCK_NB -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï) ¼ºÇÔ¤·¤¿¤ê¤¹¤ë¡£ -(¤³¤ì¤Ï¸µ¡¹¤Î BSD ¤ÎÆ°ºî¤Ç¤¢¤ê¡¢Â¿¤¯¤Î¾¤Î¼ÂÁõ¤Ç¤âµ¯¤³¤ë¡£) -.\" ¥«¡¼¥Í¥ë 2.5.21 ¤Ç¾¯¤·Æ°ºî¤¬Êѹ¹¤µ¤ì¤¿: ¥í¥Ã¥¯ÊÑ´¹¤ÎºÇÃæ¤Ï -.\" ¤½¤Î¥í¥Ã¥¯¤ò¹Ô¤ª¤¦¤È¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤¬ºÇ¹âÍ¥Àè¤È¤Ê¤ë -- mtk -.SH ´ØÏ¢¹àÌÜ +が指定された場合には) 失敗したりする。 +(これは元々の BSD の動作であり、多くの他の実装でも起こる。) +.\" カーネル 2.5.21 で少し動作が変更された: ロック変換の最中は +.\" そのロックを行おうとしているプロセスが最高優先となる -- mtk +.SH 関連項目 .BR close (2), .BR dup (2), .BR execve (2), @@ -216,8 +216,8 @@ kernel 2.0 .BR open (2), .BR lockf (3) -¥«¡¼¥Í¥ë¥½¡¼¥¹Æâ¤Î +カーネルソース内の .I Documentation/filesystem/locks.txt -(°ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï +(以前のカーネルでは .IR Documentation/locks.txt ) -¤â»²¾È¤Î¤³¤È¡£ +も参照のこと。 diff --git a/release/man2/fork.2 b/release/man2/fork.2 index 8259e411..d27fdba4 100644 --- a/release/man2/fork.2 +++ b/release/man2/fork.2 @@ -50,195 +50,195 @@ .\" Updated 2008-08-04, Akihiro MOTOKI , LDP v3.05 .\" .TH FORK 2 2009-04-27 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -fork \- »Ò¥×¥í¥»¥¹¤òÀ¸À®¤¹¤ë -.SH ½ñ¼° +.SH 名前 +fork \- 子プロセスを生成する +.SH 書式 .B #include .sp .B pid_t fork(void); -.SH ÀâÌÀ +.SH 説明 .BR fork () -¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤òÊ£À½¤·¤Æ¿·¤·¤¤¥×¥í¥»¥¹¤òÀ¸À®¤¹¤ë¡£ -\fIchild\fP ¤Ç»²¾È¤µ¤ì¤ë¿·¤·¤¤¥×¥í¥»¥¹¤Ï¡¢°Ê²¼¤ÎÅÀ¤ò½ü¤­¡¢ -\fIparent\fP ¤Ç»²¾È¤µ¤ì¤ë¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î´°Á´¤ÊÊ£À½¤Ç¤¢¤ë: +は呼び出し元プロセスを複製して新しいプロセスを生成する。 +\fIchild\fP で参照される新しいプロセスは、以下の点を除き、 +\fIparent\fP で参照される呼び出し元プロセスの完全な複製である: .IP * 3 -»Ò¥×¥í¥»¥¹¤ÏÆȼ«¤Î¥×¥í¥»¥¹ ID ¤ò»ý¤Á¡¢ -¤³¤Î PID ¤Ï´û¸¤Î¤É¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥× +子プロセスは独自のプロセス ID を持ち、 +この PID は既存のどのプロセスグループ .RB ( setpgid (2)) -¤Î ID ¤È¤â°ìÃפ·¤Ê¤¤¡£ +の ID とも一致しない。 .IP * -»Ò¥×¥í¥»¥¹¤Î¿Æ¥×¥í¥»¥¹ ID ¤Ï¡¢¿Æ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +子プロセスの親プロセス ID は、親プロセスのプロセス ID と同じである。 .IP * -»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤Î¥á¥â¥ê¥í¥Ã¥¯ +子プロセスは親プロセスのメモリロック .RB ( mlock (2), .BR mlockall (2)) -¤ò°ú¤­·Ñ¤¬¤Ê¤¤¡£ +を引き継がない。 .IP * -¥×¥í¥»¥¹¤Î»ñ¸»ÍøÍÑÎÌ +プロセスの資源利用量 .RB ( getrusage (2)) -¤È CPU ¥¿¥¤¥à¥«¥¦¥ó¥¿ +と CPU タイムカウンタ .RB ( times (2)) -¤¬¡¢»Ò¥×¥í¥»¥¹¤Ç¤Ï 0 ¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë¡£ +が、子プロセスでは 0 にリセットされる。 .IP * -»Ò¥×¥í¥»¥¹¤Î½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë¤Î½¸¹ç +子プロセスの処理待ちのシグナルの集合 .RB ( sigpending (2)) -¤Ï¡¢½é´ü¾õÂ֤Ǥ϶õ¤Ë¤Ê¤ë¡£ +は、初期状態では空になる。 .IP * -»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤«¤é¥»¥Þ¥Õ¥©Ä´À° +子プロセスは親プロセスからセマフォ調整 .RB ( semop (2)) -¤ò°ú¤­·Ñ¤¬¤Ê¤¤¡£ +を引き継がない。 .IP * -»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤«¤é¥ì¥³¡¼¥É¥í¥Ã¥¯ +子プロセスは親プロセスからレコードロック .RB ( fcntl (2)) -¤ò°ú¤­·Ñ¤¬¤Ê¤¤¡£ +を引き継がない。 .IP * -»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤«¤é¥¿¥¤¥Þ¡¼ +子プロセスは親プロセスからタイマー .RB ( setitimer (2), .BR alarm (2), .BR timer_create (2)) -¤ò°ú¤­·Ñ¤¬¤Ê¤¤¡£ +を引き継がない。 .IP * -»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤«¤é¼ç¤À¤Ã¤¿ÈóƱ´ü I/O Áàºî¤ò°ú¤­·Ñ¤¬¤Ê¤¤ +子プロセスは親プロセスから主だった非同期 I/O 操作を引き継がない .RB ( aio_read (3), .BR aio_write (3) -»²¾È)¡£ -¤Þ¤¿¡¢¿Æ¥×¥í¥»¥¹¤«¤éÈóƱ´ü I/O ¥³¥ó¥Æ¥­¥¹¥È¤ò°ú¤­·Ñ¤¬¤Ê¤¤ +参照)。 +また、親プロセスから非同期 I/O コンテキストを引き継がない .RB ( io_setup (2) -»²¾È)¡£ +参照)。 .PP -¾åµ­¤Î¥ê¥¹¥È¤Ë¤¢¤ë¥×¥í¥»¥¹Â°À­¤Ï¡¢POSIX.1-2001 ¤ÇÁ´¤Æ»ØÄꤵ¤ì¤Æ¤¤¤ë¡£ -¿Æ¥×¥í¥»¥¹¤È»Ò¥×¥í¥»¥¹¤Ï¡¢°Ê²¼¤Î Linux ¸ÇÍ­¤Î¥×¥í¥»¥¹Â°À­¤â°Û¤Ê¤ë: +上記のリストにあるプロセス属性は、POSIX.1-2001 で全て指定されている。 +親プロセスと子プロセスは、以下の Linux 固有のプロセス属性も異なる: .IP * 3 -»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤«¤é¥Ç¥£¥ì¥¯¥È¥êÊѹ¹ÄÌÃÎ (dnotify) +子プロセスは親プロセスからディレクトリ変更通知 (dnotify) .RB ( fcntl (2) -¤Ë¤ª¤±¤ë +における .B F_NOTIFY -¤ÎÀâÌÀ¤ò»²¾È) ¤ò°ú¤­·Ñ¤¬¤Ê¤¤¡£ +の説明を参照) を引き継がない。 .IP * .BR prctl (2) -¤Î +の .B PR_SET_PDEATHSIG -¤ÎÀßÄ꤬¥ê¥»¥Ã¥È¤µ¤ì¡¢»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿¤È¤­¤Ë -¥·¥°¥Ê¥ë¤ò¼õ¿®¤·¤Ê¤¤¡£ +の設定がリセットされ、子プロセスは親プロセスが終了したときに +シグナルを受信しない。 .IP * .BR madvise (2) -¤Î +の .B MADV_DONTFORK -¥Õ¥é¥°¤Ç¥Þ¡¼¥¯¤µ¤ì¤¿¥á¥â¥ê¥Þ¥Ã¥Ô¥ó¥°¤Ï¡¢ +フラグでマークされたメモリマッピングは、 .BR fork () -¤Ë¤è¤Ã¤Æ°ú¤­·Ñ¤¬¤ì¤Ê¤¤¡£ +によって引き継がれない。 .IP * -»Ò¥×¥í¥»¥¹¤Î½ªÎ»¥·¥°¥Ê¥ë¤Ï¾ï¤Ë +子プロセスの終了シグナルは常に .B SIGCHLD -¤Ç¤¢¤ë +である .RB ( clone (2) -¤ò»²¾È)¡£ +を参照)。 .PP -¤µ¤é¤Ë°Ê²¼¤ÎÅÀ¤Ë¤Ä¤¤¤ÆÃí°Õ¤¹¤ë¤³¤È: +さらに以下の点について注意すること: .IP * 3 -»Ò¥×¥í¥»¥¹¤Ï¥·¥ó¥°¥ë¥¹¥ì¥Ã¥É¤ÇÀ¸À®¤µ¤ì¤ë¡£¤Ä¤Þ¤ê¡¢ +子プロセスはシングルスレッドで生成される。つまり、 .BR fork () -¤ò¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤È¤Ê¤ë¡£ -¿Æ¥×¥í¥»¥¹¤Î²¾ÁÛ¥¢¥É¥ì¥¹¶õ´ÖÁ´ÂΤ¬»Ò¥×¥í¥»¥¹¤ËÊ£À½¤µ¤ì¤ë¡£ -¤³¤ì¤Ë¤Ï¥ß¥å¡¼¥Æ¥Ã¥¯¥¹ (mutex) ¤Î¾õÂÖ¡¦¾ò·ïÊÑ¿ô¡¦ -pthread ¥ª¥Ö¥¸¥§¥¯¥È¤¬´Þ¤Þ¤ì¤ë¡£ -¤³¤ì¤¬°ú¤­µ¯¤³¤¹ÌäÂê¤ò°·¤¦¤Ë¤Ï¡¢ +を呼び出したスレッドとなる。 +親プロセスの仮想アドレス空間全体が子プロセスに複製される。 +これにはミューテックス (mutex) の状態・条件変数・ +pthread オブジェクトが含まれる。 +これが引き起こす問題を扱うには、 .BR pthread_atfork (3) -¤ò»È¤¦¤ÈÎɤ¤¤À¤í¤¦¡£ +を使うと良いだろう。 .IP * -»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤¬»ý¤Ä -¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î½¸¹ç¤Î¥³¥Ô¡¼¤ò°ú¤­·Ñ¤°¡£ -»Ò¥×¥í¥»¥¹¤Î³Æ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢ -¿Æ¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂбþ¤¹¤ë -Ʊ¤¸¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò (file description) ¤ò»²¾È¤¹¤ë +子プロセスは親プロセスが持つ +オープンファイルディスクリプタの集合のコピーを引き継ぐ。 +子プロセスの各ファイルディスクリプタは、 +親プロセスのファイルディスクリプタに対応する +同じオープンファイル記述 (file description) を参照する .RB ( open (2) -¤ò»²¾È)¡£ -¤³¤ì¤Ï 2 ¤Ä¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¡¢¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¡¦ -¸½ºß¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¡¢¥·¥°¥Ê¥ë¶îÆ° (signal-driven) I/O °À­ +を参照)。 +これは 2 つのディスクリプタが、ファイル状態フラグ・ +現在のファイルオフセット、シグナル駆動 (signal-driven) I/O 属性 .RB ( fcntl (2) -¤Ë¤ª¤±¤ë +における .BR F_SETOWN , .B F_SETSIG -¤ÎÀâÌÀ¤ò»²¾È) ¤ò¶¦Í­¤¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +の説明を参照) を共有することを意味する。 .IP * -»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤¬»ý¤Ä¥ª¡¼¥×¥ó¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¥Ç¥£¥¹¥¯¥ê¥×¥¿ +子プロセスは親プロセスが持つオープンメッセージキューディスクリプタ .RB ( mq_overview (7) -¤ò»²¾È) ¤Î½¸¹ç¤Î¥³¥Ô¡¼¤ò°ú¤­·Ñ¤°¡£ -»Ò¥×¥í¥»¥¹¤Î³Æ¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢ -¿Æ¥×¥í¥»¥¹¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂбþ¤¹¤ë -Ʊ¤¸¥ª¡¼¥×¥ó¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò»²¾È¤¹¤ë¡£ -¤³¤ì¤Ï 2 ¤Ä¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Æ±¤¸¥Õ¥é¥° +を参照) の集合のコピーを引き継ぐ。 +子プロセスの各ディスクリプタは、 +親プロセスのディスクリプタに対応する +同じオープンメッセージキューディスクリプタを参照する。 +これは 2 つのディスクリプタが同じフラグ .RI ( mq_flags ) -¤ò¶¦Í­¤¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +を共有することを意味する。 .IP * -»Ò¥×¥í¥»¥¹¤Ï¡¢¿Æ¥×¥í¥»¥¹¤Î¥ª¡¼¥×¥óºÑ¤ß¤Î¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤Î½¸¹ç +子プロセスは、親プロセスのオープン済みのディレクトリストリームの集合 .RB ( opendir (3) -»²¾È) ¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£ -POSIX.1-2001 ¤Ç¤Ï¡¢¿Æ¥×¥í¥»¥¹¤È»Ò¥×¥í¥»¥¹´Ö¤ÎÂбþ¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à -¤Ï¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤Î°ÌÃÖ (positioning) ¤ò¶¦Í­¤·¤Æ¤â¤è¤¤¤È¤µ¤ì¤Æ¤¤¤ë¡£ -Linux/glibc ¤Ç¤Ï¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤Î°ÌÃ֤ζ¦Í­¤Ï¹Ô¤ï¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢¿Æ¥×¥í¥»¥¹¤Ë¤Ï»Ò¥×¥í¥»¥¹¤Î PID ¤¬ÊÖ¤µ¤ì¡¢ -»Ò¥×¥í¥»¥¹¤Ë¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢¿Æ¥×¥í¥»¥¹¤Ë \-1 ¤¬ÊÖ¤µ¤ì¡¢»Ò¥×¥í¥»¥¹¤ÏÀ¸À®¤µ¤ì¤º¡¢ +参照) のコピーを継承する。 +POSIX.1-2001 では、親プロセスと子プロセス間の対応するディレクトリストリーム +はディレクトリストリームの位置 (positioning) を共有してもよいとされている。 +Linux/glibc ではディレクトリストリームの位置の共有は行われていない。 +.SH 返り値 +成功した場合、親プロセスには子プロセスの PID が返され、 +子プロセスには 0 が返される。 +失敗した場合、親プロセスに \-1 が返され、子プロセスは生成されず、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EAGAIN -¿Æ¥×¥í¥»¥¹¤Î¥Ú¡¼¥¸¡¦¥Æ¡¼¥Ö¥ë¤Î¥³¥Ô¡¼¤È -»Ò¥×¥í¥»¥¹¤Î¥¿¥¹¥¯¹½Â¤¤ËÀ¸À®¤ËɬÍפʥá¥â¥ê¤ò +親プロセスのページ・テーブルのコピーと +子プロセスのタスク構造に生成に必要なメモリを .BR fork () -¤¬³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +が割り当てることができなかった。 .TP .B EAGAIN -¸Æ¤Ó½Ð¤·¸µ¤Î +呼び出し元の .B RLIMIT_NPROC -»ñ¸»¤ÎÀ©¸Â (resource limit) ¤Ë㤷¤¿¤¿¤á¤Ë¡¢¿·¤·¤¤¥×¥í¥»¥¹¤òÀ¸À®¤Ç¤­¤Ê¤«¤Ã¤¿¡£ -¤³¤ÎÀ©¸Â¤òĶ¤¨¤ë¤Ë¤Ï¡¢¥×¥í¥»¥¹¤Ï +資源の制限 (resource limit) に達したために、新しいプロセスを生成できなかった。 +この制限を超えるには、プロセスは .B CAP_SYS_ADMIN -¤Þ¤¿¤Ï +または .B CAP_SYS_RESOURCE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤Ã¤Æ¤¤¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +ケーパビリティ (capability) を持っていなくてはならない。 .TP .B ENOMEM -¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¤¿¤á¤Ë¡¢ +メモリが足りないために、 .BR fork () -¤ÏɬÍפʥ«¡¼¥Í¥ë¹½Â¤ÂΤò³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¡£ -.SH ½àµò +は必要なカーネル構造体を割り当てることができなかった。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -.SH Ãí°Õ -Linux ¤Ç¤Ï¡¢ +.SH 注意 +Linux では、 .BR fork () -¤ò ½ñ¤­¹þ¤ß»þ¥³¥Ô¡¼ (copy-on-write)¡¦¥Ú¡¼¥¸¤òÍѤ¤¤Æ¼ÂÁõ¤·¤Æ¤¤¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢fork ¤ò¹Ô¤¦¤³¤È¤ÎÍ£°ì¤Î¥Ç¥á¥ê¥Ã¥È¤Ï¡¢ -¿Æ¥×¥í¥»¥¹¤Î¥Ú¡¼¥¸¡¦¥Æ¡¼¥Ö¥ë¤òÊ£À½¤È -»Ò¥×¥í¥»¥¹¼«¿È¤Î¥¿¥¹¥¯¹½Â¤¤ÎºîÀ®¤Î¤¿¤á¤Î»þ´Ö¤È¥á¥â¥ê¤¬É¬Íפʤ³¤È¤Ç¤¢¤ë¡£ +を 書き込み時コピー (copy-on-write)・ページを用いて実装している。 +したがって、fork を行うことの唯一のデメリットは、 +親プロセスのページ・テーブルを複製と +子プロセス自身のタスク構造の作成のための時間とメモリが必要なことである。 -glibc 2.3.3 °Ê¹ß¤Ç¤Ï¡¢ -NPTL ¥¹¥ì¥Ã¥É¼ÂÁõ¤Î°ìÉô¤È¤·¤ÆÄ󶡤µ¤ì¤Æ¤¤¤ë glibc ¤Î +glibc 2.3.3 以降では、 +NPTL スレッド実装の一部として提供されている glibc の .BR fork () -¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢ -¥«¡¼¥Í¥ë¤Î +ラッパー関数は、 +カーネルの .BR fork () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ +システムコールを起動するのではなく、 .BR clone (2) -¤òµ¯Æ°¤¹¤ë¡£ +を起動する。 .BR clone (2) -¤ËÅϤ¹¥Õ¥é¥°¤È¤·¤Æ¡¢ÅÁÅýŪ¤Ê +に渡すフラグとして、伝統的な .BR fork () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÈƱ¤¸¸ú²Ì¤¬ÆÀ¤é¤ì¤ë¤è¤¦¤Ê¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤ë¡£ -glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï +システムコールと同じ効果が得られるようなフラグが指定される。 +glibc のラッパー関数は .BR pthread_atfork (3) -¤ò»È¤Ã¤ÆÀßÄꤵ¤ì¤Æ¤¤¤ëǤ°Õ¤Î fork ¥Ï¥ó¥É¥é¤òµ¯Æ°¤¹¤ë¡£ -.\" getpid(2) ¤¬Àµ¤·¤¤ÃͤòÊÖ¤¹¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë²¿¤é¤«¤Î½èÍý¤ò¹Ô¤¦¡£ +を使って設定されている任意の fork ハンドラを起動する。 +.\" getpid(2) が正しい値を返すことができるように何らかの処理を行う。 -.SH Îã +.SH 例 .BR pipe (2) -¤ª¤è¤Ó +および .BR wait (2) -¤ò»²¾È¡£ -.SH ´ØÏ¢¹àÌÜ +を参照。 +.SH 関連項目 .BR clone (2), .BR execve (2), .BR setrlimit (2), diff --git a/release/man2/fstatat.2 b/release/man2/fstatat.2 index 1136c0e7..01de0300 100644 --- a/release/man2/fstatat.2 +++ b/release/man2/fstatat.2 @@ -27,11 +27,11 @@ .\" Translated 2006-10-13 by Yuichi SATO , LDP v2.39 .\" .TH FSTATAT 2 2009-12-13 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -fstatat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÁêÂÐŪ¤Ê°ÌÃ֤ˤ¢¤ë¥Õ¥¡¥¤¥ë¤Î¾õÂÖ¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +fstatat \- ディレクトリファイルディスクリプタから相対的な位置にあるファイルの状態を取得する +.SH 書式 .nf -.B #include /* AT_* Äê¿ô¤ÎÄêµÁ */ +.B #include /* AT_* 定数の定義 */ .B #include .sp .BI "int fstatat(int " dirfd ", const char *" pathname ", struct stat *" \ @@ -40,9 +40,9 @@ buf , .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR fstatat (): @@ -50,99 +50,99 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR fstatat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë°ã¤¤¤¬¤¢¤ë°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明している違いがある以外は、 .BR stat (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .I pathname -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パスである場合、 +ファイルディスクリプタ .I dirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( stat (2) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤Î -ÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスのカレントワーキングディレクトリからの +相対パスとなる)。 .I pathname -¤¬ÁêÂХѥ¹¤Ç¤¢¤ê¡¢¤«¤Ä +が相対パスであり、かつ .I dirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I pathname -¤Ï +は .RB ( stat (2) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .I pathname -¤¬ÀäÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ +が絶対パスである場合、 .I dirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .I flags -¤Ï 0 ¤Þ¤¿¤Ï°Ê²¼¤Î¥Õ¥é¥°¤Ç¤¢¤ë¡£ +は 0 または以下のフラグである。 .TP .B AT_SYMLINK_NOFOLLOW .I pathname -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¤Ï¡¢¤½¤ì¤òé¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ +がシンボリックリンクの場合は、それを辿るのではなく、 .BR lstat (2) -¤ÈƱÍͤ˥ê¥ó¥¯¼«¿È¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÊÖ¤¹ -(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +と同様にリンク自身についての情報を返す +(デフォルトでは、 .BR fstatat () -¤Ï +は .BR stat (2) -¤ÈƱÍͤ˥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òé¤ë)¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +と同様にシンボリックリンクを辿る)。 +.SH 返り値 +成功した場合、 .BR fstatat () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +は 0 を返す。 +エラーの場合、\-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +にはエラーを示す値が設定される。 +.SH エラー .BR stat (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR fstatat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .BR fstatat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .I dirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B EINVAL .I flags -¤ËÉÔÀµ¤Ê¥Õ¥é¥°Ãͤ¬»ØÄꤵ¤ì¤¿¡£ +に不正なフラグ値が指定された。 .TP .B ENOTDIR .I pathname -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I dirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 +.SH バージョン .BR fstatat () -¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ -.SH ½àµò +は Linux カーネル 2.6.16 で追加された。 +.SH 準拠 POSIX.1-2008. -Solaris ¤Ë¤Ï¡¢¤³¤ì¤ÈƱ¤¸¤è¤¦¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Â¸ºß¤¹¤ë¡£ -.SH Ãí°Õ +Solaris には、これと同じようなシステムコールが存在する。 +.SH 注意 .BR fstatat () -¤¬É¬ÍפÊÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が必要な理由については、 .BR openat (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を参照すること。 +.SH 関連項目 .BR openat (2), .BR stat (2), .BR path_resolution (7), diff --git a/release/man2/fsync.2 b/release/man2/fsync.2 index 1bcad4ad..cb690c5b 100644 --- a/release/man2/fsync.2 +++ b/release/man2/fsync.2 @@ -43,14 +43,14 @@ .\" Updated 2006-07-30, Kentaro Shirakata .\" Updated 2007-10-13, Akihiro MOTOKI , LDP v2.65 .\" -.\"WORD: core ¥á¥â¥ê -.\"WORD: disk ¥Ç¥£¥¹¥¯ -.\"WORD: synchronize Ʊ´ü¤µ¤»¤ë +.\"WORD: core メモリ +.\"WORD: disk ディスク +.\"WORD: synchronize 同期させる ..\" .TH FSYNC 2 2008-11-07 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -fsync \- ¥á¥â¥ê¾å¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤ÎÆâÍƤò¥¹¥È¥ì¡¼¥¸¥Ç¥Ð¥¤¥¹¾å¤Î¤â¤Î¤ÈƱ´ü¤µ¤»¤ë -.SH ½ñ¼° +.SH 名前 +fsync \- メモリ上にあるファイルの内容をストレージデバイス上のものと同期させる +.SH 書式 .B #include .sp .BI "int fsync(int " fd ); @@ -58,140 +58,140 @@ fsync \- .BI "int fdatasync(int " fd ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR fsync (): _BSD_SOURCE || _XOPEN_SOURCE .br - || /* glibc 2.8 °Ê¹ß¤Ç¤Ï: */ _POSIX_C_SOURCE\ >=\ 200112L -.\" _POSIX_C_SOURCE\ >=\ 200112L ¤Ï glibc 2.8 °Ê¹ß¤Î¤ß + || /* glibc 2.8 以降では: */ _POSIX_C_SOURCE\ >=\ 200112L +.\" _POSIX_C_SOURCE\ >=\ 200112L は glibc 2.8 以降のみ .br .BR fdatasync (): _POSIX_C_SOURCE\ >=\ 199309L || _XOPEN_SOURCE\ >=\ 500 -.SH ÀâÌÀ +.SH 説明 .BR fsync () -¤Ï¡¢¥Õ¥¡¥¤¥ëµ­½Ò»Ò +は、ファイル記述子 .I fd -¤Ç»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤ÎÆâÉô¤Ç»ý¤Ã¤Æ¤¤¤ë¥Ç¡¼¥¿ -(¤Ä¤Þ¤ê¥Ð¥Ã¥Õ¥¡¥­¥ã¥Ã¥·¥å¥Ú¡¼¥¸) ¤Î¤¦¤Á½¤Àµ¤µ¤ì¤¿¥Ç¡¼¥¿¤ò¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¤¬Â°¤¹¤ë¥Ç¥£¥¹¥¯¥Ç¥Ð¥¤¥¹ (¤Þ¤¿¤Ï¤½¤Î¾¤Î±Ê³¥¹¥È¥ì¡¼¥¸¥Ç¥Ð¥¤¥¹) -¤ËžÁ÷ (¡Ö¥Õ¥é¥Ã¥·¥å¡×) ¤¹¤ë¡£ -¤³¤Î¸Æ¤Ó½Ð¤·¤ÏžÁ÷¤¬½ª¤ï¤Ã¤¿¤È¥Ç¥Ð¥¤¥¹¤¬Êó¹ð¤¹¤ë¤Þ¤Ç¥Ö¥í¥Ã¥¯¤¹¤ë¡£ -¤Þ¤¿¥Õ¥¡¥¤¥ë¤Ë·ë¤Ó¤Ä¤¤¤¿¥á¥¿¥Ç¡¼¥¿¾ðÊó +で参照されるファイルの内部で持っているデータ +(つまりバッファキャッシュページ) のうち修正されたデータを、 +そのファイルが属するディスクデバイス (またはその他の永続ストレージデバイス) +に転送 (「フラッシュ」) する。 +この呼び出しは転送が終わったとデバイスが報告するまでブロックする。 +またファイルに結びついたメタデータ情報 .RB ( stat (2) -»²¾È) ¤â¥Õ¥é¥Ã¥·¥å¤¹¤ë¡£ +参照) もフラッシュする。 .BR fsync () -¤Î¸Æ¤Ó½Ð¤·¤Ï¡¢¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¥¨¥ó¥È¥ê¤¬¥Ç¥£¥¹¥¯¤Ø -½ñ¤­¹þ¤Þ¤ì¤¿¤³¤È¤òÊݾڤ¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -Êݾڤ¹¤ë¤¿¤á¤Ë¤ÏÌÀ¼¨Åª¤Ë¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Õ¥¡¥¤¥ëµ­½Ò»Ò¤ËÂФ·¤Æ¤â +の呼び出しは、ファイルが存在しているディレクトリのエントリがディスクへ +書き込まれたことを保証するわけではない。 +保証するためには明示的にそのディレクトリのファイル記述子に対しても .BR fsync () -¤¹¤ëɬÍפ¬¤¢¤ë¡£ +する必要がある。 .BR fdatasync () -¤Ï +は .BR fsync () -¤ÈƱÍͤǤ¢¤ë¤¬¡¢¥á¥¿¥Ç¡¼¥¿¤Î°·¤¤¤¬°Û¤Ê¤ë¡£ +と同様であるが、メタデータの扱いが異なる。 .BR fdatasync () -¤Ï¡¢¤½¤ì°Ê¹ß¤Î¥Ç¡¼¥¿Æɤ߹þ¤ß¤òÀµ¤·¤¯°·¤¦¤¿¤á¤Ë¤½¤Î¥á¥¿¥Ç¡¼¥¿¤¬É¬Í×¤Ë -¤Ê¤é¤Ê¤¤¸Â¤ê¡¢Êѹ¹¤µ¤ì¤¿¥á¥¿¥Ç¡¼¥¿¤ò¥Õ¥é¥Ã¥·¥å¤·¤Ê¤¤¡£ -Î㤨¤Ð¡¢ -st_atime ¤ä st_mtime -(¤½¤ì¤¾¤ìºÇ½ª¥¢¥¯¥»¥¹»þ¹ï¡¢ºÇ½ª½¤Àµ»þ¹ï; +は、それ以降のデータ読み込みを正しく扱うためにそのメタデータが必要に +ならない限り、変更されたメタデータをフラッシュしない。 +例えば、 +st_atime や st_mtime +(それぞれ最終アクセス時刻、最終修正時刻; .BR stat (2) -»²¾È) ¤ÎÊѹ¹¤Ï¥Õ¥é¥Ã¥·¥å¤òɬÍפȤ·¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¤³¤ì¤é¤Ï¤½¤ì°Ê¹ß¤Î¥Ç¡¼¥¿Æɤ߹þ¤ß¤òÀµ¤·¤¯°·¤¦¤¿¤á¤Ë -ɬÍפǤϤʤ¤¤«¤é¤Ç¤¢¤ë¡£ -°ìÊý¡¢¥Õ¥¡¥¤¥ë¥µ¥¤¥º +参照) の変更はフラッシュを必要としない。 +なぜならこれらはそれ以降のデータ読み込みを正しく扱うために +必要ではないからである。 +一方、ファイルサイズ .RB ( ftruncate (2) -¤Ç¤Ï +では .IR st_size ) -¤ÎÊѹ¹¤Ï¥á¥¿¥Ç¡¼¥¿¤Î¥Õ¥é¥Ã¥·¥å¤¬É¬ÍפǤ¢¤ë¡£ +の変更はメタデータのフラッシュが必要である。 .BR fdatasync () -¤ÎÁÀ¤¤¤Ï¡¢Á´¤Æ¤Î¥á¥¿¥Ç¡¼¥¿¤ò¥Ç¥£¥¹¥¯¤ÈƱ´ü¤¹¤ëɬÍפΤʤ¤ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ËÂФ·¤Æ¡¢¥Ç¥£¥¹¥¯¥¢¥¯¥»¥¹¤ò¸º¤é¤¹¤³¤È¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥¼¥í¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +の狙いは、全てのメタデータをディスクと同期する必要のない +アプリケーションに対して、ディスクアクセスを減らすことである。 +.SH 返り値 +成功した場合、これらのシステムコールはゼロを返す。 +エラーの場合、\-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EBADF .I fd -¤¬½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ëµ­½Ò»Ò¤Ç¤Ê¤¤¡£ +が書き込みのためにオープンされたファイル記述子でない。 .TP .B EIO -Ʊ´üÁàºî¤Î´Ö¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +同期操作の間にエラーが発生した。 .TP .BR EROFS ", " EINVAL .I fd -¤¬Æ±´üÁàºî¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤Ê¤¤Æüì¤Ê¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤ë¡£ -.SH ½àµò +が同期操作をサポートしてない特殊なファイルを参照している。 +.SH 準拠 4.3BSD, POSIX.1-2001. -.SH ²ÄÍÑÀ­ +.SH 可用性 .BR fdatasync () -¤¬ÍøÍѲÄǽ¤Ê POSIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +が利用可能な POSIX システムでは、 .B _POSIX_SYNCHRONIZED_IO -¤¬ +が .I -¤Ç 0 ¤è¤êÂ礭¤ÊÃͤËÄêµÁ¤µ¤ì¤ë +で 0 より大きな値に定義される .RB ( sysconf (3) -»²¾È)¡£ +参照)。 .\" POSIX.1-2001: It shall be defined to -1 or 0 or 200112L. .\" -1: unavailable, 0: ask using sysconf(). .\" glibc defines them to 1. -.SH Ãí°Õ -¥Ç¡¼¥¿¥Ù¡¼¥¹¤ä¥í¥°¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢ -Èó¾ï¤Ë¾®¤µ¤Ê¥Ç¡¼¥¿¤ÎÃÇÊҤνñ¤­¹þ¤ß¤ò¹Ô¤¤¡¢¤½¤Î¸å¤¹¤°¤Ë +.SH 注意 +データベースやログファイルにアクセスするアプリケーションは、 +非常に小さなデータの断片の書き込みを行い、その後すぐに .BR fsync () -¤ò¸Æ¤Ó½Ð¤·¤Æ¡¢½ñ¤­¹þ¤ó¤À¥Ç¡¼¥¿¤¬¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤ËʪÍýŪ¤Ë -³Î¼Â¤Ë³ÊǼ¤µ¤ì¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤¬Â¿¤¤¡£ -»ÄÇ°¤Ê¤¬¤é¡¢ +を呼び出して、書き込んだデータがハードディスクに物理的に +確実に格納されるようにすることが多い。 +残念ながら、 .BR fsync () -¤Ï¾ï¤Ë 2¤Ä¤Î½ñ¤­¹þ¤ßÁàºî¤ò³«»Ï¤¹¤ë¡£ -°ì¤Ä¤Ï¿·¤·¤¯½ñ¤­¹þ¤Þ¤ì¤¿¥Ç¡¼¥¿¤ËÂФ¹¤ë¤â¤Î¤Ç¤¢¤ê¡¢ -¤â¤¦°ì¤Ä¤Ï inode ¤Ë³ÊǼ¤µ¤ì¤ë½¤Àµ»þ¹ï (modification time) ¤ò -¹¹¿·¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ -½¤Àµ»þ¹ï¤Î¹¹¿·¤¬ÉÔ²Äʬ¤ÊÁàºî (¥È¥é¥ó¥¶¥¯¥·¥ç¥ó) ¤Î°ìÉô¤Ç¤Ï¤Ê¤¤¾ì¹ç¡¢ +は常に 2つの書き込み操作を開始する。 +一つは新しく書き込まれたデータに対するものであり、 +もう一つは inode に格納される修正時刻 (modification time) を +更新するためのものである。 +修正時刻の更新が不可分な操作 (トランザクション) の一部ではない場合、 .BR fdatasync () -¤ò»È¤¦¤³¤È¤Ç¡¢ÉÔɬÍ×¤Ê inode ¤Î¥Ç¥£¥¹¥¯½ñ¤­¹þ¤ßÁàºî¤òÈò¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使うことで、不必要な inode のディスク書き込み操作を避けることができる。 -¥Ç¡¼¥¿¤¬ÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤Î½ñ¤­¹þ¤ß¥­¥ã¥Ã¥·¥å¤¬Í­¸ú¤Ë -¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ +データが配置されているハードディスクの書き込みキャッシュが有効に +なっている場合、 .BR fsync () / .BR fdatasync () -¤«¤éÌá¤Ã¤Æ¤­¤¿¤È¤·¤Æ¤â¡¢¤½¤Î¥Ç¡¼¥¿¤Ï¼ÂºÝ¤Ë¤Ï±Ê³Ū¤Êµ­²±ÇÞÂÎ¤Ë -³ÊǼ¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -.\" IDE ¥Ç¥£¥¹¥¯¤Î¥­¥ã¥Ã¥·¥å¤ò̵¸ú¤Ë¤¹¤ëÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï +から戻ってきたとしても、そのデータは実際には永続的な記憶媒体に +格納されていないかもしれない。 +.\" IDE ディスクのキャッシュを無効にする方法については .\" .BR hdparm (8) -.\" ¤ò»²¾È¤Î¤³¤È¡£ +.\" を参照のこと。 .LP -ext2 ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤¬ +ext2 ファイル・システムが .I sync -¥ª¥×¥·¥ç¥ó¤Ä¤­¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ +オプションつきでマウントされている場合、 .BR fsync () -¤Ç¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤â°ÅÌۤΤ¦¤Á¤ËƱ´ü¤¹¤ë¡£ +でディレクトリ・エントリも暗黙のうちに同期する。 .LP -2.4 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤ÏµðÂç¤Ê¥Õ¥¡¥¤¥ë¤Ë +2.4 より前のカーネルでは巨大なファイルに .BR fsync () -¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï¸úΨ¤¬°­¤¤¾ì¹ç¤¬¤¢¤ë¡£ -Ê̤ÎÊýË¡¤È¤·¤Æ +を使用することは効率が悪い場合がある。 +別の方法として .BR open (2) -¤ÎºÝ¤Ë +の際に .B O_SYNC -¥Õ¥é¥°¤ò»ÈÍѤ¹¤ë¤Î¤¬Îɤ¤¤«¤â¤·¤ì¤Ê¤¤¡£ +フラグを使用するのが良いかもしれない。 -Linux 2.2 °ÊÁ°¤Ç¤Ï¡¢ +Linux 2.2 以前では、 .BR fdatasync () -¤Ï +は .BR fsync () -¤ÈÅù²Á¤Ç¤¢¤ê¡¢À­Ç½Ì̤ǤΥá¥ê¥Ã¥È¤Ï¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +と等価であり、性能面でのメリットはない。 +.SH 関連項目 .BR bdflush (2), .BR open (2), .BR sync (2), diff --git a/release/man2/futex.2 b/release/man2/futex.2 index 63417941..a0ad0139 100644 --- a/release/man2/futex.2 +++ b/release/man2/futex.2 @@ -22,15 +22,15 @@ .\" by Yuichi SATO , LDP v2.01 .\" Updated & Modified Wed Jan 3 04:51:22 JST 2007 by Yuichi SATO, LDP v2.43 .\" -.\"WORD: integer int ·¿ÊÑ¿ô -.\"WORD: sleep µ¯¾²ÂÔ¤Á¤¹¤ë -.\"WORD: wake µ¯¾²¤¹¤ë -.\"WORD: wake up µ¯¾²¤¹¤ë +.\"WORD: integer int 型変数 +.\"WORD: sleep 起床待ちする +.\"WORD: wake 起床する +.\"WORD: wake up 起床する .\" .TH FUTEX 2 2010-08-29 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -futex \- ¹â®¥æ¡¼¥¶¶õ´Ö¥í¥Ã¥¯µ¡¹½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë -.SH ½ñ¼° +.SH 名前 +futex \- 高速ユーザ空間ロック機構のシステムコール +.SH 書式 .nf .sp .B "#include " @@ -42,238 +42,238 @@ futex \- .BI " int *" uaddr2 ", int " val3 ); .\" int *? void *? u32 *? .fi -.SH ÀâÌÀ +.SH 説明 .PP .BR futex () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ -»ØÄꤷ¤¿¥¢¥É¥ì¥¹¤ÎÃͤ¬Êѹ¹¤µ¤ì¤ë¤Î¤ò¥×¥í¥°¥é¥à¤¬ÂԤļêÃʤä -ÆÃÄê¤Î¥¢¥É¥ì¥¹¤ËÂФ·¤ÆÂÔµ¡Ãæ¤Î¥×¥í¥»¥¹¤ò wake (µ¯¾²) ¤µ¤»¤ë¼êÃʤòÄ󶡤¹¤ë -(¥×¥í¥»¥¹¤¬°Û¤Ê¤ì¤ÐƱ¤¸¥á¥â¥ê¤ËÂФ¹¤ë¥¢¥É¥ì¥¹¤âƱ¤¸¤Ç¤Ï¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¤¬¡¢ -¥«¡¼¥Í¥ë¤Ï°Û¤Ê¤ë°ÌÃ֤˥ޥåפµ¤ì¤¿Æ±¤¸¥á¥â¥ê¤ò +システムコールは、 +指定したアドレスの値が変更されるのをプログラムが待つ手段や +特定のアドレスに対して待機中のプロセスを wake (起床) させる手段を提供する +(プロセスが異なれば同じメモリに対するアドレスも同じではないかもしれないが、 +カーネルは異なる位置にマップされた同じメモリを .BR futex () -¤Ç»È¤¨¤ë¤è¤¦ÆâÉô¤Ç¥Þ¥Ã¥×¤¹¤ë)¡£ -Ä̾ï¤Ï¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +で使えるよう内部でマップする)。 +通常は、このシステムコールは .BR futex (7) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¤è¤¦¤Ë¡¢ -¶¦Í­¥á¥â¥êÃæ¤Î¥í¥Ã¥¯¤¬¶¥¹ç¤¹¤ë¾ì¹ç¤Î½èÍý¤ò¼ÂÁõ¤¹¤ë¤Î¤ËÍѤ¤¤é¤ì¤ë¡£ +に書かれているように、 +共有メモリ中のロックが競合する場合の処理を実装するのに用いられる。 .PP .BR futex (7) -¤ÎÁàºî¤¬¥æ¡¼¥¶¶õ´Ö¤Ç¶¥¹ç¤Ê¤¯´°Î»¤·¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ -¥«¡¼¥Í¥ë¤ËÃçºÛ¤µ¤»¤ë¤¿¤á¤Ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¸Æ¤ÖɬÍפ¬¤¢¤ë¡£ -ÃçºÛ¤È¤¤¤¦¤Î¤Ï¡¢¸Æ¤Ó½Ð¤·¥×¥í¥»¥¹¤ò sleep (µ¯¾²ÂÔ¤Á) ¤µ¤»¤¿¤ê¡¢È¿ÂÐ¤Ë -ÂÔ¤Á¥×¥í¥»¥¹¤ò wake ¤µ¤»¤¿¤ê¤¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +の操作がユーザ空間で競合なく完了しなかった場合、 +カーネルに仲裁させるためにシステムコールを呼ぶ必要がある。 +仲裁というのは、呼び出しプロセスを sleep (起床待ち) させたり、反対に +待ちプロセスを wake させたりすることを意味する。 .PP -¤³¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¥×¥í¥»¥¹¤Ï +この関数を呼び出すプロセスは .BR futex (7) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤ËÃé¼Â¤Ç¤¢¤ë¤³¤È¤¬Í׵ᤵ¤ì¤ë¡£ -¤³¤Î¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤Ë¤Ï°Ü¿¢ÉÔ²Äǽ¤Ê¥¢¥»¥ó¥Ö¥êÌ¿Îá¤ò½ñ¤¯¤³¤È¤¬´Þ¤Þ¤ì¤ë¡£ -¤³¤Î¤³¤È¤Ï¸À¤¤´¹¤¨¤ë¤È futex ¤Î¥æ¡¼¥¶¤Î¤Û¤È¤ó¤É¤Ï¼ÂºÝ¤Ï¥é¥¤¥Ö¥é¥ê¤Îºî¼Ô¤Ç¤¢¤ê¡¢ -°ìÈÌ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î³«È¯¼Ô¤Ç¤Ï¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ +に記述されているセマンティクスに忠実であることが要求される。 +このセマンティクスには移植不可能なアセンブリ命令を書くことが含まれる。 +このことは言い換えると futex のユーザのほとんどは実際はライブラリの作者であり、 +一般アプリケーションの開発者ではないということである。 .PP .I uaddr -°ú¤­¿ô¤Ï¡¢¥«¥¦¥ó¥¿¤ò³ÊǼ¤¹¤ë¡¢ -¥¢¥é¥¤¥ó¥á¥ó¥È¤Î·¤Ã¤¿ int ·¿ÊÑ¿ô¤ò»Ø¤·¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ -¼Â¹Ô¤¹¤ëÁàºî¤Ï +引き数は、カウンタを格納する、 +アラインメントの揃った int 型変数を指している必要がある。 +実行する操作は .I op -°ú¤­¿ô¤ò²ð¤·¤Æ¡¢ÃÍ +引き数を介して、値 .I val -¤È¤È¤â¤ËÅϤµ¤ì¤ë¡£ +とともに渡される。 .PP -¸½ºß¤Î¤È¤³¤í 5 ¤Ä¤ÎÁàºî¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +現在のところ 5 つの操作が定義されている: .TP .B FUTEX_WAIT -¤³¤ÎÁàºî¤Ï futex ¥¢¥É¥ì¥¹ +この操作は futex アドレス .I uaddr -¤Ë»ØÄꤵ¤ì¤¿ÃÍ +に指定された値 .I val -¤¬¤Þ¤À³ÊǼ¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤òÉÔ²ÄʬÁàºî¤Ç¸¡¾Ú¤·¡¢ -sleep ¾õÂÖ¤Ç -¤³¤Î futex ¥¢¥É¥ì¥¹¤ËÂФ·¤Æ +がまだ格納されているかどうかを不可分操作で検証し、 +sleep 状態で +この futex アドレスに対して .B FUTEX_WAKE -¤¬¼Â¹Ô¤µ¤ì¤ë¤Î¤òÂԤġ£ +が実行されるのを待つ。 .I timeout -°ú¤­¿ô¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢¤½¤ÎÆâÍÆ¤Ï -ÂÔ¤Á»þ´Ö¤ÎºÇÂçÃͤòɽ¤¹¡£NULL ¤Î¾ì¹ç¤Ï̵¸ÂÂç¤òɽ¤¹¡£ -°ú¤­¿ô +引き数が NULL でない場合、その内容は +待ち時間の最大値を表す。NULL の場合は無限大を表す。 +引き数 .I uaddr2 -¤È +と .I val3 -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .BR futex (7) -¤Ë¾È¤é¤·¹ç¤ï¤»¤ë¤È¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤Ï -¥«¥¦¥ó¥È¤Î¥Ç¥¯¥ê¥á¥ó¥È¤ÇÉé¤ÎÃÍ (¶¥¹ç¤òɽ¤¹) ¤Ë¤Ê¤Ã¤¿¾ì¹ç¤Ë¼Â¹Ô¤µ¤ì¡¢ -ÊÌ¤Î¥×¥í¥»¥¹¤¬¤½¤Î futex ¤ò²òÊü¤· +に照らし合わせると、この呼び出しは +カウントのデクリメントで負の値 (競合を表す) になった場合に実行され、 +別のプロセスがその futex を解放し .B FUTEX_WAKE -¤ÎÁàºî¤ò¼Â¹Ô¤¹¤ë¤Þ¤Ç sleep ¤¹¤ë¡£ +の操作を実行するまで sleep する。 .TP .B FUTEX_WAKE -¤³¤ÎÁàºî¤Ç¤Ï»ØÄꤷ¤¿ futex ¥¢¥É¥ì¥¹¤ËÂФ·¤ÆÂÔ¤Á¾õÂ֤Π-(¤¹¤Ê¤ï¤Á +この操作では指定した futex アドレスに対して待ち状態の +(すなわち .B FUTEX_WAIT -Ãæ¤Î) ºÇÂç \fIval\fP ¸Ä¤Î¥×¥í¥»¥¹¤ò wake ¤µ¤»¤ë¡£ -°ú¤­¿ô +中の) 最大 \fIval\fP 個のプロセスを wake させる。 +引き数 .IR timeout , .IR uaddr2 , .I val3 -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 -\fBfutex\fR(4) ¤Ë¾È¤é¤·¹ç¤ï¤»¤ë¤È¡¢ -¤³¤ÎÁàºî¤Ï -¥«¥¦¥ó¥È¤Î¥¤¥ó¥¯¥ê¥á¥ó¥È¤ÇÂÔ¤Á¥×¥í¥»¥¹¤¬¤¢¤ë¤ÈȽÌÀ¤·¡¢ -futex Ãͤ¬ 1 ¤ËÀßÄꤵ¤ì¤¿ (ÍøÍѲÄǽ¤Ç¤¢¤ë¤³¤È¤òɽ¤¹) ¾ì¹ç¤Ë¼Â¹Ô¤µ¤ì¤ë¡£ +\fBfutex\fR(4) に照らし合わせると、 +この操作は +カウントのインクリメントで待ちプロセスがあると判明し、 +futex 値が 1 に設定された (利用可能であることを表す) 場合に実行される。 .TP -.BR FUTEX_FD " (Linux 2.6.25 °ÊÁ°)" -ÈóƱ´ü¤Î wake ¤ËÂбþ¤¹¤ë¤¿¤á¡¢¤³¤ÎÁàºî¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò futex ¤Ë -´ØÏ¢¤Å¤±¤ë¡£ +.BR FUTEX_FD " (Linux 2.6.25 以前)" +非同期の wake に対応するため、この操作はファイルディスクリプタを futex に +関連づける。 .\" .BR poll (2) -.\" ¤ËŬ¤·¤Æ¤¤¤ë¡£ -ÊÌ¤Î¥×¥í¥»¥¹¤¬ +.\" に適している。 +別のプロセスが .B FUTEX_WAKE -¤ò¼Â¹Ô¤¹¤ë¤È¡¢¥×¥í¥»¥¹¤Ï +を実行すると、プロセスは .I val -¤ÇÅϤµ¤ì¤¿¥·¥°¥Ê¥ëÈÖ¹æ¤Î¥·¥°¥Ê¥ë¤ò¼õ¿®¤¹¤ë¡£ -¸Æ¤Ó½Ð¤·¥×¥í¥»¥¹¤Ï»ÈÍѸ塢ÊÖ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò -¥¯¥í¡¼¥º¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -°ú¤­¿ô +で渡されたシグナル番号のシグナルを受信する。 +呼び出しプロセスは使用後、返されたファイルディスクリプタを +クローズしなければならない。 +引き数 .IR timeout , .IR uaddr2 , .I val3 -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 -¶¥¹ç¾õÂÖ¤òËɻߤ¹¤ë¤¿¤á¡¢¸Æ¤Ó½Ð¤·¥×¥í¥»¥¹¤Ï +競合状態を防止するため、呼び出しプロセスは .B FUTEX_FD -¤¬Ê֤俤¢¤È -futex ¤¬ up ¤µ¤ì¤¿¤«¤É¤¦¤«¤ò³Îǧ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +が返ったあと +futex が up されたかどうかを確認しなければならない。 .\" FIXME . Check that this flag does eventually get removed. .B FUTEX_FD -¤Ï¤â¤È¤â¤È¶¥¹ç¤¬µ¯¤­¤ä¤¹¤«¤Ã¤¿¤¿¤á¡¢ -Linux 2.6.26 °Ê¹ß¤Çºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ +はもともと競合が起きやすかったため、 +Linux 2.6.26 以降で削除されている。 .TP -.BR FUTEX_REQUEUE " (Linux 2.5.70 °Ê¹ß)" -¤³¤ÎÁàºî¤Ï¡¢ +.BR FUTEX_REQUEUE " (Linux 2.5.70 以降)" +この操作は、 .B FUTEX_WAKE -¤¬»È¤ï¤ì¤Æ¤¤¤Æ¡¢¤«¤Ä wake ¤µ¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¥×¥í¥»¥¹¤¬ -¾¤Î futex ¤ò¼èÆÀ¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ë¡¢ -¡Ö½Ã¤Î·²¤ì¤Î˽Áö (thundering herd)¡×¸ú²Ì¤òÈò¤±¤ë¤¿¤á¤ËƳÆþ¤µ¤ì¤¿¡£ -¤³¤Î¸Æ¤Ó½Ð¤·¤Ï +が使われていて、かつ wake されている全てのプロセスが +他の futex を取得する必要がある場合に、 +「獣の群れの暴走 (thundering herd)」効果を避けるために導入された。 +この呼び出しは .I val -¸Ä¤Î¥×¥í¥»¥¹¤ò wake ¤·¡¢¥¢¥É¥ì¥¹ +個のプロセスを wake し、アドレス .I uaddr2 -¤Ç futex ¤òÂԤäƤ¤¤ë¾¤ÎÁ´¤Æ¤Î¥×¥í¥»¥¹¤òºÆÅÙ¥­¥å¡¼¤Ë¤¤¤ì¤ë¡£ -°ú¤­¿ô +で futex を待っている他の全てのプロセスを再度キューにいれる。 +引き数 .I timeout -¤È +と .I val3 -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .TP -.BR FUTEX_CMP_REQUEUE " (Linux 2.6.7 °Ê¹ß)" -¸Î°Õ¤Ë +.BR FUTEX_CMP_REQUEUE " (Linux 2.6.7 以降)" +故意に .B FUTEX_REQUEUE -¤ò»È¤¦¾ì¹ç¤Ë¶¥¹ç¤¬µ¯¤³¤ë¤¿¤á¡¢ +を使う場合に競合が起こるため、 .B FUTEX_CMP_REQUEUE -¤¬Æ³Æþ¤µ¤ì¤¿¡£¤³¤ì¤Ï +が導入された。これは .B FUTEX_REQUEUE -¤È»÷¤Æ¤¤¤ë¤¬¡¢¾ì½ê +と似ているが、場所 .I uaddr -¤ËÃÍ +に値 .I val3 -¤¬¤Þ¤ÀÊÝ»ý¤µ¤ì¤Æ¤¤¤ë¤«¤òºÇ½é¤Ë¥Á¥§¥Ã¥¯¤¹¤ë¡£ -ÊÝ»ý¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢Áàºî¤Ï¥¨¥é¡¼ +がまだ保持されているかを最初にチェックする。 +保持されていない場合、操作はエラー .B EAGAIN -¤Ç¼ºÇÔ¤¹¤ë¡£°ú¤­¿ô +で失敗する。引き数 .I timeout -¤Ï̵»ë¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +は無視される。 +.SH 返り値 .PP -¤É¤ÎÁàºî¤¬¼Â¹Ô¤µ¤ì¤¿¤«¤Ë¤è¤Ã¤Æ¡¢ -À®¸ù»þ¤ÎÊÖ¤êÃͤΰÕÌ£¤¬ÊѤï¤ë¡£ +どの操作が実行されたかによって、 +成功時の返り値の意味が変わる。 .TP .B FUTEX_WAIT -¥×¥í¥»¥¹¤¬ +プロセスが .B FUTEX_WAKE -¤Î¸Æ¤Ó½Ð¤·¤Ç wake ¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ -¥¿¥¤¥à¥¢¥¦¥È¤Î¾ì¹ç¡¢Áàºî¤Ï¥¨¥é¡¼ +の呼び出しで wake すると 0 を返す。 +タイムアウトの場合、操作はエラー .B ETIMEOUT -¤Ç¼ºÇÔ¤¹¤ë¡£ -futex ¤¬»ØÄꤵ¤ì¤¿ÃͤÈÅù¤·¤¯¤Ê¤¤¾ì¹ç¡¢ -¥¨¥é¡¼ +で失敗する。 +futex が指定された値と等しくない場合、 +エラー .B EWOULDBLOCK -¤Ç¼ºÇÔ¤¹¤ë¡£ -¥·¥°¥Ê¥ë¤ò¼õ¿®¤¹¤ë¤« +で失敗する。 +シグナルを受信するか .RB ( signal (7) -»²¾È) ¾¤Îµ¶¤Î wake ¤¬¤¢¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢¥¨¥é¡¼ +参照) 他の偽の wake があった場合には、エラー .B EINTR -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .TP .B FUTEX_WAKE -wake ¤·¤¿¥×¥í¥»¥¹¤Î¿ô¤òÊÖ¤¹¡£ +wake したプロセスの数を返す。 .TP .B FUTEX_FD -futex ¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¿·¤¿¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ +futex に関連づけられた新たなファイルディスクリプタを返す。 .TP .B FUTEX_REQUEUE -wake ¤·¤¿¥×¥í¥»¥¹¤Î¿ô¤òÊÖ¤¹¡£ +wake したプロセスの数を返す。 .TP .B FUTEX_CMP_REQUEUE -wake ¤·¤¿¥×¥í¥»¥¹¤Î¿ô¤òÊÖ¤¹¡£ +wake したプロセスの数を返す。 .PP -¥¨¥é¡¼¤Î¾ì¹ç¡¢Á´¤Æ¤ÎÁàºî¤Ç \-1 ¤¬Ê֤ꡢ +エラーの場合、全ての操作で \-1 が返り、 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤò¼¨¤¹ÃͤËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +がエラーの内容を示す値に設定される。 +.SH エラー .TP .B EACCES -futex ¥á¥â¥ê¤ËÆɤ߹þ¤ß¥¢¥¯¥»¥¹¸¢¤¬¤Ê¤«¤Ã¤¿¡£ +futex メモリに読み込みアクセス権がなかった。 .TP .B EAGAIN .B FUTEX_CMP_REQUEUE -¤Çͽ´ü¤·¤Ê¤¤ futex Ãͤ¬¸«¤Ä¤«¤Ã¤¿ -(¤³¤ì¤Ï¶¥¹ç¤ò¼¨¤·¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤Î¾ì¹ç¤Ï°ÂÁ´¤Ê +で予期しない futex 値が見つかった +(これは競合を示しているかもしれない。 +この場合は安全な .B FUTEX_WAKE -¤ò»È¤¦¤³¤È)¡£ +を使うこと)。 .TP .B EFAULT -¥æ¡¼¥¶¶õ´Ö¤«¤é +ユーザ空間から .I timeout -¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ëºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +の情報を取得する際にエラーが発生した。 .TP .B EINVAL -Áàºî¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£¤Þ¤¿¤Ï¥Ú¡¼¥¸¡¦¥¢¥é¥¤¥ó¥á¥ó¥È¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +操作が定義されていない。またはページ・アラインメントでエラーが発生した。 .TP .B ENFILE -¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ÎÁí¿ô¤¬¥·¥¹¥Æ¥à¤ÎÀ©¸Â¤Ë㤷¤¿¡£ +オープンされているファイルの総数がシステムの制限に達した。 .TP .B ENOSYS .I op -¤Ë̵¸ú¤ÊÁàºî¤¬»ØÄꤵ¤ì¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +に無効な操作が指定された。 +.SH バージョン .PP -ºÇ½é¤Î futex Âбþ¤Ï Linux 2.5.7 ¤ÇÁȤ߹þ¤Þ¤ì¤¿¤¬¡¢ -¾åµ­¤Î¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤È¤Ï°Û¤Ê¤ë¡£ -4 ¤Ä¤Î°ú¤­¿ô¤Î¤³¤³¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤ò»ý¤Ä -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢Linux 2.5.40 ¤ÇƳÆþ¤µ¤ì¤¿¡£ -Linux 2.5.70 ¤Ç¤Ï 1 ¤Ä¤Î°ú¤­¿ô¤¬Äɲ䵤줿¡£ -Linux 2.6.7 ¤Ç¤Ï 6 ÈÖÌܤΰú¤­¿ô¤¬Äɲ䵤줿¡£ -¤³¤ì¤Ï±ø¤¯¡¢s390 ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¾å¤ÎÆÃÊ̤Τâ¤Î¤Ç¤¢¤ë¡£ -.SH ½àµò -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ -.SH Ãí°Õ +最初の futex 対応は Linux 2.5.7 で組み込まれたが、 +上記のセマンティクスとは異なる。 +4 つの引き数のここに書かれているセマンティクスを持つ +システムコールは、Linux 2.5.40 で導入された。 +Linux 2.5.70 では 1 つの引き数が追加された。 +Linux 2.6.7 では 6 番目の引き数が追加された。 +これは汚く、s390 アーキテクチャ上の特別のものである。 +.SH 準拠 +このシステムコールは Linux 独自である。 +.SH 注意 .PP -·«¤êÊÖ¤¹¤¬¡¢Íç¤Î futex ¤Ï¥¨¥ó¥É¥æ¡¼¥¶¤¬Íưפ˻Ȥ¦¤³¤È¤Î¤Ç¤­¤ë³µÇ°¤È¤·¤Æ -°Õ¿Þ¤µ¤ì¤¿¤â¤Î¤Ç¤Ï¤Ê¤¤ -(glibc ¤Ë¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¤Ê¤¤)¡£ -¼ÂÁõ¼Ô¤Ï¡¢¥¢¥»¥ó¥Ö¥ê¸À¸ì¤Ë´·¤ì¤Æ¤ª¤ê¡¢°Ê²¼¤Ëµó¤²¤ë futex ¥æ¡¼¥¶¶õ´Ö¥é¥¤¥Ö¥é¥ê¤Î -¥½¡¼¥¹¤òÆɤ߽ª¤¨¤Æ¤¤¤ë¤³¤È¤¬Í׵ᤵ¤ì¤ë¡£ -.\" .SH Ãø¼Ô +繰り返すが、裸の futex はエンドユーザが容易に使うことのできる概念として +意図されたものではない +(glibc にはこのシステムコールに対するラッパー関数はない)。 +実装者は、アセンブリ言語に慣れており、以下に挙げる futex ユーザ空間ライブラリの +ソースを読み終えていることが要求される。 +.\" .SH 著者 .\" .PP -.\" futex ¤Ï Hubertus Franke (IBM Thomas J. Watson Research Center), +.\" futex は Hubertus Franke (IBM Thomas J. Watson Research Center), .\" Matthew Kirkwood, Ingo Molnar (Red Hat), -.\" Rusty Russell (IBM Linux Technology Center) ¤¬À߷פ·¡¢ºîÀ®¤·¤¿¡£ -.\" ¤³¤Î¥Ú¡¼¥¸¤Ï bert hubert ¤¬µ­¤·¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +.\" Rusty Russell (IBM Linux Technology Center) が設計し、作成した。 +.\" このページは bert hubert が記した。 +.SH 関連項目 .BR futex (7) .PP \fIFuss, Futexes and Furwocks: Fast Userlevel Locking in Linux\fP @@ -281,6 +281,6 @@ Linux 2.6.7 .br http://kernel.org/doc/ols/2002/ols2002-pages-479-495.pdf .PP -futex ¤Î»ÈÍÑÎã¥é¥¤¥Ö¥é¥ê, futex-*.tar.bz2 +futex の使用例ライブラリ, futex-*.tar.bz2 .br ftp://ftp.nl.kernel.org/pub/linux/kernel/people/rusty/. diff --git a/release/man2/futimesat.2 b/release/man2/futimesat.2 index c9f06450..4dd1c21b 100644 --- a/release/man2/futimesat.2 +++ b/release/man2/futimesat.2 @@ -27,20 +27,20 @@ .\" Translated 2006-09-30 by Yuichi SATO , LDP v2.39 .\" .TH FUTIMESAT 2 2009-12-13 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -futimesat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÁêÂÐŪ¤Ê°ÌÃ֤ˤ¢¤ë¥Õ¥¡¥¤¥ë¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×¤òÊѹ¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +futimesat \- ディレクトリファイルディスクリプタから相対的な位置にあるファイルのタイムスタンプを変更する +.SH 書式 .nf -.B #include /* AT_* Äê¿ô¤ÎÄêµÁ */ +.B #include /* AT_* 定数の定義 */ .sp .BI "int futimesat(int " dirfd ", const char *" pathname , .BI " const struct timeval " times [2]); .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR futimesat (): @@ -48,95 +48,95 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .RE .ad .PD -.SH ÀâÌÀ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¡£ -Âå¤ï¤ê¤Ë +.SH 説明 +このシステムコールは廃止予定である。 +代わりに .BR utimensat (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +を使用すること。 .BR futimesat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë°ã¤¤¤¬¤¢¤ë°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明している違いがある以外は、 .BR utimes (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .I pathname -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹Ì¾¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パス名である場合、 +ファイルディスクリプタ .I dirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( utimes (2) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスの +カレントワーキングディレクトリからの相対パスとなる)。 .I pathname -¤¬ÁêÂХѥ¹¤Ç¤¢¤ê¡¢¤«¤Ä +が相対パスであり、かつ .I dirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I pathname -¤Ï +は .RB ( utimes (2) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .I pathname -¤¬ÀäÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ +が絶対パスである場合、 .I dirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +は無視される。 +.SH 返り値 +成功した場合、 .BR futimesat () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +は 0 を返す。 +エラーの場合、\-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +にはエラーを示す値が設定される。 +.SH エラー .BR utimes (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR futimesat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .BR futimesat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .I dirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B ENOTDIR .I pathname -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I dirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 +.SH バージョン .BR futimesat () -¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ -.SH ½àµò -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ïɸ½àŪ¤Ç¤Ï¤Ê¤¤¡£ -POSIX.1 ¤ÇÄó°Æ¤µ¤ì¤Æ¤¤¤¿»ÅÍͤËͳÍ褷¤Æ¼ÂÁõ¤µ¤ì¤¿¤¬¡¢ -¤½¤Î»ÅÍÍ¤Ï +は Linux カーネル 2.6.16 で追加された。 +.SH 準拠 +このシステムコールは標準的ではない。 +POSIX.1 で提案されていた仕様に由来して実装されたが、 +その仕様は .BR utimensat (2) -¤ÇÃÖ¤­´¹¤¨¤é¤ì¤¿¡£ +で置き換えられた。 -Solaris ¤Ë¤Ï¡¢¤³¤ì¤ÈƱ¤¸¤è¤¦¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Â¸ºß¤¹¤ë¡£ -.SH Ãí°Õ -.SS GLIBC ¤Ë¤Ä¤¤¤Æ¤ÎÃí°Õ +Solaris には、これと同じようなシステムコールが存在する。 +.SH 注意 +.SS GLIBC についての注意 .I pathname -¤¬ NULL ¤Î¾ì¹ç¡¢glibc ¤Î +が NULL の場合、glibc の .BR futimesat () -¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï +ラッパー関数は .I dirfd -¤Ç»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Î»þ¹ï¤ò¹¹¿·¤¹¤ë¡£ +で参照されるファイルの時刻を更新する。 .\" The Solaris futimesat() also has this strangeness. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR stat (2), .BR utimensat (2), .BR utimes (2), diff --git a/release/man2/get_kernel_syms.2 b/release/man2/get_kernel_syms.2 index 10eb8cd5..a3c84b1c 100644 --- a/release/man2/get_kernel_syms.2 +++ b/release/man2/get_kernel_syms.2 @@ -9,21 +9,21 @@ .\" Translated 2006-07-31, Akihiro MOTOKI .\" .TH GET_KERNEL_SYMS 2 2007-06-03 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -get_kernel_syms \- ¸ø³«¤µ¤ì¤Æ¤¤¤ë¥«¡¼¥Í¥ë¤ä¥â¥¸¥å¡¼¥ë¤Î¥·¥ó¥Ü¥ë¤Î¼èÆÀ -.SH ½ñ¼° +.SH 名前 +get_kernel_syms \- 公開されているカーネルやモジュールのシンボルの取得 +.SH 書式 .nf .B #include .sp .BI "int get_kernel_syms(struct kernel_sym *" table ); .fi -.SH ÀâÌÀ +.SH 説明 .BR get_kernel_syms () -¤Ï¡¢ +は、 .I table -¤¬ NULL ¤Î¾ì¹ç¡¢ -Ì䤤¹ç¤ï¤»¤Ç¤­¤ë¥·¥ó¥Ü¥ë¤Î¿ô¤òÊÖ¤¹¡£ -NULL °Ê³°¤Î¾ì¹ç¡¢°Ê²¼¤Î¹½Â¤ÂΤÎÎó (table) ¤ËÃͤòÆþ¤ì¤ÆÊÖ¤¹¡£ +が NULL の場合、 +問い合わせできるシンボルの数を返す。 +NULL 以外の場合、以下の構造体の列 (table) に値を入れて返す。 .PP .in +4n .nf @@ -34,50 +34,50 @@ struct kernel_sym { .fi .in .PP -¥·¥ó¥Ü¥ë¤ÎÃæ¤Ë¤Ï¡¢ +シンボルの中には、 .BI # module-name -¤È¤¤¤¦·Á¼°¤Î¡¢¥«¡¼¥Í¥ë¤¬¶õ¤Î̾Á°¤ò»ý¤Ã¤Æ¤¤¤ë¥Þ¥¸¥Ã¥¯¥·¥ó¥Ü¥ë -(magic symbol) ¤¬»¶ºß¤·¤Æ¤¤¤ë¡£¤³¤Î·Á¼°¤Î¥·¥ó¥Ü¥ë¤ËÂбþ¤¹¤ëÃÍ¤Ï -¥â¥¸¥å¡¼¥ë¤¬¥í¡¼¥É¤µ¤ì¤¿¥¢¥É¥ì¥¹¤È¤Ê¤ë¡£ +という形式の、カーネルが空の名前を持っているマジックシンボル +(magic symbol) が散在している。この形式のシンボルに対応する値は +モジュールがロードされたアドレスとなる。 .PP -¸Ä¡¹¤Î¥â¥¸¥å¡¼¥ë¤«¤é¸ø³« (export) ¤µ¤ì¤¿¥·¥ó¥Ü¥ë¤Ï¡¢¥Þ¥¸¥Ã¥¯¥â¥¸¥å¡¼¥ë¥¿¥° -¤Î¸å¤í¤ËÃÖ¤«¤ì¤ë¡£¤Þ¤¿¡¢¥â¥¸¥å¡¼¥ë¤Ï¥í¡¼¥É¤µ¤ì¤¿½çÈ֤Ȥϵսç¤ÇÊÖ¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +個々のモジュールから公開 (export) されたシンボルは、マジックモジュールタグ +の後ろに置かれる。また、モジュールはロードされた順番とは逆順で返される。 +.SH 返り値 +成功すると、 .I table -¤Ë¥³¥Ô¡¼¤µ¤ì¤¿¥·¥ó¥Ü¥ë¿ô¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +にコピーされたシンボル数を返す。 +エラーの場合、\-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ -ÊÖ¤ë²ÄǽÀ­¤¬¤¢¤ë¥¨¥é¡¼¤Ï°ì¤Ä¤À¤±¤Ç¤¢¤ë¡£ +を適切に設定する。 +.SH エラー +返る可能性があるエラーは一つだけである。 .TP .B ENOSYS .BR get_kernel_syms () -¤¬¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Â¸ºß¤¹¤ë¤Î¤Ï¥«¡¼¥Í¥ë 2.4 ¤Þ¤Ç¤Î Linux ¤À¤±¤Ç¤¢¤ë¡£ -Linux 2.6 ¤Ç¤Ïºï½ü¤µ¤ì¤¿¡£ +がこのバージョンのカーネルではサポートされていない。 +.SH バージョン +このシステムコールが存在するのはカーネル 2.4 までの Linux だけである。 +Linux 2.6 では削除された。 .\" Removed in Linux 2.5.48 -.SH ½àµò +.SH 準拠 .BR get_kernel_syms () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -.SH ¥Ð¥° +は Linux 固有である。 +.SH バグ .I table -ÍѤ˳ÎÊݤ·¤¿¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ¤òÅÁ¤¨¤ëÊýË¡¤¬¤Ê¤¤¡£ -¥×¥í¥°¥é¥à¤¬¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤ÎÂ礭¤µ¤òÌ䤤¹ç¤ï¤»¤¿¸å¤Ë¡¢¥«¡¼¥Í¥ë¤Ë -¥·¥ó¥Ü¥ë¤¬Äɲ䵤ì¤ë¤È¡¢¥á¥â¥ê¤ÎÆâÍƤ¬Ç˲õ¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ +用に確保したバッファの大きさを伝える方法がない。 +プログラムがシンボルテーブルの大きさを問い合わせた後に、カーネルに +シンボルが追加されると、メモリの内容が破壊されることになる。 .PP -¸ø³«¤µ¤ì¤ë¥·¥ó¥Ü¥ë̾¤ÎŤµ¤¬ 59 ʸ»ú¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë¡£ +公開されるシンボル名の長さが 59 文字に制限されている。 .PP -¤³¤ì¤é¤ÎÀ©¸Â¤¬¤¢¤ë¤Î¤Ç¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤¦¤è¤ê¤Ï +これらの制限があるので、このシステムコールを使うよりは .BR query_module (2) -¤ò»È¤¦¤Î¤¬Ë¾¤Þ¤·¤¤ -(¸½ºß¤Ç¤Ï +を使うのが望ましい +(現在では .BR query_module (2) -¼«¿È¤â¤½¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¤è¤¦¤Ë -¾¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò»È¤¦¤Î¤¬Ë¾¤Þ¤·¤¤¤È¤µ¤ì¤Æ¤¤¤ë)¡£ -.SH ´ØÏ¢¹àÌÜ +自身もそのマニュアルページに書かれているように +他のインタフェースを使うのが望ましいとされている)。 +.SH 関連項目 .BR create_module (2), .BR delete_module (2), .BR init_module (2), diff --git a/release/man2/get_mempolicy.2 b/release/man2/get_mempolicy.2 index 644f7d67..83ff39a1 100644 --- a/release/man2/get_mempolicy.2 +++ b/release/man2/get_mempolicy.2 @@ -31,9 +31,9 @@ .\" Updated 2008-11-19, Akihiro MOTOKI, LDP v3.13 .\" .TH GET_MEMPOLICY 2 2008-08-15 Linux "Linux Programmer's Manual" -.SH ̾Á° -get_mempolicy \- ¥×¥í¥»¥¹¤Î NUMA ¥á¥â¥ê¤Î¥Ý¥ê¥·¡¼¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +get_mempolicy \- プロセスの NUMA メモリのポリシーを取得する +.SH 書式 .nf .B "#include " .sp @@ -41,214 +41,214 @@ get_mempolicy \- .BI " unsigned long " maxnode ", unsigned long " addr , .BI " unsigned long " flags ); .sp -\fI\-lnuma\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lnuma\fP でリンクする。 .fi -.SH ÀâÌÀ +.SH 説明 .BR get_mempolicy () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤â¤·¤¯¤Ï»ØÄꤵ¤ì¤¿¥á¥â¥ê¥¢¥É¥ì¥¹¤Î -NUMA ¥Ý¥ê¥·¡¼¤ò +は、呼び出し元プロセスもしくは指定されたメモリアドレスの +NUMA ポリシーを .I flags -¤ÎÀßÄê¤Ë½¾¤Ã¤Æ¼èÆÀ¤¹¤ë¡£ +の設定に従って取得する。 -NUMA (ÈóÂоΥá¥â¥ê¥¢¥¯¥»¥¹) ¥Þ¥·¥ó¤Ç¤Ï¡¢CPU ¤Ë¤è¤ê -¥á¥â¥ê¥³¥ó¥È¥í¡¼¥é¤¬°Û¤Ê¤ê¡¢µ÷Î¥¤â°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ -¥á¥â¥ê¥Ý¥ê¥·¡¼¤Ï¡¢¤É¤Î¥Î¡¼¥É¤«¤é¥á¥â¥ê¤ò¤½¤Î¥×¥í¥»¥¹¤Ë -³ä¤êÅö¤Æ¤ë¤«¤òÄê¤á¤ë¤â¤Î¤Ç¤¢¤ë¡£ +NUMA (非対称メモリアクセス) マシンでは、CPU により +メモリコントローラが異なり、距離も異なっている。 +メモリポリシーは、どのノードからメモリをそのプロセスに +割り当てるかを定めるものである。 .I flags -¤Ë 0 ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +に 0 が指定された場合、 .RB ( set_mempolicy (2) -¤ÇÀßÄꤵ¤ì¤¿) -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥Ç¥Õ¥©¥ë¥È¥Ý¥ê¥·¡¼¤Ë´Ø¤¹¤ë¾ðÊó¤òÊÖ¤¹¡£ -ÊÖ¤µ¤ì¤¿¥Ý¥ê¥·¡¼ +で設定された) +呼び出し元プロセスのデフォルトポリシーに関する情報を返す。 +返されたポリシー .RI [ mode -¤È +と .IR nodemask ] -¤ò +を .BR set_mempolicy (2) -¤ËÅϤ¹¤³¤È¤Ç¡¢¤½¤Î¥×¥í¥»¥¹¤Î¥Ý¥ê¥·¡¼¤ò +に渡すことで、そのプロセスのポリシーを .BR get_mempolicy () -¤ò¸Æ¤Ó½Ð¤·¤¿»þÅÀ¤Î¾õÂÖ¤ËÌ᤹¤³¤È¤¬¤Ç¤­¤ë¡£ +を呼び出した時点の状態に戻すことができる。 .I flags -¤Ë +に .B MPOL_F_MEMS_ALLOWED -(Linux 2.6.24 °Ê¹ß¤ÇÍøÍѲÄǽ) ¤ò»ØÄꤹ¤ë¤È¡¢ +(Linux 2.6.24 以降で利用可能) を指定すると、 .I mode -°ú¤­¿ô¤Ï̵»ë¤µ¤ì¡¢ -¤½¤Î¥×¥í¥»¥¹¤¬¤½¤Î¸å¤Î +引き数は無視され、 +そのプロセスがその後の .BR mbind (2) -¤ä +や .BR set_mempolicy (2) -¤Ç -.RI [ "¥â¡¼¥É¥Õ¥é¥°" -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë ] »ØÄê¤Ç¤­¤ë¥Î¡¼¥É (¥á¥â¥ê) ¤Î½¸¹ç¤¬ +で +.RI [ "モードフラグ" +が指定されていない場合に ] 指定できるノード (メモリ) の集合が .I nodemask -¤ËÊÖ¤µ¤ì¤ë¡£ +に返される。 .B MPOL_F_MEMS_ALLOWED -¤ò¡¢ +を、 .B MPOL_F_ADDR -¤ä +や .B MPOL_F_NODE -¤ÈƱ»þ¤Ë»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +と同時に指定することはできない。 .I flags -¤Ë +に .B MPOL_F_ADDR -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +が指定された場合、 .I addr -¤Ç»ØÄꤵ¤ì¤¿¥á¥â¥ê¥¢¥É¥ì¥¹¤ËŬÍѤµ¤ì¤Æ¤¤¤ë¥Ý¥ê¥·¡¼¤Ë´Ø¤¹¤ë¾ðÊó¤òÊÖ¤¹¡£ +で指定されたメモリアドレスに適用されているポリシーに関する情報を返す。 .BR mbind (2) -¤ä +や .BR numa (3) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¥Ø¥ë¥Ñ¡¼´Ø¿ô¤ò»È¤Ã¤Æ¡¢ +で説明されているヘルパー関数を使って、 .I addr -¤ò´Þ¤à¥á¥â¥êÎΰè¤ËÂФ¹¤ë¥Ý¥ê¥·¡¼¤¬ÀßÄꤵ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ë¤Ï¡¢ -ÊÖ¤µ¤ì¤ë¥Ý¥ê¥·¡¼¤Ï¥×¥í¥»¥¹¤Î¥Ç¥Õ¥©¥ë¥È¥Ý¥ê¥·¡¼¤È°ã¤¦¤³¤È¤¬¤¢¤ë¡£ +を含むメモリ領域に対するポリシーが設定されていた場合には、 +返されるポリシーはプロセスのデフォルトポリシーと違うことがある。 .I mode -°ú¤­¿ô¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ +引き数が NULL でない場合、 .BR get_mempolicy () -¤ÏÍ׵ᤵ¤ì¤¿ NUMA ¥Ý¥ê¥·¡¼¤Î¥â¡¼¥É¤ÈÄɲäΠ-.I "¥â¡¼¥É¥Õ¥é¥°" -¤ò +は要求された NUMA ポリシーのモードと追加の +.I "モードフラグ" +を .I mode -¤¬»Ø¤¹¾ì½ê¤Ë³ÊǼ¤¹¤ë¡£ +が指す場所に格納する。 .I nodemask -¤¬ NULL °Ê³°¤Î¾ì¹ç¡¢¤½¤Î¥Ý¥ê¥·¡¼¤ËÂбþ¤¹¤ë¥Î¡¼¥É¥Þ¥¹¥¯¤ò -¤³¤Î°ú¤­¿ô¤¬»Ø¤¹¾ì½ê¤Ë³ÊǼ¤¹¤ë¡£ +が NULL 以外の場合、そのポリシーに対応するノードマスクを +この引き数が指す場所に格納する。 .I maxnode -¤Ë¤Ï +には .I nodemask -¤Ë³ÊǼ¤Ç¤­¤ë¥Î¡¼¥É ID ¤Î¿ô¡¢¤Ä¤Þ¤êºÇÂç¥Î¡¼¥É ID ¤Ë 1 ¤ò­¤·¤¿Ãͤò»ØÄꤹ¤ë¡£ +に格納できるノード ID の数、つまり最大ノード ID に 1 を足した値を指定する。 .I maxnode -¤Ç»ØÄꤵ¤ì¤¿ÃͤϾï¤Ë +で指定された値は常に .I sizeof(unsigned long) -¤ÎÇÜ¿ô¤ËÀÚ¤ê¾å¤²¤é¤ì¤ë¡£ +の倍数に切り上げられる。 .I flags -¤Ç +で .B MPOL_F_NODE -¤È +と .B MPOL_F_ADDR -¤ÎξÊý¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +の両方が指定された場合、 .BR get_mempolicy () -¤Ï¥¢¥É¥ì¥¹ +はアドレス .I addr -¤¬³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¥Î¡¼¥É¤Î¥Î¡¼¥É ID ¤ò +が割り当てられているノードのノード ID を .I mode -¤¬»Ø¤¹¾ì½ê¤ËÆþ¤ì¤ÆÊÖ¤¹¡£ -»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤Ë¤É¤Î¥Ú¡¼¥¸¤â¤Þ¤À³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +が指す場所に入れて返す。 +指定されたアドレスにどのページもまだ割り当てられていない場合、 .BR get_mempolicy () -¤Ï¡¢¤¢¤¿¤«¤â¤½¤Î¥×¥í¥»¥¹¤¬¤½¤Î¥¢¥É¥ì¥¹¤ËÂФ·¤ÆÆɤ߹þ¤ß¥¢¥¯¥»¥¹¤ò -¼Â¹Ô¤·¤¿¤«¤Î¤è¤¦¤Ë¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤ò¹Ô¤¤¡¢¥Ú¡¼¥¸¤¬³ä¤êÅö¤Æ¤é¤ì¤¿ -¥Î¡¼¥É¤Î ID ¤òÊÖ¤¹¡£ +は、あたかもそのプロセスがそのアドレスに対して読み込みアクセスを +実行したかのようにページの割り当てを行い、ページが割り当てられた +ノードの ID を返す。 .I flags -¤Ç +で .B MPOL_F_NODE -¤Ï»ØÄꤵ¤ì¤¿¤¬¡¢ +は指定されたが、 .B MPOL_F_ADDR -¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ç¡¢¤«¤Ä -¤½¤Î¥×¥í¥»¥¹¤Î¸½ºß¤Î¥Ý¥ê¥·¡¼¤¬ +は指定されていない場合で、かつ +そのプロセスの現在のポリシーが .B MPOL_INTERLEAVE -¤Î¾ì¹ç¡¢ +の場合、 .BR get_mempolicy () -¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ³ä¤êÅö¤Æ¤é¤ì¤¿¥«¡¼¥Í¥ë¤ÎÆâÉô¥Ú¡¼¥¸¤Ç -¼¡¤Ë¥¤¥ó¥¿¡¼¥ê¡¼¥ÖÍѤ˻ÈÍѤµ¤ì¤ë¥Î¡¼¥É¤Î¥Î¡¼¥É ID ¤ò¡¢ -NULL ¤Ç¤Ê¤¤ +は、そのプロセスに対して割り当てられたカーネルの内部ページで +次にインターリーブ用に使用されるノードのノード ID を、 +NULL でない .I mode -°ú¤­¿ô¤¬»Ø¤¹¾ì½ê¤ËÆþ¤ì¤ÆÊÖ¤¹¡£ +引き数が指す場所に入れて返す。 .\" Note: code returns next interleave node via 'mode' argument -Lee Schermerhorn -Æɤ߹þ¤ß¥¢¥¯¥»¥¹ÍѤȤ·¤Æ +読み込みアクセス用として .B MAP_PRIVATE -¥Õ¥é¥°ÉÕ¤­¤Ç +フラグ付きで .BR mmap (2) -¤·¤¿¥×¥í¥»¥¹¥á¥â¥êÎΰè¤ä¡¢ -Ǥ°Õ¤Î¥¢¥¯¥»¥¹ÍѤȤ·¤Æ +したプロセスメモリ領域や、 +任意のアクセス用として .B MAP_SHARED -¥Õ¥é¥°ÉÕ¤­¤Ç +フラグ付きで .BR mmap (2) -¤·¤¿¥á¥â¥êÎΰè¤Î¡¢¥á¥â¥ê¥Þ¥Ã¥×¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥Ú¡¼¥¸¤â -¾åµ­¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ³ä¤êÅö¤Æ¤é¤ì¤¿¥Ú¡¼¥¸¤Ë´Þ¤Þ¤ì¤ë¡£ +したメモリ領域の、メモリマップされたファイルに対するページも +上記のプロセスに対して割り当てられたページに含まれる。 -¾¤Î¥Õ¥é¥°¤ÏͽÌ󤵤ì¤Æ¤¤¤ë¡£ +他のフラグは予約されている。 -ÀßÄê²Äǽ¤Ê¥Ý¥ê¥·¡¼¤Î³µÍפˤĤ¤¤Æ¤Ï +設定可能なポリシーの概要については .BR set_mempolicy (2) -¤ò»²¾È¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +を参照。 +.SH 返り値 +成功すると、 .BR get_mempolicy () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値を設定する。 +.SH エラー .TP .B EFAULT -.\"motoki: Part of all of the memory ¤Ï Part or all .. ¤Î´Ö°ã¤¤¡© +.\"motoki: Part of all of the memory は Part or all .. の間違い? .I nodemask -¤È +と .I maxnode -¤Ç»ØÄꤵ¤ì¤¿¥á¥â¥êÎΰè¤Î°ìÉô¤Þ¤¿¤ÏÁ´Éô¤¬¡¢ -¸Æ¤Ó½Ð¤·¸µ¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +で指定されたメモリ領域の一部または全部が、 +呼び出し元がアクセス可能なアドレス空間外を指している。 .TP .B EINVAL .I maxnode -¤Ç»ØÄꤵ¤ì¤¿Ãͤ¬¥·¥¹¥Æ¥à¤¬¥µ¥Ý¡¼¥È¤¹¤ë¥Î¡¼¥É ID ¤Î¿ô¤è¤ê¤â¾¯¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢ +で指定された値がシステムがサポートするノード ID の数よりも少ない。 +または、 .I flags -¤Ë +に .B MPOL_F_NODE -¤Ç¤â +でも .B MPOL_F_ADDR -¤Ç¤â¤Ê¤¤Ãͤ¬»ØÄꤵ¤ì¤¿¡£ -¤Þ¤¿¤Ï¡¢ +でもない値が指定された。 +または、 .I flags -¤Ë +に .B MPOL_F_ADDR -¤¬»ØÄꤵ¤ì¤Æ¤ª¤ê¡¢ +が指定されており、 .I addr -¤¬ NULL ¤Ç¤¢¤ë¡£ -¤Þ¤¿¤Ï¡¢ +が NULL である。 +または、 .I flags -¤Ë +に .B MPOL_F_ADDR -¤¬¤µ¤ì¤Æ¤ª¤é¤º¡¢ +がされておらず、 .I addr -¤¬ NULL ¤Ç¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢ +が NULL でない。 +または、 .I flags -¤Ë +に .B MPOL_F_NODE -¤¬»ØÄꤵ¤ì¤Æ¤ª¤ê¡¢ +が指定されており、 .B MPOL_F_ADDR -¤¬»ØÄꤵ¤ì¤Æ¤ª¤é¤º¡¢ -¥×¥í¥»¥¹¤Î¸½ºß¤Î¥Ý¥ê¥·¡¼¤¬ +が指定されておらず、 +プロセスの現在のポリシーが .B MPOL_INTERLEAVE -¤Ç¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢ +でない。 +または、 .I flags -¤Ë +に .B MPOL_F_MEMS_ALLOWED -¤¬»ØÄꤵ¤ì¤Æ¤ª¤ê¡¢¤µ¤é¤Ë +が指定されており、さらに .B MPOL_F_ADDR -¤« +か .B MPOL_F_NODE -¤Î¤¤¤º¤ì¤«¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¡£ -(¾¤Ë¤â +のいずれかが指定されている。 +(他にも .B EINVAL -¤È¤Ê¤ë¾ì¹ç¤¬¤¢¤ë¡£) -.SH ¥Ð¡¼¥¸¥ç¥ó +となる場合がある。) +.SH バージョン .BR get_mempolicy () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥Ð¡¼¥¸¥ç¥ó 2.6.7 ¤Ç Linux ¥«¡¼¥Í¥ë¤ËÄɲ䵤줿¡£ -.SH ½àµò -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -¥é¥¤¥Ö¥é¥ê¤Ë¤è¤ë¥µ¥Ý¡¼¥È¤Ë¤Ä¤¤¤Æ¤Ï +システムコールはバージョン 2.6.7 で Linux カーネルに追加された。 +.SH 準拠 +このシステムコールは Linux 固有である。 +.SH 注意 +ライブラリによるサポートについては .BR numa (7) -¤ò»²¾È¡£ -.SH ´ØÏ¢¹àÌÜ +を参照。 +.SH 関連項目 .BR getcpu (2), .BR mbind (2), .BR mmap (2), diff --git a/release/man2/get_thread_area.2 b/release/man2/get_thread_area.2 index 9155f396..fdbd1336 100644 --- a/release/man2/get_thread_area.2 +++ b/release/man2/get_thread_area.2 @@ -9,53 +9,53 @@ .\" Translated Tue Jul 8 03:28:55 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: Thread Local Storage ¥¹¥ì¥Ã¥É¶É½êµ­²± +.\"WORD: Thread Local Storage スレッド局所記憶 .\" .TH GET_THREAD_AREA 2 2008-11-27 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -get_thread_area \- ¥¹¥ì¥Ã¥É¶É½êµ­²± (TLS) Îΰè¤ò¼è¤ê½Ð¤¹ -.SH ½ñ¼° +.SH 名前 +get_thread_area \- スレッド局所記憶 (TLS) 領域を取り出す +.SH 書式 .B #include .br .B #include .sp .BI "int get_thread_area(struct user_desc *" u_info ); -.SH ÀâÌÀ +.SH 説明 .BR get_thread_area () -¤Ï¡¢¥«¥ì¥ó¥È¡¦¥¹¥ì¥Ã¥É¤Î¥¹¥ì¥Ã¥É¶É½êµ­²± -(Thread Local Storage; TLS) ÇÛÎó¤ÎÃæ¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£ -¥¨¥ó¥È¥ê¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¡¢¥æ¡¼¥¶¤«¤é°ú¤­¿ô¤È¤·¤ÆÅϤµ¤ì¤ë -\fIu_info\->entry_number\fP ¤ÎÃͤËÂбþ¤·¤Æ¤¤¤ë¡£ -Ãͤ¬ÈÏ°ÏÆâ¤Ë¤¢¤ë¾ì¹ç¡¢ +は、カレント・スレッドのスレッド局所記憶 +(Thread Local Storage; TLS) 配列の中のエントリを返す。 +エントリのインデックスは、ユーザから引き数として渡される +\fIu_info\->entry_number\fP の値に対応している。 +値が範囲内にある場合、 .BR get_thread_info () -¤ÏÂбþ¤¹¤ë TLS ¥¨¥ó¥È¥ê¤ò -\fIu_info\fP ¤Ç»Ø¤µ¤ì¤¿Îΰè¤Ë¥³¥Ô¡¼¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +は対応する TLS エントリを +\fIu_info\fP で指された領域にコピーする。 +.SH 返り値 +成功した場合、 .BR get_thread_area () -¤Ï 0 ¤òÊÖ¤¹¡£ -¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¡¢ \-1 ¤òÊÖ¤·¡¢ +は 0 を返す。 +そうでない場合、 \-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤò¥»¥Ã¥È¤¹¤ë¡£ -.SH ¥¨¥é¡¼ +に適切な値をセットする。 +.SH エラー .TP .B EFAULT -\fIu_info\fP ¤¬ÉÔÀµ¤Ê¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +\fIu_info\fP が不正なポインタである。 .TP .B EINVAL -\fIu_info\->entry_number\fP ¤¬Èϰϳ°¤Ç¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +\fIu_info\->entry_number\fP が範囲外である。 +.SH バージョン .BR get_thread_area () -¤Ï Linux 2.5.32 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +は Linux 2.5.32 で初めて登場した。 +.SH 準拠 .BR get_thread_area () -¤Ï Linux Æȼ«¤Î´Ø¿ô¤Ç¤¢¤ê¡¢ -°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¸Æ¤Ó½Ð¤¹¤Ë¤Ï +は Linux 独自の関数であり、 +移植を意図したプログラムでは使用すべきではない。 +.SH 注意 +glibc はこのシステムコールに対するラッパー関数を提供していない。 +このシステムコールは呼び出すには .BR syscall (2) -¤ò»È¤¦¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を使うこと。 +.SH 関連項目 .BR modify_ldt (2), .BR set_thread_area (2) diff --git a/release/man2/getcontext.2 b/release/man2/getcontext.2 index 40036021..da1533ca 100644 --- a/release/man2/getcontext.2 +++ b/release/man2/getcontext.2 @@ -25,28 +25,28 @@ .\" Updated 2009-04-13, Akihiro MOTOKI , LDP v3.20 .\" .TH GETCONTEXT 2 2009-03-15 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -getcontext, setcontext \- ¥æ¡¼¥¶¥³¥ó¥Æ¥­¥¹¥È¤ò¼èÆÀ/ÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +getcontext, setcontext \- ユーザコンテキストを取得/設定する +.SH 書式 .B #include .sp .BI "int getcontext(ucontext_t *" ucp ); .br .BI "int setcontext(const ucontext_t *" ucp ); -.SH ÀâÌÀ -System V Ū¤Ê´Ä¶­¤Ç¤Ï¡¢ -\fImcontext_t\fP ¤ª¤è¤Ó \fIucontext_t\fP ¤È¤¤¤¦ 2 ¤Ä¤Î·¿¤È¡¢ +.SH 説明 +System V 的な環境では、 +\fImcontext_t\fP および \fIucontext_t\fP という 2 つの型と、 .BR getcontext (), .BR setcontext (), .BR makecontext (3), .BR swapcontext (3) -¤È¤¤¤¦ 4 ¤Ä¤Î´Ø¿ô¤¬ +という 4 つの関数が .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢¤¢¤ë¥×¥í¥»¥¹ÆâÉô¤ÇÀ©¸æ²¼¤Ë¤¢¤ëÊ£¿ô¤Î¥¹¥ì¥Ã¥É´Ö¤Ç¡¢ -¥æ¡¼¥¶¥ì¥Ù¥ë¤Î¥³¥ó¥Æ¥­¥¹¥ÈÀÚÂؤ¨¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +で定義されており、あるプロセス内部で制御下にある複数のスレッド間で、 +ユーザレベルのコンテキスト切替えができるようになっている。 .LP -\fImcontext_t\fP ·¿¤Ï¥Þ¥·¥ó°Í¸¤Ç¡¢³°Éô¤«¤é¤Ï±£Ê䵤ì¤Æ¤¤¤ë¡£ -\fIucontext_t\fP ·¿¤Ï¹½Â¤ÂΤǡ¢¾¯¤Ê¤¯¤È¤â°Ê²¼¤Î 4 ¤Ä¤Î¥Õ¥£¡¼¥ë¥É¤ò»ý¤Ä¡£ +\fImcontext_t\fP 型はマシン依存で、外部からは隠蔽されている。 +\fIucontext_t\fP 型は構造体で、少なくとも以下の 4 つのフィールドを持つ。 .in +4 .nf @@ -60,114 +60,114 @@ typedef struct ucontext { .fi .in -\fIsigset_t\fP ¤È \fIstack_t\fP ¤Ï +\fIsigset_t\fP と \fIstack_t\fP は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤³¤Ç \fIuc_link\fP ¤Ï¡¢ -¸½ºß¤Î¥³¥ó¥Æ¥­¥¹¥È¤¬½ªÎ»¤·¤¿¤È¤­¡¢ -³¤¤¤ÆÀÚ¤êÂؤï¤ë¥³¥ó¥Æ¥­¥¹¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë -(¸½ºß¤Î¥³¥ó¥Æ¥­¥¹¥È¤¬ +で定義されている。 +ここで \fIuc_link\fP は、 +現在のコンテキストが終了したとき、 +続いて切り替わるコンテキストへのポインタである +(現在のコンテキストが .BR makecontext (3) -¤ÇÀ¸À®¤µ¤ì¤¿¤â¤Î¤Î¾ì¹ç)¡£ -\fIuc_sigmask\fP ¤Ï¤³¤Î¥³¥ó¥Æ¥­¥¹¥È¤Ç¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë -¥·¥°¥Ê¥ë·²¤Ç¤¢¤ë +で生成されたものの場合)。 +\fIuc_sigmask\fP はこのコンテキストでブロックされている +シグナル群である .RB ( sigprocmask (2) -¤ò¸«¤è)¡£ -\fIuc_stack\fP ¤Ï¤³¤Î¥³¥ó¥Æ¥­¥¹¥È¤¬ÍѤ¤¤Æ¤¤¤ë¥¹¥¿¥Ã¥¯¤Ç¤¢¤ë +を見よ)。 +\fIuc_stack\fP はこのコンテキストが用いているスタックである .RB ( signalstack (2) -¤ò¸«¤è)¡£ -\fIuc_mcontext\fP ¤ÏÊݸ¤µ¤ì¤Æ¤¤¤ë¥³¥ó¥Æ¥­¥¹¥È¤Î -¥Þ¥·¥óÆÃÍ­¤Îɽ¸½·Á¼°¤Ç¤¢¤ê¡¢ -¤³¤³¤Ë¤Ï¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î¥Þ¥·¥ó¥ì¥¸¥¹¥¿¤¬³ÊǼ¤µ¤ì¤ë¡£ +を見よ)。 +\fIuc_mcontext\fP は保存されているコンテキストの +マシン特有の表現形式であり、 +ここには呼び出したスレッドのマシンレジスタが格納される。 .LP .BR getcontext () -´Ø¿ô¤Ï¡¢ -¥Ý¥¤¥ó¥¿ \fIucp\fP ¤¬»Ø¤¹¹½Â¤ÂΤò¡¢ -¸½ºß¥¢¥¯¥Æ¥£¥Ö¤Ê¥³¥ó¥Æ¥­¥¹¥È¤Ë½é´ü²½¤¹¤ë¡£ +関数は、 +ポインタ \fIucp\fP が指す構造体を、 +現在アクティブなコンテキストに初期化する。 .LP .BR setcontext () -´Ø¿ô¤Ï¡¢¥Ý¥¤¥ó¥¿ -\fIucp\fP ¤¬»Ø¤¹¥æ¡¼¥¶¥³¥ó¥Æ¥­¥¹¥È¤ò¥ê¥¹¥È¥¢¤¹¤ë¡£ -¸Æ¤Ó½Ð¤·¤ËÀ®¸ù¤¹¤ë¤ÈÊÖ¤é¤Ê¤¤¡£ -¤³¤Î¥³¥ó¥Æ¥­¥¹¥È¤Ï¡¢°ÊÁ°¤Ë +関数は、ポインタ +\fIucp\fP が指すユーザコンテキストをリストアする。 +呼び出しに成功すると返らない。 +このコンテキストは、以前に .BR getcontext () -¤Þ¤¿¤Ï +または .BR makecontext (3) -¤ÇÆÀ¤é¤ì¤¿¤â¤Î¤«¡¢ -¤¢¤ë¤¤¤Ï¥·¥°¥Ê¥ë¤ÎÂè»°°ú¿ô¤È¤·¤ÆÍ¿¤¨¤é¤ì¤¿¤â¤Î¤Ë¤Ê¤ë¡£ +で得られたものか、 +あるいはシグナルの第三引数として与えられたものになる。 .LP -¥³¥ó¥Æ¥­¥¹¥È¤¬ +コンテキストが .BR getcontext () -¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤ÆÆÀ¤é¤ì¤Æ¤¤¤¿¤â¤Î¤Î¾ì¹ç¤Ï¡¢ -¥×¥í¥°¥é¥à¤Ï¤³¤Î¸Æ¤Ó½Ð¤·¤«¤éÊ֤ä¿Ä¾¸å¤«¤é¤Î¤è¤¦¤Ë¼Â¹Ô¤ò·Ñ³¤¹¤ë¡£ +の呼び出しによって得られていたものの場合は、 +プログラムはこの呼び出しから返った直後からのように実行を継続する。 .LP -¥³¥ó¥Æ¥­¥¹¥È¤¬ +コンテキストが .BR makecontext (3) -¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤ÆÆÀ¤é¤ì¤Æ¤¤¤¿¤â¤Î¤Î¾ì¹ç¤Ï¡¢ -¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤Ï¤½¤Î +の呼び出しによって得られていたものの場合は、 +プログラムの実行はその .BR makecontext (3) -¸Æ¤Ó½Ð¤·¤ÎÂèÆó°ú¿ô¤Ç»ØÄꤵ¤ì¤¿´Ø¿ô \fIfunc\fP -¤ò¸Æ¤Ó½Ð¤¹¤«¤¿¤Á¤Ç·Ñ³¤¹¤ë¡£ -\fIfunc\fP ¤«¤éÊÖ¤ë¤È¡¢ +呼び出しの第二引数で指定された関数 \fIfunc\fP +を呼び出すかたちで継続する。 +\fIfunc\fP から返ると、 .BR makecontext (3) -¸Æ¤Ó½Ð¤·¤ÎÂè°ì°ú¿ô¤Ç»ØÄꤵ¤ì¤Æ¤¤¤¿ -\fIucp\fP ¹½Â¤ÂΤΠ\fIuc_link\fP ¥á¥ó¥Ð¤Ç·Ñ³¤¹¤ë¡£ -¤³¤Î¥á¥ó¥Ð¤¬ NULL ¤À¤Ã¤¿¾ì¹ç¤Ï¡¢¤½¤Î¥¹¥ì¥Ã¥É¤Ï½ªÎ»¤¹¤ë¡£ +呼び出しの第一引数で指定されていた +\fIucp\fP 構造体の \fIuc_link\fP メンバで継続する。 +このメンバが NULL だった場合は、そのスレッドは終了する。 .LP -¥³¥ó¥Æ¥­¥¹¥È¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤ÆÆÀ¤é¤ì¤Æ¤¤¤¿¤â¤Î¤Î¾ì¹ç¤Ï¡¢ -¸Å¤¤É¸½à¤Ë¤è¤ì¤Ð -¡Ö¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤Ï¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿Ì¿Îá¤Î¼¡¤ÎÌ¿Îᤫ¤é·Ñ³¤µ¤ì¤ë¡×¡£ -¤·¤«¤·¤³¤Îʸ¤Ï SUSv2 ¤Çºï½ü¤µ¤ì¤¿¤Î¤Ç¡¢ -¸½ºß¤ÎȽÃǤϡַë²Ì¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡×¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +コンテキストがシグナルハンドラの呼び出しによって得られていたものの場合は、 +古い標準によれば +「プログラムの実行はシグナルによって割り込まれた命令の次の命令から継続される」。 +しかしこの文は SUSv2 で削除されたので、 +現在の判断は「結果は定義されていない」である。 +.SH 返り値 +成功すると、 .BR getcontext () -¤Ï 0 ¤òÊÖ¤·¡¢ +は 0 を返し、 .BR setcontext () -¤ÏÊÖ¤é¤Ê¤¤¡£ -¼ºÇÔ¤¹¤ë¤È¡¢Î¾¼Ô¤È¤â \-1 ¤òÊÖ¤·¡¢\fIerrno\fP ¤ò¥¨¥é¡¼¤Ë±þ¤¸¤ÆÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ -ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ½àµò +は返らない。 +失敗すると、両者とも \-1 を返し、\fIerrno\fP をエラーに応じて設定する。 +.SH エラー +定義されていない。 +.SH 準拠 SUSv2, POSIX.1-2001. -POSIX.1-2008 ¤Ç¤Ï¡¢°Ü¿¢À­¤ÎÌäÂ꤫¤é +POSIX.1-2008 では、移植性の問題から .BR getcontext () -¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¤¿¡£ -Âå¤ï¤ê¤Ë¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò POSIX ¥¹¥ì¥Ã¥É¤ò»È¤Ã¤Æ½ñ¤­Ä¾¤¹¤³¤È¤¬ -¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -¤³¤Î¥á¥«¥Ë¥º¥à¤ÎºÇ¸Å¤Î¼ÂÁõ¤Ï¡¢ +の仕様が削除された。 +代わりに、アプリケーションを POSIX スレッドを使って書き直すことが +推奨されている。 +.SH 注意 +このメカニズムの最古の実装は、 .BR setjmp (3)/ longjmp (3) -µ¡¹½¤Ç¤¢¤Ã¤¿¡£ -¤³¤ì¤é¤Ë¤Ï¥·¥°¥Ê¥ë¥³¥ó¥Æ¥­¥¹¥È¤Î¼è¤ê°·¤¤¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¤Î¤Ç¡¢ -¼¡¤ÎÃʳ¬¤Ç¤Ï +機構であった。 +これらにはシグナルコンテキストの取り扱いが定義されていなかったので、 +次の段階では .BR sigsetjmp (3)/ siglongjmp (3) -¤Î¥Ú¥¢¤¬¸½¤ï¤ì¤¿¡£ -¸½ºß¤Îµ¡¹½¤Ç¤Ï¤º¤Ã¤ÈºÙ¤«¤ÊÀ©¸æ¤¬¤Ç¤­¤ë¡£ -°ìÊý +のペアが現われた。 +現在の機構ではずっと細かな制御ができる。 +一方 .BR getcontext () -¤«¤éÊ֤俤Ȥ­¡¢ -¤³¤ì¤¬ºÇ½é¤Î¸Æ¤Ó½Ð¤·¤Ç¤¢¤Ã¤¿¤«¡¢ -¤½¤ì¤È¤â +から返ったとき、 +これが最初の呼び出しであったか、 +それとも .BR setcontext () -¸Æ¤Ó½Ð¤·¤«¤é¤Î¤â¤Î¤Ç¤¢¤ë¤«¤ò -¶èÊ̤¹¤ëÍưפÊÊýË¡¤¬¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£ -¥æ¡¼¥¶¤Ï¡Ö¤·¤ª¤ê¡×µ¡¹½¤ò¼«Ê¬¤Çºî¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥ì¥¸¥¹¥¿ÊÑ¿ô¤Ï (¥ì¥¸¥¹¥¿¤Ï¥ê¥¹¥È¥¢¤µ¤ì¤Æ¤·¤Þ¤¦¤Î¤Ç) ¤³¤ì¤ò¤ä¤Ã¤Æ¤¯¤ì¤Ê¤¤¡£ +呼び出しからのものであるかを +区別する容易な方法がなくなってしまった。 +ユーザは「しおり」機構を自分で作らなければならない。 +レジスタ変数は (レジスタはリストアされてしまうので) これをやってくれない。 .LP -¥·¥°¥Ê¥ë¤¬È¯À¸¤¹¤ë¤È¡¢ -¸½ºß¤Î¥æ¡¼¥¶¥³¥ó¥Æ¥­¥¹¥È¤ÏÊݸ¤µ¤ì¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥éÍѤΥ³¥ó¥Æ¥­¥¹¥È¤¬¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤ë¡£ -º£¸å¤Ï¥Ï¥ó¥É¥é¤Ë +シグナルが発生すると、 +現在のユーザコンテキストは保存され、 +シグナルハンドラ用のコンテキストがカーネルによって生成される。 +今後はハンドラに .BR longjmp (3) -¤ò»È¤ï¤»¤Ê¤¤¤³¤È: -¤³¤Î´Ø¿ô¤Î¥³¥ó¥Æ¥­¥¹¥È²¼¤Ç¤ÎÆ°ºî¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -Âå¤ï¤ê¤Ë +を使わせないこと: +この関数のコンテキスト下での動作は定義されていない。 +代わりに .BR siglongjmp (3) -¤« +か .BR setcontext () -¤ò»È¤¦¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を使うこと。 +.SH 関連項目 .BR sigaction (2), .BR sigaltstack (2), .BR sigprocmask (2), diff --git a/release/man2/getdents.2 b/release/man2/getdents.2 index a1483985..ab3f3601 100644 --- a/release/man2/getdents.2 +++ b/release/man2/getdents.2 @@ -33,42 +33,42 @@ .\" Updated Wed Jul 30 JST 2008 by Kentaro Shirakata .\" Updated 2009-02-12 by Kentaro Shirakata .\" -.\"WORD: directory ¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: entry ¥¨¥ó¥È¥ê -.\"WORD: memory area ¥á¥â¥êÎΰè -.\"WORD: parameter ¥Ñ¥é¥á¡¼¥¿¡¼ -.\"WORD: inode number inode ÈÖ¹æ -.\"WORD: null ¥Ì¥ëʸ»ú +.\"WORD: directory ディレクトリ +.\"WORD: entry エントリ +.\"WORD: memory area メモリ領域 +.\"WORD: parameter パラメーター +.\"WORD: inode number inode 番号 +.\"WORD: null ヌル文字 .\" .TH GETDENTS 2 2009-07-04 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -getdents \- ¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +getdents \- ディレクトリ・エントリを取得する +.SH 書式 .nf .BI "int getdents(unsigned int " fd ", struct linux_dirent *" dirp , .BI " unsigned int " count ); .fi -.SH ÀâÌÀ -¤³¤ì¤Ï¤¢¤Ê¤¿¤Î´Ø¿´¤ò°ú¤¯¤è¤¦¤Ê´Ø¿ô¤Ç¤Ï¤Ê¤¤¡£ -POSIX ½àµò¤Î C ¥é¥¤¥Ö¥é¥ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æ¤Ï +.SH 説明 +これはあなたの関心を引くような関数ではない。 +POSIX 準拠の C ライブラリインターフェースについては .BR readdir (3) -¤ò¸«¤ë¤³¤È¡£ -¤³¤Î¥Ú¡¼¥¸¤Ï¡¢¥«¡¼¥Í¥ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÀ¸¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æ -µ­ºÜ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +を見ること。 +このページは、カーネルシステムコールの生のインターフェースについて +記載したものである。 .PP .BR getdents () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¥ª¡¼¥×¥óºÑ¤ß¤Î¥Õ¥¡¥¤¥ëµ­½Ò»Ò +システムコールは、オープン済みのファイル記述子 .I fd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é +で参照されるディレクトリから .I linux_dirent -¹½Â¤ÂΤò¤¤¤¯¤Ä¤«Æɤ߽Ф·¡¢ +構造体をいくつか読み出し、 .I dirp -¤¬»Ø¤·¤Æ¤¤¤ë¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤¹¤ë¡£ +が指しているバッファに格納する。 .I count -°ú¤­¿ô¤Ï¤½¤Î¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤ò¼¨¤¹¡£ +引き数はそのバッファのサイズを示す。 .PP .I linux_dirent -¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤Æ¤¤¤ë: +構造体は以下のように宣言されている: .PP .in +4n .nf @@ -90,112 +90,112 @@ struct linux_dirent { .in .PP .I d_ino -¤Ï inode ÈÖ¹æ¤Ç¤¢¤ë¡£ +は inode 番号である。 .I d_off -¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤ÎÀèƬ¤«¤é¼¡¤Î +はディレクトリの先頭から次の .I linux_dirent -¤ÎÀèƬ¤Þ¤Ç¤Îµ÷Î¥¤Ç¤¢¤ë¡£ +の先頭までの距離である。 .I d_reclen -¤Ï¤³¤Î +はこの .I linux_dirent -Á´ÂΤΥµ¥¤¥º¤Ç¤¢¤ë¡£ +全体のサイズである。 .I d_name -¤Ï¥Ì¥ë(null)ʸ»ú¤Ç½ª¤ï¤ë¥Õ¥¡¥¤¥ë̾¤Ç¤¢¤ë¡£ +はヌル(null)文字で終わるファイル名である。 .I d_type -¤Ï¡¢¹½Â¤ÂΤκǸå¤Î¥Ð¥¤¥È¤Ç¤¢¤ê¡¢¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤ò¼¨¤¹¡£ +は、構造体の最後のバイトであり、ファイルタイプを示す。 .I d_type -¤Ï°Ê²¼¤ÎÃͤΰì¤Ä¤ò¼è¤ë +は以下の値の一つを取る .RI ( -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ +で定義されている)。 .TP 12 .B DT_BLK -¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Ç¤¢¤ë¡£ +ブロックデバイスである。 .TP .B DT_CHR -¥­¥ã¥é¥¯¥¿¥Ç¥Ð¥¤¥¹¤Ç¤¢¤ë¡£ +キャラクタデバイスである。 .TP .B DT_DIR -¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¡£ +ディレクトリである。 .TP .B DT_FIFO -̾Á°¤Ä¤­¥Ñ¥¤¥× (FIFO) ¤Ç¤¢¤ë¡£ +名前つきパイプ (FIFO) である。 .TP .B DT_LNK -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¤¢¤ë¡£ +シンボリックリンクである。 .TP .B DT_REG -Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ +通常のファイルである。 .TP .B DT_SOCK -UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤Ç¤¢¤ë¡£ +UNIX ドメインソケットである。 .TP .B DT_UNKNOWN -¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤ÏÉÔÌÀ¤Ç¤¢¤ë¡£ +ファイルタイプは不明である。 .PP .I d_type -¥Õ¥£¡¼¥ë¥É¤Ï Linux 2.6.4 ¤«¤é¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï +フィールドは Linux 2.6.4 から実装されている。 +これは .I linux_dirent -¹½Â¤ÂΤΤ¦¤Á¡¢°ÊÁ°¤Ï¥¼¥í¤ÇËä¤á¤é¤ì¤Æ¤¤¤¿¶õ´Ö¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë¡£ -½¾¤Ã¤Æ¡¢2.6.3 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ë¥¢¥¯¥»¥¹¤·¤è¤¦¤È¤¹¤ë¤È -¾ï¤ËÃÍ 0 +構造体のうち、以前はゼロで埋められていた空間に配置されている。 +従って、2.6.3 以前のカーネルでは、このフィールドにアクセスしようとすると +常に値 0 .RB ( DT_UNKNOWN ) -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .PP -¸½ºß¤Î¤È¤³¤í¡¢ -.\" ¥«¡¼¥Í¥ë 2.6.27 -.\" Ʊ¤¸ÀâÌÀʸ¤¬ readdir.2 ¤Ë¤â¤¢¤ë¡£ +現在のところ、 +.\" カーネル 2.6.27 +.\" 同じ説明文が readdir.2 にもある。 .I d_type -¤Ç¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤òÊÖ¤¹µ¡Ç½¤¬´°Á´¤Ë¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢ -¤¤¤¯¤Ä¤«¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¤Î¤ß¤Ç¤¢¤ë -(Btrfs, ext2, ext3, ext4 ¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë)¡£ -¤É¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤â¡¢ +でファイルタイプを返す機能が完全にサポートされているのは、 +いくつかのファイルシステムにおいてのみである +(Btrfs, ext2, ext3, ext4 はサポートしている)。 +どのアプリケーションも、 .B DT_UNKNOWN -¤¬ÊÖ¤µ¤ì¤¿ºÝ¤ËŬÀڤ˽èÍý¤Ç¤­¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï¡¢Æɤ߹þ¤ó¤À¥Ð¥¤¥È¿ô¤¬ÊÖ¤µ¤ì¤ë¡£ -¥Ç¥£¥ì¥¯¥È¥ê¤Î½ª¤ï¤ê¤Ê¤é¤Ð 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤µ¤ì¡¢ +が返された際に適切に処理できなければならない。 +.SH 返り値 +成功した場合は、読み込んだバイト数が返される。 +ディレクトリの終わりならば 0 が返される。 +エラーの場合は \-1 を返され、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +に適切な値が設定される。 +.SH エラー .TP .B EBADF -¥Õ¥¡¥¤¥ëµ­½Ò»Ò +ファイル記述子 .I fd -¤Ï̵¸ú¤Ç¤¢¤ë¡£ +は無効である。 .TP .B EFAULT -°ú¤­¿ô¤¬¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +引き数が、呼び出したプロセスのアドレス空間外を指している。 .TP .B EINVAL -·ë²ÌÍѤΥХåե¡¡¼¤¬¾®¤µ¤¹¤®¤ë¡£ +結果用のバッファーが小さすぎる。 .TP .B ENOENT -¤½¤Î¤è¤¦¤Ê¥Ç¥£¥ì¥¯¥È¥ê¤Ï¸ºß¤·¤Ê¤¤¡£ +そのようなディレクトリは存在しない。 .TP .B ENOTDIR -¥Õ¥¡¥¤¥ëµ­½Ò»Ò¤¬¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£ -.SH ½àµò +ファイル記述子がディレクトリを参照していない。 +.SH 準拠 SVr4. -.\" SVr4 ¤Ç¤Ï¡¢Â¾¤Ë ENOLINK, EIO ¥¨¥é¡¼¾õÂ֤ˤĤ¤¤Æ¤âµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢ +.\" SVr4 では、他に ENOLINK, EIO エラー状態についても記述されている。 +.SH 注意 +glibc はこのシステムコールに対するラッパー関数を提供していないので、 .BR syscall (2) -¤ò»È¤Ã¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¡£ +を使って呼び出すこと。 .I linux_dirent -¹½Â¤ÂΤϼ«Ê¬¤ÇÄêµÁ¤¹¤ëɬÍפ¬¤¢¤ë¡£ +構造体は自分で定義する必要がある。 -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +このシステムコールは .BR readdir (2) -¤òÃÖ¤­´¹¤¨¤ë¤â¤Î¤Ç¤¢¤ë¡£ -.SH Îã -²¼µ­¤Î¥×¥í¥°¥é¥à¤Ï +を置き換えるものである。 +.SH 例 +下記のプログラムは .BR getdents () -¤Î»ÈÍÑÎã¤ò¼¨¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -°Ê²¼¤Ï¡¢¤³¤Î¥×¥í¥°¥é¥à¤ò ext2 ¥Ç¥£¥ì¥¯¥È¥ê¤Ç¼Â¹Ô¤·¤¿ºÝ¤ËÆÀ¤é¤ì¤ë -½ÐÎϤÎÎã¤Ç¤¢¤ë¡£ +の使用例を示したものである。 +以下は、このプログラムを ext2 ディレクトリで実行した際に得られる +出力の例である。 .in +4n .nf @@ -211,7 +211,7 @@ i-node# file type d_reclen d_off d_name 130817 directory 16 4096 sub3 .fi .in -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #define _GNU_SOURCE @@ -278,6 +278,6 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR readdir (2), .BR readdir (3) diff --git a/release/man2/getdomainname.2 b/release/man2/getdomainname.2 index 9e57e890..c524e2cd 100644 --- a/release/man2/getdomainname.2 +++ b/release/man2/getdomainname.2 @@ -34,9 +34,9 @@ .\" Updated 2008-12-26, Akihiro MOTOKI , LDP v3.15 .\" .TH GETDOMAINNAME 2 2009-09-27 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -getdomainname, setdomainname \- ¥É¥á¥¤¥ó̾¤Î¼èÆÀ¡¦ÀßÄê¤ò¤¹¤ë -.SH ½ñ¼° +.SH 名前 +getdomainname, setdomainname \- ドメイン名の取得・設定をする +.SH 書式 .B #include .sp .BI "int getdomainname(char *" name ", size_t " len ); @@ -44,9 +44,9 @@ getdomainname, setdomainname \- .BI "int setdomainname(const char *" name ", size_t " len ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -56,84 +56,84 @@ glibc _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) .RE .ad -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¥Û¥¹¥È¥·¥¹¥Æ¥à¤Î¥É¥á¥¤¥ó̾¤ò¼èÆÀ¡¦Êѹ¹¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ +.SH 説明 +これらの関数は、ホストシステムのドメイン名を取得・変更するために使われる。 .BR setdomainname () -¤Ï¡¢¥É¥á¥¤¥ó̾¤ò¡¢Ê¸»úÇÛÎó +は、ドメイン名を、文字配列 .I name -¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£ -°ú¤­¿ô +で指定された値に設定する。 +引き数 .I len -¤Ë¤Ï¡¢ +には、 .I name -¤Î¥Ð¥¤¥È¿ô¤ò»ØÄꤹ¤ë -(¤½¤Î¤¿¤á¡¢ +のバイト数を指定する +(そのため、 .I name -¤Ç¤Ïʸ»úÎó½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤ÏɬÍפʤ¤)¡£ +では文字列終端の NULL バイトは必要ない)。 .BR getdomainname () -¤Ï¡¢NULL ½ªÃ¼¤µ¤ì¤¿¥É¥á¥¤¥ó̾¤ò¡¢ +は、NULL 終端されたドメイン名を、 .I len -¥Ð¥¤¥È¤ÎŤµ¤Îʸ»úÇÛÎó +バイトの長さの文字配列 .I name -¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ -NULL ½ªÃ¼¤µ¤ì¤¿¥É¥á¥¤¥ó̾¤¬ \fIlen\fP ¥Ð¥¤¥È¤è¤êŤ¤¾ì¹ç¡¢ +に格納して返す。 +NULL 終端されたドメイン名が \fIlen\fP バイトより長い場合、 .BR getdomainname () -¤Ï¡¢(glibc ¤Ç¤Ï) »Ï¤á¤Î \fIlen\fP ¥Ð¥¤¥È¤òÊÖ¤·¡¢(libc ¤Ç¤Ï) ¥¨¥é¡¼¤È¤Ê¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç 0 ¤¬Ê֤롣¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤¬Ê֤ꡢ +は、(glibc では) 始めの \fIlen\fP バイトを返し、(libc では) エラーとなる。 +.SH 返り値 +成功した場合 0 が返る。失敗した場合 \-1 が返り、 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤ˽¾¤Ã¤ÆÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +がエラーの内容に従って設定される。 +.SH エラー .BR setdomainname () -¤Ï°Ê²¼¤Î¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +は以下のエラーで失敗する可能性がある。 .TP .B EFAULT .I name -¤¬¥æ¡¼¥¶¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤¿¡£ +がユーザアドレス空間の外を指した。 .TP .B EINVAL .I len -¤¬Éé¤Ç¤¢¤ë¤«¡¢Ä¹¤¹¤®¤ë¡£ +が負であるか、長すぎる。 .TP .B EPERM .BR setdomainname () -¤Ë¤ª¤¤¤Æ¡¢¸Æ¤Ó½Ð¤·¤¿¿Í¤ËÆø¢¤¬¤Ê¤¤ -(Linux ¤Ç¤Ï +において、呼び出した人に特権がない +(Linux では .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤¬¤Ê¤¤)¡£ +ケーパビリティ (capability) がない)。 .PP .BR getdomainname () -¤Ï°Ê²¼¤Î¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +は以下のエラーで失敗する可能性がある。 .TP .B EINVAL -libc ¤Ç¤Î +libc での .BR getdomainname () -¤Ë¤ª¤¤¤Æ¡¢ +において、 .I name -¤¬ NULL ¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤«¡¢ +が NULL ポインタであるか、 .I len -¥Ð¥¤¥È¤è¤êŤ¤¡£ -.SH ½àµò -POSIX ¤Ç¤Ï¡¢¤³¤ì¤é´Ø¿ô¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.\" ¤·¤«¤·¡¢¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¤Ë¤¢¤ë... -.SH Ãí°Õ -Linux 1.0 °Ê¹ß¤Ç¤Ï¡¢¥É¥á¥¤¥ó̾¤ÎŤµ¤Î¾å¸Â¤Ï -½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤ò´Þ¤á¤Æ 64 ¥Ð¥¤¥È¤Ç¤¢¤ë¡£ -¤â¤Ã¤È¸Å¤¤¥«¡¼¥Í¥ë¤Ç¤Ï 8 ¥Ð¥¤¥È¤Ç¤¢¤Ã¤¿¡£ +バイトより長い。 +.SH 準拠 +POSIX では、これら関数は定義されていない。 +.\" しかし、ほとんどのシステムにある... +.SH 注意 +Linux 1.0 以降では、ドメイン名の長さの上限は +終端の NULL バイトを含めて 64 バイトである。 +もっと古いカーネルでは 8 バイトであった。 -(x86 ¤ò´Þ¤à) Linux ¤Î¤Û¤È¤ó¤É¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢ +(x86 を含む) Linux のほとんどのアーキテクチャでは、 .BR getdomainname () -¤È¤¤¤¦¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¸ºß¤·¤Ê¤¤¡£ -¤½¤ÎÂå¤ï¤ê¡¢glibc ¤Ç +というシステムコールは存在しない。 +その代わり、glibc で .BR getdomainname () -¤¬¥é¥¤¥Ö¥é¥ê´Ø¿ô¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤ª¤ê¡¢¤³¤Î´Ø¿ô¤Ï +がライブラリ関数として実装されており、この関数は .BR uname (2) -¤Î¸Æ¤Ó½Ð¤·¤ÇÊÖ¤µ¤ì¤¿ +の呼び出しで返された .I domainname -¥Õ¥£¡¼¥ë¥É¤Î¥³¥Ô¡¼¤òÊÖ¤¹¡£ -.SH ´ØÏ¢¹àÌÜ +フィールドのコピーを返す。 +.SH 関連項目 .BR gethostname (2), .BR sethostname (2), .BR uname (2) diff --git a/release/man2/getdtablesize.2 b/release/man2/getdtablesize.2 index bd64a61b..e687f4e9 100644 --- a/release/man2/getdtablesize.2 +++ b/release/man2/getdtablesize.2 @@ -32,17 +32,17 @@ .\" Updated 2007-01-01 by Kentaro Shirakata .\" .TH GETDTABLESIZE 2 2010-09-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -getdtablesize \- ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Æ¡¼¥Ö¥ë¤Î¥µ¥¤¥º¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +getdtablesize \- ディスクリプタ・テーブルのサイズを取得する +.SH 書式 .B #include .sp .B int getdtablesize(void); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR getdtablesize (): @@ -50,54 +50,54 @@ glibc .RS 4 .PD 0 .TP 4 -glibc 2.12 °Ê¹ß: +glibc 2.12 以降: .nf _BSD_SOURCE || !(_POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600) .fi .TP 4 -glibc 2.12 ¤è¤êÁ°: +glibc 2.12 より前: _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .PD .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR getdtablesize () -¤Ï 1 ¤Ä¤Î¥×¥í¥»¥¹¤Î¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¿ô¤ÎºÇÂçÃͤòÊÖ¤¹¡£ -ÊÖ¤êÃͤϥե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¼è¤êÆÀ¤ëºÇÂçÃͤè¤ê 1 Â礭¤¤ÃͤǤ¢¤ë¡£ -.SH ÊÖ¤êÃÍ -¥×¥í¥»¥¹Ëè¤Ë¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¿ô¤Î¸½ºß¤ÎÀ©¸ÂÃÍ¡£ -.SH ¥¨¥é¡¼ -Linux ¤Ç¤Ï¡¢ +は 1 つのプロセスのオープンできるファイル数の最大値を返す。 +返り値はファイルディスクリプタの取り得る最大値より 1 大きい値である。 +.SH 返り値 +プロセス毎にオープンできるファイル数の現在の制限値。 +.SH エラー +Linux では、 .BR getdtablesize () -¤Ï +は .BR getrlimit (2) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤òÊÖ¤¹¤³¤È¤¬¤¢¤ë¡£ -²¼µ­¤Î¡ÖÃí°Õ¡×¤ò»²¾È¤Î¤³¤È¡£ -.SH ½àµò +で説明されているエラーを返すことがある。 +下記の「注意」を参照のこと。 +.SH 準拠 SVr4, 4.4BSD .RB ( getdtablesize () -´Ø¿ô¤Ï 4.2BSD ¤ÇºÇ½é¤Ë¸½¤ï¤ì¤¿)¡£ -¤³¤ì¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢ -°Ü¿¢À­¤Î¤¢¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¤³¤Î¸Æ¤Ó½Ð¤·¤ÎÂå¤ï¤ê¤Ë +関数は 4.2BSD で最初に現われた)。 +これは POSIX.1-2001 で規定されていないので、 +移植性のあるアプリケーションはこの呼び出しの代わりに .I sysconf(_SC_OPEN_MAX) -¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£ -.SH Ãí°Õ +を使うべきである。 +.SH 注意 .BR getdtablesize () -¤Ï libc ¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£glibc ÈÇ¤Ï +は libc のライブラリ関数として実装されている。glibc 版は .BR getrlimit (2) -¤ò¸Æ¤Ó½Ð¤·¤Æ¡¢¸½ºß¤Î +を呼び出して、現在の .B RLIMIT_NOFILE -¤òÊÖ¤¹¡£ -¸Æ¤Ó½Ð¤·¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ï +を返す。 +呼び出しに失敗した場合は .B OPEN_MAX -¤òÊÖ¤¹¡£ -libc4 ¤È libc5 ¤Ç¤Ï +を返す。 +libc4 と libc5 では .B OPEN_MAX -(Linux 0.98.4 °Ê¹ß¤Ç¤Ï 256 ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë) -¤òÊÖ¤¹¡£ -.SH ´ØÏ¢¹àÌÜ +(Linux 0.98.4 以降では 256 に設定されている) +を返す。 +.SH 関連項目 .BR close (2), .BR dup (2), .BR getrlimit (2), diff --git a/release/man2/getgid.2 b/release/man2/getgid.2 index f71f37a3..a5053a1d 100644 --- a/release/man2/getgid.2 +++ b/release/man2/getgid.2 @@ -28,9 +28,9 @@ .\" by SUTO, Mitsuaki .\" .TH GETGID 2 1993-07-23 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -getgid, getegid \- ¥°¥ë¡¼¥× ID ¤òÆÀ¤ë -.SH ½ñ¼° +.SH 名前 +getgid, getegid \- グループ ID を得る +.SH 書式 .B #include .br .B #include @@ -38,17 +38,17 @@ getgid, getegid \- .B gid_t getgid(void); .br .B gid_t getegid(void); -.SH ÀâÌÀ +.SH 説明 .BR getgid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¥°¥ë¡¼¥× ID ¤òÊÖ¤¹¡£ +は呼び出し元のプロセスの実グループ ID を返す。 .BR getegid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¸ú¥°¥ë¡¼¥× ID ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¾ï¤ËÀ®¸ù¤¹¤ë¡£ -.SH ½àµò +は呼び出し元のプロセスの実効グループ ID を返す。 +.SH エラー +これらの関数は常に成功する。 +.SH 準拠 POSIX.1-2001, 4.3BSD. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getresgid (2), .BR setgid (2), .BR setregid (2), diff --git a/release/man2/getgroups.2 b/release/man2/getgroups.2 index 8dfd97b2..243bb728 100644 --- a/release/man2/getgroups.2 +++ b/release/man2/getgroups.2 @@ -35,16 +35,16 @@ .\" Updated & Modified 2004-12-30, Yuichi SATO .\" Updated 2008-08-04, Akihiro MOTOKI , LDP v3.05 .\" -.\"WORD: group ¥°¥ë¡¼¥× -.\"WORD: access ¥¢¥¯¥»¥¹ -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: super user ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ -.\"WORD: supplementary group Êä½õ¥°¥ë¡¼¥× +.\"WORD: group グループ +.\"WORD: access アクセス +.\"WORD: process プロセス +.\"WORD: super user スーパー・ユーザー +.\"WORD: supplementary group 補助グループ .\" .TH GETGROUPS 2 2008-06-03 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -getgroups, setgroups \- Êä½õ¥°¥ë¡¼¥× ID ¤Î¥ê¥¹¥È¤ò¼èÆÀ/ÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +getgroups, setgroups \- 補助グループ ID のリストを取得/設定する +.SH 書式 .B #include .br .B #include @@ -56,109 +56,109 @@ getgroups, setgroups \- .BI "int setgroups(size_t " size ", const gid_t *" list ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR setgroups (): _BSD_SOURCE -.SH ÀâÌÀ +.SH 説明 .PP .BR getgroups () -¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤ÎÊä½õ¥°¥ë¡¼¥× (supplementary group) ID ¤ò +は呼び出し元プロセスの補助グループ (supplementary group) ID を .I list -¤ËÊÖ¤¹¡£ +に返す。 .I size -°ú¤­¿ô¤Ë¤Ï¡¢ +引き数には、 .I list -¤Ë¤è¤ê»²¾È¤µ¤ì¤ë¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤Ç¤­¤ëÍ×ÁǤκÇÂç¿ô¤òÀßÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬ +により参照されるバッファに格納できる要素の最大数を設定すべきである。 +呼び出し元プロセスが .I size -¸Ä¤è¤ê¿¤¯¤ÎÊä½õ¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð¤Î¾ì¹ç¤Ë¤Ï¡¢¥¨¥é¡¼¤È¤Ê¤ë¡£ -¤³¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú¥°¥ë¡¼¥× ID ¤¬¡¢ -ÊÖ¤µ¤ì¤ë¥ê¥¹¥È¤Ë´Þ¤Þ¤ì¤ë¤«¤É¤¦¤«¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤ -(¤·¤¿¤¬¤Ã¤Æ¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï +個より多くの補助グループのメンバの場合には、エラーとなる。 +この関数を呼び出したプロセスの実効グループ ID が、 +返されるリストに含まれるかどうかは規定されていない +(したがって、アプリケーションは .BR getegid (2) -¤ò¸Æ¤Ó½Ð¤·¡¢¤½¤Î·ë²Ì¤ÎÃͤòÄɲᦺï½ü¤¹¤Ù¤­¤Ç¤¢¤ë)¡£ +を呼び出し、その結果の値を追加・削除すべきである)。 .I size -¤¬ 0 ¤Ê¤é¤Ð¡¢ +が 0 ならば、 .I list -¤Ï½¤Àµ¤µ¤ì¤Ê¤¤¤¬¡¢¤½¤Î¥×¥í¥»¥¹¤ÎÊä½õ¥°¥ë¡¼¥× ID ¤Î¹ç·×¿ô¤¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤ì¤ò»È¤¦¤³¤È¤Ç¡¢¤½¤ì°Ê¹ß¤Î +は修正されないが、そのプロセスの補助グループ ID の合計数が返される。 +これを使うことで、それ以降の .BR getgroups () -¤Î¸Æ¤Ó½Ð¤·¤ÇɬÍפȤʤëưŪ³ä¤êÅö¤Æ¥Ð¥Ã¥Õ¥¡ +の呼び出しで必要となる動的割り当てバッファ .I list -¤Î¥µ¥¤¥º¤ò¡¢¸Æ¤Ó½Ð¤·¸µ¤¬·èÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +のサイズを、呼び出し元が決定することができる。 .PP .BR setgroups () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤ÎÊä½õ¥°¥ë¡¼¥× ID ¤òÀßÄꤹ¤ë¡£ -ŬÀÚ¤ÊÆø¢ (Linux ¤Ç¤Ï +は、呼び出し元プロセスの補助グループ ID を設定する。 +適切な特権 (Linux では .B CAP_SETGID -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability)) ¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティ (capability)) が必要である。 .I size -°ú¤­¿ô¤Ë¤Ï¡¢ +引き数には、 .I list -¤Ë¤è¤ê»²¾È¤µ¤ì¤ë¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤¿Êä½õ¥°¥ë¡¼¥× ID ¤Î¿ô¤ò»ØÄꤹ¤ë¡£ -.SH ÊÖ¤êÃÍ +により参照されるバッファに格納された補助グループ ID の数を指定する。 +.SH 返り値 .BR getgroups () -¤Ï¡¢À®¸ù¤¹¤ë¤ÈÊä½õ¥°¥ë¡¼¥× ID ¤Î¿ô¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤·¡¢ +は、成功すると補助グループ ID の数を返す。 +エラーの場合 \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ +を適切に設定する。 .BR setgroups () -¤Ï¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤·¡¢ +は、成功すると 0 を返す。 +エラーの場合 \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切に設定する。 +.SH エラー .TP .B EFAULT .I list -¤¬ÉÔÀµ¤Ê¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +が不正なアドレスである。 .PP .BR getgroups () -¤Ï¡¢¾åµ­¤Ë²Ã¤¨¤Æ°Ê²¼¤Î¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +は、上記に加えて以下のエラーで失敗する可能性がある。 .TP .B EINVAL .I size -¤¬Êä½õ¥°¥ë¡¼¥× ID ¤Î¿ô¤è¤ê¾®¤µ¤¤¤¬ 0 ¤Ç¤Ê¤¤¡£ +が補助グループ ID の数より小さいが 0 でない。 .PP .BR setgroups () -¤Ï¡¢¾åµ­¤Ë²Ã¤¨¤Æ°Ê²¼¤Î¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +は、上記に加えて以下のエラーで失敗する可能性がある。 .TP .B EINVAL .I size -¤¬ +が .B NGROUPS_MAX -¤è¤êÂ礭¤¤ +より大きい .RB ( NGROUPS_MAX -¤Ï Linux 2.6.4 ¤è¤êÁ°¤Ç¤Ï 32¡¢Linux 2.6.4 °Ê¹ß¤Ç¤Ï 65536)¡£ +は Linux 2.6.4 より前では 32、Linux 2.6.4 以降では 65536)。 .TP .B ENOMEM -¥á¥â¥êÉÔ­¡£ +メモリ不足。 .TP .B EPERM -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬½½Ê¬¤ÊÆø¢¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -.SH ½àµò +呼び出し元プロセスが十分な特権を持っていない。 +.SH 準拠 SVr4, 4.3BSD. .BR getgroups () -´Ø¿ô¤Ï POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +関数は POSIX.1-2001 に準拠している。 .BR setgroups () -¤ÏÆø¢¤òɬÍפȤ¹¤ë¤¿¤á¡¢POSIX.1-2001 ¤Ë½¾¤Ã¤Æ¤¤¤Ê¤¤¡£ -.SH Ãí°Õ -¥×¥í¥»¥¹¤Ï¡¢¼Â¸ú¥°¥ë¡¼¥× ID ¤Ë²Ã¤¨¡¢ºÇÂç +は特権を必要とするため、POSIX.1-2001 に従っていない。 +.SH 注意 +プロセスは、実効グループ ID に加え、最大 .B NGROUPS_MAX -¤Þ¤Ç¤ÎÊä½õ¥°¥ë¡¼¥× ID ¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ -Êä½õ¥°¥ë¡¼¥× ID ¤Î½¸¹ç¤Ï¿Æ¥×¥í¥»¥¹¤«¤é·Ñ¾µ¤µ¤ì¡¢ +までの補助グループ ID を持つことができる。 +補助グループ ID の集合は親プロセスから継承され、 .BR execve (2) -¤ÎÁ°¸å¤ÇÊÝ»ý¤µ¤ì¤ë¡£ +の前後で保持される。 -Êä½õ¥°¥ë¡¼¥× ID ¤ÎºÇÂç¿ô¤Ï +補助グループ ID の最大数は .BR sysconf (3) -¤ò»È¤Ã¤Æ°Ê²¼¤Î¤è¤¦¤Ë¤·¤ÆÄ´¤Ù¤ë¤³¤È¤¬¤Ç¤­¤ë: +を使って以下のようにして調べることができる: .nf long ngroups_max; @@ -166,8 +166,8 @@ SVr4, 4.3BSD. .fi .BR getgroups () -¤ÎÊÖ¤êÃͤκÇÂçÃͤϡ¢¤³¤ÎÃͤè¤ê 1 Â礭¤¤Ãͤè¤êÂ礭¤¯¤Ê¤ë¤³¤È¤Ï¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +の返り値の最大値は、この値より 1 大きい値より大きくなることはない。 +.SH 関連項目 .BR getgid (2), .BR setgid (2), .BR getgrouplist (3), diff --git a/release/man2/gethostname.2 b/release/man2/gethostname.2 index 17875618..a2b18d40 100644 --- a/release/man2/gethostname.2 +++ b/release/man2/gethostname.2 @@ -40,9 +40,9 @@ .\" Updated 2008-12-26, Akihiro MOTOKI, LDP v3.15 .\" .TH GETHOSTNAME 2 2010-09-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -gethostname, sethostname \- ¥Û¥¹¥È̾¤Î¼èÆÀ¡¦ÀßÄê¤ò¤¹¤ë -.SH ½ñ¼° +.SH 名前 +gethostname, sethostname \- ホスト名の取得・設定をする +.SH 書式 .B #include .sp .BI "int gethostname(char *" name ", size_t " len ); @@ -50,19 +50,19 @@ gethostname, sethostname \- .BI "int sethostname(const char *" name ", size_t " len ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l .PD 0 .BR gethostname (): .RS 4 -glibc 2.12 °Ê¹ß: +glibc 2.12 以降: _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 .br -|| /* glibc 2.12 °Ê¹ß: */ _POSIX_C_SOURCE\ >=\ 200112L +|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\ >=\ 200112L .RE .br .BR sethostname (): @@ -71,134 +71,134 @@ _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) .RE .PD .ad -.SH ÀâÌÀ -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¸½ºß¤Î¥×¥í¥»¥Ã¥µ¤Î¥Û¥¹¥È̾¤ò¼èÆÀ¡¦Êѹ¹¤¹¤ë¤¿¤á¤Ë -»ÈÍѤµ¤ì¤ë¡£ +.SH 説明 +これらのシステムコールは、現在のプロセッサのホスト名を取得・変更するために +使用される。 .BR sethostname () -¤Ï¡¢¥Û¥¹¥È̾¤ò¡¢Ê¸»úÇÛÎó +は、ホスト名を、文字配列 .I name -¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£ -°ú¤­¿ô +で指定された値に設定する。 +引き数 .I len -¤Ë¤Ï¡¢ +には、 .I name -¤Î¥Ð¥¤¥È¿ô¤ò»ØÄꤹ¤ë -(¤½¤Î¤¿¤á¡¢ +のバイト数を指定する +(そのため、 .I name -¤Ç¤Ïʸ»úÎó½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤ÏɬÍפʤ¤)¡£ +では文字列終端の NULL バイトは必要ない)。 .BR gethostname () -¤Ï¡¢NULL ½ªÃ¼¤µ¤ì¤¿¥Û¥¹¥È̾¤ò¡¢ +は、NULL 終端されたホスト名を、 .I len -¥Ð¥¤¥È¤ÎŤµ¤Îʸ»úÇÛÎó +バイトの長さの文字配列 .I name -¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ -NULL ½ªÃ¼¤µ¤ì¤¿¥Û¥¹¥È̾¤¬³ÊǼÀè¤Î¥Ð¥Ã¥Õ¥¡¤è¤ê¤âŤ¤¾ì¹ç¤Ï¡¢ -¥Û¥¹¥È̾¤ÏÀÚ¤êµÍ¤á¤é¤ì¡¢¥¨¥é¡¼¤ÏÊÖ¤µ¤ì¤Ê¤¤ (²¼µ­¤Î¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È)¡£ -POSIX.1-2001 ¤Ç¤Ï¡¢·ë²Ì¤ÎÀÚ¤êµÍ¤á¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¡¢ -ÊÖ¤µ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Ë½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Ï -µ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç 0 ¤¬Ê֤롣¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤¬Ê֤ꡢ +に格納して返す。 +NULL 終端されたホスト名が格納先のバッファよりも長い場合は、 +ホスト名は切り詰められ、エラーは返されない (下記の「注意」の節を参照)。 +POSIX.1-2001 では、結果の切り詰めが発生した場合に、 +返されたバッファに終端の NULL バイトが含まれているかどうかは +規定されていない。 +.SH 返り値 +成功した場合 0 が返る。失敗した場合 \-1 が返り、 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤ˽¾¤Ã¤ÆÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +がエラーの内容に従って設定される。 +.SH エラー .TP .B EFAULT .I name -¤¬ÉÔÀµ¤Ê¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +が不正なアドレスである。 .TP .B EINVAL .I len -¤¬Éé¤Ç¤¢¤ë¡£ -.\" gethostbyname() ¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ç¤Ï¡¢'len' ¤Ï unsigned ·¿¤Ê¤Î¤Ç -.\" ¤³¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤³¤È¤Ï¤Ê¤¤¡£ -.\" ¤½¤ÎÃæ¤Ç¸Æ¤Ð¤ì¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤ÏȯÀ¸¤¹¤ë¤³¤È¤¬¤¢¤ë¡£ +が負である。 +.\" gethostbyname() ラッパー関数では、'len' は unsigned 型なので +.\" このエラーが発生することはない。 +.\" その中で呼ばれるシステムコールでは発生することがある。 .BR sethostname () -¤Ë¤ª¤¤¤Æ +において .I len -¤¬µöÍƤµ¤ì¤¿ºÇÂ祵¥¤¥º¤ò±Û¤¨¤Æ¤¤¤ë¡£ +が許容された最大サイズを越えている。 .TP .B ENAMETOOLONG .RB "(glibc " gethostname () -¤Ç) +で) .I len -¤¬¼ÂºÝ¤Î¥Û¥¹¥È̾¤ÎŤµ¤è¤ê¤â¾®¤µ¤¤ -(glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤è¤êÁ°¤Ç¤Ï¡¢¤³¤Î¾õ¶·¤Ç +が実際のホスト名の長さよりも小さい +(glibc バージョン 2.1 より前では、この状況で .B EINVAL -¤¬»ÈÍѤµ¤ì¤ë)¡£ +が使用される)。 .TP .B EPERM .BR sethostname () -¤Ë¤ª¤¤¤Æ¡¢¸Æ¤Ó½Ð¤·¤¿¿Í¤¬ +において、呼び出した人が .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ -.SH ½àµò -SVr4, 4.4BSD (¤³¤ì¤é¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï 4.2BSD ¤Ç½é¤á¤ÆÅо줷¤¿)¡£ -POSIX.1-2001 ¤Ç¤Ï +ケーパビリティ (capability) を持っていなかった。 +.SH 準拠 +SVr4, 4.4BSD (これらのインタフェースは 4.2BSD で初めて登場した)。 +POSIX.1-2001 では .BR gethostname () -¤Ë¤Ä¤¤¤Æ¤Ïµ¬Äꤷ¤Æ¤¤¤ë¤¬¡¢ +については規定しているが、 .BR sethostname () -¤Ïµ¬Äꤷ¤Æ¤¤¤Ê¤¤¡£ -.SH Ãí°Õ -SUSv2 ¤Ç¤Ï¡Ö¥Û¥¹¥È̾¤¬ 255 ¥Ð¥¤¥È¤ËÀ©¸Â¤µ¤ì¤ë¡×¤³¤È¤òÊݾڤ·¤Æ¤¤¤ë¡£ -POSIX.1-2001 ¤Ç¤Ï¡Ö¥Û¥¹¥È̾ (½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤Ï´Þ¤Þ¤Ê¤¤) ¤¬ +は規定していない。 +.SH 注意 +SUSv2 では「ホスト名が 255 バイトに制限される」ことを保証している。 +POSIX.1-2001 では「ホスト名 (終端の NULL バイトは含まない) が .B HOST_NAME_MAX -¥Ð¥¤¥È¤ËÀ©¸Â¤µ¤ì¤ë¡×¤³¤È¤òÊݾڤ·¤Æ¤¤¤ë¡£ -Linux ¤Ç¤Ï¡¢ +バイトに制限される」ことを保証している。 +Linux では、 .B HOST_NAME_MAX -¤Ï 64 ¤ËÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ -Linux 1.0 °Ê¹ß¤Ç¤Ï¤³¤ì¤¬¾å¸Â¤È¤Ê¤Ã¤Æ¤­¤¿ -(¤â¤Ã¤È¸Å¤¤¥«¡¼¥Í¥ë¤Ç¤Ï 8 ¥Ð¥¤¥È¤Î¾å¸Â¤¬Å¬ÍѤµ¤ì¤Æ¤¤¤¿)¡£ -.SS "glibc ¤Ç¤ÎÃí°Õ" -GNU C ¥é¥¤¥Ö¥é¥ê¤Ï¡¢ +は 64 に定義されており、 +Linux 1.0 以降ではこれが上限となってきた +(もっと古いカーネルでは 8 バイトの上限が適用されていた)。 +.SS "glibc での注意" +GNU C ライブラリは、 .BR gethostname () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÍøÍѤ·¤Æ¤¤¤Ê¤¤¡£¤½¤ÎÂå¤ï¤ê¡¢ +システムコールを利用していない。その代わり、 .BR gethostname () -¤ò¥é¥¤¥Ö¥é¥ê´Ø¿ô¤È¤·¤Æ¼ÂÁõ¤·¤Æ¤ª¤ê¡¢ -¤³¤Î´Ø¿ô¤Ï +をライブラリ関数として実装しており、 +この関数は .BR uname (2) -¤ò¸Æ¤Ó½Ð¤·¡¢ +を呼び出し、 .BR uname (2) -¤¬ÊÖ¤·¤¿ +が返した .I nodename -¥Õ¥£¡¼¥ë¥É (¤ÎºÇÂç +フィールド (の最大 .I len -¥Ð¥¤¥È) ¤ò +バイト) を .I name -¤Ë¥³¥Ô¡¼¤¹¤ë¡£ -¥³¥Ô¡¼¤ò¹Ô¤Ã¤¿ºÝ¤Ë¡¢¤³¤Î´Ø¿ô¤Ï +にコピーする。 +コピーを行った際に、この関数は .I nodename -¤ÎŤµ¤¬ +の長さが .I len -°Ê¾å¤«¤Î³Îǧ¤ò¹Ô¤¤¡¢ +以上かの確認を行い、 .I len -°Ê¾å¤Î¾ì¹ç¤Ë¤Ï \-1 ¤òÊÖ¤·¡¢ +以上の場合には \-1 を返し、 .I errno -¤Ë +に .B ENAMETOOLONG -¤òÀßÄꤹ¤ë¡£ -¤³¤Î¾ì¹ç¡¢ÊÖ¤µ¤ì¤¿ +を設定する。 +この場合、返された .I name -¤Ë¤Ï½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ +には終端の NULL バイトは含まれない。 -¥Ð¡¼¥¸¥ç¥ó 2.2 ¤è¤êÁ°¤Î glibc -.\" ¾¯¤Ê¤¯¤È¤â glibc 2.0 ¤È 2.1¡£¤½¤ì¤è¤ê¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Ï̤³Îǧ -¤Ç¤Ï¡¢ +バージョン 2.2 より前の glibc +.\" 少なくとも glibc 2.0 と 2.1。それより古いバージョンは未確認 +では、 .I nodename -¤ÎŤµ¤¬ +の長さが .I len -°Ê¾å¤Î¾ì¹ç¤Î°·¤¤¤¬°Û¤Ê¤ë; +以上の場合の扱いが異なる; .I len -°Ê¾å¤Î¾ì¹ç¤Ë¤Ï¡¢ +以上の場合には、 .I name -¤Ë¤Ï²¿¤â¥³¥Ô¡¼¤»¤º¡¢´Ø¿ô¤Ï \-1 ¤òÊÖ¤·¡¢ +には何もコピーせず、関数は \-1 を返し、 .I errno -¤Ë +に .B ENAMETOOLONG -¤òÀßÄꤹ¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を設定する。 +.SH 関連項目 .BR getdomainname (2), .BR setdomainname (2), .BR uname (2) diff --git a/release/man2/getitimer.2 b/release/man2/getitimer.2 index 5c3b07d2..72928665 100644 --- a/release/man2/getitimer.2 +++ b/release/man2/getitimer.2 @@ -14,13 +14,13 @@ .\" Updated 2007-10-14, Akihiro MOTOKI .\" Updated 2009-04-13, Akihiro MOTOKI, LDP v3.20 .\" -.\" WORD: timer ¥¿¥¤¥Þ¡¼ +.\" WORD: timer タイマー .\" WORD: jiffies jiffy .\" .TH GETITIMER 2 2009-03-15 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -getitimer, setitimer \- ¥¤¥ó¥¿¡¼¥Ð¥ë¡¦¥¿¥¤¥Þ¡¼¤ÎÃͤò¼èÆÀ¤Þ¤¿¤ÏÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +getitimer, setitimer \- インターバル・タイマーの値を取得または設定する +.SH 書式 .nf .B #include .sp @@ -29,34 +29,34 @@ getitimer, setitimer \- .BI "int setitimer(int " which ", const struct itimerval *" new_value , .BI " struct itimerval *" old_value ); .fi -.SH ÀâÌÀ -¥·¥¹¥Æ¥à¤Ï 1 ¸Ä¤Î¥×¥í¥»¥¹¤Ë¤Ä¤­ 3 ¸Ä¤Î¥¤¥ó¥¿¡¼¥Ð¥ë¡¦¥¿¥¤¥Þ¡¼¤òÄ󶡤¹¤ë¡£ -¤½¤ì¤¾¤ì¤Î¥¿¥¤¥Þ¡¼¤ÏÊÌ¡¹¤Î»þ´ÖÎΰè¤Ç¸º¾¯¤¹¤ë¡£ -¤É¤Î¥¿¥¤¥Þ¡¼¤âËþλ¤¹¤ë¤È¥×¥í¥»¥¹¤Ë¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¡¢ -¥¿¥¤¥Þ¡¼¤Ï (ÀßÄê¤Ë¤è¤Ã¤Æ¤Ï) ºÆ¤Ó³«»Ï¤µ¤ì¤ë¡£ +.SH 説明 +システムは 1 個のプロセスにつき 3 個のインターバル・タイマーを提供する。 +それぞれのタイマーは別々の時間領域で減少する。 +どのタイマーも満了するとプロセスにシグナルが送られ、 +タイマーは (設定によっては) 再び開始される。 .TP 1.5i .B ITIMER_REAL -¼Â»þ´Ö (real time) ¤Ç¸º¾¯¤·¡¢Ëþλ¤¹¤ë¤È +実時間 (real time) で減少し、満了すると .B SIGALRM -¤¬Á÷¤é¤ì¤ë¡£ +が送られる。 .TP .B ITIMER_VIRTUAL -¥×¥í¥»¥¹¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë´Ö¤Î¤ß¸º¾¯¤·¡¢Ëþλ¤¹¤ë¤È +プロセスが実行されている間のみ減少し、満了すると .B SIGVTALRM -¤¬Á÷¤é¤ì¤ë¡£ +が送られる。 .TP .B ITIMER_PROF -¥×¥í¥»¥¹¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤Æ¡¢ -¤«¤Ä¥·¥¹¥Æ¥à¤¬¤½¤Î¥×¥í¥»¥¹¤Î¤¿¤á¤Ë½èÍý¤ò¹Ô¤Ê¤Ã¤Æ¤¤¤ë´Ö¤Ë¸º¾¯¤¹¤ë¡£ -¿¤¯¤Î¾ì¹ç¡¢¤³¤Î¥¿¥¤¥Þ¡¼¤Ï +プロセスが実行されていて、 +かつシステムがそのプロセスのために処理を行なっている間に減少する。 +多くの場合、このタイマーは .B ITIMER_VIRTUAL -¤ÈÁȤ߹ç¤ï¤µ¤ì¤Æ¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¥«¡¼¥Í¥ë¶õ´Ö¤È¥æ¡¼¥¶¡¼¶õ´Ö¤Ç -¤É¤ì¤À¤±¤Î»þ´Ö¤ò²á¤´¤·¤¿¤«¤ò¥×¥í¥Õ¥¡¥¤¥ë¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ -Ëþλ¤¹¤ë¤È +と組み合わされて、アプリケーションがカーネル空間とユーザー空間で +どれだけの時間を過ごしたかをプロファイルするのに使用される。 +満了すると .B SIGPROF -¤¬Á÷¤é¤ì¤ë¡£ +が送られる。 .LP -¥¿¥¤¥Þ¡¼¤ÎÃͤϰʲ¼¤Î¹½Â¤ÂΤˤè¤Ã¤ÆÄêµÁ¤µ¤ì¤ë: +タイマーの値は以下の構造体によって定義される: .PD 0 .in +4n .nf @@ -75,153 +75,153 @@ struct timeval { .PD .LP .BR getitimer () -´Ø¿ô¤Ï¡¢ +関数は、 .I which -¤Ç»ØÄꤵ¤ì¤¿¥¿¥¤¥Þ¡¼ +で指定されたタイマー .RB ( ITIMER_REAL , .BR ITIMER_VIRTUAL , .B ITIMER_PROF -¤Î¤É¤ì¤«) ¤Î¸½ºß¤ÎÀßÄê¤ò¡¢ +のどれか) の現在の設定を、 .I curr_value -¤Ç»ØÄꤵ¤ì¤¿¹½Â¤ÂΤ˳ÊǼ¤¹¤ë¡£ +で指定された構造体に格納する。 .I it_value -Í×ÁǤˤϥ¿¥¤¥Þ¡¼¤Î»Ä¤ê»þ´Ö¤¬ÀßÄꤵ¤ì¤ë¡£¥¿¥¤¥Þ¡¼¤¬¥ª¥Õ¤Î¾ì¹ç¤Ï -¥¼¥í¤¬ÀßÄꤵ¤ì¤ë¡£Æ±ÍÍ¤Ë +要素にはタイマーの残り時間が設定される。タイマーがオフの場合は +ゼロが設定される。同様に .I it_interval -¤Ë¤Ï½é´üÃͤ¬ÀßÄꤵ¤ì¤ë¡£ +には初期値が設定される。 .BR setitimer () -´Ø¿ô¤Ï»ØÄꤵ¤ì¤¿¥¿¥¤¥Þ¡¼¤Ë +関数は指定されたタイマーに .I new_value -¤ÎÃͤòÀßÄꤹ¤ë¡£ +の値を設定する。 .I old_value -¤¬ NULL °Ê³°¤Î¾ì¹ç¡¢¥¿¥¤¥Þ¡¼¤Î¸Å¤¤Ãͤ¬ +が NULL 以外の場合、タイマーの古い値が .I old_value -¤Ë³ÊǼ¤µ¤ì¤ë¡£ +に格納される。 .LP -¥¿¥¤¥Þ¡¼¤Ï +タイマーは .I it_value -¤«¤é¥¼¥í¤Ø¸þ¤±¤Æ¸º¤Ã¤Æ¤¤¤­¡¢¥·¥°¥Ê¥ë¤òÀ¸À®¤·¡¢ +からゼロへ向けて減っていき、シグナルを生成し、 .I it_interval -¤Ë½é´ü²½¤µ¤ì¤ë¡£ -¥¿¥¤¥Þ¡¼¤¬¥¼¥í¤ËÀßÄꤵ¤ì¤¿¾ì¹ç +に初期化される。 +タイマーがゼロに設定された場合 .RI ( it_value -¤¬¥¼¥í¤«¡¢¥¿¥¤¥Þ¡¼¤¬Ëþλ¤·¤¿»þ¤Ë +がゼロか、タイマーが満了した時に .I it_interval -¤¬¥¼¥í¤Î¾ì¹ç) ¤ÏÄä»ß¤¹¤ë¡£ +がゼロの場合) は停止する。 .LP -¥¿¥¤¥Þ¡¼¤Î´ü´Ö¤Ï +タイマーの期間は .I tv_sec -¤È +と .I tv_usec -¤ÎξÊý¤Ë¤è¤ê·èÄꤵ¤ì¤ë¡£ +の両方により決定される。 .LP -Í׵ᤷ¤¿»þ´Ö¤¬¤¯¤ëÁ°¤Ë¥¿¥¤¥Þ¡¼¤¬Ëþλ¤¹¤ë¤³¤È¤Ï¤Ê¤¤¤¬¡¢ -µÕ¤Ë¤¢¤ë (û¤¤) »þ´Ö¤À¤±Ëþ뤬ÃÙ¤ì¤ë¤³¤È¤Ï¤¢¤ë¡£ -¤É¤ì¤À¤±ÃÙ¤ì¤ë¤«¤Ï¥·¥¹¥Æ¥à¤Î»þ´Öʬ²òǽ¤È¥·¥¹¥Æ¥à¤ÎÉé²Ù¤Ë°Í¸¤¹¤ë +要求した時間がくる前にタイマーが満了することはないが、 +逆にある (短い) 時間だけ満了が遅れることはある。 +どれだけ遅れるかはシステムの時間分解能とシステムの負荷に依存する .RB ( time (7) -»²¾È; ⤷¡¢¥Ð¥°¤Î¹à¤â»²¾È¤Î¤³¤È)¡£ -¥¿¥¤¥Þ¡¼¤¬Ëþλ¤¹¤ë¤È¥·¥°¥Ê¥ë¤¬À¸À®¤µ¤ì¡¢¥¿¥¤¥Þ¡¼¤Ï½é´ü²½¤µ¤ì¤ë¡£ -¥×¥í¥»¥¹¤¬¥¢¥¯¥Æ¥£¥Ö¤Ê»þ +参照; 但し、バグの項も参照のこと)。 +タイマーが満了するとシグナルが生成され、タイマーは初期化される。 +プロセスがアクティブな時 .RB ( ITIMER_VIRTUAL -¤Î¾ì¹ç¤Ë¤Ï¾ï¤Ë¤½¤¦¤Ç¤¢¤ë) ¤Ë¥¿¥¤¥Þ¡¼¤¬Ëþλ¤·¤¿¾ì¹ç¡¢À¸À®¤µ¤ì¤¿¥·¥°¥Ê¥ë¤Ï -¤¹¤°¤ËÇÛÁ÷¤µ¤ì¤ë¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢¥·¥¹¥Æ¥à¤ÎÉé²Ù¤Ë¤è¤ê¾¯¤·¤Î»þ´Ö¤À¤± -ÃÙ¤ì¤ÆÇÛÁ÷¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï¥¼¥í¤¬Ê֤롣¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬Ê֤ꡢ +の場合には常にそうである) にタイマーが満了した場合、生成されたシグナルは +すぐに配送される。それ以外の場合は、システムの負荷により少しの時間だけ +遅れて配送される。 +.SH 返り値 +成功した場合はゼロが返る。エラーの場合は \-1 が返り、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EFAULT .IR new_value , .IR old_value , .I curr_value -¤¬Í­¸ú¤Ê¥Ý¥¤¥ó¥¿¡¼¤Ç¤Ê¤¤¡£ +が有効なポインターでない。 .TP .B EINVAL .I which -¤¬ +が .BR ITIMER_REAL , .BR ITIMER_VIRTUAL , .B ITIMER_PROF -¤Î¤É¤ì¤Ç¤â¤Ê¤¤¡£ -¤Þ¤¿¤Ï (Linux 2.6.22 °Ê¹ß¤Ç) +のどれでもない。 +または (Linux 2.6.22 以降で) .I new_value -¤Ç»ØÄꤵ¤ì¤¿¹½Â¤ÂΤΠ+で指定された構造体の .I tv_usec -¥Õ¥£¡¼¥ë¥É¤Î°ì¤Ä¤¬ 0 °Ê¾å 999999 °Ê²¼¤ÎÈϰϤËÆþ¤é¤Ê¤¤ÃͤǤ¢¤ë¡£ -.SH ½àµò -POSIX.1-2001, SVr4, 4.4BSD (¤³¤Î¥³¡¼¥ë¤Ï 4.2BSD ¤Ç»Ï¤á¤Æ¸½¤ï¤ì¤¿). -POSIX.1-2008 ¤Ç¤Ï¡¢ +フィールドの一つが 0 以上 999999 以下の範囲に入らない値である。 +.SH 準拠 +POSIX.1-2001, SVr4, 4.4BSD (このコールは 4.2BSD で始めて現われた). +POSIX.1-2008 では、 .BR getitimer () -¤È +と .BR setitimer () -¤ÏÇÑ»ßͽÄê¤È¤µ¤ì¤Æ¤ª¤ê¡¢ -Âå¤ï¤ê¤Ë POSIX ¥¿¥¤¥Þ¡¼ API +は廃止予定とされており、 +代わりに POSIX タイマー API .RB ( timer_gettime (2), .BR timer_settime (2) -¤Ê¤É) ¤ò»È¤¦¤³¤È¤¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ +など) を使うことが推奨されている。 +.SH 注意 .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢ -¿Æ¥×¥í¥»¥¹¤Î¥¤¥ó¥¿¡¼¥Ð¥ë¡¦¥¿¥¤¥Þ¡¼¤ò·Ñ¾µ¤·¤Ê¤¤¡£ +で作成された子プロセスは、 +親プロセスのインターバル・タイマーを継承しない。 .BR execve (2) -¤ÎÁ°¸å¤Ç¤Ï¥¤¥ó¥¿¡¼¥Ð¥ë¡¦¥¿¥¤¥Þ¡¼¤ÏÊݸ¤µ¤ì¤ë¡£ +の前後ではインターバル・タイマーは保存される。 -POSIX.1 ¤Ç¤Ï¡¢ +POSIX.1 では、 .BR setitimer () -¤È¡¢ +と、 .BR alarm (2), .BR sleep (3), .BR usleep (3) -¤È¤¤¤¦ 3 ¤Ä¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤È¤ÎÁê¸ß¤Î±Æ¶Á¤Ë¤Ä¤¤¤Æ¤Ïµ¬Äꤷ¤Æ¤¤¤Ê¤¤¡£ -.SH ¥Ð¥° -¥·¥°¥Ê¥ë¤ÎÀ¸À®¤ÈÇÛÁ÷¤ÏÊ̸ĤΤâ¤Î¤Ç¤¢¤ê¡¢ -Á°½Ò¤Î¥·¥°¥Ê¥ë¤Î¤½¤ì¤¾¤ì¤Ë¤Ä¤¤¤Æ°ì¤Ä¤À¤±¤¬¥×¥í¥»¥¹¤Î¤¿¤á¤Ë -ÂÔµ¡¤¹¤ë¡£ -Èó¾ï¤Ë½Å¤¤Éé²Ù¤Î²¼¤Ç¤Ï¡¢ +という 3 つのインタフェースとの相互の影響については規定していない。 +.SH バグ +シグナルの生成と配送は別個のものであり、 +前述のシグナルのそれぞれについて一つだけがプロセスのために +待機する。 +非常に重い負荷の下では、 .B ITIMER_REAL -¥¿¥¤¥Þ¡¼¤Ç¤Ï¡¢»þ´ÖÀÚ¤ì¤Ë¤è¤êÀ¸À®¤µ¤ì¤¿°ì¤ÄÁ°¤Î¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ëÁ°¤Ë¡¢ -¼¡¤Î»þ´ÖÀڤ줬µ¯¤³¤ë¾ì¹ç¤¬¤¢¤ë¡£ -¤½¤Î¤è¤¦¤Ê¾ì¹ç¡¢ 2 ¸Ä¤á¤Î¥¤¥Ù¥ó¥È¤ËÂФ¹¤ë¥·¥°¥Ê¥ë¤Ï¼º¤ï¤ì¤Æ¤·¤Þ¤¦¡£ +タイマーでは、時間切れにより生成された一つ前のシグナルが配送される前に、 +次の時間切れが起こる場合がある。 +そのような場合、 2 個めのイベントに対するシグナルは失われてしまう。 -¥Ð¡¼¥¸¥ç¥ó 2.6.16 ¤è¤êÁ°¤Î Linux ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -¥¿¥¤¥Þ¡¼¤ÎÃÍ¤Ï jiffy ¤Çɽ¸½¤µ¤ì¤ë¡£ -Í׵᤬ jiffy ɽ¸½¤Ç +バージョン 2.6.16 より前の Linux カーネルでは、 +タイマーの値は jiffy で表現される。 +要求が jiffy 表現で .RI ( include/linux/jiffies.h -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë) +で定義されている) .B MAX_SEC_IN_JIFFIES -¤ò±Û¤¨¤ëÃͤò¥¿¥¤¥Þ¡¼¤ËÀßÄꤷ¤è¤¦¤È¤¹¤ë¤â¤Î¤Î¾ì¹ç¡¢ -¥¿¥¤¥Þ¡¼¤Ï°ÅÌۤˤ³¤Î¾å¸ÂÃͤËÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ -Linux/i386 ¤Î¾ì¹ç (Linux 2.6.13 °Ê¹ß¤Ç¤Ï jiffy ¤Ï 0.004 ÉÃ) ¤Î¾ì¹ç¡¢ -¤³¤ì¤Ï¥¿¥¤¥Þ¡¼¤Î¾å¸ÂÃͤ¬¤ª¤è¤½ 99.42 Æü¤Ë¤Ê¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -Linux 2.6.16 °Ê¹ß¤Ç¤Ï¡¢¥«¡¼¥Í¥ë¤Ï»þ´Ö¤Ë´Ø¤¹¤ëÆâÉôɽ¸½¤È¤·¤Æ -°Û¤Ê¤ëɽ¸½¤ò»È¤¦¤è¤¦¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢¤³¤Î¾å¸Â¤Ï¤Ê¤¯¤Ê¤Ã¤¿¡£ +を越える値をタイマーに設定しようとするものの場合、 +タイマーは暗黙にこの上限値に切り詰められる。 +Linux/i386 の場合 (Linux 2.6.13 以降では jiffy は 0.004 秒) の場合、 +これはタイマーの上限値がおよそ 99.42 日になることを意味する。 +Linux 2.6.16 以降では、カーネルは時間に関する内部表現として +異なる表現を使うようになっており、この上限はなくなった。 -(i386 ¤ò´Þ¤à) ¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -¥Ð¡¼¥¸¥ç¥ó 2.6.12 °ÊÁ°¤Î Linux ¥«¡¼¥Í¥ë¤Ï -¤¢¤ë¼ï¤Î¾õ¶·¤Ç¤Ï 1 jiffy Á᤯¥¿¥¤¥Þ¡¼¤¬½ªÎ»¤·¤Æ¤·¤Þ¤¦¤È¤¤¤¦¥Ð¥°¤¬¤¢¤Ã¤¿¡£ -¤³¤Î¥Ð¥°¤Ï¥«¡¼¥Í¥ë 2.6.12 ¤Ç½¤Àµ¤µ¤ì¤¿¡£ +(i386 を含む) いくつかのシステムでは、 +バージョン 2.6.12 以前の Linux カーネルは +ある種の状況では 1 jiffy 早くタイマーが終了してしまうというバグがあった。 +このバグはカーネル 2.6.12 で修正された。 .\" 4 Jul 2005: It looks like this bug may remain in 2.4.x. .\" http://lkml.org/lkml/2005/7/1/165 -POSIX.1-2001 ¤Ç¤Ï +POSIX.1-2001 では .BR setitimer () -¤Ï +は .I tv_usec -¤ÎÃͤ¬ 0 ¤«¤é 999999 ¤ÎÈϰϳ°¤Ç¤¢¤ë¾ì¹ç¤Ë¤Ï¼ºÇÔ¤¹¤ë¤Ù¤­¤À¤È¤·¤Æ¤¤¤ë¡£ -¤·¤«¤·¡¢2.6.21 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Î Linux ¤Ç¤Ï¥¨¥é¡¼¤Ë¤Ê¤é¤º¡¢ -Âбþ¤¹¤ëÉÿô¤Îʬ¤À¤±¤½¤Î¥¿¥¤¥Þ¡¼¤ÎÉäÎÃͤ¬°ÅÌÛ¤ËÄ´À°¤µ¤ì¤ë¡£ -¥«¡¼¥Í¥ë 2.6.22 °Ê¹ß¤Ç¤Ï¡¢¤³¤Îɸ½àÈó½àµò¤ÎÆ°ºî¤Ï½¤Àµ¤µ¤ì¡¢ +の値が 0 から 999999 の範囲外である場合には失敗するべきだとしている。 +しかし、2.6.21 以前のカーネルの Linux ではエラーにならず、 +対応する秒数の分だけそのタイマーの秒の値が暗黙に調整される。 +カーネル 2.6.22 以降では、この標準非準拠の動作は修正され、 .I tv_usec -¤ÎÃͤ¬ÉÔŬÀڤʾì¹ç¤Ë¤Ï +の値が不適切な場合には .B EINVAL -¥¨¥é¡¼¤È¤Ê¤ë¡£ +エラーとなる。 .\" Bugzilla report 25 Apr 2006: .\" http://bugzilla.kernel.org/show_bug.cgi?id=6443 .\" "setitimer() should reject noncanonical arguments" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR gettimeofday (2), .BR sigaction (2), .BR signal (2), diff --git a/release/man2/getpagesize.2 b/release/man2/getpagesize.2 index 0d3da814..8d818bbf 100644 --- a/release/man2/getpagesize.2 +++ b/release/man2/getpagesize.2 @@ -26,21 +26,21 @@ .\" Updated 2003-07-03, Akihiro Motoki .\" Updated 2007-01-07, Akihiro MOTOKI, catch up to LDP v2.43 .\" -.\"WORD: page ¥Ú¡¼¥¸ -.\"WORD: legacy ²áµî¤Î°äʪ +.\"WORD: page ページ +.\"WORD: legacy 過去の遺物 .\" .TH GETPAGESIZE 2 2010-09-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -getpagesize \- ¥á¥â¥ê¤Î¥Ú¡¼¥¸¡¦¥µ¥¤¥º¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +getpagesize \- メモリのページ・サイズを取得する +.SH 書式 .B #include .sp .B int getpagesize(void); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR getpagesize (): @@ -48,28 +48,28 @@ glibc .RS 4 .PD 0 .TP 4 -glibc 2.12 °Ê¹ß: +glibc 2.12 以降: .nf _BSD_SOURCE || !(_POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600) .fi .TP 4 -glibc 2.12 ¤è¤êÁ°: +glibc 2.12 より前: _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .PD .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR getpagesize () -´Ø¿ô¤Ï¥Ú¡¼¥¸¤ÎÂ礭¤µ¤ò¥Ð¥¤¥È¿ô¤ÇÊÖ¤¹¡£¤³¤³¤Ç¤Î¡Ö¥Ú¡¼¥¸¡×¤Ï +関数はページの大きさをバイト数で返す。ここでの「ページ」は .BR mmap (2) -¤ÎÀâÌÀ¤ÎÃæ¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë¤â¤Î¤Ç¡¢ +の説明の中で使用されているもので、 .BR mmap () -¤Ï¤³¤Î¥Ú¡¼¥¸¥µ¥¤¥º¤Îñ°Ì¤Ç¥Õ¥¡¥¤¥ë¤ò¥Þ¥Ã¥×¤¹¤ë¡£ +はこのページサイズの単位でファイルをマップする。 .BR mmap (2) -¤¬»ÈÍѤ¹¤ë¥Ú¡¼¥¸¥µ¥¤¥º¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤·¤ÆÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ +が使用するページサイズは以下のようにして知ることができる。 .in +4n .nf @@ -78,11 +78,11 @@ long sz = sysconf(_SC_PAGESIZE); .fi .in -(¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¤Ç¤Ï +(ほとんどのシステムでは .B _SC_PAGESIZE -¤ÎƱµÁ¸ì¤È¤·¤Æ +の同義語として .B _SC_PAGE_SIZE -¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë)¡¢¤â¤·¤¯¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë: +を使用することができる)、もしくは以下のようにする: .in +4n .nf @@ -90,38 +90,38 @@ long sz = sysconf(_SC_PAGESIZE); int sz = getpagesize(); .fi .in -.\" .SH Îò»Ë -.\" ¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï 4.2BSD ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +.\" .SH 歴史 +.\" このシステムコールは 4.2BSD で初めて登場した。 +.SH 準拠 SVr4, 4.4BSD, SUSv2. -SUSv2 ¤Ç¤Ï +SUSv2 では .BR getpagesize () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡Ö²áµî¤Î°äʪ (LEGACY)¡×¤È¤µ¤ì¤Æ¤ª¤ê¡¢ -POSIX.1-2001 ¤«¤é¤Ï³°¤µ¤ì¤Æ¤¤¤ë¡£ -HP-UX ¤Ë¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¸ºß¤·¤Ê¤¤¡£ -°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÂå¤ï¤ê¤Ë +システムコールは「過去の遺物 (LEGACY)」とされており、 +POSIX.1-2001 からは外されている。 +HP-UX にはこのシステムコールは存在しない。 +移植性が必要なアプリケーションでは、このシステムコールの代わりに .I sysconf(_SC_PAGESIZE) -¤òÍøÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ -.SH Ãí°Õ +を利用すべきである。 +.SH 注意 .BR getpagesize () -¤¬ Linux ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¤·¤Æ¸ºß¤¹¤ë¤«¤É¤¦¤«¤Ï¡¢¤½¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë -°Í¸¤·¤Æ¤¤¤ë¡£ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¤·¤Æ¸ºß¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢¥«¡¼¥Í¥ë¥·¥ó¥Ü¥ë¤Î +が Linux のシステムコールとして存在するかどうかは、そのアーキテクチャに +依存している。 +システムコールとして存在する場合には、カーネルシンボルの .B PAGE_SIZE -¤òÊÖ¤¹¡£ +を返す。 .B PAGE_SIZE -¤ÎÃͤϡ¢¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤È¥Þ¥·¥ó¥â¥Ç¥ë¤Ë°Í¸¤¹¤ë¡£ -°ìÈ̤ˡ¢¥Ð¥¤¥Ê¥ê¤Ï¡¢¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤´¤È¤Ë1¤Ä¤Î¥Ð¥¤¥Ê¥êÇÛÉۤǺѤޤ»¤ë¤¿¤á¤Ë¡¢ -¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤Ï°Í¸¤·¤Æ¤¤¤ë¤¬¥Þ¥·¥ó¥â¥Ç¥ë¤Ë¤Ï°Í¸¤·¤Æ¤¤¤Ê¤¤¡£ -¤Ä¤Þ¤ê¡¢¥æ¡¼¥¶¥×¥í¥°¥é¥à¤Ï¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤«¤é +の値は、アーキテクチャとマシンモデルに依存する。 +一般に、バイナリは、アーキテクチャごとに1つのバイナリ配布で済ませるために、 +アーキテクチャには依存しているがマシンモデルには依存していない。 +つまり、ユーザプログラムはコンパイル時にヘッダーファイルから .B PAGE_SIZE -¤ò¸«¤Ä¤±¤Æ»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¾¯¤Ê¤¯¤È¤â¡¢¥Þ¥·¥ó¥â¥Ç¥ë¤Ë¤Ä¤¤¤Æ¤â°Í¸À­¤¬Â¸ºß¤¹¤ë (sun4 ¤Î¤è¤¦¤Ê) -¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤ª¤¤¤Æ¤ÏËÜʪ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ë¡£ -¾°¡¢ libc4, libc5, glibc 2.0 ¤Ç¤Ï¡¢ +を見つけて使用すべきではない。 +少なくとも、マシンモデルについても依存性が存在する (sun4 のような) +アーキテクチャにおいては本物のシステムコールを使用する必要がある。 +尚、 libc4, libc5, glibc 2.0 では、 .BR getpagesize () -¤¬¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò»ÈÍѤ»¤º¡¢¸ÇÄê¤ÎÃͤòÊÖ¤¹¤¿¤á¤Ë¡¢¤³¤ÎÊýË¡¤Ï -¼ºÇÔ¤¹¤ë¡£glibc 2.1 ¤Ç¤ÏÂç¾æÉפǤ¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +がシステム・コールを使用せず、固定の値を返すために、この方法は +失敗する。glibc 2.1 では大丈夫である。 +.SH 関連項目 .BR mmap (2), .BR sysconf (3) diff --git a/release/man2/getpeername.2 b/release/man2/getpeername.2 index 81184e60..417361be 100644 --- a/release/man2/getpeername.2 +++ b/release/man2/getpeername.2 @@ -43,90 +43,90 @@ .\" by HANATAKA Shinya .\" Updated Tue Nov 26 JST 2002 by Kentaro Shirakata .\" -.\"WORD: connect Àܳ -.\"WORD: peer Áê¼ê -.\"WORD: socket ¥½¥±¥Ã¥È -.\"WORD: buffer ¥Ð¥Ã¥Õ¥¡ -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: argument °ú¤­¿ô +.\"WORD: connect 接続 +.\"WORD: peer 相手 +.\"WORD: socket ソケット +.\"WORD: buffer バッファ +.\"WORD: descriptor ディスクリプタ +.\"WORD: argument 引き数 .\" .TH GETPEERNAME 2 2008-12-03 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -getpeername \- Àܳ¤·¤Æ¤¤¤ëÁê¼ê¥½¥±¥Ã¥È¤Î̾Á°¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +getpeername \- 接続している相手ソケットの名前を取得する +.SH 書式 .B #include .sp .BI "int getpeername(int " sockfd ", struct sockaddr *" addr \ ", socklen_t *" addrlen ); -.SH ÀâÌÀ +.SH 説明 .BR getpeername () -¤Ï¡¢¥½¥±¥Ã¥È(socket) +は、ソケット(socket) .I sockfd -¤ËÀܳ¤·¤Æ¤¤¤ëÁê¼ê¤Î¥¢¥É¥ì¥¹¤ò¡¢ +に接続している相手のアドレスを、 .I addr -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ +が指すバッファに格納して返す。 .I addrlen -°ú¤­¿ô¤Ï¡¢ +引き数は、 .I addr -¤¬»Ø¤·¤Æ¤¤¤ëÎΰè¤Î¥µ¥¤¥º¤Ë½é´ü²½¤·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -´Ø¿ô¤¬ÊÖ¤ë»þ¤Ë¤Ï¡¢ +が指している領域のサイズに初期化しておかなければならない。 +関数が返る時には、 .I addrlen -¤Ë¤Ï¼ÂºÝ¤ËÊÖ¤µ¤ì¤¿Ì¾Á°¤Î¥µ¥¤¥º¤¬ (¥Ð¥¤¥Èñ°Ì¤Ç) ³ÊǼ¤µ¤ì¤ë¡£ -Ä󶡤µ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤¬¾®¤µ¤¹¤®¤¿¾ì¹ç¤Ë¤Ï¡¢Ì¾Á°¤ÏÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ +には実際に返された名前のサイズが (バイト単位で) 格納される。 +提供されたバッファが小さすぎた場合には、名前は切り詰められる。 -ÅϤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤¬¾®¤µ²á¤®¤¿¾ì¹ç¤Ï¡¢ÊÖ¤µ¤ì¤ë¥¢¥É¥ì¥¹¤ÎËöÈø¤¬ÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ -¤³¤Î¾ì¹ç¤Ë¤Ï¡¢ +渡されたバッファが小さ過ぎた場合は、返されるアドレスの末尾が切り詰められる。 +この場合には、 .I addrlen -¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·»þ¤Ë»ØÄꤵ¤ì¤¿Ãͤè¤ê¤âÂ礭¤ÊÃͤ¬³ÊǼ¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +には、呼び出し時に指定された値よりも大きな値が格納される。 +.SH 返り値 +成功した場合は 0 が返される。エラーの場合は \-1 が返され、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切に設定する。 +.SH エラー .TP .B EBADF -°ú¤­¿ô +引き数 .I sockfd -¤¬Í­¸ú¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なディスクリプタでない。 .TP .B EFAULT .I addr -°ú¤­¿ô¤Î»Ø¤·¤Æ¤¤¤ë¥á¥â¥ê¤¬Í­¸ú¤Ê¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Î -°ìÉô¤Ç¤Ê¤¤¡£ +引き数の指しているメモリが有効なプロセスのアドレス空間の +一部でない。 .TP .B EINVAL .I addrlen -¤¬ÉÔÀµ¤Ç¤¢¤ë (Î㤨¤Ð¡¢Éé¤Ç¾ì¹ç¤Ê¤É)¡£ +が不正である (例えば、負で場合など)。 .TP .B ENOBUFS -¤³¤ÎÁàºî¤ò¹Ô¤Ê¤¦¤Î¤Ë½½Ê¬¤Ê»ñ¸»¤¬¥·¥¹¥Æ¥à¤Ë¸ºß¤·¤Ê¤¤¡£ +この操作を行なうのに十分な資源がシステムに存在しない。 .TP .B ENOTCONN -¥½¥±¥Ã¥È¤¬Àܳ¤·¤Æ¤¤¤Ê¤¤¡£ +ソケットが接続していない。 .TP .B ENOTSOCK -°ú¤­¿ô +引き数 .I sockfd -¤¬¥½¥±¥Ã¥È¤Ç¤Ê¤¯¤Æ¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ -.SH ½àµò +がソケットでなくてファイルである。 +.SH 準拠 SVr4, 4.4BSD .RB ( getpeername () -´Ø¿ô¤Ï 4.2BSD ¤ÇÅо줷¤¿), POSIX.1-2001. -.SH Ãí°Õ +関数は 4.2BSD で登場した), POSIX.1-2001. +.SH 注意 .BR getpeername () -¤Î»°ÈÖÌܤΰú¤­¿ô¤Ï¼ÂºÝ¤Ë¤Ï +の三番目の引き数は実際には .I `int *' -¤Ç¤¢¤ë (4.x BSD, libc4, libc5 ¤Ç¤Ï -¤³¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë)¡£ -POSIX ¤Ç¤Ïäþ;¶ÊÀÞ¤ò·Ð¤Æ¸½ºß¤Î +である (4.x BSD, libc4, libc5 では +このようになっている)。 +POSIX では紆余曲折を経て現在の .I socklen_t -¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢ -glibc ¤Ç¤â +になっており、 +glibc でも .I socklen_t -¤ò»È¤Ã¤Æ¤¤¤ë¡£ +を使っている。 .BR accept (2) -¤â»²¾È¤Î¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +も参照のこと。 +.SH 関連項目 .BR accept (2), .BR bind (2), .BR getsockname (2), diff --git a/release/man2/getpid.2 b/release/man2/getpid.2 index 46427ddc..bf89067b 100644 --- a/release/man2/getpid.2 +++ b/release/man2/getpid.2 @@ -29,9 +29,9 @@ .\" Updated 2008-10-03, Akihiro MOTOKI, LDP v3.10 .\" .TH GETPID 2 2008-09-23 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -getpid, getppid \- ¥×¥í¥»¥¹ ID ¤òÆÀ¤ë -.SH ½ñ¼° +.SH 名前 +getpid, getppid \- プロセス ID を得る +.SH 書式 .B #include .br .B #include @@ -39,38 +39,38 @@ getpid, getppid \- .B pid_t getpid(void); .br .B pid_t getppid(void); -.SH ÀâÌÀ +.SH 説明 .BR getpid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤òÊÖ¤¹¡£(¥Æ¥ó¥Ý¥é¥êÍѤΥե¡¥¤¥ë̾¤È¤·¤Æ -¾¤È½Å¤Ê¤é¤Ê¤¤Ì¾Á°¤òÀ¸À®¤¹¤ë¥ë¡¼¥Á¥ó¤Ç¤·¤Ð¤·¤Ð»ÈÍѤµ¤ì¤ë¡£) +は呼び出し元のプロセスのプロセス ID を返す。(テンポラリ用のファイル名として +他と重ならない名前を生成するルーチンでしばしば使用される。) .BR getppid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¿Æ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¾ï¤ËÀ®¸ù¤¹¤ë¡£ -.SH ½àµò +は呼び出し元のプロセスの親プロセスのプロセス ID を返す。 +.SH エラー +これらの関数は常に成功する。 +.SH 準拠 POSIX.1-2001, 4.3BSD, SVr4. -.SH Ãí°Õ -glibc ¥Ð¡¼¥¸¥ç¥ó 2.3.4 °Ê¹ß¤Ç¤Ï¡¢ -glibc ¤Î +.SH 注意 +glibc バージョン 2.3.4 以降では、 +glibc の .BR getpid () -¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï PID ¤ò¥­¥ã¥Ã¥·¥å¤¹¤ë¡£ -¤³¤ì¤Ï¡¢¥×¥í¥»¥¹¤¬·«¤êÊÖ¤· +のラッパー関数は PID をキャッシュする。 +これは、プロセスが繰り返し .BR getpid () -¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¤Ë¤½¤ÎÅÔÅÙ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¸Æ¤Ö¤Î¤òÈò¤±¤ë¤¿¤á¤Ç¤¢¤ë¡£ -Ä̾ï¤Ï¡¢¤³¤Î¥­¥ã¥Ã¥·¥å½èÍý¤¬¸«¤¨¤ë¤³¤È¤Ï¤Ê¤¤¤¬¡¢ -¥­¥ã¥Ã¥·¥å½èÍý¤¬Àµ¤·¤¯Æ¯¤¯¤¿¤á¤Ë¤Ï +を呼び出した場合にその都度システムコールを呼ぶのを避けるためである。 +通常は、このキャッシュ処理が見えることはないが、 +キャッシュ処理が正しく働くためには .BR fork (2), .BR vfork (2), .BR clone (2) -¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ç¤Î¥µ¥Ý¡¼¥È¤¬É¬ÍפǤ¢¤ë¡£ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¸Æ¤Ó½Ð¤¹ºÝ¤Ë¡¢ -glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤ò·Ðͳ¤»¤º¤Ë +のラッパー関数でのサポートが必要である。 +アプリケーションがこれらのシステムコールを呼び出す際に、 +glibc のラッパー関数を経由せずに .BR syscall (2) -¤ò»È¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢»Ò¥×¥í¥»¥¹¤Ç +を使った場合には、子プロセスで .BR getpid () -¤ò¸Æ¤Ó½Ð¤¹¤È´Ö°ã¤Ã¤¿Ãͤ¬Ê֤뤳¤È¤À¤í¤¦ -(Àµ³Î¤Ë¤¤¤¦¤È¡¢¿Æ¥×¥í¥»¥¹¤Î PID ¤¬ÊÖ¤µ¤ì¤ë)¡£ +を呼び出すと間違った値が返ることだろう +(正確にいうと、親プロセスの PID が返される)。 .\" The following program demonstrates this "feature": .\" .\" #define _GNU_SOURCE @@ -97,12 +97,12 @@ glibc .\" wait(NULL); .\"} .BR clone (2) -¤ò glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô·Ðͳ¤Çµ¯Æ°¤·¤¿ºÝ¤Ë¤â +を glibc のラッパー関数経由で起動した際にも .BR getpid () -¤¬´Ö°ã¤Ã¤¿ÃͤòÊÖ¤¹¾ì¹ç¤¬¤¢¤ê¡¢¤³¤ì¤Ë´Ø¤¹¤ëµÄÏÀ¤Ï +が間違った値を返す場合があり、これに関する議論は .BR clone (2) -¤â»²¾È¤·¤Æ¤Û¤·¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +も参照してほしい。 +.SH 関連項目 .BR clone (2), .BR fork (2), .BR kill (2), diff --git a/release/man2/getpriority.2 b/release/man2/getpriority.2 index 05f0364b..f4daf020 100644 --- a/release/man2/getpriority.2 +++ b/release/man2/getpriority.2 @@ -54,20 +54,20 @@ .\" Updated 2005-10-07, Akihiro MOTOKI .\" Updated 2008-08-04, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: scheduling ¥¹¥±¥¸¥å¡¼¥ê¥ó¥° -.\"WORD: piority Í¥ÀèÅÙ -.\"WORD: call ¥³¡¼¥ë +.\"WORD: scheduling スケジューリング +.\"WORD: piority 優先度 +.\"WORD: call コール .\"WORD: user-ID UID -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: user ¥æ¡¼¥¶¡¼ -.\"WORD: super user ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ -.\"WORD: effective user-ID ¼Â¸úUID -.\"WORD: real user-ID ¼ÂUID +.\"WORD: process プロセス +.\"WORD: user ユーザー +.\"WORD: super user スーパー・ユーザー +.\"WORD: effective user-ID 実効UID +.\"WORD: real user-ID 実UID .\" .TH GETPRIORITY 2 2008-05-29 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -getpriority, setpriority \- ¥×¥í¥°¥é¥à¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ÎÍ¥ÀèÅÙ¤ò¼èÆÀ/ÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +getpriority, setpriority \- プログラムのスケジューリングの優先度を取得/設定する +.SH 書式 .B #include .br .B #include @@ -75,165 +75,165 @@ getpriority, setpriority \- .BI "int getpriority(int " which ", int " who ); .br .BI "int setpriority(int " which ", int " who ", int " prio ); -.SH ÀâÌÀ -¥·¥¹¥Æ¥à¥³¡¼¥ë +.SH 説明 +システムコール .BR getpriority () -¤ä +や .BR setpriority () -¤Ï¡¢ +は、 .I which -¤È +と .I who -¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¡¢¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¡¢¥æ¡¼¥¶¡¼¤Î -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Í¥ÀèÅÙ (scheduling priority) ¤Î -¼èÆÀ¤äÀßÄê¤ò¤½¤ì¤¾¤ì¹Ô¤¦¡£ +で指定されたプロセス、プロセス・グループ、ユーザーの +スケジューリング優先度 (scheduling priority) の +取得や設定をそれぞれ行う。 .I which -¤ÎÃÍ¤Ï +の値は .BR PRIO_PROCESS , .BR PRIO_PGRP , .BR PRIO_USER , -¤Î¤É¤ì¤«°ì¤Ä¤Ç¡¢ +のどれか一つで、 .I who -¤Ï +は .I which -¤Ë±þ¤¸¤Æ²ò¼á¤µ¤ì¤ë +に応じて解釈される .RB ( PRIO_PROCESS -¤À¤È¥×¥í¥»¥¹¼±Ê̻ҡ¢ +だとプロセス識別子、 .B PRIO_PGRP -¤À¤È¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¼±Ê̻ҡ¢ +だとプロセス・グループ識別子、 .B PRIO_USER -¤À¤È UID (¥æ¡¼¥¶ID) ¤È²ò¼á¤µ¤ì¤ë)¡£ +だと UID (ユーザID) と解釈される)。 .I who -¤¬¥¼¥í¤Ê¤é¤Ð¡¢(¤½¤ì¤¾¤ì)¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¡¢ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¡¢ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼ÂUID ¤ò°ÕÌ£¤¹¤ë¡£ +がゼロならば、(それぞれ)呼び出したプロセス、 +呼び出したプロセスのプロセス・グループ、 +呼び出したプロセスの実UID を意味する。 .I prio -¤Ï \-20 ¤«¤é 19 ¤ÎÈϰϤÎÃÍ¤Ç (⤷°Ê²¼¤ÎÃí°Õ¤Î¹à¤ò»²¾È¤Î¤³¤È)¡¢ -¥Ç¥Õ¥©¥ë¥È¤ÎÍ¥ÀèÅÙ¤Ï 0 ¤Ç¤¢¤ë; -¾®¤µ¤Ê¿ô»ú¤Û¤É¡¢Í­Íø¤Ê¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤È¤Ê¤ë¡£ +は \-20 から 19 の範囲の値で (但し以下の注意の項を参照のこと)、 +デフォルトの優先度は 0 である; +小さな数字ほど、有利なスケジューリングとなる。 .BR getpriority () -¥³¡¼¥ë¤Ï»ØÄꤷ¤¿¥×¥í¥»¥¹¤ÎÃæ¤ÎºÇ¤â¹â¤¤Í¥ÀèÅÙ (¿ôÃÍŪ¤Ë¤ÏºÇ¾®¤ÎÃÍ) ¤òÊÖ¤¹¡£ +コールは指定したプロセスの中の最も高い優先度 (数値的には最小の値) を返す。 .BR setpriority () -¥³¡¼¥ë¤Ï»ØÄꤷ¤¿¥×¥í¥»¥¹Á´¤Æ¤ÎÍ¥ÀèÅÙ¤ò»ØÄꤷ¤¿ÃͤËÀßÄꤹ¤ë¡£ -Í¥ÀèÅÙ¤òº£¤è¤ê¾®¤µ¤¤ÃͤËÀßÄê¤Ç¤­¤ë¤Î¤Ï¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼¤À¤±¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +コールは指定したプロセス全ての優先度を指定した値に設定する。 +優先度を今より小さい値に設定できるのはスーパー・ユーザーだけである。 +.SH 返り値 .BR getpriority () -¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤â \-1 ¤ÎÃͤòÊÖ¤¹²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç¡¢ -¸Æ¤Ó½Ð¤·¤ÎÁ°¤Ë³°ÉôÊÑ¿ô¤Î +は成功した場合にも \-1 の値を返す可能性があるので、 +呼び出しの前に外部変数の .I errno -¤ò¥¯¥ê¥¢¤·¡¢¸Æ¤Ó½Ð¤·¤Î¸å¤ËÊÖ¤êÃͤΠ\-1 ¤¬ÀµÅö¤ÊÃͤ« -¥¨¥é¡¼¤«¤òȽÊ̤¹¤ëɬÍפ¬¤¢¤ë¡£ +をクリアし、呼び出しの後に返り値の \-1 が正当な値か +エラーかを判別する必要がある。 .BR setpriority () -¥³¡¼¥ë¤Ï¥¨¥é¡¼¤¬¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤·¡¢¥¨¥é¡¼¤¬¤¢¤ì¤Ð \-1 ¤òÊÖ¤¹¡£ +コールはエラーがなければ 0 を返し、エラーがあれば \-1 を返す。 -.SH ¥¨¥é¡¼ +.SH エラー .TP .B EINVAL .I which -¤¬ +が .BR PRIO_PROCESS , .BR PRIO_PGRP , .B PRIO_USER -¤Î¤¤¤º¤ì¤Ç¤â¤Ê¤¤¡£ +のいずれでもない。 .TP .B ESRCH .I which -¤È +と .I who -¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£ +で指定されたプロセスが存在しない。 .PP -¾åµ­¤Î¤â¤Î¤Ë²Ã¤¨¤Æ +上記のものに加えて .BR setpriority () -¤Ç¤Ï°Ê²¼¤Î¥¨¥é¡¼¤¬¤¢¤ë: +では以下のエラーがある: .TP .B EACCES -¸Æ¤Ó½Ð¤·¸µ¤¬¥×¥í¥»¥¹¤ÎÍ¥ÀèÅÙ¤ò²¼¤²¤è¤¦¤È¤·¤¿¤¬¡¢É¬ÍפÊÆø¢¤ò -»ý¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿ (Linux ¤Î¾ì¹ç¡¢ +呼び出し元がプロセスの優先度を下げようとしたが、必要な特権を +持っていなかった (Linux の場合、 .B CAP_SYS_NICE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¤Ê¤«¤Ã¤¿)¡£ -Linux 2.6.12 °Ê¹ß¤Ç¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤¬¡¢¤¢¤ë¥×¥í¥»¥¹¤ÎÍ¥ÀèÅÙ¤ò¡¢ -Êѹ¹ÂÐ¾Ý¤Î¥×¥í¥»¥¹¤Î¥ê¥½¡¼¥¹ +ケーパビリティがなかった)。 +Linux 2.6.12 以降では、呼び出し元が、あるプロセスの優先度を、 +変更対象のプロセスのリソース .B RLIMIT_NICE -¤Î¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤ÎÈϰϳ°¤ËÀßÄꤷ¤è¤¦¤È¤·¤¿¾ì¹ç¤Ë¤Î¤ß¡¢ -¤³¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¡£¾ÜºÙ¤Ï +のソフト・リミットの範囲外に設定しようとした場合にのみ、 +このエラーが発生する。詳細は .BR getrlimit (2) -¤ò»²¾È¡£ +を参照。 .TP .B EPERM -¥×¥í¥»¥¹¤Ï¸«¤Ä¤«¤Ã¤¿¤¬¡¢¤½¤Î¥×¥í¥»¥¹¤Î¼Â¸ú (effective) UID ¤¬ -¸Æ¤Ó½Ð¤·¸µ¤Î¼Â¸úUID ¤Ë¤â¼Â (real) UID ¤Ë¤â°ìÃפ»¤º¡¢ -¸Æ¤Ó½Ð¤·¸µ¤¬Æø¢¤â»ý¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿ (Linux ¤Î¾ì¹ç¡¢ +プロセスは見つかったが、そのプロセスの実効 (effective) UID が +呼び出し元の実効UID にも実 (real) UID にも一致せず、 +呼び出し元が特権も持っていなかった (Linux の場合、 .B CAP_SYS_NICE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¤Ê¤«¤Ã¤¿)¡£ -°Ê²¼¤Î¡ÖÃí°Õ¡×¤â»²¾È¤Î¤³¤È¡£ -.SH ½àµò -SVr4, 4.4BSD (¤³¤ì¤é¤Î´Ø¿ô¤Ï 4.2BSD ¤ÇºÇ½é¤ËÅо줷¤¿), +ケーパビリティがなかった)。 +以下の「注意」も参照のこと。 +.SH 準拠 +SVr4, 4.4BSD (これらの関数は 4.2BSD で最初に登場した), POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢ -¿Æ¥×¥í¥»¥¹¤Î nice Ãͤò·Ñ¾µ¤¹¤ë¡£ +で作成された子プロセスは、 +親プロセスの nice 値を継承する。 .BR execve (2) -¤ÎÁ°¸å¤Ç nice ÃͤÏÊݸ¤µ¤ì¤ë¡£ +の前後で nice 値は保存される。 -ÁêÂÐŪ¤Ê nice Ãͤΰ㤤¤¬¥×¥í¥»¥¹´Ö¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤Ë¤É¤ÎÄøÅٱƶÁ¤òÍ¿¤¨¤ë¤« -¤Ï¡¢UNIX ¥·¥¹¥Æ¥à´Ö¤Ç°Û¤Ê¤ê¡¢Linux ¤Ç¤Ï¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤ê°Û¤Ê¤ë¡£ -Linux ¤Ï¡¢¥«¡¼¥Í¥ë 2.6.23 °Ê¹ß¤Ç¡¢nice ÃͤÎÁêÂÐŪ¤Ê°ã¤¤¤¬¡¢Èó¾ï¤Ë¶¯¤¤±Æ¶Á¤ò -Í¿¤¨¤ë¥¢¥ë¥´¥ê¥º¥à¤òºÎÍѤ·¤¿¡£¤³¤Î¥¢¥ë¥´¥ê¥º¥à¤Ç¤Ï¡¢ -¾¤ËÍ¥ÀèÅ٤ι⤤¤â¤Î¤¬¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë»þ¤Ë¤Ï¡¢ -Èó¾ï¤ËÄ㤤 nice ÃÍ (+19) ¤Ç¤Ï¥×¥í¥»¥¹¤ËËÜÅö¤Ë¤Û¤È¤ó¤É CPU ¤¬³ä¤êÅö¤Æ¤é¤ì¤Ê¤¤¡£ -¤Þ¤¿¡¢¹â¤¤ nice ÃÍ (\-20) ¤Ç¤Ï CPU ¤òɬÍפȤ¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó (Î㤨¤Ð -¥ª¡¼¥Ç¥£¥ª¡¦¥¢¥×¥ê¥±¡¼¥·¥ç¥ó) ¤Ë CPU ¤Î¤Û¤È¤ó¤É¤¬³ä¤êÅö¤Æ¤é¤ì¤ë¡£ +相対的な nice 値の違いがプロセス間のスケジューリングにどの程度影響を与えるか +は、UNIX システム間で異なり、Linux ではカーネルバージョンにより異なる。 +Linux は、カーネル 2.6.23 以降で、nice 値の相対的な違いが、非常に強い影響を +与えるアルゴリズムを採用した。このアルゴリズムでは、 +他に優先度の高いものがシステムに存在する時には、 +非常に低い nice 値 (+19) ではプロセスに本当にほとんど CPU が割り当てられない。 +また、高い nice 値 (\-20) では CPU を必要とするアプリケーション (例えば +オーディオ・アプリケーション) に CPU のほとんどが割り当てられる。 .B EPERM -¤¬È¯À¸¤¹¤ë¾ò·ï¤Î¾ÜºÙ¤Ï¥·¥¹¥Æ¥à¤Ë°Í¸¤¹¤ë¡£ -¾åµ­¤ÎÀâÌÀ¤Ï POSIX.1-2001 ¤Î¤â¤Î¤Ç¤¢¤ê¡¢Á´¤Æ¤Î System V É÷¥·¥¹¥Æ¥à¤Ï -¤³¤ì¤Ë½¾¤Ã¤Æ¤¤¤ë¤è¤¦¤Ç¤¢¤ë¡£ -2.6.12 ¤è¤êÁ°¤Î Linux ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¼Â UID ¤Þ¤¿¤Ï -¼Â¸ú UID ¤¬¥×¥í¥»¥¹ \fIwho\fP ¤Î (¼Â¸ú UID ¤Ç¤Ê¤¯) -¼Â UID ¤Ë°ìÃפ¹¤ëɬÍפ¬¤¢¤ë¡£ -Linux 2.6.12 °Ê¹ß¤Ç¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¼Â¹Ô UID ¤¬¥×¥í¥»¥¹ \fIwho\fP -¤Î¼Â UID ¤«¼Â¸ú UID ¤Î¤¤¤º¤ì¤«¤È°ìÃפ¹¤ëɬÍפ¬¤¢¤ë¡£ -Á´¤Æ¤Î BSD É÷¥·¥¹¥Æ¥à (SunOS 4.1.3, Ultrix 4.2, -4.3BSD, FreeBSD 4.3, OpenBSD-2.5Åù) ¤Ï¡¢ -Linux 2.6.12 °Ê¹ß¤ÈƱ¤¸Æ°ºî¤ò¤¹¤ë¡£ +が発生する条件の詳細はシステムに依存する。 +上記の説明は POSIX.1-2001 のものであり、全ての System V 風システムは +これに従っているようである。 +2.6.12 より前の Linux カーネルでは、呼び出し元の実 UID または +実効 UID がプロセス \fIwho\fP の (実効 UID でなく) +実 UID に一致する必要がある。 +Linux 2.6.12 以降では、呼び出し元の実行 UID がプロセス \fIwho\fP +の実 UID か実効 UID のいずれかと一致する必要がある。 +全ての BSD 風システム (SunOS 4.1.3, Ultrix 4.2, +4.3BSD, FreeBSD 4.3, OpenBSD-2.5等) は、 +Linux 2.6.12 以降と同じ動作をする。 .LP -¼ÂºÝ¤ÎÍ¥ÀèÅÙ¤ÎÃͤÎÈϰϤϥ«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¡£ -1.3.36 ¤è¤êÁ°¤Î Linux ¤Ç¤Ï¡¢Í¥ÀèÅÙ¤ÎÈϰϤÏÉé¤Î̵¸ÂÂç ¡Á 15 ¤Ç¤¢¤ë¡£ -1.3.43 °Ê¹ß¤Î Linux ¤Ç¤Ï¡¢Í¥ÀèÅÙ¤ÎÈÏ°Ï¤Ï \-20 ¡Á 19 ¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ëÆâÉô¤Ç¤Ï¡¢nice ÃÍ¤Ï¼ÂºÝ¤Ë¤Ï 40 ¡Á 1 ¤ÎÈϰϤò»È¤Ã¤Æ -ɽ¸½¤µ¤ì¤Æ¤ª¤ê (Éé¤ÎÃͤϥ¨¥é¡¼¥³¡¼¥É¤È¤Ê¤ë¤¿¤á)¡¢¤³¤Á¤é¤ÎÃͤ¬ -¥·¥¹¥Æ¥à¥³¡¼¥ë +実際の優先度の値の範囲はカーネルのバージョンによって異なる。 +1.3.36 より前の Linux では、優先度の範囲は負の無限大 〜 15 である。 +1.3.43 以降の Linux では、優先度の範囲は \-20 〜 19 である。 +カーネル内部では、nice 値は実際には 40 〜 1 の範囲を使って +表現されており (負の値はエラーコードとなるため)、こちらの値が +システムコール .BR setpriority () -¤È +と .BR getpriority () -¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ -glibc ¤Î¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ë¤ª¤¤¤Æ¡¢nice ÃͤΠ-¥æ¡¼¥¶Îΰè (user-land) ¤È¥«¡¼¥Í¥ëɽ¸½¤Î´Ö¤ÎÊÑ´¹¤¬¹Ô¤ï¤ì¤ë¡£ -ÊÑ´¹¼°¤Ï°Ê²¼¤ÎÄ̤ê: +で使用されている。 +glibc のこれらのシステムコールのラッパー関数において、nice 値の +ユーザ領域 (user-land) とカーネル表現の間の変換が行われる。 +変換式は以下の通り: .I "unice\ =\ 20\ \-\ knice" .LP -¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢nice ÃͤÎÈÏ°Ï¤Ï \20 ¡Á 20 ¤Ç¤¢¤ë¡£ +いくつかのシステムでは、nice 値の範囲は \20 〜 20 である。 .LP -¸½ºß¤Ç¤Ï +現在では .I -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ëɬÍפϤʤ¤¤¬¡¢¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ì¤Ð°Ü¿¢À­¤ò¹â¤á¤ë¤³¤È¤¬¤Ç¤­¤ë -(¼ÂºÝ¤Ë¤Ï +をインクルードする必要はないが、インクルードすれば移植性を高めることができる +(実際には .I -¤Ç +で .I rusage -¹½Â¤ÂΤ¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢¤½¤Î¥Õ¥£¡¼¥ë¥É¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë +構造体が定義されているが、そのフィールドで使用されている .I struct timeval -·¿¤Ï +型は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ -.SH ´ØÏ¢¹àÌÜ +で定義されている)。 +.SH 関連項目 .BR nice (1), .BR renice (1), .BR fork (2), .BR capabilities (7) .sp -(Linux 2.6.23 °Ê¹ß¤Î) ¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹¥Ä¥ê¡¼Æâ¤Î +(Linux 2.6.23 以降の) カーネルのソースツリー内の .I Documentation/scheduler/sched-nice-design.txt diff --git a/release/man2/getresuid.2 b/release/man2/getresuid.2 index c0cfa399..73f6e56c 100644 --- a/release/man2/getresuid.2 +++ b/release/man2/getresuid.2 @@ -31,56 +31,56 @@ .\" by HANATAKA Shinya .\" Updated Sun Oct 12 JST 2003 by Kentaro Shirakata .\" -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: real user ID ¼Â¥æ¡¼¥¶¡¼ID -.\"WORD: saved user ID Êݸ¥æ¡¼¥¶¡¼ID -.\"WORD: effective group ID ¼Â¸ú¥°¥ë¡¼¥×ID -.\"WORD: real group ID ¼Â¥°¥ë¡¼¥×ID -.\"WORD: saved group ID Êݸ¥°¥ë¡¼¥×ID +.\"WORD: effective user ID 実効ユーザーID +.\"WORD: real user ID 実ユーザーID +.\"WORD: saved user ID 保存ユーザーID +.\"WORD: effective group ID 実効グループID +.\"WORD: real group ID 実グループID +.\"WORD: saved group ID 保存グループID .\" .TH GETRESUID 2 2007-12-28 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -getresuid, getresgid \- ¼Â¡¢¼Â¸ú¡¢Êݸ¡¢¥æ¡¼¥¶¡¼ ID / ¥°¥ë¡¼¥× ID ¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.SH 名前 +getresuid, getresgid \- 実、実効、保存、ユーザー ID / グループ ID を取得する +.SH 書式 +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "int getresuid(uid_t *" ruid ", uid_t *" euid ", uid_t *" suid ); .br .BI "int getresgid(gid_t *" rgid ", gid_t *" egid ", gid_t *" sgid ); -.SH ÀâÌÀ +.SH 説明 .BR getresuid () -¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â (real) UID¡¢¼Â¸ú (effective) UID¡¢ -Êݸ (saved) set-user-ID +は、呼び出したプロセスの実 (real) UID、実効 (effective) UID、 +保存 (saved) set-user-ID .RB ( getresgid -¤Î¾ì¹ç¤Ï¥°¥ë¡¼¥× ID) ¤ò¡¢ -¤½¤ì¤¾¤ì°ú¤­¿ô +の場合はグループ ID) を、 +それぞれ引き数 .IR ruid , .IR euid , .I suid -¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ +に格納して返す。 .BR getresgid () -¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥°¥ë¡¼¥× ID ¤Ë¤Ä¤¤¤ÆƱÍͤνèÍý¤ò¹Ô¤¦¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +は、呼び出したプロセスのグループ ID について同様の処理を行う。 +.SH 返り値 +成功した場合はゼロを返す。エラーの場合は \-1 を返し、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EFAULT -»ØÄꤷ¤¿°ú¤­¿ô¤Î¤É¤ì¤«¤¬¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥°¥é¥à¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤Î -¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë 2.1.44 ¤«¤é Linux ¤ËÅо줷¤¿¡£ +指定した引き数のどれかが、呼び出したプログラムのアドレス空間の外の +アドレスである。 +.SH バージョン +これらのシステムコールはカーネル 2.1.44 から Linux に登場した。 -¥×¥í¥È¥¿¥¤¥×Àë¸À¤Ï 2.3.2 °Ê¹ß¤Î glibc ¤Ç¤Ï +プロトタイプ宣言は 2.3.2 以降の glibc では .B _GNU_SOURCE -¤òÄêµÁ¤·¤Æ¤¤¤ë¤ÈÆÀ¤é¤ì¤ë¡£ -.SH ½àµò -¤³¤ì¤é¤Î¥³¡¼¥ë¤ÏÈóɸ½à¤Ç¤¢¤ë¡£ -HP-UX ¤ä BSD ·Ï¤Î¤¤¤¯¤Ä¤«¤Ë¤â¸ºß¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を定義していると得られる。 +.SH 準拠 +これらのコールは非標準である。 +HP-UX や BSD 系のいくつかにも存在する。 +.SH 関連項目 .BR getuid (2), .BR setresuid (2), .BR setreuid (2), diff --git a/release/man2/getrlimit.2 b/release/man2/getrlimit.2 index 30d184ff..e8d77347 100644 --- a/release/man2/getrlimit.2 +++ b/release/man2/getrlimit.2 @@ -75,13 +75,13 @@ .\" Updated 2008-08-08, Akihiro MOTOKI, LDP v3.05 .\" Updated 2008-10-13, Akihiro MOTOKI, LDP v3.11 .\" -.\"WORD: resource »ñ¸» -.\"WORD: limit À©¸Â +.\"WORD: resource 資源 +.\"WORD: limit 制限 .\" .TH GETRLIMIT 2 2010-09-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -getrlimit, setrlimit \- »ñ¸»¤ÎÀ©¸Â¤ò¼èÆÀ/ÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +getrlimit, setrlimit \- 資源の制限を取得/設定する +.SH 書式 .B #include .br .B #include @@ -89,438 +89,438 @@ getrlimit, setrlimit \- .BI "int getrlimit(int " resource ", struct rlimit *" rlim ); .br .BI "int setrlimit(int " resource ", const struct rlimit *" rlim ); -.SH ÀâÌÀ +.SH 説明 .BR getrlimit () -¤È +と .BR setrlimit () -¤Ï¤½¤ì¤¾¤ì»ñ¸» (resource) ¤ÎÀ©¸Â (limit) ¤ÎÀßÄê¤È¼èÆÀ¤ò¹Ô¤¦¡£ -³Æ¥ê¥½¡¼¥¹¤Ë¤Ï¡¢¤½¤ì¤ËÂбþ¤¹¤ë¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤È¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È¤¬¤¢¤ë¡£ -¥ê¥ß¥Ã¥È¤Ï +はそれぞれ資源 (resource) の制限 (limit) の設定と取得を行う。 +各リソースには、それに対応するソフト・リミットとハード・リミットがある。 +リミットは .RB ( getrlimit () -¤È +と .BR setrlimit () -¤Î +の .I rlim -°ú¤­¿ô¤Ç¤¢¤ë) +引き数である) .I rlimit -¹½Â¤ÂΤÇÄêµÁ¤µ¤ì¤ë: +構造体で定義される: .PP .in +4n .nf struct rlimit { - rlim_t rlim_cur; /* ¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È */ - rlim_t rlim_max; /* ¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È - (rlim_cur ¤è¤ê¾®¤µ¤¯¤Ê¤¤) */ + rlim_t rlim_cur; /* ソフト・リミット */ + rlim_t rlim_max; /* ハード・リミット + (rlim_cur より小さくない) */ }; .fi .in -¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤Ï¡¢¥«¡¼¥Í¥ë¤¬Âбþ¤¹¤ë¥ê¥½¡¼¥¹¤ËÂФ·¤Æ²Ý¤¹À©¸ÂÃͤǤ¢¤ë¡£ -¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È¤Ï¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤Î¾å¸Â¤È¤·¤ÆƯ¤¯¡£ -Æø¢¤ò»ý¤¿¤Ê¤¤¥×¥í¥»¥¹¤Ï¡¢¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤ÎÃͤò -0 ¤«¤é¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È¤ÎÈϰϤËÀßÄꤹ¤ë¤³¤È¤È¡¢ -¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È¤ò²¼¤²¤ë¤³¤È¤Î¤ß¤¬¤Ç¤­¤ë -(°ìÅÙ²¼¤²¤¿¥Ï¡¼¥É¥ê¥ß¥Ã¥È¤Ï¾å¤²¤é¤ì¤Ê¤¤)¡£ -Æø¢¥×¥í¥»¥¹ (Linux ¤Ç¤Ï +ソフト・リミットは、カーネルが対応するリソースに対して課す制限値である。 +ハード・リミットはソフト・リミットの上限として働く。 +特権を持たないプロセスは、ソフト・リミットの値を +0 からハード・リミットの範囲に設定することと、 +ハード・リミットを下げることのみができる +(一度下げたハードリミットは上げられない)。 +特権プロセス (Linux では .B CAP_SYS_RESOURCE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤Ä¥×¥í¥»¥¹) ¤Ï -¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤È¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È¤ò¼«Í³¤ËÊѹ¹¤Ç¤­¤ë¡£ +ケーパビリティ (capability) を持つプロセス) は +ソフト・リミットとハード・リミットを自由に変更できる。 .PP -ÃÍ +値 .B RLIM_INFINITY -¤Ï¥ê¥½¡¼¥¹¤ËÀ©¸Â¤¬¤Ê¤¤¤³¤È¤òɽ¤¹ -(¤³¤ÎÃÍ¤Ï +はリソースに制限がないことを表す +(この値は .BR getrlimit () -¤¬ÊÖ¤¹¹½Â¤ÂÎ¤È +が返す構造体と .BR setrlimit () -¤ËÅϤ¹¹½Â¤ÂΤÎξÊý¤Ç»ÈÍѤµ¤ì¤ë)¡£ +に渡す構造体の両方で使用される)。 .PP .I resource -¤Ï¼¡¤Î¤¤¤º¤ì¤« 1 ¤Ä¤Ç¤¢¤ë¡£ +は次のいずれか 1 つである。 .TP .B RLIMIT_AS -¥×¥í¥»¥¹¤Î²¾ÁÛ¥á¥â¥ê (¥¢¥É¥ì¥¹¶õ´Ö) ¤ÎºÇÂ祵¥¤¥º (¥Ð¥¤¥Èñ°Ì)¡£ -.\" 2.0.27 / 2.1.12 °Ê¹ß¡£ -¤³¤ÎÀ©¸Â¤Ï +プロセスの仮想メモリ (アドレス空間) の最大サイズ (バイト単位)。 +.\" 2.0.27 / 2.1.12 以降。 +この制限は .BR brk (2), .BR mmap (2), .BR mremap (2) -¤Î¸Æ¤Ó½Ð¤·¤Ë±Æ¶Á¤·¡¢¤³¤ÎÀ©¸Â¤òĶ¤¨¤¿¾ì¹ç¤Ï -¥¨¥é¡¼ +の呼び出しに影響し、この制限を超えた場合は +エラー .B ENOMEM -¤Ç¼ºÇÔ¤¹¤ë¡£ -¤Þ¤¿¼«Æ°Åª¤Ê¥¹¥¿¥Ã¥¯³ÈÄ¥¤Ë¤â¼ºÇÔ¤¹¤ë -(¤µ¤é¤Ë +で失敗する。 +また自動的なスタック拡張にも失敗する +(さらに .BR sigaltstack (2) -¤ò»È¤Ã¤¿ÂåÂØ¥¹¥¿¥Ã¥¯¤òÍøÍѲÄǽ¤Ë¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ +を使った代替スタックを利用可能にしていなかった場合には、 .B SIGSEGV -¤òÀ¸À®¤·¤Æ¤½¤Î¥×¥í¥»¥¹¤ò kill ¤¹¤ë)¡£ -¤³¤ÎÃÍ¤Ï \fIlong\fP ·¿¤Ê¤Î¤Ç¡¢32 ¥Ó¥Ã¥È¤Î \fIlong\fP ·¿¤ò»ý¤Ä¥Þ¥·¥ó¤Ç¤Ï¡¢ -¤³¤ÎÀ©¸Â¤ÏºÇÂç¤Ç 2 GiB ¤Ë¤Ê¤ë¤«¡¢¤³¤Î»ñ¸»¤¬ÌµÀ©¸Â¤Ë¤Ê¤ë¡£ +を生成してそのプロセスを kill する)。 +この値は \fIlong\fP 型なので、32 ビットの \fIlong\fP 型を持つマシンでは、 +この制限は最大で 2 GiB になるか、この資源が無制限になる。 .TP .B RLIMIT_CORE .I core -¥Õ¥¡¥¤¥ë¤ÎºÇÂ祵¥¤¥º¡£ -0 ¤Î¾ì¹ç¡¢core ¥Õ¥¡¥¤¥ë¤ÏÀ¸À®¤µ¤ì¤Ê¤¤¡£ -0 °Ê³°¤Î¾ì¹ç¡¢¤³¤Î¥µ¥¤¥º¤è¤êÂ礭¤¤¥À¥ó¥×¤ÏÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ +ファイルの最大サイズ。 +0 の場合、core ファイルは生成されない。 +0 以外の場合、このサイズより大きいダンプは切り詰められる。 .TP .B RLIMIT_CPU -CPU »þ´Ö¤Î¾å¸Â (Éÿô)¡£ -¥×¥í¥»¥¹¤¬¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤Ë㤷¤¿¾ì¹ç¤Ë¡¢ +CPU 時間の上限 (秒数)。 +プロセスがソフト・リミットに達した場合に、 .B SIGXCPU -¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ -¤³¤Î¥·¥°¥Ê¥ë¤ËÂФ¹¤ë¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¡¢¥×¥í¥»¥¹¤Î½ªÎ»¤Ç¤¢¤ë¡£ -¤¿¤À¤·¥·¥°¥Ê¥ë¤ò¥­¥ã¥Ã¥Á¤·¤Æ¡¢¥Ï¥ó¥É¥é¤¬¥á¥¤¥ó¥×¥í¥°¥é¥à¤Ë -À©¸æ¤òÊÖ¤¹¤³¤È¤â¤Ç¤­¤ë¡£ -¥×¥í¥»¥¹¤¬ CPU »þ´Ö¤ò»È¤¤Â³¤±¤¿¾ì¹ç¤Ï¡¢ -¥Ï¡¼¥É¥ê¥ß¥Ã¥È¤Ë㤹¤ë¤Þ¤Ç 1 ÉÃËè¤Ë¥×¥í¥»¥¹¤Ë +シグナルを送る。 +このシグナルに対するデフォルトの動作は、プロセスの終了である。 +ただしシグナルをキャッチして、ハンドラがメインプログラムに +制御を返すこともできる。 +プロセスが CPU 時間を使い続けた場合は、 +ハードリミットに達するまで 1 秒毎にプロセスに .B SIGXCPU -¤òÁ÷¤ê¡¢ -¥Ï¡¼¥É¥ê¥ß¥Ã¥È¤Ë㤹¤ë¤È +を送り、 +ハードリミットに達すると .B SIGKILL -¤òÁ÷¤ë¡£ -¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤òĶ²á¤·¤¿¤È¤­¤ÎÆ°ºî¤Ï¡¢ -Linux 2.2 ¤«¤é 2.6 ¤Î¤â¤Î¤Ç¤¢¤ë¡£ -¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤òĶ¤¨¤Æ CPU »þ´Ö¤ò»È¤¤Â³¤±¤ë¥×¥í¥»¥¹¤Î -°·¤¤Êý¤Ë¤Ä¤¤¤Æ¤Î¼ÂÁõ¤ÏÊѲ½¤·¤Æ¤­¤Æ¤¤¤ë¡£ -¤³¤Î¥·¥°¥Ê¥ë¤ò¥­¥ã¥Ã¥Á¤¹¤ëɬÍפΤ¢¤ë -°Ü¿¢À­¤ò¹Í¤¨¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ -ºÇ½é¤Ë +を送る。 +ソフト・リミットを超過したときの動作は、 +Linux 2.2 から 2.6 のものである。 +ソフト・リミットを超えて CPU 時間を使い続けるプロセスの +扱い方についての実装は変化してきている。 +このシグナルをキャッチする必要のある +移植性を考えたアプリケーションでは、 +最初に .B SIGXCPU -¤ò¼õ¤±¼è¤Ã¤¿»þÅÀ¤ÇÀµ¤·¤¯½ªÎ»¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +を受け取った時点で正しく終了すべきである。 .TP .B RLIMIT_DATA -¥×¥í¥»¥¹¤Î¥Ç¡¼¥¿¥»¥°¥á¥ó¥È -(½é´ü²½¤µ¤ì¤¿¥Ç¡¼¥¿¡¦½é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ç¡¼¥¿¡¦¥Ò¡¼¥×) ¤ÎºÇÂçÃÍ¡£ -¤³¤Î¥ê¥ß¥Ã¥È¤Ï +プロセスのデータセグメント +(初期化されたデータ・初期化されていないデータ・ヒープ) の最大値。 +このリミットは .BR brk (2) -¤È +と .BR sbrk (2) -¤Î¸Æ¤Ó½Ð¤·¤Ë±Æ¶Á¤¹¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¤³¤Î¥ê¥½¡¼¥¹¤Î¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤Ë㤹¤ë¤È¡¢ -¥¨¥é¡¼ +の呼び出しに影響する。 +これらの関数は、このリソースのソフト・リミットに達すると、 +エラー .B ENOMEM -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .TP .B RLIMIT_FSIZE -¥×¥í¥»¥¹¤¬ºîÀ®¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤ÎºÇÂçÃÍ¡£ -¤³¤Î¥µ¥¤¥º¤òĶ¤¨¤Æ¥Õ¥¡¥¤¥ë¤ò³ÈÄ¥¤¹¤ë¤È¡¢ +プロセスが作成できるファイルサイズの最大値。 +このサイズを超えてファイルを拡張すると、 .B SIGXFSZ -¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥·¥°¥Ê¥ë¤Ï¥×¥í¥»¥¹¤ò½ªÎ»¤¹¤ë¡£ -¥×¥í¥»¥¹¤ò¥­¥ã¥Ã¥Á¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¤¬¡¢ -´ØÏ¢¤¹¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë +シグナルを送る。 +デフォルトでは、このシグナルはプロセスを終了する。 +プロセスをキャッチすることもできるが、 +関連するシステムコール .RB ( write (2), .BR truncate (2) -¤Ê¤É) ¤Ï¥¨¥é¡¼ +など) はエラー .B EFBIG -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .TP -.BR RLIMIT_LOCKS " (½é´ü¤Î Linux 2.4 ¤Î¤ß)" -.\" Àµ³Î¤Ë¤Ï Linux 2.4.0-test9 ¤Î¤ß¡£2.4.25 / 2.5.65 ¤Ç¤Ï¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤³¤Î¥×¥í¥»¥¹¤¬¼Â¹Ô¤Ç¤­¤ë +.BR RLIMIT_LOCKS " (初期の Linux 2.4 のみ)" +.\" 正確には Linux 2.4.0-test9 のみ。2.4.25 / 2.5.65 ではなくなっている。 +このプロセスが実行できる .BR flock (2) -¥í¥Ã¥¯¿ô¤È +ロック数と .BR fcntl (2) -¥ê¡¼¥¹¿ô¤Î¹ç·×ÃͤòÀ©¸Â¤¹¤ë¡£ +リース数の合計値を制限する。 .TP .B RLIMIT_MEMLOCK -RAM Æâ¤Ë¥í¥Ã¥¯¤Ç¤­¤ë¥á¥â¥ê¤ÎºÇÂç¥Ð¥¤¥È¿ô¡£ -¼ÂºÝ¤Ë¤Ï¡¢¤³¤ÎÀ©¸Â¤Ï¥·¥¹¥Æ¥à¥Ú¡¼¥¸¥µ¥¤¥º¤ÎºÇ¤â¶á¤¤ÇÜ¿ô¤Ë -ÀÚ¤ê¼Î¤Æ¤Æ´Ý¤á¤é¤ì¤ë¡£ -¤³¤ÎÀ©¸Â¤Ï +RAM 内にロックできるメモリの最大バイト数。 +実際には、この制限はシステムページサイズの最も近い倍数に +切り捨てて丸められる。 +この制限は .BR mlock (2), .BR mlockall (2), .BR mmap (2) -¤Î +の .B MAP_LOCKED -Áàºî¤Ë±Æ¶Á¤¹¤ë¡£ -Linux 2.6.9 °Ê¹ß¤Ç¤Ï +操作に影響する。 +Linux 2.6.9 以降では .BR shmctl (2) .B SHM_LOCK -Áàºî¤Ë¤â±Æ¶Á¤¹¤ë¡£ -¤³¤ÎÁàºî¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â (real) ¥æ¡¼¥¶¡¼ ID ¤Ë¥í¥Ã¥¯¤µ¤ì¤ë -¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È +操作にも影響する。 +この操作は呼び出し元プロセスの実 (real) ユーザー ID にロックされる +共有メモリセグメント .RB ( shmget (2) -¤ò»²¾È) ¤Î¹ç·×¥Ð¥¤¥È¿ô¤ÎºÇÂçÃͤòÀßÄꤹ¤ë¡£ +を参照) の合計バイト数の最大値を設定する。 .BR shmctl (2) .B SHM_LOCK -¤Ë¤è¤ë¥í¥Ã¥¯¤Ï¡¢ +によるロックは、 .BR mlock (2), .BR mlockall (2), .BR mmap (2) -¤Î +の .B MAP_LOCKED -¤Ë¤è¤Ã¤Æ³ÎΩ¤µ¤ì¤ë¥×¥í¥»¥¹Ëè¤Î¥á¥â¥ê¥í¥Ã¥¯¤È¤Ïʬ¤±¤Æ¿ô¤¨¤ë¡£ -1 ¤Ä¤Î¥×¥í¥»¥¹¤Ï¤³¤ÎÀ©¸Â¤Þ¤Ç¤Î¥Ð¥¤¥È¤ò¥í¥Ã¥¯¤Ç¤­¤ë¡£ -¤³¤ÎÀ©¸Â¤Ë¤Ï 2 ¤Ä¤Î¼ïÎब¤¢¤ë¡£ -2.6.9 ¤è¤êÁ°¤Î Linux ¥«¡¼¥Í¥ë ¤Ç¤Ï¡¢ -¤³¤ÎÀ©¸Â¤ÏÆø¢¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¥í¥Ã¥¯¤µ¤ì¤ë¥á¥â¥ê¤Î¹ç·×¤òÀ©¸æ¤·¤Æ¤¤¤¿¡£ -Linux 2.6.9 °Ê¹ß¤Ç¤Ï¡¢Æø¢¥×¥í¥»¥¹¤¬¥í¥Ã¥¯¤¹¤ë¥á¥â¥ê¤Î¹ç·×¤ËÀ©¸Â¤Ï¤Ê¤¯¡¢ -Âå¤ï¤ê¤Ë¤³¤ÎÀ©¸Â¤ÏÈóÆø¢¥×¥í¥»¥¹¤¬¥í¥Ã¥¯¤¹¤ë¥á¥â¥ê¤Î¹ç·×¤Ë -ŬÍѤµ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ +によって確立されるプロセス毎のメモリロックとは分けて数える。 +1 つのプロセスはこの制限までのバイトをロックできる。 +この制限には 2 つの種類がある。 +2.6.9 より前の Linux カーネル では、 +この制限は特権プロセスによってロックされるメモリの合計を制御していた。 +Linux 2.6.9 以降では、特権プロセスがロックするメモリの合計に制限はなく、 +代わりにこの制限は非特権プロセスがロックするメモリの合計に +適用されるようになった。 .TP -.BR RLIMIT_MSGQUEUE " (Linux 2.6.8 °Ê¹ß)" -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶¡¼ ID ¤ËÂФ·¤Æ¡¢ -POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î¤¿¤á¤Ë³ÎÊݤǤ­¤ë¥Ð¥¤¥È¿ô¤ÎÀ©¸Â¤ò»ØÄꤹ¤ë¡£ -¤³¤ÎÀ©¸Â¤Ï +.BR RLIMIT_MSGQUEUE " (Linux 2.6.8 以降)" +呼び出し元プロセスの実ユーザー ID に対して、 +POSIX メッセージキューのために確保できるバイト数の制限を指定する。 +この制限は .BR mq_open (3) -¤ËÂФ·¤ÆŬÍѤµ¤ì¤ë¡£ -¥æ¡¼¥¶¤¬ºîÀ®¤·¤¿³Æ¡¹¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î¥Ð¥¤¥È¿ô¤Ï -°Ê²¼¤Î¼°¤Ë¤è¤ê·×»»¤µ¤ì¡¢(¤½¤Î¥­¥å¡¼¤¬ºï½ü¤µ¤ì¤ë¤Þ¤Ç¤Î´Ö) -¤³¤ÎÀ©¸Â¤Î·×»»Âоݤ˴ޤá¤é¤ì¤ë¡£ +に対して適用される。 +ユーザが作成した各々のメッセージキューのバイト数は +以下の式により計算され、(そのキューが削除されるまでの間) +この制限の計算対象に含められる。 .nf bytes = attr.mq_maxmsg * sizeof(struct msg_msg *) + attr.mq_maxmsg * attr.mq_msgsize .fi -¤³¤³¤Ç +ここで .I attr -¤Ï +は .I mq_attr -¹½Â¤ÂΤǤ¢¤ê¡¢ +構造体であり、 .BR mq_open (3) -¤ÎÂè 4 °ú¤­¿ô¤È¤·¤Æ»ØÄꤵ¤ì¤ë¡£ +の第 4 引き数として指定される。 .I "sizeof(struct msg_msg *)" -(Linux/i386 ¤Ç¤Ï 4 ¥Ð¥¤¥È) ¤ò´Þ¤àºÇ½é¤Î²Ã¿ô¤Ï¡¢ -¥æ¡¼¥¶¡¼¤¬Ä¹¤µ 0 ¤Î¥á¥Ã¥»¡¼¥¸¤ò̵À©¸Â¤Ëºî¤ì¤Ê¤¤¤³¤ÈÊݾڤ·¤Æ¤¤¤ë -(¤³¤Î¤è¤¦¤Ê¥á¥Ã¥»¡¼¥¸¤Ç¤¢¤Ã¤Æ¤â¡¢ -µ­Ï¿¤Î¤¿¤á¤Î¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤Ç¥·¥¹¥Æ¥à¥á¥â¥ê¤ò¾ÃÈñ¤¹¤ë)¡£ +(Linux/i386 では 4 バイト) を含む最初の加数は、 +ユーザーが長さ 0 のメッセージを無制限に作れないこと保証している +(このようなメッセージであっても、 +記録のためのオーバーヘッドでシステムメモリを消費する)。 .TP -.BR RLIMIT_NICE " (Linux 2.6.12 °Ê¹ß, ²¼µ­¤Î¡Ö¥Ð¥°¡×¤ÎÀá¤â»²¾È)" +.BR RLIMIT_NICE " (Linux 2.6.12 以降, 下記の「バグ」の節も参照)" .BR setpriority (2) -¤ä +や .BR nice (2) -¤ò»È¤Ã¤Æ°ú¤­¾å¤²¤é¤ì¤ë¥×¥í¥»¥¹¤Î nice Ãͤξå¸Â¤ò»ØÄꤹ¤ë¡£ -nice Ãͤμºݤξå¸Â¤Ï +を使って引き上げられるプロセスの nice 値の上限を指定する。 +nice 値の実際の上限は .I "20\ \-\ rlim_cur" -¤Ç·×»»¤µ¤ì¤ë -(¤³¤Î¤è¤¦¤ÊÊѤʾõ¶·¤Ï¡¢¥ê¥½¡¼¥¹À©¸ÂÃͤȤ·¤ÆÉé¤Î¿ô¤ò»ØÄê¤Ç¤­¤Ê¤¤¤¿¤á -ȯÀ¸¤¹¤ë¡£Ä̾Éé¤ÎÃͤÏÆÃÊ̤ʰÕÌ£¤ò»ý¤Ã¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£ -Î㤨¤Ð¡¢Ä̾ï¤Ï +で計算される +(このような変な状況は、リソース制限値として負の数を指定できないため +発生する。通常、負の値は特別な意味を持っているからである。 +例えば、通常は .B RLIM_INFINITY -¤ÎÃÍ¤Ï \-1 ¤Ç¤¢¤ë)¡£ +の値は \-1 である)。 .TP .B RLIMIT_NOFILE -¤³¤Î¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¿ô¤ÎºÇÂçÃͤè¤ê -1 Â礭¤¤Ãͤò»ØÄꤹ¤ë¡£ +このプロセスがオープンできるファイルディスクリプタ数の最大値より +1 大きい値を指定する。 .RB ( open (2), .BR pipe (2), .BR dup (2) -¤Ê¤É¤Ë¤è¤ê) ¤³¤Î¾å¸Â¤òĶ¤¨¤è¤¦¤È¤·¤¿¾ì¹ç¡¢¥¨¥é¡¼ +などにより) この上限を超えようとした場合、エラー .B EMFILE -¤¬È¯À¸¤¹¤ë -(Îò»ËŪ¤Ë¡¢BSD ¤Ç¤Ï¤³¤Î¾å¸Â¤Ï +が発生する +(歴史的に、BSD ではこの上限は .B RLIMIT_OFILE -¤È¤¤¤¦Ì¾Á°¤È¤Ê¤Ã¤Æ¤¤¤ë)¡£ +という名前となっている)。 .TP .B RLIMIT_NPROC -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶¡¼ ID ¤ÇºîÀ®¤Ç¤­¤ëºÇÂç¥×¥í¥»¥¹¿ô -(¤è¤êÀµ³Î¤Ë¤Ï Linux ¤Ç¤Ï¥¹¥ì¥Ã¥É¿ô)¡£ -¤³¤Î¾å¸Â¤Ë㤹¤ë¤È¡¢ +呼び出したプロセスの実ユーザー ID で作成できる最大プロセス数 +(より正確には Linux ではスレッド数)。 +この上限に達すると、 .BR fork (2) -¤Ï¥¨¥é¡¼ +はエラー .B EAGAIN -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .TP .B RLIMIT_RSS -¥×¥í¥»¥¹¤Î resident set (RAM ¾å¤Ë¸ºß¤¹¤ë²¾ÁÛ¥Ú¡¼¥¸¤Î¿ô) ¤Î -¾å¸Â¤ò (¥Ú¡¼¥¸¿ô¤Ç) »ØÄꤹ¤ë¡£ -¤³¤ÎÀ©¸Â¤Ï 2.4.30 ¤è¤êÁ°¤Ç¤·¤«±Æ¶Á¤¬¤Ê¤¯¡¢ +プロセスの resident set (RAM 上に存在する仮想ページの数) の +上限を (ページ数で) 指定する。 +この制限は 2.4.30 より前でしか影響がなく、 .BR madvise (2) -¤Ë +に .B MADV_WILLNEED -¤ò»ØÄꤷ¤¿´Ø¿ô¥³¡¼¥ë¤Ë¤·¤«±Æ¶Á¤·¤Ê¤¤¡£ -.\" ¥«¡¼¥Í¥ë 2.6.12 ¤Î»þÅÀ¤Ç¤Ï¡¢ -.\" ¤³¤ÎÀ©¸Â¤Ï¥«¡¼¥Í¥ë 2.6 ¤Ç¤Ï¤Þ¤À²¿¤â¹Ô¤ï¤Ê¤¤¡£ -.\" ¤·¤«¤·¡¢²¿¤ò¤µ¤»¤ë¤«¤Ë¤Ä¤¤¤Æ¤Ï LKML ¤Ç»þ¡¹ÏÃÂê¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +を指定した関数コールにしか影響しない。 +.\" カーネル 2.6.12 の時点では、 +.\" この制限はカーネル 2.6 ではまだ何も行わない。 +.\" しかし、何をさせるかについては LKML で時々話題になっている。 .\" -- MTK, Jul 05 .TP -.BR RLIMIT_RTPRIO " (Linux 2.6.12 °Ê¹ß, ¥Ð¥°¤ÎÀá¤â»²¾È)" +.BR RLIMIT_RTPRIO " (Linux 2.6.12 以降, バグの節も参照)" .BR sched_setscheduler (2) -¤ä +や .BR sched_setparam (2) -¤ò»È¤Ã¤ÆÀßÄê¤Ç¤­¤ë¡¢¤½¤Î¥×¥í¥»¥¹¤Î¥ê¥¢¥ë¥¿¥¤¥àÍ¥ÀèÅ٤ξå¸Â¤ò»ØÄꤹ¤ë¡£ +を使って設定できる、そのプロセスのリアルタイム優先度の上限を指定する。 .TP -.BR RLIMIT_RTTIME " (Linux 2.6.25 °Ê¹ß)" -¥ê¥¢¥ë¥¿¥¤¥à¡¦¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Êý¿Ë¤Ç¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤ë¥×¥í¥»¥¹¤¬ -¥Ö¥í¥Ã¥­¥ó¥°·¿¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¸Æ¤Ó½Ð¤µ¤º¤Ë¾ÃÈñ¤¹¤ë¤³¤È¤Î¤Ç¤­¤ë -CPU »þ´Ö¤Î¹ç·×¤Ë¤Ä¤¤¤Æ¤Î¾å¸Â¤ò (¥Þ¥¤¥¯¥íÉÃñ°Ì¤Ç) »ØÄꤹ¤ë¡£ -¤³¤Î¾å¸Â¤ÎÌÜŪ¤Î¤¿¤á¡¢¥×¥í¥»¥¹¤¬¥Ö¥í¥Ã¥­¥ó¥°·¿¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò -¸Æ¤Ó½Ð¤¹Å٤ˡ¢¾ÃÈñ¤µ¤ì¤¿ CPU »þ´Ö¤Î¥«¥¦¥ó¥È¤Ï 0 ¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë¡£ -¥×¥í¥»¥¹¤¬ CPU ¤ò»È¤¤Â³¤±¤è¤¦¤È¤·¤¿¤¬Â¾¤Î¥×¥í¥»¥¹¤ËÃÖ¤­´¹¤¨¤é¤ì¤¿ -(preempted) ¾ì¹ç¤ä¡¢¤½¤Î¥×¥í¥»¥¹¤Î¥¿¥¤¥à¥¹¥é¥¤¥¹¤¬Ëþλ¤·¤¿¾ì¹ç¡¢ -¤½¤Î¥×¥í¥»¥¹¤¬ +.BR RLIMIT_RTTIME " (Linux 2.6.25 以降)" +リアルタイム・スケジューリング方針でスケジューリングされるプロセスが +ブロッキング型のシステムコールを呼び出さずに消費することのできる +CPU 時間の合計についての上限を (マイクロ秒単位で) 指定する。 +この上限の目的のため、プロセスがブロッキング型のシステムコールを +呼び出す度に、消費された CPU 時間のカウントは 0 にリセットされる。 +プロセスが CPU を使い続けようとしたが他のプロセスに置き換えられた +(preempted) 場合や、そのプロセスのタイムスライスが満了した場合、 +そのプロセスが .BR sched_yield (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¤Ï¡¢CPU »þ´Ö¤Î¥«¥¦¥ó¥È¤Ï¥ê¥»¥Ã¥È¤µ¤ì¤Ê¤¤¡£ +を呼び出した場合は、CPU 時間のカウントはリセットされない。 -¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤Ë㤹¤ë¤È¡¢¤½¤Î¥×¥í¥»¥¹¤Ë +ソフト・リミットに達すると、そのプロセスに .B SIGXCPU -¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£¤½¤Î¥×¥í¥»¥¹¤¬¤³¤Î¥·¥°¥Ê¥ë¤òÊ᪤¹¤ë¤« -̵»ë¤·¤Æ¡¢CPU »þ´Ö¤ò¾ÃÈñ¤·Â³¤±¤¿¾ì¹ç¤Ë¤Ï¡¢ -¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È¤Ë㤹¤ë¤Þ¤Ç 1 ÉÃ¤Ë 1 ²ó +シグナルが送られる。そのプロセスがこのシグナルを捕捉するか +無視して、CPU 時間を消費し続けた場合には、 +ハード・リミットに達するまで 1 秒に 1 回 .B SIGXCPU -¤¬À¸À®¤µ¤ì³¤±¤ë¤³¤È¤Ë¤Ê¤ë¡£ -¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È¤Ë㤷¤¿»þÅÀ¤Ç¡¢¤½¤Î¥×¥í¥»¥¹¤Ë¤Ï +が生成され続けることになる。 +ハード・リミットに達した時点で、そのプロセスには .B SIGKILL -¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£ +シグナルが送られる。 -¤³¤Î¾å¸Â¤ò°Õ¿ÞŪ¤Ë»ÈÍѤ¹¤ë¤Î¤Ï¡¢Ë½Áö¤·¤¿¥ê¥¢¥ë¥¿¥¤¥à¡¦¥×¥í¥»¥¹¤ò -Ää»ß¤·¤Æ¡¢¥·¥¹¥Æ¥à¤¬Æ°¤«¤Ê¤¯¤Ê¤ë¤Î¤òÈò¤±¤ë¾ì¹ç¤Ç¤¢¤ë¡£ +この上限を意図的に使用するのは、暴走したリアルタイム・プロセスを +停止して、システムが動かなくなるのを避ける場合である。 .TP -.BR RLIMIT_SIGPENDING " (Linux 2.6.8 °Ê¹ß)" -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶¡¼ ID ¤ËÂФ·¤Æ -¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤ë¥·¥°¥Ê¥ë¤Î¿ô¤ÎÀ©¸Â¤ò»ØÄꤹ¤ë¡£ -¤³¤ÎÀ©¸Â¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤¿¤á¡¢ -ɸ½à¥·¥°¥Ê¥ë¤È¥ê¥¢¥ë¥¿¥¤¥à¡¦¥·¥°¥Ê¥ë¤ÎξÊý¤¬¥«¥¦¥ó¥È¤µ¤ì¤ë¡£ -¤·¤«¤·¡¢¤³¤ÎÀ©¸Â¤Ï +.BR RLIMIT_SIGPENDING " (Linux 2.6.8 以降)" +呼び出し元プロセスの実ユーザー ID に対して +キューに入れられるシグナルの数の制限を指定する。 +この制限をチェックするため、 +標準シグナルとリアルタイム・シグナルの両方がカウントされる。 +しかし、この制限は .BR sigqueue (2) -¤ËÂФ·¤Æ¤·¤«¶¯À©¤µ¤ì¤º¡¢ +に対してしか強制されず、 .BR kill (2) -»È¤¦¤³¤È¤Ç¡¢¤½¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ¤Þ¤À¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤Æ¤¤¤Ê¤¤ -¥·¥°¥Ê¥ë¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤ò¥­¥å¡¼¤ËÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.\" ¤³¤ì¤Ï¥«¡¼¥Í¥ë 2.6.7 °ÊÁ°¤Ë¸ºß¤¹¤ë¥·¥¹¥Æ¥àÁ´ÂΤÎÀ©¸Â -.\" /proc/sys/kernel/rtsig-max ¤òÃÖ¤­´¹¤¨¤ë¡£MTK Dec 04 +使うことで、そのプロセスに対してまだキューに入れられていない +シグナルのインスタンスをキューに入れることができる。 +.\" これはカーネル 2.6.7 以前に存在するシステム全体の制限 +.\" /proc/sys/kernel/rtsig-max を置き換える。MTK Dec 04 .TP .B RLIMIT_STACK -¥×¥í¥»¥¹¡¦¥¹¥¿¥Ã¥¯¤ÎºÇÂ祵¥¤¥º¤ò¥Ð¥¤¥Èñ°Ì¤Ç»ØÄꤹ¤ë¡£ -¤³¤Î¾å¸Â¤Ë㤹¤ë¤È¡¢ +プロセス・スタックの最大サイズをバイト単位で指定する。 +この上限に達すると、 .B SIGSEGV -¥·¥°¥Ê¥ë¤¬À¸À®¤µ¤ì¤ë¡£ -¤³¤Î¥·¥°¥Ê¥ë¤ò°·¤¦¤¿¤á¤Ë¤Ï¡¢ -¥×¥í¥»¥¹¤ÏÂå¤ê¤Î¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯ +シグナルが生成される。 +このシグナルを扱うためには、 +プロセスは代りのシグナルスタック .RB ( sigaltstack (2)) -¤ò»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を使用しなければならない。 -Linux 2.6.23 °Ê¹ß¤Ç¤Ï¡¢¤³¤ÎÀ©¸Â¤Ï¥×¥í¥»¥¹¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤È´Ä¶­ÊÑ¿ô -¤Ë»ÈÍѤµ¤ì¤ë¶õ´Ö¤Î¹ç·×¥µ¥¤¥º¤Î¾å¸Â¤Î·èÄê¤Ë¤â»ÈÍѤµ¤ì¤ë¡£¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï +Linux 2.6.23 以降では、この制限はプロセスのコマンドライン引き数と環境変数 +に使用される空間の合計サイズの上限の決定にも使用される。詳細については .BR execve (2) -¤ò»²¾È¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +を参照。 +.SH 返り値 +成功した場合は 0 が返される。エラーの場合は \-1 が返され、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +に適切な値が設定される。 +.SH エラー .TP .B EFAULT .I rlim -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がアクセス可能なアドレス空間の外を指している。 .TP .B EINVAL .I resource -¤¬Í­¸ú¤Ç¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢ +が有効でない。 +または、 .BR setrlimit () -¤Ç¡¢ +で、 .I rlim\->rlim_cur -¤¬ +が .I rlim\->rlim_max -¤è¤ê¤âÂ礭¤«¤Ã¤¿¡£ +よりも大きかった。 .TP .B EPERM -Æø¢¤Î¤Ê¤¤¥×¥í¥»¥¹¤¬ +特権のないプロセスが .BR setrlimit () -¤ò»ÈÍѤ·¤Æ -¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤Þ¤¿¤Ï¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È¤ò -¸½ºß¤Î¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È¤è¤êÂ礭¤¯¤·¤è¤¦¤È»î¤ß¤¿¡£ -¤³¤ì¤ò¹Ô¤¦¤¿¤á¤Ë¤Ï +を使用して +ソフト・リミットまたはハード・リミットを +現在のハード・リミットより大きくしようと試みた。 +これを行うためには .B CAP_SYS_RESOURCE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ -¤Þ¤¿¤ÏÆø¢¤Î¤Ê¤¤¥×¥í¥»¥¹¤¬ +ケーパビリティが必要である。 +または特権のないプロセスが .BR setrlimit () -¤ò»ÈÍѤ·¤Æ -¥½¥Õ¥È¤Þ¤¿¤Ï¥Ï¡¼¥É +を使用して +ソフトまたはハード .B RLIMIT_NOFILE -¥ê¥ß¥Ã¥È¤ò¸½ºß¤Î¥«¡¼¥Í¥ë¤ÎºÇÂçÃÍ +リミットを現在のカーネルの最大値 .RB ( NR_OPEN ) -°Ê¾å¤ËÁý²Ã¤µ¤»¤è¤¦¤È¤·¤¿¡£ -.SH ½àµò +以上に増加させようとした。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .B RLIMIT_MEMLOCK -¤È +と .B RLIMIT_NPROC -¤Ï BSD ¤«¤éÇÉÀ¸¤·¡¢POSIX.1-2001 ¤Ë¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤³¤ì¤é¤Ï BSD ·Ï¤È Linux ¤Ë¸ºß¤¹¤ë¤¬¡¢Â¾¤Î¼ÂÁõ¤Ï¾¯¤Ê¤¤¡£ +は BSD から派生し、POSIX.1-2001 には指定されていない。 +これらは BSD 系と Linux に存在するが、他の実装は少ない。 .R RLIMIT_RSS -¤Ï BSD ¤«¤éÇÉÀ¸¤·¡¢POSIX.1-2001 ¤Ë¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤½¤ì¤Ë¤â´Ø¤ï¤é¤ºÂ¿¤¯¤Î¼ÂÁõ¤Ç¸ºß¤¹¤ë¡£ +は BSD から派生し、POSIX.1-2001 には指定されていない。 +それにも関わらず多くの実装で存在する。 .BR RLIMIT_MSGQUEUE , .BR RLIMIT_NICE , .BR RLIMIT_RTPRIO , .BR RLIMIT_RTTIME , .B RLIMIT_SIGPENDING -¤Ï Linux ¸ÇÍ­¤Î¤â¤Î¤Ç¤¢¤ë¡£ -.SH Ãí°Õ +は Linux 固有のものである。 +.SH 注意 .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿ºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢ -¿Æ¥×¥í¥»¥¹¤Î¥ê¥½¡¼¥¹À©¸Â¤ò·Ñ¾µ¤¹¤ë¡£ +で作成された作成された子プロセスは、 +親プロセスのリソース制限を継承する。 .BR execve (2) -¤ÎÁ°¸å¤Ç¥ê¥½¡¼¥¹À©¸Â¤ÏÊݸ¤µ¤ì¤ë¡£ +の前後でリソース制限は保存される。 -¥·¥§¥ë¤Î¥ê¥½¡¼¥¹À©¸Â¤Ï¡¢¥·¥§¥ë¤ÎÁȤ߹þ¤ß¥³¥Þ¥ó¥É¤Ç¤¢¤ë +シェルのリソース制限は、シェルの組み込みコマンドである .I ulimit .RB ( csh (1) -¤Ç¤Ï +では .I limit ) -¤ò»È¤Ã¤ÆÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î¥·¥§¥ë¤Î¥ê¥½¡¼¥¹À©¸Â¤Ï¡¢¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Æ¥·¥§¥ë¤¬À¸À®¤¹¤ë¥×¥í¥»¥¹ -¤Ë°ú¤­·Ñ¤¬¤ì¤ë¡£ +を使って設定することができる。 +このシェルのリソース制限は、コマンドを実行してシェルが生成するプロセス +に引き継がれる。 -¸Å¤¤¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +古いシステムでは、 .BR setrlimit () -¤ÈƱÍͤÎÌÜŪ¤ò»ý¤Ä´Ø¿ô +と同様の目的を持つ関数 .BR vlimit () -¤¬Ä󶡤µ¤ì¤Æ¤¤¤¿¡£ -¸åÊý¸ß´¹À­¤Î¤¿¤á¡¢glibc ¤Ç¤â +が提供されていた。 +後方互換性のため、glibc でも .BR vlimit () -¤òÄ󶡤·¤Æ¤¤¤ë¡£ -Á´¤Æ¤Î¿·¤·¤¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ +を提供している。 +全ての新しいアプリケーションでは、 .BR setrlimit () -¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ¥Ð¥° -°ÊÁ°¤Î Linux ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¥×¥í¥»¥¹¤¬¥½¥Õ¥È¤Þ¤¿¤Ï¥Ï¡¼¥É +を使用すべきである。 +.SH バグ +以前の Linux カーネルでは、プロセスがソフトまたはハード .B RLIMIT_CPU -¥ê¥ß¥Ã¥È¤Ë㤷¤¿¾ì¹ç¤ËÁ÷¤é¤ì¤ë +リミットに達した場合に送られる .B SIGXCPU -¤È +と .B SIGKILL -¥·¥°¥Ê¥ë¤¬¡¢ËÜÍèÁ÷¤é¤ì¤ë¤Ù¤­»þÅÀ¤Î 1 (CPU) Éøå¤ËÁ÷¤é¤ì¤Æ¤·¤Þ¤¦¡£ -¤³¤ì¤Ï¥«¡¼¥Í¥ë 2.6.8 ¤Ç½¤Àµ¤µ¤ì¤¿¡£ +シグナルが、本来送られるべき時点の 1 (CPU) 秒後に送られてしまう。 +これはカーネル 2.6.8 で修正された。 -2.6.17 ¤è¤êÁ°¤Î 2.6.x ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +2.6.17 より前の 2.6.x カーネルでは、 .B RLIMIT_CPU -¥ê¥ß¥Ã¥È¤¬ 0 ¤Î¾ì¹ç¡¢ +リミットが 0 の場合、 .RB ( RLIM_INFINITY -¤ÈƱ¤¸¤è¤¦¤Ë) ¡ÖÀ©¸Â¤Ê¤·¡×¤È´Ö°ã¤Ã¤Æ²ò¼á¤µ¤ì¤Æ¤¤¤¿¡£ -Linux 2.6.17 °Ê¹ß¤Ç¤Ï¡¢¥ê¥ß¥Ã¥È¤ò 0 ¤ËÀßÄꤷ¤¿¾ì¹ç¤Ë¤â -¸ú²Ì¤ò»ý¤Ä¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¬¡¢¼ÂºÝ¤Ë¤Ï¥ê¥ß¥Ã¥È¤ÎÃÍ¤Ï 1 ÉäȤʤ롣 +と同じように) 「制限なし」と間違って解釈されていた。 +Linux 2.6.17 以降では、リミットを 0 に設定した場合にも +効果を持つようになっているが、実際にはリミットの値は 1 秒となる。 .\" see http://marc.theaimsgroup.com/?l=linux-kernel&m=114008066530167&w=2 -¥«¡¼¥Í¥ë 2.6.12 ¤Ë¤Ï¡¢ +カーネル 2.6.12 には、 .B RLIMIT_RTPRIO -¤¬Æ°ºî¤·¤Ê¤¤¤È¤¤¤¦¥Ð¥°¤¬¤¢¤ë¡£¤³¤ÎÌäÂê¤Ï¥«¡¼¥Í¥ë 2.6.13 ¤Ç½¤Àµ¤µ¤ì¤Æ¤¤¤ë¡£ +が動作しないというバグがある。この問題はカーネル 2.6.13 で修正されている。 -¥«¡¼¥Í¥ë 2.6.12 ¤Ç¤Ï¡¢ +カーネル 2.6.12 では、 .BR getpriority (2) -¤È +と .B RLIMIT_NICE -¤¬ÊÖ¤¹Í¥ÀèÅÙ¤ÎÈϰϤ¬°ì¤Ä¤º¤ì¤Æ¤¤¤¿¡£¤³¤Î¤¿¤á¡¢nice Ãͤμºݤξå¸Â¤¬ +が返す優先度の範囲が一つずれていた。このため、nice 値の実際の上限が .I "19\ \-\ rlim_cur" -¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤È¤¤¤¦±Æ¶Á¤¬¤¢¤Ã¤¿¡£¤³¤ì¤Ï¥«¡¼¥Í¥ë 2.6.13 ¤Ç½¤Àµ¤µ¤ì¤¿¡£ -.\" »²¹Í: http://marc.theaimsgroup.com/?l=linux-kernel&m=112256338703880&w=2 +になってしまうという影響があった。これはカーネル 2.6.13 で修正された。 +.\" 参考: http://marc.theaimsgroup.com/?l=linux-kernel&m=112256338703880&w=2 -2.4.22 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +2.4.22 より前のカーネルでは、 .I rlim\->rlim_cur -¤¬ +が .I rlim\->rlim_max -¤è¤êÂ礭¤«¤Ã¤¿¾ì¹ç¡¢ +より大きかった場合、 .BR setrlimit () -¤Ç¤Î +での .B EINVAL -¥¨¥é¡¼¤ò¸¡½Ð¤Ç¤­¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +エラーを検出できない。 +.SH 関連項目 .BR dup (2), .BR fcntl (2), .BR fork (2), diff --git a/release/man2/getrusage.2 b/release/man2/getrusage.2 index 1fe387dc..9e6fb5a4 100644 --- a/release/man2/getrusage.2 +++ b/release/man2/getrusage.2 @@ -45,142 +45,142 @@ .\" Updated 2008-11-10, Akihiro MOTOKI, LDP v3.11 .\" .TH GETRUSAGE 2 2009-08-25 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -getrusage \- »ñ¸»¤Î»ÈÍÑÎ̤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +getrusage \- 資源の使用量を取得する +.SH 書式 .B #include .br .B #include .sp .BI "int getrusage(int " who ", struct rusage *" usage ); -.SH ÀâÌÀ +.SH 説明 .PP .BR getrusage () -¤Ï +は .I who -¤Î»ñ¸» (resource) ¤Î»ÈÍÑÎ̤òÊÖ¤¹¡£ +の資源 (resource) の使用量を返す。 .I who -¤Ë¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«°ì¤Ä¤ò»ØÄê¤Ç¤­¤ë¡£ +には以下のいずれか一つを指定できる。 .TP .B RUSAGE_SELF -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î»ñ¸»»ÈÍÑÎÌ¡¢ -¤½¤Î¥×¥í¥»¥¹Æâ¤ÎÁ´¥¹¥ì¥Ã¥É¤¬»ÈÍѤ·¤Æ¤¤¤ë»ñ¸»¤Î¹ç·×¤òÊÖ¤¹¡£ +呼び出したプロセスの資源使用量、 +そのプロセス内の全スレッドが使用している資源の合計を返す。 -Á°¼Ô¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥ê¥½¡¼¥¹»ÈÍÑÎ̤òÍ׵ᤷ¡¢ -¸å¼Ô¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î»Ò¶¡¤Î¤¦¤Á -½ªÎ»¤·¤ÆÂÔ¤Á¾õÂ֤ˤ¢¤ë¥×¥í¥»¥¹¤Î»ÈÍÑÎ̤òÍ׵᤹¤ë¡£ +前者は呼び出したプロセスのリソース使用量を要求し、 +後者は呼び出したプロセスの子供のうち +終了して待ち状態にあるプロセスの使用量を要求する。 .TP .B RUSAGE_CHILDREN -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Î¤¦¤Á¡¢ -½ªÎ»¤·¤ÆÂÔ¤Á¾õÂ֤ˤ¢¤ëÁ´¥×¥í¥»¥¹¤¬»ÈÍѤ·¤Æ¤¤¤ë»ñ¸»»ÈÍÑÎ̤ÎÅý·×¤òÊÖ¤¹¡£ -¤³¤ì¤é¤ÎÅý·×¾ðÊó¤Ë¤Ï¡¢Â¹¥×¥í¥»¥¹¤ä¤½¤Î»Ò¹¤Î¥×¥í¥»¥¹¤Î¤¦¤Á¡¢ -ºï½üÂÔ¤Á¤Î¤â¤Î¤¬»ÈÍѤ·¤Æ¤¤¤ë»ñ¸»¤â´Þ¤Þ¤ì¤ë¡£ +呼び出したプロセスの子プロセスのうち、 +終了して待ち状態にある全プロセスが使用している資源使用量の統計を返す。 +これらの統計情報には、孫プロセスやその子孫のプロセスのうち、 +削除待ちのものが使用している資源も含まれる。 .TP -.BR RUSAGE_THREAD " (Linux 2.6.26 °Ê¹ß)" -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Ë´Ø¤¹¤ë»ñ¸»»ÈÍÑÎ̤ÎÅý·×¤òÊÖ¤¹¡£ +.BR RUSAGE_THREAD " (Linux 2.6.26 以降)" +呼び出したスレッドに関する資源使用量の統計を返す。 .PP -»ñ¸»»ÈÍÑÎÌ¤Ï +資源使用量は .I usage -¤¬»Ø¤¹¹½Â¤ÂΤ˳ÊǼ¤µ¤ì¤ÆÊÖ¤µ¤ì¤ë¡£ -¹½Â¤ÂΤϰʲ¼¤Î·Á¼°¤Ç¤¢¤ë¡£ +が指す構造体に格納されて返される。 +構造体は以下の形式である。 .PP .in +4n .nf struct rusage { - struct timeval ru_utime; /* »ÈÍѤµ¤ì¤¿¥æ¡¼¥¶¡¼»þ´Ö */ - struct timeval ru_stime; /* »ÈÍѤµ¤ì¤¿¥·¥¹¥Æ¥à»þ´Ö */ - long ru_maxrss; /* RAM ¾å¤Ë¸ºß¤¹¤ë²¾ÁÛ¥Ú¡¼¥¸¤Î¥µ¥¤¥º - (resident set size) ¤ÎºÇÂçÃÍ */ - long ru_ixrss; /* ¶¦Í­¥á¥â¥ê¤Î¹ç·×¥µ¥¤¥º */ - long ru_idrss; /* Èó¶¦Í­¥Ç¡¼¥¿¤Î¹ç·×¥µ¥¤¥º */ - long ru_isrss; /* Èó¶¦Í­¥¹¥¿¥Ã¥¯¤Î¹ç·×¥µ¥¤¥º */ - long ru_minflt; /* ÍøÍѤµ¤ì¤¿¥Ú¡¼¥¸ */ - long ru_majflt; /* ¥Ú¡¼¥¸¥Õ¥©¡¼¥ë¥È */ - long ru_nswap; /* ¥¹¥ï¥Ã¥× */ - long ru_inblock; /* ¥Ö¥í¥Ã¥¯ÆþÎÏÁàºî */ - long ru_oublock; /* ¥Ö¥í¥Ã¥¯½ÐÎÏÁàºî */ - long ru_msgsnd; /* Á÷¿®¤µ¤ì¤¿¥á¥Ã¥»¡¼¥¸ */ - long ru_msgrcv; /* ¼õ¿®¤µ¤ì¤¿¥á¥Ã¥»¡¼¥¸ */ - long ru_nsignals; /* ¼õ¿®¤µ¤ì¤¿¥·¥°¥Ê¥ë */ - long ru_nvcsw; /* °Õ¿Þ¤·¤¿¥³¥ó¥Æ¥­¥¹¥ÈÀÚ¤êÂؤ¨ */ - long ru_nivcsw; /* °Õ¿Þ¤·¤Ê¤¤¥³¥ó¥Æ¥­¥¹¥ÈÀÚ¤êÂؤ¨ */ + struct timeval ru_utime; /* 使用されたユーザー時間 */ + struct timeval ru_stime; /* 使用されたシステム時間 */ + long ru_maxrss; /* RAM 上に存在する仮想ページのサイズ + (resident set size) の最大値 */ + long ru_ixrss; /* 共有メモリの合計サイズ */ + long ru_idrss; /* 非共有データの合計サイズ */ + long ru_isrss; /* 非共有スタックの合計サイズ */ + long ru_minflt; /* 利用されたページ */ + long ru_majflt; /* ページフォールト */ + long ru_nswap; /* スワップ */ + long ru_inblock; /* ブロック入力操作 */ + long ru_oublock; /* ブロック出力操作 */ + long ru_msgsnd; /* 送信されたメッセージ */ + long ru_msgrcv; /* 受信されたメッセージ */ + long ru_nsignals; /* 受信されたシグナル */ + long ru_nvcsw; /* 意図したコンテキスト切り替え */ + long ru_nivcsw; /* 意図しないコンテキスト切り替え */ }; .fi .in -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +.SH 返り値 +成功した場合は 0 が返される。エラーの場合は \-1 が返され、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +に適切な値が設定される。 +.SH エラー .TP .B EFAULT .I usage -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がアクセス可能なアドレス空間の外を指している。 .TP .B EINVAL .I who -¤¬Ìµ¸ú¤Ç¤¢¤ë¡£ -.SH ½àµò +が無効である。 +.SH 準拠 SVr4, 4.3BSD. -POSIX.1-2001 ¤Ï +POSIX.1-2001 は .BR getrusage () -¤òµ¬Äꤷ¤Æ¤¤¤ë¤¬¡¢µ¬Äꤷ¤Æ¤¤¤ë¥Õ¥£¡¼¥ë¥É¤Ï +を規定しているが、規定しているフィールドは .I ru_utime -¤È +と .I ru_stime -¤À¤±¤Ç¤¢¤ë¡£ +だけである。 .B RUSAGE_THREAD -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -.SH Ãí°Õ +は Linux 固有である。 +.SH 注意 .BR execve (2) -¤ÎÁ°¸å¤Ç¥ê¥½¡¼¥¹»ÈÍÑÎ̤λØɸ¤ÏÊÝ»ý¤µ¤ì¤ë¡£ +の前後でリソース使用量の指標は保持される。 -º£Æü¤Ç¤Ï +今日では .I -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ëɬÍפϤʤ¤¤¬¡¢ -¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ¤ª¤±¤Ð°Ü¿¢À­¤¬Áý¤¹¡£ -(¼ÂºÝ +をインクルードする必要はないが、 +インクルードしておけば移植性が増す。 +(実際 .I struct timeval -¤Ï +は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£) +で定義されている。) .PP -2.6.9 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î Linux ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +2.6.9 より前のバージョンの Linux カーネルでは、 .B SIGCHLD -¤Î½èÍý¤¬ +の処理が .B SIG_IGN -¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢ -»Ò¥×¥í¥»¥¹¤Î¥ê¥½¡¼¥¹»ÈÍÑÎ̤¬ +に設定されていると、 +子プロセスのリソース使用量が .B RUSAGE_CHILDREN -¤ÇÊÖ¤µ¤ì¤ëÃͤ˼«Æ°Åª¤Ë´Þ¤á¤é¤ì¤ë¡£ -¤·¤«¤· POSIX.1-2001 ¤Ç¤Ï¡¢¤³¤ì¤òÌÀ³Î¤Ë¶Ø»ß¤·¤Æ¤¤¤ë¡£ -¤³¤Î½àµò¤·¤Æ¤¤¤Ê¤«¤Ã¤¿ÅÀ¤Ï¡¢Linux 2.6.9 °Ê¹ß¤Ç²þÀµ¤µ¤ì¤¿¡£ -.\" XSH ¤Î getrusage() ¤ÎÀâÌÀ¤ò»²¾È¤¹¤ë¤³¤È¡£ -.\" ƱÍͤε­½Ò¤Ï SUSv2 ¤Ë¤â¤¢¤ë¡£ +で返される値に自動的に含められる。 +しかし POSIX.1-2001 では、これを明確に禁止している。 +この準拠していなかった点は、Linux 2.6.9 以降で改正された。 +.\" XSH の getrusage() の説明を参照すること。 +.\" 同様の記述は SUSv2 にもある。 .LP -¤³¤Î¥Ú¡¼¥¸¤ÎºÇ½é¤Ç¼¨¤·¤¿¹½Â¤ÂΤÎÄêµÁ¤Ï 4.3BSD Reno ¤Î¤â¤Î¤òºÎÍѤ·¤¿¡£ -Linux ¤Ç¤ÏÁ´¤Æ¤Î¥Õ¥£¡¼¥ë¥É¤¬°ÕÌ£¤ò»ý¤Ä¤È¤¤¤¦¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -Linux 2.4 ¤Ç¤Ï¡¢¥Õ¥£¡¼¥ë¥É +このページの最初で示した構造体の定義は 4.3BSD Reno のものを採用した。 +Linux では全てのフィールドが意味を持つというわけではない。 +Linux 2.4 では、フィールド .IR ru_utime , .IR ru_stime , .IR ru_minflt , .I ru_majflt -¤Î¤ß¤¬¥á¥ó¥Æ¥Ê¥ó¥¹¤µ¤ì¤Æ¤¤¤ë¡£ -Linux 2.6 °Ê¹ß¤Ç¤Ï +のみがメンテナンスされている。 +Linux 2.6 以降では .IR ru_nvcsw , .I ru_nivcsw -¤â¥á¥ó¥Æ¥Ê¥ó¥¹¤µ¤ì¤Æ¤¤¤ë¡£ -Linux 2.6.22 °Ê¹ß¤Ç¤Ï +もメンテナンスされている。 +Linux 2.6.22 以降では .IR ru_inblock , .I ru_oublock -¤â¥á¥ó¥Æ¥Ê¥ó¥¹¤µ¤ì¤Æ¤¤¤ë¡£ +もメンテナンスされている。 .BR proc (5) -¤Ë¤¢¤ë +にある .I /proc/PID/stat -¤ÎÀâÌÀ¤â»²¾È¤Î¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +の説明も参照のこと。 +.SH 関連項目 .BR clock_gettime (2), .BR getrlimit (2), .BR times (2), diff --git a/release/man2/getsid.2 b/release/man2/getsid.2 index 14410065..8b6456c8 100644 --- a/release/man2/getsid.2 +++ b/release/man2/getsid.2 @@ -29,21 +29,21 @@ .\" by HANATAKA Shinya .\" Updated Thu Jan 17 JST 2001 by Kentaro Shirakata .\" -.\"WORD: session ¥»¥Ã¥·¥ç¥ó -.\"WORD: process ¥×¥í¥»¥¹ +.\"WORD: session セッション +.\"WORD: process プロセス .\" .TH GETSID 2 2010-09-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -getsid \- ¥»¥Ã¥·¥ç¥ó ID ¤ò¼èÆÀ¤¹¤ë¡£ -.SH ½ñ¼° +.SH 名前 +getsid \- セッション ID を取得する。 +.SH 書式 .B #include .sp .BI "pid_t getsid(pid_t" " pid" ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -53,46 +53,46 @@ glibc _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .br -|| /* glibc 2.12 °Ê¹ß: */ _POSIX_C_SOURCE\ >=\ 200809L +|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\ >=\ 200809L .RE .PD .ad -.SH ÀâÌÀ +.SH 説明 .I getsid(0) -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥»¥Ã¥·¥ç¥ó ID ¤òÊÖ¤¹¡£ +は呼び出し元のプロセスのセッション ID を返す。 .I getsid(p) -¤Ï¥×¥í¥»¥¹ ID +はプロセス ID .I p -¤ò»ý¤Ä¥×¥í¥»¥¹¤Î¥»¥Ã¥·¥ç¥ó ID ¤òÊÖ¤¹ -(¥×¥í¥»¥¹¤Î¥»¥Ã¥·¥ç¥ó ID ¤Ï ¥»¥Ã¥·¥ç¥ó¥ê¡¼¥À¡¼¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤Ç¤¢¤ë)¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¥»¥Ã¥·¥ç¥ó ID ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\fI(pid_t) \-1\fP ¤¬ÊÖ¤µ¤ì¡¢ +を持つプロセスのセッション ID を返す +(プロセスのセッション ID は セッションリーダーのプロセスグループ ID である)。 +.SH 返り値 +成功すると、セッション ID が返される。 +エラーの場合、\fI(pid_t) \-1\fP が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EPERM -¥×¥í¥»¥¹ ID +プロセス ID .I p -¤Î¥×¥í¥»¥¹¤Ï¸ºß¤¹¤ë¤¬¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÈƱ¤¸¥»¥Ã¥·¥ç¥ó¤Ç¤Ï¤Ê¤¯¡¢ -¤µ¤é¤Ë¼ÂÁõ¤¬¤³¤Î¾õÂÖ¤ò¥¨¥é¡¼¤ÈȽÃǤ·¤¿¾ì¹ç¡£ +のプロセスは存在するが、呼び出し元のプロセスと同じセッションではなく、 +さらに実装がこの状態をエラーと判断した場合。 .TP .B ESRCH -¥×¥í¥»¥¹ ID ¤¬ +プロセス ID が .I p -¤Î¥×¥í¥»¥¹¤¬¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¥Ð¡¼¥¸¥ç¥ó 2.0 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +のプロセスがない。 +.SH バージョン +このシステムコールは Linux バージョン 2.0 以降で利用可能である。 .\" Linux has this system call since Linux 1.3.44. .\" There is libc support since libc 5.2.19. -.SH ½àµò +.SH 準拠 SVr4, POSIX.1-2001 -.SH Ãí°Õ -Linux ¤Ï +.SH 注意 +Linux は .B EPERM -¤òÊÖ¤µ¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +を返さない。 +.SH 関連項目 .BR getpgid (2), .BR setsid (2), .BR credentials (7) diff --git a/release/man2/getsockname.2 b/release/man2/getsockname.2 index f6031f6e..4de879b0 100644 --- a/release/man2/getsockname.2 +++ b/release/man2/getsockname.2 @@ -45,75 +45,75 @@ .\" by Yuichi SATO .\" .TH GETSOCKNAME 2 2008-12-03 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -getsockname \- ¥½¥±¥Ã¥È¤Î̾Á°¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +getsockname \- ソケットの名前を取得する +.SH 書式 .nf .B #include .sp .BI "int getsockname(int " sockfd ", struct sockaddr *" addr \ ", socklen_t *" addrlen ); .fi -.SH ÀâÌÀ +.SH 説明 .BR getsockname () -¤Ï¡¢¥½¥±¥Ã¥È +は、ソケット .I sockfd -¤Ë·ë¤ÓÉÕ¤±¤é¤ì¤Æ¤¤¤ë¸½ºß¤Î¥¢¥É¥ì¥¹¤ò¡¢ +に結び付けられている現在のアドレスを、 .I addr -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ +が指すバッファに格納して返す。 .I addrlen -°ú¤­¿ô¤Ï¡¢ +引き数は、 .I addr -¤¬»Ø¤·¤Æ¤¤¤ëÎΰè¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤Ë½é´ü²½¤·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -´Ø¿ô¤¬ÊÖ¤ë»þ¤Ë¤Ï¡¢ +が指している領域のサイズ (バイト単位) に初期化しておかなければならない。 +関数が返る時には、 .I addrlen -¤Ë¤Ï¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Î¼ÂºÝ¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤¬³ÊǼ¤µ¤ì¤ë¡£ +にはソケットアドレスの実際のサイズ (バイト単位) が格納される。 -ÅϤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤¬¾®¤µ²á¤®¤¿¾ì¹ç¤Ï¡¢ÊÖ¤µ¤ì¤ë¥¢¥É¥ì¥¹¤ÎËöÈø¤¬ÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ -¤³¤Î¾ì¹ç¤Ë¤Ï¡¢ +渡されたバッファが小さ過ぎた場合は、返されるアドレスの末尾が切り詰められる。 +この場合には、 .I addrlen -¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·»þ¤Ë»ØÄꤵ¤ì¤¿Ãͤè¤ê¤âÂ礭¤ÊÃͤ¬³ÊǼ¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç 0 ¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤òÊÖ¤·¡¢ +には、呼び出し時に指定された値よりも大きな値が格納される。 +.SH 返り値 +成功した場合 0 を返す。失敗した場合 \-1 を返し、 .I errno -¤ò¥¨¥é¡¼¤ÎÆâÍƤ˽¾¤Ã¤ÆÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +をエラーの内容に従って設定する。 +.SH エラー .TP .B EBADF -°ú¤­¿ô +引き数 .I sockfd -¤¬Í­¸ú¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿ (descriptor) ¤Ç¤Ï¤Ê¤¤¡£ +が有効なディスクリプタ (descriptor) ではない。 .TP .B EFAULT -°ú¤­¿ô +引き数 .I addr -¤Î»Ø¤·¤Æ¤¤¤ë¥á¥â¥ê¤¬¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ÎÍ­¸ú¤ÊÉôʬ¤Ç¤Ï¤Ê¤¤¡£ +の指しているメモリがプロセスのアドレス空間の有効な部分ではない。 .TP .B EINVAL .I addrlen -¤¬ÉÔÀµ¤Ç¤¢¤ë (Î㤨¤Ð¡¢Éé¤Ç¾ì¹ç¤Ê¤É)¡£ +が不正である (例えば、負で場合など)。 .TP .B ENOBUFS -½èÍý¤ò¤¹¤ë¤À¤±¤Î½½Ê¬¤Ê¥ê¥½¡¼¥¹¤¬¥·¥¹¥Æ¥à¤Ë̵¤¤¡£ +処理をするだけの十分なリソースがシステムに無い。 .TP .B ENOTSOCK -°ú¤­¿ô +引き数 .I sockfd -¤¬¥½¥±¥Ã¥È¤Ç¤Ï¤Ê¤¯¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ -.SH ½àµò +がソケットではなくファイルである。 +.SH 準拠 SVr4, 4.4BSD .RB ( getsockname () -´Ø¿ô¤Ï 4.2BSD ¤ÇÄɲ䵤줿), POSIX.1-2001. -.\" SVr4 ¤Ë¤Ï¾¤Ë ENOMEM ¤È ENOSR ¤Î¥¨¥é¡¼¥³¡¼¥É¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ -.SH Ãí°Õ +関数は 4.2BSD で追加された), POSIX.1-2001. +.\" SVr4 には他に ENOMEM と ENOSR のエラーコードについての記述がある。 +.SH 注意 .BR getsockname () -¤Î»°ÈÖÌܤΰú¤­¿ô¤Ï (4.x BSD ¤ä libc4, libc5 ¤ÈƱÍͤË) ¼ÂºÝ¤Ë¤Ï \fIint *\fP -¤Ç¤¢¤ë¡£ glibc ¤Ç¤â»È¤ï¤ì¤Æ¤¤¤ë¸½ºß¤Î \fIsocklen_t\fP ¤Ë´Ø¤·¤Æ¡¢ -POSIX ¤Ë¤Ï¾¯¤·º®Í𤬤¢¤ë¡£ -¾Ü¤·¤¯¤Ï +の三番目の引き数は (4.x BSD や libc4, libc5 と同様に) 実際には \fIint *\fP +である。 glibc でも使われている現在の \fIsocklen_t\fP に関して、 +POSIX には少し混乱がある。 +詳しくは .BR accept (2) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を参照のこと。 +.SH 関連項目 .BR bind (2), .BR socket (2), .BR getifaddrs (3), diff --git a/release/man2/getsockopt.2 b/release/man2/getsockopt.2 index dbb9903f..5b3a58ed 100644 --- a/release/man2/getsockopt.2 +++ b/release/man2/getsockopt.2 @@ -48,11 +48,11 @@ .\" Updated Sun Oct 12 JST 2003 by Kentaro Shirakata .\" .TH GETSOCKOPT 2 2008-12-03 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -getsockopt, setsockopt \- ¥½¥±¥Ã¥È¤Î¥ª¥×¥·¥ç¥ó¤ÎÀßÄê¤È¼èÆÀ¤ò¹Ô¤Ê¤¦ -.SH ½ñ¼° +.SH 名前 +getsockopt, setsockopt \- ソケットのオプションの設定と取得を行なう +.SH 書式 .nf -.BR "#include " " /* ¡ÖÃí°Õ¡×»²¾È */" +.BR "#include " " /* 「注意」参照 */" .br .B #include .sp @@ -61,148 +61,148 @@ getsockopt, setsockopt \- .BI "int setsockopt(int " sockfd ", int " level ", int " optname , .BI " const void *" optval ", socklen_t " optlen ); .fi -.SH ÀâÌÀ +.SH 説明 .BR getsockopt () -¤È +と .BR setsockopt () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +は、ファイルディスクリプタ .I socket -¤Ç»²¾È¤µ¤ì¤ë¥½¥±¥Ã¥È¤Ë´ØÏ¢¤¹¤ë¥ª¥×¥·¥ç¥ó¤ÎÁàºî¤ò¹Ô¤¦¡£ -¥ª¥×¥·¥ç¥ó¤ÏÊ£¿ô¤Î¥×¥í¥È¥³¥ëÁØ(level)¤Ë¸ºß¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¤¬¡¢ -¤³¤ì¤é¤Ï¾ï¤ËºÇ¾å°Ì¤Î¥½¥±¥Ã¥ÈÁؤؤÈÀßÄꤵ¤ì¤ë¡£ +で参照されるソケットに関連するオプションの操作を行う。 +オプションは複数のプロトコル層(level)に存在するかもしれないが、 +これらは常に最上位のソケット層へと設定される。 -¥½¥±¥Ã¥È¡¦¥ª¥×¥·¥ç¥ó¤òÁàºî¤¹¤ëºÝ¤Ë¤Ï¡¢¥ª¥×¥·¥ç¥ó¤ÎÁØ (level) ¤È -¥ª¥×¥·¥ç¥ó¤Î̾Á°¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥½¥±¥Ã¥È API Áؤǥª¥×¥·¥ç¥ó¤òÁàºî¤¹¤ë°Ù¤Ë¤Ï¡¢ +ソケット・オプションを操作する際には、オプションの層 (level) と +オプションの名前を指定しなければならない。 +ソケット API 層でオプションを操作する為には、 .I level -¤ò +を .B SOL_SOCKET -¤Ë»ØÄꤹ¤ë¡£ -¾¤ÎÁ´¤Æ¤ÎÁؤǥª¥×¥·¥ç¥ó¤òÁàºî¤¹¤ë°Ù¤Ë¤Ï¡¢Í¿¤¨¤é¤ì¤¿¥ª¥×¥·¥ç¥ó¤Î -À©¸æ¼çÂΤȤʤë¥×¥í¥È¥³¥ë¤Î¥×¥í¥È¥³¥ëÈÖ¹æ¤ò»ØÄꤹ¤ë¡£Î㤨¤Ð¡¢ -¥ª¥×¥·¥ç¥ó¤¬ +に指定する。 +他の全ての層でオプションを操作する為には、与えられたオプションの +制御主体となるプロトコルのプロトコル番号を指定する。例えば、 +オプションが .B TCP -¥×¥í¥È¥³¥ë¤Ç²ò¼á¤µ¤ì¤ë¤Ù¤­¤³¤È¤ò»Ø¼¨¤¹¤ë¤Ë¤Ï¡¢ +プロトコルで解釈されるべきことを指示するには、 .I level -¤Ë +に .B TCP -¤Î¥×¥í¥È¥³¥ëÈÖ¹æ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +のプロトコル番号を指定しなければならない。 .BR getprotoent (3) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .I optval -¤È +と .I optlen -°ú¤­¿ô¤Ï +引き数は .BR setsockopt () -¤Î¥ª¥×¥·¥ç¥ó¤ÎÃͤ˥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ +のオプションの値にアクセスするために用いられる。 .BR getsockopt () -¤Ç¤ÏÍ׵ᤷ¤¿¥ª¥×¥·¥ç¥ó¤ÎÃͤòÊÖ¤¹¤¿¤á¤Î¥Ð¥Ã¥Õ¥¡¡¼¤ò»ØÄꤹ¤ë¡£ +では要求したオプションの値を返すためのバッファーを指定する。 .BR getsockopt () -¤Ç¤Ï +では .I optlen -¤ÏÃͤȷë²ÌξÍѤΰú¤­¿ô¤Ç¡¢ºÇ½é¤Ë +は値と結果両用の引き数で、最初に .I optval -¤Î»Ø¤·¤Æ¤¤¤ë¥Ð¥Ã¥Õ¥¡¡¼¤Î¥µ¥¤¥º¤òÍ¿¤¨¡¢¼ÂºÝ¤ËÊÖ¤µ¤ì¤ëÃͤΥµ¥¤¥º¤Ë -½ñ¤­´¹¤¨¤é¤ì¤ë¡£¤â¤·¥ª¥×¥·¥ç¥óÃͤòÍ¿¤¨¤º¡¢ÊÖ¤µ¤ì¤â¤·¤Ê¤¤¾ì¹ç¤Ë¤Ï +の指しているバッファーのサイズを与え、実際に返される値のサイズに +書き換えられる。もしオプション値を与えず、返されもしない場合には .I optval -¤Ï NULL ¤Ç¤âÎɤ¤¡£ +は NULL でも良い。 .I optname -¤ª¤è¤Ó»ØÄꤵ¤ì¤¿¥ª¥×¥·¥ç¥ó¤Ï²ò¼á¤µ¤ì¤º¤Ë¡¢Å¬Àڤʥץí¥È¥³¥ë¡¦¥â¥¸¥å¡¼¥ë¤Ë -ÅϤµ¤ì¤Æ²ò¼á¤µ¤ì¤ë¡£¥¤¥ó¥¯¥ë¡¼¥É¡¦¥Õ¥¡¥¤¥ë +および指定されたオプションは解釈されずに、適切なプロトコル・モジュールに +渡されて解釈される。インクルード・ファイル .I -¤Ë¤Ï¸å½Ò¤Î¥½¥±¥Ã¥ÈÁؤΥª¥×¥·¥ç¥ó¤ÎÄêµÁ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -¾¤Î¥×¥í¥È¥³¥ëÁؤǤÏ̾Á°¤ä·Á¼°¤Ï°Û¤Ê¤ë¡£ -¥Þ¥Ë¥å¥¢¥ë¤Î¥»¥¯¥·¥ç¥ó 4 ¤ÎŬÀڤʥ¨¥ó¥È¥ê¤ò»²¾È¤¹¤ë¤³¤È¡£ +には後述のソケット層のオプションの定義が含まれている。 +他のプロトコル層では名前や形式は異なる。 +マニュアルのセクション 4 の適切なエントリを参照すること。 -¤Û¤È¤ó¤É¤Î¥½¥±¥Ã¥ÈÁؤΥª¥×¥·¥ç¥ó¤Ï +ほとんどのソケット層のオプションは .I optval -¤Ë +に .I int -°ú¤­¿ô¤òÍøÍѤ¹¤ë¡£ +引き数を利用する。 .BR setsockopt () -¤Ç¡¢ÆóÃÍ(boolean)¥ª¥×¥·¥ç¥ó¤òÍ­¸ú(enable)¤Ë¤¹¤ë¤Ë¤Ï¥¼¥í°Ê³°¤ò»ØÄꤷ¡¢ -̵¸ú(disable)¤Ë¤¹¤ë¤Ë¤Ï¥¼¥í¤ò»ØÄꤹ¤ë¡£ +で、二値(boolean)オプションを有効(enable)にするにはゼロ以外を指定し、 +無効(disable)にするにはゼロを指定する。 .PP -ÍøÍѲÄǽ¤Ê¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤ÎÀâÌÀ¤Ë´Ø¤·¤Æ¤Ï¡¢ +利用可能なソケットオプションの説明に関しては、 .BR socket (7) -¤ÈŬÀڤʥץí¥È¥³¥ë¤Î man ¥Ú¡¼¥¸¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£¥¨¥é¡¼»þ¤Ë¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +と適切なプロトコルの man ページを参照のこと。 +.SH 返り値 +成功した場合にはゼロを返す。エラー時には \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP 10 .B EBADF -°ú¤­¿ô +引き数 .I sockfd -¤¬Í­¸ú¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なディスクリプタでない。 .TP .B EFAULT .I optval -¤Ç»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤¬¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ÎÍ­¸ú¤ÊÉôʬ¤Ç¤Ï¤Ê¤¤¡£ +で指定されたアドレスがプロセスのアドレス空間の有効な部分ではない。 .BR getsockopt () -¤Î¾ì¹ç¡¢ +の場合、 .I optlen -¤¬¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ÎÍ­¸ú¤ÊÉôʬ¤Ç¤Ê¤¤¾ì¹ç¤Ë¤â¤³¤Î¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ +がプロセスのアドレス空間の有効な部分でない場合にもこのエラーが返される。 .TP .B EINVAL .BR setsockopt () -¤Ç +で .I option -¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +が不正である。 .I optval -¤Ë̵¸ú¤ÊÃͤ¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤â¡¢¤³¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë -(Î㤨¤Ð¡¢ +に無効な値が指定された場合にも、このエラーが発生する可能性がある +(例えば、 .BR ip (7) -¤ËÀâÌÀ¤¬¤¢¤ë +に説明がある .B IP_ADD_MEMBERSHIP -¥ª¥×¥·¥ç¥ó¤Ê¤É)¡£ +オプションなど)。 .TP .B ENOPROTOOPT -»ØÄꤵ¤ì¤¿ÁØ(level)¤Ë¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¸ºß¤·¤Ê¤¤¡£ +指定された層(level)にはこのオプションは存在しない。 .TP .B ENOTSOCK -°ú¤­¿ô +引き数 .I sockfd -¤Ï¥Õ¥¡¥¤¥ë¤Ç¤¢¤ê¡¢¥½¥±¥Ã¥È¤Ç¤Ê¤¤¡£ -.SH ½àµò -SVr4, 4.4BSD (¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï 4.2BSD ¤ÇºÇ½é¤Ë¸½¤ì¤¿), +はファイルであり、ソケットでない。 +.SH 準拠 +SVr4, 4.4BSD (これらのシステム・コールは 4.2BSD で最初に現れた), POSIX.1-2001. -.\" SVr4 ¤Ë¤Ï¾¤Ë ENOMEM ¤È ENOSR ¥¨¥é¡¼¡¦¥³¡¼¥É¤Ë¤Ä¤¤¤Æ¤âµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -.\" ¤·¤«¤·¡¢ +.\" SVr4 には他に ENOMEM と ENOSR エラー・コードについても記述されている。 +.\" しかし、 .\" .BR SO_SNDLOWAT ", " SO_RCVLOWAT ", " SO_SNDTIMEO ", " SO_RCVTIMEO -.\" ¥ª¥×¥·¥ç¥ó¤Ë´Ø¤¹¤ëµ­½Ò¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ -POSIX.1-2001 ¤Ç¤Ï +.\" オプションに関する記述はない。 +.SH 注意 +POSIX.1-2001 では .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ïɬ¿Ü¤È¤µ¤ì¤Æ¤ª¤é¤º¡¢ -Linux ¤Ç¤Ï¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÏɬÍפǤϤʤ¤¡£ -¤·¤«¤·¡¢Îò»ËŪ¤Ë¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¼ÂÁõ (BSD ·Ï) ¤Ç¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬ -ɬÍפǤ¢¤ê¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤ò -¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤Î¤¬¸­ÌÀ¤Ç¤¢¤í¤¦¡£ +のインクルードは必須とされておらず、 +Linux ではこのヘッダファイルは必要ではない。 +しかし、歴史的には、いくつかの実装 (BSD ç³») でこのヘッダファイルが +必要であり、移植性が必要なアプリケーションではこのファイルを +インクルードするのが賢明であろう。 .BR getsockopt () -¤È +と .BR setsockopt () -¤Î +の .I optlen -°ú¤­¿ô¤Ï¼ÂºÝ¤Ï +引き数は実際は .I int [*] -¤Ç¤¢¤ë (¤½¤·¤Æ 4.x BSD ¤È libc4 ¤È libc5 ¤Ï¤½¤¦¤Ê¤Ã¤Æ¤¤¤ë)¡£ -POSIX ¤Ç¤Ïäþ;¶ÊÀÞ¤ò·Ð¤Æ¸½ºß¤Î +である (そして 4.x BSD と libc4 と libc5 はそうなっている)。 +POSIX では紆余曲折を経て現在の .I socklen_t -¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢ -glibc ¤Ç¤â +になっており、 +glibc でも .I socklen_t -¤ò»È¤Ã¤Æ¤¤¤ë¡£ +を使っている。 .BR accept (2) -¤â»²¾È¤Î¤³¤È¡£ -.SH ¥Ð¥° -¥½¥±¥Ã¥È¤Î¥ª¥×¥·¥ç¥ó¤Î¤¤¤¯¤Ä¤«¤Ï¥·¥¹¥Æ¥à¤Î¤è¤êÄ㤤ÁØ¤Ç -½èÍý¤µ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +も参照のこと。 +.SH バグ +ソケットのオプションのいくつかはシステムのより低い層で +処理されるべきである。 +.SH 関連項目 .BR ioctl (2), .BR socket (2), .BR getprotoent (3), diff --git a/release/man2/gettid.2 b/release/man2/gettid.2 index 6657f667..3d265c22 100644 --- a/release/man2/gettid.2 +++ b/release/man2/gettid.2 @@ -30,50 +30,50 @@ .\" Updated 2008-08-04, Akihiro MOTOKI , LDP v3.05 .\" .TH GETTID 2 2008-04-14 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -gettid \- ¥¹¥ì¥Ã¥ÉID ¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +gettid \- スレッドID を取得する +.SH 書式 .nf .B #include .sp .B pid_t gettid(void); .fi -.SH ÀâÌÀ +.SH 説明 .BR gettid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥¹¥ì¥Ã¥É ID (TID) ¤òÊÖ¤¹¡£ -¥·¥ó¥°¥ë¥¹¥ì¥Ã¥É¤Î¥×¥í¥»¥¹¤Ç¤Ï¡¢¥¹¥ì¥Ã¥É ID ¤Ï +は呼び出し元のスレッド ID (TID) を返す。 +シングルスレッドのプロセスでは、スレッド ID は .RB ( getpid (2) -¤¬ÊÖ¤¹¥×¥í¥»¥¹ ID (PID) ¤ÈÅù¤·¤¤¡£ -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Î¥×¥í¥»¥¹¤Ç¤Ï¡¢Á´¤Æ¤Î¥¹¥ì¥Ã¥É¤ÏƱ¤¸ PID ¤ò»ý¤Ä¤¬¡¢ -¤½¤ì¤¾¤ì¤Î¥¹¥ì¥Ã¥É¤Ï°ì°Õ¤Ê TID ¤ò»ý¤Ä¡£ -¤µ¤é¤Ê¤ë¾ÜºÙ¤Ï¡¢ +が返すプロセス ID (PID) と等しい。 +マルチスレッドのプロセスでは、全てのスレッドは同じ PID を持つが、 +それぞれのスレッドは一意な TID を持つ。 +さらなる詳細は、 .BR clone (2) -¤Î +の .BR CLONE_THREAD -¤Ë¤Ä¤¤¤Æ¤ÎµÄÏÀ¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤Î¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥¹¥ì¥Ã¥ÉID ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -¤³¤Î¥³¡¼¥ë¤Ï¾ï¤ËÀ®¸ù¤¹¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +についての議論を参照すること。 +.SH 返り値 +成功の場合、呼び出し元のプロセスのスレッドID を返す。 +.SH エラー +このコールは常に成功する。 +.SH バージョン .BR gettid () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¥«¡¼¥Í¥ë 2.4.11 ¤Î Linux ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +システムコールは、カーネル 2.4.11 の Linux で初めて登場した。 +.SH 準拠 .BR gettid () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢ -°Ü¿¢¤òÁÛÄꤷ¤¿¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +は Linux 固有であり、 +移植を想定したプログラムでは使用すべきではない。 +.SH 注意 +glibc はこのシステムコールに対するラッパー関数を提供していない。 .BR syscall (2) -¤ò»È¤Ã¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¡£ +を使って呼び出すこと。 .\" See http://sourceware.org/bugzilla/show_bug.cgi?id=6399 .\" "gettid() should have a wrapper" -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ÊÖ¤¹¥¹¥ì¥Ã¥É ID ¤Ï -POSIX ¥¹¥ì¥Ã¥É ID +このシステムコールが返すスレッド ID は +POSIX スレッド ID .RB ( pthread_self (3) -¤¬ÊÖ¤¹Û£Ëæ¤ÊÃÍ) ¤ÈƱ¤¸¤â¤Î¤Ç¤Ï¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +が返す曖昧な値) と同じものではない。 +.SH 関連項目 .BR clone (2), .BR fork (2), .BR getpid (2) diff --git a/release/man2/gettimeofday.2 b/release/man2/gettimeofday.2 index ab8d5c1b..075525b6 100644 --- a/release/man2/gettimeofday.2 +++ b/release/man2/gettimeofday.2 @@ -47,16 +47,16 @@ .\" Updated 2006-07-23, Akihiro MOTOKI .\" Updated 2009-04-13, Akihiro MOTOKI, LDP v3.20 .\" -.\"WORD: timezone ¥¿¥¤¥à¥¾¡¼¥ó -.\"WORD: daylight savings times ²Æ»þ´Ö(daylight savings times) -.\"WORD: macro ¥Þ¥¯¥í +.\"WORD: timezone タイムゾーン +.\"WORD: daylight savings times 夏時間(daylight savings times) +.\"WORD: macro マクロ .\"WORD: null NULL -.\"WORD: superuser ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ +.\"WORD: superuser スーパー・ユーザー .\" .TH GETTIMEOFDAY 2 2009-03-25 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -gettimeofday, settimeofday \- »þ¹ï¤ò¼èÆÀ/ÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +gettimeofday, settimeofday \- 時刻を取得/設定する +.SH 書式 .nf .B #include @@ -67,185 +67,185 @@ gettimeofday, settimeofday \- .fi .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR settimeofday (): _BSD_SOURCE -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR gettimeofday () -¤È +と .BR settimeofday () -¤Ï»þ¹ï¤È¥¿¥¤¥à¥¾¡¼¥ó¤ò¼èÆÀ¤Þ¤¿¤ÏÀßÄꤹ¤ë¡£ +は時刻とタイムゾーンを取得または設定する。 .I tv -°ú¤­¿ô¤Ï +引き数は .I struct timeval -¤Ç¤¢¤ë +である .RI ( -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë): +で定義されている): .sp .in +4n .nf struct timeval { - time_t tv_sec; /* Éà */ - suseconds_t tv_usec; /* ¥Þ¥¤¥¯¥íÉà */ + time_t tv_sec; /* 秒 */ + suseconds_t tv_usec; /* マイクロ秒 */ }; .fi .in .sp -¤³¤ì¤Ë¤è¤êµª¸µ (the Epoch: +これにより紀元 (the Epoch: .BR time (2) -¤ò»²¾È) ¤«¤é¤ÎÉäȥޥ¤¥¯¥íÉ䬼èÆÀ¤Ç¤­¤ë¡£ +を参照) からの秒とマイクロ秒が取得できる。 .I tz -°ú¤­¿ô¤Ï +引き数は .I "struct timezone" -¤Ç¤¢¤ë: +である: .sp .in +4n .nf struct timezone { - int tz_minuteswest; /* ¥°¥ê¥Ë¥Ã¥¸É¸½à»þ¤È¤Îº¹ (À¾Êý¤Ëʬñ°Ì) */ - int tz_dsttime; /* ²Æ»þ´ÖÄ´À°¤Î·¿ */ + int tz_minuteswest; /* グリニッジ標準時との差 (西方に分単位) */ + int tz_dsttime; /* 夏時間調整の型 */ }; .fi .in .PP .I tv -¤ä +や .I tz -¤¬ NULL ¤Î¾ì¹ç¡¢Âбþ¤¹¤ë¹½Â¤ÂΤÎÀßÄê/¼èÆÀ¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ +が NULL の場合、対応する構造体の設定/取得は行われない。 .\" The following is covered under EPERM below: .\" .PP .\" Only the superuser may use .\" .BR settimeofday (). .PP .I timezone -¹½Â¤ÂΤò»È¤¦¤Î¤Ï»þÂåÃÙ¤ì (obsolete) ¤Ç¤¢¤ë: +構造体を使うのは時代遅れ (obsolete) である: .I tz -°ú¤­¿ô¤ÏÄ̾ï¤Ï NULL ¤Ë»ØÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£ +引き数は通常は NULL に指定すべきである。 .I tz_dsttime -¥Õ¥£¡¼¥ë¥É¤Ï Linux ¤Ç¤Ï°ìÀڻȤï¤ì¤Æ¤³¤Ê¤«¤Ã¤¿; -libc ¤ä glibc ¤Ç¤â¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤³¤Ê¤«¤Ã¤¿¤·¡¢ -¤³¤ì¤«¤é¤â¥µ¥Ý¡¼¥È¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ -¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹Ãæ¤ÎÀë¸À°Ê³°¤Ç¡¢¤³¤Î¥Õ¥£¡¼¥ë¥É¤¬Â¸ºß¤¹¤ë¤Î¤ÏÁ´¤Æ¥Ð¥°¤Ç¤¢¤ë¡£ -¤è¤Ã¤Æ¤³¤ì°Ê¹ß¤Îµ­½Ò¤Ï¡¢½ã¿è¤ËÎò»ËŪ¶½Ì£¤Ë´ð¤Å¤¤¤¿¤â¤Î¤Ç¤¢¤ë¡£ +フィールドは Linux では一切使われてこなかった; +libc や glibc でもサポートされてこなかったし、 +これからもサポートされることはない。 +カーネルのソース中の宣言以外で、このフィールドが存在するのは全てバグである。 +よってこれ以降の記述は、純粋に歴史的興味に基づいたものである。 .I tz_dsttime -¥Õ¥£¡¼¥ë¥É¤Ë¤Ï (°Ê²¼¤ÇÍ¿¤¨¤é¤ì¤ë¤è¤¦¤Ê) ¥·¥ó¥Ü¥ëÄê¿ô¤¬³ÊǼ¤µ¤ì¤ë¡£ -¤³¤ì¤Ï°ìǯ¤Î¤¦¤Á¤Ç¤¤¤Ä²Æ»þ´Ö (Daylight Savings Time) ¤ò¼Â»Ü¤¹¤ë¤«¤ò¼¨¤·¤Æ¤¤¤ë -(Ãí°Õ: ¤½¤ÎÃͤÏǯ´Ö¤òÄ̤·¤¿Äê¿ô¤Ç¤¢¤ë: -²Æ»þ´Ö¤¬¼Â»ÜÃæ¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¤ï¤±¤Ç¤Ï¤Ê¤¯¡¢ -¥¢¥ë¥´¥ê¥º¥à¤òÁªÂò¤·¤Æ¤¤¤ë¤À¤±¤Ç¤¢¤ë)¡£ -²Æ»þ´Ö¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë: +フィールドには (以下で与えられるような) シンボル定数が格納される。 +これは一年のうちでいつ夏時間 (Daylight Savings Time) を実施するかを示している +(注意: その値は年間を通した定数である: +夏時間が実施中であることを示すわけではなく、 +アルゴリズムを選択しているだけである)。 +夏時間は以下のように定義される: .in +4n .nf -\fBDST_NONE\fP /* ²Æ»þ´Ö¤òºÎÍѤ·¤Æ¤¤¤Ê¤¤ */ +\fBDST_NONE\fP /* 夏時間を採用していない */ .br -\fBDST_USA\fP /* ¥¢¥á¥ê¥«¹ç½°¹ñ¼°²Æ»þ´Ö */ +\fBDST_USA\fP /* アメリカ合衆国式夏時間 */ .br -\fBDST_AUST\fP /* ¥ª¡¼¥¹¥È¥é¥ê¥¢¼°²Æ»þ´Ö */ +\fBDST_AUST\fP /* オーストラリア式夏時間 */ .br -\fBDST_WET\fP /* À¾¥è¡¼¥í¥Ã¥Ñ¼°²Æ»þ´Ö */ +\fBDST_WET\fP /* 西ヨーロッパ式夏時間 */ .br -\fBDST_MET\fP /* Ãæ±û¥è¡¼¥í¥Ã¥Ñ¼°²Æ»þ´Ö */ +\fBDST_MET\fP /* 中央ヨーロッパ式夏時間 */ .br -\fBDST_EET\fP /* Åì¥è¡¼¥í¥Ã¥Ñ¼°²Æ»þ´Ö */ +\fBDST_EET\fP /* 東ヨーロッパ式夏時間 */ .br -\fBDST_CAN\fP /* ¥«¥Ê¥À */ +\fBDST_CAN\fP /* カナダ */ .br -\fBDST_GB\fP /* ¥°¥ì¡¼¥È¥Ö¥ê¥Æ¥ó¤ª¤è¤Ó¥¢¥¤¥ë¥é¥ó¥É */ +\fBDST_GB\fP /* グレートブリテンおよびアイルランド */ .br -\fBDST_RUM\fP /* ¥ë¡¼¥Þ¥Ë¥¢ */ +\fBDST_RUM\fP /* ルーマニア */ .br -\fBDST_TUR\fP /* ¥È¥ë¥³ */ +\fBDST_TUR\fP /* トルコ */ .br -\fBDST_AUSTALT\fP /* 1986ǯ¤Ë°Ü¹Ô¤µ¤ì¤¿¥ª¡¼¥¹¥È¥é¥ê¥¢¼° */ +\fBDST_AUSTALT\fP /* 1986年に移行されたオーストラリア式 */ .fi .in .PP -ÅöÁ³¤Î¤³¤È¤Ê¤¬¤é¡¢²Æ»þ´Ö¤¬¤É¤Î´ü´Ö¤Ë¼Â»Ü¤µ¤ì¤ë¤«¤ò -¹ñ¤´¤È¤Î´Êñ¤Ê¥¢¥ë¥´¥ê¥º¥à¤ÇƳ¤¯¤³¤È¤¬¤Ç¤­¤Ê¤¤¤³¤È¤¬È½ÌÀ¤·¤¿¡£ -¼ÂºÝ¡¢²Æ»þ´Ö¤Î´ü´Ö¤Ïͽ¬ÉÔ²Äǽ¤ÊÀ¯¼£Åª·èÄê¤Ç·è¤Þ¤ë¡£ -¤½¤Î¤¿¤á¤³¤ÎÊýË¡¤Ç¥¿¥¤¥à¡¦¥¾¡¼¥ó¤òɽ¤¹¤³¤È¤ÏÃÇÇ°¤µ¤ì¤¿¡£ -Linux ¤Ë¤ª¤¤¤Æ +当然のことながら、夏時間がどの期間に実施されるかを +国ごとの簡単なアルゴリズムで導くことができないことが判明した。 +実際、夏時間の期間は予測不可能な政治的決定で決まる。 +そのためこの方法でタイム・ゾーンを表すことは断念された。 +Linux において .BR settimeofday () -¤ò¸Æ¤Ó½Ð¤¹¤È¤­¤Ï¡¢ +を呼び出すときは、 .I tz_dsttime -¥Õ¥£¡¼¥ë¥É¤ò 0 ¤Ë¤¹¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +フィールドを 0 にするべきである。 .PP -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR settimeofday () -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ë´ØÏ¢¤·¤Æ¡¢ÆÈÆäΡ֥¯¥í¥Ã¥¯¤Î¥º¥ì (warp clock)¡×¤¬Â¸ºß¤¹¤ë¡£ -¤³¤ì¤Ï (¥Ö¡¼¥È¸å¤Î) ºÇ½é¤Î¸Æ¤Ó½Ð¤·¤Ç +システム・コールに関連して、独特の「クロックのズレ (warp clock)」が存在する。 +これは (ブート後の) 最初の呼び出しで .I tz -°ú¤­¿ô¤¬ NULL ¤Ç¤Ê¤¯¡¢ +引き数が NULL でなく、 .I tv -°ú¤­¿ô¤¬ NULL ¤Ç +引き数が NULL で .I tz_minuteswest -¥Õ¥£¡¼¥ë¥É¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¤Ëµ¯¤³¤ë¡£ -¤³¤Î¤è¤¦¤Ê¾ì¹ç¡¢ +フィールドが 0 でない場合に起こる。 +このような場合、 .BR settimeofday () -¤Ï CMOS ¥¯¥í¥Ã¥¯¤¬ÃÏÊý»þ (local time) ¤Ç¤¢¤ê¡¢ -UTC ¥·¥¹¥Æ¥à»þ´Ö¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡¢ +は CMOS クロックが地方時 (local time) であり、 +UTC システム時間を得るためには、 .I tz_minuteswest -¤Îʬ¤À¤±Áý²Ã¤µ¤»¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¤È¤ß¤Ê¤·¤Æ¤·¤Þ¤¦¡£ -µ¿¤¤¤â¤Ê¤¯¡¢¤³¤Îµ¡¹½¤ò»È¤¦¤³¤È¤ÏÎɤ¤¹Í¤¨¤Ç¤Ï¤Ê¤¤¡£ +の分だけ増加させなくてはならないとみなしてしまう。 +疑いもなく、この機構を使うことは良い考えではない。 .PP .I timeval -¹½Â¤ÂΤòÁàºî¤¹¤ë¤¿¤á¤Î¥Þ¥¯¥í¤ÎÀâÌÀ¤Ï +構造体を操作するためのマクロの説明は .BR timeradd (3) -¤Ë¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +にある。 +.SH 返り値 .BR gettimeofday () -¤È +と .BR settimeofday () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤·¡¢¼ºÇÔ¤·¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹ -(¤³¤Î¾ì¹ç¤Ï +は成功すると 0 を返し、失敗した場合は \-1 を返す +(この場合は .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë)¡£ -.SH ¥¨¥é¡¼ +が適切に設定される)。 +.SH エラー .TP .B EFAULT .I tv -¤« +か .I tz -¤Î¤É¤Á¤é¤«¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +のどちらかがアクセス可能なアドレス空間外を指している。 .TP .B EINVAL -¥¿¥¤¥à¥¾¡¼¥ó (¤Þ¤¿¤Ï¾¤Î²¿¤«) ¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +タイムゾーン (または他の何か) が不正である。 .TP .B EPERM -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë +呼び出し元プロセスに .BR settimeofday () -¤ò¸Æ¤Ó½Ð¤¹¤¿¤á¤Î½½Ê¬¤ÊÆø¢¤¬¤Ê¤¤¡£ -Linux ¤Ç¤Ï +を呼び出すための十分な特権がない。 +Linux では .B CAP_SYS_TIME -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤¬É¬ÍפǤ¢¤ë¡£ -.SH ½àµò -SVr4, 4.3BSD ¤Ë½àµò¤¹¤ë¡£ -POSIX.1-2001 ¤Ï +ケーパビリティ (capability) が必要である。 +.SH 準拠 +SVr4, 4.3BSD に準拠する。 +POSIX.1-2001 は .BR gettimeofday () -¤Ë¤Ä¤¤¤Æ¤Ïµ­½Ò¤·¤Æ¤¤¤ë¤¬¡¢ +については記述しているが、 .BR settimeofday () -¤Ë¤Ä¤¤¤Æ¤Ïµ­½Ò¤·¤Æ¤¤¤Ê¤¤¡£ -POSIX.1-2008 ¤Ç¤Ï +については記述していない。 +POSIX.1-2008 では .BR gettimeofday () -¤ÏÇÑ»ßͽÄê¤È¤µ¤ì¤Æ¤ª¤ê¡¢ -Âå¤ï¤ê¤Ë +は廃止予定とされており、 +代わりに .BR clock_gettime (2) -¤Î»ÈÍѤ¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ +の使用が推奨されている。 +.SH 注意 .LP -ÀÎ¤Ï +昔は .I struct timeval -¤Î¥Õ¥£¡¼¥ë¥É¤Ï +のフィールドは .I long -·¿¤Ç¤¢¤Ã¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +型であった。 +.SH 関連項目 .BR date (1), .BR adjtimex (2), .BR time (2), diff --git a/release/man2/getuid.2 b/release/man2/getuid.2 index 3829c878..32841619 100644 --- a/release/man2/getuid.2 +++ b/release/man2/getuid.2 @@ -32,9 +32,9 @@ .\" by Yuichi SATO .\" .TH GETUID 2 1993-07-23 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -getuid, geteuid \- ¥æ¡¼¥¶¡¼ ID ¤òÆÀ¤ë -.SH ½ñ¼° +.SH 名前 +getuid, geteuid \- ユーザー ID を得る +.SH 書式 .B #include .br .B #include @@ -42,29 +42,29 @@ getuid, geteuid \- .B uid_t getuid(void); .br .B uid_t geteuid(void); -.SH ÀâÌÀ +.SH 説明 .BR getuid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶¡¼ ID ¤òÊÖ¤¹¡£ +は呼び出し元のプロセスの実ユーザー ID を返す。 .BR geteuid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¾ï¤ËÀ®¸ù¤¹¤ë¡£ -.SH ½àµò +は呼び出し元のプロセスの実効ユーザー ID を返す。 +.SH エラー +これらの関数は常に成功する。 +.SH 準拠 POSIX.1-2001, 4.3BSD. -.SH Ãí°Õ -.SS Îò»Ë -UNIX V6 ¤Ç¤Ï +.SH 注意 +.SS 歴史 +UNIX V6 では .BR getuid () -¥³¡¼¥ë¤Ï +コールは .I "(euid << 8) + uid" -¤òÊÖ¤·¤Æ¤¤¤¿¡£ -UNIX V7 ¤Ç¤Ï +を返していた。 +UNIX V7 では .BR getuid () -¤È +と .BR geteuid () -¤È¤¤¤¦ÊÌ¡¹¤Î¥³¡¼¥ë¤¬Æ³Æþ¤µ¤ì¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +という別々のコールが導入された。 +.SH 関連項目 .BR getresuid (2), .BR setreuid (2), .BR setuid (2), diff --git a/release/man2/getxattr.2 b/release/man2/getxattr.2 index b4f0062e..bb735c5d 100644 --- a/release/man2/getxattr.2 +++ b/release/man2/getxattr.2 @@ -29,13 +29,13 @@ .\" Translated Tue Jul 8 02:47:19 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: extended attributes ³Èĥ°À­ -.\"WORD: namespace ̾Á°¶õ´Ö +.\"WORD: extended attributes 拡張属性 +.\"WORD: namespace 名前空間 .\" .TH GETXATTR 2 2001-12-01 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -getxattr, lgetxattr, fgetxattr \- ³Èĥ°À­¤ÎÃͤò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +getxattr, lgetxattr, fgetxattr \- 拡張属性の値を取得する +.SH 書式 .fam C .nf .B #include @@ -49,111 +49,111 @@ getxattr, lgetxattr, fgetxattr \- .BI " void\ *" value ", size_t " size ); .fi .fam T -.SH ÀâÌÀ -³Èĥ°À­¤Ï¡¢inode (¥Õ¥¡¥¤¥ë¡¢¥Ç¥£¥ì¥¯¥È¥ê¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯Åù) ¤Ë -´ØÏ¢ÉÕ¤±¤é¤ì¤¿ +.SH 説明 +拡張属性は、inode (ファイル、ディレクトリ、シンボリックリンク等) に +関連付けられた .IR name :\c .I value -¤ÎÂФǤ¢¤ë¡£ -¤³¤ì¤é¤Ï¡¢¥·¥¹¥Æ¥à¾å¤Î¤¹¤Ù¤Æ¤Î inode ¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿Ä̾ï¤Î°À­ +の対である。 +これらは、システム上のすべての inode に関連付けられた通常の属性 .RB ( stat (2) -¤¬ÊÖ¤¹¥Ç¡¼¥¿) ¤ò³ÈÄ¥¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -³Èĥ°À­¤Î¥³¥ó¥»¥×¥È¤Ï +が返すデータ) を拡張するものである。 +拡張属性のコンセプトは .BR attr (5) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ +に書かれている。 .PP .BR getxattr () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÆâ¤Î»ØÄꤵ¤ì¤¿ +は、ファイルシステム内の指定された .I path -¤ËÂбþ¤¹¤ë¡¢Ì¾Á° +に対応する、名前 .I name -¤Î³Èĥ°À­¤Î +の拡張属性の .I value -(ÃÍ) ¤ò¼èÆÀ¤¹¤ë¡£ -°À­ +(値) を取得する。 +属性 .I value -¤ÎŤµ¤¬ÊÖ¤µ¤ì¤ë¡£ +の長さが返される。 .PP .BR lgetxattr () -¤Ï +は .BR getxattr () -¤ÈƱ¤¸¤À¤¬¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¤Ë¡¢¥ê¥ó¥¯¤¬»²¾È¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë -¤Ç¤Ï¤Ê¤¯¡¢¥ê¥ó¥¯¤½¤Î¤â¤Î¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ëÅÀ¤À¤±¤¬°Û¤Ê¤ë¡£ +と同じだが、シンボリックリンクの場合に、リンクが参照しているファイル +ではなく、リンクそのものの情報を取得する点だけが異なる。 .PP .BR fgetxattr () -¤Ï +は .BR getxattr () -¤ÈƱ¤¸¤À¤¬¡¢ +と同じだが、 .I path -¤ÎÂå¤ï¤ê¤Ë +の代わりに .I fd -¤Ç»²¾È¤µ¤ì¤¿¥ª¡¼¥×¥óºÑ¤ß¥Õ¥¡¥¤¥ë¤Î¾ðÊó¤À¤±¤ò¼èÆÀ¤¹¤ëÅÀ¤¬°Û¤Ê¤ë +で参照されたオープン済みファイルの情報だけを取得する点が異なる .RI ( fd -¤Ï +は .BR open (2) -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë)¡£ +によって返される)。 .PP -³Èĥ°À­¤Î̾Á° +拡張属性の名前 .I name -¤ÏÉáÄ̤ΠNULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ç¤¢¤ë¡£ -̾Á°¤Ë¤Ï¡¢Ì¾Á°¶õ´Ö¤òɽ¤¹ÀÜƬ¼­ (prefix) ¤¬´Þ¤Þ¤ì¤ë; -¸Ä¡¹¤Î inode ¤ËÂФ·¤Æ¡¢¸ß¤¤¤ËÆÈΩ¤Ê̾Á°¶õ´Ö¤¬Ê£¿ô¤¢¤Ã¤Æ¤â¤è¤¤¡£ -³Èĥ°À­¤ÎÃͤϡ¢¤¢¤ë°ìÄê¤ÎŤµ¤ÎǤ°Õ¤Î¥Æ¥­¥¹¥È¡¦¥Ç¡¼¥¿¤Þ¤¿¤Ï -¥Ð¥¤¥Ê¥ê¡¦¥Ç¡¼¥¿¤Î½¸¹ç¤Ç¤¢¤ë¡£ +は普通の NULL 終端された文字列である。 +名前には、名前空間を表す接頭辞 (prefix) が含まれる; +個々の inode に対して、互いに独立な名前空間が複数あってもよい。 +拡張属性の値は、ある一定の長さの任意のテキスト・データまたは +バイナリ・データの集合である。 .PP .I size -¤Ë 0 ¤ò»ØÄꤷ¤Æ¶õ¤Î¥Ð¥Ã¥Õ¥¡¤ò¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÅϤ¹¤³¤È¤¬¤Ç¤­¡¢ -¤³¤Î¾ì¹ç¤Ë¤Ï»ØÄꤵ¤ì¤¿Ì¾Á°¤Î³Èĥ°À­¤Î¸½ºß¤Î¥µ¥¤¥º¤¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤ÎÊýË¡¤Ï¡¢³Èĥ°À­¤ÎÃͤòÊÝ»ý¤¹¤ë¤Î¤Ë½½Ê¬¤ÊÂ礭¤µ¤Î¥Ð¥Ã¥Õ¥¡¡¦¥µ¥¤¥º¤ò -¸«ÀѤâ¤ë¤Î¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡¢ +に 0 を指定して空のバッファをこれらのシステムコールに渡すことができ、 +この場合には指定された名前の拡張属性の現在のサイズが返される。 +この方法は、拡張属性の値を保持するのに十分な大きさのバッファ・サイズを +見積もるのに使うことができる、 .PP -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¡¦¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¡¢½é´ü¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤Î¿ä¬¤ò¤·¤¿¤ê¡¢ -Í¿¤¨¤é¤ì¤¿¥Ð¥Ã¥Õ¥¡¤¬¾®¤µ¤¹¤®¤¿¤³¤È¤òÊÖ¤êÃͤÇÃΤ餻¤ë¤³¤È¤Ç¥Ð¥Ã¥Õ¥¡¤òÂ礭¤¯ -¤·¤¿¤ê¤Ç¤­¤ë¤è¤¦¤ËÀ߷פµ¤ì¤Æ¤¤¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢³Èĥ°À­¤ÎÃͤÎŤµ¤òɽ¤¹Àµ¤Î¿ô¤¬ÊÖ¤µ¤ì¤ë¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢ \-1 ¤¬ÊÖ¤µ¤ì¡¢ +このシステムコール・インタフェースは、初期バッファのサイズの推測をしたり、 +与えられたバッファが小さすぎたことを返り値で知らせることでバッファを大きく +したりできるように設計されている。 +.SH 返り値 +成功した場合、拡張属性の値の長さを表す正の数が返される。 +失敗した場合、 \-1 が返され、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +に適切な値がセットされる。 .PP -»ØÄꤵ¤ì¤¿Ì¾Á°¤Î°À­¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢¤Þ¤¿¤Ï¥×¥í¥»¥¹¤¬¤½¤Î°À­¤Ë¥¢¥¯¥»¥¹ -¤¹¤ë¸¢¸Â¤¬¤Ê¤¤¾ì¹ç¡¢ +指定された名前の属性が存在しない場合、またはプロセスがその属性にアクセス +する権限がない場合、 .I errno -¤Ë +に .B ENOATTR -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .PP .I value -¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ +バッファの大きさ .I size -¤¬·ë²Ì¤òÊÝ»ý¤¹¤ë¤Î¤Ë½½Ê¬¤ÊÂ礭¤µ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が結果を保持するのに十分な大きさでない場合、 .I errno -¤Ë +に .B ERANGE -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .PP -³Èĥ°À­¤¬¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -¤â¤·¤¯¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ +拡張属性がそのファイルシステムでサポートされていない場合、 +もしくは無効になっている場合、 .I errno -¤Ë +に .B ENOTSUP -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .PP .BR stat (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÀâÌÀ¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ï -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤âŬÍѤµ¤ì¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë 2.4 °Ê¹ß¤Î Linux ¤ÇÍøÍѤǤ­¤ë¡£ -glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.3 °Ê¹ß¤Ç¹Ô¤ï¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ -.\" .SH Ãø¼Ô +システムコールの説明に書かれているエラーは +これらのシステムコールにも適用される。 +.SH バージョン +これらのシステムコールはカーネル 2.4 以降の Linux で利用できる。 +glibc でのサポートはバージョン 2.3 以降で行われている。 +.SH 準拠 +これらのシステムコールは Linux 独自である。 +.\" .SH 著者 .\" Andreas Gruenbacher, .\" .RI < a.gruenbacher@computer.org > -.\" ¤È SGI XFS ³«È¯¥Á¡¼¥à, -.\" .RI < linux-xfs@oss.sgi.com >¡£ -.\" ¥Ð¥°¥ì¥Ý¡¼¥È¤ä¥³¥á¥ó¥È¤Ï¾åµ­¤Î¥¢¥É¥ì¥¹¤Þ¤ÇÁ÷¤Ã¤Æ²¼¤µ¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +.\" と SGI XFS 開発チーム, +.\" .RI < linux-xfs@oss.sgi.com >。 +.\" バグレポートやコメントは上記のアドレスまで送って下さい。 +.SH 関連項目 .BR getfattr (1), .BR setfattr (1), .BR listxattr (2), diff --git a/release/man2/idle.2 b/release/man2/idle.2 index d1895bb0..b4c26184 100644 --- a/release/man2/idle.2 +++ b/release/man2/idle.2 @@ -37,42 +37,42 @@ .\" Updated Mon Jan 3 18:16:36 JST 2000 .\" by Kentaro Shirakata .\" -.\"WORD: Linux-specific Linux ÆÃÍ­ -.\"WORK: portable °Ü¿¢ +.\"WORD: Linux-specific Linux 特有 +.\"WORK: portable 移植 .\" .TH IDLE 2 1994-08-21 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -idle \- ID 0 ¤Î¥×¥í¥»¥¹¤ò¥¢¥¤¥É¥ë¾õÂ֤ˤ¹¤ë -.SH ½ñ¼° +.SH 名前 +idle \- ID 0 のプロセスをアイドル状態にする +.SH 書式 .B #include .sp .B int idle(void); -.SH ÀâÌÀ +.SH 説明 .BR idle () -¤Ï¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×»þ¤Ë»ÈÍѤµ¤ì¤ë¡¢ÆâÉô¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤¢¤ë¡£ -¥×¥í¥»¥¹¤Î¥Ú¡¼¥¸¤ò¥¹¥ï¥Ã¥×²Äǽ¤ËÀßÄꤷ¡¢Í¥ÀèÅÙ¤ò²¼¤²¡¢¥á¥¤¥ó¤Î¥¹¥±¥¸¥å¡¼ -¥ë½èÍý¤Î¤¿¤á¤Î¥ë¡¼¥×¤Ø°Ü¹Ô¤¹¤ë¡£ -½¾¤Ã¤Æ +はブートストラップ時に使用される、内部システムコールである。 +プロセスのページをスワップ可能に設定し、優先度を下げ、メインのスケジュー +ル処理のためのループへ移行する。 +従って .BR idle () -¤Ï return ¤¹¤ë¤³¤È¤Ï¤Ê¤¤¡£ +は return することはない。 .PP -ID 0 ¤Î¥×¥í¥»¥¹¤Î¤ß¤¬ +ID 0 のプロセスのみが .BR idle () -¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¾¤Î¥æ¡¼¥¶¡¼¥×¥í¥»¥¹¤Ï¤¿¤È¤¨¤½¤ì¤¬¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤¿¤È¤·¤Æ -¤â +を使用することができる。 +他のユーザープロセスはたとえそれがスーパーユーザー権限を持っていたとして +も .B EPERM -¤ò¼õ¤±¼è¤ë¡£ -.SH ÊÖ¤êÃÍ +を受け取る。 +.SH 返り値 .BR idle () -ID 0 ¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ¤Ï return ¤·¤Ê¤¤¡£¤½¤ì°Ê³°¤Î¥æ¡¼¥¶¡¼¥×¥í¥»¥¹¤Ë¤Ï -¾ï¤Ë \-1 ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +ID 0 のプロセスに対しては return しない。それ以外のユーザープロセスには +常に \-1 を返す。 +.SH エラー .TP .B EPERM -¥æ¡¼¥¶¡¼¥×¥í¥»¥¹¤Ë¤Ï¾ï¤Ë¤³¤ÎÃͤò¥»¥Ã¥È¤¹¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -2.3.13 °Ê¹ß¡¢¤â¤Ï¤ä¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¸ºß¤·¤Ê¤¤¡£ -.SH ½àµò -¤³¤Î´Ø¿ô¤Ï Linux ÆÃÍ­¤Î´Ø¿ô¤Ç¤¢¤ê¡¢°Ü¿¢À­¤ò»ý¤¿¤»¤¿¤¤¥×¥í¥°¥é¥à¤Ë¤Ï»È -ÍѤ¹¤Ù¤­¤Ç¤Ê¤¤¡£ +ユーザープロセスには常にこの値をセットする。 +.SH バージョン +2.3.13 以降、もはやこのシステムコールは存在しない。 +.SH 準拠 +この関数は Linux 特有の関数であり、移植性を持たせたいプログラムには使 +用すべきでない。 diff --git a/release/man2/init_module.2 b/release/man2/init_module.2 index d7c3b691..92f3f378 100644 --- a/release/man2/init_module.2 +++ b/release/man2/init_module.2 @@ -9,24 +9,24 @@ .\" Translated 2006-07-29, Akihiro MOTOKI .\" .TH INIT_MODULE 2 2006-02-09 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -init_module \- ¥í¡¼¥À¥Ö¥ë¥â¥¸¥å¡¼¥ë¤Î¥¨¥ó¥È¥ê¤ò½é´ü²½¤¹¤ë -.SH ½ñ¼° +.SH 名前 +init_module \- ローダブルモジュールのエントリを初期化する +.SH 書式 .nf .B #include .sp .BI "int init_module(const char *" name ", struct module *" image ); .fi -.SH ÀâÌÀ +.SH 説明 .BR init_module () -¤ÏºÆÇÛÃÖ¤µ¤ì¤¿¥â¥¸¥å¡¼¥ë¥¤¥á¡¼¥¸¤ò¥«¡¼¥Í¥ë¶õ´Ö¤Ë¥í¡¼¥É¤·¡¢ -¤½¤Î¥â¥¸¥å¡¼¥ë¤Î +は再配置されたモジュールイメージをカーネル空間にロードし、 +そのモジュールの .I init -´Ø¿ô¤ò¼Â¹Ô¤¹¤ë¡£ +関数を実行する。 .PP -¥â¥¸¥å¡¼¥ë¥¤¥á¡¼¥¸¤ÏÀèƬÉôʬ¤Ë module ¹½Â¤ÂΤ¬¤¢¤ê¡¢¤½¤Î¸å¤í¤Ë -ŬÀڤʥ³¡¼¥É¤È¥Ç¡¼¥¿¤¬Â³¤¯¡£ -¤³¤Î module ¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +モジュールイメージは先頭部分に module 構造体があり、その後ろに +適切なコードとデータが続く。 +この module 構造体は以下のように定義されている: .PP .in +4n .nf @@ -54,49 +54,49 @@ struct module { .in .PP .I next -¤È +と .I refs -°Ê³°¤ÎÁ´¤Æ¤Î¥Ý¥¤¥ó¥¿Í×ÁǤϥ⥸¥å¡¼¥ëËÜÂÎÆâÉô¤ò»Ø¤·¡¢ -¥«¡¼¥Í¥ë¶õ´Ö¤Ç¤ÎŬÀÚ¤ÊÃͤǽé´ü²½¤µ¤ì¤ë (¤Ä¤Þ¤ê¡¢¥â¥¸¥å¡¼¥ë¤Î»Ä¤ê¤Î -Éôʬ¤ÇºÆÇÛÃÖ¤µ¤ì¤ë) ¤³¤È¤¬´üÂÔ¤µ¤ì¤ë¡£ +以外の全てのポインタ要素はモジュール本体内部を指し、 +カーネル空間での適切な値で初期化される (つまり、モジュールの残りの +部分で再配置される) ことが期待される。 .PP -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤¦¤Ë¤ÏÆø¢¤¬É¬ÍפǤ¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤·¡¢ +このシステムコールを使うには特権が必要である。 +.SH 返り値 +成功すると 0 を返す。エラーの場合 \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切に設定する。 +.SH エラー .TP .B EBUSY -¥â¥¸¥å¡¼¥ë¤Î½é´ü²½¥ë¡¼¥Á¥ó¤¬¼ºÇÔ¤·¤¿¡£ +モジュールの初期化ルーチンが失敗した。 .TP .B EFAULT .I name -¤ä +や .I image -¤¬¥×¥í¥°¥é¥à¤¬¥¢¥¯¥»¥¹¤Ç¤­¤ë¥¢¥É¥ì¥¹¶õ´Ö¤Î³°Éô¤Ë¤¢¤ë¡£ +がプログラムがアクセスできるアドレス空間の外部にある。 .TP .B EINVAL -°ìÉô¤Î +一部の .I image -¥¹¥í¥Ã¥È¤Ë¤ª¤«¤·¤ÊÃͤ¬Æþ¤Ã¤Æ¤¤¤ë¡£¤Þ¤¿¤Ï +スロットにおかしな値が入っている。または .I image\->name -¤¬¸µ¤Î¥â¥¸¥å¡¼¥ë̾¤È°ìÃפ·¤Æ¤¤¤Ê¤¤¡£¤Þ¤¿¤Ï¡¢°ìÉô¤Î +が元のモジュール名と一致していない。または、一部の .I image\->deps -¥¨¥ó¥È¥ê¤¬¥í¡¼¥É¤µ¤ì¤¿¥â¥¸¥å¡¼¥ë¤ËÂбþ¤·¤Æ¤¤¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢Â¾¤ËƱÍͤÎÌ·½â¤¬µ¯¤³¤Ã¤Æ¤¤¤ë¡£ +エントリがロードされたモジュールに対応していない。 +または、他に同様の矛盾が起こっている。 .TP .B ENOENT -¤½¤Î̾Á°¤Î¥â¥¸¥å¡¼¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ +その名前のモジュールが存在しない。 .TP .B EPERM -¸Æ¤Ó½Ð¤·¸µ¤¬Æø¢ +呼び出し元が特権 .RB ( CAP_SYS_MODULE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤ò»ý¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ -.SH ½àµò +ケーパビリティ) を持っていなかった。 +.SH 準拠 .BR init_module () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +は Linux 固有である。 +.SH 関連項目 .BR create_module (2), .BR delete_module (2), .BR query_module (2) diff --git a/release/man2/inotify_add_watch.2 b/release/man2/inotify_add_watch.2 index 0080effe..c29c7b18 100644 --- a/release/man2/inotify_add_watch.2 +++ b/release/man2/inotify_add_watch.2 @@ -31,90 +31,90 @@ .\" Translated 2006-08-15, Akihiro MOTOKI , LDP v2.39 .\" .TH INOTIFY_ADD_WATCH 2 2006-02-07 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -inotify_add_watch \- ½é´ü²½ºÑ¤ß inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤Ë´Æ»ëÂоݤòÄɲ乤ë -.SH ½ñ¼° +.SH 名前 +inotify_add_watch \- 初期化済み inotify インスタンスに監視対象を追加する +.SH 書式 .B #include .sp .BI "int inotify_add_watch(int " fd ", const char *" pathname ", uint32_t " mask ); -.SH ÀâÌÀ +.SH 説明 .BR inotify_add_watch () -¤Ï¡¢ +は、 .I pathname -¤Ç»ØÄꤵ¤ì¤¿°ÌÃ֤ˤ¢¤ë¥Õ¥¡¥¤¥ë¤ò´Æ»ë¤¹¤ë´Æ»ë¥¢¥¤¥Æ¥à (watch) ¤Î¿·µ¬Äɲᢠ-¤Þ¤¿¤Ï´û¸¤Î´Æ»ë¥¢¥¤¥Æ¥à¤ÎÊѹ¹¤ò¹Ô¤¦¡£ -¸Æ¤Ó½Ð¤·¸µ¤Ï¡¢´Æ»ëÂоݤΥե¡¥¤¥ë¤ËÂФ¹¤ëÆɤ߽Ф·µö²Ä¤ò -»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +で指定された位置にあるファイルを監視する監視アイテム (watch) の新規追加、 +または既存の監視アイテムの変更を行う。 +呼び出し元は、監視対象のファイルに対する読み出し許可を +持っていなければならない。 .I fd -°ú¤­¿ô¤Ï¡¢Êѹ¹¤ò¹Ô¤¦´Æ»ëÂоݥꥹ¥È (watch list) ¤ò»ý¤Ä inotify -¥¤¥ó¥¹¥¿¥ó¥¹¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +引き数は、変更を行う監視対象リスト (watch list) を持つ inotify +インスタンスを参照するファイルディスクリプタである。 .I pathname -¤Î¤É¤Î¥¤¥Ù¥ó¥È¤ò´Æ»ë¤¹¤ë¤«¤Ï¡¢°ú¤­¿ô¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯ +のどのイベントを監視するかは、引き数のビットマスク .I mask -¤Ç»ØÄꤹ¤ë¡£ +で指定する。 .I mask -¤ËÀßÄê¤Ç¤­¤ë¥Ó¥Ã¥È¤ÎÀâÌÀ¤Ë¤Ä¤¤¤Æ¤Ï +に設定できるビットの説明については .BR inotify (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .BR inotify_add_watch () -¤Î¸Æ¤Ó½Ð¤·¤¬À®¸ù¤¹¤ë¤È¡¢Êѹ¹ÂоݤΠinotify ¥¤¥ó¥¹¥¿¥ó¥¹¤Ç +の呼び出しが成功すると、変更対象の inotify インスタンスで .I pathname -¤ËÂбþÉÕ¤±¤é¤ì¤ë°ì°Õ¤Ê´Æ»ëÂоݥǥ£¥¹¥¯¥ê¥×¥¿ (watch descriptor) ¤òÊÖ¤¹¡£ +に対応付けられる一意な監視対象ディスクリプタ (watch descriptor) を返す。 .I pathname -¤¬¤½¤Î inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤ËÄɲ䵤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ -´Æ»ëÂоݥǥ£¥¹¥¯¥ê¥×¥¿¤¬¿·µ¬¤Ë³ä¤êÅö¤Æ¤é¤ì¤ë¡£ +がその inotify インスタンスに追加されていなければ、 +監視対象ディスクリプタが新規に割り当てられる。 .I pathname -¤¬¤¹¤Ç¤Ë´Æ»ëÂоݤˤʤäƤ¤¤ì¤Ð¡¢´û¸¤Î´Æ»ë¥¢¥¤¥Æ¥à¤ËÂФ¹¤ë -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÊÖ¤µ¤ì¤ë¡£ +がすでに監視対象になっていれば、既存の監視アイテムに対する +ディスクリプタが返される。 -¤³¤ì°Ê¹ß¤Ë inotify ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤é +これ以降に inotify ファイルディスクリプタから .BR read (2) -¤ò¹Ô¤¦¤È¡¢´Æ»ëÂоݥǥ£¥¹¥¯¥ê¥×¥¿¤¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤ì¤é¤Î +を行うと、監視対象ディスクリプタが返される。 +これらの .BR read () -¤ò¹Ô¤¦¤È¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¤¥Ù¥ó¥È¤ò¼¨¤¹ +を行うと、ファイルシステムイベントを示す .I inotify_event -¹½Â¤ÂΤ¬Æɤ߽Фµ¤ì¤ë +構造体が読み出される .RB ( inotify (7) -»²¾È)¡£¤³¤Î¹½Â¤ÂÎÆâ¤Î´Æ»ëÂоݥǥ£¥¹¥¯¥ê¥×¥¿¤Ë¤è¤ê¡¢ -¤É¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤½¤Î¥¤¥Ù¥ó¥È¤¬È¯À¸¤·¤¿¤«¤òÆÃÄê¤Ç¤­¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +参照)。この構造体内の監視対象ディスクリプタにより、 +どのオブジェクトでそのイベントが発生したかを特定できる。 +.SH 返り値 +成功すると、 .BR inotify_add_watch () -¤ÏÈóÉé¤Î´Æ»ëÂоݥǥ£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は非負の監視対象ディスクリプタを返す。 +エラーの場合、\-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切に設定する。 +.SH エラー .TP .B EACCES -»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ëÆɤ߽Ф·¥¢¥¯¥»¥¹¤¬µö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +指定されたファイルに対する読み出しアクセスが許可されていない。 .TP .B EBADF -»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Í­¸ú¤Ç¤Ï¤Ê¤¤¡£ +指定されたファイルディスクリプタが有効ではない。 .TP .B EFAULT .I pathname -¤¬»Ø¤¹¥¢¥É¥ì¥¹¤¬¥×¥í¥»¥¹¤¬¥¢¥¯¥»¥¹¤Ç¤­¤ë¥¢¥É¥ì¥¹¶õ´Ö³°¤Ç¤¢¤ë¡£ +が指すアドレスがプロセスがアクセスできるアドレス空間外である。 .TP .B EINVAL -»ØÄꤵ¤ì¤¿¥¤¥Ù¥ó¥È¥Þ¥¹¥¯¤ËÍ­¸ú¤Ê¥¤¥Ù¥ó¥È¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤â¤·¤¯¤Ï +指定されたイベントマスクに有効なイベントが含まれていない。 +もしくは .I fd -¤¬ inotify ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ +が inotify ファイルディスクリプタではない。 .TP .B ENOMEM -¥«¡¼¥Í¥ë¥á¥â¥ê¤¬½½Ê¬¤Ë¤Ê¤«¤Ã¤¿¡£ +カーネルメモリが十分になかった。 .TP .B ENOSPC -inotify ´Æ»ëÂоݤÎÁí¿ô¤¬¥æ¡¼¥¶¤¬ÄɲäǤ­¤ë¾å¸Â¤Ë㤷¤Æ¤¤¤¿¡£ -¤â¤·¤¯¤Ï¡¢É¬Íפʻñ¸»¤Î³ä¤êÅö¤Æ¤Ë¥«¡¼¥Í¥ë¤¬¼ºÇÔ¤·¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -inotify ¤Ï Linux ¥«¡¼¥Í¥ë 2.6.13 ¤ËÁȤ߹þ¤Þ¤ì¤¿¡£ -.SH ½àµò -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +inotify 監視対象の総数がユーザが追加できる上限に達していた。 +もしくは、必要な資源の割り当てにカーネルが失敗した。 +.SH バージョン +inotify は Linux カーネル 2.6.13 に組み込まれた。 +.SH 準拠 +このシステムコールは Linux 独自である。 +.SH 関連項目 .BR inotify_init (2), .BR inotify_rm_watch (2), .BR inotify (7) diff --git a/release/man2/inotify_init.2 b/release/man2/inotify_init.2 index 39309611..34ba9e95 100644 --- a/release/man2/inotify_init.2 +++ b/release/man2/inotify_init.2 @@ -32,79 +32,79 @@ .\" Updated 2008-11-10, Akihiro MOTOKI , LDP v3.12 .\" .TH INOTIFY_INIT 2 2008-10-10 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -inotify_init, inotify_init1 \- inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤ò½é´ü²½¤¹¤ë -.SH ½ñ¼° +.SH 名前 +inotify_init, inotify_init1 \- inotify インスタンスを初期化する +.SH 書式 .nf .B #include .sp .B "int inotify_init(void);" .BI "int inotify_init1(int " flags ); .fi -.SH ÀâÌÀ +.SH 説明 .BR inotify_init () -¤Ï¡¢¿·µ¬¤Î inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤ò½é´ü²½¤·¡¢ºîÀ®¤µ¤ì¤¿ inotify ¥¤¥Ù¥ó¥È¥­¥å¡¼ -¤ËÂбþ¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ +は、新規の inotify インスタンスを初期化し、作成された inotify イベントキュー +に対応するファイルディスクリプタを返す。 .BR inotify_init1 () -¤Ï¡¢ +は、 .I flags -¤¬ 0 ¤Î¾ì¹ç¡¢ +が 0 の場合、 .BR inotify_init () -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .I flags -¤Ë°Ê²¼¤ÎÃͤò¥Ó¥Ã¥ÈËè¤ÎÏÀÍýÏ (OR) ¤Ç»ØÄꤹ¤ë¤³¤È¤Ç¡¢ -°Û¤Ê¤ëÆ°ºî¤ò¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +に以下の値をビット毎の論理和 (OR) で指定することで、 +異なる動作をさせることができる。 .TP 12 .B IN_NONBLOCK -¿·¤·¤¯À¸À®¤µ¤ì¤ë¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò (open file description) ¤Î +新しく生成されるオープンファイル記述 (open file description) の BR O_NONBLOCK -¥Õ¥¡¥¤¥ë¥¹¥Æ¡¼¥¿¥¹¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤³¤È¤Ç¡¢ +ファイルステータスフラグをセットする。 +このフラグを使うことで、 .B O_NONBLOCK -¤ò¥»¥Ã¥È¤¹¤ë¤¿¤á¤Ë +をセットするために .BR fcntl (2) -¤òÄɲäǸƤӽФ¹É¬Íפ¬¤Ê¤¯¤Ê¤ë¡£ +を追加で呼び出す必要がなくなる。 .TP .B IN_CLOEXEC -¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤ËÂФ·¤Æ +新しいファイル・ディスクリプターに対して close-on-exec .RB ( FD_CLOEXEC ) -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬Ìò¤ËΩ¤ÄÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +フラグをセットする。 +このフラグが役に立つ理由については、 .BR open (2) -¤Î +の .B O_CLOEXEC -¥Õ¥é¥°¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +フラグの説明を参照のこと。 +.SH 返り値 +成功すると、これらのシステムコールは新しいファイルディスクリプタを返す。 +エラーの場合、\-1 を返し、 .I errno -¤ò¥¨¥é¡¼¤ò¼¨¤¹ÃͤËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +をエラーを示す値に設定する。 +.SH エラー .TP .B EINVAL .RB ( inotify_init1 ()) -̵¸ú¤ÊÃͤ¬ +無効な値が .I flags -¤Ë»ØÄꤵ¤ì¤¿¡£ +に指定された。 .TP .B EMFILE -inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤ÎÁí¿ô¤¬¥æ¡¼¥¶Ã±°Ì¤Î¾å¸Â¤Ë㤷¤Æ¤¤¤¿¡£ +inotify インスタンスの総数がユーザ単位の上限に達していた。 .TP .B ENFILE -inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤ÎÁí¿ô¤¬¥·¥¹¥Æ¥à¤Î¾å¸Â¤Ë㤷¤Æ¤¤¤¿¡£ +inotify インスタンスの総数がシステムの上限に達していた。 .TP .B ENOMEM -¥«¡¼¥Í¥ë¥á¥â¥ê¤¬½½Ê¬¤Ë¤Ê¤«¤Ã¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +カーネルメモリが十分になかった。 +.SH バージョン .BR inotify_init () -¤Ï Linux 2.6.13 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +は Linux 2.6.13 で初めて登場した。 .BR inotify_init1 () -¤Ï Linux 2.6.27 ¤ÇÄɲ䵤줿¡£ -.SH ½àµò -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +は Linux 2.6.27 で追加された。 +.SH 準拠 +これらのシステムコールは Linux 独自である。 +.SH 関連項目 .BR inotify_add_watch (2), .BR inotify_rm_watch (2), .BR inotify (7) diff --git a/release/man2/inotify_rm_watch.2 b/release/man2/inotify_rm_watch.2 index 1036bf95..0404a247 100644 --- a/release/man2/inotify_rm_watch.2 +++ b/release/man2/inotify_rm_watch.2 @@ -29,57 +29,57 @@ .\" all rights reserved. .\" Translated 2006-08-15, Akihiro MOTOKI , LDP v2.39 .\" -.\" WORD: watch ´Æ»ë¥¢¥¤¥Æ¥à -.\" WORD: watch descriptor ´Æ»ëÂоݥǥ£¥¹¥¯¥ê¥×¥¿ +.\" WORD: watch 監視アイテム +.\" WORD: watch descriptor 監視対象ディスクリプタ .\" .TH INOTIFY_RM_WATCH 2 2010-10-15 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -inotify_rm_watch \- inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤«¤é´û¸¤Î´Æ»ë¥¢¥¤¥Æ¥à¤òºï½ü¤¹¤ë -.SH ½ñ¼° +.SH 名前 +inotify_rm_watch \- inotify インスタンスから既存の監視アイテムを削除する +.SH 書式 .B #include .sp .BI "int inotify_rm_watch(int " fd ", int " wd ); .\" Before glibc 2.10, the second argument was types as uint32_t. .\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=7040 -.SH ÀâÌÀ +.SH 説明 .BR inotify_rm_watch () -¤Ï¡¢´Æ»ëÂоݥǥ£¥¹¥¯¥ê¥×¥¿ (watch descriptor) +は、監視対象ディスクリプタ (watch descriptor) .I wd -¤ËÂбþ¤¹¤ë´Æ»ë¥¢¥¤¥Æ¥à¤ò¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +に対応する監視アイテムを、 +ファイルディスクリプタ .I fd -¤ËÂбþ¤¹¤ë inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤«¤éºï½ü¤¹¤ë¡£ +に対応する inotify インスタンスから削除する。 -´Æ»ëÂоݤòºï½ü¤¹¤ë¤È¡¢ -¤³¤Î´Æ»ëÂоݥǥ£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ +監視対象を削除すると、 +この監視対象ディスクリプタに対して .B IN_IGNORED -¥¤¥Ù¥ó¥È¤¬À¸À®¤µ¤ì¤ë +イベントが生成される .RB ( inotify (7) -»²¾È)¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +参照)。 +.SH 返り値 +成功すると、 .BR inotify_rm_watch () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。 +エラーの場合、\-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切に設定する。 +.SH エラー .TP .B EBADF .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ +が有効なファイルディスクリプタではない。 .TP .B EINVAL -´Æ»ëÂоݥǥ£¥¹¥¯¥ê¥×¥¿ +監視対象ディスクリプタ .I wd -¤¬Í­¸ú¤Ç¤Ê¤¤¡£¤â¤·¤¯¤Ï¡¢ +が有効でない。もしくは、 .I fd -¤¬ inotify ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -inotify ¤Ï Linux ¥«¡¼¥Í¥ë 2.6.13 ¤ËÁȤ߹þ¤Þ¤ì¤¿¡£ -.SH ½àµò -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +が inotify ファイルディスクリプタではない。 +.SH バージョン +inotify は Linux カーネル 2.6.13 に組み込まれた。 +.SH 準拠 +このシステムコールは Linux 独自である。 +.SH 関連項目 .BR inotify_add_watch (2), .BR inotify_init (2), .BR inotify (7) diff --git a/release/man2/intro.2 b/release/man2/intro.2 index 87a97355..8c84de32 100644 --- a/release/man2/intro.2 +++ b/release/man2/intro.2 @@ -29,62 +29,62 @@ .\" Translated 2008-02-10, Akihiro MOTOKI .\" .TH INTRO 2 2010-11-11 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -intro \- ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÀâÌÀ -.SH ÀâÌÀ -¥Þ¥Ë¥å¥¢¥ë¤Î 2 ¾Ï¤Ç¤Ï Linux ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤ë¡£ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¥«¡¼¥Í¥ë¤Ø¤Î¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È¤Ç¤¢¤ë¡£ -Ä̾ï¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏľÀܵ¯Æ°¤µ¤ì¤ëÌõ¤Ç¤Ï¤Ê¤¯¡¢ -¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤ÏÂбþ¤¹¤ë C ¥é¥¤¥Ö¥é¥ê¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤¬¤¢¤ê¡¢ -¤½¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤¬¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¸Æ¤Ó½Ð¤¹¤Î¤ËɬÍפʽèÍý¤ò¼Â¹Ô¤¹¤ë¡£ -¤½¤Î¤¿¤á¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¸Æ¤Ó½Ð¤¹¤Î¤ÏÄ̾ï¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤Î¤È -Ʊ¤¸¤è¤¦¤Ë¸«¤¨¤ë¡£ +.SH 名前 +intro \- システムコールの説明 +.SH 説明 +マニュアルの 2 章では Linux のシステムコールについて説明している。 +システムコールは Linux カーネルへのエントリポイントである。 +通常は、システムコールは直接起動される訳ではなく、 +ほとんどのシステムコールには対応する C ライブラリのラッパー関数があり、 +そのラッパー関数がシステムコールを呼び出すのに必要な処理を実行する。 +そのため、システムコールを呼び出すのは通常のライブラリ関数を呼び出すのと +同じように見える。 -Linux ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¤Ï +Linux のシステムコールのリストについては .BR syscalls (2) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ -¥¨¥é¡¼¤Î¾ì¹ç¡¢¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÉé¤Î¥¨¥é¡¼ÈÖ¹æ¤òÊÖ¤¹ -(¶ñÂÎŪ¤Ë¤Ï +を参照のこと。 +.SH 返り値 +エラーの場合、ほとんどのシステムコールは負のエラー番号を返す +(具体的には .BR errno (3) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ëÄê¿ô¤Î¤¤¤º¤ì¤«¤òÉé¤Ë¤·¤¿ÃͤòÊÖ¤¹)¡£ -C ¥é¥¤¥Ö¥é¥ê¤Î¥é¥Ã¥Ñ¡¼¤Ï¸Æ¤Ó½Ð¤·¸µ¤«¤é¤³¤¦¤·¤¿¾ÜºÙ¤ò±£Ê䷤Ƥ¤¤ë¡£ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Éé¤ÎÃͤòÊÖ¤·¤¿¾ì¹ç¡¢¥é¥Ã¥Ñ¡¼¤ÏÀäÂÐÃͤò +で説明されている定数のいずれかを負にした値を返す)。 +C ライブラリのラッパーは呼び出し元からこうした詳細を隠蔽している。 +システムコールが負の値を返した場合、ラッパーは絶対値を .I errno -ÊÑ¿ô¤Ë¥³¥Ô¡¼¤·¡¢¥é¥Ã¥Ñ¡¼¤ÎÊÖ¤êÃͤȤ·¤Æ \-1 ¤òÊÖ¤¹¡£ +変数にコピーし、ラッパーの返り値として \-1 を返す。 -À®¸ù»þ¤Ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ÊÖ¤¹Ãͤϥ·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤è¤ê°Û¤Ê¤ë¡£ -¿¤¯¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÀ®¸ù»þ¤Ë 0 ¤òÊÖ¤¹¤¬¡¢ -À®¸ù»þ¤Ë 0 °Ê³°¤ÎÃͤòÊÖ¤¹¥·¥¹¥Æ¥à¥³¡¼¥ë¤â¤¢¤ë¡£ -¾ÜºÙ¤Ï¸Ä¡¹¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡£ +成功時にシステムコールが返す値はシステムコールにより異なる。 +多くのシステムコールは成功時に 0 を返すが、 +成功時に 0 以外の値を返すシステムコールもある。 +詳細は個々のマニュアルページで説明されている。 -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¡Ö½ñ¼°¡×¤ÎÀá¤Ëµ¬Äꤵ¤ì¤¿¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤«¤é´Ø¿ô¤ÎÄêµÁ¤ò -ÆÀ¤ë¤¿¤á¤Ë¡¢¥×¥í¥°¥é¥Þ¤¬µ¡Ç½¸¡ºº¥Þ¥¯¥í¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¾ì¹ç¤¬¤¢¤ë -(µ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÄêµÁ¤¬É¬Íפʾì¹ç¡¢¤³¤ì¤é¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÄêµÁ¤Ï -¡Ö¤É¤Î¡×¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Î¥¤¥ó¥¯¥ë¡¼¥É¤è¤ê¤âÁ°¤Ç¹Ô¤ï¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£ -¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï¡¢É¬Íפʥޥ¯¥í¤¬¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡£ -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤Î¤µ¤é¤Ê¤ë¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +マニュアルページの「書式」の節に規定されたヘッダファイルから関数の定義を +得るために、プログラマが機能検査マクロを定義しなければならない場合がある +(機能検査マクロの定義が必要な場合、これらの機能検査マクロの定義は +「どの」ヘッダファイルのインクルードよりも前で行われなければならない)。 +このような場合には、必要なマクロがマニュアルページで説明されている。 +機能検査マクロのさらなる情報については、 .BR feature_test_macros (7) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ½àµò -¤³¤Î¾Ï¤Î´Ø¿ô¤¬½àµò¤¹¤ë UNIX ¥·¥¹¥Æ¥à¤äɸ½à¤ò¼¨¤¹¤Î¤Ë¤¤¤¯¤Ä¤«¤Îñ¸ì¤äά¹æ¤¬ -»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ +を参照のこと。 +.SH 準拠 +この章の関数が準拠する UNIX システムや標準を示すのにいくつかの単語や略号が +使用されている。 .BR standards (7) -¤ò»²¾È¤Î¤³¤È¡£ -.SH Ãí°Õ -.SS "ľÀܸƤӽФ¹" -¤Û¤È¤ó¤É¤Î¾ì¹ç¡¢Ä¾ÀÜ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¸Æ¤Ó½Ð¤¹É¬ÍפϤʤ¤¤¬¡¢ -¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ïɸ½à C ¥é¥¤¥Ö¥é¥ê¤ËŬÀڤʴؿô¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤â¤¢¤ë¡£ -¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ï¡¢¥×¥í¥°¥é¥Þ¤Ï +を参照のこと。 +.SH 注意 +.SS "直接呼び出す" +ほとんどの場合、直接システムコールを呼び出す必要はないが、 +場合によっては標準 C ライブラリに適切な関数が実装されていないこともある。 +このような場合は、プログラマは .BR syscall (2) -¤ò»È¤Ã¤Æ¡¢¼«Ê¬¤Ç¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¸Æ¤Ó½Ð¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -²áµî¤Ë¤Ï¡¢ +を使って、自分でシステムコールを呼び出さなければならない。 +過去には、 .BR _syscall (2) -¥Þ¥¯¥í¤Î°ì¤Ä¤ò»È¤Ã¤Æ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¸Æ¤Ó½Ð¤¹¤³¤È¤â¤Ç¤­¤¿¡£ -.SS "Ãø¼Ô¤ÈÃøºî¸¢" -Ãø¼Ô¤ÈÃøºî¸¢ (copyright) ¤Ë´Ø¤·¤Æ¤Ï³Æ¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤Î¥½¡¼¥¹¤Î¥Ø¥Ã¥À¤ò -¸«¤ë¤³¤È¡£¤³¤ì¤é¤Ï¥Ú¡¼¥¸¤´¤È¤Ë°Û¤Ã¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +マクロの一つを使ってシステムコールの呼び出すこともできた。 +.SS "著者と著作権" +著者と著作権 (copyright) に関しては各マニュアル・ページのソースのヘッダを +見ること。これらはページごとに異っている。 +.SH 関連項目 .ad l .nh .BR _syscall (2), diff --git a/release/man2/io_cancel.2 b/release/man2/io_cancel.2 index b427b103..f3284011 100644 --- a/release/man2/io_cancel.2 +++ b/release/man2/io_cancel.2 @@ -5,8 +5,8 @@ .\" Japanese Version Copyright (c) 2003 Akihiro MOTOKI, all rights reserved. .\" Translated Mon Mar 8 2003 by Akihiro MOTOKI .\" -.\"WORD: operation Áàºî -.\"WORD: completion queue ´°Î»¥­¥å¡¼ +.\"WORD: operation 操作 +.\"WORD: completion queue 完了キュー .\" .\" .de Sh \" Subsection .\" .br @@ -27,9 +27,9 @@ .\" .IP "\\$1" \\$2 .\" .. .TH IO_CANCEL 2 2008-06-18 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -io_cancel \- ̤½èÍý¤ÎÈóƱ´ü I/O Áàºî¤Î¼è¤ê¾Ã¤· -.SH ½ñ¼° +.SH 名前 +io_cancel \- 未処理の非同期 I/O 操作の取り消し +.SH 書式 .nf .\" .ad l .\" .hy 0 @@ -43,66 +43,66 @@ io_cancel \- ̤ .\" .ad .\" .hy .sp -\fI\-laio\fP ¤È¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-laio\fP とリンクする。 .fi -.SH ÀâÌÀ +.SH 説明 .PP .BR io_cancel () -¤Ï¡¢²áµî¤Ë +は、過去に .BR io_submit (2) -¤ò»È¤Ã¤ÆÅÐÏ¿¤µ¤ì¤¿ÈóƱ´ü I/O (AIO) Áàºî¤Î¼è¤ê¾Ã¤·¤ò¹Ô¤ª¤¦¤È¤¹¤ë¡£ -\fIctx_id\fP ¤Ï¡¢¼è¤ê¾Ã¤·¤ò¹Ô¤¦Áàºî¤Î AIO ¥³¥ó¥Æ¥­¥¹¥È¤Î ID ¤Ç¤¢¤ë¡£ -»ØÄꤷ¤¿ AIO ¥³¥ó¥Æ¥­¥¹¥È¤¬¸«¤Ä¤«¤ë¤È¡¢ -ÂоݤΥ¤¥Ù¥ó¥È¤Î¼è¤ê¾Ã¤·¤¬¹Ô¤ï¤ì¡¢¤½¤Î¸å \fIresult\fP ¤Ç»Ø¤µ¤ì¤¿¥á¥â¥ê¤Ë -¥³¥Ô¡¼¤µ¤ì¤ë (¤³¤Î¤È¤­¡¢´°Î»¥­¥å¡¼¤Ø¤Î°ÜÆ°¤Ï¹Ô¤ï¤ì¤Ê¤¤)¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +を使って登録された非同期 I/O (AIO) 操作の取り消しを行おうとする。 +\fIctx_id\fP は、取り消しを行う操作の AIO コンテキストの ID である。 +指定した AIO コンテキストが見つかると、 +対象のイベントの取り消しが行われ、その後 \fIresult\fP で指されたメモリに +コピーされる (このとき、完了キューへの移動は行われない)。 +.SH 返り値 +成功した場合、 .BR io_cancel () -¤Ï 0 ¤òÊÖ¤¹¡£ -¼ºÇÔ»þ¤ÎÊÖ¤êÃͤˤĤ¤¤Æ¤Ï¡¢¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ¥¨¥é¡¼ +は 0 を返す。 +失敗時の返り値については、「注意」の節を参照すること。 +.SH エラー .TP .B EAGAIN -»ØÄꤵ¤ì¤¿ \fIiocb\fP ¤Î¼è¤ê¾Ã¤·¤¬¹Ô¤ï¤ì¤Ê¤«¤Ã¤¿¡£ +指定された \fIiocb\fP の取り消しが行われなかった。 .TP .B EFAULT -¥Ç¡¼¥¿¹½Â¤¤ÎÃæ¤Ë̵¸ú¤Ê¥Ç¡¼¥¿¤ò»Ø¤·¤Æ¤¤¤ë¤â¤Î¤¬¤¢¤ë¡£ +データ構造の中に無効なデータを指しているものがある。 .TP .B EINVAL -\fIctx_id\fP ¤Ç»ØÄꤵ¤ì¤¿ AIO ¥³¥ó¥Æ¥­¥¹¥È¤¬Ìµ¸ú¤Ç¤¢¤ë¡£ +\fIctx_id\fP で指定された AIO コンテキストが無効である。 .TP .B ENOSYS .BR io_cancel () -¤Ï¤³¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +はこのアーキテクチャでは実装されていない。 +.SH バージョン .PP -ÈóƱ´ü I/O ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï 2002ǯ8·î¤Ë Linux 2.5 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +非同期 I/O システム・コールは 2002å¹´8月に Linux 2.5 で初めて登場した。 +.SH 準拠 .PP .BR io_cancel () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤òÁÛÄꤷ¤¿¥×¥í¥°¥é¥à¤Ç»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ëÍѤΥé¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +は Linux 固有であり、移植を想定したプログラムで使用すべきではない。 +.SH 注意 +glibc はこのシステムコール用のラッパー関数を提供していない。 .I libaio -¤Ç +で .BR io_cancel () -ÍѤËÄ󶡤µ¤ì¤Æ¤¤¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢¥¨¥é¡¼¤ÎÄÌÃΤ¬Ä̾ï¤Î C ¥é¥¤¥Ö¥é¥ê¤Î -´·½¬¤Ë¤·¤¿¤¬¤Ã¤Æ¤ª¤é¤º¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤ÏÉé¤Î¥¨¥é¡¼ÈÖ¹æ -(¥¨¥é¡¼¤ÎÀá¤ËÎóµó¤µ¤ì¤Æ¤¤¤ëÃͤΰì¤Ä¤òÉé¤Ë¤·¤¿¤â¤Î) ¤¬ÊÖ¤êÃͤȤʤ롣 +用に提供されているラッパー関数は、エラーの通知が通常の C ライブラリの +慣習にしたがっておらず、エラーの場合には負のエラー番号 +(エラーの節に列挙されている値の一つを負にしたもの) が返り値となる。 .BR syscall (2) -·Ðͳ¤Ç¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤¹¤ë¤È¡¢ÊÖ¤êÃͤÏÄ̾ï¤Î¥¨¥é¡¼ÄÌÃΤδ·½¬¤Ë -¤·¤¿¤¬¤Ã¤Æ¤â¤Î¤È¤Ê¤ê¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï \-1 ¤¬Ê֤ꡢ +経由でシステムコールを起動すると、返り値は通常のエラー通知の慣習に +したがってものとなり、エラーの場合には \-1 が返り、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ (Àµ¤Î) Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +にエラーを示す (正の) 値が設定される。 +.SH 関連項目 .BR io_destroy (2), .BR io_getevents (2), .BR io_setup (2), .BR io_submit (2), .BR aio (7) -.\" .SH Ãí +.\" .SH 注 .\" .PP -.\" ÈóƱ´ü I/O ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï Benjamin LaHaise ¤¬½ñ¤¤¤¿¡£ -.\" .SH Ãø¼Ô +.\" 非同期 I/O システム・コールは Benjamin LaHaise が書いた。 +.\" .SH 著者 .\" Kent Yoder. diff --git a/release/man2/io_destroy.2 b/release/man2/io_destroy.2 index 5035fdbd..5f9f7b5a 100644 --- a/release/man2/io_destroy.2 +++ b/release/man2/io_destroy.2 @@ -24,9 +24,9 @@ .\" .IP "\\$1" \\$2 .\" .. .TH IO_DESTROY 2 2008-06-18 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -io_destroy \- ÈóƱ´ü I/O ¥³¥ó¥Æ¥­¥¹¥È¤Î¾Ãµî -.SH ½ñ¼° +.SH 名前 +io_destroy \- 非同期 I/O コンテキストの消去 +.SH 書式 .nf .\" .ad l .\" .hy 0 @@ -38,62 +38,62 @@ io_destroy \- .\" .ad .\" .hy .sp -\fI\-laio\fP ¤È¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-laio\fP とリンクする。 .fi -.SH ÀâÌÀ +.SH 説明 .PP .BR io_destroy () -¤Ï¡¢I/O ¥³¥ó¥Æ¥­¥¹¥È¤Î¥ê¥¹¥È¤«¤é»ØÄꤵ¤ì¤¿ÈóƱ´ü I/O -¥³¥ó¥Æ¥­¥¹¥È¤òºï½ü¤·¤¿¸å¡¢¤½¤Î¥³¥ó¥Æ¥­¥¹¥È¤ò¾Ãµî¤¹¤ë¡£ +は、I/O コンテキストのリストから指定された非同期 I/O +コンテキストを削除した後、そのコンテキストを消去する。 .BR io_destroy () -¤Ï¡¢\fIctx\fP ¾å¤Ë̤½èÍý¤ÎÈóƱ´ü I/O Ì¿ÎáµÚ¤Ó -´°Î»¥­¥å¡¼¤Î¥Ö¥í¥Ã¥¯¤Î¼è¤ê¾Ã¤·¤â¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +は、\fIctx\fP 上に未処理の非同期 I/O 命令及び +完了キューのブロックの取り消しも行うことができる。 +.SH 返り値 +成功した場合、 .BR io_destroy () -¤Ï 0 ¤òÊÖ¤¹¡£ -¼ºÇÔ»þ¤ÎÊÖ¤êÃͤˤĤ¤¤Æ¤Ï¡¢¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ¥¨¥é¡¼ +は 0 を返す。 +失敗時の返り値については、「注意」の節を参照すること。 +.SH エラー .TP .B EFAULT -.\"motoki: ʬ¤«¤ê¤Ë¤¯¤¤¤Î¤Ç¡¢io_cancel.2 ¤«¤éήÍÑ¡£¤ª¤½¤é¤¯Æ±¤¸°ÕÌ£¡£ -¥Ç¡¼¥¿¹½Â¤¤ÎÃæ¤Ë̵¸ú¤Ê¥Ç¡¼¥¿¤ò»Ø¤·¤Æ¤¤¤ë¤â¤Î¤¬¤¢¤ë¡£ +.\"motoki: 分かりにくいので、io_cancel.2 から流用。おそらく同じ意味。 +データ構造の中に無効なデータを指しているものがある。 .TP .B EINVAL -\fIctx\fP ¤Ç»ØÄꤵ¤ì¤¿ AIO ¥³¥ó¥Æ¥­¥¹¥È¤¬Ìµ¸ú¤Ç¤¢¤ë¡£ +\fIctx\fP で指定された AIO コンテキストが無効である。 .TP .B ENOSYS .BR io_destroy () -¤Ï¤³¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +はこのアーキテクチャでは実装されていない。 +.SH バージョン .PP -ÈóƱ´ü I/O ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï 2002ǯ8·î¤Ë Linux 2.5 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +非同期 I/O システム・コールは 2002å¹´8月に Linux 2.5 で初めて登場した。 +.SH 準拠 .PP .BR io_destroy () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤òÁÛÄꤷ¤¿¥×¥í¥°¥é¥à¤Ç»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ëÍѤΥé¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +は Linux 固有であり、移植を想定したプログラムで使用すべきではない。 +.SH 注意 +glibc はこのシステムコール用のラッパー関数を提供していない。 .I libaio -¤Ç +で .BR io_destroy () -ÍѤËÄ󶡤µ¤ì¤Æ¤¤¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢¥¨¥é¡¼¤ÎÄÌÃΤ¬Ä̾ï¤Î C ¥é¥¤¥Ö¥é¥ê¤Î -´·½¬¤Ë¤·¤¿¤¬¤Ã¤Æ¤ª¤é¤º¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤ÏÉé¤Î¥¨¥é¡¼ÈÖ¹æ -(¥¨¥é¡¼¤ÎÀá¤ËÎóµó¤µ¤ì¤Æ¤¤¤ëÃͤΰì¤Ä¤òÉé¤Ë¤·¤¿¤â¤Î) ¤¬ÊÖ¤êÃͤȤʤ롣 +用に提供されているラッパー関数は、エラーの通知が通常の C ライブラリの +慣習にしたがっておらず、エラーの場合には負のエラー番号 +(エラーの節に列挙されている値の一つを負にしたもの) が返り値となる。 .BR syscall (2) -·Ðͳ¤Ç¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤¹¤ë¤È¡¢ÊÖ¤êÃͤÏÄ̾ï¤Î¥¨¥é¡¼ÄÌÃΤδ·½¬¤Ë -¤·¤¿¤¬¤Ã¤Æ¤â¤Î¤È¤Ê¤ê¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï \-1 ¤¬Ê֤ꡢ +経由でシステムコールを起動すると、返り値は通常のエラー通知の慣習に +したがってものとなり、エラーの場合には \-1 が返り、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ (Àµ¤Î) Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +にエラーを示す (正の) 値が設定される。 +.SH 関連項目 .BR io_cancel (2), .BR io_getevents (2), .BR io_setup (2), .BR io_submit (2), .BR aio (7) -.\" .SH Ãí +.\" .SH 注 .\" .PP -.\" ÈóƱ´ü I/O ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï Benjamin LaHaise ¤¬½ñ¤¤¤¿¡£ -.\" .SH Ãø¼Ô +.\" 非同期 I/O システム・コールは Benjamin LaHaise が書いた。 +.\" .SH 著者 .\" Kent Yoder. diff --git a/release/man2/io_getevents.2 b/release/man2/io_getevents.2 index e34b1823..a05b3aed 100644 --- a/release/man2/io_getevents.2 +++ b/release/man2/io_getevents.2 @@ -5,7 +5,7 @@ .\" Japanese Version Copyright (c) 2003 Akihiro MOTOKI, all rights reserved. .\" Translated Mon Mar 8 2003 by Akihiro MOTOKI .\" -.\"WORD: completion queue ´°Î»¥­¥å¡¼ +.\"WORD: completion queue 完了キュー .\" .\" .de Sh \" Subsection .\" .br @@ -26,9 +26,9 @@ .\" .IP "\\$1" \\$2 .\" .. .TH IO_GETEVENTS 2 2008-07-04 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -io_getevents \- ´°Î»¥­¥å¡¼¤«¤éÈóƱ´ü I/O ¥¤¥Ù¥ó¥È¤òÆɤ߽Ф¹ -.SH ½ñ¼° +.SH 名前 +io_getevents \- 完了キューから非同期 I/O イベントを読み出す +.SH 書式 .nf .\" .ad l .\" .hy 0 @@ -43,68 +43,68 @@ io_getevents \- .\" .ad .\" .hy .sp -\fI\-laio\fP ¤È¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-laio\fP とリンクする。 .fi -.SH ÀâÌÀ +.SH 説明 .PP .BR io_getevents () -¤Ï¡¢¾¯¤Ê¤¯¤È¤â \fImin_nr\fP ¤Î¡¢ºÇÂç \fInr\fP ¸Ä¤Î -¥¤¥Ù¥ó¥È¤ò¡¢ \fIctx_id\fP ¤Ç»ØÄꤵ¤ì¤¿ AIO (ÈóƱ´ü I/O) ¥³¥ó¥Æ¥­¥¹¥È¤Î -´°Î»¥­¥å¡¼¤«¤éÆɤ߽Ф½¤¦¤È¤¹¤ë¡£ -\fItimeout\fP ¤Ï¥¤¥Ù¥ó¥ÈÆɤ߽Ф·¤ÎÂÔ¤Á»þ´Ö¤Î¹ç·×¤ò»ØÄꤹ¤ë¡£ -¥¿¥¤¥à¥¢¥¦¥È¤Ë NULL ¤ò»ØÄꤷ¤¿¾ì¹ç¡¢¾¯¤Ê¤¯¤È¤â \fImin_nr\fP ¸Ä¤Î¥¤¥Ù¥ó¥È¤¬ -Æɤ߽Фµ¤ì¤ë¤Þ¤ÇÂԤĤ³¤È¤ò°ÕÌ£¤¹¤ë¡£ -Ãí°ÕÅÀ¤ò°Ê²¼¤Ë¤¢¤²¤ë: -\fItimeout\fP ¤ÏÁêÂÐŪ¤Ê»ØÄê¤Ç¤¢¤ë¡£ -NULL ¤Ç¤Ê¤¤¾ì¹ç¹¹¿·¤µ¤ì¤ë¤³¤È¤â¤¢¤ê¤¨¤ë¡£ -¸Æ¤Ó½Ð¤·¸µ¤ÎÆ°ºî¤ÏÄä»ß¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +は、少なくとも \fImin_nr\fP の、最大 \fInr\fP 個の +イベントを、 \fIctx_id\fP で指定された AIO (非同期 I/O) コンテキストの +完了キューから読み出そうとする。 +\fItimeout\fP はイベント読み出しの待ち時間の合計を指定する。 +タイムアウトに NULL を指定した場合、少なくとも \fImin_nr\fP 個のイベントが +読み出されるまで待つことを意味する。 +注意点を以下にあげる: +\fItimeout\fP は相対的な指定である。 +NULL でない場合更新されることもありえる。 +呼び出し元の動作は停止する。 +.SH 返り値 +成功すると、 .BR io_getevents () -¤ÏÆɤ߽Ф·¤¿¥¤¥Ù¥ó¥È¿ô¤òÊÖ¤¹¡£ -¥¤¥Ù¥ó¥È¤¬°ì¤Ä¤âÆɤ߽Фµ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¡¢ -\fItimeout\fP »þ´Ö¤¬·Ð²á¤·¤¿¾ì¹ç¤Ï \fImin_nr\fP ̤Ëþ¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¡£ -¼ºÇÔ»þ¤ÎÊÖ¤êÃͤˤĤ¤¤Æ¤Ï¡¢¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ¥¨¥é¡¼ +は読み出したイベント数を返す。 +イベントが一つも読み出されなかった場合は 0 が返され、 +\fItimeout\fP 時間が経過した場合は \fImin_nr\fP 未満の値が返される。 +失敗時の返り値については、「注意」の節を参照すること。 +.SH エラー .TP .B EFAULT -\fIevents\fP ¤Þ¤¿¤Ï \fItimeout\fP ¤¬Ìµ¸ú¤Ê¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +\fIevents\fP または \fItimeout\fP が無効なポインタである。 .TP .B EINVAL -\fIctx_id\fP ¤¬Ìµ¸ú¤Ç¤¢¤ë¡£¤â¤·¤¯¤Ï¡¢\fImin_nr\fP ¤Þ¤¿¤Ï \fInr\fP ¤¬ -Èϰϳ°¤ÎÃͤǤ¢¤ë¡£ +\fIctx_id\fP が無効である。もしくは、\fImin_nr\fP または \fInr\fP が +範囲外の値である。 .TP .B EINTR -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¡£ +シグナルハンドラにより割り込まれた。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B ENOSYS .BR io_getevents () -¤¬¤³¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +がこのアーキテクチャでは実装されていない。 +.SH バージョン .PP -ÈóƱ´ü I/O ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï 2002ǯ8·î¤Ë Linux 2.5 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +非同期 I/O システム・コールは 2002å¹´8月に Linux 2.5 で初めて登場した。 +.SH 準拠 .PP .BR io_getevents () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤òÁÛÄꤷ¤¿¥×¥í¥°¥é¥à¤Ç -»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ëÍѤΥé¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +は Linux 固有であり、移植を想定したプログラムで +使用すべきではない。 +.SH 注意 +glibc はこのシステムコール用のラッパー関数を提供していない。 .I libaio -¤Ç +で .BR io_getevents () -ÍѤËÄ󶡤µ¤ì¤Æ¤¤¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢¥¨¥é¡¼¤ÎÄÌÃΤ¬Ä̾ï¤Î C ¥é¥¤¥Ö¥é¥ê¤Î -´·½¬¤Ë¤·¤¿¤¬¤Ã¤Æ¤ª¤é¤º¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤ÏÉé¤Î¥¨¥é¡¼ÈÖ¹æ -(¥¨¥é¡¼¤ÎÀá¤ËÎóµó¤µ¤ì¤Æ¤¤¤ëÃͤΰì¤Ä¤òÉé¤Ë¤·¤¿¤â¤Î) ¤¬ÊÖ¤êÃͤȤʤ롣 +用に提供されているラッパー関数は、エラーの通知が通常の C ライブラリの +慣習にしたがっておらず、エラーの場合には負のエラー番号 +(エラーの節に列挙されている値の一つを負にしたもの) が返り値となる。 .BR syscall (2) -·Ðͳ¤Ç¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤¹¤ë¤È¡¢ÊÖ¤êÃͤÏÄ̾ï¤Î¥¨¥é¡¼ÄÌÃΤδ·½¬¤Ë -¤·¤¿¤¬¤Ã¤Æ¤â¤Î¤È¤Ê¤ê¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï \-1 ¤¬Ê֤ꡢ +経由でシステムコールを起動すると、返り値は通常のエラー通知の慣習に +したがってものとなり、エラーの場合には \-1 が返り、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ (Àµ¤Î) Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +にエラーを示す (正の) 値が設定される。 +.SH 関連項目 .PP .BR io_cancel (2), .BR io_destroy (2), @@ -112,8 +112,8 @@ glibc .BR io_submit (2), .BR aio (7), .BR time (7) -.\" .SH Ãí +.\" .SH 注 .\" .PP -.\" ÈóƱ´ü I/O ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï Benjamin LaHaise ¤¬½ñ¤¤¤¿¡£ -.\" .SH Ãø¼Ô +.\" 非同期 I/O システム・コールは Benjamin LaHaise が書いた。 +.\" .SH 著者 .\" Kent Yoder. diff --git a/release/man2/io_setup.2 b/release/man2/io_setup.2 index 56fd86d8..a5116e3c 100644 --- a/release/man2/io_setup.2 +++ b/release/man2/io_setup.2 @@ -24,9 +24,9 @@ .\" .IP "\\$1" \\$2 .\" .. .TH IO_SETUP 2 2003-06-18 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -io_setup \- ÈóƱ´ü I/O ¥³¥ó¥Æ¥­¥¹¥È¤òºîÀ®¤¹¤ë -.SH ½ñ¼° +.SH 名前 +io_setup \- 非同期 I/O コンテキストを作成する +.SH 書式 .nf .\" .ad l .\" .hy 0 @@ -38,73 +38,73 @@ io_setup \- .\" .ad .\" .hy .sp -\fI\-laio\fP ¤È¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-laio\fP とリンクする。 .fi -.SH ÀâÌÀ +.SH 説明 .PP .BR io_setup () -¤Ï¡¢¾¯¤Ê¤¯¤È¤â \fInr_events\fP ¸Ä¤Î¥¤¥Ù¥ó¥È¤ò¼õ¿®²Äǽ¤Ê -ÈóƱ´ü I/O (AIO) ¥³¥ó¥Æ¥­¥¹¥È¤ÎºîÀ®¤ò¹Ô¤¦¡£ -\fIctxp\fP ¤Ï¡¢¤¹¤Ç¤Ë¸ºß¤¹¤ë AIO ¥³¥ó¥Æ¥­¥¹¥È¤ò»Ø¤·¤Æ¤¤¤Æ¤Ï¤Ê¤é¤º¡¢ +は、少なくとも \fInr_events\fP 個のイベントを受信可能な +非同期 I/O (AIO) コンテキストの作成を行う。 +\fIctxp\fP は、すでに存在する AIO コンテキストを指していてはならず、 .BR io_setup () -¤Î¸Æ¤Ó½Ð¤·¤ÎÁ°¤Ë 0 ¤Ë½é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -AIO ¥³¥ó¥Æ¥­¥¹¥È¤ÎºîÀ®¤ËÀ®¸ù¤¹¤ë¤È¡¢\fI*ctxp\fP ¤ËºîÀ®¤µ¤ì¤¿ -AIO ¥³¥ó¥Æ¥­¥¹¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +の呼び出しの前に 0 に初期化されていなければならない。 +AIO コンテキストの作成に成功すると、\fI*ctxp\fP に作成された +AIO コンテキストへのポインタがセットされる。 +.SH 返り値 +成功した場合、 .BR io_setup () -¤Ï 0 ¤òÊÖ¤¹¡£ -¼ºÇÔ»þ¤ÎÊÖ¤êÃͤˤĤ¤¤Æ¤Ï¡¢¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ¥¨¥é¡¼ +は 0 を返す。 +失敗時の返り値については、「注意」の節を参照すること。 +.SH エラー .TP .B EAGAIN -»ØÄꤵ¤ì¤¿ \fInr_events\fP ¤¬¥æ¡¼¥¶¤¬»ÈÍѤǤ­¤ë¥¤¥Ù¥ó¥È¿ô¤Î¾å¸Â¤ò±Û¤¨¤Æ¤¤¤ë¡£ +指定された \fInr_events\fP がユーザが使用できるイベント数の上限を越えている。 .TP .B EFAULT -\fIctxp\fP ¤Ë̵¸ú¤Ê¥Ý¥¤¥ó¥¿¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¡£ +\fIctxp\fP に無効なポインタが指定されている。 .TP .B EINVAL -\fIctxp\fP ¤¬½é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢»ØÄꤵ¤ì¤¿ \fInr_events\fP ¤¬ -ÆâÉô¤ÎÀ©¸ÂÃͤò±Û¤¨¤Æ¤¤¤ë¡£¤Þ¤¿¡¢ \fInr_events\fP ¤Ï 0 ¤è¤êÂ礭¤¤ÃÍ¤Ë -ÀßÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£ +\fIctxp\fP が初期化されていないか、指定された \fInr_events\fP が +内部の制限値を越えている。また、 \fInr_events\fP は 0 より大きい値に +設定すべきである。 .TP .B ENOMEM -ɬÍפʥ«¡¼¥Í¥ë¡¦¥ê¥½¡¼¥¹¤òÆÀ¤é¤ì¤Ê¤¤¡£ +必要なカーネル・リソースを得られない。 .TP .B ENOSYS .BR io_setup () -¤¬¤³¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +がこのアーキテクチャでは実装されていない。 +.SH バージョン .PP -ÈóƱ´ü I/O ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï 2002ǯ8·î¤Ë Linux 2.5 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +非同期 I/O システム・コールは 2002å¹´8月に Linux 2.5 で初めて登場した。 +.SH 準拠 .PP .BR io_setup () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤òÁÛÄꤷ¤¿¥×¥í¥°¥é¥à¤Ç -»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ëÍѤΥé¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +は Linux 固有であり、移植を想定したプログラムで +使用すべきではない。 +.SH 注意 +glibc はこのシステムコール用のラッパー関数を提供していない。 .I libaio -¤Ç +で .BR io_setup () -ÍѤËÄ󶡤µ¤ì¤Æ¤¤¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢¥¨¥é¡¼¤ÎÄÌÃΤ¬Ä̾ï¤Î C ¥é¥¤¥Ö¥é¥ê¤Î -´·½¬¤Ë¤·¤¿¤¬¤Ã¤Æ¤ª¤é¤º¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤ÏÉé¤Î¥¨¥é¡¼ÈÖ¹æ -(¥¨¥é¡¼¤ÎÀá¤ËÎóµó¤µ¤ì¤Æ¤¤¤ëÃͤΰì¤Ä¤òÉé¤Ë¤·¤¿¤â¤Î) ¤¬ÊÖ¤êÃͤȤʤ롣 +用に提供されているラッパー関数は、エラーの通知が通常の C ライブラリの +慣習にしたがっておらず、エラーの場合には負のエラー番号 +(エラーの節に列挙されている値の一つを負にしたもの) が返り値となる。 .BR syscall (2) -·Ðͳ¤Ç¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤¹¤ë¤È¡¢ÊÖ¤êÃͤÏÄ̾ï¤Î¥¨¥é¡¼ÄÌÃΤδ·½¬¤Ë -¤·¤¿¤¬¤Ã¤Æ¤â¤Î¤È¤Ê¤ê¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï \-1 ¤¬Ê֤ꡢ +経由でシステムコールを起動すると、返り値は通常のエラー通知の慣習に +したがってものとなり、エラーの場合には \-1 が返り、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ (Àµ¤Î) Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +にエラーを示す (正の) 値が設定される。 +.SH 関連項目 .PP .BR io_cancel (2), .BR io_destroy (2), .BR io_getevents (2), .BR io_submit (2), .BR aio (7) -.\" .SH Ãí +.\" .SH 注 .\" .PP -.\" ÈóƱ´ü I/O ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï Benjamin LaHaise ¤¬½ñ¤¤¤¿¡£ -.\" .SH Ãø¼Ô +.\" 非同期 I/O システム・コールは Benjamin LaHaise が書いた。 +.\" .SH 著者 .\" Kent Yoder. diff --git a/release/man2/io_submit.2 b/release/man2/io_submit.2 index fe0a8cc4..d31db652 100644 --- a/release/man2/io_submit.2 +++ b/release/man2/io_submit.2 @@ -24,9 +24,9 @@ .\" .IP "\\$1" \\$2 .\" .. .TH IO_SUBMIT 2 2008-06-18 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -io_submit \- ÈóƱ´ü I/O ¥Ö¥í¥Ã¥¯¤ò½èÍýÂÔ¤Á¥­¥å¡¼¤ËÅÐÏ¿¤¹¤ë -.SH ½ñ¼° +.SH 名前 +io_submit \- 非同期 I/O ブロックを処理待ちキューに登録する +.SH 書式 .nf .\" .ad l .\" .hy 0 @@ -39,72 +39,72 @@ io_submit \- .\" .ad .\" .hy .sp -\fI\-laio\fP ¤È¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-laio\fP とリンクする。 .fi -.SH ÀâÌÀ +.SH 説明 .PP .BR io_submit () -¤Ï¡¢AIO ¥³¥ó¥Æ¥­¥¹¥È \fIctx_id\fP ¤Ë \fInr\fP ¸Ä¤Î I/O -¥ê¥¯¥¨¥¹¥È¤ò½èÍýÂÔ¤Á¤È¤·¤Æ¥­¥å¡¼¤ËÄɲ乤롣 -\fIiocbpp\fP ¤Ï¡¢AIO ¥³¥ó¥Æ¥­¥¹¥È \fIctx_id\fP ¤ËÅÐÏ¿¤µ¤ì¤ë \fInr\fP ¸Ä¤Î -AIO À©¸æ¥Ö¥í¥Ã¥¯¤ÎÇÛÎó¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +は、AIO コンテキスト \fIctx_id\fP に \fInr\fP 個の I/O +リクエストを処理待ちとしてキューに追加する。 +\fIiocbpp\fP は、AIO コンテキスト \fIctx_id\fP に登録される \fInr\fP 個の +AIO 制御ブロックの配列になっていなければならない。 +.SH 返り値 +成功すると、 .BR io_submit () -¤ÏÅÐÏ¿¤·¤¿ \fIiocb\fP ¤Î¸Ä¿ô¤òÊÖ¤¹ -(\fInr\fP ¤¬ 0 ¤Î¾ì¹ç¤Ï 0 ¤òÊÖ¤¹)¡£ -¼ºÇÔ»þ¤ÎÊÖ¤êÃͤˤĤ¤¤Æ¤Ï¡¢¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ¥¨¥é¡¼ +は登録した \fIiocb\fP の個数を返す +(\fInr\fP が 0 の場合は 0 を返す)。 +失敗時の返り値については、「注意」の節を参照すること。 +.SH エラー .TP .B EAGAIN -²¿¸Ä¤«¤Î \fIiocb\fP ¤ò¥­¥å¡¼¤ËÆþ¤ì¤ë¤Î¤ËɬÍפʥ꥽¡¼¥¹¤¬ÆÀ¤é¤ì¤Ê¤¤¡£ +何個かの \fIiocb\fP をキューに入れるのに必要なリソースが得られない。 .TP .B EBADF -ÀèƬ¤Î \fIiocb\fP ¤Ë»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Ìµ¸ú¤Ç¤¢¤ë¡£ +先頭の \fIiocb\fP に指定されたファイル・ディスクリプタが無効である。 .TP .B EFAULT -¥Ç¡¼¥¿¹½Â¤¤ÎÃæ¤Ë̵¸ú¤Ê¥Ç¡¼¥¿¤ò»Ø¤·¤Æ¤¤¤ë¤â¤Î¤¬¤¢¤ë¡£ +データ構造の中に無効なデータを指しているものがある。 .TP .B EINVAL -\fIctx_id\fP ¤Ç»ØÄꤵ¤ì¤¿ \fIaio_context\fP ¤¬Ìµ¸ú¤Ç¤¢¤ë¡£ -\fInr\fP ¤¬ 0 ̤Ëþ¤Ç¤¢¤ë¡£ -*iocbpp[0] ¤Î \fIiocb\fP ¤¬Å¬Àڤ˽é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ -»ØÄꤵ¤ì¤¿Áàºî¤¬¤½¤Î \fIiocb\fP Ãæ¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ -̵¸ú¤Ç¤¢¤ë¡£ +\fIctx_id\fP で指定された \fIaio_context\fP が無効である。 +\fInr\fP が 0 未満である。 +*iocbpp[0] の \fIiocb\fP が適切に初期化されていないか、 +指定された操作がその \fIiocb\fP 中のファイル・ディスクリプタに対して +無効である。 .TP .B ENOSYS .BR io_submit () -¤Ï¤³¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +はこのアーキテクチャでは実装されていない。 +.SH バージョン .PP -ÈóƱ´ü I/O ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï 2002ǯ8·î¤Ë Linux 2.5 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +非同期 I/O システム・コールは 2002å¹´8月に Linux 2.5 で初めて登場した。 +.SH 準拠 .PP .BR io_submit () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤òÁÛÄꤷ¤¿¥×¥í¥°¥é¥à¤Ç -»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ëÍѤΥé¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +は Linux 固有であり、移植を想定したプログラムで +使用すべきではない。 +.SH 注意 +glibc はこのシステムコール用のラッパー関数を提供していない。 .I libaio -¤Ç +で .BR io_submit () -ÍѤËÄ󶡤µ¤ì¤Æ¤¤¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢¥¨¥é¡¼¤ÎÄÌÃΤ¬Ä̾ï¤Î C ¥é¥¤¥Ö¥é¥ê¤Î -´·½¬¤Ë¤·¤¿¤¬¤Ã¤Æ¤ª¤é¤º¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤ÏÉé¤Î¥¨¥é¡¼ÈÖ¹æ -(¥¨¥é¡¼¤ÎÀá¤ËÎóµó¤µ¤ì¤Æ¤¤¤ëÃͤΰì¤Ä¤òÉé¤Ë¤·¤¿¤â¤Î) ¤¬ÊÖ¤êÃͤȤʤ롣 +用に提供されているラッパー関数は、エラーの通知が通常の C ライブラリの +慣習にしたがっておらず、エラーの場合には負のエラー番号 +(エラーの節に列挙されている値の一つを負にしたもの) が返り値となる。 .BR syscall (2) -·Ðͳ¤Ç¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤¹¤ë¤È¡¢ÊÖ¤êÃͤÏÄ̾ï¤Î¥¨¥é¡¼ÄÌÃΤδ·½¬¤Ë -¤·¤¿¤¬¤Ã¤Æ¤â¤Î¤È¤Ê¤ê¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï \-1 ¤¬Ê֤ꡢ +経由でシステムコールを起動すると、返り値は通常のエラー通知の慣習に +したがってものとなり、エラーの場合には \-1 が返り、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ (Àµ¤Î) Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +にエラーを示す (正の) 値が設定される。 +.SH 関連項目 .BR io_cancel (2), .BR io_destroy (2), .BR io_getevents (2), .BR io_setup (2), .BR aio (7) -.\" .SH Ãí +.\" .SH 注 .\" .PP -.\" ÈóƱ´ü I/O ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï Benjamin LaHaise ¤¬½ñ¤¤¤¿¡£ -.\" .SH Ãø¼Ô +.\" 非同期 I/O システム・コールは Benjamin LaHaise が書いた。 +.\" .SH 著者 .\" Kent Yoder. diff --git a/release/man2/ioctl.2 b/release/man2/ioctl.2 index 67c859de..3eb3620b 100644 --- a/release/man2/ioctl.2 +++ b/release/man2/ioctl.2 @@ -45,117 +45,117 @@ .\" Updated 2011-08-10, TACHIBANA Akira .\" Updated 2011-09-15, TACHIBANA Akira .\" -.\"WORD: device ¥Ç¥Ð¥¤¥¹ -.\"WORD: control À©¸æ¤¹¤ë -.\"WORD: special ¥¹¥Ú¥·¥ã¥ë -.\"WORD: character ¥­¥ã¥é¥¯¥¿ -.\"WORD: parameter ¥Ñ¥é¥á¡¼¥¿ -.\"WORD: operate Áàºî -.\"WORD: open ¥ª¡¼¥×¥ó -.\"WORD: request ¥ê¥¯¥¨¥¹¥È -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: argument °ú¤­¿ô -.\"WORD: encode ¥¨¥ó¥³¡¼¥É -.\"WORD: operating characteristics Æ°ºîÆÃÀ­ +.\"WORD: device デバイス +.\"WORD: control 制御する +.\"WORD: special スペシャル +.\"WORD: character キャラクタ +.\"WORD: parameter パラメータ +.\"WORD: operate 操作 +.\"WORD: open オープン +.\"WORD: request リクエスト +.\"WORD: descriptor ディスクリプタ +.\"WORD: argument 引き数 +.\"WORD: encode エンコード +.\"WORD: operating characteristics 動作特性 .\" .TH IOCTL 2 2000-09-21 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -ioctl \- ¥Ç¥Ð¥¤¥¹¤òÀ©¸æ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +ioctl \- デバイスを制御する +.SH 書式 .B #include .sp .BI "int ioctl(int " d ", int " request ", ...);" -.SH ÀâÌÀ +.SH 説明 .BR ioctl () -´Ø¿ô¤Ï¥¹¥Ú¥·¥ã¥ë¡¦¥Õ¥¡¥¤¥ë¤ò¹½À®¤¹¤ë¥Ç¥Ð¥¤¥¹¤Î¥Ñ¥é¥á¡¼¥¿¤ò -Áàºî¤¹¤ë¡£Æäˡ¢¥­¥ã¥é¥¯¥¿·¿¤Î¥¹¥Ú¥·¥ã¥ë¡¦¥Õ¥¡¥¤¥ë (Î㤨¤ÐüËö (terminal)) -¤Î¿¤¯¤ÎÆ°ºîÆÃÀ­¤ò +関数はスペシャル・ファイルを構成するデバイスのパラメータを +操作する。特に、キャラクタ型のスペシャル・ファイル (例えば端末 (terminal)) +の多くの動作特性を .BR ioctl () -¥ê¥¯¥¨¥¹¥È¤Ë¤è¤Ã¤ÆÀ©¸æ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£°ú¤­¿ô +リクエストによって制御することができる。引き数 .I d -¤Ï¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +はオープンされたファイル・ディスクリプタでなければならない。 .PP -2 ÈÖÌܤΰú¤­¿ô¤Ï¡¢¥Ç¥Ð¥¤¥¹°Í¸¤Î¥ê¥¯¥¨¥¹¥È¡¦¥³¡¼¥É¤Ç¤¢¤ë¡£ -3 ÈÖÌܤΰú¤­¿ô¤Ï¡¢¥á¥â¥ê¤Ø¤Î·¿¤ò»ØÄꤷ¤Ê¤¤¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤³¤Î°ú¤­¿ô¤ÏÅÁÅýŪ¤Ë (C ¤Ç +2 番目の引き数は、デバイス依存のリクエスト・コードである。 +3 番目の引き数は、メモリへの型を指定しないポインタである。 +この引き数は伝統的に (C で .B "void *" -¤È¤¤¤¦½ñ¤­Êý¤¬Í­¸ú¤Ë¤Ê¤ëÁ°¤«¤é) +という書き方が有効になる前から) .BI "char *" argp -¤Èɽµ­¤µ¤ì¤Æ¤¤¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢¤³¤Îʸ¾Ï¤Ç¤â¤½¤¦Ì¾ÉÕ¤±¤ë¤³¤È¤È¤¹¤ë¡£ +と表記されている。したがって、この文章でもそう名付けることとする。 .PP .BR ioctl () -¤Î +の .I request -¤Ë¤Ï¡¢ -¤½¤Î°ú¤­¿ô¤¬ -.I ÆþÎÏ -¥Ñ¥é¥á¡¼¥¿¤È -.I ½ÐÎÏ -¥Ñ¥é¥á¡¼¥¿¤Î¤É¤Á¤é¤Ç¤¢¤ë¤«¤Î¶èÊ̤䡢 +には、 +その引き数が +.I 入力 +パラメータと +.I 出力 +パラメータのどちらであるかの区別や、 .I argp -°ú¤­¿ô¤Î¥Ð¥¤¥Èñ°Ì¤Î¥µ¥¤¥º¡¢¤È¤¤¤Ã¤¿¾ðÊ󤬥¨¥ó¥³¡¼¥É¤µ¤ì¤Æ¤¤¤ë¡£ +引き数のバイト単位のサイズ、といった情報がエンコードされている。 .BR ioctl () -¤Î +の .I request -¤ò»ØÄꤹ¤ë¤¿¤á¤Î¥Þ¥¯¥í (macro) ¤ÈÄêµÁ¤Ï +を指定するためのマクロ (macro) と定義は .I -¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -¤¿¤¤¤Æ¤¤¤Î¾ì¹ç¡¢À®¸ù¤¹¤ë¤È¥¼¥í¤¬ÊÖ¤µ¤ì¤ë¡£ -¤¿¤À¤·¡¢ +ファイルにある。 +.SH 返り値 +たいていの場合、成功するとゼロが返される。 +ただし、 .BR ioctl () -¥ê¥¯¥¨¥¹¥È¤ÎÃæ¤Ë¤Ï¥Ñ¥é¥á¡¼¥¿¤Î½ÐÎϤËÊÖ¤êÃͤò»ÈÍѤ·¤Æ¤¤¤ë¤â¤Î¤¬¼ã´³¤¢¤ê¡¢ -¤½¤Î¾ì¹ç¤Ï¡¢À®¸ù¤·¤¿¤È¤­¤ËÈóÉé¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +リクエストの中にはパラメータの出力に返り値を使用しているものが若干あり、 +その場合は、成功したときに非負の値が返される。 +エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP 0.7i .B EBADF .I d -¤¬Í­¸ú¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ +が有効なディスクリプタではない。 .TP .B EFAULT .I argp -¤¬¥¢¥¯¥»¥¹ÉÔ²Äǽ¤Ê¥á¥â¥ê¤ò»²¾È¤·¤Æ¤¤¤ë¡£ +がアクセス不可能なメモリを参照している。 .TP .B EINVAL .I request -¤Þ¤¿¤Ï +または .I argp -¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +が不正である。 .TP .B ENOTTY .I d -¤¬¥­¥ã¥é¥¯¥¿·¿¤Î¥¹¥Ú¥·¥ã¥ë¡¦¥Ç¥Ð¥¤¥¹¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£ +がキャラクタ型のスペシャル・デバイスを参照していない。 .TP .B ENOTTY -»ØÄꤵ¤ì¤¿¥ê¥¯¥¨¥¹¥È¤Ï¥Ç¥£¥¹¥¯¥ê¥×¥¿ +指定されたリクエストはディスクリプタ .I d -¤¬»²¾È¤¹¤ë¼ïÎà¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤ÏŬÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ -.SH ½àµò -¤É¤ì¤«°ì¤Ä¤Îɸ½à¤ËÂбþ¤·¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ +が参照する種類のオブジェクトには適用することができない。 +.SH 準拠 +どれか一つの標準に対応しているわけではない。 .BR ioctl () -¤Î°ú¤­¿ô¡¢ÊÖ¤êÃÍ¡¢²ò¼á¤Ï¡¢½èÍýÂоݤΥǥХ¤¥¹¡¦¥É¥é¥¤¥Ð¤´¤È¤Ë -°Û¤Ê¤ë (¤³¤Î´Ø¿ô¤Ï UNIX ¤Î ¥¹¥È¥ê¡¼¥à I/O ¥â¥Ç¥ë ¤Ë -¤­¤Á¤ó¤ÈŬ¹ç¤·¤Æ¤¤¤Ê¤¤Áàºî¤Î¤¿¤á¤ÎÊØÍø²°¤È¤·¤Æ»ÈÍѤµ¤ì¤ë)¡£ -¤è¤¯ÃΤé¤ì¤Æ¤¤¤ë +の引き数、返り値、解釈は、処理対象のデバイス・ドライバごとに +異なる (この関数は UNIX の ストリーム I/O モデル に +きちんと適合していない操作のための便利屋として使用される)。 +よく知られている .BR ioctl () -¤Î¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¤Ï +のリストについては .BR ioctl_list (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .BR ioctl () -´Ø¿ô¥³¡¼¥ë¤Ï Version 7 AT&T UNIX ¤ÇÅо줷¤¿¡£ -.SH Ãí°Õ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤¦¤Ë¤Ï¡¢¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ -ɬÍפǤ¢¤ë¡£ +関数コールは Version 7 AT&T UNIX で登場した。 +.SH 注意 +このシステムコールを使うには、オープンされたファイル・ディスクリプタが +必要である。 .BR open (2) -¥³¡¼¥ë¤Ï¤·¤Ð¤·¤Ð˾¤ó¤Ç¤¤¤Ê¤¤ÉûºîÍѤòȼ¤¦¤³¤È¤¬¤¢¤ë¤¬¡¢Linux ¤Ç¤Ï +コールはしばしば望んでいない副作用を伴うことがあるが、Linux では .BR open (2) -¤Ë +に .B O_NONBLOCK -¥Õ¥é¥°¤ò¤Ä¤±¤ë¤³¤È¤Ç¤³¤ÎÉûºîÍѤòÈò¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +フラグをつけることでこの副作用を避けることができる。 +.SH 関連項目 .BR execve (2), .BR fcntl (2), .BR ioctl_list (2), diff --git a/release/man2/ioctl_list.2 b/release/man2/ioctl_list.2 index 1dc23895..2285f7fe 100644 --- a/release/man2/ioctl_list.2 +++ b/release/man2/ioctl_list.2 @@ -36,85 +36,85 @@ .\" Updated 2008-02-12, Akihiro MOTOKI , LDP v2.77 .\" .TH IOCTL_LIST 2 2007-12-29 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -ioctl_list \- Linux/i386 ¥«¡¼¥Í¥ë¤Î ioctl ¤Î¥ê¥¹¥È -.SH ÀâÌÀ -¤³¤Îʸ¾Ï¤Ï ioctl ¥ê¥¹¥È 1.3.27¡¢¤Ä¤Þ¤ê Linux/i386 ¥«¡¼¥Í¥ë 1.3.27 ¤Ë -¤ª¤±¤ë ioctl ¥³¡¼¥ë¤Î°ìÍ÷¤Ç¤¹¡£¤³¤Î¥ê¥¹¥È¤Ï +.SH 名前 +ioctl_list \- Linux/i386 カーネルの ioctl のリスト +.SH 説明 +この文章は ioctl リスト 1.3.27、つまり Linux/i386 カーネル 1.3.27 に +おける ioctl コールの一覧です。このリストは .I -¤Ë¤¢¤ë 421 ¤Î ioctl ¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£Á´¤Æ¤Î ioctl ¤ËÂФ·¤Æ¡¢¿ôÃÍ¡¢Ì¾¾Î¡¢ -°ú¤­¿ô¤Î·¿¤òÎóµó¤·¤Æ¤¢¤ê¤Þ¤¹¡£ +にある 421 の ioctl を含んでいます。全ての ioctl に対して、数値、名称、 +引き数の型を列挙してあります。 .PP -°ú¤­¿ô·¿ +引き数型 .I const struct foo * -¤Ï¡¢¤½¤Î°ú¤­¿ô¤¬¥«¡¼¥Í¥ë¤Ø¤ÎÆþÎϤǤ¢¤ë»ö¤ò°ÕÌ£¤·¤Þ¤¹¡£¤Þ¤¿¡¢ +は、その引き数がカーネルへの入力である事を意味します。また、 .I struct foo * -¤Ï¡¢¤½¤Î°ú¤­¿ô¤¬¥«¡¼¥Í¥ë¤«¤é¤Î½ÐÎϤǤ¢¤ë»ö¤ò°ÕÌ£¤·¤Þ¤¹¡£ -¥«¡¼¥Í¥ë¤¬¤½¤Î°ú¤­¿ô¤òÆþÎϤȽÐÎϤÎξÊý¤Ë»ÈÍѤ¹¤ë¾ì¹ç¤Ï¡¢ -\fI//\ I-O\fP ¥Þ¡¼¥¯¤òÉÕ¤±¤Æ¤¢¤ê¤Þ¤¹¡£ +は、その引き数がカーネルからの出力である事を意味します。 +カーネルがその引き数を入力と出力の両方に使用する場合は、 +\fI//\ I-O\fP マークを付けてあります。 .PP -¤¤¤¯¤Ä¤«¤Î ioctl ¤ÏÊ£¿ô¤Î¹½Â¤ÂΤΰú¤­¿ô¤òɬÍפȤ·¤¿¤ê¡¢ÃͤòÊÖ¤·¤¿¤ê -¤·¤Þ¤¹¡£¤³¤ì¤é¤Ë¤Ï \fI//\ MORE\fP ¥Þ¡¼¥¯¤òÉÕ¤±¤Æ¡¢ -¤µ¤é¤ËʬΥ¤·¤¿¥»¥¯¥·¥ç¥ó¤ÇÀâÌÀ¤·¤Æ¤¢¤ê¤Þ¤¹¡£ +いくつかの ioctl は複数の構造体の引き数を必要としたり、値を返したり +します。これらには \fI//\ MORE\fP マークを付けて、 +さらに分離したセクションで説明してあります。 .PP -¤³¤Î¥ê¥¹¥È¤ÏÉÔ´°Á´¤Ç¤¹¡£ -.SS "ioctl ¤Î¹½Â¤" -.\" 2 ¤Ä¤Î¥»¥¯¥·¥ç¥ó¤òÄɲà - aeb -ioctl ¥³¥Þ¥ó¥É¤ÎÃÍ¤Ï 32 ¥Ó¥Ã¥È¤ÎÄê¿ô¤Ç¤¹¡£ -¸¶Â§¤È¤·¤Æ¡¢¤³¤ì¤é¤ÎÄê¿ô¤ÏÁ´¤¯Ç¤°Õ¤Î¤â¤Î¤Ç¤¹¤¬¡¢ -À߷׼Ԥϲ¿¤é¤«¤Î¹½Â¤¤ò¤³¤ì¤é¤ÎÄê¿ô¤ËÁȤ߹þ¤â¤¦¤È¤·¤Æ¤¤¤Þ¤¹¡£ +このリストは不完全です。 +.SS "ioctl の構造" +.\" 2 つのセクションを追加 - aeb +ioctl コマンドの値は 32 ビットの定数です。 +原則として、これらの定数は全く任意のものですが、 +設計者は何らかの構造をこれらの定数に組み込もうとしています。 .LP -ÀΤΠLinux ¤Ç¤Ï¡¢ÂçÉôʬ¤Ï 16 ¥Ó¥Ã¥È¤ÎÄê¿ô¤Ç¤¢¤ê¡¢ -²¼°Ì¥Ð¥¤¥È¤Ï¥·¥ê¥¢¥ëÈÖ¹æ¤Ç¡¢¾å°Ì¥Ð¥¤¥È¤Ï¥É¥é¥¤¥Ð¤Î¥¿¥¤¥×¤òɽ¤·¤Æ¤¤¤Þ¤·¤¿¡£ -¥á¥¸¥ã¡¼Èֹ椬»È¤ï¤ì¤ë¤³¤È¤â¤¢¤ê¤Þ¤·¤¿: -0x03 ¤¬ +昔の Linux では、大部分は 16 ビットの定数であり、 +下位バイトはシリアル番号で、上位バイトはドライバのタイプを表していました。 +メジャー番号が使われることもありました: +0x03 が .B HDIO_* -ioctl, 0x06 ¤¬ +ioctl, 0x06 が .B LP* -ioctl ¤Ê¤É¤Ç¤¹¡£ -1 ʸ»ú°Ê¾å¤Î ASCII ʸ»úÎ󤬻Ȥï¤ì¤ë¤³¤È¤â¤¢¤ê¤Þ¤·¤¿¡£ -¤¿¤È¤¨¤Ð +ioctl などです。 +1 文字以上の ASCII 文字列が使われることもありました。 +たとえば .B TCGETS -¤ÎÃÍ¤Ï 0x00005401 ¤Ç¤¢¤ê¡¢ -0x54 = \(aqT\(aq ¤Ç¥¿¡¼¥ß¥Ê¥ë¥É¥é¥¤¥Ð¤òɽ¤·¤Þ¤¹¡£ +の値は 0x00005401 であり、 +0x54 = \(aqT\(aq でターミナルドライバを表します。 .B CYGETTIMEOUT -¤ÎÃÍ¤Ï 0x00435906 ¤Ç¤¢¤ê¡¢ -0x43 0x59 = \(aqC\(aq \(aqY\(aq ¤Ç cyclades ¥É¥é¥¤¥Ð¤òɽ¤·¤Þ¤¹¡£ +の値は 0x00435906 であり、 +0x43 0x59 = \(aqC\(aq \(aqY\(aq で cyclades ドライバを表します。 .LP -¸å¤Î»þÂå (0.98p5) ¤Ë¤Ê¤ë¤È¡¢ -¤è¤ê¿¤¯¤Î¾ðÊ󤬿ôÃͤËÁȤ߹þ¤Þ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ -1 ¤Ä¤Î¿ôÃͤϡ¢Æɤ߽ñ¤­¤ÎÊý¸þ¤òɽ¤¹ 2 ¥Ó¥Ã¥È -(00: Æɤ߽ñ¤­¤Ê¤·, 01: ½ñ¤­¹þ¤ß, 10: Æɤ߹þ¤ß, 11: Æɤ߹þ¤ß/½ñ¤­¹þ¤ß)¡¢ -(°ú¤­¿ô¤Î¥µ¥¤¥º¤òɽ¤¹) 14 ¥Ó¥Ã¥È¡¢ -(¶¦Ä̤ÎÌÜŪ¤Þ¤¿¤Ï¶¦Ä̤Υɥ饤¥Ð¤Ç ioctl ¤ò¥°¥ë¡¼¥×¤Ë¤¹¤ë¤¿¤á¤Î) -8 ¥Ó¥Ã¥È¤Î¥¿¥¤¥×¡¢8 ¥Ó¥Ã¥È¤Î¥·¥ê¥¢¥ëÈֹ椫¤é¹½À®¤µ¤ì¤Þ¤¹¡£ +後の時代 (0.98p5) になると、 +より多くの情報が数値に組み込まれるようになりました。 +1 つの数値は、読み書きの方向を表す 2 ビット +(00: 読み書きなし, 01: 書き込み, 10: 読み込み, 11: 読み込み/書き込み)、 +(引き数のサイズを表す) 14 ビット、 +(共通の目的または共通のドライバで ioctl をグループにするための) +8 ビットのタイプ、8 ビットのシリアル番号から構成されます。 .LP -¤³¤Î¹½Â¤¤òµ­½Ò¤¹¤ë¥Þ¥¯¥í¤Ï \fI\fP ¤Ë¤¢¤ê¡¢ +この構造を記述するマクロは \fI\fP にあり、 .B _IO(type,nr) -¤È +と .B "{_IOR,_IOW,_IOWR}(type,nr,size)" -¤Ç¤¹¡£ -¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ï +です。 +これらのマクロは .I sizeof(size) -¤ò»È¤¦¤Î¤Ç¡¢ -¤³¤³¤Ç size ¤È¤¤¤¦Ì¾Á°¤Ë¤·¤Æ¤¤¤ë¤Î¤Ï´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹: -¤³¤Î 3 ¤ÄÌܤΰú¤­¿ô¤Ï¥Ç¡¼¥¿¥¿¥¤¥×¤Ç¤¹¡£ +を使うので、 +ここで size という名前にしているのは間違っています: +この 3 つ目の引き数はデータタイプです。 .LP -size ¥Ó¥Ã¥È¤ÏÁ´¤¯Åö¤Æ¤Ë¤Ê¤é¤Ê¤¤ÅÀ¤ËÃí°Õ¤·¤Æ²¼¤µ¤¤: -¿¤¯¤Î¾ì¹ç¡¢´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹¡£ -¤³¤ì¤Ï +size ビットは全く当てにならない点に注意して下さい: +多くの場合、間違っています。 +これは .I sizeof(sizeof(struct)) -¤ò»È¤Ã¤¿¥Ð¥°¤ò´Þ¤ó¤À¥Þ¥¯¥í¤ä¡¢²áµî¤«¤é¼õ¤±·Ñ¤¤¤ÀÃͤ¬¸¶°ø¤Ç¤¹¡£ +を使ったバグを含んだマクロや、過去から受け継いだ値が原因です。 .LP -¤·¤¿¤¬¤Ã¤Æ¡¢¿·¤·¤¤¹½Â¤¤ÏÉÔÅÔ¹ç¤ÊÅÀ¤·¤«¤Ê¤¤¤è¤¦¤Ë»×¤ï¤ì¤Þ¤¹: -¤³¤Î¹½Â¤¤Ï¥Á¥§¥Ã¥¯¤Î¼ê½õ¤±¤Ë¤Ï¤Ê¤é¤º¡¢ -ÍÍ¡¹¤Ê¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤è¤Ã¤ÆÃͤòÊѲ½¤µ¤»¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ -.SH ÊÖ¤êÃÍ -¤­¤Á¤ó¤È¤·¤¿ ioctl ¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤·¡¢ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¤Þ¤¹¡£ -¤Þ¤¿½ÐÎÏÃͤϰú¤­¿ô¤Ë³ÊǼ¤·¤Þ¤¹¡£ -¤·¤«¤·¼ÂºÝ¤Ï¡¢¤«¤Ê¤ê¿¤¯¤Î ioctl ¤¬½ÐÎÏÃͤòÊÖ¤·¤Þ¤¹¡£ -¤³¤ì¤Ïº£¤Î¤È¤³¤í°Ê²¼¤Ç¤Ï¼¨¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ +したがって、新しい構造は不都合な点しかないように思われます: +この構造はチェックの手助けにはならず、 +様々なアーキテクチャによって値を変化させてしまいます。 +.SH 返り値 +きちんとした ioctl は、成功した場合は 0 を返し、 +エラーの場合は \-1 を返します。 +また出力値は引き数に格納します。 +しかし実際は、かなり多くの ioctl が出力値を返します。 +これは今のところ以下では示されていません。 // Main table. @@ -680,32 +680,32 @@ l l l l. .TE // More arguments. -¤¤¤¯¤Ä¤«¤Î ioctl ¤ÏÄɲäΥݥ¤¥ó¥¿¤ò´Þ¤à¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ò»ÈÍѤ·¤Þ¤¹¡£ -¤³¤³¤Ç¤³¤ì¤é¤ò¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½ç¤ËÀâÌÀ¤·¤Þ¤¹¡£ +いくつかの ioctl は追加のポインタを含む構造体へのポインタを使用します。 +ここでこれらをアルファベット順に説明します。 .B CDROMREADAUDIO -¤ÏÆþÎϥݥ¤¥ó¥¿ +は入力ポインタ .I "const struct cdrom_read_audio *" -¤ò»ÈÍѤ·¤Þ¤¹¡£ +を使用します。 .I buf -¥Õ¥£¡¼¥ë¥É¤ÏÂ礭¤µ +フィールドは大きさ .IR "nframes * CD_FRAMESIZE_RAW" -¤Î½ÐÎϥХåե¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¹¡£ +の出力バッファへのポインタです。 .BR CDROMREADCOOKED , .BR CDROMREADMODE1 , .BR CDROMREADMODE2 , .B CDROMREADRAW -¤ÏÆþÎϥݥ¤¥ó¥¿ +は入力ポインタ .I const struct cdrom_msf * -¤ò»ÈÍѤ·¤Þ¤¹¡£¤³¤ì¤é¤ÏƱ¤¸¥Ý¥¤¥ó¥¿¤ò +を使用します。これらは同じポインタを .I char [] -¤Ø¤Î½ÐÎϥݥ¤¥ó¥¿¤È¤·¤Æ»ÈÍѤ·¤Þ¤¹¡£ -Ťµ¤ÏÍ×µá¤Ë¤è¤Ã¤ÆÊѲ½¤·¤Þ¤¹¡£ +への出力ポインタとして使用します。 +長さは要求によって変化します。 .B CDROMREADMODE1 -¤Ë¤Ï¡¢Â¿¤¯¤Î¥Ç¥Ð¥¤¥¹¤¬ -CD_FRAMESIZE ¤ò»ÈÍѤ·¤Þ¤¹¤¬¡¢¸÷³Øµ­²±ÁõÃÖ (¸÷¥Ç¥£¥¹¥¯) ¤Î¥É¥é¥¤¥Ð¤Ï -OPT_BLOCKSIZE ¤ò»ÈÍѤ·¤Þ¤¹ (¤É¤Á¤é¤âƱ¤¸ÃÍ¤Ç 2048 ¤Ç¤¹)¡£ +には、多くのデバイスが +CD_FRAMESIZE を使用しますが、光学記憶装置 (光ディスク) のドライバは +OPT_BLOCKSIZE を使用します (どちらも同じ値で 2048 です)。 .nf CDROMREADCOOKED char [CD_FRAMESIZE] @@ -720,11 +720,11 @@ OPT_BLOCKSIZE .BR EQL_SETSLAVECFG , .BR EQL_GETMASTERCFG , .B EQL_SETMASTERCFG -¤Ï +は .I struct ifreq * -¤ò»ÈÍѤ·¤Þ¤¹¡£ +を使用します。 .I ifr_data -¥Õ¥£¡¼¥ë¥É¤Ï°Ê²¼¤Ë¼¨¤¹Ê̤ι½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¹: +フィールドは以下に示す別の構造体へのポインタです: .nf EQL_ENSLAVE const struct slaving_request * @@ -736,75 +736,75 @@ OPT_BLOCKSIZE .fi .B FDRAWCMD -¤Ï +は .I struct floppy raw_cmd * -¤ò»ÈÍѤ·¤Þ¤¹¡£ +を使用します。 .I flags & FD_RAW_WRITE -¤¬¥¼¥í°Ê³°¤Î¾ì¹ç¡¢ +がゼロ以外の場合、 .I data -¤ÏÂ礭¤µ +は大きさ .I length -¤ÎÆþÎϥХåե¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ë¤Ê¤ê¤Þ¤¹¡£ +の入力バッファへのポインタになります。 .I flags & FD_RAW_READ -¤¬¥¼¥í°Ê³°¤Î¾ì¹ç¡¢ +がゼロ以外の場合、 .I data -¤ÏÂ礭¤µ +は大きさ .I length -¤Î½ÐÎϥХåե¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ë¤Ê¤ê¤Þ¤¹¡£ +の出力バッファへのポインタになります。 .BR GIO_FONTX , .B PIO_FONTX -¤Ï¤½¤ì¤¾¤ì +はそれぞれ .I struct console_font_desc * -¤È +と .I const struct console_font_desc * -¤ò»ÈÍѤ·¤Þ¤¹¡£ +を使用します。 .I chardata -¤Ï +は .I char [charcount] -¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¹¡£ -¤³¤ì¤Ï +バッファへのポインタです。 +これは .B GIO_FONTX -¤Î½ÐÎϥХåե¡¤È +の出力バッファと .B PIO_FONTX -¤ÎÆþÎϥХåե¡¤Ç¤¹¡£ +の入力バッファです。 .BR GIO_UNIMAP , .B PIO_UNIMAP -¤Ï¤½¤ì¤¾¤ì +はそれぞれ .I struct unimapdesc * -¤È +と .I const struct unimapdesc * -¤ò»ÈÍѤ·¤Þ¤¹¡£ +を使用します。 .I entries -¤Ï +は .I struct unipair [entry_ct] -¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¹¡£ -¤³¤ì¤Ï +バッファへのポインタです。 +これは .B GIO_UNIMAP -¤Î½ÐÎϥХåե¡¤È +の出力バッファと .B PIO_UNIMAP -¤ÎÆþÎϥХåե¡¤Ç¤¹¡£ +の入力バッファです。 -KDADDIO, KDDELIO, KDDISABIO, KDENABIO ¤Ï I/O ¥Ý¡¼¥È¤Ø¤Î¥¢¥¯¥»¥¹¤ò -²Äǽ/ÉÔ²Äǽ¤Ë¤·¤Þ¤¹¡£¤³¤ì¤é¤ÏËܼÁŪ¤Ë¡¢'ioperm' ¤Ø¤ÎÊ̤Π-¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¹¡£ +KDADDIO, KDDELIO, KDDISABIO, KDENABIO は I/O ポートへのアクセスを +可能/不可能にします。これらは本質的に、'ioperm' への別の +インターフェースです。 .BR KDMAPDISP , .B KDUNMAPDISP -¤Ï¥á¥â¥ê¡¦¥Þ¥Ã¥Ô¥ó¥°¤ä I/O ¥Ý¡¼¥È¤Ø¤Î¥¢¥¯¥»¥¹¤ò²Äǽ/ÉÔ²Äǽ¤Ë¤·¤Þ¤¹¡£ -¤³¤ì¤é¤Ï¥«¡¼¥Í¥ë¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ +はメモリ・マッピングや I/O ポートへのアクセスを可能/不可能にします。 +これらはカーネルに実装されていません。 .B SCSI_IOCTL_PROBE_HOST -¤ÏÆþÎϥݥ¤¥ó¥¿ +は入力ポインタ .I const int * -¤òÂ礭¤µ¤È¤·¤Æ»ÈÍѤ·¤Þ¤¹¡£¤³¤ì¤ÏƱ¤¸Â礭¤µ¤Î +を大きさとして使用します。これは同じ大きさの .I char [] -¥Ð¥Ã¥Õ¥¡ ¤Ø¤Î½ÐÎϥݥ¤¥ó¥¿¤È¤·¤Æ¤â»ÈÍѤ·¤Þ¤¹¡£ +バッファ への出力ポインタとしても使用します。 .BR SIOCADDRT , .B SIOCDELRT -¤Ï·¿¤¬°Ê²¼¤Î¥×¥í¥È¥³¥ë¤Ë°Í¸¤¹¤ëÆþÎϥݥ¤¥ó¥¿¤ò»ÈÍѤ·¤Þ¤¹: +は型が以下のプロトコルに依存する入力ポインタを使用します: .nf Most protocols const struct rtentry * @@ -813,19 +813,19 @@ KDADDIO, KDDELIO, KDDISABIO, KDENABIO .fi .B SIOCGIFCONF -¤Ï +は .I struct ifconf * -¤ò»ÈÍѤ·¤Þ¤¹¡£¤³¤Î +を使用します。この .I ifc_buf -¥Õ¥£¡¼¥ë¥É¤ÏŤµ +フィールドは長さ .I ifc_len -¥Ð¥¤¥È¤Î¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¹¡£ -¤³¤ì¤Ë¥«¡¼¥Í¥ë¤¬ +バイトのバッファへのポインタです。 +これにカーネルが .I struct ifreq [] -·¿¤Î¥ê¥¹¥È¤Ø½ñ¤­¹þ¤ß¤Þ¤¹¡£ +型のリストへ書き込みます。 .B SIOCSIFHWADDR -¤Ï·¿¤¬°Ê²¼¤Î¥×¥í¥È¥³¥ë¤Ë°Í¸¤¹¤ëÆþÎϥݥ¤¥ó¥¿¤ò»ÈÍѤ·¤Þ¤¹: +は型が以下のプロトコルに依存する入力ポインタを使用します: .nf Most protocols const struct ifreq * @@ -833,18 +833,18 @@ KDADDIO, KDDELIO, KDDISABIO, KDENABIO .fi .B TIOCLINUX -¤Ï +は .I const char * -¤ò»ÈÍѤ·¤Þ¤¹¡£¤³¤Î¥Ý¥¤¥ó¥¿¤ò¤¤¤¯¤Ä¤«¤Î -ÆÈΩ¤·¤¿¥µ¥Ö¥¯¥é¥¹¤ò¼±Ê̤¹¤ë°Ù¤Ë»ÈÍѤ·¤Þ¤¹¡£°Ê²¼¤Î¥Æ¡¼¥Ö¥ë¤ÎÃæ¤Ç¡¢ +を使用します。このポインタをいくつかの +独立したサブクラスを識別する為に使用します。以下のテーブルの中で、 .I N + foo -¤Ï N ¥Ð¥¤¥È¤ÎµÍ¤á¤â¤Î¤Î¸å¤Ë¤¢¤ë +は N バイトの詰めものの後にある .I foo -¤ò°ÕÌ£¤·¤Þ¤¹¡£ +を意味します。 .I struct selection -¤Ï°ÅÌÛŪ¤Ë +は暗黙的に .I drivers/char/selection.c -¤ÎÃæ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +の中で定義されています。 .nf TIOCLINUX-2 1 + const struct selection * @@ -858,11 +858,11 @@ KDADDIO, KDDELIO, KDDISABIO, KDENABIO .fi // Duplicate ioctls -¤³¤Î¥ê¥¹¥È¤Ï +このリストは .B SIOCDEVPRIVATE -¤«¤é +から .B SIOCPROTOPRIVATE -¤ÎÈϰϤΠioctl ¤ò´Þ¤ó¤Ç¤¤¤Þ¤»¤ó¡£ +の範囲の ioctl を含んでいません。 .TS l l l. 0x00000001 FDSETPRM FIBMAP @@ -872,5 +872,5 @@ l l l. 0x00005403 SNDCTL_TMR_STOP TCSETSW 0x00005404 SNDCTL_TMR_CONTINUE TCSETSF .TE -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ioctl (2) diff --git a/release/man2/ioperm.2 b/release/man2/ioperm.2 index e91461a0..885ed79c 100644 --- a/release/man2/ioperm.2 +++ b/release/man2/ioperm.2 @@ -41,9 +41,9 @@ .\" Updated 2007-01-07, Akihiro MOTOKI, catch up to LDP v2.43 .\" .TH IOPERM 2 2007-06-15 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -ioperm \- ¥Ý¡¼¥È¤ÎÆþ½ÐÎϵö²Ä¤òÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +ioperm \- ポートの入出力許可を設定する +.SH 書式 .B #include /* for libc5 */ .br @@ -51,70 +51,70 @@ ioperm \- /* for glibc */ .sp .BI "int ioperm(unsigned long " from ", unsigned long " num ", int " turn_on ); -.SH ÀâÌÀ +.SH 説明 .BR ioperm () -¤Ï¡¢°ú¤­¿ô \fIfrom\fP ¤Î I/O ¥Ý¡¼¥È¥¢¥É¥ì¥¹¤«¤é -\fInum\fP ¥Ð¥¤¥Èʬ¤ÎÎΰè¤ËÂФ¹¤ë¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥¢¥¯¥»¥¹µö²Ä¥Ó¥Ã¥È¤ò¡¢\fIturn_on\fP ¤ËÀßÄꤹ¤ë¡£ -\fIturn_on\fP ¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤ÏÆø¢ +は、引き数 \fIfrom\fP の I/O ポートアドレスから +\fInum\fP バイト分の領域に対する、呼び出し元プロセスの +アクセス許可ビットを、\fIturn_on\fP に設定する。 +\fIturn_on\fP が 0 以外の場合、呼び出し元プロセスは特権 .RB ( CAP_SYS_RAWIO ) -¤ò»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を持っていなければならない。 .\" FIXME is the following ("Only the first 0x3ff I/O ports can be .\" specified in this manner") still true? Looking at changes in .\" include/asm-i386/processor.h between 2.4 and 2.6 suggests .\" that the limit is different in 2.6. -¤³¤ÎÊýË¡¤ÇÀßÄê¤Ç¤­¤ë¤Î¤Ï 0x3ff ÈÖÃϤޤǤΠI/O¥Ý¡¼¥È¤Ë¸Â¤é¤ì¤ë¡£ -¤³¤ì¤è¤ê¤âÂ礭¤Ê¥¢¥É¥ì¥¹¤Î¥Ý¡¼¥È¤ËÂФ·¤Æ¤Ï +この方法で設定できるのは 0x3ff 番地までの I/Oポートに限られる。 +これよりも大きなアドレスのポートに対しては .BR iopl (2) -´Ø¿ô¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +関数を使わなければならない。 -¥¢¥¯¥»¥¹¸¢¤Ï +アクセス権は .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ë¤Ï·Ñ¾µ¤µ¤ì¤Ê¤¤¡£ +で作成された子プロセスには継承されない。 .BR execve (2) -¤ÎÁ°¸å¤Ç¥¢¥¯¥»¥¹¸¢¤ÏÊݸ¤µ¤ì¤ë¡£¤³¤Îµ¡Ç½¤Ï -ÈóÆø¢¥×¥í¥°¥é¥à¤Ë¥Ý¡¼¥È¤Ø¤Î¥¢¥¯¥»¥¹¸¢¤ò -Í¿¤¨¤ë¤Î¤Ë»ÈÍѤǤ­¤ë¡£ +の前後でアクセス権は保存される。この機能は +非特権プログラムにポートへのアクセス権を +与えるのに使用できる。 -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¤Û¤È¤ó¤É i386 ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î¤¿¤á¤À¤±¤Î¤â¤Î¤Ç¤¢¤ë¡£ -¤½¤Î¾¤Î¿¤¯¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¸ºß¤·¤Ê¤¤¤«¡¢¾ï¤Ë¥¨¥é¡¼¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ë \-1 ¤òÊÖ¤·¡¢ +このシステムコールはほとんど i386 アーキテクチャのためだけのものである。 +その他の多くのアーキテクチャでは存在しないか、常にエラーを返す。 +.SH 返り値 +成功した場合には 0 を返す。エラーの場合に \-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +に適切な値を設定する。 +.SH エラー .TP .B EINVAL .I from -¤Þ¤¿¤Ï +または .I num -¤ÎÃͤ¬ÉÔÀµ¤Ç¤¢¤ë¡£ +の値が不正である。 .TP .B EIO -(PowerPC ¤Ç) ¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +(PowerPC で) このシステムコールはサポートしていない。 .TP .B ENOMEM .\" Could not allocate I/O bitmap. -¥á¥â¥êÉÔ­¡£ +メモリ不足。 .TP .B EPERM -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë½½Ê¬¤Ê¸¢¸Â¤¬¤Ê¤«¤Ã¤¿¡£ -.SH ½àµò +呼び出し元プロセスに十分な権限がなかった。 +.SH 準拠 .BR ioperm () -¤Ï Linux ÆÃÍ­¤Î´Ø¿ô¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç -»ÈÍѤ·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -.SH Ãí°Õ -libc5 ¤Ç¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¤·¤Æ°·¤¤ +は Linux 特有の関数であり、移植を意図したプログラムで +使用してはならない。 +.SH 注意 +libc5 ではシステムコールとして扱い .I -¤Ë¥×¥í¥È¥¿¥¤¥×¤¬Â¸ºß¤·¤Æ¤¤¤ë¡£ -glibc1 ¤Ë¤Ï¥×¥í¥È¥¿¥¤¥×¤Ï¸ºß¤·¤Ê¤¤¡£ -glibc2 ¤Ï +にプロトタイプが存在している。 +glibc1 にはプロトタイプは存在しない。 +glibc2 は .I -¤È +と .I -¤ÎξÊý¤Ë¥×¥í¥È¥¿¥¤¥×¤ò»ý¤Ã¤Æ¤¤¤ë¡£ -¸å¼Ô¤Ï i386 ¤Î¤ß¤ÇÍøÍѲÄǽ¤Ê¤Î¤Ç¡¢»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +の両方にプロトタイプを持っている。 +後者は i386 のみで利用可能なので、使用すべきではない。 +.SH 関連項目 .BR iopl (2), .BR capabilities (7) diff --git a/release/man2/iopl.2 b/release/man2/iopl.2 index 98dc440c..ceb86078 100644 --- a/release/man2/iopl.2 +++ b/release/man2/iopl.2 @@ -38,72 +38,72 @@ .\" Updated 2005-02-24, Akihiro MOTOKI .\" .TH IOPL 2 2004-05-27 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -iopl \- I/O Æø¢¥ì¥Ù¥ë¤òÊѹ¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +iopl \- I/O 特権レベルを変更する +.SH 書式 .B #include .sp .BI "int iopl(int " level ); -.SH ÀâÌÀ +.SH 説明 .BR iopl () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î I/O Æø¢¥ì¥Ù¥ë¤ò +は呼び出し元のプロセスの I/O 特権レベルを .I level -¤Ç»ØÄꤷ¤¿ÃͤËÊѹ¹¤¹¤ë¡£ +で指定した値に変更する。 -¤³¤Î´Ø¿ô¤Ï 8514 ¸ß´¹¤Î X ¥µ¡¼¥Ð¤ò Linux ¤ÇÆ°ºî¤µ¤»¤ë¤¿¤á¤ËɬÍפǤ¢¤ë¡£ -¤Ê¤¼¤Ê¤é¤³¤Î X ¥µ¡¼¥Ð¤Ï 65536 ¸Ä¤Î I/O ¥Ý¡¼¥ÈÁ´¤Æ¤Ø¤Î¥¢¥¯¥»¥¹¤òÍ׵᤹¤ë¤Î¤Ç +この関数は 8514 互換の X サーバを Linux で動作させるために必要である。 +なぜならこの X サーバは 65536 個の I/O ポート全てへのアクセスを要求するので .BR ioperm (2) -´Ø¿ô¤Ç¤ÏÉÔ½½Ê¬¤À¤«¤é¤Ç¤¢¤ë¡£ +関数では不十分だからである。 -¤è¤ê¹â¤¤ I/O Æø¢¥ì¥Ù¥ë¤Ç¤ÎÆ°ºî¤ò¤µ¤»¤ë¤³¤È¤Ë¤è¤Ã¤Æ -I/O ¥Ý¡¼¥È¥¢¥¯¥»¥¹¤ÎÀ©¸Â¤ò²ò½ü¤¹¤ë¤³¤È¤Ë²Ã¤¨¤Æ¡¢¥×¥í¥»¥¹¤¬³ä¤ê¹þ¤ß¤ò -̵¸ú¤Ë¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£¤³¤Îµ¡Ç½¤Ï»þ¤È¤·¤Æ¥·¥¹¥Æ¥à¤ÎÇ˲õ¤ò -¤â¤¿¤é¤¹¤Î¤Ç´«¤á¤é¤ì¤Ê¤¤¡£ +より高い I/O 特権レベルでの動作をさせることによって +I/O ポートアクセスの制限を解除することに加えて、プロセスが割り込みを +無効にすることもできるようになる。この機能は時としてシステムの破壊を +もたらすので勧められない。 .BR fork (2) -¤ä +や .BR exec (2) -¤ò¹Ô¤Ã¤¿¾ì¹ç¡¢Æø¢¤Ï·Ñ¾µ¤µ¤ì¤ë¡£ +を行った場合、特権は継承される。 -Ä̾ï¤Î¥×¥í¥»¥¹¤Î I/O Æø¢¥ì¥Ù¥ë¤Ï 0 ¤Ç¤¢¤ë¡£ +通常のプロセスの I/O 特権レベルは 0 である。 -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¤Û¤È¤ó¤É i386 ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î¤¿¤á¤À¤±¤Î¤â¤Î¤Ç¤¢¤ë¡£ -¤½¤Î¾¤Î¿¤¯¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¸ºß¤·¤Ê¤¤¤«¡¢¾ï¤Ë¥¨¥é¡¼¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï \-1 ¤òÊÖ¤·¡¢ +このシステムコールはほとんど i386 アーキテクチャのためだけのものである。 +その他の多くのアーキテクチャでは存在しないか、常にエラーを返す。 +.SH 返り値 +成功した場合には 0 を返す。エラーの場合には \-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +に適切な値が設定される。 +.SH エラー .TP .B EINVAL -°ú¤­¿ô +引き数 .I level -¤¬ 3 ¤è¤êÂ礭¤¤¡£ +が 3 より大きい。 .TP .B ENOSYS -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë +このシステムコールは実装されていない。 +呼び出し元プロセスに .BR iopl () -¤ò¸Æ¤Ó½Ð¤¹¤Î¤Ë½½Ê¬¤Ê¸¢¸Â¤¬¤Ê¤«¤Ã¤¿¡£ +を呼び出すのに十分な権限がなかった。 .BR iopl () -¤ò¸Æ¤Ó½Ð¤¹¤Ë¤Ï +を呼び出すには .B CAP_SYS_RAWIO -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ -.SH ½àµò +ケーパビリティが必要である。 +.SH 準拠 .BR iopl () -¤Ï Linux ÆÃÍ­¤Î´Ø¿ô¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç -»ÈÍѤ·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -.SH Ãí°Õ -libc5 ¤Ç¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¤·¤Æ°·¤¤ +は Linux 特有の関数であり、移植を意図したプログラムで +使用してはならない。 +.SH 注意 +libc5 ではシステムコールとして扱い .I -¤Ë¥×¥í¥È¥¿¥¤¥×¤¬Â¸ºß¤·¤Æ¤¤¤ë¡£ -glibc1 ¤Ë¤Ï¥×¥í¥È¥¿¥¤¥×¤Ï¸ºß¤·¤Æ¤¤¤Ê¤¤¡£ -glibc2 ¤Ï +にプロトタイプが存在している。 +glibc1 にはプロトタイプは存在していない。 +glibc2 は .I -¤È +と .I -¤ÎξÊý¤Ë¥×¥í¥È¥¿¥¤¥×¤ò»ý¤Ã¤Æ¤¤¤ë¡£ -¸å¼Ô¤Ï i386 ¤Î¤ß¤ÇÍøÍѲÄǽ¤Ê¤Î¤Ç¡¢»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +の両方にプロトタイプを持っている。 +後者は i386 のみで利用可能なので、使用すべきではない。 +.SH 関連項目 .BR ioperm (2), .BR capabilities (7) diff --git a/release/man2/ioprio_set.2 b/release/man2/ioprio_set.2 index c2ebe7ea..578237a0 100644 --- a/release/man2/ioprio_set.2 +++ b/release/man2/ioprio_set.2 @@ -27,172 +27,172 @@ .\" Updated 2008-08-06, Akihiro MOTOKI, LDP v3.05 .\" .TH IOPRIO_SET 2 2008-07-09 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -ioprio_get, ioprio_set \- I/O ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹¤ÈÍ¥ÀèÅÙ¤ÎÀßÄê/¼èÆÀ -.SH ½ñ¼° +.SH 名前 +ioprio_get, ioprio_set \- I/O スケジューリングクラスと優先度の設定/取得 +.SH 書式 .nf .BI "int ioprio_get(int " which ", int " who ); .BI "int ioprio_set(int " which ", int " who ", int " ioprio ); .fi -.SH ÀâÌÀ -¥·¥¹¥Æ¥à¥³¡¼¥ë +.SH 説明 +システムコール .BR ioprio_get () / .BR ioprio_set () -¤Ï¡¢(1¤Ä°Ê¾å¤Î) ¥×¥í¥»¥¹¤Î I/O ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹¤È -Í¥ÀèÅ٤μèÆÀ/ÀßÄê¤ò¹Ô¤¦¡£ +は、(1つ以上の) プロセスの I/O スケジューリングクラスと +優先度の取得/設定を行う。 .I which -¤È +と .I who -°ú¤­¿ô¤Ç¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÁàºîÂоݤȤʤë¥×¥í¥»¥¹¤ò»Ø¼¨¤¹¤ë¡£ +引き数でシステムコールの操作対象となるプロセスを指示する。 .I which -°ú¤­¿ô¤Ï¡¢ +引き数は、 .I who -¤ò¤É¤Î¤è¤¦¤Ë²ò¼á¤¹¤ë¤«¤ò·è¤á¤ë¤â¤Î¤Ç¡¢°Ê²¼¤Î¤¤¤º¤ì¤«°ì¤Ä¤ò»ØÄꤹ¤ë¡£ +をどのように解釈するかを決めるもので、以下のいずれか一つを指定する。 .TP .B IOPRIO_WHO_PROCESS .I who -¤Ï¥×¥í¥»¥¹ID ¤Ç¤¢¤ê¡¢»ØÄꤵ¤ì¤¿ 1 ¥×¥í¥»¥¹¤¬ÂоݤȤʤ롣 +はプロセスID であり、指定された 1 プロセスが対象となる。 .TP .B IOPRIO_WHO_PGRP .I who -¤Ï¥×¥í¥»¥¹¥°¥ë¡¼¥×ID ¤Ç¤¢¤ê¡¢¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÎÁ´¥á¥ó¥Ð¤¬ÂоݤȤʤ롣 +はプロセスグループID であり、プロセスグループの全メンバが対象となる。 .TP .B IOPRIO_WHO_USER .I who -¤Ï¥æ¡¼¥¶ID ¤Ç¤¢¤ê¡¢¼Â UID ¤Ë°ìÃפ¹¤ëÁ´¥×¥í¥»¥¹¤¬ÂоݤȤʤ롣 +はユーザID であり、実 UID に一致する全プロセスが対象となる。 .PP .BR ioprio_get () -¤Î¸Æ¤Ó½Ð¤·»þ¤Ë +の呼び出し時に .I which -¤Ë +に .B IOPRIO_WHO_PGRP -¤« +か .B IOPRIO_WHO_USER -¤¬»ØÄꤵ¤ì¡¢ +が指定され、 .I who -¤Ë°ìÃפ¹¤ë¥×¥í¥»¥¹¤¬Ê£¿ô¤¢¤Ã¤¿¾ì¹ç¡¢ -°ìÃפ¹¤ë¥×¥í¥»¥¹Á´ÂΤÎÃæ¤ÇºÇ¤â¹â¤¤Í¥ÀèÅÙ¤¬ÊÖ¤µ¤ì¤ë¡£ -Í¥ÀèÅÙ¤¬¹â¤¤¤È¤Ï¡¢¤è¤ê¹â¤¤Í¥ÀèÅÙ¥¯¥é¥¹¤Ë°¤·¤Æ¤¤¤ë +に一致するプロセスが複数あった場合、 +一致するプロセス全体の中で最も高い優先度が返される。 +優先度が高いとは、より高い優先度クラスに属している .RB ( IOPRIO_CLASS_RT -¤¬ºÇ¤â¹â¤¤Í¥ÀèÅÙ¥¯¥é¥¹¤Ç¡¢ +が最も高い優先度クラスで、 .B IOPRIO_CLASS_IDLE -¤¬ºÇ¤âÄ㤤)¡¢¤â¤·¤¯¤Ï -Ʊ¤¸Í¥ÀèÅÙ¥¯¥é¥¹¤Ë°¤·¤Æ¤¤¤ë¤¬Í¥ÀèÅÙ¥ì¥Ù¥ë¤¬¹â¤¤ -(Í¥ÀèÅÙÈֹ椬¾®¤µ¤¤Êý¤¬Í¥ÀèÅÙ¥ì¥Ù¥ë¤¬¹â¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë)¡¢ -¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ +が最も低い)、もしくは +同じ優先度クラスに属しているが優先度レベルが高い +(優先度番号が小さい方が優先度レベルが高いことを意味する)、 +ということである。 .BR ioprio_set () -¤ËÅϤ¹ +に渡す .I ioprio -°ú¤­¿ô¤Ï¡¢ÂоݤȤʤë¥×¥í¥»¥¹¤Ë³ä¤êÅö¤Æ¤ë¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹¤È -Í¥ÀèÅÙ¤ÎξÊý¤ò»ØÄꤹ¤ë¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ë¡£ +引き数は、対象となるプロセスに割り当てるスケジューリングクラスと +優先度の両方を指定するビットマスクである。 .I ioprio -¤ÎÃͤòÁȤßΩ¤Æ¤¿¤ê²ò¼á¤¹¤ë¤Î¤Ë¡¢°Ê²¼¤Î¥Þ¥¯¥í¤¬ÍøÍѤǤ­¤ë¡£ +の値を組み立てたり解釈するのに、以下のマクロが利用できる。 .TP .BI IOPRIO_PRIO_VALUE( class ", " data ) -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹ +スケジューリングクラス .I class -¤ÈÍ¥ÀèÅÙ +と優先度 .RI ( data ) -¤òÍ¿¤¨¤ë¤È¡¢¤³¤Î¥Þ¥¯¥í¤Ï 2¤Ä¤ÎÃͤòÁȤ߹ç¤ï¤»¤Æ¡¢ +を与えると、このマクロは 2つの値を組み合わせて、 .I ioprio -ÃͤòÀ¸À®¤·¡¢¥Þ¥¯¥í¤Î·ë²Ì¤È¤·¤ÆÊÖ¤¹¡£ +値を生成し、マクロの結果として返す。 .TP .BI IOPRIO_PRIO_CLASS( mask ) .I mask .RI ( ioprio -ÃÍ) ¤òÍ¿¤¨¤ë¤È¡¢¤³¤Î¥Þ¥¯¥í¤Ï I/O ¥¯¥é¥¹Í×ÁÇ¡¢¤Ä¤Þ¤ê +値) を与えると、このマクロは I/O クラス要素、つまり .BR IOPRIO_CLASS_RT , .BR IOPRIO_CLASS_BE , .B IOPRIO_CLASS_IDLE -¤Î¤¤¤º¤ì¤«°ì¤Ä¤ÎÃͤòÊÖ¤¹¡£ +のいずれか一つの値を返す。 .TP .BI IOPRIO_PRIO_DATA( mask ) .I mask .RI ( ioprio -ÃÍ) ¤òÍ¿¤¨¤ë¤È¡¢¤³¤Î¥Þ¥¯¥í¤ÏÍ¥ÀèÅÙ +値) を与えると、このマクロは優先度 .RI ( data ) -Í×ÁǤòÊÖ¤¹¡£ +要素を返す。 .PP -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹¤ÈÍ¥ÀèÅ٤˴ؤ¹¤ë¾Ü¤·¤¤¾ðÊó¤Ï¡¢ -¡ÖÈ÷¹Í¡×¤ÎÀá¤ò»²¾È¤Î¤³¤È¡£ +スケジューリングクラスと優先度に関する詳しい情報は、 +「備考」の節を参照のこと。 -I/O Í¥ÀèÅÙ¤ÏÆɤ߽Ф·¤ÈƱ´ü½ñ¤­¹þ¤ß +I/O 優先度は読み出しと同期書き込み .RB ( O_DIRECT , .BR O_SYNC ) -¤ËÂбþ¤·¤Æ¤¤¤ë¡£ -I/O Í¥ÀèÅÙ¤ÏÈóƱ´ü½ñ¤­¹þ¤ß¤Ë¤ÏÂбþ¤·¤Æ¤¤¤Ê¤¤¡£¤Ê¤¼¤Ê¤é¡¢ -ÈóƱ´ü½ñ¤­¹þ¤ß¤Ï¥á¥â¥ê½ñ¤­´¹¤¨¤ò¹Ô¤¦¥×¥í¥°¥é¥à¤ÎÆ°ºî (context) ¤È¤Ï -´Ø·¸¤Ê¤¯È¯¹Ô¤µ¤ì¡¢¤½¤Î¤¿¤á¥×¥í¥°¥é¥àñ°Ì¤ÎÍ¥ÀèÅÙ¤ÏŬÍѤµ¤ì¤Ê¤¤¤«¤é -¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +に対応している。 +I/O 優先度は非同期書き込みには対応していない。なぜなら、 +非同期書き込みはメモリ書き換えを行うプログラムの動作 (context) とは +関係なく発行され、そのためプログラム単位の優先度は適用されないから +である。 +.SH 返り値 +成功すると、 .BR ioprio_get () -¤Ï¡¢ +は、 .I which -¤È +と .I who -¤Ç»ØÄꤵ¤ì¤¿´ð½à¤Ë¹çÃפ·¤¿Á´¥×¥í¥»¥¹¤ÇºÇ¤â¹â¤¤ I/O Í¥ÀèÅÙ¤ò»ý¤Ä¥×¥í¥»¥¹¤Î +で指定された基準に合致した全プロセスで最も高い I/O 優先度を持つプロセスの .I ioprio -ÃͤòÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +値を返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .PP -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR ioprio_set () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値を設定する。 +.SH エラー .TP .B EINVAL .I which -¤« +か .I ioprio -¤ÎÃͤ¬ÉÔÀµ¤Ç¤¢¤ë¡£ +の値が不正である。 .I ioprio -ÍѤ˻ØÄê²Äǽ¤Ê¥¹¥±¥¸¥å¡¼¥é¥¯¥é¥¹¤ÈÍ¥ÀèÅÙ¥ì¥Ù¥ë¤Ë¤Ä¤¤¤Æ¤Ï -¡ÖÈ÷¹Í¡×¤ò»²¾È¤Î¤³¤È¡£ +用に指定可能なスケジューラクラスと優先度レベルについては +「備考」を参照のこと。 .TP .B EPERM -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬¡¢»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤Ë +呼び出し元プロセスが、指定されたプロセスに .I ioprio -¤ò³ä¤êÅö¤Æ¤ë¤Î¤ËɬÍפʸ¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +を割り当てるのに必要な権限を持っていない。 .BR ioprio_set () -¤ËɬÍפʸ¢¸Â¤Ë¤Ä¤¤¤Æ¤Î¾Ü¤·¤¤¾ðÊó¤Ï¡ÖÈ÷¹Í¡×¤ÎÀá¤ò»²¾È¤Î¤³¤È¡£ +に必要な権限についての詳しい情報は「備考」の節を参照のこと。 .TP .B ESRCH .I which -¤È +と .I who -¤Ç»ØÄꤵ¤ì¤¿´ð½à¤Ë¹çÃפ¹¤ë¥×¥í¥»¥¹¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë 2.6.13 °Ê¹ß¤Î Linux ¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH ½àµò -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ -.SH È÷¹Í -glibc ¤Ï¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +で指定された基準に合致するプロセスが見つからなかった。 +.SH バージョン +これらのシステムコールはカーネル 2.6.13 以降の Linux で利用可能である。 +.SH 準拠 +これらのシステムコールは Linux 独自である。 +.SH 備考 +glibc はこれらのシステムコールに対するラッパー関数を提供していない。 .BR syscall (2) -¤ò»È¤Ã¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¡£ +を使って呼び出すこと。 -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢I/O Í¥ÀèÅÙ¤ËÂбþ¤·¤¿ I/O ¥¹¥±¥¸¥å¡¼¥é¤È -ÁȤ߹ç¤ï¤»¤Æ»ÈÍѤµ¤ì¤¿¾ì¹ç¤Ë¤Î¤ß¸ú²Ì¤ò»ý¤Ä¡£ -¥«¡¼¥Í¥ë 2.6.17 ¤Ç¤Ï¡¢¤³¤Î¾ò·ï¤òËþ¤¿¤¹¥¹¥±¥¸¥å¡¼¥é¤Ï -Completely Fair Queuing (CFQ) I/O ¥¹¥±¥¸¥å¡¼¥é¤À¤±¤Ç¤¢¤ë¡£ -.SS I/O ¥¹¥±¥¸¥å¡¼¥é¤ÎÁªÂò -I/O ¥¹¥±¥¸¥å¡¼¥é¤ÎÁªÂò¤Ï¥Ç¥Ð¥¤¥¹Ã±°Ì¤Ë¹Ô¤ï¤ì¡¢¤½¤ÎÁªÂò¤Ï -¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë +これらのシステムコールは、I/O 優先度に対応した I/O スケジューラと +組み合わせて使用された場合にのみ効果を持つ。 +カーネル 2.6.17 では、この条件を満たすスケジューラは +Completely Fair Queuing (CFQ) I/O スケジューラだけである。 +.SS I/O スケジューラの選択 +I/O スケジューラの選択はデバイス単位に行われ、その選択は +スペシャルファイル .I /sys/block//queue/scheduler -·Ðͳ¤Ç¹Ô¤ï¤ì¤ë¡£ +経由で行われる。 -¸½ºß¤Î I/O ¥¹¥±¥¸¥å¡¼¥é¤Ï +現在の I/O スケジューラは .I /sys -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à·Ðͳ¤Ç»²¾È¤Ç¤­¤ë¡£Î㤨¤Ð¡¢°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤È¡¢ -¸½ºß¥«¡¼¥Í¥ë¤Ç¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë¥¹¥±¥¸¥å¡¼¥é¤ÎÁ´¥ê¥¹¥È¤¬É½¼¨¤µ¤ì¤ë¡£ +ファイルシステム経由で参照できる。例えば、以下のコマンドを実行すると、 +現在カーネルでロードされているスケジューラの全リストが表示される。 .sp .RS .nf @@ -201,15 +201,15 @@ noop anticipatory deadline [cfq] .fi .RE .sp -³ç¸Ì¤Ç°Ï¤Þ¤ì¤¿¥¹¥±¥¸¥å¡¼¥é¤¬¤½¤Î¥Ç¥Ð¥¤¥¹ (¾å¤ÎÎã¤Ç¤Ï +括弧で囲まれたスケジューラがそのデバイス (上の例では .IR hda ) -¤Ë¤Ä¤¤¤Æ¼ÂºÝ¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë¥¹¥±¥¸¥å¡¼¥é¤Ç¤¢¤ë¡£ -Ê̤Υ¹¥±¥¸¥å¡¼¥é¤òÀßÄꤹ¤ë¤Ë¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¿·¤·¤¤¥¹¥±¥¸¥å¡¼¥é̾¤ò -½ñ¤­¹þ¤á¤Ð¤è¤¤¡£Î㤨¤Ð¡¢°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤È¡¢¥Ç¥Ð¥¤¥¹ +について実際に使用されているスケジューラである。 +別のスケジューラを設定するには、このファイルに新しいスケジューラ名を +書き込めばよい。例えば、以下のコマンドを実行すると、デバイス .I hda -¤Î¥¹¥±¥¸¥å¡¼¥é¤È¤·¤Æ +のスケジューラとして .I cfq -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .sp .RS .nf @@ -218,92 +218,92 @@ Password: .RB "#" " echo cfq > /sys/block/hda/queue/scheduler" .fi .RE -.SS "Completely Fair Queuing (CFQ) I/O ¥¹¥±¥¸¥å¡¼¥é" -¥Ð¡¼¥¸¥ç¥ó 3 (ÊÌ̾ CFQ Time Sliced) °Ê¹ß¡¢ -CPU ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ÈƱÍͤΠI/O nice ¥ì¥Ù¥ë¤¬ CFQ ¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Î nice ¥ì¥Ù¥ë¤Ï 3¤Ä¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹¤ËʬÎà¤Ç¤­¡¢ -³Æ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹¤Ë¤Ä¤­ 1¤Ä°Ê¾å¤ÎÍ¥ÀèÅÙ¥ì¥Ù¥ë¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +.SS "Completely Fair Queuing (CFQ) I/O スケジューラ" +バージョン 3 (別名 CFQ Time Sliced) 以降、 +CPU スケジューリングと同様の I/O nice レベルが CFQ に実装されている。 +これらの nice レベルは 3つのスケジューリングクラスに分類でき、 +各スケジューリングクラスにつき 1つ以上の優先度レベルが定義されている。 .TP .BR IOPRIO_CLASS_RT " (1)" -¤³¤ì¤Ï¥ê¥¢¥ë¥¿¥¤¥à I/O ¥¯¥é¥¹¤Ç¤¢¤ë¡£ -¤³¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹¤Ë¤Ï¾¤Î¥¯¥é¥¹¤è¤ê¤â¹â¤¤Í¥ÀèÅÙ¤¬Í¿¤¨¤é¤ì¤ë¡£ -¤³¤Î¥¯¥é¥¹¤Î¥×¥í¥»¥¹¤Ë¤Ï¡¢¾ï¤Ë¥Ç¥£¥¹¥¯¤Ø¤Î¥¢¥¯¥»¥¹¤¬Í¥À褷¤Æ -³ä¤êÅö¤Æ¤é¤ì¤ë¡£¤½¤Î¤¿¤á¡¢¤³¤Î I/O ¥¯¥é¥¹¤ò»È¤¦ºÝ¤Ë¤Ï¡¢ -¤¿¤Ã¤¿°ì¤Ä¤Î ¥ê¥¢¥ë¥¿¥¤¥à I/O ¥¯¥é¥¹¤Î¥×¥í¥»¥¹¤Ë¤è¤ê -¥·¥¹¥Æ¥àÁ´ÂΤΥǥ£¥¹¥¯¥¢¥¯¥»¥¹¤¬¤Ç¤­¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤³¤È¤¬¤¢¤ë -¤È¤¤¤¦ÅÀ¤Ë¡¢Ãí°Õ¤òʧ¤¦É¬Íפ¬¤¢¤ë¡£ -¤³¤Î¥¯¥é¥¹¤Ë¤Ï¡¢8 Ãʳ¬¤Î class data (Í¥ÀèÅÙ¥ì¥Ù¥ë) ¤¬¤¢¤ë¡£ -¤³¤ÎÃͤϡ¢¤½¤Î¥×¥í¥»¥¹¤¬ 1²ó¤Î¥Ç¥£¥¹¥¯¥¢¥¯¥»¥¹¤Ë¤É¤ì¤À¤±¤Î -»þ´Ö¤¬É¬Íפ«¤òÀµ³Î¤Ë·è¤á¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ -ºÇ¹â¤Î¥ê¥¢¥ë¥¿¥¤¥àÍ¥ÀèÅÙ¥ì¥Ù¥ë¤Ï 0 ¤Ç¡¢ºÇÄã¤Ï 7 ¤Ç¤¢¤ë¡£ -¾­ÍèŪ¤Ë¤Ï¡¢Í¥ÀèÅÙ¥ì¥Ù¥ë¤Ï¡¢´õ˾¤¹¤ë¥Ç¡¼¥¿¥ì¡¼¥È¤òÅϤ¹¤Ê¤É¡¢ -¤è¤êľÀÜŪ¤ËÀ­Ç½¾ò·ï¤òÈ¿±Ç¤Ç¤­¤ë¤è¤¦¤ËÊѹ¹¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +これはリアルタイム I/O クラスである。 +このスケジューリングクラスには他のクラスよりも高い優先度が与えられる。 +このクラスのプロセスには、常にディスクへのアクセスが優先して +割り当てられる。そのため、この I/O クラスを使う際には、 +たった一つの リアルタイム I/O クラスのプロセスにより +システム全体のディスクアクセスができなくなってしまうことがある +という点に、注意を払う必要がある。 +このクラスには、8 段階の class data (優先度レベル) がある。 +この値は、そのプロセスが 1回のディスクアクセスにどれだけの +時間が必要かを正確に決めるためのものである。 +最高のリアルタイム優先度レベルは 0 で、最低は 7 である。 +将来的には、優先度レベルは、希望するデータレートを渡すなど、 +より直接的に性能条件を反映できるように変更されるかもしれない。 .TP .BR IOPRIO_CLASS_BE " (2)" -¤³¤ì¤Ï ¥Ù¥¹¥È¥¨¥Õ¥©¡¼¥È¡¦¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹¤Ç¤¢¤ë¡£ -¤³¤Î¥¯¥é¥¹¤Ï¡¢ÆÃÄê¤Î I/O Í¥ÀèÅÙ¤òÀßÄꤷ¤Æ¤¤¤Ê¤¤¥×¥í¥»¥¹¤Î -¥Ç¥Õ¥©¥ë¥ÈÃͤǤ¢¤ë¡£ -class data (Í¥ÀèÅÙ¥ì¥Ù¥ë) ¤Ë¤è¤ê¡¢¤½¤Î¥×¥í¥»¥¹¤¬¤É¤ÎÄøÅ٤Π-I/O ÂÓ°è¤òÆÀ¤é¤ì¤ë¤«¤¬·èÄꤵ¤ì¤ë¡£ -¥Ù¥¹¥È¥¨¥Õ¥©¡¼¥È¡¦Í¥ÀèÅÙ¥ì¥Ù¥ë¤Ï¡¢CPU ¤Î nice ÃÍ +これは ベストエフォート・スケジューリングクラスである。 +このクラスは、特定の I/O 優先度を設定していないプロセスの +デフォルト値である。 +class data (優先度レベル) により、そのプロセスがどの程度の +I/O 帯域を得られるかが決定される。 +ベストエフォート・優先度レベルは、CPU の nice 値 .RB ( getpriority (2) -»²¾È) ¤ÈƱÍͤΤâ¤Î¤Ç¤¢¤ë¡£ -Í¥ÀèÅÙ¥ì¥Ù¥ë¤Ï¡¢¥Ù¥¹¥È¥¨¥Õ¥©¡¼¥È¡¦¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹¤ÎÃæ¤Ç -¾¤Î¥×¥í¥»¥¹¤È¤ÎÁêÂÐŪ¤ÊÍ¥ÀèÅÙ¤ò·èÄꤹ¤ë¡£ -Í¥ÀèÅÙ¥ì¥Ù¥ë¤ÎÃͤÎÈÏ°Ï¤Ï 0 (ºÇ¹â) ¤«¤é 7 (ºÇÄã) ¤Ç¤¢¤ë¡£ +参照) と同様のものである。 +優先度レベルは、ベストエフォート・スケジューリングクラスの中で +他のプロセスとの相対的な優先度を決定する。 +優先度レベルの値の範囲は 0 (最高) から 7 (最低) である。 .TP .BR IOPRIO_CLASS_IDLE " (3)" -¤³¤ì¤Ï idle ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹¤Ç¤¢¤ë¡£ -¤³¤Î¥ì¥Ù¥ë¤ÇÆ°ºî¤¹¤ë¥×¥í¥»¥¹¤Ï¾¤Ë¥Ç¥£¥¹¥¯¥¢¥¯¥»¥¹¤ò¤·¤è¤¦¤È¤¹¤ë -¥×¥í¥»¥¹¤¬¤Ê¤¤¾ì¹ç¤Ë¤Î¤ß I/O »þ´Ö¤ò¼èÆÀ¤¹¤ë¡£ -idle ¥¯¥é¥¹¤Ë¤Ï class data (Í¥ÀèÅÙ) ¤ÏÍÑ°Õ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -¥×¥í¥»¥¹¤Ë¤³¤ÎÍ¥ÀèÅÙ¤ò³ä¤êÅö¤Æ¤ëºÝ¤Ë¤ÏÃí°Õ¤¬É¬ÍפǤ¢¤ë¡£ -¤Ê¤¼¤Ê¤é¡¢Í¥ÀèÅ٤ι⤤¥×¥í¥»¥¹¤¬¾ï¤Ë¥Ç¥£¥¹¥¯¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï -¥Ç¥£¥¹¥¯¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¯¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ë¤«¤é¤À¡£ +これは idle スケジューリングクラスである。 +このレベルで動作するプロセスは他にディスクアクセスをしようとする +プロセスがない場合にのみ I/O 時間を取得する。 +idle クラスには class data (優先度) は用意されていない。 +プロセスにこの優先度を割り当てる際には注意が必要である。 +なぜなら、優先度の高いプロセスが常にディスクにアクセスしている場合には +ディスクにアクセスできなくなる可能性があるからだ。 .PP -CFQ I/O ¥¹¥±¥¸¥å¡¼¥é¤Î¹¹¤Ê¤ë¾ðÊó¤È¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ë¤Ä¤¤¤Æ¤Ï +CFQ I/O スケジューラの更なる情報とサンプルプログラムについては .I Documentation/block/ioprio.txt -¤ò»²¾È¤Î¤³¤È¡£ -.SS "I/O Í¥ÀèÅÙ¤ÎÀßÄê¤ËɬÍפʵö²Ä" -¥×¥í¥»¥¹¤ÎÍ¥ÀèÅÙ¤òÊѹ¹¤¹¤ëµö²Ä¤¬ÆÀ¤é¤ì¤ë¤«¤É¤¦¤«¤Ï -°Ê²¼¤Î 2¤Ä¤Î¾ò·ï¤Ë´ð¤¤¤Æ·èÄꤵ¤ì¤ë¡£ +を参照のこと。 +.SS "I/O 優先度の設定に必要な許可" +プロセスの優先度を変更する許可が得られるかどうかは +以下の 2つの条件に基いて決定される。 .TP -.B "¥×¥í¥»¥¹¤Î½êÍ­¸¢" -ÈóÆø¢¥×¥í¥»¥¹¤Ï¡¢¥×¥í¥»¥¹¤Î¼Â UID ¤¬¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â UID ¤â¤·¤¯¤Ï -¼Â¸ú UID ¤È°ìÃפ¹¤ë¥×¥í¥»¥¹¤Î I/O Í¥ÀèÅ٤ΤߤòÀßÄê¤Ç¤­¤ë¡£ +.B "プロセスの所有権" +非特権プロセスは、プロセスの実 UID が呼び出し元プロセスの実 UID もしくは +実効 UID と一致するプロセスの I/O 優先度のみを設定できる。 .B CAP_SYS_NICE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹¤Ï¡¢¤É¤Î¥×¥í¥»¥¹¤ÎÍ¥ÀèÅ٤ǤâÊѹ¹¤Ç¤­¤ë¡£ +ケーパビリティを持つプロセスは、どのプロセスの優先度でも変更できる。 .TP -.B "¤É¤ÎÍ¥ÀèÅÙ¤ËÀßÄꤷ¤è¤¦¤È¤·¤Æ¤¤¤ë¤«" -Èó¾ï¤Ë¹â¤¤Í¥ÀèÅÙ +.B "どの優先度に設定しようとしているか" +非常に高い優先度 .RB ( IOPRIO_CLASS_RT ) -¤òÀßÄꤷ¤è¤¦¤È¤¹¤ë¾ì¹ç¡¢ +を設定しようとする場合、 .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ -¥«¡¼¥Í¥ë 2.6.24 °ÊÁ°¤Ç¤Ï¡¢Èó¾ï¤ËÄ㤤ͥÀèÅÙ +ケーパビリティが必要である。 +カーネル 2.6.24 以前では、非常に低い優先度 .RB ( IOPRIO_CLASS_IDLE ) -¤òÀßÄꤹ¤ë¤¿¤á¤Ë¤â +を設定するためにも .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤Ã¤¿¤¬¡¢ -Linux 2.6.25 °Ê¹ß¤Ç¤Ï¤â¤Ï¤äɬÍפʤ¯¤Ê¤Ã¤¿¡£ +ケーパビリティが必要であったが、 +Linux 2.6.25 以降ではもはや必要なくなった。 .PP .BR ioprio_set () -¤Ï¤³¤ÎξÊý¤Î¥ë¡¼¥ë¤Ë½¾¤¤¡¢¾ò·ï¤òËþ¤¿¤µ¤Ê¤¤¾ì¹ç¡¢¥¨¥é¡¼ +はこの両方のルールに従い、条件を満たさない場合、エラー .B EPERM -¤Ç¼ºÇÔ¤¹¤ë¡£ -.SH ¥Ð¥° +で失敗する。 +.SH バグ .\" 6 May 07: Bug report raised: .\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=4464 .\" Ulrich Drepper replied that he wasn't going to add these .\" to glibc. -glibc ¤Ï¡¢¤³¤Î¥Ú¡¼¥¸¤Ëµ­ºÜ¤µ¤ì¤¿´Ø¿ô¥×¥í¥È¥¿¥¤¥×¤ä¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë -ŬÀڤʥإåÀ¥Õ¥¡¥¤¥ë¤ò¤Þ¤ÀÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ -ɬÍפÊÄêµÁ¤Ë¤Ä¤¤¤Æ¤Ï +glibc は、このページに記載された関数プロトタイプやマクロを定義する +適切なヘッダファイルをまだ提供していない。 +必要な定義については .I linux/ioprio.h -¤ò¸«¤ì¤Ð¤è¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +を見ればよい。 +.SH 関連項目 .BR getpriority (2), .BR open (2), .BR capabilities (7) .sp -¥«¡¼¥Í¥ë¡¦¥½¡¼¥¹Æâ¤Î Documentation/block/ioprio.txt +カーネル・ソース内の Documentation/block/ioprio.txt diff --git a/release/man2/ipc.2 b/release/man2/ipc.2 index 90fa8933..05591a3d 100644 --- a/release/man2/ipc.2 +++ b/release/man2/ipc.2 @@ -31,49 +31,49 @@ .\" Updated 2007-09-04, Akihiro MOTOKI , LDP v2.64 .\" .\"WORD: IPC IPC -.\"WORD: message ¥á¥Ã¥»¡¼¥¸ -.\"WORD: semaphore ¥»¥Þ¥Õ¥©¡¼ -.\"WORD: shared memory ¶¦Í­¥á¥â¥ê -.\"WORD: entry point ¥¨¥ó¥È¥ê¡¦¥Ý¥¤¥ó¥È -.\"WORD: argument °ú¤­¿ô -.\"WORD: hacker ¥Ï¥Ã¥«¡¼ -.\"WORD: standart library ɸ½à¥é¥¤¥Ö¥é¥ê -.\"WORD: implement ¼ÂÁõ +.\"WORD: message メッセージ +.\"WORD: semaphore セマフォー +.\"WORD: shared memory 共有メモリ +.\"WORD: entry point エントリ・ポイント +.\"WORD: argument 引き数 +.\"WORD: hacker ハッカー +.\"WORD: standart library 標準ライブラリ +.\"WORD: implement 実装 .\" .TH IPC 2 2007-06-28 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -ipc \- System V IPC ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë -.SH ½ñ¼° +.SH 名前 +ipc \- System V IPC システム・コール +.SH 書式 .nf .BI "int ipc(unsigned int " call ", int " first ", int " second \ ", int " third , .BI " void *" ptr ", long " fifth ); .fi -.SH ÀâÌÀ +.SH 説明 .BR ipc () -¤Ï ¥á¥Ã¥»¡¼¥¸¡¢¥»¥Þ¥Õ¥©¡¼¡¢¶¦Í­¥á¥â¥ê¤Ë´Ø¤¹¤ë System V IPC ¥³¡¼¥ë¤Î -¶¦Ä̤Υ«¡¼¥Í¥ë¤Ø¤Î¥¨¥ó¥È¥ê¡¦¥Ý¥¤¥ó¥È¤Ç¤¢¤ë¡£ +は メッセージ、セマフォー、共有メモリに関する System V IPC コールの +共通のカーネルへのエントリ・ポイントである。 .I call -¤Ï¤É¤Î IPC ´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤«¤ò·è¤á¡¨ -¾¤Î°ú¤­¿ô¤ÏŬÀڤʥ³¡¼¥ë¤Ø¤ÈÅϤµ¤ì¤ë¡£ +はどの IPC 関数を呼び出すかを決め; +他の引き数は適切なコールへと渡される。 .PP -¥æ¡¼¥¶¡¼¡¦¥×¥í¥°¥é¥à¤ÏÄ̾ï¤Î̾Á°¤ÇŬÀڤʴؿô¤ò¸Æ¤Ó½Ð¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -ɸ½à¥é¥¤¥Ö¥é¥ê¤Î¼ÂÁõ¼Ô¤ä¥«¡¼¥Í¥ë¡¦¥Ï¥Ã¥«¡¼¤Î¤ß¤¬ +ユーザー・プログラムは通常の名前で適切な関数を呼び出すべきである。 +標準ライブラリの実装者やカーネル・ハッカーのみが .BR ipc () -¤Ë¤Ä¤¤¤ÆÃΤëɬÍפ¬¤¢¤ë¡£ -.SH ½àµò +について知る必要がある。 +.SH 準拠 .BR ipc () -¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢ °Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï -»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ -.SH Ãí°Õ -ia64 ¤Ê¤É¤Î¤¤¤¯¤Ä¤«¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë +は Linux 特有であり、 移植を意図したプログラムでは +使用してはいけない。 +.SH 注意 +ia64 などのいくつかのアーキテクチャでは、システムコール .BR ipc () -¤¬Â¸ºß¤·¤Ê¤¤¡£¼ÂºÝ¤Ë¤Ï¡¢¤½¤ÎÂå¤ï¤ê¤Ë +が存在しない。実際には、その代わりに .BR msgctl (2), .BR semctl (2), .BR shmctl (2) -¤Ê¤É¤¬ÆÈΩ¤·¤¿¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +などが独立したシステムコールとして実装されている。 +.SH 関連項目 .BR msgctl (2), .BR msgget (2), .BR msgrcv (2), diff --git a/release/man2/kill.2 b/release/man2/kill.2 index 88dbb234..6a4fd170 100644 --- a/release/man2/kill.2 +++ b/release/man2/kill.2 @@ -53,17 +53,17 @@ .\" Updated 2005-12-05, Akihiro MOTOKI, Catch up to LDP man-pages 2.16 .\" Updated 2008-08-06, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: process group ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× -.\"WORD: permission µö²Ä -.\"WORD: privileges Æø¢ -.\"WORD: set-user-id ¥»¥Ã¥È¥æ¡¼¥¶¡¼ID -.\"WORD: signal handler ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¡¼ +.\"WORD: signal シグナル +.\"WORD: process group プロセス・グループ +.\"WORD: permission 許可 +.\"WORD: privileges 特権 +.\"WORD: set-user-id セットユーザーID +.\"WORD: signal handler シグナルハンドラー .\" .TH KILL 2 2009-09-15 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -kill \- ¥×¥í¥»¥¹¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë -.SH ½ñ¼° +.SH 名前 +kill \- プロセスにシグナルを送る +.SH 書式 .nf .B #include .br @@ -73,118 +73,118 @@ kill \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l .BR kill (): _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .ad b -.SH ÀâÌÀ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î +.SH 説明 +システムコールの .BR kill () -¤Ï¡¢Ç¤°Õ¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤â¤·¤¯¤Ï¥×¥í¥»¥¹¤Ë¥·¥°¥Ê¥ë¤ò -Á÷¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£ +は、任意のプロセス・グループもしくはプロセスにシグナルを +送るのに使われる。 .PP -\fIpid\fP ¤ËÀµ¤ÎÃͤò»ØÄꤷ¤¿¾ì¹ç¡¢¥·¥°¥Ê¥ë \fIsig\fP ¤¬ -\fIpid\fP ¤Ç»ØÄꤵ¤ì¤¿ ID ¤ò»ý¤Ä¥×¥í¥»¥¹¤ËÁ÷¤é¤ì¤ë¡£ +\fIpid\fP に正の値を指定した場合、シグナル \fIsig\fP が +\fIpid\fP で指定された ID を持つプロセスに送られる。 .PP -\fIpid\fP ¤Ë 0 ¤ò»ØÄꤷ¤¿¾ì¹ç¡¢ -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Ë°¤¹¤ë¤¹¤Ù¤Æ¤Î¥×¥í¥»¥¹¤Ë -\fIsig\fP ¤Ç»ØÄꤷ¤¿¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£ +\fIpid\fP に 0 を指定した場合、 +呼び出し元のプロセスのプロセス・グループに属するすべてのプロセスに +\fIsig\fP で指定したシグナルが送られる。 .PP -\fIpid\fP ¤Ë \-1 ¤ò»ØÄꤷ¤¿¾ì¹ç¡¢ \fIsig\fP ¤Ç»ØÄꤷ¤¿¥·¥°¥Ê¥ë¤¬¡¢ -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤òÁ÷¤ëµö²Ä¤ò»ý¤ÄÁ´¤Æ¤Î¥×¥í¥»¥¹¤Ë -Á÷¤é¤ì¤ë¡£Ã¢¤·¡¢¥×¥í¥»¥¹ÈÖ¹æ 1 (\fIinit\fP) ¤Ø¤Ï¥·¥°¥Ê¥ë¤ÏÁ÷¤é¤ì¤Ê¤¤¡£ -°Ê²¼¤Î´ØÏ¢Éôʬ¤â»²¾È¤Î¤³¤È¡£ +\fIpid\fP に \-1 を指定した場合、 \fIsig\fP で指定したシグナルが、 +呼び出し元のプロセスがシグナルを送る許可を持つ全てのプロセスに +送られる。但し、プロセス番号 1 (\fIinit\fP) へはシグナルは送られない。 +以下の関連部分も参照のこと。 .PP -\fIpid\fP ¤Ë \-1 ¤è¤ê¾®¤µ¤ÊÃͤò»ØÄꤷ¤¿¾ì¹ç¡¢ -ID ¤¬ \fI\-pid\fP ¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Ë°¤¹¤ë¤¹¤Ù¤Æ¤Î¥×¥í¥»¥¹¤Ë -\fIsig\fP ¤Ç»ØÄꤷ¤¿¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£ +\fIpid\fP に \-1 より小さな値を指定した場合、 +ID が \fI\-pid\fP のプロセス・グループに属するすべてのプロセスに +\fIsig\fP で指定したシグナルが送られる。 .PP -\fIsig\fP ¤Ë 0 ¤ò»ØÄꤷ¤¿¾ì¹ç¡¢¥·¥°¥Ê¥ë¤ÏÁ÷¤é¤ì¤Ê¤¤¤¬¡¢ -¥¨¥é¡¼¤Î¥Á¥§¥Ã¥¯¤Ï¹Ô¤ï¤ì¤ë¡£¤³¤ì¤ò»È¤Ã¤Æ¡¢¥×¥í¥»¥¹ ID ¤ä -¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤Î¸ºß³Îǧ¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +\fIsig\fP に 0 を指定した場合、シグナルは送られないが、 +エラーのチェックは行われる。これを使って、プロセス ID や +プロセスグループ ID の存在確認を行うことができる。 -¤¢¤ë¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤òÁ÷¤ëµö²Ä¤ò»ý¤Ä¤Ë¤Ï¡¢ -¤½¤Î¥×¥í¥»¥¹¤¬Æø¢ (Linux ¤Ç¤Ï +あるプロセスがシグナルを送る許可を持つには、 +そのプロセスが特権 (Linux では .B CAP_KILL -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤ò»ý¤Ä¥×¥í¥»¥¹¤Ç¤¢¤ë¤«¡¢¥·¥°¥Ê¥ë¤òÁ÷¤ë¦¤Î¥×¥í¥»¥¹¤Î -¼ÂUID ¤«¼Â¸úUID ¤¬¼õ¤±¤ë¦¤Î¥×¥í¥»¥¹¤Î¼Â set-UID ¤« -Êݸ (saved) set-UID ¤¬°ìÃפ·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ケーパビリティ) を持つプロセスであるか、シグナルを送る側のプロセスの +実UID か実効UID が受ける側のプロセスの実 set-UID か +保存 (saved) set-UID が一致していなければならない。 .B SIGCONT -¤Î¾ì¹ç¤Ï¡¢¥·¥°¥Ê¥ë¤òÁ÷¿®¤¹¤ë¥×¥í¥»¥¹¤È¼õ¿®¤¹¤ë¥×¥í¥»¥¹¤¬ -Ʊ¤¸¥»¥Ã¥·¥ç¥ó¤Ë½ê°¤·¤Æ¤¤¤ì¤Ð½½Ê¬¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç (¾¯¤Ê¤¯¤È¤â°ì¤Ä¤Î¥·¥°¥Ê¥ë¤¬Á÷¿®¤µ¤ì¤¿¾ì¹ç)¡¢ -0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤¬ÊÖ¤µ¤ì¡¢ +の場合は、シグナルを送信するプロセスと受信するプロセスが +同じセッションに所属していれば十分である。 +.SH 返り値 +成功した場合 (少なくとも一つのシグナルが送信された場合)、 +0 が返される。エラーの場合 \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EINVAL -̵¸ú¤Ê¥·¥°¥Ê¥ë¤ò»ØÄꤷ¤¿¡£ +無効なシグナルを指定した。 .TP .B EPERM -¥×¥í¥»¥¹¤¬¡¢¼õ¿®¤¹¤ë¥×¥í¥»¥¹¤Î¤¤¤º¤ì¤ËÂФ·¤Æ¤â -¥·¥°¥Ê¥ë¤òÁ÷¤ëµö²Ä¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +プロセスが、受信するプロセスのいずれに対しても +シグナルを送る許可を持っていない。 .TP .B ESRCH -»ØÄꤷ¤¿¥×¥í¥»¥¹¤Þ¤¿¤Ï¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤¬Â¸ºß¤·¤Ê¤«¤Ã¤¿¡£ -¥¾¥ó¥Ó¥×¥í¥»¥¹¤Ï¸ºß¤¹¤ë¥×¥í¥»¥¹¤È¤·¤Æ¤ß¤Ê¤µ¤ì¤ë¡£ -¥¾¥ó¥Ó¥×¥í¥»¥¹¤È¤Ï¤¹¤Ç¤Ë½èÍý¤Ï½ªÎ»¤·¤Æ¤¤¤ë¤¬¡¢¿Æ¥×¥í¥»¥¹¤Ë¤è¤ë +指定したプロセスまたはプロセス・グループが存在しなかった。 +ゾンビプロセスは存在するプロセスとしてみなされる。 +ゾンビプロセスとはすでに処理は終了しているが、親プロセスによる .BR wait () -½èÍý¤¬¹Ô¤ï¤ì¤Æ¤¤¤Ê¤¤¥×¥í¥»¥¹¤Î¤³¤È¤Ç¤¢¤ë¡£ -.SH ½àµò +処理が行われていないプロセスのことである。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -.SH Ãí°Õ -¥×¥í¥»¥¹ÈÖ¹æ 1 ¤Î +.SH 注意 +プロセス番号 1 の .I init -¥×¥í¥»¥¹¤ËÁ÷¤ë¤³¤È¤¬¤Ç¤­¤ë¥·¥°¥Ê¥ë¤Ï¡¢ +プロセスに送ることができるシグナルは、 .I init -¤¬ÌÀ¼¨Åª¤Ë¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄꤷ¤¿¥·¥°¥Ê¥ë¤À¤±¤Ç¤¢¤ë¡£ -¤³¤¦¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ï¡¢¸í¤Ã¤Æ¥·¥¹¥Æ¥à¤ò¥À¥¦¥ó¤µ¤»¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ç¤¢¤ë¡£ +が明示的にシグナルハンドラを設定したシグナルだけである。 +こうなっているのは、誤ってシステムをダウンさせないようにするためである。 .LP -POSIX.1-2001 ¤Ç¤Ï¡¢ \fIkill(\-1,sig)\fP ¤¬ -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤òÁ÷¤ë¤³¤È¤¬½ÐÍè¤ë¥×¥í¥»¥¹Á´¤Æ¤Ë -\fIsig\fP ¤òÁ÷¤ë¤³¤È¤òÍ׵ᤷ¤Æ¤¤¤ë¡£ -⤷¡¢¥·¥¹¥Æ¥à¼ÂÁõ»þ¤ËÄê¤á¤é¤ì¤¿¥·¥¹¥Æ¥à¥×¥í¥»¥¹¤Ï -¥·¥°¥Ê¥ë¤ÎÁ÷¿®Âоݤ«¤é½ü³°¤µ¤ì¤ë¡£ -Linux ¤Ç¤Ï¡¢¥×¥í¥»¥¹¤¬¼«Ê¬¼«¿È¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¬¡¢ -Linux ¤Î \fIkill(\-1,sig)\fP ¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ë¤Ï¥·¥°¥Ê¥ë¤òÁ÷¤é¤Ê¤¤¡£ +POSIX.1-2001 では、 \fIkill(\-1,sig)\fP が +呼び出し元のプロセスがシグナルを送ることが出来るプロセス全てに +\fIsig\fP を送ることを要求している。 +但し、システム実装時に定められたシステムプロセスは +シグナルの送信対象から除外される。 +Linux では、プロセスが自分自身にシグナルを送れるようになっているが、 +Linux の \fIkill(\-1,sig)\fP は呼び出し元のプロセスにはシグナルを送らない。 .LP -POSIX.1-2001 ¤Ç¤Ï°Ê²¼¤ÎÆ°ºî¤Ë¤Ê¤ë¤³¤È¤òÍ׵ᤷ¤Æ¤¤¤ë¡£ -¼«Ê¬¼«¿È¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¤È¡¢¥·¥°¥Ê¥ë¤òÁ÷¤Ã¤¿¥¹¥ì¥Ã¥É¤¬¤½¤Î¥·¥°¥Ê¥ë¤ò¥Ö¥í¥Ã¥¯ -¤·¤Æ¤ª¤é¤º¡¢Â¾¤Î¤É¤Î¥¹¥ì¥Ã¥É¤â¤½¤Î¥·¥°¥Ê¥ë¤ò¼õ¤±¤ë¾õÂ֤ˤâ¤Ê¤¯ +POSIX.1-2001 では以下の動作になることを要求している。 +自分自身にシグナルを送ると、シグナルを送ったスレッドがそのシグナルをブロック +しておらず、他のどのスレッドもそのシグナルを受ける状態にもなく .BR sigwait (3) -¤Ç¤½¤Î¥·¥°¥Ê¥ë¤òÂԤäƤ⤤¤Ê¤¤¾ì¹ç¡¢ +でそのシグナルを待ってもいない場合、 .BR kill () -¤¬ÊÖ¤ëÁ°¤Ë¾¯¤Ê¤¯¤È¤â°ì¤Ä¤Î¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤Ê¤¤ -¥·¥°¥Ê¥ë¤¬¥·¥°¥Ê¥ë¤òÁ÷¤Ã¤¿¥¹¥ì¥Ã¥É¤ËÇÛÁ÷¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SS "Linux ¤Ç¤ÎÃí°Õ" -Linux ¤Ç¤Ï¡¢Æø¢¤Î¤Ê¤¤¥×¥í¥»¥¹¤¬Â¾¤Î¥×¥í¥»¥¹¤Ë¥·¥°¥Ê¥ë¤òÁ÷¿®¤¹¤ë¤¿¤á¤Ë -ɬÍפʸ¢¸Â¤Ë¤Ä¤¤¤Æ¤Î¥ë¡¼¥ë¤¬¡¢¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤ê°ã¤Ã¤Æ¤¤¤ë¡£ -.\" 0.* ¥«¡¼¥Í¥ë¤ÎÏäϳ䰦¤·¡¢Â¿¾¯Êѹ¹¤·¤¿¡£- MTK, 24 Jul 02 -¥«¡¼¥Í¥ë 1.0 ¤«¤é 1.2.2 ¤Ç¤Ï¡¢Á÷¿®Â¦¤Î¼Â¸ú¥æ¡¼¥¶¡¼ID ¤¬¼õ¿®Â¦¤Î -¼Â¸ú¥æ¡¼¥¶¡¼ ID¤È°ìÃפ¹¤ì¤Ð¥·¥°¥Ê¥ë¤òÁ÷¿®¤Ç¤­¤¿¡£ -¥«¡¼¥Í¥ë 1.2.3 ¤«¤é 1.3.77¤Ç¤Ï¡¢Á÷¿®Â¦¤Î¼Â¸ú¥æ¡¼¥¶¡¼ID ¤¬¼õ¿®Â¦¤Î -¼Â¥æ¡¼¥¶¡¼ID ¤«¼Â¸ú¥æ¡¼¥¶¡¼ID ¤Î¤¤¤º¤ì¤«¤È°ìÃפ¹¤ì¤Ð¥·¥°¥Ê¥ë¤òÁ÷¿®¤Ç¤­¤¿¡£ -¸½ºß¤Î¥ë¡¼¥ë¤Ï¡¢POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤ª¤ê¡¢¥«¡¼¥Í¥ë 1.3.78 °Ê¹ß¤Ç -ŬÍѤµ¤ì¤Æ¤¤¤ë¡£ -.SH ¥Ð¥° -¥Ð¡¼¥¸¥ç¥ó 2.6.7 °ÊÁ°¤Î 2.6 ·Ï¤Î¥«¡¼¥Í¥ë¤Ë¤Ï¡¢ -¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤Ã¤¿¤È¤­¤Ë¡¢ -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Î (Á´¥á¥ó¥Ð¡¼¤Ç¤Ï¤Ê¤¯) °ìÉô¤Î¥á¥ó¥Ð¡¼ -¤ËÂФ·¤Æ¤Î¤ß¥·¥°¥Ê¥ë¤òÁ÷¤ëµö²Ä¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢ +が返る前に少なくとも一つのブロックされていない +シグナルがシグナルを送ったスレッドに配送されなければならない。 +.SS "Linux での注意" +Linux では、特権のないプロセスが他のプロセスにシグナルを送信するために +必要な権限についてのルールが、カーネルバージョンにより違っている。 +.\" 0.* カーネルの話は割愛し、多少変更した。- MTK, 24 Jul 02 +カーネル 1.0 から 1.2.2 では、送信側の実効ユーザーID が受信側の +実効ユーザー IDと一致すればシグナルを送信できた。 +カーネル 1.2.3 から 1.3.77では、送信側の実効ユーザーID が受信側の +実ユーザーID か実効ユーザーID のいずれかと一致すればシグナルを送信できた。 +現在のルールは、POSIX.1-2001 に準拠しており、カーネル 1.3.78 以降で +適用されている。 +.SH バグ +バージョン 2.6.7 以前の 2.6 系のカーネルには、 +プロセスグループにシグナルを送ったときに、 +呼び出し元のプロセスがプロセスグループの (全メンバーではなく) 一部ã®ãƒ¡ãƒ³ãƒãƒ¼ +に対してのみシグナルを送る許可を持っている場合に、 .BR kill () -¤¬¥¨¥é¡¼ +がエラー .B EPERM -¤Ç¼ºÇÔ¤¹¤ë¤È¤¤¤¦¥Ð¥°¤¬¤¢¤ë¡£ -¤³¤Î¥¨¥é¡¼¤¬ÊÖ¤ë¤Ë¤â¤«¤«¤ï¤é¤º¡¢¤½¤Î¥·¥°¥Ê¥ë¤Ï¸Æ¤Ó½Ð¤·¸µ¤¬ -¥·¥°¥Ê¥ë¤òÁ÷¤ëµö²Ä¤ò»ý¤ÄÁ´¤Æ¤Î¥×¥í¥»¥¹¤ØÁ÷¤é¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +で失敗するというバグがある。 +このエラーが返るにもかかわらず、そのシグナルは呼び出し元が +シグナルを送る許可を持つ全てのプロセスへ送られる。 +.SH 関連項目 .BR _exit (2), .BR killpg (2), .BR signal (2), diff --git a/release/man2/killpg.2 b/release/man2/killpg.2 index 2e047b52..8409a531 100644 --- a/release/man2/killpg.2 +++ b/release/man2/killpg.2 @@ -44,23 +44,23 @@ .\" Updated & Modified Sat Feb 5 21:24:32 JST 2005 .\" by Yuichi SATO .\" -.\"WORD: process group ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: super-user ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ +.\"WORD: process group プロセス・グループ +.\"WORD: signal シグナル +.\"WORD: effective user ID 実効ユーザーID +.\"WORD: super-user スーパー・ユーザー .\" .TH KILLPG 2 2010-09-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -killpg \- ¥·¥°¥Ê¥ë¤ò¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤ËÁ÷¤ë -.SH ½ñ¼° +.SH 名前 +killpg \- シグナルをプロセス・グループに送る +.SH 書式 .B #include .sp .BI "int killpg(int " pgrp ", int " sig ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -69,82 +69,82 @@ glibc _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .ad -.SH ÀâÌÀ +.SH 説明 .BR killpg () -¤Ï +は .I sig -¤Ç»ØÄꤷ¤¿¥·¥°¥Ê¥ë¤ò +で指定したシグナルを .I pgrp -¤Ç»ØÄꤷ¤¿¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤ËÁ÷¤ë¡£ -¥·¥°¥Ê¥ë¤ÎÄêµÁ¤Î°ìÍ÷¤Ï +で指定したプロセス・グループに送る。 +シグナルの定義の一覧は .BR signal (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 -°ú¤­¿ô +引き数 .I pgrp -¤Ë 0 ¤ò»ØÄꤷ¤¿¾ì¹ç¤Ë¤Ï +に 0 を指定した場合には .BR killpg () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬Â°¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤ËÂФ·¤Æ¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ -(POSIX ¤Ç¤Ï°Ê²¼¤Î¤è¤¦¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë: +は呼び出し元のプロセスが属しているプロセス・グループに対してシグナルを送る。 +(POSIX では以下のように記述されている: .I pgrp -¤¬ 1 °Ê²¼¤Ç¤¢¤ë¾ì¹ç¡¢Æ°ºî¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£) +が 1 以下である場合、動作は未定義である。) -¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤òÁ÷¿®¤¹¤ëµö²Ä¤ò»ý¤Ä¤¿¤á¤Ë¤Ï¡¢ -¥×¥í¥»¥¹¤¬Æø¢ (Linux ¤Ç¤Ï +プロセスがシグナルを送信する許可を持つためには、 +プロセスが特権 (Linux では .B CAP_KILL -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability)) ¤ò»ý¤Ä¤«¡¢ -Á÷¿®¸µ¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶¡¼ ID ¤Þ¤¿¤Ï¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ -Á÷¿®Àè¥×¥í¥»¥¹¤Î¼Â set-user-ID ¤Þ¤¿¤ÏÊݸ set-user-ID ¤È -Åù¤·¤¯¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ケーパビリティ (capability)) を持つか、 +送信元プロセスの実ユーザー ID または実効ユーザー ID が +送信先プロセスの実 set-user-ID または保存 set-user-ID と +等しくなければならない。 .B SIGCONT -¤Î¾ì¹ç¡¢Á÷¿®¥×¥í¥»¥¹¤È¼õ¿®¥×¥í¥»¥¹¤¬ -Ʊ¤¸¥»¥Ã¥·¥ç¥ó¤Ë°¤·¤Æ¤¤¤ì¤Ð½½Ê¬¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -Àµ¾ï½ªÎ»¤¹¤ë¤È 0 ¤¬ÊÖ¤êÃͤȤʤ롣°Û¾ï½ªÎ»¤Î¾ì¹ç \-1 ¤¬ÊÖ¤êÃͤȤʤê +の場合、送信プロセスと受信プロセスが +同じセッションに属していれば十分である。 +.SH 返り値 +正常終了すると 0 が返り値となる。異常終了の場合 \-1 が返り値となり .I errno -¤Ë¸¶°ø¥³¡¼¥É¤¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +に原因コードが設定される。 +.SH エラー .TP .B EINVAL .I sig -¤Ç»ØÄꤵ¤ì¤¿ÃͤÏ̵¸ú¤Ê¥·¥°¥Ê¥ëÈÖ¹æ¤Ç¤¢¤ë¡£ +で指定された値は無効なシグナル番号である。 .TP .B EPERM -¥×¥í¥»¥¹¤Ë²¿¤ì¤«¤ÎÁ÷¿®Àè¥×¥í¥»¥¹¤Ë¥·¥°¥Ê¥ë¤òÁ÷¿®¤¹¤ëµö²Ä¤¬¤Ê¤¤¡£ +プロセスに何れかの送信先プロセスにシグナルを送信する許可がない。 .TP .B ESRCH .I pgrp -¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Ë°¤¹¤ë¥×¥í¥»¥¹¤¬Â¸ºß¤·¤Ê¤«¤Ã¤¿¡£ +で指定されたプロセス・グループに属するプロセスが存在しなかった。 .TP .B ESRCH -¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤È¤·¤Æ 0 ¤¬»ØÄꤵ¤ì¤¿¤¬¡¢Á÷¿®¥×¥í¥»¥¹¤Ï -¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -.SH ½àµò +プロセス・グループとして 0 が指定されたが、送信プロセスは +プロセス・グループを持っていない。 +.SH 準拠 SVr4, 4.4BSD .RB ( killpg () -¤Ï 4BSD ¤Ç½é¤á¤ÆÄɲ䵤줿), POSIX.1-2001¡£ -.SH Ãí°Õ -BSD ·Ï¥·¥¹¥Æ¥à¤È System V ·Ï¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -µö²Ä¤Î¥Á¥§¥Ã¥¯¤ËÍÍ¡¹¤Ê°ã¤¤¤¬¤¢¤ë¡£ +は 4BSD で初めて追加された), POSIX.1-2001。 +.SH 注意 +BSD 系システムと System V 系システムでは、 +許可のチェックに様々な違いがある。 .BR kill (2) -¤Ë¤Ä¤¤¤Æ¤Î POSIX ¤Î¸¶Íý (rationale) ¤ò»²¾È¤¹¤ë¤³¤È¡£ -POSIX ¤Çµ­½Ò¤µ¤ì¤Æ¤¤¤Ê¤¤°ã¤¤¤È¤·¤Æ¤Ï¡¢ÊÖ¤êÃÍ +についての POSIX の原理 (rationale) を参照すること。 +POSIX で記述されていない違いとしては、返り値 .B EPERM -¤¬¤¢¤ë¡£ -BSD ¤Ç¤Ï¡ÖÁ÷¿®Àè¥×¥í¥»¥¹¤Îµö²Ä¤Î¥Á¥§¥Ã¥¯¤¬ 1 ¤Ä¤Ç¤â¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¡¢ -¥·¥°¥Ê¥ë¤¬Á÷¿®¤µ¤ì¤º¡¢ +がある。 +BSD では「送信先プロセスの許可のチェックが 1 つでも失敗した場合は、 +シグナルが送信されず、 .B EPERM -¤¬ÊÖ¤µ¤ì¤ë¡×¤Èµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -POSIX ¤Ç¤Ï¡ÖÁ÷¿®Àè¥×¥í¥»¥¹¤Îµö²Ä¤Î¥Á¥§¥Ã¥¯¤¬Á´¤Æ¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Î¤ß¡¢ +が返される」と記述されている。 +POSIX では「送信先プロセスの許可のチェックが全て失敗した場合にのみ、 .B EPERM -¤¬ÊÖ¤µ¤ì¤ë¡×¤Èµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +が返される」と記述されている。 -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR killpg () -¤Ï¥é¥¤¥Ö¥é¥ê´Ø¿ô¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤ª¤ê¡¢ +はライブラリ関数として実装されており、 .I "kill(-pgrp,\ sig)" -¤Î¸Æ¤Ó½Ð¤·¤¬¹Ô¤ï¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +の呼び出しが行われる。 +.SH 関連項目 .BR getpgrp (2), .BR kill (2), .BR signal (2), diff --git a/release/man2/link.2 b/release/man2/link.2 index 3b160e0c..82147cc3 100644 --- a/release/man2/link.2 +++ b/release/man2/link.2 @@ -37,167 +37,167 @@ .\" Updated & Modified Fri Apr 22 02:05:00 JST 2005 by Yuichi SATO .\" Updated 2008-09-07, Akihiro MOTOKI , LDP v3.08 .\" -.\"WORD: link ¥ê¥ó¥¯ -.\"WORD: hard link ¥Ï¡¼¥É¡¦¥ê¥ó¥¯ -.\"WORD: overwrite ¾å½ñ¤­ -.\"WORD: permission µö²Ä(permission) -.\"WORD: ownership ½êÍ­¼Ô(ownership) -.\"WORD: file system ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à -.\"WORD: effective uid ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: symbolic link ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: dangling symbolic link ²õ¤ì¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: directory entry ¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê +.\"WORD: link リンク +.\"WORD: hard link ハード・リンク +.\"WORD: overwrite 上書き +.\"WORD: permission 許可(permission) +.\"WORD: ownership 所有者(ownership) +.\"WORD: file system ファイル・システム +.\"WORD: effective uid 実効ユーザーID +.\"WORD: kernel カーネル +.\"WORD: symbolic link シンボリック・リンク +.\"WORD: dangling symbolic link 壊れたシンボリック・リンク +.\"WORD: directory entry ディレクトリ・エントリ .\" .TH LINK 2 2008-08-21 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -link \- ¥Õ¥¡¥¤¥ë¤Î¿·¤·¤¤Ì¾Á°¤òºîÀ®¤¹¤ë -.SH ½ñ¼° +.SH 名前 +link \- ファイルの新しい名前を作成する +.SH 書式 .B #include .sp .BI "int link(const char *" oldpath ", const char *" newpath ); -.SH ÀâÌÀ +.SH 説明 .BR link () -¤Ï¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¤Ø¤Î¿·¤·¤¤¥ê¥ó¥¯ (link) -(¥Ï¡¼¥É¡¦¥ê¥ó¥¯ (hard link) ¤È¤â¤¤¤¦) ¤òºîÀ®¤¹¤ë¡£ +は存在するファイルへの新しいリンク (link) +(ハード・リンク (hard link) ともいう) を作成する。 .I newpath -¤¬Â¸ºß¤¹¤ë¾ì¹ç¤Ë¤Ï¾å½ñ¤­¤Ï\fI¤µ¤ì¤Ê¤¤\fR¡£ +が存在する場合には上書きは\fIされない\fR。 -¤³¤Î¿·¤·¤¤Ì¾Á°¤ÏÁ´¤Æ¤ÎÁàºî¤Ë¤ª¤¤¤Æ¸Å¤¤Ì¾Á°¤È´°Á´¤ËƱ¤¸¤è¤¦¤Ë»ÈÍѤµ¤ì¤ë; -ξÊý¤Î̾Á°¤ÏƱ¤¸¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤ª¤ê -(¤½¤ì¤ÇƱ¤¸µö²Ä (permission) ¤ä½êÍ­¼Ô (ownership) ¤È¤Ê¤ë¤Î¤Ç)¡¢ -¤É¤Á¤é¤Î̾Á°¤¬ËÜÍè¤Î¤â¤Î¤Ç¤¢¤ë¤«È½Ê̤Ǥ­¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +この新しい名前は全ての操作において古い名前と完全に同じように使用される; +両方の名前は同じファイルを参照しており +(それで同じ許可 (permission) や所有者 (ownership) となるので)、 +どちらの名前が本来のものであるか判別できない。 +.SH 返り値 +成功した場合は 0 が返される。エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EACCES .I newpath -¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ø¤Î½ñ¤­¹þ¤ß¤¬µö¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ +を含んでいるディレクトリへの書き込みが許されていないか、 .I oldpath -¤Þ¤¿¤Ï +または .I newpath -¤Ø¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¤É¤ì¤«¤Ë¸¡º÷µö²Ä¤¬¤Ê¤¤ +へのディレクトリのどれかに検索許可がない .RB ( path_resolution (7) -¤ò»²¾È)¡£ +を参照)。 .TP .B EEXIST .I newpath -¤¬´û¤Ë¸ºß¤¹¤ë¡£ +が既に存在する。 .TP .B EFAULT -.IR oldpath " ¤Þ¤¿¤Ï " newpath " -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +.IR oldpath " または " newpath " +がアクセス可能なアドレス空間の外を指している。 .TP .B EIO -I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +I/O エラーが発生した。 .TP .B ELOOP -.IR oldpath " ¤Þ¤¿¤Ï " newpath -¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ +.IR oldpath " または " newpath +を解決する際に遭遇したシンボリック・リンクが多過ぎる。 .TP .B EMLINK .I oldpath -¤Ë¤è¤Ã¤Æ»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ï -´û¤ËºÇÂç¿ô¤Þ¤Ç¤Î¥ê¥ó¥¯¤ò»ý¤Ã¤Æ¤¤¤ë¡£ +によって参照されるファイルは +既に最大数までのリンクを持っている。 .TP .B ENAMETOOLONG -.IR oldpath " ¤Þ¤¿¤Ï " newpath " -¤¬Ä¹²á¤®¤ë¡£ +.IR oldpath " または " newpath " +が長過ぎる。 .TP .B ENOENT -.IR oldpath " ¤Þ¤¿¤Ï " newpath -¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢ -²õ¤ì¤¿(dangling)¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ç¤¢¤ë¡£ +.IR oldpath " または " newpath +のディレクトリ部分が存在しないか、 +壊れた(dangling)シンボリック・リンクである。 .TP .B ENOMEM -¥«¡¼¥Í¥ë¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +カーネルに十分なメモリがない。 .TP .B ENOSPC -¤½¤Î¥Õ¥¡¥¤¥ë¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥Ð¥¤¥¹¤Ë¿·¤·¤¤¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤ò -ºîÀ®¤¹¤ë¤¿¤á¤Î¶õ¤­¤¬¤Ê¤¤¡£ +そのファイルを含んでいるデバイスに新しいディレクトリ・エントリを +作成するための空きがない。 .TP .B ENOTDIR -.IR oldpath " ¤Þ¤¿¤Ï " newpath -¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬¡¢¼ÂºÝ¤Ë¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +.IR oldpath " または " newpath +のディレクトリ部分が、実際には、ディレクトリでない。 .TP .B EPERM .I oldpath -¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¡£ +がディレクトリである。 .TP .B EPERM -.IR oldpath " ¤È " newpath -¤ò´Þ¤ó¤Ç¤¤¤ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤¬¥Ï¡¼¥É¡¦¥ê¥ó¥¯¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +.IR oldpath " と " newpath +を含んでいるファイル・システムがハード・リンクをサポートしていない。 .TP .B EROFS -¥Õ¥¡¥¤¥ë¤¬Æɤ߹þ¤ßÀìÍѤΥե¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¡£ +ファイルが読み込み専用のファイル・システムに存在する。 .TP .B EXDEV -.IR oldpath " ¤È " newpath -¤¬Æ±¤¸¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë¸ºß¤·¤Ê¤¤¡£ -(Linux ¤Ï 1 ¤Ä¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤òÊ£¿ô¤Î¥Þ¥¦¥ó¥È°ÌÃÖ¤Ë -¥Þ¥¦¥ó¥È¤¹¤ë¤³¤È¤òµö²Ä¤·¤Æ¤¤¤ë¡£ -¤·¤«¤· +.IR oldpath " と " newpath +が同じマウントされたファイル・システムに存在しない。 +(Linux は 1 つのファイル・システムを複数のマウント位置に +マウントすることを許可している。 +しかし .BR link () -¤Ï¡¢¤¿¤È¤¨Æ±¤¸¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ç¤¢¤Ã¤Æ¤â¡¢ -ÊÌ¡¹¤Î¥Þ¥¦¥ó¥È°ÌÃÖ¤ò¸Ù¤¤¤Ç¤ÏÆ°ºî¤·¤Ê¤¤¡£) -.SH ½àµò -SVr4, 4.3BSD, POSIX.1-2001 (⤷¡ÖÃí°Õ¡×¤ò»²¾È)¡£ -.\" SVr4 ¤Ï¾¤Ë ENOLINK, EMULTIHOP ¥¨¥é¡¼¾õÂ֤ˤĤ¤¤Æ¤âµ­½Ò¤·¤Æ¤¤¤ë¡£ -.\" POSIX.1 ¤Ë¤Ï ELOOP ¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤Ï¤Ê¤¤¡£ -.\" X/OPEN ¤Ë¤Ï EFAULT, ENOMEM, EIO ¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ +は、たとえ同じファイル・システムであっても、 +別々のマウント位置を跨いでは動作しない。) +.SH 準拠 +SVr4, 4.3BSD, POSIX.1-2001 (但し「注意」を参照)。 +.\" SVr4 は他に ENOLINK, EMULTIHOP エラー状態についても記述している。 +.\" POSIX.1 には ELOOP についての記述はない。 +.\" X/OPEN には EFAULT, ENOMEM, EIO についての記述はない。 +.SH 注意 .BR link () -¤Ç¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤òĶ¤¨¤Æ¥Ï¡¼¥É¡¦¥ê¥ó¥¯¤òºîÀ®¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ï +でファイル・システムを超えてハード・リンクを作成することはできない。 +このような場合は .BR symlink (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +を使用すること。 -POSIX.1-2001 ¤Ç¤Ï¡¢ +POSIX.1-2001 では、 .I oldpath -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ç¤¢¤ë¾ì¹ç¡¢ +がシンボリック・リンクである場合、 .BR link () -¤Ï +は .I oldpath -¤Î»²¾È¤ò²ò·è¤¹¤Ù¤­¤Ç¤¢¤ë¤Èµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -¤·¤«¤·¡¢¥«¡¼¥Í¥ë 2.0 °Ê¹ß¤Î -.\" Àµ³Î¤Ë¤Ï¥«¡¼¥Í¥ë 1.3.56 °Ê¹ß -Linux ¤Ç¤Ï¤½¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¡£ +の参照を解決すべきであると記述されている。 +しかし、カーネル 2.0 以降の +.\" 正確にはカーネル 1.3.56 以降 +Linux ではそのようになっていない。 .I oldpath -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ç¤¢¤ë¾ì¹ç¡¢ +がシンボリック・リンクである場合、 .I newpath -¤ÏƱ¤¸¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¥Õ¥¡¥¤¥ë¤Ø¤Î (¥Ï¡¼¥É) ¥ê¥ó¥¯¤È¤·¤ÆºîÀ®¤µ¤ì¤ë -(¤Ä¤Þ¤ê +は同じシンボリック・リンクファイルへの (ハード) リンクとして作成される +(つまり .I newpath -¤Ï +は .I oldpath -¤¬»²¾È¤·¤Æ¤¤¤¿Æ±¤¸¥Õ¥¡¥¤¥ë¤Ø¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ë¤Ê¤ë)¡£ -¾¤Î¤¤¤¯¤Ä¤«¤Î¼ÂÁõ¤Ç¤â Linux ¤ÈƱ¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ -.\" Î㤨¤Ð¡¢¥Ç¥Õ¥©¥ë¥È¤Î Solaris ¤Î¥³¥ó¥Ñ¥¤¥ë´Ä¶­¤Ç¤Ï -.\" Linux ¤ÈƱ¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£¤½¤·¤Æ Austin ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î -.\" 2005 ǯ 3 ·î¤Î¥¹¥ì¥Ã¥É¤ËÅê¹Æ¤·¤¿¿Í¤¿¤Á¤Ï¡¢ -.\" ¤½¤Î¾¤Î¤¤¤¯¤Ä¤«¤Î (System V) ¼ÂÁõ¤Ç¤âƱ¤¸¤Ç¤¢¤Ã¤¿/¤¢¤ë¡¢ -.\" ¤ÈÊó¹ð¤·¤Æ¤¤¤ë -- MTK, Apr 05 -POSIX.1-2008 ¤Ç¤Ï +が参照していた同じファイルへのシンボリックリンクになる)。 +他のいくつかの実装でも Linux と同じように動作する。 +.\" 例えば、デフォルトの Solaris のコンパイル環境では +.\" Linux と同じように動作する。そして Austin メーリングリストの +.\" 2005 å¹´ 3 月のスレッドに投稿した人たちは、 +.\" その他のいくつかの (System V) 実装でも同じであった/ある、 +.\" と報告している -- MTK, Apr 05 +POSIX.1-2008 では .BR link () -¤Î»ÅÍͤ¬Êѹ¹¤µ¤ì¡¢ +の仕様が変更され、 .I oldpath -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Î¾ì¹ç¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Î»²¾È¤ò -²ò·è¤¹¤ë¤«¤É¤¦¤«¤Ï¼ÂÁõ°Í¸¤È¤Ê¤Ã¤¿¡£ -¥ê¥ó¥¯ºîÀ®»þ¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Î°·¤¤¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤ÊÀ©¸æ¤Ë -´Ø¤·¤Æ¤Ï +がシンボリック・リンクの場合にシンボリック・リンクの参照を +解決するかどうかは実装依存となった。 +リンク作成時のシンボリック・リンクの扱いについての詳細な制御に +関しては .BR linkat (2) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ¥Ð¥° -NFS ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ç¤Ï¡¢NFS ¥µ¡¼¥Ð¡¼¤¬¥ê¥ó¥¯¤òºîÀ®¤·¤¿¸å¤Ë¡¢ -¤½¤ì¤òÅÁ¤¨¤ëÁ°¤Ë»à¤ó¤À¾ì¹ç¤Ë¤ÏÊÖ¤êÃͤ¬ÉÔÀµ¤Ê¾ì¹ç¤¬¤¢¤ë¡£ -¥ê¥ó¥¯¤¬ºîÀ®¤Ç¤­¤¿¤«¤É¤¦¤«¸«¤Ä¤±¤ë¤¿¤á¤Ë¤Ï +を参照のこと。 +.SH バグ +NFS ファイル・システムでは、NFS サーバーがリンクを作成した後に、 +それを伝える前に死んだ場合には返り値が不正な場合がある。 +リンクが作成できたかどうか見つけるためには .BR stat (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を使用すること。 +.SH 関連項目 .BR ln (1), .BR linkat (2), .BR open (2), diff --git a/release/man2/linkat.2 b/release/man2/linkat.2 index e2d11da5..54b308d5 100644 --- a/release/man2/linkat.2 +++ b/release/man2/linkat.2 @@ -29,11 +29,11 @@ .\" Translated 2006-09-30 by Yuichi SATO , LDP v2.39 .\" .TH LINKAT 2 2009-12-13 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -linkat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÁêÂÐŪ¤Ê°ÌÃ֤˥ե¡¥¤¥ë¥ê¥ó¥¯¤òºîÀ®¤¹¤ë -.SH ½ñ¼° +.SH 名前 +linkat \- ディレクトリファイルディスクリプタから相対的な位置にファイルリンクを作成する +.SH 書式 .nf -.B #include /* AT_* Äê¿ô¤ÎÄêµÁ */ +.B #include /* AT_* 定数の定義 */ .B #include .sp .BI "int linkat(int " olddirfd ", const char *" oldpath , @@ -41,9 +41,9 @@ linkat \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR linkat (): @@ -51,118 +51,118 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR linkat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤¹¤ë°ã¤¤°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明する違い以外は、 .BR link (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .I oldpath -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹Ì¾¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パス名である場合、 +ファイルディスクリプタ .I olddirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( link (2) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスの +カレントワーキングディレクトリからの相対パスとなる)。 .I oldpath -¤¬ÁêÂХѥ¹¤Ç¤¢¤ê¡¢¤«¤Ä +が相対パスであり、かつ .I olddirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I oldpath -¤Ï +は .RB ( link (2) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .I oldpath -¤¬ÀäÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ +が絶対パスである場合、 .I olddirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .I newpath -¤Î²ò¼á¤Ï +の解釈は .I oldpath -¤ÈƱÍͤǤ¢¤ë¤¬¡¢ -ÁêÂХѥ¹Ì¾¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +と同様であるが、 +相対パス名はファイルディスクリプタ .I newdirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +で参照されるディレクトリからの相対パス名として解釈される。 -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +デフォルトでは、 .I oldpath -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Î¾ì¹ç¡¢ +がシンボリック・リンクの場合、 .RB ( link (2) -ƱÍÍ) +同様) .BR linkat () -¤Ï +は .I oldpath -¤Î»²¾È¤Î²ò·è¤ò¹Ô¤ï¤Ê¤¤¡£ -Linux 2.6.18 °Ê¹ß¤Ç¤Ï¡¢ +の参照の解決を行わない。 +Linux 2.6.18 以降では、 .B AT_SYMLINK_FOLLOW -¥Õ¥é¥°¤ò +フラグを .I flags -¤Ë»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È¡¢ +に指定することができる。このフラグを指定すると、 .I oldpath -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Î¾ì¹ç¡¢ +がシンボリック・リンクの場合、 .I oldpath -¤Î»²¾È¤Î²ò·è¤ò¹Ô¤¦¡£ -2.6.18 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +の参照の解決を行う。 +2.6.18 以前のカーネルでは、 .I flags -°ú¤­¿ô¤Ï»ÈÍѤµ¤ì¤º¡¢ -0 ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤«¤Ã¤¿¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +引き数は使用されず、 +0 を指定しなければならなかった。 +.SH 返り値 +成功した場合、 .BR linkat () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +は 0 を返す。 +エラーの場合、\-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +にはエラーを示す値が設定される。 +.SH エラー .BR link (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR linkat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .BR linkat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .I olddirfd -¤Þ¤¿¤Ï +または .I newdirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B ENOTDIR .I oldpath -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I olddirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ -¤Þ¤¿¤Ï +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 +または .I newpath -¤È +と .I newdirfd -¤Ë¤Ä¤¤¤Æ¡¢Æ±ÍͤΤ³¤È¤¬µ¯¤­¤Æ¤¤¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +について、同様のことが起きている。 +.SH バージョン .BR linkat () -¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ -.SH ½àµò +は Linux カーネル 2.6.16 で追加された。 +.SH 準拠 POSIX.1-2008. -.SH Ãí°Õ +.SH 注意 .BR linkat () -¤¬É¬ÍפÊÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が必要な理由については、 .BR openat (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を参照すること。 +.SH 関連項目 .BR link (2), .BR openat (2), .BR path_resolution (7), diff --git a/release/man2/listen.2 b/release/man2/listen.2 index fb130a9c..639b6cf5 100644 --- a/release/man2/listen.2 +++ b/release/man2/listen.2 @@ -48,134 +48,134 @@ .\" Updated 2007-07-04, Akihiro MOTOKI , LDP v2.58 .\" Updated 2008-02-10, Akihiro MOTOKI , LDP v2.77 .\" -.\"WORD: socket ¥½¥±¥Ã¥È -.\"WORD: listen ´Æ»ë -.\"WORD: queue ¥­¥å¡¼ -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ +.\"WORD: socket ソケット +.\"WORD: listen 監視 +.\"WORD: queue キュー +.\"WORD: descriptor ディスクリプター .\" .TH LISTEN 2 2008-11-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -listen \- ¥½¥±¥Ã¥È(socket)¾å¤ÎÀܳ¤òÂÔ¤Ä -.SH ½ñ¼° +.SH 名前 +listen \- ソケット(socket)上の接続を待つ +.SH 書式 .nf -.BR "#include " " /* ¡ÖÃí°Õ¡×»²¾È */" +.BR "#include " " /* 「注意」参照 */" .br .B #include .sp .BI "int listen(int " sockfd ", int " backlog ); .fi -.SH ÀâÌÀ +.SH 説明 .BR listen () -¤Ï +は .I sockfd -¤¬»²¾È¤¹¤ë¥½¥±¥Ã¥È¤òÀܳÂÔ¤Á¥½¥±¥Ã¥È (passive socket) ¤È¤·¤Æ°õ¤ò¤Ä¤±¤ë¡£ -ÀܳÂÔ¤Á¥½¥±¥Ã¥È¤È¤Ï¡¢ +が参照するソケットを接続待ちソケット (passive socket) として印をつける。 +接続待ちソケットとは、 .BR accept (2) -¤ò»È¤Ã¤ÆÅþÃ夷¤¿ÀܳÍ×µá¤ò¼õ¤±ÉÕ¤±¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¥½¥±¥Ã¥È¤Ç¤¢¤ë¡£ +を使って到着した接続要求を受け付けるのに使用されるソケットである。 .I sockfd -°ú¤­¿ô¤Ï¡¢ +引き数は、 .B SOCK_STREAM -·¿¤« +型か .B SOCK_SEQPACKET -·¿¤Î¥½¥±¥Ã¥È¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +型のソケットを参照するファイルディスクリプタである。 .I backlog -°ú¤­¿ô¤Ï¡¢ +引き数は、 .I sockfd -¤Ë¤Ä¤¤¤Æ¤ÎÊÝαÃæ¤ÎÀܳ¤Î¥­¥å¡¼¤ÎºÇÂçŤò»ØÄꤹ¤ë¡£ -¥­¥å¡¼¤¬¤¤¤Ã¤Ñ¤¤¤Î¾õÂÖ¤ÇÀܳÍ׵᤬ÅþÃ夹¤ë¤È¡¢¥¯¥é¥¤¥¢¥ó¥È¤Ï +についての保留中の接続のキューの最大長を指定する。 +キューがいっぱいの状態で接続要求が到着すると、クライアントは .B ECONNREFUSED -¤È¤¤¤¦¥¨¥é¡¼¤ò¼õ¤±¼è¤ë¡£²¼°ÌÁؤΥץí¥È¥³¥ë¤¬ºÆÁ÷¿®¤ò¥µ¥Ý¡¼¥È -¤·¤Æ¤¤¤ì¤Ð¡¢Í×µá¤Ï̵»ë¤µ¤ì¡¢¤³¤ì°Ê¹ß¤ÎÀܳÍ×µá¤ÎºÆÁ÷¿®¤¬À®¸ù¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù»þ¤Ë¤Ï0¤òÊÖ¤¹¡£¥¨¥é¡¼»þ¤Ë¤Ï \-1¤òÊÖ¤·¡¢ +というエラーを受け取る。下位層のプロトコルが再送信をサポート +していれば、要求は無視され、これ以降の接続要求の再送信が成功するかもしれない。 +.SH 返り値 +成功時には0を返す。エラー時には \-1を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切に設定する。 +.SH エラー .TP .B EADDRINUSE -Ê̤Υ½¥±¥Ã¥È¤¬´û¤ËƱ¤¸¥Ý¡¼¥È¤ò listen ¤·¤Æ¤¤¤ë¡£ +別のソケットが既に同じポートを listen している。 .TP .B EBADF -°ú¤­¿ô +引き数 .I sockfd -¤ÏÍ­¸ú¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ç¤Ï¤Ê¤¤¡£ +は有効なディスクリプターではない。 .TP .B ENOTSOCK -°ú¤­¿ô +引き数 .I sockfd -¤Ï¥½¥±¥Ã¥È¤Ç¤Ï¤Ê¤¤¡£ +はソケットではない。 .TP .B EOPNOTSUPP -¥½¥±¥Ã¥È¤Ï +ソケットは .BR listen () -¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë·¿¤Ç¤Ï¤Ê¤¤¡£ -.SH ½àµò +がサポートしている型ではない。 +.SH 準拠 4.4BSD, POSIX.1-2001. .BR listen () -´Ø¿ô¤Ï 4.2BSD¤Ç½é¤á¤Æ¼ÂÁõ¤µ¤ì¤¿¡£ -.SH Ãí°Õ -Àܳ¤ò¼õ¤±ÉÕ¤±¤ë¤Ë¤Ï¡¢°Ê²¼¤Î½èÍý¤¬¼Â¹Ô¤µ¤ì¤ë¡£ +関数は 4.2BSDで初めて実装された。 +.SH 注意 +接続を受け付けるには、以下の処理が実行される。 .RS 4 .IP 1. 4 .BR socket (2) -¤Ç¥½¥±¥Ã¥È¤òºîÀ®¤¹¤ë¡£ +でソケットを作成する。 .IP 2. .BR bind (2) -¤ò»È¤Ã¤Æ¥½¥±¥Ã¥È¤Ë¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤ò³ä¤êÅö¤Æ¤Æ¡¢ -¾¤Î¥½¥±¥Ã¥È¤¬¤³¤Î¥½¥±¥Ã¥È¤Ë +を使ってソケットにローカルアドレスを割り当てて、 +他のソケットがこのソケットに .BR connect (2) -¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ +できるようにする。 .IP 3. .BR listen () -¤ò»È¤Ã¤Æ¡¢ÀܳÍ×µá¤ò¼õ¤±ÉÕ¤±¤ë°Õ»Ö¤ÈÀܳÍ×µá¤òÆþ¤ì¤ë¥­¥å¡¼Ä¹¤ò»ØÄꤹ¤ë¡£ +を使って、接続要求を受け付ける意志と接続要求を入れるキュー長を指定する。 .IP 4. .BR accept (2) -¤ò»È¤Ã¤ÆÀܳ¤ò¼õ¤±ÉÕ¤±¤ë¡£ +を使って接続を受け付ける。 .RE .PP -POSIX.1-2001 ¤Ç¤Ï +POSIX.1-2001 では .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ïɬ¿Ü¤È¤µ¤ì¤Æ¤ª¤é¤º¡¢ -Linux ¤Ç¤Ï¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÏɬÍפǤϤʤ¤¡£ -¤·¤«¤·¡¢Îò»ËŪ¤Ë¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¼ÂÁõ (BSD ·Ï) ¤Ç¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬ -ɬÍפǤ¢¤ê¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤ò -¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤Î¤¬¸­ÌÀ¤Ç¤¢¤í¤¦¡£ +のインクルードは必須とされておらず、 +Linux ではこのヘッダファイルは必要ではない。 +しかし、歴史的には、いくつかの実装 (BSD ç³») でこのヘッダファイルが +必要であり、移植性が必要なアプリケーションではこのファイルを +インクルードするのが賢明であろう。 -TCP ¥½¥±¥Ã¥È¤Ç¤Î +TCP ソケットでの .I backlog -°ú¤­¿ô¤Î¿¶¤ëÉñ¤¤¤Ï Linux 2.2 ¤ÇÊѹ¹¤µ¤ì¤¿¡£ -¸½ºß¤Ç¤Ï¤³¤Î°ú¤­¿ô¤Ï¡¢ -¼õ¤±ÉÕ¤±¤é¤ì¤ë¤Î¤òÂԤäƤ¤¤ë¡¢ -.I ´°Á´¤Ë -³ÎΩ¤µ¤ì¤¿¥½¥±¥Ã¥È¤Î¥­¥å¡¼¤ÎŤµ¤ò»ØÄꤹ¤ë¡£ -°ÊÁ°¤ÏÉÔ´°Á´¤ÊÀܳÍ×µá¤Î¿ô¤Ç¤¢¤Ã¤¿¤¬¡¢¤³¤ì¤òÃÖ¤­´¹¤¨¤¿¡£ -ÉÔ´°Á´¤Ê¥½¥±¥Ã¥È¤Î¥­¥å¡¼¤ÎºÇÂçĹ¤Ï +引き数の振る舞いは Linux 2.2 で変更された。 +現在ではこの引き数は、 +受け付けられるのを待っている、 +.I 完全に +確立されたソケットのキューの長さを指定する。 +以前は不完全な接続要求の数であったが、これを置き換えた。 +不完全なソケットのキューの最大長は .I /proc/sys/net/ipv4/tcp_max_syn_backlog -¤òÍѤ¤¤ÆÀßÄê¤Ç¤­¤ë¡£ -syncookie ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -ÏÀÍýŪ¤ÊºÇÂçĹ¤Ï¸ºß¤»¤º¡¢¤³¤ÎÀßÄê¤Ï̵»ë¤µ¤ì¤ë¡£ +を用いて設定できる。 +syncookie が有効になっている場合、 +論理的な最大長は存在せず、この設定は無視される。 .I backlog -°ú¤­¿ô¤¬ +引き数が .I /proc/sys/net/core/somaxconn -¤ÎÃͤè¤ê¤âÂ礭¤±¤ì¤Ð¡¢ +の値よりも大きければ、 .I backlog -¤ÎÃͤϰÅÌۤΤ¦¤Á¤Ë¤³¤ÎÃͤËÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 128 ¤Ç¤¢¤ë¡£ -¥Ð¡¼¥¸¥ç¥ó 2.4.5 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¤³¤Î¾å¸ÂÃÍ¤Ï -¥³¡¼¥ÉËä¤á¹þ¤ß¤Î¸ÇÄêÃÍ +の値は暗黙のうちにこの値に切り詰められる。 +このファイルのデフォルト値は 128 である。 +バージョン 2.4.5 以前のカーネルでは、この上限値は +コード埋め込みの固定値 .B SOMAXCONN -¤Ç¤¢¤ê¡¢¤½¤ÎÃÍ¤Ï 128 ¤Ç¤¢¤Ã¤¿¡£ -.\" °Ê²¼¤Ï¡¢º£¤Ç¤Ï¸Å¤¤¾ðÊó¤Ç¤¢¤ë¡£(MTK, Jun 05) -.\" BSD (¤È¡¢¤¤¤¯¤Ä¤«¤Î BSD ¤«¤éÇÉÀ¸¤·¤¿¥·¥¹¥Æ¥à)¤Ç¤Ï backlog ¤ò 5 ¤Ë -.\" À©¸Â¤·¤Æ¤¤¤ë¤Î¤Ç¡¢°Ü¿¢À­¤ò¹Íθ¤·¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï -.\" ¤³¤ÎÃÍ (SOMAXCONN) ¤ËÍê¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ -.SH Îã +であり、その値は 128 であった。 +.\" 以下は、今では古い情報である。(MTK, Jun 05) +.\" BSD (と、いくつかの BSD から派生したシステム)では backlog を 5 に +.\" 制限しているので、移植性を考慮したアプリケーションでは +.\" この値 (SOMAXCONN) に頼ってはいけない。 +.SH 例 .BR bind (2) -»²¾È¡£ -.SH ´ØÏ¢¹àÌÜ +参照。 +.SH 関連項目 .BR accept (2), .BR bind (2), .BR connect (2), diff --git a/release/man2/listxattr.2 b/release/man2/listxattr.2 index 2dbf556a..61aa54d7 100644 --- a/release/man2/listxattr.2 +++ b/release/man2/listxattr.2 @@ -29,13 +29,13 @@ .\" Translated Tue Jul 8 04:17:12 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: extended attributes ³Èĥ°À­ -.\"WORD: namespace ̾Á°¶õ´Ö +.\"WORD: extended attributes 拡張属性 +.\"WORD: namespace 名前空間 .\" .TH LISTXATTR 2 2001-12-01 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -listxattr, llistxattr, flistxattr \- ³Èĥ°À­¤Î̾Á°¥ê¥¹¥È¤òÆÀ¤ë -.SH ½ñ¼° +.SH 名前 +listxattr, llistxattr, flistxattr \- 拡張属性の名前リストを得る +.SH 書式 .fam C .nf .B #include @@ -48,65 +48,65 @@ listxattr, llistxattr, flistxattr \- .BI "ssize_t flistxattr(int " fd ", char\ *" list ", size_t " size ); .fi .fam T -.SH ÀâÌÀ -³Èĥ°À­¤Ï¡¢inode (¥Õ¥¡¥¤¥ë¡¢¥Ç¥£¥ì¥¯¥È¥ê¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯Åù) ¤Ë -´ØÏ¢ÉÕ¤±¤é¤ì¤¿ +.SH 説明 +拡張属性は、inode (ファイル、ディレクトリ、シンボリックリンク等) に +関連付けられた .IR name :\c .I value -¤ÎÂФǤ¢¤ë¡£ -¤³¤ì¤é¤Ï¡¢¥·¥¹¥Æ¥à¾å¤Î¤¹¤Ù¤Æ¤Î inode ¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿Ä̾ï¤Î°À­ +の対である。 +これらは、システム上のすべての inode に関連付けられた通常の属性 .RB ( stat (2) -¤¬ÊÖ¤¹¥Ç¡¼¥¿) ¤ò³ÈÄ¥¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -³Èĥ°À­¤Î¥³¥ó¥»¥×¥È¤Ï +が返すデータ) を拡張するものである。 +拡張属性のコンセプトは .BR attr (5) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ +に書かれている。 .PP .BR listxattr () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÆâ¤Î»ØÄꤵ¤ì¤¿ +は、ファイルシステム内の指定された .I path -¤ËÂбþ¤¹¤ë³Èĥ°À­¤Î̾Á°¥ê¥¹¥È¤ò¼èÆÀ¤¹¤ë¡£ -¥ê¥¹¥È¤Ï̾Á°¤Î½¸¹ç¤Ç¡¢ NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤¬Ï¢Â³¤·¤Æʤó¤Ç¤¤¤ë¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬¥¢¥¯¥»¥¹¤¹¤ë¸¢¸Â¤Î¤Ê¤¤³Èĥ°À­¤Î̾Á°¤Ï¡¢ -¥ê¥¹¥È¤Ë´Þ¤Þ¤ì¤Ê¤¤¡£³Èĥ°À­¤Î̾Á°¤Î +に対応する拡張属性の名前リストを取得する。 +リストは名前の集合で、 NULL 終端された文字列が連続して並んでいる。 +呼び出したプロセスがアクセスする権限のない拡張属性の名前は、 +リストに含まれない。拡張属性の名前の .I list -¤ÎŤµ¤¬ÊÖ¤µ¤ì¤ë¡£ +の長さが返される。 .PP .BR llistxattr () -¤Ï +は .BR listxattr () -¤ÈƱ¤¸¤À¤¬¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¤Ë¡¢¥ê¥ó¥¯¤¬»²¾È¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë -¤Ç¤Ï¤Ê¤¯¡¢¥ê¥ó¥¯¤½¤Î¤â¤Î¤Î³Èĥ°À­¤Î̾Á°¥ê¥¹¥È¤ò¼èÆÀ¤¹¤ëÅÀ¤À¤±¤¬°Û¤Ê¤ë¡£ +と同じだが、シンボリックリンクの場合に、リンクが参照しているファイル +ではなく、リンクそのものの拡張属性の名前リストを取得する点だけが異なる。 .PP .BR flistxattr () -¤Ï +は .BR listxattr () -¤ÈƱ¤¸¤À¤¬¡¢ +と同じだが、 .I path -¤ÎÂå¤ï¤ê¤Ë +の代わりに .I fd -¤Ç»²¾È¤µ¤ì¤¿¥ª¡¼¥×¥óºÑ¤ß¥Õ¥¡¥¤¥ë¤Î¾ðÊó¤À¤±¤ò¼èÆÀ¤¹¤ëÅÀ¤¬°Û¤Ê¤ë +で参照されたオープン済みファイルの情報だけを取得する点が異なる .RI ( filedes -¤Ï +は .BR open (2) -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë)¡£ +によって返される)。 .PP -¸Ä¡¹¤Î³Èĥ°À­¤Î +個々の拡張属性の .I name -¤ÏÉáÄ̤ΠNULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ç¤¢¤ë¡£ -̾Á°¤Ë¤Ï¡¢Ì¾Á°¶õ´Ö¤òɽ¤¹ÀÜƬ¼­ (prefix) ¤¬´Þ¤Þ¤ì¤ë; -¸Ä¡¹¤Î inode ¤ËÂФ·¤Æ¡¢¸ß¤¤¤ËÆÈΩ¤Ê̾Á°¶õ´Ö¤¬Ê£¿ô¤¢¤Ã¤Æ¤â¤è¤¤¡£ +は普通の NULL 終端された文字列である。 +名前には、名前空間を表す接頭辞 (prefix) が含まれる; +個々の inode に対して、互いに独立な名前空間が複数あってもよい。 .PP .I size -¤Ë 0 ¤ò»ØÄꤷ¤Æ¶õ¤Î¥Ð¥Ã¥Õ¥¡¤ò¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÅϤ¹¤³¤È¤¬¤Ç¤­¡¢ -¤³¤Î¾ì¹ç¤Ë¤Ï³Èĥ°À­¤Î̾Á°¥ê¥¹¥È¤Î¸½ºß¤Î¥µ¥¤¥º¤¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤ÎÊýË¡¤Ï̾Á°¥ê¥¹¥È¤òÊÝ»ý¤¹¤ë¤Î¤Ë½½Ê¬¤ÊÂ礭¤µ¤Î¥Ð¥Ã¥Õ¥¡¡¦¥µ¥¤¥º¤ò -¸«ÀѤâ¤ë¤Î¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡¢ -.SS Îã -ÊÖ¤µ¤ì¤ë̾Á°¤Î +に 0 を指定して空のバッファをこれらのシステムコールに渡すことができ、 +この場合には拡張属性の名前リストの現在のサイズが返される。 +この方法は名前リストを保持するのに十分な大きさのバッファ・サイズを +見積もるのに使うことができる、 +.SS 例 +返される名前の .I list -¤Ï¡¢ NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤ÎÇÛÎó (°À­Ì¾¤Ï NULL ¥Ð¥¤¥È (\(aq\\0\(aq) -¤Ç¶èÀÚ¤é¤ì¤Æ¤¤¤ë) ¤Ç¡¢³ÆÍ×ÁǤÏÀ°Î󤵤ì¤Æ¤¤¤ëÌõ¤Ç¤Ï¤Ê¤¤¡£ -°Ê²¼¤ËÎã¤ò¼¨¤¹: +は、 NULL 終端された文字列の配列 (属性名は NULL バイト (\(aq\\0\(aq) +で区切られている) で、各要素は整列されている訳ではない。 +以下に例を示す: .fam C .RS .nf @@ -116,10 +116,10 @@ user.name1\\0system.name1\\0user.name2\\0 .RE .fam T .P -³Èĥ°À­¤ò»È¤Ã¤Æ POSIX ACL ¤ò¼ÂÁõ¤·¤Æ¤¤¤ë ext2¡¢ext3¡¢XFS ¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë -¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ÊÖ¤µ¤ì¤ë +拡張属性を使って POSIX ACL を実装している ext2、ext3、XFS のようなファイル +システムでは、返される .I list -¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¤³¤È¤À¤í¤¦: +は以下のようになることだろう: .fam C .RS .nf @@ -128,43 +128,43 @@ system.posix_acl_access\\0system.posix_acl_default\\0 .fi .RE .fam T -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢³Èĥ°À­¤Î̾Á°¥ê¥¹¥È¤ÎŤµ¤òɽ¤¹Àµ¤Î¿ô¤¬ÊÖ¤µ¤ì¤ë¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢ \-1 ¤¬ÊÖ¤µ¤ì¡¢ +.SH 返り値 +成功した場合、拡張属性の名前リストの長さを表す正の数が返される。 +失敗した場合、 \-1 が返され、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +に適切な値がセットされる。 .PP .I list -¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ +バッファの大きさ .I size -¤¬·ë²Ì¤òÊÝ»ý¤¹¤ë¤Î¤Ë½½Ê¬¤ÊÂ礭¤µ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が結果を保持するのに十分な大きさでない場合、 .I errno -¤Ë +に .B ERANGE -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .PP -³Èĥ°À­¤¬¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -¤â¤·¤¯¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ +拡張属性がそのファイルシステムでサポートされていない場合、 +もしくは無効になっている場合、 .I errno -¤Ë +に .B ENOTSUP -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .PP .BR stat (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÀâÌÀ¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ï -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤âŬÍѤµ¤ì¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë 2.4 °Ê¹ß¤Î Linux ¤ÇÍøÍѤǤ­¤ë¡£ -glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.3 °Ê¹ß¤Ç¹Ô¤ï¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ -.\" .SH Ãø¼Ô +システムコールの説明に書かれているエラーは +これらのシステムコールにも適用される。 +.SH バージョン +これらのシステムコールはカーネル 2.4 以降の Linux で利用できる。 +glibc でのサポートはバージョン 2.3 以降で行われている。 +.SH 準拠 +これらのシステムコールは Linux 独自である。 +.\" .SH 著者 .\" Andreas Gruenbacher, .\" .RI < a.gruenbacher@computer.org > -.\" ¤È the SGI XFS development team, -.\" .RI < linux-xfs@oss.sgi.com >¡£ -.\" ¥Ð¥°¥ì¥Ý¡¼¥È¤ä¥³¥á¥ó¥È¤Ï¾åµ­¤Î¥¢¥É¥ì¥¹¤Þ¤ÇÁ÷¤Ã¤Æ²¼¤µ¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +.\" と the SGI XFS development team, +.\" .RI < linux-xfs@oss.sgi.com >。 +.\" バグレポートやコメントは上記のアドレスまで送って下さい。 +.SH 関連項目 .BR getfattr (1), .BR setfattr (1), .BR getxattr (2), diff --git a/release/man2/llseek.2 b/release/man2/llseek.2 index 91110bbd..2639427e 100644 --- a/release/man2/llseek.2 +++ b/release/man2/llseek.2 @@ -33,16 +33,16 @@ .\" by Yuichi SATO .\" Updated & Modified Fri Dec 31 00:50:01 JST 2004 by Yuichi SATO .\" -.\"WORD: offset ¥ª¥Õ¥»¥Ã¥È -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ -.\"WORD: argument °ú¤­¿ô -.\"WORD: open ¥ª¡¼¥×¥ó -.\"WORD: support ¥µ¥Ý¡¼¥È +.\"WORD: offset オフセット +.\"WORD: descriptor ディスクリプター +.\"WORD: argument 引き数 +.\"WORD: open オープン +.\"WORD: support サポート .\" .TH LLSEEK 2 2007-06-01 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -_llseek \- ¥Õ¥¡¥¤¥ë¤ÎÆɤ߽ñ¤­¥ª¥Õ¥»¥Ã¥È¤Î°ÌÃÖ¤òÊѤ¨¤ë -.SH ½ñ¼° +.SH 名前 +_llseek \- ファイルの読み書きオフセットの位置を変える +.SH 書式 .nf .B #include .B #include @@ -51,50 +51,50 @@ _llseek \- .BI " unsigned long " offset_low ", loff_t *" result , .BI " unsigned int " whence ); .fi -.SH ÀâÌÀ +.SH 説明 .BR _llseek () -´Ø¿ô¤Ï¡¢¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ (descriptor) +関数は、ファイル・ディスクリプター (descriptor) .I fd -¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥ª¥Õ¥»¥Ã¥È¤Î°ÌÃÖ¤ò¡¢ÁêÂÐŪ¤Ë +に関連づけられたオープンされたファイルのオフセットの位置を、相対的に .I (offset_high<<32) | offset_low -¥Ð¥¤¥È¤À¤±Êѹ¹¤¹¤ë¡£ -´ð½à¤È¤Ê¤ë°ÌÃÖ¤òɽ¤¹ +バイトだけ変更する。 +基準となる位置を表す .I whence -¤Ë¤Ï +には .BR SEEK_SET , .BR SEEK_CUR , .B SEEK_END -¤Î¤¤¤º¤ì¤«¤ò»ØÄꤷ¡¢¤½¤ì¤¾¤ì -¥Õ¥¡¥¤¥ë¤ÎÀèƬ¡¢¥Õ¥¡¥¤¥ë¤Î¸½ºß°ÌÃÖ¡¢ -¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤òɽ¤¹¡£ -·ë²Ì¤Î¥Õ¥¡¥¤¥ë°ÌÃÖ¤ò +のいずれかを指定し、それぞれ +ファイルの先頭、ファイルの現在位置、 +ファイルの最後を表す。 +結果のファイル位置を .I result -°ú¤­¿ô¤ËÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï¡¢ +引き数に返す。 +.SH 返り値 +成功した場合は、 .BR _llseek () -¤Ï 0 ¤òÊÖ¤¹¡£ -¤½¤¦¤Ç¤Ê¤ì¤Ð \-1 ¤È¤¤¤¦Ãͤ¬Ê֤ꡢ¥¨¥é¡¼¤ò¼¨¤¹ +は 0 を返す。 +そうでなれば \-1 という値が返り、エラーを示す .I errno -¤¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が設定される。 +.SH エラー .TP .B EBADF .I fd -¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ç¤Ê¤¤¡£ +がオープンされたファイル・ディスクリプターでない。 .TP .B EFAULT -·ë²Ì¤ò¥æ¡¼¥¶¶õ´Ö¤Ë¥³¥Ô¡¼¤¹¤ë¤È¤­¤ËÌäÂ꤬¤¢¤Ã¤¿¡£ +結果をユーザ空間にコピーするときに問題があった。 .TP .B EINVAL .I whence -¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ -.SH ½àµò -¤³¤Î´Ø¿ô¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ -.SH Ãí°Õ -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +が不正である。 +.SH 準拠 +この関数は Linux 特有であり、移植性の必要なプログラムでは使用してはいけない。 +.SH 注意 +glibc はこのシステムコールに対するラッパー関数を提供していない。 .BR syscall (2) -¤ò»È¤Ã¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を使って呼び出すこと。 +.SH 関連項目 .BR lseek (2), .BR lseek64 (3) diff --git a/release/man2/lookup_dcookie.2 b/release/man2/lookup_dcookie.2 index 0bbe22f7..abb977d7 100644 --- a/release/man2/lookup_dcookie.2 +++ b/release/man2/lookup_dcookie.2 @@ -30,70 +30,70 @@ .\" Updated 2003-09-30, Akihiro MOTOKI .\" Updated 2005-02-10, Akihiro MOTOKI .\" -.\"WORD: opaque identifier ÆâÉô¼±ÊÌ»Ò -.\"WORD: Linux specific Linux Æȼ« -.\"WORD: capability ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ +.\"WORD: opaque identifier 内部識別子 +.\"WORD: Linux specific Linux 独自 +.\"WORD: capability ケーパビリティ .\" .TH LOOKUP_DCOOKIE 2 2004-06-17 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -lookup_dcookie \- ¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤Î¥Ñ¥¹Ì¾¤òÊÖ¤¹ -.SH ½ñ¼° +.SH 名前 +lookup_dcookie \- ディレクトリ・エントリのパス名を返す +.SH 書式 .BI "int lookup_dcookie(u64 " cookie ", char *" buffer ", size_t " len ); -.SH ÀâÌÀ +.SH 説明 .I cookie -ÃͤǻØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤Î¥Õ¥ë¥Ñ¥¹Ì¾¤ò¸¡º÷¤¹¤ë¡£ -cookie ¤Ï¡¢¸Ä¡¹¤Î¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤ò¶èÊ̤¹¤ëÆâÉô¼±ÊÌ»Ò (opaque -identifier) ¤Ç¤¢¤ë¡£°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Ë¡¢¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤Î -¥Õ¥ë¥Ñ¥¹Ì¾¤¬³ÊǼ¤µ¤ì¤ë¡£ +値で指定されたディレクトリ・エントリのフルパス名を検索する。 +cookie は、個々のディレクトリ・エントリを区別する内部識別子 (opaque +identifier) である。引き数で指定されたバッファに、ディレクトリ・エントリの +フルパス名が格納される。 .BR lookup_dcookie () -¤¬Àµ¾ï¤ËÃͤòÊÖ¤¹¤¿¤á¤Ë¤Ï¡¢¥«¡¼¥Í¥ë¤¬¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤Ø¤Î cookie »²¾È¤ò -ÊÝ»ý¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +が正常に値を返すためには、カーネルがディレクトリ・エントリへの cookie 参照を +保持していなければならない。 +.SH 返り値 +成功した場合、 .BR lookup_dcookie () -¤Ï¥Ð¥Ã¥Õ¥¡¤Ë¥³¥Ô¡¼¤·¤¿¥Ñ¥¹Ê¸»úÎó¤ÎŤµ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +はバッファにコピーしたパス文字列の長さを返す。 +エラーの場合は \-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +に適切な値を設定する。 +.SH エラー .TP .B EFAULT -¥Ð¥Ã¥Õ¥¡¤¬Í­¸ú¤Ç¤Ê¤«¤Ã¤¿¡£ +バッファが有効でなかった。 .TP .B EINVAL -¸¡º÷¤¬¹Ô¤ï¤ì¤¿»þ¡¢cookie ¤È¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤Î¥Þ¥Ã¥Ô¥ó¥°¤¬¥«¡¼¥Í¥ë¤Ë -ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¤«¡¢¤Þ¤¿¤Ï cookie ¤¬Í­¸ú¤Ê¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤ò -»²¾È¤·¤Æ¤¤¤Ê¤¤¡£ +検索が行われた時、cookie とディレクトリ・エントリのマッピングがカーネルに +登録されていなかったか、または cookie が有効なディレクトリ・エントリを +参照していない。 .TP .B ENAMETOOLONG -̾Á°¤¬¥Ð¥Ã¥Õ¥¡¤ËÆþ¤êÀÚ¤é¤Ê¤«¤Ã¤¿¡£ +名前がバッファに入り切らなかった。 .TP .B ENOMEM -¥«¡¼¥Í¥ë¤¬¡¢¥Ñ¥¹Ì¾¤òÊÝ»ý¤¹¤ë°ì»þ¥Ð¥Ã¥Õ¥¡ÍѤΥá¥â¥ê¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤¬ -¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +カーネルが、パス名を保持する一時バッファ用のメモリを割り当てることが +できなかった。 .TP .B EPERM -¥×¥í¥»¥¹¤¬ cookie Ãͤò¸¡º÷¤¹¤ë¤Î¤ËɬÍפʥ±¡¼¥Ñ¥Ó¥ê¥Æ¥£ +プロセスが cookie 値を検索するのに必要なケーパビリティ .B CAP_SYS_ADMIN -¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +を持っていない。 .TP .B ERANGE -¥Ð¥Ã¥Õ¥¡¤¬¡¢¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤Î¥Ñ¥¹Ì¾¤ò¼ýÍƤ¹¤ë¤Î¤Ë -½½Ê¬¤ÊÂ礭¤µ¤Ç¤Ï¤Ê¤«¤Ã¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -Linux 2.5.43 °Ê¹ß¤ÇÍøÍѤǤ­¤ë¡£ -¥¨¥é¡¼ +バッファが、ディレクトリ・エントリのパス名を収容するのに +十分な大きさではなかった。 +.SH バージョン +Linux 2.5.43 以降で利用できる。 +エラー .B ENAMETOOLONG -¤òÊÖ¤¹»ÅÍÍ¤Ï 2.5.70 ¤ÇÄɲ䵤줿¡£ -.SH ½àµò +を返す仕様は 2.5.70 で追加された。 +.SH 準拠 .BR lookup_dcookie () -¤Ï Linux Æȼ«¤Î´Ø¿ô¤Ç¤¢¤ë¡£ -.SH Ãí°Õ +は Linux 独自の関数である。 +.SH 注意 .BR lookup_dcookie () -¤ÏÆüì¤ÊÍÑÅӤ˻Ȥï¤ì¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¡¢¸½ºß¤Î¤È¤³¤í oprofile profiler ¤Ç -»È¤ï¤ì¤Æ¤¤¤ë¤À¤±¤Ç¤¢¤ë¡£ +は特殊な用途に使われるシステムコールで、現在のところ oprofile profiler で +使われているだけである。 -»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤¬ºï½ü¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢ÊÖ¤µ¤ì¤ë¥Ñ¥¹Ì¾¤ÎºÇ¸å¤Ë +指定されたディレクトリ・エントリが削除されていた場合、返されるパス名の最後に " (deleted)" -¤È¤¤¤¦Ê¸»úÎó¤¬Éղ䵤ì¤ë¤³¤È¤¬¤¢¤ë¡£ +という文字列が付加されることがある。 diff --git a/release/man2/lseek.2 b/release/man2/lseek.2 index 48388ca0..34b981ea 100644 --- a/release/man2/lseek.2 +++ b/release/man2/lseek.2 @@ -47,103 +47,103 @@ .\" Updated 2005-02-24, Akihiro MOTOKI .\" Updated 2006-03-05, Akihiro MOTOKI, catch up to LDP v2.25 .\" -.\"WORD: end-of-file ¥Õ¥¡¥¤¥ë¤Î½ªÃ¼(end-of-file) +.\"WORD: end-of-file ファイルの終端(end-of-file) .\" .TH LSEEK 2 2010-09-11 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -lseek \- ¥Õ¥¡¥¤¥ë¤ÎÆɤ߽ñ¤­¥ª¥Õ¥»¥Ã¥È¤Î°ÌÃÖ¤òÊѤ¨¤ë -.SH ½ñ¼° +.SH 名前 +lseek \- ファイルの読み書きオフセットの位置を変える +.SH 書式 .B #include .br .B #include .sp .BI "off_t lseek(int " fd ", off_t " offset ", int " whence ); -.SH ÀâÌÀ +.SH 説明 .BR lseek () -´Ø¿ô¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ (descriptor) +関数は、ファイルディスクリプタ (descriptor) .I fd -¤ËÂбþ¤¹¤ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥ª¥Õ¥»¥Ã¥È¤ò¡¢ +に対応するオープンされたファイルのオフセットを、 .IR whence -¤Ë´ð¤Å¤­ +に基づき .I offset -°ú¤­¿ô¤Î°ÌÃ֤ذʲ¼¤Î¤è¤¦¤ËÊѹ¹¤¹¤ë: +引き数の位置へ以下のように変更する: .TP .B SEEK_SET -¥ª¥Õ¥»¥Ã¥È¤Ï +オフセットは .I offset -¥Ð¥¤¥È¤ËÀßÄꤵ¤ì¤ë¡£ +バイトに設定される。 .TP .B SEEK_CUR -¥ª¥Õ¥»¥Ã¥È¤Ï¸½ºß°ÌÃÖ¤Ë +オフセットは現在位置に .I offset -¥Ð¥¤¥È¤ò­¤·¤¿°ÌÃ֤ˤʤ롣 +バイトを足した位置になる。 .TP .B SEEK_END -¥ª¥Õ¥»¥Ã¥È¤Ï¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤Ë +オフセットはファイルのサイズに .I offset -¥Ð¥¤¥È¤ò­¤·¤¿°ÌÃ֤ˤʤ롣 +バイトを足した位置になる。 .PP .BR lseek () -´Ø¿ô¤Ï¡¢¥ª¥Õ¥»¥Ã¥È¤ò¥Õ¥¡¥¤¥ë¤ÎËöÈø¤ò±Û¤¨¤¿°ÌÃÖ¤ËÀßÄê¤Ç¤­¤ë -(⤷¡¢¤³¤ì¤Ë¤è¤ê¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤¬ÊѤï¤é¤Ê¤¤)¡£ -¤â¤·¥Ç¡¼¥¿¤¬¤³¤Î¥ª¥Õ¥»¥Ã¥È°ÌÃְʹߤ˽ñ¤­¹þ¤Þ¤ì¤¿¾ì¹ç¡¢ -´Ö¤Î¶õ·ä¤ÎÉôʬ ("·ê (hole)") ¤ÎÆɤ߽Ф·¤¬¤¢¤ë¤È¡¢ -¼ÂºÝ¤Ë¤½¤³¤Ë¥Ç¡¼¥¿¤ò½ñ¤­¹þ¤Þ¤ì¤ë¤Þ¤Ç¤Ï -NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤ÎÎó¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +関数は、オフセットをファイルの末尾を越えた位置に設定できる +(但し、これによりファイルのサイズが変わらない)。 +もしデータがこのオフセット位置以降に書き込まれた場合、 +間の空隙の部分 ("ç©´ (hole)") の読み出しがあると、 +実際にそこにデータを書き込まれるまでは +NULL バイト (\(aq\\0\(aq) の列が返される。 +.SH 返り値 +成功した場合、 .BR lseek () -¤Ï·ë²Ì¤Î¥Õ¥¡¥¤¥ë°ÌÃÖ¤ò¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤«¤é¤Î¥Ð¥¤¥È¿ô¤ÇÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ÃÍ \fI(off_t)\ \-1\fP ¤¬ÊÖ¤µ¤ì¡¢ +は結果のファイル位置をファイルの先頭からのバイト数で返す。 +エラーの場合、値 \fI(off_t)\ \-1\fP が返され、 .I errno -¤Ë¥¨¥é¡¼¤¬»Ø¼¨¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーが指示される。 +.SH エラー .TP .B EBADF .I fd -¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +がオープンされたファイルディスクリプタでない。 .TP .B EINVAL .I whence -¤¬ +が .BR SEEK_SET , .BR SEEK_CUR , .B SEEK_END -¤Î¤É¤ì¤Ç¤â¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢seek ¤Î·ë²Ì¡¢¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤¬Éé¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤«¡¢ -seek ²Äǽ¤Ê¥Ç¥Ð¥¤¥¹¤ÎËöÈø¤ò±Û¤¨¤Æ¤·¤Þ¤¦¡£ -.\" ¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¥­¥ã¥é¥¯¥¿¥Ç¥Ð¥¤¥¹¤ä¥ê¥â¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ËÂФ·¤Æ -.\" Éé¤Î¥ª¥Õ¥»¥Ã¥È¤¬µö¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +のどれでもない。 +または、seek の結果、ファイル・オフセットが負になってしまうか、 +seek 可能なデバイスの末尾を越えてしまう。 +.\" システムによってはキャラクタデバイスやリモートファイルシステムに対して +.\" 負のオフセットが許されるかもしれない。 .B EOVERFLOW -.\" ¤³¤Î¾ì¹ç HP-UX 11 ¤Ï EINVAL ¤òÊÖ¤¹ (°ìÊý¡¢POSIX.1 ¤Ï EOVERFLOW ¤òÊÖ¤¹) -·ë²Ì¤Î¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤ò +.\" この場合 HP-UX 11 は EINVAL を返す (一方、POSIX.1 は EOVERFLOW を返す) +結果のファイル・オフセットを .I off_t -·¿¤Çɽ¸½¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +型で表現することができない。 .TP .B ESPIPE .I fd -¤¬¥Ñ¥¤¥×¡¢¥½¥±¥Ã¥È¡¢FIFO ¤ò»²¾È¤·¤Æ¤¤¤ë¡£ -.SH ½àµò +がパイプ、ソケット、FIFO を参照している。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -.SH Ãí°Õ -¤³¤Îʸ¾Ï¤Ç»ÈÍѤ·¤¿ +.SH 注意 +この文章で使用した .I whence -¤Ï±Ñ¸ì¤È¤·¤ÆÀµ¤·¤¯¤Ê¤¤¤¬¡¢ -Îò»ËŪÍýͳ¤Ë¤è¤ê¤½¤Î¤Þ¤Þ»È¤ï¤ì¤Æ¤¤¤ë¡£ +は英語として正しくないが、 +歴史的理由によりそのまま使われている。 -¤¤¤¯¤Ä¤«¤Î¥Ç¥Ð¥¤¥¹¤Ç¤Ï seek ¤¬¤Ç¤­¤Ê¤¤¡£ -POSIX ¤Ï¤É¤Î¥Ç¥Ð¥¤¥¹¤¬ +いくつかのデバイスでは seek ができない。 +POSIX はどのデバイスが .BR lseek () -¤ËÂбþ¤¹¤Ù¤­¤«¤Ïµ¬Äꤷ¤Æ¤¤¤Ê¤¤¡£ +に対応すべきかは規定していない。 -Linux ¤Ç¤Ï¡¢ tty ¥Ç¥Ð¥¤¥¹¤Ë +Linux では、 tty デバイスに .BR lseek () -¤ò»ÈÍѤ¹¤ë¤È -\fBESPIPE\fP ¤òÊÖ¤¹¡£ -.\" ¾¤Î¥·¥¹¥Æ¥à¤Ç¤Ï½ñ¤­¹þ¤Þ¤ì¤¿Ê¸»ú¤Î¿ô¤òÊÖ¤·¡¢ -.\" SEEK_SET ¤òÍѤ¤¤Æ¥«¥¦¥ó¥¿¤òÀßÄꤹ¤ë¡£ (½ñ¤­¹þ¤Þ¤ì¤¿Ê¸»ú¤Î¡£) +を使用すると +\fBESPIPE\fP を返す。 +.\" 他のシステムでは書き込まれた文字の数を返し、 +.\" SEEK_SET を用いてカウンタを設定する。 (書き込まれた文字の。) -¸Å¤¤¥³¡¼¥É¤òÊÑ´¹¤¹¤ë»þ¤Ï \fIwhence\fP ¤ÎÃͤò°Ê²¼¤Î¥Þ¥¯¥í¤ËÃÖ¤­´¹¤¨¤ë¤³¤È: +古いコードを変換する時は \fIwhence\fP の値を以下のマクロに置き換えること: .TS c c l l. @@ -158,16 +158,16 @@ L_XTND SEEK_END .\" .PP .\" .\"O SVr1-3 returns \fIlong\fP instead of \fIoff_t\fP, .\" .\"O (ancient) BSD returns \fIint\fP. -.\" ÊÖ¤êÃͤη¿¤Ï¡¢SVr1-3 ¤Ç¤Ï \fIoff_t\fP ¤Ç¤Ï¤Ê¤¯ \fIlong\fP ¤Ç¤¢¤ê¡¢ -.\" (¸Å¤¤) BSD ¤Ç¤Ï \fIint\fP ¤Ç¤¢¤ë¡£ +.\" 返り値の型は、SVr1-3 では \fIoff_t\fP ではなく \fIlong\fP であり、 +.\" (古い) BSD では \fIint\fP である。 .PP .BR dup (2) -¤ä +や .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢¸½ºß¤Î¥Õ¥¡¥¤¥ë°ÌÃ֥ݥ¤¥ó¥¿ -(current file position pointer) ¤ò¶¦Í­¤·¤Æ¤¤¤ë¤Î¤Ç¡¢ -¤³¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¤Ç°ÜÆ°¤ò¹Ô¤¦¤È¶¥¹ç¾õÂÖ¤ò°ú¤­µ¯¤³¤¹²ÄǽÀ­¤¬¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +で作成されたファイルディスクリプタは、現在のファイル位置ポインタ +(current file position pointer) を共有しているので、 +このようなファイルで移動を行うと競合状態を引き起こす可能性がある。 +.SH 関連項目 .BR dup (2), .BR fork (2), .BR open (2), diff --git a/release/man2/madvise.2 b/release/man2/madvise.2 index eb12d21f..8896c2a4 100644 --- a/release/man2/madvise.2 +++ b/release/man2/madvise.2 @@ -35,93 +35,93 @@ .\" Updated 2007-01-08, Akihiro MOTOKI , LDP v2.43 .\" .TH MADVISE 2 2008-04-22 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -madvise \- ¥á¥â¥êÍøÍѤ˴ؤ¹¤ë¥¢¥É¥Ð¥¤¥¹¤òÍ¿¤¨¤ë -.SH ½ñ¼° +.SH 名前 +madvise \- メモリ利用に関するアドバイスを与える +.SH 書式 .B #include .sp .BI "int madvise(void *" addr ", size_t " length ", int " advice ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR madvise (): _BSD_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR madvise () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¥¢¥É¥ì¥¹ +システムコールは、アドレス .I addr -¤«¤é¤Ï¤¸¤Þ¤ë +からはじまる .I length -¥Ð¥¤¥È¤Î¥á¥â¥ê¥Ö¥í¥Ã¥¯¤Î¥Ú¡¼¥¸¥ó¥°Æþ½ÐÎϤò¤É¤¦°·¤¨¤ÐÎɤ¤¤«¡¢ -¥«¡¼¥Í¥ë¤Ë¥¢¥É¥Ð¥¤¥¹¤¹¤ë¡£ -¤³¤ì¤òÍѤ¤¤ë¤È¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é¥«¡¼¥Í¥ë¤Ë¡¢ -¥Þ¥Ã¥×¤µ¤ì¤¿¥á¥â¥ê¤ä¶¦Í­¥á¥â¥ê¤ò¤É¤Î¤è¤¦¤Ë°·¤Ã¤Æ¤Û¤·¤¤¤«ÅÁ¤¨¤ë¤³¤È¤¬¤Ç¤­¡¢ -¥«¡¼¥Í¥ë¤Ï¤½¤ì¤Ë±þ¤¸¤ÆÀèÆɤߤ䥭¥ã¥Ã¥·¥å¤Ê¤É¤ÎŬÀڤʼêË¡¤òÁªÂò¤Ç¤­¤ë¡£ -¤³¤Î¥³¡¼¥ë¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÆ°ºî¤½¤Î¤â¤Î¤Ë¤Ï±Æ¶Á¤·¤Ê¤¤ +バイトのメモリブロックのページング入出力をどう扱えば良いか、 +カーネルにアドバイスする。 +これを用いると、 +アプリケーションからカーネルに、 +マップされたメモリや共有メモリをどのように扱ってほしいか伝えることができ、 +カーネルはそれに応じて先読みやキャッシュなどの適切な手法を選択できる。 +このコールはアプリケーションの動作そのものには影響しない .RB ( MADV_DONTNEED -¤Î¾ì¹ç¤ÏÊÌ) ¤¬¡¢ -À­Ç½¤Ë¤Ï±Æ¶Á¤·¤¦¤ë¡£ -¤Ê¤ª¤³¤Î¥¢¥É¥Ð¥¤¥¹¤ò¼õ¤±Æþ¤ì¤ë¤«¤É¤¦¤«¤Ï¥«¡¼¥Í¥ë¤ËǤ¤µ¤ì¤ë¡£ +の場合は別) が、 +性能には影響しうる。 +なおこのアドバイスを受け入れるかどうかはカーネルに任される。 .LP -¥¢¥É¥Ð¥¤¥¹¤Ï°ú¤­¿ô +アドバイスは引き数 .I advice -¤Ë¤è¤Ã¤ÆÍ¿¤¨¤ë¡£°Ê²¼¤Î¤¤¤º¤ì¤«¤ò»ØÄê¤Ç¤­¤ë¡£ +によって与える。以下のいずれかを指定できる。 .TP .B MADV_NORMAL -ÆÃÊ̤ʰ·¤¤¤Ï¹Ô¤ï¤Ê¤¤¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£ +特別な扱いは行わない。これがデフォルトである。 .TP .B MADV_RANDOM -¥Ú¡¼¥¸»²¾È¤Ï¥é¥ó¥À¥à¤Ê½ç½ø¤Ç¹Ô¤ï¤ì¤½¤¦¤À¡£ -(¤·¤¿¤¬¤Ã¤Æ¡¢ÀèÆɤߤϤ¢¤Þ¤ê¸ú²Ì¤¬¤Ê¤µ¤½¤¦¤À¡£) +ページ参照はランダムな順序で行われそうだ。 +(したがって、先読みはあまり効果がなさそうだ。) .TP .B MADV_SEQUENTIAL -¥Ú¡¼¥¸»²¾È¤Ï¥·¡¼¥±¥ó¥·¥ã¥ë¤Ê½ç½ø¤Ç¹Ô¤ï¤ì¤½¤¦¤À¡£ -(¤·¤¿¤¬¤Ã¤ÆÍ¿¤¨¤¿ÈϰϤΥڡ¼¥¸¤ÏÀѶËŪ¤ËÀèÆɤߤ·¤Æ¤ª¤¯¤ÈÎɤ¤¤À¤í¤¦¡£ -¤Þ¤¿¥¢¥¯¥»¥¹¤¬½ª¤ï¤Ã¤¿¤é®¤ä¤«¤Ë²òÊü¤·¤ÆÎɤ¤¡£) +ページ参照はシーケンシャルな順序で行われそうだ。 +(したがって与えた範囲のページは積極的に先読みしておくと良いだろう。 +またアクセスが終わったら速やかに解放して良い。) .TP .B MADV_WILLNEED -¶á¤¤¾­Íè¤Ë¥¢¥¯¥»¥¹¤µ¤ì¤½¤¦¤À¡£ -(¤·¤¿¤¬¤Ã¤Æ¤³¤ì¤é¤Î¥Ú¡¼¥¸¤òº£¤Î¤¦¤Á¤ËÀèÆɤߤ·¤Æ¤ª¤¯¤È¤¤¤¤¤À¤í¤¦¡£) +近い将来にアクセスされそうだ。 +(したがってこれらのページを今のうちに先読みしておくといいだろう。) .TP .B MADV_DONTNEED -¤·¤Ð¤é¤¯¥¢¥¯¥»¥¹¤Ï¤Ê¤µ¤½¤¦¤À¡£ -(¸½»þÅÀ¤Ç¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÏÍ¿¤¨¤¿ÈϰϤνèÍý¤ò½ª¤¨¤Æ¤¤¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¥«¡¼¥Í¥ë¤Ï¤³¤ì¤Ë´ØÏ¢¤¹¤ë¥ê¥½¡¼¥¹¤ò²òÊü¤·¤ÆÎɤ¤¡£) -¤³¤ì°Ê¹ß¤³¤ÎÈϰϤΥڡ¼¥¸¤Ø¤Î¥¢¥¯¥»¥¹¤¬¤¢¤ë¤È¡¢ -À®¸ù¤Ï¤¹¤ë¤¬¡¢¥á¥â¥ê¤ÎÆâÍƤò¥Þ¥Ã¥×¸µ¤Î¥Õ¥¡¥¤¥ë¤«¤é¥í¡¼¥É¤·Ä¾¤¹¤³¤È¤Ë¤Ê¤ë +しばらくアクセスはなさそうだ。 +(現時点でアプリケーションは与えた範囲の処理を終えている。 +したがってカーネルはこれに関連するリソースを解放して良い。) +これ以降この範囲のページへのアクセスがあると、 +成功はするが、メモリの内容をマップ元のファイルからロードし直すことになる .RB ( mmap (2) -¤ò¸«¤è) ¤«¡¢ -¤Þ¤¿¤Ï¸µ¥Õ¥¡¥¤¥ë¤¬¤Ê¤¤¥Þ¥Ã¥×¥Ú¡¼¥¸¤Ç¤Ï -¥¢¥¯¥»¥¹¤¬¤¢¤Ã¤¿¤È¤­¤Ë 0 Ëä¤á¤¬¹Ô¤ï¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ +を見よ) か、 +または元ファイルがないマップページでは +アクセスがあったときに 0 埋めが行われることになる。 .TP -.BR MADV_REMOVE " (Linux 2.6.16 °Ê¹ß)" -»ØÄꤵ¤ì¤¿ÈϰϤΥڡ¼¥¸¤È´ØÏ¢¤¹¤ë¥Ð¥Ã¥­¥ó¥°¥¹¥È¥¢¤ò²òÊü¤¹¤ë¡£ -¸½ºß¤Î¤È¤³¤í¡¢ +.BR MADV_REMOVE " (Linux 2.6.16 以降)" +指定された範囲のページと関連するバッキングストアを解放する。 +現在のところ、 .\" 2.6.18-rc5 -shmfs/tmpfs ¤À¤±¤¬¤³¤ì¤ËÂбþ¤·¤Æ¤¤¤ë¡£ -¾¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Ï +shmfs/tmpfs だけがこれに対応している。 +他のファイルシステムでは .B ENOSYS -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .\" Databases want to use this feature to drop a section of their .\" bufferpool (shared memory segments) - without writing back to .\" disk/swap space. This feature is also useful for supporting .\" hot-plug memory on UML. .TP -.BR MADV_DONTFORK " (Linux 2.6.16 °Ê¹ß)" +.BR MADV_DONTFORK " (Linux 2.6.16 以降)" .\" See http://lwn.net/Articles/171941/ .BR fork (2) -¤¬¹Ô¤ï¤ì¤¿¸å¡¢»ØÄꤵ¤ì¤¿ÈϰϤΥڡ¼¥¸¤ò»Ò¥×¥í¥»¥¹¤¬ÍøÍѤǤ­¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£ -¤³¤Îµ¡Ç½¤Ï¡¢½ñ¤­¹þ¤ß»þ¥³¥Ô¡¼ (copy-on-write) Êý¼°¤Ç¡¢ +が行われた後、指定された範囲のページを子プロセスが利用できないようにする。 +この機能は、書き込み時コピー (copy-on-write) 方式で、 .BR fork (2) -¤Î¸å¤Ç¿Æ¥×¥í¥»¥¹¤¬¥Ú¡¼¥¸¤Ë½ñ¤­¹þ¤ß¤ò¹Ô¤Ã¤¿¾ì¹ç¤Ë -¥Ú¡¼¥¸¤ÎʪÍý°ÌÃÖ¤¬ÊѲ½¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤Î¤ËÍ­¸ú¤Ç¤¢¤ë -(¥Ú¡¼¥¸¤ÎºÆÇÛÃ֤ϥϡ¼¥É¥¦¥§¥¢¤¬¤½¤Î¥Ú¡¼¥¸¤Ë DMA žÁ÷¤ò¹Ô¤¦¤è¤¦¤Ê¾ì¹ç¤Ë -ÌäÂê¤òµ¯¤³¤¹¤³¤È¤¬¤¢¤ë)¡£ +の後で親プロセスがページに書き込みを行った場合に +ページの物理位置が変化しないようにするのに有効である +(ページの再配置はハードウェアがそのページに DMA 転送を行うような場合に +問題を起こすことがある)。 .\" [PATCH] madvise MADV_DONTFORK/MADV_DOFORK .\" Currently, copy-on-write may change the physical address of .\" a page even if the user requested that the page is pinned in @@ -144,93 +144,93 @@ shmfs/tmpfs .\" SEE ALSO: http://lwn.net/Articles/171941/ .\" "Tweaks to madvise() and posix_fadvise()", 14 Feb 2006 .TP -.BR MADV_DOFORK " (Linux 2.6.16 °Ê¹ß)" +.BR MADV_DOFORK " (Linux 2.6.16 以降)" .B MADV_DONTFORK -¤Î±Æ¶Á¤ò¼è¤ê¾Ã¤·¡¢¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤ËÌ᤹¡£ -¤Ä¤Þ¤ê¡¢ +の影響を取り消し、デフォルトの動作に戻す。 +つまり、 .BR fork (2) -¤ÎÁ°¸å¤Ç¥Þ¥Ã¥Ô¥ó¥°¤Ï·Ñ¾µ¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -.SH ÊÖ¤êÃÍ +の前後でマッピングは継承されるようになる。 +.SH 返り値 .BR madvise () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬µ¯¤³¤ë¤È \-1 ¤òÊÖ¤·¡¢ +は成功すると 0 を返す。 +エラーが起こると \-1 を返し、 .I errno -¤òŬÀÚ¤ÊÃͤËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切な値に設定する。 +.SH エラー .TP .B EAGAIN -²¿¤é¤«¤Î¥«¡¼¥Í¥ë¥ê¥½¡¼¥¹¤¬°ì»þŪ¤ËÍøÍѤǤ­¤Ê¤«¤Ã¤¿¡£ +何らかのカーネルリソースが一時的に利用できなかった。 .TP .B EBADF -»ØÄꤷ¤¿¥Þ¥Ã¥×¤Ï¸ºß¤¹¤ë¤¬¡¢¥Õ¥¡¥¤¥ë¤Ç¤Ï¤Ê¤¤¤È¤³¤í¤ò¥Þ¥Ã¥×¤·¤Æ¤¤¤ë¡£ +指定したマップは存在するが、ファイルではないところをマップしている。 .TP .B EINVAL .\" .I len .\" is zero, .I len -¤ÎÃͤ¬Éé¡¢ +の値が負、 .I addr -¤¬¥Ú¡¼¥¸¶­³¦¤Ç¤Ê¤¤¡¢ +がページ境界でない、 .I advice -¤¬Àµ¤·¤¤ÃͤǤʤ¤¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¥í¥Ã¥¯¤µ¤ì¤¿¥Ú¡¼¥¸¤ä¶¦Í­¥Ú¡¼¥¸¤ò +が正しい値でない、 +アプリケーションがロックされたページや共有ページを .RB ( MADV_DONTNEED -¤Ç) ²òÊü¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¡¢¤Ê¤É¡£ +で) 解放しようとしている、など。 .TP .B EIO .RB ( MADV_WILLNEED -¤Î¾ì¹ç) ¤³¤ÎÈϰϤΥڡ¼¥¸¥ó¥°¤ò¹Ô¤¦¤È¡¢ -¥×¥í¥»¥¹¤Î RSS (resident set size) ¤ÎºÇÂçÃͤò±Û¤¨¤Æ¤·¤Þ¤¦¡£ -.\"nakano RSS ¤ÏÌõ¸ì¤¬¤¢¤ê¤Þ¤·¤¿¤Ã¤±? +の場合) この範囲のページングを行うと、 +プロセスの RSS (resident set size) の最大値を越えてしまう。 +.\"nakano RSS は訳語がありましたっけ? .TP .B ENOMEM .RB ( MADV_WILLNEED -¤Î¾ì¹ç) ¥á¥â¥ê¤¬Â­¤ê¤º¡¢¥Ú¡¼¥¸¥ó¥°¤Ë¼ºÇÔ¤·¤¿¡£ +の場合) メモリが足りず、ページングに失敗した。 .TP .B ENOMEM -»ØÄꤷ¤¿ÈϰϤΥ¢¥É¥ì¥¹¤¬¡¢¸½ºß¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤¢¤ë¤¤¤Ï¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ÎÆâÉô¤Ë¤Ê¤¤¡£ -.SH ½àµò +指定した範囲のアドレスが、現在マップされていない。 +あるいはプロセスのアドレス空間の内部にない。 +.SH 準拠 POSIX.1b. -POSIX.1-2001 ¤Ç¤Ï¡¢ +POSIX.1-2001 では、 .BR posix_madvise (3) .\" FIXME . Write a posix_fadvise(3) page. -¤ò +を .B POSIX_MADV_NORMAL -¤Ê¤É¤ÎÄê¿ô¤È¤È¤â¤Ëµ­½Ò¤·¤Æ¤¤¤¿ -(¤½¤ì¤¾¤ì¤Î¿¶¤ëÉñ¤¤¤Ï¤³¤³¤Ç½Ò¤Ù¤¿¤â¤Î¤Ë¶á¤¤)¡£ -¥Õ¥¡¥¤¥ë¥¢¥¯¥»¥¹¤ËÂФ·¤Æ¤â +などの定数とともに記述していた +(それぞれの振る舞いはここで述べたものに近い)。 +ファイルアクセスに対しても .BR posix_fadvise (2) -¤È¤¤¤¦Îà»÷¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +という類似の関数が存在する。 .BR MADV_REMOVE , .BR MADV_DONTFORK , .B MADV_DOFORK -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -.SS "Linux ¤Ç¤ÎÃí°Õ" -¸½ºß¤Î Linux ¤Î¼ÂÁõ (2.4.0) ¤Ç¤Ï¡¢ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¥¢¥É¥Ð¥¤¥¹¤È¤¤¤¦¤è¤ê¤ÏÌ¿Îá¤È¸«¤Æ¤¤¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¤³¤Î¥¢¥É¥Ð¥¤¥¹¤ËÂФ·¤ÆÄ̾ï¹Ô¤ï¤ì¤ëÆ°ºî¤¬ÉÔ²Äǽ¤Ê¾ì¹ç¤Ï¡¢ -¥¨¥é¡¼¤òÊÖ¤¹¤³¤È¤¬¤¢¤ë (¾åµ­¤Î ¥¨¥é¡¼ ¤Îµ­½Ò¤ò»²¾È)¡£ -¤³¤Î¿¶Éñ¤¤¤Ïɸ½à¤È¤Ï°Û¤Ê¤ë¡£ +は Linux 固有である。 +.SH 注意 +.SS "Linux での注意" +現在の Linux の実装 (2.4.0) では、 +このシステムコールをアドバイスというよりは命令と見ている。 +したがってこのアドバイスに対して通常行われる動作が不可能な場合は、 +エラーを返すことがある (上記の エラー の記述を参照)。 +この振舞いは標準とは異なる。 .LP -Linux ¤Î¼ÂÁõ¤Ç¤Ï +Linux の実装では .I addr -¤Î¥¢¥É¥ì¥¹¤Ï¥Ú¡¼¥¸¶­³¦¤ÎÃͤǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤Þ¤¿ +のアドレスはページ境界の値でなければならない。また .I length -¤Ï 0 ¤Ç¤¢¤Ã¤Æ¤â¹½¤ï¤Ê¤¤¡£ -¤Þ¤¿ Linux ÈǤΠ+は 0 であっても構わない。 +また Linux 版の .BR madvise () -¤Ç¤Ï¡¢»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹ÈϰϤ˥ޥåפµ¤ì¤Æ¤¤¤Ê¤¤Éôʬ¤¬¤¢¤ë¤È¡¢ -¤³¤ì¤é¤ò̵»ë¤·¤Æ»Ä¤ê¤ÎÉôʬ¤Ë¥¢¥É¥Ð¥¤¥¹¤òŬÍѤ¹¤ë -(¤·¤«¤·¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ·¤Æ¤Ï¤Á¤ã¤ó¤È +では、指定されたアドレス範囲にマップされていない部分があると、 +これらを無視して残りの部分にアドバイスを適用する +(しかしシステムコールに対してはちゃんと .B ENOMEM -¤òÊÖ¤¹)¡£ -.\" .SH Îò»Ë +を返す)。 +.\" .SH 歴史 .\" .BR madvise () -.\" ´Ø¿ô¤Ï 4.4BSD ¤ÇºÇ½é¤ËÅо줷¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +.\" 関数は 4.4BSD で最初に登場した。 +.SH 関連項目 .BR getrlimit (2), .BR mincore (2), .BR mmap (2), diff --git a/release/man2/mbind.2 b/release/man2/mbind.2 index 066c603d..482e4431 100644 --- a/release/man2/mbind.2 +++ b/release/man2/mbind.2 @@ -29,9 +29,9 @@ .\" Updated 2008-09-19, Akihiro MOTOKI, LDP v3.08 .\" .TH MBIND 2 2008-08-15 Linux "Linux Programmer's Manual" -.SH ̾Á° -mbind \- ¥á¥â¥êÎΰè¤ËÂФ·¤Æ¥á¥â¥ê¥Ý¥ê¥·¡¼¤òÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +mbind \- メモリ領域に対してメモリポリシーを設定する +.SH 書式 .nf .B "#include " .sp @@ -39,403 +39,403 @@ mbind \- .BI " unsigned long *" nodemask ", unsigned long " maxnode , .BI " unsigned " flags ); .sp -\fI\-lnuma\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lnuma\fP でリンクする。 .fi -.SH ÀâÌÀ +.SH 説明 .BR mbind () -¤Ï¡¢ +は、 .I addr -¤«¤é»Ï¤Þ¤ëŤµ +から始まる長さ .I len -¥Ð¥¤¥È¤ÎÈϰϤΥá¥â¥ê¤Ë NUMA ¥á¥â¥ê¥Ý¥ê¥·¡¼¤òÀßÄꤹ¤ë¡£ -NUMA ¥Ý¥ê¥·¡¼¤Ï¥Ý¥ê¥·¡¼¥â¡¼¥É¤È 0 ¸Ä°Ê¾å¤Î¥Î¡¼¥É¤«¤é¹½À®¤µ¤ì¤ë¡£ -¥á¥â¥ê¥Ý¥ê¥·¡¼¤Ï¤É¤Î¥Î¡¼¥É¤«¤é¥á¥â¥ê¤ò³ä¤êÅö¤Æ¤ë¤«¤ò·èÄꤹ¤ë¡£ +バイトの範囲のメモリに NUMA メモリポリシーを設定する。 +NUMA ポリシーはポリシーモードと 0 個以上のノードから構成される。 +メモリポリシーはどのノードからメモリを割り当てるかを決定する。 .I addr -¤È +と .I len -¤Ç»ØÄꤵ¤ì¤¿¥á¥â¥êÈϰϤˡ¢ -¥á¥â¥ê¤Î¡Ö̵̾¡×Îΰè \(em +で指定されたメモリ範囲に、 +メモリの「無名」領域 \(em .B MAP_ANONYMOUS -ÉÕ¤­¤Î +付きの .BR mmap (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤ÆºîÀ®¤µ¤ì¤¿¥á¥â¥êÎΰè \(em ¤ä +システムコールを使って作成されたメモリ領域 \(em や .B MAP_PRIVATE -ÉÕ¤­¤Î +付きの .BR mmap (2) -¤ò»È¤Ã¤Æ¥Þ¥Ã¥×¤µ¤ì¤¿¥á¥â¥ê¥Þ¥Ã¥×¡¦¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¥Ú¡¼¥¸¤¬»ØÄꤵ¤ì¤¿¥Ý¥ê¥·¡¼¤Ë´ð¤Å¤¤¤Æ³ä¤êÅö¤Æ¤é¤ì¤ë¤Î¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó -¤¬¤½¤Î¥Ú¡¼¥¸¤Ø¤Î½ñ¤­¹þ¤ß (¥Ç¡¼¥¿¤Î³ÊǼ) ¤ò¹Ô¤Ã¤¿»þ¤À¤±¤Ç¤¢¤ë¡£ -̵̾Îΰè¤Î¾ì¹ç¡¢ºÇ½é¤ÎÆɤ߽Ф·¥¢¥¯¥»¥¹¤ÎºÝ¤Ë¤Ï -¥«¡¼¥Í¥ëÆâ¤ÎÁ´¥Ç¡¼¥¿¤¬ 0 ¤Ç¤¢¤ë¶¦Í­¥Ú¡¼¥¸¤¬»ÈÍѤµ¤ì¤ë¡£ +を使ってマップされたメモリマップ・ファイルが含まれている場合、 +ページが指定されたポリシーに基づいて割り当てられるのは、アプリケーション +がそのページへの書き込み (データの格納) を行った時だけである。 +無名領域の場合、最初の読み出しアクセスの際には +カーネル内の全データが 0 である共有ページが使用される。 .B MAP_PRIVATE -¤Ç¥Þ¥Ã¥×¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¡¢ºÇ½é¤ÎÆɤ߽Ф·¥¢¥¯¥»¥¹¤¬¤¢¤ë¤È¡¢ -¥Ú¡¼¥¸³ä¤êÅö¤Æ¤¬È¯À¸¤¹¤ë¤­¤Ã¤«¤±¤È¤Ê¤Ã¤¿¥×¥í¥»¥¹¤Î¥Ç¥Õ¥©¥ë¥È¥Ý¥ê¥·¡¼ -¤Ë¤·¤¿¤¬¤Ã¤Æ¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤¬¹Ô¤ï¤ì¤ë¡£ -¥Ú¡¼¥¸³ä¤êÅö¤Æ¤Î¤­¤Ã¤«¤±¤È¤Ê¤Ã¤¿¥×¥í¥»¥¹¤Ï¡¢ +でマップされたファイルの場合、最初の読み出しアクセスがあると、 +ページ割り当てが発生するきっかけとなったプロセスのデフォルトポリシー +にしたがってページの割り当てが行われる。 +ページ割り当てのきっかけとなったプロセスは、 .BR mbind () -¤ò¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ÈƱ¤¸¤È¤Ï¸Â¤é¤Ê¤¤¡£ +を呼び出したプロセスと同じとは限らない。 -»ØÄꤵ¤ì¤¿¥á¥â¥êÈÏ°ÏÆâ¤Ë¤¢¤ë +指定されたメモリ範囲内にある .B MAP_SHARED -¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ç¤Ï»ØÄꤵ¤ì¤¿¥Ý¥ê¥·¡¼¤Ï̵»ë¤µ¤ì¡¢ -¥Ú¡¼¥¸³ä¤êÅö¤Æ¤¬È¯À¸¤¹¤ë¤­¤Ã¤«¤±¤È¤Ê¤Ã¤¿¥×¥í¥»¥¹¤Î¥Ç¥Õ¥©¥ë¥È¥Ý¥ê¥·¡¼¤Ë -¤·¤¿¤¬¤Ã¤Æ¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤¬¹Ô¤ï¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ -·«¤êÊÖ¤·¤Ë¤Ê¤ë¤¬¡¢¥Ú¡¼¥¸³ä¤êÅö¤Æ¤Î¤­¤Ã¤«¤±¤È¤Ê¤Ã¤¿¥×¥í¥»¥¹¤Ï¡¢ +のマッピングでは指定されたポリシーは無視され、 +ページ割り当てが発生するきっかけとなったプロセスのデフォルトポリシーに +したがってページの割り当てが行われることになる。 +繰り返しになるが、ページ割り当てのきっかけとなったプロセスは、 .BR mbind () -¤ò¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ÈƱ¤¸¤È¤Ï¸Â¤é¤Ê¤¤¡£ +を呼び出したプロセスと同じとは限らない。 -»ØÄꤵ¤ì¤¿¥á¥â¥êÈϰϤˡ¢ +指定されたメモリ範囲に、 .BR shmget (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤ÆºîÀ®¤µ¤ì¤¿¤ê¡¢ +システムコールを使って作成されたり、 .BR shmat (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤ÆÉղà (attach) ¤µ¤ì¤¿¤ê¤·¤¿¶¦Í­¥á¥â¥êÎΰ褬 -´Þ¤Þ¤ì¤ë¾ì¹ç¡¢ÌµÌ¾¥á¥â¥êÎΰè¤ä¶¦Í­¥á¥â¥êÎΰè¤ËÂФ¹¤ë¥Ú¡¼¥¸³ä¤êÅö¤Æ¤Ï¡¢ -¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤Ø¥Ý¥ê¥·¡¼¤ÎÀßÄê¤ò¹Ô¤Ã¤¿¥×¥í¥»¥¹¤¬¥Ú¡¼¥¸³ä¤êÅö¤Æ -¤Î¤­¤Ã¤«¤±¤È¤Ê¤Ã¤¿¤«¤Ë´Ø¤ï¤é¤º¡¢»ØÄꤵ¤ì¤¿¥Ý¥ê¥·¡¼¤Ë¤·¤¿¤¬¤Ã¤Æ³ä¤êÅö¤Æ -¤¬¹Ô¤ï¤ì¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢¶¦Í­¥á¥â¥êÎΰ褬 +システムコールを使って付加 (attach) されたりした共有メモリ領域が +含まれる場合、無名メモリ領域や共有メモリ領域に対するページ割り当ては、 +共有メモリセグメントへポリシーの設定を行ったプロセスがページ割り当て +のきっかけとなったかに関わらず、指定されたポリシーにしたがって割り当て +が行われる。 +しかしながら、共有メモリ領域が .B SHM_HUGETLB -¥Õ¥é¥°¤ò»ØÄꤷ¤ÆºîÀ®¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢¥Ò¥å¡¼¥¸¥Ú¡¼¥¸ (huge page) ¤Î³ä¤êÅö¤Æ¤¬ -»ØÄꤵ¤ì¤¿¥Ý¥ê¥·¡¼¤Ë¤·¤¿¤¬¤Ã¤Æ¹Ô¤ï¤ì¤ë¤Î¤Ï¡¢¤½¤ÎÎΰè¤ËÂФ·¤Æ +フラグを指定して作成された場合には、ヒュージページ (huge page) の割り当てが +指定されたポリシーにしたがって行われるのは、その領域に対して .BR mbind () -¤ò¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬¥Ú¡¼¥¸³ä¤êÅö¤Æ¤Î¤­¤Ã¤«¤±¤È¤Ê¤Ã¤¿¾ì¹ç¤Î¤ß¤Ç¤¢¤ë¡£ +を呼び出したプロセスがページ割り当てのきっかけとなった場合のみである。 -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +デフォルトでは、 .BR mbind () -¤Ï¿·µ¬¤Î¥á¥â¥ê³ä¤êÅö¤Æ¤ËÂФ·¤Æ¤Î¤ß¸ú²Ì¤ò»ý¤Ä¡£ -¥Ý¥ê¥·¡¼¤¬ÀßÄꤵ¤ì¤ëÁ°¤Ë¤¹¤Ç¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ëÈÏ°ÏÆâ¤Î¥Ú¡¼¥¸¤ËÂФ·¤Æ¤Ï¡¢ -¥Ý¥ê¥·¡¼¤Ï±Æ¶Á¤·¤Ê¤¤¡£ -¤³¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¡¢°Ê²¼¤ÇÀâÌÀ¤¹¤ë¥Õ¥é¥° +は新規のメモリ割り当てに対してのみ効果を持つ。 +ポリシーが設定される前にすでに使用されている範囲内のページに対しては、 +ポリシーは影響しない。 +このデフォルトの動作は、以下で説明するフラグ .B MPOL_MF_MOVE -¤ä +や .B MPOL_MF_MOVE_ALL -¤Ë¤è¤ê¾å½ñ¤­¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +により上書きされる可能性がある。 .I mode -°ú¤­¿ô¤Ë¤Ï¡¢ +引き数には、 .BR MPOL_DEFAULT , .BR MPOL_BIND , .BR MPOL_INTERLEAVE , .B MPOL_PREFERRED -¤Î¤¤¤º¤ì¤«°ì¤Ä¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +のいずれか一つを指定しなければならない。 .B MPOL_DEFAULT -°Ê³°¤Î¥Ý¥ê¥·¡¼¥â¡¼¥É¤Î¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Ï +以外のポリシーモードの場合、呼び出し元は .I nodemask -°ú¤­¿ô¤Ç¤½¤Î¥Ý¥ê¥·¡¼¥â¡¼¥É¤òŬÍѤ¹¤ë¥Î¡¼¥É¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¡£ +引き数でそのポリシーモードを適用するノードを指定する必要がある。 .I mode -°ú¤­¿ô¤Ë¤Ï¡¢ÄÉ²Ã¤Ç -.I "¥â¡¼¥É¥Õ¥é¥°" -¤ò´Þ¤á¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë -.I "¥â¡¼¥É¥Õ¥é¥°" -¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +引き数には、追加で +.I "モードフラグ" +を含めることもできる。 +サポートされている +.I "モードフラグ" +は以下の通りである。 .TP -.BR MPOL_F_STATIC_NODES " (Linux-2.6.26 °Ê¹ß)" -¶õ¤Ç¤Ê¤¤ +.BR MPOL_F_STATIC_NODES " (Linux-2.6.26 以降)" +空でない .I nodemask -¤Ï¡¢ÊªÍý¥Î¡¼¥É ID ¤Ç¤¢¤ë¡£ -Linux ¤Ç¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤¬°Û¤Ê¤ë CPU ½¸¹ç¥³¥ó¥Æ¥­¥¹¥È (cpuset context) -¤Ë°ÜÆ°¤·¤¿¾ì¹ç¤Ç¤â¡¢¤½¤Î¥×¥í¥»¥¹¤Î¸½ºß¤Î CPU ½¸¹ç¥³¥ó¥Æ¥­¥¹¥È¤Ç -µö²Ä¤µ¤ì¤Æ¤¤¤ë¥Î¡¼¥É½¸¹ç¤¬ÊѲ½¤·¤¿¾ì¹ç¤Ç¤â¡¢ +は、物理ノード ID である。 +Linux では、そのプロセスが異なる CPU 集合コンテキスト (cpuset context) +に移動した場合でも、そのプロセスの現在の CPU 集合コンテキストで +許可されているノード集合が変化した場合でも、 .I nodemask -¤ò¥Þ¥Ã¥Ô¥ó¥°¤·Ä¾¤¹¤³¤È¤Ï¤Ê¤¤¡£ +をマッピングし直すことはない。 .TP -.BR MPOL_F_RELATIVE_NODES " (Linux-2.6.26 °Ê¹ß)" -¶õ¤Ç¤Ê¤¤ +.BR MPOL_F_RELATIVE_NODES " (Linux-2.6.26 以降)" +空でない .I nodemask -¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤Î¸½ºß¤Î CPU ½¸¹ç¤Çµö²Ä¤µ¤ì¤Æ¤¤¤ë¥Î¡¼¥É ID ½¸¹ç -¤Ë¤ª¤±¤ëÁêÂÐŪ¤Ê¥Î¡¼¥É ID ¤Ç¤¢¤ë¡£ +は、そのプロセスの現在の CPU 集合で許可されているノード ID 集合 +における相対的なノード ID である。 .PP .I nodemask -¤Ï¡¢ºÇÂç¤Ç +は、最大で .I maxnode -¥Ó¥Ã¥È¤«¤é¹½À®¤µ¤ì¤ë¥Î¡¼¥É¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤ò»Ø¤¹¡£ -¥Ó¥Ã¥È¥Þ¥¹¥¯¤ÎÂ礭¤µ¤Ï¡¢Ä¾¶á¤Î +ビットから構成されるノードのビットマスクを指す。 +ビットマスクの大きさは、直近の .I sizeof(unsigned long) -¤ÎÇÜ¿ô¤ËÀÚ¤ê¾å¤²¤é¤ì¤ë¤¬¡¢¥«¡¼¥Í¥ë¤¬»ÈÍѤ¹¤ë¤Î¤Ï +の倍数に切り上げられるが、カーネルが使用するのは .I maxnode -¸Ä¤Þ¤Ç¤Î¥Ó¥Ã¥È¤À¤±¤Ç¤¢¤ë¡£ -NULL ÃͤΠ+個までのビットだけである。 +NULL 値の .I nodemask -¤â¤·¤¯¤ÏÃͤ¬ 0 ¤Î +もしくは値が 0 の .I maxnode -¤Ï¥Î¡¼¥É¤Î¶õ½¸¹ç¤òɽ¤¹¡£ +はノードの空集合を表す。 .I maxnode -¤ÎÃͤ¬ 0 ¤Î¾ì¹ç¡¢ +の値が 0 の場合、 .I nodemask -°ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ +引き数は無視される。 .I nodemask -¤¬É¬¿Ü¤Î¾ìÌ̤Ǥϡ¢ +が必須の場面では、 .I nodemask -¤Ë¡¢¥ª¥ó¥é¥¤¥ó¤Ç¡¢¤½¤Î¥×¥í¥»¥¹¤Î¸½ºß¤Î CPU ½¸¹ç¥³¥ó¥Æ¥­¥¹¥È¤Ç -µö²Ä¤µ¤ì¤Æ¤ª¤ê +に、オンラインで、そのプロセスの現在の CPU 集合コンテキストで +許可されており .RB ( MPOL_F_STATIC_NODES -¥â¡¼¥É¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç)¡¢¥á¥â¥ê¤¬¤¢¤ë¥Î¡¼¥É¤¬ -¾¯¤Ê¤¯¤È¤â°ì¤ÄÆþ¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +モードフラグが指定されていない場合)、メモリがあるノードが +少なくとも一つ入っていなければならない。 -¥â¡¼¥É +モード .B MPOL_DEFAULT -¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¤Ê¤¤¥×¥í¥»¥¹¤Î¥á¥â¥ê¥Ý¥ê¥·¡¼¤òºï½ü¤·¡¢ -¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤ËÌ᤹¤³¤È¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¤¢¤ë¡£ +はデフォルトではないプロセスのメモリポリシーを削除し、 +デフォルトの動作に戻すことを指定するものである。 .BR mbind () -·Ðͳ¤Ç¡¢¤¢¤ë¥á¥â¥êÎΰè¤ËÂФ·¤Æ +経由で、あるメモリ領域に対して .B MPOL_DEFAULT -¤¬Å¬ÍѤµ¤ì¤¿¾ì¹ç¡¢¥×¥í¥»¥¹¤Î¥Ç¥Õ¥©¥ë¥È¥Ý¥ê¥·¡¼¤ò»ÈÍѤ¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -¥×¥í¥»¥¹¤Î¥Ç¥Õ¥©¥ë¥È¥Ý¥ê¥·¡¼¤Ï¡¢ +が適用された場合、プロセスのデフォルトポリシーを使用することを意味する。 +プロセスのデフォルトポリシーは、 .BR set_mempolicy (2) -¤ÇÊѹ¹¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¥×¥í¥»¥¹¤Î¥Ý¥ê¥·¡¼¤Î¥â¡¼¥É¤â +で変更されているかもしれない。 +プロセスのポリシーのモードも .B MPOL_DEFAULT -¤Î¾ì¹ç¡¢¥·¥¹¥Æ¥àÁ´ÂΤΥǥե©¥ë¥È¥Ý¥ê¥·¡¼¤¬»ÈÍѤµ¤ì¤ë¡£ -¥·¥¹¥Æ¥àÁ´ÂΤΥǥե©¥ë¥È¥Ý¥ê¥·¡¼¤Ç¤Ï¡¢³ä¤êÅö¤Æ¤Î¤­¤Ã¤«¤±¤È¤Ê¤Ã¤¿ -CPU ¤Î¥Î¡¼¥É¤«¤é¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤ò¹Ô¤¦¡£ +の場合、システム全体のデフォルトポリシーが使用される。 +システム全体のデフォルトポリシーでは、割り当てのきっかけとなった +CPU のノードからページの割り当てを行う。 .B MPOL_DEFAULT -¤Ç¤Ï¡¢°ú¤­¿ô +では、引き数 .I nodemask -¤È +と .I maxnode -¤Ë¥Î¡¼¥É¤Î¶õ½¸¹ç¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +にノードの空集合を指定しなければならない。 .B MPOL_BIND -¤Ï¸·¤·¤¤¥Ý¥ê¥·¡¼¤Ç¡¢¥á¥â¥ê³ä¤êÅö¤Æ¤Ï +は厳しいポリシーで、メモリ割り当ては .I nodemask -¤Ë»ØÄꤵ¤ì¤¿¥Î¡¼¥É¤Ë¸ÂÄꤵ¤ì¤ë¡£ -¾¤Î¥Î¡¼¥É¤Ø¤Î³ä¤êÅö¤Æ¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ +に指定されたノードに限定される。 +他のノードへの割り当ては行われない。 .I nodemask -¤Ë 2 ¸Ä°Ê¾å¤Î¥Î¡¼¥É¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤Ï -¥Î¡¼¥É ID ¤¬¿ô»ú¤È¤·¤ÆºÇ¾®¤Î¥Î¡¼¥É¤«¤é³«»Ï¤µ¤ì¡¢ -¤½¤Î¥Î¡¼¥É¤Ë¶õ¤­¥á¥â¥ê¤¬¤Ê¤¯¤Ê¤ë¤Þ¤Ç¤½¤Î¥Î¡¼¥É¤«¤é -¥Ú¡¼¥¸³ä¤êÅö¤Æ¤¬¹Ô¤ï¤ì¤ë¡£¤½¤Î¥Î¡¼¥É¤Ë¶õ¤­¥á¥â¥ê¤¬¤Ê¤¯¤Ê¤Ã¤¿¤é¡¢ -.\"motoki: the next highest ¤Ï the next lowest ¤Î´Ö°ã¤¤¡© -¼¡¤Ë¾®¤µ¤Ê¥Î¡¼¥É ID ¤ò»ý¤Ä¥Î¡¼¥É¤«¤é¥Ú¡¼¥¸³ä¤êÅö¤Æ¤¬¹Ô¤ï¤ì¤ë¡£ -¤³¤ì¤ò¡¢ +に 2 個以上のノードが指定された場合、ページの割り当ては +ノード ID が数字として最小のノードから開始され、 +そのノードに空きメモリがなくなるまでそのノードから +ページ割り当てが行われる。そのノードに空きメモリがなくなったら、 +.\"motoki: the next highest は the next lowest の間違い? +次に小さなノード ID を持つノードからページ割り当てが行われる。 +これを、 .I nodemask -¤Ç»ØÄꤵ¤ì¤¿Á´¤Æ¤Î¥Î¡¼¥É¤Ç¶õ¤­¥á¥â¥ê¤¬¤Ê¤¯¤Ê¤ë¤Þ¤Ç·«¤êÊÖ¤¹¡£ +で指定された全てのノードで空きメモリがなくなるまで繰り返す。 .I nodemask -¤Ç»ØÄꤵ¤ì¤¿°Ê³°¤Î¥Î¡¼¥É¤«¤é¤Ï¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ +で指定された以外のノードからはページの割り当ては行われない。 .B MPOL_INTERLEAVE -¤Ï¡¢¥á¥â¥ê³ä¤êÅö¤Æ¤¬ +は、メモリ割り当てが .I nodemask -¤Ë»ØÄꤵ¤ì¤¿¥Î¡¼¥É´Ö¤Ç¸ò¸ß¤Ë¹Ô¤ï¤ì¤ë¤³¤È¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î¥Ý¥ê¥·¡¼¤Ç¤Ï¡¢Ê£¿ô¤Î¥Î¡¼¥É¤Ë¥Ú¡¼¥¸¤ò¹­¤²¤ÆÇÛÃÖ¤·¡¢¤³¤ì¤é¤Î¥Ú¡¼¥¸¤Ø¤Î -¥á¥â¥ê¥¢¥¯¥»¥¹¤òʬ»¶¤¹¤ë¤³¤È¤Ç¡¢ÃÙ±ä¤Ç¤Ï¤Ê¤¯¡¢ÂÓ°è¤òºÇŬ²½¤¹¤ë¡£ -¸ú²Ì¤òÆÀ¤ë¤Ë¤Ï¡¢¥á¥â¥êÎΰè¤ò¤¢¤ëÄøÅÙÂ礭¤¯¤¹¤Ù¤­¤Ç¤¢¤ê¡¢ -¥á¥â¥ê¥¢¥¯¥»¥¹¤Î¥Ñ¥¿¡¼¥ó¤¬¤«¤Ê¤ê¶Ñ°ì¤Ê¾ì¹ç¤Ç¤â -¾¯¤Ê¤¯¤È¤â 1MB °Ê¾å¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¤³¤Î¥â¡¼¥É¤Ç¤â¡¢°ì¤Ä¤Î¥Ú¡¼¥¸¤Ø¤Î¥¢¥¯¥»¥¹¤Ë´Ø¤·¤Æ¤Ï -°ì¤Ä¤Î¥Î¡¼¥É¤Î¥á¥â¥êÂӰ褬¾å¸Â¤È¤Ê¤ë¤³¤È¤ÏÊѤï¤ê¤Ê¤¤¡£ +に指定されたノード間で交互に行われることを指定するものである。 +このポリシーでは、複数のノードにページを広げて配置し、これらのページへの +メモリアクセスを分散することで、遅延ではなく、帯域を最適化する。 +効果を得るには、メモリ領域をある程度大きくすべきであり、 +メモリアクセスのパターンがかなり均一な場合でも +少なくとも 1MB 以上にすべきである。 +このモードでも、一つのページへのアクセスに関しては +一つのノードのメモリ帯域が上限となることは変わりない。 .B MPOL_PREFERRED -¤Ï¡¢³ä¤êÅö¤Æ»þ¤ËÍ¥À褵¤ì¤ë¥Î¡¼¥É¤òÀßÄꤹ¤ë¡£ -¥«¡¼¥Í¥ë¤Ï¤Þ¤ºÍ¥Àè¥Î¡¼¥É¤Ë¥Ú¡¼¥¸³ä¤êÅö¤Æ¤ò¹Ô¤ª¤¦¤È¤·¡¢ -Í¥Àè¥Î¡¼¥É¤Ë¶õ¤­¥á¥â¥ê¤¬¾¯¤Ê¤¤¾ì¹ç¤Ë¾¤Î¥Î¡¼¥É¤Ë³ä¤êÅö¤Æ¤ò¹Ô¤¦¡£ +は、割り当て時に優先されるノードを設定する。 +カーネルはまず優先ノードにページ割り当てを行おうとし、 +優先ノードに空きメモリが少ない場合に他のノードに割り当てを行う。 .I nodemask -¤ËÊ£¿ô¤Î¥Î¡¼¥É ID ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢ +に複数のノード ID が指定された場合は、 .I nodemask -Æâ¤ÎºÇ½é¤Î¥Î¡¼¥É¤¬Í¥Àè¥Î¡¼¥É¤È¤·¤ÆÁªÂò¤µ¤ì¤ë¡£ -°ú¤­¿ô +内の最初のノードが優先ノードとして選択される。 +引き数 .IR nodemask , .I maxnode -¤Ç¶õ½¸¹ç¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢³ä¤êÅö¤Æ¤Î¤­¤Ã¤«¤±¤È¤Ê¤Ã¤¿ CPU ¤Î¥Î¡¼¥É¤Ë -¥á¥â¥ê³ä¤êÅö¤Æ¤¬¹Ô¤ï¤ì¤ë¡£ +で空集合が指定された場合は、割り当てのきっかけとなった CPU のノードに +メモリ割り当てが行われる。 .BR mbind (2) -¤Ç¡¢¤¢¤ë¥á¥â¥êÎΰè¤ËÂФ·¤Æ¡Ö¥í¡¼¥«¥ë¤«¤é¤Î³ä¤êÅö¤Æ (local allocation)¡×¤ò -»ØÄꤹ¤ëÊýË¡¤Ï¤³¤ì¤·¤«¤Ê¤¤¡£ +で、あるメモリ領域に対して「ローカルからの割り当て (local allocation)」を +指定する方法はこれしかない。 .I flags -¤Ë +に .B MPOL_MF_STRICT -¤¬ -»ØÄꤵ¤ì¡¢ +が +指定され、 .I mode -¤¬ +が .B MPOL_DEFAULT -¤Ç¤Ê¤¤¾ì¹ç¡¢ -»ØÄꤵ¤ì¤¿¥Ý¥ê¥·¡¼¤Ë½¾¤Ã¤Æ¤¤¤Ê¤¤¥á¥â¥êÎΰè¤Ë¥Ú¡¼¥¸¤¬Â¸ºß¤¹¤ë¤È¡¢ +でない場合、 +指定されたポリシーに従っていないメモリ領域にページが存在すると、 .BR mbind () -¤Ï¥¨¥é¡¼ +はエラー .B EIO -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .\" According to the kernel code, the following is not true .\" --Lee Schermerhorn .\" .\"O In 2.6.16 or later the kernel will also try to move pages .\" .\"O to the requested node with this flag. -.\" 2.6.16 °Ê¹ß¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¤³¤Î¥Õ¥é¥°¤ÇÍ׵ᤵ¤ì¤¿¥Î¡¼¥É¤Ë -.\" ¥Ú¡¼¥¸¤ò°ÜÆ°¤·¤è¤¦¤È¤¹¤ë¡£ +.\" 2.6.16 以降のカーネルでは、このフラグで要求されたノードに +.\" ページを移動しようとする。 .I flags -¤Ë +に .B MPOL_MF_MOVE -¤¬»ØÄꤵ¤ì¤ë¤È¡¢¥«¡¼¥Í¥ë¤Ï¤½¤Î¥á¥â¥êÎΰèÆâ¤Î´û¸¤ÎÁ´¤Æ¤Î¥Ú¡¼¥¸¤ò°ÜÆ°¤·¡¢ -»ØÄꤵ¤ì¤¿¥Ý¥ê¥·¡¼¤Ë½¾¤¦¤è¤¦¤Ë¤·¤è¤¦¤È¤¹¤ë¡£ -¾¤Î¥×¥í¥»¥¹¤È¶¦Í­¤µ¤ì¤Æ¤¤¤ë¥Ú¡¼¥¸¤Ï°ÜÆ°¤µ¤ì¤Ê¤¤¡£ +が指定されると、カーネルはそのメモリ領域内の既存の全てのページを移動し、 +指定されたポリシーに従うようにしようとする。 +他のプロセスと共有されているページは移動されない。 .B MPOL_MF_STRICT -¤â»ØÄꤵ¤ì¤¿¾ì¹ç¡¢°ÜÆ°¤Ç¤­¤Ê¤«¤Ã¤¿¥Ú¡¼¥¸¤¬¤¢¤ë¤È¡¢ +も指定された場合、移動できなかったページがあると、 .BR mbind () -¤Ï¥¨¥é¡¼ +はエラー .B EIO -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .I flags -¤Ë +に .B MPOL_MF_MOVE_ALL -¤¬»ØÄꤵ¤ì¤ë¤È¡¢¥«¡¼¥Í¥ë¤Ï¤½¤Î¥á¥â¥êÎΰèÆâ¤Î´û¸¤ÎÁ´¤Æ¤Î¥Ú¡¼¥¸¤ò¡¢ -¾¤Î¥×¥í¥»¥¹¤¬¥Ú¡¼¥¸¤ò»ÈÍѤ·¤Æ¤¤¤ë¤«¤É¤¦¤«¤Ë´Ø¤ï¤é¤º°ÜÆ°¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»ÈÍѤ¹¤ë¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÏÆø¢ +が指定されると、カーネルはそのメモリ領域内の既存の全てのページを、 +他のプロセスがページを使用しているかどうかに関わらず移動する。 +このフラグを使用するには、呼び出し元のプロセスは特権 .RB ( CAP_SYS_NICE ) -¤ò»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を持っていなければならない。 .B MPOL_MF_STRICT -¤â»ØÄꤵ¤ì¤¿¾ì¹ç¡¢°ÜÆ°¤Ç¤­¤Ê¤«¤Ã¤¿¥Ú¡¼¥¸¤¬¤¢¤ë¤È¡¢ +も指定された場合、移動できなかったページがあると、 .BR mbind () -¤Ï¥¨¥é¡¼ +はエラー .B EIO -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .\" --------------------------------------------------------------- -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +.SH 返り値 +成功すると、 .BR mbind () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .\" --------------------------------------------------------------- -.SH ¥¨¥é¡¼ +.SH エラー .\" I think I got all of the error returns. --Lee Schermerhorn .TP .B EFAULT .I nodemask -¤È +と .I maxnode -¤Ç»ØÄꤵ¤ì¤¿¥á¥â¥êÎΰè¤Î°ìÉô¤Þ¤¿¤ÏÁ´Éô¤¬¡¢ -¸Æ¤Ó½Ð¤·¸µ¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ -¤â¤·¤¯¤Ï»ØÄꤵ¤ì¤¿¥á¥â¥êÎΰè¤Ë¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤Ê¤¤Éôʬ (unmapped hole) -¤¬¤¢¤Ã¤¿¡¢ +で指定されたメモリ領域の一部または全部が、 +呼び出し元がアクセス可能なアドレス空間外を指している。 +もしくは指定されたメモリ領域にマップされていない部分 (unmapped hole) +があった、 .TP .B EINVAL .I flags -¤ä +や .I mode -¤ËÉÔÀµ¤ÊÃͤ¬»ØÄꤵ¤ì¤¿¡£ +に不正な値が指定された。 .I addr + len -¤¬ +が .I addr -¤è¤ê¾®¤µ¤¤¡£ +より小さい。 .I addr -¤¬¥·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¡£ -¤Þ¤¿¤Ï +がシステムのページサイズの倍数になっていない。 +または .I mode -¤¬ +が .B MPOL_DEFAULT -¤Ç +で .I nodemask -¤Ë¶õ¤Ç¤Ê¤¤½¸¹ç¤¬»ØÄꤵ¤ì¤¿¡£ +に空でない集合が指定された。 .I mode -¤¬ +が .B MPOL_BIND -¤« +か .B MPOL_INTERLEAVE -¤Ç +で .I nodemask -¤¬¶õ¤Ç¤¢¤Ã¤¿¡£ +が空であった。 .I maxnode -¤¬¥«¡¼¥Í¥ë¤ËŬÍѤµ¤ì¤¿¾å¸Â¤òĶ¤¨¤Æ¤¤¤ë¡£ +がカーネルに適用された上限を超えている。 .\" As at 2.6.23, this limit is "a page worth of bits", e.g., .\" 8 * 4096 bits, assuming a 4kB page size. .I nodemask -¤Ë¡¢¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ëºÇÂç¥Î¡¼¥É ID ¤è¤êÂ礭¤¤¥Î¡¼¥É¤¬»ØÄꤵ¤ì¤¿¡£ +に、サポートされている最大ノード ID より大きいノードが指定された。 .I nodemask -¤Ë¡¢¥ª¥ó¥é¥¤¥ó¤Ç¡¢¤«¤Ä¤½¤Î¥×¥í¥»¥¹¤Î¸½ºß¤Î CPU ½¸¹ç¥³¥ó¥Æ¥­¥¹¥È¤Ç -µö²Ä¤µ¤ì¤Æ¤¤¤ë¥Î¡¼¥É¤¬°ì¤Ä¤â´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ -¥á¥â¥ê¤ò´Þ¤à¥Î¡¼¥É¤¬°ì¤Ä¤â»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +に、オンラインで、かつそのプロセスの現在の CPU 集合コンテキストで +許可されているノードが一つも含まれていないか、 +メモリを含むノードが一つも指定されていない。 .I mode -°ú¤­¿ô¤Ë +引き数に .B MPOL_F_STATIC_NODES -¤È +と .B MPOL_F_RELATIVE_NODES -¤ÎξÊý¤¬»ØÄꤵ¤ì¤¿¡£ +の両方が指定された。 .TP .B EIO .B MPOL_MF_STRICT -¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¤³¤Î¥Ý¥ê¥·¡¼¤Ë½¾¤Ã¤Æ¤¤¤Ê¤¤¥Î¡¼¥É¤Ë -¤¹¤Ç¤Ë¥Ú¡¼¥¸¤¬Â¸ºß¤·¤Æ¤¤¤¿¡£ -¤â¤·¤¯¤Ï +が指定されたが、このポリシーに従っていないノードに +すでにページが存在していた。 +もしくは .B MPOL_MF_MOVE -¤« +か .B MPOL_MF_MOVE_ALL -¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¥«¡¼¥Í¥ë¤¬»ØÄꤵ¤ì¤¿ÎΰèÆâ¤Î´û¸¤ÎÁ´¤Æ¤Î¥Ú¡¼¥¸¤ò -°ÜÆ°¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +が指定されたが、カーネルが指定された領域内の既存の全てのページを +移動することができなかった。 .TP .B ENOMEM -ÍøÍѲÄǽ¤Ê¥«¡¼¥Í¥ë¥á¥â¥ê¤¬½½Ê¬¤Ê¤«¤Ã¤¿¡£ +利用可能なカーネルメモリが十分なかった。 .TP .B EPERM .I flags -°ú¤­¿ô¤Ë +引き数に .B MPOL_MF_MOVE_ALL -¥Õ¥é¥°¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤¬¡¢¸Æ¤Ó½Ð¤·¸µ¤¬ +フラグが含まれているが、呼び出し元が .B CAP_SYS_NICE -Æø¢¤ò»ý¤¿¤Ê¤¤¡£ +特権を持たない。 .\" --------------------------------------------------------------- -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .BR mbind () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥Ð¡¼¥¸¥ç¥ó 2.6.7 ¤Ç Linux ¥«¡¼¥Í¥ë¤ËÄɲ䵤줿¡£ -.SH ½àµò -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -¥é¥¤¥Ö¥é¥ê¤Ë¤è¤ë¥µ¥Ý¡¼¥È¤Ë¤Ä¤¤¤Æ¤Ï +システムコールはバージョン 2.6.7 で Linux カーネルに追加された。 +.SH 準拠 +このシステムコールは Linux 独自である。 +.SH 注意 +ライブラリによるサポートについては .BR numa (7) -¤ò»²¾È¡£ +を参照。 -NUMA ¥Ý¥ê¥·¡¼¤Ï¡¢ +NUMA ポリシーは、 .B MAP_SHARED -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¥Þ¥Ã¥×¤µ¤ì¤¿¥á¥â¥ê¥Þ¥Ã¥×¡¦¥Õ¥¡¥¤¥ë¤ÎÎΰè¤Ç¤Ï -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +フラグが指定されてマップされたメモリマップ・ファイルの領域では +サポートされていない。 .B MPOL_DEFAULT -¥â¡¼¥É¤Ï¡¢ +モードは、 .BR mbind () -¤È +と .BR set_mempolicy (2) -¤Ç°Û¤Ê¤ë¸ú²Ì¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ +で異なる効果を持つことができる。 .BR set_mempolicy (2) -¤Ç +で .B MPOL_DEFAULT -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¤½¤Î¥×¥í¥»¥¹¤Î¥Ý¥ê¥·¡¼¤Ï¥·¥¹¥Æ¥à¤Î -¥Ç¥Õ¥©¥ë¥È¥Ý¥ê¥·¡¼¡¢¤¹¤Ê¤ï¤Á¥í¡¼¥«¥ë¤«¤é¤Î³ä¤êÅö¤Æ¡¢¤ËÌá¤ë¡£ +が指定された場合、そのプロセスのポリシーはシステムの +デフォルトポリシー、すなわちローカルからの割り当て、に戻る。 .BR mbind () -¤ò»È¤Ã¤Æ¥á¥â¥ê¤Î¤¢¤ëÎΰè¤Ë +を使ってメモリのある領域に .B MPOL_DEFAULT -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¤½¤ÎÈϰϤËÂФ·¤Æ¤½¤ì°Ê¹ß¤Ë¹Ô¤ï¤ì¤ë¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤Ç¤Ï¡¢ +が指定された場合、その範囲に対してそれ以降に行われるページの割り当てでは、 .BR set_mempolicy (2) -¤ÇÀßÄꤷ¤¿¤Î¤ÈƱ¤¸¤è¤¦¤Ë¡¢¤½¤Î¥×¥í¥»¥¹¤Î¥Ý¥ê¥·¡¼¤¬Å¬ÍѤµ¤ì¤ë¡£ -.\"0motoki: possibly nondefault policy ¤Ï default policy ¤Î´Ö°ã¤¤¡© -¤³¤ì¤Ë¤è¤ê¡¢ÆÃÄê¤Î¥á¥â¥êÎΰè¤Ë¤Ä¤¤¤Æ¤À¤±ÌÀ¼¨Åª¤Ê¥Ý¥ê¥·¡¼¤òºï½ü¤·¡¢ -¥Ç¥Õ¥©¥ë¥È¤Î¥Ý¥ê¥·¡¼¤Ë¡ÖÌ᤹¡×¤³¤È¤¬¤Ç¤­¤ë¡£ -¤¢¤ë¥á¥â¥êÎΰè¤ËÂФ·¤Æ¡Ö¥í¡¼¥«¥ë¤«¤é¤Î³ä¤êÅö¤Æ¡×¤òÌÀ¼¨Åª¤ËÀßÄꤹ¤ë¤Ë¤Ï¡¢ +で設定したのと同じように、そのプロセスのポリシーが適用される。 +.\"0motoki: possibly nondefault policy は default policy の間違い? +これにより、特定のメモリ領域についてだけ明示的なポリシーを削除し、 +デフォルトのポリシーに「戻す」ことができる。 +あるメモリ領域に対して「ローカルからの割り当て」を明示的に設定するには、 .I mode -¤Ë +に .B MPOL_PREFERRED -¤ò»ØÄꤷ¡¢ +を指定し、 .I nodemask -¤Ë¶õ½¸¹ç¤Î¥Î¡¼¥É¤ò»ØÄꤹ¤ì¤Ð¤è¤¤¡£ -¤³¤ÎÊýË¡¤Ï +に空集合のノードを指定すればよい。 +この方法は .BR set_mempolicy (2) -¤Ç¤âÄÌÍѤ¹¤ë¡£ +でも通用する。 -2.6.16 ¤Ç¥Ò¥å¡¼¥¸¥Ú¡¼¥¸¡¦¥Ý¥ê¥·¡¼¤Ø¤ÎÂбþ¤¬Äɲ䵤줿¡£ -¥¤¥ó¥¿¡¼¥ê¡¼¥Ö¡¦¥Ý¥ê¥·¡¼¤¬¥Ò¥å¡¼¥¸¥Ú¡¼¥¸¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ç¸ú²Ì¤ò»ý¤Ä¤Ë¤Ï¡¢ -¥Ý¥ê¥·¡¼¤¬Å¬ÍѤµ¤ì¤ë¥á¥â¥ê¤¬¿ô½½¥á¥¬¥Ð¥¤¥È°Ê¾å¤Ç¤¢¤ëɬÍפ¬¤¢¤ë¡£ +2.6.16 でヒュージページ・ポリシーへの対応が追加された。 +インターリーブ・ポリシーがヒュージページのマッピングで効果を持つには、 +ポリシーが適用されるメモリが数十メガバイト以上である必要がある。 .B MPOL_MF_STRICT -¤Ï¥Ò¥å¡¼¥¸¥Ú¡¼¥¸¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ç¤Ï̵»ë¤µ¤ì¤ë¡£ +はヒュージページのマッピングでは無視される。 .B MPOL_MF_MOVE -¤È +と .B MPOL_MF_MOVE_ALL -¤Ï Linux 2.6.16 °Ê¹ß¤Ç¤Î¤ßÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +は Linux 2.6.16 以降でのみ利用可能である。 +.SH 関連項目 .BR get_mempolicy (2), .BR getcpu (2), .BR mmap (2), diff --git a/release/man2/mincore.2 b/release/man2/mincore.2 index 2ce9b2cd..16fab208 100644 --- a/release/man2/mincore.2 +++ b/release/man2/mincore.2 @@ -41,12 +41,12 @@ .\" Updated & Modified Fri Apr 22 02:35:03 JST 2005 by Yuichi SATO .\" Updated 2007-05-04, Akihiro MOTOKI , LDP v2.44 .\" -.\"WORD: least significant bit ºÇ²¼°Ì¥Ó¥Ã¥È +.\"WORD: least significant bit 最下位ビット .\" .TH MINCORE 2 2008-04-22 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -mincore \- ¥Ú¡¼¥¸¤¬¥á¥â¥êÆâ¤Ë¤¢¤ë¤«¤É¤¦¤«¤òȽÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +mincore \- ページがメモリ内にあるかどうかを判定する +.SH 書式 .B #include .br .B #include @@ -54,126 +54,126 @@ mincore \- .BI "int mincore(void *" addr ", size_t " length ", unsigned char *" vec ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR mincore (): _BSD_SOURCE || _SVID_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR mincore () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î²¾ÁÛ¥á¥â¥ê¤Î¥Ú¡¼¥¸¤¬¥³¥¢ (RAM) Æâ¤Ë¸ºß¤·¡¢ -¥Ú¡¼¥¸»²¾È»þ¤Ë¥Ç¥£¥¹¥¯¥¢¥¯¥»¥¹ (¥Ú¡¼¥¸¡¦¥Õ¥©¡¼¥ë¥È) ¤òµ¯¤³¤µ¤Ê¤¤¤« -¤É¤¦¤«¤ò¼¨¤¹¥Ù¥¯¥È¥ë¤òÊÖ¤¹¡£¥«¡¼¥Í¥ë¤Ï¡¢¥¢¥É¥ì¥¹ +は、呼び出し元プロセスの仮想メモリのページがコア (RAM) 内に存在し、 +ページ参照時にディスクアクセス (ページ・フォールト) を起こさないか +どうかを示すベクトルを返す。カーネルは、アドレス .I addr -¤«¤é»Ï¤Þ¤ë +から始まる .I length -¥Ð¥¤¥È¤ÎÈϰϤΥڡ¼¥¸¤Ë´Ø¤¹¤ë¸ºß¾ðÊó¤òÊÖ¤¹¡£ +バイトの範囲のページに関する存在情報を返す。 .I addr -°ú¤­¿ô¤Ï¥·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数はシステムのページサイズの倍数でなければならない。 .I length -°ú¤­¿ô¤Ï¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤Ç¤¢¤ëɬÍפϤʤ¤¤¬¡¢ -¥Ú¡¼¥¸Á´ÂΤ˴ؤ¹¤ë¸ºß¾ðÊó¤¬ÊÖ¤µ¤ì¤ë¤Î¤Ç¡¢»ö¼Â¾å +引き数はページサイズの倍数である必要はないが、 +ページ全体に関する存在情報が返されるので、事実上 .I length -¤Ï¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤ËÀÚ¤ê¾å¤²¤é¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ -¥Ú¡¼¥¸¥µ¥¤¥º +はページサイズの倍数に切り上げられることになる。 +ページサイズ .RB ( PAGE_SIZE ) -¤Ï +は .I sysconf(_SC_PAGESIZE) -¤ò»È¤Ã¤ÆÆþ¼ê¤Ç¤­¤ë¡£ +を使って入手できる。 .I vec -°ú¤­¿ô¤Ï¡¢¾¯¤Ê¤¯¤È¤â +引き数は、少なくとも .I "(length+PAGE_SIZE\-1) / PAGE_SIZE" -¥Ð¥¤¥È¤¬³ÊǼ¤Ç¤­¤ëÇÛÎó¤ò»Ø¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤Î¸Æ¤Ó½Ð¤·¤¬ÊÖ¤ë¤È¤­¡¢ -³Æ¥Ð¥¤¥È¤ÎºÇ²¼°Ì¥Ó¥Ã¥È¤Ï¡¢Âбþ¤¹¤ë¥Ú¡¼¥¸¤¬¥á¥â¥êÆâ¤Ë¤½¤Î¤È¤­Â¸ºß¤¹¤ì¤Ð -¥»¥Ã¥È¤µ¤ì¡¢¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï¥¯¥ê¥¢¤µ¤ì¤ë -(³Æ¥Ð¥¤¥È¤Î¤½¤Î¾¤Î¥Ó¥Ã¥È¤Ï̤ÄêµÁ¤Ç¤¢¤ê¡¢¤³¤ì¤é¤Î¥Ó¥Ã¥È¤Ï¾­Íè¤Î»ÈÍÑ¤Ë -¤½¤Ê¤¨¤ÆͽÌ󤵤ì¤Æ¤¤¤ë)¡£ -¤â¤Á¤í¤ó¡¢ +バイトが格納できる配列を指していなければならない。 +この呼び出しが返るとき、 +各バイトの最下位ビットは、対応するページがメモリ内にそのとき存在すれば +セットされ、そうでない場合はクリアされる +(各バイトのその他のビットは未定義であり、これらのビットは将来の使用に +そなえて予約されている)。 +もちろん、 .I vec -¤ÇÊÖ¤µ¤ì¤¿¾ðÊó¤Ï¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¤Ç¤·¤«¤Ê¤¤¡£ -¥á¥â¥êÆâ¤Ë¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ú¡¼¥¸¤Ï¡¢Ç¤°Õ¤Î»þÅÀ¤Ç¥á¥â¥êÆâ¤Ë -Æþ¤Ã¤¿¤ê½Ð¤¿¤ê¤Ç¤­¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤¬ÊÖ¤ë¤È¤­¤Ë¤Ï +で返された情報はスナップショットでしかない。 +メモリ内にロックされていないページは、任意の時点でメモリ内に +入ったり出たりでき、この呼び出しが返るときには .I vec -¤ÎÆâÍƤϤ¹¤Ç¤Ë¸Å¤¯¤Ê¤Ã¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +の内容はすでに古くなっているかもしれない。 +.SH 返り値 +成功した場合、 .BR mincore () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¤Æ¡¢ +は 0 を返す。 +エラーの場合は \-1 を返して、 .I errno -¤òŬÀÚ¤ÊÃͤËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切な値に設定する。 +.SH エラー .B EAGAIN -¥«¡¼¥Í¥ë¤¬°ì»þŪ¤Ë¥ê¥½¡¼¥¹¤ò»È¤¤²Ì¤¿¤·¤Æ¤¤¤ë¡£ +カーネルが一時的にリソースを使い果たしている。 .TP .B EFAULT .I vec -¤¬Ìµ¸ú¤Ê¥¢¥É¥ì¥¹¤ò»Ø¤·¤Æ¤¤¤ë¡£ +が無効なアドレスを指している。 .TP .B EINVAL .I addr -¤¬¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤Ç¤Ê¤¤¡£ +がページサイズの倍数でない。 .TP .B ENOMEM .I length -¤¬ +が .RI ( TASK_SIZE " \- " addr ) -¤è¤êÂ礭¤¤¡£ +より大きい。 .RI ( length -¤ËÉé¤ÎÃͤ¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ -¤½¤ÎÃͤ¬Â礭¤ÊÉä¹æ¤Ê¤·À°¿ô¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¤¿¤á¤Ëµ¯¤³¤ë¤³¤È¤¬¤¢¤ë¡£) -Linux 2.6.11 °ÊÁ°¤Ç¤Ï¡¢¤³¤Î¾ò·ï¤Î¾ì¹ç¤Ï¥¨¥é¡¼ +に負の値が指定された場合、 +その値が大きな符号なし整数として解釈されるために起こることがある。) +Linux 2.6.11 以前では、この条件の場合はエラー .B EINVAL -¤¬ÊÖ¤µ¤ì¤Æ¤¤¤¿¡£ +が返されていた。 .TP .B ENOMEM .I addr -¤«¤é +から .I addr + .I length -¤Î´Ö¤Ë¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤Ê¤¤¥á¥â¥ê¤¬¤¢¤Ã¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -Linux 2.3.99pre1 ¤È glibc 2.2 ¤«¤éÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH ½àµò +の間にマップされていないメモリがあった。 +.SH バージョン +Linux 2.3.99pre1 と glibc 2.2 から利用可能である。 +.SH 準拠 .BR mincore () -¤Ï POSIX.1-2001 ¤Ëµ­½Ò¤µ¤ì¤Æ¤ª¤é¤º¡¢ -Á´¤Æ¤Î UNIX ¼ÂÁõ¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ +は POSIX.1-2001 に記述されておらず、 +全ての UNIX 実装で利用可能であるわけではない。 .\" It is on at least NetBSD, FreeBSD, OpenBSD, Solaris 8, .\" AIX 5.1, SunOS 4.1 -.\" .SH Îò»Ë +.\" .SH 歴史 .\" .BR mincore () -.\" ´Ø¿ô¤Ï 4.4BSD ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ¥Ð¥° -¥«¡¼¥Í¥ë 2.6.21 ¤è¤êÁ°¤Ï¡¢ +.\" 関数は 4.4BSD で初めて登場した。 +.SH バグ +カーネル 2.6.21 より前は、 .BR mincore () -¤Ï¡¢ +は、 .B MAP_PRIVATE -¥Þ¥Ã¥Ô¥ó¥°¤äÈóÀþ·Á¥Þ¥Ã¥Ô¥ó¥° +マッピングや非線形マッピング .RB ( remap_file_pages (2) -¤ò»È¤Ã¤ÆºîÀ®¤µ¤ì¤ë) ¤Ë¤Ä¤¤¤ÆÀµ¤·¤¤¾ðÊó¤òÊÖ¤µ¤Ê¤«¤Ã¤¿¡£ -.\" Linux ¤Ç¤Ï (2.6.5 ¤Î¸½ºß¤Ë»ê¤ë¤Þ¤Ç)¡¢ +を使って作成される) について正しい情報を返さなかった。 +.\" Linux では (2.6.5 の現在に至るまで)、 .\" .B mincore -.\" ¤Ï MAP_PRIVATE ¥Þ¥Ã¥Ô¥ó¥°¤Ë¤Ä¤¤¤Æ¤ÎÀµ¤·¤¤¾ðÊó¤òÊÖ¤µ¤Ê¤¤¡£ -.\" MAP_PRIVATE ¥Õ¥¡¥¤¥ë¥Þ¥Ã¥Ô¥ó¥°¤Ë¤Ä¤¤¤Æ¡¢ +.\" は MAP_PRIVATE マッピングについての正しい情報を返さない。 +.\" MAP_PRIVATE ファイルマッピングについて、 .\" .B mincore -.\" ¤Ï½ñ¤­¹þ¤ß»þ¥³¥Ô¡¼ (copy on write) ¤µ¤ì¤Æ¤¤¤Æ -.\" ½¤Àµ¤µ¤ì¤¿¥×¥í¥»¥¹¤Î¥×¥é¥¤¥Ù¡¼¥È¥Ú¡¼¥¸¤òÊÖ¤¹¤Î¤Ç¤Ï¤Ê¤¯¡¢ -.\" ¥Õ¥¡¥¤¥ë¥Ú¡¼¥¸¤¬Â¸ºß¤¹¤ë¤«Èݤ«¤òÊÖ¤¹¡£ +.\" は書き込み時コピー (copy on write) されていて +.\" 修正されたプロセスのプライベートページを返すのではなく、 +.\" ファイルページが存在するか否かを返す。 .\" .I /dev/zero -.\" ¤Î MAP_PRIVATE ¥Þ¥Ã¥Ô¥ó¥°¤Ë¤Ä¤¤¤Æ¡¢ +.\" の MAP_PRIVATE マッピングについて、 .\" .B mincore -.\" ¤Ï¾ï¤Ë¥Ú¡¼¥¸¤¬Â¸ºß¤·¤Ê¤¤¤È¤¤¤¦Åú¤¨¤òÊÖ¤¹¡£ -.\" MAP_PRIVATE, MAP_ANONYMOUS ¥Þ¥Ã¥Ô¥ó¥°¤Ë¤Ä¤¤¤Æ¡¢ +.\" は常にページが存在しないという答えを返す。 +.\" MAP_PRIVATE, MAP_ANONYMOUS マッピングについて、 .\" .B mincore -.\" ¤Ï¾ï¤Ë +.\" は常に .\" .B ENOMEM -.\" ¤Ç¼ºÇÔ¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +.\" で失敗する。 +.SH 関連項目 .BR mlock (2), .BR mmap (2) diff --git a/release/man2/mkdir.2 b/release/man2/mkdir.2 index 8672e9d5..b33d0315 100644 --- a/release/man2/mkdir.2 +++ b/release/man2/mkdir.2 @@ -17,13 +17,13 @@ .\" Updated Thu Mar 24 JST 2005 by Kentaro Shirakata .\" Updated Wed Jul 30 JST 2008 by Kentaro Shirakata .\" -.\"WORD: permission µö²Ä°À­ -.\"WORD: resolve (¥Ñ¥¹Ì¾¤ò) ²ò·è¤¹¤ë +.\"WORD: permission 許可属性 +.\"WORD: resolve (パス名を) 解決する .\" .TH MKDIR 2 2008-05-13 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -mkdir \- ¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mkdir \- ディレクトリを作成する +.SH 書式 .nf .B #include .B #include @@ -31,117 +31,117 @@ mkdir \- .sp .BI "int mkdir(const char *" pathname ", mode_t " mode ); .fi -.SH ÀâÌÀ +.SH 説明 .BR mkdir () -¤Ï +は .I pathname -¤Ç¼¨¤µ¤ì¤ë̾Á°¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤·¤è¤¦¤È¤¹¤ë¡£ +で示される名前のディレクトリを作成しようとする。 .I mode -°ú¤­¿ô¤Ï¡¢ºîÀ®¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Îµö²Ä°À­¤ò·èÄꤹ¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£ -¤³¤ÎÃͤˡ¢Ä̾ïÄ̤ê¥×¥í¥»¥¹¤Î +引き数は、作成されたディレクトリの許可属性を決定するのに使われる。 +この値に、通常通りプロセスの .I umask -¤Ë¤è¤ë½¤Àµ¤¬²Ã¤¨¤é¤ì¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢ºîÀ®¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Îµö²Ä°À­¤Ï +による修正が加えられる。 +したがって、作成されたディレクトリの許可属性は .RI ( mode " & ~" umask " & 0777)" -¤È¤Ê¤ë¡£ -ºîÀ®¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Î¤½¤Î¾¤Î¥â¡¼¥É¥Ó¥Ã¥È¤Ï¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ë -°Í¸¤¹¤ë¡£Linux ¤Î¾ì¹ç¤Ï¡¢°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +となる。 +作成されたディレクトリのその他のモードビットはオペレーティングシステムに +依存する。Linux の場合は、以下の通りである。 -¿·¤·¤¯ºîÀ®¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Î½êÍ­¼Ô¤Ï¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤ËÀßÄꤵ¤ì¤ë¡£ -¿·¤¿¤ËºîÀ®¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤¬´Þ¤Þ¤ì¤ë¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ë -set group ID ¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤¿¤ê¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ BSD ¤Î -¥°¥ë¡¼¥×¥»¥Þ¥ó¥Æ¥£¥¯¥¹ +新しく作成されたディレクトリの所有者はプロセスの実効ユーザ ID に設定される。 +新たに作成されたディレクトリが含まれる親ディレクトリに +set group ID ビットがセットされていたり、ファイルシステムが BSD の +グループセマンティクス .RI ( "mount -o bsdgroups" -¤¢¤ë¤¤¤Ï¡¢Æ±¤¸°ÕÌ£¤Î +あるいは、同じ意味の .IR "mount -o grpid" ) -¤Ë½¾¤Ã¤Æ¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -¿·¤¿¤ËºîÀ®¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Î¥°¥ë¡¼¥×½êÍ­¸¢¤Ï¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Î -¤â¤Î¤¬·Ñ¾µ¤µ¤ì¤ë (¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤ÈƱ¤¸¤Ë¤Ê¤ë)¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢¥°¥ë¡¼¥×½êÍ­¸¢¤Ï¥×¥í¥»¥¹¤Î¼Â¸ú¥°¥ë¡¼¥× ID ¤È¤Ê¤ë¡£ +に従ってマウントされている場合には、 +新たに作成されたディレクトリのグループ所有権は親ディレクトリの +ものが継承される (親ディレクトリと同じになる)。 +それ以外の場合は、グループ所有権はプロセスの実効グループ ID となる。 -¤â¤·¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ë set group ID ¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ì¤Ð¿·¤·¤¯ºîÀ®¤µ¤ì¤ë -¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤â set group ID ¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +もし親ディレクトリに set group ID ビットがセットされていれば新しく作成される +ディレクトリにも set group ID ビットがセットされる。 +.SH 返り値 .BR mkdir () -¤ÏÀ®¸ù¤·¤¿¾ì¹ç 0 ¤ò¡¢¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤òÊÖ¤¹ (¤Þ¤¿¡¢ +は成功した場合 0 を、失敗した場合 \-1 を返す (また、 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤˤ·¤¿¤¬¤Ã¤ÆŬÀÚ¤ËÀßÄꤵ¤ì¤ë)¡£ -.SH ¥¨¥é¡¼ +がエラーの内容にしたがって適切に設定される)。 +.SH エラー .TP .B EACCES -¥×¥í¥»¥¹¤¬¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ø¤Î½ñ¤­¹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤¤¡¢¤â¤·¤¯¤Ï +プロセスが親ディレクトリへの書き込み許可を持たない、もしくは .I pathname -Ãæ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¤É¤ì¤«¤Ë¸¡º÷µö²Ä°À­¤¬Ìµ¤¤ +中のディレクトリのどれかに検索許可属性が無い .RB ( path_resolution (7) -¤â»²¾È)¡£ +も参照)。 .TP .B EEXIST .I pathname -¤¬´û¤Ë¸ºß¤·¤Æ¤¤¤ë(¤¿¤À¤·¤½¤ì¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¤È¤Ï¸Â¤é¤Ê¤¤)¡£ +が既に存在している(ただしそれがディレクトリであるとは限らない)。 .I pathname -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¤â -(¤½¤Î»ØÄêÀ褬¸ºß¤¹¤ë¤«¤É¤¦¤«¤Ë´Ø¤é¤º)¥¨¥é¡¼¤Ë¤Ê¤ë¡£ +がシンボリックリンクの場合も +(その指定先が存在するかどうかに関らず)エラーになる。 .TP .B EFAULT .I pathname -¤¬¤½¤Î¥×¥í¥»¥¹¤Î¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がそのプロセスのアクセス可能なアドレス空間の外を指している。 .TP .B ELOOP -¥Ñ¥¹Ì¾ +パス名 .I pathname -¤ò²ò·è¤¹¤ë¤È¤­¤Ë¡¢²ò·è¤¹¤Ù¤­¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬Â¿¤¹¤®¤¿¡£ +を解決するときに、解決すべきシンボリックリンクが多すぎた。 .TP .B ENAMETOOLONG .I pathname -¤¬Ä¹¤¹¤®¤ë¡£ +が長すぎる。 .TP .B ENOENT .I pathname -¤Î¹½À®Í×ÁǤΥǥ£¥ì¥¯¥È¥ê¤Î¤¤¤º¤ì¤«¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢ -¤Þ¤¿¤Ï¥ê¥ó¥¯À褬¸ºß¤·¤Ê¤¤¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¤¢¤ë¡£ +の構成要素のディレクトリのいずれかが存在しないか、 +またはリンク先が存在しないシンボリックリンクである。 .TP .B ENOMEM -¥«¡¼¥Í¥ë¤Ë¡¢ÍøÍѤǤ­¤ë¥á¥â¥ê¤¬ÉÔ­¤·¤Æ¤¤¤ë¡£ +カーネルに、利用できるメモリが不足している。 .TP .B ENOSPC .I pathname -¤ò´Þ¤à¥Ç¥Ð¥¤¥¹¤Ë¿·¤¿¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤¹¤ë¶õ¤­¤¬Ìµ¤¤¡£ +を含むデバイスに新たにディレクトリを作成する空きが無い。 .TP .B ENOSPC -.\"?? ENOSPC ¤¬¥À¥Ö¤Ã¤Æ¤¤¤ë¤±¤É... -¤â¤·¤¯¤Ï¥æ¡¼¥¶¡¼¤Î¥Ç¥£¥¹¥¯ quota ¤¬»È¤¤ÀÚ¤é¤ì¤Æ¤¤¤ë¤¿¤á¡¢ -¿·¤¿¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +.\"?? ENOSPC がダブっているけど... +もしくはユーザーのディスク quota が使い切られているため、 +新たにディレクトリを作成することができない。 .TP .B ENOTDIR .I pathname -Ãæ¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬¼ÂºÝ¤Ë¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +中のディレクトリ部分が実際にはディレクトリでない。 .TP .B EPERM .I pathname -¤ò´Þ¤à¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¥Ç¥£¥ì¥¯¥È¥ê¤ÎºîÀ®¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +を含むファイルシステムがディレクトリの作成をサポートしていない。 .TP .B EROFS .I pathname -¤¬Æɤ߽Ф·ÀìÍÑ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î¥Õ¥¡¥¤¥ë¤ò»Ø¤·¤Æ¤¤¤ë¡£ -.SH ½àµò +が読み出し専用ファイルシステム上のファイルを指している。 +.SH 準拠 SVr4, BSD, POSIX.1-2001. -.\" SVr4 ¤Ë¤Ï¤µ¤é¤Ë¥¨¥é¡¼¥³¡¼¥É EIO, EMULTIHOP ¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ -.SH Ãí°Õ -Linux ¤Ç¤Ï¡¢µö²Ä¥Ó¥Ã¥È°Ê³°¤Ç°ÕÌ£¤ò»ý¤Ä¤Î¤Ï¡¢ +.\" SVr4 にはさらにエラーコード EIO, EMULTIHOP についての記述がある。 +.SH 注意 +Linux では、許可ビット以外で意味を持つのは、 .B S_ISVTX -¥â¡¼¥É¥Ó¥Ã¥È¤À¤±¤Ç¤¢¤ë¡£ -¤Ä¤Þ¤ê¡¢Linux ¤Ç¤ÏºîÀ®¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ï¼ÂºÝ¤Ë¤Ï +モードビットだけである。 +つまり、Linux では作成されたディレクトリは実際には .RI ( mode " & ~" umask " & 01777)" -¤Î¥â¡¼¥É¤ò»ý¤Ä¤³¤È¤Ë¤Ê¤ë¡£ +のモードを持つことになる。 .BR stat (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -NFS ¤ò¼Â¸½¤·¤Æ¤¤¤ë¥×¥í¥È¥³¥ë¤Ë¤Ï¿¤¯¤ÎÉÔÈ÷¤¬Â¸ºß¤·¡¢ -¤½¤ì¤éÃæ¤Ë¤Ï +NFS を実現しているプロトコルには多くの不備が存在し、 +それら中には .BR mkdir () -¤Ë±Æ¶Á¤òÍ¿¤¨¤ë¤â¤Î¤â¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +に影響を与えるものもある。 +.SH 関連項目 .BR mkdir (1), .BR chmod (2), .BR chown (2), diff --git a/release/man2/mkdirat.2 b/release/man2/mkdirat.2 index 0d78a8e4..962bd783 100644 --- a/release/man2/mkdirat.2 +++ b/release/man2/mkdirat.2 @@ -27,20 +27,20 @@ .\" Translated 2006-09-30 by Yuichi SATO , LDP v2.39 .\" .TH MKDIRAT 2 2009-12-13 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -mkdirat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÁêÂÐŪ¤Ê°ÌÃ֤˥ǥ£¥ì¥¯¥È¥ê¤òºîÀ®¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mkdirat \- ディレクトリファイルディスクリプタから相対的な位置にディレクトリを作成する +.SH 書式 .nf -.B #include /* AT_* Äê¿ô¤ÎÄêµÁ */ +.B #include /* AT_* 定数の定義 */ .B #include .sp .BI "int mkdirat(int " dirfd ", const char *" pathname ", mode_t " mode ); .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR mkdirat (): @@ -48,80 +48,80 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR mkdirat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë°ã¤¤¤¬¤¢¤ë°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明している違いがある以外は、 .BR mkdir (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .I pathname -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹Ì¾¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パス名である場合、 +ファイルディスクリプタ .I dirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( mkdir (2) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスの +カレントワーキングディレクトリからの相対パスとなる)。 .I pathname -¤¬ÁêÂХѥ¹¤Ç¤¢¤ê¡¢¤«¤Ä +が相対パスであり、かつ .I dirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I pathname -¤Ï +は .RB ( mkdir (2) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .I pathname -¤¬ÀäÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ +が絶対パスである場合、 .I dirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +は無視される。 +.SH 返り値 +成功した場合、 .BR mkdirat () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +は 0 を返す。 +エラーの場合、\-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +にはエラーを示す値が設定される。 +.SH エラー .BR mkdir (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR mkdirat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .BR mkdirat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .I dirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B ENOTDIR .I pathname -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I dirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 +.SH バージョン .BR mkdirat () -¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ -.SH ½àµò +は Linux カーネル 2.6.16 で追加された。 +.SH 準拠 POSIX.1-2008. -.SH Ãí°Õ +.SH 注意 .BR mkdirat () -¤¬É¬ÍפÊÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が必要な理由については、 .BR openat (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ÀâÌÀ +を参照すること。 +.SH 説明 .BR mkdir (2), .BR openat (2), .BR path_resolution (7) diff --git a/release/man2/mknod.2 b/release/man2/mknod.2 index 0883814d..e6c1cb24 100644 --- a/release/man2/mknod.2 +++ b/release/man2/mknod.2 @@ -20,14 +20,14 @@ .\" Updated & Modified 2004-12-31, Yuichi SATO .\" Updated 2005-09-06, Akihiro MOTOKI .\" -.\"WORD: node ¥Î¡¼¥É -.\"WORD: permission µö²Ä°À­ -.\"WORD: resolve (¥Ñ¥¹Ì¾¤ò) ²ò·è¤¹¤ë +.\"WORD: node ノード +.\"WORD: permission 許可属性 +.\"WORD: resolve (パス名を) 解決する .\" .TH MKNOD 2 2010-09-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -mknod \- Æüì¥Õ¥¡¥¤¥ë¤äÄ̾ï¤Î¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mknod \- 特殊ファイルや通常のファイルを作成する +.SH 書式 .nf .B #include .B #include @@ -38,9 +38,9 @@ mknod \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR mknod (): @@ -50,185 +50,185 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .RE .ad -.SH ÀâÌÀ -¥·¥¹¥Æ¥à¥³¡¼¥ë +.SH 説明 +システムコール .BR mknod () -¤Ï +は .I pathname -¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¡¦¥Î¡¼¥É -(¥Õ¥¡¥¤¥ë¡¢¥Ç¥Ð¥¤¥¹¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¡¢Ì¾Á°ÉÕ¤­¥Ñ¥¤¥×) ¤ò¡¢ -°À­ +という名前のファイルシステム・ノード +(ファイル、デバイススペシャルファイル、名前付きパイプ) を、 +属性 .I mode -¤È +と .I dev -¤Î»ØÄê¤Ë¤·¤¿¤¬¤Ã¤ÆºîÀ®¤¹¤ë¡£ +の指定にしたがって作成する。 .I mode -°ú¤­¿ô¤Ë¤Ï¡¢ºîÀ®¤¹¤ë¥Î¡¼¥É¤Îµö²Ä°À­ (permission) ¤È¥¿¥¤¥×¤ò»ØÄꤹ¤ë¡£ +引き数には、作成するノードの許可属性 (permission) とタイプを指定する。 .I mode -¤Î»ØÄê¤Ï°Ê²¼¤Ë¤¢¤²¤ë¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤Î¤¦¤Á¤Î 1 ¤Ä¤È¡¢ -µö²Ä°À­¤ÎÁȹ礻 (¥Ó¥Ã¥È¤´¤È¤Î OR ¤ò»ÈÍÑ) ¤Ç¹Ô¤¦¡£ +の指定は以下にあげるファイルタイプのうちの 1 つと、 +許可属性の組合せ (ビットごとの OR を使用) で行う。 -µö²Ä°À­¤ÏÄ̾ïÄ̤ꡢ¥×¥í¥»¥¹¤Î +許可属性は通常通り、プロセスの .I umask -¤Ë¤è¤Ã¤Æ½¤Àµ¤µ¤ì¡¢ºîÀ®¤µ¤ì¤¿¥Î¡¼¥É¤Îµö²Ä°À­¤Ï +によって修正され、作成されたノードの許可属性は .I "(mode & ~umask)" -¤È¤Ê¤ë¡£ +となる。 -¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤Ë¤Ï +ファイルタイプには .BR S_IFREG , .BR S_IFCHR , .BR S_IFBLK , .BR S_IFIFO , .B S_IFSOCK -.\" (S_IFSOCK ¤Ï Linux 1.2.4 ¤«¤é¸ºß¤¹¤ë) -¤Î¤¤¤º¤ì¤«¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤½¤ì¤¾¤ì½ç¤Ë¡¢Ä̾ï¤Î¥Õ¥¡¥¤¥ë (¶õ¤Î¥Õ¥¡¥¤¥ë¤È¤·¤ÆºîÀ®¤µ¤ì¤ë)¡¦ -¥­¥ã¥é¥¯¥¿¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¡¦¥Ö¥í¥Ã¥¯¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¡¦ -FIFO (̾Á°ÉÕ¤­¥Ñ¥¤¥×)¡¦UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤Ç¤¢¤ë -(¥Õ¥¡¥¤¥ë¥¿¥¤¥× 0 ¤Ï +.\" (S_IFSOCK は Linux 1.2.4 から存在する) +のいずれかを指定しなければならない。 +それぞれ順に、通常のファイル (空のファイルとして作成される)・ +キャラクタスペシャルファイル・ブロックスペシャルファイル・ +FIFO (名前付きパイプ)・UNIX ドメインソケットである +(ファイルタイプ 0 は .B S_IFREG -¤ÈƱ¤¸¤Ç¤¢¤ë)¡£ +と同じである)。 -¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤¬ +ファイルタイプが .B S_IFCHR -¤Þ¤¿¤Ï +または .B S_IFBLK -¤Î¤È¤­¡¢ +のとき、 .I dev -¤Ë¤ÏºîÀ®¤¹¤ë¥Ç¥Ð¥¤¥¹¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤Î¥á¥¸¥ã¡¼ÈÖ¹æ¤È -¥Þ¥¤¥Ê¡¼ÈÖ¹æ¤ò»ØÄꤹ¤ë +には作成するデバイススペシャルファイルのメジャー番号と +マイナー番号を指定する .RB ( makedev (3) -¤Ï +は .I dev -¤Î¤³¤ì¤é¤ÎÈÖ¹æ¤òºîÀ®¤¹¤ëºÝ¤ËÌòΩ¤Ä¤À¤í¤¦)¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï +のこれらの番号を作成する際に役立つだろう)。 +それ以外の場合は .I dev -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .I pathname -¤¬´û¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢¤Þ¤¿¤Ï¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¡¢ -¤³¤Î¸Æ¤Ó½Ð¤·¤Ï +が既に存在する場合、またはシンボリックリンクの場合、 +この呼び出しは .B EEXIST -¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë¡£ +エラーで失敗する。 -¿·¤·¤¯ºîÀ®¤µ¤ì¤¿¥Î¡¼¥É¤Î½êÍ­¼Ô¤Ï¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ -¿·¤¿¤Ëºî¤é¤ì¤¿¥Î¡¼¥É¤òÊÝ»ý¤¹¤ë -¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Î set-group-ID ¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤¿¤ê¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ BSD ¤Î¥°¥ë¡¼¥×¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤Ë¤·¤¿¤¬¤Ã¤Æ -¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢¿·¤·¤¤¥Î¡¼¥É¤Î¥°¥ë¡¼¥×½êÍ­¸¢¤Ï¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Î -¥°¥ë¡¼¥×½êÍ­¸¢¤ò·Ñ¾µ¤¹¤ë (¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤ÈƱ¤¸¤Ë¤Ê¤ë)¡£ -¤Þ¤¿¡¢¤½¤¦¤Ç¤Ê¤«¤Ã¤¿¾ì¹ç¤Î½êÍ­¥°¥ë¡¼¥×¤Ï¥×¥í¥»¥¹¤Î¼Â¸ú¥°¥ë¡¼¥× ID ¤È¤Ê¤ë¡£ -.SH ÊÖ¤êÃÍ +新しく作成されたノードの所有者はプロセスの実効ユーザ ID にセットされる。 +新たに作られたノードを保持する +親ディレクトリの set-group-ID ビットがセットされていたり、 +ファイルシステムが BSD のグループセマンティクスにしたがって +マウントされている場合には、新しいノードのグループ所有権は親ディレクトリの +グループ所有権を継承する (親ディレクトリと同じになる)。 +また、そうでなかった場合の所有グループはプロセスの実効グループ ID となる。 +.SH 返り値 .BR mknod () -¤ÏÀ®¸ù¤·¤¿¾ì¹ç 0 ¤ò¡¢¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤òÊÖ¤¹ -(¼ºÇÔ¤·¤¿¾ì¹ç +は成功した場合 0 を、失敗した場合 \-1 を返す +(失敗した場合 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤˤ·¤¿¤¬¤Ã¤Æ¥»¥Ã¥È¤µ¤ì¤ë)¡£ -.SH ¥¨¥é¡¼ +がエラーの内容にしたがってセットされる)。 +.SH エラー .TP .B EACCES -¥×¥í¥»¥¹¤¬¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ø¤Î½ñ¤­¹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤¤¡£ -¤â¤·¤¯¤Ï¥Ñ¥¹Ì¾ +プロセスが親ディレクトリへの書き込み許可を持たない。 +もしくはパス名 .I pathname -Ãæ¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤Î¤É¤ì¤«¤Ë¸¡º÷µö²Ä°À­¤¬Ìµ¤¤ +中のディレクトリ部分のどれかに検索許可属性が無い .RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È)¡£ +も参照すること)。 .TP .B EEXIST .I pathname -¤¬´û¤Ë¸ºß¤¹¤ë¡£ -¤³¤ì¤Ë¤Ï +が既に存在する。 +これには .I pathname -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ç¤¢¤ë¾ì¹ç¤â´Þ¤Þ¤ì¤ë -(¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬²õ¤ì¤Æ¤¤¤ë¤« (dangling) ¤É¤¦¤«¤Ï´Ø·¸¤Ê¤¤)¡£ +がシンボリック・リンクである場合も含まれる +(シンボリック・リンクが壊れているか (dangling) どうかは関係ない)。 .TP .B EFAULT .I pathname -¤¬¤½¤Î¥×¥í¥»¥¹¤Î¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がそのプロセスのアクセス可能なアドレス空間の外を指している。 .TP .B EINVAL .I mode -¤¬Ä̾ï¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥Ð¥¤¥¹¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¡¦FIFO¡¦¥½¥±¥Ã¥È°Ê³°¤ò -ºîÀ®¤¹¤ë¤è¤¦¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¡£ +が通常のファイル・デバイススペシャルファイル・FIFO・ソケット以外を +作成するようにセットされている。 .TP .B ELOOP -¥Ñ¥¹Ì¾ +パス名 .I pathname -¤ò²ò·è¤¹¤ë¤È¤­¤Ë¡¢´Þ¤Þ¤ì¤Æ¤¤¤ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬Â¿¤¹¤®¤¿¡£ +を解決するときに、含まれているシンボリックリンクが多すぎた。 .TP .B ENAMETOOLONG .I pathname -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENOENT .I pathname -Ãæ¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢ -¤Þ¤¿¤Ï¥ê¥ó¥¯Àè¤Î̵¤¤¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¤¢¤ë¡£ +中で指定されているディレクトリが存在しないか、 +またはリンク先の無いシンボリックリンクである。 .TP .B ENOMEM -½½Ê¬¤Ê¥«¡¼¥Í¥ë¥á¥â¥ê¤¬Ìµ¤¤¡£ +十分なカーネルメモリが無い。 .TP .B ENOSPC .I pathname -¤Î¤¢¤ë¥Ç¥Ð¥¤¥¹¤Ë¿·¤¿¤Ë¥Î¡¼¥É¤òºîÀ®¤¹¤ë¶õ¤­¤¬Ìµ¤¤¡£ +のあるデバイスに新たにノードを作成する空きが無い。 .TP .B ENOTDIR .I pathname -Ãæ¤Î¥Ç¥£¥ì¥¯¥È¥êÍ×ÁǤ¬¡¢¼ÂºÝ¤Ë¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +中のディレクトリ要素が、実際にはディレクトリでない。 .TP .B EPERM .I mode -¤ÏÄ̾ï¤Î¥Õ¥¡¥¤¥ë¡¦FIFO (̾Á°ÉÕ¤­¥Ñ¥¤¥×)¡¦UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È°Ê³°¤ò -ºîÀ®¤¹¤ë¤è¤¦¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤¬¡¢¼Â¹Ô¼Ô¤¬Æø¢ -(Linux ¤Ç¤Ï +は通常のファイル・FIFO (名前付きパイプ)・UNIX ドメインソケット以外を +作成するようにセットされているが、実行者が特権 +(Linux では .B CAP_MKNOD -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability)) ¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -.\" UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤ÈÄ̾ï¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ mknod() ¤ò¹Ô¤¦¤È¡¢ -.\" Linux 2.2 °ÊÁ°¤Ç¤Ï EPERM ¤òÊÖ¤¹¤À¤±¤Ç¤¢¤ë¡£ -.\" Linux 2.4 °Ê¹ß¤Ç¤ÏÆø¢¤ò»ý¤Ã¤Æ¤¤¤Ê¤¯¤Æ¤â¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ò -.\" ºîÀ®¤¹¤ë¤Î¤Ë mknod() ¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤Þ¤¿¤Ï +ケーパビリティ (capability)) を持っていない。 +.\" UNIX ドメインソケットと通常ファイルに対して mknod() を行うと、 +.\" Linux 2.2 以前では EPERM を返すだけである。 +.\" Linux 2.4 以降では特権を持っていなくてもこれらのファイルを +.\" 作成するのに mknod() を使用することができる。 +または .I pathname -¤òÊÝ»ý¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¡¢»ØÄꤵ¤ì¤¿¥Î¡¼¥É·Á¼°¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +を保持するファイルシステムが、指定されたノード形式をサポートしていない。 .TP .B EROFS .I pathname -¤¬Æɤ߽Ф·ÀìÍÑ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î¥Õ¥¡¥¤¥ë¤ò»Ø¤·¤Æ¤¤¤ë¡£ -.SH ½àµò -SVr4, 4.4BSD, POSIX.1-2001 (²¼µ­¤â»²¾È). -.\" Linux ¤Î¼ÂÁõ¤Ï SVr4 ¤Î¼ÂÁõ¤È°Û¤Ê¤ê¡¢¥Ñ¥¤¥×¤ÎºîÀ®¤Ë¤Ï root ¸¢¸Â¤¬ÉÔÍפǤ¢¤ë¡£ -.\" ¤Þ¤¿ EMULTIHOP ¤È ENOLINK ¤È EINTR ¤Î¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Ïµ­½Ò¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH Ãí°Õ -POSIX.1-2001 ¤Ç¤Ï¼¡¤Î¤è¤¦¤Ë½ñ¤¤¤Æ¤¤¤ë¡§ -.RB ¡Ö mknod () -¤ÎÍ£°ì¤Î°Ü¿¢À­¤Î¤¢¤ë»ÈÍÑË¡¤Ï¡¢FIFO ¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£ +が読み出し専用ファイルシステム上のファイルを指している。 +.SH 準拠 +SVr4, 4.4BSD, POSIX.1-2001 (下記も参照). +.\" Linux の実装は SVr4 の実装と異なり、パイプの作成には root 権限が不要である。 +.\" また EMULTIHOP と ENOLINK と EINTR のエラーについては記述されていない。 +.SH 注意 +POSIX.1-2001 では次のように書いている: +.RB 「 mknod () +の唯一の移植性のある使用法は、FIFO スペシャルファイルを作成することである。 .I mode -¤¬ +が .B S_IFIFO -¤Ç¤Ï¤Ê¤¤¾ì¹ç¡¢¤Þ¤¿¤Ï +ではない場合、または .I dev -¤¬ 0 ¤Ç¤Ï¤Ê¤¤¾ì¹ç¡¢ +が 0 ではない場合、 .BR mknod () -¤ÎµóÆ°¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£¡× -¤·¤«¤·¤Ê¤¬¤é¡¢¸½ºß¤Ç¤Ï¤³¤ÎÌÜŪ¤Î¤¿¤á¤Ë +の挙動は規定されていない。」 +しかしながら、現在ではこの目的のために .BR mknod () -¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£¤³¤ÎÌÜŪ¤Î¤¿¤á¤ËÆÃÊ̤ËÄêµÁ¤µ¤ì¤¿´Ø¿ô¤Ç¤¢¤ë +を使用すべきではない。この目的のために特別に定義された関数である .BR mkfifo () -¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +を使用すべきである。 -Linux ¤Ç¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤¹¤ë¤¿¤á¤Ë -¤³¤Î¸Æ¤Ó½Ð¤·¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -¥Ç¥£¥ì¥¯¥È¥ê¤Ï +Linux では、ディレクトリを作成するために +この呼び出しを使用することはできない。 +ディレクトリは .BR mkdir (2) -¤ÇºîÀ®¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -.\" UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤Ï socket(2) ¤È bind(2) ¤ÇºîÀ®¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +で作成すべきである。 +.\" UNIX ドメインソケットは socket(2) と bind(2) で作成すべきである。 -NFS ¤ò¼Â¸½¤·¤Æ¤¤¤ë¥×¥í¥È¥³¥ë¤Ë¤Ï¿¤¯¤ÎÉÔÈ÷¤¬Â¸ºß¤·¡¢ -¤½¤ì¤é¤Î¤¤¤¯¤Ä¤«¤Ï +NFS を実現しているプロトコルには多くの不備が存在し、 +それらのいくつかは .BR mknod () -¤Ë±Æ¶Á¤òÍ¿¤¨¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +に影響を与える。 +.SH 関連項目 .BR chmod (2), .BR chown (2), .BR fcntl (2), diff --git a/release/man2/mknodat.2 b/release/man2/mknodat.2 index ccbc6989..50e7b5db 100644 --- a/release/man2/mknodat.2 +++ b/release/man2/mknodat.2 @@ -27,12 +27,12 @@ .\" Translated 2006-09-30 by Yuichi SATO , LDP v2.39 .\" .TH MKNODAT 2 2010-09-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -mknodat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÁêÂÐŪ¤Ê°ÌÃ֤ˡ¢ -Æüì¥Õ¥¡¥¤¥ë¤äÄ̾ï¤Î¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mknodat \- ディレクトリファイルディスクリプタから相対的な位置に、 +特殊ファイルや通常のファイルを作成する +.SH 書式 .nf -.B #include /* AT_* Äê¿ô¤ÎÄêµÁ */ +.B #include /* AT_* 定数の定義 */ .B #include .sp .BI "int mknodat(int " dirfd ", const char *" pathname ", mode_t " mode \ @@ -40,9 +40,9 @@ mknodat \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR mknodat (): @@ -50,82 +50,82 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 .\" Other FTM combinations will also expose mknodat(), but this function was .\" added in SUSv4, marked XSI, so we'll just document what the standard says .TP 4 -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR mknodat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë°ã¤¤¤¬¤¢¤ë°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明している違いがある以外は、 .BR mknod (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .I pathname -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹Ì¾¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パス名である場合、 +ファイルディスクリプタ .I dirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( mknod (2) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスの +カレントワーキングディレクトリからの相対パスとなる)。 .I pathname -¤¬ÁêÂХѥ¹¤Ç¤¢¤ê¡¢¤«¤Ä +が相対パスであり、かつ .I dirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I pathname -¤Ï +は .RB ( mknod (2) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .I pathname -¤¬ÀäÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ +が絶対パスである場合、 .I dirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +は無視される。 +.SH 返り値 +成功した場合、 .BR mknodat () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +は 0 を返す。 +エラーの場合、\-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +にはエラーを示す値が設定される。 +.SH エラー .BR mknod (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR mknodat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .BR mknodat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .I dirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B ENOTDIR .I pathname -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I dirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 +.SH バージョン .BR mknodat () -¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ -.SH ½àµò +は Linux カーネル 2.6.16 で追加された。 +.SH 準拠 POSIX.1-2008. -.SH Ãí°Õ +.SH 注意 .BR mknodat () -¤¬É¬ÍפÊÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が必要な理由については、 .BR openat (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を参照すること。 +.SH 関連項目 .BR mknod (2), .BR openat (2), .BR path_resolution (7) diff --git a/release/man2/mlock.2 b/release/man2/mlock.2 index d8ba21df..b0f24d4b 100644 --- a/release/man2/mlock.2 +++ b/release/man2/mlock.2 @@ -34,13 +34,13 @@ .\" Updated 2006-02-14, Akihiro MOTOKI .\" Updated 2008-11-10, Akihiro MOTOKI, LDP v3.13 .\" -.\"WORD: unlock ¥í¥Ã¥¯²ò½ü -.\"WORD: previlege Æø¢ +.\"WORD: unlock ロック解除 +.\"WORD: previlege 特権 .\" .TH MLOCK 2 2008-09-25 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -mlock \- ¥á¥â¥ê¤Î¥í¥Ã¥¯¤È¥í¥Ã¥¯²ò½ü¤ò¹Ô¤¦ -.SH ½ñ¼° +.SH 名前 +mlock \- メモリのロックとロック解除を行う +.SH 書式 .nf .B #include .sp @@ -50,277 +50,277 @@ mlock \- .BI "int mlockall(int " flags ); .B int munlockall(void); .fi -.SH ÀâÌÀ +.SH 説明 .BR mlock () -¤È +と .BR mlockall () -¤Ï¤½¤ì¤¾¤ì¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î²¾ÁÛ¥¢¥É¥ì¥¹¶õ´Ö¤Î°ìÉô¤Þ¤¿¤ÏÁ´Éô¤ò -RAM ¾å¤Ë¥í¥Ã¥¯¤·¡¢¥á¥â¥ê¤¬¥¹¥ï¥Ã¥×¥¨¥ê¥¢¤Ë¥Ú¡¼¥¸¥ó¥°¤µ¤ì¤ë¤Î¤òËɤ°¡£ +はそれぞれ、呼び出し元プロセスの仮想アドレス空間の一部または全部を +RAM 上にロックし、メモリがスワップエリアにページングされるのを防ぐ。 .BR munlock () -¤È +と .BR munlockall () -¤ÏµÕ¤ÎÁàºî¤Ç¡¢¤½¤ì¤¾¤ì¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î²¾ÁÛ¥¢¥É¥ì¥¹¶õ´Ö¤Î°ìÉô¤Þ¤¿¤ÏÁ´Éô¤ò -¥í¥Ã¥¯²ò½ü¤¹¤ë¡£¤Ä¤Þ¤ê¡¢»ØÄꤵ¤ì¤¿²¾ÁÛ¥¢¥É¥ì¥¹ÈϰϤΥڡ¼¥¸¤Ï -¥«¡¼¥Í¥ë¥á¥â¥ê¥Þ¥Í¡¼¥¸¥ã¡¼¤«¤éÍ׵ᤵ¤ì¤ì¤Ð¥¹¥ï¥Ã¥×¥¢¥¦¥È¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¥á¥â¥ê¤Î¥í¥Ã¥¯¤È¥í¥Ã¥¯²ò½ü¤Ï¥Ú¡¼¥¸Ã±°Ì¤Ç¹Ô¤ï¤ì¤ë¡£ -.SS "mlock() ¤È munlock()" +は逆の操作で、それぞれ呼び出し元プロセスの仮想アドレス空間の一部または全部を +ロック解除する。つまり、指定された仮想アドレス範囲のページは +カーネルメモリマネージャーから要求されればスワップアウトするようになる。 +メモリのロックとロック解除はページ単位で行われる。 +.SS "mlock() と munlock()" .BR mlock () -¤Ï +は .I addr -¤«¤é»Ï¤Þ¤ëŤµ +から始まる長さ .I len -¥Ð¥¤¥È¤Î¥¢¥É¥ì¥¹ÈϰϤΥڡ¼¥¸¤ò¥í¥Ã¥¯¤¹¤ë¡£ -¸Æ¤Ó½Ð¤·¤¬À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ -»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹ÈϰϤò´Þ¤àÁ´¤Æ¤Î¥Ú¡¼¥¸¤Ï -RAM ¤Ë»Ä¤ê³¤±¤ë¤³¤È¤¬Êݾڤµ¤ì¤ë¡£ -¤³¤ì¤é¤Î¥Ú¡¼¥¸¤Ï¸å¤Ç¥í¥Ã¥¯²ò½ü¤µ¤ì¤ë¤Þ¤Ç RAM ¤Ë»Ä¤ê³¤±¤ë¤³¤È¤¬Êݾڤµ¤ì¤ë¡£ +バイトのアドレス範囲のページをロックする。 +呼び出しが成功した場合には、 +指定されたアドレス範囲を含む全てのページは +RAM に残り続けることが保証される。 +これらのページは後でロック解除されるまで RAM に残り続けることが保証される。 .BR munlock () -¤Ï¡¢ +は、 .I addr -¤«¤é»Ï¤Þ¤ëŤµ +から始まる長さ .I len -¥Ð¥¤¥È¤Î¥¢¥É¥ì¥¹ÈϰϤΥڡ¼¥¸¤Î¥í¥Ã¥¯¤ò²ò½ü¤¹¤ë¡£ -¤³¤Î¸Æ¤Ó½Ð¤·¤ò¹Ô¤Ã¤¿¸å¤Ï¡¢¥«¡¼¥Í¥ë¤¬¡¢»ØÄꤵ¤ì¤¿¥á¥â¥êÈϰϤò´Þ¤à -Á´¤Æ¤Î¥Ú¡¼¥¸¤ò³°Éô¤Î¥¹¥ï¥Ã¥×¶õ´Ö¤Ë°ÜÆ°¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -.SS "mlockall() ¤È munlockall()" +バイトのアドレス範囲のページのロックを解除する。 +この呼び出しを行った後は、カーネルが、指定されたメモリ範囲を含む +全てのページを外部のスワップ空間に移動できるようになる。 +.SS "mlockall() と munlockall()" .BR mlockall () -¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¥Ú¡¼¥¸¤ò -¥í¥Ã¥¯¤¹¤ë¡£¤³¤ì¤Ë¤Ï¥³¡¼¥É¡¢¥Ç¡¼¥¿¡¢¥¹¥¿¥Ã¥¯¤Î -³Æ¥»¥°¥á¥ó¥È¡¢¶¦Í­¥é¥¤¥Ö¥é¥ê¡¢¥«¡¼¥Í¥ë¤Î¥æ¡¼¥¶¡¼¶õ´Ö¥Ç¡¼¥¿¡¢ -¶¦Í­¥á¥â¥ê¡¢¥á¥â¥ê¡¦¥Þ¥Ã¥×¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤ë¡£ -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤¬À®¸ù¤·¤¿¾ì¹ç¤Ë¤ÏÁ´¤Æ¤Î¥Þ¥Ã¥×¤µ¤ì¤¿¥Ú¡¼¥¸¤Ï RAM ¤Ë -»Ä¤ë¤³¤È¤òÊݾڤµ¤ì¤ë¡£ -¤³¤ì¤é¤Î¥Ú¡¼¥¸¤Ï¸å¤Ç¥í¥Ã¥¯²ò½ü¤µ¤ì¤ë¤Þ¤Ç RAM ¤Ë»Ä¤ê³¤±¤ë¤³¤È¤¬Êݾڤµ¤ì¤ë¡£ +は呼び出し元プロセスのアドレス空間にマップされている全てのページを +ロックする。これにはコード、データ、スタックの +各セグメント、共有ライブラリ、カーネルのユーザー空間データ、 +共有メモリ、メモリ・マップされたファイルが含まれる。 +システム・コールが成功した場合には全てのマップされたページは RAM に +残ることを保証される。 +これらのページは後でロック解除されるまで RAM に残り続けることが保証される。 .I flags -°ú¿ô¤Ï°Ê²¼¤ÎÆâÍƤΰì¤Ä¤Þ¤¿¤ÏÊ£¿ô¤Î¥Ó¥Ã¥È OR ¤«¤é¹½À®¤µ¤ì¤ë: +引数は以下の内容の一つまたは複数のビット OR から構成される: .TP 1.2i .B MCL_CURRENT -¸½ºß¡¢¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¥Ú¡¼¥¸¤ò¥í¥Ã¥¯¤¹¤ë¡£ +現在、プロセスのアドレス空間にマップされている全てのページをロックする。 .TP .B MCL_FUTURE -¾­Íè¡¢¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¥Þ¥Ã¥×¤µ¤ì¤ëÁ´¤Æ¤Î¥Ú¡¼¥¸¤ò¥í¥Ã¥¯¤¹¤ë¡£ -Î㤨¤Ð¡¢¥Ò¡¼¥× (heap) ¤ä¥¹¥¿¥Ã¥¯¤ÎÀ®Ä¹¤Ë¤è¤ê¿·¤·¤¯É¬Íפˤʤä¿¥Ú¡¼¥¸¤À¤±¤Ç -¤Ê¤¯¡¢¿·¤·¤¯¥á¥â¥ê¥Þ¥Ã¥×¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ä¶¦Í­¥á¥â¥êÎΰè¤â¥í¥Ã¥¯¤µ¤ì¤ë¡£ +将来、プロセスのアドレス空間にマップされる全てのページをロックする。 +例えば、ヒープ (heap) やスタックの成長により新しく必要になったページだけで +なく、新しくメモリマップされたファイルや共有メモリ領域もロックされる。 .PP .B MCL_FUTURE -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢°Ê¸å¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë (Î㤨¤Ð¡¢ +が指定されていると、以後のシステムコール (例えば、 .BR mmap (2), .BR sbrk (2), .BR malloc (3)) -¤Ï¡¢¥í¥Ã¥¯¤¹¤ë¥Ð¥¤¥È¿ô¤¬µö²Ä¤µ¤ì¤¿ºÇÂçÃÍ (²¼µ­»²¾È) ¤òĶ¤¨¤¿¾ì¹ç¤Ë -¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -ƱÍͤˡ¢¥¹¥¿¥Ã¥¯¤ÎÀ®Ä¹¤â¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¤½¤Î¾ì¹ç¡¢¥«¡¼¥Í¥ë¤Ï¥¹¥¿¥Ã¥¯¤Î³ÈÄ¥¤òµñÈݤ·¡¢ +は、ロックするバイト数が許可された最大値 (下記参照) を超えた場合に +失敗する可能性がある。 +同様に、スタックの成長も失敗する可能性がある。 +その場合、カーネルはスタックの拡張を拒否し、 .B SIGSEGV -¤ò¥×¥í¥»¥¹¤ËÁ÷¤ë¡£ +をプロセスに送る。 .BR munlockall () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¤Æ¤¤¤ë -Á´¤Æ¤Î¥Ú¡¼¥¸¤ò¥í¥Ã¥¯²ò½ü¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï¡¢¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥¼¥í¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +は、呼び出し元プロセスのアドレス空間にマッピングされている +全てのページをロック解除する。 +.SH 返り値 +成功した場合は、これらのシステムコールはゼロを返す。 +エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¡¢¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤ª¤±¤ë¥í¥Ã¥¯¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ -.SH ¥¨¥é¡¼ +が適切に設定され、プロセスのアドレス空間におけるロックは変更されない。 +.SH エラー .TP .B ENOMEM -(Linux 2.6.9 °Ê¹ß) ¸Æ¤Ó½Ð¤·¸µ¤ÏÈó¥¼¥í¤Î -¥½¥Õ¥È»ñ¸»À©¸Â +(Linux 2.6.9 以降) 呼び出し元は非ゼロの +ソフト資源制限 .B RLIMIT_MEMLOCK -¤ò»ý¤Ä¤¬¡¢À©¸Â¤¬µö²Ä¤·¤Æ¤¤¤ë°Ê¾å¤Î¥á¥â¥ê¤ò¥í¥Ã¥¯¤·¤è¤¦¤È¤·¤¿¡£ -¤³¤ÎÀ©¸Â¤Ï¡¢¥×¥í¥»¥¹¤¬Æø¢ +を持つが、制限が許可している以上のメモリをロックしようとした。 +この制限は、プロセスが特権 .RB ( CAP_IPC_LOCK ) -¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¤ÏŬÍѤµ¤ì¤Ê¤¤¡£ +を持っている場合は適用されない。 .TP .B ENOMEM -(Linux 2.4 °ÊÁ°) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬ RAM ¤ÎȾʬ°Ê¾å¤ò¥í¥Ã¥¯¤·¤è¤¦¤È¤·¤¿¡£ +(Linux 2.4 以前) 呼び出し元プロセスが RAM の半分以上をロックしようとした。 .TP .B EPERM -(Linux 2.6.9 °Ê¹ß) ¸Æ¤Ó½Ð¤·¸µ¤ÏÆø¢ +(Linux 2.6.9 以降) 呼び出し元は特権 .RB ( CAP_IPC_LOCK ) -¤ò»ý¤¿¤º¡¢¥½¥Õ¥È»ñ¸»À©¸Â +を持たず、ソフト資源制限 .B RLIMIT_MEMLOCK -¤¬ 0 ¤Ç¤¢¤ë¡£ +が 0 である。 .TP .B EPERM -(Linux 2.6.8 °ÊÁ°) -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬ +(Linux 2.6.8 以前) +呼び出し元プロセスが .BR munlockall () -¤ò¸Æ¤Ó½Ð¤¹¤Î¤ËɬÍפÊÆø¢¤ò½êÍ­¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ -Linux ¤Ç¤Ï¡¢ +を呼び出すのに必要な特権を所有していなかった。 +Linux では、 .B CAP_IPC_LOCK -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ -.\"SVr4 ¤Î¥É¥­¥å¥á¥ó¥È¤Ë¤Ï¡¢¤³¤ì°Ê³°¤Ë¥¨¥é¡¼¥³¡¼¥É EAGAIN ¤Îµ­ºÜ¤¬¤¢¤ë¡£ +ケーパビリティが必要である。 +.\"SVr4 のドキュメントには、これ以外にエラーコード EAGAIN の記載がある。 .LP .BR mlock () -¤È +と .BR munlock () -ÍѤȤ·¤Æ: +用として: .TP .B EAGAIN -»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹ÈϰϤΰìÉô¤Þ¤¿¤ÏÁ´¤Æ¤ò¥í¥Ã¥¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +指定されたアドレス範囲の一部または全てをロックすることができなかった。 .TP .B EINVAL .I len -¤¬Éé¤Î¿ô¤Ç¤¢¤ë¡£ +が負の数である。 .TP .B EINVAL -(Linux ¤Ç¤Ï¤³¤Î°ÕÌ£¤Ç»È¤ï¤ì¤Ê¤¤) +(Linux ではこの意味で使われない) .I addr -¤¬¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤Ç¤Ï¤Ê¤¤¡£ +がページサイズの倍数ではない。 .TP .B ENOMEM -»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹ÈϰϤ¬¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¥Þ¥Ã¥×¤µ¤ì¤¿¥Ú¡¼¥¸¤È -°ìÃפ·¤Ê¤¤¡£ +指定されたアドレス範囲がプロセスのアドレス空間にマップされたページと +一致しない。 .LP .BR mlockall () -ÍѤȤ·¤Æ: +用として: .TP .B EINVAL -̤ÃΤΠ\fIflags\fP ¤¬»ØÄꤵ¤ì¤¿¡£ +未知の \fIflags\fP が指定された。 .LP .BR munlockall () -ÍѤȤ·¤Æ: +用として: .TP .B EPERM -(Linux 2.6.8 °ÊÁ°) ¸Æ¤Ó½Ð¤·¸µ¤¬¸¢¸Â +(Linux 2.6.8 以前) 呼び出し元が権限 .RB ( CAP_IPC_LOCK ) -¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -.SH ½àµò +を持っていない。 +.SH 準拠 POSIX.1-2001, SVr4. -.SH ²ÄÍÑÀ­ +.SH 可用性 .BR mlock () -¤È +と .BR munlock () -¤¬»ÈÍѲÄǽ¤Ê POSIX ¥·¥¹¥Æ¥à¤Ç¤Ï +が使用可能な POSIX システムでは .B _POSIX_MEMLOCK_RANGE -¤¬ \fI\fP ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤Þ¤¿¡¢¥Ú¡¼¥¸¤¢¤¿¤ê¤Î¥Ð¥¤¥È¿ô¤Ï¡¢ -\fI\fP ¤ÇÄêµÁ¤µ¤ì¤ëÄê¿ô +が \fI\fP で定義されている。 +また、ページあたりのバイト数は、 +\fI\fP で定義される定数 .B PAGESIZE -¤«¤é (ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç)¡¢¤â¤·¤¯¤Ï +から (定義されている場合)、もしくは .I sysconf(_SC_PAGESIZE) -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç·èÄê¤Ç¤­¤ë¡£ +を呼び出すことで決定できる。 .BR mlockall () -¤È +と .BR munlockall () -¤¬ÍøÍѲÄǽ¤Ê POSIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +が利用可能な POSIX システムでは、 .B _POSIX_MEMLOCK -¤Ï \fI\fP ¤Ç 0 ¤è¤êÂ礭¤¤ÃͤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë +は \fI\fP で 0 より大きい値に定義されている .RB ( sysconf (3) -¤â»²¾È¤Î¤³¤È)¡£ -.\" POSIX.1-2001: ¤³¤ÎÊÑ¿ô¤Ï -1 ¤« 0 ¤« 200112l ¤Î¤¤¤º¤ì¤«¤Ë -.\" ÄêµÁ¤¹¤Ù¤­¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ -.\" -1: ÍøÍѤǤ­¤Ê¤¤¡¢0: sysconf() ¤ËÌ䤤¹ç¤ï¤»¤ë -.\" glibc ¤Ç¤Ï 1 ¤ËÄêµÁ¤·¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -¥á¥â¥ê¤Î¥í¥Ã¥¯¤ÎÍÑÅӤȤ·¤Æ¤Ï¼ç¤ËÆó¤Ä¤¢¤ë: ¥ê¥¢¥ë¥¿¥¤¥à -¥¢¥ë¥´¥ê¥º¥à¤È¹â¤¤¥»¥­¥å¥ê¥Æ¥£¤ÎɬÍפʥǡ¼¥¿½èÍý¤Ç¤¢¤ë¡£¥ê¥¢¥ë¥¿¥¤¥à¤Î -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï·èÄêŪ¤Ê¥¿¥¤¥ß¥ó¥°¤ä¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤òɬÍפȤ¹¤ë¤¬¡¢ -¥Ú¡¼¥¸¥ó¥°¤Ïͽ´ü¤·¤Ê¤¤¥×¥í¥°¥é¥à¤Î¼Â¹ÔÃÙ±ä¤ò¤â¤¿¤é¤¹¼çÍפÊÍ×°ø¤È¤Ê¤ë¡£ -¥ê¥¢¥ë¥¿¥¤¥à¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¤¿¤¤¤Æ¤¤¤Ï +も参照のこと)。 +.\" POSIX.1-2001: この変数は -1 か 0 か 200112l のいずれかに +.\" 定義すべきとなっている。 +.\" -1: 利用できない、0: sysconf() に問い合わせる +.\" glibc では 1 に定義している。 +.SH 注意 +メモリのロックの用途としては主に二つある: リアルタイム +アルゴリズムと高いセキュリティの必要なデータ処理である。リアルタイムの +アプリケーションは決定的なタイミングやスケジューリングを必要とするが、 +ページングは予期しないプログラムの実行遅延をもたらす主要な要因となる。 +リアルタイムのアプリケーションはたいていは .BR sched_setscheduler (2) -¤Ç¥ê¥¢¥ë¥¿¥¤¥à¥¹¥±¥¸¥å¡¼¥é¤ËÊѹ¹¤µ¤ì¤ë¡£ -°Å¹æ¤ä¥»¥­¥å¥ê¥Æ¥£¤Î¥½¥Õ¥È¥¦¥§¥¢¤Ï¤·¤Ð¤·¤Ð¥Ñ¥¹¥ï¡¼¥É¤äÈëÌ©¸°¤Î¥Ç¡¼¥¿¤Î -¤è¤¦¤Ê½ÅÍפʥХ¤¥ÈÎó¤ò°·¤¦¡£¥Ú¡¼¥¸¥ó¥°¤Î·ë²Ì¡¢¤³¤ì¤é¤ÎÈëÌ©¤¬ -¥¹¥ï¥Ã¥×ÍѤθÇÄêÇÞÂΤËžÁ÷¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£¤½¤·¤Æ¡¢¥»¥­¥å¥ê¥Æ¥£¡¦ -¥½¥Õ¥È¥¦¥§¥¢¤¬ RAM ¾å¤ÎÈëÌ©¤òºï½ü¤·¤Æ½ªÎ»¤·¤¿¤º¤Ã¤È¸å¤Ë¤Ê¤Ã¤Æ¤â¡¢ -¤³¤Î¥¹¥ï¥Ã¥×¤µ¤ì¤¿¥Ç¡¼¥¿¤Ë¤ÏŨ¤¬¥¢¥¯¥»¥¹¤Ç¤­¤ë²ÄǽÀ­¤¬¤¢¤ë -(¤·¤«¤·¡¢¥é¥Ã¥×¥È¥Ã¥×¤È¤¤¤¯¤Ä¤«¤Î¥Ç¥¹¥¯¥È¥Ã¥×¥³¥ó¥Ô¥å¡¼¥¿¤Î -¥µ¥¹¥Ú¥ó¥É¥â¡¼¥É¤Ï¥·¥¹¥Æ¥à¤Î RAM ¤ÎÆâÍƤò¥á¥â¥ê¤Î¥í¥Ã¥¯¤Ë´Ø¤ï¤é¤º -¥Ç¥£¥¹¥¯¤ËÊݸ¤¹¤ë¤³¤È¤ËÃí°Õ)¡£ +でリアルタイムスケジューラに変更される。 +暗号やセキュリティのソフトウェアはしばしばパスワードや秘密鍵のデータの +ような重要なバイト列を扱う。ページングの結果、これらの秘密が +スワップ用の固定媒体に転送されるかもしれない。そして、セキュリティ・ +ソフトウェアが RAM 上の秘密を削除して終了したずっと後になっても、 +このスワップされたデータには敵がアクセスできる可能性がある +(しかし、ラップトップといくつかのデスクトップコンピュータの +サスペンドモードはシステムの RAM の内容をメモリのロックに関わらず +ディスクに保存することに注意)。 -¥ê¥¢¥ë¥¿¥¤¥à¥×¥í¥»¥¹¤¬ +リアルタイムプロセスが .BR mlockall () -¤ò»È¤Ã¤Æ¥Ú¡¼¥¸¥Õ¥©¡¼¥ë¥È¤Ë¤è¤ëÃÙ±ä¤òËɤ´¤¦¤È¤¹¤ë¾ì¹ç¡¢ -´Ø¿ô¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤Æ¥Ú¡¼¥¸¥Õ¥©¡¼¥ë¥È¤¬È¯À¸¤·¤Ê¤¤¤è¤¦¤Ë¡¢ -»þ´ÖÀ©¸Â¤Î¸·¤·¤¤Éôʬ (time-critical section) ¤ËÆþ¤ëÁ°¤Ë -½½Ê¬¤ÊÎ̤Υí¥Ã¥¯¤µ¤ì¤¿¥¹¥¿¥Ã¥¯¤ò³ÎÊݤ·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¡£ -¤³¤ì¤ò¼Â¸½¤¹¤ë¤Ë¤Ï¡¢½½Ê¬¤ÊÂ礭¤µ¤Î¼«Æ°ÊÑ¿ô (¤ÎÇÛÎó) ¤ò³ÎÊݤ·¡¢ -¤³¤ì¤é¤Î¥¹¥¿¥Ã¥¯ÍѤΥڡ¼¥¸¤¬¥á¥â¥ê¾å¤Ë³ÎÊݤµ¤ì¤ë¤è¤¦¤Ë¤³¤ÎÇÛÎó¤Ë -½ñ¤­¹þ¤ß¤ò¹Ô¤¦´Ø¿ô¤òÍÑ°Õ¤·¡¢¤³¤ì¤ò¸Æ¤Ó½Ð¤»¤Ð¤è¤¤¡£¤³¤¦¤¹¤ë¤³¤È¤Ç¡¢ -½½Ê¬¤ÊÎ̤Υڡ¼¥¸¤¬¥¹¥¿¥Ã¥¯¤Ë¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¡¢RAM ¤Ë¥í¥Ã¥¯¤µ¤ì¤ë¡£ -¥À¥ß¡¼¤Î½ñ¤­¹þ¤ß¤ò¹Ô¤¦¤³¤È¤Ë¤è¤Ã¤Æ¡¢ -»þ´ÖÀ©¸Â¤Î¸·¤·¤¤Éôʬ (critical section) Æâ¤Ç¤Ï½ñ¤­¹þ¤ß»þ¥³¥Ô¡¼¤Ë¤è¤ë -¥Ú¡¼¥¸¥Õ¥©¡¼¥ë¥È¤µ¤¨¤âȯÀ¸¤·¤Ê¤¤¤³¤È¤¬Êݾڤµ¤ì¤ë¡£ +を使ってページフォールトによる遅延を防ごうとする場合、 +関数呼び出しによってページフォールトが発生しないように、 +時間制限の厳しい部分 (time-critical section) に入る前に +十分な量のロックされたスタックを確保しておく必要がある。 +これを実現するには、十分な大きさの自動変数 (の配列) を確保し、 +これらのスタック用のページがメモリ上に確保されるようにこの配列に +書き込みを行う関数を用意し、これを呼び出せばよい。こうすることで、 +十分な量のページがスタックにマッピングされ、RAM にロックされる。 +ダミーの書き込みを行うことによって、 +時間制限の厳しい部分 (critical section) 内では書き込み時コピーによる +ページフォールトさえも発生しないことが保証される。 -¥á¥â¥ê¥í¥Ã¥¯¤Ï +メモリロックは .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ë¤Ï·Ñ¾µ¤µ¤ì¤º¡¢ +で作成された子プロセスには継承されず、 .BR execve (2) -¤¬¸Æ¤Ð¤ì¤¿¤ê¡¢¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿¾ì¹ç¤Ï -¼«Æ°Åª¤Ëºï½ü¤µ¤ì¤ë (¥í¥Ã¥¯²ò½ü¤µ¤ì¤ë)¡£ +が呼ばれたり、プロセスが終了した場合は +自動的に削除される (ロック解除される)。 -¤¢¤ë¥¢¥É¥ì¥¹ÈϰϤËÂФ¹¤ë¥á¥â¥ê¥í¥Ã¥¯¤Ï¡¢¤½¤Î¥¢¥É¥ì¥¹ÈϰϤ¬ +あるアドレス範囲に対するメモリロックは、そのアドレス範囲が .BR munmap (2) -¤Ë¤è¤Ã¤Æ¥¢¥ó¥Þ¥Ã¥×¤µ¤ì¤¿¾ì¹ç¤Ïºï½ü¤µ¤ì¤ë¡£ +によってアンマップされた場合は削除される。 -¥á¥â¥ê¤Î¥í¥Ã¥¯¤ÏÎßÀѤ·¤Ê¤¤¡£ -¤¹¤Ê¤ï¤ÁÊ£¿ô²ó +メモリのロックは累積しない。 +すなわち複数回 .BR mlock () -¤ä +や .BR mlockall () -¤ò¸Æ¤Ó½Ð¤·¤Æ¥í¥Ã¥¯¤µ¤ì¤¿¥Ú¡¼¥¸¤Ç¤â¡¢ -Âбþ¤¹¤ëÈϰϤËÂФ·¤Æ +を呼び出してロックされたページでも、 +対応する範囲に対して .BR munlock () -¤ò 1 ²ó¸Æ¤Ó½Ð¤·¤¿¤ê +を 1 回呼び出したり .BR munlockall () -¤ò¸Æ¤Ó½Ð¤·¤¿¤ê¤¹¤ë¤À¤±¤Ç¥í¥Ã¥¯²ò½ü¤µ¤ì¤ë¡£ -Ê£¿ô¤Î¾ì½ê¤äÊ£¿ô¤Î¥×¥í¥»¥¹¤Ë¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤ë¥Ú¡¼¥¸¤Ï¡¢¾¯¤Ê¤¯¤È¤â°ì¤Ä¤Î¾ì½ê¡¢ -°ì¤Ä¤Î¥×¥í¥»¥¹¤Ç¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¸Â¤ê¤Ï RAM ¤Ë»Ä¤ê³¤±¤ë¡£ -.SS Linux ¤Ç¤ÎÃí°Õ -Linux ¤Ç¤Ï¡¢ +を呼び出したりするだけでロック解除される。 +複数の場所や複数のプロセスにマップされているページは、少なくとも一つの場所、 +一つのプロセスでロックされている限りは RAM に残り続ける。 +.SS Linux での注意 +Linux では、 .BR mlock () -¤È +と .BR munlock () -¤Ï¼«Æ°Åª¤Ë +は自動的に .I addr -¤òü¿ôÀÚ¤ê¼Î¤Æ¤Ë¤è¤ê°ìÈֶᤤ¥Ú¡¼¥¸¶­³¦¤Ø¤È´Ý¤á¤ë¡£ -¤·¤«¤· POSIX.1-2001 ¤Ï +を端数切り捨てにより一番近いページ境界へと丸める。 +しかし POSIX.1-2001 は .I addr -¤¬¥Ú¡¼¥¸¶­³¦¤Ë¹ç¤Ã¤Æ¤¤¤ë¤³¤È¤òÍ׵᤹¤ë¼ÂÁõ¤âµö¤·¤Æ¤¤¤ë¡£ -¤½¤Î¤¿¤á°Ü¿¢À­¤ò°Õ¿Þ¤·¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤­¤Á¤ó¤È¶­³¦¤Ë¹ç¤ï¤»¤¿Êý¤¬Îɤ¤¡£ -.SS À©¸Â¤È¸¢¸Â -Linux 2.6.8 °ÊÁ°¤Ç¤Ï¡¢¥á¥â¥ê¤ò¥í¥Ã¥¯¤¹¤ë¤¿¤á¤Ë¤ÏÆø¢ +がページ境界に合っていることを要求する実装も許している。 +そのため移植性を意図したアプリケーションではきちんと境界に合わせた方が良い。 +.SS 制限と権限 +Linux 2.6.8 以前では、メモリをロックするためには特権 .RB ( CAP_IPC_LOCK ) -¤¬É¬Íפǡ¢ -¥½¥Õ¥È»ñ¸»À©¸Â +が必要で、 +ソフト資源制限 .B RLIMIT_MEMLOCK -¤Ï¥×¥í¥»¥¹¤¬¤É¤ì¤À¤±¤Î¥á¥â¥ê¤ò¥í¥Ã¥¯¤Ç¤­¤ë¤«¤ÎÀ©¸Â¤òÄêµÁ¤¹¤ë¡£ +はプロセスがどれだけのメモリをロックできるかの制限を定義する。 -Linux 2.6.9 °Ê¹ß¤Ç¤Ï¡¢Æø¢¤ò»ý¤Ä¥×¥í¥»¥¹¤¬¥í¥Ã¥¯¤Ç¤­¤ë¥á¥â¥êÎ̤Ï̵À©¸Â¤È¤Ê¤ê¡¢ -Âå¤ï¤ê¤Ë¥½¥Õ¥È»ñ¸»À©¸Â +Linux 2.6.9 以降では、特権を持つプロセスがロックできるメモリ量は無制限となり、 +代わりにソフト資源制限 .B RLIMIT_MEMLOCK -¤ÏÆø¢¤ò»ý¤¿¤Ê¤¤¥×¥í¥»¥¹¤¬¥í¥Ã¥¯¤Ç¤­¤ë¥á¥â¥êÎ̤ÎÀ©¸Â¤òÄêµÁ¤¹¤ë¡£ -.SH ¥Ð¥° -2.4.17 ¤Þ¤Ç¤Î 2.4 ¥·¥ê¡¼¥º¤Î Linux ¥«¡¼¥Í¥ë¤Ë¤Ï¡¢ +は特権を持たないプロセスがロックできるメモリ量の制限を定義する。 +.SH バグ +2.4.17 までの 2.4 シリーズの Linux カーネルには、 .BR mlockall () .B MCL_FUTURE -¥Õ¥é¥°¤¬ +フラグが .BR fork (2) -¤Ç·Ñ¾µ¤µ¤ì¤ë¤È¸À¤¦¥Ð¥°¤¬¤¢¤ë¡£ -¤³¤ì¤Ï¥«¡¼¥Í¥ë 2.4.18 ¤Ç½¤Àµ¤µ¤ì¤¿¡£ +で継承されると言うバグがある。 +これはカーネル 2.4.18 で修正された。 -¥«¡¼¥Í¥ë 2.6.9 °Ê¹ß¤Ç¤Ï¡¢Æø¢¤ò»ý¤Ã¤¿¥×¥í¥»¥¹¤¬ +カーネル 2.6.9 以降では、特権を持ったプロセスが .I mlockall(MCL_FUTURE) -¤ò¸Æ¤Ó½Ð¤·¤¿¸å¤Ç¡¢Æø¢¤ò¤Ê¤¯¤·¤¿¾ì¹ç (Î㤨¤Ð¡¢ -¼Â¸ú UID ¤ò 0 °Ê³°¤ÎÃͤËÊѹ¹¤¹¤ë¤Ê¤É¤Ë¤è¤ê¡¢ +を呼び出した後で、特権をなくした場合 (例えば、 +実効 UID を 0 以外の値に変更するなどにより、 .B CAP_IPC_LOCK -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¼º¤Ã¤¿¾ì¹ç)¡¢¥ê¥½¡¼¥¹¾å¸Â +ケーパビリティを失った場合)、リソース上限 .B RLIMIT_MEMLOCK -¤Ë㤹¤ë¤È¡¢¤½¤ì°Ê¹ß¤Î¥á¥â¥ê³ä¤êÅö¤Æ (Î㤨¤Ð +に達すると、それ以降のメモリ割り当て (例えば .BR mmap (2), .BR brk (2)) -¤Ï¼ºÇÔ¤¹¤ë¡£ -.\" LKML ¤Î°Ê²¼¤Î¥¹¥ì¥Ã¥É¤ò»²¾È: +は失敗する。 +.\" LKML の以下のスレッドを参照: .\" http://marc.theaimsgroup.com/?l=linux-kernel&m=113801392825023&w=2 .\" "Rationale for RLIMIT_MEMLOCK" .\" 23 Jan 2006 -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mmap (2), .BR setrlimit (2), .BR shmctl (2), diff --git a/release/man2/mmap.2 b/release/man2/mmap.2 index ebe7b87f..788f62ca 100644 --- a/release/man2/mmap.2 +++ b/release/man2/mmap.2 @@ -59,12 +59,12 @@ .\" Updated 2008-12-24, Akihiro MOTOKI, LDP v3.15 .\" Updated 2010-04-18, Akihiro MOTOKI, LDP v3.24 .\" -.\"WORD file descriptor ¥Õ¥¡¥¤¥ëµ­½Ò»Ò +.\"WORD file descriptor ファイル記述子 .\" .TH MMAP 2 2009-09-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -mmap, munmap \- ¥Õ¥¡¥¤¥ë¤ä¥Ç¥Ð¥¤¥¹¤ò¥á¥â¥ê¤Ë¥Þ¥Ã¥×/¥¢¥ó¥Þ¥Ã¥×¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mmap, munmap \- ファイルやデバイスをメモリにマップ/アンマップする +.SH 書式 .nf .B #include .sp @@ -73,528 +73,528 @@ mmap, munmap \- .BI " int " fd ", off_t " offset ); .BI "int munmap(void *" addr ", size_t " length ); .fi -.SH ÀâÌÀ +.SH 説明 .BR mmap () -¤Ï¡¢¿·¤·¤¤¥Þ¥Ã¥Ô¥ó¥°¤ò¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î²¾ÁÛ¥¢¥É¥ì¥¹¶õ´Ö¤ËºîÀ®¤¹¤ë¡£ -¿·¤·¤¤¥Þ¥Ã¥Ô¥ó¥°¤Î³«»Ï¥¢¥É¥ì¥¹¤Ï +は、新しいマッピングを呼び出し元プロセスの仮想アドレス空間に作成する。 +新しいマッピングの開始アドレスは .I addr -¤Ç»ØÄꤵ¤ì¤ë¡£¥Þ¥Ã¥Ô¥ó¥°¤ÎŤµ¤Ï +で指定される。マッピングの長さは .I length -°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤ë¡£ +引き数で指定される。 .I addr -¤¬ NULL ¤Î¾ì¹ç¡¢¥«¡¼¥Í¥ë¤¬¥Þ¥Ã¥Ô¥ó¥°¤òºîÀ®¤¹¤ë¥¢¥É¥ì¥¹¤òÁªÂò¤¹¤ë¡£ -¤³¤ÎÊýË¡¤ÏºÇ¤â°Ü¿¢À­¤Î¤¢¤ë¿·¤·¤¤¥Þ¥Ã¥Ô¥ó¥°¤ÎºîÀ®ÊýË¡¤Ç¤¢¤ë¡£ +が NULL の場合、カーネルがマッピングを作成するアドレスを選択する。 +この方法は最も移植性のある新しいマッピングの作成方法である。 .I addr -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢¥«¡¼¥Í¥ë¤Ï¥Þ¥Ã¥Ô¥ó¥°¤ò¤É¤³¤ËÇÛÃÖ¤¹¤ë¤«¤Î¥Ò¥ó¥È¤È¤·¤Æ +が NULL でない場合、カーネルはマッピングをどこに配置するかのヒントとして .I addr -¤ò»ÈÍѤ¹¤ë¡£Linux ¤Ç¤Ï¡¢¥Þ¥Ã¥Ô¥ó¥°¤Ï¤¹¤°¶á¤¯¤Î¥Ú¡¼¥¸¶­³¦¤ËºîÀ®¤µ¤ì¤ë¡£ -.\" Linux 2.6.24 ¤è¤êÁ°¤Ç¤Ï¡¢¥¢¥É¥ì¥¹¤Ï (¥¢¥É¥ì¥¹¤¬Â礭¤¯¤Ê¤ëÊý¸þ¤Ç) -.\" ¤¹¤°¼¡¤Î¥Ú¡¼¥¸¶­³¦¤ËÀÚ¤ê¾å¤²¤é¤ì¤Æ¤¤¤¿¡£ -.\" Linux 2.6.24 °Ê¹ß¤Ç¤Ï¡¢Àڤ겼¤²¤é¤ì¤ë! -¿·¤·¤¤¥Þ¥Ã¥Ô¥ó¥°¤Î¥¢¥É¥ì¥¹¤Ï¡¢¸Æ¤Ó½Ð¤·¤ÎÊÖ¤êÃͤȤ·¤ÆÊÖ¤µ¤ì¤ë¡£ +を使用する。Linux では、マッピングはすぐ近くのページ境界に作成される。 +.\" Linux 2.6.24 より前では、アドレスは (アドレスが大きくなる方向で) +.\" すぐ次のページ境界に切り上げられていた。 +.\" Linux 2.6.24 以降では、切り下げられる! +新しいマッピングのアドレスは、呼び出しの返り値として返される。 -¥Õ¥¡¥¤¥ë¥Þ¥Ã¥Ô¥ó¥°¤ÎÆâÍƤϡ¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +ファイルマッピングの内容は、 +ファイルディスクリプタ .I fd -¤Ç»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë (¤â¤·¤¯¤Ï¾¤Î¥ª¥Ö¥¸¥§¥¯¥È) ¤Î¥ª¥Õ¥»¥Ã¥È +で参照されるファイル (もしくは他のオブジェクト) のオフセット .I offset -¤«¤é³«»Ï¤µ¤ì¤ë +から開始される .I length -¥Ð¥¤¥È¤Î¥Ç¡¼¥¿¤Ç½é´ü²½¤µ¤ì¤ë -(¥Õ¥¡¥¤¥ë¥Þ¥Ã¥Ô¥ó¥°¤Ï̵̾¥Þ¥Ã¥Ô¥ó¥°¤ÎÈ¿Âиì¤Ç¤¢¤ë¡£ +バイトのデータで初期化される +(ファイルマッピングは無名マッピングの反対語である。 .B MAP_ANONYMOUS -¤ò»²¾È)¡£ +を参照)。 .I offset -¤Ï +は .I sysconf(_SC_PAGE_SIZE) -¤¬ÊÖ¤¹¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +が返すページサイズの倍数でなければならない。 .LP -°ú¤­¿ô +引き数 .I prot -¤Ë¤Ï¡¢¥Þ¥Ã¥Ô¥ó¥°¤Î¥á¥â¥êÊݸî¤ò¤É¤Î¤è¤¦¤Ë¹Ô¤Ê¤¦¤«¤ò»ØÄꤹ¤ë -(¥Õ¥¡¥¤¥ë¤Î¥ª¡¼¥×¥ó¥â¡¼¥É¤ÈÌ·½â¤·¤Æ¤Ï¤¤¤±¤Ê¤¤)¡£ +には、マッピングのメモリ保護をどのように行なうかを指定する +(ファイルのオープンモードと矛盾してはいけない)。 .I prot -¤Ë¤Ï¡¢ +には、 .B PROT_NONE -¤«¡¢°Ê²¼¤Î¥Õ¥é¥°¤ò¤Ò¤È¤Ä°Ê¾å¥Ó¥Ã¥ÈËè¤ÎÏÀÍýÏ (OR) ¤ò¤È¤Ã¤¿¤â¤Î¤ò -»ØÄê¤Ç¤­¤ë¡£ +か、以下のフラグをひとつ以上ビット毎の論理和 (OR) をとったものを +指定できる。 .TP 1.1i .B PROT_EXEC -¥Ú¡¼¥¸¤Ï¼Â¹Ô²Äǽ¤Ç¤¢¤ë¡£ +ページは実行可能である。 .TP .B PROT_READ -¥Ú¡¼¥¸¤ÏÆɤ߹þ¤ß²Äǽ¤Ç¤¢¤ë¡£ +ページは読み込み可能である。 .TP .B PROT_WRITE -¥Ú¡¼¥¸¤Ë½ñ¤­¹þ¤ß²Äǽ¤Ç¤¢¤ë¡£ +ページに書き込み可能である。 .TP .B PROT_NONE -¥Ú¡¼¥¸¤Ë¤Ï¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¡£ +ページにはアクセスできない。 .LP .I flags -°ú¤­¿ô¤Ë¤è¤ê¡¢¥Þ¥Ã¥Ô¥ó¥°¤ËÂФ¹¤ë¹¹¿·¤¬Æ±¤¸Îΰè¤ò¥Þ¥Ã¥Ô¥ó¥°¤·¤Æ¤¤¤ë -¾¤Î¥×¥í¥»¥¹¤Ë¸«¤¨¤ë¤«¡¢¹¹¿·¤¬¥Þ¥Ã¥Ô¥ó¥°¸µ¤Î¥Õ¥¡¥¤¥ë¤òÄ̤¸¤Æ -ÅÁ¤¨¤é¤ì¤ë¤«¡¢¤¬·èÄꤵ¤ì¤ë¡£¤³¤ÎÆ°ºî¤Ï¡¢°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«°ì¤Ä¤À¤± -(Ê£¿ô¤Ï»ØÄê¤Ç¤­¤Ê¤¤) ¤ò +引き数により、マッピングに対する更新が同じ領域をマッピングしている +他のプロセスに見えるか、更新がマッピング元のファイルを通じて +伝えられるか、が決定される。この動作は、以下の値のいずれか一つだけ +(複数は指定できない) を .I flags -¤Ë´Þ¤á¤ë¤³¤È¤Ç»ØÄꤹ¤ë¡£ +に含めることで指定する。 .TP 1.1i .B MAP_SHARED -¤³¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò¶¦Í­¤¹¤ë¡£ -¥Þ¥Ã¥Ô¥ó¥°¤ËÂФ¹¤ë¹¹¿·¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤ò¥Þ¥Ã¥Ô¥ó¥°¤·¤Æ¤¤¤ë¾¤Î¥×¥í¥»¥¹ -¤«¤é¸«¤¨¤ë¡£¹¹¿·¤Ï¥Þ¥Ã¥Ô¥ó¥°¸µ¤Î¥Õ¥¡¥¤¥ë¤òÄ̤¸¤ÆÅÁ¤¨¤é¤ì¤ë¡£ -¤¿¤À¤·¡¢¥Õ¥¡¥¤¥ë¤Î¼ÂºÝ¤Î¹¹¿·¤Ï +このマッピングを共有する。 +マッピングに対する更新はこのファイルをマッピングしている他のプロセス +から見える。更新はマッピング元のファイルを通じて伝えられる。 +ただし、ファイルの実際の更新は .BR msync (2) -¤Þ¤¿¤Ï +または .BR munmap () -¤¬¸Æ¤Ð¤ì¤ë¤Þ¤Ç¹Ô¤ï¤ì¤Ê¤¤¤³¤È¤â¤¢¤ë¡£ +が呼ばれるまで行われないこともある。 .TP .B MAP_PRIVATE -¥×¥é¥¤¥Ù¡¼¥È¤Ê copy-on-write (½ñ¤­¹þ¤ß»þ¥³¥Ô¡¼) ¥Þ¥Ã¥×¤òÀ¸À®¤¹¤ë¡£ -¥Þ¥Ã¥Ô¥ó¥°¤ËÂФ¹¤ë¹¹¿·¤ÏƱ¤¸¥Õ¥¡¥¤¥ë¤ò¥Þ¥Ã¥Ô¥ó¥°¤·¤Æ¤¤¤ë¾¤Î¥×¥í¥»¥¹ -¤Ë¤Ï¸«¤¨¤º¡¢¹¹¿·¤¬¥Þ¥Ã¥Ô¥ó¥°¸µ¤Î¥Õ¥¡¥¤¥ë¤òÄ̤¸¤ÆÅÁ¤¨¤é¤ì¤ë¤³¤È¤â¤Ê¤¤¡£ +プライベートな copy-on-write (書き込み時コピー) マップを生成する。 +マッピングに対する更新は同じファイルをマッピングしている他のプロセス +には見えず、更新がマッピング元のファイルを通じて伝えられることもない。 .BR mmap () -¤Î¸Æ¤Ó½Ð¤·¸å¤Ë¥Þ¥Ã¥Ô¥ó¥°¸µ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¹Ô¤ï¤ì¤¿Êѹ¹¤¬¡¢ -¥Þ¥Ã¥×Îΰè¤ËÈ¿±Ç¤µ¤ì¤ë¤«¤É¤¦¤«¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +の呼び出し後にマッピング元のファイルに対して行われた変更が、 +マップ領域に反映されるかどうかは規定されていない。 .LP -¾åµ­¤ÎÆó¤Ä¤Î¥Õ¥é¥°¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +上記の二つのフラグは POSIX.1-2001 で規定されている。 -¤µ¤é¤Ë¡¢°Ê²¼¤ÎÃͤΤ¦¤Á 0 ¸Ä°Ê¾å¤ò¥Ó¥Ã¥ÈËè¤ÎÏÀÍýÏ (OR) ¤Ç +さらに、以下の値のうち 0 個以上をビット毎の論理和 (OR) で .I flags -¤Ë»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +に指定することができる。 .TP -.BR MAP_32BIT " (Linux 2.4.20, 2.6 °Ê¹ß)" -¥Þ¥Ã¥Ô¥ó¥°¤ò¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ÎÀèƬ 2 ¥®¥¬¥Ð¥¤¥È°ÊÆâ¤ËÇÛÃÖ¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤Î¤Ï x86-64 ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¾å¤Î -64 ¥Ó¥Ã¥È¥×¥í¥°¥é¥à¤Î¤ß¤Ç¤¢¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬Äɲ䵤줿¤Î¤Ï¡¢¥¹¥ì¥Ã¥É¤Î¥¹¥¿¥Ã¥¯¤ò¥á¥â¥ê¤ÎÀèƬ 2GB °ÊÆâ¤Î -¤É¤³¤«¤Ë³ä¤êÅö¤Æ¤ë¤³¤È¤Ç¡¢½é´ü¤Î¤¤¤¯¤Ä¤«¤Î 64 ¥Ó¥Ã¥È¥×¥í¥»¥Ã¥µ¤Ë¤ª¤±¤ë -¥³¥ó¥Æ¥­¥¹¥È¥¹¥¤¥Ã¥Á¤ÎÀ­Ç½ÌäÂê¤ò²þÁ±¤¹¤ë¤¿¤á¤Ç¤¢¤ë¡£ +.BR MAP_32BIT " (Linux 2.4.20, 2.6 以降)" +マッピングをプロセスのアドレス空間の先頭 2 ギガバイト以内に配置する。 +このフラグがサポートされているのは x86-64 アーキテクチャ上の +64 ビットプログラムのみである。 +このフラグが追加されたのは、スレッドのスタックをメモリの先頭 2GB 以内の +どこかに割り当てることで、初期のいくつかの 64 ビットプロセッサにおける +コンテキストスイッチの性能問題を改善するためである。 .\" See http://lwn.net/Articles/294642 "Tangled up in threads", 19 Aug 08 -ºÇ¶á¤Î x86-64 ¥×¥í¥»¥Ã¥µ¤Ç¤Ï¤³¤ÎÀ­Ç½ÌäÂê¤Ï¤â¤Ï¤ä¸ºß¤»¤º¡¢ -¤½¤Î¤è¤¦¤Ê¥·¥¹¥Æ¥à¤Ç¤Ï¤³¤Î¥Õ¥é¥°¤ò»ÈÍѤ¹¤ëɬÍפϤʤ¤¡£ +最近の x86-64 プロセッサではこの性能問題はもはや存在せず、 +そのようなシステムではこのフラグを使用する必要はない。 .B MAP_FIXED -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ +がセットされている場合は、 .B MAP_32BIT -¥Õ¥é¥°¤Ï̵»ë¤µ¤ì¤ë¡£ +フラグは無視される。 .TP .B MAP_ANON .B MAP_ANONYMOUS -¤ÎƱµÁ¸ì¡£Èó¿ä¾©¡£ +の同義語。非推奨。 .TP .B MAP_ANONYMOUS -¥Þ¥Ã¥Ô¥ó¥°¤Ï¤É¤Î¥Õ¥¡¥¤¥ë¤È¤â´ØÏ¢ÉÕ¤±¤µ¤ì¤Ê¤¤¡£ -¥Þ¥Ã¥Ô¥ó¥°¤ÎÆâÍÆ¤Ï 0 ¤Ç½é´ü²½¤µ¤ì¤ë¡£ -°ú¤­¿ô +マッピングはどのファイルとも関連付けされない。 +マッピングの内容は 0 で初期化される。 +引き数 .I fd -¤È +と .I offset -¤Ï̵»ë¤µ¤ì¤ë¡£ -¤¿¤À¤·¡¢¼ÂÁõ¤Ë¤è¤Ã¤Æ¤Ï +は無視される。 +ただし、実装によっては .B MAP_ANONYMOUS -(¤â¤·¤¯¤Ï +(もしくは .BR MAP_ANON ) -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +が指定された場合、 .I fd -¤ò \-1 ¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¡¢ -°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ïɬ¤º +を \-1 にする必要があり、 +移植性が必要なアプリケーションでは必ず .I fd -¤ò \-1 ¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +を \-1 にすべきである。 .B MAP_ANONYMOUS -¤È +と .B MAP_SHARED -¤òÁȤ߹ç¤ï¤»¤Æ¤ÎÍøÍÑ¤Ï -¥«¡¼¥Í¥ë 2.4 °Ê¹ß¤Î Linux ¤Ç¤Î¤ß¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +を組み合わせての利用は +カーネル 2.4 以降の Linux でのみサポートされている。 .TP .B MAP_DENYWRITE -¤³¤Î¥Õ¥é¥°¤Ï̵»ë¤µ¤ì¤ë -.\" 1.1.36 ¤ÇƳÆþ¤µ¤ì¡¢1.3.24 ¤Çºï½ü¤µ¤ì¤¿¡£ -(¤º¤Ã¤ÈÁ°¤Ï¡¢¥Þ¥Ã¥×¸µ¤Î¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤­¹þ¤ß¤ò¹Ô¤ª¤¦¤È¤¹¤ë¤È¡¢¥¨¥é¡¼ +このフラグは無視される +.\" 1.1.36 で導入され、1.3.24 で削除された。 +(ずっと前は、マップ元のファイルへの書き込みを行おうとすると、エラー .B ETXTBUSY -¤Ç¼ºÇÔ¤¹¤ë¤è¤¦¤Ë¥·¥°¥Ê¥ë¤¬ÀßÄꤵ¤ì¤Æ¤¤¤¿¤¬¡¢¤³¤ì¤Ï denial-of-service -(¥µ¡¼¥Ó¥¹µñÈÝ) ¹¶·â¤Î¸¶°ø¤È¤Ê¤Ã¤¿)¡£ +で失敗するようにシグナルが設定されていたが、これは denial-of-service +(サービス拒否) 攻撃の原因となった)。 .TP .B MAP_EXECUTABLE -¤³¤Î¥Õ¥é¥°¤Ï̵»ë¤µ¤ì¤ë¡£ -.\" 1.1.38 ¤ÇƳÆþ¤µ¤ì¡¢1.3.24 ¤Çºï½ü¤µ¤ì¤¿¡£ -.\" proc_follow_link ¤Ç¥Æ¥¹¥È¤µ¤ì¤ë¥Õ¥é¥°¤Ç¤¢¤ë¡£(¤º¤Ã¤ÈÁ°¤Ï¡¢ -.\" ¥Þ¥Ã¥×¸µ¤Î¥Õ¥¡¥¤¥ë¤¬¼Â¹Ô²Äǽ¤Ç¤¢¤ë¤³¤È¤òÃΤ餻¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤¿¡£ -.\" ¤·¤«¤·¡¢¤½¤Î¾ðÊó¤Ï¼ÂºÝ¤Ë¤Ï¤É¤³¤Ç¤â»È¤ï¤ì¤Ê¤«¤Ã¤¿¡£) -.\" Linus ¤Ï MAP_EXECUTABLE ¤Ë´ØÏ¢¤·¤Æ DoS ¤ÎÏäò¤·¤¿¤¬¡¢ -.\" MAP_DENYWRITE ¤Î¤³¤È¤ò¹Í¤¨¤Æ¤¤¤¿¤Î¤«¤Ê¡© +このフラグは無視される。 +.\" 1.1.38 で導入され、1.3.24 で削除された。 +.\" proc_follow_link でテストされるフラグである。(ずっと前は、 +.\" マップ元のファイルが実行可能であることを知らせるようになっていた。 +.\" しかし、その情報は実際にはどこでも使われなかった。) +.\" Linus は MAP_EXECUTABLE に関連して DoS の話をしたが、 +.\" MAP_DENYWRITE のことを考えていたのかな? .TP .B MAP_FILE -¸ß´¹À­¤Î¤¿¤á¤Î¥Õ¥é¥°¡£Ìµ»ë¤µ¤ì¤ë¡£ +互換性のためのフラグ。無視される。 .\" On some systems, this was required as the opposite of .\" MAP_ANONYMOUS -- mtk, 1 May 2007 .TP .B MAP_FIXED .I addr -¤ò¥¢¥É¥ì¥¹¤Î¥Ò¥ó¥È¤È¤·¤Æ»ÈÍѤ¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ +をアドレスのヒントとして使用するのではなく、 .I addr -¤Ç»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤ò¤½¤Î¤Þ¤Þ»ÈÍѤ·¤Æ¥Þ¥Ã¥Ô¥ó¥°¤òÇÛÃÖ¤¹¤ë¡£ +で指定されたアドレスをそのまま使用してマッピングを配置する。 .I addr -¤Ï¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +はページサイズの倍数でなければならない。 .I addr -¤È +と .I len -¤Ç»ØÄꤵ¤ì¤¿¥á¥â¥êÎΰ褬´û¸¤Î¥Þ¥Ã¥Ô¥ó¥°¤Î¥Ú¡¼¥¸¤È½Å¤Ê¤ë¾ì¹ç¡¢ -´û¸¤Î¥Þ¥Ã¥Ô¥ó¥°¤Î½Å¤Ê¤Ã¤¿Éôʬ¤Ï¼Î¤Æ¤é¤ì¤ë¡£ -¤â¤·»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤¬»ÈÍѤǤ­¤Ê¤¤¾ì¹ç¡¢ +で指定されたメモリ領域が既存のマッピングのページと重なる場合、 +既存のマッピングの重なった部分は捨てられる。 +もし指定されたアドレスが使用できない場合、 .BR mmap () -¤Ï¼ºÇÔ¤¹¤ë¡£ -¥Þ¥Ã¥Ô¥ó¥°¤ËÂФ·¤Æ¸ÇÄꥢ¥É¥ì¥¹¤òÍ׵᤹¤ë¤Î¤Ï°Ü¿¢À­¤ÎÌ̤ÇÎô¤ë¤Î¤Ç¡¢ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï»ÈÍѤ·¤Ê¤¤¤³¤È¤ò¿ä¾©¤¹¤ë¡£ +は失敗する。 +マッピングに対して固定アドレスを要求するのは移植性の面で劣るので、 +このオプションは使用しないことを推奨する。 .TP .B MAP_GROWSDOWN -¥¹¥¿¥Ã¥¯ÍѤ˻ÈÍѤµ¤ì¤ë¡£¥Þ¥Ã¥Ô¥ó¥°¤ò¥á¥â¥êÆâ¤ÇµÕ¸þ¤­¤Ë¹Ô¤¦¤³¤È¤ò -¥«¡¼¥Í¥ë²¾ÁÛ¥á¥â¥ê¥·¥¹¥Æ¥à¤Ë»Ø¼¨¤¹¤ë¡£ -(ÌõÃí¡§¥Þ¥Ã¥Ô¥ó¥°¤ÏÄ̾ï¤Ï¥á¥â¥ê¡¦¥¢¥É¥ì¥¹¤¬Áý²Ã¤¹¤ë¸þ¤­¤Ë¹Ô¤¦¤¬¡¢ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤ÈµÕ¸þ¤­¤Ë¥Þ¥Ã¥Ô¥ó¥°¤ò¹Ô¤¦) +スタック用に使用される。マッピングをメモリ内で逆向きに行うことを +カーネル仮想メモリシステムに指示する。 +(訳注:マッピングは通常はメモリ・アドレスが増加する向きに行うが、 +このオプションを指定すると逆向きにマッピングを行う) .TP -.BR MAP_HUGETLB " (Linux 2.6.32 °Ê¹ß)" -"huge page" ¤ò»È¤Ã¤Æ¥Þ¥Ã¥Ô¥ó¥°¤ò³ä¤êÅö¤Æ¤ë¡£ -¾Ü¤·¤¤¾ðÊó¤Ï¡¢¥«¡¼¥Í¥ë¡¦¥½¡¼¥¹¤Î +.BR MAP_HUGETLB " (Linux 2.6.32 以降)" +"huge page" を使ってマッピングを割り当てる。 +詳しい情報は、カーネル・ソースの .I Documentation/vm/hugetlbpage.txt -¤ò»²¾È¡£ +を参照。 .TP -.BR MAP_LOCKED " (Linux 2.5.37 °Ê¹ß)" -¥Þ¥Ã¥×¤µ¤ì¤¿Îΰè¤Î¥Ú¡¼¥¸¤ò +.BR MAP_LOCKED " (Linux 2.5.37 以降)" +マップされた領域のページを .BR mlock (2) -¤ÎÊýË¡¤Ç¥á¥â¥êÆâ¤Ë¥í¥Ã¥¯¤¹¤ë¡£ -¤½¤ì°ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¤³¤Î¥Õ¥é¥°¤Ï̵»ë¤µ¤ì¤ë¡£ -.\" ¤³¤Î¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¤¿¥Ú¡¼¥¸¤Ï¥¹¥ï¥Ã¥×¥¢¥¦¥È -.\" ¤µ¤ì¤Ê¤¤¡£ +の方法でメモリ内にロックする。 +それ以前のカーネルでは、このフラグは無視される。 +.\" このフラグがセットされていると、マッピングされたページはスワップアウト +.\" されない。 .TP -.BR MAP_NONBLOCK " (Linux 2.5.46 °Ê¹ß)" +.BR MAP_NONBLOCK " (Linux 2.5.46 以降)" .B MAP_POPULATE -¤ÈÁȤ߹ç¤ï¤»¤¿¾ì¹ç¤Î¤ß°ÕÌ£¤ò»ý¤Ä¡£ -read-ahead (Á°¤â¤Ã¤ÆÆɤ߹þ¤à¤³¤È) ¤ò¼Â¹Ô¤·¤Ê¤¤¡£ -ñ¤Ë¡¢¤¹¤Ç¤Ë RAM ¾å¤Ë¸ºß¤¹¤ë¥Ú¡¼¥¸¤ËÂФ·¤Æ -¥Ú¡¼¥¸¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤òºîÀ®¤¹¤ë¤À¤±¤Ç¤¢¤ë¡£ -Linux 2.6.23 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¥Õ¥é¥°¤Ï +と組み合わせた場合のみ意味を持つ。 +read-ahead (前もって読み込むこと) を実行しない。 +単に、すでに RAM 上に存在するページに対して +ページテーブルエントリを作成するだけである。 +Linux 2.6.23 以降では、このフラグは .B MAP_POPULATE -¤Ë²¿¤Î±Æ¶Á¤âÍ¿¤¨¤Ê¤¤¡£ -¤¤¤Ä¤« +に何の影響も与えない。 +いつか .B MAP_POPULATE -¤È +と .B MAP_NONBLOCK -¤òÁȤ߹ç¤ï¤»¤¿¾ì¹ç¤ÎÆ°ºî¤Ï¼ÂÁõ¤·Ä¾¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +を組み合わせた場合の動作は実装し直されるかもしれない。 .TP .B MAP_NORESERVE -¤³¤Î¥Þ¥Ã¥Ô¥ó¥°¤ËÂФ¹¤ë¥¹¥ï¥Ã¥×¶õ´Ö¤ÎͽÌó¤ò¹Ô¤ï¤Ê¤¤¡£ -¥¹¥ï¥Ã¥×¶õ´Ö¤òͽÌó¤·¤¿¾ì¹ç¤Ï¡¢¤³¤Î¥Þ¥Ã¥Ô¥ó¥°¤ÎÊѹ¹¤¬É¬¤º²Äǽ¤Ê¤³¤È¤¬ -Êݾڤµ¤ì¤ë¡£Í½Ìó¤ò¹Ô¤ï¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ÊªÍý¥á¥â¥ê¤Ë¶õ¤­¤¬¤Ê¤¤¤È -½ñ¤­¹þ¤ß»þ¤Ë +このマッピングに対するスワップ空間の予約を行わない。 +スワップ空間を予約した場合は、このマッピングの変更が必ず可能なことが +保証される。予約を行わなかった場合、物理メモリに空きがないと +書き込み時に .B SIGSEGV -¥¨¥é¡¼¤ò¼õ¤±¼è¤ë¤³¤È¤¬¤¢¤ë¡£ +エラーを受け取ることがある。 .BR proc (5) -¤Î +の .I /proc/sys/vm/overcommit_memory -¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¤ÎµÄÏÀ¤â»²¾È¡£ -¥Ð¡¼¥¸¥ç¥ó 2.6 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¤³¤Î¥Õ¥é¥°¤Ï½ñ¤­¹þ¤ß²Äǽ¤Ê -¥×¥é¥¤¥Ù¡¼¥È¡¦¥Þ¥Ã¥Ô¥ó¥°¤Ë¤Ä¤¤¤Æ¤Î¤ß¸ú²Ì¤¬¤¢¤Ã¤¿¡£ +ファイルについての議論も参照。 +バージョン 2.6 より前のカーネルでは、このフラグは書き込み可能な +プライベート・マッピングについてのみ効果があった。 .TP -.BR MAP_POPULATE " (Linux 2.5.46 °Ê¹ß)" -¥Þ¥Ã¥Ô¥ó¥°ÍѤΥڡ¼¥¸¥Æ¡¼¥Ö¥ë¤òÇÛÃÖ (populate) ¤¹¤ë -¥Õ¥¡¥¤¥ë¥Þ¥Ã¥Ô¥ó¥°¤Î¾ì¹ç¤Ë¤Ï¡¢¤³¤ì¤Ë¤è¤ê¥Õ¥¡¥¤¥ë¤¬ÀèÆÉ¤ß (read-ahead) -¤¬¹Ô¤ï¤ì¤ë¡£¤³¤Î°Ê¸å¤Ï¡¢¥Þ¥Ã¥Ô¥ó¥°¤ËÂФ¹¤ë¥¢¥¯¥»¥¹¤¬¥Ú¡¼¥¸¥Õ¥©¡¼¥ë¥È¤Ç -¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¤³¤È¤¬¤Ê¤¯¤Ê¤ë¡£ +.BR MAP_POPULATE " (Linux 2.5.46 以降)" +マッピング用のページテーブルを配置 (populate) する +ファイルマッピングの場合には、これによりファイルが先読み (read-ahead) +が行われる。この以後は、マッピングに対するアクセスがページフォールトで +ブロックされることがなくなる。 .BR MAP_POPULATE -¤Ï Linux 2.6.23 °Ê¹ß¤Ç¥×¥é¥¤¥Ù¡¼¥È¡¦¥Þ¥Ã¥Ô¥ó¥°¤Ë¤Ä¤¤¤Æ¤Î¤ß -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +は Linux 2.6.23 以降でプライベート・マッピングについてのみ +サポートされている。 .LP -¾åµ­¤Î¥Õ¥é¥°¤ÎÃæ¤Ç¤Ï¡¢ +上記のフラグの中では、 .B MAP_FIXED -¤À¤±¤¬ POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¤Ç +だけが POSIX.1-2001 で規定されている。 +しかしながら、ほとんどのシステムで .B MAP_ANONYMOUS -(¤Þ¤¿¤Ï¤½¤ÎƱµÁ¸ì¤Ç¤¢¤ë +(またはその同義語である .BR MAP_ANON ) -¤â¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +もサポートされている。 .TP -.BR MAP_STACK " (Linux 2.6.27 °Ê¹ß)" -¥×¥í¥»¥¹¤ä¥¹¥ì¥Ã¥É¤Î¥¹¥¿¥Ã¥¯¤ËŬ¤·¤¿¥¢¥É¥ì¥¹¤Ë¥Þ¥Ã¥Ô¥ó¥°¤ò³ä¤êÅö¤Æ¤ë¡£ -¸½ºß¤Î¤È¤³¤í¡¢¤³¤Î¥Õ¥é¥°¤Ï²¿¤â¤·¤Ê¤¤¤¬¡¢ -glibc ¤Î¥¹¥ì¥Ã¥É¼ÂÁõ¤Ç¤Ï»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¥¹¥¿¥Ã¥¯¤Î³ä¤êÅö¤Æ¤Ë´Ø¤·¤ÆÆÃÊ̤ʰ·¤¤ -¤¬É¬Íפʾì¹ç¤Ë¡¢glibc ¤Ë¤½¤Î¥µ¥Ý¡¼¥È¤ò¸å¤ÇÆ©²áŪ¤Ë¼ÂÁõ¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë -¤¿¤á¤Ç¤¢¤ë¡£ +.BR MAP_STACK " (Linux 2.6.27 以降)" +プロセスやスレッドのスタックに適したアドレスにマッピングを割り当てる。 +現在のところ、このフラグは何もしないが、 +glibc のスレッド実装では使用されている。 +これは、いくつかのアーキテクチャではスタックの割り当てに関して特別な扱い +が必要な場合に、glibc にそのサポートを後で透過的に実装できるようにする +ためである。 .\" See http://lwn.net/Articles/294642 "Tangled up in threads", 19 Aug 08 .\" commit cd98a04a59e2f94fa64d5bf1e26498d27427d5e7 .\" http://thread.gmane.org/gmane.linux.kernel/720412 .\" "pthread_create() slow for many threads; also time to revisit 64b .\" context switch optimization?" .LP -¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¾åµ­°Ê³°¤Ë¥Õ¥é¥°¤È¤·¤Æ +いくつかのシステムでは、上記以外にフラグとして .BR MAP_AUTOGROW , .BR MAP_AUTORESRV , .BR MAP_COPY , .B MAP_LOCAL -¤¬µ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +が規定されている。 .LP .BR mmap () -¤Ë¤è¤Ã¤Æ¥Þ¥Ã¥×¤µ¤ì¤¿¥á¥â¥ê¤Î°À­¤Ï +によってマップされたメモリの属性は .BR fork (2) -¤ÎºÝ¤Ë·Ñ¾µ¤µ¤ì¤ë¡£ +の際に継承される。 .LP -¥Õ¥¡¥¤¥ë¤Ï¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÀ°¿ôÇܤÎÎΰè¤Ë¥Þ¥Ã¥×¤µ¤ì¤ë¡£¥µ¥¤¥º¤¬¥Ú¡¼¥¸¥µ¥¤¥º¤Î -À°¿ôÇܤǤʤ¤¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¡¢¥Þ¥Ã¥×»þ¤Ë»Ä¤ê¤ÎÎΰè¤Ï 0 ¤ÇËä¤á¤é¤ì¡¢¤³¤ÎÎΰè¤Ø -½ñ¤­¤³¤ß¤ò¹Ô¤Ã¤Æ¤â¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£¥Þ¥Ã¥Ô¥ó¥°¤ò¹Ô¤Ã¤¿¸µ -¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤òÊѹ¹¤·¤¿¾ì¹ç¡¢¸µ¥Õ¥¡¥¤¥ë¤ÎÄɲ䵤줿¤êºï½ü¤µ¤ì¤¿Îΰè¤ËÂбþ -¤¹¤ë¥Þ¥Ã¥×¤µ¤ì¤¿¥Ú¡¼¥¸¤ËÂФ·¤Æ¤É¤Î¤è¤¦¤Ê±Æ¶Á¤¬¤¢¤ë¤«¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +ファイルはページサイズの整数倍の領域にマップされる。サイズがページサイズの +整数倍でないファイルの場合、マップ時に残りの領域は 0 で埋められ、この領域へ +書きこみを行ってもファイルに書き出されることはない。マッピングを行った元 +ファイルのサイズを変更した場合、元ファイルの追加されたり削除された領域に対応 +するマップされたページに対してどのような影響があるかは規定されていない。 .SS munmap() -¥·¥¹¥Æ¥à¥³¡¼¥ë +システムコール .BR munmap () -¤Ï»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹ÈϰϤΥޥåפò¾Ãµî¤·¡¢ -¤³¤ì°Ê¹ß¤Î¤½¤ÎÈÏ°ÏÆâ¤Ø¤Î¥á¥â¥ê»²¾È¤ÏÉÔÀµ¤È¤Ê¤ë¡£ -¤³¤ÎÎΰè¤Ï¡¢¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿¤È¤­¤Ë¤â¼«Æ°Åª¤Ë¥¢¥ó¥Þ¥Ã¥×¤µ¤ì¤ë¡£ -°ìÊý¡¢¥Õ¥¡¥¤¥ëµ­½Ò»Ò¤ò¥¯¥í¡¼¥º¤·¤Æ¤â¡¢¤³¤ÎÎΰè¤Ï¥¢¥ó¥Þ¥Ã¥×¤µ¤ì¤Ê¤¤¡£ +は指定されたアドレス範囲のマップを消去し、 +これ以降のその範囲内へのメモリ参照は不正となる。 +この領域は、プロセスが終了したときにも自動的にアンマップされる。 +一方、ファイル記述子をクローズしても、この領域はアンマップされない。 .LP .I addr -¥¢¥É¥ì¥¹¤Ï¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÀ°¿ôÇܤǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£»ØÄꤵ¤ì¤¿ÈϰϤΰìÉôʬ¤ò -´Þ¤àÁ´¤Æ¤Î¥Ú¡¼¥¸¤Ï¥¢¥ó¥Þ¥Ã¥×¤µ¤ì¡¢¤³¤ì°Ê¹ß¤Ë¤³¤ì¤é¤Î¥Ú¡¼¥¸¤Ø¤Î»²¾È¤¬¤¢¤ë¤È +アドレスはページサイズの整数倍でなければならない。指定された範囲の一部分を +含む全てのページはアンマップされ、これ以降にこれらのページへの参照があると .B SIGSEGV -¤¬È¯À¸¤¹¤ë¡£ -»ØÄꤷ¤¿ÈÏ°ÏÆâ¤Ë¥Þ¥Ã¥×¤µ¤ì¤¿¥Ú¡¼¥¸¤¬°ì¤Ä¤â´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ç¤â -¥¨¥é¡¼¤Ë¤Ê¤é¤Ê¤¤¡£ -.SS ¥Õ¥¡¥¤¥ë¤È´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Þ¥Ã¥Ô¥ó¥°¤ËÂФ¹¤ë¥¿¥¤¥à¥¹¥¿¥ó¥×¤Î¹¹¿· -¥Õ¥¡¥¤¥ë¤È´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Þ¥Ã¥Ô¥ó¥°¤Î¾ì¹ç¡¢¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î +が発生する。 +指定した範囲内にマップされたページが一つも含まれていない場合でも +エラーにならない。 +.SS ファイルと関連付けられたマッピングに対するタイムスタンプの更新 +ファイルと関連付けられたマッピングの場合、マッピングされたファイルの .I st_atime -¥Õ¥£¡¼¥ë¥É¤Ï¡¢ +フィールドは、 .BR mmap () -¤µ¤ì¤Æ¤«¤é¥¢¥ó¥Þ¥Ã¥× (unmap) ¤µ¤ì¤ë¤Þ¤Ç¤Î´Ö¤Ë¹¹¿·¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ -¤½¤ì¤Þ¤Ç¤Ë¹¹¿·¤¬¹Ô¤ï¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¥Þ¥Ã¥×¤µ¤ì¤¿¥Ú¡¼¥¸¤Ø¤ÎºÇ½é¤Î»²¾È¤¬¤¢¤Ã¤¿ -ºÝ¤Ë¹¹¿·¤µ¤ì¤ë¡£ +されてからアンマップ (unmap) されるまでの間に更新されることがある。 +それまでに更新が行われていなければ、マップされたページへの最初の参照があった +際に更新される。 .LP .B PROT_WRITE -¤È +と .B MAP_SHARED -¤ÎξÊý¤ò»ØÄꤷ¤Æ¥Þ¥Ã¥×¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¡¢½ñ¤­¹þ¤ß¤¬¤¢¤ë¤È¡¢ +の両方を指定してマップされたファイルの場合、書き込みがあると、 .I st_ctime -¤È +と .I st_mtime -¤Îξ¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥Þ¥Ã¥×¤µ¤ì¤¿Îΰè¤Ø¤Î½ñ¤­¹þ¤ß¤è¤ê¸å¤Ç¡¢ +の両フィールドは、マップされた領域への書き込みより後で、 .B MS_SYNC -¤Þ¤¿¤Ï +または .B MS_ASYNC -¥Õ¥é¥°¤ò»ØÄꤷ¤Æ +フラグを指定して .BR msync (2) -¤¬¸Æ¤Ð¤ì¤ëÁ°¤Þ¤Ç¤Ë¹¹¿·¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +が呼ばれる前までに更新される。 +.SH 返り値 .BR mmap () -¤ÏÀ®¸ù¤¹¤ë¤È¥Þ¥Ã¥×¤µ¤ì¤¿Îΰè¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¼ºÇÔ¤¹¤ë¤ÈÃÍ +は成功するとマップされた領域へのポインタを返す。 +失敗すると値 .B MAP_FAILED -(¤Ä¤Þ¤ê +(つまり .IR "(void\ *)\ \-1" ) -¤òÊÖ¤·¡¢ +を返し、 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤˤ·¤¿¤¬¤Ã¤Æ¥»¥Ã¥È¤µ¤ì¤ë¡£ +がエラーの内容にしたがってセットされる。 .BR munmap () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¼ºÇÔ¤¹¤ë¤È \-1 ¤òÊÖ¤·¡¢ +は成功すると 0 を返す。失敗すると \-1 を返し、 .I errno -¤¬¥»¥Ã¥È¤µ¤ì¤ë (¿¤¯¤Î¾ì¹ç +がセットされる (多くの場合 .B EINVAL -¤Ë¤Ê¤ë¤À¤í¤¦)¡£ -.SH ¥¨¥é¡¼ +になるだろう)。 +.SH エラー .TP .B EACCES -°Ê²¼¤Î¤¤¤º¤ì¤«¤Î¾ì¹ç¡£ -¥Õ¥¡¥¤¥ëµ­½Ò»Ò¤Î»²¾ÈÀ褬Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤Ï¤Ê¤¤ (non-regular file) ¡£ +以下のいずれかの場合。 +ファイル記述子の参照先が通常のファイルではない (non-regular file) 。 .B MAP_PRIVATE -¤òÍ׵ᤷ¤¿¤¬ +を要求したが .I fd -¤ÏÆɤ߹þ¤ßÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +は読み込み用にオープンされていない。 .B MAP_SHARED -¤òÍ׵ᤷ¤Æ +を要求して .B PROT_WRITE -¤ò¥»¥Ã¥È¤·¤¿¤¬ +をセットしたが .I fd -¤ÏÆɤ߽ñ¤­¥â¡¼¥É +は読み書きモード .RB ( O_RDWR ) -¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤¡¢ +でオープンされていない、 .B PROT_WRITE -¤ò¥»¥Ã¥È¤·¤¿¤¬¡¢¥Õ¥¡¥¤¥ë¤ÏÄɲà (append) ÀìÍѤǤ¢¤ë¡£ +をセットしたが、ファイルは追加 (append) 専用である。 .TP .B EAGAIN -¥Õ¥¡¥¤¥ë¤¬¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¡£¤Þ¤¿¤Ï¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¥á¥â¥ê¤¬Â¿¤¹¤®¤ë +ファイルがロックされている。またはロックされているメモリが多すぎる .RB ( setrlimit (2) -¤ò»²¾È)¡£ +を参照)。 .TP .B EBADF .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ëµ­½Ò»Ò (file descriptor) ¤Ç¤Ï¤Ê¤¤ -(¤«¤Ä +が有効なファイル記述子 (file descriptor) ではない +(かつ .B MAP_ANONYMOUS -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤)¡£ +がセットされていない)。 .TP .B EINVAL .I addr -¤« +か .I length -¤« +か .I offset -¤¬Å¬ÀڤǤʤ¤ -(Î㤨¤Ð¡¢Â礭¤¹¤®¤ë¤È¤«¡¢¥Ú¡¼¥¸¶­³¦¤Ë¥¢¥é¥¤¥ó¥á¥ó¥È¤µ¤ì¤Æ¤¤¤Ê¤¤)¡£ +が適切でない +(例えば、大きすぎるとか、ページ境界にアラインメントされていない)。 .TP .B EINVAL -(Linux 2.6.12 °Ê¹ß) +(Linux 2.6.12 以降) .I length -¤¬ 0 ¤Ç¤¢¤Ã¤¿¡£ +が 0 であった。 .TP .B EINVAL .I flags -¤Ë +に .B MAP_PRIVATE -¤È +と .B MAP_SHARED -¤Î¤É¤Á¤é¤â´Þ¤Þ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¡¢¤â¤·¤¯¤Ï -¤½¤ÎξÊý¤¬´Þ¤Þ¤ì¤Æ¤¤¤¿¡£ +のどちらも含まれていなかった、もしくは +その両方が含まれていた。 .TP .B ENFILE -.\" ¤³¤ì¤Ï¶¦Í­Æ¿Ì¾ (anonymous) ¥»¥°¥á¥ó¥È¤Î¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ +.\" これは共有匿名 (anonymous) セグメントのためのものである。 .\" [2.6.7] shmem_zero_setup()-->shmem_file_setup()-->get_empty_filp() -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ÎÁí¿ô¤¬¥·¥¹¥Æ¥à¤ÎÀ©¸Â¤Ë㤷¤¿¡£ +オープンされたファイルの総数がシステムの制限に達した。 .\" .TP .\" .B ENOEXEC -.\" ¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ßÍѤ˥ޥåפǤ­¤Ê¤«¤Ã¤¿¡£ +.\" ファイルを読み込み用にマップできなかった。 .TP .B ENODEV -»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¥á¥â¥ê¥Þ¥Ã¥Ô¥ó¥°¤ò¥µ¥Ý¡¼¥È -¤·¤Æ¤¤¤Ê¤¤¡£ +指定されたファイルが置かれているファイルシステムがメモリマッピングをサポート +していない。 .TP .B ENOMEM -¥á¥â¥ê¤Ë¶õ¤­¤¬¤Ê¤¤¡¢¤Þ¤¿¤Ï½èÍýÃæ¤Î¥×¥í¥»¥¹¤Î¥Þ¥Ã¥Ô¥ó¥°¿ô¤¬ºÇÂç¿ô¤òĶ²á¤·¤¿¡£ +メモリに空きがない、または処理中のプロセスのマッピング数が最大数を超過した。 .TP .B EPERM .I prot -°ú¤­¿ô¤Ï +引き数は .B PROT_EXEC -¤ò¹Ô¤¦¤è¤¦¤Ë»ØÄꤵ¤ì¤Æ¤¤¤ë¤¬¡¢ -no-exec ¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î¥Õ¥¡¥¤¥ë¤Ë -¥Þ¥Ã¥×Îΰ褬Âбþ¤·¤Æ¤¤¤ë¡£ -.\" (2.4.25 / 2.6.0 °Ê¹ß) +を行うように指定されているが、 +no-exec でマウントされたファイルシステム上のファイルに +マップ領域が対応している。 +.\" (2.4.25 / 2.6.0 以降) .TP .B ETXTBSY .B MAP_DENYWRITE -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤¬ +がセットされているが .I fd -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ï½ñ¤­¹þ¤ßÍѤ˳«¤«¤ì¤Æ¤¤¤ë¡£ +で指定されているオブジェクトは書き込み用に開かれている。 .LP -¥Þ¥Ã¥×Îΰè¤òÍøÍѤ¹¤ëºÝ¤Ë¡¢°Ê²¼¤Î¥·¥°¥Ê¥ë¤¬È¯À¸¤¹¤ë¤³¤È¤¬¤¢¤ë: +マップ領域を利用する際に、以下のシグナルが発生することがある: .TP .B SIGSEGV -Æɤ߹þ¤ßÀìÍÑ¤Ç mmap ¤µ¤ì¤¿Îΰè¤Ø½ñ¤­¹þ¤ß¤ò¹Ô¤ª¤¦¤È¤·¤¿¡£ +読み込み専用で mmap された領域へ書き込みを行おうとした。 .TP .B SIGBUS -¥Ð¥Ã¥Õ¥¡¤Î¤¦¤Á¡¢¥Õ¥¡¥¤¥ë¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤Ê¤¤Éôʬ -(Î㤨¤Ð¥Õ¥¡¥¤¥ëËöÈø¤ò±Û¤¨¤¿Éôʬ¤Ê¤É¡£¤³¤ì¤Ë¤Ï -¾¤Î¥×¥í¥»¥¹¤¬¥Õ¥¡¥¤¥ë¤òÀÚ¤êµÍ¤á¤¿¾ì¹ç¤Ê¤É¤â´Þ¤Þ¤ì¤ë) -¤Ë¥¢¥¯¥»¥¹¤·¤è¤¦¤È¤·¤¿¡£ -.SH ½àµò +バッファのうち、ファイルに関連づけられていない部分 +(例えばファイル末尾を越えた部分など。これには +他のプロセスがファイルを切り詰めた場合なども含まれる) +にアクセスしようとした。 +.SH 準拠 SVr4, 4.4BSD, POSIX.1-2001. -.\" SVr4 ¤Ë¤Ï¤µ¤é¤Ë ENXIO ¤È ENODEV ¤Î¥¨¥é¡¼¥³¡¼¥É¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ -.\" SUSv2 ¤Ë¤Ï¤µ¤é¤Ë EMFILE ¤È EOVERFLOW ¤Î¥¨¥é¡¼¥³¡¼¥É¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ -.SH ²ÄÍÑÀ­ +.\" SVr4 にはさらに ENXIO と ENODEV のエラーコードについての記述がある。 +.\" SUSv2 にはさらに EMFILE と EOVERFLOW のエラーコードについての記述がある。 +.SH 可用性 .BR mmap (), .BR msync (2) .BR munmap () -¤¬ÍøÍѲÄǽ¤Ê POSIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +が利用可能な POSIX システムでは、 .B _POSIX_MAPPED_FILES -¤Ï ¤Ç 0 ¤è¤êÂ礭¤ÊÃͤËÄêµÁ¤µ¤ì¤ë +は で 0 より大きな値に定義される .RB ( sysconf (3) -¤â»²¾È¤Î¤³¤È)¡£ -.\" POSIX.1-2001: _POSIX_MAPPED_FILES ¤Ï -1 ¤« 0 ¤« 200112L ¤Î -.\" ¤¤¤º¤ì¤«¤ËÄêµÁ¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -.\" -1: ÍøÍÑÉԲġ¢0: sysconf() ¤ËÌ䤤¤¢¤ï¤»¤ë -.\" glibc ¤Ç¤Ï POSIX_MAPPED_FILES ¤Ï 1 ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -¥«¡¼¥Í¥ë 2.4 °Ê¹ß¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +も参照のこと)。 +.\" POSIX.1-2001: _POSIX_MAPPED_FILES は -1 か 0 か 200112L の +.\" いずれかに定義されることになっている。 +.\" -1: 利用不可、0: sysconf() に問いあわせる +.\" glibc では POSIX_MAPPED_FILES は 1 に定義されている。 +.SH 注意 +カーネル 2.4 以降、このシステムコールは .BR mmap2 (2) -¤Ë¼è¤Ã¤ÆÂå¤ï¤é¤ì¤¿¡£ -¸½ºß¤Ç¤Ï¡¢ -.\" ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë¤è¤ê°Û¤Ê¤ë¤¬¡¢ glibc 2.1/2.2 ¤¢¤¿¤ê¤«¤é¡£ -glibc ¤Î +に取って代わられた。 +現在では、 +.\" プラットフォームにより異なるが、 glibc 2.1/2.2 あたりから。 +glibc の .BR mmap () -¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï +のラッパー関数は .I offset -¤òŬÀÚ¤ËÄ´À°¤·¤Æ¤«¤é +を適切に調整してから .BR mmap2 (2) -¤òµ¯Æ°¤¹¤ë¡£ +を起動する。 -(i386 ¤Ê¤É¤Î) ¤¤¤¯¤Ä¤«¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢ +(i386 などの) いくつかのアーキテクチャでは、 .B PROT_WRITE -¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢°ÅÌۤΤ¦¤Á¤Ë +をセットすると、暗黙のうちに .B PROT_READ -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .B PROT_READ -¤ò¥»¥Ã¥È¤·¤¿ºÝ¤Ë°ÅÌۤΤ¦¤Á¤Ë +をセットした際に暗黙のうちに .B PROT_EXEC -¤¬¥»¥Ã¥È¤µ¤ì¤ë¤«¤É¤¦¤«¤Ï¡¢¥¢¡¼¥­¥Æ¥¯¥Á¥ã°Í¸¤Ç¤¢¤ë¡£ -°Ü¿¢À­¤ò¹Íθ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ -¿·µ¬¤Ë¥Þ¥Ã¥×¤·¤¿Îΰè¤Ç¥³¡¼¥É¤ò¼Â¹Ô¤·¤¿¤¤¾ì¹ç¤Ï¡¢¾ï¤Ë +がセットされるかどうかは、アーキテクチャ依存である。 +移植性を考慮したプログラムでは、 +新規にマップした領域でコードを実行したい場合は、常に .B PROT_EXEC -¤ò¥»¥Ã¥È¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +をセットすべきである。 -¥Þ¥Ã¥Ô¥ó¥°¤òºîÀ®¤¹¤ë°Ü¿¢À­¤Î¤¢¤ëÊýË¡¤Ï¡¢ +マッピングを作成する移植性のある方法は、 .I addr -¤Ë 0 (NULL) ¤ò»ØÄꤷ¡¢ +に 0 (NULL) を指定し、 .I flags -¤«¤é +から .B MAP_FIXED -¤ò³°¤¹¤³¤È¤Ç¤¢¤ë¡£ -¤³¤Î¾ì¹ç¡¢¥·¥¹¥Æ¥à¤¬¥Þ¥Ã¥Ô¥ó¥°ÍѤΥ¢¥É¥ì¥¹¤ÎÁªÂò¤ò¹Ô¤¦¡£ -¥¢¥É¥ì¥¹¤Ï´û¸¤Î¥Þ¥Ã¥Ô¥ó¥°¤È¾×Æͤ·¤Ê¤¤¤è¤¦¤Ë¡¢ -¤«¤Ä 0 ¤Ë¤Ê¤é¤Ê¤¤¤è¤¦¤ËÁªÂò¤µ¤ì¤ë¡£ +を外すことである。 +この場合、システムがマッピング用のアドレスの選択を行う。 +アドレスは既存のマッピングと衝突しないように、 +かつ 0 にならないように選択される。 .B MAP_FIXED -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¡¢¤«¤Ä +フラグが指定され、かつ .I addr -¤¬ 0 (NULL) -¤Î¾ì¹ç¤Ë¤Ï¡¢¥Þ¥Ã¥×¤µ¤ì¤ë¥¢¥É¥ì¥¹¤¬ 0 (NULL) ¤Ë¤Ê¤ë¡£ -.SH ¥Ð¥° -Linux ¤Ë¤ª¤¤¤Æ¤Ï¡¢¾åµ­¤Î +が 0 (NULL) +の場合には、マップされるアドレスが 0 (NULL) になる。 +.SH バグ +Linux においては、上記の .B MAP_NORESERVE -¤Ç½Ò¤Ù¤é¤ì¤Æ¤¤¤ë¤è¤¦¤ÊÊݾڤϤʤ¤¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥·¥¹¥Æ¥à¤¬¥á¥â¥ê¤ò»È¤¤Àڤ俾ì¹ç¤Ë¤Ï¡¢ -¤É¤Î¥×¥í¥»¥¹¤¬¤¤¤Ä¶¯À©½ªÎ»¤µ¤ì¤ë¤«Ê¬¤«¤é¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +で述べられているような保証はない。 +デフォルトでは、システムがメモリを使い切った場合には、 +どのプロセスがいつ強制終了されるか分からないからである。 -2.6.7 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +2.6.7 より前のカーネルでは、 .I prot -¤Ë +に .B PROT_NONE -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Î¤ß¡¢ +が指定された場合にのみ、 .B MAP_POPULATE -¥Õ¥é¥°¤¬¸úÎϤò»ý¤Ä¡£ +フラグが効力を持つ。 -SUSv3 ¤Ç¤Ï¡¢ +SUSv3 では、 .I length -¤¬ 0 ¤Î¾ì¹ç¡¢ +が 0 の場合、 .BR mmap () -¤Ï¼ºÇÔ¤¹¤ë¤Èµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£¤·¤«¤·¤Ê¤¬¤é¡¢2.6.12 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -¤³¤Î¾ì¹ç¤Ë +は失敗すると規定されている。しかしながら、2.6.12 より前のカーネルでは、 +この場合に .BR mmap () -¤ÏÀ®¸ù¤·¤Æ¤¤¤¿ (¥Þ¥Ã¥Ô¥ó¥°¤ÏºîÀ®¤µ¤ì¤º¡¢ +は成功していた (マッピングは作成されず、 .I addr -¤¬ÊÖ¤µ¤ì¤Æ¤¤¤¿)¡£ -¥«¡¼¥Í¥ë 2.6.12 °Ê¹ß¤Ç¤Ï¡¢ +が返されていた)。 +カーネル 2.6.12 以降では、 .BR mmap () -¤Ï¥¨¥é¡¼ +はエラー .B EINVAL -¤Ç¼ºÇÔ¤¹¤ë¡£ -.SH Îã +で失敗する。 +.SH 例 .\" FIXME . Add an example here that uses an anonymous shared region for .\" IPC between parent and child. .PP -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢°ìÈÖÌܤΥ³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿ -¥Õ¥¡¥¤¥ë¤Î°ìÉô¤òɸ½à½ÐÎϤËɽ¼¨¤¹¤ë¡£ -ɽ¼¨¤¹¤ëÈϰϤϡ¢ÆóÈÖÌÜ¡¢»°ÈÖÌܤΥ³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤ÇÅϤµ¤ì¤ë -¥ª¥Õ¥»¥Ã¥È¤ÈŤµ¤Ç»ØÄꤵ¤ì¤ë¡£ -¤³¤Î¥×¥í¥°¥é¥à¤Ï¡¢»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ÎɬÍפʥڡ¼¥¸¤Î¥á¥â¥ê¡¦ -¥Þ¥Ã¥Ô¥ó¥°¤òºîÀ®¤·¡¢ +以下のプログラムは、一番目のコマンドライン引き数で指定された +ファイルの一部を標準出力に表示する。 +表示する範囲は、二番目、三番目のコマンドライン引き数で渡される +オフセットと長さで指定される。 +このプログラムは、指定されたファイルの必要なページのメモリ・ +マッピングを作成し、 .BR write (2) -¤ò»È¤Ã¤Æ½ê˾¤Î¥Ð¥¤¥È¤ò½ÐÎϤ¹¤ë¡£ +を使って所望のバイトを出力する。 .nf #include @@ -666,7 +666,7 @@ main(int argc, char *argv[]) } /* main */ .fi \"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getpagesize (2), .BR mincore (2), .BR mlock (2), @@ -682,6 +682,6 @@ main(int argc, char *argv[]) .br B.O. Gallmeister, POSIX.4, O'Reilly, pp. 128-129 and 389-391. .\" -.\" »ä¤Î¸å¤Ë¤Ä¤¤¤Æ¸À¤Ã¤Æ¤ß¤Æ: ¥×¥é¥¤¥Ù¡¼¥È¤ÊÆɤ߹þ¤ßÀìÍÑ¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ï -.\" ¶¦Í­¤µ¤ì¤¿Æɤ߹þ¤ßÀìÍÑ¤Î¥Þ¥Ã¥Ô¥ó¥°¤È 100% Åù¤·¤¤¡£ -.\" ¡Ö¤â¤·¡×¤â¡Ö¤·¤«¤·¡×¤â¡Ö¤¿¤Ö¤ó¡×¤â¤Ê¤¤¡£-- Linus +.\" 私の後について言ってみて: プライベートな読み込み専用のマッピングは +.\" 共有された読み込み専用のマッピングと 100% 等しい。 +.\" 「もし」も「しかし」も「たぶん」もない。-- Linus diff --git a/release/man2/mmap2.2 b/release/man2/mmap2.2 index d46f507d..d6e3b7f0 100644 --- a/release/man2/mmap2.2 +++ b/release/man2/mmap2.2 @@ -34,71 +34,71 @@ .\" Updated 2007-09-07, Akihiro MOTOKI, LDP v2.64 .\" .TH MMAP2 2 2008-04-22 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -mmap2 \- ¥Õ¥¡¥¤¥ë¤ä¥Ç¥Ð¥¤¥¹¤ò¥á¥â¥ê¤Ë¥Þ¥Ã¥×¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mmap2 \- ファイルやデバイスをメモリにマップする +.SH 書式 .nf .B #include .sp .BI "void *mmap2(void *" addr ", size_t " length ", int " prot , .BI " int " flags ", int " fd ", off_t " pgoffset ); .fi -.SH ÀâÌÀ +.SH 説明 .BR mmap2 () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +システムコールは .BR mmap (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ -¤¿¤À¤·ºÇ¸å¤Î°ú¤­¿ô¤Ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤Î¥ª¥Õ¥»¥Ã¥È¤ò +と全く同じように動作する。 +ただし最後の引き数には、ファイルのオフセットを .RB ( mmap (2) -¤¬¹Ô¤Ã¤Æ¤¤¤ë¡¢¥Ð¥¤¥Èñ°Ì¤Ç¤Ï¤Ê¤¯) -4096 ¥Ð¥¤¥È¤òñ°Ì¤È¤·¤Æ»ØÄꤹ¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢32 ¥Ó¥Ã¥È¤Î +が行っている、バイト単位ではなく) +4096 バイトを単位として指定する。 +これにより、32 ビットの .I off_t -¤ò»È¤¦¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç (2^44 ¥Ð¥¤¥È¤Þ¤Ç¤Î) -Â礭¤Ê¥Õ¥¡¥¤¥ë¤ò¥Þ¥Ã¥×¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +を使うアプリケーションで (2^44 バイトまでの) +大きなファイルをマップできるようになる。 +.SH 返り値 +成功した場合、 .BR mmap2 () -¤Ï¥Þ¥Ã¥×¤µ¤ì¤¿Îΰè¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +はマップされた領域へのポインタを返す。 +エラーの場合は \-1 が返されて、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EFAULT -¥æ¡¼¥¶¶õ´Ö¤«¤é¥Ç¡¼¥¿¤ò¼èÆÀ¤¹¤ë¤È¤­¤ËÌäÂ꤬¤¢¤Ã¤¿¡£ +ユーザ空間からデータを取得するときに問題があった。 .TP .B EINVAL -(¥Ú¡¼¥¸¥µ¥¤¥º¤¬ 4096 ¥Ð¥¤¥È¤Ç¤Ê¤¤¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë¤ª¤¤¤Æ) +(ページサイズが 4096 バイトでないプラットフォームにおいて) .I offset * 4096 -¤¬¥·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤Ç¤Ï¤Ê¤¤¡£ +がシステムのページサイズの倍数ではない。 .PP .BR mmap2 () -¤Ï +は .BR mmap (2) -¤ÈƱ¤¸¥¨¥é¡¼¤òÊÖ¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +と同じエラーを返すことができる。 +.SH バージョン .BR mmap2 () -¤Ï¡¢Linux 2.3.31 °Ê¹ß¤Ç»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH ½àµò -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -¸½ºß¤Ç¤Ï¡¢glibc ¤Î +は、Linux 2.3.31 以降で使用可能である。 +.SH 準拠 +このシステムコールは Linux 独自である。 +.SH 注意 +現在では、glibc の .BR mmap () -¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢ +のラッパー関数は、 .BR mmap (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤Ï¤Ê¤¯¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë +システムコールではなく、このシステムコール .RB ( mmap2 (2)) -¤òµ¯Æ°¤¹¤ë¡£ +を起動する。 -ia64 ¤Ç¤Ï¡¢ +ia64 では、 .I offset -¤Îñ°Ì¤Ï¡¢¼ÂºÝ¤Ë¤Ï¥·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥º¤Ç¤¢¤ê¡¢ -4096 ¥Ð¥¤¥È¤Ç¤Ï¤Ê¤¤¡£ +の単位は、実際にはシステムのページサイズであり、 +4096 バイトではない。 .\" ia64 can have page sizes ranging from 4kB to 64kB. .\" On cris, it looks like the unit might also be the page size, .\" which is 8192 bytes. -- mtk, June 2007 -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getpagesize (2), .BR mmap (2), .BR mremap (2), diff --git a/release/man2/modify_ldt.2 b/release/man2/modify_ldt.2 index b2a081cc..4fc9355a 100644 --- a/release/man2/modify_ldt.2 +++ b/release/man2/modify_ldt.2 @@ -29,47 +29,47 @@ .\" Updated 2007-06-18, Akihiro MOTOKI , LDP v2.57 .\" .\"WORD: ldt ldt -.\"WORD: local descriptor table ¥í¡¼¥«¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Æ¡¼¥Ö¥ë -.\"WORD: processer ¥×¥í¥»¥Ã¥µ -.\"WORD: entry ¥¨¥ó¥È¥ê +.\"WORD: local descriptor table ローカル・ディスクリプタ・テーブル +.\"WORD: processer プロセッサ +.\"WORD: entry エントリ .\" .TH MODIFY_LDT 2 2007-06-01 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -modify_ldt \- ldt ¤òÀßÄê¤Þ¤¿¤Ï¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +modify_ldt \- ldt を設定または取得する +.SH 書式 .nf .B #include .sp .BI "int modify_ldt(int " "func" ", void *" "ptr" ", unsigned long " "bytecount" ); .fi -.SH ÀâÌÀ +.SH 説明 .BR modify_ldt () -¤Ï¥×¥í¥»¥¹¤Î¥í¡¼¥«¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Æ¡¼¥Ö¥ë (local descriptor table; ldt) -¤òÆɤ߽ñ¤­¤¹¤ë¡£ -ldt ¤Ï i386 ¥×¥í¥»¥Ã¥µ¤Ç»ÈÍѤµ¤ì¤ë¥×¥í¥»¥¹¤´¤È¤Î¥á¥â¥ê´ÉÍý¥Æ¡¼¥Ö¥ë¤Ç¤¢¤ë¡£ -¤³¤Î¥Æ¡¼¥Ö¥ë¤Ë´Ø¤·¤Æ¤Î¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï Intel 386 processor handbook ¤ò -»²¾È¤¹¤ë¤³¤È¡£ +はプロセスのローカル・ディスクリプタ・テーブル (local descriptor table; ldt) +を読み書きする。 +ldt は i386 プロセッサで使用されるプロセスごとのメモリ管理テーブルである。 +このテーブルに関してのより詳しい情報は Intel 386 processor handbook を +参照すること。 .PP .I func -¤¬ 0 ¤Ê¤é¤Ð¡¢ +が 0 ならば、 .BR modify_ldt () -¤Ï ldt ¤ò +は ldt を .I ptr -¤¬»Ø¤·¤Æ¤¤¤ë¥á¥â¥ê¤ËÆɤ߹þ¤à¡£ -Æɤ߹þ¤à¥Ð¥¤¥È¿ô¤Ï¼ÂºÝ¤Î ldt ¤Î¥µ¥¤¥º¤« +が指しているメモリに読み込む。 +読み込むバイト数は実際の ldt のサイズか .I bytecount -¤è¤ê¾®¤µ¤¤Êý¤Ç¤¢¤ë¡£ +より小さい方である。 .PP .I func -¤¬ 1 ¤Ê¤é¤Ð¡¢ +が 1 ならば、 .BR modify_ldt () -¤Ï ldt ¥¨¥ó¥È¥ê¤Î°ì¤Ä¤òÊѹ¹¤¹¤ë¡£ +は ldt エントリの一つを変更する。 .I ptr -¤Ï +は .I user_desc -¹½Â¤ÂΤò»Ø¤·¡¢ +構造体を指し、 .I bytecount -¤Ï¤³¤Î¹½Â¤ÂΤÎÂ礭¤µ¤ËÅù¤·¤¯¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +はこの構造体の大きさに等しくなければならない。 .\" .\" FIXME ? say something about func == 2 ans func == 0x11? .\" In Linux 2.4, func == 2 returned "the default ldt" @@ -77,7 +77,7 @@ ldt .\" Linux 2.4 and 2.6 implement an operation for func == 0x11 .I user_desc -¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +構造体は \fI\fP で以下のように定義されている: .in +4n .nf @@ -95,53 +95,53 @@ struct user_desc { .fi .in .PP -Linux 2.4 °ÊÁ°¤Ç¤Ï¡¢¤³¤Î¹½Â¤ÂÎ¤Ï +Linux 2.4 以前では、この構造体は .I modify_ldt_ldt_s -¤È¤¤¤¦Ì¾Á°¤Ç¤¢¤Ã¤¿¡£ +という名前であった。 .\" .PP -.\" ldt ¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë¸ÇÍ­¤Î¤â¤Î¤Ç¤¢¤ë¡£ -.\" ¾¤Î¥×¥í¥»¥¹¤ä¥«¡¼¥Í¥ë¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ò´Þ¤à¤è¤¦¤Ë ldt ¤òÊѹ¹¤·¤è¤¦¤¹¤ë¤È¡¢ -.\" ¥×¥í¥»¥¹¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤Î¥á¥â¥ê¤Ë¥¢¥¯¥»¥¹¤·¤è¤¦¤È¤·¤¿¤È¤­¤Ë¡¢ -.\" ¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó°ãÈ¿ (segmentation violation) ¤Ë¤Ê¤ë¡£ -.\" ¥á¥â¥êÊݸî¤Ï¥Ú¡¼¥¸¥ó¥°¥ì¥¤¥ä¤Ç¼Â»Ü¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï¡¢ +.\" ldt は呼び出し元プロセスに固有のものである。 +.\" 他のプロセスやカーネルのアドレス空間を含むように ldt を変更しようすると、 +.\" プロセスアドレス空間の外のメモリにアクセスしようとしたときに、 +.\" セグメンテーション違反 (segmentation violation) になる。 +.\" メモリ保護はページングレイヤで実施される。 +.SH 返り値 +成功した場合は、 .BR modify_ldt () -¤Ï (Æɤ߹þ¤ß¤Î¾ì¹ç¤Ï) ¼ÂºÝ¤ËÆɤ߹þ¤ó¤À¥Ð¥¤¥È¿ô¡¢ -¤Þ¤¿¤Ï (½ñ¤­¹þ¤ß¤Î¾ì¹ç¤Ï) 0 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï +は (読み込みの場合は) 実際に読み込んだバイト数、 +または (書き込みの場合は) 0 を返す。 +失敗した場合は .BR modify_ldt () -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤ò¥¨¥é¡¼¤ò¼¨¤¹ÃͤËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +をエラーを示す値に設定する。 +.SH エラー .TP .B EFAULT .I ptr -¤¬¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がアドレス空間の外を指している。 .TP .B EINVAL .I ptr -¤¬ 0 ¤Ç¤¢¤ë¡¢ -¤Þ¤¿¤Ï +が 0 である、 +または .I func -¤¬ 1 ¤Ç +が 1 で .I bytecount -¤¬ +が .I modify_ldt_ldt_s -¹½Â¤ÂΤΥµ¥¤¥º¤ÈÅù¤·¤¯¤Ê¤¤¤«¡¢ +構造体のサイズと等しくないか、 .I func -¤¬ 1 ¤Ç¿·¤·¤¤ ldt ¥¨¥ó¥È¥ê¤¬Ìµ¸ú¤ÊÃͤǤ¢¤ë¡£ +が 1 で新しい ldt エントリが無効な値である。 .TP .B ENOSYS .I func -¤¬ 0 ¤Ç¤â 1 ¤Ç¤â¤Ê¤¤¡£ -.SH ½àµò -¤³¤Î¥³¡¼¥ë¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï -»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ -.SH Ãí°Õ -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +が 0 でも 1 でもない。 +.SH 準拠 +このコールは Linux 特有であり、移植を意図したプログラムでは +使用してはいけない。 +.SH 注意 +glibc はこのシステムコールに対するラッパー関数を提供していない。 .BR syscall (2) -¤ò»È¤Ã¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を使って呼び出すこと。 +.SH 関連項目 .BR vm86 (2) diff --git a/release/man2/mount.2 b/release/man2/mount.2 index 3af9197b..972cfb0e 100644 --- a/release/man2/mount.2 +++ b/release/man2/mount.2 @@ -55,16 +55,16 @@ .\" Updated 2008-11-10, Akihiro MOTOKI, LDP v3.11 .\" Updated 2010-04-23, Akihiro MOTOKI, LDP v3.24 .\" -.\"WORD: lazy umount Ãٱ䥢¥ó¥Þ¥¦¥ó¥È -.\"WORD: Linux-specific Linux ÆÃÍ­ +.\"WORD: lazy umount 遅延アンマウント +.\"WORD: Linux-specific Linux 特有 .\" .\" motoki 2005-02-28: -.\" - subtree ¤ò¤É¤¦Ìõ¤¹¤«¡£ÉôʬÌÚ¡¢Éôʬ¥Ä¥ê¡¼¡¢¥µ¥Ö¥Ä¥ê¡¼¡£¡£¡£²¿¤«¤Ê¤¤¤«¡£ +.\" - subtree をどう訳すか。部分木、部分ツリー、サブツリー。。。何かないか。 .\" .TH MOUNT 2 2010-09-10 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -mount \- ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥Þ¥¦¥ó¥È/¥¢¥ó¥Þ¥¦¥ó¥È¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mount \- ファイルシステムをマウント/アンマウントする +.SH 書式 .nf .B "#include " .sp @@ -72,41 +72,41 @@ mount \- .BI " const char *" filesystemtype ", unsigned long " mountflags , .BI " const void *" data ); .fi -.SH ÀâÌÀ +.SH 説明 .BR mount () -¤Ï +は .I source -¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à (¥Ç¥Ð¥¤¥¹Ì¾¤Ç¤¢¤ë¤³¤È¤¬Â¿¤¤¤¬¡¢ -¥Ç¥£¥ì¥¯¥È¥ê̾¤ä¥À¥ß¡¼¤Î¾ì¹ç¤â¤¢¤ë) ¤ò +で指定されたファイルシステム (デバイス名であることが多いが、 +ディレクトリ名やダミーの場合もある) を .I target -¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ë·ë¤Ó¤Ä¤±¤ë¡£ +で指定されたディレクトリに結びつける。 -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Þ¥¦¥ó¥È¤ò¹Ô¤¦¤Ë¤Ï¡¢ -ŬÀڤʸ¢¸Â (Linux ¤Ç¤Ï +ファイルシステムのマウントを行うには、 +適切な権限 (Linux では .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティ) が必要である。 -Linux 2.4 °Ê¹ß¡¢¤Ò¤È¤Ä¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òÊ£¿ô¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ë -·ë¤Ó¤Ä¤±¤ë¤³¤È¤¬¤Ç¤­¡¢Æ±¤¸¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ËÊ£¿ô¤Î¥Þ¥¦¥ó¥È¤ò¥¹¥¿¥Ã¥¯ -¤µ¤»¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +Linux 2.4 以降、ひとつのファイルシステムを複数のマウントポイントに +結びつけることができ、同じマウントポイントに複数のマウントをスタック +させることもできる。 .\" Multiple mounts on same mount point: since 2.3.99pre7. -°ú¤­¿ô +引き数 .I filesystemtype -¤È¤·¤Æ¥«¡¼¥Í¥ë¤¬Âбþ¤·¤Æ¤¤¤ëÃͤϡ¢ +としてカーネルが対応している値は、 .I /proc/filesystems -¤Ç»²¾È¤Ç¤­¤ë (Î㤨¤Ð "minix", "ext2", "ext3", "jfs", "xfs", "reiserfs", -"msdos", "proc", "nfs", "iso9660" Åù)¡£ -ŬÀڤʥ⥸¥å¡¼¥ë¤¬Æɤ߹þ¤Þ¤ì¤ë¤È¡¢¤µ¤é¤ËÊ̤ÎÃͤ¬ÍøÍѲÄǽ¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +で参照できる (例えば "minix", "ext2", "ext3", "jfs", "xfs", "reiserfs", +"msdos", "proc", "nfs", "iso9660" 等)。 +適切なモジュールが読み込まれると、さらに別の値が利用可能になるかもしれない。 -°ú¤­¿ô +引き数 .I mountflags -¤Ï¡¢ÀèƬ 16 ¥Ó¥Ã¥È¤Ï¥Þ¥¸¥Ã¥¯¥Ê¥ó¥Ð¡¼ 0xC0ED (\fBMS_MGC_VAL\fP) ¤Ç¡¢ -»Ä¤ê¤Î 16 ¥Ó¥Ã¥È¤¬¥Þ¥¦¥ó¥È¥Õ¥é¥°¤Ç¤¢¤ë¡£ -¥Þ¥¸¥Ã¥¯¥Ê¥ó¥Ð¡¼¤Ï¡¢¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó 2.4 ¤è¤êÁ°¤Ç¤Ïɬ¿Ü¤Ç¤¢¤Ã¤¿¤¬¡¢ -¸½ºß¤ÏɬÍפʤ¯¡¢»ØÄꤵ¤ì¤Æ¤â̵»ë¤µ¤ì¤ë¡£ -¥Þ¥¦¥ó¥È¥Õ¥é¥°¤Ï libc4 ¤È libc5 ¤Ç¤Ï \fI\fP ¡¢ -glibc2 ¤Ç¤Ï \fI\fP ¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë: +は、先頭 16 ビットはマジックナンバー 0xC0ED (\fBMS_MGC_VAL\fP) で、 +残りの 16 ビットがマウントフラグである。 +マジックナンバーは、カーネルバージョン 2.4 より前では必須であったが、 +現在は必要なく、指定されても無視される。 +マウントフラグは libc4 と libc5 では \fI\fP 、 +glibc2 では \fI\fP で定義されており、以下の通りである: .\" FIXME 2.6.15 added flags for "shared subtree" functionality: .\" MS_UNBINDABLE, MS_PRIVATE, MS_SHARED, MS_SLAVE .\" These need to be documented on this page. @@ -127,374 +127,374 @@ glibc2 .\" 2.6.25 Added MS_I_VERSION, which needs to be documented. .\" .TP -.BR MS_BIND " (Linux 2.4 °Ê¹ß)" -.\" Àµ³Î¤Ë¤Ï 2.4.0-test9 °Ê¹ß -¥Ð¥¤¥ó¥É¥Þ¥¦¥ó¥È¤ò¹Ô¤¦¡£¤³¤ì¤Ï¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥ì¥¯¥È¥ê¤ÎÉôʬÌÚ¤ò -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÆâÉô¤ÎÊ̤ξì½ê¤Ç¸«¤¨¤ë¤è¤¦¤Ë¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¥Ð¥¤¥ó¥É¥Þ¥¦¥ó¥È¤ò»È¤¦¤È¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¤Þ¤¿¤¤¤Ç +.BR MS_BIND " (Linux 2.4 以降)" +.\" 正確には 2.4.0-test9 以降 +バインドマウントを行う。これはファイルやディレクトリの部分木を +ファイルシステム内部の別の場所で見えるようにするものである。 +バインドマウントを使うと、ファイルシステムをまたいで .BR chroot (2) -jail ¤ò¹½À®¤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¡£ -°ú¤­¿ô +jail を構成することが可能になる。 +引き数 .I filesystemtype -¤È +と .I data -¤Ï̵»ë¤µ¤ì¤ë¡£ -Linux 2.6.26 ¤è¤êÁ°¤Ç¤Ï +は無視される。 +Linux 2.6.26 より前では .I mountflags -¤â̵»ë¤µ¤ì¤Æ¤¤¤¿ +も無視されていた .\" with the exception of the "hidden" MS_REC mountflags bit -(¥Ð¥¤¥ó¥É¥Þ¥¦¥ó¥È¤Ç¤Ï¡¢¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤È¤Ê¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤È -Ʊ¤¸¥Þ¥¦¥ó¥È¥ª¥×¥·¥ç¥ó¤¬»ÈÍѤµ¤ì¤ë)¡£ -Linux 2.6.26 °Ê¹ß¤Ç¤Ï¡¢¥Ð¥¤¥ó¥É¥Þ¥¦¥ó¥È¤ò¹Ô¤¦ºÝ¤Ë +(バインドマウントでは、マウントポイントとなるファイルシステムと +同じマウントオプションが使用される)。 +Linux 2.6.26 以降では、バインドマウントを行う際に .B MS_RDONLY -¥Õ¥é¥°¤Ï̵»ë¤µ¤ì¤Ê¤¤¡£ +フラグは無視されない。 .TP -.BR MS_DIRSYNC " (Linux 2.5.19 °Ê¹ß)" -¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ø¤Î¥Ç¥£¥ì¥¯¥È¥êÊѹ¹¤òƱ´üŪ¤Ë¹Ô¤¦¡£ -(¤³¤ÎÆÃÀ­¤Ï¸Ä¡¹¤Î¥Ç¥£¥ì¥¯¥È¥ê¡¢¤Þ¤¿¤Ï +.BR MS_DIRSYNC " (Linux 2.5.19 以降)" +このファイルシステムへのディレクトリ変更を同期的に行う。 +(この特性は個々のディレクトリ、または .BR chattr (1) -¤ò»È¤Ã¤¿ÉôʬÌÚËè¤ËÀßÄê¤Ç¤­¤ë¡£) +を使った部分木毎に設定できる。) .TP .B MS_MANDLOCK -¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¶¯À©¥í¥Ã¥¯¤òǧ¤á¤ë¡£ -(¶¯À©¥í¥Ã¥¯¤òÍ­¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢ +このファイルシステムのファイルに対して強制ロックを認める。 +(強制ロックを有効にするには、 .BR fcntl (2) -¤Ç½Ò¤Ù¤é¤ì¤Æ¤¤¤ëÊýË¡¤Ç¥Õ¥¡¥¤¥ëñ°Ì¤Çµö²Ä¤ò¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤) +で述べられている方法でファイル単位で許可をしなければならない) .\" FIXME Say more about MS_MOVE .TP .B MS_MOVE -ÉôʬÌÚ¤ò°ÜÆ°¤¹¤ë¡£ +部分木を移動する。 .I source -¤Ë¤Ï¤¹¤Ç¤Ë¸ºß¤¹¤ë¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ò»ØÄꤷ¡¢ +にはすでに存在するマウントポイントを指定し、 .I target -¤Ë¤Ï¿·¤·¤¤¾ì½ê¤ò»ØÄꤹ¤ë¡£ -°ÜÆ°¤Ï¥¢¥È¥ß¥Ã¥¯¤Ç¤¢¤ë¡£ -Áàºî¤Î¼Â¹ÔÃæ¡¢Éôʬ¥Ä¥ê¡¼¤¬¥¢¥ó¥Þ¥¦¥ó¥È¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ +には新しい場所を指定する。 +移動はアトミックである。 +操作の実行中、部分ツリーがアンマウントされることはない。 .IR filesystemtype ", " mountflags ", " data -°ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ +引き数は無視される。 .TP .B MS_NOATIME -¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î (Á´¤Æ¤Î¼ïÎà¤Î) ¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹»þ¹ï¤ò¹¹¿·¤·¤Ê¤¤¡£ +このファイルシステムの (全ての種類の) ファイルのアクセス時刻を更新しない。 .TP .B MS_NODEV -¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Ç¥Ð¥¤¥¹ (¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë) ¤Ø¤Î¥¢¥¯¥»¥¹¤òµö²Ä¤·¤Ê¤¤¡£ +このファイルシステムのデバイス (スペシャルファイル) へのアクセスを許可しない。 .TP .B MS_NODIRATIME -¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¥¢¥¯¥»¥¹»þ¹ï¤ò¹¹¿·¤·¤Ê¤¤¡£ -¤³¤Î¥Õ¥é¥°¤Ï +このファイルシステムのディレクトリのアクセス時刻を更新しない。 +このフラグは .B MS_NOATIME -¤ÇÄ󶡤µ¤ì¤ëµ¡Ç½¤Î¥µ¥Ö¥»¥Ã¥È¤òÄ󶡤¹¤ë¡£¤Ä¤Þ¤ê¡¢ +で提供される機能のサブセットを提供する。つまり、 .B MS_NOATIME -¤Ç¤Ï +では .B MS_NODIRATIME -¤¬°ÅÌۤΤ¦¤ÁÀßÄꤵ¤ì¤ë¡£ +が暗黙のうち設定される。 .TP .B MS_NOEXEC -¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤¢¤ë¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤òµö²Ä¤·¤Ê¤¤¡£ +このファイルシステムにあるプログラムの実行を許可しない。 .\" (Possibly useful for a file system that contains non-Linux executables. .\" Often used as a security feature, e.g., to make sure that restricted .\" users cannot execute files uploaded using ftp or so.) .TP .B MS_NOSUID -¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤È¤­¤Ë¡¢ -set-user-ID ¥Ó¥Ã¥È¤È set-group-ID ¥Ó¥Ã¥È¤ò̵»ë¤¹¤ë¡£ +このファイルシステムのプログラムを実行するときに、 +set-user-ID ビットと set-group-ID ビットを無視する。 .\" (This is a security feature to prevent users executing set-UID and .\" set-GID programs from removable disk devices.) .TP .B MS_RDONLY -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òÆɤ߹þ¤ßÀìÍѤǥޥ¦¥ó¥È¤¹¤ë¡£ +ファイルシステムを読み込み専用でマウントする。 .\" .\" FIXME Document MS_REC, available since 2.4.11. .\" This flag has meaning in conjunction with MS_BIND and .\" also with the shared subtree flags. .TP -.BR MS_RELATIME " (Linux 2.6.20 °Ê¹ß)" -¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î¥Õ¥¡¥¤¥ë¤¬¥¢¥¯¥»¥¹¤µ¤ì¤¿ºÝ¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¤ÎºÇ½ª¥¢¥¯¥»¥¹»þ¹ï (atime) ¤Î¸½ºßÃͤ¬ -ºÇ½ª½¤Àµ»þ¹ï (mtime) ¤äºÇ½ª¾õÂÖÊѹ¹»þ¹ï (ctime) ¤È -Åù¤·¤¤¤«¾®¤µ¤¤¾ì¹ç¤Ë¤Î¤ß¡¢atime ¤ò¹¹¿·¤¹¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ +.BR MS_RELATIME " (Linux 2.6.20 以降)" +このファイルシステム上のファイルがアクセスされた際、 +そのファイルの最終アクセス時刻 (atime) の現在値が +最終修正時刻 (mtime) や最終状態変更時刻 (ctime) と +等しいか小さい場合にのみ、atime を更新する。 +このオプションは、 .BR mutt (1) -¤Î¤è¤¦¤Ë¡¢ºÇ¸å¤ÎÆâÍƽ¤Àµ°Ê¹ß¤Ë¥Õ¥¡¥¤¥ë¤¬¤¤¤ÄÆɤ߽Фµ¤ì¤¿¤«¤òÃΤë -ɬÍפ¬¤¢¤ë¥×¥í¥°¥é¥à¤ÇÍ­ÍѤǤ¢¤ë¡£ -Linux 2.6.30 °Ê¹ß¤Ç¤Ï¡¢ +のように、最後の内容修正以降にファイルがいつ読み出されたかを知る +必要があるプログラムで有用である。 +Linux 2.6.30 以降では、 .B MS_NOATIME -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢¤³¤Î¥Õ¥é¥°¤ÎÆ°ºî¤¬ -¥«¡¼¥Í¥ë¤Î¥Ç¥Õ¥©¥ë¥ÈÆ°ºî¤È¤Ê¤Ã¤Æ¤ª¤ê¡¢ -Linux 2.6.30 ¤è¤êÁ°¤ÎÆ°ºî¤ò¤µ¤»¤ë¤¿¤á¤Ë¤Ï +が指定されていない場合には、このフラグの動作が +カーネルのデフォルト動作となっており、 +Linux 2.6.30 より前の動作をさせるためには .B MS_STRICTATIME -¥Õ¥é¥°¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¡£ -¤³¤ì¤Ë²Ã¤¨¤Æ¡¢Linux 2.6.30 °Ê¹ß¤Ç¤Ï¡¢ -¥Õ¥¡¥¤¥ë¤ÎºÇ½ª¥¢¥¯¥»¥¹»þ¹ï¤¬ 1 Æü°Ê¾åÁ°¤Î¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¤ÎºÇ½ª¥¢¥¯¥»¥¹»þ¹ï¤Ï¾ï¤Ë¹¹¿·¤µ¤ì¤ë¡£ +フラグを指定する必要がある。 +これに加えて、Linux 2.6.30 以降では、 +ファイルの最終アクセス時刻が 1 日以上前の場合、 +ファイルの最終アクセス時刻は常に更新される。 .\" Matthew Garrett notes in the patch that added this behavior .\" that this lets utilities such as tmpreaper (which deletes .\" files based on last acces time) work correctly. .TP .B MS_REMOUNT -¤¹¤Ç¤Ë¸ºß¤¹¤ë¥Þ¥¦¥ó¥È¤òºÆ¥Þ¥¦¥ó¥È¤¹¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢¤¹¤Ç¤Ë¸ºß¤¹¤ë¥Þ¥¦¥ó¥È¤Î +すでに存在するマウントを再マウントする。 +これにより、すでに存在するマウントの .I mountflags -¤È +と .I data -¤ò¡¢°ìÅÙ¥¢¥ó¥Þ¥¦¥ó¥È¤·¤Æ¤«¤éºÆ¥Þ¥¦¥ó¥È¤¹¤ë¤È¤¤¤¦ºî¶È¤ò¤»¤º¤Ë -Êѹ¹¤Ç¤­¤ë¡£ +を、一度アンマウントしてから再マウントするという作業をせずに +変更できる。 .I source -¤È +と .I target -¤ÏºÇ½é¤Î +は最初の .BR mount () -¸Æ¤Ó½Ð¤·¤ÈƱ¤¸Ãͤò»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¡£ +呼び出しと同じ値を指定する必要がある。 .I filesystemtype -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .I mountflags -¤Î¤¦¤Á +のうち .BR MS_RDONLY , .BR MS_SYNCHRONOUS , .B MS_MANDLOCK -¤ÏÊѹ¹²Äǽ¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë 2.6.16 ¤è¤êÁ°¤Ç¤Ï¡¢ +は変更可能である。 +カーネル 2.6.16 より前では、 .BR MS_NOATIME , .B MS_NODIRATIME -¤âÊѹ¹²Äǽ¤Ç¤¢¤Ã¤¿¡£ -¥«¡¼¥Í¥ë 2.4.10 ¤è¤êÁ°¤Ç¤Ï¡¢¾åµ­¤Ë²Ã¤¨¤Æ¡¢ +も変更可能であった。 +カーネル 2.4.10 より前では、上記に加えて、 .BR MS_NOSUID , .BR MS_NODEV , .B MS_NOEXEC -¤âÊѹ¹²Äǽ¤Ç¤¢¤Ã¤¿¡£ +も変更可能であった。 .TP -.BR MS_SILENT " (Linux 2.6.17 °Ê¹ß)" -¥«¡¼¥Í¥ë¤Î¥í¥°Æâ¤Î¤¢¤ë¼ï¤Î +.BR MS_SILENT " (Linux 2.6.17 以降)" +カーネルのログ内のある種の .RI ( printk ()) -·Ù¹ð¥á¥Ã¥»¡¼¥¸¤Îɽ¼¨¤òÍÞÀ©¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï¡¢Ì¾Á°¤¬ÉÔŬÀÚ¤ÇÇѻߤµ¤ì¤¿ +警告メッセージの表示を抑制する。 +このフラグは、名前が不適切で廃止された .B MS_VERBOSE -¥Õ¥é¥° (Linux 2.4.12 °Ê¹ß¤ÇÍøÍѲÄǽ) ¤òÃÖ¤­´¹¤¨¤ë¤â¤Î¤Ç¡¢Æ±¤¸°ÕÌ£¤ò»ý¤Ä¡£ +フラグ (Linux 2.4.12 以降で利用可能) を置き換えるもので、同じ意味を持つ。 .TP -.BR MS_STRICTATIME " (Linux 2.6.30 °Ê¹ß)" -¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¥¢¥¯¥»¥¹¤µ¤ì¤¿ºÝ¤ËºÇ½ª¥¢¥¯¥»¥¹»þ¹ï (atime) -¤ò¾ï¤Ë¹¹¿·¤¹¤ë (Linux 2.6.30 ¤è¤êÁ°¤Ç¤Ï¡¢¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî -¤Ç¤¢¤Ã¤¿)¡£ -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢ +.BR MS_STRICTATIME " (Linux 2.6.30 以降)" +このファイルシステムがアクセスされた際に最終アクセス時刻 (atime) +を常に更新する (Linux 2.6.30 より前では、これがデフォルトの動作 +であった)。 +このフラグを指定することで、 .B MS_NOATIME -¤È +と .B MS_RELATIME -¤Îξ¥Õ¥é¥°¤òÀßÄꤷ¤¿ºÝ¤Î±Æ¶Á¤ò¾å½ñ¤­¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +の両フラグを設定した際の影響を上書きすることができる。 .TP .B MS_SYNCHRONOUS -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ËÂФ·¤ÆƱ´üŪ¤Ë½ñ¤­¹þ¤ß¤ò¹Ô¤¦¡£ -(¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÁ´¤Æ¤Î¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡¢ +ファイルシステムに対して同期的に書き込みを行う。 +(このファイルシステムの全てのオープンされたファイルに対して、 .BR open (2) -¤Î¥Õ¥é¥°¤Ë +のフラグに .B O_SYNC -¤ò»ØÄꤷ¤¿¤è¤¦¤ÊÆ°ºî¤È¤Ê¤ë) +を指定したような動作となる) .PP -Linux 2.4 °Ê¹ß¤Ç¤Ï¡¢ +Linux 2.4 以降では、 .BR MS_NODEV ", " MS_NOEXEC ", " MS_NOSUID -¤Ï¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥Èñ°Ì¤Ç»ØÄê¤Ç¤­¤ë¡£ -¥«¡¼¥Í¥ë 2.6.16 °Ê¹ß¤Ç¤Ï¡¢ +はマウントポイント単位で指定できる。 +カーネル 2.6.16 以降では、 .B MS_NOATIME -¤È +と .B MS_NODIRATIME -¤â¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥Èñ°Ì¤Ç»ØÄê¤Ç¤­¤ë¡£ -¤Þ¤¿¡¢ +もマウントポイント単位で指定できる。 +また、 .B MS_RELATIME -¥Õ¥é¥°¤â¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥Èñ°Ì¤ÇÀßÄê¤Ç¤­¤ë¡£ +フラグもマウントポイント単位で設定できる。 .PP -°ú¤­¿ô +引き数 .I data -¤¬¤É¤Î¤è¤¦¤Ë²ò¼á¤µ¤ì¤ë¤«¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¡£ -¤¿¤¤¤Æ¤¤¤Ï¡¢»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÇÍøÍѲÄǽ¤Ê¥ª¥×¥·¥ç¥ó¤¬ -¥³¥ó¥Þ¶èÀÚ¤ê¤Çʤ٤é¤ì¤¿Ê¸»úÎó¤Ç¤¢¤ë¡£ -³Æ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ËÂФ·¤Æ»ØÄê²Äǽ¤Ê¥ª¥×¥·¥ç¥ó¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï +がどのように解釈されるかは、ファイルシステムによって異なる。 +たいていは、指定されたファイルシステムで利用可能なオプションが +コンマ区切りで並べられた文字列である。 +各ファイルシステムに対して指定可能なオプションの詳細については .BR mount (8) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç 0 ¤¬Ê֤롣¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤¬Ê֤ꡢ +を参照のこと。 +.SH 返り値 +成功した場合 0 が返る。失敗した場合 \-1 が返り、 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤ˽¾¤Ã¤ÆÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -°Ê²¼¤Ë¼¨¤¹¥¨¥é¡¼¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë°Í¸¤·¤Ê¤¤¤â¤Î¤Ç¤¢¤ë¡£ -¤½¤ì¤¾¤ì¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¿¥¤¥×¤Ë¤Ï¸ÇÍ­¤Î¥¨¥é¡¼¤¬Â¸ºß¤¹¤ë¾ì¹ç¤¬¤¢¤ê¡¢ -Æȼ«¤ÎÆ°ºî¤ò¤¹¤ë¤³¤È¤â¤¢¤ë¡£¾Ü¤·¤¯¤Ï¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹¤ò¸«¤ÆÍߤ·¤¤¡£ +がエラーの内容に従って設定される。 +.SH エラー +以下に示すエラーは、ファイルシステムに依存しないものである。 +それぞれのファイルシステムタイプには固有のエラーが存在する場合があり、 +独自の動作をすることもある。詳しくはカーネルのソースを見て欲しい。 .TP .B EACCES -¥Ñ¥¹¤Ë´Þ¤Þ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¸¡º÷ (¼Â¹Ô) µö²Ä¤¬¤Ê¤¤ +パスに含まれるディレクトリに検索 (実行) 許可がない .RB ( path_resolution (7) -¤â»²¾È)¡£ -¤Þ¤¿¤Ï¡¢ +も参照)。 +または、 .B MS_RONLY -¥Õ¥é¥°¤ò»ØÄꤻ¤º¤ËÆɤ߹þ¤ßÀìÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¤ò -¥Þ¥¦¥ó¥È¤·¤è¤¦¤È¤·¤¿¡£ -¤Þ¤¿¤Ï¡¢¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹ +フラグを指定せずに読み込み専用のファイルシステムを +マウントしようとした。 +または、ブロックデバイス .I source -¤¬ +が .B MS_NODEV -¥ª¥×¥·¥ç¥ó¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ë¤¢¤ë¡£ +オプションでマウントされたファイルシステム上にある。 .\" mtk: Probably: write permission is required for MS_BIND, with .\" the error EPERM if not present; CAP_DAC_OVERRIDE is required. .TP .B EBUSY .I source -¤Ï´û¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¤Þ¤¿¤Ï¡¢½ñ¤­¹þ¤ßÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¡¢ -Æɤ߹þ¤ßÀìÍѤǺƥޥ¦¥ó¥È¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢ +は既にマウントされている。 +または、書き込み用にオープンされたファイルがあり、 +読み込み専用で再マウントすることができない。 +または、 .I target -¤¬»ÈÍÑÃæ (busy) ¤Î¤¿¤á¡¢ +が使用中 (busy) のため、 .I target -¤Ë¥Þ¥¦¥ó¥È¤Ç¤­¤Ê¤¤¡£ +にマウントできない。 .I target -¤¬»ÈÍÑÃæ¤ÎÎã¤È¤·¤Æ¤Ï¡¢¤¢¤ë¥¹¥ì¥Ã¥É¤ÎÆ°ºî¥Ç¥£¥ì¥¯¥È¥ê (working -directory) ¤Ç¤¢¤ë¤È¤«¡¢Ê̤ΥǥХ¤¥¹¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ç¤¢¤ë¤È¤«¡¢ -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¡¢¤Ê¤É¤¬¤¢¤ë¡£ +が使用中の例としては、あるスレッドの動作ディレクトリ (working +directory) であるとか、別のデバイスのマウントポイントであるとか、 +オープンされたファイルが存在する、などがある。 .TP .B EFAULT -¾ì½ê¤ò¼¨¤¹°ú¤­¿ô¤Î¤Ò¤È¤Ä¤¬¥æ¡¼¥¶¡¼¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +場所を示す引き数のひとつがユーザーのアドレス空間の外を指している。 .TP .B EINVAL .I source -¤ËÉÔÀµ¤Ê¥¹¡¼¥Ñ¡¼¥Ö¥í¥Ã¥¯¤¬¤¢¤ë¡£ -¤Þ¤¿¤Ï¡¢ +に不正なスーパーブロックがある。 +または、 .I source -¤¬ +が .I target -¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤Î¤Ë¡¢ºÆ¥Þ¥¦¥ó¥È +にマウントされていないのに、再マウント .RB ( MS_REMOUNT ) -¤¬Í׵ᤵ¤ì¤¿¡£ -¤Þ¤¿¤Ï¡¢ +が要求された。 +または、 .I source -¤¬¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ç¤Ï¤Ê¤¤¤«¡¢\(aq/\(aq ¤Ê¤Î¤Ë¡¢°ÜÆ° +がマウントポイントではないか、\(aq/\(aq なのに、移動 .RB ( MS_MOVE ) -¤¬Í׵ᤵ¤ì¤¿¡£ +が要求された。 .TP .B ELOOP -¥Ñ¥¹Ì¾¤Î²ò·èÃæ¤ËÅо줷¤¿¥ê¥ó¥¯¤¬Â¿¤¹¤®¤¿¡£ -¤Þ¤¿¤Ï¡¢ +パス名の解決中に登場したリンクが多すぎた。 +または、 .I target -¤¬ +が .I source -¤Î»Ò¹¤Ê¤Î¤Ë°ÜÆ°¤¬Í׵ᤵ¤ì¤¿¡£ +の子孫なのに移動が要求された。 .TP .B EMFILE -.\" motoki: ¤É¤¦Ìõ¤¹¤Î¤¬¤¤¤¤¤À¤í¤¦¤«¡© -(¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤¬É¬ÍפǤʤ¤¾ì¹ç) -¥À¥ß¡¼¥Ç¥Ð¥¤¥¹¤Î¥Æ¡¼¥Ö¥ë¤¬°ìÇդˤʤä¿¡£ +.\" motoki: どう訳すのがいいだろうか? +(ブロックデバイスが必要でない場合) +ダミーデバイスのテーブルが一杯になった。 .TP .B ENAMETOOLONG -¥Ñ¥¹Ì¾¤ÎŤµ¤¬ +パス名の長さが .B MAXPATHLEN -¤ò±Û¤¨¤¿¡£ +を越えた。 .TP .B ENODEV .I filesystemtype -¤¬¥«¡¼¥Í¥ëÃæ¤ÇÄêµÁ (config) ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +がカーネル中で定義 (config) されていない。 .TP .B ENOENT -¥Ñ¥¹Ì¾¤¬¶õ¤Ç¤¢¤ë¡£¤â¤·¤¯¤Ï»ØÄꤵ¤ì¤¿¥Ñ¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£ +パス名が空である。もしくは指定されたパスが存在しない。 .TP .B ENOMEM -¥«¡¼¥Í¥ë¤¬¥Õ¥¡¥¤¥ë̾¤ä¥Ç¡¼¥¿¤ò¥³¥Ô¡¼¤¹¤ë¤¿¤á¤Î¶õ¤­¥Ú¡¼¥¸¤ò³ÎÊݤǤ­¤Ê¤¤¡£ +カーネルがファイル名やデータをコピーするための空きページを確保できない。 .TP .B ENOTBLK -(¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤¬É¬ÍפÀ¤¬) +(ブロックデバイスが必要だが) .I source -¤¬¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Ç¤Ï¤Ê¤¤¡£ +がブロックデバイスではない。 .TP .B ENOTDIR .I target -¤«¡¢ +か、 .I source -¤Î¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£ +のプレフィックスがディレクトリではない。 .TP .B ENXIO -¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹ +ブロックデバイス .I source -¤Î¥á¥¸¥ã¡¼Èֹ椬Èϰϳ°¤Ç¤¢¤ë¡£ +のメジャー番号が範囲外である。 .TP .B EPERM -¸Æ¤Ó½Ð¤·¸µ¤ËɬÍפʸ¢¸Â¤¬¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +呼び出し元に必要な権限がない。 +.SH バージョン .BR MS_DIRSYNC , .BR MS_MOVE , .BR MS_REC , .BR MS_RELATIME , .B MS_STRICTATIME -¤ÎÄêµÁ¤¬ glibc ¤Î¥Ø¥Ã¥À¤ËÄɲ䵤줿¤Î¤Ï -¥Ð¡¼¥¸¥ç¥ó 2.12 ¤Ë¤ª¤¤¤Æ¤Î¤ß¤Ç¤¢¤ë¡£ +の定義が glibc のヘッダに追加されたのは +バージョン 2.12 においてのみである。 .\" FIXME: Definitions of the so-far-undocumented MS_UNBINDABLE, MS_PRIVATE, .\" MS_SHARED, and MS_SLAVE were (also) only added to glibc headers in 2.12. -.SH ½àµò -¤³¤Î´Ø¿ô¤Ï Linux ¸ÇÍ­¤Î´Ø¿ô¤Ç¤¢¤ê¡¢°Ü¿¢¤ò¹Íθ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï -»ÈÍѤ¹¤Ù¤­¤Ç¤Ê¤¤¡£ -¸µ¤Î +.SH 準拠 +この関数は Linux 固有の関数であり、移植を考慮したプログラムでは +使用すべきでない。 +元の .B MS_SYNC -¥Õ¥é¥°¤Ï¡¢Ê̤Π+フラグは、別の .B MS_SYNC -¤¬ \fI\fP ¤ËÄɲ䵤줿¤Î¤Ç -1.1.69 ¤«¤é +が \fI\fP に追加されたので +1.1.69 から .B MS_SYNCHRONOUS -¤Ë̾Á°¤¬ÊѤï¤Ã¤¿¡£ +に名前が変わった。 .LP -Linux 2.4 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ +Linux 2.4 より前のバージョンでは、 .B MS_NOSUID -¥ª¥×¥·¥ç¥óÉÕ¤­¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î -set-UID ¤ä set-GID ¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤è¤¦¤È¤¹¤ë¤È¡¢ +オプション付きでマウントされたファイルシステム上の +set-UID や set-GID のプログラムを実行しようとすると、 .B EPERM -¥¨¥é¡¼¤È¤Ê¤Ã¤¿¡£ -Linux 2.4 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ï set-UID ¥Ó¥Ã¥È¤ä set-GID ¥Ó¥Ã¥È¤¬ -̵»ë¤µ¤ì¤ë¤À¤±¤Ç¤¢¤ë¡£ -.\" ¤³¤ÎÊѹ¹¤Ï patch-2.4.0-prerelease ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -.SS ¥×¥í¥»¥¹Ã±°Ì¤Î̾Á°¶õ´Ö -¥«¡¼¥Í¥ë 2.4.19 °Ê¹ß¤Î Linux ¤Ç¤Ï¡¢¥×¥í¥»¥¹Ã±°Ì¤Î¥Þ¥¦¥ó¥È̾Á°¶õ´Ö -(mount namespace) ¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¡£¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤È¤Ï¡¢ -¤¢¤ë¥×¥í¥»¥¹¤Ë¸«¤¨¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Þ¥¦¥ó¥È¤Î½¸¹ç¤Ç¤¢¤ë¡£ -¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Î̾Á°¶õ´Ö¤ÏÊ£¿ô¤Î¥×¥í¥»¥¹¤Ç¶¦Í­¤¹¤ë¤³¤È¤¬¤Ç¤­¡¢ -ÉáÄ̤϶¦Í­¤µ¤ì¤Æ¤¤¤ë¡£ -°ì¤Ä¤Î¥×¥í¥»¥¹¤Ë¤è¤ë̾Á°¶õ´Ö¤ÎÊѹ¹ (¤¹¤Ê¤ï¤Á¡¢¥Þ¥¦¥ó¥È¤ä¥¢¥ó¥Þ¥¦¥ó¥È) ¤Ï -Ʊ¤¸Ì¾Á°¶õ´Ö¤ò¶¦Í­¤¹¤ë¾¤ÎÁ´¤Æ¤Î¥×¥í¥»¥¹¤Ë¤â¸«¤¨¤ë¡£ -(2.4.19 ¤è¤êÁ°¤Î Linux ¤Ï¡¢°ì¤Ä¤Î̾Á°¶õ´Ö¤¬¥·¥¹¥Æ¥à¾å¤ÎÁ´¥×¥í¥»¥¹¤Ç -¶¦Í­¤µ¤ì¤ë¾õ¶·¤È¤ß¤Ê¤¹¤³¤È¤¬¤Ç¤­¤ë¡£) +エラーとなった。 +Linux 2.4 以降では、このような場合は set-UID ビットや set-GID ビットが +無視されるだけである。 +.\" この変更は patch-2.4.0-prerelease に含まれている。 +.SS プロセス単位の名前空間 +カーネル 2.4.19 以降の Linux では、プロセス単位のマウント名前空間 +(mount namespace) が提供されている。マウント名前空間とは、 +あるプロセスに見えているファイルシステムのマウントの集合である。 +マウントポイントの名前空間は複数のプロセスで共有することができ、 +普通は共有されている。 +一つのプロセスによる名前空間の変更 (すなわち、マウントやアンマウント) は +同じ名前空間を共有する他の全てのプロセスにも見える。 +(2.4.19 より前の Linux は、一つの名前空間がシステム上の全プロセスで +共有される状況とみなすことができる。) .BR fork (2) -·Ðͳ¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤Î¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤ò¶¦Í­¤¹¤ë¡£ +経由で作成された子プロセスは親プロセスのマウント名前空間を共有する。 .BR execve (2) -¤ÎÁ°¸å¤Ç¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤ÏÊÝ»ý¤µ¤ì¤ë¡£ +の前後でマウント名前空間は保持される。 -¥×¥í¥»¥¹¤Ï¼«Ê¬ÍÑ (private) ¤Î¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ -¼«Ê¬ÍѤÎ̾Á°¶õ´Ö¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¤Î¤Ï¡¢ -¤½¤Î¥×¥í¥»¥¹¤¬ +プロセスは自分用 (private) のマウント名前空間を持つことができる。 +自分用の名前空間を持つことができるのは、 +そのプロセスが .BR clone (2) .B CLONE_NEWNS -¥Õ¥é¥°¤ò»È¤Ã¤ÆºîÀ®¤µ¤ì¤¿¾ì¹ç¤È¡¢ -¤½¤Î¥×¥í¥»¥¹¤¬ +フラグを使って作成された場合と、 +そのプロセスが .B CLONE_NEWNS -¥Õ¥é¥°ÉÕ¤­¤Ç +フラグ付きで .BR unshare (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¤Ç¤¢¤ë¡£ -Á°¼Ô¤Î¾ì¹ç¡¢ºîÀ®¤µ¤ì¤¿¥×¥í¥»¥¹¤Î¿·¤·¤¤Ì¾Á°¶õ´Ö¤Ï +を呼び出した場合である。 +前者の場合、作成されたプロセスの新しい名前空間は .BR clone (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î̾Á°¶õ´Ö¤Î¡Ö¥³¥Ô¡¼¡×¤Ç½é´ü²½¤µ¤ì¤ë¡£ -¸å¼Ô¤Î¾ì¹ç¡¢ +を呼び出したプロセスの名前空間の「コピー」で初期化される。 +後者の場合、 .BR unshare (2) -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤¬¡¢ -¤½¤ì¤Þ¤Ç¤Ï¾¤Î¥×¥í¥»¥¹¤È¶¦Í­¤·¤Æ¤¤¤¿Ì¾Á°¶õ´Ö¤Î¼«Ê¬ÍѤΥ³¥Ô¡¼¤È¤Ê¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬¤³¤ì°Ê¸å¤Ë¹Ô¤¦¥Þ¥¦¥ó¥È/¥¢¥ó¥Þ¥¦¥ó¥È¤Ï -¾¤Î¥×¥í¥»¥¹¤«¤é¸«¤¨¤Ê¤¯¤Ê¤ë -(¤¿¤À¤·¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬ +を呼び出すと、呼び出し元のプロセスのマウント名前空間が、 +それまでは他のプロセスと共有していた名前空間の自分用のコピーとなる。 +これにより、呼び出し元のプロセスがこれ以後に行うマウント/アンマウントは +他のプロセスから見えなくなる +(ただし、呼び出し元のプロセスが .BR unshare (2) -¤Î¸Æ¤Ó½Ð¤·°Ê¹ß¤ËºîÀ®¤·¤¿»Ò¥×¥í¥»¥¹¤Ë¤Ï¸«¤¨¤ë)¡£ -¤Þ¤¿¡¢¤½¤ÎµÕ¤Î¡¢Â¾¤Î¥×¥í¥»¥¹¤¬¹Ô¤Ã¤¿¥Þ¥¦¥ó¥È/¥¢¥ó¥Þ¥¦¥ó¥È¤â¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ë¤Ï -¸«¤¨¤Ê¤¯¤Ê¤ë¡£ +の呼び出し以降に作成した子プロセスには見える)。 +また、その逆の、他のプロセスが行ったマウント/アンマウントも呼び出し元のプロセスには +見えなくなる。 -Linux Æȼ«¤Î¥Õ¥¡¥¤¥ë +Linux 独自のファイル .I /proc/PID/mounts -¤Ç¤Ï¡¢»ØÄꤵ¤ì¤¿ ID ¤ò»ý¤Ä¥×¥í¥»¥¹¤Î¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤Ë¤ª¤±¤ë -¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Î¥ê¥¹¥È¤¬¸ø³«¤µ¤ì¤Æ¤¤¤ë¡£¾ÜºÙ¤Ï +では、指定された ID を持つプロセスのマウント名前空間における +マウントポイントのリストが公開されている。詳細は .BR proc (5) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を参照のこと。 +.SH 関連項目 .BR umount (2), .BR path_resolution (7), .BR mount (8), diff --git a/release/man2/move_pages.2 b/release/man2/move_pages.2 index 9083693c..bddd3c36 100644 --- a/release/man2/move_pages.2 +++ b/release/man2/move_pages.2 @@ -21,9 +21,9 @@ .\" Translated 2008-10-26, Akihiro MOTOKI .\" .TH MOVE_PAGES 2 2010-06-11 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -move_pages \- ¤¢¤ë¥×¥í¥»¥¹¤Î¸Ä¡¹¤Î¥Ú¡¼¥¸¤òÊ̤ΥΡ¼¥É¤Ë°ÜÆ°¤¹¤ë -.SH ½ñ¼° +.SH 名前 +move_pages \- あるプロセスの個々のページを別のノードに移動する +.SH 書式 .nf .B #include .sp @@ -31,202 +31,202 @@ move_pages \- .BI " const int *" nodes ", int *" status ", int " flags ); .fi .sp -\fI\-lnuma\fP ¤È¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lnuma\fP とリンクする。 +.SH 説明 .BR move_pages () -¤Ï¡¢¥×¥í¥»¥¹ +は、プロセス .I pid -¤Î»ØÄꤵ¤ì¤¿¥Ú¡¼¥¸ +の指定されたページ .I pages -¤ò +を .I nodes -¤Ç»ØÄꤵ¤ì¤¿¥á¥â¥ê¥Î¡¼¥É¤Ë°ÜÆ°¤¹¤ë¡£ -°ÜÆ°¤Î·ë²Ì¤Ï +で指定されたメモリノードに移動する。 +移動の結果は .I status -¤ËÈ¿±Ç¤µ¤ì¤ë¡£ +に反映される。 .I flags -¤Ç¤Ï°ÜÆ°¤µ¤ì¤ë¥Ú¡¼¥¸¤Ë´Ø¤¹¤ëÀ©Ìó¤ò»ØÄꤹ¤ë¡£ +では移動されるページに関する制約を指定する。 .I pid -¤Ï¡¢°ÜÆ°¤µ¤ì¤ë¥Ú¡¼¥¸¤¬Â°¤¹¤ë¥×¥í¥»¥¹¤Î ID ¤Ç¤¢¤ë¡£ -ÊÌ¤Î¥×¥í¥»¥¹¤Î¥Ú¡¼¥¸¤ò°ÜÆ°¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤¬Æø¢ +は、移動されるページが属するプロセスの ID である。 +別のプロセスのページを移動するためには、呼び出し元が特権 .RB ( CAP_SYS_NICE ) -¤ò»ý¤Ã¤Æ¤¤¤ë¤«¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶ ID ¤«¼Â¸ú¥æ¡¼¥¶ ID ¤¬ -¥Ú¡¼¥¸°ÜÆ°ÂÐ¾Ý¤Î¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶ ID ¤«Êݸ set-user-ID ¤Î¤É¤Á¤é¤«¤È -°ìÃפ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を持っているか、呼び出したプロセスの実ユーザ ID か実効ユーザ ID が +ページ移動対象のプロセスの実ユーザ ID か保存 set-user-ID のどちらかと +一致しなければならない。 .I pid -¤¬ 0 ¤Î¾ì¹ç¡¢ +が 0 の場合、 .BR move_pages () -¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥Ú¡¼¥¸¤ò°ÜÆ°¤¹¤ë¡£ +は呼び出したプロセスのページを移動する。 .I count -¤Ï°ÜÆ°¤¹¤ë¥Ú¡¼¥¸¿ô¤Ç¤¢¤ë¡£ +は移動するページ数である。 .I count -¤Ë¤è¤ê +により .IR pages , .IR nodes , .I status -¤Î 3 ¤Ä¤ÎÇÛÎó¤ÎÂ礭¤µ¤¬ÄêµÁ¤µ¤ì¤ë¡£ +の 3 つの配列の大きさが定義される。 .I pages -¤Ï¡¢°ÜÆ°¤¹¤Ù¤­¥Ú¡¼¥¸¤Ø¤Î¥Ý¥¤¥ó¥¿¤ÎÇÛÎó¤Ç¤¢¤ê¡¢ -³Æ¥Ý¥¤¥ó¥¿¤Ï¥Ú¡¼¥¸¶­³¦¤Ë·¤¨¤¿Ãͤò»ØÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£ +は、移動すべきページへのポインタの配列であり、 +各ポインタはページ境界に揃えた値を指定すべきである。 .\" FIXME what if they are not aligned? .I pid -¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤Ç¸«¤¨¤ë¥¢¥É¥ì¥¹¤ò»ØÄꤹ¤ë¡£ +で指定されたプロセスで見えるアドレスを指定する。 .I nodes -¤Ï¡¢³Æ¥Ú¡¼¥¸¤Î´õ˾¤Î°ÜÆ°¾ì½ê¤ò¼¨¤¹À°¿ôÃͤÎÇÛÎó¤Ç¤¢¤ê¡¢ -ÇÛÎó¤Î³ÆÍ×ÁǤϥΡ¼¥ÉÈÖ¹æ¤Ç¤¢¤ë¡£ +は、各ページの希望の移動場所を示す整数値の配列であり、 +配列の各要素はノード番号である。 .I nodes -¤Ë¤Ï NULL ¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¡¢¤³¤Î¾ì¹ç¤Ë¤Ï +には NULL を指定することもでき、この場合には .BR move_pages () -¤Ï¤É¤Î¥Ú¡¼¥¸¤â°ÜÆ°¤·¤Ê¤¤¤¬¡¢³Æ¥Ú¡¼¥¸¤¬¸½ºßÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë¥Î¡¼¥É¤òÇÛÎó +はどのページも移動しないが、各ページが現在配置されているノードを配列 .I status -¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£¤É¤Î¥Ú¡¼¥¸¤ò°ÜÆ°¤¹¤ëɬÍפ¬¤¢¤ë¤«¤òȽÃǤ¹¤ë¤¿¤á¤Ë¡¢ -³Æ¥Ú¡¼¥¸¤Î¾õÂ֤μèÆÀ¤¬É¬Íפʾì¹ç¤â¤¢¤ë¡£ +に格納して返す。どのページを移動する必要があるかを判断するために、 +各ページの状態の取得が必要な場合もある。 .I status -¤Ï¡¢³Æ¥Ú¡¼¥¸¤Î¾õÂÖ¤òɽ¤¹À°¿ôÃͤÎÇÛÎó¤Ç¤¢¤ë¡£ -¤³¤ÎÇÛÎó¤ËÍ­¸ú¤ÊÃͤ¬³ÊǼ¤µ¤ì¤ë¤Î¤Ï¡¢ +は、各ページの状態を表す整数値の配列である。 +この配列に有効な値が格納されるのは、 .BR move_pages () -¤¬¥¨¥é¡¼¤òÊÖ¤µ¤Ê¤«¤Ã¤¿¾ì¹ç¤À¤±¤Ç¤¢¤ë¡£ +がエラーを返さなかった場合だけである。 .I flags -¤Ë¤Ï¡¢¤É¤Î¼ïÎà¤Î¥Ú¡¼¥¸¤ò°ÜÆ°¤¹¤ë¤«¤ò»ØÄꤹ¤ë¡£ +には、どの種類のページを移動するかを指定する。 .B MPOL_MF_MOVE -¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤¬ÇÓ¾Ū¤Ë»ÈÍѤ·¤Æ¤¤¤ë¥Ú¡¼¥¸¤À¤±¤ò°ÜÆ°¤¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +は、そのプロセスが排他的に使用しているページだけを移動することを意味する。 .B MPOL_MF_MOVE_ALL -¤Ï¡¢Ê£¿ô¤Î¥×¥í¥»¥¹´Ö¤Ç¶¦Í­¤µ¤ì¤Æ¤¤¤ë¥Ú¡¼¥¸¤â°ÜÆ°¤Ç¤­¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +は、複数のプロセス間で共有されているページも移動できることを意味する。 .B MPOL_MF_MOVE_ALL -¤ò»ÈÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤¬Æø¢ +を使用するためには、そのプロセスが特権 .RB ( CAP_SYS_NICE ) -¤ò»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH status ÇÛÎó¤Ë³ÊǼ¤µ¤ì¤ë¥Ú¡¼¥¸¾õÂÖ +を持っていなければならない。 +.SH status 配列に格納されるページ状態 .I status -ÇÛÎó¤Î³ÆÍ×ÁǤȤ·¤Æ¡¢°Ê²¼¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¡£ +配列の各要素として、以下の値が返される。 .TP .B 0..MAX_NUMNODES -¤½¤Î¥Ú¡¼¥¸¤¬ÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë¥Î¡¼¥É¤ò¼¨¤¹¡£ +そのページが配置されているノードを示す。 .TP .B -EACCES -¤½¤Î¥Ú¡¼¥¸¤ÏÊ£¿ô¤Î¥×¥í¥»¥¹¤Ë¤è¤ê¥Þ¥Ã¥×¤µ¤ì¤Æ¤ª¤ê¡¢ +そのページは複数のプロセスによりマップされており、 .B MPOL_MF_MOVE_ALL -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Î¤ß°ÜÆ°¤Ç¤­¤ë¡£ +が指定された場合にのみ移動できる。 .TP .B -EBUSY -¤½¤Î¥Ú¡¼¥¸¤¬¸½ºß¥Ó¥¸¡¼¤Ç¤¢¤ê¡¢°ÜÆ°¤Ç¤­¤Ê¤¤¡£¸å¤Ç¤â¤¦°ìÅٻ¤³¤È¡£ -¤³¤Î¾õ¶·¤Ï¡¢¥Ú¡¼¥¸¤¬ I/O ¤Î¼Â¹ÔÃæ¤Ç¤¢¤Ã¤¿¤ê¡¢¥«¡¼¥Í¥ë¤Î¾¤Î¥µ¥Ö¥·¥¹¥Æ¥à -¤¬¤½¤Î¥Ú¡¼¥¸¤Ø¤Î»²¾È¤òÊÝ»ý¤·¤Æ¤¤¤ë¾ì¹ç¤ËȯÀ¸¤¹¤ë¡£ +そのページが現在ビジーであり、移動できない。後でもう一度試すこと。 +この状況は、ページが I/O の実行中であったり、カーネルの他のサブシステム +がそのページへの参照を保持している場合に発生する。 .TP .B -EFAULT -¤½¤Î¥Ú¡¼¥¸¤¬ zero page ¤Ç¤¢¤ë¤«¡¢¤½¤Î¥á¥â¥êÎΰè¤Ï¤½¤Î¥×¥í¥»¥¹¤Ë¤è¤ê -¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +そのページが zero page であるか、そのメモリ領域はそのプロセスにより +マップされていない。 .TP .B -EIO -¥Ú¡¼¥¸¤ò½ñ¤­Ì᤹ (write back) ¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ -¥Ú¡¼¥¸¤¬ dirty ¤Ç¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ dirty ¤Ê¥Ú¡¼¥¸¤ò°ÜÆ°¤Ç¤­¤ë¤è¤¦¤Ê -°ÜÆ°µ¡Ç½¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¤¿¤á¡¢¤½¤Î¥Ú¡¼¥¸¤ò°ÜÆ°¤¹¤ë¤¿¤á¤Ë¤Ï¥Ú¡¼¥¸¤ò -½ñ¤­Ìᤵ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ページを書き戻す (write back) ことができない。 +ページが dirty で、ファイルシステムが dirty なページを移動できるような +移動機能を提供していないため、そのページを移動するためにはページを +書き戻さなければならない。 .TP .B -EINVAL -dirty ¤Ê¥Ú¡¼¥¸¤ò°ÜÆ°¤Ç¤­¤Ê¤¤¡£ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ dirty ¤Ê¥Ú¡¼¥¸¤ò°ÜÆ°¤¹¤ë¤¿¤á¤Îµ¡Ç½¤òÄ󶡤·¤Æ¤ª¤é¤º¡¢ -¥Ú¡¼¥¸¤ò½ñ¤­Ì᤹ǽÎϤâ¤Ê¤¤¡£ +dirty なページを移動できない。 +ファイルシステムが dirty なページを移動するための機能を提供しておらず、 +ページを書き戻す能力もない。 .TP .B -ENOENT -¥Ú¡¼¥¸¤¬Â¸ºß¤·¤Ê¤¤¡£ +ページが存在しない。 .TP .B -ENOMEM -°ÜÆ°Àè¤Î¥Î¡¼¥É¤Ç¥á¥â¥ê¤ò³ÎÊݤ¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +移動先のノードでメモリを確保することができない。 +.SH 返り値 +成功すると、 .BR move_pages () -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .\" FIXME Is the following quite true: does the wrapper in numactl .\" do the right thing? -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値を設定する。 +.SH エラー .TP .B E2BIG -°ÜÆ°¤¹¤Ù¤­¥Ú¡¼¥¸¤¬Â¿²á¤®¤ë¡£ +移動すべきページが多過ぎる。 .TP .B EACCES .\" FIXME Clarify "current cpuset". Is that the cpuset of the caller .\" or the target? -°ÜÆ°Àè¤Î¥Î¡¼¥É¤Î¤¤¤º¤ì¤«¤¬¸½ºß¤Î CPU ½¸¹ç¤Ç¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +移動先のノードのいずれかが現在の CPU 集合では許可されていない。 .TP .B EFAULT -¥Ñ¥é¥á¡¼¥¿ÇÛÎó¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +パラメータ配列にアクセスできなかった。 .TP .B EINVAL .I flags -¤Ë +に .B MPOL_MF_MOVE -¤Ç¤â +でも .B MPOL_MF_MOVE_ALL -¤Ç¤â¤Ê¤¤Ãͤ¬»ØÄꤵ¤ì¤¿¤«¡¢¥«¡¼¥Í¥ë¥¹¥ì¥Ã¥É¤Î¥Ú¡¼¥¸¤ò°ÜÆ°¤µ¤»¤è¤¦¤È¤·¤¿¡£ +でもない値が指定されたか、カーネルスレッドのページを移動させようとした。 .TP .B ENODEV -°ÜÆ°Àè¤Î¥Î¡¼¥É¤Î¤¤¤º¤ì¤«¤¬¥ª¥ó¥é¥¤¥ó¤Ç¤Ê¤¤¡£ +移動先のノードのいずれかがオンラインでない。 .TP .B ENOENT -°ÜÆ°¤¬É¬Íפʥڡ¼¥¸¤¬Á´¤¯¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£ -»ØÄꤵ¤ì¤¿Á´¤Æ¤Î¥Ú¡¼¥¸¤¬¡¢¤¹¤Ç¤Ë°ÜÆ°Àè¤Î¥Î¡¼¥É¤Ë¸ºß¤¹¤ë¤«¡¢Â¸ºß¤·¤Ê¤¤¤«¡¢ -̵¸ú¤Ê¥¢¥É¥ì¥¹¤Ç¤¢¤Ã¤¿¤«¡¢Ê£¿ô¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤Æ°ÜÆ°¤Ç¤­ -¤Ê¤«¤Ã¤¿¤«¡¢¤Î¤¤¤º¤ì¤«¤Ç¤¢¤Ã¤¿¡£ +移動が必要なページが全く見つからなかった。 +指定された全てのページが、すでに移動先のノードに存在するか、存在しないか、 +無効なアドレスであったか、複数のプロセスによってマップされていて移動でき +なかったか、のいずれかであった。 .TP .B EPERM -¸Æ¤Ó½Ð¤·¸µ¤Ï +呼び出し元は .B MPOL_MF_MOVE_ALL -¤ò»ØÄꤷ¤¿¤¬¡¢½½Ê¬¤ÊÆø¢ +を指定したが、十分な特権 .RB ( CAP_SYS_NICE ) -¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤¬Â¾¤Î¥æ¡¼¥¶¤Ë°¤¹¤ë¥×¥í¥»¥¹¤Î¥Ú¡¼¥¸¤ò°ÜÆ°¤·¤è¤¦¤È¤·¤¿¤¬¡¢ -¤½¤ì¤ò¹Ô¤¨¤ë¤À¤±¤ÎÆø¢ +を持っていない。 +または、呼び出し元が他のユーザに属するプロセスのページを移動しようとしたが、 +それを行えるだけの特権 .RB ( CAP_SYS_NICE ) -¤ò»ý¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +を持っていなかった。 .TP .B ESRCH -¥×¥í¥»¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +プロセスが存在しない。 +.SH バージョン .BR move_pages () -¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó 2.6.18 ¤Ç½é¤á¤Æ Linux ¤ËÅо줷¤¿¡£ -.SH ½àµò -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -¥é¥¤¥Ö¥é¥ê¤Ë¤è¤ë¥µ¥Ý¡¼¥È¤Ë¤Ä¤¤¤Æ¤Ï +は、バージョン 2.6.18 で初めて Linux に登場した。 +.SH 準拠 +このシステムコールは Linux 固有である。 +.SH 注意 +ライブラリによるサポートについては .BR numa (7) -¤ò»²¾È¡£ +を参照。 .\" FIXME Clarify "current cpuset". Is that the cpuset of the caller .\" or the target? -¸½ºß¤Î CPU ½¸¹ç¤Çµö²Ä¤µ¤ì¤Æ¤¤¤ë¥Î¡¼¥É¤Î½¸¹ç¤ò¼èÆÀ¤¹¤ë¤Ë¤Ï¡¢¥Õ¥é¥° +現在の CPU 集合で許可されているノードの集合を取得するには、フラグ .B MPOL_F_MEMS_ALLOWED -¤ò»ØÄꤷ¤Æ +を指定して .BR get_mempolicy (2) -¤ò»ÈÍѤ¹¤ì¤Ð¤è¤¤¡£ -¼èÆÀ¤·¤¿¾ðÊó¤Ï¡¢CPU ½¸¹ç¤Î¼êÆ°¤Þ¤¿¤Ï¼«Æ°¤Ç¤ÎºÆ¹½À®¤Ë¤è¤ê -¤¤¤Ä²¿»þÊѲ½¤·¤Æ¤·¤Þ¤¦¤«Ê¬¤«¤é¤Ê¤¤¡£ +を使用すればよい。 +取得した情報は、CPU 集合の手動または自動での再構成により +いつ何時変化してしまうか分からない。 -¤³¤Î´Ø¿ô¤ò»ÈÍѤ¹¤ë¤È¡¢¥Ú¡¼¥¸¤Î°ÌÃÖ (¥Î¡¼¥É) ¤¬ -»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤ËÂФ·¤ÆÀßÄꤵ¤ì¤¿¥á¥â¥ê¥Ý¥ê¥·¡¼ +この関数を使用すると、ページの位置 (ノード) が +指定されたアドレスに対して設定されたメモリポリシー .RB ( mbind (2) -»²¾È) ¤ä»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤ËÂФ·¤ÆÀßÄꤵ¤ì¤¿¥á¥â¥ê¥Ý¥ê¥·¡¼ +参照) や指定されたプロセスに対して設定されたメモリポリシー .RB ( set_mempolicy (2) -»²¾È) ¤Ë°ãÈ¿¤·¤Æ¤·¤Þ¤¦²ÄǽÀ­¤¬¤¢¤ë¡£ -¤Ä¤Þ¤ê¡¢¥á¥â¥ê¥Ý¥ê¥·¡¼¤Ï +参照) に違反してしまう可能性がある。 +つまり、メモリポリシーは .BR move_pages () -¤Ç»È¤ï¤ì¤ë°ÜÆ°Àè¥Î¡¼¥É¤òÀ©¸Â¤·¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ +で使われる移動先ノードを制限しないということである。 -¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë +ヘッダファイル .I -¤Ï glibc ¤Ë¤Ï´Þ¤Þ¤ì¤Æ¤ª¤é¤º¡¢ +は glibc には含まれておらず、 .I libnuma-devel -¤«Æ±ÍͤΥѥ屡¼¥¸¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëɬÍפ¬¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +か同様のパッケージをインストールする必要がある。 +.SH 関連項目 .BR get_mempolicy (2), .BR mbind (2), .BR set_mempolicy (2), diff --git a/release/man2/mprotect.2 b/release/man2/mprotect.2 index 7957fce0..b2a2afd1 100644 --- a/release/man2/mprotect.2 +++ b/release/man2/mprotect.2 @@ -37,131 +37,131 @@ .\" Updated & Modified 2005-10-15, Yuichi SATO .\" Updated 2007-06-11, Akihiro MOTOKI , LDP v2.54 .\" -.\"WORD: bitwise-or ¥Ó¥Ã¥È¤´¤È¤ÎÏÀÍýÏ -.\"WORD: protection ¥¢¥¯¥»¥¹Êݸî -.\"WORD: read-only Æɤ߼è¤êÀìÍÑ +.\"WORD: bitwise-or ビットごとの論理和 +.\"WORD: protection アクセス保護 +.\"WORD: read-only 読み取り専用 .\" .TH MPROTECT 2 2011-09-08 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -mprotect \- ¥á¥â¥êÎΰè¤ÎÊݸî¤òÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +mprotect \- メモリ領域の保護を設定する +.SH 書式 .nf .B #include .sp .BI "int mprotect(const void *" addr ", size_t " len ", int " prot ); .fi -.SH ÀâÌÀ +.SH 説明 .BR mprotect () -¤Ï¡¢¶è´Ö [\fIaddr\fP,\ \fIaddr\fP+\fIlen\fP\-1] ¤Î¥¢¥É¥ì¥¹ÈϰϤò´Þ¤à -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥á¥â¥ê¥Ú¡¼¥¸¤Î¥¢¥¯¥»¥¹Êݸî¤òÊѹ¹¤¹¤ë¡£ +は、区間 [\fIaddr\fP,\ \fIaddr\fP+\fIlen\fP\-1] のアドレス範囲を含む +呼び出し元のプロセスのメモリページのアクセス保護を変更する。 .I addr -¤Ï¥Ú¡¼¥¸¶­³¦¤Ë°ìÃפ·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +はページ境界に一致していなければならない。 -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬¥¢¥¯¥»¥¹Êݸî¤Ë°ãÈ¿¤¹¤ë¤è¤¦¤Ê¥á¥â¥ê¥¢¥¯¥»¥¹¤ò -¹Ô¤ª¤¦¤È¤¹¤ë¤È¡¢¥«¡¼¥Í¥ë¤Ï¥·¥°¥Ê¥ë +呼び出し元のプロセスがアクセス保護に違反するようなメモリアクセスを +行おうとすると、カーネルはシグナル .B SIGSEGV -¤ò¤½¤Î¥×¥í¥»¥¹¤ËÂФ·¤ÆÀ¸À®¤¹¤ë¡£ +をそのプロセスに対して生成する。 .PP .I prot -¤Ë¤Ï¡¢ +には、 .B PROT_NONE -¤«¡¢°Ê²¼¤Î¥ê¥¹¥È¤Î +か、以下のリストの .B PROT_NONE -°Ê³°¤ÎÃͤò¥Ó¥Ã¥ÈËè¤ÎÏÀÍýÏ (bitwize-or) ¤Ç»ØÄꤹ¤ë: +以外の値をビット毎の論理和 (bitwize-or) で指定する: .TP 1.1i .B PROT_NONE -¤½¤Î¥á¥â¥ê¤Ë¤ÏÁ´¤¯¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¡£ +そのメモリには全くアクセスできない。 .TP .B PROT_READ -¤½¤Î¥á¥â¥ê¤òÆɤ߼è¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +そのメモリを読み取ることができる。 .TP .B PROT_WRITE -¤½¤Î¥á¥â¥ê¤òÊѹ¹¤Ç¤­¤ë¡£ +そのメモリを変更できる。 .TP .B PROT_EXEC -¤½¤Î¥á¥â¥ê¤Ï¼Â¹Ô²Äǽ¤Ç¤¢¤ë¡£ +そのメモリは実行可能である。 .\" FIXME .\" Document PROT_GROWSUP and PROT_GROWSDOWN -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +.SH 返り値 +成功した場合、 .BR mprotect () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬Ê֤ꡢ +は 0 を返す。エラーの場合は \-1 が返り、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EACCES -»ØÄꤵ¤ì¤¿¥¢¥¯¥»¥¹¤ò¥á¥â¥ê¤ËÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ -¤³¤ì¤Ï¡¢Î㤨¤Ð -¥Õ¥¡¥¤¥ë¤òÆɤ߼è¤êÀìÍÑ¤Ç +指定されたアクセスをメモリに設定することができない。 +これは、例えば +ファイルを読み取り専用で .BR mmap (2) -¤·¤Æ¤ª¤ê¡¢¤½¤ÎÎΰè¤ËÂФ·¤Æ +しており、その領域に対して .BR mprotect () -¤ò¸Æ¤Ó½Ð¤·¤Æ +を呼び出して .B PROT_WRITE -¤ËÀßÄꤷ¤è¤¦¤È¤·¤¿¾ì¹ç¤ËȯÀ¸¤¹¤ë¡£ +に設定しようとした場合に発生する。 .TP .B EINVAL -\fIaddr\fP ¤¬Í­¸ú¤Ê¥Ý¥¤¥ó¥¿¤Ç¤Ê¤¤¤«¡¢ -¥·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤Ç¤Ê¤¤¡£ +\fIaddr\fP が有効なポインタでないか、 +システムのページサイズの倍数でない。 .\" Or: both PROT_GROWSUP and PROT_GROWSDOWN were specified in 'prot'. .TP .B ENOMEM -¥«¡¼¥Í¥ëÆâÉô¤Î¹½Â¤ÂΤò³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +カーネル内部の構造体を割り当てることができなかった。 .TP .B ENOMEM .RI [ addr , .IR addr + len \-1] -¤È¤¤¤¦ÈϰϤΥ¢¥É¥ì¥¹¤¬¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤È¤·¤ÆÉÔÀµ¤Ç¤¢¤ë¤«¡¢ -¤½¤ÎÈϰϤΥ¢¥É¥ì¥¹¤¬¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤Ê¤¤ 1 ¤Ä°Ê¾å¤Î¥Ú¡¼¥¸¤ò»Ø¤·¤Æ¤¤¤ë -(¥«¡¼¥Í¥ë 2.4.19 ¤è¤êÁ°¤Ç¤Ï¡¢¤³¤Î¾õ¶·¤Ç¥¨¥é¡¼ +という範囲のアドレスがプロセスのアドレス空間として不正であるか、 +その範囲のアドレスがマップされていない 1 つ以上のページを指している +(カーネル 2.4.19 より前では、この状況でエラー .B EFAULT -¤¬´Ö°ã¤Ã¤ÆÀ¸À®¤µ¤ì¤Æ¤¤¤¿)¡£ -.SH ½àµò +が間違って生成されていた)。 +.SH 準拠 SVr4, POSIX.1-2001. -.\" SVr4 ¤Ç¤Ï¾¤Ë¥¨¥é¡¼¥³¡¼¥É EAGAIN ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -.\" SVr4 ¤Î¥¨¥é¡¼¾ò·ï¤Ï Linux ¤Î¤â¤Î¤Ë¤­¤Á¤ó¤ÈÂбþ¤·¤Ê¤¤¡£ -POSIX ¤Ç¤Ï¡¢ +.\" SVr4 では他にエラーコード EAGAIN が定義されている。 +.\" SVr4 のエラー条件は Linux のものにきちんと対応しない。 +POSIX では、 .BR mmap (2) -·Ðͳ¤Ç³ÍÆÀ¤·¤Æ¤¤¤Ê¤¤¥á¥â¥êÎΰè¤ËÂФ·¤Æ +経由で獲得していないメモリ領域に対して .BR mprotect () -¤ò¹Ô¤Ã¤¿¾ì¹ç¤Î +を行った場合の .BR mprotect () -¤ÎÆ°ºî¤Ï̤ÄêµÁ¤Ç¤¢¤ë¤È¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -Linux ¤Ç¤Ï¡¢(¥«¡¼¥Í¥ë vsyscall Îΰè°Ê³°¤Î) -Ǥ°Õ¤Î¥×¥í¥»¥¹¥¢¥É¥ì¥¹¶õ´Ö¤ËÂФ·¤Æ +の動作は未定義であるとされている。 +.SH 注意 +Linux では、(カーネル vsyscall 領域以外の) +任意のプロセスアドレス空間に対して .BR mprotect () -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤¬¡¢¾ï¤Ëµö¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤ÏÆä˴û¸¤Î¥³¡¼¥É¥Þ¥Ã¥Ô¥ó¥°¤ò½ñ¤­¹þ¤ß²Äǽ¤Ë¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ +を呼び出すことが、常に許されている。 +これは特に既存のコードマッピングを書き込み可能にするために使われる。 .B PROT_EXEC -¤¬ +が .B PROT_READ -¤È°Û¤Ê¤ë±Æ¶Á¤ò»ý¤Ä¤«Èݤ«¤Ï¡¢¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤È¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë°Í¸¤¹¤ë¡£ -(i386 ¤Ê¤É¤Î) ¤¤¤¯¤Ä¤«¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢ +と異なる影響を持つか否かは、アーキテクチャとカーネルのバージョンに依存する。 +(i386 などの) いくつかのアーキテクチャでは、 .B PROT_WRITE -¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢°ÅÌۤΤ¦¤Á¤Ë +をセットすると、暗黙のうちに .B PROT_READ -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 -POSIX.1-2001 ¤Ç¤Ï¡¢ +POSIX.1-2001 では、 .I prot -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¥¢¥¯¥»¥¹¤òµö²Ä¤¹¤ë¼ÂÁõ¤òǧ¤á¤Æ¤¤¤ë¡£ -¤¿¤À¤·¡¢ºÇÄã¸Â¡¢ +で指定されていないアクセスを許可する実装を認めている。 +ただし、最低限、 .B PROT_WRITE -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Î¤ß½ñ¤­¹þ¤ß¥¢¥¯¥»¥¹¤¬µö²Ä¤µ¤ì¡¢ +がセットされている場合にのみ書き込みアクセスが許可され、 .B PROT_NONE -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¥¢¥¯¥»¥¹¤Ïµö²Ä¤µ¤ì¤Ê¤¤ÅÀ¤À¤±¤Ï -Ëþ¤¿¤¹É¬Íפ¬¤¢¤ë¡£ -.SH Îã +がセットされている場合にはアクセスは許可されない点だけは +満たす必要がある。 +.SH 例 .\" sigaction.2 refers to this example .PP -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢¥á¥â¥ê¥Ú¡¼¥¸¤ò 4¤Ä³ÎÊݤ·¡¢¤½¤Î¤¦¤Á 3ÈÖÌܤΥڡ¼¥¸¤ò -Æɤ߹þ¤ßÀìÍѤËÀßÄꤹ¤ë¡£¤½¤Î¸å¤Ç¡¢³ÎÊݤ·¤¿Îΰè¤Î¥¢¥É¥ì¥¹¤Î¾®¤µ¤¤Êý¤«¤é -Â礭¤ÊÊý¤Ë¸þ¤«¤Ã¤Æ½çÈ֤˥Х¤¥ÈÃͤòÊѹ¹¤¹¤ë¥ë¡¼¥×¤ò¼Â¹Ô¤¹¤ë¡£ +以下のプログラムは、メモリページを 4つ確保し、そのうち 3番目のページを +読み込み専用に設定する。その後で、確保した領域のアドレスの小さい方から +大きな方に向かって順番にバイト値を変更するループを実行する。 -¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤¿¾ì¹ç¤Î°ìÎã¤ò°Ê²¼¤Ë¼¨¤¹¡£ +プログラムを実行した場合の一例を以下に示す。 .in +4n .nf @@ -169,7 +169,7 @@ POSIX.1-2001 Start of region: 0x804c000 Got SIGSEGV at address: 0x804e000 .fi -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .in .nf @@ -231,6 +231,6 @@ main(void) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mmap (2), .BR sysconf (3) diff --git a/release/man2/mq_getsetattr.2 b/release/man2/mq_getsetattr.2 index 62aacfd5..4180cb47 100644 --- a/release/man2/mq_getsetattr.2 +++ b/release/man2/mq_getsetattr.2 @@ -27,9 +27,9 @@ .\" Translated 2006-07-16, Akihiro MOTOKI .\" .TH MQ_GETSETATTR 2 2010-08-29 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -mq_getsetattr \- ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î°À­¤òÀßÄê/¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mq_getsetattr \- メッセージキューの属性を設定/取得する +.SH 書式 .nf .B #include .B #include @@ -37,24 +37,24 @@ mq_getsetattr \- .BI "int mq_getsetattr(mqd_t " mqdes ", struct mq_attr *" newattr "," .BI " struct mq_attr *" oldattr ); .fi -.SH ÀâÌÀ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»ÈÍѤ·¤Ê¤¤¤³¤È¡£ +.SH 説明 +このシステムコールを使用しないこと。 .BR mq_getattr (3) -¤È +と .BR mq_setattr (3) -¤Î¼ÂÁõ¤Ë»ÈÍѤµ¤ì¤ëÄã¥ì¥Ù¥ë¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤¢¤ë¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤É¤Î¤è¤¦¤ËÆ°ºî¤¹¤ë¤«¤Ï +の実装に使用される低レベルのシステムコールである。 +このシステムコールがどのように動作するかは .BR mq_setattr (3) -¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ -.SH ½àµò -¤³¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÏÈóɸ½à¤Ç¤¢¤ë¡£»ÈÍѤòÈò¤±¤ë¤³¤È¡£ -.SH Ãí°Õ -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +の説明を参照のこと。 +.SH 準拠 +このインタフェースは非標準である。使用を避けること。 +.SH 注意 +glibc はこのシステムコールに対するラッパー関数を提供していない。 .BR syscall (2) -¤ò»È¤Ã¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¡£ -(¼Â¤Î¤È¤³¤í¡¢C ¥é¥¤¥Ö¥é¥ê¤ò½ñ¤¤¤Æ¤¤¤ë¤Î¤Ç¤Ê¤¤¸Â¤ê¡¢ -·è¤·¤Æ¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¸Æ¤Ó½Ð¤µ¤Ê¤¤¤³¤È!) -.SH ´ØÏ¢¹àÌÜ +を使って呼び出すこと。 +(実のところ、C ライブラリを書いているのでない限り、 +決してこのシステムコールを呼び出さないこと!) +.SH 関連項目 .BR mq_getattr (3), .BR mq_overview (7) diff --git a/release/man2/mremap.2 b/release/man2/mremap.2 index fb6c3dcb..0ba86289 100644 --- a/release/man2/mremap.2 +++ b/release/man2/mremap.2 @@ -35,185 +35,185 @@ .\" Updated 2005-10-09, Kentaro Shirakata .\" Updated 2006-04-16, Akihiro MOTOKI , LDP v2.28 .\" -.\"WORD: virtual memory ²¾ÁÛ¥á¥â¥ê -.\"WORD: remap ºÆ¥Þ¥Ã¥Ô¥ó¥° -.\"WORD: argument °ú¤­¿ô -.\"WORD: address space ¥¢¥É¥ì¥¹¶õ´Ö -.\"WORD: page align ¥Ú¡¼¥¸¶­³¦ -.\"WORD: linear ¥ê¥Ë¥¢ -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: segment ¥»¥°¥á¥ó¥È -.\"WORD: real memory ¼Â¥á¥â¥ê -.\"WORD: segmentation violation ¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó¿¯³² -.\"WORD: segmentation fault ¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó°ãÈ¿ -.\"WORD: scheme Êý¼° -.\"WORD: implement ¼ÂÁõ -.\"WORD: lock ¥í¥Ã¥¯ +.\"WORD: virtual memory 仮想メモリ +.\"WORD: remap 再マッピング +.\"WORD: argument 引き数 +.\"WORD: address space アドレス空間 +.\"WORD: page align ページ境界 +.\"WORD: linear リニア +.\"WORD: process プロセス +.\"WORD: segment セグメント +.\"WORD: real memory 実メモリ +.\"WORD: segmentation violation セグメンテーション侵害 +.\"WORD: segmentation fault セグメンテーション違反 +.\"WORD: scheme 方式 +.\"WORD: implement 実装 +.\"WORD: lock ロック .\" .TH MREMAP 2 2010-06-10 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -mremap \- ²¾ÁÛ¥á¥â¥ê¡¦¥¢¥É¥ì¥¹¤òºÆ¥Þ¥Ã¥Ô¥ó¥°¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mremap \- 仮想メモリ・アドレスを再マッピングする +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "void *mremap(void *" old_address ", size_t " old_size , .BI " size_t " new_size ", int " flags ", ... /* void *" new_address " */);" .fi -.SH ÀâÌÀ +.SH 説明 .BR mremap () -¤Ï´û¸¤Î¥á¥â¥ê¡¦¥Þ¥Ã¥Ô¥ó¥°¤Î³ÈÄ¥ (¤Þ¤¿¤Ï½Ì¾®) ¤ò¹Ô¤¦¡£ -Ʊ»þ¤Ë°ÜÆ°¤µ¤ì¤ë¤³¤È¤â¤¢¤ë -(\fIflags\fP °ú¤­¿ô¤ÈÍøÍѲÄǽ¤Ê²¾ÁÛ¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤è¤Ã¤Æ·è¤Þ¤ë)¡£ +は既存のメモリ・マッピングの拡張 (または縮小) を行う。 +同時に移動されることもある +(\fIflags\fP 引き数と利用可能な仮想アドレス空間によって決まる)。 -\fIold_address\fP ¤Ï³ÈÄ¥ (¤Þ¤¿¤Ï½Ì¾®) ¤·¤è¤¦¤È¤¹¤ë²¾ÁÛ¥á¥â¥ê¡¦¥Ö¥í¥Ã¥¯ -¤Î¸µ¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£\fIold_address\fP ¤Ï¥Ú¡¼¥¸¶­³¦¤Ë¹ç¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð -¤Ê¤é¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£\fIold_size\fP ¤Ï¸µ¤Î²¾ÁÛ¥á¥â¥ê¡¦¥Ö¥í¥Ã¥¯¤Î -¥µ¥¤¥º¤Ç¤¢¤ë¡£ -\fInew_size\fP ¤ÏÍ׵᤹¤ëÊѹ¹¸å¤Î²¾ÁÛ¥á¥â¥ê¡¦¥Ö¥í¥Ã¥¯¤Î¥µ¥¤¥º¤Ç¤¢¤ë¡£ -5 ÈÖÌܤΰú¤­¿ô¤È¤·¤Æ +\fIold_address\fP は拡張 (または縮小) しようとする仮想メモリ・ブロック +の元のアドレスである。\fIold_address\fP はページ境界に合っていなければ +ならない点に注意すること。\fIold_size\fP は元の仮想メモリ・ブロックの +サイズである。 +\fInew_size\fP は要求する変更後の仮想メモリ・ブロックのサイズである。 +5 番目の引き数として .I new_address -¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£²¼µ­¤Î +を指定することができる。下記の .B MREMAP_FIXED -¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +の説明を参照のこと。 -Linux ¤Ç¤Ï¥á¥â¥ê¤Ï¥Ú¡¼¥¸¤Ëʬ³ä¤µ¤ì¤ë¡£¥æ¡¼¥¶¡¼¡¦¥×¥í¥»¥¹¤Ï (°ì¤Ä¤Þ¤¿¤Ï) -Ê£¿ô¤Î¥ê¥Ë¥¢¤Ê²¾ÁÛ¥á¥â¥ê¥»¥°¥á¥ó¥È¤ò»ý¤Ä¡£ -¤½¤ì¤¾¤ì¤Î²¾ÁÛ¥á¥â¥ê¥»¥°¥á¥ó¥È¤Ï°ì¤Ä°Ê¾å¤Î¼Â¥á¥â¥ê¡¦¥Ú¡¼¥¸ -¤Ë¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¤Æ¤¤¤ë (¥Þ¥Ã¥Ô¥ó¥°¾ðÊó¤Ï¥Ú¡¼¥¸¡¦¥Æ¡¼¥Ö¥ë¤Ç´ÉÍý¤µ¤ì¤ë)¡£ -²¾ÁÛ¥á¥â¥ê¥»¥°¥á¥ó¥È¤Ë¤Ï¥»¥°¥á¥ó¥ÈËè¤ÎÊݸî (¥¢¥¯¥»¥¹¸¢) ¤¬ÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢ -¥á¥â¥ê¤¬ÉÔÀµ¤Ë¥¢¥¯¥»¥¹¤µ¤ì¤¿¾ì¹ç (Î㤨¤ÐÆɤ߹þ¤ßÀìÍѤΥ»¥°¥á¥ó¥È¤Ë -½ñ¤­¹þ¤ó¤À¾ì¹ç)¡¢¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó¿¯³² (segmentation violation) ¤ò -°ú¤­µ¯¤³¤¹¡£¤Þ¤¿¡¢¥»¥°¥á¥ó¥È³°¤Î²¾ÁÛ¥á¥â¥ê¤Ë¥¢¥¯¥»¥¹¤·¤¿¾ì¹ç¤Ë¤â -¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó¿¯³²¤¬È¯À¸¤¹¤ë¡£ +Linux ではメモリはページに分割される。ユーザー・プロセスは (一つまたは) +複数のリニアな仮想メモリセグメントを持つ。 +それぞれの仮想メモリセグメントは一つ以上の実メモリ・ページ +にマッピングされている (マッピング情報はページ・テーブルで管理される)。 +仮想メモリセグメントにはセグメント毎の保護 (アクセス権) が設定されており、 +メモリが不正にアクセスされた場合 (例えば読み込み専用のセグメントに +書き込んだ場合)、セグメンテーション侵害 (segmentation violation) を +引き起こす。また、セグメント外の仮想メモリにアクセスした場合にも +セグメンテーション侵害が発生する。 .BR mremap () -¤Ï Linux ¤Î¥Ú¡¼¥¸¡¦¥Æ¡¼¥Ö¥ëÊý¼°¤ò»ÈÍѤ¹¤ë¡£ +は Linux のページ・テーブル方式を使用する。 .BR mremap () -¤Ï²¾ÁÛ¥¢¥É¥ì¥¹¤È¥á¥â¥ê¡¦¥Ú¡¼¥¸¤Î¥Þ¥Ã¥Ô¥ó¥°¤òÊѹ¹¤¹¤ë¡£¤³¤ì¤ÏÈó¾ï¤Ë¸úΨŪ¤Ê +は仮想アドレスとメモリ・ページのマッピングを変更する。これは非常に効率的な .BR realloc (3) -¤ò¼ÂÁõ¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ +を実装するのに使用されている。 -\fIflags\fP ¥Ó¥Ã¥È¥Þ¥¹¥¯°ú¿ô¤Ï 0 ¤Þ¤¿¤Ï°Ê²¼¤Î¥Õ¥é¥°¤ò´Þ¤à: +\fIflags\fP ビットマスク引数は 0 または以下のフラグを含む: .TP .B MREMAP_MAYMOVE -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¸½ºß¤Î°ÌÃ֤˥ޥåԥ󥰤ò³ÈÄ¥¤¹¤ë¤¿¤á¤Î -½½Ê¬¤Ê¶õ¤­¤¬¤Ê¤±¤ì¤Ð +デフォルトでは、現在の位置にマッピングを拡張するための +十分な空きがなければ .BR mremap () -¤Ï¼ºÇÔ¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤ë¤È¡¢¥«¡¼¥Í¥ë¤ÏɬÍפ¬¤¢¤ì¤Ð¥Þ¥Ã¥Ô¥ó¥°¤ò -¿·¤·¤¤²¾ÁÛ¥¢¥É¥ì¥¹¤ËºÆÇÛÃÖ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë -¥Þ¥Ã¥Ô¥ó¥°¤¬ºÆÇÛÃÖ¤µ¤ì¤ë¤È¡¢¸Å¤¤¥Þ¥Ã¥Ô¥ó¥°°ÌÃ֤ؤÎÀäÂХݥ¤¥ó¥¿¤Ï -̵¸ú¤Ë¤Ê¤ë (¥Þ¥Ã¥Ô¥ó¥°¤Î³«»Ï¥¢¥É¥ì¥¹¤«¤é¤ÎÁêÂÐ¥ª¥Õ¥»¥Ã¥È¤ÏÍ­¸ú¤Î¤Þ¤Þ¤Ç¤¢¤ë)¡£ +は失敗する。 +このフラグが指定されると、カーネルは必要があればマッピングを +新しい仮想アドレスに再配置することができる +マッピングが再配置されると、古いマッピング位置への絶対ポインタは +無効になる (マッピングの開始アドレスからの相対オフセットは有効のままである)。 .TP -.BR MREMAP_FIXED " (Linux 2.3.31 °Ê¹ß)" -¤³¤Î¥Õ¥é¥°¤Ï +.BR MREMAP_FIXED " (Linux 2.3.31 以降)" +このフラグは .BR mmap (2) -¤Î +の .B MAP_FIXED -¥Õ¥é¥°¤È»÷¤¿¤è¤¦¤ÊÌÜŪ¤ÇÍѤ¤¤é¤ì¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤ë¤È¡¢ +フラグと似たような目的で用いられる。 +このフラグが指定されると、 .BR mremap () -¤Ï 5 ÈÖÌܤΰú¤­¿ô +は 5 番目の引き数 .I "void *new_address" -¤ò¼õ¤±¼è¤ê¡¢¤³¤Î°ú¿ô¤Ï¥Þ¥Ã¥Ô¥ó¥°¤¬°ÜÆ°¤µ¤ì¤ë¤Ù¤­¥¢¥É¥ì¥¹¤ò»ØÄꤹ¤ë¡£ -¤³¤Î¥¢¥É¥ì¥¹¤Ï¥Ú¡¼¥¸¶­³¦¤Ë¹ç¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を受け取り、この引数はマッピングが移動されるべきアドレスを指定する。 +このアドレスはページ境界に合っていなければならない。 .I new_address -¤È +と .I new_size -¤Ç»ØÄꤵ¤ì¤ë¥¢¥É¥ì¥¹ÈϰϤ˲áµî¤Î¥Þ¥Ã¥Ô¥ó¥°¤¬¤¢¤Ã¤¿¾ì¹ç¡¢ -¤½¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ï¥¢¥ó¥Þ¥Ã¥×¤µ¤ì¤ë (unmapped)¡£ +で指定されるアドレス範囲に過去のマッピングがあった場合、 +そのマッピングはアンマップされる (unmapped)。 .B MREMAP_FIXED -¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¡¢ +を指定した場合は、 .B MREMAP_MAYMOVE -¤â»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +も指定しなければならない。 .PP .I old_address -¤È +と .I old_size -¤Ç»ØÄꤵ¤ì¤ë¥á¥â¥ê¥»¥°¥á¥ó¥È¤¬ +で指定されるメモリセグメントが .RB ( mlock (2) -¤äƱÍͤΤâ¤Î¤Ç) ¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º¤¬ÊѤï¤Ã¤¿¤ê -ºÆÇÛÃÖ¤µ¤ì¤¿¤ê¤·¤¿»þ¤Ë¥í¥Ã¥¯¤â°Ý»ý¤µ¤ì¤ë¡£ -¤½¤Î·ë²Ì¡¢¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¥í¥Ã¥¯¤µ¤ì¤ë¥á¥â¥ê¤ÎÎ̤ÏÊѲ½¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï +や同様のもので) ロックされている場合、セグメントのサイズが変わったり +再配置されたりした時にロックも維持される。 +その結果、プロセスによってロックされるメモリの量は変化する。 +.SH 返り値 +成功した場合は .BR mremap () -¤Ï¿·¤·¤¤²¾ÁÛ¥á¥â¥êÎΰè¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï +は新しい仮想メモリ領域へのポインタを返す。 +エラーの場合は .B MAP_FAILED -(¤¹¤Ê¤ï¤Á \fI(void\ *)\ \-1\fP) ¤¬ÊÖ¤µ¤ì¡¢ -\fIerrno\fP ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +(すなわち \fI(void\ *)\ \-1\fP) が返され、 +\fIerrno\fP が適切に設定される。 +.SH エラー .TP .B EAGAIN -¸Æ¤Ó½Ð¤·¸µ¤¬¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¥á¥â¥ê¥»¥°¥á¥ó¥È¤ò³ÈÄ¥¤·¤è¤¦¤È¤·¤¿¤¬¡¢ +呼び出し元がロックされているメモリセグメントを拡張しようとしたが、 .B RLIMIT_MEMLOCK -¥ê¥½¡¼¥¹À©¸Â¤ò±Û¤¨¤º¤Ë¤³¤ì¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +リソース制限を越えずにこれを行うことができない。 .TP .B EFAULT -¡Ö¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó°ãÈ¿(segmentation fault)¡× -\fIold_address\fP ¤«¤é \fIold_address\fP+\fIold_size\fP ¤Î -ÈϰϤΥ¢¥É¥ì¥¹¤Î¤É¤ì¤«¤¬¤³¤Î¥×¥í¥»¥¹¤Ë¤ª¤¤¤ÆÉÔÀµ¤Ê²¾ÁÛ¥á¥â¥ê¡¦¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ -¤¿¤È¤¨Í׵ᤷ¤¿¥¢¥É¥ì¥¹¶õ´ÖÁ´ÂΤò´Þ¤à¤è¤¦¤Ê¥Þ¥Ã¥Ô¥ó¥°¤¬¤¢¤Ã¤¿¤È¤·¤Æ¤â¡¢ -¤½¤ì¤é¤Î¥Þ¥Ã¥Ô¥ó¥°¤¬°Û¤Ê¤Ã¤¿·¿¤Ê¤é¤Ð +「セグメンテーション違反(segmentation fault)」 +\fIold_address\fP から \fIold_address\fP+\fIold_size\fP の +範囲のアドレスのどれかがこのプロセスにおいて不正な仮想メモリ・アドレスである。 +たとえ要求したアドレス空間全体を含むようなマッピングがあったとしても、 +それらのマッピングが異なった型ならば .B EFAULT -¤ò¼õ¤±¼è¤ë¤À¤í¤¦¡£ +を受け取るだろう。 .TP .B EINVAL -ÉÔÀµ¤Ê°ú¤­¿ô¤¬Í¿¤¨¤é¤ì¤¿¡£ -²ÄǽÀ­¤Î¤¢¤ë¸¶°ø¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë: -¤¿¤¤¤Æ¤¤¤Ï \fIold_address\fP ¤¬¥Ú¡¼¥¸¶­³¦¤Ë -¹ç¤Ã¤Æ¤Ê¤¤; +不正な引き数が与えられた。 +可能性のある原因は以下の通りである: +たいていは \fIold_address\fP がページ境界に +合ってない; .I flags -¤Ë +に .B MREMAP_MAYMOVE -¤Þ¤¿¤Ï +または .B MREMAP_FIXED -°Ê³°¤ÎÃͤ¬»ØÄꤵ¤ì¤Æ¤¤¤ë; +以外の値が指定されている; .I new_size -¤¬¥¼¥í; +がゼロ; .I new_size -¤Þ¤¿¤Ï +または .I new_address -¤ÎÃͤ¬ÉÔÀµ; +の値が不正; .I new_address -¤È +と .I new_size -¤Ç»ØÄꤵ¤ì¤ë¿·¤·¤¤¥¢¥É¥ì¥¹ÈϰϤ¬ +で指定される新しいアドレス範囲が .I old_address -¤È +と .I old_size -¤Ç»ØÄꤵ¤ì¤ë¸Å¤¤¥¢¥É¥ì¥¹ÈϰϤȽŤʤäƤ¤¤ë; +で指定される古いアドレス範囲と重なっている; .B MREMAP_FIXED -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤¬ +が指定されているが .B MREMAP_MAYMOVE -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +が指定されていない。 .TP .B ENOMEM -¸½ºß¤Î²¾ÁÛ¥¢¥É¥ì¥¹¤Ç¤Ï¥á¥â¥êÎΰ褬³ÈÄ¥¤Ç¤­¤º¡¢ +現在の仮想アドレスではメモリ領域が拡張できず、 .B MREMAP_MAYMOVE -¥Õ¥é¥°¤¬ \fIflags\fP ¤ËÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤Þ¤¿¤Ï½½Ê¬¤Ê (²¾ÁÛ) ¥á¥â¥ê¤¬Â¸ºß¤·¤Ê¤¤¡£ -.SH ½àµò -¤³¤Î¥³¡¼¥ë¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç -»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.\" 4.2BSD ¤Ë¤Ï (¼ÂºÝ¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤¿¤ï¤±¤Ç¤Ï¤Ê¤¤¤¬) -.\" Á´¤¯°Û¤Ã¤¿Êý¼° (semantics) ¤Ë¤è¤ë +フラグが \fIflags\fP に設定されていない。 +または十分な (仮想) メモリが存在しない。 +.SH 準拠 +このコールは Linux 特有であり、移植を意図したプログラムで +使用すべきではない。 +.\" 4.2BSD には (実際に実装されていたわけではないが) +.\" 全く異った方式 (semantics) による .\" .BR mremap (2) -.\" ¥³¡¼¥ë¤¬¤¢¤Ã¤¿¡£ +.\" コールがあった。 .\" FIXME perhaps remove above statement about 4.2BSD. -.SH Ãí°Õ -¥Ð¡¼¥¸¥ç¥ó 2.4 ¤è¤êÁ°¤Î glibc ¤Ç¤Ï¡¢ +.SH 注意 +バージョン 2.4 より前の glibc では、 .B MREMAP_FIXED -¤ÎÄêµÁ¤Ï¸ø³«¤µ¤ì¤Æ¤ª¤é¤º¡¢ +の定義は公開されておらず、 .BR mremap () -¤Î¥×¥í¥È¥¿¥¤¥×¤Ï +のプロトタイプは .I new_address -°ú¤­¿ô¤ò¼è¤é¤Ê¤«¤Ã¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +引き数を取らなかった。 +.SH 関連項目 .BR brk (2), .BR getpagesize (2), .BR getrlimit (2), @@ -223,8 +223,8 @@ Linux .BR realloc (3), .BR malloc (3) .P -¥Ú¡¼¥¸Ê¬³ä¤µ¤ì¤¿¥á¥â¥ê¤Ë¤Ä¤¤¤Æ¤â¤Ã¤È¾Ü¤·¤¯ÃΤꤿ¤¤¤Ê¤é¤Ð -¤¢¤Ê¤¿¤Î¹¥¤ß¤Î OS ¤Î¶µ²Ê½ñ¤ò»²¾È¤¹¤ë¤³¤È¡£ +ページ分割されたメモリについてもっと詳しく知りたいならば +あなたの好みの OS の教科書を参照すること。 (\fIModern Operating Systems\fP by Andrew S. Tannenbaum, \fIInside Linux\fP by Randolf Bentson, \fIThe Design of the UNIX Operating System\fP by Maurice J. Bach.) diff --git a/release/man2/msgctl.2 b/release/man2/msgctl.2 index 70c5d6e7..b2671ceb 100644 --- a/release/man2/msgctl.2 +++ b/release/man2/msgctl.2 @@ -40,19 +40,19 @@ .\" Updated & Modified 2004-12-31, Yuichi SATO .\" Updated & Modified 2005-10-10, Akihiro MOTOKI .\" -.\"WORD: message ¥á¥Ã¥»¡¼¥¸ -.\"WORD: queue ¥­¥å¡¼ -.\"WORD: member ¥á¥ó¥Ð¡¼ -.\"WORD: structure ¹½Â¤ÂÎ -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶ ID -.\"WORD: creator ºîÀ®¼Ô -.\"WORD: owner ½êÍ­¼Ô -.\"WORD: feature test macro µ¡Ç½¸¡ºº¥Þ¥¯¥í +.\"WORD: message メッセージ +.\"WORD: queue キュー +.\"WORD: member メンバー +.\"WORD: structure 構造体 +.\"WORD: effective user ID 実効ユーザ ID +.\"WORD: creator 作成者 +.\"WORD: owner 所有者 +.\"WORD: feature test macro 機能検査マクロ .\" .TH MSGCTL 2 2008-08-06 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -msgctl \- ¥á¥Ã¥»¡¼¥¸À©¸æÁàºî -.SH ½ñ¼° +.SH 名前 +msgctl \- メッセージ制御操作 +.SH 書式 .nf .B #include .B #include @@ -60,291 +60,291 @@ msgctl \- .BI "int msgctl(int " msqid ", int " cmd ", struct msqid_ds *" buf ); .fi -.SH ÀâÌÀ +.SH 説明 .BR msgctl () -¤Ï¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¼±ÊÌ»Ò +はメッセージ・キュー識別子 .I msqid -¤Ç»ØÄꤵ¤ì¤¿¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼ (message queue) ¤ËÂФ·¤Æ +で指定されたメッセージ・キュー (message queue) に対して .I cmd -¤Ç»ØÄꤵ¤ì¤¿À©¸æÁàºî¤ò¹Ô¤Ê¤¦¡£ +で指定された制御操作を行なう。 .PP .I msqid_ds -¥Ç¡¼¥¿¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +データ構造体は \fI\fP で以下のように定義されている: .nf .in +4n struct msqid_ds { - struct ipc_perm msg_perm; /* ½êÍ­¸¢¤Èµö²Ä */ - time_t msg_stime; /* ºÇ¸å¤Î msgsnd(2) ¤Î»þ¹ï */ - time_t msg_rtime; /* ºÇ¸å¤Î msgrcv(2) ¤Î»þ¹ï */ - time_t msg_ctime; /* ºÇ¸å¤ËÊѹ¹¤¬¹Ô¤ï¤ì¤¿»þ¹ï */ - unsigned long __msg_cbytes; /* ¥­¥å¡¼¤Ë¤¢¤ë¸½ºß¤Î¥Ð¥¤¥È¿ô - (Èóɸ½à) */ - msgqnum_t msg_qnum; /* ¥­¥å¡¼¤Ë¤¢¤ë¸½ºßÆþ¤Ã¤Æ¤¤¤ë - ¥á¥Ã¥»¡¼¥¸¤Î¿ô */ - msglen_t msg_qbytes; /* ¥­¥å¡¼¤Ëµö²Ä¤µ¤ì¤Æ¤¤¤ë - ºÇÂç¥Ð¥¤¥È¿ô */ - pid_t msg_lspid; /* ºÇ¸å¤Î msgsnd(2) ¤Î PID */ - pid_t msg_lrpid; /* ºÇ¸å¤Î msgrcv(2) ¤Î PID */ + struct ipc_perm msg_perm; /* 所有権と許可 */ + time_t msg_stime; /* 最後の msgsnd(2) の時刻 */ + time_t msg_rtime; /* 最後の msgrcv(2) の時刻 */ + time_t msg_ctime; /* 最後に変更が行われた時刻 */ + unsigned long __msg_cbytes; /* キューにある現在のバイト数 + (非標準) */ + msgqnum_t msg_qnum; /* キューにある現在入っている + メッセージの数 */ + msglen_t msg_qbytes; /* キューに許可されている + 最大バイト数 */ + pid_t msg_lspid; /* 最後の msgsnd(2) の PID */ + pid_t msg_lrpid; /* 最後の msgrcv(2) の PID */ }; .in .fi .PP .I ipc_perm -¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë -(¶¯Ä´¤µ¤ì¤¿¥Õ¥£¡¼¥ë¥É¤Ï +構造体は \fI\fP で以下のように定義されている +(強調されたフィールドは .B IPC_SET -¤ò»È¤Ã¤ÆÀßÄê²Äǽ¤Ç¤¢¤ë): +を使って設定可能である): .PP .nf .in +4n struct ipc_perm { - key_t __key; /* msgget(2) ¤ËÍ¿¤¨¤ë¥­¡¼ */ - uid_t \fBuid\fP; /* ½êÍ­¼Ô¤Î¼Â¸ú UID */ - gid_t \fBgid\fP; /* ½êÍ­¼Ô¤Î¼Â¸ú GID */ - uid_t cuid; /* ºîÀ®¼Ô¤Î¼Â¸ú UID */ - gid_t cgid; /* ºîÀ®¼Ô¤Î¼Â¸ú GID */ - unsigned short \fBmode\fP; /* µö²Ä */ - unsigned short __seq; /* ¥·¡¼¥±¥ó¥¹ÈÖ¹æ */ + key_t __key; /* msgget(2) に与えるキー */ + uid_t \fBuid\fP; /* 所有者の実効 UID */ + gid_t \fBgid\fP; /* 所有者の実効 GID */ + uid_t cuid; /* 作成者の実効 UID */ + gid_t cgid; /* 作成者の実効 GID */ + unsigned short \fBmode\fP; /* 許可 */ + unsigned short __seq; /* シーケンス番号 */ }; .in .fi .PP .I cmd -¤È¤·¤ÆÍ­¸ú¤ÊÃͤÏ: +として有効な値は: .TP .B IPC_STAT .I msqid -¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¡¦¥Ç¡¼¥¿¹½Â¤ÂΤ«¤é¡¢¥Ý¥¤¥ó¥¿ +に関連づけられたメッセージ・キュー・データ構造体から、ポインタ .I buf -¤¬»Ø¤·¼¨¤¹ +が指し示す .I msqid_ds -¹½Â¤ÂΤ˾ðÊó¤ò¥³¥Ô¡¼¤¹¤ë¡£ -¸Æ¤Ó½Ð¤·Â¦¤Ï¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ËÂФ¹¤ëÆɤ߹þ¤ßµö²Ä¤ò»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +構造体に情報をコピーする。 +呼び出し側はメッセージ・キューに対する読み込み許可を持っていなければならない。 .TP .B IPC_SET -¥Ý¥¤¥ó¥¿ +ポインタ .I buf -¤¬»Ø¤·¼¨¤¹ +が指し示す .I msqid_ds -¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤ÎÃͤò¡¢¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿ -¥«¡¼¥Í¥ë¡¦¥Ç¡¼¥¿¹½Â¤ÂΤ˽ñ¤­¹þ¤ß¡¢ +構造体のメンバーの値を、メッセージ・キューに関連づけられた +カーネル・データ構造体に書き込み、 .I msg_ctime -¥á¥ó¥Ð¡¼¤â¹¹¿·¤¹¤ë¡£ -¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤Î¤¦¤Á¡¢¹¹¿·¤µ¤ì¤ë¤â¤Î¤ò°Ê²¼¤Ë¼¨¤¹: +メンバーも更新する。 +構造体のメンバーのうち、更新されるものを以下に示す: .IR msg_qbytes , .IR msg_perm.uid , .IR msg_perm.gid , .I msg_perm.mode -(¤Î²¼°Ì 9 ¥Ó¥Ã¥È)¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤¬¡¢¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î½êÍ­¼Ô +(の下位 9 ビット)。 +呼び出したプロセスの実効ユーザ ID が、メッセージ・キューの所有者 .RI ( msg_perm.uid ) -¤Þ¤¿¤ÏºîÀ®¼Ô +または作成者 .RI ( msg_perm.cuid ) -¤È°ìÃפ¹¤ë¤«¡¢¸Æ¤Ó½Ð¤·¸µ¤¬Æø¢¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +と一致するか、呼び出し元が特権を持たなければならない。 .I msg_qbytes -¤ò¥·¥¹¥Æ¥à¡¦¥Ñ¥é¥á¡¼¥¿¤Î +をシステム・パラメータの .B MSGMNB -¤òĶ¤¨¤ÆÀßÄꤹ¤ë¤Ë¤Ï¡¢Å¬ÀÚ¤ÊÆø¢ (Linux ¤Ç¤Ï +を超えて設定するには、適切な特権 (Linux では .B CAP_IPC_RESOURCE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability)) ¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティ (capability)) が必要である。 .TP .B IPC_RMID -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ò¤¿¤À¤Á¤Ëºï½ü¤¹¤ë¡£ -Ʊ»þ¤Ë¤½¤Î¹½Â¤ÂΤÎÆɤ߽ñ¤­¤ÎÂÔ¤Á¾õÂ֤ˤ¢¤Ã¤¿¥×¥í¥»¥¹¤ËÄÌÃΤ¹¤ë -(¥¨¥é¡¼¤¬Ê֤ꡢ +メッセージ・キューをただちに削除する。 +同時にその構造体の読み書きの待ち状態にあったプロセスに通知する +(エラーが返り、 .I errno -¤¬ +が .B EIDRM -¤ËÀßÄꤵ¤ì¤ë)¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬Å¬ÀÚ¤ÊÆø¢¤ò»ý¤Ã¤Æ¤¤¤ë¤«¡¢ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤¬¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ÎºîÀ®¼Ô¤« -½êÍ­¼Ô¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +に設定される)。 +呼び出したプロセスが適切な特権を持っているか、 +呼び出したプロセスの実効ユーザ ID がメッセージ・キューの作成者か +所有者の実効ユーザ ID でなければならない。 .TP -.BR IPC_INFO " (Linux ¸ÇÍ­)" -¥·¥¹¥Æ¥àÁ´ÂΤǤΥá¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ÎÀ©¸Â¤È¥Ñ¥é¥á¡¼¥¿¤Ë´Ø¤¹¤ë¾ðÊó¤ò¡¢ +.BR IPC_INFO " (Linux 固有)" +システム全体でのメッセージ・キューの制限とパラメータに関する情報を、 .I buf -¤¬»Ø¤¹¹½Â¤ÂΤËÆþ¤ì¤ÆÊÖ¤¹¡£ -¤³¤Î¹½Â¤ÂÎ¤Ï +が指す構造体に入れて返す。 +この構造体は .I msginfo -·¿¤Ç¤¢¤ë (¤½¤Î¤¿¤á¥­¥ã¥¹¥È¤¬É¬ÍפǤ¢¤ë)¡£ +型である (そのためキャストが必要である)。 .I msginfo -¤Ï +は .B _GNU_SOURCE -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë +機能検査マクロが定義された場合に .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë: +で以下のように定義される: .nf .in +4n struct msginfo { - int msgpool; /* ¥á¥Ã¥»¡¼¥¸¡¦¥Ç¡¼¥¿¤ÎÊÝ»ý¤Ë»ÈÍѤµ¤ì¤ë - ¥Ð¥Ã¥Õ¥¡¡¦¥×¡¼¥ë¤ÎÂ礭¤µ (1024 ¥Ð¥¤¥Èñ°Ì); - ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */ - int msgmap; /* ¥á¥Ã¥»¡¼¥¸¡¦¥Þ¥Ã¥×¤ÎºÇÂ票¥ó¥È¥ê¿ô; - ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */ - int msgmax; /* °ì¤Ä¤Î¥á¥Ã¥»¡¼¥¸¤Ë½ñ¤­¹þ¤ß²Äǽ¤Ê - ºÇÂç¥Ð¥¤¥È¿ô */ - int msgmnb; /* °ì¤Ä¤Î¥­¥å¡¼¤Ë½ñ¤­¹þ¤ß²Äǽ¤ÊºÇÂç¥Ð¥¤¥È¿ô; - (msgget(2) ¤Ç¤Î) ¥­¥å¡¼ºîÀ®Ãæ¤Î msg_qbytes - ¤Î½é´ü²½¤Ë»ÈÍѤµ¤ì¤ë */ - int msgmni; /* ¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¿ô¤ÎºÇÂçÃÍ */ - int msgssz; /* ¥á¥Ã¥»¡¼¥¸¡¦¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º; - ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */ - int msgtql; /* ¥·¥¹¥Æ¥à¾å¤ÎÁ´¥­¥å¡¼¤ÎºÇÂç¥á¥Ã¥»¡¼¥¸¿ô; - ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */ + int msgpool; /* メッセージ・データの保持に使用される + バッファ・プールの大きさ (1024 バイト単位); + カーネル内では未使用 */ + int msgmap; /* メッセージ・マップの最大エントリ数; + カーネル内では未使用 */ + int msgmax; /* 一つのメッセージに書き込み可能な + 最大バイト数 */ + int msgmnb; /* 一つのキューに書き込み可能な最大バイト数; + (msgget(2) での) キュー作成中の msg_qbytes + の初期化に使用される */ + int msgmni; /* メッセージ・キューの数の最大値 */ + int msgssz; /* メッセージ・セグメントのサイズ; + カーネル内では未使用 */ + int msgtql; /* システム上の全キューの最大メッセージ数; + カーネル内では未使用 */ unsigned short int msgseg; - /* ºÇÂ祻¥°¥á¥ó¥È¿ô; ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */ + /* 最大セグメント数; カーネル内では未使用 */ }; .in .fi -ÀßÄê +設定 .I msgmni , .I msgmax , .I msgmnb -¤Ï +は .I /proc -¤Ë¤¢¤ëƱ¤¸Ì¾Á°¤Î¥Õ¥¡¥¤¥ë·Ðͳ¤ÇÊѹ¹²Äǽ¤Ç¤¢¤ë¡£ -¾Ü¤·¤¯¤Ï +にある同じ名前のファイル経由で変更可能である。 +詳しくは .BR proc (5) -¤ò»²¾È¡£ +を参照。 .TP -.BR MSG_INFO " (Linux ¸ÇÍ­)" +.BR MSG_INFO " (Linux 固有)" .B IPC_INFO -¤Î¤È¤­¤ÈƱ¤¸¾ðÊó¤ò³ÊǼ¤·¤¿ +のときと同じ情報を格納した .I msginfo -¹½Â¤ÂΤòÊÖ¤¹¡£ -⤷¡¢°Ê²¼¤Î¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬ -¾ÃÈñ¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à»ñ¸»¤Ë´Ø¤¹¤ë¾ðÊ󤬳ÊǼ¤µ¤ì¤ëÅÀ¤¬°Û¤Ê¤ë¡£ +構造体を返す。 +但し、以下のフィールドにはメッセージ・キューが +消費しているシステム資源に関する情報が格納される点が異なる。 .I msgpool -¥Õ¥£¡¼¥ë¥É¤Ï¸½ºß¥·¥¹¥Æ¥à¾å¤Ë¸ºß¤¹¤ë¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¿ô¤òÊÖ¤¹¡£ +フィールドは現在システム上に存在するメッセージ・キューの数を返す。 .I msgmap -¥Õ¥£¡¼¥ë¥É¤Ï¥·¥¹¥Æ¥à¾å¤ÎÁ´¤Æ¤Î¥­¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ë¥á¥Ã¥»¡¼¥¸Áí¿ô¤òÊÖ¤¹¡£ +フィールドはシステム上の全てのキューに入っているメッセージ総数を返す。 .I msgtql -¥Õ¥£¡¼¥ë¥É¤Ï¥·¥¹¥Æ¥à¾å¤ÎÁ´¤Æ¤Î¥­¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ëÁ´¥á¥Ã¥»¡¼¥¸¤Î -Áí¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ +フィールドはシステム上の全てのキューに入っている全メッセージの +総バイト数を返す。 .TP -.BR MSG_STAT " (Linux ¸ÇÍ­)" +.BR MSG_STAT " (Linux 固有)" .B IPC_STAT -¤ÈƱ¤¸¤¯ +と同じく .I msqid_ds -¹½Â¤ÂΤòÊÖ¤¹¡£ -⤷¡¢ +構造体を返す。 +但し、 .I msqid -°ú¤­¿ô¤Ï¡¢¥­¥å¡¼¼±Ê̻ҤǤϤʤ¯¡¢¥·¥¹¥Æ¥à¾å¤ÎÁ´¤Æ¤Î¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼ -¤Ë´Ø¤¹¤ë¾ðÊó¤ò´ÉÍý¤¹¤ë¥«¡¼¥Í¥ë¤ÎÆâÉôÇÛÎó¤Ø¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +引き数は、キュー識別子ではなく、システム上の全てのメッセージ・キュー +に関する情報を管理するカーネルの内部配列へのインデックスである。 +.SH 返り値 +成功すると、 .BR IPC_STAT , .BR IPC_SET , .B IPC_RMID -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .B IPC_INFO -¤È +と .B MSG_INFO -Áàºî¤Ï¡¢À®¸ù¤¹¤ë¤È¡¢Á´¤Æ¤Î¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Ë´Ø¤¹¤ë¾ðÊó¤ò -´ÉÍý¤·¤Æ¤¤¤ë¥«¡¼¥Í¥ë¤ÎÆâÉôÇÛÎó¤Î»ÈÍÑÃ楨¥ó¥È¥ê¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Î -¤¦¤ÁºÇÂçÃͤòÊÖ¤¹ -(¤³¤Î¾ðÊó¤Ï¡¢¥·¥¹¥Æ¥à¤ÎÁ´¤Æ¤Î¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Ë´Ø¤¹¤ë¾ðÊó¤ò -¼èÆÀ¤¹¤ë¤¿¤á¤Ë¡¢ +操作は、成功すると、全てのメッセージ・キューに関する情報を +管理しているカーネルの内部配列の使用中エントリのインデックスの +うち最大値を返す +(この情報は、システムの全てのメッセージ・キューに関する情報を +取得するために、 .B MSG_STAT -Áàºî¤ò·«¤êÊÖ¤·¼Â¹Ô¤¹¤ëºÝ¤Ë»ÈÍѤǤ­¤ë)¡£ +操作を繰り返し実行する際に使用できる)。 .B MSG_STAT -Áàºî¤Ï¡¢À®¸ù¤¹¤ë¤È¡¢ +操作は、成功すると、 .I msqid -¤Ç»ØÄꤵ¤ì¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»ý¤Ä¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¼±Ê̻ҤòÊÖ¤¹¡£ +で指定されたインデックスを持つメッセージ・キューの識別子を返す。 -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +エラーの場合は \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +を適切に設定する。 +.SH エラー +失敗した場合、 .I errno -¤Ï°Ê²¼¤ÎÃͤÎÃæ¤Î¤É¤ì¤«°ì¤Ä¤ËÀßÄꤵ¤ì¤ë: +は以下の値の中のどれか一つに設定される: .TP .B EACCES -°ú¤­¿ô +引き数 .I cmd -¤¬ +が .B IPC_STAT -¤Þ¤¿¤Ï +または .B MSG_STAT -¤ËÅù¤·¤¤¤¬¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼ +に等しいが、呼び出したプロセスがメッセージ・キュー .I msqid -¤ËÂФ¹¤ëÆɤ߹þ¤ßµö²Ä¤ò»ý¤Ã¤Æ¤ª¤é¤º¡¢¤«¤Ä +に対する読み込み許可を持っておらず、かつ .B CAP_IPC_OWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +ケーパビリティを持っていない。 .TP .B EFAULT -°ú¤­¿ô +引き数 .I cmd -¤¬ +が .B IPC_SET -¤« +か .B IPC_STAT -¤Ç¡¢¥Ý¥¤¥ó¥¿ +で、ポインタ .I buf -¤Ç»Ø¤µ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¤¬¥¢¥¯¥»¥¹²Äǽ¤Ç¤Ê¤¤¡£ +で指されているアドレスがアクセス可能でない。 .TP .B EIDRM -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬ºï½ü¤µ¤ì¤¿¡£ +メッセージ・キューが削除された。 .TP .B EINVAL .I cmd -¤Þ¤¿¤Ï +または .I msqid -¤ËÉÔÀµ¤ÊÃͤ¬ÀßÄꤵ¤ì¤¿¡£ -¤â¤·¤¯¤Ï¡¢ +に不正な値が設定された。 +もしくは、 .B MSG_STAT -Áàºî¤Î¾ì¹ç¤Ë¡¢ +操作の場合に、 .I msqid -¤Ç»ØÄꤵ¤ì¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹Ãͤ¬¸½ºß̤»ÈÍѤÎÇÛÎó¤Î¥¹¥í¥Ã¥È¤ò»²¾È¤¤¤Æ¤¤¤¿¡£ +で指定されたインデックス値が現在未使用の配列のスロットを参照いていた。 .TP .B EPERM -°ú¤­¿ô +引き数 .I cmd -¤¬ +が .B IPC_SET -¤« +か .B IPC_RMID -¤Ç¤¢¤ë¤¬¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤¬¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î +であるが、呼び出したプロセスの実効ユーザ ID がメッセージキューの .RI ( msg_perm.cuid -¤È¤·¤Æ¸«¤Ä¤«¤ë) ºîÀ®¼Ô -¤È +として見つかる) 作成者 +と .RI ( msg_perm.uid -¤È¤·¤Æ¸«¤Ä¤«¤ë) ½êÍ­¼Ô¤Î¤¤¤º¤ì¤Ç¤â¤Ê¤¯¡¢ -¤«¤Ä¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ËÆø¢ (Linux ¤Ç¤Ï +として見つかる) 所有者のいずれでもなく、 +かつ呼び出したプロセスに特権 (Linux では .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤¬¤Ê¤¤¡£ -.SH ½àµò +ケーパビリティ) がない。 +.SH 準拠 SVr4, POSIX.1-2001. -.\" SVID ¤Ë¤Ï EIDRM ¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ +.\" SVID には EIDRM エラーについての記述はない。 +.SH 注意 .BR IPC_INFO , .BR MSG_STAT , .B MSG_INFO -Áàºî¤Ï¡¢ +操作は、 .BR ipcs (1) -¥×¥í¥°¥é¥à¤Ç³ä¤êÅö¤ÆºÑ¤Î»ñ¸»¤Ë´Ø¤¹¤ë¾ðÊó¤òÄ󶡤¹¤ë¤¿¤á¤Ë -»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£¾­Íè¡¢¤³¤ì¤é¤ÎÁàºî¤ÏÊѹ¹¤µ¤ì¤¿¤ê¡¢ -/proc ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë°ÜÆ°¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +プログラムで割り当て済の資源に関する情報を提供するために +使用されている。将来、これらの操作は変更されたり、 +/proc ファイルシステムのインタフェースに移動されるかもしれない。 -\fIstruct msqid_ds\fP Æâ¤Î¿¤¯¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢ -Linux 2.2 ¤Ç¤Ï +\fIstruct msqid_ds\fP 内の多くのフィールドは、 +Linux 2.2 では .I short -¤À¤Ã¤¿¤¬¡¢Linux 2.4 ¤Ç¤Ï +だったが、Linux 2.4 では .I long -¤Ë¤Ê¤Ã¤¿¡£ -¤³¤ÎÍøÅÀ¤òÀ¸¤«¤¹¤Ë¤Ï¡¢glibc-2.1.91 °Ê¹ß¤Î´Ä¶­²¼¤Ç -ºÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ì¤Ð½½Ê¬¤Ç¤¢¤ë¡£ -(¥«¡¼¥Í¥ë¤Ï¿·¤·¤¤·Á¼°¤Î¸Æ¤Ó½Ð¤·¤È¸Å¤¤·Á¼°¤Î¸Æ¤Ó½Ð¤·¤ò +になった。 +この利点を生かすには、glibc-2.1.91 以降の環境下で +再コンパイルすれば十分である。 +(カーネルは新しい形式の呼び出しと古い形式の呼び出しを .I cmd -Æâ¤Î +内の .B IPC_64 -¥Õ¥é¥°¤Ç¶èÊ̤¹¤ë¡£) -.SH ´ØÏ¢¹àÌÜ +フラグで区別する。) +.SH 関連項目 .BR msgget (2), .BR msgrcv (2), .BR msgsnd (2), diff --git a/release/man2/msgget.2 b/release/man2/msgget.2 index 1db557b4..7c9e6e46 100644 --- a/release/man2/msgget.2 +++ b/release/man2/msgget.2 @@ -36,24 +36,24 @@ .\" Modified 2003-07-03, Akihiro MOTOKI .\" Updated 2005-03-04, Akihiro MOTOKI .\" -.\"WORD: message ¥á¥Ã¥»¡¼¥¸ -.\"WORD: queue ¥­¥å¡¼ -.\"WORD: identifier ¼±ÊÌ»Ò -.\"WORD: argument °ú¤­¿ô -.\"WORD: owner ½êÍ­¼Ô -.\"WORD: group ¥°¥ë¡¼¥× -.\"WORD: other ¾¿Í -.\"WORD: initialize ½é´ü²½ -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: effective group ID ¼Â¸ú¥°¥ë¡¼¥×ID -.\"WORD: current time ¸½ºß»þ¹ï -.\"WORD: destruction ÇË´þ -.\"WORD: policy Êý¿Ë +.\"WORD: message メッセージ +.\"WORD: queue キュー +.\"WORD: identifier 識別子 +.\"WORD: argument 引き数 +.\"WORD: owner 所有者 +.\"WORD: group グループ +.\"WORD: other 他人 +.\"WORD: initialize 初期化 +.\"WORD: effective user ID 実効ユーザーID +.\"WORD: effective group ID 実効グループID +.\"WORD: current time 現在時刻 +.\"WORD: destruction 破棄 +.\"WORD: policy 方針 .\" .TH MSGGET 2 2004-05-27 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -msgget \- ¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¼±Ê̻Ҥò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +msgget \- メッセージ・キュー識別子を取得する +.SH 書式 .nf .B #include .B #include @@ -61,184 +61,184 @@ msgget \- .BI "int msgget(key_t " key ", int " msgflg ); .fi -.SH ÀâÌÀ +.SH 説明 .BR msgget () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +システムコールは .I key -°ú¤­¿ô¤ÎÃͤËÂбþ¤¹¤ë¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¼±Ê̻ҤòÊÖ¤¹¡£ +引き数の値に対応するメッセージ・キューの識別子を返す。 .I key -¤ÎÃͤ¬ +の値が .B IPC_PRIVATE -¤Î¾ì¹ç¡¢¤Þ¤¿¤Ï +の場合、または .I key -¤¬ +が .B IPC_PRIVATE -¤Ç¤Ê¤¯¤Æ¤â¡¢ +でなくても、 .I key -¤ËÂбþ¤¹¤ë¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬Â¸ºß¤»¤º¡¢ +に対応するメッセージ・キューが存在せず、 .I msgflg -¤Ë +に .B IPC_CREAT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¿·¤·¤¤¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬ºîÀ®¤µ¤ì¤ë¡£ +が指定されている場合、 +新しいメッセージ・キューが作成される。 .PP .I msgflg -¤Ë +に .B IPC_CREAT -¤È +と .B IPC_EXCL -¤ÎξÊý¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +の両方が指定された場合、 .I key -¤ËÂбþ¤¹¤ë¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬´û¤Ë¸ºß¤¹¤ë¤È¡¢ +に対応するメッセージ・キューが既に存在すると、 .BR msgget () -¤Ï¼ºÇÔ¤·¡¢ +は失敗し、 .I errno -¤Ë +に .B EEXIST -¤¬ÀßÄꤵ¤ì¤ë¡£ -(¤³¤ì¤Ï +が設定される。 +(これは .BR open (2) -¤Ë +に .B O_CREAT | O_EXCL -¤ò»ØÄꤷ¤¿¾ì¹ç¤ÎÆ°ºî¤ÈƱ¤¸¤Ç¤¢¤ë) +を指定した場合の動作と同じである) .PP -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ÎºîÀ®»þ¤Ë¡¢ +メッセージ・キューの作成時に、 .I msgflg -°ú¤­¿ô¤Î²¼°Ì 9 ¥Ó¥Ã¥È¤Ï¡¢ -¤½¤Î¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¥¢¥¯¥»¥¹µö²Ä¤ÎÄêµÁ¤È¤·¤Æ»ÈÍѤµ¤ì¤ë¡£ -¤³¤ì¤é¤Îµö²Ä¥Ó¥Ã¥È¤Ï +引き数の下位 9 ビットは、 +そのメッセージ・キューのアクセス許可の定義として使用される。 +これらの許可ビットは .BR open (2) -¤Î°ú¤­¿ô +の引き数 .I mode -¤ÈƱ¤¸·Á¼°¤ÇƱ¤¸°ÕÌ£¤Ç¤¢¤ë¡£ -¤ä +と同じ形式で同じ意味である。 +や .BR creat (2) -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Î¥¢¥¯¥»¥¹µö²Ä¥Ñ¥é¥á¡¼¥¿¤ÈƱ¤¸·Á¼°¤Ç¡¢Æ±¤¸°ÕÌ£¤ò»ý¤Ä¡£ -(⤷¡¢¼Â¹Ô (execute) µö²Ä¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£) +システム・コールのアクセス許可パラメータと同じ形式で、同じ意味を持つ。 +(但し、実行 (execute) 許可は使用されない。) .PP -¿·µ¬¤Î¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤òºîÀ®¤¹¤ëºÝ¡¢ +新規のメッセージ・キューを作成する際、 .BR msgget () -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¥Ç¡¼¥¿¹½Â¤ÂÎ +システム・コールはメッセージ・キューのデータ構造体 .I msqid_ds -¤ò°Ê²¼¤Î¤è¤¦¤Ë½é´ü²½¤¹¤ë +を以下のように初期化する .RI ( msqid_ds -¤Ë¤Ä¤¤¤Æ¤Ï +については .BR msgctl (2) -¤ò»²¾È): +を参照): .IP .I msg_perm.cuid -¤È +と .I msg_perm.uid -¤Ë¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú (effective) ¥æ¡¼¥¶¡¼ID ¤òÀßÄꤹ¤ë¡£ +に呼び出し元プロセスの実効 (effective) ユーザーID を設定する。 .IP .I msg_perm.cgid -¤È +と .I msg_perm.gid -¤Ë¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú (effective) ¥°¥ë¡¼¥×ID ¤òÀßÄꤹ¤ë¡£ +に呼び出し元プロセスの実効 (effective) グループID を設定する。 .IP .I msg_perm.mode -¤Î²¼°Ì 9 ¥Ó¥Ã¥È¤Ï +の下位 9 ビットは .I msgflg -¤Î²¼°Ì 9 ¥Ó¥Ã¥È¤òÀßÄꤹ¤ë¡£ +の下位 9 ビットを設定する。 .IP .IR msg_qnum , .IR msg_lspid , .IR msg_lrpid , .IR msg_stime , .I msg_rtime -¤Ë 0 ¤òÀßÄꤵ¤ì¤ë¡£ +に 0 を設定される。 .IP .I msg_ctime -¤Ë¸½ºß¤Î»þ¹ï¤òÀßÄꤹ¤ë¡£ +に現在の時刻を設定する。 .IP .I msg_qbytes -¤Ë¡¢¥·¥¹¥Æ¥à¤Ç·è¤á¤é¤ì¤¿¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ÎºÇÂ祵¥¤¥º +に、システムで決められたメッセージ・キューの最大サイズ .B MSGMNB -¤òÀßÄꤹ¤ë¡£ +を設定する。 .PP -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¾ì¹ç¤Ï¡¢¥¢¥¯¥»¥¹µö²Ä¤Î¸¡ºº¤È¡¢ -ÇË´þ (destruction) ¥Þ¡¼¥¯¤¬¤Ê¤¤¤«¤Î³Îǧ¤¬¹Ô¤ï¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ÊÖ¤êÃͤϥá¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¼±ÊÌ»Ò (ÈóÉé¤ÎÀ°¿ô) ¤È¤Ê¤ë¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +メッセージ・キューがすでに存在する場合は、アクセス許可の検査と、 +破棄 (destruction) マークがないかの確認が行われる。 +.SH 返り値 +成功した場合、返り値はメッセージ・キュー識別子 (非負の整数) となる。 +失敗した場合は \-1 が返され、 .I errno -¤Ë¤½¤Î¥¨¥é¡¼¤¬¼¨¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +にそのエラーが示される。 +.SH エラー +失敗した場合、 .I errno -¤Ë°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«°ì¤Ä¤¬ÀßÄꤵ¤ì¤ë: +に以下の値のいずれか一つが設定される: .TP .B EACCES .I key -¤ËÂбþ¤¹¤ë¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Ï¸ºß¤¹¤ë¤¬¡¢ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ï¤½¤Î¥­¥å¡¼¤ËÂФ¹¤ë¥¢¥¯¥»¥¹µö²Ä¤¬¤Ê¤¯¡¢ +に対応するメッセージ・キューは存在するが、 +呼び出し元プロセスはそのキューに対するアクセス許可がなく、 .B CAP_IPC_OWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤â»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +ケーパビリティも持っていない。 .TP .B EEXIST .I key -¤ËÂбþ¤¹¤ë¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬Â¸ºß¤·¡¢ +に対応するメッセージ・キューが存在し、 .I msgflg -¤Ë +に .B IPC_CREAT -¤È +と .B IPC_EXCL -¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¡£ +が指定されていた。 .TP .B ENOENT .I key -¤ËÂбþ¤¹¤ë¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬Â¸ºß¤»¤º¡¢ +に対応するメッセージ・キューが存在せず、 .I msgflg -¤Ë +に .B IPC_CREAT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +が指定されていなかった。 .TP .B ENOMEM -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤òºîÀ®¤·¤è¤¦¤È¤·¤¿¤¬¡¢¿·¤·¤¤¥Ç¡¼¥¿¹½Â¤ÂΤòºîÀ® -¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¥·¥¹¥Æ¥à¤Ë¸ºß¤·¤Ê¤¤¡£ +メッセージ・キューを作成しようとしたが、新しいデータ構造体を作成 +するのに十分なメモリがシステムに存在しない。 .TP .B ENOSPC -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤òºîÀ®¤·¤è¤¦¤È¤·¤¿¤¬¡¢ºîÀ®¤¹¤ë¤È -¥·¥¹¥Æ¥àÁ´ÂΤΥá¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¿ô¤ÎºÇÂçÃÍ +メッセージ・キューを作成しようとしたが、作成すると +システム全体のメッセージ・キュー数の最大値 .RB ( MSGMNI ) -¤òĶ¤¨¤Æ¤·¤Þ¤¦¡£ -.SH ½àµò +を超えてしまう。 +.SH 準拠 SVr4, POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .B IPC_PRIVATE -¤Ï¥Õ¥é¥°¤Ç¤Ï¤Ê¤¯¡¢ +はフラグではなく、 .I key_t -·¿¤Ç¤¢¤ë¡£ -¤³¤ÎÆÃÊ̤ÊÃͤ¬ +型である。 +この特別な値が .I key -¤È¤·¤Æ»ÈÍѤµ¤ì¤¿¾ì¹ç¡¢ +として使用された場合、 .BR msgget () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +システムコールは .I msgflg -¤Î²¼°Ì 9 ¥Ó¥Ã¥È°Ê³°¤ÎÁ´¤Æ¤ò̵»ë¤·¤Æ -(À®¸ù¤·¤¿¾ì¹ç¤Ï) ¿·¤·¤¤¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤òºîÀ®¤¹¤ë¡£ +の下位 9 ビット以外の全てを無視して +(成功した場合は) 新しいメッセージ・キューを作成する。 .PP .BR msgget () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë±Æ¶Á¤òµÚ¤Ü¤¹¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î»ñ¸»¤Î -¥·¥¹¥Æ¥à¤È¤·¤Æ¤ÎÀ©¸Â¤ò°Ê²¼¤Ë¼¨¤¹: +システムコールに影響を及ぼすメッセージ・キューの資源の +システムとしての制限を以下に示す: .TP .B MSGMNI -¥·¥¹¥Æ¥àÁ´ÂΤΥá¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¿ô¤ÎºÇÂçÃÍ: Êý¿Ë°Í¸ -(Linux ¤Ç¤Ï¡¢¤³¤ÎÀ©¸ÂÃÍ¤Ï +システム全体のメッセージ・キュー数の最大値: 方針依存 +(Linux では、この制限値は .I /proc/sys/kernel/msgmni -·Ðͳ¤Ç»²¾È¤·¤¿¤ê¡¢Êѹ¹¤·¤¿¤ê¤Ç¤­¤ë)¡£ -.SS Linux ¤Ç¤ÎÃí°Õ -Linux 2.3.20 ¤Þ¤Ç¤Ï¡¢ºï½ü¤¬Í½Äꤵ¤ì¤Æ¤¤¤ë¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ËÂФ·¤Æ +経由で参照したり、変更したりできる)。 +.SS Linux での注意 +Linux 2.3.20 までは、削除が予定されているメッセージ・キューに対して .BR msgget () -¤ò¹Ô¤¦¤È +を行うと .B EIDRM -¤¬¥¨¥é¡¼¤È¤·¤ÆÊÖ¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤¿¡£ -.SH ¥Ð¥° +がエラーとして返されるようになっていた。 +.SH バグ .B IPC_PRIVATE -¤È¤¤¤¦Ì¾Á°¤òÁª¤ó¤À¤Î¤Ï¤ª¤½¤é¤¯¼ºÇԤǤ¢¤í¤¦¡£ +という名前を選んだのはおそらく失敗であろう。 .B IPC_NEW -¤ÎÊý¤¬¤è¤êÌÀ³Î¤Ë¤½¤Îµ¡Ç½¤òɽ¤·¤Æ¤¤¤ë¤À¤í¤¦¡£ -.SH ´ØÏ¢¹àÌÜ +の方がより明確にその機能を表しているだろう。 +.SH 関連項目 .BR msgctl (2), .BR msgrcv (2), .BR msgsnd (2), diff --git a/release/man2/msgop.2 b/release/man2/msgop.2 index 7a21f984..dfb45222 100644 --- a/release/man2/msgop.2 +++ b/release/man2/msgop.2 @@ -44,26 +44,26 @@ .\" Updated 2006-03-05, Akihiro MOTOKI, LDP v2.25 .\" Updated 2008-08-09, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: message ¥á¥Ã¥»¡¼¥¸ -.\"WORD: operation Áàºî -.\"WORD: queue ¥­¥å¡¼ -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: catch Êá³Í(catch) -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: suspend Ää»ß(suspend) -.\"WORD: sleep Ää»ß(sleep) -.\"WORD: block Ää»ß(block) -.\"WORD: process-ID ¥×¥í¥»¥¹ID -.\"WORD: type ·¿ -.\"WORD: policy Êý¿Ë -.\"WORD: super-user ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ -.\"WORD: current time ¸½ºß»þ¹ï -.\"WORD: implement ¼ÂÁõ +.\"WORD: message メッセージ +.\"WORD: operation 操作 +.\"WORD: queue キュー +.\"WORD: process プロセス +.\"WORD: catch 捕獲(catch) +.\"WORD: signal シグナル +.\"WORD: suspend 停止(suspend) +.\"WORD: sleep 停止(sleep) +.\"WORD: block 停止(block) +.\"WORD: process-ID プロセスID +.\"WORD: type 型 +.\"WORD: policy 方針 +.\"WORD: super-user スーパー・ユーザー +.\"WORD: current time 現在時刻 +.\"WORD: implement 実装 .\" .TH MSGOP 2 2008-04-23 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -msgrcv, msgsnd \- ¥á¥Ã¥»¡¼¥¸Áàºî -.SH ½ñ¼° +.SH 名前 +msgrcv, msgsnd \- メッセージ操作 +.SH 書式 .nf .B #include .B #include @@ -76,20 +76,20 @@ msgrcv, msgsnd \- ", long " msgtyp , .BI " int " msgflg ); .fi -.SH ÀâÌÀ -¥·¥¹¥Æ¥à¥³¡¼¥ë +.SH 説明 +システムコール .BR msgsnd () -¤È +と .BR msgrcv () -¤Ï¤½¤ì¤¾¤ì¡¢¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Ø¤Î¥á¥Ã¥»¡¼¥¸¤ÎÁ÷¿®¤È¡¢ -¥á¥Ã¥»¡¼¥¸¤Î¼õ¿®¤Ë»ÈÍѤµ¤ì¤ë¡£¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ï¡¢ -¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¤¹¤ë¤¿¤á¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ËÂФ¹¤ë½ñ¤­¹þ¤ßµö²Ä¤ò¡¢ -¥á¥Ã¥»¡¼¥¸¤ò¼õ¿®¤¹¤ë¤¿¤á¤Ë¤ÏÆɤ߽Ф·µö²Ä¤ò»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +はそれぞれ、メッセージ・キューへのメッセージの送信と、 +メッセージの受信に使用される。呼び出し元プロセスは、 +メッセージを送信するためにはメッセージ・キューに対する書き込み許可を、 +メッセージを受信するためには読み出し許可を持っていなければならない。 .PP -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ï°Ê²¼¤Ë¼¨¤¹¹½Â¤ÂΤòÍÑ°Õ¤·¡¢¤³¤Î¹½Â¤ÂΤؤΠ-¥Ý¥¤¥ó¥¿¤ò +呼び出し元プロセスは以下に示す構造体を用意し、この構造体への +ポインタを .msgp -°ú¤­¿ô¤È¤·¤ÆÅϤ¹¡£ +引き数として渡す。 .in +4n .nf @@ -101,344 +101,344 @@ struct msgbuf { .in .PP .I mtext -¥Õ¥£¡¼¥ë¥É¤ÏÇÛÎó (¤Þ¤¿¤Ï¾¤Î¹½Â¤ÂÎ) ¤Ç¡¢¤½¤ÎÂ礭¤µ¤Ï -ÈóÉé¤ÎÀ°¿ô¤Ç¤¢¤ë +フィールドは配列 (または他の構造体) で、その大きさは +非負の整数である .I msgsz -¤Ç»ØÄꤵ¤ì¤ë¡£ -Ťµ 0 ¤Î¥á¥Ã¥»¡¼¥¸ (¤Ä¤Þ¤ê +で指定される。 +長さ 0 のメッセージ (つまり .I mtext -¥Õ¥£¡¼¥ë¥É¤¬¤Ê¤¤¥á¥Ã¥»¡¼¥¸) ¤âǧ¤á¤é¤ì¤Æ¤¤¤ë¡£ +フィールドがないメッセージ) も認められている。 .B mtype -¥Õ¥£¡¼¥ë¥É¤Ï¸·Ì©¤ËÀµ¤ÎÀ°¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ÎÃͤϡ¢¥á¥Ã¥»¡¼¥¸¤ò¼õ¿®¤¹¤ë¥×¥í¥»¥¹¤Ç¥á¥Ã¥»¡¼¥¸¤òÁªÂò¤¹¤ë¤¿¤á¤Ë -»ÈÍѤµ¤ì¤ë (²¼µ­¤Î +フィールドは厳密に正の整数でなければならない。 +この値は、メッセージを受信するプロセスでメッセージを選択するために +使用される (下記の .BR msgrcv () -¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È)¡£ +の説明を参照のこと)。 .SS msgsnd() .BR msgsnd () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +システムコールは .I msgp -°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤Î¥³¥Ô¡¼¤ò +引き数で指定されたメッセージのコピーを .I msqid -¤Ç»ØÄꤵ¤ì¤¿¼±Ê̻Ҥò»ý¤Ä¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ØÄɲ乤롣 +で指定された識別子を持つメッセージ・キューへ追加する。 .PP -¥­¥å¡¼¤Ë½½Ê¬¤Ê¶õ¤­ÍÆÎ̤¬¤¢¤ë¾ì¹ç¡¢ +キューに十分な空き容量がある場合、 .BR msgsnd () -¤Ïľ¤Á¤ËÀ®¸ù¤¹¤ë¡£ -(¥­¥å¡¼¤ÎÍÆÎ̤ϡ¢¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¥Ç¡¼¥¿¹½Â¤ÂΤΠ+は直ちに成功する。 +(キューの容量は、メッセージ・キューのデータ構造体の .I msg_qbytes -¥Õ¥£¡¼¥ë¥É¤ÇÄêµÁ¤µ¤ì¤ë¡£ -¥­¥å¡¼ºîÀ®»þ¤Ë¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï +フィールドで定義される。 +キュー作成時にこのフィールドは .B MSGMNB -¤Ë½é´ü²½¤µ¤ì¤ë¤¬¡¢¤³¤ÎÀ©¸Â¤Ï +に初期化されるが、この制限は .BR msgctl (2) -¤ò»È¤Ã¤ÆÊѹ¹¤Ç¤­¤ë¡£) -¥­¥å¡¼¤Ë½½Ê¬¤Ê¶õ¤­ÍÆÎ̤¬¤Ê¤¤¾ì¹ç¡¢ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï +を使って変更できる。) +キューに十分な空き容量がない場合、 +デフォルトでは .BR msgsnd () -¤Ï¶õ¤­ÍÆÎ̤¬¤Ç¤­¤ë¤Þ¤ÇÄä»ß (block) ¤¹¤ë¡£ +は空き容量ができるまで停止 (block) する。 .I msgflg -¤Ë +に .B IPC_NOWAIT -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢¥¨¥é¡¼ +が指定された場合は、エラー .B EAGAIN -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 -Ää»ß¤·¤Æ¤¤¤ë +停止している .BR msgsnd () -¤Ï°Ê²¼¤Î¾ì¹ç¤Ë¤â¼ºÇÔ¤¹¤ë¡£ +は以下の場合にも失敗する。 .IP * 2 -¥­¥å¡¼¤¬ºï½ü¤µ¤ì¤¿¡£ -¤³¤Î¾ì¹ç¡¢ +キューが削除された。 +この場合、 .I errno -¤Ï +は .B EIDRM -¤ËÀßÄꤵ¤ì¤ë¡£ +に設定される。 .IP * -¥·¥°¥Ê¥ë¤¬Ê᪤µ¤ì¤¿¡£ -¤³¤Î¾ì¹ç¡¢ +シグナルが捕捉された。 +この場合、 .I errno -¤Ï +は .BR EINTR -¤ËÀßÄꤵ¤ì¤ë¡£ +に設定される。 .BR signal (7) -»²¾È¡£ +参照。 .RB ( msgsnd () -¤Ï¡¢¤¿¤È¤¨¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ÎÀßÄê»þ¤Ë +は、たとえシグナルハンドラの設定時に .B SA_RESTART -¤ò»ØÄꤷ¤Æ¤¤¤¿¤È¤·¤Æ¤â¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿¸å¤Ç -¼«Æ°Åª¤ËºÆ¥¹¥¿¡¼¥È¤¹¤ë¤³¤È¤Ï·è¤·¤Æ¤Ê¤¤¡£) +を指定していたとしても、シグナルハンドラによって割り込まれた後で +自動的に再スタートすることは決してない。) .PP -Àµ¾ï¤Ë½ªÎ»¤·¤¿¾ì¹ç¡¢¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¥Ç¡¼¥¿¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤Ë -¹¹¿·¤µ¤ì¤ë: +正常に終了した場合、メッセージ・キューのデータ構造体は以下のように +更新される: .IP .I msg_lspid -¤Ë¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤¬ÀßÄꤵ¤ì¤ë¡£ +には呼び出し元プロセスのプロセス ID が設定される。 .IP .I msg_qnum -¤Ï 1 Áý²Ã¤¹¤ë¡£ +は 1 増加する。 .IP .I msg_stime -¤Ë¤Ï¸½ºß»þ¹ï¤¬ÀßÄꤵ¤ì¤ë¡£ +には現在時刻が設定される。 .SS msgrcv() .BR msgrcv () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +システムコールは .I msqid -¤Ç»ØÄꤵ¤ì¤¿¥­¥å¡¼¤«¤é¥á¥Ã¥»¡¼¥¸¤òºï½ü¤·¡¢ +で指定されたキューからメッセージを削除し、 .I msgp -¤Ç»ØÄꤵ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Ë¤½¤Î¥á¥Ã¥»¡¼¥¸¤ò³ÊǼ¤¹¤ë¡£ +で指定されたバッファにそのメッセージを格納する。 .PP .I msgsz -°ú¤­¿ô¤Ë¤Ï +引き数には .I msgp -°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿¹½Â¤ÂΤΠ+引き数で指定された構造体の .I mtext -¥á¥ó¥Ð¡¼¤ÎºÇÂç¤Î¥Ð¥¤¥È¿ô¤ò»ØÄꤹ¤ë¡£ -¥á¥Ã¥»¡¼¥¸¤Î¥Æ¥­¥¹¥È¤ÎŤµ¤¬ +メンバーの最大のバイト数を指定する。 +メッセージのテキストの長さが .I msgsz -¤è¤êÂ礭¤¤¾ì¹ç¤ÎÆ°ºî¤Ï¡¢ +より大きい場合の動作は、 .I msgflg -¤Ë +に .B MSG_NOERROR -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Ç·è¤Þ¤ë¡£ +が指定されているかどうかで決まる。 .B MSG_NOERROR -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢¥á¥Ã¥»¡¼¥¸¤Î¥Æ¥­¥¹¥È¤ÏÀÚ¤êµÍ¤á¤é¤ì¤ë -(ÀÚ¤ê¼Î¤Æ¤é¤ì¤¿Éôʬ¤Ï¼º¤ï¤ì¤ë)¡£ +が指定されていれば、メッセージのテキストは切り詰められる +(切り捨てられた部分は失われる)。 .B MSG_NOERROR -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¥á¥Ã¥»¡¼¥¸¤Ï¥­¥å¡¼¤«¤éºï½ü¤µ¤ì¤º¡¢ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï \-1 ¤òÊÖ¤·¤Æ¼ºÇÔ¤·¡¢ +が指定されていなければ、メッセージはキューから削除されず、 +システムコールは \-1 を返して失敗し、 .I errno -¤Ë +に .B E2BIG -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .PP .I msgtyp -°ú¤­¿ô¤Ë¤ÏÍ׵᤹¤ë¥á¥Ã¥»¡¼¥¸¤Î·¿¤ò»ØÄꤹ¤ë¡£ -·¿¤Ï°Ê²¼¤Î¤è¤¦¤Ë»ØÄꤹ¤ë: +引き数には要求するメッセージの型を指定する。 +型は以下のように指定する: .IP * 2 .I msgtyp -¤¬ 0 ¤Ê¤é¤Ð¡¢¥­¥å¡¼¤ÎºÇ½é¤Ë¤¢¤ë¥á¥Ã¥»¡¼¥¸¤¬Æɤ߹þ¤Þ¤ì¤ë¡£ +が 0 ならば、キューの最初にあるメッセージが読み込まれる。 .IP * .I msgtyp -¤¬ 0 ¤è¤êÂ礭¤¤¾ì¹ç¡¢ +が 0 より大きい場合、 .I msgflg -¤Ë +に .B MSG_EXCEPT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ +が指定されていなければ、 .I msgtyp -·¿¤Î¥­¥å¡¼¤ÎºÇ½é¤Î¥á¥Ã¥»¡¼¥¸¤¬Æɤ߹þ¤Þ¤ì¤ë¡£ +型のキューの最初のメッセージが読み込まれる。 .B MSG_EXCEPT -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢ +が指定された場合は、 .I msgtyp -·¿°Ê³°¤Î¥­¥å¡¼¤ÎºÇ½é¤Î¥á¥Ã¥»¡¼¥¸¤¬Æɤ߹þ¤Þ¤ì¤ë¡£ +型以外のキューの最初のメッセージが読み込まれる。 .IP * .I msgtyp -¤¬ 0 ¤è¤ê¾®¤µ¤±¤ì¤Ð¡¢ +が 0 より小さければ、 .I msgtyp -¤ÎÀäÂÐÃͰʲ¼¤ÇºÇ¤â¾®¤µ¤¤·¿¤ò»ý¤Ä¥­¥å¡¼¤ÎºÇ½é¤Î¥á¥Ã¥»¡¼¥¸¤¬Æɤ߹þ¤Þ¤ì¤ë¡£ +の絶対値以下で最も小さい型を持つキューの最初のメッセージが読み込まれる。 .PP .I msgflg -°ú¤­¿ô¤Ë¤Ï¡¢°Ê²¼¤Î¥Õ¥é¥°¤òǤ°Õ¤Î¿ô¤À¤± (0¸Ä¤â²Ä)¡¢¤³¤ì¤é¤Î OR ¤Ç»ØÄꤹ¤ë: +引き数には、以下のフラグを任意の数だけ (0個も可)、これらの OR で指定する: .TP .B IPC_NOWAIT -¥­¥å¡¼¤ËÍ׵ᤵ¤ì¤¿·¿¤Î¥á¥Ã¥»¡¼¥¸¤¬¤Ê¤¤¾ì¹ç¤Ë¤Ïľ¤Á¤ËÊ֤롣 -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¼ºÇÔ¤·¡¢ +キューに要求された型のメッセージがない場合には直ちに返る。 +システムコールは失敗し、 .I errno -¤Ë¤Ï +には .B ENOMSG -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .TP .B MSG_EXCEPT -0 ¤è¤êÂ礭¤Ê +0 より大きな .I msgtyp -¤È°ì½ï¤Ë»ÈÍѤ·¤Æ¡¢ +と一緒に使用して、 .I msgtyp -°Ê³°¤Î¥­¥å¡¼¤ÎºÇ½é¤Î¥á¥Ã¥»¡¼¥¸¤òÆɤ߹þ¤à¡£ +以外のキューの最初のメッセージを読み込む。 .TP .B MSG_NOERROR .I msgsz -¥Ð¥¤¥È¤è¤ê¤âŤ«¤Ã¤¿¾ì¹ç¤Ï¥á¥Ã¥»¡¼¥¸¤Î¥Æ¥­¥¹¥È¤òÀÚ¤êµÍ¤á¤ë¡£ +バイトよりも長かった場合はメッセージのテキストを切り詰める。 .PP -Í׵ᤵ¤ì¤¿·¿¤Î¥á¥Ã¥»¡¼¥¸¤¬Â¸ºß¤»¤º¡¢ +要求された型のメッセージが存在せず、 .I msgflg -¤Ë +に .B IPC_NOWAIT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ï -°Ê²¼¤Î¤¤¤º¤ì¤«¤Î¾õ¶·¤Ë¤Ê¤ë¤Þ¤ÇÄä»ß (block) ¤µ¤ì¤ë: +が指定されていなかった場合、呼び出し元プロセスは +以下のいずれかの状況になるまで停止 (block) される: .IP * 2 -Í׵ᤷ¤Æ¤¤¤ë·¿¤Î¥á¥Ã¥»¡¼¥¸¤¬¥­¥å¡¼¤ØÆþ¤ì¤é¤ì¤¿¡£ +要求している型のメッセージがキューへ入れられた。 .IP * -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬¥·¥¹¥Æ¥à¤«¤éºï½ü¤µ¤ì¤¿¡£ -¤³¤Î¾ì¹ç¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¼ºÇÔ¤·¡¢ +メッセージ・キューがシステムから削除された。 +この場合、システムコールは失敗し、 .I errno -¤Ë +に .B EIDRM -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .IP * -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤òÊá³Í¤·¤¿¡£ -¤³¤Î¾ì¹ç¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¼ºÇÔ¤·¡¢ +呼び出し元プロセスがシグナルを捕獲した。 +この場合、システムコールは失敗し、 .I errno -¤Ë +に .B EINTR -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .RB ( msgrcv () -¤Ï¡¢¤¿¤È¤¨¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ÎÀßÄê»þ¤Ë +は、たとえシグナルハンドラの設定時に .B SA_RESTART -¤ò»ØÄꤷ¤Æ¤¤¤¿¤È¤·¤Æ¤â¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿¸å¤Ç -¼«Æ°Åª¤ËºÆ¥¹¥¿¡¼¥È¤¹¤ë¤³¤È¤Ï·è¤·¤Æ¤Ê¤¤¡£) +を指定していたとしても、シグナルハンドラによって割り込まれた後で +自動的に再スタートすることは決してない。) .PP -¼Â¹Ô¤ËÀ®¸ù¤·¤¿¾ì¹ç¡¢¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¥Ç¡¼¥¿¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤Ë -¹¹¿·¤µ¤ì¤ë: +実行に成功した場合、メッセージ・キューのデータ構造体は以下のように +更新される: .IP .I msg_lrpid -¤Ë¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤¬ÀßÄꤵ¤ì¤ë¡£ +には呼び出し元プロセスのプロセス ID が設定される。 .IP .I msg_qnum -¤Ï 1 ¸º»»¤µ¤ì¤ë¡£ +は 1 減算される。 .IP .I msg_rtime -¤Ë¤Ï¸½ºß¤Î»þ¹ï¤¬ÀßÄꤵ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¡¢¤É¤Á¤é¤Î´Ø¿ô¤â \-1 ¤òÊÖ¤·¡¢¥¨¥é¡¼¤ò +には現在の時刻が設定される。 +.SH 返り値 +失敗した場合は、どちらの関数も \-1 を返し、エラーを .I errno -¤Ëɽ¼¨¤¹¤ë¡£À®¸ù¤·¤¿¾ì¹ç¡¢ +に表示する。成功した場合、 .BR msgsnd () -¤Ï 0 ¤òÊÖ¤·¡¢ +は 0 を返し、 .BR msgrcv () -¤Ï +は .I mtext -ÇÛÎó¤Ë¼ÂºÝ¤Ë¥³¥Ô¡¼¤·¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +配列に実際にコピーしたバイト数を返す。 +.SH エラー .BR msgsnd () -¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +が失敗した場合、 .B errno -¤Ë°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«¤¬ÀßÄꤵ¤ì¤ë: +に以下の値のいずれかが設定される: .TP .B EACCES -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ËÂФ¹¤ë½ñ¤­¹þ¤ßµö²Ä¤¬¤Ê¤¯¡¢ +呼び出し元プロセスにはメッセージ・キューに対する書き込み許可がなく、 .B CAP_IPC_OWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤â¤Ê¤¤¡£ +ケーパビリティもない。 .TP .B EAGAIN .I msg_qbytes -¤¬¥­¥å¡¼¤ÎÀ©¸Â¤òĶ¤¨¤Æ¤¤¤¿¤¿¤á¡¢¥á¥Ã¥»¡¼¥¸¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤º¡¢¤«¤Ä +がキューの制限を超えていたため、メッセージを送ることができず、かつ .I msgflg -¤Ë +に .B IPC_NOWAIT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¡£ +が指定されていた。 .TP .B EFAULT .I msgp -¤¬»Ø¤·¤Æ¤¤¤ë¥¢¥É¥ì¥¹¤¬¥¢¥¯¥»¥¹²Äǽ¤Ç¤Ê¤¤¡£ +が指しているアドレスがアクセス可能でない。 .TP .B EIDRM -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬ºï½ü¤µ¤ì¤¿¡£ +メッセージ・キューが削除された。 .TP .B EINTR -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬Í׵ᤷ¤¿¾ò·ï¤òËþ¤¿¤¹¤Þ¤ÇÄä»ß¤·¤Æ¤¤¤ë»þ¤Ë¡¢ -¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤òÊá³Í¤·¤¿¡£ +メッセージ・キューが要求した条件を満たすまで停止している時に、 +プロセスがシグナルを捕獲した。 .TP .B EINVAL .I msqid -¤¬ÉÔŬÀÚ¤ÊÃͤǤ¢¤ë¤«¡¢ +が不適切な値であるか、 .I mtype -¤¬Àµ¤ÎÃͤǤʤ¤¤«¡¢ +が正の値でないか、 .I msgsz -¤¬ÉÔŬÀÚ¤ÊÃÍ (0 °Ê²¼¤«¡¢¥·¥¹¥Æ¥à¤Ç·è¤Þ¤ëÃÍ +が不適切な値 (0 以下か、システムで決まる値 .B MSGMAX -¤è¤ê¤âÂ礭¤¤ÃÍ) ¤Ç¤¢¤ë¡£ +よりも大きい値) である。 .TP .B ENOMEM .I msgp -¤¬»Ø¤¹¥á¥Ã¥»¡¼¥¸¤Î¥³¥Ô¡¼¤òºîÀ®¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¥·¥¹¥Æ¥à¤Ë¸ºß¤·¤Ê¤¤¡£ +が指すメッセージのコピーを作成するのに十分なメモリがシステムに存在しない。 .PP .BR msgrcv () -¤¬¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï +が失敗した場合には .I errno -¤Ë°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«¤¬ÀßÄꤵ¤ì¤ë: +に以下の値のいずれかが設定される: .TP .B E2BIG -¥á¥Ã¥»¡¼¥¸¤Î¥Æ¥­¥¹¥È¤ÎŤµ¤¬ +メッセージのテキストの長さが .I msgsz -¤è¤ê¤âÂ礭¤¯¡¢ +よりも大きく、 .I msgflg -¤Ë +に .B MSG_NOERROR -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +が設定されていなかった。 .TP .B EACCES -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ËÂФ¹¤ëÆɤ߹þ¤ßµö²Ä¤¬¤Ê¤¯¡¢ +呼び出し元プロセスにはメッセージ・キューに対する読み込み許可がなく、 .B CAP_IPC_OWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤â¤Ê¤¤¡£ +ケーパビリティもない。 .TP .B EAGAIN -¥­¥å¡¼¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¤¬¤Ê¤¯¡¢ +キューにはメッセージがなく、 .I msgflg -¤Ë +に .B IPC_NOWAIT -¤¬»ØÄꤵ¤ì¤¿¡£ +が指定された。 .TP .B EFAULT .I msgp -¤¬»Ø¤·¤Æ¤¤¤ë¥¢¥É¥ì¥¹¤¬¥¢¥¯¥»¥¹²Äǽ¤Ç¤Ê¤¤¡£ +が指しているアドレスがアクセス可能でない。 .TP .B EIDRM -¥á¥Ã¥»¡¼¥¸¤ò¼õ¿®¤¹¤ë¤¿¤á¤Ë¥×¥í¥»¥¹¤¬Ää»ß¤·¤Æ¤¤¤ë´Ö¤Ë¡¢ -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬ºï½ü¤µ¤ì¤¿¡£ +メッセージを受信するためにプロセスが停止している間に、 +メッセージ・キューが削除された。 .TP .B EINTR -¥á¥Ã¥»¡¼¥¸¤ò¼õ¤±¤ë¤¿¤á¤Ë¥×¥í¥»¥¹¤¬Ää»ß¤·¤Æ¤¤¤ë´Ö¤Ë¡¢ -¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤òÊá³Í¤·¤¿¡£ +メッセージを受けるためにプロセスが停止している間に、 +プロセスがシグナルを捕獲した。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .I msgqid -¤¬ÉÔÀµ¤«¡¢ +が不正か、 .I msgsz -¤¬ 0 ¤è¤ê¾®¤µ¤¤¡£ +が 0 より小さい。 .TP .B ENOMSG .I msgflg -¤Ë +に .B IPC_NOWAIT -¤¬ÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢ -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ËÍ׵ᤵ¤ì¤¿·¿¤Î¥á¥Ã¥»¡¼¥¸¤¬Â¸ºß¤·¤Ê¤«¤Ã¤¿¡£ -.SH ½àµò +が設定されており、 +メッセージ・キューに要求された型のメッセージが存在しなかった。 +.SH 準拠 SVr4, POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .I msgp -°ú¤­¿ô¤Ï¡¢ libc4, libc5, glibc 2.0, glibc 2.1 ¤Ç¤Ï -\fIstruct msgbuf *\fP ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤ë¡£glibc 2.2 °Ê¹ß¤Ç¤Ï¡¢ -SUSv2 ¤È SUSv3 ¤ÎÍ×µáÄ̤ꡢ\fIvoid *\fP ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤ë¡£ +引き数は、 libc4, libc5, glibc 2.0, glibc 2.1 では +\fIstruct msgbuf *\fP と宣言されている。glibc 2.2 以降では、 +SUSv2 と SUSv3 の要求通り、\fIvoid *\fP と宣言されている。 -°Ê²¼¤Ï +以下は .B msgsnd -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë±Æ¶Á¤¹¤ë¥·¥¹¥Æ¥àÀ©¸Â¤Ç¤¢¤ë: +システムコールに影響するシステム制限である: .TP .B MSGMAX -¥á¥Ã¥»¡¼¥¸¤Î¥Æ¥­¥¹¥È¤ÎºÇÂ祵¥¤¥º: 8192 ¥Ð¥¤¥È -(Linux ¤Ç¤Ï¡¢¤³¤ÎÀ©¸ÂÃÍ¤Ï +メッセージのテキストの最大サイズ: 8192 バイト +(Linux では、この制限値は .I /proc/sys/kernel/msgmax -·Ðͳ¤ÇÆɤ߽Ф·¤¿¤êÊѹ¹¤·¤¿¤ê¤Ç¤­¤ë)¡£ +経由で読み出したり変更したりできる)。 .TP .B MSGMNB -¥Ð¥¤¥Èñ°Ì¤Ç¤Î¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¥Ç¥Õ¥©¥ë¥È¤ÎºÇÂ祵¥¤¥º : 16384 ¥Ð¥¤¥È¡£ -(Linux ¤Ç¤Ï¡¢¤³¤ÎÀ©¸ÂÃÍ¤Ï +バイト単位でのメッセージ・キューのデフォルトの最大サイズ : 16384 バイト。 +(Linux では、この制限値は .I /proc/sys/kernel/msgmnb -·Ðͳ¤ÇÆɤ߽Ф·¤¿¤êÊѹ¹¤·¤¿¤ê¤Ç¤­¤ë)¡£ -¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¤Ï +経由で読み出したり変更したりできる)。 +スーパーユーザーは .BR msgctl (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¥µ¥¤¥º¤ò +システムコールでメッセージ・キューのサイズを .B MSGMNB -¤è¤ê¤âÂ礭¤¤ÃͤËÁý¤ä¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +よりも大きい値に増やすことができる。 .PP -¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¡¢¥·¥¹¥Æ¥àÁ´ÂΤΥá¥Ã¥»¡¼¥¸¡¦¥Ø¥Ã¥À¡¼¤ÎºÇÂç¿ô +現在の実装では、システム全体のメッセージ・ヘッダーの最大数 .RB ( MSGTQL ) -¤È¡¢¥·¥¹¥Æ¥àÁ´ÂΤΥá¥Ã¥»¡¼¥¸¡¦¥×¡¼¥ë¤ÎºÇÂç¥Ð¥¤¥È¿ô +と、システム全体のメッセージ・プールの最大バイト数 .RB ( MSGPOOL ) -¤Ë´Ø¤·¤Æ¼ÂÁõ°Í¸¤ÎÀ©¸Â¤Ï¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +に関して実装依存の制限はない。 +.SH 関連項目 .BR msgctl (2), .BR msgget (2), .BR capabilities (7), diff --git a/release/man2/msync.2 b/release/man2/msync.2 index babccd4e..4b3843f2 100644 --- a/release/man2/msync.2 +++ b/release/man2/msync.2 @@ -30,100 +30,100 @@ .\" by Suzuki Takashi. .\" Updated 2007-01-01 by Kentaro Shirakata .\" -.\"WORD: in-core ¥á¥â¥ê¾å¤Î +.\"WORD: in-core メモリ上の .\" .TH MSYNC 2 2008-04-22 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -msync \- ¥Õ¥¡¥¤¥ë¤ò¥Þ¥Ã¥×¤·¤¿¥á¥â¥ê¤ÈƱ´ü¤µ¤»¤ë -.SH ½ñ¼° +.SH 名前 +msync \- ファイルをマップしたメモリと同期させる +.SH 書式 .B #include .sp .BI "int msync(void *" addr ", size_t " length ", int " flags ); -.SH ÀâÌÀ +.SH 説明 .BR msync () -¤Ï +は .BR mmap (2) -¤ò»È¤Ã¤Æ¥á¥â¥ê¤Ë¥Þ¥Ã¥×¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¡¢ -¥á¥â¥ê¾å¤Î¥³¥Ô¡¼¤Ë¤Ê¤µ¤ì¤¿Êѹ¹¤ò¥Ç¥£¥¹¥¯¤ËÈ¿±Ç¤µ¤»¤ë¡£ -¤³¤Î´Ø¿ô¤ò»ÈÍѤ·¤Ê¤¤¤È¡¢ +を使ってメモリにマップされたファイルの、 +メモリ上のコピーになされた変更をディスクに反映させる。 +この関数を使用しないと、 .BR munmap (2) -¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤Þ¤ÇÊѹ¹¤¬½ñ¤­Ìᤵ¤ì¤ëÊݾڤϤʤ¤¡£ -¤è¤êÀµ³Î¤Ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤Î¤¦¤Á +が呼び出されるまで変更が書き戻される保証はない。 +より正確には、ファイルのうち .I addr -¤«¤é»Ï¤Þ¤êŤµ +から始まり長さ .I length -¤Î¥á¥â¥êÎΰè¤ËÂбþ¤¹¤ëÉôʬ¤¬¹¹¿·¤µ¤ì¤ë¡£ +のメモリ領域に対応する部分が更新される。 .I flags -°ú¿ô¤Ë¤Ï¥Ó¥Ã¥È +引数にはビット .BR MS_ASYNC , .BR MS_SYNC , .B MS_INVALIDATE -¤òÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¤¬¡¢ +を設定することができるが、 .B MS_ASYNC -¤È +と .B MS_SYNC -¤òƱ»þ¤Ë»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +を同時に指定することはできない。 .B MS_ASYNC -¤Ï¹¹¿·¤òͽÄê¤ËÁȤ߹þ¤à¤³¤È¤òɽ¤·¡¢¸Æ¤Ó½Ð¤·¤Ïľ¤Á¤ËÊ֤롣 +は更新を予定に組み込むことを表し、呼び出しは直ちに返る。 .B MS_SYNC -¤Ï¹¹¿·¤òÍ׵ᤷ¡¢¹¹¿·¤¬´°Î»¤¹¤ë¤Þ¤ÇÂԤġ£ +は更新を要求し、更新が完了するまで待つ。 .B MS_INVALIDATE -¤Ï(¤¿¤Ã¤¿º£½ñ¤­¹þ¤ó¤À¿·¤·¤¤Ãͤǥޥåԥ󥰤ò¹¹¿·¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë) -Ʊ¤¸¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¾¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤òÍ׵᤹¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ 0 ¤¬Ê֤롣¥¨¥é¡¼¤Î¾ì¹ç¡¢ \-1 ¤¬Ê֤ꡢ +は(たった今書き込んだ新しい値でマッピングを更新することができるように) +同じファイルに対する他のマッピングを無効にすることを要求する。 +.SH 返り値 +成功した場合、 0 が返る。エラーの場合、 \-1 が返り、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EBUSY I flags -¤Ë +に .B MS_INVALIDATE -¤¬»ØÄꤵ¤ì¤¿¤¬¡¢»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹ÈϰϤ˥í¥Ã¥¯¤¬Â¸ºß¤¹¤ë¡£ +が指定されたが、指定されたアドレス範囲にロックが存在する。 .TP .B EINVAL .I addr -¤¬ PAGESIZE ¤ÎÇÜ¿ô¤Ç¤Ê¤¤¡£¤Þ¤¿¤Ï¡¢ +が PAGESIZE の倍数でない。または、 .I flags -¤Ë -.BR MS_ASYNC ¡¢ MS_INVALIDATE ¡¢ MS_SYNC -°Ê³°¤Î¥Ó¥Ã¥È¤¬ÀßÄꤵ¤ì¤¿¡£ -¤Þ¤¿¤Ï¡¢ +に +.BR MS_ASYNC 、 MS_INVALIDATE 、 MS_SYNC +以外のビットが設定された。 +または、 .I flags -¤Ë +に .B MS_SYNC -¤È +と .B MS_ASYNC -¤ÎξÊý¤¬ÀßÄꤵ¤ì¤¿¡£ +の両方が設定された。 .TP .B ENOMEM -»ØÄꤵ¤ì¤¿¥á¥â¥ê (¤Þ¤¿¤Ï¤½¤Î°ìÉô) ¤¬¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ½àµò +指定されたメモリ (またはその一部) がマップされていない。 +.SH 準拠 POSIX.1-2001. -¤³¤Î´Ø¿ô¤Ï Linux 1.3.21 ¤ÇƳÆþ¤µ¤ì¤¿¤¬¡¢ +この関数は Linux 1.3.21 で導入されたが、 .B ENOMEM -¤Ç¤Ï¤Ê¤¯ +ではなく .B EFAULT -¤¬»È¤ï¤ì¤Æ¤¤¤¿¡£ -¤³¤ì¤Ï Linux 2.4.19 ¤Ç POSIX ¤Ë¤ª¤±¤ëÃÍ +が使われていた。 +これは Linux 2.4.19 で POSIX における値 .B ENOMEM -¤ËÊѹ¹¤µ¤ì¤¿¡£ -.SH ²ÄÍÑÀ­ +に変更された。 +.SH 可用性 .BR msync () -¤¬»ÈÍѲÄǽ¤Ê POSIX ¥·¥¹¥Æ¥à¤Ç¤Ï +が使用可能な POSIX システムでは .B _POSIX_MAPPED_FILES -¤È +と .B _POSIX_SYNCHRONIZED_IO -¤ÎξÊý¤¬ \fI\fP ¤Ç 0 ¤è¤êÂ礭¤¤ÃͤËÄêµÁ¤µ¤ì¤ë¡£ +の両方が \fI\fP で 0 より大きい値に定義される。 .RB ( sysconf (3) -¤ò»²¾È¤¹¤ë¤³¤È¡£ ) -.\" POSIX.1-2001: ¤³¤ì¤é¤ÎÃÍ¤Ï -1 ¤Þ¤¿¤Ï 0 ¤Þ¤¿¤Ï 200112L ¤ÈÄêµÁ¤µ¤ì¤ë¡£ -.\" -1 ¤Ï»ÈÍÑÉÔ²Äǽ¡¢ 0 ¤Ï sysconf() ¤ËÌ䤤¹ç¤ï¤»¤ë -.\" glibc ¤Ç¤Ï 1 ¤ÈÄêµÁ¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を参照すること。 ) +.\" POSIX.1-2001: これらの値は -1 または 0 または 200112L と定義される。 +.\" -1 は使用不可能、 0 は sysconf() に問い合わせる +.\" glibc では 1 と定義している。 +.SH 関連項目 .BR mmap (2) .br B.O. Gallmeister, POSIX.4, O'Reilly, pp. 128-129 and 389-391. diff --git a/release/man2/nanosleep.2 b/release/man2/nanosleep.2 index 240fbb09..4fbca4d3 100644 --- a/release/man2/nanosleep.2 +++ b/release/man2/nanosleep.2 @@ -43,193 +43,193 @@ .\" Updated 2006-08-13, Akihiro MOTOKI, LDP v2.39 .\" Updated 2008-08-08, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: puase Ää»ß -.\"WORD: sleep Ää»ß -.\"WORD: signal ¥·¥°¥Ê¥ë +.\"WORD: puase 停止 +.\"WORD: sleep 停止 +.\"WORD: signal シグナル .\"WORD: NULL NULL -.\"WORD: block ¶Ø»ß(block) -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: real-time ¥ê¥¢¥ë¡¦¥¿¥¤¥à -.\"WORD: schedule ¥¹¥±¥¸¥å¡¼¥ë -.\"WORD: busy wait ¥Ó¥·¡¼¡¦¥¦¥§¥¤¥È +.\"WORD: block 禁止(block) +.\"WORD: kernel カーネル +.\"WORD: real-time リアル・タイム +.\"WORD: schedule スケジュール +.\"WORD: busy wait ビシー・ウェイト .\" .TH NANOSLEEP 2 2009-01-19 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -nanosleep \- ¹âÀºÅ٤ʥ¹¥ê¡¼¥× -.SH ½ñ¼° +.SH 名前 +nanosleep \- 高精度なスリープ +.SH 書式 .B #include .sp .BI "int nanosleep(const struct timespec *" req ", struct timespec *" rem ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR nanosleep (): _POSIX_C_SOURCE\ >=\ 199309L -.SH ÀâÌÀ +.SH 説明 .BR nanosleep () -¤Ï¡¢¾¯¤Ê¤¯¤È¤â +は、少なくとも .I *req -¤Ç»ØÄꤵ¤ì¤¿»þ´Ö¤Î´Ö¡¢¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤òÃٱ䤵¤»¤ë¡£ +で指定された時間の間、プログラムの実行を遅延させる。 .BR nanosleep () -¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î¼Â¹Ô¤ò¡¢ -¾¯¤Ê¤¯¤È¤â +は、呼び出したスレッドの実行を、 +少なくとも .I *req -¤Ç»ØÄꤵ¤ì¤¿»þ´Ö¤Î´Ö¡¢¤â¤·¤¯¤Ï¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Ç¥Ï¥ó¥É¥é¤Îµ¯Æ°¤Î -¤­¤Ã¤«¤±¤È¤Ê¤ë¥·¥°¥Ê¥ë¡¢¤Þ¤¿¤Ï¥×¥í¥»¥¹¤ò½ªÎ»¤µ¤»¤ë¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤¬ -¹Ô¤ï¤ì¤ë¤Þ¤Ç°ì»þÄä»ß¤¹¤ë¡£ +で指定された時間の間、もしくは呼び出したスレッドでハンドラの起動の +きっかけとなるシグナル、またはプロセスを終了させるシグナルの配送が +行われるまで一時停止する。 -¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¾ì¹ç¡¢ +呼び出しがシグナルハンドラにより割り込まれた場合、 .BR nanosleep -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤Ë +に .B EINTR -¤òÀßÄꤷ¡¢ +を設定し、 .I rem -¤¬ NULL ¤Ç¤Ê¤±¤ì¤Ð -»Ä¤ê¤Î»þ´Ö¤ò +が NULL でなければ +残りの時間を .I rem -¤¬»Ø¤¹¹½Â¤ÂΤ˳ÊǼ¤¹¤ë¡£ +が指す構造体に格納する。 .I *rem -¤ÎÃͤò»È¤¦¤È¡¢ +の値を使うと、 .BR nanosleep () -¤ò¤â¤¦°ìÅٸƤӽФ·¤Æ¡¢»ØÄꤷ¤¿»þ´Ö¤ÎÄä»ß¤ò -´°Î»¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë (⤷¡¢¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¤Î¤³¤È)¡£ +をもう一度呼び出して、指定した時間の停止を +完了させることができる (但し、「注意」の節を参照のこと)。 -¥Ê¥ÎÉùï¤ß¤Î»þ´Ö´Ö³Ö¤ò»ØÄꤹ¤ë¤Î¤Ë +ナノ秒刻みの時間間隔を指定するのに .I timespec -¹½Â¤ÂΤ¬»ÈÍѤµ¤ì¤ë¡£¤³¤Î¹½Â¤ÂΤϼ¡¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +構造体が使用される。この構造体は次のように定義されている。 .sp .in +4n .nf - time_t tv_sec; /* Éà */ - long tv_nsec; /* ¥Ê¥ÎÉà */ + time_t tv_sec; /* 秒 */ + long tv_nsec; /* ナノ秒 */ }; .fi .in .PP -¥Ê¥ÎÉäΥե£¡¼¥ë¥É¤ÎÃÍ¤Ï 0 ¤«¤é 999999999 ¤ÎÈϰϤˤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ナノ秒のフィールドの値は 0 から 999999999 の範囲になければならない。 .BR sleep (3) -¤ä +や .BR usleep (3) -¤ËÈæ¤Ù¤ë¤È +に比べると .BR nanosleep () -¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤ÊÍøÅÀ¤¬¤¢¤ë: -Ää»ß´ü´Ö¤Î»ØÄê¤Ë´Ø¤·¤Æ¹â¤¤»þ´Öʬ²òǽ¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¡£ -¥·¥°¥Ê¥ë¤È¸ß¤¤¤Ë±Æ¶Á¤òµÚ¤Ü¤¹¤³¤È¤¬¤Ê¤¤¤È -POSIX.1 ¤ÇÌÀ¼¨Åª¤Ëµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿ºÝ¤Ë¡¢Ää»ß¤òºÆ³«¤¹¤ë¤Î¤¬ -¤è¤ê´Êñ¤Ë¤Ç¤­¤ë¡£ -.SH ÊÖ¤êÃÍ -Í׵ᤵ¤ì¤¿´ü´Ö¤ÎÄä»ß¤ËÀ®¸ù¤·¤¿¾ì¹ç¡¢ +には以下のような利点がある: +停止期間の指定に関して高い時間分解能が提供されている。 +シグナルと互いに影響を及ぼすことがないと +POSIX.1 で明示的に規定されている。 +シグナルハンドラによって割り込まれた際に、停止を再開するのが +より簡単にできる。 +.SH 返り値 +要求された期間の停止に成功した場合、 .BR nanosleep () -¤Ï 0 ¤òÊÖ¤¹¡£¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¤ê¡¢ -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。呼び出しがシグナルハンドラにより割り込まれたり、 +エラーが発生した場合は、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼ÆâÍƤò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +にエラー内容を示す値を設定する。 +.SH エラー .TP .B EFAULT -¥æ¡¼¥¶¶õ´Ö¤«¤é¤Î¾ðÊó¤Î¥³¥Ô¡¼¤ÇÌäÂ꤬¤¢¤Ã¤¿¡£ +ユーザ空間からの情報のコピーで問題があった。 .TP .B EINTR -¤½¤Î¥¹¥ì¥Ã¥É¤ËÇÛÁ÷¤µ¤ì¤¿¥·¥°¥Ê¥ë¤Ë¤è¤êÄä»ß¤¬ÃæÃǤµ¤ì¤¿¡£ -¥¹¥ì¥Ã¥É¤¬´Êñ¤Ë +そのスレッドに配送されたシグナルにより停止が中断された。 +スレッドが簡単に .BR nanosleep () -¤òºÆ¤Ó¸Æ¤Ó½Ð¤·¤ÆÄä»ß¤ò³¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¡¢ -»Ä¤ê¤ÎÄä»ß»þ´Ö¤¬ \fI*rem\fP ¤Ë³ÊǼ¤µ¤ì¤ë¡£ +を再び呼び出して停止を続けることができるように、 +残りの停止時間が \fI*rem\fP に格納される。 .TP .B EINVAL .I tv_nsec -¥Õ¥£¡¼¥ë¥É¤ÎÃͤ¬ 0 ¤«¤é 999999999 ¤Þ¤Ç¤ÎÈϰϤˤʤ«¤Ã¤¿¤«¡¢ +フィールドの値が 0 から 999999999 までの範囲になかったか、 .I tv_sec -¤¬Éé¤Ç¤¢¤Ã¤¿¡£ -.SH ½àµò +が負であった。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .I req -¤Ç»ØÄꤵ¤ì¤¿´ü´Ö¤¬¡¢ÆâÉô¤Ç»ÈÍѤµ¤ì¤ë¥¯¥í¥Ã¥¯¤ÎγÅÙ¤ÎÇÜ¿ô¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤ -¾ì¹ç¡¢´ü´Ö¤Ï°ìÈֶᤤÇÜ¿ô¤ËÀÚ¤ê¾å¤²¤é¤ì¤ë¡£ -¤Þ¤¿¡¢Ää»ß¤¬´°Î»¤·¤¿¸å¡¢CPU ¤¬¸Æ¤Ó½Ð¤·¸µ¤Î¥¹¥ì¥Ã¥É¤òºÆ¤Ó¼Â¹Ô¤Ç¤­¤ë¤è¤¦¤Ë -¤Ê¤ë¤Þ¤Ç¤Ë¤ÏÃٱ䤬Æþ¤ë¡£ +で指定された期間が、内部で使用されるクロックの粒度の倍数になっていない +場合、期間は一番近い倍数に切り上げられる。 +また、停止が完了した後、CPU が呼び出し元のスレッドを再び実行できるように +なるまでには遅延が入る。 -¥·¥°¥Ê¥ë¤Ë¤è¤ë³ä¤ê¹þ¤ß¸å¤Ë·«¤êÊÖ¤·ºÆ³«¤µ¤ì¤¿¾ì¹ç¡¢ +シグナルによる割り込み後に繰り返し再開された場合、 .BR nanosleep () -¤ÎÄä»ß¤¬ÁêÂÐŪ¤Ê´ü´Ö¤Ç¤¢¤ë¤³¤È¤ÏÌäÂê¤È¤Ê¤ë¤³¤È¤¬¤¢¤ë¡£ -¤³¤ì¤Ï¡¢¸Æ¤Ó½Ð¤·¤Î³ä¤ê¹þ¤ß¤«¤éºÆ³«¤Þ¤Ç¤Î´Ö¤Î»þ´Ö¤¬¸¶°ø¤Ç -Ää»ß¤¬ºÇ½ªÅª¤Ë´°Î»¤·¤¿ºÝ¤Ë»þ´Ö¤Ë¤º¤ì¤¬È¯À¸¤¹¤ë¤«¤é¤Ç¤¢¤ë¡£ -¤³¤ÎÌäÂê¤Ï¡¢ÀäÂлþ¹ï¤¬»ØÄê¤Ç¤­¤ë +の停止が相対的な期間であることは問題となることがある。 +これは、呼び出しの割り込みから再開までの間の時間が原因で +停止が最終的に完了した際に時間にずれが発生するからである。 +この問題は、絶対時刻が指定できる .BR clock_nanosleep (2) -¤ò»È¤¦¤³¤È¤Ç²óÈò¤Ç¤­¤ë¡£ +を使うことで回避できる。 -POSIX.1 ¤Ï¡¢ +POSIX.1 は、 .BR nanosleep () -¤Ï +は .B CLOCK_REALTIME -¤ËÂФ·¤Æ»þ¹ï¤ò·×¬¤¹¤ë¤Ù¤­¤À¤Èµ¬Äꤷ¤Æ¤¤¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢Linux ¤Ï +に対して時刻を計測するべきだと規定している。 +しかしながら、Linux は .B CLOCK_MONOTONIC -¥¯¥í¥Ã¥¯¤òÍѤ¤¤Æ»þ¹ï¤ò·×¬¤·¤Æ¤¤¤ë¡£ +クロックを用いて時刻を計測している。 .\" See also http://thread.gmane.org/gmane.linux.kernel/696854/ .\" Subject: nanosleep() uses CLOCK_MONOTONIC, should be CLOCK_REALTIME? .\" Date: 2008-06-22 07:35:41 GMT -¤³¤Î¤³¤È¤Ï¤ª¤½¤é¤¯ÌäÂê¤Ë¤Ê¤é¤Ê¤¤¤À¤í¤¦¡£ -¤Ê¤¼¤Ê¤é¡¢POSIX.1 ¤Î +このことはおそらく問題にならないだろう。 +なぜなら、POSIX.1 の .BR clock_settime (2) -¤Î»ÅÍͤˤϡ¢ +の仕様には、 .B CLOCK_REALTIME -¤ÎÉÔϢ³¤ÊÊѲ½¤Ï +の不連続な変化は .BR nanosleep () -¤Ë±Æ¶Á¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡¢¤È½ñ¤«¤ì¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£ +に影響すべきではない、と書かれているからである。 .RS .PP .BR clock_settime (2) -·Ðͳ¤Ç +経由で .B CLOCK_REALTIME -¥¯¥í¥Ã¥¯¤ÎÃͤòÀßÄꤷ¤Æ¤â¡¢ +クロックの値を設定しても、 .BR nanosleep () -´Ø¿ô¤Ê¤É¤Î +関数などの .B CLOCK_REALTIME -¤Ë´ð¤Å¤¯¥µ¡¼¥Ó¥¹¤Ë¤è¤êÁêÂÐŪ¤Ê´ü´Ö¤À¤±¼Â¹Ô¤òÄä»ß¤¹¤ë¥¹¥ì¥Ã¥É¤Ë¤Ï±Æ¶Á¤Ï¤Ê¤¤¡£ -·ë²Ì¤È¤·¤Æ¡¢¥¯¥í¥Ã¥¯Ãͤ¬¹¹¿·Á°¤«¸å¤«¤Ë´Ø¤ï¤é¤º¡¢Í׵ᤵ¤ì¤¿ÁêÂÐŪ¤Ê»þ´Ö¤¬ -·Ð²á¤¹¤ë¤ÈËþλ¤¹¤ë¤³¤È¤Ë¤Ê¤ë¡£ +に基づくサービスにより相対的な期間だけ実行を停止するスレッドには影響はない。 +結果として、クロック値が更新前か後かに関わらず、要求された相対的な時間が +経過すると満了することになる。 .RE -.SS °ÊÁ°¤ÎÆ°ºî -(Î㤨¤Ð¡¢»þ´Ö¤¬½ÅÍפʰÕÌ£¤ò»ý¤Ä¥Ï¡¼¥É¥¦¥§¥¢¤òÀ©¸æ¤¹¤ë¾ì¹ç¤Ê¤É) -¤è¤êÀµ³Î¤ÊÄä»ß¤òɬÍפȤ¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ËÂбþ¤¹¤ë¤¿¤á¤Ë¡¢ +.SS 以前の動作 +(例えば、時間が重要な意味を持つハードウェアを制御する場合など) +より正確な停止を必要とするアプリケーションに対応するために、 .BR nanosleep () -¤Ï¡¢¥Þ¥¤¥¯¥íÉÃÀºÅ٤Υӥ¸¡¼¡¦¥¦¥§¥¤¥È¤òÍøÍѤ¹¤ë¤³¤È¤Ç¡¢ -2\ ms °Ê²¼¤ÎÄä»ß¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤¿¡£ -⤷¡¢¤³¤Îµ¡Ç½¤òÍøÍѤ¹¤ë¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥¹¥ì¥Ã¥É¤¬ +は、マイクロ秒精度のビジー・ウェイトを利用することで、 +2\ ms 以下の停止を行うことができた。 +但し、この機能を利用するには、呼び出し元のスレッドが .B SCHED_FIFO -¤ä +や .B SCHED_RR -¤È¤¤¤Ã¤¿¥ê¥¢¥ë¥¿¥¤¥à¡¦¥Ý¥ê¥·¡¼¤Î¸µ¤Ç¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤Æ¤¤¤ë -ɬÍפ¬¤¢¤Ã¤¿¡£ -¤³¤ÎÆÃÊ̤ʳÈÄ¥¤Ï¥«¡¼¥Í¥ë 2.5.39 ¤Çºï½ü¤µ¤ì¤¿¡£¤·¤¿¤¬¤Ã¤Æ¡¢ -¸½ºß¤Î 2.4 ·ÏÎó¤Î¥«¡¼¥Í¥ë¤Ë¤Ï¤³¤Îµ¡Ç½¤¬Â¸ºß¤¹¤ë¤¬¡¢ -2.6·ÏÎó¤Î¥«¡¼¥Í¥ë¤Ë¤Ï¤Ê¤¤¡£ -.SH ¥Ð¥° -Linux 2.4 ¤Ç¤Ï¡¢ +といったリアルタイム・ポリシーの元でスケジューリングされている +必要があった。 +この特別な拡張はカーネル 2.5.39 で削除された。したがって、 +現在の 2.4 系列のカーネルにはこの機能が存在するが、 +2.6系列のカーネルにはない。 +.SH バグ +Linux 2.4 では、 .BR nanosleep () -¤¬ +が .RB ( SIGTSTP -¤Ê¤É¤Î) ¥·¥°¥Ê¥ë¤Ë¤è¤êÄä»ß¤µ¤ì¤¿¾ì¹ç¡¢ +などの) シグナルにより停止された場合、 .BR nanosleep () -¤Î¸Æ¤Ó½Ð¤·¤Ï +の呼び出しは .B SIGCONT -¥·¥°¥Ê¥ë¤Ë¤è¤ë¥¹¥ì¥Ã¥É¤ÎºÆ³«¸å¤Ë +シグナルによるスレッドの再開後に .B EINTR -¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë¡£ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤³¤Î¸å¤ÇºÆ¥¹¥¿¡¼¥È¤µ¤ì¤¿¾ì¹ç¡¢ -¥¹¥ì¥Ã¥É¤¬Ää»ß¾õÂ֤ˤ¢¤ë´Ö¤Ë·Ð²á¤·¤¿»þ´Ö¤Ï -Ää»ß´ü´Ö¤È¤·¤Æ¥«¥¦¥ó¥È¡Ö¤µ¤ì¤Ê¤¤¡×¡£ -.SH ´ØÏ¢¹àÌÜ +エラーで失敗する。 +システムコールがこの後で再スタートされた場合、 +スレッドが停止状態にある間に経過した時間は +停止期間としてカウント「されない」。 +.SH 関連項目 .BR clock_nanosleep (2), .BR sched_setscheduler (2), .BR timer_create (2), diff --git a/release/man2/nfsservctl.2 b/release/man2/nfsservctl.2 index c9d6ee14..d6cc741b 100644 --- a/release/man2/nfsservctl.2 +++ b/release/man2/nfsservctl.2 @@ -12,27 +12,27 @@ .\" by HANATAKA Shinya .\" .TH NFSSERVCTL 2 1997-07-16 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -nfsservctl \- ¥«¡¼¥Í¥ë nfs ¥Ç¡¼¥â¥ó¤Î¤¿¤á¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ -.SH ½ñ¼° +.SH 名前 +nfsservctl \- カーネル nfs デーモンのためのインターフェース +.SH 書式 .nf .B #include .sp .BI "long nfsservctl(int " cmd ", struct nfsctl_arg *" argp , .BI " union nfsctl_res *" resp ); .fi -.SH ÀâÌÀ +.SH 説明 .nf /* - * nfsctl() ¤Ë¤è¤Ã¤ÆÍý²ò¤µ¤ì¤ë¥³¥Þ¥ó¥É + * nfsctl() によって理解されるコマンド */ -#define NFSCTL_SVC 0 /* ¥µ¡¼¥Ð¡¼¥×¥í¥»¥¹ */ -#define NFSCTL_ADDCLIENT 1 /* NFS ¥¯¥é¥¤¥¢¥ó¥È¤òÄɲà */ -#define NFSCTL_DELCLIENT 2 /* NFS ¥¯¥é¥¤¥¢¥ó¥É¤òºï½ü */ -#define NFSCTL_EXPORT 3 /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥¨¥¯¥¹¥Ý¡¼¥È */ -#define NFSCTL_UNEXPORT 4 /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥¢¥ó¥¨¥¯¥¹¥Ý¡¼¥È */ -#define NFSCTL_UGIDUPDATE 5 /* UID/GID ¥Þ¥Ã¥×¤Î¹¹¿· */ -#define NFSCTL_GETFH 6 /* (mountd ¤Ç»ÈÍѤµ¤ì¤ë) fh ¤Î¼èÆÀ */ +#define NFSCTL_SVC 0 /* サーバープロセス */ +#define NFSCTL_ADDCLIENT 1 /* NFS クライアントを追加 */ +#define NFSCTL_DELCLIENT 2 /* NFS クライアンドを削除 */ +#define NFSCTL_EXPORT 3 /* ファイルシステムのエクスポート */ +#define NFSCTL_UNEXPORT 4 /* ファイルシステムのアンエクスポート */ +#define NFSCTL_UGIDUPDATE 5 /* UID/GID マップの更新 */ +#define NFSCTL_GETFH 6 /* (mountd で使用される) fh の取得 */ struct nfsctl_arg { int ca_version; /* safeguard */ @@ -51,9 +51,9 @@ union nfsctl_res { unsigned int cr_debug; }; .fi -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï¥¼¥í¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +.SH 返り値 +成功した場合はゼロが返される。エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ½àµò -¤³¤Î¥³¡¼¥ë¤Ï Linux ÆÃÍ­¤Ç¤¢¤ë¡£ +が適切に設定される。 +.SH 準拠 +このコールは Linux 特有である。 diff --git a/release/man2/nice.2 b/release/man2/nice.2 index 9e901a83..d41c27f2 100644 --- a/release/man2/nice.2 +++ b/release/man2/nice.2 @@ -36,88 +36,88 @@ .\" Updated 2005-10-07, Akihiro MOTOKI .\" .TH NICE 2 2007-07-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -nice \- ¥×¥í¥»¥¹¤ÎÍ¥ÀèÅÙ¤òÊѹ¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +nice \- プロセスの優先度を変更する +.SH 書式 .B #include .sp .BI "int nice(int " inc ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR nice (): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR nice () -¤Ï +は .I inc -¤ÎÃͤò +の値を .B nice -¤ò¸Æ¤ó¤À¥×¥í¥»¥¹¤Î nice Ãͤ˲䨤ë -(nice Ãͤ¬Â礭¤¤¿ôÃͤۤÉÄ㤤ͥÀèÅÙ¤òɽ¤¹)¡£ -Éé¤Î¿ô¤ò»ØÄꤹ¤ë¡¢¤Ä¤Þ¤ê¡¢°ÊÁ°¤è¤ê¤âÍ¥ÀèÅÙ¤ò¾å¤²¤ë¤È¤¤¤¦»ØÄ꤬¤Ç¤­¤ë¤Î¤Ï -¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¤À¤±¤Ç¤¢¤ë¡£ -nice ÃͤÎÈϰϤˤĤ¤¤Æ¤Ï +を呼んだプロセスの nice 値に加える +(nice 値が大きい数値ほど低い優先度を表す)。 +負の数を指定する、つまり、以前よりも優先度を上げるという指定ができるのは +スーパーユーザーだけである。 +nice 値の範囲については .BR getpriority (2) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢¿·¤·¤¤ nice Ãͤ¬ÊÖ¤ë (⤷¡¢²¼µ­¤Î¡ÖÃí°Õ¡×¤ò»²¾È)¡£ -¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤¬Ê֤ꡢ +で説明されている。 +.SH 返り値 +成功した場合、新しい nice 値が返る (但し、下記の「注意」を参照)。 +失敗した場合 \-1 が返り、 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤ˽¾¤Ã¤ÆÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +がエラーの内容に従って設定される。 +.SH エラー .TP .B EPERM -¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼°Ê³°¤¬ +スーパーユーザー以外が .I inc -¤ËÉé¤Î¿ôÃͤò»ØÄꤷ¤ÆÍ¥ÀèÅÙ¤ò¾å¤²¤è¤¦¤È¤·¤¿¡£ -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬ +に負の数値を指定して優先度を上げようとした。 +呼び出し元のプロセスが .I inc -¤ËÉé¤Î¿ôÃͤò»ØÄꤷ¤ÆÍ¥ÀèÅÙ¤ò¾å¤²¤è¤¦¤È¤·¤¿¤¬¡¢ -½½Ê¬¤Ê¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ -Linux ¤Ç¤Ï +に負の数値を指定して優先度を上げようとしたが、 +十分な権限を持っていなかった。 +Linux では .B CAP_SYS_NICE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティが必要である。 .RB ( setrlimit (2) -¤Î¥ê¥½¡¼¥¹¾å¸Â +のリソース上限 .B RLIMIT_NICE -¤Ë´Ø¤¹¤ëµÄÏÀ¤â»²¾È¤Î¤³¤È)¡£ -.SH ½àµò +に関する議論も参照のこと)。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -¤·¤«¤·¡¢Linux ¤È (2.2.4¤è¤ê¸Å¤¤) (g)libc ¤Ç¤ÏÊÖ¤êÃͤÏɸ½à¤È°Û¤Ê¤ë¡£ -¾ÜºÙ¤Ï°Ê²¼¤ò»²¾È¤Î¤³¤È¡£ -SVr4 ¤Ë¤Ï¾¤Ë +しかし、Linux と (2.2.4より古い) (g)libc では返り値は標準と異なる。 +詳細は以下を参照のこと。 +SVr4 には他に .B EINVAL -¥¨¥é¡¼¥³¡¼¥É¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ -.SH Ãí°Õ -SUSv2 ¤È POSIX 1003.1-2003 ¤Ç¤Ï¡¢ +エラーコードについての記述がある。 +.SH 注意 +SUSv2 と POSIX 1003.1-2003 では、 .BR nice () -¤Ï¿·¤·¤¤ nice ÃͤòÊÖ¤¹¤Èµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -°ìÊý¡¢Linux ¥·¥¹¥Æ¥à¥³¡¼¥ë¤È (2.2.4 ¤è¤ê¸Å¤¤) (g)libc ¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ï -À®¸ù»þ¤Ë 0 ¤òÊÖ¤¹¡£¿·¤·¤¤ nice ÃÍ¤Ï +は新しい nice 値を返すと規定されている。 +一方、Linux システムコールと (2.2.4 より古い) (g)libc ライブラリ関数は +成功時に 0 を返す。新しい nice 値は .BR getpriority (2) -¤ò»È¤Ã¤Æ¼èÆÀ¤Ç¤­¤ë¡£ +を使って取得できる。 -glibc 2.2.4 °Ê¹ß¤Ç¤Ï¡¢ +glibc 2.2.4 以降では、 .BR nice () -¤Ï +は .BR getpriority (2) -¤ò¸Æ¤Ó½Ð¤¹¥é¥¤¥Ö¥é¥ê´Ø¿ô¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤ª¤ê¡¢ -¸Æ¤Ó½Ð¤·¸µ¤ËÊÖ¤¹¿·¤·¤¤ nice Ãͤò +を呼び出すライブラリ関数として実装されており、 +呼び出し元に返す新しい nice 値を .BR getpriority (2) -¤ò¸Æ¤Ó½Ð¤·¤Æ¼èÆÀ¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤³¤Î¼ÂÁõ¤Ç¤Ï¡¢Àµ¾ï¤ÊÆ°ºî¤Ç¤â \-1 ¤¬ÊÖ¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -³Î¼Â¤Ë¥¨¥é¡¼¤ò¸¡½Ð¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ -¸Æ¤Ó½Ð¤·¤ÎÁ°¤Ë +を呼び出して取得するようになっている。 +この実装では、正常な動作でも \-1 が返される可能性がある。 +確実にエラーを検出するためには、 +呼び出しの前に .I errno -¤Ë 0 ¤òÀßÄꤷ¡¢ +に 0 を設定し、 .BR nice () -¤¬ \-1 ¤òÊÖ¤·¤¿¤È¤­¤Ë errno ¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤ÈÎɤ¤¡£ -.SH ´ØÏ¢¹àÌÜ +が \-1 を返したときに errno をチェックすると良い。 +.SH 関連項目 .BR nice (1), .BR renice (1), .BR fork (2), diff --git a/release/man2/open.2 b/release/man2/open.2 index 166a84dc..2d72f8e4 100644 --- a/release/man2/open.2 +++ b/release/man2/open.2 @@ -70,29 +70,29 @@ .\" Updated 2008-08-08, Akihiro MOTOKI, LDP v3.05 .\" Updated 2010-04-23, Akihiro MOTOKI, LDP v3.24 .\" -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: file description ¥Õ¥¡¥¤¥ëµ­½Ò -.\"WORD: open ¥ª¡¼¥×¥ó -.\"WORD: create ºîÀ® -.\"WORD: file offset ¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È -.\"WORD: controling terminal À©¸æüËö -.\"WORD: non-blocking I/O ÈóÄä»ß I/O -.\"WORD: synchronous I/O Ʊ´ü I/O -.\"WORD: permission µö²Ä -.\"WORD: user ¥æ¡¼¥¶¡¼ -.\"WORD: owner ½êÍ­¼Ô -.\"WORD: group ¥°¥ë¡¼¥× -.\"WORD: other ¾¿Í -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: symbolic link ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: dangling symbolic link ²õ¤ì¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: file creation flag ¥Õ¥¡¥¤¥ëºîÀ®¥Õ¥é¥° -.\"WORD: file status flag ¥Õ¥¡¥¤¥ë¾õÂ֥ե饰 +.\"WORD: descriptor ディスクリプタ +.\"WORD: file description ファイル記述 +.\"WORD: open オープン +.\"WORD: create 作成 +.\"WORD: file offset ファイル・オフセット +.\"WORD: controling terminal 制御端末 +.\"WORD: non-blocking I/O 非停止 I/O +.\"WORD: synchronous I/O 同期 I/O +.\"WORD: permission 許可 +.\"WORD: user ユーザー +.\"WORD: owner 所有者 +.\"WORD: group グループ +.\"WORD: other 他人 +.\"WORD: kernel カーネル +.\"WORD: symbolic link シンボリック・リンク +.\"WORD: dangling symbolic link 壊れたシンボリック・リンク +.\"WORD: file creation flag ファイル作成フラグ +.\"WORD: file status flag ファイル状態フラグ .\" .TH OPEN 2 2010-09-10 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -open, creat \- ¥Õ¥¡¥¤¥ë¤ä¥Ç¥Ð¥¤¥¹¤Î¥ª¡¼¥×¥ó¡¢ºîÀ®¤ò¹Ô¤¦ -.SH ½ñ¼° +.SH 名前 +open, creat \- ファイルやデバイスのオープン、作成を行う +.SH 書式 .nf .B #include .B #include @@ -103,71 +103,71 @@ open, creat \- .BI "int creat(const char *" pathname ", mode_t " mode ); .fi -.SH ÀâÌÀ -¥Õ¥¡¥¤¥ë¤Î +.SH 説明 +ファイルの .I pathname -¤òÍ¿¤¨¤ë¤È¡¢ +を与えると、 .BR open () -¤Ï¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢¤³¤Î¸å¤Ë³¤¯¥·¥¹¥Æ¥à¥³¡¼¥ë -.RB ( read "(2), " write "(2), " lseek "(2), " fcntl "(2) ¤Ê¤É)" -¤Ç»ÈÍѤµ¤ì¤ë¾®¤µ¤ÊÈóÉé¤ÎÀ°¿ô¤Ç¤¢¤ë¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬À®¸ù¤·¤¿¾ì¹ç¤ËÊÖ¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï -¤½¤Î¥×¥í¥»¥¹¤¬¤½¤Î»þÅÀ¤Ç¥ª¡¼¥×¥ó¤·¤Æ¤¤¤Ê¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î -¤¦¤ÁºÇ¾®¤Î¿ô»ú¤Î¤â¤Î¤È¤Ê¤ë¡£ +はファイル・ディスクリプタを返す。 +ファイル・ディスクリプタは、この後に続くシステムコール +.RB ( read "(2), " write "(2), " lseek "(2), " fcntl "(2) など)" +で使用される小さな非負の整数である。 +このシステムコールが成功した場合に返されるファイル・ディスクリプタは +そのプロセスがその時点でオープンしていないファイル・ディスクリプタの +うち最小の数字のものとなる。 .PP -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï +デフォルトでは、新しいファイル・ディスクリプタは .BR execve (2) -¤ò¼Â¹Ô¤·¤¿¸å¤â¥ª¡¼¥×¥ó¤µ¤ì¤¿¤Þ¤Þ¤È¤Ê¤ë (¤Ä¤Þ¤ê¡¢ +を実行した後もオープンされたままとなる (つまり、 .BR fcntl (2) -¤ËÀâÌÀ¤¬¤¢¤ë +に説明がある .B FD_CLOEXEC -¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Õ¥é¥°¤ÏºÇ½é¤Ï̵¸ú¤Ç¤¢¤ë; -¸å½Ò¤Î Linux ¸ÇÍ­¤Î¥Õ¥é¥° +ファイル・ディスクリプタ・フラグは最初は無効である; +後述の Linux 固有のフラグ .B O_CLOEXEC -¤ò»È¤¦¤È¤³¤Î¥Ç¥Õ¥©¥ë¥È¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë)¡£ -¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È (file offset) ¤Ï¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤ËÀßÄꤵ¤ì¤ë +を使うとこのデフォルトを変更することができる)。 +ファイル・オフセット (file offset) はファイルの先頭に設定される .RB ( lseek (2) -»²¾È)¡£ +参照)。 .PP .BR open () -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¡Ö¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¡× +を呼び出すと、「オープンファイル記述」 .I "(open file description)" -¤¬ºîÀ®¤µ¤ì¤ë¡£¥Õ¥¡¥¤¥ëµ­½Ò¤È¤Ï¡¢¥·¥¹¥Æ¥àÁ´ÂΤΠ-¥ª¡¼¥×¥óÃæ¤Î¥Õ¥¡¥¤¥ë¤Î¥Æ¡¼¥Ö¥ë¤Î¥¨¥ó¥È¥ê¤Ç¤¢¤ë¡£ -¤³¤Î¥¨¥ó¥È¥ê¤Ï¡¢¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤È¥Õ¥¡¥¤¥ë¾õÂ֥ե饰 +が作成される。ファイル記述とは、システム全体の +オープン中のファイルのテーブルのエントリである。 +このエントリは、ファイル・オフセットとファイル状態フラグ .RB ( fcntl (2) .B F_SETFL -Áàºî¤Ë¤è¤êÊѹ¹²Äǽ) ¤¬ÊÝ»ý¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¤³¤ì¤é¤Î¥¨¥ó¥È¥ê¤Î°ì¤Ä¤Ø¤Î»²¾È¤Ç¤¢¤ë¡£ -¤³¤Î¸å¤Ç +操作により変更可能) が保持する。 +ファイル・ディスクリプタはこれらのエントリの一つへの参照である。 +この後で .I pathname -¤¬ºï½ü¤µ¤ì¤¿¤ê¡¢Â¾¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¤è¤¦¤ËÊѹ¹¤µ¤ì¤¿¤ê¤·¤Æ¤â¡¢ -¤³¤Î»²¾È¤Ï±Æ¶Á¤ò¼õ¤±¤Ê¤¤¡£ -¿·¤·¤¤¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¤ÏºÇ½é¤Ï¾¤Î¤É¤Î¥×¥í¥»¥¹¤È¤â -¶¦Í­¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ +が削除されたり、他のファイルを参照するように変更されたりしても、 +この参照は影響を受けない。 +新しいオープンファイル記述は最初は他のどのプロセスとも +共有されていないが、 .BR fork (2) -¤Ç¶¦Í­¤¬µ¯¤³¤ë¾ì¹ç¤¬¤¢¤ë¡£ +で共有が起こる場合がある。 .PP -°ú¤­¿ô +引き数 .I flags -¤Ë¤Ï¡¢¥¢¥¯¥»¥¹¥â¡¼¥É +には、アクセスモード .BR O_RDONLY ", " O_WRONLY ", " O_RDWR -¤Î¤É¤ì¤«¤Ò¤È¤Ä¤¬Æþ¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ì¤é¤Ï¤½¤ì¤¾¤ìÆɤ߹þ¤ßÀìÍÑ¡¢½ñ¤­¹þ¤ßÀìÍÑ¡¢Æɤ߽ñ¤­ÍÑ¤Ë -¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¤³¤È¤òÍ׵᤹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +のどれかひとつが入っていなければならない。 +これらはそれぞれ読み込み専用、書き込み専用、読み書き用に +ファイルをオープンすることを要求するものである。 -¤µ¤é¤Ë¡¢ +さらに、 .I flags -¤Ë¤Ï¡¢¥Õ¥¡¥¤¥ëºîÀ®¥Õ¥é¥° (file creation flag) ¤È¥Õ¥¡¥¤¥ë¾õÂ֥ե饰 -(file status flag) ¤ò 0 ¸Ä°Ê¾å¡Ö¥Ó¥Ã¥Èñ°Ì¤Î OR (bitwise-or)¡×¤Ç -»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.I ¥Õ¥¡¥¤¥ëºîÀ®¥Õ¥é¥° -¤Ï +には、ファイル作成フラグ (file creation flag) とファイル状態フラグ +(file status flag) を 0 個以上「ビット単位の OR (bitwise-or)」で +指定することができる。 +.I ファイル作成フラグ +は .BR O_CREAT ", " O_EXCL ", " O_NOCTTY ", " O_TRUNC -¤Ç¤¢¤ë¡£ -.I ¥Õ¥¡¥¤¥ë¾õÂ֥ե饰 -¤Ï°Ê²¼¤Î¥ê¥¹¥È¤Î¤¦¤Á¾åµ­°Ê³°¤Î»Ä¤ê¤Î¤â¤Î¤Ç¤¢¤ë¡£ +である。 +.I ファイル状態フラグ +は以下のリストのうち上記以外の残りのものである。 .\" FIXME . Actually is it true that the "file status flags" are all of the .\" remaining flags listed below? SUSv4 divides the flags into: .\" * Access mode @@ -177,532 +177,532 @@ open, creat \- .\" though it's not clear what the difference between "other" and .\" "File creation" flags is. (I've raised an Aardvark to see if this .\" can be clarified in SUSv4; 10 Oct 2008.) -Æó¼ïÎà¤Î¥Õ¥é¥°¤Î°ã¤¤¤Ï¡¢¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤ÎÊý¤Ï +二種類のフラグの違いは、ファイル状態フラグの方は .BR fcntl (2) -¤ò»È¤Ã¤Æ¤½¤ÎÆâÍƤò¼èÆÀ¤·¤¿¤ê (¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï) Êѹ¹¤·¤¿¤ê¤Ç¤­¤ëÅÀ¤Ë¤¢¤ë¡£ -¥Õ¥¡¥¤¥ëºîÀ®¥Õ¥é¥°¤È¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤ÎÁ´¥ê¥¹¥È¤ò°Ê²¼¤Ë¼¨¤¹: +を使ってその内容を取得したり (場合によっては) 変更したりできる点にある。 +ファイル作成フラグとファイル状態フラグの全リストを以下に示す: .TP .B O_APPEND -¥Õ¥¡¥¤¥ë¤òÄɲà (append) ¥â¡¼¥É¤Ç¥ª¡¼¥×¥ó¤¹¤ë¡£ -Ëè²ó¤Î +ファイルを追加 (append) モードでオープンする。 +毎回の .BR write (2) -¤ÎÁ°¤Ë +の前に .BR lseek (2) -¤ò¹Ô¤Ã¤¿¤«¤Î¤è¤¦¤Ë¡¢¥Õ¥¡¥¤¥ë¡¦¥Ý¥¤¥ó¥¿¡¼¤ò¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤Ë°ÜÆ°¤¹¤ë¡£ +を行ったかのように、ファイル・ポインターをファイルの最後に移動する。 .\" For more background, see .\" http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=453946 .\" http://nfs.sourceforge.net/ -NFS ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ç¡¢ +NFS ファイル・システムで、 .B O_APPEND -¤ò»ÈÍѤ¹¤ë¤È¡¢Ê£¿ô¤Î¥×¥í¥»¥¹¤¬¤Ò¤È¤Ä¤Î¥Õ¥¡¥¤¥ë¤ËƱ»þ¤Ë¥Ç¡¼¥¿¤òÄɲä·¤¿¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¤¬²õ¤ì¤Æ¤·¤Þ¤¦¤³¤È¤¬¤¢¤ë¡£ -¤³¤ì¤Ï NFS ¤¬Äɲå⡼¥É¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¤¿¤á¡¢ -¥¯¥é¥¤¥¢¥ó¥È¤Î¥«¡¼¥Í¥ë (kernel) ¤¬¤½¤ì¤ò¥·¥ß¥å¥ì¡¼¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Î¤À¤¬¡¢ -¶¥¹ç¾õÂÖ¤òÈò¤±¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +を使用すると、複数のプロセスがひとつのファイルに同時にデータを追加した場合、 +ファイルが壊れてしまうことがある。 +これは NFS が追加モードをサポートしていないため、 +クライアントのカーネル (kernel) がそれをシミュレートしなければならないのだが、 +競合状態を避けることはできないからである。 .TP .B O_ASYNC -¥·¥°¥Ê¥ë¶îÆ° I/O (signal-driven I/O) ¤òÍ­¸ú¤Ë¤¹¤ë: -¤³¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ø¤Î -ÆþÎϤޤ¿¤Ï½ÐÎϤ¬²Äǽ¤Ë¤Ê¤Ã¤¿¾ì¹ç¤Ë¡¢¥·¥°¥Ê¥ë¤òÀ¸À®¤¹¤ë -(¥Ç¥Õ¥©¥ë¥È¤Ï +シグナル駆動 I/O (signal-driven I/O) を有効にする: +このファイル・ディスクリプタへの +入力または出力が可能になった場合に、シグナルを生成する +(デフォルトは .B SIGIO -¤Ç¤¢¤ë¤¬¡¢ +であるが、 .BR fcntl (2) -¤Ë¤è¤Ã¤ÆÊѹ¹²Äǽ¤Ç¤¢¤ë)¡£ -¤³¤Îµ¡Ç½¤¬»ÈÍѲÄǽ¤Ê¤Î¤ÏüËö¡¢µ¿»÷üËö¡¢¥½¥±¥Ã¥È¤Î¤ß¤Ç¤¢¤ê¡¢ -(Linux 2.6 °Ê¹ß¤Ç¤Ï) ¥Ñ¥¤¥×¤È FIFO ¤ËÂФ·¤Æ¤â»ÈÍѤǤ­¤ë¡£ -¤µ¤é¤Ë¾Ü¤·¤¤ÀâÌÀ¤Ï +によって変更可能である)。 +この機能が使用可能なのは端末、疑似端末、ソケットのみであり、 +(Linux 2.6 以降では) パイプと FIFO に対しても使用できる。 +さらに詳しい説明は .BR fcntl (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .TP -.BR O_CLOEXEC " (Linux 2.6.23 °Ê¹ß)" -¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ close-on-exec ¥Õ¥é¥°¤òÍ­¸ú¤Ë¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢¥×¥í¥°¥é¥à¤Ï +.BR O_CLOEXEC " (Linux 2.6.23 以降)" +新しいファイル・ディスクリプタに対して close-on-exec フラグを有効にする。 +このフラグを指定することで、プログラムは .B FD_CLOEXEC -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤¿¤á¤Î +フラグをセットするための .BR fcntl (2) .B F_SETFD -Áàºî¤òÊÌÅӸƤӽФ¹É¬Íפ¬¤Ê¤¯¤Ê¤ë¡£ -¤Þ¤¿¡¢¤¢¤ë¼ï¤Î¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Î¥×¥í¥°¥é¥à¤Ï¤³¤Î¥Õ¥é¥°¤Î»ÈÍÑ¤Ï -ÉԲķç¤Ç¤¢¤ë¡£¤Ê¤¼¤Ê¤é¡¢¸ÄÊÌ¤Ë +操作を別途呼び出す必要がなくなる。 +また、ある種のマルチスレッドのプログラムはこのフラグの使用は +不可欠である。なぜなら、個別に .B FD_CLOEXEC -¥Õ¥é¥°¤òÀßÄꤹ¤ë +フラグを設定する .BR fcntl (2) .B F_SETFD -Áàºî¤ò¸Æ¤Ó½Ð¤·¤¿¤È¤·¤Æ¤â¡¢¤¢¤ë¥¹¥ì¥Ã¥É¤¬¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò -¥ª¡¼¥×¥ó¤¹¤ë¤Î¤ÈƱ»þ¤ËÊ̤Υ¹¥ì¥Ã¥É¤¬ +操作を呼び出したとしても、あるスレッドがファイルディスクリプタを +オープンするのと同時に別のスレッドが .BR fork (2) -¤È +と .BR execve (2) -¤ò¼Â¹Ô¤¹¤ë¤È¤¤¤¦¶¥¹ç¾ò·ï¤òÈò¤±¤ë¤Î¤Ë¤Ï½½Ê¬¤Ç¤Ï¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +を実行するという競合条件を避けるのには十分ではないからである。 .\" This flag fixes only one form of the race condition; .\" The race can also occur with, for example, descriptors .\" returned by accept(), pipe(), etc. .TP .B O_CREAT -¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤«¤Ã¤¿¾ì¹ç¤ÏºîÀ® (create) ¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô (¥æ¡¼¥¶¡¼ ID) ¤Ï¡¢¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤ËÀßÄꤵ¤ì¤ë¡£ -¥°¥ë¡¼¥×½êÍ­¸¢ (¥°¥ë¡¼¥× ID) ¤Ï¡¢¥×¥í¥»¥¹¤Î¼Â¸ú¥°¥ë¡¼¥× ID -¤Þ¤¿¤Ï¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Î¥°¥ë¡¼¥× ID ¤ËÀßÄꤵ¤ì¤ë -(¤³¤ì¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¿¥¤¥×¡¢¥Þ¥¦¥ó¥È¥ª¥×¥·¥ç¥ó¡¢ -¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Î¥â¡¼¥É¤Ë°Í¸¤¹¤ë¡£ +ファイルが存在しなかった場合は作成 (create) する。 +ファイルの所有者 (ユーザー ID) は、プロセスの実効ユーザー ID に設定される。 +グループ所有権 (グループ ID) は、プロセスの実効グループ ID +または親ディレクトリのグループ ID に設定される +(これは、ファイルシステムタイプ、マウントオプション、 +親ディレクトリのモードに依存する。 .BR mount (8) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¥Þ¥¦¥ó¥È¥ª¥×¥·¥ç¥ó +で説明されているマウントオプション .I bsdgroups -¤È +と .I sysvgroups -¤ò»²¾È)¡£ -.\" 2.6.25 »þÅÀ¤Ç¤Ï¡¢bsdgroups ¤Ï ext2, ext3, ext4, XFS ¤Ç¥µ¥Ý¡¼¥È -.\" ¤µ¤ì¤Æ¤¤¤ë (2.6.14 °Ê¹ß)¡£ +を参照)。 +.\" 2.6.25 時点では、bsdgroups は ext2, ext3, ext4, XFS でサポート +.\" されている (2.6.14 以降)。 .RS .PP .I mode -¤Ï¿·¤·¤¤¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¾ì¹ç¤Ë»ÈÍѤ¹¤ë¥¢¥¯¥»¥¹µö²Ä (permission) ¤ò»ØÄꤹ¤ë¡£ +は新しいファイルを作成する場合に使用するアクセス許可 (permission) を指定する。 .I flags -¤Ë +に .B O_CREAT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ +が指定されている場合、 .I mode -¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を指定しなければならない。 .B O_CREAT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +が指定されていない場合、 .I mode -¤Ï̵»ë¤µ¤ì¤ë¡£ -Í­¸ú¤Ê¥¢¥¯¥»¥¹µö²Ä¤Ï¡¢ÉáÃʤÈƱ¤¸¤è¤¦¤Ë¥×¥í¥»¥¹¤Î +は無視される。 +有効なアクセス許可は、普段と同じようにプロセスの .I umask -¤Ë¤è¤Ã¤Æ½¤Àµ¤µ¤ì¡¢ºîÀ®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Îµö²Ä¤Ï +によって修正され、作成されたファイルの許可は .I "(mode\ &\ ~umask)" -¤È¤Ê¤ë¡£ -¤³¤Î¥â¡¼¥É¤Ï¡¢¿·¤·¤¯ºîÀ®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¤½¤ì°Ê¹ß¤Î¥¢¥¯¥»¥¹ -¤Ë¤Î¤ßŬÍѤµ¤ì¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -Æɤ߼è¤êÀìÍѤΥե¡¥¤¥ë¤òºîÀ®¤¹¤ë +となる。 +このモードは、新しく作成されたファイルに対するそれ以降のアクセス +にのみ適用される点に注意すること。 +読み取り専用のファイルを作成する .BR open () -¥³¡¼¥ë¤Ç¤¢¤Ã¤Æ¤â¡¢ -Æɤ߽ñ¤­²Äǽ¤Ê¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¤³¤È¤¬¤¢¤ê¤¦¤ë¡£ +コールであっても、 +読み書き可能なファイル・ディスクリプタを返すことがありうる。 .PP .I mode -¤Î¤¿¤á¤Ë°Ê²¼¤Î¥·¥ó¥Ü¥ëÄê¿ô¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë : +のために以下のシンボル定数が提供されている : .TP 9 .B S_IRWXU -00700 ¥æ¡¼¥¶¡¼ (¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô) ¤ËÆɤ߹þ¤ß¡¢½ñ¤­¹þ¤ß¡¢ -¼Â¹Ô¤Îµö²Ä¤¬¤¢¤ë¡£ +00700 ユーザー (ファイルの所有者) に読み込み、書き込み、 +実行の許可がある。 .TP .B S_IRUSR -00400 ¥æ¡¼¥¶¡¼¤ËÆɤ߹þ¤ß¤Îµö²Ä¤¬¤¢¤ë¡£ +00400 ユーザーに読み込みの許可がある。 .TP .B S_IWUSR -00200 ¥æ¡¼¥¶¡¼¤Ë½ñ¤­¹þ¤ß¤Îµö²Ä¤¬¤¢¤ë¡£ +00200 ユーザーに書き込みの許可がある。 .TP .B S_IXUSR -00100 ¥æ¡¼¥¶¡¼¤Ë¼Â¹Ô¤Îµö²Ä¤¬¤¢¤ë¡£ +00100 ユーザーに実行の許可がある。 .TP .B S_IRWXG -00070 ¥°¥ë¡¼¥×¤ËÆɤ߹þ¤ß¡¢½ñ¤­¹þ¤ß¡¢¼Â¹Ô¤Îµö²Ä¤¬¤¢¤ë¡£ +00070 グループに読み込み、書き込み、実行の許可がある。 .TP .B S_IRGRP -00040 ¥°¥ë¡¼¥×¤ËÆɤ߹þ¤ß¤Îµö²Ä¤¬¤¢¤ë¡£ +00040 グループに読み込みの許可がある。 .TP .B S_IWGRP -00020 ¥°¥ë¡¼¥×¤Ë½ñ¤­¹þ¤ß¤Îµö²Ä¤¬¤¢¤ë¡£ +00020 グループに書き込みの許可がある。 .TP .B S_IXGRP -00010 ¥°¥ë¡¼¥×¤Ë¼Â¹Ô¤Îµö²Ä¤¬¤¢¤ë¡£ +00010 グループに実行の許可がある。 .TP .B S_IRWXO -00007 ¾¿Í (others) ¤ËÆɤ߹þ¤ß¡¢½ñ¤­¹þ¤ß¡¢¼Â¹Ô¤Îµö²Ä¤¬¤¢¤ë¡£ +00007 他人 (others) に読み込み、書き込み、実行の許可がある。 .TP .B S_IROTH -00004 ¾¿Í¤ËÆɤ߹þ¤ß¤Îµö²Ä¤¬¤¢¤ë¡£ +00004 他人に読み込みの許可がある。 .TP .B S_IWOTH -00002 ¾¿Í¤Ë½ñ¤­¹þ¤ß¤Îµö²Ä¤¬¤¢¤ë¡£ +00002 他人に書き込みの許可がある。 .TP .B S_IXOTH -00001 ¾¿Í¤Ë¼Â¹Ô¤Îµö²Ä¤¬¤¢¤ë¡£ +00001 他人に実行の許可がある。 .RE .TP -.BR O_DIRECT " (Linux 2.4.10 °Ê¹ß)" -¤³¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë I/O ¤Î¥­¥ã¥Ã¥·¥å¤Î¸ú²Ì¤òºÇ¾®²½¤·¤è¤¦¤È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤È¡¢°ìÈÌŪ¤ËÀ­Ç½¤¬Äã²¼¤¹¤ë¡£ -¤·¤«¤·¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬Æȼ«¤Ë¥­¥ã¥Ã¥·¥ó¥°¤ò¹Ô¤Ã¤Æ¤¤¤ë¤è¤¦¤Ê -ÆÃÊ̤ʾì¹ç¤Ë¤ÏÌò¤ËΩ¤Ä¡£ -¥Õ¥¡¥¤¥ë¤Î I/O ¤Ï¥æ¡¼¥¶¡¼¶õ´Ö¥Ð¥Ã¥Õ¥¡¤ËÂФ·¤ÆľÀܹԤï¤ì¤ë¡£ +.BR O_DIRECT " (Linux 2.4.10 以降)" +このファイルに対する I/O のキャッシュの効果を最小化しようとする。 +このフラグを使うと、一般的に性能が低下する。 +しかしアプリケーションが独自にキャッシングを行っているような +特別な場合には役に立つ。 +ファイルの I/O はユーザー空間バッファに対して直接行われる。 .B O_DIRECT -¥Õ¥é¥°¼«¿È¤Ï¥Ç¡¼¥¿¤òƱ´ü¤ÇžÁ÷¤·¤è¤¦¤È¤Ï¤¹¤ë¤¬¡¢ +フラグ自身はデータを同期で転送しようとはするが、 .B O_SYNC -¤Î¤è¤¦¤Ë¥Ç¡¼¥¿¤ÈɬÍפʥ᥿¥Ç¡¼¥¿¤ÎžÁ÷¤¬Êݾڤµ¤ì¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -Ʊ´ü I/O ¤òÊݾڤ¹¤ë¤¿¤á¤Ë¤Ï¡¢ +のようにデータと必要なメタデータの転送が保証されるわけではない。 +同期 I/O を保証するためには、 .B O_DIRECT -¤Ë²Ã¤¨¤Æ +に加えて .B O_SYNC -¤ò»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¡ÖÃí°Õ¡×¤ÎÀá (²¼µ­) ¤ÎµÄÏÀ¤â»²¾È¡£ +を使用しなければならない。 +「注意」の節 (下記) の議論も参照。 .sp -¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤ËÂФ¹¤ë»÷Ä̤ä¿°ÕÌ£¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ +ブロックデバイスに対する似通った意味のインターフェースが .BR raw (8) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë (⤷¡¢¤³¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÏÈó¿ä¾©¤Ç¤¢¤ë)¡£ +で説明されている (但し、このインタフェースは非推奨である)。 .TP .B O_DIRECTORY -\fIpathname\fP ¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤±¤ì¤Ð¥ª¡¼¥×¥ó¤Ï¼ºÇÔ¤¹¤ë¡£ -.\" °Ê²¼¤Îµ­»ö¤È¤½¤Î¥ê¥×¥é¥¤¤ò»²¾È¤Î¤³¤È¡£ +\fIpathname\fP がディレクトリでなければオープンは失敗する。 +.\" 以下の記事とそのリプライを参照のこと。 .\" http://marc.theaimsgroup.com/?t=112748702800001&r=1&w=2 .\" [PATCH] open: O_DIRECTORY and O_CREAT together should fail -.\" O_DIRECTORY | O_CREAT ¤ò»ØÄꤹ¤ë¤È O_DIRECTORY ¤¬Ìµ»ë¤µ¤ì¤Æ¤·¤Þ¤¦¡£ -¤³¤Î¥Õ¥é¥°¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢ +.\" O_DIRECTORY | O_CREAT を指定すると O_DIRECTORY が無視されてしまう。 +このフラグは Linux 特有であり、 .BR opendir (3) -¤¬ FIFO ¤ä¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¤ËÂФ·¤Æ¥³¡¼¥ë¤µ¤ì¤¿¾ì¹ç¤Î -¥µ¡¼¥Ó¥¹ÉÔǽ (denial-of-service) ¹¶·â¤òÈò¤±¤ë¤¿¤á¤Ë -¥«¡¼¥Í¥ë 2.1.126 ¤ÇÄɲ䵤줿¡£ -¤·¤«¤·¤³¤ì¤Ï +が FIFO やテープデバイスに対してコールされた場合の +サービス不能 (denial-of-service) 攻撃を避けるために +カーネル 2.1.126 で追加された。 +しかしこれは .BR opendir (3) -¤Î¼ÂÁõ°Ê³°¤Ç¤Ï»ÈÍѤ¹¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +の実装以外では使用するべきではない。 .TP .B O_EXCL -¤³¤Î¸Æ¤Ó½Ð¤·¤Ç¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤ë¤³¤È¤òÊݾڤ¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬ +この呼び出しでファイルが作成されることを保証する。 +このフラグが .B O_CREAT -¤È°ì½ï¤Ë»ØÄꤵ¤ì¡¢ +と一緒に指定され、 .I pathname -¤Î¥Õ¥¡¥¤¥ë¤¬´û¤Ë¸ºß¤·¤¿¾ì¹ç¡¢ +のファイルが既に存在した場合、 .BR open () -¤Ï¼ºÇÔ¤¹¤ë¡£ +は失敗する。 .B O_CREAT -¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Î +が指定されなかった場合の .B O_EXCL -¤ÎÆ°ºî¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +の動作は未定義である。 -¤³¤ì¤éÆó¤Ä¤Î¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤¿ºÝ¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ïé¤é¤ì¤Ê¤¤¡£ -.\" POSIX.1-2001 ¤Ç¤ÏÌÀ¼¨Åª¤Ë¤³¤ÎÆ°ºî¤òÍ׵ᤷ¤Æ¤¤¤ë¡£ +これら二つのフラグが指定された際、シンボリックリンクは辿られない。 +.\" POSIX.1-2001 では明示的にこの動作を要求している。 .I pathname -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¡¢ -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬¤É¤³¤ò»Ø¤·¤Æ¤¤¤ë¤«¤Ë´Ø¤ï¤é¤º +がシンボリックリンクの場合、 +シンボリックリンクがどこを指しているかに関わらず .BR open () -¤Ï¼ºÇÔ¤¹¤ë¡£ +は失敗する。 -NFS ¤Ç¤Ï¡¢ +NFS では、 .B O_EXCL -¤Ï¡¢Linux 2.6 °Ê¹ß¤Ç NFSv3 °Ê¹ß¤ò»È¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ç¤Î¤ß¥µ¥Ý¡¼¥È¤µ¤ì¤ë¡£ +は、Linux 2.6 以降で NFSv3 以降を使っている場合でのみサポートされる。 .B O_EXCL -¥µ¥Ý¡¼¥È¤¬Ä󶡤µ¤ì¤Æ¤¤¤Ê¤¤ NFS ´Ä¶­¤Ç¤Ï¡¢¤³¤Î¥Õ¥é¥°¤ËÍê¤Ã¤Æ -¥í¥Ã¥¯½èÍý¤ò¼Â¹Ô¤¹¤ë¥×¥í¥°¥é¥à¤Ï¶¥¹ç¾õÂÖ (race condition) ¤Ë½Ð²ñ¤¦ -²ÄǽÀ­¤¬¤¢¤ë¡£ -¥í¥Ã¥¯¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤ÆÉÔ²Äʬ (atomic) ¤Ê¥Õ¥¡¥¤¥ë¥í¥Ã¥¯¤ò¼Â¸½¤·¡¢ -NFS ¤¬ +サポートが提供されていない NFS 環境では、このフラグに頼って +ロック処理を実行するプログラムは競合状態 (race condition) に出会う +可能性がある。 +ロックファイルを使用して不可分 (atomic) なファイルロックを実現し、 +NFS が .B O_EXCL -¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤«¤Ë°Í¸¤·¤Ê¤¤¤è¤¦¤Ë¤·¤¿¤¤¾ì¹ç¡¢ -°Ü¿¢À­¤Î¤¢¤ëÊýË¡¤Ï¡¢Æ±¤¸¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ë¾¤È̾Á°¤Î½Å¤Ê¤é¤Ê¤¤ -¥Õ¥¡¥¤¥ë (Î㤨¤Ð¥Û¥¹¥È̾¤È PID ¤òÁȤ߹ç¤ï¤»¤¿Ì¾Á°) ¤òºîÀ®¤·¡¢ +をサポートしているかに依存しないようにしたい場合、 +移植性のある方法は、同じファイルシステム上に他と名前の重ならない +ファイル (例えばホスト名と PID を組み合わせた名前) を作成し、 .BR link (2) -¤ò»ÈÍѤ·¤Æ¤½¤Î¥í¥Ã¥¯¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯¤òºîÀ®¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£ +を使用してそのロックファイルへのリンクを作成することである。 .BR link (2) -¥³¡¼¥ë¤ÎÊÖ¤êÃͤ¬ 0 ¤Ê¤é¤Ð¥í¥Ã¥¯¤ËÀ®¸ù¤·¤Æ¤¤¤ë¡£ -¤¢¤ë¤¤¤Ï¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤Ë +コールの返り値が 0 ならばロックに成功している。 +あるいは、そのファイルに .BR stat (2) -¤ò»ÈÍѤ·¤Æ¥ê¥ó¥¯¿ô (link count) ¤¬ 2 ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ -¤½¤¦¤Ê¤Ã¤Æ¤¤¤ì¤Ð¡¢Æ±¤¸¤¯¥í¥Ã¥¯¤ËÀ®¸ù¤·¤Æ¤¤¤ë¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ +を使用してリンク数 (link count) が 2 になっているかをチェックする。 +そうなっていれば、同じくロックに成功しているということである。 .TP .B O_LARGEFILE (LFS) .I off_t -¤Ç¤Ï¥µ¥¤¥º¤òɽ¤»¤Ê¤¤ (¤À¤À¤· +ではサイズを表せない (だだし .I off64_t -¤Ç¤Ï¥µ¥¤¥º¤òɽ¤»¤ë) ¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó²Äǽ¤Ë¤¹¤ë¡£ -¤³¤ÎÄêµÁ¤òÍ­¸ú¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ -(¡Ö¤É¤Î¡×¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤è¤ê¤âÁ°¤Ë) +ではサイズを表せる) ファイルをオープン可能にする。 +この定義を有効にするためには、 +(「どの」ヘッダファイルをインクルードするよりも前に) .B _LARGEFILE64_SOURCE -¥Þ¥¯¥í¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -32¥Ó¥Ã¥È¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤ÆÂ礭¤Ê¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤¹¤ëÊýË¡¤òÆÀ¤¿¤¤¾ì¹ç¡¢ +マクロを定義しなければならない。 +32ビットシステムにおいて大きなファイルにアクセスする方法を得たい場合、 .RB ( O_LARGEFILE -¤ò»È¤¦¤è¤ê¤â) +を使うよりも) .B _FILE_OFFSET_BITS -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤ò¥»¥Ã¥È¤¹¤ëÊý¤¬Ë¾¤Þ¤·¤¤ÊýË¡¤Ç¤¢¤ë +機能検査マクロをセットする方が望ましい方法である .RB ( feature_test_macros (7) -¤ò»²¾È)¡£ +を参照)。 .TP -.BR O_NOATIME " (Linux 2.6.8 °Ê¹ß)" -¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ +.BR O_NOATIME " (Linux 2.6.8 以降)" +ファイルに対して .BR read (2) -¤¬¼Â¹Ô¤µ¤ì¤¿¤È¤­¤Ë¡¢ºÇ½ª¥¢¥¯¥»¥¹»þ¹ï (inode ¤Î st_atime) ¤ò¹¹¿·¤·¤Ê¤¤¡£ -¤³¤Î¥Õ¥é¥°¤Ï¥¤¥ó¥Ç¥Ã¥¯¥¹ºîÀ®¤ä¥Ð¥Ã¥¯¥¢¥Ã¥×¥×¥í¥°¥é¥à¤Ç»È¤¦¤³¤È¤ò°Õ¿Þ¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤ò»È¤¦¤È¥Ç¥£¥¹¥¯¤ËÂФ¹¤ëÁàºî¤òÂçÉý¤Ë¸º¤é¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ÏÁ´¤Æ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ËÂФ·¤ÆÍ­¸ú¤Ç¤¢¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -¤½¤Î°ìÎ㤬 NFS ¤Ç¤¢¤ê¡¢¥µ¡¼¥Ð¤¬¥¢¥¯¥»¥¹»þ¹ï¤ò´ÉÍý¤·¤Æ¤¤¤ë¡£ +が実行されたときに、最終アクセス時刻 (inode の st_atime) を更新しない。 +このフラグはインデックス作成やバックアッププログラムで使うことを意図している。 +これを使うとディスクに対する操作を大幅に減らすことができる。 +このフラグは全てのファイルシステムに対して有効であるわけではない。 +その一例が NFS であり、サーバがアクセス時刻を管理している。 .\" The O_NOATIME flag also affects the treatment of st_atime .\" by mmap() and readdir(2), MTK, Dec 04. .TP .B O_NOCTTY .I pathname -¤¬Ã¼Ëö (terminal) ¥Ç¥Ð¥¤¥¹ +が端末 (terminal) デバイス \(em .BR tty (4) -»²¾È +参照 \(em -¤ò»Ø¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢¤¿¤È¤¨¤½¤Î¥×¥í¥»¥¹¤¬À©¸æüËö¤ò»ý¤Ã¤Æ¤¤¤Ê¤¯¤Æ¤â¡¢ -¥ª¡¼¥×¥ó¤·¤¿¥Õ¥¡¥¤¥ë¤ÏÀ©¸æüËö¤Ë¤Ï¤Ê¤é¤Ê¤¤¡£ +を指している場合に、たとえそのプロセスが制御端末を持っていなくても、 +オープンしたファイルは制御端末にはならない。 .TP .B O_NOFOLLOW -\fIpathname\fP ¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤À¤Ã¤¿¾ì¹ç¡¢¥ª¡¼¥×¥ó¤Ï¼ºÇÔ¤¹¤ë¡£ -¤³¤ì¤Ï FreeBSD ¤Î³ÈÄ¥¤Ç¡¢Linux ¤Ë¤Ï 2.1.126 ¤è¤êÄɲ䵤줿¡£ -pathname ¤ÎÁ°¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È (earlier component; -ÌõÃð: ºÇ¸å¤Î¥Ç¥£¥ì¥¯¥È¥ê¥»¥Ñ¥ì¡¼¥¿¤è¤êÁ°¤ÎÉôʬ) ¤¬ -¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ç¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢¤½¤ì¤¬»Ø¤¹À褬»²¾È¤µ¤ì¤ë¡£ -.\" glibc 2.0.100 °Ê¹ß¤Î¥Ø¥Ã¥À¡¼¤Ë¤Ï¤³¤Î¥Õ¥é¥°¤ÎÄêµÁ¤¬¤¢¤ë¡£ -.\" \fI2.1.126 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç»ÈÍѤ·¤¿¾ì¹ç¤Ë¤Ï̵»ë¤µ¤ì¤ë¡£\fP -.TP -.BR O_NONBLOCK " ¤Þ¤¿¤Ï " O_NDELAY -²Äǽ¤Ê¤é¤Ð¡¢¥Õ¥¡¥¤¥ë¤ÏÈóÄä»ß (nonblocking) ¥â¡¼¥É¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£ +\fIpathname\fP がシンボリック・リンクだった場合、オープンは失敗する。 +これは FreeBSD の拡張で、Linux には 2.1.126 より追加された。 +pathname の前のコンポーネント (earlier component; +訳註: 最後のディレクトリセパレータより前の部分) が +シンボリック・リンクである場合には、それが指す先が参照される。 +.\" glibc 2.0.100 以降のヘッダーにはこのフラグの定義がある。 +.\" \fI2.1.126 以前のカーネルで使用した場合には無視される。\fP +.TP +.BR O_NONBLOCK " または " O_NDELAY +可能ならば、ファイルは非停止 (nonblocking) モードでオープンされる。 .BR open () -¤â¡¢ÊÖ¤·¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ¹¤ë°Ê¸å¤Î¤¹¤Ù¤Æ¤ÎÁàºî¤â -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤òÂÔ¤¿¤»¤ë¤³¤È¤Ï¤Ê¤¤¡£ -FIFO (¥Í¡¼¥à¥É¡¦¥Ñ¥¤¥×) ¤ò°·¤¦¾ì¹ç¤Ë¤Ï +も、返したファイル・ディスクリプタに対する以後のすべての操作も +呼び出したプロセスを待たせることはない。 +FIFO (ネームド・パイプ) を扱う場合には .BR fifo (7) -¤â»²¾È¤¹¤ë¤³¤È¡£ -¶¯À©¥Õ¥¡¥¤¥ë¥í¥Ã¥¯ (mandatory file lock) ¤ä¥Õ¥¡¥¤¥ë¥ê¡¼¥¹ (file lease) -¤ÈÁȤ߹ç¤ï¤»¤¿¾ì¹ç¤Î¡¢ +も参照すること。 +強制ファイルロック (mandatory file lock) やファイルリース (file lease) +と組み合わせた場合の、 .B O_NONBLOCK -¤Î¸ú²Ì¤Ë¤Ä¤¤¤Æ¤ÎµÄÏÀ¤Ï¡¢ +の効果についての議論は、 .BR fcntl (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .TP .B O_SYNC -¥Õ¥¡¥¤¥ë¤ÏƱ´ü (synchronous) I/O ¥â¡¼¥É¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£ +ファイルは同期 (synchronous) I/O モードでオープンされる。 .BR open () -¤¬ÊÖ¤·¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ +が返したファイル・ディスクリプタに対して .BR write (2) -¤ò¹Ô¤¦¤È¡¢É¬¤º¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ò¥Ö¥í¥Ã¥¯¤·¡¢ -³ºÅö¥Ï¡¼¥É¥¦¥§¥¢¤ËʪÍýŪ¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¤Þ¤ÇÊÖ¤é¤Ê¤¤¡£ -.I °Ê²¼¤Î¡ÖÃí°Õ¡×¤Î¾Ï¤â»²¾È¡£ +を行うと、必ず呼び出したプロセスをブロックし、 +該当ハードウェアに物理的に書き込まれるまで返らない。 +.I 以下の「注意」の章も参照。 .TP .B O_TRUNC -¥Õ¥¡¥¤¥ë¤¬´û¤Ë¸ºß¤·¡¢Ä̾ï¥Õ¥¡¥¤¥ë¤Ç¤¢¤ê¡¢ -½ñ¤­¹þ¤ß²Ä¥â¡¼¥É¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë -(¤Ä¤Þ¤ê¡¢ -.BR O_RDWR "¤Þ¤¿¤Ï" O_WRONLY -¤Î) ¾ì¹ç¡¢Ä¹¤µ 0 ¤ËÀÚ¤êµÍ¤á (truncate) ¤é¤ì¤ë¡£ -¥Õ¥¡¥¤¥ë¤¬ FIFO ¤Þ¤¿¤ÏüËö¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¡¢ +ファイルが既に存在し、通常ファイルであり、 +書き込み可モードでオープンされている +(つまり、 +.BR O_RDWR "または" O_WRONLY +の) 場合、長さ 0 に切り詰め (truncate) られる。 +ファイルが FIFO または端末デバイスファイルの場合、 .B O_TRUNC -¥Õ¥é¥°¤Ï̵»ë¤µ¤ì¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢ +フラグは無視される。 +それ以外の場合、 .B O_TRUNC -¤Î¸ú²Ì¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +の効果は未定義である。 .PP -¤³¤ì¤é¤ÎÁªÂò¥Õ¥é¥°¤Î¤¤¤¯¤Ä¤«¤Ï¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤·¤¿¸å¤Ç¤â +これらの選択フラグのいくつかはファイルをオープンした後でも .BR fcntl (2) -¤ò»ÈÍѤ·¤ÆÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使用して変更することができる。 .BR creat () -¤Ï +は .I flags -¤Ë +に .B O_CREAT|O_WRONLY|O_TRUNC -¤ò»ØÄꤷ¤Æ +を指定して .BR open () -¤ò¹Ô¤¦¤Î¤ÈÅù²Á¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +を行うのと等価である。 +.SH 返り値 .BR open () -¤È +と .BR creat () -¤Ï¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹ -(¤½¤Î¾ì¹ç¤Ï +は新しいファイル・ディスクリプタを返す。 +エラーが発生した場合は \-1 を返す +(その場合は .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë)¡£ -.SH ¥¨¥é¡¼ +が適切に設定される)。 +.SH エラー .TP .B EACCES -¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ëÍ׵ᤵ¤ì¤¿¥¢¥¯¥»¥¹¤¬µö¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ +ファイルに対する要求されたアクセスが許されていないか、 .I pathname -¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤Î²¿¤ì¤«¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¸¡º÷µö²Ä¤¬¤Ê¤«¤Ã¤¿¡£ -¤Þ¤¿¤Ï¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤»¤º¡¢¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ø¤Î½ñ¤­¹þ¤ßµö²Ä¤¬¤Ê¤«¤Ã¤¿¡£ +のディレクトリ部分の何れかのディレクトリに検索許可がなかった。 +またはファイルが存在せず、親ディレクトリへの書き込み許可がなかった。 .RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È¡£) +も参照すること。) .TP .B EEXIST .I pathname -¤Ï´û¤Ë¸ºß¤·¡¢ -.BR O_CREAT " ¤È " O_EXCL -¤¬»ÈÍѤµ¤ì¤¿¡£ +は既に存在し、 +.BR O_CREAT " と " O_EXCL +が使用された。 .TP .B EFAULT .I pathname -¤Î»Ø¤¹Îΰ褬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤Ê¤¤¡£ +の指す領域がアクセス可能なアドレス空間にない。 .TP .B EFBIG .B EOVERFLOW -»²¾È¡£ +参照。 .TP .B EINTR -ÃÙ¤¤¥Ç¥Ð¥¤¥¹ -(Î㤨¤Ð FIFO¡¢ +遅いデバイス +(例えば FIFO、 .BR fifo (7) -»²¾È) ¤Î¥ª¡¼¥×¥ó¤¬´°Î»¤¹¤ë¤Î¤òÂԤäÆÄä»ß¤·¤Æ¤¤¤ë´Ö¤Ë -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¡£ +参照) のオープンが完了するのを待って停止している間に +システムコールがシグナルハンドラにより割り込まれた。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EISDIR .I pathname -¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤·¤Æ¤ª¤ê¡¢½ñ¤­¹þ¤ßÍ׵᤬´Þ¤Þ¤ì¤Æ¤¤¤¿ -(¤Ä¤Þ¤ê +はディレクトリを参照しており、書き込み要求が含まれていた +(つまり .B O_WRONLY -¤Þ¤¿¤Ï +または .B O_RDWR -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë)¡£ +が設定されている)。 .TP .B ELOOP .I pathname -¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ -¤Þ¤¿¤Ï \fBO_NOFOLLOW\fP ¤¬»ØÄꤵ¤ì¤Æ¤ª¤ê¡¢ +を解決する際に遭遇したシンボリック・リンクが多過ぎる。 +または \fBO_NOFOLLOW\fP が指定されており、 .I pathname -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤À¤Ã¤¿¡£ +がシンボリックリンクだった。 .TP .B EMFILE -¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¿ô¤¬¤¹¤Ç¤ËºÇÂç¿ô¤Ë㤷¤Æ¤¤¤ë¡£ +プロセスがオープンしているファイル数がすでに最大数に達している。 .TP .B ENAMETOOLONG .I pathname -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENFILE -¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¤Î¹ç·×¿ô¤¬¥·¥¹¥Æ¥àÀ©¸Â¤Ë㤷¤Æ¤¤¤ë¡£ +オープンできるファイルの合計数がシステム制限に達している。 .TP .B ENODEV .I pathname -¤¬¥Ç¥Ð¥¤¥¹¡¦¥¹¥Ú¥·¥ã¥ë¡¦¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤ª¤ê¡¢Âбþ¤¹¤ë¥Ç¥Ð¥¤¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£ -(¤³¤ì¤Ï Linux ¥«¡¼¥Í¥ë¤Î¥Ð¥°¤Ç¤¢¤ê¡¢¤³¤Î¾ì¹ç¤Ë¤Ï +がデバイス・スペシャル・ファイルを参照しており、対応するデバイスが存在しない。 +(これは Linux カーネルのバグであり、この場合には .B ENXIO -¤¬ÊÖ¤µ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë) +が返されるべきである) .TP .B ENOENT .B O_CREAT -¤¬ÀßÄꤵ¤ì¤Æ¤ª¤é¤º¡¢¤«¤Ä»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢ +が設定されておらず、かつ指定されたファイルが存在しない。 +または、 .I pathname -¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬Â¸ºß¤·¤Ê¤¤¤«²õ¤ì¤¿ (dangling) ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ç¤¢¤ë¡£ +のディレクトリ部分が存在しないか壊れた (dangling) シンボリック・リンクである。 .TP .B ENOMEM -¥«¡¼¥Í¥ë¤ËÍøÍѤǤ­¤ë¥á¥â¥ê¤¬ÉÔ­¤·¤Æ¤¤¤ë +カーネルに利用できるメモリが不足している .TP .B ENOSPC .I pathname -¤òºîÀ®¤¹¤ëɬÍפ¬¤¢¤ë¤¬¡¢ +を作成する必要があるが、 .I pathname -¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥Ð¥¤¥¹¤Ë¿·¤·¤¤¥Õ¥¡¥¤¥ë¤Î¤¿¤á¤Î¶õ¤­ÍÆÎ̤¬¤Ê¤¤¡£ +を含んでいるデバイスに新しいファイルのための空き容量がない。 .TP .B ENOTDIR .I pathname -¤Ë´Þ¤Þ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤Î¤É¤ì¤«¤¬¼ÂºÝ¤Ë¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ -¤Þ¤¿¤Ï \fBO_DIRECTORY\fP ¤¬»ØÄꤵ¤ì¤Æ¤ª¤ê¡¢ +に含まれるディレクトリ部分のどれかが実際にはディレクトリでない。 +または \fBO_DIRECTORY\fP が指定されており、 .I pathname -¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +がディレクトリでない。 .TP .B ENXIO .BR O_NONBLOCK " | " O_WRONLY -¤¬ÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤¬ FIFO ¤Ç -¤½¤Î¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢¥Õ¥¡¥¤¥ë¤¬¥Ç¥Ð¥¤¥¹¡¦¥¹¥Ú¥·¥ã¥ë¡¦¥Õ¥¡¥¤¥ë¤Ç -Âбþ¤¹¤ë¥Ç¥Ð¥¤¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£ +が設定されており、指定したファイルが FIFO で +そのファイルを読み込みのためにオープンしているプロセスが存在しない。 +または、ファイルがデバイス・スペシャル・ファイルで +対応するデバイスが存在しない。 .TP .B EOVERFLOW .I pathname -¤¬»²¾È¤·¤Æ¤¤¤ë¤Î¤¬¡¢Â礭²á¤®¤Æ¥ª¡¼¥×¥ó¤Ç¤­¤Ê¤¤Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ -Ä̾¤³¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤Ï¡¢32 ¥Ó¥Ã¥È¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¾å¤Ç +が参照しているのが、大き過ぎてオープンできない通常のファイルである。 +通常、このエラーが発生するは、32 ビットプラットフォーム上で .I -D_FILE_OFFSET_BITS=64 -¤ò»ØÄꤻ¤º¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¡¢¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤¬ +を指定せずにコンパイルされたアプリケーションが、ファイルサイズが .I (2<31)-1 -¥Ó¥Ã¥È¤òĶ¤¨¤ë¥Õ¥¡¥¤¥ë¤ò³«¤³¤¦¤È¤·¤¿¾ì¹ç¤Ç¤¢¤ë¡£ -¾åµ­¤Î +ビットを超えるファイルを開こうとした場合である。 +上記の .B O_LARGEFILE -¤â»²¾È¡£ -¤³¤ì¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ç¤¢¤ë¡£ -2.6.24 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢Linux ¤Ï¤³¤Î¾ì¹ç¤Ë¥¨¥é¡¼ +も参照。 +これは POSIX.1-2001 で規定されているエラーである。 +2.6.24 より前のカーネルでは、Linux はこの場合にエラー .B EFBIG -¤òÊÖ¤·¤Æ¤¤¤¿¡£ +を返していた。 .\" See http://bugzilla.kernel.org/show_bug.cgi?id=7253 .\" "Open of a large file on 32-bit fails with EFBIG, should be EOVERFLOW" .\" Reported 2006-10-03 .TP .B EPERM .B O_NOATIME -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ -.\" ¸·Ì©¤Ë¸À¤¨¤Ð¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID...(MTK) -¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤È°ìÃפ»¤º¡¢¤«¤Ä¸Æ¤Ó½Ð¤·¸µ¤ËÆø¢ +フラグが指定されたが、呼び出し元の実効ユーザー ID が +.\" 厳密に言えば、呼び出し元のファイルシステム UID...(MTK) +ファイルの所有者と一致せず、かつ呼び出し元に特権 .RB ( CAP_FOWNER ) -¤¬¤Ê¤¤¡£ +がない。 .TP .B EROFS .I pathname -¤¬Æɤ߹þ¤ßÀìÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤ª¤ê¡¢ -½ñ¤­¹þ¤ß¥¢¥¯¥»¥¹¤¬Í׵ᤵ¤ì¤¿¡£ +が読み込み専用のファイルシステム上のファイルを参照しており、 +書き込みアクセスが要求された。 .TP .B ETXTBSY .I pathname -¤¬¸½ºß¼Â¹ÔÃæ¤Î¼Â¹Ô¥¤¥á¡¼¥¸¤ò»²¾È¤·¤Æ¤ª¤ê¡¢½ñ¤­¹þ¤ß¤¬Í׵ᤵ¤ì¤¿¡£ +が現在実行中の実行イメージを参照しており、書き込みが要求された。 .TP .B EWOULDBLOCK .B O_NONBLOCK -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤Ë¤ÏÌ·½â¤¹¤ë¥ê¡¼¥¹¤¬ÀßÄꤵ¤ì¤Æ¤¤¤¿ +フラグが指定されたが、そのファイルには矛盾するリースが設定されていた .RB ( fcntl (2) -»²¾È)¡£ -.SH ½àµò +参照)。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -¥Õ¥é¥° +フラグ .BR O_DIRECTORY , .BR O_NOATIME , .B O_NOFOLLOW -¤Ï Linux ÆÃÍ­¤Î¤â¤Î¤Ç¤¢¤ê¡¢ -¤³¤ì¤é¤Î¥Õ¥é¥°¤ÎÄêµÁ¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡¢ -(¡Ö¤É¤Î¡×¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤è¤ê¤âÁ°¤Ë) +は Linux 特有のものであり、 +これらのフラグの定義を得るためには、 +(「どの」ヘッダファイルをインクルードするよりも前に) .B _GNU_SOURCE -¤òÄêµÁ¤¹¤ëɬÍפ¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +を定義する必要があるかもしれない。 .BR O_CLOEXEC -¥Õ¥é¥°¤Ï POSIX.1-2001 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -POSIX.1-2008 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +フラグは POSIX.1-2001 では規定されていないが、 +POSIX.1-2008 で規定されている。 .B O_DIRECT -¤Ï POSIX ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +は POSIX では規定されていない。 .B O_DIRECT -¤ÎÄêµÁ¤òÆÀ¤ë¤Ë¤Ï -(¡Ö¤É¤Î¡×¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤è¤ê¤âÁ°¤Ë) +の定義を得るには +(「どの」ヘッダファイルをインクルードするよりも前に) .B _GNU_SOURCE -¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH Ãí°Õ -Linux ¤Ç¤Ï¡¢ +を定義しなければならない。 +.SH 注意 +Linux では、 .B O_NONBLOCK -¥Õ¥é¥°¤Ï¡¢ -open ¤ò¼Â¹Ô¤·¤¿¤¤¤¬ read ¤Þ¤¿¤Ï write ¤ò¼Â¹Ô¤¹¤ë°Õ¿Þ¤Ï -ɬ¤º¤·¤â¤Ê¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -¤³¤ì¤Ï +フラグは、 +open を実行したいが read または write を実行する意図は +必ずしもないことを意味する。 +これは .BR ioctl (2) -¤Î¤¿¤á¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Ë¡¢ -¥Ç¥Ð¥¤¥¹¤ò¥ª¡¼¥×¥ó¤¹¤ë¤È¤­¤Ë¤è¤¯ÍѤ¤¤é¤ì¤ë¡£ +のためのファイルディスクリプタを取得するために、 +デバイスをオープンするときによく用いられる。 -¡Ö¥¢¥¯¥»¥¹¥â¡¼¥É¡×¤ÎÃÍ +「アクセスモード」の値 .BR O_RDONLY ", " O_WRONLY ", " O_RDWR -¤Ï¡¢ +は、 .I flags -¤Ë»ØÄê¤Ç¤­¤ë¾¤ÎÃͤȰ㤤¡¢¸Ä¡¹¤Î¥Ó¥Ã¥È¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢ -¤³¤ì¤é¤ÎÃÍ¤Ï +に指定できる他の値と違い、個々のビットを指定するものではなく、 +これらの値は .I flags -¤Î²¼°Ì 2 ¥Ó¥Ã¥È¤òÄêµÁ¤¹¤ë¡£ +の下位 2 ビットを定義する。 .BR O_RDONLY ", " O_WRONLY ", " O_RDWR -¤Ï¤½¤ì¤¾¤ì 0, 1, 2 ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¸À¤¤´¹¤¨¤ë¤È¡¢ +はそれぞれ 0, 1, 2 に定義されている。 +言い換えると、 .B "O_RDONLY | O_WRONLY" -¤ÎÁȤ߹ç¤ï¤»¤ÏÏÀÍýŪ¤Ë´Ö°ã¤¤¤Ç¤¢¤ê¡¢³Î¤«¤Ë +の組み合わせは論理的に間違いであり、確かに .B O_RDWR -¤ÈƱ¤¸°ÕÌ£¤Ç¤Ï¤Ê¤¤¡£ -Linux ¤Ç¤Ï¡¢ÆÃÊ̤ʡ¢Èóɸ½à¤Ê¥¢¥¯¥»¥¹¥â¡¼¥É¤È¤·¤Æ 3 (¥Ð¥¤¥Ê¥ê¤Ç¤Ï 11) ¤¬ -ͽÌ󤵤ì¤Æ¤ª¤ê +と同じ意味ではない。 +Linux では、特別な、非標準なアクセスモードとして 3 (バイナリでは 11) が +予約されており .I flags -¤Ë»ØÄê¤Ç¤­¤ë¡£ -¤³¤Î¥¢¥¯¥»¥¹¥â¡¼¥É¤ò»ØÄꤹ¤ë¤È¡¢¥Õ¥¡¥¤¥ë¤ÎÆɤ߽Ф·/½ñ¤­¹þ¤ßµö²Ä¤ò¥Á¥§¥Ã¥¯¤·¡¢ -Æɤ߽Ф·¤Ë¤â½ñ¤­¹þ¤ß¤Ë¤â»ÈÍѤǤ­¤Ê¤¤¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¤³¤ÎÈóɸ½à¤Î¥¢¥¯¥»¥¹¥â¡¼¥É¤Ï¤¤¤¯¤Ä¤«¤Î Linux ¥É¥é¥¤¥Ð¤Ç»ÈÍѤµ¤ì¤Æ¤ª¤ê¡¢ -¥Ç¥Ð¥¤¥¹¸ÇÍ­¤Î +に指定できる。 +このアクセスモードを指定すると、ファイルの読み出し/書き込み許可をチェックし、 +読み出しにも書き込みにも使用できないディスクリプタを返す。 +この非標準のアクセスモードはいくつかの Linux ドライバで使用されており、 +デバイス固有の .BR ioctl (2) -Áàºî¤Ë¤Î¤ß»ÈÍѤµ¤ì¤ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¤¿¤á¤Ë»È¤ï¤ì¤Æ¤¤¤ë¡£ +操作にのみ使用されるディスクリプタを返すために使われている。 .\" See for example util-linux's disk-utils/setfdprm.c .\" For some background on access mode 3, see .\" http://thread.gmane.org/gmane.linux.kernel/653123 @@ -710,8 +710,8 @@ Linux .\" LKML, 12 Mar 2008 .LP .B O_RDONLY | O_TRUNC -¤Î±Æ¶Á¤Ï̤ÄêµÁ¤Ç¤¢¤ê¡¢¤½¤ÎÆ°ºî¤Ï¼ÂÁõ¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¡£ -¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¥Õ¥¡¥¤¥ë¤Ï¼ÂºÝ¤ËÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ +の影響は未定義であり、その動作は実装によって異なる。 +多くのシステムではファイルは実際に切り詰められる。 .\" Linux 2.0, 2.5: truncate .\" Solaris 5.7, 5.8: truncate .\" Irix 6.5: truncate @@ -719,186 +719,186 @@ Linux .\" HP-UX 11.22: truncate .\" FreeBSD 4.7: truncate .PP -NFS ¤ò¼Â¸½¤·¤Æ¤¤¤ë¥×¥í¥È¥³¥ë¤Ë¤Ï¿¤¯¤ÎÉÔÈ÷¤¬¤¢¤ê¡¢ÆÃ¤Ë -.BR O_SYNC " ¤È " O_NDELAY -¤Ë±Æ¶Á¤¹¤ë¡£ +NFS を実現しているプロトコルには多くの不備があり、特に +.BR O_SYNC " と " O_NDELAY +に影響する。 -POSIX ¤Ç¤Ï¡¢3 ¼ïÎà¤ÎƱ´ü I/O ¤¬Ä󶡤µ¤ì¤Æ¤ª¤ê¡¢ +POSIX では、3 種類の同期 I/O が提供されており、 .BR O_SYNC , .BR O_DSYNC , .BR O_RSYNC -¥Õ¥é¥°¤¬¤³¤ì¤ËÂбþ¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -º£¤Î¤È¤³¤í (¥«¡¼¥Í¥ë 2.6.31)¡¢ -Linux ¤Ç¤Ï +フラグがこれに対応するものである。 +今のところ (カーネル 2.6.31)、 +Linux では .B O_SYNC -¤À¤±¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -glibc ¤Ï +だけが実装されているが、 +glibc は .B O_DSYNC -¤È +と .B O_RSYNC -¤Ë +に .B O_SYNC -¤ÈƱ¤¸¿ôÃͤò³ä¤êÅö¤Æ¤Æ¤¤¤ë¡£ -¤Û¤È¤ó¤É¤Î Linux ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï¡¢¼ÂºÝ¤Ë¤Ï POSIX ¤Î +と同じ数値を割り当てている。 +ほとんどの Linux のファイルシステムは、実際には POSIX の .B O_SYNC -¤ÎÆ°ºî¤Ç¤Ï¤Ê¤¯ +の動作ではなく .B O_DSYNC -¤ÎÆ°ºî¤À¤±¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¡£ -POSIX ¤Î +の動作だけを実装している。 +POSIX の .B O_SYNC -¤Ç¤Ï¡¢ +では、 .BR open () -¤¬¥æ¡¼¥¶¶õ´Ö¤ËÊÖ¤ëºÝ¤Ë¡¢½ñ¤­¹þ¤ß¤Ë´Ø¤¹¤ëÁ´¤Æ¤Î¥á¥¿¥Ç¡¼¥¿¤Î -¹¹¿·¤¬¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤Þ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ -°ìÊý¡¢ +がユーザ空間に返る際に、書き込みに関する全てのメタデータの +更新がディスクに書き込まれている必要がある。 +一方、 .B O_DSYNC -¤Ç¤Ï¡¢ +では、 .BR open () -¤¬ÊÖ¤ë¤Þ¤Ç¤Ë¡¢¼ÂºÝ¤Î¥Õ¥¡¥¤¥ë¤Î¥Ç¡¼¥¿¤È¤½¤Î¥Ç¡¼¥¿¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Ë -ɬÍפʥ᥿¥Ç¡¼¥¿¤À¤±¤¬¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤Þ¤ì¤Æ¤¤¤ì¤Ð¤è¤¤¡£ +が返るまでに、実際のファイルのデータとそのデータを取得するために +必要なメタデータだけがディスクに書き込まれていればよい。 .BR open () -¤Ï¥¹¥Ú¥·¥ã¥ë¡¦¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤¬¡¢ +はスペシャル・ファイルをオープンすることができるが、 .BR creat () -¤Ç¥¹¥Ú¥·¥ã¥ë¡¦¥Õ¥¡¥¤¥ë¤òºîÀ®¤Ç¤­¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -Âå¤ï¤ê¤Ë +でスペシャル・ファイルを作成できない点に注意すること。 +代わりに .BR mknod (2) -¤ò»ÈÍѤ¹¤ë¡£ +を使用する。 .LP -UID ¥Þ¥Ã¥Ô¥ó¥°¤ò»ÈÍѤ·¤Æ¤¤¤ë NFS ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +UID マッピングを使用している NFS ファイル・システムでは、 .BR open () -¤¬¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤·¤¿¾ì¹ç¤Ç¤â +がファイル・ディスクリプタを返した場合でも .BR read (2) -¤¬ \fBEACCES\fP ¤ÇµñÈݤµ¤ì¤ë¾ì¹ç¤¬¤¢¤ë¡£ -¤³¤ì¤Ï¥¯¥é¥¤¥¢¥ó¥È¤¬¥¢¥¯¥»¥¹µö²Ä¤Î¥Á¥§¥Ã¥¯¤ò¹Ô¤Ã¤Æ +が \fBEACCES\fP で拒否される場合がある。 +これはクライアントがアクセス許可のチェックを行って .BR open () -¤ò¼Â¹Ô¤¹¤ë¤¬¡¢Æɤ߹þ¤ß¤ä½ñ¤­¹þ¤ß¤ÎºÝ¤Ë¤Ï -¥µ¡¼¥Ð¡¼¤Ç UID ¥Þ¥Ã¥Ô¥ó¥°¤¬¹Ô¤ï¤ì¤ë¤¿¤á¤Ç¤¢¤ë¡£ +を実行するが、読み込みや書き込みの際には +サーバーで UID マッピングが行われるためである。 -¥Õ¥¡¥¤¥ë¤¬¿·¤·¤¯ºîÀ®¤µ¤ì¤ë¤È¡¢ -¥Õ¥¡¥¤¥ë¤Î +ファイルが新しく作成されると、 +ファイルの .IR st_atime , .IR st_ctime , .I st_mtime -¥Õ¥£¡¼¥ë¥É -(¤½¤ì¤¾¤ìºÇ½ª¥¢¥¯¥»¥¹»þ¹ï¡¢ºÇ½ª¾õÂÖÊѹ¹»þ¹ï¡¢ºÇ½ª½¤Àµ»þ¹ï¤Ç¤¢¤ë¡£ +フィールド +(それぞれ最終アクセス時刻、最終状態変更時刻、最終修正時刻である。 .BR stat (2) -»²¾È) ¤¬¸½ºß»þ¹ï¤ËÀßÄꤵ¤ì¤ë¡£ -¤µ¤é¤Ë¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Î +参照) が現在時刻に設定される。 +さらに親ディレクトリの .I st_ctime -¤È +と .I st_mtime -¤â¸½ºß»þ¹ï¤ËÀßÄꤵ¤ì¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ç¡¢O_TRUNC ¥Õ¥é¥°¤Ç¥Õ¥¡¥¤¥ë¤¬½¤Àµ¤µ¤ì¤¿¤È¤­¤Ï¡¢ -¥Õ¥¡¥¤¥ë¤Î +も現在時刻に設定される。 +それ以外の場合で、O_TRUNC フラグでファイルが修正されたときは、 +ファイルの .I st_ctime -¤È +と .I st_mtime -¥Õ¥£¡¼¥ë¥É¤¬¸½ºß»þ¹ï¤ËÀßÄꤵ¤ì¤ë¡£ +フィールドが現在時刻に設定される。 .SS O_DIRECT .LP .B O_DIRECT -¥Õ¥é¥°¤ò»ÈÍѤ¹¤ë¾ì¹ç¡¢¥æ¡¼¥¶¶õ´Ö¥Ð¥Ã¥Õ¥¡¤ÎŤµ¤ä¥¢¥É¥ì¥¹¡¢ -I/O ¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤Ë´Ø¤·¤Æ¥¢¥é¥¤¥ó¥á¥ó¥È¤ÎÀ©¸Â¤¬²Ý¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ -Linux ¤Ç¤Ï¡¢¥¢¥é¥¤¥ó¥á¥ó¥È¤ÎÀ©¸Â¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ä¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë -¤è¤Ã¤Æ°Û¤Ê¤ê¡¢Á´¤¯À©¸Â¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤â¤¢¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢¸½ºß¤Î¤È¤³¤í¡¢»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ä¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ËÂФ·¤Æ -¤³¤¦¤·¤¿À©¸Â¤¬¤¢¤ë¤«¤ò¸«¤Ä¤±¤ë¤¿¤á¤Î¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¸þ¤±¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ç -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÈó°Í¸¤Î¤â¤Î¤Ï¸ºß¤·¤Ê¤¤¡£ -¤¤¤¯¤Ä¤«¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢À©¸Â¤ò³Îǧ¤¹¤ë¤¿¤á¤ÎÆȼ«¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¬ -Ä󶡤µ¤ì¤Æ¤¤¤ë¡£Î㤨¤Ð¡¢ +フラグを使用する場合、ユーザ空間バッファの長さやアドレス、 +I/O のファイルオフセットに関してアラインメントの制限が課されることがある。 +Linux では、アラインメントの制限はファイルシステムやカーネルのバージョンに +よって異なり、全く制限が存在しない場合もある。 +しかしながら、現在のところ、指定されたファイルやファイルシステムに対して +こうした制限があるかを見つけるための、アプリケーション向けのインタフェースで +ファイルシステム非依存のものは存在しない。 +いくつかのファイルシステムでは、制限を確認するための独自のインタフェースが +提供されている。例えば、 .BR xfsctl (3) -¤Î +の .B XFS_IOC_DIOINFO -Ì¿Îá¤Ç¤¢¤ë¡£ +命令である。 .LP -Linux 2.4 ¤Ç¤Ï¡¢Å¾Á÷¥µ¥¤¥º¡¢ -¥æ¡¼¥¶¡¼¥Ð¥Ã¥Õ¥¡¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¡¢¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤Ï¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÏÀÍý¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ÎÇÜ¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Linux 2.6 ¤Ç¤Ï¡¢512 ¥Ð¥¤¥È¤´¤È¤Î¶­³¦¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤ì¤Ð½¼Ê¬¤Ç¤¢¤ë¡£ +Linux 2.4 では、転送サイズ、 +ユーザーバッファのアラインメント、ファイルオフセットは、 +ファイルシステムの論理ブロックサイズの倍数でなければならない。 +Linux 2.6 では、512 バイトごとの境界に配置されていれば充分である。 .LP .B O_DIRECT -¥Õ¥é¥°¤Ï SGI IRIX ¤ÇƳÆþ¤µ¤ì¤¿¡£SGI IRIX ¤Ë¤â Linux 2.4 ¤ÈƱÍͤΠ-(¥æ¡¼¥¶¡¼¥Ð¥Ã¥Õ¥¡¤Î) ¥¢¥é¥¤¥ó¥á¥ó¥È¤ÎÀ©¸Â¤¬¤¢¤ë¡£ -¤Þ¤¿¡¢IRIX ¤Ë¤ÏŬÀÚ¤ÊÇÛÃ֤ȥµ¥¤¥º¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Î +フラグは SGI IRIX で導入された。SGI IRIX にも Linux 2.4 と同様の +(ユーザーバッファの) アラインメントの制限がある。 +また、IRIX には適切な配置とサイズを取得するための .BR fcntl (2) -¥³¡¼¥ë¤¬¤¢¤ë¡£ -FreeBSD 4.x ¤âƱ¤¸Ì¾Á°¤Î¥Õ¥é¥°¤òƳÆþ¤·¤¿¤¬¡¢¥¢¥é¥¤¥ó¥á¥ó¥È¤ÎÀ©¸Â¤Ï¤Ê¤¤¡£ +コールがある。 +FreeBSD 4.x も同じ名前のフラグを導入したが、アラインメントの制限はない。 .LP .B O_DIRECT -¤¬ Linux ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤¿¤Î¤Ï¡¢¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó 2.4.10 ¤Ç¤¢¤ë¡£ -¸Å¤¤ Linux ¥«¡¼¥Í¥ë¤Ï¡¢¤³¤Î¥Õ¥é¥°¤òñ¤Ë̵»ë¤¹¤ë¡£ +が Linux でサポートされたのは、カーネルバージョン 2.4.10 である。 +古い Linux カーネルは、このフラグを単に無視する。 .B O_DIRECT -¥Õ¥é¥°¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤â¤¢¤ê¡¢¤½¤Î¾ì¹ç¤Ï¡¢ +フラグをサポートしていないファイルシステムもあり、その場合は、 .B O_DIRECT -¤ò»ÈÍѤ¹¤ë¤È +を使用すると .BR open () -¤Ï +は .B EINVAL -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .LP -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢Æ±¤¸¥Õ¥¡¥¤¥ë¡¢ -ÆäËƱ¤¸¥Õ¥¡¥¤¥ë¤Î½ÅÊ£¤¹¤ë¥Ð¥¤¥ÈÎΰè¤ËÂФ·¤Æ¡¢ +アプリケーションは、同じファイル、 +特に同じファイルの重複するバイト領域に対して、 .B O_DIRECT -¤ÈÄ̾ï¤Î I/O ¤òº®¤¼¤Æ»È¤¦¤Î¤ÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¤³¤Î¤è¤¦¤Ê¾õ¶·¤Ë¤ª¤¤¤Æ°ì´ÓÀ­¤ÎÌäÂê¤òÀµ¤·¤¯ -°·¤¦¤³¤È¤¬¤Ç¤­¤ë¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢Á´ÂΤΠI/O ¥¹¥ë¡¼¥×¥Ã¥È¤Ï -¤É¤Á¤é¤«°ìÊý¤ò»ÈÍѤ¹¤ë¤È¤­¤ÈÈæ¤Ù¤ÆÄ㮤ˤʤë¤Ç¤¢¤í¤¦¡£ -ƱÍͤˡ¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢Æ±¤¸¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ +と通常の I/O を混ぜて使うのは避けるべきである。 +ファイルシステムがこのような状況において一貫性の問題を正しく +扱うことができる場合であっても、全体の I/O スループットは +どちらか一方を使用するときと比べて低速になるであろう。 +同様に、アプリケーションは、同じファイルに対して .BR mmap (2) -¤ÈľÀÜ I/O +と直接 I/O .RB ( O_DIRECT ) -¤òº®¤¼¤Æ»È¤¦¤Î¤âÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +を混ぜて使うのも避けるべきである。 .LP -NFS ¤Ç +NFS で .B O_DIRECT -¤ò»È¤Ã¤¿¾ì¹ç¤ÎÆ°ºî¤Ï¥í¡¼¥«¥ë¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¾ì¹ç¤È°ã¤¦¡£ -¸Å¤¤¥«¡¼¥Í¥ë¤ä¡¢¤¢¤ë¼ï¤ÎÀßÄê¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥«¡¼¥Í¥ë¤Ï¡¢ +を使った場合の動作はローカルのファイルシステムの場合と違う。 +古いカーネルや、ある種の設定でコンパイルされたカーネルは、 .B O_DIRECT -¤È NFS ¤ÎÁȤ߹ç¤ï¤»¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -NFS ¥×¥í¥È¥³¥ë¼«ÂΤϥµ¡¼¥Ð¤Ë¥Õ¥é¥°¤òÅϤ¹µ¡Ç½¤Ï»ý¤Ã¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢ +と NFS の組み合わせをサポートしていないかもしれない。 +NFS プロトコル自体はサーバにフラグを渡す機能は持っていないので、 .B O_DIRECT -I/O ¤Ï¥¯¥é¥¤¥¢¥ó¥È¾å¤Î¥Ú¡¼¥¸¥­¥ã¥Ã¥·¥å¤ò¥Ð¥¤¥Ñ¥¹¤¹¤ë¤À¤±¤Ë¤Ê¤ê¡¢ -¥µ¡¼¥Ð¤Ï I/O ¤ò¥­¥ã¥Ã¥·¥å¤·¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¥¯¥é¥¤¥¢¥ó¥È¤Ï¡¢ +I/O はクライアント上のページキャッシュをバイパスするだけになり、 +サーバは I/O をキャッシュしているかもしれない。 +クライアントは、 .B O_DIRECT -¤ÎƱ´üµ¡¹½¤òÊÝ»ý¤¹¤ë¤¿¤á¡¢¥µ¡¼¥Ð¤ËÂФ·¤Æ I/O ¤òƱ´ü¤·¤Æ¹Ô¤¦¤è¤¦¤Ë°ÍÍꤹ¤ë¡£ -¥µ¡¼¥Ð¤Ë¤è¤Ã¤Æ¤Ï¡¢¤³¤¦¤·¤¿¾õ¶·²¼¡¢ÆÃ¤Ë I/O ¥µ¥¤¥º¤¬¾®¤µ¤¤¾ì¹ç¤Ë -À­Ç½¤¬Â礭¤¯Îô²½¤¹¤ë¡£ -¤Þ¤¿¡¢¥µ¡¼¥Ð¤Ë¤è¤Ã¤Æ¤Ï¡¢I/O ¤¬°ÂÄꤷ¤¿¥¹¥È¥ì¡¼¥¸¤Ë¤Þ¤Ç¹Ô¤ï¤ì¤¿¤È¡¢ -¥¯¥é¥¤¥¢¥ó¥È¤ËÂФ·¤Æ±³¤ò¤Ä¤¯¤â¤Î¤â¤¢¤ë¡£ -¤³¤ì¤Ï¡¢¥µ¡¼¥Ð¤ÎÅŸ»¸Î¾ã¤¬µ¯¤³¤Ã¤¿ºÝ¤Ë¥Ç¡¼¥¿¤Î´°Á´À­¤¬Êݤ¿¤ì¤Ê¤¤ -´í¸±¤Ï¾¯¤·¤¢¤ë¤¬¡¢À­Ç½Ì̤ǤÎÉÔÍø¤Ê¾ò·ï¤ò²óÈò¤¹¤ë¤¿¤á¤Ë¹Ô¤ï¤ì¤Æ¤¤¤ë¡£ -Linux ¤Î NFS ¥¯¥é¥¤¥¢¥ó¥È¤Ç¤Ï +の同期機構を保持するため、サーバに対して I/O を同期して行うように依頼する。 +サーバによっては、こうした状況下、特に I/O サイズが小さい場合に +性能が大きく劣化する。 +また、サーバによっては、I/O が安定したストレージにまで行われたと、 +クライアントに対して嘘をつくものもある。 +これは、サーバの電源故障が起こった際にデータの完全性が保たれない +危険は少しあるが、性能面での不利な条件を回避するために行われている。 +Linux の NFS クライアントでは .B O_DIRECT I/O -¤Ç¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤ÎÀ©¸Â¤Ï¤Ê¤¤¡£ +でのアラインメントの制限はない。 .PP -¤Þ¤È¤á¤ë¤È¡¢ +まとめると、 .B O_DIRECT -¤Ï¡¢Ãí°Õ¤·¤Æ»È¤¦¤Ù¤­¤Ç¤¢¤ë¤¬¡¢¶¯ÎϤʥġ¼¥ë¤È¤Ê¤ë²ÄǽÀ­¤ò»ý¤Ã¤Æ¤¤¤ë¡£ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï +は、注意して使うべきであるが、強力なツールとなる可能性を持っている。 +アプリケーションは .B O_DIRECT -¤ò¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ëÀ­Ç½¸þ¾å¤Î¤¿¤á¤Î¥ª¥×¥·¥ç¥ó¤È -¹Í¤¨¤Æ¤ª¤¯¤Î¤¬¤è¤¤¤Ç¤¢¤í¤¦¡£ +をデフォルトでは無効になっている性能向上のためのオプションと +考えておくのがよいであろう。 .PP .RS -¡ÖO_DIRECT ¤Ç¤¤¤Ä¤âº¤¤ë¤Î¤Ï¡¢¥¤¥ó¥¿¥Õ¥§¡¼¥¹Á´Éô¤¬ËÜÅö¤Ë¤ªÇϼ¯¤ÊÅÀ¤À¡£ -¤¿¤Ö¤ó´í¤Ê¤¤¥Þ¥¤¥ó¥É¥³¥ó¥È¥í¡¼¥ëºÞ¤Ç -Ƭ¤¬¤ª¤«¤·¤¯¤Ê¤Ã¤¿¥µ¥ë¤¬À߷פ·¤¿¤ó¤¸¤ã¤Ê¤¤¤«¤Ê¡× \(em Linus +「O_DIRECT でいつも困るのは、インタフェース全部が本当にお馬鹿な点だ。 +たぶん危ないマインドコントロール剤で +頭がおかしくなったサルが設計したんじゃないかな」 \(em Linus .RE -.SH ¥Ð¥° -¸½ºß¤Î¤È¤³¤í¡¢ +.SH バグ +現在のところ、 .BR open () -¤Î¸Æ¤Ó½Ð¤·»þ¤Ë +の呼び出し時に .B O_ASYNC -¤ò»ØÄꤷ¤Æ¥·¥°¥Ê¥ë¶îÆ° I/O ¤òÍ­¸ú¤Ë¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -¤³¤Î¥Õ¥é¥°¤òÍ­¸ú¤Ë¤¹¤ë¤Ë¤Ï +を指定してシグナル駆動 I/O を有効にすることはできない。 +このフラグを有効にするには .BR fcntl (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +を使用すること。 .\" FIXME . Check bugzilla report on open(O_ASYNC) .\" See http://bugzilla.kernel.org/show_bug.cgi?id=5993 -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chmod (2), .BR chown (2), .BR close (2), diff --git a/release/man2/openat.2 b/release/man2/openat.2 index 5da8e950..75068f30 100644 --- a/release/man2/openat.2 +++ b/release/man2/openat.2 @@ -27,9 +27,9 @@ .\" Translated 2006-09-27 by Yuichi SATO , LDP v2.39 .\" .TH OPENAT 2 2009-12-13 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -openat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÁêÂÐŪ¤Ê°ÌÃ֤ˤ¢¤ë¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë -.SH ½ñ¼° +.SH 名前 +openat \- ディレクトリファイルディスクリプタから相対的な位置にあるファイルをオープンする +.SH 書式 .nf .B #include .sp @@ -39,9 +39,9 @@ openat \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR openat (): @@ -49,75 +49,75 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR openat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë°ã¤¤¤¬¤¢¤ë°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明している違いがある以外は、 .BR open (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .I pathname -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パスである場合、 +ファイルディスクリプタ .I dirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( open (2) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤Î -ÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスのカレントワーキングディレクトリからの +相対パスとなる)。 .I pathname -¤¬ÁêÂХѥ¹¤Ç¤¢¤ê¡¢¤«¤Ä +が相対パスであり、かつ .I dirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I pathname -¤Ï +は .RB ( open (2) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .I pathname -¤¬ÀäÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ +が絶対パスである場合、 .I dirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +は無視される。 +.SH 返り値 +成功した場合、 .BR openat () -¤Ï¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +は新しいファイルディスクリプタを返す。 +エラーの場合、\-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +にはエラーを示す値が設定される。 +.SH エラー .BR open (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR openat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .BR openat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .I dirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B ENOTDIR .I pathname -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I dirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 +.SH バージョン .BR openat () -¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ -.SH ½àµò +は Linux カーネル 2.6.16 で追加された。 +.SH 準拠 POSIX.1-2008. -Solaris ¤Ë¤Ï¡¢¤³¤ì¤ÈƱ¤¸¤è¤¦¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Â¸ºß¤¹¤ë¡£ +Solaris には、これと同じようなシステムコールが存在する。 .\" The 'at' suffix in Solaris is actually double sensed. It .\" primarily referred to "extended *at*tributes", which are .\" handled by Solaris' O_XATTR flag, but was also intended @@ -130,38 +130,38 @@ Solaris .\" From: Don Cragun .\" Date: Tue, 14 Feb 2006 14:56:50 -0800 (PST) .\" -.SH Ãí°Õ +.SH 注意 .BR openat () -¤ä "at" ¤¬¸å¤í¤ËÉÕ¤¤¤¿¤½¤Î¾¤ÎƱÍͤΥ·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ -2 ¤Ä¤ÎÍýͳ¤Ë¤è¤êÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +や "at" が後ろに付いたその他の同様のシステムコールは、 +2 つの理由により提供されている。 -1 ¤ÄÌܤÎÍýͳ¤Ï¡¢ -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë·²¤ò +1 つ目の理由は、 +カレントワーキングディレクトリ以外のディレクトリにあるファイル群を .BR open (2) -¤Ç¥ª¡¼¥×¥ó¤¹¤ë¤È¤­¤Ëµ¯¤³¤ë²ÄǽÀ­¤¬¤¢¤ë¶¥¹ç¾õÂÖ (race condition) ¤ò¡¢ +でオープンするときに起こる可能性がある競合状態 (race condition) を、 .BR openat () -¤Ë¤è¤Ã¤Æ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬²óÈò¤Ç¤­¤ë¤¿¤á¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î¶¥¹ç¾õÂ֤ϡ¢ +によってアプリケーションが回避できるためである。 +これらの競合状態は、 .BR open (2) -¤Ë»ØÄꤵ¤ì¤¿¥Ñ¥¹¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤Î -(/ ¤Ç¶èÀÚ¤é¤ì¤¿) ¤¤¤¯¤Ä¤«¤Î¹½À®Í×ÁÇ (¤ò¥ª¡¼¥×¥ó¤¹¤ë½èÍý) ¤¬¡¢ +に指定されたパスのディレクトリ部分の +(/ で区切られた) いくつかの構成要素 (をオープンする処理) が、 .BR open (2) -¤òÊÂÎó¤Ë¸Æ¤Ó½Ð¤¹½èÍý¤ËÊÑ´¹¤µ¤ì¤¿¾ì¹ç¤Ëµ¯¤³¤ë¡£ -¤³¤Î¤è¤¦¤Ê¶¥¹ç¤Ï¡¢Âоݥǥ£¥ì¥¯¥È¥ê¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥ª¡¼¥×¥ó¤·¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò +を並列に呼び出す処理に変換された場合に起こる。 +このような競合は、対象ディレクトリのファイルディスクリプタをオープンし、 +そのファイルディスクリプタを .BR openat () -¤Î +の .I dirfd -°ú¤­¿ô¤Ë»ØÄꤹ¤ë¤³¤È¤Ç²óÈò¤Ç¤­¤ë¡£ +引き数に指定することで回避できる。 -2 ¤ÄÌܤÎÍýͳ¤Ï¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤è¤Ã¤Æ´ÉÍý¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ (·²) ¤ò»È¤¦¤³¤È¤Ç¡¢ +2 つ目の理由は、 +アプリケーションによって管理されるファイルディスクリプタ (群) を使うことで、 .BR openat () -¤¬¥¹¥ì¥Ã¥ÉËè¤Î¤¤¤ï¤æ¤ë¡Ö¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¡×¤ò¼ÂÁõ¤Ç¤­¤ë¤¿¤á¤Ç¤¢¤ë¡£ -(¤³¤Îµ¡Ç½¤Ï +がスレッド毎のいわゆる「カレントワーキングディレクトリ」を実装できるためである。 +(この機能は .IR /proc/self/fd/ dirfd -¤ò»È¤Ã¤¿Î¢µ»¤Ç¤â¼Â¸½¤Ç¤­¤ë¤¬¡¢¤¢¤Þ¤ê¸úΨŪ¤Ç¤Ï¤Ê¤¤)¡£ -.SH ´ØÏ¢¹àÌÜ +を使った裏技でも実現できるが、あまり効率的ではない)。 +.SH 関連項目 .BR faccessat (2), .BR fchmodat (2), .BR fchownat (2), diff --git a/release/man2/outb.2 b/release/man2/outb.2 index bb10d055..43cb096b 100644 --- a/release/man2/outb.2 +++ b/release/man2/outb.2 @@ -33,47 +33,47 @@ .\" Updated Thu Mar 24 JST 2005 by Kentaro Shirakata .\" Updated Thu Oct 9 JST 2005 by Kentaro Shirakata .\" -.\"WORD: inline macro ¥¤¥ó¥é¥¤¥ó¡¦¥Þ¥¯¥í -.\"WORD: unresolved reference ²ò·è¤Ç¤­¤Ê¤¤»²¾È -.\"WORD: segmentation fault ¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó°ãÈ¿ +.\"WORD: inline macro インライン・マクロ +.\"WORD: unresolved reference 解決できない参照 +.\"WORD: segmentation fault セグメンテーション違反 .\" .TH OUTB 2 1995-11-29 "Linux" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, -outb_p, outw_p, outl_p, inb_p, inw_p, inl_p \- ¥Ý¡¼¥ÈÆþ½ÐÎÏ -.SH ÀâÌÀ -¤³¤Î°ìÏ¢¤Î´Ø¿ô¤Ï¥Ý¡¼¥È¤ËÂФ¹¤ëÄã¥ì¥Ù¥ë¤ÎÆþ½ÐÎϤ˻ÈÍѤ¹¤ë¡£ -out* ´Ø¿ô¤Ï¥Ý¡¼¥È½ÐÎÏ¡¢in* ´Ø¿ô¤Ï¥Ý¡¼¥ÈÆþÎϤò¹Ô¤¦¡£ -¸ìÈø¤Ë b ¤¬¤Ä¤¤¤Æ¤¤¤ë´Ø¿ô¤Ï¥Ð¥¤¥Èñ°Ì¡¢w ¤¬¤Ä¤¤¤Æ¤¤¤ë´Ø¿ô¤Ï¥ï¡¼¥Éñ°Ì¤Ç¤¢¤ë¡£ -_p ¤¬¤Ä¤¤¤Æ¤¤¤ë´Ø¿ô¤Ï I/O ¤¬½ªÎ»¤¹¤ë¤Þ¤ÇÂԤġ£ +outb_p, outw_p, outl_p, inb_p, inw_p, inl_p \- ポート入出力 +.SH 説明 +この一連の関数はポートに対する低レベルの入出力に使用する。 +out* 関数はポート出力、in* 関数はポート入力を行う。 +語尾に b がついている関数はバイト単位、w がついている関数はワード単位である。 +_p がついている関数は I/O が終了するまで待つ。 .LP -¤³¤ì¤é¤Î´Ø¿ô¤Ï¤â¤È¤â¤È¥«¡¼¥Í¥ëÆâÉô¤Ç¤Î»ÈÍѤòÁÛÄꤷ¤ÆÀ߷פµ¤ì¤Æ¤¤¤ë¤¬¡¢ -¥æ¡¼¥¶¡¼¶õ´Ö¤«¤é¤Ç¤â»ÈÍѤǤ­¤ë¡£ -.\" ÄɲäξðÊó¤Ï +これらの関数はもともとカーネル内部での使用を想定して設計されているが、 +ユーザー空間からでも使用できる。 +.\" 追加の情報は .\" .BR outb (9) -.\" ¤Ë¤¢¤ë¡£ +.\" にある。 -\fB\-O\fP ¤ä \fB\-O2\fP ¤Ê¤É¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¥¤¥ó¥é¥¤¥ó¡¦¥Þ¥¯¥í¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ -ºÇŬ²½¤ò¹Ô¤ï¤Ê¤¤¤È´Ø¿ô¤ÎŸ³«¤¬¹Ô¤ï¤ì¤º¡¢ -¥ê¥ó¥¯¤Î»þ¤Ë¡Ö²ò·è¤Ç¤­¤Ê¤¤»²¾È(unresolved reference)¡×¤¬È¯À¸¤¹¤ë¡£ +\fB\-O\fP や \fB\-O2\fP などを指定してコンパイルすること。 +これらの関数はインライン・マクロとして定義されており、 +最適化を行わないと関数の展開が行われず、 +リンクの時に「解決できない参照(unresolved reference)」が発生する。 -¥æ¡¼¥¶¡¼¶õ´Ö¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬ I/O ¥Ý¡¼¥È¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤ò -¥«¡¼¥Í¥ë¤Ë¶µ¤¨¤ë¤¿¤á¤Ë +ユーザー空間のアプリケーションが I/O ポートにアクセスすることを +カーネルに教えるために .BR ioperm (2) -¤â¤·¤¯¤Ï +もしくは .BR iopl (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£¤³¤ì¤ò˺¤ì¤ë¤È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó°ãÈ¿ -(segmentation fault) ¤ò¼õ¤±¤È¤ë¤³¤È¤Ë¤Ê¤ë¡£ -.SH ½àµò +を使用すること。これを忘れるとアプリケーションはセグメンテーション違反 +(segmentation fault) を受けとることになる。 +.SH 準拠 .BR outb () -¤È¤½¤ÎÃç´Ö¤Ï¥Ï¡¼¥É¥¦¥§¥¢ÆÃÍ­¤Ç¤¢¤ë¡£ +とその仲間はハードウェア特有である。 .I value -°ú¿ô¤¬ºÇ½é¤ËÅϤµ¤ì¡¢ +引数が最初に渡され、 .I port -°ú¿ô¤¬ÆóÈÖÌܤËÅϤµ¤ì¤ë¡£ -¤³¤Î½ç½ø¤Ï¤Û¤È¤ó¤É¤Î DOS ¤Ç¤Î¼ÂÁõ¤È¤ÏµÕ¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +引数が二番目に渡される。 +この順序はほとんどの DOS での実装とは逆である。 +.SH 関連項目 .BR ioperm (2), .BR iopl (2) diff --git a/release/man2/pause.2 b/release/man2/pause.2 index 588e10dc..c69f8023 100644 --- a/release/man2/pause.2 +++ b/release/man2/pause.2 @@ -33,35 +33,35 @@ .\" by SUTO, Mitsuaki .\" .TH PAUSE 2 2008-10-06 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -pause \- ¥·¥°¥Ê¥ë¤òÂÔ¤Ä -.SH µ­½Ò +.SH 名前 +pause \- シグナルを待つ +.SH 記述 .B #include .sp .B int pause(void); -.SH ÀâÌÀ +.SH 説明 .BR pause () -¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹ (¤Þ¤¿¤Ï¥¹¥ì¥Ã¥É) ¤ò¡¢ -¤½¤Î¥×¥í¥»¥¹¤ò½ªÎ»¤µ¤»¤¿¤ê¡¢¥·¥°¥Ê¥ëÊ᪴ؿô¤¬µ¯Æ°¤µ¤ì¤ë¤è¤¦¤Ê -¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ë¤Þ¤Ç¡¢¥¹¥ê¡¼¥×¤µ¤»¤ë¡£ -.SH ÊÖ¤êÃÍ +は、呼び出したプロセス (またはスレッド) を、 +そのプロセスを終了させたり、シグナル捕捉関数が起動されるような +シグナルが配送されるまで、スリープさせる。 +.SH 返り値 .BR pause () -¤¬ÊÖ¤ë¤Î¤Ï¡¢¥·¥°¥Ê¥ë¤ò¼õ¤±¼è¤ê¥·¥°¥Ê¥ëÊá³Í´Ø¿ô¤«¤éÊ֤俾ì¹ç¤À¤±¤Ç¤¢¤ë¡£ -¤³¤Î¾ì¹ç¤Ï +が返るのは、シグナルを受け取りシグナル捕獲関数から返った場合だけである。 +この場合は .BR pause () -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤Ë +に .\" .B ERESTARTNOHAND .B EINTR -¤¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が設定される。 +.SH エラー .TP .B EINTR -¥·¥°¥Ê¥ë¤ò¼õ¤±¼è¤ê¡¢¥·¥°¥Ê¥ëÊá³Í´Ø¿ô¤«¤éµ¢¤Ã¤Æ¤­¤¿¡£ -.SH ½àµò +シグナルを受け取り、シグナル捕獲関数から帰ってきた。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR kill (2), .BR select (2), .BR signal (2), diff --git a/release/man2/pciconfig_read.2 b/release/man2/pciconfig_read.2 index 452b2deb..3f055b8c 100644 --- a/release/man2/pciconfig_read.2 +++ b/release/man2/pciconfig_read.2 @@ -8,9 +8,9 @@ .\" by Yuichi SATO .\" .TH PCICONFIG_READ 2 2003-07-14 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -pciconfig_read, pciconfig_write, pciconfig_iobase \- pci ¥Ç¥Ð¥¤¥¹¾ðÊó¤ò°·¤¦ -.SH ½ñ¼° +.SH 名前 +pciconfig_read, pciconfig_write, pciconfig_iobase \- pci デバイス情報を扱う +.SH 書式 .nf .B #include .sp @@ -21,99 +21,99 @@ pciconfig_read, pciconfig_write, pciconfig_iobase \- pci .BI "int pciconfig_iobase(long " which ", unsigned long " bus , .BI " unsigned long " devfn ); .fi -.SH ÀâÌÀ +.SH 説明 .PP -PCI ¥Ç¥Ð¥¤¥¹¤È¤Î¤ä¤ê¼è¤ê (interaction) ¤Ï -¥«¡¼¥Í¥ë PCI ¥ì¥¤¥ä¤Ç¤¹¤Ç¤Ë½èÍý¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢ -Ä̾ï¤Ï¤³¤é¤é¤Î´Ø¿ô¤ò¥æ¡¼¥¶¶õ´Ö¤«¤é¥¢¥¯¥»¥¹¤¹¤ëɬÍפϤʤ¤¡£ +PCI デバイスとのやり取り (interaction) は +カーネル PCI レイヤですでに処理されているので、 +通常はこららの関数をユーザ空間からアクセスする必要はない。 .TP .BR pciconfig_read () -¥Ç¥Ð¥¤¥¹ +デバイス .I dev -¤Î¥ª¥Õ¥»¥Ã¥È +のオフセット .I off -¤ÎÃͤò +の値を .I buf -¤ËÆɤ߹þ¤à¡£ +に読み込む。 .TP .BR pciconfig_write () -¥Ç¥Ð¥¤¥¹ +デバイス .I dev -¤Î¥ª¥Õ¥»¥Ã¥È +のオフセット .I off -¤Ë +に .I buf -¤ÎÃͤò½ñ¤­¹þ¤à¡£ +の値を書き込む。 .TP .BR pciconfig_iobase () -bus/devfn ¥Ú¥¢¤ò¤³¤Î´Ø¿ô¤ËÅϤ·¡¢ -¥á¥â¥ê¥ª¥Õ¥»¥Ã¥È (prep ¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤Ï¡¢¤³¤ÎÃÍ¤Ï 0xc0000000 ¤Ç¤¢¤ë) ¤È -PIO ¥µ¥¤¥¯¥ë¤Î IO ¥Ù¡¼¥¹¤ÎʪÍý¥¢¥É¥ì¥¹¤ò¼èÆÀ¤¹¤ë¡£ -¤Þ¤¿¡¢¤â¤·¤¢¤ë¤Ê¤é¤Ð ISA hole ¤ÎʪÍý¥¢¥É¥ì¥¹¤ò¼èÆÀ¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ +bus/devfn ペアをこの関数に渡し、 +メモリオフセット (prep のようなものでは、この値は 0xc0000000 である) と +PIO サイクルの IO ベースの物理アドレスを取得する。 +また、もしあるならば ISA hole の物理アドレスを取得する。 +.SH 返り値 .TP .BR pciconfig_read () -À®¸ù¤·¤¿¾ì¹ç¡¢0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合、0 が返される。 +エラーの場合、\-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .TP .BR pciconfig_write () -À®¸ù¤·¤¿¾ì¹ç¡¢0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +成功した場合、0 が返される。 +エラーの場合、\-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .TP .BR pciconfig_iobase () .I which -¤ÎÃͤ˴ð¤Å¤¤¤Æ¡¢ÊªÍý¥á¥â¥êÆâ¤ÎÍÍ¡¹¤Ê I/O Îΰè¤Î°ÌÃÖ¾ðÊó¤¬ÊÖ¤µ¤ì¤ë¡£ +の値に基づいて、物理メモリ内の様々な I/O 領域の位置情報が返される。 .I which -¤ÎÃͤϡ¢ +の値は、 .BR IOBASE_BRIDGE_NUMBER , .BR IOBASE_MEMORY , .BR IOBASE_IO , .BR IOBASE_ISA_IO , .B IOBASE_ISA_MEM -¤Ç¤¢¤ë¡£ -.SH ¥¨¥é¡¼ +である。 +.SH エラー .TP .B EINVAL .I len -¤ÎÃͤ¬Ìµ¸ú¤Ç¤¢¤ë¡£ -¤³¤Î¥¨¥é¡¼¤Ï +の値が無効である。 +このエラーは .BR pciconfig_iobase () -¤Ë¤ÏŬÍѤµ¤ì¤Ê¤¤¡£ +には適用されない。 .TP .B EIO -I/O ¥¨¥é¡¼¡£ +I/O エラー。 .TP .B ENODEV .BR pciconfig_iobase () -¤Î¾ì¹ç¡¢¤Ç¥Û¡¼¥¹ (hose) ¤ÎÃͤ¬ NULL ¤Ç¤¢¤ë¡£ -¾¤Î¸Æ¤Ó½Ð¤·¤Î¾ì¹ç¡¢¥¹¥í¥Ã¥È (slot) ¤¬¸«¤Ä¤«¤é¤Ê¤¤¡£ +の場合、でホース (hose) の値が NULL である。 +他の呼び出しの場合、スロット (slot) が見つからない。 .TP .B ENOSYS -¤³¤Î¥·¥¹¥Æ¥à¤Ï¤³¤ì¤é¤Î¸Æ¤Ó½Ð¤·¤ò¼ÂÁõ¤·¤Æ¤¤¤Ê¤¤¡£ +このシステムはこれらの呼び出しを実装していない。 .RB ( CONFIG_PCI -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤)¡£ +が定義されていない)。 .TP .B EOPNOTSUPP -¤³¤ÎÊÖ¤êÃÍ¤Ï +この返り値は .BR pciconfig_iobase () -¤Ç¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£ -¤³¤Î¥¨¥é¡¼¤Ï +でのみ有効である。 +このエラーは .I which -¤ÎÃͤ¬Ìµ¸ú¤Ç¤¢¤ë¤È¤­¤ËÊÖ¤µ¤ì¤ë¡£ +の値が無効であるときに返される。 .TP .B EPERM -¥æ¡¼¥¶¤¬ +ユーザが .B CAP_SYS_ADMIN -¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -¤³¤Î¥¨¥é¡¼¤Ï +権限を持っていない。 +このエラーは .BR pciconfig_iobase () -¤Ë¤ÏŬÍѤµ¤ì¤Ê¤¤¡£ -.SH ½àµò -¤³¤ì¤é¤Î¸Æ¤Ó½Ð¤·¤Ï Linux ÆÃÍ­¤Î¤â¤Î¤Ç¤¢¤ê¡¢ -Linux 2.0.26/2.1.11 ¤«¤é»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +には適用されない。 +.SH 準拠 +これらの呼び出しは Linux 特有のものであり、 +Linux 2.0.26/2.1.11 から使用可能である。 +.SH 関連項目 .BR capabilities (7) diff --git a/release/man2/personality.2 b/release/man2/personality.2 index eed58c7f..8063c409 100644 --- a/release/man2/personality.2 +++ b/release/man2/personality.2 @@ -33,47 +33,47 @@ .\" Updated 2003-04-24, Kentaro Shirakata .\" Updated 2007-05-04, Akihiro MOTOKI .\" -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: execution domain ¼Â¹Ô¥É¥á¥¤¥ó -.\"WORD: personality ¥Ñ¡¼¥½¥Ê¥ê¥Æ¥£ -.\"WORD: binary ¥Ð¥¤¥Ê¥ê -.\"WORD: operating system ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à +.\"WORD: process プロセス +.\"WORD: execution domain 実行ドメイン +.\"WORD: personality パーソナリティ +.\"WORD: binary バイナリ +.\"WORD: operating system オペレーティング・システム .\" .TH PERSONALITY 2 2003-01-01 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -personality \- ¥×¥í¥»¥¹¤ò¼Â¹Ô¤¹¤ë¥É¥á¥¤¥ó¤òÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +personality \- プロセスを実行するドメインを設定する +.SH 書式 .B #include .sp .BI "int personality(unsigned long " persona ); -.SH ÀâÌÀ -Linux ¤Ï¡¢¥×¥í¥»¥¹Ëè¤Î°Û¤Ê¤ë¼Â¹Ô¥É¥á¥¤¥ó¡¢¤¹¤Ê¤ï¤Á -¥Ñ¡¼¥½¥Ê¥ê¥Æ¥£ (personality) ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -¼Â¹Ô¥É¥á¥¤¥ó¤Ï Linux ¤Ë¥·¥°¥Ê¥ëÈÖ¹æ¤Ë¤É¤Î¥·¥°¥Ê¥ë¤ò³ä¤êÉÕ¤±¤ë¤«¤ò -¶µ¤¨¤¿¤ê¤¹¤ë¡£¤Þ¤¿¡¢¼Â¹Ô¥É¥á¥¤¥ó¡¦¥·¥¹¥Æ¥à¤Ë¤è¤ê¡¢ -Linux ¤Ï¾¤Î UNIX É÷¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿ -¥Ð¥¤¥Ê¥ê¤ËÂФ¹¤ë¸ÂÄêŪ¤Ê¥µ¥Ý¡¼¥È¤òÄ󶡤·¤Æ¤¤¤ë¡£ +.SH 説明 +Linux は、プロセス毎の異なる実行ドメイン、すなわち +パーソナリティ (personality) をサポートしている。 +実行ドメインは Linux にシグナル番号にどのシグナルを割り付けるかを +教えたりする。また、実行ドメイン・システムにより、 +Linux は他の UNIX 風のオペレーティング・システムでコンパイルされた +バイナリに対する限定的なサポートを提供している。 .B personality () -´Ø¿ô¤Ï¡¢ +関数は、 .I persona -¤¬ 0xffffffff ¤Î¾ì¹ç¤Ï¸½ºß¤Î -.B ¥Ñ¡¼¥½¥Ê¥ê¥Æ¥£ -¤òÊÖ¤¹¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢ +が 0xffffffff の場合は現在の +.B パーソナリティ +を返す。 +それ以外の場合、 .I persona -¤Ë¤è¤ê»²¾È¤µ¤ì¤ë¼Â¹Ô¥É¥á¥¤¥ó¤ò¡¢ -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¿·¤·¤¤¼Â¹Ô¥É¥á¥¤¥ó¤È¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢°ÊÁ°¤Î +により参照される実行ドメインを、 +呼び出し元のプロセスの新しい実行ドメインとする。 +.SH 返り値 +成功した場合、以前の .I persona -¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +が返される。エラーの場合は、\-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EINVAL -¥«¡¼¥Í¥ë¤¬¥Ñ¡¼¥½¥Ê¥ê¥Æ¥£¤òÊѹ¹¤Ç¤­¤Ê¤«¤Ã¤¿¡£ -.SH ½àµò +カーネルがパーソナリティを変更できなかった。 +.SH 準拠 .BR personality () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +は Linux 固有であり、移植を意図したプログラムで使用すべきではない。 diff --git a/release/man2/pipe.2 b/release/man2/pipe.2 index 81c81f20..c8de73c4 100644 --- a/release/man2/pipe.2 +++ b/release/man2/pipe.2 @@ -44,111 +44,111 @@ .\" Updated 2008-11-09, Akihiro MOTOKI, LDP v3.13 .\" .TH PIPE 2 2010-09-10 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -pipe, pipe2 \- ¥Ñ¥¤¥×¤òÀ¸À®¤¹¤ë -.SH ½ñ¼° +.SH 名前 +pipe, pipe2 \- パイプを生成する +.SH 書式 .nf .B #include .sp .BI "int pipe(int " pipefd "[2]);" .sp -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "int pipe2(int " pipefd "[2], int " flags ); .fi -.SH ÀâÌÀ +.SH 説明 .BR pipe (2) -¤Ï¥Ñ¥¤¥×¤òÀ¸À®¤¹¤ë¡£ -¥Ñ¥¤¥×¤Ï¡¢¥×¥í¥»¥¹´ÖÄÌ¿®¤Ë»ÈÍѤǤ­¤ëñÊý¸þ¤Î¥Ç¡¼¥¿¥Á¥ã¥Í¥ë¤Ç¤¢¤ë¡£ -ÇÛÎó +はパイプを生成する。 +パイプは、プロセス間通信に使用できる単方向のデータチャネルである。 +配列 .I pipefd -¤Ï¡¢¥Ñ¥¤¥×¤Îξü¤ò»²¾È¤¹¤ëÆó¤Ä¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò -ÊÖ¤¹¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ +は、パイプの両端を参照する二つのファイルディスクリプタを +返すのに使用される。 .I pipefd[0] -¤¬¥Ñ¥¤¥×¤ÎÆɤ߽Ф·Â¦¡¢ +がパイプの読み出し側、 .I pipefd[1] -¤¬¥Ñ¥¤¥×¤Î½ñ¤­¹þ¤ß¦¤Ç¤¢¤ë¡£ -¥Ñ¥¤¥×¤Î½ñ¤­¹þ¤ß¦¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¥Ç¡¼¥¿¤Ï¡¢ -¥Ñ¥¤¥×¤ÎÆɤ߽Ф·Â¦¤«¤éÆɤ߽Фµ¤ì¤ë¤Þ¤Ç¥«¡¼¥Í¥ë¤Ç¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤ë¡£ -¤µ¤é¤Ê¤ë¾ÜºÙ¤Ï +がパイプの書き込み側である。 +パイプの書き込み側に書き込まれたデータは、 +パイプの読み出し側から読み出されるまでカーネルでバッファリングされる。 +さらなる詳細は .BR pipe (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .BR pipe2 () -¤Ï +は .I flags -¤¬ 0 ¤Î¾ì¹ç¤Ë¤Ï +が 0 の場合には .BR pipe () -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .I flags -¤Ë°Ê²¼¤ÎÃͤò¥Ó¥Ã¥ÈËè¤ÎÏÀÍýÏ (OR) ¤Ç»ØÄꤹ¤ë¤³¤È¤Ç¡¢ -°Û¤Ê¤ëÆ°ºî¤ò¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +に以下の値をビット毎の論理和 (OR) で指定することで、 +異なる動作をさせることができる。 .TP 12 .B O_NONBLOCK -¿·¤·¤¯À¸À®¤µ¤ì¤ëÆó¤Ä¤Î¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò (open file description) ¤Î +新しく生成される二つのオープンファイル記述 (open file description) の .B O_NONBLOCK -¥Õ¥¡¥¤¥ë¥¹¥Æ¡¼¥¿¥¹¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤³¤È¤Ç¡¢ +ファイルステータスフラグをセットする。 +このフラグを使うことで、 .B O_NONBLOCK -¤ò¥»¥Ã¥È¤¹¤ë¤¿¤á¤Ë +をセットするために .BR fcntl (2) -¤òÄɲäǸƤӽФ¹É¬Íפ¬¤Ê¤¯¤Ê¤ë¡£ +を追加で呼び出す必要がなくなる。 .TP .B O_CLOEXEC -¿·¤·¤¯À¸À®¤µ¤ì¤ëÆó¤Ä¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î +新しく生成される二つのファイルディスクリプタの close-on-exec .RB ( FD_CLOEXEC ) -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬Ìò¤ËΩ¤ÄÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +フラグをセットする。 +このフラグが役に立つ理由については、 .BR open (2) -¤Î +の .B O_CLOEXEC -¥Õ¥é¥°¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç 0 ¤¬Ê֤롣¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤¬Ê֤ꡢ +フラグの説明を参照のこと。 +.SH 返り値 +成功した場合 0 が返る。失敗した場合 \-1 が返り、 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤ˽¾¤Ã¤ÆÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +がエラーの内容に従って設定される。 +.SH エラー .TP .B EFAULT .I pipefd -¤¬Ìµ¸ú¤ÊÃͤǤ¢¤ë¡£ +が無効な値である。 .TP .B EINVAL .RB ( pipe2 ()) .I flags -¤Ë̵¸ú¤ÊÃͤ¬Æþ¤Ã¤Æ¤¤¤ë¡£ +に無効な値が入っている。 .TP .B EMFILE -¤³¤Î¥×¥í¥»¥¹¤Ç»È¤ï¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Â¿¤¹¤®¤ë¡£ +このプロセスで使われているファイルディスクリプタが多すぎる。 .TP .B ENFILE -¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ÎÁí¿ô¤¬¥·¥¹¥Æ¥à¤ÎÀ©¸Â¤Ë㤷¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +オープンされているファイルの総数がシステムの制限に達した。 +.SH バージョン .BR pipe2 () -¤Ï¥Ð¡¼¥¸¥ç¥ó 2.6.27 ¤Ç Linux ¤ËÄɲ䵤줿¡£ -glibc ¤Ë¤è¤ë¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.9 °Ê¹ß¤ÇÍøÍѤǤ­¤ë¡£ -.SH ½àµò +はバージョン 2.6.27 で Linux に追加された。 +glibc によるサポートはバージョン 2.9 以降で利用できる。 +.SH 準拠 .BR pipe (): POSIX.1-2001. .BR pipe2 () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -.SH Îã -.\" fork.2 ¤Ï¤³¤ÎÎã¤Î¥×¥í¥°¥é¥à¤ò»²¾È¤·¤Æ¤¤¤ë¡£ -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¥Ñ¥¤¥×¤òÀ¸À®¤·¡¢¤½¤Î¸å +は Linux 固有である。 +.SH 例 +.\" fork.2 はこの例のプログラムを参照している。 +以下のプログラムではパイプを生成し、その後 .BR fork (2) -¤Ç»Ò¥×¥í¥»¥¹¤òÀ¸À®¤¹¤ë¡£ -»Ò¥×¥í¥»¥¹¤ÏƱ¤¸¥Ñ¥¤¥×¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤Î¥³¥Ô¡¼¤ò -·Ñ¾µ¤¹¤ë¡£ +で子プロセスを生成する。 +子プロセスは同じパイプを参照するファイルディスクリプタ集合のコピーを +継承する。 .BR fork (2) -¤Î¸å¡¢³Æ¥×¥í¥»¥¹¤Ï¥Ñ¥¤¥× +の後、各プロセスはパイプ .RB ( pipe (7) -¤ò»²¾È) ¤ËɬÍפ¬¤Ê¤¯¤Ê¤Ã¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ -¿Æ¥×¥í¥»¥¹¤Ï¥×¥í¥°¥é¥à¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ë´Þ¤Þ¤ì¤ë -ʸ»úÎó¤ò¥Ñ¥¤¥×¤Ø½ñ¤­¹þ¤ß¡¢ -»Ò¥×¥í¥»¥¹¤Ï¤³¤Îʸ»úÎó¤ò¥Ñ¥¤¥×¤«¤é 1 ¥Ð¥¤¥È¤º¤ÄÆɤ߹þ¤ó¤Çɸ½à½ÐÎϤ˥¨¥³¡¼¤¹¤ë¡£ +を参照) に必要がなくなったディスクリプタをクローズする。 +親プロセスはプログラムのコマンドライン引き数に含まれる +文字列をパイプへ書き込み、 +子プロセスはこの文字列をパイプから 1 バイトずつ読み込んで標準出力にエコーする。 .nf #include @@ -180,8 +180,8 @@ main(int argc, char *argv[]) exit(EXIT_FAILURE); } - if (cpid == 0) { /* »Ò¥×¥í¥»¥¹¤¬¥Ñ¥¤¥×¤«¤éÆɤ߹þ¤à */ - close(pipefd[1]); /* »ÈÍѤ·¤Ê¤¤ write ¦¤Ï¥¯¥í¡¼¥º¤¹¤ë */ + if (cpid == 0) { /* 子プロセスがパイプから読み込む */ + close(pipefd[1]); /* 使用しない write 側はクローズする */ while (read(pipefd[0], &buf, 1) > 0) write(STDOUT_FILENO, &buf, 1); @@ -190,16 +190,16 @@ main(int argc, char *argv[]) close(pipefd[0]); _exit(EXIT_SUCCESS); - } else { /* ¿Æ¥×¥í¥»¥¹¤Ï argv[1] ¤ò¥Ñ¥¤¥×¤Ø½ñ¤­¹þ¤à */ - close(pipefd[0]); /* »ÈÍѤ·¤Ê¤¤ read ¦¤Ï¥¯¥í¡¼¥º¤¹¤ë */ + } else { /* 親プロセスは argv[1] をパイプへ書き込む */ + close(pipefd[0]); /* 使用しない read 側はクローズする */ write(pipefd[1], argv[1], strlen(argv[1])); - close(pipefd[1]); /* Æɤ߹þ¤ß¦¤¬ EOF ¤Ë½Ð²ñ¤¦ */ - wait(NULL); /* »Ò¥×¥í¥»¥¹¤òÂÔ¤Ä */ + close(pipefd[1]); /* 読み込み側が EOF に出会う */ + wait(NULL); /* 子プロセスを待つ */ exit(EXIT_SUCCESS); } } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fork (2), .BR read (2), .BR socketpair (2), diff --git a/release/man2/pivot_root.2 b/release/man2/pivot_root.2 index f4c39ef1..6e2b1da9 100644 --- a/release/man2/pivot_root.2 +++ b/release/man2/pivot_root.2 @@ -8,164 +8,164 @@ .\" Translated Wed Jun 14 2000 by NAKANO Takeo .\" .TH PIVOT_ROOT 2 2007-06-01 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -pivot_root \- root ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òÊѹ¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +pivot_root \- root ファイルシステムを変更する +.SH 書式 .BI "int pivot_root(const char *" new_root ", const char *" put_old ); -.SH ÀâÌÀ +.SH 説明 .BR pivot_root () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î root ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò +は呼び出し元のプロセスの root ファイルシステムを .I put_old -¥Ç¥£¥ì¥¯¥È¥ê¤Ë°ÜÆ°¤·¡¢ +ディレクトリに移動し、 .I new_root -¤ò¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¿·¤·¤¤ root ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤¹¤ë¡£ +を呼び出し元のプロセスの新しい root ファイルシステムにする。 .\" .\" .B CAP_SYS_ADMIN -.\" ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ +.\" ケーパビリティが必要である。 .BR pivot_root () -¤Îŵ·¿Åª¤ÊÍøÍÑË¡¤Ï¡¢¥·¥¹¥Æ¥à¤Îµ¯Æ°Ãæ¤Ë¥·¥¹¥Æ¥à¤¬°ì»þŪ¤Ê -root ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à (Î㤨¤Ð +の典型的な利用法は、システムの起動中にシステムが一時的な +root ファイルシステム (例えば .BR initrd ) -¤ò¥Þ¥¦¥ó¥È¤·¡¢¤³¤ì¤Ë³¤¤¤ÆËÜÅö¤Î root ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥Þ¥¦¥ó¥È¤·¡¢ -¸å¼Ô¤òɬÍפÊÁ´¤Æ¤Î¥×¥í¥»¥¹¡¦¥¹¥ì¥Ã¥É¤Î -¥«¥ì¥ó¥È root ¤ËÊѹ¹¤¹¤ë¤è¤¦¤Ê¾ì¹ç¤Ç¤¢¤ë¡£ +をマウントし、これに続いて本当の root ファイルシステムをマウントし、 +後者を必要な全てのプロセス・スレッドの +カレント root に変更するような場合である。 -¸Å¤¤ root ¥Ç¥£¥ì¥¯¥È¥ê¤ò»È¤Ã¤Æ¤¤¤¿Á´¤Æ¤Î¥×¥í¥»¥¹¤ä¥¹¥ì¥Ã¥É¤Î -¥«¥ì¥ó¥È root ¤È¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤ò¡¢ +古い root ディレクトリを使っていた全てのプロセスやスレッドの +カレント root とカレントワーキングディレクトリを、 .BR pivot_root () -¤¬Êѹ¹¤¹¤ë¤«¤É¤¦¤«¤Ï¤ï¤«¤é¤Ê¤¤¡£ +が変更するかどうかはわからない。 .BR pivot_root () -¤Î¸Æ¤Ó¤À¤·¥×¥í¥»¥¹¤Ï¡¢¸Å¤¤ root ¤ä¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤ò»È¤Ã¤Æ¤¤¤¿ -¥×¥í¥»¥¹¤¬¡¢¤¤¤º¤ì¤Î¾ì¹ç¤Ç¤âÀµ¤·¤¯Æ°ºî¤¹¤ë¤³¤È¤òÊݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ì¤ò´Êñ¤Ë¹Ô¤¦¤Ë¤Ï¡¢¤½¤ì¤é¤Î¥×¥í¥»¥¹¤Î root ¤È -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤ò +の呼びだしプロセスは、古い root やカレントワーキングディレクトリを使っていた +プロセスが、いずれの場合でも正しく動作することを保証しなければならない。 +これを簡単に行うには、それらのプロセスの root と +カレントワーキングディレクトリを .BR pivot_root () -¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë +を呼び出す前に .I new_root -¤ËÊѹ¹¤·¤Æ¤ª¤¯¤³¤È¤Ç¤¢¤ë¡£ +に変更しておくことである。 -¾åµ­¤ÎÃÊÍî¤Ï¡¢¾­Íè +上記の段落は、将来 .BR pivot_root () -¤¬Êѹ¹¤µ¤ì¤ë¤«¤âÃΤì¤Ê¤¤¤³¤È¤ò´Õ¤ß¤Æ¡¢¤ï¤¶¤ÈÛ£Ëæ¤Ë½ñ¤¤¤Æ¤¢¤ë¡£ -ËÜ¥Ú¡¼¥¸¤òµ­½Ò¤·¤Æ¤¤¤ë»þÅÀ¤Ç¤Ï¡¢ +が変更されるかも知れないことを鑑みて、わざと曖昧に書いてある。 +本ページを記述している時点では、 .BR pivot_root () -¤Ï¸Å¤¤ root ¥Ç¥£¥ì¥¯¥È¥ê¤òÍѤ¤¤Æ¤¤¤ëÁ´¤Æ¤Î¥×¥í¥»¥¹¡¦¥¹¥ì¥Ã¥É¤Î root ¤È -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤ò +は古い root ディレクトリを用いている全てのプロセス・スレッドの root と +カレントワーキングディレクトリを .I new_root -¤ËÊѹ¹¤¹¤ë¡£¤³¤ì¤Ï¥«¡¼¥Í¥ë¤Î¥¹¥ì¥Ã¥É¤¬¸Å¤¤ root ¥Ç¥£¥ì¥¯¥È¥ê¤ò -busy ¾õÂ֤ˤ·¤Ê¤¤¤¿¤á¤ËɬÍפǤ¢¤ë¡£¤³¤ì¤é¤Î¥¹¥ì¥Ã¥É¤¬ -¸Å¤¤¥Ç¥£¥ì¥¯¥È¥ê¤ò root ¤ä¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤È¤·¤Æ¤¤¤ë¤È¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë°ìÀÚ¥¢¥¯¥»¥¹¤·¤Ê¤¤¾ì¹ç¤Ç¤â -¸Å¤¤ root ¤¬ busy ¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤«¤é¤Ç¤¢¤ë¡£ -.\"nakano: ¤Á¤È¾éĹ... -¾­Íè¤Ï¡¢¥«¡¼¥Í¥ë¥¹¥ì¥Ã¥É¤¬¤¢¤é¤æ¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ø¤Î¥¢¥¯¥»¥¹¤ò -ÌÀ¼¨Åª¤ËÊü´þ¤¹¤ë¥á¥«¥Ë¥º¥à¤¬¤Ç¤­¡¢¤³¤Î¤Ç¤·¤ã¤Ð¤ê¤Êµ¡Ç½¤Ï -.BR pivot_root () -¤«¤éºï½ü¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +に変更する。これはカーネルのスレッドが古い root ディレクトリを +busy 状態にしないために必要である。これらのスレッドが +古いディレクトリを root やカレントワーキングディレクトリとしていると、 +ファイルシステムに一切アクセスしない場合でも +古い root が busy になってしまうからである。 +.\"nakano: ちと冗長... +将来は、カーネルスレッドがあらゆるファイルシステムへのアクセスを +明示的に放棄するメカニズムができ、このでしゃばりな機能は +.BR pivot_root () +から削除されるかもしれない。 -¤³¤ì¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ë¤Ä¤¤¤Æ¤âÅö¤Æ¤Ï¤Þ¤ë¤³¤È¤ËÃí°Õ¡£ +これは呼び出し元のプロセスについても当てはまることに注意。 .BR pivot_root () -¤¬¥«¥ì¥ó¥È¥×¥í¥»¥¹¤Î¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤Ë±Æ¶Á¤¹¤ë¤«¤É¤¦¤«¤Ï -ʬ¤«¤é¤Ê¤¤¡£¤·¤¿¤¬¤Ã¤Æ +がカレントプロセスのカレントワーキングディレクトリに影響するかどうかは +分からない。したがって .BR pivot_root () -¤Îľ¸å¤Ë +の直後に .B chdir("/") -¤ò¸Æ¤Ó½Ð¤¹¤È¤è¤¤¡£ +を呼び出すとよい。 -.IR new_root " ¤ª¤è¤Ó " put_old -¤Ë¤Ï°Ê²¼¤ÎÀ©¸Â¤¬¤¢¤ë: +.IR new_root " および " put_old +には以下の制限がある: .IP \- 3 -¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ディレクトリでなければならない。 .IP \- 3 -.IR new_root " ¤È " put_old -¤Ï¸½ºß¤Î root ¤ÈƱ¤¸¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +.IR new_root " と " put_old +は現在の root と同じファイルシステムにあってはならない。 .IP \- 3 -.IR put_old " ¤Ï " new_root -°Ê²¼¤Ë¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤¹¤Ê¤ï¤Á +.IR put_old " は " new_root +以下になければならない。すなわち .I put_old -¤òº¹¤¹Ê¸»úÎó¤Ë 1 ¸Ä°Ê¾å¤Î +を差す文字列に 1 個以上の .I ../ -¤òÉÕ¤±¤ë¤³¤È¤Ë¤è¤Ã¤Æ +を付けることによって .I new_root -¤ÈƱ¤¸¥Ç¥£¥ì¥¯¥È¥ê¤¬ÆÀ¤é¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +と同じディレクトリが得られなければならない。 .IP \- 3 -¾¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ +他のファイルシステムが .I put_old -¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +にマウントされていてはならない。 .PP -ÍøÍÑÎã¤Ë¤Ä¤¤¤Æ¤Ï +利用例については .BR pivot_root (8) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 -¸½ºß¤Î root ¤¬¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ç¤Ï¤Ê¤¤ +現在の root がマウントポイントではない .RB ( chroot (2) -¤ä +や .BR pivot_root () -¤Î¸å¤Ê¤É¡£°Ê²¼¤â»²¾È) ¾ì¹ç¡¢ -¸Å¤¤ root ¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¯¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤¬ +の後など。以下も参照) 場合、 +古い root ディレクトリではなく、 +そのファイルシステムのマウントポイントが .I put_old -¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤ë¡£ +にマウントされる。 .I new_root -¤Ï¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ç¤Ê¤¯¤Æ¤â¤è¤¤¡£ -¤³¤Î¾ì¹ç +はマウントポイントでなくてもよい。 +この場合 .I /proc/mounts -¤Ï¡¢ +は、 .I new_root -¤ò root +を root .RI ( / ) -¤È¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤òɽ¼¨¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤¬µ¯¤ë¤È \-1 ¤òÊÖ¤·¡¢ +とするファイルシステムのマウントポイントを表示する。 +.SH 返り値 +成功すると 0 を返す。エラーが起ると \-1 を返し、 .I errno -¤¬Å¬ÀÚ¤ÊÃͤËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切な値に設定される。 +.SH エラー .BR pivot_root () -¤Ï +は .BR stat (2) -¤ÎÊÖ¤¹¤¢¤é¤æ¤ë¥¨¥é¡¼¤ò +の返すあらゆるエラーを .RI ( errno -¤Ë) ÊÖ¤¹²ÄǽÀ­¤¬¤¢¤ë¡£¤µ¤é¤Ë°Ê²¼¤òÊÖ¤¹¤³¤È¤¬¤¢¤ë: +に) 返す可能性がある。さらに以下を返すことがある: .TP .B EBUSY -.IR new_root " ¤Þ¤¿¤Ï " put_old -¤¬¡¢¸½ºß¤Î root ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ë¤¢¤ë¤«¡¢´û¤Ë +.IR new_root " または " put_old +が、現在の root ファイルシステム上にあるか、既に .I put_old -¤Ë¤Ê¤ó¤é¤«¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¡£ +になんらかのファイルシステムがマウントされている。 .TP .B EINVAL -.IR put_old " ¤¬ " new_root -¤Î²¼Áؤˤʤ¤¡£ +.IR put_old " が " new_root +の下層にない。 .TP .B ENOTDIR -.IR new_root " ¤Þ¤¿¤Ï " put_old -¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +.IR new_root " または " put_old +がディレクトリでない。 .TP .B EPERM -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬ +呼び出し元のプロセスが .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +ケーパビリティを持っていない。 +.SH バージョン .BR pivot_root () -¤Ï Linux 2.3.41 ¤ÇƳÆþ¤µ¤ì¤¿¡£ -.SH ½àµò +は Linux 2.3.41 で導入された。 +.SH 準拠 .BR pivot_root () -¤Ï Linux ¤Ë¸ÇÍ­¤Î¤â¤Î¤Ê¤Î¤Ç¡¢°Ü¿¢À­¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +は Linux に固有のものなので、移植性はない。 +.SH 注意 +glibc はこのシステムコールに対するラッパー関数を提供していない。 .BR syscall (2) -¤ò»È¤Ã¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¡£ -.SH ¥Ð¥° +を使って呼び出すこと。 +.SH バグ .BR pivot_root () -¤Ï¥·¥¹¥Æ¥à¤Î¾¤Î¥×¥í¥»¥¹Á´¤Æ¤Î root ¤È -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤È¤òÊѹ¹¤·¤Ê¤¯¤Æ¤â¤è¤¤¤Ï¤º¤Ç¤¢¤ë¡£ +はシステムの他のプロセス全ての root と +カレントワーキングディレクトリとを変更しなくてもよいはずである。 .BR pivot_root () -¤Î»È¤¤Êý¤¬¤â¤¦¤Á¤ç¤Ã¤ÈÛ£Ëæ¤Ë¤Ê¤ë¤È¡¢ -¤¢¤Ã¤È¤¤¤¦´Ö¤Ë¤ï¤±¤Î¤ï¤«¤é¤Ê¤¤¾õÂ֤ˤʤäƤ·¤Þ¤¦¤À¤í¤¦ -.SH ´ØÏ¢¹àÌÜ +の使い方がもうちょっと曖昧になると、 +あっという間にわけのわからない状態になってしまうだろう +.SH 関連項目 .BR chdir (2), .BR chroot (2), .BR stat (2), diff --git a/release/man2/poll.2 b/release/man2/poll.2 index c6ae147c..c4fb2b2c 100644 --- a/release/man2/poll.2 +++ b/release/man2/poll.2 @@ -38,35 +38,35 @@ .\" Updated 2006-04-16, Akihiro MOTOKI, Catch up to LDP man-pages 2.28 .\" Updated 2006-07-23, Akihiro MOTOKI, Catch up to LDP man-pages 2.36 .\" -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿ +.\"WORD: descriptor ディスクリプタ .\" .TH POLL 2 2010-09-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -poll, ppoll \- ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤ª¤±¤ë¥¤¥Ù¥ó¥È¤òÂÔ¤Ä -.SH ½ñ¼° +.SH 名前 +poll, ppoll \- ファイルディスクリプタにおけるイベントを待つ +.SH 書式 .nf .B #include .sp .BI "int poll(struct pollfd *" fds ", nfds_t " nfds ", int " timeout ); .sp -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "int ppoll(struct pollfd *" fds ", nfds_t " nfds ", " .BI " const struct timespec *" timeout_ts ", const sigset_t *" sigmask ); .fi -.SH ÀâÌÀ +.SH 説明 .BR poll () -¤Ï +は .BR select (2) -¤ÈƱÍͤλŻö¤ò¹Ô¤¦¡¢¤Ä¤Þ¤ê¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤Î¤¤¤º¤ì¤«°ì¤Ä¤¬ -I/O ¤ò¼Â¹Ô²Äǽ¤Ê¾õÂ֤ˤʤë¤Î¤òÂԤġ£ +と同様の仕事を行う、つまり、ファイルディスクリプタ集合のいずれか一つが +I/O を実行可能な状態になるのを待つ。 -´Æ»ë¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤Ï¡¢ +監視するファイルディスクリプタ集合は、 .I fds -°ú¤­¿ô¤Ç»ØÄꤹ¤ë¡£ +引き数で指定する。 .I fds -¤Ï¡¢°Ê²¼¤Î·¿¤Î¹½Â¤ÂΤÎÇÛÎó¤Ç¤¢¤ë¡£ +は、以下の型の構造体の配列である。 .in +4n .nf @@ -79,139 +79,139 @@ struct pollfd { .fi .PP .I nfds -¤Ë¤Ï¡¢ +には、 .I fds -ÇÛÎó¤ÎÍ×ÁÇ¿ô¤ò»ØÄꤹ¤ë¡£ +配列の要素数を指定する。 -¹½Â¤ÂΤΠ+構造体の .I fd -¤Ë¤Ï¥ª¡¼¥×¥ó¤·¤¿¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÆþ¤ì¤ë¡£ +にはオープンしたファイルのファイルディスクリプタを入れる。 -¹½Â¤ÂΤΠ+構造体の .I events -Í×ÁǤÏÆþÎϥѥé¥á¡¼¥¿¤Ç¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¶½Ì£¤ò»ý¤Ã¤Æ¤¤¤ë¥¤¥Ù¥ó¥È¤Î -¥Ó¥Ã¥È¥Þ¥¹¥¯¤ò»ØÄꤹ¤ë¡£ +要素は入力パラメータで、アプリケーションが興味を持っているイベントの +ビットマスクを指定する。 .I revents -Í×ÁǤϽÐÎϥѥé¥á¡¼¥¿¤Ç¡¢¼ÂºÝ¤Ëµ¯¤³¤Ã¤¿¥¤¥Ù¥ó¥È¤¬¥«¡¼¥Í¥ë¤Ë¤è¤êÀßÄꤵ¤ì¤ë¡£ +要素は出力パラメータで、実際に起こったイベントがカーネルにより設定される。 .I revents -¤ÇÊÖ¤µ¤ì¤ë¥Ó¥Ã¥ÈÎó¤Ë¤Ï¡¢ +で返されるビット列には、 .I events -¤Ç»ØÄꤷ¤¿¤â¤Î¤Î¤É¤ì¤«¡¢¤â¤·¤¯¤Ï +で指定したもののどれか、もしくは .BR POLLERR , .BR POLLHUP , .B POLLNVAL -¤Î¤¦¤Á¤Î°ì¤Ä¤¬´Þ¤Þ¤ì¤ë +のうちの一つが含まれる .RB ( POLLERR , .BR POLLHUP , .B POLLNVAL -¤Î 3¤Ä¤Î¥Ó¥Ã¥È¤Ï +の 3つのビットは .I events -¤Ë»ØÄꤷ¤Æ¤â°ÕÌ£¤¬¤Ê¤¯¡¢Âбþ¤·¤¿¾õÂÖ¤¬¿¿¤Î¾ì¹ç¤Ë +に指定しても意味がなく、対応した状態が真の場合に .I revents -¤ËÀßÄꤵ¤ì¤ë)¡£ +に設定される)。 -¤É¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤âÍ׵ᤷ¤¿¥¤¥Ù¥ó¥È¤¬È¯À¸¤·¤Æ¤ª¤é¤º¡¢ -¥¨¥é¡¼¤âµ¯¤³¤é¤Ê¤¤¾ì¹ç¡¢ +どのファイルディスクリプタにも要求したイベントが発生しておらず、 +エラーも起こらない場合、 .BR poll () -¤Ï¥¤¥Ù¥ó¥È¤Î¤¦¤Á¤¤¤º¤ì¤«°ì¤Ä¤¬È¯À¸¤¹¤ë¤Þ¤ÇÄä»ß (block) ¤¹¤ë¡£ +はイベントのうちいずれか一つが発生するまで停止 (block) する。 .I timeout -°ú¤­¿ô¤Ï +引き数は .BR poll () -¤¬Ää»ß¤¹¤ë»þ´Ö¤Î¾å¸Â¤òÀßÄꤹ¤ë¤â¤Î¤Ç¡¢¥ß¥êÉÃñ°Ì¤Ç»ØÄꤹ¤ë¡£ +が停止する時間の上限を設定するもので、ミリ秒単位で指定する。 .I timeout -¤ËÉé¤ÎÃͤò»ØÄꤹ¤ë¤È¡¢¥¿¥¤¥à¥¢¥¦¥È»þ´Ö¤¬Ìµ¸Â¤È¤Ê¤ë¡£ +に負の値を指定すると、タイムアウト時間が無限となる。 .I events -¤Ë»ØÄꤷ¤¿¤ê¡¢ +に指定したり、 .I revents -¤ÇÊÖ¤µ¤ì¤ë¥Ó¥Ã¥È¤Ï \fI\fP ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +で返されるビットは \fI\fP で定義されている: .RS .TP .B POLLIN -Æɤ߽Ф·²Äǽ¤Ê¥Ç¡¼¥¿¤¬¤¢¤ë¡£ +読み出し可能なデータがある。 .TP .B POLLPRI -Æɤ߽Ф·²Äǽ¤Ê¶ÛµÞ¥Ç¡¼¥¿ (urgent data) ¤¬¤¢¤ë -(Î㤨¤Ð¡¢TCP ¥½¥±¥Ã¥È¤ÎÂÓ°è³° (out-of-band data) ¥Ç¡¼¥¿¤ò¼õ¿®¤·¤¿¾ì¹ç¤ä¡¢ -¥Ñ¥±¥Ã¥È¥â¡¼¥É¤Îµ¼»÷üËö¤Î¥Þ¥¹¥¿¤¬¥¹¥ì¡¼¥Ö¦¤ÎÊѲ½¤ò¸«¤Ä¤±¤¿¤È¤­)¡£ +読み出し可能な緊急データ (urgent data) がある +(例えば、TCP ソケットの帯域外 (out-of-band data) データを受信した場合や、 +パケットモードの擬似端末のマスタがスレーブ側の変化を見つけたとき)。 .TP .B POLLOUT -½ñ¤­¹þ¤ß¤¬Ää»ß (block) ¤·¤Ê¤¤¾õÂ֤Ǥ¢¤ë¡£ +書き込みが停止 (block) しない状態である。 .TP -.BR POLLRDHUP " (Linux 2.6.17 °Ê¹ß)" -¥¹¥È¥ê¡¼¥à¥½¥±¥Ã¥È¤Î¾ü¤¬¡¢¥³¥Í¥¯¥·¥ç¥ó¤ò close ¤·¤¿¤«¡¢ -¥³¥Í¥¯¥·¥ç¥ó¤Î½ñ¤­¹þ¤ß¦¤ò shutdown ¤·¤¿¡£ -¤³¤ÎÄêµÁ¤òÍ­¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢ -(¡Ö¤É¤Î¡×¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤è¤ê¤âÁ°¤Ë) +.BR POLLRDHUP " (Linux 2.6.17 以降)" +ストリームソケットの他端が、コネクションを close したか、 +コネクションの書き込み側を shutdown した。 +この定義を有効にするには、 +(「どの」ヘッダファイルをインクルードするよりも前に) .B _GNU_SOURCE -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +機能検査マクロを定義しなければならない。 .TP .B POLLERR -¥¨¥é¡¼¾õÂÖ (½ÐÎϤξì¹ç¤Î¤ß)¡£ +エラー状態 (出力の場合のみ)。 .TP .B POLLHUP -¥Ï¥ó¥°¥¢¥Ã¥×¤·¤¿ (½ÐÎϤξì¹ç¤Î¤ß)¡£ +ハングアップした (出力の場合のみ)。 .TP .B POLLNVAL -ÉÔÀµ¤ÊÍ×µá: +不正な要求: .I fd -¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤ (½ÐÎϤξì¹ç¤Î¤ß)¡£ +がオープンされていない (出力の場合のみ)。 .RE .PP .B _XOPEN_SOURCE -¤òÄêµÁ¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¾ì¹ç¤Ë¤Ï¡¢°Ê²¼¤ÎÄêµÁ¤â¹Ô¤ï¤ì¤ë¡£ -¤¿¤À¤·¡¢¾åµ­¤Î¥ê¥¹¥È¤Ë¤¢¤ë¥Ó¥Ã¥È°Ê¾å¤Î¾ðÊó¤¬ÆÀ¤é¤ì¤ëÌõ¤Ç¤Ï¤Ê¤¤¡£ +を定義してコンパイルした場合には、以下の定義も行われる。 +ただし、上記のリストにあるビット以上の情報が得られる訳ではない。 .RS .TP .B POLLRDNORM .B POLLIN -¤ÈƱ¤¸¡£ +と同じ。 .TP .B POLLRDBAND -Í¥ÀèÂÓ°è¥Ç¡¼¥¿ (priority band data) ¤¬Æɤ߽Ф·²Äǽ¤Ç¤¢¤ë -(ÉáÄÌ¤Ï Linux ¤Ç¤Ï»ÈÍѤµ¤ì¤Ê¤¤)¡£ +優先帯域データ (priority band data) が読み出し可能である +(普通は Linux では使用されない)。 .\" POLLRDBAND is used in the DECnet protocol. .TP .B POLLWRNORM .B POLLOUT -¤ÈƱ¤¸¡£ +と同じ。 .TP .B POLLWRBAND -Í¥ÀèÂÓ°è¥Ç¡¼¥¿ (priority data) ¤¬½ñ¤­¹þ¤ß²Äǽ¤Ç¤¢¤ë¡£ +優先帯域データ (priority data) が書き込み可能である。 .RE .PP -Linux ¤Ç¤Ï +Linux では .B POLLMSG -¤âÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢»ÈÍѤµ¤ì¤Æ¤¤¤Ê¤¤¡£ +も定義されているが、使用されていない。 .SS ppoll() .BR poll () -¤È +と .BR ppoll () -¤Î´Ø·¸¤Ï +の関係は .BR select (2) -¤È +と .BR pselect (2) -¤Î´Ø·¸¤ÈƱ¤¸¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë: +の関係と同じようなものである: .BR pselect (2) -¤ÈƱÍͤˡ¢ +と同様に、 .BR ppoll () -¤ò»È¤¦¤È¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¾õÂÖÊѲ½ -¤â¤·¤¯¤Ï¥·¥°¥Ê¥ë¤ÎÊ᪤ò°ÂÁ´¤ËÂԤĤ³¤È¤¬¤Ç¤­¤ë¡£ +を使うと、アプリケーションはファイルディスクリプタの状態変化 +もしくはシグナルの捕捉を安全に待つことができる。 .PP .I timeout -°ú¤­¿ô¤ÎÀºÅ٤ΰ㤤¤ò½ü¤¯¤È¡¢°Ê²¼¤Î +引き数の精度の違いを除くと、以下の .BR ppoll () -¤Î¸Æ¤Ó½Ð¤·¤Ï¡¢ +の呼び出しは、 .nf ready = ppoll(&fds, nfds, timeout_ts, &sigmask); .fi -¼¡¤Î¥³¡¼¥ë¤ò +次のコールを .I atomic -¤Ë¼Â¹Ô¤¹¤ë¤Î¤ÈÅù²Á¤Ç¤¢¤ë¡£ +に実行するのと等価である。 .nf sigset_t origmask; @@ -224,27 +224,27 @@ Linux sigprocmask(SIG_SETMASK, &origmask, NULL); .fi .PP -¤Ê¤¼ +なぜ .BR ppoll () -¤¬É¬ÍפʤΤ«¤Ë¤Ä¤¤¤Æ¤ÎÀâÌÀ¤Ï +が必要なのかについての説明は .BR pselect (2) -¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +の説明を参照のこと。 .I sigmask -°ú¤­¿ô¤Ë NULL ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ÎÁàºî¤Ï¹Ô¤ï¤ì¤Ê¤¤ -(¤·¤¿¤¬¤Ã¤Æ¡¢ +引き数に NULL が指定された場合、シグナルマスクの操作は行われない +(したがって、 .BR ppoll () -¤Î +の .BR poll () -¤È¤Î°ã¤¤¤Ï +との違いは .I timeout -°ú¤­¿ô¤ÎÀºÅÙ¤À¤±¤È¤Ê¤ë)¡£ +引き数の精度だけとなる)。 .I timeout -°ú¤­¿ô¤Ï +引き数は .BR ppoll () -¤¬Ää»ß¤¹¤ë»þ´Ö¤Î¾å¸Â¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î°ú¤­¿ô¤Ë¤Ï°Ê²¼¤Î·¿¤Î¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ò»ØÄꤹ¤ë¡£ +が停止する時間の上限を指定するものである。 +この引き数には以下の型の構造体へのポインタを指定する。 .in +4n .nf @@ -256,86 +256,86 @@ struct timespec { .in .I timeout_ts -¤Ë NULL ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +に NULL が指定された場合、 .B ppoll -¤Ï̵¸Â¤ËÄä»ß¤¹¤ë¤³¤È¤¬¤¢¤êÆÀ¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤ÏÀµ¤Î¿ô¤òÊÖ¤¹¡£¤³¤Î¿ô¤Ï 0 °Ê³°¤Î +は無限に停止することがあり得る。 +.SH 返り値 +成功した場合は正の数を返す。この数は 0 以外の .I revents -Í×ÁǤò»ý¤Ä¹½Â¤ÂΤοô¤Ç¤¢¤ë (Ê̤θÀ¤¤Êý¤ò¤¹¤ë¤È¡¢¤³¤ì¤é¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿ -¤Ë¤Ï¥¤¥Ù¥ó¥È¤«¥¨¥é¡¼Êó¹ð¤¬¤¢¤ë)¡£ -ÃÍ 0 ¤Ï¡¢¥¿¥¤¥à¥¢¥¦¥È¤È¤Ê¤ê¡¢¤É¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤â¥¤¥Ù¥ó¥È¤¬ -ȯÀ¸¤·¤Ê¤«¤Ã¤¿¤³¤È¤ò¼¨¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +要素を持つ構造体の数である (別の言い方をすると、これらのディスクリプタ +にはイベントかエラー報告がある)。 +値 0 は、タイムアウトとなり、どのファイルディスクリプタでもイベントが +発生しなかったことを示す。エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EFAULT -°ú¤­¿ô¤È¤·¤Æ»ØÄꤷ¤¿ÇÛÎ󤬡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë -´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¡£ +引き数として指定した配列が、呼び出したプロセスのアドレス空間に +含まれていない。 .TP .B EINTR -Í׵ᤵ¤ì¤¿¥¤¥Ù¥ó¥È¤Î¤É¤ì¤«¤¬µ¯¤³¤ëÁ°¤Ë¥·¥°¥Ê¥ë¤¬È¯À¸¤·¤¿¡£ +要求されたイベントのどれかが起こる前にシグナルが発生した。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .I nfds -¤ÎÃͤ¬ +の値が .B RLIMIT_NOFILE -¤òĶ¤¨¤¿¡£ +を超えた。 .TP .B ENOMEM -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Æ¡¼¥Ö¥ë¤ò³ÎÊݤ¹¤ë¤¿¤á¤Î¥á¥â¥ê¤¬¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +ファイルディスクリプタ・テーブルを確保するためのメモリがない。 +.SH バージョン .BR poll () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 2.1.23 ¤ÇƳÆþ¤µ¤ì¤¿¡£ +システムコールは Linux 2.1.23 で導入された。 .BR poll () -¥é¥¤¥Ö¥é¥ê¡¦¥³¡¼¥ë¤Ï libc 5.4.28 ¤«¤éƳÆþ¤µ¤ì¤¿ -(¤³¤ì¤Ï¥«¡¼¥Í¥ë¤¬ +ライブラリ・コールは libc 5.4.28 から導入された +(これはカーネルが .BR poll () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë +システムコールをサポートしていない場合に .BR select (2) -¤ò»ÈÍѤ·¤Æ¥¨¥ß¥å¥ì¡¼¥È¤ò¹Ô¤¦)¡£ +を使用してエミュレートを行う)。 .BR ppoll () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï ¥«¡¼¥Í¥ë 2.6.16 ¤Ç Linux ¤ËÄɲ䵤줿¡£ +システムコールは カーネル 2.6.16 で Linux に追加された。 .BR ppoll () -¥é¥¤¥Ö¥é¥ê¥³¡¼¥ë¤Ï glibc 2.4 ¤ËÄɲ䵤줿¡£ -.SH ½àµò +ライブラリコールは glibc 2.4 に追加された。 +.SH 準拠 .BR poll () -¤Ï POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +は POSIX.1-2001 に準拠している。 .BR ppoll () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -.\" NetBSD 3.0 ¤Ë¤Ï pollts() ¤¬¤¢¤ë¡£ -.\" pollts() ¤Ï Linux ppoll () ¤ÈƱ¤¸¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -¤¤¤¯¤Ä¤«¤Î¼ÂÁõ¤Ç¤Ï¡¢ÃÍ \-1 ¤ò»ý¤Ã¤¿Èóɸ½à¤ÎÄê¿ô +は Linux 固有である。 +.\" NetBSD 3.0 には pollts() がある。 +.\" pollts() は Linux ppoll () と同じようなものである。 +.SH 注意 +いくつかの実装では、値 \-1 を持った非標準の定数 .B INFTIM -¤¬ÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ +が定義されており、 .BR poll () -¤Î +の .I timeout -¤Î»ØÄê¤Ë»ÈÍѤǤ­¤ë¡£ -¤³¤ÎÄê¿ô¤Ï glibc ¤Ç¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SS "Linux ¤Ç¤ÎÃí°Õ" -Linux ¤Î +の指定に使用できる。 +この定数は glibc では定義されていない。 +.SS "Linux での注意" +Linux の .BR ppoll () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +システムコールは .I timeout_ts -°ú¤­¿ô¤òÊѹ¹¤¹¤ë¡£ -¤·¤«¤·¡¢glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÅϤ¹ timeout °ú¤­¿ô -¤È¤·¤Æ¥í¡¼¥«¥ëÊÑ¿ô¤ò»È¤¦¤³¤È¤Ç¤³¤ÎÆ°ºî¤ò±£Ê䷤Ƥ¤¤ë¡£ -¤³¤Î¤¿¤á¡¢glibc ¤Î +引き数を変更する。 +しかし、glibc のラッパー関数は、システムコールに渡す timeout 引き数 +としてローカル変数を使うことでこの動作を隠蔽している。 +このため、glibc の .BR ppoll () -´Ø¿ô¤Ç¤Ï +関数では .I timeout_ts -°ú¤­¿ô¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ -.SH ¥Ð¥° +引き数は変更されない。 +.SH バグ .BR select (2) -¤Î¡Ö¥Ð¥°¡×¤ÎÀá¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡¢¸í¤Ã¤¿½àÈ÷´°Î»ÄÌÃÎ (spurious readiness -notifications) ¤Ë¤Ä¤¤¤Æ¤ÎµÄÏÀ¤ò»²¾È¤Î¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +の「バグ」の節に書かれている、誤った準備完了通知 (spurious readiness +notifications) についての議論を参照のこと。 +.SH 関連項目 .BR select (2), .BR select_tut (2), .BR time (7) diff --git a/release/man2/posix_fadvise.2 b/release/man2/posix_fadvise.2 index 68d92fb4..e323d4c6 100644 --- a/release/man2/posix_fadvise.2 +++ b/release/man2/posix_fadvise.2 @@ -31,9 +31,9 @@ .\" Updated & Modified Thu Jan 4 23:55:18 JST 2007 by Yuichi SATO, LDP v2.43 .\" .TH POSIX_FADVISE 2 2003-02-14 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -posix_fadvise \- ¥Õ¥¡¥¤¥ë¥Ç¡¼¥¿¤Î¥¢¥¯¥»¥¹¥Ñ¥¿¡¼¥ó¤ò¤¢¤é¤«¤¸¤áÀë¸À¤¹¤ë -.SH ½ñ¼° +.SH 名前 +posix_fadvise \- ファイルデータのアクセスパターンをあらかじめ宣言する +.SH 書式 .nf .B #define _XOPEN_SOURCE 600 .B #include @@ -41,115 +41,115 @@ posix_fadvise \- .BI "int posix_fadvise(int " fd ", off_t " offset ", off_t " len \ ", int " advice ");" .fi -.SH ÀâÌÀ -¥×¥í¥°¥é¥à¤Ï¡¢¾­ÍèÆÃÄê¤Î¥Ñ¥¿¡¼¥ó¤Ç¥Õ¥¡¥¤¥ë¥Ç¡¼¥¿¤Ë -¥¢¥¯¥»¥¹¤¹¤ë°Õ»×¤òÅÁ¤¨¤ë¤¿¤á¤Ë +.SH 説明 +プログラムは、将来特定のパターンでファイルデータに +アクセスする意思を伝えるために .BR posix_fadvise () -¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢¥«¡¼¥Í¥ë¤¬Å¬ÀڤʺÇŬ²½¤ò¼Â¹Ô¤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¡£ +を使うことができる。 +これにより、カーネルが適切な最適化を実行することが可能になる。 -\fIadvice\fP ¤Ï \fIfd\fP ¤¬»²¾È¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Î -\fIoffset\fP ¤«¤é»Ï¤Þ¤ë \fIlen\fP ¥Ð¥¤¥È¤ÎÈÏ°ÏÆâ -(\fIlen\fP ¤¬ 0 ¤Î¾ì¹ç¤Ï¥Õ¥¡¥¤¥ë¤Î½ª¤ê¤Þ¤Ç) ¤Î -(ɬ¤º¤·¤â¸ºß¤·¤Ê¤¤) Îΰè¤ËŬÍѤµ¤ì¤ë¡£ -¥¢¥É¥Ð¥¤¥¹¤ÏµÁ̳¤Å¤±¤Ç¤Ï¤Ê¤¤¡£ -¥¢¥É¥Ð¥¤¥¹¤Ïñ¤Ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¤¿¤á¤Ë²ÄǽÀ­¤ò¹½À®¤¹¤ë¤À¤±¤Ç¤¢¤ë¡£ +\fIadvice\fP は \fIfd\fP が参照しているファイルの +\fIoffset\fP から始まる \fIlen\fP バイトの範囲内 +(\fIlen\fP が 0 の場合はファイルの終りまで) の +(必ずしも存在しない) 領域に適用される。 +アドバイスは義務づけではない。 +アドバイスは単にアプリケーションのために可能性を構成するだけである。 -\fIadvice\fP ¤Ëµö¤µ¤ì¤ëÃͤˤϡ¢°Ê²¼¤Î¤â¤Î¤¬´Þ¤Þ¤ì¤ë: +\fIadvice\fP に許される値には、以下のものが含まれる: .TP .B POSIX_FADV_NORMAL -»ØÄꤵ¤ì¤¿¥Ç¡¼¥¿¤Î¥¢¥¯¥»¥¹¥Ñ¥¿¡¼¥ó¤ò»Ø¼¨¤¹¤ë¥¢¥É¥Ð¥¤¥¹¤ò -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬²¿¤â»ý¤Ã¤Æ¤¤¤Ê¤¤¤³¤È¤ò¼¨¤¹¡£ -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë¥¢¥É¥Ð¥¤¥¹¤¬»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢ -¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç²¾Äꤵ¤ì¤ë¡£ +指定されたデータのアクセスパターンを指示するアドバイスを +アプリケーションが何も持っていないことを示す。 +オープンされたファイルにアドバイスが指定されない場合、 +これがデフォルトで仮定される。 .TP .B POSIX_FADV_SEQUENTIAL -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï»ØÄꤵ¤ì¤¿¥Ç¡¼¥¿¤¬¥·¡¼¥±¥ó¥·¥ã¥ë¤Ë -(Â礭¤Ê¥ª¥Õ¥»¥Ã¥È¤ÎÁ°¤Ë¾®¤µ¤Ê¥ª¥Õ¥»¥Ã¥È¤Î¥Ç¡¼¥¿¤òÆɤà¤è¤¦¤Ë) -¥¢¥¯¥»¥¹¤µ¤ì¤ë¤³¤È¤ò´üÂÔ¤¹¤ë¡£ +アプリケーションは指定されたデータがシーケンシャルに +(大きなオフセットの前に小さなオフセットのデータを読むように) +アクセスされることを期待する。 .TP .B POSIX_FADV_RANDOM -»ØÄꤵ¤ì¤¿¥Ç¡¼¥¿¤¬¥é¥ó¥À¥à¤Ê½çÈ֤ǥ¢¥¯¥»¥¹¤µ¤ì¤ë¡£ +指定されたデータがランダムな順番でアクセスされる。 .TP .B POSIX_FADV_NOREUSE -»ØÄꤵ¤ì¤¿¥Ç¡¼¥¿¤Ï 1 ÅÙ¤·¤«¥¢¥¯¥»¥¹¤µ¤ì¤Ê¤¤¡£ +指定されたデータは 1 度しかアクセスされない。 .TP .B POSIX_FADV_WILLNEED -»ØÄꤵ¤ì¤¿¥Ç¡¼¥¿¤Ï¶á¤¤¾­Í襢¥¯¥»¥¹¤µ¤ì¤ë¡£ +指定されたデータは近い将来アクセスされる。 .TP .B POSIX_FADV_DONTNEED -»ØÄꤵ¤ì¤¿¥Ç¡¼¥¿¤Ï¶á¤¤¾­Í襢¥¯¥»¥¹¤µ¤ì¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¨¥é¡¼Èֹ椬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +指定されたデータは近い将来アクセスされない。 +.SH 返り値 +成功した場合は 0 が返される。 +失敗した場合はエラー番号が返される。 +.SH エラー .TP .B EBADF -\fIfd\fP °ú¤­¿ô¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +\fIfd\fP 引き数が有効なファイルディスクリプタでない。 .TP .B EINVAL -̵¸ú¤ÊÃͤ¬ \fIadvice\fP ¤Ë»ØÄꤵ¤ì¤¿¡£ +無効な値が \fIadvice\fP に指定された。 .TP .B ESPIPE -»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥Ñ¥¤¥×¤Þ¤¿¤Ï FIFO ¤ò»²¾È¤·¤Æ¤¤¤ë -(¤³¤Î¾ì¹ç¡¢Linux ¤Ï¼ÂºÝ¤Ë¤Ï +指定されたファイルディスクリプタがパイプまたは FIFO を参照している +(この場合、Linux は実際には .B EINVAL -¤òÊÖ¤¹)¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +を返す)。 +.SH バージョン .BR posix_fadvise () -¤Ï¥«¡¼¥Í¥ë 2.5.60 ¤ÇÅо줷¤¿¡£ -.\" ¼ÂºÝ¤Ë¤Ï fadvise64() ¤È¤·¤ÆÅо줷¤¿¡£-- MTK -glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.2 °Ê¹ß¤Ç¹Ô¤ï¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò +はカーネル 2.5.60 で登場した。 +.\" 実際には fadvise64() として登場した。-- MTK +glibc でのサポートは glibc バージョン 2.2 以降で行われている。 +.SH 準拠 POSIX.1-2001. .I len -°ú¤­¿ô¤Î·¿¤¬ POSIX.1-2003 TC1 ¤Ë¤ª¤¤¤Æ +引き数の型が POSIX.1-2003 TC1 において .I size_t -¤«¤é +から .I off_t -¤ËÊѹ¹¤µ¤ì¤¿ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -.SH Ãí°Õ -Linux ¤Ç¤Ï¡¢\fBPOSIX_FADV_NORMAL\fP ¤Ï¥Ð¥Ã¥­¥ó¥°¥Ç¥Ð¥¤¥¹¤Î -¥Ç¥Õ¥©¥ë¥È¥µ¥¤¥º¤ËÀèÆÉ¤ß (readahead) ¥¦¥¤¥ó¥É¥¦¤òÀßÄꤹ¤ë¡£ -\fBPOSIX_FADV_SEQUENTIAL\fP ¤Ï¤³¤Î¥µ¥¤¥º¤ò 2 Çܤ·¡¢ -\fBPOSIX_FADV_RANDOM\fP ¤ÏÀèÆɤߤòÁ´¤¯Ìµ¸ú¤Ë¤¹¤ë¡£ -¤³¤ì¤é¤ÎÊѹ¹¤Ï¥Õ¥¡¥¤¥ëÁ´ÂΤ˱ƶÁ¤·¡¢»ØÄꤵ¤ì¤¿Îΰè¤Î¤ß¤Ë±Æ¶Á¤¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤ -(¤·¤«¤·Æ±¤¸¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¾¤Î¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤Ï±Æ¶Á¤ò¼õ¤±¤Ê¤¤)¡£ +に変更された点に注意すること。 +.SH 注意 +Linux では、\fBPOSIX_FADV_NORMAL\fP はバッキングデバイスの +デフォルトサイズに先読み (readahead) ウインドウを設定する。 +\fBPOSIX_FADV_SEQUENTIAL\fP はこのサイズを 2 倍し、 +\fBPOSIX_FADV_RANDOM\fP は先読みを全く無効にする。 +これらの変更はファイル全体に影響し、指定された領域のみに影響するわけではない +(しかし同じファイルに対する他のオープンファイルハンドルは影響を受けない)。 -\fBPOSIX_FADV_WILLNEED\fP ¤Ï¡¢ -¥Ú¡¼¥¸¥­¥ã¥Ã¥·¥å¤Ë»ØÄêÎΰè¤Î¥Ö¥í¥Ã¥¯¤µ¤ì¤Ê¤¤Æɤ߹þ¤ß¤ò³«»Ï¤¹¤ë¡£ -Æɤ߹þ¤Þ¤ì¤ë¥Ç¡¼¥¿¤ÎÁíÎ̤ϡ¢ -²¾ÁÛ¥á¥â¥ê¤ÎÉé²Ù¤Ë°Í¤Ã¤Æ¥«¡¼¥Í¥ë¤¬¸º¤é¤¹¤«¤â¤·¤ì¤Ê¤¤ -(¿ô¥á¥¬¥Ð¥¤¥È¤Ç¤¢¤ì¤ÐÄ̾ï¤ÏÁ´¤¯½½Ê¬¤Ç¤¢¤ê¡¢ -¤½¤ì¤è¤ê¿¤¯¤Æ¤â¤á¤Ã¤¿¤ËÌò¤ËΩ¤¿¤Ê¤¤)¡£ +\fBPOSIX_FADV_WILLNEED\fP は、 +ページキャッシュに指定領域のブロックされない読み込みを開始する。 +読み込まれるデータの総量は、 +仮想メモリの負荷に依ってカーネルが減らすかもしれない +(数メガバイトであれば通常は全く十分であり、 +それより多くてもめったに役に立たない)。 -2.6.18 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢\fBPOSIX_FADV_NOREUSE\fP ¤Ï -\fBPOSIX_FADV_WILLNEED\fP ¤ÈƱ¤¸°ÕÌ£¤Ç¤¢¤Ã¤¿¡£ -¤³¤ì¤Ï¿ʬ¥Ð¥°¤Ç¤¢¤Ã¤¿¡£ -¥«¡¼¥Í¥ë 2.6.18 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¥Õ¥é¥°¤Ï²¿¤â¹Ô¤ï¤Ê¤¤¡£ +2.6.18 より前のカーネルでは、\fBPOSIX_FADV_NOREUSE\fP は +\fBPOSIX_FADV_WILLNEED\fP と同じ意味であった。 +これは多分バグであった。 +カーネル 2.6.18 以降では、このフラグは何も行わない。 -\fBPOSIX_FADV_DONTNEED\fP ¤Ï»ØÄꤵ¤ì¤¿Îΰè¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿ -¥­¥ã¥Ã¥·¥å¥Ú¡¼¥¸¤ò²òÊü¤·¤è¤¦¤È¤¹¤ë¡£ -Î㤨¤Ð¡¢¤³¤ì¤ÏÂ礭¤Ê¥Õ¥¡¥¤¥ë¤ò¥¹¥È¥ê¡¼¥ß¥ó¥°¤¹¤ë¤È¤­¤ËÌòΩ¤Ä¡£ -¥×¥í¥°¥é¥à¤Ï¡¢»ÈÍѺѤߤΥ­¥ã¥Ã¥·¥å¤µ¤ì¤¿¥Ç¡¼¥¿¤ò²òÊü¤¹¤ë¤è¤¦¤Ë¡¢ -Äê´üŪ¤Ë¥«¡¼¥Í¥ë¤ËÍ׵᤹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤½¤¦¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢¤µ¤é¤ËÍ­¸ú¤Ê¥­¥ã¥Ã¥·¥å¤µ¤ì¤¿¥Ú¡¼¥¸¤¬¡¢ -Âå¤ï¤ê¤ËÇË´þ¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ +\fBPOSIX_FADV_DONTNEED\fP は指定された領域に関連付けられた +キャッシュページを解放しようとする。 +例えば、これは大きなファイルをストリーミングするときに役立つ。 +プログラムは、使用済みのキャッシュされたデータを解放するように、 +定期的にカーネルに要求するかもしれない。 +そうすることにより、さらに有効なキャッシュされたページが、 +代わりに破棄されることはない。 -¤Þ¤À½ñ¤­½Ð¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ú¡¼¥¸¤Ï±Æ¶Á¤ò¼õ¤±¤Ê¤¤¤Î¤Ç¡¢ -¤½¤Î¥Ú¡¼¥¸¤Î²òÊü¤¬Êݾڤµ¤ì¤ë¤³¤È¤ò¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬Ë¾¤ó¤Ç¤¤¤ë¤Ê¤é¡¢ -ºÇ½é¤Ë +まだ書き出されていないページは影響を受けないので、 +そのページの解放が保証されることをアプリケーションが望んでいるなら、 +最初に .BR fsync (2) -¤Þ¤¿¤Ï +または .BR fdatasync (2) -¤ò¸Æ¤Ö¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ¥Ð¥° -2.6.6 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +を呼ぶべきである。 +.SH バグ +2.6.6 より前のカーネルでは、 .I len -¤Ë 0 ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ -¡Ö¥Õ¥¡¥¤¥ë¤Î½ª¤ê¤Þ¤Ç¤ÎÁ´¤Æ¤Î¥Ð¥¤¥È¡×¤È¤¤¤¦°ÕÌ£¤Ç¤Ï¤Ê¤¯¡¢ -ʸ»úÄ̤ê¡Ö0 ¥Ð¥¤¥È¡×¤È¤·¤Æ²ò¼á¤µ¤ì¤Æ¤¤¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +に 0 が指定された場合、 +「ファイルの終りまでの全てのバイト」という意味ではなく、 +文字通り「0 バイト」として解釈されていた。 +.SH 関連項目 .BR readahead (2), .BR posix_fallocate (3), .BR posix_madvise (3) diff --git a/release/man2/prctl.2 b/release/man2/prctl.2 index 48557fda..e2e7c891 100644 --- a/release/man2/prctl.2 +++ b/release/man2/prctl.2 @@ -48,376 +48,376 @@ .\" Updated 2007-10-12, Akihiro MOTOKI, LDP v2.66 .\" Updated 2008-08-12, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: capability ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ -.\"WORD: keep capabilities ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ÊÝ»ý +.\"WORD: capability ケーパビリティ +.\"WORD: keep capabilities ケーパビリティ保持 .\" .TH PRCTL 2 2008-07-16 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -prctl \- ¥×¥í¥»¥¹¤ÎÁàºî¤ò¹Ô¤Ê¤¦ -.SH ½ñ¼° +.SH 名前 +prctl \- プロセスの操作を行なう +.SH 書式 .nf .B #include .sp .BI "int prctl(int " option ", unsigned long " arg2 ", unsigned long " arg3 , .BI " unsigned long " arg4 ", unsigned long " arg5 ); .fi -.SH ÀâÌÀ +.SH 説明 .BR prctl () -¤ÎÆ°ºî¤ÏºÇ½é¤Î°ú¤­¿ô¤Ë¤è¤Ã¤Æ·èÄꤵ¤ì¤ë (¤³¤ÎÃÍ¤Ï -\fI\fP ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ -»Ä¤ê¤Î°ú¤­¿ô¤ÏºÇ½é¤Î°ú¤­¿ô¤Ë¤è¤Ã¤ÆÊѲ½¤¹¤ë¡£ -°ìÈÖÌܤΰú¤­¿ô¤È¤·¤Æ°Ê²¼¤Î¤â¤Î¤ò»ØÄê¤Ç¤­¤ë: -.TP -.BR PR_CAPBSET_READ " (Linux 2.6.25 °Ê¹ß)" -¤Ç»ØÄꤵ¤ì¤¿¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ -¥Ð¥¤¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È (capability bounding set) ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -(´Ø¿ô¤ÎÊÖ¤êÃͤȤ·¤Æ) 1 ¤òÊÖ¤·¡¢¤½¤¦¤Ç¤Ê¤¤¾ì¹ç 0 ¤òÊÖ¤¹ -(¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£Äê¿ô¤Ï +の動作は最初の引き数によって決定される (この値は +\fI\fP に定義されている)。 +残りの引き数は最初の引き数によって変化する。 +一番目の引き数として以下のものを指定できる: +.TP +.BR PR_CAPBSET_READ " (Linux 2.6.25 以降)" +で指定されたケーパビリティが呼び出したスレッドのケーパビリティ +バインディングセット (capability bounding set) に含まれている場合、 +(関数の返り値として) 1 を返し、そうでない場合 0 を返す +(ケーパビリティ定数は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï¡¢ +で定義されている)。 +ケーパビリティバウンディングセットは、 .BR execve (2) -¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¡¢¥Õ¥¡¥¤¥ë¤Îµö²Ä (permitted) ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ÎÃæ¤Ç -¤½¤Î¥×¥í¥»¥¹¤¬³ÍÆÀ¤Ç¤­¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»Ø¼¨¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +を呼び出した際に、ファイルの許可 (permitted) ケーパビリティの中で +そのプロセスが獲得できるケーパビリティを指示するものである。 .I arg2 -¤Ë»ØÄꤵ¤ì¤¿¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬Í­¸ú¤Ç¤Ê¤¤¾ì¹ç¡¢ -¸Æ¤Ó½Ð¤·¤Ï¥¨¥é¡¼ +に指定されたケーパビリティが有効でない場合、 +呼び出しはエラー .B EINVAL -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .TP -.BR PR_CAPBSET_DROP " (Linux 2.6.25 °Ê¹ß)" -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤¬¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ +.BR PR_CAPBSET_DROP " (Linux 2.6.25 以降)" +呼び出したスレッドがケーパビリティ .B CAP_SETPCAP -¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤«¤é +を持っている場合、 +呼び出したスレッドのケーパビリティバウンディングセットから .I arg2 -¤Ç»ØÄꤵ¤ì¤¿¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò³°¤¹¡£ -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î»Ò¥×¥í¥»¥¹¤ÏÊѹ¹¸å¤Î¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤ò -·Ñ¾µ¤¹¤ë¡£ +で指定されたケーパビリティを外す。 +呼び出したスレッドの子プロセスは変更後のバウンディングセットを +継承する。 -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤¬ +呼び出したスレッドが .B CAP_SETPCAP -¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¤Ï¥¨¥é¡¼ +を持っていない場合、呼び出しはエラー .B EPERM -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .I arg2 -¤Ë»ØÄꤵ¤ì¤¿¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬Í­¸ú¤Ç¤Ê¤¤¾ì¹ç¡¢ +に指定されたケーパビリティが有効でない場合、 .B EINVAL -¤Ç¼ºÇÔ¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¥«¡¼¥Í¥ë¤ÇÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç -(¤³¤Î¾ì¹ç¤Ë¤Ï¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Ê¤¤)¡¢ +で失敗する。 +ファイルケーパビリティがカーネルで有効になっていない場合 +(この場合にはバウンディングセットがサポートされない)、 .B EINVAL -¤Ç¼ºÇÔ¤¹¤ë¡£ -.TP -.BR PR_SET_DUMPABLE " (Linux 2.3.20 °Ê¹ß)" -(Linux 2.3.20 °Ê¹ß) -¥Ç¥Õ¥©¥ë¥È¤Î¿¶¤ëÉñ¤¤¤Ç¤Ï¥³¥¢¥À¥ó¥×¤ò°ú¤­µ¯¤³¤¹¤è¤¦¤Ê¥·¥°¥Ê¥ë¤ò¼õ¿®¤·¤¿¤È¤­¤Ë¡¢ -¥³¥¢¥À¥ó¥×¤¹¤ë¤«¤É¤¦¤«¤ò·èÄꤹ¤ë¥Õ¥é¥°¤òÀßÄꤹ¤ë -(Ä̾盧¤Î¥Õ¥é¥°¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -set-user-ID ¤¢¤ë¤¤¤Ï set-group-ID ¥×¥í¥°¥é¥à¤¬¼Â¹Ô¤µ¤ì¤¿¤ê¡¢ -¤µ¤Þ¤¶¤Þ¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤è¤Ã¤Æ¥×¥í¥»¥¹¤Î UID ¤ä GID ¤¬Áàºî¤µ¤ì¤¿¤È¤­¤Ë -¥¯¥ê¥¢¤µ¤ì¤ë)¡£ -2.6.12 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +で失敗する。 +.TP +.BR PR_SET_DUMPABLE " (Linux 2.3.20 以降)" +(Linux 2.3.20 以降) +デフォルトの振る舞いではコアダンプを引き起こすようなシグナルを受信したときに、 +コアダンプするかどうかを決定するフラグを設定する +(通常このフラグは、デフォルトではセットされているが、 +set-user-ID あるいは set-group-ID プログラムが実行されたり、 +さまざまなシステムコールによってプロセスの UID や GID が操作されたときに +クリアされる)。 +2.6.12 以前のカーネルでは、 .I arg2 -¤Ï 0 (¥×¥í¥»¥¹¤Ï¥À¥ó¥×ÉÔ²Ä) ¤¢¤ë¤¤¤Ï 1 (¥×¥í¥»¥¹¤Ï¥À¥ó¥×²Äǽ) ¤Î -¤É¤Á¤é¤«¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -2.6.13 ¤«¤é 2.6.17 ¤Þ¤Ç¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ÃÍ 2 ¤âǧ¤á¤é¤ì¤Æ¤¤¤¿¡£ -¤³¤ÎÃͤò»ØÄꤹ¤ë¤È¡¢Ä̾ï¤Ï¥À¥ó¥×¤µ¤ì¤Ê¤¤¥Ð¥¤¥Ê¥ê¤¬ root ¤À¤±¤¬ -Æɤ߹þ¤ß²Äǽ¤Ê·Á¤Ç¥À¥ó¥×¤µ¤ì¤¿¡£ -¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÍýͳ¤«¤é¡¢¤³¤Îµ¡Ç½¤Ïºï½ü¤µ¤ì¤¿ +は 0 (プロセスはダンプ不可) あるいは 1 (プロセスはダンプ可能) の +どちらかでなければならない。 +2.6.13 から 2.6.17 までのカーネルでは、値 2 も認められていた。 +この値を指定すると、通常はダンプされないバイナリが root だけが +読み込み可能な形でダンプされた。 +セキュリティ上の理由から、この機能は削除された .\" See http://marc.theaimsgroup.com/?l=linux-kernel&m=115270289030630&w=2 .\" Subject: Fix prctl privilege escalation (CVE-2006-2451) .\" From: Marcel Holtmann .\" Date: 2006-07-12 11:12:00 .RB ( proc (5) -¤Î +の .I /proc/sys/fs/suid_dumpable -¤ÎÀâÌÀ¤â»²¾È)¡£ -.TP -.BR PR_GET_DUMPABLE " (Linux 2.3.20 °Ê¹ß)" -(Linux 2.3.20 °Ê¹ß) -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë¤ª¤±¤ë¥À¥ó¥×²Äǽ¥Õ¥é¥°¤Î -¸½ºß¤Î¾õÂÖ¤ò (´Ø¿ô¤ÎÊÖ¤êÃͤȤ·¤Æ) ÊÖ¤¹¡£ -.\" [Í×½¤Àµ] Linux 2.6.13 °Ê¹ß¤Ç¤Ï¡¢¥À¥ó¥×²Äǽ¥Õ¥é¥°¤ÏÃÍ 2 ¤ò¤È¤ë¤³¤È¤¬ -.\" ¤Ç¤­¤ë¤¬¡¢2.6.13 ¤Ç¤Ï PR_GET_DUMPABLE ¤Ï¥À¥ó¥×²Äǽ¥Õ¥é¥°¤¬ 0 °Ê³°¤Î -.\" Ãͤξì¹ç 1 ¤òÊÖ¤¹¤À¤±¤Ç¤¢¤ë¡£¤³¤ì¤Ï 2.6.14 ¤Ç½¤Àµ¤µ¤ì¤¿¡£ -.TP -.BR PR_SET_ENDIAN " (Linux 2.6.18 °Ê¹ß¡¢PowerPC ¤Î¤ß)" -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥¨¥ó¥Ç¥£¥¢¥óÀßÄê (endian-ness) ¤ò -\fIarg2\fP ¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£ -»ØÄê¤Ç¤­¤ëÃÍ¤Ï -.\" ¤½¤ì¤¾¤ì 0, 1, 2 +の説明も参照)。 +.TP +.BR PR_GET_DUMPABLE " (Linux 2.3.20 以降)" +(Linux 2.3.20 以降) +呼び出し元プロセスにおけるダンプ可能フラグの +現在の状態を (関数の返り値として) 返す。 +.\" [要修正] Linux 2.6.13 以降では、ダンプ可能フラグは値 2 をとることが +.\" できるが、2.6.13 では PR_GET_DUMPABLE はダンプ可能フラグが 0 以外の +.\" 値の場合 1 を返すだけである。これは 2.6.14 で修正された。 +.TP +.BR PR_SET_ENDIAN " (Linux 2.6.18 以降、PowerPC のみ)" +呼び出し元プロセスのエンディアン設定 (endian-ness) を +\fIarg2\fP で指定された値に設定する。 +指定できる値は +.\" それぞれ 0, 1, 2 .BR PR_ENDIAN_BIG , .BR PR_ENDIAN_LITTLE , .B PR_ENDIAN_PPC_LITTLE -(PowerPC µ¼»÷¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó) -¤Î¤¤¤º¤ì¤«°ì¤Ä¤Ç¤¢¤ë¡£ +(PowerPC 擬似リトルエンディアン) +のいずれか一つである。 .TP -.BR PR_GET_ENDIAN " (Linux 2.6.18 °Ê¹ß¡¢PowerPC ¤Î¤ß)" -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥¨¥ó¥Ç¥£¥¢¥óÀßÄê (endian-ness) ¤ò +.BR PR_GET_ENDIAN " (Linux 2.6.18 以降、PowerPC のみ)" +呼び出し元プロセスのエンディアン設定 (endian-ness) を .I "(int\ *) arg2" -¤¬»Ø¤¹¾ì½ê¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ -.TP -.BR PR_SET_FPEMU " (Linux 2.4.18 °Ê¹ß, 2.5.9, ia64 ¤Î¤ß)" -ÉâÆ°¾®¿ôÅÀ¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó (floating-point emulation) À©¸æ¥Ó¥Ã¥È¤ò -\fIarg2\fP ¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£ -»ØÄê¤Ç¤­¤ëÃÍ¤Ï \fBPR_FPEMU_NOPRINT\fP (ÉâÆ°¾®¿ôÅÀÌ¿Îᥢ¥¯¥»¥¹¤òÌÛ¤Ã¤Æ -¥¨¥ß¥å¥ì¡¼¥È¤¹¤ë) ¤« \fBPR_FPEMU_SIGFPE\fP (ÉâÆ°¾®¿ôÅÀÌ¿Îá¤ò¥¨¥ß¥å¥ì¡¼¥È¤»¤º¡¢ -Âå¤ï¤ê¤Ë +が指す場所に格納して返す。 +.TP +.BR PR_SET_FPEMU " (Linux 2.4.18 以降, 2.5.9, ia64 のみ)" +浮動小数点エミュレーション (floating-point emulation) 制御ビットを +\fIarg2\fP で指定された値に設定する。 +指定できる値は \fBPR_FPEMU_NOPRINT\fP (浮動小数点命令アクセスを黙って +エミュレートする) か \fBPR_FPEMU_SIGFPE\fP (浮動小数点命令をエミュレートせず、 +代わりに .B SIGFPE -¤òÁ÷¤ë) ¤Ç¤¢¤ë¡£ +を送る) である。 .TP -.BR PR_GET_FPEMU " (Linux 2.4.18 °Ê¹ß, 2.5.9, ia64 ¤Î¤ß)" -ÉâÆ°¾®¿ôÅÀ¥¨¥ß¥å¥ì¡¼¥·¥ç¥óÀ©¸æ¥Ó¥Ã¥È¤ÎÃͤò +.BR PR_GET_FPEMU " (Linux 2.4.18 以降, 2.5.9, ia64 のみ)" +浮動小数点エミュレーション制御ビットの値を .I "(int\ *) arg2" -¤¬»Ø¤¹¾ì½ê¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ -.TP -.BR PR_SET_FPEXC " (Linux 2.4.21 ¤ª¤è¤Ó 2.5.32 °Ê¹ß¡¢PowerPC ¤Î¤ß)" -ÉâÆ°¾®¿ôÅÀÎã³°¥â¡¼¥É (floating-point exception mode) ¤ò -\fIarg2\fP ¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£ -»ØÄê¤Ç¤­¤ë¤Î¤Ï°Ê²¼¤ÎÃͤǤ¢¤ë: -\fBPR_FP_EXC_SW_ENABLE\fP (FPEXC ¤ÇÉâÆ°¾®¿ôÅÀÎã³°¤òÍ­¸ú¤Ë¤¹¤ë)¡¢ -\fBPR_FP_EXC_DIV\fP (0 ½ü»»)¡¢ -\fBPR_FP_EXC_OVF\fP (¥ª¡¼¥Ð¡¼¥Õ¥í¡¼)¡¢ -\fBPR_FP_EXC_UND\fP (¥¢¥ó¥À¡¼¥Õ¥í¡¼)¡¢ -\fBPR_FP_EXC_RES\fP (ÉÔÀµ³Î¤Ê·ë²Ì (inexact result))¡¢ -\fBPR_FP_EXC_INV\fP (ÉÔÀµ¤ÊÌ¿Îá (invalid operation))¡¢ -\fBPR_FP_EXC_DISABLED\fP (ÉâÆ°¾®¿ôÅÀÎã³°¤ò̵¸ú¤Ë¤¹¤ë)¡¢ -\fBPR_FP_EXC_NONRECOV\fP (async nonrecoverable exception mode)¡¢ -\fBPR_FP_EXC_ASYNC\fP (async recoverable exception mode)¡¢ -\fBPR_FP_EXC_PRECISE\fP (precise exception mode)¡£ -.TP -.BR PR_GET_FPEXC "(Linux 2.4.21 ¤ª¤è¤Ó 2.5.32 °Ê¹ß¡¢PowerPC ¤Î¤ß)" -ÉâÆ°¾®¿ôÅÀÎã³°¥â¡¼¥É¤ÎÃͤò +が指す場所に格納して返す。 +.TP +.BR PR_SET_FPEXC " (Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)" +浮動小数点例外モード (floating-point exception mode) を +\fIarg2\fP で指定された値に設定する。 +指定できるのは以下の値である: +\fBPR_FP_EXC_SW_ENABLE\fP (FPEXC で浮動小数点例外を有効にする)、 +\fBPR_FP_EXC_DIV\fP (0 除算)、 +\fBPR_FP_EXC_OVF\fP (オーバーフロー)、 +\fBPR_FP_EXC_UND\fP (アンダーフロー)、 +\fBPR_FP_EXC_RES\fP (不正確な結果 (inexact result))、 +\fBPR_FP_EXC_INV\fP (不正な命令 (invalid operation))、 +\fBPR_FP_EXC_DISABLED\fP (浮動小数点例外を無効にする)、 +\fBPR_FP_EXC_NONRECOV\fP (async nonrecoverable exception mode)、 +\fBPR_FP_EXC_ASYNC\fP (async recoverable exception mode)、 +\fBPR_FP_EXC_PRECISE\fP (precise exception mode)。 +.TP +.BR PR_GET_FPEXC "(Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)" +浮動小数点例外モードの値を .I "(int\ *) arg2" -¤¬»Ø¤¹¾ì½ê¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ -.TP -.BR PR_SET_KEEPCAPS " (Linux 2.2.18 °Ê¹ß)" -¥¹¥ì¥Ã¥É¤Î¡Ö¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ÊÝ»ý¡×¥Õ¥é¥°¤òÀßÄꤹ¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï¡¢¥¹¥ì¥Ã¥É¤Î¼Â UID¡¢¼Â¸ú UID¡¢Êݸ set-user-ID ¤Î¤¦¤Á¾¯¤Ê¤¯¤È¤â -°ì¤Ä¤¬ 0 ¤Ç¤¢¤Ã¤¿¾õÂÖ¤«¤é¡¢¤³¤ì¤éÁ´¤Æ¤¬ 0 °Ê³°¤ËÊѹ¹¤µ¤ì¤¿¤È¤­¡¢ -¥¹¥ì¥Ã¥É¤Î¼Â¸ú/µö²Ä¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£½¸¹ç¤¬¥¯¥ê¥¢¤µ¤ì¤ë¤«¤É¤¦¤«¤ò·èÄꤹ¤ë -(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£½¸¹ç¤Ï¥¯¥ê¥¢¤µ¤ì¤ë)¡£ +が指す場所に格納して返す。 +.TP +.BR PR_SET_KEEPCAPS " (Linux 2.2.18 以降)" +スレッドの「ケーパビリティ保持」フラグを設定する。 +このフラグは、スレッドの実 UID、実効 UID、保存 set-user-ID のうち少なくとも +一つが 0 であった状態から、これら全てが 0 以外に変更されたとき、 +スレッドの実効/許可のケーパビリティ集合がクリアされるかどうかを決定する +(デフォルトでは、これらのケーパビリティ集合はクリアされる)。 .I arg2 -¤Ï 0 (¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥¯¥ê¥¢¤¹¤ë) ¤¢¤ë¤¤¤Ï 1 (¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÊÝ»ý¤¹¤ë) ¤Î -¤É¤Á¤é¤«¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は 0 (ケーパビリティをクリアする) あるいは 1 (ケーパビリティを保持する) の +どちらかでなければならない。 .BR execve (2) -¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤È¡¢¤³¤ÎÃÍ¤Ï 0 ¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë¡£ +が呼び出されると、この値は 0 にリセットされる。 .TP -.BR PR_GET_KEEPCAPS " (Linux 2.2.18 °Ê¹ß)" -¸Æ¤Ó½Ð¤·¸µ¥¹¥ì¥Ã¥É¤Ë¤ª¤±¤ë¡Ö¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ÊÝ»ý¡×¥Õ¥é¥°¤Î -¸½ºß¤Î¾õÂÖ¤ò (´Ø¿ô¤ÎÊÖ¤êÃͤȤ·¤Æ) ÊÖ¤¹¡£ +.BR PR_GET_KEEPCAPS " (Linux 2.2.18 以降)" +呼び出し元スレッドにおける「ケーパビリティ保持」フラグの +現在の状態を (関数の返り値として) 返す。 .TP -.BR PR_SET_NAME " (Linux 2.6.9 °Ê¹ß)" -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹Ì¾¤ò +.BR PR_SET_NAME " (Linux 2.6.9 以降)" +呼び出し元プロセスのプロセス名を .I "(char\ *) arg2" -¤¬»Ø¤¹¾ì½ê¤Ë³ÊǼ¤µ¤ì¤¿Ãͤò»È¤Ã¤ÆÀßÄꤹ¤ë¡£ -̾Á°¤ÏºÇÂç¤Ç 16 ¥Ð¥¤¥È¤Ç¤¢¤ê¡¢ +が指す場所に格納された値を使って設定する。 +名前は最大で 16 バイトであり、 .\" TASK_COMM_LEN in include/linux/sched.h -¤½¤ì¤è¤ê¾¯¤Ê¤¤¥Ð¥¤¥È¿ô¤Î¾ì¹ç¤Ï NULL ¤Ç½ªÃ¼¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +それより少ないバイト数の場合は NULL で終端すべきである。 .TP -.BR PR_GET_NAME " (Linux 2.6.11 °Ê¹ß)" -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹Ì¾¤ò +.BR PR_GET_NAME " (Linux 2.6.11 以降)" +呼び出し元プロセスのプロセス名を .I "(char\ *) arg2" -¤¬»Ø¤¹¾ì½ê¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ -¥Ð¥Ã¥Õ¥¡¤ÏºÇÂç¤Ç 16 ¥Ð¥¤¥È¤ò³ÊǼ¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -ÊÖ¤µ¤ì¤ëʸ»úÎó¤Ï¡¢Ä¹¤µ¤¬ 16 ¥Ð¥¤¥È¤è¤êû¤¤¾ì¹ç¤Ï NULL ½ªÃ¼¤µ¤ì¤ë¡£ -.TP -.BR PR_SET_PDEATHSIG " (Linux 2.1.57 °Ê¹ß)" -¿Æ¥×¥í¥»¥¹»àË´¥·¥°¥Ê¥ë (parent process death signal) ¤ò \fIarg2\fP ¤ËÀßÄꤹ¤ë -(ÀßÄê¤Ç¤­¤ë¥·¥°¥Ê¥ëÃͤÎÈÏ°Ï¤Ï 1..maxsig ¤Ç¤¢¤ê¡¢0 ¤ÏÄÌÃΤβò½ü¤Ç¤¢¤ë)¡£ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¿Æ¥×¥í¥»¥¹¤¬»à¤ó¤ÀºÝ¤Ë¡¢¤³¤³¤ÇÀßÄꤷ¤¿Ãͤ¬ -¥·¥°¥Ê¥ë¤È¤·¤ÆÄÌÃΤµ¤ì¤ë¡£¤³¤ÎÃÍ¤Ï +が指す場所に格納して返す。 +バッファは最大で 16 バイトを格納できるようにすべきである。 +返される文字列は、長さが 16 バイトより短い場合は NULL 終端される。 +.TP +.BR PR_SET_PDEATHSIG " (Linux 2.1.57 以降)" +親プロセス死亡シグナル (parent process death signal) を \fIarg2\fP に設定する +(設定できるシグナル値の範囲は 1..maxsig であり、0 は通知の解除である)。 +呼び出し元プロセスの親プロセスが死んだ際に、ここで設定した値が +シグナルとして通知される。この値は .BR fork (2) -¤Î»Ò¥×¥í¥»¥¹¤Ç¤Ï²ò½ü¤µ¤ì¤ë¡£ +の子プロセスでは解除される。 .TP -.BR PR_GET_PDEATHSIG " (Linux 2.3.15 °Ê¹ß)" -¿Æ¥×¥í¥»¥¹»àË´¥·¥°¥Ê¥ë¤Î¸½ºß¤ÎÃͤò +.BR PR_GET_PDEATHSIG " (Linux 2.3.15 以降)" +親プロセス死亡シグナルの現在の値を .I "(int\ *) arg2" -¤¬»Ø¤¹¾ì½ê¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ +が指す場所に格納して返す。 .TP -.BR PR_SET_SECCOMP " (Linux 2.6.23 °Ê¹ß)" +.BR PR_SET_SECCOMP " (Linux 2.6.23 以降)" .\" See http://thread.gmane.org/gmane.linux.kernel/542632 .\" [PATCH 0 of 2] seccomp updates .\" andrea@cpushare.com -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î secure computing ¥â¡¼¥É¤òÀßÄꤹ¤ë¡£ -¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¡¢ +呼び出したスレッドの secure computing モードを設定する。 +現在の実装では、 .I arg2 -¤Ï 1 ¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -secure computing ¥â¡¼¥É¤ò 1 ¤ËÀßÄꤹ¤ë¤È¡¢ -¤½¤Î¥¹¥ì¥Ã¥É¤¬¸Æ¤Ó½Ð¤·¤òµö²Ä¤µ¤ì¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +は 1 にしなければならない。 +secure computing モードを 1 に設定すると、 +そのスレッドが呼び出しを許可されるシステムコールは .BR read (2), .BR write (2), .BR _exit (2), .BR sigreturn (2) -¤À¤±¤Ë¤Ê¤ë¡£ -¤½¤ì°Ê³°¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¥·¥°¥Ê¥ë +だけになる。 +それ以外のシステムコールを呼び出すと、シグナル .B SIGKILL -¤¬ÇÛÁ÷¤µ¤ì¤ë¡£ -¥Ñ¥¤¥×¤ä¥½¥±¥Ã¥È¤«¤éÆɤ߹þ¤ó¤À¡¢¿®Íê¤Ç¤­¤Ê¤¤¥Ð¥¤¥È¥³¡¼¥É¤ò¼Â¹Ô¤¹¤ë -ɬÍפ¬¤¢¤ëÂçÎ̤α黻¤ò¹Ô¤¦¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤ª¤¤¤Æ¡¢ -secure computing ¥â¡¼¥É¤ÏÌòΩ¤Ä¡£ -¤³¤ÎÁàºî¤ÏÍøÍѤǤ­¤ë¤Î¤Ï¡¢¥«¡¼¥Í¥ë¤¬ CONFIG_SECCOMP ¤òÍ­¸ú¤Ë¤·¤Æ -ºîÀ®¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤À¤±¤Ç¤¢¤ë¡£ -.TP -.BR PR_GET_SECCOMP " (Linux 2.6.23 °Ê¹ß)" -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î secure computing ¥â¡¼¥É¤òÊÖ¤¹¡£ -¸½ºß¤Î¼ÂÁõ (¥â¡¼¥É¤Ï 1 ¸ÇÄê) ¤Ï¤¢¤Þ¤êÌò¤ËΩ¤¿¤Ê¤¤¤¬¡¢ -¾­Í辤Υ⡼¥É¤¬¼ÂÁõ¤µ¤ì¤ë¤ÈÌòΩ¤Ä¤è¤¦¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤¬ secure computing ¥â¡¼¥É¤Ç¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ -¤³¤ÎÁàºî¤Ï 0 ¤òÊÖ¤¹¡£ -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤¬ secure computing ¥â¡¼¥É¤Î¾ì¹ç¡¢ +が配送される。 +パイプやソケットから読み込んだ、信頼できないバイトコードを実行する +必要がある大量の演算を行うアプリケーションにおいて、 +secure computing モードは役立つ。 +この操作は利用できるのは、カーネルが CONFIG_SECCOMP を有効にして +作成されている場合だけである。 +.TP +.BR PR_GET_SECCOMP " (Linux 2.6.23 以降)" +呼び出したスレッドの secure computing モードを返す。 +現在の実装 (モードは 1 固定) はあまり役に立たないが、 +将来他のモードが実装されると役立つようになるかもしれない。 +呼び出したスレッドが secure computing モードでなかった場合、 +この操作は 0 を返す。 +呼び出したスレッドが secure computing モードの場合、 .BR prctl () -¤ò¸Æ¤Ó½Ð¤¹¤È¥·¥°¥Ê¥ë +を呼び出すとシグナル .B SIGKILL -¤¬¤½¤Î¥×¥í¥»¥¹¤ËÁ÷¿®¤µ¤ì¤ë¡£ -¤³¤ÎÁàºî¤¬ÍøÍѤǤ­¤ë¤Î¤Ï¡¢¥«¡¼¥Í¥ë¤¬ CONFIG_SECCOMP ¤òÍ­¸ú¤Ë¤·¤Æ -ºîÀ®¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤À¤±¤Ç¤¢¤ë¡£ +がそのプロセスに送信される。 +この操作が利用できるのは、カーネルが CONFIG_SECCOMP を有効にして +作成されている場合だけである。 .TP -.BR PR_SET_SECUREBITS " (Linux 2.6.26 °Ê¹ß)" -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î "securebits" ¥Õ¥é¥°¤ò +.BR PR_SET_SECUREBITS " (Linux 2.6.26 以降)" +呼び出したスレッドの "securebits" フラグを .I arg2 -¤ÇÅϤµ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£ +で渡された値に設定する。 .BR capabilities (7) -»²¾È¡£ +参照。 .TP -.BR PR_GET_SECUREBITS " (Linux 2.6.26 °Ê¹ß)" -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î "securebits" ¥Õ¥é¥°¤ò -(´Ø¿ô¤ÎÊÖ¤êÃͤȤ·¤Æ) ÊÖ¤¹¡£ +.BR PR_GET_SECUREBITS " (Linux 2.6.26 以降)" +呼び出したスレッドの "securebits" フラグを +(関数の返り値として) 返す。 .BR capabilities (7) -»²¾È¡£ +参照。 .TP -.BR PR_SET_TIMING " (Linux 2.6.0-test4 °Ê¹ß)" -(Ä̾ï¤Î¡¢ÅÁÅýŪ¤Ë»È¤ï¤ì¤Æ¤­¤¿) Åý·×Ū¤Ê¥×¥í¥»¥¹¥¿¥¤¥ß¥ó¥°¤ò»ÈÍѤ¹¤ë¤«¡¢ -Àµ³Î¤Ê¥¿¥¤¥à¥¹¥¿¥ó¥×¤Ë´ð¤Å¤¯¥×¥í¥»¥¹¥¿¥¤¥ß¥ó¥°¤ò»ÈÍѤ¹¤ë¤«¤òÀßÄꤹ¤ë¡£ -\fIarg2\fP ¤Ë»ØÄê¤Ç¤­¤ëÃÍ¤Ï +.BR PR_SET_TIMING " (Linux 2.6.0-test4 以降)" +(通常の、伝統的に使われてきた) 統計的なプロセスタイミングを使用するか、 +正確なタイムスタンプに基づくプロセスタイミングを使用するかを設定する。 +\fIarg2\fP に指定できる値は .B PR_TIMING_STATISTICAL .\" 0 -¤« +か .B PR_TIMING_TIMESTAMP .\" 1 -¤Ç¤¢¤ë¡£ +である。 .B PR_TIMING_TIMESTAMP -¤Ï¸½ºß¤Î¤È¤³¤í¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤ -(¤³¤Î¥â¡¼¥É¤ËÀßÄꤷ¤è¤¦¤È¤¹¤ë¤È¥¨¥é¡¼ +は現在のところ実装されていない +(このモードに設定しようとするとエラー .B EINVAL -¤¬µ¯¤³¤ë¤³¤È¤À¤í¤¦)¡£ -.\" 2.6.26-rc8 ¤Ç¤Ï PR_TIMING_TIMESTAMP ¤Ï²¿¤â¤·¤Ê¤¤¡£ -.\" ¥Ñ¥Ã¥Á¤ÎÍúÎò¤ò¸«¤¿¤¬¡¢²áµî¤Ë¤â²¿¤«¤ò¤·¤¿¤³¤È¤â¤Ê¤¤¡£ +が起こることだろう)。 +.\" 2.6.26-rc8 では PR_TIMING_TIMESTAMP は何もしない。 +.\" パッチの履歴を見たが、過去にも何かをしたこともない。 .TP -.BR PR_GET_TIMING " (Linux 2.6.0-test4 °Ê¹ß)" -¸½ºß»ÈÍÑÃæ¤Î¥×¥í¥»¥¹¥¿¥¤¥ß¥ó¥°¤ò·è¤á¤ëÊýË¡¤òÊÖ¤¹¡£ +.BR PR_GET_TIMING " (Linux 2.6.0-test4 以降)" +現在使用中のプロセスタイミングを決める方法を返す。 .TP -.BR PR_SET_TSC " (Linux 2.6.26 °Ê¹ß, x86 ¤Î¤ß)" -¤½¤Î¥×¥í¥»¥¹¤¬¥¿¥¤¥à¥¹¥¿¥ó¥×¡¦¥«¥¦¥ó¥¿¤òÆɤ߽Ф»¤ë¤«¤ò·èÄꤹ¤ë -¥Õ¥é¥°¤Î¾õÂÖ¤òÀßÄꤹ¤ë¡£ -Æɤ߽Ф·¤òµö²Ä¤¹¤ë¾ì¹ç¤Ï +.BR PR_SET_TSC " (Linux 2.6.26 以降, x86 のみ)" +そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する +フラグの状態を設定する。 +読み出しを許可する場合は .I arg2 -¤Ë +に .B PR_TSC_ENABLE -¤ò¡¢¤½¤Î¥×¥í¥»¥¹¤¬¥¿¥¤¥à¥¹¥¿¥ó¥×¡¦¥«¥¦¥ó¥¿¤òÆɤ߽Ф½¤¦¤È¤·¤¿ºÝ¤Ë +を、そのプロセスがタイムスタンプ・カウンタを読み出そうとした際に .B SIGSEGV -¤òȯÀ¸¤µ¤»¤ë¾ì¹ç¤Ë¤Ï +を発生させる場合には .B PR_TSC_SIGSEGV -¤òÅϤ¹¡£ +を渡す。 .TP -.BR PR_GET_TSC " (Linux 2.6.26 °Ê¹ß, x86 ¤Î¤ß)" -¤½¤Î¥×¥í¥»¥¹¤¬¥¿¥¤¥à¥¹¥¿¥ó¥×¡¦¥«¥¦¥ó¥¿¤òÆɤ߽Ф»¤ë¤«¤ò·èÄꤹ¤ë -¥Õ¥é¥°¤Î¾õÂÖ¤ò +.BR PR_GET_TSC " (Linux 2.6.26 以降, x86 のみ)" +そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する +フラグの状態を .I "(int\ *) arg2" -¤¬»Ø¤¹¾ì½ê¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ +が指す場所に格納して返す。 .TP .B PR_SET_UNALIGN -(ia64 ¤Ç¤Ï Linux 2.3.48 °Ê¹ß; -parisc ¤Ç¤Ï Linux 2.6.15 °Ê¹ß; -PowerPC ¤Ç¤Ï Linux 2.6.18 °Ê¹ß; -Alpha ¤Ç¤Ï¡¡Linux 2.6.22 °Ê¹ß; -¤³¤ì¤é¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î¤ß) -unaligned ¥¢¥¯¥»¥¹À©¸æ¥Ó¥Ã¥È¤ò \fIarg2\fP ¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£ -»ØÄê¤Ç¤­¤ëÃÍ¤Ï \fBPR_UNALIGN_NOPRINT\fP (unaligned ¤Ê¥æ¡¼¥¶¥¢¥¯¥»¥¹¤òÌÛ¤Ã¤Æ -½¤Àµ¤¹¤ë) ¤« \fBPR_UNALIGN_SIGBUS\fP (unaligned ¤Ê¥æ¡¼¥¶¥¢¥¯¥»¥¹¤¬¤¢¤Ã¤¿¾ì¹ç +(ia64 では Linux 2.3.48 以降; +parisc では Linux 2.6.15 以降; +PowerPC では Linux 2.6.18 以降; +Alpha では Linux 2.6.22 以降; +これらのアーキテクチャのみ) +unaligned アクセス制御ビットを \fIarg2\fP で指定された値に設定する。 +指定できる値は \fBPR_UNALIGN_NOPRINT\fP (unaligned なユーザアクセスを黙って +修正する) か \fBPR_UNALIGN_SIGBUS\fP (unaligned なユーザアクセスがあった場合 .B SIGBUS -¤òÀ¸À®¤¹¤ë) ¤Ç¤¢¤ë¡£ +を生成する) である。 .TP .B PR_GET_UNALIGN -(¥Ð¡¼¥¸¥ç¥ó¤È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î¾ðÊó¤Ï +(バージョンとアーキテクチャの情報は .B PR_SET_UNALIGN -»²¾È) -unaligned ¥¢¥¯¥»¥¹À©¸æ¥Ó¥Ã¥È¤ÎÃͤò +参照) +unaligned アクセス制御ビットの値を .I "(int\ *) arg2" -¤¬»Ø¤¹¾ì½ê¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +が指す場所に格納して返す。 +.SH 返り値 +成功すると、 .BR PR_GET_DUMPABLE , .BR PR_GET_KEEPCAPS , .BR PR_CAPBSET_READ , .BR PR_GET_TIMING , .BR PR_GET_SECUREBITS , .BR PR_GET_SECCOMP -¤Ï¾å½Ò¤ÎÉé¤Ç¤Ê¤¤ÃͤòÊÖ¤¹ +は上述の負でない値を返す .RB ( PR_GET_SECCOMP -¤ÏÊÖ¤é¤Ê¤¤¾ì¹ç¤â¤¢¤ë)¡£ +は返らない場合もある)。 .I option -¤¬Â¾¤ÎÃͤξì¹ç¤ÏÀ®¸ù»þ¤Ë 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +が他の値の場合は成功時に 0 を返す。 +エラーの場合、\-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +に適切な値を設定する。 +.SH エラー .TP .B EFAULT .I arg2 -¤¬ÉÔÀµ¤Ê¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +が不正なアドレスである。 .TP .B EINVAL .I option -¤ÎÃͤ¬Íý²ò¤Ç¤­¤Ê¤¤¡£ +の値が理解できない。 .TP .B EINVAL .I arg2 -¤¬»ØÄꤵ¤ì¤¿ +が指定された .I option -¤ÇÍ­¸ú¤ÊÃͤǤϤʤ¤¡£ +で有効な値ではない。 .TP .B EINVAL .I option -¤¬ +が .BR PR_SET_SECCOMP -¤« +か .BR PR_GET_SECCOMP -¤À¤¬¡¢¥«¡¼¥Í¥ë¤¬ +だが、カーネルが .B CONFIG_SECCOMP -¤òÍ­¸ú¤Ë¤·¤ÆºîÀ®¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +を有効にして作成されていなかった。 .TP .B EPERM .I option -¤¬ +が .B PR_SET_SECUREBITS -¤Ç¡¢¸Æ¤Ó½Ð¤·¸µ¤¬¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ +で、呼び出し元がケーパビリティ .B CAP_SETPCAP -¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢"locked" ¥Õ¥é¥°¤ò²ò½ü¤·¤è¤¦¤È¤·¤¿¡£ -¤Þ¤¿¤Ï¡¢locked ¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¥Õ¥é¥°¤ò¥»¥Ã¥È¤·¤è¤¦¤È¤·¤¿ +を持っていない。 +または、"locked" フラグを解除しようとした。 +または、locked フラグがセットされているフラグをセットしようとした .RB ( capabilities (7) -»²¾È)¡£ +参照)。 .TP .B EPERM .I option -¤¬ +が .B PR_SET_KEEPCAPS -¤Ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥Õ¥é¥° +で、呼び出し元のフラグ .B SECURE_KEEP_CAPS_LOCKED -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë +がセットされている .RB ( capabilities (7) -»²¾È)¡£ +参照)。 .TP .B EPERM .I option -¤¬ +が .B PR_CAPBSET_DROP -¤Ç¡¢¸Æ¤Ó½Ð¤·¸µ¤¬¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ +で、呼び出し元がケーパビリティ .B CAP_SETPCAP -¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +を持っていない。 .\" The following can't actually happen, because prctl() in .\" seccomp mode will cause SIGKILL. .\" .TP @@ -426,24 +426,24 @@ unaligned .\" is .\" .BR PR_SET_SECCOMP , .\" and secure computing mode is already 1. -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .BR prctl () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 2.1.57 ¤ÇƳÆþ¤µ¤ì¤¿¡£ -.\" ¥é¥¤¥Ö¥é¥ê¡¦¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï glibc 2.0.6 ¤ÇÄɲ䵤줿¡£ -.SH ½àµò -¤³¤Î¥³¡¼¥ë¤Ï Linux ÆÃÍ­¤Ç¤¢¤ë¡£ -IRIX ¤Ë¤Ï +システムコールは Linux 2.1.57 で導入された。 +.\" ライブラリ・インタフェースは glibc 2.0.6 で追加された。 +.SH 準拠 +このコールは Linux 特有である。 +IRIX には .BR prctl () -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤¬¤¢¤ë¤¬ (MIPS ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤ª¤¤¤Æ -irix_prctl ¤È¤·¤Æ Linux 2.1.44 ¤ÇƱÍͤËƳÆþ¤µ¤ì¤¿)¡¢ -¤½¤Î¥×¥í¥È¥¿¥¤¥×¤Ï +システム・コールがあるが (MIPS アーキテクチャにおいて +irix_prctl として Linux 2.1.44 で同様に導入された)、 +そのプロトタイプは .sp .BI "ptrdiff_t prctl(int " option ", int " arg2 ", int " arg3 ); .sp -¤Ç¤¢¤ë¡£¥æ¡¼¥¶¡¼Åö¤ê¤Î¥×¥í¥»¥¹ºÇÂç¿ô¤ò¼èÆÀ¤¹¤ë¥ª¥×¥·¥ç¥ó¡¢ -¥×¥í¥»¥¹¤Î»ÈÍѤǤ­¤ëºÇÂç¥×¥í¥Ã¥µ¡¼¿ô¤ò¼èÆÀ¤¹¤ë¥ª¥×¥·¥ç¥ó¡¢ -¸½ºßÆÃÄê¤Î¥×¥í¥»¥¹¤¬Ää»ß(block)¤µ¤»¤é¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«Ä´¤Ù¤ë¥ª¥×¥·¥ç¥ó¡¢ -¥¹¥¿¥Ã¥¯¥µ¥¤¥º¤ÎºÇÂçÃͤμèÆÀ¤äÀßÄê¤ò¹Ô¤Ê¤¦¥ª¥×¥·¥ç¥ó¤Ê¤É¤¬¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +である。ユーザー当りのプロセス最大数を取得するオプション、 +プロセスの使用できる最大プロッサー数を取得するオプション、 +現在特定のプロセスが停止(block)させられているかどうか調べるオプション、 +スタックサイズの最大値の取得や設定を行なうオプションなどがある。 +.SH 関連項目 .BR signal (2), .BR core (5) diff --git a/release/man2/pread.2 b/release/man2/pread.2 index b7838426..a2ed5c46 100644 --- a/release/man2/pread.2 +++ b/release/man2/pread.2 @@ -25,14 +25,14 @@ .\" Translated Fri Jun 25 23:32:20 JST 1999 .\" by HANATAKA Shinya .\" -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: offset ¥ª¥Õ¥»¥Ã¥È -.\"WORD: seek ¥·¡¼¥¯ +.\"WORD: descriptor ディスクリプタ +.\"WORD: offset オフセット +.\"WORD: seek シーク .\" .TH PREAD 2 2010-09-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -pread, pwrite \- »ØÄꤷ¤¿¥ª¥Õ¥»¥Ã¥È¤Ç¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÆɤ߽ñ¤­¤¹¤ë -.SH ½ñ¼° +.SH 名前 +pread, pwrite \- 指定したオフセットでファイルディスクリプタを読み書きする +.SH 書式 .B #include .sp .BI "ssize_t pread(int " fd ", void *" buf ", size_t " count \ @@ -42,9 +42,9 @@ pread, pwrite \- ", off_t " offset ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .PD 0 .ad l @@ -54,76 +54,76 @@ glibc .RS 4 _XOPEN_SOURCE\ >=\ 500 .br -|| /* glibc 2.12 °Ê¹ß: */ _POSIX_C_SOURCE\ >=\ 200809L +|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\ >=\ 200809L .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR pread () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +は、ファイルディスクリプタ .I fd -¤Î (¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤«¤é¤Î) ¥ª¥Õ¥»¥Ã¥È +の (ファイルの先頭からの) オフセット .I offset -¤«¤éºÇÂç +から最大 .I count -¥Ð¥¤¥È¤ò¥Ð¥Ã¥Õ¥¡ +バイトをバッファ .I buf -¤ØÆɤ߹þ¤à¡£¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤ÏÊѲ½¤·¤Ê¤¤¡£ +へ読み込む。ファイル・オフセットは変化しない。 .PP .BR pwrite () -¤Ï¡¢¥Ð¥Ã¥Õ¥¡ +は、バッファ .I buf -¤«¤éºÇÂç +から最大 .I count -¥Ð¥¤¥È¤ò¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +バイトをファイルディスクリプタ .I fd -¤Î¥ª¥Õ¥»¥Ã¥È +のオフセット .I offset -¤Ë½ñ¤­¹þ¤à¡£¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤ÏÊѲ½¤·¤Ê¤¤¡£ +に書き込む。ファイル・オフセットは変化しない。 .PP .I fd -¤Ç»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ï¥·¡¼¥¯ (seek) ²Äǽ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢Æɤ߽ñ¤­¤ò¹Ô¤Ã¤¿¥Ð¥¤¥È¿ô¤¬ÊÖ¤µ¤ì¤ë (¥¼¥í¤Ï¡¢ +で参照されるファイルはシーク (seek) 可能でなければならない。 +.SH 返り値 +成功した場合、読み書きを行ったバイト数が返される (ゼロは、 .BR pwrite () -¤Î¾ì¹ç¤Ë¤Ï²¿¤â½ñ¤«¤ì¤Ê¤«¤Ã¤¿¤³¤È¤ò°ÕÌ£¤·¡¢ +の場合には何も書かれなかったことを意味し、 .BR pread () -¤Î¾ì¹ç¤Ë¤Ï¥Õ¥¡¥¤¥ë -¤ÎËöÈø¤Ë㤷¤¿¤³¤È¤ò°ÕÌ£¤¹¤ë)¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +の場合にはファイル +の末尾に達したことを意味する)。 +エラーの場合は \-1 が返され、 .I errno -¤¬¤½¤Î¥¨¥é¡¼¤ò¼¨¤¹¤è¤¦¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +がそのエラーを示すように設定される。 +.SH エラー .BR pread () -¤Ç¤Ï¡¢ +では、 .BR read (2) -¤ª¤è¤Ó +および .BR lseek (2) -¤Çµ¬Äꤵ¤ì¤¿Á´¤Æ¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ê¡¢ +で規定された全てのエラーが発生する可能性があり、 .I error -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ +にはエラーを示す値が設定される。 .BR pwrite () -¤Ç¤Ï¡¢ +では、 .BR write (2) -¤ª¤è¤Ó +および .BR lseek (2) -¤Çµ¬Äꤵ¤ì¤¿Á´¤Æ¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ê¡¢ +で規定された全てのエラーが発生する可能性があり、 .I error -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¥·¥¹¥Æ¥à¥³¡¼¥ë +にはエラーを示す値が設定される。 +.SH バージョン +システムコール .BR pread () -¤È +と .BR pwrite () -¤Ï Linux ¤Ë¥Ð¡¼¥¸¥ç¥ó 2.1.60 ¤ÇÄɲ䵤줿¡£ -i386 ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥¨¥ó¥È¥ê¤Ï 2.1.69 ¤ÇÄɲ䵤줿¡£ -(¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»ý¤¿¤Ê¤¤¸Å¤¤¥«¡¼¥Í¥ë¤Ç¤Î +は Linux にバージョン 2.1.60 で追加された。 +i386 のシステムコールのエントリは 2.1.69 で追加された。 +(システムコールを持たない古いカーネルでの .BR lseek (2) -¤ò»È¤Ã¤¿¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤ò´Þ¤á¤ë¤È) -C ¥é¥¤¥Ö¥é¥ê¤Ë¤ª¤±¤ë¥µ¥Ý¡¼¥È¤Ï glibc 2.1 ¤ÇÄɲ䵤줿¡£ -.SH ½àµò +を使ったエミュレーションを含めると) +C ライブラリにおけるサポートは glibc 2.1 で追加された。 +.SH 準拠 POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR lseek (2), .BR read (2), .BR write (2) diff --git a/release/man2/ptrace.2 b/release/man2/ptrace.2 index 10f00c79..bd9fea56 100644 --- a/release/man2/ptrace.2 +++ b/release/man2/ptrace.2 @@ -52,510 +52,510 @@ .\" Updated 2008-08-06, Akihiro MOTOKI, LDP v3.05 .\" Updated 2009-04-13, Akihiro MOTOKI, LDP v3.20 .\" -.\"WORD: child process »Ò¥×¥í¥»¥¹ -.\"WORD: parent process ¿Æ¥×¥í¥»¥¹ -.\"WORD: core image ¥á¥â¥ê¡¦¥¤¥á¡¼¥¸ -.\"WORD: break point ¥Ö¥ì¡¼¥¯¡¦¥Ý¥¤¥ó¥È -.\"WORD: single step ¥·¥ó¥°¥ë¡¦¥¹¥Æ¥Ã¥×¼Â¹Ô -.\"WORD: trap flag ¥È¥é¥Ã¥×¡¦¥Õ¥é¥° -.\"WORD: attach Àܳ -.\"WORD: detach ʬΥ -.\"WORD: process ID ¥×¥í¥»¥¹ID +.\"WORD: child process 子プロセス +.\"WORD: parent process 親プロセス +.\"WORD: core image メモリ・イメージ +.\"WORD: break point ブレーク・ポイント +.\"WORD: single step シングル・ステップ実行 +.\"WORD: trap flag トラップ・フラグ +.\"WORD: attach 接続 +.\"WORD: detach 分離 +.\"WORD: process ID プロセスID .\" .TH PTRACE 2 2009-03-30 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -ptrace \- ¥×¥í¥»¥¹¤Î¥È¥ì¡¼¥¹ -.SH ½ñ¼° +.SH 名前 +ptrace \- プロセスのトレース +.SH 書式 .nf .B #include .sp .BI "long ptrace(enum __ptrace_request " request ", pid_t " pid ", " .BI " void *" addr ", void *" data ); .fi -.SH ÀâÌÀ +.SH 説明 .BR ptrace () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¿Æ¥×¥í¥»¥¹¤¬¡¢ÊÌ¤Î¥×¥í¥»¥¹¤Î¼Â¹Ô¤Î´Æ»ë/À©¸æ¤ò -¹Ô¤Ã¤¿¤ê¡¢¥³¥¢¥¤¥á¡¼¥¸ (core image) ¤ä¥ì¥¸¥¹¥¿¤ÎÄ´ºº/Êѹ¹¤ò -¹Ô¤Ã¤¿¤ê¤¹¤ë¼êÃʤòÄ󶡤¹¤ë¡£ +システムコールは、親プロセスが、別のプロセスの実行の監視/制御を +行ったり、コアイメージ (core image) やレジスタの調査/変更を +行ったりする手段を提供する。 .BR ptrace () -¤Ï¡¢¼ç¤Ë¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤Ë¤è¤ë¥Ç¥Ð¥Ã¥°¤ä¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥È¥ì¡¼¥¹¤ò -¼ÂÁõ¤¹¤ë¤Î¤ËÍѤ¤¤é¤ì¤ë¡£ +は、主にブレークポイントによるデバッグやシステムコールのトレースを +実装するのに用いられる。 .LP -¥È¥ì¡¼¥¹¤ò³«»Ï¤¹¤ë¤Ë¤Ï¡¢¤Þ¤º¿Æ¥×¥í¥»¥¹¤Ç +トレースを開始するには、まず親プロセスで .BR fork (2) -¤ò¸Æ¤Ó½Ð¤¹¡£À¸À®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ç +を呼び出す。生成された子プロセスで .B PTRACE_TRACEME -¤ò¹Ô¤¤¡¢Â³¤¤¤Æ (ŵ·¿Åª¤Ë¤Ï) +を行い、続いて (典型的には) .BR exec (3) -¤ò¹Ô¤Ê¤¦¡£ -Ê̤ÎÊýË¡¤È¤·¤Æ¤Ï¡¢ -¿Æ¥×¥í¥»¥¹¤¬´û¸¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ +を行なう。 +別の方法としては、 +親プロセスが既存のプロセスに対して .B PTRACE_ATTACH -¤ò»ÈÍѤ·¡¢¥È¥ì¡¼¥¹¤ò³«»Ï¤¹¤ë¡£ +を使用し、トレースを開始する。 .LP -¥È¥ì¡¼¥¹¤Î¼Â¹ÔÃæ¡¢»Ò¥×¥í¥»¥¹¤Ï¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ë¤¿¤Ó¤Ë¡¢ -¤¿¤È¤¨¤½¤Î¥·¥°¥Ê¥ë¤¬Ìµ»ë¤¹¤Ù¤­¤â¤Î¤Ç¤¢¤Ã¤Æ¤âÄä»ß¤¹¤ë +トレースの実行中、子プロセスはシグナルが配送されるたびに、 +たとえそのシグナルが無視すべきものであっても停止する .RB ( SIGKILL -¤ÏÎã³°¤Ç¡¢Ä̾ï¤É¤ª¤ê¤Î¸ú²Ì¤ò¤â¤¿¤é¤¹)¡£ -¿Æ¥×¥í¥»¥¹¤Ë¤Ï¼¡¤Î +は例外で、通常どおりの効果をもたらす)。 +親プロセスには次の .BR wait (2) -¤ÇÄÌÃΤµ¤ì¡¢Ää»ß¤·¤Æ¤¤¤ë´Ö¤Ë»Ò¥×¥í¥»¥¹¤òÄ´¤Ù¤¿¤ê½¤Àµ¤·¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤½¤·¤Æ¿Æ¥×¥í¥»¥¹¤Ï»Ò¥×¥í¥»¥¹¤Î¼Â¹Ô¤òºÆ³«¤µ¤»¤ë¤¬¡¢ÇÛÁ÷¤µ¤ì¤¿ -¥·¥°¥Ê¥ë¤ò̵»ë¤¹¤ë¤³¤È¤â¤Ç¤­¤ë (¤¢¤ë¤¤¤ÏÂå¤ï¤ê¤ËÊ̤Υ·¥°¥Ê¥ë¤ò -ÇÛÁ÷¤¹¤ë¤³¤È¤â¤Ç¤­¤ë) ¡£ +で通知され、停止している間に子プロセスを調べたり修正したりすることができる。 +そして親プロセスは子プロセスの実行を再開させるが、配送された +シグナルを無視することもできる (あるいは代わりに別のシグナルを +配送することもできる) 。 .LP -¿Æ¥×¥í¥»¥¹¤¬¥È¥ì¡¼¥¹¤ò½ªÎ»¤¹¤ëºÝ¤Ë¤Ï¡¢ +親プロセスがトレースを終了する際には、 .B PTRACE_KILL -¤ò»ÈÍѤ·¤Æ»Ò¥×¥í¥»¥¹¤ò½ªÎ»¤µ¤»¤ë¤³¤È¤â¤Ç¤­¤ë¤·¡¢ +を使用して子プロセスを終了させることもできるし、 .B PTRACE_DETACH -¤òÍѤ¤¤ÆÄ̾ï¤Î¥È¥ì¡¼¥¹¤Ê¤·¤Î¥â¡¼¥É¤Ë¤·¤Æ¡¢ -¼Â¹Ô¤ò·Ñ³¤µ¤»¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +を用いて通常のトレースなしのモードにして、 +実行を継続させることもできる。 .LP -\fIrequest\fP ¤ÎÃͤ¬¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÆ°ºî¤ò·èÄꤹ¤ë: +\fIrequest\fP の値がこのシステムコールの動作を決定する: .TP .B PTRACE_TRACEME -¤³¤Î¥×¥í¥»¥¹¤¬¿Æ¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¥È¥ì¡¼¥¹¤µ¤ì¤ë¤³¤È¤òɽ¤¹¡£ -¤³¤Î¥×¥í¥»¥¹¤Ë +このプロセスが親プロセスによってトレースされることを表す。 +このプロセスに .RB ( SIGKILL -°Ê³°¤Î) ¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ë¤È¡¢ -¥×¥í¥»¥¹¤ÏÄä»ß¤·¡¢¿Æ¥×¥í¥»¥¹¤Ë +以外の) シグナルが配送されると、 +プロセスは停止し、親プロセスに .BR wait (2) -¤òÄ̤¸¤ÆÄÌÃΤµ¤ì¤ë¡£ -¤Þ¤¿¡¢¤³¤ì°Ê¹ß¤Ï¤³¤Î¥×¥í¥»¥¹¤¬ +を通じて通知される。 +また、これ以降はこのプロセスが .BR execve (2) -¤ò¸Æ¤Ó½Ð¤¹ÅÙ¤Ë +を呼び出す度に .B SIGTRAP -¤¬Á÷¿®¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¤³¤ì¤Ë¤è¤Ã¤Æ¡¢¿Æ¥×¥í¥»¥¹¤Ï -¿·¤·¤¤¥×¥í¥°¥é¥à¤¬¼Â¹Ô¤ò³«»Ï¤¹¤ëÁ°¤ËÀ©¸æ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¿Æ¥×¥í¥»¥¹¤¬¼«¥×¥í¥»¥¹¤ò¥È¥ì¡¼¥¹¤¹¤ë¤Ä¤â¤ê¤¬¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ -¤ª¤½¤é¤¯¤³¤Î¥×¥í¥»¥¹¤ÏËÜÍ×µá¤ò¹Ô¤¦¤Ù¤­¤Ç¤Ï¤Ê¤¤¤À¤í¤¦¡£ -(\fIpid\fP, \fIaddr\fP, \fIdata\fP ¤Ï̵»ë¤µ¤ì¤ë¡£) +が送信されるようになる。 +これによって、親プロセスは +新しいプログラムが実行を開始する前に制御することができる。 +親プロセスが自プロセスをトレースするつもりがない場合には、 +おそらくこのプロセスは本要求を行うべきではないだろう。 +(\fIpid\fP, \fIaddr\fP, \fIdata\fP は無視される。) .LP -¾åµ­¤ÎÍ×µá¤Ï»Ò¥×¥í¥»¥¹¤À¤±¤¬¹Ô¤Ê¤¦¤â¤Î¤Ç¤¢¤ë¡£ -»Ä¤ê¤Ï¿Æ¥×¥í¥»¥¹¤À¤±¤¬¹Ô¤Ê¤¦¤â¤Î¤Ç¤¢¤ë¡£ -°Ê²¼¤ÎÍ×µá¤Ç¤Ï¡¢\fIpid\fP ¤ÇÁàºî¤ÎÂоݤȤʤë -»Ò¥×¥í¥»¥¹¤ò»ØÄꤹ¤ë¡£ +上記の要求は子プロセスだけが行なうものである。 +残りは親プロセスだけが行なうものである。 +以下の要求では、\fIpid\fP で操作の対象となる +子プロセスを指定する。 .B PTRACE_KILL -¤ò½ü¤­¡¢Í×µá¤ò¹Ô¤Ê¤¦¤¿¤á¤Ë¤Ï -»Ò¥×¥í¥»¥¹¤ÏÄä»ß¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を除き、要求を行なうためには +子プロセスは停止していなければならない。 .TP .BR PTRACE_PEEKTEXT ", " PTRACE_PEEKDATA -»Ò¥×¥í¥»¥¹¤Î¥á¥â¥ê¤Î +子プロセスのメモリの .I addr -¤Î°ÌÃÖ¤«¤é 1 ¥ï¡¼¥É¤òÆɤ߽Ф¹¡£Æɤ߽Ф·¤¿¥ï¡¼¥É¤Ï +の位置から 1 ワードを読み出す。読み出したワードは .BR ptrace () -¤ÎÊÖ¤êÃͤȤ·¤ÆÊÖ¤µ¤ì¤ë¡£ Linux ¤Ç¤Ï¥Æ¥­¥¹¥È (text) ¤È¥Ç¡¼¥¿ (data) ¤Ç -Ʊ¤¸¥¢¥É¥ì¥¹¶õ´Ö¤ò»ÈÍѤ¹¤ë¤¿¤á¡¢¤³¤Î 2 ¤Ä¤ÎÍ×µá¤Ï¸½ºß¤Î¤È¤³¤í -Ʊ¤¸¤â¤Î¤Ç¤¢¤ë¡£ (°ú¤­¿ô \fIdata\fP ¤Ï̵»ë¤µ¤ì¤ë¡£) +の返り値として返される。 Linux ではテキスト (text) とデータ (data) で +同じアドレス空間を使用するため、この 2 つの要求は現在のところ +同じものである。 (引き数 \fIdata\fP は無視される。) .TP .B PTRACE_PEEKUSER .\" PTRACE_PEEKUSR in kernel source, but glibc uses PTRACE_PEEKUSER, .\" and that is the name that seems common on other systems. -»Ò¥×¥í¥»¥¹¤Î USER Îΰè¤Î¥ª¥Õ¥»¥Ã¥È +子プロセスの USER 領域のオフセット .I addr -¤Î°ÌÃÖ¤«¤é 1 ¥ï¡¼¥É¤òÆɤ߹þ¤à¡£USER Îΰè¤Ë¤Ï¤½¤Î¥×¥í¥»¥¹¤Î -¥ì¥¸¥¹¥¿ (registers) ¤Ê¤É¤Î¾ðÊó¤¬ÊÝ»ý¤µ¤ì¤Æ¤¤¤ë -(\fI\fP ¤ò»²¾È)¡£Æɤ߹þ¤ó¤À¥ï¡¼¥É¤Ï +の位置から 1 ワードを読み込む。USER 領域にはそのプロセスの +レジスタ (registers) などの情報が保持されている +(\fI\fP を参照)。読み込んだワードは .BR ptrace () -¥³¡¼¥ë¤Î·ë²Ì¤È¤·¤ÆÊÖ¤µ¤ì¤ë¡£ -¤¿¤¤¤Æ¤¤¤Ï¥ª¥Õ¥»¥Ã¥È¤Ï¥ï¡¼¥É¶­³¦¤Ë¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤¬¡¢ -¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤è¤Ã¤Æ¤Ï¤½¤ÎɬÍפϤʤ¤¡£ -¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¡£ -(\fIdata\fP ¤Ï̵»ë¤µ¤ì¤ë¡£ ) +コールの結果として返される。 +たいていはオフセットはワード境界になければならないが、 +アーキテクチャによってはその必要はない。 +「注意」の節を参照。 +(\fIdata\fP は無視される。 ) .TP .BR PTRACE_POKETEXT ", " PTRACE_POKEDATA -¥ï¡¼¥É +ワード .I data -¤ò»Ò¥×¥í¥»¥¹¤Î¥á¥â¥ê¤Î +を子プロセスのメモリの .I addr -¤Î°ÌÃ֤إ³¥Ô¡¼¤¹¤ë¡£¾å¤ÈƱÍͤˡ¢¸½ºß¤Î¤È¤³¤íÆó¤Ä¤Î -Í×µá¤ÏƱ¤¸¤â¤Î¤Ç¤¢¤ë¡£ +の位置へコピーする。上と同様に、現在のところ二つの +要求は同じものである。 .TP .B PTRACE_POKEUSER .\" PTRACE_POKEUSR in kernel source, but glibc uses PTRACE_POKEUSER, .\" and that is the name that seems common on other systems. -¥ï¡¼¥É +ワード .I data -¤ò»Ò¥×¥í¥»¥¹¤Î USER Îΰè¤Î¥ª¥Õ¥»¥Ã¥È +を子プロセスの USER 領域のオフセット .I addr -¤Î°ÌÃ֤˥³¥Ô¡¼¤¹¤ë¡£ -¾å¤ÈƱÍͤˡ¢Ä̾¥ª¥Õ¥»¥Ã¥È¤Ï¥ï¡¼¥É¶­³¦¤Ë¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥«¡¼¥Í¥ë¤Î´°Á´À­ (integrity) ¤ò°Ý»ý¤¹¤ë¤¿¤á¡¢ -Êѹ¹ÆâÍƤˤè¤Ã¤Æ¤Ï USER Îΰè¤ÎÊѹ¹¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¡£ +の位置にコピーする。 +上と同様に、通常、オフセットはワード境界になければならない。 +カーネルの完全性 (integrity) を維持するため、 +変更内容によっては USER 領域の変更は禁止されている。 .TP .BR PTRACE_GETREGS ", " PTRACE_GETFPREGS -¤½¤ì¤¾¤ì¡¢»Ò¥×¥í¥»¥¹¤ÎÈÆÍѥ쥸¥¹¥¿¡¢ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤ò¿Æ¥×¥í¥»¥¹¤Î -\fIdata\fP ¤Î°ÌÃ֤˥³¥Ô¡¼¤¹¤ë¡£¤³¤Î data ¤Î½ñ¼°¤Ë´Ø¤·¤Æ¤Ï -\fI\fP ¤ò»²¾È¤¹¤ë¤³¤È¡£(\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£) +それぞれ、子プロセスの汎用レジスタ、浮動小数点レジスタを親プロセスの +\fIdata\fP の位置にコピーする。この data の書式に関しては +\fI\fP を参照すること。(\fIaddr\fP は無視される。) .TP -.BR PTRACE_GETSIGINFO " (Linux 2.3.99-pre6 °Ê¹ß)" -Ää»ß¤Î¸¶°ø¤È¤Ê¤Ã¤¿¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤ò¼èÆÀ¤¹¤ë¡£ -\fIsiginfo_t\fP ¹½Â¤ÂÎ +.BR PTRACE_GETSIGINFO " (Linux 2.3.99-pre6 以降)" +停止の原因となったシグナルに関する情報を取得する。 +\fIsiginfo_t\fP 構造体 .RB ( sigaction (2) -»²¾È) ¤ò»Ò¥×¥í¥»¥¹¤«¤é¿Æ¥×¥í¥»¥¹¤Î \fIdata\fP ¤Î°ÌÃ֤˥³¥Ô¡¼¤¹¤ë¡£ -(\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£) +参照) を子プロセスから親プロセスの \fIdata\fP の位置にコピーする。 +(\fIaddr\fP は無視される。) .TP .BR PTRACE_SETREGS ", " PTRACE_SETFPREGS -¤½¤ì¤¾¤ì¡¢»Ò¥×¥í¥»¥¹¤ÎÈÆÍѥ쥸¥¹¥¿¡¢ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤Ë -¿Æ¥×¥í¥»¥¹¤Î \fIdate\fP ¤Î°ÌÃÖ¤«¤é¥³¥Ô¡¼¤¹¤ë¡£ +それぞれ、子プロセスの汎用レジスタ、浮動小数点レジスタに +親プロセスの \fIdate\fP の位置からコピーする。 .B PTRACE_POKEUSER -¤ÈƱÍͤˡ¢ÈÆÍѥ쥸¥¹¥¿¤Ë¤è¤Ã¤Æ¤Ï -Êѹ¹¤¬¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤¬¤¢¤ë¡£ (\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£) +と同様に、汎用レジスタによっては +変更が禁止されている場合がある。 (\fIaddr\fP は無視される。) .TP -.BR PTRACE_SETSIGINFO " (Linux 2.3.99-pre6 °Ê¹ß)" -¥·¥°¥Ê¥ë¾ðÊó¤òÀßÄꤹ¤ë¡£ -\fIsiginfo_t\fP ¹½Â¤ÂΤò¿Æ¥×¥í¥»¥¹¤Î¥Ç¡¼¥¿ \fIdata\fP ¤Î°ÌÃÖ¤«¤é -»Ò¥×¥í¥»¥¹¤Ë¥³¥Ô¡¼¤¹¤ë¡£ -¤³¤Î½èÍý¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¤Î¤Ï¡¢»Ò¥×¥í¥»¥¹¤ËÄ̾ï¤ÏÇÛÁ÷¤µ¤ì¤ë¤Ï¤º¤Ç -¥È¥ì¡¼¥µ¤ËÊ᪤µ¤ì¤¿¥·¥°¥Ê¥ë¤Ë¤Ä¤¤¤Æ¤À¤±¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤ÎÄ̾ï¤Î¥·¥°¥Ê¥ë¤È +.BR PTRACE_SETSIGINFO " (Linux 2.3.99-pre6 以降)" +シグナル情報を設定する。 +\fIsiginfo_t\fP 構造体を親プロセスのデータ \fIdata\fP の位置から +子プロセスにコピーする。 +この処理を行うことができるのは、子プロセスに通常は配送されるはずで +トレーサに捕捉されたシグナルについてだけである。 +これらの通常のシグナルと .BR ptrace () -¼«¿È¤¬È¯À¸¤¹¤ë¥·¥°¥Ê¥ë¤ò¸«Ê¬¤±¤ë¤Î¤ÏÆñ¤·¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -(\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£) +自身が発生するシグナルを見分けるのは難しいかもしれない。 +(\fIaddr\fP は無視される。) .TP -.BR PTRACE_SETOPTIONS " (Linux 2.4.6 °Ê¹ß; ¥Ð¥°¤Î¾Ï¤Ë¤¢¤ë·Ù¹ð¤â»²¾È)" -¿Æ¥×¥í¥»¥¹¤Î \fIdata\fP ¤Ë´ð¤Å¤¤¤Æ ptrace ¤Î¥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ë -(\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë)¡£ -\fIdata\fP ¤Ï¥ª¥×¥·¥ç¥ó¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤È¤·¤Æ²ò¼á¤µ¤ì¡¢ -¥ª¥×¥·¥ç¥ó¤Ë¤Ï°Ê²¼¤Î¥Õ¥é¥°¤ò»ØÄê¤Ç¤­¤ë: +.BR PTRACE_SETOPTIONS " (Linux 2.4.6 以降; バグの章にある警告も参照)" +親プロセスの \fIdata\fP に基づいて ptrace のオプションを設定する +(\fIaddr\fP は無視される)。 +\fIdata\fP はオプションのビットマスクとして解釈され、 +オプションには以下のフラグを指定できる: .RS .TP -.BR PTRACE_O_TRACESYSGOOD " (Linux 2.4.6 °Ê¹ß)" -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥È¥é¥Ã¥×¤¬ÇÛÁ÷¤µ¤ì¤¿¤È¤­¤Ë¡¢¥·¥°¥Ê¥ëÈÖ¹æ¤Î¥Ó¥Ã¥È 7 -¤òÀßÄꤹ¤ë (¤¹¤Ê¤ï¤Á¡¢\fISIGTRAP | 0x80\fP ¤òÇÛÁ÷¤¹¤ë)¡£ -¤³¤ì¤Ë¤è¤ê¡¢¥È¥ì¡¼¥µ¤¬Ä̾ï¤Î¥È¥é¥Ã¥×¤È¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤è¤ë¥È¥é¥Ã¥×¤ò -¶èÊ̤·¤ä¤¹¤¯¤Ê¤ë¡£ +.BR PTRACE_O_TRACESYSGOOD " (Linux 2.4.6 以降)" +システムコールのトラップが配送されたときに、シグナル番号のビット 7 +を設定する (すなわち、\fISIGTRAP | 0x80\fP を配送する)。 +これにより、トレーサが通常のトラップとシステムコールによるトラップを +区別しやすくなる。 .RB ( PTRACE_O_TRACESYSGOOD -¤Ï¤É¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤âÆ°ºî¤·¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ë¡£) +はどのアーキテクチャでも動作しない可能性がある。) .TP -.BR PTRACE_O_TRACEFORK " (Linux 2.5.46 °Ê¹ß)" -¼¡¤Î +.BR PTRACE_O_TRACEFORK " (Linux 2.5.46 以降)" +次の .BR fork (2) -¸Æ¤Ó½Ð¤·»þ¤Ë \fISIGTRAP | PTRACE_EVENT_FORK\ <<\ 8\fP ¤Ç -»Ò¥×¥í¥»¥¹¤ÎÆ°ºî¤òÄä»ß¤µ¤»¡¢ -¿·¤¿¤Ë fork ¤µ¤ì¤¿¥×¥í¥»¥¹¤Î¥È¥ì¡¼¥¹¤ò¼«Æ°Åª¤Ë³«»Ï¤·¡¢ +呼び出し時に \fISIGTRAP | PTRACE_EVENT_FORK\ <<\ 8\fP で +子プロセスの動作を停止させ、 +新たに fork されたプロセスのトレースを自動的に開始し、 .B SIGSTOP -¤Ç¤½¤Î¥×¥í¥»¥¹¤Î¼Â¹Ô¤ò³«»Ï¤¹¤ë¡£ -¿·¤·¤¤¥×¥í¥»¥¹¤Î PID ¤Ï +でそのプロセスの実行を開始する。 +新しいプロセスの PID は .B PTRACE_GETEVENTMSG -¤Ç¼èÆÀ¤Ç¤­¤ë¡£ +で取得できる。 .TP -.BR PTRACE_O_TRACEVFORK " (Linux 2.5.46 °Ê¹ß)" -¼¡¤Î +.BR PTRACE_O_TRACEVFORK " (Linux 2.5.46 以降)" +次の .BR vfork (2) -¸Æ¤Ó½Ð¤·»þ¤Ë \fISIGTRAP | PTRACE_EVENT_VFORK\ <<\ 8\fP ¤Ç -»Ò¥×¥í¥»¥¹¤ÎÆ°ºî¤òÄä»ß¤µ¤»¡¢ -¿·¤¿¤Ë vfork ¤µ¤ì¤¿¥×¥í¥»¥¹¤Î¥È¥ì¡¼¥¹¤ò¼«Æ°Åª¤Ë³«»Ï¤·¡¢ +呼び出し時に \fISIGTRAP | PTRACE_EVENT_VFORK\ <<\ 8\fP で +子プロセスの動作を停止させ、 +新たに vfork されたプロセスのトレースを自動的に開始し、 .B SIGSTOP -¤Ç¤½¤Î¥×¥í¥»¥¹¤Î¼Â¹Ô¤ò³«»Ï¤¹¤ë¡£ -¿·¤·¤¤¥×¥í¥»¥¹¤Î PID ¤Ï +でそのプロセスの実行を開始する。 +新しいプロセスの PID は .B PTRACE_GETEVENTMSG -¤Ç¼èÆÀ¤Ç¤­¤ë¡£ +で取得できる。 .TP -.BR PTRACE_O_TRACECLONE " (Linux 2.5.46 °Ê¹ß)" -¼¡¤Î +.BR PTRACE_O_TRACECLONE " (Linux 2.5.46 以降)" +次の .BR clone (2) -¸Æ¤Ó½Ð¤·»þ¤Ë \fISIGTRAP | PTRACE_EVENT_CLONE\ << \8\fP ¤Ç -»Ò¥×¥í¥»¥¹¤ÎÆ°ºî¤òÄä»ß¤µ¤»¡¢ -¿·¤¿¤Ë clone ¤ÇºîÀ®¤µ¤ì¤¿¥×¥í¥»¥¹¤Î¥È¥ì¡¼¥¹¤ò¼«Æ°Åª¤Ë³«»Ï¤·¡¢ +呼び出し時に \fISIGTRAP | PTRACE_EVENT_CLONE\ << \8\fP で +子プロセスの動作を停止させ、 +新たに clone で作成されたプロセスのトレースを自動的に開始し、 .B SIGSTOP -¤Ç¥×¥í¥»¥¹¤Î¼Â¹Ô¤ò³«»Ï¤¹¤ë¡£ -¿·¤·¤¤¥×¥í¥»¥¹¤Î PID ¤Ï +でプロセスの実行を開始する。 +新しいプロセスの PID は .B PTRACE_GETEVENTMSG -¤Ç¼èÆÀ¤Ç¤­¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ÇÁ´¤Æ¤Î +で取得できる。 +このオプションで全ての .BR clone (2) -¥³¡¼¥ë¤òÊá¤Þ¤¨¤é¤ì¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -»Ò¥×¥í¥»¥¹¤¬ +コールを捕まえられるわけではない。 +子プロセスが .B CLONE_VFORK -¥Õ¥é¥°ÉÕ¤­¤Ç +フラグ付きで .BR clone (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¡¢ +を呼び出した場合、 .B PTRACE_O_TRACEVFORK -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ì¤ÐÂå¤ï¤ê¤Ë +が設定されていれば代わりに .B PTRACE_EVENT_VFORK -¤¬ÇÛÁ÷¤µ¤ì¤ë¡£ -¤Þ¤¿¡¢»Ò¥×¥í¥»¥¹¤¬½ªÎ»¥·¥°¥Ê¥ë¤ò +が配送される。 +また、子プロセスが終了シグナルを .B SIGCHLD -¤ËÀßÄꤷ¤Æ +に設定して .BR clone (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¤Ï¡¢ +を呼び出した場合は、 .B PTRACE_O_TRACEFORK -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ì¤Ð +が設定されていれば .B PTRACE_EVENT_FORK -¤¬ÇÛÁ÷¤µ¤ì¤ë¡£ +が配送される。 .TP -.BR PTRACE_O_TRACEEXEC " (Linux 2.5.46 °Ê¹ß)" -¼¡¤Î +.BR PTRACE_O_TRACEEXEC " (Linux 2.5.46 以降)" +次の .BR execve (2) -¸Æ¤Ó½Ð¤·»þ¤Ë +呼び出し時に \fISIGTRAP | PTRACE_EVENT_EXEC\ <<\ 8\fP -¤Ç»Ò¥×¥í¥»¥¹¤ÎÆ°ºî¤òÄä»ß¤µ¤»¤ë¡£ +で子プロセスの動作を停止させる。 .TP -.BR PTRACE_O_TRACEVFORKDONE " (Linux 2.5.60 °Ê¹ß)" -¼¡¤Î +.BR PTRACE_O_TRACEVFORKDONE " (Linux 2.5.60 以降)" +次の .BR vfork (2) -¸Æ¤Ó½Ð¤·»þ¤Ë +呼び出し時に \fISIGTRAP | PTRACE_EVENT_VFORK_DONE\ <<\ 8\fP -¤Ç»Ò¥×¥í¥»¥¹¤ÎÆ°ºî¤òÄä»ß¤µ¤»¤ë¡£ +で子プロセスの動作を停止させる。 .TP -.BR PTRACE_O_TRACEEXIT " (Linux 2.5.60 °Ê¹ß)" -½ªÎ» (exit) »þ¤Ë \fISIGTRAP | PTRACE_EVENT_EXIT\ <<\ 8\fP -¤Ç»Ò¥×¥í¥»¥¹¤ÎÆ°ºî¤òÄä»ß¤µ¤»¤ë¡£»Ò¥×¥í¥»¥¹¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ï +.BR PTRACE_O_TRACEEXIT " (Linux 2.5.60 以降)" +終了 (exit) 時に \fISIGTRAP | PTRACE_EVENT_EXIT\ <<\ 8\fP +で子プロセスの動作を停止させる。子プロセスの終了ステータスは .B PTRACE_GETEVENTMSG -¤Ç¼èÆÀ¤Ç¤­¤ë¡£ -¤³¤ÎÄä»ß¤Ï¥ì¥¸¥¹¥¿¤¬¤Þ¤À»²¾È²Äǽ¤Ç¤¢¤ë¥×¥í¥»¥¹½ªÎ»½èÍý¤Î½é´ü¤Ë¹Ô¤ï¤ì¡¢ -¥È¥ì¡¼¥µ¤Ï¤É¤³¤Ç½ªÎ»¤¬È¯À¸¤·¤¿¤«¤òÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ -Ä̾ï¤Î½ªÎ»ÄÌÃÎ (exit notification) ¤Ï¥×¥í¥»¥¹¤Î½ªÎ»½èÍý¤¬´°Î»¤·¤¿¸å¤Ë -¹Ô¤ï¤ì¤ë¡£¥³¥ó¥Æ¥­¥¹¥È¤ò»²¾È¤¹¤ë¤³¤È¤Ï¤Ç¤­¤ë¤Ë¤â´Ø¤ï¤é¤º¡¢ -¥È¥ì¡¼¥µ¤Ï¤³¤Î»þÅÀ¤«¤é½ªÎ»¤ò»ß¤á¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +で取得できる。 +この停止はレジスタがまだ参照可能であるプロセス終了処理の初期に行われ、 +トレーサはどこで終了が発生したかを知ることができる。 +通常の終了通知 (exit notification) はプロセスの終了処理が完了した後に +行われる。コンテキストを参照することはできるにも関わらず、 +トレーサはこの時点から終了を止めることはできない。 .RE .TP -.BR PTRACE_GETEVENTMSG " (Linux 2.5.46 °Ê¹ß)" -ȯÀ¸¤·¤¿¤Ð¤«¤ê¤Î ptrace ¥¤¥Ù¥ó¥È¤Ë´Ø¤¹¤ë¥á¥Ã¥»¡¼¥¸¤ò +.BR PTRACE_GETEVENTMSG " (Linux 2.5.46 以降)" +発生したばかりの ptrace イベントに関するメッセージを .RI ( "unsigned long" -·¿¤Ç) ¼èÆÀ¤¹¤ë¡£ -¼èÆÀ¤·¤¿¥á¥Ã¥»¡¼¥¸¤Ï¿Æ¥×¥í¥»¥¹¤Î \fIdata\fP ¤Î°ÌÃ֤˳ÊǼ¤µ¤ì¤ë¡£ -ÆÀ¤é¤ì¤ëÆâÍƤϡ¢ +型で) 取得する。 +取得したメッセージは親プロセスの \fIdata\fP の位置に格納される。 +得られる内容は、 .B PTRACE_EVENT_EXIT -¤Î¾ì¹ç¤Ï»Ò¥×¥í¥»¥¹¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ç¤¢¤ê¡¢ +の場合は子プロセスの終了ステータスであり、 .BR PTRACE_EVENT_FORK , .BR PTRACE_EVENT_VFORK , .B PTRACE_EVENT_CLONE -¤Î¾ì¹ç¤Ï¿·¤·¤¤¥×¥í¥»¥¹¤Î PID ¤Ç¤¢¤ë¡£ -Linux 2.6.18 °Ê¹ß¤Ç¤Ï¡¢¿·¤·¤¤¥×¥í¥»¥¹¤Î PID ¤Ï +の場合は新しいプロセスの PID である。 +Linux 2.6.18 以降では、新しいプロセスの PID は .B PTRACE_EVENT_VFORK_DONE -¤ÇÆþ¼ê¤Ç¤­¤ë¡£ -(\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£) +で入手できる。 +(\fIaddr\fP は無視される。) .TP .B PTRACE_CONT -Ää»ß¤·¤¿»Ò¥×¥í¥»¥¹¤Î¼Â¹Ô¤òºÆ³«¤µ¤»¤ë¡£ -\fIdata\fP ¤¬¥¼¥í¤Ç¤Ê¤¯¡¢ +停止した子プロセスの実行を再開させる。 +\fIdata\fP がゼロでなく、 .B SIGSTOP -¤Ç¤â¤Ê¤±¤ì¤Ð¡¢ -»Ò¥×¥í¥»¥¹¤ËÇÛÁ÷¤µ¤ì¤ë¥·¥°¥Ê¥ë¤È²ò¼á¤µ¤ì¤ë¡£ -¥¼¥í¤ä +でもなければ、 +子プロセスに配送されるシグナルと解釈される。 +ゼロや .B SIGSTOP -¤Î¾ì¹ç¤Ï¥·¥°¥Ê¥ë¤ÏÇÛÁ÷¤µ¤ì¤Ê¤¤¡£ -¤³¤ì¤ò»È¤¦¤È¡¢Î㤨¤Ð¡¢¿Æ¥×¥í¥»¥¹¤Ï -»Ò¥×¥í¥»¥¹¤ËÁ÷¤é¤ì¤¿¥·¥°¥Ê¥ë¤ò¼ÂºÝ¤ËÇÛÁ÷¤¹¤ë¤«¤É¤¦¤«¤ò -À©¸æ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£(\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£) +の場合はシグナルは配送されない。 +これを使うと、例えば、親プロセスは +子プロセスに送られたシグナルを実際に配送するかどうかを +制御することができる。(\fIaddr\fP は無視される。) .TP .BR PTRACE_SYSCALL ", " PTRACE_SINGLESTEP .B PTRACE_CONT -¤ÈƱÍͤËÄä»ß¤·¤¿»Ò¥×¥í¥»¥¹¤òºÆ³«¤¹¤ë¡£¤¿¤À¤·¡¢ +と同様に停止した子プロセスを再開する。ただし、 .B PTRACE_SYSCALL -¤Î¾ì¹ç¤Ï»Ò¥×¥í¥»¥¹¤¬ -¼¡¤Ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÆþ¤ë¤«¥·¥¹¥Æ¥à¥³¡¼¥ë¤«¤éÈ´¤±¤ë¤«¤¹¤ë»þ¤Ë¡¢ +の場合は子プロセスが +次にシステムコールに入るかシステムコールから抜けるかする時に、 .B PTRACE_SINGLESTEP -¤Î¾ì¹ç¤Ï 1 Ì¿Îá (instruction) ¼Â¹Ô¤·¤¿¸å¤ËÄä»ß¤µ¤»¤ë -(Ä̾ï¤É¤ª¤ê¡¢»Ò¥×¥í¥»¥¹¤Ï¥·¥°¥Ê¥ë¤ò¼õ¤±¼è¤Ã¤¿¾ì¹ç¤Ë¤âÄä»ß¤¹¤ë)¡£ -¿Æ¥×¥í¥»¥¹¤«¤é¸«¤ë¤È¡¢»Ò¥×¥í¥»¥¹¤Ï +の場合は 1 命令 (instruction) 実行した後に停止させる +(通常どおり、子プロセスはシグナルを受け取った場合にも停止する)。 +親プロセスから見ると、子プロセスは .B SIGTRAP -¤ò¼õ¿®¤·¤ÆÄä»ß¤·¤¿¤è¤¦¤Ë¸«¤¨¤ë¡£¤½¤Î¤¿¤á¡¢Î㤨¤Ð +を受信して停止したように見える。そのため、例えば .B PTRACE_SYSCALL -¤ò»È¤¦¤È¡¢1²óÌܤÎÄä»ß¤Ç°ú¤­¿ô¤òÄ´¤Ù¤Æ +を使うと、1回目の停止で引き数を調べて .B PTRACE_SYSCALL -¤ò¼Â¹Ô¤·¡¢ 2²óÌܤÎÄä»ß¤Ç¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÊÖ¤êÃͤòÄ´¤Ù¤ë¡¢ -¤È¤¤¤¦¤è¤¦¤Ê¤³¤È¤¬¤Ç¤­¤ë¡£ -°ú¤­¿ô +を実行し、 2回目の停止でシステムコールの返り値を調べる、 +というようなことができる。 +引き数 .I data -¤Ï +は .B PTRACE_CONT -¤Î¾ì¹ç¤ÈƱ¤¸Íͤ˲ò¼á¤µ¤ì¤ë¡£ -(\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£) +の場合と同じ様に解釈される。 +(\fIaddr\fP は無視される。) .TP -.BR PTRACE_SYSEMU ", " PTRACE_SYSEMU_SINGLESTEP " (Linux 2.6.14 °Ê¹ß)" +.BR PTRACE_SYSEMU ", " PTRACE_SYSEMU_SINGLESTEP " (Linux 2.6.14 以降)" .B PTRACE_SYSEMU -¤Ï¡¢¼Â¹Ô¤òºÆ³«¤·¡¢¼¡¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÆþ¤ë»þ¤ËÄä»ß¤µ¤»¤ë¡£ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¼Â¹Ô¤µ¤ì¤Ê¤¤¡£ +は、実行を再開し、次のシステムコールに入る時に停止させる。 +システムコールは実行されない。 .B PTRACE_SYSEMU_SINGLESTEP -¤âƱÍͤÀ¤¬¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï -1 Ì¿Îá (singlestep) ¤À¤±¼Â¹Ô¤·¤¿»þÅÀ¤Ç¤âÄä»ß¤µ¤»¤ë¡£ -¤³¤Î¥³¡¼¥ë¤Ï User Mode Linux ¤Î¤è¤¦¤Ë»Ò¥×¥í¥»¥¹¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÁ´¤Æ -¥¨¥ß¥å¥ì¡¼¥È¤·¤è¤¦¤È¤¹¤ë¥×¥í¥°¥é¥à¤Ç»ÈÍѤµ¤ì¤ë¡£ -°ú¤­¿ô +も同様だが、システムコールでない場合には +1 命令 (singlestep) だけ実行した時点でも停止させる。 +このコールは User Mode Linux のように子プロセスのシステムコールを全て +エミュレートしようとするプログラムで使用される。 +引き数 .I data -¤Ï +は .B PTRACE_CONT -¤Î¾ì¹ç¤ÈƱ¤¸Íͤ˲ò¼á¤µ¤ì¤ë¡£ -(\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£ -Á´¤Æ¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£) +の場合と同じ様に解釈される。 +(\fIaddr\fP は無視される。 +全てのアーキテクチャでサポートされているわけではない。) .TP .B PTRACE_KILL -»Ò¥×¥í¥»¥¹¤Ë +子プロセスに .B SIGKILL -¤òÁ÷¤ê½ªÎ»¤µ¤»¤ë¡£(\fIaddr\fP ¤È \fIdata\fP ¤Ï̵»ë¤µ¤ì¤ë¡£) +を送り終了させる。(\fIaddr\fP と \fIdata\fP は無視される。) .TP .B PTRACE_ATTACH .I pid -¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤ËÀܳ (attach) ¤·¡¢¤½¤ì¤ò¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î -»Ò¥×¥í¥»¥¹¤È¤·¤Æ¥È¥ì¡¼¥¹¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£»Ò¥×¥í¥»¥¹¤Ï +で指定されたプロセスに接続 (attach) し、それを呼び出し元のプロセスの +子プロセスとしてトレースできるようにする。子プロセスは .B PTRACE_TRACEME -¤·¤¿¤«¤Î¤è¤¦¤Ë¿¶Éñ¤¦¡£¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ï¤½¤Î¤Û¤È¤ó¤É¤ÎÌÜŪ¤Ë¤ª¤¤¤Æ¡¢ -¤½¤Î»Ò¥×¥í¥»¥¹¤Î¼ÂºÝ¤Î¿Æ¤Ë¤Ê¤ë (Î㤨¤Ð¡¢»Ò¥×¥í¥»¥¹¤Î¥¤¥Ù¥ó¥È¤Î -ÄÌÃΤò¼õ¤±¤È¤Ã¤¿¤ê¡¢ +したかのように振舞う。呼び出し元のプロセスはそのほとんどの目的において、 +その子プロセスの実際の親になる (例えば、子プロセスのイベントの +通知を受けとったり、 .BR ps (1) -¤Ç¿Æ¤È¤·¤Æɽ¼¨¤µ¤ì¤¿¤ê¤¹¤ë)¡£¤·¤«¤·¡¢»Ò¥×¥í¥»¥¹¤Ç +で親として表示されたりする)。しかし、子プロセスで .BR getppid (2) -¤ò¼Â¹Ô¤·¤¿¾ì¹ç¤Ë¤Ï¸µ¤Î¿Æ¥×¥í¥»¥¹¤Î PID ¤¬ÊÖ¤µ¤ì¤ë¡£ -»Ò¥×¥í¥»¥¹¤Ë¤Ï +を実行した場合には元の親プロセスの PID が返される。 +子プロセスには .B SIGSTOP -¤¬Á÷¤é¤ì¤ë¤¬¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤¬´°Î»¤¹¤ë¤Þ¤Ç¤Ë -ɬ¤º¤·¤âÄä»ß¤¹¤ë¤È¤Ï¸Â¤é¤Ê¤¤¡£»Ò¥×¥í¥»¥¹¤ÎÄä»ß¤òÂÔ¤Ä¤Ë¤Ï +が送られるが、この呼び出しが完了するまでに +必ずしも停止するとは限らない。子プロセスの停止を待つには .BR wait (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£(\fIaddr\fP ¤È \fIdata\fP ¤Ï̵»ë¤µ¤ì¤ë¡£) +を使用すること。(\fIaddr\fP と \fIdata\fP は無視される。) .TP .B PTRACE_DETACH .B PTRACE_CONT -¤ÈƱÍͤËÄä»ß¤·¤¿»Ò¥×¥í¥»¥¹¤òºÆ³«¤¹¤ë¡£¤¿¤À¤· -¤Þ¤º¤½¤Î¥×¥í¥»¥¹¤«¤é¤ÎʬΥ (detach) ¤ò¹Ô¤¤¡¢ +と同様に停止した子プロセスを再開する。ただし +まずそのプロセスからの分離 (detach) を行い、 .B PTRACE_ATTACH -¤Ç¤Î¿Æ¤ÎÀڤ괹¤¨¤Ë¤è¤ë¸ú²Ì¤È +での親の切り換えによる効果と .B PTRACE_TRACEME -¤Î¸ú²Ì¤ò¼è¤ê¾Ã¤¹¡£°Õ¿Þ¤·¤¿¤â¤Î¤Ç¤Ï¤Ê¤¤¤À¤í¤¦¤¬¡¢ -Linux ¤Ç¤Ï¡¢¥È¥ì¡¼¥¹¤µ¤ì¤Æ¤¤¤ë»Ò¥×¥í¥»¥¹¤Ï¤É¤Î¤è¤¦¤ÊÊýË¡¤Ç¥È¥ì¡¼¥¹¤ò -³«»Ï¤µ¤ì¤¿¤È¤·¤Æ¤â¡¢¤³¤ÎÊýË¡¤ÇʬΥ (detach) ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -(\fIaddr\fP ¤Ï̵»ë¤µ¤ì¤ë¡£) -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +の効果を取り消す。意図したものではないだろうが、 +Linux では、トレースされている子プロセスはどのような方法でトレースを +開始されたとしても、この方法で分離 (detach) することができる。 +(\fIaddr\fP は無視される。) +.SH 返り値 +成功すると、 .B PTRACE_PEEK* -¤Î¾ì¹ç¤ÏÍ׵ᤷ¤¿¥Ç¡¼¥¿¤òÊÖ¤·¡¢ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +の場合は要求したデータを返し、 +それ以外の場合は 0 を返す。 +エラーの場合は \-1 を返し、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .B PTRACE_PEEK* -¤¬À®¸ù¤·¤ÆÊÖ¤¹Ãͤ⡡\-1 ¤Ë¤Ê¤ë¤³¤È¤¬¤¢¤ë¤¿¤á¡¢ -¤½¤Î¤è¤¦¤ÊÍ×µá¤Î¾ì¹ç¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Ï +が成功して返す値も \-1 になることがあるため、 +そのような要求の場合には、呼び出し元は .I errno -¤òÄ´¤Ù¡¢¥¨¥é¡¼¤«È¯À¸¤·¤¿¤Î¤«¤É¤¦¤«¤òȽÃǤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ¥¨¥é¡¼ +を調べ、エラーか発生したのかどうかを判断しなければならない。 +.SH エラー .TP .B EBUSY -(i386 ¤Î¤ß) ¥Ç¥Ð¥Ã¥°¥ì¥¸¥¹¥¿¤Î³ÎÊݤޤ¿¤Ï²òÊü¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +(i386 のみ) デバッグレジスタの確保または解放でエラーが発生した。 .TP .B EFAULT -¿Æ¥×¥í¥»¥¹¤Þ¤¿¤Ï»Ò¥×¥í¥»¥¹¤Î¥á¥â¥ê¤ÎÉÔÀµ¤ÊÎΰè¤ËÆɤ߽ñ¤­¤·¤è¤¦¤È¤·¤¿¡£ -¤ª¤½¤é¤¯¤½¤ÎÎΰ褬¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ -¤½¤ÎÎΰè¤Ø¤Î¥¢¥¯¥»¥¹¤¬µö¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¤Ç¤¢¤ë¡£ -ÉÔ±¿¤Ê¤³¤È¤Ë¡¢Linux ¤Ç¤Ï¤³¤Î¤è¤¦¤Ê¥¨¥é¡¼¤Î¾ì¹ç¡¢Â¿¤«¤ì¾¯¤Ê¤«¤ì -×ó°ÕŪ¤Ë +親プロセスまたは子プロセスのメモリの不正な領域に読み書きしようとした。 +おそらくその領域がマッピングされていないか、 +その領域へのアクセスが許されていないかである。 +不運なことに、Linux ではこのようなエラーの場合、多かれ少なかれ +恣意的に .B EIO -¤òÊÖ¤·¤¿¤ê +を返したり .B EFAULT -¤òÊÖ¤·¤¿¤ê¤¹¤ë¤³¤È¤¬¤¢¤ë¡£ +を返したりすることがある。 .TP .B EINVAL -ÉÔÀµ¤Ê¥ª¥×¥·¥ç¥ó¤òÀßÄꤷ¤è¤¦¤È¤·¤¿¡£ +不正なオプションを設定しようとした。 .TP .B EIO -\fIrequest\fP ¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ -¤Þ¤¿¤Ï¡¢¿Æ¥×¥í¥»¥¹¤Þ¤¿¤Ï»Ò¥×¥í¥»¥¹¤Î¥á¥â¥ê¤Î -ÉÔÀµ¤ÊÎΰè¤ËÆɤ߽ñ¤­¤·¤è¤¦¤È¤·¤¿¡£ -¤Þ¤¿¤Ï¡¢¥ï¡¼¥É¶­³¦°ãÈ¿¤¬¤¢¤Ã¤¿¡£ -¤Þ¤¿¤Ï¡¢¼Â¹ÔºÆ³«¤ÎÍ×µá¤ÇÉÔÀµ¤Ê¥·¥°¥Ê¥ë¤ò»ØÄꤷ¤¿¡£ +\fIrequest\fP が不正である。 +または、親プロセスまたは子プロセスのメモリの +不正な領域に読み書きしようとした。 +または、ワード境界違反があった。 +または、実行再開の要求で不正なシグナルを指定した。 .TP .B EPERM -»ØÄꤷ¤¿¥×¥í¥»¥¹¤ò¥È¥ì¡¼¥¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£¤³¤ì¤Ï¿Æ¥×¥í¥»¥¹¤¬ -ɬÍפʸ¢¸Â (ɬÍפʥ±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ï +指定したプロセスをトレースすることができない。これは親プロセスが +必要な権限 (必要なケーパビリティは .BR CAP_SYS_PTRACE ) -¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¤³¤È¤¬¸¶°ø¤Î¾ì¹ç¤¬¤¢¤ë¡£ -ʬ¤«¤ê¤ä¤¹¤¤Íýͳ¤òµó¤²¤ë¤Ê¤é¡¢ -ÈóÆø¢¥×¥í¥»¥¹¤Ï¥·¥°¥Ê¥ë¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¥×¥í¥»¥¹¤ò¥È¥ì¡¼¥¹¤Ç¤­¤Ê¤¤¤·¡¢ -set-user-ID/set-group-ID ¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Ï¥È¥ì¡¼¥¹¤Ç¤­¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢¥×¥í¥»¥¹¤Ï¤¹¤Ç¤Ë¥È¥ì¡¼¥¹Ãæ¤Ç¤¢¤ë¡¢ -¤Þ¤¿¤Ï +を持っていないことが原因の場合がある。 +分かりやすい理由を挙げるなら、 +非特権プロセスはシグナルを送ることができないプロセスをトレースできないし、 +set-user-ID/set-group-ID プログラムを実行しているプロセスはトレースできない。 +または、プロセスはすでにトレース中である、 +または .BR init (8) -¥×¥í¥»¥¹ (PID ¤¬ 1) ¤Ç¤¢¤ë¡£ +プロセス (PID が 1) である。 .TP .B ESRCH -»ØÄꤷ¤¿¥×¥í¥»¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢»ØÄꤷ¤¿¥×¥í¥»¥¹¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬ -¸½ºß¥È¥ì¡¼¥¹Ãæ¤Î»Ò¥×¥í¥»¥¹¤Ç¤Ï¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢»ØÄꤷ¤¿¥×¥í¥»¥¹¤¬Ää»ß¤·¤Æ¤¤¤Ê¤¤ (Ää»ß¤·¤Æ¤¤¤ë¤³¤È¤¬É¬ÍפÊÍ×µá¤Î¾ì¹ç)¡£ -.SH ½àµò +指定したプロセスが存在しない。 +または、指定したプロセスは呼び出したプロセスが +現在トレース中の子プロセスではない。 +または、指定したプロセスが停止していない (停止していることが必要な要求の場合)。 +.SH 準拠 SVr4, 4.3BSD. -.SH Ãí°Õ +.SH 注意 .BR ptrace () -¤Î°ú¤­¿ô¤Ï¾å¤Î¤è¤¦¤Ê¥×¥í¥È¥¿¥¤¥×¤Ë´ð¤Å¤¤¤Æ²ò¼á¤µ¤ì¤ë¤¬¡¢ -glibc ¤Ç¤Ï¡¢¸½ºß¤Î¤È¤³¤í +の引き数は上のようなプロトタイプに基づいて解釈されるが、 +glibc では、現在のところ .BR ptrace () -¤Ï \fIrequest\fP °ú¤­¿ô¤À¤±¤¬¸ÇÄê¤Î²ÄÊÑĹ°ú¤­¿ô´Ø¿ô¤È¤·¤Æ -Àë¸À¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤ÏɬÍפʤ±¤ì¤Ð»Ä¤ê¤Î°ú¤­¿ô¤Ï¾Êά²Äǽ¤Ç¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¤¬¡¢ -¤½¤ì¤Ï +は \fIrequest\fP 引き数だけが固定の可変長引き数関数として +宣言されている。 +これは必要なければ残りの引き数は省略可能であることを意味するが、 +それは .BR gcc (1) -¤ÎÌÀʸ²½¤µ¤ì¤Æ¤¤¤Ê¤¤Æ°ºî¤òÍøÍѤ·¤Æ¤¤¤ë¤³¤È¤Ë¤Ê¤ë¡£ +の明文化されていない動作を利用していることになる。 .LP .BR init (8) -¤¹¤Ê¤ï¤Á PID ¤¬ 1 ¤Î¥×¥í¥»¥¹¤Ï¥È¥ì¡¼¥¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +すなわち PID が 1 のプロセスはトレースすることができない。 .LP -¥á¥â¥ê¤ä USER Îΰè¤ÎÆâÍƤäÇÛÃÖ¤Ï OS ¤´¤È¡¢¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤´¤È¤Ë -Èó¾ï¤Ë°Í¸¤¹¤ë¡£ -¥ª¥Õ¥»¥Ã¥È¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ÊÖ¤µ¤ì¤ë¥Ç¡¼¥¿¤Ï +メモリや USER 領域の内容や配置は OS ごと、アーキテクチャごとに +非常に依存する。 +オフセットが指定された場合、返されるデータは .I "struct user" -¤ÎÄêµÁ¤È´°Á´¤Ë°ìÃפ·¤Ê¤¤¤³¤È¤â¤¢¤ê¤¨¤ë¡£ -.\" http://lkml.org/lkml/2008/5/8/375 »²¾È¡£ +の定義と完全に一致しないこともありえる。 +.\" http://lkml.org/lkml/2008/5/8/375 参照。 .LP -¡Ö¥ï¡¼¥É (word) ¡×¤ÎÂ礭¤µ¤Ï OS ¤Ë¤è¤Ã¤Æ·è¤Þ¤ë¡£ -(Î㤨¤Ð¡¢32 ¥Ó¥Ã¥È¤Î Linux ¤Ç¤Ï 32 ¥Ó¥Ã¥È¤Ç¤¢¤ë¡¢¤Ê¤É¡£) +「ワード (word) 」の大きさは OS によって決まる。 +(例えば、32 ビットの Linux では 32 ビットである、など。) .LP -¥È¥ì¡¼¥¹¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¥È¥ì¡¼¥¹¤µ¤ì¤ë¥×¥í¥»¥¹¤ÎÆ°ºî¤Ëº³ºÙ¤Ê°ã¤¤¤¬ -µ¯¤³¤ë¤³¤È¤¬¤¢¤ë¡£Î㤨¤Ð¡¢¥×¥í¥»¥¹¤¬ +トレースすることによってトレースされるプロセスの動作に些細な違いが +起こることがある。例えば、プロセスが .B PTRACE_ATTACH -¤Ë¤è¤Ã¤ÆÀܳ¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤¬Ää»ß¤·¤¿»þ¤Ç¤âËÜÍè¤Î¿Æ¤Ï +によって接続された場合には、そのプロセスが停止した時でも本来の親は .BR wait (2) -¤ò»È¤Ã¤ÆÄÌÃΤò¼õ¤±¤ë¤³¤È¤¬¤Ç¤­¤º¡¢¿·¤·¤¤¿Æ¤¬¸úΨ¤è¤¯ -¤³¤ÎÄÌÃΤò¿¿»÷¤ëÊýË¡¤â¤Ê¤¤¡£ +を使って通知を受けることができず、新しい親が効率よく +この通知を真似る方法もない。 .LP -¿Æ¥×¥í¥»¥¹¤¬ +親プロセスが .B PTRACE_EVENT_* -¤¬¥»¥Ã¥È¤µ¤ì¤¿¥¤¥Ù¥ó¥È¤ò¼õ¿®¤·¤¿¾ì¹ç¡¢ -»Ò¥×¥í¥»¥¹¤ÏÄ̾ïÄ̤ê¤Î¥·¥°¥Ê¥ëÇÛÁ÷¤¬¹Ô¤ï¤ì¤ë¾õÂ֤ˤʤ¤¡£ -¤Ä¤Þ¤ê¡¢¿Æ¥×¥í¥»¥¹¤¬¡¢ -¥·¥°¥Ê¥ë¤Ë¤è¤ê +がセットされたイベントを受信した場合、 +子プロセスは通常通りのシグナル配送が行われる状態にない。 +つまり、親プロセスが、 +シグナルにより .BR ptrace (PTRACE_CONT) -¤ò¹Ô¤Ã¤¿¤ê¡¢ +を行ったり、 .BR ptrace (PTRACE_KILL) -¤ò¹Ô¤Ã¤¿¤ê¤Ç¤­¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ -¤³¤é¤é¤Î¥á¥Ã¥»¡¼¥¸¤Î¼õ¿®¸å¤Ï¡¢»Ò¥×¥í¥»¥¹¤ò½ªÎ» (kill) ¤¹¤ë¤Î¤Ë¡¢ -¥·¥°¥Ê¥ë +を行ったりできないということである。 +こららのメッセージの受信後は、子プロセスを終了 (kill) するのに、 +シグナル .B SIGKILL -¤ò»ØÄꤷ¤Æ +を指定して .BR kill (2) -¤ò¹Ô¤¦ÊýË¡¤òÂå¤ï¤ê¤Ë»ÈÍѤǤ­¤ë¡£ +を行う方法を代わりに使用できる。 .LP -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Ï¸½ºß¤Î Linux ¤Ë¤ª¤±¤ë +このマニュアルは現在の Linux における .BR ptrace () -¥³¡¼¥ë¤ÎÆ°ºî¤Ë¤Ä¤¤¤Æµ­½Ò¤·¤Æ¤¤¤ë¡£Â¾¤Î UNIX ¤Ç¤Ï -¤½¤ÎÆ°ºî¤ÏÃø¤·¤¯°Û¤Ê¤ë¡£ -¤¤¤«¤Ê¤ë¾ì¹ç¤â +コールの動作について記述している。他の UNIX では +その動作は著しく異なる。 +いかなる場合も .BR ptrace () -¤ò»È¤¦¤È OS ¤ä¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ËÈó¾ï¤Ë°Í¸¤·¤¿¤â¤Î¤Ë¤Ê¤ë¡£ +を使うと OS やアーキテクチャに非常に依存したものになる。 .LP -SunOS ¤Î¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤Ë¤Ï +SunOS のマニュアル・ページには .BR ptrace () -¤Ï¡ÖÆÈÆäÇÉԲIJò¡×¤Èµ­½Ò¤µ¤ì¤Æ¤ª¤ê¡¢¤Þ¤µ¤·¤¯¤½¤¦¤Ç¤¢¤ë¡£ -Solaris 2 ¤Ç¤Ï proc ¥Ù¡¼¥¹¤Î -¥Ç¥Ð¥Ã¥°¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤È¤·¤Æ +は「独特で不可解」と記述されており、まさしくそうである。 +Solaris 2 では proc ベースの +デバッグのインターフェースとして .BR ptrace () -¤Î¾å°Ì¸ß´¹´Ø¿ô¤¬¼ÂÁõ¤µ¤ì¡¢¤è¤ê¶¯ÎϤǰì´ÓÀ­¤Î¤¢¤ë¤â¤Î¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ -.SH ¥Ð¥° -¥«¡¼¥Í¥ë 2.6 ¤Î¥Ø¥Ã¥À¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¥Û¥¹¥È¤Ç¤Ï¡¢ +の上位互換関数が実装され、より強力で一貫性のあるものとなっている。 +.SH バグ +カーネル 2.6 のヘッダがインストールされたホストでは、 .B PTRACE_SETOPTIONS -¤Ï¥«¡¼¥Í¥ë 2.4 ¤Î¥Ø¥Ã¥À¤È¤Ï°Û¤Ê¤ëÃͤÇÀë¸À¤µ¤ì¤ë¡£ -¤³¤Î¤¿¤á¡¢¥«¡¼¥Í¥ë 2.6 ¤Î¥Ø¥Ã¥À¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï -¥«¡¼¥Í¥ë 2.4 ¤Ç¤ÏÀµ¤·¤¯Æ°ºî¤·¤Ê¤¤¡£ -¤³¤ÎÌäÂê¤Ï¡¢ +はカーネル 2.4 のヘッダとは異なる値で宣言される。 +このため、カーネル 2.6 のヘッダでコンパイルされたアプリケーションは +カーネル 2.4 では正しく動作しない。 +この問題は、 .B PTRACE_SETOPTIONS -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤¿ºÝ¤Ï¡¢ +が定義されていた際は、 .B PTRACE_SETOPTIONS -¤ò +を .B PTRACE_OLDSETOPTIONS -¤ËÄêµÁ¤·Ä¾¤¹¤³¤È¤ÇÂнè¤Ç¤­¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +に定義し直すことで対処できる。 +.SH 関連項目 .BR gdb (1), .BR strace (1), .BR execve (2), diff --git a/release/man2/query_module.2 b/release/man2/query_module.2 index fc535986..0dadcae4 100644 --- a/release/man2/query_module.2 +++ b/release/man2/query_module.2 @@ -9,75 +9,75 @@ .\" Translated 2006-07-29, Akihiro MOTOKI .\" .TH QUERY_MODULE 2 2007-06-03 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -query_module \- ¥â¥¸¥å¡¼¥ë¤Ë´ØÏ¢¤¹¤ë³Æ¼ï¤Î¾ðÊó¤ò¥«¡¼¥Í¥ë¤ËÌ䤤¹ç¤ï¤»¤ë -.SH ½ñ¼° +.SH 名前 +query_module \- モジュールに関連する各種の情報をカーネルに問い合わせる +.SH 書式 .nf .B #include .sp .BI "int query_module(const char *" name ", int " which ", void *" buf , .BI " size_t " bufsize ", size_t *" ret ); .fi -.SH ÀâÌÀ +.SH 説明 .BR query_module () -¤Ï¡¢¥í¡¼¥À¥Ö¥ë¥â¥¸¥å¡¼¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤ò¥«¡¼¥Í¥ë¤ËÌ䤤¹ç¤ï¤»¤ë¡£ -¾ðÊó¤Ï +は、ローダブルモジュールに関する情報をカーネルに問い合わせる。 +情報は .I buf -¤¬»Ø¤·¼¨¤¹¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤ÆÊÖ¤µ¤ì¤ë¡£ -¸Æ¤Ó½Ð¤·¸µ¤Ï +が指し示すバッファに格納されて返される。 +呼び出し元は .I buf -¤Î¥µ¥¤¥º¤ò +のサイズを .I bufsize -¤Ë»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -ÆÀ¤é¤ì¤ë¾ðÊó¤ÎÀµ³Î¤Ê°ÕÌ£¤È¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢ +に指定しなければならない。 +得られる情報の正確な意味とフォーマットは、 .I which -¤Ç¤É¤ÎÁàºî¤ò»ØÄꤹ¤ë¤«¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¡£ -¸½ºß¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë¥â¥¸¥å¡¼¥ë¤òÆÃÄꤹ¤ë¤¿¤á¤Ë +でどの操作を指定するかによって異なる。 +現在ロードされているモジュールを特定するために .I name -¤òɬÍפȤ¹¤ëÁàºî¤¬¤¢¤ì¤Ð¡¢ -¥«¡¼¥Í¥ë¸ÇÍ­¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹ NULL ¤ò»ØÄê¤Ç¤­¤ëÁàºî¤â¤¢¤ë¡£ +を必要とする操作があれば、 +カーネル固有であることを示す NULL を指定できる操作もある。 .I which -¤Ë¤Ï°Ê²¼¤ÎÃͤò»ØÄê¤Ç¤­¤ë: +には以下の値を指定できる: .TP .B 0 -¥«¡¼¥Í¥ë¤¬ +カーネルが .BR query_module () -¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¡¢À®¸ù¤òÊÖ¤¹¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ÍøÍѲÄǽ¤«¤òÄ´¤Ù¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ +をサポートしている場合、成功を返す。 +このシステムコールが利用可能かを調べるために使われる。 .TP .B QM_MODULES -¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¥â¥¸¥å¡¼¥ë¤Î̾Á°¤òÊÖ¤¹¡£ -¥Ð¥Ã¥Õ¥¡¤Ë¤Ï¡¢NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎ󤬽ç¤ËÆþ¤ë¡£ -ÊÖ¤µ¤ì¤ë¥Ð¥Ã¥Õ¥¡ +ロードされている全てのモジュールの名前を返す。 +バッファには、NULL 終端された文字列が順に入る。 +返されるバッファ .I ret -¤Ë¤Ï¥â¥¸¥å¡¼¥ë¤Î¿ô¤¬ÀßÄꤵ¤ì¤ë¡£ +にはモジュールの数が設定される。 .\" ret is set on ENOSPC .TP .B QM_DEPS -»ØÄꤵ¤ì¤¿¥â¥¸¥å¡¼¥ë¤¬»ÈÍѤ·¤Æ¤¤¤ëÁ´¥â¥¸¥å¡¼¥ë¤Î̾Á°¤òÊÖ¤¹¡£ -¥Ð¥Ã¥Õ¥¡¤Ë¤Ï¡¢NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎ󤬽ç¤ËÆþ¤ë¡£ -ÊÖ¤µ¤ì¤ë¥Ð¥Ã¥Õ¥¡ +指定されたモジュールが使用している全モジュールの名前を返す。 +バッファには、NULL 終端された文字列が順に入る。 +返されるバッファ .I ret -¤Ë¤Ï¥â¥¸¥å¡¼¥ë¤Î¿ô¤¬ÀßÄꤵ¤ì¤ë¡£ +にはモジュールの数が設定される。 .\" ret is set on ENOSPC .TP .B QM_REFS -»ØÄꤵ¤ì¤¿¥â¥¸¥å¡¼¥ë¤ò»ÈÍѤ·¤Æ¤¤¤ëÁ´¥â¥¸¥å¡¼¥ë¤Î̾Á°¤òÊÖ¤¹¡£ -¤³¤ì¤Ï +指定されたモジュールを使用している全モジュールの名前を返す。 +これは .B QM_DEPS -¤ÈµÕ¤Îµ¡Ç½¤Ç¤¢¤ë¡£ -¥Ð¥Ã¥Õ¥¡¤Ë¤Ï¡¢NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎ󤬽ç¤ËÆþ¤ë¡£ -ÊÖ¤µ¤ì¤ë¥Ð¥Ã¥Õ¥¡ +と逆の機能である。 +バッファには、NULL 終端された文字列が順に入る。 +返されるバッファ .I ret -¤Ë¤Ï¥â¥¸¥å¡¼¥ë¤Î¿ô¤¬ÀßÄꤵ¤ì¤ë¡£ +にはモジュールの数が設定される。 .\" ret is set on ENOSPC .TP .B QM_SYMBOLS -¥«¡¼¥Í¥ë¤Þ¤¿¤Ï»ØÄꤵ¤ì¤¿¥â¥¸¥å¡¼¥ë¤¬¥¨¥¯¥¹¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥·¥ó¥Ü¥ë¤È -ÃͤòÊÖ¤¹¡£ -¥Ð¥Ã¥Õ¥¡¤Î¥Ç¡¼¥¿¤Ï¡¢ -°Ê²¼¤Î¹½Â¤ÂΤÎÇÛÎó¤Ë NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤¬Â³¤¯·Á¤È¤Ê¤ë¡£ +カーネルまたは指定されたモジュールがエクスポートしているシンボルと +値を返す。 +バッファのデータは、 +以下の構造体の配列に NULL 終端された文字列が続く形となる。 .\" ret is set on ENOSPC .in +4n .nf @@ -90,15 +90,15 @@ struct module_symbol { .in .IP .I name -¤ÎÃͤϡ¢ +の値は、 .I buf -¤ÎÀèƬ¤«¤é¤Îʸ»úÎó¤Þ¤Ç¤Î¥ª¥Õ¥»¥Ã¥Èʸ»ú¿ô¤Ç¤¢¤ë¡£ +の先頭からの文字列までのオフセット文字数である。 .I ret -¤Ë¤Ï¥·¥ó¥Ü¥ë¤Î¿ô¤¬ÀßÄꤵ¤ì¤ë¡£ +にはシンボルの数が設定される。 .TP .B QM_INFO -»ØÄꤵ¤ì¤¿¥â¥¸¥å¡¼¥ë¤Ë´Ø¤¹¤ëÍÍ¡¹¤Ê¾ðÊó¤òÊÖ¤¹¡£ -½ÐÎϥХåե¡¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï°Ê²¼¤Î·Á¼°¤È¤Ê¤ë: +指定されたモジュールに関する様々な情報を返す。 +出力バッファのフォーマットは以下の形式となる: .in +4n .nf @@ -111,69 +111,69 @@ struct module_info { .in .IP .I address -¤Ï¤½¤Î¥â¥¸¥å¡¼¥ë¤¬ÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë¥«¡¼¥Í¥ë¶õ´Ö¾å¤Î¥¢¥É¥ì¥¹¡¢ +はそのモジュールが配置されているカーネル空間上のアドレス、 .I size -¤Ï¤½¤Î¥â¥¸¥å¡¼¥ë¤Î¥Ð¥¤¥Èñ°Ì¤Î¥µ¥¤¥º¡¢ +はそのモジュールのバイト単位のサイズ、 .I flags -¤Ï +は .BR MOD_RUNNING , .B MOD_AUTOCLEAN -Åù¤Î¥Þ¥¹¥¯¤Ç¤¢¤ê¡¢¤½¤Î¥â¥¸¥å¡¼¥ë¤Î¸½ºß¤Î¾õÂÖ¤ò¼¨¤¹ -(¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë +等のマスクであり、そのモジュールの現在の状態を示す +(カーネルのソースファイル .I include/linux/module.h -¤ò»²¾È)¡£ +を参照)。 .I ret -¤Ë¤Ï +には .I module_info -¹½Â¤ÂΤΥµ¥¤¥º¤¬ÀßÄꤵ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤Î¾ì¹ç 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤¬ÊÖ¤µ¤ì¡¢ +構造体のサイズが設定される。 +.SH 返り値 +成功の場合 0 が返される。エラーの場合 \-1 が返され、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +に適切な値が設定される。 +.SH エラー .TP .B EFAULT .IR name , .IR buf , .I ret -¤Î¾¯¤Ê¤¯¤È¤â°ì¤Ä¤¬¡¢¥×¥í¥°¥é¥à¤¬¥¢¥¯¥»¥¹¤Ç¤­¤ë -¥¢¥É¥ì¥¹¶õ´Ö¤Î³°Éô¤Ç¤¢¤Ã¤¿¡£ +の少なくとも一つが、プログラムがアクセスできる +アドレス空間の外部であった。 .TP .B EINVAL .I which -¤¬ÉÔÀµ¤Ç¤¢¤ë¡£¤¢¤ë¤¤¤Ï +が不正である。あるいは .I name -¤¬ NULL ¤À¤¬ (NULL ¤Ï "¥«¡¼¥Í¥ë" ¤ò¼¨¤¹)¡¢ +が NULL だが (NULL は "カーネル" を示す)、 .I which -¤Ç»ØÄꤵ¤ì¤¿ÃͤȤÎÁȤ߹ç¤ï¤»¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +で指定された値との組み合わせは許可されていない。 .\" Not permitted with QM_DEPS, QM_REFS, or QM_INFO. .TP .B ENOENT .I name -¤È¤¤¤¦Ì¾Á°¤Î¥â¥¸¥å¡¼¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ +という名前のモジュールが存在しない。 .TP .B ENOSPC -Í¿¤¨¤é¤ì¤¿¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ¤¬¾®¤µ¤¹¤®¤ë¡£ +与えられたバッファの大きさが小さすぎる。 .I ret -¤Ë¤ÏºÇ¾®¸ÂɬÍפʥХåե¡¤Î¥µ¥¤¥º¤¬ÀßÄꤵ¤ì¤ë¡£ +には最小限必要なバッファのサイズが設定される。 .TP .B ENOSYS .BR query_module () -¤Ï¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ½àµò +はこのバージョンのカーネルではサポートされていない。 +.SH 準拠 .BR query_module () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Â¸ºß¤¹¤ë¤Î¤Ï¥«¡¼¥Í¥ë 2.4 ¤Þ¤Ç¤Î Linux ¤À¤±¤Ç¤¢¤ë¡£ -Linux 2.6 ¤Ç¤Ïºï½ü¤µ¤ì¤¿¡£ +は Linux 固有である。 +.SH 注意 +このシステムコールが存在するのはカーネル 2.4 までの Linux だけである。 +Linux 2.6 では削除された。 .\" Removed in Linux 2.5.48 .BR query_module () -¤ÇÆÀ¤é¤ì¤¿¾ðÊó¤Î¤¤¤¯¤Ä¤«¤Ï¡¢ +で得られた情報のいくつかは、 .IR /proc/modules , .IR /proc/kallsyms , .I /sys/modules -¤«¤é¼èÆÀ¤Ç¤­¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +から取得できる。 +.SH 関連項目 .BR create_module (2), .BR delete_module (2), .BR get_kernel_syms (2), diff --git a/release/man2/quotactl.2 b/release/man2/quotactl.2 index 4ea6b3ff..059c2036 100644 --- a/release/man2/quotactl.2 +++ b/release/man2/quotactl.2 @@ -87,9 +87,9 @@ .\" by Yuichi SATO .\" .TH QUOTACTL 2 2007-06-01 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -quotactl \- ¥Ç¥£¥¹¥¯ quota ¤òÁàºî¤¹¤ë -.SH ½ñ¼° +.SH 名前 +quotactl \- ディスク quota を操作する +.SH 書式 .nf .B #include .br @@ -98,143 +98,143 @@ quotactl \- .BI "int quotactl(int " cmd ", const char *" special ", int " id \ ", caddr_t " addr ); .fi -.SH ÀâÌÀ -quota ¥·¥¹¥Æ¥à¤Ï¡¢³Æ¡¹¤Î¥æ¡¼¥¶µÚ¤Ó/¤Þ¤¿¤Ï¥°¥ë¡¼¥×¤ËÂФ·¤Æ¡¢ -¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥ÈµÚ¤Ó¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È¤òÄê¤á¤ë¡£¤³¤ì¤Ï¤¢¤ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ç -»ÈÍѤ¹¤ë»ö¤¬½ÐÍè¤ë¥Ç¥£¥¹¥¯ÍÆÎ̤òÀ©¸Â¤¹¤ë¡£ -¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È¤ÏĶ²á¤¹¤ë¤³¤È¤Ï½ÐÍè¤Ê¤¤¡£ -¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤ÏĶ²á¤¹¤ë»ö¤¬½ÐÍè¤ë¤¬¡¢·Ù¹ð¤¬È¯¤»¤é¤ì¤ë¡£ -¹¹¤Ë¡¢(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï) °ì½µ´Ö°Ê¾å¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤òĶ²á¤·¤¿¤Þ¤Þ¤Ë -¤·¤Æ¤ª¤¯»ö¤Ï¤Ç¤­¤Ê¤¤: °ì½µ´Ö·Ð²á¤·¤¿¸å¤Ï¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È¤òĶ²á¤·¤¿¤È -¤ß¤Ê¤µ¤ì¤ë¡£ +.SH 説明 +quota システムは、各々のユーザ及び/またはグループに対して、 +ソフト・リミット及びハード・リミットを定める。これはあるファイル・システムで +使用する事が出来るディスク容量を制限する。 +ハード・リミットは超過することは出来ない。 +ソフト・リミットは超過する事が出来るが、警告が発せられる。 +更に、(デフォルトでは) 一週間以上ソフト・リミットを超過したままに +しておく事はできない: 一週間経過した後はハード・リミットを超過したと +みなされる。 .BR quotactl () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¤³¤ì¤é¤Î quota ¤ËÂФ¹¤ëÁàºî¤ò¹Ô¤Ê¤¦¡£ -ºÇ½é¤Î°ú¤­¿ô¤Ï +システムコールはこれらの quota に対する操作を行なう。 +最初の引き数は .BI QCMD( subcmd , type ) -¤È¤¤¤¦·Á¼°¤Ç¤¢¤ë¡£ +という形式である。 .I type -¤Ë¤Ï¡¢¥æ¡¼¥¶¡¼ quota ¤Ë¤Ä¤¤¤Æ¤Ï +には、ユーザー quota については .B USRQUOTA -¤ò¡¢¥°¥ë¡¼¥× quota ¤Ë¤Ä¤¤¤Æ¤Ï +を、グループ quota については .B GRPQUOTA -¤ò»ØÄꤹ¤ë¡£ +を指定する。 .I subcmd -¤Ï°Ê²¼¤ÇÀâÌÀ¤¹¤ë¡£ +は以下で説明する。 -ÆóÈÖÌܤΰú¤­¿ô +二番目の引き数 .I special -¤Ï quota ¤òŬÍѤ¹¤ë¥Ç¥Ð¥¤¥¹¤Î¥Ö¥í¥Ã¥¯¡¦¥¹¥Ú¥·¥ã¥ë¡¦¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ -¤½¤Î¥Ç¥Ð¥¤¥¹¤Ï¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +は quota を適用するデバイスのブロック・スペシャル・ファイルである。 +そのデバイスはマウントされていなくてはならない。 -»°ÈÖÌܤΰú¤­¿ô +三番目の引き数 .I id -¤Ë¤Ï¡¢(ɬÍפʾì¹ç¤Ë) quota ¤òŬÍѤ¹¤ë¥æ¡¼¥¶¡¼¤â¤·¤¯¤Ï¥°¥ë¡¼¥×¤Î ID ¤ò»ØÄꤹ¤ë¡£ +には、(必要な場合に) quota を適用するユーザーもしくはグループの ID を指定する。 -»ÍÈÖÌܤΰú¤­¿ô +四番目の引き数 .I addr -¤Ë¤Ï¡¢¥³¥Þ¥ó¥É¤´¤È¤Ë°Û¤Ã¤¿¥Ç¡¼¥¿¹½Â¤ÂΤΥ¢¥É¥ì¥¹¤ò»ØÄꤹ¤ë¡£ +には、コマンドごとに異ったデータ構造体のアドレスを指定する。 .I subcmd -¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë +は以下のいずれかである .TP 1.1i .B Q_QUOTAON -quota ¤òÍ­¸ú¤Ë¤¹¤ë¡£ +quota を有効にする。 .I addr -°ú¤­¿ô¤Ë¤Ï¡¢¤½¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î quota ¤¬µ­Ï¿¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Î -¥Ñ¥¹Ì¾¤ò»ØÄꤹ¤ë¡£ +引き数には、そのファイル・システムの quota が記録されているファイルの +パス名を指定する。 .TP .B Q_QUOTAOFF -quota ¤ò̵¸ú¤Ë¤¹¤ë¡£ +quota を無効にする。 .TP .B Q_GETQUOTA -¥Ç¥£¥¹¥¯»ÈÍÑÎ̤ÎÀ©¸ÂÃͤȸ½ºß¤Î»ÈÍÑÎ̤òÆÀ¤ë¡£ +ディスク使用量の制限値と現在の使用量を得る。 .I addr -°ú¤­¿ô¤Ï +引き数は .RI ( -¤ÇÄêµÁ¤µ¤ì¤¿) dqblk ¹½Â¤ÂΤò»Ø¤¹¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +で定義された) dqblk 構造体を指すポインタである。 .TP .B Q_SETQUOTA -À©¸ÂÃͤȸ½ºß¤Î»ÈÍÑÎ̤òÀßÄꤹ¤ë: +制限値と現在の使用量を設定する: .I addr -¤ÏƱ¾å¡£ +は同上。 .TP .B Q_SETQLIM -À©¸ÂÃͤòÀßÄꤹ¤ë; +制限値を設定する; .I addr -¤ÏƱ¾å¡£ +は同上。 .TP .B Q_SETUSE -»ÈÍÑÎ̤òÀßÄꤹ¤ë¡£ +使用量を設定する。 .TP .B Q_SYNC -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î quota ¥Õ¥¡¥¤¥ë¤ò¥Ç¥£¥¹¥¯¤ÈƱ´ü¤µ¤»¤ë¡£ +ファイル・システムの quota ファイルをディスクと同期させる。 .TP .B Q_GETSTATS -¼ý½¸¤µ¤ì¤¿Åý·×¤ò¼èÆÀ¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ +収集された統計を取得する。 +.SH 返り値 .BR quotactl () -¤Ï¡¢À®¸ù»þ¤Ë¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼»þ¤Ï¡¢\-1 ¤òÊÖ¤¹¤È¤È¤â¤Ë¡¢ +は、成功時には 0 を返す。エラー時は、\-1 を返すとともに、 .I errno -¤¬Å¬ÀÚ¤ÊÃͤËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切な値に設定される。 +.SH エラー .TP 0.9i .B EACCES -quota ¥Õ¥¡¥¤¥ë¤¬ÉáÄ̤Υե¡¥¤¥ë¤Ç¤Ï¤Ê¤¤¡£ +quota ファイルが普通のファイルではない。 .TP .B EBUSY .B Q_QUOTAON -¤ÎÍ׵᤬¤Ê¤µ¤ì¤¿¤¬¡¢quota(s) ¤Ï´û¤ËÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +の要求がなされたが、quota(s) は既に有効になっている。 .TP .B EFAULT .I addr -¤ÎÃͤ˸í¤ê¤¬¤¢¤ë¡£ +の値に誤りがある。 .TP .B EINVAL .I type -¤¬´ûÃΤΠquota ¤Î·Á¼°¤Ç¤Ï¤Ê¤¤¡£¤â¤·¤¯¤Ï¡¢ +が既知の quota の形式ではない。もしくは、 .I special -¥Ç¥Ð¥¤¥¹¤¬¸«ÉÕ¤«¤é¤Ê¤«¤Ã¤¿¡£ +デバイスが見付からなかった。 .TP .B EIO -quota ¥Õ¥¡¥¤¥ë¤Ø¤ÎÆɤ߽ñ¤­¤¬½ÐÍè¤Ê¤¤¡£ +quota ファイルへの読み書きが出来ない。 .TP .B EMFILE -¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤·¤¹¤®¤Æ¤¤¤ë: quota ¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó½ÐÍè¤Ê¤¤¡£ +ファイルをオープンしすぎている: quota ファイルをオープン出来ない。 .TP .B ENODEV .I special -¤¬¥Þ¥¦¥ó¥È¡¦¥Æ¡¼¥Ö¥ëÆâ¤Ë¸«Åö¤¿¤é¤Ê¤¤¡£ +がマウント・テーブル内に見当たらない。 .TP .B ENOPKG -quota ¤ò»ÈÍѲĤˤ·¤Æ¥«¡¼¥Í¥ë¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¤¤Ê¤¤¡£ +quota を使用可にしてカーネルをコンパイルしていない。 .TP .B ENOTBLK .I special -¤¬¥Ö¥í¥Ã¥¯¡¦¥¹¥Ú¥·¥ã¥ë¡¦¥Ç¥Ð¥¤¥¹¤Ç¤Ï¤Ê¤¤¡£ +がブロック・スペシャル・デバイスではない。 .TP .B EPERM -¥×¥í¥»¥¹¤¬ (¤½¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î) root ¤Î¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢ -¤«¤Ä¥×¥í¥»¥¹¼«¿È¤Î¤â¤Î¤È¤Ï°Û¤Ê¤ë +プロセスが (そのファイル・システムの) root のものではなく、 +かつプロセス自身のものとは異なる .I id -¤ËÂФ·¤Æ +に対して .B Q_GETQUOTA -Í×µá¤ò¹Ô¤Ê¤Ã¤¿¡£ -¤â¤·¤¯¤Ï¡¢ +要求を行なった。 +もしくは、 .BR Q_GETSTATS , .B Q_SYNC -°Ê³°¤ÎÍ׵᤬¤Ê¤µ¤ì¤¿¡£ +以外の要求がなされた。 .TP .B ESRCH -quota ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ËÂФ·¤Æ +quota が有効になっていないファイル・システムに対して .BR Q_GETQUOTA , .BR Q_SETQUOTA , .BR Q_SETUSE , .B Q_SETQLIM -¤Î¤¤¤º¤ì¤«¤ÎÍ׵᤬¤Ê¤µ¤ì¤¿¡£ -.SH ½àµò +のいずれかの要求がなされた。 +.SH 準拠 BSD. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR quota (1), .BR getrlimit (2), .BR setrlimit (2), diff --git a/release/man2/read.2 b/release/man2/read.2 index a01cbe18..2dc94840 100644 --- a/release/man2/read.2 +++ b/release/man2/read.2 @@ -42,159 +42,159 @@ .\" Updated 2008-02-10, Akihiro MOTOKI, LDP v2.77 .\" Updated 2009-04-13, Akihiro MOTOKI, LDP v3.20 .\" -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ -.\"WORD: buffer ¥Ð¥Ã¥Õ¥¡¡¼ -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: process group ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× -.\"WORD: backgraound ¥Ð¥Ã¥¯¥°¥é¥ó¥É -.\"WORD: orphan ¸ÉΩ -.\"WORD: open ¥ª¡¼¥×¥ó -.\"WORD: directory ¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: object ¥ª¥Ö¥¸¥§¥¯¥È +.\"WORD: descriptor ディスクリプター +.\"WORD: buffer バッファー +.\"WORD: signal シグナル +.\"WORD: process group プロセス・グループ +.\"WORD: backgraound バックグランド +.\"WORD: orphan 孤立 +.\"WORD: open オープン +.\"WORD: directory ディレクトリ +.\"WORD: object オブジェクト .\" .TH READ 2 2009-02-23 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -read \- ¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤«¤éÆɤ߹þ¤à -.SH ½ñ¼° +.SH 名前 +read \- ファイル・ディスクリプターから読み込む +.SH 書式 .nf .B #include .sp .BI "ssize_t read(int " fd ", void *" buf ", size_t " count ); .fi -.SH ÀâÌÀ +.SH 説明 .BR read () -¤Ï¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ (file descriptor) +はファイル・ディスクリプター (file descriptor) .I fd -¤«¤éºÇÂç +から最大 .I count -¥Ð¥¤¥È¤ò +バイトを .I buf -¤Ç»Ï¤Þ¤ë¥Ð¥Ã¥Õ¥¡¡¼¤ØÆɤ߹þ¤â¤¦¤È¤¹¤ë¡£ +で始まるバッファーへ読み込もうとする。 .PP .I count -¤¬ 0 ¤Ê¤é¤Ð¡¢ +が 0 ならば、 .BR read () -¤Ï 0 ¤òÊÖ¤·¡¢Â¾¤Ë²¿¤âµ¯¤­¤Ê¤¤¡£ +は 0 を返し、他に何も起きない。 .I count -¤¬ +が .B SSIZE_MAX -¤è¤êÂ礭¤±¤ì¤Ð¡¢·ë²Ì¤ÏÆÃÄê¤Ç¤­¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢Æɤ߹þ¤ó¤À¥Ð¥¤¥È¿ô¤òÊÖ¤¹ (0 ¤Ï¥Õ¥¡¥¤¥ë¤Î½ª¤ê¤ò°ÕÌ£¤¹¤ë)¡£ -¥Õ¥¡¥¤¥ë°ÌÃ֤Ϥ³¤Î¿ô¤À¤±¿Ê¤á¤é¤ì¤ë¡£ -¤³¤Î¿ô¤¬Í׵ᤷ¤¿¿ô¤è¤ê¾®¤µ¤«¤Ã¤¿¤È¤·¤Æ¤â¥¨¥é¡¼¤Ç¤Ï¤Ê¤¤; -Î㤨¤Ðº£¤¹¤°¤Ë¤Ï¼ÂºÝ¤Ë¤½¤ì¤À¤±¤Î¿ô¤·¤«¤Ê¤¤¾ì¹ç (¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤Ë¶á¤¤¤Î¤«¤â -¤·¤ì¤Ê¤¤¤·¡¢¥Ñ¥¤¥× (pipe) ¤äüËö (terminal) ¤«¤éÆɤ߹þ¤ó¤Ç¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤) ¤ä +より大きければ、結果は特定できない。 +.SH 返り値 +成功した場合、読み込んだバイト数を返す (0 はファイルの終りを意味する)。 +ファイル位置はこの数だけ進められる。 +この数が要求した数より小さかったとしてもエラーではない; +例えば今すぐには実際にそれだけの数しかない場合 (ファイルの最後に近いのかも +しれないし、パイプ (pipe) や端末 (terminal) から読み込んでいるかもしれない) や .BR read () -¤¬¥·¥°¥Ê¥ë (signal) ¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿¾ì¹ç¤Ë¤³¤ì¤Ïµ¯¤³¤ê¤¨¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +がシグナル (signal) によって割り込まれた場合にこれは起こりえる。 +エラーの場合は、\-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£¤³¤Î¾ì¹ç¤Ï¥Õ¥¡¥¤¥ë°ÌÃÖ¤¬Êѹ¹¤µ¤ì¤ë¤«¤É¤¦¤«¤Ï -ÉÔÄê¤Ç¤¢¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。この場合はファイル位置が変更されるかどうかは +不定である。 +.SH エラー .TP .B EAGAIN -¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ +ファイル・ディスクリプター .I fd -¤¬¥½¥±¥Ã¥È°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤Æ¡¢ -ÈóÄä»ß (nonblocking) ¥â¡¼¥É +がソケット以外のファイルを参照していて、 +非停止 (nonblocking) モード .RB ( O_NONBLOCK ) -¤ËÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢Æɤ߹þ¤ß¤ò¹Ô¤¦¤ÈÄä»ß¤¹¤ë¾õ¶·¤Ë¤¢¤ë¡£ +に設定されており、読み込みを行うと停止する状況にある。 .TP -.BR EAGAIN " ¤Þ¤¿¤Ï " EWOULDBLOCK +.BR EAGAIN " または " EWOULDBLOCK .\" Actually EAGAIN on Linux -¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ +ファイル・ディスクリプター .I fd -¤¬¥½¥±¥Ã¥È¤ò»²¾È¤·¤Æ¤¤¤Æ¡¢ÈóÄä»ß (nonblocking) ¥â¡¼¥É +がソケットを参照していて、非停止 (nonblocking) モード .RB ( O_NONBLOCK ) -¤ËÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢Æɤ߹þ¤ß¤ò¹Ô¤¦¤ÈÄä»ß¤¹¤ë¾õ¶·¤Ë¤¢¤ë¡£ -POSIX.1-2001 ¤Ï¡¢¤³¤Î¾ì¹ç¤Ë¤É¤Á¤é¤Î¥¨¥é¡¼¤òÊÖ¤¹¤³¤È¤âǧ¤á¤Æ¤ª¤ê¡¢ -¤³¤ì¤é 2 ¤Ä¤ÎÄê¿ô¤¬Æ±¤¸Ãͤò»ý¤Ä¤³¤È¤âµá¤á¤Æ¤¤¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢Î¾Êý¤Î²ÄǽÀ­¤ò -³Îǧ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +に設定されており、読み込みを行うと停止する状況にある。 +POSIX.1-2001 は、この場合にどちらのエラーを返すことも認めており、 +これら 2 つの定数が同じ値を持つことも求めていない。 +したがって、移植性が必要なアプリケーションでは、両方の可能性を +確認すべきである。 .TP .B EBADF .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ç¤Ê¤¤¤«¡¢Æɤ߹þ¤ß¤Î¤¿¤á¤Ë -¥ª¡¼¥×¥ó (open) ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +が有効なファイル・ディスクリプターでないか、読み込みのために +オープン (open) されていない。 .TP .B EFAULT .I buf -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤Ë¤¢¤ë¡£ +がアクセス可能なアドレス空間の外にある。 .TP .B EINTR -²¿¤Î¥Ç¡¼¥¿¤âÆɤ߹þ¤Þ¤Ê¤¤¤¦¤Á¤Ë¥·¥°¥Ê¥ë¤Ë³ä¤ê¹þ¤Þ¤ì¤¿¡£ +何のデータも読み込まないうちにシグナルに割り込まれた。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .I fd -¤ÏÆɤ߹þ¤ß¤ËŬ¤·¤Æ¤¤¤Ê¤¤¥ª¥Ö¥¸¥§¥¯¥È¤ò»²¾È¤·¤Æ¤¤¤ë¡£ -¤â¤·¤¯¤Ï¡¢¥Õ¥¡¥¤¥ë¤¬ +は読み込みに適していないオブジェクトを参照している。 +もしくは、ファイルが .B O_DIRECT -¥Õ¥é¥°¤ò»ØÄꤷ¤Æ¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ +フラグを指定してオープンされているが、 .I buf -¤Ë»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¡¢ +に指定されたアドレス、 .I count -¤Ë»ØÄꤵ¤ì¤¿ÃÍ¡¢ -¸½ºß¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤Î¤¤¤º¤ì¤«¤Î -¥¢¥é¥¤¥ó¥á¥ó¥È¤¬ÉÔŬÀڤǤ¢¤ë¡£ +に指定された値、 +現在のファイルオフセットのいずれかの +アラインメントが不適切である。 .TP .B EINVAL .I fd -¤¬ +が .BR timerfd_create (2) -¤Î¸Æ¤Ó½Ð¤·¤ÇºîÀ®¤µ¤ì¤¿¤¬¡¢ +の呼び出しで作成されたが、 .BR read () -¤Ë´Ö°ã¤Ã¤¿¥µ¥¤¥º¤Î¥Ð¥Ã¥Õ¥¡¤¬ÅϤµ¤ì¤¿¡£ -¤µ¤é¤Ê¤ë¾ðÊó¤Ï +に間違ったサイズのバッファが渡された。 +さらなる情報は .BR timerfd_create (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .TP .B EIO -I/O ¥¨¥é¡¼¡£¤³¤ì¤ÏÎ㤨¤Ð¥×¥í¥»¥¹¤¬¥Ð¥Ã¥¯¥°¥é¥ó¥É¡¦¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Ç¡¢ -¤½¤ì¤òÀ©¸æ¤·¤Æ¤¤¤ë tty ¤«¤éÆɤ߹þ¤â¤¦¤È¤·¡¢ +I/O エラー。これは例えばプロセスがバックグランド・プロセス・グループで、 +それを制御している tty から読み込もうとし、 .B SIGTTIN -¤¬Ìµ»ë (ignore) ¤Þ¤¿¤Ï¶Ø»ß (blocking) ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤ä¡¢ -¤½¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤¬¸ÉΩ (orphan) ¤·¤Æ¤¤¤ë¾ì¹ç¤Ëµ¯¤³¤ë¡£ -¤Þ¤¿¥Ç¥£¥¹¥¯¤ä¥Æ¡¼¥×¤òÆɤó¤Ç¤¤¤ë»þ¤ËÄã¥ì¥Ù¥ë I/O ¥¨¥é¡¼ -¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¤âµ¯¤³¤ë¡£ +が無視 (ignore) または禁止 (blocking) されている場合や、 +そのプロセス・グループが孤立 (orphan) している場合に起こる。 +またディスクやテープを読んでいる時に低レベル I/O エラー +が発生した場合にも起こる。 .TP .B EISDIR .I fd -¤¬¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤·¤Æ¤¤¤ë¡£ +がディレクトリを参照している。 .PP .I fd -¤¬Àܳ¤·¤Æ¤¤¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤è¤Ã¤Æ¤Ï¾¤Î¥¨¥é¡¼¤âµ¯¤³¤ê¤¨¤ë¡£ -POSIX ¤Ç¤Ï¡¢ -¤¤¤¯¤é¤«¤Î¥Ç¡¼¥¿¤òÆɤó¤À¸å¤Ë³ä¤ê¹þ¤ß¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢ +が接続しているオブジェクトによっては他のエラーも起こりえる。 +POSIX では、 +いくらかのデータを読んだ後に割り込みが起こった場合、 .BR read () -¤Ï +は .RI ( errno -¤Ë +に .B EINTR -¤òÀßÄꤷ¤Æ) \-1 ¤òÊÖ¤·¤Æ¤â¤è¤¤¤·¡¢ -´û¤ËÆɤ߹þ¤ó¤À¥Ð¥¤¥È¿ô¤òÊÖ¤·¤Æ¤â¤è¤¤¡£ -.SH ½àµò +を設定して) \-1 を返してもよいし、 +既に読み込んだバイト数を返してもよい。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -.SH Ãí°Õ -NFS ¤Ë¤ª¤¤¤Æ¡£¾¯Î̤Υǡ¼¥¿¤òÆɤ߹þ¤à¾ì¹ç¡¢ºÇ½é¤Î»þ¤Î¤ß¤Ë¥¿¥¤¥à -¥¹¥¿¥ó¥×¤¬¹¹¿·¤µ¤ì¡¢Â³¤¯¥³¡¼¥ë¤Ç¤Ï¹¹¿·¤µ¤ì¤Ê¤¤¤À¤í¤¦¡£ -¤³¤ì¤Ï¥¯¥é¥¤¥¢¥ó¥È¦¤Ç°À­¤Î¥­¥ã¥Ã¥·¥ó¥°¤ò¹Ô¤Ê¤¦¤¿¤á¤Ç¤¢¤ë¡£ -¤Ê¤¼¤Ê¤é¤Ð¡¢¤â¤·Á´¤Æ¤Î NFS ¥¯¥é¥¤¥¢¥ó¥È¤¬ st_atime (ºÇ½ª¥Õ¥¡¥¤¥ë¥¢¥¯¥»¥¹»þ¹ï) -¤Î¹¹¿·¤ò¥µ¡¼¥Ð¡¼¤ËÁ÷¤é¤º¡¢¥¯¥é¥¤¥¢¥ó¥È¦¤Ç¥­¥ã¥Ã¥·¥å¤òÆɤळ¤È¤ËËþ­¤·¤Æ -¤¤¤ì¤Ð¡¢¥µ¡¼¥Ð¡¼Â¦¤Ç¤Î read ¤ÏȯÀ¸¤·¤Ê¤¤¤Î¤Ç st_atime ¤Î¹¹¿·¤Ï¹Ô¤Ê¤ï¤ì¤«¤é¤À¡£ -UNIX ¤ÎÊý¼°¤Ç¤Ï¡¢¥¯¥é¥¤¥¢¥ó¥È¦¤Î°À­¤Î¥­¥ã¥Ã¥·¥ó¥°¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤Ç¡¢ -¤³¤ì¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤·¤«¤·¤Û¤È¤ó¤É¤Î¾õ¶·¤Ç¤Ï¤³¤ì¤Ï³¤¯¥µ¡¼¥Ð¡¼¤Î -Éé²Ù¤òÁý²Ã¤µ¤»¡¢¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤ÎÄã²¼¤ò¤â¤¿¤é¤¹¡£ +.SH 注意 +NFS において。少量のデータを読み込む場合、最初の時のみにタイム +スタンプが更新され、続くコールでは更新されないだろう。 +これはクライアント側で属性のキャッシングを行なうためである。 +なぜならば、もし全ての NFS クライアントが st_atime (最終ファイルアクセス時刻) +の更新をサーバーに送らず、クライアント側でキャッシュを読むことに満足して +いれば、サーバー側での read は発生しないので st_atime の更新は行なわれからだ。 +UNIX の方式では、クライアント側の属性のキャッシングを無効にすることで、 +これを得ることができる。しかしほとんどの状況ではこれは続くサーバーの +負荷を増加させ、パフォーマンスの低下をもたらす。 .PP -¿¤¯¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ä¥Ç¥£¥¹¥¯¤Ï +多くのファイルシステムやディスクは .B O_NONBLOCK -¤Î¼ÂÁõ¤Ï¤·¤Ê¤¯¤Æ¤âºÑ¤à¤¯¤é¤¤¤Ë½½Ê¬¤Ë¹â®¤Ç¤¢¤ë¤È¹Í¤¨¤é¤ì¤Æ¤¤¤ë¡£ -¤½¤ì¤Ç¤½¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥¹¥¯¤Ë¤Ï +の実装はしなくても済むくらいに十分に高速であると考えられている。 +それでそのようなファイルやディスクには .B O_NONBLOCK -¤ÏÍøÍѤǤ­¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +は利用できないかもしれない。 +.SH 関連項目 .BR close (2), .BR fcntl (2), .BR ioctl (2), diff --git a/release/man2/readahead.2 b/release/man2/readahead.2 index 9b779330..4680b471 100644 --- a/release/man2/readahead.2 +++ b/release/man2/readahead.2 @@ -29,69 +29,69 @@ .\" all rights reserved. .\" Translated 2005-02-26, Akihiro MOTOKI .\" -.\"WORD: page cache ¥Ú¡¼¥¸¡¦¥­¥ã¥Ã¥·¥å -.\"WORD: file descriptor ¥Õ¥¡¥¤¥ëµ­½Ò»Ò +.\"WORD: page cache ページ・キャッシュ +.\"WORD: file descriptor ファイル記述子 .\" .TH READAHEAD 2 2010-09-10 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -readahead \- Á°¤â¤Ã¤Æ¥Õ¥¡¥¤¥ë¤ò¥Ú¡¼¥¸¡¦¥­¥ã¥Ã¥·¥å¤ËÆɤ߹þ¤à -.SH ½ñ¼° +.SH 名前 +readahead \- 前もってファイルをページ・キャッシュに読み込む +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "ssize_t readahead(int " fd ", off64_t " offset ", size_t " count ); .fi -.SH ÀâÌÀ +.SH 説明 .BR readahead () -¤Ï¡¢¤³¤Î¸å¤ÎƱ¤¸¥Õ¥¡¥¤¥ë¤«¤é¤Î¥Ç¡¼¥¿Æɤ߹þ¤ß»þ¤Ë¥Ç¥£¥¹¥¯ I/O ¤Ç -Æ°ºî¤¬Ää»ß (block) ¤·¤Ê¤¤¤è¤¦¤Ë¡¢Á°¤â¤Ã¤Æ¥Õ¥¡¥¤¥ë¤ÎÆâÍƤò -¥Ú¡¼¥¸¡¦¥­¥ã¥Ã¥·¥å¤ËÆɤ߹þ¤à¡£ +は、この後の同じファイルからのデータ読み込み時にディスク I/O で +動作が停止 (block) しないように、前もってファイルの内容を +ページ・キャッシュに読み込む。 .I fd -°ú¤­¿ô¤ÏÆɤ߹þ¤ß¤ò¹Ô¤¦¥Õ¥¡¥¤¥ë¤ò¼±Ê̤¹¤ë¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +引き数は読み込みを行うファイルを識別するファイル・ディスクリプタである。 .I offset -°ú¤­¿ô¤Ï¥Ç¡¼¥¿¤ÎÆɤ߹þ¤ß³«»Ï°ÌÃÖ¤ò»ØÄꤷ¡¢ +引き数はデータの読み込み開始位置を指定し、 .I count -¤ÏÆɤ߹þ¤à¥Ç¡¼¥¿¤Î¥Ð¥¤¥È¿ô¤ò»ØÄꤹ¤ë¡£ -¥Ç¥£¥¹¥¯ I/O ¤Ï¥Ú¡¼¥¸Ã±°Ì¤Ç¼Â¹Ô¤µ¤ì¤ë¤Î¤Ç¡¢ -¼ÂºÝ¤Ë¤Ï +は読み込むデータのバイト数を指定する。 +ディスク I/O はページ単位で実行されるので、 +実際には .I offset -¤Ï¥Ú¡¼¥¸¶­³¦¤ËÀڤ겼¤²¤é¤ì¡¢Æɤ߹þ¤ß¥Ð¥¤¥È¿ô¤Ï +はページ境界に切り下げられ、読み込みバイト数は .I "(offset+count)" -¤è¤ê¾®¤µ¤¯¤Ê¤¤¼¡¤Î¥Ú¡¼¥¸¶­³¦¤Þ¤ÇÀÚ¤ê¾å¤²¤é¤ì¤ë¡£ +より小さくない次のページ境界まで切り上げられる。 .BR readahead () -¤Ï¥Õ¥¡¥¤¥ë¤ÎËöÈø¤ò±Û¤¨¤¿ÈϰϤޤÇÆɤ߽Ф·¤ò¹Ô¤¦¤³¤È¤Ï¤Ê¤¤¡£¤Þ¤¿¡¢ +はファイルの末尾を越えた範囲まで読み出しを行うことはない。また、 .BR readahead () -¤Ï»ØÄꤷ¤¿¥Ç¡¼¥¿¤ÎÆɤ߹þ¤ß¤¬½ª¤ï¤ë¤Þ¤ÇÄä»ß (block) ¤¹¤ë¡£ +は指定したデータの読み込みが終わるまで停止 (block) する。 .I fd -¤Ç»²¾È¤µ¤ì¤¿¥ª¡¼¥×¥óºÑ¤Î¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤Î¸½ºßÃÍ¤Ï -Êѹ¹¤µ¤ì¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +で参照されたオープン済のファイルのファイルオフセットの現在値は +変更されない。 +.SH 返り値 .BR readahead () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤òÊÖ¤·¡¢ +は成功すると 0 を返す。失敗した場合 \-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤Î¸¶°ø¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーの原因を示す値を設定する。 +.SH エラー .TP .B EBADF .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡¢¤Þ¤¿¤Ï -Æɤ߹þ¤ßÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +が有効なファイル・ディスクリプタでない、または +読み込み用にオープンされていない。 .TP .B EINVAL .I fd -¤¬»²¾È¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤¬¡¢ +が参照しているファイルが、 .BR readahead () -¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Ê¤¤¥¿¥¤¥×¤Î¥Õ¥¡¥¤¥ë¤Ç¤¢¤Ã¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +を行うことができないタイプのファイルであった。 +.SH バージョン .BR readahead () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 2.4.13 ¤ÇÅо줷¤¿¡£ -glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.3 °Ê¹ß¤Ç¹Ô¤ï¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò +システムコールは Linux 2.4.13 で登場した。 +glibc でのサポートは glibc バージョン 2.3 以降で行われている。 +.SH 準拠 .BR readahead () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò¹Íθ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï -»ÈÍѤòÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +システムコールは Linux 固有であり、移植を考慮したプログラムでは +使用を避けるべきである。 +.SH 関連項目 .BR lseek (2), .BR madvise (2), .BR mmap (2), diff --git a/release/man2/readdir.2 b/release/man2/readdir.2 index 90fed60d..154e9424 100644 --- a/release/man2/readdir.2 +++ b/release/man2/readdir.2 @@ -30,48 +30,48 @@ .\" Translated Sun Feb 23 21:06:24 JST 1997 .\" by HANATAKA Shinya .\" -.\"WORD: directory ¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: entry ¥¨¥ó¥È¥ê -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: system call ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë -.\"WORD: memory ¥á¥â¥ê -.\"WORD: inode number inode ÈÖ¹æ -.\"WORD: null ¥Ì¥ëʸ»ú +.\"WORD: directory ディレクトリ +.\"WORD: entry エントリ +.\"WORD: kernel カーネル +.\"WORD: system call システム・コール +.\"WORD: memory メモリ +.\"WORD: inode number inode 番号 +.\"WORD: null ヌル文字 .\" .TH READDIR 2 2008-10-02 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -readdir \- ¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤òÆɤ߹þ¤à -.SH ½ñ¼° +.SH 名前 +readdir \- ディレクトリ・エントリを読み込む +.SH 書式 .nf .sp .BI "int readdir(unsigned int " fd ", struct old_linux_dirent *" dirp "," .BI " unsigned int " count ); .fi -.SH ÀâÌÀ -¤³¤ì¤Ï¤¢¤Ê¤¿¤Î¶½Ì£¤ò¤â¤Ã¤Æ¤¤¤ë´Ø¿ô¤Ç¤Ï¤Ê¤¤¡£ -POSIX ½àµò¤Î C ¥é¥¤¥Ö¥é¥ê¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æ¤Ï +.SH 説明 +これはあなたの興味をもっている関数ではない。 +POSIX 準拠の C ライブラリ・インターフェースについては .BR readdir (3) -¤ò¸«¤ë¤³¤È¡£ -¤³¤Î¥Ú¡¼¥¸¤ÏÍç¤Î¥«¡¼¥Í¥ë¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æ -µ­½Ò¤·¤Æ¤¤¤ë¤¬¡¢¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï +を見ること。 +このページは裸のカーネルのシステムコール・インターフェースについて +記述しているが、このインターフェースは .BR getdents (2) -¤Ë¤è¤Ã¤Æ¼è¤Ã¤ÆÂå¤ï¤é¤ì¤¿¡£ +によって取って代わられた。 .PP .BR readdir () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +は、ファイルディスクリプタ .I fd -¤¬»²¾È¤·¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é +が参照しているディレクトリから .I old_linux_dirent -¹½Â¤ÂΤòÆɤ߹þ¤ß¡¢ +構造体を読み込み、 .I dirp -¤Ç»Ø¤µ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤¹¤ë¡£ +で指されたバッファに格納する。 .I count -°ú¤­¿ô¤Ï(¤Û¤È¤ó¤É¤Î +引き数は(ほとんどの .I old_linux_dirent -¹½Â¤ÂΤÎÆɤ߹þ¤ß¤Ë¤ª¤¤¤Æ)̵»ë¤µ¤ì¤ë +構造体の読み込みにおいて)無視される .PP .I old_linux_dirent -¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤ë: +構造体は以下のように宣言される: .PP .in +4n .nf @@ -85,50 +85,50 @@ struct old_linux_dirent { .in .PP .I d_ino -¤Ï inode ÈÖ¹æ¤Ç¤¢¤ë¡£ +は inode 番号である。 .I d_off -¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤ÎºÇ½é¤«¤é¤³¤Î +はディレクトリの最初からこの .I old_linux_dirent -¤Þ¤Çµ÷Î¥¤Ç¤¢¤ë¡£ +まで距離である。 .I d_reclen -¤Ï +は .I d_name -¤ÎÂ礭¤µ¤Ç¡¢½ªÃ¼¤Î¥Ì¥ë¥Ð¥¤¥È (null byte) ¤ò´Þ¤Þ¤Ê¤¤¡£ +の大きさで、終端のヌルバイト (null byte) を含まない。 .I d_name -¤Ï¥Ì¥ë¥Ð¥¤¥È¤Ç½ª¤ï¤ë¥Õ¥¡¥¤¥ë̾¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï¡¢1 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥Ç¥£¥ì¥¯¥È¥ê¤ÎºÇ¸å¤Ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +はヌルバイトで終わるファイル名である。 +.SH 返り値 +成功した場合は、1 が返される。 +ディレクトリの最後では 0 が返される。 +エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EBADF -¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ +ファイル・ディスクリプター .I fd -¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +が不正である。 .TP .B EFAULT -°ú¤­¿ô¤Î¥Ý¥¤¥ó¥¿¡¼¤¬¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¶õ´Ö¤Î -³°Éô¤ò»Ø¤·¤Æ¤¤¤ë¡£ +引き数のポインターが呼び出したプロセスがアクセス可能な空間の +外部を指している。 .TP .B EINVAL -·ë²ÌÍѤΥХåե¡¡¼¤¬¾®¤µ²á¤®¤ë¡£ +結果用のバッファーが小さ過ぎる。 .TP .B ENOENT -¤½¤Î¤è¤¦¤Ê¥Ç¥£¥ì¥¯¥È¥ê¤Ï¸ºß¤·¤Ê¤¤¡£ +そのようなディレクトリは存在しない。 .TP .B ENOTDIR -¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤¬¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£ -.SH ½àµò -¤³¤Î¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï Linux ÆÃÍ­¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +ファイル・ディスクリプターがディレクトリを参照していない。 +.SH 準拠 +このシステム・コールは Linux 特有である。 +.SH 注意 +glibc はこのシステムコールに対するラッパー関数を提供していない。 .BR syscall (2) -¤ò»È¤Ã¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¡£ +を使って呼び出すこと。 .I old_linux_dirent -¹½Â¤ÂΤò¼«Ê¬¼«¿È¤ÇÄêµÁ¤¹¤ëɬÍפ¬¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +構造体を自分自身で定義する必要がある。 +.SH 関連項目 .BR getdents (2), .BR readdir (3) diff --git a/release/man2/readlink.2 b/release/man2/readlink.2 index ff021d24..95c07c7c 100644 --- a/release/man2/readlink.2 +++ b/release/man2/readlink.2 @@ -42,24 +42,24 @@ .\" Updated 2006-07-19, Akihiro MOTOKI , LDP v2.36 .\" Updated 2008-08-06, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: symbolic link ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: buffer ¥Ð¥Ã¥Õ¥¡¡¼ -.\"WORD: NUL ¥Ì¥ëʸ»ú -.\"WORD: global variable ¥°¥í¡¼¥Ð¥ëÊÑ¿ô -.\"WORD: directory ¥Ç¥£¥ì¥¯¥È¥ê +.\"WORD: symbolic link シンボリック・リンク +.\"WORD: buffer バッファー +.\"WORD: NUL ヌル文字 +.\"WORD: global variable グローバル変数 +.\"WORD: directory ディレクトリ .\" .TH READLINK 2 2010-09-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -readlink \- ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤ÎÃͤòÆɤà -.SH ½ñ¼° +.SH 名前 +readlink \- シンボリック・リンクの値を読む +.SH 書式 .B #include .sp .BI "ssize_t readlink(const char *" path ", char *" buf ", size_t " bufsiz ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -69,47 +69,47 @@ _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED || _POSIX_C_SOURCE\ >=\ 200112L .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR readlink () -¤Ï +は .I path -¤ÇÍ¿¤¨¤é¤ì¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤ÎÆâÍƤò +で与えられたシンボリック・リンクの内容を .I buf -¥Ð¥Ã¥Õ¥¡¡¼¤Ø³ÊǼ¤¹¤ë¡¢ +バッファーへ格納する、 .I buf -¤Î¥µ¥¤¥º¤Ï +のサイズは .I bufsiz -¤Ç¤¢¤ë¡£ +である。 .BR readlink () -¤Ï NULL ¥Ð¥¤¥È¤ò +は NULL バイトを .I buf -¤ËÄɲ䷤ʤ¤¡£ -¤½¤ÎÆâÍÆÁ´¤Æ¤ò³ÊǼ¤¹¤ë¤Î¤Ë¥Ð¥Ã¥Õ¥¡¡¼¤¬¾®¤µ²á¤®¤ë¾ì¹ç¤Ï¡¢ +に追加しない。 +その内容全てを格納するのにバッファーが小さ過ぎる場合は、 .RI ( bufsiz -¥Ð¥¤¥È¤ÎŤµ¤Ë) ÆâÍƤòÀÚ¤êµÍ¤á¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +バイトの長さに) 内容を切り詰める。 +.SH 返り値 +成功すると、 .BR readlink () -¤Ï +は .I buf -¤Ë³ÊǼ¤µ¤ì¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +に格納されたバイト数を返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値を設定する。 +.SH エラー .TP .B EACCES -¥Ñ¥¹¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤Ë¸¡º÷µö²Ä¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤ +パスのディレクトリ部分に検索許可が与えられていない .RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È)¡£ +も参照すること)。 .TP .B EFAULT .I buf -¤¬¥×¥í¥»¥¹¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がプロセスに割り当てられたアドレス空間の外を指している。 .TP .B EINVAL .I bufsiz -¤¬Àµ¤Ç¤Ê¤¤¡£ +が正でない。 .\" At the glibc level, bufsiz is unsigned, so this error can only occur .\" if bufsiz==0. However, the in the kernel syscall, bufsiz is signed, .\" and this error can also occur if bufsiz < 0. @@ -117,40 +117,40 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED || _POSIX_C_SOURCE\ >=\ 200112L .\" Subject: [patch 0/3] [RFC] kernel/glibc mismatch of "readlink" syscall? .TP .B EINVAL -»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ç¤Ê¤¤¡£ +指定したファイルがシンボリック・リンクでない。 .TP .B EIO -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ÎÆɤ߹þ¤ßÃæ¤Ë I/O ¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£ +ファイル・システムの読み込み中に I/O エラーが起こった。 .TP .B ELOOP -¥Ñ¥¹Ì¾¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿¤¹¤®¤ë¡£ +パス名にシンボリック・リンクが多すぎる。 .TP .B ENAMETOOLONG -¥Ñ¥¹Ì¾¤«¥Ñ¥¹Ì¾¤Î°ìÉôʬ¤¬Ä¹²á¤®¤ë¡£ +パス名かパス名の一部分が長過ぎる。 .TP .B ENOENT -¤½¤Î̾Á°¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ +その名前のファイルが存在しない。 .TP .B ENOMEM -¥«¡¼¥Í¥ë¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +カーネルに十分なメモリがない。 .TP .B ENOTDIR -¥Ñ¥¹¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ -.SH ½àµò +パスのディレクトリ部分がディレクトリでない。 +.SH 準拠 4.4BSD .RB ( readlink () -¤Ï 4.2BSD ¤Ç½é¤á¤ÆÅо줷¤¿), POSIX.1-2001. -.SH Ãí°Õ -¥Ð¡¼¥¸¥ç¥ó 2.4 °ÊÁ°¤Î glibc (¥Ð¡¼¥¸¥ç¥ó 2.4 ¤ò´Þ¤à) ¤Ç¤Ï¡¢ +は 4.2BSD で初めて登場した), POSIX.1-2001. +.SH 注意 +バージョン 2.4 以前の glibc (バージョン 2.4 を含む) では、 .BR readlink () -¤ÎÊÖ¤êÃͤη¿¤Ï +の返り値の型は .I int -¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤¿¡£¸½ºß¤Ç¤Ï¡¢ÊÖ¤êÃͤη¿¤Ï +で宣言されていた。現在では、返り値の型は .I ssize_t -¤Ç¤¢¤ë (ÊÖ¤êÃÍ +である (返り値 .I ssize_t -¤Ï POSIX.1-2001 ¤Ç (¿·¤¿¤Ë) ɬ¿Ü¤È¤Ê¤Ã¤¿)¡£ -.SH ´ØÏ¢¹àÌÜ +は POSIX.1-2001 で (新たに) 必須となった)。 +.SH 関連項目 .BR lstat (2), .BR readlinkat (2), .BR stat (2), diff --git a/release/man2/readlinkat.2 b/release/man2/readlinkat.2 index 59011568..429080ac 100644 --- a/release/man2/readlinkat.2 +++ b/release/man2/readlinkat.2 @@ -27,12 +27,12 @@ .\" Translated 2006-09-27 by Yuichi SATO , LDP v2.39 .\" .TH READLINKAT 2 2009-12-13 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -readlinkat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÁêÂÐŪ¤Ê°ÌÃ֤ˤ¢¤ë -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ÎÃͤòÆɤà -.SH ½ñ¼° +.SH 名前 +readlinkat \- ディレクトリファイルディスクリプタから相対的な位置にある +シンボリックリンクの値を読む +.SH 書式 .nf -.B #include /* AT_* Äê¿ô¤ÎÄêµÁ */ +.B #include /* AT_* 定数の定義 */ .B #include .sp .BI "int readlinkat(int " dirfd ", const char *" pathname , @@ -40,9 +40,9 @@ readlinkat \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR readlinkat (): @@ -50,82 +50,82 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR readlinkat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë°ã¤¤¤¬¤¢¤ë°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明している違いがある以外は、 .BR readlink (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .I pathname -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パスである場合、 +ファイルディスクリプタ .I dirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( readlink (2) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスの +カレントワーキングディレクトリからの相対パスとなる)。 .I pathname -¤¬ÁêÂХѥ¹¤Ç¤¢¤ê¡¢¤«¤Ä +が相対パスであり、かつ .I dirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I pathname -¤Ï +は .RB ( readlink (2) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .I pathname -¤¬ÀäÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ +が絶対パスである場合、 .I dirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +は無視される。 +.SH 返り値 +成功した場合、 .BR readlinkat () -¤Ï +は .I buf -¤Ë³ÊǼ¤µ¤ì¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +に格納されたバイト数を返す。 +エラーの場合、\-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +にはエラーを示す値が設定される。 +.SH エラー .BR readlink (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR readlinkat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .BR readlinkat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .I dirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B ENOTDIR .I pathname -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I dirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 +.SH バージョン .BR readlinkat () -¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ -.SH ½àµò +は Linux カーネル 2.6.16 で追加された。 +.SH 準拠 POSIX.1-2008. -.SH Ãí°Õ +.SH 注意 .BR readlinkat () -¤¬É¬ÍפÊÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が必要な理由については、 .BR openat (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を参照すること。 +.SH 関連項目 .BR openat (2), .BR readlink (2), .BR path_resolution (7) diff --git a/release/man2/readv.2 b/release/man2/readv.2 index 9bc13fc4..89f16831 100644 --- a/release/man2/readv.2 +++ b/release/man2/readv.2 @@ -40,14 +40,14 @@ .\" Updated 2005-10-07, Akihiro MOTOKI .\" Updated 2007-06-01, Akihiro MOTOKI, LDP v2.50 .\" -.\"WORD: vector ¥Ù¥¯¥¿ (vector) -.\"WORD: file descriptor ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: buffer ¥Ð¥Ã¥Õ¥¡ +.\"WORD: vector ベクタ (vector) +.\"WORD: file descriptor ファイルディスクリプタ +.\"WORD: buffer バッファ .\" .TH READV 2 2002-10-17 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -readv, writev \- Ê£¿ô¤Î¥Ð¥Ã¥Õ¥¡¤Ø¤ÎÆɤ߽ñ¤­¤ò¹Ô¤Ê¤¦ -.SH ½ñ¼° +.SH 名前 +readv, writev \- 複数のバッファへの読み書きを行なう +.SH 書式 .nf .B #include .sp @@ -55,37 +55,37 @@ readv, writev \- Ê£ .sp .BI "ssize_t writev(int " fd ", const struct iovec *" iov ", int " iovcnt ); .fi -.SH ÀâÌÀ +.SH 説明 .BR readv () -´Ø¿ô¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +関数は、ファイルディスクリプタ .I fd -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¤«¤é¡¢ +に関連付けられたファイルから、 .I iovcnt -¸Ä¤Î¥Ð¥Ã¥Õ¥¡Ê¬¤Î¥Ç¡¼¥¿¤òÆɤ߹þ¤ß¡¢ +個のバッファ分のデータを読み込み、 .I iov -¤Ç»ØÄꤵ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤¹¤ë -("scatter input";¡Ö¤Ð¤é¤Þ¤­ÆþÎÏ¡×)¡£ +で指定されたバッファに格納する +("scatter input";「ばらまき入力」)。 .PP .BR writev () -´Ø¿ô¤Ï¡¢ +関数は、 .I iov -¤Ç»ØÄꤵ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤«¤éºÇÂç +で指定されたバッファから最大 .I iovcnt -¸Ä¤Î¥Ð¥Ã¥Õ¥¡Ê¬¤Î¥Ç¡¼¥¿¤ò¼è¤ê½Ð¤·¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +個のバッファ分のデータを取り出し、 +ファイルディスクリプタ .I fd -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤à -("gather output";¡Ö¤«¤­½¸¤á½ÐÎÏ¡×)¡£ +に関連付けられたファイルに書き込む +("gather output";「かき集め出力」)。 .PP -¥Ý¥¤¥ó¥¿ +ポインタ .I iov -¤Ï +は .I iovec -¹½Â¤ÂΤÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +構造体の配列へのポインタである。 .I iovec -¹½Â¤ÂÎ¤Ï +構造体は .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +で以下のように定義されている: .PP .br .in +4n @@ -98,124 +98,124 @@ struct iovec { .in .PP .BR readv () -´Ø¿ô¤Ï¡¢Ê£¿ô¤Î¥Ð¥Ã¥Õ¥¡¤Ë¥Ç¡¼¥¿¤òÆɤ߹þ¤àÅÀ¤ò½ü¤¤¤Æ +関数は、複数のバッファにデータを読み込む点を除いて .BR read (2) -¤ÈÁ´¤¯Æ±ÍͤÎÆ°ºî¤ò¹Ô¤¦¡£ +と全く同様の動作を行う。 .PP .BR writev () -´Ø¿ô¤Ï¡¢Ê£¿ô¤Î¥Ð¥Ã¥Õ¥¡¤Î¥Ç¡¼¥¿¤ò½ñ¤­½Ð¤¹ÅÀ°Ê³°¤Ï +関数は、複数のバッファのデータを書き出す点以外は .BR write (2) -¤ÈÁ´¤¯Æ±ÍͤÎÆ°ºî¤ò¹Ô¤¦¡£ +と全く同様の動作を行う。 .PP -¥Ð¥Ã¥Õ¥¡¤ÏÇÛÎó¤Î½ç½ø¤Ç½èÍý¤µ¤ì¤ë¡£¤³¤ì¤Ï¡¢ +バッファは配列の順序で処理される。これは、 .BR readv () -¤¬ +が .IR iov [0] -¤¬´°Á´¤Ë°ìÇդˤʤë¤Þ¤Ç¥Ç¡¼¥¿¤òµÍ¤á¤Æ¤«¤é¡¢ +が完全に一杯になるまでデータを詰めてから、 .IR iov [1] -¤Ê¤É¤Ë¿Ê¤à¤³¤È¤ò°ÕÌ£¤¹¤ë -(¥Ç¡¼¥¿¤¬½½Ê¬¤Ê¤¤¾ì¹ç¤Ï¡¢ +などに進むことを意味する +(データが十分ない場合は、 .I iov -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Î¤¤¤º¤ì¤â°ìÇդˤʤé¤Ê¤¤)¡£ -ƱÍͤˡ¢ +が指すバッファのいずれも一杯にならない)。 +同様に、 .BR writev () -¤Ï +は .IR iov [0] -¤ÎÆâÍƤòÁ´Éô½ñ¤­½Ð¤·¤Æ¤«¤é +の内容を全部書き出してから .IR iov [1] -¤Ê¤É¤Ë¿Ê¤à¡£ +などに進む。 .PP .BR readv () -¤È +と .BR writev () -¤Ë¤è¤ë¥Ç¡¼¥¿Å¾Á÷¤Ï atomic ¤Ë¹Ô¤ï¤ì¤ë¡£¤Ä¤Þ¤ê¡¢ +によるデータ転送は atomic に行われる。つまり、 .BR writev () -¤Ë¤è¤ë¥Ç¡¼¥¿½ñ¤­¹þ¤ß¤Ï°ì¤Ä¤Î¥Ö¥í¥Ã¥¯¤È¤·¤Æ¹Ô¤ï¤ì¡¢Â¾¤Î¥×¥í¥»¥¹¤Î -write ¤Ë¤è¤ë½ñ¤­¹þ¤ß¤Èº®¤¶¤ê¹ç¤¦¤³¤È¤Ï¤Ê¤¤ -(Îã³°¤Ë´Ø¤·¤Æ¤Ï +によるデータ書き込みは一つのブロックとして行われ、他のプロセスの +write による書き込みと混ざり合うことはない +(例外に関しては .BR pipe (7) -¤ò»²¾È¤Î¤³¤È)¡£Æ±Íͤˡ¢ +を参照のこと)。同様に、 .BR readv () -¤Ï¥Õ¥¡¥¤¥ë¤«¤éϢ³¤¹¤ë¥Ç¡¼¥¿¥Ö¥í¥Ã¥¯¤¬Æɤ߽Ф¹¤³¤È¤¬Êݾڤµ¤ì¡¢ -Ʊ¤¸¥Õ¥¡¥¤¥ëµ­½Ò (file description; +はファイルから連続するデータブロックが読み出すことが保証され、 +同じファイル記述 (file description; .BR open (2) -»²¾È) ¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò»ý¤Ä¾¤Î¥¹¥ì¥Ã¥É¤ä¥×¥í¥»¥¹¤¬ -¼Â¹Ô¤·¤¿ read Áàºî¤Î±Æ¶Á¤ò¼õ¤±¤ë¤³¤È¤Ï¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +参照) を参照するファイルディスクリプタを持つ他のスレッドやプロセスが +実行した read 操作の影響を受けることはない。 +.SH 返り値 +成功した場合、 .BR readv () -´Ø¿ô¤ÏÆɤ߹þ¤ó¤À¥Ð¥¤¥È¿ô¤òÊÖ¤·¡¢ +関数は読み込んだバイト数を返し、 .BR writev () -´Ø¿ô¤Ï½ñ¤­¹þ¤ó¤À¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤·¡¢\fIerrno\fP ¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +関数は書き込んだバイト数を返す。 +エラーの場合 \-1 を返し、\fIerrno\fP を適切に設定する。 +.SH エラー .BR read (2) -¤ä +や .BR write (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤µ¤é¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +と同じエラーが定義されている。 +さらに以下のエラーが定義されている: .TP .B EINVAL .I iov_len -¤Î¹ç·×¤¬ +の合計が .I ssize_t -¤ÎÈϰϤò¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤¿¡£¤â¤·¤¯¤Ï¡¢ -¥Ù¥¯¥¿¿ô \fIiovcnt\fP ¤¬ 0 ¤è¤ê¾®¤µ¤¤¤«µö²Ä¤µ¤ì¤¿ºÇÂçÃͤè¤ê¤âÂ礭¤«¤Ã¤¿¡£ -.SH ½àµò +の範囲をオーバーフローした。もしくは、 +ベクタ数 \fIiovcnt\fP が 0 より小さいか許可された最大値よりも大きかった。 +.SH 準拠 4.4BSD .RB ( readv () -¤È +と .BR writev () -´Ø¿ô¤Ï 4.2BSD ¤ÇºÇ½é¤Ë¸½¤ï¤ì¤¿)¡¢POSIX.1-2001¡£ -Linux libc5 ¤Ç¤Ï \fIiovcnt\fP °ú¤­¿ô¤Î·¿¤È¤·¤Æ \fIsize_t\fP ¤ò¡¢ -¤³¤ì¤é¤Î´Ø¿ô¤ÎÊÖ¤êÃͤȤ·¤Æ \fIint\fP ¤ò»ÈÍѤ·¤Æ¤¤¤¿¡£ -.\" readv/writev ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 1.3.40 °ÊÁ°¤Ï¥Ð¥°¤À¤é¤±¤Ç¤¢¤Ã¤¿ -.\" (¤È release.libc ¤Ë½ñ¤«¤ì¤Æ¤¤¤ë)¡£ -.SH Ãí°Õ -.SS "Linux ¤Ç¤ÎÃí°Õ" -POSIX.1-2001 ¤Ç¤Ï¡¢ +関数は 4.2BSD で最初に現われた)、POSIX.1-2001。 +Linux libc5 では \fIiovcnt\fP 引き数の型として \fIsize_t\fP を、 +これらの関数の返り値として \fIint\fP を使用していた。 +.\" readv/writev システムコールは Linux 1.3.40 以前はバグだらけであった +.\" (と release.libc に書かれている)。 +.SH 注意 +.SS "Linux での注意" +POSIX.1-2001 では、 .I iov -¤ÇÅϤ¹¤³¤È¤¬¤Ç¤­¤ëÍ×ÁÇ¿ô¤Ë¾å¸Â¤òÀߤ±¤ë¼ÂÁõ¤¬Ç§¤á¤é¤ì¤Æ¤¤¤ë¡£ -¼ÂÁõ¤Ï¡¢ +で渡すことができる要素数に上限を設ける実装が認められている。 +実装は、 .I -¤Î +の .B IOV_MAX -¤òÄêµÁ¤¹¤ë¤³¤È¤ä¡¢¼Â¹Ô»þ¤Ë +を定義することや、実行時に .I sysconf(_SC_IOV_MAX) -¤ÎÊÖ¤êÃÍ·Ðͳ¤Ç¡¢¤³¤Î¾å¸Â¤ò¹­¹ð¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -Linux ¤Ç¤Ï¡¢¤³¤Î»ÅÁȤߤˤè¤ê¹­¹ð¤µ¤ì¤ë¾å¸Â¤Ï 1024 ¤Ç¤¢¤ê¡¢ -¤³¤ÎÃͤϥ«¡¼¥Í¥ë¤Ç¤Î¾å¸Â¤½¤Î¤â¤Î¤Ç¤¢¤ë¡£ -°ìÊý¤Ç¡¢glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢¤½¤Î´Ø¿ô¤ÎÆâÉô¤Ç¸Æ¤Ð¤ì¤ë¥«¡¼¥Í¥ë¡¦ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤³¤Î¾å¸Â¤òĶ²á¤·¤Æ¼ºÇÔ¤·¤¿¤³¤È¤ò¸¡½Ð¤¹¤ë¤È¡¢ -ÄɲäÎÆ°ºî¤ò¤¹¤ë¡£ +の返り値経由で、この上限を広告することができる。 +Linux では、この仕組みにより広告される上限は 1024 であり、 +この値はカーネルでの上限そのものである。 +一方で、glibc のラッパー関数は、その関数の内部で呼ばれるカーネル・ +システムコールがこの上限を超過して失敗したことを検出すると、 +追加の動作をする。 .BR readv () -¤Î¾ì¹ç¡¢¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï +の場合、ラッパー関数は .I iov -¤Ç»ØÄꤵ¤ì¤¿Á´¤Æ¤ÎÍ×ÁǤò³ÊǼ¤Ç¤­¤ëÂ礭¤µ¤Î°ì»þ¥Ð¥Ã¥Õ¥¡¤ò³ä¤êÅö¤Æ¡¢ +で指定された全ての要素を格納できる大きさの一時バッファを割り当て、 .BR read (2) -¤ò¸Æ¤Ó½Ð¤¹ºÝ¤Ë¤½¤Î¥Ð¥Ã¥Õ¥¡¤òÅϤ·¡¢ -¤½¤Î¥Ð¥Ã¥Õ¥¡¤Î¥Ç¡¼¥¿¤ò +を呼び出す際にそのバッファを渡し、 +そのバッファのデータを .I iov -¤Î³ÆÍ×ÁǤΠ+の各要素の .I iov_base -¥Õ¥£¡¼¥ë¥É¤¬»ØÄꤹ¤ë¾ì½ê¤Ë¥³¥Ô¡¼¤·¤Æ¤«¤é¡¢ -¤½¤Î¥Ð¥Ã¥Õ¥¡¤ò²òÊü¤¹¤ë¡£ +フィールドが指定する場所にコピーしてから、 +そのバッファを解放する。 .BR writev () -¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤â¡¢Æ±¤¸¤è¤¦¤Ë°ì»þ¥Ð¥Ã¥Õ¥¡¤ò»È¤Ã¤Æ +のラッパー関数も、同じように一時バッファを使って .BR write (2) -¤ò¸Æ¤Ó½Ð¤¹¡£ -.SH ¥Ð¥° +を呼び出す。 +.SH バグ .BR readv () -¤ä +や .BR writev () -¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ¹¤ëÁàºî¤ò¹Ô¤¦´Ø¿ô¤È¡¢ -ɸ½àÆþ½ÐÎϥ饤¥Ö¥é¥ê¤Î´Ø¿ô¤ò¤´¤Á¤ã¤Þ¤¼¤Ë¤·¤Æ¸Æ¤Ö¤Î¤Ï¤ªÁ¦¤á¤·¤Ê¤¤¡£ -¤É¤ó¤Ê·ë²Ì¤Ë¤Ê¤ë¤«¤ÏÄêµÁ¤µ¤ì¤Æ¤ª¤é¤º¡¢ -¤ª¤½¤é¤¯Íߤ·¤¤·ë²Ì¤ÏÆÀ¤é¤ì¤Ê¤¤¤À¤í¤¦¡£ -.SH Îã -°Ê²¼¤Î¥µ¥ó¥×¥ë¥³¡¼¥É¤Ï +のようなファイルディスクリプタに対する操作を行う関数と、 +標準入出力ライブラリの関数をごちゃまぜにして呼ぶのはお薦めしない。 +どんな結果になるかは定義されておらず、 +おそらく欲しい結果は得られないだろう。 +.SH 例 +以下のサンプルコードは .BR writev () -¤Î»ÈÍÑÊýË¡¤ò¼¨¤¹¤â¤Î¤Ç¤¢¤ë¡£ +の使用方法を示すものである。 .in +4n .nf @@ -232,6 +232,6 @@ iov[1].iov_len = strlen(str1); nwritten = writev(STDOUT_FILENO, iov, 2); .fi .in -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR read (2), .BR write (2) diff --git a/release/man2/reboot.2 b/release/man2/reboot.2 index f7640174..11ee01bc 100644 --- a/release/man2/reboot.2 +++ b/release/man2/reboot.2 @@ -30,18 +30,18 @@ .\" by NAKANO Takeo .\" Updated Sat Oct 11 JST 2003 by Kentaro Shirakata .\" -.\"WORD halt Ää»ß -.\"WORD stop Ää»ß -.\"WORD reboot ºÆµ¯Æ° +.\"WORD halt 停止 +.\"WORD stop 停止 +.\"WORD reboot 再起動 .\" .TH REBOOT 2 2008-02-11 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -reboot \- ºÆµ¯Æ°¤¹¤ë¡£¤Þ¤¿¤Ï Ctrl-Alt-Del¤òÍ­¸ú¡¦Ìµ¸ú¤Ë¤¹¤ë -.SH ½ñ¼° -/* libc4 ¤È libc5 ¤Ç¤Î¥é¥¤¥Ö¥é¥ê¥³¡¼¥ë¤È¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏƱ¤¸¤Ç¤¢¤ë¡£ - ¤Þ¤¿¥«¡¼¥Í¥ë 2.1.30 °Ê¹ß¤Ç¤Ï¡¢Äê¿ô¤È¤·¤Æ¥·¥ó¥Ü¥ê¥Ã¥¯¤Ê̾Á° - LINUX_REBOOT_* ¤¬ÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢¸Æ¤Ó½Ð¤·¤ÎÂè 4 °ú¿ô¤È¤·¤Æ - »ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£*/ +.SH 名前 +reboot \- 再起動する。または Ctrl-Alt-Delを有効・無効にする +.SH 書式 +/* libc4 と libc5 でのライブラリコールとシステムコールは同じである。 + またカーネル 2.1.30 以降では、定数としてシンボリックな名前 + LINUX_REBOOT_* が定義されており、呼び出しの第 4 引数として + 指定することができる。*/ .sp .B #include .br @@ -49,140 +49,140 @@ reboot \- .sp .BI "int reboot(int " magic ", int " magic2 ", int " cmd ", void *" arg ); .sp -/* glibc ¤Ç¤Ï¡¢´ØÏ¢¤¹¤ëÄê¿ô¤Ë RB_* ¤È¤¤¤¦¥·¥ó¥Ü¥ê¥Ã¥¯¤Ê̾Á°¤¬ÉÕ¤± - ¤é¤ì¤Æ¤¤¤ë¡£¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Î°ú¿ô¤Ï 1 ¤Ä¤Ç¡¢3 °ú¿ô¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î - ¥é¥Ã¥Ñ (wrapper) ¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ */ +/* glibc では、関連する定数に RB_* というシンボリックな名前が付け + られている。ライブラリ関数の引数は 1 つで、3 引数のシステムコールの + ラッパ (wrapper) となっている。 */ .sp .B #include .br .B #include .sp .BI "int reboot(int " cmd ); -.SH ÀâÌÀ +.SH 説明 .BR reboot () -¤Ï¥·¥¹¥Æ¥à¤òºÆµ¯Æ°¤¹¤ë¡£¤Þ¤¿¤ÏºÆµ¯Æ°¤Î¥­¡¼¥¹¥È¥í¡¼¥¯¤Ç¤¢¤ë -Ctrl-Alt-Delete (CAD) ¤òÍ­¸ú/̵¸ú¤Ë¤¹¤ë¡£ -¤³¤Î¥­¡¼¥¹¥È¥í¡¼¥¯¤Ï +はシステムを再起動する。または再起動のキーストロークである +Ctrl-Alt-Delete (CAD) を有効/無効にする。 +このキーストロークは .BR loadkeys (1) -¤Ë¤è¤Ã¤ÆÊѹ¹¤Ç¤­¤ë¡£ +によって変更できる。 .PP .I magic -¤¬ +が .B LINUX_REBOOT_MAGIC1 -(ÃÍ¤Ï 0xfee1dead) ¤Ç¤¢¤ê¡¢¤«¤Ä +(値は 0xfee1dead) であり、かつ .I magic2 -¤¬ +が .B LINUX_REBOOT_MAGIC2 -(672274793) ¤Ç¤Ê¤±¤ì¤Ð¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¼ºÇÔ¤·¡¢ +(672274793) でなければこのシステムコールは失敗し、 .B EINVAL -¤¬ÊÖ¤µ¤ì¤ë¡£ -¤·¤«¤· 2.1.17 ¤«¤é¤Ï +が返される。 +しかし 2.1.17 からは .B LINUX_REBOOT_MAGIC2A -(85072278) ¤¬¡¢ -¤Þ¤¿ 2.1.97 ¤«¤é¤Ï +(85072278) が、 +また 2.1.97 からは .B LINUX_REBOOT_MAGIC2B -(369367448) ¤¬¡¢ -2.5.71 ¤«¤é¤Ï +(369367448) が、 +2.5.71 からは .B LINUX_REBOOT_MAGIC2C -(537993216) ¤¬ +(537993216) が .I magic2 -¤ÎÃͤȤ·¤Æ»ØÄê¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿ (¤³¤ì¤é¤ÎÄê¿ô¤Î 16 ¿Ê¤Ç¤Î -ɽµ­¤Ë¤Ï¤Á¤ç¤Ã¤È¤·¤¿°ÕÌ£¤¬¤¢¤ë)¡£ +の値として指定できるようになった (これらの定数の 16 進での +表記にはちょっとした意味がある)。 .I cmd -°ú¿ô¤Ë¤Ï°Ê²¼¤ÎÃͤò»ØÄê¤Ç¤­¤ë¡£ +引数には以下の値を指定できる。 .TP .B LINUX_REBOOT_CMD_RESTART (RB_AUTOBOOT, 0x1234567) -"Restarting system." ¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¡¢ -¥Ç¥Õ¥©¥ë¥È¤ÎºÆµ¯Æ°½èÍý¤¬¤¿¤À¤Á¤Ë¼Â¹Ô¤µ¤ì¤ë¡£ -Àè¤Ë +"Restarting system." というメッセージが表示され、 +デフォルトの再起動処理がただちに実行される。 +先に .BR sync (2) -¤ò¹Ô¤Ê¤ï¤Ê¤¤¤È¡¢¥Ç¡¼¥¿¤¬¼º¤ï¤ì¤ë¡£ +を行なわないと、データが失われる。 .TP .B LINUX_REBOOT_CMD_HALT -(RB_HALT_SYSTEM, 0xcdef0123; 1.1.76 °Ê¹ß) -"System halted." ¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¡¢¥·¥¹¥Æ¥à¤ÏÄä»ß (halt) ¤¹¤ë¡£ -À©¸æ¤Ï ROM ¥â¥Ë¥¿¤Ë°Ü¤ë (ROM ¥â¥Ë¥¿¤¬¤¢¤ë¾ì¹ç)¡£ -Àè¤Ë +(RB_HALT_SYSTEM, 0xcdef0123; 1.1.76 以降) +"System halted." というメッセージが表示され、システムは停止 (halt) する。 +制御は ROM モニタに移る (ROM モニタがある場合)。 +先に .BR sync (2) -¤ò¹Ô¤Ê¤ï¤Ê¤¤¤È¡¢¥Ç¡¼¥¿¤¬¼º¤ï¤ì¤ë¡£ +を行なわないと、データが失われる。 .TP .B LINUX_REBOOT_CMD_POWER_OFF -(0x4321fedc; 2.1.30 °Ê¹ß) -"Power down" ¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¡¢¥·¥¹¥Æ¥à¤ÏÄä»ß (stop) ¤¹¤ë¡£ -²Äǽ¤Ê¾ì¹ç¤Ï¥·¥¹¥Æ¥à¤ÎÅŸ»¤¬Íî¤È¤µ¤ì¤ë¡£ -Àè¤Ë +(0x4321fedc; 2.1.30 以降) +"Power down" というメッセージが表示され、システムは停止 (stop) する。 +可能な場合はシステムの電源が落とされる。 +先に .BR sync (2) -¤ò¹Ô¤Ê¤ï¤Ê¤¤¤È¡¢¥Ç¡¼¥¿¤¬¼º¤ï¤ì¤ë¡£ +を行なわないと、データが失われる。 .TP .B LINUX_REBOOT_CMD_RESTART2 -(0xa1b2c3d4; 2.1.30 °Ê¹ß) -"Restarting system with command \(aq%s\(aq" ¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¡¢ -¤¿¤À¤Á¤Ë ( +(0xa1b2c3d4; 2.1.30 以降) +"Restarting system with command \(aq%s\(aq" というメッセージが表示され、 +ただちに ( .I arg -¤Ë»ØÄꤵ¤ì¤¿¥³¥Þ¥ó¥É¤òÍѤ¤¤Æ) ºÆµ¯Æ° (restart) ¤¬¹Ô¤ï¤ì¤ë¡£ -Àè¤Ë +に指定されたコマンドを用いて) 再起動 (restart) が行われる。 +先に .BR sync (2) -¤ò¹Ô¤Ê¤ï¤Ê¤¤¤È¡¢¥Ç¡¼¥¿¤¬¼º¤ï¤ì¤ë¡£ +を行なわないと、データが失われる。 .TP .B LINUX_REBOOT_CMD_CAD_ON (RB_ENABLE_CAD, 0x89abcdef) -CAD ¤òÍ­¸ú¤Ë¤¹¤ë¡£ -¤³¤ì°Ê¹ß¤Ë CAD ¥­¡¼¥¹¥È¥í¡¼¥¯¤¬ÆþÎϤµ¤ì¤ë¤È¡¢ -¤¿¤À¤Á¤Ë +CAD を有効にする。 +これ以降に CAD キーストロークが入力されると、 +ただちに .B LINUX_REBOOT_CMD_RESTART -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿Æ°ºî¤¬¹Ô¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +に関連付けられた動作が行われるようになる。 .TP .B LINUX_REBOOT_CMD_CAD_OFF (RB_DISABLE_CAD, 0) -CAD ¤ò̵¸ú¤Ë¤¹¤ë¡£ -¤³¤ì°Ê¹ß¤Ë CAD ¥­¡¼¥¹¥È¥í¡¼¥¯¤¬ÆþÎϤµ¤ì¤ë¤È¡¢ +CAD を無効にする。 +これ以降に CAD キーストロークが入力されると、 .B SIGINT -¥·¥°¥Ê¥ë¤¬ init (¥×¥í¥»¥¹ 1) ¤ËÁ÷¤é¤ì¤ë¡£ -¤³¤Î¥·¥°¥Ê¥ë¤ò¼õ¤±¤ë¤È¡¢¤ª¤½¤é¤¯ init ¥×¥í¥»¥¹¤Ï -Á°¤â¤Ã¤ÆÄê¤á¤é¤ì¤¿Æ°ºî¤ò¹Ô¤¦¤³¤È¤Ë¤Ê¤ë (¿ʬ¤¹¤Ù¤Æ¤Î¥×¥í¥»¥¹¤Î kill, -sync, ºÆµ¯Æ°)¡£ +シグナルが init (プロセス 1) に送られる。 +このシグナルを受けると、おそらく init プロセスは +前もって定められた動作を行うことになる (多分すべてのプロセスの kill, +sync, 再起動)。 .LP -¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¤À¤±¤¬ +スーパーユーザーだけが .BR reboot () -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +を呼び出すことができる。 .LP -¾å½Ò¤Î¥¢¥¯¥·¥ç¥ó¤Î¼ÂºÝ¤Î¸ú²Ì¤Ï¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë°Í¸¤¹¤ë¡£ -i386 ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢¸½ºß¤Î¤È¤³¤í (2.1.122) Éղðú¿ô¤Ï -²¿¤â¹Ô¤ï¤Ê¤¤¤¬¡¢ºÆµ¯Æ°¤Î¥¿¥¤¥×¤ò¥«¡¼¥Í¥ë¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¿ô -("reboot=...") ¤Ë¤è¤Ã¤ÆÄê¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤Ë¤Ï warm ¤Þ¤¿¤Ï cold ¤È¡¢ hard ¤Þ¤¿¤Ï BIOS ·Ðͳ¤ÎºÆµ¯Æ°¤ò -ÀßÄê¤Ç¤­¤ë¡£ -.SH ÊÖ¤êÃÍ +上述のアクションの実際の効果はアーキテクチャに依存する。 +i386 アーキテクチャでは、現在のところ (2.1.122) 付加引数は +何も行わないが、再起動のタイプをカーネルのコマンドライン引数 +("reboot=...") によって定めることができる。 +これには warm または cold と、 hard または BIOS 経由の再起動を +設定できる。 +.SH 返り値 .I cmd -¤¬¥·¥¹¥Æ¥à¤ÎÄä»ß¤äºÆµ¯Æ°¤òɽ¤¹Ãͤξì¹ç¡¢¸Æ¤Ó½Ð¤·¤¬À®¸ù¤¹¤ë¤È +がシステムの停止や再起動を表す値の場合、呼び出しが成功すると .BR reboot () -¤ÏÊÖ¤é¤Ê¤¤¡£ +は返らない。 .I cmd -¤¬Â¾¤ÎÃͤξì¹ç¤Ë¤Ï¡¢À®¸ù¤¹¤ë¤È 0 ¤¬Ê֤롣 +が他の値の場合には、成功すると 0 が返る。 .I cmd -¤ÎÃͤ˴ؤï¤é¤º¡¢¼ºÇԤξì¹ç¤Ë¤Ï \-1 ¤¬Ê֤ꡢ +の値に関わらず、失敗の場合には \-1 が返り、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EFAULT .B LINUX_REBOOT_CMD_RESTART2 -¤Î»þ¤Ë¥æ¡¼¥¶¡¼¥¹¥Ú¡¼¥¹¤Î¥Ç¡¼¥¿¤Î¼èÆÀ¤ËÌäÂ꤬¤¢¤Ã¤¿¡£ +の時にユーザースペースのデータの取得に問題があった。 .TP .B EINVAL -magic ¤Î¿ô»ú¤« \fIcmd\fP ¤¬´Ö°ã¤Ã¤Æ¤¤¤ë¡£ +magic の数字か \fIcmd\fP が間違っている。 .TP .B EPERM -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë +呼び出し元プロセスに .BR reboot () -¤ò¸Æ¤Ó½Ð¤¹¤Î¤Ë½½Ê¬¤Ê¸¢¸Â¤¬¤Ê¤«¤Ã¤¿¡£ +を呼び出すのに十分な権限がなかった。 .B CAP_SYS_BOOT -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ -.SH ½àµò +ケーパビリティが必要である。 +.SH 準拠 .BR reboot () -¤Ï Linux ¤ËÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò¹Íθ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤ÏÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +は Linux に特有であり、移植を考慮したプログラムでは用いるべきではない。 +.SH 関連項目 .BR sync (2), .BR bootparam (7), .BR ctrlaltdel (8), diff --git a/release/man2/recv.2 b/release/man2/recv.2 index bc24eb36..2d1775b0 100644 --- a/release/man2/recv.2 +++ b/release/man2/recv.2 @@ -51,14 +51,14 @@ .\" Updated 2008-08-06, Akihiro MOTOKI, LDP v3.05 .\" Updated 2009-04-13, Akihiro MOTOKI, LDP v3.20 .\" -.\"WORD: ancillary data Êä½õ¥Ç¡¼¥¿ -.\"WORD: ancillary message Êä½õ¥á¥Ã¥»¡¼¥¸ -.\"WORD: invalid ÉÔÀµ¤Ê +.\"WORD: ancillary data 補助データ +.\"WORD: ancillary message 補助メッセージ +.\"WORD: invalid 不正な .\" .TH RECV 2 2011-09-16 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -recv, recvfrom, recvmsg \- ¥½¥±¥Ã¥È¤«¤é¥á¥Ã¥»¡¼¥¸¤ò¼õ¤±¼è¤ë -.SH ½ñ¼° +.SH 名前 +recv, recvfrom, recvmsg \- ソケットからメッセージを受け取る +.SH 書式 .\" .B #include .\" .br .nf @@ -73,150 +73,150 @@ recv, recvfrom, recvmsg \- .sp .BI "ssize_t recvmsg(int " sockfd ", struct msghdr *" msg ", int " flags ); .fi -.SH ÀâÌÀ +.SH 説明 .BR recvfrom () -¤È +と .BR recvmsg () -¥³¡¼¥ë¤Ï¡¢¥½¥±¥Ã¥È¤«¤é¥á¥Ã¥»¡¼¥¸¤ò¼õ¤±¼è¤ë¤Î¤Ë»ÈÍѤ¹¤ë¡£ -¤Þ¤¿¥½¥±¥Ã¥È¤Î¥Ç¡¼¥¿¼õ¿®¤Ë¤â»È¤¦¤³¤È¤¬¤Ç¤­¡¢ -¤³¤Î¤È¤­¥½¥±¥Ã¥È¤ÏÀܳ»Ø¸þ (connection-oriened) ¤Ç¤¢¤Ã¤Æ¤â¤Ê¤¯¤Æ¤â¤è¤¤¡£ +コールは、ソケットからメッセージを受け取るのに使用する。 +またソケットのデータ受信にも使うことができ、 +このときソケットは接続指向 (connection-oriened) であってもなくてもよい。 .PP .I src_addr -¤¬ NULL °Ê³°¤Ç¡¢²¼ÁؤΥץí¥È¥³¥ë¤«¤éÁ÷¿®¸µ¥¢¥É¥ì¥¹¤¬Ê¬¤«¤ë¾ì¹ç¡¢ +が NULL 以外で、下層のプロトコルから送信元アドレスが分かる場合、 .I src_addr -¤Ë¤Ï¤³¤ÎÁ÷¿®¸µ¥¢¥É¥ì¥¹¤¬Æþ¤ì¤é¤ì¤ë¡£ +にはこの送信元アドレスが入れられる。 .I src_addr -¤¬ NULL ¤Î¾ì¹ç¡¢ +が NULL の場合、 .I src_addr -¤Ë¤Ï²¿¤âÆþ¤é¤Ê¤¤¡£¤³¤Î¾ì¹ç¡¢ +には何も入らない。この場合、 .I addrlen -¤Ï»ÈÍѤµ¤ì¤º¡¢¤³¤Î°ú¤­¿ô¤Ï NULL ¤Ë¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£ -.\" (UNIX ¥É¥á¥¤¥ó¤È¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥É¥á¥¤¥ó¤Î¤É¤Á¤é¤Î¥Ç¡¼¥¿¥°¥é¥à¥½¥±¥Ã¥È¤Ç¤â +は使用されず、この引き数は NULL にしておくべきである。 +.\" (UNIX ドメインとインターネットドメインのどちらのデータグラムソケットでも .\" .I src_addr -.\" ¤ËÁ÷¿®¸µ¥¢¥É¥ì¥¹¤¬Æþ¤ì¤é¤ì¤ë¡£¤Þ¤¿¡¢UNIX ¥É¥á¥¤¥ó¤Î¥¹¥È¥ê¡¼¥à¥½¥±¥Ã¥È¤Ç¤â -.\" ƱÍͤÀ¤¬¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥É¥á¥¤¥ó¤Î¥¹¥È¥ê¡¼¥à¥½¥±¥Ã¥È¤Ç¤Ï +.\" に送信元アドレスが入れられる。また、UNIX ドメインのストリームソケットでも +.\" 同様だが、インターネットドメインのストリームソケットでは .\" .I src_addr -.\" ¤Ë¥¢¥É¥ì¥¹¤¬Æþ¤ì¤é¤ì¤Ê¤¤¡£) -.\" [¾åµ­¤Î AF_UNIX ¤È AF_INET ¥½¥±¥Ã¥È¤Ë´Ø¤¹¤ëÃíµ­¤Ï¥«¡¼¥Í¥ë 2.4.18 ¤Ç¤Î -.\" Æ°ºî¤ÈƱ¤¸¤Ç¤¢¤ë¡£ (MTK, 22 Jul 02)] -°ú¤­¿ô +.\" にアドレスが入れられない。) +.\" [上記の AF_UNIX と AF_INET ソケットに関する注記はカーネル 2.4.18 での +.\" 動作と同じである。 (MTK, 22 Jul 02)] +引き数 .I addrlen -¤ÏÆþ½ÐÎÏξÍѤΰú¤­¿ô¤Ç¤¢¤ë¡£¸Æ¤Ó½Ð¤·»þ¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤¬ +は入出力両用の引き数である。呼び出し時には、呼び出し元が .I src_addr -¤Ë³ä¤êÅö¤Æ¤¿¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ¤Ç½é´ü²½¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£ -Ê֤äƤ¯¤ë»þ¤Ë¤Ï¡¢Á÷¿®¸µ¥¢¥É¥ì¥¹¤Î¼ÂºÝ¤ÎÂ礭¤µ¤ËÊѹ¹¤µ¤ì¤ë¡£ -ÅϤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤¬¾®¤µ²á¤®¤ë¾ì¹ç¤Ë¤Ï¡¢ÊÖ¤µ¤ì¤ë¥¢¥É¥ì¥¹¤ÎËöÈø¤Ï -ÀÚ¤êµÍ¤á¤é¤ì¤ë¡£¤³¤Î¾ì¹ç¤Ë¤Ï¡¢ +に割り当てたバッファの大きさで初期化しておくべきである。 +返ってくる時には、送信元アドレスの実際の大きさに変更される。 +渡されたバッファが小さ過ぎる場合には、返されるアドレスの末尾は +切り詰められる。この場合には、 .I addrlen -¤Ç¤Ï¡¢¸Æ¤Ó½Ð¤·»þ¤ËÅϤµ¤ì¤¿Ãͤè¤ê¤âÂ礭¤ÊÃͤ¬ÊÖ¤µ¤ì¤ë¡£ +では、呼び出し時に渡された値よりも大きな値が返される。 .PP .BR recv () -¥³¡¼¥ë¤ÏÄ̾ï -.I ÀܳºÑ¤ß¤Î (connected) -¥½¥±¥Ã¥È +コールは通常 +.I 接続済みの (connected) +ソケット .RB ( connect (2) -¤ò»²¾È) ¤Ë¤Ä¤¤¤Æ¤Î¤ß»ÈÍѤµ¤ì¡¢ +を参照) についてのみ使用され、 .I src_addr -°ú¤­¿ô¤Ë NULL ¤ò»ØÄꤷ¤¿ +引き数に NULL を指定した .BR recvfrom () -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 .PP -¤³¤ì¤é¤Î»°¤Ä¤Î¥ë¡¼¥Á¥ó¤Ï¤¤¤º¤ì¤â¡¢À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¤ÎŤµ¤òÊÖ¤¹¡£ -¥á¥Ã¥»¡¼¥¸¤¬Ä¹²á¤®¤Æ»ØÄꤵ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤ËÆþ¤êÀÚ¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ -¥á¥Ã¥»¡¼¥¸¤ò¼õ¿®¤·¤¿¥½¥±¥Ã¥È¤Î¼ïÎà¤Ë¤è¤Ã¤Æ¤Ï;ʬ¤Î¥Ð¥¤¥È¤¬¼Î¤Æ¤é¤ì¤ë -¤«¤â¤·¤ì¤Ê¤¤¡£ +これらの三つのルーチンはいずれも、成功した場合にはメッセージの長さを返す。 +メッセージが長過ぎて指定されたバッファに入り切らなかった場合には、 +メッセージを受信したソケットの種類によっては余分のバイトが捨てられる +かもしれない。 .PP -¥½¥±¥Ã¥È¤Ë¼õ¤±¼è¤ë¥á¥Ã¥»¡¼¥¸¤¬Â¸ºß¤·¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ -¼õ¿®ÍѤΥ³¡¼¥ë¤Ï¥á¥Ã¥»¡¼¥¸¤¬ÅþÃ夹¤ë¤Þ¤ÇÂԤġ£ -¤¿¤À¤·¡¢¥½¥±¥Ã¥È¤¬ÈóÄä»ß (nonblocking) -¤ËÀßÄꤵ¤ì¤Æ¤¤¤¿¾ì¹ç +ソケットに受け取るメッセージが存在しなかった場合、 +受信用のコールはメッセージが到着するまで待つ。 +ただし、ソケットが非停止 (nonblocking) +に設定されていた場合 .RB ( fcntl (2) -¤ò»²¾È) ¤Ï \-1 ¤òÊÖ¤·¡¢³°ÉôÊÑ¿ô +を参照) は \-1 を返し、外部変数 .I errno -¤Ë +に .B EAGAIN -¤« +か .B EWOULDBLOCK -¤òÀßÄꤹ¤ë¡£ -¤³¤ì¤é¤Î¼õ¿®ÍѤΥ³¡¼¥ë¤Ï¡¢¼õ¿®¤·¤¿¥Ç¡¼¥¿¤Î¥µ¥¤¥º¤¬Í׵ᤷ¤¿¥µ¥¤¥º¤Ë -㤹¤ë¤Þ¤ÇÂԤĤΤǤϤʤ¯¡¢²¿¤é¤«¤Î¥Ç¡¼¥¿¤ò¼õ¿®¤¹¤ë¤ÈÉüµ¢¤¹¤ë -(¼õ¿®¤µ¤ì¤ë¥Ç¡¼¥¿¤ÎºÇÂ祵¥¤¥º¤ÏÍ׵ᤷ¤¿¥µ¥¤¥º¤Ç¤¢¤ë)¡£ +を設定する。 +これらの受信用のコールは、受信したデータのサイズが要求したサイズに +達するまで待つのではなく、何らかのデータを受信すると復帰する +(受信されるデータの最大サイズは要求したサイズである)。 .PP .BR select (2) -¤ä +や .BR poll (2) -¥³¡¼¥ë¤ò»È¤Ã¤Æ¡¢¼¡¤Î¥Ç¡¼¥¿¤¬¤¤¤ÄÆϤ¯¤«¤òȽÃǤǤ­¤ë¡£ +コールを使って、次のデータがいつ届くかを判断できる。 .PP .BR recv () -¥³¡¼¥ë¤Î +コールの .I flags -°ú¤­¿ô¤Ë¤Ï¡¢°Ê²¼¤ÎÃͤò 1¤Ä°Ê¾å¡¢¥Ó¥Ã¥Èñ°Ì¤ÎÏÀÍýÏ -¤ò¼è¤Ã¤¿¤â¤Î¤ò»ØÄꤹ¤ë: +引き数には、以下の値を 1つ以上、ビット単位の論理和 +を取ったものを指定する: .TP -.BR MSG_CMSG_CLOEXEC " (" recvmsg "() ¤Î¤ß; Linux 2.6.23)" +.BR MSG_CMSG_CLOEXEC " (" recvmsg "() のみ; Linux 2.6.23)" .RB ( unix (7) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë) +で説明されている) .B SCM_RIGHTS -Áàºî¤ò»È¤Ã¤Æ UNIX ¥É¥á¥¤¥ó¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿·Ðͳ¤Ç¼õ¿®¤·¤¿ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤Ä¤¤¤Æ close-on-exec ¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï¡¢ +操作を使って UNIX ドメインのファイルディスクリプタ経由で受信した +ファイルディスクリプタについて close-on-exec フラグをセットする。 +このフラグは、 .BR open (2) -¤Î +の .B O_CLOEXEC -¥Õ¥é¥°¤ÈƱ¤¸Íýͳ¤ÇÍ­ÍѤǤ¢¤ë¡£ +フラグと同じ理由で有用である。 .TP -.BR MSG_DONTWAIT " (Linux 2.2 °Ê¹ß)" -ÈóÄä»ß (nonblocking) Áàºî¤òÍ­¸ú¤Ë¤¹¤ë¡£ -Áàºî¤¬Ää»ß¤¹¤ë¤è¤¦¤Ê¾ì¹ç¤Ë¥¨¥é¡¼ +.BR MSG_DONTWAIT " (Linux 2.2 以降)" +非停止 (nonblocking) 操作を有効にする。 +操作が停止するような場合にエラー .B EAGAIN -¤« +か .B EWOULDBLOCK -¤Ç¸Æ¤Ó½Ð¤·¤¬¼ºÇÔ¤¹¤ë +で呼び出しが失敗する .RB ( fcntl (2) -¤Î +の .B F_SETFL -¤Ç +で .B O_NONBLOCK -¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤³¤È¤Ë¤è¤Ã¤Æ¤âÍ­¸ú¤Ë¤Ç¤­¤ë)¡£ +フラグを指定することによっても有効にできる)。 .TP -.BR MSG_ERRQUEUE " (Linux 2.2 °Ê¹ß)" -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È¡¢ -¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤¿¥¨¥é¡¼¤ò¥½¥±¥Ã¥È¤Î¥¨¥é¡¼¥­¥å¡¼¤«¤é¼è¤ê¤À¤»¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¤³¤Î¥¨¥é¡¼¤ÏÊä½õ¥á¥Ã¥»¡¼¥¸¤ËÁȤ߹þ¤Þ¤ì¤ÆÅϤµ¤ì¡¢ -¤³¤ÎÊä½õ¥á¥Ã¥»¡¼¥¸¤Î¼ïÊ̤ϥץí¥È¥³¥ë¤Ë°Í¸¤¹¤ë -(IPv4 ¤Î¾ì¹ç¤Ï -.BR IP_RECVERR )¡£ -¥æ¡¼¥¶¤Ï½½Ê¬¤Ê¥µ¥¤¥º¤Î¥Ð¥Ã¥Õ¥¡¤òÍÑ°Õ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Êä½õ¥á¥Ã¥»¡¼¥¸¤Ë´Ø¤¹¤ë¤è¤ê¾ÜºÙ¤Ê¾ðÊó¤Ï +.BR MSG_ERRQUEUE " (Linux 2.2 以降)" +このフラグを指定すると、 +キューに入れられたエラーをソケットのエラーキューから取りだせるようになる。 +このエラーは補助メッセージに組み込まれて渡され、 +この補助メッセージの種別はプロトコルに依存する +(IPv4 の場合は +.BR IP_RECVERR )。 +ユーザは十分なサイズのバッファを用意しなければならない。 +補助メッセージに関するより詳細な情報は .BR cmsg (3) -¤ª¤è¤Ó +および .BR ip (7) -¤ò»²¾È¤Î¤³¤È¡£ -¥¨¥é¡¼¤Î¸¶°ø¤È¤Ê¤Ã¤¿¥ª¥ê¥¸¥Ê¥ë¥Ñ¥±¥Ã¥È¤Î¥Ú¥¤¥í¡¼¥É¤Ï¡¢ +を参照のこと。 +エラーの原因となったオリジナルパケットのペイロードは、 .I msg_iovec -·Ðͳ¤ÇÄ̾ï¤Î¥Ç¡¼¥¿¤È¤·¤ÆÅϤµ¤ì¤ë¡£ -¥¨¥é¡¼¤òµ¯¤³¤·¤¿¥Ç¡¼¥¿¥°¥é¥à¤Î¥ª¥ê¥¸¥Ê¥ë¤Î°¸À襢¥É¥ì¥¹¤Ï¡¢ +経由で通常のデータとして渡される。 +エラーを起こしたデータグラムのオリジナルの宛先アドレスは、 .I msg_name -·Ðͳ¤Ç»²¾È¤Ç¤­¤ë¡£ +経由で参照できる。 .IP -¥í¡¼¥«¥ë¤Ê¥¨¥é¡¼¤Î¾ì¹ç¤Ï¥¢¥É¥ì¥¹¤ÏÅϤµ¤ì¤Ê¤¤ -(¤³¤ì¤Ï +ローカルなエラーの場合はアドレスは渡されない +(これは .I cmsghdr -¤Î +の .I cmsg_len -¥á¥ó¥Ð¡¼¤Ç¥Á¥§¥Ã¥¯¤Ç¤­¤ë)¡£ -¼õ¿®¥¨¥é¡¼¤Î¾ì¹ç¤Ï +メンバーでチェックできる)。 +受信エラーの場合は .B MSG_ERRQUIE -¤¬ +が .I msghdr -¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤¬ÅϤµ¤ì¤¿¸å¤Ë¤Ï¡¢¥­¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ë¼¡¤Î¥¨¥é¡¼¤Ë´ð¤¤¤Æ¡¢ -½èÍýÂÔ¤Á¤Î¥½¥±¥Ã¥È¡¦¥¨¥é¡¼¤¬ºÆÀ¸À®¤µ¤ì¡¢¼¡¤Î¥½¥±¥Ã¥ÈÁàºî¤ÎºÝ¤ËÅϤµ¤ì¤ë¡£ +にセットされる。 +エラーが渡された後には、キューに入っている次のエラーに基いて、 +処理待ちのソケット・エラーが再生成され、次のソケット操作の際に渡される。 .IP -¤³¤Î¥¨¥é¡¼¤Ï +このエラーは .I sock_extended_err -¹½Â¤ÂΤÇÄ󶡤µ¤ì¤ë: +構造体で提供される: .in +4n .nf @@ -242,80 +242,80 @@ struct sockaddr *SO_EE_OFFENDER(struct sock_extended_err *); .in .IP .I ee_errno -¤Ë¤Ï¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤¿¥¨¥é¡¼¤Î +にはキューに入れられたエラーの .I errno -¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ +が入っている。 .I ee_origin -¤Ë¤Ï¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì½ê¤Î¥ª¥ê¥¸¥ó¡¦¥³¡¼¥É (origin code) ¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ -¾¤Î¥Õ¥£¡¼¥ë¥É¤Ï¥×¥í¥È¥³¥ë°Í¸¤Ç¤¢¤ë¡£ +にはエラーが発生した場所のオリジン・コード (origin code) が入っている。 +他のフィールドはプロトコル依存である。 .B SO_EE_OFFENDER -¥Þ¥¯¥í¤Ï¡¢¤³¤ÎÊä½õŪ¤Ê¥á¥Ã¥»¡¼¥¸¤ò°ú¤­¿ô¤Ë¼è¤Ã¤Æ¡¢ -¥¨¥é¡¼¤ÎȯÀ¸¤·¤¿¥Í¥Ã¥È¥ï¡¼¥¯¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥É¥ì¥¹¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¢¥É¥ì¥¹¤¬ÉÔÌÀ¤Î¾ì¹ç¤Ë¤Ï¡¢ +マクロは、この補助的なメッセージを引き数に取って、 +エラーの発生したネットワークオブジェクトのアドレスへのポインタを返す。 +アドレスが不明の場合には、 .I sockaddr -¤Î +の .I sa_family -¥á¥ó¥Ð¡¼¤¬ +メンバーが .B AF_UNSPEC -¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +になっている。 .I sockaddr -¤Î¾¤Î¥Õ¥£¡¼¥ë¥É¤ÏÉÔÄê¤Ç¤¢¤ë¡£ -¥¨¥é¡¼¤ÎȯÀ¸¤·¤¿¥Ñ¥±¥Ã¥È¤Î¥Ú¥¤¥í¡¼¥É¤ÏÄ̾ï¤Î¥Ç¡¼¥¿¤È¤·¤ÆÅϤµ¤ì¤ë¡£ +の他のフィールドは不定である。 +エラーの発生したパケットのペイロードは通常のデータとして渡される。 .IP -¥í¡¼¥«¥ë¤Ç¤Î¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï¥¢¥É¥ì¥¹¤ÏÅϤµ¤ì¤Ê¤¤ (¤³¤ì¤Ï +ローカルでのエラーの場合にはアドレスは渡されない (これは .I cmsghdr -¤Î +の .I cmsg_len -¥á¥ó¥Ð¡¼¤Ç¥Á¥§¥Ã¥¯¤Ç¤­¤ë)¡£ -¥¨¥é¡¼¤ò¼õ¤±¼è¤Ã¤¿¾ì¹ç¡¢ +メンバーでチェックできる)。 +エラーを受け取った場合、 .B MSG_ERRQUEUE -¤¬ +が .I msghdr -¤ËÀßÄꤵ¤ì¤ë¡£ -¥¨¥é¡¼¤¬ÅϤµ¤ì¤¿¸å¤Ë¤Ï¡¢ -½èÍýÂÔ¤Á¤Ë¤Ê¤Ã¤Æ¤¤¤¿¥½¥±¥Ã¥È¡¦¥¨¥é¡¼¤¬¡¢¥­¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ë -¼¡¤Î¥¨¥é¡¼¤Ë´ð¤Å¤¤¤ÆºÆÀ¸À®¤µ¤ì¡¢¼¡¤Î¥½¥±¥Ã¥ÈÁàºî¤ÎºÝ¤ËÅϤµ¤ì¤ë¡£ +に設定される。 +エラーが渡された後には、 +処理待ちになっていたソケット・エラーが、キューに入っている +次のエラーに基づいて再生成され、次のソケット操作の際に渡される。 .TP .B MSG_OOB -¤³¤Î¥Õ¥é¥°¤Ï¡¢Ä̾ï¤Î¥Ç¡¼¥¿¡¦¥¹¥È¥ê¡¼¥à¤Ç¤Ï¼õ¿®¤Ç¤­¤Ê¤¤ -ÂÓ°è³° (out-of-band) ¥Ç¡¼¥¿¤Î¼õ¿®¤òÍ׵᤹¤ë¡£ -¥×¥í¥È¥³¥ë¤Ë¤è¤Ã¤Æ¤Ï¡¢ -Ä̾ï¤Î¥Ç¡¼¥¿¡¦¥­¥å¡¼¤ÎÀèƬ¤Ë®ã¥Ç¡¼¥¿¤òÃÖ¤¯¤â¤Î¤¬¤¢¤ë¤¬¡¢ -¤½¤Î¤è¤¦¤Ê¥×¥í¥È¥³¥ë¤Ç¤Ï¤³¤Î¥Õ¥é¥°¤Ï»ÈÍѤǤ­¤Ê¤¤¡£ +このフラグは、通常のデータ・ストリームでは受信できない +帯域外 (out-of-band) データの受信を要求する。 +プロトコルによっては、 +通常のデータ・キューの先頭に速達データを置くものがあるが、 +そのようなプロトコルではこのフラグは使用できない。 .TP .B MSG_PEEK -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È¡¢ -¼õ¿®¥­¥å¡¼¤ÎºÇ½é¤Î¥Ç¡¼¥¿¤òÊÖ¤¹¤È¤­¡¢¥­¥å¡¼¤«¤é¥Ç¡¼¥¿¤òºï½ü¤·¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¤³¤Î¸å¤Ç¤â¤¦°ìÅÙ¼õ¿®¥³¡¼¥ë¤ò¸Æ¤Ó½Ð¤¹¤È¡¢Æ±¤¸¥Ç¡¼¥¿¤¬Ê֤뤳¤È¤Ë¤Ê¤ë¡£ +このフラグを指定すると、 +受信キューの最初のデータを返すとき、キューからデータを削除しない。 +したがって、この後でもう一度受信コールを呼び出すと、同じデータが返ることになる。 .TP -.BR MSG_TRUNC " (Linux 2.2 °Ê¹ß)" -raw ¥½¥±¥Ã¥È -.RB ( AF_PACKET )¡¢ -Internet datagram ¥½¥±¥Ã¥È (Linux 2.4.27/2.6.8 °Ê¹ß)¡¢ -netlink (Linux 2.6.22 °Ê¹ß) ¥½¥±¥Ã¥È¤Î¾ì¹ç¡¢ -¥Ñ¥±¥Ã¥È¤ä¥Ç¡¼¥¿¥°¥é¥à¤ÎŤµ¤¬ÅϤ·¤¿¥Ð¥Ã¥Õ¥¡¤è¤ê¤âŤ«¤Ã¤¿¾ì¹ç¤Ë¤â¡¢ -¥Ñ¥±¥Ã¥È¤ä¥Ç¡¼¥¿¥°¥é¥à¤Î¼ÂºÝ¤ÎŤµ¤òÊÖ¤¹¡£ -UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È +.BR MSG_TRUNC " (Linux 2.2 以降)" +raw ソケット +.RB ( AF_PACKET )、 +Internet datagram ソケット (Linux 2.4.27/2.6.8 以降)、 +netlink (Linux 2.6.22 以降) ソケットの場合、 +パケットやデータグラムの長さが渡したバッファよりも長かった場合にも、 +パケットやデータグラムの実際の長さを返す。 +UNIX ドメインソケット .RB ( unix (7)) -¥½¥±¥Ã¥È¤Ë¤Ä¤¤¤Æ¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +ソケットについては実装されていない。 -Internet ¥¹¥È¥ê¡¼¥à¥½¥±¥Ã¥È¤Ç¤ÎÍøÍѤˤĤ¤¤Æ¤Ï +Internet ストリームソケットでの利用については .BR tcp (7) -¤ò»²¾È¡£ +を参照。 .TP -.BR MSG_WAITALL " (Linux 2.2 °Ê¹ß)" -¤³¤Î¥Õ¥é¥°¤Ï¡¢Í׵ᤷ¤¿Î̤¤¤Ã¤Ñ¤¤¤Î¥Ç¡¼¥¿¤¬ÅþÃ夹¤ë¤Þ¤Ç¡¢ -Áàºî¤òÄä»ß (block) ¤¹¤ë¤è¤¦Í׵᤹¤ë¡£ -⤷¡¢¥·¥°¥Ê¥ë¤ò¼õ¿®¤·¤¿¤ê¡¢¥¨¥é¡¼¤äÀÚÃÇ (disconnect) ¤¬È¯À¸¤·¤¿¤ê¡¢ -¼¡¤Ë¼õ¿®¤µ¤ì¤ë¥Ç¡¼¥¿¤¬°Û¤Ê¤ë·¿¤À¤Ã¤¿¤ê¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ -Í׵ᤷ¤¿Î̤è¤ê¥Ç¡¼¥¿¤¬¾¯¤Ê¤¯¤Æ¤âÊ֤뤳¤È¤¬¤¢¤ë¡£ +.BR MSG_WAITALL " (Linux 2.2 以降)" +このフラグは、要求した量いっぱいのデータが到着するまで、 +操作を停止 (block) するよう要求する。 +但し、シグナルを受信したり、エラーや切断 (disconnect) が発生したり、 +次に受信されるデータが異なる型だったりした場合には、 +要求した量よりデータが少なくても返ることがある。 .PP .BR recvmsg () -¥³¡¼¥ë¤Ï¡¢Ä¾ÀÜÅϤ¹°ú¤­¿ô¤Î¿ô¤ò¸º¤é¤¹¤¿¤á¤Ë +コールは、直接渡す引き数の数を減らすために .I msghdr -¹½Â¤ÂΤò»ÈÍѤ¹¤ë¡£¤³¤Î¹½Â¤ÂÎ¤Ï +構造体を使用する。この構造体は .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +で以下のように定義されている: .in +4n .nf @@ -337,33 +337,33 @@ struct msghdr { .in .PP .I msg_name -¤È +と .I msg_namelen -¤Ï¡¢¥½¥±¥Ã¥È¤¬Àܳ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤ËÁ÷¿®¸µ¤Î¥¢¥É¥ì¥¹¤ò»ØÄꤹ¤ë¡£ -̾Á°¤¬É¬Íפʤ¤¾ì¹ç¤Ë¤Ï +は、ソケットが接続されていない場合に送信元のアドレスを指定する。 +名前が必要ない場合には .I msg_name -¤Ë NULL ¥Ý¥¤¥ó¥¿¤ò»ØÄꤹ¤ë¡£ +に NULL ポインタを指定する。 .I msg_iov -¤È +と .I msg_iovlen -¥Õ¥£¡¼¥ë¥É¤Ï +フィールドは .BR readv (2) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Êʬ²ò/·ë¹çÍѤΥ٥¯¥È¥ë (scatter-gather locations) -¤ò»ØÄꤹ¤ë¡£ +に記述されているような分解/結合用のベクトル (scatter-gather locations) +を指定する。 .I msg_control -¥Õ¥£¡¼¥ë¥É¤Ï +フィールドは .I msg_controllen -¤ÎŤµ¤ò»ý¤Á¡¢Â¾¤Î¥×¥í¥È¥³¥ëÀ©¸æ¥á¥Ã¥»¡¼¥¸¤ä -¼ï¡¹¤ÎÊä½õ¥Ç¡¼¥¿¤Î¤¿¤á¤Î¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +の長さを持ち、他のプロトコル制御メッセージや +種々の補助データのためのバッファへのポインタである。 .BR recvmsg () -¤ò¸Æ¤ÖºÝ¤Ë¤Ï¡¢ +を呼ぶ際には、 .I msg_controllen -¤Ë +に .I msg_control -¤Î¥Ð¥Ã¥Õ¥¡¤ÎŤµ¤òÆþ¤ì¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¡£ -¥³¡¼¥ë¤¬À®¸ù¤·¤ÆÊ֤俾ì¹ç¡¢À©¸æ¥á¥Ã¥»¡¼¥¸Îó¤ÎŤµ¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ +のバッファの長さを入れておく必要がある。 +コールが成功して返った場合、制御メッセージ列の長さが入っている。 .PP -¥á¥Ã¥»¡¼¥¸¤Î·Á¼°¤Ï°Ê²¼¤ÎÄ̤ê: +メッセージの形式は以下の通り: .in +4n .nf @@ -377,132 +377,132 @@ struct cmsghdr { .fi .in .PP -Êä½õ¥Ç¡¼¥¿¤Ï¡¢ +補助データは、 .BR cmsg (3) -¤ËÄêµÁ¤µ¤ì¤¿¥Þ¥¯¥í·Ðͳ¤Ç¤Î¤ß¥¢¥¯¥»¥¹¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +に定義されたマクロ経由でのみアクセスすべきである。 .PP -Îã¤ò¤¢¤²¤ë¤È¡¢ Linux ¤Ï¤³¤ÎÊä½õ¥Ç¡¼¥¿¤Î¥á¥«¥Ë¥º¥à¤ò¡¢ -UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¾å¤Ç¤Î³ÈÄ¥¥¨¥é¡¼¤ä IP ¥ª¥×¥·¥ç¥ó¡¢ -¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¼õ¤±ÅϤ·¤ËÍøÍѤ·¤Æ¤¤¤ë¡£ +例をあげると、 Linux はこの補助データのメカニズムを、 +UNIX ドメインソケット上での拡張エラーや IP オプション、 +ファイル・ディスクリプタの受け渡しに利用している。 .PP .I msghdr -¤Î +の .I msg_flags -¥Õ¥£¡¼¥ë¥É¤Ï +フィールドは .BR recvmsg () -¤«¤é¤Î¥ê¥¿¡¼¥ó»þ¤ËÀßÄꤵ¤ì¤ë¡£¤³¤³¤Ë¤Ï¤¤¤¯¤Ä¤«¤Î¥Õ¥é¥°¤¬Æþ¤ë¡£ +からのリターン時に設定される。ここにはいくつかのフラグが入る。 .TP .B MSG_EOR -¤³¤ì¤Ï¥ì¥³¡¼¥É¤Î½ª¤ê (end-of-record) ¤ò¼¨¤·¡¢ -ÊÖ¤µ¤ì¤¿¥Ç¡¼¥¿¤¬´°Á´¤Ê¥ì¥³¡¼¥É¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹ (°ìÈÌŪ¤Ë¤Ï +これはレコードの終り (end-of-record) を示し、 +返されたデータが完全なレコードであることを示す (一般的には .B SOCK_SEQPACKET -·¿¤Î¥½¥±¥Ã¥È¤Ç»ÈÍѤµ¤ì¤ë)¡£ +型のソケットで使用される)。 .TP .B MSG_TRUNC -¥Ç¡¼¥¿¥°¥é¥à¤¬Í¿¤¨¤é¤ì¤¿¥Ð¥Ã¥Õ¥¡¤è¤êÂ礭¤«¤Ã¤¿¤¿¤á¤Ë¡¢ -¥Ç¡¼¥¿¥°¥é¥à¤Î¤Ï¤ß½Ð¤·¤¿Éôʬ¤¬¼Î¤Æ¤é¤ì¤¿¤³¤È¤ò¼¨¤¹¡£ +データグラムが与えられたバッファより大きかったために、 +データグラムのはみ出した部分が捨てられたことを示す。 .TP .B MSG_CTRUNC -Êä½õ¥Ç¡¼¥¿¤Î¤¿¤á¤Î¥Ð¥Ã¥Õ¥¡¤¬ÉÔ­¤·¤¿¤¿¤á¤Ë¡¢ -À©¸æ¥Ç¡¼¥¿¤Î°ìÉô¤¬¼Î¤Æ¤é¤ì¤¿¤³¤È¤ò¼¨¤¹¡£ +補助データのためのバッファが不足したために、 +制御データの一部が捨てられたことを示す。 .TP .B MSG_OOB -®ã¥Ç¡¼¥¿¤äÂÓ°è³°¥Ç¡¼¥¿¤ò¼õ¿®¤·¤¿¤³¤È¤ò¼¨¤¹¡£ +速達データや帯域外データを受信したことを示す。 .TP .B MSG_ERRQUEUE -¥Ç¡¼¥¿¤Ï¼õ¿®¤·¤Ê¤«¤Ã¤¿¤¬ -¥½¥±¥Ã¥È¤Î¥¨¥é¡¼¡¦¥­¥å¡¼¤«¤é³ÈÄ¥¥¨¥é¡¼¤ò¼õ¿®¤·¤¿¤³¤È¤ò¼¨¤¹¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î¥³¡¼¥ë¤Ï¼õ¿®¤·¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ -ÀܳÀ褬Àµ¤·¤¯¥·¥ã¥Ã¥È¥À¥¦¥ó¤ò¼Â¹Ô¤·¤¿¾ì¹ç¤Ï¡¢ÊÖ¤êÃÍ¤Ï 0 ¤È¤Ê¤ë¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Ï¥½¥±¥Ã¥ÈÁؤÇȯÀ¸¤¹¤ë°ìÈÌŪ¤Ê¥¨¥é¡¼¤Ç¤¢¤ë¡£ -¾¤Î¥¨¥é¡¼¤¬²¼ÁؤΥץí¥È¥³¥ë¡¦¥â¥¸¥å¡¼¥ë¤ÇÀ¸À®¤µ¤ì¡¢ -ÊÖ¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤½¤ì¤é¤Î¥Þ¥Ë¥å¥¢¥ë¤ò»²¾È¤¹¤ë¤³¤È¡£ +データは受信しなかったが +ソケットのエラー・キューから拡張エラーを受信したことを示す。 +.SH 返り値 +これらのコールは受信したバイト数を返す。 +エラーの場合は \-1 を返す。 +接続先が正しくシャットダウンを実行した場合は、返り値は 0 となる。 +.SH エラー +これらはソケット層で発生する一般的なエラーである。 +他のエラーが下層のプロトコル・モジュールで生成され、 +返されるかもしれない。 +それらのマニュアルを参照すること。 .TP -.BR EAGAIN " ¤Þ¤¿¤Ï " EWOULDBLOCK +.BR EAGAIN " または " EWOULDBLOCK .\" Actually EAGAIN on Linux -¥½¥±¥Ã¥È¤¬ÈóÄä»ß (nonblocking) ¤ËÀßÄꤵ¤ì¤Æ¤¤¤Æ -¼õ¿®Áàºî¤¬Ää»ß¤¹¤ë¤è¤¦¤Ê¾õ¶·¤Ë¤Ê¤Ã¤¿¤«¡¢ -¼õ¿®¤Ë»þ´ÖÀÚ¤ì (timeout) ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Æ -¥Ç¡¼¥¿¤ò¼õ¿®¤¹¤ëÁ°¤Ë»þ´ÖÀÚ¤ì¤Ë¤Ê¤Ã¤¿¡£ -POSIX.1-2001 ¤Ï¡¢¤³¤Î¾ì¹ç¤Ë¤É¤Á¤é¤Î¥¨¥é¡¼¤òÊÖ¤¹¤³¤È¤âǧ¤á¤Æ¤ª¤ê¡¢ -¤³¤ì¤é 2 ¤Ä¤ÎÄê¿ô¤¬Æ±¤¸Ãͤò»ý¤Ä¤³¤È¤âµá¤á¤Æ¤¤¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢Î¾Êý¤Î²ÄǽÀ­¤ò -³Îǧ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +ソケットが非停止 (nonblocking) に設定されていて +受信操作が停止するような状況になったか、 +受信に時間切れ (timeout) が設定されていて +データを受信する前に時間切れになった。 +POSIX.1-2001 は、この場合にどちらのエラーを返すことも認めており、 +これら 2 つの定数が同じ値を持つことも求めていない。 +したがって、移植性が必要なアプリケーションでは、両方の可能性を +確認すべきである。 .TP .B EBADF -°ú¤­¿ô +引き数 .I sockfd -¤¬ÉÔÀµ¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +が不正なディスクリプタである。 .TP .B ECONNREFUSED -¥ê¥â¡¼¥È¤Î¥Û¥¹¥È¤Ç¥Í¥Ã¥È¥ï¡¼¥¯Àܳ¤¬µñÈݤµ¤ì¤¿ -(¤è¤¯¤¢¤ëÍýͳ¤È¤·¤Æ¤Ï¡¢Í׵ᤷ¤¿¥µ¡¼¥Ó¥¹¤¬µ¯Æ°¤µ¤ì¤Æ¤¤¤Ê¤¤¤Ê¤É¤¬¤¢¤ë)¡£ +リモートのホストでネットワーク接続が拒否された +(よくある理由としては、要求したサービスが起動されていないなどがある)。 .TP .B EFAULT -¼õ¿®¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +受信バッファへのポインタがプロセスのアドレス空間外を指している。 .TP .B EINTR -¥Ç¡¼¥¿¤ò¼õ¿®¤¹¤ëÁ°¤Ë¡¢¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤Æ³ä¤ê¹þ¤Þ¤ì¤¿¡£ +データを受信する前に、シグナルが配送されて割り込まれた。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL -ÉÔÀµ¤Ê°ú¤­¿ô¤¬ÅϤµ¤ì¤¿¡£ +不正な引き数が渡された。 .\" e.g., msg_namelen < 0 for recvmsg() or addrlen < 0 for recvfrom() .TP .B ENOMEM .BR recvmsg () -¤Î¤¿¤á¤Î¥á¥â¥ê¤¬³ÎÊݤǤ­¤Ê¤«¤Ã¤¿¡£ +のためのメモリが確保できなかった。 .TP .B ENOTCONN -¥½¥±¥Ã¥È¤ËÀܳ»Ø¸þ¥×¥í¥È¥³¥ë¤¬³ä¤êÅö¤Æ¤é¤ì¤Æ¤ª¤ê¡¢ -¤Þ¤ÀÀܳ¤µ¤ì¤Æ¤¤¤Ê¤¤ +ソケットに接続指向プロトコルが割り当てられており、 +まだ接続されていない .RB ( connect (2) -¤È +と .BR accept (2) -¤ò»²¾È¤Î¤³¤È)¡£ +を参照のこと)。 .TP .B ENOTSOCK -°ú¤­¿ô +引き数 .I sockfd -¤¬¥½¥±¥Ã¥È¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£ -.SH ½àµò -4.4BSD (¤³¤ì¤é¤Î´Ø¿ô¤Ï 4.2BSD ¤Ç¸½¤ï¤ì¤¿), POSIX.1-2001¡£ +がソケットを参照していない。 +.SH 準拠 +4.4BSD (これらの関数は 4.2BSD で現われた), POSIX.1-2001。 .LP -POSIX.1-2001 ¤Ç¤Ï¡¢ +POSIX.1-2001 では、 .BR MSG_OOB , .BR MSG_PEEK , .B MSG_WAITALL -¥Õ¥é¥°¤À¤±¤¬µ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -¾åµ­¤Î¥×¥í¥È¥¿¥¤¥×¤Ï glibc2 ¤Ë¤·¤¿¤¬¤Ã¤Æ¤¤¤ë¡£ -Single UNIX Specification ¤Ç¤âƱÍͤÀ¤¬¡¢ -ÊÖ¤êÃͤη¿¤¬ \fIssize_t\fP ¤È¤Ê¤Ã¤Æ¤¤¤ë -(°ìÊý¤Ç 4.x BSD ¤ä libc4 ¤ä libc5 ¤ÏÁ´¤Æ \fIint\fP ¤ò»ÈÍѤ·¤Æ¤¤¤ë)¡£ +フラグだけが記載されている。 +.SH 注意 +上記のプロトタイプは glibc2 にしたがっている。 +Single UNIX Specification でも同様だが、 +返り値の型が \fIssize_t\fP となっている +(一方で 4.x BSD や libc4 や libc5 は全て \fIint\fP を使用している)。 .I flags -°ú¤­¿ô¤Ï 4.x BSD ¤Ç¤Ï \fIint\fP ¤À¤¬¡¢libc4 ¤È libc5 ¤Ç¤Ï \fIunsigned int\fP ¤Ç¤¢¤ë¡£ +引き数は 4.x BSD では \fIint\fP だが、libc4 と libc5 では \fIunsigned int\fP である。 .I len -°ú¤­¿ô¤Ï 4.x BSD ¤Ç¤Ï \fIint\fP ¤À¤¬¡¢ libc4 ¤È libc5 ¤Ç¤Ï \fIsize_t\fP ¤Ç¤¢¤ë¡£ +引き数は 4.x BSD では \fIint\fP だが、 libc4 と libc5 では \fIsize_t\fP である。 .I addrlen -°ú¤­¿ô¤Ï 4.x BSD, libc4, libc5 ¤Ç¤Ï \fIint\ *\fP ¤Ç¤¢¤ë¡£ -¸½ºß¤Î \fIsocklen_t\ *\fP ¤Ï POSIX ¤Çȯ°Æ¤µ¤ì¤¿¡£ +引き数は 4.x BSD, libc4, libc5 では \fIint\ *\fP である。 +現在の \fIsocklen_t\ *\fP は POSIX で発案された。 .BR accept (2) -¤â»²¾È¤¹¤ë¤³¤È¡£ +も参照すること。 -POSIX.1-2001 ¤Ç¤Ï¡¢¹½Â¤ÂÎ +POSIX.1-2001 では、構造体 .I msghdr -¤Î¥Õ¥£¡¼¥ë¥É +のフィールド .I msg_controllen -¤Ï +は .I socklen_t -·¿¤Ç¤¢¤ë¤Ù¤­¤À¤È¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -¸½ºß¤Î glibc ¤Ç¤Ï +型であるべきだとされているが、 +現在の glibc では .I size_t -·¿¤Ç¤¢¤ë¡£ +型である。 .\" glibc bug raised 12 Mar 2006 .\" http://sourceware.org/bugzilla/show_bug.cgi?id=2448 .\" The problem is an underlying kernel issue: the size of the @@ -510,14 +510,14 @@ POSIX.1-2001 .\" across architectures, but socklen_t is always 32 bits. .BR recvmmsg (2) -¤Ë¤Ï¡¢°ìÅ٤θƤӽФ·¤Ç¤ÎÊ£¿ô¤Î¥Ç¡¼¥¿¥°¥é¥à¤Ë»ÈÍѤǤ­¤ë Linux ¸ÇÍ­¤Î -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë´Ø¤¹¤ë¾ðÊ󤬽ñ¤«¤ì¤Æ¤¤¤ë¡£ -.SH Îã +には、一度の呼び出しでの複数のデータグラムに使用できる Linux 固有の +システムコールに関する情報が書かれている。 +.SH 例 .BR recvfrom () -¤ÎÍøÍÑÎ㤬 +の利用例が .BR getaddrinfo (3) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +に記載されている。 +.SH 関連項目 .BR fcntl (2), .BR getsockopt (2), .BR read (2), diff --git a/release/man2/remap_file_pages.2 b/release/man2/remap_file_pages.2 index 0b61901e..64154691 100644 --- a/release/man2/remap_file_pages.2 +++ b/release/man2/remap_file_pages.2 @@ -32,120 +32,120 @@ .\" by Akihiro MOTOKI .\" .TH REMAP_FILE_PAGES 2 2008-04-22 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -remap_file_pages \- ÈóÀþ·Á¥Õ¥¡¥¤¥ë¥Þ¥Ã¥Ô¥ó¥°¤òºîÀ®¤¹¤ë¡£ -.SH ½ñ¼° +.SH 名前 +remap_file_pages \- 非線形ファイルマッピングを作成する。 +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "int remap_file_pages(void *" addr ", size_t " size ", int " prot , .BI " ssize_t " pgoff ", int " flags ); .fi -.SH ÀâÌÀ +.SH 説明 .BR remap_file_pages () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÈóÀþ·Á¤Ê¥Þ¥Ã¥Ô¥ó¥°¡¢ -¤Ä¤Þ¤ê¥Õ¥¡¥¤¥ë¤Î¥Ú¡¼¥¸¤¬¥á¥â¥ê¾å¤ÇϢ³¤·¤Ê¤¤½çÈ֤ǥޥåפµ¤ì¤ë -¥Þ¥Ã¥Ô¥ó¥°¤òºîÀ®¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ +システムコールは非線形なマッピング、 +つまりファイルのページがメモリ上で連続しない順番でマップされる +マッピングを作成するために使われる。 .BR remap_file_pages () -¤ò»È¤¦Êý¤¬ +を使う方が .BR mmap (2) -¤ò·«¤êÊÖ¤·¤Æ»È¤¦¤è¤êÍ¥¤ì¤Æ¤¤¤ëÅÀ¤Ï¡¢ -Á°¼Ô¤ÎÊýË¡¤Ç¤Ï¥«¡¼¥Í¥ë¤¬ VMA (Virtual Memory Area, ²¾ÁÛ¥á¥â¥êÎΰè) -¥Ç¡¼¥¿¹½Â¤ÂΤòÄɲäǺîÀ®¤¹¤ëɬÍפ¬¤Ê¤¤¤³¤È¤Ç¤¢¤ë¡£ +を繰り返して使うより優れている点は、 +前者の方法ではカーネルが VMA (Virtual Memory Area, 仮想メモリ領域) +データ構造体を追加で作成する必要がないことである。 -ÈóÀþ·Á¥Þ¥Ã¥Ô¥ó¥°¤òºîÀ®¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ -°Ê²¼¤Î¤è¤¦¤Ê¥¹¥Æ¥Ã¥×¤ò¼Â¹Ô¤¹¤ë: +非線形マッピングを作成するためには、 +以下のようなステップを実行する: .TP 3 1. .BR mmap (2) -¤ò»È¤¤¡¢¥Þ¥Ã¥Ô¥ó¥°¤òºîÀ®¤¹¤ë (¤³¤Î¥Þ¥Ã¥Ô¥ó¥°¤ÏºÇ½é¤ÏÀþ·Á¤Ç¤¢¤ë)¡£ -¤³¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ï +を使い、マッピングを作成する (このマッピングは最初は線形である)。 +このマッピングは .B MAP_SHARED -¥Õ¥é¥°¤ò»ØÄꤷ¤ÆºîÀ®¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +フラグを指定して作成されなければならない。 .TP 2. .BR remap_file_pages () -¤ò 1 ²ó°Ê¾å¸Æ¤Ó½Ð¤·¤Æ¡¢ -¥Þ¥Ã¥Ô¥ó¥°¤Î¥Ú¡¼¥¸¤È¥Õ¥¡¥¤¥ë¤Î¥Ú¡¼¥¸¤ÎÂбþ´Ø·¸¤òºÆ¹½À®¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¤ÎƱ¤¸¥Ú¡¼¥¸¤ò¥Þ¥Ã¥Ô¥ó¥°Îΰè¤ÎÊ£¿ô¤Î¾ì½ê¤Ë -¥Þ¥Ã¥×¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£ +を 1 回以上呼び出して、 +マッピングのページとファイルのページの対応関係を再構成する。 +ファイルの同じページをマッピング領域の複数の場所に +マップすることが可能である。 .LP .I pgoff -¤È +と .I size -°ú¤­¿ô¤Ï¡¢¥Þ¥Ã¥Ô¥ó¥°Æâ¤ÇºÆÇÛÃÖ¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤ÎÎΰè¤ò»ØÄꤹ¤ë¡£ +引き数は、マッピング内で再配置されるファイルの領域を指定する。 .I pgoff -¤Ï¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤Ç¤¢¤ê¡¢Ã±°Ì¤Ï¥·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥º¤Ç¤¢¤ë¡£ +はファイルオフセットであり、単位はシステムのページサイズである。 .I size -¤ÏÎΰè¤ÎŤµ¤Ç¤¢¤ê¡¢Ã±°Ì¤Ï¥Ð¥¤¥È¤Ç¤¢¤ë¡£ +は領域の長さであり、単位はバイトである。 .I addr -°ú¤­¿ô¤Ï 2 ¤Ä¤ÎÌÜŪ¤Ç»È¤ï¤ì¤ë¡£ -Âè 1 ¤ÎÌÜŪ¤Ï¡¢¤³¤Î°ú¤­¿ô¤Ë¤è¤Ã¤ÆºÆÊÔÀ®¤·¤¿¤¤¥Ú¡¼¥¸¤Î -¥Þ¥Ã¥Ô¥ó¥°¤ò¼±Ê̤¹¤ë¤³¤È¤Ç¤¢¤ë¡£ -¤è¤Ã¤Æ +引き数は 2 つの目的で使われる。 +第 1 の目的は、この引き数によって再編成したいページの +マッピングを識別することである。 +よって .I addr -¤Ï +は .BR mmap (2) -¤Î¸Æ¤Ó½Ð¤·¤Ç²áµî¤Ë¥Þ¥Ã¥×¤µ¤ì¤¿ÎΰèÆâ¤Î¥¢¥É¥ì¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Âè 2 ¤ÎÌÜŪ¤Ï¡¢ +の呼び出しで過去にマップされた領域内のアドレスでなければならない。 +第 2 の目的は、 .I pgoff -¤È +と .I size -¤Ç¼±Ê̤µ¤ì¤ë¥Õ¥¡¥¤¥ë¥Ú¡¼¥¸¤¬ÃÖ¤«¤ì¤ëͽÄê¤Î¥¢¥É¥ì¥¹¤ò¡¢ +で識別されるファイルページが置かれる予定のアドレスを、 .I addr -¤Ë¤è¤Ã¤Æ»ØÄꤹ¤ë¤³¤È¤Ç¤¢¤ë¡£ +によって指定することである。 .I addr -¤È +と .I size -¤Ë»ØÄꤹ¤ëÃͤϡ¢¥·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤È¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¥«¡¼¥Í¥ë¤Ï¡ÖξÊý¡×¤ÎÃͤò -ºÇ¤â¶á¤¤¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤Ø¡ÖÀڤ겼¤²¤ë¡×¡£ -.\" ¤³¤Î´Ý¤á½èÍý¤ÏÉ÷ÊѤï¤ê¤Ç¡¢munmap()/mprotect() ¤ä mlock() ¤Î -.\" ƱÍͤΰú¤­¿ô¤Î½èÍýÊýË¡¤È¤âÌ·½â¤¹¤ë¡£ +に指定する値は、システムのページサイズの倍数とすべきである。 +それ以外の場合、カーネルは「両方」の値を +最も近いページサイズの倍数へ「切り下げる」。 +.\" この丸め処理は風変わりで、munmap()/mprotect() や mlock() の +.\" 同様の引き数の処理方法とも矛盾する。 .\" MTK, 14 Sep 2005 .I prot -°ú¤­¿ô¤Ï 0 ¤Ë»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数は 0 に指定されなければならない。 .I flags -°ú¤­¿ô¤Ï +引き数は .BR mmap (2) -¤Î¤â¤Î¤ÈƱ¤¸°ÕÌ£¤Ç¤¢¤ë¤¬¡¢ +のものと同じ意味であるが、 .B MAP_NONBLOCK -°Ê³°¤ÎÁ´¤Æ¤Î¥Õ¥é¥°¤Ï̵»ë¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +以外の全てのフラグは無視される。 +.SH 返り値 +成功した場合、 .BR remap_file_pages () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +は 0 を返す。 +エラーの場合、\-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EINVAL .I addr -¤¬ +が .B MAP_SHARED -¥Õ¥é¥°¤ò»ØÄꤷ¤ÆºîÀ®¤µ¤ì¤¿Í­¸ú¤Ê¥Þ¥Ã¥Ô¥ó¥°¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£ +フラグを指定して作成された有効なマッピングを参照していない。 .TP .B EINVAL .IR addr , .IR size , .IR prot , .I pgoff -¤Î¤¤¤º¤ì¤«¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ -.\" ¤Þ¤¿¤Ï vma->vm_ops->populate() ¤«¤é¤Î¾¤Î¥¨¥é¡¼¤«¤â¤·¤ì¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +のいずれかが不正である。 +.\" または vma->vm_ops->populate() からの他のエラーかもしれない。 +.SH バージョン .BR remap_file_pages () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 2.5.46 ¤ÇÅо줷¤¿¡£ -glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.3.3 ¤ÇÄɲ䵤줿¡£ -.SH ½àµò +システムコールは Linux 2.5.46 で登場した。 +glibc でのサポートは glibc バージョン 2.3.3 で追加された。 +.SH 準拠 .BR remap_file_pages () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Î¤â¤Î¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +システムコールは Linux 固有のものである。 +.SH 関連項目 .BR getpagesize (2), .BR mmap (2), .BR mmap2 (2), diff --git a/release/man2/removexattr.2 b/release/man2/removexattr.2 index c8c75e55..6158aaf6 100644 --- a/release/man2/removexattr.2 +++ b/release/man2/removexattr.2 @@ -29,13 +29,13 @@ .\" Translated Tue Jul 8 04:43:40 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: extended attributes ³Èĥ°À­ -.\"WORD: namespace ̾Á°¶õ´Ö +.\"WORD: extended attributes 拡張属性 +.\"WORD: namespace 名前空間 .\" .TH REMOVEXATTR 2 2001-12-01 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -removexattr, lremovexattr, fremovexattr \- ³Èĥ°À­¤òºï½ü¤¹¤ë -.SH ½ñ¼° +.SH 名前 +removexattr, lremovexattr, fremovexattr \- 拡張属性を削除する +.SH 書式 .fam C .nf .B #include @@ -46,83 +46,83 @@ removexattr, lremovexattr, fremovexattr \- .BI "int fremovexattr(int " fd ", const char\ *" name ); .fi .fam T -.SH ÀâÌÀ -³Èĥ°À­¤Ï¡¢inode (¥Õ¥¡¥¤¥ë¡¢¥Ç¥£¥ì¥¯¥È¥ê¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯Åù) ¤Ë -´ØÏ¢ÉÕ¤±¤é¤ì¤¿ +.SH 説明 +拡張属性は、inode (ファイル、ディレクトリ、シンボリックリンク等) に +関連付けられた .IR name :\c .I value -¤ÎÂФǤ¢¤ë¡£ -¤³¤ì¤é¤Ï¡¢¥·¥¹¥Æ¥à¾å¤Î¤¹¤Ù¤Æ¤Î inode ¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿Ä̾ï¤Î°À­ +の対である。 +これらは、システム上のすべての inode に関連付けられた通常の属性 .RB ( stat (2) -¤¬ÊÖ¤¹¥Ç¡¼¥¿) ¤ò³ÈÄ¥¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -³Èĥ°À­¤Î¥³¥ó¥»¥×¥È¤Ï +が返すデータ) を拡張するものである。 +拡張属性のコンセプトは .BR attr (5) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ +に書かれている。 .PP .BR removexattr () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÆâ¤Î»ØÄꤵ¤ì¤¿ +は、ファイルシステム内の指定された .I path -¤ËÂбþ¤¹¤ë¡¢Ì¾Á° +に対応する、名前 .I name -¤Î³Èĥ°À­¤òºï½ü¤¹¤ë¡£ +の拡張属性を削除する。 .PP .BR lremovexattr () -¤Ï +は .BR removexattr () -¤ÈƱ¤¸¤À¤¬¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¤Ë¡¢¥ê¥ó¥¯¤¬»²¾È¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë -¤Ç¤Ï¤Ê¤¯¡¢¥ê¥ó¥¯¤½¤Î¤â¤Î¤Î¾ðÊó¤òºï½ü¤¹¤ëÅÀ¤À¤±¤¬°Û¤Ê¤ë¡£ +と同じだが、シンボリックリンクの場合に、リンクが参照しているファイル +ではなく、リンクそのものの情報を削除する点だけが異なる。 .PP .BR fremovexattr () -¤Ï +は .BR removexattr () -¤ÈƱ¤¸¤À¤¬¡¢ +と同じだが、 .I path -¤ÎÂå¤ï¤ê¤Ë +の代わりに .I fd -¤Ç»²¾È¤µ¤ì¤¿¥ª¡¼¥×¥óºÑ¤ß¥Õ¥¡¥¤¥ë¤«¤é³Èĥ°À­¤òºï½ü¤¹¤ë¤À¤±¤Ç¤¢¤ëÅÀ¤¬°Û¤Ê¤ë +で参照されたオープン済みファイルから拡張属性を削除するだけである点が異なる .RI ( fd -¤Ï +は .BR open (2) -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë)¡£ +によって返される)。 .PP -³Èĥ°À­¤Î̾Á°¤Ï¡¢ÉáÄ̤ΠNULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ç¤¢¤ë¡£ +拡張属性の名前は、普通の NULL 終端された文字列である。 .I name -¤Ë¤Ï¡¢Ì¾Á°¶õ´Ö¤òɽ¤¹ÀÜƬ¼­ (prefix) ¤¬´Þ¤Þ¤ì¤ë¡£ -¸Ä¡¹¤Î inode ¤ËÂФ·¡¢¸ß¤¤¤ËÆÈΩ¤Ê̾Á°¶õ´Ö¤¬Ê£¿ô¤¢¤Ã¤Æ¤â¤è¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢ \-1 ¤¬ÊÖ¤µ¤ì¡¢ +には、名前空間を表す接頭辞 (prefix) が含まれる。 +個々の inode に対し、互いに独立な名前空間が複数あってもよい。 +.SH 返り値 +成功した場合、0 が返される。 +失敗した場合、 \-1 が返され、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +に適切な値がセットされる。 .PP -»ØÄꤵ¤ì¤¿Ì¾Á°¤Î°À­¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢ +指定された名前の属性が存在しない場合、 .I errno -¤Ë +に .B ENOATTR -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .PP -³Èĥ°À­¤¬¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -¤â¤·¤¯¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ +拡張属性がそのファイルシステムでサポートされていない場合、 +もしくは無効になっている場合、 .I errno -¤Ë +に .B ENOTSUP -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .PP .BR stat (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÀâÌÀ¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ï -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤âŬÍѤµ¤ì¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë 2.4 °Ê¹ß¤Î Linux ¤ÇÍøÍѤǤ­¤ë¡£ -glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.3 °Ê¹ß¤Ç¹Ô¤ï¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ -.\" .SH Ãø¼Ô +システムコールの説明に書かれているエラーは +これらのシステムコールにも適用される。 +.SH バージョン +これらのシステムコールはカーネル 2.4 以降の Linux で利用できる。 +glibc でのサポートはバージョン 2.3 以降で行われている。 +.SH 準拠 +これらのシステムコールは Linux 独自である。 +.\" .SH 著者 .\" Andreas Gruenbacher, .\" .RI < a.gruenbacher@computer.org > -.\" ¤È SGI XFS ³«È¯¥Á¡¼¥à, -.\" .RI < linux-xfs@oss.sgi.com >¡£ -.\" ¥Ð¥°¥ì¥Ý¡¼¥È¤ä¥³¥á¥ó¥È¤Ï¾åµ­¤Î¥¢¥É¥ì¥¹¤Þ¤ÇÁ÷¤Ã¤Æ²¼¤µ¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +.\" と SGI XFS 開発チーム, +.\" .RI < linux-xfs@oss.sgi.com >。 +.\" バグレポートやコメントは上記のアドレスまで送って下さい。 +.SH 関連項目 .BR getfattr (1), .BR setfattr (1), .BR getxattr (2), diff --git a/release/man2/rename.2 b/release/man2/rename.2 index be0a5219..9378dcb9 100644 --- a/release/man2/rename.2 +++ b/release/man2/rename.2 @@ -39,225 +39,225 @@ .\" Updated 2007-05-04, Akihiro MOTOKI , LDP v2.44 .\" Updated 2009-04-24, Akihiro MOTOKI , LDP v3.20 .\" -.\"WORD: directory ¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: hard link ¥Ï¡¼¥É¡¦¥ê¥ó¥¯ -.\"WORD: overwrite ¾å½ñ¤­(overwrite) -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: crash ¥¯¥é¥Ã¥·¥å -.\"WORD: symbolic link ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: working directory ¥ï¡¼¥­¥ó¥°¡¦¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: root directory ¥ë¡¼¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: effective uid ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: sticky bit ¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È -.\"WORD: memory ¥á¥â¥ê -.\"WORD: read-only Æɤ߹þ¤ßÀìÍÑ -.\"WORD: uid ¥æ¡¼¥¶¡¼ID -.\"WORD: dangling symbolic link ²õ¤ì¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: server ¥µ¡¼¥Ð¡¼ +.\"WORD: directory ディレクトリ +.\"WORD: hard link ハード・リンク +.\"WORD: overwrite 上書き(overwrite) +.\"WORD: process プロセス +.\"WORD: crash クラッシュ +.\"WORD: symbolic link シンボリック・リンク +.\"WORD: working directory ワーキング・ディレクトリ +.\"WORD: root directory ルート・ディレクトリ +.\"WORD: effective uid 実効ユーザーID +.\"WORD: sticky bit スティッキー・ビット +.\"WORD: memory メモリ +.\"WORD: read-only 読み込み専用 +.\"WORD: uid ユーザーID +.\"WORD: dangling symbolic link 壊れたシンボリック・リンク +.\"WORD: server サーバー .\" .TH RENAME 2 2009-03-30 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -rename \- ¥Õ¥¡¥¤¥ë¤Î̾Á°¤ä°ÌÃÖ¤òÊѹ¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +rename \- ファイルの名前や位置を変更する +.SH 書式 .B #include .sp .BI "int rename(const char *" oldpath ", const char *" newpath ); -.SH ÀâÌÀ +.SH 説明 .BR rename () -¤Ï¥Õ¥¡¥¤¥ë¤Î̾Á°¤òÊѹ¹¤·¡¢É¬Íפʤé¤Ð¥Ç¥£¥ì¥¯¥È¥ê´Ö¤Î°ÜÆ°¤ò¹Ô¤Ê¤¦¡£ -¤½¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë +はファイルの名前を変更し、必要ならばディレクトリ間の移動を行なう。 +そのファイルに対する .RB ( link (2) -¤ò»ÈÍѤ·¤Æºî¤é¤ì¤¿) ¾¤Î¥Ï¡¼¥É¥ê¥ó¥¯ (hard link) ¤Ë¤Ï±Æ¶Á¤Ï¤Ê¤¤¡£ -¥ª¡¼¥×¥óºÑ¤Î +を使用して作られた) 他のハードリンク (hard link) には影響はない。 +オープン済の .I oldpath -¤ËÂФ¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤â±Æ¶Á¤Ï¤Ê¤¤¡£ +に対するファイルディスクリプタにも影響はない。 .I newpath -¤¬´û¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢¤½¤ì¤ÏÉÔ²ÄʬÁàºî¤Ç (atomically) ÃÖ¤­´¹¤¨¤é¤ì¤ë -(¤¿¤À¤·¡¢¤¤¤¯¤Ä¤«¤Î¾ò·ï¤¬¤¢¤ë; °Ê²¼¤Î¡Ö¥¨¥é¡¼¡×¤Î¥»¥¯¥·¥ç¥ó¤ò»²¾È)¡£ -¤½¤Î¤¿¤á¡¢ +が既に存在する場合、それは不可分操作で (atomically) 置き換えられる +(ただし、いくつかの条件がある; 以下の「エラー」のセクションを参照)。 +そのため、 .I newpath -¤Ë¥¢¥¯¥»¥¹¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¾¤Î¥×¥í¥»¥¹¤¬¥Õ¥¡¥¤¥ë¤ò¸«¼º¤¦¤³¤È¤Ï¤Ê¤¤ -(ÌõÃð: ¾ï¤Ë¥¢¥¯¥»¥¹²Äǽ¤Ç¤¢¤ë)¡£ +にアクセスしようとしている他のプロセスがファイルを見失うことはない +(訳註: 常にアクセス可能である)。 .I oldpath -¤È +と .I newpath -¤¬¤É¤Á¤é¤â´û¸¤Î¥Ï¡¼¥É¥ê¥ó¥¯¤Ç¡¢Æ±¤¸¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¡¢ +がどちらも既存のハードリンクで、同じファイルを参照している場合、 .BR rename () -¤Ï²¿¤â¹Ô¤ï¤º¡¢¥¹¥Æ¡¼¥¿¥¹¤È¤·¤ÆÀ®¸ù¤òÊÖ¤¹¡£ +は何も行わず、ステータスとして成功を返す。 .I newpath -¤¬Â¸ºß¤·¡¢²¿¤é¤«¤ÎÍýͳ¤ÇÁàºî¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +が存在し、何らかの理由で操作が失敗した場合、 .BR rename () -¤Ï +は .I newpath -¤Î¼ÂÂΤò¸µ¤Î¤Þ¤Þ»Ä¤¹¤³¤È¤òÊݾڤ¹¤ë¡£ +の実体を元のまま残すことを保証する。 .I oldpath -¤Ë¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¤³¤Î¾ì¹ç¡¢ +にはディレクトリを指定することもできる。 +この場合、 .I newpath -¤Ï¸ºß¤·¤Ê¤¤¤«¡¢¶õ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は存在しないか、空のディレクトリでなければならない。 -°ìÊý¤Ç¡¢¾å½ñ¤­¤ò¹Ô¤Ê¤¦¾ì¹ç¤Ï¡¢rename ¤¬¹Ô¤Ê¤ï¤ì¤ë¥Õ¥¡¥¤¥ë¤ò +一方で、上書きを行なう場合は、rename が行なわれるファイルを .I oldpath -¤È +と .I newpath -¤ÎξÊý¤Ç»²¾È¤Ç¤­¤ë½Ö´Ö¤¬¤ª¤½¤é¤¯Â¸ºß¤¹¤ë¡£ +の両方で参照できる瞬間がおそらく存在する。 .I oldpath -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ (symbolic link) ¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ -¥ê¥ó¥¯¤Î̾Á°¤¬Êѹ¹¤µ¤ì¤ë¡£ -¤Þ¤¿¡¢ +がシンボリック・リンク (symbolic link) を参照している場合は、 +リンクの名前が変更される。 +また、 .I newpath -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¥ê¥ó¥¯¤¬¾å½ñ¤­¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +がシンボリック・リンクを参照している場合は、リンクが上書きされる。 +.SH 返り値 +成功した場合は 0 を返す。エラーの場合は \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切に設定する。 +.SH エラー .TP .B EACCES -.IR oldpath " ¤Þ¤¿¤Ï " newpath -¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î½ñ¤­¹þ¤ßµö²Ä¤¬¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢ -.IR oldpath " ¤Þ¤¿¤Ï " newpath -¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤Î¤É¤ì¤«¤Ë¸¡º÷µö²Ä¤¬¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢ +.IR oldpath " または " newpath +を含んでいるディレクトリの書き込み許可がない。 +または、 +.IR oldpath " または " newpath +のディレクトリ部分のどれかに検索許可がない。 +または、 .I oldpath -¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç +がディレクトリで .RI ( .. -¥¨¥ó¥È¥ê¤ò¹¹¿·¤¹¤ë¤Î¤ËɬÍפÊ) ½ñ¤­¹þ¤ßµö²Ä¤¬¤Ê¤¤ +エントリを更新するのに必要な) 書き込み許可がない .RB ( path_resolution (7) -¤â»²¾È)¡£ +も参照)。 .TP .B EBUSY -.IR oldpath " ¤Þ¤¿¤Ï " newpath -¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¡¢²¿¤é¤«¤Î¥×¥í¥»¥¹¤¬»ÈÍÑÃæ -(¿ʬ¡¢¥«¥ì¥ó¥È¡¦¥ï¡¼¥­¥ó¥°¡¦¥Ç¥£¥ì¥¯¥È¥ê¤«¡¢¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤«¡¢ -Æɤ߹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¤«¤Ç¤í¤¦) -¤â¤·¤¯¤Ï¡¢¥·¥¹¥Æ¥à¤¬»ÈÍÑÃæ (Î㤨¤Ð¥Þ¥¦¥ó¥È¡¦¥Ý¥¤¥ó¥È¤Ç¤¢¤ë) -¤Ç¤¢¤ê¡¢¥·¥¹¥Æ¥à¤¬¤³¤ì¤ò¥¨¥é¡¼¤Ç¤¢¤ë¤ÈȽÃǤ·¤¿¤¿¤á¤Ë rename ¤¬¼ºÇÔ¤·¤¿¡£ -(¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ë +.IR oldpath " または " newpath +がディレクトリで、何らかのプロセスが使用中 +(多分、カレント・ワーキング・ディレクトリか、ルートディレクトリか、 +読み込みのためにオープンされているかでろう) +もしくは、システムが使用中 (例えばマウント・ポイントである) +であり、システムがこれをエラーであると判断したために rename が失敗した。 +(このような場合に .B EBUSY -¤òÊÖ¤¹¤³¤È¤Ïµ¬³Ê¤Ç¤ÏÍ׵ᤵ¤ì¤Æ¤¤¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¡¢rename ¤ò¤È¤Ë¤«¤¯¼Â¹Ô¤·¤Æ¤ß¤ë¤Î¤Ï²¿¤ÎÌäÂê¤â¤Ê¤¤¡£ -¤¿¤À¤·¡¢¤½¤Î¤è¤¦¤Ê¾õ¶·¤Ç¡¢¥·¥¹¥Æ¥à¤¬Â¾¤ËÊÖ¤¹¥¨¥é¡¼¤¬¤Ê¤¤¾ì¹ç¤Ë¤Ï +を返すことは規格では要求されていない点に注意すること。 +このような場合に、rename をとにかく実行してみるのは何の問題もない。 +ただし、そのような状況で、システムが他に返すエラーがない場合には .B EBUSY -¤òÊÖ¤¹¤³¤È¤¬µö¤µ¤ì¤Æ¤¤¤ë¡£) +を返すことが許されている。) .TP .B EFAULT -.IR oldpath " ¤Þ¤¿¤Ï " newpath -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +.IR oldpath " または " newpath +がアクセス可能なアドレス空間の外を指している。 .TP .B EINVAL -.IR newpath " ¤¬ " oldpath -¤Î¥Ñ¥¹Éôʬ¤ò´Þ¤ó¤Ç¤¤¤ë¡£¥Ç¥£¥ì¥¯¥È¥ê¤ò¼«Ê¬¼«¿È¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë -Êѹ¹¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤¬¤Û¤È¤ó¤É¤Ç¤¢¤ë¡£ +.IR newpath " が " oldpath +のパス部分を含んでいる。ディレクトリを自分自身のサブディレクトリに +変更しようとした場合がほとんどである。 .TP .B EISDIR .I newpath -¤Ï¸ºß¤·¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¤¬¡¢ +は存在しているディレクトリであるが、 .I oldpath -¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +はディレクトリでない。 .TP .B ELOOP -.IR oldpath " ¤Þ¤¿¤Ï " newpath -¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ +.IR oldpath " または " newpath +を解決する際に遭遇したシンボリック・リンクが多過ぎる。 .TP .B EMLINK .I oldpath -¤Ï´û¤ËºÇÂç¿ô¤Þ¤Ç¤Î¥ê¥ó¥¯¤ò»ý¤Ã¤Æ¤¤¤ë¤«¡¢¤½¤ì¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç +は既に最大数までのリンクを持っているか、それがディレクトリで .I newpath -¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤¬ºÇÂç¿ô¤Þ¤Ç¤Î¥ê¥ó¥¯¤ò»ý¤Ã¤Æ¤¤¤ë¡£ +を含んでいるディレクトリが最大数までのリンクを持っている。 .TP .B ENAMETOOLONG -.IR oldpath " ¤Þ¤¿¤Ï " newpath " ¤¬Ä¹²á¤®¤ë¡£" +.IR oldpath " または " newpath " が長過ぎる。" .TP .B ENOENT .I oldpath -¤È¤¤¤¦Ì¾Á°¤Î¥ê¥ó¥¯¤¬Â¸ºß¤·¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢ +という名前のリンクが存在しない。 +または、 .I newpath -¤È¤¤¤¦¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢ +というディレクトリが存在しない。 +または、 .I oldpath -¤« +か .I newpath -¤¬¶õ¤Îʸ»úÎó¤Ç¤¢¤ë¡£ +が空の文字列である。 .TP .B ENOMEM -¥«¡¼¥Í¥ë¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬Â¸ºß¤·¤Ê¤¤¡£ +カーネルに十分なメモリが存在しない。 .TP .B ENOSPC -¥Õ¥¡¥¤¥ë¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥Ð¥¤¥¹¤Ë¿·¤·¤¤¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤ò -ºîÀ®¤¹¤ë¤¿¤á¤Î¶õ¤­¤¬¤Ê¤¤¡£ +ファイルを含んでいるデバイスに新しいディレクトリ・エントリを +作成するための空きがない。 .TP .B ENOTDIR -.IR oldpath " ¤« " newpath -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬ -¼ÂºÝ¤Ë¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ -¤Þ¤¿¤Ï +.IR oldpath " か " newpath +に含まれているディレクトリ部分が +実際にはディレクトリでない。 +または .I oldpath -¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¡¢ +がディレクトリで、 .I newpath -¤¬Â¸ºß¤·¤Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +が存在してディレクトリでない。 .TP -.B ENOTEMPTY " ¤Þ¤¿¤Ï " EEXIST +.B ENOTEMPTY " または " EEXIST .I newpath -¤¬¶õ¤Ç¤Ê¤¤¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¡£¤¹¤Ê¤ï¤Á "." ¤È ".." °Ê³°¤ò´Þ¤ó¤Ç¤¤¤ë¡£ +が空でないディレクトリである。すなわち "." と ".." 以外を含んでいる。 .TP -.BR EPERM " ¤Þ¤¿¤Ï " EACCES +.BR EPERM " または " EACCES .I oldpath -¤Î¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È (sticky bit) +のあるディレクトリにスティッキー・ビット (sticky bit) .RB ( S_ISVTX ) -¤¬ÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢ -¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ -ºï½ü¤·¤è¤¦¤È¤¹¤ë¥Õ¥¡¥¤¥ë¤Î¥æ¡¼¥¶¡¼ ID ¤È -¤½¤Î¥Õ¥¡¥¤¥ë¤ò´Þ¤à¥Ç¥£¥ì¥¯¥È¥ê¤Î¥æ¡¼¥¶¡¼ ID ¤Î¤¤¤º¤ì¤È¤â°ìÃפ»¤º¡¢¤«¤Ä -¥×¥í¥»¥¹¤ËÆø¢¤¬¤Ê¤¤ (Linux ¤Ç¤Ï +が設定されており、 +プロセスの実効ユーザー ID が +削除しようとするファイルのユーザー ID と +そのファイルを含むディレクトリのユーザー ID のいずれとも一致せず、かつ +プロセスに特権がない (Linux では .B CAP_FOWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤¬¤Ê¤¤)¡£ -¤Þ¤¿¤Ï¡¢ +ケーパビリティ (capability) がない)。 +または、 .I newpath -¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¤Ç¡¢¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥¹¥Æ¥£¥Ã¥­¡¼¥Ó¥Ã¥È¤¬ÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢ -¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ -ÃÖ¤­´¹¤¨¤è¤¦¤È¤¹¤ë¥Õ¥¡¥¤¥ë¤Î¥æ¡¼¥¶¡¼ ID ¤È -¤½¤Î¥Õ¥¡¥¤¥ë¤ò´Þ¤à¥Ç¥£¥ì¥¯¥È¥ê¤Î¥æ¡¼¥¶¡¼ ID ¤Î¤¤¤º¤ì¤È¤â°ìÃפ»¤º¡¢¤«¤Ä -¥×¥í¥»¥¹¤ËÆø¢¤¬¤Ê¤¤ (Linux ¤Ç¤Ï +がすでに存在するファイルで、親ディレクトリにスティッキービットが設定されており、 +プロセスの実効ユーザー ID が +置き換えようとするファイルのユーザー ID と +そのファイルを含むディレクトリのユーザー ID のいずれとも一致せず、かつ +プロセスに特権がない (Linux では .B CAP_FOWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¤Ê¤¤)¡£ -¤Þ¤¿¤Ï -.IR oldpath " ¤È " newpath -¤¬Â¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤¬¡¢Í׵ᤵ¤ì¤¿¼ïÎà¤Î̾Á°¤ÎÊѹ¹¤ò -¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +ケーパビリティがない)。 +または +.IR oldpath " と " newpath +が存在するファイル・システムが、要求された種類の名前の変更を +サポートしていない。 .TP .B EROFS -¥Õ¥¡¥¤¥ë¤¬Æɤ߹þ¤ßÀìÍÑ (read-only) ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë¤¢¤ë¡£ +ファイルが読み込み専用 (read-only) ファイル・システムにある。 .TP .B EXDEV -.IR oldpath " ¤È " newpath -¤¬Æ±¤¸¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë¸ºß¤·¤Ê¤¤¡£ -(Linux ¤Ï 1 ¤Ä¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤òÊ£¿ô¤Î¥Þ¥¦¥ó¥È°ÌÃÖ¤Ë -¥Þ¥¦¥ó¥È¤¹¤ë¤³¤È¤òµö²Ä¤·¤Æ¤¤¤ë¡£ -¤·¤«¤· +.IR oldpath " と " newpath +が同じマウントされたファイル・システムに存在しない。 +(Linux は 1 つのファイル・システムを複数のマウント位置に +マウントすることを許可している。 +しかし .BR rename () -¤Ï¡¢¤¿¤È¤¨Æ±¤¸¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ç¤¢¤Ã¤Æ¤â¡¢ -ÊÌ¡¹¤Î¥Þ¥¦¥ó¥È°ÌÃÖ¤ò¸Ù¤¤¤Ç¤ÏÆ°ºî¤·¤Ê¤¤¡£) -.SH ½àµò +は、たとえ同じファイル・システムであっても、 +別々のマウント位置を跨いでは動作しない。) +.SH 準拠 4.3BSD, C89, C99, POSIX.1-2001. -.SH ¥Ð¥° -NFS ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ç¤Ï¡¢Áàºî¤¬¼ºÇÔ¤·¤¿¤«¤é¤È¤¤¤Ã¤Æ¡¢ -¥Õ¥¡¥¤¥ë¤Î̾Á°¤¬Êѹ¹¤Ç¤­¤Ê¤«¤Ã¤¿¤È·è¤á¤Æ¤«¤«¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -¥µ¡¼¥Ð¤¬ rename Áàºî¤ò½ª¤¨¤Æ¤«¤é¥¯¥é¥Ã¥·¥å¤·¤¿¾ì¹ç¡¢ -¥µ¡¼¥Ð¤¬ºÆ¤ÓΩ¤Á¾å¤¬¤Ã¤¿¤È¤­¤Ë¡¢ -ºÆÁ÷¿®¤µ¤ì¤¿ RPC ¤¬½èÍý¤µ¤ì¤ë¤¬¡¢¤³¤ì¤Ï¼ºÇԤȤʤ롣 -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¤³¤ÎÌäÂê¤òÀµ¤·¤¯¼è¤ê°·¤¦¤³¤È¤¬´üÂÔ¤µ¤ì¤Æ¤¤¤ë¡£ -ƱÍͤÎÌäÂê¤Ë¤Ä¤¤¤Æ +.SH バグ +NFS ファイル・システムでは、操作が失敗したからといって、 +ファイルの名前が変更できなかったと決めてかかることはできない。 +サーバが rename 操作を終えてからクラッシュした場合、 +サーバが再び立ち上がったときに、 +再送信された RPC が処理されるが、これは失敗となる。 +アプリケーションはこの問題を正しく取り扱うことが期待されている。 +同様の問題について .BR link (2) -¤Ë¤â½ñ¤«¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +にも書かれている。 +.SH 関連項目 .BR mv (1), .BR chmod (2), .BR link (2), diff --git a/release/man2/renameat.2 b/release/man2/renameat.2 index c1932053..807eac69 100644 --- a/release/man2/renameat.2 +++ b/release/man2/renameat.2 @@ -27,11 +27,11 @@ .\" Translated 2006-09-05 by Yuichi SATO , LDP v2.39 .\" .TH RENAMEAT 2 2009-12-13 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -renameat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÁêÂÐŪ¤Ê°ÌÃ֤ˤ¢¤ë¥Õ¥¡¥¤¥ë¤Î̾Á°¤òÊѹ¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +renameat \- ディレクトリファイルディスクリプタから相対的な位置にあるファイルの名前を変更する +.SH 書式 .nf -.B #include /* AT_* Äê¿ô¤ÎÄêµÁ */ +.B #include /* AT_* 定数の定義 */ .B #include .sp .BI "int renameat(int " olddirfd ", const char *" oldpath , @@ -39,9 +39,9 @@ renameat \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR renameat (): @@ -49,95 +49,95 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR renameat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë°ã¤¤¤¬¤¢¤ë°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明している違いがある以外は、 .BR rename (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .I oldpath -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パスである場合、 +ファイルディスクリプタ .I olddirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( rename (2) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤Î -ÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスのカレントワーキングディレクトリからの +相対パスとなる)。 .I oldpath -¤¬ÁêÂХѥ¹¤Ç¤¢¤ê¡¢¤«¤Ä +が相対パスであり、かつ .I olddirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I oldpath -¤Ï +は .RB ( rename (2) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .I oldpath -¤¬ÀäÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ +が絶対パスである場合、 .I olddirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .I newpath -¤Î²ò¼á¤Ï +の解釈は .I oldpath -¤ÈƱÍͤǤ¢¤ë¤¬¡¢ -ÁêÂХѥ¹Ì¾¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +と同様であるが、 +相対パス名はファイルディスクリプタ .I newdirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +で参照されるディレクトリからの相対パス名として解釈される。 +.SH 返り値 +成功した場合、 .BR renameat () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +は 0 を返す。 +エラーの場合、\-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +にはエラーを示す値が設定される。 +.SH エラー .BR rename (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR renameat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .BR renameat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .I olddirfd -¤Þ¤¿¤Ï +または .I newdirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B ENOTDIR .I oldpath -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I olddirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ -¤Þ¤¿¤Ï +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 +または .I newpath -¤È +と .I newdirfd -¤Ë¤Ä¤¤¤Æ¡¢Æ±ÍͤΤ³¤È¤¬µ¯¤­¤Æ¤¤¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +について、同様のことが起きている。 +.SH バージョン .BR renameat () -¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ -.SH ½àµò +は Linux カーネル 2.6.16 で追加された。 +.SH 準拠 POSIX.1-2008. -.SH Ãí°Õ +.SH 注意 .BR renameat () -¤¬É¬ÍפÊÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が必要な理由については、 .BR openat (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を参照すること。 +.SH 関連項目 .BR openat (2), .BR rename (2), .BR path_resolution (7) diff --git a/release/man2/rmdir.2 b/release/man2/rmdir.2 index 7635182f..6b9dcf87 100644 --- a/release/man2/rmdir.2 +++ b/release/man2/rmdir.2 @@ -35,124 +35,124 @@ .\" Updated 2006-07-23, Akihiro MOTOKI, LDP v2.36 .\" Updated 2008-08-06, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: directory ¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: file system ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à -.\"WORD: sticky bit ¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È -.\"WORD: dangling symbolic link ²õ¤ì¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: working directory ¥ï¡¼¥­¥ó¥°¡¦¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: root directory ¥ë¡¼¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: effective uid ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: sticky bit ¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È -.\"WORD: read-only Æɤ߹þ¤ßÀìÍÑ -.\"WORD: uid ¥æ¡¼¥¶¡¼ID -.\"WORD: entry ¥¨¥ó¥È¥ê -.\"WORD: memory ¥á¥â¥ê +.\"WORD: directory ディレクトリ +.\"WORD: file system ファイル・システム +.\"WORD: sticky bit スティッキー・ビット +.\"WORD: dangling symbolic link 壊れたシンボリック・リンク +.\"WORD: working directory ワーキング・ディレクトリ +.\"WORD: root directory ルート・ディレクトリ +.\"WORD: effective uid 実効ユーザーID +.\"WORD: sticky bit スティッキー・ビット +.\"WORD: read-only 読み込み専用 +.\"WORD: uid ユーザーID +.\"WORD: entry エントリ +.\"WORD: memory メモリ .\" .TH RMDIR 2 2008-05-08 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -rmdir \- ¥Ç¥£¥ì¥¯¥È¥ê¤òºï½ü¤¹¤ë -.SH ½ñ¼° +.SH 名前 +rmdir \- ディレクトリを削除する +.SH 書式 .B #include .sp .BI "int rmdir(const char *" pathname ); -.SH ÀâÌÀ +.SH 説明 .BR rmdir () -¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤òºï½ü¤¹¤ë¡£ºï½ü¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ï¶õ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï¥¼¥í¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +はディレクトリを削除する。削除するディレクトリは空でなければならない。 +.SH 返り値 +成功した場合はゼロが返される。エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EACCES .I pathname -¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ø¤Î½ñ¤­¹þ¤ß¥¢¥¯¥»¥¹¤¬ -¥×¥í¥»¥¹¤Î¼Â¸ú (effective) UID ¤ËÂФ·¤Æµö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ +を含んでいるディレクトリへの書き込みアクセスが +プロセスの実効 (effective) UID に対して許可されていないか、 .I pathname -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¤É¤ì¤«¤Ë¸¡º÷ (¼Â¹Ô) µö²Ä¤¬¤Ê¤¤¤«¡¢ +に含まれているディレクトリのどれかに検索 (実行) 許可がないか、 .I pathname -¤Ë»ê¤ë¤Þ¤Ç¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¤¤¤º¤ì¤«¤ËÂФ¹¤ë¸¡º÷µö²Ä¤¬¤Ê¤«¤Ã¤¿¡£ +に至るまでのディレクトリのいずれかに対する検索許可がなかった。 .RB ( path_resolution (7) -¤â»²¾È¤Î¤³¤È) +も参照のこと) .TP .B EBUSY .I pathname -¤¬¥·¥¹¥Æ¥à¤äÊÌ¤Î¥×¥í¥»¥¹¤Ë¤è¤ê»ÈÍÑÃæ¤Çºï½ü¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ -Linux ¤Ç¤Ï¡¢ +がシステムや別のプロセスにより使用中で削除することができない。 +Linux では、 .I pathname -¤¬¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤È¤·¤Æ»ÈÍѤµ¤ì¤Æ¤¤¤ë¤«¡¢ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +がマウントポイントとして使用されているか、 +呼び出したプロセスのルートディレクトリであることを意味する。 .TP .B EFAULT .I pathname -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がアクセス可能なアドレス空間の外を指している。 .TP .B EINVAL .I pathname -¤ÎºÇ¸å¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬ +の最後のディレクトリ部分が .I . -¤Ç¤¢¤ë¡£ +である。 .TP .B ELOOP .I pathname -¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ +を解決する際に遭遇したシンボリック・リンクが多過ぎる。 .TP .B ENAMETOOLONG .I pathname -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENOENT .I pathname -¤ÎÃæ¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢²õ¤ì¤¿ (dangling) -¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ (symbolic link) ¤Ç¤¢¤ë¡£ +の中のディレクトリ部分が存在しないか、壊れた (dangling) +シンボリック・リンク (symbolic link) である。 .TP .B ENOMEM -½½Ê¬¤Ê¥«¡¼¥Í¥ë¤Î¥á¥â¥ê¤¬¤Ê¤¤¡£ +十分なカーネルのメモリがない。 .TP .B ENOTDIR .I pathname -¤« +か .I pathname -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬¡¢¼ÂºÝ¤Ë¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +に含まれているディレクトリ部分が、実際には、ディレクトリでない。 .TP .B ENOTEMPTY -¥Ç¥£¥ì¥¯¥È¥ê +ディレクトリ .I pathname -¤Ë -.IR . " ¤È " .. -°Ê³°¤Î¥¨¥ó¥È¥ê¤¬¤¢¤ë¡£¤Þ¤¿¤Ï¡¢ +に +.IR . " と " .. +以外のエントリがある。または、 .I pathname -¤ò¹½À®¤¹¤ëºÇ¸å¤ÎÍ×ÁǤ¬ +を構成する最後の要素が .I .. -¤Ç¤¢¤ë¡£ -POSIX.1-2001 ¤Ï¡¢¤³¤Î¾õ¶·¤Ç +である。 +POSIX.1-2001 は、この状況で .B EEXIST -¤òÊÖ¤¹¤³¤È¤òǧ¤á¤Æ¤¤¤ë¡£ +を返すことを認めている。 .TP .B EPERM .I pathname -¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È(sticky-bit) +を含んでいるディレクトリにスティッキー・ビット(sticky-bit) .RB ( S_ISVTX ) -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Æ¡¢¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶¡¼ID ¤¬ºï½ü¤·¤è¤¦¤È¤¹¤ë¥Õ¥¡¥¤¥ë¤Î -¥æ¡¼¥¶ID ¤È¤½¤Î¥Õ¥¡¥¤¥ë¤ò´Þ¤à¥Ç¥£¥ì¥¯¥È¥ê¤Î¥æ¡¼¥¶¡¼ID ¤Î¤É¤Á¤é¤È¤â°Û¤Ê¤ê¡¢ -¥×¥í¥»¥¹¤â¸¢¸Â (Linux ¤Ç¤Ï +が設定されていて、プロセスの実効ユーザーID が削除しようとするファイルの +ユーザID とそのファイルを含むディレクトリのユーザーID のどちらとも異なり、 +プロセスも権限 (Linux では .B CAP_FOWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤¬¤Ê¤¤¡£ +ケーパビリティ) がない。 .TP .B EPERM .I pathname -¤ò´Þ¤ó¤Ç¤¤¤ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Î -ºï½ü¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +を含んでいるファイル・システムがディレクトリの +削除をサポートしていない。 .TP .B EROFS .I pathname -¤¬Æɤ߹þ¤ßÀìÍѤΥե¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¾å¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤·¤Æ¤¤¤ë¡£ -.SH ½àµò +が読み込み専用のファイル・システム上のディレクトリを参照している。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -.SH ¥Ð¥° -NFS ¥×¥í¥È¥³¥ë¤ËÀøºß¤·¤Æ¤¤¤ë·ç´Ù¤Ë¤è¤Ã¤Æ¡¢¤Þ¤À»ÈÍÑÃæ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤¬ -ÆÍÁ³¾ÃÌǤ¹¤ë¸½¾Ý¤¬°ú¤­µ¯¤³¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +.SH バグ +NFS プロトコルに潜在している欠陥によって、まだ使用中のディレクトリが +突然消滅する現象が引き起こされることがある。 +.SH 関連項目 .BR rm (1), .BR rmdir (1), .BR chdir (2), diff --git a/release/man2/sched_get_priority_max.2 b/release/man2/sched_get_priority_max.2 index 7a3e3e45..6ea1977e 100644 --- a/release/man2/sched_get_priority_max.2 +++ b/release/man2/sched_get_priority_max.2 @@ -32,86 +32,86 @@ .\" Translated 1997-02-23, HANATAKA Shinya .\" Updated 2006-04-14, Akihiro MOTOKI , LDP v2.29 .\" -.\"WORD: static ÀÅŪ -.\"WORD: priority ¥×¥é¥¤¥ª¥ê¥Æ¥£ -.\"WORD: scheduling ¥¹¥±¥¸¥å¡¼¥ê¥ó¥° -.\"WORD: algorithm ¥¢¥ë¥´¥ê¥º¥à -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: portable °Ü¿¢À­¤Î¤¢¤ë -.\"WORD: policy Êý¿Ë +.\"WORD: static 静的 +.\"WORD: priority プライオリティ +.\"WORD: scheduling スケジューリング +.\"WORD: algorithm アルゴリズム +.\"WORD: process プロセス +.\"WORD: portable 移植性のある +.\"WORD: policy 方針 .\" .TH SCHED_GET_PRIORITY_MAX 2 2006-03-23 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sched_get_priority_max, sched_get_priority_min \- ÀÅŪ¥×¥é¥¤¥ª¥ê¥Æ¥£¤ÎÈϰϤò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +sched_get_priority_max, sched_get_priority_min \- 静的プライオリティの範囲を取得する +.SH 書式 .B #include .sp .BI "int sched_get_priority_max(int " policy ); .sp .BI "int sched_get_priority_min(int " policy ); -.SH ÀâÌÀ +.SH 説明 .BR sched_get_priority_max () -¤Ï\fIpolicy\fP ¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤Î¥¢¥ë¥´¥ê¥º¥à¤Ç -»ÈÍѤµ¤ì¤ë¥×¥é¥¤¥ª¥ê¥Æ¥£¤ÎºÇÂçÃͤòÊÖ¤¹¡£ +は\fIpolicy\fP によって指定されたスケジューリングのアルゴリズムで +使用されるプライオリティの最大値を返す。 .BR sched_get_priority_min () -¤Ï\fIpolicy\fP ¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤Î¥¢¥ë¥´¥ê¥º¥à¤Ç -»ÈÍѤµ¤ì¤ë¥×¥é¥¤¥ª¥ê¥Æ¥£¤ÎºÇ¾®ÃͤòÊÖ¤¹¡£ -¥µ¥Ý¡¼¥È¤µ¤ì¤ë \fIpolicy\fP ¤ÎÃÍ¤Ï -.BR SCHED_FIFO ¡¢ -.BR SCHED_RR ¡¢ -.BR SCHED_OTHER ¡¢ +は\fIpolicy\fP によって指定されたスケジューリングのアルゴリズムで +使用されるプライオリティの最小値を返す。 +サポートされる \fIpolicy\fP の値は +.BR SCHED_FIFO 、 +.BR SCHED_RR 、 +.BR SCHED_OTHER 、 .B SCHED_BATCH -¤Ç¤¢¤ë¡£¤³¤ì¤é¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Êý¿Ë¤Ë´Ø¤¹¤ë¾ÜºÙ¤Ï +である。これらのスケジューリング方針に関する詳細は .BR sched_setscheduler (2) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ +に書かれている。 -¿ôÃÍŪ¤ËÂ礭¤Ê¥×¥é¥¤¥ª¥ê¥Æ¥£Ãͤò»ý¤Ä¥×¥í¥»¥¹¤Ï¾®¤µ¤Ê -¥×¥é¥¤¥ª¥ê¥Æ¥£Ãͤò»ý¤Ä¥×¥í¥»¥¹¤è¤êÁ°¤Ë¥¹¥±¥¸¥å¡¼¥ë¤µ¤ì¤ë¡£ -¤³¤Î¤¿¤á +数値的に大きなプライオリティ値を持つプロセスは小さな +プライオリティ値を持つプロセスより前にスケジュールされる。 +このため .BR sched_get_priority_max () -¤¬ÊÖ¤¹ÃÍ¤Ï +が返す値は .BR sched_get_priority_min () -¤¬ÊÖ¤¹Ãͤè¤ê¤âÂ礭¤¤¡£ +が返す値よりも大きい。 -Linux ¤Ç¤Ï \fBSCHED_FIFO\fP ¤È \fBSCHED_RR\fP ¤Ç¤Ï 1 ¤«¤é 99 ¤ÎÈϰϤΠ-ÀÅŪ¥×¥é¥¤¥ª¥ê¥Æ¥£¡¼¤ò»ý¤Á¡¢\fBSCHED_OTHER\fP ¤È \fBSCHED_BATCH\fP ¤Ç¤Ï -¥×¥é¥¤¥ª¥ê¥Æ¥£¤È¤·¤Æ 0 ¤ò»ý¤Ä¡£ -¤½¤ì¤¾¤ì¤ÎÊý¿Ë¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥×¥é¥¤¥ª¥ê¥Æ¥£¤ÎÈÏ°Ï¤Ï -Êѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +Linux では \fBSCHED_FIFO\fP と \fBSCHED_RR\fP では 1 から 99 の範囲の +静的プライオリティーを持ち、\fBSCHED_OTHER\fP と \fBSCHED_BATCH\fP では +プライオリティとして 0 を持つ。 +それぞれの方針のスケジューリング・プライオリティの範囲は +変更することができない。 -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥×¥é¥¤¥ª¥ê¥Æ¥£¤ÎÈϰϤϾ¤Î POSIX ¥·¥¹¥Æ¥à¤È -°Û¤Ê¤Ã¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£¤½¤ì¤Ç¡¢°Ü¿¢À­(portable)¤Î¤¢¤ë -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï²¾ÁÛŪ¤ÊÈϰϤòÍѤ¤ +スケジューリング・プライオリティの範囲は他の POSIX システムと +異なっているかもしれない。それで、移植性(portable)のある +アプリケーションでは仮想的な範囲を用い .BR sched_get_priority_max () -¤È +と .BR sched_get_priority_min () -¤ÇÍ¿¤¨¤é¤ì¤¿´Ö³Ö¤Ë¥Þ¥Ã¥×¤·¤Æ»ÈÍѤ¹¤ë¤³¤È¤Ï¤¤¤¤¹Í¤¨¤Ç¤¢¤ë¡£ -POSIX.1-2001 ¤Ç¤Ï \fBSCHED_FIFO\fP ¤È \fBSCHED_RR\fP ¤Ë¤ª¤±¤ë -ºÇÂçÃͤȺǾ®Ãͤδֳ֤ò¾¯¤Ê¤¯¤È¤â 32 ¤Ë¤¹¤ë¤³¤È¤òÍ׵ᤷ¤Æ¤¤¤ë¡£ +で与えられた間隔にマップして使用することはいい考えである。 +POSIX.1-2001 では \fBSCHED_FIFO\fP と \fBSCHED_RR\fP における +最大値と最小値の間隔を少なくとも 32 にすることを要求している。 -POSIX ¥·¥¹¥Æ¥à¤Ç¤Ï +POSIX システムでは .BR sched_get_priority_max () -¤È +と .BR sched_get_priority_min () -¤Ï \fI\fP ¤Ë +は \fI\fP に .B _POSIX_PRIORITY_SCHEDULING -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Î¤ß»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï +が定義されている場合にのみ使用可能である。 +.SH 返り値 +成功した場合は .BR sched_get_priority_max () -¤È +と .BR sched_get_priority_min () -¤Ï»ØÄꤵ¤ì¤¿¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Êý¿Ë¤Î¥×¥é¥¤¥ª¥ê¥Æ¥£¤ÎºÇÂçÃÍ/ºÇ¾®ÃͤòÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +は指定されたスケジューリング方針のプライオリティの最大値/最小値を返す。 +エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EINVAL -°ú¤­¿ô \fIpolicy\fP ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Êý¿Ë¤È°ìÃפ·¤Ê¤¤¡£ -.SH ½àµò +引き数 \fIpolicy\fP が定義されているスケジューリング方針と一致しない。 +.SH 準拠 POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sched_getaffinity (2), .BR sched_getparam (2) .BR sched_getscheduler (2), diff --git a/release/man2/sched_rr_get_interval.2 b/release/man2/sched_rr_get_interval.2 index 526f2454..22b6849c 100644 --- a/release/man2/sched_rr_get_interval.2 +++ b/release/man2/sched_rr_get_interval.2 @@ -33,27 +33,27 @@ .\" Updated 2003-10-11, Kentaro Shirakata .\" Updated 2007-05-28, Akihiro MOTOKI , LDP v2.48 .\" -.\"WORD: interval ´Ö³Ö -.\"WORD: round robin ¥é¥¦¥ó¥É¡¦¥í¥Ó¥ó -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: scheduling ¥¹¥±¥¸¥å¡¼¥ê¥ó¥° -.\"WORD: policy Êý¿Ë -.\"WORD: implement ¼ÂÁõ +.\"WORD: interval 間隔 +.\"WORD: round robin ラウンド・ロビン +.\"WORD: process プロセス +.\"WORD: scheduling スケジューリング +.\"WORD: policy 方針 +.\"WORD: implement 実装 .\" .TH SCHED_RR_GET_INTERVAL 2 2007-04-06 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sched_rr_get_interval \- »ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤Î SCHED_RR ´Ö³Ö¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +sched_rr_get_interval \- 指定されたプロセスの SCHED_RR 間隔を取得する +.SH 書式 .B #include .sp .BI "int sched_rr_get_interval(pid_t " pid ", struct timespec *" tp ); -.SH ÀâÌÀ +.SH 説明 .BR sched_rr_get_interval () -¤Ï \fItp\fP ¤Ç»ØÄꤵ¤ì¤¿ \fItimespec\fP ¹½Â¤ÂÎ¤Ë -\fIpid\fP ¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤Î¥é¥¦¥ó¥É¡¦¥í¥Ó¥ó»þ´ÖÎÌ -(round robin time quantum) ¤ò½ñ¤­¹þ¤à¡£ +は \fItp\fP で指定された \fItimespec\fP 構造体に +\fIpid\fP で指定されたプロセスのラウンド・ロビン時間量 +(round robin time quantum) を書き込む。 -\fItimespec\fP ¹½Â¤ÂΤϰʲ¼¤ÎÄ̤ê¤Ç¤¢¤ë: +\fItimespec\fP 構造体は以下の通りである: .in +4n .nf @@ -64,47 +64,47 @@ struct timespec { .fi .in -\fIpid\fP ¤¬¥¼¥í¤Î¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î»þ´ÖÎ̤¬ -\fI*tp\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£»ØÄꤷ¤¿¥×¥í¥»¥¹¤Ï +\fIpid\fP がゼロの場合、呼び出したプロセスの時間量が +\fI*tp\fP に書き込まれる。指定したプロセスは .B SCHED_RR -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Êý¿Ë¤Ç²ÔÆ°¤·¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ +スケジューリング方針で稼動している必要がある。 .\" FIXME . On Linux, sched_rr_get_interval() .\" returns the timeslice for SCHED_OTHER processes -- this timeslice .\" is influenced by the nice value. .\" For SCHED_FIFO processes, this always returns 0. .\" -.\" ¥é¥¦¥ó¥É¡¦¥í¥Ó¥ó»þ´ÖÎÌ¤Ï Linux 1.3.81 ¤Ç¤ÏÊѹ¹¤Ç¤­¤Ê¤¤¡£ +.\" ラウンド・ロビン時間量は Linux 1.3.81 では変更できない。 .\" .BR sched_rr_get_interval () -¤Î»ÈÍѲÄǽ¤Ê POSIX ¥·¥¹¥Æ¥à¤Ç¤Ï +の使用可能な POSIX システムでは .I -¤Ç +で .B _POSIX_PRIORITY_SCHEDULING -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï +が定義されている。 +.SH 返り値 +成功した場合は .BR sched_rr_get_interval () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +は 0 を返す。 +エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EFAULT -¾ðÊó¤ò¥æ¡¼¥¶¶õ´Ö¤Ë¥³¥Ô¡¼¤¹¤ë»þ¤ËÌäÂ꤬µ¯¤­¤¿¡£ +情報をユーザ空間にコピーする時に問題が起きた。 .TP .B EINVAL -PID ¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +PID が不正である。 .TP .B ENOSYS -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤¬¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤ (¤«¤Ê¤ê¸Å¤¤¥«¡¼¥Í¥ë¤Ë¤ª¤¤¤Æ¤Î¤ß)¡£ +システム・コールがまだ実装されていない (かなり古いカーネルにおいてのみ)。 .TP .B ESRCH -\fIpid\fP ¤Î ID ¤ò»ý¤Ä¥×¥í¥»¥¹¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£ -.SH ½àµò +\fIpid\fP の ID を持つプロセスが見つからなかった。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ -.SS Linux ¤Ç¤ÎÃí°Õ +.SH 注意 +.SS Linux での注意 .\" FIXME .\" From at least Linux 2.6.9, the following is no longer true .\" for SCHED_RR processes. For RR processes the timeslice is always @@ -112,25 +112,25 @@ POSIX.1-2001. .\" Was the following really true for older kernels? .\" Must build a 2.6.8 kernel and retest, and rewrite the following text .\" appropriately. -POSIX ¤Ç¤Ï¥é¥¦¥ó¥É¡¦¥í¥Ó¥ó»þ´ÖÎ̤ÎÂ礭¤µ¤òÀ©¸æ¤¹¤ë»ÅÁȤߤ¬µ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤·¤«¤·¡¢Linux ¤Ç¤Ï¤³¤ì¤òÊѹ¹¤¹¤ëÊýË¡¤¬Ä󶡤µ¤ì¤Æ¤ª¤ê (¤³¤ÎÊýË¡¤Ë°Ü¿¢À­¤Ï¤Ê¤¤)¡¢ -¥×¥í¥»¥¹¤Î nice ÃͤòÄ´À°¤¹¤ë¤³¤È¤Ç»þ´ÖÎ̤òÀ©¸æ¤Ç¤­¤ë +POSIX ではラウンド・ロビン時間量の大きさを制御する仕組みが規定されていない。 +しかし、Linux ではこれを変更する方法が提供されており (この方法に移植性はない)、 +プロセスの nice 値を調整することで時間量を制御できる .RB ( setpriority (2) -»²¾È)¡£ -Éé¤Î nice ÃÍ (¤¹¤Ê¤ï¤Á¡¢¹â¤¤ nice ÃÍ) ¤ò³ä¤êÅö¤Æ¤ë¤È»þ´ÖÎ̤ÏŤ¯¤Ê¤ê¡¢ -Àµ¤Î nice ÃÍ (¤¹¤Ê¤ï¤Á¡¢Ä㤤 nice ÃÍ) ¤ò³ä¤êÅö¤Æ¤ë¤È»þ´ÖÎ̤Ïû¤¯¤Ê¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Î»þ´ÖÎÌ¤Ï 0.1 ÉäǤ¢¤ë¡£ -nice ÃͤÎÊѹ¹¤¬»þ´ÖÎ̤ˤɤÎÄøÅٱƶÁ¤òÍ¿¤¨¤ë¤«¤Ï -¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤ê¿¾¯°Û¤Ê¤ë¡£ -.\" .SH ¥Ð¥° -.\" Linux 1.3.81 ¤Î»þÅÀ¤Ç¤Ï +参照)。 +負の nice 値 (すなわち、高い nice 値) を割り当てると時間量は長くなり、 +正の nice 値 (すなわち、低い nice 値) を割り当てると時間量は短くなる。 +デフォルトの時間量は 0.1 秒である。 +nice 値の変更が時間量にどの程度影響を与えるかは +カーネルのバージョンにより多少異なる。 +.\" .SH バグ +.\" Linux 1.3.81 の時点では .\" .BR sched_rr_get_interval () -.\" ¤Ï ENOSYS ¥¨¥é¡¼¤òÊÖ¤¹¡£ -.\" ¤³¤ì¤Ï SCHED_RR ¤Ï¤Þ¤À´°Á´¤Ë¤Ï¼ÂÁõ¤µ¤ì¤Æ¤ª¤é¤º¡¢ -.\" ŬÀڤ˥ƥ¹¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +.\" は ENOSYS エラーを返す。 +.\" これは SCHED_RR はまだ完全には実装されておらず、 +.\" 適切にテストされていないからである。 +.SH 関連項目 .BR sched_setscheduler (2) -¤Ë Linux ¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Êý¼°¤Ë¤Ä¤¤¤Æ¤ÎÀâÌÀ¤¬¤¢¤ë¡£ +に Linux のスケジューリング方式についての説明がある。 .PP .I Programming for the real world \- POSIX.4 by Bill O. Gallmeister, O'Reilly & Associates, Inc., ISBN 1-56592-074-0 diff --git a/release/man2/sched_setaffinity.2 b/release/man2/sched_setaffinity.2 index 3e3dcf4d..43bd323b 100644 --- a/release/man2/sched_setaffinity.2 +++ b/release/man2/sched_setaffinity.2 @@ -41,18 +41,18 @@ .\" Updated & Modified 2006-07-14, Akihiro MOTOKI, LDP v2.34 .\" Updated & Modified 2008-12-24, Akihiro MOTOKI, LDP v3.14 .\" -.\"WORD: affinity ¿ÆÏÂÅÙ -.\"WORD: most significant bit ºÇ¾å°Ì¥Ó¥Ã¥È -.\"WORD: least significant bit ºÇ²¼°Ì¥Ó¥Ã¥È -.\"WORD: capability ¸¢¸Â +.\"WORD: affinity 親和度 +.\"WORD: most significant bit 最上位ビット +.\"WORD: least significant bit 最下位ビット +.\"WORD: capability 権限 .\" .TH SCHED_SETAFFINITY 2 2010-11-06 "Linux" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 sched_setaffinity, sched_getaffinity \- \ -¥×¥í¥»¥¹¤Î CPU affinity ¥Þ¥¹¥¯¤òÀßÄꡦ¼èÆÀ¤¹¤ë -.SH ½ñ¼° +プロセスの CPU affinity マスクを設定・取得する +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "int sched_setaffinity(pid_t " pid ", size_t " cpusetsize , @@ -61,194 +61,194 @@ sched_setaffinity, sched_getaffinity \- \ .BI "int sched_getaffinity(pid_t " pid ", size_t " cpusetsize , .BI " cpu_set_t *" mask ); .fi -.SH ÀâÌÀ -¥×¥í¥»¥¹¤Î CPU affinity (¿ÆÏÂÅÙ) ¥Þ¥¹¥¯¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤¬ -¼Â¹Ô¤òµö²Ä¤µ¤ì¤Æ¤¤¤ë CPU ¤Î½¸¹ç¤ò·èÄꤹ¤ë¡£ -¥Þ¥ë¥Á¥×¥í¥»¥Ã¥µ¡¦¥·¥¹¥Æ¥à¤Ç¤Ï¡¢CPU affinity ¥Þ¥¹¥¯¤òÀßÄꤹ¤ë¤³¤È¤Ç -À­Ç½¾å¤Î¥á¥ê¥Ã¥È¤òÆÀ¤é¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -Î㤨¤Ð¡¢ÆÃÄê¤Î¥×¥í¥»¥¹¤ò°ì¤Ä¤Î CPU ¤Ë³ç¤êÉÕ¤± -(¤¹¤Ê¤ï¤Á¡¢¤½¤Î¥×¥í¥»¥¹¤Î affinity ¥Þ¥¹¥¯¤ò°ì¤Ä¤Î CPU ¤ËÀßÄꤷ)¡¢ -¾¤ÎÁ´¤Æ¤Î¥×¥í¥»¥¹¤Î affinity ¥Þ¥¹¥¯¤«¤é¤½¤Î CPU ¤ò½ü³°¤¹¤ë¤³¤È¤Ç¡¢ -³Î¼Â¤Ë¤½¤Î¥×¥í¥»¥¹¤Î¼Â¹Ô®ÅÙ¤òºÇÂç¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤Þ¤¿¡¢¤¢¤ë¥×¥í¥»¥¹¤Î¼Â¹Ô¤ò°ì¤Ä¤Î CPU ¤Ë¸ÂÄꤹ¤ë¤³¤È¤Ç¡¢ -°ì¤Ä¤Î CPU ¤Ç¤Î¼Â¹Ô¤òÄä»ß¤·¤Æ¤«¤éÊ̤ΠCPU ¤Ç¼Â¹Ô¤òºÆ³«¤¹¤ë¤È¤­¤ËȯÀ¸¤¹¤ë -¥­¥ã¥Ã¥·¥å̵¸ú²½ (cache invalidation) ¤Ë¤è¤ëÀ­Ç½Ì̤ÎÎô²½¤òÈò¤±¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +.SH 説明 +プロセスの CPU affinity (親和度) マスクは、そのプロセスが +実行を許可されている CPU の集合を決定する。 +マルチプロセッサ・システムでは、CPU affinity マスクを設定することで +性能上のメリットを得られる可能性がある。 +例えば、特定のプロセスを一つの CPU に括り付け +(すなわち、そのプロセスの affinity マスクを一つの CPU に設定し)、 +他の全てのプロセスの affinity マスクからその CPU を除外することで、 +確実にそのプロセスの実行速度を最大にすることができる。 +また、あるプロセスの実行を一つの CPU に限定することで、 +一つの CPU での実行を停止してから別の CPU で実行を再開するときに発生する +キャッシュ無効化 (cache invalidation) による性能面の劣化を避けることもできる。 -CPU affinity ¥Þ¥¹¥¯¤Ï¡ÖCPU ¤Î½¸¹ç¡×¤òɽ¤¹ +CPU affinity マスクは「CPU の集合」を表す .I cpu_set_t -¹½Â¤ÂΤÇɽ¸½¤µ¤ì¡¢ +構造体で表現され、 .I cpu_set_t -¤Ø¤Î¥Ý¥¤¥ó¥¿ +へのポインタ .I mask -¤Ç»ØÄꤵ¤ì¤ë¡£ -CPU ½¸¹ç¤òÁàºî¤¹¤ë¤¿¤á¤Î¥Þ¥¯¥í·²¤Ë¤Ä¤¤¤Æ¤Ï +で指定される。 +CPU 集合を操作するためのマクロ群については .BR CPU_SET (3) -¤Çµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ +で記載されている。 .BR sched_setaffinity () -¤Ï¡¢¥×¥í¥»¥¹ID ¤¬ +は、プロセスID が .I pid -¤Î¥×¥í¥»¥¹¤Î CPU affinity ¥Þ¥¹¥¯¤ò +のプロセスの CPU affinity マスクを .I mask -¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£ +で指定された値に設定する。 .I pid -¤¬ 0 ¤Î¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬»È¤ï¤ì¤ë¡£ +が 0 の場合、呼び出し元プロセスが使われる。 .I cpusetsize -°ú¤­¿ô¤Ë¤Ï +引き数には .I mask -¤¬»Ø¤¹¥Ç¡¼¥¿¤ÎŤµ (¥Ð¥¤¥Èñ°Ì) ¤Ç¤¢¤ë¡£ -Ä̾ï¤Ï¡¢¤³¤Î°ú¤­¿ô¤Ë¤Ï +が指すデータの長さ (バイト単位) である。 +通常は、この引き数には .I "sizeof(cpu_set_t)" -¤ò»ØÄꤹ¤ì¤Ð¤è¤¤¡£ +を指定すればよい。 .I pid -¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤¬ +で指定されたプロセスが .I mask -¤Ç»ØÄꤵ¤ì¤¿ CPU ¤Î¤¤¤º¤ì¤«¤Ç¸½ºß¼Â¹Ô¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -¤½¤Î¥×¥í¥»¥¹¤Ï +で指定された CPU のいずれかで現在実行されていない場合、 +そのプロセスは .I mask -¤Ç»ØÄꤵ¤ì¤¿ CPU ¤Î¤¤¤º¤ì¤«¤Ë°ÜÆ°¤µ¤ì¤ë¡£ +で指定された CPU のいずれかに移動される。 .BR sched_getaffinity () -¤Ï¡¢ -¥×¥í¥»¥¹ID ¤¬ +は、 +プロセスID が .I pid -¤Î¥×¥í¥»¥¹¤Î affinity ¥Þ¥¹¥¯¤ò +のプロセスの affinity マスクを .I mask -¤¬»Ø¤¹ +が指す .I cpu_set_t -¹½Â¤ÂΤ˽ñ¤­¹þ¤à¡£ +構造体に書き込む。 .I cpusetsize -°ú¤­¿ô¤Ë¤Ï +引き数には .I mask -¤Î (¥Ð¥¤¥Èñ°Ì¤Î) Â礭¤µ¤ò»ØÄꤹ¤ë¡£ +の (バイト単位の) 大きさを指定する。 -´Ø¿ô +関数 .BR sched_getaffinity () -¤ÏŤµ +は長さ .I len -¤Î¥Ý¥¤¥ó¥¿ +のポインタ .I mask -¤Ë¥×¥í¥»¥¹ +にプロセス .I pid -¤Î affinity ¥Þ¥¹¥¯¤ò½ñ¤­¹þ¤à¡£ +の affinity マスクを書き込む。 .I pid -¤¬ 0 ¤Î¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥Þ¥¹¥¯¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +が 0 の場合、呼び出し元のプロセスのマスクが返される。 +.SH 返り値 +成功した場合、 .BR sched_setaffinity () -¤È +と .BR sched_getaffinity () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +は 0 を返す。 +エラーの場合は \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切に設定する。 +.SH エラー .TP .B EFAULT -»ØÄꤵ¤ì¤¿¥á¥â¥êÈÖÃϤ¬ÉÔÀµ¤Ç¤¢¤ë¡£ +指定されたメモリ番地が不正である。 .TP .B EINVAL -¥·¥¹¥Æ¥à¾å¤Ë¸½ºß¼ÂºÝ¤Ë¸ºß¤·¡¢¤«¤Ä -"cpuset" µ¡¹½¤¬²Ý¤¹À©¸Â¤Ë¤ª¤¤¤Æ¤½¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æµö²Ä¤µ¤ì¤Æ¤¤¤ë -¥×¥í¥»¥Ã¥µ¤¬¡¢ -affinity ¥Ó¥Ã¥È¥Þ¥¹¥¯ +システム上に現在実際に存在し、かつ +"cpuset" 機構が課す制限においてそのプロセスに対して許可されている +プロセッサが、 +affinity ビットマスク .I mask -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¡£ -"cpuset" µ¡¹½¤Ë¤Ä¤¤¤Æ¤Ï +に含まれていない。 +"cpuset" 機構については .BR cpuset (7) -¤ò»²¾È¡£ +を参照。 .TP .B EINVAL .RB ( sched_getaffinity () -¤È¡¢¥«¡¼¥Í¥ë 2.6.9 °ÊÁ°¤Î +と、カーネル 2.6.9 以前の .BR sched_setaffinity ()) .I cpusetsize -¤¬¥«¡¼¥Í¥ë¤Ç»È¤ï¤ì¤Æ¤¤¤ë affinity ¥Þ¥¹¥¯¤Î¥µ¥¤¥º¤è¤ê¾®¤µ¤¤¡£ +がカーネルで使われている affinity マスクのサイズより小さい。 .TP .B EPERM .RB ( sched_setaffinity ()) -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ËŬÀÚ¤ÊÆø¢¤¬¤Ê¤«¤Ã¤¿¡£ -¸Æ¤Ó½Ð¤·¸µ¤Ï¡¢¼Â¸ú¥æ¡¼¥¶ ID ¤¬ +呼び出し元のプロセスに適切な特権がなかった。 +呼び出し元は、実効ユーザ ID が .I pid -¤Ç¼±Ê̤µ¤ì¤ë¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶ ID ¤Þ¤¿¤Ï¼Â¸ú¥æ¡¼¥¶ ID ¤ÈƱ¤¸¤Ç¤¢¤ë¤«¡¢ +で識別されるプロセスの実ユーザ ID または実効ユーザ ID と同じであるか、 .B CAP_SYS_NICE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ケーパビリティ (capability) を持たなければならない。 .TP .B ESRCH -¥×¥í¥»¥¹ ID \fIpid\fP ¤Î¥×¥í¥»¥¹¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -CPU affinity ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux kernel 2.5.8 ¤ÇƳÆþ¤µ¤ì¤¿¡£ -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï glibc 2.3 ¤ÇƳÆþ¤µ¤ì¤¿¡£ -ºÇ½é¤Ï¡¢glibc ¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë¤Ï +プロセス ID \fIpid\fP のプロセスが見つからなかった。 +.SH バージョン +CPU affinity システムコールは Linux kernel 2.5.8 で導入された。 +これらのシステムコールのラッパー関数は glibc 2.3 で導入された。 +最初は、glibc のインタフェースには .I "unsigned int" -·¿¤Î +型の .I cpusetsize -°ú¤­¿ô¤¬Æþ¤Ã¤Æ¤¤¤¿¡£ -glibc 2.3.3 ¤Ç¤Ï +引き数が入っていた。 +glibc 2.3.3 では .I cpusetsize -°ú¤­¿ô¤¬ºï½ü¤µ¤ì¤¿¤¬¡¢glibc 2.3.4 ¤Ç +引き数が削除されたが、glibc 2.3.4 で .I size_t -·¿¤ÇÉü³è¤·¤¿¡£ -.SH ½àµò -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -.SH Ãí°Õ +型で復活した。 +.SH 準拠 +これらのシステムコールは Linux 固有である。 +.SH 注意 .BR sched_setaffinity () -¤ò¸Æ¤Ó½Ð¤·¤¿¸å¤Ï¡¢¥×¥í¥»¥¹¤¬¼ÂºÝ¤Ë¼Â¹Ô¤µ¤ì¤ë CPU ¤Î½¸¹ç¤Ï¡¢ +を呼び出した後は、プロセスが実際に実行される CPU の集合は、 .I mask -°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿½¸¹ç¤È¡¢¥·¥¹¥Æ¥à¾å¤Ë¼ÂºÝ¤Ë¸ºß¤¹¤ë CPU ¤Î½¸¹ç¤Î -¶¦Ä̽¸¹ç (AND) ¤È¤Ê¤ë¡£ -"cpuset" µ¡¹½¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢¥×¥í¥»¥¹¤¬Æ°ºî¤¹¤ë CPU ½¸¹ç -¤ËÂФ·¤Æ¥·¥¹¥Æ¥à¤Ï¤µ¤é¤ËÀ©¸Â¤ò²Ã¤¨¤ë¤«¤â¤·¤ì¤Ê¤¤ -("cpuset" µ¡¹½¤Ë¤Ä¤¤¤Æ¤Ï +引き数で指定された集合と、システム上に実際に存在する CPU の集合の +共通集合 (AND) となる。 +"cpuset" 機構が使用されている場合には、プロセスが動作する CPU 集合 +に対してシステムはさらに制限を加えるかもしれない +("cpuset" 機構については .BR cpuset (7) -¤ò»²¾È)¡£ -¥×¥í¥»¥¹¤¬Æ°ºî¤¹¤ë¼ÂºÝ¤Î CPU ½¸¹ç¤ËÂФ¹¤ëÀ©¸Â¤Ï¥«¡¼¥Í¥ë¤Ë¤è¤ê -°ÅÌۤΤ¦¤Á¤ËŬÍѤµ¤ì¤ë¡£ +を参照)。 +プロセスが動作する実際の CPU 集合に対する制限はカーネルにより +暗黙のうちに適用される。 .BR sched_setscheduler (2) -¤Ë¤Ï Linux ¤Ë¤ª¤±¤ë¥¹¥±¥¸¥å¡¼¥ê¥ó¥°µ¡¹½¤Ë¤Ä¤¤¤Æ¤ÎÀâÌÀ¤¬¤¢¤ë¡£ +には Linux におけるスケジューリング機構についての説明がある。 .PP -¼ÂºÝ¤Ë¤Ï affinity ¥Þ¥¹¥¯¤Ï¥¹¥ì¥Ã¥Éñ°Ì¤Î°À­¤Ç¡¢¥¹¥ì¥Ã¥É¥°¥ë¡¼¥×¤Î -³Æ¥¹¥ì¥Ã¥Éñ°Ì¤ËÆÈΩ¤·¤ÆÄ´À°¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +実際には affinity マスクはスレッド単位の属性で、スレッドグループの +各スレッド単位に独立して調整することができる。 .BR gettid (2) -¥³¡¼¥ë¤«¤é¤ÎÊÖ¤êÃͤò¤³¤Î¥³¡¼¥ë¤Î +コールからの返り値をこのコールの .I pid -°ú¤­¿ô¤È¤·¤ÆÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¡£ +引き数として渡すことができる。 .I pid -¤Ë 0 ¤ò»ØÄꤹ¤ë¤È¸Æ¤Ó½Ð¤·¸µ¤Î¥¹¥ì¥Ã¥É¤Î°À­¤¬ÀßÄꤵ¤ì¡¢ +に 0 を指定すると呼び出し元のスレッドの属性が設定され、 .BR getpid (2) -¥³¡¼¥ë¤«¤é¤ÎÊÖ¤êÃͤò +コールからの返り値を .I pid -¤Ë»ØÄꤹ¤ë¤È¥¹¥ì¥Ã¥É¥°¥ë¡¼¥×¤Î¥á¥¤¥ó¥¹¥ì¥Ã¥É¤Î°À­¤¬ÀßÄꤵ¤ì¤ë -(POSIX ¥¹¥ì¥Ã¥É API ¤ò»ÈÍѤ·¤Æ¤¤¤ë¾ì¹ç¡¢ +に指定するとスレッドグループのメインスレッドの属性が設定される +(POSIX スレッド API を使用している場合、 .BR sched_setaffinity () -¤ÎÂå¤ï¤ê¤Ë +の代わりに .BR pthread_setaffinity_np (3) -¤ò»ÈÍѤ¹¤ë¤³¤È)¡£ +を使用すること)。 .BR fork (2) -·Ðͳ¤ÇÀ¸À®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤Î CPU affinity ¥Þ¥¹¥¯¤ò·Ñ¾µ¤¹¤ë¡£ -affinity ¥Þ¥¹¥¯¤Ï +経由で生成された子プロセスは親プロセスの CPU affinity マスクを継承する。 +affinity マスクは .BR execve (2) -¤ÎÁ°¸å¤ÇÊݸ¤µ¤ì¤ë¡£ +の前後で保存される。 -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Ï CPU affinity ¥³¡¼¥ë¤Î glibc ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò -ÀâÌÀ¤·¤Æ¤¤¤ë¡£¼ÂºÝ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¡¦¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¾¯¤·°ã¤Ã¤Æ¤ª¤ê¡¢ -¼ÂºÝ¤Î¼ÂÁõ¤Ç¤Ï CPU ½¸¹ç¤Ï´Êñ¤Ê¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ë¤È¤¤¤¦¼Â¾õ¤òÈ¿±Ç¤·¡¢ +このマニュアルページでは CPU affinity コールの glibc インタフェースを +説明している。実際のシステムコール・インタフェースは少し違っており、 +実際の実装では CPU 集合は簡単なビットマスクであるという実状を反映し、 .I mask -¤Î·¿¤¬ +の型が .IR "unsigned long *" -¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ -À®¸ù»þ¤Ë¤Ï¡¢À¸¤Î +となっている。 +成功時には、生の .BR sched_getaffinity () -¥·¥¹¥Æ¥à¥³¡¼¥ë¼«¿È¤Ï +システムコール自身は .I cpumask_t -¥Ç¡¼¥¿·¿¤Î (¥Ð¥¤¥Èñ°Ì¤Î) Â礭¤µ¤òÊÖ¤¹¡£ +データ型の (バイト単位の) 大きさを返す。 .I cpumask_t -¤Ï¥«¡¼¥Í¥ëÆâÉô¤Ç CPU ½¸¹ç¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤òɽ¸½¤¹¤ë¤Î¤Ë -»È¤ï¤ì¤Æ¤¤¤ë¥Ç¡¼¥¿·¿¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +はカーネル内部で CPU 集合のビットマスクを表現するのに +使われているデータ型である。 +.SH 関連項目 .BR clone (2), .BR getcpu (2), .BR getpriority (2), diff --git a/release/man2/sched_setparam.2 b/release/man2/sched_setparam.2 index 006fe244..a07eb7f5 100644 --- a/release/man2/sched_setparam.2 +++ b/release/man2/sched_setparam.2 @@ -35,17 +35,17 @@ .\" Updated & Modified 2005-10-10, Akihiro MOTOKI .\" Updated 2006-04-14, Akihiro MOTOKI, LDP v2.29 .\" -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: scheduling ¥¹¥±¥¸¥å¡¼¥ê¥ó¥° -.\"WORD: policy Êý¿Ë -.\"WORD: implement ¼ÂÁõ -.\"WORD: parameter ¥Ñ¥é¥á¡¼¥¿ -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ID +.\"WORD: process プロセス +.\"WORD: scheduling スケジューリング +.\"WORD: policy 方針 +.\"WORD: implement 実装 +.\"WORD: parameter パラメータ +.\"WORD: effective user ID 実効ユーザーID .\" .TH SCHED_SETPARAM 2 2006-03-23 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sched_setparam, sched_getparam \- ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ñ¥é¥á¡¼¥¿¤ÎÀßÄê¤È¼èÆÀ¤ò¹Ô¤Ê¤¦ -.SH ½ñ¼° +.SH 名前 +sched_setparam, sched_getparam \- スケジューリング・パラメータの設定と取得を行なう +.SH 書式 .nf .B #include .sp @@ -61,69 +61,69 @@ sched_setparam, sched_getparam \- ... }; .fi -.SH ÀâÌÀ +.SH 説明 .BR sched_setparam () -¤Ï \fIpid\fP ¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Êý¿Ë (scheduling policy) ¤Ë -´ØÏ¢¤¹¤ë¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ñ¥é¥á¡¼¥¿¤òÀßÄꤹ¤ë¡£ -\fIpid\fP ¤¬ 0 ¤Ê¤é¤Ð¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥Ñ¥é¥á¡¼¥¿¤¬ÀßÄꤵ¤ì¤ë¡£ -°ú¤­¿ô \fIparam\fP ¤Î²ò¼á¤Ï¡¢ +は \fIpid\fP で指定されたプロセスのスケジューリング方針 (scheduling policy) に +関連するスケジューリング・パラメータを設定する。 +\fIpid\fP が 0 ならば、呼び出し元のプロセスのパラメータが設定される。 +引き数 \fIparam\fP の解釈は、 .I pid -¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Êý¿Ë¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¡£ -Linux ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Êý¿Ë¤ÎÀâÌÀ¤Ï +で指定されたプロセスのスケジューリング方針によって異なる。 +Linux でサポートされているスケジューリング方針の説明は .BR sched_setscheduler (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .BR sched_getparam () -¤Ï \fIpid\fP ¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ñ¥é¥á¡¼¥¿¤ò¼èÆÀ¤¹¤ë¡£ -\fIpid\fP ¤¬ 0 ¤Ê¤é¤Ð¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥Ñ¥é¥á¡¼¥¿¤ò¼èÆÀ¤¹¤ë¡£ +は \fIpid\fP で指定されたプロセスのスケジューリング・パラメータを取得する。 +\fIpid\fP が 0 ならば、呼び出し元のプロセスのパラメータを取得する。 .BR sched_setparam () -¤Ï¥×¥í¥»¥¹¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Êý¿Ë¤Ë¤ª¤±¤ë \fIparam\fP ¤ÎÂÅÅöÀ­¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ -\fIparam\->sched_priority\fP ¤ÎÃÍ¤Ï +はプロセスのスケジューリング方針における \fIparam\fP の妥当性をチェックする。 +\fIparam\->sched_priority\fP の値は .BR sched_get_priority_min (2) -¤È +と .BR sched_get_priority_max (2) -¤ÎÈϰϤËÆþ¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +の範囲に入っていなければならない。 -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ÎÍ¥ÀèÅÙ¤ÈÊý¿Ë¤Ë´ØÏ¢¤¹¤ëÆø¢¤È¥ê¥½¡¼¥¹À©¸Â¤Î -µÄÏÀ¤Ë´Ø¤·¤Æ¤Ï +スケジューリングの優先度と方針に関連する特権とリソース制限の +議論に関しては .BR sched_setscheduler (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .BR sched_setparam () -¤È +と .BR sched_getparam () -¤¬»ÈÍѤǤ­¤ë POSIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +が使用できる POSIX システムでは、 .I -¤Ë +に .B _POSIX_PRIORITY_SCHEDULING -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï +が定義されている。 +.SH 返り値 +成功した場合は .BR sched_setparam () -¤È +と .BR sched_getparam () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +は 0 を返す。 +エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EINVAL -°ú¤­¿ô \fIparam\fP ¤¬¸½ºß¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Êý¿Ë¤Ë¤ª¤¤¤Æ¤Ï -̵°ÕÌ£¤Ç¤¢¤ë¡£ +引き数 \fIparam\fP が現在のスケジューリング方針においては +無意味である。 .TP .B EPERM -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬Å¬ÀÚ¤ÊÆø¢¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤ -(Linux ¤Ç¤Ï¡¢ +呼び出し元のプロセスが適切な特権を持っていない +(Linux では、 .B CAP_SYS_NICE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤)¡£ +ケーパビリティを持っていない)。 .TP .B ESRCH -\fIpid\fP ¤ò ID ¤Ë»ý¤Ä¥×¥í¥»¥¹¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£ -.SH ½àµò +\fIpid\fP を ID に持つプロセスが見つからなかった。 +.SH 準拠 POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getpriority (2), .BR nice (2), .BR sched_get_priority_max (2), diff --git a/release/man2/sched_setscheduler.2 b/release/man2/sched_setscheduler.2 index dd27ca83..95debad4 100644 --- a/release/man2/sched_setscheduler.2 +++ b/release/man2/sched_setscheduler.2 @@ -58,15 +58,15 @@ .\" Updated 2007-10-13, Akihiro MOTOKI, LDP v2.65 .\" Updated 2008-08-13, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: privileges Æø¢ -.\"WORD: resource limit ¥ê¥½¡¼¥¹À©¸Â -.\"WORD: scheduling policy ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼ +.\"WORD: privileges 特権 +.\"WORD: resource limit リソース制限 +.\"WORD: scheduling policy スケジューリング・ポリシー .\" .TH SCHED_SETSCHEDULER 2 2008-11-06 "Linux" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 sched_setscheduler, sched_getscheduler \- -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤È¥Ñ¥é¥á¡¼¥¿¤òÀßÄê/¼èÆÀ¤¹¤ë -.SH ½ñ¼° +スケジューリング・ポリシーとパラメータを設定/取得する +.SH 書式 .nf .B #include .sp @@ -82,388 +82,388 @@ sched_setscheduler, sched_getscheduler \- ... }; .fi -.SH ÀâÌÀ +.SH 説明 .BR sched_setscheduler () -¤Ï \fIpid\fP ¤Ç»ØÄꤵ¤ì¤¿ ID ¤ò»ý¤Ä¥×¥í¥»¥¹¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤ä -¤½¤ì¤Ë´ØÏ¢¤¹¤ë¥Ñ¥é¥á¡¼¥¿¤òÀßÄꤹ¤ë¡£\fIpid\fP ¤¬ 0 ¤Î¾ì¹ç¤Ï -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤È¥Ñ¥é¥á¡¼¥¿¤¬ÀßÄꤵ¤ì¤ë¡£ -°ú¤­¿ô \fIparam\fP ¤Î²ò¼á¤ÏÁªÂò¤µ¤ì¤¿¥Ý¥ê¥·¡¼¤Ë¤è¤ë¡£ -¸½ºß¤Î¤È¤³¤í¡¢Linux ¤Ç¤Ï -°Ê²¼¤Ë¼¨¤¹¡ÖÄ̾ï¡×(¥ê¥¢¥ë¥¿¥¤¥à¤Ç¤Ê¤¤) ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤¬ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +は \fIpid\fP で指定された ID を持つプロセスのスケジューリング・ポリシーや +それに関連するパラメータを設定する。\fIpid\fP が 0 の場合は +呼び出したプロセスのスケジューリング・ポリシーとパラメータが設定される。 +引き数 \fIparam\fP の解釈は選択されたポリシーによる。 +現在のところ、Linux では +以下に示す「通常」(リアルタイムでない) スケジューリング・ポリシーが +サポートされている。 .TP 14 .BR SCHED_OTHER -ɸ½à¤Î¡¢¥é¥¦¥ó¥É¥í¥Ó¥ó¤Ë¤è¤ë»þʬ³ä·¿¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¡£ -.\" 2.6 ¥«¡¼¥Í¥ë¥½¡¼¥¹¤Ç¤Ï¡¢SCHED_OTHER ¤Ï¼ÂºÝ¤Ë¤Ï -.\" SCHED_NORMAL ¤È¸Æ¤Ð¤ì¤Æ¤¤¤ë¡£ +標準の、ラウンドロビンによる時分割型のスケジューリング・ポリシー。 +.\" 2.6 カーネルソースでは、SCHED_OTHER は実際には +.\" SCHED_NORMAL と呼ばれている。 .TP .BR SCHED_BATCH -¡Ö¥Ð¥Ã¥Á¡×·Á¼°¤Ç¤Î¥×¥í¥»¥¹¤Î¼Â¹ÔÍÑ¡£ +「バッチ」形式でのプロセスの実行用。 .TP .BR SCHED_IDLE -¡ÖÈó¾ï¤Ë¡×Ä㤤ͥÀèÅÙ¤ÇÆ°ºî¤¹¤ë¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¡¦¥¸¥ç¥ÖÍÑ¡£ +「非常に」低い優先度で動作するバックグラウンド・ジョブ用。 .PP -¤É¤Î¼Â¹Ô²Äǽ¥×¥í¥»¥¹¤òÁªÂò¤¹¤ë¤«¤Ë¤Ä¤¤¤Æ¡¢¤è¤êÀµ³Î¤ÊÀ©¸æ¤òɬÍפȤ¹¤ë -»þ´Ö¤ÎÀ©Ì󤬸·¤·¤¤ÆÃÊ̤ʥ¢¥×¥ê¥±¡¼¥·¥ç¥óÍѤȤ·¤Æ¡¢ -°Ê²¼¤Î¡Ö¥ê¥¢¥ë¥¿¥¤¥à¡×¥Ý¥ê¥·¡¼¤â¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +どの実行可能プロセスを選択するかについて、より正確な制御を必要とする +時間の制約が厳しい特別なアプリケーション用として、 +以下の「リアルタイム」ポリシーもサポートされている。 .TP 14 .BR SCHED_FIFO -¥Õ¥¡¡¼¥¹¥È¥¤¥ó¡¢¥Õ¥¡¡¼¥¹¥È¥¢¥¦¥È·¿¤Î¥Ý¥ê¥·¡¼¡£ +ファーストイン、ファーストアウト型のポリシー。 .TP .BR SCHED_RR -¥é¥¦¥ó¥É¥í¥Ó¥ó·¿¤Î¥Ý¥ê¥·¡¼¡£ +ラウンドロビン型のポリシー。 .PP -¤³¤ì¤é¤Î¥Ý¥ê¥·¡¼¤Î¤½¤ì¤¾¤ì¤ÎÆ°ºî¤Ë¤Ä¤¤¤Æ¤Ï°Ê²¼¤ÇÀâÌÀ¤¹¤ë¡£ +これらのポリシーのそれぞれの動作については以下で説明する。 .BR sched_getscheduler () -¤Ï \fIpid\fP ¤Ç¼±Ê̤µ¤ì¤ë¥×¥í¥»¥¹¤Ë¸½ºßŬÍѤµ¤ì¤Æ¤¤¤ë -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤ò¿Ò¤Í¤ë¡£\fIpid\fP ¤¬ 0 ¤Ê¤é¤Ð¡¢¸Æ¤Ó½Ð¤·¤¿ -¥×¥í¥»¥¹¼«¿È¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ +は \fIpid\fP で識別されるプロセスに現在適用されている +スケジューリング・ポリシーを尋ねる。\fIpid\fP が 0 ならば、呼び出した +プロセス自身のスケジューリング・ポリシーが返される。 .\" -.SS ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼ (scheduling policy) -¥¹¥±¥¸¥å¡¼¥é (scheduler) ¤È¤Ï¥«¡¼¥Í¥ë¤Î¹½À®Í×ÁǤǡ¢ -¼¡¤Ë CPU ¤Ç¼Â¹Ô¤µ¤ì¤ë¼Â¹Ô²Äǽ¤Ê¥×¥í¥»¥¹¤ò·èÄꤹ¤ë¤â¤Î¤Ç¤¢¤ë¡£ -³Æ¡¹¤Î¥×¥í¥»¥¹¤Ë¤Ï¡¢¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤È -¡ÖÀÅŪ¡×¤Ê¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Í¥ÀèÅÙ \fIsched_priority\fP ¤¬ÂбþÉÕ¤±¤é¤ì¡¢ -¤³¤ì¤é¤ÎÀßÄê¤Ï +.SS スケジューリング・ポリシー (scheduling policy) +スケジューラ (scheduler) とはカーネルの構成要素で、 +次に CPU で実行される実行可能なプロセスを決定するものである。 +各々のプロセスには、スケジューリング・ポリシーと +「静的」なスケジューリング優先度 \fIsched_priority\fP が対応付けられ、 +これらの設定は .BR sched_setscheduler () -¤ÇÊѹ¹¤Ç¤­¤ë¡£ -¥¹¥±¥¸¥å¡¼¥é¤Ï¡¢¥·¥¹¥Æ¥à¾å¤ÎÁ´¥×¥í¥»¥¹¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤È -ÀÅŪͥÀèÅ٤˴ؤ¹¤ëÃμ±¤Ë´ð¤Å¤¤¤Æ·èÄê¤ò¹Ô¤¦¡£ +で変更できる。 +スケジューラは、システム上の全プロセスのスケジューリング・ポリシーと +静的優先度に関する知識に基づいて決定を行う。 -Ä̾ï¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼ +通常のスケジューリング・ポリシー (\fBSCHED_OTHER\fP, \fBSCHED_IDLE\fP, \fBSCHED_BATCH\fP) -¤Î²¼¤Ç¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤ë¥×¥í¥»¥¹¤Ç¤Ï¡¢ -\fIsched_priority\fP ¤Ï¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤Î·èÄê¤Ë»ÈÍѤµ¤ì¤Ê¤¤ -(\fIsched_priority\fP ¤Ë¤Ï 0 ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£ +の下でスケジューリングされるプロセスでは、 +\fIsched_priority\fP はスケジューリングの決定に使用されない +(\fIsched_priority\fP には 0 を指定しなければならない)。 -¥ê¥¢¥ë¥¿¥¤¥à¡¦¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼ (\fBSCHED_FIFO\fP, \fBSCHED_RR\fP) -¤Î²¼¤Ç¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤ë¥×¥í¥»¥¹¤Ï¡¢ -\fIsched_priority\fP ¤ÎÃÍ¤Ï 1 (ºÇÄã) ¤«¤é 99 (ºÇ¹â) ¤ÎÈϰϤȤʤë -(¿ô»ú¤«¤éʬ¤«¤ë¤è¤¦¤Ë¡¢¥ê¥¢¥ë¥¿¥¤¥à¡¦¥×¥í¥»¥¹¤Ï¾ï¤ËÄ̾ï¤Î¥×¥í¥»¥¹¤è¤ê¤â -¹â¤¤Í¥ÀèÅÙ¤ò»ý¤Ä)¡£ -¤³¤³¤ÇÃí°Õ¤¹¤Ù¤­¤Ê¤Î¤Ï¡¢POSIX.1-2001 ¤¬Í׵ᤷ¤Æ¤¤¤ë¤Î¤Ï¡¢ -¥ê¥¢¥ë¥¿¥¤¥à¡¦¥Ý¥ê¥·¡¼¤Î¼ÂÁõ¤Ë¤ª¤¤¤ÆºÇÄã 32 ¼ïÎà¤Î°Û¤Ê¤ëÍ¥ÀèÅÙ¥ì¥Ù¥ë¤¬ -¥µ¥Ý¡¼¥È¤µ¤ì¤ë¤³¤È¤À¤±¤Ç¤¢¤ê¡¢¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¤³¤ÎºÇÄã¸Â¤Î¿ô¤Î -Í¥ÀèÅÙ¤·¤«Ä󶡤µ¤ì¤Æ¤¤¤Ê¤¤¡¢¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ -°Ü¿¢À­¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ +リアルタイム・スケジューリング・ポリシー (\fBSCHED_FIFO\fP, \fBSCHED_RR\fP) +の下でスケジューリングされるプロセスは、 +\fIsched_priority\fP の値は 1 (最低) から 99 (最高) の範囲となる +(数字から分かるように、リアルタイム・プロセスは常に通常のプロセスよりも +高い優先度を持つ)。 +ここで注意すべきなのは、POSIX.1-2001 が要求しているのは、 +リアルタイム・ポリシーの実装において最低 32 種類の異なる優先度レベルが +サポートされることだけであり、いくつかのシステムではこの最低限の数の +優先度しか提供されていない、ということである。 +移植性が必要なプログラムでは、 .BR sched_get_priority_min (2) -¤È +と .BR sched_get_priority_max (2) -¤ò»È¤Ã¤Æ¡¢¤¢¤ë¥Ý¥ê¥·¡¼¤¬¥µ¥Ý¡¼¥È¤¹¤ëÍ¥ÀèÅÙ¤ÎÈϰϤòÄ´¤Ù¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +を使って、あるポリシーがサポートする優先度の範囲を調べるべきである。 -³µÇ°¤È¤·¤Æ¤Ï¡¢ -¥¹¥±¥¸¥å¡¼¥é¤Ï¤½¤Î \fIsched_priority\fP ¤ÎÃͤ½¤ì¤¾¤ì¤ËÂФ·¤Æ -¼Â¹Ô²Äǽ¤Ê¥×¥í¥»¥¹¤Î¥ê¥¹¥È¤ò´ÉÍý¤·¤Æ¤¤¤ë¡£ -¤É¤Î¥×¥í¥»¥¹¤ò¼¡¤Ë¼Â¹Ô¤¹¤ë¤«¤ò·èÄꤹ¤ë¤¿¤á¤Ë¡¢ -¥¹¥±¥¸¥å¡¼¥é¤ÏÀÅŪͥÀèÅ٤κǤâ¹â¤¤¶õ¤Ç¤Ê¤¤¥ê¥¹¥È¤òõ¤·¤Æ¡¢ -¤½¤Î¥ê¥¹¥È¤ÎÀèƬ¤Î¥×¥í¥»¥¹¤òÁªÂò¤¹¤ë¡£ +概念としては、 +スケジューラはその \fIsched_priority\fP の値それぞれに対して +実行可能なプロセスのリストを管理している。 +どのプロセスを次に実行するかを決定するために、 +スケジューラは静的優先度の最も高い空でないリストを探して、 +そのリストの先頭のプロセスを選択する。 -³Æ¥×¥í¥»¥¹¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤Ï¡¢ -¤½¤Î¥×¥í¥»¥¹¤¬Æ±¤¸ÀÅŪͥÀèÅÙ¤ò»ý¤Ä¥×¥í¥»¥¹¤Î¥ê¥¹¥È¤ÎÃæ¤Î¤É¤³¤ËÁÞÆþ¤µ¤ì¡¢ -¤³¤Î¥ê¥¹¥È¤ÎÃæ¤ò¤É¤Î¤è¤¦¤Ë°ÜÆ°¤¹¤ë¤«¤ò·èÄꤹ¤ë¡£ +各プロセスのスケジューリング・ポリシーは、 +そのプロセスが同じ静的優先度を持つプロセスのリストの中のどこに挿入され、 +このリストの中をどのように移動するかを決定する。 -Á´¤Æ¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤Ï¥×¥ê¥¨¥ó¥×¥Æ¥£¥Ö (preemptive) ¤Ç¤¢¤ë: -¤è¤ê¹â¤¤Í¥ÀèÅÙ¤Î¥×¥í¥»¥¹¤¬¼Â¹Ô²Äǽ¤Ë¤Ê¤ë¤È¡¢¸½ºß¼Â¹ÔÃæ¤Î¥×¥í¥»¥¹¤Ï¼Â¹Ô¸¢¤ò -¼è¤ê¾å¤²¤é¤ì (preempted)¡¢¤½¤Î¥×¥í¥»¥¹¤ÎÀÅŪͥÀèÅÙ¥ì¥Ù¥ë¤ÎÂÔ¤Á¥ê¥¹¥È¤Ë -Ìᤵ¤ì¤ë¡£¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤ÏƱ¤¸ÀÅŪͥÀèÅÙ¤ò»ý¤Ä¼Â¹Ô²Äǽ¤Ê -¥×¥í¥»¥¹¤Î¥ê¥¹¥È¤ÎÃæ¤Ç½çÈ֤Τߤò·èÄꤹ¤ë¡£ -.SS SCHED_FIFO: ¥Õ¥¡¡¼¥¹¥È¥¤¥ó¡¦¥Õ¥¡¡¼¥¹¥È¥¢¥¦¥È¡¦¥¹¥±¥¸¥å¡¼¥ê¥ó¥° -\fBSCHED_FIFO\fP ¤Ï 0 ¤è¤êÂ礭¤ÊÀÅŪͥÀèÅ٤ǤΤ߻ÈÍѤǤ­¤ë¡£¤³¤Î¥Ý¥ê¥·¡¼¤Ç¤Ï¡¢ -\fBSCHED_FIFO\fP ¥×¥í¥»¥¹¤¬¼Â¹Ô²Äǽ¤Ë¤Ê¤Ã¤¿¾ì¹ç¡¢ -¤½¤Î¥Ý¥ê¥·¡¼¤¬ \fBSCHED_OTHER\fP¡¢ \fBSCHED_BATCH\fP¡¢ \fBSCHED_IDLE\fP ¤Î -¸½ºß¼Â¹ÔÃæ¤Î¥×¥í¥»¥¹¤Ïľ¤Á¤Ë¼Â¹Ô¸¢¤ò¼è¤ê¾å¤²¤é¤ì¤ë¡£ -\fBSCHED_FIFO\fP ¤Ï»þʬ³ä¤Î¤Ê¤¤Ã±½ã¤Ê¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥¢¥ë¥´¥ê¥º¥à¤Ç¤¢¤ë¡£ -\fBSCHED_FIFO\fP ¥Ý¥ê¥·¡¼¤Ç¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤Æ¤¤¤ë¥×¥í¥»¥¹¤Ë¤Ï°Ê²¼¤Î -¥ë¡¼¥ë¤¬Å¬ÍѤµ¤ì¤ë: +全てのスケジューリングはプリエンプティブ (preemptive) である: +より高い優先度のプロセスが実行可能になると、現在実行中のプロセスは実行権を +取り上げられ (preempted)、そのプロセスの静的優先度レベルの待ちリストに +戻される。スケジューリング・ポリシーは同じ静的優先度を持つ実行可能な +プロセスのリストの中で順番のみを決定する。 +.SS SCHED_FIFO: ファーストイン・ファーストアウト・スケジューリング +\fBSCHED_FIFO\fP は 0 より大きな静的優先度でのみ使用できる。このポリシーでは、 +\fBSCHED_FIFO\fP プロセスが実行可能になった場合、 +そのポリシーが \fBSCHED_OTHER\fP、 \fBSCHED_BATCH\fP、 \fBSCHED_IDLE\fP の +現在実行中のプロセスは直ちに実行権を取り上げられる。 +\fBSCHED_FIFO\fP は時分割のない単純なスケジューリング・アルゴリズムである。 +\fBSCHED_FIFO\fP ポリシーでスケジューリングされているプロセスには以下の +ルールが適用される: .IP * 3 -¤è¤ê¹â¤¤Í¥ÀèÅ٤ξ¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¼è¤Ã¤ÆÂå¤ï¤é¤ì¤¿ -\fBSCHED_FIFO\fP ¥×¥í¥»¥¹¤Ï¤½¤ÎÍ¥ÀèÅ٤Υꥹ¥È¤ÎÀèƬ¤Ëα¤Þ¤ê³¤±¡¢ -¤è¤ê¹â¤¤Í¥ÀèÅÙ¤Î¥×¥í¥»¥¹Á´¤Æ¤¬Ää»ß (block) ¤·¤¿¾ì¹ç¤Ë¼Â¹Ô¤òºÆ³«¤¹¤ë¡£ +より高い優先度の他のプロセスによって取って代わられた +\fBSCHED_FIFO\fP プロセスはその優先度のリストの先頭に留まり続け、 +より高い優先度のプロセス全てが停止 (block) した場合に実行を再開する。 .IP * -\fBSCHED_FIFO\fP ¥×¥í¥»¥¹¤¬¼Â¹Ô²Äǽ¤Ë¤Ê¤Ã¤¿»þ¡¢¤½¤ÎÍ¥ÀèÅ٤Υꥹ¥È¤ÎºÇ¸å -¤ËÁÞÆþ¤µ¤ì¤ë¡£ +\fBSCHED_FIFO\fP プロセスが実行可能になった時、その優先度のリストの最後 +に挿入される。 .IP * .BR sched_setscheduler () -¤ä +や .BR sched_setparam (2) -¤Ï -\fIpid\fP ¤Ç»ØÄꤵ¤ì¤¿ \fBSCHED_FIFO\fP (¤Þ¤¿¤Ï \fBSCHED_RR\fP) ¥×¥í¥»¥¹¤¬ -¼Â¹Ô²Äǽ¤Ê¾ì¹ç¡¢¥ê¥¹¥È¤ÎºÇ½é¤ËÃÖ¤¯¡£ -·ë²Ì¤È¤·¤Æ¡¢¤â¤·Í¥ÀèÅÙ¤¬Æ±¤¸¤À¤Ã¤¿¾ì¹ç¡¢ -¸½ºß¼Â¹ÔÃæ¤Î¥×¥í¥»¥¹¤ËÀè¤ó¤¸¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -(POSIX.1-2001 ¤Ç¤Ï¥×¥í¥»¥¹¤Ï¥ê¥¹¥È¤ÎºÇ¸å¤Ë¹Ô¤¯¤Ù¤­¤Èµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£) +は +\fIpid\fP で指定された \fBSCHED_FIFO\fP (または \fBSCHED_RR\fP) プロセスが +実行可能な場合、リストの最初に置く。 +結果として、もし優先度が同じだった場合、 +現在実行中のプロセスに先んじるかもしれない。 +(POSIX.1-2001 ではプロセスはリストの最後に行くべきと規定されている。) .\" In 2.2.x and 2.4.x, the process is placed at the front of the queue .\" In 2.0.x, the Right Thing happened: the process went to the back -- MTK .IP * .BR sched_yield (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¥ê¥¹¥È¤ÎºÇ¸å¤ËÃÖ¤«¤ì¤ë¡£ +を呼び出したプロセスはリストの最後に置かれる。 .PP -¤½¤Î¾¤Î¥¤¥Ù¥ó¥È¤Ë¤è¤Ã¤Æ \fBSCHED_FIFO\fP ¥Ý¥ê¥·¡¼¤Ç -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤ë¥×¥í¥»¥¹¤¬Æ±¤¸Í¥ÀèÅ٤μ¹ԲÄǽ¤Ê -¥×¥í¥»¥¹¤ÎÂÔ¤Á¥ê¥¹¥È¤ÎÃæ¤ò°ÜÆ°¤¹¤ë¤³¤È¤Ï¤Ê¤¤¡£ +その他のイベントによって \fBSCHED_FIFO\fP ポリシーで +スケジューリングされるプロセスが同じ優先度の実行可能な +プロセスの待ちリストの中を移動することはない。 -\fBSCHED_FIFO\fP ¥×¥í¥»¥¹¤Ï I/O Í×µá¤Ë¤è¤Ã¤ÆÄä»ß¤¹¤ë¤«¡¢ -¤è¤ê¹â¤¤Í¥ÀèÅÙ¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤ÆÃÖ¤­¤«¤¨¤é¤ì¤ë¤«¡¢ +\fBSCHED_FIFO\fP プロセスは I/O 要求によって停止するか、 +より高い優先度のプロセスによって置きかえられるか、 .BR sched_yield (2) -¤ò¸Æ¤Ó½Ð¤¹¤Þ¤Ç¼Â¹Ô¤ò³¤±¤ë¡£ -.SS SCHED_RR: ¥é¥¦¥ó¥É¡¦¥í¥Ó¥ó (round robin) ¡¦¥¹¥±¥¸¥å¡¼¥ê¥ó¥° -\fBSCHED_RR\fP ¤Ï \fBSCHED_FIFO\fP ¤Îñ½ã¤Ê³ÈÄ¥¤Ç¤¢¤ë¡£ -¾å½Ò¤µ¤ì¤¿ \fBSCHED_FIFO\fP ¤Ë´Ø¤¹¤ëµ­½Ò¤ÏÁ´¤Æ \fBSCHED_RR\fP ¤Ë -ŬÍѤǤ­¤ë¡£°Û¤Ê¤ë¤Î¤Ï¤½¤ì¤¾¤ì¤Î¥×¥í¥»¥¹¤ÏºÇÂç»þ´Öñ°Ì¤Þ¤Ç¤·¤«¼Â¹Ô¤Ç¤­¤Ê¤¤ -¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£\fBSCHED_RR\fP ¥×¥í¥»¥¹¤¬»þ´Öñ°Ì¤ÈƱ¤¸¤«¤½¤ì¤è¤ê -Ť¤»þ´Ö¼Â¹Ô¤µ¤ì¤ë¤È¡¢¤½¤ÎÍ¥ÀèÅ٤Υꥹ¥È¤ÎºÇ¸å¤ËÃÖ¤«¤ì¤ë¡£ -¤è¤ê¹â¤¤Í¥ÀèÅÙ¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤ÆÃÖ¤­¤«¤¨¤é¤ì¡¢¤½¤Î¸å¼Â¹Ô¤òºÆ³«¤·¤¿ -\fBSCHED_RR\fP ¥×¥í¥»¥¹¤Ï¡¢¤½¤Î¥é¥¦¥ó¥É¡¦¥í¥Ó¥ó»þ´Öñ°Ì¤ò´°Á´¤Ë»È¤¤ÀÚ¤ë -¤Þ¤Ç¼Â¹Ô¤µ¤ì¤ë¡£¤½¤Î»þ´Öñ°Ì¤ÎŤµ¤Ï +を呼び出すまで実行を続ける。 +.SS SCHED_RR: ラウンド・ロビン (round robin) ・スケジューリング +\fBSCHED_RR\fP は \fBSCHED_FIFO\fP の単純な拡張である。 +上述された \fBSCHED_FIFO\fP に関する記述は全て \fBSCHED_RR\fP に +適用できる。異なるのはそれぞれのプロセスは最大時間単位までしか実行できない +ということである。\fBSCHED_RR\fP プロセスが時間単位と同じかそれより +長い時間実行されると、その優先度のリストの最後に置かれる。 +より高い優先度のプロセスによって置きかえられ、その後実行を再開した +\fBSCHED_RR\fP プロセスは、そのラウンド・ロビン時間単位を完全に使い切る +まで実行される。その時間単位の長さは .BR sched_rr_get_interval (2) -¤ò»È¤Ã¤Æ¼èÆÀ¤Ç¤­¤ë¡£ +を使って取得できる。 .\" On Linux 2.4, the length of the RR interval is influenced .\" by the process nice value -- MTK .\" -.SS SCHED_OTHER: Linux ¤Î¥Ç¥Õ¥©¥ë¥È¤Î»þʬ³ä¥¹¥±¥¸¥å¡¼¥ê¥ó¥° -\fBSCHED_OTHER\fP ¤ÏÀÅŪͥÀèÅÙ 0 ¤Ç¤Î¤ß»ÈÍѤǤ­¤ë¡£ -\fBSCHED_OTHER\fP ¤Ï Linux ɸ½à¤Î»þʬ³ä¥¹¥±¥¸¥å¡¼¥é¤Ç¡¢ -ÆÃÊ̤ʥꥢ¥ë¥¿¥¤¥àµ¡¹½¤òɬÍפȤ·¤Æ¤¤¤Ê¤¤Á´¤Æ¤Î¥×¥í¥»¥¹¤Ç»ÈÍѤµ¤ì¤ë¡£ -¼Â¹Ô¤¹¤ë¥×¥í¥»¥¹¤Ï¡¢ÀÅŪͥÀèÅÙ 0 ¤Î¥ê¥¹¥È¤«¤é¡¢¤³¤Î¥ê¥¹¥È¤ÎÃæ¤À¤±¤Ç -·èÄꤵ¤ì¤ë¡ÖưŪ¤Ê¡×Í¥ÀèÅÙ (dynamic priority) ¤Ë´ð¤¤¤Æ·èÄꤵ¤ì¤ë¡£ -ưŪ¤ÊÍ¥ÀèÅÙ¤Ï +.SS SCHED_OTHER: Linux のデフォルトの時分割スケジューリング +\fBSCHED_OTHER\fP は静的優先度 0 でのみ使用できる。 +\fBSCHED_OTHER\fP は Linux 標準の時分割スケジューラで、 +特別なリアルタイム機構を必要としていない全てのプロセスで使用される。 +実行するプロセスは、静的優先度 0 のリストから、このリストの中だけで +決定される「動的な」優先度 (dynamic priority) に基いて決定される。 +動的な優先度は .RB ( nice (2) -¤ä +や .BR setpriority (2) -¤Ë¤è¤êÀßÄꤵ¤ì¤ë) nice Ãͤ˴ð¤Å¤¤¤Æ·èÄꤵ¤ì¤ë¤â¤Î¤Ç¡¢ -ñ°Ì»þ´ÖËè¤Ë¡¢¥×¥í¥»¥¹¤¬¼Â¹Ô²Äǽ¤À¤¬¡¢¥¹¥±¥¸¥å¡¼¥é¤Ë¤è¤ê¼Â¹Ô¤¬µñÈݤµ¤ì¤¿ -¾ì¹ç¤Ë¥¤¥ó¥¯¥ê¥á¥ó¥È¤µ¤ì¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢Á´¤Æ¤Î \fBSCHED_OTHER\fP ¥×¥í¥»¥¹¤Ç¤Î¸øÊ¿À­¤¬Êݾڤµ¤ì¤ë¡£ +により設定される) nice 値に基づいて決定されるもので、 +単位時間毎に、プロセスが実行可能だが、スケジューラにより実行が拒否された +場合にインクリメントされる。 +これにより、全ての \fBSCHED_OTHER\fP プロセスでの公平性が保証される。 .\" -.SS SCHED_BATCH: ¥Ð¥Ã¥Á¥×¥í¥»¥¹¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥° -(Linux 2.6.16 °Ê¹ß) -\fBSCHED_BATCH\fP ¤ÏÀÅŪͥÀèÅÙ 0 ¤Ç¤Î¤ß»ÈÍѤǤ­¤ë¡£ -¤³¤Î¥Ý¥ê¥·¡¼¤Ï (nice Ãͤ˴ð¤Å¤¯) ưŪ¤ÊÍ¥ÀèÅ٤ˤ·¤¿¤¬¤Ã¤Æ¥×¥í¥»¥¹¤Î -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤¬¹Ô¤ï¤ì¤ë¤È¤¤¤¦ÅÀ¤Ç¡¢\fBSCHED_OTHER\fP ¤Ë»÷¤Æ¤¤¤ë¡£ -°Û¤Ê¤ë¤Î¤Ï¡¢¤³¤Î¥Ý¥ê¥·¡¼¤Ç¤Ï¡¢¥×¥í¥»¥¹¤¬¾ï¤Ë CPU ¤ËÉé²Ù¤Î¤«¤«¤ë (CPU-intensive) -½èÍý¤ò¹Ô¤¦¤È¡¢¥¹¥±¥¸¥å¡¼¥é¤¬²¾Äꤹ¤ëÅÀ¤Ç¤¢¤ë¡£ -¥¹¥±¥¸¥å¡¼¥é¤Ï¥×¥í¥»¥¹¤ò¸Æ¤Óµ¯¤³¤¹Ëè¤Ë¤½¤Î¥×¥í¥»¥¹¤Ë¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¾å¤Î -¥Ú¥Ê¥ë¥Æ¥£¤ò¾¯¤·²Ý¤·¡¢¤½¤Î·ë²Ì¡¢¤³¤Î¥×¥í¥»¥¹¤Ï¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤Î·èÄê¤Ç -¼ã´³Îä¶ø¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +.SS SCHED_BATCH: バッチプロセスのスケジューリング +(Linux 2.6.16 以降) +\fBSCHED_BATCH\fP は静的優先度 0 でのみ使用できる。 +このポリシーは (nice 値に基づく) 動的な優先度にしたがってプロセスの +スケジューリングが行われるという点で、\fBSCHED_OTHER\fP に似ている。 +異なるのは、このポリシーでは、プロセスが常に CPU に負荷のかかる (CPU-intensive) +処理を行うと、スケジューラが仮定する点である。 +スケジューラはプロセスを呼び起こす毎にそのプロセスにスケジューリング上の +ペナルティを少し課し、その結果、このプロセスはスケジューリングの決定で +若干冷遇されるようになる。 .\" The following paragraph is drawn largely from the text that .\" accompanied Ingo Molnar's patch for the implementation of .\" SCHED_BATCH. -¤³¤Î¥Ý¥ê¥·¡¼¤Ï¡¢ÈóÂÐÏÃŪ¤Ê½èÍý¤À¤¬¤½¤Î nice Ãͤò²¼¤²¤¿¤¯¤Ê¤¤½èÍý¤ä¡¢ -(½èÍý¤Î¥¿¥¹¥¯´Ö¤Ç) ;·×¤Ê¥¿¥¹¥¯¤ÎÃÖ¤­´¹¤¨¤Î¸¶°ø¤È¤¢¤ëÂÐÏÃŪ¤Ê½èÍý¤Ê¤·¤Ç -³ÎÄêŪ¤Ê (deterministic) ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤òŬÍѤ·¤¿¤¤½èÍý¤Ë -ÂФ·¤ÆÍ­¸ú¤Ç¤¢¤ë¡£ +このポリシーは、非対話的な処理だがその nice 値を下げたくない処理や、 +(処理のタスク間で) 余計なタスクの置き換えの原因とある対話的な処理なしで +確定的な (deterministic) スケジューリング・ポリシーを適用したい処理に +対して有効である。 .\" -.SS SCHED_IDLE: Èó¾ï¤ËÍ¥ÀèÅÙ¤ÎÄ㤤¥¸¥ç¥Ö¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥° -(Linux 2.6.23 °Ê¹ß) -\fBSCHED_IDLE\fP ¤ÏÀÅŪͥÀèÅÙ 0 ¤Ç¤Î¤ß»ÈÍѤǤ­¤ë¡£ -¤³¤Î¥Ý¥ê¥·¡¼¤Ç¤Ï¥×¥í¥»¥¹¤Î nice Ãͤϥ¹¥±¥¸¥å¡¼¥ê¥ó¥°¤Ë±Æ¶Á¤òÍ¿¤¨¤Ê¤¤¡£ +.SS SCHED_IDLE: 非常に優先度の低いジョブのスケジューリング +(Linux 2.6.23 以降) +\fBSCHED_IDLE\fP は静的優先度 0 でのみ使用できる。 +このポリシーではプロセスの nice 値はスケジューリングに影響を与えない。 -Èó¾ï¤ËÄ㤤ͥÀèÅ٤ǤΥ¸¥ç¥Ö¤Î¼Â¹Ô¤òÌÜŪ¤È¤·¤¿¤â¤Î¤Ç¤¢¤ë -(Èó¾ï¤ËÄ㤤ͥÀèÅ٤Ȥϡ¢¥Ý¥ê¥·¡¼ +非常に低い優先度でのジョブの実行を目的としたものである +(非常に低い優先度とは、ポリシー .B SCHED_OTHER -¤« +か .B SCHED_BATCH -¤Ç¤Î nice ÃÍ +19 ¤è¤ê¤µ¤é¤ËÄ㤤ͥÀèÅ٤Ǥ¢¤ë)¡£ +での nice 値 +19 よりさらに低い優先度である)。 .\" -.SS Æø¢¤È¥ê¥½¡¼¥¹À©¸Â -2.6.12 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î Linux ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -Æø¢¥×¥í¥»¥¹ +.SS 特権とリソース制限 +2.6.12 より前のバージョンの Linux カーネルでは、 +特権プロセス .RB ( CAP_SYS_NICE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹) ¤À¤±¤¬ 0 °Ê³°¤ÎÀÅŪͥÀèÅÙ¤òÀßÄꤹ¤ë -(¤¹¤Ê¤ï¤Á¡¢¥ê¥¢¥ë¥¿¥¤¥à¡¦¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤òÀßÄꤹ¤ë) ¤³¤È¤¬¤Ç¤­¤ë¡£ -ÈóÆø¢¥×¥í¥»¥¹¤¬¤Ç¤­¤ëÊѹ¹¤Ï +ケーパビリティを持つプロセス) だけが 0 以外の静的優先度を設定する +(すなわち、リアルタイム・スケジューリング・ポリシーを設定する) ことができる。 +非特権プロセスができる変更は .B SCHED_OTHER -¥Ý¥ê¥·¡¼¤òÀßÄꤹ¤ë¤³¤È¤À¤±¤Ç¤¢¤ê¡¢¤µ¤é¤Ë¤³¤ÎÊѹ¹¤ò¹Ô¤¨¤ë¤Î¤Ï +ポリシーを設定することだけであり、さらにこの変更を行えるのは .BR sched_setscheduler () -¤Î¸Æ¤Ó½Ð¤·¸µ¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤¬¥Ý¥ê¥·¡¼¤ÎÊѹ¹ÂÐ¾Ý¥×¥í¥»¥¹ +の呼び出し元の実効ユーザ ID がポリシーの変更対象プロセス .RI ( pid -¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹) ¤Î¼Â¥æ¡¼¥¶ ID ¤«¼Â¸ú¥æ¡¼¥¶ ID ¤È -°ìÃפ¹¤ë¾ì¹ç¤À¤±¤Ç¤¢¤ë¡£ +で指定されたプロセス) の実ユーザ ID か実効ユーザ ID と +一致する場合だけである。 -Linux 2.6.12 °Ê¹ß¤Ç¤Ï¡¢¥ê¥½¡¼¥¹À©¸Â +Linux 2.6.12 以降では、リソース制限 .B RLIMIT_RTPRIO -¤¬ÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤¬ +が定義されており、 +スケジューリング・ポリシーが .B SCHED_RR -¤È +と .B SCHED_FIFO -¤Î¾ì¹ç¤Î¡¢ÈóÆø¢¥×¥í¥»¥¹¤ÎÀÅŪͥÀèÅ٤ξå¸Â¤òÄê¤á¤Æ¤¤¤ë¡£ -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤ÈÍ¥ÀèÅÙ¤òÊѹ¹¤¹¤ëºÝ¤Î¥ë¡¼¥ë¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +の場合の、非特権プロセスの静的優先度の上限を定めている。 +スケジューリング・ポリシーと優先度を変更する際のルールは以下の通りである。 .IP * 2 -ÈóÆø¢¥×¥í¥»¥¹¤Ë 0 °Ê³°¤Î +非特権プロセスに 0 以外の .B RLIMIT_RTPRIO -¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -ÈóÆø¢¥×¥í¥»¥¹¤Ï¤½¤Î¥×¥í¥»¥¹¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤ÈÍ¥ÀèÅÙ¤ò -Êѹ¹¤Ç¤­¤ë¤¬¡¢Í¥ÀèÅÙ¤ò¸½ºß¤Î¼«¿È¤ÎÍ¥ÀèÅÙ¤È +ソフト・リミットが設定されている場合、 +非特権プロセスはそのプロセスのスケジューリング・ポリシーと優先度を +変更できるが、優先度を現在の自身の優先度と .B RLIMIT_RTPRIO -¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤ÎÂ礭¤¤Êý¤è¤ê¤â¹â¤¤ÃͤËÀßÄê¤Ç¤­¤Ê¤¤¤È¤¤¤¦À©¸Â¤¬²Ý¤µ¤ì¤ë¡£ +ソフト・リミットの大きい方よりも高い値に設定できないという制限が課される。 .IP * .B RLIMIT_RTPRIO -¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤¬ 0 ¤Î¾ì¹ç¡¢Í¥ÀèÅÙ¤ò²¼¤²¤ë¤«¡¢ -¥ê¥¢¥ë¥¿¥¤¥à¤Ç¤Ê¤¤¥Ý¥ê¥·¡¼¤ØÀÚ¤êÂؤ¨¤ë¤«¤ÎÊѹ¹¤À¤±¤¬µö²Ä¤µ¤ì¤ë¡£ +ソフト・リミットが 0 の場合、優先度を下げるか、 +リアルタイムでないポリシーへ切り替えるかの変更だけが許可される。 .IP * -¤¢¤ëÈóÆø¢¥×¥í¥»¥¹¤¬ÊÌ¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ¤³¤ì¤é¤ÎÊѹ¹¤ò¹Ô¤¦ºÝ¤Ë¤â¡¢ -Ʊ¤¸¥ë¡¼¥ë¤¬Å¬ÍѤµ¤ì¤ë¡£Êѹ¹¤ò¹Ô¤¨¤ë¤Î¤Ï¡¢Êѹ¹¤ò¹Ô¤ª¤¦¤È¤¹¤ë¥×¥í¥»¥¹ -¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤¬Êѹ¹ÂÐ¾Ý¤Î¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶ ID ¤«¼Â¸ú¥æ¡¼¥¶ ID ¤È -°ìÃפ·¤Æ¤¤¤ë¾ì¹ç¤Ë¸Â¤é¤ì¤ë¡£ +ある非特権プロセスが別のプロセスに対してこれらの変更を行う際にも、 +同じルールが適用される。変更を行えるのは、変更を行おうとするプロセス +の実効ユーザ ID が変更対象のプロセスの実ユーザ ID か実効ユーザ ID と +一致している場合に限られる。 .IP * .B SCHED_IDLE -¤Ë¤ÏÆÃÊ̤ʥ롼¥ë¤¬Å¬ÍѤµ¤ì¡¢ -¤³¤Î¥Ý¥ê¥·¡¼¤Î²¼¤ÇÆ°ºî¤¹¤ëÈóÆø¢¥×¥í¥»¥¹¤Ï¡¢¥ê¥½¡¼¥¹À©¸Â +には特別なルールが適用され、 +このポリシーの下で動作する非特権プロセスは、リソース制限 .B RLIMIT_RTPRIO -¤ÎÃͤˤ«¤«¤ï¤é¤º¼«¿È¤Î¥Ý¥ê¥·¡¼¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +の値にかかわらず自身のポリシーを変更することができない。 .PP -Æø¢¥×¥í¥»¥¹ +特権プロセス .RB ( CAP_SYS_NICE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹) ¤Î¾ì¹ç¡¢ +ケーパビリティを持つプロセス) の場合、 .B RLIMIT_RTPRIO -¤ÎÀ©¸Â¤Ï̵»ë¤µ¤ì¤ë; -¸Å¤¤¥«¡¼¥Í¥ë¤ÈƱ¤¸¤è¤¦¤Ë¡¢¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤ÈÍ¥ÀèÅÙ¤ËÂФ· -Ǥ°Õ¤ÎÊѹ¹¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +の制限は無視される; +古いカーネルと同じように、スケジューリング・ポリシーと優先度に対し +任意の変更を行うことができる。 .B RLIMIT_RTPRIO -¤Ë´Ø¤¹¤ë¤â¤Ã¤È¾Ü¤·¤¤¾ðÊó¤Ï +に関するもっと詳しい情報は .BR getrlimit (2) -¤ò»²¾È¤Î¤³¤È¡£ -.SS ±þÅú»þ´Ö (response time) -I/O ÂÔ¤Á¤ÇÄä»ß¤·¤¿¤è¤ê¹â¤¤Í¥ÀèÅÙ¤Î¥×¥í¥»¥¹¤ÏºÆ¤Ó¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤ë -Á°¤Ë¤¤¤¯¤é¤«¤Î±þÅú»þ´Ö¤¬¤«¤«¤ë¡£¥Ç¥Ð¥¤¥¹¡¦¥É¥é¥¤¥Ð¡¼¤ò½ñ¤¯¾ì¹ç¤Ë¤Ï +を参照のこと。 +.SS 応答時間 (response time) +I/O 待ちで停止したより高い優先度のプロセスは再びスケジューリングされる +前にいくらかの応答時間がかかる。デバイス・ドライバーを書く場合には .\" .BR request_irq (9) -.\" ¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë -"slow interrupt" ³ä¤ê¹þ¤ß¥Ï¥ó¥É¥é¡¼¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç -¤³¤Î±þÅú»þ´Ö¤ò·àŪ¤Ë¸º¾¯¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.SS ¤½¤Î¾ -»Ò¥×¥í¥»¥¹¤Ï +.\" に記述されている +"slow interrupt" 割り込みハンドラーを使用することで +この応答時間を劇的に減少させることができる。 +.SS その他 +子プロセスは .BR fork (2) -¤ÎºÝ¤Ë¿Æ¥×¥í¥»¥¹¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤È¥Ñ¥é¥á¡¼¥¿¤ò·Ñ¾µ¤¹¤ë¡£ +の際に親プロセスのスケジューリング・ポリシーとパラメータを継承する。 .BR execve (2) -¤ÎÁ°¸å¤Ç¡¢¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤È¥Ñ¥é¥á¡¼¥¿¤ÏÊÝ»ý¤µ¤ì¤ë¡£ +の前後で、スケジューリング・ポリシーとパラメータは保持される。 -¥ê¥¢¥ë¥¿¥¤¥à¡¦¥×¥í¥»¥¹¤ÏÂçÄñ¡¢¥Ú¡¼¥¸¥ó¥°¤ÎÂÔ¤Á»þ´Ö¤òÈò¤±¤ë¤¿¤á¤Ë +リアルタイム・プロセスは大抵、ページングの待ち時間を避けるために .BR mlock (2) -¤ä +や .BR mlockall (2) -¤ò»È¤Ã¤Æ¥á¥â¥ê¡¦¥í¥Ã¥¯¤ò¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を使ってメモリ・ロックをしなければならない。 -\fBSCHED_FIFO\fP ¤ä \fBSCHED_RR\fP ¤Ç¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤ë -¥×¥í¥»¥¹¤¬Ää»ß¤»¤º¤Ë̵¸Â¥ë¡¼¥×¤Ë´Ù¤ë¤È¡¢ -¾¤ÎÁ´¤Æ¤Î¤è¤êÄ㤤ͥÀèÅÙ¤Î¥×¥í¥»¥¹¤ò±Êµ×¤ËÄä»ß (block) ¤µ¤»¤Æ¤·¤Þ¤¦¤Î¤Ç¡¢ -¥½¥Õ¥È¥¦¥§¥¢³«È¯¼Ô¤Ï¥³¥ó¥½¡¼¥ë¤Î¥·¥§¥ë¤ÎÀÅŪͥÀèÅÙ¤ò¥Æ¥¹¥È¤¹¤ë -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤è¤ê¤â¾ï¤Ë¹â¤¯ÊݤĤ٤­¤Ç¤¢¤ë¡£ -¤³¤ì¤Ë¤è¤Ã¤Æ´üÂÔÄ̤ê¤ËÄä»ß¤·¤¿¤ê½ªÎ»¤·¤¿¤ê¤·¤Ê¤¤¥ê¥¢¥ë¥¿¥¤¥à¡¦ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¶ÛµÞ½ªÎ»¤µ¤»¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¡£ +\fBSCHED_FIFO\fP や \fBSCHED_RR\fP でスケジューリングされる +プロセスが停止せずに無限ループに陥ると、 +他の全てのより低い優先度のプロセスを永久に停止 (block) させてしまうので、 +ソフトウェア開発者はコンソールのシェルの静的優先度をテストする +アプリケーションよりも常に高く保つべきである。 +これによって期待通りに停止したり終了したりしないリアルタイム・ +アプリケーションを緊急終了させることが可能になる。 .BR getrlimit (2) -¤Î¥ê¥½¡¼¥¹À©¸Â +のリソース制限 .B RLIMIT_RTTIME -¤ÎÀâÌÀ¤â»²¾È¤Î¤³¤È¡£ +の説明も参照のこと。 -POSIX ¥·¥¹¥Æ¥à¤Ç¤Ï \fI\fP ¤Ë +POSIX システムでは \fI\fP に .B _POSIX_PRIORITY_SCHEDULING -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Î¤ß +が定義されている場合にのみ .BR sched_setscheduler () -¤È +と .BR sched_getscheduler () -¤¬»ÈÍѤǤ­¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +が使用できる。 +.SH 返り値 +成功した場合、 .BR sched_setscheduler () -¤Ï 0 ¤òÊÖ¤¹¡£ -À®¸ù¤·¤¿¾ì¹ç¡¢ +は 0 を返す。 +成功した場合、 .BR sched_getscheduler () -¤Ï¸½ºß¤Î¤½¤Î¥×¥í¥»¥¹¤Î¥Ý¥ê¥·¡¼ (ÈóÉé¤ÎÀ°¿ô) ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +は現在のそのプロセスのポリシー (非負の整数) を返す。 +エラーの場合、\-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EINVAL -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼ \fIpolicy\fP ¤¬´Ö°ã¤Ã¤Æ¤¤¤ë¤«¡¢ -\fIparam\fP ¤¬¤½¤Î¥Ý¥ê¥·¡¼¤Ç¤Ï°ÕÌ£¤ò¤Ê¤µ¤Ê¤¤¡£ +スケジューリング・ポリシー \fIpolicy\fP が間違っているか、 +\fIparam\fP がそのポリシーでは意味をなさない。 .TP .B EPERM -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬Å¬ÀÚ¤ÊÆø¢¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +呼び出したプロセスが適切な特権を持っていない。 .TP .B ESRCH -ID¤¬ \fIpid\fP ¤Î¥×¥í¥»¥¹¤¬¸«¤Ä¤«¤é¤Ê¤¤¡£ -.SH ½àµò -POSIX.1-2001 (⤷¡¢²¼µ­¤Î¥Ð¥°¤ÎÀá¤â»²¾È)¡£ -\fBSCHED_BATCH\fP ¤È \fBSCHED_IDLE\fP ¥Ý¥ê¥·¡¼¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -POSIX.1 ¤Ï¡¢ÈóÆø¢¥×¥í¥»¥¹¤¬ +IDが \fIpid\fP のプロセスが見つからない。 +.SH 準拠 +POSIX.1-2001 (但し、下記のバグの節も参照)。 +\fBSCHED_BATCH\fP と \fBSCHED_IDLE\fP ポリシーは Linux 固有である。 +.SH 注意 +POSIX.1 は、非特権プロセスが .BR sched_setscheduler () -¤ò¸Æ¤Ó½Ð¤¹¤¿¤á¤ËɬÍפʸ¢¸Â¤Î¾ÜºÙ¤òµ¬Äꤷ¤Æ¤ª¤é¤º¡¢ -¾ÜºÙ¤Ï¥·¥¹¥Æ¥à¤Ë¤è¤ê°Û¤Ê¤ë¡£ -Î㤨¤Ð¡¢Solaris 7 ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Ï¡¢ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶ ID ¤Þ¤¿¤Ï¼Â¸ú¥æ¡¼¥¶ ID ¤¬ -ÀßÄêÂÐ¾Ý¤Î¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶ ID ¤«Êݸ (save) set-user-ID ¤È -°ìÃפ·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡¢¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ +を呼び出すために必要な権限の詳細を規定しておらず、 +詳細はシステムにより異なる。 +例えば、Solaris 7 のマニュアルページでは、 +呼び出し元プロセスの実ユーザ ID または実効ユーザ ID が +設定対象のプロセスの実ユーザ ID か保存 (save) set-user-ID と +一致していなければならない、となっている。 .PP -¤â¤È¤â¤È¤Ï¡¢É¸½à¤Î Linux ¤Ï°ìÈÌÌÜŪ¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤È¤·¤Æ -À߷פµ¤ì¤Æ¤ª¤ê¡¢¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¡¦¥×¥í¥»¥¹¤äÂÐÏÃŪ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¡¢ -¥ê¥¢¥ë¥¿¥¤¥àÀ­¤ÎÍ׵᤬¸·¤·¤¯¤Ê¤¤¥ê¥¢¥ë¥¿¥¤¥à¡¦¥¢¥×¥ê¥±¡¼¥·¥ç¥ó -(ÉáÄ̤ϥ¿¥¤¥ß¥ó¥°¤Î±þÅú´ü¸Â (deadline) ¤òËþ¤¿¤¹É¬Íפ¬¤¢¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó) -¤ò°·¤¦¤³¤È¤¬¤Ç¤­¤¿¡£ -Linux ¥«¡¼¥Í¥ë 2.6 ¤Ç¤Ï¡¢ -¥«¡¼¥Í¥ë¤Î¥×¥ê¥¨¥ó¥×¥·¥ç¥ó (¥¿¥¹¥¯¤ÎÃÖ¤­´¹¤¨) ¤¬²Äǽ¤Ç¤¢¤ê¡¢ -¿·¤¿¤ËƳÆþ¤µ¤ì¤¿ O(1) ¥¹¥±¥¸¥å¡¼¥é¤Ë¤è¤ê¡¢ -¥¢¥¯¥Æ¥£¥Ö¤Ê¥¿¥¹¥¯¤Î¿ô¤Ë´Ø¤ï¤é¤º¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ËɬÍפʻþ´Ö¤Ï -¸ÇÄê¤Ç³ÎÄêŪ (deterministic) ¤Ç¤¢¤ë¤³¤È¤¬Êݾڤµ¤ì¤Æ¤¤¤ë¡£ -¤½¤ì¤Ë¤â´Ø¤ï¤é¤º¡¢¥«¡¼¥Í¥ë 2.6.17 ¤Þ¤Ç¤Ï -¿¿¤Î¥ê¥¢¥ë¥¿¥¤¥à¡¦¥³¥ó¥Ô¥å¡¼¥Æ¥£¥ó¥°¤Ï¼Â¸½¤Ç¤­¤Ê¤«¤Ã¤¿¡£ -.SS ËÜή¤Î Linux ¥«¡¼¥Í¥ë¤Ç¤Î¥ê¥¢¥ë¥¿¥¤¥àµ¡Ç½ +もともとは、標準の Linux は一般目的のオペレーティングシステムとして +設計されており、バックグラウンド・プロセスや対話的アプリケーション、 +リアルタイム性の要求が厳しくないリアルタイム・アプリケーション +(普通はタイミングの応答期限 (deadline) を満たす必要があるアプリケーション) +を扱うことができた。 +Linux カーネル 2.6 では、 +カーネルのプリエンプション (タスクの置き換え) が可能であり、 +新たに導入された O(1) スケジューラにより、 +アクティブなタスクの数に関わらずスケジューリングに必要な時間は +固定で確定的 (deterministic) であることが保証されている。 +それにも関わらず、カーネル 2.6.17 までは +真のリアルタイム・コンピューティングは実現できなかった。 +.SS 本流の Linux カーネルでのリアルタイム機能 .\" FIXME . Probably this text will need some minor tweaking .\" by about the time of 2.6.30; ask Carsten Emde about this then. -¥«¡¼¥Í¥ë 2.6.18 ¤«¤é¸½ºß¤Þ¤Ç¡¢ -Linux ¤Ï½ù¡¹¤Ë¥ê¥¢¥ë¥¿¥¤¥àµ¡Ç½¤òÈ÷¤¨¤Ä¤Ä¤¢¤ë¤¬¡¢ -¤³¤ì¤é¤Îµ¡Ç½¤Î¤Û¤È¤ó¤É¤Ï¡¢ -Ingo Molnar, Thomas Gleixner, Steven Rostedt ¤é¤Ë¤è¤Ã¤Æ³«È¯¤µ¤ì¤¿¡¢ -°ÊÁ°¤Î +カーネル 2.6.18 から現在まで、 +Linux は徐々にリアルタイム機能を備えつつあるが、 +これらの機能のほとんどは、 +Ingo Molnar, Thomas Gleixner, Steven Rostedt らによって開発された、 +以前の .I realtime-preempt -¥Ñ¥Ã¥Á¤«¤é¤Î¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î¥Ñ¥Ã¥Á¤¬ËÜή¤Î¥«¡¼¥Í¥ë¤Ë´°Á´¤Ë¥Þ¡¼¥¸¤µ¤ì¤ë¤Þ¤Ç¤Ï -(¥Þ¡¼¥¸¤Î´°Î»¤Ï¥«¡¼¥Í¥ë 2.6.30 ¤¢¤¿¤ê¤ÎͽÄê)¡¢ -ºÇ¹â¤Î¥ê¥¢¥ë¥¿¥¤¥àÀ­Ç½¤òãÀ®¤¹¤ë¤Ë¤Ï realtime-preempt ¥Ñ¥Ã¥Á¤ò -ÁȤ߹þ¤Þ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ì¤é¤Î¥Ñ¥Ã¥Á¤Ï +パッチからのものである。 +これらのパッチが本流のカーネルに完全にマージされるまでは +(マージの完了はカーネル 2.6.30 あたりの予定)、 +最高のリアルタイム性能を達成するには realtime-preempt パッチを +組み込まなければならない。 +これらのパッチは .in +4n .nf patch-\fIkernelversion\fP-rt\fIpatchversion\fP .fi .in -¤È¤¤¤¦Ì¾Á°¤Ç¡¢ +という名前で、 .I http://www.kernel.org/pub/linux/kernel/projects/rt/ -¤«¤é¥À¥¦¥ó¥í¡¼¥É¤Ç¤­¤ë¡£ +からダウンロードできる。 -¤³¤Î¥Ñ¥Ã¥Á¤¬Å¬ÍѤµ¤ì¤º¡¢¤«¤Ä¥Ñ¥Ã¥Á¤ÎÆâÍƤÎËÜή¤Î¥«¡¼¥Í¥ë¤Ø¤Î¥Þ¡¼¥¸¤¬ -´°Î»¤¹¤ë¤Þ¤Ç¤Ï¡¢¥«¡¼¥Í¥ë¤ÎÀßÄê¤Ç¤Ï +このパッチが適用されず、かつパッチの内容の本流のカーネルへのマージが +完了するまでは、カーネルの設定では .BR CONFIG_PREEMPT_NONE , .BR CONFIG_PREEMPT_VOLUNTARY , .B CONFIG_PREEMPT_DESKTOP -¤Î 3¤Ä¤Î¥×¥ê¥¨¥ó¥×¥·¥ç¥ó¡¦¥¯¥é¥¹ (preemption class) ¤À¤±¤¬Ä󶡤µ¤ì¤ë¡£ -¤³¤ì¤é¤Î¥¯¥é¥¹¤Ç¤Ï¡¢ºÇ°­¤Î¾ì¹ç¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Ãٱ䤬¤½¤ì¤¾¤ì -Á´¤¯¸º¤é¤Ê¤¤¡¢¤¤¤¯¤é¤«¸º¤ë¡¢¤«¤Ê¤ê¸º¤ë¡£ +の 3つのプリエンプション・クラス (preemption class) だけが提供される。 +これらのクラスでは、最悪の場合のスケジューリング遅延がそれぞれ +全く減らない、いくらか減る、かなり減る。 -¥Ñ¥Ã¥Á¤¬Å¬ÍѤµ¤ì¤¿¾ì¹ç¡¢¤Þ¤¿¤Ï¥Ñ¥Ã¥Á¤ÎÆâÍƤÎËÜή¤Î¥«¡¼¥Í¥ë¤Ø¤Î¥Þ¡¼¥¸¤¬ -´°Î»¤·¤¿¸å¤Ç¤Ï¡¢¾åµ­¤Ë²Ã¤¨¤ÆÀßÄê¹àÌܤȤ·¤Æ +パッチが適用された場合、またはパッチの内容の本流のカーネルへのマージが +完了した後では、上記に加えて設定項目として .B CONFIG_PREEMPT_RT -¤¬ÍøÍѲÄǽ¤Ë¤Ê¤ë¡£¤³¤Î¹àÌܤòÁªÂò¤¹¤ë¤È¡¢ -Linux ¤ÏÄ̾ï¤Î¥ê¥¢¥ë¥¿¥¤¥à¡¦¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤ËÊѿȤ¹¤ë¡£ -¤³¤Î¾ì¹ç¤Ë¤Ï¡¢ +が利用可能になる。この項目を選択すると、 +Linux は通常のリアルタイム・オペレーティングシステムに変身する。 +この場合には、 .BR sched_setscheduler () -¤ÇÁªÂò¤Ç¤­¤ë FIFO ¤È RR ¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤Ï¡¢ -¿¿¤Î¥ê¥¢¥ë¥¿¥¤¥àÍ¥ÀèÅÙ¤ò»ý¤Ä¥×¥í¥»¥¹¤òºÇ°­¤Î¾ì¹ç¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Ãٱ䤬 -ºÇ¾®¤È¤Ê¤ë´Ä¶­¤ÇÆ°ºî¤µ¤»¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ -.SH ¥Ð¥° -POSIX ¤Ç¤Ï¡¢À®¸ù»þ¤Ë +で選択できる FIFO と RR のスケジューリング・ポリシーは、 +真のリアルタイム優先度を持つプロセスを最悪の場合のスケジューリング遅延が +最小となる環境で動作させるために使われることになる。 +.SH バグ +POSIX では、成功時に .BR sched_setscheduler () -¤ÏľÁ°¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼¤òÊÖ¤¹¤Ù¤­¤È¤µ¤ì¤Æ¤¤¤ë¡£ -Linux ¤Î +は直前のスケジューリング・ポリシーを返すべきとされている。 +Linux の .BR sched_setscheduler () -¤Ï¤³¤ÎÍ×µá»ÅÍͤ˽àµò¤·¤Æ¤ª¤é¤º¡¢ -À®¸ù»þ¤Ë¤Ï¾ï¤Ë 0 ¤òÊÖ¤¹¡£ -.SH ´ØÏ¢¹àÌÜ +はこの要求仕様に準拠しておらず、 +成功時には常に 0 を返す。 +.SH 関連項目 .BR getpriority (2), .BR mlock (2), .BR mlockall (2), @@ -485,6 +485,6 @@ Linux .I Programming for the real world \- POSIX.4 by Bill O. Gallmeister, O'Reilly & Associates, Inc., ISBN 1-56592-074-0 .PP -¥«¡¼¥Í¥ë¡¦¥½¡¼¥¹Æâ¤Î¥Õ¥¡¥¤¥ë +カーネル・ソース内のファイル .I Documentation/scheduler/sched-rt-group.txt -(¥«¡¼¥Í¥ë 2.6.25 °Ê¹ß) +(カーネル 2.6.25 以降) diff --git a/release/man2/sched_yield.2 b/release/man2/sched_yield.2 index 813646a9..db674566 100644 --- a/release/man2/sched_yield.2 +++ b/release/man2/sched_yield.2 @@ -33,66 +33,66 @@ .\" by HANATAKA Shinya .\" Updated 2008-11-10, Akihiro MOTOKI , LDP v3.13 .\" -.\"WORD: yield ¶õ¤±ÅϤ¹ -.\"WORD: block ÃæÃÇ(block) -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: processor ¥×¥í¥»¥Ã¥µ¡¼ -.\"WORD: queue ¥­¥å¡¼ -.\"WORD: static ÀÅŪ -.\"WORD: priority ¥×¥é¥¤¥ª¥ê¥Æ¥£ -.\"WORD: scheduling ¥¹¥±¥¸¥å¡¼¥ê¥ó¥° +.\"WORD: yield 空け渡す +.\"WORD: block 中断(block) +.\"WORD: process プロセス +.\"WORD: processor プロセッサー +.\"WORD: queue キュー +.\"WORD: static 静的 +.\"WORD: priority プライオリティ +.\"WORD: scheduling スケジューリング .\" .TH SCHED_YIELD 2 2008-10-18 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sched_yield \- ¥×¥í¥»¥Ã¥µ¡¼¤ò¶õ¤±ÅϤ¹(yield) -.SH ½ñ¼° +.SH 名前 +sched_yield \- プロセッサーを空け渡す(yield) +.SH 書式 .B #include .sp .B int sched_yield(void); -.SH ÀâÌÀ +.SH 説明 .BR sched_yield () -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¡¢¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤¬ CPU ¤Î»ÈÍѸ¢¤ò¼êÊü¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ -¤½¤Î¥¹¥ì¥Ã¥É¤Ï¡¢¤½¤Î¥¹¥ì¥Ã¥É¤ÎÀÅŪ¥×¥é¥¤¥ª¥ê¥Æ¥£¤Î¥­¥å¡¼¤ÎËöÈø¤Ë -°ÜÆ°¤·¡¢¿·¤·¤¤¥¹¥ì¥Ã¥É¤¬Áö¤ê»Ï¤á¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï +を呼び出すことで、呼び出したスレッドが CPU の使用権を手放すことができる。 +そのスレッドは、そのスレッドの静的プライオリティのキューの末尾に +移動し、新しいスレッドが走り始める。 +.SH 返り値 +成功した場合は .BR sched_yield () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +は 0 を返す。 +エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -Linux ¤Î¼ÂÁõ¤Ç¤Ï¡¢ +が適切に設定される。 +.SH エラー +Linux の実装では、 .BR sched_yield () -¤Ï¾ï¤ËÀ®¸ù¤¹¤ë¡£ -.SH ½àµò +は常に成功する。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .BR sched_yield () -¤ò¸Æ¤Ó½Ð¤·¤¿»þÅÀ¤ÇºÇÂçÍ¥ÀèÅ٤Υꥹ¥È¤ÎÃæ¤Ë¸Æ¤Ó½Ð¤·¸µ¤Î¥¹¥ì¥Ã¥É¤·¤« -¸ºß¤·¤Ê¤±¤ì¤Ð¡¢¤½¤Î¥¹¥ì¥Ã¥É¤Ï¸Æ¤Ó½Ð¤·¸å¤âÁö¤ê³¤±¤ë¤³¤È¤Ë¤Ê¤ë¡£ +を呼び出した時点で最大優先度のリストの中に呼び出し元のスレッドしか +存在しなければ、そのスレッドは呼び出し後も走り続けることになる。 -POSIX ¥·¥¹¥Æ¥à¤Ç +POSIX システムで .BR sched_yield () -¤Ï \fI\fP ¤Ë +は \fI\fP に .B _POSIX_PRIORITY_SCHEDULING -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Î¤ß»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ +が定義されている場合にのみ使用可能である。 .BR sched_yield () -¤òÀïάŪ¤Ë¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¡¢(¶ËÅÙ¤Ë) ¶¥¹ç¤¹¤ë¥ê¥½¡¼¥¹ (mutex ¤Ê¤É) -¤ò¸Æ¤Ó½Ð¤·¸µ¤¬²òÊü¤·¤¿ºÝ¤Ë¾¤Î¥¹¥ì¥Ã¥É¤ä¥×¥í¥»¥¹¤Ë¼Â¹Ôµ¡²ñ¤òÍ¿¤¨¤ë¤³¤È¤Ç¡¢ -À­Ç½¤ò¾å¤²¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を戦略的に呼び出すことで、(極度に) 競合するリソース (mutex など) +を呼び出し元が解放した際に他のスレッドやプロセスに実行機会を与えることで、 +性能を上げることができる。 .BR sched_yield () -¤òɬÍפâ¤Ê¤¤¤Î¤Ë¸Æ¤Ó½Ð¤·¤¿¤ê¡¢ÉÔŬÀڤʾìÌÌ (Î㤨¤Ð¡¢Â¾¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥° -ÂоݤȤʤ륹¥ì¥Ã¥É¤¬É¬ÍפȤ¹¤ë¥ê¥½¡¼¥¹¤ò¸Æ¤Ó½Ð¤·¸µ¤¬ÊÝ»ý¤·¤¿¤Þ¤Þ¤Î¾õÂÖ) -¤Ç¸Æ¤Ó½Ð¤·¤¿¤ê¤¹¤ë¤Î¤ÏÈò¤±¤ë¤³¤È¡£¤Ê¤¼¤Ê¤é¡¢ +を必要もないのに呼び出したり、不適切な場面 (例えば、他のスケジューリング +対象となるスレッドが必要とするリソースを呼び出し元が保持したままの状態) +で呼び出したりするのは避けること。なぜなら、 .BR sched_yield () -¤Î¸Æ¤Ó½Ð¤·¤è¤êÉÔɬÍפʥ³¥ó¥Æ¥­¥¹¥È¥¹¥¤¥Ã¥Á¤¬µ¯¤³¤ê¡¢¥·¥¹¥Æ¥àÀ­Ç½¤¬ -Îô²½¤¹¤ë·ë²Ì¤Ë¤Ê¤ë¤«¤é¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ -Linux ¤Î¥¹¥±¡¼¥¸¥å¥ê¥ó¥°(scheduling)¤Ë¤Ä¤¤¤Æ¤Ï +の呼び出しより不必要なコンテキストスイッチが起こり、システム性能が +劣化する結果になるからである。 +.SH 関連項目 +Linux のスケージュリング(scheduling)については .BR sched_setscheduler (2) -¤ò»²¾È¤»¤è¡£ +を参照せよ。 .PP .I Programming for the real world \- POSIX.4 by Bill O. Gallmeister, O'Reilly & Associates, Inc., ISBN 1-56592-074-0 diff --git a/release/man2/select.2 b/release/man2/select.2 index 725f39c1..1c2eec3c 100644 --- a/release/man2/select.2 +++ b/release/man2/select.2 @@ -49,27 +49,27 @@ .\" Updated 2007-09-08, Akihiro MOTOKI, LDP v2.64 .\" Updated 2008-08-06, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: synchronous Ʊ´ü¤µ¤»¤ë -.\"WORD: multiplexing ¿½Å²½ -.\"WORD: file descriptor ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: descriptor µ­½Ò»Ò -.\"WORD: macro ¥Þ¥¯¥í -.\"WORD: block Ää»ß(block) -.\"WORD: block ¶Ø»ß(block) -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: timeout »þ´ÖÀÚ¤ì(timeout) -.\"WORD: portable °Ü¿¢À­¤Î¤¢¤ë +.\"WORD: synchronous 同期させる +.\"WORD: multiplexing 多重化 +.\"WORD: file descriptor ファイルディスクリプタ +.\"WORD: descriptor 記述子 +.\"WORD: macro マクロ +.\"WORD: block 停止(block) +.\"WORD: block 禁止(block) +.\"WORD: signal シグナル +.\"WORD: timeout 時間切れ(timeout) +.\"WORD: portable 移植性のある .\" .TH SELECT 2 2010-08-31 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO \- ¿½Å²½¤µ¤ì¤¿ I/O ¤ÎƱ´ü¤ò¤È¤ë -.SH ½ñ¼° +.SH 名前 +select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO \- 多重化された I/O の同期をとる +.SH 書式 .nf -/* POSIX.1-2001 ¤Ë½¾¤¦¾ì¹ç */ +/* POSIX.1-2001 に従う場合 */ .br .B #include .sp -/* °ÊÁ°¤Îµ¬³Ê¤Ë½¾¤¦¾ì¹ç */ +/* 以前の規格に従う場合 */ .br .B #include .br @@ -96,133 +96,133 @@ select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO \- ¿ .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR pselect (): _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 -.SH ÀâÌÀ +.SH 説明 .BR select () -¤ä +や .BR pselect () -¤ò»È¤¦¤È¡¢¥×¥í¥°¥é¥à¤ÇÊ£¿ô¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò´Æ»ë¤·¡¢ -°ì¤Ä°Ê¾å¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¤¢¤ë¼ï¤Î I/O Áàºî¤Î -¡Öready (½àÈ÷¤¬¤Ç¤­¤¿)¡×¾õÂÖ (Î㤨¤Ð¡¢Æɤ߹þ¤ß²Äǽ¤Ë¤Ê¤Ã¤¿¾õÂÖ) -¤Ë¤Ê¤ë¤Þ¤ÇÂԤĤ³¤È¤¬¤Ç¤­¤ë¡£ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ ready (½àÈ÷¤¬¤Ç¤­¤¿) ¤È¤Ï¡¢ -Âбþ¤¹¤ë I/O Áàºî (Î㤨¤Ð +を使うと、プログラムで複数のファイルディスクリプタを監視し、 +一つ以上のファイルディスクリプタがある種の I/O 操作の +「ready (準備ができた)」状態 (例えば、読み込み可能になった状態) +になるまで待つことができる。 +ファイルディスクリプタが ready (準備ができた) とは、 +対応する I/O 操作 (例えば .BR read (2) -¤Ê¤É) ¤¬Ää»ß (block) ¤Ê¤·¤Ë¼Â¹Ô²Äǽ¤Ê¾õÂ֤ˤ¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +など) が停止 (block) なしに実行可能な状態にあることを意味する。 .PP .BR select () -¤È +と .BR pselect () -¤ÎÆ°ºî¤ÏƱ¤¸¤Ç¤¢¤ë¤¬¡¢°Ê²¼¤Î 3 ÅÀ¤¬°Û¤Ê¤ë: +の動作は同じであるが、以下の 3 点が異なる: .TP (i) .BR select () -¤Ç¤Ï¡¢¥¿¥¤¥à¥¢¥¦¥È»þ´Ö¤Î»ØÄê¤Ë¹½Â¤ÂÎ +では、タイムアウト時間の指定に構造体 .I struct timeval -(Éᦥޥ¤¥¯¥íÉÃñ°Ì) ¤òÍѤ¤¤ë¡£ -°ìÊý¡¢ +(秒・マイクロ秒単位) を用いる。 +一方、 .BR pselect () -´Ø¿ô¤Ç¤Ï¡¢¹½Â¤ÂÎ +関数では、構造体 .I struct timespec -(ÉᦥʥÎÉÃñ°Ì) ¤òÍѤ¤¤ë¡£ +(秒・ナノ秒単位) を用いる。 .TP (ii) .BR select () -¤Ï»Ä¤ê»þ´Ö¤ò¼¨¤¹ +は残り時間を示す .I timeout -°ú¤­¿ô¤ò¹¹¿·¤¹¤ë¤³¤È¤¬¤¢¤ë¡£ +引き数を更新することがある。 .BR pselect () -¤Ï¤³¤Î°ú¤­¿ô¤òÊѹ¹¤·¤Ê¤¤¡£ +はこの引き数を変更しない。 .TP (iii) .BR select () -¤Ï +は .I sigmask -°ú¤­¿ô¤ò»ý¤¿¤Ê¤¤¡£¤½¤ÎÆ°ºî¤Ï +引き数を持たない。その動作は .I sigmask -¤Ë NULL ¤ò»ØÄꤷ¤¿¾ì¹ç¤Î +に NULL を指定した場合の .BR pselect () -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .PP -3 ¤Ä¤ÎÆÈΩ¤·¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤Î´Æ»ë¤ò¹Ô¤¦¡£ +3 つの独立したファイルディスクリプタ集合の監視を行う。 .I readfds -¤ËÆþ¤ì¤é¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤Ä¤¤¤Æ¤Ï¡¢Æɤ߹þ¤ß¤¬²Äǽ¤«¤É¤¦¤«¤ò -´Æ»ë¤¹¤ë (¤è¤êÀµ³Î¤Ë¤¤¤¦¤È¡¢Ää»ß (block) ¤Ê¤·¤ÇÆɤळ¤È¤¬¤Ç¤­¤ë¤«¤ò -Ä´¤Ù¤ë¡£¥Õ¥¡¥¤¥ë¤Î½ªÃ¼ (end-of-file) ¤Î¾ì¹ç¤â¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÆɤ߹þ¤ß²Äǽ¤È¤·¤Æ°·¤ï¤ì¤ë)¡£ +に入れられたディスクリプタについては、読み込みが可能かどうかを +監視する (より正確にいうと、停止 (block) なしで読むことができるかを +調べる。ファイルの終端 (end-of-file) の場合も、 +ファイルディスクリプタは読み込み可能として扱われる)。 .I writefds -¤ËÆþ¤ì¤é¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤Ä¤¤¤Æ¤Ï¡¢Ää»ß¤»¤º¤Ë½ñ¤­¹þ¤ß¤¬ -²Äǽ¤«¤É¤¦¤«¤ò´Æ»ë¤¹¤ë¡£ +に入れられたディスクリプタについては、停止せずに書き込みが +可能かどうかを監視する。 .I exceptfds -¤Ë¤¢¤ë¤â¤Î¤Ë¤Ä¤¤¤Æ¤Ï¡¢Îã³°¤Î´Æ»ë¤ò¹Ô¤Ê¤¦¡£¥·¥¹¥Æ¥à¥³¡¼¥ë½ªÎ»»þ¤Ë¡¢ -¤É¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¾õÂÖ¤¬¼ÂºÝ¤ËÊѲ½¤·¤¿¤«¼¨¤¹¤¿¤á¤Ë¡¢ -½¸¹ç¤ÎÆâÍƤ¬Êѹ¹¤µ¤ì¤ë¡£ -¤¢¤ë¼ïÊ̤Υ¤¥Ù¥ó¥È¤ò´Æ»ë¤·¤¿¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬°ì¤Ä¤â¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ -Âбþ¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤Ë NULL ¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +にあるものについては、例外の監視を行なう。システムコール終了時に、 +どのファイルディスクリプタの状態が実際に変化したか示すために、 +集合の内容が変更される。 +ある種別のイベントを監視したいファイルディスクリプタが一つもない場合には、 +対応するファイルディスクリプタ集合に NULL を指定することができる。 .PP -½¸¹ç¤òÁàºî¤¹¤ë¤¿¤á¤Ë 4 ¤Ä¤Î¥Þ¥¯¥í¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¡£ +集合を操作するために 4 つのマクロが提供されている。 .BR FD_ZERO () -¤Ï½¸¹ç¤ò¾Ãµî¤¹¤ë¡£ +は集合を消去する。 .BR FD_SET () -¤È +と .BR FD_CLR () -¤Ï¤½¤ì¤¾¤ì»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î½¸¹ç¤Ø¤ÎÄɲᢺï½ü¤ò¹Ô¤¦¡£ +はそれぞれ指定したファイルディスクリプタの集合への追加、削除を行う。 .BR FD_ISSET () -¤Ï½¸¹ç¤Ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¤¢¤ë¤«¤É¤¦¤«Ä´¤Ù¤ë; -¤³¤Î¥Þ¥¯¥í¤Ï +は集合にファイルディスクリプタがあるかどうか調べる; +このマクロは .BR select () -¤¬½ªÎ»¤·¤¿¸å¤Ë»È¤¦¤ÈÊØÍø¤Ç¤¢¤ë¡£ +が終了した後に使うと便利である。 .PP .I nfds -¤Ï 3 ¤Ä¤Î½¸¹ç¤Ë´Þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎºÇÂçÃÍ¤Ë 1 ¤ò­¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +は 3 つの集合に含まれるファイルディスクリプタの最大値に 1 を足したものである。 .PP .I timeout -¤Ï +は .BR select () -¤¬Éüµ¢¤¹¤ë¤Þ¤Ç¤Î·Ð²á»þ´Ö¤Î¾å¸Â¤Ç¤¢¤ë¡£ +が復帰するまでの経過時間の上限である。 .I timeval -¹½Â¤ÂΤÎξÊý¤Î¥Õ¥£¡¼¥ë¥É¤¬ 0 ¤Î¾ì¹ç¡¢ +構造体の両方のフィールドが 0 の場合、 .BR select () -¤Ï¤¹¤°¤ËÉüµ¢¤¹¤ë -(¤³¤Îµ¡Ç½¤Ï¥Ý¡¼¥ê¥ó¥° (polling) ¤ò¹Ô¤¦¤Î¤ËÊØÍø¤Ç¤¢¤ë)¡£ +はすぐに復帰する +(この機能はポーリング (polling) を行うのに便利である)。 .I timeout -¤Ë NULL (¥¿¥¤¥à¥¢¥¦¥È¤Ê¤·) -¤¬»ØÄꤵ¤ì¤ë¤È¡¢ +に NULL (タイムアウトなし) +が指定されると、 .BR select () -¤Ï̵´ü¸Â¤ËÄä»ß (block) ¤¹¤ë¡£ +は無期限に停止 (block) する。 .PP .I sigmask -¤Ï¡¢¥·¥°¥Ê¥ë¥Þ¥¹¥¯ +は、シグナルマスク .RB ( sigprocmask (2) -¤ò»²¾È) ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +を参照) へのポインタである。 .I sigmask -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が NULL でない場合、 .BR pselect () -¤Ï +は .I sigmask -¤¬»Ø¤·¤Æ¤¤¤ë¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ç¸½ºß¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÃÖ¤­´¹¤¨¤Æ¤«¤é¡¢ -"select" ´Ø¿ô¤ò¼Â¹Ô¤·¡¢ -½ªÎ»¸å¤Ë¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ò¸µ¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ËÌ᤹¡£ +が指しているシグナルマスクで現在のシグナルマスクを置き換えてから、 +"select" 関数を実行し、 +終了後にシグナルマスクを元のシグナルマスクに戻す。 .PP .I timeout -°ú¤­¿ô¤ÎÀºÅ٤ΰ㤤¤ò½ü¤¯¤È¡¢°Ê²¼¤Î +引き数の精度の違いを除くと、以下の .BR pselect () -¤Î¸Æ¤Ó½Ð¤·¤Ï¡¢ +の呼び出しは、 .nf ready = pselect(nfds, &readfds, &writefds, &exceptfds, timeout, &sigmask); .fi -¼¡¤Î¥³¡¼¥ë¤ò +次のコールを .I atomic -¤Ë¼Â¹Ô¤¹¤ë¤Î¤ÈÅù²Á¤Ç¤¢¤ë¡£ +に実行するのと等価である。 .nf sigset_t origmask; @@ -233,34 +233,34 @@ _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .fi .PP .BR pselect () -¤¬É¬ÍפˤʤëÍýͳ¤Ï¡¢¥·¥°¥Ê¥ë¤ä¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¾õÂÖÊѲ½¤ò -ÂÔ¤Á¤¿¤¤¤È¤­¤Ë¤Ï¡¢¶¥¹ç¾õÂÖ¤òÈò¤±¤ë¤¿¤á¤Ë atomic ¤Ê¥Æ¥¹¥È¤¬É¬Íפˤʤë -¤«¤é¤Ç¤¢¤ë¡£ -(¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬Âç°è¥Õ¥é¥°¤òÀßÄꤷ¤ÆÌá¤ë¾ì¹ç¤ò¹Í¤¨¤Æ¤ß¤è¤¦¡£ -¤³¤ÎÂç°è¥Õ¥é¥°¤Î¥Æ¥¹¥È¤Ë³¤±¤Æ +が必要になる理由は、シグナルやファイルディスクリプタの状態変化を +待ちたいときには、競合状態を避けるために atomic なテストが必要になる +からである。 +(シグナルハンドラが大域フラグを設定して戻る場合を考えてみよう。 +この大域フラグのテストに続けて .BR select () -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢ -¥·¥°¥Ê¥ë¤¬¥Æ¥¹¥È¤Îľ¸å¤«¤Ä¸Æ¤Ó½Ð¤·¤ÎľÁ°¤ËÆϤ¤¤¿»þ¤Ë¤Ï +を呼び出すと、 +シグナルがテストの直後かつ呼び出しの直前に届いた時には .BR select () -¤Ï±Êµ×¤Ë¥Ï¥ó¥°¤·¤Æ¤·¤Þ¤¦¤«¤â¤·¤ì¤Ê¤¤¡£ -°ìÊý¡¢ +は永久にハングしてしまうかもしれない。 +一方、 .BR pselect () -¤ò»È¤¦¤È¡¢¤Þ¤º¥·¥°¥Ê¥ë¤ò¶Ø»ß (block) ¤·¤Æ¡¢Æþ¤Ã¤Æ¤¯¤ë¥·¥°¥Ê¥ë¤òÁàºî¤·¡¢ -˾¤ß¤Î +を使うと、まずシグナルを禁止 (block) して、入ってくるシグナルを操作し、 +望みの .I sigmask -¤Ç +で .BR pselect () -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¡¢Á°µ­¤Î¶¥¹ç¤òÈò¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£) -.SS ¥¿¥¤¥à¥¢¥¦¥È -¤³¤ì¤é¤Î´Ø¿ô¤Ç»ÈÍѤµ¤ì¤ë»þ´Ö´ØÏ¢¤Î¹½Â¤ÂΤϡ¢ +を呼び出すことで、前記の競合を避けることができる。) +.SS タイムアウト +これらの関数で使用される時間関連の構造体は、 .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で以下のように定義されている。 .in +4n .nf struct timeval { - long tv_sec; /* Éà */ - long tv_usec; /* ¥Þ¥¤¥¯¥íÉà */ + long tv_sec; /* 秒 */ + long tv_usec; /* マイクロ秒 */ }; .fi .in @@ -268,249 +268,249 @@ struct timeval { .in +4n .nf struct timespec { - long tv_sec; /* Éà */ - long tv_nsec; /* ¥Ê¥ÎÉà */ + long tv_sec; /* 秒 */ + long tv_nsec; /* ナノ秒 */ }; .fi .in -(POSIX.1-2001 ¤Ç¤ÎÄêµÁ¤Ë¤Ä¤¤¤Æ¤Ï²¼µ­¤Î¡ÖÃí°Õ¡×¤ò»²¾È) +(POSIX.1-2001 での定義については下記の「注意」を参照) .PP -ÉÃñ°Ì°Ê²¼¤ÎÀºÅ٤ǥ¹¥ê¡¼¥×¤ò¼Â¸½¤¹¤ë -°Ü¿¢À­¤Î¹â¤¤ÊýË¡¤È¤·¤Æ¡¢ -3 ¤Ä¤Î½¸¹çÁ´¤Æ¤ò¶õ¡¢ +秒単位以下の精度でスリープを実現する +移植性の高い方法として、 +3 つの集合全てを空、 .I nfds -¤ò 0 ¡¢ +を 0 、 .I timeout -¤ò NULL ¤Ç¤Ê¤¤ÃͤËÀßÄꤷ¤Æ +を NULL でない値に設定して .BR select () -¤ò¸Æ¤Ó½Ð¤¹¤È¤¤¤¦ÊýË¡¤ò»È¤Ã¤Æ¤¤¤ë¥³¡¼¥É¤â¤¢¤ë¡£ +を呼び出すという方法を使っているコードもある。 .PP -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR select () -¤Ï +は .I timeout -¤òÊѹ¹¤·¡¢»Ä¤ê¤ÎÄä»ß»þ´Ö¤òÈ¿±Ç¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¬¡¢ -¾¤Î¤Û¤È¤ó¤É¤Î¼ÂÁõ¤Ç¤Ï¤³¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤ -(POSIX.1-2001 ¤Ï¤É¤Á¤é¤ÎÆ°ºî¤âǧ¤á¤Æ¤¤¤ë)¡£ -¤³¤Î¤¿¤á¡¢ +を変更し、残りの停止時間を反映するようになっているが、 +他のほとんどの実装ではこのようになっていない +(POSIX.1-2001 はどちらの動作も認めている)。 +このため、 .I timeout -¤ò»²¾È¤·¤Æ¤¤¤ë Linux ¤Î¥³¡¼¥É¤ò¾¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤Ø -°Ü¿¢¤¹¤ë¾ì¹ç¡¢ÌäÂ꤬µ¯¤³¤ë¡£ -¤Þ¤¿¡¢¥ë¡¼¥×¤ÎÃæ¤Ç \fItimeval\fP ¹½Â¤ÂΤò½é´ü²½¤»¤º¤Ë¤½¤Î¤Þ¤ÞºÆÍøÍѤ·¤Æ +を参照している Linux のコードを他のオペレーティング・システムへ +移植する場合、問題が起こる。 +また、ループの中で \fItimeval\fP 構造体を初期化せずにそのまま再利用して .BR select () -¤òÊ£¿ô²ó¹Ô¤Ê¤Ã¤Æ¤¤¤ë¥³¡¼¥É¤ò Linux ¤Ø°Ü¿¢¤¹¤ë¾ì¹ç¤Ë¤â¡¢ÌäÂ꤬µ¯¤³¤ë¡£ +を複数回行なっているコードを Linux へ移植する場合にも、問題が起こる。 .BR select () -¤«¤éÉüµ¢¤·¤¿¸å¤Ï +から復帰した後は .I timeout -¤Ï̤ÄêµÁ¤Ç¤¢¤ë¤È¹Í¤¨¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +は未定義であると考えるべきである。 .\" .PP -.\" ¡ÖBSD ¤Ç¤Ï¥¿¥¤¥à¥¢¥¦¥È¤¬µ¯¤³¤Ã¤Æ¤â¡¢ -.\" ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¥Ó¥Ã¥È¤ÏÊѤï¤é¤Ê¤¤¡×¤Èʹ¤¤¤¿¤³¤È¤¬¤¢¤ë¡£ -.\" ¡ÖLinux ¤Ï SUSv2 ¤Ë½¾¤Ã¤Æ¤ª¤ê¡¢ -.\" ¥¿¥¤¥à¥¢¥¦¥È¤ÎºÝ¤Ë¤Ï¥Ó¥Ã¥È¥Þ¥¹¥¯¤ò 0 ¤Ë¤¹¤ë¡×¤È¤¤¤¦¤Î¤Ï³Î¤«¤Ë»ö¼Â¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +.\" 「BSD ではタイムアウトが起こっても、 +.\" ファイルディスクリプタビットは変わらない」と聞いたことがある。 +.\" 「Linux は SUSv2 に従っており、 +.\" タイムアウトの際にはビットマスクを 0 にする」というのは確かに事実である。 +.SH 返り値 +成功した場合、 .BR select () -¤È +と .BR pselect () -¤Ï¹¹¿·¤µ¤ì¤¿ 3 ¤Ä¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¿ô (¤Ä¤Þ¤ê¡¢ +は更新された 3 つのディスクリプタ集合に含まれている +ファイルディスクリプタの数 (つまり、 .IR readfds , .IR writefds , .I exceptfds -Ãæ¤Î 1 ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥Ó¥Ã¥È¤ÎÁí¿ô) ¤òÊÖ¤¹¡£ -²¿¤âµ¯¤³¤é¤º¤Ë»þ´ÖÀÚ¤ì¤Ë¤Ê¤Ã¤¿¾ì¹ç¡¢ -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¿ô¤Ï 0 ¤Ë¤Ê¤ë¤³¤È¤â¤¢¤ë¡£ -¥¨¥é¡¼¤Ê¤é¤Ð \-1 ¤òÊÖ¤·¡¢ +中の 1 になっているビットの総数) を返す。 +何も起こらずに時間切れになった場合、 +ディスクリプタの数は 0 になることもある。 +エラーならば \-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬ÀßÄꤵ¤ì¤ë; ½¸¹ç¤È +に適切な値が設定される; 集合と .I timeout -¤Ï̤ÄêµÁ¤È¤Ê¤ë¤Î¤Ç¡¢¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¸å¤Ï¤½¤ì¤é¤ÎÆâÍƤò¿®Íꤷ¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -.SH ¥¨¥é¡¼ +は未定義となるので、エラーが起こった後はそれらの内容を信頼してはならない。 +.SH エラー .TP .B EBADF -¤¤¤º¤ì¤«¤Î½¸¹ç¤Ë̵¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬»ØÄꤵ¤ì¤¿ -(¤ª¤½¤é¤¯¤Ï¡¢¤¹¤Ç¤Ë¥¯¥í¡¼¥º¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¡¢ -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬»ØÄꤵ¤ì¤¿)¡£ +いずれかの集合に無効なファイルディスクリプタが指定された +(おそらくは、すでにクローズされたファイルディスクリプタか、 +エラーが発生したファイルディスクリプタが指定された)。 .TP .B EINTR -¥·¥°¥Ê¥ë¤ò¼õ¿®¤·¤¿¡£ +シグナルを受信した。 .TP .B EINVAL .I n -¤¬Éé¡¢¤Þ¤¿¤Ï +が負、または .I timeout -¤ËÆþ¤Ã¤Æ¤¤¤ëÃͤ¬ÉÔÀµ¤Ç¤¢¤ë¡£ +に入っている値が不正である。 .TP .B ENOMEM -ÆâÉô¥Æ¡¼¥Ö¥ë¤Ë¥á¥â¥ê¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +内部テーブルにメモリを割り当てることができなかった。 +.SH バージョン .BR pselect () -¤Ï¥«¡¼¥Í¥ë 2.6.16 ¤Ç Linux ¤ËÄɲ䵤줿¡£ -¤½¤ì°ÊÁ°¤Ï¡¢ +はカーネル 2.6.16 で Linux に追加された。 +それ以前は、 .BR pselect () -¤Ï glibc ¤Ç¥¨¥ß¥å¥ì¡¼¥È¤µ¤ì¤Æ¤¤¤¿ (¡Ö¥Ð¥°¡×¤Î¾Ï¤ò»²¾È)¡£ -.SH ½àµò +は glibc でエミュレートされていた (「バグ」の章を参照)。 +.SH 準拠 .BR select () -¤Ï POSIX.1-2001 ¤È 4.4BSD +は POSIX.1-2001 と 4.4BSD .RB ( select () -¤Ï 4.2BSD ¤ÇºÇ½é¤ËÅо줷¤¿) ¤Ë½àµò¤¹¤ë¡£ -BSD ¥½¥±¥Ã¥ÈÁؤΥ¯¥í¡¼¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ëÈó BSD ¥·¥¹¥Æ¥à -(System V ·Ï¤â´Þ¤à) ¤È¤Î´Ö¤Ç¤À¤¤¤¿¤¤°Ü¿¢À­¤¬¤¢¤ë¡£¤·¤«¤· System V ·Ï¤Ç¤Ï -¤¿¤¤¤¬¤¤ timeout ÊÑ¿ô¤ò exit ¤ÎÁ°¤Ë¥»¥Ã¥È¤¹¤ë¤¬¡¢ -BSD ·Ï¤Ç¤Ï¤½¤¦¤Ç¤Ê¤¤¤Î¤ÇÃí°Õ¤¹¤ë¤³¤È¡£ +は 4.2BSD で最初に登場した) に準拠する。 +BSD ソケット層のクローンをサポートしている非 BSD システム +(System V 系も含む) との間でだいたい移植性がある。しかし System V 系では +たいがい timeout 変数を exit の前にセットするが、 +BSD 系ではそうでないので注意すること。 .PP .BR pselect () -¤Ï POSIX.1g ¤È POSIX.1-2001 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ +は POSIX.1g と POSIX.1-2001 で定義されている。 +.SH 注意 .I fd_set -¤Ï¸ÇÄꥵ¥¤¥º¤Î¥Ð¥Ã¥Õ¥¡¤Ç¤¢¤ë¡£ -Éé¤ä +は固定サイズのバッファである。 +負や .B FD_SETSIZE -°Ê¾å¤ÎÃͤò»ý¤Ä +以上の値を持つ .I fd -¤ËÂФ·¤Æ +に対して .BR FD_CLR () -¤ä +や .BR FD_SET () -¤ò¼Â¹Ô¤·¤¿¾ì¹ç¡¢ -¤É¤Î¤è¤¦¤ÊÆ°ºî¤ò¤¹¤ë¤«¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤Þ¤¿¡¢ POSIX ¤Ç¤Ï +を実行した場合、 +どのような動作をするかは定義されていない。 +また、 POSIX では .I fd -¤ÏÍ­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Èµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は有効なファイルディスクリプタでなければならないと規定されている。 -·¿Àë¸À¤Ë´Ø¤·¤Æ¤Ï¡¢ÀΤʤ¬¤é¤Î¾õ¶·¤Ç¤Ï +型宣言に関しては、昔ながらの状況では .I timeval -¹½Â¤ÂΤΠ2 ¤Ä¤Î¥Õ¥£¡¼¥ë¥É¤Ï -(¾åµ­¤Î¤è¤¦¤Ë) ξÊý¤È¤â +構造体の 2 つのフィールドは +(上記のように) 両方とも .I long -·¿¤Ç¤¢¤ê¡¢¹½Â¤ÂÎ¤Ï +型であり、構造体は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -POSIX.1-2001 ¤Î²¼¤Ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +で定義されている。 +POSIX.1-2001 の下では、以下のようになっている。 .in +4n .nf struct timeval { - time_t tv_sec; /* Éà */ - suseconds_t tv_usec; /* ¥Þ¥¤¥¯¥íÉà */ + time_t tv_sec; /* 秒 */ + suseconds_t tv_usec; /* マイクロ秒 */ }; .fi .in -¤³¤Î¹½Â¤ÂÎ¤Ï +この構造体は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢¥Ç¡¼¥¿·¿ +で定義されており、データ型 .I time_t -¤È +と .I suseconds_t -¤Ï +は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で定義されている。 .LP -¥×¥í¥È¥¿¥¤¥×¤Ë´Ø¤·¤Æ¤Ï¡¢ÀΤʤ¬¤é¤Î¾õ¶·¤Ç +プロトタイプに関しては、昔ながらの状況で .BR select () -¤ò»È¤¤¤¿¤¤¾ì¹ç¤Ï¡¢ +を使いたい場合は、 .I -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ì¤Ð¤è¤¤¡£ -POSIX.1-2001 ¤Î´Ä¶­¤Ç +をインクルードすればよい。 +POSIX.1-2001 の環境で .BR select () -¤È +と .BR pselect () -¤ò»È¤¤¤¿¤¤¾ì¹ç¤Ï¡¢ +を使いたい場合は、 .I -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ì¤Ð¤è¤¤¡£ +をインクルードすればよい。 -¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë +ヘッダファイル .I -¤Ï libc4 ¤È libc5 ¤Ë¤Ï¤Ê¤¯¡¢glibc 2.0 °Ê¹ß¤Ë¸ºß¤¹¤ë¡£ -°­¤¤¤³¤È¤Ë glibc 2.0 °ÊÁ°¤Ç¤Ï +は libc4 と libc5 にはなく、glibc 2.0 以降に存在する。 +悪いことに glibc 2.0 以前では .BR pselect () -¤Î¥×¥í¥È¥¿¥¤¥×¤¬´Ö°ã¤Ã¤Æ¤¤¤ë¡£ -glibc 2.1 ¤«¤é 2.2.1 ¤Ç¤Ï +のプロトタイプが間違っている。 +glibc 2.1 から 2.2.1 では .B _GNU_SOURCE -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢ +が定義されている場合に、 .BR pselect () -¤¬Ä󶡤µ¤ì¤ë¡£ -glibc 2.2.2 °Ê¹ß¤Ç¤Ï¡¢ +が提供される。 +glibc 2.2.2 以降では、 .BR pselect () -¤ò»ÈÍѤ¹¤ë¤Ë¤Ï¡¢¡Ö½ñ¼°¡×¤Ëµ­ºÜ¤µ¤ì¤¿Í×·ï¤òËþ¤¿¤¹É¬Íפ¬¤¢¤ë¡£ -.SS "Linux ¤Ç¤ÎÃí°Õ" -Linux ¤Î +を使用するには、「書式」に記載された要件を満たす必要がある。 +.SS "Linux での注意" +Linux の .BR pselect () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +システムコールは .I timeout -°ú¤­¿ô¤òÊѹ¹¤¹¤ë¡£ -¤·¤«¤·¡¢ glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÅϤ¹ timeout °ú¤­¿ô -¤È¤·¤Æ¥í¡¼¥«¥ëÊÑ¿ô¤ò»È¤¦¤³¤È¤Ç¤³¤ÎÆ°ºî¤ò±£Ê䷤Ƥ¤¤ë¡£ -¤³¤Î¤¿¤á¡¢glibc ¤Î +引き数を変更する。 +しかし、 glibc のラッパー関数は、システムコールに渡す timeout 引き数 +としてローカル変数を使うことでこの動作を隠蔽している。 +このため、glibc の .BR pselect () -´Ø¿ô¤Ï timeout °ú¤­¿ô¤òÊѹ¹¤·¤Ê¤¤¡£ -¤³¤ì¤¬ POSIX.1-2001 ¤¬Í׵ᤷ¤Æ¤¤¤ëÆ°ºî¤Ç¤¢¤ë¡£ -.SH ¥Ð¥° -glibc 2.0 ¤Ç¤Ï¡¢ +関数は timeout 引き数を変更しない。 +これが POSIX.1-2001 が要求している動作である。 +.SH バグ +glibc 2.0 では、 .I sigmask -°ú¤­¿ô¤ò¼è¤é¤Ê¤¤¥Ð¡¼¥¸¥ç¥ó¤Î +引き数を取らないバージョンの .BR pselect () -¤¬Ä󶡤µ¤ì¤Æ¤¤¤¿¡£ +が提供されていた。 -¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤Ç¤Ï¡¢ +バージョン 2.1 以降の glibc では、 .BR pselect () -¤Ï +は .BR sigprocmask (2) -¤È +と .BR select () -¤ò»È¤Ã¤Æ¥¨¥ß¥å¥ì¡¼¥È¤µ¤ì¤Æ¤¤¤¿¡£ -¤³¤Î¼ÂÁõ¤Ë¤Ï¤­¤ï¤É¤¤¶¥¹ç¾ò·ï¤Ë¤ª¤¤¤ÆÀȼåÀ­¤¬»Ä¤Ã¤Æ¤¤¤¿¡£ -¤³¤Î¶¥¹ç¾ò·ï¤Ë¤ª¤±¤ëÌäÂê¤òËɻߤ¹¤ë¤¿¤á¤Ë +を使ってエミュレートされていた。 +この実装にはきわどい競合条件において脆弱性が残っていた。 +この競合条件における問題を防止するために .BR pselect () -¤ÏÀ߷פµ¤ì¤¿¤Î¤Ç¤¢¤ë¡£ -ºÇ¶á¤Î¥Ð¡¼¥¸¥ç¥ó¤Î glibc ¤Ç¤Ï¡¢¥«¡¼¥Í¥ë¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -(¶¥¹ç¤¬µ¯¤³¤é¤Ê¤¤) +は設計されたのである。 +最近のバージョンの glibc では、カーネルがサポートしている場合には、 +(競合が起こらない) .BR pselect () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬»ÈÍѤµ¤ì¤ë¡£ +システムコールが使用される。 .BR pselect () -¤¬¤Ê¤¤¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¡¢ -¥·¥°¥Ê¥ë¤ÎÊ᪤ò¿®ÍêÀ­¤¬¤¢¤ê (°Ü¿¢À­¤â¹â¤¤) ÊýË¡¤Ç¹Ô¤¦¤Ë¤Ï¡¢ -¼«¸Ê¥Ñ¥¤¥× (self-pipe) ¤È¤¤¤¦µ»¤ò»È¤¦¤È¤è¤¤ (¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ï¥Ñ¥¤¥×¤Ø -1 ¥Ð¥¤¥È¤Î¥Ç¡¼¥¿¤ò½ñ¤­¹þ¤ß¡¢Æ±¤¸¥Ñ¥¤¥×¤Î¤â¤¦°ìü¤ò¥á¥¤¥ó¥×¥í¥°¥é¥à¤Î +がないシステムにおいて、 +シグナルの捕捉を信頼性があり (移植性も高い) 方法で行うには、 +自己パイプ (self-pipe) という技を使うとよい (シグナルハンドラはパイプへ +1 バイトのデータを書き込み、同じパイプのもう一端をメインプログラムの .BR select () -¤Ç´Æ»ë¤¹¤ë¤È¤¤¤¦ÊýË¡¤Ç¤¢¤ë)¡£ +で監視するという方法である)。 -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR select () -¤¬¥½¥±¥Ã¥È¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç "Æɤ߹þ¤ß¤Î½àÈ÷¤¬¤Ç¤­¤¿" ¤ÈÊó¹ð¤·¤¿¾ì¹ç¤Ç¤â¡¢ -¤³¤Î¸å¤Ç read ¤ò¹Ô¤¦¤ÈÄä»ß (block) ¤¹¤ë¤³¤È¤¬¤¢¤ë¡£¤³¤Î¤è¤¦¤Ê¾õ¶·¤Ï¡¢ -Î㤨¤Ð¡¢¥Ç¡¼¥¿¤¬ÅþÃ夷¤¿¤¬¡¢¸¡ºº¤Ç¥Á¥§¥Ã¥¯¥µ¥à°Û¾ï¤¬¸«¤Ä¤«¤êÇÑ´þ¤µ¤ì¤¿»þ -¤Ê¤É¤Ëµ¯¤³¤ê¤¨¤ë¡£Â¾¤Ë¤â¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬½àÈ÷¤Ç¤­¤¿¤È´Ö°ã¤Ã¤Æ -Êó¹ð¤µ¤ì¤ë¾õ¶·¤¬µ¯¤³¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -.\" Stevens ¤¬µó¤²¤¿¤Î¤Ï¡¢select ¤¬À®¸ù¤·¤ÆÉüµ¢¤·¤Æ¤«¤é accept ¤¬ -.\" ¸Æ¤Ð¤ì¤ë¤Þ¤Ç¤Î´Ö¤Ë¡¢¥¯¥é¥¤¥¢¥ó¥È¤«¤é RST ¤¬Á÷¤é¤ì¤ë¤È¡¢ -.\" accept ¤¬Ää»ß¤¹¤ë¾ì¹ç¤Ç¤¢¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢Ää»ß¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤Ï +がソケットファイルディスクリプタで "読み込みの準備ができた" と報告した場合でも、 +この後で read を行うと停止 (block) することがある。このような状況は、 +例えば、データが到着したが、検査でチェックサム異常が見つかり廃棄された時 +などに起こりえる。他にもファイルディスクリプタが準備できたと間違って +報告される状況が起こるかもしれない。 +.\" Stevens が挙げたのは、select が成功して復帰してから accept が +.\" 呼ばれるまでの間に、クライアントから RST が送られると、 +.\" accept が停止する場合である。 +したがって、停止すべきではないソケットに対しては .B O_NONBLOCK -¤ò»È¤¦¤È¤è¤ê°ÂÁ´¤Ç¤¢¤í¤¦¡£ -.\" ¿ʬ¡¢¤³¤Î¤è¤¦¤Ê¾õ¶·¤Ç¤Ï¥«¡¼¥Í¥ë¤Ï EIO ¤òÊÖ¤·¤Æ¤·¤Þ¤¦? +を使うとより安全であろう。 +.\" 多分、このような状況ではカーネルは EIO を返してしまう? -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR select () -¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¾ì¹ç (¤Ä¤Þ¤ê +がシグナルハンドラにより割り込まれた場合 (つまり .B EINTR -¥¨¥é¡¼¤¬ÊÖ¤ë¾ì¹ç)¡¢ +エラーが返る場合)、 .I timeout -¤âÊѹ¹¤¹¤ë¡£ -¤³¤ì¤Ï POSIX.1-2001 ¤Ç¤Ïǧ¤á¤é¤ì¤Æ¤¤¤Ê¤¤µóÆ°¤Ç¤¢¤ë¡£ -Linux ¤Î +も変更する。 +これは POSIX.1-2001 では認められていない挙動である。 +Linux の .BR pselect () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤âƱ¤¸µóÆ°¤ò¤¹¤ë¤¬¡¢ -glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤¬¤³¤ÎµóÆ°¤ò±£Ê䷤Ƥ¤¤ë¡£ -¶ñÂÎŪ¤Ë¤Ï¡¢glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤ÎÆâÉô¤Ç¡¢ +システムコールも同じ挙動をするが、 +glibc のラッパー関数がこの挙動を隠蔽している。 +具体的には、glibc のラッパー関数の内部で、 .I timeout -¤ò¥í¡¼¥«¥ëÊÑ¿ô¤Ë¥³¥Ô¡¼¤·¡¢ -¤³¤Î¥í¡¼¥«¥ëÊÑ¿ô¤ò¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÅϤ·¤Æ¤¤¤ë¡£ -.SH Îã +をローカル変数にコピーし、 +このローカル変数をシステムコールに渡している。 +.SH 例 .nf #include #include @@ -525,34 +525,34 @@ main(void) struct timeval tv; int retval; - /* stdin (fd 0) ¤ò´Æ»ë¤·¡¢ÆþÎϤ¬¤¢¤Ã¤¿¾ì¹ç¤Ëɽ¼¨¤¹¤ë¡£*/ + /* stdin (fd 0) を監視し、入力があった場合に表示する。*/ FD_ZERO(&rfds); FD_SET(0, &rfds); - /* 5 Éôִƻ뤹¤ë¡£*/ + /* 5 秒間監視する。*/ tv.tv_sec = 5; tv.tv_usec = 0; retval = select(1, &rfds, NULL, NULL, &tv); - /* ¤³¤Î»þÅÀ¤Ç¤Î tv ¤ÎÃͤò¿®Íꤷ¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£*/ + /* この時点での tv の値を信頼してはならない。*/ if (retval == \-1) perror("select()"); else if (retval) - printf("º£¡¢¥Ç¡¼¥¿¤¬¼èÆÀ¤Ç¤­¤Þ¤·¤¿¡£\\n"); - /* FD_ISSET(0, &rfds) ¤¬ true ¤Ë¤Ê¤ë¡£*/ + printf("今、データが取得できました。\\n"); + /* FD_ISSET(0, &rfds) が true になる。*/ else - printf("5 ÉðÊÆâ¤Ë¥Ç¡¼¥¿¤¬ÆþÎϤµ¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£\\n"); + printf("5 秒以内にデータが入力されませんでした。\\n"); exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ -¹Í»¡¤È»ÈÍÑÎã¤Î½ñ¤«¤ì¤¿¥Á¥å¡¼¥È¥ê¥¢¥ë¤È¤·¤Æ¡¢ +.SH 関連項目 +考察と使用例の書かれたチュートリアルとして、 .BR select_tut (2) -¤¬¤¢¤ë¡£ +がある。 .LP -´Ø·¸¤¬¤¢¤ê¤½¤¦¤Ê¤â¤Î¤òµó¤²¤Æ¤ª¤¯: +関係がありそうなものを挙げておく: .BR accept (2), .BR connect (2), .BR poll (2), diff --git a/release/man2/select_tut.2 b/release/man2/select_tut.2 index 9d88a4fa..e3174bd3 100644 --- a/release/man2/select_tut.2 +++ b/release/man2/select_tut.2 @@ -33,19 +33,19 @@ .\" Updated 2006-07-21, Akihiro MOTOKI, LDP v2.36 .\" Updated 2009-02-13, Akihiro MOTOKI, LDP v3.18 .\" -.\"WORD: file descriptor ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: exceptional condition Îã³°¾õÂÖ +.\"WORD: file descriptor ファイルディスクリプタ +.\"WORD: exceptional condition 例外状態 .\" .TH SELECT_TUT 2 2010-06-10 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO \- Ʊ´ü I/O ¤Î¿½Å²½ -.SH ½ñ¼° +.SH 名前 +select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO \- 同期 I/O の多重化 +.SH 書式 .nf -/* POSIX.1-2001 ¤Ë½¾¤¦¾ì¹ç */ +/* POSIX.1-2001 に従う場合 */ .br .B #include .sp -/* °ÊÁ°¤Îµ¬³Ê¤Ë½¾¤¦¾ì¹ç */ +/* 以前の規格に従う場合 */ .br .B #include .br @@ -72,105 +72,105 @@ select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO \- Ʊ .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR pselect (): _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 -.SH ÀâÌÀ +.SH 説明 .BR select () -(¤ä +(や .BR pselect ()) -¤ò»È¤¦¤È¡¢¸úΨŪ¤ËÊ£¿ô¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò´Æ»ë¤·¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¤¤º¤ì¤«¤¬ -¡Öready (½àÈ÷¤¬¤Ç¤­¤¿)¡×¾õÂÖ¡¢¤Ä¤Þ¤ê I/O (Æþ½ÐÎÏ) ¤¬²Äǽ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤ä¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¤¤º¤ì¤«¤¬ -¡ÖÎã³°¾õÂÖ (exceptional condition)¡×¤¬È¯À¸¤·¤¿¤«¡¢¤òÄ´¤Ù¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ - -¤³¤Î´Ø¿ô¤Î¼çÍפʰú¤­¿ô¤Ï¡¢3¼ïÎà¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¡Ö½¸¹ç¡× -\fIreadfds\fP, \fIwritefds\fP, \fIexceptfds\fP ¤Ç¤¢¤ë¡£ -³Æ¡¹¤Î½¸¹ç¤Ï +を使うと、効率的に複数のファイルディスクリプタを監視し、 +そのファイルディスクリプタのいずれかが +「ready (準備ができた)」状態、つまり I/O (入出力) が可能になっているかや、 +ファイルディスクリプタのいずれかが +「例外状態 (exceptional condition)」が発生したか、を調べることができる。 + +この関数の主要な引き数は、3種類のファイルディスクリプタの「集合」 +\fIreadfds\fP, \fIwritefds\fP, \fIexceptfds\fP である。 +各々の集合は .B fd_set -¤È¤·¤ÆÀë¸À¤µ¤ì¡¢¤½¤ÎÆâÍÆ¤Ï +として宣言され、その内容は .BR FD_CLR (), .BR FD_ISSET (), .BR FD_SET (), .BR FD_ZERO () -¤È¤¤¤Ã¤¿¥Þ¥¯¥í¤Ë¤è¤Ã¤ÆÁàºî¤Ç¤­¤ë¡£ -¿·¤·¤¯Àë¸À¤µ¤ì¤¿½¸¹ç¤Ï¡¢¤Þ¤ººÇ½é¤Ë +といったマクロによって操作できる。 +新しく宣言された集合は、まず最初に .BR FD_ZERO () -¤ò»È¤Ã¤Æ¥¯¥ê¥¢¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +を使ってクリアすべきである。 .BR select () -¤Ï¤³¤ì¤é¤Î½¸¹ç¤ÎÆâÍƤò¡¢°Ê¹ß¤Ë½Ò¤Ù¤ëµ¬Â§¤Ë½¾¤Ã¤Æ½¤Àµ¤¹¤ë¡£ +はこれらの集合の内容を、以降に述べる規則に従って修正する。 .BR select () -¤ò¸Æ¤ó¤À¸å¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¤Þ¤À½¸¹ç¤Ë¸ºß¤·¤Æ¤¤¤ë¤«¤É¤¦¤«¤Ï¡¢ +を呼んだ後、ファイルディスクリプタがまだ集合に存在しているかどうかは、 .BR FD_ISSET () -¥Þ¥¯¥í¤Ë¤è¤Ã¤ÆÄ´¤Ù¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +マクロによって調べることができる。 .BR FD_ISSET () -¤Ï»ØÄꤵ¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬½¸¹ç¤Ë¸ºß¤·¤Æ¤¤¤ì¤Ð 0 °Ê³°¤ÎÃͤòÊÖ¤·¡¢ -¸ºß¤·¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ +は指定されたディスクリプタが集合に存在していれば 0 以外の値を返し、 +存在しなければ 0 を返す。 .BR FD_CLR () -¤Ï½¸¹ç¤«¤é¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Îºï½ü¤ò¹Ô¤¦¡£ -.SS °ú¤­¿ô +は集合からのファイルディスクリプタの削除を行う。 +.SS 引き数 .TP \fIreadfds\fP -¤³¤Î½¸¹ç¤Ë´Þ¤Þ¤ì¤ë¤¤¤º¤ì¤«¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¡¢ -¥Ç¡¼¥¿¤ÎÆɤ߹þ¤ß¤¬²Äǽ¤Ë¤Ê¤Ã¤¿¤«¤É¤¦¤«¤ò´Æ»ë¤¹¤ë¡£ +この集合に含まれるいずれかのファイルディスクリプタで、 +データの読み込みが可能になったかどうかを監視する。 .BR select () -¤«¤éÌá¤ë»þ¤Ë¡¢\fIreadfds\fP ¤Î¤¦¤Á¡¢ -ľ¤Á¤ËÆɤ߹þ¤ß²Äǽ¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿°Ê³°¤Ï -½¸¹ç¤«¤éºï½ü¤µ¤ì¤ë¡£ +から戻る時に、\fIreadfds\fP のうち、 +直ちに読み込み可能なファイルディスクリプタ以外は +集合から削除される。 .TP \fIwritefds\fP -¤³¤Î½¸¹ç¤Ë´Þ¤Þ¤ì¤ë¤¤¤º¤ì¤«¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¡¢ -¥Ç¡¼¥¿¤ò½ñ¤­¹þ¤à¥¹¥Ú¡¼¥¹¤¬¤¢¤ë¤«¤É¤¦¤«¤ò´Æ»ë¤¹¤ë¡£ +この集合に含まれるいずれかのファイルディスクリプタで、 +データを書き込むスペースがあるかどうかを監視する。 .BR select () -¤«¤éÌá¤ë»þ¤Ë¡¢\fIwritefds\fP ¤Î¤¦¤Á¡¢ -ľ¤Á¤Ë½ñ¤­¹þ¤ß²Äǽ¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿°Ê³°¤Ï -½¸¹ç¤«¤éºï½ü¤µ¤ì¤ë¡£ +から戻る時に、\fIwritefds\fP のうち、 +直ちに書き込み可能なファイルディスクリプタ以外は +集合から削除される。 .TP \fIexceptfds\fP -¤³¤Î½¸¹ç¤Ë´Þ¤Þ¤ì¤ë¤¤¤º¤ì¤«¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¡¢ -¡ÖÎã³°¾õÂÖ (exceptional condition)¡×¤¬È¯À¸¤·¤¿¤«¤É¤¦¤«¤ò´Æ»ë¤¹¤ë¡£ -¼ÂºÝ¤ÎÆ°ºî¤Ç¤Ï¡¢ÉáÄ̤˵¯¤³¤êÆÀ¤ëÎã³°¾õÂ֤ϰì¤Ä¤À¤±¤Ç¤¢¤ê¡¢ -¤½¤ì¤Ï TCP ¥½¥±¥Ã¥È¤Ç \fIÂÓ°è³° (out-of-band; OOB)\fP ¥Ç¡¼¥¿¤¬ -Æɤ߹þ¤ß²Äǽ¤Ê¾ì¹ç¤Ç¤¢¤ë¡£ -OOB ¥Ç¡¼¥¿¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +この集合に含まれるいずれかのファイルディスクリプタで、 +「例外状態 (exceptional condition)」が発生したかどうかを監視する。 +実際の動作では、普通に起こり得る例外状態は一つだけであり、 +それは TCP ソケットで \fI帯域外 (out-of-band; OOB)\fP データが +読み込み可能な場合である。 +OOB データの詳細については、 .BR recv (2), .BR send (2), .BR tcp (7) -¤ò»²¾È¤Î¤³¤È¡£ -(¤³¤ì°Ê³°¤Ç¤Ï¡¢¤Þ¤ì¤Ê¤³¤È¤À¤¬¡¢ -¥Ñ¥±¥Ã¥È¥â¡¼¥É¤Îµ¼»÷üËö (pseudoterminals) ¤Ç +を参照のこと。 +(これ以外では、まれなことだが、 +パケットモードの擬似端末 (pseudoterminals) で .BR select () -¤¬Îã³°¾õÂÖ¤ò¼¨¤¹¤³¤È¤¬¤¢¤ë¡£) +が例外状態を示すことがある。) .BR select () -¤¬ÊÖ¤ë»þ¤Ë¡¢\fIexceptfds\fP ¤Î¤¦¤Á¡¢ -Îã³°¾õÂÖ¤¬È¯À¸¤·¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿°Ê³°¤Ï½¸¹ç¤«¤éºï½ü¤µ¤ì¤ë¡£ +が返る時に、\fIexceptfds\fP のうち、 +例外状態が発生したディスクリプタ以外は集合から削除される。 .TP \fInfds\fP -Á´¤Æ¤Î½¸¹ç¤Ë´Þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¦¤Á¡¢ -Ãͤ¬ºÇÂç¤Î¤â¤Î¤Ë 1 ¤ò­¤·¤¿À°¿ô¤Ç¤¢¤ë¡£ -¤¹¤Ê¤ï¤Á¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò³Æ½¸¹ç¤Ë²Ã¤¨¤ëºî¶È¤ÎÅÓÃæ¤Ç¡¢ -Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¸«¤ÆºÇÂçÃͤòµá¤á¡¢ -¤½¤ì¤Ë 1 ¤ò²Ã¤¨¤Æ \fInfds\fP ¤È¤·¤ÆÅϤµ¤Ê¤¤¤È¤¤¤±¤Ê¤¤¡¢¤È¤¤¤¦¤³¤È¤À¡£ +全ての集合に含まれるファイルディスクリプタのうち、 +値が最大のものに 1 を足した整数である。 +すなわち、ファイルディスクリプタを各集合に加える作業の途中で、 +全てのファイルディスクリプタを見て最大値を求め、 +それに 1 を加えて \fInfds\fP として渡さないといけない、ということだ。 .TP \fIutimeout\fP -(²¿¤âµ¯¤³¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë) +(何も起こらなかった場合に) .BR select () -¤¬Ìá¤ëÁ°¤ËÂԤĺÇÂç»þ´Ö¤Ç¤¢¤ë¡£ -¤³¤ÎÃÍ¤Ë NULL ¤òÅϤ¹¤È¡¢ +が戻る前に待つ最大時間である。 +この値に NULL を渡すと、 .BR select () -¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¤¤º¤ì¤«¤¬ ready (½àÈ÷¤¬¤Ç¤­¤¿) ¾õÂÖ¤Ë -¤Ê¤ë¤Þ¤ÇÂÔ¤Á³¤±¤Æ¤º¤Ã¤ÈÄä»ß¤¹¤ë¡£ -\fIutimeout\fP ¤Ï 0 Éäˤ¹¤ë¤³¤È¤â¤Ç¤­¡¢ -¤³¤Î¾ì¹ç +はファイルディスクリプタのいずれかが ready (準備ができた) 状態に +なるまで待ち続けてずっと停止する。 +\fIutimeout\fP は 0 秒にすることもでき、 +この場合 .BR select () -¤Ïľ¤Á¤ËÊ֤ꡢ¸Æ¤Ó½Ð¤·»þÅÀ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¾õÂÖ¤Ë -´Ø¤¹¤ë¾ðÊó¤¬ÊÖ¤µ¤ì¤ë¡£ -¹½Â¤ÂÎ \fIstruct timeval\fP ¤Ï¼¡¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +は直ちに返り、呼び出し時点のファイルディスクリプタの状態に +関する情報が返される。 +構造体 \fIstruct timeval\fP は次のように定義されている: .IP .in +4n .nf @@ -183,11 +183,11 @@ struct timeval { .TP \fIntimeout\fP .BR pselect () -¤Î¤³¤Î°ú¤­¿ô¤Ï +のこの引き数は .I utimeout -¤ÈƱ¤¸°ÕÌ£¤ò»ý¤Ä¤¬¡¢ +と同じ意味を持つが、 .I "struct timespec" -¤Ï¼¡¤Ë¼¨¤¹¤è¤¦¤Ë¥Ê¥ÎÉäÎÀºÅÙ¤ò»ý¤Ä¡£ +は次に示すようにナノ秒の精度を持つ。 .in +4n .nf struct timespec { @@ -198,69 +198,69 @@ struct timespec { .in .TP \fIsigmask\fP -¤³¤Î°ú¤­¿ô¤Ï¡¢¸Æ¤Ó½Ð¤·Â¦¤¬ +この引き数は、呼び出し側が .BR pselect () -ÆâÉô¤ÇÄä»ß¤·¤Æ¤¤¤ë´Ö¤Ë¡¢¥«¡¼¥Í¥ë¤¬ÄÌÃΤòµö²Ä¤¹¤Ù¤­¥·¥°¥Ê¥ë½¸¹ç -(¤¹¤Ê¤ï¤Á¡¢¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤«¤éºï½ü¤¹¤Ù¤­¥·¥°¥Ê¥ë½¸¹ç) -¤òÊÝ»ý¤¹¤ë +内部で停止している間に、カーネルが通知を許可すべきシグナル集合 +(すなわち、呼び出したスレッドのシグナルマスクから削除すべきシグナル集合) +を保持する .RB ( sigaddset (3) -¤È +と .BR sigprocmask (2) -¤ò»²¾È)¡£ -¤³¤Î°ú¤­¿ô¤Ï NULL ¤Ë¤¹¤ë¤³¤È¤â¤Ç¤­¡¢¤½¤Î¾ì¹ç¤Ï¤³¤Î´Ø¿ô¤Ø -Æþ¤ë¤È¤­¡¦½Ð¤ë¤È¤­¤Ë¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊѹ¹¤·¤Ê¤¤¡£ -¤³¤Î¾ì¹ç¡¢ +を参照)。 +この引き数は NULL にすることもでき、その場合はこの関数へ +入るとき・出るときにシグナルマスクを変更しない。 +この場合、 .BR pselect () -¤Ï +は .BR select () -¤ÈÁ´¤¯Æ±¤¸Æ°ºî¤È¤Ê¤ë¡£ -.SS ¥·¥°¥Ê¥ë¤È¥Ç¡¼¥¿¥¤¥Ù¥ó¥È¤òÁȤ߹ç¤ï¤»¤ë -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ I/O ²Äǽ¤Ê¾õÂ֤ˤʤë¤Î¤ÈƱ»þ¤Ë -¥·¥°¥Ê¥ë¤âÂÔ¤Á¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ +と全く同じ動作となる。 +.SS シグナルとデータイベントを組み合わせる +ファイルディスクリプタが I/O 可能な状態になるのと同時に +シグナルも待ちたい場合には、 .BR pselect () -¤¬ÊØÍø¤Ç¤¢¤ë¡£ -¥·¥°¥Ê¥ë¤ò¼õ¿®¤¹¤ë¥×¥í¥°¥é¥à¤Ï¡¢Ä̾ï¤Ï¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò¥°¥í¡¼¥Ð¥ë¤Ê¥Õ¥é¥°¤òΩ¤Æ¤ë¤¿¤á¤À¤±¤Ë»È¤¦¡£ -¤³¤Î¥°¥í¡¼¥Ð¥ë¤Ê¥Õ¥é¥°¤Ï¡¢ -¤½¤Î¥¤¥Ù¥ó¥È¤ò¥×¥í¥°¥é¥à¤Î¥á¥¤¥ó¥ë¡¼¥×¤Ç -½èÍý¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤ò¼¨¤¹¡£ -¥·¥°¥Ê¥ë¤ò¼õ¤±¤ë¤È -.BR select () -(¤ä +が便利である。 +シグナルを受信するプログラムは、通常は、 +シグナルハンドラをグローバルなフラグを立てるためだけに使う。 +このグローバルなフラグは、 +そのイベントをプログラムのメインループで +処理しなければならないことを示す。 +シグナルを受けると +.BR select () +(や .BR pselect ()) -¤Ï -\fIerrno\fP ¤Ë \fBEINTR\fP ¤ò¥»¥Ã¥È¤·¤ÆÌá¤ë¤³¤È¤Ë¤Ê¤ë¡£ -¥·¥°¥Ê¥ë¤¬¥×¥í¥°¥é¥à¤Î¥á¥¤¥ó¥ë¡¼¥×¤Ç½èÍý¤µ¤ì¤ë¤¿¤á¤Ë¤Ï¤³¤ÎÆ°ºî¤¬ÉԲķç¤Ç¡¢ -¤³¤ì¤¬¤Ê¤¤¤È -.BR select () -¤Ï±Ê±ó¤ËÄä»ß¤·Â³¤±¤ë¤³¤È¤Ë¤Ê¤ë¡£ -¤µ¤Æ¡¢¥á¥¤¥ó¥ë¡¼¥×¤Î¤É¤³¤«¤Ë¤³¤Î¥°¥í¡¼¥Ð¥ë¥Õ¥é¥°¤ò¥Á¥§¥Ã¥¯¤¹¤ë -¾ò·ïʸ¤¬¤¢¤ë¤È¤·¤è¤¦¡£¤³¤³¤Ç¾¯¤·¹Í¤¨¤Æ¤ß¤Ê¤¤¤È¤¤¤±¤Ê¤¤¡£ -¡Ö¥·¥°¥Ê¥ë¤¬¾ò·ïʸ¤Î¸å¡¢¤·¤«¤· -.BR select () -¥³¡¼¥ë¤ÎÁ°¤ËÅþÃ夷¤¿¤é -¤É¤¦¤Ê¤ë¤Î¤«¡©¡× -Åú¤¨¤Ï¡Ö¤½¤Î -.BR select () -¤Ï¡¢¤¿¤È¤¨²ò·èÂÔ¤Á¤Î¥¤¥Ù¥ó¥È¤¬¤¢¤Ã¤¿¤È¤·¤Æ¤â¡¢ -±Ê±ó¤ËÄä»ß¤¹¤ë¡×¤Ç¤¢¤ë¡£ -¤³¤Î¶¥¹ç¾õÂÖ¤Ï +は +\fIerrno\fP に \fBEINTR\fP をセットして戻ることになる。 +シグナルがプログラムのメインループで処理されるためにはこの動作が不可欠で、 +これがないと +.BR select () +は永遠に停止し続けることになる。 +さて、メインループのどこかにこのグローバルフラグをチェックする +条件文があるとしよう。ここで少し考えてみないといけない。 +「シグナルが条件文の後、しかし +.BR select () +コールの前に到着したら +どうなるのか?」 +答えは「その +.BR select () +は、たとえ解決待ちのイベントがあったとしても、 +永遠に停止する」である。 +この競合状態は .BR pselect () -¥³¡¼¥ë¤Ë¤è¤Ã¤Æ²ò·è¤Ç¤­¤ë¡£ -¤³¤Î¥³¡¼¥ë¤ò»È¤¦¤È¡¢ +コールによって解決できる。 +このコールを使うと、 .BR pselect () -¤Ç¼õ¿®¤·¤¿¤¤¥·¥°¥Ê¥ë¤Î½¸¹ç¤À¤±¤ò¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ËÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -Î㤨¤Ð¡¢ÌäÂê¤È¤Ê¤Ã¤Æ¤¤¤ë¥¤¥Ù¥ó¥È¤¬»Ò¥×¥í¥»¥¹¤Î½ªÎ»¤Î¾ì¹ç¤ò¹Í¤¨¤è¤¦¡£ -¥á¥¤¥ó¥ë¡¼¥×¤¬»Ï¤Þ¤ëÁ°¤Ë¡¢ +で受信したいシグナルの集合だけをシグナルマスクに設定することができる。 +例えば、問題となっているイベントが子プロセスの終了の場合を考えよう。 +メインループが始まる前に、 .B SIGCHLD -¤ò +を .BR sigprocmask (2) -¤Ç¥Ö¥í¥Ã¥¯¤¹¤ë¡£ +でブロックする。 .BR pselect () -¥³¡¼¥ë¤Ç¤Ï +コールでは .B SIGCHLD -¤ò¡¢¤â¤È¤â¤È¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ò»È¤Ã¤ÆÍ­¸ú¤Ë¤¹¤ë¤Î¤À¡£ -¤³¤Î¥×¥í¥°¥é¥à¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¡£ +を、もともとのシグナルマスクを使って有効にするのだ。 +このプログラムは次のようになる。 .PP .nf static volatile sig_atomic_t got_SIGCHLD = 0; @@ -317,163 +317,163 @@ main(int argc, char *argv[]) } } .fi -.SS ¼ÂÎã -¼ÂºÝ¤Î¤È¤³¤í -.BR select () -¤ÎÂç»ö¤ÊÅÀ¤Ï²¿¤Ê¤Î¤«¡© -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¹¥¤­¤Ê¤È¤­¤ËÆɤ߽ñ¤­¤Ç¤­¤ë¤ó¤¸¤ã¤Ê¤¤¤Î¡© -.BR select () -¤Î½ÅÍפʤȤ³¤í¤Ï¡¢Ê£¿ô¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òƱ»þ¤Ë´Æ»ë¤Ç¤­¡¢ -¤Ê¤ó¤ÎÆ°¤­¤â¤Ê¤±¤ì¤Ð¥×¥í¥»¥¹¤òŬÀڤ˥¹¥ê¡¼¥×¾õÂ֤˰ܹԤ¹¤ë¤È¤³¤í¤Ë¤¢¤ë¤Î¤À¡£ -UNIX ¥×¥í¥°¥é¥Þ¤Ï¡¢ -Ê£¿ô¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÆþ½ÐÎϤòƱ»þ¤Ë°·¤ï¤Í¤Ð¤Ê¤é¤º¡¢ -¤·¤«¤â¥Ç¡¼¥¿¤Îή¤ì¤Ï´Ö·çŪ¤Ç¤¢¤ë¡¢¤È¤¤¤¦¾õ¶·¤Ë¤è¤¯½Ð²ñ¤¦¡£ -ñ¤Ë +.SS 実例 +実際のところ +.BR select () +の大事な点は何なのか? +ディスクリプタは好きなときに読み書きできるんじゃないの? +.BR select () +の重要なところは、複数のディスクリプタを同時に監視でき、 +なんの動きもなければプロセスを適切にスリープ状態に移行するところにあるのだ。 +UNIX プログラマは、 +複数のファイルディスクリプタの入出力を同時に扱わねばならず、 +しかもデータの流れは間欠的である、という状況によく出会う。 +単に .BR read (2) -¤ä +や .BR write (2) -¥³¡¼¥ë¤Î¥·¡¼¥±¥ó¥¹¤òºî¤ë¤À¤±¤Ç¤Ï¡¢¤½¤ì¤é¤Î¥³¡¼¥ë¤Î¤É¤ì¤«¤¬ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤é¤Î¥Ç¡¼¥¿¤òÂԤäƥ֥í¥Ã¥¯¤·¤Æ¤ª¤ê¡¢ -Ê̤Υե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤Ï I/O ¤¬²Äǽ¤Ê¤Î¤Ë»È¤¨¤Ê¤¤¡¢ -¤È¤¤¤¦¤³¤È¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤À¤í¤¦¡£ +コールのシーケンスを作るだけでは、それらのコールのどれかが +ファイルディスクリプタからのデータを待ってブロックしており、 +別のファイルディスクリプタには I/O が可能なのに使えない、 +ということになってしまうだろう。 .BR select () -¤ò»È¤¦¤È¤³¤Î¾õ¶·¤Ë¸ú²ÌŪ¤ËÂнè¤Ç¤­¤ë¡£ -.SS SELECT ¤ÎÙÝ +を使うとこの状況に効果的に対処できる。 +.SS SELECT の掟 .BR select () -¤ò»È¤ª¤¦¤È¤·¤¿Â¿¤¯¤Î¿Í¤Ï¡¢Íý²ò¤·¤Ë¤¯¤¤µóÆ°¤Ë½Ð¤¯¤ï¤·¡¢·ë²ÌŪ¤Ë -¤Ç¤­¤¿¤â¤Î¤Ï°Ü¿¢À­¤¬¤Ê¤¤¤«¡¢¤è¤¯¤Æ¤â¥®¥ê¥®¥ê¤Î¤â¤Î¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¡£ -Î㤨¤Ð¡¢¾åµ­¤Î¥×¥í¥°¥é¥à¤Ï¡¢ -½¸¹ç¤Ë´Þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÈóÄä»ß (nonblocking) ¥â¡¼¥É -¤Ë¤·¤Ê¤¯¤Æ¤â¡¢¤É¤³¤Ë¤â¥Ö¥í¥Ã¥¯¤¬À¸¤¸¤Ê¤¤¤è¤¦Ãí°Õ¤·¤Æ½ñ¤«¤ì¤Æ¤¤¤ë¡£ -Èù̯¤Ê´Ö°ã¤¤¤Ë¤è¤Ã¤Æ¡¢ +を使おうとした多くの人は、理解しにくい挙動に出くわし、結果的に +できたものは移植性がないか、よくてもギリギリのものになってしまう。 +例えば、上記のプログラムは、 +集合に含まれるファイルディスクリプタを非停止 (nonblocking) モード +にしなくても、どこにもブロックが生じないよう注意して書かれている。 +微妙な間違いによって、 .BR select () -¤ò»È¤¦ÍøÅÀ¤Ï´Êñ¤Ë¼º¤ï¤ì¤Æ¤·¤Þ¤¦¡£ -¤½¤³¤Ç¡¢ +を使う利点は簡単に失われてしまう。 +そこで、 .BR select () -¥³¡¼¥ë¤ò»È¤¦¤È¤­¤ËÃí°Õ¤¹¤Ù¤­½ÅÍ×»ö¹à¤òÎóµó¤·¤Æ¤ª¤¯¤³¤È¤Ë¤¹¤ë¡£ +コールを使うときに注意すべき重要事項を列挙しておくことにする。 .TP 4 1. .BR select () -¤ò»È¤¦¤È¤­¤Ï¡¢¥¿¥¤¥à¥¢¥¦¥È¤ÏÀßÄꤹ¤Ù¤­¤Ç¤Ê¤¤¡£ -½èÍý¤¹¤ë¥Ç¡¼¥¿¤¬Ìµ¤¤¤È¤­¤Ë¤Ï¡¢ -¤¢¤Ê¤¿¤Î¥×¥í¥°¥é¥à¤Ë¤Ï²¿¤â¤¹¤ë¤³¤È¤Ï̵¤¤¤Ï¤º¤Ç¤¢¤ë¡£ -¥¿¥¤¥à¥¢¥¦¥È¤Ë°Í¸¤·¤¿¥³¡¼¥É¤ÏÄ̾ï°Ü¿¢À­¤¬¤Ê¤¯¡¢ -¥Ç¥Ð¥Ã¥°¤âÆñ¤·¤¯¤Ê¤ë¡£ +を使うときは、タイムアウトは設定すべきでない。 +処理するデータが無いときには、 +あなたのプログラムには何もすることは無いはずである。 +タイムアウトに依存したコードは通常移植性がなく、 +デバッグも難しくなる。 .TP 2. -¾å½Ò¤·¤¿¤è¤¦¤Ë¡¢ -¸úΨŪ¤Ê¥×¥í¥°¥é¥à¤ò½ñ¤¯¤Ë¤Ï +上述したように、 +効率的なプログラムを書くには .I nfds -¤ÎÃͤòŬÀڤ˷׻»¤·¤ÆÍ¿¤¨¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +の値を適切に計算して与えなければならない。 .TP 3. .BR select () -¥³¡¼¥ë¤Î½ªÎ»¸å¤Ë·ë²Ì¤ò¥Á¥§¥Ã¥¯¤·¤Æ¡¢ -ŬÀÚ¤ËÂбþ¤¹¤ë¤Ä¤â¤ê¤Î¤Ê¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢ -¤É¤Î½¸¹ç¤Ë¤â²Ã¤¨¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -¼¡¤Î¥ë¡¼¥ë¤â»²¾È¡£ +コールの終了後に結果をチェックして、 +適切に対応するつもりのないファイルディスクリプタは、 +どの集合にも加えてはならない。 +次のルールも参照。 .TP 4. .BR select () -¤«¤éÊ֤俸å¤Ë¤Ï¡¢Á´¤Æ¤Î½¸¹ç¤ÎÁ´¤Æ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤Ä¤¤¤Æ -Æɤ߽ñ¤­²Äǽ¤Ê¾õÂ֤ˤʤäƤ¤¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +から返った後には、全ての集合の全てのファイルディスクリプタについて +読み書き可能な状態になっているかをチェックすべきである。 .TP 5. .BR read (2), .BR recv (2), .BR write (2), .BR send (2) -¤È¤¤¤Ã¤¿´Ø¿ô¤Ï¡¢¤³¤Á¤é¤¬Í׵ᤷ¤¿Á´¥Ç¡¼¥¿¤òÆɤ߽ñ¤­¤¹¤ëɬÍפÏ\fI¤Ê¤¤\fP¡£ -¤â¤·Á´¥Ç¡¼¥¿¤òÆɤ߽ñ¤­¤¹¤ë¤Ê¤é¡¢¤½¤ì¤Ï¥È¥é¥Õ¥£¥Ã¥¯¤ÎÉé²Ù¤¬¾®¤µ¤¯¡¢ -¥¹¥È¥ê¡¼¥à¤¬Â®¤¤¾ì¹ç¤À¤í¤¦¡£¤³¤Î¾ò·ï¤Ï¾ï¤ËËþ¤¿¤µ¤ì¤ë¤È¤Ï¸Â¤é¤Ê¤¤¡£ -¤³¤ì¤é¤Î´Ø¿ô¤¬´èÄ¥¤Ã¤Æ¤â 1 ¥Ð¥¤¥È¤·¤«Á÷¼õ¿®¤Ç¤­¤Ê¤¤¤è¤¦¤Ê¾ì¹ç¤â -¹Íθ¤ËÆþ¤ì¤Æ¤ä¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +といった関数は、こちらが要求した全データを読み書きする必要は\fIない\fP。 +もし全データを読み書きするなら、それはトラフィックの負荷が小さく、 +ストリームが速い場合だろう。この条件は常に満たされるとは限らない。 +これらの関数が頑張っても 1 バイトしか送受信できないような場合も +考慮に入れてやらなければならない。 .TP 6. -½èÍý¤¹¤ë¥Ç¡¼¥¿Î̤¬¾®¤µ¤¤¤³¤È¤¬¤Ï¤Ã¤­¤ê¤È¤ï¤«¤Ã¤Æ¤¤¤ë¾ì¹ç¤ò½ü¤¤¤Æ¡¢ -°ìÅÙ¤Ë 1 ¥Ð¥¤¥È¤º¤ÄÆɤ߽ñ¤­¤¹¤ë¤è¤¦¤Ê¤³¤È¤Ï¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -¥Ð¥Ã¥Õ¥¡¤Îµö¤¹¤«¤®¤ê¤Î¥Ç¡¼¥¿¤ò¤Þ¤È¤á¤ÆÆɤ߽ñ¤­¤·¤Ê¤¤¤È¡¢ -Èó¾ï¤Ë¸úΨ¤¬°­¤¤¡£²¼µ­¤ÎÎã¤Ç¤Ï¥Ð¥Ã¥Õ¥¡¤Ï 1024 ¥Ð¥¤¥È¤Ë¤·¤Æ¤¤¤ë¤¬¡¢ -¤³¤Î¥µ¥¤¥º¤òÂ礭¤¯¤¹¤ë¤Î¤Ï´Êñ¤À¤í¤¦¡£ +処理するデータ量が小さいことがはっきりとわかっている場合を除いて、 +一度に 1 バイトずつ読み書きするようなことはしてはならない。 +バッファの許すかぎりのデータをまとめて読み書きしないと、 +非常に効率が悪い。下記の例ではバッファは 1024 バイトにしているが、 +このサイズを大きくするのは簡単だろう。 .TP 7. .BR read (2), .BR recv (2), .BR write (2), .BR send (2) -¤Ê¤É¤Î´Ø¿ô¤ä +などの関数や .BR select () -¥³¡¼¥ë¤Ï¡¢ +コールは、 .I errno -¤ò -.B EINTR " ¤ä " EAGAIN +を +.B EINTR " や " EAGAIN .RB ( EWOULDBLOCK ) -¤Ë¤·¤Æ \-1 ¤òÊÖ¤¹¤³¤È¤¬¤¢¤ë¡£ -¤³¤Î¤è¤¦¤Ê·ë²Ì¤ËÂФ·¤ÆŬÀÚ¤ËÂбþ¤·¤Æ¤ä¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(¾åµ­¤ÎÎã¤Ç¤Ï¤·¤Æ¤¤¤Ê¤¤)¡£ -½ñ¤¤¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤¬¥·¥°¥Ê¥ë¤ò¼õ¤±¤ëͽÄ꤬¤Ê¤±¤ì¤Ð¡¢ +にして \-1 を返すことがある。 +このような結果に対して適切に対応してやらなければならない +(上記の例ではしていない)。 +書いているプログラムがシグナルを受ける予定がなければ、 .B EINTR -¤¬ÊÖ¤µ¤ì¤ë¤³¤È¤Ï¤¢¤Þ¤ê¹Í¤¨¤é¤ì¤Ê¤¤¡£ -½ñ¤¤¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤ÇÈó¥Ö¥í¥Ã¥¯ I/O ¤ò¥»¥Ã¥È¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢ +が返されることはあまり考えられない。 +書いているプログラムで非ブロック I/O をセットしていない場合は、 .B EAGAIN -¤¬ÊÖ¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¤À¤í¤¦¡£ -.\" ¤½¤ì¤Ç¤â¤Ê¤ª¡¢´°Á´¤ò´ü¤¹¤ë¤Ê¤é¤Ð¡¢ -.\" ¤³¤ì¤é¤Î¥¨¥é¡¼¤ò¹Íθ¤ËÆþ¤ì¤ëɬÍפ¬¤¢¤ë¡£ +が返されることはないだろう。 +.\" それでもなお、完全を期するならば、 +.\" これらのエラーを考慮に入れる必要がある。 .TP 8. -·è¤·¤Æ¡¢°ú¤­¿ô¤ËŤµ 0 ¤Î¥Ð¥Ã¥Õ¥¡¤ò»ØÄꤷ¤Æ +決して、引き数に長さ 0 のバッファを指定して .BR read (2), .BR recv (2), .BR write (2), .BR send (2) -¤ò¸Æ¤Ó½Ð¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +を呼び出してはならない。 .TP 9. .BR read (2), .BR recv (2), .BR write (2), .BR send (2) -¤¬ -\fB7.\fP ¤Ë¼¨¤·¤¿°Ê³°¤Î¥¨¥é¡¼¤Ç¼ºÇÔ¤·¤¿¾ì¹ç¤ä¡¢ -ÆþÎϷϤδؿô¤Î°ì¤Ä¤¬¥Õ¥¡¥¤¥ëËöÈø¤òɽ¤¹ 0 ¤òÊÖ¤·¤¿¾ì¹ç¤Ï¡¢ -¤½¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¤â¤¦°ìÅÙ select ¤ËÅϤ·¤Æ¤Ï\fI¤Ê¤é¤Ê¤¤\fP¡£ -²¼µ­¤ÎÎã¤Ç¤Ï¡¢¤½¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¤¿¤À¤Á¤Ë¥¯¥í¡¼¥º¤·¡¢ -¤½¤³¤Ë¤Ï \-1 ¤ò¥»¥Ã¥È¤·¤Æ¡¢ -¤½¤ì¤¬½¸¹ç¤Ë´Þ¤Þ¤ì³¤±¤ë¤Î¤òµö¤µ¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¤¤ë¡£ +が +\fB7.\fP に示した以外のエラーで失敗した場合や、 +入力系の関数の一つがファイル末尾を表す 0 を返した場合は、 +そのディスクリプタをもう一度 select に渡しては\fIならない\fP。 +下記の例では、そのディスクリプタをただちにクローズし、 +そこには \-1 をセットして、 +それが集合に含まれ続けるのを許さないようにしている。 .TP 10. -¥¿¥¤¥à¥¢¥¦¥È¤ÎÃÍ¤Ï +タイムアウトの値は .BR select () -¤ò¸Æ¤Ö¤¿¤Ó¤Ë½é´ü²½¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -OS ¤Ë¤è¤Ã¤Æ¤Ï timeout ¹½Â¤ÂΤ¬Êѹ¹¤µ¤ì¤ë¾ì¹ç¤¬¤¢¤ë¤«¤é¤Ç¤¢¤ë¡£ -⤷¡¢ +を呼ぶたびに初期化すべきである。 +OS によっては timeout 構造体が変更される場合があるからである。 +但し、 .BR pselect () -¤Ï¼«Ê¬¤Î timeout ¹½Â¤ÂΤòÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ê¤¤¡£ +は自分の timeout 構造体を変更することはない。 .TP 11. .BR select () -¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤òÊѹ¹¤¹¤ë¤Î¤Ç¡¢ +はファイルディスクリプタ集合を変更するので、 .BR select () -¤¬¥ë¡¼¥×¤ÎÃæ¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·¤ò¹Ô¤¦Á°¤ËËè²ó -¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤ò½é´ü²½¤·Ä¾¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +がループの中で使用されている場合には、呼び出しを行う前に毎回 +ディスクリプタ集合を初期化し直さなければならない。 .\" "I have heard" does not fill me with confidence, and doesn't .\" belong in a man page, so I've commented this point out. .\" .TP -.\" ʹ¤¤¤¿¤È¤³¤í¤Ç¤Ï¡¢Windows ¤Î¥½¥±¥Ã¥ÈÁØ¤Ï -.\" OOB ¥Ç¡¼¥¿¤òÀµ¤·¤¯½èÍý¤·¤Ê¤¤¤é¤·¤¤¡£ -.\" ¤Þ¤¿¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Á´¤¯¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤è¤¦¤Ê +.\" 聞いたところでは、Windows のソケット層は +.\" OOB データを正しく処理しないらしい。 +.\" また、ファイルディスクリプタが全くセットされていないような .\" .BR select () -.\" ¥³¡¼¥ë¤âÀµ¤·¤¯½èÍý¤·¤Ê¤¤¤é¤·¤¤¡£ -.\" ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò°ìÀÚÀßÄꤷ¤Ê¤¤¤Ç timeout ¤ò»È¤¦¤ä¤êÊý¤Ï¡¢ -.\" 1 Éðʲ¼¤ÎÀºÅÙ¤Ç¥×¥í¥»¥¹¤ò¥¹¥ê¡¼¥×¤µ¤»¤ë¤Ë¤ÏÊØÍø¤ÊÊýË¡¤Ê¤Î¤À¤¬ -.\" (³¤­¤ò¸«¤è)¡£ -.SS usleep ¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó +.\" コールも正しく処理しないらしい。 +.\" ファイルディスクリプタを一切設定しないで timeout を使うやり方は、 +.\" 1 秒以下の精度でプロセスをスリープさせるには便利な方法なのだが +.\" (続きを見よ)。 +.SS usleep エミュレーション .BR usleep (3) -´Ø¿ô¤ò»ý¤¿¤Ê¤¤¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -Í­¸Â¤Î¥¿¥¤¥à¥¢¥¦¥È¤ò»ØÄꤷ¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÁ´¤¯¥»¥Ã¥È¤»¤º¤Ë +関数を持たないシステムでは、 +有限のタイムアウトを指定し、ファイルディスクリプタを全くセットせずに .BR select () -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¡¢¤³¤ì¤òÂåÍѤǤ­¤ë¡£ -°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë¡£ +を呼び出すことで、これを代用できる。 +以下のようにする。 .PP .nf struct timeval tv; @@ -482,59 +482,59 @@ OS select(0, NULL, NULL, NULL, &tv); .fi .PP -⤷¡¢¤³¤ì¤¬Æ°¤¯¤ÈÊݾڤµ¤ì¤Æ¤¤¤ë¤Î¤Ï UNIX ¥·¥¹¥Æ¥à¤Ë¸Â¤é¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +但し、これが動くと保証されているのは UNIX システムに限られる。 +.SH 返り値 +成功すると、 .BR select () -¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤Ë»Ä¤Ã¤Æ¤¤¤ë -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÁí¿ô¤òÊÖ¤¹¡£ +はファイルディスクリプタ集合に残っている +ファイルディスクリプタの総数を返す。 .BR select () -¤¬¥¿¥¤¥à¥¢¥¦¥È¤¹¤ë¤È¡¢ÊÖ¤êÃÍ¤Ï 0 ¤Ë¤Ê¤ë¡£ -¤½¤Î»þ¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤Ï¤¹¤Ù¤Æ¶õ¤Ç¤¢¤ë -(¤·¤«¤·¤½¤¦¤Ê¤é¤Ê¤¤¥·¥¹¥Æ¥à¤â¤¢¤ë)¡£ +がタイムアウトすると、返り値は 0 になる。 +その時、ファイルディスクリプタ集合はすべて空である +(しかしそうならないシステムもある)。 -ÊÖ¤êÃͤ¬ \-1 ¤Î¾ì¹ç¤Ï¥¨¥é¡¼¤ò°ÕÌ£¤·¡¢ +返り値が \-1 の場合はエラーを意味し、 .I errno -¤¬Å¬Àڤ˥»¥Ã¥È¤µ¤ì¤ë¡£¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢ -ÊÖ¤µ¤ì¤¿½¸¹ç¤ÎÆâÍƤ乽¤ÂÎ \fIstruct timeout\fP ¤ÎÆâÍÆ¤Ï -̤ÄêµÁ¤È¤Ê¤Ã¤Æ¤ª¤ê¡¢»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¤·¤«¤· +が適切にセットされる。エラーが起こった場合、 +返された集合の内容や構造体 \fIstruct timeout\fP の内容は +未定義となっており、使用すべきではない。 +しかし .BR pselect () -¤Ï·è¤·¤Æ +は決して .I ntimeout -¤òÊѹ¹¤·¤Ê¤¤¡£ -.SH Ãí°Õ -°ìÈÌŪ¤Ë¸À¤Ã¤Æ¡¢¥½¥±¥Ã¥È¤ò¥µ¥Ý¡¼¥È¤¹¤ëÁ´¤Æ¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ï +を変更しない。 +.SH 注意 +一般的に言って、ソケットをサポートする全てのオペレーティングシステムは .BR select () -¤â¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ +もサポートしている。 .BR select () -¤ò»È¤¦¤È¡¢¥×¥í¥°¥é¥Þ¤¬¥¹¥ì¥Ã¥É¡¢¥Õ¥©¡¼¥¯¡¢IPC¡¢¥·¥°¥Ê¥ë¡¢¥á¥â¥ê¶¦Í­¡¢ -Åù¡¹¤ò»È¤Ã¤Æ¤â¤Ã¤ÈÊ£»¨¤ÊÊýË¡¤Ç²ò·è¤·¤è¤¦¤È¤¹¤ë¿¤¯¤ÎÌäÂ꤬¡¢ -°Ü¿¢À­¤¬¤¢¤ê¤«¤Ä¸úΨŪ¤ÊÊýË¡¤Ç²ò·è¤Ç¤­¤ë¡£ +を使うと、プログラマがスレッド、フォーク、IPC、シグナル、メモリ共有、 +等々を使ってもっと複雑な方法で解決しようとする多くの問題が、 +移植性がありかつ効率的な方法で解決できる。 .PP .BR poll (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +システムコールは .BR select () -¤ÈƱ¤¸µ¡Ç½¤ò»ý¤Ã¤Æ¤ª¤ê¡¢ -¤Þ¤Ð¤é¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤ò´Æ»ë¤¹¤ë¾ì¹ç¤Ë -¤¤¤¯¤é¤«¸úΨ¤¬¤è¤¤¡£ -¸½ºß¤Ç¤Ï¹­¤¯ÍøÍѲÄǽ¤Ç¤¢¤ë¤¬¡¢°ÊÁ°¤Ï +と同じ機能を持っており、 +まばらなファイルディスクリプタ集合を監視する場合に +いくらか効率がよい。 +現在では広く利用可能であるが、以前は .BR select () -¤è¤ê°Ü¿¢À­¤ÎÌ̤ÇÎô¤Ã¤Æ¤¤¤¿¡£ +より移植性の面で劣っていた。 .PP -Linux Æȼ«¤Î +Linux 独自の .BR epoll (7) -API ¤Ï¡¢Â¿¿ô¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò´Æ»ë¤¹¤ë¾ì¹ç¤Ë +API は、多数のファイルディスクリプタを監視する場合に .BR select (2) -¤ä +や .BR poll (2) -¤è¤ê¤â¸úΨŪ¤Ê¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤·¤Æ¤¤¤ë¡£ -.SH Îã +よりも効率的なインタフェースを提供している。 +.SH 例 .BR select () -¤ÎËÜÅö¤ËÊØÍø¤ÊÅÀ¤ò¼¨¤¹¡¢¤è¤¤Îã¤ò¾Ò²ð¤¹¤ë¡£ -°Ê²¼¤Î¥ê¥¹¥È¤Ï¡¢¤¢¤ë TCP ¥Ý¡¼¥È¤«¤éÊ̤Υݡ¼¥È¤ØžÁ÷¤ò¹Ô¤¦ -TCP ¥Õ¥©¥ï¡¼¥É¥×¥í¥°¥é¥à¤Ç¤¢¤ë¡£ +の本当に便利な点を示す、よい例を紹介する。 +以下のリストは、ある TCP ポートから別のポートへ転送を行う +TCP フォワードプログラムである。 .PP .nf #include @@ -802,24 +802,24 @@ main(int argc, char *argv[]) } .fi .PP -¾åµ­¤Î¥×¥í¥°¥é¥à¤Ï¡¢¤Û¤È¤ó¤É¤Î¼ïÎà¤Î TCP Àܳ¤ò¥Õ¥©¥ï¡¼¥É¤¹¤ë¡£ +上記のプログラムは、ほとんどの種類の TCP 接続をフォワードする。 .B telnet -¥µ¡¼¥Ð¤Ë¤è¤Ã¤ÆÃæ·Ñ¤µ¤ì¤ë OOB ¥·¥°¥Ê¥ë¥Ç¡¼¥¿¤â°·¤¨¤ë¡£ -¤³¤Î¥×¥í¥°¥é¥à¤Ï¡¢¥Ç¡¼¥¿¥Õ¥í¡¼¤òÁÐÊý¸þ¤ËƱ»þ¤ËÁ÷¤ë¤È¤¤¤¦¡¢ -¤ä¤ä¤³¤·¤¤ÌäÂê¤â½èÍý¤Ç¤­¤ë¡£ +サーバによって中継される OOB シグナルデータも扱える。 +このプログラムは、データフローを双方向に同時に送るという、 +ややこしい問題も処理できる。 .BR fork (2) -¥³¡¼¥ë¤ò»È¤Ã¤Æ¡¢³Æ¥¹¥È¥ê¡¼¥à¤´¤È¤ËÀìÍѤΥ¹¥ì¥Ã¥É¤òÍѤ¤¤ë¤Û¤¦¤¬¸úΨŪ¤À¡¢ -¤È¤¤¤¦¿Í¤â¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£¤·¤«¤·¡¢¤³¤ì¤Ï¹Í¤¨¤Æ¤¤¤ë¤è¤ê¤º¤Ã¤È¤ä¤ä¤³¤·¤¤¡£ -¤¢¤ë¤¤¤Ï¡¢ +コールを使って、各ストリームごとに専用のスレッドを用いるほうが効率的だ、 +という人もいるかもしれない。しかし、これは考えているよりずっとややこしい。 +あるいは、 .BR fcntl (2) -¤ò»È¤Ã¤ÆÈó¥Ö¥í¥Ã¥¯ I/O ¤ò¥»¥Ã¥È¤¹¤ì¤ÐÎɤ¤¡¢¤È¤¤¤¦¥¢¥¤¥Ç¥¢¤â¤¢¤ë¤À¤í¤¦¡£ -¤³¤ì¤Ë¤â¼ÂºÝ¤Ë¤ÏÌäÂ꤬¤¢¤ê¡¢¥¿¥¤¥à¥¢¥¦¥È¤¬Èó¸úΨŪ¤Ëµ¯¤³¤Ã¤Æ¤·¤Þ¤¦¡£ - -¤³¤Î¥×¥í¥°¥é¥à¤Ï°ìÅ٤ˤҤȤİʾå¤ÎƱ»þÀܳ¤ò°·¤¦¤³¤È¤Ï¤Ç¤­¤Ê¤¤¤¬¡¢ -¤½¤ÎÍͤ˳ÈÄ¥¤¹¤ë¤Î¤Ï´Êñ¤Ç¡¢¥Ð¥Ã¥Õ¥¡¤Î¥ê¥ó¥¯¥ê¥¹¥È¤ò -(Àܳ¤´¤È¤Ë¤Ò¤È¤Ä¤º¤Ä) »È¤¨¤Ð¤è¤¤¡£ -¸½»þÅÀ¤Î¤â¤Î¤Ç¤Ï¡¢¿·¤·¤¤Àܳ¤¬¤¯¤ë¤È¸Å¤¤Àܳ¤ÏÍî¤Á¤Æ¤·¤Þ¤¦¡£ -.SH ´ØÏ¢¹àÌÜ +を使って非ブロック I/O をセットすれば良い、というアイデアもあるだろう。 +これにも実際には問題があり、タイムアウトが非効率的に起こってしまう。 + +このプログラムは一度にひとつ以上の同時接続を扱うことはできないが、 +その様に拡張するのは簡単で、バッファのリンクリストを +(接続ごとにひとつずつ) 使えばよい。 +現時点のものでは、新しい接続がくると古い接続は落ちてしまう。 +.SH 関連項目 .BR accept (2), .BR connect (2), .BR ioctl (2), diff --git a/release/man2/semctl.2 b/release/man2/semctl.2 index 91d6b78e..dedbcc8b 100644 --- a/release/man2/semctl.2 +++ b/release/man2/semctl.2 @@ -45,24 +45,24 @@ .\" Updated & Modified 2005-01-03, Yuichi SATO .\" Updated & Modified 2005-10-10, Akihiro MOTOKI .\" -.\"WORD: semaphore ¥»¥Þ¥Õ¥© -.\"WORD: semaphore set ¥»¥Þ¥Õ¥©½¸¹ç -.\"WORD: union ¶¦ÍÑÂÎ -.\"WORD: buffer ¥Ð¥Ã¥Õ¥¡ -.\"WORD: member ¥á¥ó¥Ð¡¼ -.\"WORD: superuser ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶ -.\"WORD: effective uid ¼Â¸ú¥æ¡¼¥¶ ID -.\"WORD: creator ºîÀ®¼Ô -.\"WORD: owner ½êÍ­¼Ô -.\"WORD: entry ¥¨¥ó¥È¥ê -.\"WORD: undo ¥¢¥ó¥É¥¥ -.\"WORD: implement ¼ÂÁõ -.\"WORD: feature test macro µ¡Ç½¸¡ºº¥Þ¥¯¥í +.\"WORD: semaphore セマフォ +.\"WORD: semaphore set セマフォ集合 +.\"WORD: union 共用体 +.\"WORD: buffer バッファ +.\"WORD: member メンバー +.\"WORD: superuser スーパー・ユーザ +.\"WORD: effective uid 実効ユーザ ID +.\"WORD: creator 作成者 +.\"WORD: owner 所有者 +.\"WORD: entry エントリ +.\"WORD: undo アンドゥ +.\"WORD: implement 実装 +.\"WORD: feature test macro 機能検査マクロ .\" .TH SEMCTL 2 2009-09-27 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -semctl \- ¥»¥Þ¥Õ¥©¤ÎÀ©¸æÁàºî¤ò¹Ô¤Ê¤¦ -.SH ½ñ¼° +.SH 名前 +semctl \- セマフォの制御操作を行なう +.SH 書式 .nf .B #include .B #include @@ -70,49 +70,49 @@ semctl \- .sp .BI "int semctl(int " semid ", int " semnum ", int " cmd ", ...);" .fi -.SH ÀâÌÀ +.SH 説明 .BR semctl () -¤Ï¡¢ +は、 .I semid -¤Ç»ØÄꤵ¤ì¤¿¥»¥Þ¥Õ¥©½¸¹ç (semaphore set) -¤Þ¤¿¤Ï¥»¥Þ¥Õ¥©½¸¹ç¤Î +で指定されたセマフォ集合 (semaphore set) +またはセマフォ集合の .I semnun -ÈÖÌܤΥ»¥Þ¥Õ¥©¤ËÂФ·¤Æ¡¢ +番目のセマフォに対して、 .I cmd -¤Ç»ØÄꤵ¤ì¤¿À©¸æÁàºî¤ò¹Ô¤Ê¤¦ -(½¸¹çÆâ¤Î¥»¥Þ¥Õ¥©¤ÎÈÖ¹æ¤Ï 0 ¤«¤é»Ï¤Þ¤ë)¡£ +で指定された制御操作を行なう +(集合内のセマフォの番号は 0 から始まる)。 .PP -¤³¤Î´Ø¿ô¤Ï¡¢ +この関数は、 .I cmd -¤ÎÃͤ˰͸¤·¤Æ¡¢3 ¸Ä¤Þ¤¿¤Ï 4 ¸Ä¤Î°ú¤­¿ô¤ò»ý¤Ä¡£ -°ú¤­¿ô¤¬ 4 ¸Ä¤Î¾ì¹ç¡¢Âè 4 °ú¤­¿ô¤Î·¿¤Ï +の値に依存して、3 個または 4 個の引き数を持つ。 +引き数が 4 個の場合、第 4 引き数の型は .I "union semun" -¤Ç¤¢¤ë¡£ -\fI¸Æ¤Ó½Ð¤·¸µ¥×¥í¥°¥é¥à\fP¤Ï¡¢ -¤³¤Î¶¦ÍÑÂÎ (union) ¤ò°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +である。 +\fI呼び出し元プログラム\fPは、 +この共用体 (union) を以下のように定義しなければならない。 .nf .in +4n union semun { - int val; /* SETVAL ¤ÎÃÍ */ - struct semid_ds *buf; /* IPC_STAT, IPC_SET ÍѤΥХåե¡ */ - unsigned short *array; /* GETALL, SETALL ÍѤÎÇÛÎó */ - struct seminfo *__buf; /* IPC_INFO ÍѤΥХåե¡ - (Linux ¸ÇÍ­) */ + int val; /* SETVAL の値 */ + struct semid_ds *buf; /* IPC_STAT, IPC_SET 用のバッファ */ + unsigned short *array; /* GETALL, SETALL 用の配列 */ + struct seminfo *__buf; /* IPC_INFO 用のバッファ + (Linux 固有) */ }; .in .fi .PP .I semid_ds -¥Ç¡¼¥¿¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +データ構造体は \fI\fP で以下のように定義されている: .nf .in +4n struct semid_ds { - struct ipc_perm sem_perm; /* ½êÍ­¸¢¤Èµö²Ä */ - time_t sem_otime; /* ºÇ¸å¤Î semop ¤Î»þ¹ï */ - time_t sem_ctime; /* ºÇ¸å¤ËÊѹ¹¤¬¹Ô¤ï¤ì¤¿»þ¹ï */ - unsigned short sem_nsems; /* ½¸¹çÆâ¤Î¥»¥Þ¥Õ¥©¤Î¿ô */ + struct ipc_perm sem_perm; /* 所有権と許可 */ + time_t sem_otime; /* 最後の semop の時刻 */ + time_t sem_ctime; /* 最後に変更が行われた時刻 */ + unsigned short sem_nsems; /* 集合内のセマフォの数 */ }; .fi .PP @@ -120,293 +120,293 @@ struct semid_ds { .fi .PP .I ipc_perm -¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë -(¶¯Ä´¤µ¤ì¤¿¥Õ¥£¡¼¥ë¥É¤Ï +構造体は \fI\fP で以下のように定義されている +(強調されたフィールドは .B IPC_SET -¤ò»È¤Ã¤ÆÀßÄê²Äǽ¤Ç¤¢¤ë): +を使って設定可能である): .PP .nf .in +4n struct ipc_perm { - key_t __key; /* semget(2) ¤ËÍ¿¤¨¤é¤ì¤ë¥­¡¼ */ - uid_t \fBuid\fP; /* ½êÍ­¼Ô (owner) ¤Î¼Â¸ú UID */ - gid_t \fBgid\fP; /* ½êÍ­¼Ô¤Î¼Â¸ú GID */ - uid_t cuid; /* ºîÀ®¼Ô (creator) ¤Î¼Â¸ú UID */ - gid_t cgid; /* ºîÀ®¼Ô¤Î¼Â¸ú GID */ - unsigned short \fBmode\fP; /* µö²Ä */ - unsigned short __seq; /* ¥·¡¼¥±¥ó¥¹ÈÖ¹æ */ + key_t __key; /* semget(2) に与えられるキー */ + uid_t \fBuid\fP; /* 所有者 (owner) の実効 UID */ + gid_t \fBgid\fP; /* 所有者の実効 GID */ + uid_t cuid; /* 作成者 (creator) の実効 UID */ + gid_t cgid; /* 作成者の実効 GID */ + unsigned short \fBmode\fP; /* 許可 */ + unsigned short __seq; /* シーケンス番号 */ }; .in .fi .PP .I cmd -¤È¤·¤ÆÍ­¸ú¤ÊÃÍ¤Ï +として有効な値は .TP 10 .B IPC_STAT .I semid -¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥«¡¼¥Í¥ë¥Ç¡¼¥¿¹½Â¤ÂΤξðÊó¤ò +に関連づけられたカーネルデータ構造体の情報を .I arg.buf -¤Ç»Ø¤µ¤ì¤¿ +で指された .I semid_ds -¹½Â¤ÂΤإ³¥Ô¡¼¤¹¤ë¡£ +構造体へコピーする。 .I semnum -°ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤ËÂФ¹¤ë -Æɤ߹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数は無視される。 +呼び出したプロセスはそのセマフォ集合に対する +読み込み許可を持たなければならない。 .TP .B IPC_SET .I arg.buf -¤Ç»ØÄꤵ¤ì¤¿ +で指定された .I semid_ds -¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤Î¤¤¤¯¤Ä¤«¤ÎÃͤò¡¢ -¤³¤Î¥»¥Þ¥Õ¥©¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥«¡¼¥Í¥ë¥Ç¡¼¥¿¹½Â¤ÂΤ˽ñ¤­¹þ¤ß¡¢ +構造体のメンバーのいくつかの値を、 +このセマフォに関連づけられたカーネルデータ構造体に書き込み、 .I sem_ctime -¥á¥ó¥Ð¡¼¤ÎÃͤ⹹¿·¤¹¤ë¡£ -¹½Â¤ÂΤΰʲ¼¤Î¥á¥ó¥Ð¡¼¤¬¹¹¿·¤µ¤ì¤ë: +メンバーの値も更新する。 +構造体の以下のメンバーが更新される: .IR sem_perm.uid , .IR sem_perm.gid , .I sem_perm.mode -(¤ÎºÇ²¼°Ì 9 ¥Ó¥Ã¥È)¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú UID ¤¬½êÍ­¼Ô +(の最下位 9 ビット)。 +呼び出したプロセスの実効 UID が所有者 .RI ( sem_perm.uid ) -¤Þ¤¿¤ÏºîÀ®¼Ô +または作成者 .RI ( sem_perm.cuid ) -¤È°ìÃפ¹¤ë¤«¡¢¸Æ¤Ó½Ð¤·¤¿¿Í¤¬Æø¢¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +と一致するか、呼び出した人が特権を持たなければならない。 .I semnum -°ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ +引き数は無視される。 .TP .B IPC_RMID -¥»¥Þ¥Õ¥©½¸¹ç¤ò¤¿¤À¤Á¤Ëºï½ü¤·¡¢¤½¤Î½¸¹ç¾å¤Î +セマフォ集合をただちに削除し、その集合上の .BR semop (2) -¥³¡¼¥ë¤Ç¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¥×¥í¥»¥¹¤òÌܳФᤵ¤»¤ë -(¥¨¥é¡¼Ãͤ¬ÊÖ¤µ¤ì¤Æ¡¢ +コールでブロックされている全てのプロセスを目覚めさせる +(エラー値が返されて、 .I errno -¤Ë +に .B EIDRM -¤¬ÀßÄꤵ¤ì¤ë)¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤¬ -¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤ÎºîÀ®¼Ô¤Þ¤¿¤Ï½êÍ­¼Ô¤È°ìÃפ¹¤ë¤«¡¢ -¸Æ¤Ó½Ð¤·¤¿¿Í¤¬Æø¢¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +が設定される)。 +呼び出したプロセスの実効ユーザ ID が +そのセマフォ集合の作成者または所有者と一致するか、 +呼び出した人が特権を持たなければならない。 .I semnum -°ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ +引き数は無視される。 .TP -.BR IPC_INFO " (Linux ¸ÇÍ­)" -¥·¥¹¥Æ¥àÁ´ÂΤǤΥ»¥Þ¥Õ¥©¤ÎÀ©¸Â¤È¥Ñ¥é¥á¡¼¥¿¤Ë´Ø¤¹¤ë¾ðÊó¤ò¡¢ +.BR IPC_INFO " (Linux 固有)" +システム全体でのセマフォの制限とパラメータに関する情報を、 .I arg.__buf -¤¬»Ø¤¹¹½Â¤ÂΤËÆþ¤ì¤ÆÊÖ¤¹¡£ -¤³¤Î¹½Â¤ÂÎ¤Ï +が指す構造体に入れて返す。 +この構造体は .I seminfo -·¿¤Ç¤¢¤ë¡£ +型である。 .I seminfo -¤Ï +は .B _GNU_SOURCE -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë +機能検査マクロが定義された場合に .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë: +で以下のように定義される: .nf .in +4n struct seminfo { - int semmap; /* ¥»¥Þ¥Õ¥©¡¦¥Þ¥Ã¥×¤ÎºÇÂ票¥ó¥È¥ê¿ô; - ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */ - int semmni; /* ¥»¥Þ¥Õ¥©½¸¹ç¤ÎºÇÂç¿ô */ - int semmns; /* Á´¥»¥Þ¥Õ¥©½¸¹çÃæ¤Î¥»¥Þ¥Õ¥©¤Î - ºÇÂç¿ô */ - int semmnu; /* ¥¢¥ó¥É¥¥¹½Â¤ÂΤΥ·¥¹¥Æ¥àÁ´ÂΤǤΠ- ºÇÂç¿ô; ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */ - int semmsl; /* °ì¤Ä¤Î¥»¥Þ¥Õ¥©½¸¹ç¤ÎºÇÂ祻¥Þ¥Õ¥©¿ô */ - int semopm; /* semop(2) ¤ËÅϤ¹Áàºî¤ÎºÇÂç¿ô */ - int semume; /* ¥×¥í¥»¥¹¤¢¤¿¤ê¤Î¥¢¥ó¥É¥¥¡¦¥¨¥ó¥È¥ê - ¤ÎºÇÂç¿ô; ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */ - int semusz; /* ¹½Â¤ÂÎ sem_undo ¤Î¥µ¥¤¥º */ - int semvmx; /* ¥»¥Þ¥Õ¥©¤ÎºÇÂçÃÍ */ - int semaem; /* ¥»¥Þ¥Õ¥©¤ÎÄ´À° (semaphore adjustment; - SEM_UNDO) ¤Î¤¿¤á¤Ëµ­Ï¿¤µ¤ì¤ëºÇÂçÃÍ */ + int semmap; /* セマフォ・マップの最大エントリ数; + カーネル内では未使用 */ + int semmni; /* セマフォ集合の最大数 */ + int semmns; /* 全セマフォ集合中のセマフォの + 最大数 */ + int semmnu; /* アンドゥ構造体のシステム全体での + 最大数; カーネル内では未使用 */ + int semmsl; /* 一つのセマフォ集合の最大セマフォ数 */ + int semopm; /* semop(2) に渡す操作の最大数 */ + int semume; /* プロセスあたりのアンドゥ・エントリ + の最大数; カーネル内では未使用 */ + int semusz; /* 構造体 sem_undo のサイズ */ + int semvmx; /* セマフォの最大値 */ + int semaem; /* セマフォの調整 (semaphore adjustment; + SEM_UNDO) のために記録される最大値 */ }; .in .fi -ÀßÄê +設定 .IR semmsl , .IR semmns , .IR semopm , .I semmni -¤Ï +は .I /proc/sys/kernel/sem -·Ðͳ¤ÇÊѹ¹²Äǽ¤Ç¤¢¤ë¡£ -¾Ü¤·¤¯¤Ï +経由で変更可能である。 +詳しくは .BR proc (5) -¤ò»²¾È¡£ +を参照。 .TP -.BR SEM_INFO " (Linux ¸ÇÍ­)" +.BR SEM_INFO " (Linux 固有)" .B IPC_INFO -¤Î¤È¤­¤ÈƱ¤¸¾ðÊó¤ò³ÊǼ¤·¤¿ +のときと同じ情報を格納した .I seminfo -¹½Â¤ÂΤòÊÖ¤¹¡£ -⤷¡¢°Ê²¼¤Î¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¥»¥Þ¥Õ¥©¤¬¾ÃÈñ¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à»ñ¸»¤Ë -´Ø¤¹¤ë¾ðÊ󤬳ÊǼ¤µ¤ì¤ëÅÀ¤¬°Û¤Ê¤ë¡£ +構造体を返す。 +但し、以下のフィールドにはセマフォが消費しているシステム資源に +関する情報が格納される点が異なる。 .I semusz -¥Õ¥£¡¼¥ë¥É¤Ï¸½ºß¥·¥¹¥Æ¥à¾å¤Ë¸ºß¤¹¤ë¥»¥Þ¥Õ¥©½¸¹ç¤Î¿ô¤òÊÖ¤¹¡£ +フィールドは現在システム上に存在するセマフォ集合の数を返す。 .I semaem -¥Õ¥£¡¼¥ë¥É¤Ï¥·¥¹¥Æ¥à¾å¤ÎÁ´¤Æ¤Î¥»¥Þ¥Õ¥©½¸¹ç¤Ë´Þ¤Þ¤ì¤ë -¥»¥Þ¥Õ¥©¤ÎÁí¿ô¤òÊÖ¤¹¡£ +フィールドはシステム上の全てのセマフォ集合に含まれる +セマフォの総数を返す。 .TP -.BR SEM_STAT " (Linux ¸ÇÍ­)" +.BR SEM_STAT " (Linux 固有)" .B IPC_STAT -¤ÈƱ¤¸¤¯ +と同じく .I semid_ds -¹½Â¤ÂΤòÊÖ¤¹¡£ -⤷¡¢ +構造体を返す。 +但し、 .I semid -°ú¤­¿ô¤Ï¡¢¥»¥Þ¥Õ¥©¼±Ê̻ҤǤϤʤ¯¡¢¥·¥¹¥Æ¥à¾å¤ÎÁ´¤Æ¤Î¥»¥Þ¥Õ¥©½¸¹ç -¤Ë´Ø¤¹¤ë¾ðÊó¤ò´ÉÍý¤¹¤ë¥«¡¼¥Í¥ë¤ÎÆâÉôÇÛÎó¤Ø¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤¢¤ë¡£ +引き数は、セマフォ識別子ではなく、システム上の全てのセマフォ集合 +に関する情報を管理するカーネルの内部配列へのインデックスである。 .TP .B GETALL -½¸¹ç¤ÎÁ´¤Æ¤Î¥»¥Þ¥Õ¥©¤Î +集合の全てのセマフォの .B semval -¤ÎÃÍ (¸½ºß¤ÎÃÍ) ¤ò +の値 (現在の値) を .I arg.array -¤ËÊÖ¤¹¡£ +に返す。 .I semnum -°ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤ËÆɤ߹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数は無視される。 +呼び出したプロセスはそのセマフォ集合に読み込み許可を持たなければならない。 .TP .B GETNCNT -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï½¸¹ç¤Î +システムコールは集合の .I semnum -ÈÖÌܤΥ»¥Þ¥Õ¥©¤Î +番目のセマフォの .B semncnt -¤ÎÃͤòÊÖ¤¹ (½¸¹ç¤Î +の値を返す (集合の .I semnum -ÈÖÌܤΥ»¥Þ¥Õ¥©¤Î +番目のセマフォの .B semval -¤ÎÁý²Ã¤òÂԤäƤ¤¤ë¥×¥í¥»¥¹¤Î¿ô¤òÊÖ¤¹)¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤ËÆɤ߹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +の増加を待っているプロセスの数を返す)。 +呼び出したプロセスはそのセマフォ集合に読み込み許可を持たなければならない。 .TP .B GETPID -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï½¸¹ç¤Î +システムコールは集合の .I semnum -ÈÖÌܤΥ»¥Þ¥Õ¥©¤Î +番目のセマフォの .B sempid -¤ÎÃÍ (½¸¹ç¤Î +の値 (集合の .I semnum -ÈÖÌܤΥ»¥Þ¥Õ¥©¤ËºÇ¸å¤Ë +番目のセマフォに最後に .BR semop (2) -¥³¡¼¥ë¤ò¼Â¹Ô¤·¤¿¥×¥í¥»¥¹¤Î PID) ¤òÊÖ¤¹¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤ËÆɤ߹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +コールを実行したプロセスの PID) を返す。 +呼び出したプロセスはそのセマフォ集合に読み込み許可を持たなければならない。 .TP .B GETVAL -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï½¸¹ç¤Î +システムコールは集合の .I semnum -ÈÖÌܤΥ»¥Þ¥Õ¥©¤Î +番目のセマフォの .B semval -¤ÎÃͤòÊÖ¤¹¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤ËÆɤ߹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +の値を返す。 +呼び出したプロセスはそのセマフォ集合に読み込み許可を持たなければならない。 .TP .B GETZCNT -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï½¸¹ç¤Î +システムコールは集合の .I semnum -ÈÖÌܤΥ»¥Þ¥Õ¥©¤Î +番目のセマフォの .B semzcnt -¤ÎÃͤòÊÖ¤¹ (½¸¹ç¤Î +の値を返す (集合の .I semnum -ÈÖÌܤΥ»¥Þ¥Õ¥©¤Î +番目のセマフォの .B semval -¤ÎÃͤ¬ 0 ¤Ë¤Ê¤ë¤Î¤òÂԤäƤ¤¤ë¥×¥í¥»¥¹¤Î¿ô¤òÊÖ¤¹)¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤ËÆɤ߹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +の値が 0 になるのを待っているプロセスの数を返す)。 +呼び出したプロセスはそのセマフォ集合に読み込み許可を持たなければならない。 .TP .B SETALL -½¸¹ç¤ÎÁ´¤Æ¤Î¥»¥Þ¥Õ¥©¤Î +集合の全てのセマフォの .B semval -¤Ë +に .I arg.array -¤Ç»ØÄꤵ¤ì¤¿ÃͤòÀßÄꤹ¤ë¡£ -¤½¤Î½¸¹ç¤Ë´ØÏ¢¤¹¤ë +で指定された値を設定する。 +その集合に関連する .I semid_ds -¹½Â¤ÂΤΠ+構造体の .I sem_ctime -¥á¥ó¥Ð¡¼¤ÎÃͤ⹹¿·¤¹¤ë¡£ -Á´¤Æ¤Î¥×¥í¥»¥¹¤Î¥»¥Þ¥Õ¥©¤ÎÊѹ¹¤Ë¤Ä¤¤¤Æ¤Î¥¢¥ó¥É¥¥¡¦¥¨¥ó¥È¥ê +メンバーの値も更新する。 +全てのプロセスのセマフォの変更についてのアンドゥ・エントリ .RB ( semop (2) -¤ò»²¾È) ¤Ï¾Ãµî (clear) ¤µ¤ì¤ë¡£ -¥»¥Þ¥Õ¥©¤ÎÃͤÎÊѹ¹¤Ë¤è¤ê¡¢Â¾¤Î¥×¥í¥»¥¹Æâ¤Ç¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë +を参照) は消去 (clear) される。 +セマフォの値の変更により、他のプロセス内でブロックされている .BR semop (2) -¥³¡¼¥ë¤Î³¹Ô¤¬µö²Ä¤µ¤ì¤ë¤È¡¢¤½¤ì¤é¤Î¥×¥í¥»¥¹¤Ïµ¯¤³¤µ¤ì¤ë (wake up)¡£ +コールの続行が許可されると、それらのプロセスは起こされる (wake up)。 .I semnum -°ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤Ë -Êѹ¹ (½ñ¤­¹þ¤ß) µö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数は無視される。 +呼び出したプロセスはそのセマフォ集合に +変更 (書き込み) 許可を持たなければならない。 .TP .B SETVAL -½¸¹ç¤Î +集合の .I semnum -ÈÖÌܤΥ»¥Þ¥Õ¥©¤Î +番目のセマフォの .B semval -¤Ë +に .I arg.val -¤ÎÃͤòÀßÄꤹ¤ë¡£¤½¤Î½¸¹ç¤Ë´ØÏ¢¤¹¤ë +の値を設定する。その集合に関連する .I semid_ds -¹½Â¤ÂΤΠ+構造体の .I sem_ctime -¥á¥ó¥Ð¡¼¤ÎÃͤ⹹¿·¤¹¤ë¡£ -Á´¤Æ¤Î¥×¥í¥»¥¹¤Î¥»¥Þ¥Õ¥©¤ÎÊѹ¹¤Ë¤Ä¤¤¤Æ¤Î¥¢¥ó¥É¥¥¡¦¥¨¥ó¥È¥ê¤Ï¾Ãµî¤µ¤ì¤ë¡£ -¥»¥Þ¥Õ¥©¤ÎÃͤÎÊѹ¹¤Ë¤è¤ê¡¢Â¾¤Î¥×¥í¥»¥¹Æâ¤Ç¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë +メンバーの値も更新する。 +全てのプロセスのセマフォの変更についてのアンドゥ・エントリは消去される。 +セマフォの値の変更により、他のプロセス内でブロックされている .BR semop (2) -¥³¡¼¥ë¤Î³¹Ô¤¬µö²Ä¤µ¤ì¤ë¤È¡¢¤½¤ì¤é¤Î¥×¥í¥»¥¹¤Ïµ¯¤³¤µ¤ì¤ë (wake up)¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤Ë -Êѹ¹ (½ñ¤­¹þ¤ß) µö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +コールの続行が許可されると、それらのプロセスは起こされる (wake up)。 +呼び出したプロセスはそのセマフォ集合に +変更 (書き込み) 許可を持たなければならない。 +.SH 返り値 +失敗した場合、 .BR semctl () -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤Ë¤½¤Î¥¨¥é¡¼¤ò¼¨¤¹¡£ +にそのエラーを示す。 -¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +そうでなければシステムコールは .I cmd -¤Ë¤è¤Ã¤Æ°Ê²¼¤ÎÉé¤Ç¤Ê¤¤ÃͤòÊÖ¤¹: +によって以下の負でない値を返す: .TP 12 .B GETNCNT .B semncnt -¤ÎÃÍ +の値 .TP .B GETPID .B sempid -¤ÎÃÍ +の値 .TP .B GETVAL .B semval -¤ÎÃÍ +の値 .TP .B GETZCNT .B semzcnt -¤ÎÃÍ +の値 .TP .B IPC_INFO -Á´¤Æ¤Î¥»¥Þ¥Õ¥©½¸¹ç¤Ë´Ø¤¹¤ë¾ðÊó¤ò´ÉÍý¤·¤Æ¤¤¤ë¥«¡¼¥Í¥ë¤ÎÆâÉôÇÛÎó¤Î»ÈÍÑÃæ -¥¨¥ó¥È¥ê¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÎºÇÂçÃÍ -(¤³¤Î¾ðÊó¤Ï¡¢¥·¥¹¥Æ¥à¤ÎÁ´¤Æ¤Î¥»¥Þ¥Õ¥©½¸¹ç¤Ë´Ø¤¹¤ë¾ðÊó¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Ë +全てのセマフォ集合に関する情報を管理しているカーネルの内部配列の使用中 +エントリのインデックスの最大値 +(この情報は、システムの全てのセマフォ集合に関する情報を取得するために .B SEM_STAT -Áàºî¤ò·«¤êÊÖ¤·¼Â¹Ô¤¹¤ëºÝ¤Ë»ÈÍѤǤ­¤ë) +操作を繰り返し実行する際に使用できる) .TP .B SEM_INFO .B IPC_INFO -¤ÈƱ¤¸ +と同じ .TP .B SEM_STAT .I semid -¤Ç»ØÄꤵ¤ì¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»ý¤Ä¥»¥Þ¥Õ¥©½¸¹ç¤Î¼±ÊÌ»Ò +で指定されたインデックスを持つセマフォ集合の識別子 .LP .I cmd -¤ÎÃͤ¬¤½¤ì°Ê³°¤Î¾ì¹ç¡¢À®¸ù¤¹¤ë¤È 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï +の値がそれ以外の場合、成功すると 0 が返される。 +.SH エラー +失敗した場合は .I errno -¤Ë¤Ï°Ê²¼¤ÎÃͤΤɤ줫¤¬ÀßÄꤵ¤ì¤ë: +には以下の値のどれかが設定される: .TP .B EACCES .I cmd -°ú¤­¿ô¤¬ +引き数が .BR GETALL , .BR GETPID , .BR GETVAL , @@ -416,105 +416,105 @@ struct seminfo { .BR SEM_STAT , .BR SETALL , .B SETVAL -¤Î¤¦¤Á¤Î²¿¤ì¤«¤ÎÃͤò»ý¤Á¡¢ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬¥»¥Þ¥Õ¥©¤ËÂФ·¤ÆɬÍפȤµ¤ì¤ëµö²Ä¤È +のうちの何れかの値を持ち、 +呼び出したプロセスがセマフォに対して必要とされる許可と .B CAP_IPC_OWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +ケーパビリティ (capability) を持っていない。 .TP .B EFAULT .I arg.buf -¤Þ¤¿¤Ï +または .I arg.array -¤Ç»Ø¤µ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +で指されているアドレスにアクセスすることができない。 .TP .B EIDRM -¥»¥Þ¥Õ¥©½¸¹ç¤¬ºï½ü¤µ¤ì¤¿¡£ +セマフォ集合が削除された。 .TP .B EINVAL .I cmd -¤Þ¤¿¤Ï +または .I semid -¤Ë̵¸ú¤ÊÃͤ¬»ØÄꤵ¤ì¤¿¡£ -¤â¤·¤¯¤Ï¡¢ +に無効な値が指定された。 +もしくは、 .B SEM_STAT -Áàºî¤Î¾ì¹ç¤Ë¡¢ +操作の場合に、 .I semid -¤Ç»ØÄꤵ¤ì¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹Ãͤ¬¸½ºß̤»ÈÍѤÎÇÛÎó¤Î¥¹¥í¥Ã¥È¤ò»²¾È¤¤¤Æ¤¤¤¿¡£ +で指定されたインデックス値が現在未使用の配列のスロットを参照いていた。 .TP .B EPERM .I cmd -°ú¤­¿ô¤Ë +引き数に .B IPC_SET -¤Þ¤¿¤Ï +または .B IPC_RMID -¤¬»ØÄꤵ¤ì¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤¬¥»¥Þ¥Õ¥©¤Î +が指定され、呼び出したプロセスの実効ユーザ ID がセマフォの .RI ( sem_perm.cuid -¤Ç¸«¤Ä¤«¤ë) ºîÀ®¼Ô¤Þ¤¿¤Ï +で見つかる) 作成者または .RI ( sem_perm.uid -¤Ç¸«¤Ä¤«¤ë) ½êÍ­¼Ô¤Ç¤â¤Ê¤¯¡¢ -¥×¥í¥»¥¹¤¬ +で見つかる) 所有者でもなく、 +プロセスが .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤¡£ +ケーパビリティを持たない。 .TP .B ERANGE .I cmd -°ú¤­¿ô¤Ë +引き数に .B SETALL -¤Þ¤¿¤Ï +または .B SETVAL -¤¬»ØÄꤵ¤ì¡¢(½¸¹ç¤Î¥»¥Þ¥Õ¥©¤Î¤É¤ì¤«¤Î) +が指定され、(集合のセマフォのどれかの) .B semval -¤ËÀßÄꤵ¤ì¤ëÃͤ¬ 0 ¤è¤ê¾®¤µ¤¤¤«¡¢¼ÂÁõ¤ÎÀ©¸Â +に設定される値が 0 より小さいか、実装の制限 .B SEMVMX -¤è¤ê¤âÂ礭¤¤¡£ -.SH ½àµò +よりも大きい。 +.SH 準拠 SVr4, POSIX.1-2001. -.\" SVr4 ¤Ë¤Ï¡¢Â¾¤Ë EINVAL, EOVERFLOW ¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ -.SH Ãí°Õ +.\" SVr4 には、他に EINVAL, EOVERFLOW エラーについての記述がある。 +.SH 注意 .BR IPC_INFO , .BR SEM_STAT , .B SEM_INFO -Áàºî¤Ï +操作は .BR ipcs (1) -¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤Æ³äÅö¤é¤ì¤¿»ñ¸»¤Ë¤Ä¤¤¤Æ¾ðÊó¤òÄ󶡤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ -¾­ÍèŪ¤Ë¤Ï¤³¤ì¤é¤ÏÊѹ¹¤µ¤ì¤ë¤«¡¢ -/proc ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¡¦¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë°ÜÆ°¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +プログラムによって割当られた資源について情報を提供するために使用される。 +将来的にはこれらは変更されるか、 +/proc ファイル・システム・インタフェースに移動されるかもしれない。 .LP -\fI¹½Â¤ÂÎ semid_ds\fP Æâ¤Î¿¤¯¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢ -Linux 2.2 ¤Ç¤Ï +\fI構造体 semid_ds\fP 内の多くのフィールドは、 +Linux 2.2 では .I short -·¿¤À¤Ã¤¿¤¬¡¢Linux 2.4 ¤Ç¤Ï +型だったが、Linux 2.4 では .I long -·¿¤Ë¤Ê¤Ã¤¿¡£ -¤³¤ÎÍøÅÀ¤òÀ¸¤«¤¹¤Ë¤Ï¡¢glibc-2.1.91 °Ê¹ß¤Î´Ä¶­²¼¤Ç -ºÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ì¤Ð½½Ê¬¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë¤Ï¿·¤·¤¤·Á¼°¤Î¸Æ¤Ó½Ð¤·¤È¸Å¤¤·Á¼°¤Î¸Æ¤Ó½Ð¤·¤ò +型になった。 +この利点を生かすには、glibc-2.1.91 以降の環境下で +再コンパイルすれば十分である。 +カーネルは新しい形式の呼び出しと古い形式の呼び出しを .I cmd -Æâ¤Î +内の .B IPC_64 -¥Õ¥é¥°¤Ç¶èÊ̤¹¤ë¡£ +フラグで区別する。 .PP -½é´ü¤Î¥Ð¡¼¥¸¥ç¥ó¤Î glibc ¤Ç¤Ï¡¢ +初期のバージョンの glibc では、 .I semun -¶¦ÍÑÂÎ¤Ï \fI\fP ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤¿¤¬¡¢ -POSIX.1-2001 ¤Ç¤Ï¸Æ¤Ó½Ð¤·Â¦¤¬¤³¤Î¶¦ÍÑÂΤòÄêµÁ¤¹¤ëɬÍפ¬¤¢¤ë¡£ -¤³¤Î¶¦ÍÑÂΤ¬ÄêµÁ¤µ¤ì¤Æ\fI¤¤¤Ê¤¤\fP glibc ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ -¥Þ¥¯¥í +共用体は \fI\fP で定義されていたが、 +POSIX.1-2001 では呼び出し側がこの共用体を定義する必要がある。 +この共用体が定義されて\fIいない\fP glibc のバージョンでは、 +マクロ .B _SEM_SEMUN_UNDEFINED -¤¬ \fI\fP ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +が \fI\fP で定義されている。 .PP -°Ê²¼¤Ï +以下は .BR semctl () -¥³¡¼¥ë¤Ë±Æ¶Á¤¹¤ë¥»¥Þ¥Õ¥©½¸¹ç¤Î¥·¥¹¥Æ¥àÀ©¸Â: +コールに影響するセマフォ集合のシステム制限: .TP .B SEMVMX .B semval -¤ÎºÇÂçÃÍ : ¼ÂÁõ°Í¸ (32767)¡£ +の最大値 : 実装依存 (32767)。 .LP -°Ü¿¢À­¤ò¹â¤á¤ë¤¿¤á¤Î°ìÈÖÎɤ¤ÊýË¡¤Ï¡¢¾ï¤Ë 4 ¸Ä¤Î°ú¤­¿ô¤Ç +移植性を高めるための一番良い方法は、常に 4 個の引き数で .BR semctl () -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を呼び出すことである。 +.SH 関連項目 .BR ipc (2), .BR semget (2), .BR semop (2), diff --git a/release/man2/semget.2 b/release/man2/semget.2 index 536ba52f..0a0b8c4e 100644 --- a/release/man2/semget.2 +++ b/release/man2/semget.2 @@ -38,24 +38,24 @@ .\" Updated 2005-03-01, Akihiro MOTOKI .\" Updated 2006-07-20, Akihiro MOTOKI, LDP v2.36 .\" -.\"WORD: semaphore ¥»¥Þ¥Õ¥© -.\"WORD: identifier ¼±ÊÌ»Ò -.\"WORD: owner ½êÍ­¼Ô -.\"WORD: group ¥°¥ë¡¼¥× -.\"WORD: other ¾¿Í -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ ID -.\"WORD: effective group ID ¼Â¸ú¥°¥ë¡¼¥× ID -.\"WORD: calling process ¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹ -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: policy Êý¿Ë -.\"WORD: structure ¹½Â¤ÂÎ -.\"WORD: initialize ½é´ü²½ -.\"WORD: system call ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë +.\"WORD: semaphore セマフォ +.\"WORD: identifier 識別子 +.\"WORD: owner 所有者 +.\"WORD: group グループ +.\"WORD: other 他人 +.\"WORD: effective user ID 実効ユーザー ID +.\"WORD: effective group ID 実効グループ ID +.\"WORD: calling process 呼び出し元のプロセス +.\"WORD: process プロセス +.\"WORD: policy 方針 +.\"WORD: structure 構造体 +.\"WORD: initialize 初期化 +.\"WORD: system call システム・コール .\" .TH SEMGET 2 2004-05-27 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -semget \- ¥»¥Þ¥Õ¥©½¸¹ç¤Î¼±Ê̻Ҥò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +semget \- セマフォ集合の識別子を取得する +.SH 書式 .nf .B #include .B #include @@ -65,243 +65,243 @@ semget \- .BI "int semget(key_t " key , .BI "int " nsems , .BI "int " semflg ); -.SH ÀâÌÀ +.SH 説明 .BR semget () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢°ú¤­¿ô +システムコールは、引き数 .I key -¤ËÂбþ¤¹¤ë¥»¥Þ¥Õ¥©½¸¹ç (semaphore set) ¤Î -¼±ÊÌ»Ò (identifier) ¤òÊÖ¤¹¡£ +に対応するセマフォ集合 (semaphore set) の +識別子 (identifier) を返す。 .I key -¤ÎÃͤ¬ +の値が .B IPC_PRIVATE -¤Î¾ì¹ç¡¢¤â¤·¤¯¤Ï +の場合、もしくは .I semflg -¤Ë +に .B IPC_CREAT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢ +が指定されていて、 .I key -¤ËÂбþ¤¹¤ë¥»¥Þ¥Õ¥©½¸¹ç¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢ +に対応するセマフォ集合が存在しない場合、 .I nsems -¸Ä¤Î¥»¥Þ¥Õ¥©¤«¤é¤Ê¤ë¿·¤·¤¤½¸¹ç¤¬ºîÀ®¤µ¤ì¤ë¡£ +個のセマフォからなる新しい集合が作成される。 .PP .I semflg -¤Ë +に .B IPC_CREAT -¤È +と .B IPC_EXCL -¤ÎξÊý¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +の両方が指定された場合、 .I key -¤ËÂбþ¤¹¤ë¥»¥Þ¥Õ¥©½¸¹ç¤¬´û¤Ë¸ºß¤¹¤ë¤È¡¢ +に対応するセマフォ集合が既に存在すると、 .BR semget () -¤Ï¼ºÇÔ¤·¡¢ +は失敗し、 .I errno -¤Ë +に .B EEXIST -¤¬ÀßÄꤵ¤ì¤ë -(¤³¤ì¤Ï +が設定される +(これは .BR open (2) -¤Ë +に .B O_CREAT | O_EXCL -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤ÎÆ°ºî¤ÈƱ¤¸¤Ç¤¢¤ë)¡£ +が指定された場合の動作と同じである)。 .PP -¥»¥Þ¥Õ¥©½¸¹çºîÀ®»þ¤Ë¡¢°ú¤­¿ô +セマフォ集合作成時に、引き数 .I semflg -¤Î²¼°Ì 9 ¥Ó¥Ã¥È¤Ï¡¢¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤Î (½êÍ­¼Ô (owner)¡¢¥°¥ë¡¼¥× (group)¡¢ -¾¿Í (others) ¤ËÂФ¹¤ë) ¥¢¥¯¥»¥¹µö²Ä¤ÎÄêµÁ¤È¤·¤Æ»ÈÍѤµ¤ì¤ë¡£ -¤³¤ì¤é¤Î¥Ó¥Ã¥È¤Ï +の下位 9 ビットは、そのセマフォ集合の (所有者 (owner)、グループ (group)、 +他人 (others) に対する) アクセス許可の定義として使用される。 +これらのビットは .BR open (2) -¤Î°ú¤­¿ô +の引き数 .I mode -¤ÈƱ¤¸·Á¼°¤ÇƱ¤¸°ÕÌ£¤Ç¤¢¤ë -(⤷¡¢¼Â¹Ô (execute) µö²Ä¤Ï¥»¥Þ¥Õ¥©¤Ç¤Ï°ÕÌ£¤ò»ý¤¿¤º¡¢ -½ñ¤­¹þ¤ß (write) µö²Ä¤Ï¥»¥Þ¥Õ¥©ÃͤÎÊѹ¹ (alter) µö²Ä¤È¤·¤Æµ¡Ç½¤¹¤ë)¡£ +と同じ形式で同じ意味である +(但し、実行 (execute) 許可はセマフォでは意味を持たず、 +書き込み (write) 許可はセマフォ値の変更 (alter) 許可として機能する)。 .PP -¿·¤·¤¯ºîÀ®¤µ¤ì¤¿¥»¥Þ¥Õ¥©½¸¹ç¤Î³Æ¥»¥Þ¥Õ¥©¤ÎÃͤÏÉÔÄê¤Ç¤¢¤ë -(¤³¤ÎÅÀ¤Ï POSIX.1-2001 ¤ËÌÀµ­¤µ¤ì¤Æ¤¤¤ë)¡£ -Linux ¤Ï¾¤Î¿¤¯¤Î¼ÂÁõ¤ÈƱÍͤ˥»¥Þ¥Õ¥©Ãͤò 0 ¤Ë½é´ü²½¤¹¤ë¤¬¡¢ -°Ü¿¢À­¤ò¹Íθ¤·¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤ÎÆ°ºî¤òÁ°Äó¤Ë¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÏÌÀ¼¨Åª¤Ë¥»¥Þ¥Õ¥©¤ò´õ˾¤ÎÃͤǽé´ü²½¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +新しく作成されたセマフォ集合の各セマフォの値は不定である +(この点は POSIX.1-2001 に明記されている)。 +Linux は他の多くの実装と同様にセマフォ値を 0 に初期化するが、 +移植性を考慮したアプリケーションではこの動作を前提にすべきではない。 +アプリケーションは明示的にセマフォを希望の値で初期化すべきである。 .\" In truth, every one of the many implementations that I've tested sets .\" the values to zero, but I suppose there is/was some obscure .\" implementation out there that does not. .PP -¿·µ¬¤Î¥»¥Þ¥Õ¥©½¸¹ç¤òºîÀ®¤¹¤ëºÝ¡¢ +新規のセマフォ集合を作成する際、 .BR semget () -¤Ï¥»¥Þ¥Õ¥©½¸¹ç¤Î¾ðÊó¤òÊÝ»ý¤¹¤ë¥Ç¡¼¥¿¹½Â¤ÂÎ +はセマフォ集合の情報を保持するデータ構造体 .I semid_ds -¤ò¼¡¤Î¤è¤¦¤Ë½é´ü²½¤¹¤ë +を次のように初期化する .RI ( semid_ds -¤Ë¤Ä¤¤¤Æ¤Ï +については .BR semctl (2) -¤ò»²¾È): +を参照): .IP .I sem_perm.cuid -¤È +と .I sem_perm.uid -¤Ë¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¸ú (effective) ¥æ¡¼¥¶ ID ¤òÀßÄꤹ¤ë¡£ +に、呼び出し元のプロセスの実効 (effective) ユーザ ID を設定する。 .IP .I sem_perm.cgid -¤È +と .I sem_perm.gid -¤Ë¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¸ú (effective) ¥°¥ë¡¼¥× ID ¤òÀßÄꤹ¤ë¡£ +に、呼び出し元のプロセスの実効 (effective) グループ ID を設定する。 .IP .I sem_perm.mode -¤Î²¼°Ì 9 ¥Ó¥Ã¥È¤Ë +の下位 9 ビットに .I semflg -¤Î²¼°Ì 9 ¥Ó¥Ã¥È¤òÀßÄꤹ¤ë¡£ +の下位 9 ビットを設定する。 .IP .I sem_nsems -¤Ë +に .I nsems -¤ÎÃͤòÀßÄꤹ¤ë¡£ +の値を設定する。 .IP .I sem_otime -¤Ë 0 ¤òÀßÄꤹ¤ë¡£ +に 0 を設定する。 .IP .I sem_ctime -¤Ë¸½ºß¤Î»þ¹ï¤òÀßÄꤹ¤ë¡£ +に現在の時刻を設定する。 .PP -¥»¥Þ¥Õ¥©½¸¹ç¤ÎºîÀ®¤ò¹Ô¤ï¤Ê¤¤¾ì¹ç¤Ï¡¢°ú¤­¿ô +セマフォ集合の作成を行わない場合は、引き数 .I nsems -¤Ë (don't care ¤ò°ÕÌ£¤¹¤ë) 0 ¤ò»ØÄꤷ¤Æ¤â¤è¤¤¡£ -¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢ +に (don't care を意味する) 0 を指定してもよい。 +そうでない場合は、 .I nsems -¤Ï 0 ¤è¤êÂ礭¤¤ÃͤǤʤ±¤ì¤Ð¤Ê¤é¤º¡¢¥»¥Þ¥Õ¥©½¸¹ç¤¢¤¿¤ê¤Î¥»¥Þ¥Õ¥©¤ÎºÇÂç¿ô +は 0 より大きい値でなければならず、セマフォ集合あたりのセマフォの最大数 .RB ( SEMMSL ) -°Ê²¼¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +以下でなければならない。 .PP -¥»¥Þ¥Õ¥©½¸¹ç¤¬´û¤Ë¸ºß¤·¤¿¾ì¹ç¤Ï¡¢¥¢¥¯¥»¥¹µö²Ä¤Î¸¡ºº¤¬¹Ô¤ï¤ì¤ë¡£ -.\" Ç˲õ (destruction) ¥Þ¡¼¥¯¤¬¤Ê¤¤¤«¥Á¥§¥Ã¥¯¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢¥»¥Þ¥Õ¥©½¸¹ç¤Î¼±ÊÌ»Ò (ÈóÉé¤ÎÀ°¿ô) ¤¬ÊÖ¤êÃͤȤʤ롣 -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +セマフォ集合が既に存在した場合は、アクセス許可の検査が行われる。 +.\" 破壊 (destruction) マークがないかチェックされる。 +.SH 返り値 +成功した場合、セマフォ集合の識別子 (非負の整数) が返り値となる。 +失敗した場合は \-1 が返され、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +にエラーを示す値が設定される。 +.SH エラー +失敗した場合、 .I errno -¤Ë¤Ï°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«°ì¤Ä¤¬ÀßÄꤵ¤ì¤ë: +には以下の値のいずれか一つが設定される: .TP .B EACCES .I key -¤ËÂбþ¤¹¤ë¥»¥Þ¥Õ¥©½¸¹ç¤Ï¸ºß¤¹¤ë¤¬¡¢ -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ï¤½¤Î½¸¹ç¤Ø¤Î¥¢¥¯¥»¥¹µö²Ä¤¬¤Ê¤¯¡¢ +に対応するセマフォ集合は存在するが、 +呼び出し元のプロセスはその集合へのアクセス許可がなく、 .B CAP_IPC_OWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤â»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +ケーパビリティも持っていない。 .TP .B EEXIST .I key -¤ËÂбþ¤¹¤ë¥»¥Þ¥Õ¥©½¸¹ç¤¬Â¸ºß¤·¡¢ +に対応するセマフォ集合が存在し、 .I semflg -¤Ë¤Ï +には .B IPC_CREAT -¤È +と .B IPC_EXCL -¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¡£ +が指定されていた。 .\" .TP .\" .B EIDRM -.\" ¥»¥Þ¥Õ¥©½¸¹ç¤Ëºï½ü (delete) ¥Þ¡¼¥¯¤¬¤Ä¤±¤é¤ì¤Æ¤¤¤ë¡£ +.\" セマフォ集合に削除 (delete) マークがつけられている。 .TP .B EINVAL .I nsems -¤¬ 0 ¤è¤ê¾®¤µ¤¤¤«¡¢¥»¥Þ¥Õ¥©½¸¹ç¤¢¤¿¤ê¤Î¥»¥Þ¥Õ¥©¤ÎºÇÂç¿ô +が 0 より小さいか、セマフォ集合あたりのセマフォの最大数 .RB ( SEMMSL ) -¤è¤êÂ礭¤¤¡£ -¤Þ¤¿¤Ï¡¢ +より大きい。 +または、 .I key -¤ËÂбþ¤¹¤ë¥»¥Þ¥Õ¥©½¸¹ç¤¬´û¤Ë¸ºß¤·¡¢ +に対応するセマフォ集合が既に存在し、 .I nsems -¤¬¤½¤Î½¸¹ç¤Î¥»¥Þ¥Õ¥©¿ô¤è¤ê¤âÂ礭¤¤¡£ +がその集合のセマフォ数よりも大きい。 .TP .B ENOENT .I key -¤ËÂбþ¤¹¤ë¥»¥Þ¥Õ¥©½¸¹ç¤¬Â¸ºß¤»¤º¡¢ +に対応するセマフォ集合が存在せず、 .I semflg -¤Ë +に .B IPC_CREAT -¤¬»ØÄꤵ¤ì¤Æ¤â¤¤¤Ê¤¤¡£ +が指定されてもいない。 .TP .B ENOMEM -¥»¥Þ¥Õ¥©½¸¹ç¤òºîÀ®¤·¤è¤¦¤È¤·¤¿¤¬¡¢¿·¤·¤¤¥Ç¡¼¥¿¹½Â¤ÂΤò -ºîÀ®¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¥·¥¹¥Æ¥à¤Ë¸ºß¤·¤Ê¤¤¡£ +セマフォ集合を作成しようとしたが、新しいデータ構造体を +作成するのに十分なメモリがシステムに存在しない。 .TP .B ENOSPC -¥»¥Þ¥Õ¥©½¸¹ç¤òºîÀ®¤·¤è¤¦¤È¤¹¤ë¤È¡¢¥·¥¹¥Æ¥à¤Î¥»¥Þ¥Õ¥©½¸¹ç¤Î -ºÇÂç¿ô +セマフォ集合を作成しようとすると、システムのセマフォ集合の +最大数 .RB ( SEMMNI ) -¤«¡¢¥·¥¹¥Æ¥àÁ´ÂΤΥ»¥Þ¥Õ¥©¤ÎºÇÂç¿ô +か、システム全体のセマフォの最大数 .RB ( SEMMNS ) -¤Î¤¤¤º¤ì¤«¤òĶ¤¨¤Æ¤·¤Þ¤¦¡£ -.SH ½àµò +のいずれかを超えてしまう。 +.SH 準拠 SVr4, POSIX.1-2001. -.\" SVr4 ¤Ë¤Ï¡¢ÄÉ²Ã¤Ç EFBIG, E2BIG, EAGAIN, ERANGE, EFAULT -.\" ¤Î¥¨¥é¡¼¾õÂ֤ˤĤ¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ -.SH Ãí°Õ +.\" SVr4 には、追加で EFBIG, E2BIG, EAGAIN, ERANGE, EFAULT +.\" のエラー状態についての記述がある。 +.SH 注意 .B IPC_PRIVATE -¤Ï¥Õ¥é¥°¡¦¥Õ¥£¡¼¥ë¥É¤Ë»ØÄꤹ¤ë¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢ +はフラグ・フィールドに指定するものではなく、 .I key_t -·¿¤Ç¤¢¤ë¡£ -¤³¤ÎÆÃÊ̤ÊÃͤ¬ +型である。 +この特別な値が .I key -¤Ë»ØÄꤵ¤ì¤ë¤È¡¢ +に指定されると、 .BR semget () .I semflg -¤Î²¼°Ì 9 ¥Ó¥Ã¥È°Ê³°¤ÏÁ´¤Æ̵»ë¤·¡¢ -(À®¸ù¤·¤¿¾ì¹ç¤Ï) ¿·¤·¤¤¥»¥Þ¥Õ¥©½¸¹ç¤òºîÀ®¤¹¤ë¡£ +の下位 9 ビット以外は全て無視し、 +(成功した場合は) 新しいセマフォ集合を作成する。 .PP -¥»¥Þ¥Õ¥©½¸¹ç¤Î¥ê¥½¡¼¥¹¤Ë´Ø¤¹¤ëÀ©¸Â¤Î¤¦¤Á¡¢ +セマフォ集合のリソースに関する制限のうち、 .BR semget () -¤Ë±Æ¶Á¤òµÚ¤Ü¤¹¤â¤Î¤ò°Ê²¼¤Ëµó¤²¤ë: +に影響を及ぼすものを以下に挙げる: .TP .B SEMMNI -¥·¥¹¥Æ¥àÁ´ÂΤΥ»¥Þ¥Õ¥©½¸¹ç¤ÎºÇÂç¿ô: Êý¿Ë°Í¸ -(Linux ¤Ç¤Ï¡¢¤³¤ÎÀ©¸ÂÃÍ¤Ï +システム全体のセマフォ集合の最大数: 方針依存 +(Linux では、この制限値は .I /proc/sys/kernel/sem -¤ÎÂè4¥Õ¥£¡¼¥ë¥É¤ËÂбþ¤·¡¢Æɤ߽Ф·¤âÊѹ¹¤â¤Ç¤­¤ë)¡£ -.\" ¤³¤Î /proc ¥Õ¥¡¥¤¥ë¤Ï Linux 2.2 °ÊÁ°¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤ -- MTK +の第4フィールドに対応し、読み出しも変更もできる)。 +.\" この /proc ファイルは Linux 2.2 以前では利用できない -- MTK .TP .B SEMMSL -semid ¤¢¤¿¤ê¤Î¥»¥Þ¥Õ¥©¤ÎºÇÂç¿ô: ¼ÂÁõ°Í¸ -(Linux ¤Ç¤Ï¡¢¤³¤ÎÀ©¸ÂÃÍ¤Ï +semid あたりのセマフォの最大数: 実装依存 +(Linux では、この制限値は .I /proc/sys/kernel/sem -¤ÎÂè1¥Õ¥£¡¼¥ë¥É¤ËÂбþ¤·¡¢Æɤ߽Ф·¤âÊѹ¹¤â¤Ç¤­¤ë)¡£ +の第1フィールドに対応し、読み出しも変更もできる)。 .TP .B SEMMNS -¥·¥¹¥Æ¥àÁ´ÂΤΥ»¥Þ¥Õ¥©¤ÎºÇÂç¿ô: Êý¿Ë°Í¸ -(Linux ¤Ç¤Ï¡¢¤³¤ÎÀ©¸ÂÃÍ¤Ï +システム全体のセマフォの最大数: 方針依存 +(Linux では、この制限値は .I /proc/sys/kernel/sem -¤ÎÂè2¥Õ¥£¡¼¥ë¥É¤ËÂбþ¤·¡¢Æɤ߽Ф·¤âÊѹ¹¤â¤Ç¤­¤ë)¡£ +の第2フィールドに対応し、読み出しも変更もできる)。 .B SEMMSL * SEMMNI -¤è¤êÂ礭¤ÊÃͤϰÕÌ£¤ò»ý¤¿¤Ê¤¤¡£ -.SH ¥Ð¥° +より大きな値は意味を持たない。 +.SH バグ .B IPC_PRIVATE -¤È¤¤¤¦Ì¾Á°¤òÁª¤ó¤À¤Î¤Ï¤ª¤½¤é¤¯¼ºÇԤǤ¢¤í¤¦¡£ +という名前を選んだのはおそらく失敗であろう。 .B IPC_NEW -¤ÎÊý¤¬¤è¤êÌÀ³Î¤Ë¤½¤Îµ¡Ç½¤òɽ¤·¤Æ¤¤¤ë¤À¤í¤¦¡£ +の方がより明確にその機能を表しているだろう。 .LP -¥»¥Þ¥Õ¥©½¸¹çÆâ¤Î¥»¥Þ¥Õ¥©¤Ï +セマフォ集合内のセマフォは .BR semget () -¤Ç¤Ï½é´ü²½¤µ¤ì¤Ê¤¤¡£ -.\" ¼ÂºÝ¤Ï Linux ¤Ç¤Ï¥»¥Þ¥Õ¥©¤Ï 0 ¤Ë½é´ü²½¤µ¤ì¤ë¤¬¡¢ -.\" POSIX.1-2001 ¤Ç¤Ï¤³¤¦¤Ê¤ë¤³¤È¤òµ¬Äꤷ¤Æ¤¤¤ëÌõ¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢ -.\" °Ü¿¢¤ò¹Íθ¤¹¤ë¤È¤­¤Ë¤Ï¤³¤ì¤òÁ°Äó¤Ë¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ -¤³¤Î¥»¥Þ¥Õ¥©¤ò½é´ü²½¤¹¤ë¤Ë¤Ï¡¢¥»¥Þ¥Õ¥©½¸¹ç¤ËÂФ·¤Æ +では初期化されない。 +.\" 実際は Linux ではセマフォは 0 に初期化されるが、 +.\" POSIX.1-2001 ではこうなることを規定している訳ではないので、 +.\" 移植を考慮するときにはこれを前提にしてはいけない。 +このセマフォを初期化するには、セマフォ集合に対して .BR semctl (2) -¤ò»È¤Ã¤Æ +を使って .B SETVAL -¤« +か .B SETALL -Áàºî¤ò¼Â¹Ô¤¹¤ëɬÍפ¬¤¢¤ë¡£ -(Ê£¿ô²Õ½ê¤«¤é¥»¥Þ¥Õ¥©½¸¹ç¤ÎÁàºî¤¬¹Ô¤ï¤ì¤ë¾ìÌ̤Ǥϡ¢ -郎ºÇ½é¤Ë½¸¹ç¤ò½é´ü²½¤¹¤ì¤Ð¤è¤¤¤«Ê¬¤«¤é¤Ê¤¤¡£ -¤³¤Î¾õ¶·¤òÈò¤±¤ë¤Ë¤Ï¡¢ +操作を実行する必要がある。 +(複数箇所からセマフォ集合の操作が行われる場面では、 +誰が最初に集合を初期化すればよいか分からない。 +この状況を避けるには、 .BR semctl (2) -¤Î +の .B IPC_STAT -Áàºî¤Ç¼èÆÀ¤Ç¤­¤ë¥»¥Þ¥Õ¥©¤Î¥Ç¡¼¥¿¹½Â¤ÂΤΠ+操作で取得できるセマフォのデータ構造体の .I sem_otime -¤¬ 0 °Ê³°¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ì¤Ð¤è¤¤¡£) -.SH ´ØÏ¢¹àÌÜ +が 0 以外になっているかをチェックすればよい。) +.SH 関連項目 .BR semctl (2), .BR semop (2), .BR ftok (3), diff --git a/release/man2/semop.2 b/release/man2/semop.2 index a85ac5ce..507b1d3e 100644 --- a/release/man2/semop.2 +++ b/release/man2/semop.2 @@ -40,26 +40,26 @@ .\" Updated 2005-09-06, Akihiro MOTOKI .\" Updated 2007-05-01, Akihiro MOTOKI, LDP v2.46 .\" -.\"WORD: semaphore ¥»¥Þ¥Õ¥© -.\"WORD: member ¥á¥ó¥Ð¡¼ -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: system call ¥·¥¹¥Æ¥à¥³¡¼¥ë -.\"WORD: undo ¥¢¥ó¥É¥¥ -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: catch Êá³Í(catch) -.\"WORD: process-ID ¥×¥í¥»¥¹ID -.\"WORD: policy Êý¿Ë -.\"WORD: implement ¼ÂÁõ -.\"WORD: queue ¥­¥å¡¼ -.\"WORD: free ²òÊü(free). -.\"WORD: memory ¥á¥â¥ê -.\"WORD: anonymous structure ̵̾¹½Â¤ÂÎ -.\"WORD: time limit À©¸Â»þ´Ö +.\"WORD: semaphore セマフォ +.\"WORD: member メンバー +.\"WORD: process プロセス +.\"WORD: system call システムコール +.\"WORD: undo アンドゥ +.\"WORD: signal シグナル +.\"WORD: catch 捕獲(catch) +.\"WORD: process-ID プロセスID +.\"WORD: policy 方針 +.\"WORD: implement 実装 +.\"WORD: queue キュー +.\"WORD: free 解放(free). +.\"WORD: memory メモリ +.\"WORD: anonymous structure 無名構造体 +.\"WORD: time limit 制限時間 \" .TH SEMOP 2 2008-10-04 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -semop, semtimedop \- ¥»¥Þ¥Õ¥©¤ÎÁàºî -.SH ½ñ¼° +.SH 名前 +semop, semtimedop \- セマフォの操作 +.SH 書式 .nf .B #include .B #include @@ -72,454 +72,454 @@ semop, semtimedop \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR semtimedop (): _GNU_SOURCE -.SH ÀâÌÀ -¥»¥Þ¥Õ¥©½¸¹ç (semaphore set) ¤Î¥á¥ó¥Ð¡¼¤Î³Æ¥»¥Þ¥Õ¥©¤Ï -°Ê²¼¤Î´ØÏ¢¾ðÊó¤ò»ý¤Ã¤Æ¤¤¤ë: +.SH 説明 +セマフォ集合 (semaphore set) のメンバーの各セマフォは +以下の関連情報を持っている: .sp .in +4n .nf -unsigned short semval; /* ¥»¥Þ¥Õ¥©ÃÍ */ -unsigned short semzcnt; /* ¥¼¥í¤òÂÔ¤Ä¥×¥í¥»¥¹¿ô */ -unsigned short semncnt; /* Áý²Ã¤òÂÔ¤Ä¥×¥í¥»¥¹¿ô */ -pid_t sempid; /* ºÇ¸å¤ËÁàºî¤ò¹Ô¤Ê¤Ã¤¿¥×¥í¥»¥¹ */ +unsigned short semval; /* セマフォ値 */ +unsigned short semzcnt; /* ゼロを待つプロセス数 */ +unsigned short semncnt; /* 増加を待つプロセス数 */ +pid_t sempid; /* 最後に操作を行なったプロセス */ .sp .in -4n .fi .BR semop () -¤Ï +は .I semid -¤Ç»ØÄꤵ¤ì¤¿¥»¥Þ¥Õ¥©½¸¹ç¤ÎÁªÂò¤µ¤ì¤¿¥»¥Þ¥Õ¥©¤ËÂФ·¤ÆÁàºî¤ò¹Ô¤¦¡£ +で指定されたセマフォ集合の選択されたセマフォに対して操作を行う。 .I sops -¤Ï +は .I nsops -¸Ä¤ÎÍ×ÁǤÎÇÛÎó¤ò»Ø¤·¡¢ÇÛÎó¤Î³ÆÍ×ÁǤϸġ¹¤Î¥»¥Þ¥Õ¥©¤Ë -ÂФ¹¤ëÁàºî¤ò¼¨¤¹¡£¤½¤Î·¿¤Ï +個の要素の配列を指し、配列の各要素は個々のセマフォに +対する操作を示す。その型は .I struct sembuf -¤Ç¡¢¼¡¤Î¥á¥ó¥Ð¤ò»ý¤Ä: +で、次のメンバを持つ: .sp .in +4n .nf -unsigned short sem_num; /* ¥»¥Þ¥Õ¥©ÈÖ¹æ */ -short sem_op; /* ¥»¥Þ¥Õ¥©Áàºî */ -short sem_flg; /* Áàºî¥Õ¥é¥° */ +unsigned short sem_num; /* セマフォ番号 */ +short sem_op; /* セマフォ操作 */ +short sem_flg; /* 操作フラグ */ .sp .in -4n .fi .I sem_flg -¤Ë¤Ï +には .B IPC_NOWAIT -¤È +と .B SEM_UNDO -¤¬ÀßÄê¤Ç¤­¤ë¡£ +が設定できる。 .B SEM_UNDO -¤¬»ØÄꤵ¤ì¤¿Áàºî¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿»þ¤Ë¼«Æ°Åª¤Ë¼è¤ê¾Ã¤µ¤ì¤ë¡£ +が指定された操作は、そのプロセスが終了した時に自動的に取り消される。 .PP .I sops -¤Ë´Þ¤Þ¤ì¤ëÁàºî¤Î½¸¹ç¤Ï¡¢ -.I "ÇÛÎó¤Î½ç½ø" -¤Ç¡¢ -.I ¥¢¥È¥ß¥Ã¥¯¤Ë -¼Â¹Ô¤µ¤ì¤ë¡£ -¤¹¤Ê¤ï¤Á¡¢Á´¤Æ¤ÎÁàºî¤¬´°Á´¤Ë¼Â¹Ô¤µ¤ì¤ë¤«¡¢Á´¤¯¼Â¹Ô¤µ¤ì¤Ê¤¤¤«¤Î -¤É¤Á¤é¤«¤È¤Ê¤ë¡£ +に含まれる操作の集合は、 +.I "配列の順序" +で、 +.I アトミックに +実行される。 +すなわち、全ての操作が完全に実行されるか、全く実行されないかの +どちらかとなる。 -Á´¤Æ¤ÎÁàºî¤¬Ä¾¤Á¤Ë¼Â¹Ô¤Ç¤­¤Ê¤¤¾ì¹ç¤Î¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¿¶¤ëÉñ¤¤¤Ï -¸Ä¡¹¤ÎÁàºî¤Î +全ての操作が直ちに実行できない場合のこのシステムコールの振る舞いは +個々の操作の .I sem_flg -¥Õ¥£¡¼¥ë¥É¤Ë +フィールドに .B IPC_NOWAIT -¤¬Â¸ºß¤¹¤ë¤«¤Ë¤è¤Ã¤Æ·è¤Þ¤ê¡¢¸å½Ò¤Î¤è¤¦¤Ë¤Ê¤ë¡£ +が存在するかによって決まり、後述のようになる。 -¤½¤ì¤¾¤ì¤ÎÁàºî¤Ï¥»¥Þ¥Õ¥©½¸¹ç¤Î -.IR sem_num ÈÖÌÜ -¤Î¥»¥Þ¥Õ¥©¤ËÂФ·¤Æ¼Â¹Ô¤µ¤ì¤ë¡£¥»¥Þ¥Õ¥©½¸¹ç¤ÎºÇ½é¤Î¥»¥Þ¥Õ¥©¤Ë¤Ï -ÈÖ¹æ 0 ¤¬¿¶¤é¤ì¤ë¡£ -¤½¤·¤ÆÁàºî¤Ï»°¼ïÎढ¤ê¡¢ +それぞれの操作はセマフォ集合の +.IR sem_num 番目 +のセマフォに対して実行される。セマフォ集合の最初のセマフォには +番号 0 が振られる。 +そして操作は三種類あり、 .I sem_op -¤ÎÃͤǶèÊ̤µ¤ì¤ë¡£ +の値で区別される。 .PP .I sem_op -¤¬Àµ¤ÎÀ°¿ô¤Î¾ì¹ç¡¢Áàºî¤È¤·¤Æ¤½¤ÎÃͤò¥»¥Þ¥Õ¥©¤ÎÃÍ +が正の整数の場合、操作としてその値をセマフォの値 .RI ( semval ) -¤Ë²Ã¤¨¤ë¡£¤µ¤é¤Ë¤³¤ÎÁàºî¤Ë +に加える。さらにこの操作に .B SEM_UNDO -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¥·¥¹¥Æ¥à¤Ï¤³¤Î¥»¥Þ¥Õ¥©¤Î ¥×¥í¥»¥¹¡¦¥¢¥ó¥É¥¥¿ô +が指定されている場合は、システムはこのセマフォの プロセス・アンドゥ数 .RI ( semadj ) -¤ò¹¹¿·¤¹¤ë¡£ -¤³¤ÎÁàºî¤Ïɬ¤º¼Â¹Ô¤Ç¤­¡¢¥×¥í¥»¥¹¤ÎÄä»ß¤Ïµ¯¤³¤é¤Ê¤¤¡£ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤ÏÂоݤΥ»¥Þ¥Õ¥©½¸¹ç¤òÊѹ¹¤¹¤ëµö²Ä¤¬¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を更新する。 +この操作は必ず実行でき、プロセスの停止は起こらない。 +呼び出し元プロセスは対象のセマフォ集合を変更する許可がなければならない。 .PP .I sem_op -¤¬ 0 ¤Î¾ì¹ç¡¢¡Ö¥¼¥í¤Þ¤ÇÂԤġ×Áàºî¤Ç¤¢¤ë¡£¤³¤Î¾ì¹ç¡¢¥×¥í¥»¥¹¤Ï -¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤ËÂФ¹¤ëÆɤ߹þ¤ßµö²Ä¤¬¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +が 0 の場合、「ゼロまで待つ」操作である。この場合、プロセスは +そのセマフォ集合に対する読み込み許可がなければならない。 .I semval -¤¬ 0 ¤Ê¤é¤Ð¡¢Áàºî¤Ïľ¤Á¤Ë¹Ô¤ï¤ì¤ë¡£ +が 0 ならば、操作は直ちに行われる。 .I semval -¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が 0 でない場合、 .I sem_flg -¤Ë +に .B IPC_NOWAIT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢ +が指定されていれば、 .BR semop () -¤Ï¼ºÇÔ¤·¡¢ +は失敗し、 .B errno -¤Ë +に .B EAGAIN -¤¬ÀßÄꤵ¤ì¤ë (¤³¤Î¤È¤­ +が設定される (このとき .I sops -¤ËÂФ¹¤ëÁàºî¤ÏÁ´¤¯¼Â¹Ô¤µ¤ì¤Ê¤¤)¡£ +に対する操作は全く実行されない)。 .I sem_flg -¤Ë +に .B IPC_NOWAIT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +が指定されていない場合、 .I semzcnt -(¥»¥Þ¥Õ¥©Ãͤ¬ 0 ¤Ë¤Ê¤ë¤Î¤òÂԤäƤ¤¤ë¥×¥í¥»¥¹¤Î¿ô) ¤ò 1 Áý²Ã¤µ¤»¤Æ¡¢ -°Ê²¼¤Î¤¤¤º¤ì¤«¤¬µ¯¤³¤ë¤Þ¤Ç¥×¥í¥»¥¹¤òÄä»ß (sleep) ¤¹¤ë¡£ +(セマフォ値が 0 になるのを待っているプロセスの数) を 1 増加させて、 +以下のいずれかが起こるまでプロセスを停止 (sleep) する。 .IP \(bu 3 .I semval -¤¬ 0 ¤Ë¤Ê¤Ã¤¿: ¤³¤Î¤È¤­ +が 0 になった: このとき .I semzcnt -¤ÎÃÍ¤Ï 1 ¸º»»¤µ¤ì¤ë¡£ +の値は 1 減算される。 .IP \(bu -¥»¥Þ¥Õ¥©½¸¹ç¤¬ºï½ü¤µ¤ì¤¿: ¤³¤Î¤È¤­ +セマフォ集合が削除された: このとき .BR semop () -¤Ï¼ºÇÔ¤·¡¢ +は失敗し、 .I errno -¤Ë +に .B EIDRM -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .IP \(bu -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤òÊá³Í¤·¤¿: ¤³¤Î¤È¤­ +呼び出し元プロセスがシグナルを捕獲した: このとき .I semzcnt -¤ÎÃÍ¤Ï 1 ¸º»»¤µ¤ì¡¢ +の値は 1 減算され、 .BR semop () -¤Ï¼ºÇÔ¤· +は失敗し .I errno -¤Ë +に .B EINTR -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .IP \(bu -.\" motoki: semop () ¤Ï semtimedop () ¤Î´Ö°ã¤¤¡© +.\" motoki: semop () は semtimedop () の間違い? .BR semtimedop () -¤Î +の .I timeout -¤Ç»ØÄꤵ¤ì¤¿À©¸Â»þ´Ö¤¬·Ð²á¤·¤¿: ¤³¤Î¤È¤­ +で指定された制限時間が経過した: このとき .BR semtimedop () -¤Ï¼ºÇÔ¤·¡¢ +は失敗し、 .I errno -¤Ë +に .B EAGAIN -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .PP .I sem_op -¤¬ 0 ̤Ëþ¤Î¾ì¹ç¡¢¥×¥í¥»¥¹¤Ë¤Ï¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤òÊѹ¹¤¹¤ëµö²Ä¤¬¤Ê¤±¤ì¤Ð -¤Ê¤é¤Ê¤¤¡£ +が 0 未満の場合、プロセスにはそのセマフォ集合を変更する許可がなければ +ならない。 .I semval -¤¬ +が .I sem_op -¤ÎÀäÂÐÃͰʾå¤Î¾ì¹ç¤Ï¡¢Áàºî¤Ïľ¤Á¤Ë¼Â¹Ô¤µ¤ì¤ë: +の絶対値以上の場合は、操作は直ちに実行される: .I semval -¤«¤é +から .I sem_op -¤ÎÀäÂÐÃͤ¬¸º»»¤µ¤ì¤ë¡£ -¤µ¤é¤Ë¡¢¤³¤ÎÁàºî¤Ë +の絶対値が減算される。 +さらに、この操作に .B SEM_UNDO -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤³¤Î¥»¥Þ¥Õ¥©¤Î¥×¥í¥»¥¹¡¦¥¢¥ó¥É¥¥¿ô +が指定されている場合は、このセマフォのプロセス・アンドゥ数 .RI ( semadj ) -¤ò¹¹¿·¤¹¤ë¡£ +を更新する。 .I semval -¤¬ +が .I sem_op -¤ÎÀäÂÐÃͤè¤ê¾®¤µ¤¯¡¢ +の絶対値より小さく、 .I sem_flg -¤Ë +に .B IPC_NOWAIT -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢ +が指定された場合は、 .BR semop () -¤Ï¼ºÇÔ¤·¡¢ +は失敗し、 .I errno -¤Ë +に .B EAGAIN -¤¬ÀßÄꤵ¤ì¤ë (¤³¤Î¤È¤­ +が設定される (このとき .I sops -¤ÎÁàºî¤ÏÁ´¤¯¼Â¹Ô¤µ¤ì¤Ê¤¤)¡£ +の操作は全く実行されない)。 .B IPC_WAIT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ +が指定されていなければ、 .I semncnt -(¤³¤Î¥»¥Þ¥Õ¥©¤ÎÃͤ¬Áý²Ã¤¹¤ë¤Î¤òÂԤäƤ¤¤ë¥×¥í¥»¥¹¿ô¤Î¥«¥¦¥ó¥¿) -¤ò 1 Áý²Ã¤µ¤»¤Æ¡¢°Ê²¼¤Î¤¤¤º¤ì¤«¤¬µ¯¤³¤ë¤Þ¤Ç¥×¥í¥»¥¹¤òÄä»ß (sleep) ¤¹¤ë¡£ +(このセマフォの値が増加するのを待っているプロセス数のカウンタ) +を 1 増加させて、以下のいずれかが起こるまでプロセスを停止 (sleep) する。 .IP \(bu 3 .I semval -¤¬ +が .I sem_op -¤ÎÀäÂÐÃͰʾå¤Ë¤Ê¤Ã¤¿: ¤³¤Î¤È¤­ +の絶対値以上になった: このとき .I semncnt -¤¬ 1 ¸º»»¤µ¤ì¡¢ +が 1 減算され、 .I semval -¤«¤é +から .I sem_op -¤ÎÀäÂÐÃͤ¬°ú¤«¤ì¤ë¡£ -¤³¤ÎÁàºî¤Ë +の絶対値が引かれる。 +この操作に .B SEM_UNDO -¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ë¤Ï¤³¤Î¥»¥Þ¥Õ¥©¤Î¥×¥í¥»¥¹¡¦¥¢¥ó¥É¥¥¿ô +が指定されていた場合にはこのセマフォのプロセス・アンドゥ数 .RI ( semadj ) -¤â¹¹¿·¤¹¤ë¡£ +も更新する。 .IP \(bu -¥»¥Þ¥Õ¥©½¸¹ç¤¬¥·¥¹¥Æ¥à¤«¤éºï½ü¤µ¤ì¤¿: ¤³¤Î¤È¤­ +セマフォ集合がシステムから削除された: このとき .BR semop () -¤Ï¼ºÇÔ¤· +は失敗し .I errno -¤Ë +に .B EIDRM -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .IP \(bu -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤òÊá³Í¤·¤¿: ¤³¤Î¤È¤­ +呼び出したプロセスがシグナルを捕獲した: このとき .I semncnt -¤¬ 1 ¸º»»¤µ¤ì¡¢ +が 1 減算され、 .BR semop () -¤Ï¼ºÇÔ¤· +は失敗し .I errno -¤Ë +に .B EINTR -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .IP \(bu -.\" motoki: the system call ¤Ï semtimedop () ¤Î¤³¤È¡© +.\" motoki: the system call は semtimedop () のこと? .BR semtimedop () -¤Î +の .I timeout -¤Ç»ØÄꤵ¤ì¤¿À©¸Â»þ´Ö¤¬·Ð²á¤·¤¿: ¤³¤Î¤È¤­ +で指定された制限時間が経過した: このとき .BR semtimedop () -¤Ï¼ºÇÔ¤·¡¢ +は失敗し、 .I errno -¤Ë +に .B EAGAIN -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .PP -Áàºî¤¬À®¸ù¤·¤¿¾ì¹ç¡¢ +操作が成功した場合、 .I sops -¤¬»Ø¤¹ÇÛÎó¤Ë¤è¤Ã¤ÆÁàºîÂоݤȤʤ俳ƥ»¥Þ¥Õ¥©¤Î +が指す配列によって操作対象となった各セマフォの .I sempid -¥á¥ó¥Ð¡¼¤Ë¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤¬ÀßÄꤵ¤ì¤ë¡£ -¤µ¤é¤Ë +メンバーには呼び出したプロセスのプロセス ID が設定される。 +さらに .I sem_otime -.\" ¤È +.\" と .\" .I sem_ctime -¤Ë¸½ºß»þ¹ï¤¬ÀßÄꤵ¤ì¤ë¡£ +に現在時刻が設定される。 .PP .BR semtimedop () -´Ø¿ô¤Î¿¶¤ëÉñ¤¤¤Ï +関数の振る舞いは .BR semop () -¤ÈÁ´¤¯Æ±¤¸¤À¤¬¡¢ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬Ää»ß¤¹¤ë¾ì¹ç¡¢Ää»ß´ü´Ö¤Î¾å¸Â¤¬ +と全く同じだが、 +呼び出し元プロセスが停止する場合、停止期間の上限が .I timeout -°ú¤­¿ô¤Î»Ø¤¹ +引き数の指す .I timespec -¹½Â¤ÂΤǻØÄꤵ¤ì¤¿»þ´Ö¤È¤Ê¤ëÅÀ¤À¤±¤¬°Û¤Ê¤ë¡£ -»ØÄꤷ¤¿À©¸Â»þ´Ö¤Ë㤷¤¿¾ì¹ç¤Ï¡¢ +構造体で指定された時間となる点だけが異なる。 +指定した制限時間に達した場合は、 .BR semtimedop () -¤Ï¼ºÇÔ¤·¡¢ +は失敗し、 .I errno -¤Ë +に .B EAGAIN -¤¬ÀßÄꤵ¤ì¤ë -(¤³¤Î¤È¤­ +が設定される +(このとき .I sops -¤ÎÁàºî¤Ï¼Â¹Ô¤µ¤ì¤Ê¤¤)¡£ +の操作は実行されない)。 .I timeout -°ú¤­¿ô¤¬ NULL ¤Î¾ì¹ç¡¢ +引き数が NULL の場合、 .BR semtimedop () -´Ø¿ô¤Î¿¶¤ëÉñ¤¤¤Ï +関数の振る舞いは .BR semop () -´Ø¿ô¤ÈÁ´¤¯Æ±¤¸¤Ë¤Ê¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +関数と全く同じになる。 +.SH 返り値 +成功した場合、 .BR semop () -¤È +と .BR semtimedop () -¤Ï 0 ¤òÊÖ¤¹¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð \-1 ¤òÊÖ¤·¡¢ -¥¨¥é¡¼¤ò¼¨¤¹ +は 0 を返す。そうでなければ \-1 を返し、 +エラーを示す .I errno -¤òÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +を設定する。 +.SH エラー +失敗した場合、 .I errno -¤Ë°Ê²¼¤Î¤É¤ì¤«¤¬ÀßÄꤵ¤ì¤ë: +に以下のどれかが設定される: .TP .B E2BIG .I nsops -°ú¤­¿ô¤¬ +引き数が .B SEMOPM -¤è¤êÂ礭¤¤¡£ +より大きい。 .B SEMOPM -¤Ï°ì²ó¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Çµö¤µ¤ì¤ëÁàºî¤ÎºÇÂç¸Ä¿ô¤Ç¤¢¤ë¡£ +は一回のシステムコールで許される操作の最大個数である。 .TP .B EACCES -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë¤Ï»ØÄꤵ¤ì¤¿¥»¥Þ¥Õ¥©Áàºî¤ò¹Ô¤¦¤Î¤Ë -ɬÍפʥ¢¥¯¥»¥¹µö²Ä¤¬¤Ê¤¯¡¢ +呼び出し元プロセスには指定されたセマフォ操作を行うのに +必要なアクセス許可がなく、 .B CAP_IPC_OWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤â¤Ê¤¤¡£ +ケーパビリティもない。 .TP .B EAGAIN -Áàºî¤òľ¤Á¤Ë½èÍý¤¹¤ë¤³¤È¤¬¤Ç¤­¤º¡¢¤«¤Ä +操作を直ちに処理することができず、かつ .I sem_flg -¤Ë +に .B IPC_NOWAIT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤« +が指定されているか .I timeout -¤Ç»ØÄꤵ¤ì¤¿À©¸Â»þ´Ö¤¬·Ð²á¤·¤¿¡£ +で指定された制限時間が経過した。 .TP .B EFAULT -°ú¤­¿ô +引き数 .I sops -¤« +か .I timeout -¤¬»Ø¤·¤Æ¤¤¤ë¥¢¥É¥ì¥¹¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¡£ +が指しているアドレスにアクセスできない。 .TP .B EFBIG -¤¢¤ëÁàºî¤Ç¡¢ +ある操作で、 .I sem_num -¤ÎÃͤ¬ 0 ̤Ëþ¤«¡¢½¸¹çÆâ¤Î¥»¥Þ¥Õ¥©¤Î¿ô°Ê¾å¤Ç¤¢¤ë¡£ +の値が 0 未満か、集合内のセマフォの数以上である。 .TP .B EIDRM -¥»¥Þ¥Õ¥©½¸¹ç¤¬ºï½ü¤µ¤ì¤¿¡£ +セマフォ集合が削除された。 .TP .B EINTR -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÇÄä»ß¤·¤Æ¤¤¤ë»þ¤Ë¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤òÊá³Í¤·¤¿¡£ +このシステムコールで停止している時にプロセスがシグナルを捕獲した。 .BR single (7) -»²¾È¡£ +参照。 .TP .B EINVAL -¥»¥Þ¥Õ¥©½¸¹ç¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢ +セマフォ集合が存在しないか、 .I semid -¤¬ 0 ̤Ëþ¤Ç¤¢¤ë¤«¡¢ +が 0 未満であるか、 .I nsops -¤¬Àµ¤Î¿ô¤Ç¤Ê¤¤¡£ +が正の数でない。 .TP .B ENOMEM -¤¢¤ëÁàºî¤Ç +ある操作で .I sem_flg -¤Ë +に .B SEM_UNDO -¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¥·¥¹¥Æ¥à¤Ë¥¢¥ó¥É¥¥¹½Â¤ÂΤ˳ä¤êÅö¤Æ¤ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +が指定されたが、システムにアンドゥ構造体に割り当てる十分なメモリがない。 .TP .B ERANGE -¤¢¤ëÁàºî¤Ç +ある操作で .I sem_op+semval -¤¬ +が .B SEMVMX -¤è¤êÂ礭¤¤¡£ +より大きい。 .B SEMVMX -¤Ï +は .I semval -¤ÎºÇÂçÃͤǡ¢¤½¤ÎÃͤϼÂÁõ°Í¸¤Ç¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +の最大値で、その値は実装依存である。 +.SH バージョン .BR semtimedop () -¤Ï Linux 2.5.52 ¤Ç½é¤á¤ÆÅо줷¡¢ -¤½¤ì¤«¤é¥«¡¼¥Í¥ë 2.4.22 ¤Ë¤â°Ü¿¢¤µ¤ì¤¿¡£ +は Linux 2.5.52 で初めて登場し、 +それからカーネル 2.4.22 にも移植された。 .BR semtimedop () -¤Î glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.3.3 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +の glibc でのサポートはバージョン 2.3.3 で初めて登場した。 +.SH 準拠 SVr4, POSIX.1-2001. -.\" SVr4 ¤Ë¤Ï¡¢ÄÉ²Ã¤Ç EINVAL, EFBIG, ENOSPC ¤Î¥¨¥é¡¼¾õÂ֤ˤĤ¤¤Æ¤Î -.\" µ­½Ò¤¬¤¢¤ë¡£ -.SH Ãí°Õ -¤¢¤ë¥×¥í¥»¥¹¤Î +.\" SVr4 には、追加で EINVAL, EFBIG, ENOSPC のエラー状態についての +.\" 記述がある。 +.SH 注意 +あるプロセスの .I sem_undo -¹½Â¤ÂÎ¤Ï +構造体は .BR fork (2) -¤ÇÀ¸À®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ë¤Ï·Ñ¾µ¤µ¤ì¤Ê¤¤¤¬¡¢ +で生成された子プロセスには継承されないが、 .BR execve (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¾ì¹ç¤Ï·Ñ¾µ¤µ¤ì¤ë¡£ +システムコールの場合は継承される。 .PP .BR semop () -¤Ï¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤Ã¤ÆÃæÃǤµ¤ì¤¿¸å¤Ë¡¢ -·è¤·¤Æ¼«Æ°Åª¤ËºÆ³«¤¹¤ë¤³¤È¤Ï¤Ê¤¤¡£ -¤¿¤È¤¨¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ÎÀßÄê»þ¤Ë +はシグナルハンドラによって中断された後に、 +決して自動的に再開することはない。 +たとえシグナルハンドラの設定時に .B SA_RESTART -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Æ¤âºÆ³«¤¹¤ë¤³¤È¤Ï¤Ê¤¤ +フラグがセットされていても再開することはない .PP .I semadj -¤Ï¥×¥í¥»¥¹¤´¤È¤ÎÀ°¿ô¤Ç¡¢ +はプロセスごとの整数で、 .B SEM_UNDO -¥Õ¥é¥°¤òÀßÄꤷ¤Æ¼Â¹Ô¤µ¤ì¤¿Á´¤Æ¤Î¥»¥Þ¥Õ¥©Áàºî¤Î(Éé¿ô¤Î)¥«¥¦¥ó¥¿¤Ç¤¢¤ë¡£ +フラグを設定して実行された全てのセマフォ操作の(負数の)カウンタである。 .BR semctl (2) -¤Ë +に .B SETVAL -¤Þ¤¿¤Ï +または .B SETALL -¤ò»ØÄꤷ¡¢¥»¥Þ¥Õ¥©¤ÎÃͤ¬ -ľÀÜÀßÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢Á´¤Æ¤Î¥×¥í¥»¥¹¤Ë¤ª¤¤¤ÆÂбþ¤¹¤ë +を指定し、セマフォの値が +直接設定された場合には、全てのプロセスにおいて対応する .I semadj -¤ÎÃͤ¬¥¯¥ê¥¢¤µ¤ì¤ë¡£ +の値がクリアされる。 .PP -¤¢¤ë¥»¥Þ¥Õ¥©¤Î \fIsemval\fP, \fIsempid\fP, \fIsemzcnt\fP, \fIsemnct\fP -¤ÎÃͤϤ¤¤º¤ì¤â¡¢Å¬ÀÚ¤ÊÁàºî¤ò»ØÄꤷ¤Æ +あるセマフォの \fIsemval\fP, \fIsempid\fP, \fIsemzcnt\fP, \fIsemnct\fP +の値はいずれも、適切な操作を指定して .BR semctl (2) -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¼èÆÀ¤Ç¤­¤ë¡£ +を呼び出すことで取得できる。 .PP -¥»¥Þ¥Õ¥©½¸¹ç¤Î¥ê¥½¡¼¥¹¤Ë´Ø¤¹¤ëÀ©¸Â¤Î¤¦¤Á¡¢ +セマフォ集合のリソースに関する制限のうち、 .BR semop () -¤Ë±Æ¶Á¤òµÚ¤Ü¤¹¤â¤Î¤ò°Ê²¼¤Ëµó¤²¤ë: +に影響を及ぼすものを以下に挙げる: .TP .B SEMOPM -°ì²ó¤Î +一回の .BR semop () -¤Çµö¤µ¤ì¤ëÁàºî¤ÎºÇÂç¿ô (32)¡£ -(Linux ¤Ç¤Ï¡¢¤³¤ÎÀ©¸ÂÃÍ¤Ï +で許される操作の最大数 (32)。 +(Linux では、この制限値は .I /proc/sys/kernel/sem -¤ÎÂè3¥Õ¥£¡¼¥ë¥É¤ËÂбþ¤·¡¢Æɤ߽Ф·¤âÊѹ¹¤â¤Ç¤­¤ë)¡£ -.\" ¤³¤Î /proc ¥Õ¥¡¥¤¥ë¤Ï Linux 2.2 °ÊÁ°¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤ -- MTK +の第3フィールドに対応し、読み出しも変更もできる)。 +.\" この /proc ファイルは Linux 2.2 以前では利用できない -- MTK .TP .B SEMVMX .I semval -¤¬¼è¤êÆÀ¤ëºÇÂçÃÍ: ¼ÂÁõ°Í¸ (32767)¡£ +が取り得る最大値: 実装依存 (32767)。 .PP -°Ê²¼¤ÎÃͤ˴ؤ·¤Æ¤Ï¼ÂÁõ°Í¸¤ÎÀ©¸Â¤Ï¤Ê¤¤¡£ -½ªÎ»»þ¤ÎÄ´À° (adjust on exit) ¤ÎºÇÂçÃÍ -.RB ( SEMAEM )¡¢ -¥·¥¹¥Æ¥àÁ´ÂΤΥ¢¥ó¥É¥¥¹½Â¤ÂΤκÇÂç¿ô -.RB ( SEMMNU )¡¢ -¥×¥í¥»¥¹¤¢¤¿¤ê¤Î¥¢¥ó¥É¥¥¹½Â¤ÂΤκÇÂç¿ô¡£ -.SH ¥Ð¥° -¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ëºÝ¡¢¥×¥í¥»¥¹¤ËÂбþ¤¹¤ë +以下の値に関しては実装依存の制限はない。 +終了時の調整 (adjust on exit) の最大値 +.RB ( SEMAEM )、 +システム全体のアンドゥ構造体の最大数 +.RB ( SEMMNU )、 +プロセスあたりのアンドゥ構造体の最大数。 +.SH バグ +プロセスが終了する際、プロセスに対応する .I semadj -¤Î½¸¹ç¤ò»È¤Ã¤Æ¡¢ +の集合を使って、 .B SEM_UNDO -¥Õ¥é¥°ÉÕ¤­¤Ç¼Â¹Ô¤µ¤ì¤¿Á´¤Æ¤Î¥»¥Þ¥Õ¥©Áàºî¤Î±Æ¶Á¤ò¼è¤ê¾Ã¤¹¡£ -¤³¤ì¤Ë¤è¤ê¤¢¤ëÌäÂ꤬ȯÀ¸¤¹¤ë: ¤³¤ì¤é¤Î¥»¥Þ¥Õ¥©¤ÎÄ´À°¤ò¹Ô¤Ã¤Æ¤¤¤ë¤È¡¢ -Ãæ¤Ë¤Ï¥»¥Þ¥Õ¥©¤ÎÃͤ¬ 0 ̤Ëþ¤ÎÃͤˤ·¤è¤¦¤È¤¹¤ë¾ì¹ç¤¬½Ð¤Æ¤¯¤ë¡£ -¤³¤Î¤è¤¦¤Ê¾ì¹ç¡¢¤É¤Î¤è¤¦¤Ë¼ÂÁõ¤¹¤ë¤Ù¤­¤«? -¤Ò¤È¤Ä¤Î¹Í¤¨¤é¤ì¤ë¼êË¡¤Ï¡¢Á´¤Æ¤Î¥»¥Þ¥Õ¥©Ä´À°¤¬¼Â¹Ô¤µ¤ì¤ë¤Þ¤Ç -Ää»ß¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£¤·¤«¤·¡¢¤³¤ÎÊýË¡¤Ç¤Ï¥×¥í¥»¥¹¤Î½ªÎ»¤¬ -Ĺ»þ´Ö¤Ë¤ï¤¿¤Ã¤ÆÄä»ß¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¤Î¤Ç˾¤Þ¤·¤¯¤Ê¤¤¡£ -¤·¤«¤â¤É¤ì¤¯¤é¤¤Ä¹»þ´Ö¤Ë¤Ê¤ë¤«¤Ïʬ¤«¤é¤Ê¤¤¡£ -Ê̤ÎÁªÂò»è¤È¤·¤Æ¡¢¤³¤Î¤è¤¦¤Ê¥»¥Þ¥Õ¥©Ä´À°¤ò´°Á´¤Ë̵»ë¤·¤Æ¤·¤Þ¤¦ÊýË¡¤¬¤¢¤ë -(¤³¤ì¤Ï¥»¥Þ¥Õ¥©Áàºî¤È¤·¤Æ +フラグ付きで実行された全てのセマフォ操作の影響を取り消す。 +これによりある問題が発生する: これらのセマフォの調整を行っていると、 +中にはセマフォの値が 0 未満の値にしようとする場合が出てくる。 +このような場合、どのように実装するべきか? +ひとつの考えられる手法は、全てのセマフォ調整が実行されるまで +停止することである。しかし、この方法ではプロセスの終了が +長時間にわたって停止されることがあるので望ましくない。 +しかもどれくらい長時間になるかは分からない。 +別の選択肢として、このようなセマフォ調整を完全に無視してしまう方法がある +(これはセマフォ操作として .B IPC_NOWAIT -¤¬»ØÄꤹ¤ë¤Î¤È¾¯¤·»÷¤Æ¤¤¤ë)¡£ -Linux ¤ÏÂè»°¤Î¼êË¡¤òºÎÍѤ·¤Æ¤¤¤ë: ¥»¥Þ¥Õ¥©¤ÎÃͤò½ÐÍè¤ë¤À¤± (¤Ä¤Þ¤ê -0 ¤Þ¤Ç) ¸º¾¯¤µ¤»¤Æ¡¢¥×¥í¥»¥¹¤Î½ªÎ»¤òľ¤Á¤Ë³¹Ô¤Ç¤­¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤ë¡£ +が指定するのと少し似ている)。 +Linux は第三の手法を採用している: セマフォの値を出来るだけ (つまり +0 まで) 減少させて、プロセスの終了を直ちに続行できるようにしている。 -¥«¡¼¥Í¥ë 2.6.x (x <= 10) ¤Ë¤Ï¡¢¤¢¤ë¾õ¶·¤Ë¤ª¤¤¤Æ¥»¥Þ¥Õ¥©Ãͤ¬ 0 ¤Ë¤Ê¤ë¤Î¤ò -ÂԤäƤ¤¤ë¥×¥í¥»¥¹¤¬¡¢¥»¥Þ¥Õ¥©Ãͤ¬¼ÂºÝ¤Ë 0 ¤Ë¤Ê¤Ã¤¿¤È¤­¤Ëµ¯¾² (wake up) -¤µ¤ì¤Ê¤¤¡¢¤È¤¤¤¦¥Ð¥°¤¬¤¢¤ë¡£¤³¤Î¥Ð¥°¤Ï¥«¡¼¥Í¥ë 2.6.11 ¤Ç½¤Àµ¤µ¤ì¤Æ¤¤¤ë¡£ -.\" ¥Ð¥°¥ì¥Ý¡¼¥È: +カーネル 2.6.x (x <= 10) には、ある状況においてセマフォ値が 0 になるのを +待っているプロセスが、セマフォ値が実際に 0 になったときに起床 (wake up) +されない、というバグがある。このバグはカーネル 2.6.11 で修正されている。 +.\" バグレポート: .\" http://marc.theaimsgroup.com/?l=linux-kernel&m=110260821123863&w=2 -.\" ½¤Àµ: +.\" 修正: .\" http://marc.theaimsgroup.com/?l=linux-kernel&m=110261701025794&w=2 -.SH Îã -°Ê²¼¤ÎÉôʬŪ¤Ê¥³¡¼¥É¤Ï¡¢ -¥»¥Þ¥Õ¥© 0 ¤ÎÃͤ¬ 0 ¤Ë¤Ê¤ë¤Î¤òÂԤäƤ«¤é¡¢ -¥»¥Þ¥Õ¥©¤ÎÃͤò 1 ²Ã»»¤¹¤ë½èÍý¤ò¡¢ +.SH 例 +以下の部分的なコードは、 +セマフォ 0 の値が 0 になるのを待ってから、 +セマフォの値を 1 加算する処理を、 .BR semop () -¤ò»È¤Ã¤Æ¥¢¥È¥ß¥Ã¥¯ (atomically) ¤Ë¹Ô¤¦¡£ +を使ってアトミック (atomically) に行う。 .nf struct sembuf sops[2]; @@ -540,7 +540,7 @@ Linux exit(EXIT_FAILURE); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR semctl (2), .BR semget (2), .BR sigaction (2), diff --git a/release/man2/send.2 b/release/man2/send.2 index 5eab3236..8a592051 100644 --- a/release/man2/send.2 +++ b/release/man2/send.2 @@ -45,23 +45,23 @@ .\" Updated 2006-04-15, Akihiro MOTOKI, LDP v2.29 .\" Updated 2008-04-13, Akihiro MOTOKI, LDP v3.20 .\" -.\"WORD: socket ¥½¥±¥Ã¥È -.\"WORD: message ¥á¥Ã¥»¡¼¥¸ -.\"WORD: protocol ¥×¥í¥È¥³¥ë -.\"WORD: nonblocking I/O ÈóÄä»ß I/O -.\"WORD: block Ää»ß(block) -.\"WORD: out-of-band ÂÓ°è³° -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: parameter ¥Ñ¥é¥á¡¼¥¿ -.\"WORD: queue ¥­¥å¡¼ -.\"WORD: buffer ¥Ð¥Ã¥Õ¥¡ -.\"WORD: routing ¥ë¡¼¥Æ¥£¥ó¥° -.\"WORD: congestion íÕíÔ +.\"WORD: socket ソケット +.\"WORD: message メッセージ +.\"WORD: protocol プロトコル +.\"WORD: nonblocking I/O 非停止 I/O +.\"WORD: block 停止(block) +.\"WORD: out-of-band 帯域外 +.\"WORD: descriptor ディスクリプタ +.\"WORD: parameter パラメータ +.\"WORD: queue キュー +.\"WORD: buffer バッファ +.\"WORD: routing ルーティング +.\"WORD: congestion 輻輳 .\" .TH SEND 2 2011-10-01 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -send, sendto, sendmsg \- ¥½¥±¥Ã¥È¤Ø¥á¥Ã¥»¡¼¥¸¤òÁ÷¤ë -.SH ½ñ¼° +.SH 名前 +send, sendto, sendmsg \- ソケットへメッセージを送る +.SH 書式 .nf .B #include .B #include @@ -76,365 +76,365 @@ send, sendto, sendmsg \- .BI "ssize_t sendmsg(int " sockfd ", const struct msghdr *" msg \ ", int " flags ); .fi -.SH ÀâÌÀ -¥·¥¹¥Æ¥à¥³¡¼¥ë +.SH 説明 +システムコール .BR send (), .BR sendto (), .BR sendmsg () -¤Ï¡¢¤â¤¦°ìÊý¤Î¥½¥±¥Ã¥È¤Ø¥á¥Ã¥»¡¼¥¸¤òžÁ÷¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ +は、もう一方のソケットへメッセージを転送するのに使用される。 .PP .BR send () -¤Ï¡¢¥½¥±¥Ã¥È¤¬ -.I "Àܳ¤µ¤ì¤¿ (connected)" -¾õÂ֤ˤ¢¤ë¾ì¹ç¤Ë¤Î¤ß»ÈÍѤǤ­¤ë -(¤Ä¤Þ¤ê¡¢¤É¤ÎÁê¼ê¤ËÁ÷¿®¤¹¤ë¤«¤Ï´ûÃΤǤ¢¤ë)¡£ +は、ソケットが +.I "接続された (connected)" +状態にある場合にのみ使用できる +(つまり、どの相手に送信するかは既知である)。 .BR send () -¤È +と .BR write (2) -¤Î°ã¤¤¤Ï¡¢°ú¤­¿ô¤Ë +の違いは、引き数に .I flags -¤¬¤¢¤ë¤«¤É¤¦¤«¤À¤±¤Ç¤¢¤ë¡£ -°ú¤­¿ô +があるかどうかだけである。 +引き数 .I flags -¤Ë¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢ +にフラグが指定されない場合、 .BR send () -¤Ï +は .BR write (2) -¤ÈÅù²Á¤Ç¤¢¤ë¡£ -¤Þ¤¿¡¢ +と等価である。 +また、 send(sockfd, buf, len, flags); -¤Ï +は sendto(sockfd, buf, len, flags, NULL, 0); -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 .PP -°ú¤­¿ô +引き数 .I sockfd -¤Ï¡¢¥Ç¡¼¥¿¤òÁ÷¿®¤¹¤ë¥Ñ¥±¥Ã¥È¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ +は、データを送信するパケットのファイル・ディスクリプタである。 .PP .BR sendto () -¤Ï¡¢Àܳ·¿ (connection-mode) ¤Î¥½¥±¥Ã¥È +は、接続型 (connection-mode) のソケット .RB ( SOCK_STREAM , .BR SOCK_SEQPACKET ) -¤Ç -»ÈÍѤµ¤ì¤¿¾ì¹ç¡¢°ú¤­¿ô +で +使用された場合、引き数 .I dest_addr -¤È +と .I addrlen -¤Ï̵»ë¤µ¤ì¤ë (³Æ¡¹¤Î°ú¤­¿ô¤¬ NULL ¤È 0 ¤Ç¤Ê¤¤¾ì¹ç¤Ï +は無視される (各々の引き数が NULL と 0 でない場合は .B EISCONN -¥¨¥é¡¼¤âÊÖ¤µ¤ì¤ë)¡£ -¤Þ¤¿¡¢¥½¥±¥Ã¥È¤¬¼ÂºÝ¤Ë¤ÏÀܳ¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿»þ¤Ë¤Ï +エラーも返される)。 +また、ソケットが実際には接続されていなかった時には .B ENOTCONN -¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ -Àܳ·¿¤Î¥½¥±¥Ã¥È°Ê³°¤Ç»ÈÍѤµ¤ì¤¿¾ì¹ç¤Ï¡¢ÀܳÀè¤Î¥¢¥É¥ì¥¹¤Ï +エラーが返される。 +接続型のソケット以外で使用された場合は、接続先のアドレスは .I dest_addr -¤ÇÍ¿¤¨¤é¤ì¡¢¤½¤Î¥µ¥¤¥º¤Ï +で与えられ、そのサイズは .I addrlen -¤Ç»ØÄꤵ¤ì¤ë¡£ +で指定される。 .BR sendmsg () -¤Ç¤Ï¡¢ÀܳÀè¤Î¥¢¥É¥ì¥¹¤Ï +では、接続先のアドレスは .I msg.msg_name -¤ÇÍ¿¤¨¤é¤ì¡¢¤½¤Î¥µ¥¤¥º¤Ï +で与えられ、そのサイズは .I msg.msg_namelen -¤Ç»ØÄꤵ¤ì¤ë¡£ +で指定される。 .PP .BR send () -¤È +と .BR sendto () -¤Ç¤Ï¡¢¥á¥Ã¥»¡¼¥¸¤Ï +では、メッセージは .I buf -¤Ë³ÊǼ¤µ¤ì¤Æ¤ª¤ê¡¢¤½¤ÎŤµ¤Ï +に格納されており、その長さは .I len -¤Ç¤¢¤ë¤È²ò¼á¤µ¤ì¤ë¡£ +であると解釈される。 .BR sendmsg () -¤Ç¤Ï¡¢¥á¥Ã¥»¡¼¥¸¤Ï -ÇÛÎó +では、メッセージは +配列 .I msg.msg_iov -¤Î³ÆÍ×ÁǤ¬»Ø¤¹°ÌÃ֤˳ÊǼ¤µ¤ì¤Æ¤¤¤ë¡£ +の各要素が指す位置に格納されている。 .BR sendmsg () -¤Ç¤Ï¡¢Êä½õ¥Ç¡¼¥¿ (À©¸æ¾ðÊó¤È¤â¸Æ¤Ð¤ì¤ë) ¤òÁ÷¿®¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +では、補助データ (制御情報とも呼ばれる) を送信することもできる。 .PP -¥á¥Ã¥»¡¼¥¸Ä¹¤¬Ä¹²á¤®¤ë¤¿¤á¤Ë¡¢¤½¤Î¥½¥±¥Ã¥È¤¬»ÈÍѤ¹¤ë¥×¥í¥È¥³¥ë¤Ç¤Ï¡¢ -¥á¥Ã¥»¡¼¥¸¤ò¥½¥±¥Ã¥È¤ËÅϤµ¤ì¤¿¤Þ¤Þ¤Î·Á¤ÇÁ÷¿®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¾ì¹ç¡¢ +メッセージ長が長過ぎるために、そのソケットが使用するプロトコルでは、 +メッセージをソケットに渡されたままの形で送信することができない場合、 .B EMSGSIZE -¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¡¢¤½¤Î¥á¥Ã¥»¡¼¥¸¤ÏžÁ÷¤µ¤ì¤Ê¤¤¡£ +エラーが返され、そのメッセージは転送されない。 .PP .BR send () -¤Ç¤Ï¡¢ÇÛÁ÷¤Î¼ºÇÔ¤ÎÄÌÃΤÏÌÀ¼¨Åª¤Ë¹Ô¤ï¤ì¤ë¡£ -¥í¡¼¥«¥ë¦¤Ç¥¨¥é¡¼¤¬¸¡½Ð¤µ¤ì¤¿¾ì¹ç¤Ï¡¢ÊÖ¤êÃÍ \-1 ¤È¤·¤ÆÄÌÃΤµ¤ì¤ë¡£ +では、配送の失敗の通知は明示的に行われる。 +ローカル側でエラーが検出された場合は、返り値 \-1 として通知される。 .PP -¥á¥Ã¥»¡¼¥¸¤¬¥½¥±¥Ã¥È¤ÎÁ÷¿®¥Ð¥Ã¥Õ¥¡¤ËÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¾ì¹ç¡¢ +メッセージがソケットの送信バッファに入れることができない場合、 .BR send () -¤ÏÄ̾ï¤ÏÄä»ß (block) ¤¹¤ë (¥½¥±¥Ã¥È¤¬ÈóÄä»ß (nonblocking) I/O ¥â¡¼¥É -¤Ç¤Ê¤¤¾ì¹ç)¡£ÈóÄä»ß¥â¡¼¥É¤Î¾ì¹ç¤Ë¤Ï¥¨¥é¡¼ +は通常は停止 (block) する (ソケットが非停止 (nonblocking) I/O モード +でない場合)。非停止モードの場合にはエラー .B EAGAIN -¤« +か .B EWOULDBLOCK -¤Ç¼ºÇÔ¤¹¤ë¡£ -¤¤¤Ä¥Ç¡¼¥¿¤ò¤µ¤é¤ËÁ÷¿®¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¤«¤òÃΤ뤿¤á¤Ë¡¢ +で失敗する。 +いつデータをさらに送信できるようになるかを知るために、 .BR select (2) -¥³¡¼¥ë¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +コールを使用することができる。 .PP .I flags -°ú¤­¿ô¤Ï¡¢°Ê²¼¤Î¥Õ¥é¥°¤Î (0 ¸Ä°Ê¾å¤Î) ¥Ó¥Ã¥Èñ°Ì¤ÎÏÀÍýϤò -¤È¤Ã¤¿¤â¤Î¤ò»ØÄꤹ¤ë¡£ -.\" FIXME ? MSG_PROXY ¤Ë¤Ä¤¤¤Æµ­ºÜ¤¹¤ë¤³¤È -.\" (MSG_PROXY ¤Ï 2.3.15 ¤Ç¤Ê¤¯¤Ê¤Ã¤¿) +引き数は、以下のフラグの (0 個以上の) ビット単位の論理和を +とったものを指定する。 +.\" FIXME ? MSG_PROXY について記載すること +.\" (MSG_PROXY は 2.3.15 でなくなった) .TP -.BR MSG_CONFIRM " (Linux 2.3.15 °Ê¹ß)" -žÁ÷½èÍý¤Ë¿ÊŸ¤¬¤¢¤Ã¤¿¡¢¤Ä¤Þ¤êÁê¼ê¦¤«¤éÀ®¸ù¤Î±þÅú¤ò¼õ¤±¤¿¤³¤È¤ò¥ê¥ó¥¯ÁØ¤Ë -ÃΤ餻¤ë¡£¥ê¥ó¥¯Áؤ¬¤³¤ÎÄÌÃΤò¼õ¤±¼è¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢Ä̾ï¤É¤ª¤ê -(¥æ¥Ë¥­¥ã¥¹¥È ARP ¤ò»È¤¦¤Ê¤É¤ÎÊýË¡¤Ç) ¶á˵ (neighbor) ¤ÎºÆ¸¡º÷¤ò¹Ô¤¦¡£ +.BR MSG_CONFIRM " (Linux 2.3.15 以降)" +転送処理に進展があった、つまり相手側から成功の応答を受けたことをリンク層に +知らせる。リンク層がこの通知を受け取らなかった場合には、通常どおり +(ユニキャスト ARP を使うなどの方法で) 近傍 (neighbor) の再検索を行う。 .B SOCK_DGRAM -¤È +と .B SOCK_RAW -¤Î¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤Î¤ßÍ­¸ú¤Ç¡¢¸½ºß¤Î¤È¤³¤í IPv4 ¤È IPv6 ¤Î¤ß¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -¾Ü¤·¤¯¤Ï +のソケットに対してのみ有効で、現在のところ IPv4 と IPv6 のみ実装されている。 +詳しくは .BR arp (7) -»²¾È¤Î¤³¤È¡£ +参照のこと。 .TP .B MSG_DONTROUTE -¥Ñ¥±¥Ã¥È¤òÁ÷¤ê½Ð¤¹¤Î¤Ë¥²¡¼¥È¥¦¥§¥¤¤ò»ÈÍѤ»¤º¡¢ -ľÀÜÀܳ¤µ¤ì¤Æ¤¤¤ë¥Í¥Ã¥È¥ï¡¼¥¯¾å¤Î¥Û¥¹¥È¤À¤±¤ËÁ÷¤ë¡£ -Ä̾¤³¤Î¥Õ¥é¥°¤Ï¿ÇÃÇ (diagnostic) ¤ä¥ë¡¼¥Æ¥£¥ó¥°¡¦¥×¥í¥°¥é¥à¤Ë -¤è¤Ã¤Æ¤Î¤ß»ÈÍѤµ¤ì¤ë¡£¤³¤Î¥Õ¥é¥°¤Ï¡¢·ÐÏ©À©¸æ¤¬¹Ô¤ï¤ì¤ë¥×¥í¥È¥³¥ë¥Õ¥¡¥ß¥ê¡¼ -¤ËÂФ·¤Æ¤Î¤ßÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£¥Ñ¥±¥Ã¥È¥½¥±¥Ã¥È¤Ë¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +パケットを送り出すのにゲートウェイを使用せず、 +直接接続されているネットワーク上のホストだけに送る。 +通常、このフラグは診断 (diagnostic) やルーティング・プログラムに +よってのみ使用される。このフラグは、経路制御が行われるプロトコルファミリー +に対してのみ定義されている。パケットソケットには定義されていない。 .TP .B MSG_DONTWAIT -ÈóÄä»ß (nonblocking) Áàºî¤òÍ­¸ú¤Ë¤¹¤ë¡£Áàºî¤¬Ää»ß¤µ¤ì¤ë¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï +非停止 (nonblocking) 操作を有効にする。操作が停止されるような場合には .B EAGAIN -¤« +か .B EWOULDBLOCK -¤òÊÖ¤¹¤è¤¦¤Ë¤¹¤ë +を返すようにする .RB ( fcntl (2) -¤Î +の .B F_SETFL -¤Ç +で .B O_NONBLOCK -¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤³¤È¤Ë¤è¤Ã¤Æ¤âÍ­¸ú¤Ë¤Ç¤­¤ë)¡£ +フラグを指定することによっても有効にできる)。 .TP -.BR MSG_EOR " (Linux 2.2 °Ê¹ß)" -¥ì¥³¡¼¥É¤Î½ªÎ»¤ò»Ø¼¨¤¹¤ë +.BR MSG_EOR " (Linux 2.2 以降)" +レコードの終了を指示する .RB ( SOCK_SEQPACKET -¤Î¤è¤¦¤Ë¤³¤Î³µÇ°¤ËÂбþ¤·¤Æ¤¤¤ë¥½¥±¥Ã¥È¼ïÊ̤ΤȤ­¤ËÍ­¸ú)¡£ +のようにこの概念に対応しているソケット種別のときに有効)。 .TP -.BR MSG_MORE " (Linux 2.4.4 °Ê¹ß)" -¸Æ¤Ó½Ð¤·¸µ¤Ë¤µ¤é¤ËÁ÷¤ë¥Ç¡¼¥¿¤¬¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ -¤³¤Î¥Õ¥é¥°¤Ï TCP ¥½¥±¥Ã¥È¤È¤È¤â¤Ë»ÈÍѤµ¤ì¡¢ +.BR MSG_MORE " (Linux 2.4.4 以降)" +呼び出し元にさらに送るデータがあることを示す。 +このフラグは TCP ソケットとともに使用され、 .B TCP_CORK -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤ÈƱ¤¸¸ú²Ì¤¬ÆÀ¤é¤ì¤ë +ソケットオプションと同じ効果が得られる .RB ( tcp (7) -¤ò»²¾È)¡£ +を参照)。 .B TCP_CORK -¤È¤Î°ã¤¤¤Ï¡¢¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤È¸Æ¤Ó½Ð¤·Ã±°Ì¤Ç -¤³¤Îµ¡Ç½¤òÍ­¸ú¤Ë¤Ç¤­¤ëÅÀ¤Ç¤¢¤ë¡£ +との違いは、このフラグを使うと呼び出し単位で +この機能を有効にできる点である。 -Linux 2.6 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¥Õ¥é¥°¤Ï UDP ¥½¥±¥Ã¥È¤Ç¤â¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤ª¤ê¡¢ -¤³¤Î¥Õ¥é¥°ÉÕ¤­¤ÇÁ÷¿®¤µ¤ì¤¿Á´¤Æ¤Î¥Ç¡¼¥¿¤ò°ì¤Ä¤Î¥Ç¡¼¥¿¥°¥é¥à¤Ë¤Þ¤È¤á¤Æ -Á÷¿®¤¹¤ë¤³¤È¤ò¡¢¥«¡¼¥Í¥ë¤ËÃΤ餻¤ë¡£¤Þ¤È¤á¤é¤ì¤¿¥Ç¡¼¥¿¥°¥é¥à¤Ï¡¢ -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤻ¤º¤Ë¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¼Â¹Ô¤µ¤ì¤¿ºÝ¤Ë½é¤á¤ÆÁ÷¿®¤µ¤ì¤ë +Linux 2.6 以降では、このフラグは UDP ソケットでもサポートされており、 +このフラグ付きで送信された全てのデータを一つのデータグラムにまとめて +送信することを、カーネルに知らせる。まとめられたデータグラムは、 +このフラグを指定せずにこのシステムコールが実行された際に初めて送信される .RB ( udp (7) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó +に記載されているソケットオプション .B UDP_CORK -¤â»²¾È)¡£ +も参照)。 .TP -.BR MSG_NOSIGNAL " (Linux 2.2 °Ê¹ß)" -¥¹¥È¥ê¡¼¥à»Ø¸þ¤Î¥½¥±¥Ã¥È¤ÇÁê¼ê¦¤¬Àܳ¤òÀÚÃǤ·¤¿»þ¤Ë¡¢¥¨¥é¡¼¤È¤·¤Æ +.BR MSG_NOSIGNAL " (Linux 2.2 以降)" +ストリーム指向のソケットで相手側が接続を切断した時に、エラーとして .B SIGPIPE -¤òÁ÷¿®¤·¤Ê¤¤¤è¤¦¤ËÍ׵᤹¤ë¡£¤³¤Î¾ì¹ç¤Ç¤â +を送信しないように要求する。この場合でも .B EPIPE -¤ÏÊÖ¤µ¤ì¤ë¡£ +は返される。 .TP .B MSG_OOB -.I "ÂÓ°è³° (out-of-band)" -¥Ç¡¼¥¿¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥½¥±¥Ã¥È (Î㤨¤Ð +.I "帯域外 (out-of-band)" +データをサポートするソケット (例えば .BR SOCK_STREAM ) -¤Ç -.I ÂÓ°è³° -¥Ç¡¼¥¿¤òÁ÷¤ë¡£²¼°Ì¥×¥í¥È¥³¥ë¤â -.I ÂÓ°è³° -¥Ç¡¼¥¿¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ +で +.I 帯域外 +データを送る。下位プロトコルも +.I 帯域外 +データをサポートしている必要がある。 .PP .I msghdr -¹½Â¤ÂΤÎÆâÍƤϰʲ¼¤ÎÄ̤ꡣ -³Æ¥Õ¥£¡¼¥ë¥É¤ÎÀµ³Î¤Êµ­½Ò¤Ë¤Ä¤¤¤Æ¤Ï +構造体の内容は以下の通り。 +各フィールドの正確な記述については .BR recv (2) -¤È°Ê²¼¤ÎÀâÌÀ¤ò»²¾È¤¹¤ë¤³¤È¡£ +と以下の説明を参照すること。 .in +4n .nf struct msghdr { - void *msg_name; /* ÄɲäΥ¢¥É¥ì¥¹ */ - socklen_t msg_namelen; /* ¥¢¥É¥ì¥¹¤Î¥µ¥¤¥º */ - struct iovec *msg_iov; /* scatter/gather ÇÛÎó */ - size_t msg_iovlen; /* msg_iov ¤ÎÍ×ÁÇ¿ô */ - void *msg_control; /* Êä½õ¥Ç¡¼¥¿(¸å½Ò) */ - size_t msg_controllen; /* Êä½õ¥Ç¡¼¥¿¥Ð¥Ã¥Õ¥¡Ä¹ */ - int msg_flags; /* ¼õ¿®¥á¥Ã¥»¡¼¥¸¤Î¥Õ¥é¥° */ + void *msg_name; /* 追加のアドレス */ + socklen_t msg_namelen; /* アドレスのサイズ */ + struct iovec *msg_iov; /* scatter/gather 配列 */ + size_t msg_iovlen; /* msg_iov の要素数 */ + void *msg_control; /* 補助データ(後述) */ + size_t msg_controllen; /* 補助データバッファ長 */ + int msg_flags; /* 受信メッセージのフラグ */ }; .fi .in .PP .I msg_control -¤È +と .I msg_controllen -¥á¥ó¥Ð¡¼¤ò»ÈÍѤ·¤ÆÀ©¸æ¾ðÊó¤òÁ÷¿®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥«¡¼¥Í¥ë¤¬½èÍý¤Ç¤­¤ëÀ©¸æ¥Ð¥Ã¥Õ¥¡¤Î¥½¥±¥Ã¥È¤¢¤¿¤ê¤ÎºÇÂçĹ¤Ï¡¢ +メンバーを使用して制御情報を送信することができる。 +カーネルが処理できる制御バッファのソケットあたりの最大長は、 .I /proc/sys/net/core/optmem_max -¤ÎÃͤËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë¡£ +の値に制限されている。 .BR socket (7) -¤ò»²¾È¡£ +を参照。 .\" Still to be documented: .\" Send file descriptors and user credentials using the .\" msg_control* fields. .\" The flags returned in msg_flags. -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÁ÷¿®¤µ¤ì¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ \-1 ¤òÊÖ¤·¡¢ +.SH 返り値 +成功した場合、これらのシステムコールは送信されたバイト数を返す。 +エラーの場合、 \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄê¤Ë¤¹¤ë¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Ï¥½¥±¥Ã¥ÈÁؤÇȯÀ¸¤¹¤ë°ìÈÌŪ¤Ê¥¨¥é¡¼¤Ç¤¢¤ë¡£¤³¤ì°Ê³°¤Ë¡¢²¼ÁؤΠ-¥×¥í¥È¥³¥ë¡¦¥â¥¸¥å¡¼¥ë¤ÇÀ¸À®¤µ¤ì¤¿¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤ì¤é¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤½¤ì¤¾¤ì¤Î¥Þ¥Ë¥å¥¢¥ë¤ò»²¾È¤¹¤ë¤³¤È¡£ +を適切に設定にする。 +.SH エラー +これらはソケット層で発生する一般的なエラーである。これ以外に、下層の +プロトコル・モジュールで生成されたエラーが返されるかもしれない。 +これらについては、それぞれのマニュアルを参照すること。 .TP .B EACCES -(UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤Ï¥Ñ¥¹Ì¾¤Ç¼±Ê̤µ¤ì¤ë¡£) -¥½¥±¥Ã¥È¡¦¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤­¹þ¤ßµö²Ä¤¬¤Ê¤«¤Ã¤¿¤«¡¢¥Ñ¥¹Ì¾¤Ø -Åþ㤹¤ë¤Þ¤Ç¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¤¤¤º¤ì¤«¤ËÂФ¹¤ë¸¡º÷µö²Ä¤¬¤Ê¤«¤Ã¤¿¡£ +(UNIX ドメインソケットはパス名で識別される。) +ソケット・ファイルへの書き込み許可がなかったか、パス名へ +到達するまでのディレクトリのいずれかに対する検索許可がなかった。 .RB ( path_resolution (7) -¤â»²¾È¤Î¤³¤È) +も参照のこと) .TP -.BR EAGAIN " ¤Þ¤¿¤Ï " EWOULDBLOCK +.BR EAGAIN " または " EWOULDBLOCK .\" Actually EAGAIN on Linux -¥½¥±¥Ã¥È¤¬ÈóÄä»ß¤ËÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢ -Í׵ᤵ¤ì¤¿Áàºî¤¬Ää»ß¤·¤¿¡£ -POSIX.1-2001 ¤Ï¡¢¤³¤Î¾ì¹ç¤Ë¤É¤Á¤é¤Î¥¨¥é¡¼¤òÊÖ¤¹¤³¤È¤âǧ¤á¤Æ¤ª¤ê¡¢ -¤³¤ì¤é 2 ¤Ä¤ÎÄê¿ô¤¬Æ±¤¸Ãͤò»ý¤Ä¤³¤È¤âµá¤á¤Æ¤¤¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢Î¾Êý¤Î²ÄǽÀ­¤ò -³Îǧ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +ソケットが非停止に設定されており、 +要求された操作が停止した。 +POSIX.1-2001 は、この場合にどちらのエラーを返すことも認めており、 +これら 2 つの定数が同じ値を持つことも求めていない。 +したがって、移植性が必要なアプリケーションでは、両方の可能性を +確認すべきである。 .TP .B EBADF -̵¸ú¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤¬»ØÄꤵ¤ì¤¿¡£ +無効なディスクリプターが指定された。 .TP .B ECONNRESET -Àܳ¤¬ÀܳÁê¼ê¤Ë¤è¤ê¥ê¥»¥Ã¥È¤µ¤ì¤¿¡£ +接続が接続相手によりリセットされた。 .TP .B EDESTADDRREQ -¥½¥±¥Ã¥È¤¬Àܳ·¿ (connection-mode) ¤Ç¤Ï¤Ê¤¯¡¢ -¤«¤ÄÁ÷¿®Àè¤Î¥¢¥É¥ì¥¹¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +ソケットが接続型 (connection-mode) ではなく、 +かつ送信先のアドレスが設定されていない。 .TP .B EFAULT -¥æ¡¼¥¶¡¼¶õ´Ö¤È¤·¤ÆÉÔÀµ¤Ê¥¢¥É¥ì¥¹¤¬¥Ñ¥é¥á¡¼¥¿¡¼¤È¤·¤Æ»ØÄꤵ¤ì¤¿¡£ +ユーザー空間として不正なアドレスがパラメーターとして指定された。 .TP .B EINTR -¥Ç¡¼¥¿¤¬Á÷¿®¤µ¤ì¤ëÁ°¤Ë¡¢¥·¥°¥Ê¥ë¤¬È¯À¸¤·¤¿¡£ +データが送信される前に、シグナルが発生した。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL -ÉÔÀµ¤Ê°ú¤­¿ô¤¬ÅϤµ¤ì¤¿¡£ +不正な引き数が渡された。 .TP .B EISCONN -Àܳ·¿¥½¥±¥Ã¥È¤ÎÀܳ¤¬¤¹¤Ç¤Ë³ÎΩ¤·¤Æ¤¤¤¿¤¬¡¢¼õ¿®¼Ô¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¡£ -(¸½ºß¤Î¤È¤³¤í¡¢¤³¤Î¾õ¶·¤Ç¤Ï¡¢¤³¤Î¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¤«¡¢ -¼õ¿®¼Ô¤Î»ØÄ̵꤬»ë¤µ¤ì¤ë¤«¡¢¤Î¤¤¤º¤ì¤«¤È¤Ê¤ë) +接続型ソケットの接続がすでに確立していたが、受信者が指定されていた。 +(現在のところ、この状況では、このエラーが返されるか、 +受信者の指定が無視されるか、のいずれかとなる) .TP .B EMSGSIZE -¤½¤Î¥½¥±¥Ã¥È¼ïÊÌ -.\" (Î㤨¤Ð SOCK_DGRAM) -¤Ç¤Ï¥½¥±¥Ã¥È¤ËÅϤµ¤ì¤¿¤Þ¤Þ¤Î·Á¤Ç¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¤¹¤ëɬÍפ¬¤¢¤ë¤¬¡¢ -¥á¥Ã¥»¡¼¥¸¤¬Â礭²á¤®¤ë¤¿¤áÁ÷¿®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +そのソケット種別 +.\" (例えば SOCK_DGRAM) +ではソケットに渡されたままの形でメッセージを送信する必要があるが、 +メッセージが大き過ぎるため送信することができない。 .TP .B ENOBUFS -¥Í¥Ã¥È¥ï¡¼¥¯¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î½ÐÎÏ¥­¥å¡¼¤¬°ìÇդǤ¢¤ë¡£ -°ìÈÌŪ¤Ë¤Ï¡¢°ì»þŪ¤ÊíÕíÔ (congestion) ¤Î¤¿¤á¤Ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ -Á÷¿®¤ò»ß¤á¤Æ¤¤¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -(Ä̾Linux ¤Ç¤Ï¤³¤Î¤è¤¦¤Ê¤³¤È¤Ïµ¯¤³¤é¤Ê¤¤¡£¥Ç¥Ð¥¤¥¹¤Î¥­¥å¡¼¤¬ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤¿¾ì¹ç¤Ë¤Ï¥Ñ¥±¥Ã¥È¤ÏÌۤäƼΤƤé¤ì¤ë) +ネットワーク・インターフェースの出力キューが一杯である。 +一般的には、一時的な輻輳 (congestion) のためにインターフェースが +送信を止めていることを意味する。 +(通常、Linux ではこのようなことは起こらない。デバイスのキューが +オーバーフローした場合にはパケットは黙って捨てられる) .TP .B ENOMEM -¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£ +メモリが足りない。 .TP .B ENOTCONN -¥½¥±¥Ã¥È¤¬Àܳ¤µ¤ì¤Æ¤ª¤é¤º¡¢ÀܳÀè¤â»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +ソケットが接続されておらず、接続先も指定されていない。 .TP .B ENOTSOCK -°ú¤­¿ô +引き数 .I sockfd -¤¬¥½¥±¥Ã¥È¤Ç¤Ê¤¤¡£ +がソケットでない。 .TP .B EOPNOTSUPP -°ú¤­¿ô +引き数 .I flags -¤Î¤¤¤¯¤Ä¤«¤Î¥Ó¥Ã¥È¤¬¡¢¤½¤Î¥½¥±¥Ã¥È¼ïÊ̤ǤÏÉÔŬÀڤʤâ¤Î¤Ç¤¢¤ë¡£ +のいくつかのビットが、そのソケット種別では不適切なものである。 .TP .B EPIPE -Àܳ»Ø¸þ¤Î¥½¥±¥Ã¥È¤Ç¥í¡¼¥«¥ë¦¤¬ÊĤ¸¤é¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¾ì¹ç¡¢ +接続指向のソケットでローカル側が閉じられている。 +この場合、 .B MSG_NOSIGNAL -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¥×¥í¥»¥¹¤Ë¤Ï +が設定されていなければ、プロセスには .B SIGPIPE -¤âƱ»þ¤ËÁ÷¤é¤ì¤ë¡£ -.SH ½àµò +も同時に送られる。 +.SH 準拠 4.4BSD, SVr4, POSIX.1-2001. -(¤³¤ì¤é¤Î´Ø¿ô¥³¡¼¥ë¤Ï 4.2BSD ¤ÇºÇ½é¤ËÅо줷¤¿)¡£ +(これらの関数コールは 4.2BSD で最初に登場した)。 -POSIX.1-2001 ¤Ë¤Ï¡¢ +POSIX.1-2001 には、 .B MSG_OOB -¤È +と .B MSG_EOR -¥Õ¥é¥°¤À¤±¤¬µ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ -POSIX.1-2008 ¤Ç¤Ï +フラグだけが記載されている。 +POSIX.1-2008 では .B MSG_NOSIGNAL -¤¬µ¬³Ê¤ËÄɲ䵤ì¤Æ¤¤¤ë¡£ +が規格に追加されている。 .B MSG_CONFIRM -¥Õ¥é¥°¤Ï Linux ¤Ç¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -¾åµ­¤Î¥×¥í¥È¥¿¥¤¥×¤Ï Single UNIX Specification ¤Ë½¾¤Ã¤Æ¤¤¤ë¡£ -glibc2 ¤âƱÍͤǤ¢¤ë¡£ +フラグは Linux での拡張である。 +.SH 注意 +上記のプロトタイプは Single UNIX Specification に従っている。 +glibc2 も同様である。 .I flags -°ú¤­¿ô¤Ï 4.x BSD ¤Ç¤Ï \fIint\fP ¤Ç¤¢¤ê¡¢ -libc4 ¤È libc5 ¤Ç¤Ï \fIunsigned int\fP ¤Ç¤¢¤ë¡£ +引き数は 4.x BSD では \fIint\fP であり、 +libc4 と libc5 では \fIunsigned int\fP である。 .I len -°ú¤­¿ô¤Ï 4.x BSD ¤È libc4 ¤Ç¤Ï \fIint\fP ¤Ç¤¢¤ê¡¢ -libc5 ¤Ç¤Ï \fIsize_t\fP ¤Ç¤¢¤ë¡£ +引き数は 4.x BSD と libc4 では \fIint\fP であり、 +libc5 では \fIsize_t\fP である。 .I addrlen -°ú¤­¿ô¤Ï 4.x BSD ¤È libc4 ¤È libc5 ¤Ç¤Ï \fIint\fP ¤Ç¤¢¤ë¡£ +引き数は 4.x BSD と libc4 と libc5 では \fIint\fP である。 .BR accept (2) -¤â»²¾È¤¹¤ë¤³¤È¡£ +も参照すること。 -POSIX.1-2001 ¤Ç¤Ï¡¢¹½Â¤ÂÎ +POSIX.1-2001 では、構造体 .I msghdr -¤Î¥Õ¥£¡¼¥ë¥É +のフィールド .I msg_controllen -¤Ï +は .I socklen_t -·¿¤Ç¤¢¤ë¤Ù¤­¤À¤È¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -¸½ºß¤Î glibc ¤Ç¤Ï +型であるべきだとされているが、 +現在の glibc では .I size_t -·¿¤Ç¤¢¤ë¡£ +型である。 .\" glibc bug raised 12 Mar 2006 .\" http://sourceware.org/bugzilla/show_bug.cgi?id=2448 .\" The problem is an underlying kernel issue: the size of the .\" __kernel_size_t type used to type this field varies .\" across architectures, but socklen_t is always 32 bits. -.SH ¥Ð¥° -Linux ¤Ï +.SH バグ +Linux は .B ENOTCONN -¤òÊÖ¤¹¾õ¶·¤Ç +を返す状況で .B EPIPE -¤òÊÖ¤¹¤³¤È¤¬¤¢¤ë¡£ -.SH Îã +を返すことがある。 +.SH 例 .BR sendto () -¤ÎÍøÍÑÎ㤬 +の利用例が .BR getaddrinfo (3) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +に記載されている。 +.SH 関連項目 .BR fcntl (2), .BR getsockopt (2), .BR recv (2), diff --git a/release/man2/sendfile.2 b/release/man2/sendfile.2 index 07671d99..de5c1535 100644 --- a/release/man2/sendfile.2 +++ b/release/man2/sendfile.2 @@ -21,20 +21,20 @@ .\" Updated 2005-04-17, Akihiro MOTOKI .\" Updated 2010-04-18, Akihiro MOTOKI , LDP v3.24 .\" -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: socket ¥½¥±¥Ã¥È -.\"WORD: lock ¥í¥Ã¥¯ +.\"WORD: descriptor ディスクリプタ +.\"WORD: socket ソケット +.\"WORD: lock ロック .\" .TH SENDFILE 2 2010-02-15 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sendfile \- ¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿´Ö¤Ç¥Ç¡¼¥¿¤òžÁ÷¤¹¤ë -.SH ½ñ¼° +.SH 名前 +sendfile \- ファイル・ディスクリプタ間でデータを転送する +.SH 書式 .B #include .sp .BI "ssize_t sendfile(int" " out_fd" ", int" " in_fd" ", off_t *" \ offset ", size_t" " count" ); -.\" °Ê²¼¤Ï¡¢¤¢¤Þ¤ê¤Ë¤â±ø¤¤¡£ glibc ¥Ð¡¼¥¸¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Î¥³¥á¥ó¥È¤Ï -.\" ¡Ö¥Ø¥Ã¥À¡×¤Ç¤Ï¤Ê¤¯¡¢¡ÖÃí°Õ¡×¤Ë½ñ¤¤¤Æ¤ª¤¯¡£ +.\" 以下は、あまりにも汚い。 glibc バージョンについてのコメントは +.\" 「ヘッダ」ではなく、「注意」に書いておく。 .\" .\" .B #include .\" .br @@ -53,137 +53,137 @@ sendfile \- .\" .br .\" .B #endif .\" -.SH ÀâÌÀ +.SH 説明 .BR sendfile () -¤Ï¡¢¤¢¤ë¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÊ̤Π-¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ø¤Î¥Ç¡¼¥¿¤Î¥³¥Ô¡¼¤ò¹Ô¤¦¡£ -¤³¤Î¥³¥Ô¡¼¤Ï¥«¡¼¥Í¥ëÆâ¤Ç¹Ô¤ï¤ì¤ë¤Î¤Ç¡¢ +は、あるファイル・ディスクリプタから別の +ファイル・ディスクリプタへのデータのコピーを行う。 +このコピーはカーネル内で行われるので、 .BR sendfile () -¤Ï¡¢ +は、 .BR read (2) -¤È +と .BR write (2) -¤òÁȤ߹ç¤ï¤»¤ë¤è¤ê¤â¸úΨ¤¬¤è¤¤¡£ +を組み合わせるよりも効率がよい。 .BR read (2) -¤ä +や .BR write (2) -¤Ç¤Ï¥æ¡¼¥¶¶õ´Ö¤È¤Î´Ö¤Ç¥Ç¡¼¥¿¤ÎžÁ÷¤¬É¬ÍפȤʤ뤫¤é¤Ç¤¢¤ë¡£ +ではユーザ空間との間でデータの転送が必要となるからである。 .I in_fd -¤ÏÆɤ߹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¢ +は読み込みのためにオープンされたファイル・ディスクリプタ、 .I out_fd -¤Ï½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は書き込みのためにオープンされたディスクリプタでなければならない。 .I offset -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が NULL でない場合、 .I offset -¤Ï +は .BR sendfile () -¤¬ +が .I in_fd -¤Î¤É¤³¤«¤é¥Ç¡¼¥¿¤òÆɤ߻Ϥá¤ë¤«¤ò¼¨¤¹¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤òÊÝ»ý¤¹¤ëÊÑ¿ô¤Ø¤Î -¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +のどこからデータを読み始めるかを示すファイル・オフセットを保持する変数への +ポインタである。 .BR sendfile () -¤ÏÉüµ¢¤¹¤ë»þ¡¢¤³¤ÎÊÑ¿ô¤ËºÇ¸å¤ËÆɤ߹þ¤ó¤À¥Ð¥¤¥È¤Î -¼¡¤Î¥Ð¥¤¥È¤Î¥ª¥Õ¥»¥Ã¥È¤ò½ñ¤­¹þ¤à¡£ +は復帰する時、この変数に最後に読み込んだバイトの +次のバイトのオフセットを書き込む。 .I offset -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が NULL でない場合、 .BR sendfile () -¤Ï +は .I in_fd -¤Î¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤Î¸½ºßÃͤòÊѹ¹¤·¤Ê¤¤¡£ -NULL ¤Î¾ì¹ç¤Ï¡¢¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤Î¸½ºßÃͤò +のファイル・オフセットの現在値を変更しない。 +NULL の場合は、ファイル・オフセットの現在値を .I in_fd -¤«¤éÆɤ߹þ¤ó¤À¥Ð¥¤¥È¿ô¤òÈ¿±Ç¤·¤¿°ÌÃÖ¤ËÄ´À°¤¹¤ë¡£ +から読み込んだバイト数を反映した位置に調整する。 .I offset -¤¬ NULL ¤Î¾ì¹ç¡¢¥Ç¡¼¥¿¤Ï +が NULL の場合、データは .I in_fd -¤Î¸½ºß¤Î¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤«¤éÆɤ߽Фµ¤ì¡¢ -¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤Ï¤³¤Î¸Æ¤Ó½Ð¤·¤Ç¹¹¿·¤µ¤ì¤ë¡£ +の現在のファイル・オフセットから読み出され、 +ファイル・オフセットはこの呼び出しで更新される。 .I count -¤Ï¡¢¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿´Ö¤Ç¥³¥Ô¡¼¤¹¤ë¥Ð¥¤¥È¿ô¤Ç¤¢¤ë¡£ +は、ファイル・ディスクリプタ間でコピーするバイト数である。 -º£¤Î¤È¤³¤í (Linux 2.6.9 ¤Ç¤Ï)¡¢ +今のところ (Linux 2.6.9 では)、 .I in_fd -¤Ï +は .BR mmap (2) -É÷¤ÎÁàºî¤¬¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¤ò»Ø¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(¥½¥±¥Ã¥È¤ò»Ø¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤)¡£¤Þ¤¿¡¢ +風の操作ができるファイルを指していなければならない +(ソケットを指してはならない)。また、 .I out_fd -¤Ï¥½¥±¥Ã¥È¤ò»Ø¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +はソケットを指していなければならない。 .BR sendfile () -¤¬ +が .B EINVAL -¤ä +や .B ENOSYS -¤Ç¼ºÇÔ¤¹¤ë¤è¤¦¤Ê¾ì¹ç¤Ï¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï +で失敗するような場合は、 +アプリケーションは .BR read (2)/ write (2) -¤ËÌ᤹¤³¤È¤ò¹Í¤¨¤Æ¤â¤è¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -žÁ÷¤ËÀ®¸ù¤·¤¿¾ì¹ç¡¢ +に戻すことを考えてもよいかもしれない。 +.SH 返り値 +転送に成功した場合、 .I out_fd -¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +に書き込まれたバイト数を返す。エラーの場合、\-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +に適切な値を設定する。 +.SH エラー .TP .B EAGAIN .B O_NONBLOCK -¤òÍѤ¤¤ÆÈó¥Ö¥í¥Ã¥¯ I/O ¤¬ÁªÂò¤µ¤ì¤¿¤¬¡¢½ñ¤­¹þ¤ß¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤¿¡£ +を用いて非ブロック I/O が選択されたが、書き込みがブロックされた。 .TP .B EBADF -ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬Æɤ߹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ -½ÐÎÏ¥Õ¥¡¥¤¥ë¤¬½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +入力ファイルが読み込みのためにオープンされていないか、 +出力ファイルが書き込みのためにオープンされていない。 .TP .B EFAULT -¥¢¥É¥ì¥¹¤¬¤ª¤«¤·¤¤¡£ +アドレスがおかしい。 .TP .B EINVAL -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Í­¸ú¤Ç¤Ê¤¤¤«¡¢¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¡£¤â¤·¤¯¤Ï +ディスクリプタが有効でないか、ロックされている。もしくは .BR mmap (2) -É÷¤ÎÁàºî¤¬ +風の操作が .I in_fd -¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤¡£ +では利用できない。 .TP .B EIO .I in_fd -¤«¤éÆɤ߹þ¤ó¤Ç¤¤¤ë¤¦¤Á¤Ëͽ´ü¤·¤Ê¤¤¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£ +から読み込んでいるうちに予期しないエラーが起こった。 .TP .B ENOMEM .I in_fd -¤«¤éÆɤ߹þ¤à¤¿¤á¤Î½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +から読み込むための十分なメモリがない。 +.SH バージョン .B sendfile -¤Ï Linux 2.2 ¤Î¿·¤·¤¤µ¡Ç½¤Ç¤¢¤ë¡£ -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +は Linux 2.2 の新しい機能である。 +インクルードファイル .I -¤Ï glibc 2.1 ¤«¤é¸ºß¤·¤Æ¤¤¤ë¡£ -.SH ½àµò -POSIX.1-2001 ¤ä¾¤Îɸ½à¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +は glibc 2.1 から存在している。 +.SH 準拠 +POSIX.1-2001 や他の標準では規定されていない。 -¾¤Î UNIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢°Û¤Ê¤Ã¤¿Êý¼°¤ä¥×¥í¥È¥¿¥¤¥×¤Ç +他の UNIX システムでは、異なった方式やプロトタイプで .BR sendfile () -¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¡£°Ü¿¢À­¤ò¹Íθ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ +を実装している。移植性を考慮したプログラムでは使用すべきではない。 +.SH 注意 .BR sendfile () -¤ò»È¤Ã¤Æ TCP ¥½¥±¥Ã¥È¤Ë¥Õ¥¡¥¤¥ë¤òÁ÷¤í¤¦¤È¤·¤Æ¤¤¤Æ¡¢ -¥Õ¥¡¥¤¥ë¤ÎÆâÍƤÎÁ°¤Ë¥Ø¥Ã¥À¡¦¥Ç¡¼¥¿¤òÉÕ¤±²Ã¤¨¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ï¡¢ -¥Ñ¥±¥Ã¥È¿ô¤òºÇ¾®¤Ë¤·¤ÆÀ­Ç½¤ò¾å¤²¤ë¤¿¤á¤Ë +を使って TCP ソケットにファイルを送ろうとしていて、 +ファイルの内容の前にヘッダ・データを付け加える必要がある場合は、 +パケット数を最小にして性能を上げるために .BR tcp (7) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë +に記述されている .B TCP_CORK -¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¤¤¤¤¤À¤í¤¦¡£ +オプションを使うといいだろう。 -Linux 2.4 ¤È¤½¤ì°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ +Linux 2.4 とそれ以前のバージョンでは、 .I out_fd -¤ÏÄ̾ï¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤Ç¤­¡¢ +は通常のファイルを参照でき、 .BR sendfile () -¤Ï¤½¤Î¥Õ¥¡¥¤¥ë¤Î¥ª¥Õ¥»¥Ã¥È¤Î¸½ºßÃͤòÊѹ¹¤·¤Æ¤¤¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +はそのファイルのオフセットの現在値を変更していた。 +.SH 関連項目 .BR mmap (2), .BR open (2), .BR socket (2), diff --git a/release/man2/set_mempolicy.2 b/release/man2/set_mempolicy.2 index 8e298dd7..02545abb 100644 --- a/release/man2/set_mempolicy.2 +++ b/release/man2/set_mempolicy.2 @@ -30,267 +30,267 @@ .\" Updated 2008-09-02, Akihiro MOTOKI, LDP v3.08 .\" Updated 2008-11-19, Akihiro MOTOKI, LDP v3.13 .\" -.\"WORD: anonymous memory ̵̾¥á¥â¥ê +.\"WORD: anonymous memory 無名メモリ .\" .TH SET_MEMPOLICY 2 2008-08-15 Linux "Linux Programmer's Manual" -.SH ̾Á° -set_mempolicy \- ¥×¥í¥»¥¹¤È¤½¤Î»Ò¥×¥í¥»¥¹¤Î NUMA ¥á¥â¥ê¤Î -¥Ç¥Õ¥©¥ë¥È¥Ý¥ê¥·¡¼¤òÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +set_mempolicy \- プロセスとその子プロセスの NUMA メモリの +デフォルトポリシーを設定する +.SH 書式 .nf .B "#include " .sp .BI "int set_mempolicy(int " mode ", unsigned long *" nodemask , .BI " unsigned long " maxnode ); .sp -\fI\-lnuma\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lnuma\fP でリンクする。 .fi -.SH ÀâÌÀ +.SH 説明 .BR set_mempolicy () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î NUMA ¥Ý¥ê¥·¡¼¤ò +は、呼び出し元プロセスの NUMA ポリシーを .I policy -¤ËÀßÄꤹ¤ë¡£ -NUMA ¥Ý¥ê¥·¡¼¤Ï¥Ý¥ê¥·¡¼¥â¡¼¥É¤È 0 ¸Ä°Ê¾å¤Î¥Î¡¼¥É¤«¤é¹½À®¤µ¤ì¡¢ -ÀßÄêÆâÍƤϰú¤­¿ô +に設定する。 +NUMA ポリシーはポリシーモードと 0 個以上のノードから構成され、 +設定内容は引き数 .IR mode , .IR nodemask , .I maxnode -¤Ë¤è¤ê»ØÄꤵ¤ì¤ë¡£ +により指定される。 -NUMA (ÈóÂоΥá¥â¥ê¥¢¥¯¥»¥¹) ¥Þ¥·¥ó¤Ç¤Ï¡¢CPU ¤Ë¤è¤ê -¥á¥â¥ê¥³¥ó¥È¥í¡¼¥é¤¬°Û¤Ê¤ê¡¢µ÷Î¥¤â°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ -¥á¥â¥ê¥Ý¥ê¥·¡¼¤Ï¡¢¤É¤Î¥Î¡¼¥É¤«¤é¥á¥â¥ê¤ò¤½¤Î¥×¥í¥»¥¹¤Ë -³ä¤êÅö¤Æ¤é¤ì¤ë¤«¤òÄê¤á¤ë¤â¤Î¤Ç¤¢¤ë¡£ +NUMA (非対称メモリアクセス) マシンでは、CPU により +メモリコントローラが異なり、距離も異なっている。 +メモリポリシーは、どのノードからメモリをそのプロセスに +割り当てられるかを定めるものである。 .BR set_mempolicy () -¤Ï¡¢¥×¥í¥»¥¹¤Î¥Ç¥Õ¥©¥ë¥È¥Ý¥ê¥·¡¼¤òÄê¤á¤ë¡£ -¥×¥í¥»¥¹¤Î¥Ý¥ê¥·¡¼¤Ï¡¢ +は、プロセスのデフォルトポリシーを定める。 +プロセスのポリシーは、 .BR mbind (2) -¤ÇÀßÄꤵ¤ì¤ëÆÃÄê¤Î¥Ý¥ê¥·¡¼¤Ë¤è¤êÀ©¸æ¤µ¤ì¤ë¥á¥â¥êÎΰè°Ê³°¤Î -¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤ª¤±¤ë¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤ËŬÍѤµ¤ì¤ë¡£ -¥×¥í¥»¥¹¤Î¥Ç¥Õ¥©¥ë¥È¥Ý¥ê¥·¡¼¤Ï¡¢ +で設定される特定のポリシーにより制御されるメモリ領域以外の +プロセスのアドレス空間におけるページの割り当てに適用される。 +プロセスのデフォルトポリシーは、 .B MAP_PRIVATE -¥Õ¥é¥°¤ò»ØÄꤷ¤¿ +フラグを指定した .BR mmap (2) -¤ò»È¤Ã¤Æ¥Þ¥Ã¥×¤µ¤ì¤¿¥á¥â¥ê¥Þ¥Ã¥×¡¦¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ëÆɤ߽Ф·ÀìÍÑ -(¥í¡¼¥É¤µ¤ì¤ë¤À¤±) ¤Î¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤Ë¤âŬÍѤµ¤ì¤ë¡£ -¤Þ¤¿¡¢ +を使ってマップされたメモリマップ・ファイルに対する読み出し専用 +(ロードされるだけ) のページの割り当てにも適用される。 +また、 .B MAP_SHARED -¥Õ¥é¥°¤ò»ØÄꤷ¤¿ +フラグを指定した .BR mmap (2) -¤ò»È¤Ã¤Æ¥Þ¥Ã¥×¤µ¤ì¤¿¥á¥â¥ê¥Þ¥Ã¥×¡¦¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤Ë¤â -ŬÍѤµ¤ì¤ë (¤³¤Î¾ì¹ç¤Ï¥Ú¡¼¥¸¤Î¥¢¥¯¥»¥¹¼ïÊ̤˴ؤï¤é¤ºÅ¬ÍѤµ¤ì¤ë) ¡£ -ÀßÄꤷ¤¿¥Ý¥ê¥·¡¼¤Ï¡¢¥×¥í¥»¥¹¤Ë¿·µ¬¤Î¥Ú¡¼¥¸¤¬³ä¤êÅö¤Æ¤é¤ì¤ë¤È¤­¤Ë¤Î¤ß -ŬÍѤµ¤ì¤ë¡£ÌµÌ¾¥á¥â¥ê (anonymous memory) ¤Î¾ì¹ç¡¢¿·µ¬¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤Ï -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬½é¤á¤Æ¥Ú¡¼¥¸¤Ë¥¢¥¯¥»¥¹¤·¤¿ºÝ¤Ë¹Ô¤ï¤ì¤ë¡£ +を使ってマップされたメモリマップ・ファイルに対するページの割り当てにも +適用される (この場合はページのアクセス種別に関わらず適用される) 。 +設定したポリシーは、プロセスに新規のページが割り当てられるときにのみ +適用される。無名メモリ (anonymous memory) の場合、新規ページの割り当ては +アプリケーションが初めてページにアクセスした際に行われる。 .I mode -°ú¤­¿ô¤Ë¤Ï +引き数には .BR MPOL_DEFAULT , .BR MPOL_BIND , .BR MPOL_INTERLEAVE , .B MPOL_PREFERRED -¤Î¤¤¤º¤ì¤«°ì¤Ä¤ò»ØÄꤷ¤Æ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +のいずれか一つを指定してしなければならない。 .B MPOL_DEFAULT -°Ê³°¤Î¥Ý¥ê¥·¡¼¤Î¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Ï +以外のポリシーの場合、呼び出し元は .I nodemask -°ú¤­¿ô¤Ç°ì¤Ä°Ê¾å¤Î¥Î¡¼¥É¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¡£ +引き数で一つ以上のノードを指定する必要がある。 .I mode -°ú¤­¿ô¤Ë¤Ï¡¢ÄÉ²Ã¤Ç -.I "¥â¡¼¥É¥Õ¥é¥°" -¤ò´Þ¤á¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë -.I "¥â¡¼¥É¥Õ¥é¥°" -¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +引き数には、追加で +.I "モードフラグ" +を含めることもできる。 +サポートされている +.I "モードフラグ" +は以下の通りである。 .TP -.BR MPOL_F_STATIC_NODES " (Linux 2.6.26 °Ê¹ß)" -¶õ¤Ç¤Ê¤¤ +.BR MPOL_F_STATIC_NODES " (Linux 2.6.26 以降)" +空でない .I nodemask -¤Ï¡¢ÊªÍý¥Î¡¼¥É ID ¤Ç¤¢¤ë¡£ -Linux ¤Ç¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤¬°Û¤Ê¤ë CPU ½¸¹ç¥³¥ó¥Æ¥­¥¹¥È (cpuset context) -¤Ë°ÜÆ°¤·¤¿¾ì¹ç¤Ç¤â¡¢¤½¤Î¥×¥í¥»¥¹¤Î¸½ºß¤Î CPU ½¸¹ç¥³¥ó¥Æ¥­¥¹¥È¤Ç -µö²Ä¤µ¤ì¤Æ¤¤¤ë¥Î¡¼¥É½¸¹ç¤¬ÊѲ½¤·¤¿¾ì¹ç¤Ç¤â¡¢ +は、物理ノード ID である。 +Linux では、そのプロセスが異なる CPU 集合コンテキスト (cpuset context) +に移動した場合でも、そのプロセスの現在の CPU 集合コンテキストで +許可されているノード集合が変化した場合でも、 .I nodemask -¤ò¥Þ¥Ã¥Ô¥ó¥°¤·Ä¾¤¹¤³¤È¤Ï¤Ê¤¤¡£ +をマッピングし直すことはない。 .TP -.BR MPOL_F_RELATIVE_NODES " (Linux 2.6.26 °Ê¹ß)" -¶õ¤Ç¤Ê¤¤ +.BR MPOL_F_RELATIVE_NODES " (Linux 2.6.26 以降)" +空でない .I nodemask -¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤Î¸½ºß¤Î CPU ½¸¹ç¤Çµö²Ä¤µ¤ì¤Æ¤¤¤ë¥Î¡¼¥É ID ½¸¹ç -¤Ë¤ª¤±¤ëÁêÂÐŪ¤Ê¥Î¡¼¥É ID ¤Ç¤¢¤ë¡£ +は、そのプロセスの現在の CPU 集合で許可されているノード ID 集合 +における相対的なノード ID である。 .PP .I nodemask -¤Ï¡¢ºÇÂç¤Ç +は、最大で .I maxnode -¥Ó¥Ã¥È¤«¤é¹½À®¤µ¤ì¤ë¥Î¡¼¥É ID ¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤ò»Ø¤¹¡£ -¥Ó¥Ã¥È¥Þ¥¹¥¯¤ÎÂ礭¤µ¤Ï¡¢Ä¾¶á¤Î +ビットから構成されるノード ID のビットマスクを指す。 +ビットマスクの大きさは、直近の .I sizeof(unsigned long) -¤ÎÇÜ¿ô¤ËÀÚ¤ê¾å¤²¤é¤ì¤ë¤¬¡¢¥«¡¼¥Í¥ë¤¬»ÈÍѤ¹¤ë¤Î¤Ï +の倍数に切り上げられるが、カーネルが使用するのは .I maxnode -¸Ä¤Þ¤Ç¤Î¥Ó¥Ã¥È¤À¤±¤Ç¤¢¤ë¡£ -NULL ÃͤΠ+個までのビットだけである。 +NULL 値の .I nodemask -¤â¤·¤¯¤ÏÃͤ¬ 0 ¤Î +もしくは値が 0 の .I maxnode -¤Ï¥Î¡¼¥É¤Î¶õ½¸¹ç¤òɽ¤¹¡£ +はノードの空集合を表す。 .I maxnode -¤ÎÃͤ¬ 0 ¤Î¾ì¹ç¡¢ +の値が 0 の場合、 .I nodemask -°ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ +引き数は無視される。 .I nodemask -¤¬É¬¿Ü¤Î¾ìÌ̤Ǥϡ¢ +が必須の場面では、 .I nodemask -¤Ë¡¢¥ª¥ó¥é¥¤¥ó¤Ç¡¢¤½¤Î¥×¥í¥»¥¹¤Î¸½ºß¤Î CPU ½¸¹ç¥³¥ó¥Æ¥­¥¹¥È¤Ç -µö²Ä¤µ¤ì¤Æ¤ª¤ê +に、オンラインで、そのプロセスの現在の CPU 集合コンテキストで +許可されており .RB ( MPOL_F_STATIC_NODES -¥â¡¼¥É¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç)¡¢¥á¥â¥ê¤¬¤¢¤ë¥Î¡¼¥É¤¬ -¾¯¤Ê¤¯¤È¤â°ì¤ÄÆþ¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +モードフラグが指定されていない場合)、メモリがあるノードが +少なくとも一つ入っていなければならない。 .I mode -¤Ë +に .B MPOL_F_STATIC_NODES -¤¬¥»¥Ã¥È¤µ¤ì¡¢ +がセットされ、 .I nodemask -¤¬É¬¿Ü¤Î¾ìÌ̤ǡ¢ +が必須の場面で、 .I nodemask -¤Ë¡¢¤½¤Î¥×¥í¥»¥¹¤Î¸½ºß¤Î CPU ½¸¹ç¥³¥ó¥Æ¥­¥¹¥È¤Çµö²Ä¤µ¤ì¤¿¥Î¡¼¥É¤¬ -°ì¤Ä¤â´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢¥á¥â¥ê¤Î¥Ý¥ê¥·¡¼¤È¤·¤Æ¥Ç¥Õ¥©¥ë¥È¤Î -¡Ö¥í¡¼¥«¥ë¤«¤é³ä¤êÅö¤Æ (local allocation)¡×¤¬Å¬ÍѤµ¤ì¤ë¡£ -¤½¤Î¥×¥í¥»¥¹¤Î CPU ½¸¹ç¥³¥ó¥Æ¥­¥¹¥È¤¬ +に、そのプロセスの現在の CPU 集合コンテキストで許可されたノードが +一つも含まれていない場合には、メモリのポリシーとしてデフォルトの +「ローカルから割り当て (local allocation)」が適用される。 +そのプロセスの CPU 集合コンテキストが .I nodemask -¤Ç»ØÄꤵ¤ì¤¿¥Î¡¼¥É¤ò¾¯¤Ê¤¯¤È¤â°ì¤Ä´Þ¤à¤è¤¦¤Ë¤Ê¤ë¤Þ¤Ç¤Ï¡¢ -·ë²ÌŪ¤Ë»ØÄꤵ¤ì¤¿Æ°ºî¤¬¾å½ñ¤­¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ +で指定されたノードを少なくとも一つ含むようになるまでは、 +結果的に指定された動作が上書きされることになる。 .B MPOL_DEFAULT -¥â¡¼¥É¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¤Ê¤¤¥×¥í¥»¥¹¤Î¥á¥â¥ê¥Ý¥ê¥·¡¼¤òºï½ü¤¹¤ë¤³¤È¤ò -»ØÄꤹ¤ë¤â¤Î¤Ç¤¢¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢¥á¥â¥ê¥Ý¥ê¥·¡¼¤Ï¥·¥¹¥Æ¥à¤Î -¥Ç¥Õ¥©¥ë¥È¥Ý¥ê¥·¡¼¤Ë¡ÖÌá¤ë¡×¤³¤È¤Ë¤Ê¤ë¡£ -¥·¥¹¥Æ¥à¤Î¥Ç¥Õ¥©¥ë¥È¥Ý¥ê¥·¡¼¤Ï¡Ö¥í¡¼¥«¥ë¤«¤é¤Î³ä¤êÅö¤Æ (local allocation)¡×¡¢ -¤Ä¤Þ¤ê¥á¥â¥ê³ä¤êÅö¤Æ¤Î¤­¤Ã¤«¤±¤È¤Ê¤Ã¤¿ CPU ¤Î¥Î¡¼¥É¤Î¥á¥â¥ê¤¬³ä¤êÅö¤Æ¤é¤ì¤ë¡£ +モードは、デフォルトではないプロセスのメモリポリシーを削除することを +指定するものである。これにより、メモリポリシーはシステムの +デフォルトポリシーに「戻る」ことになる。 +システムのデフォルトポリシーは「ローカルからの割り当て (local allocation)」、 +つまりメモリ割り当てのきっかけとなった CPU のノードのメモリが割り当てられる。 .I nodemask -¤Ë¤Ï NULL ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¡Ö¼«¥Î¡¼¥É (local node)¡×¤Ë¶õ¤­¥á¥â¥ê¤¬Á´¤¯¤Ê¤¤¾ì¹ç¡¢¥·¥¹¥Æ¥à¤Ï -¡Ö¶á¤¯¤Î (near by) ¥Î¡¼¥É¡×¤«¤é¥á¥â¥ê¤ò³ä¤êÅö¤Æ¤è¤¦¤È»î¤ß¤ë¡£ +には NULL を指定しなければならない。 +「自ノード (local node)」に空きメモリが全くない場合、システムは +「近くの (near by) ノード」からメモリを割り当てようと試みる。 .B MPOL_BIND -¥â¡¼¥É¤Ï¸·Ì©¤Ê¥Ý¥ê¥·¡¼¤Ç¡¢¥á¥â¥ê³ä¤êÅö¤Æ¤Ï +モードは厳密なポリシーで、メモリ割り当ては .I nodemask -¤Ë»ØÄꤵ¤ì¤¿¥Î¡¼¥É¤Ë¸ÂÄꤵ¤ì¤ë¡£ +に指定されたノードに限定される。 .I nodemask -¤Ë 2 ¸Ä°Ê¾å¤Î¥Î¡¼¥É¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤Ï -¥Î¡¼¥É ID ¤¬¿ô»ú¤È¤·¤ÆºÇ¾®¤Î¥Î¡¼¥É¤«¤é³«»Ï¤µ¤ì¡¢ -¤½¤Î¥Î¡¼¥É¤Ë¶õ¤­¥á¥â¥ê¤¬¤Ê¤¯¤Ê¤ë¤Þ¤Ç¤½¤Î¥Î¡¼¥É¤«¤é -¥Ú¡¼¥¸³ä¤êÅö¤Æ¤¬¹Ô¤ï¤ì¤ë¡£¤½¤Î¥Î¡¼¥É¤Ë¶õ¤­¥á¥â¥ê¤¬¤Ê¤¯¤Ê¤Ã¤¿¤é¡¢ -.\"motoki: the next highest ¤Ï the next lowest ¤Î´Ö°ã¤¤¡© -¼¡¤Ë¾®¤µ¤Ê¥Î¡¼¥É ID ¤ò»ý¤Ä¥Î¡¼¥É¤«¤é¥Ú¡¼¥¸³ä¤êÅö¤Æ¤¬¹Ô¤ï¤ì¤ë¡£ -¤³¤ì¤ò¡¢ +に 2 個以上のノードが指定された場合、ページの割り当ては +ノード ID が数字として最小のノードから開始され、 +そのノードに空きメモリがなくなるまでそのノードから +ページ割り当てが行われる。そのノードに空きメモリがなくなったら、 +.\"motoki: the next highest は the next lowest の間違い? +次に小さなノード ID を持つノードからページ割り当てが行われる。 +これを、 .I nodemask -¤Ç»ØÄꤵ¤ì¤¿Á´¤Æ¤Î¥Î¡¼¥É¤Ç¶õ¤­¥á¥â¥ê¤¬¤Ê¤¯¤Ê¤ë¤Þ¤Ç·«¤êÊÖ¤¹¡£ +で指定された全てのノードで空きメモリがなくなるまで繰り返す。 .I nodemask -¤Ç»ØÄꤵ¤ì¤¿°Ê³°¤Î¥Î¡¼¥É¤«¤é¤Ï¥Ú¡¼¥¸¤Î³ä¤êÅö¤Æ¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ +で指定された以外のノードからはページの割り当ては行われない。 .B MPOL_INTERLEAVE -¤Ç¤Ï¡¢¥Ú¡¼¥¸³ä¤êÅö¤Æ¤ò +では、ページ割り当てを .I nodemask -¤Ë»ØÄꤵ¤ì¤¿¥Î¡¼¥É¤Î´Ö¤Ç¥Î¡¼¥É ID ¤Î¿ô»ú½ç¤Ç¸ò¸ß¤Ë¹Ô¤¦¡£ -¤³¤Î¥Ý¥ê¥·¡¼¤Ç¤Ï¡¢Ê£¿ô¤Î¥Î¡¼¥É¤Ë¥Ú¡¼¥¸¤ò¹­¤²¤ÆÇÛÃÖ¤·¡¢¤³¤ì¤é¤Î¥Ú¡¼¥¸¤Ø¤Î¥á¥â¥ê -¥¢¥¯¥»¥¹¤òʬ»¶¤¹¤ë¤³¤È¤Ç¡¢ÃÙ±ä¤Ç¤Ï¤Ê¤¯¡¢ÂÓ°è¤òºÇŬ²½¤¹¤ë¡£ -¤¿¤À¤·¡¢°ì¤Ä¤Î¥Ú¡¼¥¸¤Ø¤Î¥¢¥¯¥»¥¹¤Ë´Ø¤·¤Æ¤Ï°ÍÁ³¤È¤·¤Æ°ì¤Ä¤Î¥Î¡¼¥É¤Î¥á¥â¥êÂÓ°è -¤¬¾å¸Â¤È¤Ê¤ë¡£ +に指定されたノードの間でノード ID の数字順で交互に行う。 +このポリシーでは、複数のノードにページを広げて配置し、これらのページへのメモリ +アクセスを分散することで、遅延ではなく、帯域を最適化する。 +ただし、一つのページへのアクセスに関しては依然として一つのノードのメモリ帯域 +が上限となる。 .\" NOTE: the following sentence doesn't make sense in the context .\" of set_mempolicy() -- no memory area specified. .\" To be effective the memory area should be fairly large, .\" at least 1MB or bigger. .B MPOL_PREFERRED -¤Ï¡¢³ä¤êÅö¤Æ»þ¤ËÍ¥À褵¤ì¤ë¥Î¡¼¥É (preferred node) ¤òÀßÄꤹ¤ë¡£ -¥«¡¼¥Í¥ë¤Ï¤Þ¤ºÍ¥Àè¥Î¡¼¥É¤«¤é¥Ú¡¼¥¸³ä¤êÅö¤Æ¤ò¹Ô¤ª¤¦¤È¤·¡¢ -Í¥Àè¥Î¡¼¥É¤Ë¶õ¤­¥á¥â¥ê¤¬¾¯¤Ê¤¤¾ì¹ç¤Ë¡Ö¶á¤¯¤Î (near by)¡×¥Î¡¼¥É¤«¤é -³ä¤êÅö¤Æ¤ò¹Ô¤¦¡£ +は、割り当て時に優先されるノード (preferred node) を設定する。 +カーネルはまず優先ノードからページ割り当てを行おうとし、 +優先ノードに空きメモリが少ない場合に「近くの (near by)」ノードから +割り当てを行う。 .I nodemask -¤ËÊ£¿ô¤Î¥Î¡¼¥É ID ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢ +に複数のノード ID が指定された場合は、 .I nodemask -Æâ¤ÎºÇ½é¤Î¥Î¡¼¥É¤¬Í¥Àè¥Î¡¼¥É¤È¤·¤ÆÁªÂò¤µ¤ì¤ë¡£ -°ú¤­¿ô +内の最初のノードが優先ノードとして選択される。 +引き数 .IR nodemask , .I maxnode -¤Ç¶õ½¸¹ç¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢¥Ý¥ê¥·¡¼¤Ï (¾å½Ò¤Î¥·¥¹¥Æ¥à¤Î -¥Ç¥Õ¥©¥ë¥È¥Ý¥ê¥·¡¼¤ÈƱÍͤË) ¡Ö¥í¡¼¥«¥ë¤«¤é¤Î³ä¤êÅö¤Æ¡×¤È¤Ê¤ë¡£ +で空集合が指定された場合は、ポリシーは (上述のシステムの +デフォルトポリシーと同様に) 「ローカルからの割り当て」となる。 -¥×¥í¥»¥¹¤Î¥á¥â¥ê¥Ý¥ê¥·¡¼¤Ï +プロセスのメモリポリシーは .BR execve (2) -¤ÎÁ°¸å¤ÇÊÝ»ý¤µ¤ì¡¢ +の前後で保持され、 .BR fork (2) -¤ä +や .BR clone (2) -¤ò»È¤Ã¤ÆºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ë·Ñ¾µ¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +を使って作成された子プロセスに継承される。 +.SH 返り値 +成功すると、 .BR set_mempolicy () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値を設定する。 +.SH エラー .TP .B EFAULT -.\"motoki: Part of all of the memory ¤Ï Part or all .. ¤Î´Ö°ã¤¤¡© +.\"motoki: Part of all of the memory は Part or all .. の間違い? .I nodemask -¤È +と .I maxnode -¤Ç»ØÄꤵ¤ì¤¿¥á¥â¥êÎΰè¤Î°ìÉô¤Þ¤¿¤ÏÁ´Éô¤¬¡¢ -¸Æ¤Ó½Ð¤·¸µ¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +で指定されたメモリ領域の一部または全部が、 +呼び出し元がアクセス可能なアドレス空間外を指している。 .TP .B EINVAL .I mode -¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +が不正である。 .I mode -¤¬ +が .B MPOL_DEFAULT -¤Ç¡¢ +で、 .I nodemask -¤¬¶õ¤Ç¤Ï¤Ê¤¤¡£ +が空ではない。 .I mode -¤¬ +が .B MPOL_BIND -¤« +か .B MPOL_INTERLEAVE -¤Ç¡¢ +で、 .I nodemask -¤¬¶õ¤Ç¤¢¤ë¡£ +が空である。 .I maxnode -¤Ç¼ÂºÝ¤Ë°ÕÌ£¤¬¤¢¤ë¥Ó¥Ã¥È¿ô¤è¤ê¿¤¯¤Î¥Ó¥Ã¥È¿ô¤¬»ØÄꤵ¤ì¤¿¡£ +で実際に意味があるビット数より多くのビット数が指定された。 .I nodemask -¤Ë¡¢¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ëºÇÂç¥Î¡¼¥É ID ¤è¤êÂ礭¤¤¥Î¡¼¥É¤¬»ØÄꤵ¤ì¤¿¡£ +に、サポートされている最大ノード ID より大きいノードが指定された。 .I nodemask -¤Ë¡¢¥ª¥ó¥é¥¤¥ó¤Ç¡¢¤«¤Ä¤½¤Î¥×¥í¥»¥¹¤Î¸½ºß¤Î CPU ½¸¹ç¥³¥ó¥Æ¥­¥¹¥È¤Ç -µö²Ä¤µ¤ì¤Æ¤¤¤ë¥Î¡¼¥É¤¬°ì¤Ä¤â´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ -¥á¥â¥ê¤ò´Þ¤à¥Î¡¼¥É¤¬°ì¤Ä¤â»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +に、オンラインで、かつそのプロセスの現在の CPU 集合コンテキストで +許可されているノードが一つも含まれていないか、 +メモリを含むノードが一つも指定されていない。 .I mode -°ú¤­¿ô¤Ë +引き数に .B MPOL_F_STATIC_NODES -¤È +と .B MPOL_F_RELATIVE_NODES -¤ÎξÊý¤¬»ØÄꤵ¤ì¤¿¡£ +の両方が指定された。 .TP .B ENOMEM -ÍøÍѲÄǽ¤Ê¥«¡¼¥Í¥ë¥á¥â¥ê¤¬½½Ê¬¤Ç¤Ê¤«¤Ã¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +利用可能なカーネルメモリが十分でなかった。 +.SH バージョン .BR set_mempolicy () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥Ð¡¼¥¸¥ç¥ó 2.6.7 ¤Ç Linux ¥«¡¼¥Í¥ë¤ËÄɲ䵤줿¡£ -.SH ½àµò -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -¥Ú¡¼¥¸¤¬¥¹¥ï¥Ã¥×¡¦¥¢¥¦¥È¤µ¤ì¤ë¾ì¹ç¤Ë¤Ï¡¢ -¥×¥í¥»¥¹¥Ý¥ê¥·¡¼¤ÎÀßÄê¤Ï¿ä¾©¤µ¤ì¤Ê¤¤¡£ -¥¹¥ï¥Ã¥×¡¦¥¢¥¦¥È¤µ¤ì¤¿¥Ú¡¼¥¸¤¬¥Ú¡¼¥¸¡¦¥¤¥ó¤¹¤ëºÝ¤Ë¤â¡¢ -¥Ú¡¼¥¸³ä¤êÅö¤Æ»þ¤ËŬÍѤµ¤ì¤ë¥×¥í¥»¥¹¥Ý¥ê¥·¡¼¤ä¥á¥â¥êÎΰè¥Ý¥ê¥·¡¼¤¬ -»ÈÍѤµ¤ì¤ë¡£ +システムコールはバージョン 2.6.7 で Linux カーネルに追加された。 +.SH 準拠 +このシステムコールは Linux 独自である。 +.SH 注意 +ページがスワップ・アウトされる場合には、 +プロセスポリシーの設定は推奨されない。 +スワップ・アウトされたページがページ・インする際にも、 +ページ割り当て時に適用されるプロセスポリシーやメモリ領域ポリシーが +使用される。 -¥é¥¤¥Ö¥é¥ê¤Ë¤è¤ë¥µ¥Ý¡¼¥È¤Ë¤Ä¤¤¤Æ¤Ï +ライブラリによるサポートについては .BR numa (7) -¤ò»²¾È¡£ -.SH ´ØÏ¢¹àÌÜ +を参照。 +.SH 関連項目 .BR get_mempolicy (2), .BR getcpu (2), .BR mbind (2), diff --git a/release/man2/set_thread_area.2 b/release/man2/set_thread_area.2 index 932b6e82..17b89890 100644 --- a/release/man2/set_thread_area.2 +++ b/release/man2/set_thread_area.2 @@ -8,63 +8,63 @@ .\" Updated 2005-02-24, Akihiro MOTOKI .\" .TH SET_THREAD_AREA 2 2008-11-27 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -set_thread_area \- ¥¹¥ì¥Ã¥É¶É½êµ­²± (TLS) Îΰè¤òÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +set_thread_area \- スレッド局所記憶 (TLS) 領域を設定する +.SH 書式 .B #include .br .B #include .sp .BI "int set_thread_area(struct user_desc *" u_info ); -.SH ÀâÌÀ +.SH 説明 .PP .BR set_thread_area () -¤Ï¡¢¥«¥ì¥ó¥È¡¦¥¹¥ì¥Ã¥É¤Î¥¹¥ì¥Ã¥É¶É½êµ­²± (Thread Local Storage; TLS) -ÇÛÎó¤ÎÃæ¤Î¥¨¥ó¥È¥ê¤òÀßÄꤹ¤ë¡£ +は、カレント・スレッドのスレッド局所記憶 (Thread Local Storage; TLS) +配列の中のエントリを設定する。 .BR set_thread_area () -¤Ë¤è¤êÀßÄꤵ¤ì¤ë TLS ÇÛÎó¤Î¥¨¥ó¥È¥ê¤Ï¡¢¥æ¡¼¥¶¤«¤é°ú¤­¿ô¤È¤·¤ÆÅϤµ¤ì¤ë +により設定される TLS 配列のエントリは、ユーザから引き数として渡される .I u_info\->entry_number -¤ÎÃͤËÂбþ¤·¤Æ¤¤¤ë¡£Ãͤ¬ÈÏ°ÏÆâ¤Ë¤¢¤ë¾ì¹ç¡¢ +の値に対応している。値が範囲内にある場合、 .BR set_thread_area () -¤Ï +は .I u_info -¤Ç»Ø¤µ¤ì¤¿ TLS ¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¹¥ì¥Ã¥É¤Î TLS ÇÛÎó¤Ë¥³¥Ô¡¼¤¹¤ë¡£ +で指された TLS ディスクリプタをスレッドの TLS 配列にコピーする。 .PP .I entry_number -¤È¤·¤Æ \-1 ¤¬ÅϤµ¤ì¤¿¾ì¹ç¡¢ +として \-1 が渡された場合、 .BR set_thread_area () -¤Ï̤»ÈÍÑ (free) ¤Î TLS ¥¨¥ó¥È¥ê¤ò»ÈÍѤ¹¤ë¡£ -̤»ÈÍѤΠTLS ¥¨¥ó¥È¥ê¤¬¤¢¤Ã¤¿¾ì¹ç¡¢¤É¤Î¥¨¥ó¥È¥ê¤¬Êѹ¹¤µ¤ì¤¿¤«¤¬Ê¬¤«¤ë -¤è¤¦¤Ë½ªÎ»»þ¤Ë +は未使用 (free) の TLS エントリを使用する。 +未使用の TLS エントリがあった場合、どのエントリが変更されたかが分かる +ように終了時に .I u_info\->entry_number -¤ÎÃͤ¬Êѹ¹¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +の値が変更される。 +.SH 返り値 .BR set_thread_area () -¤ÏÀ®¸ù¤·¤¿¾ì¹ç 0 ¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +は成功した場合 0 を返す。失敗した場合は \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切に設定する。 +.SH エラー .TP .B EINVAL .I u_info\->entry_number -¤¬Èϰϳ°¤Ç¤¢¤ë¡£ +が範囲外である。 .TP .B EFAULT .I u_info -¤¬ÉÔÀµ¤Ê¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +が不正なポインタである。 .TP .B ESRCH -̤»ÈÍѤΠTLS ¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +未使用の TLS エントリが見つからなかった。 +.SH バージョン .BR set_thread_area () -¤Ï Linux 2.5.29 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +は Linux 2.5.29 で初めて登場した。 +.SH 準拠 .BR set_thread_area () -¤Ï Linux Æȼ«¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ -¤³¤Î´Ø¿ô¤ò»ÈÍѤ¹¤ë¤Ë¤Ï +は Linux 独自であり、移植を意図したプログラムでは使用すべきではない。 +.SH 注意 +glibc はこのシステムコールに対するラッパー関数を提供していない。 +この関数を使用するには .BR syscall (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を使用すること。 +.SH 関連項目 .BR get_thread_area (2) diff --git a/release/man2/set_tid_address.2 b/release/man2/set_tid_address.2 index 0e2c7f07..7d09c371 100644 --- a/release/man2/set_tid_address.2 +++ b/release/man2/set_tid_address.2 @@ -26,79 +26,79 @@ .\" by Yuichi SATO .\" .TH SET_TID_ADDRESS 2 2004-09-10 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -set_tid_address \- ¥¹¥ì¥Ã¥É ID ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +set_tid_address \- スレッド ID へのポインタを設定する +.SH 書式 .nf .B #include .sp .BI "long set_tid_address(int *" tidptr ); .fi -.SH ÀâÌÀ -¥«¡¼¥Í¥ë¤Ï³Æ¥×¥í¥»¥¹¤Ë¤Ä¤¤¤Æ +.SH 説明 +カーネルは各プロセスについて .I set_child_tid -¤È +と .I clear_child_tid -¤È¤¤¤¦ 2 ¤Ä¤ÎÃͤòÊÝ»ý¤¹¤ë¡£ -¤³¤ì¤é¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï NULL ¤Ç¤¢¤ë¡£ +という 2 つの値を保持する。 +これらはデフォルトでは NULL である。 .SS set_child_tid -¥×¥í¥»¥¹¤¬ +プロセスが .B CLONE_CHILD_SETTID -¥Õ¥é¥°¤ò»ØÄꤷ¤¿ +フラグを指定した .BR clone (2) -¤Ë¤è¤Ã¤Æ³«»Ï¤µ¤ì¤¿¾ì¹ç¡¢ +によって開始された場合、 .I set_child_tid -¤Ï +は .I child_tidptr -¤ËÀßÄꤵ¤ì¤ë¡£ -¤³¤ì¤Ï +に設定される。 +これは .BR clone (2) -¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î 5 ÈÖÌܤΰú¤­¿ô¤Ç¤¢¤ë¡£ +のシステムコールの 5 番目の引き数である。 .LP .I set_child_tid -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢°ìÈֺǽé¤Ë¿·¤·¤¤¥×¥í¥»¥¹¤¬¹Ô¤¦¤³¤È¤Ï¡¢ -¤³¤Î¥¢¥É¥ì¥¹¤Ë¼«¿È¤Î PID ¤ò½ñ¤­¹þ¤à¤³¤È¤Ç¤¢¤ë¡£ +が設定された場合、一番最初に新しいプロセスが行うことは、 +このアドレスに自身の PID を書き込むことである。 .SS clear_child_tid -¥×¥í¥»¥¹¤¬ +プロセスが .B CLONE_CHILD_CLEARTID -¥Õ¥é¥°¤ò»ØÄꤷ¤¿ +フラグを指定した .BR clone (2) -¤Ë¤è¤Ã¤Æ³«»Ï¤µ¤ì¤¿¾ì¹ç¡¢ +によって開始された場合、 .I clear_child_tid -¤Ï +は .I child_tidptr -¤ËÀßÄꤵ¤ì¤ë¡£ -¤³¤ì¤Ï +に設定される。 +これは .BR clone (2) -¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î 5 ÈÖÌܤΰú¤­¿ô¤Ç¤¢¤ë¡£ +のシステムコールの 5 番目の引き数である。 .LP -¥·¥¹¥Æ¥à¥³¡¼¥ë +システムコール .BR set_tid_address () -¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î +は呼び出し元プロセスの .I clear_child_tid -¤ÎÃͤò +の値を .I tidptr -¤ËÀßÄꤹ¤ë¡£ +に設定する。 .LP .I clear_child_tid -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¤­¤Ë¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤È¡¢ -¤½¤Î¥×¥í¥»¥¹¤Ï¾¤Î¥×¥í¥»¥¹¤Þ¤¿¤Ï¥¹¥ì¥Ã¥É¤È¥á¥â¥ê¤ò¶¦Í­¤·¤Æ¤¤¤ë¤Î¤Ç¡¢ -¤³¤Î¥¢¥É¥ì¥¹¤Ë 0 ¤¬½ñ¤­¹þ¤Þ¤ì¡¢ +が設定されているときにプロセスが終了すると、 +そのプロセスは他のプロセスまたはスレッドとメモリを共有しているので、 +このアドレスに 0 が書き込まれ、 .I futex(child_tidptr, FUTEX_WAKE, 1, NULL, NULL, 0); -¤Î¸Æ¤Ó½Ð¤·¤¬¼Â¹Ô¤µ¤ì¤ë -(¤Ä¤Þ¤ê¡¢¤³¤Î futex ¤ÇÂԤäƤ¤¤ë 1 ¤Ä¤Î¥×¥í¥»¥¹¤òµ¯¤³¤¹ (wake))¡£ -¥¨¥é¡¼¤Ï̵»ë¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +の呼び出しが実行される +(つまり、この futex で待っている 1 つのプロセスを起こす (wake))。 +エラーは無視される。 +.SH 返り値 .BR set_tid_address () -¤Ï¾ï¤Ë¸½ºß¤Î¥×¥í¥»¥¹¤Î PID ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +は常に現在のプロセスの PID を返す。 +.SH エラー .BR set_tid_address () -¤Ï¾ï¤ËÀ®¸ù¤¹¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤Î¸Æ¤Ó½Ð¤·¤Ï Linux 2.5.48 °Ê¹ß¤Ç¸ºß¤¹¤ë¡£ -¤³¤³¤Ç½ñ¤«¤ì¤¿¾ÜºÙ¤Ï Linux 2.5.49 °Ê¹ß¤ÇÍ­¸ú¤Ç¤¢¤ë¡£ -.SH ½àµò -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +は常に成功する。 +.SH バージョン +この呼び出しは Linux 2.5.48 以降で存在する。 +ここで書かれた詳細は Linux 2.5.49 以降で有効である。 +.SH 準拠 +このシステムコールは Linux 独自である。 +.SH 関連項目 .BR clone (2), .BR futex (2) diff --git a/release/man2/seteuid.2 b/release/man2/seteuid.2 index 3ddf5c4b..9434f225 100644 --- a/release/man2/seteuid.2 +++ b/release/man2/seteuid.2 @@ -30,15 +30,15 @@ .\" Updated & Modified 2005-01-04, Yuichi SATO .\" Updated 2010-04-23, Akihiro MOTOKI , LDP v3.24 .\" -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ ID -.\"WORD: real user ID ¼Â¥æ¡¼¥¶¡¼ ID -.\"WORD: saved user ID Êݸ¥æ¡¼¥¶¡¼ ID +.\"WORD: effective user ID 実効ユーザー ID +.\"WORD: real user ID 実ユーザー ID +.\"WORD: saved user ID 保存ユーザー ID .\"WORD: .\" .TH SETEUID 2 2009-10-17 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -seteuid, setegid \- ¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤ä ¼Â¸ú¥°¥ë¡¼¥× ID ¤òÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +seteuid, setegid \- 実効ユーザー ID や 実効グループ ID を設定する +.SH 書式 .B #include .br .B #include @@ -48,9 +48,9 @@ seteuid, setegid \- .BI "int setegid(gid_t " egid ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -60,78 +60,78 @@ glibc _BSD_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR seteuid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤òÀßÄꤹ¤ë¡£ -ÈóÆø¢¥æ¡¼¥¶¡¼¤Î¥×¥í¥»¥¹¤Î¾ì¹ç¡¢¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤ËÀßÄê¤Ç¤­¤ë¤Î¤Ï¡¢ -¼Â¥æ¡¼¥¶¡¼ ID¡¦¼Â¸ú¥æ¡¼¥¶¡¼ ID¡¦Êݸ set-user-ID ¤Î¤¤¤º¤ì¤«¤À¤±¤Ç¤¢¤ë¡£ +は呼び出し元のプロセスの実効ユーザー ID を設定する。 +非特権ユーザーのプロセスの場合、実効ユーザー ID に設定できるのは、 +実ユーザー ID・実効ユーザー ID・保存 set-user-ID のいずれかだけである。 .BR setegid () -¤Ï¡Ö¥æ¡¼¥¶¡¼¡×¤Ç¤Ï¤Ê¤¯¡Ö¥°¥ë¡¼¥×¡×¤ËÂФ·¤ÆÁ´¤¯Æ±¤¸¤³¤È¤ò¹Ô¤¦¡£ +は「ユーザー」ではなく「グループ」に対して全く同じことを行う。 .\" When .\" .I euid .\" equals \-1, nothing is changed. .\" (This is an artifact of the implementation in glibc of seteuid() .\" using setresuid(2).) -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +.SH 返り値 +成功した場合は 0 が返される。 +エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 -.SH ¥¨¥é¡¼ +.SH エラー .\" .TP .\" .B EINVAL .TP .B EPERM -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ËÆø¢¤¬¤Ê¤¯¡¢ +呼び出し元のプロセスに特権がなく、 .I euid .RI ( egid ) -¤¬¼Â¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×) ID¡¢¤Þ¤¿¤Ï¼Â¸ú¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×) ID¡¢ -Êݸ set-user-ID (Êݸ set-group-ID) ¤Î¤¤¤º¤ì¤Ç¤â¤Ç¤Ï¤Ê¤¤ -(Linux ¤Ë¤ª¤¤¤Æ¤Ï¡¢ +が実ユーザー (グループ) ID、または実効ユーザー (グループ) ID、 +保存 set-user-ID (保存 set-group-ID) のいずれでもではない +(Linux においては、 .BR seteuid () -¤Ç¤Ï +では .B CAP_SETUID -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤¬¡¢ +ケーパビリティ (capability) が、 .BR setegid () -¤Ç¤Ï +では .B CAP_SETGID -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¤Ê¤¤¾ì¹ç¤Ë¡¢Æø¢¤¬¤Ê¤¤¤ÈȽÃǤµ¤ì¤ë)¡£ -.SH ½àµò +ケーパビリティがない場合に、特権がないと判断される)。 +.SH 準拠 4.3BSD, POSIX.1-2001. -.SH Ãí°Õ -¼Â¸ú¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×) ID ¤òÊݸ set-user-ID (Êݸ set-group-ID) ¤Ë -ÀßÄê¤Ç¤­¤ë¤Î¤Ï¡¢Linux 1.1.37 (1.1.38) °Ê¹ß¤Ç¤¢¤ë¡£ -Á´¤Æ¤Î¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ +.SH 注意 +実効ユーザー (グループ) ID を保存 set-user-ID (保存 set-group-ID) に +設定できるのは、Linux 1.1.37 (1.1.38) 以降である。 +全てのシステムにおいて .B _POSIX_SAVED_IDS -¤ò¥Á¥§¥Ã¥¯¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +をチェックすべきである。 .LP -libc4, libc5, glibc 2.0 ¤Ç¤Ï¡¢ +libc4, libc5, glibc 2.0 では、 .BI seteuid( euid ) -¤Ï +は .BI setreuid(\-1, " euid" ) -¤ÈÅù²Á¤Ç¤¢¤ê¡¢Êݸ set-user-ID ¤òÊѹ¹¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -glibc 2.1 ¤Ç¤Ï¡¢ +と等価であり、保存 set-user-ID を変更するかもしれない。 +glibc 2.1 では、 .BI setresuid(\-1, " euid" ", \-1)" -¤ÈÅù²Á¤Ç¤¢¤ê¡¢Êݸ set-user-ID Êѹ¹¤·¤Ê¤¤¡£ -ƱÍͤΤ³¤È¤¬ +と等価であり、保存 set-user-ID 変更しない。 +同様のことが .BR setegid () -¤Ë¤â¸À¤¨¤ë¡£ +にも言える。 -POSIX.1 ¤Ç¤Ï¡¢ +POSIX.1 では、 .BR seteuid () .RB ( setegid ()) -¤Ç¡¢ +で、 .I euid .RI ( egid ) -¤È¤·¤Æ¸½ºß¤Î¼Â¸ú¥æ¡¼¥¶ (¥°¥ë¡¼¥×) ID ¤ÈƱ¤¸Ãͤò»ØÄê²Äǽ¤Ç¤¢¤ë -ɬÍפϤʤ¤¤È¤µ¤ì¤Æ¤ª¤ê¡¢¤¤¤¯¤Ä¤«¤Î¼ÂÁõ¤Ç¤Ï +として現在の実効ユーザ (グループ) ID と同じ値を指定可能である +必要はないとされており、いくつかの実装では .I euid .RI ( egid ) -¤È¤·¤Æ¸½ºß¤Î¼Â¸ú¥æ¡¼¥¶ (¥°¥ë¡¼¥×) ID ¤ÈƱ¤¸Ãͤò -»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +として現在の実効ユーザ (グループ) ID と同じ値を +指定することができない。 +.SH 関連項目 .BR geteuid (2), .BR setresuid (2), .BR setreuid (2), diff --git a/release/man2/setfsgid.2 b/release/man2/setfsgid.2 index c2d8af87..b639ea32 100644 --- a/release/man2/setfsgid.2 +++ b/release/man2/setfsgid.2 @@ -36,82 +36,82 @@ .\" Modified 2005-02-24, Akihiro MOTOKI .\" .\"WORD: identity ID -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: file system ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à -.\"WORD: effective group ID ¼Â¸ú¥°¥ë¡¼¥×ID -.\"WORD: real group ID ¼Â¥°¥ë¡¼¥×ID -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: security hole ¥»¥­¥å¥ê¥Æ¥£¡¦¥Û¡¼¥ë -.\"WORD: saved set-group-ID Êݸ¥»¥Ã¥È¥°¥ë¡¼¥×ID +.\"WORD: kernel カーネル +.\"WORD: file system ファイル・システム +.\"WORD: effective group ID 実効グループID +.\"WORD: real group ID 実グループID +.\"WORD: signal シグナル +.\"WORD: security hole セキュリティ・ホール +.\"WORD: saved set-group-ID 保存セットグループID .\" .TH SETFSGID 2 2008-12-05 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -setfsgid \- ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î¥Á¥§¥Ã¥¯¤ËÍѤ¤¤é¤ì¤ë¥°¥ë¡¼¥× ID ¤òÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +setfsgid \- ファイル・システムのチェックに用いられるグループ ID を設定する +.SH 書式 .B #include -/* glibc ¤Ç¤Ï */ +/* glibc では */ .sp .BI "int setfsgid(uid_t " fsgid ); -.SH ÀâÌÀ -¥·¥¹¥Æ¥à¥³¡¼¥ë +.SH 説明 +システムコール .BR setfsgid () -¤Ï Linux ¥«¡¼¥Í¥ë¤¬¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ËÂФ¹¤ë -Á´¤Æ¤Î¥¢¥¯¥»¥¹¤Î¥Á¥§¥Ã¥¯¤Ë»ÈÍѤ¹¤ë¥°¥ë¡¼¥× ID¤òÀßÄꤹ¤ë¡£Ä̾ï¤Ï +は Linux カーネルがファイル・システムに対する +全てのアクセスのチェックに使用するグループ IDを設定する。通常は .I fsgid -¤ÎÃͤϼ¸ú (effective) ¥°¥ë¡¼¥×ID ¤ÈƱ¤¸¤Ë¤Ê¤ë¡£¼ÂºÝ¡¢ -¼Â¸ú¥°¥ë¡¼¥× ID ¤¬Êѹ¹¤µ¤ì¤ëÅÙ¤Ë +の値は実効 (effective) グループID と同じになる。実際、 +実効グループ ID が変更される度に .I fsgid -¤â¤Þ¤¿¿·¤·¤¤¼Â¸ú¥°¥ë¡¼¥×ID ¤ÎÃͤËÊѹ¹¤µ¤ì¤ë¡£ +もまた新しい実効グループID の値に変更される。 -Ä̾ +通常、 .BR setfsuid () -¤ä +や .BR setfsgid () -¤¬ÌÀ¼¨Åª¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë¤Î¤Ï¡¢Linux NFS ¥µ¡¼¥Ð¡¼ ¤Î¤è¤¦¤Ë¡¢ -¥Õ¥¡¥¤¥ë¡¦¥¢¥¯¥»¥¹¤ËÍѤ¤¤ë¥æ¡¼¥¶ID / ¥°¥ë¡¼¥×ID ¤òÊѹ¹¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤¬¡¢ -Âбþ¤¹¤ë¼Â(real)/¼Â¸ú(effective) ¥æ¡¼¥¶ID / ¥°¥ë¡¼¥×ID ¤ÏÊѹ¹¤·¤¿¤¯¤Ê¤¤¤è¤¦¤Ê -¥×¥í¥°¥é¥à¤Ë¸Â¤é¤ì¤ë¡£ -NFS ¥µ¡¼¥Ð¡¼¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ç¡¢Ä̾ï¤Î¥æ¡¼¥¶ID ¤òÊѹ¹¤¹¤ë¤È¡¢ -¥×¥í¥»¥¹¤ò˾¤Þ¤Ê¤¤¥·¥°¥Ê¥ë¤Ë¤µ¤é¤¹²ÄǽÀ­¤¬¤¢¤ê¡¢ -¥»¥­¥å¥ê¥Æ¥£¡¦¥Û¡¼¥ë¤Ë¤Ê¤ë¡£(²¼µ­»²¾È) +が明示的に呼び出されるのは、Linux NFS サーバー のように、 +ファイル・アクセスに用いるユーザID / グループID を変更しなければならないが、 +対応する実(real)/実効(effective) ユーザID / グループID は変更したくないような +プログラムに限られる。 +NFS サーバーのようなプログラムで、通常のユーザID を変更すると、 +プロセスを望まないシグナルにさらす可能性があり、 +セキュリティ・ホールになる。(下記参照) .BR setfsgid () -¤Ï¡¢¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¤«¡¢ +は、スーパー・ユーザによって呼び出された場合か、 .I fsgid -¤¬¼Â¥°¥ë¡¼¥×ID¡¢¼Â¸ú¥°¥ë¡¼¥×ID¡¢ -Êݸ¥»¥Ã¥È¥°¥ë¡¼¥×ID (saved set-group-ID)¡¢¸½ºß¤Î +が実グループID、実効グループID、 +保存セットグループID (saved set-group-ID)、現在の .I fsgid -¤ÎÃͤΤ¤¤º¤ì¤«¤Ë°ìÃפ¹¤ë¾ì¹ç¤Ë¤Î¤ßÀ®¸ù¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +の値のいずれかに一致する場合にのみ成功する。 +.SH 返り値 +成功した場合、 .I fsgid -¤Î°ÊÁ°¤ÎÃͤòÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï +の以前の値を返す。エラーの場合は .I fsgid -¤Î¸½ºß¤ÎÃͤòÊÖ¤¹¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥Ð¡¼¥¸¥ç¥ó 1.2 °Ê¹ß¤Î Linux ¤Ë¸ºß¤¹¤ë¡£ +の現在の値を返す。 +.SH バージョン +このシステムコールはバージョン 1.2 以降の Linux に存在する。 .\" This system call is present since Linux 1.1.44 .\" and in libc since libc 4.7.6. -.SH ½àµò +.SH 準拠 .BR setfsgid () -¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤òÁÛÄꤷ¤¿¥×¥í¥°¥é¥à¤Ç»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ -.SH Ãí°Õ -glibc ¤¬°ú¤­¿ô¤¬¥°¥ë¡¼¥×ID ¤È¤·¤ÆÉÔÀµ¤À¤ÈȽÃǤ·¤¿¾ì¹ç¤Ï¡¢ -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¹Ô¤ï¤º \fIerrno\fP ¤Ë +は Linux 特有であり、移植を想定したプログラムで使用してはいけない。 +.SH 注意 +glibc が引き数がグループID として不正だと判断した場合は、 +システム・コールを行わず \fIerrno\fP に .B EINVAL -¤òÀßÄꤷ¤Æ \-1 ¤¬ÊÖ¤µ¤ì¤ë¡£ +を設定して \-1 が返される。 .LP -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Æ³Æþ¤µ¤ì¤¿Åö»þ¡¢¥×¥í¥»¥¹¤Ï -Ʊ¤¸¼Â¸ú¥æ¡¼¥¶ID¤Î¥×¥í¥»¥¹¤Ø¥·¥°¥Ê¥ë¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤¿¡£ -º£Æü¤Ç¤Ï¡¢¥·¥°¥Ê¥ëÁ÷¿®¸¢¸Â¤Î°·¤¤¤Ï¤«¤Ê¤ê°ã¤¦¤â¤Î¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -.SH ¥Ð¥° -¤¤¤«¤Ê¤ë¼ïÎà¤Î¥¨¥é¡¼¡¦¥á¥Ã¥»¡¼¥¸¤âÊÖ¤µ¤Ê¤¤¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï (¸Æ¤Ó½Ð¤·¸µ¤Ë¤Ï +このシステムコールが導入された当時、プロセスは +同じ実効ユーザIDのプロセスへシグナルを送ることができた。 +今日では、シグナル送信権限の扱いはかなり違うものになっている。 +.SH バグ +いかなる種類のエラー・メッセージも返さない。 +失敗した場合は (呼び出し元には .B CAP_SETGID -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¤Ê¤«¤Ã¤¿¤Î¤À¤«¤é) ºÇÄã¤Ç¤â +ケーパビリティがなかったのだから) 最低でも .B EPERM -¤¯¤é¤¤¤ÏÊÖ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +くらいは返すべきである。 +.SH 関連項目 .BR kill (2), .BR setfsuid (2), .BR capabilities (7), diff --git a/release/man2/setfsuid.2 b/release/man2/setfsuid.2 index 697dfa2b..d17f1cb0 100644 --- a/release/man2/setfsuid.2 +++ b/release/man2/setfsuid.2 @@ -36,81 +36,81 @@ .\" Modified 2005-02-24, Akihiro MOTOKI .\" .\"WORD: identity ID -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: file system ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶ID -.\"WORD: real user ID ¼Â¥æ¡¼¥¶ID -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: security hole ¥»¥­¥å¥ê¥Æ¥£¡¦¥Û¡¼¥ë -.\"WORD: saved set-user-ID Êݸ¥»¥Ã¥È¥æ¡¼¥¶ID +.\"WORD: kernel カーネル +.\"WORD: file system ファイル・システム +.\"WORD: effective user ID 実効ユーザID +.\"WORD: real user ID 実ユーザID +.\"WORD: signal シグナル +.\"WORD: security hole セキュリティ・ホール +.\"WORD: saved set-user-ID 保存セットユーザID .\" .TH SETFSUID 2 2008-12-05 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -setfsuid \- ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î¥Á¥§¥Ã¥¯¤ËÍѤ¤¤é¤ì¤ë¥æ¡¼¥¶ ID ¤òÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +setfsuid \- ファイル・システムのチェックに用いられるユーザ ID を設定する +.SH 書式 .B #include -/* glibc ¤Ç¤Ï */ +/* glibc では */ .sp .BI "int setfsuid(uid_t " fsuid ); -.SH ÀâÌÀ +.SH 説明 .BR setfsuid () -¤Ï Linux ¥«¡¼¥Í¥ë¤¬¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ËÂФ¹¤ë -Á´¤Æ¤Î¥¢¥¯¥»¥¹¤Î¥Á¥§¥Ã¥¯¤Ë»ÈÍѤ¹¤ë¥æ¡¼¥¶ID ¤òÀßÄꤹ¤ë¡£Ä̾ï¤Ï +は Linux カーネルがファイル・システムに対する +全てのアクセスのチェックに使用するユーザID を設定する。通常は .I fsuid -¤ÎÃͤϼ¸ú (effective) ¥æ¡¼¥¶ID ¤ÈƱ¤¸¤Ë¤Ê¤ë¡£¼ÂºÝ¡¢ -¼Â¸ú¥æ¡¼¥¶ID ¤¬Êѹ¹¤µ¤ì¤ëÅÙ¤Ë +の値は実効 (effective) ユーザID と同じになる。実際、 +実効ユーザID が変更される度に .I fsuid -¤â¤Þ¤¿¿·¤·¤¤¼Â¸ú¥æ¡¼¥¶ID ¤ÎÃͤËÊѹ¹¤µ¤ì¤ë¡£ +もまた新しい実効ユーザID の値に変更される。 -Ä̾ +通常、 .BR setfsuid () -¤ä +や .BR setfsgid () -¤¬ÌÀ¼¨Åª¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë¤Î¤Ï¡¢Linux NFS ¥µ¡¼¥Ð¡¼ ¤Î¤è¤¦¤Ë¡¢ -¥Õ¥¡¥¤¥ë¡¦¥¢¥¯¥»¥¹¤ËÍѤ¤¤ë¥æ¡¼¥¶ID / ¥°¥ë¡¼¥×ID ¤òÊѹ¹¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤¬¡¢ -Âбþ¤¹¤ë¼Â(real)/¼Â¸ú(effective) ¥æ¡¼¥¶ID / ¥°¥ë¡¼¥×ID ¤ÏÊѹ¹¤·¤¿¤¯¤Ê¤¤¤è¤¦¤Ê -¥×¥í¥°¥é¥à¤Ë¸Â¤é¤ì¤ë¡£ -NFS ¥µ¡¼¥Ð¡¼¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ç¡¢Ä̾ï¤Î¥æ¡¼¥¶ID ¤òÊѹ¹¤¹¤ë¤È¡¢ -¥×¥í¥»¥¹¤ò˾¤Þ¤Ê¤¤¥·¥°¥Ê¥ë¤Ë¤µ¤é¤¹²ÄǽÀ­¤¬¤¢¤ê¡¢ -¥»¥­¥å¥ê¥Æ¥£¡¦¥Û¡¼¥ë¤Ë¤Ê¤ë¡£(²¼µ­»²¾È) +が明示的に呼び出されるのは、Linux NFS サーバー のように、 +ファイル・アクセスに用いるユーザID / グループID を変更しなければならないが、 +対応する実(real)/実効(effective) ユーザID / グループID は変更したくないような +プログラムに限られる。 +NFS サーバーのようなプログラムで、通常のユーザID を変更すると、 +プロセスを望まないシグナルにさらす可能性があり、 +セキュリティ・ホールになる。(下記参照) .BR setfsuid () -¤Ï¡¢¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¤«¡¢ +は、スーパー・ユーザによって呼び出された場合か、 .I fsuid -¤¬¼Â¥æ¡¼¥¶ID¡¢¼Â¸ú¥æ¡¼¥¶ID¡¢ -Êݸ¥»¥Ã¥È¥æ¡¼¥¶ID (saved set-user-ID)¡¢¸½ºß¤Î +が実ユーザID、実効ユーザID、 +保存セットユーザID (saved set-user-ID)、現在の .I fsuid -¤ÎÃͤΤ¤¤º¤ì¤«¤Ë°ìÃפ¹¤ë¾ì¹ç¤Ë¤Î¤ßÀ®¸ù¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +の値のいずれかに一致する場合にのみ成功する。 +.SH 返り値 +成功した場合、 .I fsuid -¤Î°ÊÁ°¤ÎÃͤòÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï +の以前の値を返す。エラーの場合は .I fsuid -¤Î¸½ºß¤ÎÃͤòÊÖ¤¹¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥Ð¡¼¥¸¥ç¥ó 1.2 °Ê¹ß¤Î Linux ¤Ë¸ºß¤¹¤ë¡£ +の現在の値を返す。 +.SH バージョン +このシステムコールはバージョン 1.2 以降の Linux に存在する。 .\" This system call is present since Linux 1.1.44 .\" and in libc since libc 4.7.6. -.SH ½àµò +.SH 準拠 .BR setfsuid () -¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤òÁÛÄꤷ¤¿¥×¥í¥°¥é¥à¤Ç»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ -.SH Ãí°Õ -glibc ¤¬°ú¤­¿ô¤¬¥æ¡¼¥¶ID ¤È¤·¤ÆÉÔÀµ¤À¤ÈȽÃǤ·¤¿¾ì¹ç¤Ï¡¢ -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¹Ô¤ï¤º \fIerrno\fP ¤Ë +は Linux 特有であり、移植を想定したプログラムで使用してはいけない。 +.SH 注意 +glibc が引き数がユーザID として不正だと判断した場合は、 +システム・コールを行わず \fIerrno\fP に .B EINVAL -¤òÀßÄꤷ¤Æ \-1 ¤¬ÊÖ¤µ¤ì¤ë¡£ +を設定して \-1 が返される。 .LP -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Æ³Æþ¤µ¤ì¤¿Åö»þ¡¢¥×¥í¥»¥¹¤Ï -Ʊ¤¸¼Â¸ú¥æ¡¼¥¶ID¤Î¥×¥í¥»¥¹¤Ø¥·¥°¥Ê¥ë¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤¿¡£ -º£Æü¤Ç¤Ï¡¢¥·¥°¥Ê¥ëÁ÷¿®¸¢¸Â¤Î°·¤¤¤Ï¤«¤Ê¤ê°ã¤¦¤â¤Î¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -.SH ¥Ð¥° -¤¤¤«¤Ê¤ë¼ïÎà¤Î¥¨¥é¡¼¡¦¥á¥Ã¥»¡¼¥¸¤â¸Æ¤Ó½Ð¤·¸µ¤ËÊÖ¤µ¤Ê¤¤¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï (¸Æ¤Ó½Ð¤·¸µ¤Ë¤Ï +このシステムコールが導入された当時、プロセスは +同じ実効ユーザIDのプロセスへシグナルを送ることができた。 +今日では、シグナル送信権限の扱いはかなり違うものになっている。 +.SH バグ +いかなる種類のエラー・メッセージも呼び出し元に返さない。 +失敗した場合は (呼び出し元には .B CAP_SETUID -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¤Ê¤«¤Ã¤¿¤Î¤À¤«¤é) ºÇÄã¤Ç¤â +ケーパビリティがなかったのだから) 最低でも .B EPERM -¤¯¤é¤¤¤ÏÊÖ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +くらいは返すべきである。 +.SH 関連項目 .BR kill (2), .BR setfsgid (2), .BR capabilities (7), diff --git a/release/man2/setgid.2 b/release/man2/setgid.2 index 5e7398cd..0581901b 100644 --- a/release/man2/setgid.2 +++ b/release/man2/setgid.2 @@ -30,50 +30,50 @@ .\" by HANATAKA Shinya .\" Updated Fri Feb 7 JST 2003 by Kentaro Shirakata .\" -.\"WORD: identity ¼±ÊÌ -.\"WORD: effective group ID ¼Â¸ú¥°¥ë¡¼¥×ID -.\"WORD: real group ID ¼Â¥°¥ë¡¼¥×ID -.\"WORD: saved set-group-ID Êݸ¥»¥Ã¥È¥°¥ë¡¼¥×ID -.\"WORD: implement ¼ÂÁõ -.\"WORD: superuser ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ +.\"WORD: identity 識別 +.\"WORD: effective group ID 実効グループID +.\"WORD: real group ID 実グループID +.\"WORD: saved set-group-ID 保存セットグループID +.\"WORD: implement 実装 +.\"WORD: superuser スーパー・ユーザー .\" .TH SETGID 2 2009-10-17 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -setgid \- ¥°¥ë¡¼¥×¼±ÊÌ(identity)¤òÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +setgid \- グループ識別(identity)を設定する +.SH 書式 .B #include .br .B #include .sp .BI "int setgid(gid_t " gid ); -.SH ÀâÌÀ +.SH 説明 .BR setgid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¸ú (effective) ¥°¥ë¡¼¥×ID ¤òÀßÄꤹ¤ë¡£ -¤â¤·¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¤Ï¡¢ -¼Â (real) ¥°¥ë¡¼¥×ID ¤ÈÊݸ (saved) set-group-ID ¤âÀßÄꤵ¤ì¤ë¡£ +は呼び出し元のプロセスの実効 (effective) グループID を設定する。 +もしスーパー・ユーザーによって呼び出された場合は、 +実 (real) グループID と保存 (saved) set-group-ID も設定される。 -Linux ¤Ë¤ª¤¤¤Æ¡¢ +Linux において、 .BR setgid () -¤Ï +は .B _POSIX_SAVED_IDS -¤ò¤â¤Ã¤¿ POSIX ÈǤΤ褦¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï set-user-ID-root ¤Ç¤Ê¤¤ set-group-ID ¥×¥í¥°¥é¥à¤Ë¤½¤Î¥°¥ë¡¼¥×¤Î -Æø¢¤ÎÁ´¤ÆÍî¤È¤·¡¢Æø¢¤ÎɬÍפʤ¤»Å»ö¤ò¤·¡¢ËÜÍè¤Î¼Â¸ú¥°¥ë¡¼¥×ID ¤Ë -°ÂÁ´¤ÊÊýË¡¤ÇºÆ¤ÓÌ᤹¤³¤È¤òµö¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï¥¼¥í¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +をもった POSIX 版のように実装されている。 +これは set-user-ID-root でない set-group-ID プログラムにそのグループの +特権の全て落とし、特権の必要ない仕事をし、本来の実効グループID に +安全な方法で再び戻すことを許す。 +.SH 返り値 +成功した場合はゼロが返される。エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EPERM -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ë¸¢¸Â¤¬¤Ê¤¯ (\fBCAP_SETGID\fP ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¤Ê¤¯)¡¢¤«¤Ä +呼び出し元のプロセスに権限がなく (\fBCAP_SETGID\fP ケーパビリティがなく)、かつ .I gid -¤¬¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¥°¥ë¡¼¥×ID ¤ÈÊݸ¥»¥Ã¥È¥°¥ë¡¼¥×ID -¤Î¤É¤Á¤é¤È¤â°ìÃפ·¤Ê¤¤¡£ -.SH ½àµò +が呼び出し元のプロセスの実グループID と保存セットグループID +のどちらとも一致しない。 +.SH 準拠 SVr4, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getgid (2), .BR setegid (2), .BR setregid (2), diff --git a/release/man2/setpgid.2 b/release/man2/setpgid.2 index c26a4c91..2ff9b54e 100644 --- a/release/man2/setpgid.2 +++ b/release/man2/setpgid.2 @@ -52,17 +52,17 @@ .\" Updated 2007-09-25, Akihiro MOTOKI , LDP v2.64 .\" Updated 2010-04-23, Akihiro MOTOKI, LDP v3.24 .\" -.\"WORD: process group ¥×¥í¥»¥¹¥°¥ë¡¼¥× -.\"WORD: process group ID ¥×¥í¥»¥¹¥°¥ë¡¼¥× ID -.\"WORD: terminal üËö -.\"WORD: foreground ¥Õ¥©¥¢¥°¥é¥ó¥É -.\"WORD: block ÃæÃÇ(block) -.\"WORD: job control ¥¸¥ç¥Ö¡¦¥³¥ó¥È¥í¡¼¥ë +.\"WORD: process group プロセスグループ +.\"WORD: process group ID プロセスグループ ID +.\"WORD: terminal 端末 +.\"WORD: foreground フォアグランド +.\"WORD: block 中断(block) +.\"WORD: job control ジョブ・コントロール .\" .TH SETPGID 2 2010-09-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -setpgid, getpgid, setpgrp, getpgrp \- ¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÎÀßÄê/¼èÆÀ¤ò¹Ô¤¦ -.SH ½ñ¼° +.SH 名前 +setpgid, getpgid, setpgrp, getpgrp \- プロセスグループの設定/取得を行う +.SH 書式 .B #include .sp .BI "int setpgid(pid_t " pid ", pid_t " pgid ); @@ -80,9 +80,9 @@ setpgid, getpgid, setpgrp, getpgrp \- /* BSD version */ .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -92,7 +92,7 @@ glibc _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .br -|| /* glibc 2.12 °Ê¹ß: */ _POSIX_C_SOURCE\ >=\ 200809L +|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\ >=\ 200809L .RE .sp .BR setpgrp "() (POSIX.1):" @@ -110,226 +110,226 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .fi .PD .ad -.SH ÀâÌÀ -¤³¤ì¤é¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¹¤Ù¤Æ¤¬ Linux ¤ÇÍøÍѲÄǽ¤Ç¡¢ -¤³¤ì¤é¤ò»È¤Ã¤Æ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥× ID (PGID) ¤Î -¼èÆÀ¤äÀßÄ꤬¤Ç¤­¤ë¡£ -¿ä¾©¤Î¡¢POSIX.1 ¤Çµ¬Äꤵ¤ì¤¿ÊýË¡¤Ç¤Ï¡¢ +.SH 説明 +これらのインタフェースすべてが Linux で利用可能で、 +これらを使ってプロセスのプロセスグループ ID (PGID) の +取得や設定ができる。 +推奨の、POSIX.1 で規定された方法では、 .BR getpgrp (void) -¤Ç¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î PGID ¤ò¼èÆÀ¤·¡¢ +で呼び出し元プロセスの PGID を取得し、 .BR setpgid () -¤ÇÀßÄꤹ¤ë¡£ +で設定する。 .BR setpgid () -¤Ï +は .I pid -¤Ç»ØÄꤷ¤¿¥×¥í¥»¥¹¤Î PGID ¤Ë +で指定したプロセスの PGID に .I pgid -¤òÀßÄꤹ¤ë¡£ +を設定する。 .I pid -¤¬¥¼¥í¤Ê¤é¤Ð¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤¬ pid ¤È¤·¤Æ»ÈÍѤµ¤ì¤ë¡£ +がゼロならば、呼び出し元プロセスのプロセス ID が pid として使用される。 .I pgid -¤¬¥¼¥í¤Ê¤é¤Ð¡¢ +がゼロならば、 .I pid -¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤Î PGID ¤¬¤½¤Î¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤È -Ʊ¤¸¤ËÀßÄꤵ¤ì¤ë¡£ +で指定されたプロセスの PGID がそのプロセスのプロセス ID と +同じに設定される。 .BR setpgid () -¤ò¥×¥í¥»¥¹¤ò¤¢¤ë¥×¥í¥»¥¹¥°¥ë¡¼¥×¤«¤éÊ̤Υ°¥ë¡¼¥×¤Ø -°ÜÆ°¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¾ì¹ç¤Ï (°ìÉô¤Î¥·¥§¥ë¤Ï¥Ñ¥¤¥×¥é¥¤¥ó¤òÀ¸À® -¤¹¤ë»þ¤Ë¤³¤ì¤ò¹Ô¤¦)¡¢Î¾Êý¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÏƱ¤¸¥»¥Ã¥·¥ç¥ó¤Î -°ìÉô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ +をプロセスをあるプロセスグループから別のグループへ +移動するために使用する場合は (一部のシェルはパイプラインを生成 +する時にこれを行う)、両方のプロセスグループは同じセッションの +一部でなければならない .RB ( setsid (2) -¤È +と .BR credentials (7) -»²¾È)¡£¤³¤Î¾ì¹ç¤Ï \fIpgid\fP ¤Ï»²²Ã¤¹¤Ù¤­´û¸¤Î -¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ò»ØÄꤷ¡¢¤½¤Î¥»¥Ã¥·¥ç¥ó ID ¤Ï»²²Ã¤¹¤ë¥×¥í¥»¥¹¤Î -¥»¥Ã¥·¥ç¥ó ID ¤Ë°ìÃפ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +参照)。この場合は \fIpgid\fP は参加すべき既存の +プロセスグループを指定し、そのセッション ID は参加するプロセスの +セッション ID に一致しなければならない。 -POSIX.1 ¥Ð¡¼¥¸¥ç¥ó¤Î +POSIX.1 バージョンの .BR getpgrp () -¤Ï°ú¤­¿ô¤ò°ì¤Ä¤â¤È¤é¤º¡¢ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î PGID ¤òÊÖ¤¹¡£ +は引き数を一つもとらず、 +呼び出し元プロセスの PGID を返す。 .BR getpgid () -¤Ï +は .I pid -¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤Î PGID ¤òÊÖ¤¹¡£ +で指定されたプロセスの PGID を返す。 .I pid -¤¬¥¼¥í¤Ê¤é¤Ð¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤¬ pid ¤È¤·¤Æ»ÈÍѤµ¤ì¤ë¡£ -(¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹°Ê³°¤Î¥×¥í¥»¥¹¤Î PGID ¤Î¼èÆÀ¤¬É¬Íפˤʤ뤳¤È¤Ï -¤á¤Ã¤¿¤Ë¤Ê¤¯¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î PGID ¤ò¼èÆÀ¤¹¤ë¤Ë¤Ï -POSIX.1 ¥Ð¡¼¥¸¥ç¥ó¤Î +がゼロならば、呼び出し元プロセスのプロセス ID が pid として使用される。 +(呼び出し元プロセス以外のプロセスの PGID の取得が必要になることは +めったになく、呼び出し元プロセスの PGID を取得するには +POSIX.1 バージョンの .BR getpgrp () -¤ò»È¤¦¤Î¤¬Ë¾¤Þ¤·¤¤¡£) +を使うのが望ましい。) -System V ¥Ð¡¼¥¸¥ç¥ó¤Î +System V バージョンの .BR setpgrp () -¤Ï°ú¤­¿ô¤ò°ì¤Ä¤â¤È¤é¤º¡¢ +は引き数を一つもとらず、 .I "setpgid(0,\ 0)" -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 -BSD »ÅÍͤΠ+BSD 仕様の .BR setpgrp () -¤Ï +は .I pid -¤È +と .I pgid -¤ò°ú¤­¿ô¤Ë¤È¤ê¡¢ +を引き数にとり、 .I "setpgid(pid, pgid)" -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 .\" The true BSD setpgrp() system call differs in allowing the PGID .\" to be set to arbitrary values, rather than being restricted to .\" PGIDs in the same session. -BSD »ÅÍͤΠ+BSD 仕様の .BR getpgrp () -¤Ï +は .I pid -¤À¤±¤ò°ú¤­¿ô¤Ë¤È¤ê¡¢ +だけを引き数にとり、 .I "getpgid(pid)" -¤ÈÅù²Á¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +と等価である。 +.SH 返り値 .BR setpgid () -¤È +と .BR setpgrp () -¤ÏÀ®¸ù¤·¤¿¾ì¹ç¡¢¥¼¥í¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +は成功した場合、ゼロを返す。エラーの場合は \-1 を返し、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 -POSIX.1 ¥Ð¡¼¥¸¥ç¥ó¤Î +POSIX.1 バージョンの .BR getpgrp () -¤Ï¾ï¤Ë¸Æ¤Ó½Ð¤·¥×¥í¥»¥¹¤Î PGID ¤òÊÖ¤¹¡£ +は常に呼び出しプロセスの PGID を返す。 .BR getpgid () -¤È BSD »ÅÍͤΠ+と BSD 仕様の .BR getpgrp () -¤ÏÀ®¸ù¤·¤¿¾ì¹ç¥×¥í¥»¥¹¥°¥ë¡¼¥×¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +は成功した場合プロセスグループを返す。 +エラーの場合は \-1 を返し、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EACCES -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤òÊѹ¹¤·¤è¤¦¤È¤·¤¿¤¬¡¢ -¤¹¤Ç¤Ë¤½¤Î»Ò¥×¥í¥»¥¹¤Ï +呼び出し元プロセスの子プロセスのプロセスグループ ID を変更しようとしたが、 +すでにその子プロセスは .BR execve (2) -¤ò¼Â¹Ô¤·¤Æ¤¤¤¿¡£ +を実行していた。 .RB ( setpgid (), .BR setpgrp ()) .TP .B EINVAL .I pgid -¤¬ 0 ¤è¤ê¾®¤µ¤¤¡£ +が 0 より小さい。 .RB ( setpgid (), .BR setpgrp ()) .TP .B EPERM -¥×¥í¥»¥¹¤ò°Û¤Ê¤ë¥»¥Ã¥·¥ç¥ó¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë°ÜÆ°¤µ¤»¤è¤¦¤È¤·¤¿¡£ -¤Þ¤¿¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤òÊѹ¹¤·¤è¤¦¤È -¤·¤¿¤¬¡¢¤½¤Î»Ò¥×¥í¥»¥¹¤ÏÊ̤Υ»¥Ã¥·¥ç¥ó¤À¤Ã¤¿¡£ -¤Þ¤¿¤Ï¥»¥Ã¥·¥ç¥ó¥ê¡¼¥À¡¼¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤òÊѹ¹¤·¤è¤¦¤È¤·¤¿¡£ +プロセスを異なるセッションのプロセスグループに移動させようとした。 +または呼び出し元プロセスの子プロセスのプロセスグループ ID を変更しようと +したが、その子プロセスは別のセッションだった。 +またはセッションリーダーのプロセスグループ ID を変更しようとした。 .RB ( setpgid (), .BR setpgrp ()) .TP .B ESRCH .BR getpgid () -¤Î¾ì¹ç: +の場合: .I pid -¤¬¤É¤Î¥×¥í¥»¥¹¤Ë¤â°ìÃפ·¤Ê¤¤¡£ +がどのプロセスにも一致しない。 .BR setpgid () -¤Î¾ì¹ç: +の場合: .I pid -¤¬¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ç¤Ï¤Ê¤¯¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Ç¤â¤Ê¤¤¡£ -.SH ½àµò +が呼び出し元のプロセスではなく、呼び出し元のプロセスの子プロセスでもない。 +.SH 準拠 .BR setpgid () -¤È¡¢°ú¤­¿ô¤Ê¤·¥Ð¡¼¥¸¥ç¥ó¤Î +と、引き数なしバージョンの .BR getpgrp () -¤Ï POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +は POSIX.1-2001 に準拠している。 -POSIX.1-2001 ¤Ï¡¢ +POSIX.1-2001 は、 .BR getpgid () -¤È¡¢°ú¤­¿ô¤Ê¤·¥Ð¡¼¥¸¥ç¥ó¤Î +と、引き数なしバージョンの .BR setpgrp () -¤âµ¬Äꤷ¤Æ¤¤¤ë¡£ -POSIX.1-2008 ¤Ï¡¢¤³¤Î +も規定している。 +POSIX.1-2008 は、この .BR setpgrp () -¤Î»ÅÍͤòÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£ +の仕様を廃止予定としている。 -°ú¤­¿ô 1 ¸Ä¥Ð¡¼¥¸¥ç¥ó¤Î +引き数 1 個バージョンの .BR getpgrp () -¤È°ú¤­¿ô 2 ¸Ä¥Ð¡¼¥¸¥ç¥ó¤Î +と引き数 2 個バージョンの .BR setpgrp () -¤Ï 4.2BSD ¤ËͳÍ褷¡¢ -POSIX.1 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH Ãí°Õ +は 4.2BSD に由来し、 +POSIX.1 では規定されていない。 +.SH 注意 .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢¿Æ¥×¥í¥»¥¹¤Î PGID -¤ò·Ñ¾µ¤¹¤ë¡£ +で作成された子プロセスは、親プロセスの PGID +を継承する。 .BR execve (2) -¤ÎÁ°¸å¤Ç PGID ¤ÏÊݸ¤µ¤ì¤ë¡£ +の前後で PGID は保存される。 -³Æ¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ï¥»¥Ã¥·¥ç¥ó¤Î¥á¥ó¥Ð¡¼¤Ç¤¢¤ê¡¢³Æ¥×¥í¥»¥¹¤Ï -¤½¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤¬½ê°¤·¤Æ¤¤¤ë¥»¥Ã¥·¥ç¥ó¤Î¥á¥ó¥Ð¡¼¤Ç¤¢¤ë¡£ +各プロセスグループはセッションのメンバーであり、各プロセスは +そのプロセスグループが所属しているセッションのメンバーである。 -¥»¥Ã¥·¥ç¥ó¤ÏÀ©¸æüËö (controlling terminal) ¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ -¤¤¤Ä¤Ç¤â¡¢¥»¥Ã¥·¥ç¥ó¤Ë½ê°¤¹¤ë¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Î°ì¤Ä (¤À¤±) ¤¬ -üËö¤Î¥Õ¥©¥¢¥°¥é¥ó¥É¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë¤Ê¤ë¤³¤È¤¬¤Ç¤­¡¢ -»Ä¤ê¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ï¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤Ë¤Ê¤ë¡£ -üËö¤«¤é¥·¥°¥Ê¥ë¤¬À¸À®¤µ¤ì¤¿¾ì¹ç (Î㤨¤Ð¡¢ÃæÃÇ¥­¡¼¤òᤤ¤Æ +セッションは制御端末 (controlling terminal) を持つことができる。 +いつでも、セッションに所属するプロセスグループの一つ (だけ) が +端末のフォアグランドのプロセスグループになることができ、 +残りのプロセスグループはバックグラウンドになる。 +端末からシグナルが生成された場合 (例えば、中断キーを叩いて .B SIGINT -¤¬À¸À®¤µ¤ì¤ë¤Ê¤É)¡¢¤½¤Î¥·¥°¥Ê¥ë¤Ï¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥× -¤ËÁ÷¤é¤ì¤ë -(¥·¥°¥Ê¥ë¤òÀ¸À®¤¹¤ëʸ»ú¤ÎÀâÌÀ¤Ï +が生成されるなど)、そのシグナルはフォアグラウンドのプロセスグループ +に送られる +(シグナルを生成する文字の説明は .BR termios (3) -¤ò»²¾È)¡£ -¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤À¤±¤¬Ã¼Ëö¤«¤é¤Î +を参照)。 +フォアグラウンドのプロセスグループだけが端末からの .BR read (2) -¤¬¤Ç¤­¤ë¡£ -¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤¬Ã¼Ëö¤«¤é¤Î +ができる。 +バックグラウンドのプロセスグループが端末からの .BR read (2) -¤ò¹Ô¤ª¤¦¤È¤·¤¿¾ì¹ç¡¢¤½¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë¤Ï¥·¥°¥Ê¥ë +を行おうとした場合、そのプロセスグループにはシグナル .B SIGTSTP -¤¬Á÷¤é¤ì¡¢¤½¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ï°ì»þÄä»ß (suspend) ¤¹¤ë¡£ -´Ø¿ô +が送られ、そのプロセスグループは一時停止 (suspend) する。 +関数 .BR tcgetpgrp (3) -¤È +と .BR tcsetpgrp (3) -¤ò»È¤¦¤È¡¢À©¸æüËö¤Î¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ò -¼èÆÀ/ÀßÄê¤Ç¤­¤ë¡£ +を使うと、制御端末のフォアグラウンドのプロセスグループを +取得/設定できる。 .BR setpgid () -¤È +と .BR getpgrp () -¤Ï¡¢ +は、 .BR bash (1) -¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ç¡¢¥·¥§¥ë¤Î¥¸¥ç¥ÖÀ©¸æ (job control) ¤Î¼ÂÁõ¤Î¤¿¤á¤Î -¥×¥í¥»¥¹¥°¥ë¡¼¥×¤òºîÀ®¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£ +のようなプログラムで、シェルのジョブ制御 (job control) の実装のための +プロセスグループを作成するのに使われる。 -¥»¥Ã¥·¥ç¥ó¤¬À©¸æüËö¤ò»ý¤Ã¤Æ¤¤¤Æ¡¢¤½¤ÎüËö¤ËÂФ·¤Æ +セッションが制御端末を持っていて、その端末に対して .B CLOCAL -¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤Æ¤ª¤é¤º¡¢Ã¼Ëö¤Î¥Ï¥ó¥°¥¢¥Ã¥×¤¬µ¯¤­¤¿¾ì¹ç¡¢ -¥»¥Ã¥·¥ç¥ó¡¦¥ê¡¼¥À¡¼¤Ë +フラグが設定されておらず、端末のハングアップが起きた場合、 +セッション・リーダーに .B SIGHUP -¤¬Á÷¤é¤ì¤ë¡£ -¥»¥Ã¥·¥ç¥ó¡¦¥ê¡¼¥À¡¼¤¬½ªÎ»¤·¤¿¾ì¹ç¤Ë¤Ï¡¢¤½¤ÎÀ©¸æüËö¤Î -¥Õ¥©¥¢¥°¥é¥ó¥É¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë½ê°¤¹¤ë³Æ¥×¥í¥»¥¹¤Ë¤â +が送られる。 +セッション・リーダーが終了した場合には、その制御端末の +フォアグランドのプロセスグループに所属する各プロセスにも .B SIGHUP -¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£ +シグナルが送られる。 -¥×¥í¥»¥¹¤Î½ªÎ»¤Ë¤è¤Ã¤Æ¥×¥í¥»¥¹¥°¥ë¡¼¥×¤¬¸É»ù (orphaned) ¤Ë¤Ê¤Ã¤¿ºÝ¤Ë¡¢ -¤½¤Î¿·¤¿¤Ë¸É»ù¤Ë¤Ê¤Ã¤¿¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ËÄä»ß¤·¤Æ¤¤¤ë¥á¥ó¥Ð¡¼¤¬¤¤¤ì¤Ð¡¢ -¤½¤Î¸É»ù¤Ë¤Ê¤Ã¤¿¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë°¤¹Á´¤Æ¤Î¥×¥í¥»¥¹¤Ë +プロセスの終了によってプロセスグループが孤児 (orphaned) になった際に、 +その新たに孤児になったプロセスグループに停止しているメンバーがいれば、 +その孤児になったプロセスグループに属す全てのプロセスに .B SIGHUP -¥·¥°¥Ê¥ë¤Ë³¤±¤Æ +シグナルに続けて .B SIGCONT -¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£ +シグナルが送られる。 .\" exit.3 refers to the following text: -¸É»ù¤Ë¤Ê¤Ã¤¿ (orphaned) ¥×¥í¥»¥¹¥°¥ë¡¼¥×¤È¤Ï¡¢ -¤½¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÎÁ´¤Æ¤Î¥á¥ó¥Ð¡¼¤Ë¤Ä¤¤¤Æ¡¢¥á¥ó¥Ð¡¼¤Î¿Æ¥×¥í¥»¥¹¤¬¡¢ -¿Æ¥×¥í¥»¥¹¼«¿È¤â¤½¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð¡¼¤«¡¢ -Ê̤Υ»¥Ã¥·¥ç¥ó¤Ë°¤¹¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð¡¼¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¤è¤¦¤Ê¡¢ -¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Î¤³¤È¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +孤児になった (orphaned) プロセスグループとは、 +そのプロセスグループの全てのメンバーについて、メンバーの親プロセスが、 +親プロセス自身もそのプロセスグループのメンバーか、 +別のセッションに属すプロセスグループのメンバーのいずれかであるような、 +プロセスグループのことである。 +.SH 関連項目 .BR getuid (2), .BR setsid (2), .BR tcgetpgrp (3), diff --git a/release/man2/setresuid.2 b/release/man2/setresuid.2 index a9b9e647..cecf2fa4 100644 --- a/release/man2/setresuid.2 +++ b/release/man2/setresuid.2 @@ -32,77 +32,77 @@ .\" Updated & Modified 2005-09-03, Akihiro MOTOKI .\" Updated & Modified 2005-11-04, Akihiro MOTOKI .\" -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: real user ID ¼Â¥æ¡¼¥¶¡¼ID -.\"WORD: saved set-user-ID Êݸ¥»¥Ã¥È¥æ¡¼¥¶¡¼ID -.\"WORD: effective group ID ¼Â¸ú¥°¥ë¡¼¥×ID -.\"WORD: real group ID ¼Â¥°¥ë¡¼¥×ID -.\"WORD: saved group ID Êݸ¥°¥ë¡¼¥×ID +.\"WORD: effective user ID 実効ユーザーID +.\"WORD: real user ID 実ユーザーID +.\"WORD: saved set-user-ID 保存セットユーザーID +.\"WORD: effective group ID 実効グループID +.\"WORD: real group ID 実グループID +.\"WORD: saved group ID 保存グループID .\" .TH SETRESUID 2 2007-07-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -setresuid, setresgid \- ¥æ¡¼¥¶¤ä¥°¥ë¡¼¥×¤Î ¼Â¡¢¼Â¸ú¡¢Êݸ ID ¤òÀßÄꤹ¤ë -.SH ½ñ¼° -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.SH 名前 +setresuid, setresgid \- ユーザやグループの 実、実効、保存 ID を設定する +.SH 書式 +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "int setresuid(uid_t " ruid ", uid_t " euid ", uid_t " suid ); .br .BI "int setresgid(gid_t " rgid ", gid_t " egid ", gid_t " sgid ); -.SH ÀâÌÀ +.SH 説明 .BR setresuid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â (real) ¥æ¡¼¥¶¡¼ID¡¢¼Â¸ú (effective) ¥æ¡¼¥¶¡¼ID¡¢ -Êݸ set-user-ID ¤òÀßÄꤹ¤ë¡£ +は呼び出し元のプロセスの実 (real) ユーザーID、実効 (effective) ユーザーID、 +保存 set-user-ID を設定する。 -ÈóÆø¢¥æ¡¼¥¶¡¼¤Î¥×¥í¥»¥¹¤Ï¡¢¤½¤Î¼Â UID¡¢¼Â¸ú UID¡¢Êݸ set-user-ID ¤ò¡¢ -¸½ºß¤Î¼Â UID¡¢¸½ºß¤Î¼Â¸ú UID¡¢¸½ºß¤ÎÊݸ set-user-ID -¤Î¤É¤ì¤«¤ËÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë: +非特権ユーザーのプロセスは、その実 UID、実効 UID、保存 set-user-ID を、 +現在の実 UID、現在の実効 UID、現在の保存 set-user-ID +のどれかに変更することができる: -Æø¢¥×¥í¥»¥¹ (Linux ¤Ç¤Ï \fBCAP_SETUID\fP ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤Ä -¥×¥í¥»¥¹) ¤Ï¡¢¼Â UID¡¢¼Â¸ú UID¡¢Êݸ set-user-ID ¤òǤ°Õ¤ÎÃͤËÀßÄê¤Ç¤­¤ë¡£ +特権プロセス (Linux では \fBCAP_SETUID\fP ケーパビリティ (capability) を持つ +プロセス) は、実 UID、実効 UID、保存 set-user-ID を任意の値に設定できる。 -°ú¤­¿ô¤Î¤É¤ì¤«¤¬ \-1 ¤Î¾ì¹ç¤Ï¤½¤ÎÃͤÏÊѹ¹¤µ¤ì¤º¤Ë»Ä¤µ¤ì¤ë¡£ +引き数のどれかが \-1 の場合はその値は変更されずに残される。 -¼Â UID¡¢¼Â¸ú UID¡¢Êݸ set-user-ID ¤Ë¤É¤ó¤ÊÊѹ¹¤¬¹Ô¤ï¤ì¤¿¤«¤Ë´Ø¤ï¤é¤º¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID ¤Ï¾ï¤Ë¼Â¸ú UID (²Äǽ¤Ç¤¢¤ì¤ÐÊѹ¹¸å¤Î¿·¤·¤¤¼Â¸ú UID) -¤ÈƱ¤¸ÃͤËÀßÄꤵ¤ì¤ë¡£ +実 UID、実効 UID、保存 set-user-ID にどんな変更が行われたかに関わらず、 +ファイルシステム UID は常に実効 UID (可能であれば変更後の新しい実効 UID) +と同じ値に設定される。 -Á´¤¯Æ±¤¸¤è¤¦¤Ë¡¢ +全く同じように、 .BR setresgid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â GID¡¢¼Â¸ú GID¡¢Êݸ set-group-ID ¤òÀßÄꤹ¤ë -(¤µ¤é¤Ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à GID ¤ò¼Â¸ú GID ¤ÈƱ¤¸Ãͤ˽¤Àµ¤¹¤ë)¡£ -ÈóÆø¢¥×¥í¥»¥¹¤ÏƱÍͤÎÀ©¸Â¤ò¼õ¤±¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +は呼び出し元のプロセスの実 GID、実効 GID、保存 set-group-ID を設定する +(さらにファイルシステム GID を実効 GID と同じ値に修正する)。 +非特権プロセスは同様の制限を受ける。 +.SH 返り値 +成功した場合は 0 が返される。エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EAGAIN .I uid -¤¬¸½ºß¤Î¥æ¡¼¥¶¡¼ ID ¤È°ã¤¦Ãͤǡ¢ -¤³¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤ê ¥æ¡¼¥¶¡¼ ID ¤¬ -¥ê¥½¡¼¥¹¾å¸Â +が現在のユーザー ID と違う値で、 +この呼び出しにより ユーザー ID が +リソース上限 .B RLIMIT_NPROC -¤òĶ¤¨¤Æ¤·¤Þ¤¦¡£ +を超えてしまう。 .TP .B EPERM -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬Æø¢¤ò»ý¤¿¤Ê¤¤¤Î¤Ë -(\fBCAP_SETUID\fP ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤¤Î¤Ë)¡¢ -ID ¤òµö¤µ¤ì¤Æ¤¤¤Ê¤¤ÃͤËÊѹ¹¤·¤è¤¦¤È¤·¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -Linux ¤Ç¤Ï¥Ð¡¼¥¸¥ç¥ó 2.1.44 ¤è¤êÍøÍѲÄǽ¤Ë¤Ê¤Ã¤¿¡£ -.SH ½àµò -¤³¤ì¤é¤Î¥³¡¼¥ë¤ÏÈóɸ½à¤Ç¤¢¤ë¡£ -HP-UX ¤ä BSD ·Ï¤Î¤¤¤¯¤Ä¤«¤Ë¤â¸ºß¤¹¤ë¡£ -.SH Ãí°Õ -HP-UX ¤ä FreeBSD ¤Ç¤Ï +呼び出したプロセスが特権を持たないのに +(\fBCAP_SETUID\fP ケーパビリティを持たないのに)、 +ID を許されていない値に変更しようとした。 +.SH バージョン +Linux ではバージョン 2.1.44 より利用可能になった。 +.SH 準拠 +これらのコールは非標準である。 +HP-UX や BSD 系のいくつかにも存在する。 +.SH 注意 +HP-UX や FreeBSD では .I -¤Ë¥×¥í¥È¥¿¥¤¥×¤¬Â¸ºß¤¹¤ë¡£ -Linux ¤Ç¤Ï¡¢glibc 2.3.2 °Ê¹ß¤Ç -¥×¥í¥È¥¿¥¤¥×¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +にプロトタイプが存在する。 +Linux では、glibc 2.3.2 以降で +プロトタイプが提供されている。 +.SH 関連項目 .BR getresuid (2), .BR getuid (2), .BR setfsgid (2), diff --git a/release/man2/setreuid.2 b/release/man2/setreuid.2 index 273a8438..aa045805 100644 --- a/release/man2/setreuid.2 +++ b/release/man2/setreuid.2 @@ -50,15 +50,15 @@ .\" by Yuichi SATO .\" Updated 2010-04-23, Akihiro MOTOKI , LDP v3.24 .\" -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: real user ID ¼Â¥æ¡¼¥¶¡¼ID -.\"WORD: saved user ID Êݸ¥æ¡¼¥¶¡¼ID -.\"WORD: super-user ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ +.\"WORD: effective user ID 実効ユーザーID +.\"WORD: real user ID 実ユーザーID +.\"WORD: saved user ID 保存ユーザーID +.\"WORD: super-user スーパー・ユーザー .\" .TH SETREUID 2 2010-09-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -setreuid, setregid \- ¼Â (real) ¤È¼Â¸ú (effective) ¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×) ID ¤òÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +setreuid, setregid \- 実 (real) と実効 (effective) ユーザー (グループ) ID を設定する +.SH 書式 .B #include .br .B #include @@ -68,9 +68,9 @@ setreuid, setregid \- .BI "int setregid(gid_t " rgid ", gid_t " egid ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR setreuid (), @@ -81,76 +81,76 @@ _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .ad .RE -.SH ÀâÌÀ +.SH 説明 .BR setreuid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â (real) ¥æ¡¼¥¶¡¼ ID ¤È -¼Â¸ú (effective) ¥æ¡¼¥¶¡¼ ID ¤òÀßÄꤹ¤ë¡£ +は呼び出し元のプロセスの実 (real) ユーザー ID と +実効 (effective) ユーザー ID を設定する。 -¼Â¥æ¡¼¥¶¡¼ ID ¤ä¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤Ë \-1 ¤òÍ¿¤¨¤¿¾ì¹ç¡¢ -¥·¥¹¥Æ¥à¤Ï¤½¤Î ID ¤òÊѹ¹¤·¤Ê¤¤¡£ +実ユーザー ID や実効ユーザー ID に \-1 を与えた場合、 +システムはその ID を変更しない。 -ÈóÆø¢¥×¥í¥»¥¹¤Ï¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤ò¼Â¥æ¡¼¥¶¡¼ ID ¤Þ¤¿¤Ï¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤Þ¤¿¤Ï -Êݸ set-user-ID ¤Ë¤·¤«ÀßÄê¤Ç¤­¤Ê¤¤¡£ +非特権プロセスは実効ユーザー ID を実ユーザー ID または実効ユーザー ID または +保存 set-user-ID にしか設定できない。 -ÈóÆø¢¥æ¡¼¥¶¡¼¤Ï¡¢¼Â¥æ¡¼¥¶¡¼ ID ¤ò¼Â¥æ¡¼¥¶¡¼ ID ¤Þ¤¿¤Ï -¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤Ë¤·¤«ÀßÄê¤Ç¤­¤Ê¤¤¡£ +非特権ユーザーは、実ユーザー ID を実ユーザー ID または +実効ユーザー ID にしか設定できない。 -¼Â¥æ¡¼¥¶¡¼ID ¤¬ÀßÄꤵ¤ì¤¿¤ê¡¢¼Â¸ú¥æ¡¼¥¶¡¼ID ¤¬Á°¤Î¼Â¥æ¡¼¥¶¡¼ID ¤È -°Û¤Ã¤¿ÃͤËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢Êݸ set-user-ID ¤Ë¤Ï¿·¤·¤¤¼Â¸ú¥æ¡¼¥¶¡¼ID -¤ÎÃͤ¬ÀßÄꤵ¤ì¤ë¡£ +実ユーザーID が設定されたり、実効ユーザーID が前の実ユーザーID と +異った値に設定された場合、保存 set-user-ID には新しい実効ユーザーID +の値が設定される。 -¤³¤ì¤ÈÁ´¤¯Æ±Íͤˡ¢ +これと全く同様に、 .BR setregid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¥°¥ë¡¼¥× ID ¤È¼Â¸ú¥°¥ë¡¼¥× ID ¤òÀßÄꤷ¡¢ -¾åµ­¤ÎÀâÌÀ¤Ç¡Ö¥æ¡¼¥¶¡¼¡×¤ò¡Ö¥°¥ë¡¼¥×¡×¤ËÆɤßÂؤ¨¤¿¤³¤È¤¬À®¤êΩ¤Ä¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +は呼び出し元のプロセスの実グループ ID と実効グループ ID を設定し、 +上記の説明で「ユーザー」を「グループ」に読み替えたことが成り立つ。 +.SH 返り値 +成功した場合は 0 が返される。エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EPERM -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ËÆø¢¤¬¤Ê¤¯ -(Linux ¤Ç¤Ï +呼び出し元のプロセスに特権がなく +(Linux では .BR setreuid () -¤Î¾ì¹ç¤Ë +の場合に .B CAP_SETUID -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤¬¤Ê¤¯¡¢ +ケーパビリティ (capability) がなく、 .BR setregid () -¤Î¾ì¹ç¤Ë +の場合に .B CAP_SETGID -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¤Ê¤¤)¡¢ -°Ê²¼¤Î¤¤¤º¤ì¤Ç¤â¤Ê¤¤Êѹ¹¤¬»ØÄꤵ¤ì¤¿: -(i) ¼Â¸ú¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×) ID ¤È¼Â¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×) ID ¤òÆþ¤ì´¹¤¨¤ë¡£ -(ii) ÊÒÊý¤ÎÃͤò¾Êý¤ËÀßÄꤹ¤ë¡£ -(iii) ¼Â¸ú¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×) ID ¤ËÊݸ set-user-ID (Êݸ set-group-ID) -¤ÎÃͤòÀßÄꤹ¤ë¡£ -.SH ½àµò +ケーパビリティがない)、 +以下のいずれでもない変更が指定された: +(i) 実効ユーザー (グループ) ID と実ユーザー (グループ) ID を入れ換える。 +(ii) 片方の値を他方に設定する。 +(iii) 実効ユーザー (グループ) ID に保存 set-user-ID (保存 set-group-ID) +の値を設定する。 +.SH 準拠 POSIX.1-2001, 4.3BSD .RB ( setreuid () -¤È +と .BR setregid () -´Ø¿ô¥³¡¼¥ë¤Ï 4.2BSD ¤ÇÅо줷¤¿)¡£ -.SH Ãí°Õ -¼Â¸ú¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×) ID ¤òÊݸ¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×) ID ¤Ë -ÀßÄꤹ¤ë¤³¤È¤¬¡¢Linux 1.1.37 (1.1.38) ¤«¤é²Äǽ¤Ë¤Ê¤Ã¤¿¡£ +関数コールは 4.2BSD で登場した)。 +.SH 注意 +実効ユーザー (グループ) ID を保存ユーザー (グループ) ID に +設定することが、Linux 1.1.37 (1.1.38) から可能になった。 -POSIX.1 ¤Ç¤Ï¡¢ÈóÆø¢¥×¥í¥»¥¹¤ËÂФ·¤Æ Linux ¾å¤Çǧ¤á¤é¤ì¤Æ¤¤¤ë ID ¤ÎÊѹ¹¤Î -Á´¥Ñ¥¿¡¼¥ó¤òµ¬Äꤷ¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ +POSIX.1 では、非特権プロセスに対して Linux 上で認められている ID の変更の +全パターンを規定しているわけではない。 .BR setreuid () -¤Ç¤Ï¡¢¼Â¸ú¥æ¡¼¥¶ ID ¤ò¼Â¥æ¡¼¥¶ ID ¤â¤·¤¯¤ÏÊݸ set-user-ID ¤È -Ʊ¤¸Ãͤˤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤¬¡¢ -ÈóÆø¢¥×¥í¥»¥¹¤¬¼Â¥æ¡¼¥¶ ID ¤ò¼Â¥æ¡¼¥¶ ID¡¢¼Â¸ú¥æ¡¼¥¶ ID¡¢ -Êݸ set-user-ID ¤Î¤É¤ÎÃͤˤâÀßÄê¤Ç¤­¤ë¤«¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +では、実効ユーザ ID を実ユーザ ID もしくは保存 set-user-ID と +同じ値にすることができるが、 +非特権プロセスが実ユーザ ID を実ユーザ ID、実効ユーザ ID、 +保存 set-user-ID のどの値にも設定できるかは規定されていない。 .BR setregid () -¤Ç¤Ï¡¢¼Â¥°¥ë¡¼¥× ID ¤òÊݸ set-group-ID ¤ÈƱ¤¸ÃͤËÊѹ¹¤Ç¤­¡¢ -¼Â¸ú¥°¥ë¡¼¥× ID ¤ò¼Â¥°¥ë¡¼¥× ID ¤äÊݸ set-group-ID ¤ÈƱ¤¸ÃͤËÊѹ¹¤Ç¤­¤ë¡£ -¤É¤Î¤è¤¦¤Ê ID ¤ÎÊѹ¹¤¬Ç§¤á¤é¤ì¤Æ¤¤¤ë¤«¤ÎÀµ³Î¤Ê¾ÜºÙ¤Ï -¼ÂÁõ¤´¤È¤Ë°Û¤Ê¤ë¡£ +では、実グループ ID を保存 set-group-ID と同じ値に変更でき、 +実効グループ ID を実グループ ID や保存 set-group-ID と同じ値に変更できる。 +どのような ID の変更が認められているかの正確な詳細は +実装ごとに異なる。 -POSIX.1 ¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Êݸ set-user-ID ¤ä -Êݸ set-group-ID ¤ËÍ¿¤¨¤ë±Æ¶Á¤Ë¤Ä¤¤¤Æ¤Ïµ¬Äꤷ¤Æ¤¤¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +POSIX.1 では、これらのシステムコールが保存 set-user-ID や +保存 set-group-ID に与える影響については規定していない。 +.SH 関連項目 .BR getgid (2), .BR getuid (2), .BR seteuid (2), diff --git a/release/man2/setsid.2 b/release/man2/setsid.2 index ec319d2b..946f01c7 100644 --- a/release/man2/setsid.2 +++ b/release/man2/setsid.2 @@ -35,63 +35,63 @@ .\" Updated & Modified Thu Feb 10 22:45:24 JST 2005 .\" by Yuichi SATO .\" -.\"WORD: session ¥»¥Ã¥·¥ç¥ó -.\"WORD: process group ID ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×ID -.\"WORD: process group leader ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¡¦¥ê¡¼¥À¡¼ +.\"WORD: session セッション +.\"WORD: process group ID プロセス・グループID +.\"WORD: process group leader プロセス・グループ・リーダー .\" .TH SETSID 2 2008-12-03 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -setsid \- ¥»¥Ã¥·¥ç¥ó (session) ¤òºîÀ®¤·¡¢¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× ID ¤òÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +setsid \- セッション (session) を作成し、プロセス・グループ ID を設定する +.SH 書式 .ad l .B #include .sp .B pid_t setsid(void); .br .ad b -.SH ÀâÌÀ +.SH 説明 .BR setsid () -¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¡¦¥ê¡¼¥À¡¼ -(process group leader) ¤Ç¤Ê¤±¤ì¤Ð¡¢¿·¤·¤¤¥»¥Ã¥·¥ç¥ó¤òºîÀ®¤¹¤ë¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¿·¤·¤¤¥»¥Ã¥·¥ç¥ó¤Î¥ê¡¼¥À¡¼¡¢¿·¤·¤¤¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Î -¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¡¦¥ê¡¼¥À¡¼¤È¤Ê¤ê¡¢tty ¤ÎÀ©¸æ¤ò»ý¤¿¤Ê¤¤¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× ID ¤È¥»¥Ã¥·¥ç¥ó ID ¤Ë¤Ï¡¢ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î PID ¤¬ÀßÄꤵ¤ì¤ë¡£¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¤³¤Î -¿·¤·¤¤¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¡¢¤³¤Î¿·¤·¤¤¥»¥Ã¥·¥ç¥ó¤ÎÍ£°ì¤Î¥×¥í¥»¥¹¤È¤Ê¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î (¿·¤·¤¤) ¥»¥Ã¥·¥ç¥ó ID ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢ +は呼び出したプロセスがプロセス・グループ・リーダー +(process group leader) でなければ、新しいセッションを作成する。 +呼び出したプロセスは新しいセッションのリーダー、新しいプロセス・グループの +プロセス・グループ・リーダーとなり、tty の制御を持たない。 +呼び出したプロセスのプロセス・グループ ID とセッション ID には、 +呼び出したプロセスの PID が設定される。呼び出したプロセスはこの +新しいプロセス・グループ、この新しいセッションの唯一のプロセスとなる。 +.SH 返り値 +成功すると、呼び出したプロセスの (新しい) セッション ID が返される。 +エラーの場合は、 .I "(pid_t)\ \-1" -¤¬ÊÖ¤µ¤ì¡¢ +が返され、 .I error -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値が設定される。 +.SH エラー .TP .B EPERM -¤¤¤º¤ì¤«¤Î¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× ID ¤¬¡¢ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î PID ¤ÈÅù¤·¤¤¡£ -¤³¤ì¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬´û¤Ë¥×¥í¥»¥¹¡¦¥ê¡¼¥À¡¼¤Î¾ì¹ç¤Ë¤Ï +いずれかのプロセスのプロセス・グループ ID が、 +呼び出したプロセスの PID と等しい。 +これは、呼び出したプロセスが既にプロセス・リーダーの場合には .BR setsid () -¤Ï¼ºÇÔ¤¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -.SH ½àµò +は失敗することを意味する。 +.SH 準拠 SVr4, POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢¿Æ¥×¥í¥»¥¹¤Î¥»¥Ã¥·¥ç¥ó ID ¤ò·Ñ¾µ¤¹¤ë¡£ +で作成された子プロセスは、親プロセスのセッション ID を継承する。 .BR execve (2) -¤ÎÁ°¸å¤Ç¥»¥Ã¥·¥ç¥ó ID ¤ÏÊݸ¤µ¤ì¤ë¡£ +の前後でセッション ID は保存される。 -¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¡¦¥ê¡¼¥À¡¼¤È¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× ID ¤¬ -¤½¤Î PID ¤ËÅù¤·¤¤¥×¥í¥»¥¹¤Ç¤¢¤ë¡£ +プロセス・グループ・リーダーとは、そのプロセスのプロセス・グループ ID が +その PID に等しいプロセスである。 .BR setsid () -¤ò³Î¼Â¤ËÀ®¸ù¤µ¤»¤ë¤¿¤á¤Ë¤Ï¡¢ +を確実に成功させるためには、 .BR fork (2) -¤·¤Æ +して .BR exit (2) -¤·¡¢»Ò¥×¥í¥»¥¹¤Ç +し、子プロセスで .BR setsid () -¤ò¹Ô¤Ê¤¨¤ÐÎɤ¤¡£ -.SH ´ØÏ¢¹àÌÜ +を行なえば良い。 +.SH 関連項目 .BR getsid (2), .BR setpgid (2), .BR setpgrp (2), diff --git a/release/man2/setuid.2 b/release/man2/setuid.2 index 8c90da5d..0871e9dd 100644 --- a/release/man2/setuid.2 +++ b/release/man2/setuid.2 @@ -37,94 +37,94 @@ .\" Updated & Modified Wed Jan 5 00:51:28 JST 2005 by Yuichi SATO .\" Updated 2010-04-10, Akihiro MOTOKI , LDP v3.24 .\" -.\"WORD: identity ¼±ÊÌ -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: real user ID ¼Â¥æ¡¼¥¶¡¼ID -.\"WORD: saved user ID Êݸ¥æ¡¼¥¶¡¼ID -.\"WORD: implement ¼ÂÁõ -.\"WORD: root ¥ë¡¼¥È -.\"WORD: super-user ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ +.\"WORD: identity 識別 +.\"WORD: effective user ID 実効ユーザーID +.\"WORD: real user ID 実ユーザーID +.\"WORD: saved user ID 保存ユーザーID +.\"WORD: implement 実装 +.\"WORD: root ルート +.\"WORD: super-user スーパー・ユーザー .\" .TH SETUID 2 2010-02-21 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -setuid \- ¥æ¡¼¥¶¡¼¼±ÊÌ (identity) ¤òÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +setuid \- ユーザー識別 (identity) を設定する +.SH 書式 .B #include .br .B #include .sp .BI "int setuid(uid_t " uid ); -.SH ÀâÌÀ +.SH 説明 .BR setuid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¸ú (effective) ¥æ¡¼¥¶¡¼ ID ¤òÀßÄꤹ¤ë¡£ -¤â¤·¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú UID ¤¬ root ¤Ê¤é¤Ð¡¢ -¼Â (real) UID ¤ÈÊݸ (saved) set-user-ID ¤âÀßÄꤵ¤ì¤ë¡£ +は呼び出し元のプロセスの実効 (effective) ユーザー ID を設定する。 +もし呼び出し元プロセスの実効 UID が root ならば、 +実 (real) UID と保存 (saved) set-user-ID も設定される。 .PP -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR setuid () -¤Ï +は .B _POSIX_SAVED_IDS -¤ò¤â¤Ã¤¿ POSIX ÈǤΤ褦¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï (¥ë¡¼¥È°Ê³°¤Î) set-user-ID ¥×¥í¥°¥é¥à¤Ë¤½¤Î¥æ¡¼¥¶¡¼¤ÎÆø¢¤ò -Á´¤ÆÍ¿¤¨¡¢Æø¢¤ÎɬÍפʤ¤»Å»ö¤ò¤·¡¢ËÜÍè¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤Ë -°ÂÁ´¤ÊÊýË¡¤ÇºÆ¤ÓÌ᤹¤³¤È¤òµö¤¹¡£ +をもった POSIX 版のように実装されている。 +これは (ルート以外の) set-user-ID プログラムにそのユーザーの特権を +全て与え、特権の必要ない仕事をし、本来の実効ユーザー ID に +安全な方法で再び戻すことを許す。 .PP -¥æ¡¼¥¶¡¼¤¬ root ¤Þ¤¿¤Ï¥×¥í¥°¥é¥à¤¬ root ¤Ë set-user-ID ¤µ¤ì¤Æ¤¤¤ë¤Ê¤é¤Ð¡¢ -ÆÃÊ̤ÎÃí°Õ¤¬Ê§¤ï¤ì¤ë¡£ +ユーザーが root またはプログラムが root に set-user-ID されているならば、 +特別の注意が払われる。 .BR setuid () -´Ø¿ô¤Ï¸Æ¤Ó½Ð¤·¼Ô¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤ò¥Á¥§¥Ã¥¯¤·¡¢ -¤½¤ì¤¬¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼¤Ê¤é¤Ð¡¢ -¥×¥í¥»¥¹¤Ë´ØÏ¢¤¹¤ëÁ´¤Æ¤Î¥æ¡¼¥¶¡¼ ID ¤Ë +関数は呼び出し者の実効ユーザー ID をチェックし、 +それがスーパー・ユーザーならば、 +プロセスに関連する全てのユーザー ID に .I uid -¤òÀßÄꤹ¤ë¡£ -¤³¤ì¤¬¹Ô¤Ê¤ï¤ì¤¿¸å¤Ë¤Ï¥×¥í¥°¥é¥à¤¬ºÆ¤Ó¥ë¡¼¥È¤ÎÆø¢¤òÆÀ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +を設定する。 +これが行なわれた後にはプログラムが再びルートの特権を得ることはできない。 .PP -¤·¤¿¤¬¤Ã¤Æ¡¢set-user-ID-root ¥×¥í¥°¥é¥à¤Ç¡¢°ì»þŪ¤Ë¥ë¡¼¥ÈÆø¢¤ò²ò½ü¤·¡¢ -ÈóÆø¢¥æ¡¼¥¶¤Ç¤¢¤ë¤«¤Î¤è¤¦¤Ë¿¶Éñ¤¤¡¢¸å¤Ç¥ë¡¼¥È¸¢¸Â¤ò¤â¤¦°ìÅÙÆÀ¤è¤¦¤È -¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢ +したがって、set-user-ID-root プログラムで、一時的にルート特権を解除し、 +非特権ユーザであるかのように振舞い、後でルート権限をもう一度得ようと +する場合には、 .BR setuid () -¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£¤½¤Î¾ì¹ç¤Ë¤Ï¡¢ +を使うことができない。その場合には、 .BR seteuid (2) -¤ò»È¤¦É¬Íפ¬¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +を使う必要がある。 +.SH 返り値 +成功した場合は 0 が返される。エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EAGAIN .I uid -¤¬¸½ºß¤Î¥æ¡¼¥¶¡¼ ID ¤È¥Þ¥Ã¥Á¤»¤º¡¢¤³¤Î +が現在のユーザー ID とマッチせず、この .I uid -¤Ë¤è¤Ã¤Æ¥×¥í¥»¥¹¤¬¥ê¥½¡¼¥¹¾å¸Â +によってプロセスがリソース上限 .B RLIMIT_NPROC -¤òĶ¤¨¤¿¡£ +を超えた。 .TP .B EPERM -¥æ¡¼¥¶¡¼¤¬Æø¢¤ò»ý¤¿¤º -(Linux ¤Ç¤Ï +ユーザーが特権を持たず +(Linux では .B CAP_SETUID -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤¿¤º)¡¢ +ケーパビリティ (capability) を持たず)、 .I uid -¤¬¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â UID ¤Þ¤¿¤ÏÊݸ set-user-ID ¤È°ìÃפ·¤Ê¤¤¡£ -.SH ½àµò +が呼び出し元プロセスの実 UID または保存 set-user-ID と一致しない。 +.SH 準拠 SVr4, POSIX.1-2001. -4.4BSD ¤Î¥³¡¼¥ë¤È¤Ï´°Á´¤Ê¸ß´¹À­¤Ï¤Ê¤¤¡¢ -BSD ¤Î¥³¡¼¥ë¤Ï¼Â (real)¡¢Êݸ (saved)¡¢¼Â¸ú (effective) ID ¤ÎÁ´¤Æ¤òÀßÄꤹ¤ë¡£ -.\" SVr4 ¤Ë¤Ï¾¤Ë EINVAL ¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ -.SH Ãí°Õ -.SS Linux ¤Ç¤ÎÃí°Õ -Linux ¤Ï¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¡¦¥æ¡¼¥¶¡¼ ID ¤Î³µÇ°¤ò»ý¤Ä¡£ -Ä̾¤³¤ì¤Ï¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤ËÅù¤·¤¤¡£ +4.4BSD のコールとは完全な互換性はない、 +BSD のコールは実 (real)、保存 (saved)、実効 (effective) ID の全てを設定する。 +.\" SVr4 には他に EINVAL エラーについての記述がある。 +.SH 注意 +.SS Linux での注意 +Linux はファイル・システム・ユーザー ID の概念を持つ。 +通常、これは実効ユーザー ID に等しい。 .BR setuid () -¥³¡¼¥ë¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¡¦¥æ¡¼¥¶¡¼ ID ¤âÀßÄꤹ¤ë¡£ +コールは呼び出し元のプロセスのファイル・システム・ユーザー ID も設定する。 .BR setfsuid (2) -¤â»²¾È¤¹¤ë¤³¤È¡£ +も参照すること。 .PP .I uid -¤¬ÀΤμ¸ú uid ¤È°Û¤Ã¤Æ¤¤¤¿¾ì¹ç¡¢¥×¥í¥»¥¹¤Ï¥³¥¢¡¦¥À¥ó¥×¤¹¤ë¤³¤È¤ò -¶Ø»ß¤µ¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +が昔の実効 uid と異っていた場合、プロセスはコア・ダンプすることを +禁止される。 +.SH 関連項目 .BR getuid (2), .BR seteuid (2), .BR setfsuid (2), diff --git a/release/man2/setup.2 b/release/man2/setup.2 index 4c8f271a..36e20b08 100644 --- a/release/man2/setup.2 +++ b/release/man2/setup.2 @@ -40,52 +40,52 @@ .\" Updated Thu Mar 16 09:32:28 2000 .\" by Kentaro Shirakata .\" -.\"WORD: file systems ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -.\"WORD: root file system ¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -.\"WORD: superuser ¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼ -.\"WORD: user process ¥æ¡¼¥¶¡¼¥×¥í¥»¥¹ +.\"WORD: file systems ファイルシステム +.\"WORD: root file system ルートファイルシステム +.\"WORD: superuser スーパーユーザー +.\"WORD: user process ユーザープロセス .\" .TH SETUP 2 2008-12-03 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -setup \- ¥Ç¥Ð¥¤¥¹¤È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î½é´ü²½¤ò¹Ô¤¤¡¢ -¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Þ¥¦¥ó¥È¤ò¹Ô¤¦ -.SH ½ñ¼° +.SH 名前 +setup \- デバイスとファイルシステムの初期化を行い、 +ルートファイルシステムのマウントを行う +.SH 書式 .B #include .sp .B int setup(void); -.SH ÀâÌÀ +.SH 説明 .BR setup () -¤Ï +は .I linux/init/main.c -¤ÎÃæ¤Ç°ìÅÙ¤À¤±¸Æ¤Ð¤ì¤ë¡£ -¥«¡¼¥Í¥ëÆâÉô¤Î¥Ç¥Ð¥¤¥¹¤È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î½é´ü²½´Ø¿ô¤ò¸Æ¤Ó¡¢ -¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Þ¥¦¥ó¥È¤ò¹Ô¤¦¡£ +の中で一度だけ呼ばれる。 +カーネル内部のデバイスとファイルシステムの初期化関数を呼び、 +ルートファイルシステムのマウントを行う。 .PP -¥æ¡¼¥¶¡¼¥×¥í¥»¥¹¤«¤é¤Ï +ユーザープロセスからは .BR setup () -¤ò¸Æ¤Ó¤À¤¹¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -¥æ¡¼¥¶¡¼¥×¥í¥»¥¹¤«¤é¤Î¥¢¥¯¥»¥¹¤Ï¡¢¤¿¤È¤¨¤½¤Î¥×¥í¥»¥¹¤¬ -¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Æ¤â +を呼びだすことはできない。 +ユーザープロセスからのアクセスは、たとえそのプロセスが +スーパーユーザー権限を持っていても .B EPERM -¤ò¼õ¤±¼è¤ë¤³¤È¤Ë¤Ê¤ë¡£ -.SH ÊÖ¤êÃÍ +を受け取ることになる。 +.SH 返り値 .BR setup () -¤Ï¥æ¡¼¥¶¡¼¥×¥í¥»¥¹¤ËÂФ·¤Æ¾ï¤Ë \-1 ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +はユーザープロセスに対して常に \-1 を返す。 +.SH エラー .TP .B EPERM -¥æ¡¼¥¶¥×¥í¥»¥¹¤ËÂФ·¤Æ¤Ï¡¢¾ï¤Ë¤³¤Î¥¨¥é¡¼¤È¤Ê¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -Linux 2.1.121 °Ê¹ß¤Ç¤Ï¡¢¤â¤Ï¤ä¤³¤Î´Ø¿ô¤Ï¸ºß¤·¤Ê¤¤¡£ -.SH ½àµò -¤³¤Î´Ø¿ô¤Ï Linux ¤ËÆÃÍ­¤Î¤â¤Î¤Ç¤¢¤ê¡¢°Ü¿¢¤ò¹Íθ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï -ÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£¤½¤ì¤É¤³¤í¤«¡¢¤¢¤é¤æ¤ë¥×¥í¥°¥é¥à¤ÇÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ -¸Æ¤Ó½Ð¤·¼ê³¤­¤ÏÊѲ½¤·¤Æ¤­¤¿¡£ -¤¢¤ë»þ¤Ï +ユーザプロセスに対しては、常にこのエラーとなる。 +.SH バージョン +Linux 2.1.121 以降では、もはやこの関数は存在しない。 +.SH 準拠 +この関数は Linux に特有のものであり、移植を考慮したプログラムでは +用いるべきではない。それどころか、あらゆるプログラムで用いるべきではない。 +.SH 注意 +呼び出し手続きは変化してきた。 +ある時は .I setup () -¤Ï°ì¤Ä¤Î°ú¿ô +は一つの引数 .I "void *BIOS" -¤ò¼è¤Ã¤Æ¤ª¤ê¡¢¤Þ¤¿¤¢¤ë»þ¤Ë¤Ï +を取っており、またある時には .IR "int magic" -¤ò°ì¤Ä¤Î°ú¿ô¤È¤·¤Æ¼è¤Ã¤Æ¤¤¤¿¡£ +を一つの引数として取っていた。 diff --git a/release/man2/setxattr.2 b/release/man2/setxattr.2 index 9e862ef7..57d42b4f 100644 --- a/release/man2/setxattr.2 +++ b/release/man2/setxattr.2 @@ -29,13 +29,13 @@ .\" Translated Tue Jul 8 04:43:40 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: extended attributes ³Èĥ°À­ -.\"WORD: namespace ̾Á°¶õ´Ö +.\"WORD: extended attributes 拡張属性 +.\"WORD: namespace 名前空間 .\" .TH SETXATTR 2 2001-12-31 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -setxattr, lsetxattr, fsetxattr \- ³Èĥ°À­¤ÎÃͤòÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +setxattr, lsetxattr, fsetxattr \- 拡張属性の値を設定する +.SH 書式 .fam C .nf .B #include @@ -49,121 +49,121 @@ setxattr, lsetxattr, fsetxattr \- .BI " const void\ *" value ", size_t " size ", int " flags ); .fi .fam T -.SH ÀâÌÀ -³Èĥ°À­¤Ï¡¢inode (¥Õ¥¡¥¤¥ë¡¢¥Ç¥£¥ì¥¯¥È¥ê¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯Åù) ¤Ë -´ØÏ¢ÉÕ¤±¤é¤ì¤¿ +.SH 説明 +拡張属性は、inode (ファイル、ディレクトリ、シンボリックリンク等) に +関連付けられた .IR name :\c .I value -¤ÎÂФǤ¢¤ë¡£ -¤³¤ì¤é¤Ï¡¢¥·¥¹¥Æ¥à¾å¤Î¤¹¤Ù¤Æ¤Î inode ¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿Ä̾ï¤Î°À­ +の対である。 +これらは、システム上のすべての inode に関連付けられた通常の属性 .RB ( stat (2) -¤¬ÊÖ¤¹¥Ç¡¼¥¿) ¤ò³ÈÄ¥¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -³Èĥ°À­¤Î¥³¥ó¥»¥×¥È¤Ï +が返すデータ) を拡張するものである。 +拡張属性のコンセプトは .BR attr (5) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ +に書かれている。 .PP .BR setxattr () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÆâ¤Î»ØÄꤵ¤ì¤¿ +は、ファイルシステム内の指定された .I path -¤ËÂбþ¤¹¤ë¡¢Ì¾Á° +に対応する、名前 .I name -¤Î³Èĥ°À­¤ÎÃÍ +の拡張属性の値 .I value -¤òÀßÄꤹ¤ë¡£ +を設定する。 .I value -¤Î +の .I size -¤Ïɬ¤º»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は必ず指定しなければならない。 .PP .BR lsetxattr () -¤Ï +は .BR setxattr () -¤ÈƱ¤¸¤À¤¬¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¤Ë¡¢¥ê¥ó¥¯¤¬»²¾È¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë -¤Ç¤Ï¤Ê¤¯¡¢¥ê¥ó¥¯¤½¤Î¤â¤Î¤Î³Èĥ°À­¤òÀßÄꤹ¤ëÅÀ¤À¤±¤¬°Û¤Ê¤ë¡£ +と同じだが、シンボリックリンクの場合に、リンクが参照しているファイル +ではなく、リンクそのものの拡張属性を設定する点だけが異なる。 .PP .BR fsetxattr () -¤Ï +は .BR setxattr () -¤ÈƱ¤¸¤À¤¬¡¢ +と同じだが、 .I path -¤ÎÂå¤ï¤ê¤Ë +の代わりに .I fd -¤Ç»²¾È¤µ¤ì¤¿¥ª¡¼¥×¥óºÑ¤ß¥Õ¥¡¥¤¥ë¤Î¾ðÊó¤À¤±¤òÀßÄꤹ¤ëÅÀ¤¬°Û¤Ê¤ë +で参照されたオープン済みファイルの情報だけを設定する点が異なる .RI ( filedes -¤Ï +は .BR open (2) -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë)¡£ +によって返される)。 .PP -³Èĥ°À­¤Î̾Á° -¤ÏÉáÄ̤ΠNULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ç¤¢¤ë¡£ +拡張属性の名前 +は普通の NULL 終端された文字列である。 .I name -¤Ë¤Ï¡¢Ì¾Á°¶õ´Ö¤òɽ¤¹ÀÜƬ¼­ (prefix) ¤¬´Þ¤Þ¤ì¤ë¡£ -¸Ä¡¹¤Î inode ¤ËÂФ·¤Æ¡¢¸ß¤¤¤ËÆÈΩ¤Ê̾Á°¶õ´Ö¤¬Ê£¿ô¤¢¤Ã¤Æ¤â¤è¤¤¡£ -³Èĥ°À­¤ÎÃÍ +には、名前空間を表す接頭辞 (prefix) が含まれる。 +個々の inode に対して、互いに独立な名前空間が複数あってもよい。 +拡張属性の値 .I value -¤Ï¡¢¤¢¤ë°ìÄê¤ÎŤµ¤ÎǤ°Õ¤Î¥Æ¥­¥¹¥È¡¦¥Ç¡¼¥¿¤Þ¤¿¤Ï -¥Ð¥¤¥Ê¥ê¡¦¥Ç¡¼¥¿¤Î½¸¹ç¤Ç¤¢¤ë¡£ +は、ある一定の長さの任意のテキスト・データまたは +バイナリ・データの集合である。 .PP -Áàºî¤Î°ÕÌ£¤òÌÀ³Î¤Ë¤¹¤ë¤¿¤á¤Ë +操作の意味を明確にするために .I flags -°ú¤­¿ô¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +引き数を使用することができる。 .B XATTR_CREATE -¤Ï°À­¤ÎºîÀ®¤À¤±¤ò¹Ô¤¦¤³¤È¤ò»ØÄꤹ¤ë¡£ -»ØÄꤵ¤ì¤¿Ì¾Á°¤Î°À­¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¾ì¹ç¤Ï¼ºÇÔ¤¹¤ë¡£ +は属性の作成だけを行うことを指定する。 +指定された名前の属性がすでに存在する場合は失敗する。 .B XATTR_REPLACE -¤Ï°À­¤ÎÃÖ´¹¤À¤±¤ò¹Ô¤¦¤³¤È¤ò»ØÄꤹ¤ë¡£ -»ØÄꤵ¤ì¤¿Ì¾Á°¤Î°À­¤¬¤Þ¤À¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¼ºÇÔ¤¹¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï (¥Õ¥é¥°¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç)¡¢³Èĥ°À­¤ÏɬÍפʾì¹ç¤ÏºîÀ®¤µ¤ì¡¢ -°À­¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¾ì¹ç¤Ï°À­ÃͤÎÃÖ´¹¤ò¹Ô¤¦¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢ \-1 ¤¬ÊÖ¤µ¤ì¡¢ +は属性の置換だけを行うことを指定する。 +指定された名前の属性がまだ存在しない場合は失敗する。 +デフォルトでは (フラグを指定しない場合)、拡張属性は必要な場合は作成され、 +属性がすでに存在する場合は属性値の置換を行う。 +.SH 返り値 +成功した場合、 0 が返される。 +失敗した場合、 \-1 が返され、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +に適切な値がセットされる。 .PP .B XATTR_CREATE -¤¬»ØÄꤵ¤ì¡¢¤«¤Ä°À­¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢ +が指定され、かつ属性がすでに存在する場合、 .I errno -¤Ë +に .B EEXIST -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .B XATTR_REPLACE -¤¬»ØÄꤵ¤ì¡¢Â°À­¤¬¤Þ¤À¸ºß¤·¤Ê¤¤¾ì¹ç¡¢ +が指定され、属性がまだ存在しない場合、 .I errno -¤Ë +に .B ENOATTR -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .PP -³Èĥ°À­¤òµ­²±¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¥¹¥Ú¡¼¥¹¤¬»Ä¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +拡張属性を記憶するのに十分なスペースが残っていない場合、 .I errno -¤Ë +に .B ENOSPC -¤Þ¤¿¤Ï +または .B EDQUOT -(quota ¤Ë¤è¤ëÀ©¸Â¤¬¸¶°ø¤Î¾ì¹ç) ¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +(quota による制限が原因の場合) がセットされる。 .PP -³Èĥ°À­¤¬¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -¤â¤·¤¯¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ +拡張属性がそのファイルシステムでサポートされていない場合、 +もしくは無効になっている場合、 .I errno -¤Ë +に .B ENOTSUP -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .PP .BR stat (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÀâÌÀ¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ï -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤âŬÍѤµ¤ì¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë 2.4 °Ê¹ß¤Î Linux ¤ÇÍøÍѤǤ­¤ë¡£ -glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.3 °Ê¹ß¤Ç¹Ô¤ï¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ë¡£ -.\" .SH Ãø¼Ô +システムコールの説明に書かれているエラーは +これらのシステムコールにも適用される。 +.SH バージョン +これらのシステムコールはカーネル 2.4 以降の Linux で利用できる。 +glibc でのサポートはバージョン 2.3 以降で行われている。 +.SH 準拠 +これらのシステムコールは Linux 独自である。 +.\" .SH 著者 .\" Andreas Gruenbacher, .\" .RI < a.gruenbacher@computer.org > -.\" ¤È SGI XFS ³«È¯¥Á¡¼¥à, -.\" .RI < linux-xfs@oss.sgi.com >¡£ -.\" ¥Ð¥°¥ì¥Ý¡¼¥È¤ä¥³¥á¥ó¥È¤Ï¾åµ­¤Î¥¢¥É¥ì¥¹¤Þ¤ÇÁ÷¤Ã¤Æ²¼¤µ¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +.\" と SGI XFS 開発チーム, +.\" .RI < linux-xfs@oss.sgi.com >。 +.\" バグレポートやコメントは上記のアドレスまで送って下さい。 +.SH 関連項目 .BR getfattr (1), .BR setfattr (1), .BR getxattr (2), diff --git a/release/man2/sgetmask.2 b/release/man2/sgetmask.2 index a267a090..46cc8df9 100644 --- a/release/man2/sgetmask.2 +++ b/release/man2/sgetmask.2 @@ -26,57 +26,57 @@ .\" Translated 2007-10-16, Akihiro MOTOKI , LDP v2.66 .\" .TH SGETMASK 2 2007-07-05 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sgetmask, ssetmask \- ¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ÎÁàºî (ÇÑ»ßͽÄê) -.SH ½ñ¼° +.SH 名前 +sgetmask, ssetmask \- シグナルマスクの操作 (廃止予定) +.SH 書式 .B "long sgetmask(void);" .sp .BI "long ssetmask(long " newmask ); -.SH ÀâÌÀ -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ê¡¢ -¡Ö»ÈÍѤ·¤Ê¤¤¤³¤È¡×¡£ -Âå¤ï¤ê¤Ë +.SH 説明 +これらのシステムコールは廃止予定であり、 +「使用しないこと」。 +代わりに .BR sigprocmask (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +を使用すること。 .BR sgetmask () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊÖ¤¹¡£ +は、呼び出し元プロセスのシグナルマスクを返す。 .BR ssetmask () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ò +は、呼び出し元プロセスのシグナルマスクを .I newmask -¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤷ¡¢Êѹ¹Á°¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊÖ¤¹¡£ +で指定された値に設定し、変更前のシグナルマスクを返す。 -¤³¤ì¤éÆó¤Ä¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬°·¤¦¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ï¡¢ -ñ½ã¤Ê¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ë (¤³¤ÎÅÀ¤¬ +これら二つのシステムコールが扱うシグナルマスクは、 +単純なビットマスクである (この点が .BR sigprocmask (2) -¤Ç»ÈÍѤµ¤ì¤ë +で使用される .I sigset_t -¤È°Û¤Ê¤ë)¡£ -¤³¤ì¤é¤Î¥Þ¥¹¥¯¤òºîÀ®¤·¤¿¤ê¸¡ºº¤¹¤ë¤Ë¤Ï +と異なる)。 +これらのマスクを作成したり検査するには .BR sigmask (3) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ -.SH ÊÖ¤êÃÍ +を使用すること。 +.SH 返り値 .BR sgetmask () -¤Ï¾ï¤ËÀ®¸ù¤·¡¢¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊÖ¤¹¡£ +は常に成功し、シグナルマスクを返す。 .BR ssetmask () -¤Ï¾ï¤ËÀ®¸ù¤·¡¢Ä¾Á°¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¾ï¤ËÀ®¸ù¤¹¤ë¡£ -.SH ½àµò -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -glibc ¤Ï¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +は常に成功し、直前のシグナルマスクを返す。 +.SH エラー +これらのシステムコールは常に成功する。 +.SH 準拠 +これらのシステムコールは Linux 固有である。 +.SH 注意 +glibc はこれらのシステムコールに対するラッパー関数を提供していない。 .BR syscall (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +を使用すること。 -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ -31 ¤è¤êÂ礭¤¤¥·¥°¥Ê¥ëÈÖ¹æ (¤Ä¤Þ¤ê¡¢¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë) ¤ò°·¤¨¤Ê¤¤¡£ +これらのシステムコールは、 +31 より大きいシグナル番号 (つまり、リアルタイムシグナル) を扱えない。 .B SIGSTOP -¤ä +や .B SIGKILL -¤ò¥Ö¥í¥Ã¥¯¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +をブロックすることはできない。 +.SH 関連項目 .BR sigprocmask (2), .BR signal (7) diff --git a/release/man2/shmctl.2 b/release/man2/shmctl.2 index daa3ab0c..11823f55 100644 --- a/release/man2/shmctl.2 +++ b/release/man2/shmctl.2 @@ -49,23 +49,23 @@ .\" Updated & Modified 2005-10-08, Akihiro MOTOKI .\" Updated 2006-07-21, Akihiro MOTOKI, LDP v2.36 .\" -.\"WORD: shared memory ¶¦Í­¥á¥â¥ê -.\"WORD: segment ¥»¥°¥á¥ó¥È -.\"WORD: owner ½êÍ­¼Ô -.\"WORD: group ¥°¥ë¡¼¥× -.\"WORD: creator ºîÀ®¼Ô -.\"WORD: super-user ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ -.\"WORD: detach ʬΥ -.\"WORD: attach Éղà -.\"WORD: swap ¥¹¥ï¥Ã¥× -.\"WORD: identifier ¼±ÊÌ»Ò -.\"WORD: member ¥á¥ó¥Ð¡¼ -.\"WORD: feature test macro µ¡Ç½¸¡ºº¥Þ¥¯¥í +.\"WORD: shared memory 共有メモリ +.\"WORD: segment セグメント +.\"WORD: owner 所有者 +.\"WORD: group グループ +.\"WORD: creator 作成者 +.\"WORD: super-user スーパー・ユーザー +.\"WORD: detach 分離 +.\"WORD: attach 付加 +.\"WORD: swap スワップ +.\"WORD: identifier 識別子 +.\"WORD: member メンバー +.\"WORD: feature test macro 機能検査マクロ .\" .TH SHMCTL 2 2008-08-07 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -shmctl \- ¶¦Í­¥á¥â¥ê (shared memory) ¤òÀ©¸æ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +shmctl \- 共有メモリ (shared memory) を制御する +.SH 書式 .ad l .B #include .br @@ -73,357 +73,357 @@ shmctl \- .sp .BI "int shmctl(int " shmid ", int " cmd ", struct shmid_ds *" buf ); .ad b -.SH ÀâÌÀ +.SH 説明 .BR shmctl () -¤Ï¡¢¼±Ê̻Ҥ¬ +は、識別子が .I shmid -¤Î¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ËÂФ·¤Æ +の共有メモリ・セグメントに対して .I cmd -¤Ç»Ø¼¨¤·¤¿À©¸æÌ¿Îá¤ò¼Â¹Ô¤¹¤ë¡£ +で指示した制御命令を実行する。 .PP .I buf -°ú¤­¿ô¤Ï¡¢ \fIshmid_ds\fP ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤³¤Î¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë +引き数は、 \fIshmid_ds\fP 構造体へのポインタである。 +この構造体は \fI\fP で以下のように定義されている .PP .in +4n .nf struct shmid_ds { - struct ipc_perm shm_perm; /* ½êÍ­¸¢¤Èµö²Ä */ - size_t shm_segsz; /* ¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º (¥Ð¥¤¥È) */ - time_t shm_atime; /* ºÇ¸å¤ÎÉղà (attach) ¤Î»þ¹ï */ - time_t shm_dtime; /* ºÇ¸å¤ÎʬΥ (detach) ¤Î»þ¹ï */ - time_t shm_ctime; /* ºÇ¸å¤ËÊѹ¹¤¬¹Ô¤ï¤ì¤¿»þ¹ï */ - pid_t shm_cpid; /* ºîÀ®¼Ô (creator) ¤Î PID */ - pid_t shm_lpid; /* ºÇ¸å¤Î shmat(2)/shmdt(2) ¤Î PID */ - shmatt_t shm_nattch; /* ¸½ºßÉղ䵤ì¤Æ¤¤¤ë¿ô */ + struct ipc_perm shm_perm; /* 所有権と許可 */ + size_t shm_segsz; /* セグメントのサイズ (バイト) */ + time_t shm_atime; /* 最後の付加 (attach) の時刻 */ + time_t shm_dtime; /* 最後の分離 (detach) の時刻 */ + time_t shm_ctime; /* 最後に変更が行われた時刻 */ + pid_t shm_cpid; /* 作成者 (creator) の PID */ + pid_t shm_lpid; /* 最後の shmat(2)/shmdt(2) の PID */ + shmatt_t shm_nattch; /* 現在付加されている数 */ ... }; .fi .in .PP .I ipc_perm -¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë -(¶¯Ä´¤µ¤ì¤¿¥Õ¥£¡¼¥ë¥É¤Ï +構造体は \fI\fP で以下のように定義されている +(強調されたフィールドは .B IPC_SET -¤ò»È¤Ã¤ÆÀßÄê²Äǽ¤Ç¤¢¤ë): +を使って設定可能である): .PP .in +4n .nf struct ipc_perm { - key_t __key; /* shmget(2) ¤ËÍ¿¤¨¤é¤ì¤ë¥­¡¼ */ - uid_t \fBuid\fP; /* ½êÍ­¼Ô¤Î¼Â¸ú UID */ - gid_t \fBgid\fP; /* ½êÍ­¼Ô¤Î¼Â¸ú GID */ - uid_t cuid; /* ºîÀ®¼Ô¤Î¼Â¸ú UID */ - gid_t cgid; /* ºîÀ®¼Ô¤Î¼Â¸ú GID */ - unsigned short \fBmode\fP; /* \fBµö²Ä\fP + SHM_DEST ¤È - SHM_LOCKED ¥Õ¥é¥° */ - unsigned short __seq; /* ¥·¡¼¥±¥ó¥¹ÈÖ¹æ */ + key_t __key; /* shmget(2) に与えられるキー */ + uid_t \fBuid\fP; /* 所有者の実効 UID */ + gid_t \fBgid\fP; /* 所有者の実効 GID */ + uid_t cuid; /* 作成者の実効 UID */ + gid_t cgid; /* 作成者の実効 GID */ + unsigned short \fBmode\fP; /* \fB許可\fP + SHM_DEST と + SHM_LOCKED フラグ */ + unsigned short __seq; /* シーケンス番号 */ }; .fi .in .PP .I cmd -¤È¤·¤ÆÍ­¸ú¤ÊÃͤϰʲ¼¤ÎÄ̤ê: +として有効な値は以下の通り: .br .TP 10 .B IPC_STAT .I shmid -¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥«¡¼¥Í¥ë¥Ç¡¼¥¿¹½Â¤ÂΤξðÊó¤ò -\fIbuf\fP ¤Ç»Ø¤µ¤ì¤¿ +に関連づけられたカーネルデータ構造体の情報を +\fIbuf\fP で指された .I shmid_ds -¹½Â¤ÂΤ˥³¥Ô¡¼¤¹¤ë¡£ -¸Æ¤Ó½Ð¤·¸µ¤Ï¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ËÂФ¹¤ë -Æɤ߹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +構造体にコピーする。 +呼び出し元は共有メモリ・セグメントに対する +読み込み許可を持たなければならない。 .TP .B IPC_SET .I buf -¤Ë¤è¤Ã¤Æ»Ø¤µ¤ì¤ë +によって指される .I shmid_ds -¹½Â¤ÂΤΤ¤¤¯¤Ä¤«¤Î¥á¥ó¥Ð¡¼¤ÎÃͤò¡¢ -¤³¤Î¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥«¡¼¥Í¥ë¥Ç¡¼¥¿¹½Â¤ÂΤ˽ñ¤­¹þ¤ß¡¢ +構造体のいくつかのメンバーの値を、 +この共有メモリ・セグメントに関連づけられたカーネルデータ構造体に書き込み、 .I shm_ctime -¥á¥ó¥Ð¡¼¤â¹¹¿·¤¹¤ë¡£ -°Ê²¼¤Î¥Õ¥£¡¼¥ë¥É¤ÏÊѹ¹¤Ç¤­¤ë¡£ +メンバーも更新する。 +以下のフィールドは変更できる。 \fIshm_perm.uid\fP, \fIshm_perm.gid\fP, -\fIshm_perm.mode\fP (¤ÎºÇ²¼°Ì 9 ¥Ó¥Ã¥È)¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú UID ¤¬½êÍ­¼Ô +\fIshm_perm.mode\fP (の最下位 9 ビット)。 +呼び出したプロセスの実効 UID が所有者 .RI ( shm_perm.uid ) -¤Þ¤¿¤ÏºîÀ®¼Ô +または作成者 .RI ( shm_perm.cuid ) -¤È°ìÃפ¹¤ë¤«¡¢¸Æ¤Ó½Ð¤·¸µ¤¬Æø¢¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +と一致するか、呼び出し元が特権を持たなければならない。 .TP .B IPC_RMID -¥»¥°¥á¥ó¥È¤ËÇË´þºÑ¤ß¤Î¥Þ¡¼¥¯¤òÉÕ¤±¤ë¡£ -¥»¥°¥á¥ó¥È¤Ï¡¢¼ÂºÝ¤Ë¤ÏºÇ¸å¥×¥í¥»¥¹¤¬¥»¥°¥á¥ó¥È¤òʬΥ¤·¤¿ (´ØÏ¢¤¹¤ë +セグメントに破棄済みのマークを付ける。 +セグメントは、実際には最後プロセスがセグメントを分離した (関連する .I shmid_ds -¹½Â¤ÂΤΠ+構造体の .I shm_nattch -¥á¥ó¥Ð¡¼¤¬ 0 ¤Ë¤Ê¤Ã¤¿) ¸å¤Ç¤Î¤ßÇË´þ¤µ¤ì¤ë¡£ -¸Æ¤Ó½Ð¤·¸µ¤Ï½êÍ­¼Ô¤«ºîÀ®¼Ô¤Ç¤¢¤ë¤«¡¢Æø¢¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥»¥°¥á¥ó¥È¤ËÇË´þ¤Î¥Þ¡¼¥¯¤¬ÉÕ¤±¤é¤ì¤ë¤È¡¢ -´ØÏ¢¤¹¤ë¥Ç¡¼¥¿¹½Â¤ÂΤˤª¤¤¤Æ +メンバーが 0 になった) 後でのみ破棄される。 +呼び出し元は所有者か作成者であるか、特権を持たなければならない。 +セグメントに破棄のマークが付けられると、 +関連するデータ構造体において .I shm_perm.mode -¥Õ¥£¡¼¥ë¥É¤Î (ɸ½à¤Ç¤Ï¤Ê¤¤) +フィールドの (標準ではない) .B SHM_DEST -¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤ë¡£ -¤³¤Î¥Ç¡¼¥¿¹½Â¤ÂÎ¤Ï +フラグが設定される。 +このデータ構造体は .B IPC_STAT -¤Ç¼èÆÀ¤µ¤ì¤ë¡£ +で取得される。 .PP -¸Æ¤Ó½Ð¤·¸µ¤ÏºÇ½ªÅª¤Ë¤Ï¥»¥°¥á¥ó¥È¤ò˺¤ì¤º¤ËÇË´þ\fI¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤\fP¡£ -¤½¤¦¤Ç¤Ê¤ì¤Ð¡¢¥Õ¥©¡¼¥ë¥È (fault) ¤µ¤ì¤¿¥Ú¡¼¥¸¤Ï -¥á¥â¥ê¤«¥¹¥ï¥Ã¥× (swap) ¤Ë»Ä¤ê³¤±¤ë¡£ +呼び出し元は最終的にはセグメントを忘れずに破棄\fIしなければならない\fP。 +そうでなれば、フォールト (fault) されたページは +メモリかスワップ (swap) に残り続ける。 .TP 10 -.BR IPC_INFO " (Linux ¸ÇÍ­)" -¥·¥¹¥Æ¥àÁ´ÂΤǤζ¦Í­¥á¥â¥ê¤ÎÀ©¸Â¤È¥Ñ¥é¥á¡¼¥¿¤Ë´Ø¤¹¤ë¾ðÊó¤ò¡¢ +.BR IPC_INFO " (Linux 固有)" +システム全体での共有メモリの制限とパラメータに関する情報を、 .I buf -¤¬»Ø¤¹¹½Â¤ÂΤËÆþ¤ì¤ÆÊÖ¤¹¡£ -¤³¤Î¹½Â¤ÂÎ¤Ï +が指す構造体に入れて返す。 +この構造体は .I shminfo -·¿¤Ç¤¢¤ë (¤½¤Î¤¿¤á¥­¥ã¥¹¥È¤¬É¬ÍפǤ¢¤ë)¡£ +型である (そのためキャストが必要である)。 .I shminfo -¤Ï +は .B _GNU_SOURCE -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë +機能検査マクロが定義された場合に .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë: +で以下のように定義される: .nf .in +4n struct shminfo { - unsigned long shmmax; /* ºÇÂ祻¥°¥á¥ó¥È¥µ¥¤¥º */ - unsigned long shmmin; /* ºÇ¾®¥»¥°¥á¥ó¥È¥µ¥¤¥º¡£ - ¾ï¤Ë 1 */ - unsigned long shmmni; /* ºÇÂ祻¥°¥á¥ó¥È¿ô */ - unsigned long shmseg; /* ¥×¥í¥»¥¹¤¬ÉղäǤ­¤ë - ¥»¥°¥á¥ó¥È¤ÎºÇÂç¿ô¡£ - ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */ - unsigned long shmall; /* ¶¦Í­¥á¥â¥ê¤ÎºÇÂç¥Ú¡¼¥¸¿ô¡£ - ¥·¥¹¥Æ¥àÁ´ÂΤǤÎÃÍ */ + unsigned long shmmax; /* 最大セグメントサイズ */ + unsigned long shmmin; /* 最小セグメントサイズ。 + 常に 1 */ + unsigned long shmmni; /* 最大セグメント数 */ + unsigned long shmseg; /* プロセスが付加できる + セグメントの最大数。 + カーネル内では未使用 */ + unsigned long shmall; /* 共有メモリの最大ページ数。 + システム全体での値 */ }; .in .fi -ÀßÄê +設定 .IR shmmni , .IR shmmax , .I shmall -¤Ï +は .I /proc -¤Ë¤¢¤ëƱ¤¸Ì¾Á°¤Î¥Õ¥¡¥¤¥ë·Ðͳ¤ÇÊѹ¹²Äǽ¤Ç¤¢¤ë¡£ -¾Ü¤·¤¯¤Ï +にある同じ名前のファイル経由で変更可能である。 +詳しくは .BR proc (5) -¤ò»²¾È¡£ +を参照。 .TP -.BR SHM_INFO " (Linux ¸ÇÍ­)" -¶¦Í­¥á¥â¥ê¤¬¾ÃÈñ¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à»ñ¸»¤Ë´Ø¤¹¤ë¾ðÊó¤ò -³ÊǼ¤·¤¿ +.BR SHM_INFO " (Linux 固有)" +共有メモリが消費しているシステム資源に関する情報を +格納した .I shm_info -¹½Â¤ÂΤòÊÖ¤¹¡£ -¤³¤Î¹½Â¤ÂΤϡ¢ +構造体を返す。 +この構造体は、 .B _GNU_SOURCE -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë +機能検査マクロが定義された場合に .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë: +で以下のように定義される: .nf .in +4n struct shm_info { - int used_ids; /* ¸½ºß¸ºß¤¹¤ë¥»¥°¥á¥ó¥È¿ô */ - unsigned long shm_tot; /* ¶¦Í­¥á¥â¥ê¤Î¥Ú¡¼¥¸Áí¿ô */ - unsigned long shm_rss; /* ¥á¥â¥ê¾å¤Ë¤¢¤ë (¥¹¥ï¥Ã¥×¤µ¤ì¤Æ - ¤¤¤Ê¤¤) ¶¦Í­¥á¥â¥ê¥Ú¡¼¥¸¿ô */ - unsigned long shm_swp; /* ¥¹¥ï¥Ã¥×¤µ¤ì¤Æ¤¤¤ë¶¦Í­¥á¥â¥ê - ¥Ú¡¼¥¸¿ô */ + int used_ids; /* 現在存在するセグメント数 */ + unsigned long shm_tot; /* 共有メモリのページ総数 */ + unsigned long shm_rss; /* メモリ上にある (スワップされて + いない) 共有メモリページ数 */ + unsigned long shm_swp; /* スワップされている共有メモリ + ページ数 */ unsigned long swap_attempts; - /* Linux 2.4 °Ê¹ß¤Ç¤Ï̤»ÈÍÑ */ + /* Linux 2.4 以降では未使用 */ unsigned long swap_successes; - /* Linux 2.4 °Ê¹ß¤Ç¤Ï̤»ÈÍÑ */ + /* Linux 2.4 以降では未使用 */ }; .in .fi .TP -.BR SHM_STAT " (Linux ¸ÇÍ­)" +.BR SHM_STAT " (Linux 固有)" .B IPC_STAT -¤ÈƱ¤¸¤¯ +と同じく .I shmid_ds -¹½Â¤ÂΤòÊÖ¤¹¡£ -⤷¡¢ +構造体を返す。 +但し、 .I shmid -°ú¤­¿ô¤Ï¡¢¥»¥°¥á¥ó¥È¼±Ê̻ҤǤϤʤ¯¡¢¥·¥¹¥Æ¥à¾å¤ÎÁ´¤Æ¤Î¶¦Í­¥á¥â¥ê -¥»¥°¥á¥ó¥È¤Ë´Ø¤¹¤ë¾ðÊó¤ò´ÉÍý¤¹¤ë¥«¡¼¥Í¥ë¤ÎÆâÉôÇÛÎó¤Ø¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹ -¤Ç¤¢¤ë¡£ +引き数は、セグメント識別子ではなく、システム上の全ての共有メモリ +セグメントに関する情報を管理するカーネルの内部配列へのインデックス +である。 .PP -¸Æ¤Ó½Ð¤·¸µ¤Ï¡¢\fIcmd\fP ¤Ë°Ê²¼¤ÎÃͤò»ØÄꤹ¤ë¤³¤È¤Ç¡¢¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤¬ -¥¹¥ï¥Ã¥×¤µ¤ì¤ë¤³¤È¤òËɻߤ·¤¿¤ê¡¢µö²Ä¤·¤¿¤ê¤Ç¤­¤ë: +呼び出し元は、\fIcmd\fP に以下の値を指定することで、共有メモリ・セグメントが +スワップされることを防止したり、許可したりできる: .br .TP 10 -.BR SHM_LOCK " (Linux ¸ÇÍ­)" -¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ò¥¹¥ï¥Ã¥×¤¹¤ë¤³¤È¤òËɻߤ¹¤ë¡£ -¥í¥Ã¥¯¤¬Í­¸ú¤Ë¤Ê¤Ã¤¿¸å¡¢¸Æ¤Ó½Ð¤·¸µ¤Ï¡¢ -¸ºß¤¹¤ë¤³¤È¤¬Í׵ᤵ¤ì¤¿Á´¤Æ¤Î¥Ú¡¼¥¸¤ò¥Õ¥©¡¼¥ë¥È¤µ¤»¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥»¥°¥á¥ó¥È¤¬¥í¥Ã¥¯¤µ¤ì¤ë¤È¡¢ -´ØÏ¢¤¹¤ë¥Ç¡¼¥¿¹½Â¤ÂΤˤª¤¤¤Æ +.BR SHM_LOCK " (Linux 固有)" +共有メモリ・セグメントをスワップすることを防止する。 +ロックが有効になった後、呼び出し元は、 +存在することが要求された全てのページをフォールトさせなければならない。 +セグメントがロックされると、 +関連するデータ構造体において .I shm_perm.mode -¥Õ¥£¡¼¥ë¥É¤Î (ɸ½àŪ¤Ç¤Ï¤Ê¤¤) +フィールドの (標準的ではない) .B SHM_LOCKED -¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤ë¡£ -¤³¤Î¥Ç¡¼¥¿¹½Â¤ÂÎ¤Ï +フラグが設定される。 +このデータ構造体は .B IPC_STAT -¤Ç¼èÆÀ¤µ¤ì¤ë¡£ +で取得される。 .TP -.BR SHM_UNLOCK " (Linux ¸ÇÍ­)" -¥»¥°¥á¥ó¥È¤Î¥í¥Ã¥¯¤ò²ò½ü¤·¡¢¥¹¥ï¥Ã¥×¡¦¥¢¥¦¥È¤¹¤ë¤³¤È¤ò²Äǽ¤Ë¤¹¤ë¡£ +.BR SHM_UNLOCK " (Linux 固有)" +セグメントのロックを解除し、スワップ・アウトすることを可能にする。 .PP -2.6.10 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢Æø¢¥×¥í¥»¥¹¤À¤±¤¬ +2.6.10 より前のカーネルでは、特権プロセスだけが .B SHM_LOCK -¤È +と .B SHM_UNLOCK -¤òÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤¿¡£ -2.6.10 °Ê¹ß¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ÈóÆø¢¥×¥í¥»¥¹¤Ç¤¢¤Ã¤Æ¤â¼¡¤Î¾ò·ï¤òËþ¤¿¤»¤Ð -¤³¤ì¤é¤ÎÁàºî¤òÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤½¤Î¾ò·ï¤È¤Ï¡¢¥×¥í¥»¥¹¤Î¼Â¸ú UID -¤¬¤½¤Î¥»¥°¥á¥ó¥È¤Î½êÍ­¼Ô¤â¤·¤¯¤ÏºîÀ®¼Ô¤Î UID ¤È°ìÃפ·¡¢ +を利用することができた。 +2.6.10 以降のカーネルでは、非特権プロセスであっても次の条件を満たせば +これらの操作を利用することができる。その条件とは、プロセスの実効 UID +がそのセグメントの所有者もしくは作成者の UID と一致し、 .RB ( SHM_LOCK -¤Î¾ì¹ç¤Ë¤Ï) ¥í¥Ã¥¯¤¹¤ë¥á¥â¥ê¤Î¹ç·×¤¬ +の場合には) ロックするメモリの合計が .B RLIMIT_MEMLOCK -¥ê¥½¡¼¥¹¾å¸Â +リソース上限 .RB ( setrlimit (2) -»²¾È) ¤ÎÈÏ°ÏÆâ¤ËÆþ¤Ã¤Æ¤¤¤ë¤³¤È¤Ç¤¢¤ë¡£ +参照) の範囲内に入っていることである。 .\" There was some weirdness in 2.6.9: SHM_LOCK and SHM_UNLOCK could .\" be applied to a segment, regardless of ownership of the segment. .\" This was a botch-up in the move to RLIMIT_MEMLOCK, and was fixed .\" in 2.6.10. MTK, May 2005 -.SH ÊÖ¤êÃÍ +.SH 返り値 .B IPC_INFO -¤È +と .B SHM_INFO -Áàºî¤Ï¡¢À®¸ù¤¹¤ë¤È¡¢Á´¤Æ¤Î¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤Ë´Ø¤¹¤ë¾ðÊó¤ò -´ÉÍý¤·¤Æ¤¤¤ë¥«¡¼¥Í¥ë¤ÎÆâÉôÇÛÎó¤Î»ÈÍÑÃ楨¥ó¥È¥ê¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Î -¤¦¤ÁºÇÂçÃͤòÊÖ¤¹ -(¤³¤Î¾ðÊó¤Ï¡¢¥·¥¹¥Æ¥à¤ÎÁ´¤Æ¤Î¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤Ë´Ø¤¹¤ë¾ðÊó¤ò -¼èÆÀ¤¹¤ë¤¿¤á¤Ë¡¢ +操作は、成功すると、全ての共有メモリセグメントに関する情報を +管理しているカーネルの内部配列の使用中エントリのインデックスの +うち最大値を返す +(この情報は、システムの全ての共有メモリセグメントに関する情報を +取得するために、 .B SHM_STAT -Áàºî¤ò·«¤êÊÖ¤·¼Â¹Ô¤¹¤ëºÝ¤Ë»ÈÍѤǤ­¤ë)¡£ +操作を繰り返し実行する際に使用できる)。 .B SHM_STAT -Áàºî¤Ï¡¢À®¸ù¤¹¤ë¤È¡¢ +操作は、成功すると、 .I shmid -¤Ç»ØÄꤵ¤ì¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»ý¤Ä¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤Î¼±Ê̻ҤòÊÖ¤¹¡£ -¾¤ÎÁàºî¤Ï¡¢À®¸ù¤Î¾ì¹ç 0 ¤òÊÖ¤¹¡£ +で指定されたインデックスを持つ共有メモリセグメントの識別子を返す。 +他の操作は、成功の場合 0 を返す。 -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +エラーの場合は \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切に設定する。 +.SH エラー .TP .B EACCES -\fBIPC_STAT\fP ¤Þ¤¿¤Ï \fBSHM_STAT\fP ¤¬Í׵ᤵ¤ì¡¢ -\fIshm_perm.mode\fP ¤¬ +\fBIPC_STAT\fP または \fBSHM_STAT\fP が要求され、 +\fIshm_perm.mode\fP が .I shmid -¤Ø¤ÎÆɤ߹þ¤ß¥¢¥¯¥»¥¹¤òµö¤·¤Æ¤ª¤é¤º¡¢ -¤«¤Ä¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬ +への読み込みアクセスを許しておらず、 +かつ呼び出したプロセスが .B CAP_IPC_OWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +ケーパビリティ (capability) を持っていない。 .TP .B EFAULT .I cmd -°ú¤­¿ô¤Ë +引き数に .B IPC_SET -¤« +か .B IPC_STAT -¤¬»ØÄꤵ¤ì¤¿¤¬ +が指定されたが .I buf -¤Ç»Ø¤µ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¡£ +で指されているアドレスにアクセスできない。 .TP .B EIDRM -\fIshmid\fP ¤¬ºï½ü (remove) ¤µ¤ì¤¿¼±ÊÌ»Ò (identifier) ¤ò»Ø¤·¤Æ¤¤¤ë¡£ +\fIshmid\fP が削除 (remove) された識別子 (identifier) を指している。 .TP .B EINVAL -\fIshmid\fP ¤¬Í­¸ú¤Ê¼±Ê̻ҤǤʤ¤¤«¡¢ -\fIcmd\fP ¤¬Í­¸ú¤Ê¥³¥Þ¥ó¥É¤Ç¤Ê¤¤¡£ -¤â¤·¤¯¤Ï¡¢ +\fIshmid\fP が有効な識別子でないか、 +\fIcmd\fP が有効なコマンドでない。 +もしくは、 .B SHM_STAT -Áàºî¤Î¾ì¹ç¤Ë¡¢ +操作の場合に、 .I shmid -¤Ç»ØÄꤵ¤ì¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹Ãͤ¬¸½ºß̤»ÈÍѤÎÇÛÎó¤Î¥¹¥í¥Ã¥È¤ò»²¾È¤·¤Æ¤¤¤¿¡£ +で指定されたインデックス値が現在未使用の配列のスロットを参照していた。 .TP .B ENOMEM -(2.6.9 °Ê¹ß¤Î¥«¡¼¥Í¥ë¤Ë¤ª¤¤¤Æ) +(2.6.9 以降のカーネルにおいて) .B SHM_LOCK -¤¬»ØÄꤵ¤ì¡¢ -¥í¥Ã¥¯¤µ¤ì¤ëͽÄê¤Î¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º -(¥í¥Ã¥¯¤µ¤ì¤ë¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Î¹ç·×¥Ð¥¤¥È¿ô) ¤¬¡¢ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶¡¼ ID ¤Ë¤Ä¤¤¤Æ¤ÎÀ©¸Â¤òĶ¤¨¤¿¡£ -¤³¤ÎÀ©¸Â¤Ï +が指定され、 +ロックされる予定のセグメントのサイズ +(ロックされる共有メモリ・セグメントの合計バイト数) が、 +呼び出したプロセスの実ユーザー ID についての制限を超えた。 +この制限は .B RLIMIT_MEMLOCK -¥½¥Õ¥È»ñ¸»À©¸Â¤ÇÄêµÁ¤µ¤ì¤ë +ソフト資源制限で定義される .RB ( setrlimit (2) -¤ò»²¾È)¡£ +を参照)。 .TP .B EOVERFLOW -\fBIPC_STAT\fP ¤¬»î¤ß¤é¤ì¡¢GID ¤ä UID ¤ÎÃͤ¬ +\fBIPC_STAT\fP が試みられ、GID や UID の値が .I buf -¤Ç»Ø¼¨¤µ¤ì¤ë¹½Â¤ÂΤ˳ÊǼ¤¹¤ë¤Ë¤ÏÂ礭²á¤®¤ë¡£ +で指示される構造体に格納するには大き過ぎる。 .TP .B EPERM -\fBIPC_SET\fP ¤« \fBIPC_RMID\fP ¤¬»î¤ß¤é¤ì¡¢ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ºîÀ®¼Ô +\fBIPC_SET\fP か \fBIPC_RMID\fP が試みられ、 +呼び出したプロセスの実効ユーザー ID が作成者 .RI ( shm_perm.cuid ) -¤Ç¤â½êÍ­¼Ô +でも所有者 .RI ( shm_perm.uid ) -¤Ç¤â¤Ê¤¯¡¢¥×¥í¥»¥¹¤¬Æø¢¤ò»ý¤¿¤Ê¤¤ (Linux ¤Ç¤Ï +でもなく、プロセスが特権を持たない (Linux では .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤)¡£ +ケーパビリティを持たない)。 -¤Þ¤¿¤Ï (2.6.9 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç) +または (2.6.9 より前のカーネルで) .B SHM_LOCK -¤Þ¤¿¤Ï +または .B SHM_UNLOCK -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤¬¡¢¥×¥í¥»¥¹¤¬Æø¢¤ò»ý¤¿¤Ê¤¤ -(Linux ¤Ç¤Ï +が指定されているが、プロセスが特権を持たない +(Linux では .B CAP_IPC_LOCK -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤)¡£ -(Linux 2.6.9 °Ê¹ß¤Ç¤Ï¡¢ +ケーパビリティを持たない)。 +(Linux 2.6.9 以降では、 .B RLIMIT_MEMLOCK -¤¬ 0 ¤Ç¸Æ¤Ó½Ð¤·¸µ¤¬Æø¢¤ò»ý¤¿¤Ê¤¤¾ì¹ç¤Ë¤â¡¢¤³¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë¡£) -.SH ½àµò +が 0 で呼び出し元が特権を持たない場合にも、このエラーが起こる。) +.SH 準拠 SVr4, POSIX.1-2001. -.\" SVr4 ¤Ë¤Ï¾¤Ë EINVAL, ENOENT, ENOSPC, ENOMEM, -.\" EEXIST ¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ -.\" SVr4 ¤ª¤è¤Ó SVID ¤Ë¤Ï EIDRM ¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ +.\" SVr4 には他に EINVAL, ENOENT, ENOSPC, ENOMEM, +.\" EEXIST エラーについての記述がある。 +.\" SVr4 および SVID には EIDRM エラーについての記述はない。 +.SH 注意 .BR IPC_INFO , .BR SHM_STAT , .B SHM_INFO -Áàºî¤Ï¡¢ +操作は、 .BR ipcs (1) -¥×¥í¥°¥é¥à¤Ç³ä¤êÅö¤ÆºÑ¤Î»ñ¸»¤Ë´Ø¤¹¤ë¾ðÊó¤òÄ󶡤¹¤ë¤¿¤á¤Ë -»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£¾­Íè¡¢¤³¤ì¤é¤ÎÁàºî¤ÏÊѹ¹¤µ¤ì¤¿¤ê¡¢ -/proc ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë°ÜÆ°¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +プログラムで割り当て済の資源に関する情報を提供するために +使用されている。将来、これらの操作は変更されたり、 +/proc ファイルシステムのインタフェースに移動されるかもしれない。 -Linux ¤Ç¤Ï¡¢ +Linux では、 .I shmctl(IPC_RMID) -¤ò»È¤Ã¤Æ¤¹¤Ç¤Ëºï½ü¥Þ¡¼¥¯¤¬¤Ä¤±¤é¤ì¤Æ¤¤¤ë¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ò -¤¢¤ë¥×¥í¥»¥¹¤¬Éղà (attach) +を使ってすでに削除マークがつけられている共有メモリ・セグメントを +あるプロセスが付加 (attach) .RB ( shmat (2)) -¤¹¤ë¤³¤È¤òµö²Ä¤·¤Æ¤¤¤ë¡£ -¤³¤Îµ¡Ç½¤Ï¾¤Î UNIX ¤Î¼ÂÁõ¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤¡£ -°Ü¿¢À­¤ò¹Íθ¤·¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤ì¤Ë°Í¸¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +することを許可している。 +この機能は他の UNIX の実装では利用できない。 +移植性を考慮したアプリケーションではこれに依存しないようにすべきである。 -\fI¹½Â¤ÂÎ shmid_ds\fP Æâ¤Î¿¤¯¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢ -Linux 2.2 ¤Ç¤Ï +\fI構造体 shmid_ds\fP 内の多くのフィールドは、 +Linux 2.2 では .I short -·¿¤À¤Ã¤¿¤¬¡¢Linux 2.4 ¤Ç¤Ï +型だったが、Linux 2.4 では .I long -·¿¤Ë¤Ê¤Ã¤¿¡£ -¤³¤ÎÍøÅÀ¤òÀ¸¤«¤¹¤Ë¤Ï¡¢glibc-2.1.91 °Ê¹ß¤Î´Ä¶­²¼¤Ç -ºÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ì¤Ð½½Ê¬¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë¤Ï¿·¤·¤¤·Á¼°¤Î¸Æ¤Ó½Ð¤·¤È¸Å¤¤·Á¼°¤Î¸Æ¤Ó½Ð¤·¤ò +型になった。 +この利点を生かすには、glibc-2.1.91 以降の環境下で +再コンパイルすれば十分である。 +カーネルは新しい形式の呼び出しと古い形式の呼び出しを .I cmd -Æâ¤Î +内の .B IPC_64 -¥Õ¥é¥°¤Ç¶èÊ̤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +フラグで区別する。 +.SH 関連項目 .BR mlock (2), .BR setrlimit (2), .BR shmget (2), diff --git a/release/man2/shmget.2 b/release/man2/shmget.2 index 138e02b0..9ecc1d16 100644 --- a/release/man2/shmget.2 +++ b/release/man2/shmget.2 @@ -44,26 +44,26 @@ .\" Updated 2005-11-04, Akihiro MOTOKI .\" Updated 2006-07-21, Akihiro MOTOKI, LDP v2.36 .\" -.\"WORD: shared memory ¶¦Í­¥á¥â¥ê -.\"WORD: segment ¥»¥°¥á¥ó¥È -.\"WORD: owner ½êÍ­¼Ô -.\"WORD: group ¥°¥ë¡¼¥× -.\"WORD: world ¾¿Í -.\"WORD: creator ºîÀ®¼Ô -.\"WORD: super-user ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ -.\"WORD: detach ʬΥ -.\"WORD: attach Éղà -.\"WORD: identifier ¼±ÊÌ»Ò -.\"WORD: member ¥á¥ó¥Ð¡¼ -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: effective group ID ¼Â¸ú¥°¥ë¡¼¥×ID -.\"WORD: policy Êý¿Ë -.\"WORD: implement ¼ÂÁõ +.\"WORD: shared memory 共有メモリ +.\"WORD: segment セグメント +.\"WORD: owner 所有者 +.\"WORD: group グループ +.\"WORD: world 他人 +.\"WORD: creator 作成者 +.\"WORD: super-user スーパー・ユーザー +.\"WORD: detach 分離 +.\"WORD: attach 付加 +.\"WORD: identifier 識別子 +.\"WORD: member メンバー +.\"WORD: effective user ID 実効ユーザーID +.\"WORD: effective group ID 実効グループID +.\"WORD: policy 方針 +.\"WORD: implement 実装 .\" .TH SHMGET 2 2006-05-02 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -shmget \- ¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ò³ä¤êÅö¤Æ¤ë -.SH ½ñ¼° +.SH 名前 +shmget \- 共有メモリ・セグメントを割り当てる +.SH 書式 .ad l .B #include .br @@ -71,252 +71,252 @@ shmget \- .sp .BI "int shmget(key_t " key ", size_t " size ", int " shmflg ); .ad b -.SH ÀâÌÀ +.SH 説明 .BR shmget () -¤Ï +は .I key -°ú¤­¿ô¤ËÂбþ¤¹¤ë¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Î¼±Ê̻ҤòÊÖ¤¹¡£ +引き数に対応する共有メモリ・セグメントの識別子を返す。 .I key -¤ÎÃͤ¬ +の値が .B IPC_PRIVATE -¤Î¾ì¹ç¡¢¤â¤·¤¯¤Ï +の場合、もしくは .I key -¤ËÂбþ¤¹¤ë¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤¬Â¸ºß¤»¤º¡¢ +に対応する共有メモリ・セグメントが存在せず、 .I shmflg -¤Ë +に .B IPC_CREAT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢ -¿·¤·¤¤¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤òºîÀ®¤¹¤ë¡£ -ºîÀ®¤µ¤ì¤ë¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Ï¡¢ +が指定されていた場合、 +新しい共有メモリ・セグメントを作成する。 +作成される共有メモリ・セグメントは、 .I size -°ú¤­¿ô¤ÎÃͤò +引き数の値を .B PAGE_SIZE -¤ÎÇÜ¿ô¤Ø¤ÈÀÚ¤ê¾å¤²¤¿ (round up) Â礭¤µ¤È¤Ê¤ë¡£ +の倍数へと切り上げた (round up) 大きさとなる。 .PP .I shmflg -¤Ë +に .B IPC_CREAT -¤È +と .B IPC_EXCL -¤ÎξÊý¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +の両方が指定された場合、 .I key -¤ËÂбþ¤¹¤ë¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤¬´û¤Ë¸ºß¤¹¤ë¤È¡¢ +に対応する共有メモリ・セグメントが既に存在すると、 .BR shmget () -¤Ï¼ºÇÔ¤·¡¢ +は失敗し、 .I errno -¤Ë +に .B EEXIST -¤¬ÀßÄꤵ¤ì¤ë (¤³¤ì¤Ï +が設定される (これは .BR open (2) -¤Ë +に .B O_CREAT | O_EXCL -¤ò»ØÄꤷ¤¿¾ì¹ç¤ÎÆ°ºî¤ÈƱ¤¸¤Ç¤¢¤ë)¡£ +を指定した場合の動作と同じである)。 .PP .I shmflg -¤Ï°Ê²¼¤ÎÆâÍƤ«¤é¹½À®¤µ¤ì¤ë: +は以下の内容から構成される: .TP 12 .B IPC_CREAT -¿·¤·¤¤¥»¥°¥á¥ó¥È¤òºîÀ®¤¹¤ë¡£¤³¤Î¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ +新しいセグメントを作成する。このフラグが指定されなかった場合、 .BR shmget () -¤Ï \fIkey\fP ¤ËÂбþ¤¹¤ë¥»¥°¥á¥ó¥È¤òõ¤·¡¢ -¥æ¡¼¥¶¤¬¤½¤Î¥»¥°¥á¥ó¥È¤Ë¥¢¥¯¥»¥¹¤¹¤ëµö²Ä¤¬¤¢¤ë¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ +は \fIkey\fP に対応するセグメントを探し、 +ユーザがそのセグメントにアクセスする許可があるかどうかをチェックする。 .TP .B IPC_EXCL -\fBIPC_CREAT\fP ¤È¶¦¤Ë»ÈÍѤ·¡¢¥»¥°¥á¥ó¥È¤¬´û¤Ë¸ºß¤·¤¿¾ì¹ç¤Ë¤Ï -¼ºÇÔ¤¹¤ë¤³¤È¤òÊݾڤ¹¤ë¡£ +\fBIPC_CREAT\fP と共に使用し、セグメントが既に存在した場合には +失敗することを保証する。 .TP .I mode_flags -(²¼°Ì 9 ¥Ó¥Ã¥È) -½êÍ­¼Ô¡¢¥°¥ë¡¼¥×¡¢Â¾¿Í (world) ¤Ø¤Îµö²Ä¤ò»ØÄꤹ¤ë¡£ -¤³¤ì¤é¤Î¥Ó¥Ã¥È¤Ï +(下位 9 ビット) +所有者、グループ、他人 (world) への許可を指定する。 +これらのビットは .BR open (2) -¤Î +の .I mode -°ú¤­¿ô¤ÈƱ¤¸·Á¼°¤ÇƱ¤¸°ÕÌ£¤ò»ý¤Ä¡£ -º£¤Î¤È¤³¤í¡¢¥·¥¹¥Æ¥à¤Ï¼Â¹Ô (execute) µö²Ä¤ò»²¾È¤·¤Ê¤¤¡£ +引き数と同じ形式で同じ意味を持つ。 +今のところ、システムは実行 (execute) 許可を参照しない。 .TP -.BR SHM_HUGETLB " (Linux 2.6 °Ê¹ß)" -"¥Ò¥å¡¼¥¸¥Ú¡¼¥¸ (huge page)" ¤ò»È¤¦¥»¥°¥á¥ó¥È¤ò³ä¤êÅö¤Æ¤ë¡£ -¾ÜºÙ¤Ê¾ðÊó¤Ï¡¢¥«¡¼¥Í¥ë¡¦¥½¡¼¥¹¤Î¥Õ¥¡¥¤¥ë +.BR SHM_HUGETLB " (Linux 2.6 以降)" +"ヒュージページ (huge page)" を使うセグメントを割り当てる。 +詳細な情報は、カーネル・ソースのファイル .I Documentation/vm/hugetlbpage.txt -¤ò»²¾È¡£ +を参照。 .TP -.BR SHM_NORESERVE " (Linux 2.6.15 °Ê¹ß)" -¤³¤Î¥Õ¥é¥°¤Ï¡¢ +.BR SHM_NORESERVE " (Linux 2.6.15 以降)" +このフラグは、 .BR mmap (2) -¤Î +の .B MAP_NORESERVE -¥Õ¥é¥°¤ÈƱ¤¸Ìò³ä¤ò²Ì¤¿¤¹¡£ -¤³¤Î¥»¥°¥á¥ó¥È¤ËÂФ¹¤ë¥¹¥ï¥Ã¥×¶õ´Ö¤ÎͽÌó¤ò¹Ô¤ï¤Ê¤¤¡£ -¥¹¥ï¥Ã¥×¶õ´Ö¤òͽÌó¤·¤¿¾ì¹ç¤Ï¡¢¤½¤Î¥»¥°¥á¥ó¥È¤ÎÊѹ¹¤¬É¬¤ºÀ®¸ù¤¹¤ë¤³¤È¤¬ -Êݾڤµ¤ì¤ë¡£¥¹¥ï¥Ã¥×¶õ´Ö¤ÎͽÌó¤ò¹Ô¤ï¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ÊªÍý¥á¥â¥ê¤Ë¶õ¤­¤¬ -¤Ê¤¤¤È½ñ¤­¹þ¤ß»þ¤Ë +フラグと同じ役割を果たす。 +このセグメントに対するスワップ空間の予約を行わない。 +スワップ空間を予約した場合は、そのセグメントの変更が必ず成功することが +保証される。スワップ空間の予約を行わなかった場合は、物理メモリに空きが +ないと書き込み時に .B SIGSEGV -¤ò¼õ¤±¼è¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +を受け取る可能性がある。 .BR proc (5) -¤Ë¤¢¤ë +にある .I /proc/sys/vm/overcommit_memory -¥Õ¥¡¥¤¥ë¤Ë´Ø¤¹¤ëµÄÏÀ¤â»²¾È¤Î¤³¤È¡£ +ファイルに関する議論も参照のこと。 .\" As at 2.6.17-rc2, this flag has no effect if SHM_HUGETLB was also .\" specified. .PP -¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤¬¿·¤¿¤ËºîÀ®¤µ¤ì¤ëºÝ¡¢ -¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ÎÆâÍÆ¤Ï 0 ¤Ç½é´ü²½¤µ¤ì¡¢ -´ØÏ¢¾ðÊó¤òÊÝ»ý¤¹¤ë¥Ç¡¼¥¿¹½Â¤ÂÎ +共有メモリ・セグメントが新たに作成される際、 +共有メモリ・セグメントの内容は 0 で初期化され、 +関連情報を保持するデータ構造体 .I shmid_ds -¤Ï°Ê²¼¤Î¤è¤¦¤Ë½é´ü²½¤µ¤ì¤ë¡£ +は以下のように初期化される。 .IP .I shm_perm.cuid -¤È +と .I shm_perm.uid -¤Ë¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú (effective) ¥æ¡¼¥¶¡¼ID ¤òÀßÄꤹ¤ë¡£ +に呼び出し元プロセスの実効 (effective) ユーザーID を設定する。 .IP .I shm_perm.cgid -¤È +と .I shm_perm.gid -¤Ë¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú¥°¥ë¡¼¥×ID ¤òÀßÄꤹ¤ë¡£ +に呼び出し元プロセスの実効グループID を設定する。 .IP .I shm_perm.mode -¤Î²¼°Ì 9 ¥Ó¥Ã¥È¤Ë +の下位 9 ビットに .I shmflg -¤Î²¼°Ì 9 ¥Ó¥Ã¥È¤òÀßÄꤹ¤ë¡£ +の下位 9 ビットを設定する。 .IP .I shm_segsz -¤Ë +に .I size -¤ÎÃͤòÀßÄꤹ¤ë¡£ +の値を設定する。 .IP .IR shm_lpid , .IR shm_nattch , .IR shm_atime , .I shm_dtime -¤Ë 0 ¤òÀßÄꤹ¤ë¡£ +に 0 を設定する。 .IP .I shm_ctime -¤Ë¸½ºß¤Î»þ¹ï¤òÀßÄꤹ¤ë¡£ +に現在の時刻を設定する。 .PP -¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤¬´û¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢¥¢¥¯¥»¥¹µö²Ä¤Î¸¡ºº¤È¡¢ -Ç˲õ (destruction) ¥Þ¡¼¥¯¤¬¤Ä¤±¤é¤ì¤Æ¤¤¤Ê¤¤¤«¤Î¥Á¥§¥Ã¥¯¤¬¹Ô¤ï¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢Í­¸ú¤Ê¥»¥°¥á¥ó¥È¼±ÊÌ»Ò +共有メモリ・セグメントが既に存在する場合、アクセス許可の検査と、 +破壊 (destruction) マークがつけられていないかのチェックが行われる。 +.SH 返り値 +成功した場合、有効なセグメント識別子 .I shmid -¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢ \-1 ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï +が返される。エラーの場合、 \-1 が返される。 +.SH エラー +失敗した場合は .I errno -¤¬°Ê²¼¤Î¤É¤ì¤«¤ËÀßÄꤵ¤ì¤ë: +が以下のどれかに設定される: .TP .B EACCES -¥æ¡¼¥¶¡¼¤Ï¤½¤Î¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Ø¤Î¥¢¥¯¥»¥¹µö²Ä¤ò»ý¤¿¤º¡¢ +ユーザーはその共有メモリ・セグメントへのアクセス許可を持たず、 .B CAP_IPC_OWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤â»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +ケーパビリティも持っていない。 .TP .B EEXIST .B IPC_CREAT | IPC_EXCL -¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¤¬¡¢¤½¤Î¥»¥°¥á¥ó¥È¤¬´û¤Ë¸ºß¤¹¤ë¡£ +が指定されていたが、そのセグメントが既に存在する。 .TP .B EINVAL -¿·¤·¤¤¥»¥°¥á¥ó¥È¤òºîÀ®¤·¤è¤¦¤È¤·¤¿ºÝ¤Ë -\fIsize\fP < \fBSHMMIN\fP ¤Þ¤¿¤Ï \fIsize\fP > \fBSHMMAX\fP ¤Ç¤¢¤Ã¤¿¡£ -¤â¤·¤¯¤Ï¡¢»ØÄꤵ¤ì¤¿¥­¡¼¤ËÂбþ¤¹¤ë¥»¥°¥á¥ó¥È¤¬´û¤Ë¸ºß¤·¤Æ¡¢¿·¤·¤¤ -¥»¥°¥á¥ó¥È¤òºîÀ®¤·¤è¤¦¤È¤Ï¤·¤Ê¤«¤Ã¤¿¤¬¡¢\fIsize\fP ¤¬Â¸ºß¤¹¤ë¥»¥°¥á¥ó¥È¤Î -¥µ¥¤¥º¤è¤ê¤âÂ礭¤«¤Ã¤¿¡£ +新しいセグメントを作成しようとした際に +\fIsize\fP < \fBSHMMIN\fP または \fIsize\fP > \fBSHMMAX\fP であった。 +もしくは、指定されたキーに対応するセグメントが既に存在して、新しい +セグメントを作成しようとはしなかったが、\fIsize\fP が存在するセグメントの +サイズよりも大きかった。 .TP .B ENFILE .\" [2.6.7] shmem_zero_setup()-->shmem_file_setup()-->get_empty_filp() -¥·¥¹¥Æ¥àÁ´ÂΤǥª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ÎÁí¿ô¤¬¾å¸Â¤Ë㤷¤¿¡£ +システム全体でオープンされているファイルの総数が上限に達した。 .TP .B ENOENT -»ØÄꤵ¤ì¤¿ \fIkey\fP ¤ËÂбþ¤¹¤ë¥»¥°¥á¥ó¥È¤¬Â¸ºß¤»¤º¡¢ +指定された \fIkey\fP に対応するセグメントが存在せず、 .B IPC_CREAT -¤â»ØÄꤵ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +も指定されていなかった。 .TP .B ENOMEM -¥»¥°¥á¥ó¥È¤Î´ÉÍý¾ðÊó (overhead) ¤Ë³ä¤êÅö¤Æ¤ë¥á¥â¥ê¤¬¤Ê¤«¤Ã¤¿¡£ +セグメントの管理情報 (overhead) に割り当てるメモリがなかった。 .TP .B ENOSPC -.\" motoki 2005-03-02 -- SHMMNI ¤Î°ÕÌ£¤ò¹Íθ¤·¤Æ°ÕÌõ -¥·¥¹¥Æ¥àÁ´ÂΤζ¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¿ô¤ÎÀ©¸Â +.\" motoki 2005-03-02 -- SHMMNI の意味を考慮して意訳 +システム全体の共有メモリ・セグメント数の制限 .RB ( SHMMNI ) -¤Ë㤷¤¿¡¢¤Þ¤¿¤ÏÍ׵ᤵ¤ì¤¿ +に達した、または要求された .I size -¤Î¥»¥°¥á¥ó¥È¤Î³ä¤êÅö¤Æ¤¬ -¥·¥¹¥Æ¥àÁ´ÂΤζ¦Í­¥á¥â¥ê¥µ¥¤¥º¤ÎÀ©¸Â +のセグメントの割り当てが +システム全体の共有メモリサイズの制限 .RB ( SHMALL ) -¤òĶ²á¤·¤¿¡£ +を超過した。 .TP .B EPERM .B SHM_HUGETLB -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¸Æ¤Ó½Ð¤·¸µ¤Ë¤Ï¸¢¸Â¤¬¤Ê¤«¤Ã¤¿ +フラグが指定されたが、呼び出し元には権限がなかった .RB ( CAP_IPC_LOCK -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿)¡£ -.SH ½àµò +ケーパビリティを持っていなかった)。 +.SH 準拠 SVr4, POSIX.1-2001. -.\" SVr4 ¤Ë¤ÏÄÉ²Ã¤Ç EEXIST ¥¨¥é¡¼¾õÂ֤ε­½Ò¤¬¤¢¤ë¡£ +.\" SVr4 には追加で EEXIST エラー状態の記述がある。 .B SHM_HUGETLB -¤Ï Linux ¤Ç¤Î³ÈÄ¥¤Ç¤¢¤ê¡¢°Ü¿¢À­¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ +は Linux での拡張であり、移植性はない。 +.SH 注意 .B IPC_PRIVATE -¤Ï¥Õ¥é¥°¤Ç¤Ï¤Ê¤¯ +はフラグではなく .I key_t -·¿¤Ç¤¢¤ë¡£ -¤³¤ÎÆÃÊ̤ÊÃͤ¬ +型である。 +この特別な値が .I key -¤Ë»ÈÍѤµ¤ì¤¿¾ì¹ç¤Ï¡¢ +に使用された場合は、 .BR shmget () -¤Ï +は .I shmflg -¤Î²¼°Ì 9 ¥Ó¥Ã¥È¤ò½ü¤¤¤¿Á´¤Æ¤ò̵»ë¤·¡¢ -(À®¸ù¤¹¤ì¤Ð) ¿·¤·¤¤¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤òºîÀ®¤¹¤ë¡£ +の下位 9 ビットを除いた全てを無視し、 +(成功すれば) 新しい共有メモリ・セグメントを作成する。 .PP .BR shmget () -¥³¡¼¥ë¤Ë±Æ¶Á¤¹¤ë¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È»ñ¸»¤ÎÀ©¸Â¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë: +コールに影響する共有メモリ・セグメント資源の制限は以下の通りである: .TP .B SHMALL -¥·¥¹¥Æ¥àÁ´ÂΤζ¦Í­¥á¥â¥ê¡¦¥Ú¡¼¥¸¤ÎºÇÂç¿ô -(Linux ¤Ç¤Ï¡¢¤³¤Î¾å¸ÂÃÍ¤Ï +システム全体の共有メモリ・ページの最大数 +(Linux では、この上限値は .I /proc/sys/kernel/shmall -·Ðͳ¤Ç»²¾È¤·¤¿¤ê¡¢Êѹ¹¤·¤¿¤ê¤Ç¤­¤ë)¡£ +経由で参照したり、変更したりできる)。 .TP .B SHMMAX -¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Î¥Ð¥¤¥Èñ°Ì¤ÎÂ礭¤µ¤Î¾å¸Â: Êý¿Ë°Í¸ -(Linux ¤Ç¤Ï¡¢¤³¤Î¾å¸ÂÃÍ¤Ï +共有メモリ・セグメントのバイト単位の大きさの上限: 方針依存 +(Linux では、この上限値は .I /proc/sys/kernel/shmmax -·Ðͳ¤Ç»²¾È¤·¤¿¤ê¡¢Êѹ¹¤·¤¿¤ê¤Ç¤­¤ë)¡£ +経由で参照したり、変更したりできる)。 .TP .B SHMMIN -¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Î¥Ð¥¤¥Èñ°Ì¤ÎÂ礭¤µ¤Î²¼¸Â: ¼ÂÁõ°Í¸ -(¸½ºß¤Ï 1 ¥Ð¥¤¥È¤À¤¬¡¢¼Â¼ÁŪ¤ÊºÇ¾®¥µ¥¤¥º¤Ï +共有メモリ・セグメントのバイト単位の大きさの下限: 実装依存 +(現在は 1 バイトだが、実質的な最小サイズは .B PAGE_SIZE -¤Ç¤¢¤ë)¡£ +である)。 .TP .B SHMMNI -¥·¥¹¥Æ¥àÁ´ÂΤζ¦Í­¥á¥â¥ê¡¼¤Î¿ô¤Î¾å¸Â: ¼ÂÁõ°Í¸ -(¸½ºß¤Ï 4096¡£Linux 2.3.99 ¤è¤êÁ°¤Ç¤Ï 128¡£ -Linux ¤Ç¤Ï¡¢¤³¤Î¾å¸ÂÃÍ¤Ï +システム全体の共有メモリーの数の上限: 実装依存 +(現在は 4096。Linux 2.3.99 より前では 128。 +Linux では、この上限値は .I /proc/sys/kernel/shmmni -·Ðͳ¤Ç»²¾È¤·¤¿¤ê¡¢Êѹ¹¤·¤¿¤ê¤Ç¤­¤ë)¡£ -.\" 2.4.x ¤È 2.6.8 ¤Î´Ö¤Î¥«¡¼¥Í¥ë¤Ë¤Ï¡¢SHMMNI ¤è¤ê°ì¤Ä¤Î¿¤¯¤Î -.\" ¥»¥°¥á¥ó¥È¤òºîÀ®¤Ç¤­¤ë¤È¤¤¤¦¥Ð¥°¤¬¤¢¤Ã¤¿¡£ -.\" ¤³¤Î /proc ¥Õ¥¡¥¤¥ë¤Ï Linux 2.2 °ÊÁ°¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤ -- MTK +経由で参照したり、変更したりできる)。 +.\" 2.4.x と 2.6.8 の間のカーネルには、SHMMNI より一つの多くの +.\" セグメントを作成できるというバグがあった。 +.\" この /proc ファイルは Linux 2.2 以前では利用できない -- MTK .PP -¥×¥í¥»¥¹Åö¤ê¤Î¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Î¸Ä¿ô¤ÎºÇÂçÃÍ +プロセス当りの共有メモリ・セグメントの個数の最大値 .RB ( SHMSEG ) -¤Ë´Ø¤¹¤ë¼ÂÁõ¾å¤ÎÀ©¸Â¤Ï¤Ê¤¤¡£ -.SS Linux ¤Ç¤ÎÃí°Õ -¥Ð¡¼¥¸¥ç¥ó 2.3.30 ¤Þ¤Ç¤Ï¡¢Linux ¤Ï -ºï½ü¤¬Í½Äꤵ¤ì¤Æ¤¤¤ë¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ËÂФ·¤Æ +に関する実装上の制限はない。 +.SS Linux での注意 +バージョン 2.3.30 までは、Linux は +削除が予定されている共有メモリ・セグメントに対して .BR shmget () -¤¬¹Ô¤ï¤ì¤ë¤È +が行われると .B EIDRM -¤òÊÖ¤·¤Æ¤¤¤¿¡£ -.SH ¥Ð¥° +を返していた。 +.SH バグ .B IPC_PRIVATE -¤È¤¤¤¦Ì¾Á°¤òÁª¤ó¤À¤Î¤Ï¤ª¤½¤é¤¯¼ºÇԤǤ¢¤í¤¦¡£ +という名前を選んだのはおそらく失敗であろう。 .B IPC_NEW -¤ÎÊý¤¬¤è¤êÌÀ³Î¤Ë¤½¤Îµ¡Ç½¤òɽ¤·¤Æ¤¤¤ë¤À¤í¤¦¡£ -.SH ´ØÏ¢¹àÌÜ +の方がより明確にその機能を表しているだろう。 +.SH 関連項目 .BR shmat (2), .BR shmctl (2), .BR shmdt (2), diff --git a/release/man2/shmop.2 b/release/man2/shmop.2 index 84a73d6e..a5f2fd7f 100644 --- a/release/man2/shmop.2 +++ b/release/man2/shmop.2 @@ -46,22 +46,22 @@ .\" Updated 2005-12-05, Akihiro MOTOKI, Catch up to LDP man-pages 2.16 .\" Updated 2006-04-14, Akihiro MOTOKI, Catch up to LDP man-pages 2.29 .\" -.\"WORD: shared memory ¶¦Í­¥á¥â¥ê -.\"WORD: segment ¥»¥°¥á¥ó¥È -.\"WORD: super-user ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ -.\"WORD: detach ʬΥ -.\"WORD: attach Éղà -.\"WORD: member ¥á¥ó¥Ð¡¼ -.\"WORD: implement ¼ÂÁõ -.\"WORD: page aligned ¥Ú¡¼¥¸¶­³¦¤Ë¹ç¤Ã¤¿ -.\"WORD: unaligned ¶­³¦°ãÈ¿ -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ -.\"WORD: parameter ¥Ñ¥é¥á¡¼¥¿¡¼ +.\"WORD: shared memory 共有メモリ +.\"WORD: segment セグメント +.\"WORD: super-user スーパー・ユーザー +.\"WORD: detach 分離 +.\"WORD: attach 付加 +.\"WORD: member メンバー +.\"WORD: implement 実装 +.\"WORD: page aligned ページ境界に合った +.\"WORD: unaligned 境界違反 +.\"WORD: descriptor ディスクリプター +.\"WORD: parameter パラメーター .\" .TH SHMOP 2 2008-06-03 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -shmat, shmdt \- ¶¦Í­¥á¥â¥ê (shared memory) ¤ÎÁàºî -.SH ½ñ¼° +.SH 名前 +shmat, shmdt \- 共有メモリ (shared memory) の操作 +.SH 書式 .nf .B #include .B #include @@ -70,238 +70,238 @@ shmat, shmdt \- .BI "int shmdt(const void *" shmaddr ); .fi -.SH ÀâÌÀ +.SH 説明 .BR shmat () -¤Ï +は .I shmid -¤Ç»ØÄꤵ¤ì¤¿¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È (shared memory segment) ¤ò -¥³¡¼¥ë¤·¤¿¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ËÉղà (attach) ¤¹¤ë¡£ -Éղ乤륢¥É¥ì¥¹¤Ï +で指定された共有メモリ・セグメント (shared memory segment) を +コールしたプロセスのアドレス空間に付加 (attach) する。 +付加するアドレスは .I shmaddr -¤Ë°Ê²¼¤Î¤É¤ì¤«¤Î·Á¼°¤Ç»ØÄꤹ¤ë: +に以下のどれかの形式で指定する: .LP .I shmaddr -¤¬ NULL ¤Ê¤é¤Ð¡¢¥·¥¹¥Æ¥à¤Ï¥»¥°¥á¥ó¥È¤òÉղ乤뤿¤á¤Î -ŬÀÚ¤Ê (»ÈÍѤµ¤ì¤Æ¤¤¤Ê¤¤) ¥¢¥É¥ì¥¹¤òÁªÂò¤¹¤ë¡£ +が NULL ならば、システムはセグメントを付加するための +適切な (使用されていない) アドレスを選択する。 .LP .I shmaddr -¤¬ NULL ¤Ç¤Ê¤¯ +が NULL でなく .B SHM_RND -¤¬ +が .I shmflg -¤Ë»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ +に指定されている場合は、 .I shmaddr -¤ò +を .B SHMLBA -¤ÎÇÜ¿ô¤Ø¤ÈÀÚ¤ê¼Î¤Æ¤¿ (rounding down) ¤Î¤ÈÅù¤·¤¤¥¢¥É¥ì¥¹¤ØÉղ乤롣 -¤½¤Î¾¤Î¾ì¹ç¤Ï +の倍数へと切り捨てた (rounding down) のと等しいアドレスへ付加する。 +その他の場合は .I shmaddr -¤ÏÉղäò¹Ô¤Ê¤¦¥¢¥É¥ì¥¹¤Ç¡¢¥Ú¡¼¥¸¶­³¦¤ò»Ø¤·¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ +は付加を行なうアドレスで、ページ境界を指している必要がある。 .PP .B SHM_RDONLY -¤¬ +が .I shmflg -¤Ë»ØÄꤵ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ï¡¢ -¥»¥°¥á¥ó¥È¤ÏÆɤ߹þ¤ßÀìÍѤËÉղ䵤졢¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥°¥á¥ó¥È¤Ø¤Î -Æɤ߹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¤½¤Î¥»¥°¥á¥ó¥È¤ÏÆɤ߹þ¤ß¤È½ñ¤­¹þ¤ß¤Î¤¿¤á¤ËÉղ䵤졢 -¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥°¥á¥ó¥È¤ËÆɤ߹þ¤ß¤È½ñ¤­¹þ¤ß¤Îµö²Ä¤ò»ý¤ÄɬÍפ¬¤¢¤ë¡£ -½ñ¤­¹þ¤ßÀìÍѤζ¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤È¤¤¤¦³µÇ°¤Ï¸ºß¤·¤Ê¤¤¡£ +に指定されていた場合は、 +セグメントは読み込み専用に付加され、プロセスはそのセグメントへの +読み込み許可を持たなければならない。 +そうでなければそのセグメントは読み込みと書き込みのために付加され、 +プロセスはそのセグメントに読み込みと書き込みの許可を持つ必要がある。 +書き込み専用の共有メモリ・セグメントという概念は存在しない。 .PP -(Linux ÆÃÍ­¤Î) +(Linux 特有の) .B SHM_REMAP -¥Õ¥é¥°¤¬ +フラグが .I shmflg -¤Ë»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢ -¥»¥°¥á¥ó¥È¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò´û¸¤Î¥Þ¥Ã¥Ô¥ó¥°¤ËÃÖ¤­´¹¤¨¤ë¡£ -¥Þ¥Ã¥Ô¥ó¥°¤ÎÈϰϤϡ¢ +に指定された場合は、 +セグメントのマッピングを既存のマッピングに置き換える。 +マッピングの範囲は、 .I shmaddr -¤«¤é»Ï¤Þ¤ê¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥ºÊ¬¤À¤±¤¢¤ë -(Ä̾ï +から始まりセグメントのサイズ分だけある +(通常 .B EINVAL -¥¨¥é¡¼¤Ï¡¢¤³¤Î¥¢¥É¥ì¥¹ÈϰϤ˥ޥåԥ󥰤¬´û¤Ë¸ºß¤¹¤ë¤¿¤á¤Ëµ¯¤ë)¡£ -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¾ì¹ç¤Ï¡¢ +エラーは、このアドレス範囲にマッピングが既に存在するために起る)。 +このフラグを指定する場合は、 .I shmaddr -¤¬ NULL ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +が NULL であってはならない。 .PP -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î +呼び出したプロセスの .BR brk (2) -¤ÎÃͤÏÉղäˤè¤Ã¤ÆÊѲ½¤·¤Ê¤¤¡£ -¤½¤Î¥»¥°¥á¥ó¥È¤Ï¥×¥í¥»¥¹¤¬½ªÎ» (exit) ¤·¤¿¤é¼«Æ°Åª¤ËʬΥ (detach) ¤µ¤ì¤ë¡£ -Ʊ¤¸¥»¥°¥á¥ó¥È¤ò¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¡¢Æɤ߹þ¤ßÀìÍѤª¤è¤ÓÆɤ߽ñ¤­Î¾ÍÑ -¤È¤·¤ÆÉղäǤ­¡¢¤Þ¤¿Ê£¿ô²óÉղ乤뤳¤È¤â¤Ç¤­¤ë¡£ +の値は付加によって変化しない。 +そのセグメントはプロセスが終了 (exit) したら自動的に分離 (detach) される。 +同じセグメントをプロセスのアドレス空間に、読み込み専用および読み書き両用 +として付加でき、また複数回付加することもできる。 .PP -À®¸ù¤·¤¿ +成功した .BR shmat () -¥³¡¼¥ë¤Ï¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Ë´ØÏ¢¤¹¤ë +コールは共有メモリ・セグメントに関連する .I shmid_ds -¹½Â¤ÂÎ +構造体 .RB ( shmctl (2) -¤ò»²¾È) ¤Î¥á¥ó¥Ð¡¼¤ò°Ê²¼¤Î¤è¤¦¤Ë¹¹¿·¤¹¤ë: +を参照) のメンバーを以下のように更新する: .IP .I shm_atime -¤Ë¤Ï¸½ºß¤Î»þ¹ï¤òÀßÄꤹ¤ë¡£ +には現在の時刻を設定する。 .IP .I shm_lpid -¤Ë¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤òÀßÄꤹ¤ë¡£ +には呼び出したプロセスのプロセス ID を設定する。 .IP .I shm_nattch -¤ò 1 Áý²Ã¤µ¤»¤ë¡£ +を 1 増加させる。 .PP .BR shmdt () -¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤«¤é +は呼び出したプロセスのアドレス空間から .I shmaddr -¤Ç»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤ËÇÛÃÖ¤µ¤ì¤¿¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤òʬΥ (detach) ¤¹¤ë¡£ -ʬΥ¤¹¤ë¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Ï¡¢¸½ºß +で指定されたアドレスに配置された共有メモリ・セグメントを分離 (detach) する。 +分離する共有メモリ・セグメントは、現在 .I shmaddr -¤ËÉղ䵤ì¤Æ¤¤¤ë¤â¤Î¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +に付加されているものでなければならない。 .I shmaddr -¤Ï¡¢¤½¤ì¤òÉղä·¤¿»þ¤Ë +は、それを付加した時に .BR shmat () -¤¬ÊÖ¤·¤¿ÃͤËÅù¤·¤¯¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +が返した値に等しくなければならない。 .PP -À®¸ù¤·¤¿ +成功した .BR shmdt () -¥³¡¼¥ë¤Ï¤½¤Î¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Ë´ØÏ¢¤¹¤ë +コールはその共有メモリ・セグメントに関連する .I shmid_ds -¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤ò°Ê²¼¤Î¤è¤¦¤Ë¹¹¿·¤¹¤ë: +構造体のメンバーを以下のように更新する: .IP .I shm_dtime -¤Ë¤Ï¸½ºß¤Î»þ¹ï¤¬ÀßÄꤵ¤ì¤ë¡£ +には現在の時刻が設定される。 .IP .I shm_lpid -¤Ë¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤¬ÀßÄꤵ¤ì¤ë¡£ +には呼び出したプロセスのプロセス ID が設定される。 .IP .I shm_nattch -¤ò 1 ¸º¾¯¤µ¤»¤ë¡£ -¤â¤· 0 ¤Ë¤Ê¤ê¡¢ºï½ü¥Þ¡¼¥¯¤¬¤¢¤Ã¤¿¾ì¹ç¤Ï -¤½¤Î¥»¥°¥á¥ó¥È¤Ïºï½ü¤µ¤ì¤ë¡£ +を 1 減少させる。 +もし 0 になり、削除マークがあった場合は +そのセグメントは削除される。 .PP .BR fork (2) -¤·¤¿¸å¡¢»Ò¥×¥í¥»¥¹¤ÏÉղ䵤줿¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ò·Ñ¾µ¤¹¤ë¡£ +した後、子プロセスは付加された共有メモリ・セグメントを継承する。 .BR exec (2) -¤·¤¿¸å¡¢Á´¤Æ¤ÎÉղ䵤줿¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Ï¥×¥í¥»¥¹¤«¤éʬΥ¤µ¤ì¤ë¡£ +した後、全ての付加された共有メモリ・セグメントはプロセスから分離される。 .BR exit (2) -¤Ë¤ª¤¤¤Æ¡¢Á´¤Æ¤ÎÉղ䵤줿¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Ï¥×¥í¥»¥¹¤«¤éʬΥ¤µ¤ì¤ë¡£ +において、全ての付加された共有メモリ・セグメントはプロセスから分離される。 .PP -.SH ÊÖ¤êÃÍ +.SH 返り値 .BR shmat () -¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¡¢ -Éղ䵤줿¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Î¥¢¥É¥ì¥¹¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ +は、成功した場合、 +付加された共有メモリ・セグメントのアドレスを返す。 +エラーの場合、 .I (void\ *)\ \-1 -¤òÊÖ¤·¡¢ +を返し、 .I errno -¤Ë¥¨¥é¡¼¤Î¸¶°ø¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーの原因を示す値を設定する。 .BR shmdt () -¤Ï¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は、成功すると 0 を返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤Î¸¶°ø¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーの原因を示す値を設定する。 +.SH エラー .BR shmat () -¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +が失敗した場合、 .I errno -¤Ë°Ê²¼¤ÎÃͤΤɤ줫¤òÀßÄꤷ¤ÆÊÖ¤¹: +に以下の値のどれかを設定して返す: .TP .B EACCES -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ËÍ׵ᤵ¤ì¤¿¼ïÎà¤ÎÉղäËɬÍפʵö²Ä¤¬¤Ê¤¯¡¢ +呼び出したプロセスに要求された種類の付加に必要な許可がなく、 .B CAP_IPC_OWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤¬¤Ê¤¤¡£ +ケーパビリティ (capability) がない。 .TP .B EINVAL .I shmid -¤ÎÃͤ¬ÉÔÀµ¤Ç¤¢¤ë¡£ +の値が不正である。 .I shmaddr -¤ÎÃͤ¬¶­³¦°ãÈ¿ (unaligned) (¤Ä¤Þ¤ê¡¢¥Ú¡¼¥¸¶­³¦¤Ë¹ç¤Ã¤Æ¤ª¤é¤º¡¢ -\fBSHM_RND\fP ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤) ¤Þ¤¿¤Ï -¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +の値が境界違反 (unaligned) (つまり、ページ境界に合っておらず、 +\fBSHM_RND\fP が指定されていない) または +が不正である。 .I shmaddr -¤Ø¤Î¥»¥°¥á¥ó¥È¤ÎÉղä˼ºÇÔ¤·¤¿¡£ -¤Þ¤¿¤Ï +へのセグメントの付加に失敗した。 +または .B SHM_REMAP -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤¬¡¢ +が指定されているが、 .I shmaddr -¤¬ NULL ¤Ç¤¢¤Ã¤¿¡£ +が NULL であった。 .TP .B ENOMEM -¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ (descriptor) ¤ä¥Ú¡¼¥¸¡¦¥Æ¡¼¥Ö¥ë¤Î¤¿¤á¤Î¥á¥â¥ê¤ò -³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +ディスクリプター (descriptor) やページ・テーブルのためのメモリを +割り当てることができない。 .PP .BR shmdt () -¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +が失敗した場合、 .B EINVAL -¤Ï°Ê²¼¤Î¤è¤¦¤Ë¥»¥Ã¥È¤µ¤ì¤ë: +は以下のようにセットされる: .TP .B EINVAL .I shmaddr -¤ËÉղ䵤줿¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤¬Â¸ºß¤·¤Ê¤¤¡£ -¤â¤·¤¯¤Ï¡¢ -.\" ¤³¤Á¤é¤Ï 2.6.17-rc1 °Ê¹ß¤Î¾ì¹ç¤À¤±¡£ +に付加された共有メモリ・セグメントが存在しない。 +もしくは、 +.\" こちらは 2.6.17-rc1 以降の場合だけ。 .I shmaddr -¤¬¥Ú¡¼¥¸¶­³¦¤Ë¹ç¤Ã¤Æ¤¤¤Ê¤¤¡£ -.SH ½àµò +がページ境界に合っていない。 +.SH 準拠 SVr4, POSIX.1-2001. -.\" SVr4 ¤Ë¤Ï¾¤Ë EMFILE ¥¨¥é¡¼¾õÂ֤ˤĤ¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ +.\" SVr4 には他に EMFILE エラー状態についての記述がある。 -SVID 3 ¤Ç (¤¿¤Ö¤ó¤½¤ì¤è¤êÁ°¤À¤È»×¤¦¤¬) -\fIshmaddr\fP °ú¤­¿ô¤Î·¿¤Ï +SVID 3 で (たぶんそれより前だと思うが) +\fIshmaddr\fP 引き数の型は .I "char *" -¤«¤é +から .I "const void *" -¤Ë¡¢\fIshmat\fP() ¤ÎÊÖ¤êÃͤη¿¤Ï +に、\fIshmat\fP() の返り値の型は .I "char *" -¤«¤é +から .I "void *" -¤ËÊѹ¹¤µ¤ì¤¿ -(Linux ¤Ç¤Ï libc4 ¤È libc5 ¤Î¥×¥í¥È¥¿¥¤¥×¤Ï +に変更された +(Linux では libc4 と libc5 のプロトタイプは .I "char *" -¤Ç¤¢¤ê¡¢glibc2 ¤Î¥×¥í¥È¥¿¥¤¥×¤Ï +であり、glibc2 のプロトタイプは .I "void *" -¤Ç¤¢¤ë)¡£ -.SH Ãí°Õ -¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤òÉղ乤ë¾ì¹ç¤Î°Ü¿¢À­¤Î¹â¤¤ÊýË¡¤È¤·¤Æ¤Ï¡¢ +である)。 +.SH 注意 +共有メモリセグメントを付加する場合の移植性の高い方法としては、 .I shmaddr -¤ò NULL ¤Ë¤·¤Æ +を NULL にして .BR shmat () -¤ò»ÈÍѤ¹¤ë¤Î¤¬¤è¤¤¡£ -¤³¤Î¤è¤¦¤ÊÊýË¡¤ÇÉղ䵤ì¤ë¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤Ï¡¢ -¥×¥í¥»¥¹¤¬°Û¤Ê¤ì¤ÐÊ̤Υ¢¥É¥ì¥¹¤ËÉղ䵤ì¤ë¡¢¤È¤¤¤¦ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¤è¤Ã¤Æ¶¦Í­¥á¥â¥êÆâ¤Ç´ÉÍý¤µ¤ì¤ë¥Ý¥¤¥ó¥¿¤Ï¡¢ -ÀäÂÐ¥¢¥É¥ì¥¹¤Ç¤Ï¤Ê¤¯¡¢ -(°ìÈÌŪ¤Ë¤Ï¥»¥°¥á¥ó¥È¤Î³«»Ï¥¢¥É¥ì¥¹¤«¤é¤Î) -ÁêÂÐ¥¢¥É¥ì¥¹¤ÇºîÀ®¤¹¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +を使用するのがよい。 +このような方法で付加される共有メモリセグメントは、 +プロセスが異なれば別のアドレスに付加される、という点に注意すること。 +よって共有メモリ内で管理されるポインタは、 +絶対アドレスではなく、 +(一般的にはセグメントの開始アドレスからの) +相対アドレスで作成するべきである。 .PP -Linux ¤Ç¤Ï¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤Ë´û¤Ëºï½ü¥Þ¡¼¥¯¤¬ÉÕ¤±¤é¤ì¤Æ¤¤¤Æ¤â¡¢ -¤½¤Î¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤òÉղ乤뤳¤È¤¬¤Ç¤­¤ë¡£ -¤·¤«¤· POSIX.1-2001 ¤Ç¤Ï¤³¤Î¤è¤¦¤ÊÆ°ºî¤ò»ØÄꤷ¤Æ¤ª¤é¤º¡¢ -¾¤Î¿¤¯¤Î¼ÂÁõ¤â¤³¤ì¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +Linux では共有メモリセグメントに既に削除マークが付けられていても、 +その共有メモリセグメントを付加することができる。 +しかし POSIX.1-2001 ではこのような動作を指定しておらず、 +他の多くの実装もこれをサポートしていない。 .LP -°Ê²¼¤Î¥·¥¹¥Æ¥à¡¦¥Ñ¥é¥á¡¼¥¿¡¼¤Ï¡¢ +以下のシステム・パラメーターは、 .BR shmat () -¤Ë±Æ¶Á¤¹¤ë: +に影響する: .TP .\" FIXME A good explanation of the rationale for the existence .\" of SHMLBA would be useful here .B SHMLBA -¥»¥°¥á¥ó¥È¤Î¶­³¦¥¢¥É¥ì¥¹¤ÎºÇ¾®ÇÜ¿ô¡£¥Ú¡¼¥¸¶­³¦¤Ë¹ç¤Ã¤Æ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¸½ºß¤Î¼ÂÁõ¤Ç¤Ï +セグメントの境界アドレスの最小倍数。ページ境界に合ってなければならない。 +現在の実装では .B SHMLBA -¤ÎÃÍ¤Ï +の値は .B PAGE_SIZE -¤Ç¤¢¤ë¡£ +である。 .\" FIXME That last sentence isn't true for all Linux .\" architectures (i.e., SHMLBA != PAGE_SIZE for some architectures) .\" -- MTK, Nov 04 .PP -¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¡¢¥×¥í¥»¥¹¤´¤È¤Î -¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ÎºÇÂç¿ô +現在の実装では、プロセスごとの +共有メモリ・セグメントの最大数 .RB ( SHMSEG ) -¤Ë´Ø¤¹¤ë¼ÂÁõ°Í¸¤ÎÀ©¸Â¤Ï¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +に関する実装依存の制限はない。 +.SH 関連項目 .BR brk (2), .BR mmap (2), .BR shmctl (2), diff --git a/release/man2/shutdown.2 b/release/man2/shutdown.2 index 2f9d3aad..07eb4165 100644 --- a/release/man2/shutdown.2 +++ b/release/man2/shutdown.2 @@ -45,59 +45,59 @@ .\" Updated Mon Oct 15 03:22:24 JST 2001 by Kentaro Shirakata .\" .TH SHUTDOWN 2 2008-12-03 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -shutdown \- Á´Æó½ÅÀܳ¤Î°ìÉô¤òÊĤ¸¤ë -.SH ½ñ¼° +.SH 名前 +shutdown \- 全二重接続の一部を閉じる +.SH 書式 .B #include .sp .BI "int shutdown(int " sockfd ", int " how ); -.SH ÀâÌÀ +.SH 説明 .BR shutdown () -¤Ï¡¢ +は、 .I sockfd -¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ë¥½¥±¥Ã¥È¤Ë¤è¤ëÁ´Æó½ÅÀܳ (full-duplex connection) -¤Î°ìÉô¤Þ¤¿¤ÏÁ´¤Æ¤òÊĤ¸¤ë¡£ +に関連づけられているソケットによる全二重接続 (full-duplex connection) +の一部または全てを閉じる。 .I how -¤¬ +が .B SHUT_RD -¤Ê¤é¤Ð¡¢¤½¤ì°Ê¹ß¤Î¼õ¿®¤ò¶Ø»ß¤¹¤ë¡£ +ならば、それ以降の受信を禁止する。 .I how -¤¬ +が .B SHUT_WR -¤Ê¤é¤Ð¡¢¤½¤ì°Ê¹ß¤ÎÁ÷¿®¤ò¶Ø»ß¤¹¤ë¡£ +ならば、それ以降の送信を禁止する。 .I how -¤¬ +が .B SHUT_RDWR -¤Ê¤é¤Ð¡¢¤½¤ì°Ê¹ß¤ÎÁ÷¼õ¿®¤ò¶Ø»ß¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï \-1 ¤òÊÖ¤·¡¢ +ならば、それ以降の送受信を禁止する。 +.SH 返り値 +成功した場合にはゼロを返す。失敗した場合には \-1 を返し、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EBADF .I sockfd -¤¬Í­¸ú¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ç¤Ê¤¤¡£ +が有効なディスクリプターでない。 .TP .B ENOTCONN -»ØÄꤵ¤ì¤¿¥½¥±¥Ã¥È¤ÏÀܳ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +指定されたソケットは接続されていない。 .TP .B ENOTSOCK .I sockfd -¤¬¥½¥±¥Ã¥È¤Ç¤Ê¤¯¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ -.SH ½àµò +がソケットでなくファイルである。 +.SH 準拠 POSIX.1-2001, 4.4BSD .RB ( shutdown () -´Ø¿ô¥³¡¼¥ë¤Ï 4.2BSD ¤Ç½é¤á¤ÆÅо줷¤¿)¡£ -.SH Ãí°Õ +関数コールは 4.2BSD で初めて登場した)。 +.SH 注意 .BR SHUT_RD , .BR SHUT_WR , .B SHUT_RDWR -¤Î³ÆÄê¿ô (¤½¤ì¤¾¤ì 0, 1, 2 ¤ÎÃͤò»ý¤Ä) ¤Ï -glibc-2.1.91 °Ê¹ß¡¢ +の各定数 (それぞれ 0, 1, 2 の値を持つ) は +glibc-2.1.91 以降、 .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +で定義されている。 +.SH 関連項目 .BR connect (2), .BR socket (2), .BR socket (7) diff --git a/release/man2/sigaction.2 b/release/man2/sigaction.2 index bd64daf9..3dda4bac 100644 --- a/release/man2/sigaction.2 +++ b/release/man2/sigaction.2 @@ -50,23 +50,23 @@ .\" Updated 2008-08-08, Akihiro MOTOKI, LDP v3.05 .\" Updated 2010-04-18, Akihiro MOTOKI, LDP v3.24 .\" -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: process ¥×¥í¥»¥¹ -.\"WORD: signal handler ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é -.\"WORD: pointer ¥Ý¥¤¥ó¥¿¡¼ -.\"WORD: mask ¥Þ¥¹¥¯ -.\"WORD: block ¶Ø»ß(block) -.\"WORD: suspend Ää»ß(suspend) -.\"WORD: stop Ää»ß(stop) -.\"WORD: catch Êá³Í(catch) -.\"WORD: architecture ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¡¼ -.\"WORD: compatible ¸ß´¹À­ -.\"WORD: pottable °Ü¿¢À­ +.\"WORD: signal シグナル +.\"WORD: process プロセス +.\"WORD: signal handler シグナルハンドラ +.\"WORD: pointer ポインター +.\"WORD: mask マスク +.\"WORD: block 禁止(block) +.\"WORD: suspend 停止(suspend) +.\"WORD: stop 停止(stop) +.\"WORD: catch 捕獲(catch) +.\"WORD: architecture アーキテクチャー +.\"WORD: compatible 互換性 +.\"WORD: pottable 移植性 .\" .TH SIGACTION 2 2009-07-25 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sigaction \- ¥·¥°¥Ê¥ë¤ÎÆ°ºî¤Î³Îǧ¤ÈÊѹ¹ -.SH ½ñ¼° +.SH 名前 +sigaction \- シグナルの動作の確認と変更 +.SH 書式 .nf .B #include .sp @@ -75,43 +75,43 @@ sigaction \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l .BR sigaction (): _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .ad b -.SH ÀâÌÀ +.SH 説明 .BR sigaction () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ÆÃÄê¤Î¥·¥°¥Ê¥ë¤ò¼õ¿®¤·¤¿ºÝ¤Î -¥×¥í¥»¥¹¤ÎÆ°ºî¤òÊѹ¹¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë -(¥·¥°¥Ê¥ë¤Î³µÍפˤĤ¤¤Æ¤Ï +システムコールは、特定のシグナルを受信した際の +プロセスの動作を変更するのに使用される +(シグナルの概要については .BR signal (7) -¤ò»²¾È)¡£ +を参照)。 .PP .I signum -¤Ë¤Ï¡¢ +には、 .B SIGKILL -¤È +と .B SIGSTOP -°Ê³°¤ÎÍ­¸ú¤Ê¥·¥°¥Ê¥ë¤ò¤É¤ì¤Ç¤â»ØÄê¤Ç¤­¤ë¡£ +以外の有効なシグナルをどれでも指定できる。 .PP .I act -¤¬ NULL °Ê³°¤Ç¤¢¤ì¤Ð¡¢¥·¥°¥Ê¥ë +が NULL 以外であれば、シグナル .I signum -¤Î¿·¤·¤¤Æ°ºî (action) ¤È¤·¤Æ +の新しい動作 (action) として .I act -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .I oldact -¤¬ NULL ¤Ç¤Ê¤±¤ì¤Ð¡¢º£¤Þ¤Ç¤ÎÆ°ºî¤¬ +が NULL でなければ、今までの動作が .I oldact -¤Ë³ÊǼ¤µ¤ì¤ë¡£ +に格納される。 .PP .I sigaction -¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤Ê´¶¤¸¤ËÄêµÁ¤µ¤ì¤ë¡£ +構造体は以下のような感じに定義される。 .sp .in +4n .nf @@ -125,152 +125,152 @@ struct sigaction { .fi .in .PP -¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤è¤Ã¤Æ¤Ï¶¦ÍÑÂÎ (union) ¤¬ÍѤ¤¤é¤ì¤Æ¤ª¤ê¡¢¤½¤Î¾ì¹ç¤Ë¤Ï +アーキテクチャによっては共用体 (union) が用いられており、その場合には .I sa_handler -¤È +と .I sa_sigaction -¤ÎξÊý¤òƱ»þ¤Ë³ä¤êÅö¤Æ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +の両方を同時に割り当てることはできない。 .PP .I sa_restorer -Í×ÁǤÏÇÑ»ßͽÄê¤Ç¤¢¤ê»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -POSIX ¤Ë¤Ï +要素は廃止予定であり使用すべきではない。 +POSIX には .I sa_restorer -Í×ÁǤ˴ؤ¹¤ëµ¬Äê¤Ï¤Ê¤¤¡£ +要素に関する規定はない。 .PP .I sa_handler -¤Ï +は .I signum -¤ËÂбþ¤¹¤ëÆ°ºî¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¡¢ -¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤ò¹Ô¤¦ -.BR SIG_DFL ¡¢ -¤½¤Î¥·¥°¥Ê¥ë¤ò̵»ë¤¹¤ë -.BR SIG_IGN ¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬ÀßÄê¤Ç¤­¤ë¡£ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é´Ø¿ô¤Î°ú¤­¿ô¤Ï°ì¤Ä¤Ç¤¢¤ê¡¢¥·¥°¥Ê¥ëÈֹ椬°ú¤­¿ô¤È¤·¤Æ -ÅϤµ¤ì¤ë¡£ +に対応する動作を指定するもので、 +デフォルトの動作を行う +.BR SIG_DFL 、 +そのシグナルを無視する +.BR SIG_IGN 、 +シグナルハンドラ関数へのポインタが設定できる。 +シグナルハンドラ関数の引き数は一つであり、シグナル番号が引き数として +渡される。 .PP .I sa_flags -¤Ë +に .B SA_SIGINFO -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +が指定された場合、 .RI ( sa_handler -¤Ç¤Ï¤Ê¤¯) +ではなく) .I sa_sigaction -¤Ë¤è¤ê +により .I signum -¤ËÂбþ¤¹¤ë¥·¥°¥Ê¥ë¥Ï¥ó¥É¥ë´Ø¿ô¤¬»ØÄꤵ¤ì¤ë¡£ -»ØÄꤵ¤ì¤ë´Ø¿ô¤Ï¡¢ºÇ½é¤Î°ú¤­¿ô¤È¤·¤Æ¥·¥°¥Ê¥ëÈÖ¹æ¤ò¡¢ -ÆóÈÖÌܤΰú¤­¿ô¤È¤·¤Æ +に対応するシグナルハンドル関数が指定される。 +指定される関数は、最初の引き数としてシグナル番号を、 +二番目の引き数として .I siginfo_t -¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò¡¢»°ÈÖÌܤΰú¤­¿ô¤È¤·¤Æ (\fIvoid\ *\fP ¤Ë¥­¥ã¥¹¥È¤·¤¿) +へのポインタを、三番目の引き数として (\fIvoid\ *\fP にキャストした) .I ucontext_t -¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò¼õ¤±¤È¤ë¡£ +へのポインタを受けとる。 .PP .I sa_mask -¤Ï¡¢¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¼Â¹ÔÃæ¤Ë¶Ø»ß (block) ¤¹¤Ù¤­¥·¥°¥Ê¥ë¤Î¥Þ¥¹¥¯¤ò»ØÄꤹ¤ë -(¥Ï¥ó¥É¥é¼Â¹ÔÃæ¤Î¥·¥°¥Ê¥ë¤Î¶Ø»ß¤Ï¡¢¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤¬µ¯Æ°¤µ¤ì¤¿¥¹¥ì¥Ã¥É -¤Î¥·¥°¥Ê¥ë¤Î¥Þ¥¹¥¯¤ËÄɲ乤뤳¤È¤Ç¹Ô¤ï¤ì¤ë)¡£ -¤µ¤é¤Ë¡¢ +は、シグナル・ハンドラ実行中に禁止 (block) すべきシグナルのマスクを指定する +(ハンドラ実行中のシグナルの禁止は、シグナル・ハンドラが起動されたスレッド +のシグナルのマスクに追加することで行われる)。 +さらに、 .B SA_NODEFER -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢¥Ï¥ó¥É¥é¤òµ¯Æ°¤¹¤ë¤­¤Ã¤«¤±¤È¤Ê¤ë -¥·¥°¥Ê¥ë¤Ë¤â +フラグが指定されていない場合は、ハンドラを起動するきっかけとなる +シグナルにも .I sa_mask -¤¬Å¬ÍѤµ¤ì¤ë¡£ +が適用される。 .PP .I sa_flags -¤Ï¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤ÎÆ°ºî¤òÊѹ¹¤¹¤ë¤¿¤á¤Î¥Õ¥é¥°¤Î½¸¹ç¤ò»ØÄꤹ¤ë¡£ +はシグナル・ハンドラの動作を変更するためのフラグの集合を指定する。 .I sa_flags -¤Ë¤Ï¡¢°Ê²¼¤Ë¼¨¤¹¥Õ¥é¥°¤Î (0 ¸Ä°Ê¾å¤Î) ÏÀÍýϤò¤È¤Ã¤¿¤â¤Î¤ò»ØÄꤹ¤ë¡£ +には、以下に示すフラグの (0 個以上の) 論理和をとったものを指定する。 .RS 4 .TP .B SA_NOCLDSTOP .I signum -¤¬ +が .B SIGCHLD -¤Î¾ì¹ç¡¢ -»Ò¥×¥í¥»¥¹¤¬Ää»ß¤·¤¿¤ê -(»Ò¥×¥í¥»¥¹¤¬ +の場合、 +子プロセスが停止したり +(子プロセスが .BR SIGSTOP ", " SIGTSTP ", " SIGTTIN ", " SIGTTOU -¤ò¼õ¤±¤¿¤È¤­) ºÆ³«¤·¤¿¤ê (»Ò¥×¥í¥»¥¹¤¬ +を受けたとき) 再開したり (子プロセスが .B SIGCONT -¤ò¼õ¤±¤¿¤È¤­) ¤·¤¿¤È¤­¤Ë +を受けたとき) したときに .B SIGCHLD -¤ÎÄÌÃΤò¼õ¤±¤Ê¤¤¡£ -¤³¤Î¥Õ¥é¥°¤Ï¡¢ +の通知を受けない。 +このフラグは、 .B SIGCHLD -¤ËÂФ·¤Æ¥Ï¥ó¥É¥é¤òÀßÄꤹ¤ëºÝ¤Ë¤Î¤ß°ÕÌ£¤ò»ý¤Ä¡£ +に対してハンドラを設定する際にのみ意味を持つ。 .TP -.BR SA_NOCLDWAIT " (Linux 2.6 °Ê¹ß)" -(Linux 2.6 °Ê¹ß) -.\" Àµ³Î¤Ë¤Ï Linux 2.5.60 °Ê¹ß -- MTK +.BR SA_NOCLDWAIT " (Linux 2.6 以降)" +(Linux 2.6 以降) +.\" 正確には Linux 2.5.60 以降 -- MTK .I signum -¤¬ +が .B SIGCHLD -¤Î¾ì¹ç¡¢»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿¤È¤­¤Ë -»Ò¥×¥í¥»¥¹¤ò¥¾¥ó¥Ó¥×¥í¥»¥¹¤ËÊѲ½¤µ¤»¤Ê¤¤ +の場合、子プロセスが終了したときに +子プロセスをゾンビプロセスに変化させない .RB ( waitpid (2) -¤â»²¾È)¡£ -¤³¤Î¥Õ¥é¥°¤Ï¡¢ +も参照)。 +このフラグは、 .B SIGCHLD -¤ËÂФ·¤Æ¥Ï¥ó¥É¥é¤òÀßÄꤹ¤ëºÝ¡¢¤â¤·¤¯¤Ï¤½¤Î¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤ò +に対してハンドラを設定する際、もしくはそのシグナルの処理方法を .B SIG_DFL -¤ËÀßÄꤹ¤ëºÝ¤Ë¤Î¤ß°ÕÌ£¤ò»ý¤Ä¡£ +に設定する際にのみ意味を持つ。 .BR SIGCHLD -¤ËÂФ·¤Æ¥Ï¥ó¥É¥é¤òÀßÄꤹ¤ëºÝ¤Ë +に対してハンドラを設定する際に .B SA_NOCLDWAIT -¥Õ¥é¥°¤ò¥»¥Ã¥È¤·¤¿¾ì¹ç¡¢ -»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿ºÝ¤Ë +フラグをセットした場合、 +子プロセスが終了した際に .B SIGCHLD -¥·¥°¥Ê¥ë¤¬À¸À®¤µ¤ì¤ë¤«¤É¤¦¤«¤Ï¡¢ -POSIX.1 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -Linux ¤Ç¤Ï¡¢¤³¤Î¾õ¶·¤Ç +シグナルが生成されるかどうかは、 +POSIX.1 では規定されていない。 +Linux では、この状況で .B SIGCHLD -¥·¥°¥Ê¥ë¤ÏÀ¸À®¤µ¤ì¤ë¡£ -¤¤¤¯¤Ä¤«¤Î¾¤Î¼ÂÁõ¤Ç¤ÏÀ¸À®¤µ¤ì¤Ê¤¤¡£ +シグナルは生成される。 +いくつかの他の実装では生成されない。 .TP .B SA_NODEFER -¤½¤ì¼«¿È¤Î¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¡¼¤ÎÆâÉô¤Ë¤¤¤ë»þ¤Ç¤â -¤½¤Î¥·¥°¥Ê¥ë¤ò¥Þ¥¹¥¯¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄꤹ¤ëºÝ¤Ë¤Î¤ß°ÕÌ£¤ò»ý¤Ä¡£ +それ自身のシグナル・ハンドラーの内部にいる時でも +そのシグナルをマスクしないようにする。 +このフラグはシグナルハンドラを設定する際にのみ意味を持つ。 .B SA_NOMASK -¤Ï¤³¤Î¥Õ¥é¥°¤ÈƱ¤¸°ÕÌ£¤À¤¬¡¢Çѻߤµ¤ì¤Æ¤ª¤ê¡¢Èóɸ½à¤Ç¤¢¤ë¡£ +はこのフラグと同じ意味だが、廃止されており、非標準である。 .TP .B SA_ONSTACK .BR sigaltstack (2) -¤ÇÄ󶡤µ¤ì¤ëÊ̤Υ·¥°¥Ê¥ë¡¦¥¹¥¿¥Ã¥¯¤Ç¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò¸Æ¤Ó½Ð¤¹¡£ -Ê̤Υ·¥°¥Ê¥ë¡¦¥¹¥¿¥Ã¥¯¤¬ÍøÍѲÄǽ¤Ç¤Ê¤±¤ì¤Ð¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥¹¥¿¥Ã¥¯¤¬ -»ÈÍѤµ¤ì¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄꤹ¤ëºÝ¤Ë¤Î¤ß°ÕÌ£¤ò»ý¤Ä¡£ +で提供される別のシグナル・スタックでシグナルハンドラを呼び出す。 +別のシグナル・スタックが利用可能でなければ、デフォルトのスタックが +使用される。 +このフラグはシグナルハンドラを設定する際にのみ意味を持つ。 .TP .BR SA_RESETHAND -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬¸Æ¤Ð¤ì¤ëÅ٤ˡ¢¥·¥°¥Ê¥ë¤ÎÆ°ºî¤ò¥Ç¥Õ¥©¥ë¥È¤ËÌ᤹¡£ -¤³¤Î¥Õ¥é¥°¤Ï¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄꤹ¤ëºÝ¤Ë¤Î¤ß°ÕÌ£¤ò»ý¤Ä¡£ +シグナルハンドラが呼ばれる度に、シグナルの動作をデフォルトに戻す。 +このフラグはシグナルハンドラを設定する際にのみ意味を持つ。 .B SA_ONESHOT -¤Ï¤³¤Î¥Õ¥é¥°¤ÈƱ¤¸°ÕÌ£¤À¤¬¡¢Çѻߤµ¤ì¤Æ¤ª¤ê¡¢Èóɸ½à¤Ç¤¢¤ë¡£ +はこのフラグと同じ意味だが、廃止されており、非標準である。 .TP .B SA_RESTART -¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¥·¥°¥Ê¥ë¤ÎÄÌÃΤÎÁ°¸å¤ÇºÆ³«¤Ç¤­¤ë¤è¤¦¤Ë¤·¤Æ¡¢ -BSD ¥·¥°¥Ê¥ëÊý¼° (semantics) ¤È¸ß´¹À­¤Î¤¢¤ëÆ°ºî¤òÄ󶡤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄꤹ¤ëºÝ¤Ë¤Î¤ß°ÕÌ£¤ò»ý¤Ä¡£ +いくつかのシステムコールをシグナルの通知の前後で再開できるようにして、 +BSD シグナル方式 (semantics) と互換性のある動作を提供する。 +このフラグはシグナルハンドラを設定する際にのみ意味を持つ。 .BR signal (7) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎºÆ³«¤Ë´Ø¤¹¤ëµÄÏÀ¤ò»²¾È¤Î¤³¤È¡£ +に書かれているシステムコールの再開に関する議論を参照のこと。 .TP -.BR SA_SIGINFO " (Linux 2.2 °Ê¹ß)" -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ï°ì¤Ä¤Ç¤Ï¤Ê¤¯¡¢»°¤Ä¤Î°ú¤­¿ô¤ò»ý¤Ä¡£¤³¤Î¾ì¹ç¤Ï +.BR SA_SIGINFO " (Linux 2.2 以降)" +シグナルハンドラは一つではなく、三つの引き数を持つ。この場合は .I sa_handler -¤Î¤«¤ï¤ê¤Ë +のかわりに .I sa_sigaction -¤òÀßÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -¤³¤Î¥Õ¥é¥°¤Ï¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄꤹ¤ëºÝ¤Ë¤Î¤ß°ÕÌ£¤ò»ý¤Ä¡£ +を設定しなければならない +このフラグはシグナルハンドラを設定する際にのみ意味を持つ。 .\" .RI ( sa_sigaction -.\" ¥Õ¥£¡¼¥ë¥É¤Ï Linux 2.1.86 ¤ÇÄɲ䵤줿)¡£ +.\" フィールドは Linux 2.1.86 で追加された)。 .RE .PP .I sa_sigaction -¤Î¥Ñ¥é¥á¡¼¥¿ +のパラメータ .I siginfo_t -¤Ï°Ê²¼¤ÎÍ×ÁǤò»ý¤Ä¹½Â¤ÂΤǤ¢¤ë: +は以下の要素を持つ構造体である: .sp .in +4n .nf @@ -303,50 +303,50 @@ siginfo_t { .in .IR si_signo ", " si_errno ", " si_code -¤ÏÁ´¤Æ¤Î¥·¥°¥Ê¥ë¤ËÂФ·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë +は全てのシグナルに対して定義されている .RI ( si_errno -¤Ï Linux ¤Ç¤Ï°ìÈÌŪ¤Ë¤Ï»ÈÍѤµ¤ì¤Ê¤¤)¡£ -¹½Â¤ÂΤλĤê¤ÎÉôʬ¤Ï¡¢¶¦ÍÑÂÎ (union) ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤½¤Î¾ì¹ç¤Ï³ºÅö¤¹¤ë¥·¥°¥Ê¥ë¤Ë¤ª¤¤¤Æ°ÕÌ£¤Î¤¢¤ë¥Õ¥£¡¼¥ë¥É¤Î¤ß¤òÆɤ߹þ¤à -¤³¤È¤¬¤Ç¤­¤ë¡£ +は Linux では一般的には使用されない)。 +構造体の残りの部分は、共用体 (union) になっているかもしれない。 +その場合は該当するシグナルにおいて意味のあるフィールドのみを読み込む +ことができる。 .IP * 2 -POSIX.1b ¥·¥°¥Ê¥ë¤È +POSIX.1b シグナルと .B SIGCHLD -¤Ï -.IR si_pid " ¤È " si_uid -¤òÀßÄꤹ¤ë¡£ +は +.IR si_pid " と " si_uid +を設定する。 .IP * -POSIX.1b ¥¿¥¤¥Þ (Linux 2.6 °Ê¹ß) ¤Ï +POSIX.1b タイマ (Linux 2.6 以降) は .I si_overrun -¤È +と .I si_timerid -¤òÀßÄꤹ¤ë¡£ +を設定する。 .I si_timerid -¥Õ¥£¡¼¥ë¥É¤Ï¥«¡¼¥Í¥ë¤¬¥¿¥¤¥Þ¤òÆÃÄꤹ¤ë¤Î¤Ë»ÈÍѤ¹¤ëÆâÉô ID ¤Ç¤¢¤ê¡¢ +フィールドはカーネルがタイマを特定するのに使用する内部 ID であり、 .BR timer_create (2) -¤¬ÊÖ¤¹¥¿¥¤¥Þ ID ¤ÈƱ¤¸¤Ç¤Ï¤Ê¤¤¡£ +が返すタイマ ID と同じではない。 .IP * .B SIGCHLD -¤Ï +は .IR si_status ", " si_utime ", " si_stime -¤òÀßÄꤹ¤ë¡£ +を設定する。 .RB ( getrusage (2) -¤ä +や .BR time (2) -¤È°Û¤Ê¤ê) ¥Õ¥£¡¼¥ë¥É +と異なり) フィールド .I si_utime -¤È +と .I si_stime -¤Ë¤Ï wait ÂÔ¤Á¤Î»Ò¥×¥í¥»¥¹¤Ë¤è¤ê»ÈÍѤµ¤ì¤¿»þ´Ö¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ -2.6 ¤è¤êÁ°¤È 2.6.27 °Ê¹ß¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Ë³ÊǼ¤µ¤ì¤ë CPU »þ´Ö¤Îñ°Ì¤Ï +には wait 待ちの子プロセスにより使用された時間は含まれない。 +2.6 より前と 2.6.27 以降のカーネルでは、 +これらのフィールドに格納される CPU 時間の単位は .I sysconf(_SC_CLK_TCK) -¤Ç¤¢¤ë¡£ -2.6.27 ¤è¤êÁ°¤Î 2.6 ·Ï¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¥Ð¥°¤¬¤¢¤ê¡¢ -¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Î CPU »þ´Ö¤Îñ°Ì¤¬ -(¥«¡¼¥Í¥ë¤Î¥³¥ó¥Õ¥£¥°¤Ç»ØÄꤵ¤ì¤ë) ¥·¥¹¥Æ¥à¤Î jiffy ¤Ç¤¢¤Ã¤¿ +である。 +2.6.27 より前の 2.6 系のカーネルでは、バグがあり、 +これらのフィールドの CPU 時間の単位が +(カーネルのコンフィグで指定される) システムの jiffy であった .RB ( time (7) -»²¾È)¡£ +参照)。 .\" FIXME . .\" When si_utime and si_stime where originally implemented, the .\" measurement unit was HZ, which was the same as clock ticks @@ -362,350 +362,350 @@ POSIX.1b .\" waited-for children (as is done by getrusage() and times() .\" and wait4()). Solaris 8 does include child times. .IP * -.IR si_int " ¤È " si_ptr -¤Ï POSIX.1b ¥·¥°¥Ê¥ë¤ÎÁ÷¿®¼Ô¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤ë¡£ -¾ÜºÙ¤Ï +.IR si_int " と " si_ptr +は POSIX.1b シグナルの送信者によって指定される。 +詳細は .BR sigqueue (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .IP * .BR SIGILL , .BR SIGFPE , .BR SIGSEGV , .B SIGBUS -¤Ï +は .I si_addr -¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¥¢¥É¥ì¥¹¤òÀßÄꤹ¤ë¡£ -SIGPOLL ¤Ï -.IR si_band " ¤È " si_fd -¤òÀßÄꤹ¤ë¡£ +にエラーが発生したアドレスを設定する。 +SIGPOLL は +.IR si_band " と " si_fd +を設定する。 .PP .I si_code -¤Ï¡¢¤½¤Î¥·¥°¥Ê¥ë¤¬Á÷¿®¤µ¤ì¤¿Íýͳ¤ò¼¨¤¹ÃͤǤ¢¤ë (¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤Ï¤Ê¤¤)¡£ -°Ê²¼¤Î¥ê¥¹¥È¤Ë¡¢¤É¤Î¥·¥°¥Ê¥ë¤Î¾ì¹ç¤Ç¤â +は、そのシグナルが送信された理由を示す値である (ビットマスクではない)。 +以下のリストに、どのシグナルの場合でも .I si_code -¤ËÆþ¤ê¤¦¤ëÃͤò¡¢¥·¥°¥Ê¥ë¤¬À¸À®¤µ¤ì¤¿Íýͳ¤È¤È¤â¤Ëµ­ºÜ¤¹¤ë¡£ +に入りうる値を、シグナルが生成された理由とともに記載する。 .RS 4 .TP 15 .B SI_USER .BR kill (2) -¤Þ¤¿¤Ï +または .BR raise (3) .TP .B SI_KERNEL -¥«¡¼¥Í¥ë¤Ë¤è¤êÁ÷¿®¤µ¤ì¤¿ +カーネルにより送信された .TP .B SI_QUEUE .BR sigqueue (2) .TP .B SI_TIMER -POSIX ¥¿¥¤¥Þ¤¬Ëþλ¤·¤¿ +POSIX タイマが満了した .TP .B SI_MESGQ -POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î¾õÂÖ¤¬ÊѲ½¤·¤¿ (Linux 2.6.6 °Ê¹ß)¡£ -.BR mq_notify (3) »²¾È¡£ +POSIX メッセージキューの状態が変化した (Linux 2.6.6 以降)。 +.BR mq_notify (3) 参照。 .TP .B SI_ASYNCIO -ÈóƱ´ü IO (AIO) ¤¬´°Î»¤·¤¿ +非同期 IO (AIO) が完了した .TP .B SI_SIGIO -¥­¥å¡¼¥¤¥ó¥°¤µ¤ì¤¿ SIGIO +キューイングされた SIGIO .TP .B SI_TKILL .BR tkill (2) -¤Þ¤¿¤Ï +または .BR tgkill (2) -(Linux 2.4.19 °Ê¹ß) +(Linux 2.4.19 以降) .\" SI_DETHREAD is defined in 2.6.9 sources, but isn't implemented .\" It appears to have been an idea that was tried during 2.5.6 .\" through to 2.5.24 and then was backed out. .RE .PP .B SIGILL -¥·¥°¥Ê¥ë¤Î¾ì¹ç¡¢ +シグナルの場合、 .I si_code -¤Ë¤Ï°Ê²¼¤ÎÃͤò»ØÄê¤Ç¤­¤ë: +には以下の値を指定できる: .RS 4 .TP 15 .B ILL_ILLOPC -ÉÔÀµ¤ÊÌ¿Îᥳ¡¼¥É (opcode) +不正な命令コード (opcode) .TP .B ILL_ILLOPN -ÉÔÀµ¤Ê¥ª¥Ú¥é¥ó¥É +不正なオペランド .TP .B ILL_ILLADR -ÉÔÀµ¤Ê¥¢¥É¥ì¥Ã¥·¥ó¥°¥â¡¼¥É +不正なアドレッシングモード .TP .B ILL_ILLTRP -ÉÔÀµ¤Ê¥È¥é¥Ã¥× +不正なトラップ .TP .B ILL_PRVOPC -Æø¢¤¬É¬ÍפÊÌ¿Îᥳ¡¼¥É (opcode) +特権が必要な命令コード (opcode) .TP .B ILL_PRVREG -Æø¢¤¬É¬Íפʥ쥸¥¹¥¿ +特権が必要なレジスタ .TP .B ILL_COPROC -¥³¥×¥í¥»¥Ã¥µ¤Î¥¨¥é¡¼ +コプロセッサのエラー .TP .B ILL_BADSTK -ÆâÉô¥¹¥¿¥Ã¥¯¥¨¥é¡¼ +内部スタックエラー .RE .PP .B SIGFPE -¥·¥°¥Ê¥ë¤Î¾ì¹ç¡¢ +シグナルの場合、 .I si_code -¤Ë¤Ï°Ê²¼¤ÎÃͤò»ØÄê¤Ç¤­¤ë: +には以下の値を指定できる: .RS 4 .TP 15 .B FPE_INTDIV -À°¿ô¤Î 0 ¤Ë¤è¤ë½ü»» +整数の 0 による除算 .TP .B FPE_INTOVF -À°¿ô¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ +整数のオーバーフロー .TP .B FPE_FLTDIV -ÉâÆ°¾®¿ôÅÀ¤Î 0 ¤Ë¤è¤ë½ü»» +浮動小数点の 0 による除算 .TP .B FPE_FLTOVF -ÉâÆ°¾®¿ôÅÀ¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ +浮動小数点のオーバーフロー .TP .B FPE_FLTUND -ÉâÆ°¾®¿ôÅÀ¤Î¥¢¥ó¥À¡¼¥Õ¥í¡¼ +浮動小数点のアンダーフロー .TP .B FPE_FLTRES -ÉâÆ°¾®¿ôÅÀ¤ÎÉÔÀµ³Î¤Ê±é»»·ë²Ì (inexact result) +浮動小数点の不正確な演算結果 (inexact result) .TP .B FPE_FLTINV -ÉâÆ°¾®¿ôÅÀ¤ÎÉÔÀµ¤ÊÁàºî +浮動小数点の不正な操作 .TP .B FPE_FLTSUB -Èϰϳ°¤Îź»ú (subscript) +範囲外の添字 (subscript) .RE .PP .B SIGSEGV -¥·¥°¥Ê¥ë¤Î¾ì¹ç¡¢ +シグナルの場合、 .I si_code -¤Ë¤Ï°Ê²¼¤ÎÃͤò»ØÄê¤Ç¤­¤ë: +には以下の値を指定できる: .RS 4 .TP 15 .B SEGV_MAPERR -¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¤Æ¤¤¤Ê¤¤¥¢¥É¥ì¥¹ +オブジェクトにマッピングされていないアドレス .TP .B SEGV_ACCERR -¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ¹¤ë¥¢¥¯¥»¥¹µö²Ä¤¬¤Ê¤¤ +マッピングされたオブジェクトに対するアクセス許可がない .RE .PP .B SIGBUS -¥·¥°¥Ê¥ë¤Î¾ì¹ç¡¢ +シグナルの場合、 .I si_code -¤Ë¤Ï°Ê²¼¤ÎÃͤò»ØÄê¤Ç¤­¤ë: +には以下の値を指定できる: .RS 4 .TP 15 .B BUS_ADRALN -ÉÔÀµ¤Ê¥¢¥É¥ì¥¹¡¦¥¢¥é¥¤¥á¥ó¥È (alignment) +不正なアドレス・アライメント (alignment) .TP .B BUS_ADRERR -¸ºß¤·¤Ê¤¤ÊªÍý¥¢¥É¥ì¥¹ +存在しない物理アドレス .TP .B BUS_OBJERR -¥ª¥Ö¥¸¥§¥¯¥È¸ÇÍ­¤Î¥Ï¡¼¥É¥¦¥§¥¢¥¨¥é¡¼ +オブジェクト固有のハードウェアエラー .RE .PP .B SIGTRAP -¥·¥°¥Ê¥ë¤Î¾ì¹ç¡¢ +シグナルの場合、 .I si_code -¤Ë¤Ï°Ê²¼¤ÎÃͤò»ØÄê¤Ç¤­¤ë: +には以下の値を指定できる: .RS 4 .TP 15 .B TRAP_BRKPT -¥×¥í¥»¥¹¤Î¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È +プロセスのブレークポイント .TP .B TRAP_TRACE -¥×¥í¥»¥¹¤Î¥È¥ì¡¼¥¹¡¦¥È¥é¥Ã¥× +プロセスのトレース・トラップ .RE .PP .B SIGCHLD -¥·¥°¥Ê¥ë¤Î¾ì¹ç¡¢ +シグナルの場合、 .I si_code -¤Ë¤Ï°Ê²¼¤ÎÃͤò»ØÄê¤Ç¤­¤ë: +には以下の値を指定できる: .RS 4 .TP 15 .B CLD_EXITED -»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿ (exited) +子プロセスが終了した (exited) .TP .B CLD_KILLED -»Ò¥×¥í¥»¥¹¤¬ kill ¤µ¤ì¤¿ +子プロセスが kill された .TP .B CLD_DUMPED -»Ò¥×¥í¥»¥¹¤¬°Û¾ï½ªÎ»¤·¤¿ +子プロセスが異常終了した .TP .B CLD_TRAPPED -¥È¥ì¡¼¥¹ÂÐ¾Ý¤Î»Ò¥×¥í¥»¥¹¤¬¥È¥é¥Ã¥×¤ò¾å¤²¤¿ +トレース対象の子プロセスがトラップを上げた .TP .B CLD_STOPPED -»Ò¥×¥í¥»¥¹¤¬Ää»ß (stop) ¤·¤¿ +子プロセスが停止 (stop) した .TP .B CLD_CONTINUED -Ää»ß¤·¤Æ¤¤¤¿»Ò¥×¥í¥»¥¹¤¬ºÆ³«¤·¤¿ (Linux 2.6.9 °Ê¹ß) +停止していた子プロセスが再開した (Linux 2.6.9 以降) .RE .PP .B SIGPOLL -¥·¥°¥Ê¥ë¤Î¾ì¹ç¡¢ +シグナルの場合、 .I si_code -¤Ë¤Ï°Ê²¼¤ÎÃͤò»ØÄê¤Ç¤­¤ë: +には以下の値を指定できる: .RS 4 .TP 15 .B POLL_IN -ÆþÎϥǡ¼¥¿¤¬ÍøÍѲÄǽ +入力データが利用可能 .TP .B POLL_OUT -½ÐÎϥХåե¡¤¬ÍøÍѲÄǽ +出力バッファが利用可能 .TP .B POLL_MSG -ÆþÎÏ¥á¥Ã¥»¡¼¥¸¤¬ÍøÍѲÄǽ +入力メッセージが利用可能 .TP .B POLL_ERR -I/O ¥¨¥é¡¼ +I/O エラー .TP .B POLL_PRI -¹âÍ¥Àè¤ÎÆþÎϤ¬ÍøÍѲÄǽ +高優先の入力が利用可能 .TP .B POLL_HUP -¥Ç¥Ð¥¤¥¹¤¬Àܳ¤µ¤ì¤Æ¤¤¤Ê¤¤ +デバイスが接続されていない .RE -.SH ÊÖ¤êÃÍ +.SH 返り値 .BR sigaction () -¤ÏÀ®¸ù¤¹¤ì¤Ð 0 ¤òÊÖ¤·¡¢¥¨¥é¡¼¤Ê¤é¤Ð \-1 ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +は成功すれば 0 を返し、エラーならば \-1 を返す。 +.SH エラー .TP .B EFAULT -.IR act " ¤« " oldact -¤¬»Ø¤·¤Æ¤¤¤ë¥á¥â¥ê¤¬Àµ¤·¤¤¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤Ê¤¤¡£ +.IR act " か " oldact +が指しているメモリが正しいプロセスのアドレス空間にない。 .TP .B EINVAL -̵¸ú¤Ê¥·¥°¥Ê¥ë¤¬»ØÄꤵ¤ì¤¿¡£Êä­ (catch) ¤·¤¿¤ê̵»ë¤·¤¿¤ê¤Ç¤­¤Ê¤¤ -¥·¥°¥Ê¥ë¤Ç¤¢¤ë -.BR SIGKILL " ¤ä " SIGSTOP -¤ËÂФ¹¤ëÆ°ºî¤òÊѹ¹¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤Ë¤âȯÀ¸¤¹¤ë¡£ -.SH ½àµò +無効なシグナルが指定された。補足 (catch) したり無視したりできない +シグナルである +.BR SIGKILL " や " SIGSTOP +に対する動作を変更しようとした場合にも発生する。 +.SH 準拠 POSIX.1-2001, SVr4. -.\" SVr4 ¤Ë¤Ï EINTR ¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ +.\" SVr4 には EINTR についての記述はない。 +.SH 注意 .BR fork (2) -·Ðͳ¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢¿Æ¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤Î -¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£ +経由で作成された子プロセスは、親プロセスのシグナルの処理方法の +コピーを継承する。 .BR execve (2) -¤ÎÁ°¸å¤Ç¡¢¥Ï¥ó¥É¥é¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤Ï¥Ç¥Õ¥©¥ë¥È¤Ë¥ê¥»¥Ã¥È¤µ¤ì¡¢ -̵»ë¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤ÏÊѹ¹¤µ¤ì¤º¤½¤Î¤Þ¤Þ¤È¤Ê¤ë¡£ +の前後で、ハンドラが設定されているシグナルの処理方法はデフォルトにリセットされ、 +無視が設定されているシグナルの処理方法は変更されずそのままとなる。 -POSIX ¤Ç¤Ï¡¢ +POSIX では、 .BR kill (2) -¤ä +や .BR raise (3) -´Ø¿ô¤ÇÀ¸À®¤Ç¤­¤Ê¤¤¥·¥°¥Ê¥ë +関数で生成できないシグナル .BR SIGFPE , .BR SIGILL , .B SIGSEGV -¤ò̵»ë (ignore) ¤·¤¿¾ì¹ç¡¢¤½¤Î¸å¤ÎÆ°ºî¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ -¥¼¥í¤Ë¤è¤ëÀ°¿ô³ä¤ê»»¤Î·ë²Ì¤Ï̤ÄêµÁ¤È¤Ê¤ë¡£ -¥¢¡¼¥­¥Æ¥¯¥Á¥ã¡¼¤Ë¤è¤Ã¤Æ¤Ï¡¢¤³¤Î¤È¤­ +を無視 (ignore) した場合、その後の動作は未定義である。 +ゼロによる整数割り算の結果は未定義となる。 +アーキテクチャーによっては、このとき .B SIGFPE -¥·¥°¥Ê¥ë¤¬À¸À®¤µ¤ì¤ë¡£ -(ƱÍͤËÉé¤ÎºÇÂçÀ°¿ô¤ò \-1 ¤Ç³ä¤ë¤È +シグナルが生成される。 +(同様に負の最大整数を \-1 で割ると .B SIGFPE -¤¬À¸À®¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤) -¤³¤Î¥·¥°¥Ê¥ë¤ò̵»ë¤¹¤ë¤È̵¸Â¥ë¡¼¥×¤Ë´Ù¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +が生成されるかもしれない) +このシグナルを無視すると無限ループに陥るかもしれない。 .PP -POSIX.1-1990 ¤Ç¤Ï +POSIX.1-1990 では .B SIGCHLD -¤Ë +に .B SIG_IGN -¤òÀßÄꤹ¤ë¤³¤È¤òǧ¤á¤Æ¤¤¤Ê¤¤¡£ -POSIX.1-2001 ¤Ç¤Ïǧ¤á¤é¤ì¤Æ¤ª¤ê¡¢ +を設定することを認めていない。 +POSIX.1-2001 では認められており、 .B SIGCHLD -¤ò̵»ë¤¹¤ë¤³¤È¤Ç¥¾¥ó¥Ó¥×¥í¥»¥¹¤ÎÀ¸À®¤òËɻߤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë +を無視することでゾンビプロセスの生成を防止することができる .RB ( wait (2) -¤ò»²¾È)¡£ -¤µ¤é¤Ë¡¢BSD ¤È SystemV ¤Ç¤Ï +を参照)。 +さらに、BSD と SystemV では .B SIGCHLD -¤ò̵»ë¤·¤¿ºÝ¤ÎÆ°ºî¤¬°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤½¤Î¤¿¤á¡¢´°Á´¤Ë°Ü¿¢À­¤¬¤¢¤ëÊýË¡¤Ç¡¢½ªÎ»¤·¤¿»Ò¥×¥í¥»¥¹¤¬¥¾¥ó¥Ó¤Ë¤Ê¤é¤Ê¤¤¤³¤È -¤òÊݾڤ¹¤ë¤Ë¤Ï¡¢ +を無視した際の動作が異なっている。 +そのため、完全に移植性がある方法で、終了した子プロセスがゾンビにならないこと +を保証するには、 .B SIGCHLD -¥·¥°¥Ê¥ë¤òÊä­¤·¡¢ +シグナルを補足し、 .BR wait (2) -¤Ê¤É¤ò¼Â¹Ô¤¹¤ë¤·¤«¤Ê¤¤¡£ +などを実行するしかない。 .PP -POSIX.1-1990 ¤Î»ÅÍÍ¤Ç¤Ï +POSIX.1-1990 の仕様では .B SA_NOCLDSTOP -¤Î¤ß¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -POSIX.1-2001 ¤Ç¤Ï +のみが定義されている。 +POSIX.1-2001 では .BR SA_NOCLDWAIT , .BR SA_RESETHAND , .BR SA_NODEFER , .B SA_SIGINFO -¤¬Äɲ䵤줿¡£ -Unix ¤Î¸Å¤¤¼ÂÁõ¤ÇÆ°¤«¤¹¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¡¢ -¾¤Î +が追加された。 +Unix の古い実装で動かすアプリケーションで、 +他の .I sa_flags -¥Õ¥é¥°¤ò»ÈÍѤ¹¤ë¤È°Ü¿¢À­¤¬²¼¤¬¤ë¡£ +フラグを使用すると移植性が下がる。 .PP .B SA_RESETHAND -¥Õ¥é¥°¤Ï SVr4 ¤ÎƱ¤¸Ì¾Á°¤Î¥Õ¥é¥°¤È¸ß´¹À­¤¬¤¢¤ë¡£ +フラグは SVr4 の同じ名前のフラグと互換性がある。 .PP .B SA_NODEFER -¥Õ¥é¥°¤Ï 1.3.9 °Ê¹ß¤Î¥«¡¼¥Í¥ë¤Ç¤ÏƱ¤¸Ì¾Á°¤Î SVr4 ¤Î¥Õ¥é¥°¤È¸ß´¹À­¤¬¤¢¤ë¡£ -¤¾¤ì°ÊÁ°¤Î Linux ¥«¡¼¥Í¥ë¤Î¼ÂÁõ¤Ç¤Ï¡¢¤³¤Î¥Õ¥é¥°¤òÀßÄꤷ¤Æ¤¤¤ë¥·¥°¥Ê¥ë -¤À¤±¤Ç¤Ê¤¯¡¢¤É¤Î¥·¥°¥Ê¥ë¤Ç¤â¼õ¤±¤ë¤³¤È¤òµö¤·¤Æ¤¤¤¿ (¼ÂºÝ¤Ë¤Ï +フラグは 1.3.9 以降のカーネルでは同じ名前の SVr4 のフラグと互換性がある。 +ぞれ以前の Linux カーネルの実装では、このフラグを設定しているシグナル +だけでなく、どのシグナルでも受けることを許していた (実際には .I sa_mask -¤ÎÀßÄê¤Ë¤è¤ê̵¸ú¤Ë¤Ç¤­¤ë)¡£ +の設定により無効にできる)。 .PP .BR sigaction () -¤ÎÆóÈÖÌܤΰú¤­¿ô¤Ë NULL ¤ò»ØÄꤷ¤Æ¸Æ¤Ó½Ð¤¹¤È¡¢¸½ºß¤Î¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò³Îǧ¤¹¤ë -¤³¤È¤¬¤Ç¤­¤ë¡£¤Þ¤¿¡¢ÆóÈÖÌܤȻ°ÈÖÌܤΰú¤­¿ô¤ò NULL ¤Ë¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¡¢ -»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë¤¬¸½ºß¤Î¥Þ¥·¥ó¤Ç»È¤¨¤ë¤«¤É¤¦¤«¥Á¥§¥Ã¥¯¤Ç¤­¤ë¡£ +の二番目の引き数に NULL を指定して呼び出すと、現在のシグナルハンドラを確認する +ことができる。また、二番目と三番目の引き数を NULL にて呼び出すことで、 +指定されたシグナルが現在のマシンで使えるかどうかチェックできる。 .PP .B SIGKILL -¤ä +や .B SIGSTOP -¤ò +を .RI ( sa_mask -¤Ë»ØÄꤷ¤Æ) ¶Ø»ß¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -¶Ø»ß¤·¤è¤¦¤È¤·¤Æ¤âÌۤäÆ̵»ë¤µ¤ì¤ë¡£ +に指定して) 禁止することはできない。 +禁止しようとしても黙って無視される。 .PP -¥·¥°¥Ê¥ë½¸¹ç¤ÎÁàºî¤Ë´Ø¤¹¤ë¾ÜºÙ¤Ï +シグナル集合の操作に関する詳細は .BR sigsetops (3) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .PP -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥éÆ⤫¤é°ÂÁ´¤Ë¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡¢ -async-signal-safe functions (ÈóƱ´ü¥·¥ó¥°¥ë¤Ç°ÂÁ´¤Ê´Ø¿ô) ¤Î -¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¤Ï +シグナルハンドラ内から安全に呼び出すことができる、 +async-signal-safe functions (非同期シングルで安全な関数) の +リストについては .BR signal (7) -¤ò»²¾È¡£ -.SS Èó¸ø¼° +を参照。 +.SS 非公式 .B SA_SIGINFO -¤¬Æ³Æþ¤µ¤ì¤ëÁ°¤Ï¡¢ +が導入される前は、 .I "struct sigcontext" -·¿¤ÎÆóÈÖÌܤΰú¤­¿ô¤È°ì½ï¤Ë +型の二番目の引き数と一緒に .I sa_handler -¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç¡¢ -¤¤¤¯¤Ä¤«¤ÎÄɲäξðÊó¤òÆþ¼ê¤¹¤ë¤³¤È¤¬¤Ç¤­¤¿¡£ -¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¥«¡¼¥Í¥ë¥½¡¼¥¹¤Î´ØÏ¢Éôʬ¤ò¸«¤Æ¤Û¤·¤¤¡£ -¸½ºß¤Ï¤³¤Î»ÈÍÑË¡¤ÏÇѻߤµ¤ì¤Æ¤¤¤ë¡£ -.SH ¥Ð¥° -2.6.13 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +を使用することで、 +いくつかの追加の情報を入手することができた。 +詳細についてはカーネルソースの関連部分を見てほしい。 +現在はこの使用法は廃止されている。 +.SH バグ +2.6.13 以前のカーネルでは、 .I sa_flags -¤Ë +に .B SA_NODEFER -¤ò»ØÄꤷ¤¿¾ì¹ç¡¢ -¥Ï¥ó¥É¥é¤¬¼Â¹ÔÃæ¤ËÇÛÁ÷¤µ¤ì¤¿¥·¥°¥Ê¥ë¼«¿È¤¬¥Þ¥¹¥¯¤µ¤ì¤Ê¤¯¤Ê¤ë¤À¤±¤Ç¤Ê¤¯¡¢ +を指定した場合、 +ハンドラが実行中に配送されたシグナル自身がマスクされなくなるだけでなく、 .I sa_mask -¤Ë»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë¤â¥Þ¥¹¥¯¤µ¤ì¤Ê¤¯¤Ê¤ë¡£ -¤³¤Î¥Ð¥°¤Ï¡¢¥«¡¼¥Í¥ë 2.6.14 ¤Ç½¤Àµ¤µ¤ì¤¿¡£ -.SH Îã +に指定されたシグナルもマスクされなくなる。 +このバグは、カーネル 2.6.14 で修正された。 +.SH 例 .BR mprotect (2) -»²¾È¡£ -.SH ´ØÏ¢¹àÌÜ +参照。 +.SH 関連項目 .BR kill (1), .BR kill (2), .BR killpg (2), diff --git a/release/man2/sigaltstack.2 b/release/man2/sigaltstack.2 index c8fbaa40..19b49637 100644 --- a/release/man2/sigaltstack.2 +++ b/release/man2/sigaltstack.2 @@ -30,21 +30,21 @@ .\" Updated 2005-11-04, Akihiro MOTOKI .\" Updated 2006-01-04, Akihiro MOTOKI, Catch up to LDP 2.20 .\" -.\"WORD: alternate signal stack ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯ -.\"WORD: establish (¥¹¥¿¥Ã¥¯¤Î) ³ÎΩ +.\"WORD: alternate signal stack 代替シグナルスタック +.\"WORD: establish (スタックの) 確立 .\" .TH SIGALTSTACK 2 2010-09-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sigaltstack \- ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤Î¥³¥ó¥Æ¥­¥¹¥È¤òÀßÄꡦ¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +sigaltstack \- シグナルスタックのコンテキストを設定・取得する +.SH 書式 .B #include .sp .BI "int sigaltstack(const stack_t *" ss ", stack_t *" oss ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR sigaltstack (): @@ -54,177 +54,177 @@ glibc _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .br -|| /* glibc 2.12 °Ê¹ß: */ _POSIX_C_SOURCE\ >=\ 200809L +|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\ >=\ 200809L .PD .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR sigaltstack () -¤ò»È¤¦¤È¡¢ -¥×¥í¥»¥¹¤Ï¿·¤·¤¤ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤òÄêµÁ¤·¤¿¤ê¡¢ -´û¸¤ÎÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤Î¾õÂÖ¤ò¼èÆÀ¤Ç¤­¤ë¡£ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤òÍ׵᤹¤ë¤è¤¦¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¤È +を使うと、 +プロセスは新しい代替シグナルスタックを定義したり、 +既存の代替シグナルスタックの状態を取得できる。 +シグナルハンドラが代替シグナルスタックを要求するように設定されていると .RB ( sigaction (2) -»²¾È)¡¢¥Ï¥ó¥É¥é¤Î¼Â¹ÔÃæ¤Ï¤½¤Î¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤¬»È¤ï¤ì¤ë¡£ +参照)、ハンドラの実行中はそのシグナルスタックが使われる。 -ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ò»È¤¦ºÝ¤Î°ìÈÌŪ¤Ê¼ê½ç¤Ï¡¢°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë: +代替シグナルスタックを使う際の一般的な手順は、以下の通りである: .TP 3 1. -ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤Ç»È¤¦¥á¥â¥êÎΰè¤ò³ÎÊݤ¹¤ë¡£ +代替シグナルスタックで使うメモリ領域を確保する。 .TP 2. .BR sigaltstack () -¤ò»È¤Ã¤Æ¡¢ -ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤Î¸ºß¤È¾ì½ê¤ò¥·¥¹¥Æ¥à¤ËÃΤ餻¤ë¡£ +を使って、 +代替シグナルスタックの存在と場所をシステムに知らせる。 .TP 3. .BR sigaction (2) -¤ò»È¤Ã¤Æ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò³ÎΩ¤¹¤ëºÝ¡¢ -\fBSA_ONSTACK\fP ¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤³¤È¤Ë¤è¤ê¡¢ -¤½¤Î¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¾å¤Ç¼Â¹Ô¤¹¤ë¤³¤È¤ò -¥·¥¹¥Æ¥à¤ËÃΤ餻¤ë¡£ +を使ってシグナルハンドラを確立する際、 +\fBSA_ONSTACK\fP フラグを指定することにより、 +そのシグナルハンドラを代替シグナルスタック上で実行することを +システムに知らせる。 .P -\fIss\fP °ú¤­¿ô¤Ï¡¢¿·¤·¤¤¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ò»ØÄꤹ¤ë¤¿¤á¤Ë»È¤¦¡£ -¤Þ¤¿ \fIoss\fP °ú¤­¿ô¤Ï¡¢¸½ºß³ÎΩ¤µ¤ì¤Æ¤¤¤ë -¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Ë»È¤¦¡£ -¤³¤ÎÁàºî¤Î¤¦¤Á 1 ¤Ä¤À¤±¤ò¼Â¹Ô¤µ¤»¤ë¤Ë¤Ï¡¢ -»ÈÍѤ·¤Ê¤¤°ú¤­¿ô¤ò NULL ¤Ë»ØÄꤹ¤ì¤Ð¤è¤¤¡£ -°ú¤­¿ô¤È¤Ê¤ë¹½Â¤ÂΤϡ¢°Ê²¼¤Î¤è¤¦¤Ê·¿¤Ç¤¢¤ë: +\fIss\fP 引き数は、新しいシグナルスタックを指定するために使う。 +また \fIoss\fP 引き数は、現在確立されている +シグナルスタックの情報を取得するために使う。 +この操作のうち 1 つだけを実行させるには、 +使用しない引き数を NULL に指定すればよい。 +引き数となる構造体は、以下のような型である: .sp .in +4n .nf typedef struct { - void *ss_sp; /* ¥¹¥¿¥Ã¥¯¤Î¥Ù¡¼¥¹¥¢¥É¥ì¥¹ */ - int ss_flags; /* ¥Õ¥é¥° */ - size_t ss_size; /* ¥¹¥¿¥Ã¥¯¤Î¥Ð¥¤¥È¿ô */ + void *ss_sp; /* スタックのベースアドレス */ + int ss_flags; /* フラグ */ + size_t ss_size; /* スタックのバイト数 */ } stack_t; .fi .in -¿·µ¬¤ÎÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ò³ÎΩ¤¹¤ë¤Ë¤Ï¡¢ -\fIss.ss_flags\fP ¤ò 0 ¤ËÀßÄꤷ¡¢ -\fIss.ss_sp\fP ¤È \fIss.ss_size\fP ¤Ë -¥¹¥¿¥Ã¥¯¤Î³«»Ï¥¢¥É¥ì¥¹¤È¥¹¥¿¥Ã¥¯¥µ¥¤¥º¤ò»ØÄꤹ¤ë¡£ -Äê¿ô \fBSIGSTKSZ\fP ¤Ï¡¢ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤¬Ä̾ïɬÍפ¹¤ë -¥µ¥¤¥º¤è¤ê¤â½¼Ê¬Â礭¤¯ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤Þ¤¿Äê¿ô \fBMINSIGSTKSZ\fP ¤Ï¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Î¼Â¹Ô¤ËɬÍפʺǾ®¥µ¥¤¥º¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +新規の代替シグナルスタックを確立するには、 +\fIss.ss_flags\fP を 0 に設定し、 +\fIss.ss_sp\fP と \fIss.ss_size\fP に +スタックの開始アドレスとスタックサイズを指定する。 +定数 \fBSIGSTKSZ\fP は、代替シグナルスタックが通常必要する +サイズよりも充分大きく定義されている。 +また定数 \fBMINSIGSTKSZ\fP は、 +シグナルハンドラの実行に必要な最小サイズに定義されている。 -ÂåÂØ¥¹¥¿¥Ã¥¯¤Ç¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬µ¯Æ°¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ -¥«¡¼¥Í¥ë¤Ë¤è¤ê¼«Æ°Åª¤Ë¡¢\fIss.ss_sp\fP ¤Ç»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤Ï -Æ°ºî¤·¤Æ¤¤¤ë¥Ï¡¼¥É¥¦¥§¥¢¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ËŬ¤·¤¿¥¢¥É¥ì¥¹¶­³¦¤Ë -Ä´À°¤µ¤ì¤ë¡£ +代替スタックでシグナルハンドラが起動された場合には、 +カーネルにより自動的に、\fIss.ss_sp\fP で指定されたアドレスは +動作しているハードウェアアーキテクチャに適したアドレス境界に +調整される。 -´û¸¤Î¥¹¥¿¥Ã¥¯¤ò̵¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢ -\fIss.ss_flags\fP ¤ò \fBSS_DISABLE\fP ¤Ë»ØÄꤹ¤ë¡£ -¤³¤Î¾ì¹ç¡¢\fIss\fP ¤Î¾¤Î¥Õ¥£¡¼¥ë¥É¤Ï̵»ë¤µ¤ì¤ë¡£ +既存のスタックを無効にするには、 +\fIss.ss_flags\fP を \fBSS_DISABLE\fP に指定する。 +この場合、\fIss\fP の他のフィールドは無視される。 -\fIoss\fP ¤¬ NULL °Ê³°¤Î¾ì¹ç¡¢ -\fIoss\fP ¤ËÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤Î¾ðÊó¤¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤ì¤Ï (¼Â¼ÁŪ¤Ë) +\fIoss\fP が NULL 以外の場合、 +\fIoss\fP に代替シグナルスタックの情報が返される。 +これは (実質的に) .BR sigaltstack () -¤Î¸Æ¤Ó½Ð¤·¤è¤êÀè¤Ë¹Ô¤ï¤ì¤ë¡£ -\fIoss.ss_sp\fP ¤È \fIoss.ss_size\fP ¥Õ¥£¡¼¥ë¥É¤Ë -¥¹¥¿¥Ã¥¯¤Î³«»Ï¥¢¥É¥ì¥¹¤È¥¹¥¿¥Ã¥¯¥µ¥¤¥º¤¬ÊÖ¤µ¤ì¤ë¡£ -\fIoss.ss_flags\fP ¤Ë¤Ï°Ê²¼¤Î¤É¤Á¤é¤«¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë: +の呼び出しより先に行われる。 +\fIoss.ss_sp\fP と \fIoss.ss_size\fP フィールドに +スタックの開始アドレスとスタックサイズが返される。 +\fIoss.ss_flags\fP には以下のどちらかの値が返される: .TP .B SS_ONSTACK -¥×¥í¥»¥¹¤¬ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¾å¤Ç¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë -(¥×¥í¥»¥¹¤¬´û¤Ë¤½¤Î¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¾å¤Ç¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ -¤½¤ì¤ÈƱ¤¸¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤Ë¤ÏÊѹ¹¤Ç¤­¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È)¡£ +プロセスが代替シグナルスタック上で実行されている +(プロセスが既にそのシグナルスタック上で実行されている場合は、 +それと同じシグナルスタックには変更できない点に注意すること)。 .TP .B SS_DISABLE -ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤¬¸½ºß̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -.SH ÊÖ¤êÃÍ +代替シグナルスタックが現在無効になっている。 +.SH 返り値 .BR sigaltstack () -¤ÏÀ®¸ù¤·¤¿¾ì¹ç 0 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¤Æ¡¢ -¥¨¥é¡¼¤ò¼¨¤¹ÃÍ¤Ë \fIerrno\fP ¤òÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +は成功した場合 0 を返す。 +失敗した場合は \-1 を返して、 +エラーを示す値に \fIerrno\fP を設定する。 +.SH エラー .TP .B EFAULT -\fIss\fP ¤Þ¤¿¤Ï \fIoss\fP ¤Î¤É¤Á¤é¤¬¡¢NULL °Ê³°¤Ç¡¢ -¤«¤Ä¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +\fIss\fP または \fIoss\fP のどちらが、NULL 以外で、 +かつプロセスのアドレス空間の外を指している。 .TP .B EINVAL -\fIss\fP ¤¬ NULL °Ê³°¤Ç¡¢\fIss_flags\fP ¥Õ¥£¡¼¥ë¥É¤¬ +\fIss\fP が NULL 以外で、\fIss_flags\fP フィールドが .B SS_DISABLE -°Ê³°¤Î 0 ¤Ç¤Ê¤¤ÃͤˤʤäƤ¤¤ë¡£ +以外の 0 でない値になっている。 .TP .B ENOMEM -¿·¤·¤¤ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯ (\fIss.ss_size\fP) ¤Ë»ØÄꤷ¤¿¥µ¥¤¥º¤¬ -\fBMINSTKSZ\fP ¤è¤ê¾®¤µ¤¤¡£ +新しい代替シグナルスタック (\fIss.ss_size\fP) に指定したサイズが +\fBMINSTKSZ\fP より小さい。 .TP .B EPERM -ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤¬Í­¸ú¤Ç¤¢¤ë¤È¤­¤ËÊѹ¹¤ò¹Ô¤ª¤¦¤È¤·¤¿ -(¤Ä¤Þ¤ê¡¢¥×¥í¥»¥¹¤¬´û¤Ë¸½ºß¤ÎÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¾å¤Ç¼Â¹Ô¤µ¤ì¤Æ¤¤¤¿)¡£ -.SH ½àµò +代替シグナルスタックが有効であるときに変更を行おうとした +(つまり、プロセスが既に現在の代替シグナルスタック上で実行されていた)。 +.SH 準拠 SUSv2, SVr4, POSIX.1-2001. -.SH Ãí°Õ -ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ò»ÈÍѤ¹¤ëºÇ¤â¤è¤¯¤¢¤ë¾ìÌ̤ϡ¢ +.SH 注意 +代替シグナルスタックを使用する最もよくある場面は、 .B SIGSEGV -¥·¥°¥Ê¥ë¤ò°·¤¦¤È¤­¤Ç¤¢¤ë¡£ +シグナルを扱うときである。 .B SIGSEGV -¤Ï¥×¥í¥»¥¹¤ÎÄ̾ï¤Î¥¹¥¿¥Ã¥¯¤¬ÍøÍѤǤ­¤ë¶õ´Ö¤¬»È¤¤²Ì¤¿¤µ¤ì¤¿ºÝ¤Ë -À¸À®¤µ¤ì¤ë¥·¥°¥Ê¥ë¤Ç¤¢¤ë¡£¤³¤Î¾ì¹ç¤Ë¤Ï¡¢ +はプロセスの通常のスタックが利用できる空間が使い果たされた際に +生成されるシグナルである。この場合には、 .B SIGSEGV -ÍѤΥ·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò¥×¥í¥»¥¹¤Î¥¹¥¿¥Ã¥¯¾å¤Ç¤Ïµ¯Æ°¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ -¤½¤Î¤¿¤á¡¢¤³¤Î¥·¥°¥Ê¥ë¤ò°·¤ª¤¦¤È¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢ -ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ò»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +用のシグナルハンドラをプロセスのスタック上では起動することができない。 +そのため、このシグナルを扱おうとする場合には、 +代替シグナルスタックを使用しなければならない。 .P -¥×¥í¥»¥¹¤¬É¸½à¤Î¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ò»È¤¤²Ì¤¿¤¹¤³¤È¤¬Í½ÁÛ¤µ¤ì¤ë¾ì¹ç¤Ï¡¢ -ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ò³ÎΩ¤¹¤ë¤ÈÊØÍø¤Ç¤¢¤ë¡£ -Î㤨¤Ð¡¢¥¹¥¿¥Ã¥¯¤¬ºÇ¾å°Ì¥¢¥É¥ì¥¹¤«¤é -²¼°Ì¥¢¥É¥ì¥¹Êý¸þ¤ËÈó¾ï¤Ë¤¿¤¯¤µ¤óÀѤޤì¤Æ¤·¤Þ¤¦¤³¤È¤Ç¡¢ -ºÇ²¼°Ì¥¢¥É¥ì¥¹¤«¤é¾å°Ì¥¢¥É¥ì¥¹Êý¸þ¤ËÀѤޤì¤ë¥Ò¡¼¥×¤È¤Ö¤Ä¤«¤Ã¤Æ¤·¤Þ¤¦¾ì¹ç¤ä¡¢ -\fBsetrlimit(RLIMIT_STACK, &rlim)\fP ¤Î¸Æ¤Ó½Ð¤·¤Ç³ÎΩ¤µ¤ì¤¿ -À©¸Â¤Ë㤷¤Æ¤·¤Þ¤Ã¤¿¾ì¹ç¤Ë¡¢¤³¤ÎÍͤʻö¤¬µ¯¤³¤ë¡£ -ɸ½à¤Î¥¹¥¿¥Ã¥¯¤ò»È¤¤²Ì¤¿¤·¤Æ¤·¤Þ¤¦¤È¡¢ -¥«¡¼¥Í¥ë¤Ï¥×¥í¥»¥¹¤Ë \fBSIGSEGV\fP ¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ -¤³¤Î¤è¤¦¤Ê¾õ¶·¤Ç¤Ï¡¢ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¾å¤Ç¤·¤«¥·¥°¥Ê¥ë¤ò¥­¥ã¥Ã¥Á¤Ç¤­¤Ê¤¤¡£ +プロセスが標準のシグナルスタックを使い果たすことが予想される場合は、 +代替シグナルスタックを確立すると便利である。 +例えば、スタックが最上位アドレスから +下位アドレス方向に非常にたくさん積まれてしまうことで、 +最下位アドレスから上位アドレス方向に積まれるヒープとぶつかってしまう場合や、 +\fBsetrlimit(RLIMIT_STACK, &rlim)\fP の呼び出しで確立された +制限に達してしまった場合に、この様な事が起こる。 +標準のスタックを使い果たしてしまうと、 +カーネルはプロセスに \fBSIGSEGV\fP シグナルを送る。 +このような状況では、代替シグナルスタック上でしかシグナルをキャッチできない。 .P -Linux ¤¬¥µ¥Ý¡¼¥È¤¹¤ë¿¤¯¤Î¥Ï¡¼¥É¥¦¥§¥¢¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢ -¥¹¥¿¥Ã¥¯¤Ï²¼°Ì¥¢¥É¥ì¥¹Êý¸þ¤ËÀѤޤì¤ë¡£ +Linux がサポートする多くのハードウェアアーキテクチャでは、 +スタックは下位アドレス方向に積まれる。 .BR sigaltstack () -¤Ï¥¹¥¿¥Ã¥¯¤¬ÀѤޤì¤ëÊý¸þ¤ò¼«Æ°Åª¤Ë·èÄꤹ¤ë¡£ +はスタックが積まれる方向を自動的に決定する。 .P -ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¾å¤Ç¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤«¤é¸Æ¤Ð¤ì¤ë´Ø¿ô¤â¡¢ÂåÂØ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò»È¤¦ -(¥×¥í¥»¥¹¤¬ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¾å¤Ç¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¾¤Î¥·¥°¥Ê¥ë¤Ç¸Æ¤Ó½Ð¤µ¤ì¤ë¥Ï¥ó¥É¥é¤â¤³¤ÎÂåÂØ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò»È¤¦)¡£ -ɸ½à¤Î¥¹¥¿¥Ã¥¯¤È¤Ï°Û¤Ê¤ê¡¢ -¥·¥¹¥Æ¥à¤ÏÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ò¼«Æ°Åª¤Ë³ÈÄ¥¤·¤Ê¤¤¡£ -ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯ÍѤ˳ÎÊݤ·¤¿¥µ¥¤¥º¤ò±Û¤¨¤¿¾ì¹ç¡¢ -·ë²Ì¤ÏͽÁۤǤ­¤Ê¤¤¡£ +代替シグナルスタック上で実行されている +シグナルハンドラから呼ばれる関数も、代替シグナルハンドラを使う +(プロセスが代替シグナルスタック上で実行されている場合、 +他のシグナルで呼び出されるハンドラもこの代替シグナルハンドラを使う)。 +標準のスタックとは異なり、 +システムは代替シグナルスタックを自動的に拡張しない。 +代替シグナルスタック用に確保したサイズを越えた場合、 +結果は予想できない。 .P .BR execve (2) -¤Î¸Æ¤Ó½Ð¤·¤¬À®¸ù¤¹¤ë¤È¡¢ -´û¸¤ÎÁ´¤Æ¤ÎÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤¬ºï½ü¤µ¤ì¤ë¡£ +の呼び出しが成功すると、 +既存の全ての代替シグナルスタックが削除される。 .BR fork (2) -·Ðͳ¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢¿Æ¥×¥í¥»¥¹¤ÎÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤Î -ÀßÄê¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£ +経由で作成された子プロセスは、親プロセスの代替シグナルスタックの +設定のコピーを継承する。 .P .BR sigaltstack () -¤Ï°ÊÁ°¤Î +は以前の .BR sigstack () -¤òÃÖ¤­´¹¤¨¤ë¤â¤Î¤Ç¤¢¤ë¡£ -²áµî¥×¥í¥°¥é¥à¤È¤Î¸ß´¹À­¤Î¤¿¤á¡¢glibc ¤Ç¤Ï +を置き換えるものである。 +過去プログラムとの互換性のため、glibc では .BR sigstack () -¤âÄ󶡤·¤Æ¤¤¤ë¡£ -¿·¤·¤¤¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÏÁ´¤Æ +も提供している。 +新しいのアプリケーションは全て .BR sigaltstack () -¤ò»È¤Ã¤Æ½ñ¤¯¤Ù¤­¤Ç¤¢¤ë¡£ -.SS Îò»Ë -4.2BSD ¤Ë¤Ï +を使って書くべきである。 +.SS 歴史 +4.2BSD には .BR sigstack () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤¢¤Ã¤¿¡£ -¤³¤Î´Ø¿ô¤Ï¾¯¤·°Û¤Ê¤Ã¤¿¹½Â¤ÂΤò»È¤Ã¤Æ¤ª¤ê¡¢ -¸Æ¤Ó½Ð¤·¤¿Â¦¤¬¥¹¥¿¥Ã¥¯¤ÎÀѤޤì¤ëÊý¸þ¤òÃΤäƤ¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤È¤¤¤¦ -Â礭¤Ê·çÅÀ¤¬¤¢¤Ã¤¿¡£ -.SH Îã -°Ê²¼¤Î¥³¡¼¥É¤Ç +システムコールがあった。 +この関数は少し異なった構造体を使っており、 +呼び出した側がスタックの積まれる方向を知っていなければならないという +大きな欠点があった。 +.SH 例 +以下のコードで .BR sigaltstack () -¤Î»ÈÍÑË¡¤Î°ìÉô¤ò¼¨¤¹: +の使用法の一部を示す: .in +4n .nf @@ -232,14 +232,14 @@ stack_t ss; ss.ss_sp = malloc(SIGSTKSZ); if (ss.ss_sp == NULL) - /* ¥Ï¥ó¥É¥ë¥¨¥é¡¼ */; + /* ハンドルエラー */; ss.ss_size = SIGSTKSZ; ss.ss_flags = 0; if (sigaltstack(&ss, NULL) == \-1) - /* ¥Ï¥ó¥É¥ë¥¨¥é¡¼ */; + /* ハンドルエラー */; .fi .in -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR execve (2), .BR setrlimit (2), .BR sigaction (2), diff --git a/release/man2/sigblock.2 b/release/man2/sigblock.2 index 8bea5bc2..8c53909b 100644 --- a/release/man2/sigblock.2 +++ b/release/man2/sigblock.2 @@ -40,16 +40,16 @@ .\" Translated Mon Mar 3 23:27:30 JST 1997 .\" by HANATAKA Shinya .\" -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: mask ¥Þ¥¹¥¯ -.\"WORD: obsolete ÇÑ»ß -.\"WORD: block ¶Ø»ß(block) -.\"WORD: prototype ·¿Àë¸À +.\"WORD: signal シグナル +.\"WORD: mask マスク +.\"WORD: obsolete 廃止 +.\"WORD: block 禁止(block) +.\"WORD: prototype 型宣言 .\" .TH SIGBLOCK 2 1995-08-31 "Linux 1.3" "Linux Programmer's Manual" -.SH ̾Á° -sigblock, siggetmask, sigsetmask, sigmask \- ¥·¥°¥Ê¥ë¤Î¥Þ¥¹¥¯¤òÁàºî¤¹¤ë -.SH ½ñ¼° +.SH 名前 +sigblock, siggetmask, sigsetmask, sigmask \- シグナルのマスクを操作する +.SH 書式 .B #include .sp .BI "int sigblock(int " mask ); @@ -59,58 +59,58 @@ sigblock, siggetmask, sigsetmask, sigmask \- .BI "int sigsetmask(int " mask ); .sp .BI "int sigmask(int " signum ); -.SH ÀâÌÀ -¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï +.SH 説明 +このインターフェースは .BR sigprocmask (2) -¤Ë¤è¤Ã¤ÆÇÑ»ß (obsolete) ¤µ¤ì¤¿¡£ +によって廃止 (obsolete) された。 .BR sigblock () -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï +システム・コールは .I mask -¤Ç»ØÄꤷ¤¿¥·¥°¥Ê¥ë¤ò¸½ºßÇÛÁ÷¤¬¶Ø»ß (block) ¤µ¤ì¤Æ¤¤¤ë -¥·¥°¥Ê¥ë¤Î½¸¹ç¤ËÄɲ乤롣 +で指定したシグナルを現在配送が禁止 (block) されている +シグナルの集合に追加する。 .PP .BR sigsetmask () -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤Î½¸¹ç¤ò +システム・コールは禁止されているシグナルの集合を .IR mask -¤Ç»ØÄꤵ¤ì¤¿¿·¤·¤¤½¸¹ç¤Ë´°Á´¤ËÃÖ¤­´¹¤¨¤ë¡£ -¥·¥°¥Ê¥ë¤Ï +で指定された新しい集合に完全に置き換える。 +シグナルは .I mask -¤ÎÂбþ¤¹¤ë¥Ó¥Ã¥È¤¬ 1 ¤Î¾ì¹ç¤Ë¶Ø»ß¤µ¤ì¤ë¡£ +の対応するビットが 1 の場合に禁止される。 .PP -¸½ºß¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤Î½¸¹ç¤Ï +現在禁止されているシグナルの集合は .BR siggetmask () -¤ò»ÈÍѤ·¤ÆÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使用して得ることができる。 .PP .BR sigmask () -¥Þ¥¯¥í¤ÏÍ¿¤¨¤é¤ì¤¿ +マクロは与えられた .I signum -¤Î¥Þ¥¹¥¯¤òÁȤßΩ¤Æ¤ë¤¿¤á¤ËÄ󶡤µ¤ì¤ë¡£ +のマスクを組み立てるために提供される。 -.SH ÊÖ¤êÃÍ +.SH 返り値 .BR siggetmask () -¸½ºß¤Î¥Þ¥¹¥¯¤µ¤ì¤¿¥·¥°¥Ê¥ë¤Î½¸¹ç¤òÊÖ¤¹¡£ +現在のマスクされたシグナルの集合を返す。 .BR sigsetmask () -¤È +と .BR sigblock () -¤Ïº£¤Þ¤Ç¤Î¥Þ¥¹¥¯¤µ¤ì¤¿¥·¥°¥Ê¥ë¤Î½¸¹ç¤òÊÖ¤¹¡£ -.SH Ãí°Õ -¤³¤ì¤é¤Î´Ø¿ô¤Î·¿Àë¸À(prototype)¤ÏÁ´¤Æ¤Î¥·¥¹¥Æ¥à¡¦¥Ø¥Ã¥À¤¬ -¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤ëÁ°¤Ë +は今までのマスクされたシグナルの集合を返す。 +.SH 注意 +これらの関数の型宣言(prototype)は全てのシステム・ヘッダが +インクルードされる前に .B _BSD_SOURCE -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Î¤ßÍ¿¤¨¤é¤ì¤ë¡£ +が定義されている場合のみ与えられる。 .PP .B SIGKILL -¤ä +や .B SIGSTOP -¤ò¶Ø»ß¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -\- ¤³¤ÎÀ©¸Â¤Ï¥·¥¹¥Æ¥à¤Ë¤è¤Æ̵¸À¤Î¤¦¤Á¤ËŬÍѤµ¤ì¤ë¡£ +を禁止することはできない。 +\- この制限はシステムによて無言のうちに適用される。 -.SH ½àµò -4.4BSD. ¤³¤ì¤é¤Î´Ø¿ô¤Ï 4.3BSD ¤ÇÅо줷¡¢ÇÑ»ßͽÄê¤Ç¤¢¤ë¡£ -¿·¤·¤¤¥×¥í¥°¥é¥à¤Ç¤Ï POSIX ¥·¥°¥Ê¥ë¤ò»ÈÍѤ¹¤ë¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +.SH 準拠 +4.4BSD. これらの関数は 4.3BSD で登場し、廃止予定である。 +新しいプログラムでは POSIX シグナルを使用すること。 +.SH 関連項目 .BR kill (2), .BR sigprocmask (2), .BR signal (7) diff --git a/release/man2/signal.2 b/release/man2/signal.2 index ddad3451..e024e641 100644 --- a/release/man2/signal.2 +++ b/release/man2/signal.2 @@ -43,259 +43,259 @@ .\" Updated 2007-06-13, Akihiro MOTOKI, LDP v2.55 .\" Updated 2008-08-08, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: signal handler ¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é -.\"WORD: library ¥é¥¤¥Ö¥é¥ê -.\"WORD: semantics Êý¼° -.\"WORD: prototype ·¿Àë¸À -.\"WORD: architecture ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¡¼ -.\"WORD: endless loop ̵¸Â¥ë¡¼¥× -.\"WORD: feature test macro µ¡Ç½¸¡ºº¥Þ¥¯¥í -.\"WORD: disposition ½èÍýÊýË¡ +.\"WORD: signal シグナル +.\"WORD: signal handler シグナル・ハンドラ +.\"WORD: library ライブラリ +.\"WORD: semantics 方式 +.\"WORD: prototype 型宣言 +.\"WORD: architecture アーキテクチャー +.\"WORD: endless loop 無限ループ +.\"WORD: feature test macro 機能検査マクロ +.\"WORD: disposition 処理方法 .\" .TH SIGNAL 2 2008-07-11 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -signal \- ANSI C ¥·¥°¥Ê¥ëÁàºî -.SH ½ñ¼° +.SH 名前 +signal \- ANSI C シグナル操作 +.SH 書式 .B #include .sp .B typedef void (*sighandler_t)(int); .sp .BI "sighandler_t signal(int " signum ", sighandler_t " sighandler ); -.SH ÀâÌÀ +.SH 説明 .BR signal () -¤ÎÆ°ºî¤Ï UNIX ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤ê°Û¤Ê¤ë¡£ -¤Þ¤¿¡¢Îò»ËŪ¤Ë¸«¤Æ Linux ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤Ã¤Æ¤â°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ -\fB¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î»ÈÍѤÏÈò¤±¡¢\fP -Âå¤ï¤ê¤Ë +の動作は UNIX のバージョンにより異なる。 +また、歴史的に見て Linux のバージョンによっても異なっている。 +\fBこのシステムコールの使用は避け、\fP +代わりに .BR sigaction (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ -²¼µ­¤Î¡Ö°Ü¿¢À­¡×¤ò»²¾È¡£ +を使用すること。 +下記の「移植性」を参照。 .BR signal () -¤Ï¥·¥°¥Ê¥ë +はシグナル .I signum -¤Î½èÍýÊýË¡¤ò +の処理方法を .I handler -¤ËÀßÄꤹ¤ë¡£ +に設定する。 .I handler -¤Ë¤Ï¡¢ -.BR SIG_IGN "¡¢" -.BR SIG_DFL "¡¢" -¥×¥í¥°¥é¥Þ¤¬ÄêµÁ¤·¤¿´Ø¿ô (¡Ö¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¡×) ¤Î¥¢¥É¥ì¥¹¤Î -¤¤¤º¤ì¤«¤ò»ØÄꤹ¤ë¡£ +には、 +.BR SIG_IGN "、" +.BR SIG_DFL "、" +プログラマが定義した関数 (「シグナル・ハンドラ」) のアドレスの +いずれかを指定する。 -¥·¥°¥Ê¥ë +シグナル .I signum -¤¬¥×¥í¥»¥¹¤ËÇÛÁ÷¤µ¤ì¤ë¤È¡¢°Ê²¼¤Î¤¤¤º¤ì¤«¤¬È¯À¸¤¹¤ë¡£ +がプロセスに配送されると、以下のいずれかが発生する。 .TP 3 * -½èÍýÊýË¡¤¬ +処理方法が .B SIG_IGN -¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¤½¤Î¥·¥°¥Ê¥ë¤Ï̵»ë¤µ¤ì¤ë¡£ +に設定されている場合、そのシグナルは無視される。 .TP * -½èÍýÊýË¡¤¬ +処理方法が .B SIG_DFL -¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥·¥°¥Ê¥ë¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿ -¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤¬¹Ô¤ï¤ì¤ë +に設定されている場合、シグナルに関連づけられた +デフォルトの動作が行われる .RB ( signal (7) -»²¾È)¡£ +参照)。 .TP * -½èÍýÊýË¡¤È¤·¤Æ´Ø¿ô¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¤Þ¤ººÇ½é¤Ë½èÍýÊýË¡¤¬ +処理方法として関数が設定されている場合、 +まず最初に処理方法が .B SIG_DFL -¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë¤«¤½¤Î¥·¥°¥Ê¥ë¤Î¥Ö¥í¥Ã¥¯¤¬¼Â¹Ô¤µ¤ì¤¿¸å¡¢ +にリセットされるかそのシグナルのブロックが実行された後、 .I signum -¤ò°ú¤­¿ô¤È¤·¤Æ +を引き数として .I handler -¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ -¥Ï¥ó¥É¥é¤¬µ¯Æ°¤µ¤ì¤ëºÝ¤Ë¥·¥°¥Ê¥ë¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤¿¾ì¹ç¡¢ -¥Ï¥ó¥É¥é¤¬ÊÖ¤ëºÝ¤Ë¤½¤Î¥·¥°¥Ê¥ë¤Î¥Ö¥í¥Ã¥¯¤¬²ò½ü¤µ¤ì¤ë¡£ +が呼び出される。 +ハンドラが起動される際にシグナルがブロックされた場合、 +ハンドラが返る際にそのシグナルのブロックが解除される。 .PP -¥·¥°¥Ê¥ë +シグナル .B SIGKILL -¤È +と .B SIGSTOP -¤ÏÊ᪤Ǥ­¤º¡¢Ìµ»ë¤¹¤ë¤³¤È¤â¤Ç¤­¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +は捕捉できず、無視することもできない。 +.SH 返り値 .BR signal () -¤Ï¡¢º£¤Þ¤Ç¤Î¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤ÎÃͤòÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï +は、今までのシグナル・ハンドラの値を返す。エラーの場合は .B SIG_ERR -¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +を返す。 +.SH エラー .TP .B EINVAL .I signum -¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ -.SH ½àµò +が不正である。 +.SH 準拠 C89, C99, POSIX.1-2001. -.SH Ãí°Õ -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥×¥í¥»¥¹¤Ë¤ª¤±¤ë +.SH 注意 +マルチスレッドプロセスにおける .BR signal () -¤Î·ë²Ì¤Ï¡¢»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +の結果は、指定されていない。 .PP -POSIX ¤Ë¤è¤ë¤È¡¢ +POSIX によると、 .BR kill (2) -¤ä +や .BR raise (3) -¤ÇÀ¸À®¤Ç¤­¤Ê¤¤ +で生成できない .BR SIGFPE , .BR SIGILL , .B SIGSEGV -¥·¥°¥Ê¥ë¤ò̵»ë¤·¤¿¸å¤ÎÆ°ºî¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ -0 ¤Ë¤è¤ëÀ°¿ô³ä¤ê»»¤Î·ë²Ì¤Ï̤ÄêµÁ¤È¤Ê¤ë¡£ -¤¢¤ë¼ï¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢¤³¤ì¤Ï +シグナルを無視した後の動作は未定義である。 +0 による整数割り算の結果は未定義となる。 +ある種のアーキテクチャでは、これは .B SIGFPE -¥·¥°¥Ê¥ë¤òÀ¸À®¤¹¤ë¡£ -(ƱÍͤËÉé¤ÎºÇÂçÀ°¿ô¤ò \-1 ¤Ç³ä¤ë¤È +シグナルを生成する。 +(同様に負の最大整数を \-1 で割ると .B SIGFPE -¤¬À¸À®¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£) -¤³¤Î¥·¥°¥Ê¥ë¤ò̵»ë¤¹¤ë¤È̵¸Â¥ë¡¼¥×¤Ë´Ù¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +が生成されるかもしれない。) +このシグナルを無視すると無限ループに陥るかもしれない。 .PP .B SIGCHLD -¤ÎÆ°ºî¤È¤·¤Æ +の動作として .B SIG_IGN -¤òÀßÄꤷ¤¿¾ì¹ç¤Î¾ÜºÙ¤ÊÆ°ºî¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +を設定した場合の詳細な動作については、 .BR sigaction (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .PP -¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥éÆ⤫¤é°ÂÁ´¤Ë¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡¢ -async-signal-safe functions (ÈóƱ´ü¥·¥ó¥°¥ë¤Ç°ÂÁ´¤Ê´Ø¿ô) ¤Î -¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¤Ï +シグナル・ハンドラ内から安全に呼び出すことができる、 +async-signal-safe functions (非同期シングルで安全な関数) の +リストについては .BR signal (7) -¤ò»²¾È¡£ +を参照。 .PP .I sighandler_t -¤Î»ÈÍÑ¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ë¡£ -³Æ¼ï¥Ð¡¼¥¸¥ç¥ó¤Î libc ¤Ç¤³¤Î·¿¤ÏÄêµÁºÑ¤ß¤Ç¤¢¤ë; -libc4 ¤È libc5 ¤Ç¤Ï +の使用は GNU 拡張である。 +各種バージョンの libc でこの型は定義済みである; +libc4 と libc5 では .I SignalHandler -¤òÄêµÁ¤·¤Æ¤¤¤ë¡£ -glibc ¤Ç¤Ï +を定義している。 +glibc では .I sig_t -¤òÄêµÁ¤·¤Æ¤ª¤ê¡¢ +を定義しており、 .B _GNU_SOURCE -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï +が定義されている場合には .I sighandler_t -¤âÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¤è¤¦¤Ê·¿¤ò»ÈÍѤ·¤Ê¤¤¤È¡¢ +も定義されている。 +このような型を使用しないと、 .BR signal () -¤ÎÀë¸À¤ÏÆɤߤˤ¯¤¤¤â¤Î¤È¤Ê¤ë¡£ +の宣言は読みにくいものとなる。 .in +4n .nf .BI "void ( *" signal "(int " signum ", void (*" handler ")(int)) ) (int);" .fi .in -.SS °Ü¿¢À­ -°Ü¿¢À­¤Î¤¢¤ë +.SS 移植性 +移植性のある .BR signal () -¤Î»È¤¤Êý¤Ï¡¢¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤ò +の使い方は、シグナルの処理方法を .BR SIG_DFL -¤« +か .BR SIG_IGN -¤ËÀßÄꤹ¤ëÊýË¡¤À¤±¤Ç¤¢¤ë¡£ -¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤òÀßÄꤹ¤ë¤Î¤Ë +に設定する方法だけである。 +シグナル・ハンドラを設定するのに .BR signal () -¤ò»È¤Ã¤¿¤È¤­¤ÎÆ°ºî¤Ï¥·¥¹¥Æ¥à¤Ë¤è¤ê°Û¤Ê¤ë -(POSIX.1 ¤ÏÌÀ¼¨Åª¤Ë¤³¤Î°ã¤¤¤òǧ¤á¤Æ¤¤¤ë)¡£ -.B "°Ü¿¢À­¤¬É¬ÍפʤȤ­¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»ÈÍѤ·¤Ê¤¤¤³¤È¡£" +を使ったときの動作はシステムにより異なる +(POSIX.1 は明示的にこの違いを認めている)。 +.B "移植性が必要なときはこのシステムコールを使用しないこと。" -POSIX.1 ¤Ï¡¢ +POSIX.1 は、 .BR sigaction (2) -¤òµ¬Äꤹ¤ë¤³¤È¤Ç°Ü¿¢À­¤Ë´Ø¤¹¤ëº®Íð¤ò²ò·è¤·¤¿¡£ +を規定することで移植性に関する混乱を解決した。 .BR sigaction (2) -¤Ï¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤¬µ¯Æ°¤µ¤ì¤ëºÝ¤ÎµóÆ°¤òÌÀ¼¨Åª¤ËÀ©¸æ¤Ç¤­¤ë¡£ +はシグナル・ハンドラが起動される際の挙動を明示的に制御できる。 .BR signal () -¤ÎÂå¤ï¤ê¤Ë¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤ò»È¤¦¤³¤È¡£ +の代わりにこのインターフェイスを使うこと。 -¥ª¥ê¥¸¥Ê¥ë¤Î UNIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +オリジナルの UNIX システムでは、 .BR signal () -¤ò»È¤Ã¤ÆÀßÄꤵ¤ì¤¿¥Ï¥ó¥É¥é¤¬¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤Ë¤è¤êµ¯Æ°¤µ¤ì¤ë¤È¡¢ -¤½¤Î¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤Ï +を使って設定されたハンドラがシグナルの配送により起動されると、 +そのシグナルの処理方法は .B SIG_DFL -¤Ë¥ê¥»¥Ã¥È¤µ¤ì¡¢¥·¥¹¥Æ¥à¤ÏƱ¤¸¥·¥°¥Ê¥ë¤¬¤µ¤é¤ËÀ¸À®¤µ¤ì¤Æ¤â -¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤ò¥Ö¥í¥Ã¥¯¤·¤Ê¤«¤Ã¤¿¡£ -System V ¤Ç¤â¡¢ +にリセットされ、システムは同じシグナルがさらに生成されても +シグナルの配送をブロックしなかった。 +System V でも、 .BR signal () -¤ËÂФ·¤Æ¤³¤ì¤é¤ÎµóÆ°¤òµ¬Äꤷ¤Æ¤¤¤ë¡£ -¤³¤¦¤·¤¿µóÆ°¤Ï¤Þ¤º¤¯¡¢¥Ï¥ó¥É¥é¤¬¥Ï¥ó¥É¥é¼«¿È¤òºÆÀßÄꤹ¤ëµ¡²ñ¤¬ -Íè¤ë¤è¤êÁ°¤Ë¡¢Æ±¤¸¥·¥°¥Ê¥ë¤¬¤Þ¤¿ÇÛÁ÷¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¤µ¤é¤Ë¡¢Æ±¤¸¥·¥°¥Ê¥ë¤¬Î©¤Æ³¤±¤ËÇÛÁ÷¤µ¤ì¤ë¤È¡¢Æ±¤¸¥·¥°¥Ê¥ë¤¬ -¥Ï¥ó¥É¥é¤ò·«¤êÊÖ¤·µ¯Æ°¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ +に対してこれらの挙動を規定している。 +こうした挙動はまずく、ハンドラがハンドラ自身を再設定する機会が +来るより前に、同じシグナルがまた配送される可能性がある。 +さらに、同じシグナルが立て続けに配送されると、同じシグナルが +ハンドラを繰り返し起動されることになる。 -BSD ¤Ç¤Ï¡¢¥·¥°¥Ê¥ë½èÍý¤ÎµóÆ°¤òÊѹ¹¤¹¤ë¤³¤È¤Ç¡¢¤³¤Î¾õ¶·¤ò²þÁ±¤·¤¿ -(¤·¤«¤·¡¢»ÄÇ°¤Ê¤³¤È¤Ë¡¢ +BSD では、シグナル処理の挙動を変更することで、この状況を改善した +(しかし、残念なことに、 .BR signal () -¤ò»È¤Ã¤Æ¥Ï¥ó¥É¥é¤òÀßÄꤹ¤ëºÝ¤ËµóÆ°¤¬ÌۤäÆÊѹ¹¤µ¤ì¤ë)¡£ -BSD ¤Ç¤Ï¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬µ¯Æ°¤µ¤ì¤¿ºÝ¡¢ -¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤Ï¥ê¥»¥Ã¥È¤µ¤ì¤º¡¢ -¥Ï¥ó¥É¥é¤Î¼Â¹ÔÃæ¤Ï¡¢Æ±¤¸¥·¥°¥Ê¥ë¤Î¤µ¤é¤Ê¤ëÀ¸À®¤ÏÇÛÁ÷¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¡£ +を使ってハンドラを設定する際に挙動が黙って変更される)。 +BSD では、シグナルハンドラが起動された際、 +シグナルの処理方法はリセットされず、 +ハンドラの実行中は、同じシグナルのさらなる生成は配送がブロックされる。 -Linux ¤Ç¤Î¾õ¶·¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +Linux での状況は以下の通りである。 .IP * 2 -¥«¡¼¥Í¥ë¤Î +カーネルの .BR signal () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï System V Êý¼°¤òÄ󶡤·¤Æ¤¤¤ë¡£ +システムコールは System V 方式を提供している。 .IP * -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢glibc 2 °Ê¹ß¤Ç¤Ï¡¢ +デフォルトでは、glibc 2 以降では、 .BR signal () -¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¥«¡¼¥Í¥ë¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤·¤Ê¤¤¡£ -Âå¤ï¤ê¤Ë¡¢¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï BSD Êý¼°¤ò¼¨¤¹¥Õ¥é¥°¤ò»È¤Ã¤Æ +ラッパー関数はカーネルのシステムコールを起動しない。 +代わりに、ラッパー関数は BSD 方式を示すフラグを使って .BR sigaction (2) -¤ò¸Æ¤Ó½Ð¤¹¡£ -µ¡Ç½¸¡ºº¥Þ¥¯¥í +を呼び出す。 +機能検査マクロ .B _BSD_SOURCE -¤òÄêµÁ¤·¤Æ¤¤¤ì¤Ð¡¢¤³¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤È¤Ê¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +を定義していれば、このデフォルトの動作となる。 +デフォルトでは、 .B _BSD_SOURCE -¤¬ÄêµÁ¤µ¤ì¤ë¡£ +が定義される。 .B _BSD_SOURCE -¤Ï +は .B _GNU_SOURCE -¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï°ÅÌۤΤ¦¤Á¤ËÄêµÁ¤µ¤ì¡¢ -¤â¤Á¤í¤óÌÀ¼¨Åª¤ËÄêµÁ¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +が定義された場合には暗黙のうちに定義され、 +もちろん明示的に定義することもできる。 .sp -glibc 2 °Ê¹ß¤Ç¤Ï¡¢µ¡Ç½¸¡ºº¥Þ¥¯¥í +glibc 2 以降では、機能検査マクロ .B _BSD_SOURCE -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ +が定義されていなければ、 .BR signal () -¤Ï System V Êý¼°¤È¤Ê¤ë¡£ +は System V 方式となる。 .RB ( gcc (1) -¤¬É¸½à»ØÄê¥â¡¼¥É +が標準指定モード .RI ( -std=xxx " or " -ansi ) -¤Çµ¯Æ°¤µ¤ì¤¿¾ì¹ç¡¢¤â¤·¤¯¤Ï +で起動された場合、もしくは .BR _POSIX_SOURCE , .BR _XOPEN_SOURCE , .B _SVID_SOURCE -¤È¤¤¤Ã¤¿Â¾¤ÎÍÍ¡¹¤Êµ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¡¢ -¥Ç¥Õ¥©¥ë¥È¤Î +といった他の様々な機能検査マクロが定義された場合、 +デフォルトの .B _BSD_SOURCE -¤Î°ÅÌÛ¤ÎÄêµÁ¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ +の暗黙の定義は行われない。 .BR feature_test_macros (7) -¤ò»²¾È¤Î¤³¤È¡£) +を参照のこと。) .\" .\" System V semantics are also provided if one uses the separate .\" .BR sysv_signal (3) .\" function. .IP * -Linux ¤Î libc4 ¤È libc5 ¤Î +Linux の libc4 と libc5 の .BR signal () -´Ø¿ô¤Ï System V Êý¼°¤Ç¤¢¤ë¡£ -libc5 ¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ +関数は System V 方式である。 +libc5 システムにおいて .I -¤Î¤«¤ï¤ê¤Ë +のかわりに .I -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤È¡¢ +をインクルードすると、 .BR signal () -¤Ï +は .BR __bsd_signal () -¤ËºÆÄêµÁ¤µ¤ì¡¢ +に再定義され、 .BR signal () -¤Ï BSD Êý¼°¤È¤Ê¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +は BSD 方式となる。 +.SH 関連項目 .BR kill (1), .BR alarm (2), .BR kill (2), diff --git a/release/man2/signalfd.2 b/release/man2/signalfd.2 index bc30c0c0..83dc5b74 100644 --- a/release/man2/signalfd.2 +++ b/release/man2/signalfd.2 @@ -23,258 +23,258 @@ .\" Updated 2009-02-23, Akihiro MOTOKI , LDP v3.18 .\" .TH SIGNALFD 2 2009-01-13 Linux "Linux Programmer's Manual" -.SH ̾Á° -signalfd \- ¥·¥°¥Ê¥ë¼õ¤±ÉÕ¤±ÍѤΥե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÀ¸À®¤¹¤ë -.SH ½ñ¼° +.SH 名前 +signalfd \- シグナル受け付け用のファイルディスクリプタを生成する +.SH 書式 .B #include .sp .BI "int signalfd(int " fd ", const sigset_t *" mask ", int " flags ); -.SH ÀâÌÀ +.SH 説明 .BR signalfd () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ°¸¤Æ¤Î¥·¥°¥Ê¥ë¤ò¼õ¤±ÉÕ¤±¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¥Õ¥¡¥¤¥ë -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÀ¸À®¤¹¤ë¡£ -¤³¤ÎÊýË¡¤Ï¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ä +は、呼び出し元宛てのシグナルを受け付けるために使用されるファイル +ディスクリプタを生成する。 +この方法はシグナルハンドラや .BR sigwaitinfo (2) -¤òÍѤ¤¤ëÊýË¡¤ÎÂå¤ï¤ê¤È¤Ê¤ë¤â¤Î¤Ç¤¢¤ê¡¢¤³¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò +を用いる方法の代わりとなるものであり、このファイルディスクリプタを .BR select (2), .BR poll (2), .BR epoll (7) -¤Ç´Æ»ë¤Ç¤­¤ë¤È¤¤¤¦ÍøÅÀ¤¬¤¢¤ë¡£ +で監視できるという利点がある。 .I mask -°ú¤­¿ô¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤¬¤³¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿·Ðͳ¤Ç¼õ¤±ÉÕ¤±¤¿¤¤ -¥·¥°¥Ê¥ë½¸¹ç¤ò»ØÄꤹ¤ë¡£¤³¤Î°ú¤­¿ô¤Ç»ØÄꤹ¤ë¥·¥°¥Ê¥ë½¸¹ç¤ÎÆâÍƤϡ¢ +引き数には、呼び出し元がこのファイルディスクリプタ経由で受け付けたい +シグナル集合を指定する。この引き数で指定するシグナル集合の内容は、 .BR sigsetops (3) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¥Þ¥¯¥í¤ò»È¤Ã¤Æ½é´ü²½¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -Ä̾¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿·Ðͳ¤Ç¼õ¿®¤¹¤ë¥·¥°¥Ê¥ë½¸¹ç¤Ï¡¢ -¤½¤Î¥·¥°¥Ê¥ë¤¬¥Ç¥Õ¥©¥ë¥È¤ÎÇÛÁ÷ÊýË¡¤Ë´ð¤¤¤Æ½èÍý¤µ¤ì¤ë¤Î¤òËɤ°¤¿¤á¤Ë¡¢ +で説明されているマクロを使って初期化することができる。 +通常、ファイルディスクリプタ経由で受信するシグナル集合は、 +そのシグナルがデフォルトの配送方法に基いて処理されるのを防ぐために、 .BR sigprocmask (2) -¤ò»È¤Ã¤Æ¥Ö¥í¥Ã¥¯¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£ -¥·¥°¥Ê¥ë +を使ってブロックしておくべきである。 +シグナル .B SIGKILL -¤È +と .B SIGSTOP -¤ò signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿·Ðͳ¤Ç¼õ¿®¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -¤³¤ì¤é¤Î¥·¥°¥Ê¥ë¤¬ +を signalfd ファイルディスクリプタ経由で受信することはできない。 +これらのシグナルが .I mask -¤Ç»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤ÏÌۤäÆ̵»ë¤µ¤ì¤ë¡£ +で指定された場合には黙って無視される。 .I fd -°ú¤­¿ô¤¬ \-1 ¤Î¾ì¹ç¡¢ +引き数が \-1 の場合、 .BR signalfd () -¤Ï¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÀ¸À®¤·¡¢ +は新しいファイルディスクリプタを生成し、 .I mask -¤Ç»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë½¸¹ç¤ò¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë´ØÏ¢ÉÕ¤±¤ë¡£ +で指定されたシグナル集合をそのファイルディスクリプタに関連付ける。 .I fd -°ú¤­¿ô¤¬ \-1 °Ê³°¤Î¾ì¹ç¡¢ +引き数が \-1 以外の場合、 .I fd -¤Ë¤ÏÍ­¸ú¤Ê´û¸¤Î signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -¤½¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë½¸¹ç¤Ï +には有効な既存の signalfd ファイルディスクリプタを指定しなければならず、 +そのディスクリプタに関連付けられているシグナル集合は .I mask -¤ò»È¤Ã¤ÆÃÖ¤­´¹¤¨¤é¤ì¤ë¡£ +を使って置き換えられる。 -Linux 2.6.27 °Ê¹ß¤Ç¤Ï¡¢ -°Ê²¼¤ÎÃͤΤ¤¤¯¤Ä¤«¤ò¥Ó¥Ã¥Èñ°Ì¤ÎÏÀÍýÏ (OR) ¤Ç»ØÄꤹ¤ë¤³¤È¤Ç¡¢ +Linux 2.6.27 以降では、 +以下の値のいくつかをビット単位の論理和 (OR) で指定することで、 .BR signalfd () -¤Î¿¶Éñ¤¤¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +の振舞いを変更することができる。 .TP 14 .B SFD_NONBLOCK -¿·¤·¤¯À¸À®¤µ¤ì¤ë¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò (open file description) ¤Î +新しく生成されるオープンファイル記述 (open file description) の .B O_NONBLOCK -¥Õ¥¡¥¤¥ë¥¹¥Æ¡¼¥¿¥¹¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤³¤È¤Ç¡¢ +ファイルステータスフラグをセットする。 +このフラグを使うことで、 .B O_NONBLOCK -¤ò¥»¥Ã¥È¤¹¤ë¤¿¤á¤Ë +をセットするために .BR fcntl (2) -¤òÄɲäǸƤӽФ¹É¬Íפ¬¤Ê¤¯¤Ê¤ë¡£ +を追加で呼び出す必要がなくなる。 .TP .B SFD_CLOEXEC -¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ +新しいファイルディスクリプタに対して close-on-exec .RB ( FD_CLOEXEC ) -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬Ìò¤ËΩ¤ÄÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +フラグをセットする。 +このフラグが役に立つ理由については、 .BR open (2) -¤Î +の .B O_CLOEXEC -¥Õ¥é¥°¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +フラグの説明を参照のこと。 .PP -¥Ð¡¼¥¸¥ç¥ó 2.6.26 °ÊÁ°¤Î Linux ¤Ç¤Ï¡¢ +バージョン 2.6.26 以前の Linux では、 .I flags -°ú¤­¿ô¤Ï̤»ÈÍѤǤ¢¤ê¡¢0 ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数は未使用であり、0 を指定しなければならない。 .BR signalfd () -¤¬ÊÖ¤¹¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï°Ê²¼¤ÎÁàºî¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ +が返すファイルディスクリプタは以下の操作をサポートしている。 .TP .BR read (2) .I mask -¤Ë»ØÄꤵ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤Î¤¦¤Á°ì¤Ä°Ê¾å¤¬¤½¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ -½èÍýÂÔ¤Á (pending) ¤Ç¤¢¤ì¤Ð¡¢¤½¤ì¤é¤Î¥·¥°¥Ê¥ë¤Î¾ðÊó¤¬ +に指定されているシグナルのうち一つ以上がそのプロセスに対して +処理待ち (pending) であれば、それらのシグナルの情報が .BR read (2) -¤ËÅϤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤ò»È¤Ã¤Æ¡¢ +に渡されたバッファを使って、 .I signalfd_siginfo -¹½Â¤ÂΤ˳ÊǼ¤µ¤ì¤ÆÊÖ¤µ¤ì¤ë¡£ +構造体に格納されて返される。 .BR read (2) -¤Ï¡¢¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ²Äǽ¤ÊÈϰϤǤǤ­¤ë¤À¤±Â¿¤¯¤Î½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë¤Ë -¤Ä¤¤¤Æ¤Î¾ðÊó¤òÊÖ¤¹¡£ -¥Ð¥Ã¥Õ¥¡¤ÏºÇÄã¤Ç¤â +は、バッファに格納可能な範囲でできるだけ多くの処理待ちのシグナルに +ついての情報を返す。 +バッファは最低でも .I "sizeof(struct signalfd_siginfo)" -¥Ð¥¤¥È¤ÎÂ礭¤µ¤¬¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +バイトの大きさがなければならない。 .BR read (2) -¤ÎÊÖ¤êÃͤÏÆɤ߽Фµ¤ì¤¿¥È¡¼¥¿¥ë¤Î¥Ð¥¤¥È¿ô¤Ç¤¢¤ë¡£ +の返り値は読み出されたトータルのバイト数である。 .IP .BR read (2) -¤¬¹Ô¤ï¤ì¤¿·ë²Ì¡¢¥·¥°¥Ê¥ë¤Ï¾ÃÈñ¤µ¤ì¡¢ -¤³¤ì¤é¤Î¥·¥°¥Ê¥ë¤Ï¤½¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ¤Ï½èÍýÂÔ¤Á¤Ç¤Ï¤Ê¤¯¤Ê¤ë -(¤Ä¤Þ¤ê¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ÇÊ᪤µ¤ì¤ë¤³¤È¤â¤Ê¤¯¡¢ +が行われた結果、シグナルは消費され、 +これらのシグナルはそのプロセスに対しては処理待ちではなくなる +(つまり、シグナルハンドラで捕捉されることもなく、 .BR sigwaitinfo (2) -¤ò»È¤Ã¤Æ¼õ¤±¼è¤ë¤³¤È¤â¤Ç¤­¤Ê¤¯¤Ê¤ë)¡£ +を使って受け取ることもできなくなる)。 .IP .I mask -¤Ë»ØÄꤵ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤¬¤½¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ°ì¤Ä¤â½èÍýÂÔ¤Á¤Ç¤Ê¤±¤ì¤Ð¡¢ +に指定されているシグナルがそのプロセスに対して一つも処理待ちでなければ、 .BR read (2) -¤Ï¡¢ +は、 .I mask -¤Ç»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë¤Î¤¦¤Á¤¤¤º¤ì¤«°ì¤Ä¤¬¤½¤Î¥×¥í¥»¥¹¤ËÂФ·¤ÆȯÀ¸¤¹¤ë¤Þ¤Ç -Ää»ß (block) ¤¹¤ë¡¢¤â¤·¤¯¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÈóÄä»ß (nonblocking) -¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¥¨¥é¡¼ +で指定されたシグナルのうちいずれか一つがそのプロセスに対して発生するまで +停止 (block) する、もしくはファイルディスクリプタが非停止 (nonblocking) +に設定されている場合はエラー .B EAGAIN -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .TP -.BR poll "(2), " select "(2) (¤ÈƱÍͤÎÁàºî)" +.BR poll "(2), " select "(2) (と同様の操作)" .I mask -¤Ë»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë¤Î¤¦¤Á°ì¤Ä°Ê¾å¤¬¤½¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ½èÍýÂÔ¤Á¤Ç¤¢¤ì¤Ð¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÆɤ߽Ф·²Äǽ¤È¤Ê¤ë +に指定されたシグナルのうち一つ以上がそのプロセスに対して処理待ちであれば、 +ファイルディスクリプタは読み出し可能となる .RB ( select (2) -¤Î +の .I readfds -°ú¤­¿ô¤ä +引き数や .BR poll (2) -¤Î +の .B POLLIN -¥Õ¥é¥°)¡£ +フラグ)。 .IP -signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢¤³¤ì°Ê³°¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ -¿½Å API ¤Ç¤¢¤ë +signalfd ファイルディスクリプタは、これ以外のファイルディスクリプタ +多重 API である .BR pselect (2), .BR ppoll (2), .BR epoll (7) -¤â¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ +もサポートしている。 .TP .BR close (2) -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¤½¤ì°Ê¹ß¤ÏɬÍפʤ¯¤Ê¤Ã¤¿ºÝ¤Ë¤Ï¡¢¥¯¥í¡¼¥º¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -Ʊ¤¸ signalfd ¥ª¥Ö¥¸¥§¥¯¥È¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Á´¤Æ -¥¯¥í¡¼¥º¤µ¤ì¤ë¤È¡¢¤½¤Î¥ª¥Ö¥¸¥§¥¯¥ÈÍѤλñ¸»¤¬¥«¡¼¥Í¥ë¤Ë¤è¤ê²òÊü¤µ¤ì¤ë¡£ -.SS signalfd_siginfo ¹½Â¤ÂÎ -signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤é¤Î +ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきである。 +同じ signalfd オブジェクトに関連付けられたファイルディスクリプタが全て +クローズされると、そのオブジェクト用の資源がカーネルにより解放される。 +.SS signalfd_siginfo 構造体 +signalfd ファイルディスクリプタからの .BR read (2) -¤ÇÊÖ¤µ¤ì¤ë +で返される .I signalfd_siginfo -¹½Â¤ÂΤΥե©¡¼¥Þ¥Ã¥È¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +構造体のフォーマットは以下の通りである。 .in +4n .nf struct signalfd_siginfo { struct signalfd_siginfo { - uint32_t ssi_signo; /* ¥·¥°¥Ê¥ëÈÖ¹æ */ - int32_t ssi_errno; /* ¥¨¥é¡¼ÈÖ¹æ (̤»ÈÍÑ) */ - int32_t ssi_code; /* ¥·¥°¥Ê¥ë¥³¡¼¥É */ - uint32_t ssi_pid; /* Á÷¿®¸µ¤Î PID */ - uint32_t ssi_uid; /* Á÷¿®¸µ¤Î¼Â UID */ - int32_t ssi_fd; /* ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ (SIGIO) */ - uint32_t ssi_tid; /* ¥«¡¼¥Í¥ë¥¿¥¤¥Þ ID (POSIX ¥¿¥¤¥Þ) - uint32_t ssi_band; /* Band ¥¤¥Ù¥ó¥È (SIGIO) */ - uint32_t ssi_overrun; /* POSIX ¥¿¥¤¥Þ¤Î¥ª¡¼¥Ð¡¼¥é¥ó²ó¿ô */ - uint32_t ssi_trapno; /* ¥·¥°¥Ê¥ë¤Î¸¶°ø¤È¤Ê¤Ã¤¿¥È¥é¥Ã¥×ÈÖ¹æ */ -.\" ¤Û¤È¤ó¤É¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç ssi_trapno ¤Ï̤»ÈÍÑ - int32_t ssi_status; /* ½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤«¥·¥°¥Ê¥ë (SIGCHLD) */ - int32_t ssi_int; /* sigqueue(3) ¤«¤éÁ÷¤é¤ì¤¿À°¿ô */ - uint64_t ssi_ptr; /* sigqueue(3) ¤«¤éÁ÷¤é¤ì¤¿¥Ý¥¤¥ó¥¿ */ - uint64_t ssi_utime; /* ¾ÃÈñ¤·¤¿¥æ¡¼¥¶ CPU »þ´Ö (SIGCHLD) */ - uint64_t ssi_stime; /* ¾ÃÈñ¤·¤¿¥·¥¹¥Æ¥à CPU »þ´Ö (SIGCHLD) */ - uint64_t ssi_addr; /* ¥·¥°¥Ê¥ë¤òÀ¸À®¤·¤¿¥¢¥É¥ì¥¹ - (¥Ï¡¼¥É¥¦¥§¥¢¤¬À¸À®¤·¤¿¥·¥°¥Ê¥ë¤Î¾ì¹ç) */ - uint8_t pad[\fIX\fP]; /* pad ¤ÎÂ礭¤µ¤Ï 128 ¥Ð¥¤¥È - (¾­Íè¤Î¥Õ¥£¡¼¥ë¥ÉÄɲÃÍѤξì½ê¤Î³ÎÊÝ) */ + uint32_t ssi_signo; /* シグナル番号 */ + int32_t ssi_errno; /* エラー番号 (未使用) */ + int32_t ssi_code; /* シグナルコード */ + uint32_t ssi_pid; /* 送信元の PID */ + uint32_t ssi_uid; /* 送信元の実 UID */ + int32_t ssi_fd; /* ファイルディスクリプタ (SIGIO) */ + uint32_t ssi_tid; /* カーネルタイマ ID (POSIX タイマ) + uint32_t ssi_band; /* Band イベント (SIGIO) */ + uint32_t ssi_overrun; /* POSIX タイマのオーバーラン回数 */ + uint32_t ssi_trapno; /* シグナルの原因となったトラップ番号 */ +.\" ほとんどのアーキテクチャで ssi_trapno は未使用 + int32_t ssi_status; /* 終了ステータスかシグナル (SIGCHLD) */ + int32_t ssi_int; /* sigqueue(3) から送られた整数 */ + uint64_t ssi_ptr; /* sigqueue(3) から送られたポインタ */ + uint64_t ssi_utime; /* 消費したユーザ CPU 時間 (SIGCHLD) */ + uint64_t ssi_stime; /* 消費したシステム CPU 時間 (SIGCHLD) */ + uint64_t ssi_addr; /* シグナルを生成したアドレス + (ハードウェアが生成したシグナルの場合) */ + uint8_t pad[\fIX\fP]; /* pad の大きさは 128 バイト + (将来のフィールド追加用の場所の確保) */ }; .fi .in .I signalfd_siginfo -¹½Â¤ÂΤγƥե£¡¼¥ë¥É¤Ï¡¢ +構造体の各フィールドは、 .I siginfo_t -¹½Â¤ÂΤÎƱ¤¸¤è¤¦¤Ê̾Á°¤Î¥Õ¥£¡¼¥ë¥É¤ÈƱÍͤǤ¢¤ë¡£ +構造体の同じような名前のフィールドと同様である。 .I siginfo_t -¹½Â¤ÂΤˤĤ¤¤Æ¤Ï +構造体については .BR sigaction (2) -¤ËÀâÌÀ¤¬¤¢¤ë¡£ -ÊÖ¤µ¤ì¤¿ +に説明がある。 +返された .I signalfd_siginfo -¹½Â¤ÂΤÎÁ´¤Æ¤Î¥Õ¥£¡¼¥ë¥É¤¬¤¢¤ë¥·¥°¥Ê¥ë¤ËÂФ·¤ÆÍ­¸ú¤Ê¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -¤É¤Î¥Õ¥£¡¼¥ë¥É¤¬Í­¸ú¤«¤Ï¡¢ +構造体の全てのフィールドがあるシグナルに対して有効なわけではない。 +どのフィールドが有効かは、 .I ssi_code -¥Õ¥£¡¼¥ë¥É¤ÇÊÖ¤µ¤ì¤ëÃͤ«¤éȽÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï +フィールドで返される値から判定することができる。 +このフィールドは .I siginfo_t -¤Î +の .I si_code -¥Õ¥£¡¼¥ë¥É¤ÈƱÍͤǤ¢¤ë¡£¾ÜºÙ¤Ï +フィールドと同様である。詳細は .BR sigaction (2) -¤ò»²¾È¡£ -.SS fork(2) ¤Ç¤Î°·¤¤ +を参照。 +.SS fork(2) での扱い .BR fork (2) -¤¬¹Ô¤ï¤ì¤ë¤È¡¢»Ò¥×¥í¥»¥¹¤Ï signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¥³¥Ô¡¼¤ò -·Ñ¾µ¤¹¤ë¡£ -»Ò¥×¥í¥»¥¹¤Ç¤³¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤é +が行われると、子プロセスは signalfd ファイルディスクリプタのコピーを +継承する。 +子プロセスでこのファイルディスクリプタから .BR read (2) -¤ò¹Ô¤¦¤È¡¢»Ò¥×¥í¥»¥¹¤ËÂФ¹¤ë¥­¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë -¾ðÊó¤¬ÊÖ¤µ¤ì¤ë¡£ -.SS execve(2) ¤Ç¤Î°·¤¤ -¾¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÈÁ´¤¯Æ±Íͤˡ¢ -signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤â +を行うと、子プロセスに対するキューに入っているシグナルに関する +情報が返される。 +.SS execve(2) での扱い +他のファイルディスクリプタと全く同様に、 +signalfd ファイルディスクリプタも .BR execve (2) -¤ÎÁ°¸å¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤¿¤Þ¤Þ¤È¤Ê¤ë¡£Ã¢¤·¡¢¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë -close-on-exec ¤Î¥Þ¡¼¥¯ +の前後でオープンされたままとなる。但し、そのファイルディスクリプタに +close-on-exec のマーク .RB ( fcntl (2) -»²¾È) ¤¬ÉÕ¤¤¤Æ¤¤¤ë¾ì¹ç¤Ï¥¯¥í¡¼¥º¤µ¤ì¤ë¡£ +参照) が付いている場合はクローズされる。 .BR execve (2) -¤ÎÁ°¤ËÆɤ߽Ф·²Äǽ¤È¤Ê¤Ã¤Æ¤¤¤¿Á´¤Æ¤Î¥·¥°¥Ê¥ë¤Ï¿·¤·¤¯µ¯Æ°¤µ¤ì¤¿¥×¥í¥°¥é¥à -¤Ç¤â°ú¤­Â³¤­Æɤ߽Ф·²Äǽ¤Ç¤¢¤ë -(¤³¤ì¤ÏÅÁÅýŪ¤Ê¥·¥°¥Ê¥ë¤Î°·¤¤¤ÈƱ¤¸¤Ç¤¢¤ê¡¢ -½èÍýÂÔ¤Á¤Î¥Ö¥í¥Ã¥¯¤µ¤ì¤¿¥·¥°¥Ê¥ë¤Ï +の前に読み出し可能となっていた全てのシグナルは新しく起動されたプログラム +でも引き続き読み出し可能である +(これは伝統的なシグナルの扱いと同じであり、 +処理待ちのブロックされたシグナルは .BR execve (2) -¤ÎÁ°¸å¤Ç½èÍýÂÔ¤Á¤Î¤Þ¤Þ¤È¤Ê¤ë)¡£ -.SS ¥¹¥ì¥Ã¥É¤Ç¤Î°·¤¤ -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥×¥í¥°¥é¥à¤Ë¤ª¤±¤ë signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î°·¤¤¤Ï -¥·¥°¥Ê¥ë¤Îɸ½àŪ¤Ê°·¤¤¤ÈÁ´¤¯Æ±¤¸¤Ç¤¢¤ë¡£ -¸À¤¤´¹¤¨¤ë¤È¡¢¤¢¤ë¥¹¥ì¥Ã¥É¤¬ signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤é -Æɤ߽Ф·¤ò¹Ô¤¦¤È¡¢¤½¤Î¥¹¥ì¥Ã¥É¼«¿È°¸¤Æ¤Î¥·¥°¥Ê¥ë¤È¥×¥í¥»¥¹ (¤¹¤Ê¤ï¤Á -¥¹¥ì¥Ã¥É¥°¥ë¡¼¥×Á´ÂÎ) °¸¤Æ¤Î¥·¥°¥Ê¥ë¤¬Æɤ߽Фµ¤ì¤ë¡£ -(¥¹¥ì¥Ã¥É¤ÏƱ¤¸¥×¥í¥»¥¹¤Î¾¤Î¥¹¥ì¥Ã¥É°¸¤Æ¤Î¥·¥°¥Ê¥ë¤òÆɤ߽Ф¹¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£) -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +の前後で処理待ちのままとなる)。 +.SS スレッドでの扱い +マルチスレッドプログラムにおける signalfd ファイルディスクリプタの扱いは +シグナルの標準的な扱いと全く同じである。 +言い換えると、あるスレッドが signalfd ファイルディスクリプタから +読み出しを行うと、そのスレッド自身宛てのシグナルとプロセス (すなわち +スレッドグループ全体) 宛てのシグナルが読み出される。 +(スレッドは同じプロセスの他のスレッド宛てのシグナルを読み出すことはできない。) +.SH 返り値 +成功すると、 .BR signalfd () -¤Ï signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -ÊÖ¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢ +は signalfd ファイルディスクリプタを返す。 +返されるファイルディスクリプタは、 .IR fd -¤¬ \-1 ¤Î¾ì¹ç¤Ï¿·µ¬¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ê¡¢ +が \-1 の場合は新規のファイルディスクリプタであり、 .I fd -¤¬Í­¸ú¤Ê signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤À¤Ã¤¿¾ì¹ç¤Ï +が有効な signalfd ファイルディスクリプタだった場合は .I fd -¼«¿È¤Ç¤¢¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +自身である。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値を設定する。 +.SH エラー .TP .B EBADF -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +ファイルディスクリプタ .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B EINVAL .I fd -¤¬Í­¸ú¤Ê signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ +が有効な signalfd ファイルディスクリプタではない。 .\" or, the .\" .I sizemask .\" argument is not equal to @@ -282,99 +282,99 @@ close-on-exec .TP .B EINVAL .I flags -¤¬Ìµ¸ú¡£ -Linux 2.6.26 °ÊÁ°¤Ç¤Ï¡¢ +が無効。 +Linux 2.6.26 以前では、 .I flags -¤¬ 0 °Ê³°¤ÎÃÍ¡£ +が 0 以外の値。 .TP .B EMFILE -¥ª¡¼¥×¥óºÑ¤ß¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¿ô¤¬¥×¥í¥»¥¹¤¢¤¿¤ê¤Î¾å¸Â¤Ë -㤷¤Æ¤¤¤¿¡£ +オープン済みのファイルディスクリプタの数がプロセスあたりの上限に +達していた。 .TP .B ENFILE -¥ª¡¼¥×¥óºÑ¤ß¤Î¥Õ¥¡¥¤¥ëÁí¿ô¤¬¥·¥¹¥Æ¥àÁ´ÂΤξå¸Â¤Ë㤷¤Æ¤¤¤¿¡£ +オープン済みのファイル総数がシステム全体の上限に達していた。 .TP .B ENODEV -(¥«¡¼¥Í¥ëÆâ¤Î) ̵̾ inode ¥Ç¥Ð¥¤¥¹¤ò¥Þ¥¦¥ó¥È¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +(カーネル内の) 無名 inode デバイスをマウントできなかった。 .TP .B ENOMEM -¿·¤·¤¤ signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÀ¸À®¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤«¤Ã¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +新しい signalfd ファイルディスクリプタを生成するのに十分なメモリがなかった。 +.SH バージョン .BR signalfd () -¤Ï¥«¡¼¥Í¥ë 2.6.22 °Ê¹ß¤Î Linux ¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -Àµ¤·¤¯Æ°ºî¤¹¤ë glibc ¦¤Î¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.8 °Ê¹ß¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +はカーネル 2.6.22 以降の Linux で利用可能である。 +正しく動作する glibc 側のサポートはバージョン 2.8 以降で提供されている。 .\" signalfd() is in glibc 2.7, but reportedly does not build .BR signalfd4 () -¥·¥¹¥Æ¥à¥³¡¼¥ë (¡ÖÃí°Õ¡×»²¾È) ¤Ï -¥«¡¼¥Í¥ë 2.6.27 °Ê¹ß¤Î Linux ¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH ½àµò +システムコール (「注意」参照) は +カーネル 2.6.27 以降の Linux で利用可能である。 +.SH 準拠 .BR signalfd () -¤È +と .BR signalfd4 () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -¼ÂºÝ¤Î Linux ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤Ï +は Linux 固有である。 +.SH 注意 +実際の Linux のシステムコールでは .I "size_t sizemask" -¤È¤¤¤¦°ú¤­¿ô¤¬ÄɲäÇɬÍפǤ¢¤ë¡£¤³¤Î°ú¤­¿ô¤Ç +という引き数が追加で必要である。この引き数で .I mask -¤Î¥µ¥¤¥º¤ò»ØÄꤹ¤ë¡£ -glibc ¤Î +のサイズを指定する。 +glibc の .BR signalfd () -¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ë¤Ï¤³¤Î°ú¤­¿ô¤Ï´Þ¤Þ¤ì¤º¡¢ -¥é¥Ã¥Ñ¡¼´Ø¿ô¤¬É¬ÍפÊÃͤò·×»»¤·¤ÆÆâÉô¤Ç¸Æ¤Ó½Ð¤¹¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÄ󶡤¹¤ë¡£ +ラッパー関数にはこの引き数は含まれず、 +ラッパー関数が必要な値を計算して内部で呼び出すシステムコールに提供する。 -°ì¤Ä¤Î¥×¥í¥»¥¹¤ÏÊ£¿ô¤Î signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÀ¸À®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢°Û¤Ê¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç°Û¤Ê¤ë¥·¥°¥Ê¥ë¤ò¼õ¤±¼è¤ë¤³¤È¤¬ -¤Ç¤­¤ë (¤³¤Îµ¡Ç½¤Ï +一つのプロセスは複数の signalfd ファイルディスクリプタを生成することができる。 +これにより、異なるファイルディスクリプタで異なるシグナルを受け取ることが +できる (この機能は .BR select (2), .BR poll (2), .BR epoll (7) -¤ò»È¤Ã¤Æ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò´Æ»ë¤¹¤ë¾ì¹ç¤ËÍ­ÍѤ«¤â¤·¤ì¤Ê¤¤¡£ -°Û¤Ê¤ë¥·¥°¥Ê¥ë¤¬ÅþÃ夹¤ë¤È¡¢°Û¤Ê¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÍøÍѲÄǽ¤Ë -¤Ê¤ë¤«¤é¤À)¡£ -°ì¤Ä¤Î¥·¥°¥Ê¥ë¤¬Æó¤Ä°Ê¾å¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î +を使ってファイルディスクリプタを監視する場合に有用かもしれない。 +異なるシグナルが到着すると、異なるファイルディスクリプタが利用可能に +なるからだ)。 +一つのシグナルが二つ以上のファイルディスクリプタの .I mask -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¤½¤Î¥·¥°¥Ê¥ë¤ÎȯÀ¸¤Ï¤½¤Î¥·¥°¥Ê¥ë¤ò +に含まれている場合、そのシグナルの発生はそのシグナルを .I mask -¤Ë´Þ¤à¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¦¤Á¤¤¤º¤ì¤«°ì¤Ä¤«¤éÆɤ߽Ф¹¤³¤È¤¬¤Ç¤­¤ë¡£ -.SH ²¼Áؤˤ¢¤ë Linux ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë -²¼Áؤˤ¢¤ë Linux ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÆó¼ïÎढ¤ê¡¢ +に含むファイルディスクリプタのうちいずれか一つから読み出すことができる。 +.SH 下層にある Linux のシステムコール +下層にある Linux システムコールは二種類あり、 .BR signalfd () -¤È¡¢¤â¤Ã¤È¿·¤·¤¤ +と、もっと新しい .BR signalfd4 () -¤Ç¤¢¤ë¡£ +である。 .BR signalfd () -¤Ï +は .I flags -°ú¤­¿ô¤ò¼ÂÁõ¤·¤Æ¤¤¤Ê¤¤¡£ +引き数を実装していない。 .BR signalfd4 () -¤Ç¤Ï¾åµ­¤ÎÃͤΠ+では上記の値の .I flags -¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -glibc 2.9 °Ê¹ß¤Ç¤Ï¡¢ +が実装されている。 +glibc 2.9 以降では、 .BR signalfd () -¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢ +のラッパー関数は、 .BR signalfd4 () -¤¬ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢¤³¤ì¤ò»ÈÍѤ¹¤ë¡£ -.SH ¥Ð¥° -¥«¡¼¥Í¥ë 2.6.25 ¤è¤êÁ°¤Ç¤Ï¡¢ +が利用可能であれば、これを使用する。 +.SH バグ +カーネル 2.6.25 より前では、 .BR sigqueue (3) -¤Ë¤è¤êÁ÷¿®¤µ¤ì¤¿¥·¥°¥Ê¥ë¤È°ì½ï¤ËÅϤµ¤ì¤ë¥Ç¡¼¥¿¤Ç¤Ï¡¢¥Õ¥£¡¼¥ë¥É +により送信されたシグナルと一緒に渡されるデータでは、フィールド .I ssi_ptr -¤È +と .I ssi_int -¤ÏÀßÄꤵ¤ì¤Ê¤¤¡£ +は設定されない。 .\" The fix also was put into 2.6.24.5 -.SH Îã -²¼µ­¤Î¥×¥í¥°¥é¥à¤Ï¡¢¥·¥°¥Ê¥ë +.SH 例 +下記のプログラムは、シグナル .B SIGINT -¤È +と .B SIGQUIT -¤ò signalfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿·Ðͳ¤Ç¼õ¿®¤¹¤ë¡£ -¥·¥°¥Ê¥ë +を signalfd ファイルディスクリプタ経由で受信する。 +シグナル .B SIGQUIT -¼õ¿®¸å¤Ë¥×¥í¥°¥é¥à¤Ï½ªÎ»¤¹¤ë¡£ -°Ê²¼¤Ë¼¨¤¹¥·¥§¥ë¥»¥Ã¥·¥ç¥ó¤Ë¤³¤Î¥×¥í¥°¥é¥à¤Î»È¤¤Êý¤ò¼¨¤¹¡£ +受信後にプログラムは終了する。 +以下に示すシェルセッションにこのプログラムの使い方を示す。 .in +4n .nf @@ -388,7 +388,7 @@ Got SIGQUIT $ .fi .in -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -438,7 +438,7 @@ main(int argc, char *argv[]) } } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR eventfd (2), .BR poll (2), .BR read (2), diff --git a/release/man2/sigpause.2 b/release/man2/sigpause.2 index cc7215b3..6b37f0fd 100644 --- a/release/man2/sigpause.2 +++ b/release/man2/sigpause.2 @@ -25,15 +25,15 @@ .\" Translated Mon Mar 3 23:33:12 JST 1997 .\" by HANATAKA Shinya .\" -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: interrupt ³ä¤ê¹þ¤ß -.\"WORD: mask ¥Þ¥¹¥¯ -.\"WORD: block ¥Ö¥í¥Ã¥¯¤¹¤ë +.\"WORD: signal シグナル +.\"WORD: interrupt 割り込み +.\"WORD: mask マスク +.\"WORD: block ブロックする .\" .TH SIGPAUSE 2 2004-05-10 "Linux 2.6" "Linux Programmer's Manual" -.SH ̾Á° -sigpause \- ¥Ö¥í¥Ã¥¯¤µ¤ì¤¿¥·¥°¥Ê¥ë¤ò¥¢¥È¥ß¥Ã¥¯¤Ë²òÊü (release) ¤·¤Æ³ä¤ê¹þ¤ß (interrupt) ¤òÂÔ¤Ä -.SH ½ñ¼° +.SH 名前 +sigpause \- ブロックされたシグナルをアトミックに解放 (release) して割り込み (interrupt) を待つ +.SH 書式 .nf .B #include .sp @@ -41,54 +41,54 @@ sigpause \- .sp .BI "int sigpause(int " sig "); /* Unix95 */" .fi -.SH ÀâÌÀ -¤³¤Î´Ø¿ô¤ò»È¤ï¤Ê¤¤¤³¤È¡£ -Âå¤ï¤ê¤Ë +.SH 説明 +この関数を使わないこと。 +代わりに .BR sigsuspend (2) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .LP -´Ø¿ô +関数 .BR sigpause () -¤Ï¥·¥°¥Ê¥ë¤òÂԤĤ褦¤ËÀ߷פµ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯ (¥Ö¥í¥Ã¥¯¤µ¤ì¤¿¥·¥°¥Ê¥ë¤Î¥»¥Ã¥È) ¤òÊѹ¹¤·¡¢ -¥·¥°¥Ê¥ë¤¬ÅþÃ夹¤ë¤Î¤òÂԤġ£ -¥·¥°¥Ê¥ë¤¬ÅþÃ夹¤ë¤È¡¢¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ï¸µ¤ËÌᤵ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +はシグナルを待つように設計されている。 +この関数はプロセスのシグナルマスク (ブロックされたシグナルのセット) を変更し、 +シグナルが到着するのを待つ。 +シグナルが到着すると、シグナルマスクは元に戻される。 +.SH 返り値 .BR sigpause () -¤¬Ê֤俾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤Æ¤ª¤ê¡¢ -ÊÖ¤êÃÍ¤Ï \-1 ¤Ç¡¢ +が返った場合、この関数はシグナルによって割り込まれており、 +返り値は \-1 で、 .I errno -¤Ï +は .B EINTR -¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ÍúÎò -¤³¤Î´Ø¿ô¤Î¸ÅŵŪ¤Ê BSD ÈÇ¤Ï 4.2BSD ¤ÇÅо줷¤¿¡£ -¤³¤Î´Ø¿ô¤Ï¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ò +に設定される。 +.SH 履歴 +この関数の古典的な BSD 版は 4.2BSD で登場した。 +この関数はプロセスのシグナルマスクを .I sigmask -¤ËÀßÄꤹ¤ë¡£ -¥·¥°¥Ê¥ë¤Î¿ô¤¬ 32 °Ê¾å¤ËÁý²Ã¤·¤¿¤È¤­¤Ë¡¢ -BSD ÈǤϸߴ¹À­¤Î¤Ê¤¤ Unix95 ÈǤËÃÖ¤­´¹¤¨¤é¤ì¤¿¡£ -Unix95 ÈǤϡ¢»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë +に設定する。 +シグナルの数が 32 以上に増加したときに、 +BSD 版は互換性のない Unix95 版に置き換えられた。 +Unix95 版は、指定されたシグナル .I sig -¤ò¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤«¤éºï½ü¤¹¤ë¤À¤±¤Ç¤¢¤ë¡£ +をプロセスのシグナルマスクから削除するだけである。 .\" __xpg_sigpause: Unix 95, spec 1170, SVID, SVR4, XPG -Ʊ¤¸Ì¾Á°¤Ç¸ß´¹À­¤Î¤Ê¤¤ 2 ¤Ä¤Î´Ø¿ô¤¬¤¢¤ë¤È¤¤¤¦ÉÔ¹¬¤Ê»öÂ֤ϡ¢ +同じ名前で互換性のない 2 つの関数があるという不幸な事態は、 .BR \%sigsuspend (2) -´Ø¿ô¤Ë¤è¤Ã¤Æ²ò¾Ã¤µ¤ì¤¿¡£ -¤³¤Î´Ø¿ô¤Ï (int ¤ÎÂå¤ï¤ê¤Ë) +関数によって解消された。 +この関数は (int の代わりに) .B "sigset_t *" -°ú¤­¿ô¤ò¤È¤ë¡£ +引き数をとる。 .LP -Linux ¤Ç¤Ï¡¢¤³¤Î¥ë¡¼¥Á¥ó¤Ï Sparc (sparc64) ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Î¤ß -¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ -libc4 ¤È libc5 ¤Ë¤Ï BSD ÈǤ·¤«¤Ê¤¤¡£ -glibc ¤Ç¤Ï _XOPEN_SOURCE ¤¬ÄêµÁ¤µ¤ì¤Ê¤¤¸Â¤ê¡¢BSD ÈǤò»È¤¦¡£ -.\" .SH Ãí°Õ -.\" BSD ÈǤǤϡ¢ -.\" .RI ¡Ö sigmask -.\" ¤ò 0 ¤Ë¤·¤Æ¡¢¤É¤Î¥·¥°¥Ê¥ë¤â¥Ö¥í¥Ã¥¯¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡× -.\" ¤È¤¤¤¦¤Î¤¬¤è¤¯»È¤ï¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +Linux では、このルーチンは Sparc (sparc64) アーキテクチャでのみ +システムコールとなっている。 +libc4 と libc5 には BSD 版しかない。 +glibc では _XOPEN_SOURCE が定義されない限り、BSD 版を使う。 +.\" .SH 注意 +.\" BSD 版では、 +.\" .RI 「 sigmask +.\" を 0 にして、どのシグナルもブロックされないようにする」 +.\" というのがよく使われる。 +.SH 関連項目 .BR kill (2), .BR sigaction (2), .BR sigblock (2), diff --git a/release/man2/sigpending.2 b/release/man2/sigpending.2 index 6435caee..c02ee6a3 100644 --- a/release/man2/sigpending.2 +++ b/release/man2/sigpending.2 @@ -28,65 +28,65 @@ .\" Translated 2005-10-03, Akihiro MOTOKI .\" Updated 2005-12-05, Akihiro MOTOKI, Catch up to LDP man-pages 2.16 .\" -.\"WORD: pending ½èÍýÂÔ¤Á¤Î +.\"WORD: pending 処理待ちの .\" .TH SIGPENDING 2 2008-10-04 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sigpending \- ½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë¤Î¸¡ºº -.SH ½ñ¼° +.SH 名前 +sigpending \- 処理待ちのシグナルの検査 +.SH 書式 .B #include .sp .BI "int sigpending(sigset_t *" set ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l .BR sigpending (): _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .ad b -.SH ÀâÌÀ +.SH 説明 .PP .BR sigpending () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥¹¥ì¥Ã¥É¤Ø¤ÎÇÛÁ÷¤òÂԤäƤ¤¤ë (pending) ¥·¥°¥Ê¥ë½¸¹ç -(¤¹¤Ê¤ï¤Á¡¢¶Ø»ßÃæ¤ËȯÀ¸¤·¤¿¥·¥°¥Ê¥ë) ¤òÊÖ¤¹¡£ -½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë¤Î¥Þ¥¹¥¯¤¬ +は、呼び出し元のスレッドへの配送を待っている (pending) シグナル集合 +(すなわち、禁止中に発生したシグナル) を返す。 +処理待ちのシグナルのマスクが .I set -¤Ë³ÊǼ¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +に格納される。 +.SH 返り値 .BR sigpending () -¤ÏÀ®¸ù¤¹¤ì¤Ð 0 ¤òÊÖ¤·¡¢¥¨¥é¡¼¤Ê¤é¤Ð \-1 ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +は成功すれば 0 を返し、エラーならば \-1 を返す。 +.SH エラー .TP .B EFAULT .I set -¤¬»Ø¤·¤Æ¤¤¤ë¥á¥â¥ê¤¬¡¢¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ÎÍ­¸ú¤ÊÉôʬ¤Ç¤Ï¤Ê¤¤¡£ -.SH ½àµò +が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ -¥·¥°¥Ê¥ë½¸¹ç¤ÎÁàºî¤Ë´Ø¤¹¤ë¾ÜºÙ¤Ï +.SH 注意 +シグナル集合の操作に関する詳細は .BR sigsetops (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 -¤¢¤ë¥¹¥ì¥Ã¥É¤ËÂФ¹¤ë½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë¤Î½¸¹ç¤Ï¡¢ -¤½¤Î¥¹¥ì¥Ã¥É¼«ÂΤؤνèÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë½¸¹ç¤È¡¢¥×¥í¥»¥¹Á´ÂΤؤνèÍýÂÔ¤Á¤Î -¥·¥°¥Ê¥ë½¸¹ç¤ò¤¢¤ï¤»¤¿¤â¤Î¤Ç¤¢¤ë¡£ +あるスレッドに対する処理待ちのシグナルの集合は、 +そのスレッド自体への処理待ちのシグナル集合と、プロセス全体への処理待ちの +シグナル集合をあわせたものである。 .BR signal (7) -»²¾È¡£ +参照。 .BR fork (2) -·Ðͳ¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Î½èÍýÂÔ¤Á¥·¥°¥Ê¥ë½¸¹ç¤ÏºÇ½é¤Ï¶õ¤Ç¤¢¤ë¡£ +経由で作成された子プロセスの処理待ちシグナル集合は最初は空である。 .BR execve (2) -¤ÎÁ°¸å¤Ç¡¢½èÍýÂÔ¤Á¥·¥°¥Ê¥ë½¸¹ç¤ÏÊÝ»ý¤µ¤ì¤ë¡£ -.SH ¥Ð¥° -¥Ð¡¼¥¸¥ç¥ó 2.2.1 °ÊÁ°¤Î glibc ¤Ç¤Ï¡¢ +の前後で、処理待ちシグナル集合は保持される。 +.SH バグ +バージョン 2.2.1 以前の glibc では、 .BR sigpending () -¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ë¡¢½èÍýÂÔ¤Á¤Î¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤¬ -Àµ¤·¤¯ÊÖ¤µ¤ì¤Ê¤¤¤È¤¤¤¦¥Ð¥°¤¬¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +のラッパー関数に、処理待ちのリアルタイムシグナルに関する情報が +正しく返されないというバグがある。 +.SH 関連項目 .BR kill (2), .BR sigaction (2), .BR signal (2), diff --git a/release/man2/sigprocmask.2 b/release/man2/sigprocmask.2 index 42f6c069..c9c7ae00 100644 --- a/release/man2/sigprocmask.2 +++ b/release/man2/sigprocmask.2 @@ -28,113 +28,113 @@ .\" Translated 2005-10-03, Akihiro MOTOKI .\" .TH SIGPROCMASK 2 2008-10-17 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sigprocmask \- ¶Ø»ß¤¹¤ë¥·¥°¥Ê¥ë¤Î³Îǧ¤ÈÊѹ¹ -.SH ½ñ¼° +.SH 名前 +sigprocmask \- 禁止するシグナルの確認と変更 +.SH 書式 .B #include .sp .BI "int sigprocmask(int " how ", const sigset_t *" set , .BI "sigset_t *" oldset ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l .BR sigprocmask (): _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .ad b -.SH ÀâÌÀ +.SH 説明 .BR sigprocmask () -¤ò»È¤¦¤È¡¢¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Î¼èÆÀ/Êѹ¹¤¬¤Ç¤­¤ë¡£ -¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤ËÂФ·¤Æ¸½ºßÇÛÁ÷¤¬¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤Î -½¸¹ç¤Î¤³¤È¤Ç¤¢¤ë (¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï +を使うと、呼び出したスレッドのシグナルマスクの取得/変更ができる。 +シグナルマスクは、呼び出し元に対して現在配送が禁止されているシグナルの +集合のことである (詳細については .BR signal (7) -¤â»²¾È¤Î¤³¤È)¡£ +も参照のこと)。 -¤³¤Î¥³¡¼¥ë¤ÎÆ°ºî¤Ï +このコールの動作は .I how -¤ÎÃͤˤè¤Ã¤Æ·è¤Þ¤ë: +の値によって決まる: .TP .B SIG_BLOCK -¶Ø»ß¤µ¤ì¤¿¥·¥°¥Ê¥ë¤Î½¸¹ç¤Ï¸½ºß¤ÎÃÍ¤È +禁止されたシグナルの集合は現在の値と .I set -°ú¤­¿ô¤ò·ë¹ç¤·¤¿¤â¤Î¤È¤Ê¤ë¡£ +引き数を結合したものとなる。 .TP .B SIG_UNBLOCK -¸½ºß¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤Î½¸¹ç¤«¤é +現在禁止されているシグナルの集合から .I set -¤Ë¤¢¤ë¥·¥°¥Ê¥ë¤ò¼è¤ê½ü¤¯¡£¶Ø»ß¤µ¤ì¤Æ¤¤¤Ê¤¤¥·¥°¥Ê¥ë¤ò¼è¤ê½ü¤³¤¦¤È -¤¹¤ë¤³¤È¤âǧ¤á¤é¤ì¤Æ¤¤¤ë¡£ +にあるシグナルを取り除く。禁止されていないシグナルを取り除こうと +することも認められている。 .TP .B SIG_SETMASK -¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤Î½¸¹ç¤Ë +禁止されているシグナルの集合に .I set -°ú¤­¿ô¤òÀßÄꤹ¤ë¡£ +引き数を設定する。 .PP .I oldset -¤¬ NULL ¤Ç¤Ê¤±¤ì¤Ð¡¢¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Îº£¤Þ¤Ç¤ÎÃͤò +が NULL でなければ、シグナルマスクの今までの値を .I oldset -¤Ë³ÊǼ¤¹¤ë¡£ +に格納する。 .I set -¤¬ NULL ¤Ç¤¢¤ì¤Ð¡¢¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ÏÊѹ¹¤µ¤ì¤Ê¤¤ (¤¹¤Ê¤ï¤Á¡¢ +が NULL であれば、シグナルマスクは変更されない (すなわち、 .I how -¤Ï̵»ë¤µ¤ì¤ë)¡£ +は無視される)。 .I set -¤ÎÃͤˤ«¤«¤ï¤é¤º¡¢¸½ºß¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ÎÃÍ¤Ï +の値にかかわらず、現在のシグナルマスクの値は .I oldset -¤ËÆþ¤ì¤ÆÊÖ¤µ¤ì¤ë (⤷¡¢ +に入れて返される (但し、 .I oldset -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç)¡£ +が NULL でない場合)。 -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Î¥×¥í¥»¥¹¤Ç +マルチスレッドのプロセスで .BR sigprocmask () -¤ò»ÈÍѤ·¤¿¾ì¹ç¤ÎÆ°ºî¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +を使用した場合の動作は規定されていない。 .BR pthread_sigmask (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ +を参照のこと。 +.SH 返り値 .BR sigprocmask () -¤ÏÀ®¸ù¤¹¤ì¤Ð 0 ¤òÊÖ¤·¡¢¥¨¥é¡¼¤Ê¤é¤Ð \-1 ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +は成功すれば 0 を返し、エラーならば \-1 を返す。 +.SH エラー .B EINVAL .I how -¤Ë»ØÄꤵ¤ì¤¿Ãͤ¬Í­¸ú¤Ç¤Ï¤Ê¤¤¡£ -.SH ½àµò +に指定された値が有効ではない。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .B SIGKILL -¤ä +や .B SIGSTOP -¤ò¶Ø»ß¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -¶Ø»ß¤·¤è¤¦¤È¤·¤Æ¤âÌۤäÆ̵»ë¤µ¤ì¤ë¡£ +を禁止することはできない。 +禁止しようとしても黙って無視される。 -¥×¥í¥»¥¹Æâ¤Î³Æ¥¹¥ì¥Ã¥É¤Ï¤½¤ì¤¾¤ìÀìÍѤΥ·¥°¥Ê¥ë¥Þ¥¹¥¯¤ò»ý¤Ä¡£ +プロセス内の各スレッドはそれぞれ専用のシグナルマスクを持つ。 .BR fork (2) -·Ðͳ¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£ +経由で作成された子プロセスは親プロセスのシグナルマスクのコピーを継承する。 .BR execve (2) -¤ÎÁ°¸å¤Ç¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ÏÊÝ»ý¤µ¤ì¤ë¡£ +の前後でシグナルマスクは保持される。 -¥·¥°¥Ê¥ë +シグナル .BR SIGBUS , .BR SIGFPE , .BR SIGILL , .B SIGSEGV -¤¬¶Ø»ß¤µ¤ì¤Æ¤¤¤ë´Ö¤ËÀ¸À®¤µ¤ì¤¿¾ì¹ç¤Ç¡¢ -¤½¤Î¥·¥°¥Ê¥ë¤¬ +が禁止されている間に生成された場合で、 +そのシグナルが .BR kill (2), .BR sigqueue (3), .BR raise (3) -¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤¿¤â¤Î¤Ç¤Ê¤¤¤È¤­¤Ë¤Ï¡¢ -¤½¤Î¸å¤ÎÆ°ºî¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +によって生成されたものでないときには、 +その後の動作は未定義である。 .PP -¥·¥°¥Ê¥ë½¸¹ç¤ÎÁàºî¤Ë´Ø¤¹¤ë¾ÜºÙ¤Ï +シグナル集合の操作に関する詳細は .BR sigsetops (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を参照のこと。 +.SH 関連項目 .BR kill (2), .BR pause (2), .BR sigaction (2), diff --git a/release/man2/sigreturn.2 b/release/man2/sigreturn.2 index 18cded74..02d07781 100644 --- a/release/man2/sigreturn.2 +++ b/release/man2/sigreturn.2 @@ -29,54 +29,54 @@ .\" Updated 2005-09-04, Akihiro MOTOKI .\" Updated 2008-08-07, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: signal handler ¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é -.\"WORD: stack frame ¥¹¥¿¥Ã¥¯¡¦¥Õ¥ì¡¼¥à -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: interrupt ³ä¤ê¹þ¤ß -.\"WORD: architecture ¥¢¡¼¥­¥Æ¥¯¥Á¥ã +.\"WORD: signal シグナル +.\"WORD: signal handler シグナル・ハンドラ +.\"WORD: stack frame スタック・フレーム +.\"WORD: kernel カーネル +.\"WORD: interrupt 割り込み +.\"WORD: architecture アーキテクチャ .\" .TH SIGRETURN 2 2008-06-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sigreturn \- ¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤«¤éÊ֤ꡢ¥¹¥¿¥Ã¥¯¤òÁݽü¤¹¤ë -.SH ½ñ¼° +.SH 名前 +sigreturn \- シグナル・ハンドラから返り、スタックを掃除する +.SH 書式 .BI "int sigreturn(unsigned long " __unused ); -.SH ÀâÌÀ -Linux ¥«¡¼¥Í¥ë¤Ï¡¢ -¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥éÍѤ˥¹¥¿¥Ã¥¯¡¦¥Õ¥ì¡¼¥à¤òºîÀ®¤¹¤ëºÝ¡¢ +.SH 説明 +Linux カーネルは、 +シグナル・ハンドラ用にスタック・フレームを作成する際、 .BR sigreturn () -¤ò¥¹¥¿¥Ã¥¯¡¦¥Õ¥ì¡¼¥à¤ËÁÞÆþ¤·¡¢¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤¬ÊÖ¤ë¤È¤­¤Ë +をスタック・フレームに挿入し、シグナル・ハンドラが返るときに .BR sigreturn () -¤¬¸Æ¤Ð¤ì¤ë¤è¤¦¤Ë¤¹¤ë¡£ +が呼ばれるようにする。 .BR sigreturn () -¤Ï¡¢¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤òµ¯Æ°¤¹¤ë¤¿¤á¤Ë¹Ô¤Ã¤¿¤³¤È¤ÎÁ´¤Æ \(em -¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ÎÊѹ¹¡¢¥¹¥¿¥Ã¥¯¤ÎÀÚ¤êÂؤ¨ +は、シグナル・ハンドラを起動するために行ったことの全て \(em +プロセスのシグナルマスクの変更、スタックの切り替え .RB ( sigaltstack (2) -»²¾È) \(em ¤Î¼è¤ê¾Ã¤·¤ò¹Ô¤¦¡£ -¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ÎÉü¸µ¡¢¥¹¥¿¥Ã¥¯¤ÎÀÚ¤êÂؤ¨¡¢ -¥×¥í¥»¥¹¤Î¥³¥ó¥Æ¥­¥¹¥È (¥ì¥¸¥¹¥¿¡¢¥×¥í¥»¥Ã¥µ¡¦¥Õ¥é¥°) ¤ÎÉü¸µ¤ò¹Ô¤¤¡¢ -¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¾ì½ê¤«¤é¤½¤Î¤Þ¤Þ¼Â¹Ô¤ò -ºÆ³«¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ +参照) \(em の取り消しを行う。 +プロセスのシグナルマスクの復元、スタックの切り替え、 +プロセスのコンテキスト (レジスタ、プロセッサ・フラグ) の復元を行い、 +プロセスがシグナルにより割り込まれた場所からそのまま実行を +再開できるようにする。 +.SH 返り値 .BR sigreturn () -¤¬Ê֤뤳¤È¤Ï¤Ê¤¤¡£ -.SH ¥Õ¥¡¥¤¥ë +が返ることはない。 +.SH ファイル /usr/src/linux/arch/i386/kernel/signal.c .br /usr/src/linux/arch/alpha/kernel/entry.S -.SH ½àµò +.SH 準拠 .BR sigreturn () -¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ -.SH Ãí°Õ +は Linux 特有であり、移植を意図したプログラムでは使用してはいけない。 +.SH 注意 .BR sigreturn () -¥³¡¼¥ë¤Ï¡¢¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤ò¼ÂÁõ¤¹¤ë¤¿¤á¤Ë¥«¡¼¥Í¥ë¤Ë¤è¤ê»ÈÍѤµ¤ì¤ë¡£ -¤³¤ì¤òľÀܸƤӽФ·¤Æ¤Ï -.B ·è¤·¤Æ -¤¤¤±¤Ê¤¤¡£¤µ¤é¤Ë +コールは、シグナル・ハンドラを実装するためにカーネルにより使用される。 +これを直接呼び出しては +.B 決して +いけない。さらに .I __unused -°ú¤­¿ô¤¬¤É¤Î¤è¤¦¤Ë»È¤ï¤ì¤ë¤«¤Ï¤½¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë°Í¸¤·¤ÆÊѲ½¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +引き数がどのように使われるかはそのアーキテクチャに依存して変化する。 +.SH 関連項目 .BR kill (2), .BR sigaltstack (2), .BR signal (2), diff --git a/release/man2/sigsuspend.2 b/release/man2/sigsuspend.2 index 3fb41dbe..acf69cc0 100644 --- a/release/man2/sigsuspend.2 +++ b/release/man2/sigsuspend.2 @@ -28,85 +28,85 @@ .\" Translated 2005-10-03, Akihiro MOTOKI .\" .TH SIGSUSPEND 2 2008-08-29 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sigsuspend \- ¥·¥°¥Ê¥ë¤òÂÔ¤Ä -.SH ½ñ¼° +.SH 名前 +sigsuspend \- シグナルを待つ +.SH 書式 .B #include .sp .BI "int sigsuspend(const sigset_t *" mask ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l .BR sigsuspend (): _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .ad b -.SH ÀâÌÀ +.SH 説明 .BR sigsuspend () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ò +は、呼び出し元プロセスのシグナルマスクを .I mask -¤Ç»ØÄꤵ¤ì¤¿¥Þ¥¹¥¯¤Ë°ì»þŪ¤ËÃÖ¤­´¹¤¨¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Îµ¯Æ°¤â¤·¤¯¤Ï¥×¥í¥»¥¹¤Î½ªÎ»¤¬¥¢¥¯¥·¥ç¥ó¤È¤·¤Æ -ÀßÄꤵ¤ì¤¿¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ë¤Þ¤Ç¡¢¤½¤Î¥×¥í¥»¥¹¤òÄä»ß¤¹¤ë¡£ +で指定されたマスクに一時的に置き換え、 +シグナルハンドラの起動もしくはプロセスの終了がアクションとして +設定されたシグナルが配送されるまで、そのプロセスを停止する。 -¥·¥°¥Ê¥ë¤¬¥×¥í¥»¥¹¤ò½ªÎ»¤µ¤»¤ë¤â¤Î¤Î¾ì¹ç¡¢ +シグナルがプロセスを終了させるものの場合、 .BR sigsuspend () -¤ÏÊÖ¤é¤Ê¤¤¡£¥·¥°¥Ê¥ë¤¬Ê᪤µ¤ì¤¿¾ì¹ç¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Î½èÍý¤¬½ª¤ï¤Ã¤¿¸å¤Ë +は返らない。シグナルが捕捉された場合、 +シグナルハンドラの処理が終わった後に .BR sigsuspend () -¤ÏÊ֤ꡢ¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ï +は返り、シグナルマスクは .BR sigsuspend () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤ëÁ°¤Î¾õÂÖ¤ËÉü¸µ¤µ¤ì¤ë¡£ +が呼び出される前の状態に復元される。 .B SIGKILL -¤È +と .B SIGSTOP -¤ò¶Ø»ß (block) ¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤; -¤³¤ì¤é¤Î¥·¥°¥Ê¥ë¤ò +を禁止 (block) することはできない; +これらのシグナルを .I mask -¤Ë»ØÄꤷ¤Æ¤â¡¢¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ï±Æ¶Á¤ò¼õ¤±¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +に指定しても、プロセスのシグナルマスクは影響を受けない。 +.SH 返り値 .BR sigsuspend () -¤Ï¾ï¤Ë \-1 ¤òÊÖ¤·¡¢Ä̾ï¤Ï +は常に \-1 を返し、通常は .B EINTR -¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¡£ -.SH ¥¨¥é¡¼ +エラーが発生する。 +.SH エラー .TP .B EFAULT .I mask -¤¬»Ø¤·¤Æ¤¤¤ë¥á¥â¥ê¤¬¡¢¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ÎÍ­¸ú¤ÊÉôʬ¤Ç¤Ï¤Ê¤¤¡£ +が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。 .TP .B EINTR -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥·¥°¥Ê¥ë¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¡£ -.SH ½àµò +システムコールはシグナルにより割り込まれた。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .PP .BR sigsuspend () -¤Ï¡¢Ä̾¥¯¥ê¥Æ¥£¥«¥ë¡¦¥³¡¼¥É¡¦¥»¥¯¥·¥ç¥ó (critical code section) ¤Î -¼Â¹ÔÃæ¤Ë¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ë¤Î¤òËɻߤ¹¤ë¤¿¤á¤Ë¡¢ +は、通常、クリティカル・コード・セクション (critical code section) の +実行中にシグナルが配送されるのを防止するために、 .BR sigprocmask (2) -¤ÈÁȤ߹ç¤ï¤»¤Æ»ÈÍѤµ¤ì¤ë¡£ -¤Þ¤ººÇ½é¤Ë¡¢¸Æ¤Ó½Ð¤·¸µ¤Ï +と組み合わせて使用される。 +まず最初に、呼び出し元は .BR sigprocmask (2) -¤ò»È¤Ã¤Æ¥·¥°¥Ê¥ë¤ò¶Ø»ß¤¹¤ë¡£ -¥¯¥ê¥Æ¥£¥«¥ë¡¦¥³¡¼¥É¤¬´°Î»¤¹¤ë¤È¡¢¸Æ¤Ó½Ð¤·¸µ¤Ï +を使ってシグナルを禁止する。 +クリティカル・コードが完了すると、呼び出し元は .BR sigprocmask (2) -¤¬ +が .RI ( oldset -°ú¤­¿ô¤Ç) ÊÖ¤¹¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ò»ØÄꤷ¤Æ +引き数で) 返すシグナルマスクを指定して .BR sigsuspend () -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¡¢¥¯¥ê¥Æ¥£¥«¥ë¡¦¥³¡¼¥É¼Â¹ÔÃæ¤ËȯÀ¸¤·¤¿ -¥·¥°¥Ê¥ë¤òÂԤĤ³¤È¤¬¤Ç¤­¤ë¡£ +を呼び出すことで、クリティカル・コード実行中に発生した +シグナルを待つことができる。 .PP -¥·¥°¥Ê¥ë½¸¹ç¤ÎÁàºî¤Ë´Ø¤¹¤ë¾ÜºÙ¤Ï +シグナル集合の操作に関する詳細は .BR sigsetops (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を参照のこと。 +.SH 関連項目 .BR kill (2), .BR pause (2), .BR sigaction (2), diff --git a/release/man2/sigvec.2 b/release/man2/sigvec.2 index aa9f985d..e99e4ed5 100644 --- a/release/man2/sigvec.2 +++ b/release/man2/sigvec.2 @@ -30,32 +30,32 @@ .\" Translated Mon Mar 3 23:37:35 JST 1997 .\" by HANATAKA Shinya .\" -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: obsolete ÇÑ»ß +.\"WORD: signal シグナル +.\"WORD: obsolete 廃止 .\" .TH SIGVEC 2 1995-08-31 "Linux 1.3" "Linux Programmer's Manual" -.SH ̾Á° -sigvec \- BSD ¥½¥Õ¥È¥¦¥§¥¢¡¦¥·¥°¥Ê¥ë´Ä¶­ -.SH ½ñ¼° +.SH 名前 +sigvec \- BSD ソフトウェア・シグナル環境 +.SH 書式 .B #include .sp .BI "int sigvec(int " sig ", struct sigvec *" vec ", struct sigvec *" ovec ); -.SH ÀâÌÀ -¤³¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï +.SH 説明 +このインタフェースは .BR sigaction (2) -¤Ë¤è¤Ã¤ÆÇÑ»ß(obsolete)¤µ¤ì¤¿¡£ +によって廃止(obsolete)された。 .PP -Linux ¤Ç¤Ï +Linux では .BR sigvec () -¤Ï +は .BR sigaction () -¤Ë #define ¤µ¤ì¤Æ¤ª¤ê¡¢ -Ä󶡤µ¤ì¤ë¤â¤Î¤Ï BSD +に #define されており、 +提供されるものは BSD .BR sigvec () -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤È¤ÏÎɤ¯¤Æ¤â -¤ª¤ª¤¶¤Ã¤Ñ¤Ê¶á»÷¤Ë¤¹¤®¤Ê¤¤¡£ -.SH ½àµò +インタフェースとは良くても +おおざっぱな近似にすぎない。 +.SH 準拠 BSD, SVr4 -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sigaction (2), .BR signal (2) diff --git a/release/man2/sigwaitinfo.2 b/release/man2/sigwaitinfo.2 index 68085d7b..84af8047 100644 --- a/release/man2/sigwaitinfo.2 +++ b/release/man2/sigwaitinfo.2 @@ -26,12 +26,12 @@ .\" Updated 2006-07-21, Akihiro MOTOKI , LDP v2.36 .\" Updated 2008-08-07, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: pending ÂÔµ¡Ãæ¤Ç¤¢¤ë +.\"WORD: pending 待機中である .\" .TH SIGWAITINFO 2 2011-10-03 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sigwaitinfo, sigtimedwait \- ¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤¿¥·¥°¥Ê¥ë¤òƱ´ü¤·¤ÆÂÔ¤Ä -.SH ½ñ¼° +.SH 名前 +sigwaitinfo, sigtimedwait \- キューに入れられたシグナルを同期して待つ +.SH 書式 .nf .B #include .sp @@ -42,153 +42,153 @@ sigwaitinfo, sigtimedwait \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR sigwaitinfo (), .BR sigtimedwait (): _POSIX_C_SOURCE\ >=\ 199309L -.SH ÀâÌÀ +.SH 説明 .BR sigwaitinfo () -¤Ï +は .I set -¤Î¤¦¤Á¤Î¤É¤ì¤«¤Î¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ë¤Þ¤Ç¡¢ -¸Æ¤Ó½Ð¤·¥¹¥ì¥Ã¥É¤Î¼Â¹Ô¤ò°ì»þÄä»ß¤¹¤ë -(¸Æ¤Ó½Ð¤·¥¹¥ì¥Ã¥É¤ËÂФ·¤Æ +のうちのどれかのシグナルが配送されるまで、 +呼び出しスレッドの実行を一時停止する +(呼び出しスレッドに対して .I set -¤Î¤¦¤Á¤Î¤É¤ì¤«¤Î¥·¥°¥Ê¥ë¤¬´û¤ËÂÔµ¡Ãæ (pending) ¤Ç¤¢¤ë¾ì¹ç¡¢ +のうちのどれかのシグナルが既に待機中 (pending) である場合、 .BR sigwaitinfo () -¤Ï¤½¤Î¥·¥°¥Ê¥ë¤Î¾ðÊó¤òÊÖ¤·¤Æ¤¹¤°¤ËÌá¤ë)¡£ +はそのシグナルの情報を返してすぐに戻る)。 .PP .BR sigwaitinfo () -¤ÏÇÛÁ÷¤µ¤ì¤¿¥·¥°¥Ê¥ë¤òÂÔµ¡Ãæ¤Î¥·¥°¥Ê¥ë¤Î½¸¹ç¤«¤éºï½ü¤·¡¢ -´Ø¿ô¤Î·ë²Ì¤È¤·¤Æ¥·¥°¥Ê¥ëÈÖ¹æ¤òÊÖ¤¹¡£ +は配送されたシグナルを待機中のシグナルの集合から削除し、 +関数の結果としてシグナル番号を返す。 .I info -°ú¤­¿ô¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ÇÛÁ÷¤µ¤ì¤¿¥·¥°¥Ê¥ë¤Î¾ðÊó¤¬Æþ¤Ã¤¿ +引き数が NULL でない場合、配送されたシグナルの情報が入った .I siginfo_t -·¿ +型 .RB ( sigaction (2) -¤ò»²¾È) ¤Î¹½Â¤ÂΤòÊÖ¤¹¡£ +を参照) の構造体を返す。 .PP .BR sigwaitinfo () -¤ÇÊÖ¤µ¤ì¤ë¥·¥°¥Ê¥ë¤Ï¡¢Ä̾ï¤Î½çÈÖ¤ÇÇÛÁ÷¤µ¤ì¤ë¡£ -¾ÜºÙ¤Ï +で返されるシグナルは、通常の順番で配送される。 +詳細は .BR signal (7) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .PP .BR sigtimedwait () -¤Ï¡¢ +は、 .BR sigwaitinfo () -¤È¼¡¤ÎÅÀ¤ò½ü¤¤¤ÆÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ -¤³¤Î´Ø¿ô¤Ë¤Ï¤â¤¦ 1 ¤Ä¤Î°ú¤­¿ô +と次の点を除いて全く同じように動作する。 +この関数にはもう 1 つの引き数 .I timeout -¤¬¤¢¤ê¡¢¥¹¥ì¥Ã¥É¤¬°ì»þÄä»ß¤¹¤ë»þ´Ö¤Î¾å¸Â¤òÄê¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î°ú¤­¿ô¤Î·¿¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¢¤ë: +があり、スレッドが一時停止する時間の上限を定めることができる。 +この引き数の型は以下のとおりである: .sp .in +4n .nf struct timespec { - long tv_sec; /* Éà */ - long tv_nsec; /* ¥Ê¥ÎÉà */ + long tv_sec; /* 秒 */ + long tv_nsec; /* ナノ秒 */ } .fi .in .sp -¤³¤Î¹½Â¤ÂΤΠ2 ¤Ä¤Î¥Õ¥£¡¼¥ë¥É¤¬¤È¤â¤Ë 0 ¤Î¾ì¹ç¡¢¥Ý¡¼¥ê¥ó¥°¤¬¹Ô¤ï¤ì¤ë: +この構造体の 2 つのフィールドがともに 0 の場合、ポーリングが行われる: .BR sigtimedwait () -¤Ï¡¢¸Æ¤Ó½Ð¤·Â¦¥×¥í¥»¥¹¤ËÂФ·¤Æ -ÂÔµ¡¤·¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤Î¾ðÊó¤òÊÖ¤·¤ÆÌá¤ë¤«¡¢ +は、呼び出し側プロセスに対して +待機しているシグナルの情報を返して戻るか、 .I set -¤Î¤¦¤Á¤Î¤É¤Î¥·¥°¥Ê¥ë¤âÂÔµ¡¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¥¨¥é¡¼¤òÊÖ¤·¤ÆÌá¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +のうちのどのシグナルも待機していない場合はエラーを返して戻る。 +.SH 返り値 +成功した場合、 .BR sigwaitinfo () -¤È +と .BR sigtimedwait () -¤Ï¥·¥°¥Ê¥ëÈÖ¹æ (¤¹¤Ê¤ï¤Á 0 ¤è¤êÂ礭¤¤¿ô) ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢2 ¤Ä¤Î´Ø¿ô¤Ï \-1 ¤òÊÖ¤·¡¢ +はシグナル番号 (すなわち 0 より大きい数) を返す。 +失敗した場合、2 つの関数は \-1 を返し、 .I errno -¤Ï¥¨¥é¡¼¤òɽ¤¹ÃͤËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +はエラーを表す値に設定される。 +.SH エラー .TP .B EAGAIN .I set -¤Î¤¦¤Á¤Î¤É¤Î¥·¥°¥Ê¥ë¤â +のうちのどのシグナルも .BR sigtimedwait () -¤Ë»ØÄꤵ¤ì¤¿ +に指定された .I timeout -¤Î´ü´ÖÆâ¤ËÇÛÁ÷¤µ¤ì¤Ê¤«¤Ã¤¿¡£ +の期間内に配送されなかった。 .TP .B EINTR -¥·¥°¥Ê¥ëÂÔ¤Á¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤Ã¤ÆÃæÃÇ (interrupt) ¤µ¤ì¤¿ -(¤³¤Î¥Ï¥ó¥É¥é¤Ï +シグナル待ちがシグナルハンドラによって中断 (interrupt) された +(このハンドラは .I set -¤Ë¤¢¤ë¥·¥°¥Ê¥ë°Ê³°¤Î¤â¤Î¤Ç¤¢¤ë)¡£ +にあるシグナル以外のものである)。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .I timeout -¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ -.SH ½àµò +が不正である。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ -Ä̾ï¤Î»ÈÍÑË¡¤Ç¤Ï¡¢¸Æ¤Ó½Ð¤·Â¦¥×¥í¥»¥¹¤Ï¤³¤ì¤é¤Î´Ø¿ô¤è¤êÀè¤Ë +.SH 注意 +通常の使用法では、呼び出し側プロセスはこれらの関数より先に .BR sigprocmask (2) -¤Î¸Æ¤Ó½Ð¤¹¤³¤È¤Ë¤è¤ê +の呼び出すことにより .I set -¤Ë´Þ¤Þ¤ì¤ë¥·¥°¥Ê¥ë¤ò¥Ö¥í¥Ã¥¯¤· -(¤½¤Î¤¿¤á¤Ë¤³¤ì¤é¤Î¥·¥°¥Ê¥ë¤¬¤³¤Î¸å¤Ë³¤¯ +に含まれるシグナルをブロックし +(そのためにこれらのシグナルがこの後に続く .BR sigwaitinfo () -¤ä +や .BR sigtimedwait () -¤Î¸Æ¤Ó½Ð¤·¤Î´Ö¤ËÇÛÁ÷¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ -¥Ç¥Õ¥©¥ë¥È¤ÎÇÛÃ֤ϹԤï¤ì¤º)¡¢ -¤³¤ì¤é¤Î¥·¥°¥Ê¥ë¤ËÂФ¹¤ë¥Ï¥ó¥É¥é¤ÏÀßÄꤷ¤Ê¤¤¡£ -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ +の呼び出しの間に配送された場合には、 +デフォルトの配置は行われず)、 +これらのシグナルに対するハンドラは設定しない。 +マルチスレッドプログラムでは、 .BR sigwaitinfo () -¤ä +や .BR sigtimedwait () -¤ò¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É°Ê³°¤Î¥¹¥ì¥Ã¥É¤Ë¤½¤Î¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¡¢ -Á´¤Æ¤Î¥¹¥ì¥Ã¥É¤Ç³ºÅö¥·¥°¥Ê¥ë¤ò¥Ö¥í¥Ã¥¯¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +を呼び出したスレッド以外のスレッドにそのシグナルが配送されないように、 +全てのスレッドで該当シグナルをブロックすべきである。 -»ØÄꤵ¤ì¤¿¥¹¥ì¥Ã¥É¤ËÂФ¹¤ë½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë¤Î½¸¹ç¤Ï¡¢ -¤½¤Î¥¹¥ì¥Ã¥É¼«Âΰ¸¤Æ¤Î½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë½¸¹ç¤È¡¢¥×¥í¥»¥¹Á´Âΰ¸¤Æ¤Î -½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë½¸¹ç¤ò¤¢¤ï¤»¤¿¤â¤Î¤Ç¤¢¤ë +指定されたスレッドに対する処理待ちのシグナルの集合は、 +そのスレッド自体宛ての処理待ちのシグナル集合と、プロセス全体宛ての +処理待ちのシグナル集合をあわせたものである .RB ( signal (7) -»²¾È)¡£ +参照)。 .B SIGKILL -¤È +と .B SIGSTOP -¤òÂԤȤ¦¤È¤·¤¿¾ì¹ç¡¢ÌۤäÆ̵»ë¤µ¤ì¤ë¡£ +を待とうとした場合、黙って無視される。 -°ì¤Ä¤Î¥×¥í¥»¥¹Æâ¤ÎÊ£¿ô¤Î¥¹¥ì¥Ã¥É¤¬ +一つのプロセス内の複数のスレッドが .BR sigwaitinfo () -¤ä +や .BR sigtimedwait () -¤ÇƱ¤¸¥·¥°¥Ê¥ë¤òÂԤäÆÄä»ß¤·¤¿¾ì¹ç¡¢ -¥×¥í¥»¥¹Á´Âΰ¸¤Æ¤Î¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ë¤È¡¢Ê£¿ô¤Î¥¹¥ì¥Ã¥É¤Î¤¦¤Á°ì¤Ä¤À¤±¤¬ -¼ÂºÝ¤Ë¤½¤Î¥·¥°¥Ê¥ë¤ò¼õ¿®¤¹¤ë¤³¤È¤Ë¤Ê¤ë¡£ -¤É¤Î¥¹¥ì¥Ã¥É¤¬¥·¥°¥Ê¥ë¤ò¼õ¿®¤¹¤ë¤«¤Ï·è¤Þ¤Ã¤Æ¤¤¤Ê¤¤¡£ +で同じシグナルを待って停止した場合、 +プロセス全体宛てのシグナルが配送されると、複数のスレッドのうち一つだけが +実際にそのシグナルを受信することになる。 +どのスレッドがシグナルを受信するかは決まっていない。 -POSIX ¤Ç¤Ï +POSIX では .BR sigtimedwait () -¤Î°ú¤­¿ô +の引き数 .I timeout -¤ÎÃͤò NULL ¤Ë¤·¤¿¾ì¹ç¤Î°ÕÌ£¤ò̤ÄêµÁ¤È¤·¤Æ¤¤¤ë¡£ +の値を NULL にした場合の意味を未定義としている。 .BR sigwaitinfo () -¤ò¸Æ¤Ó½Ð¤·¤¿¤Î¤ÈƱ¤¸°ÕÌ£¤È¤·¤Æ¤â¤è¤¤¤³¤È¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢ -¼ÂºÝ Linux ¤Ç¤Ï¤³¤Î¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +を呼び出したのと同じ意味としてもよいことになっており、 +実際 Linux ではこのように動作する。 -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR sigwaitinfo () -¤Ï +は .BR sigtimedwait () -¤òÍѤ¤¤Æ¼ÂÁõ¤µ¤ì¤¿¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を用いて実装されたライブラリ関数である。 +.SH 関連項目 .BR kill (2), .BR sigaction (2), .BR signal (2), diff --git a/release/man2/socket.2 b/release/man2/socket.2 index 0aa89b0f..520487f6 100644 --- a/release/man2/socket.2 +++ b/release/man2/socket.2 @@ -49,367 +49,367 @@ .\" Updated Mon Oct 26 JST 2002 by Kentaro Shirakata .\" Updated 2008-11-09, Akihiro MOTOKI , LDP v3.13 .\" -.\"WORD: endpoint üÅÀ -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ -.\"WORD: link layer ¥ê¥ó¥¯ÁØ -.\"WORD: byte stream ¥Ð¥¤¥È¡¦¥¹¥È¥ê¡¼¥à -.\"WORD: out-of-band ÂÓ°è³° -.\"WORD: sequenced ½ç½øÀ­¤Î¤¢¤ë -.\"WORD: reliable ¿®ÍêÀ­¤Î¤¢¤ë -.\"WORD: two-way ÁÐÊý¸þ¤Î -.\"WORD: datagram ¥Ç¡¼¥¿¥°¥é¥à -.\"WORD: implement ¼ÂÁõ -.\"WORD: super-user ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ -.\"WORD: full-duplex Á´Æó½Å -.\"WORD: non-blocking I/O ÈóÄä»ß I/O -.\"WORD: asynchronous ÈóƱ´ü +.\"WORD: endpoint 端点 +.\"WORD: descriptor ディスクリプター +.\"WORD: link layer リンク層 +.\"WORD: byte stream バイト・ストリーム +.\"WORD: out-of-band 帯域外 +.\"WORD: sequenced 順序性のある +.\"WORD: reliable 信頼性のある +.\"WORD: two-way 双方向の +.\"WORD: datagram データグラム +.\"WORD: implement 実装 +.\"WORD: super-user スーパー・ユーザー +.\"WORD: full-duplex 全二重 +.\"WORD: non-blocking I/O 非停止 I/O +.\"WORD: asynchronous 非同期 .\" .TH SOCKET 2 2009-01-19 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -socket \- ÄÌ¿®¤Î¤¿¤á¤ÎüÅÀ(endpoint)¤òºîÀ®¤¹¤ë -.SH ½ñ¼° -.BR "#include " " /* ¡ÖÃí°Õ¡×»²¾È */" +.SH 名前 +socket \- 通信のための端点(endpoint)を作成する +.SH 書式 +.BR "#include " " /* 「注意」参照 */" .br .B #include .sp .BI "int socket(int " domain ", int " type ", int " protocol ); -.SH ÀâÌÀ +.SH 説明 .BR socket () -¤ÏÄÌ¿®¤Î¤¿¤á¤ÎüÅÀ(endpoint)¤òºîÀ®¤·¡¢¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼(descriptor)¤òÊÖ¤¹¡£ +は通信のための端点(endpoint)を作成し、ディスクリプター(descriptor)を返す。 .PP .I domain -°ú¿ô¤ÏÄÌ¿®¤ò¹Ô¤Ê¤¦¥É¥á¥¤¥ó¤ò»ØÄꤹ¤ë; ¤³¤ì¤Ï¤É¤Î -¥×¥í¥È¥³¥ë¡¦¥Õ¥¡¥ß¥ê(protocol family)¤òÄÌ¿®¤Ë»ÈÍѤ¹¤ë¤«¤ò»ØÄꤹ¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥¡¥ß¥ê¤Ï +引数は通信を行なうドメインを指定する; これはどの +プロトコル・ファミリ(protocol family)を通信に使用するかを指定する。 +これらのファミリは .I -¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¸½ºß¡¢Íý²ò¤Ç¤­¤ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï°Ê²¼¤ÎÄ̤ꡣ +に定義されている。 +現在、理解できるフォーマットは以下の通り。 .TS tab(:); l l l. -̾Á°:ÌÜŪ:¥Þ¥Ë¥å¥¢¥ë +名前:目的:マニュアル T{ .BR AF_UNIX ", " AF_LOCAL T}:T{ -¥í¡¼¥«¥ëÄÌ¿® +ローカル通信 T}:T{ .BR unix (7) T} T{ .B AF_INET -T}:IPv4 ¥¤¥ó¥¿¡¼¥Í¥Ã¥È¡¦¥×¥í¥È¥³¥ë:T{ +T}:IPv4 インターネット・プロトコル:T{ .BR ip (7) T} T{ .B AF_INET6 -T}:IPv6 ¥¤¥ó¥¿¡¼¥Í¥Ã¥È¡¦¥×¥í¥È¥³¥ë:T{ +T}:IPv6 インターネット・プロトコル:T{ .BR ipv6 (7) T} T{ .B AF_IPX -T}:IPX \- Novell ¥×¥í¥È¥³¥ë: +T}:IPX \- Novell プロトコル: T{ .B AF_NETLINK T}:T{ -¥«¡¼¥Í¥ë¡¦¥æ¡¼¥¶¡¦¥Ç¥Ð¥¤¥¹ +カーネル・ユーザ・デバイス T}:T{ .BR netlink (7) T} T{ .B AF_X25 -T}:ITU-T X.25 / ISO-8208 ¥×¥í¥È¥³¥ë:T{ +T}:ITU-T X.25 / ISO-8208 プロトコル:T{ .BR x25 (7) T} T{ .B AF_AX25 T}:T{ -¥¢¥Þ¥Á¥å¥¢ÌµÀþ AX.25 ¥×¥í¥È¥³¥ë +アマチュア無線 AX.25 プロトコル T}: T{ .B AF_ATMPVC -T}:À¸¤Î ATM PVC ¤Ë¥¢¥¯¥»¥¹¤¹¤ë: +T}:生の ATM PVC にアクセスする: T{ .B AF_APPLETALK -T}:¥¢¥Ã¥×¥ë¥È¡¼¥¯:T{ +T}:アップルトーク:T{ .BR ddp (7) T} T{ .B AF_PACKET T}:T{ -Äã¥ì¥Ù¥ë¤Î¥Ñ¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ +低レベルのパケットインターフェース T}:T{ .BR packet (7) T} .TE .PP -¥½¥±¥Ã¥È¤Ï +ソケットは .I type -¤Ç»ØÄꤵ¤ì¤ë·¿¤ò»ý¤Á¡¢¤½¤ì¤ÏÄÌ¿®Êý¼°(semantics)¤ò»ØÄꤹ¤ë¡£ -ÄêµÁ¤µ¤ì¤Æ¤¤¤ë·¿¤Ï¸½ºß°Ê²¼¤ÎÄ̤ꡣ +で指定される型を持ち、それは通信方式(semantics)を指定する。 +定義されている型は現在以下の通り。 .TP 16 .B SOCK_STREAM -½ç½øÀ­¤È¿®ÍêÀ­¤¬¤¢¤ê¡¢ÁÐÊý¸þ¤Î¡¢Àܳ¤µ¤ì¤¿ -¥Ð¥¤¥È¡¦¥¹¥È¥ê¡¼¥à(byte stream)¤òÄ󶡤¹¤ë¡£ -ÂÓ°è³°(out-of-band)¥Ç¡¼¥¿Å¾Á÷¥á¥«¥Ë¥º¥à¤â¥µ¥Ý¡¼¥È¤µ¤ì¤ë¡£ +順序性と信頼性があり、双方向の、接続された +バイト・ストリーム(byte stream)を提供する。 +帯域外(out-of-band)データ転送メカニズムもサポートされる。 .TP .B SOCK_DGRAM -¥Ç¡¼¥¿¥°¥é¥à(Àܳ¡¢¿®ÍêÀ­Ìµ¤·¡¢¸ÇÄêºÇÂçĹ¥á¥Ã¥»¡¼¥¸) -¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ +データグラム(接続、信頼性無し、固定最大長メッセージ) +をサポートする。 .TP .B SOCK_SEQPACKET -¸ÇÄêºÇÂçĹ¤Î¥Ç¡¼¥¿¥°¥é¥àžÁ÷¥Ñ¥¹¤Ë´ð¤Å¤¤¤¿½ç½øÀ­¡¢¿®ÍêÀ­¤Î¤¢¤ë -ÁÐÊý¸þ¤ÎÀܳ¤Ë´ð¤Å¤¤¤¿ÄÌ¿®¤òÄ󶡤¹¤ë¡£¼õ¤±¼è¤ê¦¤Ç¤Ï¤½¤ì¤¾¤ì¤ÎÆþÎÏ -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ç¥Ñ¥±¥Ã¥ÈÁ´ÂΤòÆɤ߼è¤ë¤³¤È¤¬Í׵ᤵ¤ì¤ë¡£ +固定最大長のデータグラム転送パスに基づいた順序性、信頼性のある +双方向の接続に基づいた通信を提供する。受け取り側ではそれぞれの入力 +システム・コールでパケット全体を読み取ることが要求される。 .TP .B SOCK_RAW -À¸¤Î¥Í¥Ã¥È¥ï¡¼¥¯¡¦¥×¥í¥È¥³¥ë¤Ø¤Î¥¢¥¯¥»¥¹¤òÄ󶡤¹¤ë¡£ +生のネットワーク・プロトコルへのアクセスを提供する。 .TP .B SOCK_RDM -¿®ÍêÀ­¤Ï¤¢¤ë¤¬¡¢½ç½ø¤ÏÊݾڤ·¤Ê¤¤¥Ç¡¼¥¿¥°¥é¥àÁؤòÄ󶡤¹¤ë¡£ +信頼性はあるが、順序は保証しないデータグラム層を提供する。 .TP .B SOCK_PACKET -Çѻߤµ¤ì¤Æ¤ª¤ê¿·¤·¤¤¥×¥í¥°¥é¥à¤Ç»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ +廃止されており新しいプログラムで使用してはいけない。 .BR packet (7) -¤ò»²¾È¤¹¤ë¤³¤È +を参照すること .PP -¤¢¤ë¼ï¤Î¥½¥±¥Ã¥È·¿¤¬Á´¤Æ¤Î¥×¥í¥È¥³¥ë¡¦¥Õ¥¡¥ß¥ê¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -Î㤨¤Ð +ある種のソケット型が全てのプロトコル・ファミリで実装されているわけではない。 +例えば .B SOCK_SEQPACKET -¤Ï +は .B AF_INET -¤Ë¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +には実装されていない。 .PP -Linux 2.6.27 °Ê¹ß¤Ç¤Ï¡¢ +Linux 2.6.27 以降では、 .I type -°ú¿ô¤ÏÆó¤ÄÌܤÎÌÜŪ¤Ë¤â»ÈÍѤµ¤ì¤ë¡£ -¥½¥±¥Ã¥È¤Î·¿¤ò»ØÄꤹ¤ë¤Î¤Ë²Ã¤¨¤Æ¡¢ -°Ê²¼¤ÎÃͤΤ¤¤¯¤Ä¤«¤ò¥Ó¥Ã¥Èñ°Ì¤ÎÏÀÍýÏ (OR) ¤Ç»ØÄꤹ¤ë¤³¤È¤Ç¡¢ +引数は二つ目の目的にも使用される。 +ソケットの型を指定するのに加えて、 +以下の値のいくつかをビット単位の論理和 (OR) で指定することで、 .BR socket () -¤Î¿¶Éñ¤¤¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +の振舞いを変更することができる。 .TP 16 .B SOCK_NONBLOCK -¿·¤·¤¯À¸À®¤µ¤ì¤ë¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò (open file description) ¤Î +新しく生成されるオープンファイル記述 (open file description) の .B O_NONBLOCK -¥Õ¥¡¥¤¥ë¥¹¥Æ¡¼¥¿¥¹¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤³¤È¤Ç¡¢ +ファイルステータスフラグをセットする。 +このフラグを使うことで、 .B O_NONBLOCK -¤ò¥»¥Ã¥È¤¹¤ë¤¿¤á¤Ë +をセットするために .BR fcntl (2) -¤òÄɲäǸƤӽФ¹É¬Íפ¬¤Ê¤¯¤Ê¤ë¡£ +を追加で呼び出す必要がなくなる。 .TP .B SOCK_CLOEXEC -¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤ËÂФ·¤Æ +新しいファイル・ディスクリプターに対して close-on-exec .RB ( FD_CLOEXEC ) -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬Ìò¤ËΩ¤ÄÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +フラグをセットする。 +このフラグが役に立つ理由については、 .BR open (2) -¤Î +の .B O_CLOEXEC -¥Õ¥é¥°¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +フラグの説明を参照のこと。 .PP .I protocol -¤Ï¥½¥±¥Ã¥È¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤ë¸ÇÍ­¤Î¥×¥í¥È¥³¥ë¤ò»ØÄꤹ¤ë¡£Ä̾綠¤ì¤¾¤ì¤Î -¥½¥±¥Ã¥È¤Ï¡¢Í¿¤¨¤é¤ì¤¿¥×¥í¥È¥³¥ë¡¦¥Õ¥¡¥ß¥ê¤Î¼ïÎऴ¤È¤Ë°ì¤Ä¤Î¥×¥í¥È¥³¥ë¤Î¤ß¤ò -¥µ¥Ý¡¼¥È¤¹¤ë¡£ -¤½¤Î¾ì¹ç¤Ï +はソケットによって使用される固有のプロトコルを指定する。通常それぞれの +ソケットは、与えられたプロトコル・ファミリの種類ごとに一つのプロトコルのみを +サポートする。 +その場合は .I protocol -¤Ë 0 ¤ò»ØÄê¤Ç¤­¤ë¡£ -¤·¤«¤·¡¢Â¿¤¯¤Î¥×¥í¥È¥³¥ë¤¬Â¸ºß¤·¤Æ¤â¤«¤Þ¤ï¤Ê¤¤¡£ -¤³¤Î¾ì¹ç¤Ë¤Ï¤³¤ÎÊýË¡¤Ë¤è¤ê¸ÇÍ­¤Î¥×¥í¥È¥³¥ë¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¡£ -»ÈÍѤµ¤ì¤ë¥×¥í¥È¥³¥ëÈÖ¹æ¤ÏÄÌ¿®¤Î¹Ô¤Ê¤ï¤ì¤ë\*(lqÄÌ¿®¥É¥á¥¤¥ó\*(rq¤Ë -¸ÇÍ­¤Ç¤¢¤ë; +に 0 を指定できる。 +しかし、多くのプロトコルが存在してもかまわない。 +この場合にはこの方法により固有のプロトコルを指定する必要がある。 +使用されるプロトコル番号は通信の行なわれる\*(lq通信ドメイン\*(rqに +固有である; .BR protocols (5) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -¥×¥í¥È¥³¥ë̾¤ò¤É¤¦¤ä¤Ã¤Æ¥×¥í¥È¥³¥ëÈÖ¹æ¤ËÂбþ¤µ¤»¤ë¤«¤Ë¤Ä¤¤¤Æ¤Ï +を参照すること。 +プロトコル名をどうやってプロトコル番号に対応させるかについては .BR getprotoent (3) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .PP .B SOCK_STREAM -·¿¤Î¥½¥±¥Ã¥È¤Ï¥Ñ¥¤¥×¤Î¤è¤¦¤ÊÁ´Æó½Å¥Ð¥¤¥È¡¦¥¹¥È¥ê¡¼¥à¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Ï¥ì¥³¡¼¥É¶­³¦¤òÊݸ¤·¤Ê¤¤¡£ -¥¹¥È¥ê¡¼¥à¤Ï¡¢¥½¥±¥Ã¥È¤¬¥Ç¡¼¥¿¤òÁ÷¤Ã¤¿¤ê¼õ¤±¤¿¤ê¤¹¤ëÁ°¤Ë -.I Àܳ¤µ¤ì¤¿ -¾õÂ֤ˤʤäƤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£Â¾¤Î¥½¥±¥Ã¥È¤Ø¤ÎÀܳ¤Ï +型のソケットはパイプのような全二重バイト・ストリームである。 +これらはレコード境界を保存しない。 +ストリームは、ソケットがデータを送ったり受けたりする前に +.I 接続された +状態になってなければならない。他のソケットへの接続は .BR connect (2) -¥³¡¼¥ë¤Ë¤è¤Ã¤Æ¹Ô¤Ê¤ï¤ì¤ë¡£°ìÅÙÀܳ¤·¤¿¤é¥Ç¡¼¥¿¤Ï +コールによって行なわれる。一度接続したらデータは .BR read (2) -¤È +と .BR write (2) -¥³¡¼¥ë¤ä +コールや .BR send (2) -¤È +と .BR recv (2) -¥³¡¼¥ë¤ÎÊѼï¤ò»ÈÍѤ·¤ÆžÁ÷¤Ç¤­¤ë¡£ -¥»¥Ã¥·¥ç¥ó¤¬´°Î»¤·¤¿¤é +コールの変種を使用して転送できる。 +セッションが完了したら .BR close (2) -¤¬¹Ô¤Ê¤ï¤ì¤ë¡£ÂÓ°è³°¥Ç¡¼¥¿¤ÎžÁ÷¤â +が行なわれる。帯域外データの転送も .BR send (2) -¤Ëµ­½Ò¤µ¤ì¤Æ¤ª¤ê¡¢ -¼õ¿®¤â +に記述されており、 +受信も .BR recv (2) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +に記述されている。 .PP .B SOCK_STREAM -¤ò¼ÂÁõ¤·¤¿ÄÌ¿®¥×¥í¥È¥³¥ë¤Ï¥Ç¡¼¥¿¤Ë»¼º¤ä½ÅÊ£¤¬¤Ê¤¤¤³¤È¤òÊݾڤ¹¤ë¡£ -¤â¤·Áê¼ê¤Î¥×¥í¥È¥³¥ë¤¬¥Ð¥Ã¥Õ¥¡¡¼¶õ´Ö¤ò»ý¤Ä -¥Ç¡¼¥¿¤ÎÃÇÊÒ¤òŬÅö¤Ê»þ´Ö¤Î¤¦¤Á¤ËžÁ÷¤Ç¤­¤Ê¤±¤ì¤Ð¡¢ -Àܳ¤ÏÃǤ¿¤ì¤¿¤È¤ß¤Ê¤¹¡£¤½¤Î¥½¥±¥Ã¥È +を実装した通信プロトコルはデータに損失や重複がないことを保証する。 +もし相手のプロトコルがバッファー空間を持つ +データの断片を適当な時間のうちに転送できなければ、 +接続は断たれたとみなす。そのソケット .B SO_KEEPALIVE -¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢¥×¥í¥È¥³¥ëÆȼ«¤ÎÊýË¡¤ÇÀܳ¤ÎÁê¼ê¦¤¬¤Þ¤À -Í­¸ú¤Ç¤¢¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ -¤â¤·¥×¥í¥»¥¹¤¬¡¢²õ¤ì¤¿¥¹¥È¥ê¡¼¥à¤Ç¥Ç¡¼¥¿¤òÁ÷¼õ¿®¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤Ë¤Ï +が有効になっている場合、プロトコル独自の方法で接続の相手側がまだ +有効であるかをチェックする。 +もしプロセスが、壊れたストリームでデータを送受信しようとした場合には .B SIGPIPE -¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë; ¤³¤ì¤ÏÄ̾ï¤Î¤½¤Î¥·¥°¥Ê¥ë¤ò°·¤Ã¤Æ¤¤¤Ê¤¤¥×¥í¥»¥¹¤ò -½ªÎ»¤µ¤»¤ë¡£ +シグナルが送られる; これは通常のそのシグナルを扱っていないプロセスを +終了させる。 .B SOCK_SEQPACKET -¥½¥±¥Ã¥È¤Ï +ソケットは .B SOCK_STREAM -¥½¥±¥Ã¥È¤ÈƱ¤¸¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò»ÈÍѤ¹¤ë¡£ -Í£°ì¤Î°ã¤¤¤Ï +ソケットと同じシステム・コールを使用する。 +唯一の違いは .BR read (2) -¥³¡¼¥ë¤¬Í׵ᤵ¤ì¤¿Î̤Υǡ¼¥¿¤Î¤ß¤òÊÖ¤·¡¢ÅþÃ夷¤¿¥Ñ¥±¥Ã¥È¤Î»Ä¤ê¤ÎÉôʬ¤ò -¼Î¤Æ¤Æ¤·¤Þ¤¦¤³¤È¤Ç¤¢¤ë¡£Æ±ÍͤËÆþ¤Ã¤Æ¤¯¤ë¥Ç¡¼¥¿¥°¥é¥à¤ÎÁ´¤Æ¤Î¥á¥Ã¥»¡¼¥¸¶­³¦¤Ï -Êݸ¤µ¤ì¤ë¡£ +コールが要求された量のデータのみを返し、到着したパケットの残りの部分を +捨ててしまうことである。同様に入ってくるデータグラムの全てのメッセージ境界は +保存される。 .PP .B SOCK_DGRAM -¤È +と .B SOCK_RAW -¥½¥±¥Ã¥È¤Ï +ソケットは .BR sendto (2) -¥³¡¼¥ë¤Ç»ØÄꤵ¤ì¤¿Áê¼ê¤Ø¥Ç¡¼¥¿¥°¥é¥à¤òÁ÷¤ë¤³¤È¤¬µö¤µ¤ì¤Æ¤¤¤ë¡£ -¥Ç¡¼¥¿¥°¥é¥à¤Ï°ìÈÌ¤Ë +コールで指定された相手へデータグラムを送ることが許されている。 +データグラムは一般に .BR recvfrom (2) -¤Ç¼õ¤±¤È¤ê¡¢ -¤³¤Î¥³¡¼¥ë¤Ï¼¡¤Î¥Ç¡¼¥¿¥°¥é¥à¤òÁ÷¿®¼Ô¤Î¥¢¥É¥ì¥¹¤È°ì½ï¤ËÊÖ¤¹¡£ +で受けとり、 +このコールは次のデータグラムを送信者のアドレスと一緒に返す。 .PP .B SOCK_PACKET -¤Ï¸Å¤¤¥½¥±¥Ã¥È·¿¤Ç¡¢À¸(raw)¤Î¥Ñ¥±¥Ã¥È¤ò¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤«¤é -ľÀܼõ¿®¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ -º£¤ÏÂå¤ï¤ê¤Ë +は古いソケット型で、生(raw)のパケットをデバイスドライバから +直接受信するためのものである。 +今は代わりに .BR packet (7) -¤òÍѤ¤¤ë¤³¤È¡£ +を用いること。 .PP .BR fcntl (2) -¤Î +の .B F_SETOWN -Áàºî¤ò»È¤Ã¤Æ¡¢¥·¥°¥Ê¥ë +操作を使って、シグナル .B SIGURG -¤ä +や .B SIGPIPE -¤ò¼õ¤±¤È¤ë¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤ò»ØÄê¤Ç¤­¤ë¡£ +を受けとるプロセス・グループを指定できる。 .B SIGURG -¥·¥°¥Ê¥ë¤ÏÂÓ°è³°¥Ç¡¼¥¿¤¬ÅþÃ夷¤¿»þ¤Ë¡¢ +シグナルは帯域外データが到着した時に、 .B SIGPIPE -¥·¥°¥Ê¥ë¤Ï +シグナルは .B SOCK_STREAM -Àܳ¤¬Í½´ü¤»¤ºÀÚÃǤµ¤ì¤¿»þ¤ËÁ÷¤é¤ì¤ë¡£ -¤Þ¤¿¡¢ +接続が予期せず切断された時に送られる。 +また、 .B F_SETOWN -Áàºî¤Ï¡¢I/O ¤ä I/O ¥¤¥Ù¥ó¥È¤ÎÈóƱ´ü (asynchronous) ÄÌÃΤò +操作は、I/O や I/O イベントの非同期 (asynchronous) 通知を .B SIGIO -¤ò·Ðͳ¤Ç¼õ¤±¼è¤ë¥×¥í¥»¥¹¤ä¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤òÀßÄꤹ¤ë¤Î¤Ë¤â»ÈÍѤǤ­¤ë¡£ +を経由で受け取るプロセスやプロセス・グループを設定するのにも使用できる。 .B F_SETOWN -¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï +を使用することは .B FIOSETOWN -¤Þ¤¿¤Ï +または .B SIOCSPGRP -¤Î°ú¿ô¤Ç +の引数で .BR ioctl (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¤ÈÅù²Á¤Ç¤¢¤ë¡£ +を使用することと等価である。 .PP -¥Í¥Ã¥È¥ï¡¼¥¯¤¬¥×¥í¥È¥³¥ë¡¦¥â¥¸¥å¡¼¥ë¤Ë¥¨¥é¡¼¾õÂÖ¤òÅÁ¤¨¤¿¾ì¹ç -(Î㤨¤Ð¡¢IP ¤Î ICMP ¥á¥Ã¥»¡¼¥¸¤ò»ÈÍѤ·¤Æ)¤Ë¤Ï¡¢¥½¥±¥Ã¥È¤Î -¥Ú¥ó¥Ç¥£¥ó¥°¡¦¥¨¥é¡¼¡¦¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤ë¡£¼¡¤Ë¤³¤Î¥½¥±¥Ã¥È¤òÁàºî¤·¤¿ -»þ¤Ë¥Ú¥ó¥Ç¥£¥ó¥°¤µ¤ì¤Æ¤¤¤¿¥¨¥é¡¼¡¦¥³¡¼¥É¤¬ÊÖ¤µ¤ì¤ë¡£¥×¥í¥È¥³¥ë¤Ë¤è¤Ã¤Æ¤Ï -¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Î¤è¤ê¾Ü¤·¤¤¾ðÊó¤ò¼õ¤±¼è¤ë¤¿¤á¤Ë¥½¥±¥Ã¥È¤´¤È¤Î¥¨¥é¡¼¡¦¥­¥å¡¼¤ò -¼õ¤±¼è¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£ +ネットワークがプロトコル・モジュールにエラー状態を伝えた場合 +(例えば、IP の ICMP メッセージを使用して)には、ソケットの +ペンディング・エラー・フラグが設定される。次にこのソケットを操作した +時にペンディングされていたエラー・コードが返される。プロトコルによっては +エラーについてのより詳しい情報を受け取るためにソケットごとのエラー・キューを +受け取ることが可能である。 .BR ip (7) -¤Î +の .B IP_RECVERR -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .PP -¥½¥±¥Ã¥È¤ÎÁàºî¤Ï¥½¥±¥Ã¥È¡¦¥ì¥Ù¥ë +ソケットの操作はソケット・レベル .I options -¤Ë¤è¤Ã¤ÆÀ©¸æ¤µ¤ì¤ë¡£ -¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Ï +によって制御される。 +これらのオプションは .I -¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +に定義されている。 .BR setsockopt (2) -¤È +と .BR getsockopt (2) -´Ø¿ô¤Ï¤½¤ì¤¾¤ì¥ª¥×¥·¥ç¥ó¤ÎÀßÄê¤È¼èÆÀ¤ò¹Ô¤Ê¤¦¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢¿·¤·¤¤¥½¥±¥Ã¥È¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +関数はそれぞれオプションの設定と取得を行なう。 +.SH 返り値 +成功した場合、新しいソケットのファイル・ディスクリプターを返す。 +エラーが発生した場合は \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切に設定する。 +.SH エラー .TP .B EACCES -»ØÄꤵ¤ì¤¿¥¿¥¤¥×¤Þ¤¿¤Ï¥×¥í¥È¥³¥ë¤Î¥½¥±¥Ã¥È¤òºîÀ®¤¹¤ëµö²Ä¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤¡£ +指定されたタイプまたはプロトコルのソケットを作成する許可が与えられていない。 .TP .B EAFNOSUPPORT -»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +指定されたアドレスファミリーがサポートされていない。 .TP .B EINVAL -ÃΤé¤Ê¤¤¥×¥í¥È¥³¥ë¡¢¤Þ¤¿¤ÏÍøÍѤǤ­¤Ê¤¤¥×¥í¥È¥³¥ë¡¦¥Õ¥¡¥ß¥ê¤Ç¤¢¤ë¡£ +知らないプロトコル、または利用できないプロトコル・ファミリである。 .TP .B EINVAL .\" Since Linux 2.6.27 .I type -¤Ë̵¸ú¤Ê¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¡£ +に無効なフラグが指定されている。 .TP .B EMFILE -¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¥Æ¡¼¥Ö¥ë¤¬°î¤ì¤Æ¤¤¤ë¡£ +プロセスのファイルテーブルが溢れている。 .TP .B ENFILE -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ÎÁí¿ô¤¬¥·¥¹¥Æ¥à¾å¸Â¤Ë㤷¤Æ¤¤¤ë¡£ +オープンされたファイルの総数がシステム上限に達している。 .TP -.BR ENOBUFS " ¤Þ¤¿¤Ï " ENOMEM -½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£½½Ê¬¤Ê»ñ¸»¤¬²òÊü¤µ¤ì¤ë¤Þ¤Ç¤Ï¥½¥±¥Ã¥È¤ò -ºîÀ®¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +.BR ENOBUFS " または " ENOMEM +十分なメモリがない。十分な資源が解放されるまではソケットを +作成することはできない。 .TP .B EPROTONOSUPPORT -¤³¤Î¥É¥á¥¤¥ó¤Ç¤Ï»ØÄꤵ¤ì¤¿¥×¥í¥È¥³¥ë¤Þ¤¿¤Ï¥×¥í¥È¥³¥ë¡¦¥¿¥¤¥×¤¬ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +このドメインでは指定されたプロトコルまたはプロトコル・タイプが +サポートされていない。 .PP -²¼°Ì¤Î¥×¥í¥È¥³¥ë¡¦¥â¥¸¥å¡¼¥ë¤«¤é¾¤Î¥¨¥é¡¼¤¬À¸À®¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -.SH ½àµò +下位のプロトコル・モジュールから他のエラーが生成されるかもしれない。 +.SH 準拠 4.4BSD, POSIX.1-2001. -¥Õ¥é¥° +フラグ .BR SOCK_NONBLOCK , .B SOCK_CLOEXEC -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ +は Linux 固有である。 .BR socket () -¤Ï 4.2BSD ¤ÇÅо줷¤¿¡£°ìÈ̤ˡ¢(System V ¤ÎÊѼï¤ò´Þ¤á¤Æ) -BSD ¤Î¥½¥±¥Ã¥ÈÁؤθߴ¹À­¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë BSD °Ê³°¤Î¥·¥¹¥Æ¥à¤Ø¤Î¡¢ -¤Þ¤¿¤Ï¡¢BSD °Ê³°¤Î¥·¥¹¥Æ¥à¤«¤é¤Î°Ü¿¢¤¬¤Ç¤­¤ë¡£ -.SH Ãí°Õ -POSIX.1-2001 ¤Ç¤Ï +は 4.2BSD で登場した。一般に、(System V の変種を含めて) +BSD のソケット層の互換性をサポートしている BSD 以外のシステムへの、 +または、BSD 以外のシステムからの移植ができる。 +.SH 注意 +POSIX.1-2001 では .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ïɬ¿Ü¤È¤µ¤ì¤Æ¤ª¤é¤º¡¢ -Linux ¤Ç¤Ï¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÏɬÍפǤϤʤ¤¡£ -¤·¤«¤·¡¢Îò»ËŪ¤Ë¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¼ÂÁõ (BSD ·Ï) ¤Ç¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬ -ɬÍפǤ¢¤ê¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤ò -¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤Î¤¬¸­ÌÀ¤Ç¤¢¤í¤¦¡£ +のインクルードは必須とされておらず、 +Linux ではこのヘッダファイルは必要ではない。 +しかし、歴史的には、いくつかの実装 (BSD ç³») でこのヘッダファイルが +必要であり、移植性が必要なアプリケーションではこのファイルを +インクルードするのが賢明であろう。 -4.x BSD ¤Ë¤ª¤¤¤ÆÄê¿ô¤ò»ÈÍѤ¹¤ë¾ì¹ç¡¢¥×¥í¥È¥³¥ë¡¦¥Õ¥¡¥ß¥ê¡¼¤Ë¤Ï +4.x BSD において定数を使用する場合、プロトコル・ファミリーには .BR PF_UNIX , .B PF_INET -Åù¤ò»ÈÍѤ·¤Æ¤¤¤ë¡£°ìÊý¤Ç¥¢¥É¥ì¥¹¡¦¥Õ¥¡¥ß¥ê¡¼¤Ë¤Ï +等を使用している。一方でアドレス・ファミリーには .B AF_UNIX -Åù¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£¤·¤«¤·¤Ê¤¬¤é BSD ¤Î¥Þ¥Ë¥å¥¢¥ë¤Ç¤Ï -¡Ö°ìÈ̤˥ץí¥È¥³¥ë¡¦¥Õ¥¡¥ß¥ê¡¼¤Ï¥¢¥É¥ì¥¹¡¦¥Õ¥¡¥ß¥ê¡¼¤ÈƱ¤¸¤â¤Î¤Ç¤¢¤ë¡£¡× -¤ÈÊݾڤ·¤Æ¤¤¤ë¡£¤½¤ì¤Ç¤½¤ì°Ê³°¤Îµ¬³Ê¤Ç¤ÏÁ´¤Æ¤Î¾ì½ê¤Ç AF_* ¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ -.SH Îã +等が使用されている。しかしながら BSD のマニュアルでは +「一般にプロトコル・ファミリーはアドレス・ファミリーと同じものである。」 +と保証している。それでそれ以外の規格では全ての場所で AF_* が使用されている。 +.SH 例 .BR socket () -¤ÎÍøÍÑÎ㤬 +の利用例が .BR getaddrinfo (3) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +に記載されている。 +.SH 関連項目 .BR accept (2), .BR bind (2), .BR connect (2), @@ -434,11 +434,11 @@ Linux .BR unix (7) .PP \(lqAn Introductory 4.3BSD Interprocess Communication Tutorial\(rq -¤Ï +は .I UNIX Programmer's Supplementary Documents Volume 1 -¤È¤·¤ÆºÆÈǤµ¤ì¤¿¡£ +として再版された。 .PP \(lqBSD Interprocess Communication Tutorial\(rq -¤Ï +は .I UNIX Programmer's Supplementary Documents Volume 1 -¤È¤·¤ÆºÆÈǤµ¤ì¤¿¡£ +として再版された。 diff --git a/release/man2/socketcall.2 b/release/man2/socketcall.2 index 83f0dbfa..a87e89dd 100644 --- a/release/man2/socketcall.2 +++ b/release/man2/socketcall.2 @@ -29,42 +29,42 @@ .\" Translated Mon Mar 3 23:45:10 JST 1997 .\" by HANATAKA Shinya .\" -.\"WORD: socket ¥½¥±¥Ã¥È -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: entry ¥¨¥ó¥È¥ê -.\"WORD: hacker ¥Ï¥Ã¥«¡¼ -.\"WORD: library ¥é¥¤¥Ö¥é¥ê +.\"WORD: socket ソケット +.\"WORD: kernel カーネル +.\"WORD: entry エントリ +.\"WORD: hacker ハッカー +.\"WORD: library ライブラリ .\" .TH SOCKETCALL 2 2007-06-28 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -socketcall \- ¥½¥±¥Ã¥È¡¦¥·¥¹¥Æ¥à¥³¡¼¥ë -.SH ½ñ¼° +.SH 名前 +socketcall \- ソケット・システムコール +.SH 書式 .BI "int socketcall(int " call ", unsigned long *" args ); -.SH ÀâÌÀ +.SH 説明 .BR socketcall () -¤Ï¥½¥±¥Ã¥È¡¦¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¤¿¤á¤Î¶¦Ä̤Υ«¡¼¥Í¥ë¡¦¥¨¥ó¥È¥ê¡¦ -¥Ý¥¤¥ó¥È(kernel entry point)¤Ç¤¢¤ë¡£ +はソケット・システムコールのための共通のカーネル・エントリ・ +ポイント(kernel entry point)である。 .I call -¤Ï¤É¤Î¥½¥±¥Ã¥È´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤«¤ò»ØÄꤹ¤ë¡£ +はどのソケット関数を呼び出すかを指定する。 .I args -¤ÏŬÀڤʥ³¡¼¥ë¤ËÅϤ¹¤¿¤á¤Î¼ÂºÝ¤Î°ú¤­¿ô¤ò´Þ¤ó¤Ç¤¤¤ë¥Ö¥í¥Ã¥¯¤ò»Ø¤¹¡£ +は適切なコールに渡すための実際の引き数を含んでいるブロックを指す。 .PP -¥æ¡¼¥¶¡¼¡¦¥×¥í¥°¥é¥à¤ÏÄ̾ï¤Î̾Á°¤ò»ÈÍѤ·¤ÆŬÀڤʴؿô¤ò¸Æ¤Ó½Ð¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -ɸ½à¥é¥¤¥Ö¥é¥ê¤Î¼ÂÁõ¼Ô¤ä¥«¡¼¥Í¥ë¡¦¥Ï¥Ã¥«¡¼¤Î¤ß¤¬ +ユーザー・プログラムは通常の名前を使用して適切な関数を呼び出すべきである。 +標準ライブラリの実装者やカーネル・ハッカーのみが .BR socketcall () -¤Ë¤Ä¤¤¤ÆÃΤëɬÍפ¬¤¢¤ë¡£ -.SH ½àµò -¤³¤Î¥³¡¼¥ë¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç -»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ -.SH Ãí°Õ -ia64 ¤Ê¤É¤Î¤¤¤¯¤Ä¤«¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë +について知る必要がある。 +.SH 準拠 +このコールは Linux 特有であり、移植を意図したプログラムで +使用してはいけない。 +.SH 注意 +ia64 などのいくつかのアーキテクチャでは、システムコール .BR socketcall () -¤¬Â¸ºß¤·¤Ê¤¤¡£¼ÂºÝ¤Ë¤Ï¡¢¤½¤ÎÂå¤ï¤ê¤Ë +が存在しない。実際には、その代わりに .BR socket (2), .BR accept (2), .BR bind (2) -¤Ê¤É¤¬ÆÈΩ¤·¤¿¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +などが独立したシステムコールとして実装されている。 +.SH 関連項目 .BR accept (2), .BR bind (2), .BR connect (2), diff --git a/release/man2/socketpair.2 b/release/man2/socketpair.2 index dcdc2e13..4c5f64d8 100644 --- a/release/man2/socketpair.2 +++ b/release/man2/socketpair.2 @@ -44,99 +44,99 @@ .\" Updated 2005-02-24, Akihiro MOTOKI .\" Updated 2008-11-09, Akihiro MOTOKI , LDP v3.13 .\" -.\"WORD: socket ¥½¥±¥Ã¥È -.\"WORD: pair ¥Ú¥¢ -.\"WORD: domain ¥É¥á¥¤¥ó -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: family ¥Õ¥¡¥ß¥ê -.\"WORD: implement ¼ÂÁõ +.\"WORD: socket ソケット +.\"WORD: pair ペア +.\"WORD: domain ドメイン +.\"WORD: descriptor ディスクリプタ +.\"WORD: family ファミリ +.\"WORD: implement 実装 .\" .TH SOCKETPAIR 2 2008-10-11 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -socketpair \- Àܳ¤µ¤ì¤¿¥½¥±¥Ã¥È¤Î¥Ú¥¢¤òºîÀ®¤¹¤ë -.SH ½ñ¼° -.BR "#include " " /* ¡ÖÃí°Õ¡×»²¾È */" +.SH 名前 +socketpair \- 接続されたソケットのペアを作成する +.SH 書式 +.BR "#include " " /* 「注意」参照 */" .br .B #include .sp .BI "int socketpair(int " domain ", int " type ", int " protocol \ ", int " sv [2]); -.SH ÀâÌÀ +.SH 説明 .BR socketpair () -¤Ï¡¢»ØÄꤵ¤ì¤¿¥É¥á¥¤¥ó +は、指定されたドメイン .I domain -¤Ë»ØÄꤵ¤ì¤¿¼ïÎà +に指定された種類 .I type -¤Ç̾Á°¤Î¤Ê¤¤¥½¥±¥Ã¥È¤ÎÀܳ¤µ¤ì¤¿¥Ú¥¢¤òºîÀ®¤¹¤ë¡£ +で名前のないソケットの接続されたペアを作成する。 .I protocol -¤¬»ØÄꤵ¤ì¤ë¤È¡¢¤³¤Î¥×¥í¥È¥³¥ë¤òÍѤ¤¤ë¡£ -¤³¤ì¤é¤Î°ú¤­¿ô¤Î¾ÜºÙ¤Ï +が指定されると、このプロトコルを用いる。 +これらの引き数の詳細は .BR socket (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 -¿·¤·¤¤¥½¥±¥Ã¥È¤Î»²¾È¤Ë»ÈÍѤ¹¤ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ (descriptor) ¤¬ +新しいソケットの参照に使用するディスクリプタ (descriptor) が .IR sv [0] -¤È +と .IR sv [1] -¤ËÊÖ¤µ¤ì¤ë¡£ -Æó¤Ä¤Î¥½¥±¥Ã¥È¤ÏÁ´¤¯Æ±¤¸¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +に返される。 +二つのソケットは全く同じである。 +.SH 返り値 +成功した場合はゼロを返す、エラーの場合は \-1 を返し、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EAFNOSUPPORT -¤³¤Î¥Þ¥·¥ó¤Ç¤Ï»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¡¦¥Õ¥¡¥ß¥ê¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +このマシンでは指定されたアドレス・ファミリがサポートされていない。 .TP .B EFAULT -¥¢¥É¥ì¥¹ +アドレス .I sv -¤¬¤³¤Î¥×¥í¥»¥¹¤Ç»È¤¨¤ë¥¢¥É¥ì¥¹¶õ´Ö¤ò»ØÄꤷ¤Æ¤¤¤Ê¤¤¡£ +がこのプロセスで使えるアドレス空間を指定していない。 .TP .B EMFILE -¤³¤Î¥×¥í¥»¥¹¤¬»ÈÍѤ·¤Æ¤¤¤ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¿ô¤¬Â¿¤¹¤®¤ë¡£ +このプロセスが使用しているディスクリプタの数が多すぎる。 .TP .B ENFILE -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ÎÁí¿ô¤¬¥·¥¹¥Æ¥àÁ´ÂΤξå¸Â¤Ë㤷¤¿¡£ +オープンされたファイルの総数がシステム全体の上限に達した。 .TP .B EOPNOTSUPP -»ØÄꤵ¤ì¤¿¥×¥í¥È¥³¥ë¤Ç¤Ï¥½¥±¥Ã¥È¤Î¥Ú¥¢¤ÎºîÀ®¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +指定されたプロトコルではソケットのペアの作成がサポートされていない。 .TP .B EPROTONOSUPPORT -¤³¤Î¥Þ¥·¥ó¤Ç¤Ï»ØÄꤵ¤ì¤¿¥×¥í¥È¥³¥ë¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ½àµò +このマシンでは指定されたプロトコルがサポートされていない。 +.SH 準拠 4.4BSD, POSIX.1-2001. .BR socketpair () -´Ø¿ô¥³¡¼¥ë¤Ï 4.2BSD ¤Ç¸½¤ï¤ì¤¿¡£°ìÈÌ¤Ë (System V ¤ÎÊѼï¤ò´Þ¤á¤Æ) -BSD ¤Î¥½¥±¥Ã¥ÈÁؤΥ¯¥í¡¼¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡¢BSD °Ê³°¤Î¥·¥¹¥Æ¥à¤È¡¢ -¸ß¤¤¤Ë°Ü¿¢À­¤¬¤¢¤ë¡£ -.SH Ãí°Õ -Linux ¤Ç¤Ï¡¢¤³¤Î´Ø¿ô¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥É¥á¥¤¥ó¤Ï +関数コールは 4.2BSD で現われた。一般に (System V の変種を含めて) +BSD のソケット層のクローンをサポートしている、BSD 以外のシステムと、 +互いに移植性がある。 +.SH 注意 +Linux では、この関数でサポートされているドメインは .B AF_UNIX -(¤Þ¤¿¤ÏƱµÁ¸ì¤Ç¤¢¤ë +(または同義語である .BR AF_LOCAL ) -¤À¤±¤Ç¤¢¤ë¡£ -(¤Û¤È¤ó¤É¤Î¼ÂÁõ¤ÇƱ¤¸À©¸Â¤¬¤¢¤ë) +だけである。 +(ほとんどの実装で同じ制限がある) -Linux 2.6.27 °Ê¹ß¤Ç¤Ï¡¢ +Linux 2.6.27 以降では、 .BR socketpair () -¤Ï¡¢¥Õ¥é¥° +は、フラグ .B SOCK_NONBLOCK -¤È +と .B SOCK_CLOEXEC -¤ËÂбþ¤·¤Æ¤¤¤ë¡£¥Õ¥é¥°¤ÎÀâÌÀ¤Ï +に対応している。フラグの説明は .BR socket (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 -POSIX.1-2001 ¤Ç¤Ï +POSIX.1-2001 では .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ïɬ¿Ü¤È¤µ¤ì¤Æ¤ª¤é¤º¡¢ -Linux ¤Ç¤Ï¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÏɬÍפǤϤʤ¤¡£ -¤·¤«¤·¡¢Îò»ËŪ¤Ë¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¼ÂÁõ (BSD ·Ï) ¤Ç¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬ -ɬÍפǤ¢¤ê¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤ò -¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤Î¤¬¸­ÌÀ¤Ç¤¢¤í¤¦¡£ -.SH ´ØÏ¢¹àÌÜ +のインクルードは必須とされておらず、 +Linux ではこのヘッダファイルは必要ではない。 +しかし、歴史的には、いくつかの実装 (BSD ç³») でこのヘッダファイルが +必要であり、移植性が必要なアプリケーションではこのファイルを +インクルードするのが賢明であろう。 +.SH 関連項目 .BR pipe (2), .BR read (2), .BR socket (2), diff --git a/release/man2/splice.2 b/release/man2/splice.2 index a92cb1bb..3822de8c 100644 --- a/release/man2/splice.2 +++ b/release/man2/splice.2 @@ -29,11 +29,11 @@ .\" Updated 2008-11-10, Akihiro MOTOKI , LDP v3.13 .\" .TH SPLICE 2 2009-09-15 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -splice \- ¥Ñ¥¤¥×¤È¤Î´Ö¤Ç¥Ç¡¼¥¿¤ò·Ñ¤®¹ç¤ï¤»¤ë -.SH ½ñ¼° +.SH 名前 +splice \- パイプとの間でデータを継ぎ合わせる +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .BI "ssize_t splice(int " fd_in ", loff_t *" off_in ", int " fd_out , @@ -41,164 +41,164 @@ splice \- ", unsigned int " flags ); .fi .\" Return type was long before glibc 2.7 -.SH ÀâÌÀ +.SH 説明 .BR splice () -¤Ï¡¢¥«¡¼¥Í¥ë¥¢¥É¥ì¥¹¶õ´Ö¤È¥æ¡¼¥¶¥¢¥É¥ì¥¹¶õ´Ö¤È¤Î´Ö¤Î¥³¥Ô¡¼¤òȼ¤ï¤º¤Ë¡¢ -2 ¤Ä¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿´Ö¤Ç¥Ç¡¼¥¿¤Î°ÜÆ°¤ò¹Ô¤¦¡£ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +は、カーネルアドレス空間とユーザアドレス空間との間のコピーを伴わずに、 +2 つのファイルディスクリプタ間でデータの移動を行う。 +ファイルディスクリプタ .I fd_in -¤«¤é¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +からファイルディスクリプタ .I fd_out -¤ØºÇÂç +へ最大 .I len -¥Ð¥¤¥È¤òžÁ÷¤¹¤ë¡£ -2 ¤Ä¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¦¤Á°ì¤Ä¤Ï -¥Ñ¥¤¥×¤ò»²¾È¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +バイトを転送する。 +2 つのファイルディスクリプタのうち一つは +パイプを参照していなければならない。 .PP .I fd_in -¤¬¥Ñ¥¤¥×¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¡¢ +がパイプを参照している場合、 .I off_in -¤Ï NULL ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は NULL でなければならない。 .I fd_in -¤¬¥Ñ¥¤¥×¤ò»²¾È¤·¤Æ¤ª¤é¤º¡¢ +がパイプを参照しておらず、 .I off_in -¤¬ NULL ¤Î¾ì¹ç¡¢ +が NULL の場合、 .I fd_in -¤Î¸½ºß¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤«¤é»Ï¤Þ¤ë¥Ð¥¤¥È¤òÆɤ߽Ф¹¡£ -¸½ºß¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤ÏŬÀÚ¤ËÄ´À°¤µ¤ì¤ë¡£ +の現在のファイルオフセットから始まるバイトを読み出す。 +現在のファイルオフセットは適切に調整される。 .I fd_in -¤¬¥Ñ¥¤¥×¤ò»²¾È¤·¤Æ¤ª¤é¤º¡¢ +がパイプを参照しておらず、 .I off_in -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が NULL でない場合、 .I off_in -¤Ï +は .I fd_in -¤«¤é¤Î¥Ç¡¼¥¿Æɤ߽Ф·¤ò³«»Ï¤¹¤ëÀèƬ¥ª¥Õ¥»¥Ã¥È¤ò³ÊǼ¤·¤¿¥Ð¥Ã¥Õ¥¡ -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤Î¾ì¹ç¡¢ +からのデータ読み出しを開始する先頭オフセットを格納したバッファ +へのポインタでなければならない。この場合、 .I fd_in -¤Î¸½ºß¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +の現在のファイルオフセットは変更されない。 .I fd_out -¤È +と .I off_out -¤Ë´Ø¤·¤Æ¤âƱÍͤǤ¢¤ë¡£ +に関しても同様である。 .PP .I flags -°ú¤­¿ô¤Ë¤Ï¡¢°Ê²¼¤ÎÃͤΠ0 ¸Ä°Ê¾å¤Î¥Ó¥Ã¥Èñ°Ì¤ÎÏÀÍýϤò -¤È¤Ã¤¿¤â¤Î¤ò»ØÄꤹ¤ë: +引き数には、以下の値の 0 個以上のビット単位の論理和を +とったものを指定する: .TP 1.9i .B SPLICE_F_MOVE -¥Ú¡¼¥¸¤Î¥³¥Ô¡¼¤Ç¤Ê¤¯°ÜÆ°¤ò»î¤ß¤ë¡£ -¤³¤ì¤Ï¥«¡¼¥Í¥ë¤ËÂФ¹¤ë¥Ò¥ó¥È¤Ç¤·¤«¤Ê¤¤¡£ -¤Ä¤Þ¤ê¡¢¥«¡¼¥Í¥ë¤¬¥Ñ¥¤¥×¤«¤é¥Ú¡¼¥¸¤ò°ÜÆ°¤Ç¤­¤Ê¤¤¾ì¹ç¤ä¡¢ -¥Ñ¥¤¥×¥Ð¥Ã¥Õ¥¡¤¬¥Ú¡¼¥¸Á´Éô¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢ -¥Ú¡¼¥¸¤Î¥³¥Ô¡¼¤¬¹Ô¤ï¤ì¤ë¤³¤È¤â¤¢¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ÎºÇ½é¤Î¼ÂÁõ¤Ë¤Ï¥Ð¥°¤¬¤¢¤Ã¤¿¡£¤½¤Î¤¿¤á¡¢ -Linux 2.6.21 °Ê¹ß¤Ç¤Ï¤³¤Î¥Õ¥é¥°¤ÎÁàºî¤Ï¤Ç¤­¤Ê¤¤¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë -(¤¿¤À¤·¡¢ +ページのコピーでなく移動を試みる。 +これはカーネルに対するヒントでしかない。 +つまり、カーネルがパイプからページを移動できない場合や、 +パイプバッファがページ全部を参照していない場合は、 +ページのコピーが行われることもある。 +このフラグの最初の実装にはバグがあった。そのため、 +Linux 2.6.21 以降ではこのフラグの操作はできないようになっている +(ただし、 .BR splice () -¥³¡¼¥ë¤Ç¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤³¤È¤Ïº£¤âǧ¤á¤é¤ì¤Æ¤¤¤ë)¡£ -¾­Íè¡¢Àµ¤·¤¤¼ÂÁõ¤¬¹Ô¤ï¤ì¤ë¤³¤È¤À¤í¤¦¡£ +コールでこのフラグを指定することは今も認められている)。 +将来、正しい実装が行われることだろう。 .TP .B SPLICE_F_NONBLOCK -Æþ½ÐÎÏ»þ¤ËÄä»ß (block) ¤·¤Ê¤¤¡£ -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È¡¢ -splice ¤Ë¤è¤ë¥Ñ¥¤¥×Áàºî¤òÈóÄä»ß¥â¡¼¥É (nonblocking) ¤Ç -¹Ô¤ª¤¦¤È¤¹¤ë¤¬¡¢¤½¤Î¾ì¹ç¤Ç¤â +入出力時に停止 (block) しない。 +このフラグを指定すると、 +splice によるパイプ操作を非停止モード (nonblocking) で +行おうとするが、その場合でも .BR splice () -¤ÏÄä»ß¤¹¤ë¤³¤È¤â¤¢¤ë¡£¤Ê¤¼¤Ê¤é¡¢¥Ç¡¼¥¿¤Î¤ä¤ê¼è¤ê¤ò¹Ô¤¦ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï +は停止することもある。なぜなら、データのやり取りを行う +ファイルディスクリプタは .RB ( O_NONBLOCK -¥Õ¥é¥°¤ò¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç) Ää»ß¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¤«¤é¤Ç¤¢¤ë¡£ +フラグをセットされていない場合) 停止する可能性があるからである。 .TP .B SPLICE_F_MORE -¤³¤Î¸å¤Î splice ¤Ç¤µ¤é¤ËžÁ÷¤µ¤ì¤ë¥Ç¡¼¥¿¤¬¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ -¤³¤Î¥Õ¥é¥°¤Ï +この後の splice でさらに転送されるデータがあることを示す。 +このフラグは .I fd_out -¤¬¥½¥±¥Ã¥È¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¤ËÍ­ÍѤʥҥó¥È¤È¤Ê¤ë +がソケットを参照している場合に有用なヒントとなる .RB ( send (2) -¤Î +の .B MSG_MORE -¤ä +や .BR tcp (7) -¤Î +の .B TCP_CORK -¤ÎÀâÌÀ¤â»²¾È)¡£ +の説明も参照)。 .TP .B SPLICE_F_GIFT .BR splice () -¤Ç¤Ï»ÈÍѤ·¤Ê¤¤¡£ +では使用しない。 .BR vmsplice (2) -»²¾È¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤Æ´°Î»¤¹¤ë¤È¡¢ +参照。 +.SH 返り値 +成功して完了すると、 .BR splice () -¤Ï¥Ñ¥¤¥×¤«¤é½Ð¤·Æþ¤ì¤·¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -ÊÖ¤êÃÍ 0 ¤Ï¥Ç¡¼¥¿¤ÎžÁ÷¤¬¹Ô¤ï¤Ê¤«¤Ã¤¿¤³¤È¤ò¼¨¤¹¡£ -¤³¤Î¾ì¹ç¡¢½èÍý¤òÄä»ß (block) ¤·¤Æ¤â̵°ÕÌ£¤Ç¤¢¤ë¡£ -¤Ê¤¼¤Ê¤é¡¢ +はパイプから出し入れしたバイト数を返す。 +返り値 0 はデータの転送が行わなかったことを示す。 +この場合、処理を停止 (block) しても無意味である。 +なぜなら、 .I fd_in -¤¬»²¾È¤¹¤ë¥Ñ¥¤¥×¤Î½ñ¤­¹þ¤ß¦¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¼Ô¤¬¤¤¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +が参照するパイプの書き込み側に接続されている者がいないからである。 .PP -¥¨¥é¡¼¤Î¾ì¹ç¡¢ +エラーの場合、 .BR splice () -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値を設定する。 +.SH エラー .TP .B EBADF -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î°ìÊý¤Þ¤¿¤ÏξÊý¤¬Í­¸ú¤Ç¤Ï¤Ê¤¤¡¢ -¤â¤·¤¯¤ÏŬÀÚ¤Ê read-write ¥â¡¼¥É¤Ç¤Ï¤Ê¤¤¡£ +ファイルディスクリプタの一方または両方が有効ではない、 +もしくは適切な read-write モードではない。 .TP .B EINVAL -ÂоݤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ splice ¤ËÂбþ¤·¤Æ¤¤¤Ê¤¤¡¢ -¤Þ¤¿¤ÏÂоݤΥե¡¥¤¥ë¤¬Äɵ­¥â¡¼¥É¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¡¢ -.\" Äɵ­¥â¡¼¥É¤Ç¤Î¥¨¥é¡¼¤Ï 2.6.27 °Ê¹ß¤ÇȯÀ¸¤¹¤ë¡£ -.\" ¤½¤ì¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤ÏÄɵ­¥â¡¼¥É¤Ç¤Î splice() ¤ÏÀµ¤·¤¯Æ°ºî¤·¤Ê¤¤¡£ -¤Þ¤¿¤Ï¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤É¤Á¤é¤â¥Ñ¥¤¥×¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡¢ -¤Þ¤¿¤Ï seek ¤Ç¤­¤Ê¤¤¥Ç¥Ð¥¤¥¹¤ËÂФ·¤Æ¥ª¥Õ¥»¥Ã¥È¤¬»ØÄꤵ¤ì¤¿¡£ +対象のファイルシステムが splice に対応していない、 +または対象のファイルが追記モードでオープンされている、 +.\" 追記モードでのエラーは 2.6.27 以降で発生する。 +.\" それより前のカーネルでは追記モードでの splice() は正しく動作しない。 +またはディスクリプタのどちらもパイプを参照していない、 +または seek できないデバイスに対してオフセットが指定された。 .TP .B ENOMEM -¥á¥â¥êÉÔ­¡£ +メモリ不足。 .TP .B ESPIPE .I off_in -¤« +か .I off_out -¤Î¤¤¤º¤ì¤«¤¬ NULL ¤Ç¤Ï¤Ê¤¤¤¬¡¢Âбþ¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ -¥Ñ¥¤¥×¤ò»²¾È¤·¤Æ¤¤¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +のいずれかが NULL ではないが、対応するファイルディスクリプタが +パイプを参照している。 +.SH バージョン .BR splice () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 2.6.17 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -3 ¤Ä¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë +システムコールは Linux 2.6.17 で初めて登場した。 +.SH 準拠 +このシステムコールは Linux 固有である。 +.SH 注意 +3 つのシステムコール .RB ( splice (), .BR vmsplice (2), .BR tee (2)) -¤ò»È¤¦¤È¡¢¥æ¡¼¥¶¶õ´Ö¥×¥í¥°¥é¥à¤ÏǤ°Õ¤Î¥«¡¼¥Í¥ë¥Ð¥Ã¥Õ¥¡¤ËÂФ¹¤ë -´°Á´¤ÊÀ©¸æ¤¬¤Ç¤­¤ë¡£¥«¡¼¥Í¥ë¥Ð¥Ã¥Õ¥¡¤Ï¡¢¥Ñ¥¤¥×¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë¤Î¤È -Ʊ¼ï¤Î¥Ð¥Ã¥Õ¥¡¤ò»È¤Ã¤Æ¥«¡¼¥Í¥ëÆâ¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -Âç¤Þ¤«¤Ë¤¤¤¦¤È¡¢¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï°Ê²¼¤Î»Å»ö¤ò¹Ô¤¦: +を使うと、ユーザ空間プログラムは任意のカーネルバッファに対する +完全な制御ができる。カーネルバッファは、パイプに使用されているのと +同種のバッファを使ってカーネル内に実装されている。 +大まかにいうと、これらのシステムコールは以下の仕事を行う: .TP 1.2i .BR splice () -¥Ð¥Ã¥Õ¥¡¤«¤éǤ°Õ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ä¡¢¤½¤ÎµÕÊý¸þ¡¢ -¤â¤·¤¯¤Ï¤¢¤ë¥Ð¥Ã¥Õ¥¡¤«¤éÊ̤ΥХåե¡¤Ø¤Î¡¢¥Ç¡¼¥¿°ÜÆ°¤ò¹Ô¤¦¡£ +バッファから任意のファイルディスクリプタや、その逆方向、 +もしくはあるバッファから別のバッファへの、データ移動を行う。 .TP .BR tee (2) -¤¢¤ë¥Ð¥Ã¥Õ¥¡¤«¤éÊ̤ΥХåե¡¤Ø¤Î¥Ç¡¼¥¿¡Ö¥³¥Ô¡¼¡×¤ò¹Ô¤¦¡£ +あるバッファから別のバッファへのデータ「コピー」を行う。 .TP .BR vmsplice (2) -¥æ¡¼¥¶¶õ´Ö¤«¤é¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ç¡¼¥¿¡Ö¥³¥Ô¡¼¡×¤ò¹Ô¤¦¡£ +ユーザ空間からバッファへのデータ「コピー」を行う。 .PP -¤³¤³¤Ç¤Ï¥³¥Ô¡¼¤ÎÏäò¤·¤Æ¤¤¤ë¤¬¡¢¼ÂºÝ¤Î¥³¥Ô¡¼¤Ï°ìÈÌŪ¤Ë²óÈò¤µ¤ì¤ë¡£ -¥«¡¼¥Í¥ë¤Ï¡¢¥Ñ¥¤¥×¡¦¥Ð¥Ã¥Õ¥¡¤ò¥«¡¼¥Í¥ë¥á¥â¥ê¤Î¥Ú¡¼¥¸¤Ø¤Î¥Ý¥¤¥ó¥¿½¸¹ç¤È¤·¤Æ -¼ÂÁõ¤·¡¢¥Ú¡¼¥¸¤Ø¤Î»²¾È²ó¿ô¤ò´ÉÍý¤¹¤ë¤³¤È¤Ç¡¢¤³¤ì¤ò¼Â¸½¤·¤Æ¤¤¤ë¡£ -¥«¡¼¥Í¥ë¤Ï¡¢ÂоݤȤʤë¥Ú¡¼¥¸¤ò»²¾È¤¹¤ë (½ÐÎϥХåե¡ÍѤÎ) ¥Ý¥¤¥ó¥¿¤ò -¿·µ¬¤ËºîÀ®¤¹¤ë¤³¤È¤Ç¥Ð¥Ã¥Õ¥¡Æâ¤Î¥Ú¡¼¥¸¤Î¡Ö¥³¥Ô¡¼¡×¤òºîÀ®¤·¡¢ -¤½¤Î¥Ú¡¼¥¸¤Î»²¾È²ó¿ô¤òÁý¤ä¤¹¡£¤Ä¤Þ¤ê¡¢¥Ý¥¤¥ó¥¿¤À¤±¤¬¥³¥Ô¡¼¤µ¤ì¡¢ -¥Ð¥Ã¥Õ¥¡¤Î¥Ú¡¼¥¸¤Ï¥³¥Ô¡¼¤µ¤ì¤Ê¤¤¡£ +ここではコピーの話をしているが、実際のコピーは一般的に回避される。 +カーネルは、パイプ・バッファをカーネルメモリのページへのポインタ集合として +実装し、ページへの参照回数を管理することで、これを実現している。 +カーネルは、対象となるページを参照する (出力バッファ用の) ポインタを +新規に作成することでバッファ内のページの「コピー」を作成し、 +そのページの参照回数を増やす。つまり、ポインタだけがコピーされ、 +バッファのページはコピーされない。 .\" .\" Linus: Now, imagine using the above in a media server, for example. .\" Let's say that a year or two has passed, so that the video drivers @@ -222,10 +222,10 @@ splice .\" the data and choose to forward it to two or more different .\" users - for things like logging etc.). .\" -.SH Îã +.SH 例 .BR tee (2) -»²¾È¡£ -.SH ´ØÏ¢¹àÌÜ +参照。 +.SH 関連項目 .BR sendfile (2), .BR tee (2), .BR vmsplice (2) diff --git a/release/man2/spu_create.2 b/release/man2/spu_create.2 index 2575452a..e058ddac 100644 --- a/release/man2/spu_create.2 +++ b/release/man2/spu_create.2 @@ -27,144 +27,144 @@ .\" Translated 2007-10-23, Akihiro MOTOKI .\" .TH SPU_CREATE 2 2007-07-10 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -spu_create \- ¿·¤·¤¤ SPU ¥³¥ó¥Æ¥­¥¹¥È¤òÀ¸À®¤¹¤ë -.SH ½ñ¼° +.SH 名前 +spu_create \- 新しい SPU コンテキストを生成する +.SH 書式 .nf .B #include .B #include .BI "int spu_create(const char *" pathname ", int " flags ", mode_t " mode ");" .fi -.SH ÀâÌÀ +.SH 説明 .BR spu_create () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢Cell Broadband Engine ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ò¼ÂÁõ¤·¤¿ -PowerPC ¥Þ¥·¥ó¤Ë¤ª¤¤¤Æ¡¢Synergistic Processor Unit (SPU) ¤Ë¥¢¥¯¥»¥¹¤¹¤ë -¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢SPU ¤ËÂФ¹¤ë¿·¤·¤¤ÏÀÍý¥³¥ó¥Æ¥­¥¹¥È¤ò +システムコールは、Cell Broadband Engine アーキテクチャを実装した +PowerPC マシンにおいて、Synergistic Processor Unit (SPU) にアクセスする +ために使用される。 +このシステムコールは、SPU に対する新しい論理コンテキストを .I pathname -¤ËÀ¸À®¤·¡¢¤½¤Î¥³¥ó¥Æ¥­¥¹¥È¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ +に生成し、そのコンテキストに関連付けられたファイルディスクリプタを返す。 .I pathname -¤Ï SPU ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à (SPUFS) ¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥ÈÆâ¤Î -¸ºß¤·¤Ê¤¤¥Ç¥£¥ì¥¯¥È¥ê¤ò»Ø¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は SPU ファイルシステム (SPUFS) のマウントポイント内の +存在しないディレクトリを指していなければならない。 .BR spu_create () -¤¬À®¸ù¤¹¤ë¤È¡¢ +が成功すると、 .I pathname -¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤¬À¸À®¤µ¤ì¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë +にディレクトリが生成され、そのディレクトリに .BR spufs (7) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë·²¤¬ÇÛÃÖ¤µ¤ì¤ë¡£ +で説明されているファイル群が配置される。 -ÊÖ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥é¤Ï¡¢ +返されたファイルハンドラは、 .BR spu_run (2) -¤ËÅϤ¹¤«¡¢¥¯¥í¡¼¥º¤¹¤ë¤«¤·¤«¤Ç¤­¤Ê¤¤¡£ -¾¤ÎÁàºî¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -ÏÀÍý SPU ¥³¥ó¥Æ¥­¥¹¥È¤¬ÇË´þ¤µ¤ì¤ë¤Î¤Ï¡¢ -¥³¥ó¥Æ¥­¥¹¥È¼«¿È¤Ø¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥¯¥í¡¼¥º¤µ¤ì¡¢ -¤½¤ÎÃæ¤Î¥Õ¥¡¥¤¥ë¤Ø¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Á´¤Æ¥¯¥í¡¼¥º¤µ¤ì¤¿¤È¤­¤Ç¤¢¤ë¡£ -SPU ¥³¥ó¥Æ¥­¥¹¥È¤¬ÇË´þ¤µ¤ì¤ë¤È¡¢SPUFS Æâ¤Î¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ÎÁ´¤Æ¤Î¥¨¥ó¥È¥ê -¤¬ºï½ü¤µ¤ì¤ë¡£ +に渡すか、クローズするかしかできない。 +他の操作は定義されていない。 +論理 SPU コンテキストが破棄されるのは、 +コンテキスト自身へのファイルディスクリプタがクローズされ、 +その中のファイルへのファイルディスクリプタが全てクローズされたときである。 +SPU コンテキストが破棄されると、SPUFS 内のそのディレクトリの全てのエントリ +が削除される。 -°ú¤­¿ô +引き数 .I flags -¤Ë¤Ï¥¼¥í¤«°Ê²¼¤ÎÄê¿ô¤ò»ØÄê¤Ç¤­¤ë¡£ +にはゼロか以下の定数を指定できる。 .TP .B SPU_RAWIO -SPU ¤Î¥Ï¡¼¥É¥¦¥§¥¢¥ì¥¸¥¹¥¿¤Î¤¤¤¯¤Ä¤«¤ò¥æ¡¼¥¶¶õ´Ö¤Ë¥Þ¥Ã¥Ô¥ó¥°¤¹¤ë¤³¤È¤ò -µö²Ä¤¹¤ë¡£¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤Ë¤Ï +SPU のハードウェアレジスタのいくつかをユーザ空間にマッピングすることを +許可する。このフラグを指定するには .B CAP_SYS_RAWIO -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティが必要である。 .PP -SPUFS Æâ¤Ë¿·¤·¤¯À¸À®¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤È¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹µö²Ä¤Ï¡¢ +SPUFS 内に新しく生成されたディレクトリとファイルのアクセス許可は、 .I mode -°ú¤­¿ô¤«¤é¤½¤Î¥×¥í¥»¥¹¤Î +引き数からそのプロセスの .BR umask (2) -¤ò°ú¤¤¤¿ÃͤËÀßÄꤵ¤ì¤ë¡£ -³Æ¥Õ¥¡¥¤¥ë¤Î¼ÂºÝ¤Î¥¢¥¯¥»¥¹µö²Ä¤Ï¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤¬Æɤ߽Ф·¥¢¥¯¥»¥¹¤ä -½ñ¤­¹þ¤ß¥¢¥¯¥»¥¹¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤«¤â¹Íθ¤·¤Æ·è¤Þ¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +を引いた値に設定される。 +各ファイルの実際のアクセス許可は、そのファイルが読み出しアクセスや +書き込みアクセスをサポートしているかも考慮して決まる。 +.SH 返り値 +成功すると、 .BR spu_create (2) -¤Ï¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は新しいファイルディスクリプタを返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë°Ê²¼¤Î¥ê¥¹¥È¤Ëµ­ºÜ¤Î¥¨¥é¡¼¥³¡¼¥É¤Î¤¤¤º¤ì¤«¤òÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +に以下のリストに記載のエラーコードのいずれかを設定する。 +.SH エラー .TP .B EACCES -¸½ºß¤Î¥æ¡¼¥¶¤¬ SPUFS ¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ø¤Î½ñ¤­¹þ¤ßµö²Ä¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +現在のユーザが SPUFS のマウントポイントへの書き込み許可を持っていない。 .TP .B EEXIST -»ØÄꤵ¤ì¤¿¥Ñ¥¹Ì¾¤Î SPU ¥³¥ó¥Æ¥­¥¹¥È¤¬¤¹¤Ç¤ËÀ¸À®¤µ¤ì¤Æ¤¤¤ë¡£ +指定されたパス名の SPU コンテキストがすでに生成されている。 .TP .B EFAULT .I pathname -¤¬¸½ºß¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ÇÍ­¸ú¤Êʸ»úÎó¥Ý¥¤¥ó¥¿¤Ç¤Ï¤Ê¤¤¡£ +が現在のアドレス空間で有効な文字列ポインタではない。 .TP .B EINVAL .I pathname -¤¬ SPUFS ¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥¿Æâ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£ +が SPUFS マウントポインタ内のディレクトリではない。 .TP .B ELOOP .I pathname -¤ò²ò·è¤¹¤ë¤Þ¤Ç¤Ëé¤Ã¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬Â¿²á¤®¤¿¡£ +を解決するまでに辿ったシンボリックリンクが多過ぎた。 .TP .B EMFILE -¤½¤Î¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¿ô¤Î¾å¸Â¤Ë㤷¤Æ¤¤¤¿¡£ +そのプロセスがオープンできるファイル数の上限に達していた。 .TP .B ENAMETOOLONG .I pathname -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENFILE -¥·¥¹¥Æ¥àÁ´ÂΤǥª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¿ô¤Î¾å¸Â¤Ë㤷¤Æ¤¤¤¿¡£ +システム全体でオープンできるファイル数の上限に達していた。 .TP .B ENOENT .I pathname -¤Î°ìÉô¤¬²ò·è¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +の一部が解決できなかった。 .TP .B ENOMEM -¥«¡¼¥Í¥ë¤¬É¬Íפʥ꥽¡¼¥¹¤ÎÁ´¤Æ¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +カーネルが必要なリソースの全てを割り当てることができなかった。 .TP .B ENOSPC -¿·¤·¤¤¥³¥ó¥Æ¥­¥¹¥È¤òÀ¸À®¤¹¤ë¤Î¤Ë½½Ê¬¤Ê SPU ¥ê¥½¡¼¥¹¤¬¤Ê¤«¤Ã¤¿¡¢ -¤Þ¤¿¤Ï SPU ¥³¥ó¥Æ¥­¥¹¥È¿ô¤¬¤½¤Î¥æ¡¼¥¶¤ÎÆÃÄê¤Î¾å¸Â¤Ë㤷¤Æ¤¤¤¿¡£ +新しいコンテキストを生成するのに十分な SPU リソースがなかった、 +または SPU コンテキスト数がそのユーザの特定の上限に達していた。 .TP .B ENOSYS -µ¡Ç½¤¬Æ°ºîÃæ¤Î¥·¥¹¥Æ¥à¤ÇÄ󶡤µ¤ì¤Æ¤¤¤Ê¤¤¡£Íýͳ¤Ï¡¢ -¥Ï¡¼¥É¥¦¥§¥¢¤Ç SPU ¤¬Ä󶡤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ -spufs ¥â¥¸¥å¡¼¥ë¤¬¥í¡¼¥É¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢¤Î¤É¤Á¤é¤«¤Ç¤¢¤ë¡£ +機能が動作中のシステムで提供されていない。理由は、 +ハードウェアで SPU が提供されていないか、 +spufs モジュールがロードされていないか、のどちらかである。 .TP .B ENOTDIR .I pathname -¤Î°ìÉô¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£ -.SH ¥Õ¥¡¥¤¥ë +の一部がディレクトリではない。 +.SH ファイル .I pathname -¤Ï SPUFS ¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ÎÇÛ²¼¤Î¾ì½ê¤ò»Ø¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -´·Îã¤Ç¤Ï¡¢SPUFS ¤Ï +は SPUFS のマウントポイントの配下の場所を指していなければならない。 +慣例では、SPUFS は .I /spu -¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +にマウントされる。 +.SH バージョン .BR spu_create (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë 2.6.16 ¤Ç Linux ¤ËÄɲ䵤줿¡£ -.SH ½àµò -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢ -ppc64 ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Î¤ß¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤¿¥×¥í¥°¥é¥à¤Ï°Ü¿¢À­¤¬¤Ê¤¤¡£ -.SH Ãí°Õ -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +システムコールはカーネル 2.6.16 で Linux に追加された。 +.SH 準拠 +このシステムコールは Linux 固有であり、 +ppc64 アーキテクチャでのみ実装されている。 +このシステムコールを使ったプログラムは移植性がない。 +.SH 注意 +glibc はこのシステムコールに対するラッパー関数を提供していない。 .BR syscall (2) -¤ò»È¤¦¤³¤È¡£¤¿¤À¤·¡¢ +を使うこと。ただし、 .BR spu_create () -¤Ï ¤è¤êÃê¾ÝÅ٤ι⤤ SPU ¤Ø¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò¼ÂÁõ¤¹¤ë¥é¥¤¥Ö¥é¥ê¤«¤é -ÍøÍѤµ¤ì¤ë¤³¤È¤ò°Õ¿Þ¤·¤¿¤â¤Î¤Ç¤¢¤ê¡¢Ä̾ï¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é -»ÈÍѤϰտޤµ¤ì¤Æ¤¤¤Ê¤¤¡£¿ä¾©¤Î¥é¥¤¥Ö¥é¥ê¤Ë¤Ä¤¤¤Æ¤Ï +は より抽象度の高い SPU へのインタフェースを実装するライブラリから +利用されることを意図したものであり、通常のアプリケーションから +使用は意図されていない。推奨のライブラリについては .I http://www.bsc.es/projects/deepcomputing/linuxoncell/ -¤ò»²¾È¤Î¤³¤È¡£ -.SH ¥Ð¥° -¼ÂºÝ¤Î¥³¡¼¥É¤Ç¤Ï¤³¤³¤Ç½Ò¤Ù¤¿Á´¤Æ¤Îµ¡Ç½¤¬´°Á´¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ +を参照のこと。 +.SH バグ +実際のコードではここで述べた全ての機能が完全に実装されているわけではない。 .\" .SH AUTHOR .\" Arnd Bergmann -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR close (2), .BR spu_run (2), .BR capabilities (7), diff --git a/release/man2/spu_run.2 b/release/man2/spu_run.2 index 9de7aa1a..32cc1160 100644 --- a/release/man2/spu_run.2 +++ b/release/man2/spu_run.2 @@ -28,178 +28,178 @@ .\" Updated 2008-11-10, Akihiro MOTOKI , LDP v3.04 .\" .TH SPU_RUN 2 2007-11-25 Linux "Linux Programmer's Manual" -.SH ̾Á° -spu_run \- SPU ¥³¥ó¥Æ¥­¥¹¥È¤ò¼Â¹Ô¤¹¤ë -.SH ½ñ¼° +.SH 名前 +spu_run \- SPU コンテキストを実行する +.SH 書式 .nf .B #include .BI "int spu_run(int " fd ", unsigned int *" npc \ ", unsigned int *" event ");" .fi -.SH ÀâÌÀ +.SH 説明 .BR spu_run () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢Cell Broadband Engine ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ò¼ÂÁõ¤·¤¿ -PowerPC ¥Þ¥·¥ó¤Ç Synergistic Processor Units (SPU) ¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Ë -»ÈÍѤµ¤ì¤ë¡£ +システムコールは、Cell Broadband Engine アーキテクチャを実装した +PowerPC マシンで Synergistic Processor Units (SPU) にアクセスするために +使用される。 .I fd -°ú¤­¿ô¤Ï¡¢ +引き数は、 .BR spu_create (2) -¤¬ÊÖ¤¹¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¡¢ -ÆÃÄê¤Î SPU ¥³¥ó¥Æ¥­¥¹¥È¤ò»²¾È¤¹¤ë¡£ -¤½¤Î¥³¥ó¥Æ¥­¥¹¥È¤¬ÊªÍý SPU ¤Ë³ä¤êÅö¤Æ¤é¤ì¤ë¤È¡¢ +が返すファイルディスクリプタで、 +特定の SPU コンテキストを参照する。 +そのコンテキストが物理 SPU に割り当てられると、 .I npc -¤ÇÅϤµ¤ì¤¿Ì¿Îá¥Ý¥¤¥ó¥¿ (instruction pointer) ¤«¤é¼Â¹Ô¤¬³«»Ï¤µ¤ì¤ë¡£ +で渡された命令ポインタ (instruction pointer) から実行が開始される。 -SPU ¥³¡¼¥É¤Î¼Â¹Ô¤ÏƱ´üŪ (synchronously) ¤Ë¹Ô¤ï¤ì¤ë¡¢¤Ä¤Þ¤ê -SPU ¤¬¼Â¹ÔÃæ¤Ï +SPU コードの実行は同期的 (synchronously) に行われる、つまり +SPU が実行中は .BR spu_run () -¤ÏÄä»ß (block) ¤¹¤ë¡£ -SPU ¥³¡¼¥É¤Î¼Â¹Ô¤ò¥á¥¤¥ó CPU ¤ä¾¤Î SPU ¤ÈʹԤ·¤Æ¹Ô¤¦É¬Íפ¬¤¢¤ë¾ì¹ç¤Ï¡¢ -ºÇ½é¤Ë¡¢¤½¤Î SPU ¥³¡¼¥É¤ò¼Â¹Ô¤¹¤ë¿·¤·¤¤¥¹¥ì¥Ã¥É¤ò¡¢(Î㤨¤Ð +は停止 (block) する。 +SPU コードの実行をメイン CPU や他の SPU と並行して行う必要がある場合は、 +最初に、その SPU コードを実行する新しいスレッドを、(例えば .BR pthread_create (3) -¤Ê¤É¤ò»È¤Ã¤Æ) À¸À®¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +などを使って) 生成しなければならない。 .BR spu_run () -¤¬ÊÖ¤ë¤È¤­¤Ë¤Ï¡¢SPU ¤Î¥×¥í¥°¥é¥à¥«¥¦¥ó¥¿¤Î¸½ºßÃͤ¬ +が返るときには、SPU のプログラムカウンタの現在値が .I npc -¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢Ï¢Â³¤¹¤ë +に書き込まれる。 +これにより、連続する .BR spu_run () -¤Î¸Æ¤Ó½Ð¤·¤ÇƱ¤¸ +の呼び出しで同じ .I npc -¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +ポインタを使うことができる。 .I event -°ú¤­¿ô¤Ë¤Ï¡¢³ÈÄ¥¥¹¥Æ¡¼¥¿¥¹¥³¡¼¥ÉÍѤΥХåե¡¤ò»ØÄꤹ¤ë¡£ +引き数には、拡張ステータスコード用のバッファを指定する。 .B SPU_CREATE_EVENTS_ENABLED -¥Õ¥é¥°ÉÕ¤­¤Ç SPU ¥³¥ó¥Æ¥­¥¹¥È¤¬ºîÀ®¤µ¤ì¤ë¤È¡¢ +フラグ付きで SPU コンテキストが作成されると、 .BR spu_run () -¤¬ÊÖ¤ëÁ°¤Ë Linux ¥«¡¼¥Í¥ë¤Ë¤è¤ê¤³¤Î¥Ð¥Ã¥Õ¥¡¤Ë -³ÈÄ¥¥¹¥Æ¡¼¥¿¥¹¥³¡¼¥É¤¬³ÊǼ¤µ¤ì¤ë¡£ +が返る前に Linux カーネルによりこのバッファに +拡張ステータスコードが格納される。 -¥¹¥Æ¡¼¥¿¥¹¥³¡¼¥É¤Ë¤Ï°Ê²¼¤ÎÄê¿ô¤¬°ì¤Ä°Ê¾åÆþ¤ë¡£ +ステータスコードには以下の定数が一つ以上入る。 .TP .B SPE_EVENT_DMA_ALIGNMENT -DMA (direct memory access) ¤Î¥¢¥é¥¤¥á¥ó¥È¡¦¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +DMA (direct memory access) のアライメント・エラーが発生した。 .TP .B SPE_EVENT_INVALID_DMA -̵¸ú¤Ê MFC (Memory Flow Controller) DMA ¥³¥Þ¥ó¥É¤ò¹Ô¤ª¤¦¤È¤·¤¿¡£ +無効な MFC (Memory Flow Controller) DMA コマンドを行おうとした。 .TP .B SPE_EVENT_SPE_DATA_STORAGE -DMA ¥¹¥È¥ì¡¼¥¸¡¦¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +DMA ストレージ・エラーが発生した。 .TP .B SPE_EVENT_SPE_ERROR -ÉÔÀµ¤ÊÌ¿Î᤬¼Â¹Ô¤µ¤ì¤¿¡£ +不正な命令が実行された。 .PP -NULL ¤Ï +NULL は .I event -°ú¤­¿ô¤È¤·¤ÆÍ­¸ú¤ÊÃͤǤ¢¤ë¡£ -¤³¤Î¾ì¹ç¡¢¥¤¥Ù¥ó¥È¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ËÊó¹ð¤µ¤ì¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +引き数として有効な値である。 +この場合、イベントは呼び出し元のプロセスに報告されない。 +.SH 返り値 +成功すると、 .BR spu_run () -¤Ï +は .I spu_status -¥ì¥¸¥¹¥¿¤ÎÃͤòÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +レジスタの値を返す。 +エラーの場合、\-1 を返し、 .I errno -¤ò²¼µ­¤Î¥¨¥é¡¼¥³¡¼¥É¤Î¤¤¤º¤ì¤«¤ËÀßÄꤹ¤ë¡£ +を下記のエラーコードのいずれかに設定する。 .I spu_status -¥ì¥¸¥¹¥¿¤ÎÃͤϡ¢¥¹¥Æ¡¼¥¿¥¹¥³¡¼¥É¤È SPU ¤Î +レジスタの値は、ステータスコードと SPU の .B stop-and-signal -Ì¿Î᤬ÊÖ¤¹ 14 ¥Ó¥Ã¥È¤Î¥³¡¼¥É¤Î -¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¹½À®¤µ¤ì¤ë¡£ -¸å¼Ô¤Î 14 ¥Ó¥Ã¥È¤Î¥³¡¼¥É¤Ï¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë¡£ -¥¹¥Æ¡¼¥¿¥¹¥³¡¼¥É¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ï²¼µ­¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +命令が返す 14 ビットのコードの +ビットマスクで構成される。 +後者の 14 ビットのコードはオプションである。 +ステータスコードのビットマスクは下記の通りである。 .TP .B 0x02 -SPU ¤¬ +SPU が .B stop-and-signal -Ì¿Îá¤ÇÄä»ß¤·¤¿¡£ +命令で停止した。 .TP .B 0x04 -SPU ¤¬ -.B "halt (Ää»ß)" -Ì¿Îá¤Ç»ß¤Þ¤Ã¤¿¡£ +SPU が +.B "halt (停止)" +命令で止まった。 .TP .B 0x08 -SPU ¤Ï¥Á¥ã¥ó¥Í¥ë¤Î¥¦¥§¥¤¥ÈÃæ¤Ç¤¢¤ë¡£ +SPU はチャンネルのウェイト中である。 .TP .B 0x10 -SPU ¤Ï¥·¥ó¥°¥ë¥¹¥Æ¥Ã¥×¥â¡¼¥É¤Ç¤¢¤Ã¤¿¡£ +SPU はシングルステップモードであった。 .TP .B 0x20 -SPU ¤¬ÉÔÀµ¤ÊÌ¿Îá¤ò¼Â¹Ô¤·¤è¤¦¤È¤·¤¿¡£ +SPU が不正な命令を実行しようとした。 .TP .B 0x40 -SPU ¤¬ÉÔÀµ¤Ê¥Á¥ã¥ó¥Í¥ë¤Ë¥¢¥¯¥»¥¹¤·¤è¤¦¤È¤·¤¿¡£ +SPU が不正なチャンネルにアクセスしようとした。 .TP .B 0x3fff0000 -¤³¤ÎÃͤΥޥ¹¥¯¤òŬÍѤ·¤ÆÆÀ¤é¤ì¤¿¥Ó¥Ã¥ÈÃͤˤϡ¢ -stop-and-signal Ì¿Îᤫ¤éÊÖ¤µ¤ì¤¿¥³¡¼¥É¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Î¥Ó¥Ã¥È¤Ï 0x02 ¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£ +この値のマスクを適用して得られたビット値には、 +stop-and-signal 命令から返されたコードが入っている。 +これらのビットは 0x02 ビットがセットされている場合にのみ有効である。 .PP .BR spu_run () -¤¬¥¨¥é¡¼¤òÊÖ¤µ¤Ê¤«¤Ã¤¿¾ì¹ç¡¢²¼°Ì 8 ¥Ó¥Ã¥È¤Î¤¦¤Á 1 ¤Ä°Ê¾å¤Ï -¾ï¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +がエラーを返さなかった場合、下位 8 ビットのうち 1 つ以上は +常にセットされる。 +.SH エラー .TP .B EBADF .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B EFAULT .I npc -¤¬Í­¸ú¤Ê¥Ý¥¤¥ó¥¿¤Ç¤Ê¤¤¡£¤Þ¤¿¤Ï +が有効なポインタでない。または .I event -¤¬ NULL °Ê³°¤Ç¡¢¤·¤«¤â̵¸ú¤Ê¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +が NULL 以外で、しかも無効なポインタである。 .TP .B EINTR .BR spu_run () -¤Î¼Â¹ÔÃæ¤Ë¥·¥°¥Ê¥ë¤¬È¯À¸¤·¤¿¡£ +の実行中にシグナルが発生した。 .BR signal (7) -»²¾È¡£ -ɬÍפǤ¢¤ì¤Ð¡¢ +参照。 +必要であれば、 .I npc -¤ÎÃͤϿ·¤·¤¤¥×¥í¥°¥é¥à¥«¥¦¥ó¥¿¤ÎÃͤ˹¹¿·¤µ¤ì¤ë¡£ +の値は新しいプログラムカウンタの値に更新される。 .TP .B EINVAL .I fd -¤¬ +が .BR spu_create (2) -¤¬ÊÖ¤·¤¿Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が返した有効なファイルディスクリプタでない。 .TP .B ENOMEM -Memory Flow Controller (MFC) DMA ¤Ë¤è¤êȯÀ¸¤·¤¿¥Ú¡¼¥¸¥Õ¥©¡¼¥ë¥È¤ò -½èÍý¤¹¤ë¤Î¤ËɬÍפʥá¥â¥ê¤¬¤Ê¤«¤Ã¤¿¡£ +Memory Flow Controller (MFC) DMA により発生したページフォールトを +処理するのに必要なメモリがなかった。 .TP .B ENOSYS -µ¡Ç½¤¬Æ°ºîÃæ¤Î¥·¥¹¥Æ¥à¤ÇÄ󶡤µ¤ì¤Æ¤¤¤Ê¤¤¡£Íýͳ¤Ï¡¢ -¥Ï¡¼¥É¥¦¥§¥¢¤Ç SPU ¤¬Ä󶡤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ -spufs ¥â¥¸¥å¡¼¥ë¤¬¥í¡¼¥É¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢¤Î¤É¤Á¤é¤«¤Ç¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +機能が動作中のシステムで提供されていない。理由は、 +ハードウェアで SPU が提供されていないか、 +spufs モジュールがロードされていないか、のどちらかである。 +.SH バージョン .BR spu_run () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë 2.6.16 ¤Ç Linux ¤ËÄɲ䵤줿¡£ -.SH ½àµò -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢ -PowerPC ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Î¤ß¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤¿¥×¥í¥°¥é¥à¤Ï°Ü¿¢À­¤¬¤Ê¤¤¡£ -.SH Ãí°Õ -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +システムコールはカーネル 2.6.16 で Linux に追加された。 +.SH 準拠 +このシステムコールは Linux 固有であり、 +PowerPC アーキテクチャでのみ実装されている。 +このシステムコールを使ったプログラムは移植性がない。 +.SH 注意 +glibc はこのシステムコールに対するラッパー関数を提供していない。 .BR syscall (2) -¤ò»È¤¦¤³¤È¡£¤¿¤À¤·¡¢ +を使うこと。ただし、 .BR spu_run () -¤Ï ¤è¤êÃê¾ÝÅ٤ι⤤ SPU ¤Ø¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò¼ÂÁõ¤¹¤ë¥é¥¤¥Ö¥é¥ê¤«¤é -ÍøÍѤµ¤ì¤ë¤³¤È¤ò°Õ¿Þ¤·¤¿¤â¤Î¤Ç¤¢¤ê¡¢Ä̾ï¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é -»ÈÍѤϰտޤµ¤ì¤Æ¤¤¤Ê¤¤¡£¿ä¾©¤Î¥é¥¤¥Ö¥é¥ê¤Ë¤Ä¤¤¤Æ¤Ï +は より抽象度の高い SPU へのインタフェースを実装するライブラリから +利用されることを意図したものであり、通常のアプリケーションから +使用は意図されていない。推奨のライブラリについては .I http://www.bsc.es/projects/deepcomputing/linuxoncell/ -¤ò»²¾È¤Î¤³¤È¡£ -.SH Îã -°Ê²¼¤Ï¡¢´Êñ¤Ê 1 Ì¿Îá¤Î SPU ¥×¥í¥°¥é¥à¤ò +を参照のこと。 +.SH 例 +以下は、簡単な 1 命令の SPU プログラムを .BR spu_run () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤Æ¼Â¹Ô¤µ¤»¤ëÎã¤Ç¤¢¤ë¡£ +システムコールを使って実行させる例である。 .nf #include @@ -252,7 +252,7 @@ int main(void) .fi .\" .SH AUTHORS .\" Arnd Bergmann , Jeremy Kerr -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR close (2), .BR spu_create (2), .BR capabilities (7), diff --git a/release/man2/stat.2 b/release/man2/stat.2 index 01c721ad..36b80eb6 100644 --- a/release/man2/stat.2 +++ b/release/man2/stat.2 @@ -53,25 +53,25 @@ .\" Updated 2007-06-13, Akihiro MOTOKI, LDP v2.55 .\" Updated 2008-09-19, Akihiro MOTOKI, LDP v3.08 .\" -.\"WORD: status ¾õÂÖ -.\"WORD: directory ¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: open ¥ª¡¼¥×¥ó -.\"WORD: implement ¼ÂÁõ -.\"WORD: owner ½êÍ­¼Ô -.\"WORD: group ¥°¥ë¡¼¥× -.\"WORD: user ¥æ¡¼¥¶¡¼ -.\"WORD: other ¾¿Í -.\"WORD: hard link count ¥Ï¡¼¥É¡¦¥ê¥ó¥¯¿ô -.\"WORD: symbolic link ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: socket ¥½¥±¥Ã¥È -.\"WORD: device ¥Ç¥Ð¥¤¥¹ -.\"WORD: sticky bit ¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È -.\"WORD: mandatory locking ¶¯À©¥í¥Ã¥¯ +.\"WORD: status 状態 +.\"WORD: directory ディレクトリ +.\"WORD: open オープン +.\"WORD: implement 実装 +.\"WORD: owner 所有者 +.\"WORD: group グループ +.\"WORD: user ユーザー +.\"WORD: other 他人 +.\"WORD: hard link count ハード・リンク数 +.\"WORD: symbolic link シンボリック・リンク +.\"WORD: socket ソケット +.\"WORD: device デバイス +.\"WORD: sticky bit スティッキー・ビット +.\"WORD: mandatory locking 強制ロック .\" .TH STAT 2 2010-12-03 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -stat, fstat, lstat \- ¥Õ¥¡¥¤¥ë¤Î¾õÂÖ¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +stat, fstat, lstat \- ファイルの状態を取得する +.SH 書式 .B #include .br .B #include @@ -85,321 +85,321 @@ stat, fstat, lstat \- .BI "int lstat(const char *" path ", struct stat *" buf ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR lstat (): _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 -.SH ÀâÌÀ +.SH 説明 .PP -¤³¤ì¤é¤Î´Ø¿ô¤Ï¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÊÖ¤¹¡£ -¥Õ¥¡¥¤¥ë¤½¤Î¤â¤Î¤ËÂФ¹¤ë¥¢¥¯¥»¥¹µö²Ä¤ÏɬÍפȤ·¤Ê¤¤¤¬¡¢ +これらの関数はファイルについての情報を返す。 +ファイルそのものに対するアクセス許可は必要としないが、 \(em .BR stat () -¤È +と .BR lstat () -¤Î¾ì¹ç¤Ë¤Ï +の場合には \(em -¤½¤Î¥Õ¥¡¥¤¥ë¤Ø»ê¤ë +そのファイルへ至る .I path -¤ò¹½À®¤¹¤ëÁ´¤Æ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ¹¤ë¼Â¹Ô (¸¡º÷) µö²Ä¤¬É¬ÍפǤ¢¤ë¡£ +を構成する全てのディレクトリに対する実行 (検索) 許可が必要である。 .PP .BR stat () -¤Ï +は .I path -¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¾õÂÖ¤ò¼èÆÀ¤·¤Æ +で指定されたファイルの状態を取得して .I buf -¤Ø³ÊǼ¤¹¤ë¡£ +へ格納する。 .BR lstat () -¤Ï +は .BR stat () -¤ÈƱ¤¸¤Ç¤¢¤ë¤¬¡¢ +と同じであるが、 .I path -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¡¢¥ê¥ó¥¯¤¬»²¾È¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Ç¤Ï¤Ê¤¯¡¢ -¥ê¥ó¥¯¼«¿È¤Î¾õÂÖ¤ò¼èÆÀ¤¹¤ëÅÀ¤¬°Û¤Ê¤ë¡£ +がシンボリックリンクの場合、リンクが参照しているファイルではなく、 +リンク自身の状態を取得する点が異なる。 .BR fstat () -¤Ï +は .BR stat () -¤ÈƱ¤¸¤À¤¬¡¢ -¾õÂÖ¤ò¼èÆÀ¤¹¤ë¥Õ¥¡¥¤¥ë¤ò¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿ +と同じだが、 +状態を取得するファイルをファイル・ディスクリプタ .I fd -¤Ç»ØÄꤹ¤ë¡£ +で指定する。 .PP -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¤¤¤º¤ì¤â¡¢·ë²Ì¤ò +これらのシステムコールはいずれも、結果を .I stat -¹½Â¤ÂΤËÆþ¤ì¤ÆÊÖ¤¹¡£ +構造体に入れて返す。 .I stat -¹½Â¤ÂΤˤϰʲ¼¤Î¥Õ¥£¡¼¥ë¥É¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë: +構造体には以下のフィールドが含まれている: .PP .in +4n .nf struct stat { - dev_t st_dev; /* ¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¥Ç¥Ð¥¤¥¹¤Î ID */ - ino_t st_ino; /* inode ÈÖ¹æ */ - mode_t st_mode; /* ¥¢¥¯¥»¥¹Êݸî */ - nlink_t st_nlink; /* ¥Ï¡¼¥É¥ê¥ó¥¯¤Î¿ô */ - uid_t st_uid; /* ½êÍ­¼Ô¤Î¥æ¡¼¥¶ ID */ - gid_t st_gid; /* ½êÍ­¼Ô¤Î¥°¥ë¡¼¥× ID */ - dev_t st_rdev; /* ¥Ç¥Ð¥¤¥¹ ID (Æüì¥Õ¥¡¥¤¥ë¤Î¾ì¹ç) */ - off_t st_size; /* Á´ÂΤΥµ¥¤¥º (¥Ð¥¤¥Èñ°Ì) */ - blksize_t st_blksize; /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à I/O ¤Ç¤Î - ¥Ö¥í¥Ã¥¯¥µ¥¤¥º */ - blkcnt_t st_blocks; /* ³ä¤êÅö¤Æ¤é¤ì¤¿ 512B ¤Î¥Ö¥í¥Ã¥¯¿ô */ - time_t st_atime; /* ºÇ½ª¥¢¥¯¥»¥¹»þ¹ï */ - time_t st_mtime; /* ºÇ½ª½¤Àµ»þ¹ï */ - time_t st_ctime; /* ºÇ½ª¾õÂÖÊѹ¹»þ¹ï */ + dev_t st_dev; /* ファイルがあるデバイスの ID */ + ino_t st_ino; /* inode 番号 */ + mode_t st_mode; /* アクセス保護 */ + nlink_t st_nlink; /* ハードリンクの数 */ + uid_t st_uid; /* 所有者のユーザ ID */ + gid_t st_gid; /* 所有者のグループ ID */ + dev_t st_rdev; /* デバイス ID (特殊ファイルの場合) */ + off_t st_size; /* 全体のサイズ (バイト単位) */ + blksize_t st_blksize; /* ファイルシステム I/O での + ブロックサイズ */ + blkcnt_t st_blocks; /* 割り当てられた 512B のブロック数 */ + time_t st_atime; /* 最終アクセス時刻 */ + time_t st_mtime; /* 最終修正時刻 */ + time_t st_ctime; /* 最終状態変更時刻 */ }; .fi .in .PP .I st_dev -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¥Ç¥Ð¥¤¥¹¤ò¼¨¤¹ -(¥Þ¥¯¥í +フィールドは、このファイルが存在するデバイスを示す +(マクロ .BR major (3), .BR minor (3) -¤Ï¡¢¤³¤Î¥Õ¥£¡¼¥ë¥É¤Î¥Ç¥Ð¥¤¥¹ ID ¤òʬ²ò¤¹¤ë¤Î¤ËÌòΩ¤Ä¤À¤í¤¦)¡£ +は、このフィールドのデバイス ID を分解するのに役立つだろう)。 .I st_rdev -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë (inode) ¤¬É½¤¹¥Ç¥Ð¥¤¥¹¤ò¼¨¤¹¡£ +フィールドは、このファイル (inode) が表すデバイスを示す。 .I st_size -¥Õ¥£¡¼¥ë¥É¤Ï¡¢(Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤«¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¤Ë) -¥Õ¥¡¥¤¥ë¤ÎÂ礭¤µ¤ò¥Ð¥¤¥Èñ°Ì¤Ç¼¨¤¹¡£ -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ÎÂ礭¤µ¤Ï¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë -¥Ñ¥¹Ì¾¤ÎŤµ (ºÇ¸å¤Î NULL ¥Ð¥¤¥È¤Ï´Þ¤Þ¤Ê¤¤) ¤Ç¤¢¤ë¡£ +フィールドは、(通常のファイルかシンボリックリンクの場合に) +ファイルの大きさをバイト単位で示す。 +シンボリックリンクの大きさは、シンボリックリンクに含まれている +パス名の長さ (最後の NULL バイトは含まない) である。 .I st_blocks -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥Õ¥¡¥¤¥ë¤ÎÂ礭¤µ¤ò 512 ¥Ð¥¤¥È¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥ºÃ±°Ì¤Ç¼¨¤¹ -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥Õ¥¡¥¤¥ë¤Ë³ä¤êÅö¤Æ¤µ¤ì¤¿¥Ö¥í¥Ã¥¯¿ô¤ò 512 ¥Ð¥¤¥Èñ°Ì¤Ç¼¨¤¹¡£ -(¥Õ¥¡¥¤¥ë¤Ë·ê¤¬¤¢¤ë¤è¤¦¤Ê¾ì¹ç¡¢¤³¤ÎÃÍ¤Ï +フィールドは、ファイルの大きさを 512 バイトのブロックサイズ単位で示す +フィールドは、ファイルに割り当てされたブロック数を 512 バイト単位で示す。 +(ファイルに穴があるような場合、この値は .IR st_size /512 -¤è¤ê¾®¤µ¤¯¤Ê¤ë¤³¤È¤â¤¢¤ë)¡£ +より小さくなることもある)。 .I st_blksize -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¸úΨŪ¤Ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à I/O ¤¬¤Ç¤­¤ë¡Ö¹¥¤Þ¤·¤¤¡× -¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ò¼¨¤¹ (¤â¤Ã¤È¾®¤µ¤¤Ã±°Ì¤Ç¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤ß¤ò¹Ô¤¦¤È¡¢ -Æɤ߽Ф·--½¤Àµ--ºÆ½ñ¤­¹þ¤ß¤È¤¤¤Ã¤¿Èó¸úΨ¤ÊÆ°ºî¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤«¤â¤·¤ì¤Ê¤¤)¡£ +フィールドは、効率的にファイル・システム I/O ができる「好ましい」 +ブロックサイズを示す (もっと小さい単位でファイルに書き込みを行うと、 +読み出し--修正--再書き込みといった非効率な動作になってしまうかもしれない)。 .PP -Á´¤Æ¤Î Linux ¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤¬Á´¤Æ¤Î»þ´Ö¥Õ¥£¡¼¥ë¥É¤ò -¼ÂÁõ¤·¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥ì¥¯¥È¥ê¤Î¥¢¥¯¥»¥¹¤¬ +全ての Linux のファイル・システムが全ての時間フィールドを +実装しているわけではない。 +ファイルやディレクトリのアクセスが .I st_atime -¥Õ¥£¡¼¥ë¥É¤ò¹¹¿·¤·¤Ê¤¤¤è¤¦¤Ê¤«¤¿¤Á¤Ç¥Þ¥¦¥ó¥È¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ +フィールドを更新しないようなかたちでマウントできるファイルシステムもある。 .RB ( mount (8) -¤Î +の .IR noatime , .IR nodiratime , .I relatime -¤ä +や .BR mount (2) -¤Î´ØÏ¢¤¹¤ë¾ðÊó¤ò»²¾È)¡£ -¤Þ¤¿¡¢¥Õ¥¡¥¤¥ë¤¬ +の関連する情報を参照)。 +また、ファイルが .B O_NOATIME -ÉÕ¤­¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï +付きでオープンされている場合には .I st_atime -¤Ï¹¹¿·¤µ¤ì¤Ê¤¤¡£ +は更新されない。 .BR open (2) -»²¾È¡£ +参照。 .I st_atime -¥Õ¥£¡¼¥ë¥É¤Ï¥Õ¥¡¥¤¥ë¥¢¥¯¥»¥¹¤¬¤¢¤Ã¤¿¾ì¹ç¤ËÊѹ¹¤µ¤ì¤ë -(Î㤨¤Ð¡¢ +フィールドはファイルアクセスがあった場合に変更される +(例えば、 .BR execve (2), .BR mknod (2), .BR pipe (2), .BR utime (2) -¤ò»ÈÍѤ·¤¿¾ì¹ç¤ä +を使用した場合や .BR read (2) -¤Ç 1 ¥Ð¥¤¥È°Ê¾åÆɤ߹þ¤ó¤À¾ì¹ç¤Ê¤É)¡£ +で 1 バイト以上読み込んだ場合など)。 .BR mmap (2) -¤Ê¤É¤Î¾¤Î¥ë¡¼¥Á¥ó¤Ç¤Ï¡¢ +などの他のルーチンでは、 .I st_atime -¤Ï¹¹¿·¤µ¤ì¤ë¤³¤È¤â¤¢¤ì¤Ð¡¢¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤â¤¢¤ë¡£ +は更新されることもあれば、そうでない場合もある。 .I st_mtime -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥Õ¥¡¥¤¥ë¤¬½¤Àµ¤µ¤ì¤¿¾ì¹ç¤ËÊѹ¹¤µ¤ì¤ë -(Î㤨¤Ð¡¢ +フィールドは、ファイルが修正された場合に変更される +(例えば、 .BR mknod (2), .BR truncate (2), .BR utime (2) -¤ò»ÈÍѤ·¤¿¾ì¹ç¤ä +を使用した場合や .BR write (2) -¤Ç 1 ¥Ð¥¤¥È°Ê¾å½ñ¤­¹þ¤ß¤ò¤·¤¿¾ì¹ç¤Ê¤É)¡£ -¤µ¤é¤Ë¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Î +で 1 バイト以上書き込みをした場合など)。 +さらに、ディレクトリの .I st_mtime -¤Ï¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç -¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤¿¤êºï½ü¤µ¤ì¤¿¤ê¤¹¤ë¤ÈÊѹ¹¤µ¤ì¤ë¡£ +は、そのディレクトリで +ファイルが作成されたり削除されたりすると変更される。 .I st_mtime -¥Õ¥£¡¼¥ë¥É¤Ï -½êÍ­¼Ô¤ä¥°¥ë¡¼¥×¤ä¥Ï¡¼¥É¡¦¥ê¥ó¥¯¿ô¤ä¥â¡¼¥É¤ÎÊѹ¹¤Ç¤ÏÊѹ¹ -.I ¤µ¤ì¤Ê¤¤¡£ +フィールドは +所有者やグループやハード・リンク数やモードの変更では変更 +.I されない。 .I st_ctime -¥Õ¥£¡¼¥ë¥É¤Ï½ñ¤­¹þ¤ß¤ä inode ¾ðÊó -(½êÍ­¼Ô¡¢¥°¥ë¡¼¥×¡¢¥ê¥ó¥¯¿ô¡¢¥â¡¼¥É¤Ê¤É) ¤Î -ÀßÄê¤Ë¤è¤Ã¤ÆÊѹ¹¤µ¤ì¤ë¡£ +フィールドは書き込みや inode 情報 +(所有者、グループ、リンク数、モードなど) の +設定によって変更される。 .PP -°Ê²¼¤Î POSIX ¥Þ¥¯¥í¤Ï¡¢ +以下の POSIX マクロは、 .I st_mode -¥Õ¥£¡¼¥ë¥É -¤Ç»ÈÍѤµ¤ì¤ë¥Õ¥¡¥¤¥ë¼ïÊ̤ΥÁ¥§¥Ã¥¯¤Î¤¿¤á¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë : +フィールド +で使用されるファイル種別のチェックのために定義されている : .RS 4 .TP 1.2i .BR S_ISREG (m) -Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤«? +通常のファイルか? .TP .BR S_ISDIR (m) -¥Ç¥£¥ì¥¯¥È¥ê¤«? +ディレクトリか? .TP .BR S_ISCHR (m) -¥­¥ã¥é¥¯¥¿¡¼¡¦¥Ç¥Ð¥¤¥¹¤«? +キャラクター・デバイスか? .TP .BR S_ISBLK (m) -¥Ö¥í¥Ã¥¯¡¦¥Ç¥Ð¥¤¥¹¤«? +ブロック・デバイスか? .TP .BR S_ISFIFO (m) -FIFO (̾Á°ÉÕ¤­¥Ñ¥¤¥×) ¤«? +FIFO (名前付きパイプ) か? .TP .BR S_ISLNK (m) -¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤«? (POSIX.1-1996 ¤Ë¤Ï¤Ê¤¤) +シンボリック・リンクか? (POSIX.1-1996 にはない) .TP .BR S_ISSOCK (m) -¥½¥±¥Ã¥È¤«? (POSIX.1-1996 ¤Ë¤Ï¤Ê¤¤) +ソケットか? (POSIX.1-1996 にはない) .RE .PP -°Ê²¼¤Î¥Õ¥é¥°¤¬ +以下のフラグが .I st_mode -¥Õ¥£¡¼¥ë¥ÉÍѤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +フィールド用に定義されている: .in +4n .TS lB l l. -S_IFMT 0170000 ¥Õ¥¡¥¤¥ë¼ïÊ̤ò¼¨¤¹¥Ó¥Ã¥ÈÎΰè¤òɽ¤¹¥Ó¥Ã¥È¥Þ¥¹¥¯ -S_IFSOCK 0140000 ¥½¥±¥Ã¥È -S_IFLNK 0120000 ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -S_IFREG 0100000 Ä̾ï¤Î¥Õ¥¡¥¤¥ë -S_IFBLK 0060000 ¥Ö¥í¥Ã¥¯¡¦¥Ç¥Ð¥¤¥¹ -S_IFDIR 0040000 ¥Ç¥£¥ì¥¯¥È¥ê -S_IFCHR 0020000 ¥­¥ã¥é¥¯¥¿¡¼¡¦¥Ç¥Ð¥¤¥¹ +S_IFMT 0170000 ファイル種別を示すビット領域を表すビットマスク +S_IFSOCK 0140000 ソケット +S_IFLNK 0120000 シンボリック・リンク +S_IFREG 0100000 通常のファイル +S_IFBLK 0060000 ブロック・デバイス +S_IFDIR 0040000 ディレクトリ +S_IFCHR 0020000 キャラクター・デバイス S_IFIFO 0010000 FIFO S_ISUID 0004000 set-user-ID bit -S_ISGID 0002000 set-group-ID bit (²¼µ­»²¾È) -S_ISVTX 0001000 ¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È (²¼µ­»²¾È) -S_IRWXU 00700 ¥Õ¥¡¥¤¥ë½êÍ­¼Ô¤Î¥¢¥¯¥»¥¹µö²ÄÍѤΥӥåȥޥ¹¥¯ -S_IRUSR 00400 ½êÍ­¼Ô¤ÎÆɤ߹þ¤ßµö²Ä -S_IWUSR 00200 ½êÍ­¼Ô¤Î½ñ¤­¹þ¤ßµö²Ä -S_IXUSR 00100 ½êÍ­¼Ô¤Î¼Â¹Ôµö²Ä -S_IRWXG 00070 ¥°¥ë¡¼¥×¤Î¥¢¥¯¥»¥¹µö²ÄÍѤΥӥåȥޥ¹¥¯ -S_IRGRP 00040 ¥°¥ë¡¼¥×¤ÎÆɤ߹þ¤ßµö²Ä -S_IWGRP 00020 ¥°¥ë¡¼¥×¤Î½ñ¤­¹þ¤ßµö²Ä -S_IXGRP 00010 ¥°¥ë¡¼¥×¤Î¼Â¹Ôµö²Ä -S_IRWXO 00007 ¾¿Í (others) ¤Î¥¢¥¯¥»¥¹µö²ÄÍѤΥӥåȥޥ¹¥¯ -S_IROTH 00004 ¾¿Í¤ÎÆɤ߹þ¤ßµö²Ä -S_IWOTH 00002 ¾¿Í¤Î½ñ¤­¹þ¤ßµö²Ä -S_IXOTH 00001 ¾¿Í¤Î¼Â¹Ôµö²Ä +S_ISGID 0002000 set-group-ID bit (下記参照) +S_ISVTX 0001000 スティッキー・ビット (下記参照) +S_IRWXU 00700 ファイル所有者のアクセス許可用のビットマスク +S_IRUSR 00400 所有者の読み込み許可 +S_IWUSR 00200 所有者の書き込み許可 +S_IXUSR 00100 所有者の実行許可 +S_IRWXG 00070 グループのアクセス許可用のビットマスク +S_IRGRP 00040 グループの読み込み許可 +S_IWGRP 00020 グループの書き込み許可 +S_IXGRP 00010 グループの実行許可 +S_IRWXO 00007 他人 (others) のアクセス許可用のビットマスク +S_IROTH 00004 他人の読み込み許可 +S_IWOTH 00002 他人の書き込み許可 +S_IXOTH 00001 他人の実行許可 .TE .in .P set-group-ID bit .RB ( S_ISGID ) -¤Ë¤Ï¤¤¤¯¤Ä¤«¤ÎÆüì¤Ê»ÈÍÑË¡¤¬¤¢¤ë: -¥Ç¥£¥ì¥¯¥È¥ê¤ËÀßÄꤷ¤¿¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤¬ BSD Êý¼°¤Ç»ÈÍѤµ¤ì¤ë -¤³¤È¤ò¼¨¤¹¡£¤Ä¤Þ¤ê¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËºîÀ®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥×ID ¤Ï -ºîÀ®¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú (effective) ¥°¥ë¡¼¥×ID ¤Ç¤Ï¤Ê¤¯¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Î -¥°¥ë¡¼¥×ID ¤ò·Ñ¾µ¤¹¤ë¡£¤Þ¤¿¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËºîÀ®¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤â +にはいくつかの特殊な使用法がある: +ディレクトリに設定した場合には、そのディレクトリが BSD 方式で使用される +ことを示す。つまり、そのディレクトリに作成されたファイルのグループID は +作成したプロセスの実効 (effective) グループID ではなく、ディレクトリの +グループID を継承する。また、そのディレクトリに作成されたディレクトリにも .B S_ISGID -¥Ó¥Ã¥È¤¬ÀßÄꤵ¤ì¤ë¡£¥°¥ë¡¼¥×¼Â¹Ô¥Ó¥Ã¥È +ビットが設定される。グループ実行ビット .RB ( S_IXGRP ) -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¥Õ¥¡¥¤¥ë¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢ -set-group-ID ¥Ó¥Ã¥È¤Ï¥Õ¥¡¥¤¥ë/¥ì¥³¡¼¥É¤Î -¶¯À©Åª¤Ê (mandatory) ¥í¥Ã¥¯¤òɽ¤¹¡£ +が設定されていないファイルに設定された場合は、 +set-group-ID ビットはファイル/レコードの +強制的な (mandatory) ロックを表す。 .P -¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥¹¥Æ¥£¥Ã¥­¡¼¥Ó¥Ã¥È (S_ISVTX) ¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢ -¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Õ¥¡¥¤¥ë¤Î̾Á°¤òÊѹ¹¤·¤¿¤ê¡¢ºï½ü¤·¤¿¤ê¤Ç¤­¤ë¤Î¤Ï¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤«¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î½êÍ­¼Ô¤«¡¢Æø¢¥×¥í¥»¥¹ -¤À¤±¤È¤Ê¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +ディレクトリにスティッキービット (S_ISVTX) が設定された場合は、 +そのディレクトリのファイルの名前を変更したり、削除したりできるのは、 +そのファイルの所有者か、そのディレクトリの所有者か、特権プロセス +だけとなる。 +.SH 返り値 +成功した場合は 0 を返す。エラーの場合は \-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +に適切な値が設定される。 +.SH エラー .TP .B EACCES .I path -¤¬½ê°¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤È¤½¤Î¾å°Ì¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¤¤¤º¤ì¤«¤Ë -ÂФ¹¤ë¸¡º÷µö²Ä¤¬¤Ê¤«¤Ã¤¿ +が所属するディレクトリとその上位のディレクトリのいずれかに +対する検索許可がなかった .RB ( path_resolution (7) -¤â»²¾È¤Î¤³¤È)¡£ +も参照のこと)。 .TP .B EBADF .I fd -¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +が不正である。 .TP .B EFAULT -¥¢¥É¥ì¥¹¤¬´Ö°ã¤Ã¤Æ¤¤¤ë¡£ +アドレスが間違っている。 .TP .B ELOOP -¥Ñ¥¹¤òé¤ëºÝ¤Ë²ò·è¤¹¤Ù¤­¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤¿¡£ +パスを辿る際に解決すべきシンボリック・リンクが多過ぎた。 .TP .B ENAMETOOLONG .I path -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENOENT .I path -¤Î¹½À®Í×ÁǤ¬Â¸ºß¤·¤Ê¤¤¤«¡¢ +の構成要素が存在しないか、 .I path -¤¬¶õʸ»úÎó¤Ç¤¢¤ë¡£ +が空文字列である。 .TP .B ENOMEM -¥«¡¼¥Í¥ë¤Î¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£ +カーネルのメモリが足りない。 .TP .B ENOTDIR .I path -¤ÎÁ°È¾Éôʬ (prefix) ¤Î¹½À®Í×ÁǤ¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£ +の前半部分 (prefix) の構成要素がディレクトリではない。 .TP .B EOVERFLOW .RB ( stat ()) .I path -¤¬¡¢¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤ò +が、ファイルサイズを .I off_t -·¿¤Çɽ¸½¤Ç¤­¤Ê¤¤¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤ë¡£ -¤³¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë¤Î¤Ï¡¢32 ¥Ó¥Ã¥È¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¾å¤Ç +型で表現できないファイルを参照している。 +このエラーが起こるのは、32 ビットプラットフォーム上で .I -D_FILE_OFFSET_BITS=64 -¤ò»ØÄꤻ¤º¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¡¢¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤¬ +を指定せずにコンパイルされたアプリケーションが、ファイルサイズが .I (1<31)-1 -¥Ó¥Ã¥È¤òĶ¤¨¤ë¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ +ビットを超えるファイルに対して .BR stat () -¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¤Ç¤¢¤ë¡£ -.SH ½àµò -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï SVr4, 4.3BSD, POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +を呼び出した場合である。 +.SH 準拠 +これらのシステムコールは SVr4, 4.3BSD, POSIX.1-2001 に準拠している。 .BR stat () -¤È +と .BR fstat () -¥³¡¼¥ë¤Ï SVr4, SVID, POSIX, X/OPEN, 4.3BSD ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +コールは SVr4, SVID, POSIX, X/OPEN, 4.3BSD に準拠している。 .BR lstat () -¥³¡¼¥ë¤Ï 4.3BSD ¤È SVr4 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ -.\" SVr4 ¤Ë¤Ï¾¤Ë +コールは 4.3BSD と SVr4 に準拠している。 +.\" SVr4 には他に .\" .BR fstat () -.\" ¤Î¥¨¥é¡¼¤È¤·¤Æ EINTR, ENOLINK, EOVERFLOW ¤¬µ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ -.\" SVr4 ¤Ë¤Ï¾¤Ë +.\" のエラーとして EINTR, ENOLINK, EOVERFLOW が記載されている。 +.\" SVr4 には他に .\" .BR stat () -.\" ¤È +.\" と .\" .BR lstat () -.\" ¤Î¥¨¥é¡¼¤È¤·¤Æ EINTR, EMULTIHOP, ENOLINK, EOVERFLOW ¤¬µ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ +.\" のエラーとして EINTR, EMULTIHOP, ENOLINK, EOVERFLOW が記載されている。 .I st_blocks -¤È +と .I st_blksize -¥Õ¥£¡¼¥ë¥É¤Î»ÈÍѤϤ¢¤Þ¤ê°Ü¿¢À­¤¬¤Ê¤¤¡£ -(¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Ï BSD ¤Ë¤è¤Ã¤ÆƳÆþ¤µ¤ì¤¿¡£ -¥·¥¹¥Æ¥à¤´¤È¤Ë²ò¼á¤¬°Û¤Ê¤Ã¤Æ¤ª¤ê¡¢ -NFS ¥Þ¥¦¥ó¥È¤Î¾ì¹ç¤Ë¤ÏƱ¤¸¥·¥¹¥Æ¥à¤Ç¤â°Û¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ë) +フィールドの使用はあまり移植性がない。 +(これらのフィールドは BSD によって導入された。 +システムごとに解釈が異なっており、 +NFS マウントの場合には同じシステムでも異なる可能性がある) .LP -POSIX ¤Ë¤Ï +POSIX には .BR S_IFMT , .BR S_IFSOCK , .BR S_IFLNK , @@ -409,137 +409,137 @@ POSIX .BR S_IFCHR , .BR S_IFIFO , .B S_ISVTX -¥Ó¥Ã¥È¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤Ï¤Ê¤¤¡£¤«¤ï¤ê¤Ë +ビットについての記述はない。かわりに .BR S_ISDIR () -¤Î¤è¤¦¤Ê¥Þ¥¯¥í¤ò»ÈÍѤ¹¤ë¤è¤¦¤ËÍ׵ᤷ¤Æ¤¤¤ë¡£ -¥Þ¥¯¥í +のようなマクロを使用するように要求している。 +マクロ .BR S_ISLNK () -¤È +と .BR S_ISSOCK () -¤Ï POSIX.1-1996 ¤Ë¤Ï¤Ê¤¤¤¬¡¢ -POSIX.1-2001 ¤Ë¤ÏξÊý¤È¤â¸ºß¤¹¤ë¡£ -Á°¼Ô¤Ï SVID 4 ¤Ë¡¢¸å¼Ô¤Ï SUSv2 ¤ËͳÍ褷¤Æ¤¤¤ë¡£ +は POSIX.1-1996 にはないが、 +POSIX.1-2001 には両方とも存在する。 +前者は SVID 4 に、後者は SUSv2 に由来している。 .LP -Unix V7 (¤È¤½¤Î¸å¤Î¥·¥¹¥Æ¥à) ¤Ï +Unix V7 (とその後のシステム) は .BR S_IREAD , .BR S_IWRITE , .B S_IEXEC -¤ò»ý¤Ã¤Æ¤ª¤ê¡¢ -POSIX ¤Ï¤½¤ÎƱµÁ¸ì¤È¤·¤Æ +を持っており、 +POSIX はその同義語として .BR S_IRUSR , .BR S_IWUSR , .B S_IXUSR -¤òµ¬Äꤷ¤Æ¤¤¤ë¡£ -.SS ¾¤Î¥·¥¹¥Æ¥à -³Æ¼ï¥·¥¹¥Æ¥à¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤¿(¤¤¤ë)ÃÍ: +を規定している。 +.SS 他のシステム +各種システムで使用されていた(いる)値: .TS l l l l l. -16¿Ê ̾Á° ls 8¿Ê¿ô ÀâÌÀ -f000 S_IFMT 170000 ¥Õ¥¡¥¤¥ë¼ïÊÌ¥Õ¥£¡¼¥ë¥É¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯ -0000 000000 SCO ¤Ç¤Ï »ÈÍÑÉÔǽ inode; - BSD ¤Ç¤Ï̤ÃΤΥե¡¥¤¥ë¼ïÊÌ; - SVID-v2 ¤È XPG2 ¤Ç¤Ï 0 ¤È 0100000 ¤Î - ξÊý¤¬ÉáÄ̤Υե¡¥¤¥ë -1000 S_IFIFO p| 010000 FIFO (̾Á°ÉÕ¤­¥Ñ¥¤¥×) -2000 S_IFCHR c 020000 ¥­¥ã¥é¥¯¥¿Æüì¥Õ¥¡¥¤¥ë (V7) -3000 S_IFMPC 030000 ¿½Å²½¤µ¤ì¤¿¥­¥ã¥é¥¯¥¿Æüì¥Õ¥¡¥¤¥ë (V7) -4000 S_IFDIR d/ 040000 ¥Ç¥£¥ì¥¯¥È¥ê (V7) -5000 S_IFNAM 050000 XENIX Æó¤Ä¤ÎÉû·¿¤ò»ý¤Ä̾Á°ÉÕ¤­¤Î - Æüì¥Õ¥¡¥¤¥ë - Éû·¿¤Ï \fIst_rdev\fP ¤ÎÃÍ 1,2 ¤Ç¶èÊ̤µ¤ì¤ë: -0001 S_INSEM s 000001 XENIX IFNAM¤Î¥»¥Þ¥Õ¥©¡¼Éû·¿ -0002 S_INSHD m 000002 XENIX IFNAM¤Î¶¦Í­¥Ç¡¼¥¿Éû·¿ -6000 S_IFBLK b 060000 ¥Ö¥í¥Ã¥¯Æüì¥Õ¥¡¥¤¥ë (V7) -7000 S_IFMPB 070000 ¿½Å²½¤µ¤ì¤¿¥Ö¥í¥Ã¥¯Æüì¥Õ¥¡¥¤¥ë (V7) -8000 S_IFREG - 100000 Ä̾ï¥Õ¥¡¥¤¥ë (V7) -9000 S_IFCMP 110000 VxFS °µ½Ì¥Õ¥¡¥¤¥ë -9000 S_IFNWK n 110000 ¥Í¥Ã¥È¥ï¡¼¥¯Æüì¥Õ¥¡¥¤¥ë (HP-UX) -a000 S_IFLNK l@ 120000 ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ (BSD) -b000 S_IFSHAD 130000 Solaris ACL ¤Î¤¿¤á¤Î±£¤µ¤ì¤¿ inode - (¥æ¡¼¥¶¶õ´Ö¤«¤é¤Ï¸«¤¨¤Ê¤¤) -c000 S_IFSOCK s= 140000 ¥½¥±¥Ã¥È (BSD; VxFS ¤Î "S_IFSOC") -d000 S_IFDOOR D> 150000 Solaris ¥É¥¢¡¦¥Õ¥¡¥¤¥ë -e000 S_IFWHT w% 160000 BSD ¶õÇò¥Õ¥¡¥¤¥ë (inode ¤ò»ÈÍѤ·¤Ê¤¤) -0200 S_ISVTX 001000 `¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È':»ÈÍѸå¤â - ¥¹¥ï¥Ã¥×¤Ë»Ä¤¹ (V7) - ͽÌó (SVID-v2) - ¥Ç¥£¥ì¥¯¥È¥ê°Ê³°: ¥Õ¥¡¥¤¥ë¤ò¥­¥ã¥Ã¥·¥å - ¤·¤Ê¤¤ (SunOS) - ¥Ç¥£¥ì¥¯¥È¥ê: ºï½üÀ©¸Â¥Õ¥é¥° (SVID-v4.2) -0400 S_ISGID 002000 ¼Â¹Ô»þ¤Î set-group-ID (V7) - ¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ·¤Æ¤Ï GID ¤ÎÅÁã¤Ë - BSD Êý¼°¤ò»ÈÍѤ¹¤ë -0400 S_ENFMT 002000 System V ¥Õ¥¡¥¤¥ë¡¦¥í¥Ã¥¯¤ò¶¯À©¤¹¤ë - (S_ISGID ¤È¶¦Í­) -0800 S_ISUID 004000 ¼Â¹Ô»þ¤Î set-user-ID (V7) -0800 S_CDF 004000 ¥Ç¥£¥ì¥¯¥È¥ê¤¬¾õ¶·°Í¸¥Õ¥¡¥¤¥ë (HP-UX) +16進 名前 ls 8進数 説明 +f000 S_IFMT 170000 ファイル種別フィールドのビットマスク +0000 000000 SCO では 使用不能 inode; + BSD では未知のファイル種別; + SVID-v2 と XPG2 では 0 と 0100000 の + 両方が普通のファイル +1000 S_IFIFO p| 010000 FIFO (名前付きパイプ) +2000 S_IFCHR c 020000 キャラクタ特殊ファイル (V7) +3000 S_IFMPC 030000 多重化されたキャラクタ特殊ファイル (V7) +4000 S_IFDIR d/ 040000 ディレクトリ (V7) +5000 S_IFNAM 050000 XENIX 二つの副型を持つ名前付きの + 特殊ファイル + 副型は \fIst_rdev\fP の値 1,2 で区別される: +0001 S_INSEM s 000001 XENIX IFNAMのセマフォー副型 +0002 S_INSHD m 000002 XENIX IFNAMの共有データ副型 +6000 S_IFBLK b 060000 ブロック特殊ファイル (V7) +7000 S_IFMPB 070000 多重化されたブロック特殊ファイル (V7) +8000 S_IFREG - 100000 通常ファイル (V7) +9000 S_IFCMP 110000 VxFS 圧縮ファイル +9000 S_IFNWK n 110000 ネットワーク特殊ファイル (HP-UX) +a000 S_IFLNK l@ 120000 シンボリック・リンク (BSD) +b000 S_IFSHAD 130000 Solaris ACL のための隠された inode + (ユーザ空間からは見えない) +c000 S_IFSOCK s= 140000 ソケット (BSD; VxFS の "S_IFSOC") +d000 S_IFDOOR D> 150000 Solaris ドア・ファイル +e000 S_IFWHT w% 160000 BSD 空白ファイル (inode を使用しない) +0200 S_ISVTX 001000 `スティッキー・ビット':使用後も + スワップに残す (V7) + 予約 (SVID-v2) + ディレクトリ以外: ファイルをキャッシュ + しない (SunOS) + ディレクトリ: 削除制限フラグ (SVID-v4.2) +0400 S_ISGID 002000 実行時の set-group-ID (V7) + ディレクトリに対しては GID の伝達に + BSD 方式を使用する +0400 S_ENFMT 002000 System V ファイル・ロックを強制する + (S_ISGID と共有) +0800 S_ISUID 004000 実行時の set-user-ID (V7) +0800 S_CDF 004000 ディレクトリが状況依存ファイル (HP-UX) .TE -¥¹¥Æ¥£¥Ã¥­¡¼ ¥³¥Þ¥ó¥É¤Ï Version 32V AT&T UNIX ¤ÇÅо줷¤¿¡£ -.SH Ãí°Õ -¥«¡¼¥Í¥ë 2.5.48 °Ê¹ß¤Ç¤Ï¡¢ +スティッキー コマンドは Version 32V AT&T UNIX で登場した。 +.SH 注意 +カーネル 2.5.48 以降では、 .I stat -¹½Â¤ÂÎ¤Ï 3¤Ä¤Î¥Õ¥¡¥¤¥ë¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×´ØÏ¢¤Î¥Õ¥£¡¼¥ë¥É¤Ç -¥Ê¥ÎÉÃñ°Ì¤ÎÀºÅÙ¤ËÂбþ¤·¤Æ¤¤¤ë¡£ -glibc ¤Ç¤Ï¡¢³Æ¥Õ¥£¡¼¥ë¥É¤Î¥Ê¥ÎÉäξðÊó¤ò +構造体は 3つのファイルのタイムスタンプ関連のフィールドで +ナノ秒単位の精度に対応している。 +glibc では、各フィールドのナノ秒の情報を .I st_atim.tv_nsec -¤ä +や .I st_atimensec -¤È¤¤¤Ã¤¿·Á¤Ç»²¾È¤Ç¤­¤ë¡£ -µ¡Ç½¸¡ºº¥Þ¥¯¥í +といった形で参照できる。 +機能検査マクロ .B _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï +が定義されている場合には .I st_atim.tv_nsec -¤Î·Á¼°¤Ç¡¢¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï +の形式で、それ以外の場合には .I st_atimensec -¤Î·Á¼°¤È¤Ê¤ë¡£ -Éäè¤êºÙ¤«¤¤¥¿¥¤¥à¥¹¥¿¥ó¥×¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -¤³¤ì¤é¤Î¥Ê¥ÎÉäΥե£¡¼¥ë¥É¤Ï 0 ¤ËÀßÄꤵ¤ì¤ë¡£ +の形式となる。 +秒より細かいタイムスタンプをサポートしていないファイルシステムでは、 +これらのナノ秒のフィールドは 0 に設定される。 .\" As at kernel 2.6.25, XFS and JFS support nanosecond timestamps, .\" but ext2, ext3, and Reiserfs do not. .\" FIXME . SUSv4 specifies nanosecond timestamps. -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR lstat () -¤Ï°ìÈ̤ˤϼ«Æ°¥Þ¥¦¥ó¥ÈÆ°ºî (automounter action) ¤Î¤­¤Ã¤«¤±¤È¤Ê¤é¤Ê¤¤¤¬¡¢ +は一般には自動マウント動作 (automounter action) のきっかけとならないが、 .BR stat () -¤Ï¤­¤Ã¤«¤±¤È¤Ê¤ë¡£ +はきっかけとなる。 .I /proc -¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤Î¤Û¤È¤ó¤É¤Ç¤Ï¡¢ +ディレクトリ以下にあるファイルのほとんどでは、 .BR stat () -¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¡¢ +を呼び出した際に、 .I st_size -¥Õ¥£¡¼¥ë¥É¤Ë¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤¬ÊÖ¤µ¤ì¤Ê¤¤¡£ -Âå¤ï¤ê¤Ë +フィールドにファイルサイズが返されない。 +代わりに .I st_size -¥Õ¥£¡¼¥ë¥É¤Ë¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SS Çظå¤Î¥«¡¼¥Í¥ë¡¦¥¤¥ó¥¿¥Õ¥§¡¼¥¹ -»þ´Ö¤Î·Ð²á¤È¤È¤â¤Ë¡¢ +フィールドには 0 が返される。 +.SS 背後のカーネル・インタフェース +時間の経過とともに、 .I stat -¹½Â¤ÂΤΥµ¥¤¥º¤¬Â礭¤¯¤Ê¤ê¡¢¤³¤Î±Æ¶Á¤Ç +構造体のサイズが大きくなり、この影響で .BR stat () -¤Ë¤Ï 3¤Ä¤Î¥Ð¡¼¥¸¥ç¥ó¤¬Â¸ºß¤¹¤ë: +には 3つのバージョンが存在する: .IR sys_stat () -(¥¹¥í¥Ã¥È¤Ï -.IR __NR_oldstat )¡¢ +(スロットは +.IR __NR_oldstat )、 .IR sys_newstat () -(¥¹¥í¥Ã¥È¤Ï -.IR __NR_stat )¡¢ +(スロットは +.IR __NR_stat )、 .IR sys_stat64 () -(¥«¡¼¥Í¥ë 2.4 ¤ÇƳÆþ; ¥¹¥í¥Ã¥È¤Ï +(カーネル 2.4 で導入; スロットは .IR __NR_stat64 ). -glibc ¤Î +glibc の .BR stat () -¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¤³¤ì¤é¤Î¾ÜºÙ¤ò¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é±£Ê䷤Ƥ¯¤ì¤ë¡£ -¶ñÂÎŪ¤Ë¤Ï¡¢¥«¡¼¥Í¥ë¤¬Ä󶡤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¤¦¤ÁºÇ¿·¤Î¥Ð¡¼¥¸¥ç¥ó¤ò -µ¯Æ°¤·¡¢¸Å¤¤¥Ð¥¤¥Ê¥ê¤Î¾ì¹ç¤Ë¤ÏɬÍפ˱þ¤¸¤ÆÊÖ¤µ¤ì¤¿¾ðÊó¤òºÆ¹½À® (repack) ¤¹¤ë¡£ +ラッパー関数はこれらの詳細をアプリケーションから隠蔽してくれる。 +具体的には、カーネルが提供しているシステムコールのうち最新のバージョンを +起動し、古いバイナリの場合には必要に応じて返された情報を再構成 (repack) する。 .BR fstat () -¤È +と .BR lstat () -¤Ë¤Ä¤¤¤Æ¤âƱÍͤǤ¢¤ë¡£ +についても同様である。 .\" .\" A note from Andries Brouwer, July 2007 .\" @@ -568,12 +568,12 @@ glibc .\" interface, rather than the libc-kernel interface. .\" .\" (Note that the details depend on gcc being used as c compiler.) -.SH Îã -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï +.SH 例 +以下のプログラムは .BR stat () -¤ò¸Æ¤Ó½Ð¤·¡¢Ê֤äƤ­¤¿ +を呼び出し、返ってきた .I stat -¹½Â¤ÂΤΥե£¡¼¥ë¥É¤Î¤¤¤¯¤Ä¤«¤òɽ¼¨¤¹¤ë¡£ +構造体のフィールドのいくつかを表示する。 .nf #include @@ -633,7 +633,7 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR access (2), .BR chmod (2), .BR chown (2), diff --git a/release/man2/statfs.2 b/release/man2/statfs.2 index 9d66117b..ecf9da00 100644 --- a/release/man2/statfs.2 +++ b/release/man2/statfs.2 @@ -35,57 +35,57 @@ .\" Updated & Modified Sun Jan 9 22:35:28 JST 2005 by Yuichi SATO .\" Updated 2006-07-21, Akihiro MOTOKI , LDP v2.36 .\" -.\"WORD: file system ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à -.\"WORD: mount ¥Þ¥¦¥ó¥È -.\"WORD: pointer ¥Ý¥¤¥ó¥¿¡¼ -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ -.\"WORD: open ¥ª¡¼¥×¥ó -.\"WORD: symbolic link ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: open ¥ª¡¼¥×¥ó +.\"WORD: file system ファイル・システム +.\"WORD: mount マウント +.\"WORD: pointer ポインター +.\"WORD: descriptor ディスクリプター +.\"WORD: open オープン +.\"WORD: symbolic link シンボリック・リンク +.\"WORD: open オープン .\" .TH STATFS 2 2010-09-04 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -statfs, fstatfs \- ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ÎÅý·×¤òÆÀ¤ë -.SH ½ñ¼° -.BR "#include " "/* ¤Þ¤¿¤Ï */" +.SH 名前 +statfs, fstatfs \- ファイル・システムの統計を得る +.SH 書式 +.BR "#include " "/* または */" .sp .BI "int statfs(const char *" path ", struct statfs *" buf ); .br .BI "int fstatfs(int " fd ", struct statfs *" buf ); -.SH ½ñ¼° -´Ø¿ô +.SH 書式 +関数 .BR statfs () -¤Ï¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÊÖ¤¹¡£ +はマウントされたファイル・システムについての情報を返す。 .I path -¤Ï¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹Ì¾¤Ç¤¢¤ë¡£ +はマウントされたファイル・システムにあるファイルのパス名である。 .I buf -¤Ï +は .I statfs -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¡¼¤Ç¡¢¤ª¤è¤½°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë: +構造体へのポインターで、およそ以下のように定義される: .in +4n .nf -#if __WORDSIZE == 32 /* ¥·¥¹¥Æ¥à¤Î¥ï¡¼¥É¥µ¥¤¥º */ +#if __WORDSIZE == 32 /* システムのワードサイズ */ # define __SWORD_TYPE int #else /* __WORDSIZE == 64 */ # define __SWORD_TYPE long int #endif struct statfs { - __SWORD_TYPE f_type; /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¼ïÊÌ (²¼µ­»²¾È) */ - __SWORD_TYPE f_bsize; /* ºÇŬ¤ÊžÁ÷¥Ö¥í¥Ã¥¯¥µ¥¤¥º */ - fsblkcnt_t f_blocks; /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÁí¥Ç¡¼¥¿¥Ö¥í¥Ã¥¯¿ô */ - fsblkcnt_t f_bfree; /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¶õ¤­¥Ö¥í¥Ã¥¯¿ô */ - fsblkcnt_t f_bavail; /* ÈóÆø¢¥æ¡¼¥¶¤¬ÍøÍѲÄǽ¤Ê¶õ¤­¥Ö¥í¥Ã¥¯¿ô */ - fsfilcnt_t f_files; /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÁí¥Õ¥¡¥¤¥ë¥Î¡¼¥É¿ô */ - fsfilcnt_t f_ffree; /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¶õ¤­¥Õ¥¡¥¤¥ë¥Î¡¼¥É¿ô */ - fsid_t f_fsid; /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î ID */ - __SWORD_TYPE f_namelen; /* ¥Õ¥¡¥¤¥ë̾¤ÎºÇÂçĹ */ - __SWORD_TYPE f_frsize; /* ¥Õ¥é¥°¥á¥ó¥È¥µ¥¤¥º (Linux 2.6 °Ê¹ß) */ + __SWORD_TYPE f_type; /* ファイルシステムの種別 (下記参照) */ + __SWORD_TYPE f_bsize; /* 最適な転送ブロックサイズ */ + fsblkcnt_t f_blocks; /* ファイルシステムの総データブロック数 */ + fsblkcnt_t f_bfree; /* ファイルシステムの空きブロック数 */ + fsblkcnt_t f_bavail; /* 非特権ユーザが利用可能な空きブロック数 */ + fsfilcnt_t f_files; /* ファイルシステムの総ファイルノード数 */ + fsfilcnt_t f_ffree; /* ファイルシステムの空きファイルノード数 */ + fsid_t f_fsid; /* ファイルシステムの ID */ + __SWORD_TYPE f_namelen; /* ファイル名の最大長 */ + __SWORD_TYPE f_frsize; /* フラグメントサイズ (Linux 2.6 以降) */ __SWORD_TYPE f_spare[5]; }; -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î·¿: +ファイル・システムの型: ADFS_SUPER_MAGIC 0xadf5 AFFS_SUPER_MAGIC 0xADFF @@ -108,10 +108,10 @@ struct statfs { ISOFS_SUPER_MAGIC 0x9660 JFFS2_SUPER_MAGIC 0x72b6 JFS_SUPER_MAGIC 0x3153464a - MINIX_SUPER_MAGIC 0x137F /* ¥ª¥ê¥¸¥Ê¥ë¤Î minix */ - MINIX_SUPER_MAGIC2 0x138F /* 30 ʸ»ú¥Õ¥¡¥¤¥ë̾¤Î minix */ + MINIX_SUPER_MAGIC 0x137F /* オリジナルの minix */ + MINIX_SUPER_MAGIC2 0x138F /* 30 文字ファイル名の minix */ MINIX2_SUPER_MAGIC 0x2468 /* minix V2 */ - MINIX2_SUPER_MAGIC2 0x2478 /* minix V2, 30 ʸ»ú¥Õ¥¡¥¤¥ë̾ */ + MINIX2_SUPER_MAGIC2 0x2478 /* minix V2, 30 文字ファイル名 */ MSDOS_SUPER_MAGIC 0x4d44 NCP_SUPER_MAGIC 0x564c NFS_SUPER_MAGIC 0x6969 @@ -136,157 +136,157 @@ struct statfs { .in .PP .I f_fsid -¤Ë¤É¤ó¤ÊÃͤ¬Æþ¤ë¤Ù¤­¤Ê¤Î¤«¤Ïï¤âÃΤé¤Ê¤¤ (⤷¡¢²¼µ­¤ò»²¾È)¡£ +にどんな値が入るべきなのかは誰も知らない (但し、下記を参照)。 .PP -¤½¤ì¤¾¤ì¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ̤ÄêµÁ¤Î¥Õ¥£¡¼¥ë¥É¤Ë¤Ï 0 ¤¬ -ÀßÄꤵ¤ì¤ë¡£ +それぞれのファイル・システムにおいて未定義のフィールドには 0 が +設定される。 .BR fstatfs () -¤Ï¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ +はディスクリプター .I fd -¤Ë¤è¤Ã¤Æ»²¾È¤µ¤ì¤ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¡¢Æ±¤¸¾ðÊó¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ì¤Ð 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +によって参照されるオープンされたファイルについて、同じ情報を返す。 +.SH 返り値 +成功すれば 0 が返される。エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EACCES .RB ( statfs () -¤Î¾ì¹ç) +の場合) .I path -¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤Ë¸¡º÷µö²Ä¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤ +のディレクトリ部分に検索許可が与えられていない .RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È)¡£ +も参照すること)。 .TP .B EBADF .RB ( fstatfs () -¤Î¾ì¹ç) +の場合) .I fd -¤ÏÍ­¸ú¤Ê¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ç¤Ï¤Ê¤¤¡£ +は有効なオープンされたファイル・ディスクリプターではない。 .TP .B EFAULT .I buf -¤Þ¤¿¤Ï +または .I path -¤¬ÉÔÀµ¤Ê¥¢¥É¥ì¥¹¤ò»Ø¤·¤Æ¤¤¤ë¡£ +が不正なアドレスを指している。 .TP .B EINTR -¤³¤Î¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¤ÇÃæÃǤµ¤ì¤¿¡£ +この呼び出しがシグナルで中断された。 .TP .B EIO -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ÎÆɤ߹þ¤ß¤Î´Ö¤Ë I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +ファイル・システムの読み込みの間に I/O エラーが発生した。 .TP .B ELOOP .RB ( statfs () -¤Î¾ì¹ç) +の場合) .I path -¤ò²ò·è¤¹¤ë¤Î¤Ëé¤ë¤Ù¤­¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿¤¹¤®¤ë¡£ +を解決するのに辿るべきシンボリック・リンクが多すぎる。 .TP .B ENAMETOOLONG .RB ( statfs () -¤Î¾ì¹ç) +の場合) .I path -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENOENT .RB ( statfs () -¤Î¾ì¹ç) +の場合) .I path -¤Ë¤è¤Ã¤Æ»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ +によって参照されるファイルが存在しない。 .TP .B ENOMEM -¥«¡¼¥Í¥ë¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +カーネルに十分なメモリがない。 .TP .B ENOSYS -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤¬¤³¤Î¸Æ¤Ó½Ð¤·¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +ファイル・システムがこの呼び出しをサポートしていない。 .TP .B ENOTDIR .RB ( statfs () -¤Î¾ì¹ç) +の場合) .I path -¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +のディレクトリ部分がディレクトリでない。 .TP .B EOVERFLOW -Ãͤ¬Â礭²á¤®¤ë¤¿¤á¡¢ÊÖ¤êÃͤι½Â¤ÂΤÇɽ¸½¤Ç¤­¤Ê¤¤¡£ -.SH ½àµò -Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -Linux ¤Î +値が大き過ぎるため、返り値の構造体で表現できない。 +.SH 準拠 +Linux 固有である。 +Linux の .BR statfs () -¤Ï 4.4BSD ¤Î¤â¤Î¤Ë±Æ¶Á¤ò¼õ¤±¤Æ¤¤¤ë¡£ -(¤·¤«¤·Æ±¤¸¹½Â¤ÂΤò»ÈÍѤ·¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤) -.SH Ãí°Õ -¤³¤Î¥é¥¤¥Ö¥é¥ê¥³¡¼¥ë¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¿¤á¡¢ -¥«¡¼¥Í¥ë¤Ë¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë +は 4.4BSD のものに影響を受けている。 +(しかし同じ構造体を使用しているわけではない) +.SH 注意 +このライブラリコールをサポートするため、 +カーネルにはシステムコール .BR statfs (), .BR fstatfs (), .BR statfs64 (), .BR fstatfs64 () -¤¬¤¢¤ë¡£ +がある。 -\fI\fP ¤·¤«»ý¤¿¤Ê¤¤¥·¥¹¥Æ¥à¤â¤¢¤ê¡¢ -\fI\fP ¤â»ý¤Ã¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ -Á°¼Ô¤Ï¸å¼Ô¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤Î¤Ç¡¢ -Á°¼Ô¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤Î¤¬Îɤ¤¤È¹Í¤¨¤é¤ì¤ë¡£ +\fI\fP しか持たないシステムもあり、 +\fI\fP も持っているシステムもある。 +前者は後者をインクルードするので、 +前者をインクルードするのが良いと考えられる。 -LSB ¤Ç¤Ï¥é¥¤¥Ö¥é¥ê¥³¡¼¥ë +LSB ではライブラリコール .BR statfs (), .BR fstatfs () -¤òÈó¿ä¾©¤È¤·¤Æ¡¢Âå¤ï¤ê¤Ë +を非推奨として、代わりに .BR statvfs (2), .BR fstatvfs (2) -¤ò»È¤¦¤è¤¦¤Ë»Ø¼¨¤·¤Æ¤¤¤ë¡£ -.SS f_fsid ¥Õ¥£¡¼¥ë¥É -Solaris, Irix, POSIX ¤Ë¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë +を使うように指示している。 +.SS f_fsid フィールド +Solaris, Irix, POSIX にはシステムコール .BR statvfs (2) -¤¬¤¢¤ê¡¢ +があり、 .I "struct statvfs" -¤òÊÖ¤¹ +を返す .RI ( -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ -¤³¤Î¹½Â¤ÂΤˤϡ¢ +で定義されている)。 +この構造体には、 .I "unsigned long" .I f_fsid -¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -Linux, SunOS, HP-UX, 4.4BSD ¤Ë¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë +が含まれている。 +Linux, SunOS, HP-UX, 4.4BSD にはシステムコール .BR statfs () -¤¬¤¢¤ê¡¢ +があり、 .I "struct statfs" -¤òÊÖ¤¹ +を返す .RI ( -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ -¤³¤Î¹½Â¤ÂÎ¤Ë¤Ï +で定義されている)。 +この構造体には .I fsid_t .IR f_fsid , -¤¬´Þ¤Þ¤ì¤Æ¤ª¤ê¡¢ +が含まれており、 .I fsid_t -¤Ï +は .I "struct { int val[2]; }" -¤ÈÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -FreeBSD ¤Ç¤âƱ¤¸¤Ç¤¢¤ë¤¬¡¢¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +と定義されている。 +FreeBSD でも同じであるが、インクルードファイル .I -¤ò»È¤¦¡£ +を使う。 .I f_fsid -¤Ï¤¢¤ë¥é¥ó¥À¥à¤ÊÃͤò»ý¤Á¡¢ +はあるランダムな値を持ち、 .RI ( f_fsid , ino ) -¤È¤¤¤¦ 1 ÁȤÎÃͤǥե¡¥¤¥ë¤ò°ì°Õ¤Ë·èÄê¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡¢ -¤È¤¤¤¦¤Î¤¬´ðËÜŪ¤Ê¹Í¤¨Êý¤Ç¤¢¤ë¡£ -¤¤¤¯¤Ä¤«¤Î OS ¤Ç¤Ï¡¢¥Ç¥Ð¥¤¥¹ÈÖ¹æ (¤ÎÊѼï) ¤ò»È¤Ã¤¿¤ê¡¢ -¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤È¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¥¿¥¤¥×¤òÁȤ߹ç¤ï¤»¤Æ»È¤Ã¤¿¤ê¤·¤Æ¤¤¤ë¡£ -OS ¤ÎÃæ¤Ë¤Ï +という 1 組の値でファイルを一意に決定できるようにする、 +というのが基本的な考え方である。 +いくつかの OS では、デバイス番号 (の変種) を使ったり、 +デバイス番号とファイル・システムタイプを組み合わせて使ったりしている。 +OS の中には .I f_fsid -¥Õ¥£¡¼¥ë¥É¤Î¼èÆÀ¤ò¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ë¸ÂÄꤷ¤Æ¤¤¤ë¤â¤Î¤â¤¢¤ë -(ÈóÆø¢¥æ¡¼¥¶¤¬¼èÆÀ¤¹¤ë¤È 0 ¤È¤Ê¤ë)¡£ -NFS ¤Ç¥¨¥¯¥¹¥Ý¡¼¥È¤µ¤ì¤ë¾ì¹ç¡¢ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤¬¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤Ç»È¤ï¤ì¤Æ¤ª¤ê¡¢ -¤³¤ÎÃͤòÄ󶡤¹¤ë¤È¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÌäÂ꤬¤¢¤ë¡£ +フィールドの取得をスーパーユーザに限定しているものもある +(非特権ユーザが取得すると 0 となる)。 +NFS でエクスポートされる場合、 +このフィールドがファイル・システムのファイルハンドルで使われており、 +この値を提供するとセキュリティ上の問題がある。 .LP -¤¤¤¯¤Ä¤«¤Î OS ¤Ç¤Ï¡¢ +いくつかの OS では、 .I fsid -¤ò +を .BR sysfs (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÂè 2 °ú¤­¿ô¤È¤·¤Æ»ÈÍѤǤ­¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +システムコールの第 2 引き数として使用できる。 +.SH 関連項目 .BR stat (2), .BR statvfs (2), .BR path_resolution (7) diff --git a/release/man2/stime.2 b/release/man2/stime.2 index c0a6fd34..24d11090 100644 --- a/release/man2/stime.2 +++ b/release/man2/stime.2 @@ -34,52 +34,52 @@ .\" Updated 2003-09-08, Kentaro Shirakata .\" Updated 2005-02-24, Akihiro MOTOKI .\" -.\"WORD: GMT ¥°¥ê¥Ë¥Ã¥¸Ê¿¶Ñ»þ(GMT) -.\"WORD: superuser ¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼ +.\"WORD: GMT グリニッジ平均時(GMT) +.\"WORD: superuser スーパーユーザー .\" .TH STIME 2 2007-07-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -stime \- »þ´Ö¤òÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +stime \- 時間を設定する +.SH 書式 .B #include .sp .BI "int stime(time_t *" t ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR stime (): _SVID_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR stime () -¤Ï¥·¥¹¥Æ¥à¤Î»þ¹ï¤ÈÆüÉÕ¤òÀßÄꤹ¤ë¡£ -\fIt\fP ¤¬»Ø¤¹»þ¹ï¤Ï¡¢»þ¹ïµª¸µ (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) -¤«¤é¤ÎÉÿô¤Ç»ØÄꤹ¤ë¡£ -¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¤Î¤ß¤¬ +はシステムの時刻と日付を設定する。 +\fIt\fP が指す時刻は、時刻紀元 (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) +からの秒数で指定する。 +スーパーユーザーのみが .BR stime () -¤ò¼Â¹Ô¤Ç¤­¤ë¡£ +を実行できる。 -(ÌõÃí: Àµ³Î¤Ë¤Ï¥°¥ê¥Ë¥Ã¥¸Ê¿¶Ñ»þ(GMT)¤Ç¤Ï¤Ê¤¯¶¨ÄêÀ¤³¦»þ(UTC)¤¬»ÈÍѤµ¤ì¤ë) -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï¥¼¥í¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +(訳注: 正確にはグリニッジ平均時(GMT)ではなく協定世界時(UTC)が使用される) +.SH 返り値 +成功した場合はゼロが返される。エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EFAULT -¥æ¡¼¥¶¡¼¶õ´Ö¤«¤é¾ðÊó¤òÆÀ¤ë¤È¤­¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +ユーザー空間から情報を得るときにエラーが発生した。 .TP .B EPERM -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬½½Ê¬¤Ê¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -Linux ¤Ç¤Ï +呼び出し元のプロセスが十分な権限を持っていない。 +Linux では .B CAP_SYS_TIME -¸¢¸Â¤¬É¬ÍפǤ¢¤ë¡£ -.SH ½àµò +権限が必要である。 +.SH 準拠 SVr4. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR date (1), .BR settimeofday (2), .BR capabilities (7) diff --git a/release/man2/swapon.2 b/release/man2/swapon.2 index 1e9ba963..f1b5a1da 100644 --- a/release/man2/swapon.2 +++ b/release/man2/swapon.2 @@ -44,153 +44,153 @@ .\" by Yuichi SATO .\" Updated 2007-09-04, Akihiro MOTOKI , LDP v2.64 .\" -.\"WORD: swap ¥¹¥ï¥Ã¥× -.\"WORD: block device ¥Ö¥í¥Ã¥¯¡¦¥Ç¥Ð¥¤¥¹ -.\"WORD: super-user ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼ -.\"WORD: round robin ¥é¥¦¥ó¥É¡¦¥í¥Ó¥ó -.\"WORD: partition ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó -.\"WORD: page ¥Ú¡¼¥¸ -.\"WORD: kernel ¥«¡¼¥Í¥ë +.\"WORD: swap スワップ +.\"WORD: block device ブロック・デバイス +.\"WORD: super-user スーパー・ユーザー +.\"WORD: round robin ラウンド・ロビン +.\"WORD: partition パーティション +.\"WORD: page ページ +.\"WORD: kernel カーネル .\" .TH SWAPON 2 2010-06-15 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -swapon, swapoff \- ¥Õ¥¡¥¤¥ë/¥Ç¥Ð¥¤¥¹¤Ø¤Î¥¹¥ï¥Ã¥×¤ò³«»Ï/Ää»ß¤¹¤ë -.SH ½ñ¼° +.SH 名前 +swapon, swapoff \- ファイル/デバイスへのスワップを開始/停止する +.SH 書式 .B #include .br -.B #include /* PAGE_SIZE ¤ò¸«¤Ä¤±¤ë¤¿¤á */ +.B #include /* PAGE_SIZE を見つけるため */ .br .B #include .sp .BI "int swapon(const char *" path ", int " swapflags ); .br .BI "int swapoff(const char *" path ); -.SH ÀâÌÀ +.SH 説明 .BR swapon () -¤Ï +は .I path -¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ä¥Ö¥í¥Ã¥¯¡¦¥Ç¥Ð¥¤¥¹¤Ë¥¹¥ï¥Ã¥×Îΰè¤òÀßÄꤹ¤ë¡£ +で指定されたファイルやブロック・デバイスにスワップ領域を設定する。 .BR swapoff () -¤Ï +は .I path -¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ä¥Ö¥í¥Ã¥¯¡¦¥Ç¥Ð¥¤¥¹¤Ø¤Î¥¹¥ï¥Ã¥×¤òÄä»ß¤¹¤ë¡£ +で指定されたファイルやブロック・デバイスへのスワップを停止する。 .PP .BR swapon () -¤Ï +は .I swapflags -°ú¤­¿ô¤ò¼è¤ë¡£ +引き数を取る。 .I swapflags -¤Ë +に .B SWAP_FLAG_PREFER -¥Ó¥Ã¥È¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢¿·¤·¤¤¥¹¥ï¥Ã¥×Îΰè¤Ï¥Ç¥Õ¥©¥ë¥È¤è¤ê¤â¹â¤¤ -Í¥ÀèÅÙ¤ò»ý¤Ä¡£ -Í¥ÀèÅÙ¤Ï +ビットが設定された場合は、新しいスワップ領域はデフォルトよりも高い +優先度を持つ。 +優先度は .I swapflags -¤Ë°Ê²¼¤Î¤è¤¦¤Ë¥³¡¼¥É²½¤µ¤ì¤Æ¤¤¤ë¡£ +に以下のようにコード化されている。 .br .sp .I " (prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK" .br .PP -¤³¤ì¤é¤Î´Ø¿ô¤ÏÆø¢¥×¥í¥»¥¹ +これらの関数は特権プロセス .RB ( CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤Ä¥×¥í¥»¥¹) ¤Î¤ß¤¬»ÈÍѤǤ­¤ë¡£ -.SS Í¥ÀèÅÙ -¤½¤ì¤¾¤ì¤Î¥¹¥ï¥Ã¥×Îΰè¤Ï¹â (high) ¤ÈÄã (low) ¤Î¤É¤Á¤é¤«¤ÎÍ¥ÀèÅÙ¤ò»ý¤Ä¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÍ¥ÀèÅÙ¤ÏÄã¤Ç¤¢¤ë¡£ -Ä㤤ͥÀèÅÙ¤ÎÎΰè¤Ë¤ª¤¤¤Æ¡¢¿·¤·¤¤Îΰè¤Ï¸Å¤¤Îΰè¤è¤ê¤µ¤é¤ËÄ㤤 -Í¥ÀèÅÙ¤ò»ý¤Ä¡£ +ケーパビリティ (capability) を持つプロセス) のみが使用できる。 +.SS 優先度 +それぞれのスワップ領域は高 (high) と低 (low) のどちらかの優先度を持つ。 +デフォルトの優先度は低である。 +低い優先度の領域において、新しい領域は古い領域よりさらに低い +優先度を持つ。 .PP .I swapflags -¤¬ÀßÄꤵ¤ì¤¿¤â¤Î¤ÏÁ´¤Æ¹â¤¤Í¥ÀèÅ٤Ȥʤꡢ¥Ç¥Õ¥©¥ë¥È¤è¤ê¤â¹â¤¤Í¥ÀèÅÙ¤ò»ý¤Ä¡£ -»ÈÍѼԤϤ½¤ì¤é¤ËÉé¤Ç¤Ê¤¤Ãͤ¬»ØÄê¤Ç¤­¤ë¡£ -Â礭¤Ê¿ô»ú¤Ï¹â¤¤Í¥ÀèÅÙ¤ò°ÕÌ£¤¹¤ë¡£ +が設定されたものは全て高い優先度となり、デフォルトよりも高い優先度を持つ。 +使用者はそれらに負でない値が指定できる。 +大きな数字は高い優先度を意味する。 .PP -¹â¤¤Í¥ÀèÅÙ¤ÎÎΰ褫¤é½ç¤Ë¥¹¥ï¥Ã¥×¡¦¥Ú¡¼¥¸¤È¤·¤Æ»ÈÍѤµ¤ì¤ë¡£ -¤è¤êÄ㤤ͥÀèÅÙ¤ÎÎΰè¤ò»ÈÍѤ¹¤ëÁ°¤Ë¤è¤ê¹â¤¤Í¥ÀèÅ٤Π-Îΰè¤ò»È¤¤Àڤ롣¤â¤·Æó¤Ä°Ê¾å¤ÎÎΰ褬Ʊ¤¸Í¥ÀèÅÙ¤ò»ý¤Á¡¢ -»È¤¨¤ëÃæ¤Ç°ìÈֹ⤤ͥÀèÅ٤Ǥ¢¤ì¤Ð¡¢¤½¤ì¤é¤Î¥Ú¡¼¥¸¤Ï´Ö¤Ç -¥é¥¦¥ó¥É¡¦¥í¥Ó¥óÊý¼°¤ÇÇÛʬ¤µ¤ì¤ë¡£ +高い優先度の領域から順にスワップ・ページとして使用される。 +より低い優先度の領域を使用する前により高い優先度の +領域を使い切る。もし二つ以上の領域が同じ優先度を持ち、 +使える中で一番高い優先度であれば、それらのページは間で +ラウンド・ロビン方式で配分される。 .PP -Linux 1.3.6 ¤Ë¤ª¤¤¤Æ¡¢¥«¡¼¥Í¥ë¤ÏÄ̾ï¤Ï¤³¤ì¤é¤Îµ¬Â§¤Ë½¾¤Ã¤Æ¤¤¤ë¡£ -¤·¤«¤·Îã³°¤â¸ºß¤·¤Æ¤¤¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +Linux 1.3.6 において、カーネルは通常はこれらの規則に従っている。 +しかし例外も存在している。 +.SH 返り値 +成功した場合は 0 が返される。エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EBUSY .RB ( swapon () -¤Ë¤ª¤¤¤Æ) »ØÄꤵ¤ì¤¿ +において) 指定された .I path -¤¬´û¤Ë¥¹¥ï¥Ã¥×Îΰè¤È¤·¤Æ»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ +が既にスワップ領域として使用されている。 .TP .B EINVAL -¥Õ¥¡¥¤¥ë +ファイル .I path -¤Ï¸ºß¤¹¤ë¤¬¡¢Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤â¥Ö¥í¥Ã¥¯¡¦¥Ç¥Ð¥¤¥¹¤â»²¾È¤·¤Æ¤¤¤Ê¤¤¡£ -¤Þ¤¿¤Ï +は存在するが、通常のファイルもブロック・デバイスも参照していない。 +または .BR swapon () -¤Ë¤ª¤¤¤Æ¡¢»ØÄꤵ¤ì¤¿ path ¤Î¥Õ¥¡¥¤¥ë¤¬Í­¸ú¤Ê¥¹¥ï¥Ã¥×¤Î½ð̾ (signature) ¤ò -´Þ¤ó¤Ç¤¤¤Ê¤¤¤«¡¢tmpfs ¤Î¤è¤¦¤Ê¥¤¥ó¥á¥â¥ê (in-memory) ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -¾å¤Ë¤¢¤ë¡£ -¤Þ¤¿¤Ï +において、指定された path のファイルが有効なスワップの署名 (signature) を +含んでいないか、tmpfs のようなインメモリ (in-memory) のファイルシステム +上にある。 +または .BR swapoff () -¤Ë¤ª¤¤¤Æ¡¢ +において、 .I path -¤¬¸½ºß¤Î¤È¤³¤í¥¹¥ï¥Ã¥×Îΰè¤Ç¤Ê¤¤¡£ +が現在のところスワップ領域でない。 .TP .B ENFILE -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ÎÁí¿ô¤¬¥·¥¹¥Æ¥à¤ÎÀ©¸Â¤Ë㤷¤¿¡£ +オープンされたファイルの総数がシステムの制限に達した。 .TP .B ENOENT -¥Õ¥¡¥¤¥ë +ファイル .I path -¤¬Â¸ºß¤·¤Ê¤¤¡£ +が存在しない。 .TP .B ENOMEM -¥¹¥ï¥Ã¥×¤ò³«»Ï¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¥á¥â¥ê¡¼¤¬¥·¥¹¥Æ¥à¤Ë¤Ê¤¤¡£ +スワップを開始するのに十分なメモリーがシステムにない。 .TP .B EPERM -»ÈÍѼԤ¬ +使用者が .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -¤â¤·¤¯¤Ï¡¢ºÇÂç¿ô¤Î¥¹¥ï¥Ã¥×¥Õ¥¡¥¤¥ë¤¬¤¹¤Ç¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë -(²¼µ­¤Î¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È)¡£ -.SH ½àµò -¤³¤ì¤é¤Î´Ø¿ô¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï -»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ -ÆóÈÖÌܤΠ+ケーパビリティを持っていない。 +もしくは、最大数のスワップファイルがすでに使用されている +(下記の「注意」の節を参照)。 +.SH 準拠 +これらの関数は Linux 特有であり、移植を意図したプログラムでは +使用してはいけない。 +二番目の .I swapflags -°ú¤­¿ô¤Ï Linux 1.3.2 ¤«¤éƳÆþ¤µ¤ì¤¿¡£ -.SH Ãí°Õ -¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ä¥Ñ¥¹¤Ï +引き数は Linux 1.3.2 から導入された。 +.SH 注意 +パーティションやパスは .BR mkswap (8) -¤Ë¤è¤Ã¤Æ½àÈ÷¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +によって準備されていなければならない。 -»ÈÍѤǤ­¤ë¥¹¥ï¥Ã¥×¥Õ¥¡¥¤¥ë¤Î¿ô¤Ë¤Ï¾å¸Â¤¬¤¢¤ê¡¢¤½¤Î¾å¸Â¤Ï -¥«¡¼¥Í¥ëÄê¿ô +使用できるスワップファイルの数には上限があり、その上限は +カーネル定数 .B MAX_SWAPFILES -¤ÇÄêµÁ¤µ¤ì¤ë¡£ +で定義される。 .B MAX_SWAPFILES -¤ÎÃͤϡ¢¥«¡¼¥Í¥ë 2.4.10 ¤è¤êÁ°¤Ç¤Ï 8¡¢ -¥«¡¼¥Í¥ë 2.4.10 °Ê¹ß¤Ç¤Ï 32 ¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë 2.6.18 °Ê¹ß¤Ç¤Ï¡¢¥«¡¼¥Í¥ë¤¬ +の値は、カーネル 2.4.10 より前では 8、 +カーネル 2.4.10 以降では 32 である。 +カーネル 2.6.18 以降では、カーネルが .B CONFIG_MIGRATION -¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤·¤ÆºîÀ®¤µ¤ì¤¿¾ì¹ç¡¢ -¤³¤Î¾å¸Â¤¬ 2 ¾¯¤Ê¤¤ÃÍ (¤Ä¤Þ¤ê 30) ¤È¤Ê¤ë -(¤³¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +オプションを有効にして作成された場合、 +この上限が 2 少ない値 (つまり 30) となる +(このカーネルでは、 .BR mbind (2) -¤È +と .BR migrate_pages (2) -¤Î¥Ú¡¼¥¸¡¦¥Þ¥¤¥°¥ì¡¼¥·¥ç¥óµ¡Ç½ÍѤ˥¹¥ï¥Ã¥×¡¦¥Æ¡¼¥Ö¥ë¤Î¥¨¥ó¥È¥ê¡¼¤¬ -Æó¤ÄͽÌ󤵤ì¤ë)¡£ -¥«¡¼¥Í¥ë 2.6.32 °Ê¹ß¤Ç¤Ï¡¢¥«¡¼¥Í¥ë¤¬ +のページ・マイグレーション機能用にスワップ・テーブルのエントリーが +二つ予約される)。 +カーネル 2.6.32 以降では、カーネルが .B CONFIG_MEMORY_FAILURE -¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤·¤ÆºîÀ®¤µ¤ì¤¿¾ì¹ç¡¢ -¤³¤Î¾å¸Â¤¬¤µ¤é¤Ë 1 ¾¯¤Ê¤¤ÃͤȤʤ롣 -.SH ´ØÏ¢¹àÌÜ +オプションを有効にして作成された場合、 +この上限がさらに 1 少ない値となる。 +.SH 関連項目 .BR mkswap (8), .BR swapoff (8), .BR swapon (8) diff --git a/release/man2/symlink.2 b/release/man2/symlink.2 index cf5da22c..624d565d 100644 --- a/release/man2/symlink.2 +++ b/release/man2/symlink.2 @@ -36,30 +36,30 @@ .\" Updated & Modifed Sat Feb 12 11:20:18 JST 2005 .\" by Yuichi SATO .\" -.\"WORD: symbolic link ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: directory ¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: soft link ¥½¥Õ¥È¡¦¥ê¥ó¥¯ -.\"WORD: hard link ¥Ï¡¼¥É¡¦¥ê¥ó¥¯ -.\"WORD: dangling link ²õ¤ì¤¿¥ê¥ó¥¯ -.\"WORD: sticky bit ¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È -.\"WORD: ownership ½êÍ­¸¢ -.\"WORD: file system ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à -.\"WORD: effective uid ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: entry ¥¨¥ó¥È¥ê +.\"WORD: symbolic link シンボリック・リンク +.\"WORD: directory ディレクトリ +.\"WORD: soft link ソフト・リンク +.\"WORD: hard link ハード・リンク +.\"WORD: dangling link 壊れたリンク +.\"WORD: sticky bit スティッキー・ビット +.\"WORD: ownership 所有権 +.\"WORD: file system ファイル・システム +.\"WORD: effective uid 実効ユーザーID +.\"WORD: kernel カーネル +.\"WORD: entry エントリ .\" .TH SYMLINK 2 2010-09-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -symlink \- ¥Õ¥¡¥¤¥ë¤Ë¿·¤·¤¤Ì¾Á°¤òÉÕ¤±¤ë -.SH ½ñ¼° +.SH 名前 +symlink \- ファイルに新しい名前を付ける +.SH 書式 .B #include .sp .BI "int symlink(const char *" oldpath ", const char *" newpath ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -69,108 +69,108 @@ _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED || _POSIX_C_SOURCE\ >=\ 200112L .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR symlink () -¤Ï +は .I oldpath -¤È¤¤¤¦Ê¸»úÎó¤ò¥Õ¥¡¥¤¥ë¤ÎÆâÍƤȤ·¤Æ»ý¤Ä +という文字列をファイルの内容として持つ .I newpath -¤È¤¤¤¦¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ (symbolic link) ¤òºîÀ®¤¹¤ë¡£ +というシンボリック・リンク (symbolic link) を作成する。 -¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ï¼Â¹Ô»þ¤Ë²ò¼á¤µ¤ì¡¢ -¥ê¥ó¥¯¤ÎÆâÍƤǥѥ¹¤òÃÖ¤­´¹¤¨¤Æ¡¢¤½¤Î¥Ñ¥¹¤òé¤ë¤³¤È¤Ç¡¢ -¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥ì¥¯¥È¥ê¤ËÅþ㤹¤ë¡£ +シンボリック・リンクは実行時に解釈され、 +リンクの内容でパスを置き換えて、そのパスを辿ることで、 +ファイルやディレクトリに到達する。 -¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ï¥Ñ¥¹¤ÎÉôʬ¤Ë +シンボリック・リンクはパスの部分に .I .. -¤ò´Þ¤à¤«¤â¤·¤ì¤Ê¤¤¡£¤³¤ì¤Ï (¤â¤·¥ê¥ó¥¯¤ÎºÇ½é¤Ë»ÈÍѤµ¤ì¤¿¾ì¹ç¤Ï) ¥ê¥ó¥¯¤Î -¸ºß¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤¬»²¾È¤µ¤ì¤ë¡£ +を含むかもしれない。これは (もしリンクの最初に使用された場合は) リンクの +存在するディレクトリの親ディレクトリが参照される。 -¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ï (¥½¥Õ¥È¡¦¥ê¥ó¥¯ (soft link) ¤È¤â¸Æ¤Ð¤ì) -¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¤ò»Ø¤·¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¤·¡¢ -¸ºß¤·¤Ê¤¤¥Õ¥¡¥¤¥ë¤ò»Ø¤·¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤; -¸å¼Ô¤Î¾ì¹ç¤Ï²õ¤ì¤¿¥ê¥ó¥¯ (dangling link) ¤È¤â¸Æ¤Ð¤ì¤ë¡£ +シンボリック・リンクは (ソフト・リンク (soft link) とも呼ばれ) +存在するファイルを指しているかもしれないし、 +存在しないファイルを指しているかもしれない; +後者の場合は壊れたリンク (dangling link) とも呼ばれる。 -¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Îµö²Ä (permission) ¤Ï̵°ÕÌ£¤Ç¤¢¤ë; -¥ê¥ó¥¯¤òÄÉÀפ¹¤ë¾ì¹ç¤Ë¤Ï½êÍ­¸¢ (ownership) ¤Ï̵»ë¤µ¤ì¤ë¡£ -¤¿¤À¤·¡¢¥ê¥ó¥¯¤Îºï½ü¤ä̾Á°¤ÎÊѹ¹¤¬Í׵ᤵ¤ì¡¢¤«¤Ä¥ê¥ó¥¯¤¬Â¸ºß¤¹¤ë -¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È (sticky bit) +シンボリック・リンクの許可 (permission) は無意味である; +リンクを追跡する場合には所有権 (ownership) は無視される。 +ただし、リンクの削除や名前の変更が要求され、かつリンクが存在する +ディレクトリにスティッキー・ビット (sticky bit) .RB ( S_ISVTX ) -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢½êÍ­¸¢¤Î¥Á¥§¥Ã¥¯¤¬¹Ô¤ï¤ì¤ë¡£ +が設定されている場合には、所有権のチェックが行われる。 .I newpath -¤¬´û¤Ë¸ºß¤¹¤ë¾ì¹ç¤Ë¤Ï¾å½ñ¤­¤Ï\fB¤µ¤ì¤Ê¤¤\fR¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï \-1 ¤òÊÖ¤·¡¢ +が既に存在する場合には上書きは\fBされない\fR。 +.SH 返り値 +成功した場合には 0 を返す。エラーの場合には \-1 を返し、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EACCES .I newpath -¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ø¤Î½ñ¤­¹þ¤ß¤¬µñÈݤµ¤ì¤¿¤«¡¢ +を含んでいるディレクトリへの書き込みが拒否されたか、 .I newpath -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¤É¤ì¤«¤Ë¸¡º÷µö²Ä¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤ +に含まれているディレクトリのどれかに検索許可が与えられていない .RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È)¡£ +も参照すること)。 .TP .B EEXIST .I newpath -¤¬´û¤Ë¸ºß¤·¤Æ¤¤¤ë¡£ +が既に存在している。 .TP .B EFAULT -.IR oldpath " ¤ä " newpath " ¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£" +.IR oldpath " や " newpath " がアクセス可能なアドレス空間の外を指している。" .TP .B EIO -I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +I/O エラーが発生した。 .TP .B ELOOP .I newpath -¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ +を解決する際に遭遇したシンボリック・リンクが多過ぎる。 .TP .B ENAMETOOLONG -.IR oldpath " ¤Þ¤¿¤Ï " newpath " ¤¬Ä¹²á¤®¤ë¡£" +.IR oldpath " または " newpath " が長過ぎる。" .TP .B ENOENT .I newpath -¤Ë´Þ¤Þ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢²õ¤ì¤¿¥ê¥ó¥¯¤Ç¤¢¤ë¤«¡¢ +に含まれるディレクトリ部分が存在しないか、壊れたリンクであるか、 .I oldpath -¤¬¶õʸ»úÎó¤Ç¤¢¤ë¡£ +が空文字列である。 .TP .B ENOMEM -½½Ê¬¤Ê¥«¡¼¥Í¥ë (kernel) ¤Î¥á¥â¥ê¡¼¤¬¤Ê¤¤¡£ +十分なカーネル (kernel) のメモリーがない。 .TP .B ENOSPC -¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¥Ç¥Ð¥¤¥¹¤Ë¿·¤·¤¤¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê -(directory entry) ¤òºîÀ®¤¹¤ë¤À¤±¤Î½½Ê¬¤ÊÍÆÎ̤¬¤Ê¤¤¡£ +ファイルが含まれているデバイスに新しいディレクトリ・エントリ +(directory entry) を作成するだけの十分な容量がない。 .TP .B ENOTDIR .I newpath -¤Ë´Þ¤Þ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬¡¢¼ÂºÝ¤Ë¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£ +に含まれるディレクトリ部分が、実際には、ディレクトリではない。 .TP .B EPERM .I newpath -¤ò´Þ¤ó¤Ç¤¤¤ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à (file system) ¤¬ -¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤ÎºîÀ®¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +を含んでいるファイル・システム (file system) が +シンボリック・リンクの作成をサポートしていない。 .TP .B EROFS .I newpath -¤¬Æɤ߹þ¤ßÀìÍѤΥե¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë¸ºß¤·¤Æ¤¤¤ë¡£ -.SH ½àµò +が読み込み専用のファイル・システムに存在している。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -.\" SVr4 ¤Ë¤Ï¾¤Ë EDQUOT, ENOSYS ¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ +.\" SVr4 には他に EDQUOT, ENOSYS エラーについての記述がある。 .\" .BR open (2) -.\" ¤ò¸«¤Æ¡¢Æ±¤¸Ì¾Á°¤Î½ÅÊ£¤È NFS ¤Ë¤Ä¤¤¤Æ»²¾È¤¹¤ë¤³¤È¡£ -.SH Ãí°Õ +.\" を見て、同じ名前の重複と NFS について参照すること。 +.SH 注意 .I oldpath -¤Ë¤Ä¤¤¤Æ¤Î¥Á¥§¥Ã¥¯¤Ï¹Ô¤Ê¤ï¤ì¤Ê¤¤¡£ +についてのチェックは行なわれない。 -symlink ¤Ë¤è¤Ã¤Æ»²¾È¤µ¤ì¤ë̾Á°¤òºï½ü¤¹¤ë¤È (¤½¤ì¤¬Â¾¤Ë¥Ï¡¼¥É¡¦¥ê¥ó¥¯ -(hard link) ¤ò»ý¤¿¤Ê¤±¤ì¤Ð) ¼ÂºÝ¤Ë¥Õ¥¡¥¤¥ë¤¬ºï½ü¤µ¤ì¤ë¡£ -¤³¤ÎÆ°ºî¤¬Ë¾¤ó¤À¤â¤Î¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢ +symlink によって参照される名前を削除すると (それが他にハード・リンク +(hard link) を持たなければ) 実際にファイルが削除される。 +この動作が望んだものでない場合は、 .BR link (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を使用すること。 +.SH 関連項目 .BR ln (1), .BR lchown (2), .BR link (2), diff --git a/release/man2/symlinkat.2 b/release/man2/symlinkat.2 index 21ecbbef..d866332a 100644 --- a/release/man2/symlinkat.2 +++ b/release/man2/symlinkat.2 @@ -27,11 +27,11 @@ .\" Translated 2006-08-29 by Yuichi SATO , LDP v2.39 .\" .TH SYMLINKAT 2 2009-12-13 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -symlinkat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÁêÂÐŪ¤Ê°ÌÃ֤˥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òºîÀ®¤¹¤ë -.SH ½ñ¼° +.SH 名前 +symlinkat \- ディレクトリファイルディスクリプタから相対的な位置にシンボリックリンクを作成する +.SH 書式 .nf -.B #include /* AT_* Äê¿ô¤ÎÄêµÁ */ +.B #include /* AT_* 定数の定義 */ .B #include .sp .BI "int symlinkat(const char *" oldpath ", int " newdirfd \ @@ -39,9 +39,9 @@ symlinkat \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR symlinkat (): @@ -49,80 +49,80 @@ glibc .ad l .RS 4 .TP 4 -Since glibc 2.10 °Ê¹ß: +Since glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR symlinkat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë°ã¤¤¤¬¤¢¤ë°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明している違いがある以外は、 .BR symlink (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .I newpath -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パスである場合、 +ファイルディスクリプタ .I newdirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( symlink (2) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスの +カレントワーキングディレクトリからの相対パスとなる)。 .I newpath -¤¬ÁêÂХѥ¹¤Ç¤¢¤ê¡¢¤«¤Ä +が相対パスであり、かつ .I newdirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I newpath -¤Ï +は .RB ( symlink (2) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .I newpath -¤¬ÀäÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ +が絶対パスである場合、 .I newdirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +は無視される。 +.SH 返り値 +成功した場合、 .BR symlinkat () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +は 0 を返す。 +エラーの場合、\-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +にはエラーを示す値が設定される。 +.SH エラー .BR symlink (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR symlinkat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .BR symlinkat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .I newdirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B ENOTDIR .I newpath -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I newdirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 +.SH バージョン .BR symlinkat () -¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ -.SH ½àµò +は Linux カーネル 2.6.16 で追加された。 +.SH 準拠 POSIX.1-2008. -.SH Ãí°Õ +.SH 注意 .BR symlinkat () -¤¬É¬ÍפÊÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が必要な理由については、 .BR openat (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を参照すること。 +.SH 関連項目 .BR openat (2), .BR symlink (2), .BR path_resolution (7), diff --git a/release/man2/sync.2 b/release/man2/sync.2 index bba5ebfa..58a83b38 100644 --- a/release/man2/sync.2 +++ b/release/man2/sync.2 @@ -40,22 +40,22 @@ .\" Updated Tue Oct 16 JST 2001 by Kentaro Shirakata .\" Updated Mon Sep 8 JST 2003 by Kentaro Shirakata .\" -.\"WORD: buffer cache ¥Ð¥Ã¥Õ¥¡¡¦¥­¥ã¥Ã¥·¥å -.\"WORD: buffers ¥Ð¥Ã¥Õ¥¡ -.\"WORD: data integrity ¥Ç¡¼¥¿¤Î´°Á´À­ +.\"WORD: buffer cache バッファ・キャッシュ +.\"WORD: buffers バッファ +.\"WORD: data integrity データの完全性 .\" .TH SYNC 2 2010-09-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sync \- ¥Ð¥Ã¥Õ¥¡¥­¥ã¥Ã¥·¥å¤ò¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤à -.SH ½ñ¼° +.SH 名前 +sync \- バッファキャッシュをディスクに書き込む +.SH 書式 .B #include .sp .B void sync(void); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR sync (): @@ -65,29 +65,29 @@ _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR sync () -¤Ï¤Þ¤º inode ¤ò¥Ð¥Ã¥Õ¥¡¤Ø½ñ¤­¹þ¤ß¡¢ -¤½¤ì¤«¤é¥Ð¥Ã¥Õ¥¡(buffer)¤ò¥Ç¥£¥¹¥¯¤Ø½ñ¤­¹þ¤à¡£ -.SH ¥¨¥é¡¼ -¤³¤Î´Ø¿ô¤Ï¾ï¤ËÀ®¸ù¤¹¤ë¡£ -.SH ½àµò +はまず inode をバッファへ書き込み、 +それからバッファ(buffer)をディスクへ書き込む。 +.SH エラー +この関数は常に成功する。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -.SH Ãí°Õ -¤µ¤Þ¤¶¤Þ¤Êɸ½àµ¬³Ê¤Ç¤Îµ¬Äê¤Ë¤·¤¿¤¬¤Ã¤Æ¡¢ -glibc 2.2.2 ¤«¤é Linux ¤Ç¤Î¥×¥í¥È¥¿¥¤¥×¤Ï¾å½Ò¤Î¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ -libc4, libc5 ¤È¡¢2.2.1 ¤Þ¤Ç¤Î glibc ¤Ç¤Ï "int sync(void)" ¤Ç¡¢ +.SH 注意 +さまざまな標準規格での規定にしたがって、 +glibc 2.2.2 から Linux でのプロトタイプは上述のようになった。 +libc4, libc5 と、2.2.1 までの glibc では "int sync(void)" で、 .BR sync () -¤Ï¾ï¤Ë 0 ¤òÊÖ¤·¤Æ¤¤¤¿¡£ -.SH ¥Ð¥° -ɸ½àµ¬³Ê (Î㤨¤Ð POSIX.1-2001) ¤Ë¤è¤ë¤È¡¢ +は常に 0 を返していた。 +.SH バグ +標準規格 (例えば POSIX.1-2001) によると、 .BR sync () -¤Ï½ñ¤­¹þ¤à¤³¤È¤òͽÄê¤Ë -ÁȤ߹þ¤à¤Î¤ß¤Ç¼ÂºÝ¤Ë½ñ¤­¹þ¤ß¤¬½ªÎ»¤¹¤ëÁ°¤ËÌá¤Ã¤Æ¤â¤è¤¤¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -°ìÊý¤Ç Linux ¤Ï¥Ð¡¼¥¸¥ç¥ó 1.3.20 ¤«¤é¤Ï½ñ¤­¹þ¤ß¤¬½ªÎ»¤¹¤ë¤Þ¤ÇÂԤġ£ -(ºÇ¶á¤Î¥Ç¥£¥¹¥¯¤ÏÂ礭¤Ê¥­¥ã¥Ã¥·¥å¤ò»ý¤Ã¤Æ¤¤¤ë¤¿¤á¡¢ - ¤³¤ì¤Ï¥Ç¡¼¥¿¤Î´°Á´À­ (data integrity) ¤Þ¤Ç¤ÏÊݾڤ·¤Æ¤¤¤Ê¤¤¡£) -.SH ´ØÏ¢¹àÌÜ +は書き込むことを予定に +組み込むのみで実際に書き込みが終了する前に戻ってもよいことになっている。 +一方で Linux はバージョン 1.3.20 からは書き込みが終了するまで待つ。 +(最近のディスクは大きなキャッシュを持っているため、 + これはデータの完全性 (data integrity) までは保証していない。) +.SH 関連項目 .BR bdflush (2), .BR fdatasync (2), .BR fsync (2), diff --git a/release/man2/sync_file_range.2 b/release/man2/sync_file_range.2 index 454079a9..77da33d2 100644 --- a/release/man2/sync_file_range.2 +++ b/release/man2/sync_file_range.2 @@ -33,156 +33,156 @@ .\" Updated 2010-04-23, Akihiro MOTOKI, LDP v3.24 .\" .TH SYNC_FILE_RANGE 2 2010-01-17 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sync_file_range \- ¥Õ¥¡¥¤¥ë¥»¥°¥á¥ó¥È¤ò¥Ç¥£¥¹¥¯¤ÈƱ´ü¤¹¤ë -.SH ½ñ¼° +.SH 名前 +sync_file_range \- ファイルセグメントをディスクと同期する +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .BI "int sync_file_range(int " fd ", off64_t " offset ", off64_t " nbytes , .BI " unsigned int " flags ); .fi -.SH ÀâÌÀ +.SH 説明 .BR sync_file_range () -¤ò»È¤¦¤È¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +を使うと、ファイルディスクリプタ .I fd -¤Ç»²¾È¤µ¤ì¤ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥Ç¥£¥¹¥¯¤È¤ÎƱ´ü¤Ë´Ø¤·¤Æ¡¢ -¤­¤áºÙ¤«¤ÊÀ©¸æ¤¬²Äǽ¤È¤Ê¤ë¡£ +で参照されるオープンされたファイルのディスクとの同期に関して、 +きめ細かな制御が可能となる。 .I offset -¤Ï¡¢Æ±´ü¤ò¹Ô¤¦¥Õ¥¡¥¤¥ë¤ÎÎΰè¤Î³«»Ï¥Ð¥¤¥È¤Ç¤¢¤ë¡£ +は、同期を行うファイルの領域の開始バイトである。 .I nbytes -¤Ë¤ÏƱ´ü¤ò¹Ô¤¦Îΰè¤ÎŤµ¤ò¥Ð¥¤¥Èñ°Ì¤Ç»ØÄꤹ¤ë¡£ +には同期を行う領域の長さをバイト単位で指定する。 .I nbytes -¤¬ 0 ¤Î¾ì¹ç¤Ï¡¢ +が 0 の場合は、 .I offset -¤«¤é¥Õ¥¡¥¤¥ëËöÈø¤Þ¤Ç¤ÎÁ´¥Ð¥¤¥È¤òƱ´ü¤¹¤ë¡£ -Ʊ´ü¤Ï¥·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥º¤Îñ°Ì¤Ç¹Ô¤ï¤ì¤ë¡£ +からファイル末尾までの全バイトを同期する。 +同期はシステムのページサイズの単位で行われる。 .I offset -¤Ï¥Ú¡¼¥¸¶­³¦¤Ë¤¢¤ï¤»¤ÆÀڤ겼¤²¤é¤ì¡¢ +はページ境界にあわせて切り下げられ、 .I (offset+nbytes-1) -¤Ï¥Ú¡¼¥¸¶­³¦¤Ë¤¢¤ï¤»¤ÆÀÚ¤ê¾å¤²¤é¤ì¤ë¡£ +はページ境界にあわせて切り上げられる。 -¥Ó¥Ã¥È¥Þ¥¹¥¯°ú¤­¿ô +ビットマスク引き数 .I flags -¤Ë¤Ï°Ê²¼¤ÎÃͤò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë: +には以下の値を指定することができる: .TP .B SYNC_FILE_RANGE_WAIT_BEFORE -²¿¤é¤«¤Î½ñ¤­¹þ¤ß¤ò¹Ô¤¦Á°¤Ë¡¢»ØÄꤵ¤ì¤¿Îΰè¤Î¥Ú¡¼¥¸¤Ç -½ñ¤­½Ð¤·¤ò¹Ô¤¦¤è¤¦¤Ë¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ë¤¹¤Ç¤ËÍ׵᤬ȯ¹Ô¤µ¤ì¤Æ¤¤¤ë -¥Ú¡¼¥¸¤Î½ñ¤­½Ð¤·¤¬Á´¤Æ´°Î»¤¹¤ë¤Î¤òÂԤġ£ +何らかの書き込みを行う前に、指定された領域のページで +書き出しを行うようにデバイスドライバにすでに要求が発行されている +ページの書き出しが全て完了するのを待つ。 .TP .B SYNC_FILE_RANGE_WRITE -»ØÄꤵ¤ì¤¿Îΰè¤Î¥Ú¡¼¥¸¤Ç¡¢½ñ¤­½Ð¤·Í׵᤬ȯ¹Ô¤µ¤ì¤Æ¤¤¤Ê¤¤ -Á´¤Æ¤Î dirty (¥­¥ã¥Ã¥·¥å¤À¤±¤¬Êѹ¹¤µ¤ì¤Æ¤¤¤ë) ¥Ú¡¼¥¸¤Î -½ñ¤­½Ð¤·¤ò³«»Ï¤¹¤ë¡£ -¥ê¥¯¥¨¥¹¥È¥­¥å¡¼¤ÎÂ礭¤µ¤è¤ê¿¤¯½ñ¤­¹þ¤â¤¦¤È¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ -¤³¤Î½èÍý¤ÏÄä»ß (block) ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +指定された領域のページで、書き出し要求が発行されていない +全ての dirty (キャッシュだけが変更されている) ページの +書き出しを開始する。 +リクエストキューの大きさより多く書き込もうとした場合には、 +この処理は停止 (block) する可能性がある点に注意すること。 .TP .B SYNC_FILE_RANGE_WAIT_AFTER -²¿¤é¤«¤Î½ñ¤­¹þ¤ß¸å¤Ë¡¢»ØÄꤵ¤ì¤¿Îΰè¤ÎÁ´¤Æ¤Î¥Ú¡¼¥¸¤Î -½ñ¤­½Ð¤·¤¬¹Ô¤ï¤ì¤ë¤Î¤òÂԤġ£ +何らかの書き込み後に、指定された領域の全てのページの +書き出しが行われるのを待つ。 .PP .I flags -¤Ë 0 ¤ò»ØÄꤷ¤¿¾ì¹ç¡¢²¿¤â¤·¤Ê¤¤¤³¤È¤òɽ¤¹¡£ -.SS ·Ù¹ð -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÈó¾ï¤Ë´í¸±¤Ç¤¢¤ê¡¢ -°Ü¿¢À­¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¤³¤ì¤é¤ÎÁàºî¤Ç¤Ï¤É¤ì¤â¥Õ¥¡¥¤¥ë¤Î¥á¥¿¥Ç¡¼¥¿¤Î½ñ¤­½Ð¤·¤ò¹Ô¤ï¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤è¤êºîÀ®ºÑ¤ß¤Î¥Ç¥£¥¹¥¯¥Ö¥í¥Ã¥¯¤Î -¾å½ñ¤­¤Î¼Â¹Ô¤¬³Î¼Â¤Ë¹Ô¤ï¤ì¤Ê¤¤¸Â¤ê¡¢¥¯¥é¥Ã¥·¥å¤Î¸å¤Ç¤â¥Ç¡¼¥¿¤¬ -ÍøÍѤǤ­¤ëÊݾڤϤʤ¤¡£ -½ñ¤­¹þ¤ß¤¬¾å½ñ¤­¤À¤±¤Ç¤¢¤ë¤«¤òÃΤ뤿¤á¤Î¥æ¡¼¥¶¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¸ºß¤·¤Ê¤¤¡£ +に 0 を指定した場合、何もしないことを表す。 +.SS 警告 +このシステムコールは非常に危険であり、 +移植性が必要なプログラムで使用すべきではない。 +これらの操作ではどれもファイルのメタデータの書き出しを行わない。 +したがって、アプリケーションにより作成済みのディスクブロックの +上書きの実行が確実に行われない限り、クラッシュの後でもデータが +利用できる保証はない。 +書き込みが上書きだけであるかを知るためのユーザインタフェースは存在しない。 .RI ( btrfs -¤Ê¤É¤Î) copy-on-write Æ°ºî¤ò»È¤Ã¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -´û¸¤Î³ä¤êÅö¤ÆºÑ¤ß¤Î¥Ö¥í¥Ã¥¯¤ËÂФ¹¤ë¾å½ñ¤­¼«ÂΤ¬¤Ç¤­¤Ê¤¤¡£ -Á°¤â¤Ã¤Æ³ä¤êÅö¤Æ¤é¤ì¤¿Îΰè¤Ë½ñ¤­¹þ¤ß¤ò¹Ô¤¦¾ì¹ç¡¢ -¿¤¯¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Ï block allocator ¤Ø¤Î½ñ¤­¹þ¤ß¤âɬÍפȤʤ뤬¡¢ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï block allocator ¤Î¥Ç¥£¥¹¥¯¤Ø¤ÎƱ´ü¤ò¹Ô¤ï¤Ê¤¤¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥Ç¥£¥¹¥¯½ñ¤­¹þ¤ß¥­¥ã¥Ã¥·¥å¤Î¥Õ¥é¥Ã¥·¥å¤ò -¹Ô¤ï¤Ê¤¤¤Î¤Ç¡¢´øȯÀ­¤Î¥Ç¥£¥¹¥¯½ñ¤­¹þ¤ß¥­¥ã¥Ã¥·¥å¤ò»È¤Ã¤¿¥·¥¹¥Æ¥à¤Ç¤Ï -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤Ï¥Ç¡¼¥¿¤Î°ì´ÓÀ­¤ò³ÎÊݤǤ­¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¡£ -.SS ¾ÜºÙ +などの) copy-on-write 動作を使ったファイルシステムでは、 +既存の割り当て済みのブロックに対する上書き自体ができない。 +前もって割り当てられた領域に書き込みを行う場合、 +多くのファイルシステムでは block allocator への書き込みも必要となるが、 +このシステムコールは block allocator のディスクへの同期を行わない。 +このシステムコールはディスク書き込みキャッシュのフラッシュを +行わないので、揮発性のディスク書き込みキャッシュを使ったシステムでは +このシステムコールではデータの一貫性を確保できないことになる。 +.SS 詳細 .B SYNC_FILE_RANGE_WAIT_BEFORE -¤È +と .B SYNC_FILE_RANGE_WAIT_AFTER -¤Ï I/O ¥¨¥é¡¼¤ä +は I/O エラーや .B ENOSPC -¾õÂÖ¤ò¸¡½Ð¤·¡¢¸Æ¤Ó½Ð¤·¸µ¤Ë¤³¤ì¤é¤Î¾ðÊó¤òÊÖ¤¹¡£ +状態を検出し、呼び出し元にこれらの情報を返す。 .I flags -¤ÎÌò¤ËΩ¤Ä¥Ó¥Ã¥È¤ÎÁȤ߹ç¤ï¤»¤ò°Ê²¼¤Ë¼¨¤¹: +の役に立つビットの組み合わせを以下に示す: .TP .B SYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE -»ØÄꤵ¤ì¤¿ÈÏ°ÏÆâ¤Î¥Ú¡¼¥¸¤Ç¡¢ +指定された範囲内のページで、 .BR sync_file_range () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿ºÝ¤Ë dirty ¤Ç¤¢¤Ã¤¿Á´¤Æ¤Î¥Ú¡¼¥¸¤¬¡¢ -³Î¼Â¤Ë½ñ¤­½Ð¤·ÂоݤȤʤë¤è¤¦¤Ë¤¹¤ë¡£ -¤³¤ì¤Ï¡¢start-write-for-data-integrity Áàºî -(¥Ç¡¼¥¿´°Á´À­³ÎÊݤΤ¿¤á¤Î½ñ¤­¹þ¤ß³«»Ï¤ÎÁàºî) ¤Ç¤¢¤ë¡£ +が呼び出された際に dirty であった全てのページが、 +確実に書き出し対象となるようにする。 +これは、start-write-for-data-integrity 操作 +(データ完全性確保のための書き込み開始の操作) である。 .TP .B SYNC_FILE_RANGE_WRITE -»ØÄꤵ¤ì¤¿ÈÏ°ÏÆâ¤Î¥Ú¡¼¥¸¤Ç¡¢¸½ºß½ñ¤­½Ð¤·Ãæ¤Ç¤Ê¤¤Á´¤Æ¤Î dirty ¥Ú¡¼¥¸¤Î -½ñ¤­½Ð¤·¤ò³«»Ï¤¹¤ë¡£¤³¤ì¤ÏÈóƱ´ü¤Î¥Ç¥£¥¹¥¯¤Ø¤Î¥Õ¥é¥Ã¥·¥å (flush-to-disk) -Áàºî¤Ç¤¢¤ë¡£¥Ç¡¼¥¿´°Á´À­³ÎÊݤ¬É¬ÍפÊÁàºî¤È¤·¤Æ¤ÏŬÀڤǤϤʤ¤¡£ +指定された範囲内のページで、現在書き出し中でない全ての dirty ページの +書き出しを開始する。これは非同期のディスクへのフラッシュ (flush-to-disk) +操作である。データ完全性確保が必要な操作としては適切ではない。 .TP .BR SYNC_FILE_RANGE_WAIT_BEFORE " (or " SYNC_FILE_RANGE_WAIT_AFTER ) -»ØÄꤵ¤ì¤¿ÈÏ°ÏÆâ¤ÎÁ´¤Æ¤Î¥Ú¡¼¥¸¤Î½ñ¤­½Ð¤·¤Î´°Î»¤òÂԤġ£ -¤³¤Î¥Õ¥é¥°¤Ï¡¢Á°¤Ë¹Ô¤ï¤ì¤¿Áàºî +指定された範囲内の全てのページの書き出しの完了を待つ。 +このフラグは、前に行われた操作 .B SYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE -¤Î¸å¤Ë»ÈÍѤǤ­¡¢¤³¤ÎÁàºî¤Î´°Î»¤òÂÔ¤Á¡¢·ë²Ì¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +の後に使用でき、この操作の完了を待ち、結果を取得することができる。 .TP .B SYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE | \ SYNC_FILE_RANGE_WAIT_AFTER -¤³¤ì¤Ï write-for-data-integrity Áàºî -(¥Ç¡¼¥¿´°Á´À­³ÎÊݤΤ¿¤á¤Î½ñ¤­¹þ¤ß) ¤Ç¤¢¤ê¡¢»ØÄꤵ¤ì¤¿ÈÏ°ÏÆâ¤Î¡¢ +これは write-for-data-integrity 操作 +(データ完全性確保のための書き込み) であり、指定された範囲内の、 .BR sync_file_range () -¤¬¸Æ¤Ð¤ì¤¿»þÅÀ¤Ç dirty ¤ÊÁ´¤Æ¤Î¥Ú¡¼¥¸¤¬ -¥Ç¥£¥¹¥¯¤Ë³ÊǼ¤µ¤ì¤ë¤³¤È¤¬Êݾڤµ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤Î¾ì¹ç¡¢ +が呼ばれた時点で dirty な全てのページが +ディスクに格納されることが保証される。 +.SH 返り値 +成功の場合、 .BR sync_file_range () -¤Ï 0 ¤òÊÖ¤¹¡£¼ºÇԤξì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。失敗の場合、\-1 を返し、 .I error -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値を設定する。 +.SH エラー .TP .B EBADF .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ +が有効なファイルディスクリプタではない。 .TP .B EINVAL .I flags -¤ËÉÔÀµ¤Ê¥Ó¥Ã¥È¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¡£¤Þ¤¿¤Ï +に不正なビットが指定されている。または .I offset -¤« +か .I nbytes -¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +が不正である。 .TP .B EIO -I/O ¥¨¥é¡¼¡£ +I/O エラー。 .TP .B ENOMEM -¥á¥â¥êÉÔ­¤Ç¤¢¤ë¡£ +メモリ不足である。 .TP .B ENOSPC -¥Ç¥£¥¹¥¯ÎΰèÉÔ­¤Ç¤¢¤ë¡£ +ディスク領域不足である。 .TP .B ESPIPE .I fd -¤¬¡¢Ä̾ï¤Î¥Õ¥¡¥¤¥ë¡¢¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¡¢¥Ç¥£¥ì¥¯¥È¥ê¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯ -°Ê³°¤Î¤â¤Î¤ò»Ø¤·¤Æ¤¤¤ë¡£ +が、通常のファイル、ブロックデバイス、ディレクトリ、シンボリックリンク +以外のものを指している。 .\" FIXME . (bug?) Actually, how can 'fd' refer to a symbolic link (S_ISLNK)? .\" (In userspace at least) it isn't possible to obtain a file descriptor .\" for a symbolic link. -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .BR sync_file_range () -¤Ï¥«¡¼¥Í¥ë 2.6.17 ¤Ç Linux ¤ËÅо줷¤¿¡£ -.SH ½àµò -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ê¡¢ -°Ü¿¢À­¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤòÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +はカーネル 2.6.17 で Linux に登場した。 +.SH 準拠 +このシステムコールは Linux 独自であり、 +移植性が必要なプログラムでは使用を避けるべきである。 +.SH 関連項目 .BR fdatasync (2), .BR fsync (2), .BR msync (2), diff --git a/release/man2/syscall.2 b/release/man2/syscall.2 index fdf35c4e..0788557a 100644 --- a/release/man2/syscall.2 +++ b/release/man2/syscall.2 @@ -41,35 +41,35 @@ .\" by Yuichi SATO .\" .TH SYSCALL 2 2007-07-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -syscall \- ´ÖÀÜ¥·¥¹¥Æ¥à¥³¡¼¥ë -.SH ½ñ¼° +.SH 名前 +syscall \- 間接システムコール +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .BR "#include " "/* For SYS_xxx definitions */" .BI "int syscall(int " number ", ...);" .fi -.SH ÀâÌÀ +.SH 説明 .BR syscall () -¤Ï +は .I number -¤Ç»ØÄꤵ¤ì¤¿¥¢¥»¥ó¥Ö¥ê¸À¸ì¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¡¢ -»ØÄꤵ¤ì¤¿°ú¤­¿ô¤ò¤Ä¤±¤Æ¼Â¹Ô¤¹¤ë¡£ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥·¥ó¥Ü¥ëÄê¿ô¤Ï¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë +で指定されたアセンブリ言語インターフェースのシステムコールを、 +指定された引き数をつけて実行する。 +システムコールのシンボル定数はヘッダファイル .I -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ -.SH ÊÖ¤êÃÍ -ÊÖ¤êÃͤϸƤӽФµ¤ì¤¿¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤è¤Ã¤ÆÄêµÁ¤µ¤ì¤ë¡£ -°ìÈ̤ˡ¢ÊÖ¤êÃÍ 0 ¤ÏÀ®¸ù¤òɽ¤¹¡£ -\-1 ¤Ï¥¨¥é¡¼¤òɽ¤·¡¢¥¨¥é¡¼¥³¡¼¥É¤Ï +に書かれている。 +.SH 返り値 +返り値は呼び出されたシステムコールによって定義される。 +一般に、返り値 0 は成功を表す。 +\-1 はエラーを表し、エラーコードは .I errno -¤ËÆþ¤ì¤é¤ì¤ë¡£ -.SH Ãí°Õ +に入れられる。 +.SH 注意 .BR syscall () -¤Ï 4BSD ¤ÇºÇ½é¤ËÅо줷¤¿¡£ -.SH Îã +は 4BSD で最初に登場した。 +.SH 例 .nf #define _GNU_SOURCE #include @@ -84,7 +84,7 @@ main(int argc, char *argv[]) tid = syscall(SYS_gettid); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR _syscall (2), .BR intro (2), .BR syscalls (2) diff --git a/release/man2/syscalls.2 b/release/man2/syscalls.2 index ce9873fa..a5cf9ec1 100644 --- a/release/man2/syscalls.2 +++ b/release/man2/syscalls.2 @@ -35,73 +35,73 @@ .\" Updated 2008-11-09, Akihiro MOTOKI , LDP v3.13 .\" .TH SYSCALLS 2 2010-11-06 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -syscalls \- Linux ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë -.SH ½ñ¼° -Linux ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¡£ -.SH ÀâÌÀ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤È Linux ¥«¡¼¥Í¥ë¤È¤Î´Ö¤Î -´ðËÜŪ¤Ê¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ç¤¢¤ë¡£ -.SS ¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¥é¥¤¥Ö¥é¥ê¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï°ìÈ̤ˤÏľÀܵ¯Æ°¤µ¤ì¤º¡¢ -glibc (¤ä¾¤Î²¿¤é¤«¤Î¥é¥¤¥Ö¥é¥ê) ·Ðͳ¤Çµ¯Æ°¤µ¤ì¤ë¡£ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎľÀܵ¯Æ°¤Ë¤Ä¤¤¤Æ¤Ï¡¢¾ÜºÙ¤Ï +.SH 名前 +syscalls \- Linux のシステムコール +.SH 書式 +Linux のシステムコール。 +.SH 説明 +システムコールは、アプリケーションと Linux カーネルとの間の +基本的なインタフェースである。 +.SS システムコールとライブラリのラッパー関数 +システムコールは一般には直接起動されず、 +glibc (や他の何らかのライブラリ) 経由で起動される。 +システムコールの直接起動については、詳細は .BR intro (2) -¤ò»²¾È¤Î¤³¤È¡£ -¤¤¤Ä¤â¤È¤¤¤¦Ìõ¤Ç¤Ï¤Ê¤¤¤¬¡¢ÉáÄ̤ϡ¢¥é¥Ã¥Ñ¡¼´Ø¿ô¤Î̾Á°¤Ï¤½¤Î´Ø¿ô¤¬µ¯Æ°¤¹¤ë -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î̾Á°¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -Î㤨¤Ð¡¢glibc ¤Ë¤Ï +を参照のこと。 +いつもという訳ではないが、普通は、ラッパー関数の名前はその関数が起動する +システムコールの名前と同じである。 +例えば、glibc には .BR truncate () -¤È¤¤¤¦´Ø¿ô¤¬¤¢¤ê¡¢¤³¤Î´Ø¿ô¤Ï "truncate" ¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤¹¤ë¡£ +という関数があり、この関数は "truncate" システムコールを起動する。 -¤¿¤¤¤Æ¤¤¤Î¾ì¹ç¡¢glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¤«¤Ê¤ê´Êñ¤Ê¤â¤Î¤Ç¡¢ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤¹¤ëÁ°¤Ë°ú¤­¿ô¤òŬÀڤʥ쥸¥¹¥¿¤Ë¥³¥Ô¡¼¤·¡¢ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Ê֤俸å¤Ï +たいていの場合、glibc のラッパー関数はかなり簡単なもので、 +システムコールを起動する前に引き数を適切なレジスタにコピーし、 +システムコールが返った後は .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë°Ê³°¤Ï¡¢¤Û¤È¤ó¤É½èÍý¤ò¹Ô¤ï¤Ê¤¤ -(¤³¤ì¤é¤Ï¡¢¥é¥Ã¥Ñ¡¼´Ø¿ô¤¬Ä󶡤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë -¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤¹¤ë¤Î¤Ë»ÈÍѤ¹¤ë +を適切に設定する以外は、ほとんど処理を行わない +(これらは、ラッパー関数が提供されていない場合に +システムコールを起動するのに使用する .BR syscall (2) -¤Ë¤è¤ê¼Â¹Ô¤µ¤ì¤ë½èÍý¤ÈƱ¤¸¤Ç¤¢¤ë)¡£ -[Ãí°Õ] ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¼ºÇÔ¤ò¼¨¤¹¤Î¤ËÉé¤Î¥¨¥é¡¼ÈÖ¹æ¤ò¸Æ¤Ó½Ð¤·¸µ¤ËÊÖ¤¹¡£ -¼ºÇÔ¤¬µ¯¤³¤Ã¤¿ºÝ¤Ë¤Ï¡¢¥é¥Ã¥Ñ¡¼´Ø¿ô¤ÏÊÖ¤µ¤ì¤¿¥¨¥é¡¼ÈÖ¹æ¤òȿž¤·¤Æ -(Àµ¤ÎÃͤËÊÑ´¹¤·)¡¢¤½¤ì¤ò +により実行される処理と同じである)。 +[注意] システムコールは失敗を示すのに負のエラー番号を呼び出し元に返す。 +失敗が起こった際には、ラッパー関数は返されたエラー番号を反転して +(正の値に変換し)、それを .I errno -¤Ë¥³¥Ô¡¼¤·¡¢¥é¥Ã¥Ñ¡¼´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¸µ¤Ë \-1 ¤òÊÖ¤¹¡£ +にコピーし、ラッパー関数の呼び出し元に \-1 を返す。 -¤·¤«¤·¤Ê¤¬¤é¡¢»þ¤Ë¤Ï¡¢¥é¥Ã¥Ñ¡¼´Ø¿ô¤¬¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤¹¤ëÁ°¤Ë -²¿¤é¤«¤ÎÄɲäνèÍý¤ò¹Ô¤¦¾ì¹ç¤¬¤¢¤ë¡£ -Î㤨¤Ð¡¢¸½ºß¡¢ -Æó¤Ä¤Î´ØÏ¢¤¹¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë +しかしながら、時には、ラッパー関数がシステムコールを起動する前に +何らかの追加の処理を行う場合がある。 +例えば、現在、 +二つの関連するシステムコール .BR truncate (2) -¤È +と .BR truncate64 (2) -¤¬¤¢¤ê¡¢glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô +があり、glibc のラッパー関数 .BR truncate () -¤Ï¡¢¥«¡¼¥Í¥ë¤¬¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¤¦¤Á¤É¤Á¤é¤òÄ󶡤·¤Æ¤¤¤ë¤«¤ò¥Á¥§¥Ã¥¯¤·¡¢ -¤É¤Á¤é¤òºÎÍѤ¹¤ë¤«¤ò·èÄꤹ¤ë¡£ -.SS ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥ê¥¹¥È -°Ê²¼¤Ï¡¢¤Û¤È¤ó¤É¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë¶¦Ä̤¹¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥ê¥¹¥È¤Ç¤¢¤ë¡£ -¤³¤Î¥ê¥¹¥È¤Ç¡¢ +は、カーネルがこれらのシステムコールのうちどちらを提供しているかをチェックし、 +どちらを採用するかを決定する。 +.SS システムコールのリスト +以下は、ほとんどのプラットフォームに共通するシステムコールのリストである。 +このリストで、 .I Kernel -¤ÎÎó¤Ï¡¢Linux 2.2 °Ê¹ß¤ÇÅо줷¤¿¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ -Åо줷¤¿¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó¤ò¼¨¤¹¡£ -°Ê²¼¤Ë¾ÜºÙ¤ÊÀâÌÀ¤òµ­¤¹¡£ +の列は、Linux 2.2 以降で登場したシステムコールが +登場したカーネルバージョンを示す。 +以下に詳細な説明を記す。 .IP * 3 -¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó¤¬¤Ê¤¤¾ì¹ç¡¢¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï -¥«¡¼¥Í¥ë 1.0 ¤â¤·¤¯¤Ï¤½¤ì°ÊÁ°¤ËÅо줷¤¿¡£ +カーネルバージョンがない場合、そのシステムコールは +カーネル 1.0 もしくはそれ以前に登場した。 .IP * -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë "1.2" ¤È½ñ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤ª¤½¤é¤¯¥Ð¡¼¥¸¥ç¥ó 1.1.x ¤Î¥«¡¼¥Í¥ë¤ÇÅо줷¡¢ -°ÂÄêÈǤΥ«¡¼¥Í¥ë¤Ç¤Ï 1.2 ¤Ç½é¤á¤ÆÅо줷¤¿¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -(¥Ð¡¼¥¸¥ç¥ó 1.2 ¤Î¥«¡¼¥Í¥ë¤Ï¡¢¥«¡¼¥Í¥ë 1.0.6 ¤«¤éʬ´ô¤·¡¢ -¥Ð¡¼¥¸¥ç¥ó 1.1.x ¤ÎÉÔ°ÂÄêÈǤΥ«¡¼¥Í¥ë·ÏÎó¤È¤·¤Æ³«È¯¤µ¤ì¤¿¡£) +システムコールに "1.2" と書かれている場合、 +そのシステムコールがおそらくバージョン 1.1.x のカーネルで登場し、 +安定版のカーネルでは 1.2 で初めて登場したことを意味する。 +(バージョン 1.2 のカーネルは、カーネル 1.0.6 から分岐し、 +バージョン 1.1.x の不安定版のカーネル系列として開発された。) .IP * -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë "2.0" ¤È½ñ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤ª¤½¤é¤¯¥Ð¡¼¥¸¥ç¥ó 1.3.x ¤Î¥«¡¼¥Í¥ë¤ÇÅо줷¡¢ -°ÂÄêÈǤΥ«¡¼¥Í¥ë¤Ç¤Ï 2.0 ¤Ç½é¤á¤ÆÅо줷¤¿¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -(¥Ð¡¼¥¸¥ç¥ó 2.0 ¤Î¥«¡¼¥Í¥ë¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó 1.2.10 ¤¢¤¿¤ê¤Î¥«¡¼¥Í¥ë 1.2.x -¤«¤éʬ´ô¤·¡¢¥Ð¡¼¥¸¥ç¥ó 1.3.x ¤ÎÉÔ°ÂÄêÈǤΥ«¡¼¥Í¥ë·ÏÎó¤È¤·¤Æ³«È¯¤µ¤ì¤¿¡£) +システムコールに "2.0" と書かれている場合、 +そのシステムコールがおそらくバージョン 1.3.x のカーネルで登場し、 +安定版のカーネルでは 2.0 で初めて登場したことを意味する。 +(バージョン 2.0 のカーネルは、バージョン 1.2.10 あたりのカーネル 1.2.x +から分岐し、バージョン 1.3.x の不安定版のカーネル系列として開発された。) .\" Was kernel 2.0 started from a branch of 1.2.10? .\" At least from the timestamps of the tarballs of .\" of 1.2.10 and 1.3.0, that's how it looks, but in @@ -112,39 +112,39 @@ glibc ( .\" than those in 1.2.10. All of this suggests .\" that there might not have been a clean branch point. .IP * -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë "2.2" ¤È½ñ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤ª¤½¤é¤¯¥Ð¡¼¥¸¥ç¥ó 2.1.x ¤Î¥«¡¼¥Í¥ë¤ÇÅо줷¡¢ -°ÂÄêÈǤΥ«¡¼¥Í¥ë¤Ç¤Ï 2.2.0 ¤Ç½é¤á¤ÆÅо줷¤¿¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -(¥Ð¡¼¥¸¥ç¥ó 2.2 ¤Î¥«¡¼¥Í¥ë¤Ï¡¢¥«¡¼¥Í¥ë 2.0.21 ¤«¤éʬ´ô¤·¡¢ -¥Ð¡¼¥¸¥ç¥ó 2.1.x ¤ÎÉÔ°ÂÄêÈǤΥ«¡¼¥Í¥ë·ÏÎó¤È¤·¤Æ³«È¯¤µ¤ì¤¿¡£) +システムコールに "2.2" と書かれている場合、 +そのシステムコールがおそらくバージョン 2.1.x のカーネルで登場し、 +安定版のカーネルでは 2.2.0 で初めて登場したことを意味する。 +(バージョン 2.2 のカーネルは、カーネル 2.0.21 から分岐し、 +バージョン 2.1.x の不安定版のカーネル系列として開発された。) .IP * -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë "2.4" ¤È½ñ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤ª¤½¤é¤¯¥Ð¡¼¥¸¥ç¥ó 2.3.x ¤Î¥«¡¼¥Í¥ë¤ÇÅо줷¡¢ -°ÂÄêÈǤΥ«¡¼¥Í¥ë¤Ç¤Ï 2.4.0 ¤Ç½é¤á¤ÆÅо줷¤¿¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -(¥Ð¡¼¥¸¥ç¥ó 2.4 ¤Î¥«¡¼¥Í¥ë¤Ï¡¢¥«¡¼¥Í¥ë 2.2.8 ¤«¤éʬ´ô¤·¡¢ -¥Ð¡¼¥¸¥ç¥ó 2.3.x ¤ÎÉÔ°ÂÄêÈǤΥ«¡¼¥Í¥ë·ÏÎó¤È¤·¤Æ³«È¯¤µ¤ì¤¿¡£) +システムコールに "2.4" と書かれている場合、 +そのシステムコールがおそらくバージョン 2.3.x のカーネルで登場し、 +安定版のカーネルでは 2.4.0 で初めて登場したことを意味する。 +(バージョン 2.4 のカーネルは、カーネル 2.2.8 から分岐し、 +バージョン 2.3.x の不安定版のカーネル系列として開発された。) .IP * -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë "2.6" ¤È½ñ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤ª¤½¤é¤¯¥Ð¡¼¥¸¥ç¥ó 2.5.x ¤Î¥«¡¼¥Í¥ë¤ÇÅо줷¡¢ -°ÂÄêÈǤΥ«¡¼¥Í¥ë¤Ç¤Ï 2.6.0 ¤Ç½é¤á¤ÆÅо줷¤¿¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -(¥Ð¡¼¥¸¥ç¥ó 2.6 ¤Î¥«¡¼¥Í¥ë¤Ï¡¢¥«¡¼¥Í¥ë 2.4.15 ¤«¤éʬ´ô¤·¡¢ -¥Ð¡¼¥¸¥ç¥ó 2.5.x ¤ÎÉÔ°ÂÄêÈǤΥ«¡¼¥Í¥ë·ÏÎó¤È¤·¤Æ³«È¯¤µ¤ì¤¿¡£) +システムコールに "2.6" と書かれている場合、 +そのシステムコールがおそらくバージョン 2.5.x のカーネルで登場し、 +安定版のカーネルでは 2.6.0 で初めて登場したことを意味する。 +(バージョン 2.6 のカーネルは、カーネル 2.4.15 から分岐し、 +バージョン 2.5.x の不安定版のカーネル系列として開発された。) .IP * -¥«¡¼¥Í¥ë 2.6.0 ¤«¤é³«È¯¥â¥Ç¥ë¤ÏÊѹ¹¤µ¤ì¡¢ -¿·¤·¤¤¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¸Ä¡¹¤Î 2.6.x ¤Î¥ê¥ê¡¼¥¹¤Ç¤âÅо줹¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ -¤³¤Î¾ì¹ç¡¢¥ê¥¹¥È¤Ç¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Åо줷¤¿ -¸·Ì©¤Ê¥Ð¡¼¥¸¥ç¥óÈֹ椬µ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ +カーネル 2.6.0 から開発モデルは変更され、 +新しいシステムコールが個々の 2.6.x のリリースでも登場するようになった。 +この場合、リストでは、システムコールが登場した +厳密なバージョン番号が記載されている。 .IP * -Á°¤Î°ÂÄêÈÇ¥«¡¼¥Í¥ë·ÏÎ󤫤éʬ´ô¤·¤¿¸å¤Ë°ÂÄêÈÇ¥«¡¼¥Í¥ë·ÏÎó¤Ë¥·¥¹¥Æ¥à¥³¡¼¥ë -¤¬Äɲ䵤줿¾ì¹ç¡¢°ÊÁ°¤Î°ÂÄêÈÇ¥«¡¼¥Í¥ë·ÏÎó¤Ë¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ -°Ü¿¢ (backport) ¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ -Î㤨¤Ð¡¢2.6.x ¤ÇÅо줷¤¿¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¤¤¤¯¤Ä¤«¤Ï¡¢ -2.4.15 °Ê¹ß¤Î 2.4.x ¥ê¥ê¡¼¥¹¤Ë¤â backport ¤µ¤ì¤¿¡£ -¤³¤Î¾ì¹ç¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Åо줷¤¿¥Ð¡¼¥¸¥ç¥ó¤È¤·¤Æ¡¢ -ξÊý¤Î°ÂÄêÈÇ·ÏÎó¤Î¥Ð¡¼¥¸¥ç¥ó¤¬µ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ +前の安定版カーネル系列から分岐した後に安定版カーネル系列にシステムコール +が追加された場合、以前の安定版カーネル系列にそのシステムコールが +移植 (backport) されることがある。 +例えば、2.6.x で登場したシステムコールのいくつかは、 +2.4.15 以降の 2.4.x リリースにも backport された。 +この場合、システムコールが登場したバージョンとして、 +両方の安定版系列のバージョンが記載されている。 .PP -¥«¡¼¥Í¥ë 2.6.33 ¤ÇÍøÍѲÄǽ¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥ê¥¹¥È¤ò°Ê²¼¤Ë¼¨¤¹ -(¤½¤ì°ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤À¤±ÍøÍѲÄǽ¤Ê¤â¤Î¤â¾¯¿ô¤À¤¬´Þ¤Þ¤ì¤ë): +カーネル 2.6.33 で利用可能なシステムコールのリストを以下に示す +(それ以前のカーネルでだけ利用可能なものも少数だが含まれる): .\" .\" Looking at scripts/checksyscalls.sh in the kernel source is .\" instructive about i386 specifics. @@ -579,19 +579,19 @@ l l l. \fBwritev\fP(2) 2.0 .TE .PP -i386 ¤ò´Þ¤à¿¤¯¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï¡¢¥½¥±¥Ã¥È´ØÏ¢¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï -(glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤ò²ð¤·¤Æ¤À¤¬) ¤¹¤Ù¤Æ +i386 を含む多くのプラットフォームでは、ソケット関連のシステムコールは +(glibc のラッパー関数を介してだが) すべて .BR socketcall (2) -·Ðͳ¤Ë¿½Å¤µ¤ì¤Æ¤¤¤ë¡£ -ƱÍͤˡ¢System V IPC ´ØÏ¢¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +経由に多重されている。 +同様に、System V IPC 関連のシステムコールは .BR ipc (2) -·Ðͳ¤Ë¿½Å¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -°Ê²¼¤ÎÅÀ¤Ëα°Õ¤¹¤ë¤³¤È: +経由に多重されている。 +.SH 注意 +以下の点に留意すること: .IP * 3 -°Ê²¼¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ -¥·¥¹¥Æ¥à¥³¡¼¥ë¡¦¥Æ¡¼¥Ö¥ë¤Ë¥¹¥í¥Ã¥È¤¬Í½Ì󤵤ì¤Æ¤¤¤ë¤¬¡¢ -ɸ½à¤Î¥«¡¼¥Í¥ë¤Ë¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤: +以下のシステムコールは、 +システムコール・テーブルにスロットが予約されているが、 +標準のカーネルには実装されていない: .BR afs_syscall (2), \" __NR_afs_syscall is 53 on Linux 2.6.22/i386 .BR break (2), \" __NR_break is 17 on Linux 2.6.22/i386 .BR ftime (2), \" __NR_ftime is 35 on Linux 2.6.22/i386 @@ -613,180 +613,180 @@ i386 .BR ulimit (2), \" __NR_ulimit is 58 on Linux 2.6.22/i386 .BR vserver (2) \" __NR_vserver is 273 on Linux 2.6.22/i386 .RB ( unimplemented (2) -¤â»²¾È)¡£ -¤·¤«¤·¡¢ +も参照)。 +しかし、 .BR ftime (3), .BR profil (3), .BR ulimit (3) -¤Ï¥é¥¤¥Ö¥é¥ê¡¦¥ë¡¼¥Á¥ó¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +はライブラリ・ルーチンとして実装されている。 .BR phys (2) -ÍѤξì½ê¤Ï 2.1.116 °Ê¹ß¤Ç¤Ï +用の場所は 2.1.116 以降では .BR umount (2) -ÍѤ˻ÈÍѤµ¤ì¤Æ¤¤¤ë; -¾­Íè¤Ë¤ª¤¤¤Æ¤â +用に使用されている; +将来においても .BR phys (2) -¤Ï¼ÂÁõ¤µ¤ì¤Ê¤¤¡£ +は実装されない。 .IP * .BR getpmsg (2) -¤È +と .BR putpmsg (2) -¤Ï¡¢¥¹¥È¥ê¡¼¥àÂбþ¤Î¥Ñ¥Ã¥Á¤¬Åö¤Æ¤é¤ì¤¿¥«¡¼¥Í¥ëÍѤΤâ¤Î¤Ç¡¢ -ɸ½à¤Î¥«¡¼¥Í¥ë¤Ë¸ºß¤¹¤ë¤³¤È¤Ïº£¸å¤â¤Ê¤¤¡£ +は、ストリーム対応のパッチが当てられたカーネル用のもので、 +標準のカーネルに存在することは今後もない。 .\" The security call is for future use. .PP -¤¿¤¤¤Æ¤¤¤Ï¡¢ +たいていは、 .I /usr/include/asm/unistd.h -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëÈÖ¹æ __NR_xxx ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥³¡¼¥É¤Ï¡¢ -¥«¡¼¥Í¥ë¡¦¥½¡¼¥¹¤Î +で定義されている番号 __NR_xxx のシステムコールのコードは、 +カーネル・ソースの .IR sys_xxx () -¤È¤¤¤¦¥ë¡¼¥Á¥ó¤Ë½ñ¤«¤ì¤Æ¤¤¤ë -(i386 ¤Ë¤ª¤±¤ë¼Â¹Ô¥Æ¡¼¥Ö¥ë¤Ï +というルーチンに書かれている +(i386 における実行テーブルは .I /usr/src/linux/arch/i386/kernel/entry.S -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë)¡£ -¤·¤«¤·¤³¤ì¤Ë¤Ï¿¤¯¤ÎÎã³°¤¬¤¢¤ë¡£¸Å¤¤¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¿·ÈǤËÃÖ¤­´¹¤¨¤é¤ì¤Æ -¤­¤¿¤¬¡¢¤³¤ÎÃÖ¤­´¹¤¨¤Ï¤¢¤Þ¤êÂηÏΩ¤Æ¤Æ¹Ô¤ï¤ì¤ÆÍè¤Ê¤«¤Ã¤¿¤«¤é¤Ç¤¢¤ë¡£ -parisc, sparc, sparc64, alpha ¤È¤¤¤Ã¤¿¥×¥í¥×¥ê¥¨¥¿¥ê OS ¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó -µ¡Ç½¤¬¤¢¤ë¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï¡¢Â¿¤¯¤ÎÄɲå·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤¢¤ë¡£ -mips64 ¤Ë¤Ï¡¢32 ¥Ó¥Ã¥È¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥Õ¥ë¥»¥Ã¥È¤â´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +に書かれている)。 +しかしこれには多くの例外がある。古いシステムコールは新版に置き換えられて +きたが、この置き換えはあまり体系立てて行われて来なかったからである。 +parisc, sparc, sparc64, alpha といったプロプリエタリ OS のエミュレーション +機能があるプラットフォームでは、多くの追加システムコールがある。 +mips64 には、32 ビットシステムコールのフルセットも含まれている。 -»þ´Ö¤Î·Ð²á¤È¤È¤â¤Ë¡¢¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤Ï¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î -Êѹ¹¤¬É¬ÍפˤʤäƤ­¤¿¡£ -¤³¤¦¤·¤¿Êѹ¹¤ÎÍýͳ¤Î°ì¤Ä¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÅϤµ¤ì¤ë¹½Â¤ÂΤ䥹¥«¥é¡¼ÃÍ -¤Î¥µ¥¤¥º¤òÁý¤ä¤¹É¬Íפ¬¤¢¤ë¤³¤È¤À¤Ã¤¿¡£ -¤³¤ì¤é¤ÎÊѹ¹¤Î·ë²Ì¡¢¸½ºß¤Ç¤Ï¡¢Æ±ÍͤνèÍý¤ò¼Â¹Ô¤¹¤ë¤¬ -°ú¤­¿ô¤Î¥µ¥¤¥º¤Ê¤É¤Î¾ÜºÙ¤Ï°Û¤Ê¤ë¡¢°ìÏ¢¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë·²¤¬ -¤¤¤¯¤Ä¤«Â¸ºß¤¹¤ë -(Î㤨¤Ð¡¢ +時間の経過とともに、いくつかのシステムコールではインタフェースの +変更が必要になってきた。 +こうした変更の理由の一つは、システムコールに渡される構造体やスカラー値 +のサイズを増やす必要があることだった。 +これらの変更の結果、現在では、同様の処理を実行するが +引き数のサイズなどの詳細は異なる、一連のシステムコール群が +いくつか存在する +(例えば、 .BR truncate (2) -¤È -.BR truncate64 (2))¡£ -(¤¹¤Ç¤Ë½Ò¤Ù¤¿¤è¤¦¤Ë¡¢ -°ìÈ̤ˤϥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¤³¤Î¤³¤È¤ò°Õ¼±¤¹¤ë¤³¤È¤Ï¤Ê¤¤¡£ -glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤¬¡¢Å¬Àڤʥ·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤·¡¢¸Å¤¤¥Ð¥¤¥Ê¥ê¤Ë -ÂФ·¤Æ ABI ¥ì¥Ù¥ë¤Ç¤Î¸ß´¹À­¤òÊÝ»ý¤¹¤ë¤³¤È¤òÊݾڤ¹¤ë½èÍý¤ò¹Ô¤Ã¤Æ¤¤¤ë¡£) -Ê£¿ô¤Î¥Ð¡¼¥¸¥ç¥ó¤¬Â¸ºß¤¹¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÎã¤ò°Ê²¼¤Ëµó¤²¤ë¡£ +と +.BR truncate64 (2))。 +(すでに述べたように、 +一般にはアプリケーションがこのことを意識することはない。 +glibc のラッパー関数が、適切なシステムコールを起動し、古いバイナリに +対して ABI レベルでの互換性を保持することを保証する処理を行っている。) +複数のバージョンが存在するシステムコールの例を以下に挙げる。 .IP * 3 -¤³¤ì¤Þ¤Ç¤Ë¡¢ +これまでに、 .BR stat (2) -¤Ë¤Ï 3 ¼ïÎà¤Î°Û¤Ê¤ë¥Ð¡¼¥¸¥ç¥ó¤¬Â¸ºß¤¹¤ë¡£ +には 3 種類の異なるバージョンが存在する。 .IR sys_stat () -(¥¹¥í¥Ã¥È¤Ï -.IR __NR_oldstat )¡¢ +(スロットは +.IR __NR_oldstat )、 .IR sys_newstat () -(¥¹¥í¥Ã¥È¤Ï -.IR __NR_stat )¡¢ +(スロットは +.IR __NR_stat )、 .IR sys_stat64 () -(¥«¡¼¥Í¥ë 2.4 ¤ÇƳÆþ; ¥¹¥í¥Ã¥È¤Ï -.IR __NR_stat64 )¡£ -3¤Ä¤Î¤¦¤ÁºÇ¸å¤Î¤â¤Î¤¬ºÇ¿·¤Ç¤¢¤ë¡£ +(カーネル 2.4 で導入; スロットは +.IR __NR_stat64 )。 +3つのうち最後のものが最新である。 .\" e.g., on 2.6.22/i386: __NR_oldstat 18, __NR_stat 106, __NR_stat64 195 .\" The stat system calls deal with three different data structures, .\" defined in include/asm-i386/stat.h: __old_kernel_stat, stat, stat64 .BR lstat (2) -¤È +と .BR fstat (2) -¤Ë¤Ä¤¤¤Æ¤âƱÍͤǤ¢¤ë¡£ +についても同様である。 .IP * -¤Þ¤¿¡¢ +また、 .IR __NR_oldolduname , .IR __NR_olduname , .I __NR_uname -¤È¤¤¤¦ÄêµÁ¤Ï¡¢¤½¤ì¤¾¤ì +という定義は、それぞれ .IR sys_olduname (), .IR sys_uname (), .IR sys_newuname () -¤È¤¤¤¦¥ë¡¼¥Á¥ó¤ò»²¾È¤·¤Æ¤¤¤ë¡£ +というルーチンを参照している。 .IP * -Linux 2.0 ¤Ç¤Ï¡¢ +Linux 2.0 では、 .BR vm86 (2) -¤Î¿·¥Ð¡¼¥¸¥ç¥ó¤¬Åо줷¤¿¡£¥«¡¼¥Í¥ë¥ë¡¼¥Á¥ó¤Î -¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¡¢¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤Ï¤½¤ì¤¾¤ì +の新バージョンが登場した。カーネルルーチンの +古いバージョン、新しいバージョンはそれぞれ .IR sys_vm86old (), .IR sys_vm86 () -¤È¤¤¤¦Ì¾Á°¤Ç¤¢¤ë¡£ +という名前である。 .IP * -Linux 2.4 ¤Ç¤Ï¡¢ +Linux 2.4 では、 .BR getrlimit (2) -¤Î¿·¥Ð¡¼¥¸¥ç¥ó¤¬Åо줷¤¿¡£¥«¡¼¥Í¥ë¥ë¡¼¥Á¥ó¤Î -¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¡¢¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤Ï¤½¤ì¤¾¤ì +の新バージョンが登場した。カーネルルーチンの +古いバージョン、新しいバージョンはそれぞれ .IR sys_old_getrlimit () -(¥¹¥í¥Ã¥È¤Ï +(スロットは .IR __NR_getrlimit ), .IR sys_getrlimit () -(¥¹¥í¥Ã¥È¤Ï +(スロットは .IR __NR_ugetrlimit ) -¤È¤¤¤¦Ì¾Á°¤Ç¤¢¤ë¡£ +という名前である。 .IP * -Linux 2.4 ¤Ç¡¢¥æ¡¼¥¶ ID ¤È¥°¥ë¡¼¥× ID ¤Î¥µ¥¤¥º¤¬ -16 ¥Ó¥Ã¥È¤«¤é 32 ¥Ó¥Ã¥È¤ËÁý¤¨¤¿¡£ +Linux 2.4 で、ユーザ ID とグループ ID のサイズが +16 ビットから 32 ビットに増えた。 .\" 64-bit off_t changes: ftruncate64, *stat64, .\" fcntl64 (because of the flock structure), getdents64, *statfs64 -¤³¤ÎÊѹ¹¤ËÂбþ¤¹¤ë¤¿¤á¡¢¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Äɲ䵤줿 +この変更に対応するため、いくつかのシステムコールが追加された .RB ( chown32 (2), .BR getuid32 (2), .BR getgroups32 (2), .BR setresuid32 (2) -¤Ê¤É)¡£ -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¡¢ËöÈø¤Î "32" ¤¬ÉÕ¤«¤Ê¤¤Æ±Ì¾¤Î -¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤ËÂå¤ï¤Ã¤Æ»È¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ +など)。 +これらのシステムコールが、末尾の "32" が付かない同名の +古いバージョンに代わって使われるようになった。 .IP * -Linux 2.4 ¤Ç¤Ï¡¢32 ¥Ó¥Ã¥È¡¦¥¢¡¼¥­¥Æ¥¯¥Á¥ã¾å¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬ -Â礭¤Ê¥Õ¥¡¥¤¥ë (¤Ä¤Þ¤ê¡¢32 ¥Ó¥Ã¥È¤Ç¤Ïɽ¸½¤Ç¤­¤Ê¤¤¥µ¥¤¥º¤ä -¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤¬É¬Íפʥե¡¥¤¥ë) ¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ -¤³¤ÎÊѹ¹¤ËÂбþ¤¹¤ë¤¿¤á¡¢¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤È¥µ¥¤¥º¤ò°·¤¦ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÃÖ¤­´¹¤¨¤¬É¬ÍפȤʤä¿¡£¤½¤Î·ë²Ì¡¢ +Linux 2.4 では、32 ビット・アーキテクチャ上のアプリケーションが +大きなファイル (つまり、32 ビットでは表現できないサイズや +ファイル・オフセットが必要なファイル) にアクセスできるようになった。 +この変更に対応するため、ファイル・オフセットとサイズを扱う +システムコールの置き換えが必要となった。その結果、 .BR fcntl64 (2), .BR ftruncate64 (2), .BR getdents64 (2), .BR stat64 (2), .BR statfs64 (2) -¤È¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ä¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ÇƱ¤¸µ¡Ç½¤ò»ý¤Ä -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Äɲ䵤줿¡£ -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¡¢ËöÈø¤Î "64" ¤¬ÉÕ¤«¤Ê¤¤Æ±Ì¾¤Î -¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤ËÂå¤ï¤Ã¤Æ»È¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ -⤷¡¢"stat" ·Ï¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¤½¤Î¸Â¤ê¤Ç¤Ï¤Ê¤¤¡£ +と、ファイルディスクリプタやシンボリックリンクで同じ機能を持つ +システムコールが追加された。 +これらのシステムコールが、末尾の "64" が付かない同名の +古いバージョンに代わって使われるようになった。 +但し、"stat" 系のシステムコールはその限りではない。 -64-bit ¥Õ¥¡¥¤¥ë¥¢¥¯¥»¥¹¤È 32-bit UID ¤Î¤ß¤ò»ý¤Ä -¿·¤·¤¤¥×¥é¥Ã¥È¥Õ¥©¡¼¥à (alpha, ia64, s390x ¤Ê¤É) ¤Ç¤Ï¡¢ -*64 ¤ä *32 ¤È¤¤¤¦Ì¾Á°¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¤Ê¤¤¡£ -*64 ¤ä *32 ¤È¤¤¤¦¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Â¸ºß¤¹¤ë¾ì¹ç¡¢ -*64 ¤ä *32 ¤¬¤Ä¤¤¤Æ¤¤¤Ê¤¤¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÇѻ߰·¤¤¤Ç¤¢¤ë¡£ +64-bit ファイルアクセスと 32-bit UID のみを持つ +新しいプラットフォーム (alpha, ia64, s390x など) では、 +*64 や *32 という名前のシステムコールはない。 +*64 や *32 というシステムコールが存在する場合、 +*64 や *32 がついていないシステムコールは廃止扱いである。 .IP * -¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë +リアルタイムシグナル .RB ( signal (7) -»²¾È) ¤Ø¤ÎÂбþ¤òÄɲ乤뤿¤á¤Ë¡¢ +参照) への対応を追加するために、 .I rt_sig* -·Ï¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¥«¡¼¥Í¥ë 2.2 ¤ÇÄɲ䵤줿¡£ -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¡¢ÀèƬ¤Ë "rt_" ¤¬ÉÕ¤«¤Ê¤¤Æ±Ì¾¤Î -¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤ËÂå¤ï¤Ã¤Æ»È¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ +系のシステムコールがカーネル 2.2 で追加された。 +これらのシステムコールが、先頭に "rt_" が付かない同名の +古いバージョンに代わって使われるようになった。 .IP * .BR select (2) -¤È +と .BR mmap (2) -¤Ï 5¤Ä¤â¤·¤¯¤Ï¤½¤ì°Ê¾å¤Î°ú¤­¿ô¤ò»ÈÍѤ·¤Æ¤ª¤ê¡¢ -i386 ¤Ç¤Ï°ú¤­¿ô¤Î¼õ¤±ÅϤ·¤ËÌäÂ꤬À¸¤¸¤ë¡£ -¤½¤Î¤¿¤á¡¢Â¾¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï +は 5つもしくはそれ以上の引き数を使用しており、 +i386 では引き数の受け渡しに問題が生じる。 +そのため、他のアーキテクチャでは .I __NR_select -¤È +と .I __NR_mmap -¤ËÂбþ¤¹¤ë +に対応する .IR sys_select () -¤È +と .IR sys_mmap () -¤¬Â¸ºß¤¹¤ë¤¬¡¢i386 ¤Ç¤ÏÂå¤ï¤ê¤Ë +が存在するが、i386 では代わりに .IR old_select () -¤È +と .IR old_mmap () -¤È¤¤¤¦¥ë¡¼¥Á¥ó¤¬¤¢¤ë -(¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤Ï°ú¤­¿ô¥Ö¥í¥Ã¥¯¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»ÈÍѤ¹¤ë)¡£ -¸½ºß¤Ç¤Ï 5¤Ä¤Î°ú¤­¿ô¤òÅϤ¹¤³¤È¤Ï¤â¤Ï¤äÌäÂê¤Ç¤Ï¤Ê¤¯¤Ê¤Ã¤Æ¤ª¤ê¡¢ -.\" (libc 6 ¤Ç»ÈÍѤµ¤ì¤ë) +というルーチンがある +(これらのルーチンは引き数ブロックへのポインタを使用する)。 +現在では 5つの引き数を渡すことはもはや問題ではなくなっており、 +.\" (libc 6 で使用される) .I __NR__newselect -¤Ï +は .IR sys_select () -¤ËľÀÜÂбþ¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +に直接対応するようになっている。 .I __NR_mmap2 -¤Ë¤Ä¤¤¤Æ¤âƱÍͤǤ¢¤ë¡£ +についても同様である。 .\" .PP .\" Two system call numbers, .\" .IR __NR__llseek @@ -807,7 +807,7 @@ i386 .\" .BR chown (2), .\" and the semantics of the latter call were changed to what .\" they are today. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR syscall (2), .BR unimplemented (2), .BR libc (7) diff --git a/release/man2/sysctl.2 b/release/man2/sysctl.2 index 2dc0d88c..09c1a988 100644 --- a/release/man2/sysctl.2 +++ b/release/man2/sysctl.2 @@ -31,17 +31,17 @@ .\" Modified 1998-05-11, HANATAKA Shinya .\" Updated 2007-10-11, Akihiro MOTOKI , LDP v2.66 .\" -.\"WORD: parameter ¥Ñ¥é¥á¡¼¥¿¡¼ -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: hostname ¥Û¥¹¥È¥Í¡¼¥à -.\"WORD: open ¥ª¡¼¥×¥ó -.\"WORD: directory ¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: tree ¥Ä¥ê¡¼ +.\"WORD: parameter パラメーター +.\"WORD: kernel カーネル +.\"WORD: hostname ホストネーム +.\"WORD: open オープン +.\"WORD: directory ディレクトリ +.\"WORD: tree ツリー .\" .TH SYSCTL 2 2008-11-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sysctl \- ¥·¥¹¥Æ¥à¡¦¥Ñ¥é¥á¡¼¥¿¡¼¤òÆɤ߽ñ¤­¤¹¤ë -.SH ½ñ¼° +.SH 名前 +sysctl \- システム・パラメーターを読み書きする +.SH 書式 .nf .B #include .br @@ -49,14 +49,14 @@ sysctl \- .sp .BI "int _sysctl(struct __sysctl_args *" args ); .fi -.SH ÀâÌÀ -.B ¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»ÈÍѤ·¤Ê¤¤¤³¤È! -¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¡£ +.SH 説明 +.B このシステムコールを使用しないこと! +「注意」の節を参照。 .BR _sysctl () -¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë¥Ñ¥é¥á¡¼¥¿¡¼¤òÆɤ߽ñ¤­¤¹¤ë¡£Î㤨¤Ð¡¢ -¥Û¥¹¥È¥Í¡¼¥à¤äƱ»þ¤Ë¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¤ÎºÇÂç¿ô¤Ê¤É¡£ -°ú¤­¿ô¤Ï°Ê²¼¤Î·Á¼°¤Ç¤¢¤ë¡£ +コールはカーネルパラメーターを読み書きする。例えば、 +ホストネームや同時にオープンできるファイルの最大数など。 +引き数は以下の形式である。 .PP .in +4n .nf @@ -72,72 +72,72 @@ struct __sysctl_args { .fi .in .PP -¤³¤Î¥³¡¼¥ë¤Ï +このコールは .I /proc/sys -¤Î²¼¤Î¥Ç¥£¥ì¥¯¥È¥ê¡¦¥Ä¥ê¡¼¤Ë»÷¤¿ÌÚ¹½Â¤(tree structure)¤ò¸¡º÷¤¹¤ë¡£ -¤½¤·¤Æ¡¢Í׵ᤵ¤ì¤¿¹àÌܤ¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤ÏŬÀڤʥ롼¥Á¥ó¤ò¸Æ¤Ó½Ð¤·¤Æ -ÃͤòÆɤó¤À¤ê½¤Àµ¤·¤¿¤ê¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï +の下のディレクトリ・ツリーに似た木構造(tree structure)を検索する。 +そして、要求された項目が見つかった場合は適切なルーチンを呼び出して +値を読んだり修正したりする。 +.SH 返り値 +成功した場合は .BR _sysctl () -¤Ï 0 ¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +は 0 を返す。失敗した場合、\-1 が返され、 .I errno -¤¬¤½¤Î¥¨¥é¡¼¤ò¼¨¤¹ÃͤËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +がそのエラーを示す値に設定される。 +.SH エラー .TP .B EFAULT .I oldval -¤Ë NULL ¤Ç¤Ê¤¤ÃͤòÀßÄꤷ¤Æ¡¢°ÊÁ°¤ÎÃͤòÍ׵ᤷ¤Æ¤¤¤ë¤Î¤Ë¡¢ +に NULL でない値を設定して、以前の値を要求しているのに、 .I oldlenp -¤Ë¶õ¤­¤¬¤Ê¤¤¡£ +に空きがない。 .TP .B ENOTDIR .I name -¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£ +が見つからなかった。 .TP .B EPERM -¡Ö¥Ç¥£¥ì¥¯¥È¥ê¡×¤Î¤É¤ì¤«¤Ë¸¡º÷µö²Ä¤¬¤Ê¤«¤Ã¤¿¤«¡¢ +「ディレクトリ」のどれかに検索許可がなかったか、 .I oldval -¤¬ 0 ¤Ç¤Ê¤¤¤Î¤ËÆɤ߹þ¤ßµö²Ä¤¬¤Ê¤«¤Ã¤¿¤«¡¢ +が 0 でないのに読み込み許可がなかったか、 .I newval -¤¬ 0 ¤Ç¤Ê¤¤¤Î¤Ë½ñ¤­¹þ¤ßµö²Ä¤¬¤Ê¤«¤Ã¤¿¡£ -.SH ½àµò -¤³¤Î¥³¡¼¥ë¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç»ÈÍѤ·¤Æ¤Ï -¤¤¤±¤Ê¤¤¡£ -.SH Îò»Ë +が 0 でないのに書き込み許可がなかった。 +.SH 準拠 +このコールは Linux 特有であり、移植を意図したプログラムで使用しては +いけない。 +.SH 歴史 .BR sysctl () -¥³¡¼¥ë¤Ï -Linux ¤Î¥Ð¡¼¥¸¥ç¥ó 1.3.57 ¤«¤é¸ºß¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï 4.4BSD ¤ËͳÍ褷¤Æ¤¤¤ë¡£Linux ¤Ï +コールは +Linux のバージョン 1.3.57 から存在している。 +これは 4.4BSD に由来している。Linux は .I /proc/sys -¤Ë¼Ì¤·(mirror)¤ò¤â¤Ã¤Æ¤ª¤ê¡¢¹àÌܤÎ̾Á°¤ÎÉÕ¤±Êý¤¬ Linux ¤È 4.4BSD ¤Ç¤Ï -°Û¤Ã¤Æ¤¤¤ë¡£¤·¤«¤· +に写し(mirror)をもっており、項目の名前の付け方が Linux と 4.4BSD では +異っている。しかし .BR sysctl () -´Ø¿ô¤ÎÀë¸À¤ÏξÊý¤ÇƱ¤¸¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +関数の宣言は両方で同じである。 +.SH 注意 +glibc はこのシステムコールに対するラッパー関数を提供していない。 .BR syscall (2) -¤ò»È¤Ã¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¡£ +を使って呼び出すこと。 -¤È¤¤¤¦¤è¤ê¤Ï¡¦¡¦¡¦¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¸Æ¤Ó½Ð¤µ¤Ê¤¤¤³¤È¡£ -Ť¤´Ö¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î»ÈÍѤÏÈó¿ä¾©¤È¤µ¤ì¤Æ¤ª¤ê¡¢ -¡Ö¾­Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥«¡¼¥Í¥ë¤Çºï½ü¤µ¤ì¤ë¤è¤¦¤À¡×¤È¸À¤ï¤ì¤ë¤Û¤É¤Ç¤¢¤ë¡£ -.\" http://lwn.net/Articles/247243/ »²¾È -¤¢¤Ê¤¿¤Î¥×¥í¥°¥é¥à¤Ë¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤¢¤ì¤Ð¡¢¤¹¤°¤Ë¤Ç¤âºï½ü¤¹¤ë¤³¤È¡£ -Âå¤ï¤ê¤Ë +というよりは・・・このシステムコールを呼び出さないこと。 +長い間このシステムコールの使用は非推奨とされており、 +「将来のバージョンのカーネルで削除されるようだ」と言われるほどである。 +.\" http://lwn.net/Articles/247243/ 参照 +あなたのプログラムにこのシステムコールがあれば、すぐにでも削除すること。 +代わりに .I /proc/sys -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»ÈÍѤ¹¤ë¤³¤È¡£ -.SH ¥Ð¥° -¥ª¥Ö¥¸¥§¥¯¥È¤Î̾Á°¤Ï¡¢¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤´¤È¤Ë°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤³¤Î¤¿¤á¡¢¤³¤Î¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤È¤Ã¤Æ -̵²ÁÃͤʤâ¤Î¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ +インターフェースを使用すること。 +.SH バグ +オブジェクトの名前は、カーネルのバージョンごとに異なっている。 +このため、このシステム・コールはアプリケーションにとって +無価値なものとなっている。 .PP -Á´¤Æ¤Î²Äǽ¤Ê¹àÌܤ¬Àµ³Î¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ +全ての可能な項目が正確に記述されているわけではない。 .PP -º£¤Î¤È¤³¤í +今のところ .I /proc/sys/kernel/ostype -¤Ë½ñ¤­¹þ¤à¤³¤È¤Ç¥ª¥Ú¡¼¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤òÊѤ¨¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -.SH Îã +に書き込むことでオペーレーティング・システムを変えることはできない。 +.SH 例 .nf #define _GNU_SOURCE #include @@ -175,5 +175,5 @@ main(void) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR proc (5) diff --git a/release/man2/sysfs.2 b/release/man2/sysfs.2 index 75016963..b0fdab09 100644 --- a/release/man2/sysfs.2 +++ b/release/man2/sysfs.2 @@ -29,87 +29,87 @@ .\" Updated & Modified Sat Jun 2 20:46:34 JST 2001 .\" by Yuichi SATO .\" -.\"WORD: file system ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: identifier string ¼±ÊÌʸ»úÎó -.\"WORD: type index ·¿¥¤¥ó¥Ç¥Ã¥¯¥¹ +.\"WORD: file system ファイル・システム +.\"WORD: kernel カーネル +.\"WORD: identifier string 識別文字列 +.\"WORD: type index 型インデックス .\" .TH SYSFS 2 2010-06-27 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sysfs \- ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à (file system) ¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +sysfs \- ファイル・システム (file system) の情報を取得する +.SH 書式 .BI "int sysfs(int " option ", const char *" fsname ); .BI "int sysfs(int " option ", unsigned int " fs_index ", char *" buf ); .BI "int sysfs(int " option ); -.SH ÀâÌÀ +.SH 説明 .BR sysfs () -¤Ï¸½ºß¥«¡¼¥Í¥ë (kernel) ¤Ë¸ºß¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î·¿ (type) ¾ðÊó¤òÊÖ¤¹¡£ -¤½¤ì¤¾¤ì¤Î +は現在カーネル (kernel) に存在しているファイル・システムの型 (type) 情報を返す。 +それぞれの .BR sysfs () -¥³¡¼¥ë¤Î·Á¼°¤ÈÊÖ¤µ¤ì¤ë¾ðÊó¤Ï +コールの形式と返される情報は .I option -¤Ë°Í¸¤·¤Æ¤ª¤ê¡¢¤½¤ì¤Ï: +に依存しており、それは: .TP 3 .B 1 -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¼±ÊÌʸ»úÎó (identifier string) +ファイル・システム識別文字列 (identifier string) .I fsname -¤ò¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î·¿¥¤¥ó¥Ç¥Ã¥¯¥¹ (type index) ¤ËËÝÌõ¤¹¤ë¡£ +をファイル・システムの型インデックス (type index) に翻訳する。 .TP .B 2 -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î·¿¥¤¥ó¥Ç¥Ã¥¯¥¹ +ファイル・システムの型インデックス .I fs_index -¤ò NULL ½ªÃ¼¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¼±ÊÌʸ»úÎó¤ËËÝÌõ¤¹¤ë¡£ -¤³¤Îʸ»úÎó¤Ï +を NULL 終端されたファイル・システム識別文字列に翻訳する。 +この文字列は .I buf -¤Ç»ØÄꤵ¤ì¤¿¥Ð¥Ã¥Õ¥¡¡¼¤Ø½ñ¤­¹þ¤Þ¤ì¤ë¡£ +で指定されたバッファーへ書き込まれる。 .I buf -¤Ëʸ»úÎó¤òÆþ¤ì¤ë¤À¤±¤Î½½Ê¬¤ÊÍÆÎ̤¬¤¢¤ë¤³¤È¤ò³Î¤«¤á¤ë¤³¤È¡£ +に文字列を入れるだけの十分な容量があることを確かめること。 .TP .B 3 -¸½ºß¥«¡¼¥Í¥ë¤Ë¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à·¿¤Î¿ô¤Î¹ç·×¤òÊÖ¤¹¡£ +現在カーネルに存在するファイル・システム型の数の合計を返す。 .PP -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î·¿¥¤¥ó¥Ç¥Ã¥¯¥¹¤Î¿ô¤Ï¥¼¥í¤«¤é»Ï¤Þ¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç +ファイル・システムの型インデックスの数はゼロから始まる。 +.SH 返り値 +成功した場合 .BR sysfs () -¤Ï¡¢ -¥ª¥×¥·¥ç¥ó +は、 +オプション .B 1 -¤Ç¤Ï -¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÊÖ¤¹¡£ -¥ª¥×¥·¥ç¥ó +では +ファイル・システムのインデックスを返す。 +オプション .B 2 -¤Ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ -¥ª¥×¥·¥ç¥ó +ではゼロを返す。 +オプション .B 3 -¤Ï¸½ºßÀßÄꤵ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î¿ô¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +は現在設定されているファイル・システムの数を返す。 +エラーの場合は、\-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EFAULT -.RI fsname " ¤È " buf -¤Î¤É¤Á¤é¤«¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤Ë¤¢¤ë¡£ +.RI fsname " と " buf +のどちらかがアクセス可能なアドレス空間の外にある。 .TP .B EINVAL .I fsname -¤¬Àµ¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î·¿¼±Ê̻ҤǤϤʤ¤; +が正しいファイル・システムの型識別子ではない; .I fs_index -¤¬ÈϰϤγ°¤Ë¤¢¤ë; +が範囲の外にある; .I option -¤¬Àµ¤·¤¯¤Ê¤¤¡£ -.SH ½àµò +が正しくない。 +.SH 準拠 SVr4. -.SH Ãí°Õ -¤³¤Î System-V ͳÍè¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÇÑ»ßͽÄê (obsolete) ¤Ç¤¢¤ê¡¢ -»ÈÍѤ·¤Ê¤¤¤³¤È¡£ +.SH 注意 +この System-V 由来のシステムコールは廃止予定 (obsolete) であり、 +使用しないこと。 .I /proc -¤¬ÍøÍѤǤ­¤ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢Æ±¤¸¾ðÊó¤¬ +が利用できるシステムでは、同じ情報が .I /proc/filesystems -·Ðͳ¤Ç¼èÆÀ¤Ç¤­¡¢¤³¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò»ÈÍѤ¹¤ë¤³¤È¡£ -.SH ¥Ð¥° -libc ¤Þ¤¿¤Ï glibc ¤Î¥µ¥Ý¡¼¥È¤Ï¸ºß¤·¤Ê¤¤¡£ -\fIbuf\fP ¤ÎÂ礭¤µ¤¬¤É¤ì¤À¤±É¬Íפ«¤ò¿ä¬¤¹¤ëÊýË¡¤¬¤Ê¤¤¡£ +経由で取得でき、このインタフェースを使用すること。 +.SH バグ +libc または glibc のサポートは存在しない。 +\fIbuf\fP の大きさがどれだけ必要かを推測する方法がない。 diff --git a/release/man2/sysinfo.2 b/release/man2/sysinfo.2 index 5c138865..5d743577 100644 --- a/release/man2/sysinfo.2 +++ b/release/man2/sysinfo.2 @@ -18,22 +18,22 @@ .\" Modified Mon Sep 23 21:56:40 JST 2000 .\" by HANATAKA Shinya .\" -.\"WORD: library ¥é¥¤¥Ö¥é¥ê -.\"WORD: statistic Åý·× -.\"WORD: pointer ¥Ý¥¤¥ó¥¿¡¼ -.\"WORD: prototype ·¿Àë¸À +.\"WORD: library ライブラリ +.\"WORD: statistic 統計 +.\"WORD: pointer ポインター +.\"WORD: prototype 型宣言 .\" .TH SYSINFO 2 2007-11-15 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sysinfo \- ¥·¥¹¥Æ¥àÁ´ÂΤÎÅý·×¾ðÊó¤òÊÖ¤¹¡£ -.SH ½ñ¼° +.SH 名前 +sysinfo \- システム全体の統計情報を返す。 +.SH 書式 .B #include .sp .BI "int sysinfo(struct sysinfo *" info ); -.SH ÀâÌÀ -Linux 2.3.16 ¤Þ¤Ç¤Ï +.SH 説明 +Linux 2.3.16 までは .BR sysinfo () -¤Ï°Ê²¼¤Î¹½Â¤ÂΤ˾ðÊó¤òÆþ¤ì¤ÆÊÖ¤¹¡£ +は以下の構造体に情報を入れて返す。 .nf .in +4n @@ -52,9 +52,9 @@ struct sysinfo { .in .fi .PP -¤³¤³¤Ç¥Ð¥¤¥Èñ°Ì¤ÇÍ¿¤¨¤é¤ì¤ë¡£ +ここでバイト単位で与えられる。 -Linux 2.3.23 (i386)¡¢2.3.48 (Á´¤Æ¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã) ¤«¤é¤Ï¹½Â¤ÂÎ¤Ï +Linux 2.3.23 (i386)、2.3.48 (全てのアーキテクチャ) からは構造体は .nf .in +4n @@ -76,29 +76,29 @@ struct sysinfo { .in .fi .PP -¤È¤Ê¤ê¡¢Â礭¤µ¤Ï \fImem_unit\fP ¥Ð¥¤¥È¤ÎÇÜ¿ô¤ÇÍ¿¤¨¤é¤ì¤ë¡£ +となり、大きさは \fImem_unit\fP バイトの倍数で与えられる。 .BR sysinfo () -¤Ï¥·¥¹¥Æ¥àÁ´ÂΤÎÅý·×¤ò¼èÆÀ¤¹¤ë´Êñ¤ÊÊýË¡¤òÄ󶡤¹¤ë¡£ -¤³¤ì¤Ï \fI/dev/kmem\fP ¤òÆɤà¤è¤ê¤â°Ü¿¢À­¤Î¹â¤¤ÊýË¡¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï¥¼¥í¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Ê¤é¤Ð \-1 ¤¬ÊÖ¤µ¤ì¡¢ +はシステム全体の統計を取得する簡単な方法を提供する。 +これは \fI/dev/kmem\fP を読むよりも移植性の高い方法である。 +.SH 返り値 +成功した場合はゼロが返される。エラーならば \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EFAULT -.I sysinfo ¹½Â¤ÂÎ -¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ -.SH ½àµò -¤³¤Î´Ø¿ô¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï -»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ +.I sysinfo 構造体 +へのポインターが不正である。 +.SH 準拠 +この関数は Linux 特有であり、移植を意図したプログラムでは +使用してはいけない。 .sp -Linux ¥«¡¼¥Í¥ë¤Ï 0.98.pl6 ¤«¤é +Linux カーネルは 0.98.pl6 から .BR sysinfo () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»ý¤Ã¤Æ¤¤¤ë¡£ -Linux ¤Î libc ¤Ï 5.3.5 ¤è¤ê¡¢glibc ¤Ç¤Ï 1.90 ¤è¤ê +システムコールを持っている。 +Linux の libc は 5.3.5 より、glibc では 1.90 より .BR sysinfo () -¥ë¡¼¥Á¥ó¤ò´Þ¤ó¤Ç¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +ルーチンを含んでいる。 +.SH 関連項目 .BR proc (5) diff --git a/release/man2/syslog.2 b/release/man2/syslog.2 index 538df90e..8a2dd6c8 100644 --- a/release/man2/syslog.2 +++ b/release/man2/syslog.2 @@ -35,234 +35,234 @@ .\" Updated 2008-04-04, Akihiro MOTOKI, LDP v2.79 .\" Updated 2008-07-31, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: message ring buffer ¥á¥Ã¥»¡¼¥¸¡¦¥ê¥ó¥°¡¦¥Ð¥Ã¥Õ¥¡ -.\"WORD: library ¥é¥¤¥Ö¥é¥ê -.\"WORD: kernel log buffer ¥«¡¼¥Í¥ë¡¦¥í¥°¡¦¥Ð¥Ã¥Õ¥¡ -.\"WORD: console ¥³¥ó¥½¡¼¥ë -.\"WORD: kernel panic ¥«¡¼¥Í¥ë¡¦¥Ñ¥Ë¥Ã¥¯ -.\"WORD: loglevel ¥í¥°¥ì¥Ù¥ë -.\"WORD: debug message ¥Ç¥Ð¥Ã¥°¡¦¥á¥Ã¥»¡¼¥¸ +.\"WORD: kernel カーネル +.\"WORD: message ring buffer メッセージ・リング・バッファ +.\"WORD: library ライブラリ +.\"WORD: kernel log buffer カーネル・ログ・バッファ +.\"WORD: console コンソール +.\"WORD: kernel panic カーネル・パニック +.\"WORD: loglevel ログレベル +.\"WORD: debug message デバッグ・メッセージ .\" .TH SYSLOG 2 2008-06-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -syslog, klogctl \- ¥«¡¼¥Í¥ë¤Î¥á¥Ã¥»¡¼¥¸¡¦¥ê¥ó¥°¡¦¥Ð¥Ã¥Õ¥¡¤òÆɤó¤À¤ê¾Ãµî¤·¤¿¤ê¤¹¤ë; -console_loglevel ¤ÎÀßÄê¤ò¹Ô¤¦ -.SH ½ñ¼° +.SH 名前 +syslog, klogctl \- カーネルのメッセージ・リング・バッファを読んだり消去したりする; +console_loglevel の設定を行う +.SH 書式 .nf .BI "int syslog(int " type ", char *" bufp ", int " len ); -.B " /* glibc ¤Ç¤Ï¥é¥Ã¥Ñ¡¼´Ø¿ô¤ÏÄ󶡤µ¤ì¤Æ¤¤¤Ê¤¤ */" +.B " /* glibc ではラッパー関数は提供されていない */" .sp -/* glibc ¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹ */ +/* glibc のインタフェース */ .br .B "#include " .sp .BI "int klogctl(int " type ", char *" bufp ", int " len ); .fi -.SH ÀâÌÀ +.SH 説明 .RB ( syslogd (8) -¤ÈÏä¹) C ¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Î +と話す) C ライブラリ関数の .BR syslog () -¤¬É¬Íפʾì¹ç¤Ï¡¢ +が必要な場合は、 .BR syslog (3) -¤ò¸«¤ë¤³¤È¡£ -¤³¤Î̾Á°¤Î¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë¤Î +を見ること。 +この名前のシステム・コールはカーネルの .IR printk () -¥Ð¥Ã¥Õ¥¡¤òÀ©¸æ¤¹¤ë¤â¤Î¤Ç¤¢¤ê¡¢glibc ¤Ç¤Ï +バッファを制御するものであり、glibc では .BR klogctl () -¤È¸Æ¤Ð¤ì¤Æ¤¤¤ë¡£ +と呼ばれている。 -\fItype\fP °ú¤­¿ô¤Ï¤³¤Î´Ø¿ô¤ÎÆ°ºî¤ò·èÄꤹ¤ë¡£ +\fItype\fP 引き数はこの関数の動作を決定する。 .I kernel/printk.c -¤«¤é¤Î°úÍÑ : +からの引用 : .nf /* * Commands to sys_syslog: * - * 0 \-\- ¥í¥°¤òÊĤ¸¤ë¡£¸½ºß¤Î¼ÂÁõ¤Ç¤Ï²¿¤â¤·¤Ê¤¤ (NOP) ¡£ - * 1 \-\- ¥í¥°¤ò³«¤¯¡£¸½ºß¤Î¼ÂÁõ¤Ç¤Ï²¿¤â¤·¤Ê¤¤ (NOP) ¡£ - * 2 \-\- ¥í¥°¤«¤éÆɤ߽Ф¹¡£ - * 3 \-\- ¥ê¥ó¥°¡¦¥Ð¥Ã¥Õ¥¡¤Ë»Ä¤Ã¤Æ¤¤¤ë¥á¥Ã¥»¡¼¥¸¤ò¤¹¤Ù¤ÆÆɤ߽Ф¹¡£ - * 4 \-\- ¥ê¥ó¥°¡¦¥Ð¥Ã¥Õ¥¡¤Ë»Ä¤Ã¤Æ¤¤¤ë¥á¥Ã¥»¡¼¥¸¤ò¤¹¤Ù¤ÆÆɤ߽Ф·¡¢¾Ãµî¤¹¤ë¡£ - * 5 \-\- ¥ê¥ó¥°¥Ð¥Ã¥Õ¥¡¤ò¾Ãµî¤¹¤ë¡£ - * 6 \-\- ¥³¥ó¥½¡¼¥ë¤Ø¤Î printk ¤ò̵¸ú¤Ë¤¹¤ë¡£ - * 7 \-\- ¥³¥ó¥½¡¼¥ë¤Ø¤Î printk ¤òÍ­¸ú¤Ë¤¹¤ë¡£ - * 8 \-\- ¥³¥ó¥½¡¼¥ë¤Ëɽ¼¨¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¤Î¥ì¥Ù¥ë¤òÀßÄꤹ¤ë¡£ - * 9 \-\- ¥í¥°¥Ð¥Ã¥Õ¥¡¤Î̤ÆɤÎʸ»ú¿ô¤òÊÖ¤¹¡£ - * 10 \-\- ¥í¥°¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤òÊÖ¤¹¡£ + * 0 \-\- ログを閉じる。現在の実装では何もしない (NOP) 。 + * 1 \-\- ログを開く。現在の実装では何もしない (NOP) 。 + * 2 \-\- ログから読み出す。 + * 3 \-\- リング・バッファに残っているメッセージをすべて読み出す。 + * 4 \-\- リング・バッファに残っているメッセージをすべて読み出し、消去する。 + * 5 \-\- リングバッファを消去する。 + * 6 \-\- コンソールへの printk を無効にする。 + * 7 \-\- コンソールへの printk を有効にする。 + * 8 \-\- コンソールに表示されるメッセージのレベルを設定する。 + * 9 \-\- ログバッファの未読の文字数を返す。 + * 10 \-\- ログバッファのサイズを返す。 */ .fi -ÈóÆø¢¥×¥í¥»¥¹¤Ë¤Ï¥³¥Þ¥ó¥É 3 ¤È 10 ¤Î¤ß¤¬µö²Ä¤µ¤ì¤Æ¤¤¤ë -(¥³¥Þ¥ó¥É 9 ¤Ï Linux 2.4.10 ¤Ç¡¢¥³¥Þ¥ó¥É 10 ¤Ï Linux 2.6.6 ¤ÇÄɲ䵤줿)¡£ -.SS ¥«¡¼¥Í¥ë¡¦¥í¥°¡¦¥Ð¥Ã¥Õ¥¡ (kernel log buffer) -¥«¡¼¥Í¥ë¤ÏŤµ +非特権プロセスにはコマンド 3 と 10 のみが許可されている +(コマンド 9 は Linux 2.4.10 で、コマンド 10 は Linux 2.6.6 で追加された)。 +.SS カーネル・ログ・バッファ (kernel log buffer) +カーネルは長さ .B LOG_BUF_LEN -¤Î½ä²ó¼°¤Î¥Ð¥Ã¥Õ¥¡¤ò»ý¤Ã¤Æ¤ª¤ê¡¢ -¤½¤ì¤Ë¤Ï¥«¡¼¥Í¥ë´Ø¿ô¤Î +の巡回式のバッファを持っており、 +それにはカーネル関数の .BR printk () -¤Î°ú¤­¿ô¤È¤·¤ÆÍ¿¤¨¤é¤ì¤¿ -¥á¥Ã¥»¡¼¥¸¤¬ (¤½¤Î¥í¥°¥ì¥Ù¥ë¤Ë¤«¤«¤ï¤é¤º) ³ÊǼ¤µ¤ì¤ë¡£ -½é´ü¤Î¥«¡¼¥Í¥ë¤Ç¤Ï +の引き数として与えられた +メッセージが (そのログレベルにかかわらず) 格納される。 +初期のカーネルでは .B LOG_BUF_LEN -¤ÎÃÍ¤Ï 4096 ¤Ç¤¢¤Ã¤¿¡£ -¥«¡¼¥Í¥ë 1.3.54 ¤«¤é¤Ï 8192¡¢ -¥«¡¼¥Í¥ë 2.1.113 ¤«¤é¤Ï 16384 ¤Ë¤Ê¤ê¡¢ -¥«¡¼¥Í¥ë 2.4.23 °Ê¹ß¤ª¤è¤Ó 2.6 °Ê¹ß¤Ç¤Ï¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë -ÃͤòÀßÄê¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +の値は 4096 であった。 +カーネル 1.3.54 からは 8192、 +カーネル 2.1.113 からは 16384 になり、 +カーネル 2.4.23 以降および 2.6 以降ではカーネルのコンパイル時に +値を設定できるようになっている。 .\" Under "General setup" ==> "Kernel log buffer size" .\" For 2.6, precisely the option seems to have appeared in 2.5.55. -ºÇ¶á¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¥³¥Þ¥ó¥É 10 ¤Ç¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤òÌ䤤¹ç¤ï¤»¤Ç¤­¤ë¡£ +最近のカーネルでは、コマンド 10 でバッファのサイズを問い合わせできる。 .I "syslog(2,buf,len)" -¤Î¸Æ¤Ó½Ð¤·¤Ï¥«¡¼¥Í¥ë¡¦¥í¥°¡¦¥Ð¥Ã¥Õ¥¡¤¬¶õ¤Ç¤Ê¤¯¤Ê¤ë¤Þ¤ÇÂԤäơ¢ -ºÇÂç \fIlen\fP ¥Ð¥¤¥È¤Þ¤Ç \fIbuf\fP ¤Ø¤ÈÆɤ߽Ф·¡¢Æɤ߹þ¤ó¤À -¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£¥í¥°¤«¤éÆɤޤ줿¥Ð¥¤¥È¤Ï¥í¥°¡¦¥Ð¥Ã¥Õ¥¡¤«¤é¾Ã¤¨¤ë: -¾ðÊó¤Ï°ìÅÙ¤·¤«Æɤळ¤È¤¬¤Ç¤­¤Ê¤¤¡£ -¤³¤ì¤Ï¥æ¡¼¥¶¡¼¤Î¥×¥í¥°¥é¥à¤¬ +の呼び出しはカーネル・ログ・バッファが空でなくなるまで待って、 +最大 \fIlen\fP バイトまで \fIbuf\fP へと読み出し、読み込んだ +バイト数を返す。ログから読まれたバイトはログ・バッファから消える: +情報は一度しか読むことができない。 +これはユーザーのプログラムが .I /proc/kmsg -¤òÆɤó¤À»þ¤Ë¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ¼Â¹Ô¤µ¤ì¤ë´Ø¿ô¤Ç¤â¤¢¤ë¡£ +を読んだ時にカーネルによって実行される関数でもある。 .I syslog(3,buf,len) -¤Î¸Æ¤Ó½Ð¤·¤Ï¥í¥°¡¦¥Ð¥Ã¥Õ¥¡¤ÎºÇ¸å¤Î \fIlen\fP ¥Ð¥¤¥È¤ò -(ÈóÇ˲õŪ¤Ë)Æɤ߽Ф¹¡¢¤·¤«¤·¡¢Ä¾¶á¤Î¡Ö¥ê¥ó¥°¡¦¥Ð¥Ã¥Õ¥¡¾Ãµî¡×Ì¿Îá -(¤³¤ÎÌ¿Îá¤Ï¥Ð¥Ã¥Õ¥¡¤ò¾Ãµî¤¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤) -°Ê¹ß¤Ë¥Ð¥Ã¥Õ¥¡¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¾ðÊó¤·¤«Æɤ߽Ф»¤Ê¤¤¡£ -ÊÖ¤êÃͤÏÆɤ߹þ¤ó¤À¥Ð¥¤¥È¿ô¤Ç¤¢¤ë¡£ +の呼び出しはログ・バッファの最後の \fIlen\fP バイトを +(非破壊的に)読み出す、しかし、直近の「リング・バッファ消去」命令 +(この命令はバッファを消去するわけではない) +以降にバッファに書き込まれた情報しか読み出せない。 +返り値は読み込んだバイト数である。 .I syslog(4,buf,len) -¸Æ¤Ó½Ð¤·¤Ï¡Ö¥ê¥ó¥°¡¦¥Ð¥Ã¥Õ¥¡¾Ãµî¡×Ì¿Îá¤â¼Â¹Ô¤¹¤ë°Ê³°¤Ï -µ¡Ç½ 3 ¤È´°Á´¤ËƱ¤¸¤Ç¤¢¤ë¡£ +呼び出しは「リング・バッファ消去」命令も実行する以外は +機能 3 と完全に同じである。 .I syslog(5,dummy,dummy) -¸Æ¤Ó½Ð¤·¤Ï¡Ö¥ê¥ó¥°¡¦¥Ð¥Ã¥Õ¥¡¾Ãµî¡×Ì¿Îá¤Î¤ß¤ò¼Â¹Ô¤¹¤ë -(¸Æ¤Ó½Ð¤·¤Î½ñ¼°¤Ç¡¢ +呼び出しは「リング・バッファ消去」命令のみを実行する +(呼び出しの書式で、 .I buf -¤ä +や .I len -¤¬ "dummy" ¤Èµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¤½¤Î°ú¤­¿ô¤ÎÃͤ¬Ìµ»ë¤µ¤ì¤ë¤³¤È¤òɽ¤¹)¡£ +が "dummy" と記載されている場合、その引き数の値が無視されることを表す)。 .I syslog(6,dummy,dummy) -¸Æ¤Ó½Ð¤·¤Ï¥³¥ó¥½¡¼¥ë¤Î¥í¥°¥ì¥Ù¥ë¤òºÇ¾®¤ËÀßÄꤷ¡¢ -¥³¥ó¥½¡¼¥ë¤Ë¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£ +呼び出しはコンソールのログレベルを最小に設定し、 +コンソールにメッセージが表示されないようにする。 .I syslog(7,dummy,dummy) -¸Æ¤Ó½Ð¤·¤Ï¥³¥ó¥½¡¼¥ë¤Î¥í¥°¥ì¥Ù¥ë¤ò¥Ç¥Õ¥©¥ë¥È¤ËÀßÄꤷ¡¢ -¥³¥ó¥½¡¼¥ë¤Ë¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤ë¤è¤¦¤Ë¤¹¤ë¡£ +呼び出しはコンソールのログレベルをデフォルトに設定し、 +コンソールにメッセージが表示されるようにする。 .I syslog(8,dummy,level) -¸Æ¤Ó½Ð¤·¤Ï¥³¥ó¥½¡¼¥ë¤Î¥í¥°¥ì¥Ù¥ë¤ò +呼び出しはコンソールのログレベルを .I level -¤ËÀßÄꤹ¤ë¡£ +に設定する。 .I level -¤Ï 1 °Ê¾å 8 °Ê²¼¤ÎÀ°¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¾ÜºÙ¤Ï -.B ¥í¥°¥ì¥Ù¥ë (loglevel) -¤ÎÀá¤ò»²¾È¤Î¤³¤È¡£ +は 1 以上 8 以下の整数でなければならない。 +詳細は +.B ログレベル (loglevel) +の節を参照のこと。 .I syslog(9,dummy,dummy) -¸Æ¤Ó½Ð¤·¤Ï¥«¡¼¥Í¥ë¡¦¥í¥°¥Ð¥Ã¥Õ¥¡¤Ë¤¢¤ë¸½ºßÆɤ߽Ф·²Äǽ¤Ê¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ +呼び出しはカーネル・ログバッファにある現在読み出し可能なバイト数を返す。 .I syslog(10,dummy,dummy) -¸Æ¤Ó½Ð¤·¤Ï¥«¡¼¥Í¥ë¡¦¥í¥°¥Ð¥Ã¥Õ¥¡¤ÎÁíÎ̤òÊÖ¤¹¡£ -.SS ¥í¥°¥ì¥Ù¥ë (loglevel) -¥«¡¼¥Í¥ë¡¦¥ë¡¼¥Á¥ó¤Î +呼び出しはカーネル・ログバッファの総量を返す。 +.SS ログレベル (loglevel) +カーネル・ルーチンの .BR printk () -¤Ï¡¢¥í¥°¥ì¥Ù¥ë¤¬ +は、ログレベルが .I console_loglevel -ÊÑ¿ô¤è¤ê¾®¤µ¤¤¤È¤­¤Ë¤Î¤ß¡¢¥³¥ó¥½¡¼¥ë¤Ë¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¡£ +変数より小さいときにのみ、コンソールにメッセージを表示する。 .I console_loglevel -¤ÏºÇ½é +は最初 .B DEFAULT_CONSOLE_LOGLEVEL -(7) ¤ËÀßÄꤵ¤ì¤ë¤¬¡¢µ¯Æ°»þ¤Ë¥«¡¼¥Í¥ë¤Î -¥³¥Þ¥ó¥É¡¦¥é¥¤¥ó¡¦¥ª¥×¥·¥ç¥ó¤Ë "debug" ¤È¤¤¤¦Ã±¸ì¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï -10 ¤ËÀßÄꤵ¤ì¡¢¥«¡¼¥Í¥ë¡¦¥Õ¥©¡¼¥ë¥È¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¤Ï 15 ¤ËÀßÄꤵ¤ì¤ë -(⤷¡¢10 ¤ä 15 ¤È¤¤¤¦¿ô»ú¤Ë°ÕÌ£¤Ï¤Ê¤¯¡¢8 ¤ÈƱÅù¤Ç¤¢¤ë)¡£ -¤³¤ÎÊÑ¿ô¤Ï +(7) に設定されるが、起動時にカーネルの +コマンド・ライン・オプションに "debug" という単語が含まれている場合は +10 に設定され、カーネル・フォールトが発生した場合には 15 に設定される +(但し、10 や 15 という数字に意味はなく、8 と同等である)。 +この変数は .IR syslog(8,dummy,value) . -¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤ÆÀßÄꤵ¤ì¡¢ÃͤÎÈÏ°Ï¤Ï 1-8 ¤Ç¤¢¤ë¡£ +呼び出しによって設定され、値の範囲は 1-8 である。 .I syslog(type,dummy,dummy) -¸Æ¤Ó½Ð¤·¤Ç \fItype\fP ¤¬ 6 ¤â¤·¤¯¤Ï 7 ¤Î¾ì¹ç¡¢ -console_loglevel ¤Ï 1 (¥«¡¼¥Í¥ë¡¦¥Ñ¥Ë¥Ã¥¯¤Î¤ß)¡¢ -7 (¥Ç¥Ð¥Ã¥°¡¦¥á¥Ã¥»¡¼¥¸°Ê³°¤ÎÁ´¤Æ) ¤Ë¤½¤ì¤¾¤ìÀßÄꤵ¤ì¤ë¡£ +呼び出しで \fItype\fP が 6 もしくは 7 の場合、 +console_loglevel は 1 (カーネル・パニックのみ)、 +7 (デバッグ・メッセージ以外の全て) にそれぞれ設定される。 -¥á¥Ã¥»¡¼¥¸¤Î³Æ¹Ô¤Ï¤½¤ì¤¾¤ì¤Ë¥í¥°¥ì¥Ù¥ë¤ò»ý¤Ä¡£¤³¤Î¥í¥°¥ì¥Ù¥ë¤Ï +メッセージの各行はそれぞれにログレベルを持つ。このログレベルは .I "DEFAULT_MESSAGE_LOGLEVEL \- 1" -(6) ¤Ç¤¢¤ë¤¬¡¢ (\fId\fP ¤Ï 1-7 ¤ÎÈϰϤοô»ú) ¤Ç»Ï¤Þ¤ë¹Ô¤Î -¥í¥°¥ì¥Ù¥ë¤Ï \fId\fP ¤Ç¤¢¤ë¡£ -¥í¥°¥ì¥Ù¥ë¤Î´·½¬Åª¤Ê°ÕÌ£¤Ï +(6) であるが、 (\fId\fP は 1-7 の範囲の数字) で始まる行の +ログレベルは \fId\fP である。 +ログレベルの慣習的な意味は .I -¤Ë°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +に以下のように定義されている: .nf -#define KERN_EMERG "<0>" /* ¥·¥¹¥Æ¥à¤¬»ÈÍÑÉÔǽ */ -#define KERN_ALERT "<1>" /* ľ¤Á¤ËÂн褬ɬÍ× */ -#define KERN_CRIT "<2>" /* Ã×̿Ū¤Ê¾õÂÖ */ -#define KERN_ERR "<3>" /* ¥¨¥é¡¼¾õÂÖ */ -#define KERN_WARNING "<4>" /* ·Ù¹ð¾õÂÖ */ -#define KERN_NOTICE "<5>" /* Ä̾ï¾õÂÖ¤À¤¬Âç»ö¤Ê¾ðÊó */ -#define KERN_INFO "<6>" /* ÄÌÃÎ */ -#define KERN_DEBUG "<7>" /* ¥Ç¥Ð¥Ã¥°¥ì¥Ù¥ë¤Î¾ðÊó */ +#define KERN_EMERG "<0>" /* システムが使用不能 */ +#define KERN_ALERT "<1>" /* 直ちに対処が必要 */ +#define KERN_CRIT "<2>" /* 致命的な状態 */ +#define KERN_ERR "<3>" /* エラー状態 */ +#define KERN_WARNING "<4>" /* 警告状態 */ +#define KERN_NOTICE "<5>" /* 通常状態だが大事な情報 */ +#define KERN_INFO "<6>" /* 通知 */ +#define KERN_DEBUG "<7>" /* デバッグレベルの情報 */ .fi -.SH ÊÖ¤êÃÍ -\fItype\fP ¤¬ 2, 3, 4 ¤Î¾ì¹ç¡¢À®¸ù¤¹¤ë¤È +.SH 返り値 +\fItype\fP が 2, 3, 4 の場合、成功すると .BR syslog () -¤ÏÆɤ߽Ф·¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -\fItype\fP ¤¬ 9 ¤Î¾ì¹ç¡¢ -¥«¡¼¥Í¥ë¡¦¥í¥°¥Ð¥Ã¥Õ¥¡¤Ë¤¢¤ë¸½ºßÆɤ߽Ф·²Äǽ¤Ê¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -\fItype\fP ¤¬ 10 ¤Î¾ì¹ç¡¢ -¥«¡¼¥Í¥ë¡¦¥í¥°¥Ð¥Ã¥Õ¥¡¤ÎÁíÎ̤òÊÖ¤¹¡£ -\fItype\fP ¤¬¤½¤ì°Ê³°¤ÎÃͤξì¹ç¡¢À®¸ù¤¹¤ë¤È 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +は読み出したバイト数を返す。 +\fItype\fP が 9 の場合、 +カーネル・ログバッファにある現在読み出し可能なバイト数を返す。 +\fItype\fP が 10 の場合、 +カーネル・ログバッファの総量を返す。 +\fItype\fP がそれ以外の値の場合、成功すると 0 が返される。 -¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢\-1\ ¤¬Ê֤ꡢ -\fIerrno\fP ¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +エラーの場合は、\-1\ が返り、 +\fIerrno\fP にエラーを示す値が設定される。 +.SH エラー .TP .B EINVAL -ÉÔÀµ¤Ê°ú¤­¿ô -(¶ñÂÎŪ¤Ë¤Ï¡¢ +不正な引き数 +(具体的には、 .I type -¤¬Àµ¤·¤¯¤Ê¤¤¡¢¤â¤·¤¯¤Ï +が正しくない、もしくは .I type -¤¬ 2, 3, 4 ¤Î¾ì¹ç¤Ë +が 2, 3, 4 の場合に .I buf -¤¬ NULL ¤« +が NULL か .I len -¤¬ 0 ̤Ëþ¤Ç¤¢¤ë¡¢¤â¤·¤¯¤Ï +が 0 未満である、もしくは .I type -¤¬ 8 ¤Î¾ì¹ç¤Ë +が 8 の場合に .I level -¤¬ 1 °Ê¾å 8 °Ê²¼¤ÎÈϰϤËÆþ¤Ã¤Æ¤¤¤Ê¤¤)¡£ +が 1 以上 8 以下の範囲に入っていない)。 .TP .B ENOSYS -¥«¡¼¥Í¥ë¤ÎÀßÄꥪ¥×¥·¥ç¥ó +カーネルの設定オプション .BR CONFIG_PRINTK -¤ò̵¸ú¤Ë¤·¤Æ¥«¡¼¥Í¥ë¤¬¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤¤¤ë¤¿¤á¡¢ +を無効にしてカーネルがコンパイルされているため、 .BR syslog () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ÍøÍѤǤ­¤Ê¤¤¡£ +システムコールが利用できない。 .TP .B EPERM -½½Ê¬¤Ê¸¢¸Â¤ò»ý¤¿¤Ê¤¤¥×¥í¥»¥¹ (Àµ³Î¤Ë¤Ï +十分な権限を持たないプロセス (正確には .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤¥×¥í¥»¥¹) ¤¬ console_loglevel¤òÊѹ¹¤·¤è¤¦¤È¤·¤¿¤«¡¢ -¥«¡¼¥Í¥ë¡¦¥á¥Ã¥»¡¼¥¸¡¦¥ê¥ó¥°¤ò¾Ãµî¤·¤è¤¦¤È¤·¤¿¡£ +ケーパビリティを持たないプロセス) が console_loglevelを変更しようとしたか、 +カーネル・メッセージ・リングを消去しようとした。 .TP .B ERESTARTSYS -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤¬¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¡¢²¿¤âÆɤ߽Ф»¤Ê¤«¤Ã¤¿¡£ -(¥È¥ì¡¼¥¹Ãæ¤Ë¤·¤«È¯À¸¤¹¤ë¤³¤È¤Ï¤Ê¤¤) -.SH ½àµò -¤³¤Î¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï -»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ -.SH Ãí°Õ -¤«¤Ê¤ê½é´ü¤Îº¢¤«¤é¡¢Æ±¤¸Ì¾Á°¤ò»ý¤Ä¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤È -¥é¥¤¥Ö¥é¥ê¡¦¥ë¡¼¥Á¥ó¤¬Á´¤¯°Û¤Ê¤ëÂåʪ¤Ç¤¢¤ë¤Î¤ÏÉÔ¹¬¤Ê¤³¤È¤À¤È -µ¤ÉÕ¤«¤ì¤Æ¤¤¤¿¡£ -libc4 ¤È libc5 ¤Ç¤Ï¤³¤Î¥³¡¼¥ë¤ÎÈÖ¹æ¤Ï +システム・コールがシグナルによって割り込まれ、何も読み出せなかった。 +(トレース中にしか発生することはない) +.SH 準拠 +このシステム・コールは Linux 特有であり、移植を意図したプログラムでは +使用してはいけない。 +.SH 注意 +かなり初期の頃から、同じ名前を持つシステム・コールと +ライブラリ・ルーチンが全く異なる代物であるのは不幸なことだと +気付かれていた。 +libc4 と libc5 ではこのコールの番号は .B SYS_klog -¤ÈÄêµÁ¤µ¤ì¤Æ¤¤¤¿¡£ -glibc2.0 ¤Ç¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +と定義されていた。 +glibc2.0 でこのシステムコールは .BR klogctl () -¤È¤¤¤¦Ì¾Á°¤Ë²þ¤á¤é¤ì¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +という名前に改められた。 +.SH 関連項目 .BR syslog (3) diff --git a/release/man2/tee.2 b/release/man2/tee.2 index 1e0e0f93..cf60647d 100644 --- a/release/man2/tee.2 +++ b/release/man2/tee.2 @@ -28,18 +28,18 @@ .\" Translated 2007-02-04, Akihiro MOTOKI .\" .TH TEE 2 2009-09-15 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -tee \- ¥Ñ¥¤¥×¤ÎÃæ¿È¤òÊ£À½¤¹¤ë -.SH ½ñ¼° +.SH 名前 +tee \- パイプの中身を複製する +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .BI "ssize_t tee(int " fd_in ", int " fd_out ", size_t " len \ ", unsigned int " flags ); .fi .\" Return type was long before glibc 2.7 -.SH ÀâÌÀ +.SH 説明 .\" Example programs http://brick.kernel.dk/snaps .\" .\" @@ -47,101 +47,101 @@ tee \- .\" (again, incrementing their reference count, not copying the data) from .\" one pipe to two other pipes. .BR tee () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +は、ファイルディスクリプタ .I fd_in -¤¬»²¾È¤¹¤ë¥Ñ¥¤¥×¤«¤é¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +が参照するパイプからファイルディスクリプタ .I fd_out -¤¬»²¾È¤¹¤ë¥Ñ¥¤¥×¤ØºÇÂç +が参照するパイプへ最大 .I len -¥Ð¥¤¥È¤Î¥Ç¡¼¥¿¤òÊ£À½¤¹¤ë¡£ -¤³¤ÎÁàºî¤Ç¤Ï¡¢Ê£À½¤µ¤ì¤ë¥Ç¡¼¥¿¤Ï +バイトのデータを複製する。 +この操作では、複製されるデータは .I fd_in -¤«¤é¤Ï¾ÃÈñ¤µ¤ì¤Ê¤¤¡£¤·¤¿¤¬¤Ã¤Æ¡¢¤³¤ì¤é¤Î¥Ç¡¼¥¿¤ò¤³¤Î¸å¤Î +からは消費されない。したがって、これらのデータをこの後の .BR splice (2) -¤Ç¥³¥Ô¡¼¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +でコピーすることができる。 .I flags -¤Ï°ìÏ¢¤Î½¤¾þ¥Õ¥é¥°¤Ç¤¢¤ê¡¢ +は一連の修飾フラグであり、 .BR splice (2) -¤ä +や .BR vmsplice (2) -¤È¶¦Ä̤Î̾Á°¤Ç¤¢¤ë¡£ +と共通の名前である。 .TP 1.9i .B SPLICE_F_MOVE -¸½ºß¤Î¤È¤³¤í +現在のところ .BR tee () -¤Ç¤Ï²¿¤Î¸ú²Ì¤â¤Ê¤¤¡£ +では何の効果もない。 .BR splice (2) -»²¾È¡£ +参照。 .TP .B SPLICE_F_NONBLOCK -Æþ½ÐÎÏ»þ¤ËÄä»ß (block) ¤·¤Ê¤¤¡£ -¾ÜºÙ¤Ï +入出力時に停止 (block) しない。 +詳細は .BR splice (2) -»²¾È¡£ +参照。 .TP .B SPLICE_F_MORE -¸½ºß¤Î¤È¤³¤í +現在のところ .BR tee () -¤Ç¤Ï²¿¤Î¸ú²Ì¤â¤Ê¤¤¤¬¡¢¾­ÍèŪ¤Ë¤Ï¼ÂÁõ¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +では何の効果もないが、将来的には実装される可能性がある。 .BR splice (2) -»²¾È¡£ +参照。 .TP .B SPLICE_F_GIFT .BR tee () -¤Ç¤Ï̤»ÈÍÑ¡£ +では未使用。 .BR vmsplice (2) -»²¾È¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤Æ´°Î»¤¹¤ë¤È¡¢ +参照。 +.SH 返り値 +成功して完了すると、 .BR tee () -¤ÏÆþ½ÐÎÏ´Ö¤ÇÊ£À½¤µ¤ì¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -ÊÖ¤êÃÍ 0 ¤Ï¥Ç¡¼¥¿¤ÎžÁ÷¤¬¹Ô¤ï¤ì¤Ê¤«¤Ã¤¿¤³¤È¤ò¼¨¤¹¡£ -¤³¤Î¾ì¹ç¡¢½èÍý¤òÄä»ß (block) ¤·¤Æ¤â̵°ÕÌ£¤Ç¤¢¤ë¡£ -¤Ê¤¼¤Ê¤é¡¢ +は入出力間で複製されたバイト数を返す。 +返り値 0 はデータの転送が行われなかったことを示す。 +この場合、処理を停止 (block) しても無意味である。 +なぜなら、 .I fd_in -¤¬»²¾È¤¹¤ë¥Ñ¥¤¥×¤Î½ñ¤­¹þ¤ß¦¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¼Ô¤¬¤¤¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +が参照するパイプの書き込み側に接続されている者がいないからである。 -¥¨¥é¡¼¤Î¾ì¹ç¡¢ +エラーの場合、 .BR tee () -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値を設定する。 +.SH エラー .TP .B EINVAL .I fd_in -¤È +と .I fd_out -¤Î¤É¤Á¤é¤«¤¬¥Ñ¥¤¥×¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£¤â¤·¤¯¤Ï +のどちらかがパイプを参照していない。もしくは .I fd_in -¤È +と .I fd_out -¤¬Æ±¤¸¥Ñ¥¤¥×¤ò»²¾È¤·¤Æ¤¤¤ë¡£ +が同じパイプを参照している。 .TP .B ENOMEM -¥á¥â¥êÉÔ­¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +メモリ不足。 +.SH バージョン .BR tee () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 2.6.17 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -³µÇ°¤È¤·¤Æ¤Ï¡¢ +システムコールは Linux 2.6.17 で初めて登場した。 +.SH 準拠 +このシステムコールは Linux 固有である。 +.SH 注意 +概念としては、 .BR tee () -¤ÏÆó¤Ä¤Î¥Ñ¥¤¥×´Ö¤Ç¥Ç¡¼¥¿¤Î¥³¥Ô¡¼¤ò¹Ô¤¦¡£ -¤·¤«¤·¡¢¼ÂºÝ¤Ë¤Ï¼Â¥Ç¡¼¥¿¤Î¥³¥Ô¡¼¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ -ÆâÉô¤Ç¤Ï¡¢ +は二つのパイプ間でデータのコピーを行う。 +しかし、実際には実データのコピーは行われない。 +内部では、 .BR tee () -¤ÏÆþÎϦ¤ËÂФ¹¤ë»²¾È¤À¤±¤òºîÀ®¤¹¤ë¤³¤È¤Ç½ÐÎϦ¤Ë¥Ç¡¼¥¿¤ò -Äɲ乤롣 -.SH Îã -°Ê²¼¤ÎÎã¤Ï¡¢ +は入力側に対する参照だけを作成することで出力側にデータを +追加する。 +.SH 例 +以下の例は、 .BR tee () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤Æ¡¢ -´ðËÜŪ¤Ê +システムコールを使って、 +基本的な .BR tee (1) -¥×¥í¥°¥é¥à¤ò¼ÂÁõ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +プログラムを実装したものである。 .nf #define _GNU_SOURCE @@ -203,6 +203,6 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR splice (2), .BR vmsplice (2) diff --git a/release/man2/time.2 b/release/man2/time.2 index 4ba4f063..a66e6825 100644 --- a/release/man2/time.2 +++ b/release/man2/time.2 @@ -33,52 +33,52 @@ .\" Modified Sun Mar 21 17:23:27 JST 1999 .\" by HANATAKA Shinya .\" -.\"WORD: the Epoch µª¸µ +.\"WORD: the Epoch 紀元 .\" .TH TIME 2 2010-02-25 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -time \- ÉÃñ°Ì¤Î»þ´Ö¤òÆÀ¤ë -.SH ½ñ¼° +.SH 名前 +time \- 秒単位の時間を得る +.SH 書式 .B #include .sp .BI "time_t time(time_t *" t ); -.SH ÀâÌÀ +.SH 説明 .BR time () -¤Ï¡¢µª¸µ (Epoch; 1970-01-01 00:00:00 (UTC)) ¤«¤é¤ÎÉÿô¤ÇÊÖ¤¹¡£ +は、紀元 (Epoch; 1970-01-01 00:00:00 (UTC)) からの秒数で返す。 -¤â¤· +もし .I t -¤¬ NULL ¤Ç¤Ê¤«¤Ã¤¿¤éÊÖ¤êÃÍ¤Ï +が NULL でなかったら返り値は .I t -¤Î»Ø¤·¤Æ¤¤¤ë¥á¥â¥ê¤Ë¤â³ÊǼ¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢µª¸µ(the Epoch)¤«¤é¤Î·Ð²áÉÿô¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï -\fI((time_t)\ \-1)\fP ¤òÊÖ¤·¡¢\fIerrno\fP ¤òÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +の指しているメモリにも格納される。 +.SH 返り値 +成功した場合、紀元(the Epoch)からの経過秒数を返す。エラーの場合は +\fI((time_t)\ \-1)\fP を返し、\fIerrno\fP を設定する。 +.SH エラー .TP .B EFAULT .I t -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ -.SH ½àµò +がアクセス可能なアドレス空間の外を指している。 +.SH 準拠 SVr4, 4.3BSD, C89, C99, POSIX.1-2001. .\" .br -.\" 4.3BSD ¤Ç¤Ï¤³¤Î´Ø¿ô¤Ï +.\" 4.3BSD ではこの関数は .\" .BR gettimeofday (2) -.\" ¤Ë¼è¤Ã¤ÆÂå¤ï¤é¤ì¤Æ¤¤¤ë¡£ -POSIX ¤Ë¤Ï¥¨¥é¡¼¾õÂ֤ε¬Äê¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ -POSIX.1 ¤Ç¤Ï -.I ¡Öµª¸µ¤«¤é¤Î·Ð²áÉÿô (seconds since the Epoch)¡× -¤Ï»ØÄꤷ¤¿»þ¹ï¤Èµª¸µ¤È¤Î´Ö¤ÎÉÿô¤Ç¤¢¤ë¤ÈÄêµÁ¤·¤Æ¤¤¤ë¡£ -¤¿¤À¤·¤³¤Î¤È¤­ UTC (¶¨ÄêÀ¤³¦»þ) ¤«¤éÉäòµá¤á¤ëÊÑ´¹¤Ë¤Ï¡¢ÁÇËѤÊÊÑ´¹¼° -(±¼Éäò̵»ë¤·¡¢ 4 ¤Ç³ä¤êÀÚ¤ì¤ëǯ¤ò¤¹¤Ù¤Æ±¼Ç¯¤È¤·¤¿¼°) -¤òÍѤ¤¤ë¤â¤Î¤È¤·¤Æ¤¤¤ë¡£ -¤³¤ÎÃͤϵª¸µ¤È¸½ºß»þ¹ï¤È¤Î´Ö¤Ç¼ÂºÝ¤Ë·Ð²á¤·¤¿Éÿô¤ÈƱ¤¸¤Ç¤Ï¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¤Ð±¼Éä¬Â¸ºß¤¹¤ë¤·¡¢»þ·×(clock)¤òɸ½à»þ´Ö(standard reference)¤Ë -Ʊ´ü¤µ¤»¤ë¤³¤È¤òÍ׵ᤵ¤ì¤Æ¤¤¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ -¤³¤ÎÄêµÁ¤Î°Õ¿Þ¤Ïµª¸µ¤«¤é¤Î·Ð²áÉÿô¤Î²ò¼á¤ò°ìÄê¤Ë¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£ -¤è¤ê¾Ü¤·¤¤¸¶Íý¤Ï POSIX.1 Annex B 2.2.2 ¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +.\" に取って代わられている。 +POSIX にはエラー状態の規定はない。 +.SH 注意 +POSIX.1 では +.I 「紀元からの経過秒数 (seconds since the Epoch)」 +は指定した時刻と紀元との間の秒数であると定義している。 +ただしこのとき UTC (協定世界時) から秒を求める変換には、素朴な変換式 +(閏秒を無視し、 4 で割り切れる年をすべて閏年とした式) +を用いるものとしている。 +この値は紀元と現在時刻との間で実際に経過した秒数と同じではない。 +なぜならば閏秒が存在するし、時計(clock)を標準時間(standard reference)に +同期させることを要求されていないからである。 +この定義の意図は紀元からの経過秒数の解釈を一定にすることである。 +より詳しい原理は POSIX.1 Annex B 2.2.2 を参照すること。 +.SH 関連項目 .BR date (1), .BR gettimeofday (2), .BR ctime (3), diff --git a/release/man2/timerfd_create.2 b/release/man2/timerfd_create.2 index 4407b00e..3c5bb975 100644 --- a/release/man2/timerfd_create.2 +++ b/release/man2/timerfd_create.2 @@ -21,10 +21,10 @@ .\" Updated 2009-04-24, Akihiro MOTOKI , LDP 3.20 .\" .TH TIMERFD_CREATE 2 2009-03-10 Linux "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 timerfd_create, timerfd_settime, timerfd_gettime \- -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿·Ðͳ¤ÇÄÌÃΤ¹¤ë¥¿¥¤¥Þ¡¼ -.SH ½ñ¼° +ファイルディスクリプタ経由で通知するタイマー +.SH 書式 .nf .B #include .sp @@ -36,91 +36,91 @@ timerfd_create, timerfd_settime, timerfd_gettime \- .sp .BI "int timerfd_gettime(int " fd ", struct itimerspec *" curr_value ); .fi -.SH ÀâÌÀ -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ËþλÄÌÃΤò¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿·Ðͳ¤ÇÇÛÁ÷¤¹¤ë -¥¿¥¤¥Þ¡¼¤ÎÀ¸À®¤ÈÁàºî¤ò¹Ô¤¦¡£ -¤³¤ì¤é¤Ï¡¢ +.SH 説明 +これらのシステムコールは、満了通知をファイルディスクリプタ経由で配送する +タイマーの生成と操作を行う。 +これらは、 .BR setitimer (2) -¤ä +や .BR timer_create (2) -¤òÍѤ¤¤ëÊýË¡¤ÎÂå¤ï¤ê¤È¤Ê¤ë¤â¤Î¤Ç¤¢¤ê¡¢¤³¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò +を用いる方法の代わりとなるものであり、このファイルディスクリプタを .BR select (2), .BR poll (2), .BR epoll (7) -¤Ç´Æ»ë¤Ç¤­¤ë¤È¤¤¤¦ÍøÅÀ¤¬¤¢¤ë¡£ +で監視できるという利点がある。 -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤¦¤Î¤Ï¡¢¤½¤ì¤¾¤ì +これらのシステムコールを使うのは、それぞれ .BR timer_create (2), .BR timer_settime (2), .BR timer_gettime (2) -¤ò»È¤¦¤Î¤ÈƱÍͤǤ¢¤ë +を使うのと同様である .RB ( timer_getoverrun (2) -¤ËÂбþ¤¹¤ë¤â¤Î¤Ï¤Ê¤¯¡¢°Ê²¼¤ÇÀâÌÀ¤¹¤ë¤è¤¦¤Ë -¤³¤Îµ¡Ç½¤Ï +に対応するものはなく、以下で説明するように +この機能は .BR read (2) -¤Ë¤è¤êÄ󶡤µ¤ì¤ë)¡£ +により提供される)。 .\" .SS timerfd_create() .BR timerfd_create () -¤Ï¿·µ¬¤Î¥¿¥¤¥Þ¡¼¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤·¡¢¤½¤Î¥¿¥¤¥Þ¡¼¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ +は新規のタイマーオブジェクトを生成し、そのタイマーを参照するファイル +ディスクリプタを返す。 .I clockid -°ú¤­¿ô¤Ï¡¢¥¿¥¤¥Þ¡¼¤Î¿ÊĽ¤ò´ÉÍý¤¹¤ë¤¿¤á¤Î¥¯¥í¥Ã¥¯¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¡¢ +引き数は、タイマーの進捗を管理するためのクロックを指定するもので、 .B CLOCK_REALTIME -¤« +か .B CLOCK_MONOTONIC -¤Î¤¤¤º¤ì¤«¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +のいずれかでなければならない。 .B CLOCK_REALTIME -¤Ï¥·¥¹¥Æ¥àÁ´ÂΤǻÈÍѤµ¤ì¤ë¥¯¥í¥Ã¥¯¤Ç¡¢¤³¤Î¥¯¥í¥Ã¥¯¤ÏÊѹ¹²Äǽ¤Ç¤¢¤ë¡£ +はシステム全体で使用されるクロックで、このクロックは変更可能である。 .B CLOCK_MONOTONIC -¤ÏÊѹ¹¤µ¤ì¤ë¤³¤È¤Î¤Ê¤¤¥¯¥í¥Ã¥¯¤Ç¡¢(¥·¥¹¥Æ¥à»þ¹ï¤Î¼êÆ°¤Ç¤ÎÊѹ¹¤Ê¤É¤Î) -¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤ÎÉÔϢ³¤ÊÊѲ½¤Î±Æ¶Á¤ò¼õ¤±¤Ê¤¤¡£ -¤³¤ì¤é¤Î¥¯¥í¥Ã¥¯¤Î¸½ºß¤ÎÃÍ¤Ï +は変更されることのないクロックで、(システム時刻の手動での変更などの) +システムクロックの不連続な変化の影響を受けない。 +これらのクロックの現在の値は .BR clock_gettime (2) -¤ò»È¤Ã¤Æ¼èÆÀ¤Ç¤­¤ë¡£ +を使って取得できる。 -Linux 2.6.27 °Ê¹ß¤Ç¤Ï¡¢ -°Ê²¼¤ÎÃͤΤ¤¤¯¤Ä¤«¤ò¥Ó¥Ã¥Èñ°Ì¤ÎÏÀÍýÏ (OR) ¤Ç»ØÄꤹ¤ë¤³¤È¤Ç¡¢ +Linux 2.6.27 以降では、 +以下の値のいくつかをビット単位の論理和 (OR) で指定することで、 .BR timerfd_create () -¤Î¿¶Éñ¤¤¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +の振舞いを変更することができる。 .TP 14 .B TFD_NONBLOCK -¿·¤·¤¯À¸À®¤µ¤ì¤ë¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò (open file description) ¤Î +新しく生成されるオープンファイル記述 (open file description) の .B O_NONBLOCK -¥Õ¥¡¥¤¥ë¥¹¥Æ¡¼¥¿¥¹¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤³¤È¤Ç¡¢ +ファイルステータスフラグをセットする。 +このフラグを使うことで、 .B O_NONBLOCK -¤ò¥»¥Ã¥È¤¹¤ë¤¿¤á¤Ë +をセットするために .BR fcntl (2) -¤òÄɲäǸƤӽФ¹É¬Íפ¬¤Ê¤¯¤Ê¤ë¡£ +を追加で呼び出す必要がなくなる。 .TP .B TFD_CLOEXEC -¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ +新しいファイルディスクリプタに対して close-on-exec .RB ( FD_CLOEXEC ) -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬Ìò¤ËΩ¤ÄÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +フラグをセットする。 +このフラグが役に立つ理由については、 .BR open (2) -¤Î +の .B O_CLOEXEC -¥Õ¥é¥°¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +フラグの説明を参照のこと。 .PP -¥Ð¡¼¥¸¥ç¥ó 2.6.26 °ÊÁ°¤Î Linux ¤Ç¤Ï¡¢ +バージョン 2.6.26 以前の Linux では、 .I flags -°ú¤­¿ô¤Ï̤»ÈÍѤǤ¢¤ê¡¢0 ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数は未使用であり、0 を指定しなければならない。 .SS timerfd_settime() .BR timerfd_settime () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +は、ファイルディスクリプタ .I fd -¤Ë¤è¤ê»²¾È¤µ¤ì¤ë¥¿¥¤¥Þ¡¼¤ò³«»Ï¤·¤¿¤êÄä»ß¤·¤¿¤ê¤¹¤ë¡£ +により参照されるタイマーを開始したり停止したりする。 .I new_value -°ú¤­¿ô¤Ï¡¢¥¿¥¤¥Þ¡¼¤ÎËþλ»þ´Ö (expiration) ¤Î½é´üÃÍ¤È´Ö³Ö (interval) ¤ò -»ØÄꤹ¤ë¡£¤³¤Î°ú¤­¿ô¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë +引き数は、タイマーの満了時間 (expiration) の初期値と間隔 (interval) を +指定する。この引き数で使用されている .I itimerspec -¹½Â¤ÂÎ¤Ë¤Ï 2 ¤Ä¤Î¥Õ¥£¡¼¥ë¥É¤¬¤¢¤ê¡¢³Æ¥Õ¥£¡¼¥ë¥É¤Ï +構造体には 2 つのフィールドがあり、各フィールドは .I timespec -·¿¤Î¹½Â¤ÂΤǤ¢¤ë¡£ +型の構造体である。 .in +4n .nf @@ -137,240 +137,240 @@ struct itimerspec { .in .PP .I new_value.it_value -¤Ï¥¿¥¤¥Þ¡¼¤ÎËþλ»þ´Ö¤Î½é´üÃͤò¡¢ÉäȥʥÎÉäǻØÄꤹ¤ë¡£ +はタイマーの満了時間の初期値を、秒とナノ秒で指定する。 .I new_value.it_value -¤Î¥Õ¥£¡¼¥ë¥É¤Î¤¦¤Á¾¯¤Ê¤¯¤È¤â°ìÊý¤Ë 0 °Ê³°¤ÎÃͤòÀßÄꤹ¤ë¤È¡¢ -¥¿¥¤¥Þ¡¼¤¬³«»Ï¤µ¤ì¤ë¡£ -ξÊý¤Î¥Õ¥£¡¼¥ë¥É¤Ë 0 ¤òÀßÄꤹ¤ë¤È¡¢¥¿¥¤¥Þ¡¼¤¬Ää»ß¤¹¤ë¡£ +のフィールドのうち少なくとも一方に 0 以外の値を設定すると、 +タイマーが開始される。 +両方のフィールドに 0 を設定すると、タイマーが停止する。 .I new_value.it_interval -¤Ï¥¿¥¤¥Þ¡¼¤Î°ì²óÌܤÎËþλ¸å¤Ë·«¤êÊÖ¤·¥¿¥¤¥Þ¡¼¤ÎËþλ´Ö³Ö¤ò¡¢ÉäȥʥÎÉäǻØÄꤹ¤ë¡£ +はタイマーの一回目の満了後に繰り返しタイマーの満了間隔を、秒とナノ秒で指定する。 .I new_value.it_interval -¤Î¥Õ¥£¡¼¥ë¥É¤Î¤¦¤Á¾¯¤Ê¤¯¤È¤â°ìÊý¤Ë 0 °Ê³°¤ÎÃͤòÀßÄꤹ¤ë¤È¡¢ -·«¤êÊÖ¤·¥¿¥¤¥Þ¡¼¤¬Í­¸ú¤Ë¤Ê¤ë¡£ -ξÊý¤Î¥Õ¥£¡¼¥ë¥É¤Ë 0 ¤òÀßÄꤷ¤¿¾ì¹ç¡¢¥¿¥¤¥Þ¡¼¤Ï +のフィールドのうち少なくとも一方に 0 以外の値を設定すると、 +繰り返しタイマーが有効になる。 +両方のフィールドに 0 を設定した場合、タイマーは .I new_value.it_value -¤Ç»ØÄꤵ¤ì¤¿»þ´Ö¸å¤Ë¡¢°ì²ó¤À¤±Ëþλ¤·¤ÆÄä»ß¤¹¤ë¡£ +で指定された時間後に、一回だけ満了して停止する。 .I flags -°ú¤­¿ô¤Ë¤Ï 0 ¤« +引き数には 0 か .B TFD_TIMER_ABSTIME -¤ò»ØÄꤹ¤ë¡£ -0 ¤ÏÁêÂлþ¹ï¥¿¥¤¥Þ¡¼¤ò°ÕÌ£¤·¡¢ +を指定する。 +0 は相対時刻タイマーを意味し、 .I new_value.it_interval -¤Ç¤Ï +では .I clockid -¤Ç»ØÄꤵ¤ì¤¿¥¯¥í¥Ã¥¯¤Î¸½ºß¤ÎÃͤ«¤é¤ÎÁêÂÐŪ¤Ê»þ¹ï¤ò»ØÄꤹ¤ë¡£ +で指定されたクロックの現在の値からの相対的な時刻を指定する。 .B TFD_TIMER_ABSTIME -¤ÏÀäÂлþ¹ï¥¿¥¤¥Þ¡¼¤ò°ÕÌ£¤·¡¢ +は絶対時刻タイマーを意味し、 .I new_value.it_interval -¤Ç¤Ï +では .I clockid -¤Ç»ØÄꤵ¤ì¤¿¥¯¥í¥Ã¥¯¤ÎÀäÂлþ¹ï¤ò»ØÄꤹ¤ë¡£¤Ä¤Þ¤ê¡¢ -¥¯¥í¥Ã¥¯¤ÎÃͤ¬ +で指定されたクロックの絶対時刻を指定する。つまり、 +クロックの値が .I new_value.it_interval -¤Ç»ØÄꤵ¤ì¤¿»þ¹ï¤Ë㤷¤¿¤é¡¢¥¿¥¤¥Þ¡¼¤¬Ëþλ¤¹¤ë¡£ +で指定された時刻に達したら、タイマーが満了する。 .I old_value -°ú¤­¿ô¤òÄ̤¸¤Æ¡¢ +引き数を通じて、 .BR timerfd_settime () -¤ò¸Æ¤Ó½Ð¤·¤¿»þÅÀ¤Ç¤Î¥¿¥¤¥Þ¡¼¤ÎÀßÄê¤òÊÝ»ý¤·¤¿¹½Â¤ÂΤ¬ÊÖ¤µ¤ì¤ë¡£ -²¼µ­¤Î +を呼び出した時点でのタイマーの設定を保持した構造体が返される。 +下記の .BR timerfd_gettime () -¤ÎÀâÌÀ¤ò»²¾È¡£ +の説明を参照。 .\" .SS timerfd_gettime() .BR timerfd_gettime () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +は、ファイルディスクリプタ .I fd -¤Ç»²¾È¤µ¤ì¤ë¥¿¥¤¥Þ¡¼¤Î¸½ºß¤ÎÀßÄ꤬Æþ¤Ã¤¿ +で参照されるタイマーの現在の設定が入った .I itimerspec -¹½Â¤ÂΤò¡¢ +構造体を、 .I curr_value -¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ +に格納して返す。 .I it_value -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥¿¥¤¥Þ¡¼¤¬¼¡¤ËËþλ¤¹¤ë¤Þ¤Ç¤Î»Ä¤ê»þ´Ö¤òÊÖ¤¹¡£ -¤³¤Î¹½Â¤ÂΤÎξÊý¤Î¥Õ¥£¡¼¥ë¥É¤¬ 0 ¤Ç¤¢¤ì¤Ð¡¢¥¿¥¤¥Þ¡¼¤Ï¸½ºßÄä»ß¤·¤Æ¤¤¤ë¡£ -¥¿¥¤¥Þ¡¼ÀßÄê»þ¤Ë +フィールドは、タイマーが次に満了するまでの残り時間を返す。 +この構造体の両方のフィールドが 0 であれば、タイマーは現在停止している。 +タイマー設定時に .B TFD_TIMER_ABSTIME -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤¿¤«¤Ë´Ø¤ï¤é¤º¡¢¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¾ï¤ËÁêÂÐÃͤ¬³ÊǼ¤µ¤ì¤ë¡£ +フラグが指定されたかに関わらず、このフィールドは常に相対値が格納される。 .I it_interval -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥¿¥¤¥Þ¡¼¤Î´Ö³Ö¤òÊÖ¤¹¡£ -¤³¤Î¹½Â¤ÂΤÎξÊý¤Î¥Õ¥£¡¼¥ë¥É¤¬ 0 ¤Ç¤¢¤ì¤Ð¡¢¥¿¥¤¥Þ¡¼¤Ï +フィールドは、タイマーの間隔を返す。 +この構造体の両方のフィールドが 0 であれば、タイマーは .I new_value.it_value -¤Ç»ØÄꤵ¤ì¤¿»þ´Ö¸å¤Ë°ì²ó¤À¤±Ëþλ¤·¤ÆÄä»ß¤¹¤ë¤è¤¦¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¡£ -.SS ¥¿¥¤¥Þ¡¼¡¦¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ¹¤ëÁàºî +で指定された時間後に一回だけ満了して停止するように設定されている。 +.SS タイマー・ファイルディスクリプタに対する操作 .BR timerfd_create () -¤¬ÊÖ¤¹¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï°Ê²¼¤ÎÁàºî¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ +が返すファイルディスクリプタは以下の操作をサポートしている。 .TP .BR read (2) .BR timerfd_settime () -¤ò»È¤Ã¤Æ¥¿¥¤¥Þ¡¼¤ÎÀßÄ꤬ºÇ¸åÊѹ¹¤µ¤ì¤Æ°Ê¹ß¡¢¤Þ¤¿¤Ï +を使ってタイマーの設定が最後変更されて以降、または .BR read (2) -¤Î¸Æ¤Ó½Ð¤·¤ËºÇ¸å¤ËÀ®¸ù¤·¤Æ°Ê¹ß¤Ë¡¢¥¿¥¤¥Þ¡¼¤ÎËþ뤬°ì²ó°Ê¾åȯÀ¸¤·¤Æ¤¤¤ì¤Ð¡¢ +の呼び出しに最後に成功して以降に、タイマーの満了が一回以上発生していれば、 .BR read (2) -¤ËÅϤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Ë¡¢¥¿¥¤¥Þ¡¼Ëþλ²ó¿ô¤ò¼¨¤¹ 8 ¥Ð¥¤¥È¤Î unsigned ·¿¤ÎÀ°¿ô +に渡されたバッファに、タイマー満了回数を示す 8 バイトの unsigned 型の整数 .RI ( uint64_t ) -¤¬ÊÖ¤µ¤ì¤ë -(ÊÖ¤µ¤ì¤ëÃͤϥۥ¹¥È¥Ð¥¤¥È¥ª¡¼¥À¡¢¤Ä¤Þ¤ê¤½¤Î¥Û¥¹¥È¥Þ¥·¥ó¤Ë¤ª¤±¤ë -À°¿ô¤ÎÄ̾ï¤Î¥Ð¥¤¥È¥ª¡¼¥À¤Ç¤¢¤ë)¡£ +が返される +(返される値はホストバイトオーダ、つまりそのホストマシンにおける +整数の通常のバイトオーダである)。 .IP .BR read (2) -¤ò¹Ô¤Ã¤¿»þÅÀ¤Ç¥¿¥¤¥Þ¡¼¤ÎËþλ¤¬È¯À¸¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ +を行った時点でタイマーの満了が発生していなければ、 .BR read (2) -¤ÏÄä»ß (block) ¤¹¤ë¡¢¤â¤·¤¯¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ -ÈóÄä»ß (nonblocking) ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¥¨¥é¡¼ +は停止 (block) する、もしくはファイルディスクリプタが +非停止 (nonblocking) に設定されている場合はエラー .B EAGAIN -¤Ç¼ºÇÔ¤¹¤ë (ÈóÄä»ß¥â¡¼¥É¤Ë¤¹¤ë¤Ë¤Ï¡¢ +で失敗する (非停止モードにするには、 .BR fcntl (2) -¤Î +の .B F_SETFL -Ì¿Îá¤Ç +命令で .B O_NONBLOCK -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë)¡£ +フラグをセットする)。 .IP -ÅϤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤¬ 8 ¥Ð¥¤¥È̤Ëþ¤Î¾ì¹ç¡¢ +渡されたバッファのサイズが 8 バイト未満の場合、 .BR read (2) -¤Ï¥¨¥é¡¼ +はエラー .B EINVAL -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .TP -.BR poll "(2), " select "(2) (¤ÈƱÍͤÎÁàºî)" -°ì¤Ä°Ê¾å¤Î¥¿¥¤¥Þ¡¼Ëþλ¤¬È¯À¸¤·¤Æ¤¤¤ì¤Ð¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÆɤ߽Ф·²Äǽ¤È¤Ê¤ë +.BR poll "(2), " select "(2) (と同様の操作)" +一つ以上のタイマー満了が発生していれば、 +ファイルディスクリプタは読み出し可能となる .RB ( select (2) -¤Î +の .I readfds -°ú¤­¿ô¤ä +引き数や .BR poll (2) -¤Î +の .B POLLIN -¥Õ¥é¥°)¡£ +フラグ)。 .IP -¤³¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢Â¾¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿Â¿½Å API ¤Ç¤¢¤ë +このファイルディスクリプタは、他のファイルディスクリプタ多重 API である .BR pselect (2), .BR ppoll (2), .BR epoll (7) -¤â¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ +もサポートしている。 .TP .BR close (2) -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¤½¤ì°Ê¹ß¤ÏɬÍפʤ¯¤Ê¤Ã¤¿ºÝ¤Ë¤Ï¡¢¥¯¥í¡¼¥º¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -Ʊ¤¸ timer ¥ª¥Ö¥¸¥§¥¯¥È¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Á´¤Æ -¥¯¥í¡¼¥º¤µ¤ì¤ë¤È¡¢¤½¤Î¥¿¥¤¥Þ¡¼¤Ï²ò½ü¤µ¤ì¡¢ -¤½¤Î¥ª¥Ö¥¸¥§¥¯¥ÈÍѤλñ¸»¤¬¥«¡¼¥Í¥ë¤Ë¤è¤ê²òÊü¤µ¤ì¤ë¡£ +ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきである。 +同じ timer オブジェクトに関連付けられたファイルディスクリプタが全て +クローズされると、そのタイマーは解除され、 +そのオブジェクト用の資源がカーネルにより解放される。 .\" -.SS fork(2) ¤Ç¤Î°·¤¤ +.SS fork(2) での扱い .BR fork (2) -¤¬¹Ô¤ï¤ì¤ë¤È¡¢»Ò¥×¥í¥»¥¹¤Ï +が行われると、子プロセスは .BR timerfd_create () -¤Ë¤è¤êÀ¸À®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¥³¥Ô¡¼¤ò -·Ñ¾µ¤¹¤ë¡£¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢¿Æ¥×¥í¥»¥¹¤ÎÂбþ¤¹¤ë -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÈƱ¤¸¥¿¥¤¥Þ¡¼¥ª¥Ö¥¸¥§¥¯¥È¤ò»²¾È¤·¤Æ¤ª¤ê¡¢ -»Ò¥×¥í¥»¥¹¤Î +により生成されたファイルディスクリプタのコピーを +継承する。そのファイルディスクリプタは、親プロセスの対応する +ファイルディスクリプタと同じタイマーオブジェクトを参照しており、 +子プロセスの .BR read (2) -¤Ç¤âƱ¤¸¥¿¥¤¥Þ¡¼¤ÎËþλ¤Ë´Ø¤¹¤ë¾ðÊó¤¬ÊÖ¤µ¤ì¤ë¡£ +でも同じタイマーの満了に関する情報が返される。 .\" -.SS execve(2) ¤Ç¤Î°·¤¤ +.SS execve(2) での扱い .BR execve (2) -¤ÎÁ°¸å¤Ç +の前後で .BR timerfd_create () -¤Ë¤è¤êÀ¸À®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÊÝ»ý¤µ¤ì¡¢ -¥¿¥¤¥Þ¡¼¤¬³«»Ï¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ë¤Ï¥¿¥¤¥Þ¡¼¤ÎËþλ¤¬È¯À¸¤·Â³¤±¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +により生成されたファイルディスクリプタは保持され、 +タイマーが開始されていた場合にはタイマーの満了が発生し続ける。 +.SH 返り値 +成功すると、 .BR timerfd_create () -¤Ï¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は新しいファイルディスクリプタを返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .BR timerfd_settime () -¤È +と .BR timerfd_gettime () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は成功すると 0 を返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値を設定する。 +.SH エラー .BR timerfd_create () -¤Ï°Ê²¼¤Î¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +は以下のエラーで失敗する可能性がある。 .TP .B EINVAL .I clockid -°ú¤­¿ô¤¬ +引き数が .B CLOCK_MONOTONIC -¤Ç¤â +でも .B CLOCK_REALTIME -¤Ç¤â¤Ê¤¤¡£ +でもない。 .TP .B EINVAL .I flags -¤¬Ìµ¸ú¤Ç¤¢¤ë¡£¤â¤·¤¯¤Ï¡¢Linux 2.6.26 °ÊÁ°¤Î¾ì¹ç¤Ï +が無効である。もしくは、Linux 2.6.26 以前の場合は .I flags -¤¬ 0 °Ê³°¤Ç¤¢¤ë¡£ +が 0 以外である。 .TP .B EMFILE -¥ª¡¼¥×¥óºÑ¤ß¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¿ô¤¬¥×¥í¥»¥¹¤¢¤¿¤ê¤Î¾å¸Â¤Ë -㤷¤Æ¤¤¤¿¡£ +オープン済みのファイルディスクリプタの数がプロセスあたりの上限に +達していた。 .TP .B ENFILE -¥ª¡¼¥×¥óºÑ¤ß¤Î¥Õ¥¡¥¤¥ëÁí¿ô¤¬¥·¥¹¥Æ¥àÁ´ÂΤξå¸Â¤Ë㤷¤Æ¤¤¤¿¡£ +オープン済みのファイル総数がシステム全体の上限に達していた。 .TP .B ENODEV -(¥«¡¼¥Í¥ëÆâ¤Î) ̵̾ inode ¥Ç¥Ð¥¤¥¹¤ò¥Þ¥¦¥ó¥È¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +(カーネル内の) 無名 inode デバイスをマウントできなかった。 .TP .B ENOMEM -¥¿¥¤¥Þ¡¼¤òºîÀ®¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¥«¡¼¥Í¥ë¥á¥â¥ê¤¬¤Ê¤«¤Ã¤¿¡£ +タイマーを作成するのに十分なカーネルメモリがなかった。 .PP .BR timerfd_settime () -¤È +と .BR timerfd_gettime () -¤Ï°Ê²¼¤Î¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +は以下のエラーで失敗する可能性がある。 .TP .B EBADF .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B EFAULT .IR new_value , .IR old_value , .I curr_value -¤¬Í­¸ú¤Ê¥Ý¥¤¥ó¥¿¤Ç¤Ï¤Ê¤¤¡£ +が有効なポインタではない。 .TP .B EINVAL .I fd -¤¬Í­¸ú¤Ê timerfd ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効な timerfd ファイルディスクリプタでない。 .PP .BR timerfd_settime () -¤Ï°Ê²¼¤Î¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë¤³¤È¤â¤¢¤ë¡£ +は以下のエラーで失敗することもある。 .TP .B EINVAL .I new_value -¤¬Å¬Àڤ˽é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¤ +が適切に初期化されていない .RI ( tv_nsec -¤Î°ì¤Ä¤¬ 0 ¤«¤é 999,999,999 ¤Þ¤Ç¤ÎÈϰϤËÆþ¤Ã¤Æ¤¤¤Ê¤¤)¡£ +の一つが 0 から 999,999,999 までの範囲に入っていない)。 .TP .B EINVAL .\" This case only checked since 2.6.29, and 2.2.2[78].some-stable-version. .\" In older kernel versions, no check was made for invalid flags. .I flags -¤¬Ìµ¸ú¤Ç¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë 2.6.25 °Ê¹ß¤Î Linux ¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -¥é¥¤¥Ö¥é¥ê¦¤Î¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.8 °Ê¹ß¤Î glibc ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -.SH Îã -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢¥¿¥¤¥Þ¡¼¤òºîÀ®¤·¡¢¤½¤Î¿ÊĽ¤ò¥â¥Ë¥¿¡¼¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î¥×¥í¥°¥é¥à¤ÏºÇÂç¤Ç 3 ¸Ä¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤ò¼è¤ê¡¢ -Âè°ì°ú¤­¿ô¤Ç¤Ï¥¿¥¤¥Þ¡¼¤ÎËþλ»þ´Ö¤Î½é´üÃÍ (Éÿôñ°Ì) ¤ò¡¢ -ÂèÆó°ú¤­¿ô¤Ç¤Ï¥¿¥¤¥Þ¡¼¤Î´Ö³Ö (Éÿôñ°Ì) ¤ò¡¢ -Âè»°°ú¤­¿ô¤Ç¤Ï¥¿¥¤¥Þ¡¼¤¬²¿²óËþλ¤·¤¿¤é¥×¥í¥°¥é¥à¤¬½ªÎ»¤¹¤ë¤«¤ò»ØÄꤹ¤ë¡£ -ÂèÆó°ú¤­¿ô¤ÈÂè»°°ú¤­¿ô¤Ï¾Êά²Äǽ¤Ç¤¢¤ë¡£ +が無効である。 +.SH バージョン +これらのシステムコールはカーネル 2.6.25 以降の Linux で利用可能である。 +ライブラリ側のサポートはバージョン 2.8 以降の glibc で提供されている。 +.SH 準拠 +これらのシステムコールは Linux 固有である。 +.SH 例 +以下のプログラムは、タイマーを作成し、その進捗をモニターするものである。 +このプログラムは最大で 3 個のコマンドライン引き数を取り、 +第一引き数ではタイマーの満了時間の初期値 (秒数単位) を、 +第二引き数ではタイマーの間隔 (秒数単位) を、 +第三引き数ではタイマーが何回満了したらプログラムが終了するかを指定する。 +第二引き数と第三引き数は省略可能である。 -°Ê²¼¤Î¥·¥§¥ë¤Î¥»¥Ã¥·¥ç¥ó¤Ï¤³¤Î¥×¥í¥°¥é¥à¤Î»ÈÍÑÎã¤ò¼¨¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +以下のシェルのセッションはこのプログラムの使用例を示したものである。 .in +4n .nf @@ -388,7 +388,7 @@ a.out 3 1 100 .BR "^C " " # type control-C to suspend the program" .fi .in -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf .\" The commented out code here is what we currently need until @@ -522,14 +522,14 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ¥Ð¥° -¸½ºß¤Î¤È¤³¤í¡¢ +.SH バグ +現在のところ、 .\" 2.6.29 .BR timerfd_create () -¤¬Âбþ¤·¤Æ¤¤¤ë clockid ¤Î¼ïÎà¤Ï +が対応している clockid の種類は .BR timer_create (2) -¤è¤ê¤â¾¯¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +よりも少ない。 +.SH 関連項目 .BR eventfd (2), .BR poll (2), .BR read (2), diff --git a/release/man2/times.2 b/release/man2/times.2 index 7aa69e65..ff37785d 100644 --- a/release/man2/times.2 +++ b/release/man2/times.2 @@ -47,26 +47,26 @@ .\" Updated 2005-04-20, Kentaro Shirakata .\" Updated 2008-02-12, Akihiro MOTOKI , LDP v2.77 .\" -.\" WORD: clock ticks ¥¯¥í¥Ã¥¯¿ô +.\" WORD: clock ticks クロック数 .\" .TH TIMES 2 2008-06-25 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -times - ¥×¥í¥»¥¹»þ´Ö¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +times - プロセス時間を取得する +.SH 書式 .B #include .sp .BI "clock_t times(struct tms *" buf ); -.SH ÀâÌÀ +.SH 説明 .BR times () -¤Ï¸½ºß¤Î¥×¥í¥»¥¹»þ´Ö¤ò +は現在のプロセス時間を .I buf -¤¬»Ø¤·¤Æ¤¤¤ë +が指している .B "struct tms" -¤Ë³ÊǼ¤¹¤ë¡£ +に格納する。 .I struct tms -¤Ï +は .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +で以下のように定義されている: .sp .in +4n .nf @@ -80,142 +80,142 @@ struct tms { .in .LP .I tms_utime -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬Ì¿Îá¤ò¼Â¹Ô¤¹¤ë¤Î¤Ë¾ÃÈñ¤·¤¿ -CPU »þ´Ö¤Ç¤¢¤ë¡£ +フィールドは、呼び出したプロセスが命令を実行するのに消費した +CPU 時間である。 .I tms_stime -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¤¿¤á¤Ë¼Â¹Ô¤µ¤ì¤¿¥¿¥¹¥¯¤Ç¡¢ -¥·¥¹¥Æ¥à¤¬¾ÃÈñ¤·¤¿ CPU »þ´Ö¤Ç¤¢¤ë¡£ +フィールドは、呼び出したプロセスのために実行されたタスクで、 +システムが消費した CPU 時間である。 .I tms_cutime -¥Õ¥£¡¼¥ë¥É¤Ï¡¢ -½ªÎ»¤òÂԤäƤ¤¤ëÁ´¤Æ¤Î»Ò¥×¥í¥»¥¹¤Î +フィールドは、 +終了を待っている全ての子プロセスの .I tms_utime -¤È +と .I tms_cutime -¤Î¹ç·×¤Ç¤¢¤ë¡£ +の合計である。 .I tms_cstime -¥Õ¥£¡¼¥ë¥É¤Ï¡¢ -½ªÎ»¤òÂԤäƤ¤¤ëÁ´¤Æ¤Î»Ò¥×¥í¥»¥¹¤Î +フィールドは、 +終了を待っている全ての子プロセスの .I tms_stime -¤È +と .I tms_cstime -¤Î¹ç·×¤Ç¤¢¤ë¡£ +の合計である。 .LP -½ªÎ»¤¹¤ë»Ò(µÚ¤Ó¤½¤Î»Ò¹)¥×¥í¥»¥¹¤Î»þ´Ö¤Ï +終了する子(及びその子孫)プロセスの時間は .BR wait (2) -¤ä +や .BR waitpid (2) -¤¬¥×¥í¥»¥¹ ID ¤òÊÖ¤·¤¿½Ö´Ö¤Ë²Ã»»¤µ¤ì¤ë¡£ -¤Ä¤Þ¤ê¡¢»Ò¤¬¤Þ¤À½ªÎ»¤òÂԤäƤ¤¤Ê¤¤¾õÂÖ¤Ç¤Ï -¹¥×¥í¥»¥¹¤Î»þ´Ö¤Ï·è¤·¤Æ¸½¤ì¤Ê¤¤¡£ +がプロセス ID を返した瞬間に加算される。 +つまり、子がまだ終了を待っていない状態では +孫プロセスの時間は決して現れない。 .LP -Á´¤Æ¤Î»þ´Ö¤Ï¥¯¥í¥Ã¥¯¿ô¤ÇÊÖ¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +全ての時間はクロック数で返される。 +.SH 返り値 .BR times () -¤Ï²áµî¤Î¤¢¤ë»þÅÀ¤«¤é·Ð²á¤·¤¿¥¯¥í¥Ã¥¯¿ô (clock tick) ¤òÊÖ¤¹¡£ -¤³¤ÎÊÖ¤êÃÍ¤Ï +は過去のある時点から経過したクロック数 (clock tick) を返す。 +この返り値は .I clock_t -·¿¤¬¼è¤êÆÀ¤ëÈϰϤ«¤é¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\fI(clock_t)\ \-1\fP ¤¬ÊÖ¤µ¤ì¡¢ +型が取り得る範囲からオーバーフローするかもしれない。 +エラーの場合、\fI(clock_t)\ \-1\fP が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .\" The only possible error is EFAULT. -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -.SH Ãí°Õ -°ìÉ䢤¿¤ê¤Î¥¯¥í¥Ã¥¯¿ô¤Ï +.SH 注意 +一秒あたりのクロック数は .in +4n sysconf(_SC_CLK_TCK); .in -¤ò»È¤Ã¤ÆÆÀ¤ë¤³¤È¤¬½ÐÍè¤ë¡£ +を使って得ることが出来る。 .PP -POSIX.1-1996 ¤Ç¤Ï¡¢\fBCLK_TCK\fP ¥·¥ó¥Ü¥ë +POSIX.1-1996 では、\fBCLK_TCK\fP シンボル .RI ( -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë) ¤Ï¸Å¤¤¤â¤Î¤Ç¤¢¤ë¤Èµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -º£¤Ç¤Ï¤³¤ì¤Ï¸Å¤¤¤â¤Î¤Ç¤¢¤ë¡£ +で定義されている) は古いものであると記述されている。 +今ではこれは古いものである。 .PP -Linux 2.6.9 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ +Linux 2.6.9 より前のバージョンでは、 .B SIGCHLD -¤ò +を .B SIG_IGN -¤ËÀßÄꤹ¤ë¤È -½ªÎ»¤·¤¿»Ò¥×¥í¥»¥¹¤Î²ó¿ô¤Ï -¼«Æ°Åª¤Ë +に設定すると +終了した子プロセスの回数は +自動的に .I tms_cstime -¤È +と .I tms_cutime -¥Õ¥£¡¼¥ë¥É¤Ë´Þ¤Þ¤ì¤ë¡£ -¤·¤«¤·¡¢POSIX.1-2001 ¤Ç¤Ï¡¢¤³¤ÎÆ°ºî¤Ï¸Æ¤Ó½Ð¤·¸µ¤¬ +フィールドに含まれる。 +しかし、POSIX.1-2001 では、この動作は呼び出し元が .BR wait (2) -´Ø¿ô·²¤Ç»Ò¥×¥í¥»¥¹¤òÂԤ俾ì¹ç¤Ë¤Î¤ßµ¯¤­¤ë¤Ù¤­¤À¤È¤·¤Æ¤¤¤ë¡£ -ɸ½à¤È¤Ï°Û¤Ê¤ë¤³¤ÎÆ°ºî¤Ï Linux 2.6.9 °Ê¹ß¤Ç½¤Àµ¤µ¤ì¤Æ¤¤¤ë¡£ +関数群で子プロセスを待った場合にのみ起きるべきだとしている。 +標準とは異なるこの動作は Linux 2.6.9 以降で修正されている。 .\" See the description of times() in XSH, which says: .\" The times of a terminated child process are included... when wait() .\" or waitpid() returns the process ID of this terminated child. -Linux ¤Ç¤Ï¡¢ +Linux では、 .I buf -°ú¿ô¤Ë NULL ¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¡¢¤½¤Î¾ì¹ç¤Ï +引数に NULL を指定することができ、その場合は .BR times () -¤Ïñ¤Ë´Ø¿ô¤Î·ë²Ì¤òÊÖ¤¹¡£ -¤·¤«¤·¡¢POSIX ¤Ï¤³¤Î¿¶¤ëÉñ¤¤¤Ïµ¬Äꤵ¤ì¤Æ¤ª¤é¤º¡¢ -¤½¤Î¾¤Î¤Û¤È¤ó¤É¤Î UNIX ¼ÂÁõ¤Ï +は単に関数の結果を返す。 +しかし、POSIX はこの振る舞いは規定されておらず、 +その他のほとんどの UNIX 実装は .I buf -¤ÎÃͤȤ·¤ÆÈó NULL ¤ÎÃͤòÍ׵᤹¤ë¡£ +の値として非 NULL の値を要求する。 .LP .BR clock (3) -¤â +も .I clock_t -·¿¤ÎÃͤòÊÖ¤¹¤¬¡¢¤³¤ÎÃÍ¤Ï +型の値を返すが、この値は .BR times () -¤Ç»ÈÍѤµ¤ì¤ë¥¯¥í¥Ã¥¯ tick ¿ô¤Ç¤Ï¤Ê¤¯¡¢ +で使用されるクロック tick 数ではなく、 .B CLOCKS_PER_SEC -¤¬Ã±°Ì¤Ç¤¢¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +が単位である点に注意すること。 -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR times () -¤ÎÊÖ¤êÃͤò·×»»¤¹¤ëµ¯ÅÀ¤È¤Ê¤ë¡Ö²áµî¤ÎǤ°Õ¤Î»þÅÀ¡×¤Ï¡¢¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó -¤Ë¤è¤ê°Û¤Ê¤ë¡£ -Linux 2.4 °ÊÁ°¤Ç¤Ï¡¢¤³¤Î»þÅÀ¤Ï¥·¥¹¥Æ¥à¤¬µ¯Æ°¤·¤¿½Ö´Ö¤Ç¤¢¤ë¡£ -Linux 2.6 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î»þÅÀ¤Ï¥·¥¹¥Æ¥àµ¯Æ°»þ¹ï¤Î \fI(2^32/HZ) \- 300\fP -(¤ª¤è¤Ó 4²¯2900Ëü) ÉÃÁ°¤Ç¤¢¤ë¡£ -¤³¤Î¤è¤¦¤Ë¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó (¤ä UNIX ¤Î¼ÂÁõ) ¤Ë¤è¤ê°Û¤Ê¤ë¤³¤È¤È¡¢ -ÊÖ¤êÃͤ¬ +の返り値を計算する起点となる「過去の任意の時点」は、カーネルのバージョン +により異なる。 +Linux 2.4 以前では、この時点はシステムが起動した瞬間である。 +Linux 2.6 以降では、この時点はシステム起動時刻の \fI(2^32/HZ) \- 300\fP +(および 4億2900万) 秒前である。 +このようにカーネルバージョン (や UNIX の実装) により異なることと、 +返り値が .I clock_t -¤ÎÈϰϤò¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¤È¤¤¤¦»ö¼Â¤ò¹Íθ¤¹¤ë¤È¡¢ -°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤ÎÃͤò»È¤¦¤Î¤ÏÈò¤±¤ë¤Î¤¬¸­ÌÀ¤Ç¤¢¤í¤¦¡£ -·Ð²á»þ´Ö¤ò¬¤ê¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢Âå¤ï¤ê¤Ë +の範囲をオーバーフローする可能性があるという事実を考慮すると、 +移植性が必要なアプリケーションではこの値を使うのは避けるのが賢明であろう。 +経過時間を測りたい場合には、代わりに .BR gettimeofday (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +を使用すること。 .\" .PP -.\" ¸Å¤¤¥·¥¹¥Æ¥à¤Ç¤Ï°ìÉ䢤¿¤ê¤Î¥¯¥í¥Ã¥¯¿ô¤Ï HZ ÊÑ¿ô¤ÇÍ¿¤¨¤é¤ì¤ë¡£ -.SS Îò»Ë -SVr1-3 ¤Ç¤Ï +.\" 古いシステムでは一秒あたりのクロック数は HZ 変数で与えられる。 +.SS 歴史 +SVr1-3 では .I long -¤òÊÖ¤·¡¢¹½Â¤ÂΤΥá¥ó¥Ð¤Ë +を返し、構造体のメンバに .I time_t -·¿¤ò»È¤Ã¤Æ¤¤¤¿¤¬¡¢µª¸µ¤«¤é¤ÎÉÿô¤Ç¤Ï¤Ê¤¯¥¯¥í¥Ã¥¯¿ô¤ò³ÊǼ¤·¤Æ¤¤¤¿¡£ -V7 ¤Ç¤Ï¹½Â¤ÂΤΥá¥ó¥Ð¤Ë +型を使っていたが、紀元からの秒数ではなくクロック数を格納していた。 +V7 では構造体のメンバに .I long -·¿¤ò»È¤Ã¤Æ¤¤¤¿¡£¤Þ¤À +型を使っていた。まだ .I time_t -·¿¤¬¤Ê¤«¤Ã¤¿¤«¤é¤Ç¤¢¤ë¡£ -.SH ¥Ð¥° -¤¤¤¯¤Ä¤«¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã (ÆÃ¤Ë i386) ¤Ë¤ª¤±¤ë Linux ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î´·½¬¤Î -À©¸Â¤Ë¤è¤ê¡¢Linux 2.6 ¤Ç¤Ïµ¯Æ°Ä¾¸å¤Ï (41ÉäÈ) ¥¿¥¤¥à¥¦¥£¥ó¥É¥¦¤¬¾®¤µ¤¯¡¢ +型がなかったからである。 +.SH バグ +いくつかのアーキテクチャ (特に i386) における Linux のシステムコールの慣習の +制限により、Linux 2.6 では起動直後は (41秒と) タイムウィンドウが小さく、 .BR times () -¤¬¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¤³¤È¤ò¼¨¤¹ \-1 ¤ò´Ö°ã¤Ã¤ÆÊÖ¤¹¤³¤È¤¬¤¢¤ë¡£ -ÊÖ¤êÃͤ¬ +がエラーが起こったことを示す \-1 を間違って返すことがある。 +返り値が .I clockid_t -¤¬³ÊǼ²Äǽ¤ÊºÇÂçÃͤòĶ²á¤·¤¿ºÝ¤Ë¤âƱ¤¸ÌäÂ꤬µ¯¤³¤êÆÀ¤ë¡£ +が格納可能な最大値を超過した際にも同じ問題が起こり得る。 .\" The problem is that a syscall return of -4095 to -1 .\" is interpreted by glibc as an error, and the wrapper converts .\" the return value to -1. .\" http://marc.info/?l=linux-kernel&m=119447727031225&w=2 .\" "compat_sys_times() bogus until jiffies >= 0" .\" November 2007 -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR time (1), .BR getrusage (2), .BR wait (2), diff --git a/release/man2/tkill.2 b/release/man2/tkill.2 index 3417a73a..8d7d2df6 100644 --- a/release/man2/tkill.2 +++ b/release/man2/tkill.2 @@ -31,86 +31,86 @@ .\" Updated 2005-02-28, Akihiro MOTOKI .\" .TH TKILL 2 2011-09-18 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -tkill, tgkill \- ¥¹¥ì¥Ã¥É¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë -.SH ½ñ¼° +.SH 名前 +tkill, tgkill \- スレッドにシグナルを送る +.SH 書式 .nf .BI "int tkill(int " tid ", int " sig ); .sp .BI "int tgkill(int " tgid ", int " tid ", int " sig ); .fi -.SH ÀâÌÀ +.SH 説明 .BR tgkill () -¤Ï¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥× +はスレッド・グループ .I tgid -¤Ë°¤¹¤ë¥¹¥ì¥Ã¥É ID ¤¬ +に属するスレッド ID が .I tid -¤Î¥¹¥ì¥Ã¥É¤Ë¥·¥°¥Ê¥ë +のスレッドにシグナル .I sig -¤òÁ÷¤ë¡£ -(¤³¤ì¤ËÂФ·¡¢ +を送る。 +(これに対し、 .BR kill (2) -¤Ï°ì¤Ä¤Î¥×¥í¥»¥¹ (¤¹¤Ê¤ï¤Á¡¢¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×) ¤Ë¤Þ¤È¤á¤Æ¥·¥°¥Ê¥ë¤ò -Á÷¤ë¤Î¤Ë¤À¤±ÍøÍѤǤ­¤ë¡£ +は一つのプロセス (すなわち、スレッド・グループ) にまとめてシグナルを +送るのにだけ利用できる。 .BR kill (2) -¤ÇÁ÷¿®¤µ¤ì¤¿¥·¥°¥Ê¥ë¤Ï¥×¥í¥»¥¹Æâ¤ÎǤ°Õ¤Î¥¹¥ì¥Ã¥É¤ËÇÛÁ÷¤µ¤ì¤ë¡£) +で送信されたシグナルはプロセス内の任意のスレッドに配送される。) .BR tkill () -¤Ï¤â¤¦»È¤ï¤ì¤Ê¤¯¤Ê¤Ã¤¿ +はもう使われなくなった .BR tgkill () -¤ÎÀèÁĤǤ¢¤ë¡£ +の先祖である。 .BR tkill () -¤Ç¤Ï¥·¥°¥Ê¥ë¤ÎÁ÷¤êÀè¤Î¥¹¥ì¥Ã¥É ID ¤·¤«»ØÄê¤Ç¤­¤Ê¤¤¡£ -¤½¤Î¤¿¤á¡¢¥¹¥ì¥Ã¥É¤¬½ªÎ»¤·¤Æ¡¢¤½¤Î¥¹¥ì¥Ã¥É ID ¤¬ºÆÍøÍѤµ¤ì¤ë¾ì¹ç¤Ë¡¢ -°Õ¿Þ¤·¤Ê¤¤¥¹¥ì¥Ã¥É¤Ë¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î»ÈÍѤÏÈò¤±¤ë¤³¤È¡£ +ではシグナルの送り先のスレッド ID しか指定できない。 +そのため、スレッドが終了して、そのスレッド ID が再利用される場合に、 +意図しないスレッドにシグナルが送られる可能性がある。 +このシステムコールの使用は避けること。 .I tgid -¤Ë \-1 ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +に \-1 が指定された場合、 .BR tgkill () -¤Ï +は .BR tkill () -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 -¤³¤ì¤é¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ø¤ÎľÀܤΥ¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¢¤ê¡¢ -¥¹¥ì¥Ã¥É¡¦¥é¥¤¥Ö¥é¥êÆâÉô¤Ç¤Î»ÈÍѤò°Õ¿Þ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ -\fIerrno\fP ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +これらはシステムコールへの直接のインターフェースであり、 +スレッド・ライブラリ内部での使用を意図したものである。 +.SH 返り値 +成功した場合、0 が返される。エラーが発生した場合、\-1 が返され、 +\fIerrno\fP が適切に設定される。 +.SH エラー .TP .B EINVAL -»ØÄꤵ¤ì¤¿¥¹¥ì¥Ã¥É ID¡¢¥¹¥ì¥Ã¥É¥°¥ë¡¼¥× ID¡¢¥·¥°¥Ê¥ë¤¬ÉÔÀµ¤Ç¤¢¤Ã¤¿¡£ +指定されたスレッド ID、スレッドグループ ID、シグナルが不正であった。 .TP .B EPERM -µö²Ä¤¬¤Ê¤«¤Ã¤¿¡£¤É¤Î¤è¤¦¤Êµö²Ä¤¬É¬Íפ«¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +許可がなかった。どのような許可が必要かについては、 .BR kill (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .TP .B ESRCH -»ØÄꤵ¤ì¤¿¥¹¥ì¥Ã¥ÉID (¤È¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×ID) ¤ò»ý¤Ä¥×¥í¥»¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +指定されたスレッドID (とスレッド・グループID) を持つプロセスが存在しない。 +.SH バージョン .BR tkill () -¤Ï Linux 2.4.19 / 2.5.4 °Ê¹ß¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¡¢ +は Linux 2.4.19 / 2.5.4 以降でサポートされ、 .BR tgkill () -¤Ï Linux 2.5.75 ¤ÇÄɲ䵤줿¡£ -.SH ½àµò +は Linux 2.5.75 で追加された。 +.SH 準拠 .BR tkill () -¤È +と .BR tgkill () -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢ -°Ü¿¢¤òÁÛÄꤷ¤¿¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ -¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤ÎÀâÌÀ¤Ë¤Ä¤¤¤Æ¤Ï +は Linux 固有であり、 +移植を想定したプログラムでは使用すべきではない。 +.SH 注意 +スレッド・グループの説明については .BR clone (2) -¤Î +の .B CLONE_THREAD -¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +の説明を参照のこと。 -glibc ¤Ï¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ +glibc はこれらのシステムコールに対するラッパー関数を提供していない。 .BR syscall (2) -¤ò»È¤Ã¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を使って呼び出すこと。 +.SH 関連項目 .BR clone (2), .BR gettid (2), .BR kill (2), diff --git a/release/man2/truncate.2 b/release/man2/truncate.2 index 28204835..20a75421 100644 --- a/release/man2/truncate.2 +++ b/release/man2/truncate.2 @@ -49,9 +49,9 @@ .\" Updated 2006-07-21, Akihiro MOTOKI, LDP v2.36 .\" .TH TRUNCATE 2 2010-10-07 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -truncate, ftruncate \- »ØÄꤷ¤¿Ä¹¤µ¤Ë¥Õ¥¡¥¤¥ë¤òÀÚ¤êµÍ¤á¤ë -.SH ½ñ¼° +.SH 名前 +truncate, ftruncate \- 指定した長さにファイルを切り詰める +.SH 書式 .B #include .br .B #include @@ -61,9 +61,9 @@ truncate, ftruncate \- .BI "int ftruncate(int " fd ", off_t " length ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .ad l .PD 0 @@ -73,7 +73,7 @@ glibc _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .br -|| /* glibc 2.12 °Ê¹ß: */ _POSIX_C_SOURCE\ >=\ 200809L +|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\ >=\ 200809L .RE .sp .BR ftruncate (): @@ -81,172 +81,172 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .br -|| /* glibc 2.3.5 °Ê¹ß: */ _POSIX_C_SOURCE\ >=\ 200112L +|| /* glibc 2.3.5 以降: */ _POSIX_C_SOURCE\ >=\ 200112L .RE .PD .ad b -.SH ÀâÌÀ +.SH 説明 .BR truncate () -¤Ï +は .I path -¤Ç»ØÄꤵ¤ì¤ë¥Õ¥¡¥¤¥ë¤ò¡¢ +で指定されるファイルを、 .BR ftruncate () -¤Ï +は .I fd -¤Ç»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤ò +で参照されるファイルを .I length -¥Ð¥¤¥È¤ÎŤµ¤Ë¤Ê¤ë¤è¤¦¤Ë±äŤ¹¤ë¡¢¤â¤·¤¯¤ÏÀÚ¤êµÍ¤á¤ë¡£ -¤â¤·ÀÚ¤êµÍ¤á¤ëÁ°¤Î¥Õ¥¡¥¤¥ë¤¬ +バイトの長さになるように延長する、もしくは切り詰める。 +もし切り詰める前のファイルが .I length -¤è¤êŤ±¤ì¤Ð¡¢length ¥Ð¥¤¥È¤ò±Û¤¨¤ëÉôʬ¤Î¥Ç¡¼¥¿¤Ï¼º¤ï¤ì¤ë¡£ -¤â¤·ÀÚ¤êµÍ¤á¤ëÁ°¤Î¥Õ¥¡¥¤¥ë¤¬ +より長ければ、length バイトを越える部分のデータは失われる。 +もし切り詰める前のファイルが .I length -¤è¤êû¤«¤±¤ì¤Ð¡¢¿­Ä¥¤µ¤ì¤ë¡£ -¿­Ä¥¤µ¤ì¤¿Éôʬ¤òÆɤó¤À¾ì¹ç¤Ï NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤ÎÎó¤¬ÊÖ¤µ¤ì¤ë¡£ +より短かければ、伸張される。 +伸張された部分を読んだ場合は NULL バイト (\(aq\\0\(aq) の列が返される。 .LP -¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +ファイルオフセットは変更されない。 .LP -Â礭¤µ¤¬Êѹ¹¤µ¤ì¤ë¤È¡¢¥Õ¥¡¥¤¥ë¤Î st_ctime ¤È st_mtime ¥Õ¥£¡¼¥ë¥É -(¤½¤ì¤¾¤ìºÇ½ª¾õÂÖÊѹ¹»þ¹ï¡¢ºÇ½ª½¤Àµ»þ¹ï; +大きさが変更されると、ファイルの st_ctime と st_mtime フィールド +(それぞれ最終状態変更時刻、最終修正時刻; .BR stat (2) -»²¾È) ¤¬¹¹¿·¤µ¤ì¤ë¡£ -¤Þ¤¿¡¢set-user-ID ¤È set-group-ID ¤Îµö²Ä¥Ó¥Ã¥È¤¬¥¯¥ê¥¢¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +参照) が更新される。 +また、set-user-ID と set-group-ID の許可ビットがクリアされるかもしれない。 .LP .BR ftruncate () -¤Î¾ì¹ç¡¢¥Õ¥¡¥¤¥ë¤Ï½ñ¤­¹þ¤ßÍѤ˳«¤¤¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +の場合、ファイルは書き込み用に開いていなければならない。 .BR truncate () -¤Î¾ì¹ç¡¢¥Õ¥¡¥¤¥ë¤Ï½ñ¤­¹þ¤ß²Äǽ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç 0 ¤¬Ê֤롣¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤¬Ê֤ꡢ +の場合、ファイルは書き込み可能でなければならない。 +.SH 返り値 +成功した場合 0 が返る。失敗した場合 \-1 が返り、 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤ˽¾¤Ã¤ÆÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +がエラーの内容に従って設定される。 +.SH エラー .BR truncate () -¤Ç¤Ï°Ê²¼¤Î¥¨¥é¡¼¥³¡¼¥É¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +では以下のエラーコードが定義されている。 .TP .B EACCES -¥Ñ¥¹¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¸¡º÷µö²Ä¤Î¤Ê¤¤¤â¤Î¤¬¤¢¤ë -(ÌõÃí:x ¥Ó¥Ã¥È¤¬Î©¤Ã¤Æ¤¤¤Ê¤¤)¡£ -¤¢¤ë¤¤¤Ï¡¢»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë½ñ¤­¹þ¤ßµö²Ä¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +パスで指定されているディレクトリに検索許可のないものがある +(訳注:x ビットが立っていない)。 +あるいは、指定されたファイルに対する書き込み許可を持っていない。 .RB ( path_resolution (7) -¤â»²¾È¤Î¤³¤È) +も参照のこと) .TP .B EFAULT .I path -¤¬¥×¥í¥»¥¹¤Ë³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¶õ´Ö³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がプロセスに割り当てられているアドレス空間外を指している。 .TP .B EFBIG -°ú¤­¿ô +引き数 .I length -¤¬ºÇÂç¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤è¤êÂ礭¤¤¡£(XSI) +が最大ファイルサイズより大きい。(XSI) .TP .B EINTR -¼Â¹ÔÃæ¤Ë¥·¥°¥Ê¥ë¤ò¼õ¤±¤¿¡£ +実行中にシグナルを受けた。 .TP .B EINVAL -°ú¤­¿ô +引き数 .I length -¤¬Éé¿ô¤Ç¤¢¤ë¤«¡¢ºÇÂç¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤è¤êÂ礭¤¤¡£ +が負数であるか、最大ファイルサイズより大きい。 .TP .B EIO -inode ¤Î¹¹¿·»þ¤Ë I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +inode の更新時に I/O エラーが発生した。 .TP .B EINTR -´°Î»ÂÔ¤Á¤ÇÄä»ß (block) ¤·¤Æ¤¤¤ë´Ö¤Ë¡¢¸Æ¤Ó½Ð¤·¤¬ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¡£ +完了待ちで停止 (block) している間に、呼び出しが +シグナルハンドラにより割り込まれた。 .BR fcntl (2) -¤È +と .BR signal (7) -¤ò»²¾È¡£ +を参照。 .TP .B EISDIR -»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¡£ +指定されたファイルはディレクトリである。 .TP .B ELOOP -¥Ñ¥¹Ì¾¤ò²ò¼á¤¹¤ëºÝ¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬Â¿¤¹¤®¤¿¡£ +パス名を解釈する際にシンボリックリンクが多すぎた。 .TP .B ENAMETOOLONG -¥Ñ¥¹Ì¾Ãæ¤Î¥Ç¥£¥ì¥¯¥È¥ê̾¤¬ 255 ʸ»ú¤ò±Û¤¨¤Æ¤¤¤ë¡¢¤â¤·¤¯¤Ï¥Ñ¥¹Ì¾Á´ÂΤ¬ -1023 ʸ»ú¤ò±Û¤¨¤Æ¤¤¤ë¡£ +パス名中のディレクトリ名が 255 文字を越えている、もしくはパス名全体が +1023 文字を越えている。 .TP .B ENOENT -»ØÄꤵ¤ì¤¿Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ +指定された名前のファイルが存在しない。 .TP .B ENOTDIR -¥Ñ¥¹Ì¾Ãæ¤Î¹àÌܤ˥ǥ£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¤â¤Î¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ +パス名中の項目にディレクトリではないものが入っている。 .TP .B EPERM .\" This happens for at least MSDOS and VFAT file systems .\" on kernel 2.6.13 -²¼Áؤˤ¢¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¸½ºß¤Î¥Õ¥¡¥¤¥ëŤò±Û¤¨¤Æ -¥Õ¥¡¥¤¥ë¤ò¿­Ä¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +下層にあるファイルシステムでは、現在のファイル長を越えて +ファイルを伸長することができない。 .TP .B EROFS -»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ÏÆɤ߽Ф·ÀìÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥àÃæ¤Ë¤¢¤ë¡£ +指定されたファイルは読み出し専用のファイルシステム中にある。 .TP .B ETXTBSY -»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ï¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ +指定されたファイルは実行されているファイルである。 .PP .BR ftruncate () -¤Ë¤âƱÍͤΥ¨¥é¡¼¤¬Å¬ÍѤµ¤ì¤ë¡£ -⤷¡¢ +にも同様のエラーが適用される。 +但し、 .I path -¤Ë´Ø¤¹¤ë¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ +に関するエラーの場合は、ファイルディスクリプター .I fd -¤Ë´Ø¤¹¤ë¥¨¥é¡¼¤È¤Ê¤ë¡£ +に関するエラーとなる。 .TP .B EBADF .I fd -¤¬Ìµ¸ú¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ç¤¢¤ë¡£ +が無効なディスクリプターである。 .TP -.BR EBADF " ¤Þ¤¿¤Ï " EINVAL +.BR EBADF " または " EINVAL .I fd -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¤â¤Î¤¬½ñ¤­¹þ¤ß¥â¡¼¥É¤Ç³«¤«¤ì¤Æ¤¤¤Ê¤¤¡£ +で指定されているものが書き込みモードで開かれていない。 .TP .B EINVAL .I fd -¤¬Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£ -.SH ½àµò -4.4BSD, SVr4, POSIX.1-2001 (¤³¤ì¤é¤Î¥³¡¼¥ë¤Ï 4.2BSD ¤Ç½é¤á¤ÆÅо줷¤¿)¡£ -.\" POSIX 1003.1-1996 ¤Ë¤Ï +が通常のファイルを参照していない。 +.SH 準拠 +4.4BSD, SVr4, POSIX.1-2001 (これらのコールは 4.2BSD で初めて登場した)。 +.\" POSIX 1003.1-1996 には .\" .BR ftruncate () -.\" ¤¬¤¢¤ë¡£ -.\" POSIX.1-2001 ¤Ë¤Ï -.\" XSI ³ÈÄ¥¤È¤·¤Æ +.\" がある。 +.\" POSIX.1-2001 には +.\" XSI 拡張として .\" .BR truncate () -.\" ¤â¤¢¤ë¡£ +.\" もある。 .\" .LP -.\" SVr4 ¤Ë¤Ï¾¤Î¥¨¥é¡¼¥³¡¼¥É¤È¤·¤Æ¡¢ +.\" SVr4 には他のエラーコードとして、 .\" .BR truncate () -.\" ¤Ë¤Ï EMFILE, EMULTIHP, ENFILE, ENOLINK ¤¬¡¢ +.\" には EMFILE, EMULTIHP, ENFILE, ENOLINK が、 .\" .BR ftruncate () -.\" ¤Ë¤Ï EAGAIN ¤¬¤½¤ì¤¾¤ìµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -¾åµ­¤Îµ­½Ò¤Ï XSI ½àµò¤Î¥·¥¹¥Æ¥à¤Î¤â¤Î¤Ç¤¢¤ë¡£ -XSI Èó½àµò¤Î¥·¥¹¥Æ¥à¤Î¾ì¹ç¡¢POSIX ɸ½à¤Ï +.\" には EAGAIN がそれぞれ記述されている。 +.SH 注意 +上記の記述は XSI 準拠のシステムのものである。 +XSI 非準拠のシステムの場合、POSIX 標準は .BR ftruncate () -¤ËÂФ·¤Æ +に対して .I length -¤¬¥Õ¥¡¥¤¥ë¤ÎŤµ¤è¤êŤ«¤Ã¤¿¾ì¹ç¡¢ -¥¨¥é¡¼¤òÊÖ¤¹¤«¥Õ¥¡¥¤¥ë¤ò¿­Ä¥¤¹¤ë¤«¤ÎÆó¤Ä¤ÎÆ°ºî¤òµöÍƤ·¤Æ¤¤¤ë¡£ +がファイルの長さより長かった場合、 +エラーを返すかファイルを伸張するかの二つの動作を許容している。 .BR truncate () -¤ËÂФ·¤Æ¤ÏÁ´¤¯µ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤Û¤È¤ó¤É¤Î UNIX ¼ÂÁõ¤ÈƱÍÍ¡¢Linux ¤Ï¥Í¥¤¥Æ¥£¥Ö (Linux ͳÍè) ¤Î -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î°·¤¤¤Ç¤Ï XSI Í×µá»ÅÍͤˤ·¤¿¤¬¤Ã¤Æ¤¤¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢¤¤¤¯¤Ä¤«¤ÎÈó¥Í¥¤¥Æ¥£¥Ö¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +に対しては全く規定されていない。 +ほとんどの UNIX 実装と同様、Linux はネイティブ (Linux 由来) の +ファイルシステムの扱いでは XSI 要求仕様にしたがっている。 +しかしながら、いくつかの非ネイティブのファイルシステムでは、 .BR truncate () -¤ä +や .BR ftruncate () -¤ò»È¤Ã¤Æ¸½ºß¤Î¥Õ¥¡¥¤¥ëŤò±Û¤¨¤Æ¥Õ¥¡¥¤¥ë¤ò¿­Ä¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ -Linux ¤Ç¤Îͭ̾¤ÊÎã¤È¤·¤Æ¤Ï VFAT ¤¬¤¢¤ë¡£ -.SH ¥Ð¥° -glibc 2.12 ¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ë¤Ï¥Ð¥°¤¬¤¢¤ê¡¢ +を使って現在のファイル長を越えてファイルを伸長することができない。 +Linux での有名な例としては VFAT がある。 +.SH バグ +glibc 2.12 のヘッダファイルにはバグがあり、 .BR ftruncate () -¤ÎÀë¸À¤ò¸ø³«¤¹¤ë¤Î¤ËɬÍ×¤Ê +の宣言を公開するのに必要な .B _POSIX_C_SOURCE -¤ÎºÇ¾®Ãͤ¬ 200112L ¤Ç¤Ï¤Ê¤¯ 200809L ¤È¤Ê¤Ã¤Æ¤¤¤¿¡£ -¤³¤Î¥Ð¥°¤Ï¡¢¤³¤ì°Ê¹ß¤Î¥Ð¡¼¥¸¥ç¥ó¤Î glibc ¤Ç¤Ï½¤Àµ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +の最小値が 200112L ではなく 200809L となっていた。 +このバグは、これ以降のバージョンの glibc では修正されている。 +.SH 関連項目 .BR open (2), .BR stat (2), .BR path_resolution (7) diff --git a/release/man2/umask.2 b/release/man2/umask.2 index 0ec70c3c..04cedf12 100644 --- a/release/man2/umask.2 +++ b/release/man2/umask.2 @@ -41,88 +41,88 @@ .\" Updated 2008-02-10, Akihiro MOTOKI, LDP v2.77 .\" .TH UMASK 2 2008-01-09 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -umask \- ¥Õ¥¡¥¤¥ë¥â¡¼¥ÉºîÀ®¥Þ¥¹¥¯¤òÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +umask \- ファイルモード作成マスクを設定する +.SH 書式 .B #include .br .B #include .sp .BI "mode_t umask(mode_t " mask ); -.SH ÀâÌÀ +.SH 説明 .BR umask () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¥â¡¼¥ÉºîÀ®¥Þ¥¹¥¯ (umask) ¤ò +は、呼び出し元プロセスのファイルモード作成マスク (umask) を .I mask -& 0777 ¤ËÀßÄꤷ +& 0777 に設定し .RI ( umask -¤Î¥Õ¥¡¥¤¥ëµö²Ä¤ËÂбþ¤¹¤ë¥Ó¥Ã¥È¤Î¤ß¤ò»ÈÍѤ¹¤ë)¡¢ -Êѹ¹Á°¤Î¥Þ¥¹¥¯ÃͤòÊÖ¤¹¡£ +のファイル許可に対応するビットのみを使用する)、 +変更前のマスク値を返す。 -umask ¤Ï¡¢ +umask は、 .BR open (2), .BR mkdir (2) -¤ä¥Õ¥¡¥¤¥ëºîÀ®¤ò¹Ô¤¦¤½¤Î¾¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¡¢ -.\" Î㤨¤Ð mkfifo(), creat(), mknod(), sem_open(), mq_open(), shm_open() -.\" System V IPC *get() ¥³¡¼¥ë¤Ï³ºÅö¤·¤Ê¤¤¡£ -¿·¤·¤¯ºîÀ®¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥ì¥¯¥È¥ê¤Îµö²Ä (permission) ¤ò -½¤Àµ¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ -¶ñÂÎŪ¤Ë¤Ï umask ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ëµö²Ä¤¬ +やファイル作成を行うその他のシステムコールで、 +.\" 例えば mkfifo(), creat(), mknod(), sem_open(), mq_open(), shm_open() +.\" System V IPC *get() コールは該当しない。 +新しく作成されるファイルやディレクトリの許可 (permission) を +修正するために使用される。 +具体的には umask に設定されている許可が .BR open (2) -¤ä +や .BR mkdir (2) -¤Î \fImode\fP °ú¤­¿ô¤«¤é¼è¤ê¾Ã¤µ¤ì¤ë¡£ +の \fImode\fP 引き数から取り消される。 .I mask -¤Ë»ØÄꤹ¤ë¤Î¤Ë»ÈÍѤ¹¤Ù¤­Äê¿ô¤Ë¤Ä¤¤¤Æ¤Ï +に指定するのに使用すべき定数については .BR stat (2) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡£ +で説明されている。 -¥×¥í¥»¥¹¤Î umask ¤Î¤è¤¯¤¢¤ë¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï +プロセスの umask のよくあるデフォルト値は .I S_IWGRP\ |\ S_IWOTH -(8¿Ê¤Ç 022) ¤Ç¤¢¤ë¡£ -¿·¤·¤¤¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ëºÝ¤Ë +(8進で 022) である。 +新しいファイルを作成する際に .BR open (2) -¤Î +の .I mode -°ú¤­¿ô¤Ë +引き数に .nf S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH .fi -¤ò»ØÄꤹ¤ë¤È¤¤¤¦¤è¤¯¤¢¤ë¥±¡¼¥¹¤Ç¤Ï¡¢ºîÀ®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ï +を指定するというよくあるケースでは、作成されたファイルは .nf S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH .fi -¤È¤¤¤¦µö²Ä¤ò»ý¤Ä¤³¤È¤Ë¤Ê¤ë -(¤Ê¤¼¤Ê¤é 0666 & ~022 = 0644¡¢¤Ä¤Þ¤ê rw\-r\-\-r\-\-)¡£ -.SH ÊÖ¤êÃÍ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ïɬ¤ºÀ®¸ù¤·¡¢°ÊÁ°¤Î umask ÃͤòÊÖ¤¹¡£ -.SH ½àµò +という許可を持つことになる +(なぜなら 0666 & ~022 = 0644、つまり rw\-r\-\-r\-\-)。 +.SH 返り値 +このシステムコールは必ず成功し、以前の umask 値を返す。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢¿Æ¥×¥í¥»¥¹¤Î umask ¤ò·Ñ¾µ¤¹¤ë¡£ +で作成された子プロセスは、親プロセスの umask を継承する。 .BR execve (2) -¤Ë¤è¤Ã¤Æ umask ¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +によって umask は変更されない。 -umask ¤ÎÀßÄê¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤¬À¸À®¤¹¤ë POSIX IPC ¥ª¥Ö¥¸¥§¥¯¥È +umask の設定は、そのプロセスが生成する POSIX IPC オブジェクト .RB ( mq_open (3), .BR sem_open (3), .BR shm_open (3)) -¤ä FIFO -.RB ( mkfifo (3))¡¢ -UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È +や FIFO +.RB ( mkfifo (3))、 +UNIX ドメインソケット .RB ( unix (7)) -¤ËÀßÄꤵ¤ì¤ëµö²Ä¤Ë¤â±Æ¶Á¤òÍ¿¤¨¤ë¡£ -°ìÊý¡¢umask ¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤¬ +に設定される許可にも影響を与える。 +一方、umask は、そのプロセスが .RB ( msgget (2), .BR semget (2), .BR shmget (2) -¤ò»È¤Ã¤Æ) À¸À®¤¹¤ë System V IPC ¥ª¥Ö¥¸¥§¥¯¥È¤ËÀßÄꤵ¤ì¤ëµö²Ä¤Ë¤Ï -±Æ¶Á¤òÍ¿¤¨¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +を使って) 生成する System V IPC オブジェクトに設定される許可には +影響を与えない。 +.SH 関連項目 .BR chmod (2), .BR mkdir (2), .BR open (2), diff --git a/release/man2/umount.2 b/release/man2/umount.2 index 38a653ac..dd8464b9 100644 --- a/release/man2/umount.2 +++ b/release/man2/umount.2 @@ -32,9 +32,9 @@ .\" Translated 2008-11-20, Akihiro MOTOKI , LDP v3.13 .\" .TH UMOUNT 2 2009-09-03 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -umount, umount2 \- ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥¢¥ó¥Þ¥¦¥ó¥È¤¹¤ë -.SH ½ñ¼° +.SH 名前 +umount, umount2 \- ファイルシステムをアンマウントする +.SH 書式 .nf .B "#include " .sp @@ -42,140 +42,140 @@ umount, umount2 \- .sp .BI "int umount2(const char *" target ", int " flags ); .fi -.SH ÀâÌÀ +.SH 説明 .BR umount () -¤È +と .BR umount2 () -¤Ï +は .I target -¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë (ºÇ¾å°Ì¤Î) ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò³°¤¹¡£ +にマウントされている (最上位の) ファイルシステムを外す。 .\" Note: the kernel naming differs from the glibc naming .\" umount2 is the glibc name for what the kernel now calls umount .\" and umount is the glibc name for oldumount -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥¢¥ó¥Þ¥¦¥ó¥È¤ò¹Ô¤¦¤Ë¤Ï¡¢ -ŬÀڤʸ¢¸Â (Linux ¤Ç¤Ï +ファイルシステムのアンマウントを行うには、 +適切な権限 (Linux では .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティ) が必要である。 -Linux 2.1.116 ¤«¤é¡¢ +Linux 2.1.116 から、 .BR umount2 () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Äɲ䵤줿¡£¤³¤ì¤Ï +システムコールが追加された。これは .BR umount () -¤ÈƱÍÍ¤Ë +と同様に .I target -¤ò¥¢¥ó¥Þ¥¦¥ó¥È¤¹¤ë¤¬¡¢ +をアンマウントするが、 .I flags -¤¬Äɲ䵤ì¤Æ¤ª¤ê¡¢Áàºî»þ¤Î¿¶¤ëÉñ¤¤¤òÀ©¸æ¤Ç¤­¤ë¡£ +が追加されており、操作時の振る舞いを制御できる。 .TP -.BR MNT_FORCE " (2.1.116 °Ê¹ß)" -»ÈÍÑÃæ (busy) ¤Ç¤â¶¯À©Åª¤Ë¥¢¥ó¥Þ¥¦¥ó¥È¤ò¼Â¹Ô¤¹¤ë¡£ -¤³¤ì¤ò¹Ô¤¦¤È¥Ç¡¼¥¿¤ò¼º¤¦²ÄǽÀ­¤¬¤¢¤ë¡£ -(NFS ¥Þ¥¦¥ó¥ÈÀìÍÑ) +.BR MNT_FORCE " (2.1.116 以降)" +使用中 (busy) でも強制的にアンマウントを実行する。 +これを行うとデータを失う可能性がある。 +(NFS マウント専用) .TP -.BR MNT_DETACH " (2.4.11 °Ê¹ß)" -Ãٱ䥢¥ó¥Þ¥¦¥ó¥È¤ò¹Ô¤¦¡£¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ËÂФ¹¤ë¿·µ¬¤Î¥¢¥¯¥»¥¹¤Ï -ÉÔ²Äǽ¤È¤Ê¤ê¡¢¼ÂºÝ¤Î¥¢¥ó¥Þ¥¦¥ó¥È¤Ï¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤¬¥Ó¥¸¡¼¤Ç -¤Ê¤¯¤Ê¤Ã¤¿»þÅÀ¤Ç¹Ô¤¦¡£ +.BR MNT_DETACH " (2.4.11 以降)" +遅延アンマウントを行う。マウントポイントに対する新規のアクセスは +不可能となり、実際のアンマウントはマウントポイントがビジーで +なくなった時点で行う。 .TP -.BR MNT_EXPIRE " (Linux 2.6.8 °Ê¹ß)" -¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ë´ü¸ÂÀÚ¤ì¤Î°õ¤ò¤Ä¤±¤ë¡£ -¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤¬¸½ºß»ÈÍÑÃæ¤Ç¤Ê¤¤¾ì¹ç¡¢¤³¤Î¥Õ¥é¥°¤ò¤Ä¤±¤Æ +.BR MNT_EXPIRE " (Linux 2.6.8 以降)" +マウントポイントに期限切れの印をつける。 +マウントポイントが現在使用中でない場合、このフラグをつけて .BR umount2 () -¤ò½é¤á¤Æ¸Æ¤Ó½Ð¤¹¤È +を初めて呼び出すと .B EAGAIN -¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë¤¬¡¢¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ë¤Ï´ü¸ÂÀÚ¤ì (expire) -¤Î°õ¤¬¤Ä¤±¤é¤ì¤ë¡£ -¤½¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ï¤¤¤º¤ì¤«¤Î¥×¥í¥»¥¹¤¬¥¢¥¯¥»¥¹¤·¤Ê¤¤¸Â¤ê -´ü¸ÂÀÚ¤ì¤Î°õ¤¬¤Ä¤¤¤¿¤Þ¤Þ¤È¤Ê¤ë¡£ -¤â¤¦°ìÅÙ +エラーで失敗するが、マウントポイントには期限切れ (expire) +の印がつけられる。 +そのマウントポイントはいずれかのプロセスがアクセスしない限り +期限切れの印がついたままとなる。 +もう一度 .B MNT_EXPIRE -¤ò¤Ä¤±¤Æ +をつけて .BR umount2 () -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢´ü¸ÂÀÚ¤ì¤Î°õ¤Î¤Ä¤¤¤¿¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤¬ -¥¢¥ó¥Þ¥¦¥ó¥È¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò +を呼び出すと、期限切れの印のついたマウントポイントが +アンマウントされる。 +このフラグを .B MNT_FORCE -¤â¤·¤¯¤Ï +もしくは .B MNT_DETACH -¤ÈƱ»þ¤Ë»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç 0 ¤¬Ê֤롣 -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬Ê֤ꡢ +と同時に指定することはできない。 +.SH 返り値 +成功した場合 0 が返る。 +エラーの場合、\-1 が返り、 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤˤ·¤¿¤¬¤Ã¤ÆÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -°Ê²¼¤Ë¼¨¤¹¥¨¥é¡¼¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë°Í¸¤·¤Ê¤¤¤â¤Î¤Ç¤¢¤ë¡£ -¤½¤ì¤¾¤ì¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¿¥¤¥×¤Ë¤Ï¸ÇÍ­¤Î¥¨¥é¡¼¤¬Â¸ºß¤¹¤ë¾ì¹ç¤¬¤¢¤ê¡¢ -Æȼ«¤ÎÆ°ºî¤ò¤¹¤ë¤³¤È¤â¤¢¤ë¡£¾Ü¤·¤¯¤Ï¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹¤ò¸«¤ÆÍߤ·¤¤¡£ +がエラーの内容にしたがって設定される。 +.SH エラー +以下に示すエラーは、ファイルシステムに依存しないものである。 +それぞれのファイルシステムタイプには固有のエラーが存在する場合があり、 +独自の動作をすることもある。詳しくはカーネルのソースを見て欲しい。 .TP .B EAGAIN .B MNT_EXPIRE -¤ò»ØÄꤷ¤¿ +を指定した .BR umount2 () -¤Î¸Æ¤Ó½Ð¤·¤Ç¡¢Àµ¾ï¤Ë̤»ÈÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë´ü¸ÂÀÚ¤ì¤Î°õ¤ò -¤Ä¤±¤ë¤³¤È¤¬¤Ç¤­¤¿¡£ +の呼び出しで、正常に未使用のファイルシステムに期限切れの印を +つけることができた。 .TP .B EBUSY -»ÈÍÑÃæ (busy) ¤Î¤¿¤á¡¢ +使用中 (busy) のため、 .I target -¤ò¥¢¥ó¥Þ¥¦¥ó¥È¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +をアンマウントできなかった。 .TP .B EFAULT .I target -¤¬¥æ¡¼¥¶¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がユーザアドレス空間の外を指している。 .TP .B EINVAL .I target -¤¬¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ç¤Ï¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢ +がマウントポイントではない。 +または、 .BR umount2 () -¤Ç¡¢ +で、 .B MNT_EXPIRE -¤¬»ØÄꤵ¤ì¤¿ +が指定された .BR umount2 () -¤Ç¡¢ +で、 .B MNT_DETACH -¤« +か .B MNT_FORCE -¤¬Æ±»þ¤Ë»ØÄꤵ¤ì¤¿¡£ +が同時に指定された。 .TP .B ENAMETOOLONG -¥Ñ¥¹Ì¾¤ÎŤµ¤¬ +パス名の長さが .B MAXPATHLEN -¤è¤êŤ«¤Ã¤¿¡£ +より長かった。 .TP .B ENOENT -¥Ñ¥¹Ì¾¤¬¶õ¤Ç¤¢¤ë¡£¤â¤·¤¯¤Ï»ØÄꤵ¤ì¤¿¥Ñ¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£ +パス名が空である。もしくは指定されたパスが存在しない。 .TP .B ENOMEM -¥«¡¼¥Í¥ë¤¬¥Õ¥¡¥¤¥ë̾¤ä¥Ç¡¼¥¿¤ò¥³¥Ô¡¼¤¹¤ë¤¿¤á¤Î¶õ¤­¥Ú¡¼¥¸¤ò³ÎÊݤǤ­¤Ê¤«¤Ã¤¿¡£ +カーネルがファイル名やデータをコピーするための空きページを確保できなかった。 .TP .B EPERM -¸Æ¤Ó½Ð¤·¸µ¤¬É¬Íפʸ¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +呼び出し元が必要な権限を持っていない。 +.SH バージョン .\" http://sourceware.org/bugzilla/show_bug.cgi?id=10092 .BR MNT_DETACH -¤È +と .BR MNT_EXPIRE -¤Ï¥Ð¡¼¥¸¥ç¥ó 2.11 °Ê¹ß¤Î glibc ¤Ç¤Î¤ßÍøÍѤǤ­¤ë¡£ -.SH ½àµò -¤³¤Î´Ø¿ô¤Ï Linux ¸ÇÍ­¤Î´Ø¿ô¤Ç¤¢¤ê¡¢°Ü¿¢¤ò¹Íθ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï -»ÈÍѤ¹¤Ù¤­¤Ç¤Ê¤¤¡£ -.SH Ãí°Õ -¸µ¡¹¤Î +はバージョン 2.11 以降の glibc でのみ利用できる。 +.SH 準拠 +この関数は Linux 固有の関数であり、移植を考慮したプログラムでは +使用すべきでない。 +.SH 注意 +元々の .BR umount () -´Ø¿ô¤Ï \fIumount(device)\fP ¤Î·Á¤Ç¸Æ¤Ó½Ð¤µ¤ì¡¢ -¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹°Ê³°¤ò»ØÄꤷ¤Æ¸Æ¤Ó½Ð¤¹¤È +関数は \fIumount(device)\fP の形で呼び出され、 +ブロックデバイス以外を指定して呼び出すと .B ENOTBLK -¤òÊÖ¤·¤¿¡£ -Linux 0.98p4 ¤Ç¡¢ÌµÌ¾¥Ç¥Ð¥¤¥¹ (anonymous device) ¤ËÂбþ¤¹¤ë¤¿¤á¤Ë -\fIumount(dir)\fP ¤Î·Á¤Ç¤Î¸Æ¤Ó½Ð¤·¤¬²Ã¤¨¤é¤ì¤¿¡£ -Linux 2.3.99-pre7 ¤Ç¡¢\fIumount(device)\fP ¤Ïºï½ü¤µ¤ì¡¢ -\fIumount(dir)\fP ¤À¤±¤¬»Ä¤µ¤ì¤¿ -(°ì¤Ä¤Î¥Ç¥Ð¥¤¥¹¤òÊ£¿ô¤Î°ÌÃ֤˥ޥ¦¥ó¥È½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤¿¤á¡¢ -¥Ç¥Ð¥¤¥¹¤ò»ØÄꤷ¤¿¤À¤±¤Ç¤ÏÉÔ½½Ê¬¤À¤«¤é¤Ç¤¢¤ë)¡£ -.SH ´ØÏ¢¹àÌÜ +を返した。 +Linux 0.98p4 で、無名デバイス (anonymous device) に対応するために +\fIumount(dir)\fP の形での呼び出しが加えられた。 +Linux 2.3.99-pre7 で、\fIumount(device)\fP は削除され、 +\fIumount(dir)\fP だけが残された +(一つのデバイスを複数の位置にマウント出来るようになったため、 +デバイスを指定しただけでは不十分だからである)。 +.SH 関連項目 .BR mount (2), .BR path_resolution (7), .BR mount (8), diff --git a/release/man2/uname.2 b/release/man2/uname.2 index 145f3aae..9db83ff0 100644 --- a/release/man2/uname.2 +++ b/release/man2/uname.2 @@ -31,137 +31,137 @@ .\" Updated 2007-09-04, Akihiro MOTOKI , LDP v2.64 .\" .TH UNAME 2 2008-12-03 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -uname \- ¸½ºß²ÔƯÃæ¤Î¥«¡¼¥Í¥ë¤Ë¤Ä¤¤¤Æ¤Î̾Á°¤È¾ðÊó¤òÆÀ¤ë -.SH ½ñ¼° +.SH 名前 +uname \- 現在稼働中のカーネルについての名前と情報を得る +.SH 書式 .B #include .sp .BI "int uname(struct utsname *" buf ); -.SH ÀâÌÀ +.SH 説明 .BR uname () -¤Ï +は .I buf -¤Ç»Ø¤µ¤ì¤ë¹½Â¤ÂΤ˥·¥¹¥Æ¥à¾ðÊó¤òÊÖ¤¹¡£ +で指される構造体にシステム情報を返す。 .I utsname -¹½Â¤ÂÎ¤Ï +構造体は .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で以下のように定義されている。 .in +4n .nf struct utsname { - char sysname[]; /* OS ¤Î̾Á° (Îã: "Linux") */ - char nodename[]; /* ¡Ö¼ÂÁõ»þ¤ËÄêµÁ¤µ¤ì¤¿¡¢²¿¤é¤«¤Î - ¥Í¥Ã¥È¥ï¡¼¥¯¡×¤Ë¤ª¤±¤ë¥Þ¥·¥ó̾ */ - char release[]; /* OS ¤Î¥ê¥ê¡¼¥¹ (Îã: "2.6.28") */ - char version[]; /* OS ¤Î¥Ð¡¼¥¸¥ç¥ó */ - char machine[]; /* ¥Ï¡¼¥É¥¦¥§¥¢¼±ÊÌ»Ò */ + char sysname[]; /* OS の名前 (例: "Linux") */ + char nodename[]; /* 「実装時に定義された、何らかの + ネットワーク」におけるマシン名 */ + char release[]; /* OS のリリース (例: "2.6.28") */ + char version[]; /* OS のバージョン */ + char machine[]; /* ハードウェア識別子 */ #ifdef _GNU_SOURCE - char domainname[]; /* NIS ¤ä YP ¤Î¥É¥á¥¤¥ó̾ */ + char domainname[]; /* NIS や YP のドメイン名 */ #endif }; .fi .in .I struct utsname -¤Ë¤¢¤ëÇÛÎó¤ÎŤµ¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤ (¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È)¡£ -¥Õ¥£¡¼¥ë¥É¤Ï NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Ç½ªÃ¼¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç 0 ¤¬Ê֤롣¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤¬Ê֤ꡢ +にある配列の長さは指定されていない (「注意」の節を参照)。 +フィールドは NULL バイト (\(aq\\0\(aq) で終端される。 +.SH 返り値 +成功した場合 0 が返る。失敗した場合 \-1 が返り、 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤ˽¾¤Ã¤ÆÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +がエラーの内容に従って設定される。 +.SH エラー .TP .B EFAULT .I buf -¤¬Í­¸ú¤Ç¤Ê¤¤¡£ -.SH ½àµò +が有効でない。 +.SH 準拠 SVr4, POSIX.1-2001. -4.3BSD ¤Ë¤Ï +4.3BSD には .BR uname () -¥³¡¼¥ë¤¬¤Ê¤¤¡£ +コールがない。 .PP .I domainname -¥á¥ó¥Ð¡¼ (NIS ¤Þ¤¿¤Ï YP ¥É¥á¥¤¥ó̾) ¤Ï GNU ¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -¤³¤ì¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤¢¤ê¡¢OS ¤Ï̾Á°¡¦¥ê¥ê¡¼¥¹¡¦¥Ð¡¼¥¸¥ç¥ó¤Ê¤É¤ò -¤¿¤Ö¤óʬ¤«¤Ã¤Æ¤¤¤ë¤À¤í¤¦¡£ -¤µ¤é¤Ë¤½¤ì¤¬²ÔƯ¤·¤Æ¤¤¤ë¥Ï¡¼¥É¥¦¥§¥¢¤âʬ¤«¤Ã¤Æ¤¤¤ë¤À¤í¤¦¡£ -¤è¤Ã¤Æ¹½Â¤ÂΤΠ4 ¤Ä¤Î¥Õ¥£¡¼¥ë¥É¤Ë¤Ï°ÕÌ£¤¬¤¢¤ë¡£ -°ìÊý¡¢\fInodename\fP ¥Õ¥£¡¼¥ë¥É¤Ë¤Ï°ÕÌ£¤¬¤Ê¤¤: -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¸½ºß¤Î¥Þ¥·¥ó¤Î (ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤) -¤É¤³¤«¤Î¥Í¥Ã¥È¥ï¡¼¥¯¤Ë¤ª¤±¤ë̾Á°¤òÍ¿¤¨¤ë¤¬¡¢ -Ä̾ï¥Þ¥·¥ó¤ÏÊ£¿ô¤Î¥Í¥Ã¥È¥ï¡¼¥¯¤Ë°¤·¡¢Ê£¿ô¤Î̾Á°¤ò»ý¤Ä¡£ -¤µ¤é¤Ë¡¢¥«¡¼¥Í¥ë¤Ï¤³¤Î¤è¤¦¤Ê¾ðÊó¤òÃΤë½Ñ¤ò»ý¤¿¤Ê¤¤¤Î¤Ç¡¢ -¤³¤³¤Ç¤ÎÅú¤¨¤ÏÁ°¤â¤Ã¤Æ¶µ¤¨¤Æ¤ä¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ì¤ÏÄɲåե£¡¼¥ë¥É¤Ç¤¢¤ë \fIdomainname\fP ¤Ë¤Ä¤¤¤Æ¤âƱÍͤǤ¢¤ë¡£ +メンバー (NIS または YP ドメイン名) は GNU の拡張である。 +.SH 注意 +これはシステムコールであり、OS は名前・リリース・バージョンなどを +たぶん分かっているだろう。 +さらにそれが稼働しているハードウェアも分かっているだろう。 +よって構造体の 4 つのフィールドには意味がある。 +一方、\fInodename\fP フィールドには意味がない: +このフィールドは現在のマシンの (定義されていない) +どこかのネットワークにおける名前を与えるが、 +通常マシンは複数のネットワークに属し、複数の名前を持つ。 +さらに、カーネルはこのような情報を知る術を持たないので、 +ここでの答えは前もって教えてやらなければならない。 +これは追加フィールドである \fIdomainname\fP についても同様である。 .LP -¤³¤Î¤¿¤á Linux ¤Ç¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë +このため Linux ではシステムコール .BR sethostname (2) -¤È +と .BR setdomainname (2) -¤¬»È¤ï¤ì¤ë¡£ -.RB ¡Ö sethostname (2) -¤ÇÀßÄꤵ¤ì¤ë¥Û¥¹¥È̾¤Ï¡¢ +が使われる。 +.RB 「 sethostname (2) +で設定されるホスト名は、 .BR uname () -¤ÇÊÖ¤µ¤ì¤ë¹½Â¤ÂΤΠ\fInodename\fP ¥Õ¥£¡¼¥ë¥É¤ÈƱ¤¸Ê¸»úÎó¤Ç¤¢¤ë¡× -¤Èµ¬Äꤷ¤Æ¤¤¤ëɸ½àµ¬³Ê¤Ï¤Ê¤¤ -(¼ÂºÝ¡¢256 ¥Ð¥¤¥È¤Î¥Û¥¹¥È̾¤È 8 ¥Ð¥¤¥È¤Î¥Î¡¼¥É̾¤òµö²Ä¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤â¤¢¤ë)¡£ -¤·¤«¤·¡¢Linux ¤Ç¤ÏƱ¤¸Ê¸»úÎó¤¬ÊÖ¤µ¤ì¤ë¡£ +で返される構造体の \fInodename\fP フィールドと同じ文字列である」 +と規定している標準規格はない +(実際、256 バイトのホスト名と 8 バイトのノード名を許可しているシステムもある)。 +しかし、Linux では同じ文字列が返される。 .BR setdomainname (2) -¤È \fIdomainname\fP ¥Õ¥£¡¼¥ë¥É¤Ë¤Ä¤¤¤Æ¤âƱ¤¸¤³¤È¤¬À®¤êΩ¤Ä¡£ +と \fIdomainname\fP フィールドについても同じことが成り立つ。 .LP -¹½Â¤ÂΤΥե£¡¼¥ë¥É¤ÎŤµ¤Ï¤µ¤Þ¤¶¤Þ¤Ç¤¢¤ë¡£ -OS ¤ä¥é¥¤¥Ö¥é¥ê¤ÎÃæ¤Ë¤Ï¡¢ -¥Ï¡¼¥É¥³¡¼¥É¤µ¤ì¤¿ 9, 33, 65, 257 ¤Ê¤É¤ÎÃͤò»È¤Ã¤Æ¤¤¤ë¤â¤Î¤â¤¢¤ë¡£ -¤Þ¤¿ +構造体のフィールドの長さはさまざまである。 +OS やライブラリの中には、 +ハードコードされた 9, 33, 65, 257 などの値を使っているものもある。 +また .BR SYS_NMLN , .BR _SYS_NMLN , .BR UTSLEN , .B _UTSNAME_LENGTH -¤Ê¤É¤ò»È¤Ã¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ -¤Ï¤Ã¤­¤ê¸À¤Ã¤Æ¡¢¤³¤ì¤é¤ÎÄê¿ô¤ò»È¤¦¤Î¤Ï°­¤¤¹Í¤¨Êý¤Ç¤¢¤ê¡¢ -sizeof(...) ¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£ -¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥Û¥¹¥È̾¤Ç»È¤¦Îΰè¤ò»ý¤¿¤»¤ë¤¿¤á¤Ë¡¢ -257 ¤¬Áª¤Ð¤ì¤ë¤³¤È¤¬Â¿¤¤¡£ +などを使っているシステムもある。 +はっきり言って、これらの定数を使うのは悪い考え方であり、 +sizeof(...) を使うべきである。 +インターネットホスト名で使う領域を持たせるために、 +257 が選ばれることが多い。 .LP -utsname ¤Î¾ðÊó¤Ï¡¢ +utsname の情報は、 .IR /proc/sys/kernel/ { ostype , .IR hostname , .IR osrelease , .IR version , .IR domainname } -¤ò»È¤Ã¤Æ¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -.SS Çظå¤Î¥«¡¼¥Í¥ë¡¦¥¤¥ó¥¿¥Õ¥§¡¼¥¹ +を使ってアクセスすることもできる。 +.SS 背後のカーネル・インタフェース .LP -»þ´Ö¤Î·Ð²á¤È¤È¤â¤Ë¡¢ +時間の経過とともに、 .I utsname -¹½Â¤ÂΤΥµ¥¤¥º¤¬Â礭¤¯¤Ê¤ê¡¢¤³¤Î±Æ¶Á¤Ç +構造体のサイズが大きくなり、この影響で .BR uname () -¤Ë¤Ï 3¤Ä¤Î¥Ð¡¼¥¸¥ç¥ó¤¬Â¸ºß¤¹¤ë: +には 3つのバージョンが存在する: .IR sys_olduname () -(¥¹¥í¥Ã¥È¤Ï -.IR __NR_oldolduname )¡¢ +(スロットは +.IR __NR_oldolduname )、 .IR sys_uname () -(¥¹¥í¥Ã¥È¤Ï -.IR __NR_olduname )¡¢ +(スロットは +.IR __NR_olduname )、 .IR sys_newuname () -(¥¹¥í¥Ã¥È¤Ï -.IR __NR_uname )¡£ +(スロットは +.IR __NR_uname )。 .IR sys_olduname () -.\" ¤³¤ì¤Ï Linux 1.0 ¤è¤êÁ°¤ËÁ̤ëÏäǤ¢¤ë¡£ -¤Ï¤¹¤Ù¤Æ¤Î¥Õ¥£¡¼¥ë¥É¤¬Ä¹¤µ 9 ¤ò»È¤Ã¤Æ¤¤¤¿¡£ +.\" これは Linux 1.0 より前に遡る話である。 +はすべてのフィールドが長さ 9 を使っていた。 .IR sys_uname () -.\" ¤³¤ì¤â Linux 1.0 ¤è¤êÁ°¤ËÁ̤ëÏäǤ¢¤ë¡£ -¤ÏŤµ 65 ¤ò»È¤Ã¤Æ¤¤¤¿¡£ +.\" これも Linux 1.0 より前に遡る話である。 +は長さ 65 を使っていた。 .IR sys_newuname () -¤âŤµ 65 ¤ò»È¤Ã¤Æ¤¤¤ë¤¬¡¢ -\fIdomainname\fP ¥Õ¥£¡¼¥ë¥É¤¬Äɲ䵤ì¤Æ¤¤¤ë¡£ -glibc ¤Î +も長さ 65 を使っているが、 +\fIdomainname\fP フィールドが追加されている。 +glibc の .BR uname () -¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢¤³¤ì¤é¤Î¾ÜºÙ¤ò¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é±£Êä·¡¢ -¥«¡¼¥Í¥ë¤¬Ä󶡤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¤¦¤ÁºÇ¿·¤Î¥Ð¡¼¥¸¥ç¥ó¤òµ¯Æ°¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +ラッパー関数は、これらの詳細をアプリケーションから隠蔽し、 +カーネルが提供しているシステムコールのうち最新のバージョンを起動する。 +.SH 関連項目 .BR uname (1), .BR getdomainname (2), .BR gethostname (2) diff --git a/release/man2/unimplemented.2 b/release/man2/unimplemented.2 index 6f0bcd45..ade27528 100644 --- a/release/man2/unimplemented.2 +++ b/release/man2/unimplemented.2 @@ -32,37 +32,37 @@ .\" by HANATAKA Shinya .\" .TH UNIMPLEMENTED 2 2007-07-05 "Linux" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 afs_syscall, break, ftime, getpmsg, gtty, lock, madvise1, mpx, prof, profil, -putpmsg, security, stty, tuxcall, ulimit, vserver \- ¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¥·¥¹¥Æ¥à¥³¡¼¥ë -.SH ½ñ¼° -¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¥·¥¹¥Æ¥à¥³¡¼¥ë -.SH ÀâÌÀ -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 2.6.22 ¥«¡¼¥Í¥ë¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¾ï¤Ë \-1 ¤òÊÖ¤·¡¢ +putpmsg, security, stty, tuxcall, ulimit, vserver \- 実装されていないシステムコール +.SH 書式 +実装されていないシステムコール +.SH 説明 +これらのシステムコールは Linux 2.6.22 カーネルでは実装されていない。 +.SH 返り値 +これらのシステムコールは常に \-1 を返し、 .I errno -¤Ë +に .BR ENOSYS -¤òÀßÄꤹ¤ë¡£ -.SH Ãí°Õ +を設定する。 +.SH 注意 .BR ftime (3), .BR profil (3), .BR ulimit (3) -¤Ï¥é¥¤¥Ö¥é¥ê´Ø¿ô¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +はライブラリ関数として実装されていることに注意すること。 .BR alloc_hugepages (2), .BR free_hugepages (2), .BR ioperm (2), .BR iopl (2), .BR vm86 (2) -¤Î¤è¤¦¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÆÃÄê¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤Î¤ß¸ºß¤¹¤ë¡£ +のようなシステムコールは特定のアーキテクチャにのみ存在する。 .BR ipc (2), .BR create_module (2), .BR init_module (2), .BR delete_module (2) -¤Î¤è¤¦¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¥«¡¼¥Í¥ë¤¬¤½¤ì¤é¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤è¤¦ -¤Ë¹½ÃÛ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Î¤ß¸ºß¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +のようなシステムコールは Linux カーネルがそれらをサポートするよう +に構築されている場合にのみ存在する。 +.SH 関連項目 .BR syscalls (2) diff --git a/release/man2/unlink.2 b/release/man2/unlink.2 index 5dfeec37..c8d430c3 100644 --- a/release/man2/unlink.2 +++ b/release/man2/unlink.2 @@ -40,132 +40,132 @@ .\" Updated & Modified Sun Jan 9 23:28:11 JST 2005 .\" by Yuichi SATO .\" -.\"WORD: file system ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -.\"WORD: link ¥ê¥ó¥¯ -.\"WORD: open ¥ª¡¼¥×¥ó -.\"WORD: close ¥¯¥í¡¼¥º -.\"WORD: symbolic link ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ -.\"WORD: socket ¥½¥±¥Ã¥È -.\"WORD: device ¥Ç¥Ð¥¤¥¹ -.\"WORD: effective UID ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: sticky-bit ¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È -.\"WORD: dangling symbolic link ²õ¤ì¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ -.\"WORD: memory ¥á¥â¥ê -.\"WORD: protocol ¥×¥í¥È¥³¥ë +.\"WORD: file system ファイルシステム +.\"WORD: link リンク +.\"WORD: open オープン +.\"WORD: close クローズ +.\"WORD: symbolic link シンボリック・リンク +.\"WORD: descriptor ディスクリプター +.\"WORD: socket ソケット +.\"WORD: device デバイス +.\"WORD: effective UID 実効ユーザーID +.\"WORD: sticky-bit スティッキー・ビット +.\"WORD: dangling symbolic link 壊れたシンボリック・リンク +.\"WORD: memory メモリ +.\"WORD: protocol プロトコル .\" .TH UNLINK 2 2004-06-23 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -unlink \- ̾Á°¤òºï½ü¤·¡¢¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï¤½¤ì¤¬»²¾È¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤âºï½ü¤¹¤ë -.SH ½ñ¼° +.SH 名前 +unlink \- 名前を削除し、場合によってはそれが参照しているファイルも削除する +.SH 書式 .B #include .sp .BI "int unlink(const char *" pathname ); -.SH ÀâÌÀ +.SH 説明 .BR unlink () -¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î̾Á°¤òºï½ü¤¹¤ë¡£ -¤â¤·¤½¤Î̾Á°¤¬¥Õ¥¡¥¤¥ë¤Ø¤ÎºÇ¸å¤Î¥ê¥ó¥¯ (link) ¤Ç¤¢¤ê¡¢ -¤É¤Î¥×¥í¥»¥¹¤â¤½¤Î¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó (open) ¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ -¥Õ¥¡¥¤¥ë¤Ïºï½ü¤µ¤ì¤ë¡£ -¥Õ¥¡¥¤¥ë¤¬»ÈÍѤ·¤Æ¤¤¤¿¥Ç¥£¥¹¥¯¾å¤ÎÎΰè¤ÏºÆÍøÍѤ¬²Äǽ¤Ë¤Ê¤ë¡£ +はファイルシステム上の名前を削除する。 +もしその名前がファイルへの最後のリンク (link) であり、 +どのプロセスもそのファイルをオープン (open) していなければ、 +ファイルは削除される。 +ファイルが使用していたディスク上の領域は再利用が可能になる。 -¤â¤·ºï½ü¤¹¤ë̾Á°¤¬¥Õ¥¡¥¤¥ë¤Ø¤ÎºÇ¸å¤Î¥ê¥ó¥¯¤À¤¬¡¢¤É¤ì¤«¤Î¥×¥í¥»¥¹¤¬ -¤½¤Î¥Õ¥¡¥¤¥ë¤ò¤Þ¤À¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤ëºÇ¸å¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ (file descriptor) -¤¬¥¯¥í¡¼¥º (close) ¤µ¤ì¤ë¤Þ¤Ç¥Õ¥¡¥¤¥ë¤Ï¸ºß¤·Â³¤±¤ë¡£ +もし削除する名前がファイルへの最後のリンクだが、どれかのプロセスが +そのファイルをまだオープンしている場合は、 +そのファイルを参照している最後のファイルディスクリプター (file descriptor) +がクローズ (close) されるまでファイルは存在し続ける。 -¤â¤·¤½¤Î̾Á°¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ (symbolic link) ¤ò»²¾È¤·¤Æ¤¤¤ì¤Ð¡¢ -¥ê¥ó¥¯¤Ïºï½ü¤µ¤ì¤ë¡£ +もしその名前がシンボリック・リンク (symbolic link) を参照していれば、 +リンクは削除される。 -¤â¤·Ì¾Á°¤¬¥½¥±¥Ã¥È (socket) ¤ä fifo ¤ä¥Ç¥Ð¥¤¥¹ (device) ¤ò»²¾È¤·¤Æ¤¤¤ì¤Ð -̾Á°¤Ïºï½ü¤µ¤ì¤ë¤¬¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò¥ª¡¼¥×¥ó¤·¤Æ¤¤¤¿¥×¥í¥»¥¹¤Ï -¤½¤ì¤ò»È¤¤Â³¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Ê¤é¤Ð \-1 ¤òÊÖ¤·¡¢ +もし名前がソケット (socket) や fifo やデバイス (device) を参照していれば +名前は削除されるがそのオブジェクトをオープンしていたプロセスは +それを使い続けることができる。 +.SH 返り値 +成功した場合は 0 を返す。エラーならば \-1 を返し、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EACCES .I pathname -¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î½ñ¤­¹þ¤ßµö²Ä¤¬¥×¥í¥»¥¹¤Î¼Â¸ú (effective) -¥æ¡¼¥¶¡¼ ID ¤ËÍ¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ +を含んでいるディレクトリの書き込み許可がプロセスの実効 (effective) +ユーザー ID に与えられていないか、 .I pathname -¤ÎÃæ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¤É¤ì¤«¤Ë¸¡º÷µö²Ä¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤ +の中のディレクトリのどれかに検索許可が与えられていない .RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È)¡£ +も参照すること)。 .TP -.BR EBUSY " (Linux °Ê³°)" -¥Õ¥¡¥¤¥ë +.BR EBUSY " (Linux 以外)" +ファイル .I pathname -¤¬¥·¥¹¥Æ¥à¤Þ¤¿¤Ï¾¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤Æ¤¤¤Æ -¥ê¥ó¥¯¤¬ºï½ü¤Ç¤­¤Ê¤«¤Ã¤¿¤Î¤Ç¡¢¤³¤Î¼ÂÁõ¤Ç¤Ï¥¨¥é¡¼¤È¤·¤¿¡£ +がシステムまたは他のプロセスによって使用されていて +リンクが削除できなかったので、この実装ではエラーとした。 .TP .B EFAULT .I pathname -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がアクセス可能なアドレス空間の外を指している。 .TP .B EIO -I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +I/O エラーが発生した。 .TP .B EISDIR .I pathname -¤¬¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤·¤Æ¤¤¤ë¡£ -(¤³¤ì¤Ï POSIX ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤Ãͤǡ¢Linux 2.1.132 °Ê¹ß¤ÇÊÖ¤µ¤ì¤ë¡£) +がディレクトリを参照している。 +(これは POSIX で規定されていない値で、Linux 2.1.132 以降で返される。) .TP .B ELOOP .I pathname -¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ +を解決する際に遭遇したシンボリック・リンクが多過ぎる。 .TP .B ENAMETOOLONG -.IR pathname " ¤¬Ä¹²á¤®¤ë¡£" +.IR pathname " が長過ぎる。" .TP .B ENOENT .I pathname -¤ËÂбþ¤¹¤ë¤â¤Î¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢²õ¤ì¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ç¤¢¤ë¤«¡¢ +に対応するものが存在しないか、壊れたシンボリック・リンクであるか、 .I pathname -¤¬¶õ¤Ç¤¢¤ë¡£ +が空である。 .TP .B ENOMEM -½½Ê¬¤Ê¥«¡¼¥Í¥ë (kernel) ¤Î¥á¥â¥ê¡¼¤¬»ÈÍѤǤ­¤Ê¤¤¡£ +十分なカーネル (kernel) のメモリーが使用できない。 .TP .B ENOTDIR .I pathname -¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬¡¢¼ÂºÝ¤Ë¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +のディレクトリ部分が、実際には、ディレクトリでない。 .TP .B EPERM -¥·¥¹¥Æ¥à¤¬¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ¹¤ë unlink Áàºî¤òµö²Ä¤·¤Æ¤¤¤Ê¤¤¡£ -¤Þ¤¿¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ¹¤ë unlink Áàºî¤Î¤¿¤á¤ËɬÍפÊÆø¢¤ò -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -(¤³¤ì¤Ï POSIX ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤ÎÊÖ¤·Êý¤Ç¤¢¤ë¡£ -¾å½Ò¤ÎÄ̤ꡢ¤³¤Î¾ì¹ç¤Ë¤Ï Linux ¤Ï +システムがディレクトリに対する unlink 操作を許可していない。 +またはディレクトリに対する unlink 操作のために必要な特権を +呼び出し元のプロセスが持っていない。 +(これは POSIX で規定されているエラーの返し方である。 +上述の通り、この場合には Linux は .B EISDIR -¤òÊÖ¤¹¡£) +を返す。) .TP -.BR EPERM " (Linux ¤Î¤ß)" -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë unlink Áàºî¤òµö¤·¤Æ¤¤¤Ê¤¤¡£ +.BR EPERM " (Linux のみ)" +ファイルシステムがファイルに対する unlink 操作を許していない。 .TP -.BR EPERM " ¤Þ¤¿¤Ï " EACCES +.BR EPERM " または " EACCES .I pathname -¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È (sticky-bit) +を含んでいるディレクトリにスティッキー・ビット (sticky-bit) .RB ( S_ISVTX ) -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Æ¡¢¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ºï½ü¤·¤è¤¦¤È¤¹¤ë¥Õ¥¡¥¤¥ë¤Î -UID ¤Ç¤â¤½¤ì¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¤â¤Î¤Ç¤â¤Ê¤¯¡¢ -¤«¤Ä¥×¥í¥»¥¹¤ËÆø¢¤¬¤Ê¤¤ (Linux ¤Ç¤Ï +が設定されていて、プロセスの実効ユーザー ID が削除しようとするファイルの +UID でもそれを含んでいるディレクトリのものでもなく、 +かつプロセスに特権がない (Linux では .B CAP_FOWNER -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤¬¤Ê¤¤)¡£ +ケーパビリティ (capability) がない)。 .TP .B EROFS .I pathname -¤¬Æɤ߹þ¤ßÀìÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤ë¡£ -.SH ½àµò +が読み込み専用のファイルシステムのファイルを参照している。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -.\" SVr4 ¤Ë¤Ï¾¤Ë EINTR, EMULTIHOP, ETXTBSY, ENOLINK ¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Î -.\" µ­½Ò¤¬¤¢¤ë¡£ -.SH ¥Ð¥° -NFS ¥×¥í¥È¥³¥ë (protocol) ¤ÎÀøºßŪ¤ÊÉÔÎɤˤè¤ê¡¢ -¤Þ¤À»ÈÍÑÃæ¤Î¥Õ¥¡¥¤¥ë¤ÎÆÍÁ³¤Î¾ÃÌǤò°ú¤­µ¯¤³¤¹¤³¤È¤¬¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +.\" SVr4 には他に EINTR, EMULTIHOP, ETXTBSY, ENOLINK エラーについての +.\" 記述がある。 +.SH バグ +NFS プロトコル (protocol) の潜在的な不良により、 +まだ使用中のファイルの突然の消滅を引き起こすことがある。 +.SH 関連項目 .BR rm (1), .BR chmod (2), .BR link (2), diff --git a/release/man2/unlinkat.2 b/release/man2/unlinkat.2 index 3d6d9de4..adb7343d 100644 --- a/release/man2/unlinkat.2 +++ b/release/man2/unlinkat.2 @@ -27,9 +27,9 @@ .\" Translated 2006-08-24 by Yuichi SATO , LDP v2.39 .\" .TH UNLINKAT 2 2009-12-13 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -unlinkat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÁêÂÐŪ¤Ê°ÌÃ֤ˤ¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¥¨¥ó¥È¥ê¤òºï½ü¤¹¤ë -.SH ½ñ¼° +.SH 名前 +unlinkat \- ディレクトリファイルディスクリプタから相対的な位置にあるディレクトリエントリを削除する +.SH 書式 .nf .B #include .sp @@ -37,9 +37,9 @@ unlinkat \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR unlinkat (): @@ -47,118 +47,118 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR unlinkat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë°ã¤¤¤¬¤¢¤ë°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明している違いがある以外は、 .RI ( flags -¤Ë +に .B AT_REMOVEDIR -¥Õ¥é¥°¤¬´Þ¤Þ¤ì¤ë¤«Èݤ«¤Ë¤è¤ê) +フラグが含まれるか否かにより) .BR unlink (2) -¤Þ¤¿¤Ï +または .BR rmdir (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .I pathname -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹Ì¾¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パス名である場合、 +ファイルディスクリプタ .I dirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( unlink (2) -¤Þ¤¿¤Ï +または .BR rmdir (2) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスの +カレントワーキングディレクトリからの相対パスとなる)。 .I pathname -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹Ì¾¤Ç¤¢¤ê¡¢¤«¤Ä +で指定されるパス名が相対パス名であり、かつ .I dirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I pathname -¤Ï +は .RB ( unlink (2) -¤Þ¤¿¤Ï +または .BR rmdir (2) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .I pathname -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÀäÂХѥ¹Ì¾¤Ç¤¢¤ë¾ì¹ç¡¢ +で指定されるパス名が絶対パス名である場合、 .I dirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .I flags -¤Ï¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ê¡¢0 ¤Þ¤¿¤Ï +はビットマスクであり、0 または .BR unlinkat () -¤ÎÁàºî¤òÀ©¸æ¤¹¤ë¥Õ¥é¥°ÃͤΠOR ¤ò»ØÄê¤Ç¤­¤ë¡£ -¸½ºß¤Î¤È¤³¤í 1 ¤Ä¤Î¥Õ¥é¥°¤À¤±¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +の操作を制御するフラグ値の OR を指定できる。 +現在のところ 1 つのフラグだけが定義されている: .TP .B AT_REMOVEDIR -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +デフォルトでは、 .BR unlinkat () -¤Ï +は .I pathname -¤ËÂФ·¤Æ +に対して .BR unlink (2) -¤ÈƱ¤¸Áàºî¤ò¹Ô¤¦¡£ +と同じ操作を行う。 .B AT_REMOVEDIR -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤ë¤È¡¢ +フラグが指定されると、 .I pathname -¤ËÂФ·¤Æ +に対して .BR rmdir (2) -¤ÈƱ¤¸Áàºî¤ò¹Ô¤¦¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +と同じ操作を行う。 +.SH 返り値 +成功した場合、 .BR unlinkat () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +は 0 を返す。 +エラーの場合、\-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +にはエラーを示す値が設定される。 +.SH エラー .BR unlink (2) -¤Þ¤¿¤Ï +または .BR rmdir (2) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR unlinkat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .BR unlinkat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .I dirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B EINVAL .I flags -¤ËÉÔÀµ¤Ê¥Õ¥é¥°Ãͤ¬»ØÄꤵ¤ì¤¿¡£ +に不正なフラグ値が指定された。 .TP .B ENOTDIR .I pathname -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I dirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 +.SH バージョン .BR unlinkat () -¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ -.SH ½àµò +は Linux カーネル 2.6.16 で追加された。 +.SH 準拠 POSIX.1-2008. -Solaris ¤Ë¤Ï¡¢¤³¤ì¤ÈƱ¤¸¤è¤¦¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Â¸ºß¤¹¤ë¡£ -.SH Ãí°Õ +Solaris には、これと同じようなシステムコールが存在する。 +.SH 注意 .BR unlinkat () -¤¬É¬ÍפÊÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が必要な理由については、 .BR openat (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を参照すること。 +.SH 関連項目 .BR openat (2), .BR rmdir (2), .BR unlink (2), diff --git a/release/man2/unshare.2 b/release/man2/unshare.2 index 3342ad54..18c9a288 100644 --- a/release/man2/unshare.2 +++ b/release/man2/unshare.2 @@ -23,73 +23,73 @@ .\" Translated 2006-08-10 by Yuichi SATO , LDP v2.36 .\" .TH UNSHARE 2 2010-09-10 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -unshare \- ¥×¥í¥»¥¹¼Â¹Ô¥³¥ó¥Æ¥­¥¹¥È¤Î°ìÉô¤òʬΥ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +unshare \- プロセス実行コンテキストの一部を分離する +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .\" Actually _BSD_SOURCE || _SVID_SOURCE .\" See http://sources.redhat.com/bugzilla/show_bug.cgi?id=4749 .B #include .sp .BI "int unshare(int " flags ); .fi -.SH ÀâÌÀ +.SH 説明 .BR unshare () -¤ò»È¤¦¤È¡¢¥×¥í¥»¥¹¤Ï¾¤Î¥×¥í¥»¥¹¤È¸½ºß¶¦Í­¤·¤Æ¤¤¤ë -¼Â¹Ô¥³¥ó¥Æ¥­¥¹¥È¤Î°ìÉô¤òʬΥ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¼Â¹Ô¥³¥ó¥Æ¥­¥¹¥È¤Î°ìÉô¡¢¤¿¤È¤¨¤Ð¥Þ¥¦¥ó¥È̾Á°¶õ´Ö (mount namespace) -¤Ê¤É¤Ï¡¢¿·¤·¤¤¥×¥í¥»¥¹¤ò +を使うと、プロセスは他のプロセスと現在共有している +実行コンテキストの一部を分離することができる。 +実行コンテキストの一部、たとえばマウント名前空間 (mount namespace) +などは、新しいプロセスを .BR fork (2) -¤Þ¤¿¤Ï +または .BR vfork (2) -¤ò»È¤Ã¤ÆÀ¸À®¤·¤¿¤È¤­¤Ë¡¢°ÅÌۤΤ¦¤Á¤Ë¶¦Í­¤µ¤ì¤ë¡£ -°ìÊý¡¢²¾ÁÛ¥á¥â¥ê¤Ê¤É¤Ï¡¢ +を使って生成したときに、暗黙のうちに共有される。 +一方、仮想メモリなどは、 .BR clone (2) -¤ò»È¤Ã¤Æ¥×¥í¥»¥¹¤òÀ¸À®¤¹¤ë¤È¤­¤Ë¡¢ÌÀ¼¨Åª¤Ë¶¦Í­¤¹¤ë¤³¤È¤òÍ×µá¤Ç¤­¤ë¡£ +を使ってプロセスを生成するときに、明示的に共有することを要求できる。 .BR unshare () -¤Î¼ç¤ÊÍøÍÑË¡¤Ï¡¢¥×¥í¥»¥¹¤¬¿·¤·¤¤¥×¥í¥»¥¹¤òÀ¸À®¤¹¤ë¤³¤È¤Ê¤¯¡¢ -¶¦Í­¼Â¹Ô¥³¥ó¥Æ¥­¥¹¥È¤òÀ©¸æ¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£ +の主な利用法は、プロセスが新しいプロセスを生成することなく、 +共有実行コンテキストを制御することである。 .I flags -°ú¤­¿ô¤Ï¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ê¡¢ -¼Â¹Ô¥³¥ó¥Æ¥­¥¹¥È¤Î¤É¤ÎÉôʬ¤Î¶¦Í­¤ò²ò½ü¤¹¤ë¤«¤òɽ¤¹¡£ -¤³¤Î°ú¤­¿ô¤Ï¡¢°Ê²¼¤ÎÄê¿ô¤Î 0 ¸Ä°Ê¾å¤Î OR ¤Ç»ØÄꤹ¤ë: +引き数はビットマスクであり、 +実行コンテキストのどの部分の共有を解除するかを表す。 +この引き数は、以下の定数の 0 個以上の OR で指定する: .TP .B CLONE_FILES .BR clone (2) .B CLONE_FILES -¥Õ¥é¥°¤Î¸ú²Ì¤ò¼è¤ê¾Ã¤¹¡£ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¥Æ¡¼¥Ö¥ë¤ò¶¦Í­¤µ¤»¤º¡¢ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ï¾¤Î¥×¥í¥»¥¹¤È¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¶¦Í­¤·¤Ê¤¯¤Ê¤ë¡£ +フラグの効果を取り消す。 +ファイルディスクリプタテーブルを共有させず、 +呼び出し元プロセスは他のプロセスとファイルディスクリプタを共有しなくなる。 .TP .B CLONE_FS .BR clone (2) .B CLONE_FS -¥Õ¥é¥°¤Î¸ú²Ì¤ò¼è¤ê¾Ã¤¹¡£ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à°À­¤ò¶¦Í­¤µ¤»¤º¡¢ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ï¾¤Î¥×¥í¥»¥¹¤È¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¡¦ -¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¡¦umask °À­¤ò¶¦Í­¤·¤Ê¤¯¤Ê¤ë¡£ +フラグの効果を取り消す。 +ファイルシステム属性を共有させず、 +呼び出し元プロセスは他のプロセスとルートディレクトリ・ +カレントディレクトリ・umask 属性を共有しなくなる。 .BR chroot (2), .BR chdir (2), .BR umask (2) -¤Ë±Æ¶Á¤¹¤ë¡£ +に影響する。 .TP .B CLONE_NEWNS .\" These flag name are inconsistent: .\" CLONE_NEWNS does the same thing in clone(), but CLONE_VM, .\" CLONE_FS, and CLONE_FILES reverse the action of the clone() .\" flags of the same name. -¤³¤Î¥Õ¥é¥°¤Ï +このフラグは .BR clone (2) .B CLONE_NEWNS -¥Õ¥é¥°¤È\fIƱ¤¸\fR¸ú²Ì¤ò»ý¤Ä¡£ -¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤ò¶¦Í­¤»¤º¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ï -¾¤Î¥×¥í¥»¥¹¤È¤Ï¶¦Í­¤·¤Ê¤¤¸ÇÍ­¤Î̾Á°¶õ´Ö¤Î¥³¥Ô¡¼¤ò»ý¤Ä¡£ -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È¡¢ +フラグと\fI同じ\fR効果を持つ。 +マウント名前空間を共有せず、呼び出し元プロセスは +他のプロセスとは共有しない固有の名前空間のコピーを持つ。 +このフラグを指定すると、 .B CLONE_FS -¤â°ÅÌۤΤ¦¤Á¤Ë»ØÄꤵ¤ì¤ë¡£ +も暗黙のうちに指定される。 .\" As at 2.6.16, the following forced implications also apply, .\" although the relevant flags are not yet implemented. .\" If CLONE_THREAD is set force CLONE_VM. @@ -114,46 +114,46 @@ unshare \- .\" longer shares its virtual address space with any other process. .PP .I flags -¤Ë 0 ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +に 0 が指定された場合、 .BR unshare () -¤Ï²¿¤â¹Ô¤ï¤Ê¤¤¤Î¤Ç¡¢ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¹Ô¥³¥ó¥Æ¥­¥¹¥È¤Ï¡¢²¿¤âÊѹ¹¤µ¤ì¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +は何も行わないので、 +呼び出し元プロセスの実行コンテキストは、何も変更されない。 +.SH 返り値 +成功した場合は 0 が返される。 +失敗した場合は \-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +にはエラーを示す値が設定される。 +.SH エラー .TP .B EINVAL .I flags -¤ËÉÔÀµ¤Ê¥Ó¥Ã¥È¤¬»ØÄꤵ¤ì¤¿¡£ +に不正なビットが指定された。 .TP .B ENOMEM -¸Æ¤Ó½Ð¤·¸µ¤Î¥³¥ó¥Æ¥­¥¹¥È¤Î¤¦¤Á¶¦Í­¤ò²ò½ü¤¹¤ëɬÍפ¬¤¢¤ëÉôʬ¤ò¥³¥Ô¡¼¤¹¤ë¤¿¤á¤Ë¡¢ -½½Ê¬¤Ê¥á¥â¥ê¤¬³ÎÊݤǤ­¤Ê¤«¤Ã¤¿¡£ +呼び出し元のコンテキストのうち共有を解除する必要がある部分をコピーするために、 +十分なメモリが確保できなかった。 .TP .B EPERM .I flags -¤Ë +に .B CLONE_NEWNS -¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤ËÆø¢ +が指定されたが、呼び出し元プロセスに特権 .RB ( CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤¬¤Ê¤«¤Ã¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +ケーパビリティ) がなかった。 +.SH バージョン .BR unshare () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£ -.SH ½àµò +システムコールは Linux カーネル 2.6.16 で追加された。 +.SH 準拠 .BR unshare () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -.SH Ãí°Õ +システムコールは Linux 固有である。 +.SH 注意 .BR clone (2) -¤Ç¿·¤·¤¤¥×¥í¥»¥¹¤òÀ¸À®¤·¤¿¤È¤­¤Ë¶¦Í­¤µ¤ì¤ëÁ´¤Æ¤Î¥×¥í¥»¥¹Â°À­¤ò¡¢ +で新しいプロセスを生成したときに共有される全てのプロセス属性を、 .BR unshare () -¤Ë¤è¤Ã¤Æ¶¦Í­¤Î²ò½ü¤¬¤Ç¤­¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -Æäˡ¢¥«¡¼¥Í¥ë 2.6.16 ¤Ë¤ª¤¤¤Æ¤Ï¡¢ +によって共有の解除ができるわけではない。 +特に、カーネル 2.6.16 においては、 .BR unshare () -¤Ë +に .BR CLONE_SIGHAND , .\" However, we can do unshare(CLONE_SIGHAND) if CLONE_SIGHAND .\" was not specified when doing clone(); i.e., unsharing @@ -164,12 +164,12 @@ unshare \- .\" FIXME . check future kernel versions (e.g., 2.6.17) .\" to see if CLONE_VM gets implemented. .B CLONE_VM -¤Î¸ú²Ì¤ò¼è¤ê¾Ã¤¹¤¿¤á¤Î¥Õ¥é¥°¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +の効果を取り消すためのフラグが実装されていない。 .\" However, as at 2.6.16, we can do unshare(CLONE_VM) if CLONE_VM .\" was not specified when doing clone(); i.e., unsharing .\" virtual memory is permitted if we are not actually .\" sharing virtual memory. mtk -¤³¤ì¤é¤Îµ¡Ç½¤Ï¡¢É¬ÍפǤ¢¤ì¤Ð¾­ÍèÄɲ䵤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +これらの機能は、必要であれば将来追加されるかもしれない。 .\" .\"9) Future Work .\"-------------- @@ -181,7 +181,7 @@ unshare \- .\"be incrementally added to unshare without affecting legacy .\"applications using unshare. .\" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR clone (2), .BR fork (2), .BR vfork (2), diff --git a/release/man2/uselib.2 b/release/man2/uselib.2 index 7c847394..e1a6302f 100644 --- a/release/man2/uselib.2 +++ b/release/man2/uselib.2 @@ -35,75 +35,75 @@ .\" Updated 2005-02-28, Akihiro MOTOKI .\" Updated 2005-04-20, Akihiro MOTOKI .\" -.\"WORD: Linux-specific Linux ÆÃÍ­ +.\"WORD: Linux-specific Linux 特有 .\" .TH USELIB 2 2005-01-09 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -uselib \- ¶¦Í­¥é¥¤¥Ö¥é¥ê¤òÁªÂò¤¹¤ë -.SH ½ñ¼° +.SH 名前 +uselib \- 共有ライブラリを選択する +.SH 書式 .B #include .sp .BI "int uselib(const char *" library ); -.SH ÀâÌÀ -¥·¥¹¥Æ¥à¥³¡¼¥ë +.SH 説明 +システムコール .BR uselib () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬»ÈÍѤ¹¤ë -¶¦Í­¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤¹¤ëºÝ¤Ë»ÈÍѤµ¤ì¤ë¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤Ï¥é¥¤¥Ö¥é¥ê¤Î¥Ñ¥¹Ì¾¤ò»ØÄꤹ¤ë¡£ -¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤¹¤ë¥¢¥É¥ì¥¹¤Ï¥é¥¤¥Ö¥é¥ê¼«¿È¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ -¥é¥¤¥Ö¥é¥ê¤Ïǧ¼±²Äǽ¤Ê¥Ð¥¤¥Ê¥ê·Á¼°¤Ç¤¢¤ì¤Ð¤É¤ó¤Ê·Á¼°¤Ç¤â¤è¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç 0 ¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤òÊÖ¤·¡¢ +は、呼び出し元プロセスが使用する +共有ライブラリをロードする際に使用される。 +このシステムコールにはライブラリのパス名を指定する。 +ライブラリをロードするアドレスはライブラリ自身に書かれている。 +ライブラリは認識可能なバイナリ形式であればどんな形式でもよい。 +.SH 返り値 +成功した場合 0 を返す。失敗した場合 \-1 を返し、 .I errno -¤ò¥¨¥é¡¼¤ÎÆâÍƤ˽¾¤Ã¤ÆÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +をエラーの内容に従って設定する。 +.SH エラー .BR open (2) -¤È +と .BR mmap (2) -¤¬ÊÖ¤¹¥¨¥é¡¼¥³¡¼¥É¤Ë²Ã¤¨¤Æ¡¢°Ê²¼¤Î¥¨¥é¡¼¥³¡¼¥É¤¬ÀßÄꤵ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ +が返すエラーコードに加えて、以下のエラーコードが設定されることがある。 .TP .B EACCES .I library -¤Ç»ØÄꤵ¤ì¤¿¥é¥¤¥Ö¥é¥ê¤ËÂФ¹¤ëÆɤ߹þ¤ßµö²Ä¡¢¤Þ¤¿¤Ï¼Â¹Ôµö²Ä¤¬¤Ê¤¤¡£ -¤â¤·¤¯¤Ï +で指定されたライブラリに対する読み込み許可、または実行許可がない。 +もしくは .I library -¤¬Â¸ºß¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤½¤Î¾å°Ì¤Î¤¤¤º¤ì¤«¤ËÂФ¹¤ë¸¡º÷µö²Ä¤¬¤Ê¤¤ +が存在するディレクトリかその上位のいずれかに対する検索許可がない .RB ( path_resolution (7) -¤â»²¾È)¡£ +も参照)。 .TP .B ENFILE -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ÎÁí¿ô¤¬¥·¥¹¥Æ¥àÁ´ÂΤξå¸Â¤Ë㤷¤¿¡£ +オープンされたファイルの総数がシステム全体の上限に達した。 .TP .B ENOEXEC .I library -¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬¡¢¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤Èǧ¼±¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¼ïÊÌ¤Ç¤Ï -¤Ê¤¤¡¢¤Ä¤Þ¤êÀµ¤·¤¤¥Þ¥¸¥Ã¥¯¡¦¥Ê¥ó¥Ð¡¼¤¬ÉÕ¤¤¤Æ¤¤¤Ê¤¤¡£ -.SH ½àµò +で指定されたファイルが、実行可能ファイルと認識されるファイル種別では +ない、つまり正しいマジック・ナンバーが付いていない。 +.SH 準拠 .BR uselib () -¤Ï Linux ÆÃÍ­¤Î´Ø¿ô¤Ç¤¢¤ê¡¢°Ü¿¢À­¤ò»ý¤¿¤»¤¿¤¤¥×¥í¥°¥é¥à -¤Ë¤Ï»ÈÍѤ¹¤Ù¤­¤Ç¤Ê¤¤¡£ -.SH Ãí°Õ -½é´ü¤Î libc ¤Îµ¯Æ°¥³¡¼¥É¤Ï¡¢ +は Linux 特有の関数であり、移植性を持たせたいプログラム +には使用すべきでない。 +.SH 注意 +初期の libc の起動コードは、 .BR uselib () -¤ò»È¤Ã¤Æ¡¢ -¥Ð¥¤¥Ê¥êÃæ¤Î¥ê¥¹¥È¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¶¦Í­¥é¥¤¥Ö¥é¥ê¤ò -¥ê¥¹¥ÈÃæ¤Î¤½¤Î¤Þ¤Þ¤Î̾Á°¤Ç¥í¡¼¥É¤·¤Æ¤¤¤¿¡£ +を使って、 +バイナリ中のリストに書かれている共有ライブラリを +リスト中のそのままの名前でロードしていた。 .LP .\" libc 4.3.1f - changelog 1993-03-02 -libc 4.3.2 °Ê¹ß¤Ç¤Ï¡¢¤³¤ì¤é¤Î̾Á°¤ÎÁ°¤Ë "/usr/lib", "/lib", "" ¤ò -¤Ä¤±¤Æ¶¦Í­¥é¥¤¥Ö¥é¥ê¤òõ¤¹¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ +libc 4.3.2 以降では、これらの名前の前に "/usr/lib", "/lib", "" を +つけて共有ライブラリを探すようになった。 .\" libc 4.3.4 - changelog 1993-04-21 -libc 4.3.4 °Ê¹ß¤Ç¤Ï¡¢¤³¤ì¤é¤Î̾Á°¤Î¶¦Í­¥é¥¤¥Ö¥é¥ê¤ò¤Þ¤º +libc 4.3.4 以降では、これらの名前の共有ライブラリをまず .B LD_LIBRARY_PATH -¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Çõ¤·¡¢¸«¤Ä¤«¤é¤Ê¤±¤ì¤Ð¡¢ -̾Á°¤ÎÁ°¤Ë "/usr/lib", "/lib", "/" ¤ò¤Ä¤±¤Æõ¤¹¡£ +で指定されたディレクトリで探し、見つからなければ、 +名前の前に "/usr/lib", "/lib", "/" をつけて探す。 .LP -libc 4.4.4 °Ê¹ß¤Ç¤Ï¡¢¥é¥¤¥Ö¥é¥ê "/lib/ld.so" ¤À¤±¤¬¥í¡¼¥É¤µ¤ì¡¢¤½¤Î¸å¤Ç -¤³¤ÎưŪ¥é¥¤¥Ö¥é¥ê¤¬ (¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¤â¤¦°ìÅٻȤäÆ) -ɬÍפʻĤê¤Î¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +libc 4.4.4 以降では、ライブラリ "/lib/ld.so" だけがロードされ、その後で +この動的ライブラリが (このシステムコールをもう一度使って) +必要な残りのライブラリをロードできるようになっている。 .LP -glibc2 ¤Ï¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»ÈÍѤ·¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +glibc2 は、このシステムコールを使用しない。 +.SH 関連項目 .BR ar (1), .BR gcc (1), .BR ld (1), diff --git a/release/man2/ustat.2 b/release/man2/ustat.2 index 78e1cf26..427112e9 100644 --- a/release/man2/ustat.2 +++ b/release/man2/ustat.2 @@ -32,18 +32,18 @@ .\" Updated & Modified Sat May 22 19:00:40 JST 2004 .\" by Yuichi SATO .\" -.\"WORD: file system ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à -.\"WORD: mount ¥Þ¥¦¥ó¥È -.\"WORD: device ¥Ç¥Ð¥¤¥¹ -.\"WORD: member ¥á¥ó¥Ð¡¼ -.\"WORD: NUL character ¥Ì¥ëʸ»ú -.\"WORD: implement ¼ÂÁõ -.\"WORD: pointer ¥Ý¥¤¥ó¥¿¡¼ +.\"WORD: file system ファイル・システム +.\"WORD: mount マウント +.\"WORD: device デバイス +.\"WORD: member メンバー +.\"WORD: NUL character ヌル文字 +.\"WORD: implement 実装 +.\"WORD: pointer ポインター .\" .TH USTAT 2 2003-08-04 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -ustat \- ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à (file system) ¤ÎÅý·×¤òÆÀ¤ë -.SH ½ñ¼° +.SH 名前 +ustat \- ファイル・システム (file system) の統計を得る +.SH 書式 .nf .B #include .br @@ -53,14 +53,14 @@ ustat \- .sp .BI "int ustat(dev_t " dev ", struct ustat *" ubuf ); .fi -.SH ÀâÌÀ +.SH 説明 .BR ustat () -¤Ï¥Þ¥¦¥ó¥È (mount) ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î¾ðÊó¤òÊÖ¤¹¡£ +はマウント (mount) されたファイル・システムの情報を返す。 .I dev -¤ÏÄ´¤Ù¤ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥Ð¥¤¥¹ (device) ¤Î -¥Ç¥Ð¥¤¥¹Èֹ档 +は調べるファイル・システムを含んでいるデバイス (device) の +デバイス番号。 .I ubuf -¤Ï°Ê²¼¤Î¥á¥ó¥Ð¡¼¤ò´Þ¤à ustat ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¡¼: +は以下のメンバーを含む ustat 構造体へのポインター: .in +4n .nf @@ -71,59 +71,59 @@ char f_fpack[6]; /* Filsys pack name */ .fi .in .PP -¸å¤ÎÆó¤Ä¤Î¥Õ¥£¡¼¥ë¥É +後の二つのフィールド .I f_fname -¤È +と .I f_fpack -¤Ï¼ÂÁõ¤µ¤ì¤Æ¤ª¤é¤º¡¢¾ï¤Ë NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤ÇËä¤á¤é¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤¬ÊÖ¤µ¤ì¡¢ +は実装されておらず、常に NULL バイト (\(aq\\0\(aq) で埋められる。 +.SH 返り値 +成功した場合にはゼロが返され、 .I ubuf -¤¬»Ø¤¹ +が指す .I ustat -¹½Â¤ÂΤ¬Ëä¤á¤é¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +構造体が埋められる。 +エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EFAULT .I ubuf -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¶õ´Ö¤Î³°Â¦¤ò»Ø¤·¤Æ¤¤¤ë¡£ +がアクセス可能な空間の外側を指している。 .TP .B EINVAL .I dev -¤¬¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ò´Þ¤à¥Ç¥Ð¥¤¥¹¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£ +がマウントされたファイル・システムを含むデバイスを参照していない。 .TP .B ENOSYS .I dev -¤Ç»²¾È¤µ¤ì¤ë¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤¬¤³¤ÎÁàºî (operation) ¤ò -¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¤«¡¢Linux ¤Î¥Ð¡¼¥¸¥ç¥ó¤¬ 1.3.16 °ÊÁ°¤Ç¤¢¤ë¡£ -.SH ½àµò +で参照されるマウントされたファイル・システムがこの操作 (operation) を +サポートしていないか、Linux のバージョンが 1.3.16 以前である。 +.SH 準拠 SVr4. -.\" SVr4 ¤Ë¤Ï¾¤Ë ENOLINK, ECOMM, EINTR ¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¤¬¡¢ -.\" ENOSYS ¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ +.\" SVr4 には他に ENOLINK, ECOMM, EINTR についての記述があるが、 +.\" ENOSYS エラーについての記述はない。 +.SH 注意 .BR ustat () -¤Ï¿ä¾©¤µ¤ì¤º¡¢¸ß´¹À­¤Î¤¿¤á¤À¤±¤ËÄ󶡤µ¤ì¤ë¡£ -¿·¤·¤¤¥×¥í¥°¥é¥à¤ÏÁ´¤Æ¤³¤ì¤ÎÂå¤ê¤Ë +は推奨されず、互換性のためだけに提供される。 +新しいプログラムは全てこれの代りに .BR statfs (2) -¤ò»ÈÍѤ¹¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -.SS "HP-UX ¤Ë¤ª¤±¤ëÃí°Õ" -HP-UX ÈǤι½Â¤ÂÎ +を使用するべきである。 +.SS "HP-UX における注意" +HP-UX 版の構造体 .I ustat -¤Ë¤Ï¡¢¤½¤Î¾¤Ë¥Õ¥£¡¼¥ë¥É +には、その他にフィールド .I f_blksize -¤¬Â¸ºß¤¹¤ë¤¬¡¢Â¾¤Ç¤Ï¸«¤«¤±¤Ê¤¤¡£ -HP-UX ¤Ï¼¡¤Î¤è¤¦¤Ë·Ù¹ð¤·¤Æ¤¤¤ë: -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÃæ¤Ë¤Ï¡¢²òÊü¤µ¤ì¤Æ¤¤¤ë inode ¤Î¿ô¤òÊѹ¹¤·¤Ê¤¤¤â¤Î¤â¤¢¤ë¡£ -¤³¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï¡¢¥Õ¥£¡¼¥ë¥É +が存在するが、他では見かけない。 +HP-UX は次のように警告している: +ファイルシステムの中には、解放されている inode の数を変更しないものもある。 +このようなファイルシステムは、フィールド .I f_tinode -¤Ë \-1 ¤òÊÖ¤¹¡£ -.\" ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ NFS ¤Ç¤¢¤ë¤«Èݤ«¤ò¥Æ¥¹¥È¤¹¤ë¤¿¤á¤Ë -.\" ¤³¤ì¤ò»ÈÍѤ¹¤ë¥½¥Õ¥È¥¦¥§¥¢¤â¤¢¤ë¡£ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÃæ¤Ë¤Ï¡¢inode ¤òưŪ¤Ë³ÎÊݤ¹¤ë¤â¤Î¤â¤¢¤ë¡£ -¤³¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï¡¢¸½ºß²òÊü¤µ¤ì¤Æ¤¤¤ë inode ¤Î¿ô¤òÊÖ¤¹¡£ -.SH ´ØÏ¢¹àÌÜ +に \-1 を返す。 +.\" ファイルシステムが NFS であるか否かをテストするために +.\" これを使用するソフトウェアもある。 +ファイルシステムの中には、inode を動的に確保するものもある。 +このようなファイルシステムは、現在解放されている inode の数を返す。 +.SH 関連項目 .BR stat (2), .BR statfs (2) diff --git a/release/man2/utime.2 b/release/man2/utime.2 index 3357ce2f..7442317a 100644 --- a/release/man2/utime.2 +++ b/release/man2/utime.2 @@ -39,9 +39,9 @@ .\" Updated 2008-08-08, Akihiro MOTOKI, LDP v3.05 .\" .TH UTIME 2 2008-08-06 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -utime, utimes \- ¥Õ¥¡¥¤¥ë¤ÎºÇ½ª¥¢¥¯¥»¥¹»þ¹ï¤È½¤Àµ»þ¹ï¤òÊѹ¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +utime, utimes \- ファイルの最終アクセス時刻と修正時刻を変更する +.SH 書式 .nf .B #include .br @@ -53,132 +53,132 @@ utime, utimes \- .sp .BI "int utimes(const char *" filename ", const struct timeval " times [2]); .fi -.SH ÀâÌÀ +.SH 説明 .BR utime () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï +システムコールは .I filename -¤Ç¼¨¤µ¤ì¤ë inode ¤Î¥¢¥¯¥»¥¹»þ¹ï¤È½¤Àµ»þ¹ï¤ò +で示される inode のアクセス時刻と修正時刻を .I times -Ãæ¤Î -.IR actime " ¤È " modtime -¤Ë¤½¤ì¤¾¤ìÊѹ¹¤¹¤ë¡£ +中の +.IR actime " と " modtime +にそれぞれ変更する。 .I times -¤¬ +が .B NULL -¤Î¾ì¹ç¡¢¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹»þ¹ï¤È½¤Àµ»þ¹ï¤Ï¸½ºß¤Î»þ¹ï¤ËÀßÄꤵ¤ì¤ë¡£ +の場合、ファイルのアクセス時刻と修正時刻は現在の時刻に設定される。 -¥¿¥¤¥à¥¹¥¿¥ó¥×¤ÎÊѹ¹¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«¤Î¾ì¹ç¤Ëµö²Ä¤µ¤ì¤ë¡£ -¥×¥í¥»¥¹¤ËŬÀÚ¤ÊÆø¢¤¬¤¢¤ë¾ì¹ç¡¢ -¼Â¸ú (effective) ¥æ¡¼¥¶ ID ¤¬¥Õ¥¡¥¤¥ë¤Î¥æ¡¼¥¶ ID ¤ÈÅù¤·¤¤¾ì¹ç¡¢ +タイムスタンプの変更は以下のいずれかの場合に許可される。 +プロセスに適切な特権がある場合、 +実効 (effective) ユーザ ID がファイルのユーザ ID と等しい場合、 .I times -¤¬ NULL ¤«¤Ä¡¢¥×¥í¥»¥¹¤¬¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤­¹þ¤ßµö²Ä¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¡£ +が NULL かつ、プロセスがファイルへの書き込み許可を持っている場合。 -¹½Â¤ÂÎ +構造体 .I utimbuf -¤Ï°Ê²¼¤Ë¼¨¤¹¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +は以下に示すようになっている。 .in +4n .nf struct utimbuf { - time_t actime; /* ¥¢¥¯¥»¥¹»þ¹ï */ - time_t modtime; /* ½¤Àµ»þ¹ï */ + time_t actime; /* アクセス時刻 */ + time_t modtime; /* 修正時刻 */ }; .fi .in .BR utime () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï 1 ÉäÎʬ²òǽ¤Ç¥¿¥¤¥à¥¹¥¿¥ó¥×¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +システムコールは 1 秒の分解能でタイムスタンプを指定することができる。 .BR utimes () -¤Ï +は .BR utime () -¤ÈƱÍͤǤ¢¤ë¤¬¡¢ +と同様であるが、 .I times -°ú¤­¿ô¤¬¹½Â¤ÂΤǤϤʤ¯ÇÛÎó¤ò»²¾È¤¹¤ë¡£ -¤³¤ÎÇÛÎó¤ÎÍ×ÁÇ¤Ï +引き数が構造体ではなく配列を参照する。 +この配列の要素は .I timeval -¹½Â¤ÂΤǡ¢¥¿¥¤¥à¥¹¥¿¥ó¥×¤Î»ØÄê¤ò 1 ¥Þ¥¤¥¯¥íÉäÎʬ²òǽ¤Ç¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¹½Â¤ÂÎ +構造体で、タイムスタンプの指定を 1 マイクロ秒の分解能で行うことができる。 +構造体 .I timeval -¤Ï°Ê²¼¤Ë¼¨¤¹Ä̤ê¤Ç¤¢¤ë¡£ +は以下に示す通りである。 .in +4n .nf struct timeval { - long tv_sec; /* Éà */ - long tv_usec; /* ¥Þ¥¤¥¯¥íÉà */ + long tv_sec; /* 秒 */ + long tv_usec; /* マイクロ秒 */ }; .fi .in .PP .IR times [0] -¤Ï¿·¤·¤¤¥¢¥¯¥»¥¹»þ¹ï¤ò¡¢ +は新しいアクセス時刻を、 .IR times [1] -¤Ï¿·¤·¤¤½¤Àµ»þ¹ï¤òµ¬Äꤹ¤ë¡£ +は新しい修正時刻を規定する。 .I times -¤¬ NULL ¤Î¾ì¹ç¡¢ +が NULL の場合、 .BR utime () -ƱÍÍ¡¢¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹»þ¹ï¤È½¤Àµ»þ¹ï¤Ï¸½ºß¤Î»þ¹ï¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç 0 ¤¬Ê֤롣¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤¬Ê֤ꡢ +同様、ファイルのアクセス時刻と修正時刻は現在の時刻に設定される。 +.SH 返り値 +成功した場合 0 が返る。失敗した場合 \-1 が返り、 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤ˽¾¤Ã¤ÆÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +がエラーの内容に従って設定される。 +.SH エラー .TP .B EACCES .I path -¤ò¹½À®¤¹¤ë²¿¤ì¤«¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¸¡º÷µö²Ä¤¬¤Ê¤¤ +を構成する何れかのディレクトリに検索許可がない .RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È)¡£ +も参照すること)。 .TP .B EACCES .I times -¤¬ NULL ¤Ç¤¢¤ë¡£ -¤Þ¤¿¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤¬¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤È°ìÃפ·¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤¬¤½¤Î¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤­¹þ¤ßµö²Ä¤ò»ý¤¿¤º¡¢ -Æø¢¤â»ý¤Ã¤Æ¤¤¤Ê¤¤ (Linux ¤Î¾ì¹ç¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ +が NULL である。 +または、呼び出し元の実効ユーザ ID がファイルの所有者と一致しない。 +または、呼び出し元がそのファイルへの書き込み許可を持たず、 +特権も持っていない (Linux の場合、ケーパビリティ .B CAP_DAC_OVERRIDE -¤â +も .B CAP_FOWNER -¤â»ý¤Ã¤Æ¤¤¤Ê¤¤)¡£¤Þ¤¿¤Ï¡¢ +も持っていない)。または、 .TP .B ENOENT .I filename -¤¬Â¸ºß¤·¤Ê¤¤¡£ +が存在しない。 .TP .B EPERM .I times -¤¬ NULL ¤Ç¤Ê¤¯¡¢¤«¤Ä¸Æ¤Ó½Ð¤·¸µ¤Î¼Â¸ú UID ¤¬¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤È°ìÃפ»¤º¡¢ -¤«¤Ä¸Æ¤Ó½Ð¤·¸µ¤¬Æø¢¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤ -(Linux ¤Î¾ì¹ç¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ +が NULL でなく、かつ呼び出し元の実効 UID がファイルの所有者と一致せず、 +かつ呼び出し元が特権を持っていない +(Linux の場合、ケーパビリティ .B CAP_FOWNER -¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤)¡£ +を持っていない)。 .TP .B EROFS .I path -¤¬Æɤ߹þ¤ßÀìÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ë¤¢¤ë¡£ -.SH ½àµò +が読み込み専用のファイルシステム上にある。 +.SH 準拠 .BR utime (): SVr4, POSIX.1-2001. -POSIX.1-2008 ¤Ï +POSIX.1-2008 は .BR utime () -¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£ +を廃止予定としている。 .br .BR utimes (): 4.3BSD, POSIX.1-2001. -.SH Ãí°Õ -Linux ¤Ç¤Ï¡¢ÉÔÊÑ (immutable) ¥Õ¥¡¥¤¥ë¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×¤òÊѹ¹¤·¤¿¤ê¡¢ -ÄɲÃÀìÍÑ (append-only) ¤Î¥Õ¥¡¥¤¥ë¤Ë¸½ºß»þ¹ï°Ê³°¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×¤ò -ÀßÄꤷ¤¿¤ê¤¹¤ë¤³¤È¤Ï¡¢µö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +.SH 注意 +Linux では、不変 (immutable) ファイルのタイムスタンプを変更したり、 +追加専用 (append-only) のファイルに現在時刻以外のタイムスタンプを +設定したりすることは、許可されていない。 -libc4 ¤È libc5 ¤Ç¤Ï¡¢ +libc4 と libc5 では、 .BR utimes () -¤Ïñ¤Ë +は単に .BR utime () -¤Î¥é¥Ã¥Ñ¡¼ (wrapper) ¤Ç¤¢¤ë¡£ -¤½¤Î¤¿¤áÉðʲ¼¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +のラッパー (wrapper) である。 +そのため秒以下を指定することはできない。 +.SH 関連項目 .BR chattr (1), .BR futimesat (2), .BR stat (2), diff --git a/release/man2/vfork.2 b/release/man2/vfork.2 index 3d947904..8490e264 100644 --- a/release/man2/vfork.2 +++ b/release/man2/vfork.2 @@ -30,9 +30,9 @@ .\" Updated 2008-11-10, Akihiro MOTOKI , LDP v3.13 .\" .TH VFORK 2 2010-09-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -vfork \- »Ò¥×¥í¥»¥¹¤òÀ¸À®¤·¿Æ¥×¥í¥»¥¹¤òÄä»ß¤µ¤»¤ë -.SH ½ñ¼° +.SH 名前 +vfork \- 子プロセスを生成し親プロセスを停止させる +.SH 書式 .B #include .br .B #include @@ -40,9 +40,9 @@ vfork \- .B pid_t vfork(void); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR vfork (): @@ -50,7 +50,7 @@ glibc .RS 4 .PD 0 .TP 4 -glibc 2.12 °Ê¹ß: +glibc 2.12 以降: .nf _BSD_SOURCE || (_XOPEN_SOURCE\ >=\ 500 || @@ -58,174 +58,174 @@ _BSD_SOURCE || !(_POSIX_C_SOURCE\ >=\ 200809L || _XOPEN_SOURCE\ >=\ 700) .fi .TP 4 -glibc 2.12 ¤è¤êÁ°: +glibc 2.12 より前: _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .PD .RE .ad b -.SH ÀâÌÀ -.SS µ¬³Ê¤ÎÀâÌÀ -(POSIX.1 ¤è¤ê°úÍÑ) +.SH 説明 +.SS 規格の説明 +(POSIX.1 より引用) .BR vfork () -´Ø¿ô¤Ï +関数は .BR fork (2) -¤ÈƱ¤¸Æ¯¤­¤ò¤¹¤ë¤¬¡¢ +と同じ働きをするが、 .BR vfork () -¤ÇºîÀ®¤µ¤ì¤¿¥×¥í¥»¥¹¤¬ +で作成されたプロセスが .BR vfork () -¤«¤é¤ÎÊÖ¤êÃͤò³ÊǼ¤·¤Æ¤¤¤ë +からの返り値を格納している .I pid_t -·¿¤ÎÊÑ¿ô°Ê³°¤òÊѹ¹¤·¤¿¤ê¡¢ +型の変数以外を変更したり、 .BR vfork () -¤ò¸Æ¤Ó½Ð¤·¤Æ¤¤¤ë´Ø¿ô¤«¤é return ¤·¤¿¤ê¡¢ +を呼び出している関数から return したり、 .BR _exit (2) -¤ä +や .BR exec (3) -²¤Î´Ø¿ô¤ò¥³¡¼¥ë¤¹¤ëÁ°¤Ë¾¤Î´Ø¿ô¤ò¥³¡¼¥ë¤·¤¿¾ì¹ç¤ÎÆ°ºî¤¬ -̤ÄêµÁ¤Ç¤¢¤ë¤È¤¤¤¦ÅÀ¤¬°Û¤Ê¤ë¡£ -.SS "LINUX ¤Ç¤ÎÀâÌÀ" +族の関数をコールする前に他の関数をコールした場合の動作が +未定義であるという点が異なる。 +.SS "LINUX での説明" .BR vfork () -¤Ï +は .BR fork (2) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤òÀ¸À®¤¹¤ë¡£ -¾Ü¤·¤¤ÀâÌÀ¤ÈÊÖ¤êÃÍ¡¢¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Ï +と全く同じように呼び出したプロセスの子プロセスを生成する。 +詳しい説明と返り値、エラーについては .BR fork (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .PP .BR vfork () -¤Ï +は .BR clone (2) -¤ÎÆüì¤Ê¾ì¹ç¤Ç¤¢¤ë¡£ -¿Æ¥×¥í¥»¥¹¤Î¥Ú¡¼¥¸¥Æ¡¼¥Ö¥ë¤Î¥³¥Ô¡¼¤ò¹Ô¤ï¤º¤Ë¿·¤·¤¤¥×¥í¥»¥¹¤ò -ºîÀ®¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£¤³¤ì¤ÏÀ­Ç½¤ËÉÒ´¶¤Ê¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤ª¤¤¤Æ -»Ò¥×¥í¥»¥¹¤òÀ¸À®¤·¤Æ¤¹¤°¤Ë +の特殊な場合である。 +親プロセスのページテーブルのコピーを行わずに新しいプロセスを +作成するために使用する。これは性能に敏感なアプリケーションにおいて +子プロセスを生成してすぐに .BR execve (2) -¤¹¤ë¾ì¹ç¤ËÍ­ÍѤ«¤â¤·¤ì¤Ê¤¤¡£ +する場合に有用かもしれない。 .PP .BR vfork () -¤Ï +は .BR fork (2) -¤È°ã¤¤¡¢»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤«¡¢ +と違い、子プロセスが終了するか、 .BR execve (2) -¤ò¥³¡¼¥ë¤¹¤ë¤Þ¤Ç¿Æ¥×¥í¥»¥¹¤òÄä»ß (suspend) ¤µ¤»¤ë¡£ -»Ò¥×¥í¥»¥¹¤Î½ªÎ»¤Ï¡¢ +をコールするまで親プロセスを停止 (suspend) させる。 +子プロセスの終了は、 .BR _exit (2) -¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤ëÄ̾ェλ¡¢ -Ã×̿Ū¤Ê¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¸å¤Î°Û¾ï½ªÎ»¤ÎÆó¤Ä¤Î¥±¡¼¥¹¤¬¤¢¤ë¡£ -¤³¤Î»þÅÀ¤Þ¤Ç¤Ï¡¢»Ò¥×¥í¥»¥¹¤Ï¥¹¥¿¥Ã¥¯¤ò´Þ¤àÁ´¤Æ¤Î¥á¥â¥ê¤ò -¿Æ¥×¥í¥»¥¹¤È¶¦Í­¤¹¤ë¡£ -»Ò¥×¥í¥»¥¹¤Ï¸½ºß¤Î´Ø¿ô¤«¤é return ¤·¤Æ¤Ï¤Ê¤é¤º¡¢ +の呼び出しによる通常終了、 +致命的なシグナルの配送後の異常終了の二つのケースがある。 +この時点までは、子プロセスはスタックを含む全てのメモリを +親プロセスと共有する。 +子プロセスは現在の関数から return してはならず、 .BR exit (3) -¤â¥³¡¼¥ë¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¤¬¡¢ +もコールしてはならないが、 .BR _exit (2) -¤Ê¤é¤Ð¥³¡¼¥ë¤·¤Æ¤â¤è¤¤¡£ +ならばコールしてもよい。 .PP -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ï·Ñ¾µ¤µ¤ì¤ë¤¬¡¢¶¦Í­¤Ï¤µ¤ì¤Ê¤¤¡£ -¿Æ¥×¥í¥»¥¹¤Ø¤Î¥·¥°¥Ê¥ë¤Ï¡¢»Ò¥×¥í¥»¥¹¤¬¿Æ¥×¥í¥»¥¹¤Î¥á¥â¥ê¤ò -²òÊü¤·¤¿¸å (¤¹¤Ê¤ï¤Á¡¢»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤« +シグナルハンドラは継承されるが、共有はされない。 +親プロセスへのシグナルは、子プロセスが親プロセスのメモリを +解放した後 (すなわち、子プロセスが終了するか .BR execve (2) -¤ò¸Æ¤ó¤À¸å) ¤ËÅþÃ夹¤ë¡£ -.SS Îò»ËŪ¤ÊÀâÌÀ -Linux ¤Ë¤ª¤¤¤Æ +を呼んだ後) に到着する。 +.SS 歴史的な説明 +Linux において .BR fork (2) -¤Ï½ñ¤­¹þ¤ß»þ¥³¥Ô¡¼ (copy-on-write) ¥Ú¡¼¥¸¤ò»ÈÍѤ·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -¤½¤Î¤¿¤á +は書き込み時コピー (copy-on-write) ページを使用して実装されている。 +そのため .BR fork (2) -¤ò»ÈÍѤ¹¤ë¤³¤È¤Ë¤è¤Ã¤ÆÈï¤ë»³²¤Ï¿Æ¥×¥í¥»¥¹¤Î¥Ú¡¼¥¸¡¦¥Æ¡¼¥Ö¥ë¤ò -Ê£À½¤¹¤ë¤¿¤á¤ËɬÍפʻþ´Ö¤È¥á¥â¥ê¤À¤±¤Ç¤¢¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢´÷¤·¤­ÀÎ¤Ë¤Ï +を使用することによって被る損害は親プロセスのページ・テーブルを +複製するために必要な時間とメモリだけである。 +しかしながら、忌しき昔には .BR fork (2) -¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥Ç¡¼¥¿¶õ´Ö¤ÎÁ´¤Æ¤Î¥³¥Ô¡¼¤·¤Æ¤¤¤¿¤¬¡¢ -¤³¤ì¤Ï¤·¤Ð¤·¤ÐÉÔɬÍפǤ¢¤Ã¤¿¡£¤Ê¤¼¤Ê¤é¡¢¤¿¤¤¤Æ¤¤¤Ï¤¹¤°¸å¤Ë +は呼び出したプロセスのデータ空間の全てのコピーしていたが、 +これはしばしば不必要であった。なぜなら、たいていはすぐ後に .BR exec (3) -¤ò¼Â¹Ô¤·¤Æ¤¤¤¿¤«¤é¤Ç¤¢¤ë¡£ -¤³¤Î¾ì¹ç¤Î¸úΨ¤ò¾å¤²¤ë¤¿¤á¤Ë BSD ¤Ï +を実行していたからである。 +この場合の効率を上げるために BSD は .BR vfork () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤òƳÆþ¤·¤Æ¿Æ¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ò´°Á´¤Ë¥³¥Ô¡¼ -¤¹¤ë¤«¤ï¤ê¤Ë¡¢ +システムコールを導入して親プロセスのアドレス空間を完全にコピー +するかわりに、 .BR execve (2) -¤ò¥³¡¼¥ë¤¹¤ë¤« exit ¤¬µ¯¤­¤ë¤Þ¤Ç¿Æ¥×¥í¥»¥¹¤Î¥á¥â¥ê¤ÈÀ©¸æ¥¹¥ì¥Ã¥É -¤ò¼Ú¤ê¤ë¤è¤¦¤Ë¤·¤¿¡£ -¿Æ¥×¥í¥»¥¹¤Ï»Ò¥×¥í¥»¥¹¤¬¤½¤Î»ñ¸»¤ò»ÈÍѤ·¤Æ¤¤¤ë´Ö¤ÏÄä»ß¤µ¤ì¤¿¡£ +をコールするか exit が起きるまで親プロセスのメモリと制御スレッド +を借りるようにした。 +親プロセスは子プロセスがその資源を使用している間は停止された。 .BR vfork () -¤Ï»È¤¤¤Ë¤¯¤¤¤â¤Î¤Ç¤¢¤Ã¤¿: Î㤨¤Ð¡¢¿Æ¥×¥í¥»¥¹¤ÎÊÑ¿ô¤òÊѹ¹¤·¤Ê -¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¤É¤ÎÊÑ¿ô¤¬¥ì¥¸¥¹¥¿¤ËÊÝ»ý¤µ¤ì¤Æ¤¤¤ë¤«¤òÃΤé¤Ê -¤±¤ì¤Ð¤Ê¤é¤Ê¤«¤Ã¤¿¡£ -.SH ½àµò +は使いにくいものであった: 例えば、親プロセスの変数を変更しな +いようにするためにはどの変数がレジスタに保持されているかを知らな +ければならなかった。 +.SH 準拠 4.3BSD, POSIX.1-2001. -POSIX.1-2008 ¤Ç¤Ï¡¢ +POSIX.1-2008 では、 .BR vfork () -¤Îµ¬Ä꤬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ +の規定が削除されている。 .BR vfork () -¥³¡¼¥ë¤Ï¾¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤ÎƱ̾¤Î¥³¡¼¥ë¤È -¤Á¤ç¤Ã¤È»÷¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£µ¬³Ê¤¬ +コールは他のオペレーティング・システムの同名のコールと +ちょっと似ているかもしれない。規格が .BR vfork () -¤ËÍ׵ᤷ¤Æ¤¤¤ë¤³¤È¤Ï¡¢ +に要求していることは、 .BR fork (2) -¤ËÍ׵ᤷ¤Æ¤¤¤ë¤³¤È¤è¤ê¤Ï¼å¤¤¡£¤·¤¿¤¬¤Ã¤Æ¡¢ -ξ¼Ô¤òƱ¤¸¤â¤Î¤È¤·¤Æ¼ÂÁõ¤·¤Æ¤â¡¢µ¬³Ê¤Ë½àµò¤·¤Æ¤¤¤ë¤³¤È¤Ë¤Ê¤ë¡£ -ÆÃ¤Ë¥×¥í¥°¥é¥Þ¡¼¤Ï¡¢»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤« +に要求していることよりは弱い。したがって、 +両者を同じものとして実装しても、規格に準拠していることになる。 +特にプログラマーは、子プロセスが終了するか .BR execve (2) -¤ò¸Æ¤Ó½Ð¤¹¤Þ¤Ç¿Æ¥×¥í¥»¥¹¤¬Ää»ß¤·¤Æ¤¤¤ë¤³¤È¤ä¡¢¥á¥â¥ê¤ò¶¦Í­¤¹¤ë¤³ -¤È¤Ë¤è¤ëÆüì¤ÊÆ°ºî¤ò¤¢¤Æ¤Ë¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +を呼び出すまで親プロセスが停止していることや、メモリを共有するこ +とによる特殊な動作をあてにすべきではない。 .\" In AIXv3.1 vfork is equivalent to fork. -.SH Ãí°Õ -.SS Linux ¤Ç¤ÎÃí°Õ +.SH 注意 +.SS Linux での注意 .BR pthread_atfork (3) -¤ò»È¤Ã¤ÆÀßÄꤵ¤ì¤¿ fork ¥Ï¥ó¥É¥é¤Ï -NPTL ¥¹¥ì¥Ã¥É¥é¥¤¥Ö¥é¥ê¥³¡¼¥ë¤òºÎÍѤ·¤¿¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥×¥í¥°¥é¥à¤Ç¤Ï -¸Æ¤Ó½Ð¤µ¤ì¤Ê¤¤¡£°ìÊý¡¢LinuxThreads ¥¹¥ì¥Ã¥É¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤¿ -¥×¥í¥°¥é¥à¤Ç¤Ï¡¢fork ¥Ï¥ó¥É¥é¤Ï¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ -(Linux ¤Î¥¹¥ì¥Ã¥É¥é¥¤¥Ö¥é¥ê¤ÎÀâÌÀ¤Ï +を使って設定された fork ハンドラは +NPTL スレッドライブラリコールを採用したマルチスレッドプログラムでは +呼び出されない。一方、LinuxThreads スレッドライブラリを使った +プログラムでは、fork ハンドラは呼び出される。 +(Linux のスレッドライブラリの説明は .BR pthreads (7) -¤ò»²¾È¡£) -.SS Îò»Ë +を参照。) +.SS 歴史 .BR vfork () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï 3.0BSD ¤Ë¸½¤ï¤ì¤¿¡£ +システムコールは 3.0BSD に現われた。 .\" In the release notes for 4.2BSD Sam Leffler wrote: `vfork: Is still .\" present, but definitely on its way out'. -4.4BSD ¤Ë¤ª¤¤¤Æ +4.4BSD において .BR fork (2) -¤ÎƱµÁ¸ì¤È¤Ê¤Ã¤¿¤¬¡¢NetBSD ¤Ç¤ÏºÆ¤ÓƳÆþ¤µ¤ì¤¿¡£ -http://www.netbsd.org/Documentation/kernel/vfork.html ¤ò»²¾È¡£ -Linux ¤Ç¤Ï 2.2.0-pre6 ¤¢¤¿¤ê¤Þ¤Ç¤Ï +の同義語となったが、NetBSD では再び導入された。 +http://www.netbsd.org/Documentation/kernel/vfork.html を参照。 +Linux では 2.2.0-pre6 あたりまでは .BR fork (2) -¤ÈÅù²Á¤Ç¤¢¤Ã¤¿¡£(i386 ¤Ç¤Ï) 2.2.0-pre9 ¤«¤é (¾¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï -¾¯¤·ÃÙ¤ì¤Æ) ÆÈΩ¤·¤¿¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¤Ê¤Ã¤¿¡£ -glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï glibc-2.0.112 ¤ÇÄɲ䵤줿¡£ -.SH ¥Ð¥° -Linux ¤¬¤³¤Î²áµî¤ÎË´Îî¤òÉü³è¤µ¤»¤¿¤³¤È¤Ï¡¢¤à¤·¤íÉÔ¹¬¤È¸À¤¦¤Ù¤­¤Ç¤¢¤ë¡£ -BSD ¤Î¥Þ¥Ë¥å¥¢¥ë¤Ë¤Ï¡¢ -¡Ö¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÂÅÅö¤Ê¥·¥¹¥Æ¥à¶¦Í­µ¡¹½¤¬¼ÂÁõ¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï -ºï½ü¤µ¤ì¤ë¡£¥æ¡¼¥¶¤Ï +と等価であった。(i386 では) 2.2.0-pre9 から (他のアーキテクチャでは +少し遅れて) 独立したシステムコールとなった。 +glibc でのサポートは glibc-2.0.112 で追加された。 +.SH バグ +Linux がこの過去の亡霊を復活させたことは、むしろ不幸と言うべきである。 +BSD のマニュアルには、 +「このシステムコールは妥当なシステム共有機構が実装された場合には +削除される。ユーザは .BR vfork () -¤Î¥á¥â¥ê¶¦Í­µ¡Ç½¤Ë°Í¸¤¹¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£²¿¸Î¤Ê¤é¤Ð¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë -¤¬ºï½ü¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢¤½¤ì¤Ï +のメモリ共有機能に依存するべきではない。何故ならば、このシステムコール +が削除された場合には、それは .BR fork (2) -¤ÎƱµÁ¸ì¤È¤µ¤ì¤ë¤«¤é¤Ç¤¢¤ë¡£¡×¤È½ñ¤«¤ì¤Æ¤¤¤ë¡£ +の同義語とされるからである。」と書かれている。 -¥·¥°¥Ê¥ë¤Î°·¤¤¤Î¾ÜºÙ¤ÏÉÔÌÀÎƤǥ·¥¹¥Æ¥à¤´¤È¤Ë°Û¤Ã¤Æ¤¤¤ë¡£ -BSD ¤Î¥Þ¥Ë¥å¥¢¥ë¤Ë¤Ï¡¢ -¡Ö¥Ç¥Ã¥É¥í¥Ã¥¯¾õÂ֤ˤʤë²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç +シグナルの扱いの詳細は不明瞭でシステムごとに異っている。 +BSD のマニュアルには、 +「デッドロック状態になる可能性があるので .BR vfork () -¤ÎÅÓÃæ¤Î»Ò¥×¥í¥»¥¹¤Ë +の途中の子プロセスに .B SIGTTOU -¤ä +や .B SIGTTIN -¥·¥°¥Ê¥ë¤òÁ÷¿®¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤; -¤µ¤é¤Ë½ÐÎϤä +シグナルを送信してはならない; +さらに出力や .I ioctl -¤Ïµö¤µ¤ì¤ë¤¬¡¢ÆþÎϤò»î¤ß¤¿¾ì¹ç¤Ë¤Ï·ë²Ì¤Ï¥Õ¥¡¥¤¥ë½ªÃ¼ (EOF) ¤Ë¤Ê¤ë¡£¡× -¤È½ñ¤«¤ì¤Æ¤¤¤ë¡£ +は許されるが、入力を試みた場合には結果はファイル終端 (EOF) になる。」 +と書かれている。 .\" .\" As far as I can tell, the following is not true in 2.6.19: -.\" ¸½ºß¤Î¤È¤³¤í (Linux 2.3.25)¡¢ +.\" 現在のところ (Linux 2.3.25)、 .\" .BR strace (1) -.\" ¤Ï +.\" は .\" .BR vfork () -.\" ¤òÄÉÀפ¹¤ë¤³¤È¤¬¤Ç¤­¤º¡¢¥«¡¼¥Í¥ë¥Ñ¥Ã¥Á¤¬É¬ÍפǤ¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +.\" を追跡することができず、カーネルパッチが必要である。 +.SH 関連項目 .BR clone (2), .BR execve (2), .BR fork (2), diff --git a/release/man2/vhangup.2 b/release/man2/vhangup.2 index 4ce7078d..8fedf0bb 100644 --- a/release/man2/vhangup.2 +++ b/release/man2/vhangup.2 @@ -31,48 +31,48 @@ .\" Updated & Modified Tue Feb 15 03:38:03 JST 2005 .\" by Yuichi SATO .\" -.\"WORD: virtualy ²¾ÁÛŪ¤Ë -.\"WORD: hangup ¥Ï¥ó¥°¥¢¥Ã¥× -.\"WORD: terminal üËö +.\"WORD: virtualy 仮想的に +.\"WORD: hangup ハングアップ +.\"WORD: terminal 端末 .\" .TH VHANGUP 2 2007-07-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -vhangup \- ¸½ºß¤Î tty ¤ò²¾ÁÛŪ¤Ë (virtualy) ¥Ï¥ó¥°¥¢¥Ã¥× (hangup) ¤µ¤»¤ë -.SH ½ñ¼° +.SH 名前 +vhangup \- 現在の tty を仮想的に (virtualy) ハングアップ (hangup) させる +.SH 書式 .B #include .sp .B int vhangup(void); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l .BR vhangup (): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) .ad b -.SH ÀâÌÀ +.SH 説明 .BR vhangup () -¤Ï¸½ºß¤ÎüËö (terminal) ¤Ç¥Ï¥ó¥°¥¢¥Ã¥×¤ò¥·¥ß¥å¥ì¡¼¥È¤¹¤ë¡£ -¤³¤Î¥³¡¼¥ë¤Ï¾¤Î¥æ¡¼¥¶¡¼¤¬¥í¥°¥¤¥ó¤·¤¿»þ¤ËåºÎï (clean) ¤Ê tty ¤ò -ÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¼êÇÛ¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +は現在の端末 (terminal) でハングアップをシミュレートする。 +このコールは他のユーザーがログインした時に綺麗 (clean) な tty を +得ることができるよう手配する。 +.SH 返り値 +成功した場合は 0 が返される。エラーの場合は \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EPERM -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë +呼び出し元プロセスに .BR vhangup () -¤ò¸Æ¤Ó½Ð¤¹¤¿¤á¤Î½½Ê¬¤ÊÆø¢¤¬¤Ê¤¤¡£ +を呼び出すための十分な特権がない。 .B CAP_SYS_TTY_CONFIG -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤¬É¬ÍפǤ¢¤ë¡£ -.SH ½àµò -¤³¤Î¥³¡¼¥ë¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç -»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +ケーパビリティ (capability) が必要である。 +.SH 準拠 +このコールは Linux 特有であり、移植を意図したプログラムで +使用してはいけない。 +.SH 関連項目 .BR capabilities (7), .BR init (8) diff --git a/release/man2/vm86.2 b/release/man2/vm86.2 index 70c2bf5f..575be56b 100644 --- a/release/man2/vm86.2 +++ b/release/man2/vm86.2 @@ -33,50 +33,50 @@ .\" by Yuichi SATO .\" .TH VM86 2 2009-02-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -vm86old, vm86 \- ²¾ÁÛ 8086 ¥â¡¼¥É¤Ø°Ü¹Ô¤¹¤ë -.SH ½ñ¼° +.SH 名前 +vm86old, vm86 \- 仮想 8086 モードへ移行する +.SH 書式 .B #include .sp .BI "int vm86old(struct vm86_struct *" info ); .sp .BI "int vm86(unsigned long " fn ", struct vm86plus_struct *" v86 ); -.SH ÀâÌÀ +.SH 説明 .BR vm86 () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 0.97p2 ¤ÇƳÆþ¤µ¤ì¤¿¡£ -¤³¤ì¤Ï Linux 2.1.15 ¤È 2.0.28 ¤Ç +システムコールは Linux 0.97p2 で導入された。 +これは Linux 2.1.15 と 2.0.28 で .BR vm86old () -¤Ë̾Á°¤¬Êѹ¹¤µ¤ì¡¢ -¿·¤·¤¤ +に名前が変更され、 +新しい .BR vm86 () -¤¬Æ³Æþ¤µ¤ì¤¿¡£ -\fIstruct vm86_struct\fP ¤ÎÄêµÁ¤Ï 1.1.8 ¤È 1.1.9 ¤ÇÊѹ¹¤µ¤ì¤¿¡£ +が導入された。 +\fIstruct vm86_struct\fP の定義は 1.1.8 と 1.1.9 で変更された。 .LP -¤³¤ì¤é¤Î¥³¡¼¥ë¤Ë¤è¤Ã¤Æ¥×¥í¥»¥¹¤Ï VM86 ¥â¡¼¥É -(Intel ¤Îʸ½ñ¤Ç¤Ï²¾ÁÛ 8086 ¥â¡¼¥É) ¤Ø¤È°Ü¹Ô¤¹¤ë¡£ -¤³¤ì¤é¤Î¥³¡¼¥ë¤Ï +これらのコールによってプロセスは VM86 モード +(Intel の文書では仮想 8086 モード) へと移行する。 +これらのコールは .B dosemu -¤Ç»ÈÍѤµ¤ì¤ë¡£ +で使用される。 .PP -VM86 ¥â¡¼¥É¤Ï¥×¥í¥Æ¥¯¥È¥â¡¼¥É¥¿¥¹¥¯¤Ë¤ª¤±¤ë -¥ê¥¢¥ë¥â¡¼¥É¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +VM86 モードはプロテクトモードタスクにおける +リアルモードのエミュレーションである。 +.SH 返り値 +成功した場合は 0 を返す。失敗した場合は \-1 を返し、 .I errno -¤¬¥¨¥é¡¼¤ÎÆâÍƤ˽¾¤Ã¤ÆÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +がエラーの内容に従って設定される。 +.SH エラー .TP .B EFAULT -¤³¤ÎÊÖ¤êÃÍ¤Ï i386 ¸ÇÍ­¤Î¤â¤Î¤Ç¤¢¤ê¡¢ -¥æ¡¼¥¶¡¼¶õ´Ö¤Î¥Ç¡¼¥¿¤ò¼èÆÀ¤¹¤ëºÝ¤ËÌäÂ꤬¤¢¤Ã¤¿¤³¤È¤ò¼¨¤¹¡£ +この返り値は i386 固有のものであり、 +ユーザー空間のデータを取得する際に問題があったことを示す。 .TP .B ENOSYS -¤³¤ÎÊÖ¤êÃͤϡ¢¤³¤Î¥³¡¼¥ë¤¬¸½ºß¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò¼¨¤¹¡£ +この返り値は、このコールが現在のアーキテクチャで実装されていないことを示す。 .TP .B EPERM -Êݸ¤µ¤ì¤¿¥«¡¼¥Í¥ë¥¹¥¿¥Ã¥¯¤¬´û¤Ë¸ºß¤·¤Æ¤¤¤ë¡£(¤³¤ì¤Ï¥«¡¼¥Í¥ë¤¬Ä̾ï¤Î -¾õÂ֤Ǥ¢¤ë¤«¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤¤¤ë¡£Êݸ¤µ¤ì¤¿¥¹¥¿¥Ã¥¯¤Ï vm86 ¥â¡¼¥É¤Ç -¤·¤«Â¸ºß¤·¤Ê¤¤¡£) -.SH ½àµò -¤³¤Î´Ø¿ô¤Ï 32 ¥Ó¥Ã¥È Intel ¥×¥í¥»¥Ã¥µ¾å¤Î Linux ÆÃÍ­¤Î´Ø¿ô¤Ç¤¢¤ê¡¢ -°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ¹¤Ù¤­¤Ç¤Ê¤¤¡£ +保存されたカーネルスタックが既に存在している。(これはカーネルが通常の +状態であるかをチェックしている。保存されたスタックは vm86 モードで +しか存在しない。) +.SH 準拠 +この関数は 32 ビット Intel プロセッサ上の Linux 特有の関数であり、 +移植を意図したプログラムでは使用すべきでない。 diff --git a/release/man2/vmsplice.2 b/release/man2/vmsplice.2 index fa9109a2..93de13c8 100644 --- a/release/man2/vmsplice.2 +++ b/release/man2/vmsplice.2 @@ -28,11 +28,11 @@ .\" Translated 2007-02-04, Akihiro MOTOKI .\" .TH VMSPLICE 2 2009-09-15 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -vmsplice \- ¥æ¡¼¥¶¡¦¥Ú¡¼¥¸¤ò¥Ñ¥¤¥×¤Ë·Ñ¤®¹ç¤ï¤»¤ë -.SH ½ñ¼° +.SH 名前 +vmsplice \- ユーザ・ページをパイプに継ぎ合わせる +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .B #include @@ -40,7 +40,7 @@ vmsplice \- .BI " unsigned long " nr_segs ", unsigned int " flags ); .fi .\" Return type was long before glibc 2.7 -.SH ÀâÌÀ +.SH 説明 .\" Linus: vmsplice() system call to basically do a "write to .\" the buffer", but using the reference counting and VM traversal .\" to actually fill the buffer. This means that the user needs to @@ -49,113 +49,113 @@ vmsplice \- .\" the actual data, and you can thus reuse the buffer immediately .\" after a successful write), but that is often easy to do. .BR vmsplice () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ +システムコールは、 .I iov -¤Ç»ØÄꤵ¤ì¤¿¥æ¡¼¥¶¡¦¥á¥â¥ê¤Î +で指定されたユーザ・メモリの .I nr_segs -¤ÎÈϰϤò¥Ñ¥¤¥×¤Ë¥Þ¥Ã¥Ô¥ó¥°¤¹¤ë¡£ +の範囲をパイプにマッピングする。 .I fd -¤Ï¥Ñ¥¤¥×¤ò»²¾È¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +はパイプを参照していなければならない。 -¥Ý¥¤¥ó¥¿ +ポインタ .I iov -¤Ï +は .I iovec -¹½Â¤ÂΤÎÇÛÎó¤ò»Ø¤¹¡£ +構造体の配列を指す。 .I iovec -¹½Â¤ÂÎ¤Ï +構造体は .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +で以下のように定義されている: .in +4n .nf struct iovec { - void *iov_base; /* ³«»Ï¥¢¥É¥ì¥¹ */ - size_t iov_len; /* ¥Ð¥¤¥È¿ô */ + void *iov_base; /* 開始アドレス */ + size_t iov_len; /* バイト数 */ }; .in .fi .I flags -°ú¤­¿ô¤Ë¤Ï¡¢°Ê²¼¤ÎÃͤΠ0 ¸Ä°Ê¾å¤ò¥Ó¥Ã¥ÈËè¤ÎÏÀÍýϤηÁ¤Ç»ØÄꤹ¤ë¡£ +引き数には、以下の値の 0 個以上をビット毎の論理和の形で指定する。 .TP 1.9i .B SPLICE_F_MOVE .BR vmsplice () -¤Ç¤Ï̤»ÈÍÑ¡£ +では未使用。 .BR splice (2) -»²¾È¡£ +参照。 .TP .B SPLICE_F_NONBLOCK .\" Not used for vmsplice .\" May be in the future -- therefore EAGAIN -Æþ½ÐÎϤÇÄä»ß (block) ¤·¤Ê¤¤¡£¾ÜºÙ¤Ï +入出力で停止 (block) しない。詳細は .BR splice (2) -»²¾È¡£ +参照。 .TP .B SPLICE_F_MORE -¸½ºß¤Î¤È¤³¤í +現在のところ .BR vmsplice () -¤Ç¤Ï²¿¤Î¸ú²Ì¤â¤Ê¤¤¤¬¡¢¾­ÍèŪ¤Ë¤Ï¼ÂÁõ¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +では何の効果もないが、将来的には実装される可能性がある。 .BR splice (2) -»²¾È¡£ +参照。 .TP .B SPLICE_F_GIFT -¥æ¡¼¥¶¡¦¥Ú¡¼¥¸¤¬¥«¡¼¥Í¥ë¤ØÅϤ¹¤â¤Î (gift) ¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¤³¤Î¥á¥â¥ê¤òÀäÂФËÊѹ¹¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +ユーザ・ページがカーネルへ渡すもの (gift) であることを示す。 +アプリケーションはこのメモリを絶対に変更してはならない。 .\" FIXME Explain the following line in a little more detail: -¤µ¤â¤Ê¤±¤ì¤Ð¡¢¥Ú¡¼¥¸¥­¥ã¥Ã¥·¥å¤È¥Ç¥£¥¹¥¯¾å¤Î¥Ç¡¼¥¿¤Ï -°ìÃפ·¤Ê¤¯¤Ê¤ë¤À¤í¤¦¡£ -¥Ú¡¼¥¸¤ò¥«¡¼¥Í¥ë¤ËÅϤ¹¤È¡¢¤³¤Î¼¡¤Î +さもなければ、ページキャッシュとディスク上のデータは +一致しなくなるだろう。 +ページをカーネルに渡すと、この次の .BR splice (2) .B SPLICE_F_MOVE -¤Ç¤½¤Î¥Ú¡¼¥¸¤Î°ÜÆ°¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¤³¤Î¼¡¤Î +でそのページの移動を行うことができる。 +このフラグが指定されなかった場合、この次の .BR splice (2) .B SPLICE_F_MOVE -¤Ç¤½¤Î¥Ú¡¼¥¸¤Î¥³¥Ô¡¼¤ò¹Ô¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥Ç¡¼¥¿¤Ï¥á¥â¥ê¾å¤Ç¥Ú¡¼¥¸¶­³¦¤Ë¤¢¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -Ťµ¤â¥Ú¡¼¥¸¶­³¦¤ÎÇÜ¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +でそのページのコピーを行わなければならない。 +データはメモリ上でページ境界にあっていなければならず、 +長さもページ境界の倍数でなければならない。 .\" .... if we expect to later SPLICE_F_MOVE to the cache. -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤Æ´°Î»¤¹¤ë¤È¡¢ +.SH 返り値 +成功して完了すると、 .BR vmsplice () -¤Ï¥Ñ¥¤¥×¤ËžÁ÷¤·¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ +はパイプに転送したバイト数を返す。 +エラーの場合、 .BR vmplice () -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤ò¥¨¥é¡¼¤ò¼¨¤¹ÃͤËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +をエラーを示す値に設定する。 +.SH エラー .TP .B EBADF .I fd -¤¬Í­¸ú¤Ç¤Ê¤¤¡¢¤â¤·¤¯¤Ï¥Ñ¥¤¥×¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£ +が有効でない、もしくはパイプを参照していない。 .TP .B EINVAL .I nr_segs -¤¬ 0 ¤â¤·¤¯¤Ï +が 0 もしくは .B IOV_MAX -¤è¤ê¤âÂ礭¤¤¡£¤Þ¤¿¤Ï +よりも大きい。または .B SPLICE_F_GIFT -¤¬ÀßÄꤵ¤ì¤¿¤¬¥á¥â¥ê¤¬¥Ú¡¼¥¸¶­³¦¤Ë¤¢¤Ã¤Æ¤¤¤Ê¤¤¡£ +が設定されたがメモリがページ境界にあっていない。 .TP .B ENOMEM -¥á¥â¥êÉÔ­¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +メモリ不足。 +.SH バージョン .BR vmsplice () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 2.6.17 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -.SH È÷¹Í -»ØÄꤵ¤ì¤¿¥»¥°¥á¥ó¥È¿ô¤¬¾å¸Â¤Ë㤷¤¿¾ì¹ç¡¢ +システムコールは Linux 2.6.17 で初めて登場した。 +.SH 準拠 +このシステムコールは Linux 固有である。 +.SH 備考 +指定されたセグメント数が上限に達した場合、 .BR vmsplice () -¤Ï¾¤Î¥Ù¥¯¥È¥ë·Á¼°¤Î read/write ¤ò¹Ô¤¦´Ø¿ô¤ÈƱ¤¸Æ°ºî¤ò¤¹¤ë¡£ -¾å¸Â¤Ï +は他のベクトル形式の read/write を行う関数と同じ動作をする。 +上限は .B IOV_MAX -¤Ç¤¢¤ê¡¢ +であり、 .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥É¥­¥å¥á¥ó¥È¤ò½ñ¤¤¤¿»þÅÀ¤Ç¤ÎÃÍ¤Ï 1024 ¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +で定義されている。 +このドキュメントを書いた時点での値は 1024 である。 +.SH 関連項目 .BR splice (2), .BR tee (2) diff --git a/release/man2/wait.2 b/release/man2/wait.2 index a8e4cc0a..745856c0 100644 --- a/release/man2/wait.2 +++ b/release/man2/wait.2 @@ -61,20 +61,20 @@ .\" Updated 2005-12-26, Akihiro MOTOKI .\" Updated 2008-07-31, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: signal handling ¥·¥°¥Ê¥ë½èÍý -.\"WORD: suspend Ää»ß(suspend) -.\"WORD: zombie ¥¾¥ó¥Ó(zombie) -.\"WORD: child process »Ò¥×¥í¥»¥¹ -.\"WORD: process group ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× -.\"WORD: process group ID ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×ID -.\"WORD: stop Ää»ß(stop) -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: block ¶Ø»ß(block) +.\"WORD: signal handling シグナル処理 +.\"WORD: suspend 停止(suspend) +.\"WORD: zombie ゾンビ(zombie) +.\"WORD: child process 子プロセス +.\"WORD: process group プロセス・グループ +.\"WORD: process group ID プロセス・グループID +.\"WORD: stop 停止(stop) +.\"WORD: effective user ID 実効ユーザーID +.\"WORD: block 禁止(block) .\" .TH WAIT 2 2010-09-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -wait, waitpid, waitid \- ¥×¥í¥»¥¹¤Î¾õÂÖÊѲ½¤òÂÔ¤Ä -.SH ½ñ¼° +.SH 名前 +wait, waitpid, waitid \- プロセスの状態変化を待つ +.SH 書式 .B #include .br .B #include @@ -87,9 +87,9 @@ wait, waitpid, waitid \- ", siginfo_t *" infop ", int " options ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -100,40 +100,40 @@ _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .br -|| /* glibc 2.12 °Ê¹ß: */ _POSIX_C_SOURCE\ >=\ 200809L +|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\ >=\ 200809L .RE .PD .ad -.SH ÀâÌÀ -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¤¤¤º¤ì¤â¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Î -¾õÂÖÊѲ½¤òÂÔ¤Á¡¢¾õÂÖ¤¬ÊѲ½¤·¤¿¤½¤Î»Ò¥×¥í¥»¥¹¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë¤Î¤Ë -»ÈÍѤµ¤ì¤ë¡£ -¾õÂÖÊѲ½¤È¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë: -»Ò¥×¥í¥»¥¹¤Î½ªÎ»¡¢¥·¥°¥Ê¥ë¤Ë¤è¤ë»Ò¥×¥í¥»¥¹¤ÎÄä»ß¡¢ -¥·¥°¥Ê¥ë¤Ë¤è¤ë»Ò¥×¥í¥»¥¹¤ÎºÆ³«¡£ -»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿¾ì¹ç¤Ï¡¢wait ¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ç¡¢ -¥·¥¹¥Æ¥à¤¬¤½¤Î»Ò¥×¥í¥»¥¹¤Ë´ØÏ¢¤¹¤ë¥ê¥½¡¼¥¹¤ò²òÊü¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -wait ¤¬¼Â¹Ô¤µ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢½ªÎ»¤·¤¿»Ò¥×¥í¥»¥¹¤Ï -¡Ö¥¾¥ó¥Ó¡×¾õÂ֤ǻĤ곤±¤ë (²¼µ­¤ÎÃí°Õ¤Î¾Ï¤ò»²¾È¤Î¤³¤È)¡£ +.SH 説明 +これらのシステムコールはいずれも、呼び出し元プロセスの子プロセスの +状態変化を待ち、状態が変化したその子プロセスの情報を取得するのに +使用される。 +状態変化とは以下のいずれかである: +子プロセスの終了、シグナルによる子プロセスの停止、 +シグナルによる子プロセスの再開。 +子プロセスが終了した場合は、wait を実行することで、 +システムがその子プロセスに関連するリソースを解放できるようになる。 +wait が実行されなかった場合には、終了した子プロセスは +「ゾンビ」状態で残り続ける (下記の注意の章を参照のこと)。 -»Ò¥×¥í¥»¥¹¤Î¾õÂÖÊѲ½¤¬¤¹¤Ç¤ËȯÀ¸¤·¤Æ¤¤¤¿¾ì¹ç¡¢¤³¤ì¤é¤Î¥³¡¼¥ë¤Ï -¤¹¤°¤ËÉüµ¢¤¹¤ë¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢»Ò¥×¥í¥»¥¹¤Î¾õÂÖÊѲ½¤¬µ¯¤³¤ë¤«¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ÃæÃǤµ¤ì¤ë¤Þ¤Ç¡¢ -Ää»ß (block) ¤¹¤ë (¸å¼Ô¤Ï¡¢ +子プロセスの状態変化がすでに発生していた場合、これらのコールは +すぐに復帰する。それ以外の場合は、子プロセスの状態変化が起こるか、 +シグナルハンドラによりシステムコールが中断されるまで、 +停止 (block) する (後者は、 .BR sigaction (2) -¤Î +の .B SA_RESTART -¥Õ¥é¥°¤Ë¤è¤ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¼«Æ°Åª¤ËºÆ¥¹¥¿¡¼¥È¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤ -¾ì¹ç¤ÎÆ°ºî¤Ç¤¢¤ë)¡£ -°Ê²¼¤ÎÀâÌÀ¤Ç¤Ï¡¢¾õÂÖÊѲ½¤¬µ¯¤³¤Ã¤¿¤¬¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¤¤¤º¤ì¤«¤Ë -¤è¤Ã¤ÆÂÔ¤¿¤ì¤Æ¤¤¤Ê¤¤»Ò¥×¥í¥»¥¹¤ò +フラグによりシステムコールが自動的に再スタートするようになっていない +場合の動作である)。 +以下の説明では、状態変化が起こったがこれらのシステムコールのいずれかに +よって待たれていない子プロセスを .I waitable -(ÂÔ¤Á²Äǽ) ¤È¸Æ¤Ö¡£ -.SS "wait() ¤È waitpid()" +(待ち可能) と呼ぶ。 +.SS "wait() と waitpid()" .BR wait () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢»Ò¥×¥í¥»¥¹¤Î¤¤¤º¤ì¤«¤¬½ªÎ»¤¹¤ë¤Þ¤Ç -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¹Ô¤ò°ì»þÄä»ß¤¹¤ë¡£ -°Ê²¼¤ÎÆó¤Ä¤Î¸Æ¤Ó½Ð¤·¤ÏÅù²Á¤Ç¤¢¤ë: +システムコールは、子プロセスのいずれかが終了するまで +呼び出し元のプロセスの実行を一時停止する。 +以下の二つの呼び出しは等価である: .nf wait(&status); @@ -142,440 +142,440 @@ wait .fi .BR waitpid () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ +システムコールは、 .I pid -°ú¤­¿ô¤Ç»ØÄꤷ¤¿»Ò¥×¥í¥»¥¹¤Î¾õÂÖÊѲ½¤¬µ¯¤³¤ë¤Þ¤Ç¡¢ -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¹Ô¤ò°ì»þÄä»ß¤¹¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +引き数で指定した子プロセスの状態変化が起こるまで、 +呼び出し元のプロセスの実行を一時停止する。デフォルトでは、 .BR waitpid () -¤Ï»Ò¥×¥í¥»¥¹¤Î½ªÎ»¤À¤±¤òÂԤĤ¬¡¢¤³¤ÎÆ°ºî¤Ï +は子プロセスの終了だけを待つが、この動作は .I options -°ú¤­¿ô¤Ë¤è¤êÊѹ¹²Äǽ¤Ç¤¢¤ë¡£ +引き数により変更可能である。 .I pid -¤Ë»ØÄê¤Ç¤­¤ëÃͤϰʲ¼¤ÎÄ̤ê: +に指定できる値は以下の通り: .IP "< \-1" -¥×¥í¥»¥¹¥°¥ë¡¼¥×ID ¤¬ +プロセスグループID が .I pid -¤ÎÀäÂÐÃͤËÅù¤·¤¤»Ò¥×¥í¥»¥¹¤Î¤¤¤º¤ì¤«¤¬½ªÎ»¤¹¤ë¤Þ¤Ç¤òÂԤġ£ +の絶対値に等しい子プロセスのいずれかが終了するまでを待つ。 .IP \-1 -»Ò¥×¥í¥»¥¹¤Î¤É¤ì¤«¤¬½ªÎ»¤¹¤ë¤Þ¤ÇÂԤġ£ +子プロセスのどれかが終了するまで待つ。 .IP 0 -¥×¥í¥»¥¹¥°¥ë¡¼¥×ID ¤¬¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¤â¤Î¤ÈÅù¤·¤¤ -»Ò¥×¥í¥»¥¹¤òÂԤġ£ +プロセスグループID が呼び出したプロセスのものと等しい +子プロセスを待つ。 .IP "> 0" -¥×¥í¥»¥¹ID ¤¬ +プロセスID が .I pid -¤ËÅù¤·¤¤»Ò¥×¥í¥»¥¹¤òÂԤġ£ +に等しい子プロセスを待つ。 .PP .I options -¤ÎÃͤϼ¡¤ÎÄê¿ô¤Î 0 ¸Ä°Ê¾å¤ÎÏÀÍýϤǤ¢¤ë: +の値は次の定数の 0 個以上の論理和である: .TP 12 .B WNOHANG -¾õÂÖÊѲ½¤¬µ¯¤³¤Ã¤¿»Ò¥×¥í¥»¥¹¤¬¤Ê¤¤¾ì¹ç¤Ë¤¹¤°¤ËÉüµ¢¤¹¤ë¡£ +状態変化が起こった子プロセスがない場合にすぐに復帰する。 .TP .B WUNTRACED -»Ò¥×¥í¥»¥¹¤¬Ää»ß¤·¤¿¾ì¹ç¤Ë¤âÉüµ¢¤¹¤ë (»Ò¥×¥í¥»¥¹¤¬ +子プロセスが停止した場合にも復帰する (子プロセスが .BR ptrace (2) -¤Ç¥È¥ì¡¼¥¹¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï½ü¤¯)¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ç¤â¡¢Ää»ß¤·¤¿¥×¥í¥»¥¹¤¬ -¡Ö¥È¥ì¡¼¥¹ (traced)¡×¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢»Ò¥×¥í¥»¥¹¤Î¾õÂÖ¤¬Êó¹ð¤µ¤ì¤ë¡£ +でトレースされている場合は除く)。 +このオプションが指定されていない場合でも、停止したプロセスが +「トレース (traced)」されていれば、子プロセスの状態が報告される。 .TP -.BR WCONTINUED " (Linux 2.6.10 °Ê¹ß)" -Ää»ß¤·¤¿»Ò¥×¥í¥»¥¹¤¬ +.BR WCONTINUED " (Linux 2.6.10 以降)" +停止した子プロセスが .B SIGCONT -¤ÎÇÛÁ÷¤Ë¤è¤êºÆ³«¤·¤¿¾ì¹ç¤Ë¤âÉüµ¢¤¹¤ë¡£ +の配送により再開した場合にも復帰する。 .PP -(Linux ÀìÍÑ¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Ï¸å½Ò¤¹¤ë) +(Linux 専用オプションについては後述する) .PP .I status -¤¬ NULL ¤Ç¤Ê¤±¤ì¤Ð¡¢ +が NULL でなければ、 .BR wait () -¤ä +や .BR waitpid () -¤Ï +は .I status -¤Ç»Ø¤¹ \fIint\fP ¤Ë¾õÂÖ¾ðÊó¤ò³ÊǼ¤¹¤ë¡£ -¤³¤ÎÀ°¿ô¤Ï°Ê²¼¤Î¥Þ¥¯¥í¤ò»È¤Ã¤Æ¸¡ºº¤Ç¤­¤ë¡£ -(¤³¤ì¤é¤Î¥Þ¥¯¥í¤Î°ú¤­¿ô¤Ë¤Ï¡¢ +で指す \fIint\fP に状態情報を格納する。 +この整数は以下のマクロを使って検査できる。 +(これらのマクロの引き数には、 .BR wait () -¤ä +や .BR waitpid () -¤¬½ñ¤­¹þ¤ó¤ÀÀ°¿ô¤½¤Î¤â¤Î¤ò»ØÄꤹ¤ë¡£¥Ý¥¤¥ó¥¿¤Ç¤Ï¤Ê¤¤!) +が書き込んだ整数そのものを指定する。ポインタではない!) .TP .BI WIFEXITED( status ) -»Ò¥×¥í¥»¥¹¤¬Àµ¾ï¤Ë½ªÎ»¤·¤¿¾ì¹ç¤Ë¿¿¤òÊÖ¤¹¡£ -¡ÖÀµ¾ï¤Ë¡×¤È¤Ï¡¢ +子プロセスが正常に終了した場合に真を返す。 +「正常に」とは、 .BR exit (3) -¤« +か .BR _exit (2) -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¡¢¤â¤·¤¯¤Ï -main() ¤«¤éÉüµ¢¤·¤¿¾ì¹ç¤Ç¤¢¤ë¡£ +が呼び出された場合、もしくは +main() から復帰した場合である。 .TP .BI WEXITSTATUS( status ) -»Ò¥×¥í¥»¥¹¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤òÊÖ¤¹¡£ -½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ï +子プロセスの終了ステータスを返す。 +終了ステータスは .I status -°ú¤­¿ô¤Î²¼°Ì 8¥Ó¥Ã¥È¤Ç¹½À®¤µ¤ì¤Æ¤ª¤ê¡¢ +引き数の下位 8ビットで構成されており、 .BR exit (3) -¤ä +や .BR _exit (2) -¤Î¸Æ¤Ó½Ð¤·»þ¤ËÅϤµ¤ì¤¿ÃÍ¡¢¤â¤·¤¯¤Ï main() ¤Î return ʸ¤Î -°ú¤­¿ô¤È¤·¤Æ»ØÄꤵ¤ì¤¿ÃͤǤ¢¤ë¡£ -¤³¤Î¥Þ¥¯¥í¤ò»ÈÍѤ¹¤ë¤Î¤Ï +の呼び出し時に渡された値、もしくは main() の return 文の +引き数として指定された値である。 +このマクロを使用するのは .B WIFEXITED -¤¬¿¿¤òÊÖ¤·¤¿¾ì¹ç¤À¤±¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +が真を返した場合だけにすべきである。 .TP .BI WIFSIGNALED( status ) -»Ò¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤Ë¤è¤ê½ªÎ»¤·¤¿¾ì¹ç¤Ë¿¿¤òÊÖ¤¹¡£ +子プロセスがシグナルにより終了した場合に真を返す。 .TP .BI WTERMSIG( status ) -»Ò¥×¥í¥»¥¹½ªÎ»¤Î¸¶°ø¤È¤Ê¤Ã¤¿¥·¥°¥Ê¥ë¤ÎÈÖ¹æ¤òÊÖ¤¹¡£ -¤³¤Î¥Þ¥¯¥í¤ò»ÈÍѤ¹¤ë¤Î¤Ï +子プロセス終了の原因となったシグナルの番号を返す。 +このマクロを使用するのは .B WIFSIGNALED -¤¬¿¿¤òÊÖ¤·¤¿¾ì¹ç¤À¤±¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +が真を返した場合だけにすべきである。 .TP .BI WCOREDUMP( status ) -»Ò¥×¥í¥»¥¹¤¬¥³¥¢¥À¥ó¥×¤òÀ¸À®¤·¤¿¾ì¹ç¤Ë¿¿¤òÊÖ¤¹¡£ -¤³¤Î¥Þ¥¯¥í¤ò»ÈÍѤ¹¤ë¤Î¤Ï +子プロセスがコアダンプを生成した場合に真を返す。 +このマクロを使用するのは .B WIFSIGNALED -¤¬¿¿¤òÊÖ¤·¤¿¾ì¹ç¤À¤±¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¤³¤Î¥Þ¥¯¥í¤Ï POSIX.1-2001 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤ª¤é¤º¡¢ -(AIX, SunOS ¤Ê¤É¤Î) ¤¤¤¯¤Ä¤«¤Î UNIX ¤Î¼ÂÁõ¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤¡£ -ɬ¤º #ifdef WCOREDUMP ... #endif ¤Ç³ç¤Ã¤Æ»ÈÍѤ¹¤ë¤³¤È¡£ +が真を返した場合だけにすべきである。 +このマクロは POSIX.1-2001 では規定されておらず、 +(AIX, SunOS などの) いくつかの UNIX の実装では利用できない。 +必ず #ifdef WCOREDUMP ... #endif で括って使用すること。 .TP .BI WIFSTOPPED( status ) -»Ò¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤Ë¤è¤êÄä»ß¤·¤¿¾ì¹ç¤Ë¿¿¤òÊÖ¤¹¡£ -¤³¤ì¤¬¿¿¤Ë¤Ê¤ë¤Î¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ +子プロセスがシグナルの配送により停止した場合に真を返す。 +これが真になるのは、システムコールが .B WUNTRACED -¤ò»ØÄꤷ¤Æ¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¤«¡¢»Ò¥×¥í¥»¥¹¤¬¥È¥ì¡¼¥¹¤µ¤ì¤Æ¤¤¤ë¾ì¹ç +を指定して呼び出された場合か、子プロセスがトレースされている場合 .RB ( ptrace (2) -»²¾È) ¤À¤±¤Ç¤¢¤ë¡£ +参照) だけである。 .TP .BI WSTOPSIG( status ) -»Ò¥×¥í¥»¥¹¤òÄä»ß¤µ¤»¤¿¥·¥°¥Ê¥ë¤ÎÈÖ¹æ¤òÊÖ¤¹¡£ -¤³¤Î¥Þ¥¯¥í¤ò»ÈÍѤ¹¤ë¤Î¤Ï +子プロセスを停止させたシグナルの番号を返す。 +このマクロを使用するのは .B WIFSTOPPED -¤¬ 0 °Ê³°¤òÊÖ¤·¤¿¾ì¹ç¤À¤±¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +が 0 以外を返した場合だけにすべきである。 .TP .BI WIFCONTINUED( status ) -(Linux 2.6.10 °Ê¹ß) -»Ò¥×¥í¥»¥¹¤¬ +(Linux 2.6.10 以降) +子プロセスが .B SIGCONT -¤ÎÇÛÁ÷¤Ë¤è¤êºÆ³«¤·¤¿¾ì¹ç¤Ë¿¿¤òÊÖ¤¹¡£ +の配送により再開した場合に真を返す。 .SS "waitid()" .BR waitid () -¥·¥¹¥Æ¥à¥³¡¼¥ë (Linux 2.6.9 °Ê¹ß¤ÇÍøÍѲÄǽ) ¤ò»È¤¦¤È¡¢ -»Ò¥×¥í¥»¥¹¤Î¤É¤Î¾õÂÖÊѲ½¤òÂԤĤ«¤Ë¤Ä¤¤¤Æ¤è¤êºÙ¤«¤ÊÀ©¸æ¤¬¤Ç¤­¤ë¡£ +システムコール (Linux 2.6.9 以降で利用可能) を使うと、 +子プロセスのどの状態変化を待つかについてより細かな制御ができる。 -°ú¤­¿ô +引き数 .I idtype -¤È +と .I id -¤Ç¤É¤Î»Ò¥×¥í¥»¥¹¤òÂԤĤ«¤òÁªÂò¤¹¤ë: +でどの子プロセスを待つかを選択する: .IP "\fIidtype\fP == \fBP_PID\fP" -¥×¥í¥»¥¹ID ¤¬ +プロセスID が .I id -¤È°ìÃפ¹¤ë»Ò¥×¥í¥»¥¹¤òÂԤġ£ +と一致する子プロセスを待つ。 .IP "\fIidtype\fP == \fBP_PGID\fP" -¥×¥í¥»¥¹¥°¥ë¡¼¥×ID ¤¬ +プロセスグループID が .I id -¤È°ìÃפ¹¤ë»Ò¥×¥í¥»¥¹¤òÂԤġ£ +と一致する子プロセスを待つ。 .IP "\fIidtype\fP == \fBP_ALL\fP" -»Ò¥×¥í¥»¥¹Á´Éô¤òÂоݤËÂԤġ£ +子プロセス全部を対象に待つ。 .I id -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .PP -»Ò¥×¥í¥»¥¹¤Î¤É¤Î¾õÂÖÊѲ½¤òÂԤĤ«¤Ï°Ê²¼¤Î¥Õ¥é¥°¤Ç»ØÄꤹ¤ë +子プロセスのどの状態変化を待つかは以下のフラグで指定する .RI ( options -¤Ë¤Ï 1¸Ä°Ê¾å¤Î¥Õ¥é¥°¤ÎÏÀÍýϤò¤È¤Ã¤Æ»ØÄꤹ¤ë): +には 1個以上のフラグの論理和をとって指定する): .TP 12 .B WEXITED -»Ò¥×¥í¥»¥¹¤Î½ªÎ»¤òÂԤġ£ +子プロセスの終了を待つ。 .TP .B WSTOPPED -»Ò¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤Ë¤è¤êÄä»ß¤¹¤ë¤Î¤òÂԤġ£ +子プロセスがシグナルの配送により停止するのを待つ。 .TP .B WCONTINUED -(Ää»ß¤·¤Æ¤¤¤¿) »Ò¥×¥í¥»¥¹¤¬ +(停止していた) 子プロセスが .B SIGCONT -¤¬ÇÛÁ÷¤µ¤ì¤ÆºÆ³«¤¹¤ë¤Î¤òÂԤġ£ +が配送されて再開するのを待つ。 .PP -¤µ¤é¤Ë°Ê²¼¤Î¥Õ¥é¥°¤òÏÀÍýϤηÁ¤Ç +さらに以下のフラグを論理和の形で .I options -¤Ë»ØÄê¤Ç¤­¤ë: +に指定できる: .TP 12 .B WNOHANG .BR waitpid () -¤ÈƱÍÍ¡£ +と同様。 .TP .B WNOWAIT -waitable ¾õÂÖ¤Î¥×¥í¥»¥¹¤ò¤½¤Î¤Þ¤Þ¤Ë¤¹¤ë¡£¤³¤Î¸å¤Ç wait ¥³¡¼¥ë¤ò -»È¤Ã¤Æ¡¢Æ±¤¸»Ò¥×¥í¥»¥¹¤Î¾õÂÖ¾ðÊó¤ò¤â¤¦°ìÅÙ¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +waitable 状態のプロセスをそのままにする。この後で wait コールを +使って、同じ子プロセスの状態情報をもう一度取得することができる。 .PP -À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ +成功した場合には、 .BR waitid () -¤Ï +は .I infop -¤¬»Ø¤¹ +が指す .I siginfo_t -¹½Â¤ÂΤΰʲ¼¤Î¥Õ¥£¡¼¥ë¥É¤òÀßÄꤹ¤ë: +構造体の以下のフィールドを設定する: .TP 12 \fIsi_pid\fP -»Ò¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ID¡£ +子プロセスのプロセスID。 .TP \fIsi_uid\fP -»Ò¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶ID -(¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¾¤Î¤Û¤È¤ó¤É¤Î¼ÂÁõ¤Ç¤ÏÀßÄꤵ¤ì¤Ê¤¤)¡£ +子プロセスの実ユーザID +(このフィールドは他のほとんどの実装では設定されない)。 .TP \fIsi_signo\fP -¾ï¤Ë +常に .B SIGCHLD -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .TP \fIsi_status\fP .BR _exit (2) -(¤« +(か .BR exit (3)) -¤Ë»ØÄꤵ¤ì¤¿»Ò¥×¥í¥»¥¹¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¡¢¤â¤·¤¯¤Ï -»Ò¥×¥í¥»¥¹¤Î½ªÎ»¡¢Ää»ß¡¢ºÆ³«¤Î¸¶°ø¤È¤Ê¤Ã¤¿¥·¥°¥Ê¥ë¤¬ÀßÄꤵ¤ì¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤ò¤É¤¦²ò¼á¤¹¤ë¤«¤Ï¡¢ +に指定された子プロセスの終了ステータス、もしくは +子プロセスの終了、停止、再開の原因となったシグナルが設定される。 +このフィールドをどう解釈するかは、 .I si_code -¥Õ¥£¡¼¥ë¥É¤ò»²¾È¤·¤Æ·è¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +フィールドを参照して決めることができる。 .TP \fIsi_code\fP -°Ê²¼¤Î¤¤¤º¤ì¤«¤¬ÀßÄꤵ¤ì¤ë: +以下のいずれかが設定される: .B CLD_EXITED -(»Ò¥×¥í¥»¥¹¤¬ +(子プロセスが .BR _exit (2) -¤ò¸Æ¤Ó½Ð¤·¤¿); +を呼び出した); .B CLD_KILLED -(¥·¥°¥Ê¥ë¤Ë¤è¤ê»Ò¥×¥í¥»¥¹¤¬ kill ¤µ¤ì¤¿); +(シグナルにより子プロセスが kill された); .B CLD_DUMPED -(¥·¥°¥Ê¥ë¤Ë¤è¤ê»Ò¥×¥í¥»¥¹¤¬ kill ¤µ¤ì¡¢¥³¥¢¡¦¥À¥ó¥×¤¬¹Ô¤ï¤ì¤¿); +(シグナルにより子プロセスが kill され、コア・ダンプが行われた); .B CLD_STOPPED -(¥·¥°¥Ê¥ë¤Ë¤è¤ê»Ò¥×¥í¥»¥¹¤¬Ää»ß¤·¤¿); +(シグナルにより子プロセスが停止した); .BR CLD_TRAPPED -(¥È¥ì¡¼¥¹¤µ¤ì¤Æ¤¤¤¿»Ò¥×¥í¥»¥¹¤¬¥È¥é¥Ã¥×¤ò¼õ¿®¤·¤¿); +(トレースされていた子プロセスがトラップを受信した); .B CLD_CONTINUED .RB ( SIGCONT -¤Ë¤è¤ê»Ò¥×¥í¥»¥¹¤¬ºÆ³«¤µ¤ì¤¿)¡£ +により子プロセスが再開された)。 .PP .B WNOHANG -¤¬ +が .I options -¤Ë»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢ -waitable ¾õÂÖ¤Î»Ò¥×¥í¥»¥¹¤¬¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ +に指定されていて、 +waitable 状態の子プロセスがなかった場合には、 .BR waitid () -¤Ï¤¹¤°¤Ë 0 ¤òÊÖ¤¹¡£¤³¤Î¤È¤­¡¢ +はすぐに 0 を返す。このとき、 .I infop -¤¬»Ø¤¹ +が指す .I siginfo_t -¹½Â¤ÂΤÎÆâÍƤÏÉÔÄê¤Ç¤¢¤ë¡£ -.\" POSIX.1-2001 ¤Ç¤Ï¡¢ÉÔÄê¤Î²ÄǽÀ­¤ò»Ä¤·¤Æ¤¤¤ë¡£ -.\" (Linux ¤ò´Þ¤à) ¤Û¤È¤ó¤É¤Î¼ÂÁõ¤Ç¤Ï¡¢¤³¤Î¾ì¹ç¤Ë¹½Â¤ÂΤò 0 ¤ÇËä¤á¤ë¤¬¡¢ -.\" ¾¯¤Ê¤¯¤È¤â°ì¤Ä¤Î¼ÂÁõ (AIX 5.1) ¤Ç¤Ï¤½¤¦¤Ê¤é¤Ê¤¤¡£ -- MTK Nov 04 -¤³¤Î¾ì¹ç¤ò waitable ¾õÂÖ¤Î»Ò¥×¥í¥»¥¹¤¬¤¢¤Ã¤¿¾ì¹ç¤È¶èÊ̤¹¤ë¤Ë¤Ï¡¢ +構造体の内容は不定である。 +.\" POSIX.1-2001 では、不定の可能性を残している。 +.\" (Linux を含む) ほとんどの実装では、この場合に構造体を 0 で埋めるが、 +.\" 少なくとも一つの実装 (AIX 5.1) ではそうならない。 -- MTK Nov 04 +この場合を waitable 状態の子プロセスがあった場合と区別するには、 .BR waitid () -¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë +を呼び出す前に .I si_pid -¤ò 0 ¤Ë¤·¤Æ¤ª¤­¡¢¥³¡¼¥ë¤¬Éüµ¢¤·¤¿¸å¤Ç¤³¤Î¥Õ¥£¡¼¥ë¥É¤¬ 0 °Ê³°¤ÎÃͤ«¤É¤¦¤« -¤ò¥Á¥§¥Ã¥¯¤¹¤ì¤Ð¤è¤¤¡£ -.SH ÊÖ¤êÃÍ +を 0 にしておき、コールが復帰した後でこのフィールドが 0 以外の値かどうか +をチェックすればよい。 +.SH 返り値 .BR wait (): -À®¸ù¤¹¤ë¤È¡¢½ªÎ»¤·¤¿»Ò¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ID ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤¹¡£ +成功すると、終了した子プロセスのプロセスID を返す。 +エラーの場合 \-1 を返す。 .BR waitpid (): -À®¸ù¤¹¤ë¤È¡¢¾õÂÖ¤¬ÊѲ½¤·¤¿»Ò¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ID ¤òÊÖ¤¹¡£ +成功すると、状態が変化した子プロセスのプロセスID を返す。 .B WNOHANG -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢ +が指定されていて、 .I pid -¤Ç»Ø¼¨¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤¬°ì¤Ä°Ê¾å¸ºß¤¹¤ë¤¬¡¢¤É¤Î»Ò¥×¥í¥»¥¹¤Ç¤â -¾õÂÖÊѲ½¤¬µ¯¤³¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤¹¡£ +で指示された子プロセスが一つ以上存在するが、どの子プロセスでも +状態変化が起こっていなかった場合は、 0 を返す。 +エラーの場合 \-1 を返す。 .BR waitid (): -À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ +成功すると 0 を返す。 .B WNOHANG -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢ +が指定されていて、 .I pid -¤Ç»Ø¼¨¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ç¾õÂÖÊѲ½¤¬µ¯¤³¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤â -0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤¹¡£ +で指示された子プロセスで状態変化が起こっていなかった場合にも +0 を返す。 +エラーの場合 \-1 を返す。 .\" FIXME: As reported by Vegard Nossum, if infop is NULL, then waitid() .\" returns the PID of the child. Either this is a bug, or it is intended .\" behavior that needs to be documented. See my Jan 2009 LKML mail .\" "waitid() return value strangeness when infop is NULL". -¥¨¥é¡¼¤Î¾ì¹ç¡¢¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¤¤¤º¤ì¤â +エラーの場合、これらのシステムコールはいずれも .I errno -¤ËŬÀÚ¤ÊÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +に適切な値を設定する。 +.SH エラー .TP .B ECHILD .RB ( wait () -¤Î¾ì¹ç) -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë¤Ï¡¢wait ¤ò¹Ô¤Ã¤Æ¤¤¤Ê¤¤»Ò¥×¥í¥»¥¹¤Ï¤Ê¤¤¡£ +の場合) +呼び出し元プロセスには、wait を行っていない子プロセスはない。 .TP .B ECHILD .RB ( waitpid () -¤« +か .BR waitid () -¤Î¾ì¹ç) +の場合) .I pid .RB ( waitpid ()) -¤« +か .I idtype -¤È +と .I id .RB ( waitid ()) -¤Ç»ØÄꤷ¤¿¥×¥í¥»¥¹¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Ç¤Ê¤¤ +で指定したプロセスが存在しないか、呼び出し元プロセスの子プロセスでない .RB ( SIGCHLD -¤ÎÆ°ºî¤Ë +の動作に .B SIG_IGN -¤òÀßÄꤷ¤¿¾ì¹ç¤Ë¤Ï¡¢¼«Ê¬¼«¿È¤Î»Ò¥×¥í¥»¥¹¤Ç¤âµ¯¤³¤ê¤¦¤ë¡£ -¥¹¥ì¥Ã¥É¤Ë´Ø¤·¤Æ¤Ï¡ÖLinux ¤Ç¤ÎÃí°Õ¡×¤ÎÀá¤â»²¾È¤¹¤ë¤³¤È)¡£ +を設定した場合には、自分自身の子プロセスでも起こりうる。 +スレッドに関しては「Linux での注意」の節も参照すること)。 .TP .B EINTR .B WNOHANG -¤¬ÀßÄꤵ¤ì¤Æ¤ª¤é¤º¡¢¶Ø»ß (block) ¤µ¤ì¤Æ¤¤¤Ê¤¤¥·¥°¥Ê¥ë¤ä +が設定されておらず、禁止 (block) されていないシグナルや .B SIGCHLD -¤ò¼õ¿®¤·¤¿¡£ +を受信した。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .I options -°ú¤­¿ô¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ -.SH ½àµò +引き数が不正である。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -.SH Ãí°Õ -½ªÎ»¤·¤¿¤¬¡¢wait ¤µ¤ì¤Æ¤¤¤Ê¤¤»Ò¥×¥í¥»¥¹¤Ï¡Ö¥¾¥ó¥Ó¡×¤Ë¤Ê¤ë¡£ -¸å¤Ç¿Æ¥×¥í¥»¥¹¤¬ wait ¤ò¼Â¹Ô¤·¤Æ»Ò¥×¥í¥»¥¹¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤ò¼èÆÀ¤Ç¤­¤ë¤è¤¦¤Ë¡¢ -¥«¡¼¥Í¥ë¤Ï¥¾¥ó¥Ó¥×¥í¥»¥¹¤Ë¤Ä¤¤¤ÆºÇ¾®¸Â¤Î¾ðÊó (PID¡¢½ªÎ»¥¹¥Æ¡¼¥¿¥¹¡¢ -¥ê¥½¡¼¥¹»ÈÍѾõ¶·) ¤òÊÝ»ý¤¹¤ë¡£ -¥¾¥ó¥Ó¥×¥í¥»¥¹¤Ï¡¢ wait ¤Ë¤è¤Ã¤Æ¥·¥¹¥Æ¥à¤«¤éºï½ü¤µ¤ì¤Ê¤¤¸Â¤ê¡¢ -¥«¡¼¥Í¥ë¤Î¥×¥í¥»¥¹¥Æ¡¼¥Ö¥ë¤Î 1 ¥¨¥ó¥È¥ê¤ò¾ÃÈñ¤¹¤ë¡£¤³¤Î¥×¥í¥»¥¹¥Æ¡¼¥Ö¥ë¤¬ -°ìÇդˤʤë¤È¡¢¿·¤¿¤Ë¥×¥í¥»¥¹¤òºî¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¯¤Ê¤ë¡£ -¿Æ¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤È¡¢¤½¤Î¿Æ¥×¥í¥»¥¹¤Î¡Ö¥¾¥ó¥Ó¡×¤Î -»Ò¥×¥í¥»¥¹¤Ï (¤â¤·¤¢¤ì¤Ð) +.SH 注意 +終了したが、wait されていない子プロセスは「ゾンビ」になる。 +後で親プロセスが wait を実行して子プロセスについての情報を取得できるように、 +カーネルはゾンビプロセスについて最小限の情報 (PID、終了ステータス、 +リソース使用状況) を保持する。 +ゾンビプロセスは、 wait によってシステムから削除されない限り、 +カーネルのプロセステーブルの 1 エントリを消費する。このプロセステーブルが +一杯になると、新たにプロセスを作ることができなくなる。 +親プロセスが終了すると、その親プロセスの「ゾンビ」の +子プロセスは (もしあれば) .BR init (8) -¤ÎÍܻҤȤʤ롣 +の養子となる。 .BR init (8) -¤Ï wait ¤ò¼«Æ°Åª¤Ë¼Â¹Ô¤·¡¢¥¾¥ó¥Ó¤òºï½ü¤¹¤ë¡£ +は wait を自動的に実行し、ゾンビを削除する。 -POSIX.1-2001 ¤Ç¤Ï°Ê²¼¤Î¤è¤¦¤Ëµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +POSIX.1-2001 では以下のように規定されている。 .B SIGCHLD -¤ÎÆ°ºî¤¬ +の動作が .B SIG_IGN -¤ËÀßÄꤵ¤ì¤¿¤«¡¢ +に設定されたか、 .B SIGCHLD -¤ËÂФ·¤Æ +に対して .B SA_NOCLDWAIT -¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç +フラグが設定された場合 .RB ( sigaction (2) -»²¾È)¡¢½ªÎ»¤·¤¿»Ò¥×¥í¥»¥¹¤Ï¥¾¥ó¥Ó¤Ë¤Ï¤Ê¤é¤º¡¢ +参照)、終了した子プロセスはゾンビにはならず、 .BR wait () -¤ä +や .BR waitpid () -¤Î¸Æ¤Ó½Ð¤·¤ÏÁ´¤Æ¤Î»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤Þ¤ÇÄä»ß¤·¡¢ -»Ò¥×¥í¥»¥¹¤¬Á´Éô½ªÎ»¤·¤¿¸å +の呼び出しは全ての子プロセスが終了するまで停止し、 +子プロセスが全部終了した後 .I errno -¤Ë +に .B ECHILD -¤òÀßÄꤷ¤Æ¼ºÇÔ¤¹¤ë¡£ -(¤â¤È¤â¤È¤Î POSIX ɸ½à¤Ï +を設定して失敗する。 +(もともとの POSIX 標準は .B SIGCHLD -¤Ë +に .B SIG_IGN -¤òÀßÄꤷ¤¿¾ì¹ç¤Î¿¶¤ëÉñ¤¤¤ò̤µ¬Äê¤Î¤Þ¤Þ¤Ë¤·¤Æ¤¤¤ë¡£ +を設定した場合の振る舞いを未規定のままにしている。 .B SIGCHLD -¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤¬¡Ö̵»ë¡×¤Ç¤¢¤ë¤Ë¤â¤«¤«¤ï¤é¤º¡¢ +のデフォルトの動作が「無視」であるにもかかわらず、 .B SIGCHLD -¤ÎÆ°ºî¤È¤·¤Æ +の動作として .B SIG_IGN -¤òÌÀ¼¨Åª¤ËÀßÄꤷ¤¿¾ì¹ç¤Ë¤Ï¥¾¥ó¥Ó¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Î°·¤¤¤¬ -°Û¤Ê¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£) -Linux 2.6 ¤Ï¤³¤Î»ÅÍͤ˽àµò¤·¤Æ¤¤¤ë¡£ -¤·¤«¤·¡¢Linux 2.4 (¤È¤½¤ì°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó) ¤Ï¤½¤¦¤Ç¤Ï¤Ê¤¤: +を明示的に設定した場合にはゾンビプロセスの子プロセスの扱いが +異なる点に注意すること。) +Linux 2.6 はこの仕様に準拠している。 +しかし、Linux 2.4 (とそれ以前のバージョン) はそうではない: .B SIGCHLD -¤¬Ìµ»ë¤µ¤ì¤ë¾õÂÖ¤Ç +が無視される状態で .BR wait () -¤Þ¤¿¤Ï +または .BR waitpid () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¡¢ +が呼び出された場合、 .B SIGCHLD -¤¬Ìµ»ë¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¤Î¤è¤¦¤Ë¿¶¤ëÉñ¤¦¡£ -¤Ä¤Þ¤ê¡¢¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤Æ¼¡¤Î»Ò¥×¥í¥»¥¹¤Î½ªÎ»¤Þ¤Ç¥Ö¥í¥Ã¥¯¤µ¤ì¡¢ -½ªÎ»¤·¤¿»Ò¥×¥í¥»¥¹¤Î PID ¤È¾õÂÖ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SS Linux ¤Ç¤ÎÃí°Õ -Linux ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ¥¹¥±¥¸¥å¡¼¥ë¤µ¤ì¤ë¥¹¥ì¥Ã¥É¤Ï -¥×¥í¥»¥¹¤ÈÌÀ³Î¤Ë¶èÊ̤Ǥ­¤ë¹½À®Í×ÁǤǤϤʤ¤¡£¥¹¥ì¥Ã¥É¤Ï Linux ¸ÇÍ­¤Î +が無視されていないかのように振る舞う。 +つまり、呼び出しによって次の子プロセスの終了までブロックされ、 +終了した子プロセスの PID と状態が返される。 +.SS Linux での注意 +Linux カーネルでは、カーネルによってスケジュールされるスレッドは +プロセスと明確に区別できる構成要素ではない。スレッドは Linux 固有の .BR clone (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»ÈÍѤ·¤ÆÀ¸À®¤µ¤ì¤ë¥×¥í¥»¥¹¤Ë²á¤®¤Ê¤¤¡£ -°Ü¿¢À­¤Î¤¢¤ë +システムコールを使用して生成されるプロセスに過ぎない。 +移植性のある .BR pthread_create (3) -¥³¡¼¥ë¤Î¤è¤¦¤Ê¾¤Î¥ë¡¼¥Á¥ó¤Ï +コールのような他のルーチンは .BR clone (2) -¤ò»ÈÍѤ·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë; -¤³¤ì¤é¤Ç¤Ï +を使用して実装されている; +これらでは .BR waitid () -¤ò»È¤¦¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -Linux 2.4 ¤è¤êÁ°¤Ç¤Ï¡¢¥¹¥ì¥Ã¥É¤Ïñ¤ËÆüì¤Ê¥×¥í¥»¥¹¤Ç¤¢¤Ã¤¿¤Î¤Ç¡¢ -Î㤨Ʊ¤¸¥¹¥ì¥Ã¥É¥°¥ë¡¼¥×¤Ç¤¢¤Ã¤Æ¤â¡¢ -¤¢¤ë¥¹¥ì¥Ã¥É¤¬Ê̤Υ¹¥ì¥Ã¥É¤Î»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤Î¤òÂԤĤ³¤È¤Ï½ÐÍè¤Ê¤«¤Ã¤¿¡£ -¤·¤«¤·¡¢POSIX ¤Ç¤Ï¤³¤Î¤è¤¦¤Êµ¡Ç½¤òµ¬Äꤷ¤Æ¤ª¤ê¡¢ -Linux 2.4 °Ê¹ß¤Ç¤Ï¡¢¤¢¤ë¥¹¥ì¥Ã¥É¤¬Æ±¤¸¥¹¥ì¥Ã¥É¥°¥ë¡¼¥×¤Î¾¤Î¥¹¥ì¥Ã¥É¤Î -»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤Î¤òÂԤĤ³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ -¤½¤·¤Æ¾­Íè¤Ï¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ë¤Ê¤ë¤Ç¤¢¤í¤¦¡£ +を使うことはできない。 +Linux 2.4 より前では、スレッドは単に特殊なプロセスであったので、 +例え同じスレッドグループであっても、 +あるスレッドが別のスレッドの子プロセスが終了するのを待つことは出来なかった。 +しかし、POSIX ではこのような機能を規定しており、 +Linux 2.4 以降では、あるスレッドが同じスレッドグループの他のスレッドの +子プロセスが終了するのを待つことができるようになった。 +そして将来はこれがデフォルトの動作になるであろう。 .LP .BR clone (2) -¤òÍѤ¤¤Æºî¤é¤ì¤¿»Ò¥×¥í¥»¥¹¤Ë¤Ï¡¢°Ê²¼¤Î Linux ¸ÇÍ­¤Î +を用いて作られた子プロセスには、以下の Linux 固有の .I options -¤¬»ÈÍѤǤ­¤ë¡£ +が使用できる。 .TP .B __WCLONE .\" since 0.99pl10 -"clone" ¤Ê»Ò¥×¥í¥»¥¹¤À¤±¤òÂԤġ£ -»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤ÏÈó "clone" ¤Ê»Ò¥×¥í¥»¥¹¤À¤±¤òÂÔ¤Ä -("clone" ¤Ê»Ò¥×¥í¥»¥¹¤Ï¡¢½ªÎ»»þ¤Ë¿Æ¥×¥í¥»¥¹¤ØÁ´¤¯¥·¥°¥Ê¥ë¤òÁ÷¤é¤Ê¤¤¤«¡¢ +"clone" な子プロセスだけを待つ。 +指定されなかった場合は非 "clone" な子プロセスだけを待つ +("clone" な子プロセスは、終了時に親プロセスへ全くシグナルを送らないか、 .B SIGCHLD -°Ê³°¤Î¥·¥°¥Ê¥ë¤òÁ÷¤ë)¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +以外のシグナルを送る)。 +このオプションは .B __WALL -¤â»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï̵»ë¤µ¤ì¤ë¡£ +も指定された場合は無視される。 .TP -.BR __WALL " (Linux 2.4 °Ê¹ß)" +.BR __WALL " (Linux 2.4 以降)" .\" since patch-2.3.48 -"clone" ¤Ç¤¢¤ë¤«¤Ê¤¤¤«¤Ë´Ø¤ï¤é¤º¡¢ -Á´¤Æ¤Î»Ò¥×¥í¥»¥¹¤òÂԤġ£ +"clone" であるかないかに関わらず、 +全ての子プロセスを待つ。 .TP -.BR __WNOTHREAD " (Linux 2.4 °Ê¹ß)" +.BR __WNOTHREAD " (Linux 2.4 以降)" .\" since patch-2.4.0-test8 -Ʊ¤¸¥¹¥ì¥Ã¥É¥°¥ë¡¼¥×¤Î¾¤Î¥¹¥ì¥Ã¥É¤Î»Ò¥×¥í¥»¥¹¤ÏÂÔ¤¿¤Ê¤¤¡£ -Linux 2.4 ¤è¤êÁ°¤Ç¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤Ã¤¿¡£ -.SH Îã -.\" fork.2 ¤â¤³¤Î¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤ò»²¾È¤·¤Æ¤¤¤ë¡£ -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢ +同じスレッドグループの他のスレッドの子プロセスは待たない。 +Linux 2.4 より前ではデフォルトであった。 +.SH 例 +.\" fork.2 もこのサンプルプログラムを参照している。 +以下のプログラムは、 .BR fork (2) -¤È +と .BR waitpid () -¤Î»ÈÍÑÊýË¡¤ÎÎã¤ò¼¨¤·¤Æ¤¤¤ë¡£ -¤³¤Î¥×¥í¥°¥é¥à¤Ç¤Ï»Ò¥×¥í¥»¥¹¤òÀ¸À®¤¹¤ë¡£ -¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¤È¤­¤Ï¡¢ -»Ò¥×¥í¥»¥¹¤Ï +の使用方法の例を示している。 +このプログラムでは子プロセスを生成する。 +コマンドライン引き数が指定されなかったときは、 +子プロセスは .BR pause (2) -¤ò»È¤Ã¤Æ¤½¤Î¼Â¹Ô¤ò°ì»þÄä»ß¤·¡¢¥æ¡¼¥¶¤¬¤½¤Î»Ò¥×¥í¥»¥¹¤Ë -¥·¥°¥Ê¥ë¤òÁ÷¿®¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ -¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢ -»Ò¥×¥í¥»¥¹¤Ïľ¤Á¤Ë½ªÎ»¤·¡¢ -¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç»ØÄꤵ¤ì¤¿À°¿ô¤ò½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤È¤·¤Æ»ÈÍѤ¹¤ë¡£ -¿Æ¥×¥í¥»¥¹¤Ï¡¢ +を使ってその実行を一時停止し、ユーザがその子プロセスに +シグナルを送信できるようにする。 +コマンドライン引き数が指定された場合は、 +子プロセスは直ちに終了し、 +コマンドラインで指定された整数を終了ステータスとして使用する。 +親プロセスは、 .BR waitpid () -¤ò»È¤Ã¤Æ»Ò¥×¥í¥»¥¹¤ò´Æ»ë¤·¡¢ -wait ¤Î¥¹¥Æ¡¼¥¿¥¹Ãͤò¾åµ­¤Î W*() ¥Þ¥¯¥í¤ò»È¤Ã¤Æ²òÀϤ¹¤ë¤È¤¤¤¦ -¥ë¡¼¥×¤ò¼Â¹Ô¤¹¤ë¡£ +を使って子プロセスを監視し、 +wait のステータス値を上記の W*() マクロを使って解析するという +ループを実行する。 -²¼µ­¤Î¤Î¥·¥§¥ë¡¦¥»¥Ã¥·¥ç¥ó¤Ï¥×¥í¥°¥é¥à¤Î¼Â¹ÔÎã¤Ç¤¢¤ë: +下記ののシェル・セッションはプログラムの実行例である: .in +4n .nf @@ -592,7 +592,7 @@ killed by signal 15 $ .fi .in -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -640,7 +640,7 @@ main(int argc, char *argv[]) } } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR _exit (2), .BR clone (2), .BR fork (2), diff --git a/release/man2/wait4.2 b/release/man2/wait4.2 index 540fcda3..ed715756 100644 --- a/release/man2/wait4.2 +++ b/release/man2/wait4.2 @@ -40,22 +40,22 @@ .\" Updated 2003-09-12, Kentaro Shirakata .\" Updated 2005-03-04, Akihiro MOTOKI .\" -.\"WORD: signal handling ¥·¥°¥Ê¥ë½èÍý -.\"WORD: suspend Ää»ß(suspend) -.\"WORD: zombie ¥¾¥ó¥Ó(zombie) -.\"WORD: child process »Ò¥×¥í¥»¥¹ -.\"WORD: process group ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× -.\"WORD: process group ID ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×ID -.\"WORD: stop Ää»ß(stop) -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: block ¶Ø»ß(block) -.\"WORD: catch Êá³Í(catch) -.\"WORD: account ¥¢¥«¥¦¥ó¥È +.\"WORD: signal handling シグナル処理 +.\"WORD: suspend 停止(suspend) +.\"WORD: zombie ゾンビ(zombie) +.\"WORD: child process 子プロセス +.\"WORD: process group プロセス・グループ +.\"WORD: process group ID プロセス・グループID +.\"WORD: stop 停止(stop) +.\"WORD: effective user ID 実効ユーザーID +.\"WORD: block 禁止(block) +.\"WORD: catch 捕獲(catch) +.\"WORD: account アカウント .\" .TH WAIT4 2 2010-09-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -wait3, wait4 \- BSD ¥¹¥¿¥¤¥ë¤Ç¥×¥í¥»¥¹¤Î¾õÂÖÊѲ½¤òÂÔ¤Ä -.SH ½ñ¼° +.SH 名前 +wait3, wait4 \- BSD スタイルでプロセスの状態変化を待つ +.SH 書式 .nf .B #include .B #include @@ -70,9 +70,9 @@ wait3, wait4 \- BSD .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -87,19 +87,19 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED _BSD_SOURCE .RE .ad -.SH ÀâÌÀ -¥·¥¹¥Æ¥à¥³¡¼¥ë +.SH 説明 +システムコール .BR wait3 () -¤È +と .BR wait4 () -¤Ï +は .BR waitpid (2) -¤ÈƱÍͤÎÆ°ºî¤ò¤¹¤ë¡£¤½¤ì¤Ë²Ã¤¨¡¢»Ò¥×¥í¥»¥¹¤Î¥ê¥½¡¼¥¹»ÈÍѾõ¶·¤Î¾ðÊó¤ò +と同様の動作をする。それに加え、子プロセスのリソース使用状況の情報を .I rusage -¤¬»Ø¤¹¹½Â¤ÂΤËÆþ¤ì¤ÆÊÖ¤¹¡£ +が指す構造体に入れて返す。 .PP .I rusage -¤ò»ÈÍѤ¹¤ëÅÀ¤ò½ü¤±¤Ð¡¢°Ê²¼¤Î 2¤Ä¤ÏÅù²Á¤Ç¤¢¤ë¡£ +を使用する点を除けば、以下の 2つは等価である。 .nf wait3(status, options, rusage); @@ -107,7 +107,7 @@ _BSD_SOURCE waitpid(\-1, status, options); .fi -ƱÍͤˡ¢°Ê²¼¤Î 2¤Ä¤âÅù²Á¤Ç¤¢¤ë¡£ +同様に、以下の 2つも等価である。 .nf wait4(pid, status, options, rusage); @@ -115,49 +115,49 @@ _BSD_SOURCE waitpid(pid, status, options); .fi -¸À¤¤´¹¤¨¤ë¤È¡¢ +言い換えると、 .BR wait3 () -¤ÏÁ´¤Æ¤Î»Ò¥×¥í¥»¥¹¤òÂоݤËÂԤĤ¬¡¢ +は全ての子プロセスを対象に待つが、 .BR wait4 () -¤Ç¤ÏÆÃÄê¤Î»Ò¥×¥í¥»¥¹ (Ê£¿ô²Ä) ¤òÁª¤ó¤ÇÂԤĤ³¤È¤¬¤Ç¤­¤ë¡£ +では特定の子プロセス (複数可) を選んで待つことができる。 .PP .I rusage -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が NULL でない場合、 .I rusage -¤¬»Ø¤¹ -.I rusage ¹½Â¤ÂÎ -¤Ë¤Ï»Ò¥×¥í¥»¥¹¤Î¥¢¥«¥¦¥ó¥È¾ðÊ󤬳ÊǼ¤µ¤ì¤ë¡£ -¾Ü¤·¤¯¤Ï +が指す +.I rusage 構造体 +には子プロセスのアカウント情報が格納される。 +詳しくは .BR getrusage (2) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ +を参照のこと。 +.SH 返り値 .BR waitpid (2) -¤ÈƱÍÍ¡£ -.SH ¥¨¥é¡¼ +と同様。 +.SH エラー .BR waitpid (2) -¤ÈƱÍÍ¡£ -.SH ½àµò +と同様。 +.SH 準拠 4.3BSD. -.SH Ãí°Õ -¸½ºß¤Ç¤Ï +.SH 注意 +現在では .I -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ëɬÍפϤʤ¤¤¬¡¢¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ¤ª¤¯¤È -°Ü¿¢À­¤ò¹â¤á¤ë¤³¤È¤¬¤Ç¤­¤ë (¼ÂºÝ¤Ë¤Ï +をインクルードする必要はないが、インクルードしておくと +移植性を高めることができる (実際には .I -¤Ç +で .I rusage -¹½Â¤ÂΤ¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢¤½¤Î¥Õ¥£¡¼¥ë¥É¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë +構造体が定義されているが、そのフィールドで使用されている .I struct timeval -·¿¤Ï +型は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ +で定義されている)。 -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR wait3 () -¤Ï¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ç¤¢¤ê¡¢ +はライブラリ関数であり、 .BR wait4 () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +システムコールを使って実装されている。 +.SH 関連項目 .BR fork (2), .BR getrusage (2), .BR sigaction (2), diff --git a/release/man2/write.2 b/release/man2/write.2 index dba9112d..70db5af1 100644 --- a/release/man2/write.2 +++ b/release/man2/write.2 @@ -50,201 +50,201 @@ .\" Updated 2007-09-01, Akihiro MOTOKI, LDP v2.64 .\" Updated 2008-04-13, Akihiro MOTOKI, LDP v3.20 .\" -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: buffer ¥Ð¥Ã¥Õ¥¡¡¼ -.\"WORD: file system ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à -.\"WORD: object ¥ª¥Ö¥¸¥§¥¯¥È -.\"WORD: pipe ¥Ñ¥¤¥× -.\"WORD: socket ¥½¥±¥Ã¥È -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: catch Êá³Í(catch) -.\"WORD: block Ää»ß(block) -.\"WORD: interrupt ³ä¤ê¹þ¤ß -.\"WORD: nonblocking I/O ÈóÄä»ß I/O -.\"WORD: device ¥Ç¥Ð¥¤¥¹ -.\"WORD: low-level I/O Äã¥ì¤Ù¥ë I/O +.\"WORD: descriptor ディスクリプタ +.\"WORD: buffer バッファー +.\"WORD: file system ファイル・システム +.\"WORD: object オブジェクト +.\"WORD: pipe パイプ +.\"WORD: socket ソケット +.\"WORD: signal シグナル +.\"WORD: catch 捕獲(catch) +.\"WORD: block 停止(block) +.\"WORD: interrupt 割り込み +.\"WORD: nonblocking I/O 非停止 I/O +.\"WORD: device デバイス +.\"WORD: low-level I/O 低レべル I/O .\" .TH WRITE 2 2010-08-29 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -write \- ¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿ (file descriptor) ¤Ë½ñ¤­¹þ¤à -.SH ½ñ¼° +.SH 名前 +write \- ファイル・ディスクリプタ (file descriptor) に書き込む +.SH 書式 .B #include .sp .BI "ssize_t write(int " fd ", const void *" buf ", size_t " count ); -.SH ÀâÌÀ +.SH 説明 .BR write () -¤Ï¡¢ +は、 .I buf -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤«¤é¡¢¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿ +が指すバッファから、ファイル・ディスクリプタ .I fd -¤¬»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¤Ø¡¢ºÇÂç +が参照するファイルへ、最大 .I count -¥Ð¥¤¥È¤ò½ñ¤­¹þ¤à¡£ +バイトを書き込む。 -½ñ¤­¹þ¤Þ¤ì¤ë¥Ð¥¤¥È¿ô¤Ï +書き込まれるバイト数は .I count -¤è¤ê¤â¾®¤µ¤¯¤Ê¤ë¤³¤È¤¬¤¢¤ë¡£ -Î㤨¤Ð¡¢½ñ¤­¹þ¤ßÂоݤÎʪÍý¥á¥Ç¥£¥¢¤Ë½½Ê¬¤ÊÎΰ褬¤Ê¤¤¾ì¹ç¡¢ -¥ê¥½¡¼¥¹¾å¸Â +よりも小さくなることがある。 +例えば、書き込み対象の物理メディアに十分な領域がない場合、 +リソース上限 .B RLIMIT_FSIZE -¤Ë㤷¤¿¾ì¹ç +に達した場合 .RB ( setrlimit (2) -»²¾È)¡¢ +参照)、 .I count -¥Ð¥¤¥È̤Ëþ¤Î½ñ¤­¹þ¤ß¤¬¹Ô¤ï¤ì¤¿¸å¤Ç -¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¾ì¹ç¡¢ -¤Ê¤É¤Ç¤¢¤ë¡£ +バイト未満の書き込みが行われた後で +呼び出しがシグナルハンドラにより割り込まれた場合、 +などである。 .RB ( pipe (7) -¤â»²¾È¤Î¤³¤È¡£) +も参照のこと。) -seek ²Äǽ¤Ê¥Õ¥¡¥¤¥ë (¤Ä¤Þ¤ê +seek 可能なファイル (つまり .BR lseek (2) -¤¬Å¬ÍѤǤ­¤ë¥Õ¥¡¥¤¥ë¡¢Î㤨¤ÐÄ̾ï¤Î¥Õ¥¡¥¤¥ë) ¤Ç¤Ï¡¢ -½ñ¤­¹þ¤ß¤Ï¸½ºß¤Î¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤«¤é¹Ô¤ï¤ì¡¢ -¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤Ï¼ÂºÝ¤Ë½ñ¤­¹þ¤ß¤¬¹Ô¤ï¤ì¤¿¥Ð¥¤¥È¿ôʬ -²Ã»»¤µ¤ì¤ë¡£¥Õ¥¡¥¤¥ë¤¬ +が適用できるファイル、例えば通常のファイル) では、 +書き込みは現在のファイル・オフセットから行われ、 +ファイル・オフセットは実際に書き込みが行われたバイト数分 +加算される。ファイルが .B O_APPEND -¤Ç +で .BR open (2) -¤µ¤ì¤¿¾ì¹ç¡¢¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤Ï½ñ¤­¹þ¤ßÁ°¤Ë -¥Õ¥¡¥¤¥ë¤ÎËöÈø¤ËÀßÄꤵ¤ì¤ë¡£ -¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤ÎÄ´À°¤È½ñ¤­¹þ¤ßÁàºî¤Ï¥¢¥È¥ß¥Ã¥¯¤Ê½èÍý¤È¤·¤Æ -¼Â¹Ô¤µ¤ì¤ë¡£ +された場合、ファイル・オフセットは書き込み前に +ファイルの末尾に設定される。 +ファイル・オフセットの調整と書き込み操作はアトミックな処理として +実行される。 -POSIX ¤Ï +POSIX は .BR write () -¤¬¹Ô¤Ê¤ï¤ì¤¿¸å¤Ë¼Â¹Ô¤·¤¿ +が行なわれた後に実行した .BR read (2) -¤¬ -¿·¤·¤¤¥Ç¡¼¥¿¤òÊÖ¤¹¤³¤È¤òÍ׵ᤷ¤Æ¤¤¤ë¡£ -Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤¬ POSIX ½àµò¤Ç¤Ï¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢½ñ¤­¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¿ô¤¬ÊÖ¤µ¤ì¤ë -(¥¼¥í¤Ï²¿¤â½ñ¤­¹þ¤Þ¤ì¤Ê¤«¤Ã¤¿¤³¤È¤ò¼¨¤¹)¡£ -¥¨¥é¡¼¤Ê¤é¤Ð \-1 ¤¬ÊÖ¤µ¤ì¡¢\fIerrno\fP ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が +新しいデータを返すことを要求している。 +全てのファイル・システムが POSIX 準拠ではない点に注意すること。 +.SH 返り値 +成功した場合、書き込まれたバイト数が返される +(ゼロは何も書き込まれなかったことを示す)。 +エラーならば \-1 が返され、\fIerrno\fP が適切に設定される。 -\fIcount\fP ¤¬ 0 ¤Ç¡¢ +\fIcount\fP が 0 で、 .I fd -¤¬Ä̾ï¤Î¥Õ¥¡¥¤¥ë (regular file) ¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¡¢ +が通常のファイル (regular file) を参照している場合、 .BR write () -¤Ï¸å½Ò¤Î¥¨¥é¡¼¤Î¤¤¤º¤ì¤«¤ò¸¡½Ð¤·¤¿¾ì¹ç¡¢¼ºÇÔ¤òÊÖ¤¹¤³¤È¤¬¤¢¤ë¡£ -¥¨¥é¡¼¤¬¸¡½Ð¤µ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ -0 ¤òÊÖ¤·¡¢Â¾¤Ë²¿¤Î±Æ¶Á¤âÍ¿¤¨¤Ê¤¤¡£ -\fIcount\fP ¤¬ 0 ¤Ç¡¢ +は後述のエラーのいずれかを検出した場合、失敗を返すことがある。 +エラーが検出されなかった場合は、 +0 を返し、他に何の影響も与えない。 +\fIcount\fP が 0 で、 .I fd -¤¬Ä̾ï¤Î¥Õ¥¡¥¤¥ë°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -¤½¤Î·ë²Ì¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ¥¨¥é¡¼ +が通常のファイル以外のファイルを参照している場合、 +その結果は規定されていない。 +.SH エラー .TP .B EAGAIN -¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿ +ファイル・ディスクリプタ .I fd -¤¬¥½¥±¥Ã¥È°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤Æ¡¢ -ÈóÄä»ß (nonblocking) ¥â¡¼¥É +がソケット以外のファイルを参照していて、 +非停止 (nonblocking) モード .RB ( O_NONBLOCK ) -¤ËÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢½ñ¤­¹þ¤ß¤ò¹Ô¤¦¤ÈÄä»ß¤¹¤ë¾õ¶·¤Ë¤¢¤ë¡£ +に設定されており、書き込みを行うと停止する状況にある。 .TP -.BR EAGAIN " ¤Þ¤¿¤Ï " EWOULDBLOCK +.BR EAGAIN " または " EWOULDBLOCK .\" Actually EAGAIN on Linux -¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿ +ファイル・ディスクリプタ .I fd -¤¬¥½¥±¥Ã¥È¤ò»²¾È¤·¤Æ¤¤¤Æ¡¢ÈóÄä»ß (nonblocking) ¥â¡¼¥É +がソケットを参照していて、非停止 (nonblocking) モード .RB ( O_NONBLOCK ) -¤ËÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢½ñ¤­¹þ¤ß¤ò¹Ô¤¦¤ÈÄä»ß¤¹¤ë¾õ¶·¤Ë¤¢¤ë¡£ -POSIX.1-2001 ¤Ï¡¢¤³¤Î¾ì¹ç¤Ë¤É¤Á¤é¤Î¥¨¥é¡¼¤òÊÖ¤¹¤³¤È¤âǧ¤á¤Æ¤ª¤ê¡¢ -¤³¤ì¤é 2 ¤Ä¤ÎÄê¿ô¤¬Æ±¤¸Ãͤò»ý¤Ä¤³¤È¤âµá¤á¤Æ¤¤¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢Î¾Êý¤Î²ÄǽÀ­¤ò -³Îǧ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +に設定されており、書き込みを行うと停止する状況にある。 +POSIX.1-2001 は、この場合にどちらのエラーを返すことも認めており、 +これら 2 つの定数が同じ値を持つことも求めていない。 +したがって、移植性が必要なアプリケーションでは、両方の可能性を +確認すべきである。 .TP .B EBADF .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¤«½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó -(open) ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +が有効なファイル・ディスクリプタでないか書き込みのためにオープン +(open) されていない。 .TP .B EDESTADDRREQ .I fd -¤¬¡¢ +が、 .BR connect (2) -¤ò»È¤Ã¤ÆÄÌ¿®Áê¼ê¤Î¥¢¥É¥ì¥¹¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¥Ç¡¼¥¿¥°¥é¥à¥½¥±¥Ã¥È¤ò -»²¾È¤·¤Æ¤¤¤ë¡£ +を使って通信相手のアドレスが設定されていないデータグラムソケットを +参照している。 .TP .B EFAULT .I buf -¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö (address space) ¤Î³°¤Ë¤¢¤ë¡£ +がアクセス可能なアドレス空間 (address space) の外にある。 .TP .B EFBIG -¼ÂÁõÄêµÁ¤ÎºÇÂç¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤Þ¤¿¤Ï¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¥µ¥¤¥ºÀ©¸Â¤ò -Ķ¤¨¤Æ¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤â¤¦¤È¤·¤¿¡£ -¤Þ¤¿¤Ïµö²Ä¤µ¤ì¤¿¥ª¥Õ¥»¥Ã¥ÈÃͤ賦¤òĶ¤¨¤¿Àè¤Î°ÌÃÖ¤Ë -½ñ¤­¹þ¤â¤¦¤È¤·¤¿¡£ +実装定義の最大ファイルサイズまたはプロセスのファイルサイズ制限を +超えてファイルに書き込もうとした。 +または許可されたオフセット値の限界を超えた先の位置に +書き込もうとした。 .TP .B EINTR -²¿¤Î¥Ç¡¼¥¿¤â½ñ¤«¤Ê¤¤´Ö¤Ë¥·¥°¥Ê¥ë¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿ (interrupt)¡£ +何のデータも書かない間にシグナルにより割り込まれた (interrupt)。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .I fd -¤¬½ñ¤­¹þ¤ß¤¬ÉÔŬÀڤʥª¥Ö¥¸¥§¥¯¥È¤ò»²¾È¤·¤Æ¤¤¤ë¡£ -¤â¤·¤¯¤Ï¡¢¥Õ¥¡¥¤¥ë¤¬ +が書き込みが不適切なオブジェクトを参照している。 +もしくは、ファイルが .B O_DIRECT -¥Õ¥é¥°¤ò»ØÄꤷ¤Æ¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ +フラグを指定してオープンされているが、 .I buf -¤Ë»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¡¢ +に指定されたアドレス、 .I count -¤Ë»ØÄꤵ¤ì¤¿ÃÍ¡¢ -¸½ºß¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤Î¤¤¤º¤ì¤«¤Î -¥¢¥é¥¤¥ó¥á¥ó¥È¤¬ÉÔŬÀڤǤ¢¤ë¡£ +に指定された値、 +現在のファイルオフセットのいずれかの +アラインメントが不適切である。 .TP .B EIO -inode ¤Î½¤ÀµÃæ¤ËÄã¥ì¤Ù¥ë (low-level) I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +inode の修正中に低レべル (low-level) I/O エラーが発生した。 .TP .B ENOSPC .I fd -¤Ë¤è¤Ã¤Æ»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤ò´Þ¤à¥Ç¥Ð¥¤¥¹ (device) ¤Ë½½Ê¬¤Ê¶õ¤­¤¬¤Ê¤¤¡£ +によって参照されるファイルを含むデバイス (device) に十分な空きがない。 .TP .B EPIPE .I fd -¤¬¥Ñ¥¤¥× (pipe) ¤«¥½¥±¥Ã¥È (socket) ¤ËÀܳ¤µ¤ì¤Æ¤ª¤ê¡¢ -¤½¤ÎÈ¿ÂЦ (Æɤ߹þ¤ß¦) ¤¬¥¯¥í¡¼¥º (close) ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¤Ï¡¢½ñ¤­¹þ¤ß¤ò¹Ô¤Ê¤¦¥×¥í¥»¥¹¤Ï +がパイプ (pipe) かソケット (socket) に接続されており、 +その反対側 (読み込み側) がクローズ (close) されている。 +これが発生した場合には、書き込みを行なうプロセスは .B SIGPIPE -¥·¥°¥Ê¥ë (signal)¤â¼õ¤±¤ë¡£ -(¤·¤¿¤¬¤Ã¤Æ¡¢¥×¥í¥°¥é¥à¤¬¤³¤Î¥·¥°¥Ê¥ë¤òÊá³Í (catch)¡¢Ää»ß (block)¡¢Ìµ»ë (ignore) -¤·¤¿¾ì¹ç¤Î¤ß¡¢write ¤ÎÊÖ¤êÃͤò»²¾È¤Ç¤­¤ë¡£) +シグナル (signal)も受ける。 +(したがって、プログラムがこのシグナルを捕獲 (catch)、停止 (block)、無視 (ignore) +した場合のみ、write の返り値を参照できる。) .PP .I fd -¤ËÀܳ¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤è¤Ã¤Æ¤Ï¡¢Â¾¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -.SH ½àµò +に接続されたオブジェクトによっては、他のエラーが起こるかもしれない。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -.\" SVr4 ¤Ë¤Ï¾¤Ë EDEADLK, ENOLCK, ENOLNK, -.\" ENOSR, ENXIO, ERANGE ¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ +.\" SVr4 には他に EDEADLK, ENOLCK, ENOLNK, +.\" ENOSR, ENXIO, ERANGE エラーについての記述がある。 -SVr4 ¤Ç¤Ï write ¤¬³ä¤ê¹þ¤Þ¤ì¤ë¤È¡¢¥Ç¡¼¥¿¤¬½ñ¤­¹þ¤Þ¤ì¤ëľÁ°¤Ç¤Ï¤Ê¤¯¡¢ -¤½¤Î»þÅÀ¤Ç +SVr4 では write が割り込まれると、データが書き込まれる直前ではなく、 +その時点で .B EINTR -¤¬Ê֤롣 -.SH Ãí°Õ +が返る。 +.SH 注意 .BR write () -¤¬À®¸ù¤·¤ÆÊ֤äƤ­¤Æ¤â¡¢¥Ç¡¼¥¿¤¬¥Ç¥£¥¹¥¯¤Ëµ­Ï¿¤µ¤ì¤¿¤³¤È¤ò -Êݾڤ¹¤ë¤â¤Î¤Ç¤Ï¤Ê¤¤¡£ -¼ÂºÝ¡¢¥Ç¡¼¥¿¤Î¤¿¤á¤Î¥¹¥Ú¡¼¥¹¤¬³ÎÊݤµ¤ì¤¿¤³¤È¤¹¤éÊݾڤµ¤ì¤Ê¤¤¤È¤¤¤¦ -¥Ð¥°¤Ã¤Ý¤¤¼ÂÁõ¤â¤¢¤ë¡£ -¤³¤ì¤ò³Î¼Â¤Ë¤¹¤ëÍ£°ì¤ÎÊýË¡¤Ï¡¢ -Á´¤Æ¤Î¥Ç¡¼¥¿¤ò write ¤·¤¿¸å¤Ë +が成功して返ってきても、データがディスクに記録されたことを +保証するものではない。 +実際、データのためのスペースが確保されたことすら保証されないという +バグっぽい実装もある。 +これを確実にする唯一の方法は、 +全てのデータを write した後に .BR fsync (2) -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¤¢¤ë¡£ +を呼び出すことである。 .BR write () -¤¬ 1 ¥Ð¥¤¥È¤â½ñ¤­¹þ¤Þ¤Ê¤¤¤¦¤Á¤Ë¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¾ì¹ç¡¢ +が 1 バイトも書き込まないうちにシグナルハンドラにより割り込まれた場合、 .BR write () -¤Ï¥¨¥é¡¼ +はエラー .B EINTR -¤Ç¼ºÇÔ¤¹¤ë¡£ -1¥Ð¥¤¥È¤Ç¤â½ñ¤­¹þ¤ó¤À¸å¤Ç³ä¤ê¹þ¤Þ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ +で失敗する。 +1バイトでも書き込んだ後で割り込まれた場合には、 .BR write () -¤ÏÀ®¸ù¤·¡¢½ñ¤­¹þ¤ó¤À¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -.SH ´ØÏ¢¹àÌÜ +は成功し、書き込んだバイト数を返す。 +.SH 関連項目 .BR close (2), .BR fcntl (2), .BR fsync (2), diff --git a/release/man3/INFINITY.3 b/release/man3/INFINITY.3 index 55e193b0..be51551f 100644 --- a/release/man3/INFINITY.3 +++ b/release/man3/INFINITY.3 @@ -26,11 +26,11 @@ .\" by Yuichi SATO .\" .TH INFINITY 3 2007-07-26 "" "Linux Programmer's Manual" -.SH ̾Á° -INFINITY, NAN, HUGE_VAL, HUGE_VALF, HUGE_VALL \- ÉâÆ°¾®¿ôÅÀ¿ô¤ÎÄê¿ô -.SH ½ñ¼° +.SH 名前 +INFINITY, NAN, HUGE_VAL, HUGE_VALF, HUGE_VALL \- 浮動小数点数の定数 +.SH 書式 .nf -.BR "#define _ISOC99_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _ISOC99_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp @@ -44,53 +44,53 @@ INFINITY, NAN, HUGE_VAL, HUGE_VALF, HUGE_VALL \- .br .B HUGE_VALL .fi -.SH ÀâÌÀ -¥Þ¥¯¥í +.SH 説明 +マクロ .B INFINITY -¤ÏÀµ¤Î̵¸ÂÂç¤òɽ¤¹ -\fIfloat\fP ·¿¤ÎÄê¿ô¤ËŸ³«¤µ¤ì¤ë¡£ +は正の無限大を表す +\fIfloat\fP 型の定数に展開される。 -(¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç) ¥Þ¥¯¥í +(サポートされている場合) マクロ .B NAN -¤Ï quiet NaN ¤òɽ¤¹ \fIfloat\fP ·¿¤ÎÄê¿ô¤ËŸ³«¤µ¤ì¤ë¡£ +は quiet NaN を表す \fIfloat\fP 型の定数に展開される。 .I quiet -NaN ¤Ï·×»»¼°¤ÎÃæ¤Ç»È¤ï¤ì¤¿¤È¤­¤ËÎã³°¤òµ¯¤³¤µ¤Ê¤¤ -NaN ("not-a-number") ¤Ç¤¢¤ë¡£ -¤³¤ÎÈ¿ÂÐ¤Ï +NaN は計算式の中で使われたときに例外を起こさない +NaN ("not-a-number") である。 +この反対は .I signalling -NaN ¤Ç¤¢¤ë¡£ -IEC 60559:1989 ¤ò»²¾È¤¹¤ë¤³¤È¡£ +NaN である。 +IEC 60559:1989 を参照すること。 -¥Þ¥¯¥í +マクロ .BR HUGE_VAL , .BR HUGE_VALF , .B HUGE_VALL -¤Ï¤½¤ì¤¾¤ì \fIdouble\fP, \fIfloat\fP, \fIlong double\fP ·¿¤ÎÄê¿ô¤Ç¡¢ -Â礭¤ÊÀµ¤ÎÃͤòɽ¤·¡¢²Äǽ¤Ê¾ì¹ç¤Ë¤ÏÀµ¤Î̵¸ÂÂç¤òɽ¤¹¡£ -.SH ½àµò +はそれぞれ \fIdouble\fP, \fIfloat\fP, \fIlong double\fP 型の定数で、 +大きな正の値を表し、可能な場合には正の無限大を表す。 +.SH 準拠 C99. -.SH ²ÄÍÑÀ­ -glibc ¥·¥¹¥Æ¥à¤Ç¤Ï¥Þ¥¯¥í +.SH 可用性 +glibc システムではマクロ .B HUGE_VAL -¤¬¾ï¤Ë»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ +が常に使用可能である。 .B NAN -¥Þ¥¯¥í¤¬»ÈÍѤǤ­¤ë¤«¤Ï¡¢ +マクロが使用できるかは、 .B "#ifdef NAN" -¤ò»È¤Ã¤Æ¥Æ¥¹¥È¤Ç¤­¤ë¡£ +を使ってテストできる。 .BR INFINITY , .BR HUGE_VALF , .B HUGE_VALL -¤âƱÍͤǤ¢¤ë¡£ +も同様である。 .B _ISOC99_SOURCE -¤« +か .B _GNU_SOURCE -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¤Þ¤¿¤Ï +が定義されている場合、 +または .B __STDC_VERSION__ -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Æ¡¢¤½¤ÎÃͤ¬ 199901L °Ê¾å¤Ç¤¢¤ë¾ì¹ç¡¢ -¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ï +が定義されていて、その値が 199901L 以上である場合、 +これらのマクロは .I -¤ÇÄêµÁ¤µ¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +で定義される。 +.SH 関連項目 .BR fpclassify (3), .BR math_error (7) diff --git a/release/man3/MB_CUR_MAX.3 b/release/man3/MB_CUR_MAX.3 index e149f895..7a44ec42 100644 --- a/release/man3/MB_CUR_MAX.3 +++ b/release/man3/MB_CUR_MAX.3 @@ -16,29 +16,29 @@ .\" all rights reserved. .\" Translated Sep 11 1999, HAYAKAWA Hitoshi .\" -.\"WORD: multibyte ¥Þ¥ë¥Á¥Ð¥¤¥È -.\"WORD: locale ¥í¥±¡¼¥ë +.\"WORD: multibyte マルチバイト +.\"WORD: locale ロケール .\" .TH MB_CUR_MAX 3 1999-07-04 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -MB_CUR_MAX \- ¸½ºß¤Î¥í¥±¡¼¥ë¤Ç¤Î¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ÎºÇÂçĹ -.SH ½ñ¼° +.SH 名前 +MB_CUR_MAX \- 現在のロケールでのマルチバイト文字の最大長 +.SH 書式 .nf .B #include .fi -.SH ÀâÌÀ +.SH 説明 .B MB_CUR_MAX -¥Þ¥¯¥í¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Ç°ì¤Ä¤Î¥ï¥¤¥Éʸ»ú¤òɽ¸½¤¹¤ë¤¿¤á¤ËɬÍ×¤Ê -ºÇÂç¥Ð¥¤¥È¿ô¤òɽ¤¹À°¿ôɽ¸½¤òÄêµÁ¤¹¤ë¡£ -¤³¤ì¤Ï¥í¥±¡¼¥ë°Í¸¤Ç¤¢¤ê¡¢¥³¥ó¥Ñ¥¤¥ë»þ¤Ë·è¤Þ¤ëÄê¿ô¤Ç¤Ï¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +マクロは、現在のロケールで一つのワイド文字を表現するために必要な +最大バイト数を表す整数表現を定義する。 +これはロケール依存であり、コンパイル時に決まる定数ではない。 +.SH 返り値 [1, .BR MB_LEN_MAX ] -¤ÎÈϰϤÎÀ°¿ô¤òÊÖ¤¹¡£ -1 ¤È¤¤¤¦ÃͤÏÅÁÅýŪ¤Ê (traditional) 8-bit ¥¨¥ó¥³¡¼¥É¤µ¤ì¤¿Ê¸»ú¤ò°ÕÌ£¤¹¤ë¡£ -.SH ½àµò +の範囲の整数を返す。 +1 という値は伝統的な (traditional) 8-bit エンコードされた文字を意味する。 +.SH 準拠 C99, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR MB_LEN_MAX (3), .BR mblen (3), .BR mbstowcs (3), diff --git a/release/man3/MB_LEN_MAX.3 b/release/man3/MB_LEN_MAX.3 index e90c3b2e..d5b0d5aa 100644 --- a/release/man3/MB_LEN_MAX.3 +++ b/release/man3/MB_LEN_MAX.3 @@ -16,32 +16,32 @@ .\" all rights reserved. .\" Translated Sep 11 1999, HAYAKAWA Hitoshi .\" -.\"WORD: locale ¥í¥±¡¼¥ë +.\"WORD: locale ロケール .\" .TH MB_LEN_MAX 3 1999-07-04 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -MB_LEN_MAX \- Á´¤Æ¤Î¥í¥±¡¼¥ë¤Ç¤Î£±Ê¸»ú¤ÎºÇÂç¥Þ¥ë¥Á¥Ð¥¤¥ÈĹ -.SH ½ñ¼° +.SH 名前 +MB_LEN_MAX \- 全てのロケールでの1文字の最大マルチバイト長 +.SH 書式 .nf .B #include .fi -.SH ÀâÌÀ +.SH 説明 .B MB_LEN_MAX -¥Þ¥¯¥í¤Ï¡¢Á´¤Æ¤Î¥í¥±¡¼¥ë¤Ç°ì¤Ä¤Î¥ï¥¤¥Éʸ»ú¤òɽ¸½¤¹¤ë¤¿¤á¤ËɬÍפȤʤë -ºÇÂç¥Ð¥¤¥È¿ô¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -0 ¤è¤êÂ礭¤¤¤ÎÀ°¿ô·¿¤ÎÄê¿ô¡£ -.SH ½àµò +マクロは、全てのロケールで一つのワイド文字を表現するために必要となる +最大バイト数である。 +.SH 返り値 +0 より大きいの整数型の定数。 +.SH 準拠 C99, POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .B MB_LEN_MAX -¤È +と .I sizeof(wchar_t) -¤ÎÃͤˤϤʤó¤Î´Ø·¸¤â¤Ê¤¤¡£ -glibc ¤Ç¤Ï +の値にはなんの関係もない。 +glibc では .B MB_LEN_MAX -¤ÏÄ̾ï¤Ï 6 ¤Ç¡¢ +は通常は 6 で、 .I sizeof(wchar_t) -¤Ï 4 ¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +は 4 である。 +.SH 関連項目 .BR MB_CUR_MAX (3) diff --git a/release/man3/__setfpucw.3 b/release/man3/__setfpucw.3 index 8fac162e..aab4f0e6 100644 --- a/release/man3/__setfpucw.3 +++ b/release/man3/__setfpucw.3 @@ -8,66 +8,66 @@ .\" by ISHIOKA Takashi .\" Updated Wed Sep 20 2000 by NAKANO Takeo .\" -.\"WORD: (floating-point) exception (ÉâÆ°¾®¿ôÅÀ) Îã³° -.\"WORD: rounding ´Ý¤á +.\"WORD: (floating-point) exception (浮動小数点) 例外 +.\"WORD: rounding 丸め .\" .TH __SETFPUCW 3 1997-03-08 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -__setfpucw \- i386 ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤ª¤±¤ë FPU -¤Î¥³¥ó¥È¥í¡¼¥ë¥ï¡¼¥É¤ÎÀßÄê (obsolete) -.SH ½ñ¼° +.SH 名前 +__setfpucw \- i386 アーキテクチャにおける FPU +のコントロールワードの設定 (obsolete) +.SH 書式 .B #include .sp .BI "void __setfpucw(unsigned short " control_word ); -.SH ÀâÌÀ +.SH 説明 .BR __setfpucw () -¤Ï¡¢i386¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤ª¤¤¤Æ +は、i386アーキテクチャにおいて .I control_word -¤ò FPU (floating-point unit) ¤Î¥ì¥¸¥¹¥¿¤ËžÁ÷¤¹¤ë¡£ -¤³¤ì¤ÏÉâÆ°¾®¿ôÅÀ±é»»¤ÎÀºÅÙ¡¢´Ý¤áÊý¡¢ -¤ª¤è¤ÓÉâÆ°¾®¿ôÅÀÎã³°¤òÀ©¸æ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£ -.SH ½àµò -¤³¤Î´Ø¿ô¤ÏÈóɸ½à¤Ç GNU ³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -glibc 2.1 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î´Ø¿ô¤Ï¸ºß¤·¤Ê¤¤¡£ -¿·¤¿¤Ê´Ø¿ô·²¤¬ C99 ¤«¤éƳÆþ¤µ¤ì¤¿¡£¤³¤ì¤é¤Î¥×¥í¥È¥¿¥¤¥×¤Ï +を FPU (floating-point unit) のレジスタに転送する。 +これは浮動小数点演算の精度、丸め方、 +および浮動小数点例外を制御するのに使われる。 +.SH 準拠 +この関数は非標準で GNU 拡張である。 +.SH 注意 +glibc 2.1 以降では、この関数は存在しない。 +新たな関数群が C99 から導入された。これらのプロトタイプは .I -¤ËÃÖ¤«¤ì¤Æ¤¤¤ë¡£ FPU ¤Î´Ý¤á¥â¡¼¥É¤ÎÀ©¸æ¤Ë¤Ï +に置かれている。 FPU の丸めモードの制御には .IR fegetround , .I fesetround -¤Ê¤É¤¬¡¢ÉâÆ°¾®¿ôÅÀ´ØÏ¢¤Î´Ä¶­¤Ë¤Ï +などが、浮動小数点関連の環境には .IR fegetenv , .IR feholdexcept , .IR fesetenv , .I feupdateenv -¤Ê¤É¤¬¡¢ FPU Îã³°½èÍý¤Ë¤Ï +などが、 FPU 例外処理には .IR feclearexcept , .IR fegetexceptflag , .IR feraiseexcept , .IR fesetexceptflag , .I fetestexcept -¤Ê¤É¤¬Æ³Æþ¤µ¤ì¤¿¡£ +などが導入された。 .PP -FPU ¤Î¥³¥ó¥È¥í¡¼¥ë¥ï¡¼¥É¤Ø¤É¤¦¤·¤Æ¤âľÀÜ¥¢¥¯¥»¥¹¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢ +FPU のコントロールワードへどうしても直接アクセスする必要がある場合には、 .I -¤Î +の .B _FPU_GETCW -¥Þ¥¯¥í¤È +マクロと .B _FPU_SETCW -¥Þ¥¯¥í¤òÍѤ¤¤ë¤³¤È¤Ï²Äǽ¤Ç¤¢¤ë¡£ -.SH Îã +マクロを用いることは可能である。 +.SH 例 .B __setfpucw(0x1372) -¤Ï¡¢i386¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤ª¤±¤ë FPU ¤Î¥³¥ó¥È¥í¡¼¥ë¥ï¡¼¥É¤ò¡¢ +は、i386アーキテクチャにおける FPU のコントロールワードを、 .br - \- ³ÈÄ¥ÀºÅÙ + \- 拡張精度 .br - \- ºÇ¤â¶á¤¤À°¿ô¤Ø´Ý¤á¤ë¡¢Ãæ´Ö¤Î¾ì¹ç¤Ï¶ö¿ô¤òÁªÂò¤¹¤ë¡£ + \- 最も近い整数へ丸める、中間の場合は偶数を選択する。 .br - \- ·å°î¤ì¡¢0¤Ç½ü»»¡¢µÚ¤Ó̵¸úÃÍ(NaN)¤È¤­¤ËÎã³°¤òȯÀ¸ + \- 桁溢れ、0で除算、及び無効値(NaN)ときに例外を発生 .br -¤ËÀßÄꤹ¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +に設定する。 +.SH 関連項目 .BR feclearexcept (3) .br .I diff --git a/release/man3/a64l.3 b/release/man3/a64l.3 index d249a296..93ff8c95 100644 --- a/release/man3/a64l.3 +++ b/release/man3/a64l.3 @@ -10,12 +10,12 @@ .\" Updated & Modified Thu Nov 27 01:02:55 JST 2003 .\" by Yuichi SATO .\" -.\"WORD: sign-extend Éä¹æ³ÈÄ¥ +.\"WORD: sign-extend 符号拡張 .\" .TH A64L 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -a64l, l64a \- long ¤È base-64 ¤òÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +a64l, l64a \- long と base-64 を変換する +.SH 書式 .B #include .sp .BI "long a64l(char *" str64 ); @@ -23,9 +23,9 @@ a64l, l64a \- long .BI "char *l64a(long " value ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR a64l (), @@ -37,55 +37,55 @@ _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .RE .ad -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï 32 ¥Ó¥Ã¥È long À°¿ô¤È -¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó base-64 ASCII ʸ»úÎó (Ťµ 0 ¡Á 6) ¤Î´Ö¤ÎÊÑ´¹¤ò¹Ô¤¦¡£ +.SH 説明 +これらの関数は 32 ビット long 整数と +リトルエンディアン base-64 ASCII 文字列 (長さ 0 〜 6) の間の変換を行う。 .BR a64l () -¤Î°ú¤­¿ô¤Îʸ»úÎó¤¬ 7 ʸ»ú°Ê¾å¤Î¾ì¹ç¡¢ -ºÇ½é¤Î 6 ¥Ð¥¤¥È¤¬»È¤ï¤ì¤ë¡£ +の引き数の文字列が 7 文字以上の場合、 +最初の 6 バイトが使われる。 .I long -·¿¤¬ 32 ¥Ó¥Ã¥È¤è¤êÂ礭¤¤¾ì¹ç¡¢ +型が 32 ビットより大きい場合、 .BR l64a () -¤Ï +は .I value -¤Î²¼°Ì 32 ¥Ó¥Ã¥È¤Î¤ß¤ò»È¤¤¡¢ +の下位 32 ビットのみを使い、 .BR a64l () -¤Ï 32 ¥Ó¥Ã¥È¤Î·ë²Ì¤òÉä¹æ³ÈÄ¥ (sign-extend) ¤¹¤ë¡£ +は 32 ビットの結果を符号拡張 (sign-extend) する。 .LP -base-64 ¥·¥¹¥Æ¥à¤Ç»È¤ï¤ì¤ë 64 ¸Ä¤Îʸ»ú¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë: +base-64 システムで使われる 64 個の文字は以下の通りである: .RS .nf -\&\(aq.\(aq ¤Ï 0 ¤òɽ¤¹¡£ -\&\(aq/\(aq ¤Ï 1 ¤òɽ¤¹¡£ -0-9 ¤Ï 2-11 ¤òɽ¤¹¡£ -A-Z ¤Ï 12-37 ¤òɽ¤¹¡£ -a-z ¤Ï 38-63 ¤òɽ¤¹¡£ +\&\(aq.\(aq は 0 を表す。 +\&\(aq/\(aq は 1 を表す。 +0-9 は 2-11 を表す。 +A-Z は 12-37 を表す。 +a-z は 38-63 を表す。 .fi .RE -¤è¤Ã¤Æ 123 = 59*64^0 + 1*64^1 = "v/" ¤Ç¤¢¤ë¡£ -.SH ½àµò +よって 123 = 59*64^0 + 1*64^1 = "v/" である。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .BR l64a () -¤ÇÊÖ¤µ¤ì¤ëÃͤÏÀÅŪ¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤«¤â¤·¤ì¤Ê¤¤¤Î¤Ç¡¢ -°Ê¹ß¤Î¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +で返される値は静的バッファへのポインタかもしれないので、 +以降の呼び出しで上書きされる可能性がある。 .LP .I value -¤¬Éé¤Î¾ì¹ç¡¢ +が負の場合、 .BR l64a () -¤ÎÆ°ºî¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +の動作は定義されていない。 .I value -¤¬ 0 ¤Î¾ì¹ç¤Ï¶õʸ»úÎó¤òÊÖ¤¹¡£ +が 0 の場合は空文字列を返す。 .LP -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc 2.2.5 °ÊÁ°¤Ç¤Ï´Ö°ã¤Ã¤Æ¤¤¤ë -(ºÇ¾å°Ì¥Ç¥¸¥Ã¥È¤òºÇ½é¤Ë¤·¤Æ¤¤¤ë)¡£ +これらの関数は glibc 2.2.5 以前では間違っている +(最上位デジットを最初にしている)。 .LP -¤³¤ì¤Ï +これは .BR uuencode (1) -¤Ç»È¤ï¤ì¤ë¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Ç¤Ï¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +で使われるエンコーディングではない。 +.SH 関連項目 .BR uuencode (1), .\" .BR itoa (3), .BR strtoul (3) diff --git a/release/man3/abort.3 b/release/man3/abort.3 index 93fe9288..af6e0c40 100644 --- a/release/man3/abort.3 +++ b/release/man3/abort.3 @@ -36,46 +36,46 @@ .\" Updated 2010-12-26, Akihiro MOTOKI .\" .TH ABORT 3 2007-12-15 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -abort \- ¥×¥í¥»¥¹¤Î°Û¾ï½ªÎ»¤òÀ¸¤¸¤µ¤»¤ë -.SH ½ñ¼° +.SH 名前 +abort \- プロセスの異常終了を生じさせる +.SH 書式 .nf .B #include .sp .B void abort(void); .fi -.SH ÀâÌÀ +.SH 説明 .BR abort () -´Ø¿ô¤Ï¡¢¤Þ¤º +関数は、まず .B SIGABRT -¤Î¶Ø»ß (block) ¤ò²ò½ü¤·¤Æ¤«¤é¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ë +の禁止 (block) を解除してから、呼び出し元のプロセスに .B SIGABRT -¥·¥°¥Ê¥ë¤ò¾å¤²¤ë¡£¤½¤Î·ë²Ì¡¢ +シグナルを上げる。その結果、 .B SIGABRT -¥·¥°¥Ê¥ë¤¬Ê᪠(caught) ¤µ¤ì¤ÆÂбþ¤¹¤ë¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¡¼¤¬ -Ê֤äÆÍè¤Ê¤¤¾ì¹ç°Ê³°¤Ï¡¢¥×¥í¥°¥é¥à¤Î°Û¾ï½ªÎ»¤¬µ¯¤³¤ë +シグナルが捕捉 (caught) されて対応するシグナル・ハンドラーが +返って来ない場合以外は、プログラムの異常終了が起こる .RB ( longjmp (3) -»²¾È)¡£ +参照)。 .PP .BR abort () -´Ø¿ô¤Ë¤è¤Ã¤Æ¥×¥í¥»¥¹¤Î½ªÎ»¤¬°ú¤­µ¯¤³¤µ¤ì¤¿¤È¤­¤Ë¤Ï¡¢ -¤¹¤Ù¤Æ¤Î³«¤¤¤Æ¤¤¤ë¥¹¥È¥ê¡¼¥à¤ÏÊĤ¸¤é¤ì¥Õ¥é¥Ã¥·¥å¤µ¤ì¤ë¡£ +関数によってプロセスの終了が引き起こされたときには、 +すべての開いているストリームは閉じられフラッシュされる。 .PP .B SIGABRT -¥·¥°¥Ê¥ë¤¬Ìµ»ë¡¢¤Þ¤¿¤ÏÊ֤äÆÍè¤ë¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¡¼¤Ç -Ê᪤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢ +シグナルが無視、または返って来るシグナル・ハンドラーで +捕捉されるようになっている場合であっても、 .BR abort () -´Ø¿ô¤Ï¤½¤Î¥×¥í¥»¥¹¤ò½ªÎ»¤¹¤ë¡£ +関数はそのプロセスを終了する。 .B SIGABRT -¥·¥°¥Ê¥ë¤ËÂФ¹¤ë½èÍýÊýË¡¤ò¥Ç¥Õ¥©¥ë¥È¤ËÌᤷ¤Æ¤«¤é¡¢ºÆÅÙ +シグナルに対する処理方法をデフォルトに戻してから、再度 .B SIGABRT -¥·¥°¥Ê¥ë¤ò¾å¤²¤ë¤³¤È¤Ç¡¢¤³¤Î¤è¤¦¤ÊÆ°ºî¤Ë¤Ê¤ë¡£ -.SH ÊÖ¤êÃÍ +シグナルを上げることで、このような動作になる。 +.SH 返り値 .BR abort () -´Ø¿ô¤¬Ê֤뤳¤È¤Ï¤Ê¤¤¡£ -.SH ½àµò +関数が返ることはない。 +.SH 準拠 SVr4, POSIX.1-2001, 4.3BSD, C89, C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR gdb (1), .BR sigaction (2), .BR exit (3), diff --git a/release/man3/abs.3 b/release/man3/abs.3 index 1f1a02be..75938e6b 100644 --- a/release/man3/abs.3 +++ b/release/man3/abs.3 @@ -36,9 +36,9 @@ .\" Updated Mon 29 Jan 2001 17:18:34 JST by Kentaro Shirakata .\" .TH ABS 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -abs, labs, llabs, imaxabs \- À°¿ô¤ÎÀäÂÐÃͤò·×»»¤¹¤ë -.SH ½ñ¼° +.SH 名前 +abs, labs, llabs, imaxabs \- 整数の絶対値を計算する +.SH 書式 .nf .B #include .sp @@ -54,9 +54,9 @@ abs, labs, llabs, imaxabs \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -68,55 +68,55 @@ _POSIX_C_SOURCE\ >=\ 200112L; or .I cc\ -std=c99 .ad -.SH ÀâÌÀ +.SH 説明 .BR abs () -´Ø¿ô¤Ï¡¢À°¿ô¤Î°ú¿ô \fIj\fP ¤ÎÀäÂÐÃͤò·×»»¤¹¤ë¡£ +関数は、整数の引数 \fIj\fP の絶対値を計算する。 .BR labs (), .BR llabs (), .BR imaxabs () -´Ø¿ô¤Ï¡¢ -¤½¤ì¤¾¤ì¤Î´Ø¿ô¤Î·¿¤Ë±þ¤¸¤¿°ú¿ô \fIj\fP ¤ÎÀäÂÐÃͤò·×»»¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -¤½¤ì¤¾¤ì¤Î´Ø¿ô¤Î·¿¤Ë±þ¤¸¤¿À°¿ô¤Î°ú¿ô¤ÎÀäÂÐÃͤòÊÖ¤¹¡£ -.SH ½àµò +関数は、 +それぞれの関数の型に応じた引数 \fIj\fP の絶対値を計算する。 +.SH 返り値 +それぞれの関数の型に応じた整数の引数の絶対値を返す。 +.SH 準拠 SVr4, POSIX.1-2001, 4.3BSD, C99. -.\" POSIX.1 (1996 ǯÈÇ) ¤Ï +.\" POSIX.1 (1996 年版) は .\" .BR abs () -.\" ´Ø¿ô¤Î¤ß¤òÍ׵ᤷ¤Æ¤¤¤ë¡£ -C89 ¤Ï +.\" 関数のみを要求している。 +C89 は .BR abs () -´Ø¿ô¤È +関数と .BR labs () -´Ø¿ô¤Î¤ß¤ò´Þ¤ó¤Ç¤¤¤ë¡£ +関数のみを含んでいる。 .BR llabs () -´Ø¿ô¤È +関数と .BR imaxabs () -´Ø¿ô¤Ï C99 ¤ÇÄɲ䵤줿¡£ -.SH Ãí°Õ -ºÇÂç¤ÎÉéÀ°¿ô¤ÎÀäÂÐÃͤϡ¢ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +関数は C99 で追加された。 +.SH 注意 +最大の負整数の絶対値は、定義されていない。 .PP .BR llabs () -´Ø¿ô¤Ï¥Ð¡¼¥¸¥ç¥ó 2.0 ¤«¤é glibc ¤Ë´Þ¤Þ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤¬¡¢ -libc5 ¤ä libc4 ¤Ë¤Ï¤Ê¤¤¡£ +関数はバージョン 2.0 から glibc に含まれるようになったが、 +libc5 や libc4 にはない。 .BR imaxabs () -´Ø¿ô¤Ï ¥Ð¡¼¥¸¥ç¥ó 2.1.1 ¤«¤é glibc ¤Ë´Þ¤Þ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ +関数は バージョン 2.1.1 から glibc に含まれるようになった。 .PP .BR llabs () -¤¬Àë¸À¤µ¤ì¤ë¤¿¤á¤Ë¤Ï¡¢É¸½à¥Ø¥Ã¥À¤ò include ¤¹¤ëÁ°¤Ë -\fB_ISOC99_SOURCE\fP ¤« \fB_ISOC9X_SOURCE\fP(¤É¤Á¤é¤«¤Ï glibc ¤Î -¥Ð¡¼¥¸¥ç¥ó¤Ë°Í¸¤¹¤ë)¤ò define ¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¡£ +が宣言されるためには、標準ヘッダを include する前に +\fB_ISOC99_SOURCE\fP か \fB_ISOC9X_SOURCE\fP(どちらかは glibc の +バージョンに依存する)を define しておく必要がある。 .PP -GCC ¤Ï +GCC は .BR abs () -¤È +と .BR labs () -¤ò¥Ó¥ë¥É¥¤¥ó´Ø¿ô¤È¤·¤Æ°·¤¦¡£ -GCC 3.0 ¤Ï +をビルドイン関数として扱う。 +GCC 3.0 は .BR llabs () -¤È +と .BR imaxabs () -¤â¥Ó¥ë¥É¥¤¥ó¤È¤·¤Æ°·¤¦¡£ -.SH ´ØÏ¢¹àÌÜ +もビルドインとして扱う。 +.SH 関連項目 .BR cabs (3), .BR ceil (3), .BR fabs (3), diff --git a/release/man3/acos.3 b/release/man3/acos.3 index 9e4612fe..55e31d93 100644 --- a/release/man3/acos.3 +++ b/release/man3/acos.3 @@ -40,9 +40,9 @@ .\" Updated 2008-09-14, Akihiro MOTOKI .\" .TH ACOS 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -acos, acosf, acosl \- µÕ;¸¹¡Êarc cosine¡Ë´Ø¿ô -.SH ½ñ¼° +.SH 名前 +acos, acosf, acosl \- 逆余弦(arc cosine)関数 +.SH 書式 .nf .B #include .sp @@ -51,12 +51,12 @@ acos, acosf, acosl \- .BI "long double acosl(long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -70,49 +70,49 @@ or .I cc\ -std=c99 .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR acos () -´Ø¿ô¤Ï \fIx\fP ¤ÎµÕ;¸¹¡Êarc cosine) ¤ò·×»»¤¹¤ë¡£ -¤¹¤Ê¤ï¤Á¡¢¤½¤Î;¸¹ (cosine) ¤¬ \fIx\fP ¤È¤Ê¤ëÃͤǤ¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +関数は \fIx\fP の逆余弦(arc cosine) を計算する。 +すなわち、その余弦 (cosine) が \fIx\fP となる値である。 +.SH 返り値 +成功すると、これらの関数は .I x -¤ÎµÕ;¸¹¤ò¥é¥¸¥¢¥óñ°Ì¤ÇÊÖ¤¹¡£ -ÊÖ¤êÃÍ¤Ï [0,\ pi] ¤ÎÈϰϤȤʤ롣 +の逆余弦をラジアン単位で返す。 +返り値は [0,\ pi] の範囲となる。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬ +1 ¤Î¾ì¹ç¡¢+0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +1 の場合、+0 が返される。 .I x -¤¬Àµ¤Î̵¸ÂÂ礫Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大か負の無限大の場合、 +領域エラー (domain error) が発生し、NaN が返される。 .I x -¤¬ [\-1,\ 1] ¤ÎÈϰϤËÆþ¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +が [\-1,\ 1] の範囲に入っていない場合、 +領域エラー (domain error) が発生し、NaN が返される。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬ [\-1,\ 1] ¤ÎÈϰϤËÆþ¤Ã¤Æ¤¤¤Ê¤¤ +領域エラー (domain error): \fIx\fP が [\-1,\ 1] の範囲に入っていない .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë¡£ -̵¸ú (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +無効 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ -.SH ½àµò +が上がる。 +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 +.SH 関連項目 .BR asin (3), .BR atan (3), .BR atan2 (3), diff --git a/release/man3/acosh.3 b/release/man3/acosh.3 index 5d9f99ea..f4c8a187 100644 --- a/release/man3/acosh.3 +++ b/release/man3/acosh.3 @@ -40,9 +40,9 @@ .\" Updated 2008-09-14, Akihiro MOTOKI .\" .TH ACOSH 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -acosh, acoshf, acoshl \- µÕÁжÊÀþ;¸¹¡Êinverse hyperbolic cosine¡Ë´Ø¿ô -.SH ½ñ¼° +.SH 名前 +acosh, acoshf, acoshl \- 逆双曲線余弦(inverse hyperbolic cosine)関数 +.SH 書式 .nf .B #include .sp @@ -53,12 +53,12 @@ acosh, acoshf, acoshl \- .BI "long double acoshl(long double " x ); .sp .fi -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -82,49 +82,49 @@ or .I cc\ -std=c99 .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR acosh () -´Ø¿ô¤Ï \fIx\fP ¤ÎµÕÁжÊÀþ;¸¹¡Êinverse hyperbolic cosine¡Ë¤ò -·×»»¤¹¤ë¡£ -¤¹¤Ê¤ï¤Á¡¢¤½¤ÎÁжÊÀþ;¸¹¡Êhyperbolic cosine¡Ë¤¬ \fIx\fP ¤Ë -¤Ê¤ë¤è¤¦¤ÊÃͤǤ¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +関数は \fIx\fP の逆双曲線余弦(inverse hyperbolic cosine)を +計算する。 +すなわち、その双曲線余弦(hyperbolic cosine)が \fIx\fP に +なるような値である。 +.SH 返り値 +成功すると、これらの関数は .I x -¤ÎµÕÁжÊÀþ;¸¹¤òÊÖ¤¹¡£ +の逆双曲線余弦を返す。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬ +1 ¤Î¾ì¹ç¡¢+0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +1 の場合、+0 が返される。 .I x -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢Àµ¤Î̵¸ÂÂ礬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大の場合、正の無限大が返される。 .I x -¤¬ 1 ¤è¤ê¾®¤µ¤¤¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +が 1 より小さい場合、 +領域エラー (domain error) が発生し、NaN が返される。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬ 1 ¤è¤ê¾®¤µ¤¤ +領域エラー (domain error): \fIx\fP が 1 より小さい .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë¡£ -̵¸ú (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +無効 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ -.SH ½àµò +が上がる。 +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 +.SH 関連項目 .BR asinh (3), .BR atanh (3), .BR cacosh (3), diff --git a/release/man3/addseverity.3 b/release/man3/addseverity.3 index cd8044b7..288277a6 100644 --- a/release/man3/addseverity.3 +++ b/release/man3/addseverity.3 @@ -9,12 +9,12 @@ .\" Translated Thu Jul 1 01:12:35 JST 2004 .\" by Yuichi SATO .\" -.\"WORD: severity class ½ÅÂçÅÙ +.\"WORD: severity class 重大度 .\" .TH ADDSEVERITY 3 2008-06-14 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -addseverity \- ¿·¤·¤¤½ÅÂçÅÙ (severity class) ¤òƳÆþ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +addseverity \- 新しい重大度 (severity class) を導入する +.SH 書式 .nf .sp .B #include @@ -23,58 +23,58 @@ addseverity \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR addseverity (): _SVID_SOURCE -.SH ÀâÌÀ -¤³¤Î´Ø¿ô¤Ë¤è¤ê¡¢¿·¤·¤¤½ÅÂçÅÙ¤òƳÆþ¤Ç¤­¤ë¡£ -¤³¤Î½ÅÂçÅ٤ϡ¢ +.SH 説明 +この関数により、新しい重大度を導入できる。 +この重大度は、 .BR fmtmsg (3) -´Ø¿ô¤Î +関数の .I severity -°ú¤­¿ô¤ËÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¸å¼Ô¤Î +引き数に入れることができる。 +デフォルトでは、後者の .BR fmtmsg (3) -´Ø¿ô¤Ï½ÅÂçÅÙ 0-4 (ʸ»úÎó¤Ç¤Ï (none), HALT, ERROR, WARNING, INFO) ¤Î -¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ëÊýË¡¤·¤«ÃΤé¤Ê¤¤¡£ -¤³¤Î +関数は重大度 0-4 (文字列では (none), HALT, ERROR, WARNING, INFO) の +メッセージを表示する方法しか知らない。 +この .BR addseverity (3) -¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤ê¡¢»ØÄꤵ¤ì¤¿Ê¸»úÎó +の呼び出しにより、指定された文字列 .I s -¤Ë»ØÄꤵ¤ì¤¿ÃÍ +に指定された値 .I severity -¤òÉղ乤롣 +を付加する。 .I s -¤¬ NULL ¤Î¾ì¹ç¡¢¿ôÃÍ +が NULL の場合、数値 .I severity -¤Î½ÅÂçÅÙ¤¬ºï½ü¤µ¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Î½ÅÂçÅ٤Τɤ줫¤ò¾å½ñ¤­¤·¤¿¤êºï½ü¤·¤¿¤ê¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -½ÅÂçÅÙ¤ÎÃͤÏÉé¤Ç¤Ê¤¤¿ô¤È¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ÃÍ +の重大度が削除される。 +デフォルトの重大度のどれかを上書きしたり削除したりすることはできない。 +重大度の値は負でない数としなければならない。 +.SH 返り値 +成功した場合、値 .B MM_OK -¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ÊÖ¤êÃÍ¤Ï +が返される。 +エラーの場合、返り値は .B MM_NOTOK -¤Ç¤¢¤ë¡£ -µ¯¤³¤ë²ÄǽÀ­¤¬¤¢¤ë¥¨¥é¡¼¤Ë¤Ï¡¢°Ê²¼¤Î¤â¤Î¤¬´Þ¤Þ¤ì¤ë: -¥á¥â¥ê¤ò»È¤¤²Ì¤¿¤·¤¿¡£ -¸ºß¤·¤Ê¤¤½ÅÂçÅÙ¤Þ¤¿¤Ï¥Ç¥Õ¥©¥ë¥È¤Î½ÅÂçÅÙ¤òºï½ü¤·¤è¤¦¤È¤·¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +である。 +起こる可能性があるエラーには、以下のものが含まれる: +メモリを使い果たした。 +存在しない重大度またはデフォルトの重大度を削除しようとした。 +.SH バージョン .BR addseverity () -¤Ï¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò +はバージョン 2.1 以降の glibc で提供されている。 +.SH 準拠 .BR fmtmsg (3) -´Ø¿ô¤Ï X/Open Portability Guide ¤Ë»ØÄꤵ¤ì¤Æ¤¤¤ë¤¬¡¢ -¤³¤Î´Ø¿ô¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤³¤Î´Ø¿ô¤Ï System V ¥·¥¹¥Æ¥à¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -¿·¤·¤¤½ÅÂçÅ٤ϡ¢´Ä¶­ÊÑ¿ô +関数は X/Open Portability Guide に指定されているが、 +この関数は指定されていない。 +この関数は System V システムで利用可能である。 +.SH 注意 +新しい重大度は、環境変数 .B SEV_LEVEL -¤òÀßÄꤹ¤ë¤³¤È¤ÇÄɲ乤뤳¤È¤â¤Ç¤­¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を設定することで追加することもできる。 +.SH 関連項目 .BR fmtmsg (3) diff --git a/release/man3/adjtime.3 b/release/man3/adjtime.3 index 32635866..9b26f4c6 100644 --- a/release/man3/adjtime.3 +++ b/release/man3/adjtime.3 @@ -24,114 +24,114 @@ .\" Translated 2006-07-16, Akihiro MOTOKI .\" .TH ADJTIME 3 2008-06-22 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -adjtime \- ¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤ËƱ´ü¤¹¤ë»þ¹ï¤òÄ´À°¤¹¤ë -.SH ½ñ¼° +.SH 名前 +adjtime \- システムクロックに同期する時刻を調整する +.SH 書式 .nf .BI "int adjtime(const struct timeval *" delta ", struct timeval *" olddelta ); .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR adjtime (): _BSD_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR adjtime () -´Ø¿ô¤Ï +関数は .RB ( gettimeofday (2) -¤¬ÊÖ¤¹) ¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤ò½ù¡¹¤ËÄ´À°¤¹¤ë¡£ -Ä´À°¤¹¤Ù¤­¥¯¥í¥Ã¥¯¤Î»þ´ÖÎÌ¤Ï +が返す) システムクロックを徐々に調整する。 +調整すべきクロックの時間量は .I delta -¤¬»Ø¤¹¹½Â¤ÂΤǻØÄꤵ¤ì¤ë¡£ -¤³¤Î¹½Â¤ÂΤϰʲ¼¤Î·Á¤Ç¤¢¤ë: +が指す構造体で指定される。 +この構造体は以下の形である: .in +4n .nf struct timeval { - time_t tv_sec; /* Éà */ - suseconds_t tv_usec; /* ¥Þ¥¤¥¯¥íÉà */ + time_t tv_sec; /* 秒 */ + suseconds_t tv_usec; /* マイクロ秒 */ }; .fi .in .PP .I delta -¤ÎÄ´À°Î̤¬Àµ¤Î¾ì¹ç¡¢Ä´À°Î̤Ë㤹¤ë¤Þ¤Ç¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤ò -¾¯¤·³ä¹ç¤À¤±¥¹¥Ô¡¼¥É¥¢¥Ã¥×¤µ¤»¤ë (¤Ä¤Þ¤ê¡¢ËèÉÃ¥¯¥í¥Ã¥¯Ãͤ˾¯¤·¤À¤± -»þ¹ï¤ò²Ã»»¤¹¤ë)¡£ +の調整量が正の場合、調整量に達するまでシステムクロックを +少し割合だけスピードアップさせる (つまり、毎秒クロック値に少しだけ +時刻を加算する)。 .I delta -¤ÎÄ´À°Î̤¬Éé¤Î¾ì¹ç¡¢Æ±ÍͤÎÊýË¡¤Ç¥¯¥í¥Ã¥¯¤òÃÙ¤¯¤¹¤ë¡£ +の調整量が負の場合、同様の方法でクロックを遅くする。 .BR adjtime () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¤È¤­¤Ë°ÊÁ°¤Î +が呼び出されたときに以前の .BR adjtime () -¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤ë¥¯¥í¥Ã¥¯¤ÎÄ´À°¤¬¤Þ¤À¼Â¹ÔÃæ¤Ç¡¢¤«¤Ä¸å¤Î +の呼び出しによるクロックの調整がまだ実行中で、かつ後の .BR adjtime () -¤Î +の .I delta -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢¼Â¹ÔÃæ¤ÎÄ´À°¤ÏÄä»ß¤µ¤ì¤ë¡£ -¤·¤«¤·¡¢¤¹¤Ç¤Ë¼Â¹Ô¤µ¤ì¤¿Ä´À°¤Î¼è¤ê¾Ã¤·¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ +が NULL でない場合、実行中の調整は停止される。 +しかし、すでに実行された調整の取り消しは行われない。 .I olddelta -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が NULL でない場合、 .I olddelta -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë¡¢²áµî¤ÎÄ´À°Í×µá¤Ç¤Þ¤À´°Î»¤»¤º»Ä¤Ã¤Æ¤¤¤ë»þ´ÖÎ̤¬ -³ÊǼ¤·¤ÆÊÖ¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +が指すバッファに、過去の調整要求でまだ完了せず残っている時間量が +格納して返される。 +.SH 返り値 +成功すると、 .BR adjtime () -¤Ï 0 ¤òÊÖ¤¹¡£¼ºÇÔ¤¹¤ë¤È¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。失敗すると、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値をセットする。 +.SH エラー .TP .B EINVAL .I delta -¤Ç»ØÄꤵ¤ì¤¿Ä´À°Î̤¬µö²Ä¤µ¤ì¤¿ÈϰϤËÆþ¤Ã¤Æ¤¤¤Ê¤¤¡£ +で指定された調整量が許可された範囲に入っていない。 .TP .B EPERM -¸Æ¤Ó½Ð¤·¼Ô¤¬»þ¹ï¤òÄ´À°¤¹¤ë¤Î¤ËɬÍפʸ¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -Linux ¤Ç¤Ï +呼び出し者が時刻を調整するのに必要な権限を持っていない。 +Linux では .B CAP_SYS_TIME -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ -.SH ½àµò +ケーパビリティが必要である。 +.SH 準拠 4.3BSD, System V. -.SH Ãí°Õ +.SH 注意 .BR adjtime () -¤¬¹Ô¤¦¥¯¥í¥Ã¥¯¤ÎÄ´À°¤Ï¡¢¥¯¥í¥Ã¥¯¤Ï¾ï¤ËñĴÁý²Ã¤¹¤ë¤È¤¤¤¦ÈÏ°ÏÆâ¤Ç -¼Â¹Ô¤µ¤ì¤ë¡£ +が行うクロックの調整は、クロックは常に単調増加するという範囲内で +実行される。 .BR adjtime () -¤ò»È¤Ã¤Æ»þ¹ï¤òÄ´À°¤¹¤ë¤³¤È¤Ç¡¢¥·¥¹¥Æ¥à¥¿¥¤¥à¤ÎÆÍÁ³¤ÎÀµ¤äÉé¤Î¥¸¥ã¥ó¥× -¤Ë¤è¤ê¡¢¤¤¤¯¤Ä¤«¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó (Î㤨¤Ð +を使って時刻を調整することで、システムタイムの突然の正や負のジャンプ +により、いくつかのアプリケーション (例えば .BR make (1) -¤Ê¤É) ¤Ëµ¯¤³¤ëÌäÂê¤òËɤ°¤³¤È¤¬¤Ç¤­¤ë¡£ +など) に起こる問題を防ぐことができる。 .BR adjtime () -¤Ï¥·¥¹¥Æ¥à»þ¹ï¤Ë¾¯¤·¤º¤ÄÄ´À°¤ò¹Ô¤¦¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¤³¤È¤ò´üÂÔ¤µ¤ì¤Æ¤¤¤ë¡£ -¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +はシステム時刻に少しずつ調整を行うために使用されることを期待されている。 +ほとんどのシステムでは、 .I delta -¤Ë»ØÄê¤Ç¤­¤ëÄ´À°Î̤ËÀ©¸Â¤ò²Ý¤·¤Æ¤¤¤ë¡£ -glibc ¤Î¼ÂÁõ¤Ç¤Ï¡¢ +に指定できる調整量に制限を課している。 +glibc の実装では、 .I delta -¤Ï (INT_MIN / 1000000 + 2) °Ê¾å (INT_MAX / 1000000 \- 2) °Ê²¼ -(i386 ¤Ç¤Ï \-2145 °Ê¾å 2145 °Ê²¼) ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ¥Ð¥° -¤º¤Ã¤ÈÀΤ«¤é¡¢ +は (INT_MIN / 1000000 + 2) 以上 (INT_MAX / 1000000 \- 2) 以下 +(i386 では \-2145 以上 2145 以下) でなければならない。 +.SH バグ +ずっと昔から、 .\" http://sourceware.org/bugzilla/show_bug?id=2449 .\" http://bugzilla.kernel.org/show_bug.cgi?id=6761 .I delta -¤Ë NULL ¤ò»ØÄꤹ¤ë¤È¡¢Ì¤´°Î»¤Î¥¯¥í¥Ã¥¯Ä´À°¤Ë´Ø¤¹¤ëÍ­¸ú¤Ê¾ðÊó¤¬ +に NULL を指定すると、未完了のクロック調整に関する有効な情報が .I olddelta -¤ËÊÖ¤µ¤ì¤Ê¤¤¤È¤¤¤¦¥Ð¥°¤¬¤¢¤Ã¤¿ (¤³¤Î¾ì¹ç¡¢ +に返されないというバグがあった (この場合、 .BR adjtime () -¤Ï¡¢Ì¤´°Î»¤Î¥¯¥í¥Ã¥¯Ä´À°¤Ë´Ø¤¹¤ë¾ðÊó¤ò¡¢Êѹ¹¤»¤º¤ËÊÖ¤¹¤Ù¤­¤Ç¤¢¤ë)¡£ -¤³¤Î¥Ð¥°¤Ï¡¢ -.\" adjtimex() ¤Î¿·¤·¤¤¥Õ¥é¥° ADJ_OFFSET_SS_READ ¤Î¤ª¤«¤²¤À¡£ -glibc 2.8 °Ê¹ß¤Ç¡¢Linux ¥«¡¼¥Í¥ë 2.6.26 °Ê¹ß¤Î¥·¥¹¥Æ¥à¤Ç½¤Àµ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +は、未完了のクロック調整に関する情報を、変更せずに返すべきである)。 +このバグは、 +.\" adjtimex() の新しいフラグ ADJ_OFFSET_SS_READ のおかげだ。 +glibc 2.8 以降で、Linux カーネル 2.6.26 以降のシステムで修正されている。 +.SH 関連項目 .BR adjtimex (2), .BR gettimeofday (2), .BR time (7) diff --git a/release/man3/aio_cancel.3 b/release/man3/aio_cancel.3 index add8196e..cd5cfbc7 100644 --- a/release/man3/aio_cancel.3 +++ b/release/man3/aio_cancel.3 @@ -26,67 +26,67 @@ .\" by Yuichi SATO .\" .TH AIO_CANCEL 3 2003-11-14 "" "Linux Programmer's Manual" -.SH ̾Á° -aio_cancel \- ´°Î»¤·¤Æ¤¤¤Ê¤¤ÈóƱ´ü I/O ¥ê¥¯¥¨¥¹¥È¤ò¥­¥ã¥ó¥»¥ë¤¹¤ë -.SH ½ñ¼° +.SH 名前 +aio_cancel \- 完了していない非同期 I/O リクエストをキャンセルする +.SH 書式 .B "#include " .sp .BI "int aio_cancel(int " fd ", struct aiocb *" aiocbp ); .sp -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lrt\fP でリンクする。 +.SH 説明 .BR aio_cancel () -´Ø¿ô¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +関数は、ファイルディスクリプタ .I fd -¤Ë¤Ä¤¤¤Æ¤Î´°Î»¤·¤Æ¤¤¤Ê¤¤ÈóƱ´ü I/O ¥ê¥¯¥¨¥¹¥È¤ò¥­¥ã¥ó¥»¥ë¤·¤è¤¦¤È¤¹¤ë¡£ +についての完了していない非同期 I/O リクエストをキャンセルしようとする。 .I aiocbp -¤¬ NULL ¤Î¾ì¹ç¡¢¤½¤Î¤è¤¦¤ÊÁ´¤Æ¤Î¥ê¥¯¥¨¥¹¥È¤¬¥­¥ã¥ó¥»¥ë¤µ¤ì¤ë¡£ +が NULL の場合、そのような全てのリクエストがキャンセルされる。 .I aiocbp -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が NULL でない場合、 .I aiocbp -¤Ç»Ø¤µ¤ì¤¿À©¸æ¥Ö¥í¥Ã¥¯¤Çµ­½Ò¤µ¤ì¤¿¥ê¥¯¥¨¥¹¥È¤Î¤ß¤¬¥­¥ã¥ó¥»¥ë¤µ¤ì¤ë¡£ +で指された制御ブロックで記述されたリクエストのみがキャンセルされる。 .LP -¥­¥ã¥ó¥»¥ë¤µ¤ì¤¿¥ê¥¯¥¨¥¹¥È¤ËÂФ·¤Æ¡¢Ä̾ï¤ÎÈóƱ´üÄÌÃΤ¬µ¯¤³¤ë¡£ -¥ê¥¯¥¨¥¹¥È¤ÎÊÖ¤êÃÍ¤Ï \-1 ¤ËÀßÄꤵ¤ì¡¢ -¥ê¥¯¥¨¥¹¥È¤Î¥¨¥é¡¼¾õÂÖ¤Ï +キャンセルされたリクエストに対して、通常の非同期通知が起こる。 +リクエストの返り値は \-1 に設定され、 +リクエストのエラー状態は .B ECANCELED -¤ËÀßÄꤵ¤ì¤ë¡£ -¥­¥ã¥ó¥»¥ë¤Ç¤­¤Ê¤«¤Ã¤¿¥ê¥¯¥¨¥¹¥È¤ÎÀ©¸æ¥Ö¥í¥Ã¥¯¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +に設定される。 +キャンセルできなかったリクエストの制御ブロックは変更されない。 .LP .I aiocbp -¤¬ NULL ¤Ç¤Ê¤¯¡¢¤«¤Ä +が NULL でなく、かつ .I fd -¤¬ÈóƱ´üÁàºî¤¬³«»Ï¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤È°Û¤Ê¤ë¾ì¹ç¡¢ -À¸¤¸¤ë·ë²Ì¤ÏÉÔÄê¤Ç¤¢¤ë¡£ +が非同期操作が開始されたファイルディスクリプタと異なる場合、 +生じる結果は不定である。 .LP -¤É¤ÎÁàºî¤ò¥­¥ã¥ó¥»¥ë¤Ç¤­¤ë¤«¤Ï¡¢¼ÂÁõÄêµÁ¤Ç¤¢¤ë¡£ -.\" FreeBSD: raw ¥Ç¥£¥¹¥¯¥Ç¥Ð¥¤¥¹¤Ø¤Î¥ê¥¯¥¨¥¹¥È¤Ï¥­¥ã¥ó¥»¥ë¤Ç¤­¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -Á´¤Æ¤Î¥ê¥¯¥¨¥¹¥È¤Î¥­¥ã¥ó¥»¥ë¤¬À®¸ù¤·¤¿¾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï +どの操作をキャンセルできるかは、実装定義である。 +.\" FreeBSD: raw ディスクデバイスへのリクエストはキャンセルできない。 +.SH 返り値 +全てのリクエストのキャンセルが成功した場合、この関数は .B AIO_CANCELED -¤òÊÖ¤¹¡£ -»ØÄꤵ¤ì¤¿¥ê¥¯¥¨¥¹¥È¤Î¤¦¤Á¾¯¤Ê¤¯¤È¤â 1 ¤Ä¤¬¿Ê¹ÔÃæ¤Ç¤¢¤ë¤¿¤á¤Ë -¥­¥ã¥ó¥»¥ë¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ +を返す。 +指定されたリクエストのうち少なくとも 1 つが進行中であるために +キャンセルできなかった場合は、 .B AIO_NOTCANCELED -¤¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤Î¾ì¹ç¤Ï¡¢ +が返される。 +この場合は、 .BR aio_error (3) -¤ò»È¤Ã¤Æ¸Ä¡¹¤Î¥ê¥¯¥¨¥¹¥È¤Î¾õÂÖ¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¸Æ¤Ó½Ð¤µ¤ì¤ëÁ°¤ËÁ´¤Æ¤Î¥ê¥¯¥¨¥¹¥È¤¬´°Î»¤·¤Æ¤¤¤¿¾ì¹ç¡¢ -¤³¤Î´Ø¿ô¤Ï +を使って個々のリクエストの状態をチェックすることができる。 +呼び出される前に全てのリクエストが完了していた場合、 +この関数は .B AIO_ALLDONE -¤òÊÖ¤¹¡£ -²¿¤é¤«¤Î¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Ï¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +を返す。 +何らかのエラーが起こった場合は、\-1 が返されて、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EBADF .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ -.SH ½àµò +が有効なファイルディスクリプタでない。 +.SH 準拠 POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR aio_error (3), .BR aio_fsync (3), .BR aio_read (3), diff --git a/release/man3/aio_error.3 b/release/man3/aio_error.3 index 3eb31897..8cda2294 100644 --- a/release/man3/aio_error.3 +++ b/release/man3/aio_error.3 @@ -26,45 +26,45 @@ .\" by Yuichi SATO .\" .TH AIO_ERROR 3 2003-11-14 "" "Linux Programmer's Manual" -.SH ̾Á° -aio_error \- ÈóƱ´ü I/O Áàºî¤Î¥¨¥é¡¼¾õÂÖ¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +aio_error \- 非同期 I/O 操作のエラー状態を取得する +.SH 書式 .B "#include " .sp .BI "int aio_error(const struct aiocb *" aiocbp ); .sp -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lrt\fP でリンクする。 +.SH 説明 .BR aio_error () -´Ø¿ô¤Ï +関数は .I aiocbp -¤Ç»Ø¤µ¤ì¤¿À©¸æ¥Ö¥í¥Ã¥¯¤Ç¤ÎÈóƱ´ü I/O ¥ê¥¯¥¨¥¹¥È¤Î¥¨¥é¡¼¾õÂÖ¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -¥ê¥¯¥¨¥¹¥È¤¬¤Þ¤À´°Î»¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï +で指された制御ブロックでの非同期 I/O リクエストのエラー状態を返す。 +.SH 返り値 +リクエストがまだ完了していない場合、この関数は .B EINPROGRESS -¤òÊÖ¤¹¡£¥ê¥¯¥¨¥¹¥È¤¬¥­¥ã¥ó¥»¥ë¤µ¤ì¤¿¾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï +を返す。リクエストがキャンセルされた場合、この関数は .B ECANCELED -¤òÊÖ¤¹¡£¥ê¥¯¥¨¥¹¥È¤¬À®¸ù¤·¤Æ´°Î»¤·¤¿¾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï 0 ¤òÊÖ¤¹¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¥¨¥é¡¼Ãͤ¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤Î¥¨¥é¡¼Ãͤϡ¢Æ±´ü +を返す。リクエストが成功して完了した場合、この関数は 0 を返す。 +それ以外の場合はエラー値が返される。 +このエラー値は、同期 .IR read , .IR write , .IR fsync , .I fdatasync -¥ê¥¯¥¨¥¹¥È¤Î¾ì¹ç¤Ë +リクエストの場合に .I errno -¤Ë³ÊǼ¤µ¤ì¤ë¤Î¤ÈƱ¤¸ÃͤǤ¢¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï¥¨¥é¡¼Ãͤ¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +に格納されるのと同じ値である。 +エラーの場合はエラー値が返される。 +.SH エラー .TP .B EINVAL .I aiocbp -¤¬¡¢¤Þ¤ÀÊÖ¤êÃÍ (return status) +が、まだ返り値 (return status) .RB ( aio_return (3) -¤ò»²¾È) ¤¬¼èÆÀ¤µ¤ì¤Æ¤¤¤Ê¤¤ÈóƱ´ü I/O ¥ê¥¯¥¨¥¹¥È¤ÎÀ©¸æ¥Ö¥í¥Ã¥¯¤ò»Ø¤·¤Æ¤¤¤Ê¤¤¡£ -.SH ½àµò +を参照) が取得されていない非同期 I/O リクエストの制御ブロックを指していない。 +.SH 準拠 POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR aio_cancel (3), .BR aio_fsync (3), .BR aio_read (3), diff --git a/release/man3/aio_fsync.3 b/release/man3/aio_fsync.3 index 697d95a5..0cb3dac5 100644 --- a/release/man3/aio_fsync.3 +++ b/release/man3/aio_fsync.3 @@ -26,72 +26,72 @@ .\" by Yuichi SATO .\" .TH AIO_FSYNC 3 2003-11-14 "" "Linux Programmer's Manual" -.SH ̾Á° -aio_fsync \- ÈóƱ´ü¥Õ¥¡¥¤¥ë¤òƱ´ü¤µ¤»¤ë -.SH ½ñ¼° +.SH 名前 +aio_fsync \- 非同期ファイルを同期させる +.SH 書式 .B "#include " .sp .BI "int aio_fsync(int " op ", struct aiocb *" aiocbp ); .sp -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lrt\fP でリンクする。 +.SH 説明 .BR aio_fsync () -´Ø¿ô¤Ï¡¢ +関数は、 .I aiocbp\->aio_fildes -¤Ç´ØÏ¢ÉÕ¤±¤é¤ì¤Æ¤¤¤ë¤Þ¤À´°Î»¤·¤Æ¤¤¤Ê¤¤Á´¤Æ¤ÎÈóƱ´ü I/O Áàºî¤òƱ´ü¤µ¤»¤ë¡£ +で関連付けられているまだ完了していない全ての非同期 I/O 操作を同期させる。 .LP -¤è¤êÀµ³Î¤Ë¸À¤¦¤È¡¢ +より正確に言うと、 .I op -¤¬ +が .B O_SYNC -¤Î¾ì¹ç¡¢¸½ºß¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î I/O Áàºî¤Ï¡¢ +の場合、現在キューに入れられている全ての I/O 操作は、 .BR fsync (2) -¤¬¸Æ¤Ð¤ì¤¿¤«¤Î¤è¤¦¤Ë´°Î»¤µ¤ì¤ë¤À¤í¤¦¡£ -¤Þ¤¿ +が呼ばれたかのように完了されるだろう。 +また .I op -¤¬ +が .B O_DSYNC -¤Î¾ì¹ç¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤Ï +の場合、この呼び出しは .BR fdatasync (2) -¤ÎÈóƱ´üÈǤȤʤ롣 -¤³¤Î´Ø¿ô¤Ï¥ê¥¯¥¨¥¹¥È¤ò¹Ô¤¦¤À¤±¤Ç¤¢¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È \(em -¤³¤Î¸Æ¤Ó½Ð¤·¤Ï I/O ¤Î´°Î»¤òÂÔ¤¿¤Ê¤¤¡£ +の非同期版となる。 +この関数はリクエストを行うだけである点に注意すること \(em +この呼び出しは I/O の完了を待たない。 .LP .I aiocbp -¤Ç»Ø¤µ¤ì¤ë¹½Â¤ÂΤΥե£¡¼¥ë¥É¤Î¤¦¤Á¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤Ç +で指される構造体のフィールドのうち、この呼び出しで .I aio_fildes -°Ê³°¤Ë»ÈÍѤµ¤ì¤ë¤Î¤Ï +以外に使用されるのは .I aio_sigevent -¥Õ¥£¡¼¥ë¥É (\fIstruct sigevent\fP) ¤Î¤ß¤Ç¤¢¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢´°Î»»þ¤ÎÈóƱ´üÄÌÃΤ˻ÈÍѤ·¤¿¤¤¥¿¥¤¥×¤ò¼¨¤¹¡£ -¤½¤Î¾¤Î¥Õ¥£¡¼¥ë¥É¤Ï̵»ë¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç (Ʊ´ü¥ê¥¯¥¨¥¹¥È¤ò¥­¥å¡¼¤ËÆþ¤ì¤ë¤Î¤ËÀ®¸ù¤·¤¿¾ì¹ç)¡¢ -¤³¤Î´Ø¿ô¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +フィールド (\fIstruct sigevent\fP) のみである。 +このフィールドは、完了時の非同期通知に使用したいタイプを示す。 +その他のフィールドは無視される。 +.SH 返り値 +成功した場合 (同期リクエストをキューに入れるのに成功した場合)、 +この関数は 0 を返す。 +エラーの場合、\-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EAGAIN -¥ê¥½¡¼¥¹¤¬Â­¤ê¤Ê¤¤¡£ +リソースが足りない。 .TP .B EBADF .I aio_fildes -¤¬½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤¿Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ +が書き込みのためにオープンされた有効なファイルディスクリプタではない。 .TP .B EINVAL -¤³¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ëƱ´ü I/O ¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤Þ¤¿¤Ï +このファイルに対する同期 I/O がサポートされていない。 +または .I op -¤¬ +が .B O_SYNC -¤Ç¤â +でも .B O_DSYNC -¤Ç¤â¤Ê¤¤¡£ -.SH ½àµò +でもない。 +.SH 準拠 POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR aio_cancel (3), .BR aio_error (3), .BR aio_read (3), diff --git a/release/man3/aio_read.3 b/release/man3/aio_read.3 index 56ebd289..b6931624 100644 --- a/release/man3/aio_read.3 +++ b/release/man3/aio_read.3 @@ -26,100 +26,100 @@ .\" by Yuichi SATO .\" .TH AIO_READ 3 2003-11-14 "" "Linux Programmer's Manual" -.SH ̾Á° -aio_read \- ÈóƱ´ü¤ÇÆɤ߹þ¤à -.SH ½ñ¼° +.SH 名前 +aio_read \- 非同期で読み込む +.SH 書式 .B "#include " .sp .BI "int aio_read(struct aiocb *" aiocbp ); .sp -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lrt\fP でリンクする。 +.SH 説明 .BR aio_read () -´Ø¿ô¤ÏÈóƱ´ü¤Î "n = read(fd, buf, count)" ¤ò¥ê¥¯¥¨¥¹¥È¤¹¤ë¡£ -¤³¤³¤Ç fd, buf, count ¤Ï¡¢¤½¤ì¤¾¤ì +関数は非同期の "n = read(fd, buf, count)" をリクエストする。 +ここで fd, buf, count は、それぞれ .IR aiocbp\->aio_fildes , .IR aiocbp\->aio_buf , .I aiocbp\->aio_nbytes -¤ÇÍ¿¤¨¤é¤ì¤ë¡£ -ÊÖ¤êÃÍ (return status) n ¤Ï¡¢´°Î»»þ¤Ë +で与えられる。 +返り値 (return status) n は、完了時に .BR aio_return (3) -¤ò»È¤Ã¤Æ¼èÆÀ¤Ç¤­¤ë¡£ +を使って取得できる。 .LP -¥Ç¡¼¥¿¤Ï¡¢¥«¥ì¥ó¥È¤Î¥Õ¥¡¥¤¥ë°ÌÃ֤˴ط¸¤Ê¤¯¡¢ÀäÂÐ¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È +データは、カレントのファイル位置に関係なく、絶対ファイルオフセット .I aiocbp\->aio_offset -¤ò³«»ÏÅÀ¤È¤·¤ÆÆɤ߹þ¤Þ¤ì¤ë¡£ -¤³¤Î¥ê¥¯¥¨¥¹¥È¸å¤Î¡¢¥«¥ì¥ó¥È¤Î¥Õ¥¡¥¤¥ë°ÌÃ֤ϵ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +を開始点として読み込まれる。 +このリクエスト後の、カレントのファイル位置は規定されていない。 .LP -¡ÖÈóƱ´ü¡×¤È¤Ï¡Ö¥ê¥¯¥¨¥¹¥È¤¬¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤¿¤é¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤Ï¤¹¤°¤ËÊÖ¤ë¡× -¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ -¸Æ¤Ó½Ð¤·¤«¤éÌá¤Ã¤¿»þ¤Ë¡¢Æɤ߹þ¤ß¤Ï´°Î»¤·¤Æ¤¤¤ë¤«¤âÃΤì¤Ê¤¤¤·¡¢ -´°Î»¤·¤Æ¤¤¤Ê¤¤¤«¤âÃΤì¤Ê¤¤¡£ +「非同期」とは「リクエストがキューに入れられたら、この呼び出しはすぐに返る」 +ということである。 +呼び出しから戻った時に、読み込みは完了しているかも知れないし、 +完了していないかも知れない。 .BR aio_error (3) -¤ò»È¤¦¤³¤È¤Ç´°Î»¤·¤¿¤«¤ò¥Æ¥¹¥È¤Ç¤­¤ë¡£ +を使うことで完了したかをテストできる。 .LP .B _POSIX_PRIORITIZED_IO -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Æ¡¢ -¤«¤Ä¥Õ¥¡¥¤¥ë¤¬¤³¤ì¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -ÈóƱ´üÁàºî¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ÎÍ¥ÀèÅÙ¤«¤é +が定義されていて、 +かつファイルがこれをサポートしている場合、 +非同期操作は呼び出したプロセスの優先度から .I aiocbp\->aio_reqprio -¤ò°ú¤¤¤¿Í¥ÀèÅÙ¤ÇÅÐÏ¿ (submit) ¤µ¤ì¤ë¡£ +を引いた優先度で登録 (submit) される。 .LP -¥Õ¥£¡¼¥ë¥É +フィールド .I aiocbp\->aio_lio_opcode -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .LP -ºÇÂ祪¥Õ¥»¥Ã¥È¤òĶ¤¨¤¿Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤«¤é¤Ï¡¢²¿¤â¥Ç¡¼¥¿¤¬Æɤ߹þ¤Þ¤ì¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢¥ê¥¯¥¨¥¹¥È¤Ï¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤º¡¢ -\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +最大オフセットを超えた通常のファイルからは、何もデータが読み込まれない。 +.SH 返り値 +成功した場合、0 が返される。 +エラーの場合、リクエストはキューに入れられず、 +\-1 が返されて、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -¥¨¥é¡¼¤ÏºÇ½é¤Ë¸¡ÃΤµ¤ì¤¿¸å¤Ç¡¢ -(¾õÂÖ \-1 ¤òÊÖ¤¹) +が適切に設定される。 +エラーは最初に検知された後で、 +(状態 \-1 を返す) .BR aio_return (3) -¤È +と .RI ( errno -¤Ç¼èÆÀ¤Ç¤­¤ë +で取得できる .B EBADF -¤Î¤è¤¦¤Ê¥¨¥é¡¼¾õÂÖ¤òÊÖ¤¹) +のようなエラー状態を返す) .BR aio_error (3) -¤ÇÊó¹ð¤µ¤ì¤ë¤À¤í¤¦¡£ -.SH ¥¨¥é¡¼ +で報告されるだろう。 +.SH エラー .TP .B EAGAIN -¥ê¥½¡¼¥¹¤¬Â­¤ê¤Ê¤¤¡£ +リソースが足りない。 .TP .B EBADF .I aio_fildes -¤ÏÆɤ߹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤¿Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +は読み込みのためにオープンされた有効なファイルディスクリプタでない。 .TP .B EINVAL .IR aio_offset , .IR aio_reqprio , .I aio_nbytes -¤Î¤¦¤Á 1 ¤Ä°Ê¾å¤¬Ìµ¸ú¤Ç¤¢¤ë¡£ +のうち 1 つ以上が無効である。 .TP .B ENOSYS -¤³¤Î´Ø¿ô¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +この関数がサポートされていない。 .TP .B EOVERFLOW -¥Õ¥¡¥¤¥ë¤¬Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤¢¤ê¡¢ -¥Õ¥¡¥¤¥ë¤Î½ªÃ¼¤ÎÁ°¤«¤éÆɤ߹þ¤ß¤ò³«»Ï¤·¤Æ¡¢ -¾¯¤Ê¤¯¤È¤â 1 ¥Ð¥¤¥È¤òÆɤ߹þ¤â¤¦¤È¤·¤¿¡£ -¤·¤«¤·³«»Ï°ÌÃÖ¤¬¤³¤Î¥Õ¥¡¥¤¥ë¤ÎºÇÂ祪¥Õ¥»¥Ã¥È¤òĶ¤¨¤Æ¤¤¤¿¡£ -.SH ½àµò +ファイルが通常のファイルであり、 +ファイルの終端の前から読み込みを開始して、 +少なくとも 1 バイトを読み込もうとした。 +しかし開始位置がこのファイルの最大オフセットを超えていた。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ -»ÈÍѤ¹¤ëÁ°¤ËÀ©¸æ¥Ö¥í¥Ã¥¯¤ò 0 ¤Ë¤·¤Æ¤ª¤¯¤Î¤Ï¡¢¤è¤¤¹Í¤¨¤Ç¤¢¤ë¡£ -¤³¤ÎÀ©¸æ¥Ö¥í¥Ã¥¯¤Ï¡¢Æɤ߹þ¤ßÁàºî¤¬¿Ê¹Ô¤·¤Æ¤¤¤ë´Ö¤ÏÊѹ¹¤¹¤Ù¤­¤Ç¤Ê¤¤¡£ -Æɤ߹þ¤Þ¤ì¤ë¥Ð¥Ã¥Õ¥¡Îΰè¤Ï -.\" ¤Þ¤¿¤ÏÁàºî¤ÎÀ©¸æ¥Ö¥í¥Ã¥¯¤Ï -Áàºî¤ÎºÇÃæ¤Ë¥¢¥¯¥»¥¹¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¤µ¤â¤Ê¤¤¤Èµ¯¤³¤ë·ë²Ì¤¬ÉÔÄê¤Ë¤Ê¤ë¡£ -¤³¤ì¤Ë´Þ¤Þ¤ì¤ë¥á¥â¥êÎΰè¤Ï¡¢Í­¸ú¤Ê¤Þ¤Þ¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +.SH 注意 +使用する前に制御ブロックを 0 にしておくのは、よい考えである。 +この制御ブロックは、読み込み操作が進行している間は変更すべきでない。 +読み込まれるバッファ領域は +.\" または操作の制御ブロックは +操作の最中にアクセスすべきではない。 +さもないと起こる結果が不定になる。 +これに含まれるメモリ領域は、有効なままにしなければならない。 +.SH 関連項目 .BR aio_cancel (3), .BR aio_error (3), .BR aio_fsync (3), diff --git a/release/man3/aio_return.3 b/release/man3/aio_return.3 index 2537f459..4687d8f9 100644 --- a/release/man3/aio_return.3 +++ b/release/man3/aio_return.3 @@ -26,43 +26,43 @@ .\" by Yuichi SATO .\" .TH AIO_RETURN 3 2003-11-14 "" "Linux Programmer's Manual" -.SH ̾Á° -aio_return \- ÈóƱ´ü I/O Áàºî¤ÎÊÖ¤êÃÍ (return status) ¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +aio_return \- 非同期 I/O 操作の返り値 (return status) を取得する +.SH 書式 .B "#include " .sp .BI "ssize_t aio_return(struct aiocb *" aiocbp ); .sp -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lrt\fP でリンクする。 +.SH 説明 .BR aio_return () -´Ø¿ô¤Ï +関数は .I aiocbp -¤Ç»Ø¤µ¤ì¤¿À©¸æ¥Ö¥í¥Ã¥¯¤Ë¤ª¤±¤ëÈóƱ´ü I/O ¥ê¥¯¥¨¥¹¥È¤ÎºÇ½ªÅª¤ÊÊÖ¤êÃͤòÊÖ¤¹¡£ +で指された制御ブロックにおける非同期 I/O リクエストの最終的な返り値を返す。 .LP -¤³¤Î´Ø¿ô¤Ï¡¢ +この関数は、 .BR aio_error (3) -¤¬ +が .B EINPROGRESS -°Ê³°¤òÊÖ¤·¤¿¸å¤Ç¡¢ -Í¿¤¨¤é¤ì¤¿¥ê¥¯¥¨¥¹¥È¤ËÂФ·¤Æ 1 ²ó¤À¤±¸Æ¤Ð¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -ÈóƱ´ü I/O Áàºî¤¬´°Î»¤·¤¿¾ì¹ç¡¢¤³¤Î´Ø¿ô¤ÏƱ´ü +以外を返した後で、 +与えられたリクエストに対して 1 回だけ呼ばれるべきである。 +.SH 返り値 +非同期 I/O 操作が完了した場合、この関数は同期 .IR read , .IR write , .I fsync -¥ê¥¯¥¨¥¹¥È¤Î¤È¤­¤ËÊÖ¤µ¤ì¤ë¤Î¤ÈƱ¤¸ÃͤòÊÖ¤¹¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢ÊÖ¤êÃͤÏ̤ÄêµÁ¤Ç¤¢¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢¥¨¥é¡¼Ãͤ¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +リクエストのときに返されるのと同じ値を返す。 +それ以外の場合、返り値は未定義である。 +エラーの場合、エラー値が返される。 +.SH エラー .TP .B EINVAL .I aiocbp -¤¬¡¢ÊÖ¤êÃͤ¬¤Þ¤À¼èÆÀ¤µ¤ì¤Æ¤¤¤Ê¤¤ÈóƱ´ü I/O ¥ê¥¯¥¨¥¹¥È¤Î -À©¸æ¥Ö¥í¥Ã¥¯¤ò»Ø¤·¤Æ¤¤¤Ê¤¤¡£ -.SH ½àµò +が、返り値がまだ取得されていない非同期 I/O リクエストの +制御ブロックを指していない。 +.SH 準拠 POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR aio_cancel (3), .BR aio_error (3), .BR aio_fsync (3), diff --git a/release/man3/aio_suspend.3 b/release/man3/aio_suspend.3 index 470d1124..44df0308 100644 --- a/release/man3/aio_suspend.3 +++ b/release/man3/aio_suspend.3 @@ -26,9 +26,9 @@ .\" by Yuichi SATO .\" .TH AIO_SUSPEND 3 2003-11-14 "" "Linux Programmer's Manual" -.SH ̾Á° -aio_suspend \- ÈóƱ´ü I/O Áàºî¤Þ¤¿¤Ï¥¿¥¤¥à¥¢¥¦¥È¤òÂÔ¤Ä -.SH ½ñ¼° +.SH 名前 +aio_suspend \- 非同期 I/O 操作またはタイムアウトを待つ +.SH 書式 .nf .sp .B "#include " @@ -37,52 +37,52 @@ aio_suspend \- .br .BI " int " n ", const struct timespec *" timeout ); .sp -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP でリンクする。 .fi -.SH ÀâÌÀ +.SH 説明 .BR aio_suspend () -´Ø¿ô¤Ï¡¢Ä¹¤µ +関数は、長さ .I n -¤Î¥ê¥¹¥È +のリスト .I cblist -¤Ë´Þ¤Þ¤ì¤ëÈóƱ´ü I/O ¥ê¥¯¥¨¥¹¥È¤Î¤¦¤Á¾¯¤Ê¤¯¤È¤â 1 ¤Ä¤¬´°Î»¤¹¤ë¤«¡¢ -¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ë¤«¡¢ +に含まれる非同期 I/O リクエストのうち少なくとも 1 つが完了するか、 +シグナルが配送されるか、 .I timeout -¤¬ NULL ¤Ç¤Ê¤¯¡¢¤«¤Ä¤½¤Î»þ´Ö¤¬²á¤®¤ë¤Þ¤Ç¡¢ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤òÄä»ß (suspend) ¤¹¤ë¡£ +が NULL でなく、かつその時間が過ぎるまで、 +呼び出したプロセスを停止 (suspend) する。 .LP -¥ê¥¹¥È¤Î³Æ¥¢¥¤¥Æ¥à¤Ï¡¢NULL (¤³¤ì¤Ï̵»ë¤µ¤ì¤ë) ¤«¡¢ +リストの各アイテムは、NULL (これは無視される) か、 .BR aio_read (3), .BR aio_write (3), .BR lio_listio (3) -¤ò»È¤Ã¤Æ I/O ¤¬³«»Ï¤µ¤ì¤¿À©¸æ¥Ö¥í¥Ã¥¯¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を使って I/O が開始された制御ブロックへのポインタでなければならない。 .LP .B CLOCK_MONOTONIC -¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤ë¾ì¹ç¡¢ -¤³¤Î¥¯¥í¥Ã¥¯¤ò»È¤Ã¤Æ¥¿¥¤¥à¥¢¥¦¥È¤Î´Ö³Ö¤¬·×¬¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -»Ø¼¨¤µ¤ì¤¿¥ê¥¯¥¨¥¹¥È¤Î 1 ¤Ä¤¬´°Î»¤·¤¿¸å¤Ë¤³¤Î´Ø¿ô¤¬ÊÖ¤ë¾ì¹ç¤Ï¡¢0 ¤òÊÖ¤¹¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¤Æ¡¢ +がサポートされる場合、 +このクロックを使ってタイムアウトの間隔が計測される。 +.SH 返り値 +指示されたリクエストの 1 つが完了した後にこの関数が返る場合は、0 を返す。 +それ以外の場合は \-1 を返して、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切に設定する。 +.SH エラー .TP .B EAGAIN -»Ø¼¨¤µ¤ì¤¿Áàºî¤Î¤É¤ì¤â´°Î»¤·¤Ê¤¤¤¦¤Á¤Ë¡¢ -¤³¤Î¸Æ¤Ó½Ð¤·¤¬¥¿¥¤¥à¥¢¥¦¥È¤Ë¤è¤Ã¤Æ½ªÎ»¤µ¤»¤é¤ì¤¿¡£ +指示された操作のどれも完了しないうちに、 +この呼び出しがタイムアウトによって終了させられた。 .TP .B EINTR -¤³¤Î¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤Æ½ªÎ»¤µ¤»¤é¤ì¤¿¡£ +この呼び出しがシグナルによって終了させられた。 .BR signal (7) -»²¾È¡£ -(¤³¤Î¥·¥°¥Ê¥ë¤Ï¡¢´°Î»¤òÂԤäƤ¤¤¿Áàºî¤Î¤¤¤º¤ì¤«¤Î´°Î»¥·¥°¥Ê¥ë¤Î²ÄǽÀ­¤â¤¢¤ë¡£) -.SH ½àµò +参照。 +(このシグナルは、完了を待っていた操作のいずれかの完了シグナルの可能性もある。) +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ -»þ´Ö´Ö³Ö¤¬ 0 ¤Ç¤¢¤ë¤³¤È¤ò»ØÄꤹ¤ë NULL ¤Ç¤Ï¤Ê¤¤ +.SH 注意 +時間間隔が 0 であることを指定する NULL ではない .I timeout -¤ò»È¤Ã¤Æ¡¢¥Ý¡¼¥ê¥ó¥°¤ò¹Ô¤¦¤³¤È¤â¤Ç¤­¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を使って、ポーリングを行うこともできる。 +.SH 関連項目 .BR aio_cancel (3), .BR aio_error (3), .BR aio_fsync (3), diff --git a/release/man3/aio_write.3 b/release/man3/aio_write.3 index 5e8d5dba..1b490e92 100644 --- a/release/man3/aio_write.3 +++ b/release/man3/aio_write.3 @@ -26,102 +26,102 @@ .\" by Yuichi SATO .\" .TH AIO_WRITE 3 2003-11-14 "" "Linux Programmer's Manual" -.SH ̾Á° -aio_write \- ÈóƱ´ü¤Ç½ñ¤­¹þ¤à -.SH ½ñ¼° +.SH 名前 +aio_write \- 非同期で書き込む +.SH 書式 .B "#include " .sp .BI "int aio_write(struct aiocb *" aiocbp ); .sp -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lrt\fP でリンクする。 +.SH 説明 .BR aio_write () -´Ø¿ô¤ÏÈóƱ´ü¤Î "n = write(fd, buf, count)" ¤ò¥ê¥¯¥¨¥¹¥È¤¹¤ë¡£ -¤³¤³¤Ç fd, buf, count ¤Ï¡¢¤½¤ì¤¾¤ì +関数は非同期の "n = write(fd, buf, count)" をリクエストする。 +ここで fd, buf, count は、それぞれ .IR aiocbp\->aio_fildes , .IR aiocbp\->aio_buf , .I aiocbp\->aio_nbytes -¤ÇÍ¿¤¨¤é¤ì¤ë¡£ -ÊÖ¤êÃÍ (return status) n ¤Ï¡¢´°Î»»þ¤Ë +で与えられる。 +返り値 (return status) n は、完了時に .BR aio_return (3) -¤ò»È¤Ã¤Æ¼èÆÀ¤Ç¤­¤ë¡£ +を使って取得できる。 .LP .B O_APPEND -¤¬ÀßÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢¥«¥ì¥ó¥È¤Î¥Õ¥¡¥¤¥ë°ÌÃ֤˴ط¸¤Ê¤¯¡¢ -¥Ç¡¼¥¿¤ÏÀäÂÐ¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È +が設定されない場合、カレントのファイル位置に関係なく、 +データは絶対ファイルオフセット .I aiocbp\->aio_offset -¤ò³«»ÏÅÀ¤È¤·¤Æ½ñ¤­¹þ¤Þ¤ì¤ë¡£ +を開始点として書き込まれる。 .B O_APPEND -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥Ç¡¼¥¿¤Ï¥Õ¥¡¥¤¥ë¤Î½ªÃ¼¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£ -¤³¤Î¥ê¥¯¥¨¥¹¥È¤Î¸å¤Î¡¢¥«¥ì¥ó¥È¤Î¥Õ¥¡¥¤¥ë°ÌÃ֤ϵ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +が設定されている場合、データはファイルの終端に書き込まれる。 +このリクエストの後の、カレントのファイル位置は規定されていない。 .LP -¡ÖÈóƱ´ü¡×¤È¤Ï¡Ö¥ê¥¯¥¨¥¹¥È¤¬¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤¿¤é¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤Ï¤¹¤°¤ËÊÖ¤ë¡× -¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ -¸Æ¤Ó½Ð¤·¤«¤éÌá¤Ã¤¿»þ¤Ë¡¢½ñ¤­¹þ¤ß¤Ï´°Î»¤·¤Æ¤¤¤ë¤«¤âÃΤì¤Ê¤¤¤·¡¢ -´°Î»¤·¤Æ¤¤¤Ê¤¤¤«¤âÃΤì¤Ê¤¤¡£ +「非同期」とは「リクエストがキューに入れられたら、この呼び出しはすぐに返る」 +ということである。 +呼び出しから戻った時に、書き込みは完了しているかも知れないし、 +完了していないかも知れない。 .BR aio_error (3) -¤ò»È¤¦¤³¤È¤Ç´°Î»¤·¤¿¤«¤ò¥Æ¥¹¥È¤Ç¤­¤ë¡£ +を使うことで完了したかをテストできる。 .LP .B _POSIX_PRIORITIZED_IO -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Æ¡¢ -¤«¤Ä¥Õ¥¡¥¤¥ë¤¬¤³¤ì¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -ÈóƱ´üÁàºî¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ÎÍ¥ÀèÅÙ¤«¤é +が定義されていて、 +かつファイルがこれをサポートしている場合、 +非同期操作は呼び出したプロセスの優先度から .I aiocbp\->aio_reqprio -¤ò°ú¤¤¤¿Í¥ÀèÅÙ¤ÇÅÐÏ¿ (submit) ¤µ¤ì¤ë¡£ +を引いた優先度で登録 (submit) される。 .LP -¥Õ¥£¡¼¥ë¥É +フィールド .I aiocbp\->aio_lio_opcode -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .LP -ºÇÂ祪¥Õ¥»¥Ã¥È¤òĶ¤¨¤¿Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢²¿¤â¥Ç¡¼¥¿¤¬½ñ¤­¹þ¤Þ¤ì¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢¥ê¥¯¥¨¥¹¥È¤Ï¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤º¡¢ -\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +最大オフセットを超えた通常のファイルには、何もデータが書き込まれない。 +.SH 返り値 +成功した場合、0 が返される。 +エラーの場合、リクエストはキューに入れられず、 +\-1 が返されて、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -¥¨¥é¡¼¤ÏºÇ½é¤Ë¸¡ÃΤµ¤ì¤¿¸å¤Ç¡¢ -(¾õÂÖ \-1 ¤òÊÖ¤¹) +が適切に設定される。 +エラーは最初に検知された後で、 +(状態 \-1 を返す) .BR aio_return (3) -¤È +と .RI ( errno -¤Ç¼èÆÀ¤Ç¤­¤ë +で取得できる .B EBADF -¤Î¤è¤¦¤Ê¥¨¥é¡¼¾õÂÖ¤òÊÖ¤¹) +のようなエラー状態を返す) .BR aio_error (3) -¤ÇÊó¹ð¤µ¤ì¤ë¤À¤í¤¦¡£ -.SH ¥¨¥é¡¼ +で報告されるだろう。 +.SH エラー .TP .B EAGAIN -¥ê¥½¡¼¥¹¤¬Â­¤ê¤Ê¤¤¡£ +リソースが足りない。 .TP .B EBADF .I aio_fildes -¤Ï½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤¿Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +は書き込みのためにオープンされた有効なファイルディスクリプタでない。 .TP .B EFBIG -¥Õ¥¡¥¤¥ë¤ÏÄ̾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤¢¤ê¡¢¾¯¤Ê¤¯¤È¤â 1 ¥Ð¥¤¥È¤ò½ñ¤­¹þ¤â¤¦¤È¤·¤Æ¤¤¤ë¡£ -¤·¤«¤·³«»Ï°ÌÃÖ¤¬¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ÎºÇÂ祪¥Õ¥»¥Ã¥È¤ÈƱ¤¸¤«¤½¤ì¤òĶ¤¨¤Æ¤¤¤ë¡£ +ファイルは通常のファイルであり、少なくとも 1 バイトを書き込もうとしている。 +しかし開始位置が、このファイルの最大オフセットと同じかそれを超えている。 .TP .B EINVAL .IR aio_offset , .IR aio_reqprio , .I aio_nbytes -¤Î¤¦¤Á 1 ¤Ä°Ê¾å¤¬Ìµ¸ú¤Ç¤¢¤ë¡£ +のうち 1 つ以上が無効である。 .TP .B ENOSYS -¤³¤Î´Ø¿ô¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ½àµò +この関数がサポートされていない。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ -»ÈÍѤ¹¤ëÁ°¤ËÀ©¸æ¥Ö¥í¥Ã¥¯¤ò 0 ¤Ë¤·¤Æ¤ª¤¯¤Î¤Ï¡¢¤è¤¤¹Í¤¨¤Ç¤¢¤ë¡£ -¤³¤ÎÀ©¸æ¥Ö¥í¥Ã¥¯¤Ï¡¢Æɤ߹þ¤ßÁàºî¤¬¿Ê¹Ô¤·¤Æ¤¤¤ë´Ö¤ÏÊѹ¹¤¹¤Ù¤­¤Ç¤Ê¤¤¡£ -Æɤ߹þ¤Þ¤ì¤ë¥Ð¥Ã¥Õ¥¡Îΰè¤Ï -.\" ¤Þ¤¿¤ÏÁàºî¤ÎÀ©¸æ¥Ö¥í¥Ã¥¯¤Ï -Áàºî¤ÎºÇÃæ¤Ë¥¢¥¯¥»¥¹¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¤µ¤â¤Ê¤¤¤Èµ¯¤³¤ë·ë²Ì¤¬ÉÔÄê¤Ë¤Ê¤ë¡£ -¤³¤ì¤Ë´Þ¤Þ¤ì¤ë¥á¥â¥êÎΰè¤Ï¡¢Í­¸ú¤Ê¤Þ¤Þ¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +.SH 注意 +使用する前に制御ブロックを 0 にしておくのは、よい考えである。 +この制御ブロックは、読み込み操作が進行している間は変更すべきでない。 +読み込まれるバッファ領域は +.\" または操作の制御ブロックは +操作の最中にアクセスすべきではない。 +さもないと起こる結果が不定になる。 +これに含まれるメモリ領域は、有効なままにしなければならない。 +.SH 関連項目 .BR aio_cancel (3), .BR aio_error (3), .BR aio_fsync (3), diff --git a/release/man3/alloca.3 b/release/man3/alloca.3 index cde5ab8f..e200df31 100644 --- a/release/man3/alloca.3 +++ b/release/man3/alloca.3 @@ -47,112 +47,112 @@ .\" Updated & Modified Sat Aug 31 04:42:49 JST 2002 by Yuichi SATO .\" .TH ALLOCA 3 2008-01-24 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -alloca \- ¼«Æ°Åª¤Ë²òÊü¤µ¤ì¤ë¥á¥â¥ê¤ò³ä¤êÅö¤Æ¤ë -.SH ½ñ¼° +.SH 名前 +alloca \- 自動的に解放されるメモリを割り当てる +.SH 書式 .B #include .sp .BI "void *alloca(size_t " size ); -.SH ÀâÌÀ +.SH 説明 .BR alloca () -´Ø¿ô¤Ï¡¢ +関数は、 .I size -¥Ð¥¤¥È¤ÎÎΰè¤ò¸Æ½Ð¸µ¤Î¥¹¥¿¥Ã¥¯¡¦¥Õ¥ì¡¼¥à¤Ë³ä¤êÉÕ¤±¤ë¡£ -¤³¤Î°ì»þŪ¤ÊÎΰè¤Ï¡¢ +バイトの領域を呼出元のスタック・フレームに割り付ける。 +この一時的な領域は、 .BR alloca () -¤ò¸Æ¤Ó½Ð¤·¤¿´Ø¿ô¤¬¸Æ½Ð¸µ¤ËÊÖ¤ë¤È¤­¤Ë¼«Æ°Åª¤Ë²òÊü¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +を呼び出した関数が呼出元に返るときに自動的に解放される。 +.SH 返り値 .BR alloca () -´Ø¿ô¤Ï¡¢³ä¤êÉÕ¤±¤¿Îΰè¤Î»Ï¤Þ¤ê¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -³ä¤êÉÕ¤±¤Ë¤è¤Ã¤Æ¥¹¥¿¥Ã¥¯¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬µ¯¤Ã¤¿¾ì¹ç¤Î -¥×¥í¥°¥é¥à¤ÎÆ°ºî¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ½àµò -¤³¤Î´Ø¿ô¤Ï POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ +関数は、割り付けた領域の始まりを指すポインタを返す。 +割り付けによってスタックオーバーフローが起った場合の +プログラムの動作は定義されていない。 +.SH 準拠 +この関数は POSIX.1-2001 にはない。 -32V, PWB, PWB.2, 3BSD, 4BSD ¤Ë +32V, PWB, PWB.2, 3BSD, 4BSD に .BR alloca () -´Ø¿ô¤¬Åо줷¤¿¾Úµò¤¬¤¢¤ë¡£ -4.3BSD ¤Ë¤Ï¡¢¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤¬¤¢¤ë¡£ -Linux ¤Ï¡¢GNU ÈǤò»È¤Ã¤Æ¤¤¤ë¡£ -¤³¤Î´Ø¿ô¤Ï POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ +関数が登場した証拠がある。 +4.3BSD には、マニュアルページがある。 +Linux は、GNU 版を使っている。 +この関数は POSIX.1-2001 にはない。 +.SH 注意 .BR alloca () -´Ø¿ô¤Ï¡¢µ¡¼ï¤È¥³¥ó¥Ñ¥¤¥é¤Ë°Í¸¤¹¤ë¡£ -ÆÃÄê¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢¤³¤Î´Ø¿ô¤ò»È¤¦¤È +関数は、機種とコンパイラに依存する。 +特定のアプリケーションでは、この関数を使うと .BR malloc (3) -¤È +と .BR free (3) -¤òÁȤ߹ç¤ï¤»¤Æ»È¤Ã¤¿¾ì¹ç¤ËÈæ¤Ù¤Æ¸úΨ¤ò²þÁ±¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -ÆÃÄê¤Î¾ì¹ç¤Ç¤Ï¡¢¤³¤Î´Ø¿ô¤ò»È¤¦¤³¤È¤Ç¡¢ +を組み合わせて使った場合に比べて効率を改善することができる。 +特定の場合では、この関数を使うことで、 .BR longjmp (3) -¤ä +や .BR siglongjmp (3) -¤ò»È¤¦¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Î¥á¥â¥ê¤Î³«Êü¤ò´Êñ¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ç¤Ï¡¢¤³¤Î´Ø¿ô¤Î»ÈÍѤϿ侩¤µ¤ì¤Ê¤¤¡£ +を使うアプリケーションでのメモリの開放を簡単にすることができる。 +それ以外の場合では、この関数の使用は推奨されない。 .BR alloca () -¤Ë¤è¤ê³ä¤êÅö¤Æ¤é¤ì¤ë¶õ´Ö¤Ï¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤«¤é³ä¤êÅö¤Æ¤é¤ë¤Î¤Ç¡¢ -´Ø¿ô¤ÎÌá¤êÀ褬 +により割り当てられる空間はスタックフレームから割り当てらるので、 +関数の戻り先が .BR longjmp (3) -¤ä +や .BR siglongjmp (3) -¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤ê¥¸¥ã¥ó¥×¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ -³ä¤êÅö¤Æ¤é¤ì¤¿¶õ´Ö¤Ï¼«Æ°Åª¤Ë²òÊü¤µ¤ì¤ë¡£ +の呼び出しによりジャンプした場合には、 +割り当てられた空間は自動的に解放される。 .BR alloca () -¤Ç³ä¤êÅö¤Æ¤é¤ì¤¿¶õ´Ö¤ò +で割り当てられた空間を .BR free (3) -¤·¤è¤¦¤È¤¹¤ë¤³¤È¤Î¤Ê¤¤¤è¤¦¤Ë¡ª -.SH Ãí°Õ -.SS GNU ÈǤˤĤ¤¤Æ¤ÎÃí°Õ -Ä̾ï +しようとすることのないように! +.SH 注意 +.SS GNU 版についての注意 +通常 .BR gcc (1) -¤Ï +は .BR alloca () -¤Î¸Æ¤Ó½Ð¤·¤ò¥¤¥ó¥é¥¤¥ó¥³¡¼¥É¤ËÊÑ´¹¤¹¤ë¡£ +の呼び出しをインラインコードに変換する。 .IR "\-ansi" , .IR "\-std=c89" , .IR "\-std=c99" , .IR "\-fno\-builtin" -¤Î¤¤¤º¤ì¤«¤Î¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¤³¤ÎÊÑ´¹¤Ï¹Ô¤ï¤ì¤Ê¤¤ -(¤Þ¤¿ +のいずれかのオプションが指定された場合、この変換は行われない +(また .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤â¹Ô¤ï¤ì¤Ê¤¤)¡£ -¤À¤À¤·¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï glibc ÈǤΠ+のインクルードも行われない)。 +だだし、デフォルトでは glibc 版の .I -¤Ï +は .I -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ¤ª¤ê¡¢¤³¤ì¤Ë¤Ï°Ê²¼¤Î¹Ô¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤Î¤ÇÃí°Õ¤¹¤ë¤³¤È¡£ +をインクルードしており、これには以下の行が含まれているので注意すること。 .nf #define alloca(size) __builtin_alloca (size) .fi -Æȼ«ÈǤΠ__builtin_alloca (size) ´Ø¿ô¤¬¤¢¤ë¤ÈÌñ²ð¤Ê·ë²Ì¤Ë¤Ê¤ë¡£ +独自版の __builtin_alloca (size) 関数があると厄介な結果になる。 .LP -¤³¤Î¥³¡¼¥É¤Ï¥¤¥ó¥é¥¤¥ó²½¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢ -¤³¤Î´Ø¿ô¤Î¥¢¥É¥ì¥¹¤ò¼èÆÀ¤·¤¿¤ê¡¢ -¾¤Î¥é¥¤¥Ö¥é¥ê¤ò¥ê¥ó¥¯¤·¤ÆÆ°ºî¤òÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +このコードはインライン化されているので、 +この関数のアドレスを取得したり、 +他のライブラリをリンクして動作を変更することはできない。 .LP -Ä̾盧¤Î¥¤¥ó¥é¥¤¥ó¥³¡¼¥É¤Ï¥¹¥¿¥Ã¥¯¥Ý¥¤¥ó¥¿¤ò°ÜÆ°¤¹¤ë -1 ¤Ä¤ÎÌ¿Îá (instruction) ¤«¤é¹½À®¤µ¤ì¤Æ¤ª¤ê¡¢ -¥¹¥¿¥Ã¥¯¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤ò¥Á¥§¥Ã¥¯¤·¤Ê¤¤¡£ -¤è¤Ã¤Æ NULL ¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ -.SH ¥Ð¥° -¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤¬³ÈÄ¥¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¥¨¥é¡¼ÄÌÃΤϹԤï¤ì¤Ê¤¤¡£ -(¤·¤«¤·¤Ê¤¬¤é¡¢³ä¤êÅö¤Æ¤Ë¼ºÇÔ¤·¤¿¸å¤Ç¡¢¥×¥í¥°¥é¥à¤¬³ä¤êÅö¤Æ¤é¤ì¤Ê¤«¤Ã¤¿ -¶õ´Ö¤Ë¥¢¥¯¥»¥¹¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤Ë +通常このインラインコードはスタックポインタを移動する +1 つの命令 (instruction) から構成されており、 +スタックオーバーフローをチェックしない。 +よって NULL エラーが返されることはない。 +.SH バグ +スタックフレームが拡張できなかった場合、エラー通知は行われない。 +(しかしながら、割り当てに失敗した後で、プログラムが割り当てられなかった +空間にアクセスしようとした場合に .B SIGSEGV -¥·¥°¥Ê¥ë¤ò¼õ¿®¤¹¤ë¤³¤È¤À¤í¤¦¡£) +シグナルを受信することだろう。) -¿¤¯¤Î¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¡¢´Ø¿ô¥³¡¼¥ë¤Î°ú¤­¿ô¤Î¥ê¥¹¥ÈÆâ¤Ç¤Ï +多くのシステムにおいて、関数コールの引き数のリスト内では .BR alloca () -¤¬»È¤¨¤Ê¤¤¡£ -¤³¤ì¤Ï¡¢ +が使えない。 +これは、 .BR alloca () -¤Ë¤è¤Ã¤ÆͽÌ󤵤ì¤ë¥¹¥¿¥Ã¥¯Îΰ褬¡¢ -´Ø¿ô°ú¤­¿ô¤Ë»È¤ï¤ì¤ë¥¹¥¿¥Ã¥¯Îΰè¤ÎÃæ¤Ë¸½¤ì¤Æ¤·¤Þ¤¦¤¿¤á¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +によって予約されるスタック領域が、 +関数引き数に使われるスタック領域の中に現れてしまうためである。 +.SH 関連項目 .BR brk (2), .BR longjmp (3), .BR malloc (3) diff --git a/release/man3/argz_add.3 b/release/man3/argz_add.3 index 5a16de4a..a7fb07f4 100644 --- a/release/man3/argz_add.3 +++ b/release/man3/argz_add.3 @@ -8,11 +8,11 @@ .\" Translated Mon Feb 2 2003 by Akihiro MOTOKI .\" .TH ARGZ_ADD 3 2007-05-18 "" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 argz_add, argz_add_sep, argz_append, argz_count, argz_create, argz_create_sep, argz_delete, argz_extract, argz_insert, -argz_next, argz_replace, argz_stringify \- argz ¥ê¥¹¥È¤òÁàºî¤¹¤ë¤¿¤á¤Î´Ø¿ô·² -.SH ½ñ¼° +argz_next, argz_replace, argz_stringify \- argz リストを操作するための関数群 +.SH 書式 .nf .B "#include " .sp @@ -54,161 +54,161 @@ argz_next, argz_replace, argz_stringify \- argz .sp .BI "void argz_stringify(char *" argz ", size_t " len ", int " sep ); .fi -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¸ÇÍ­¤Ç¤¢¤ë¡£ +.SH 説明 +これらの関数は glibc 固有である。 .LP -argz vector ¤ÏŤµ¾ðÊóÉÕ¤­¤Îʸ»ú¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -ʸ»ú¥Ð¥Ã¥Õ¥¡¤Ç¤Ï¡¢Ê£¿ô¤Îʸ»úÎó¤¬ NULL ¥Ð¥¤¥È (\\(aq\\0\\(aq) ¤Ç¶èÀÚ¤é¤ì¤Æ¤ª¤ê¡¢ -ʸ»úÎó¤ÎÇÛÎó¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -Ťµ¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¡¢¥Ð¥Ã¥Õ¥¡¤ÎºÇ¸å¤Î¥Ð¥¤¥È¤Ï NULL ¥Ð¥¤¥È¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +argz vector は長さ情報付きの文字バッファへのポインタである。 +文字バッファでは、複数の文字列が NULL バイト (\\(aq\\0\\(aq) で区切られており、 +文字列の配列として解釈されるようになっている。 +長さが 0 でない場合、バッファの最後のバイトは NULL バイトでなければならない。 .LP -¤³¤ì¤é¤Î´Ø¿ô¤Ï argz vector ¤òÁàºî¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ -¥Ú¥¢ (NULL,0) ¤Ï argz vector ¤Ç¤¢¤ê¡¢µÕ¤Ë¸À¤¨¤Ð -Ťµ 0 ¤Î argz vector¤Ï NULL ¥Ý¥¤¥ó¥¿¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¶õ¤Ç¤Ê¤¤ argz vector ¤Î³ä¤êÅö¤Æ¤Ï +これらの関数は argz vector を操作するためのものである。 +ペア (NULL,0) は argz vector であり、逆に言えば +長さ 0 の argz vectorは NULL ポインタを持たなければならない。 +空でない argz vector の割り当ては .BR malloc (3) -¤ò»È¤Ã¤Æ¹Ô¤ï¤ì¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢argz vector ¤ò²òÊü¤¹¤ë¤Î¤Ë +を使って行われる。したがって、argz vector を解放するのに .BR free (3) -¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +を使うことができる。 .LP .BR argz_add () -¤Ï¡¢Ê¸»úÎó +は、文字列 .I str -¤òÇÛÎó +を配列 .IR *argz -¤ÎËöÈø¤ËÄɲä·¡¢ +の末尾に追加し、 .IR *argz -¤È +と .IR *argz_len -¤ò¹¹¿·¤¹¤ë¡£ +を更新する。 .LP .BR argz_add_sep () -¤âƱÍͤÎÆ°ºî¤ò¤¹¤ë¤¬¡¢¶èÀÚ¤êʸ»ú +も同様の動作をするが、区切り文字 .I delim -¤Ë¤·¤¿¤¬¤Ã¤Æʸ»úÎó +にしたがって文字列 .I str -¤òÊ£¿ô¤Îʸ»úÎó¤Ëʬ³ä¤¹¤ëÅÀ¤¬°Û¤Ê¤ë¡£ -Î㤨¤Ð¡¢¶èÀÚ¤êʸ»ú \\(aq:\\(aq ¤ò»ØÄꤷ¤Æ¡¢UNIX ¥µ¡¼¥Á¡¦¥Ñ¥¹¤ËÂФ·¤Æ -¤³¤Î´Ø¿ô¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¤À¤í¤¦¡£ +を複数の文字列に分割する点が異なる。 +例えば、区切り文字 \\(aq:\\(aq を指定して、UNIX サーチ・パスに対して +この関数を使うことができるだろう。 .LP .BR argz_append () -¤Ï argz vector +は argz vector .RI ( buf ,\ buf_len ) -¤Î¸å¤í¤Ë +の後ろに .RI (* argz ,\ *argz_len ) -¤òÉÕ¤±²Ã¤¨¡¢ +を付け加え、 .I *argz -¤È +と .I *argz_len -¤ò¹¹¿·¤¹¤ë¡£ -(¤·¤¿¤¬¤Ã¤Æ¡¢ +を更新する。 +(したがって、 .I *argz_len -¤Ï +は .I buf_len -¤À¤±Áý²Ã¤¹¤ë¡£) +だけ増加する。) .LP .BR argz_count () -¤Ï +は .RI ( argz ,\ argz_len ) -Æâ¤Îʸ»úÎó¤Î¿ô¤ò¿ô¤¨¤ë¡£¼ÂºÝ¤Ë¤Ï NULL ¥Ð¥¤¥È (\\(aq\\0\\(aq) ¤Î¿ô¤ò¿ô¤¨¤Æ¤¤¤ë¡£ +内の文字列の数を数える。実際には NULL バイト (\\(aq\\0\\(aq) の数を数えている。 .LP .BR argz_create () -¤Ï¡¢UNIX ή¤Î°ú¤­¿ô¥Ù¥¯¥È¥ë¤Ç¤¢¤ë +は、UNIX 流の引き数ベクトルである .RI ( "(char *) 0" -¤Ç½ªÃ¼¤µ¤ì¤ë) +で終端される) .I argv -¤ò¡¢argz vector +を、argz vector .RI ( *argz ,\ *argz_len ) -¤ËÊÑ´¹¤¹¤ë¡£ +に変換する。 .LP .BR argz_create_sep () -¤Ï¡¢NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó +は、NULL 終端された文字列 .I str -¤ò¶èÀÚ¤êʸ»ú +を区切り文字 .I sep -¤¬¸½¤ì¤ëËè¤Ëʬ³ä¤·¤Ê¤¬¤é¡¢argz vector +が現れる毎に分割しながら、argz vector .RI (* argz ,\ *argz_len ) -¤ËÊÑ´¹¤¹¤ë¡£ +に変換する。 .LP .BR argz_delete () -¤Ï¡¢ +は、 .I entry -¤Ç»Ø¤·¼¨¤µ¤ì¤¿Ê¸»úÎó¤ò argz vector +で指し示された文字列を argz vector .RI ( *argz ,\ *argz_len ) -¤«¤éºï½ü¤·¡¢ +から削除し、 .I *argz -¤È +と .I *argz_len -¤ò¹¹¿·¤¹¤ë¡£ +を更新する。 .LP .BR argz_extract () -¤Ï +は .BR argz_create () -¤ÎÈ¿ÂФÎÁàºî¤ò¹Ô¤¦¡£argz vector +の反対の操作を行う。argz vector .RI ( argz ,\ argz_len ) -¤òÄ´¤Ù¡¢ +を調べ、 .I argv -¤«¤é»Ï¤Þ¤ëÇÛÎó¤ò¥µ¥Öʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤ÇËä¤á¤Æ¤¤¤­¡¢ -°ìÈֺǸå¤Ë NULL ¤òÆþ¤ì¤Æ¡¢UNIX ή¤Î argv ¥Ù¥¯¥È¥ë¤òºîÀ®¤¹¤ë¡£ -ÇÛÎó +から始まる配列をサブ文字列へのポインタで埋めていき、 +一番最後に NULL を入れて、UNIX 流の argv ベクトルを作成する。 +配列 .I argv -¤Ï +は .IR argz_count ( argz , argz_len ") + 1" -¸Ä¤Î¥Ý¥¤¥ó¥¿¤ò¼ýÍƤǤ­¤ë¶õ´Ö¤ò»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +個のポインタを収容できる空間を持っていなければならない。 .LP .BR argz_insert () -¤Ï +は .BR argz_delete () -¤ÎÈ¿ÂФÎÁàºî¤ò¹Ô¤¦¡£argz vector +の反対の操作を行う。argz vector .RI ( *argz ,\ *argz_len ) -¤Î°ÌÃÖ +の位置 .I before -¤Ë°ú¤­¿ô +に引き数 .I entry -¤òÁÞÆþ¤·¡¢ +を挿入し、 .I *argz -¤È +と .I *argz_len -¤ò¹¹¿·¤¹¤ë¡£ +を更新する。 .I before -¤¬ NULL ¤Î¾ì¹ç¡¢ +が NULL の場合、 .I entry -¤ÏËöÈø¤ËÁÞÆþ¤µ¤ì¤ë¡£ +は末尾に挿入される。 .LP .BR argz_next () -¤Ï argz vector ¤ò½çÈÖ¤ËÄ´¤Ù¤ë¤¿¤á¤Î´Ø¿ô¤Ç¤¢¤ë¡£ +は argz vector を順番に調べるための関数である。 .I entry -¤¬ NULL ¤Î¾ì¹ç¡¢ºÇ½é¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£ -¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¡¢¼¡¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£ -¼¡¤Î¥¨¥ó¥È¥ê¤¬¤Ê¤¤¾ì¹ç¡¢NULL ¤òÊÖ¤¹¡£ +が NULL の場合、最初のエントリを返す。 +そうでない場合、次のエントリを返す。 +次のエントリがない場合、NULL を返す。 .LP .BR argz_replace () -¤Ï¡¢ +は、 .I str -¤ò¤¹¤Ù¤Æ +をすべて .I with -¤ÇÃÖ¤­´¹¤¨¤ë (ɬÍפ˱þ¤¸¤Æ argz ¤ÎºÆ³ä¤êÅö¤Æ¤ò¹Ô¤¦)¡£ +で置き換える (必要に応じて argz の再割り当てを行う)。 .I replace_count -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が NULL でない場合、 .I *replace_count -¤òÃÖ¤­´¹¤¨¤ò¹Ô¤Ã¤¿¿ô¤À¤±Áý¤ä¤¹¡£ +を置き換えを行った数だけ増やす。 .LP .BR argz_stringify () -¤Ï +は .BR argz_create_sep () -¤ÎÈ¿ÂФÎÁàºî¤ò¹Ô¤¦¡£ -ËöÈø¤Î NULL ¥Ð¥¤¥È°Ê³°¤ÎÁ´¤Æ¤Î NULL ¥Ð¥¤¥È (\\(aq\\0\\(aq) ¤ò +の反対の操作を行う。 +末尾の NULL バイト以外の全ての NULL バイト (\\(aq\\0\\(aq) を .I sep -¤ÇÃÖ¤­´¹¤¨¤Æ¡¢ -argz vector ¤òÄ̾ï¤Îʸ»úÎó¤ËÊÑ´¹¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -¥á¥â¥ê³ä¤êÅö¤Æ¤ò¹Ô¤¦ argz ´Ø¿ô·²¤Ï¤¹¤Ù¤Æ \fIerror_t\fP ·¿¤ÎÊÖ¤êÃͤò»ý¤Ä¡£ -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤·¡¢³ä¤êÅö¤Æ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï -\fBENOMEM\fP ¤òÊÖ¤¹¡£ -.SH ½àµò -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£Ãí°Õ¤·¤Æ»ÈÍѤ¹¤ë¤³¤È¡£ -.SH ¥Ð¥° -NULL ¥Ð¥¤¥È¤Ç½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤ argz vector ¤ò»ÈÍѤ·¤¿¾ì¹ç¡¢ -segmentation fault ¤òµ¯¤³¤¹¤«¤â¤·¤ì¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +で置き換えて、 +argz vector を通常の文字列に変換する。 +.SH 返り値 +メモリ割り当てを行う argz 関数群はすべて \fIerror_t\fP 型の返り値を持つ。 +成功した場合は 0 を返し、割り当てエラーが発生した場合は +\fBENOMEM\fP を返す。 +.SH 準拠 +これらの関数は GNU による拡張である。注意して使用すること。 +.SH バグ +NULL バイトで終端されていない argz vector を使用した場合、 +segmentation fault を起こすかもしれない。 +.SH 関連項目 .BR envz_add (3) diff --git a/release/man3/asin.3 b/release/man3/asin.3 index 64bc3901..4244ab8c 100644 --- a/release/man3/asin.3 +++ b/release/man3/asin.3 @@ -40,9 +40,9 @@ .\" Updated 2008-09-14, Akihiro MOTOKI .\" .TH ASIN 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -asin, asinf, asinl \- µÕÀµ¸¹¡Êarc sine¡Ë´Ø¿ô -.SH ½ñ¼° +.SH 名前 +asin, asinf, asinl \- 逆正弦(arc sine)関数 +.SH 書式 .nf .B #include .sp @@ -53,12 +53,12 @@ asin, asinf, asinl \- .BI "long double asinl(long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -72,48 +72,48 @@ or .I cc\ -std=c99 .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR asin () -´Ø¿ô¤Ï \fIx\fP ¤ÎµÕÀµ¸¹¡Êarc sine) ¤Î¼çÃͤò·×»»¤¹¤ë¡£ -¤¹¤Ê¤ï¤Á¡¢¤½¤ÎÀµ¸¹¡Êsine¡Ë¤¬ \fIx\fP ¤È¤Ê¤ë¤è¤¦¤ÊÃͤǤ¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +関数は \fIx\fP の逆正弦(arc sine) の主値を計算する。 +すなわち、その正弦(sine)が \fIx\fP となるような値である。 +.SH 返り値 +成功すると、これらの関数は .I x -¤ÎµÕÀµ¸¹¤Î¼çÃͤò¥é¥¸¥¢¥óñ°Ì¤ÇÊÖ¤¹¡£ -ÊÖ¤êÃÍ¤Ï [\-pi/2,\ pi/2] ¤ÎÈϰϤȤʤ롣 +の逆正弦の主値をラジアン単位で返す。 +返り値は [\-pi/2,\ pi/2] の範囲となる。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬ +0 (\-0) ¤Î¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 (\-0) の場合、+0 (\-0) が返される。 .I x -¤¬ [\-1,\ 1] ¤ÎÈϰϤËÆþ¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が [\-1,\ 1] の範囲に入っていない場合、 +領域エラー (domain error) が発生し、NaN が返される。 .\" .\" POSIX.1-2001 documents an optional range error for subnormal x; .\" glibc 2.8 does not do this. -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬ [\-1,\ 1] ¤ÎÈϰϤËÆþ¤Ã¤Æ¤¤¤Ê¤¤ +領域エラー (domain error): \fIx\fP が [\-1,\ 1] の範囲に入っていない .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë¡£ -̵¸ú (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +無効 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ -.SH ½àµò +が上がる。 +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 +.SH 関連項目 .BR acos (3), .BR atan (3), .BR atan2 (3), diff --git a/release/man3/asinh.3 b/release/man3/asinh.3 index ca352440..36362cb3 100644 --- a/release/man3/asinh.3 +++ b/release/man3/asinh.3 @@ -40,9 +40,9 @@ .\" Updated 2008-09-14, Akihiro MOTOKI .\" .TH ASINH 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -asinh, asinhf, asinhl \- µÕÁжÊÀþÀµ¸¹¡Êinverse hyperbolic sine¡Ë´Ø¿ô -.SH ½ñ¼° +.SH 名前 +asinh, asinhf, asinhl \- 逆双曲線正弦(inverse hyperbolic sine)関数 +.SH 書式 .nf .B #include .sp @@ -53,12 +53,12 @@ asinh, asinhf, asinhl \- .BI "long double asinhl(long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -82,34 +82,34 @@ or .I cc\ -std=c99 .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR asinh () -´Ø¿ô¤Ï \fIx\fP µÕÁжÊÀþÀµ¸¹¡Êinverse hyperbolic sine¡Ë¤ò -·×»»¤¹¤ë¡£¤¹¤Ê¤ï¤Á¡¢¤½¤ÎÁжÊÀþÀµ¸¹¡Êhyperbolic sine¡Ë¤¬ \fIx\fP ¤Ë -¤Ê¤ë¤è¤¦¤ÊÃͤǤ¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +関数は \fIx\fP 逆双曲線正弦(inverse hyperbolic sine)を +計算する。すなわち、その双曲線正弦(hyperbolic sine)が \fIx\fP に +なるような値である。 +.SH 返り値 +成功すると、これらの関数は .I x -¤ÎµÕÁжÊÀþÀµ¸¹¤òÊÖ¤¹¡£ +の逆双曲線正弦を返す。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬ +0 (\-0) ¤Î¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 (\-0) の場合、+0 (\-0) が返される。 .I x -¤¬Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤Î¾ì¹ç¡¢Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大 (負の無限大) の場合、正の無限大 (負の無限大) が返される。 .\" .\" POSIX.1-2001 documents an optional range error for subnormal x; .\" glibc 2.8 does not do this. -.SH ¥¨¥é¡¼ -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ -.SH ½àµò +.SH エラー +エラーは発生しない。 +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 +.SH 関連項目 .BR acosh (3), .BR atanh (3), .BR casinh (3), diff --git a/release/man3/asprintf.3 b/release/man3/asprintf.3 index b52b0df1..41cbe420 100644 --- a/release/man3/asprintf.3 +++ b/release/man3/asprintf.3 @@ -26,47 +26,47 @@ .\" Translated Mon 14 Jan 2002 by NAKANO Takeo .\" .TH ASPRINTF 3 2001-12-18 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -asprintf, vasprintf \- ʸ»úÎó¤ò³ä¤êÅö¤Æ¤Æ¤½¤ì¤Ë½ÐÎϤ¹¤ë -.SH ½ñ¼° -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.SH 名前 +asprintf, vasprintf \- 文字列を割り当ててそれに出力する +.SH 書式 +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "int asprintf(char **" strp ", const char *" fmt ", ...);" .sp .BI "int vasprintf(char **" strp ", const char *" fmt ", va_list " ap ); -.SH ÀâÌÀ +.SH 説明 .BR asprintf () -´Ø¿ô¤È +関数と .BR vasprintf () -´Ø¿ô¤È¤Ï¡¢¤½¤ì¤¾¤ì +関数とは、それぞれ .BR sprintf (3) -´Ø¿ô¤È +関数と .BR vsprintf (3) -´Ø¿ô¤È¤Ë»÷¤Æ¤¤¤ë¤¬¡¢ -½ÐÎÏʸ»úÎó¤ò (½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤â´Þ¤á¤Æ) -ÊÝ»ý¤¹¤ë¤Î¤Ë½½Ê¬¤ÊÂ礭¤µ¤Î¥á¥â¥ê¤ò³ÎÊݤ·¡¢ -ºÇ½é¤Î°ú¿ô¤Ë¤½¤Îʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤Î¥Ý¥¤¥ó¥¿¤Ï¡¢ÉÔÍפˤʤ俤é +関数とに似ているが、 +出力文字列を (終端の NULL バイトも含めて) +保持するのに十分な大きさのメモリを確保し、 +最初の引数にその文字列へのポインタを返す。 +このポインタは、不要になったら .BR free (3) -¤ËÅϤ·¡¢³ä¤êÅö¤Æ¤é¤ì¤¿µ­²±Îΰè¤ò²òÊü¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï½ÐÎϤµ¤ì¤¿¥Ð¥¤¥È¿ô¤ò +に渡し、割り当てられた記憶領域を解放すべきである。 +.SH 返り値 +成功すると、これらの関数は出力されたバイト数を .RB ( sprintf (3) -¤Î¤è¤¦¤Ë) ÊÖ¤¹¡£ -¥á¥â¥ê¤Î³ä¤êÅö¤Æ¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¤ê¡¢ -¤½¤Î¾¥¨¥é¡¼¤¬À¸¤¸¤ë¤È¡¢ -¤³¤ì¤é¤Î´Ø¿ô¤Ï \-1 ¤òÊÖ¤·¡¢ +のように) 返す。 +メモリの割り当てができなかったり、 +その他エラーが生じると、 +これらの関数は \-1 を返し、 .I strp -¤ÎÆâÍƤÏ̤ÄêµÁ¤È¤Ê¤ë¡£ -.SH ½àµò -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ¤Î³ÈÄ¥¤Ç¤¢¤ê¡¢C ¤ä POSIX ¤Î¤â¤Î¤Ç¤Ï¤Ê¤¤¡£ -¤³¤ì¤é¤Ï *BSD ¤Ç¤âÍøÍѤǤ­¤ë¡£ -FreeBSD ¤Î¼ÂÁõ¤Ç¤Ï¡¢¥¨¥é¡¼¤ÎºÝ¤Ë¤Ï +の内容は未定義となる。 +.SH 準拠 +これらの関数は GNU の拡張であり、C や POSIX のものではない。 +これらは *BSD でも利用できる。 +FreeBSD の実装では、エラーの際には .I strp -¤ò NULL ¤Ë¥»¥Ã¥È¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を NULL にセットする。 +.SH 関連項目 .BR free (3), .BR malloc (3), .BR printf (3) diff --git a/release/man3/assert.3 b/release/man3/assert.3 index f4cbd725..feceeb54 100644 --- a/release/man3/assert.3 +++ b/release/man3/assert.3 @@ -31,54 +31,54 @@ .\" Updated Thu 19 Sep JST 2002 by Kentaro Shirakata .\" .TH ASSERT 3 2002-08-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -assert \- ¿ÇÃǤ¬µ¶¤Î»þ¤Ë¥×¥í¥°¥é¥à¤òÃæ»ß¤¹¤ë -.SH ½ñ¼° +.SH 名前 +assert \- 診断が偽の時にプログラムを中止する +.SH 書式 .nf .B #include .sp .BI "void assert(scalar " expression ); .fi -.SH ÀâÌÀ +.SH 説明 .I -¤¬ºÇ¸å¤Ë¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤¿»þÅÀ¤Ç¡¢ +が最後にインクルードされた時点で、 .B NDEBUG -¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢ +マクロが定義されていた場合、 .BR assert () -¥Þ¥¯¥í¤Ï²¿¤Î¥³¡¼¥É¤âÀ¸À®¤»¤º¡¢½¾¤Ã¤ÆÁ´¤¯²¿¤â¤·¤Ê¤¤¡£ -¤µ¤â¤Ê¤±¤ì¤Ð¡¢ +マクロは何のコードも生成せず、従って全く何もしない。 +さもなければ、 .BR assert (3) -¥Þ¥¯¥í¤Ï +マクロは .I expression -¤¬µ¶¤Î»þ(¤¹¤Ê¤ï¤Á¡¢Èæ³Ó¤Î·ë²Ì¤¬0¤ÈÅù¤·¤¤»þ)¤Ë -ɸ½à¥¨¥é¡¼½ÐÎϤ˥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¡¢¤µ¤é¤Ë +が偽の時(すなわち、比較の結果が0と等しい時)に +標準エラー出力にエラーメッセージを表示し、さらに .BR abort () -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ë¤è¤Ã¤Æ¡¢¥×¥í¥°¥é¥à¤ò½ªÎ»¤µ¤»¤ë¡£ +を呼び出すことによって、プログラムを終了させる。 .LP -¤³¤Î¥Þ¥¯¥í¤ÎÌÜŪ¤Ï¡¢¥×¥í¥°¥é¥Þ¡¼¤¬¥×¥í¥°¥é¥à¤Î¥Ð¥°¤òȯ¸«¤¹¤ë¼ê½õ¤±¤ò -¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£"assertion failed in file foo.c, function do_bar(), line 1287" -¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤Ï¥æ¡¼¥¶¡¼¤Ë¤Ï²¿¤Î½õ¤±¤Ë¤â¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -ÃͤÏÊÖ¤µ¤ì¤Ê¤¤¡£ -.SH ½àµò +このマクロの目的は、プログラマーがプログラムのバグを発見する手助けを +することである。"assertion failed in file foo.c, function do_bar(), line 1287" +というメッセージはユーザーには何の助けにもならない。 +.SH 返り値 +値は返されない。 +.SH 準拠 POSIX.1-2001, C89, C99. -C89 ¤Ç¤Ï +C89 では .B expression -¤Ï +は .I int -·¿¤Ç¤¢¤ë¤³¤È¤¬É¬ÍפȤµ¤ì¡¢¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤ÎÆ°ºî¤Ï̤ÄêµÁ¤È¤µ¤ì¤Æ¤¤¤¿¡£ -¤·¤«¤· C99 ¤Ç¤Ï¤É¤Î¤è¤¦¤Ê¥¹¥«¥éÃͤǤâ¤è¤¤¤³¤È¤Ë¤Ê¤Ã¤¿¡£ -.\" ¾ÜºÙ¤ÏÉÔ¶ñ¹çÊó¹ð 107 ¤ò»²¾È¤Î¤³¤È¡£ -.SH ¥Ð¥° +型であることが必要とされ、そうでない場合の動作は未定義とされていた。 +しかし C99 ではどのようなスカラ値でもよいことになった。 +.\" 詳細は不具合報告 107 を参照のこと。 +.SH バグ .BR assert () -¤Ï¡¢¥Þ¥¯¥í¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£¤¹¤Ê¤ï¤Á¡¢ -»î¤µ¤ì¤Æ¤¤¤ë¼°¤¬ÉûºîÍѤò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -¥Þ¥¯¥í +は、マクロとして実装されている。すなわち、 +試されている式が副作用を持っている場合には、 +マクロ .B NDEBUG -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Ë°Í¸¤·¤Æ¡¢¥×¥í¥°¥é¥à¤Î¿¶Éñ¤¤¤Ï°Û¤Ê¤ë¤À¤í¤¦¡£ -¤³¤ì¤Ë¤è¤Ã¤Æ¡¢¥Ð¥°½Ð¤·¤¹¤ë¤È¤­¤Ë¤Ï¾Ã¤¨¤Æ¤·¤Þ¤¦ -¥Ï¥¤¥¼¥ó¥Ð¥°(Heisenbugs)¤òÀ¸¤ß½Ð¤¹¤À¤í¤¦¡£ -.SH ´ØÏ¢¹àÌÜ +が定義されているかどうかに依存して、プログラムの振舞いは異なるだろう。 +これによって、バグ出しするときには消えてしまう +ハイゼンバグ(Heisenbugs)を生み出すだろう。 +.SH 関連項目 .BR abort (3), .BR assert_perror (3), .BR exit (3) diff --git a/release/man3/assert_perror.3 b/release/man3/assert_perror.3 index fc3b062f..e0d2a961 100644 --- a/release/man3/assert_perror.3 +++ b/release/man3/assert_perror.3 @@ -29,48 +29,48 @@ .\" by Akihiro MOTOKI .\" .TH ASSERT_PERROR 3 2002-08-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 assert_perror \- test errnum and abort -.SH ½ñ¼° +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "void assert_perror(int " errnum ); .fi -.SH ÀâÌÀ -ºÇ¸å¤Ë +.SH 説明 +最後に .I -¤¬¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤¿»þ¤Ë¥Þ¥¯¥í +がインクルードされた時にマクロ .B NDEBUG -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢¥Þ¥¯¥í +が定義されていた場合、マクロ .BR assert_perror () -¤Ï²¿¤Î¥³¡¼¥É¤âÀ¸À®¤»¤º¡¢¤·¤¿¤¬¤Ã¤ÆÁ´¤¯²¿¤â¤·¤Ê¤¤¡£ -¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¡¢¥Þ¥¯¥í +は何のコードも生成せず、したがって全く何もしない。 +そうでない場合、マクロ .BR assert_perror () -¤Ïɸ½à¥¨¥é¡¼¤Ë¥¨¥é¡¼¡¦¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¡¢ +は標準エラーにエラー・メッセージを表示し、 .I errnum -¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï +が 0 でない場合には .BR abort (3) -¤ò¸Æ¤Ó½Ð¤·¤Æ¥×¥í¥°¥é¥à¤ò½ªÎ»¤µ¤»¤ë¡£ -¥á¥Ã¥»¡¼¥¸¤Ë¤Ï¡¢¥Õ¥¡¥¤¥ë̾¡¢¥Þ¥¯¥í¸Æ¤Ó½Ð¤·¤¬¤¢¤Ã¤¿´Ø¿ô̾¤È¹ÔÈֹ桢 +を呼び出してプログラムを終了させる。 +メッセージには、ファイル名、マクロ呼び出しがあった関数名と行番号、 .I strerror(errnum) -¤Î½ÐÎϤ¬´Þ¤Þ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -ÊÖ¤êÃͤϤʤ¤¡£ -.SH ½àµò -¤³¤ì¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH ¥Ð¥° -assert ¥Þ¥¯¥í¤ÎÌÜŪ¤Ï¡¢¥×¥í¥°¥é¥Þ¤¬¥×¥í¥°¥é¥àÃæ¤Î¥Ð¥°¤òõ¤¹¼ê½õ¤±¤ò¤¹¤ë¤³¤È -¤Ç¤¢¤ê¡¢¥³¡¼¥Ç¥£¥ó¥°´Ö°ã¤¤¤¬¤Ê¤¤¾ì¹ç¤Ë¤Ï²¿¤¬µ¯¤³¤ë¤³¤È¤Ï¤¢¤ê¤¨¤Ê¤¤¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä¥é¥¤¥Ö¥é¥ê¥³¡¼¥ë¤Î¾ì¹ç¡¢¾õ¶·¤¬¤«¤Ê¤ê°ã¤Ã¤Æ¤¤¤Æ¡¢ -¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¤³¤È¤¬¤¢¤ê¤¨¤ë¤·¡¢¼ÂºÝ¤¢¤ë¤À¤í¤¦¡£¤½¤·¤Æ¤½¤Î¤è¤¦¤Ê¾õ¶·¤Ç¤â -¥Æ¥¹¥È¤µ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£¤³¤Î¾ì¹ç¤Ë¤Ï¡¢ +の出力が含まれる。 +.SH 返り値 +返り値はない。 +.SH 準拠 +これは GNU による拡張である。 +.SH バグ +assert マクロの目的は、プログラマがプログラム中のバグを探す手助けをすること +であり、コーディング間違いがない場合には何が起こることはありえない。 +しかしながら、システムコールやライブラリコールの場合、状況がかなり違っていて、 +エラーが返されることがありえるし、実際あるだろう。そしてそのような状況でも +テストされるべきである。この場合には、 .B NDEBUG -¤òÄêµÁ¤¹¤ë¤³¤È¤Ç̵¸ú¤Ë¤Ç¤­¤ë -assert ¤Ç¤Ï¤Ê¤¯¡¢Å¬Àڤʥ¨¥é¡¼½èÍý¥³¡¼¥É¤ÇÂн褹¤Ù¤­¤Ç¤¢¤ë¡£ -¤³¤Î¥Þ¥¯¥í¤Ï·è¤·¤Æ»È¤ï¤Ê¤¤¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を定義することで無効にできる +assert ではなく、適切なエラー処理コードで対処すべきである。 +このマクロは決して使わないこと。 +.SH 関連項目 .BR abort (3), .BR assert (3), .BR exit (3), diff --git a/release/man3/atan.3 b/release/man3/atan.3 index 5df33511..fe7edea0 100644 --- a/release/man3/atan.3 +++ b/release/man3/atan.3 @@ -40,9 +40,9 @@ .\" Updated 2008-09-14, Akihiro MOTOKI .\" .TH ATAN 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -atan, atanf, atanl \- µÕÀµÀÜ¡Êarc tangent¡Ë´Ø¿ô -.SH ½ñ¼° +.SH 名前 +atan, atanf, atanl \- 逆正接(arc tangent)関数 +.SH 書式 .nf .B #include .sp @@ -53,12 +53,12 @@ atan, atanf, atanl \- .BI "long double atanl( long double " x ); .sp .fi -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -72,35 +72,35 @@ or .I cc\ -std=c99 .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR atan () -\fIx\fP ¤ÎµÕÀµÀÜ¡Êarc tangent¡Ë¤Î¼çÃͤò·×»»¤¹¤ë¡£ -¤¹¤Ê¤ï¤Á¡¢ -¤½¤ÎÀµÀÜ¡Êtangent¡Ë¤¬ \fIx\fP ¤È¤Ê¤ë¤è¤¦¤ÊÃͤǤ¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +\fIx\fP の逆正接(arc tangent)の主値を計算する。 +すなわち、 +その正接(tangent)が \fIx\fP となるような値である。 +.SH 返り値 +成功すると、これらの関数は .I x -¤ÎµÕÀµÀܤμçÃͤò¥é¥¸¥¢¥óñ°Ì¤ÇÊÖ¤¹¡£ -ÊÖ¤êÃÍ¤Ï [\-pi/2,\ pi/2] ¤ÎÈϰϤȤʤ롣 +の逆正接の主値をラジアン単位で返す。 +返り値は [\-pi/2,\ pi/2] の範囲となる。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬ +0 (\-0) ¤Î¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 (\-0) の場合、+0 (\-0) が返される。 .I x -¤¬Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤Î¾ì¹ç¡¢+pi/2 (\-pi/2) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大 (負の無限大) の場合、+pi/2 (\-pi/2) が返される。 .\" .\" POSIX.1-2001 documents an optional range error for subnormal x; .\" glibc 2.8 does not do this. -.SH ¥¨¥é¡¼ -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ -.SH ½àµò +.SH エラー +エラーは発生しない。 +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 +.SH 関連項目 .BR acos (3), .BR asin (3), .BR atan2 (3), diff --git a/release/man3/atan2.3 b/release/man3/atan2.3 index aa687a55..7961f649 100644 --- a/release/man3/atan2.3 +++ b/release/man3/atan2.3 @@ -40,9 +40,9 @@ .\" Updated 2008-09-15, Akihiro MOTOKI .\" .TH ATAN2 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -atan2, atan2f, atan2l \- Æó¤Ä¤ÎÊÑ¿ô¤ËÂФ¹¤ëµÕÀµÀÜ¡Êarc tangent¡Ë´Ø¿ô -.SH ½ñ¼° +.SH 名前 +atan2, atan2f, atan2l \- 二つの変数に対する逆正接(arc tangent)関数 +.SH 書式 .nf .B #include @@ -51,12 +51,12 @@ atan2, atan2f, atan2l \- .BI "long double atan2l(long double " y ", long double " x ); .fi -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -70,37 +70,37 @@ or .I cc\ -std=c99 .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR atan2 () -´Ø¿ô¤Ï +関数は .I y/x -¤ÎµÕÀµÀÜ (arg tangent) ¤Î¼çÃͤò·×»»¤¹¤ë¡£ -Æó¤Ä¤Î°ú¤­¿ô¤ÎÉä¹æ¤Ï·ë²Ì¤Î¾Ý¸Â¤ò·èÄꤹ¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +の逆正接 (arg tangent) の主値を計算する。 +二つの引き数の符号は結果の象限を決定するために使われる。 +.SH 返り値 +成功すると、これらの関数は .I y/x -¤ÎµÕÀµÀܤμçÃͤò¥é¥¸¥¢¥óñ°Ì¤ÇÊÖ¤¹¡£ -ÊÖ¤êÃÍ¤Ï [\-pi,\ pi] ¤ÎÈϰϤȤʤ롣 +の逆正接の主値をラジアン単位で返す。 +返り値は [\-pi,\ pi] の範囲となる。 .I y -¤¬ +0 (\-0) ¤Ç +が +0 (\-0) で .I x -¤¬ 0 ̤Ëþ¤Î¾ì¹ç¡¢+pi (\-pi) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が 0 未満の場合、+pi (\-pi) が返される。 .I y -¤¬ +0 (\-0) ¤Ç +が +0 (\-0) で .I x -¤¬ 0 ¤è¤êÂ礭¤¤¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が 0 より大きい場合、+0 (\-0) が返される。 .I y -¤¬ 0 ̤Ëþ¤Ç +が 0 未満で .I x -¤¬ +0 ¤« \-0 ¤Î¾ì¹ç¡¢\-pi/2 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 か \-0 の場合、\-pi/2 が返される。 .I y -¤¬ 0 ¤è¤êÂ礭¤¯ +が 0 より大きく .I x -¤¬ +0 ¤« \-0 ¤Î¾ì¹ç¡¢pi/2 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 か \-0 の場合、pi/2 が返される。 .\" POSIX.1 says: .\" If @@ -108,9 +108,9 @@ or .\" is 0, a pole error shall not occur. .\" .I x -¤« +か .I y -¤Î¤¤¤º¤«¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +のいずかが NaN の場合、NaN が返される。 .\" POSIX.1 says: .\" If the result underflows, a range error may occur and @@ -118,51 +118,51 @@ or .\" should be returned. .\" .I y -¤¬ +0 (\-0) ¤Ç +が +0 (\-0) で .I x -¤¬ \-0 ¤Î¾ì¹ç¡¢+pi (\-pi) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が \-0 の場合、+pi (\-pi) が返される。 .I y -¤¬ +0 (\-0) ¤Ç +が +0 (\-0) で .I x -¤¬ +0 ¤Î¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 の場合、+0 (\-0) が返される。 .I y -¤¬ 0 ¤è¤êÂ礭¤¤ (¾®¤µ¤¤) Í­¸ÂÃÍ¤Ç +が 0 より大きい (小さい) 有限値で .I x -¤¬Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢+pi (\-pi) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が負の無限大の場合、+pi (\-pi) が返される。 .I y -¤¬ 0 ¤è¤êÂ礭¤¤ (¾®¤µ¤¤) Í­¸ÂÃÍ¤Ç +が 0 より大きい (小さい) 有限値で .I x -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大の場合、+0 (\-0) が返される。 .I y -¤¬Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤Ç +が正の無限大 (負の無限大) で .I x -¤¬Í­¸ÂÃͤξì¹ç¡¢pi/2 (\-pi/2) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が有限値の場合、pi/2 (\-pi/2) が返される。 .I y -¤¬Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤Ç +が正の無限大 (負の無限大) で .I x -¤¬Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢+3*pi/4 (\-3*pi/4) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が負の無限大の場合、+3*pi/4 (\-3*pi/4) が返される。 .I y -¤¬Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤Ç +が正の無限大 (負の無限大) で .I x -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢+pi/4 (\-pi/4) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大の場合、+pi/4 (\-pi/4) が返される。 .\" .\" POSIX.1 says: .\" If both arguments are 0, a domain error shall not occur. -.SH ¥¨¥é¡¼ -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ +.SH エラー +エラーは発生しない。 .\" POSIX.1 documents an optional underflow error .\" glibc 2.8 does not do this. -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 +.SH 関連項目 .BR acos (3), .BR asin (3), .BR atan (3), diff --git a/release/man3/atanh.3 b/release/man3/atanh.3 index ae5691d7..0fa4f6e8 100644 --- a/release/man3/atanh.3 +++ b/release/man3/atanh.3 @@ -40,9 +40,9 @@ .\" Updated 2008-09-14, Akihiro MOTOKI .\" .TH ATANH 3 2010-09-11 "" "Linux Programmer's Manual" -.SH ̾Á° -atanh, atanhf, atanhl \- µÕÁжÊÀþÀµÀÜ¡Êinverse hyperbolic tangent¡Ë´Ø¿ô -.SH ½ñ¼° +.SH 名前 +atanh, atanhf, atanhl \- 逆双曲線正接(inverse hyperbolic tangent)関数 +.SH 書式 .nf .B #include .sp @@ -53,12 +53,12 @@ atanh, atanhf, atanhl \- .BI "long double atanhl(long double " x ); .sp .fi -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -82,79 +82,79 @@ or .I cc\ -std=c99 .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR atanh () -´Ø¿ô¤Ï \fIx\fP ¤ÎµÕÁжÊÀþÀµÀÜ (inverse hyperbolic tangent) ¤ò·×»»¤¹¤ë¡£ -¤¹¤Ê¤ï¤Á¡¢¤½¤ÎÁжÊÀþÀµÀÜ (hyperbolic tangent) ¤¬ \fIx\fP ¤Ë¤Ê¤ë -¤è¤¦¤ÊÃͤǤ¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +関数は \fIx\fP の逆双曲線正接 (inverse hyperbolic tangent) を計算する。 +すなわち、その双曲線正接 (hyperbolic tangent) が \fIx\fP になる +ような値である。 +.SH 返り値 +成功すると、これらの関数は .I x -¤ÎµÕÁжÊÀþÀµÀܤòÊÖ¤¹¡£ +の逆双曲線正接を返す。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬ +0 (\-0) ¤Î¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 (\-0) の場合、+0 (\-0) が返される。 .I x -¤¬ +1 ¤« \-1 ¤Î¾ì¹ç¡¢ -¶Ë¥¨¥é¡¼ (pole error) ¤¬È¯À¸¤·¡¢ -´Ø¿ô¤Î¼ïÎà¤Ë±þ¤¸¤Æ¡¢¿ô³ØŪ¤ËÀµ¤·¤¤Éä¹æ¤Î +が +1 か \-1 の場合、 +極エラー (pole error) が発生し、 +関数の種類に応じて、数学的に正しい符号の .BR HUGE_VAL , .BR HUGE_VALF , .BR HUGE_VALL -¤¬¤½¤ì¤¾¤ìÊÖ¤µ¤ì¤ë¡£ +がそれぞれ返される。 .I x -¤ÎÀäÂÐÃͤ¬ 1 ¤è¤êÂ礭¤¤¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ -NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +の絶対値が 1 より大きい場合、 +領域エラー (domain error) が発生し、 +NaN が返される。 .\" .\" POSIX.1-2001 documents an optional range error for subnormal x; .\" glibc 2.8 does not do this. -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬ \-1 ¤è¤ê¾®¤µ¤¤¤« +1 ¤è¤êÂ礭¤¤ +領域エラー (domain error): \fIx\fP が \-1 より小さいか +1 より大きい .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë¡£ -̵¸ú (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +無効 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP -¶Ë¥¨¥é¡¼ (pole error): \fIx\fP ¤¬ +1 ¤« \-1 +極エラー (pole error): \fIx\fP が +1 か \-1 .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë (⤷¡Ö¥Ð¥°¡×¤ÎÀá¤â»²¾È)¡£ -0 ¤Ë¤è¤ë½ü»» (divide-by-zero) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される (但し「バグ」の節も参照)。 +0 による除算 (divide-by-zero) 浮動小数点例外 .RB ( FE_DIVBYZERO ) -¤¬¾å¤¬¤ë¡£ -.SH ½àµò +が上がる。 +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ¥Ð¥° +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 +.SH バグ .\" Bug: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6759 .\" This can be seen in sysdeps/ieee754/k_standard.c -glibc 2.9 ¤È¤½¤ì°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ -¶Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¡¢POSIX ¤ÇÍ׵ᤵ¤ì¤Æ¤¤¤ë +glibc 2.9 とそれ以前のバージョンでは、 +極エラーが発生した場合、POSIX で要求されている .B ERANGE -¤Ç¤Ï¤Ê¤¯ +ではなく .B EDOM -¤¬ +が .I errno -¤ËÀßÄꤵ¤ì¤ë¡£ -¥Ð¡¼¥¸¥ç¥ó 2.10 °Ê¹ß¤Î glibc ¤Ç¤Ï¡¢Àµ¤·¤¤Æ°ºî¤ò¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +に設定される。 +バージョン 2.10 以降の glibc では、正しい動作をする。 +.SH 関連項目 .BR acosh (3), .BR asinh (3), .BR catanh (3), diff --git a/release/man3/atexit.3 b/release/man3/atexit.3 index bfe363a7..90328a43 100644 --- a/release/man3/atexit.3 +++ b/release/man3/atexit.3 @@ -35,98 +35,98 @@ .\" Updated 2008-12-26, Akihiro MOTOKI , LDP v3.15 .\" .TH ATEXIT 3 2008-12-05 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -atexit \- ¥×¥í¥»¥¹¤¬Àµ¾ï½ªÎ»¤·¤¿»þ¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë´Ø¿ô¤òÅÐÏ¿¤¹¤ë -.SH ½ñ¼° +.SH 名前 +atexit \- プロセスが正常終了した時に呼び出される関数を登録する +.SH 書式 .nf .B #include .sp .BI "int atexit(void (*" function )(void)); .fi -.SH ÀâÌÀ +.SH 説明 .BR atexit () -´Ø¿ô¤Ï¡¢Í¿¤¨¤é¤ì¤¿ \fIfunction\fP ¤ò¡¢ +関数は、与えられた \fIfunction\fP を、 .BR exit (3) -¤ä¥×¥í¥°¥é¥à¤Î \fImain\fP() -´Ø¿ô¤«¤é¤ÎÊÖ¤ê¤òÄ̤¸¤Æ¡¢¥×¥í¥»¥¹¤¬Àµ¾ï½ªÎ»¤·¤¿»þ¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë -´Ø¿ô¤È¤·¤ÆÅÐÏ¿¤¹¤ë¡£ -¤³¤³¤ÇÄêµÁ¤µ¤ì¤¿´Ø¿ô¤Ï¡¢ÅÐÏ¿¤·¤¿½çÈ֤ȤϵդνçÈ֤ǸƤӽФµ¤ì¤ë¡£ -ÅÐÏ¿¤·¤¿´Ø¿ô¤Ë°ú¤­¿ô¤ÏÅϤµ¤ì¤Ê¤¤¡£ +やプログラムの \fImain\fP() +関数からの返りを通じて、プロセスが正常終了した時に呼び出される +関数として登録する。 +ここで定義された関数は、登録した順番とは逆の順番で呼び出される。 +登録した関数に引き数は渡されない。 -Ʊ¤¸´Ø¿ô¤òÊ£¿ô²óÅÐÏ¿¤·¤Æ¤â¤è¤¤¡£ -ÅÐÏ¿¤µ¤ì¤¿´Ø¿ô¤ÏÅÐÏ¿ 1 ²ó¤Ë¤Ä¤­ 1 ²ó¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ +同じ関数を複数回登録してもよい。 +登録された関数は登録 1 回につき 1 回呼び出される。 .LP -POSIX.1-2001 ¤Ç¤Ï¡¢¤³¤Î¤è¤¦¤Ê´Ø¿ô¤ò¾¯¤Ê¤¯¤È¤â +POSIX.1-2001 では、このような関数を少なくとも .B ATEXIT_MAX -¸Ä (32¸Ä) ÅÐÏ¿¤Ç¤­¤ë¤³¤È¤òÍ׵ᤷ¤Æ¤¤¤ë¡£ -¤½¤Î¼ÂÁõ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¼ÂºÝ¤Î¾å¸Â¤Ï +個 (32個) 登録できることを要求している。 +その実装でサポートされている実際の上限は .BR sysconf (3) -¤ò»È¤Ã¤Æ¼èÆÀ¤Ç¤­¤ë¡£ +を使って取得できる。 .LP .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿¾ì¹ç¡¢»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤ÎÅÐÏ¿¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£ +で作成された場合、子プロセスは親プロセスの登録のコピーを継承する。 .BR exec (3) -¥Õ¥¡¥ß¥ê¡¼¤Î´Ø¿ô¤Î¤¤¤º¤ì¤«¤Î¸Æ¤Ó½Ð¤·¤ËÀ®¸ù¤¹¤ë¤È¡¢ -Á´¤Æ¤ÎÅÐÏ¿¤¬ºï½ü¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +ファミリーの関数のいずれかの呼び出しに成功すると、 +全ての登録が削除される。 +.SH 返り値 .BR atexit () -´Ø¿ô¤Ï¡¢´Ø¿ôÅÐÏ¿¤¬À®¸ù¤·¤¿»þ¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ -¤½¤Î¾¤Î¾ì¹ç¤Ë¤Ï 0 °Ê³°¤ÎÃͤòÊÖ¤¹¡£ -.SH ½àµò +関数は、関数登録が成功した時には 0 を返す。 +その他の場合には 0 以外の値を返す。 +.SH 準拠 SVr4, 4.3BSD, C89, C99, POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .BR atexit () -(¤È +(と .BR on_exit (3)) -¤ò»È¤Ã¤ÆÅÐÏ¿¤µ¤ì¤¿´Ø¿ô¤Ï¡¢ -¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤Ë¤è¤ê¥×¥í¥»¥¹¤¬°Û¾ï½ªÎ»¤·¤¿¾ì¹ç¤Ë¤Ï¸Æ¤Ó½Ð¤µ¤ì¤Ê¤¤¡£ +を使って登録された関数は、 +シグナルの配送によりプロセスが異常終了した場合には呼び出されない。 -ÅÐÏ¿¤µ¤ì¤¿´Ø¿ô¤Î°ì¤Ä¤¬ +登録された関数の一つが .BR _exit (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¡¢»Ä¤ê¤Î´Ø¿ô¤Ï¤É¤ì¤âµ¯Æ°¤µ¤ì¤º¡¢ +を呼び出した場合、残りの関数はどれも起動されず、 .BR exit (3) -¤Ë¤è¤ê¼Â¹Ô¤µ¤ì¤ë¾¤Î¥×¥í¥»¥¹½ªÎ»¥¹¥Æ¥Ã¥×¤Ï¼Â¹Ô¤µ¤ì¤Ê¤¤¡£ +により実行される他のプロセス終了ステップは実行されない。 -POSIX.1-2001 ¤Ç¤Ï¡¢ +POSIX.1-2001 では、 .BR atexit () -¤ò»È¤Ã¤ÆÅÐÏ¿¤µ¤ì¤¿°ì¤Ä¤Î´Ø¿ôÆâ¤Ç¡¢Ê£¿ô²ó +を使って登録された一つの関数内で、複数回 .BR exit (3) -¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Î·ë²Ì¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +を呼び出した際の結果は未定義である。 .\" This can happen on OpenBSD 4.2 for example, and is documented .\" as occurring on FreeBSD as well. .\" Glibc does "the Right Thing" -- invocation of the remaining .\" exit handlers carries on as normal. -(Linux ¤Ç¤Ï¤Ê¤¤¤¬) ¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤Î¾ì¹ç¡¢ -·«¤êÊÖ¤·¤¬Ìµ¸Â¤Ëµ¯¤³¤ë¤³¤È¤Ë¤Ê¤ë¡£ -°Ü¿¢À­¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ +(Linux ではないが) いくつかのシステムでは、この場合、 +繰り返しが無限に起こることになる。 +移植性が必要なプログラムでは、 .BR atexit () -¤ÇÅÐÏ¿¤µ¤ì¤¿´Ø¿ôÆâ¤Ç +で登録された関数内で .BR exit (3) -¤òµ¯Æ°¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +を起動すべきではない。 .BR atexit () -¤È +と .BR on_exit (3) -¤Ï¡¢Æ±¤¸¥ê¥¹¥È¤ËÂФ·¤Æ´Ø¿ô¤òÅÐÏ¿¤¹¤ë¡£ -¥×¥í¥»¥¹¤¬Àµ¾ï¤Ë½ªÎ»¤·¤¿ºÝ¤Ë¤Ï¡¢ -¤³¤ì¤é¤ÎÆó¤Ä¤Î´Ø¿ô¤ÇÅÐÏ¿¤µ¤ì¤¿½ç½ø¤ÎµÕ½ç¤Ç¡¢ -ÅÐÏ¿¤µ¤ì¤¿´Ø¿ô¤¬µ¯Æ°¤µ¤ì¤ë¡£ +は、同じリストに対して関数を登録する。 +プロセスが正常に終了した際には、 +これらの二つの関数で登録された順序の逆順で、 +登録された関数が起動される。 -POSIX.1-2001 ¤Ç¤Ï¡¢ +POSIX.1-2001 では、 .BR atexit () -¤ÇÅÐÏ¿¤µ¤ì¤¿´Ø¿ô¤Î¼Â¹Ô¤ò½ªÎ»¤¹¤ë¤¿¤á¤Ë +で登録された関数の実行を終了するために .BR longjmp (3) -¤¬»ÈÍѤµ¤ì¤¿¾ì¹ç¤Î·ë²Ì¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +が使用された場合の結果は未定義である。 .\" In glibc, things seem to be handled okay -.SS Linux ¤Ç¤ÎÃí°Õ -glibc 2.2.3 °Ê¹ß¤Ç¤Ï¡¢¶¦Í­¥é¥¤¥Ö¥é¥ê¤¬¥¢¥ó¥í¡¼¥É¤µ¤ì¤ë¤È¤­¤Ë¸Æ¤Ð¤ì¤ë -´Ø¿ô¤òÅÐÏ¿¤¹¤ë¤¿¤á¤Ë¡¢¶¦Í­¥é¥¤¥Ö¥é¥ê¤ÎÃæ¤Ç +.SS Linux での注意 +glibc 2.2.3 以降では、共有ライブラリがアンロードされるときに呼ばれる +関数を登録するために、共有ライブラリの中で .BR atexit () -(¤È +(と .BR on_exit (3)) -¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使用することができる。 .PP -.SH Îã +.SH 例 .nf #include #include @@ -156,7 +156,7 @@ main(void) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR _exit (2), .BR exit (3), .BR on_exit (3) diff --git a/release/man3/atof.3 b/release/man3/atof.3 index 64cff82a..60ebd0c6 100644 --- a/release/man3/atof.3 +++ b/release/man3/atof.3 @@ -33,33 +33,33 @@ .\" by Kentaro OGAWA .\" .TH ATOF 3 1993-03-29 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -atof \- ʸ»úÎó¤ò double ·¿¤Î¿ôÃͤËÊÑ´¹ -.SH ½ñ¼° +.SH 名前 +atof \- 文字列を double 型の数値に変換 +.SH 書式 .nf .B #include .sp .BI "double atof(const char *" nptr ); .fi -.SH ÀâÌÀ +.SH 説明 .BR atof () -´Ø¿ô¤Ï¡¢\fInptr\fP¤Ë¤è¤Ã¤Æ»Ø¼¨¤µ¤ì¤ëʸ»úÎó¤Î¤Ï¤¸¤á¤ÎÉôʬ¤ò +関数は、\fInptr\fPによって指示される文字列のはじめの部分を .I double -·¿¤Î¿ôÃͤËÊÑ´¹¤¹¤ë¡£ -¤³¤Î¿¶¤ëÉñ¤¤¤Ï¡¢ +型の数値に変換する。 +この振る舞いは、 .BR atof () -´Ø¿ô¤¬¥¨¥é¡¼¤ò¸«¤Ä¤±¤Ê¤¤¤³¤È¤ò½ü¤¤¤Æ¤Ï¡¢ +関数がエラーを見つけないことを除いては、 .sp .in +4n strtod(nptr, (char **) NULL); .in .sp -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -ÊÑ´¹¤µ¤ì¤¿ÃÍ¡£ -.SH ½àµò +と同じである。 +.SH 返り値 +変換された値。 +.SH 準拠 SVr4, POSIX.1-2001, 4.3BSD, C89, C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR atoi (3), .BR atol (3), .BR strtod (3), diff --git a/release/man3/atoi.3 b/release/man3/atoi.3 index 40f53bb5..4ac3dc9a 100644 --- a/release/man3/atoi.3 +++ b/release/man3/atoi.3 @@ -35,9 +35,9 @@ .\" Updated Tue 30 Jan 2001 JST by Kentaro Shirakata .\" .TH ATOI 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -atoi, atol, atoll, atoq \- ʸ»úÎó¤òÀ°¿ô·¿¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +atoi, atol, atoll, atoq \- 文字列を整数型に変換する +.SH 書式 .nf .B #include .sp @@ -51,9 +51,9 @@ atoi, atol, atoll, atoq \- ʸ .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -66,53 +66,53 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR atoi () -´Ø¿ô¤Ï¡¢\fInptr\fP ¤Ë¤è¤Ã¤Æ»Ø¼¨¤µ¤ì¤ëʸ»úÎó¤Î¤Ï¤¸¤á¤ÎÉôʬ¤ò +関数は、\fInptr\fP によって指示される文字列のはじめの部分を .I int -·¿À°¿ô¤ËÊÑ´¹¤¹¤ë¡£ -¤³¤Î¿¶¤ëÉñ¤¤¤Ï¡¢ +型整数に変換する。 +この振る舞いは、 .BR atoi () -´Ø¿ô¤¬¥¨¥é¡¼¤ò¸«¤Ä¤±¤Ê¤¤ÅÀ°Ê³°¤Ï¡¢ +関数がエラーを見つけない点以外は、 .sp .in +4n strtol(nptr, (char **) NULL, 10); .in .sp -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .PP .BR atol () -´Ø¿ô¤È +関数と .BR atoll () -´Ø¿ô¤Ï +関数は .BR atoi () -¤ÈƱÍͤﶤëÉñ¤¤¤ò¤¹¤ë¤¬¡¢ -ʸ»úÎó¤Î¤Ï¤¸¤á¤ÎÉôʬ¤ò¤½¤ì¤¾¤ì \fIlong\fP ¤ä \fIlong long\fP ¤ËÊÑ´¹¤¹¤ë¡£ +と同様の振る舞いをするが、 +文字列のはじめの部分をそれぞれ \fIlong\fP や \fIlong long\fP に変換する。 .BR atoq () -¤Ï +は .BR atoll () -¤Î¸Å¤¤Ì¾Á°¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -ÊÑ´¹¤µ¤ì¤¿ÃÍ¡£ -.SH ½àµò +の古い名前である。 +.SH 返り値 +変換された値。 +.SH 準拠 SVr4, POSIX.1-2001, 4.3BSD, C99. -C89 ¤È POSIX.1-1996 ¤Ë¤Ï +C89 と POSIX.1-1996 には .BR atoi () -¤È +と .BR atol () -¤À¤±¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +だけが含まれている。 .BR atoq () -¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -Èóɸ½à¤Ç¤¢¤ë +は GNU による拡張である。 +.SH 注意 +非標準である .BR atoq () -´Ø¿ô¤Ï libc 4.6.27 ¤ä glibc 2 ¤Ë¤Ï´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -libc5 ¤È libc 4.7 ¤Ë¤Ï¸ºß¤·¤Æ¤¤¤ë (¤¿¤À¤· libc 5.4.44 ¤Þ¤Ç¤Ï -\fI\fP ¤Î¥¤¥ó¥é¥¤¥ó´Ø¿ô¤Î¤ß¤Ç¤¢¤ë)¡£ +関数は libc 4.6.27 や glibc 2 には含まれていないが、 +libc5 と libc 4.7 には存在している (ただし libc 5.4.44 までは +\fI\fP のインライン関数のみである)。 .BR atoll () -´Ø¿ô¤Ï glibc 2 ¤Î¥Ð¡¼¥¸¥ç¥ó 2.0.2 ¤«¤é¸ºß¤·¤Æ¤¤¤ë¤¬¡¢ -libc4 ¤ä libc5 ¤Ë¤Ï¸ºß¤·¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +関数は glibc 2 のバージョン 2.0.2 から存在しているが、 +libc4 や libc5 には存在しない。 +.SH 関連項目 .BR atof (3), .BR strtod (3), .BR strtol (3), diff --git a/release/man3/backtrace.3 b/release/man3/backtrace.3 index 6df34903..3cf7ecfc 100644 --- a/release/man3/backtrace.3 +++ b/release/man3/backtrace.3 @@ -28,10 +28,10 @@ .\" Translated 2007-10-16, Akihiro MOTOKI , LDP v2.66 .\" .TH BACKTRACE 3 2008-06-14 GNU "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 backtrace, backtrace_symbols, backtrace_symbols_fd \- -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¼«¿È¤Ç¤Î¥Ç¥Ð¥Ã¥°¤Î¥µ¥Ý¡¼¥È -.SH ½ñ¼° +アプリケーション自身でのデバッグのサポート +.SH 書式 .B #include .B int backtrace(void @@ -50,126 +50,126 @@ backtrace, backtrace_symbols, backtrace_symbols_fd \- .IB size , .B int .IB fd ); -.SH ÀâÌÀ +.SH 説明 .BR backtrace () -¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥°¥é¥à¤Î¥Ð¥Ã¥¯¥È¥ì¡¼¥¹¤ò +は、呼び出したプログラムのバックトレースを .I buffer -¤¬»Ø¤¹ÇÛÎó¤ËÆþ¤ì¤ÆÊÖ¤¹¡£¥Ð¥Ã¥¯¥È¥ì¡¼¥¹¤Ï¡¢¥×¥í¥°¥é¥à¤Ç -¸½ºßÆ°ºîÃæ¤Î´Ø¿ô¸Æ¤Ó½Ð¤·¤ÎʤӤǤ¢¤ë¡£ +が指す配列に入れて返す。バックトレースは、プログラムで +現在動作中の関数呼び出しの並びである。 .I buffer -¤¬»Ø¤¹ÇÛÎó¤Î¸Ä¡¹¤ÎÍ×ÁÇ¤Ï \fIvoid *\fP ·¿¤Ç¡¢ -Âбþ¤¹¤ë¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤«¤é¤Î¥ê¥¿¡¼¥ó¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +が指す配列の個々の要素は \fIvoid *\fP 型で、 +対応するスタックフレームからのリターンアドレスである。 .I size -°ú¤­¿ô¤Ï +引き数は .I buffer -¤Ë³ÊǼ¤Ç¤­¤ë¥¢¥É¥ì¥¹¤ÎºÇÂç¸Ä¿ô¤ò»ØÄꤹ¤ë¡£ -¥Ð¥Ã¥¯¥È¥ì¡¼¥¹¤¬ +に格納できるアドレスの最大個数を指定する。 +バックトレースが .I size -¤è¤êÂ礭¤¤¾ì¹ç¡¢ +より大きい場合、 .I size -¸Ä¤Îľ¶á¤Î´Ø¿ô¸Æ¤Ó½Ð¤·¤ËÂбþ¤¹¤ë¥¢¥É¥ì¥¹¤¬ÊÖ¤µ¤ì¤ë¡£ -´°Á´¤Ê¥Ð¥Ã¥¯¥È¥ì¡¼¥¹¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Ë¤Ï¡¢³Î¼Â¤Ë +個の直近の関数呼び出しに対応するアドレスが返される。 +完全なバックトレースを取得するためには、確実に .I buffer -¤È +と .I size -¤¬½½Ê¬Â礭¤¯¤Ê¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¡£ +が十分大きくなるようにすること。 .BR backtrace () -¤Ë¤è¤Ã¤Æ +によって .I buffer -¤Ë¥¢¥É¥ì¥¹¤Î½¸¹ç¤¬ÆÀ¤é¤ì¤¿¤é¡¢ +にアドレスの集合が得られたら、 .BR backtrace_symbols () -¤Ë¤è¤Ã¤Æ¡¢¥¢¥É¥ì¥¹½¸¹ç¤ò¡¢¤½¤Î¥¢¥É¥ì¥¹¤ò¥·¥ó¥Ü¥ë¤Çɽ¤·¤¿Ê¸»úÎó¤ÎÇÛÎó -¤ËËÝÌõ¤Ç¤­¤ë¡£ +によって、アドレス集合を、そのアドレスをシンボルで表した文字列の配列 +に翻訳できる。 .I size -°ú¤­¿ô¤Ï +引き数は .I buffer -¤Ë³ÊǼ¤µ¤ì¤¿¥¢¥É¥ì¥¹¤Î¿ô¤ò»ØÄꤹ¤ë¡£ -¸Ä¡¹¤Î¥¢¥É¥ì¥¹¤Î¥·¥ó¥Ü¥ëɽ¸½¤Ï¡¢´Ø¿ô̾ (ÆÃÄê¤Ç¤­¤¿¾ì¹ç)¡¢ -´Ø¿ô¤Ø¤Î¥ª¥Õ¥»¥Ã¥È (16¿Êɽµ­)¡¢¼ÂºÝ¤Î¥ê¥¿¡¼¥ó¥¢¥É¥ì¥¹ (16¿Êɽµ­) -¤«¤é¹½À®¤µ¤ì¤ë¡£ +に格納されたアドレスの数を指定する。 +個々のアドレスのシンボル表現は、関数名 (特定できた場合)、 +関数へのオフセット (16進表記)、実際のリターンアドレス (16進表記) +から構成される。 .BR backtrace_symbols () -¤Î¼Â¹Ô·ë²Ì¤È¤·¤Æ¤Ï¡¢ -ʸ»úÎó¥Ý¥¤¥ó¥¿¤ÎÇÛÎó¤Î¥¢¥É¥ì¥¹¤¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤ÎÇÛÎó¤Ï +の実行結果としては、 +文字列ポインタの配列のアドレスが返される。 +この配列は .BR backtrace_symbols () -¤Ë¤è¤Ã¤Æ +によって .BR malloc (3) -¤µ¤ì¡¢¸Æ¤Ó½Ð¤·Â¦¤Ç free ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(¥Ý¥¤¥ó¥¿¤ÎÇÛÎ󤬻ؤ¹¸Ä¡¹¤Îʸ»úÎó¤Ï free ¤¹¤ëɬÍפϤʤ¤¤·¡¢ -free ¤¹¤Ù¤­¤Ç¤â¤Ê¤¤)¡£ +され、呼び出し側で free しなければならない +(ポインタの配列が指す個々の文字列は free する必要はないし、 +free すべきでもない)。 .BR backtrace_symbols_fd () -¤Ï¡¢ +は、 .BR backtrace_symbols () -¤ÈƱ¤¸°ú¤­¿ô +と同じ引き数 .I buffer -¤È +と .I size -¤ò¤È¤ë¤¬¡¢¸Æ¤Ó½Ð¤·Â¦¤Ëʸ»úÎó¤ÎÇÛÎó¤òÊÖ¤¹Âå¤ï¤ê¤Ë¡¢ -ʸ»úÎó¤ò¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +をとるが、呼び出し側に文字列の配列を返す代わりに、 +文字列をファイルディスクリプタ .I fd -¤Ë 1 ¹Ô¤Ë 1 ¥¨¥ó¥È¥ê¤Î·Á¤Ç½ñ¤­¹þ¤à¡£ +に 1 行に 1 エントリの形で書き込む。 .BR backtrace_symbols_fd () -¤Ï +は .BR malloc (3) -¤ò¸Æ¤Ó½Ð¤µ¤Ê¤¤¡£ -¤½¤Î¤¿¤á¡¢¤³¤ì¤Ë³¤¯´Ø¿ô¤¬¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¾õ¶·¤Ç¤âÍøÍѤǤ­¤ë¡£ -.SH ÊÖ¤êÃÍ +を呼び出さない。 +そのため、これに続く関数が失敗する可能性がある状況でも利用できる。 +.SH 返り値 .BR backtrace () -¤Ï +は .I buffer -¤Ë³ÊǼ¤·¤¿¥¢¥É¥ì¥¹¤Î¸Ä¿ô¤òÊÖ¤¹¡£¤½¤Î¸Ä¿ô¤Ï +に格納したアドレスの個数を返す。その個数は .I size -¤è¤êÂ礭¤¯¤Ê¤ë¤³¤È¤Ï¤Ê¤¤¡£ -ÊÖ¤êÃͤ¬ +より大きくなることはない。 +返り値が .I size -¤è¤ê¾®¤µ¤¤¾ì¹ç¡¢¥Ð¥Ã¥¯¥È¥ì¡¼¥¹Á´ÂΤ¬³ÊǼ¤µ¤ì¤Æ¤¤¤ë¡£ÊÖ¤êÃͤ¬ +より小さい場合、バックトレース全体が格納されている。返り値が .I size -¤ÈÅù¤·¤¤¾ì¹ç¡¢¥Ð¥Ã¥¯¥È¥ì¡¼¥¹¤ÏÀÚ¤êµÍ¤á¤é¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -ÀÚ¤êµÍ¤á¤é¤ì¤¿¾ì¹ç¡¢ºÇ¤â¸Å¤¤¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤Î¥¢¥É¥ì¥¹¤Ï -ÊÖ¤µ¤ì¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¡£ +と等しい場合、バックトレースは切り詰められているかもしれない。 +切り詰められた場合、最も古いスタックフレームのアドレスは +返されないことになる。 .BR backtrace_symbols () -¤Ï¡¢À®¸ù¤¹¤ë¤È¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤Ç +は、成功すると、この呼び出しで .BR malloc (3) -¤µ¤ì¤¿ÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ NULL ¤òÊÖ¤¹¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +された配列へのポインタを返す。 +エラーの場合、 NULL を返す。 +.SH バージョン .BR backtrace (), .BR backtrace_symbols (), .BR backtrace_symbols_fd () -¤Ï¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢´Ø¿ô¤Î¥ê¥¿¡¼¥ó¥¢¥É¥ì¥¹¤¬¥¹¥¿¥Ã¥¯¾å¤Ç¤É¤Î¤è¤¦¤Ë³ÊǼ¤µ¤ì¤ë¤« -¤Ë´Ø¤·¤Æ¤¢¤ë²¾Äê¤òÃÖ¤¤¤Æ¤¤¤ë¡£ -°Ê²¼¤ÎÅÀ¤ËÃí°Õ¡£ +はバージョン 2.1 以降の glibc で提供されている。 +.SH 準拠 +これらの関数は GNU による拡張である。 +.SH 注意 +これらの関数は、関数のリターンアドレスがスタック上でどのように格納されるか +に関してある仮定を置いている。 +以下の点に注意。 .IP * 3 .RB ( gcc (1) -¤Î 0 °Ê³°¤ÎºÇŬ²½¥ì¥Ù¥ë¤Ç°ÅÌۤΤ¦¤Á¤Ë¹Ô¤ï¤ì¤ë) -¥Õ¥ì¡¼¥à¥Ý¥¤¥ó¥¿¤Î¾Êά¤ò¹Ô¤¦¤È¡¢¤³¤ì¤é¤ÎÁ°Äó¤¬Êø¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +の 0 以外の最適化レベルで暗黙のうちに行われる) +フレームポインタの省略を行うと、これらの前提が崩れる可能性がある。 .IP * -¥¤¥ó¥é¥¤¥ó´Ø¿ô¤Ï¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤ò»ý¤¿¤Ê¤¤¡£ +インライン関数はスタックフレームを持たない。 .IP * -ËöÈø¸Æ¤Ó½Ð¤·¤ÎºÇŬ²½ (tail-call optimization) ¤ò¹Ô¤¦¤È¡¢ -¤¢¤ë¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤¬Ê̤Υ¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤òÃÖ¤­´¹¤¨¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +末尾呼び出しの最適化 (tail-call optimization) を行うと、 +あるスタックフレームが別のスタックフレームを置き換える可能性がある。 .PP -¥·¥ó¥Ü¥ë̾¤ÏÆÃÊ̤ʥê¥ó¥«¡¦¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Ê¤¤¤ÈÍøÍѤǤ­¤Ê¤¤¾ì¹ç¤¬¤¢¤ë¡£ -GNU ¥ê¥ó¥«¤ò»ÈÍѤ¹¤ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +シンボル名は特別なリンカ・オプションを使用しないと利用できない場合がある。 +GNU リンカを使用するシステムでは、 .I \-rdynamic -¥ê¥ó¥«¡¦¥ª¥×¥·¥ç¥ó¤ò»È¤¦É¬Íפ¬¤¢¤ë¡£ -"static" ¤Ê´Ø¿ô¤Î¥·¥ó¥Ü¥ë̾¤Ï¸ø³«¤µ¤ì¤º¡¢ -¥Ð¥Ã¥¯¥È¥ì¡¼¥¹¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -.SH Îã -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢ +リンカ・オプションを使う必要がある。 +"static" な関数のシンボル名は公開されず、 +バックトレースでは利用できない点に注意すること。 +.SH 例 +以下のプログラムは、 .BR backtrace () -¤È +と .BR backtrace_symbols () -¤Î»ÈÍÑÎã¤ò¼¨¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -°Ê²¼¤Ë¼¨¤¹¥·¥§¥ë¤Î¥»¥Ã¥·¥ç¥ó¤Ï¡¢ -¤³¤Î¥×¥í¥°¥é¥à¤òÆ°¤«¤·¤¿ºÝ¤Î¼Â¹ÔÎã¤Ç¤¢¤ë¡£ +の使用例を示したものである。 +以下に示すシェルのセッションは、 +このプログラムを動かした際の実行例である。 .nf .in +4n @@ -186,7 +186,7 @@ backtrace() returned 8 addresses \&./prog [0x8048711] .in .fi -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -205,8 +205,8 @@ myfunc3(void) nptrs = backtrace(buffer, SIZE); printf("backtrace() returned %d addresses\\n", nptrs); - /* backtrace_symbols_fd(buffer, nptrs, STDOUT_FILENO) ¤ò - ¸Æ¤Ó½Ð¤·¤Æ¤â¡¢°Ê²¼¤ÈƱÍͤνÐÎϤ¬ÆÀ¤é¤ì¤ë¡£ */ + /* backtrace_symbols_fd(buffer, nptrs, STDOUT_FILENO) を + 呼び出しても、以下と同様の出力が得られる。 */ strings = backtrace_symbols(buffer, nptrs); if (strings == NULL) { @@ -220,7 +220,7 @@ myfunc3(void) free(strings); } -static void /* "static" ¤Ï¥·¥ó¥Ü¥ë¤ò¸ø³«¤·¤Ê¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë */ +static void /* "static" はシンボルを公開しないことを意味する */ myfunc2(void) { myfunc3(); @@ -247,7 +247,7 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR gcc (1), .BR ld (1), .BR dlopen (3), diff --git a/release/man3/basename.3 b/release/man3/basename.3 index f0d43878..97cac889 100644 --- a/release/man3/basename.3 +++ b/release/man3/basename.3 @@ -28,9 +28,9 @@ .\" Updated 2007-05-01, Akihiro MOTOKI, LDP v2.46 .\" .TH BASENAME 3 2009-03-30 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -basename, dirname \- ¥Ñ¥¹Ì¾¤ò²òÀϤ·¤Æ³ÆÉôʬ¤ò¼è¤ê½Ð¤¹ -.SH ½ñ¼° +.SH 名前 +basename, dirname \- パス名を解析して各部分を取り出す +.SH 書式 .nf .B #include .sp @@ -38,74 +38,74 @@ basename, dirname \- .BI "char *basename(char *" path ); .fi -.SH ÀâÌÀ -·Ù¹ð: +.SH 説明 +警告: .BR basename () -¤Ë¤Ï°Û¤Ê¤ë¥Ð¡¼¥¸¥ç¥ó¤¬ 2¤Ä¸ºß¤¹¤ë¡£²¼µ­¤Î¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¤Î¤³¤È¡£ +には異なるバージョンが 2つ存在する。下記の「注意」の節を参照のこと。 .LP .BR dirname () -¤È +と .BR basename () -¤Ï¡¢NULL ¤Ç½ªÃ¼¤µ¤ì¤¿¥Ñ¥¹Ì¾¤Îʸ»úÎó¤ò¡¢ -¥Ç¥£¥ì¥¯¥È¥êÉôʬ¡¦¥Õ¥¡¥¤¥ë̾Éôʬ¤Ëʬ³ä¤¹¤ë¡£ -Ä̾ï¤Ï¡¢ +は、NULL で終端されたパス名の文字列を、 +ディレクトリ部分・ファイル名部分に分割する。 +通常は、 .BR dirname () -¤ÏºÇ¸å¤Î \(aq/\(aq ¤Þ¤Ç¤ÎÉôʬ (ºÇ¸å¤Î \(aq/\(aq ¤Ï´Þ¤Þ¤Ê¤¤) ¤òÊÖ¤·¡¢ +は最後の \(aq/\(aq までの部分 (最後の \(aq/\(aq は含まない) を返し、 .BR basename () -¤ÏºÇ¸å¤Î \(aq/\(aq °Ê¹ß¤ÎÉôʬ¤òÊÖ¤¹¡£ -ʸ»úÎó¤ÎËöÈø¤Ë¤Ä¤¤¤¿ \(aq/\(aq ʸ»ú¤Ï¡¢¥Ñ¥¹Ì¾¤Î°ìÉô¤È¤Ï¤ß¤Ê¤µ¤ì¤Ê¤¤¡£ +は最後の \(aq/\(aq 以降の部分を返す。 +文字列の末尾についた \(aq/\(aq 文字は、パス名の一部とはみなされない。 .PP .I path -¤Ë '/' ʸ»ú¤¬¤Ê¤¤¾ì¹ç¤Ï¡¢ +に '/' 文字がない場合は、 .BR dirname () -¤Ïʸ»úÎó "." ¤òÊÖ¤·¡¢ +は文字列 "." を返し、 .BR basename () -¤Ï +は .I path -¤ÈƱ¤¸ÆâÍƤòÊÖ¤¹¡£ +と同じ内容を返す。 .I path -¤¬Ê¸»úÎó "/" ¤ËÅù¤·¤¤¾ì¹ç¤Ï¡¢ +が文字列 "/" に等しい場合は、 .BR dirname () -¤â +も .BR basename () -¤âʸ»úÎó "/" ¤òÊÖ¤¹¡£ +も文字列 "/" を返す。 .I path -¤¬ NULL ¥Ý¥¤¥ó¥¿¤À¤Ã¤¿¤ê¡¢¶õ¤Îʸ»úÎó¤ò»Ø¤·¤Æ¤¤¤¿¾ì¹ç¤Ï¡¢ +が NULL ポインタだったり、空の文字列を指していた場合は、 .BR dirname () -¤â +も .BR basename () -¤âʸ»úÎó "." ¤òÊÖ¤¹¡£ +も文字列 "." を返す。 .PP .BR dirname () -¤ÎÊÖ¤·¤¿Ê¸»úÎó¡¢ "/"¡¢ +の返した文字列、 "/"、 .BR basename () -¤ÎÊÖ¤·¤¿Ê¸»úÎó¡¢ -¤ò½ç¤Ë·ë¹ç¤¹¤ë¤È¡¢´°Á´¤Ê¥Ñ¥¹Ì¾¤¬ÆÀ¤é¤ì¤ë¡£ +の返した文字列、 +を順に結合すると、完全なパス名が得られる。 .PP .BR dirname () -¤È +と .BR basename () -¤Ï¡¢¤¤¤º¤ì¤â +は、いずれも .I path -¤ÎÆâÍƤòÊѹ¹¤¹¤ë¤³¤È¤¬¤¢¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹ºÝ¤Ë¤Ï -¥³¥Ô¡¼¤òÅϤ¹¤Î¤¬Ë¾¤Þ¤·¤¤¡£ +の内容を変更することがある。 +したがって、これらの関数を呼び出す際には +コピーを渡すのが望ましい。 .PP -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ÀÅŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¤³¤È¤¬¤¢¤ê¡¢ -¤³¤ì¤é¤ÎÎΰè¤Ï¸å¤Î´Ø¿ô¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤Þ¤¿¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は、静的に割り当てられたメモリへのポインタを返すことがあり、 +これらの領域は後の関数呼び出しで上書きされるかもしれない。 +また、これらの関数は .I path -¤Î°ìÉôʬ¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¤³¤È¤â¤¢¤ë¡£¤½¤Î¤¿¤á¡¢ +の一部分を指すポインタを返すこともある。そのため、 .I path -¤Ç»²¾È¤µ¤ì¤ëʸ»úÎó¤Ï¡¢´Ø¿ô¤¬ÊÖ¤¹¥Ý¥¤¥ó¥¿¤¬ÉÔÍפˤʤë¤Þ¤Ç¤Ï -Êѹ¹¤·¤¿¤ê free ¤·¤¿¤ê¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +で参照される文字列は、関数が返すポインタが不要になるまでは +変更したり free したりすべきではない。 .PP -°Ê²¼¤Î°ìÏ¢¤ÎÎã (SUSv2 ¤«¤é°úÍÑ) ¤Ï¡¢ -¤¤¤í¤¤¤í¤Ê path ¤ËÂФ·¤Æ +以下の一連の例 (SUSv2 から引用) は、 +いろいろな path に対して .BR dirname () -¤È +と .BR basename () -¤¬ÊÖ¤¹Ê¸»úÎó¤òɽ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +が返す文字列を表したものである。 .sp .nf .B "path dirname basename" @@ -116,53 +116,53 @@ basename, dirname \- "." "." "." ".." "." ".." .fi -.SH ÊÖ¤êÃÍ +.SH 返り値 .BR dirname () -¤È +と .BR basename () -¤Ï¡¢¤¤¤º¤ì¤â NULL ¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -(¤³¤ì¤é¤Î¥Ý¥¤¥ó¥¿¤ò +は、いずれも NULL で終端された文字列へのポインタを返す。 +(これらのポインタを .BR free (3) -¤ËÅϤµ¤Ê¤¤¤³¤È¡£) -.SH ½àµò +に渡さないこと。) +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .BR basename () -¤Ë¤Ï 2¼ïÎà¤Î°Û¤Ê¤ë¥Ð¡¼¥¸¥ç¥ó¤¬¤¢¤ë¡£ -°ì¤Ä¤Ï¤¹¤Ç¤ËÀâÌÀ¤·¤¿ POSIX ¥Ð¡¼¥¸¥ç¥ó¤Ç¤¢¤ê¡¢ -¤â¤¦°ì¤Ä¤Ï GNU ¥Ð¡¼¥¸¥ç¥ó¤Ç¤¢¤ë¡£ -GNU ¥Ð¡¼¥¸¥ç¥ó¤ò»ÈÍѤ¹¤ë¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë¡£ +には 2種類の異なるバージョンがある。 +一つはすでに説明した POSIX バージョンであり、 +もう一つは GNU バージョンである。 +GNU バージョンを使用するには以下のようにする。 .br .nf -.BR " #define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR " #define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B " #include " .fi -GNU ¥Ð¡¼¥¸¥ç¥ó¤Ï°ú¤­¿ô¤òÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ê¤¯¡¢ +GNU バージョンは引き数を変更することはなく、 .I path -¤ÎËöÈø¤¬ '/'¤Î¾ì¹ç¤Ï¶õ¤Îʸ»úÎó¤òÊÖ¤¹¡£ -ÆÃ¤Ë +の末尾が '/'の場合は空の文字列を返す。 +特に .I path -¤¬ "/" ¤Î¾ì¹ç¤â¶õʸ»úÎó¤òÊÖ¤¹¡£ +が "/" の場合も空文字列を返す。 .BR dirname () -¤Ë¤Ï GNU ¥Ð¡¼¥¸¥ç¥ó¤Ï¤Ê¤¤¡£ +には GNU バージョンはない。 .LP -glibc ¤Ç¤Ï¡¢ +glibc では、 .I -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤È POSIX ¥Ð¡¼¥¸¥ç¥ó¤Î +をインクルードすると POSIX バージョンの .BR basename () -¤¬»ÈÍѤµ¤ì¡¢¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï GNU ¥Ð¡¼¥¸¥ç¥ó¤È¤Ê¤ë¡£ -.SH ¥Ð¥° -glibc ¤Î POSIX ¥Ð¡¼¥¸¥ç¥ó¤Î¼ÂÁõ¤Ç¤Ï¡¢°ú¤­¿ô¤ÎÆâÍƤ¬Êѹ¹¤µ¤ì¡¢ -°ú¤­¿ô¤Ë ("/usr/" ¤Ê¤É¤Î) Äê¿ôʸ»úÎó¤ò»ØÄꤵ¤ì¤ë¤È -¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó¥Õ¥©¡¼¥ë¥È¤òµ¯¤³¤¹¡£ -¥Ð¡¼¥¸¥ç¥ó 2.2.1 °ÊÁ°¤Î glibc ¤Ç¤Ï¡¢ glibc ¤Î +が使用され、それ以外の場合は GNU バージョンとなる。 +.SH バグ +glibc の POSIX バージョンの実装では、引き数の内容が変更され、 +引き数に ("/usr/" などの) 定数文字列を指定されると +セグメンテーションフォールトを起こす。 +バージョン 2.2.1 以前の glibc では、 glibc の .BR dirname () -¤ÏËöÈø¤¬ \(aq/\(aq ʸ»ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥Ñ¥¹Ì¾¤òÀµ¤·¤¯°·¤¨¤º¡¢ -°ú¤­¿ô¤¬ NULL ¤À¤È¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó¥Õ¥©¡¼¥ë¥È¤òµ¯¤³¤·¤¿¡£ -.SH Îã +は末尾が \(aq/\(aq 文字になっているパス名を正しく扱えず、 +引き数が NULL だとセグメンテーションフォールトを起こした。 +.SH 例 .in +4n .nf char *dirc, *basec, *bname, *dname; @@ -175,6 +175,6 @@ bname = basename(basec); printf("dirname=%s, basename=%s\\n", dname, bname); .fi .in -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR basename (1), .BR dirname (1) diff --git a/release/man3/bcmp.3 b/release/man3/bcmp.3 index cc6ff1d8..7ca7ef0f 100644 --- a/release/man3/bcmp.3 +++ b/release/man3/bcmp.3 @@ -33,41 +33,41 @@ .\" Updated Sun Feb 23 JST 2003 by Kentaro Shirakata .\" .TH BCMP 3 2008-08-06 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -bcmp \- ¥Ð¥¤¥ÈÎó¤òÈæ³Ó¤¹¤ë -.SH ½ñ¼° +.SH 名前 +bcmp \- バイト列を比較する +.SH 書式 .nf .B #include .sp .BI "int bcmp(const void *" s1 ", const void *" s2 ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .BR bcmp () -¤Ï¡¢2 ¤Ä¤Î¥Ð¥¤¥ÈÎó +は、2 つのバイト列 .I s1 -¤È +と .I s2 -¤ÎÀèƬ +の先頭 .I n -¥Ð¥¤¥È¤ò -Èæ³Ó¤¹¤ë¡£2 ¤Ä¤¬Åù¤·¤¤¤«¡¢ÆÃ¤Ë +バイトを +比較する。2 つが等しいか、特に .I n -¤¬ 0 ¤Î¾ì¹ç +が 0 の場合 .BR bcmp () -¤Ï 0 ¤òÊÖ¤¹¡£ -¤µ¤â¤Ê¤±¤ì¤Ð 0 °Ê³°¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -¥Ð¥¤¥ÈÎó¤¬Åù¤·¤¤¾ì¹ç¤Ï 0 ¡¢Åù¤·¤¯¤Ê¤¤¾ì¹ç¤Ï 0 °Ê³°¤òÊÖ¤¹¡£ -.SH ½àµò +は 0 を返す。 +さもなければ 0 以外を返す。 +.SH 返り値 +バイト列が等しい場合は 0 、等しくない場合は 0 以外を返す。 +.SH 準拠 4.3BSD. -¤³¤Î´Ø¿ô¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë (POSIX.1-2001 ¤Ç¤Ï -²áµî¤Î̾»Ä (LEGACY) ¤È¤µ¤ì¤Æ¤¤¤ë)¡£¿·¤·¤¤¥×¥í¥°¥é¥à¤Ç¤Ï +この関数は廃止予定である (POSIX.1-2001 では +過去の名残 (LEGACY) とされている)。新しいプログラムでは .BR memcmp (3) -¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£ -POSIX.1-2008 ¤Ç¤Ï +を使うべきである。 +POSIX.1-2008 では .BR bcmp () -¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +の仕様が削除されている。 +.SH 関連項目 .BR memcmp (3), .BR strcasecmp (3), .BR strcmp (3), diff --git a/release/man3/bcopy.3 b/release/man3/bcopy.3 index 15a394b0..bcc60fd1 100644 --- a/release/man3/bcopy.3 +++ b/release/man3/bcopy.3 @@ -35,42 +35,42 @@ .\" Updated Sun Feb 23 JST 2003 by Kentaro Shirakata .\" .TH BCOPY 3 2009-03-15 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -bcopy \- ¥Ð¥¤¥ÈÎó¤ò¥³¥Ô¡¼¤¹¤ë -.SH ½ñ¼° +.SH 名前 +bcopy \- バイト列をコピーする +.SH 書式 .nf .B #include .sp .BI "void bcopy(const void *" src ", void *" dest ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .BR bcopy () -¤Ï +は .I src -¤«¤éÀèƬ +から先頭 .I n -¥Ð¥¤¥È¤ò +バイトを .I dest -¤Ë¥³¥Ô¡¼¤¹¤ë¡£ -Îΰ褬½Å¤Ê¤Ã¤Æ¤¤¤Æ¤â¡¢·ë²Ì¤ÏÀµ¤·¤¤¤â¤Î¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -¤Ê¤·¡£ -.SH ½àµò +にコピーする。 +領域が重なっていても、結果は正しいものである。 +.SH 返り値 +なし。 +.SH 準拠 4.3BSD. -¤³¤Î´Ø¿ô¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë (POSIX.1-2001 ¤Ç¤Ï -²áµî¤Î̾»Ä (LEGACY) ¤È¤µ¤ì¤Æ¤¤¤ë)¡£¿·¤·¤¤¥×¥í¥°¥é¥à¤Ç¤Ï +この関数は廃止予定である (POSIX.1-2001 では +過去の名残 (LEGACY) とされている)。新しいプログラムでは .BR memcpy () -¤ä +や .BR memmove () -¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +を使用すべきである。 .BR memcpy () -¤ä +や .BR memmove () -¤Ç¤Ï¡¢ºÇ½é¤Î 2 ¤Ä¤Î°ú¿ô¤Î½ç½ø¤¬Æþ¤ìÂؤï¤Ã¤Æ¤¤¤ë¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -POSIX.1-2008 ¤Ç¤Ï¡¢ +では、最初の 2 つの引数の順序が入れ替わっていることに注意すること。 +POSIX.1-2008 では、 .BR bcopy () -¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +の仕様が削除されている。 +.SH 関連項目 .BR memccpy (3), .BR memcpy (3), .BR memmove (3), diff --git a/release/man3/bindresvport.3 b/release/man3/bindresvport.3 index 2bcb36dd..850bc6c3 100644 --- a/release/man3/bindresvport.3 +++ b/release/man3/bindresvport.3 @@ -31,80 +31,80 @@ .\" Updated 2008-12-24, Akihiro MOTOKI , LDP v3.15 .\" .TH BINDRESVPORT 3 2008-12-03 "" "Linux Programmer's Manual" -.SH ̾Á° -bindresvport \- ¥½¥±¥Ã¥È¤òÆø¢ IP ¥Ý¡¼¥È¤Ë¥Ð¥¤¥ó¥É¤¹¤ë -.SH ½ñ¼° +.SH 名前 +bindresvport \- ソケットを特権 IP ポートにバインドする +.SH 書式 .nf .B #include .B #include .LP .BI "int bindresvport(int " sockfd ", struct sockaddr_in *" sin ); .fi -.SH ÀâÌÀ +.SH 説明 .LP .BR bindresvport () -¤Ï¡¢¥½¥±¥Ã¥È¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÆø¢ÌµÌ¾ (privileged anonymous) IP ¥Ý¡¼¥È¤Ë -¥Ð¥¤¥ó¥É¤¹¤ë¤Î¤Ë»È¤¦¡£Æø¢ÌµÌ¾ IP ¥Ý¡¼¥È¤È¤Ï¡¢ -¥Ý¡¼¥ÈÈֹ椬 512 ¤«¤é 1023 ¤ÎÈϰϤ«¤éǤ°Õ¤ËÁªÂò¤µ¤ì¤ë¥Ý¡¼¥È¤Ç¤¢¤ë¡£ +は、ソケット・ディスクリプタを特権無名 (privileged anonymous) IP ポートに +バインドするのに使う。特権無名 IP ポートとは、 +ポート番号が 512 から 1023 の範囲から任意に選択されるポートである。 .\" Glibc actually starts searching with a port # in the range 600 to 1023 .BR bindresvport () -¤Ë¤è¤Ã¤Æ¼Â¹Ô¤µ¤ì¤¿ +によって実行された .BR bind (2) -¤¬À®¸ù¤·¡¢ +が成功し、 .I sin -¤¬ NULL °Ê³°¤Î¾ì¹ç¡¢¼ÂºÝ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥Ý¡¼¥ÈÈֹ椬 +が NULL 以外の場合、実際に割り当てられたポート番号が .I sin\->sin_port -¤ËÆþ¤ì¤ÆÊÖ¤µ¤ì¤ë¡£ +に入れて返される。 .I sin -¤Ë¤Ï NULL ¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¡¢¤½¤Î¾ì¹ç¤Ë¤Ï +には NULL を指定することもでき、その場合には .I sin\->sin_family -¤Ï°ÅÌۤΤ¦¤Á¤Ë +は暗黙のうちに .B AF_INET -¤È¤ß¤Ê¤µ¤ì¤ë¡£ -¤·¤«¤·¡¢¤³¤Î¾ì¹ç¤Ë¤Ï¡¢ +とみなされる。 +しかし、この場合には、 .BR bindresvport () -¤Ï¼ÂºÝ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥Ý¡¼¥ÈÈÖ¹æ¤òÊÖ¤¹¼êÃʤò»ý¤¿¤Ê¤¤ -(³ä¤êÅö¤Æ¤é¤ì¤¿¥Ý¡¼¥ÈÈÖ¹æ¤Ï¡¢¸å¤Ç +は実際に割り当てられたポート番号を返す手段を持たない +(割り当てられたポート番号は、後で .BR getsockname (2) -¤ò»È¤Ã¤Æ¼èÆÀ¤Ç¤­¤ë)¡£ -.SH ÊÖ¤êÃÍ +を使って取得できる)。 +.SH 返り値 .BR bindresvport () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は成功すると 0 を返す。それ以外の場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤Î¸¶°ø¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーの原因を示す値を設定する。 +.SH エラー .BR bindresvport () -¤Ï +は .BR bind (2) -¤ÈƱ¤¸¸¶°ø¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¤µ¤é¤Ë¡¢°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤³¤È¤¬¤¢¤ë: +と同じ原因で失敗する可能性がある。 +さらに、以下のエラーが発生することがある: .TP .BR EACCES -¸Æ¤Ó½Ð¤·¸µ¤¬¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤ÎÆø¢¤ò»ý¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿ (¤è¤êÀµ³Î¤Ë¸À¤¦¤È¡¢ +呼び出し元がスーパーユーザの特権を持っていなかった (より正確に言うと、 .B CAP_NET_BIND_SERVICE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë)¡£ +ケーパビリティが必要である)。 .TP .B EADDRINUSE -Á´¤Æ¤ÎÆø¢¥Ý¡¼¥È¤¬»ÈÍÑÃæ¤Ç¤¢¤ë¡£ +全ての特権ポートが使用中である。 .TP -.BR EAFNOSUPPORT " (glibc 2.7 °ÊÁ°¤Ç¤Ï " EPFNOSUPPORT ")" +.BR EAFNOSUPPORT " (glibc 2.7 以前では " EPFNOSUPPORT ")" .I sin -¤¬ NULL °Ê³°¤Ç¡¢¤«¤Ä +が NULL 以外で、かつ .I sin->sin_family -¤¬ +が .B AF_INET -¤Ç¤Ê¤«¤Ã¤¿¡£ -.SH ½àµò -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -BSD, Solaris ¤ª¤è¤Ó¤½¤Î¾¤Î¿¤¯¤Î¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¡£ -.SH Ãí°Õ +でなかった。 +.SH 準拠 +POSIX.1-2001 にはない。 +BSD, Solaris およびその他の多くのシステムに存在する。 +.SH 注意 .LP .BR bindresvport () -¤Î¤¤¤¯¤Ä¤«¤Î¼ÂÁõ¤È°Û¤Ê¤ê¡¢glibc ¤Î¼ÂÁõ¤Ç¤Ï¸Æ¤Ó½Ð¤·¸µ¤¬ +のいくつかの実装と異なり、glibc の実装では呼び出し元が .I sin\->sin_port -¤ÇÅϤ·¤¿ÃͤϤɤó¤ÊÃͤǤ¢¤Ã¤Æ¤â̵»ë¤µ¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +で渡した値はどんな値であっても無視される。 +.SH 関連項目 .BR bind (2), .BR getsockname (2) diff --git a/release/man3/bsd_signal.3 b/release/man3/bsd_signal.3 index 505d59ea..e8d1391b 100644 --- a/release/man3/bsd_signal.3 +++ b/release/man3/bsd_signal.3 @@ -24,80 +24,80 @@ .\" all rights reserved. .\" Translated 2007-06-02, Akihiro MOTOKI .\" -.\"WORD: reliable ¿®ÍêÀ­¤Î¤¢¤ë -.\"WORD: unreliable ¿®ÍêÀ­¤Ë·ç¤±¤ë -.\"WORD: signal semantics ¥·¥°¥Ê¥ë½èÍýÊý¼° +.\"WORD: reliable 信頼性のある +.\"WORD: unreliable 信頼性に欠ける +.\"WORD: signal semantics シグナル処理方式 .\" .TH BSD_SIGNAL 3 2009-03-15 "" "Linux Programmer's Manual" -.SH ̾Á° -bsd_signal \- BSD Êý¼°¤Î¥·¥°¥Ê¥ë½èÍý -.SH ½ñ¼° -.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) »²¾È */" +.SH 名前 +bsd_signal \- BSD 方式のシグナル処理 +.SH 書式 +.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .B typedef void (*sighandler_t)(int); .sp .BI "sighandler_t bsd_signal(int " signum ", sighandler_t " handler ); -.SH ÀâÌÀ +.SH 説明 .BR bsd_signal () -´Ø¿ô¤Ï +関数は .BR signal (2) -¤ÈƱ¤¸°ú¤­¿ô¤ò¤È¤ê¡¢Æ±¤¸½èÍý¤ò¼Â¹Ô¤¹¤ë¡£ +と同じ引き数をとり、同じ処理を実行する。 -ξ¼Ô¤Î°ã¤¤¤Ï¡¢ +両者の違いは、 .BR bsd_signal () -¤Ç¤Ï¿®ÍêÀ­¤Î¤¢¤ë¥·¥°¥Ê¥ë½èÍýÊý¼°¤ÎÄ󶡤¬Êݾڤµ¤ì¤Æ¤¤¤ë¤³¤È¤Ç¤¢¤ë¡£ -¿®ÍêÀ­¤Î¤¢¤ë¥·¥°¥Ê¥ë½èÍýÊý¼°¤Ï°Ê²¼¤ÎÆÃħ¤ò»ý¤Ä¡£ -a) ¥Ï¥ó¥É¥é¤¬µ¯Æ°¤µ¤ì¤¿¾ì¹ç¤Ë¡¢¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡ (disposition) ¤¬ -¥Ç¥Õ¥©¥ë¥È¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤Ê¤¤¡¢ -b) ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Î¼Â¹ÔÃæ¤Ï¡¢¤½¤ì°Ê¹ß¤ËȯÀ¸¤·¤¿Æ±¤¸¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤¬ -¥Ö¥í¥Ã¥¯¤µ¤ì¤Ê¤¤¡¢ -c) ¥Ï¥ó¥É¥é¤¬Ää»ßÃæ¤Î (blocking ¤·¤Æ¤¤¤ë) ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò -ÃæÃǤ·¤¿¾ì¹ç¡¢¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¼«Æ°Åª¤ËºÆ³«¤µ¤ì¤ë¡£ -°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ +では信頼性のあるシグナル処理方式の提供が保証されていることである。 +信頼性のあるシグナル処理方式は以下の特徴を持つ。 +a) ハンドラが起動された場合に、シグナルの処理方法 (disposition) が +デフォルトにリセットされない、 +b) シグナルハンドラの実行中は、それ以降に発生した同じシグナルの配送が +ブロックされない、 +c) ハンドラが停止中の (blocking している) システムコールを +中断した場合、そのシステムコールが自動的に再開される。 +移植性が必要なアプリケーションでは、 .BR signal (2) -¤Ç¤³¤ì¤é¤¬Êݾڤµ¤ì¤ë¤³¤È¤òÁ°Äó¤Ë¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +でこれらが保証されることを前提にすべきではない。 +.SH 返り値 .BR bsd_signal () -´Ø¿ô¤Ï¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ÎľÁ°¤ÎÃͤòÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ +関数はシグナルハンドラの直前の値を返す。 +エラーの場合、 .B SIG_ERR -¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +を返す。 +.SH エラー .BR signal (2) -¤ÈƱ¤¸¡£ -.SH ½àµò +と同じ。 +.SH 準拠 4.2BSD, POSIX.1-2001. -POSIX.1-2008 ¤Ç¤Ï +POSIX.1-2008 では .BR bsd_signal () -¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ -Âå¤ï¤ê¤Ë¡¢ +の仕様が削除されている。 +代わりに、 .BR sigaction (2) -¤Î»ÈÍѤ¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ +の使用が推奨されている。 +.SH 注意 .BR bsd_signal () -¤Î»ÈÍѤÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£Âå¤ï¤ê¤Ë +の使用は避けるべきである。代わりに .BR sigaction (2) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 -ºÇ¶á¤Î Linux ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +最近の Linux システムでは、 .BR bsd_signal () -¤È +と .BR signal (2) -¤ÏÅù²Á¤Ç¤¢¤ë¡£¤·¤«¤·¡¢°ÊÁ°¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +は等価である。しかし、以前のシステムでは、 .BR signal (2) -¤Ï¿®ÍêÀ­¤Ë·ç¤±¤ë¥·¥°¥Ê¥ë½èÍýÊý¼°¤òÄ󶡤·¤Æ¤¤¤¿¡£ -¾ÜºÙ¤Ï +は信頼性に欠けるシグナル処理方式を提供していた。 +詳細は .BR signal (2) -¤ò»²¾È¡£ +を参照。 .I sighandler_t -¤ò»È¤Ã¤Æ¤¤¤ë¤Î¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -¤³¤Î·¿¤Ïµ¡Ç½¸¡ºº¥Þ¥¯¥í +を使っているのは GNU による拡張である。 +この型は機能検査マクロ .B _GNU_SOURCE -¤òÄêµÁ¤·¤¿¾ì¹ç¤Ë¤Î¤ßÄêµÁ¤µ¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を定義した場合にのみ定義される。 +.SH 関連項目 .BR sigaction (2), .BR signal (2), .BR sysv_signal (3), diff --git a/release/man3/bsearch.3 b/release/man3/bsearch.3 index 4605f2c1..9b95dded 100644 --- a/release/man3/bsearch.3 +++ b/release/man3/bsearch.3 @@ -32,9 +32,9 @@ .\" Updated 2005-02-26, Akihiro MOTOKI .\" .TH BSEARCH 3 2003-11-01 "" "Linux Programmer's Manual" -.SH ̾Á° -bsearch \- ¥½¡¼¥È¤µ¤ì¤¿ÇÛÎó¤òÆóʬÌÚ¸¡º÷ (binary search) ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +bsearch \- ソートされた配列を二分木検索 (binary search) する +.SH 書式 .nf .B #include .sp @@ -42,33 +42,33 @@ bsearch \- .BI " size_t " nmemb ", size_t " size , .BI " int (*" compar ")(const void *, const void *));" .fi -.SH ÀâÌÀ +.SH 説明 .BR bsearch () -´Ø¿ô¤Ï \fInmemb\fP ¸Ä¤Î¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¤Ê¤ëÇÛÎó¤ò¸¡º÷ -¤¹¤ë¡£ÇÛÎó¤ÎºÇ½é¤Î¥á¥ó¥Ð¡¼¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ï \fIbase\fP ¤Ë¤è¤Ã¤ÆÍ¿¤¨¤ë¡£ -¥Ý¥¤¥ó¥¿ \fIkey\fP ¤Ç»²¾È¤µ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¤È°ìÃפ¹¤ë¥á¥ó¥Ð¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ -ÇÛÎóÃæ¤Î³Æ¡¹¤Î¥á¥ó¥Ð¡¼¤Î¥µ¥¤¥º¤Ï \fIsize\fP ¤Ë¤è¤Ã¤Æ»ØÄꤹ¤ë¡£ +関数は \fInmemb\fP 個のオブジェクトからなる配列を検索 +する。配列の最初のメンバーへのポインタは \fIbase\fP によって与える。 +ポインタ \fIkey\fP で参照されるオブジェクトと一致するメンバーが返される。 +配列中の各々のメンバーのサイズは \fIsize\fP によって指定する。 .PP -ÇÛÎó¤ÎÆâÍƤÏÈæ³Ó´Ø¿ô \fIcompar\fP ¤Ë´ð¤Å¤­¡¢¾º½ç¤Ë¥½¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤±¤ì -¤Ð¤Ê¤é¤Ê¤¤¡£ \fIcompar\fP ¥ë¡¼¥Á¥ó¤ÏÆó¤Ä¤Î°ú¿ô¤ò¼è¤ë´Ø¿ô¤Ç¡¢°ì¤Ä -ÌÜ¤Ë \fIkey\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¡¢¼¡¤ËÇÛÎó¤Î¥á¥ó¥Ð¡¼¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò¼è¤ë¡£ -¤³¤Î½ç¤Ë»ØÄꤷ¤¿¤È¤­¡¢ \fIkey\fP ¤¬ÇÛÎó¥á¥ó¥Ð¡¼¤è¤ê¾®¤µ¤¤¤È¤­¤Ë¤Ï -Éé¤ÎÀ°¿ô¤ò¡¢Â礭¤¤¤È¤­¤Ë¤ÏÀµ¤ÎÀ°¿ô¤ò¡¢°ìÃפ·¤¿¤È¤­¤Ë¤Ï 0 ¤ò¡¢¤½¤ì¤¾¤ì -\fIcompar\fP ¤ÏÊÖ¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +配列の内容は比較関数 \fIcompar\fP に基づき、昇順にソートされていなけれ +ばならない。 \fIcompar\fP ルーチンは二つの引数を取る関数で、一つ +目に \fIkey\fP へのポインタ、次に配列のメンバーへのポインタを取る。 +この順に指定したとき、 \fIkey\fP が配列メンバーより小さいときには +負の整数を、大きいときには正の整数を、一致したときには 0 を、それぞれ +\fIcompar\fP は返さなければならない。 +.SH 返り値 .BR bsearch () -´Ø¿ô¤Ï¡¢ÇÛÎó¤Î¥á¥ó¥Ð¡¼¤Î¤¦¤Á¡¢°ìÃפ·¤¿¤â¤Î¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò -ÊÖ¤¹¡£¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¤È¤­¤Ï NULL ¤òÊÖ¤¹¡£ \fIkey\fP ¤È°ìÃפ·¤¿¥á¥ó¥Ð¡¼¤¬ -Ê£¿ô¤¢¤ë¤È¤­¡¢¤½¤Î¤¦¤Á¤Î¤É¤Î¥á¥ó¥Ð¡¼¤¬ÊÖ¤µ¤ì¤ë¤«¤Ï¤ï¤«¤é¤Ê¤¤¡£ -.SH ½àµò +関数は、配列のメンバーのうち、一致したものへのポインタを +返す。見つからなかったときは NULL を返す。 \fIkey\fP と一致したメンバーが +複数あるとき、そのうちのどのメンバーが返されるかはわからない。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001, C89, C99. -.SH Îã -°Ê²¼¤ÎÎã¤Ï¡¢ +.SH 例 +以下の例は、 .BR qsort (3) -¤ò»È¤Ã¤Æ¹½Â¤ÂΤÎÇÛÎó¤ÎʤӴ¹¤¨¤ò¹Ô¤Ã¤¿¸å¡¢ -½ê˾¤ÎÍ×ÁǤò +を使って構造体の配列の並び換えを行った後、 +所望の要素を .BR bsearch () -¤ò»È¤Ã¤Æ¼èÆÀ¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +を使って取得するものである。 .sp .nf #include @@ -113,8 +113,8 @@ main(int argc, char **argv) exit(EXIT_SUCCESS); } .fi -.\" ¤³¤ÎÎã¤Ï qsort.3 ¤Ç»²¾È¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +.\" この例は qsort.3 で参照されている。 +.SH 関連項目 .BR hsearch (3), .BR lsearch (3), .BR qsort (3), diff --git a/release/man3/bstring.3 b/release/man3/bstring.3 index c011a67f..2388b1cc 100644 --- a/release/man3/bstring.3 +++ b/release/man3/bstring.3 @@ -35,10 +35,10 @@ .\" Updated Wed Oct 15 JST 2003 by Kentaro Shirakata .\" .TH BSTRING 3 2002-01-20 "" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 bcmp, bcopy, bzero, memccpy, memchr, memcmp, memcpy, memfrob, memmem, -memmove, memset \- ¥Ð¥¤¥ÈÎó¤ÎÁàºî¤ò¹Ô¤Ê¤¦ -.SH ½ñ¼° +memmove, memset \- バイト列の操作を行なう +.SH 書式 .nf .B #include .sp @@ -65,20 +65,20 @@ memmove, memset \- .sp .BI "void *memset(void *" s ", int " c ", size_t " n ); .fi -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï NULL ½ªÃ¼¤¹¤ëɬÍפΤʤ¤Ê¸»úÎó (¥Ð¥¤¥ÈÇÛÎó) ¤ÎÁàºî¤ò¹Ô¤¦¡£ -´Ø¿ô¤Î¾Ü¤·¤¤ÀâÌÀ¤Ï¡¢¤½¤ì¤¾¤ì¤Î man ¥Ú¡¼¥¸¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH Ãí°Õ +.SH 説明 +これらの関数は NULL 終端する必要のない文字列 (バイト配列) の操作を行う。 +関数の詳しい説明は、それぞれの man ページを参照すること。 +.SH 注意 .BR bcmp (), .BR bcopy (), .BR bzero () -´Ø¿ô¤Ï¸Å¤¤¤â¤Î¤Ç¤¢¤ë¡£Âå¤ï¤ê¤Ë +関数は古いものである。代わりに .BR memcmp (), .BR memcpy () .BR memset () -¤ò»È¤¦¤³¤È¡£ -.\" ¸Å¤¤´Ø¿ô¤Ï GNU/Linux °Ê³°¤Î¥·¥¹¥Æ¥à¤Ç¤ÏÍÑ°Õ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤¹¤é¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を使うこと。 +.\" 古い関数は GNU/Linux 以外のシステムでは用意されていない場合すらある。 +.SH 関連項目 .BR bcmp (3), .BR bcopy (3), .BR bzero (3), diff --git a/release/man3/btowc.3 b/release/man3/btowc.3 index 5f2d3004..608b7590 100644 --- a/release/man3/btowc.3 +++ b/release/man3/btowc.3 @@ -15,58 +15,58 @@ .\" all rights reserved. .\" Translated Sep 11 1999, HAYAKAWA Hitoshi .\" -.\"WORD: locale ¥í¥±¡¼¥ë -.\"WORD: convert ¥³¥ó¥Ð¡¼¥È -.\"WORD: single byte ¥·¥ó¥°¥ë¥Ð¥¤¥È -.\"WORD: wide character ¥ï¥¤¥É¥­¥ã¥é¥¯¥¿¡¼ -.\"WORD: state ¾õÂÖ +.\"WORD: locale ロケール +.\"WORD: convert コンバート +.\"WORD: single byte シングルバイト +.\"WORD: wide character ワイドキャラクター +.\"WORD: state 状態 .\" .TH BTOWC 3 2011-09-22 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -btowc \- ¥·¥ó¥°¥ë¥Ð¥¤¥È¤ò¥ï¥¤¥Éʸ»ú¤Ë¥³¥ó¥Ð¡¼¥È¤¹¤ë -.SH ½ñ¼° +.SH 名前 +btowc \- シングルバイトをワイド文字にコンバートする +.SH 書式 .nf .B #include .sp .BI "wint_t btowc(int " c ); .fi -.SH ÀâÌÀ +.SH 説明 .BR btowc () -´Ø¿ô¤Ï½é´ü¥·¥Õ¥È¾õÂÖ¤«¤é»Ï¤Þ¤ëŤµ 1 ¤Î¥Þ¥ë¥Á¥Ð¥¤¥È¤Î¥·¡¼¥±¥ó¥¹¤È¤·¤Æ -²ò¼á¤µ¤ì¡¢\fIc\fP ¤ò¥ï¥¤¥Éʸ»ú¤Ë¥³¥ó¥Ð¡¼¥È¤·¤ÆÊÖ¤¹¡£ -\fIc\fP ¤¬ +関数は初期シフト状態から始まる長さ 1 のマルチバイトのシーケンスとして +解釈され、\fIc\fP をワイド文字にコンバートして返す。 +\fIc\fP が .B EOF -¤â¤·¤¯¤ÏŤµ 1 ¤Î̵¸ú¤Ê¥Þ¥ë¥Á¥Ð¥¤¥È¥·¡¼¥±¥ó¥¹¤Î¾ì¹ç¡¢ +もしくは長さ 1 の無効なマルチバイトシーケンスの場合、 .BR btowc () -´Ø¿ô¤Ï +関数は .B WEOF -¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ +を返す。 +.SH 返り値 .BR btowc () -´Ø¿ô¤Ï¥·¥ó¥°¥ë¥Ð¥¤¥È \fIc\fP ¤«¤é¥³¥ó¥Ð¡¼¥È¤µ¤ì¤¿¥ï¥¤¥Éʸ»ú¤òÊÖ¤¹¡£ -\fIc\fP ¤¬ +関数はシングルバイト \fIc\fP からコンバートされたワイド文字を返す。 +\fIc\fP が .B EOF -¤â¤·¤¯¤ÏŤµ 1 ¤Î̵¸ú¤Ê¥Þ¥ë¥Á¥Ð¥¤¥È¥·¡¼¥±¥ó¥¹¤Î¾ì¹ç¡¢ +もしくは長さ 1 の無効なマルチバイトシーケンスの場合、 .BR btowc () -´Ø¿ô¤Ï +関数は .B WEOF -¤òÊÖ¤¹¡£ -.SH ½àµò +を返す。 +.SH 準拠 C99, POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .BR btowc () -¤Î¿¶¤ëÉñ¤¤¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の振る舞いは、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¡¼¤Ë°Í¸¤¹¤ë¡£ +カテゴリーに依存する。 .PP -¤³¤Î´Ø¿ô¤Ï»ÈÍѤµ¤ì¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£¾õÂÖ(state)¤ò»ý¤Ã¤¿¥¨¥ó¥³¡¼¥É¤Ë¤Ï»È¤¨¤º¡¢ -¥Þ¥ë¥Á¥Ð¥¤¥È¥·¡¼¥±¥ó¥¹¤È¤Ï°ã¤¤¡¢É¬¤º¤·¤â¥·¥ó¥°¥ë¥Ð¥¤¥È -¤ò¼è¤ê°·¤¨¤ë¤È¤Ï¸Â¤é¤Ê¤¤¡£Âå¤ï¤ê¤Ë +この関数は使用されるべきではない。状態(state)を持ったエンコードには使えず、 +マルチバイトシーケンスとは違い、必ずしもシングルバイト +を取り扱えるとは限らない。代わりに .BR mbtowc () -¤«¡¢¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ê +か、スレッドセーフな .BR mbrtowc () -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を使用すること。 +.SH 関連項目 .BR mbtowc (3), .BR mbrtowc (3), .BR wctob (3) diff --git a/release/man3/btree.3 b/release/man3/btree.3 index 37a2204a..982f50f6 100644 --- a/release/man3/btree.3 +++ b/release/man3/btree.3 @@ -37,36 +37,36 @@ .\" by Shouichi Saito .\" Proofed Mon Aug 16 1999 by NAKANO Takeo .\" -.\"WORD: access method ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É -.\"WORD: prefix (comparison) Á°ÃÖÈæ³Ó +.\"WORD: access method アクセスメソッド +.\"WORD: prefix (comparison) 前置比較 .TH BTREE 3 1994-08-18 "" "Linux Programmer's Manual" .UC 7 -.SH ̾Á° -btree \- btree ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤Î¥¢¥¯¥»¥¹¥á¥½¥Ã¥É -.SH ½ñ¼° +.SH 名前 +btree \- btree データベースへのアクセスメソッド +.SH 書式 .nf .ft B #include #include .ft R .fi -.SH ÀâÌÀ -¥ë¡¼¥Á¥ó +.SH 説明 +ルーチン .BR dbopen (3) -¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥é¥¤¥Ö¥é¥ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¢¤ë¡£ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¤Ò¤È¤Ä¤Ë btree ¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¡£ -¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤Î¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ë´Ø¤¹¤ë°ìÈÌŪ¤Êµ­½Ò¤Ï +はデータベースファイルに対するライブラリインターフェースである。 +サポートされているファイルフォーマットのひとつに btree ファイルがある。 +データベースへのアクセスメソッドに関する一般的な記述は .BR dbopen (3) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Ï btree ÆÃÍ­¤Î¾ðÊó¤Ë¤Ä¤¤¤Æ¤Î¤ßµ­½Ò¤¹¤ë¡£ +に書かれている。 +このマニュアルページでは btree 特有の情報についてのみ記述する。 .PP -btree ¥Ç¡¼¥¿¹½Â¤¤Ç¤Ï¡¢¥½¡¼¥È¤µ¤ì¤¿¥Ð¥é¥ó¥¹¥Ä¥ê¡¼¹½Â¤¤Ë -¸ß¤¤¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥­¡¼/¥Ç¡¼¥¿ÂФò³ÊǼ¤·¤Æ¤¤¤ë¡£ +btree データ構造では、ソートされたバランスツリー構造に +互いに関連づけられたキー/データ対を格納している。 .PP .BR dbopen (3) -¤ËÅϤµ¤ì¤ë btree ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤ËÆÃÍ­¤Î¥Ç¡¼¥¿¹½Â¤ÂΤϡ¢ +に渡される btree アクセスメソッドに特有のデータ構造体は、 .I -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Ç¼¡¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +インクルードファイルで次のように定義されている。 .sp .in +4n .nf @@ -84,55 +84,55 @@ typedef struct { .fi .in .sp -¤³¤Î¹½Â¤ÂΤÎÍ×ÁǤò°Ê²¼¤Ë¼¨¤¹¡£ +この構造体の要素を以下に示す。 .TP .I flags .I flags -¤ÎÃͤϰʲ¼¤ÎÃͤΤ¤¤º¤ì¤«¤«¡¢¤³¤ì¤é¤ÎÏÀÍýϤǻØÄꤵ¤ì¤ë¡£ +の値は以下の値のいずれかか、これらの論理和で指定される。 .RS .TP .B R_DUP -¥Ä¥ê¡¼¤ÎÃæ¤Ë¥­¡¼¤Î½ÅÊ£¤òµö¤¹¡£¤¹¤Ê¤ï¤Á¥Ä¥ê¡¼¤ÎÃæ¤ËÁÞÆþ¤µ¤ì¤è¤¦¤È¤·¤Æ¤¤¤ë -¥­¡¼¤¬´û¤Ë¸ºß¤·¤Æ¤¤¤Æ¤â¡¢¤½¤ÎÁÞÆþ¤òµö²Ä¤¹¤ë¡£¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï +ツリーの中にキーの重複を許す。すなわちツリーの中に挿入されようとしている +キーが既に存在していても、その挿入を許可する。デフォルトの動作は .BR dbopen (3) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë¡¢¿·¤·¤¤¥­¡¼¤¬ÁÞÆþ¤µ¤ì¤ë¤È°ìÃפ·¤¿¥­¡¼¤ò¾å½ñ¤­¤¹¤ë¡£ -¤¢¤ë¤¤¤Ï +に記述されているように、新しいキーが挿入されると一致したキーを上書きする。 +あるいは .B R_NOOVERWRITE -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤ÈÁÞÆþ¤Ë¼ºÇÔ¤¹¤ë¡£ +フラグが指定されていると挿入に失敗する。 .B R_DUP -¥Õ¥é¥°¤Ï +フラグは .B R_NOOVERWRITE -¥Õ¥é¥°¤Ë¤è¤Ã¤Æ¾å½ñ¤­¤µ¤ì¤ë¡£¤Ä¤Þ¤ê +フラグによって上書きされる。つまり .B R_NOOVERWRITE -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¥Ä¥ê¡¼¤ËÊ£À½¥­¡¼¤òÁÞÆþ¤·¤è¤¦¤È¤¹¤ë¤È¼ºÇÔ¤¹¤ë¡£ +フラグが指定された場合、ツリーに複製キーを挿入しようとすると失敗する。 .IP -¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¥­¡¼¤Î½ÅÊ£¤¬¤¢¤ë¤È¡¢ +データベースにキーの重複があると、 .I get -¥ë¡¼¥Á¥ó¤ò»È¤Ã¤¿¾ì¹ç¤Î¥­¡¼/¥Ç¡¼¥¿ÂФμèÆÀ½ç¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£¤½¤ì¤ËÂФ·¡¢ +ルーチンを使った場合のキー/データ対の取得順は未定義である。それに対し、 .B R_CURSOR -¥Õ¥é¥°¤ò¥»¥Ã¥È¤·¤Æ +フラグをセットして .I seq -¥ë¡¼¥Á¥ó¤ò»È¤¦¤È¡¢Ê£À½¥­¡¼¤Î¥°¥ë¡¼¥×¤ÎÃæ¤Î -ÏÀÍýŪ¤Ë¡ÖºÇ½é¡×¤Î¥­¡¼¤òɬ¤ºÊÖ¤·¤Æ¤¯¤ë¡£ +ルーチンを使うと、複製キーのグループの中の +論理的に「最初」のキーを必ず返してくる。 .RE .TP .I cachesize -ÁÛÄꤵ¤ì¤ë¥á¥â¥ê¥­¥ã¥Ã¥·¥å¤ÎºÇÂ祵¥¤¥º (¥Ð¥¤¥Èñ°Ì)¡£ -¤³¤ÎÃÍ¤Ï -.I ¤¢¤¯¤Þ¤Ç -»²¹Í¤Ç¤¢¤ê¡¢¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ï¤³¤ÎÃͤò±Û¤¨¤¿¥á¥â¥ê¤Î -³ä¤êÅö¤Æ¤ËÀ®¸ù¤¹¤ë¤³¤È¤â¤¢¤ë¡£ -²Ã¤¨¤Æ¡¢ÊªÍýŪ¤Ê½ñ¤­¹þ¤ß¤Ï²Äǽ¤Ê¸Â¤êÃٱ䤵¤ì¤ë¤Î¤Ç¡¢ -¥­¥ã¥Ã¥·¥å¤ÎÂ礭¤µ¤òŬÅ٤ˤ·¤Æ¤ª¤±¤Ð I/O Áàºî¤Î²ó¿ô¤ò¤«¤Ê¤ê¸º¤é¤¹¤³¤È -¤¬¤Ç¤­¤ë¡£ -¤¢¤­¤é¤«¤Ë¥­¥ã¥Ã¥·¥å¤ò»È¤¦¤È¡¢¥Ä¥ê¡¼¤¬Êѹ¹¤µ¤ì¤Æ¤¤¤ëÅÓÃæ¤Ç -¥·¥¹¥Æ¥à¤¬¥¯¥é¥Ã¥·¥å¤·¤¿¾ì¹ç¤Î¥Ç¡¼¥¿Ç˲õ¤ä¥Ç¡¼¥¿¥í¥¹¥È¤Î²ÄǽÀ­¤Ï -Áý¤¨¤ë (¤Þ¤¢¤Ç¤â¤½¤ì¤À¤±¤Î¤³¤È)¡£ +想定されるメモリキャッシュの最大サイズ (バイト単位)。 +この値は +.I あくまで +参考であり、アクセスメソッドはこの値を越えたメモリの +割り当てに成功することもある。 +加えて、物理的な書き込みは可能な限り遅延されるので、 +キャッシュの大きさを適度にしておけば I/O 操作の回数をかなり減らすこと +ができる。 +あきらかにキャッシュを使うと、ツリーが変更されている途中で +システムがクラッシュした場合のデータ破壊やデータロストの可能性は +増える (まあでもそれだけのこと)。 .I cachesize -¤¬ 0 (¥µ¥¤¥º¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤) ¤Î¾ì¹ç¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥­¥ã¥Ã¥·¥å¤¬»È¤ï¤ì¤ë¡£ +が 0 (サイズが指定されていない) の場合、デフォルトのキャッシュが使われる。 .TP .I maxkeypage -ñ°ì¥Ú¡¼¥¸¤ËǼ¤á¤é¤ì¤ëºÇÂ祭¡¼¿ô¤Ç¤¢¤ë¡£¸½ºß¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +単一ページに納められる最大キー数である。現在実装されていない。 .\" The maximum number of keys which will be stored on any single page. .\" Because of the way the btree data structure works, .\" .I maxkeypage @@ -143,85 +143,85 @@ typedef struct { .\" made as large as possible (which is almost invariably what is wanted). .TP .I minkeypage -ñ°ì¥Ú¡¼¥¸¤ËǼ¤á¤é¤ì¤ëºÇ¾®¥­¡¼¿ô¤Ç¤¢¤ë¡£¤³¤ÎÃͤϡ¢¤É¤Î¥­¡¼¤ò -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¥Ú¡¼¥¸ -¤ËǼ¤á¤ë¤«·è¤á¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£¤¹¤Ê¤ï¤Á¥­¡¼¤Þ¤¿¤Ï¥Ç¡¼¥¿¤¬ -minkeypage ¤ÎÃͤÇʬ³ä¤µ¤ì¤¿¥Ú¡¼¥¸¥µ¥¤¥º¤è¤êÂ礭¤¤»þ¡¢¤½¤Î¥Ú¡¼¥¸¤ËǼ¤á -¤ëÂå¤ï¤ê¤Ë¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¥Ú¡¼¥¸¤ËǼ¤á¤ë¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ +単一ページに納められる最小キー数である。この値は、どのキーを +オーバーフローページ +に納めるか決めるのに使われる。すなわちキーまたはデータが +minkeypage の値で分割されたページサイズより大きい時、そのページに納め +る代わりにオーバーフローページに納めるということである。 .I minkeypage -¤¬ 0 (¥­¡¼¤ÎºÇ¾®Ãͤ¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤) ¤Î¾ì¹ç¡¢ÃͤȤ·¤Æ 2 ¤¬»È¤ï¤ì¤ë¡£ +が 0 (キーの最小値が指定されていない) の場合、値として 2 が使われる。 .TP .I psize -¥Ä¥ê¡¼¤ÎÃæ¤Î¥Î¡¼¥É¤Ë»È¤ï¤ì¤ë¥Ú¡¼¥¸¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì)¡£ -ºÇ¾®ÃÍ¤Ï 512 ¥Ð¥¤¥È¤Ç¡¢ºÇÂçÃÍ¤Ï 64K ¤Ç¤¢¤ë¡£ +ツリーの中のノードに使われるページサイズ (バイト単位)。 +最小値は 512 バイトで、最大値は 64K である。 .I psize -¤¬ 0 (¥Ú¡¼¥¸¥µ¥¤¥º¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤) ¤Î¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î I/O ¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤Ë´ð¤Å¤¤¤Æ·è¤á¤é¤ì¤ë¡£ +が 0 (ページサイズが指定されていない) の場合、 +ファイルシステムの I/O ブロックサイズに基づいて決められる。 .TP .I compare .I compare -¤Ï¥­¡¼¤ÎÈæ³Ó´Ø¿ô¤Ç¤¢¤ë¡£ -ºÇ½é¤Î¥­¡¼°ú¿ô¤ËÂФ·¡¢ÆóÈÖÌܤΥ­¡¼°ú¿ô¤¬Â礭¤¤¾ì¹ç¤Ë¤ÏÀµ¤ÎÀ°¿ô¤ò¡¢ -Ʊ¤¸¾ì¹ç¤Ë¤Ï¥¼¥í¤ò¡¢¾®¤µ¤¤¾ì¹ç¤Ë¤ÏÉé¤ÎÀ°¿ô¤òÊÖ¤¹¡£ -¥Ä¥ê¡¼¤ò³«¤¯ºÝ¤Ë¤Ï¡¢¾ï¤ËƱ¤¸Èæ³Ó´Ø¿ô¤¬»È¤ï¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +はキーの比較関数である。 +最初のキー引数に対し、二番目のキー引数が大きい場合には正の整数を、 +同じ場合にはゼロを、小さい場合には負の整数を返す。 +ツリーを開く際には、常に同じ比較関数が使われなければならない。 .I compare -¤¬ NULL (Èæ³Ó´Ø¿ô¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤) ¤Î¾ì¹ç¡¢ -¼­½ñŪ¤ËÈæ³Ó¤µ¤ì¤ë¡£Ã»¤¤¥­¡¼¤ÏŤ¤¥­¡¼¤è¤ê¾®¤µ¤¤¤³¤È¤Ë¤Ê¤ë¡£ +が NULL (比較関数が指定されていない) の場合、 +辞書的に比較される。短いキーは長いキーより小さいことになる。 .TP .I prefix .I prefix -¤ÏÁ°ÃÖÈæ³Ó´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î¥ë¡¼¥Á¥ó¤Ï (»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï)¡¢ÆóÈÖÌܤΥ­¡¼°ú¿ô¤Î -¥Ð¥¤¥È¿ô¤òÊÖ¤µ¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£¤³¤ì¤ÏÆóÈÖÌܤΥ­¡¼°ú¿ô¤¬ -°ìÈÖÌܤΥ­¡¼°ú¿ô¤è¤êÂ礭¤¤¤«¤É¤¦¤«·è¤á¤ë¤Î¤ËɬÍפǤ¢¤ë¡£ -.\"NAKANO ¤Á¤ç¤Ã¤È°ÕÌ£¤ï¤«¤é¤ó... -¥­¡¼¤¬Æ±¤¸¾ì¹ç¡¢¥­¡¼¤ÎŤµ¤¬Ê֤롣¤³¤Î¥ë¡¼¥Á¥ó¤¬Í­ÍѤ«¤É¤¦¤«¤Ï¡¢ -¥Ç¡¼¥¿¤Ë¶¯¤¯°Í¸¤¹¤ë¡£¤·¤«¤·¥Ç¡¼¥¿¥»¥Ã¥È¤Ë¤è¤Ã¤Æ¤Ï¡¢ÌÀ¤é¤«¤Ë¥Ä¥ê¡¼ -¤Î¥µ¥¤¥º¤È¸¡º÷»þ´Ö¤ò¸º¤é¤·¤Æ¤¯¤ì¤ë¡£ +は前置比較関数である。 +このルーチンは (指定された場合には)、二番目のキー引数の +バイト数を返さなくてはならない。これは二番目のキー引数が +一番目のキー引数より大きいかどうか決めるのに必要である。 +.\"NAKANO ちょっと意味わからん... +キーが同じ場合、キーの長さが返る。このルーチンが有用かどうかは、 +データに強く依存する。しかしデータセットによっては、明らかにツリー +のサイズと検索時間を減らしてくれる。 .I prefix -¤¬ NULL (prefix ´Ø¿ô¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤) ¤Ç¡¢ -.I ¤«¤Ä -Èæ³Ó´Ø¿ô¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¡¢¥Ç¥Õ¥©¥ë¥È¤Î¼­½ñÈæ³Ó¥ë¡¼¥Á¥ó¤¬»È¤ï¤ì¤ë¡£ +が NULL (prefix 関数が指定されていない) で、 +.I かつ +比較関数が指定されていないと、デフォルトの辞書比較ルーチンが使われる。 .I prefix -¤¬ NULL ¤ÇÈæ³Ó´Ø¿ô¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢Á°ÃÖÈæ³Ó¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ +が NULL で比較関数が指定されている場合は、前置比較は行われない。 .TP .I lorder -¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤ë¥á¥¿¥Ç¡¼¥¿¤ÎÀ°¿ôÃͤΥХ¤¥È¥ª¡¼¥À¡¼¡£ -¤³¤Î¿ô»ú¤Ï¡¢½ç½ø¤òÀ°¿ô¤Çɽ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -Î㤨¤Ð¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤Ê¤é¡¢¤³¤Î¿ôÃÍ¤Ï 4,321 ¤È¤Ê¤ë¡£ +データベースに格納されているメタデータの整数値のバイトオーダー。 +この数字は、順序を整数で表したものである。 +例えばビッグエンディアンなら、この数値は 4,321 となる。 .I lorder -¤¬ 0 (»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤) ¤Î¾ì¹ç¡¢¸½ºß¤Î¥Û¥¹¥È -¤Ç»È¤ï¤ì¤Æ¤¤¤ë¥Ð¥¤¥È¥ª¡¼¥À¡¼¤¬»È¤ï¤ì¤ë¡£ +が 0 (指定されていない) の場合、現在のホスト +で使われているバイトオーダーが使われる。 .PP -¥Õ¥¡¥¤¥ë¤¬´û¤Ë¸ºß¤·¤Æ¤¤¤ë (¤Þ¤¿¤Ï +ファイルが既に存在している (または .B O_TRUCT -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤) ¤È¡¢ -°ú¤­¿ô +フラグが指定されていない) と、 +引き数 .IR flag , .IR lorder , .I psize -¤Ë»ØÄꤵ¤ì¤¿ÃͤÏ̵»ë¤µ¤ì¡¢ -¥Ä¥ê¡¼¤¬ºî¤é¤ì¤¿»þ¤Ë»È¤Ã¤¿Ãͤ¬ÍѤ¤¤é¤ì¤ë¡£ +に指定された値は無視され、 +ツリーが作られた時に使った値が用いられる。 .PP -¥Ä¥ê¡¼¤ÎÁ°Êý½ç¸¡º÷¤Ï¡¢ºÇ¾®¥­¡¼¤«¤éºÇÂ祭¡¼¤Ë¸þ¤«¤Ã¤Æ¹Ô¤ï¤ì¤ë¡£ +ツリーの前方順検索は、最小キーから最大キーに向かって行われる。 .PP -¥Ä¥ê¡¼¤«¤é¥­¡¼/¥Ç¡¼¥¿ÂФ¬ºï½ü¤µ¤ì¤ë¤³¤È¤Ë¤è¤Ã¤Æ¤Ç¤­¤¿¥¹¥Ú¡¼¥¹¤Ï¡¢ -Ä̾ïºÆÍøÍѤǤ­¤ë·Á¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¬ºÆÍøÍѤµ¤ì¤ë¤³¤È¤Ï̵¤¤¡£ -¤Ä¤Þ¤ê brtee µ­²±¹½Â¤¤ÏÈîÂ礹¤ë°ìÊý¤Ç¤¢¤ë¡£ -Âкö¤Ï²áÅ٤κï½ü¤òÈò¤±¤ë¤«¡¢ -¸ºß¤¹¤ë¥Ä¥ê¡¼¤òÄ´¤Ù¤ÆÄê´üŪ¤Ë¿·¤·¤¤¥Ä¥ê¡¼¤òºî¤ë¤«¡¢¤À¤±¤Ç¤¢¤ë¡£ +ツリーからキー/データ対が削除されることによってできたスペースは、 +通常再利用できる形になっているが再利用されることは無い。 +つまり brtee 記憶構造は肥大する一方である。 +対策は過度の削除を避けるか、 +存在するツリーを調べて定期的に新しいツリーを作るか、だけである。 .PP -.SH ¥¨¥é¡¼ +.SH エラー .I btree -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¥ë¡¼¥Á¥ó¤Ï¼ºÇÔ¤¹¤ë¤È¡¢¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó +アクセスメソッドルーチンは失敗すると、ライブラリルーチン .BR dbopen (3) -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Î¤¤¤º¤ì¤«¤ò +で定義されているエラーのいずれかを .I errno -¤È¤·¤ÆÊÖ¤¹¡£ -.SH ¥Ð¥° -¥Ð¥¤¥È¥ª¡¼¥À¡¼¤È¤·¤Æ¤Ï¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤È¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¤Î¤ß¤¬ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +として返す。 +.SH バグ +バイトオーダーとしてはビッグエンディアンとリトルエンディアンのみが +サポートされている。 +.SH 関連項目 .BR dbopen (3), .BR hash (3), .BR mpool (3), diff --git a/release/man3/byteorder.3 b/release/man3/byteorder.3 index 7eacef82..a499fc31 100644 --- a/release/man3/byteorder.3 +++ b/release/man3/byteorder.3 @@ -32,9 +32,9 @@ .\" Updated 2005-11-04, Akihiro MOTOKI .\" .TH BYTEORDER 3 2009-01-15 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -htonl, htons, ntohl, ntohs \- ¥Û¥¹¥È¥Ð¥¤¥È¥ª¡¼¥À¡¼¤È¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Î´Ö¤ÇÃͤòÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +htonl, htons, ntohl, ntohs \- ホストバイトオーダーとネットワークバイトオーダーの間で値を変換する +.SH 書式 .nf .B #include .sp @@ -46,35 +46,35 @@ htonl, htons, ntohl, ntohs \- .sp .BI "uint16_t ntohs(uint16_t " netshort ); .fi -.SH ÀâÌÀ +.SH 説明 .BR htonl () -´Ø¿ô¤Ï unsigned integer \fIhostlong\fP ¤ò -¥Û¥¹¥È¥Ð¥¤¥È¥ª¡¼¥À¡¼¤«¤é¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤ËÊÑ´¹¤¹¤ë¡£ +関数は unsigned integer \fIhostlong\fP を +ホストバイトオーダーからネットワークバイトオーダーに変換する。 .PP .BR htons () -´Ø¿ô¤Ï unsigned short integer \fIhostshort\fP ¤ò -¥Û¥¹¥È¥Ð¥¤¥È¥ª¡¼¥À¡¼¤«¤é¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤ËÊÑ´¹¤¹¤ë¡£ +関数は unsigned short integer \fIhostshort\fP を +ホストバイトオーダーからネットワークバイトオーダーに変換する。 .PP .BR ntohl () -´Ø¿ô¤Ï unsigned integer \fInetlong\fP ¤ò -¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤«¤é¥Û¥¹¥È¥Ð¥¤¥È¥ª¡¼¥À¡¼¤ËÊÑ´¹¤¹¤ë¡£ +関数は unsigned integer \fInetlong\fP を +ネットワークバイトオーダーからホストバイトオーダーに変換する。 .PP .BR ntohs () -´Ø¿ô¤Ï unsigned short integer \fInetshort\fP ¤ò -¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤«¤é¥Û¥¹¥È¥Ð¥¤¥È¥ª¡¼¥À¡¼¤ËÊÑ´¹¤¹¤ë¡£ +関数は unsigned short integer \fInetshort\fP を +ネットワークバイトオーダーからホストバイトオーダーに変換する。 .PP -i80x86 ¤Î¥Û¥¹¥È¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Ç¤ÏºÇ²¼°Ì¥Ð¥¤¥È¤¬¼ã¤¤¥¢¥É¥ì¥¹¤ËÇÛÃÖ¤µ¤ì¤ë¤¬¡¢ -¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤ÇÍѤ¤¤é¤ì¤ë¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Ç¤ÏºÇ¾å°Ì¥Ð¥¤¥È -¤¬Àè¤ËÇÛÃÖ¤µ¤ì¤ë¡£ -.SH ½àµò +i80x86 のホストバイトオーダーでは最下位バイトが若いアドレスに配置されるが、 +インターネットで用いられるネットワークバイトオーダーでは最上位バイト +が先に配置される。 +.SH 準拠 POSIX.1-2001. -¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +いくつかのシステムでは、 .I -¤ÎÂå¤ï¤ê¤Ë +の代わりに .I -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ëɬÍפ¬¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +をインクルードする必要がある。 +.SH 関連項目 .BR endian (3), .BR gethostbyname (3), .BR getservent (3) diff --git a/release/man3/bzero.3 b/release/man3/bzero.3 index 12ba11ac..0644251f 100644 --- a/release/man3/bzero.3 +++ b/release/man3/bzero.3 @@ -35,34 +35,34 @@ .\" Modified Thu 6 Mar 2003 by Akihiro MOTOKI .\" .TH BZERO 3 2008-08-06 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -bzero \- ÃÍ 0 ¤Î¥Ð¥¤¥È¤ÇËä¤á¤ë -.SH ½ñ¼° +.SH 名前 +bzero \- 値 0 のバイトで埋める +.SH 書式 .nf .B #include .sp .BI "void bzero(void *" s ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .BR bzero () -´Ø¿ô¤Ï -¥Ð¥¤¥ÈÎó +関数は +バイト列 .I s -¤«¤é»Ï¤Þ¤ëÎΰè¤ÎÀèƬ +から始まる領域の先頭 .I n -¥Ð¥¤¥È¤ò -¿ôÃÍ¥¼¥í (Ãͤ¬ \(aq\\0\(aq ¤Î¥Ð¥¤¥È) ¤ÇËä¤á¤ë¡£ -.SH ÊÖ¤êÃÍ -¤Ê¤·¡£ -.SH ½àµò +バイトを +数値ゼロ (値が \(aq\\0\(aq のバイト) で埋める。 +.SH 返り値 +なし。 +.SH 準拠 4.3BSD. -¤³¤Î´Ø¿ô¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë (POSIX.1-2001 ¤Ç¤Ï -²áµî¤Î̾»Ä (LEGACY) ¤È¤µ¤ì¤Æ¤¤¤ë)¡£¿·¤·¤¤¥×¥í¥°¥é¥à¤Ç¤Ï +この関数は廃止予定である (POSIX.1-2001 では +過去の名残 (LEGACY) とされている)。新しいプログラムでは .BR memset (3) -¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ -POSIX.1-2008 ¤Ç¤Ï +を使用すべきである。 +POSIX.1-2008 では .BR bzero () -¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +の仕様が削除されている。 +.SH 関連項目 .BR memset (3), .BR swab (3) diff --git a/release/man3/cabs.3 b/release/man3/cabs.3 index 46d403fd..19b0bc84 100644 --- a/release/man3/cabs.3 +++ b/release/man3/cabs.3 @@ -6,13 +6,13 @@ .\" Translated Wed Jul 23 05:04:09 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: complex number Ê£ÁÇ¿ô -.\"WORD: alias ¥¨¥¤¥ê¥¢¥¹ +.\"WORD: complex number 複素数 +.\"WORD: alias エイリアス .\" .TH CABS 3 2008-08-06 "" "Linux Programmer's Manual" -.SH ̾Á° -cabs, cabsf, cabsl \- Ê£ÁÇ¿ô¤ÎÀäÂÐÃÍ -.SH ½ñ¼° +.SH 名前 +cabs, cabsf, cabsl \- 複素数の絶対値 +.SH 書式 .B #include .sp .BI "double cabs(double complex " z ); @@ -21,23 +21,23 @@ cabs, cabsf, cabsl \- Ê£ .br .BI "long double cabsl(long double complex " z ); .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lm\fP でリンクする。 +.SH 説明 .BR cabs () -´Ø¿ô¤ÏÊ£ÁÇ¿ô +関数は複素数 .I z -¤ÎÀäÂÐÃͤòÊÖ¤¹¡£ -·ë²Ì¤Ï¼Â¿ô¤Ç¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +の絶対値を返す。 +結果は実数である。 +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99. -.SH È÷¹Í -¼ÂºÝ¤Ë¤Ï¡¢¤³¤Î´Ø¿ô¤Ï +.SH 備考 +実際には、この関数は .I "hypot(a,\ b)" .RI ( "sqrt(a*a\ +\ b*b)" -¤ÈÅù²Á) ¤Ø¤Î¥¨¥¤¥ê¥¢¥¹¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +と等価) へのエイリアスになっている。 +.SH 関連項目 .BR abs (3), .BR cimag (3), .BR hypot (3), diff --git a/release/man3/cacos.3 b/release/man3/cacos.3 index e3ca12d3..8330d41c 100644 --- a/release/man3/cacos.3 +++ b/release/man3/cacos.3 @@ -7,16 +7,16 @@ .\" Translated Wed Jul 23 05:24:21 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: arc sine µÕÀµ¸¹ -.\"WORD: arc cosine µÕ;¸¹ -.\"WORD: arc tangent µÕÀµÀÜ -.\"WORD: real part ¼ÂÉô -.\"WORD: imaginary part µõÉô +.\"WORD: arc sine 逆正弦 +.\"WORD: arc cosine 逆余弦 +.\"WORD: arc tangent 逆正接 +.\"WORD: real part 実部 +.\"WORD: imaginary part 虚部 .\" .TH CACOS 3 2011-09-15 "" "Linux Programmer's Manual" -.SH ̾Á° -cacos, cacosf, cacosl \- Ê£ÁÇ¿ô¤ÎµÕ;¸¹ (arc cosine) -.SH ½ñ¼° +.SH 名前 +cacos, cacosf, cacosl \- 複素数の逆余弦 (arc cosine) +.SH 書式 .B #include .sp .BI "double complex cacos(double complex " z ); @@ -25,26 +25,26 @@ cacos, cacosf, cacosl \- Ê£ .br .BI "long double complex cacosl(long double complex " z ); .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lm\fP でリンクする。 +.SH 説明 .BR cacos () -´Ø¿ô¤ÏÊ£ÁÇ¿ô +関数は複素数 .I z -¤ÎµÕ;¸¹ (arc cosine) ¤ò·×»»¤¹¤ë¡£ -\fIy\ =\ cacos(z)\fP ¤Ê¤é¤Ð¡¢ \fIz\ =\ ccos(y)\fP ¤¬À®Î©¤¹¤ë¡£ +の逆余弦 (arc cosine) を計算する。 +\fIy\ =\ cacos(z)\fP ならば、 \fIz\ =\ ccos(y)\fP が成立する。 .I y -¤Î¼ÂÉô¤ÎÃͤ϶è´Ö [0,pi] ¤«¤éÁªÂò¤µ¤ì¤ë¡£ +の実部の値は区間 [0,pi] から選択される。 .LP -¼¡¤Î´Ø·¸¤¬À®Î©¤¹¤ë: +次の関係が成立する: .nf cacos(z) = \-i * clog(z + i * csqrt(1 \- z * z)) .fi -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99. -.SH Îã +.SH 例 .nf /* Link with "\-lm" */ @@ -77,7 +77,7 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ccos (3), .BR clog (3), .BR complex (7) diff --git a/release/man3/cacosh.3 b/release/man3/cacosh.3 index 07356356..df4ae2b1 100644 --- a/release/man3/cacosh.3 +++ b/release/man3/cacosh.3 @@ -7,17 +7,17 @@ .\" Translated Thu Jul 24 00:26:52 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: hyperbolic ÁжÊ(Àþ¤Î) -.\"WORD: arc sine µÕÀµ¸¹ -.\"WORD: arc cosine µÕ;¸¹ -.\"WORD: arc tangent µÕÀµÀÜ -.\"WORD: real part ¼ÂÉô -.\"WORD: imaginary part µõÉô +.\"WORD: hyperbolic 双曲(線の) +.\"WORD: arc sine 逆正弦 +.\"WORD: arc cosine 逆余弦 +.\"WORD: arc tangent 逆正接 +.\"WORD: real part 実部 +.\"WORD: imaginary part 虚部 .\" .TH CACOSH 3 2011-09-15 "" "Linux Programmer's Manual" -.SH ̾Á° -cacosh, cacoshf, cacoshl \- Ê£ÁÇ¿ô¤ÎµÕÁжÊÀþ;¸¹ (arc hyperbolic cosine) -.SH ½ñ¼° +.SH 名前 +cacosh, cacoshf, cacoshl \- 複素数の逆双曲線余弦 (arc hyperbolic cosine) +.SH 書式 .B #include .sp .BI "double complex cacosh(double complex " z ); @@ -26,29 +26,29 @@ cacosh, cacoshf, cacoshl \- Ê£ .br .BI "long double complex cacoshl(long double complex " z ); .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lm\fP でリンクする。 +.SH 説明 .BR cacosh () -´Ø¿ô¤ÏÊ£ÁÇ¿ô +関数は複素数 .I z -¤ÎµÕÁжÊÀþ;¸¹ (arc hyperbolic cosine) ¤ò·×»»¤¹¤ë¡£ -\fIy\ =\ cacosh(z)\fP ¤Ê¤é¤Ð¡¢ -\fIz\ =\ ccosh(y)\fP ¤¬À®Î©¤¹¤ë¡£ +の逆双曲線余弦 (arc hyperbolic cosine) を計算する。 +\fIy\ =\ cacosh(z)\fP ならば、 +\fIz\ =\ ccosh(y)\fP が成立する。 .I y -¤ÎµõÉô¤ÎÃͤ϶è´Ö [\-pi,pi] ¤«¤éÁªÂò¤µ¤ì¡¢ +の虚部の値は区間 [\-pi,pi] から選択され、 .I y -¤Î¼ÂÉô¤ÎÃͤÏÈóÉé¤ÎÃͤ¬ÁªÂò¤µ¤ì¤ë¡£ +の実部の値は非負の値が選択される。 .LP -¼¡¤Î´Ø·¸¤¬À®Î©¤¹¤ë: +次の関係が成立する: .nf cacosh(z) = 2 * clog(csqrt((z + 1) / 2) + csqrt((z \- 1) / 2)) .fi -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99. -.SH Îã +.SH 例 .nf /* Link with "\-lm" */ @@ -78,7 +78,7 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR acosh (3), .BR cabs (3), .BR ccosh (3), diff --git a/release/man3/canonicalize_file_name.3 b/release/man3/canonicalize_file_name.3 index 077bea47..e2266aec 100644 --- a/release/man3/canonicalize_file_name.3 +++ b/release/man3/canonicalize_file_name.3 @@ -6,20 +6,20 @@ .\" Translated 2005-09-06, Akihiro MOTOKI .\" .TH CANONICALIZE_FILE_NAME 3 2005-07-14 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -canonicalize_file_name \- Àµµ¬²½¤µ¤ì¤¿¥Õ¥¡¥¤¥ë̾¤òÊÖ¤¹ -.SH ½ñ¼° -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.SH 名前 +canonicalize_file_name \- 正規化されたファイル名を返す +.SH 書式 +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "char *canonicalize_file_name(const char *" path ");" -.SH ÀâÌÀ +.SH 説明 .I canonicalize_file_name(path) -¤Ï +は .I "realpath(path,\ NULL)" -¤ÈÅù²Á¤Ç¤¢¤ë¡£ -.SH ½àµò -¤³¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +と等価である。 +.SH 準拠 +この関数は GNU による拡張である。 +.SH 関連項目 .BR realpath (3) diff --git a/release/man3/carg.3 b/release/man3/carg.3 index 7ae4730f..20c83519 100644 --- a/release/man3/carg.3 +++ b/release/man3/carg.3 @@ -6,15 +6,15 @@ .\" Translated 2003-07-24, Akihiro MOTOKI .\" Updated 2005-10-02, Akihiro MOTOKI .\" -.\"WORD: argument (¶ËºÂɸ¤Î)ÊÐ³Ñ -.\"WORD: coordinates ºÂɸ -.\"WORD: rectangular coordinates ľ¸òºÂɸ -.\"WORD: polar coordinates ¶ËºÂɸ +.\"WORD: argument (極座標の)偏角 +.\"WORD: coordinates 座標 +.\"WORD: rectangular coordinates 直交座標 +.\"WORD: polar coordinates 極座標 .\" .TH CARG 3 2008-08-06 "" "Linux Programmer's Manual" -.SH ̾Á° -carg, cargf, cargl \- Ê£ÁÇ¿ô¤ÎÊгѤò·×»»¤¹¤ë -.SH ½ñ¼° +.SH 名前 +carg, cargf, cargl \- 複素数の偏角を計算する +.SH 書式 .B #include .sp .BI "double carg(double complex " z ");" @@ -23,40 +23,40 @@ carg, cargf, cargl \- Ê£ .br .BI "long double cargl(long double complex " z ");" .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ -Ê£ÁÇ¿ô¤Ï 2¤Ä¤Î¼Â¿ôÃͤ«¤é¤Ê¤ëºÂɸ¤Çɽ¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ -ľ¸òºÂɸ¤ò»È¤¦¤È¡¢°Ê²¼¤Î¤è¤¦¤Ë½ñ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£ +\fI\-lm\fP でリンクする。 +.SH 説明 +複素数は 2つの実数値からなる座標で表すことができる。 +直交座標を使うと、以下のように書くことができる。 .nf z = x + I * y .fi -¤³¤³¤Ç¡¢\fIx\ =\ creal(z)\fP, \fIy\ =\ cimag(z)\fP ¤Ç¤¢¤ë¡£ +ここで、\fIx\ =\ creal(z)\fP, \fIy\ =\ cimag(z)\fP である。 .LP -¤Þ¤¿¡¢¶ËºÂɸ¤ò»È¤¦¤È¡¢°Ê²¼¤Î¤è¤¦¤Ë½ñ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£ +また、極座標を使うと、以下のように書くことができる。 .nf z = r * cexp(I * a) .fi -¤³¤³¤Ç¡¢ -\fIr\ =\ cabs(z)\fP ¤Ï¡ÖȾ·Â¡×¡¢¡Ö·¸¿ô¡×¤Ç¤¢¤ê¡¢ -\fIz\fP ¤ÎÀäÂÐÃͤǤ¢¤ë¡£ -\fIa\ =\ carg(z)\fP ¤Ï¡Ö°ÌÁê³Ñ¡×¤Ç¤¢¤ê¡¢ -\fIz\fP ¤ÎÊгѤǤ¢¤ë¡£ +ここで、 +\fIr\ =\ cabs(z)\fP は「半径」、「係数」であり、 +\fIz\fP の絶対値である。 +\fIa\ =\ carg(z)\fP は「位相角」であり、 +\fIz\fP の偏角である。 .LP -¼¡¤Î´Ø·¸¤¬À°Íý¤¹¤ë: +次の関係が整理する: .nf tan(carg(z)) = cimag(z) / creal(z) .fi -.SH ÊÖ¤êÃÍ -ÊÖ¤êÃÍ¤Ï [\-pi,pi] ¤ÎÈϰϤǤ¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +.SH 返り値 +返り値は [\-pi,pi] の範囲である。 +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR complex (7) diff --git a/release/man3/casin.3 b/release/man3/casin.3 index f73276c1..16b6a98e 100644 --- a/release/man3/casin.3 +++ b/release/man3/casin.3 @@ -6,16 +6,16 @@ .\" Translated Thu Jul 24 00:07:40 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: arc sine µÕÀµ¸¹ -.\"WORD: arc cosine µÕ;¸¹ -.\"WORD: arc tangent µÕÀµÀÜ -.\"WORD: real part ¼ÂÉô -.\"WORD: imaginary part µõÉô +.\"WORD: arc sine 逆正弦 +.\"WORD: arc cosine 逆余弦 +.\"WORD: arc tangent 逆正接 +.\"WORD: real part 実部 +.\"WORD: imaginary part 虚部 .\" .TH CASIN 3 2008-08-06 "" "Linux Programmer's Manual" -.SH ̾Á° -casin, casinf, casinl \- Ê£ÁÇ¿ô¤ÎµÕÀµ¸¹ (arc sine) -.SH ½ñ¼° +.SH 名前 +casin, casinf, casinl \- 複素数の逆正弦 (arc sine) +.SH 書式 .B #include .sp .BI "double complex casin(double complex " z ); @@ -24,26 +24,26 @@ casin, casinf, casinl \- Ê£ .br .BI "long double complex casinl(long double complex " z ); .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lm\fP でリンクする。 +.SH 説明 .BR casin () -´Ø¿ô¤ÏÊ£ÁÇ¿ô +関数は複素数 .I z -¤ÎµÕÀµ¸¹ (arg sine) ¤ò·×»»¤¹¤ë¡£ -\fIy\ =\ casin(z)\fP ¤Ê¤é¤Ð¡¢ \fIz\ =\ csin(y)\fP ¤¬À®Î©¤¹¤ë¡£ +の逆正弦 (arg sine) を計算する。 +\fIy\ =\ casin(z)\fP ならば、 \fIz\ =\ csin(y)\fP が成立する。 .I y -¤Î¼ÂÉô¤ÎÃͤ϶è´Ö [\-pi/2,pi/2] ¤«¤éÁªÂò¤µ¤ì¤ë¡£ +の実部の値は区間 [\-pi/2,pi/2] から選択される。 .LP -¼¡¤Î´Ø·¸¤¬À®Î©¤¹¤ë: +次の関係が成立する: .nf casin(z) = \-i clog(iz + csqrt(1 \- z * z)) .fi -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR clog (3), .BR csin (3), .BR complex (7) diff --git a/release/man3/casinh.3 b/release/man3/casinh.3 index 02037c0d..b75fb019 100644 --- a/release/man3/casinh.3 +++ b/release/man3/casinh.3 @@ -6,17 +6,17 @@ .\" Translated Thu Jul 24 00:41:13 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: hyperbolic ÁжÊ(Àþ¤Î) -.\"WORD: arc sine µÕÀµ¸¹ -.\"WORD: arc cosine µÕ;¸¹ -.\"WORD: arc tangent µÕÀµÀÜ -.\"WORD: real part ¼ÂÉô -.\"WORD: imaginary part µõÉô +.\"WORD: hyperbolic 双曲(線の) +.\"WORD: arc sine 逆正弦 +.\"WORD: arc cosine 逆余弦 +.\"WORD: arc tangent 逆正接 +.\"WORD: real part 実部 +.\"WORD: imaginary part 虚部 .\" .TH CASINH 3 2008-08-06 "" "Linux Programmer's Manual" -.SH ̾Á° -casinh, casinhf, casinhl \- Ê£ÁÇ¿ô¤ÎµÕÁжÊÀþÀµ¸¹ (arc sine hyperbolic) -.SH ½ñ¼° +.SH 名前 +casinh, casinhf, casinhl \- 複素数の逆双曲線正弦 (arc sine hyperbolic) +.SH 書式 .B #include .sp .BI "double complex casinh(double complex " z ); @@ -25,26 +25,26 @@ casinh, casinhf, casinhl \- Ê£ .br .BI "long double complex casinhl(long double complex " z ); .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lm\fP でリンクする。 +.SH 説明 .BR casinh () -´Ø¿ô¤ÏÊ£ÁÇ¿ô +関数は複素数 .I z -¤ÎµÕÁжÊÀþÀµ¸¹ (arc hyperbolic sine) ¤ò·×»»¤¹¤ë¡£ -\fIy\ =\ casinh(z)\fP ¤Ê¤é¤Ð¡¢ \fIz\ =\ csinh(y)\fP ¤¬À®Î©¤¹¤ë¡£ +の逆双曲線正弦 (arc hyperbolic sine) を計算する。 +\fIy\ =\ casinh(z)\fP ならば、 \fIz\ =\ csinh(y)\fP が成立する。 .I y -¤ÎµõÉô¤ÎÃͤ϶è´Ö [\-pi/2,pi/2] ¤«¤éÁªÂò¤µ¤ì¤ë¡£ +の虚部の値は区間 [\-pi/2,pi/2] から選択される。 .LP -¼¡¤Î´Ø·¸¤¬À®Î©¤¹¤ë: +次の関係が成立する: .nf casinh(z) = clog(z + csqrt(z * z + 1)) .fi -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR asinh (3), .BR cabs (3), .BR cimag (3), diff --git a/release/man3/catan.3 b/release/man3/catan.3 index 9774fe2a..e28298dd 100644 --- a/release/man3/catan.3 +++ b/release/man3/catan.3 @@ -7,16 +7,16 @@ .\" Translated Thu Jul 24 00:22:25 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: arc sine µÕÀµ¸¹ -.\"WORD: arc cosine µÕ;¸¹ -.\"WORD: arc tangent µÕÀµÀÜ -.\"WORD: real part ¼ÂÉô -.\"WORD: imaginary part µõÉô +.\"WORD: arc sine 逆正弦 +.\"WORD: arc cosine 逆余弦 +.\"WORD: arc tangent 逆正接 +.\"WORD: real part 実部 +.\"WORD: imaginary part 虚部 .\" .TH CATAN 3 2011-09-15 "" "Linux Programmer's Manual" -.SH ̾Á° -catan, catanf, catanl \- Ê£ÁÇ¿ô¤ÎµÕÀµÀÜ (arc tangent) -.SH ½ñ¼° +.SH 名前 +catan, catanf, catanl \- 複素数の逆正接 (arc tangent) +.SH 書式 .B #include .sp .BI "double complex catan(double complex " z ); @@ -25,26 +25,26 @@ catan, catanf, catanl \- Ê£ .br .BI "long double complex catanl(long double complex " z ); .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lm\fP でリンクする。 +.SH 説明 .BR catan () -´Ø¿ô¤ÏÊ£ÁÇ¿ô +関数は複素数 .I z -¤ÎµÕÀµÀÜ (arc tangent) ¤ò·×»»¤¹¤ë¡£ -\fIy = catan(z)\fP ¤Ê¤é¤Ð¡¢ \fIz = ctan(y)\fP ¤¬À®Î©¤¹¤ë¡£ +の逆正接 (arc tangent) を計算する。 +\fIy = catan(z)\fP ならば、 \fIz = ctan(y)\fP が成立する。 .I y -¤Î¼ÂÉô¤ÎÃͤ϶è´Ö [\-pi/2,pi/2] ¤«¤éÁªÂò¤µ¤ì¤ë¡£ +の実部の値は区間 [\-pi/2,pi/2] から選択される。 .LP -¼¡¤Î´Ø·¸¤¬À®Î©¤¹¤ë: +次の関係が成立する: .nf catan(z) = (clog(1 + i * z) \- clog(1 \- i * z)) / (2 * i) .fi -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99. -.SH Îã +.SH 例 .nf /* Link with "\-lm" */ @@ -75,7 +75,7 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ccos (3), .BR clog (3), .BR ctan (3), diff --git a/release/man3/catanh.3 b/release/man3/catanh.3 index 49b81085..c350b1b2 100644 --- a/release/man3/catanh.3 +++ b/release/man3/catanh.3 @@ -7,17 +7,17 @@ .\" Translated Thu Jul 24 00:43:35 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: hyperbolic ÁжÊ(Àþ¤Î) -.\"WORD: arc sine µÕÀµ¸¹ -.\"WORD: arc cosine µÕ;¸¹ -.\"WORD: arc tangent µÕÀµÀÜ -.\"WORD: real part ¼ÂÉô -.\"WORD: imaginary part µõÉô +.\"WORD: hyperbolic 双曲(線の) +.\"WORD: arc sine 逆正弦 +.\"WORD: arc cosine 逆余弦 +.\"WORD: arc tangent 逆正接 +.\"WORD: real part 実部 +.\"WORD: imaginary part 虚部 .\" .TH CATANH 3 2011-09-15 "" "Linux Programmer's Manual" -.SH ̾Á° -catanh, catanhf, catanhl \- Ê£ÁÇ¿ô¤ÎµÕÁжÊÀþÀµÀÜ (arc tangents hyperbolic) -.SH ½ñ¼° +.SH 名前 +catanh, catanhf, catanhl \- 複素数の逆双曲線正接 (arc tangents hyperbolic) +.SH 書式 .B #include .sp .BI "double complex catanh(double complex " z ); @@ -26,26 +26,26 @@ catanh, catanhf, catanhl \- Ê£ .br .BI "long double complex catanhl(long double complex " z ); .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lm\fP でリンクする。 +.SH 説明 .BR catanh () -´Ø¿ô¤ÏÊ£ÁÇ¿ô +関数は複素数 .I z -¤ÎµÕÁжÊÀþÀµ¸¹ (arc hyperbolic tangent) ¤ò·×»»¤¹¤ë¡£ -\fIy = catanh(z)\fP ¤Ê¤é¤Ð¡¢ \fIz = ctanh(y)\fP ¤¬À®Î©¤¹¤ë¡£ +の逆双曲線正弦 (arc hyperbolic tangent) を計算する。 +\fIy = catanh(z)\fP ならば、 \fIz = ctanh(y)\fP が成立する。 .I y -¤ÎµõÉô¤ÎÃͤ϶è´Ö [\-pi/2,pi/2] ¤«¤éÁªÂò¤µ¤ì¤ë¡£ +の虚部の値は区間 [\-pi/2,pi/2] から選択される。 .LP -¼¡¤Î´Ø·¸¤¬À®Î©¤¹¤ë: +次の関係が成立する: .nf catanh(z) = 0.5 * (clog(1 + z) \- clog(1 \- z)) .fi -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99. -.SH Îã +.SH 例 .nf /* Link with "\-lm" */ @@ -75,7 +75,7 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR atanh (3), .BR cabs (3), .BR cimag (3), diff --git a/release/man3/catgets.3 b/release/man3/catgets.3 index 21ad2fb7..55009759 100644 --- a/release/man3/catgets.3 +++ b/release/man3/catgets.3 @@ -30,9 +30,9 @@ .\" by NAKANO Takeo .\" .TH CATGETS 3 1998-08-09 "" "Linux Programmer's Manual" -.SH ̾Á° -catgets \- ¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤«¤é¥á¥Ã¥»¡¼¥¸¤ò¼è¤ê½Ð¤¹ -.SH ½ñ¼° +.SH 名前 +catgets \- メッセージカタログからメッセージを取り出す +.SH 書式 .nf .B #include @@ -40,52 +40,52 @@ catgets \- ", int " message_number , .BI " const char *" message ); .fi -.SH ÀâÌÀ +.SH 説明 .BR catgets () -¤Ï catalog ¤Ç»ØÄꤵ¤ì¤¿¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤«¤é¡¢ -¥»¥Ã¥È +は catalog で指定されたメッセージカタログから、 +セット .I set_number -¤Î¥á¥Ã¥»¡¼¥¸ +のメッセージ .I message_number -¤òÆɤ߼è¤ë¡£ +を読み取る。 .I catalog -¤Ï¡¢ +は、 .BR catopen (3) -¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤ÆÆÀ¤é¤ì¤¿¥«¥¿¥í¥° -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò»ØÄꤹ¤ë¡£ -4ÈÖÌܤΰú¿ô +の呼び出しによって得られたカタログ +ディスクリプタを指定する。 +4番目の引数 .I message -¤Ï¡¢»ØÄê¤Î¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤¬¸½ºßÍøÍѤǤ­¤Ê¤¤ -¾ì¹ç¤Ë +は、指定のメッセージカタログが現在利用できない +場合に .BR catgets () -¤¬ÊÖ¤¹¥Ç¥Õ¥©¥ë¥È¤Î¥á¥Ã¥»¡¼¥¸¤ò»Ø¤¹¡£ -¥á¥Ã¥»¡¼¥¸¥Æ¥­¥¹¥È¤ÏÆâÉô¤Î¥Ð¥Ã¥Õ¥¡Îΰè¤Ë³ÊǼ¤µ¤ì¤Æ¤ª¤ê¡¢ -Êݸ¤äÊѹ¹¤ò¹Ô¤¦¾ì¹ç¤Ë¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¦¤Ç¥³¥Ô¡¼¤¹¤ëɬÍפ¬¤¢¤ë¡£ -ÊÖ¤µ¤ì¤ëʸ»úÎó¤Ï¾ï¤Ë¥Ì¥ëʸ»ú¤Ç½ªÃ¼¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +が返すデフォルトのメッセージを指す。 +メッセージテキストは内部のバッファ領域に格納されており、 +保存や変更を行う場合にはアプリケーション側でコピーする必要がある。 +返される文字列は常にヌル文字で終端される。 +.SH 返り値 .LP -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR catgets () -¤ÏÆâÉô¤Î¥Ð¥Ã¥Õ¥¡Îΰè¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤³¤Ë¤Ï¥Ì¥ëʸ»ú¤Ç½ªÃ¼¤µ¤ì¤¿¥á¥Ã¥»¡¼¥¸Ê¸»úÎ󤬳ÊǼ¤µ¤ì¤Æ¤¤¤ë¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï +は内部のバッファ領域へのポインタを返す。 +ここにはヌル文字で終端されたメッセージ文字列が格納されている。 +失敗した場合は .I message -¤òÊÖ¤¹¡£ -.SH ½àµò +を返す。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ -¤³¤ì¤é¤Î´Ø¿ô¤Ï libc.so.4.4.4c °Ê¹ß¤Ç¤·¤«»È¤¨¤Ê¤¤¡£ -Jan 1987 X/Open Portability Guide ¤Ç¤Ï¡¢¥¨¥é¡¼¤Î»þ¤Ë -ÊÖ¤µ¤ì¤ëÃͤˤè¤êÈù̯¤Ê»ØÄê¤ò¤·¤Æ¤¤¤ë¡£ +.SH 注意 +これらの関数は libc.so.4.4.4c 以降でしか使えない。 +Jan 1987 X/Open Portability Guide では、エラーの時に +返される値により微妙な指定をしている。 .I catalog -¤Ç»ØÄꤵ¤ì¤¿¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤¬ÍøÍѤǤ­¤Ê¤¤¾ì¹ç¤Ï +で指定されたメッセージカタログが利用できない場合は .I message -¤òÊÖ¤·¡¢°ìÊý¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤Ï¤¢¤ë¤¬»ØÄꤷ¤¿¥á¥Ã¥»¡¼¥¸¤¬¤Ê¤¤¾ì¹ç¤Ï -¶õ¤Îʸ»úÎó¤¬ÊÖ¤µ¤ì¤ë¡£ -SUSv2 ¤Ç¤Ï¤³¤ÎÆó¼ïÎà¤Î¥¨¥é¡¼¥ê¥¿¡¼¥ó¤ÏÇѻߤµ¤ì¡¢ -¾ï¤Ë +を返し、一方メッセージカタログはあるが指定したメッセージがない場合は +空の文字列が返される。 +SUSv2 ではこの二種類のエラーリターンは廃止され、 +常に .I message -¤òÊÖ¤¹¤³¤È¤Ë¤·¤¿¤è¤¦¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を返すことにしたようである。 +.SH 関連項目 .BR catopen (3), .BR setlocale (3) diff --git a/release/man3/catopen.3 b/release/man3/catopen.3 index 1bdde5e5..d39e3729 100644 --- a/release/man3/catopen.3 +++ b/release/man3/catopen.3 @@ -31,163 +31,163 @@ .\" by Yuichi SATO .\" .TH CATOPEN 3 2001-12-14 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -catopen, catclose \- ¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤Î¥ª¡¼¥×¥ó/¥¯¥í¡¼¥º -.SH ½ñ¼° +.SH 名前 +catopen, catclose \- メッセージカタログのオープン/クローズ +.SH 書式 .B #include .sp .BI "nl_catd catopen(const char *" name ", int " flag ); .BI "int catclose(nl_catd " catalog ); -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR catopen () -¤Ï¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤ò¥ª¡¼¥×¥ó¤·¡¢¥«¥¿¥í¥°¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¤³¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï +はメッセージカタログをオープンし、カタログディスクリプタを返す。 +このディスクリプタは .BR catclose () -¤Þ¤¿¤Ï +または .BR execve (2) -¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤Þ¤ÇÍ­¸ú¤Ç¤¢¤ë¡£ -¥«¥¿¥í¥°¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¼ÂÁõ¤¹¤ë¤¿¤á¤Ë -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò»ÈÍѤ¹¤ë¤È¡¢ +が呼び出されるまで有効である。 +カタログディスクリプタを実装するために +ファイルディスクリプタを使用すると、 .B FD_CLOEXEC -¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤ë¡£ +フラグが設定される。 .LP -°ú¤­¿ô +引き数 .I name -¤Ï¥ª¡¼¥×¥ó¤¹¤ë¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤Î̾Á°¤ò»ØÄꤹ¤ë¡£ +はオープンするメッセージカタログの名前を指定する。 .I name -¤¬ÀäÂХѥ¹¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç (¤¹¤Ê¤ï¤Á \(aq/\(aq ¤ò´Þ¤ó¤Ç¤¤¤ë¾ì¹ç)¡¢ +が絶対パスで指定されている場合 (すなわち \(aq/\(aq を含んでいる場合)、 .I name -¤Ï¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤Ø¤Î¥Ñ¥¹Ì¾¤Ç¤¢¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢´Ä¶­ÊÑ¿ô +はメッセージカタログへのパス名である。 +それ以外の場合、環境変数 .B NLSPATH -¤¬ +が .I name -¤È¤È¤â¤Ë»ÈÍѤµ¤ì +とともに使用され .B %N -¤òÃÖ¤­´¹¤¨¤ë +を置き換える .RB ( locale (7) -»²¾È)¡£ -¥×¥í¥»¥¹¤¬ root ¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤ë¤È¤­¤Ë +参照)。 +プロセスが root 権限を持っているときに .B NLSPATH -¤¬»È¤ï¤ì¤ë¤«¤É¤¦¤«¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +が使われるかどうかは指定されていない。 .B NLSPATH -´Ä¶­ÊÑ¿ô¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢ +環境変数が存在しないか、 .B NLSPATH -¤Ç»ØÄꤵ¤ì¤¿¥Ñ¥¹¤ÎÃæ¤Î -¤É¤Î¥Ñ¥¹¤Ë¤ª¤¤¤Æ¤â¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤ò¥ª¡¼¥×¥ó¤Ç¤­¤Ê¤¤¾ì¹ç¡¢ -¼ÂÁõ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥Ñ¥¹¤¬»È¤ï¤ì¤ë¡£ -¸å¼Ô¤Î¥Ç¥Õ¥©¥ë¥È¥Ñ¥¹¤Ï¡¢ +で指定されたパスの中の +どのパスにおいてもメッセージカタログをオープンできない場合、 +実装で定義されているパスが使われる。 +後者のデフォルトパスは、 .I flag -°ú¤­¿ô¤¬ +引き数が .B NL_CAT_LOCALE -¤Î¾ì¹ç¤Ë¤Ï +の場合には .B LC_MESSAGES -¤Î¥í¥±¡¼¥ëÀßÄê¤Ë°Í¸¤·¡¢ +のロケール設定に依存し、 .I flag -°ú¤­¿ô¤¬ 0 ¤Î¾ì¹ç¤Ë¤Ï +引き数が 0 の場合には .B LANG -´Ä¶­ÊÑ¿ô¤Ë°Í¸¤¹¤ë¡£ -¥í¥±¡¼¥ë¤Î +環境変数に依存する。 +ロケールの .B LC_MESSAGES -¤òÊѹ¹¤¹¤ë¤È¡¢ -¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥«¥¿¥í¥°¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Ìµ¸ú¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +を変更すると、 +オープンされているカタログディスクリプタが無効になるかもしれない。 .LP .BR catopen () -¤Î +の .I flag -°ú¤­¿ô¤Ï¡¢»ÈÍѤµ¤ì¤ë¸À¸ì¤Î¥½¡¼¥¹¤ò¼¨¤¹¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ +引き数は、使用される言語のソースを示すために使われる。 .B NL_CAT_LOCALE -¤ËÀßÄꤵ¤ì¤ë¤È¡¢ +に設定されると、 .B LC_MESSAGES -¤Î¸½ºß¤Î¥í¥±¡¼¥ëÀßÄ꤬»È¤ï¤ì¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï +の現在のロケール設定が使われる。 +それ以外の場合は .B LANG -´Ä¶­ÊÑ¿ô¤¬»È¤ï¤ì¤ë¡£ +環境変数が使われる。 .LP -´Ø¿ô +関数 .BR catclose () -¤Ï +は .I catalog -¤Ç»ØÄꤵ¤ì¤¿¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ -¤³¤ì¤Ï¡¢°Ê¹ß¤Î +で指定されたメッセージカタログをクローズする。 +これは、以降の .I catalog -¤Ç»ØÄꤵ¤ì¤ë¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤Ø¤ÎÁ´¤Æ¤Î»²¾È¤ò̵¸ú¤Ë¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -´Ø¿ô +で指定されるメッセージカタログへの全ての参照を無効にする。 +.SH 返り値 +関数 .BR catopen () -¤¬À®¸ù¤¹¤ë¤È¡¢ +が成功すると、 .I nl_catd -·¿¤Î¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï \fI(nl_catdv) \-1\fP ¤òÊÖ¤·¡¢ +型のメッセージカタログディスクリプタを返す。 +失敗した場合は \fI(nl_catdv) \-1\fP を返し、 .I errno -¤òÀßÄꤷ¤Æ¥¨¥é¡¼¤ò¼¨¤¹¡£ -¤³¤³¤Çµ¯¤³¤êÆÀ¤ë¥¨¥é¡¼¤ÎÃͤˤϡ¢ +を設定してエラーを示す。 +ここで起こり得るエラーの値には、 .BR open (2) -¤Î¸Æ¤Ó½Ð¤·¤ÎºÝ¤Ëµ¯¤³¤êÆÀ¤ëÁ´¤Æ¤Î¥¨¥é¡¼¤ÎÃͤ¬´Þ¤Þ¤ì¤ë¡£ +の呼び出しの際に起こり得る全てのエラーの値が含まれる。 .LP -´Ø¿ô +関数 .BR catclose () -¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç 0 ¤ò¡¢¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤òÊÖ¤¹¡£ -.SH ´Ä¶­ÊÑ¿ô +は、成功した場合 0 を、失敗した場合 \-1 を返す。 +.SH 環境変数 .TP .B LC_MESSAGES .B LC_MESSAGES -¥í¥±¡¼¥ëÀßÄê¤Î¥½¡¼¥¹¤Ë¤Ê¤ë¤³¤È¤â²Äǽ¤Ê¤Î¤Ç¡¢ +ロケール設定のソースになることも可能なので、 .I flag -¤¬ +が .B NL_CAT_LOCALE -¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢»ÈÍѤ¹¤ë¸À¸ì¤ò·èÄꤹ¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£ +に設定されている場合は、使用する言語を決定するのに使われる。 .TP .B LANG .I flag -¤¬ 0 ¤Î¾ì¹ç¡¢»ÈÍѤ¹¤ë¸À¸ì¤ò·èÄꤹ¤ë¡£ -.SH ½àµò +が 0 の場合、使用する言語を決定する。 +.SH 準拠 POSIX.1-2001. -.\" XPG 1987, Vol. 3 ¤Ë¤Ï¡¢¡Ö\fIcatopen ¤Î flag °ú¤­¿ô¤Ï -.\" ¾­Íè»ÈÍѤ¹¤ë¤¿¤á¤ËͽÌ󤵤ì¤Æ¤¤¤ë¤Î¤Ç¡¢ -.\" 0 ¤ËÀßÄꤷ¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£\fR¡×¤È½ñ¤«¤ì¤Æ¤¤¤ë¡£ -Äê¿ô +.\" XPG 1987, Vol. 3 には、「\fIcatopen の flag 引き数は +.\" 将来使用するために予約されているので、 +.\" 0 に設定しておくべきである。\fR」と書かれている。 +定数 .B MCLoadBySet -¤È +と .B MCLoadAll -¤ËÂбþ¤¹¤ë¥½¡¼¥¹¤¬²¿¤Ç¤¢¤ë¤Î¤«¤¬¤Ï¤Ã¤­¤ê¤·¤Æ¤¤¤Ê¤¤ (²¼µ­»²¾È)¡£ -.SH Ãí°Õ -°Ê¾å¤Ï POSIX.1-2001 ¤Ë¤ª¤±¤ëÀâÌÀ¤Ç¤¢¤ë¡£ -glibc ¤Ç¤Ï +に対応するソースが何であるのかがはっきりしていない (下記参照)。 +.SH 注意 +以上は POSIX.1-2001 における説明である。 +glibc では .B NL_CAT_LOCALE -¤ÎÃÍ¤Ï 1 ¤Ç¤¢¤ë -(°Ê²¼¤Î +の値は 1 である +(以下の .B MCLoadAll -¤ÈÈæ³Ó¤Î¤³¤È)¡£ -¥Ç¥Õ¥©¥ë¥È¤Î¥Ñ¥¹¤Ï¾ì¹ç¤Ë¤è¤Ã¤ÆÍÍ¡¹¤Ç¤¢¤ë¤¬¡¢Ä̾ï¤Ï +と比較のこと)。 +デフォルトのパスは場合によって様々であるが、通常は .I /usr/share/locale -°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤¬Ä´¤Ù¤é¤ì¤ë¡£ -.SS Linux ¤Ë¤ª¤±¤ëÃí°Õ -¤³¤ì¤é¤Î´Ø¿ô¤Ï libc.so.4.4.4c °Ê¹ß¤Ç»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ -linux ¤Î libc4 ¤È libc5 ¤Ë¤ª¤¤¤Æ¤Ï¡¢¥«¥¿¥í¥°¥Ç¥£¥¹¥¯¥ê¥×¥¿ +以下のファイルが調べられる。 +.SS Linux における注意 +これらの関数は libc.so.4.4.4c 以降で使用可能である。 +linux の libc4 と libc5 においては、カタログディスクリプタ .I nl_catd -¤Ï +は .BR mmap (2) -¤µ¤ì¤¿¥á¥â¥ê¤ÎÎΰè¤Ç¤¢¤Ã¤Æ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ +されたメモリの領域であってファイルディスクリプタではない。 .BR catopen () -¤Î +の .I flag -¤Ï¡¢ +は、 .B MCLoadBySet -(=0) ¤« +(=0) か .B MCLoadAll -(=1) ¤Î¤É¤Á¤é¤«¤Ç¤¢¤ë¡£ -Á°¼Ô¤Î¾ì¹ç¡¢¥«¥¿¥í¥°¤Î¥»¥Ã¥È¤ÏɬÍ×»þ¤Ë¥í¡¼¥É¤µ¤ì¤ë¡£ -¸å¼Ô¤Î¾ì¹ç¡¢ºÇ½é¤Î +(=1) のどちらかである。 +前者の場合、カタログのセットは必要時にロードされる。 +後者の場合、最初の .BR catopen () -¤Î¸Æ¤Ó½Ð¤·¤Î¤È¤­¤ËÁ´¤Æ¤Î¥«¥¿¥í¥°¤¬¥á¥â¥êÆâ¤Ë¥í¡¼¥É¤µ¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Î¥Ñ¥¹¤Ï¾ì¹ç¤Ë¤è¤Ã¤ÆÍÍ¡¹¤Ç¤¢¤ë¤¬¡¢Ä̾ï¤Ï +の呼び出しのときに全てのカタログがメモリ内にロードされる。 +デフォルトのパスは場合によって様々であるが、通常は .I /etc/locale -¤È +と .I /usr/share/locale -°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤¬Ä´¤Ù¤é¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +以下のファイルが調べられる。 +.SH 関連項目 .BR catgets (3), .BR setlocale (3) diff --git a/release/man3/cbrt.3 b/release/man3/cbrt.3 index d96f3393..365be1be 100644 --- a/release/man3/cbrt.3 +++ b/release/man3/cbrt.3 @@ -33,13 +33,13 @@ .\" by Akihiro MOTOKI .\" Updated 2008-09-15, Akihiro MOTOKI .\" -.\" WORD: cube root ΩÊýº¬ -.\" WORD: GNU extension GNU ¤Ë¤è¤ë³ÈÄ¥ +.\" WORD: cube root 立方根 +.\" WORD: GNU extension GNU による拡張 .\" .TH CBRT 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -cbrt, cbrtf, cbrtl \- ΩÊýº¬¤ò·×»»¤¹¤ë´Ø¿ô -.SH ½ñ¼° +.SH 名前 +cbrt, cbrtf, cbrtl \- 立方根を計算する関数 +.SH 書式 .nf .B #include .sp @@ -50,12 +50,12 @@ cbrt, cbrtf, cbrtl \- Ω .BI "long double cbrtl(long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -79,28 +79,28 @@ or .I cc\ -std=c99 .RS .ad b -.SH ÀâÌÀ +.SH 説明 .BR cbrt () -´Ø¿ô¤Ï \fIx\fP ¤Î (¼Â¿ô)ΩÊýº¬¤òÊÖ¤¹¡£ -¤³¤Î´Ø¿ô¤¬¼ºÇÔ¤¹¤ë¤³¤È¤Ï¤Ê¤¤¡£¤Ê¤¼¤Ê¤é¡¢ -¤¹¤Ù¤Æ¤ÎÆâÉôɽ¸½²Äǽ¤Ê (representable) ¼Â¿ô¤Ï -ɬ¤ºÆâÉôɽ¸½²Äǽ¤ÊΩÊýº¬¤ò»ý¤Ä¤¿¤á¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤Ï +関数は \fIx\fP の (実数)立方根を返す。 +この関数が失敗することはない。なぜなら、 +すべての内部表現可能な (representable) 実数は +必ず内部表現可能な立方根を持つためである。 +.SH 返り値 +これらの関数は .I x -¤ÎΩÊýº¬¤òÊÖ¤¹¡£ +の立方根を返す。 .I x -¤¬ +0¡¢\-0¡¢Àµ¤Î̵¸ÂÂç¡¢Éé¤Î̵¸ÂÂç¡¢NaN ¤Î¤¤¤º¤ì¤«¤Î¾ì¹ç¡¢ +が +0、\-0、正の無限大、負の無限大、NaN のいずれかの場合、 .I x -¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ -.SH ½àµò +が返される。 +.SH エラー +エラーは発生しない。 +.SH 準拠 C99, POSIX.1-2001. .\" .BR cbrt () -.\" ¤Ï°ÊÁ°¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤Ã¤¿¡£ -.\" ¸½ºß¤Ï C99 ¤Çɬ¿Ü¤Î´Ø¿ô¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +.\" は以前は GNU による拡張であった。 +.\" 現在は C99 で必須の関数である。 +.SH 関連項目 .BR pow (3), .BR sqrt (3) diff --git a/release/man3/ccos.3 b/release/man3/ccos.3 index bfba009b..3ff0b539 100644 --- a/release/man3/ccos.3 +++ b/release/man3/ccos.3 @@ -6,14 +6,14 @@ .\" Translated Wed Jul 23 05:24:15 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: sine Àµ¸¹ -.\"WORD: cosine ;¸¹ -.\"WORD: tangent ÀµÀÜ +.\"WORD: sine 正弦 +.\"WORD: cosine 余弦 +.\"WORD: tangent 正接 .\" .TH CCOS 3 2008-08-06 "" "Linux Programmer's Manual" -.SH ̾Á° -ccos, ccosf, ccosl \- Ê£ÁÇ¿ô¤Î;¸¹ (cosine) -.SH ½ñ¼° +.SH 名前 +ccos, ccosf, ccosl \- 複素数の余弦 (cosine) +.SH 書式 .B #include .sp .BI "double complex ccos(double complex " z ");" @@ -22,18 +22,18 @@ ccos, ccosf, ccosl \- Ê£ .br .BI "long double complex ccosl(long double complex " z ");" .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ -Ê£ÁÇ¿ô¤Î;¸¹ (cosine) ´Ø¿ô ccos(z) ¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë¡£ +\fI\-lm\fP でリンクする。 +.SH 説明 +複素数の余弦 (cosine) 関数 ccos(z) は以下のように定義される。 .nf ccos(z) = (exp(i * z) + exp(\-i * z)) / 2 .fi -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR cacos (3), .BR csin (3), diff --git a/release/man3/ccosh.3 b/release/man3/ccosh.3 index c2267f5b..07f9a9e4 100644 --- a/release/man3/ccosh.3 +++ b/release/man3/ccosh.3 @@ -6,15 +6,15 @@ .\" Translated Mon Jul 28 23:42:41 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: hyperbolic ÁжÊ(Àþ¤Î) -.\"WORD: sine Àµ¸¹ -.\"WORD: cosine ;¸¹ -.\"WORD: tangent ÀµÀÜ +.\"WORD: hyperbolic 双曲(線の) +.\"WORD: sine 正弦 +.\"WORD: cosine 余弦 +.\"WORD: tangent 正接 .\" .TH CCOSH 3 2008-08-06 "" "Linux Programmer's Manual" -.SH ̾Á° -ccosh, ccoshf, ccoshl \- Ê£ÁÇ¿ô¤ÎÁжÊÀþ;¸¹ (hyperbolic cosine) -.SH ½ñ¼° +.SH 名前 +ccosh, ccoshf, ccoshl \- 複素数の双曲線余弦 (hyperbolic cosine) +.SH 書式 .B #include .sp .BI "double complex ccosh(double complex " z ");" @@ -23,19 +23,19 @@ ccosh, ccoshf, ccoshl \- Ê£ .br .BI "long double complex ccoshl(long double complex " z ");" .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ -Ê£ÁÇ¿ô¤ÎÁжÊÀþ;¸¹ (hyperbolic cosine) ´Ø¿ô ccosh(z) ¤Ï -°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë¡£ +\fI\-lm\fP でリンクする。 +.SH 説明 +複素数の双曲線余弦 (hyperbolic cosine) 関数 ccosh(z) は +以下のように定義される。 .nf ccosh(z) = (exp(z)+exp(\-z))/2 .fi -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR cacosh (3), .BR csinh (3), diff --git a/release/man3/ceil.3 b/release/man3/ceil.3 index 064db7e4..aca7d512 100644 --- a/release/man3/ceil.3 +++ b/release/man3/ceil.3 @@ -32,12 +32,12 @@ .\" by Yuichi SATO .\" Updated 2008-09-15, Akihiro MOTOKI .\" -.\"WORD: mantissa ²¾¿ô +.\"WORD: mantissa 仮数 .\" .TH CEIL 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -ceil, ceilf, ceill \- °ú¤­¿ô¤ò²¼²ó¤é¤Ê¤¤ºÇ¾®¤ÎÀ°¿ôÃÍ -.SH ½ñ¼° +.SH 名前 +ceil, ceilf, ceill \- 引き数を下回らない最小の整数値 +.SH 書式 .nf .B #include .sp @@ -48,12 +48,12 @@ ceil, ceilf, ceill \- .BI "long double ceill(long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -67,55 +67,55 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï \fIx\fP ¤è¤ê¾®¤µ¤¯¤Ê¤¤ºÇ¾®¤ÎÀ°¿ôÃͤòÊÖ¤¹¡£ +.SH 説明 +これらの関数は \fIx\fP より小さくない最小の整数値を返す。 -Î㤨¤Ð¡¢ +例えば、 .I ceil(0.5) -¤Ï 1.0 ¤Ç¤¢¤ê¡¢ +は 1.0 であり、 .I ceil(\-0.5) -¤Ï 0.0 ¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤Ï +は 0.0 である。 +.SH 返り値 +これらの関数は .I x -¤ò²¼²ó¤é¤Ê¤¤À°¿ôÃͤòÊÖ¤¹¡£ +を下回らない整数値を返す。 -\fIx\fP ¤¬À°¿ô¡¢+0¡¢\-0¡¢NaN¡¢Ìµ¸Â¤Î¤¤¤º¤ì¤«¤Î¾ì¹ç¡¢ -\fIx\fP ¤½¤Î¤â¤Î¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ -POSIX.1-2001 ¤Ë¤Ï¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤ËÂФ·¤ÆÈÏ°Ï¥¨¥é¡¼¤¬µ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ -¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¡£ -.SH ½àµò +\fIx\fP が整数、+0、\-0、NaN、無限のいずれかの場合、 +\fIx\fP そのものを返す。 +.SH エラー +エラーは発生しない。 +POSIX.1-2001 にはオーバーフローに対して範囲エラーが記載されている。 +「注意」の節を参照。 +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -SUSv2 ¤È POSIX.1-2001 ¤Ë¤Ï¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ë´Ø¤¹¤ëµ­½Ò¤¬¤¢¤ê¡¢ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤ÎºÝ¤Ë¤Ï +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 +.SH 注意 +SUSv2 と POSIX.1-2001 にはオーバーフローに関する記述があり、 +オーバーフローの際には .I errno -¤ò +を .B ERANGE -¤ËÀßÄꤹ¤ë¤« +に設定するか .B FE_OVERFLOW -Îã³°¤òµ¯¤³¤¹¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ -¼ÂºÝ¤Î¤È¤³¤í¡¢¤É¤Î¸½¹Ô¤Î¥Þ¥·¥ó¤Ç¤â·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤òµ¯¤³¤¹¤³¤È¤Ï -¤Ê¤¤¤Î¤Ç¡¢¤³¤Î¥¨¥é¡¼½èÍý¤Ï°ÕÌ£¤¬¤Ê¤¤¡£ +例外を起こすとなっている。 +実際のところ、どの現行のマシンでも結果がオーバーフローを起こすことは +ないので、このエラー処理は意味がない。 .\" The POSIX.1-2001 APPLICATION USAGE SECTION discusses this point. -(¤è¤êÀµ³Î¤Ë¸À¤¦¤È¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ï»Ø¿ôÉô¤ÎºÇÂçÃͤ¬ -²¾¿ôÉô¤òɽ¤¹¥Ó¥Ã¥È¤Î¿ô¤è¤ê¾®¤µ¤¤¾ì¹ç¤Ë¤·¤«µ¯¤³¤é¤Ê¤¤¡£ -IEEE-754 µ¬³Ê¤Î 32 ¥Ó¥Ã¥È¤È 64 ¥Ó¥Ã¥È¤ÎÉâÆ°¾®¿ô¤Ç¤Ï¡¢ -»Ø¿ôÉô¤ÎºÇÂçÃͤϤ½¤ì¤¾¤ì 128 ¤È 1024 ¤Ç¤¢¤ê¡¢ -²¾¿ôÉô¤Î¥Ó¥Ã¥È¿ô¤Ï¤½¤ì¤¾¤ì 24 ¤È 53 ¤Ç¤¢¤ë¡£) +(より正確に言うと、オーバーフローは指数部の最大値が +仮数部を表すビットの数より小さい場合にしか起こらない。 +IEEE-754 規格の 32 ビットと 64 ビットの浮動小数では、 +指数部の最大値はそれぞれ 128 と 1024 であり、 +仮数部のビット数はそれぞれ 24 と 53 である。) -¤³¤ì¤é¤Î´Ø¿ô¤¬ÊÖ¤¹À°¿ôÃͤÏÀ°¿ô·¿ +これらの関数が返す整数値は整数型 .RI ( int , .I long -¤Ê¤É) ¤Ë³ÊǼ¤¹¤ë¤Ë¤ÏÂ礭²á¤®¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Î·ë²Ì¤Ïʬ¤«¤é¤Ê¤¤¤Î¤Ç¡¢ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤òÈò¤±¤ë¤¿¤á¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤ÏÀ°¿ô·¿¤ËÂåÆþ¤¹¤ëÁ°¤Ë -ÊÖ¤µ¤ì¤¿ÃͤÎÈϰϳÎǧ¤ò¼Â¹Ô¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +など) に格納するには大き過ぎるかもしれない。 +オーバーフローが起こった場合の結果は分からないので、 +オーバーフローを避けるため、アプリケーションでは整数型に代入する前に +返された値の範囲確認を実行すべきである。 +.SH 関連項目 .BR floor (3), .BR lrint (3), .BR nearbyint (3), diff --git a/release/man3/cerf.3 b/release/man3/cerf.3 index 4467e3d3..e34fa993 100644 --- a/release/man3/cerf.3 +++ b/release/man3/cerf.3 @@ -6,12 +6,12 @@ .\" Translated 2003-07-24, Akihiro MOTOKI .\" Updated 2005-02-26, Akihiro MOTOKI .\" -.\"WORD: error function ¸íº¹´Ø¿ô +.\"WORD: error function 誤差関数 .\" .TH CERF 3 2010-09-12 "" "Linux Programmer's Manual" -.SH ̾Á° -cerf, cerff, cerfl, cerfc, cerfcf, cerfcl \- Ê£ÁÇ¿ô¤Î¸íº¹´Ø¿ô -.SH ½ñ¼° +.SH 名前 +cerf, cerff, cerfl, cerfc, cerfcf, cerfcl \- 複素数の誤差関数 +.SH 書式 .B #include .sp .BI "double complex cerf(double complex " z ); @@ -26,23 +26,23 @@ cerf, cerff, cerfl, cerfc, cerfcf, cerfcl \- Ê£ .br .BI "long double complex cerfcl(long double complex " z ); .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ -(̤¼ÂÁõ¤Î) +\fI\-lm\fP でリンクする。 +.SH 説明 +(未実装の) .BR cerf () -´Ø¿ô¤Ï¸íº¹´Ø¿ô¤ÎÊ£ÁÇ¿ôÈǤǤ¢¤ê¡¢ +関数は誤差関数の複素数版であり、 .TP -erf(z) = 2/sqrt(pi) * exp(\-t*t) dt ¤Î 0 ¤«¤é z ¤Þ¤Ç¤ÎÀÑʬ +erf(z) = 2/sqrt(pi) * exp(\-t*t) dt の 0 から z までの積分 .PP -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で定義されている。 .BR cerfc () -´Ø¿ô¤ÎÄêµÁ¤Ï cerfc(z) = 1-cerf(z) ¤Ç¤¢¤ë¡£ -.\" 1/sqrt(2*pi) ¤Î¥Á¥§¥Ã¥¯¤ò¤·¤Ê¤¯¤Æ¤â¤¤¤¤¤Î¡© -.SH ½àµò -´Ø¿ô̾¤Ï C99 ¤Çº£¸å»ÈÍѤ¹¤ë¤¿¤á¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ -.SH ²ÄÍÑÀ­ -¥Ð¡¼¥¸¥ç¥ó 2.12 »þÅÀ¤Ç¤Ï¡¢glibc ¤Ë¤Ï¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.\" ¤·¤«¤·¡¢Ì¾Á°¶õ´Ö¤ÏͽÌóºÑ¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +関数の定義は cerfc(z) = 1-cerf(z) である。 +.\" 1/sqrt(2*pi) のチェックをしなくてもいいの? +.SH 準拠 +関数名は C99 で今後使用するために予約されている。 +.SH 可用性 +バージョン 2.12 時点では、glibc にはまだ実装されていない。 +.\" しかし、名前空間は予約済である。 +.SH 関連項目 .BR erf (3), .BR complex (7) diff --git a/release/man3/cexp.3 b/release/man3/cexp.3 index a5ebab0b..03fab58e 100644 --- a/release/man3/cexp.3 +++ b/release/man3/cexp.3 @@ -6,14 +6,14 @@ .\" Translated Thu Jul 24 02:05:20 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: exponential »Ø¿ô -.\"WORD: natural logarithm ¼«Á³Âпô -.\"WORD: base Äì +.\"WORD: exponential 指数 +.\"WORD: natural logarithm 自然対数 +.\"WORD: base 底 .\" .TH CEXP 3 2008-08-06 "" "Linux Programmer's Manual" -.SH ̾Á° -cexp, cexpf, cexpl \- Ê£ÁÇ¿ô¤Î»Ø¿ô´Ø¿ô -.SH ½ñ¼° +.SH 名前 +cexp, cexpf, cexpl \- 複素数の指数関数 +.SH 書式 .B #include .sp .BI "double complex cexp(double complex " z ");" @@ -22,20 +22,20 @@ cexp, cexpf, cexpl \- Ê£ .br .BI "long double complex cexpl(long double complex " z ");" .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ -¤³¤Î´Ø¿ô¤Ï e (2.71828..., ¼«Á³Âпô¤ÎÄì) ¤Î \fIz\fR ¾è¤ò·×»»¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 +.SH 説明 +この関数は e (2.71828..., 自然対数の底) の \fIz\fR 乗を計算する。 .LP -¼¡¤Î´Ø·¸¤¬À®Î©¤¹¤ë: +次の関係が成立する: .nf cexp(I * z) = ccos(z) + I * csin(z) .fi -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR cexp2 (3), .BR clog (3), diff --git a/release/man3/cexp2.3 b/release/man3/cexp2.3 index 3fb007e3..923c2e7f 100644 --- a/release/man3/cexp2.3 +++ b/release/man3/cexp2.3 @@ -6,12 +6,12 @@ .\" Translated 2003-07-24, Akihiro MOTOKI .\" Updated 2005-02-24, Akihiro MOTOKI .\" -.\"WORD: exponent Îß¾è +.\"WORD: exponent 累乗 .\" .TH CEXP2 3 2008-08-11 "" "Linux Programmer's Manual" -.SH ̾Á° -cexp2, cexp2f, cexp2l \- Ê£ÁÇ¿ô¤Î 2 ¤ÎÎß¾è -.SH ½ñ¼° +.SH 名前 +cexp2, cexp2f, cexp2l \- 複素数の 2 の累乗 +.SH 書式 .B #include .sp .BI "double complex cexp2(double complex " z ");" @@ -20,15 +20,15 @@ cexp2, cexp2f, cexp2l \- Ê£ .br .BI "long double complex cexp2l(long double complex " z ");" .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ -¤³¤Î´Ø¿ô¤Ï 2 ¤Î \fIz\fR ¾è¤òÊÖ¤¹¡£ -.SH ½àµò -´Ø¿ô̾¤Ï C99 ¤Çº£¸å»ÈÍѤ¹¤ë¤¿¤á¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ -.SH ²ÄÍÑÀ­ -¥Ð¡¼¥¸¥ç¥ó 2.8 »þÅÀ¤Ç¤Ï¡¢glibc ¤Ë¤Ï¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.\" ¤·¤«¤·¡¢Ì¾Á°¶õ´Ö¤ÏͽÌóºÑ¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +\fI\-lm\fP でリンクする。 +.SH 説明 +この関数は 2 の \fIz\fR 乗を返す。 +.SH 準拠 +関数名は C99 で今後使用するために予約されている。 +.SH 可用性 +バージョン 2.8 時点では、glibc にはまだ実装されていない。 +.\" しかし、名前空間は予約済である。 +.SH 関連項目 .BR cabs (3), .BR cexp (3), .BR clog10 (3), diff --git a/release/man3/cfree.3 b/release/man3/cfree.3 index 1eb583d3..22698b5b 100644 --- a/release/man3/cfree.3 +++ b/release/man3/cfree.3 @@ -26,105 +26,105 @@ .\" by Yuichi SATO .\" .TH CFREE 3 2007-07-26 "" "Linux Programmer's Manual" -.SH ̾Á° -cfree \- ³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤ò²òÊü¤¹¤ë -.SH ½ñ¼° +.SH 名前 +cfree \- 割り当てられたメモリを解放する +.SH 書式 .nf .sp .B "#include " .sp -/* SunOS 4 ¤Ç¤Ï */ +/* SunOS 4 では */ .BI "int cfree(void *" ptr ); .sp -/* glibc ¤È FreeBSD libcompat ¤Ç¤Ï */ +/* glibc と FreeBSD libcompat では */ .BI "void cfree(void *" ptr ); .sp -/* SCO OpenServer ¤Ç¤Ï */ +/* SCO OpenServer では */ .BI "void cfree(char *" ptr ", unsigned " num ", unsigned " size ); .sp -/* Solaris watchmalloc.so.1 ¤Ç¤Ï */ +/* Solaris watchmalloc.so.1 では */ .BI "void cfree(void *" ptr ", size_t " nelem ", size_t " elsize ); .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR cfree (): _BSD_SOURCE || _SVID_SOURCE -.SH ÀâÌÀ -¤³¤Î´Ø¿ô¤Ï·è¤·¤Æ»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -Âå¤ï¤ê¤Ë +.SH 説明 +この関数は決して使用すべきではない。 +代わりに .BR free (3) -¤ò»È¤¦¤³¤È¡£ -.SS "°ú¤­¿ô¤¬ 1 ¤Ä¤Î cfree" -glibc ¤Ç¤Ï¡¢´Ø¿ô +を使うこと。 +.SS "引き数が 1 つの cfree" +glibc では、関数 .BR cfree () -¤Ï +は .BR free (3) -¤ÎÊÌ̾¤Ç¤¢¤ê¡¢¡ÖSunOS ¤È¤Î¸ß´¹À­¤Î¤¿¤á¤ËÄɲ䵤줿¡×¡£ +の別名であり、「SunOS との互換性のために追加された」。 .LP -¾¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤Î̾Á°¤ÎÊ̤δؿô¤¬¤¢¤ë¡£ -¤³¤ÎÀë¸À¤Ï +他のシステムでは、この名前の別の関数がある。 +この宣言は .I -¤Ë¸ºß¤¹¤ë¾ì¹ç¤â¤¢¤ë¤·¡¢ +に存在する場合もあるし、 .I -¤Ë¸ºß¤¹¤ë¾ì¹ç¤â¤¢¤ë¡£ -.SS "°ú¤­¿ô¤¬ 3 ¤Ä¤Î cfree" -SCO ¤È Solaris ¤Î¤¤¤¯¤Ä¤«¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ -°ú¤­¿ô¤¬ 3 ¤Ä¤Î +に存在する場合もある。 +.SS "引き数が 3 つの cfree" +SCO と Solaris のいくつかのバージョンでは、 +引き数が 3 つの .BR cfree () -¤¬´Þ¤Þ¤ì¤ë malloc ¥é¥¤¥Ö¥é¥ê¤¬¤¢¤ë¡£ -¤³¤ì¤ÏÌÀ¤é¤«¤Ë +が含まれる malloc ライブラリがある。 +これは明らかに .BR calloc (3) -¤ËÎà»÷¤·¤Æ¤¤¤ë¡£ +に類似している。 .LP -²¿¤«¤ò°Ü¿¢¤¹¤ë»þ¤Ë¤³¤Î´Ø¿ô¤¬É¬Íפʾì¹ç¡¢ +何かを移植する時にこの関数が必要な場合、 .sp .in +4n #define cfree(p, n, s) free((p)) .in .sp -¤ò¥Õ¥¡¥¤¥ë¤ËÄɲ乤뤳¤È¡£ +をファイルに追加すること。 .LP -¤è¤¯¿Ò¤Í¤é¤ì¤ë¼ÁÌä¤Ï -.RB ¡Ö calloc (3) -¤Ç³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤ò²òÊü¤¹¤ë¤Î¤Ë +よく尋ねられる質問は +.RB 「 calloc (3) +で割り当てられたメモリを解放するのに .BR free (3) -¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¤«¡¢ -¤½¤ì¤È¤â +を使うことができるか、 +それとも .BR cfree () -¤ò»È¤¦É¬Íפ¬¤¢¤ë¤«¡×¤È¤¤¤¦¤â¤Î¤Ç¤¢¤ë¡£ -Åú¤¨: +を使う必要があるか」というものである。 +答え: .BR free (3) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .LP -SCO ¤Î¥Þ¥Ë¥å¥¢¥ë¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë: -¡Öcfree ¥ë¡¼¥Á¥ó¤Ï iBCSe2 µ¬³Ê¤Ë½¾¤¦¤¿¤á¤ËÄ󶡤µ¤ì¤Æ¤ª¤ê¡¢ -ñ¤Ë free ¤ò¸Æ¤ó¤Ç¤¤¤ë¤À¤±¤Ç¤¢¤ë¡£ -cfree ¤Î num ¤È size °ú¤­¿ô¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£¡× -.SH ÊÖ¤êÃÍ -SunOS ÈǤΠ+SCO のマニュアルには以下のように記述されている: +「cfree ルーチンは iBCSe2 規格に従うために提供されており、 +単に free を呼んでいるだけである。 +cfree の num と size 引き数は使用されない。」 +.SH 返り値 +SunOS 版の .BR cfree () .RB ( free (3) -¤ÎÊÌ̾) ¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¤Ë 1 ¤òÊÖ¤·¡¢¼ºÇÔ¤·¤¿¾ì¹ç¤Ë 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ +の別名) は、成功した場合に 1 を返し、失敗した場合に 0 を返す。 +エラーの場合、 .I errno -¤¬ +が .B EINVAL -¤ËÀßÄꤵ¤ì¤ë: +に設定される: .I ptr -¤ÎÃͤ¬ +の値が .BR malloc () -·Ï¤Î¥ë¡¼¥Á¥ó¤Î 1 ¤Ä¤Ç°ÊÁ°¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿ -¥Ö¥í¥Ã¥¯¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤¤¡£ -.SH ½àµò -SCO ¤ÇÍѤ¤¤é¤ì¤Æ¤¤¤ë°ú¤­¿ô¤¬ 3 ¤Ä¤Î +系のルーチンの 1 つで以前に割り当てられた +ブロックへのポインタでない。 +.SH 準拠 +SCO で用いられている引き数が 3 つの .BR cfree () -¤Ï¡¢iBCSe2 µ¬³Ê: +は、iBCSe2 規格: Intel386 Binary Compatibility Specification, Edition 2 -(Intel386 ¥Ð¥¤¥Ê¥ê¸ß´¹»ÅÍÍ¡¢Âè 2 ÈÇ) ¤Ë½àµò¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +(Intel386 バイナリ互換仕様、第 2 版) に準拠する。 +.SH 関連項目 .BR malloc (3) diff --git a/release/man3/cimag.3 b/release/man3/cimag.3 index 830feafd..c6ade1b1 100644 --- a/release/man3/cimag.3 +++ b/release/man3/cimag.3 @@ -6,13 +6,13 @@ .\" Translated Thu Jul 24 01:37:31 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: real part ¼ÂÉô -.\"WORD: imaginary part µõÉô +.\"WORD: real part 実部 +.\"WORD: imaginary part 虚部 .\" .TH CIMAG 3 2008-08-06 "" "Linux Programmer's Manual" -.SH ̾Á° -cimag, cimagf, cimagl \- Ê£ÁÇ¿ô¤ÎµõÉô¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +cimag, cimagf, cimagl \- 複素数の虚部を取得する +.SH 書式 .B #include .sp .BI "double cimag(double complex " z ");" @@ -21,26 +21,26 @@ cimag, cimagf, cimagl \- Ê£ .br .BI "long double cimagl(long double complex " z ");" .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lm\fP でリンクする。 +.SH 説明 .BR cimag () -´Ø¿ô¤ÏÊ£ÁÇ¿ô +関数は複素数 .I z -¤ÎµõÉô¤òÊÖ¤¹¡£ +の虚部を返す。 .LP -¼¡¤Î´Ø·¸¤¬À®Î©¤¹¤ë: +次の関係が成立する: .nf z = creal(z) + I * cimag(z) .fi -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99. -.SH Ãí°Õ -gcc ¤Ç¤Ï __imag__ ¤ò»È¤¦¤³¤È¤â¤Ç¤­¤ë¤¬¡¢ -¤³¤ì¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +.SH 注意 +gcc では __imag__ を使うこともできるが、 +これは GNU による拡張である。 +.SH 関連項目 .BR cabs (3), .BR creal (3), .BR complex (7) diff --git a/release/man3/clearenv.3 b/release/man3/clearenv.3 index a20433db..ee4f5d42 100644 --- a/release/man3/clearenv.3 +++ b/release/man3/clearenv.3 @@ -29,9 +29,9 @@ .\" Updated & Modifined Mon Jul 15 02:10:29 JST 2002 by Yuichi SATO .\" .TH CLEARENV 3 2010-10-04 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -clearenv \- ´Ä¶­ (environment) ¤ò¥¯¥ê¥¢¤¹¤ë -.SH ½ñ¼° +.SH 名前 +clearenv \- 環境 (environment) をクリアする +.SH 書式 .nf .B #include .sp @@ -39,67 +39,67 @@ clearenv \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR clearenv (): _SVID_SOURCE || _BSD_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR clearenv () -´Ø¿ô¤Ï¡¢Ì¾Á°¤ÈÃͤ¬ÁȤˤʤä¿Á´¤Æ¤Î´Ä¶­¤ò¥¯¥ê¥¢¤¹¤ë¡£ -¤µ¤é¤Ë³°ÉôÊÑ¿ô +関数は、名前と値が組になった全ての環境をクリアする。 +さらに外部変数 .I environ -¤ÎÃͤò NULL ¤Ë¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ +の値を NULL にする。 +.SH 返り値 .BR clearenv () -´Ø¿ô¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤·¡¢ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï 0 °Ê³°¤òÊÖ¤¹¡£ -.\" UNIX ·Ï OS ¤Î¿¤¯¤Ï¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ë \-1 ¤òÊÖ¤¹¡£ -.\" ¤â¤·¤¯¤Ï¥¨¥é¡¼¤Î¾ì¹ç¤Ç¤â²¿¤âÊÖ¤µ¤Ê¤¤¡£ -.\" glibc ¤Î info ¤È Watcom C ¥é¥¤¥Ö¥é¥ê¤Ë¤Ï¡¢ -.\" ¡Ö0 °Ê³°¤ÎÃÍ (¤òÊÖ¤¹)¡×¤Èµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -libc4, libc5 ¤Ç¤Ï»ÈÍѤǤ­¤Ê¤¤¡£ -glibc 2.0 °Ê¹ß¤Î glibc ¤Ç»ÈÍѤǤ­¤ë¡£ -.SH ½àµò -(DG/UX, HP-UX, QNX, ¤Ê¤É¤Î) ¿¤¯¤Î UNIX ·Ï OS¡£ -(FORTRAN77 ¤Ø¤Î¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤Ç¤¢¤ë) POSIX.9¡£ -POSIX.1-1996 ¤Ç¤Ï +関数は、成功した場合は 0 を返し、 +失敗した場合は 0 以外を返す。 +.\" UNIX ç³» OS の多くは、エラーの場合に \-1 を返す。 +.\" もしくはエラーの場合でも何も返さない。 +.\" glibc の info と Watcom C ライブラリには、 +.\" 「0 以外の値 (を返す)」と記述されている。 +.SH バージョン +libc4, libc5 では使用できない。 +glibc 2.0 以降の glibc で使用できる。 +.SH 準拠 +(DG/UX, HP-UX, QNX, などの) 多くの UNIX ç³» OS。 +(FORTRAN77 へのバインディングである) POSIX.9。 +POSIX.1-1996 では .BR clearenv () -¤È +と .BR putenv (3) -¤ÏºÎÍѤµ¤ì¤Ê¤«¤Ã¤¿¤¬¡¢ -Êý¿Ë¤¬Êѹ¹¤µ¤ì¡¢¤³¤Îɸ½àµ¬³Ê¤Î°Ê¹ß¤Î¹æ (B.4.6.1 ¤ò»²¾È) ¤Ç¤Ï -ºÎÍѤµ¤ì¤ë¤³¤È¤Ë¤Ê¤Ã¤¿¡£ -¤·¤«¤· POSIX.1-2001 ¤Ç¤Ï +は採用されなかったが、 +方針が変更され、この標準規格の以降の号 (B.4.6.1 を参照) では +採用されることになった。 +しかし POSIX.1-2001 では .BR putenv (3) -¤·¤«Äɲ䵤줺¡¢ +しか追加されず、 .BR clearenv () -¤ÎÄɲäÏÈݷ褵¤ì¤¿¡£ -.SH Ãí°Õ -¤³¤Î´Ø¿ô¤Ï¥»¥­¥å¥ê¥Æ¥£¤Ë¹Íθ¤·¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç»È¤ï¤ì¤ë¡£ -¤³¤Î´Ø¿ô¤¬»ÈÍѤǤ­¤Ê¤¤¾ì¹ç¤Ï¡¢ +の追加は否決された。 +.SH 注意 +この関数はセキュリティに考慮したアプリケーションで使われる。 +この関数が使用できない場合は、 .nf environ = NULL; .fi -¤È¤¤¤¦¤è¤¦¤ËÊÑ¿ô environ ¤òÀßÄꤹ¤ì¤Ð¤è¤¤¡£ +というように変数 environ を設定すればよい。 .LP -DG/UX ¤È Tru64 man ¥Ú¡¼¥¸¤Ë¤Ï¼¡¤Î¤è¤¦¤Ëµ­¤µ¤ì¤Æ¤¤¤ë¡§ +DG/UX と Tru64 man ページには次のように記されている: .I environ -¤¬ +が .BR putenv (3), .BR getenv (3), .BR clearenv () -´Ø¿ô°Ê³°¤ÇÊѹ¹¤µ¤ì¤¿¾ì¹ç¡¢ +関数以外で変更された場合、 .BR clearenv () -¤Ï¥¨¥é¡¼¤òÊÖ¤·¡¢¥×¥í¥»¥¹´Ä¶­¤ÏÊѹ¹Á°¤Î¤Þ¤Þ¤Ë¤µ¤ì¤ë¡£ +はエラーを返し、プロセス環境は変更前のままにされる。 .\" .LP -.\" HP-UX ¤Ë¤Ï ENOMEM ¥¨¥é¡¼¤¬¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +.\" HP-UX には ENOMEM エラーがある。 +.SH 関連項目 .BR getenv (3), .BR putenv (3), .BR setenv (3), diff --git a/release/man3/clock.3 b/release/man3/clock.3 index fda4c304..b475e4ac 100644 --- a/release/man3/clock.3 +++ b/release/man3/clock.3 @@ -32,66 +32,66 @@ .\" Updated Fri Sep 27 JST 2002 by Kentaro Shirakata .\" Updated 2007-05-28, Akihiro MOTOKI , LDP v2.48 .\" -.\"WORD: processor time ¥×¥í¥»¥Ã¥µ»þ´Ö -.\"WORD: CPU time CPU»þ´Ö +.\"WORD: processor time プロセッサ時間 +.\"WORD: CPU time CPU時間 .\" .TH CLOCK 3 2008-08-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -clock \- ¥×¥í¥»¥Ã¥µ»þ´Ö¤Î¼èÆÀ -.SH ½ñ¼° +.SH 名前 +clock \- プロセッサ時間の取得 +.SH 書式 .nf .B #include .sp .B clock_t clock(void); .fi -.SH ÀâÌÀ +.SH 説明 .BR clock () -¤Ï¥×¥í¥°¥é¥à¤Î»ÈÍѤ·¤¿¥×¥í¥»¥Ã¥µ»þ´Ö¤Î¶á»÷ÃͤòÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -ÊÖ¤êÃÍ¤Ï +はプログラムの使用したプロセッサ時間の近似値を返す。 +.SH 返り値 +返り値は .I clock_t -ñ°Ì¤Ç¤Î CPU »þ´Ö¤Ç¤¢¤ë¡£ -ÉÃñ°Ì¤Ç¤ÎÃͤòÆÀ¤ë¤¿¤á¤Ë¤Ï +単位での CPU 時間である。 +秒単位での値を得るためには .B CLOCKS_PER_SEC -¤Ç³ä¤ì¤Ð¤è¤¤¡£ -»ÈÍѤ·¤¿¥×¥í¥»¥Ã¥µ»þ´Ö¤¬ÆÀ¤é¤ì¤Ê¤¤¾ì¹ç¤ä¡¢¤½¤ÎÃͤòɽ¸½¤Ç¤­¤Ê¤¤¾ì¹ç¡¢ -¤³¤Î´Ø¿ô¤Ï +で割ればよい。 +使用したプロセッサ時間が得られない場合や、その値を表現できない場合、 +この関数は .I (clock_t)\ \-1 -¤òÊÖ¤¹¡£ -.SH ½àµò +を返す。 +.SH 準拠 C89, C99, POSIX.1-2001. -POSIX ¤Ï¼ÂºÝ¤ÎÀºÅ٤ˤϤè¤é¤º +POSIX は実際の精度にはよらず .B CLOCKS_PER_SEC -¤¬ 1000000 ¤Ç¤¢¤ë¤³¤È¤òÍ׵ᤷ¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -C ¤Îɸ½àµ¬³Ê¤Ç¤Ï¥×¥í¥°¥é¥à¤Î³«»Ï¤Î»þÅÀ¤Ç¤Ï¤É¤ó¤ÊÃͤ¬Ê֤äƤ­¤Æ¤â -¤«¤Þ¤ï¤Ê¤¤¡£ -°Ü¿¢À­¤òºÇÂç¸Â³ÎÊݤ¹¤ë¤¿¤á¤Ë¤Ï¡¢¥×¥í¥°¥é¥à¤Î³«»Ï»þ¤Ë +が 1000000 であることを要求している。 +.SH 注意 +C の標準規格ではプログラムの開始の時点ではどんな値が返ってきても +かまわない。 +移植性を最大限確保するためには、プログラムの開始時に .BR clock () -¤ò¸Æ¤Ó½Ð¤·¤Æ¤½¤ÎÃͤòº¹¤·°ú¤¯¤³¤È¡£ +を呼び出してその値を差し引くこと。 .PP -»þ¹ï¤Ï·å¤¢¤Õ¤ì¤¹¤ë²ÄǽÀ­¤¬¤¢¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +時刻は桁あふれする可能性がある点に注意すること。 .B CLOCKS_PER_SEC -¤¬ 1000000 ¤Ç¤¢¤ë 32 ¥Ó¥Ã¥È¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -¤³¤Î´Ø¿ô¤ÏÌó 72 ʬËè¤ËƱ¤¸ÃͤòÊÖ¤¹¤³¤È¤Ë¤Ê¤ë¡£ +が 1000000 である 32 ビットシステムでは、 +この関数は約 72 分毎に同じ値を返すことになる。 .PP -¼ÂÁõ¤Ë¤è¤Ã¤Æ¤Ï¡¢ +実装によっては、 .BR clock () -¤ÇÊÖ¤µ¤ì¤ëÃÍ¤Ë +で返される値に .BR wait (2) -(¤¢¤ë¤¤¤Ï¤½¤Î¾¤Î wait ¤Î¤è¤¦¤Ê´Ø¿ô) ¤Ç¼ý½¸¤µ¤ì¤¿ -»Ò¥×¥í¥»¥¹¤Î»þ´Ö¤¬´Þ¤Þ¤ì¤ë¾ì¹ç¤â¤¢¤ë¡£ -Linux ¤Ç¤Ï¡¢ +(あるいはその他の wait のような関数) で収集された +子プロセスの時間が含まれる場合もある。 +Linux では、 .BR clock () -¤¬ÊÖ¤¹ÃÍ¤Ë¤Ï wait ¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Î»þ´Ö¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ +が返す値には wait された子プロセスの時間は含まれない。 .\" I have seen this behavior on Irix 6.3, and the OSF/1, HP/UX, and .\" Solaris manual pages say that clock() also does this on those systems. .\" POSIX.1-2001 doesn't explicitly allow this, nor is there an .\" explicit prohibition. -- MTK .BR times (2) -´Ø¿ô¤Ï¸Æ¤Ó½Ð¤·¸µ¤È¤½¤Î»Ò¥×¥í¥»¥¹¤Ë´Ø¤¹¤ë¾ðÊó¤ò -(ÊÌ¡¹¤Ë) ÌÀ¼¨Åª¤ËÊÖ¤¹¤Î¤Ç¡¢¤è¤ê¹¥¤Þ¤·¤¤¤À¤í¤¦¡£ -.SH ´ØÏ¢¹àÌÜ +関数は呼び出し元とその子プロセスに関する情報を +(別々に) 明示的に返すので、より好ましいだろう。 +.SH 関連項目 .BR clock_gettime (2), .BR getrusage (2), .BR times (2) diff --git a/release/man3/clog.3 b/release/man3/clog.3 index 29c1b53c..6634d8a5 100644 --- a/release/man3/clog.3 +++ b/release/man3/clog.3 @@ -6,15 +6,15 @@ .\" Translated Thu Jul 24 01:47:42 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: natural logarithm ¼«Á³Âпô -.\"WORD: logarithm Âпô -.\"WORD: exponential »Ø¿ô -.\"WORD: inverse function µÕ´Ø¿ô +.\"WORD: natural logarithm 自然対数 +.\"WORD: logarithm 対数 +.\"WORD: exponential 指数 +.\"WORD: inverse function 逆関数 .\" .TH CLOG 3 2008-08-11 "" "Linux Programmer's Manual" -.SH ̾Á° -clog, clogf, clogl \- Ê£ÁÇ¿ô¤Î¼«Á³Âпô -.SH ½ñ¼° +.SH 名前 +clog, clogf, clogl \- 複素数の自然対数 +.SH 書式 .B #include .sp .BI "double complex clog(double complex " z ); @@ -23,31 +23,31 @@ clog, clogf, clogl \- Ê£ .br .BI "long double complex clogl(long double complex " z ); .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ -Âпô +\fI\-lm\fP でリンクする。 +.SH 説明 +対数 .BR clog () -¤Ï»Ø¿ô´Ø¿ô +は指数関数 .BR cexp () -¤ÎµÕ´Ø¿ô¤Ç¤¢¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢ \fIy = clog(z)\fP ¤Ê¤é¤Ð¡¢ \fIz = cexp(y)\fP ¤¬À®Î©¤¹¤ë¡£ +の逆関数である。 +したがって、 \fIy = clog(z)\fP ならば、 \fIz = cexp(y)\fP が成立する。 .I y -¤Îµõ¿ôÉô¤ÎÃͤ϶è´Ö [\-pi,pi] ¤«¤éÁªÂò¤µ¤ì¤ë¡£ +の虚数部の値は区間 [\-pi,pi] から選択される。 .LP -¼¡¤Î´Ø·¸¤¬À®Î©¤¹¤ë: +次の関係が成立する: .nf clog(z) = log(cabs(z)) + I * carg(z) .fi .LP .I z -¤È¤·¤Æ 0 ¤Ë¶á¤¤ÃͤòÆþ¤ì¤ë¤È¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤òµ¯¤³¤¹¤¿¤á¡¢ -Ãí°Õ¤¬É¬ÍפǤ¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +として 0 に近い値を入れると、オーバーフローを起こすため、 +注意が必要である。 +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR cexp (3), .BR clog10 (3), diff --git a/release/man3/clog10.3 b/release/man3/clog10.3 index 967e6558..0dd569c7 100644 --- a/release/man3/clog10.3 +++ b/release/man3/clog10.3 @@ -7,14 +7,14 @@ .\" Updated 2005-02-26, Akihiro MOTOKI .\" Updated 2007-01-05, Akihiro MOTOKI, catch up to LDP v2.43 .\" -.\"WORD: logarithm Âпô -.\"WORD: base Äì +.\"WORD: logarithm 対数 +.\"WORD: base 底 .\" .TH CLOG10 3 2008-08-11 "" "Linux Programmer's Manual" -.SH ̾Á° -clog10, clog10f, clog10l \- Ä줬 10 ¤ÎÊ£ÁÇ¿ô¤ÎÂпô -.SH ½ñ¼° -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.SH 名前 +clog10, clog10f, clog10l \- 底が 10 の複素数の対数 +.SH 書式 +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp @@ -24,27 +24,27 @@ clog10, clog10f, clog10l \- .br .BI "long double complex clog10l(long double complex " z ); .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lm\fP でリンクする。 +.SH 説明 .I clog10(z) -¤Î¸Æ¤Ó½Ð¤·¤Ï +の呼び出しは .I clog(z)/log(10) -¤ÈÅù²Á¤Ç¤¢¤ë¡£ -¾¤Î´Ø¿ô¤ÏƱ¤¸µ¡Ç½¤ò»ý¤Ä +と等価である。 +他の関数は同じ機能を持つ .I float -ÈÇ¤È +版と .I "long double" -ÈǤǤ¢¤ë¡£ +版である。 .I z -¤È¤·¤Æ 0 ¤Ë¶á¤¤ÃͤòÆþ¤ì¤ë¤È¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤òµ¯¤³¤¹¤¿¤á¡¢ -Ãí°Õ¤¬É¬ÍפǤ¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò -¤³¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -C99 ¤Ç¤Ïº£¸å¤Î¤¿¤á¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +として 0 に近い値を入れると、オーバーフローを起こすため、 +注意が必要である。 +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 +この関数は GNU による拡張である。 +C99 では今後のために予約されている。 +.SH 関連項目 .BR cabs (3), .BR cexp (3), .BR clog (3), diff --git a/release/man3/clog2.3 b/release/man3/clog2.3 index a76537be..fbba0cd8 100644 --- a/release/man3/clog2.3 +++ b/release/man3/clog2.3 @@ -7,13 +7,13 @@ .\" Updated 2005-02-26, Akihiro MOTOKI .\" Updated 2007-01-05, Akihiro MOTOKI, catch up to LDP v2.43 .\" -.\"WORD: logarithm ¼«Á³Âпô -.\"WORD: base Äì +.\"WORD: logarithm 自然対数 +.\"WORD: base 底 .\" .TH CLOG2 3 2008-08-11 "" "Linux Programmer's Manual" -.SH ̾Á° -clog2, clog2f, clog2l \- Ä줬 2 ¤ÎÊ£ÁÇ¿ô¤ÎÂпô -.SH ½ñ¼° +.SH 名前 +clog2, clog2f, clog2l \- 底が 2 の複素数の対数 +.SH 書式 .B #include .sp .BI "double complex clog2(double complex " z ); @@ -22,28 +22,28 @@ clog2, clog2f, clog2l \- .br .BI "long double complex clog2l(long double complex " z ); .\" .sp -.\" \fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +.\" \fI\-lm\fP でリンクする。 +.SH 説明 .I clog2(z) -¤Î¸Æ¤Ó½Ð¤·¤Ï +の呼び出しは .I clog(z)/log(2) -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 -¾¤Î´Ø¿ô¤ÏƱ¤¸µ¡Ç½¤ò»ý¤Ä +他の関数は同じ機能を持つ .I float -ÈÇ¤È +版と .I "long double" -ÈǤǤ¢¤ë¡£ +版である。 .I z -¤È¤·¤Æ 0 ¤Ë¶á¤¤ÃͤòÆþ¤ì¤ë¤È¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤òµ¯¤³¤¹¤¿¤á¡¢ -Ãí°Õ¤¬É¬ÍפǤ¢¤ë¡£ -.SH ½àµò -¤³¤ì¤é¤Î´Ø¿ô̾¤Ï C99 ¤Çº£¸å»ÈÍѤ¹¤ë¤¿¤á¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ -.SH ²ÄÍÑÀ­ -¥Ð¡¼¥¸¥ç¥ó 2.8 »þÅÀ¤Ç¤Ï¡¢glibc ¤Ë¤Ï¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.\" ¤·¤«¤·¡¢Ì¾Á°¶õ´Ö¤ÏͽÌóºÑ¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +として 0 に近い値を入れると、オーバーフローを起こすため、 +注意が必要である。 +.SH 準拠 +これらの関数名は C99 で今後使用するために予約されている。 +.SH 可用性 +バージョン 2.8 時点では、glibc にはまだ実装されていない。 +.\" しかし、名前空間は予約済である。 +.SH 関連項目 .BR cabs (3), .BR cexp (3), .BR clog (3), diff --git a/release/man3/closedir.3 b/release/man3/closedir.3 index e82e1284..a1f1f44e 100644 --- a/release/man3/closedir.3 +++ b/release/man3/closedir.3 @@ -34,12 +34,12 @@ .\" Updated & Modified Tue Feb 15 04:01:41 JST 2005 .\" by Yuichi SATO .\" -.\"WORD: directory stream descriptor ¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ +.\"WORD: directory stream descriptor ディレクトリストリームディスクリプター .\" .TH CLOSEDIR 3 2008-09-23 "" "Linux Programmer's Manual" -.SH ̾Á° -closedir \- ¥Ç¥£¥ì¥¯¥È¥ê¤ò¥¯¥í¡¼¥º¤¹¤ë -.SH ½ñ¼° +.SH 名前 +closedir \- ディレクトリをクローズする +.SH 書式 .nf .B #include .sp @@ -47,30 +47,30 @@ closedir \- .sp .BI "int closedir(DIR *" dirp ); .fi -.SH ÀâÌÀ +.SH 説明 .BR closedir () -´Ø¿ô¤Ï \fIdirp\fP ¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿ -¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +関数は \fIdirp\fP に関連付けられた +ディレクトリストリームをクローズする。 .BR closedir () -¤Î¸Æ¤Ó½Ð¤·¤¬À®¸ù¤¹¤ë¤È¡¢ +の呼び出しが成功すると、 .I dirp -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤â¥¯¥í¡¼¥º¤µ¤ì¤ë¡£ -¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ -(directory stream descriptor) \fIdirp\fP ¤Ï¡¢ -¤³¤Î¸Æ¤Ó½Ð¤·¤Î¸å¤Ç¤Ï»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +に関連付けられたファイルディスクリプターもクローズされる。 +ディレクトリストリームディスクリプター +(directory stream descriptor) \fIdirp\fP は、 +この呼び出しの後では使用することができない。 +.SH 返り値 .BR closedir () -´Ø¿ô¤ÏÀ®¸ù»þ¤Ë 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +関数は成功時に 0 を返す。 +エラーの場合は、\-1 が返されて、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EBADF -¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ \fIdirp\fP ¤¬Ìµ¸ú¤Ç¤¢¤ë¡£ -.SH ½àµò +ディレクトリストリームディスクリプター \fIdirp\fP が無効である。 +.SH 準拠 SVr4, POSIX.1-2001, 4.3BSD. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR close (2), .BR opendir (3), .BR readdir (3), diff --git a/release/man3/cmsg.3 b/release/man3/cmsg.3 index d6218390..bb9d797f 100644 --- a/release/man3/cmsg.3 +++ b/release/man3/cmsg.3 @@ -12,9 +12,9 @@ .\" Proofed Tue Aug 17 1999 by NAKANO Takeo .\" .TH CMSG 3 2008-11-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -CMSG_ALIGN, CMSG_SPACE, CMSG_NXTHDR, CMSG_FIRSTHDR \- Êä½õ¥Ç¡¼¥¿¤Ë¥¢¥¯¥»¥¹¤¹¤ë¡£ -.SH ½ñ¼° +.SH 名前 +CMSG_ALIGN, CMSG_SPACE, CMSG_NXTHDR, CMSG_FIRSTHDR \- 補助データにアクセスする。 +.SH 書式 .B #include .sp .BI "struct cmsghdr *CMSG_FIRSTHDR(struct msghdr *" msgh ); @@ -37,136 +37,136 @@ struct cmsghdr { /* followed by unsigned char cmsg_data[]; */ }; .fi -.SH ÀâÌÀ -¤³¤ì¤é¤Î¥Þ¥¯¥í¤ÏÀ©¸æ¥á¥Ã¥»¡¼¥¸ -(Êä½õ¥Ç¡¼¥¿ (ancillary data) ¤È¤â¸Æ¤Ð¤ì¤ë) ¤òºî¤ê¡¢ -¤½¤ì¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ -À©¸æ¥á¥Ã¥»¡¼¥¸¤Ï¥½¥±¥Ã¥È¤Ë¤Î¤ë¥Ç¡¼¥¿¤Ç¤Ï¤Ê¤¤¡£ -¤³¤ÎÀ©¸æ¾ðÊó¤Ï¡¢ÅþÃ夷¤¿¥Ñ¥±¥Ã¥È¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¡¢ÍÍ¡¹¤Ê¤¢¤Þ¤ê -»È¤ï¤ì¤Ê¤¤¥Ø¥Ã¥À¡¼¥Õ¥£¡¼¥ë¥É¡¢¥¨¥é¡¼µ­½Ò¤Î³ÈÄ¥¡¢¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê -¥×¥¿¤Î½¸¹ç¤ä¡¢UNIX¤Ë¤ª¤±¤ë¿®Íê¾ðÊó (credential) ¤ò´Þ¤ó¤Ç¤¤¤ë¡£ -À©¸æ¥á¥Ã¥»¡¼¥¸¤Ï¡¢Î㤨¤Ð IP ¥ª¥×¥·¥ç¥ó¤Î¤è¤¦¤ÊÄɲåإåÀ¡¼¥Õ¥£¡¼¥ë¥É¤ò -Á÷¤ë¤Î¤Ë»È¤¦»ö¤¬¤Ç¤­¤ë¡£ -Êä½õ¥Ç¡¼¥¿¤Ï¡¢ +.SH 説明 +これらのマクロは制御メッセージ +(補助データ (ancillary data) とも呼ばれる) を作り、 +それにアクセスするために使われる。 +制御メッセージはソケットにのるデータではない。 +この制御情報は、到着したパケットへのインターフェイス、様々なあまり +使われないヘッダーフィールド、エラー記述の拡張、ファイルデスクリ +プタの集合や、UNIXにおける信頼情報 (credential) を含んでいる。 +制御メッセージは、例えば IP オプションのような追加ヘッダーフィールドを +送るのに使う事ができる。 +補助データは、 .BR sendmsg (2) -¤ò¸Æ¤Ó½Ð¤·¤ÆÁ÷¤ê¡¢ +を呼び出して送り、 .BR recvmsg (2) -¤ò¸Æ¤Ó½Ð¤·¤Æ¼õ¤±¼è¤ë¡£ -¾ÜºÙ¤Ï¤½¤ì¤é¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¡£ +を呼び出して受け取る。 +詳細はそれらのマニュアルページを参照。 .PP -Êä½õ¥Ç¡¼¥¿¤Ï +補助データは .I struct cmsghdr -¹½Â¤ÂΤΥ·¡¼¥±¥ó¥¹¤ËÄɲåǡ¼¥¿¤¬Éղ䵤줿¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î¥·¡¼¥±¥ó¥¹¤Ë¤Ï¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë½ñ¤«¤ì¤Æ¤¤¤ë -¥Þ¥¯¥í¤ò»È¤Ã¤Æ¥¢¥¯¥»¥¹¤¹¤Ù¤­¤Ç¡¢Ä¾ÀÜ¥¢¥¯¥»¥¹¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -»ÈÍѲÄǽ¤ÊÀ©¸æ¥á¥Ã¥»¡¼¥¸¤Î¥¿¥¤¥×¤Ë¤Ä¤¤¤Æ¤Ï¡¢ -¤½¤ì¤¾¤ì¤Î¥×¥í¥È¥³¥ë¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¤Î¤³¤È¡£ -ÀܳËè¤ÎºÇÂçÊä½õÍѥХåե¡¥µ¥¤¥º¤Ï +構造体のシーケンスに追加データが付加されたものである。 +このシーケンスにはこのマニュアルページに書かれている +マクロを使ってアクセスすべきで、直接アクセスすべきではない。 +使用可能な制御メッセージのタイプについては、 +それぞれのプロトコルのマニュアルページを参照のこと。 +接続毎の最大補助用バッファサイズは .I /proc/sys/net/core/optmem_max -¤ò»È¤Ã¤ÆÀßÄê¤Ç¤­¤ë¡£ +を使って設定できる。 .BR socket (7) -¤ò»²¾È¡£ +を参照。 .PP .BR CMSG_FIRSTHDR () -¤Ï¡¢ÅϤ·¤¿ +は、渡した .I msghdr -¤Ë´ØÏ¢¤·¤¿Êä½õ¥Ç¡¼¥¿¥Ð¥Ã¥Õ¥¡Ãæ¤Î¡¢ºÇ½é¤Î +に関連した補助データバッファ中の、最初の .I cmsghdr -¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +へのポインタを返す。 .PP .BR CMSG_NXTHDR () -¤Ï¡¢ÅϤ·¤¿ +は、渡した .I cmsghdr -¤Î¼¡¤Ë¤¯¤ë (Í­¸ú¤Ê) +の次にくる (有効な) .I cmsghdr -¤òÊÖ¤¹¡£ -¥Ð¥Ã¥Õ¥¡¤Ë½½Ê¬¤Ê¶õ¤­¤¬Ìµ¤¤¾ì¹ç¡¢NULL ¤òÊÖ¤¹¡£ +を返す。 +バッファに十分な空きが無い場合、NULL を返す。 .PP .BR CMSG_ALIGN () -¤ËŤµ¤òÍ¿¤¨¤ë¤È¡¢É¬Íפʥ¢¥é¥¤¥ó¥á¥ó¥È¤ò²ÃÌ£¤·¤¿Ä¹¤µ¤òÊÖ¤·¤Æ¤¯¤ë¡£ -¤³¤ì¤ÏÄê¿ô¼°¤Ç¤¢¤ë¡£ +に長さを与えると、必要なアラインメントを加味した長さを返してくる。 +これは定数式である。 .PP .BR CMSG_SPACE () -¤Ï¡¢Í¿¤¨¤¿¥Ç¡¼¥¿Ä¹¤¬Àê¤á¤ë¤Î¤ËɬÍפÊÊä½õÍ×ÁÇ (ancillary element) ¤Î -¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£¤³¤ì¤ÏÄê¿ô¼°¤Ç¤¢¤ë¡£ +は、与えたデータ長が占めるのに必要な補助要素 (ancillary element) の +バイト数を返す。これは定数式である。 .PP .BR CMSG_DATA () -¤Ï¡¢ +は、 .I cmsghdr -¤Î¥Ç¡¼¥¿Éôʬ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +のデータ部分へのポインタを返す。 .PP .BR CMSG_LEN () -¤Ï¡¢ +は、 .I cmsghdr -¹½Â¤ÂΤΠ+構造体の .I cmsg_len -¥á¥ó¥Ð¤Ë¥Ç¡¼¥¿¤ò³ÊǼ¤¹¤ëºÝ¤ËɬÍפÊÃͤòÊÖ¤¹¡£¥¢¥é¥¤¥ó¥á¥ó¥È¤â¹Íθ¤ËÆþ¤ì -¤é¤ì¤ë¡£ -°ú¿ô¤È¤·¤Æ¥Ç¡¼¥¿Ä¹¤ò¤È¤ë¡£¤³¤ì¤ÏÄê¿ô¼°¤Ç¤¢¤ë¡£ +メンバにデータを格納する際に必要な値を返す。アラインメントも考慮に入れ +られる。 +引数としてデータ長をとる。これは定数式である。 .PP -Êä½õ¥Ç¡¼¥¿¤òºî¤ë¤¿¤á¤Ë¤ÏºÇ½é¤Ë +補助データを作るためには最初に .I msghdr -¤Î¥á¥ó¥Ð¡¼ +のメンバー .I msg_controllen -¤ò¡¢À©¸æ¥á¥Ã¥»¡¼¥¸¥Ð¥Ã¥Õ¥¡¤ÎŤµ¤Ç½é´ü²½¤¹¤ë¡£ +を、制御メッセージバッファの長さで初期化する。 .BR CMSG_FIRSTHDR () -¤ò +を .I msghdr -¤ËÍѤ¤¤ë¤ÈºÇ½é¤ÎÀ©¸æ¥á¥Ã¥»¡¼¥¸¤¬ÆÀ¤é¤ì¡¢ +に用いると最初の制御メッセージが得られ、 .BR CMSG_NXTHDR () -¤ò»È¤¦¤È¼¡¤ÎÀ©¸æ¥á¥Ã¥»¡¼¥¸¤¬ÆÀ¤é¤ì¤ë¡£ -¤½¤ì¤¾¤ì¤ÎÀ©¸æ¥á¥Ã¥»¡¼¥¸¤Ç¤Ï¡¢ +を使うと次の制御メッセージが得られる。 +それぞれの制御メッセージでは、 .I cmsg_len -¤ò½é´ü²½¤¹¤ë +を初期化する .RB ( CMSG_LEN () -¤ò»È¤¦)¡£ -¤½¤Î¾¤Î +を使う)。 +その他の .I cmsghdr -¥Ø¥Ã¥À¡¼¥Õ¥£¡¼¥ë¥É¡¢¤½¤·¤Æ¥Ç¡¼¥¿Éôʬ¤ËÂФ·¤Æ¤â +ヘッダーフィールド、そしてデータ部分に対しても .BR CMSG_DATA () -¤ò»È¤Ã¤Æ½é´ü²½¤ò¤¹¤ë¡£ -ºÇ¸å¤Ë +を使って初期化をする。 +最後に .I msghdr -¤Î +の .I msg_controllen -¥Õ¥£¡¼¥ë¥É¤Ë¡¢¥Ð¥Ã¥Õ¥¡Ãæ¤ÎÀ©¸æ¥á¥Ã¥»¡¼¥¸¤ÎŤµ¤Î +フィールドに、バッファ中の制御メッセージの長さの .BR CMSG_SPACE () -¤Î¹ç·×¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +の合計がセットされる。 .I msghdr -¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤Ï +についての詳細は .BR recvmsg (2) -¤ò»²¾È¡£ +を参照。 .PP -À©¸æ¥á¥Ã¥»¡¼¥¸¥Ð¥Ã¥Õ¥¡¤¬Á´¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤òǼ¤á¤ë¤Î¤Ë¤Ïû¤¹¤®¤ë¾ì¹ç¡¢ +制御メッセージバッファが全てのメッセージを納めるのには短すぎる場合、 .I msghdr -¤Î +の .I msg_flags -¥á¥ó¥Ð¡¼¤Ë +メンバーに .B MSG_CTRUNC -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ -.SH ½àµò -¤³¤ÎÊä½õ¥Ç¡¼¥¿¥â¥Ç¥ë¤Ï¡¢POSIX.1g draft, 4.4BSD-Lite, RFC\ 2292 ¤Ë -µ­½Ò¤µ¤ì¤Æ¤¤¤ë IPv6 advanced API, ¤½¤·¤Æ SUSv2 -¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +フラグがセットされる。 +.SH 準拠 +この補助データモデルは、POSIX.1g draft, 4.4BSD-Lite, RFC\ 2292 に +記述されている IPv6 advanced API, そして SUSv2 +に準拠している。 .BR CMSG_ALIGN () -¤Ï Linux ¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -°Ü¿¢À­¤Î¤¿¤á¤Ë¡¢Êä½õ¥Ç¡¼¥¿¤Ø¤Î¥¢¥¯¥»¥¹¤Ë¤Ï¡¢ -¤³¤³¤Ç½Ò¤Ù¤é¤ì¤Æ¤¤¤ë¥Þ¥¯¥í¤ò»È¤¦¤À¤±¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +は Linux の拡張である。 +.SH 注意 +移植性のために、補助データへのアクセスには、 +ここで述べられているマクロを使うだけにすべきである。 .BR CMSG_ALIGN () -¤Ï Linux ¤Ç¤Î³ÈÄ¥¤Ç¤¢¤ê¡¢°Ü¿¢À­¤ò¹Í¤¨¤¿¥×¥í¥°¥é¥à¤Ç¤Ï»È¤¦¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +は Linux での拡張であり、移植性を考えたプログラムでは使うべきではない。 .PP -Linux ¤Ç¤Ï +Linux では .BR CMSG_LEN (), .BR CMSG_DATA (), .BR CMSG_ALIGN () -¤ÏÄê¿ô¼°¤Ç¤¢¤ë (¤½¤ì¤é¤Î°ú¿ô¤¬Äê¿ô¤È¤ß¤Ê¤µ¤ì¤ë)¡£ -¤³¤Î¤³¤È¤Ï¡¢Âç°èÊÑ¿ô¤Î¥µ¥¤¥º¤òÀë¸À¤¹¤ë¤Î¤Ë»È¤¨¤ë¡£ -¤·¤«¤·°Ü¿¢À­¤Ï¤Ê¤¯¤Ê¤ë¤À¤í¤¦¡£ -.SH Îã -¼¡¤Î¥³¡¼¥É¤Ï¡¢¼õ¤±¼è¤Ã¤¿Êä½õ¥Ð¥Ã¥Õ¥¡¤«¤é +は定数式である (それらの引数が定数とみなされる)。 +このことは、大域変数のサイズを宣言するのに使える。 +しかし移植性はなくなるだろう。 +.SH 例 +次のコードは、受け取った補助バッファから .B IP_TTL -¥ª¥×¥·¥ç¥ó¤òõ¤¹¤â¤Î¤Ç¤¢¤ë¡£ +オプションを探すものである。 .PP .in +4n .nf @@ -194,10 +194,10 @@ if (cmsg == NULL) { .fi .in .PP -°Ê²¼¤Î¥³¡¼¥É¤Ï¡¢ +以下のコードは、 .B SCM_RIGHTS -¤ò»È¤¤¡¢¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤ÎÇÛÎó¤ò -UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤òÄ̤·¤ÆÁ÷¤ë¤â¤Î¤Ç¤¢¤ë¡£ +を使い、ファイルデスクリプタの配列を +UNIX ドメインソケットを通して送るものである。 .PP .in +4n .nf @@ -220,7 +220,7 @@ memcpy(fdptr, myfds, NUM_FD * sizeof(int)); msg.msg_controllen = cmsg\->cmsg_len; .fi .in -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR recvmsg (2), .BR sendmsg (2) .PP diff --git a/release/man3/confstr.3 b/release/man3/confstr.3 index 91996465..ad09f507 100644 --- a/release/man3/confstr.3 +++ b/release/man3/confstr.3 @@ -34,9 +34,9 @@ .\" Updated 2006-07-20, Akihiro MOTOKI , LDP v2.36 .\" .TH CONFSTR 3 2010-02-03 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -confstr \- ¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¤Ë°Í¸¤·¤¿Ê¸»úÎóÊÑ¿ô¤Î¼èÆÀ -.SH ½ñ¼° +.SH 名前 +confstr \- コンフィグレーションに依存した文字列変数の取得 +.SH 書式 .nf .B #include .sp @@ -44,91 +44,91 @@ confstr \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR confstr (): _POSIX_C_SOURCE\ >=\ 2 || _XOPEN_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR confstr () -¤Ï¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¤Ë°Í¸¤·¤¿Ê¸»úÎóÊÑ¿ô¤ÎÃͤò¼èÆÀ¤¹¤ë¡£ +はコンフィグレーションに依存した文字列変数の値を取得する。 .PP -°ú¤­¿ô +引き数 .I name -¤Ï¡¢Ì䤤¹ç¤ï¤»ÆâÍƤòɽ¤¹¥·¥¹¥Æ¥àÊÑ¿ô¤Ç¤¢¤ë¡£ -°Ê²¼¤ÎÊÑ¿ô¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +は、問い合わせ内容を表すシステム変数である。 +以下の変数がサポートされている。 .TP -.BR _CS_GNU_LIBC_VERSION " (GNU C library ¸ÂÄê; glibc 2.3.2 °Ê¹ß)" -¤½¤Î¥·¥¹¥Æ¥à¤Î GNU C ¥é¥¤¥Ö¥é¥ê¤Î¥Ð¡¼¥¸¥ç¥ó¤ò¼¨¤¹Ê¸»úÎó -(Î㤨¤Ð "glibc 2.3.4")¡£ +.BR _CS_GNU_LIBC_VERSION " (GNU C library 限定; glibc 2.3.2 以降)" +そのシステムの GNU C ライブラリのバージョンを示す文字列 +(例えば "glibc 2.3.4")。 .TP -.BR _CS_GNU_LIBPTHREAD_VERSION " (GNU C library ¸ÂÄê; glibc 2.3.2 °Ê¹ß)" -¤½¤Î C ¥é¥¤¥Ö¥é¥ê¤¬Ä󶡤·¤Æ¤¤¤ë POSIX ¼ÂÁõ¤ò¼¨¤¹Ê¸»úÎó -(Î㤨¤Ð "NPTL 2.3.4" ¤ä "linuxthreads-0.10")¡£ +.BR _CS_GNU_LIBPTHREAD_VERSION " (GNU C library 限定; glibc 2.3.2 以降)" +その C ライブラリが提供している POSIX 実装を示す文字列 +(例えば "NPTL 2.3.4" や "linuxthreads-0.10")。 .TP .B _CS_PATH -¤¹¤Ù¤Æ¤Î POSIX.2 ɸ½à¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤¬¸«¤Ä¤«¤ë¤è¤¦¤Ê +すべての POSIX.2 標準ユーティリティが見つかるような .B PATH -¤ÎÃÍ¡£ +の値。 .PP .I buf -¤¬ NULL ¤Ç¤Ê¤¯¡¢¤«¤Ä +が NULL でなく、かつ .I len -¤¬ 0 ¤Ç¤Ê¤±¤ì¤Ð +が 0 でなければ .BR confstr () -¤Ï¼èÆÀ¤·¤¿Ê¸»úÎó¤ÎÆâÍƤò +は取得した文字列の内容を .I buf -¤Ë¥³¥Ô¡¼¤¹¤ë¡£É¬Íפʤé¤ÐŤµ¤Ï +にコピーする。必要ならば長さは .I len \- 1 -ʸ»ú¤ËÀÚ¤ê¼Î¤Æ¤é¤ì¤Æ¡¢NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Ç½ªÃ¼¤µ¤ì¤ë¡£ -ËöÈø¤¬ÀÚ¤ê¼Î¤Æ¤é¤ì¤¿¤«¤É¤¦¤«¤òȽÄꤹ¤ë¤Ë¤Ï¡¢ +文字に切り捨てられて、NULL バイト (\(aq\\0\(aq) で終端される。 +末尾が切り捨てられたかどうかを判定するには、 .BR confstr () -¤ÎÊÖ¤êÃͤò +の返り値を .I len -¤ÈÈæ³Ó¤¹¤ì¤Ð¤è¤¤¡£ +と比較すればよい。 .PP .I len -¤¬ 0 ¤Ç +が 0 で .I buf -¤¬ NULL ¤Ê¤é¤Ð¡¢ +が NULL ならば、 .BR confstr () -¤Ï°Ê²¼¤ÇÄêµÁ¤µ¤ì¤¿ÃÍ (ÌõÃí: ÀÚ¤ê¼Î¤Æ¤ëÁ°¤Î¡¢¼èÆÀ¤·¤¿Ê¸»úÎó¤ÎŤµ) ¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ +は以下で定義された値 (訳注: 切り捨てる前の、取得した文字列の長さ) を返す。 +.SH 返り値 .I name -¤¬Í­¸ú¤Ê¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥óÊÑ¿ô¤Î¾ì¹ç¡¢ +が有効なコンフィギュレーション変数の場合、 .BR confstr () -¤Ï¤½¤ÎÊÑ¿ô¤ÎÃÍÁ´ÂΤòÊÝ»ý¤¹¤ë¤Î¤ËɬÍפǤ¢¤Ã¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹ -(ʸ»úÎó½ªÃ¼¤Î¥Ì¥ë¥Ð¥¤¥È¤â´Þ¤à)¡£¤³¤ÎÃÍ¤Ï +はその変数の値全体を保持するのに必要であったバイト数を返す +(文字列終端のヌルバイトも含む)。この値は .I len -¤è¤êÂ礭¤¤¤³¤È¤â¤¢¤ë¡£¤³¤Î¾ì¹ç¤Ë¤Ï¡¢ +より大きいこともある。この場合には、 .I buf -¤Ë³ÊǼ¤µ¤ì¤¿ÃͤÎËöÈø¤¬ÀÚ¤êµÍ¤á¤é¤ì¤¿¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +に格納された値の末尾が切り詰められたことを意味する。 .I name -¤¬Í­¸ú¤Ê¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥óÊÑ¿ô¤À¤¬¡¢ -ÊÑ¿ô¤¬Ãͤò»ý¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +が有効なコンフィギュレーション変数だが、 +変数が値を持っていない場合、 .BR confstr () -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .I name -¤¬Í­¸ú¤Ê¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥óÊÑ¿ô¤ËÂбþ¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ +が有効なコンフィグレーション変数に対応していなければ、 .BR confstr () -¤Ï 0 ¤òÊÖ¤·¡¢ +は 0 を返し、 .I errno -¤Ë +に .B EINVAL -¤òÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を設定する。 +.SH エラー .TP .B EINVAL .I name -¤ÎÃͤ¬ÉÔÀµ¤Ç¤¢¤ë¡£ -.SH ½àµò +の値が不正である。 +.SH 準拠 POSIX.1-2001. -.SH Îã -¼¡¤ÎÉôʬŪ¤Ê¥³¡¼¥É¤Ï¡¢ POSIX.2 ¥·¥¹¥Æ¥à¤Î¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤¬¤¢¤ë¥Ñ¥¹ -¤ò¼èÆÀ¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +.SH 例 +次の部分的なコードは、 POSIX.2 システムのユーティリティがあるパス +を取得するものである。 .br .nf .in +4n @@ -143,7 +143,7 @@ if (pathbuf == NULL) confstr(_CS_PATH, pathbuf, n); .in .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sh (1), .BR exec (3), .BR system (3) diff --git a/release/man3/conj.3 b/release/man3/conj.3 index a06dd2ea..2e424b9c 100644 --- a/release/man3/conj.3 +++ b/release/man3/conj.3 @@ -6,13 +6,13 @@ .\" Translated Thu Jul 24 02:38:18 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: complex conjugate Ê£ÁǶ¦Ìò -.\"WORD: imaginary part µõÉô +.\"WORD: complex conjugate 複素共役 +.\"WORD: imaginary part 虚部 .\" .TH CONJ 3 2008-08-11 "" "Linux Programmer's Manual" -.SH ̾Á° -conj, conjf, conjl \- Ê£ÁǶ¦Ìò¤ò·×»»¤¹¤ë -.SH ½ñ¼° +.SH 名前 +conj, conjf, conjl \- 複素共役を計算する +.SH 書式 .B #include .sp .BI "double complex conj(double complex " z ); @@ -21,22 +21,22 @@ conj, conjf, conjl \- Ê£ .br .BI "long double complex conjl(long double complex " z ); .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lm\fP でリンクする。 +.SH 説明 .BR conj () -´Ø¿ô¤Ï \fIz\fR ¤ÎÊ£ÁǶ¦Ìò¤òÊÖ¤¹¡£ -¤½¤ÎÃͤϵõÉô¤ÎÉä¹æ¤òȿž¤·¤ÆÆÀ¤é¤ì¤ë¡£ +関数は \fIz\fR の複素共役を返す。 +その値は虚部の符号を反転して得られる。 .LP -¼¡¤Î´Ø·¸¤¬À®Î©¤¹¤ë: +次の関係が成立する: .nf cabs(z) = csqrt(z * conj(z)) .fi -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR csqrt (3), .BR complex (7) diff --git a/release/man3/copysign.3 b/release/man3/copysign.3 index 3702b056..7e2cd7f4 100644 --- a/release/man3/copysign.3 +++ b/release/man3/copysign.3 @@ -35,9 +35,9 @@ .\" Updated 2008-09-15, Akihiro MOTOKI .\" .TH COPYSIGN 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -copysign, copysignf, copysignl \- ¿ô¤ÎÉä¹æ¤ò¥³¥Ô¡¼¤¹¤ë -.SH ½ñ¼° +.SH 名前 +copysign, copysignf, copysignl \- 数の符号をコピーする +.SH 書式 .nf .B #include .sp @@ -48,12 +48,12 @@ copysign, copysignf, copysignl \- .BI "long double copysignl(long double " x ", long double " y ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -68,27 +68,27 @@ or .I cc\ -std=c99 .RE .ad b -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR copysign () -¤ÏÀäÂÐÃͤ¬ -\fIx\fP ¤ËÅù¤·¤¯¡¢Éä¹æ¥Ó¥Ã¥È¤¬ \fIy\fP ¤ËÅù¤·¤¤ÃͤòÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¤½¤ÎÀäÂÐÃÍ¤Ï +は絶対値が +\fIx\fP に等しく、符号ビットが \fIy\fP に等しい値を返す。 +.SH 返り値 +成功すると、これらの関数は、その絶対値は .I x -¤ËÅù¤·¤¯¡¢Éä¹æ¤Ï +に等しく、符号は .I y -¤ËÅù¤·¤¤ÃͤòÊÖ¤¹¡£ +に等しい値を返す。 -\fIx\fP ¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤Ë \fIy\fP ¤ÎÉä¹æ¥Ó¥Ã¥È¤ò¤Ä¤±¤ÆÊÖ¤¹¡£ -.SH ½àµò +\fIx\fP が NaN の場合、NaN に \fIy\fP の符号ビットをつけて返す。 +.SH 準拠 C99, POSIX.1-2001. .\" 4.3BSD. -¤³¤Î´Ø¿ô¤Ï IEC 559 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -(¤Þ¤¿ IEEE 754/IEEE 854 ¤Ç¤Ï¡¢ÉÕÏ¿¤Ç¿ä¾©´Ø¿ô¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£) -.SH Ãí°Õ -ÉâÆ°¾®¿ôÅÀ·Á¼°¤¬ IEEE 754 ½àµò¤Ç¤Ê¤¤¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢ +この関数は IEC 559 で定義されている。 +(また IEEE 754/IEEE 854 では、付録で推奨関数として定義されている。) +.SH 注意 +浮動小数点形式が IEEE 754 準拠でないアーキテクチャでは、 .BR copysign () -¤ÏÉé¤Î 0 ¤òÀµ¤È¤·¤Æ°·¤¦¤³¤È¤¬¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +は負の 0 を正として扱うことがある。 +.SH 関連項目 .BR signbit (3) diff --git a/release/man3/cos.3 b/release/man3/cos.3 index b7df0ec6..27d23b57 100644 --- a/release/man3/cos.3 +++ b/release/man3/cos.3 @@ -42,9 +42,9 @@ .\" Updated 2008-09-15, Akihiro MOTOKI .\" .TH COS 3 2010-09-11 "" "Linux Programmer's Manual" -.SH ̾Á° -cos, cosf, cosl \- ;¸¹ (¥³¥µ¥¤¥ó) ´Ø¿ô -.SH ½ñ¼° +.SH 名前 +cos, cosf, cosl \- 余弦 (コサイン) 関数 +.SH 書式 .nf .B #include .sp @@ -55,12 +55,12 @@ cos, cosf, cosl \- ; .BI "long double cosl(long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -74,50 +74,50 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR cos () -´Ø¿ô¤Ï \fIx\fP ¤Î;¸¹ (¥³¥µ¥¤¥ó) ¤ÎÃͤòÊÖ¤¹¡£ -\fIx\fP ¤Ï¥é¥¸¥¢¥óñ°Ì¤Ç»ØÄꤹ¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +関数は \fIx\fP の余弦 (コサイン) の値を返す。 +\fIx\fP はラジアン単位で指定する。 +.SH 返り値 +成功すると、これらの関数は .I x -¤Î;¸¹¤òÊÖ¤¹¡£ +の余弦を返す。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬Àµ¤Î̵¸ÂÂ礫Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +が正の無限大か負の無限大の場合、 +領域エラー (domain error) が発生し、NaN が返される。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬Ìµ¸ÂÂç¤Ç¤¢¤ë +領域エラー (domain error): \fIx\fP が無限大である .I errno -¤¬ +が .B EDOM -¤ËÀßÄꤵ¤ì¤ë -(¡Ö¥Ð¥°¡×¤ÎÀá¤ò»²¾È)¡£ -̵¸ú (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +に設定される +(「バグ」の節を参照)。 +無効 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ -.SH ½àµò +が上がる。 +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ¥Ð¥° +版の関数は SVr4, 4.3BSD にも準拠している。 +.SH バグ .\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=6780 -¥Ð¡¼¥¸¥ç¥ó 2.10 ¤è¤êÁ°¤Î glibc ¤Î¼ÂÁõ¤Ç¤Ï¡¢ -¥É¥á¥¤¥ó¥¨¥é¡¼¤¬È¯À¸¤·¤¿ºÝ¤Ë¡¢ +バージョン 2.10 より前の glibc の実装では、 +ドメインエラーが発生した際に、 .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤Ê¤«¤Ã¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +が設定されなかった。 +.SH 関連項目 .BR acos (3), .BR asin (3), .BR atan (3), diff --git a/release/man3/cosh.3 b/release/man3/cosh.3 index 662629e0..cc2bd74a 100644 --- a/release/man3/cosh.3 +++ b/release/man3/cosh.3 @@ -42,9 +42,9 @@ .\" Updated 2008-09-15, Akihiro MOTOKI .\" .TH COSH 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -cosh, coshf, coshl \- ÁжÊÀþ;¸¹ (¥Ï¥¤¥Ñ¥Ü¥ê¥Ã¥¯¥³¥µ¥¤¥ó) ´Ø¿ô -.SH ½ñ¼° +.SH 名前 +cosh, coshf, coshl \- 双曲線余弦 (ハイパボリックコサイン) 関数 +.SH 書式 .nf .B #include .sp @@ -55,12 +55,12 @@ cosh, coshf, coshl \- .BI "long double coshl(long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -74,59 +74,59 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR cosh () -´Ø¿ô¤ÏÁжÊÀþ;¸¹ (¥Ï¥¤¥Ñ¥Ü¥ê¥Ã¥¯¥³¥µ¥¤¥ó) ¤ÎÃͤòÊÖ¤¹¡£ -¿ô³ØŪ¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë. +関数は双曲線余弦 (ハイパボリックコサイン) の値を返す。 +数学的には以下のように定義される. .nf cosh(x) = (exp(x) + exp(\-x)) / 2 .fi -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +.SH 返り値 +成功すると、これらの関数は .I x -¤ÎÁжÊÀþ;¸¹¤òÊÖ¤¹¡£ +の双曲線余弦を返す。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬ +0 ¤« \-0 ¤Î¾ì¹ç¡¢ 1 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 か \-0 の場合、 1 が返される。 .I x -¤¬Àµ¤Î̵¸ÂÂ礫Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢Àµ¤Î̵¸ÂÂ礬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大か負の無限大の場合、正の無限大が返される。 -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +結果がオーバーフローする場合、範囲エラーが発生し、 +各関数はそれぞれ .RB + HUGE_VAL , .RB + HUGE_VALF , .RB + HUGE_VALL -¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +を返す。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -ÈÏ°Ï¥¨¥é¡¼ (range error): ·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤¿ +範囲エラー (range error): 結果がオーバーフローした .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ -.SH ½àµò +が上がる。 +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ¥Ð¥° -glibc ¥Ð¡¼¥¸¥ç¥ó 2.3.4 °ÊÁ°¤Ç¤Ï¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬È¯À¸¤·¤¿¤È¤­¤Ë¡¢ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +版の関数は SVr4, 4.3BSD にも準拠している。 +.SH バグ +glibc バージョン 2.3.4 以前では、オーバーフローが発生したときに、 +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤é¤Ê¤«¤Ã¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +が上がらなかった。 +.SH 関連項目 .BR acosh (3), .BR asinh (3), .BR atanh (3), diff --git a/release/man3/cpow.3 b/release/man3/cpow.3 index a0a3bd59..cee50e6e 100644 --- a/release/man3/cpow.3 +++ b/release/man3/cpow.3 @@ -5,13 +5,13 @@ .\" all rights reserved. .\" Translated 2003-09-02, Akihiro MOTOKI .\" -.\"WORD: power Îß¾è -.\"WORD: branch cut ʬ»ÞÀÚÃÇ +.\"WORD: power 累乗 +.\"WORD: branch cut 分枝切断 .\" .TH CPOW 3 2008-08-11 "" "Linux Programmer's Manual" -.SH ̾Á° -cpow, cpowf, cpowl \- Ê£ÁÇ¿ô¤ÎÎß¾è´Ø¿ô -.SH ½ñ¼° +.SH 名前 +cpow, cpowf, cpowl \- 複素数の累乗関数 +.SH 書式 .nf .B #include .sp @@ -22,22 +22,22 @@ cpow, cpowf, cpowl \- Ê£ .BI "long double complex cpowl(long double complex " x , .BI " complex long double " z ");" .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .fi -.SH ÀâÌÀ -¤³¤Î´Ø¿ô¤Ï +.SH 説明 +この関数は .I x -¤Î +の .I z -¾è¤ò·×»»¤¹¤ë -(¼Â¼´¤ÎÉé¤ÎÉôʬ¤Ë±è¤Ã¤Æ +乗を計算する +(実軸の負の部分に沿って .I x -¤Îʬ»ÞÀÚÃÇ (branch cut) ¤¬¤¢¤ë)¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +の分枝切断 (branch cut) がある)。 +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR pow (3), .BR complex (7) diff --git a/release/man3/cproj.3 b/release/man3/cproj.3 index 86517c33..a167bc94 100644 --- a/release/man3/cproj.3 +++ b/release/man3/cproj.3 @@ -6,15 +6,15 @@ .\" Translated 2003-07-24, Akihiro MOTOKI .\" Updated 2005-02-21, Akihiro MOTOKI .\" -.\"WORD: Riemann Sphere ¥ê¡¼¥Þ¥óµåÌÌ -.\"WORD: project ¼Í±Æ -.\"WORD: complex plane Ê£ÁÇÊ¿ÌÌ -.\"WORD: compactification ¥³¥ó¥Ñ¥¯¥È(´°Á´Ï¢Â³)¤Ë¤Ê¤ë(¤Î̾»ì·Á) +.\"WORD: Riemann Sphere リーマン球面 +.\"WORD: project 射影 +.\"WORD: complex plane 複素平面 +.\"WORD: compactification コンパクト(完全連続)になる(の名詞形) .\" .TH CPROJ 3 2010-06-10 "" "Linux Programmer's Manual" -.SH ̾Á° -cproj, cprojf, cprojl \- ¥ê¡¼¥Þ¥óµåÌÌ¤Ø¤Î¼Í±Æ -.SH ½ñ¼° +.SH 名前 +cproj, cprojf, cprojl \- リーマン球面への射影 +.SH 書式 .B #include .sp .BI "double complex cproj(double complex " z ");" @@ -23,25 +23,25 @@ cproj, cprojf, cprojl \- .br .BI "long double complex cprojl(long double complex " z ");" .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ -¤³¤Î´Ø¿ô¤Ï¡¢Ê¿Ì̾å¤ÎÅÀ¤ò¥ê¡¼¥Þ¥óµå¤ÎɽÌ̤˼ͱƤ¹¤ë¡¢¤Ä¤Þ¤ê -Ê£ÁÇÊ¿Ì̤ΰì¤Ä¤Î¼´¤Ø¤Î¥³¥ó¥Ñ¥¯¥È²½ (one-point compactification) ¤ò¹Ô¤¦¡£ -Í­¸Â¤ÊÅÀ +\fI\-lm\fP でリンクする。 +.SH 説明 +この関数は、平面上の点をリーマン球の表面に射影する、つまり +複素平面の一つの軸へのコンパクト化 (one-point compactification) を行う。 +有限な点 .I z -¤Ï¤¤¤º¤ì¤â +はいずれも .I z -¼«¿È¤Ø¼Í±Æ¤µ¤ì¤ë¡£ -̵¸Â¤ÎÃͤò»ý¤ÄÁ´¤Æ¤ÎÊ£ÁÇ¿ô¤Ï¡¢°ì¤Ä¤Î̵¸ÂÃͤ˼ͱƤµ¤ì¤ë¡£ -¤â¤Ã¤È¾Ü¤·¤¯¸À¤¦¤È¡¢¼Â¿ô¼´¤ÎÀµ¤Î̵¸ÂÂç¤Ë¼Í±Æ¤µ¤ì¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +自身へ射影される。 +無限の値を持つ全ての複素数は、一つの無限値に射影される。 +もっと詳しく言うと、実数軸の正の無限大に射影される。 +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=10401 -¥Ð¡¼¥¸¥ç¥ó 2.11 °ÊÁ°¤Î glibc ¤Î¼ÂÁõ¤Ï°ã¤Ã¤¿Æ°ºî -(¥ê¡¼¥Þ¥óµåÌ̤ؤΡÖΩÂΡ׼ÌÁü) ¤ò¹Ô¤¦¡£ -.SH ´ØÏ¢¹àÌÜ +バージョン 2.11 以前の glibc の実装は違った動作 +(リーマン球面への「立体」写像) を行う。 +.SH 関連項目 .BR cabs (3), .BR complex (7) diff --git a/release/man3/creal.3 b/release/man3/creal.3 index df5f2a58..699c5a41 100644 --- a/release/man3/creal.3 +++ b/release/man3/creal.3 @@ -6,13 +6,13 @@ .\" Translated Thu Jul 24 01:33:13 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: real part ¼ÂÉô -.\"WORD: imaginary part µõÉô +.\"WORD: real part 実部 +.\"WORD: imaginary part 虚部 .\" .TH CREAL 3 2008-08-11 "" "Linux Programmer's Manual" -.SH ̾Á° -creal, crealf, creall \- Ê£ÁÇ¿ô¤Î¼ÂÉô¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +creal, crealf, creall \- 複素数の実部を取得する +.SH 書式 .B #include .sp .BI "double creal(double complex " z ); @@ -21,26 +21,26 @@ creal, crealf, creall \- Ê£ .br .BI "long double creall(long double complex " z ); .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lm\fP でリンクする。 +.SH 説明 .BR creal () -´Ø¿ô¤ÏÊ£ÁÇ¿ô +関数は複素数 .I z -¤Î¼ÂÉô¤òÊÖ¤¹¡£ +の実部を返す。 .LP -¼¡¤Î´Ø·¸¤¬À®Î©¤¹¤ë: +次の関係が成立する: .nf z = creal(z) + I * cimag(z) .fi -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99. -.SH Ãí°Õ -gcc ¤Ç¤Ï __real__ ¤ò»È¤¦¤³¤È¤â¤Ç¤­¤ë¤¬¡¢ -¤³¤ì¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +.SH 注意 +gcc では __real__ を使うこともできるが、 +これは GNU による拡張である。 +.SH 関連項目 .BR cabs (3), .BR cimag (3), .BR complex (7) diff --git a/release/man3/crypt.3 b/release/man3/crypt.3 index 13a15a42..8f1de57d 100644 --- a/release/man3/crypt.3 +++ b/release/man3/crypt.3 @@ -39,15 +39,15 @@ .\" Updated 2008-07-30 by Kentaro Shirakata .\" Updated 2009-09-28 by Kentaro Shirakata .\" -.\"WORD: encryption °Å¹æ²½ -.\"WORD: key ¸° +.\"WORD: encryption 暗号化 +.\"WORD: key 鍵 .\" " .TH CRYPT 3 2011-09-15 "" "Linux Programmer's Manual" -.SH ̾Á° -crypt, crypt_r \- ¥Ñ¥¹¥ï¡¼¥É¤È¥Ç¡¼¥¿¤Î°Å¹æ²½ -.SH ½ñ¼° +.SH 名前 +crypt, crypt_r \- パスワードとデータの暗号化 +.SH 書式 .nf -.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp @@ -61,159 +61,159 @@ crypt, crypt_r \- .BI " struct crypt_data *" data ); .fi .sp -\fI\-lcrypt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lcrypt\fP でリンクする。 +.SH 説明 .BR crypt () -¤Ï¥Ñ¥¹¥ï¡¼¥É°Å¹æ²½´Ø¿ô¤Ç¤¢¤ë¡£ -¸°Ãµº÷¤Î¥Ï¡¼¥É¥¦¥§¥¢¤Ë¤è¤ë¼ÂÁõ¤ò˸¤²¤ë¤è¤¦¤Ë(¤½¤Î¾¤Ë¤â¤¤¤í¤¤¤í) -Êѹ¹¤·¤¿ Data Encryption Standard ¥¢¥ë¥´¥ê¥º¥à¤ò¸µ¤Ë¤·¤Æ¤¤¤ë¡£ +はパスワード暗号化関数である。 +鍵探索のハードウェアによる実装を妨げるように(その他にもいろいろ) +変更した Data Encryption Standard アルゴリズムを元にしている。 .PP .I key -¤Ï¥æ¡¼¥¶¤¬ÆþÎϤ¹¤ë¥Ñ¥¹¥ï¡¼¥É¤Ç¤¢¤ë¡£ +はユーザが入力するパスワードである。 .PP .I salt -¤Ï½¸¹ç +は集合 [\fBa\fP\(en\fBzA\fP\(en\fBZ0\fP\(en\fB9./\fP] -¤«¤éÁª¤Ð¤ì¤¿ 2 ʸ»ú¤Îʸ»úÎó¤Ç¤¢¤ë¡£ -¤³¤Îʸ»úÎó¤Ï¥¢¥ë¥´¥ê¥º¥à¤Î½ÐÎϤò 4096 Ä̤ê¤Ë¤«¤­Í𤹤Τ˻Ȥï¤ì¤ë¡£ +から選ばれた 2 文字の文字列である。 +この文字列はアルゴリズムの出力を 4096 通りにかき乱すのに使われる。 .PP .I key -¤ÎºÇ½é¤Î 8 ʸ»ú¤Î³Æʸ»ú¤«¤é²¼°Ì 7 ¥Ó¥Ã¥È¤ò¤È¤Ã¤Æ 56 ¥Ó¥Ã¥È¤Î¸°¤¬ÆÀ¤é¤ì¤ë¡£ -¤³¤Î 56 ¥Ó¥Ã¥È¤Î¸°¤ÏÆÃÄê¤Îʸ»úÎó(¤Õ¤Ä¤¦¤Ï¤¹¤Ù¤Æ 0 ¤Îʸ»úÎó) -¤ò·«¤êÊÖ¤·°Å¹æ²½¤¹¤ë¤Î¤ËÍѤ¤¤é¤ì¤ë¡£ -ÊÖ¤êÃͤϰŹ沽¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¡¢13 ¤Î°õ»ú²Äǽ¤Ê ASCII ʸ»ú -¤«¤é¤Ê¤ë(ºÇ½é¤Î 2 ʸ»ú¤Ï salt ¤½¤Î¤â¤Î)¡£ -ÊÖ¤êÃͤϡ¢´Ø¿ô¸Æ½Ð¤·¤Î¤¿¤Ó¤Ë¾å½ñ¤­¤µ¤ì¤ëÀÅŪ¤Ê¥Ç¡¼¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +の最初の 8 文字の各文字から下位 7 ビットをとって 56 ビットの鍵が得られる。 +この 56 ビットの鍵は特定の文字列(ふつうはすべて 0 の文字列) +を繰り返し暗号化するのに用いられる。 +返り値は暗号化されたパスワードへのポインタで、13 の印字可能な ASCII 文字 +からなる(最初の 2 文字は salt そのもの)。 +返り値は、関数呼出しのたびに上書きされる静的なデータへのポインタである。 .PP -·Ù¹ð: ¸°¶õ´Ö¤Ï +警告: 鍵空間は .if t 2\s-2\u56\s0\d .if n 2**56 -= 7.2e16 ¤Î²Äǽ¤ÊÃͤ«¤éÀ®¤ë¡£ -¤³¤Î¸°¶õ´Ö¤ÎÁ´Ãµº÷¤Ï¶¯ÎϤÊÊÂÎó·×»»µ¡¤ò»È¤¨¤Ð²Äǽ¤Ç¤¢¤ë¡£¤Þ¤¿ += 7.2e16 の可能な値から成る。 +この鍵空間の全探索は強力な並列計算機を使えば可能である。また .BR crack (1) -¤Î¤è¤¦¤Ê¥½¥Õ¥È¥¦¥§¥¢¤Ï¤³¤Î¸°¶õ´Ö¤ÎÃæ¤Ç¡¢Â¿¤¯¤Î¿Í¤Ë¥Ñ¥¹¥ï¡¼¥É¤È¤·¤Æ -»È¤ï¤ì¤ë¤è¤¦¤Ê¸°¤Ë¤Ä¤¤¤Æ¤ÎÁ´Ãµº÷¤¬²Äǽ¤Ç¤¢¤ë¡£ -¤½¤ì¤æ¤¨¡¢¥Ñ¥¹¥ï¡¼¥É¤òÁªÂò¤¹¤ë¤È¤­¤Ë¤Ï¡¢¤¹¤¯¤Ê¤¯¤È¤â¡¢ -°ìÈÌŪ¤Ë»È¤ï¤ì¤ëñ¸ì¤È̾Á°¤ÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +のようなソフトウェアはこの鍵空間の中で、多くの人にパスワードとして +使われるような鍵についての全探索が可能である。 +それゆえ、パスワードを選択するときには、すくなくとも、 +一般的に使われる単語と名前は避けるべきである。 .BR passwd (1) -¤ò»È¤¦»þ¤Ë¤Ï¥¯¥é¥Ã¥¯¤µ¤ì¤¦¤ë¥Ñ¥¹¥ï¡¼¥É¤Ë¤Ä¤¤¤Æ¤Î¸¡ºº¤ò¤¹¤ë¤³¤È¤¬ -¿ä¾©¤µ¤ì¤ë¡£ +を使う時にはクラックされうるパスワードについての検査をすることが +推奨される。 .PP -DES ¥¢¥ë¥´¥ê¥º¥à¤Ë¤Ï¤¤¤¯¤Ä¤«¤ÎÊʤ¬¤¢¤ê¡¢¤½¤ì¤Ë¤è¤Ã¤Æ¥Ñ¥¹¥ï¡¼¥Éǧ¾Ú°Ê³°¤Ë +DES アルゴリズムにはいくつかの癖があり、それによってパスワード認証以外に .BR crypt () -¤ò»È¤¦¤Î¤Ï¤¿¤¤¤Ø¤ó¤è¤¯¤Ê¤¤ÁªÂò¤È¤Ê¤Ã¤Æ¤¤¤ë¡£¤â¤· +を使うのはたいへんよくない選択となっている。もし .BR crypt () -¤ò°Å¹æ¥×¥í¥¸¥§¥¯¥È¤Ë»È¤ª¤¦¤È¤¤¤¦°Æ¤ò¤â¤Ã¤Æ¤¤¤ë¤Ê¤é¤Ð¡¢¤½¤ì¤Ï¤ä¤á¤¿¤Û¤¦¤¬ -¤è¤¤¡£°Å¹æ²½¤Ë¤Ä¤¤¤Æ¤Î¤è¤¤ËܤÈï¤Ç¤âÆþ¼ê¤Ç¤­¤ë DES ¥é¥¤¥Ö¥é¥ê¤Î¤Ò¤È¤Ä¤ò -¼ê¤Ë¤¤¤ì¤ë¤Ù¤­¤À¡£ +を暗号プロジェクトに使おうという案をもっているならば、それはやめたほうが +よい。暗号化についてのよい本と誰でも入手できる DES ライブラリのひとつを +手にいれるべきだ。 .BR crypt_r () -¤Ï +は .BR crypt () -¤ÎºÆÆþ²ÄǽÈǤǤ¢¤ë¡£ +の再入可能版である。 .I data -¤Ç¼¨¤µ¤ì¤ë¹½Â¤ÂΤϷë²Ì¥Ç¡¼¥¿¤ÎÊݸ¤È¾ðÊó¤Î´ÉÍý¤Ë»È¤ï¤ì¤ë¡£ -¤³¤Î¹½Â¤ÂΤËÂФ·¤Æ(¥á¥â¥ê¤ò³ä¤êÅö¤Æ¤ë¤³¤È°Ê³°¤Ë)¸Æ¤Ó½Ð¤·¸µ¤¬¤¹¤ë¤Ù¤­Í£°ì¤Î -¤³¤È¤Ï¡¢ +で示される構造体は結果データの保存と情報の管理に使われる。 +この構造体に対して(メモリを割り当てること以外に)呼び出し元がするべき唯一の +ことは、 .BR crypt_r () -¤Î½é²ó¤Î¸Æ¤Ó½Ð¤·¤ÎÁ°¤Ë +の初回の呼び出しの前に .I data->initialized -¤ò¥¼¥í¤Ë¤¹¤ë¤³¤È¤À¤±¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤Î¾ì¹ç¤Ë¤Ï¡¢°Å¹æ²½¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï NULL ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +をゼロにすることだけである。 +.SH 返り値 +成功の場合には、暗号化されたパスワードへのポインターが返される。 +エラーの場合には NULL が返される。 +.SH エラー .TP .B ENOSYS .BR crypt () -´Ø¿ô¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£Â¿Ê¬¥¢¥á¥ê¥«¤ÎÍ¢½Ðµ¬À©¤Î¤¿¤á¤Ë¡£ -.\" ¤³¤Î¥ì¥Ù¥ë¤Î¾ÜºÙ¤Ï¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Ë¤ÏɬÍפʤ¤¤À¤í¤¦¡Ä -.\" (ÌõÃí: °Ê²¼¤Ï MAEHARA Kouichi ¤µ¤ó¤ÎÌõ) +関数が実装されていない。多分アメリカの輸出規制のために。 +.\" このレベルの詳細はこのマニュアルには必要ないだろう… +.\" (訳注: 以下は MAEHARA Kouichi さんの訳) .\" .PP -.\"ʿʸ P ¤ò¸° K ¤Ç¤â¤Ã¤Æ DES ¤òÍѤ¤¤Æ°Å¹æ²½¤·¤¿¤È¤­¤Î·ë²Ì¤Î°Å¹æʸ -.\"¤ò C ¤È¤¹¤ë¤Ê¤é¤Ð¡¢P ¤ËÂФ¹¤ë 2 ¤ÎÊä¿ôŪ¤Êʿʸ P' ¤ò¸° K -.\"¤ËÂФ¹¤ëƱÍͤËÊä¿ôŪ¤Ê¸° K' ¤òÍѤ¤¤Æ°Å¹æ²½¤¹¤ë¤È C ¤ËÂФ·¤Æ¤ä¤Ï¤êÊä -.\"¿ôŪ¤Ê°Å¹æʸ C' ¤È¤Ê¤ë¡£ +.\"平文 P を鍵 K でもって DES を用いて暗号化したときの結果の暗号文 +.\"を C とするならば、P に対する 2 の補数的な平文 P' を鍵 K +.\"に対する同様に補数的な鍵 K' を用いて暗号化すると C に対してやはり補 +.\"数的な暗号文 C' となる。 .\".PP -.\"DES ¤Ë¤è¤ë¸°¤ÎÊÑ·Á¤Ë¤ª¤¤¤Æ¡¢¾ï¤Ë¹¶·â¤ËÂФ·¤Æ¼å¤¤¸°¤¬Â¸ºß¤¹¤ë¡£¤è¤¯ -.\"ÃΤé¤ì¤¿»Í¤Ä¤Î¼å¤¤¸°¤Ï 0101010101010101¡¢fefefefefefefefe¡¢ -.\"1f1f1f1f0e0e0e0e¡¢e0e0e0e0f1f1f1f1 ¤Ç¤¢¤ê¤³¤ì¤é¤Î»ÈÍѤÏÈò¤±¤Ê¤±¤ì¤Ð -.\"¤Ê¤é¤Ê¤¤¡£ +.\"DES による鍵の変形において、常に攻撃に対して弱い鍵が存在する。よく +.\"知られた四つの弱い鍵は 0101010101010101、fefefefefefefefe、 +.\"1f1f1f1f0e0e0e0e、e0e0e0e0f1f1f1f1 でありこれらの使用は避けなければ +.\"ならない。 .\".PP -.\"Ʊ°ì¤Î°Å¹æ²½·ë²Ì¤òƳ¤¤¤Æ¤·¤Þ¤¦Ï»ÁȤΤä¤ä¼å¤¤¸°¤â¤¢¤ë¡£¤³¤¦¤·¤¿¤¤¤¯ -.\"¤Ä¤«¤Î¸°¤Î»ÈÍѤϤä¤Ï¤êÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -.\"¿½¤·¤ï¤±¤Ê¤¤¤³¤È¤À¤¬¡¢¤³¤ì¤Ë¤É¤ó¤Ê¸°¤¬³ºÅö¤¹¤ë¤Î¤«¤ÏÄ´¤Ù¤­¤ì¤Ê¤«¤Ã -.\"¤¿¡£ +.\"同一の暗号化結果を導いてしまう六組のやや弱い鍵もある。こうしたいく +.\"つかの鍵の使用はやはり避けるべきである。 +.\"申しわけないことだが、これにどんな鍵が該当するのかは調べきれなかっ +.\"た。 .\".PP -.\"¶Ëü¤Ë¾éĹ²½¤Ç¤¢¤ë¥Ç¡¼¥¿¤Ï¡¢ +.\"極端に冗長化であるデータは、 .\".BR crypt () -.\"¤Î¤è¤¦¤Ë -.\".I "°Å¹æɽ(codebook)" -.\"¥â¡¼¥É¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë DES ¤Ë¤è¤ë°Å¹æ²½¤Ë¤ª¤¤¤Æ¤Ï¥È¥é¥Ö¥ë¤Î¤â¤È¤È¤Ê -.\"¤ë¡£ +.\"のように +.\".I "暗号表(codebook)" +.\"モードで実装されている DES による暗号化においてはトラブルのもととな +.\"る。 .\".BR crypt () -.\"¤Ï¤½¤ÎÁÛÄêÄ̤ꡢ¥Ñ¥¹¥ï¡¼¥É¤Îǧ¾Ú¤ÎÌÜŪ¤Ë¤Î¤ßÍøÍѤ¹¤Ù¤­¤â¤Î¤Ç¤¢¤ê¡¢ -.\"¥Ç¡¼¥¿¤Î°Å¹æ²½¥Ä¡¼¥ë¤È¤·¤ÆÍѤ¤¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +.\"はその想定通り、パスワードの認証の目的にのみ利用すべきものであり、 +.\"データの暗号化ツールとして用いてはならない。 .\".PP -.\"Âè»Í S-box ¤Î¡¢ÀèƬ¤ÈËöÈø»°¤Ä¤Î½ÐÎÏ bit ·²¤Ï¡¢¤½¤ÎÆþÎÏ bit ·²¤Î´Ø¿ô -.\"¤È¤·¤Æɽ¤ï¤¹¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤Î¤è¤¦¤Ê S-box ·²¤ÏƱ¤¸ÆþÎϤËÂФ·¤Æ¤ÏÉô -.\"ʬŪ¤ËƱ¤¸°Å¹æ²½·ë²Ì¤òÀ¸À®¤·¤Æ¤·¤Þ¤¦¤³¤È¤¬¼Â¸³¤Ë¤è¤Ã¤Æ¤¢¤­¤é¤«¤Ë¤µ -.\"¤ì¤Æ¤¤¤ë¡£¤³¤ì¤Ï¡¢¹ñ²È°ÂÁ´Êݾã¶É(NSA)¤¬ DES ¤Ë¤è¤ë°Å¹æ¥Ç¡¼¥¿¤Î²òÆɤò²Äǽ -.\"¤Ë¤¹¤ë¤¿¤á¤ËÀߤ±¤¿Î¢¸ý¤Ê¤Î¤Ç¤Ï¤Ê¤¤¤«¤Èµ¿¤ï¤ì¤Æ¤¤¤ë¡£ +.\"第四 S-box の、先頭と末尾三つの出力 bit 群は、その入力 bit 群の関数 +.\"として表わすことができる。このような S-box 群は同じ入力に対しては部 +.\"分的に同じ暗号化結果を生成してしまうことが実験によってあきらかにさ +.\"れている。これは、国家安全保障局(NSA)が DES による暗号データの解読を可能 +.\"にするために設けた裏口なのではないかと疑われている。 .\".PP -.\"¤³¤¦¤¤¤Ã¤¿Íýͳ¤Ë¤è¤ê¡¢crypt() ¤ò»ÈÍѤ·¤¿°Å¹æ²½¥Ç¡¼¥¿¤ò¸ø³«¤¹¤ë¤³¤È -.\"¤Ï°ÂÁ´¤Ç¤Ï¤Ê¤¤¤Èǧ¼±¤¹¤ë¤Ù¤­¤Ê¤Î¤Ç¤¢¤ë¡£ -.SH ½àµò +.\"こういった理由により、crypt() を使用した暗号化データを公開すること +.\"は安全ではないと認識するべきなのである。 +.SH 準拠 .BR crypt (): SVr4, 4.3BSD, POSIX.1-2001. .BR crypt_r () -¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -.SS glibc ¤Ç¤ÎÃí°Õ -¤³¤Î´Ø¿ô¤Î glibc2 ÈǤÏÄɲäΰŹ沽¥¢¥ë¥´¥ê¥º¥à¤ËÂбþ¤·¤Æ¤¤¤ë¡£ +は GNU 拡張である。 +.SH 注意 +.SS glibc での注意 +この関数の glibc2 版は追加の暗号化アルゴリズムに対応している。 -¤â¤· +もし .I salt -¤Îʸ»úÎó¤¬ "$\fIid\fP$" ¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤Æ¡¢"$" ¤Ç½ª¤ï¤Ã¤Æ¤¤¤ëʸ»úÎó¤¬ -³¤¤¤Æ¤¤¤ë¾ì¹ç: +の文字列が "$\fIid\fP$" で始まっていて、"$" で終わっている文字列が +続いている場合: .RS $\fIid\fP$\fIsalt\fP$\fIencrypted\fP .RE -DES ¤ò»È¤¦Âå¤ï¤ê¤Ë¡¢ +DES を使う代わりに、 .I id -¤Ç»ÈÍѤ¹¤ë°Å¹æ²½¼êË¡¤ò¼±Ê̤·¡¢¤³¤ì¤¬¥Ñ¥¹¥ï¡¼¥Éʸ»úÎó¤Î»Ä¤ê¤ÎÉôʬ¤ò²ò¼á¤¹¤ë -ÊýË¡¤ò·èÄꤹ¤ë¡£ +で使用する暗号化手法を識別し、これがパスワード文字列の残りの部分を解釈する +方法を決定する。 .I id -¤ÎÃͤȤ·¤Æ¡¢°Ê²¼¤ÎÃͤËÂбþ¤·¤Æ¤¤¤ë: +の値として、以下の値に対応している: .RS .TS l l. ID | Method _ 1 | MD5 -2a | Blowfish (ËÜή¤Î glibc ¤Ë¤ÏÆþ¤Ã¤Æ¤¤¤Ê¤¤; - | ¤¤¤¯¤Ä¤«¤Î Linux ¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤ÇÄɲ䵤ì¤Æ¤¤¤ë) +2a | Blowfish (本流の glibc には入っていない; + | いくつかの Linux ディストリビューションで追加されている) .\" openSUSE has Blowfish, but AFAICS, this option is not supported .\" natively by glibc -- mtk, Jul 08 .\" .\" md5 | Sun MD5 .\" glibc doesn't appear to natively support Sun MD5; I don't know .\" if any distros add the support. -5 | SHA-256 (glibc 2.7 °Ê¹ß) -6 | SHA-512 (glibc 2.7 °Ê¹ß) +5 | SHA-256 (glibc 2.7 以降) +6 | SHA-512 (glibc 2.7 以降) .TE .RE -½¾¤Ã¤Æ¡¢$5$\fIsalt\fP$\fIencrypted\fP ¤Ï SHA-256 ¤Ç¥¨¥ó¥³¡¼¥É¤µ¤ì¤¿ -¥Ñ¥¹¥ï¡¼¥É¤Ç¤¢¤ê¡¢$6$\fIsalt\fP$\fIencrypted\fP ¤Ï SHA-512 ¤Ç -¥¨¥ó¥³¡¼¥É¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤Ç¤¢¤ë¡£ +従って、$5$\fIsalt\fP$\fIencrypted\fP は SHA-256 でエンコードされた +パスワードであり、$6$\fIsalt\fP$\fIencrypted\fP は SHA-512 で +エンコードされたパスワードである。 -"\fIsalt\fP" ¤Ï salt ¤Ë¤ª¤±¤ë "$\fIid\fP$" ¤Ë°ú¤­Â³¤¯ 16 ʸ»ú°Ê²¼¤Î -ʸ»úÎó¤Ç¤¢¤ë¡£ -¥Ñ¥¹¥ï¡¼¥Éʸ»úÎó¤Î°Å¹æ²½Éôʬ¤Ï¼ÂºÝ¤Ë·×»»¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤Ç¤¢¤ë¡£ -¤³¤Îʸ»úÎó¤Î¥µ¥¤¥º¤Ï¸ÇÄê¤Ç¤¢¤ë: +"\fIsalt\fP" は salt における "$\fIid\fP$" に引き続く 16 文字以下の +文字列である。 +パスワード文字列の暗号化部分は実際に計算されたパスワードである。 +この文字列のサイズは固定である: .TS l l. MD5 | 22 characters @@ -221,14 +221,14 @@ SHA-256 | 43 characters SHA-512 | 86 characters .TE -"\fIsalt\fP" ¤È "\fIencrypted\fP" ¤Îʸ»ú¤Ï -[\fBa\fP\(en\fBzA\fP\(en\fBZ0\fP\(en\fB9./\fP] ¤Î½¸¹ç¤«¤é -Áª¤Ð¤ì¤ë¡£ -MD5 ¤È SHA ¤Î¼ÂÁõ¤Ç¤Ï¡¢ +"\fIsalt\fP" と "\fIencrypted\fP" の文字は +[\fBa\fP\(en\fBzA\fP\(en\fBZ0\fP\(en\fB9./\fP] の集合から +選ばれる。 +MD5 と SHA の実装では、 .I key -Á´ÂΤ¬°ÕÌ£¤¬¤¢¤ë -(DES ¤Î¾ì¹ç¤Ë¤ÏºÇ½é¤Î 8 ʸ»ú¤À¤±¤Ë°ÕÌ£¤¬¤¢¤ë)¡£ -.SH ´ØÏ¢¹àÌÜ +全体が意味がある +(DES の場合には最初の 8 文字だけに意味がある)。 +.SH 関連項目 .BR login (1), .BR passwd (1), .BR encrypt (3), diff --git a/release/man3/csin.3 b/release/man3/csin.3 index 75cd599f..f1bc44db 100644 --- a/release/man3/csin.3 +++ b/release/man3/csin.3 @@ -6,14 +6,14 @@ .\" Translated Wed Jul 23 05:24:36 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: sine Àµ¸¹ -.\"WORD: cosine ;¸¹ -.\"WORD: tangent ÀµÀÜ +.\"WORD: sine 正弦 +.\"WORD: cosine 余弦 +.\"WORD: tangent 正接 .\" .TH CSIN 3 2008-08-11 "" "Linux Programmer's Manual" -.SH ̾Á° -csin, csinf, csinl \- Ê£ÁÇ¿ô¤ÎÀµ¸¹ (sine) -.SH ½ñ¼° +.SH 名前 +csin, csinf, csinl \- 複素数の正弦 (sine) +.SH 書式 .B #include .sp .BI "double complex csin(double complex " z ");" @@ -22,18 +22,18 @@ csin, csinf, csinl \- Ê£ .br .BI "long double complex csinl(long double complex " z ");" .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ -Ê£ÁÇ¿ô¤ÎÀµ¸¹ (sine) ´Ø¿ô csin(z) ¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë¡£ +\fI\-lm\fP でリンクする。 +.SH 説明 +複素数の正弦 (sine) 関数 csin(z) は以下のように定義される。 .nf csin(z) = (exp(i * z) \- exp(\-i * z)) / (2 * i) .fi -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR casin (3), .BR ccos (3), diff --git a/release/man3/csinh.3 b/release/man3/csinh.3 index f58b1c6a..566799c8 100644 --- a/release/man3/csinh.3 +++ b/release/man3/csinh.3 @@ -6,15 +6,15 @@ .\" Translated Wed Jul 23 05:54:24 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: hyperbolic ÁжÊ(Àþ¤Î) -.\"WORD: sine Àµ¸¹ -.\"WORD: cosine ;¸¹ -.\"WORD: tangent ÀµÀÜ +.\"WORD: hyperbolic 双曲(線の) +.\"WORD: sine 正弦 +.\"WORD: cosine 余弦 +.\"WORD: tangent 正接 .\" .TH CSINH 3 2008-08-11 "" "Linux Programmer's Manual" -.SH ̾Á° -csinh, csinhf, csinhl \- Ê£ÁÇ¿ô¤ÎÁжÊÀþÀµ¸¹ (hyperbolic sine) -.SH ½ñ¼° +.SH 名前 +csinh, csinhf, csinhl \- 複素数の双曲線正弦 (hyperbolic sine) +.SH 書式 .B #include .sp .BI "double complex csinh(double complex " z ");" @@ -23,18 +23,18 @@ csinh, csinhf, csinhl \- Ê£ .br .BI "long double complex csinhl(long double complex " z ");" .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ -Ê£ÁÇ¿ô¤ÎÁжÊÀþÀµ¸¹ (hyperbolic sine) ´Ø¿ô sinh(z) ¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë¡£ +\fI\-lm\fP でリンクする。 +.SH 説明 +複素数の双曲線正弦 (hyperbolic sine) 関数 sinh(z) は以下のように定義される。 .nf csinh(z) = (exp(z)\-exp(\-z))/2 .fi -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR casinh (3), .BR ccosh (3), diff --git a/release/man3/csqrt.3 b/release/man3/csqrt.3 index 02aa9bee..38870049 100644 --- a/release/man3/csqrt.3 +++ b/release/man3/csqrt.3 @@ -6,13 +6,13 @@ .\" Translated Thu Jul 24 00:47:23 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: square root Ê¿Êýº¬ -.\"WORD: branch cut ʬ»ÞÀÚÃÇ +.\"WORD: square root 平方根 +.\"WORD: branch cut 分枝切断 .\" .TH CSQRT 3 2008-08-11 "" "Linux Programmer's Manual" -.SH ̾Á° -csqrt, csqrtf, csqrtl \- Ê£ÁÇ¿ô¤ÎÊ¿Êýº¬ -.SH ½ñ¼° +.SH 名前 +csqrt, csqrtf, csqrtl \- 複素数の平方根 +.SH 書式 .B #include .sp .BI "double complex csqrt(double complex " z ");" @@ -21,20 +21,20 @@ csqrt, csqrtf, csqrtl \- Ê£ .br .BI "long double complex csqrtl(long double complex " z ");" .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ -Í¿¤¨¤é¤ì¤¿Ê£ÁÇ¿ô¤ÎÊ¿Êýº¬¤ò·×»»¤¹¤ë¡£ -⤷¡¢Ê¿Êýº¬¤Î¤¦¤Á¼Â¿ôÉô¤¬ÈóÉé¤ÎÃͤòÊÖ¤¹¡£ -¼Â¼´¤ÎÉé¤ÎÉôʬ¤Ë±è¤Ã¤Æʬ»ÞÀÚÃÇ (branch cut) ¤¬¤¢¤ë¡£ -(¤Ä¤Þ¤ê¡¢ \fIeps\fP ¤ò¾®¤µ¤ÊÀµ¤Î¼Â¿ô¤È¤·¤¿¾ì¹ç¡¢ -\fIcsqrt(\-1+eps*I)\fP ¤¬ I ¤Ë¶áÉÕ¤¤¤Æ¤¤¤­¡¢ -°ìÊý \fIcsqrt(\-1\-eps*I)\fP ¤Ï \-I ¤Ë¶áÉÕ¤¤¤Æ¤¤¤¯¡¢ -¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£) -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +\fI\-lm\fP でリンクする。 +.SH 説明 +与えられた複素数の平方根を計算する。 +但し、平方根のうち実数部が非負の値を返す。 +実軸の負の部分に沿って分枝切断 (branch cut) がある。 +(つまり、 \fIeps\fP を小さな正の実数とした場合、 +\fIcsqrt(\-1+eps*I)\fP が I に近付いていき、 +一方 \fIcsqrt(\-1\-eps*I)\fP は \-I に近付いていく、 +ということである。) +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR cexp (3), .BR complex (7) diff --git a/release/man3/ctan.3 b/release/man3/ctan.3 index 9ba6098b..1b8a54b1 100644 --- a/release/man3/ctan.3 +++ b/release/man3/ctan.3 @@ -6,14 +6,14 @@ .\" Translated 2003-07-23, Akihiro MOTOKI .\" Updated 2005-02-21, Akihiro MOTOKI .\" -.\"WORD: sine Àµ¸¹ -.\"WORD: cosine ;¸¹ -.\"WORD: tangent ÀµÀÜ +.\"WORD: sine 正弦 +.\"WORD: cosine 余弦 +.\"WORD: tangent 正接 .\" .TH CTAN 3 2008-08-11 "" "Linux Programmer's Manual" -.SH ̾Á° -ctan, ctanf, ctanl \- Ê£ÁÇ¿ô¤ÎÀµÀÜ (tangent) ´Ø¿ô -.SH ½ñ¼° +.SH 名前 +ctan, ctanf, ctanl \- 複素数の正接 (tangent) 関数 +.SH 書式 .B #include .sp .BI "double complex ctan(double complex " z ");" @@ -22,18 +22,18 @@ ctan, ctanf, ctanl \- Ê£ .br .BI "long double complex ctanl(long double complex " z ");" .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ -Ê£ÁÇ¿ô¤ÎÀµÀÜ (tangent) ´Ø¿ô ctan(z) ¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë¡£ +\fI\-lm\fP でリンクする。 +.SH 説明 +複素数の正接 (tangent) 関数 ctan(z) は以下のように定義される。 .nf ctan(z) = csin(z) / ccos(z) .fi -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR catan (3), .BR ccos (3), diff --git a/release/man3/ctanh.3 b/release/man3/ctanh.3 index 0c624f36..89956b42 100644 --- a/release/man3/ctanh.3 +++ b/release/man3/ctanh.3 @@ -6,15 +6,15 @@ .\" Translated 2003-07-23, Akihiro MOTOKI .\" Updated 2005-02-21, Akihiro MOTOKI .\" -.\"WORD: hyperbolic ÁжÊ(Àþ¤Î) -.\"WORD: sine Àµ¸¹ -.\"WORD: cosine ;¸¹ -.\"WORD: tangent ÀµÀÜ +.\"WORD: hyperbolic 双曲(線の) +.\"WORD: sine 正弦 +.\"WORD: cosine 余弦 +.\"WORD: tangent 正接 .\" .TH CTANH 3 2008-08-11 "" "Linux Programmer's Manual" -.SH ̾Á° -ctanh, ctanhf, ctanhl \- Ê£ÁÇ¿ô¤ÎÁжÊÀþÀµÀÜ (hyperbolic tangent) -.SH ½ñ¼° +.SH 名前 +ctanh, ctanhf, ctanhl \- 複素数の双曲線正接 (hyperbolic tangent) +.SH 書式 .B #include .sp .BI "double complex ctanh(double complex " z ");" @@ -23,18 +23,18 @@ ctanh, ctanhf, ctanhl \- Ê£ .br .BI "long double complex ctanhl(long double complex " z ");" .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ -Ê£ÁÇ¿ô¤ÎÁжÊÀþÀµÀÜ (hyperbolic tangent) ´Ø¿ô¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë¡£ +\fI\-lm\fP でリンクする。 +.SH 説明 +複素数の双曲線正接 (hyperbolic tangent) 関数は以下のように定義される。 .nf ctanh(z) = csinh(z) / ccosh(z) .fi -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR catanh (3), .BR ccosh (3), diff --git a/release/man3/ctermid.3 b/release/man3/ctermid.3 index 0b8fead1..954b69f4 100644 --- a/release/man3/ctermid.3 +++ b/release/man3/ctermid.3 @@ -27,9 +27,9 @@ .\" Translated Mon Feb 10 1997 by Hiroaki Nagoya .\" .TH CTERMID 3 2007-07-26 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -ctermid \- À©¸æüËö̾¤Î¼èÆÀ -.SH ½ñ¼° +.SH 名前 +ctermid \- 制御端末名の取得 +.SH 書式 .nf .B #include .\" POSIX also requires this function to be declared in , @@ -39,36 +39,36 @@ ctermid \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR ctermid (): _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .\" From : _XOPEN_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR ctermid () -¤Ï¥×¥í¥»¥¹¤Î¸½ºß¤ÎÀ©¸æüËö¤Î¥Ñ¥¹Ì¾¤òÊÖ¤¹¡£ +はプロセスの現在の制御端末のパス名を返す。 .I s -¤¬ NULL ¤Î¾ì¹ç¡¢ÀÅŪ¤Ê¥Ð¥Ã¥Õ¥¡¤òÍѤ¤¤ë¡£¤½¤ì°Ê³°¤Î¾ì¹ç¡¢ +が NULL の場合、静的なバッファを用いる。それ以外の場合、 .I s -¤ÏüËö¥Ñ¥¹Ì¾¤òÊÝ»ý¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤È¤Ê¤ë¡£ -¥·¥ó¥Ü¥ëÄê¿ô +は端末パス名を保持するのに使用されるバッファへのポインタとなる。 +シンボル定数 .B L_ctermid -¤ÏÊÖ¤µ¤ì¤ë¥Ñ¥¹Ì¾¤ÎºÇÂçʸ»ú¿ô¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -¥Ñ¥¹Ì¾¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ -.SH ½àµò +は返されるパス名の最大文字数である。 +.SH 返り値 +パス名へのポインタ。 +.SH 準拠 SVr4, POSIX.1-2001. -.SH ¥Ð¥° -ÊÖ¤µ¤ì¤¿¥Ñ¥¹¤Ï¤¿¤Ö¤óÀ©¸æüËö¤ò°ì°Õ¤Ë¤ÏÆÃÄê¤Ç¤­¤Ê¤¤¡£ -¤¿¤È¤¨¤Ð +.SH バグ +返されたパスはたぶん制御端末を一意には特定できない。 +たとえば .I /dev/tty -¤Î¤è¤¦¤Ë¡£ +のように。 .PP -¥×¥í¥°¥é¥à¤¬Ã¼Ëö¤ò¥ª¡¼¥×¥ó¤Ç¤­¤ë¤³¤È¤ÏÊݾڤµ¤ì¤Æ¤¤¤Ê¤¤¡£ +プログラムが端末をオープンできることは保証されていない。 .\" in glibc 2.3.x, x >= 4, the glibc headers threw an error .\" if ctermid() was given an argument; fixed in 2.4. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ttyname (3) diff --git a/release/man3/ctime.3 b/release/man3/ctime.3 index 028b73fa..e166779c 100644 --- a/release/man3/ctime.3 +++ b/release/man3/ctime.3 @@ -41,14 +41,14 @@ .\" Updated 2008-08-08, Akihiro MOTOKI , LDP v3.05 .\" Updated 2008-11-10, Akihiro MOTOKI , LDP v3.13 .\" -.\"WORD: Coordinated Univarsal Time ¶¨ÄêÀ¤³¦»þ -.\"WORD: broken-down time Í×ÁÇÊ̤λþ¹ï +.\"WORD: Coordinated Univarsal Time 協定世界時 +.\"WORD: broken-down time 要素別の時刻 .\" .TH CTIME 3 2010-02-25 "" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 asctime, ctime, gmtime, localtime, mktime, asctime_r, ctime_r, gmtime_r, -localtime_r \- ÆüÉդȻþ¹ï¤òÍ×ÁÇÊ̤λþ¹ï¤ä ASCII ¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +localtime_r \- 日付と時刻を要素別の時刻や ASCII に変換する +.SH 書式 .nf .B #include .sp @@ -72,9 +72,9 @@ localtime_r \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .ad l .sp @@ -87,252 +87,252 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE || _POSIX_SOURCE .RE .ad -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR ctime (), .BR gmtime (), .BR localtime () -¤Ï -\fItime_t\fP ·¿¤Î¥«¥ì¥ó¥À¡¼»þ¹ï¤ò°ú¤­¿ô¤Ë¤È¤ë¡£ -°ú¤­¿ô¤¬ÀäÂÐÃͤȤ·¤Æ²ò¼á¤µ¤ì¤ë¾ì¹ç¤Ï¡¢»þ¹ïµª¸µ (Epoch; -1970-01-01 00:00:00 +0000 (UTC)) ¤«¤é¤Î·Ð²áÉÿô¤È²ò¼á¤µ¤ì¤ë¡£ +は +\fItime_t\fP 型のカレンダー時刻を引き数にとる。 +引き数が絶対値として解釈される場合は、時刻紀元 (Epoch; +1970-01-01 00:00:00 +0000 (UTC)) からの経過秒数と解釈される。 .PP -´Ø¿ô +関数 .BR asctime () -¤È +と .BR mktime () -¤Ï -ǯ¡¦·î¡¦Æü¤Ê¤É¤ËʬΥ¤µ¤ì¤¿Í×ÁÇÊ̤λþ¹ï¤ò°ú¤­¿ô¤È¤¹¤ë¡£ +は +年・月・日などに分離された要素別の時刻を引き数とする。 .PP -Í×ÁÇÊ̤λþ¹ï¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë -\fItm\fP ¹½Â¤ÂΤËÊÝ»ý¤µ¤ì¤ë¡£ +要素別の時刻は \fI\fP で以下のように定義されている +\fItm\fP 構造体に保持される。 .sp .in +4n .nf struct tm { - int tm_sec; /* Éà */ - int tm_min; /* ʬ */ - int tm_hour; /* »þ´Ö */ - int tm_mday; /* Æü */ - int tm_mon; /* ·î */ - int tm_year; /* ǯ */ - int tm_wday; /* ÍËÆü */ - int tm_yday; /* ǯÆâÄÌ»»Æü */ - int tm_isdst; /* ²Æ»þ´Ö */ + int tm_sec; /* 秒 */ + int tm_min; /* 分 */ + int tm_hour; /* 時間 */ + int tm_mday; /* 日 */ + int tm_mon; /* 月 */ + int tm_year; /* å¹´ */ + int tm_wday; /* 曜日 */ + int tm_yday; /* 年内通算日 */ + int tm_isdst; /* 夏時間 */ }; .fi .in .PP -\fItm\fP ¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤Ï°Ê²¼¤ÎÄ̤ê: +\fItm\fP 構造体のメンバーは以下の通り: .TP 10 .I tm_sec -Éÿô¡¢¤Õ¤Ä¤¦¤Ï 0 ¤«¤é 59 ¤Þ¤Ç¤ÎÃÍ¡¢ -¤·¤«¤·±¼ÉäΤ¿¤á 60 ¤Þ¤Ç¤ÎÃͤϵö¤µ¤ì¤ë¡£ +秒数、ふつうは 0 から 59 までの値、 +しかし閏秒のため 60 までの値は許される。 .TP .I tm_min -ʬ¿ô¡¢0 ¤«¤é 59 ¤Þ¤Ç¤ÎÃÍ¡£ +分数、0 から 59 までの値。 .TP .I tm_hour -¿¿ÌëÃ椫¤é¤ÎÄÌ»»»þ´Ö¡¢0 ¤«¤é 23 ¤Þ¤Ç¤ÎÃÍ¡£ +真夜中からの通算時間、0 から 23 までの値。 .TP .I tm_mday -·î¤Ï¤¸¤á¤«¤é¤ÎÆü¿ô¡¢1 ¤«¤é 31 ¤Þ¤Ç¤ÎÃÍ¡£ +月はじめからの日数、1 から 31 までの値。 .TP .I tm_mon -1·î¤«¤é¤ÎÄÌ»»·î¿ô¡¢0 ¤«¤é 11 ¤Þ¤Ç¤ÎÃÍ¡£ +1月からの通算月数、0 から 11 までの値。 .TP .I tm_year -1900 ǯ¤«¤é¤ÎÄÌ»»Ç¯¿ô¡£ +1900 年からの通算年数。 .TP .I tm_wday -ÆüÍËÆü¤«¤é¤ÎÄÌ»»Æü¿ô(ÍËÆü)¡£0 ¤«¤é 6 ¤Þ¤Ç¤ÎÃÍ¡£ +日曜日からの通算日数(曜日)。0 から 6 までの値。 .TP .I tm_yday -1 ·î 1 Æü¤«¤é¤ÎÄÌ»»Æü¿ô¡¢0 ¤«¤é 365 ¤Þ¤Ç¤ÎÃÍ¡£ +1 月 1 日からの通算日数、0 から 365 までの値。 .TP .I tm_isdst -²Æ»þ´Ö¤¬Í­¸ú¤«¤É¤¦¤«¤Î¥Õ¥é¥°¡£ -Àµ¤ÎÃͤʤé¤Ð²Æ»þ´Ö¤ÏÍ­¸ú¤Ë¤Ê¤ê¡¢0 ¤Ê¤é¤Ð̵¸ú¡¢Éé¤ÎÃͤʤé¤Ð¤³¤Î¾ðÊó¤Ë¤Ï -°ÕÌ£¤¬¤Ê¤¤¡£ +夏時間が有効かどうかのフラグ。 +正の値ならば夏時間は有効になり、0 ならば無効、負の値ならばこの情報には +意味がない。 .PP .BI ctime( t ) -´Ø¿ô¤Ï¡¢ +関数は、 .BI asctime(localtime( t )) -¤ÈÅù²Á¤Ç¤¢¤ë¡£ -¥«¥ì¥ó¥À¡¼»þ¹ï \fIt\fP ¤ò +と等価である。 +カレンダー時刻 \fIt\fP を .sp .RS "Wed Jun 30 21:49:08 1993\\n" .RE .sp -¤È¤¤¤¦·Á¼°¤Î NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤ØÊÑ´¹¤¹¤ë¡£ -ÍËÆü¤Îά¾Î¤Ï -"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ¤Ç¤¢¤ë¡£ -·î¤Îά¾Î¤Ï "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", -"Sep", "Oct", "Nov", "Dec" ¤Ç¤¢¤ë¡£ -ÊÖ¤êÃͤϡ¢ÀÅŪ (static) ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤³¤Îʸ»úÎó¤Ï¡¢ÆüÉÕ¡¦»þ¹ï´Ø¿ô¤Î¤¤¤º¤ì¤«¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤È¾å½ñ¤­¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ -¤Þ¤¿¤³¤Î´Ø¿ô¤ÏÂç°èÊÑ¿ô \fItzname\fP, \fItimezone\fP, \fIdaylight\fP -¤Ë¸½ºß¤Î¥¿¥¤¥à¥¾¡¼¥ó¤Î¾ðÊó¤òÀßÄꤹ¤ë +という形式の NULL 終端された文字列へ変換する。 +曜日の略称は +"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" である。 +月の略称は "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", +"Sep", "Oct", "Nov", "Dec" である。 +返り値は、静的 (static) に割り当てられた文字列へのポインタである。 +この文字列は、日付・時刻関数のいずれかが呼び出されると上書きされることがある。 +またこの関数は大域変数 \fItzname\fP, \fItimezone\fP, \fIdaylight\fP +に現在のタイムゾーンの情報を設定する .RB ( tzset (3) -»²¾È)¡£ -¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤǤ¢¤ë +参照)。 +リエントラント版である .BR ctime_r () -¤âƱÍͤÀ¤¬¡¢ -ʸ»úÎó¤Ï¥æ¡¼¥¶¡¼¤¬ÍÑ°Õ¤·¤¿¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤ë¡£¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤Ï -¾¯¤Ê¤¯¤È¤â 26 ¥Ð¥¤¥È°Ê¾å¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤Î´Ø¿ô¤Ï \fItzname\fP, \fItimezone\fP, and \fIdaylight\fP -¤òÀßÄꤹ¤ëɬÍפϤʤ¤¡£ +も同様だが、 +文字列はユーザーが用意したバッファに格納される。バッファのサイズは +少なくとも 26 バイト以上でなければならない。 +この関数は \fItzname\fP, \fItimezone\fP, and \fIdaylight\fP +を設定する必要はない。 .PP -´Ø¿ô +関数 .BR gmtime () -¤Ï¡¢¥«¥ì¥ó¥À¡¼»þ¹ï \fItimep\fP ¤ò -¶¨ÄêÀ¤³¦»þ (UTC) ¤Ç¤ÎÍ×ÁÇÊ̤λþ¹ï¤ØÊÑ´¹¤¹¤ë¡£ -ǯ¤¬À°¿ô·¿¤Ë¼ý¤Þ¤é¤Ê¤¤¾ì¹ç¡¢NULL ¤òÊÖ¤¹¡£ -ÊÖ¤êÃͤÏÀÅŪ¤Ë³ÎÊݤµ¤ì¤¿¹½Â¤ÂΤò»Ø¤·¤Æ¤ª¤ê¡¢¤³¤Î¸å¤Ç -ÆüÉÕ¤ä»þ¹ï¤Ë´Ø¤¹¤ë´Ø¿ô¤Î¤¤¤º¤ì¤«¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤È -¾å½ñ¤­¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +は、カレンダー時刻 \fItimep\fP を +協定世界時 (UTC) での要素別の時刻へ変換する。 +年が整数型に収まらない場合、NULL を返す。 +返り値は静的に確保された構造体を指しており、この後で +日付や時刻に関する関数のいずれかが呼び出されると +上書きされる可能性がある。 .BR gmtime_r () -¤âƱÍͤÀ¤¬¡¢ -¥Ç¡¼¥¿¤Ï¥æ¡¼¥¶¡¼¤¬ÍÑ°Õ¤·¤¿¹½Â¤ÂΤ˳ÊǼ¤µ¤ì¤ë¡£ +も同様だが、 +データはユーザーが用意した構造体に格納される。 .PP -´Ø¿ô +関数 .BR localtime () -¤Ï¡¢¥«¥ì¥ó¥À¡¼»þ¹ï \fItimep\fP ¤ò -¥æ¡¼¥¶¤¬»ØÄꤷ¤¿¥¿¥¤¥à¥¾¡¼¥ó¤Ç¤Î»þ¹ïÍ×ÁÇÊ̤Îɽ¸½¤ØÊÑ´¹¤¹¤ë¡£ -¤³¤Î´Ø¿ô¤Ï +は、カレンダー時刻 \fItimep\fP を +ユーザが指定したタイムゾーンでの時刻要素別の表現へ変換する。 +この関数は .BR tzset (3) -¤ò¸Æ¤Ó½Ð¤·¤¿¤«¤Î¤è¤¦¤Ë¿¶Éñ¤¤¡¢ -Âç°èÊÑ¿ô \fItzname\fP ¤Ë¸½ºß¤Î¥¿¥¤¥à¥¾¡¼¥ó¤Î¾ðÊó¤òÀßÄꤹ¤ë¡£ -¤Þ¤¿¡¢\fItimezone\fP ¤Ë¶¨ÄêÀ¤³¦»þ (UTC) ¤È¥í¡¼¥«¥ëɸ½à»þ¤È¤Î -»þº¹¤ÎÉÿô¤òÀßÄꤷ¡¢ -°ìǯ¤Î°ìÉô¤Ç²Æ»þ´Ö¤¬Å¬ÍѤµ¤ì¤ë¾ì¹ç¤Ï \fIdaylight\fP ¤Ë 0 ¤¬ÀßÄꤵ¤ì¤ë¡£ -ÊÖ¤êÃͤÏÀÅŪ¤Ë³ÎÊݤµ¤ì¤¿¹½Â¤ÂΤò»Ø¤·¤Æ¤ª¤ê¡¢¤³¤Î¸å¤Ç -ÆüÉÕ¤ä»þ¹ï¤Ë´Ø¤¹¤ë´Ø¿ô¤Î¤¤¤º¤ì¤«¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤È -¾å½ñ¤­¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +を呼び出したかのように振舞い、 +大域変数 \fItzname\fP に現在のタイムゾーンの情報を設定する。 +また、\fItimezone\fP に協定世界時 (UTC) とローカル標準時との +時差の秒数を設定し、 +一年の一部で夏時間が適用される場合は \fIdaylight\fP に 0 が設定される。 +返り値は静的に確保された構造体を指しており、この後で +日付や時刻に関する関数のいずれかが呼び出されると +上書きされる可能性がある。 .BR localtime_r () -¤âƱÍͤÀ¤¬¡¢ -¥Ç¡¼¥¿¤Ï¥æ¡¼¥¶¡¼¤¬ÍÑ°Õ¤·¤¿¹½Â¤ÂΤ˳ÊǼ¤µ¤ì¤ë¡£ -¤³¤Î´Ø¿ô¤Ï \fItzname\fP, \fItimezone\fP, and \fIdaylight\fP -¤òÀßÄꤹ¤ëɬÍפϤʤ¤¡£ +も同様だが、 +データはユーザーが用意した構造体に格納される。 +この関数は \fItzname\fP, \fItimezone\fP, and \fIdaylight\fP +を設定する必要はない。 .PP -´Ø¿ô +関数 .BR asctime () -¤Ï¡¢Í×ÁÇÊ̤λþ¹ï \fItm\fP ¤ò +は、要素別の時刻 \fItm\fP を .BR ctime () -¤ÈƱ¤¸·Á¼°¤Î NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤ØÊÑ´¹¤¹¤ë¡£ -ÊÖ¤êÃͤÏÀÅŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£¤³¤Îʸ»úÎó¤Ï¡¢ -ÆüÉÕ¡¦»þ¹ï´Ø¿ô¤Î¤¤¤º¤ì¤«¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤È¾å½ñ¤­¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ -¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤǤ¢¤ë +と同じ形式の NULL 終端された文字列へ変換する。 +返り値は静的に割り当てられた文字列へのポインタである。この文字列は、 +日付・時刻関数のいずれかが呼び出されると上書きされることがある。 +リエントラント版である .BR asctime_r () -¤âƱÍͤÀ¤¬¡¢ -ʸ»úÎó¤Ï¥æ¡¼¥¶¡¼¤¬ÍÑ°Õ¤·¤¿¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤ë¡£¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤Ï -¾¯¤Ê¤¯¤È¤â 26 ¥Ð¥¤¥È°Ê¾å¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +も同様だが、 +文字列はユーザーが用意したバッファに格納される。バッファのサイズは +少なくとも 26 バイト以上でなければならない。 .PP -´Ø¿ô +関数 .BR mktime () -¤Ï¡¢(¥í¡¼¥«¥ë¥¿¥¤¥à¤Çµ­½Ò¤µ¤ì¤Æ¤¤¤ë) Í×ÁÇÊ̤λþ¹ï¤ò -¥«¥ì¥ó¥À¡¼»þ¹ï¤ØÊÑ´¹¤¹¤ë¡£¤³¤ÎºÝ¡¢¸Æ¤Ó½Ð¤·¸µ¤¬¥Õ¥£¡¼¥ë¥É +は、(ローカルタイムで記述されている) 要素別の時刻を +カレンダー時刻へ変換する。この際、呼び出し元がフィールド .I tm_wday -¤È +と .I tm_yday -¤Ç»ØÄꤷ¤¿ÃͤÏ̵»ë¤µ¤ì¤ë¡£ +で指定した値は無視される。 .BR mktime () -¤Ï¡¢¥Õ¥£¡¼¥ë¥É +は、フィールド .I tm_isdst -¤Ç»ØÄꤵ¤ì¤¿Ãͤˤè¤ê¡¢ +で指定された値により、 .I tm -¹½Â¤ÂΤÇÅϤµ¤ì¤¿»þ¹ï¤Ç²Æ»þ´Ö (daylight saving time; DST) ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ -¤¤¤ë¤«¤òÃΤ롣 -Àµ¤ÎÃͤϲƻþ´Ö¤¬Í­¸ú¤Ç¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -Éé¤ÎÃͤǤ¢¤ì¤Ð¡¢ +構造体で渡された時刻で夏時間 (daylight saving time; DST) が有効になって +いるかを知る。 +正の値は夏時間が有効であることを意味する。 +負の値であれば、 .BR mktime () -¤Ï (¥¿¥¤¥à¥¾¡¼¥ó¾ðÊó¤È¥·¥¹¥Æ¥à¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò»È¤Ã¤Æ) -»ØÄꤵ¤ì¤¿»þ¹ï¤Ç²Æ»þ´Ö¤¬Í­¸ú¤«¤É¤¦¤«¤òȽÃǤ¹¤ëɬÍפ¬¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +は (タイムゾーン情報とシステムのデータベースを使って) +指定された時刻で夏時間が有効かどうかを判断する必要があることを意味する。 .BR mktime () -¤Ï +は .I tm -¹½Â¤ÂΤγƥե£¡¼¥ë¥É¤ò°Ê²¼¤Î¤è¤¦¤Ë½¤Àµ¤¹¤ë¡£ +構造体の各フィールドを以下のように修正する。 .I tm_wday -¤È +と .I tm_yday -¤Ë¤Ï¾¤Î¥Õ¥£¡¼¥ë¥É¤ÎÆâÍƤ«¤éµá¤á¤¿ÃͤòÀßÄꤹ¤ë¡£ -¹½Â¤ÂΤÎÍ×ÁǤ¬Í­¸ú¤ÊÈϰϤˤʤ¤¾ì¹ç¡¢Àµµ¬²½¤µ¤ì¤ë -(Î㤨¤Ð¡¢10 ·î 40 Æü¤Ï 11 ·î 9 Æü¤ËÊѹ¹¤µ¤ì¤ë)¡£ +には他のフィールドの内容から求めた値を設定する。 +構造体の要素が有効な範囲にない場合、正規化される +(例えば、10 月 40 日は 11 月 9 日に変更される)。 .I tm_isdst -¤Ë¤Ï (ºÇ½é¤ÎÃͤˤ«¤«¤ï¤é¤º) Àµ¤ÎÃͤ« 0 ¤¬ÀßÄꤵ¤ì¤ë¡£ -Àµ¤ÎÃͤϻØÄꤵ¤ì¤¿»þ´Ö¤Ç²Æ»þ´Ö¤¬Í­¸ú¤Ç¤¢¤ë¤³¤È¤ò¼¨¤·¡¢ -0 ¤Ï̵¸ú¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ -´Ø¿ô +には (最初の値にかかわらず) 正の値か 0 が設定される。 +正の値は指定された時間で夏時間が有効であることを示し、 +0 は無効であることを示す。 +関数 .BR mktime () -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢ -Âç°èÊÑ¿ô \fItzname\fP ¤¬¸½ºß¤Î¥¿¥¤¥à¥¾¡¼¥ó¤ËÀßÄꤵ¤ì¤ë¡£ +を呼び出すと、 +大域変数 \fItzname\fP が現在のタイムゾーンに設定される。 -Í×ÁÇÊ̤λþ¹ï¤ò¥«¥ì¥ó¥À¡¼»þ¹ï (µª¸µ (Epoch) ¤«¤é¤ÎÉÿô) ¤Çɽ¸½¤Ç¤­¤Ê¤¤¾ì¹ç¡¢ +要素別の時刻をカレンダー時刻 (紀元 (Epoch) からの秒数) で表現できない場合、 .BR mktime () -¤Ï +は .I (time_t)\ (-1) -¤òÊÖ¤·¡¢Í×ÁÇÊ̤λþ¹ï¤Î¹½Â¤ÂÎ¥á¥ó¥Ð¡¼¤òÊѹ¹¤·¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ìÁ°½Ò¤·¤¿ÃͤòÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï NULL +を返し、要素別の時刻の構造体メンバーを変更しない。 +.SH 返り値 +各関数はそれぞれ前述した値を返す。エラーの場合は NULL .RB ( mktime () -¤Ç¤Ï \-1) ¤òÊÖ¤¹¡£ -.SH ½àµò +では \-1) を返す。 +.SH 準拠 POSIX.1-2001. -C89 ¤È C99 ¤Ç¤Ï +C89 と C99 では .BR asctime (), .BR ctime (), .BR gmtime (), .BR localtime (), .BR mktime () -¤¬µ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -POSIX.1-2008 ¤Ï¡¢ +が規定されている。 +POSIX.1-2008 は、 .BR asctime (), .BR asctime_r (), .BR ctime (), .BR ctime_r () -¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£ -Âå¤ï¤ê¤Ë¡¢ +を廃止予定としている。 +代わりに、 .BR strftime (3) -¤Î»ÈÍѤ¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ +の使用が推奨されている。 +.SH 注意 .BR asctime (), .BR ctime (), .BR gmtime (), .BR localtime () -¤Î 4 ¤Ä¤Î´Ø¿ô¤ÏÀÅŪ¥Ç¡¼¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¤Î¤Ç¡¢¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤Ï¤Ê¤¤¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Î¥¹¥ì¥Ã¥É¥»¡¼¥ÕÈǤǤ¢¤ë +の 4 つの関数は静的データへのポインタを返すので、スレッドセーフではない。 +これらの関数のスレッドセーフ版である .BR asctime_r (), .BR ctime_r (), .BR gmtime_r (), .BR localtime_r () -¤Ï SUSv2 ¤Çµ¬Äꤵ¤ì¤Æ¤ª¤ê¡¢ -libc 5.2.5 °Ê¹ß¤ÇÍøÍѤǤ­¤ë¡£ +は SUSv2 で規定されており、 +libc 5.2.5 以降で利用できる。 -POSIX.1-2001 ¤Ç¤Ï¡¢¡Ö´Ø¿ô +POSIX.1-2001 では、「関数 .BR asctime (), .BR ctime (), .BR gmtime (), .BR localtime () -¤Ï¡¢Í×ÁÇÊ̤λþ¹ï¤Î¹½Â¤ÂΤ« +は、要素別の時刻の構造体か .I char -·¿¤ÎÇÛÎ󤫤ΤɤÁ¤é¤«¤ÎÀÅŪ¥ª¥Ö¥¸¥§¥¯¥È¤òÊÖ¤¹¤â¤Î¤È¤¹¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Î¤¤¤º¤ì¤«¤ò¼Â¹Ô¤¹¤ë¤È¡¢Â¾¤Î´Ø¿ô¤Î¤É¤ì¤«¤¬¤³¤ì¤é¤Î -ÀÅŪ¥ª¥Ö¥¸¥§¥¯¥È¤Î¤É¤Á¤é¤«¤Ë³ÊǼ¤·¤ÆÊÖ¤·¤¿¾ðÊ󤬾å½ñ¤­¤µ¤ì¤ë¤«¤â -¤·¤ì¤Ê¤¤¡£¡×¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤³¤Î¤³¤È¤Ï glibc ¤Î¼ÂÁõ¤Çµ¯¤³¤ê¤¦¤ë¡£ +型の配列かのどちらかの静的オブジェクトを返すものとする。 +これらの関数のいずれかを実行すると、他の関数のどれかがこれらの +静的オブジェクトのどちらかに格納して返した情報が上書きされるかも +しれない。」となっている。 +このことは glibc の実装で起こりうる。 .LP -glibc ¤ò´Þ¤à¿¤¯¤Î¼ÂÁõ¤Ç¤Ï¡¢ +glibc を含む多くの実装では、 .I tm_mday -¤Ë 0 ¤ò»ØÄꤹ¤ë¤ÈÁ°·î¤ÎºÇ½ªÆü¤ò°ÕÌ£¤·¤Æ¤¤¤ë¤È²ò¼á¤µ¤ì¤ë¡£ +に 0 を指定すると前月の最終日を意味していると解釈される。 .LP -glibc ¤Ç¤Ï¡¢ +glibc では、 .I -¤¬¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤ëÁ°¤Ë +がインクルードされる前に .B _BSD_SOURCE -¤¬ÄêµÁ¤µ¤ì¤ë¤È¡¢ -\fIstruct tm\fP ¤Ë°Ê²¼¤Î¥Õ¥£¡¼¥ë¥É¤¬Äɲ䵤ì¤ë¡£ +が定義されると、 +\fIstruct tm\fP に以下のフィールドが追加される。 .sp .RS .nf @@ -341,22 +341,22 @@ const char *tm_zone; /* Timezone abbreviation */ .fi .RE .sp -¤³¤ì¤Ï BSD ³ÈÄ¥¤Ç¤¢¤ê¡¢4.3BSD-Reno ¤«¤é¸½¤ì¤¿¡£ +これは BSD 拡張であり、4.3BSD-Reno から現れた。 -POSIX.1-2004 ¤Ë¤è¤ë¤È¡¢ +POSIX.1-2004 によると、 .BR localtime () -¤Ï¤¢¤¿¤«¤â +はあたかも .BR tzset (3) -¤¬¸Æ¤Ð¤ì¤¿¤«¤Î¤è¤¦¤Ë¿¶Éñ¤¦¤³¤È¤¬Í׵ᤵ¤ì¤Æ¤¤¤ë¤¬¡¢ +が呼ばれたかのように振舞うことが要求されているが、 .BR localtime_r () -¤Ë¤Ï¤³¤ÎÍ×·ï¤Ï¤Ê¤¤¡£ -.\" http://thread.gmane.org/gmane.comp.time.tz/2034/ ¤ò»²¾È¡£ -°Ü¿¢À­¤¬É¬Íפʥ³¡¼¥É¤Ç¤Ï¡¢ +にはこの要件はない。 +.\" http://thread.gmane.org/gmane.comp.time.tz/2034/ を参照。 +移植性が必要なコードでは、 .BR localtime_r () -¤ÎÁ°¤Ë +の前に .BR tzset (3) -¤ò¸Æ¤Ó½Ð¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を呼び出しておくべきである。 +.SH 関連項目 .BR date (1), .BR gettimeofday (2), .BR time (2), diff --git a/release/man3/daemon.3 b/release/man3/daemon.3 index 1d21f08e..99e6a888 100644 --- a/release/man3/daemon.3 +++ b/release/man3/daemon.3 @@ -39,71 +39,71 @@ .\" Updated & Modified Mon Jan 14 06:50:04 JST 2002 .\" by Yuichi SATO .\" -.\"WORD: detach ʬΥ -.\"WORD: controlling terminal À©¸æüËö -.\"WORD: current working directory ¥«¥ì¥ó¥È¡¦¥ï¡¼¥­¥ó¥°¡¦¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: global variable Âç°èÊÑ¿ô +.\"WORD: detach 分離 +.\"WORD: controlling terminal 制御端末 +.\"WORD: current working directory カレント・ワーキング・ディレクトリ +.\"WORD: global variable 大域変数 .\" .TH DAEMON 3 2009-12-05 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -daemon \- ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤ÇÆ°ºî¤µ¤»¤ë -.SH ½ñ¼° +.SH 名前 +daemon \- バックグラウンドで動作させる +.SH 書式 .B #include .sp .BI "int daemon(int " nochdir ", int " noclose ); -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): -.SH ÀâÌÀ +参照): +.SH 説明 .BR daemon () -¤Ï¡¢À©¸æüËö¤«¤éʬΥ¤µ¤»¤Æ¥·¥¹¥Æ¥à¥Ç¡¼¥â¥ó¤È¤·¤ÆÆ°ºî¤µ¤»¤¿¤¤ -¥×¥í¥°¥é¥à¤Î¤¿¤á¤Î´Ø¿ô¤Ç¤¢¤ë¡£ +は、制御端末から分離させてシステムデーモンとして動作させたい +プログラムのための関数である。 .PP .I nochdir -¤¬ 0 ¤Î¾ì¹ç¡¢ +が 0 の場合、 .BR daemon () -¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê (current working directory) -¤ò¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê ("/") ¤ËÊѹ¹¤¹¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +は呼び出したプロセスの現在の作業ディレクトリ (current working directory) +をルートディレクトリ ("/") に変更する。 +それ以外の場合、現在の作業ディレクトリは変更されない。 .PP .I noclose -¤¬ 0 ¤Î¾ì¹ç¡¢ +が 0 の場合、 .BR daemon () -¤Ïɸ½àÆþÎÏ¡¦É¸½à½ÐÎÏ¡¦É¸½à¥¨¥é¡¼¤ò \fI/dev/null\fP ¤Ë¥ê¥À¥¤¥ì¥¯¥È¤¹¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -(¤³¤Î´Ø¿ô¤¬ fork ¤·¤Æ +は標準入力・標準出力・標準エラーを \fI/dev/null\fP にリダイレクトする。 +それ以外の場合、これらのファイル・ディスクリプタは変更されない。 +.SH 返り値 +(この関数が fork して .BR fork (2) -¤¬À®¸ù¤¹¤ë¤È¡¢¿Æ¥×¥í¥»¥¹¤Ç¤Ï +が成功すると、親プロセスでは .BR _exit (2) -¤ò¸Æ¤Ó½Ð¤¹¤Î¤Ç¡¢¤³¤ì°Ê¹ß¤Î¥¨¥é¡¼¤Ï»Ò¥×¥í¥»¥¹¤«¤é¤·¤«¸«¤ì¤Ê¤¤)¡£ -.\" ¥¢¥ó¥À¡¼¥¹¥³¥¢ _ ¤Ë²¼Àþ¤ò°ú¤«¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á .IR ¤Ï»È¤ï¤Ê¤¤¡£ -À®¸ù¤·¤¿¾ì¹ç¡¢ +を呼び出すので、これ以降のエラーは子プロセスからしか見れない)。 +.\" アンダースコア _ に下線を引かないようにするため .IR は使わない。 +成功した場合、 .BR daemon () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢ +は 0 を返す。 +エラーが起こった場合、 .BR daemon () -¤Ï \-1 ¤òÊÖ¤¹¡£ -¤µ¤é¤Ë¡¢ +は \-1 を返す。 +さらに、 .I errno -¤Ë +に .BR fork (2) -¤È +と .BR setsid (2) -¤Ë´Ø¤·¤Æµ¬Äꤵ¤ì¤¿¥¨¥é¡¼¤òÀßÄꤹ¤ë¡£ -.SH ½àµò -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -ƱÍͤδؿô¤¬ BSD ¤Ë¤Ï¸«¤é¤ì¤ë¡£ +に関して規定されたエラーを設定する。 +.SH 準拠 +POSIX.1-2001 にはない。 +同様の関数が BSD には見られる。 .BR daemon () -´Ø¿ô¤Ï 4.4BSD ¤Ç»Ï¤á¤ÆÅо줷¤¿¡£ -.SH Ãí°Õ +関数は 4.4BSD で始めて登場した。 +.SH 注意 .I /dev/null -¤Ï¸ºß¤¹¤ë¤¬¡¢ÁÛÄꤹ¤ë¥á¥¸¥ã¡¼ÈÖ¹æ¤È¥Þ¥¤¥Ê¡¼ÈÖ¹æ¤Î -¥­¥ã¥é¥¯¥¿¥Ç¥Ð¥¤¥¹¤Ç¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ -glibc ¤Î¼ÂÁõ¤Ç¤â \-1 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤Î¾ì¹ç¡¢ +は存在するが、想定するメジャー番号とマイナー番号の +キャラクタデバイスでなかった場合、 +glibc の実装でも \-1 が返される。 +この場合、 .I errno -¤¬ÀßÄꤵ¤ì¤ëɬÍפϤʤ¤¡£ -.SH ´ØÏ¢¹àÌÜ +が設定される必要はない。 +.SH 関連項目 .BR fork (2), .BR setsid (2) diff --git a/release/man3/dbopen.3 b/release/man3/dbopen.3 index 59c9a5e3..cf77b47b 100644 --- a/release/man3/dbopen.3 +++ b/release/man3/dbopen.3 @@ -37,12 +37,12 @@ .\" by Shouichi Saito .\" Proofed Tue Aug 19 1999 by NAKANO Takeo .\" -.\"WORD: descriptor ¥Ç¥¹¥¯¥ê¥×¥¿ +.\"WORD: descriptor デスクリプタ .TH DBOPEN 3 1994-01-02 "" "Linux Programmer's Manual" .UC 7 -.SH ̾Á° -dbopen \- ¥Ç¡¼¥¿¥Ù¡¼¥¹¥¢¥¯¥»¥¹¥á¥½¥Ã¥É -.SH ½ñ¼° +.SH 名前 +dbopen \- データベースアクセスメソッド +.SH 書式 .nf .B #include .B #include @@ -52,37 +52,37 @@ dbopen \- ", DBTYPE " type , .BI " const void *" openinfo ); .fi -.SH ÀâÌÀ +.SH 説明 .BR dbopen () -¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥é¥¤¥Ö¥é¥ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¢¤ë¡£ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï btree, hash, -UNIX ¥Õ¥¡¥¤¥ë¤Ë»Ø¸þ¤·¤¿¥Õ¥©¡¼¥Þ¥Ã¥È, ¤Î 3 ¤Ä¤Ç¤¢¤ë¡£ -btree ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢¥½¡¼¥È¤µ¤ì¤¿¥Ð¥é¥ó¥¹¥Ä¥ê¡¼¹½Â¤¤Ç¤¢¤ë¡£ -hashed ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢³ÈÄ¥²Äǽ¤ÊưŪ hash ¥¹¥­¡¼¥à¤Ç¤¢¤ë¡£ -¥Õ¥é¥Ã¥È¥Õ¥¡¥¤¥ë (flat-file) ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢ -¸ÇÄêĹ/²ÄÊÑĹ¤Î¥ì¥³¡¼¥É¤«¤é¤Ê¤ë¥Ð¥¤¥È¥¹¥È¥ê¡¼¥à¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ -¤½¤ì¤¾¤ì¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤È¡¢¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤ËÆÃÍ­¤Î¾ðÊó¤Ï -¤½¤ì¤¾¤ìÂбþ¤¹¤ë¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸ +はデータベースファイルに対するライブラリインターフェースである。 +サポートされているファイルフォーマットは btree, hash, +UNIX ファイルに指向したフォーマット, の 3 つである。 +btree フォーマットは、ソートされたバランスツリー構造である。 +hashed フォーマットは、拡張可能な動的 hash スキームである。 +フラットファイル (flat-file) フォーマットは、 +固定長/可変長のレコードからなるバイトストリームファイルである。 +それぞれのフォーマットと、ファイルフォーマットに特有の情報は +それぞれ対応するマニュアルページ .BR btree (3), .BR hash (3), .BR recno (3) -¤Ë¾ÜºÙ¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +に詳細に記述されている。 .PP .BR dbopen () -¤Ï +は .I file -¤òÆɤ߹þ¤ß (Æɤ߽ñ¤­) ¤¹¤ë¤¿¤á¤Ë¥ª¡¼¥×¥ó¤¹¤ë¡£ +を読み込み (読み書き) するためにオープンする。 .I file -°ú¤­¿ô¤ò NULL ¤Ë¤¹¤ì¤Ð¡¢ -¥Ç¥£¥¹¥¯¾å¤ËÊݸ¤·¤¿¤¯¤Ê¤¤¥Õ¥¡¥¤¥ë¤òºî¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +引き数を NULL にすれば、 +ディスク上に保存したくないファイルを作ることもできる。 .PP .I flags -¤È +と .I mode -°ú¤­¿ô¤Ï +引き数は .BR open (2) -¥ë¡¼¥Á¥ó¤Ç»ØÄꤹ¤ë¤Î¤ÈƱÍͤǤ¢¤ë¡£¤¿¤À¤· -°ÕÌ£¤ò»ý¤Ä¥Õ¥é¥°¤Ï +ルーチンで指定するのと同様である。ただし +意味を持つフラグは .BR O_CREAT , .BR O_EXCL , .BR O_EXLOCK , @@ -91,10 +91,10 @@ hashed .BR O_RDWR , .BR O_SHLOCK , .B O_TRUNC -¤À¤±¤Ç¤¢¤ë¡£ -(Ãí°Õ: +だけである。 +(注意: .B O_WRONLY -¤Ç¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤ò³«¤¯»ö¤Ï½ÐÍè¤Ê¤¤) +でデータベースファイルを開く事は出来ない) .\"Three additional options may be specified by ORing .\"them into the .\".I flags @@ -116,33 +116,33 @@ hashed .\"The DB_LOCK and DB_SHMEM flags must be set as well. .PP .I type -°ú¤­¿ô¤Ï +引き数は .I DBTYPE -·¿¤Ç¤¢¤ë (¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +型である (インクルードファイル .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ +で定義されている)。 .BR DB_BTREE , .BR DB_HASH , .B DB_RECNO -¤Î¤¤¤º¤ì¤«¤ò¥»¥Ã¥È¤Ç¤­¤ë¡£ +のいずれかをセットできる。 .PP .I openinfo -°ú¤­¿ô¤Ï¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ë¸ÇÍ­¤Ê¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤½¤ì¤¾¤ì¤Î¹½Â¤ÂΤ˴ؤ·¤Æ¤Ï³Æ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Î -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +引き数はアクセスメソッドに固有な構造体へのポインタである。 +それぞれの構造体に関しては各アクセスメソッドの +マニュアルページに記述されている。 .I openinfo -¤¬ NULL ¤Î¾ì¹ç¡¢¤½¤ì¤¾¤ì¤Î¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤È¥·¥¹¥Æ¥à¤È¤ËŬ¹ç¤·¤¿ -¥Ç¥Õ¥©¥ë¥È¤¬ÍѤ¤¤é¤ì¤ë¡£ +が NULL の場合、それぞれのアクセスメソッドとシステムとに適合した +デフォルトが用いられる。 .PP .BR dbopen () -¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç +は、成功した場合 .I DB -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ò¡¢¥¨¥é¡¼¤Î¾ì¹ç NULL ¤òÊÖ¤¹¡£ +構造体へのポインタを、エラーの場合 NULL を返す。 .I DB -¹½Â¤ÂÎ¤Ï +構造体は .I -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤ÎÃæ¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ -¾¯¤Ê¤¯¤È¤â°Ê²¼¤Î¤è¤¦¤Ê¥Õ¥£¡¼¥ë¥É¤ò»ý¤Ã¤Æ¤¤¤ë¡£ +インクルードファイルの中で定義されており、 +少なくとも以下のようなフィールドを持っている。 .sp .in +4n .nf @@ -162,285 +162,285 @@ typedef struct { .fi .in .PP -³ÆÍ×ÁǤˤϡ¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥¿¥¤¥×¤È¡¢ -ÍÍ¡¹¤ÊÆ°ºî¤ò¤¹¤ë´Ø¿ô¤Î¥»¥Ã¥È¤¬µ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ï +各要素には、データベースのタイプと、 +様々な動作をする関数のセットが記述されている。 +これらの関数は .BR dbopen () -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ò°ú¤­¿ô¤Ë¤È¤ë¡£ -¥­¡¼/¥Ç¡¼¥¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ä¥Õ¥é¥°Ãͤò¼è¤ë¤â¤Î¤â¤¢¤ë¡£ +によって返される構造体へのポインタを引き数にとる。 +キー/データ構造体へのポインタやフラグ値を取るものもある。 .TP .I type -ÍѤ¤¤é¤ì¤Æ¤¤¤ë¥¢¥¯¥»¥¹¥á¥½¥Ã¥É (¤È¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È) ¤Î·¿¡£ +用いられているアクセスメソッド (とファイルフォーマット) の型。 .TP .I close -¥­¥ã¥Ã¥·¥å¤µ¤ì¤¿¾ðÊó¤ò¥Ç¥£¥¹¥¯¤ËÁݤ­¤À¤¹¤¿¤á¤Î¥ë¡¼¥Á¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ -³ä¤êÅö¤Æ¤é¤ì¤¿¥ê¥½¡¼¥¹¤ò²òÊü¤·¡¢ÍøÍѤ·¤¿¥Õ¥¡¥¤¥ë(·²)¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ -¥­¡¼/¥Ç¡¼¥¿ÂФ¬¥á¥â¥ê¤Ë¥­¥ã¥Ã¥·¥å¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ +キャッシュされた情報をディスクに掃きだすためのルーチンへのポインタ。 +割り当てられたリソースを解放し、利用したファイル(群)をクローズする。 +キー/データ対がメモリにキャッシュされている場合、 .I close -¤ä +や .I sync -´Ø¿ô¤Ç¤ÎƱ´ü¤Ë¼ºÇÔ¤¹¤ë¤È¡¢¾ðÊó¤ËÌ·½â¤¬À¸¤¸¤ë¤«¾ðÊó¤ò¼º¤¦²ÄǽÀ­¤¬¤¢¤ë¡£ +関数での同期に失敗すると、情報に矛盾が生じるか情報を失う可能性がある。 .I close -¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤· +ルーチンはエラーの場合 \-1 を返し .RI ( errno -¤ò¥»¥Ã¥È¤¹¤ë)¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ +をセットする)、成功すると 0 を返す。 .TP .I del -¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¥­¡¼/¥Ç¡¼¥¿ÂФòºï½ü¤¹¤ë¥ë¡¼¥Á¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ +データベースからキー/データ対を削除するルーチンへのポインタ。 .IP .I flag -°ú¤­¿ô¤Ï¼¡¤ÎÃͤ¬¥»¥Ã¥È¤Ç¤­¤ë¡£ +引き数は次の値がセットできる。 .RS .TP .B R_CURSOR -¥«¡¼¥½¥ë (cursor) ¤¬»²¾È¤·¤Æ¤¤¤ë¥ì¥³¡¼¥É¤òºï½ü¤¹¤ë¡£ -¥«¡¼¥½¥ë¤ÏÁ°¤â¤Ã¤Æ½é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +カーソル (cursor) が参照しているレコードを削除する。 +カーソルは前もって初期化されていなくてはならない。 .RE .IP .I delete -¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤· +ルーチンはエラーの場合 \-1 を返し .RI ( errno -¤ò¥»¥Ã¥È¤¹¤ë)¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¤Þ¤¿»ØÄê¤Î +をセットする)、成功すると 0 を返す。また指定の .I key -¤¬¥Õ¥¡¥¤¥ëÃæ¤Ë̵¤¤¾ì¹ç 1 ¤òÊÖ¤¹¡£ +がファイル中に無い場合 1 を返す。 .TP .I fd -ÍѤ¤¤Æ¤¤¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¥ë¡¼¥Á¥ó -¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ -Ʊ¤¸¥Õ¥¡¥¤¥ë̾ +用いているデータベースのファイルデスクリプタを返すルーチン +へのポインタ。 +同じファイル名 .I file -¤Ç +で .BR dbopen () -¤ò¸Æ¤Ó½Ð¤·¤¿Á´¤Æ¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¤ò¼¨¤¹Ã±°ì¤Î¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤Ï¥í¥Ã¥¯´Ø¿ô +を呼び出した全てのプロセスに対して、 +そのファイルを示す単一のファイルデスクリプタが返される。 +このファイルデスクリプタはロック関数 .BR fcntl (2) -¤È +と .BR flock (2) -¤Ø¤Î°ú¤­¿ô¤È¤·¤Æ°ÂÁ´¤Ë»ÈÍѤǤ­¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤Ï¡¢É¬¤º¤·¤â¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ç -ÍѤ¤¤é¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Î¤¤¤º¤ì¤«¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤Ê¤¯¤Æ¤âÎɤ¤¡£ -¥á¥â¥êÆâ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤Ï¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤Ï̵¤¤¡£ +への引き数として安全に使用できる。 +このファイルデスクリプタは、必ずしもアクセスメソッドで +用いられているファイルのいずれかに関連づけられていなくても良い。 +メモリ内のデータベースにはファイルデスクリプタは無い。 .I fd -¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤· +ルーチンはエラーの場合 \-1 を返し .RI ( errno -¤ò¥»¥Ã¥È¤¹¤ë)¡¢À®¸ù¤¹¤ë¤È¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ +をセットする)、成功するとファイルデスクリプタを返す。 .TP .I get -¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¥­¡¼¤òÍѤ¤¤Æ¥Ç¡¼¥¿¤ò¼è¤ê½Ð¤¹¤¿¤á¤Î -¥ë¡¼¥Á¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ -»ØÄꤷ¤¿ +データベースからキーを用いてデータを取り出すための +ルーチンへのポインタ。 +指定した .I key -¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥Ç¡¼¥¿¤Î¥¢¥É¥ì¥¹¤ÈŤµ¤¬ +に関連づけられたデータのアドレスと長さが .I data -¤¬»²¾È¤¹¤ë¹½Â¤ÂΤËÊÖ¤µ¤ì¤ë¡£ +が参照する構造体に返される。 .I get -¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤· +ルーチンはエラーの場合 \-1 を返し .RI ( errno -¤ò¥»¥Ã¥È¤¹¤ë)¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¤Þ¤¿ +をセットする)、成功すると 0 を返す。また .I key -¤¬¥Õ¥¡¥¤¥ëÃæ¤Ë̵¤¤¾ì¹ç 1 ¤òÊÖ¤¹¡£ +がファイル中に無い場合 1 を返す。 .TP .I put -¥­¡¼/¥Ç¡¼¥¿ÂФò¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËǼ¤á¤ë¥ë¡¼¥Á¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ +キー/データ対をデータベースに納めるルーチンへのポインタ。 .IP .I flag -°ú¤­¿ô¤Ë¤Ï¼¡¤ÎÃͤΤ¦¤Á¤Î¤É¤ì¤«°ì¤Ä¤¬¥»¥Ã¥È¤Ç¤­¤ë¡£ +引き数には次の値のうちのどれか一つがセットできる。 .RS .TP .B R_CURSOR -¥«¡¼¥½¥ë¤¬»²¾È¤·¤Æ¤¤¤ë¥­¡¼/¥Ç¡¼¥¿ÂФòÃÖ¤­´¹¤¨¤ë¡£ -¥«¡¼¥½¥ë¤ÏÁ°¤â¤Ã¤Æ½é´ü²½¤µ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ +カーソルが参照しているキー/データ対を置き換える。 +カーソルは前もって初期化されている必要がある。 .TP .B R_IAFTER .I key -¤Ç»²¾È¤µ¤ì¤ë¥Ç¡¼¥¿¤Îľ¸å¤Ë¡¢ -¿·¤·¤¤¥­¡¼/¥Ç¡¼¥¿ÂФòºî¤Ã¤Æ¥Ç¡¼¥¿¤òÄɲ乤롣 -Äɲ䵤줿¥­¡¼/¥Ç¡¼¥¿ÂФΥ쥳¡¼¥ÉÈÖ¹æ¤Ï +で参照されるデータの直後に、 +新しいキー/データ対を作ってデータを追加する。 +追加されたキー/データ対のレコード番号は .I key -¹½Â¤ÂΤËÊÖ¤µ¤ì¤ë¡£ +構造体に返される。 .RB ( DB_RECNO -¥¢¥¯¥»¥¹ÊýË¡¤Ç¤Î¤ß»È¤¨¤ë¡£) +アクセス方法でのみ使える。) .TP .B R_IBEFORE .I key -¤Ç»²¾È¤µ¤ì¤ë¥Ç¡¼¥¿¤ÎľÁ°¤Ë¡¢ -¿·¤·¤¤¥­¡¼/¥Ç¡¼¥¿ÂФòºî¤Ã¤Æ¥Ç¡¼¥¿¤òÁÞÆþ¤¹¤ë¡£ -Äɲ䵤줿¥­¡¼/¥Ç¡¼¥¿ÂФΥ쥳¡¼¥ÉÈÖ¹æ¤Ï +で参照されるデータの直前に、 +新しいキー/データ対を作ってデータを挿入する。 +追加されたキー/データ対のレコード番号は .I key -¹½Â¤ÂΤËÊÖ¤µ¤ì¤ë¡£ +構造体に返される。 .RB ( DB_RECNO -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ç¤Î¤ß»È¤¨¤ë¡£) +アクセスメソッドでのみ使える。) .TP .B R_NOOVERWRITE -¥­¡¼¤¬¤¢¤é¤«¤¸¤á¸ºß¤·¤Ê¤¤¾ì¹ç¤Ë¸Â¤ê¡¢¿·¤·¤¤¥­¡¼/¥Ç¡¼¥¿ÂФò¤¤¤ì¤ë¡£ +キーがあらかじめ存在しない場合に限り、新しいキー/データ対をいれる。 .TP .B R_SETCURSOR -¥­¡¼/¥Ç¡¼¥¿ÂФòǼ¤á¡¢¤½¤ì¤ò»Ø¤¹¤è¤¦¤Ë¥«¡¼¥½¥ë°ÌÃÖ¤ò¥»¥Ã¥È¤¢¤ë¤¤¤Ï½é´ü -²½¤¹¤ë¡£ +キー/データ対を納め、それを指すようにカーソル位置をセットあるいは初期 +化する。 .RB ( DB_BTREE -¤È +と .B DB_RECNO -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ç¤Î¤ß»È¤¨¤ë¡£) +アクセスメソッドでのみ使える。) .RE .IP .B R_SETCURSOR -¤Ï +は .B DB_BTREE -¤È +と .B DB_RECNO -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ç¤·¤«ÍøÍѤǤ­¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é +アクセスメソッドでしか利用できない。 +なぜなら .B R_SETCURSOR -¤òÍѤ¤¤ë¤Ë¤Ï¡¢Êѹ¹¤µ¤ì¤ë»ö¤Î̵¤¤¸ÇÍ­¤Î½ç½ø¤ò¥­¡¼ -¤¬»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +を用いるには、変更される事の無い固有の順序をキー +が持っていなければならないからである。 .IP .B R_IAFTER -¤È +と .B R_IBEFORE -¤Ï +は .B DB_RECNO -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ç¤·¤«ÍøÍѤǤ­¤Ê¤¤¡£ -¤³¤ì¤é¤ò¼Â¸½¤¹¤ë¤Ë¤Ï¡¢¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤¬ -¿·¤·¤¤¥­¡¼¤òºî¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ -¤³¤ì¤¬À®Î©¤¹¤ë¤Î¤Ï¡¢Î㤨¤Ð¡¢½ç½ø¤Å¤±¤é¤¿ÆÈΩ¤Ê¥ì¥³¡¼¥ÉÈֹ椬 -¥­¡¼¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤è¤¦¤Ê¾ì¹ç¤À¤±¤Ç¤¢¤ë¡£ +アクセスメソッドでしか利用できない。 +これらを実現するには、アクセスメソッドが +新しいキーを作れなければならないからである。 +これが成立するのは、例えば、順序づけらた独立なレコード番号が +キーになっているような場合だけである。 .IP .I put -¥ë¡¼¥Á¥ó¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¡¢¿·¤·¤¤¥­¡¼/¥Ç¡¼¥¿ÂФò -´û¤Ë¸ºß¤¹¤ë¥­¡¼¤òÃÖ¤­´¹¤¨¤ë»ö¤Æ³ÊǼ¤¹¤ëÆ°ºî¤Ç¤¢¤ë¡£ +ルーチンのデフォルトの動作は、新しいキー/データ対を +既に存在するキーを置き換える事て格納する動作である。 .IP .I put -¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤· +ルーチンはエラーの場合 \-1 を返し .RI ( errno -¤ò¥»¥Ã¥È¤¹¤ë)¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¤Þ¤¿ +をセットする)、成功すると 0 を返す。また .I flag -¤Ë +に .B R_NOOVERWRITE -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Æ¥­¡¼¤¬´û¤Ë¸ºß¤¹¤ë¾ì¹ç 1 ¤òÊÖ¤¹¡£ +がセットされていてキーが既に存在する場合 1 を返す。 .TP .I seq -¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¥·¡¼¥±¥ó¥·¥ã¥ë¤Ë¥Ç¡¼¥¿¤ò¼è¤ê½Ð¤¹¤¿¤á¤Î -¥ë¡¼¥Á¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ -¥­¡¼¤Î¥¢¥É¥ì¥¹¤ÈŤµ¤¬ +データベースからシーケンシャルにデータを取り出すための +ルーチンへのポインタ。 +キーのアドレスと長さが .I key -¤¬»²¾È¤¹¤ë¹½Â¤ÂΤËÊÖ¤µ¤ì¤ë¡£¥Ç¡¼¥¿¤Î¥¢¥É¥ì¥¹¤ÈŤµ¤¬ +が参照する構造体に返される。データのアドレスと長さが .I data -¤¬»²¾È¤¹¤ë¹½Â¤ÂΤËÊÖ¤µ¤ì¤ë¡£ +が参照する構造体に返される。 .IP -¥·¡¼¥±¥ó¥·¥ã¥ë¤Ê¥­¡¼/¥Ç¡¼¥¿ÂФμèÆÀ¤Ï¤¤¤Ä¤Ç¤â¹Ô¤¨¤ë¡£¤Þ¤¿ -¡Ö¥«¡¼¥½¥ë¡×¤Î°ÌÃÖ¤Ï +シーケンシャルなキー/データ対の取得はいつでも行える。また +「カーソル」の位置は .IR del , .IR get , .IR put , .I sync -¥ë¡¼¥Á¥ó¤Î¸Æ¤Ó½Ð¤·¤Ë¤Ï±Æ¶Á¤µ¤ì¤Ê¤¤¡£ -¥·¡¼¥±¥ó¥·¥ã¥ë¤Ê¥¹¥­¥ã¥ó¤ÎÅÓÃæ¤Ë¹Ô¤ï¤ì¤¿¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÊѹ¹¤Ï -¥¹¥­¥ã¥ó¤ËÈ¿±Ç¤µ¤ì¤ë¡£¤¹¤Ê¤ï¤Á¡¢¥«¡¼¥½¥ë¤Î¸å¤í¤ËÁÞÆþ¤µ¤ì¤¿¥ì¥³¡¼¥É¤Ï -ÊÖ¤µ¤ì¤Ê¤¤¤¬¡¢¥«¡¼¥½¥ë¤ÎÁ°¤ËÁÞÆþ¤µ¤ì¤¿¥ì¥³¡¼¥É¤ÏÊÖ¤µ¤ì¤ë¡£ +ルーチンの呼び出しには影響されない。 +シーケンシャルなスキャンの途中に行われたデータベースへの変更は +スキャンに反映される。すなわち、カーソルの後ろに挿入されたレコードは +返されないが、カーソルの前に挿入されたレコードは返される。 .IP -¥Õ¥é¥°ÃͤˤÏ\fBɬ¤º\fP°Ê²¼¤Ë¼¨¤¹¤¦¤Á¤Î -¤É¤ì¤«°ì¤Ä¤ò¥»¥Ã¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +フラグ値には\fB必ず\fP以下に示すうちの +どれか一つをセットしなければならない。 .RS .TP .B R_CURSOR -»ØÄꤷ¤¿¥­¡¼¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥Ç¡¼¥¿¤¬ÊÖ¤µ¤ì¤ë¡£ +指定したキーに関連づけられたデータが返される。 .I get -¥ë¡¼¥Á¥ó¤È¤Î°ã¤¤¤Ï¡¢¥«¡¼¥½¥ë¤¬¥­¡¼¤Î°ÌÃ֤˥»¥Ã¥È¤¢¤ë¤¤¤Ï -½é´ü²½¤µ¤ì¤ëÅÀ¤Ç¤¢¤ë¡£ -(Ãí°Õ: +ルーチンとの違いは、カーソルがキーの位置にセットあるいは +初期化される点である。 +(注意: .B DB_BTREE -¥¢¥¯¥»¥¹ÊýË¡¤Ç¤Ï¡¢ÊÖ¤µ¤ì¤¿¥­¡¼¤¬ -ɬ¤º¤·¤â»ØÄꤷ¤¿¥­¡¼¤ËÀµ¤·¤¯¥Þ¥Ã¥Á¤·¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -ÊÖ¤µ¤ì¤¿¥­¡¼¤Ï¡¢»ØÄꤵ¤ì¤¿¥­¡¼¤ËÅù¤·¤¤¤«¤è¤êÂ礭¤¤¤â¤Î¤Î¤¦¤Á -ºÇ¾®¤Î¤â¤Î¤Ë¤Ê¤ë -(Éôʬ¥­¡¼¥Þ¥Ã¥Á¤«Èϰϸ¡º÷¤¬µö²Ä¤µ¤ì¤Æ¤¤¤ë¾ì¹ç)¡£) +アクセス方法では、返されたキーが +必ずしも指定したキーに正しくマッチしないかもしれない。 +返されたキーは、指定されたキーに等しいかより大きいもののうち +最小のものになる +(部分キーマッチか範囲検索が許可されている場合)。) .TP .B R_FIRST -¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºÇ½é¤Î¥­¡¼/¥Ç¡¼¥¿ÂФ¬ÊÖ¤µ¤ì¤ë¡£ -¥«¡¼¥½¥ë¤Ï¤½¤ì¤ò»²¾È¤¹¤ë¤è¤¦¤Ë¥»¥Ã¥È¤Þ¤¿¤Ï½é´ü²½¤µ¤ì¤ë¡£ +データベースの最初のキー/データ対が返される。 +カーソルはそれを参照するようにセットまたは初期化される。 .TP .B R_LAST -¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºÇ¸å¤Î¥­¡¼/¥Ç¡¼¥¿ÂФ¬ÊÖ¤µ¤ì¤ë¡£¥«¡¼¥½¥ë¤Ï¤½¤ì¤ò»²¾È¤¹¤ë -¤è¤¦¤Ë¥»¥Ã¥È¤Þ¤¿¤Ï½é´ü²½¤µ¤ì¤ë¡£ +データベースの最後のキー/データ対が返される。カーソルはそれを参照する +ようにセットまたは初期化される。 .RB ( DB_BTREE -¤È +と .B DB_RECNO -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤À¤±¤Ç»È¤¨¤ë¡£) +アクセスメソッドだけで使える。) .TP .B R_NEXT -¥«¡¼¥½¥ëľ¸å¤Î¥­¡¼/¥Ç¡¼¥¿ÂФò¼èÆÀ¤¹¤ë¡£ -¥«¡¼¥½¥ë¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï +カーソル直後のキー/データ対を取得する。 +カーソルがセットされていない場合は .B R_FIRST -¥Õ¥é¥°¤ÈƱ¤¸¡£ +フラグと同じ。 .TP .B R_PREV -¥«¡¼¥½¥ëľÁ°¤Î¥­¡¼/¥Ç¡¼¥¿ÂФò¼èÆÀ¤¹¤ë¡£ -¥«¡¼¥½¥ë¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï +カーソル直前のキー/データ対を取得する。 +カーソルがセットされていない場合は .B R_LAST -¥Õ¥é¥°¤ÈƱ¤¸¡£ +フラグと同じ。 .RB ( DB_BTREE -¤È +と .B DB_RECNO -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤À¤±¤Ç»È¤¨¤ë¡£) +アクセスメソッドだけで使える。) .RE .IP .B R_LAST -¤È +と .B R_PREV -¤Ï¡¢ +は、 .B DB_BTREE -¤È +と .B DB_RECNO -¥¢¥¯¥»¥¹ÊýË¡¤Ç¤·¤«»È¤¨¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é +アクセス方法でしか使えない。 +なぜなら .B R_SETCURSOR -¤òÍѤ¤¤ë¤Ë¤Ï¡¢Êѹ¹¤µ¤ì¤ë»ö¤Î̵¤¤¸ÇÍ­¤Î½ç½ø¤ò¥­¡¼¤¬»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +を用いるには、変更される事の無い固有の順序をキーが持っていなければならないからである。 .IP .I seq -¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤· +ルーチンはエラーの場合 \-1 を返し .RI ( errno -¤ò¥»¥Ã¥È¤¹¤ë)¡¢ -À®¸ù¤Î¾ì¹ç 0 ¤òÊÖ¤¹¡£ -»ØÄꤷ¤¿¥­¡¼¤ä¥«¥ì¥ó¥È¥­¡¼¤è¤ê¤âÂ礭¤¤/¾®¤µ¤¤¥­¡¼/¥Ç¡¼¥¿ÂФ¬¤Ê¤¤¾ì¹ç¤Ï -1 ¤òÊÖ¤¹¡£ +をセットする)、 +成功の場合 0 を返す。 +指定したキーやカレントキーよりも大きい/小さいキー/データ対がない場合は +1 を返す。 .B DB_RECNO -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤ò»È¤Ã¤Æ¤¤¤Æ¡¢ -¤«¤Ä¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤¬Ê¸»ú·¿¤Î¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤Ç¡¢ -´°À®¤·¤Æ¤¤¤ë¥­¡¼/¥Ç¡¼¥¿ÂФ¬Ìµ¤¤¾ì¹ç¤Ë¤Ï¡¢ +アクセスメソッドを使っていて、 +かつデータベースファイルが文字型のスペシャルファイルで、 +完成しているキー/データ対が無い場合には、 .I seq -¥ë¡¼¥Á¥ó¤Ï 2 ¤òÊÖ¤¹¡£ +ルーチンは 2 を返す。 .TP .I sync -¥­¥ã¥Ã¥·¥å¤µ¤ì¤¿¾ðÊó¤ò¥Ç¥£¥¹¥¯¤ËÁݤ­½Ð¤¹¥ë¡¼¥Á¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ -¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬¥á¥â¥ê¤ÎÃæ¤À¤±¤Ë¤¢¤ë¾ì¹ç¡¢ +キャッシュされた情報をディスクに掃き出すルーチンへのポインタ。 +データベースがメモリの中だけにある場合、 .I sync -¥ë¡¼¥Á¥ó¤Ï²¿¤Î¸ú²Ì¤â¤Ê¤¯¾ï¤ËÀ®¸ù¤¹¤ë¡£ +ルーチンは何の効果もなく常に成功する。 .IP -flag ¤Ë¤Ï°Ê²¼¤ÎÃͤ¬¥»¥Ã¥È¤Ç¤­¤ë¡£ +flag には以下の値がセットできる。 .RS .TP .B R_RECNOSYNC .B DB_RECNO -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤ò»È¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë -¤³¤Î¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢ -recno ¥Õ¥¡¥¤¥ë¤½¤Î¤â¤Î¤Ë¤Ç¤Ï¤Ê¤¯¡¢ -¤½¤Î¥Ù¡¼¥¹¤Ë¤Ê¤Ã¤Æ¤¤¤ë btree ¥Õ¥¡¥¤¥ë¤Ë sync ¤¬¹Ô¤ï¤ì¤ë¡£ -(¾ÜºÙ¤Ï +アクセスメソッドを使っている場合に +このフラグをセットすると、 +recno ファイルそのものにではなく、 +そのベースになっている btree ファイルに sync が行われる。 +(詳細は .BR recno (3) -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç +マニュアルページで .I bfname -¥Õ¥£¡¼¥ë¥É¤òÀâÌÀ¤·¤Æ¤¤¤ëÉôʬ¤ò»²¾È¤Î¤³¤È¡£) +フィールドを説明している部分を参照のこと。) .RE .IP .I sync -¥ë¡¼¥Á¥ó¤Ï¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤· +ルーチンはエラーの場合 \-1 を返し .RI ( errno -¤ò¥»¥Ã¥È¤¹¤ë)¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ -.SS ¥­¡¼/¥Ç¡¼¥¿ÂÐ -Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤Ë¤ª¤¤¤Æ¡¢ -¥­¡¼/¥Ç¡¼¥¿ÂФò¥Ù¡¼¥¹¤Ë¤·¤Æ¥¢¥¯¥»¥¹¤¬¹Ô¤ï¤ì¤ë¡£ -¥­¡¼¤È¥Ç¡¼¥¿¤Î¤¤¤º¤ì¤â¡¢¼¡¤Î¥Ç¡¼¥¿¹½Â¤¤Çµ­½Ò¤µ¤ì¤ë¡£ +をセットする)、成功すると 0 を返す。 +.SS キー/データ対 +全てのファイルタイプにおいて、 +キー/データ対をベースにしてアクセスが行われる。 +キーとデータのいずれも、次のデータ構造で記述される。 .in +4n .nf @@ -451,88 +451,88 @@ typedef struct { .fi .in .I DBT -¹½Â¤ÂΤγÆÍ×ÁǤϼ¡¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +構造体の各要素は次のように定義されている。 .TP .I data -¥Ð¥¤¥Èʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ +バイト文字列へのポインタ。 .TP .I size -¥Ð¥¤¥Èʸ»úÎó¤ÎŤµ¡£ +バイト文字列の長さ。 .PP -¥­¡¼¤È¥Ç¡¼¥¿¤Î¥Ð¥¤¥Èʸ»úÎó¤Ï¡¢ -´ðËÜŪ¤Ë¤Ï̵À©¸Â¤ÎŤµ¤Îʸ»úÎó¤ò»²¾È¤Ç¤­¤ë¤¬¡¢ -¤·¤«¤·¤¤¤º¤ì¤â»ÈÍѲÄǽ¤Ê¥á¥â¥ê¤Ë¼ý¤Þ¤Ã¤Æ¤¤¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ï¥Ð¥¤¥Èʸ»úÎó¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤Ë¤Ä¤¤¤Æ¤Ï -²¿¤âÊݾڤ·¤Æ¤¤¤Ê¤¤»ö¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -.SH ¥¨¥é¡¼ +キーとデータのバイト文字列は、 +基本的には無制限の長さの文字列を参照できるが、 +しかしいずれも使用可能なメモリに収まっていなくてはならない。 +アクセスメソッドはバイト文字列のアラインメントについては +何も保証していない事に注意すること。 +.SH エラー .BR dbopen () -¥ë¡¼¥Á¥ó¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó +ルーチンは失敗するとライブラリルーチン .BR open (2) -¤È +と .BR malloc (3) -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿ +で指定されているエラーに応じた .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£¤¢¤ë¤¤¤Ï°Ê²¼¤ò¥»¥Ã¥È¤¹¤ë¡£ +をセットする。あるいは以下をセットする。 .TP .B [EFTYPE] -¥Õ¥¡¥¤¥ë¤¬Àµ¤·¤¯¥Õ¥©¡¼¥Þ¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +ファイルが正しくフォーマットされていない。 .TP .B [EINVAL] -»ØÄꤷ¤¿¥Ñ¥é¥á¡¼¥¿(¥Ï¥Ã¥·¥å´Ø¿ô¡¢¥Ð¥¤¥ÈËä¤á¤Ê¤É)¤¬¸½ºß¤Î¥Õ¥¡¥¤¥ë»ÅÍÍ¤Ë -¹ç¤Ã¤Æ¤¤¤Ê¤¤¡¢¥Ñ¥é¥á¡¼¥¿¤¬´Ø¿ô¤Ë¤È¤Ã¤Æ̵°ÕÌ£ -(Î㤨¤Ð¤¢¤é¤«¤¸¤á½é´ü²½¤·¤Ê¤¤¤Ç¥«¡¼¥½¥ë¤ò»È¤¦¤È¤«)¡¢ -¥Õ¥¡¥¤¥ë¤È¥½¥Õ¥È¥¦¥§¥¢¤Î¥Ð¡¼¥¸¥ç¥ó¤¬¹ç¤Ã¤Æ¤¤¤Ê¤¤¡£ +指定したパラメータ(ハッシュ関数、バイト埋めなど)が現在のファイル仕様に +合っていない、パラメータが関数にとって無意味 +(例えばあらかじめ初期化しないでカーソルを使うとか)、 +ファイルとソフトウェアのバージョンが合っていない。 .PP .I close -¥ë¡¼¥Á¥ó¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó +ルーチンは失敗するとライブラリルーチン .BR close (2), .BR read (2), .BR write (2), .BR free (3), .BR fsync (2) -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿ +で指定されているエラーに応じた .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ +をセットする。 .PP .IR del , .IR get , .I put -¤È +と .I seq -¥ë¡¼¥Á¥ó¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó +ルーチンは失敗するとライブラリルーチン .BR read (2), .BR write (2), .BR free (3), .BR malloc (3) -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿ +で指定されているエラーに応じた .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ +をセットする。 .PP .I fd -¥ë¡¼¥Á¥ó¤Ï¥á¥â¥êÆâ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÂФ·¼ºÇÔ¤¹¤ë¤È +ルーチンはメモリ内データベースに対し失敗すると .I errno -¤Ë +に .B ENOENT -¤ò¥»¥Ã¥È¤¹¤ë¡£ +をセットする。 .PP .I sync -¥ë¡¼¥Á¥ó¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó +ルーチンは失敗するとライブラリルーチン .BR fsync (2) -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿ +で指定されているエラーに応じた .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ -.SH ¥Ð¥° +をセットする。 +.SH バグ typedef .I DBT -¤Ï ``data base thang''¤Îά¸ì¤Ç¤¢¤ë¤¬¡¢¤³¤ì¤¬»È¤ï¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢ -¤Þ¤À»È¤ï¤ì¤Æ¤¤¤Ê¤¤ÂÅÅö¤Ê̾Á°¤¬»×¤¤ÉÕ¤«¤Ê¤«¤Ã¤¿¤¿¤á¤Ç¤¢¤ë¡£ +は ``data base thang''の略語であるが、これが使われているのは、 +まだ使われていない妥当な名前が思い付かなかったためである。 .PP -¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤ò»È¤Ã¤¿¤ä¤ê¤È¤ê¤Ï¤Ò¤É¤¤Âåʪ¤Ç¤¢¤ê¡¢ -¾­Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ïºï½ü¤µ¤ì¤ë¤À¤í¤¦¡£ +ファイルデスクリプタを使ったやりとりはひどい代物であり、 +将来のバージョンでは削除されるだろう。 .PP -¤É¤Î¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤â¡¢Æ±»þ¥¢¥¯¥»¥¹¡¢¥í¥Ã¥¯¡¢¥È¥é¥ó¥¶¥¯¥·¥ç¥ó -¤Î»ÅÁȤߤÏÈ÷¤¨¤Æ¤¤¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +どのアクセスメソッドも、同時アクセス、ロック、トランザクション +の仕組みは備えていない。 +.SH 関連項目 .BR btree (3), .BR hash (3), .BR mpool (3), diff --git a/release/man3/des_crypt.3 b/release/man3/des_crypt.3 index 21660e1b..ecda9181 100644 --- a/release/man3/des_crypt.3 +++ b/release/man3/des_crypt.3 @@ -13,11 +13,11 @@ .\" by Yuichi SATO .\" .TH DES_CRYPT 3 2007-05-18 "" "Linux Programmer's Manual" -.SH ̾Á° -des_crypt, ecb_crypt, cbc_crypt, des_setparity, DES_FAILED \- ¹â®¤Ê DES °Å¹æ²½ -.SH ½ñ¼° +.SH 名前 +des_crypt, ecb_crypt, cbc_crypt, des_setparity, DES_FAILED \- 高速な DES 暗号化 +.SH 書式 .nf -.\" Sun ¤Î¾ì¹ç¤Ï +.\" Sun の場合は .\" .B #include .B #include .LP @@ -31,104 +31,104 @@ des_crypt, ecb_crypt, cbc_crypt, des_setparity, DES_FAILED \- .LP .BI "int DES_FAILED(int " status ); .fi -.SH ÀâÌÀ +.SH 説明 .BR ecb_crypt () -¤È +と .BR cbc_crypt () -¤Ï +は NBS DES -(Data Encryption Standard, ¥Ç¡¼¥¿°Å¹æ²½µ¬³Ê) ¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤Ï +(Data Encryption Standard, データ暗号化規格) を実装している。 +これらのルーチンは .BR crypt (3) -¤è¤ê¤â¹â®¤Ç¤è¤ê°ìÈÌŪ¤ÊÌÜŪ¤Ë»ÈÍѤǤ­¤ë¡£ -ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤Ï +よりも高速でより一般的な目的に使用できる。 +利用可能であれば、これらのルーチンは DES -¥Ï¡¼¥É¥¦¥§¥¢¤ò»ÈÍѤ¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +ハードウェアを使用することもできる。 .BR ecb_crypt () -¤Ï +は ECB -(Electronic Code Book) ¥â¡¼¥É¤Ç°Å¹æ²½¤¹¤ë¡£ -¤³¤Î¥â¡¼¥É¤Ç¤Ï (¸Ä¡¹¤Î) ¥Ç¡¼¥¿¤Î¥Ö¥í¥Ã¥¯¤òÆÈΩ¤·¤Æ°Å¹æ²½¤¹¤ë +(Electronic Code Book) モードで暗号化する。 +このモードでは (個々の) データのブロックを独立して暗号化する .BR cbc_crypt () -¤Ï +は CBC -(Cipher Block Chaining) ¥â¡¼¥É¤Ç°Å¹æ²½¤¹¤ë¡£ -¤³¤Î¥â¡¼¥É¤Ç¤ÏϢ³¤¹¤ë¥Ö¥í¥Ã¥¯¤ò¸ß¤¤¤ËÏ¢º¿¤µ¤»¤Æ°Å¹æ²½¤¹¤ë¡£ +(Cipher Block Chaining) モードで暗号化する。 +このモードでは連続するブロックを互いに連鎖させて暗号化する。 CBC -¤Ï¥Ö¥í¥Ã¥¯¤ÎÁÞÆþ¡¦ºï½ü¡¦ÃÖ¤­´¹¤¨¤«¤éÊݸ¤ë¡£ -¤Þ¤¿Ê¿Ê¸¤Îµ¬Â§À­¤¬°Å¹æʸ¤Ë¸½¤ì¤Ê¤¤¡£ +はブロックの挿入・削除・置き換えから保護する。 +また平文の規則性が暗号文に現れない。 .LP -¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤Î»ÈÍÑË¡¤ò¼¨¤¹¡£ -Âè 1 °ú¤­¿ô +これらのルーチンの使用法を示す。 +第 1 引き数 .I key -¤Ï¥Ñ¥ê¥Æ¥£ÉÕ¤­¤Î 8 ¥Ð¥¤¥È¤Î°Å¹æ²½¸°¤Ç¤¢¤ë¡£ -¸°¤Î¥Ñ¥ê¥Æ¥£¤òÀßÄꤹ¤ë¤Ë¤Ï +はパリティ付きの 8 バイトの暗号化鍵である。 +鍵のパリティを設定するには .BR des_setparity () -¤ò»È¤¦¤³¤È¡£ +を使うこと。 DES -¤Î¾ì¹ç¡¢¸°¤Î¥Ñ¥ê¥Æ¥£¤Ï³Æ¥Ð¥¤¥È¤ÎºÇ²¼°Ì¥Ó¥Ã¥È¤Ç¤¢¤ë¡£ -Âè 2 °ú¤­¿ô +の場合、鍵のパリティは各バイトの最下位ビットである。 +第 2 引き数 .I data -¤Ï°Å¹æ²½¤Þ¤¿¤ÏÉü¹æ²½¤µ¤ì¤ë¥Ç¡¼¥¿¤ò´Þ¤à¡£ -Âè 3 °ú¤­¿ô +は暗号化または復号化されるデータを含む。 +第 3 引き数 .I datalen -¤Ï +は .I data -¤Î¥Ð¥¤¥ÈŤǤ¢¤ê¡¢8 ¤ÎÇÜ¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Âè 4 °ú¤­¿ô +のバイト長であり、8 の倍数でなければならない。 +第 4 引き数 .I mode -¤Ï¤¤¤¯¤Ä¤«¤ÎÃͤò OR ¤¹¤ë¤³¤È¤ÇºîÀ®¤¹¤ë¡£ -°Å¹æ²½¤ÎÊý¸þ (ÌõÃð: °Å¹æ²½¤Ê¤Î¤«Éü¹æ²½¤Ê¤Î¤«) ¤ò»ØÄꤹ¤ë¤¿¤á¡¢ +はいくつかの値を OR することで作成する。 +暗号化の方向 (訳註: 暗号化なのか復号化なのか) を指定するため、 .BR DES_ENCRYPT -¤Þ¤¿¤Ï +または .BR DES_DECRYPT -¤ò OR ¤¹¤ë¡£ -°Å¹æ²½¤ò¥½¥Õ¥È¥¦¥§¥¢¤Ç¹Ô¤¦¤«¥Ï¡¼¥É¥¦¥§¥¢¤Ç¹Ô¤¦¤«¤ò»ØÄꤹ¤ë¤¿¤á¡¢ +を OR する。 +暗号化をソフトウェアで行うかハードウェアで行うかを指定するため、 .BR DES_HW -¤Þ¤¿¤Ï +または .BR DES_SW -¤ò OR ¤¹¤ë¡£ +を OR する。 .BR DES_HW -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢¤«¤Ä¥Ï¡¼¥É¥¦¥§¥¢¤¬¤Ê¤¤¾ì¹ç¡¢ -°Å¹æ²½¤Ï¥½¥Õ¥È¥¦¥§¥¢¤Ç¼Â¹Ô¤µ¤ì¤Æ¡¢¥ë¡¼¥Á¥ó¤Ï +が指定されていて、かつハードウェアがない場合、 +暗号化はソフトウェアで実行されて、ルーチンは .BR DESERR_NOHWDEVICE -¤òÊÖ¤¹¡£ +を返す。 .BR cbc_crypt () -¤Ë¤ª¤¤¤Æ¡¢°ú¤­¿ô +において、引き数 .I ivec -¤Ï¥Ç¡¼¥¿¥Ö¥í¥Ã¥¯¤òÏ¢º¿¤µ¤»¤ëºÝ¤Î 8 ¥Ð¥¤¥È¤Î½é´ü²½¥Ù¥¯¥È¥ë¤Ç¤¢¤ë¡£ -¤³¤Î°ú¤­¿ô¤Ï¥ë¡¼¥Á¥ó¤«¤éÌá¤ë¤È¤­¤Ë¼¡¤Î½é´ü²½¥Ù¥¯¥È¥ë¤Ë¹¹¿·¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +はデータブロックを連鎖させる際の 8 バイトの初期化ベクトルである。 +この引き数はルーチンから戻るときに次の初期化ベクトルに更新される。 +.SH 返り値 .PD 0 .TP 20 .B DESERR_NONE -¥¨¥é¡¼¤Ê¤·¡£ +エラーなし。 .TP .B DESERR_NOHWDEVICE -°Å¹æ²½¤ÏÀ®¸ù¤·¤¿¤¬¡¢Í׵ᤵ¤ì¤¿¥Ï¡¼¥É¥¦¥§¥¢¤ÎÂå¤ï¤ê¤Ë¥½¥Õ¥È¥¦¥§¥¢¤Ç¼Â¹Ô¤µ¤ì¤¿¡£ +暗号化は成功したが、要求されたハードウェアの代わりにソフトウェアで実行された。 .TP .B DESERR_HWERROR -¥Ï¡¼¥É¥¦¥§¥¢¤Þ¤¿¤Ï¥É¥é¥¤¥Ð¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +ハードウェアまたはドライバでエラーが発生した。 .TP .B DESERR_BADPARAM -¥ë¡¼¥Á¥ó¤Ø¤Î°ú¤­¿ô¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +ルーチンへの引き数が不正である。 .PD .LP -·ë²Ì¤Î¾õÂÖ +結果の状態 .I stat -¤òÍ¿¤¨¤¿¤È¤­¡¢¥Þ¥¯¥í +を与えたとき、マクロ .\" .BR DES_FAILED\c .\" .BR ( stat ) .BI DES_FAILED( stat ) -¤¬ false ¤Ë¤Ê¤ë¤Î¤Ï¡¢ºÇ½é¤Î 2 ¤Ä¤À¤±¤Ç¤¢¤ë¡£ -.\" ¤³¤³¤Þ¤Ç¤¬ Sun ¤Î man ¥Ú¡¼¥¸¤Ç¤¢¤ë¡£ -.\" aeb ¤¬¤¤¤¯¤Ä¤«Äɲäò¹Ô¤Ã¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤Ï libc 4.6.27 °Ê¹ß¤È glibc 2.1 °Ê¹ß¤Ë¸ºß¤¹¤ë¡£ -.SH ½àµò -4.3BSD. POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +が false になるのは、最初の 2 つだけである。 +.\" ここまでが Sun の man ページである。 +.\" aeb がいくつか追加を行った。 +.SH バージョン +これらのルーチンは libc 4.6.27 以降と glibc 2.1 以降に存在する。 +.SH 準拠 +4.3BSD. POSIX.1-2001 にはない。 +.SH 関連項目 .BR des (1), .BR crypt (3), .BR xcrypt (3) diff --git a/release/man3/difftime.3 b/release/man3/difftime.3 index 91888283..188e8d3a 100644 --- a/release/man3/difftime.3 +++ b/release/man3/difftime.3 @@ -32,33 +32,33 @@ .\" Updated & Modified Sat Mar 23 23:57:43 JST 2002 .\" by Yuichi SATO .\" -.\"WORD: epoch µª¸µ +.\"WORD: epoch 紀元 .\" .TH DIFFTIME 3 2010-02-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -difftime \- »þ¹ï¤Î´Ö³Ö¤Î·×»» -.SH ½ñ¼° +.SH 名前 +difftime \- 時刻の間隔の計算 +.SH 書式 .nf .B #include .sp .BI "double difftime(time_t " time1 ", time_t " time0 ); .fi -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR difftime () -¤Ï»þ¹ï \fItime0\fP ¤«¤é -»þ¹ï \fItime1\fP ¤Þ¤Ç¤Î·Ð²á»þ´Ö¤ò +は時刻 \fItime0\fP から +時刻 \fItime1\fP までの経過時間を .I double -·¿¤ÇÊÖ¤¹¡£³Æ¡¹¤Î»þ¹ï¤Ï¥«¥ì¥ó¥À¡¼»þ´Ö¤Ç»ØÄꤹ¤ë¡£ -¤Ä¤Þ¤ê¡¢µª¸µ (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) ¤«¤é¤Î -·Ð²á»þ´Ö¤òÉÃñ°Ì¤Ç»ØÄꤹ¤ë¡£ -.SH ½àµò +型で返す。各々の時刻はカレンダー時間で指定する。 +つまり、紀元 (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) からの +経過時間を秒単位で指定する。 +.SH 準拠 SVr4, 4.3BSD, C89, C99. -.SH Ãí°Õ -POSIX ¥·¥¹¥Æ¥à¤Ç¤Ï +.SH 注意 +POSIX システムでは .I time_t -¤Ï¿ôÃÍ·¿¤Ê¤Î¤Ç¡¢°ú¤­»»¤ÎºÝ¤Ëµ¯¤³¤ë²ÄǽÀ­¤Î¤¢¤ë¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤ò -µ¤¤Ë¤·¤Ê¤¤¾ì¹ç¤Ï¡¢Ã±½ã¤Ë +は数値型なので、引き算の際に起こる可能性のあるオーバーフローを +気にしない場合は、単純に .RS .nf @@ -66,12 +66,12 @@ POSIX .fi .RE -¤ÈÄêµÁ¤Ç¤­¤ë¡£ -¾¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥Ç¡¼¥¿·¿ +と定義できる。 +他のシステムでは、データ型 .I time_t -¤Ë²¿¤«Ê̤Υ¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤¬»È¤ï¤ì¤Æ¤¤¤ë¤³¤È¤¬¤¢¤ê¡¢ -¤½¤Î¾ì¹ç¤Ë¤ÏľÀÜ°ú¤­»»¤ò¹Ô¤¦¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +に何か別のエンコーディングが使われていることがあり、 +その場合には直接引き算を行うことはできない。 +.SH 関連項目 .BR date (1), .BR gettimeofday (2), .BR time (2), diff --git a/release/man3/dirfd.3 b/release/man3/dirfd.3 index 0e19cfa5..82285814 100644 --- a/release/man3/dirfd.3 +++ b/release/man3/dirfd.3 @@ -29,9 +29,9 @@ .\" by Yuichi SATO .\" .TH DIRFD 3 2010-09-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -dirfd \- ¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¹¥È¥ê¡¼¥à¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +dirfd \- ディレクトリ・ストリームのファイル・ディスクリプタを取得する +.SH 書式 .B #include .br .B #include @@ -39,9 +39,9 @@ dirfd \- .BI "int dirfd(DIR *" dirp ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR dirfd (): @@ -51,57 +51,57 @@ glibc .ad l _BSD_SOURCE || _SVID_SOURCE .br -|| /* glibc 2.10 °Ê¹ß: */ +|| /* glibc 2.10 以降: */ .RS 4 (_POSIX_C_SOURCE\ >=\ 200809L || _XOPEN_SOURCE\ >=\ 700) .RE .PD .RE .ad -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR dirfd () -¤Ï¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¹¥È¥ê¡¼¥à +はディレクトリ・ストリーム .I dirp -¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ +に関連づけられたファイル・ディスクリプタを返す。 .LP -¤³¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¹¥È¥ê¡¼¥à¤¬ÆâÉô¤Ç»ÈÍѤ¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¤è¤Ã¤Æ¡¢¥Õ¥¡¥¤¥ë¤Î°ÌÃ֤˰͸¤»¤º¡¢¤«¤Ä¤½¤Î°ÌÃÖ¤òÊѹ¹¤·¤Ê¤¤´Ø¿ô +このディスクリプタはディレクトリ・ストリームが内部で使用するものである。 +よって、ファイルの位置に依存せず、かつその位置を変更しない関数 .BR fstat (2) -¤ä +や .BR fchdir (2) -¤Ê¤É¤Ç¤·¤«Ìò¤ËΩ¤¿¤Ê¤¤¡£ -¤³¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï +などでしか役に立たない。 +このディスクリプタは .BR closedir (3) -¤¬¸Æ¤Ð¤ì¤¿¤È¤­¤Ë¼«Æ°Åª¤Ë¥¯¥í¡¼¥º¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢Éé¤Ç¤Ê¤¤ÃͤΥե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -POSIX.1-2008 ¤Ç¤Ï 2 ¤Ä¤Î¥¨¥é¡¼¤¬µ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¤É¤Á¤é¤Î¥¨¥é¡¼¤âÊÖ¤µ¤ì¤Ê¤¤¡£ +が呼ばれたときに自動的にクローズされる。 +.SH 返り値 +成功すると、負でない値のファイルディスクリプタが返される。 +エラーの場合は \-1 が返される。 +.SH エラー +POSIX.1-2008 では 2 つのエラーが規定されている。 +現在の実装ではどちらのエラーも返されない。 .\" glibc 2.8 .TP .B EINVAL .I dirp -¤¬Í­¸ú¤Ê¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¹¥È¥ê¡¼¥à¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£ +が有効なディレクトリ・ストリームを参照していない。 .TP .B ENOTSUP -¤³¤Î¼ÂÁõ¤Ç¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¥Ç¥£¥ì¥¯¥È¥ê¤È¤Î´ØÏ¢ÉÕ¤±¤¬ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ½àµò +この実装では、ファイルディスクリプタのディレクトリとの関連付けが +サポートされていない。 +.SH 準拠 POSIX.1-2008. -¤³¤Î´Ø¿ô¤Ï BSD ³ÈÄ¥¤Ç¤¢¤Ã¤¿¡£ -4.3BSD-Reno ¤Ë¤Ï¸ºß¤¹¤ë¤¬¡¢4.2BSD ¤Ë¤Ï¸ºß¤·¤Ê¤¤¡£ -.\" libc5 (5.1.2 °Ê¹ß) ¤È glibc2 ¤Ë¸ºß¤¹¤ë¡£ -.SH Ãí°Õ +この関数は BSD 拡張であった。 +4.3BSD-Reno には存在するが、4.2BSD には存在しない。 +.\" libc5 (5.1.2 以降) と glibc2 に存在する。 +.SH 注意 .BR dirfd () -¤Î¥×¥í¥È¥¿¥¤¥×¤¬»ÈÍѲÄǽ¤Ê¤Î¤Ï¡¢ +のプロトタイプが使用可能なのは、 .B _BSD_SOURCE -¤Þ¤¿¤Ï +または .B _SVID_SOURCE -¤¬ÄêµÁ¤µ¤ì¤¿¤È¤­¤Î¤ß¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +が定義されたときのみである。 +.SH 関連項目 .BR open (2), .BR closedir (3), .BR opendir (3), diff --git a/release/man3/div.3 b/release/man3/div.3 index e293e4e5..8cfebeab 100644 --- a/release/man3/div.3 +++ b/release/man3/div.3 @@ -38,9 +38,9 @@ .\" by Yuichi SATO .\" .TH DIV 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -div, ldiv, lldiv, imaxdiv \- integer ·¿¤Î³ä»»¤Î¾¦¤È;¤ê¤ò·×»»¤¹¤ë -.SH ½ñ¼° +.SH 名前 +div, ldiv, lldiv, imaxdiv \- integer 型の割算の商と余りを計算する +.SH 書式 .nf .B #include .sp @@ -56,9 +56,9 @@ div, ldiv, lldiv, imaxdiv \- integer .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .ad l .sp @@ -71,39 +71,39 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR div () -´Ø¿ô¤Ï \fInumerator\fP/\fIdenominator\fP ¤ÎÃͤò·×»»¤¹¤ë¡£ -¾¦¤È;¤ê¤Ï¡¢ -\fIquot\fP (¾¦) ¤È \fIrem\fP (;¤ê) ¤È¤¤¤¦Ì¾Á°¤Î 2 ¤Ä¤Î integer ·¿¥á¥ó¥Ð¤ò´Þ¤à -\fIdiv_t\fP ¤È¤¤¤¦¹½Â¤ÂΤÎÃæ¤ËÊÖ¤µ¤ì¤ë -(¥á¥ó¥Ð¤Î½çÈÖ¤ÏÉÔÄê¤Ç¤¢¤ë)¡£ -¾¦¤Ï 0 ¤Ë¶á¤¤Êý¤Ë´Ý¤á¤é¤ì¤ë¡£ -·ë²Ì¤Ï \fIquot\fP*\fIdenominator\fP+\fIrem\fP = \fInumerator\fP ¤òËþ¤¿¤¹¡£ +関数は \fInumerator\fP/\fIdenominator\fP の値を計算する。 +商と余りは、 +\fIquot\fP (商) と \fIrem\fP (余り) という名前の 2 つの integer 型メンバを含む +\fIdiv_t\fP という構造体の中に返される +(メンバの順番は不定である)。 +商は 0 に近い方に丸められる。 +結果は \fIquot\fP*\fIdenominator\fP+\fIrem\fP = \fInumerator\fP を満たす。 .LP .BR ldiv (), .BR lldiv (), .BR imaxdiv () -´Ø¿ô¤ÏƱÍͤÊÆ°ºî¤ò¤·¡¢ -¾å¤Ë¼¨¤·¤¿·¿¤Î¿ôÃͤò³ä»»¤·¤Æ¡¢¾å¤Ë¼¨¤·¤¿Ì¾Á°¤Î¹½Â¤ÂΤ˷ë²Ì¤òÊÖ¤¹¡£ -¤É¤Î¾ì¹ç¤Ç¤â¥Õ¥£¡¼¥ë¥É \fIquot\fP ¤È \fIrem\fP ¤Ï¡¢ -´Ø¿ô¤Î°ú¤­¿ô¤ÈƱ¤¸·¿¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -\fIdiv_t\fP (¤Ê¤É¤Î) ¹½Â¤ÂΡ£ -.SH ½àµò +関数は同様な動作をし、 +上に示した型の数値を割算して、上に示した名前の構造体に結果を返す。 +どの場合でもフィールド \fIquot\fP と \fIrem\fP は、 +関数の引き数と同じ型である。 +.SH 返り値 +\fIdiv_t\fP (などの) 構造体。 +.SH 準拠 SVr4, 4.3BSD, C89. -´Ø¿ô +関数 .BR lldiv () -¤È +と .BR imaxdiv () -¤Ï C99 ¤ËÄɲ䵤줿¡£ -.SH Îã +は C99 に追加された。 +.SH 例 .nf div_t q = div(\-5, 3); .fi -¤ò·×»»¤¹¤ë¤È¡¢\fIq.quot\fP ¤È \fIq.rem\fP ¤Ï¤½¤ì¤¾¤ì \-1 ¤È \-2 ¤Ë¤Ê¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を計算すると、\fIq.quot\fP と \fIq.rem\fP はそれぞれ \-1 と \-2 になる。 +.SH 関連項目 .BR abs (3), .BR remainder (3) diff --git a/release/man3/dl_iterate_phdr.3 b/release/man3/dl_iterate_phdr.3 index 53d6d9d4..5b53cabd 100644 --- a/release/man3/dl_iterate_phdr.3 +++ b/release/man3/dl_iterate_phdr.3 @@ -27,11 +27,11 @@ .\" by Yuichi SATO .\" .TH DL_ITERATE_PHDR 3 2007-05-18 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -dl_iterate_phdr \- ¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Î¥ê¥¹¥È¤òé¤ë -.SH ½ñ¼° +.SH 名前 +dl_iterate_phdr \- 共有オブジェクトのリストを辿る +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include \fBint dl_iterate_phdr(\fP @@ -40,125 +40,125 @@ dl_iterate_phdr \- \fBsize_t\fP size\fB, void *\fPdata\fB),\fP \fBvoid *\fPdata\fB);\fP .fi -.SH ÀâÌÀ +.SH 説明 .BR dl_iterate_phdr () -´Ø¿ô¤ò»È¤¦¤È¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¼Â¹Ô»þ¤Ë -¤É¤Î¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤ò¥í¡¼¥É¤·¤¿¤«¤ò¸«¤Ä¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +関数を使うと、アプリケーションは実行時に +どの共有オブジェクトをロードしたかを見つけることができる。 .BR dl_iterate_phdr () -´Ø¿ô¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Î¥ê¥¹¥È¤òé¤ê¡¢ -³Æ¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ·¤Æ´Ø¿ô +関数はアプリケーションの共有オブジェクトのリストを辿り、 +各オブジェクトに対して関数 .I callback -¤ò 1 ²ó¤º¤Ä¸Æ¤Ó½Ð¤¹¡£ -¤³¤ì¤ÏÁ´¤Æ¤Î¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤¬½èÍý¤µ¤ì¤ë¤«¡¢ +を 1 回ずつ呼び出す。 +これは全ての共有オブジェクトが処理されるか、 .I callback -¤¬ 0 °Ê³°¤ÎÃͤòÊÖ¤¹¤Þ¤Ç¹Ô¤ï¤ì¤ë¡£ +が 0 以外の値を返すまで行われる。 -³Æ¡¹¤Î +各々の .I callback -¸Æ¤Ó½Ð¤·¤Ï 3 ¤Ä¤Î°ú¤­¿ô¤ò¼õ¤±¼è¤ë: +呼び出しは 3 つの引き数を受け取る: .I info -¤Ï¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ðÊó¤òÊÝ»ý¤¹¤ë¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ +は共有オブジェクトの情報を保持する構造体へのポインタである。 .I size -¤Ï +は .I info -¤Ç»Ø¤µ¤ì¤ë¹½Â¤ÂΤΥµ¥¤¥º¤Ç¤¢¤ë¡£ +で指される構造体のサイズである。 .I data -¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥°¥é¥à¤«¤é +は呼び出し元プログラムから .BR dl_iterate_phdr () -¤Î¸Æ¤Ó½Ð¤·¤Î (Ʊ¤¸¤¯ +の呼び出しの (同じく .I data -¤È¤¤¤¦Ì¾Á°¤Î) Âè 2 °ú¤­¿ô¤È¤·¤ÆÅϤµ¤ì¤ëÃͤΥ³¥Ô¡¼¤Ç¤¢¤ë¡£ +という名前の) 第 2 引き数として渡される値のコピーである。 .I info -°ú¤­¿ô¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ê·¿¤Î¹½Â¤ÂΤǤ¢¤ë¡£ +引き数は、以下のような型の構造体である。 .in +4n .nf struct dl_phdr_info { - ElfW(Addr) dlpi_addr; /* ¥ª¥Ö¥¸¥§¥¯¥È¤Î¥Ù¡¼¥¹¥¢¥É¥ì¥¹ */ - const char *dlpi_name; /* (null ʸ»ú¤Ç½ªÃ¼¤µ¤ì¤¿) - ¥ª¥Ö¥¸¥§¥¯¥È̾ */ - const ElfW(Phdr) *dlpi_phdr; /* ¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î - ELF ¥×¥í¥°¥é¥à¥Ø¥Ã¥À¤Î - ÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿ */ - ElfW(Half) dlpi_phnum; /* \fIdlpi_phdr\fP ¤Î¥¢¥¤¥Æ¥à¿ô */ + ElfW(Addr) dlpi_addr; /* オブジェクトのベースアドレス */ + const char *dlpi_name; /* (null 文字で終端された) + オブジェクト名 */ + const ElfW(Phdr) *dlpi_phdr; /* このオブジェクトの + ELF プログラムヘッダの + 配列へのポインタ */ + ElfW(Half) dlpi_phnum; /* \fIdlpi_phdr\fP のアイテム数 */ }; .fi .in .RI ( ElfW () -¥Þ¥¯¥íÄêµÁ¤Ï°ú¤­¿ô¤ò¥Ï¡¼¥É¥¦¥§¥¢¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ËŬ¤·¤¿ -ELF ¥Ç¡¼¥¿·¿¤Î̾Á°¤ËÊÑ´¹¤¹¤ë¡£ -¤¿¤È¤¨¤Ð¡¢32 ¥Ó¥Ã¥È¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï -ElfW(Addr) ¤Ï¥Ç¡¼¥¿·¿Ì¾ Elf32_Addr ¤òÀ¸À®¤¹¤ë¡£ -¤³¤ì¤é¤Î·¿¤Ë¤Ä¤¤¤Æ¤Î¹¹¤Ë¾ÜºÙ¤Ê¾ðÊó¤Ï¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë -.IR " ¤È " -¤Ë¤¢¤ë¡£ +マクロ定義は引き数をハードウェアアーキテクチャに適した +ELF データ型の名前に変換する。 +たとえば、32 ビットプラットフォームでは +ElfW(Addr) はデータ型名 Elf32_Addr を生成する。 +これらの型についての更に詳細な情報は、ヘッダファイル +.IR " と " +にある。 .I dlpi_addr -¥Õ¥£¡¼¥ë¥É¤Ï¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Î¥Ù¡¼¥¹¥¢¥É¥ì¥¹ -(¤Ä¤Þ¤ê¡¢¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Î²¾ÁÛ¥á¥â¥ê¥¢¥É¥ì¥¹¤È¡¢ -¥Õ¥¡¥¤¥ë (¤³¤Î¥Õ¥¡¥¤¥ë¤«¤é¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤¬¥í¡¼¥É¤µ¤ì¤ë) ¤Ë¤ª¤±¤ë -¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Î¥ª¥Õ¥»¥Ã¥È¤È¤Îº¹Ê¬) ¤òɽ¤¹¡£ +フィールドは共有オブジェクトのベースアドレス +(つまり、共有オブジェクトの仮想メモリアドレスと、 +ファイル (このファイルから共有オブジェクトがロードされる) における +共有オブジェクトのオフセットとの差分) を表す。 .I dlpi_name -¤Ï null ʸ»ú¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ç¤¢¤ê¡¢ -¤³¤Î¥Ñ¥¹Ì¾¤Î¥Õ¥¡¥¤¥ë¤«¤é¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤¬¥í¡¼¥É¤µ¤ì¤ë¡£ +は null 文字で終端された文字列であり、 +このパス名のファイルから共有オブジェクトがロードされる。 .I dlpi_phdr -¤È +と .I dlpi_phnum -¥Õ¥£¡¼¥ë¥É¤Î°ÕÌ£¤òÍý²ò¤¹¤ë¤Ë¤Ï¡¢ -ELF ¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤¬´ö¤Ä¤«¤Î¥»¥°¥á¥ó¥È¤«¤é¹½À®¤µ¤ì¤Æ¤¤¤ë¤³¤È¤È¡¢ -³Æ¥»¥°¥á¥ó¥È¤¬¤½¤ì¤ËÂбþ¤¹¤ë¥×¥í¥°¥é¥à¥Ø¥Ã¥À -(¤½¤Î¥»¥°¥á¥ó¥È¤òÀâÌÀ¤¹¤ë) ¤ò»ý¤Ã¤Æ¤¤¤ë¤³¤È¤òÃΤäƤ¤¤ëɬÍפ¬¤¢¤ë¡£ +フィールドの意味を理解するには、 +ELF 共有オブジェクトが幾つかのセグメントから構成されていることと、 +各セグメントがそれに対応するプログラムヘッダ +(そのセグメントを説明する) を持っていることを知っている必要がある。 .I dlpi_phdr -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¤³¤Î¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Î¥×¥í¥°¥é¥à¥Ø¥Ã¥À¤ÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +フィールドは、この共有オブジェクトのプログラムヘッダの配列へのポインタである。 .I dlpi_phnum -¤Ï¡¢¤³¤ÎÇÛÎó¤Î¥µ¥¤¥º¤òɽ¤¹¡£ +は、この配列のサイズを表す。 -¤³¤ì¤é¤Î¥×¥í¥°¥é¥à¥Ø¥Ã¥À¤Ï°Ê²¼¤Î¤è¤¦¤Ê·Á¼°¤Î¹½Â¤ÂΤǤ¢¤ë: +これらのプログラムヘッダは以下のような形式の構造体である: .in +4n .nf typedef struct { - Elf32_Word p_type; /* ¥»¥°¥á¥ó¥È¤Î·¿ */ - Elf32_Off p_offset; /* ¥»¥°¥á¥ó¥È¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È */ - Elf32_Addr p_vaddr; /* ¥»¥°¥á¥ó¥È¤Î²¾ÁÛ¥¢¥É¥ì¥¹ */ - Elf32_Addr p_paddr; /* ¥»¥°¥á¥ó¥È¤ÎʪÍý¥¢¥É¥ì¥¹ */ - Elf32_Word p_filesz; /* ¥Õ¥¡¥¤¥ë¤Ë¤ª¤±¤ë¥»¥°¥á¥ó¥È¥µ¥¤¥º */ - Elf32_Word p_memsz; /* ¥á¥â¥ê¤Ë¤ª¤±¤ë¥»¥°¥á¥ó¥È¥µ¥¤¥º */ - Elf32_Word p_flags; /* ¥»¥°¥á¥ó¥È¥Õ¥é¥° */ - Elf32_Word p_align; /* ¥»¥°¥á¥ó¥È¤ÎÇÛÃÖ (alignment) */ + Elf32_Word p_type; /* セグメントの型 */ + Elf32_Off p_offset; /* セグメントのファイルオフセット */ + Elf32_Addr p_vaddr; /* セグメントの仮想アドレス */ + Elf32_Addr p_paddr; /* セグメントの物理アドレス */ + Elf32_Word p_filesz; /* ファイルにおけるセグメントサイズ */ + Elf32_Word p_memsz; /* メモリにおけるセグメントサイズ */ + Elf32_Word p_flags; /* セグメントフラグ */ + Elf32_Word p_align; /* セグメントの配置 (alignment) */ } Elf32_Phdr; .fi .in -ÆÃÄê¤Î¥×¥í¥°¥é¥à¥Ø¥Ã¥À +特定のプログラムヘッダ .I x -¤Î²¾ÁÛ¥á¥â¥ê¤Ë¤ª¤±¤ë°ÌÃ֤ϡ¢°Ê²¼¤Î¼°¤Ç·×»»¤Ç¤­¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È: +の仮想メモリにおける位置は、以下の式で計算できる点に注意すること: .nf addr == info\->dlpi_addr + info\->dlpi_phdr[x].p_vaddr; .fi -.SH ÊÖ¤êÃÍ +.SH 返り値 .BR dl_iterate_phdr () -´Ø¿ô¤ÏºÇ¸å¤Î +関数は最後の .I callback -¤Î¸Æ¤Ó½Ð¤·¤ÇÊÖ¤µ¤ì¤¿ÃͤòÊÖ¤¹¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +の呼び出しで返された値を返す。 +.SH バージョン .BR dl_iterate_phdr () -¤Ï glibc ¤Î¥Ð¡¼¥¸¥ç¥ó 2.2.4 °Ê¹ß¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò +は glibc のバージョン 2.2.4 以降でサポートされている。 +.SH 準拠 .BR dl_iterate_phdr () -´Ø¿ô¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò¹Í¤¨¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤ÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -.SH Îã -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤¬¥í¡¼¥É¤µ¤ì¤¿ -¥Ñ¥¹Ì¾¤Î°ìÍ÷¤òɽ¼¨¤¹¤ë¡£ -³Æ¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ä¤¤¤Æ¡¢¤³¤Î¥×¥í¥°¥é¥à¤Ï -¥ª¥Ö¥¸¥§¥¯¥È¤Î ELF ¥»¥°¥á¥ó¥È¤¬¥í¡¼¥É¤µ¤ì¤¿ -²¾ÁÛ¥¢¥É¥ì¥¹¤Î°ìÍ÷¤òɽ¼¨¤¹¤ë¡£ +関数は Linux 固有であり、移植を考えたアプリケーションでは避けるべきである。 +.SH 例 +以下のプログラムは、共有オブジェクトがロードされた +パス名の一覧を表示する。 +各共有オブジェクトについて、このプログラムは +オブジェクトの ELF セグメントがロードされた +仮想アドレスの一覧を表示する。 .nf #define _GNU_SOURCE @@ -188,12 +188,12 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ldd (1), .BR objdump (1), .BR readelf (1), .BR dlopen (3), .BR elf (5), .BR ld.so (8), -¥ª¥ó¥é¥¤¥ó¤Î¤¤¤í¤¤¤í¤Ê¾ì½ê¤ÇÆþ¼ê¤Ç¤­¤ë +オンラインのいろいろな場所で入手できる .I "Executable and Linking Format Specification" diff --git a/release/man3/dlopen.3 b/release/man3/dlopen.3 index 4f644b6c..0c2d0433 100644 --- a/release/man3/dlopen.3 +++ b/release/man3/dlopen.3 @@ -44,15 +44,15 @@ .\" Updated 2006-01-20, Akihiro MOTOKI .\" Updated 2009-03-02, Akihiro MOTOKI, LDP v3.19 .\" -.\"WORD: linker ¥ê¥ó¥« -.\"WORD: dynamic linking ưŪ¥ê¥ó¥¯ -.\"WORD: dynamic library ưŪ¥é¥¤¥Ö¥é¥ê +.\"WORD: linker リンカ +.\"WORD: dynamic linking 動的リンク +.\"WORD: dynamic library 動的ライブラリ .\" .TH DLOPEN 3 2008-12-06 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -dlclose, dlerror, dlopen, dlsym \- ưŪ¥ê¥ó¥¯¤ò¹Ô¤¦¥í¡¼¥À¤Ø¤Î -¥×¥í¥°¥é¥ß¥ó¥°¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ -.SH ½ñ¼° +.SH 名前 +dlclose, dlerror, dlopen, dlsym \- 動的リンクを行うローダへの +プログラミングインターフェース +.SH 書式 .B #include .sp .BI "void *dlopen(const char *" filename ", int " flag ); @@ -63,291 +63,291 @@ dlclose, dlerror, dlopen, dlsym \- ưŪ .sp .BI "int dlclose(void *" handle ); .sp -\fI\-ldl\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-ldl\fP でリンクする。 +.SH 説明 .BR dlopen (), .BR dlsym (), .BR dlclose (), .BR dlerror () -¤Î 4¤Ä¤Î´Ø¿ô¤Ï¡¢Æ°Åª¥ê¥ó¥¯ (dynamic linking) ¤ò¹Ô¤¦¥í¡¼¥À¤Ø¤Î -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò¼ÂÁõ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +の 4つの関数は、動的リンク (dynamic linking) を行うローダへの +インタフェースを実装したものである。 .SS "dlerror()" -´Ø¿ô +関数 .BR dlerror () -¤Ï¡¢Á°²ó +は、前回 .BR dlerror () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¸å¤Ë¡¢ +が呼び出された後に、 .BR dlopen (), .BR dlsym (), .BR dlclose () -¤Î¤¤¤º¤ì¤«¤ÇºÇ¸å¤ËȯÀ¸¤·¤¿¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤ÎÀâÌÀ¥á¥Ã¥»¡¼¥¸¤òÊÖ¤¹¡£ -½é´ü²½¸å¤Þ¤¿¤ÏÁ°²ó¸Æ¤Ó½Ð¤µ¤ì¤¿¸å¤Ç¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤Æ¤¤¤Ê¤±¤ì¤Ð NULL ¤òÊÖ¤¹¡£ +のいずれかで最後に発生したエラーについての説明メッセージを返す。 +初期化後または前回呼び出された後で、エラーが発生していなければ NULL を返す。 .SS "dlopen()" -´Ø¿ô +関数 .BR dlopen () -¤Ï¡¢NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó +は、NULL 終端された文字列 .I filename -¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë̾¤ÎưŪ¥é¥¤¥Ö¥é¥ê (dynamic library) ¤ò¥í¡¼¥É¤·¡¢ -¤½¤ÎưŪ¥é¥¤¥Ö¥é¥ê¤Ø¤ÎÆâÉô¡Ö¥Ï¥ó¥É¥ë¡×¤òÊÖ¤¹¡£ +で指定されたファイル名の動的ライブラリ (dynamic library) をロードし、 +その動的ライブラリへの内部「ハンドル」を返す。 .I filename -¤¬ NULL ¤Î¾ì¹ç¡¢¥á¥¤¥ó¡¦¥×¥í¥°¥é¥à¤Ø¤Î¥Ï¥ó¥É¥ë¤¬ÊÖ¤µ¤ì¤ë¡£ +が NULL の場合、メイン・プログラムへのハンドルが返される。 .I filename -¤¬¥¹¥é¥Ã¥·¥å ("/") ¤ò´Þ¤à¾ì¹ç¡¢(ÁêÂФ«ÀäÂФ«¤Î)¥Ñ¥¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢Æ°Åª¥ê¥ó¥«¤Ï°Ê²¼¤Î¼ê½ç¤Ç¥é¥¤¥Ö¥é¥ê¤ò¸¡º÷¤¹¤ë -(¾ÜºÙ¤Ï +がスラッシュ ("/") を含む場合、(相対か絶対かの)パス名として解釈される。 +それ以外の場合、動的リンカは以下の手順でライブラリを検索する +(詳細は .BR ld.so (8) -¤ò»²¾È): +を参照): .IP o 4 -(ELF ¤Î¤ß) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥°¥é¥à¤Î¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ë DT_RPATH ¥¿¥°¤¬´Þ¤Þ¤ì¤Æ¤ª¤ê¡¢ -DT_RUNPATH ¥¿¥°¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢DT_RPATH ¥¿¥°¤Ë½ñ¤«¤ì¤Æ¤¤¤ë -¥Ç¥£¥ì¥¯¥È¥ê¡¦¥ê¥¹¥È¤ò¸¡º÷¤¹¤ë¡£ +(ELF のみ) 呼び出し元プログラムの実行ファイルに DT_RPATH タグが含まれており、 +DT_RUNPATH タグが含まれていない場合、DT_RPATH タグに書かれている +ディレクトリ・リストを検索する。 .IP o -¥×¥í¥°¥é¥à¤Î³«»Ï»þ¤Ë´Ä¶­ÊÑ¿ô +プログラムの開始時に環境変数 .B LD_LIBRARY_PATH -¤Ë¥³¥í¥ó¶èÀÚ¤ê¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢ -¤³¤Î´Ä¶­ÊÑ¿ô¤ËÄêµÁ¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤¬¸¡º÷¤µ¤ì¤ë -(¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÍýͳ¤Ç¡¢¤³¤ÎÊÑ¿ô¤Ï set-UID ¤ä set-GID ¤µ¤ì¤¿ -¥×¥í¥°¥é¥à¤Î¾ì¹ç¤Ï̵»ë¤µ¤ì¤ë)¡£ +にコロン区切りのディレクトリのリストが定義されていれば、 +この環境変数に定義されたディレクトリが検索される +(セキュリティ上の理由で、この変数は set-UID や set-GID された +プログラムの場合は無視される)。 .IP o -(ELF ¤Î¤ß) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥°¥é¥à¤Î¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ë DT_RUNPATH ¥¿¥°¤¬´Þ¤Þ¤ì¤Æ -¤¤¤ë¾ì¹ç¡¢¤½¤Î¥¿¥°¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¡¦¥ê¥¹¥È¤ò¸¡º÷¤¹¤ë¡£ +(ELF のみ) 呼び出し元プログラムの実行ファイルに DT_RUNPATH タグが含まれて +いる場合、そのタグに書かれているディレクトリ・リストを検索する。 .IP o -¥­¥ã¥Ã¥·¥å¥Õ¥¡¥¤¥ë +キャッシュファイル .I /etc/ld.so.cache -¤ÎÃæ¤Ë +の中に .I filename -¤Î¥¨¥ó¥È¥ê¤¬Æþ¤Ã¤Æ¤¤¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë +のエントリが入っているかをチェックする .RB ( /etc/ld.so.cache -¤Ï +は .BR ldconfig (8) -¤Ë¤è¤Ã¤Æ´ÉÍý¤µ¤ì¤Æ¤¤¤ë)¡£ +によって管理されている)。 .IP o -¥Ç¥£¥ì¥¯¥È¥ê +ディレクトリ .I /lib -¤È +と .I /usr/lib -¤ò¤³¤Î½çÈ֤Ǹ¡º÷¤¹¤ë¡£ +をこの順番で検索する。 .PP -¤½¤Î¥é¥¤¥Ö¥é¥ê¤¬Â¾¤Î¶¦Í­¥é¥¤¥Ö¥é¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ -°Í¸¤·¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥ê¤âưŪ¥ê¥ó¥«¤¬Æ±¤¸¸¡º÷¥ë¡¼¥ë¤Ë´ð¤Å¤¤¤Æ -¼«Æ°Åª¤Ë¥í¡¼¥É¤¹¤ë (¤½¤ì¤é¤Î¥é¥¤¥Ö¥é¥ê¤Ë¤µ¤é¤Ë°Í¸´Ø·¸¤¬¤¢¤ë¾ì¹ç¤Ê¤É¤Ï -¤³¤Î½èÍý¤ÏºÆµ¢Åª¤Ë¹Ô¤ï¤ì¤ë)¡£ +そのライブラリが他の共有ライブラリに依存している場合は、 +依存しているライブラリも動的リンカが同じ検索ルールに基づいて +自動的にロードする (それらのライブラリにさらに依存関係がある場合などは +この処理は再帰的に行われる)。 .PP .I flag -¤Ë¤Ï°Ê²¼¤Î 2 ¤Ä¤ÎÃͤΤ¤¤º¤ì¤«¤ò´Þ¤á¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤: +には以下の 2 つの値のいずれかを含めなければならない: .TP .B RTLD_LAZY -lazy binding (¼êÈ´¤­¤Ê¥·¥ó¥Ü¥ë¤Î·ë¤ÓÉÕ¤±) ¤¬¹Ô¤¦¡£ -¥·¥ó¥Ü¥ë¤Î²ò·è¤Ï¤½¤Î¥·¥ó¥Ü¥ë¤ò»²¾È¤¹¤ë¥³¡¼¥É¤¬¼Â¹Ô¤µ¤ì¤ë¤È¤­¤Ë¤Î¤ß -¹Ô¤ï¤ì¤ë¡£¥·¥ó¥Ü¥ë¤¬°ìÅ٤⻲¾È¤µ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¥·¥ó¥Ü¥ë¤Ï -²ò·è¤µ¤ì¤Ê¤¤¤Þ¤Þ¤È¤Ê¤ë¡£ -(lazy binding ¤Ï´Ø¿ô»²¾È¤Ë¤Ä¤¤¤Æ¤Î¤ß¼Â»Ü¤µ¤ì¤ë; ÊÑ¿ô¤Ø¤Î»²¾È¤Ï¾ï¤Ë -¥é¥¤¥Ö¥é¥ê¤¬¥í¡¼¥É¤µ¤ì¤¿»þÅÀ¤Çľ¤Á¤Ë²ò·è¤µ¤ì¤ë¡£) +lazy binding (手抜きなシンボルの結び付け) が行う。 +シンボルの解決はそのシンボルを参照するコードが実行されるときにのみ +行われる。シンボルが一度も参照されなかった場合には、そのシンボルは +解決されないままとなる。 +(lazy binding は関数参照についてのみ実施される; 変数への参照は常に +ライブラリがロードされた時点で直ちに解決される。) .TP .B RTLD_NOW -¤³¤ÎÃͤ¬»ØÄꤵ¤ì¤ë¤«¡¢´Ä¶­ÊÑ¿ô +この値が指定されるか、環境変数 .B LD_BIND_NOW -¤Ë¶õ¤Ç¤Ê¤¤Ê¸»úÎó¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ -¥é¥¤¥Ö¥é¥êÃæ¤Î̤ÄêµÁ¤Î¥·¥ó¥Ü¥ë¤òÁ´¤Æ²ò·è¤·¤Æ¤«¤é +に空でない文字列が設定された場合、 +ライブラリ中の未定義のシンボルを全て解決してから .BR dlopen () -¤ÏÉüµ¢¤¹¤ë¡£²ò·è¤Ç¤­¤Ê¤«¤Ã¤¿¤È¤­¤Ë¤Ï¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ +は復帰する。解決できなかったときにはエラーが返される。 .PP -°Ê²¼¤ÎÃͤΤ¦¤Á 0 ¸Ä°Ê¾å¤òÏÀÍýÏ (OR) ¤Î·Á¤Ç +以下の値のうち 0 個以上を論理和 (OR) の形で .I flag -¤ËÄɲ乤뤳¤È¤â¤Ç¤­¤ë: +に追加することもできる: .TP .B RTLD_GLOBAL -¤³¤Î¥é¥¤¥Ö¥é¥ê¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥·¥ó¥Ü¥ë¤¬¡¢¤³¤ì¤è¤ê¸å¤Ç¥í¡¼¥É¤µ¤ì¤ë -¥é¥¤¥Ö¥é¥ê¤Î¥·¥ó¥Ü¥ë²ò·è¤ÇÍøÍѤǤ­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +このライブラリで定義されているシンボルが、これより後でロードされる +ライブラリのシンボル解決で利用できるようになる。 .TP .B RTLD_LOCAL -¤³¤Î¥Õ¥é¥°¤Ï +このフラグは .B RTLD_GLOBAL -¤ÎÈ¿ÂФΰÕÌ£¤Ç¤¢¤ê¡¢¤É¤Á¤é¤Î¥Õ¥é¥°¤â»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï -¤³¤Á¤é¤¬¥Ç¥Õ¥©¥ë¥È¤È¤Ê¤ë¡£ -¤³¤Î¥é¥¤¥Ö¥é¥ê¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥·¥ó¥Ü¥ë¤Ï¡¢¤³¤ì¤è¤ê¸å¤Ç¥í¡¼¥É¤µ¤ì¤ë -¥é¥¤¥Ö¥é¥ê¤Ç¤Î¥·¥ó¥Ü¥ë»²¾È¤ÇÍøÍѤǤ­¤Ê¤¤¡£ +の反対の意味であり、どちらのフラグも指定されなかった場合は +こちらがデフォルトとなる。 +このライブラリで定義されているシンボルは、これより後でロードされる +ライブラリでのシンボル参照で利用できない。 .TP -.BR RTLD_NODELETE " (glibc 2.2 °Ê¹ß)" +.BR RTLD_NODELETE " (glibc 2.2 以降)" .BR dlclose () -Ãæ¤Ë¤½¤Î¥é¥¤¥Ö¥é¥ê¤ò¥¢¥ó¥í¡¼¥É¤·¤Ê¤¤¡£ -¤½¤Î¤¿¤á¡¢Æ±¤¸¥é¥¤¥Ö¥é¥ê¤ò¤³¤ì°Ê¹ß¤Ë +中にそのライブラリをアンロードしない。 +そのため、同じライブラリをこれ以降に .BR dlopen () -¤ÇºÆÅÙ¥í¡¼¥É¤·¤¿¾ì¹ç¤Ë¡¢¥é¥¤¥Ö¥é¥êÆâ¤ÎÀÅŪÊÑ¿ô¤ÏºÆ½é´ü²½¤µ¤ì¤Ê¤¤¡£ -¤³¤Î¥Õ¥é¥°¤Ï POSIX.1-2001 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -.\" (¤·¤«¤· Solaris ¤Ë¸ºß¤¹¤ë) +で再度ロードした場合に、ライブラリ内の静的変数は再初期化されない。 +このフラグは POSIX.1-2001 では規定されていない。 +.\" (しかし Solaris に存在する) .TP -.BR RTLD_NOLOAD " (glibc 2.2 °Ê¹ß)" -¤½¤Î¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤·¤Ê¤¤¡£ -¤³¤Î¥Õ¥é¥°¤Ï¤½¤Î¥é¥¤¥Ö¥é¥ê¤¬¤¹¤Ç¤ËÁȤ߹þ¤Þ¤ì¤Æ¤¤¤ë¤«¤ò¸¡ºº¤¹¤ë¤Î¤Ë -ÍøÍѤǤ­¤ë +.BR RTLD_NOLOAD " (glibc 2.2 以降)" +そのライブラリをロードしない。 +このフラグはそのライブラリがすでに組み込まれているかを検査するのに +利用できる .RB ( dlopen () -¤Ï¡¢¥é¥¤¥Ö¥é¥ê¤¬ÁȤ߹þ¤Þ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð NULL ¤òÊÖ¤·¡¢ -¤¹¤Ç¤ËÁȤ߹þ¤Þ¤ì¤Æ¤¤¤ì¤Ð¤½¤Î¥é¥¤¥Ö¥é¥ê¤Î¥Ï¥ó¥É¥ë¤òÊÖ¤¹)¡£ -¤Þ¤¿¡¢¤¹¤Ç¤Ë¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥ê¤Î¥Õ¥é¥°¤ò¾º³Ê¤µ¤»¤ë¤Î¤Ë¤â -ÍøÍѤǤ­¤ë¡£Î㤨¤Ð¡¢²áµî¤Ë +は、ライブラリが組み込まれていなければ NULL を返し、 +すでに組み込まれていればそのライブラリのハンドルを返す)。 +また、すでにロードされているライブラリのフラグを昇格させるのにも +利用できる。例えば、過去に .B RTLD_LOCAL -¤Ç¥í¡¼¥É¤·¤¿¥é¥¤¥Ö¥é¥ê¤ò +でロードしたライブラリを .BR RTLD_NOLOAD\ |\ RTLD_GLOBAL -¤ÇºÆ¥ª¡¼¥×¥ó¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï POSIX.1-2001 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -.\" (¤·¤«¤· Solaris ¤Ë¸ºß¤¹¤ë) +で再オープンすることができる。 +このフラグは POSIX.1-2001 では規定されていない。 +.\" (しかし Solaris に存在する) .TP -.BR RTLD_DEEPBIND " (glibc 2.3.4 °Ê¹ß)" +.BR RTLD_DEEPBIND " (glibc 2.3.4 以降)" .\" Inimitably described by UD in .\" http://sources.redhat.com/ml/libc-hacker/2004-09/msg00083.html. -¤³¤Î¥é¥¤¥Ö¥é¥êÆâ¤Î¥·¥ó¥Ü¥ë¤Î»²¾ÈÎΰè¤ò¥°¥í¡¼¥Ð¥ëÎΰè¤è¤ê¤âÁ°¤ËÇÛÃÖ¤¹¤ë¡£ -¤Ä¤Þ¤ê¡¢Æ⢷¿¤Î¥é¥¤¥Ö¥é¥ê¤Ç¤Ï¡¢¤¹¤Ç¤Ë¥í¡¼¥É¤µ¤ì¤¿¥é¥¤¥Ö¥é¥ê¤Ë´Þ¤Þ¤ì¤ë -Ʊ¤¸Ì¾Á°¤Î¥°¥í¡¼¥Ð¥ë¤Ê¥·¥ó¥Ü¥ë¤è¤ê¤â¼«¥é¥¤¥Ö¥é¥êÆâ¤Î¥·¥ó¥Ü¥ë¤¬Í¥À褷¤Æ -»È¤ï¤ì¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï POSIX.1-2001 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +このライブラリ内のシンボルの参照領域をグローバル領域よりも前に配置する。 +つまり、内蔵型のライブラリでは、すでにロードされたライブラリに含まれる +同じ名前のグローバルなシンボルよりも自ライブラリ内のシンボルが優先して +使われる。 +このフラグは POSIX.1-2001 では規定されていない。 .PP .I filename -¤¬ NULL ¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¾ì¹ç¤Ï¡¢ -ÊÖ¤µ¤ì¤ë¥Ï¥ó¥É¥ë¤Ï¥á¥¤¥ó¡¦¥×¥í¥°¥é¥à¤Î¤â¤Î¤Ë¤Ê¤ë¡£ -¤³¤Î¥Ï¥ó¥É¥ë¤¬ +が NULL ポインタである場合は、 +返されるハンドルはメイン・プログラムのものになる。 +このハンドルが .BR dlsym () -¤ËÅϤµ¤ì¤ë¤È¡¢¥·¥ó¥Ü¥ë¤Î¸¡º÷¤Ï¡¢¥á¥¤¥ó¡¦¥×¥í¥°¥é¥àÆâ¡¢ -¥×¥í¥°¥é¥à¤Îµ¯Æ°»þ¤Ë¥í¡¼¥É¤µ¤ì¤ëÁ´¤Æ¤Î¶¦Í­¥é¥¤¥Ö¥é¥ê¡¢ +に渡されると、シンボルの検索は、メイン・プログラム内、 +プログラムの起動時にロードされる全ての共有ライブラリ、 .BR dlopen () -¤Ë¤è¤Ã¤Æ +によって .B RTLD_GLOBAL -¥Õ¥é¥°ÉÕ¤­¤Ç¥í¡¼¥É¤µ¤ì¤¿Á´¤Æ¤Î¶¦Í­¥é¥¤¥Ö¥é¥ê¡¢¤Î½ç½ø¤Ç¹Ô¤ï¤ì¤ë¡£ +フラグ付きでロードされた全ての共有ライブラリ、の順序で行われる。 .PP -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥é¥¤¥Ö¥é¥êÃæ¤Ç¤Î³°Éô»²¾È¤Ï¡¢ -¤½¤Î¥é¥¤¥Ö¥é¥ê¤Î°Í¸¥ê¥¹¥È¤Ë¤¢¤ë¥é¥¤¥Ö¥é¥ê¤«¡¢ +オープンされたライブラリ中での外部参照は、 +そのライブラリの依存リストにあるライブラリか、 .B RTLD_GLOBAL -¥Õ¥é¥°ÉÕ¤­¤Ç´û¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤Æ²ò·è¤µ¤ì¤ë¡£ -¼Â¹Ô¥Õ¥¡¥¤¥ë¤¬ "\-rdynamic" ¥Õ¥é¥° ("\-\-export\-dynamic" ¤âƱµÁ) -ÉÕ¤­¤Ç¥ê¥ó¥¯¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¼Â¹Ô¥Õ¥¡¥¤¥ëÃæ¤Î¥°¥í¡¼¥Ð¥ë¥·¥ó¥Ü¥ë¤â¡¢ -ưŪ¤Ë¥í¡¼¥É¤µ¤ì¤ë¥é¥¤¥Ö¥é¥êÆâ¤Î»²¾È²ò·è¤ËÍѤ¤¤é¤ì¤ë¡£ +フラグ付きで既にオープンされているライブラリを使って解決される。 +実行ファイルが "\-rdynamic" フラグ ("\-\-export\-dynamic" も同義) +付きでリンクされている場合は、実行ファイル中のグローバルシンボルも、 +動的にロードされるライブラリ内の参照解決に用いられる。 .PP -Ʊ¤¸¥é¥¤¥Ö¥é¥ê¤¬ +同じライブラリが .BR dlopen () -¤Ë¤è¤Ã¤ÆºÆÅÙ¥í¡¼¥É¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢Æ±¤¸¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤¬ÊÖ¤µ¤ì¤ë¡£ -dl ¥é¥¤¥Ö¥é¥ê¤Ï¥é¥¤¥Ö¥é¥ê¥Ï¥ó¥É¥ë¤Î¥ê¥ó¥¯¿ô¤ò´ÉÍý¤·¤Æ¤¤¤ë¡£ -¤·¤¿¤¬¤Ã¤ÆưŪ¥é¥¤¥Ö¥é¥ê¤Ï +によって再度ロードされた場合には、同じファイルハンドルが返される。 +dl ライブラリはライブラリハンドルのリンク数を管理している。 +したがって動的ライブラリは .BR dlclose () -¤¬ +が .BR dlopen () -¤ÈƱ¤¸²ó¿ô¤À¤±¸Æ¤Ó½Ð¤µ¤ì¤Ê¤¤¸Â¤ê¥¢¥ó¥í¡¼¥É¤µ¤ì¤Ê¤¤¡£ +と同じ回数だけ呼び出されない限りアンロードされない。 .BR _init () -¥ë¡¼¥Á¥ó¤Ï°ìÅÙ¤À¤±¸Æ¤Ó½Ð¤µ¤ì¤ë +ルーチンは一度だけ呼び出される .RB ( _init () -¤¬Â¸ºß¤¹¤ë¾ì¹ç¤Î¤ß)¡£ +が存在する場合のみ)。 .B RTLD_NOW -¤¬»ØÄꤵ¤ì¤Æ +が指定されて .BR dlopen () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¡¢ +が呼び出された場合、 .B RTLD_LAZY -¤Ç°ÊÁ°¤Ë¥í¡¼¥É¤µ¤ì¤¿¥é¥¤¥Ö¥é¥ê¤Î¥·¥ó¥Ü¥ë²ò·è¤¬¼Â¹Ô¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ +で以前にロードされたライブラリのシンボル解決が実行されることがある。 .PP .BR dlopen () -¤Ï¡¢²¿¤é¤«¤ÎÍýͳ¤Ç¼ºÇÔ¤¹¤ë¤È NULL ¤òÊÖ¤¹¡£ +は、何らかの理由で失敗すると NULL を返す。 .SS "dlsym()" -´Ø¿ô +関数 .BR dlsym () -¤Ï¡¢ +は、 .BR dlopen () -¤¬ÊÖ¤·¤¿Æ°Åª¥é¥¤¥Ö¥é¥ê¤Î¡Ö¥Ï¥ó¥É¥ë¡×¤È¡¢ -NULL ½ªÃ¼¤µ¤ì¤¿¥·¥ó¥Ü¥ë̾¤Îʸ»úÎó¤ò°ú¤­¿ô¤Ë¼è¤ê¡¢ -¤½¤Î¥·¥ó¥Ü¥ë¤¬¥í¡¼¥É¤µ¤ì¤¿¥á¥â¥ê¤Î¥¢¥É¥ì¥¹¤òÊÖ¤¹¡£ -¥·¥ó¥Ü¥ë¤¬¡¢»ØÄꤵ¤ì¤¿¥é¥¤¥Ö¥é¥ê¤È¡¢»ØÄꤵ¤ì¤¿¥é¥¤¥Ö¥é¥ê¤¬¥í¡¼¥É¤µ¤ì¤ëºÝ¤Ë +が返した動的ライブラリの「ハンドル」と、 +NULL 終端されたシンボル名の文字列を引き数に取り、 +そのシンボルがロードされたメモリのアドレスを返す。 +シンボルが、指定されたライブラリと、指定されたライブラリがロードされる際に .BR dlopen () -¤¬¼«Æ°Åª¤Ë¥í¡¼¥É¤·¤Æ¥é¥¤¥Ö¥é¥ê¤Î¤¤¤º¤ì¤Ë¤â¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ +が自動的にロードしてライブラリのいずれにも見つからない場合には、 .BR dlsym () -¤Ï NULL ¤òÊÖ¤¹ +は NULL を返す .RB ( dlsym () -¤Ë¤è¤ë¸¡º÷¤Ï¡¢¤³¤ì¤é¤Î¥é¥¤¥Ö¥é¥ê¤Î°Í¸´Ø·¸¤Î¥Ä¥ê¡¼¤òÀèƬ¤«¤é -é¤Ã¤Æ¹Ô¤ï¤ì¤ë)¡£ -¼ÂºÝ¤Ë¤Ï¥·¥ó¥Ü¥ë¤ÎÃͼ«ÂΤ¬ NULL ¤Ë¤Ê¤ë¤³¤È¤â¤¢¤ë (¤½¤Î¤¿¤á¡¢ +による検索は、これらのライブラリの依存関係のツリーを先頭から +辿って行われる)。 +実際にはシンボルの値自体が NULL になることもある (そのため、 .BR dlsym () -¤ÎÊÖ¤êÃͤ¬ NULL ¤Ç¤¢¤Ã¤¿¤È¤·¤Æ¤âɬ¤º¤·¤â¥¨¥é¡¼¤È¤¤¤¦Ìõ¤Ç¤Ï¤Ê¤¤)¡£ -¥¨¥é¡¼¤«¤É¤¦¤«¤ò³Îǧ¤¹¤ëÀµ¤·¤¤ÊýË¡¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë: +の返り値が NULL であったとしても必ずしもエラーという訳ではない)。 +エラーかどうかを確認する正しい方法は以下の通りである: .BR dlerror () -¤ò¸Æ¤Ó½Ð¤·¤Æ°ÊÁ°¤Î¥¨¥é¡¼¾õÂÖ¤ò¥¯¥ê¥¢¤·¤Æ¤«¤é¡¢ +を呼び出して以前のエラー状態をクリアしてから、 .BR dlsym () -¤ò¸Æ¤Ó½Ð¤¹¡£¤½¤Î¸å¤Ç¤â¤¦°ìÅÙ +を呼び出す。その後でもう一度 .BR dlerror () -¤ò¸Æ¤Ó½Ð¤·¤Æ¡¢ +を呼び出して、 .BR dlerror () -¤ÎÊÖ¤êÃͤòÊÑ¿ô¤ËÊݸ¤·¡¢Êݸ¤·¤¿Ãͤ¬ NULL ¤Ç¤¢¤ë¤«È½Äꤹ¤ë¡£ +の返り値を変数に保存し、保存した値が NULL であるか判定する。 .PP .B RTLD_DEFAULT -¤È +と .B RTLD_NEXT -¤È¤¤¤¦Æó¤Ä¤ÎÆÃÊ̤ʵ¼»÷¥Ï¥ó¥É¥ë¤¬¤¢¤ë¡£ +という二つの特別な擬似ハンドルがある。 .B RTLD_DEFAULT -¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥é¥¤¥Ö¥é¥ê¸¡º÷½ç½ø¤Ë¤·¤¿¤¬¤Ã¤Æ¡¢ -¸¡º÷ÂоݤΥ·¥ó¥Ü¥ë¤¬ºÇ½é¤Ë¸½¤ì¤ë¤È¤³¤í¤òõ¤¹¡£ +は、デフォルトのライブラリ検索順序にしたがって、 +検索対象のシンボルが最初に現れるところを探す。 .B RTLD_NEXT -¤Ï¡¢¥é¥¤¥Ö¥é¥ê¸¡º÷½ç½ø¤ÎÃæ¤Ç¸½ºß¤Î¥é¥¤¥Ö¥é¥ê°Ê¹ß¤ÇºÇ½é¤Ë -´Ø¿ô¤¬¸½¤ì¤ë¤È¤³¤í¤òõ¤¹¡£¤³¤Îµ¡Ç½¤ò»È¤¦¤³¤È¤Ç¡¢Ê̤ζ¦Í­¥é¥¤¥Ö¥é¥ê¤Î -´Ø¿ô¤Ø¤Î¥é¥Ã¥Ñ¡¼¤òÄ󶡤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +は、ライブラリ検索順序の中で現在のライブラリ以降で最初に +関数が現れるところを探す。この機能を使うことで、別の共有ライブラリの +関数へのラッパーを提供することができる。 .SS "dlclose()" -´Ø¿ô +関数 .BR dlclose () -¤ÏưŪ¥é¥¤¥Ö¥é¥ê¤Î¥Ï¥ó¥É¥ë +は動的ライブラリのハンドル .I handle -¤Î»²¾È¥«¥¦¥ó¥È¤ò 1 ¸º¤é¤¹¡£»²¾È¥«¥¦¥ó¥È¤¬ 0 ¤Ë¤Ê¤ê¡¢¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë -¾¤Î¥é¥¤¥Ö¥é¥ê¤«¤é¤½¤Î¥é¥¤¥Ö¥é¥êÆâ¤Î¥·¥ó¥Ü¥ë¤¬»È¤ï¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ -¤½¤ÎưŪ¥é¥¤¥Ö¥é¥ê¤ò¥¢¥ó¥í¡¼¥É¤¹¤ë¡£ +の参照カウントを 1 減らす。参照カウントが 0 になり、ロードされている +他のライブラリからそのライブラリ内のシンボルが使われていなければ、 +その動的ライブラリをアンロードする。 .LP -´Ø¿ô +関数 .BR dlclose () -¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤·¡¢¥¨¥é¡¼¤Î¾ì¹ç 0 °Ê³°¤òÊÖ¤¹¡£ -.SS "Çѻߤµ¤ì¤¿¥·¥ó¥Ü¥ë _init() ¤È _fini()" -¥ê¥ó¥«¤Ï +は、成功した場合は 0 を返し、エラーの場合 0 以外を返す。 +.SS "廃止されたシンボル _init() と _fini()" +リンカは .B _init -¤È +と .B _fini -¤òÆÃÊ̤ʥ·¥ó¥Ü¥ë¤È²ò¼á¤¹¤ë¡£ -¤¢¤ëưŪ¥é¥¤¥Ö¥é¥ê¤Ç +を特別なシンボルと解釈する。 +ある動的ライブラリで .BR _init () -¤È¤¤¤¦Ì¾Á°¤Î¥ë¡¼¥Á¥ó¤¬¥¨¥¯¥¹¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢ -¤½¤Î¥³¡¼¥É¤Ï¡¢¥é¥¤¥Ö¥é¥ê¤Î¥í¡¼¥É¸å¡¢¤«¤Ä +という名前のルーチンがエクスポートされていれば、 +そのコードは、ライブラリのロード後、かつ .BR dlopen () -¤¬Éüµ¢¤¹¤ëÁ°¤Ë¼Â¹Ô¤µ¤ì¤ë¡£ -¤½¤ÎưŪ¥é¥¤¥Ö¥é¥ê¤Ç +が復帰する前に実行される。 +その動的ライブラリで .BR _fini () -¤È¤¤¤¦Ì¾Á°¤Î¥ë¡¼¥Á¥ó¤¬¥¨¥¯¥¹¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢ -¥é¥¤¥Ö¥é¥ê¤¬¥¢¥ó¥í¡¼¥É¤µ¤ì¤ëľÁ°¤Ë¤½¤Î¥ë¡¼¥Á¥ó¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ -¥·¥¹¥Æ¥à¤Îµ¯Æ°¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥ê¥ó¥¯¤òÈò¤±¤ëɬÍפ¬¤¢¤ë¾ì¹ç¡¢ +という名前のルーチンがエクスポートされていれば、 +ライブラリがアンロードされる直前にそのルーチンが呼び出される。 +システムの起動ファイルに対するリンクを避ける必要がある場合、 .BR gcc (1) -¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ë +のコマンドラインに .I \-nostartfiles -¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ì¤Ð¤è¤¤¡£ +オプションを指定すればよい。 .LP -¤³¤Î¥ë¡¼¥Á¥ó¤ä¡¢gcc ¤Î¥ª¥×¥·¥ç¥ó +このルーチンや、gcc のオプション .B \-nostartfiles -¤ä +や .B \-nostdlib -¤Ï»ÈÍѤ·¤Ê¤¤¤³¤È¤ò¿ä¾©¤¹¤ë¡£ -¤³¤ì¤é¤ò»È¤¦¤È¡¢Ë¾¤Þ¤·¤¯¤Ê¤¤Æ°ºî¤ò¤¹¤ë¤³¤È¤¬¤¢¤ë¡£ -¤Ê¤¼¤Ê¤é¡¢(ÆÃÊ̤ÊÁ¼ÃÖ¤¬¹Ô¤ï¤ì¤Ê¤¤¸Â¤ê) ¤³¤ì¤é¤Î constructor/destructor -¥ë¡¼¥Á¥ó¤Ï¼Â¹Ô¤µ¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +は使用しないことを推奨する。 +これらを使うと、望ましくない動作をすることがある。 +なぜなら、(特別な措置が行われない限り) これらの constructor/destructor +ルーチンは実行されないからである。 .\" void _init(void) __attribute__((constructor)); .\" void _fini(void) __attribute__((destructor)); .LP -Âå¤ï¤ê¤Ë¡¢¥é¥¤¥Ö¥é¥ê¤Ï +代わりに、ライブラリは .B __attribute__((constructor)) -¤ä +や .B __attribute__((destructor)) -¤Î´Ø¿ô°À­¤ò»È¤Ã¤ÆɬÍפʥ롼¥Á¥ó¤ò¥¨¥¯¥¹¥Ý¡¼¥È¤¹¤ë¤Î¤¬¤è¤¤¡£ -¤³¤ì¤é¤Ë¤Ä¤¤¤Æ¤Ï gcc ¤Î info ¥Ú¡¼¥¸¤ò»²¾È¤Î¤³¤È¡£ -constructor ¥ë¡¼¥Á¥ó¤Ï +の関数属性を使って必要なルーチンをエクスポートするのがよい。 +これらについては gcc の info ページを参照のこと。 +constructor ルーチンは .BR dlopen () -¤¬Éüµ¢¤¹¤ëÁ°¤Ë¼Â¹Ô¤µ¤ì¡¢ -destructor ¥ë¡¼¥Á¥ó¤Ï +が復帰する前に実行され、 +destructor ルーチンは .BR dlclose () -¤¬Éüµ¢¤¹¤ëÁ°¤Ë¼Â¹Ô¤µ¤ì¤ë¡£ -.SS GNU ¤Ç¤Î³ÈÄ¥: dladdr() ¤È dlvsym() -glibc ¤Ç¤Ï POSIX ¤Ë¤Ïµ­ºÜ¤µ¤ì¤Æ¤¤¤Ê¤¤´Ø¿ô¤¬ 2¤ÄÄɲ䵤ì¤Æ¤¤¤ë¡£ -¥×¥í¥È¥¿¥¤¥×¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +が復帰する前に実行される。 +.SS GNU での拡張: dladdr() と dlvsym() +glibc では POSIX には記載されていない関数が 2つ追加されている。 +プロトタイプは以下の通りである。 .sp .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "int dladdr(void *" addr ", Dl_info *" info ); @@ -355,12 +355,12 @@ glibc .BI "void *dlvsym(void *" handle ", char *" symbol ", char *" version ); .fi .PP -´Ø¿ô +関数 .BR dladdr () -¤Ï¡¢´Ø¿ô¤Î¥Ý¥¤¥ó¥¿¤ò°ú¤­¿ô¤Ë¤È¤ê¡¢´Ø¿ô¤Î̾Á°¤È´Ø¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë -¥Õ¥¡¥¤¥ë¤Î²ò·è¤ò»î¤ß¤ë¡£¾ðÊó¤Ï +は、関数のポインタを引き数にとり、関数の名前と関数が定義されている +ファイルの解決を試みる。情報は .I Dl_info -¹½Â¤ÂΤ˳ÊǼ¤µ¤ì¤ë¡£ +構造体に格納される。 .sp .in +4n .nf @@ -378,95 +378,95 @@ typedef struct { .in .PP .I addr -¤Ë¥Þ¥Ã¥Á¤¹¤ë¥·¥ó¥Ü¥ë¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ +にマッチするシンボルが見つからなかった場合、 .I dli_sname -¤È +と .I dli_saddr -¤Ï NULL ¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ +は NULL にセットされる。 .PP .BR dladdr () -¤Ï¡¢¥¨¥é¡¼»þ¤Ë¤Ï 0 ¤òÊÖ¤·¡¢À®¸ù¤·¤¿¾ì¹ç¤Ï 0 °Ê³°¤òÊÖ¤¹¡£ +は、エラー時には 0 を返し、成功した場合は 0 以外を返す。 .PP -´Ø¿ô +関数 .BR dlvsym () -¤Ï +は .BR dlsym () -¤ÈƱ¤¸Æ°ºî¤ò¤¹¤ë¤¬¡¢¥Ð¡¼¥¸¥ç¥ó¤Îʸ»úÎó¤òÅϤ¹°ú¤­¿ô¤¬ -Äɲ䵤ì¤Æ¤¤¤ëÅÀ¤¬°Û¤Ê¤ë +と同じ動作をするが、バージョンの文字列を渡す引き数が +追加されている点が異なる .RB ( dlvsym () -¤Ï¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë)¡£ -.SH ½àµò -POSIX.1-2003 ¤Ë¤Ï +はバージョン 2.1 以降の glibc で提供されている)。 +.SH 準拠 +POSIX.1-2003 には .BR dlclose (), .BR dlerror (), .BR dlopen (), .BR dlsym (). -¤Îµ­ºÜ¤¬¤¢¤ë¡£ -.SH Ãí°Õ -¥·¥ó¥Ü¥ë +の記載がある。 +.SH 注意 +シンボル .B RTLD_DEFAULT -¤È +と .B RTLD_NEXT -¤Ï +は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ +で定義されており、 .I -¤Î¥¤¥ó¥¯¥ë¡¼¥ÉÁ°¤Ë +のインクルード前に .B _GNU_SOURCE -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Î¤ßÍ­¸ú¤È¤Ê¤ë¡£ +が定義されている場合のみ有効となる。 .\" .LP .\" .BR dlerror () -.\" ¤¬ÊÖ¤¹Ê¸»úÎó¤ÏÊѹ¹¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¡¢ -.\" °Ê²¼¤Î¤è¤¦¤Ê¥×¥í¥È¥¿¥¤¥×¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +.\" が返す文字列は変更すべきではない。システムによっては、 +.\" 以下のようなプロトタイプになっている。 .\" .sp .\" .in +5 .\" .B "const char *dlerror(void);" .\" .in -glibc 2.2.3 °Ê¹ß¤Ç¤Ï¡¢ +glibc 2.2.3 以降では、 .BR atexit (3) -¤ò»È¤Ã¤Æ¡¢¥é¥¤¥Ö¥é¥ê¤¬¥¢¥ó¥í¡¼¥É¤µ¤ì¤ëºÝ¤Ë¼«Æ°Åª¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë -½ªÎ»¥Ï¥ó¥É¥é (exit handler) ¤òÅÐÏ¿¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.SS Îò»Ë -dlopen ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Îɸ½à¤Ï SunOS ¤ò¤â¤È¤Ë¤·¤Æ¤¤¤ë¡£ -SunOS ¤Ë¤Ï +を使って、ライブラリがアンロードされる際に自動的に呼び出される +終了ハンドラ (exit handler) を登録することができる。 +.SS 歴史 +dlopen インターフェースの標準は SunOS をもとにしている。 +SunOS には .BR dladdr () -¤â¤¢¤Ã¤¿¤¬¡¢ +もあったが、 .BR dlvsym () -¤Ï¤Ê¤«¤Ã¤¿¡£ -.SH ¥Ð¥° -»þ¤È¤·¤Æ¡¢ +はなかった。 +.SH バグ +時として、 .BR dladdr () -¤ËÅϤ·¤¿´Ø¿ô¥Ý¥¤¥ó¥¿¤Ï¶Ã¤¯¤è¤¦¤ÊÃͤˤʤ뤳¤È¤¬¤¢¤ë¡£ -¤¤¤¯¤Ä¤«¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã (ÆÃ¤Ë i386 ¤È x86_64) ¤Ç¤Ï¡¢ -°ú¤­¿ô¤È¤·¤Æ»ÈÍѤ·¤¿´Ø¿ô¤¬Æ°Åª¥ê¥ó¥¯¥é¥¤¥Ö¥é¥ê¤ÇÄêµÁ¤µ¤ì¤ë¤â¤Î¤Ç -¤¢¤Ã¤¿¤È¤·¤Æ¤â¡¢ +に渡した関数ポインタは驚くような値になることがある。 +いくつかのアーキテクチャ (特に i386 と x86_64) では、 +引き数として使用した関数が動的リンクライブラリで定義されるもので +あったとしても、 .I dli_fname -¤È +と .I dli_fbase -¤¬ +が .BR dladdr () -¤ò¸Æ¤Ó½Ð¤·¤¿¥ª¥Ö¥¸¥§¥¯¥È¤ò»²¾È¤·¤¿¾õÂ֤ǽª¤ï¤Ã¤Æ¤¤¤ë¤³¤È¤¬¤¢¤ë¡£ +を呼び出したオブジェクトを参照した状態で終わっていることがある。 .PP -ÌäÂê¤Ï¡¢´Ø¿ô¥Ý¥¤¥ó¥¿¤Î²ò·è¤Ïº£¤Ê¤ª¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¹Ô¤ï¤ì¤ë¤¬¡¢ -¤½¤Î¥Ý¥¤¥ó¥¿¤Ï¸µ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î +問題は、関数ポインタの解決は今なおコンパイル時に行われるが、 +そのポインタは元のオブジェクトの .I plt -(Procedure Linkage Table) ¥»¥¯¥·¥ç¥ó¤ò»Ø¤·¤Æ¤¤¤ë¤À¤±¤À¤È¤¤¤¦ÅÀ¤Ë¤¢¤ë -(¥ª¥Ö¥¸¥§¥¯¥È¼«ÂΤϡ¢¥À¥¤¥Ê¥ß¥Ã¥¯¥ê¥ó¥«¤Ë¤è¤Ã¤Æ¥·¥ó¥Ü¥ë¤Î²ò·è¤¬¹Ô¤ï¤ì¤¿¸å¤Ë¡¢ -´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤ò¹Ô¤¦)¡£ -¤³¤ì¤ËÂн褹¤ëÊýË¡¤È¤·¤Æ¤Ï¡¢ -¥³¡¼¥É¤ò position-independent ¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤¤¤¦ÊýË¡¤¬¤¢¤ë¡£ -¤½¤¦¤¹¤ë¤È¡¢¥³¥ó¥Ñ¥¤¥é¤Ï¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¥Ý¥¤¥ó¥¿¤òÍÑ°Õ¤¹¤ë¤³¤È¤¬¤Ç¤­¤º¡¢ -º£Æü¤Î +(Procedure Linkage Table) セクションを指しているだけだという点にある +(オブジェクト自体は、ダイナミックリンカによってシンボルの解決が行われた後に、 +関数の呼び出しを行う)。 +これに対処する方法としては、 +コードを position-independent でコンパイルするという方法がある。 +そうすると、コンパイラはコンパイル時にポインタを用意することができず、 +今日の .BR gcc (1) -¤Ç¤Ï¡¢¼Â¹Ô»þ¤Ë +では、実行時に .BR dladdr () -¤Ë´Ø¿ô¥Ý¥¤¥ó¥¿¤òÅϤ¹Á°¤Ë¡¢ +に関数ポインタを渡す前に、 .I got -(Global Offset Table) ¤«¤éºÇ½ªÅª¤Ê¥·¥ó¥Ü¥ë¤Î¥¢¥É¥ì¥¹¤ò¥í¡¼¥É¤¹¤ë¤À¤±¤Î -¥³¡¼¥É¤¬À¸À®¤µ¤ì¤ë¡£ -.SH Îã -math ¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤·¡¢2.0 ¤Î;¸¹¤òɽ¼¨¤¹¤ë +(Global Offset Table) から最終的なシンボルのアドレスをロードするだけの +コードが生成される。 +.SH 例 +math ライブラリをロードし、2.0 の余弦を表示する .nf #include @@ -509,24 +509,24 @@ main(int argc, char **argv) } .fi .PP -¤³¤Î¥×¥í¥°¥é¥à¤ò "foo.c" ¤Ë½ñ¤¤¤¿¤È¤¹¤ë¤È¡¢°Ê²¼¤Î¥³¥Þ¥ó¥É¤Ç¥×¥í¥°¥é¥à¤ò -¥Ó¥ë¥É¤Ç¤­¤ë¡£ +このプログラムを "foo.c" に書いたとすると、以下のコマンドでプログラムを +ビルドできる。 .in +4n .LP gcc \-rdynamic \-o foo foo.c \-ldl .in .PP .BR _init () -¤È +と .BR _fini () -¤ò¥¨¥¯¥¹¥Ý¡¼¥È¤¹¤ë¥é¥¤¥Ö¥é¥ê¤Î¾ì¹ç¤Ï -°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ëɬÍפ¬¤¢¤ë¡£ -Îã¤È¤·¤Æ \fIbar.c\fP ¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¾ì¹ç: +をエクスポートするライブラリの場合は +以下のようにしてコンパイルする必要がある。 +例として \fIbar.c\fP をコンパイルする場合: .in +4n .LP gcc \-shared \-nostartfiles \-o bar bar.c .in -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ld (1), .BR ldd (1), .BR dl_iterate_phdr (3), diff --git a/release/man3/dprintf.3 b/release/man3/dprintf.3 index 37001527..3872fe63 100644 --- a/release/man3/dprintf.3 +++ b/release/man3/dprintf.3 @@ -26,9 +26,9 @@ .\" Translated Sat 12 Jan 2002 by NAKANO Takeo .\" .TH DPRINTF 3 2010-09-15 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -dprintf, vdprintf \- ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ëʸ»ú½ÐÎϤ¹¤ë -.SH ½ñ¼° +.SH 名前 +dprintf, vdprintf \- ファイルディスクリプターに文字出力する +.SH 書式 .B #include .sp .BI "int dprintf(int " fd ", const char *" format ", ...);" @@ -36,9 +36,9 @@ dprintf, vdprintf \- .BI "int vdprintf(int " fd ", const char *" format ", va_list " ap ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR dprintf (), @@ -47,58 +47,58 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD -.SH ÀâÌÀ -(glibc2 ¥é¥¤¥Ö¥é¥ê¤Ë¤ª¤±¤ë) +.SH 説明 +(glibc2 ライブラリにおける) .BR dprintf () -´Ø¿ô¤È +関数と .BR vdprintf () -´Ø¿ô¤È¤Ï¡¢¤½¤ì¤¾¤ì +関数とは、それぞれ .BR fprintf (3) -´Ø¿ô¤È +関数と .BR vfprintf (3) -´Ø¿ô¤È¤Ë¤Á¤ç¤¦¤ÉÂбþ¤¹¤ë¤¬¡¢ -¤³¤ì¤é¤Ï +関数とにちょうど対応するが、 +これらは .I stdio -¥¹¥È¥ê¡¼¥à¤Ç¤Ï¤Ê¤¯¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ +ストリームではなくファイルディスクリプター .I fd -¤ËÂФ·¤Æ½ÐÎϤò¹Ô¤¦¡£ -.SH ½àµò -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ê¡¢ -¸½ºß¤Ç¤Ï POSIX.1-2008 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -.\" .SH Ãí°Õ -.\" ¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ¤Î³ÈÄ¥¤Ç¤¢¤ê¡¢C ¤ä POSIX ¤Î¤â¤Î¤Ç¤Ï¤Ê¤¤¡£ -.\" ¸«¤Æ¤ï¤«¤ë¤È¤ª¤ê¡¢Ì¾Á°¤ÎÉÕ¤±Êý¤Ï¤¢¤Þ¤êÎɤ¯¤Ê¤¤¡£ -.\" ¿¤¯¤Î¥·¥¹¥Æ¥à (MacOS ¤Ê¤É) ¤Ë¤Ï¡¢ +に対して出力を行う。 +.SH 準拠 +これらの関数は GNU による拡張であり、 +現在では POSIX.1-2008 で規定されている。 +.\" .SH 注意 +.\" これらの関数は GNU の拡張であり、C や POSIX のものではない。 +.\" 見てわかるとおり、名前の付け方はあまり良くない。 +.\" 多くのシステム (MacOS など) には、 .\" .BR dprintf () -.\" ¤È¤¤¤¦Ì¾Á°¤Î¡¢¤³¤ì¤È¤Ï¸ß´¹¤Ç¤Ê¤¤´Ø¿ô¤¬¤¢¤ê¡¢ -.\" ¤¿¤¤¤Æ¤¤¤Ï¤Ê¤ó¤é¤«¤Î¥Ç¥Ð¥Ã¥°ÍѤΠ+.\" という名前の、これとは互換でない関数があり、 +.\" たいていはなんらかのデバッグ用の .\" .BR printf (3) -.\" ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¥×¥í¥È¥¿¥¤¥×¤Ï +.\" になっている。プロトタイプは .\" .\" .BI "void dprintf(int level, const char *" format ", ...);" .\" -.\" ¤Ç¡¢ºÇ½é¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¥Ç¥Ð¥Ã¥°¥ì¥Ù¥ë¤Ë¤Ê¤Ã¤Æ¤¤¤ë -.\" (¤Þ¤¿½ÐÎÏ¤Ï +.\" で、最初のパラメータはデバッグレベルになっている +.\" (また出力は .\" .I stderr -.\" ¤Ë¹Ô¤ï¤ì¤ë)¡£ -.\" ¤µ¤é¤Ë¡¢ +.\" に行われる)。 +.\" さらに、 .\" .BR dprintf () -.\" (¤¢¤ë¤¤¤Ï +.\" (あるいは .\" .BR DPRINTF ) -.\" ¤Ï¥Ç¥Ð¥Ã¥°½èÍýÍѤΠprintf ¤Î¥Þ¥¯¥í¤È¤·¤Æ¤âÎɤ¯ÍѤ¤¤é¤ì¤ë¡£ -.\" ¤·¤¿¤¬¤Ã¤Æ¶²¤é¤¯¡¢°Ü¿¢À­¤òɬÍפȤ¹¤ë¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ -.\" ¤³¤Î´Ø¿ô¤ÏÍѤ¤¤Ê¤¤¤Û¤¦¤¬Îɤ¤¤À¤í¤¦¡£ +.\" はデバッグ処理用の printf のマクロとしても良く用いられる。 +.\" したがって恐らく、移植性を必要とするプログラムでは、 +.\" この関数は用いないほうが良いだろう。 .\" -.\" ¤è¤êÎɤ¤Ì¾Á°¤Ï +.\" より良い名前は .\" .BR fdprintf () -.\" ¤À¤Ã¤¿¤«¤È»×¤ï¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +.\" だったかと思われる。 +.SH 関連項目 .BR printf (3) diff --git a/release/man3/drand48.3 b/release/man3/drand48.3 index fb6cfd8a..1599171f 100644 --- a/release/man3/drand48.3 +++ b/release/man3/drand48.3 @@ -31,13 +31,13 @@ .\" Translated Mon Jan 20 20:04:05 JST 1997 .\" by YOSHINO Takashi .\" -.\" WORD: internal buffer ÆâÉô¥Ð¥Ã¥Õ¥¡ +.\" WORD: internal buffer 内部バッファ .\" .TH DRAND48 3 2007-07-26 "" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 drand48, erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48, -lcong48 \- °ìÍÍʬÉÛ¤¹¤ëµ¿»÷Íð¿ô¤òÀ¸À®¤¹¤ë´Ø¿ô -.SH ½ñ¼° +lcong48 \- 一様分布する疑似乱数を生成する関数 +.SH 書式 .nf .B #include .sp @@ -61,13 +61,13 @@ lcong48 \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l -¾åµ­¤ÎÁ´¤Æ¤Î´Ø¿ô: +上記の全ての関数: .\" .BR drand48 (), .\" .BR erand48 (), .\" .BR lrand48 (), @@ -79,53 +79,53 @@ glibc .\" .BR lcong48 (): _SVID_SOURCE || _XOPEN_SOURCE .ad b -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤ÏÀþ·Á¹çƱ¥¢¥ë¥´¥ê¥º¥à¤È 48¥Ó¥Ã¥ÈÀ°¿ô±é»»¤òÍѤ¤¤Æ -µ¿»÷Íð¿ô¤òÀ¸À®¤¹¤ë¡£ +.SH 説明 +これらの関数は線形合同アルゴリズムと 48ビット整数演算を用いて +疑似乱数を生成する。 .PP -´Ø¿ô +関数 .BR drand48 () -¤È +と .BR erand48 () -¤Ï¡¢¶è´Ö [0.0, 1.0) ¤Ç -°ìÍÍʬÉÛ¤¹¤ëÈóÉé¤ÎÇÜÀºÅÙÉâÆ°¾®¿ôÅÀ¼Â¿ôÃͤòÊÖ¤¹¡£ +は、区間 [0.0, 1.0) で +一様分布する非負の倍精度浮動小数点実数値を返す。 .PP -´Ø¿ô +関数 .BR lrand48 () -¤È +と .BR nrand48 () -¤Ï 0 ¤È 2^31 ¤Î´Ö¤Ç°ìÍÍʬÉÛ¤¹¤ë -ÈóÉé¤Î¥í¥ó¥°À°¿ô¤òÊÖ¤¹¡£ +は 0 と 2^31 の間で一様分布する +非負のロング整数を返す。 .PP -´Ø¿ô +関数 .BR mrand48 () -¤È +と .BR jrand48 () -¤Ï -\-2^31 ¤È 2^31 ¤Î´Ö¤Ç°ìÍÍʬÉÛ¤¹¤ëÉä¹æÉÕ¤­¥í¥ó¥°À°¿ô¤òÊÖ¤¹¡£ +は +\-2^31 と 2^31 の間で一様分布する符号付きロング整数を返す。 .PP -´Ø¿ô +関数 .BR srand48 (), .BR seed48 (), .BR lcong48 () -¤Ï½é´ü²½´Ø¿ô -¤Ç¤¢¤ë¡£ -´Ø¿ô +は初期化関数 +である。 +関数 .BR drand48 (), .BR lrand48 (), .BR mrand48 () -¤ò -»ÈÍѤ¹¤ëÁ°¤Ë¡¢¤³¤ì¤é¤Î½é´ü²½´Ø¿ô¤Î¤¤¤º¤ì¤«¤ò¸Æ¤Ö¤Ù¤­¤Ç¤¢¤ë¡£ -´Ø¿ô +を +使用する前に、これらの初期化関数のいずれかを呼ぶべきである。 +関数 .BR erand48 (), .BR nrand48 (), .BR jrand48 () -¤Ï½é¤á¤Ë -½é´ü²½´Ø¿ô¤ò¸Æ¤Ö¤³¤È¤òɬÍפȤ·¤Ê¤¤¡£ +は初めに +初期化関数を呼ぶことを必要としない。 .PP -¤³¤³¤ÇÀâÌÀ¤·¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î´Ø¿ô¤Ï 48¥Ó¥Ã¥È¤ÎÀ°¿ô¤Î -¥·¡¼¥±¥ó¥¹ (\fIXi\fP) ¤òÀ¸À®¤¹¤ë¤³¤È¤Ç -µ¡Ç½¤·¤Æ¤¤¤ë¡£À¸À®ÊýË¡¤Ï°Ê²¼¤ÎÀþ·Á¹çƱ¤Î¼°¤Ë¤è¤ë¡£ +ここで説明しているすべての関数は 48ビットの整数の +シーケンス (\fIXi\fP) を生成することで +機能している。生成方法は以下の線形合同の式による。 .sp .nf .RS @@ -133,10 +133,10 @@ _SVID_SOURCE || _XOPEN_SOURCE .RE .fi .sp -¤³¤³¤Ç n >= 0 ¤Ç¤¢¤ë¡£ -¥Ñ¥é¥á¡¼¥¿¤¬ \fIm\fP = 2^48 ¤Ç¤¢¤ë¤¿¤á¡¢48¥Ó¥Ã¥ÈÀ°¿ô±é»»¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë¡£ +ここで n >= 0 である。 +パラメータが \fIm\fP = 2^48 であるため、48ビット整数演算が行われている。 .BR lcong48 () -¤¬¸Æ¤Ð¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢\fIa\fP ¤È \fIc\fP ¤Ï°Ê²¼¤Î¼°¤ÇÍ¿¤¨¤é¤ì¤ë¡£ +が呼ばれていない場合、\fIa\fP と \fIc\fP は以下の式で与えられる。 .sp .nf .RS @@ -145,71 +145,71 @@ _SVID_SOURCE || _XOPEN_SOURCE .RE .fi .sp -´Ø¿ô +関数 .BR drand48 (), .BR erand48 (), .BR lrand48 (), .BR nrand48 (), .BR mrand48 (), .BR jrand48 () -¤ÇÊÖ¤µ¤ì¤ëÃͤϼ¡¤Î¤è¤¦¤Ë¤·¤Æ·×»»¤µ¤ì¤ë¡£ -¤Ï¤¸¤á¤Ë¡¢¼¡¤Î48¥Ó¥Ã¥È¤Î \fIXi\fP ¤¬·×»»¤µ¤ì¤ë¡£ -¤½¤·¤Æ¡¢ÊÖ¤¹¤Ù¤­¥Ç¡¼¥¿¤Î·¿¤Ë°Í¸¤·¤¿Å¬ÀÚ¤Ê -¥Ó¥Ã¥È¿ô¤¬ \fIXi\fP ¤Î¾å°Ì¥Ó¥Ã¥È¤«¤é¥³¥Ô¡¼¤µ¤ì¤ë¡£ -ºÇ¸å¤Ë¡¢¤³¤ÎÃͤòÊÖ¤êÃͤËÊÑ´¹¤¹¤ë¡£ +で返される値は次のようにして計算される。 +はじめに、次の48ビットの \fIXi\fP が計算される。 +そして、返すべきデータの型に依存した適切な +ビット数が \fIXi\fP の上位ビットからコピーされる。 +最後に、この値を返り値に変換する。 .PP -´Ø¿ô +関数 .BR drand48 (), .BR lrand48 (), .BR mrand48 () -¤Ï -ºÇ¸å¤ËÀ¸À®¤µ¤ì¤¿48¥Ó¥Ã¥È¤Î \fIXi\fP ¤òÆâÉô¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤¹¤ë¡£ -ÇÛÎó¤Î·Á¤Î°ú¿ô \fIxsubi\fP ¤Ë¸Ä¡¹¤Î \fIXi\fP ¤ÎÃͤò -³ÊǼ¤Ç¤­¤ë¤è¤¦¤ÊÎΰè¤ò³ÎÊݤ¹¤ë¤³¤È¤ò¡¢ -´Ø¿ô +は +最後に生成された48ビットの \fIXi\fP を内部バッファに格納する。 +配列の形の引数 \fIxsubi\fP に個々の \fIXi\fP の値を +格納できるような領域を確保することを、 +関数 .BR erand48 (), .BR nrand48 (), .BR jrand48 () -¤Ï¡¢ -¸Æ¤Ó½Ð¤·Â¦¤Î¥×¥í¥°¥é¥à¤ËÍ׵᤹¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¤Ï¤¸¤á¤Æ¤½¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤ÖÁ°¤Ë \fIXi\fP ¤Î½é´üÃͤòÇÛÎó¤Ë -ÂåÆþ¤¹¤ë¤³¤È¤Ç½é´ü²½¤µ¤ì¤ë¡£ +は、 +呼び出し側のプログラムに要求する。 +これらの関数は、はじめてそれらの関数を呼ぶ前に \fIXi\fP の初期値を配列に +代入することで初期化される。 .PP -½é´ü²½´Ø¿ô +初期化関数 .BR srand48 () -¤Ï¡¢\fIXi\fP ¤Î -¾å°Ì32¥Ó¥Ã¥È¤ò°ú¿ô \fIseedval\fP ¤ËÀßÄꤹ¤ë¡£ -²¼°Ì¤Î16¥Ó¥Ã¥È¤Ï¡¢Å¬Åö¤Ë·è¤á¤é¤ì¤¿ÃͤǤ¢¤ë0x330E¤ËÀßÄꤵ¤ì¤ë¡£ +は、\fIXi\fP の +上位32ビットを引数 \fIseedval\fP に設定する。 +下位の16ビットは、適当に決められた値である0x330Eに設定される。 .PP -½é´ü²½´Ø¿ô +初期化関数 .BR seed48 () -¤Ï¡¢\fIXi\fP ¤ÎÃͤò¡¢ -ÇÛÎó¤Î·Á¤ò¤·¤¿°ú¿ô¤Ç¤¢¤ë \fIseed16v\fP ¤ÎÃæ¤Ç»ØÄꤵ¤ì¤¿ 48¥Ó¥Ã¥È¤ÎÃͤËÀßÄꤹ¤ë¡£ -\fIXi\fP ¤ÎÁ°¤ÎÃͤÏÆâÉô¥Ð¥Ã¥Õ¥¡¤Ë¥³¥Ô¡¼¤µ¤ì¡¢¤³¤Î¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬ +は、\fIXi\fP の値を、 +配列の形をした引数である \fIseed16v\fP の中で指定された 48ビットの値に設定する。 +\fIXi\fP の前の値は内部バッファにコピーされ、このバッファへのポインタが .BR seed48 () -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë¡£ +によって返される。 .PP -½é´ü²½´Ø¿ô +初期化関数 .BR lcong48 () -¤Ï»ÈÍѼԤ¬ \fIXi\fP, \fIa\fP, \fIc\fP ¤Î -½é´üÃͤò»ØÄꤹ¤ë¤¿¤á¤Î´Ø¿ô¤Ç¤¢¤ë¡£ -ÇÛÎó¤Î·Á¤ò¤·¤¿°ú¿ô¤ÎÍ×ÁǤϤ½¤ì¤¾¤ì¡¢\fIparam[0-2]\fP ¤Ï \fIXi\fP ¤ò¡¢ -\fIparam[3-5]\fP ¤Ï \fIa\fP ¤ò¡¢\fIparam[6]\fP ¤Ï \fIc\fP ¤ò»ØÄꤹ¤ë¤â¤Î -¤Ç¤¢¤ë¡£ +は使用者が \fIXi\fP, \fIa\fP, \fIc\fP の +初期値を指定するための関数である。 +配列の形をした引数の要素はそれぞれ、\fIparam[0-2]\fP は \fIXi\fP を、 +\fIparam[3-5]\fP は \fIa\fP を、\fIparam[6]\fP は \fIc\fP を指定するもの +である。 .BR lcong48 () -¤¬¸Æ¤Ð¤ì¤¿¸å¤Ç¡¢ +が呼ばれた後で、 .BR srand48 () -¤« +か .BR seed48 () -¤ò¸Æ¤Ö¤È¡¢Á°½Ò¤Î \fIa\fP ¤È \fIc\fP ¤Î -ɸ½àÃͤ¬ºÆ¤ÓÀßÄꤵ¤ì¤ë¡£ -.SH ½àµò +を呼ぶと、前述の \fIa\fP と \fIc\fP の +標準値が再び設定される。 +.SH 準拠 SVr4, POSIX.1-2001. -.SH Ãí°Õ -SVID 3 ¤Ç¤Ï¤³¤ì¤é¤Î´Ø¿ô¤Ï»þÂåÃÙ¤ì¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤ë¡£ -SVID 3 ¤Ç¤Ï +.SH 注意 +SVID 3 ではこれらの関数は時代遅れと宣言されている。 +SVID 3 では .BR rand (3) -¤¬Âå¤ï¤ê¤Ë»ÈÍѤµ¤ì¤ë¤Ù¤­¤À¤Èµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +が代わりに使用されるべきだと記述されている。 +.SH 関連項目 .BR rand (3), .BR random (3) diff --git a/release/man3/drand48_r.3 b/release/man3/drand48_r.3 index 03e56cda..37576cb4 100644 --- a/release/man3/drand48_r.3 +++ b/release/man3/drand48_r.3 @@ -28,9 +28,9 @@ .\" by Yuichi SATO .\" .TH DRAND48_R 3 2007-07-26 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -drand48_r, erand48_r, lrand48_r, nrand48_r, mrand48_r, jrand48_r, srand48_r, seed48_r, lcong48_r \- °ìÍÍʬÉÛ¤¹¤ëµ¿»÷Íð¿ô¤ò¥ê¥¨¥ó¥È¥é¥ó¥È (reentrant) ¤ËÀ¸À®¤¹¤ë -.SH ½ñ¼° +.SH 名前 +drand48_r, erand48_r, lrand48_r, nrand48_r, mrand48_r, jrand48_r, srand48_r, seed48_r, lcong48_r \- 一様分布する疑似乱数をリエントラント (reentrant) に生成する +.SH 書式 .nf .B #include .sp @@ -64,13 +64,13 @@ drand48_r, erand48_r, lrand48_r, nrand48_r, mrand48_r, jrand48_r, srand48_r, see .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l -¾åµ­¤ÎÁ´¤Æ¤Î´Ø¿ô: +上記の全ての関数: .\" .BR drand48_r (), .\" .BR erand48_r (), .\" .BR lrand48_r (), @@ -82,26 +82,26 @@ glibc .\" .BR lcong48_r (): _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE .ad b -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï +.SH 説明 +これらの関数は .BR drand48 (3) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤ËÎà»÷¤¹¤ë¥ê¥¨¥ó¥È¥é¥ó¥È¤Ê´Ø¿ô¤Ç¤¢¤ë¡£ -Âç°èŪ¤ÊÍð¿ôÀ¸À®¤Î¾õÂÖ¤òÊѹ¹¤¹¤ëÂå¤ï¤ê¤Ë¡¢ -¤³¤ì¤é¤Î´Ø¿ô¤Ï»ØÄꤵ¤ì¤¿¥Ç¡¼¥¿ +で説明されている関数に類似するリエントラントな関数である。 +大域的な乱数生成の状態を変更する代わりに、 +これらの関数は指定されたデータ .I buffer -¤ò»È¤¦¡£ +を使う。 -ºÇ½é¤Ë»È¤¦Á°¤Ë¡¢¤³¤Î¹½Â¤ÂΤϽé´ü²½¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -½é´ü²½¤Ï¡¢¤¿¤È¤¨¤Ð 0 ¤ÇËä¤á¤¿¤ê¡¢´Ø¿ô +最初に使う前に、この構造体は初期化されていなければならない。 +初期化は、たとえば 0 で埋めたり、関数 .BR srand48_r (), .BR seed48_r (), .BR lcong48_r () -¤Î¤¤¤º¤ì¤«¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ë¤è¤Ã¤Æ¹Ô¤ï¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -ÊÖ¤êÃÍ¤Ï 0 ¤Ç¤¢¤ë¡£ -.SH ½àµò -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ê¡¢°Ü¿¢À­¤Ï¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +のいずれかを呼び出すことによって行われる。 +.SH 返り値 +返り値は 0 である。 +.SH 準拠 +これらの関数は GNU による拡張であり、移植性はない。 +.SH 関連項目 .BR drand48 (3), .BR rand (3), .BR random (3) diff --git a/release/man3/dysize.3 b/release/man3/dysize.3 index 9e216bf8..741d588a 100644 --- a/release/man3/dysize.3 +++ b/release/man3/dysize.3 @@ -26,36 +26,36 @@ .\" Translated Sun 6 Jan 2002 by NAKANO Takeo .\" .TH DYSIZE 3 2010-09-22 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -dysize \- Í¿¤¨¤¿Ç¯¤ÎÆü¿ô¤òÊÖ¤¹ -.SH ½ñ¼° +.SH 名前 +dysize \- 与えた年の日数を返す +.SH 書式 .B "#include " .sp .BI "int dysize(int " year ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR dysize (): _BSD_SOURCE || _SVID_SOURCE -.SH ÀâÌÀ -¤³¤Î´Ø¿ô¤ÏÄ̾ï¤Îǯ¤Ë¤Ï 365 ¤òÊÖ¤·¡¢¤¦¤ë¤¦Ç¯¤Ë¤Ï 366 ¤òÊÖ¤¹¡£ -¤¦¤ë¤¦Ç¯¤Î·×»»¤Ï¼¡¤Î¼°¤Ë¤è¤ë: +.SH 説明 +この関数は通常の年には 365 を返し、うるう年には 366 を返す。 +うるう年の計算は次の式による: .sp (year) %4 == 0 && ((year) %100 != 0 || (year) %400 == 0) .sp -¤³¤Î¼°¤Ï +この式は .I __isleap(year) -¥Þ¥¯¥í¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ +マクロで定義されており、 .I -¤Ë¤â¤¢¤ë¡£ -.SH ½àµò -¤³¤Î´Ø¿ô¤Ï SunOS 4.x ¤ÇÀ¸¤Þ¤ì¤¿¡£ -.SH Ãí°Õ -¤³¤ì¤Ï¸ß´¹ÍѤδؿô¤Ë²á¤®¤Ê¤¤¡£¿·¤·¤¤¥×¥í¥°¥é¥à¤Ç¤Ï»È¤ï¤Ê¤¤¤³¤È¡£ -.\" ¤³¤Î´Ø¿ô¤Î SCO ÈÇ¤Ë¤Ï 2000 ǯÌäÂ꤬´Þ¤Þ¤ì¤Æ¤¤¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +にもある。 +.SH 準拠 +この関数は SunOS 4.x で生まれた。 +.SH 注意 +これは互換用の関数に過ぎない。新しいプログラムでは使わないこと。 +.\" この関数の SCO 版には 2000 年問題が含まれていた。 +.SH 関連項目 .BR strftime (3) diff --git a/release/man3/ecvt.3 b/release/man3/ecvt.3 index f48a3898..84a5f033 100644 --- a/release/man3/ecvt.3 +++ b/release/man3/ecvt.3 @@ -34,9 +34,9 @@ .\" Updated 2009-04-22 by Kentaro Shirakata .\" .TH ECVT 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -ecvt, fcvt \- ÉâÆ°¾®¿ôÅÀ¿ô¤Îʸ»úÎó¤Ø¤ÎÊÑ´¹ -.SH ½ñ¼° +.SH 名前 +ecvt, fcvt \- 浮動小数点数の文字列への変換 +.SH 書式 .B #include .sp .BI "char *ecvt(double " number ", int " ndigits ", int *" decpt , @@ -46,9 +46,9 @@ ecvt, fcvt \- .BI "int *" sign ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR ecvt (), @@ -57,7 +57,7 @@ glibc .RS 4 .PD 0 .TP 4 -glibc 2.12 °Ê¹ß: +glibc 2.12 以降: .nf _SVID_SOURCE || (_XOPEN_SOURCE\ >=\ 500 || @@ -65,69 +65,69 @@ _SVID_SOURCE || !(_POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600) .fi .TP 4 -glibc 2.12 ¤è¤êÁ°: +glibc 2.12 より前: _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .PD .RE .ad b -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR ecvt () -¤Ï \fInumber\fP ¤ò NUL ʸ»ú¤Ç½ªÃ¼¤µ¤ì¤¿ -\fIndigits\fP ʸ»ú¤Îʸ»úÎó¤ØÊÑ´¹¤·¡¢¤½¤Îʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹ -(\fIndigits\fP ¤¬ +は \fInumber\fP を NUL 文字で終端された +\fIndigits\fP 文字の文字列へ変換し、その文字列へのポインタを返す +(\fIndigits\fP が .I double -¤ÎÀºÅ٤ˤè¤Ã¤Æ·èÄꤵ¤ì¤ë¥·¥¹¥Æ¥à°Í¸¤Î¾å¸ÂÃͤè¤êÂ礭¤¤¾ì¹ç¤Ï¡¢ -¤½¤Î¾ò·ïÃͤ¬ \fIndigits\fP ¤ÎÃͤȤʤë)¡£ +の精度によって決定されるシステム依存の上限値より大きい場合は、 +その条件値が \fIndigits\fP の値となる)。 .I number -¤¬ 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢ºÇ¾å°Ì¤Î·å¤Ï 0 °Ê³°¤Ç¤¢¤ë¡£ -ºÇ²¼°Ì¤Î·å¤Ï´Ý¤á¤é¤ì¤ë¡£ -ʸ»úÎó¤Ë¤Ï¾®¿ôÅÀ¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£¤½¤Î¤«¤ï¤ê¤Ë¡¢Ê¸»úÎó¤ÎÀèƬ¤«¤é¤Î¾®¿ôÅÀ¤Î -°ÌÃÖ¤¬ \fI*decpt\fP ¤ËÊÝ»ý¤µ¤ì¤ë¡£ -\fI*decpt\fP ¤¬Éé¤ÎÃͤξì¹ç¡¢¾®¿ôÅÀ¤¬Ê¸»úÎó¤ÎÀèƬ¤Îº¸Â¦¤Ë¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -¤â¤·(\fInumber\fP¤Î)Éä¹æ¤¬Éé¤Ê¤é¤Ð \fI*sign\fP ¤Ï 0 °Ê³°¤ÎÃͤˡ¢ -¤½¤¦¤Ç¤Ê¤±¤ì¤Ð 0 ¤ËÀßÄꤵ¤ì¤ë¡£ +が 0 でなければ、最上位の桁は 0 以外である。 +最下位の桁は丸められる。 +文字列には小数点は含まれない。そのかわりに、文字列の先頭からの小数点の +位置が \fI*decpt\fP に保持される。 +\fI*decpt\fP が負の値の場合、小数点が文字列の先頭の左側にあることを意味する。 +もし(\fInumber\fPの)符号が負ならば \fI*sign\fP は 0 以外の値に、 +そうでなければ 0 に設定される。 .I number -¤¬ 0 ¤Ê¤é¡¢\fI*decpt\fP ¤¬ 0 ¤« 1 ¤«¤Ï̤µ¬Äê¤Ç¤¢¤ë¡£ +が 0 なら、\fI*decpt\fP が 0 か 1 かは未規定である。 .PP -´Ø¿ô +関数 .BR fcvt () -¤Ï +は .BR ecvt () -¤ÈƱ¤¸µ¡Ç½¤ò»ý¤Ä¤¬¡¢\fIndigits\fP ¤Ï¾®¿ôÅÀ°Ê²¼¤Îʸ»ú¿ô¤ò»ØÄꤹ¤ë¡£ -.SH ÊÖ¤êÃÍ -´Ø¿ô +と同じ機能を持つが、\fIndigits\fP は小数点以下の文字数を指定する。 +.SH 返り値 +関数 .BR ecvt () -¤È +と .BR fcvt () -¤Ï \fInumber\fP ¤Î ASCII ɽ¸½¤ò´Þ¤à -ÀÅŪ¤ÊÎΰèÆâ¤Îʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤Îʸ»úÎó¤Ï +は \fInumber\fP の ASCII 表現を含む +静的な領域内の文字列へのポインタを返す。 +この文字列は .BR ecvt () -¤ä +や .BR fcvt () -¤Î¸Æ¤Ó½Ð¤·¤Î¤¿¤Ó¤Ë¾å½ñ¤­¤µ¤ì¤ë¡£ -.SH ½àµò -SVr2¡£ -POSIX.1-2001 ¤Ç¤Ï¡Ö²áµî¤Î̾»Ä (LEGACY)¡×¤È°ÌÃÖÉÕ¤±¤é¤ì¤Æ¤¤¤ë¡£ -POSIX.1-2008 ¤Ç¤Ï +の呼び出しのたびに上書きされる。 +.SH 準拠 +SVr2。 +POSIX.1-2001 では「過去の名残 (LEGACY)」と位置付けられている。 +POSIX.1-2008 では .BR ecvt () -¤È +と .BR fcvt () -¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¡¢Âå¤ï¤ê¤Ë +の仕様が削除され、代わりに .BR sprintf (3) -¤Î»ÈÍѤ¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë(¤·¤«¤· +の使用が推奨されている(しかし .BR snprintf (3) -¤¬¤è¤êŬÀÚ¤«¤â¤·¤ì¤Ê¤¤)¡£ -.SH Ãí°Õ -Linux libc4 ¤È libc5 ¤Ç¤Ï +がより適切かもしれない)。 +.SH 注意 +Linux libc4 と libc5 では .I ndigits -¤Î·¿¤Ï +の型は .I size_t -¤È¤Ê¤Ã¤Æ¤¤¤¿¡£ -¾®¿ôÅÀ¤Ë¥Ô¥ê¥ª¥É¤ò»È¤ï¤Ê¤¤¥í¥±¡¼¥ë¤â¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +となっていた。 +小数点にピリオドを使わないロケールもある。 +.SH 関連項目 .BR ecvt_r (3), .BR gcvt (3), .BR qecvt (3), diff --git a/release/man3/ecvt_r.3 b/release/man3/ecvt_r.3 index 09feb681..ec8344c3 100644 --- a/release/man3/ecvt_r.3 +++ b/release/man3/ecvt_r.3 @@ -30,12 +30,12 @@ .\" Translated Sun Sep 22 09:46:55 2002 .\" by Akihiro MOTOKI .\" -.\"WORD: obsolete Çѻߤµ¤ì¤¿ +.\"WORD: obsolete 廃止された .\" .TH ECVT_R 3 2007-07-26 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -ecvt_r, fcvt_r, qecvt_r, qfcvt_r \- ÉâÆ°¾®¿ôÅÀ¿ô¤Îʸ»úÎó¤Ø¤ÎÊÑ´¹ -.SH ½ñ¼° +.SH 名前 +ecvt_r, fcvt_r, qecvt_r, qfcvt_r \- 浮動小数点数の文字列への変換 +.SH 書式 .nf .B #include .sp @@ -53,9 +53,9 @@ ecvt_r, fcvt_r, qecvt_r, qfcvt_r \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -67,35 +67,35 @@ glibc _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 .RE .ad b -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR ecvt_r (), .BR fcvt_r (), .BR qecvt_r (), .BR qfcvt_r () -¤Ï¡¢¤½¤ì¤¾¤ì +は、それぞれ .BR ecvt (3), .BR fcvt (3), .BR qecvt (3), .BR qfcvt (3) -¤ÈƱ¤¸¤Ç¤¢¤ë¤¬¡¢ -ÀÅŪ¥Ð¥Ã¥Õ¥¡¤ÎÂå¤ï¤ê¤Ë¡¢Ä¹¤µ +と同じであるが、 +静的バッファの代わりに、長さ .I len -¤Î»ØÄꤵ¤ì¤¿ +の指定された .I buf -¤Ë·ë²Ì¤ò³ÊǼ¤¹¤ëÅÀ¤¬°Û¤Ê¤ë¡£ +に結果を格納する点が異なる。 .BR ecvt (3), .BR qecvt (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤ò¡¢¤½¤ì°Ê³°¤Ï \-1 ¤òÊÖ¤¹¡£ -.SH ½àµò -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -¤³¤ì¤é¤Î´Ø¿ô¤ÏÇѻߤµ¤ì¤¿¡£Âå¤ï¤ê¤Ë +を参照のこと。 +.SH 返り値 +これらの関数は成功すると 0 を、それ以外は \-1 を返す。 +.SH 準拠 +これらの関数は GNU による拡張である。 +.SH 注意 +これらの関数は廃止された。代わりに .BR sprintf (3) -¤Î»ÈÍѤò¿ä¾©¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +の使用を推奨する。 +.SH 関連項目 .BR ecvt (3), .BR qecvt (3), .BR sprintf (3) diff --git a/release/man3/encrypt.3 b/release/man3/encrypt.3 index 1f6d2c70..8a1c5324 100644 --- a/release/man3/encrypt.3 +++ b/release/man3/encrypt.3 @@ -29,26 +29,26 @@ .\" by Yuichi SATO .\" Updated & Modified Sat Jan 17 01:27:31 JST 2004 by Yuichi SATO .\" -.\"WORD: encrypt °Å¹æ²½ -.\"WORD: decrypt Éü¹æ²½ +.\"WORD: encrypt 暗号化 +.\"WORD: decrypt 復号化 .\" .TH ENCRYPT 3 2003-04-04 "" "Linux Programmer's Manual" -.SH ̾Á° -encrypt, setkey, encrypt_r, setkey_r \- 64 ¥Ó¥Ã¥È¤Î¥á¥Ã¥»¡¼¥¸¤ò°Å¹æ²½¤¹¤ë -.SH ½ñ¼° -.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) »²¾È */" +.SH 名前 +encrypt, setkey, encrypt_r, setkey_r \- 64 ビットのメッセージを暗号化する +.SH 書式 +.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "void encrypt(char " block "[64], int " edflag ); .sp -.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "void setkey(const char *" key ); .sp -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp @@ -57,39 +57,39 @@ encrypt, setkey, encrypt_r, setkey_r \- 64 .BI "void encrypt_r(char *" block ", int " edflag \ ", struct crypt_data *" data ); .sp -¤³¤ì¤é¤Î´Ø¿ô¤Ï \fI\-lcrypt\fP ¤Ç¥ê¥ó¥¯¤¹¤ëɬÍפ¬¤¢¤ë¡£ -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢64 ¥Ó¥Ã¥È¤Î¥á¥Ã¥»¡¼¥¸¤Î°Å¹æ²½¤ÈÉü¹æ²½¤ò¹Ô¤¦¡£ +これらの関数は \fI\-lcrypt\fP でリンクする必要がある。 +.SH 説明 +これらの関数は、64 ビットのメッセージの暗号化と復号化を行う。 .BR setkey () -´Ø¿ô¤Ï +関数は .BR encrypt () -¤Ë¤è¤Ã¤Æ»È¤ï¤ì¤ë°Å¹æ¸°¤òÀßÄꤹ¤ë¡£ -¤³¤³¤Ç»È¤ï¤ì¤ë°ú¤­¿ô +によって使われる暗号鍵を設定する。 +ここで使われる引き数 .I key -¤Ï 64 ¥Ð¥¤¥È¤ÎÇÛÎó¤Ç¤¢¤ê¡¢³Æ¥Ð¥¤¥È¤Ï¿ôÃÍ 1 ¤Þ¤¿¤Ï 0 ¤Ç¤¢¤ë¡£ -n=8*i-1 ¤ËÂФ¹¤ë¥Ð¥¤¥È key[n] ¤Ï̵»ë¤µ¤ì¤ë¤Î¤Ç¡¢ -Í­¸ú¤Ê°Å¹æ¸°¤ÎŤµ¤Ï 56 ¥Ó¥Ã¥È¤Ë¤Ê¤ë¡£ +は 64 バイトの配列であり、各バイトは数値 1 または 0 である。 +n=8*i-1 に対するバイト key[n] は無視されるので、 +有効な暗号鍵の長さは 56 ビットになる。 .PP .BR encrypt () -´Ø¿ô¤Ï¡¢ +関数は、 .I edflag -¤¬ 0 ¤Î¾ì¹ç¤Ï°Å¹æ²½¤·¡¢1 ¤¬ÅϤµ¤ì¤¿¾ì¹ç¤ÏÉü¹æ²½¤¹¤ë¤È¤¤¤¦¤è¤¦¤Ë¡¢ -ÅϤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤òÊѹ¹¤¹¤ë¡£ -°ú¤­¿ô +が 0 の場合は暗号化し、1 が渡された場合は復号化するというように、 +渡されたバッファを変更する。 +引き数 .I key -¤ÈƱÍͤˡ¢ +と同様に、 .I block -¤Ï¥¨¥ó¥³¡¼¥É¤µ¤ì¤¿¼ÂºÝ¤ÎÃͤòɽ¸½¤¹¤ë¥Ó¥Ã¥È¤ÎÇÛÎó¤Ç¤¢¤ë¡£ -·ë²Ì¤Ï¤³¤ÎƱ¤¸ÇÛÎó¤ò»È¤Ã¤ÆÊÖ¤µ¤ì¤ë¡£ +はエンコードされた実際の値を表現するビットの配列である。 +結果はこの同じ配列を使って返される。 .PP -¤³¤ì¤é 2 ¤Ä¤Î´Ø¿ô¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È (reentrant) ¤Ç¤Ï¤Ê¤¤¡£ -¤Ä¤Þ¤ê°Å¹æ¸°¥Ç¡¼¥¿¤ÏÀÅŪ¤ÊÎΰè¤ËÊݸ¤µ¤ì¤ë¡£ -´Ø¿ô +これら 2 つの関数はリエントラント (reentrant) ではない。 +つまり暗号鍵データは静的な領域に保存される。 +関数 .BR setkey_r () -¤È +と .BR encrypt_r () -¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È¤Ê¥Ð¡¼¥¸¥ç¥ó¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ï°Å¹æ¸°¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¤¿¤á¤Ë°Ê²¼¤Î¤è¤¦¤Ê¹½Â¤ÂΤò»È¤¦¡£ +はリエントラントなバージョンである。 +これらの関数は暗号鍵データを保持するために以下のような構造体を使う。 .in +4n .nf @@ -109,40 +109,40 @@ struct crypt_data { .in .PP .BR setkey_r () -¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¤Ï¡¢ +を呼び出す前には、 .I data\->initialized -¤ò 0 ¤ËÀßÄꤹ¤ë¤³¤È¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¤Ê¤Ë¤âÃͤòÊÖ¤µ¤Ê¤¤¡£ -.SH ¥¨¥é¡¼ -¾åµ­¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë +を 0 に設定すること。 +.SH 返り値 +これらの関数は、なにも値を返さない。 +.SH エラー +上記の関数を呼び出す前に .I errno -¤ò 0 ¤ËÀßÄꤹ¤ë¤³¤È¡£ -À®¸ù¤·¤¿¾ì¹ç¡¢¤³¤ÎÃͤÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +を 0 に設定すること。 +成功した場合、この値は変更されない。 .TP .B ENOSYS -(Î㤨¤Ð°ÊÁ°¤Î¥¢¥á¥ê¥«¹ç½°¹ñÍ¢½Ðµ¬À©¤Ê¤É¤Ë¤è¤ê) -¤³¤Î´Ø¿ô¤¬Ä󶡤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ½àµò -´Ø¿ô +(例えば以前のアメリカ合衆国輸出規制などにより) +この関数が提供されていない。 +.SH 準拠 +関数 .BR encrypt () -¤È +と .BR setkey () -¤Ï SVr4, SUSv2, and POSIX.1-2001 ¤Ë½àµò¤¹¤ë¡£ -´Ø¿ô +は SVr4, SUSv2, and POSIX.1-2001 に準拠する。 +関数 .BR encrypt_r () -¤È +と .BR setkey_r () -¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -glibc 2.2 ¤Ç¤Ï¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï DES ¥¢¥ë¥´¥ê¥º¥à¤ò»È¤¦¡£ -.SH Îã -¤³¤ÎÎã¤ò glibc ¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤Ë¤Ï libcrypt ¤È¥ê¥ó¥¯¤¹¤ëɬÍפ¬¤¢¤ë¡£ -¼ÂºÝ¤ËÆ°ºî¤µ¤»¤ë¤¿¤á¤Ë¤Ï¡¢ÇÛÎó +は GNU 拡張である。 +.SH 注意 +glibc 2.2 では、これらの関数は DES アルゴリズムを使う。 +.SH 例 +この例を glibc でコンパイルするには libcrypt とリンクする必要がある。 +実際に動作させるためには、配列 .I key[] -¤È +と .I txt[] -¤ËÍ­¸ú¤Ê¥Ó¥Ã¥È¥Ñ¥¿¡¼¥ó¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +に有効なビットパターンを指定しなければならない。 .sp .nf #define _XOPEN_SOURCE @@ -160,7 +160,7 @@ main(void) encrypt(txt, 1); /* decode */ } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cbc_crypt (3), .BR crypt (3), .BR ecb_crypt (3) diff --git a/release/man3/end.3 b/release/man3/end.3 index 489c73e6..efcff580 100644 --- a/release/man3/end.3 +++ b/release/man3/end.3 @@ -27,55 +27,55 @@ .\" Translated 2008-08-21, Akihiro MOTOKI , LDP v3.05 .\" .TH END 3 2008-07-17 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -etext, edata, end \- ¥×¥í¥°¥é¥à¥»¥°¥á¥ó¥È¤Î½ª¤ï¤ê -.SH ½ñ¼° +.SH 名前 +etext, edata, end \- プログラムセグメントの終わり +.SH 書式 .nf .BI extern " etext" ; .BI extern " edata" ; .BI extern " end" ; .fi -.SH ÀâÌÀ -¤³¤ì¤é¤Î¥·¥ó¥Ü¥ë¤Î¥¢¥É¥ì¥¹¤Ï³Æ¼ï¤Î¥×¥í¥°¥é¥à¥»¥°¥á¥ó¥È¤Î½ª¤ï¤ê¤ò¼¨¤¹¡£ +.SH 説明 +これらのシンボルのアドレスは各種のプログラムセグメントの終わりを示す。 .TP .I etext -¥Æ¥­¥¹¥È¥»¥°¥á¥ó¥È (¥×¥í¥°¥é¥à¤Î¥³¡¼¥É) ¤ÎËöÈø¤Î¼¡¤Î¥¢¥É¥ì¥¹¡£ +テキストセグメント (プログラムのコード) の末尾の次のアドレス。 .TP .I edata -½é´ü²½¤µ¤ì¤¿¥Ç¡¼¥¿¤Î¥»¥°¥á¥ó¥È¤ÎËöÈø¤Î¼¡¤Î¥¢¥É¥ì¥¹¡£ +初期化されたデータのセグメントの末尾の次のアドレス。 .TP .I end -½é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ç¡¼¥¿¤Î¥»¥°¥á¥ó¥È (BSS ¥»¥°¥á¥ó¥È¤È¤â¸À¤ï¤ì¤ë) -¤ÎËöÈø¤Î¼¡¤Î¥¢¥É¥ì¥¹¡£ -.SH ½àµò -¤³¤ì¤é¤Î¥·¥ó¥Ü¥ë¤ÏĹǯ¤Û¤È¤ó¤É¤Î UNIX ¥·¥¹¥Æ¥à¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -ɸ½à²½¤µ¤ì¤Æ¤Ï¤¤¤Ê¤¤¡£Ãí°Õ¤·¤Æ»È¤¦¤³¤È¡£ -.SH Ãí°Õ -¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤ì¤é¤Î¥·¥ó¥Ü¥ë¤ÏÌÀ¼¨Åª¤ËÀë¸À¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ì¤é¤Ï¤É¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç¤âÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +初期化されていないデータのセグメント (BSS セグメントとも言われる) +の末尾の次のアドレス。 +.SH 準拠 +これらのシンボルは長年ほとんどの UNIX システムで提供されているが、 +標準化されてはいない。注意して使うこと。 +.SH 注意 +プログラムではこれらのシンボルは明示的に宣言しなければならない。 +これらはどのヘッダファイルでも定義されていない。 -¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥·¥ó¥Ü¥ë¤Î̾Á°¤ÏÁ°¤Ë¥¢¥ó¥À¡¼¥¹¥³¥¢¤¬ -ÉÕ¤¤¤Æ¤¤¤Æ¡¢ +いくつかのシステムでは、これらのシンボルの名前は前にアンダースコアが +付いていて、 .IR _etext , .IR _edata , .I _end -¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ -Linux ¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ -¤³¤ì¤é¤Î¥·¥ó¥Ü¥ë¤Ç¤âÄêµÁ¤µ¤ì¤ë¡£ +となっている。 +Linux でコンパイルされたプログラムでは、 +これらのシンボルでも定義される。 -¥×¥í¥°¥é¥à¤Î¼Â¹Ô³«»Ï»þ¤Ë¡¢¥×¥í¥°¥é¥à¡¦¥Ö¥ì¡¼¥¯¤Ï +プログラムの実行開始時に、プログラム・ブレークは .I &end -¤Î¶á¤¯¤Î¤É¤³¤« (¤ª¤½¤é¤¯¼¡¤Î¥Ú¡¼¥¸¤ÎÀèƬ) ¤Ë¤Ê¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢ +の近くのどこか (おそらく次のページの先頭) になる。 +しかしながら、 .BR brk (2) -¤ä +や .BR malloc (3) -¤Ç¥á¥â¥ê¤¬³ä¤êÅö¤Æ¤é¤ì¤ë¤ËÏ¢¤ì¤Æ¡¢¥×¥í¥°¥é¥à¡¦¥Ö¥ì¡¼¥¯¤ÏÊѲ½¤·¤Æ¤¤¤¯¡£ -°ú¤­¿ô¤Ë 0 ¤ò»ØÄꤷ¤Æ +でメモリが割り当てられるに連れて、プログラム・ブレークは変化していく。 +引き数に 0 を指定して .BR sbrk (2) -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¡¢¥×¥í¥°¥é¥à¡¦¥Ö¥ì¡¼¥¯¤Î¸½ºßÃͤòÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ -.SH Îã -²¼µ­¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ê½ÐÎϤ¬ÆÀ¤é¤ì¤ë¡£ +を呼び出すことで、プログラム・ブレークの現在値を知ることができる。 +.SH 例 +下記のプログラムを実行すると、次のような出力が得られる。 .in +4n .nf @@ -85,7 +85,7 @@ First address past: initialized data (edata) 0x804a01c uninitialized data (end) 0x804a024 .fi -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .in .nf @@ -106,7 +106,7 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR objdump (1), .BR readelf (1), .BR sbrk (2), diff --git a/release/man3/envz_add.3 b/release/man3/envz_add.3 index 28fb1ed6..56dbe228 100644 --- a/release/man3/envz_add.3 +++ b/release/man3/envz_add.3 @@ -8,10 +8,10 @@ .\" Translated Mon Feb 2 2003 by Akihiro MOTOKI .\" .TH ENVZ_ADD 3 2007-05-18 "" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 envz_add, envz_entry, envz_get, envz_merge, -envz_remove, envz_strip \- ´Ä¶­ÊÑ¿ôʸ»úÎó¤ÎÁàºî -.SH ½ñ¼° +envz_remove, envz_strip \- 環境変数文字列の操作 +.SH 書式 .nf .B "#include " @@ -34,89 +34,89 @@ envz_remove, envz_strip \- .BI "void envz_strip(char **" envz ", size_t *" envz_len ); .fi -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô glibc ¸ÇÍ­¤Ç¤¢¤ë¡£ +.SH 説明 +これらの関数 glibc 固有である。 .LP -argz vector ¤ÏŤµ¾ðÊóÉÕ¤­¤Îʸ»ú¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +argz vector は長さ情報付きの文字バッファへのポインタである。 .BR argz_add (3) -¤ò»²¾È¤Î¤³¤È¡£ -envz vector ¤Ï¡¢Ê¸»úÎó¤¬ "name=value (̾Á°=ÃÍ)" ¤Î·Á¼°¤Ë¤Ê¤Ã¤Æ¤¤¤ëÆÃÊÌ¤Ê -argz vector ¤Ç¤¢¤ë¡£ -ºÇ½é¤Î \(aq=\(aq °Ê¹ß¤Ï¤¹¤Ù¤ÆÃͤȤߤʤµ¤ì¤ë¡£\(aq=\(aq ¤¬¤Ê¤±¤ì¤Ð¡¢ -ÃÍ¤Ï NULL ¤È²ò¼á¤µ¤ì¤ë¡£(ʸ»úÎó¤Î°ìÈֺǸå¤Îʸ»ú¤¬ \(aq=\(aq ¤Î¾ì¹ç¡¢Ãͤ϶õʸ»úÎó -"" ¤È²ò¼á¤µ¤ì¤ë¡£) +を参照のこと。 +envz vector は、文字列が "name=value (名前=値)" の形式になっている特別な +argz vector である。 +最初の \(aq=\(aq 以降はすべて値とみなされる。\(aq=\(aq がなければ、 +値は NULL と解釈される。(文字列の一番最後の文字が \(aq=\(aq の場合、値は空文字列 +"" と解釈される。) .LP -¤³¤ì¤é¤Î´Ø¿ô¤Ï envz vector ¤òÁàºî¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ +これらの関数は envz vector を操作するためのものである。 .LP .BR envz_add () -¤Ï¡¢Ê¸»úÎó +は、文字列 .RI \&" name = value \&" .RI ( value -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç) ¤Þ¤¿¤Ï +が NULL でない場合) または .RI \&" name \&" .RI ( value -¤¬ NULL ¤Î¾ì¹ç) ¤ò +が NULL の場合) を envz vector .RI ( *envz ,\ *envz_len ) -¤ËÄɲä·¡¢ +に追加し、 .I *envz -¤È +と .I *envz_len -¤ò¹¹¿·¤¹¤ë¡£ +を更新する。 .I name -¤ÈƱ¤¸Ì¾Á°¤ò»ý¤Ä¥¨¥ó¥È¥ê¤¬¤¢¤Ã¤¿¾ì¹ç¡¢¸µ¤Î¥¨¥ó¥È¥ê¤Ïºï½ü¤µ¤ì¤ë¡£ +と同じ名前を持つエントリがあった場合、元のエントリは削除される。 .LP .BR envz_entry () -¤Ï¡¢envz vector +は、envz vector .RI ( envz ,\ envz_len ) -¤«¤é̾Á°¤¬ +から名前が .I name -¤Î¥¨¥ó¥È¥ê¤ò¸¡º÷¤¹¤ë¡£ -¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤Ï¤½¤Î¥¨¥ó¥È¥ê¤òÊÖ¤·¡¢¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +のエントリを検索する。 +見つかった場合はそのエントリを返し、見つからなかった場合は NULL を返す。 .LP .BR envz_get () -¤Ï¡¢envz vector +は、envz vector .RI ( envz ,\ envz_len ) -¤«¤é̾Á°¤¬ +から名前が .I name -¤Î¥¨¥ó¥È¥ê¤ò¸¡º÷¤¹¤ë¡£ -¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤Ï¥¨¥ó¥È¥ê¤ÎÃͤòÊÖ¤·¡¢¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ -(ÃÍ¤Ï NULL ¤Î¾ì¹ç¤â¤¢¤ë¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£Ì¾Á°¤¬ +のエントリを検索する。 +見つかった場合はエントリの値を返し、見つからなかった場合は NULL を返す。 +(値は NULL の場合もあることに注意すること。名前が .I name -¤Î¥¨¥ó¥È¥ê¤Ë \(aq=\(aq Éä¹æ¤¬¤Ê¤¤¾ì¹ç¤¬³ºÅö¤¹¤ë¡£) +のエントリに \(aq=\(aq 符号がない場合が該当する。) .LP .BR envz_merge () -¤Ï¡¢ +は、 .BR envz_add () -¤ÈƱ¤¸¤è¤¦¤Ë +と同じように .I envz2 -¤Î³Æ¥¨¥ó¥È¥ê¤ò +の各エントリを .I *envz -¤ËÄɲ乤롣 +に追加する。 .I override -¤¬¿¿¤Î¾ì¹ç¡¢ +が真の場合、 .I envz2 -¤ÎÃÍ¤Ç +の値で .I *envz -Æâ¤ÎƱ¤¸Ì¾Á°¤ò¤â¤ÄÃͤϾå½ñ¤­¤µ¤ì¤ë¡£ -µ¶¤Î¾ì¹ç¤Ï¾å½ñ¤­¤µ¤ì¤Ê¤¤¡£ +内の同じ名前をもつ値は上書きされる。 +偽の場合は上書きされない。 .LP .BR envz_remove () -¤Ï¡¢Ì¾Á°¤¬ +は、名前が .I name -¤Î¥¨¥ó¥È¥ê¤¬¤¢¤ì¤Ð +のエントリがあれば .RI ( *envz ,\ *envz_len ) -¤«¤éºï½ü¤¹¤ë¡£ +から削除する。 .LP .BR envz_strip () -¤Ï¡¢Ãͤ¬ NULL ¤Î¥¨¥ó¥È¥ê¤ò¤¹¤Ù¤Æºï½ü¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -¥á¥â¥ê³ä¤êÅö¤Æ¤ò¹Ô¤¦ envz ´Ø¿ô·²¤Ï¤¹¤Ù¤Æ \fIerror_t\fP ·¿¤ÎÊÖ¤êÃͤò»ý¤Ä¡£ -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤·¡¢³ä¤êÅö¤Æ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï -\fBENOMEM\fP ¤òÊÖ¤¹¡£ -.SH ½àµò -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£Ãí°Õ¤·¤Æ»ÈÍѤ¹¤ë¤³¤È¡£ -.SH Îã +は、値が NULL のエントリをすべて削除する。 +.SH 返り値 +メモリ割り当てを行う envz 関数群はすべて \fIerror_t\fP 型の返り値を持つ。 +成功した場合は 0 を返し、割り当てエラーが発生した場合は +\fBENOMEM\fP を返す。 +.SH 準拠 +これらの関数は GNU による拡張である。注意して使用すること。 +.SH 例 .nf #include #include @@ -138,5 +138,5 @@ main(int argc, char *argv[], char *envp[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR argz_add (3) diff --git a/release/man3/erf.3 b/release/man3/erf.3 index 66af0d2b..7f74d6ad 100644 --- a/release/man3/erf.3 +++ b/release/man3/erf.3 @@ -39,13 +39,13 @@ .\" Updated & Modified Tue Feb 15 04:46:24 JST 2005 .\" by Yuichi SATO .\" -.\"WORD: complementary error function ÁêÊä¸íº¹´Ø¿ô -.\"WORD: subnormal ÈóÀµµ¬²½¤Î +.\"WORD: complementary error function 相補誤差関数 +.\"WORD: subnormal 非正規化の .\" .TH ERF 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -erf, erff, erfl \- ¸íº¹´Ø¿ô -.SH ½ñ¼° +.SH 名前 +erf, erff, erfl \- 誤差関数 +.SH 書式 .nf .B #include @@ -54,12 +54,12 @@ erf, erff, erfl \- .BI "long double erfl(long double " x ); .fi -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -82,54 +82,54 @@ or .I cc\ -std=c99 .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR erf () -¤Ï \fIx\fP ¤Î¸íº¹´Ø¿ô¤òÊÖ¤¹´Ø¿ô¤Ç¡¢°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +は \fIx\fP の誤差関数を返す関数で、以下のように定義されている。 .TP erf(x) = 2/sqrt(pi)* integral from 0 to x of exp(\-t*t) dt -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +.SH 返り値 +成功すると、これらの関数は .I x -¤Î¸íº¹´Ø¿ô¤òÊÖ¤¹¡£ -ÊÖ¤êÃÍ¤Ï [\-1,\ 1] ¤ÎÈϰϤȤʤ롣 +の誤差関数を返す。 +返り値は [\-1,\ 1] の範囲となる。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬ +0 (\-0) ¤Î¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 (\-0) の場合、+0 (\-0) が返される。 .I x -¤¬Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤Î¾ì¹ç¡¢+1 (\-1) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大 (負の無限大) の場合、+1 (\-1) が返される。 .I x -¤¬ÈóÀµµ¬²½¿ô¤Î¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢ -ÊÖ¤êÃÍ¤Ï 2*x/sqrt(pi) ¤È¤Ê¤ë¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +が非正規化数の場合、範囲エラー (range error) が発生し、 +返り値は 2*x/sqrt(pi) となる。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -ÈÏ°Ï¥¨¥é¡¼ (range error): ·ë²Ì¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¹¤ë (\fIx\fP ¤¬ÈóÀµµ¬²½¿ô) +範囲エラー (range error): 結果がアンダーフローする (\fIx\fP が非正規化数) .\" .I errno .\" is set to .\" .BR ERANGE . -¥¢¥ó¥À¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +アンダーフロー浮動小数点例外 .RB ( FE_UNDERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6785 -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +版の関数は SVr4, 4.3BSD にも準拠している。 +.SH 関連項目 .BR cerf (3), .BR erfc (3), .BR exp (3) diff --git a/release/man3/erfc.3 b/release/man3/erfc.3 index 19f66b94..8614edb2 100644 --- a/release/man3/erfc.3 +++ b/release/man3/erfc.3 @@ -25,12 +25,12 @@ .\" all rights reserved. .\" Translated 2008-09-15, Akihiro MOTOKI .\" -.\"WORD: subnormal ÈóÀµµ¬²½¤Î +.\"WORD: subnormal 非正規化の .\" .TH ERFC 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -erfc, erfcf, erfcl \- ÁêÊä¸íº¹´Ø¿ô -.SH ½ñ¼° +.SH 名前 +erfc, erfcf, erfcl \- 相補誤差関数 +.SH 書式 .nf .B #include @@ -39,12 +39,12 @@ erfc, erfcf, erfcl \- .BI "long double erfcl(long double " x ); .fi -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -67,67 +67,67 @@ or .I cc\ -std=c99 .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR erfc () -´Ø¿ô¤Ï +関数は .I x -¤ÎÁêÊä¸íº¹´Ø¿ô¡¢¤Ä¤Þ¤ê 1.0 \- erf(x) ¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +の相補誤差関数、つまり 1.0 \- erf(x) を返す。 +.SH 返り値 +成功すると、これらの関数は .I x -¤ÎÁêÊä¸íº¹´Ø¿ô¤òÊÖ¤¹¡£ -ÊÖ¤êÃÍ¤Ï [0,2] ¤ÎÈϰϤȤʤ롣 +の相補誤差関数を返す。 +返り値は [0,2] の範囲となる。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬ +0 ¤« \-0 ¤Î¾ì¹ç¡¢1 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 か \-0 の場合、1 が返される。 .I x -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢+0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大の場合、+0 が返される。 .I x -¤¬Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢+2 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が負の無限大の場合、+2 が返される。 -´Ø¿ô¤Î·ë²Ì¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤·¡¢É½¸½¤Ç¤­¤Ê¤¤ÃͤȤʤë¾ì¹ç¤Ï¡¢ -ÊÖ¤êÃÍ¤Ï 0.0 ¤È¤Ê¤ë¡£ +関数の結果がアンダーフローし、表現できない値となる場合は、 +返り値は 0.0 となる。 -´Ø¿ô¤Î·ë²Ì¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¹¤ë¤¬¡¢ -ɽ¸½¤Ç¤­¤ëÃÍ (¤Ä¤Þ¤êÈóÀµµ¬²½¿ô (subnormal)) ¤È¤Ê¤ë¾ì¹ç¤Ï¡¢ -.\" Î㤨¤Ð x86-32 ¤Ç¤Î erfc(27) -¤½¤ÎÃͤ¬ÊÖ¤µ¤ì¡¢ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤¹¤ë¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +関数の結果がアンダーフローするが、 +表現できる値 (つまり非正規化数 (subnormal)) となる場合は、 +.\" 例えば x86-32 での erfc(27) +その値が返され、範囲エラー (range error) が発生する。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤Î¥¢¥ó¥À¡¼¥Õ¥í¡¼ (·ë²Ì¤¬ÈóÀµµ¬²½¿ô) +範囲エラー: 結果のアンダーフロー (結果が非正規化数) .\" .I errno .\" is set to .\" .BR ERANGE . -¥¢¥ó¥À¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +アンダーフロー浮動小数点例外 .RB ( FE_UNDERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6785 -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH Ãí°Õ +版の関数は SVr4, 4.3BSD にも準拠している。 +.SH 注意 .BR erfc () -´Ø¿ô¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢ +関数が提供されているのは、 .I x -¤¬Â礭¤ÊÃͤξì¹ç¤Ë (erf(x) ¤ÎÃÍ¤Ï 1 ¤Ë¶áÉÕ¤¤¤Æ¤¤¤¯¤³¤È¤Ç) -1-erf(x) ¤Î·×»»¤Ë¤ª¤¤¤ÆÀºÅÙ¤¬¼º¤ï¤ì¤ë¤Î¤òÈò¤±¤ë¤¿¤á¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +が大きな値の場合に (erf(x) の値は 1 に近付いていくことで) +1-erf(x) の計算において精度が失われるのを避けるためである。 +.SH 関連項目 .BR cerf (3), .BR erf (3), .BR exp (3) diff --git a/release/man3/err.3 b/release/man3/err.3 index c23c6af9..236dd624 100644 --- a/release/man3/err.3 +++ b/release/man3/err.3 @@ -39,10 +39,10 @@ .\" Translated 2003-03-10, Akihiro MOTOKI .\" .TH ERR 3 2011-09-15 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -err, verr, errx, verrx, warn, vwarn, warnx, vwarnx \- ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òÀ°·Á¤¹¤ë +.SH 名前 +err, verr, errx, verrx, warn, vwarn, warnx, vwarnx \- エラーメッセージを整形する .Nd -.SH ½ñ¼° +.SH 書式 .nf .B #include .sp @@ -64,51 +64,51 @@ err, verr, errx, verrx, warn, vwarn, warnx, vwarnx \- .sp .BI "void vwarnx(const char *" fmt ", va_list " args ); .fi -.SH ÀâÌÀ +.SH 説明 .BR err () -´Ø¿ô·²¤È +関数群と .BR warn () -´Ø¿ô·²¤Ï¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òÀ°·Á¤·¤Æɸ½à¥¨¥é¡¼½ÐÎϤËɽ¼¨¤¹¤ë¡£ -¤É¤Î´Ø¿ô¤Î¾ì¹ç¤â¡¢(¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤ò¾Ê¤¤¤¿)¥×¥í¥°¥é¥à̾¡¢ -¥³¥í¥ó 1¸Ä¡¢¥¹¥Ú¡¼¥¹ 1¸Ä¤¬½ÐÎϤµ¤ì¤ë¡£ +関数群は、エラーメッセージを整形して標準エラー出力に表示する。 +どの関数の場合も、(ディレクトリ部分を省いた)プログラム名、 +コロン 1個、スペース 1個が出力される。 .I fmt -°ú¤­¿ô¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ +引き数が NULL でない場合、 .BR printf (3) -¤ÈƱÍͤËÀ°·Á¤¬¹Ô¤ï¤ì¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬½ÐÎϤµ¤ì¤ë¡£ -½ÐÎϤϲþ¹Ôʸ»ú¤Ç½ª¤ï¤ë¡£ +と同様に整形が行われ、エラーメッセージが出力される。 +出力は改行文字で終わる。 .PP -\"O motoki: based on a code or ¡Á ¤Î¡Öa code¡×¤È¤Ï¡© -´Ø¿ô +\"O motoki: based on a code or 〜 の「a code」とは? +関数 .BR err (), .BR verr (), .BR warn (), .BR vwarn () -¤Ï¡¢¥°¥í¡¼¥Ð¥ëÊÑ¿ô +は、グローバル変数 .I errno -¤Ë´ð¤Å¤¤¤Æ +に基づいて .BR strerror (3) -¤«¤éÆÀ¤¿¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ¹¤ë¡£ +から得たエラーメッセージを出力する。 .I fmt -°ú¤­¿ô¤¬ NULL -¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢°ì¸Ä¤º¤Ä¤Î¥³¥í¥ó¤È¥¹¥Ú¡¼¥¹¤Ë³¤±¤Æ½ÐÎϤ¹¤ë¡£ +引き数が NULL +でない場合は、一個ずつのコロンとスペースに続けて出力する。 .PP -´Ø¿ô +関数 .BR errx (), .BR warnx () -¤Ï¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òÉÕ¤±²Ã¤¨¤Ê¤¤¡£ +はエラーメッセージを付け加えない。 .PP -´Ø¿ô +関数 .BR err (), .BR verr (), .BR errx (), .BR verrx () -¤ÏÊÖ¤êÃͤòÊÖ¤µ¤Ê¤¤¤¬¡¢°ú¤­¿ô +は返り値を返さないが、引き数 .I eval -¤ÎÃͤò exit status ¤ËÀßÄꤷ½ªÎ»¤¹¤ë¡£ -.SH Îã -¸½ºß¤Î +の値を exit status に設定し終了する。 +.SH 例 +現在の .I errno -¤Î¾ðÊó¤òɽ¼¨¤·¡¢½ªÎ»¤¹¤ë: +の情報を表示し、終了する: .in +4n .nf @@ -119,7 +119,7 @@ if ((fd = open(file_name, O_RDONLY, 0)) == \-1) .fi .in .PP -¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¡¢½ªÎ»¤¹¤ë: +エラーメッセージを表示し、終了する: .in +4n .nf @@ -128,7 +128,7 @@ if (tm.tm_hour < START_TIME) .fi .in .PP -¥¨¥é¡¼¤ò·Ù¹ðɽ¼¨¤¹¤ë: +エラーを警告表示する: .in +4n .nf @@ -139,17 +139,17 @@ if ((fd = open(block_device, O_RDONLY, 0)) == \-1) err(1, "%s", block_device); .fi .in -.SH ½àµò -¤³¤ì¤é¤Î´Ø¿ô¤ÏÈóɸ½à¤Î BSD ³ÈÄ¥¤Ç¤¢¤ë¡£ -.\" .SH Îò»Ë -.\" ´Ø¿ô +.SH 準拠 +これらの関数は非標準の BSD 拡張である。 +.\" .SH 歴史 +.\" 関数 .\" .BR err () -.\" ¤È +.\" と .\" .BR warn () -.\" ¤Ï +.\" は .\" 4.4BSD -.\" ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +.\" で初めて登場した。 +.SH 関連項目 .BR error (3), .BR exit (3), .BR perror (3), diff --git a/release/man3/errno.3 b/release/man3/errno.3 index fd6ef39e..10fb77c5 100644 --- a/release/man3/errno.3 +++ b/release/man3/errno.3 @@ -39,460 +39,460 @@ .\" Updated 2008-08-07, Akihiro MOTOKI, Catch up to LDP v3.05 .\" .TH ERRNO 3 2008-07-09 "" "Linux Programmer's Manual" -.SH ̾Á° -errno \- ľ¶á¤ËȯÀ¸¤·¤¿¥¨¥é¡¼¤ÎÈÖ¹æ -.SH ½ñ¼° +.SH 名前 +errno \- 直近に発生したエラーの番号 +.SH 書式 .B #include .\".sp .\".BI "extern int " errno ; -.SH ÀâÌÀ -¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë +.SH 説明 +ヘッダファイル .I -¤ÇÀ°¿ô·¿¤ÎÊÑ¿ô +で整数型の変数 .I errno -¤¬ÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä¤¤¤¯¤Ä¤«¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ï¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿ºÝ¤Ë -¤³¤ÎÊÑ¿ô¤Ë¤½¤Î¸¶°ø¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -¤³¤ÎÃͤϸƤӽФ·¤ÎÊÖ¤êÃͤ¬¥¨¥é¡¼ (¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤Ï -\-1 ¤Ç¡¢¤Û¤È¤ó¤É¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ç¤Ï \-1 ¤« NULL) ¤ò¼¨¤·¤¿¤È¤­¤Ë -¤Î¤ß°ÕÌ£¤ò»ý¤Ä¤¬¡¢¥é¥¤¥Ö¥é¥ê´Ø¿ô¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤â +が定義されており、 +システムコールやいくつかのライブラリ関数は、エラーが発生した際に +この変数にその原因を示す値を設定する。 +この値は呼び出しの返り値がエラー (ほとんどのシステムコールでは +\-1 で、ほとんどのライブラリ関数では \-1 か NULL) を示したときに +のみ意味を持つが、ライブラリ関数は成功した場合も .I errno -¤òÊѹ¹¤¹¤ë¤³¤È¤¬µö¤µ¤ì¤Æ¤¤¤ë¡£ +を変更することが許されている。 -Í­¸ú¤Ê¥¨¥é¡¼ÈÖ¹æ¤Ï¤¤¤º¤ì¤â 0 °Ê³°¤ÎÃͤò»ý¤Ä¡£ -¤É¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤â¥é¥¤¥Ö¥é¥ê´Ø¿ô¤â -\fIerrno\fP ¤ò 0 ¤ËÀßÄꤹ¤ë¤³¤È¤Ï¤Ê¤¤¡£ +有効なエラー番号はいずれも 0 以外の値を持つ。 +どのシステムコールもライブラリ関数も +\fIerrno\fP を 0 に設定することはない。 -¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä¥é¥¤¥Ö¥é¥ê´Ø¿ô (Î㤨¤Ð +いくつかのシステムコールやライブラリ関数 (例えば .BR getpriority (2)) -¤Ç¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¤ÎÍ­¸ú¤ÊÊÖ¤êÃͤȤ·¤Æ \-1 ¤¬ÊÖ¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ -¤³¤Î¤è¤¦¤Ê¾ì¹ç¡¢À®¸ù¤Ê¤Î¤«¥¨¥é¡¼¤Ê¤Î¤«¤ò¶èÊ̤¹¤ë¤¿¤á¤Ë¤Ï¡¢ -¸Æ¤Ó½Ð¤·¤ÎÁ°¤Ë +では、成功した場合の有効な返り値として \-1 が返されることがある。 +このような場合、成功なのかエラーなのかを区別するためには、 +呼び出しの前に .I errno -¤ò 0 ¤ËÀßÄꤷ¤Æ¤ª¤±¤Ð¤è¤¤¡£¸Æ¤Ó½Ð¤·¤ÎÊÖ¤êÃͤ¬¥¨¥é¡¼È¯À¸¤Î²ÄǽÀ­¤ò -¼¨¤¹¤â¤Î¤À¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ +を 0 に設定しておけばよい。呼び出しの返り値がエラー発生の可能性を +示すものだった場合には、 .I errno -¤¬ 0 °Ê³°¤ÎÃͤ«¤ò¸«¤Æ³Îǧ¤¹¤ì¤Ð¤è¤¤¡£ +が 0 以外の値かを見て確認すればよい。 -\fIerrno\fP ¤Ï¡¢ISO C standard ¤Ç \fIint\fP ·¿¤ÎÊѹ¹²Äǽ¤Êº¸ÊÕÃÍ -¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ÌÀ¼¨Åª¤ËÀë¸À¤ò¹Ô¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤; -\fIerrno\fP ¤Ï¥Þ¥¯¥í¤Î¾ì¹ç¤â¤¢¤ê¤¨¤ë¡£ -\fIerrno\fP ¤Ï¥¹¥ì¥Ã¥ÉËè¤ËÃͤò»ý¤Ä¡£ -¤Ä¤Þ¤ê¤¢¤ë¥¹¥ì¥Ã¥É¤Ç \fIerrno\fP ¤¬ÀßÄꤵ¤ì¤Æ¤â¡¢ -¾¤Î¥¹¥ì¥Ã¥É¤Î \fIerrno\fP ¤Ë¤Ï±Æ¶Á¤·¤Ê¤¤¡£ +\fIerrno\fP は、ISO C standard で \fIint\fP 型の変更可能な左辺値 +として定義されており、明示的に宣言を行ってはならない; +\fIerrno\fP はマクロの場合もありえる。 +\fIerrno\fP はスレッド毎に値を持つ。 +つまりあるスレッドで \fIerrno\fP が設定されても、 +他のスレッドの \fIerrno\fP には影響しない。 -POSIX.1 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥¨¥é¡¼Ì¾¤Ë¤Ï¡¢ -¤½¤ì¤¾¤ì°Û¤Ê¤ëÃͤ¬Âбþ¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -⤷¡¢ +POSIX.1 で定義されているすべてのエラー名には、 +それぞれ異なる値が対応していなければならない。 +但し、 .B EAGAIN -¤È +と .B EWOULDBLOCK -¤ÏÎã³°¤Ç¡¢¤³¤ì¤é¤ÏƱ¤¸Ãͤò»ý¤Ã¤Æ¤â¤è¤¤¡£ +は例外で、これらは同じ値を持ってもよい。 .\" The following is now -.\" POSIX.1 (2001 ǯÈÇ) ¤Ç¤Î¥¨¥é¡¼Ì¾¥·¥ó¥Ü¥ë¤Î¥ê¥¹¥È¤ò°Ê²¼¤Ë¼¨¤¹¡£ -.\" ¤³¤ì¤é¤Î¤¦¤Á¡¢ \fBEDOM\fP ¤È \fBERANGE\fP ¤Ï ISO C standard ¤Ë¤¢¤ë¡£ -.\" ¤µ¤é¤Ë¡¢ISO C Amendment 1 ¤Ç¤Ï¡¢¥¨¥é¡¼ÈÖ¹æ \fBEILSEQ\fP ¤¬ -.\" ¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ä¥ï¥¤¥Éʸ»ú¤Ç¤ÎÉä¹æ²½¥¨¥é¡¼¤òɽ¤¹¤¿¤á¤Ë -.\" ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +.\" POSIX.1 (2001 年版) でのエラー名シンボルのリストを以下に示す。 +.\" これらのうち、 \fBEDOM\fP と \fBERANGE\fP は ISO C standard にある。 +.\" さらに、ISO C Amendment 1 では、エラー番号 \fBEILSEQ\fP が +.\" マルチバイト文字やワイド文字での符号化エラーを表すために +.\" 定義されている。 .\" .TP 16 .B E2BIG -°ú¤­¿ô¥ê¥¹¥È¤¬Ä¹²á¤®¤ë (POSIX.1) +引き数リストが長過ぎる (POSIX.1) .TP .B EACCES -µö²Ä¤¬¤Ê¤¤ (POSIX.1) +許可がない (POSIX.1) .TP .B EADDRINUSE -¥¢¥É¥ì¥¹¤¬¤¹¤Ç¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë (POSIX.1) +アドレスがすでに使用されている (POSIX.1) .TP .B EADDRNOTAVAIL -¥¢¥É¥ì¥¹¤¬»ÈÍѤǤ­¤Ê¤¤ (POSIX.1) -.\" EADV ¤Ï HURD ¤Ë¤ª¤¤¤Æ¤À¤±¤Î¥¨¥é¡¼(?) +アドレスが使用できない (POSIX.1) +.\" EADV は HURD においてだけのエラー(?) .TP .B EAFNOSUPPORT -¥¢¥É¥ì¥¹¡¦¥Õ¥¡¥ß¥ê¡¼¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤ (POSIX.1) +アドレス・ファミリーがサポートされていない (POSIX.1) .TP .B EAGAIN -¥ê¥½¡¼¥¹¤¬°ì»þŪ¤ËÍøÍÑÉÔ²Ä +リソースが一時的に利用不可 .RB ( EWOULDBLOCK -¤ÈƱ¤¸ÃͤǤâ¤è¤¤) (POSIX.1) +と同じ値でもよい) (POSIX.1) .TP .B EALREADY -Àܳ¤¬´û¤Ë½èÍýÃæ¤Ç¤¢¤ë (POSIX.1) +接続が既に処理中である (POSIX.1) .TP .B EBADE -ÉÔÀµ¤Ê¤ä¤ê¼è¤ê (exchange) ¤Ç¤¢¤ë +不正なやり取り (exchange) である .TP .B EBADF -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÉÔÀµ¤Ç¤¢¤ë (POSIX.1) +ファイルディスクリプタが不正である (POSIX.1) .TP .B EBADFD -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÉÔÀµ¤Ê¾õÂ֤Ǥ¢¤ë +ファイルディスクリプタが不正な状態である .TP .B EBADMSG -¥á¥Ã¥»¡¼¥¸¤¬ÉÔÀµ¤Ç¤¢¤ë (POSIX.1) +メッセージが不正である (POSIX.1) .TP .B EBADR -ÉÔÀµ¤Ê¥ê¥¯¥¨¥¹¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿ +不正なリクエストディスクリプタ .TP .B EBADRQC -ÉÔÀµ¤Ê¥ê¥¯¥¨¥¹¥È¥³¡¼¥É +不正なリクエストコード .TP .B EBADSLT -ÉÔÀµ¤Ê¥¹¥í¥Ã¥È +不正なスロット .\" EBFONT is defined but appears not to be used by kernel or glibc. .TP .B EBUSY -¥ê¥½¡¼¥¹¤¬»ÈÍÑÃæ¤Ç¤¢¤ë (POSIX.1) +リソースが使用中である (POSIX.1) .TP .B ECANCELED -Áàºî¤¬¥­¥ã¥ó¥»¥ë¤µ¤ì¤¿ (POSIX.1) +操作がキャンセルされた (POSIX.1) .TP .B ECHILD -»Ò¥×¥í¥»¥¹¤¬Ìµ¤¤ (POSIX.1) +子プロセスが無い (POSIX.1) .TP .B ECHRNG -¥Á¥ã¥ó¥Í¥ëÈֹ椬Èϰϳ°¤Ç¤¢¤ë +チャンネル番号が範囲外である .TP .B ECOMM -Á÷¿®»þ¤ËÄÌ¿®¥¨¥é¡¼¤¬È¯À¸¤·¤¿ +送信時に通信エラーが発生した .TP .B ECONNABORTED -Àܳ¤¬Ãæ»ß¤µ¤ì¤¿ (POSIX.1) +接続が中止された (POSIX.1) .TP .B ECONNREFUSED -Àܳ¤¬µñÈݤµ¤ì¤¿ (POSIX.1) +接続が拒否された (POSIX.1) .TP .B ECONNRESET -Àܳ¤¬¥ê¥»¥Ã¥È¤µ¤ì¤¿ (POSIX.1) +接続がリセットされた (POSIX.1) .TP .B EDEADLK -¥ê¥½¡¼¥¹¤Î¥Ç¥Ã¥É¥í¥Ã¥¯¤ò²óÈò¤·¤¿ (POSIX.1) +リソースのデッドロックを回避した (POSIX.1) .TP .B EDEADLOCK .B EDEADLK -¤ÎƱµÁ¸ì +の同義語 .TP .B EDESTADDRREQ -°¸À襢¥É¥ì¥¹¤¬É¬ÍפǤ¢¤ë (POSIX.1) +宛先アドレスが必要である (POSIX.1) .TP .B EDOM -¿ô³Ø´Ø¿ô¤Ç°ú¤­¿ô¤¬Îΰ賰¤Ç¤¢¤ë (out of domain) +数学関数で引き数が領域外である (out of domain) .\" EDOTDOT is defined but appears to be unused .TP .B EDQUOT .\" POSIX just says "Reserved" -¥Ç¥£¥¹¥¯¡¦¥¯¥©¡¼¥¿ (quota) ¤òĶ²á¤·¤¿ (POSIX.1) +ディスク・クォータ (quota) を超過した (POSIX.1) .TP .B EEXIST -¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë (POSIX.1) +ファイルが存在する (POSIX.1) .TP .B EFAULT -¥¢¥É¥ì¥¹¤¬ÉÔÀµ¤Ç¤¢¤ë (POSIX.1) +アドレスが不正である (POSIX.1) .TP .B EFBIG -¥Õ¥¡¥¤¥ë¤¬Â礭²á¤®¤ë (POSIX.1) +ファイルが大き過ぎる (POSIX.1) .TP .B EHOSTDOWN -¥Û¥¹¥È¤¬¥À¥¦¥ó¤·¤Æ¤¤¤ë +ホストがダウンしている .TP .B EHOSTUNREACH -¥Û¥¹¥È¤ËÅþãÉÔǽ¤Ç¤¢¤ë (POSIX.1) +ホストに到達不能である (POSIX.1) .TP .B EIDRM -¼±Ê̻Ҥ¬ºï½ü¤µ¤ì¤¿ (POSIX.1) +識別子が削除された (POSIX.1) .TP .B EILSEQ -ÉÔÀµ¤Ê¥Ð¥¤¥ÈÎó (POSIX.1, C99) +不正なバイト列 (POSIX.1, C99) .TP .B EINPROGRESS -Áàºî¤¬¼Â¹ÔÃæ¤Ç¤¢¤ë (POSIX.1) +操作が実行中である (POSIX.1) .TP .B EINTR -´Ø¿ô¸Æ¤Ó½Ð¤·¤¬³ä¤ê¹þ¤Þ¤ì¤¿ (POSIX.1); +関数呼び出しが割り込まれた (POSIX.1); .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL -°ú¿ô¤¬Ìµ¸ú¤Ç¤¢¤ë (POSIX.1) +引数が無効である (POSIX.1) .TP .B EIO -Æþ½ÐÎÏ¥¨¥é¡¼ (POSIX.1) +入出力エラー (POSIX.1) .TP .B EISCONN -¥½¥±¥Ã¥È¤¬Àܳ¤µ¤ì¤Æ¤¤¤ë (POSIX.1) +ソケットが接続されている (POSIX.1) .TP .B EISDIR -¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë (POSIX.1) +ディレクトリである (POSIX.1) .TP .B EISNAM -̾Á°ÉÕ¤­¤Î¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë +名前付きのファイルである .TP .B EKEYEXPIRED -¸°¤¬´ü¸ÂÀÚ¤ì¤È¤Ê¤Ã¤¿ +鍵が期限切れとなった .TP .B EKEYREJECTED -¸°¤¬¥µ¡¼¥Ð¤Ë¤è¤êµñÈݤµ¤ì¤¿ +鍵がサーバにより拒否された .TP .B EKEYREVOKED -¸°¤¬Ìµ¸ú¤È¤Ê¤Ã¤¿ +鍵が無効となった .TP .B EL2HLT -Ää»ß (¥ì¥Ù¥ë 2) +停止 (レベル 2) .TP .B EL2NSYNC -Ʊ´ü¤Ç¤­¤Æ¤¤¤Ê¤¤ (¥ì¥Ù¥ë 2) +同期できていない (レベル 2) .TP .B EL3HLT -Ää»ß (¥ì¥Ù¥ë 3) +停止 (レベル 3) .TP .B EL3RST -¥ê¥»¥Ã¥È (¥ì¥Ù¥ë 3) +リセット (レベル 3) .TP .B ELIBACC -ɬÍפʶ¦Í­¥é¥¤¥Ö¥é¥ê¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤«¤Ã¤¿ +必要な共有ライブラリにアクセスできなかった .TP .B ELIBBAD -²õ¤ì¤¿¶¦Í­¥é¥¤¥Ö¥é¥ê¤Ë¥¢¥¯¥»¥¹¤·¤è¤¦¤È¤·¤¿ +壊れた共有ライブラリにアクセスしようとした .TP .B ELIBMAX -¥ê¥ó¥¯¤·¤è¤¦¤È¤·¤¿¶¦Í­¥é¥¤¥Ö¥é¥ê¤¬Â¿²á¤®¤ë +リンクしようとした共有ライブラリが多過ぎる .TP .B ELIBSCN -a.out ¤Î¥é¥¤¥Ö¥é¥ê¥»¥¯¥·¥ç¥ó¤¬²õ¤ì¤Æ¤¤¤ë (corrupted) +a.out のライブラリセクションが壊れている (corrupted) .TP .B ELIBEXEC -¶¦Í­¥é¥¤¥Ö¥é¥ê¤òľÀܼ¹ԤǤ­¤Ê¤«¤Ã¤¿ +共有ライブラリを直接実行できなかった .TP .B ELOOP -¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Î²ó¿ô¤¬Â¿²á¤®¤ë (POSIX.1) +シンボリック・リンクの回数が多過ぎる (POSIX.1) .\" ELNRNG is defined but appears to be unused .TP .B EMEDIUMTYPE -´Ö°ã¤Ã¤¿¥á¥Ç¥£¥¢¼ïÊ̤Ǥ¢¤ë +間違ったメディア種別である .TP .B EMFILE -¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤¬Â¿²á¤®¤ë (POSIX.1) +オープンされているファイルが多過ぎる (POSIX.1) .TP .B EMLINK -¥ê¥ó¥¯¤¬Â¿²á¤®¤ë (POSIX.1) +リンクが多過ぎる (POSIX.1) .TP .B EMSGSIZE -¥á¥Ã¥»¡¼¥¸¤¬Ä¹²á¤®¤ë (POSIX.1) +メッセージが長過ぎる (POSIX.1) .TP .B EMULTIHOP .\" POSIX says "Reserved" -¥Þ¥ë¥Á¥Û¥Ã¥× (multihop) ¤ò»î¤ß¤¿ (POSIX.1) +マルチホップ (multihop) を試みた (POSIX.1) .TP .B ENAMETOOLONG -¥Õ¥¡¥¤¥ë̾¤¬Ä¹²á¤®¤ë (POSIX.1) +ファイル名が長過ぎる (POSIX.1) .\" ENAVAIL is defined, but appears not to be used .TP .B ENETDOWN -¥Í¥Ã¥È¥ï¡¼¥¯¤¬ÉÔÄ̤Ǥ¢¤ë (POSIX.1) +ネットワークが不通である (POSIX.1) .TP .B ENETRESET -Àܳ¤¬¥Í¥Ã¥È¥ï¡¼¥¯Â¦¤«¤éÃæ»ß¤µ¤ì¤¿ (POSIX.1) +接続がネットワーク側から中止された (POSIX.1) .TP .B ENETUNREACH -¥Í¥Ã¥È¥ï¡¼¥¯¤¬ÅþãÉÔǽ¤Ç¤¢¤ë (POSIX.1) +ネットワークが到達不能である (POSIX.1) .TP .B ENFILE -¥·¥¹¥Æ¥àÁ´ÂΤǥª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤¬Â¿²á¤®¤ë (POSIX.1) +システム全体でオープンされているファイルが多過ぎる (POSIX.1) .\" ENOANO is defined but appears to be unused. .TP .B ENOBUFS -»ÈÍѲÄǽ¤Ê¥Ð¥Ã¥Õ¥¡¶õ´Ö¤¬¤Ê¤¤ (POSIX.1 (XSI STREAMS option)) +使用可能なバッファ空間がない (POSIX.1 (XSI STREAMS option)) .\" ENOCSI is defined but appears to be unused. .TP .B ENODATA -¥¹¥È¥ê¡¼¥à¤ÎÆɤ߽Ф·¥­¥å¡¼¤ÎÀèƬ¤ËÆɤ߽Ф·²Äǽ¤Ê¥á¥Ã¥»¡¼¥¸¤¬¤Ê¤¤ +ストリームの読み出しキューの先頭に読み出し可能なメッセージがない (POSIX.1) .TP .B ENODEV -¤½¤Î¤è¤¦¤Ê¥Ç¥Ð¥¤¥¹¤Ï̵¤¤ (POSIX.1) +そのようなデバイスは無い (POSIX.1) .TP .B ENOENT -¤½¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥ì¥¯¥È¥ê¤Ï̵¤¤ (POSIX.1) +そのようなファイルやディレクトリは無い (POSIX.1) .TP .B ENOEXEC -¼Â¹Ô¥Õ¥¡¥¤¥ë·Á¼°¤Î¥¨¥é¡¼ (POSIX.1) +実行ファイル形式のエラー (POSIX.1) .TP .B ENOKEY -Í׵ᤵ¤ì¤¿¸°¤¬ÍøÍѤǤ­¤Ê¤¤ +要求された鍵が利用できない .TP .B ENOLCK -ÍøÍѤǤ­¤ë¥í¥Ã¥¯¤¬Ìµ¤¤ (POSIX.1) +利用できるロックが無い (POSIX.1) .TP .B ENOLINK .\" POSIX says "Reserved" -¥ê¥ó¥¯¤¬ÀÚ¤ì¤Æ¤¤¤ë (POSIX.1) +リンクが切れている (POSIX.1) .TP .B ENOMEDIUM -¥á¥Ç¥£¥¢¤¬¸«¤Ä¤«¤é¤Ê¤¤ +メディアが見つからない .TP .B ENOMEM -½½Ê¬¤Ê¶õ¤­¥á¥â¥êÎΰ褬̵¤¤ (POSIX.1) +十分な空きメモリ領域が無い (POSIX.1) .TP .B ENOMSG -Í׵ᤵ¤ì¤¿·¿¤Î¥á¥Ã¥»¡¼¥¸¤¬Â¸ºß¤·¤Ê¤¤ (POSIX.1) +要求された型のメッセージが存在しない (POSIX.1) .TP .B ENONET -¥Þ¥·¥ó¤¬¥Í¥Ã¥È¥ï¡¼¥¯¾å¤Ë¤Ê¤¤ +マシンがネットワーク上にない .TP .B ENOPKG -¥Ñ¥Ã¥±¡¼¥¸¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Ê¤¤ +パッケージがインストールされていない .TP .B ENOPROTOOPT -»ØÄꤵ¤ì¤¿¥×¥í¥È¥³¥ë¤¬ÍøÍѤǤ­¤Ê¤¤ (POSIX.1) +指定されたプロトコルが利用できない (POSIX.1) .TP .B ENOSPC -¥Ç¥Ð¥¤¥¹¤Ë¶õ¤­Îΰ褬̵¤¤ (POSIX.1) +デバイスに空き領域が無い (POSIX.1) .TP .B ENOSR -»ØÄꤵ¤ì¤¿¥¹¥È¥ê¡¼¥à¡¦¥ê¥½¡¼¥¹¤¬Â¸ºß¤·¤Ê¤¤ (POSIX.1 (XSI STREAMS option)) +指定されたストリーム・リソースが存在しない (POSIX.1 (XSI STREAMS option)) .TP .B ENOSTR -¥¹¥È¥ê¡¼¥à¤Ç¤Ï¤Ê¤¤ (POSIX.1 (XSI STREAMS option)) +ストリームではない (POSIX.1 (XSI STREAMS option)) .TP .B ENOSYS -´Ø¿ô¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤ (POSIX.1) +関数が実装されていない (POSIX.1) .TP .B ENOTBLK -¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤¬É¬ÍפǤ¢¤ë +ブロックデバイスが必要である .TP .B ENOTCONN -¥½¥±¥Ã¥È¤¬Àܳ¤µ¤ì¤Æ¤¤¤Ê¤¤ (POSIX.1) +ソケットが接続されていない (POSIX.1) .TP .B ENOTDIR -¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤ (POSIX.1) +ディレクトリではない (POSIX.1) .TP .B ENOTEMPTY -¥Ç¥£¥ì¥¯¥È¥ê¤¬¶õ¤Ç¤Ï¤Ê¤¤ (POSIX.1) +ディレクトリが空ではない (POSIX.1) .\" ENOTNAM is defined but appears to be unused. .TP .B ENOTSOCK -¥½¥±¥Ã¥È¤Ç¤Ï¤Ê¤¤ (POSIX.1) +ソケットではない (POSIX.1) .TP .B ENOTSUP -Áàºî¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤ (POSIX.1) +操作がサポートされていない (POSIX.1) .TP .B ENOTTY -I/O À©¸æÁàºî¤¬Å¬ÀڤǤʤ¤ (POSIX.1) +I/O 制御操作が適切でない (POSIX.1) .TP .B ENOTUNIQ -̾Á°¤¬¥Í¥Ã¥È¥ï¡¼¥¯¤Ç°ì°Õ¤Ç¤Ï¤Ê¤¤ +名前がネットワークで一意ではない .TP .B ENXIO -¤½¤Î¤è¤¦¤Ê¥Ç¥Ð¥¤¥¹¤ä¥¢¥É¥ì¥¹¤Ï¤Ê¤¤ (POSIX.1) +そのようなデバイスやアドレスはない (POSIX.1) .TP .B EOPNOTSUPP -¥½¥±¥Ã¥È¤Ç¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤Áàºî¤Ç¤¢¤ë (POSIX.1) +ソケットでサポートしていない操作である (POSIX.1) .sp -(Linux ¤Ç¤Ï +(Linux では .B ENOTSUP -¤È +と .B EOPNOTSUPP -¤ÏƱ¤¸Ãͤò»ý¤Ä¤¬¡¢ -POSIX.1 ¤Ë½¾¤¨¤Ðξ¼Ô¤Î¥¨¥é¡¼Ãͤ϶èÊ̤µ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£) +は同じ値を持つが、 +POSIX.1 に従えば両者のエラー値は区別されるべきである。) .TP .B EOVERFLOW -»ØÄꤵ¤ì¤¿¥Ç¡¼¥¿·¿¤Ë³ÊǼ¤¹¤ë¤Ë¤ÏÃͤ¬Â礭²á¤®¤ë (POSIX.1) +指定されたデータ型に格納するには値が大き過ぎる (POSIX.1) .TP .B EPERM -Áàºî¤¬µö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤ (POSIX.1) +操作が許可されていない (POSIX.1) .TP .B EPFNOSUPPORT -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥×¥í¥È¥³¥ë¥Õ¥¡¥ß¥ê¡¼¤Ç¤¢¤ë +サポートされていないプロトコルファミリーである .TP .B EPIPE -¥Ñ¥¤¥×¤¬²õ¤ì¤Æ¤¤¤ë (POSIX.1) +パイプが壊れている (POSIX.1) .TP .B EPROTO -¥×¥í¥È¥³¥ë¡¦¥¨¥é¡¼ (POSIX.1) +プロトコル・エラー (POSIX.1) .TP .B EPROTONOSUPPORT -¥×¥í¥È¥³¥ë¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤ (POSIX.1) +プロトコルがサポートされていない (POSIX.1) .TP .B EPROTOTYPE -¥½¥±¥Ã¥È¤Ë»ØÄê¤Ç¤­¤Ê¤¤¥×¥í¥È¥³¥ë¡¦¥¿¥¤¥×¤Ç¤¢¤ë (POSIX.1) +ソケットに指定できないプロトコル・タイプである (POSIX.1) .TP .B ERANGE -·ë²Ì¤¬Â礭²á¤®¤ë (POSIX.1, C99) +結果が大き過ぎる (POSIX.1, C99) .TP .B EREMCHG -¥ê¥â¡¼¥È¥¢¥É¥ì¥¹¤¬ÊѤï¤Ã¤¿ +リモートアドレスが変わった .TP .B EREMOTE -¥ª¥Ö¥¸¥§¥¯¥È¤¬¥ê¥â¡¼¥È¤Ë¤¢¤ë +オブジェクトがリモートにある .TP .B EREMOTEIO -¥ê¥â¡¼¥È I/O ¥¨¥é¡¼ +リモート I/O エラー .TP .B ERESTART -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ÃæÃǤµ¤ìºÆ¥¹¥¿¡¼¥È¤¬É¬ÍפǤ¢¤ë +システムコールが中断され再スタートが必要である .TP .B EROFS -Æɤ߽Ф·ÀìÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë (POSIX.1) +読み出し専用のファイルシステムである (POSIX.1) .TP .B ESHUTDOWN -ÄÌ¿®Áê¼ê¤¬¥·¥ã¥Ã¥È¥À¥¦¥ó¤µ¤ì¤ÆÁ÷¿®¤Ç¤­¤Ê¤¤ +通信相手がシャットダウンされて送信できない .TP .B ESPIPE -̵¸ú¤Ê¥·¡¼¥¯ (POSIX.1) +無効なシーク (POSIX.1) .TP .B ESOCKTNOSUPPORT -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥½¥±¥Ã¥È¼ïÊ̤Ǥ¢¤ë +サポートされていないソケット種別である .TP .B ESRCH -¤½¤Î¤è¤¦¤Ê¥×¥í¥»¥¹¤Ï̵¤¤ (POSIX.1) +そのようなプロセスは無い (POSIX.1) .\" ESRMNT is defined but appears not to be used .TP .B ESTALE -¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤¬¸Å¤¤¾õÂ֤ˤʤäƤ¤¤ë (POSIX.1) +ファイルハンドルが古い状態になっている (POSIX.1) .sp -NFS ¤ä¾¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Çµ¯¤³¤ê¤¦¤ë¡£ +NFS や他のファイルシステムで起こりうる。 .TP .B ESTRPIPE -¥¹¥È¥ê¡¼¥à¡¦¥Ñ¥¤¥×¡¦¥¨¥é¡¼ +ストリーム・パイプ・エラー .TP .B ETIME -»þ´Ö¤¬·Ð²á¤·¤¿ +時間が経過した (POSIX.1 (XSI STREAMS option)) .sp -(POSIX.1 ¤Ç¤Ï "STREAM +(POSIX.1 では "STREAM .BR ioctl (2) -timeout" ¤È½ñ¤«¤ì¤Æ¤¤¤ë) +timeout" と書かれている) .TP .B ETIMEDOUT -Áàºî¤¬¥¿¥¤¥à¥¢¥¦¥È¤·¤¿ (POSIX.1) +操作がタイムアウトした (POSIX.1) .\" ETOOMANYREFS is defined, but appears not to be used. .TP .B ETXTBSY -¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤¬»ÈÍÑÃæ¤Ç¤¢¤ë (POSIX.1) +テキストファイルが使用中である (POSIX.1) .TP .B EUCLEAN Structure needs cleaning .TP .B EUNATCH -¥×¥í¥È¥³¥ë¤Î¥É¥é¥¤¥Ð¤¬ÉÕÍ¿ (attach) ¤µ¤ì¤Æ¤¤¤Ê¤¤ +プロトコルのドライバが付与 (attach) されていない .TP .B EUSERS -¥æ¡¼¥¶¿ô¤¬Â¿²á¤®¤ë +ユーザ数が多過ぎる .TP .B EWOULDBLOCK -Áàºî¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¸«¹þ¤ß¤Ç¤¢¤ë +操作がブロックされる見込みである .RB ( EAGAIN -¤ÈƱ¤¸ÃͤǤâ¤è¤¤) (POSIX.1) +と同じ値でもよい) (POSIX.1) .TP .B EXDEV -ÉÔŬÀڤʥê¥ó¥¯ (POSIX.1) +不適切なリンク (POSIX.1) .TP .B EXFULL -ÊÑ´¹¥Æ¡¼¥Ö¥ë¤¬°ìÇդǤ¢¤ë -.SH Ãí°Õ -°Ê²¼¤Ï¤è¤¯¤ä¤ë´Ö°ã¤¤¤Ç¤¢¤ë¡£ +変換テーブルが一杯である +.SH 注意 +以下はよくやる間違いである。 .in +4n .nf @@ -503,16 +503,16 @@ if (somecall() == \-1) { .fi .in -¤³¤Î¤è¤¦¤Ë¤¹¤ë¤È¡¢»²¾È¤·¤Æ¤¤¤ë»þÅÀ¤Ç¤Ï +このようにすると、参照している時点では .I errno -¤Ï¤â¤Ï¤ä +はもはや .IR somecall () -¤«¤éÊÖ¤µ¤ì¤¿ÃͤòÊÝ»ý¤·¤Æ¤¤¤ë¤È¤Ï¸Â¤é¤Ê¤¤ +から返された値を保持しているとは限らない .RB ( printf (3) -¤Ë¤è¤êÊѹ¹¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤)¡£ -¥é¥¤¥Ö¥é¥ê¥³¡¼¥ë¤ò¤Þ¤¿¤¤¤Ç +により変更されているかもしれない)。 +ライブラリコールをまたいで .I errno -¤ÎÃͤòÊݸ¤·¤¿¤¤¾ì¹ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤ËÊݸ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤: +の値を保存したい場合は、以下のように保存しなければならない: .in +4n .nf @@ -524,18 +524,18 @@ if (somecall() == \-1) { .fi .in .PP -ÀΤΠC ¤Ç¤Ï¡¢ +昔の C では、 .I -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯ +をインクルードするのではなく .I errno -¤ò¼êÆ°¤Ç +を手動で .RI ( "extern int errno" -¤Î¤è¤¦¤Ë) ÄêµÁ¤¹¤ë¤Î¤¬°ìÈÌŪ¤Ç¤¢¤Ã¤¿¡£ -.BR "¤³¤Î¤è¤¦¤Ê¤³¤È¤Ï¤·¤Ê¤¤¤³¤È" "¡£" -¤³¤¦¤¹¤ë¤È¡¢ºÇ¶á¤Î¥Ð¡¼¥¸¥ç¥ó¤Î C ¥é¥¤¥Ö¥é¥ê¤Ç¤ÏÀµ¤·¤¯Æ°ºî¤·¤Ê¤¤¤À¤í¤¦¡£ -¤·¤«¤·¡¢(Èó¾ï¤Ë) ¸Å¤¤ UNIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +のように) 定義するのが一般的であった。 +.BR "このようなことはしないこと" "。" +こうすると、最近のバージョンの C ライブラリでは正しく動作しないだろう。 +しかし、(非常に) 古い UNIX システムでは、 .I -¤¬¤Ê¤¯¡¢Àë¸À¤¬É¬Íפʤ³¤È¤¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +がなく、宣言が必要なことがあるかもしれない。 .BR err (3), .BR error (3), .BR perror (3), diff --git a/release/man3/error.3 b/release/man3/error.3 index d73a5074..8872d6db 100644 --- a/release/man3/error.3 +++ b/release/man3/error.3 @@ -28,9 +28,9 @@ .\" Translated 2006-08-04 by Yuichi SATO , LDP v2.36 .\" .TH ERROR 3 2010-08-29 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -error, error_at_line, error_message_count, error_on_per_line, error_print_progname \- glibc ¤Î¥¨¥é¡¼½ñ¤­½Ð¤·´Ø¿ô -.SH ½ñ¼° +.SH 名前 +error, error_at_line, error_message_count, error_on_per_line, error_print_progname \- glibc のエラー書き出し関数 +.SH 書式 .nf \fB#include @@ -48,88 +48,88 @@ error, error_at_line, error_message_count, error_on_per_line, error_print_progna \fBextern void (* \fIerror_print_progname\fB) (void); .fi -.SH ÀâÌÀ +.SH 説明 .BR error () -¤ÏÈÆÍÑŪ¤Ê¥¨¥é¡¼½ñ¤­½Ð¤·´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ïɸ½à½ÐÎÏ +は汎用的なエラー書き出し関数である。 +この関数は標準出力 .RI ( stdout ) -¤Ë½ñ¤­½Ð¤·¤Æ¤«¤é¡¢É¸½à¥¨¥é¡¼½ÐÎÏ +に書き出してから、標準エラー出力 .RI ( stderr ) -¤Ë½ñ¤­½Ð¤¹¡£ -½ñ¤­½Ð¤¹ÆâÍƤϡ¢¥×¥í¥°¥é¥à̾¡¦¥³¥í¥ó¡¦¥¹¥Ú¡¼¥¹¡¦ +に書き出す。 +書き出す内容は、プログラム名・コロン・スペース・ .BR printf (3) -·Á¼°¤Î -¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó \fIformat\fP ¤Ç»ØÄꤵ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤Ç¤¢¤ë¡£ -\fIerrnum\fP ¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢2 ¤ÄÌܤΥ³¥í¥ó¤È¥¹¥Ú¡¼¥¹¤Î¸å¤Ë +形式の +フォーマット文字列 \fIformat\fP で指定されたメッセージである。 +\fIerrnum\fP が 0 以外の場合、2 つ目のコロンとスペースの後に .I strerror(errnum) -¤Ç»ØÄꤵ¤ì¤¿Ê¸»úÎó¤â½ñ¤­½Ð¤¹¡£ +で指定された文字列も書き出す。 .I format -¤ËɬÍפÊǤ°Õ¤Î°ú¤­¿ô¤¬¡¢°ú¤­¿ô¥ê¥¹¥È¤Î +に必要な任意の引き数が、引き数リストの .I format -¤Î¸å¤Ë³¤¯¡£ -½ÐÎϤνªÃ¼¤Ë¤Ï²þ¹Ôʸ»ú¤¬ÉÕ¤¯¡£ +の後に続く。 +出力の終端には改行文字が付く。 .BR error () -¤Ç½ÐÎϤµ¤ì¤ë¥×¥í¥°¥é¥à̾¤Ï¡¢Âç°èÊÑ¿ô +で出力されるプログラム名は、大域変数 .BR program_invocation_name (3) -¤ÎÃͤǤ¢¤ë¡£ +の値である。 .I program_invocation_name -¤Î½é´üÃÍ¤Ï +の初期値は .IR main () -¤Î +の .I argv[0] -¤ÎÃͤÈÅù¤·¤¤¡£ -¤³¤ÎÊÑ¿ô¤ÎÃͤÏÊѹ¹²Äǽ¤Ç¤¢¤ê¡¢Êѹ¹¤¹¤ë¤È +の値と等しい。 +この変数の値は変更可能であり、変更すると .BR error () -¤Î½ÐÎϤ¬ÊѤï¤ë¡£ +の出力が変わる。 -\fIstatus\fP ¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢ +\fIstatus\fP が 0 以外の場合、 .BR error () -¤Ï +は .BR exit (3) -¤ò¸Æ¤Ó½Ð¤·¤Æ¡¢»ØÄꤵ¤ì¤¿½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ç¥×¥í¥°¥é¥à¤ò½ªÎ»¤µ¤»¤ë¡£ +を呼び出して、指定された終了ステータスでプログラムを終了させる。 .BR error_at_line () -´Ø¿ô¤Ï¡¢°ú¤­¿ô +関数は、引き数 .I filename -¤È +と .I linenum -¤¬Äɲ䵤ì¤Æ¤¤¤ë°Ê³°¤Ï¡¢ +が追加されている以外は、 .BR error () -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -À¸À®¤µ¤ì¤ë½ÐÎϤϡ¢¥×¥í¥°¥é¥à̾¤Î¸å¤Ë -¥³¥í¥ó¡¦\fIfilename\fR ¤ÎÃÍ¡¦¥³¥í¥ó¡¦\fIlinenum\fR ¤ÎÃͤ¬½ñ¤­½Ð¤µ¤ì¤ë°Ê³°¤Ï¡¢ +と同じである。 +生成される出力は、プログラム名の後に +コロン・\fIfilename\fR の値・コロン・\fIlinenum\fR の値が書き出される以外は、 .BR error () -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -¥×¥ê¥×¥í¥»¥Ã¥µ¤ÎÃÍ \fB__LINE__\fP ¤È \fB__FILE__\fP ¤Ï¡¢ +と同じである。 +プリプロセッサの値 \fB__LINE__\fP と \fB__FILE__\fP は、 .BR error_at_line () -¤ò¸Æ¤Ó½Ð¤¹¤È¤­¤ËÌò¤ËΩ¤Ä¡£ -¤½¤Î¾¤Î¥×¥ê¥×¥í¥»¥Ã¥µ¤ÎÃͤâ»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -Î㤨¤Ð¡¢¤³¤ì¤é¤Î°ú¤­¿ô¤ÇÆþÎÏ¥Õ¥¡¥¤¥ë¤Ë¤ª¤±¤ë°ÌÃÖ¤ò»²¾È¤Ç¤­¤ë¡£ +を呼び出すときに役に立つ。 +その他のプリプロセッサの値も使うことができる。 +例えば、これらの引き数で入力ファイルにおける位置を参照できる。 -Âç°èÊÑ¿ô \fIerror_one_per_line\fP ¤¬ 0 °Ê³°¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -\fIfilename\fP ¤È \fIlinenum\fP ¤ÎÃͤ¬¶¦¤ËÅù¤·¤¤ +大域変数 \fIerror_one_per_line\fP が 0 以外に設定されている場合、 +\fIfilename\fP と \fIlinenum\fP の値が共に等しい .BR error_at_line () -¤Î¸Æ¤Ó½Ð¤·¤Ï¡¢ -1 ¤Ä¤Î (ºÇ½é¤Î) ¥á¥Ã¥»¡¼¥¸¤Î½ÐÎϤˤޤȤá¤é¤ì¤ë¡£ +の呼び出しは、 +1 つの (最初の) メッセージの出力にまとめられる。 -Âç°èÊÑ¿ô \fIerror_message_count\fP ¤Ï¡¢ +大域変数 \fIerror_message_count\fP は、 .BR error () -¤È +と .BR error_at_line () -¤Ç½ÐÎϤµ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤Î¿ô¤òɽ¤¹¡£ +で出力されたメッセージの数を表す。 -Âç°èÊÑ¿ô \fIerror_print_progname\fP ¤Ë -´Ø¿ô¤Î¥¢¥É¥ì¥¹¤¬³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¾ì¹ç (¤Ä¤Þ¤ê NULL ¤Ç¤Ï¤Ê¤¤¾ì¹ç)¡¢ -¥á¥Ã¥»¡¼¥¸¤ÎÁ°¤Ë¥×¥í¥°¥é¥à̾¤È¥³¥í¥ó¤ò½ñ¤­½Ð¤¹¤Î¤Ç¤Ï¤Ê¤¯¡¢ -¤³¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¡£ -¤³¤Î´Ø¿ô¤Ïɸ½à¥¨¥é¡¼½ÐÎÏ +大域変数 \fIerror_print_progname\fP に +関数のアドレスが割り当てられている場合 (つまり NULL ではない場合)、 +メッセージの前にプログラム名とコロンを書き出すのではなく、 +この関数を呼び出す。 +この関数は標準エラー出力 .RI ( stderr ) -¤ËÂФ·¤Æ¤ÎŬÀÚ¤Êʸ»úÎó¤ò½ñ¤­½Ð¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ½àµò -¤³¤ì¤é¤Î´Ø¿ô¤ÈÊÑ¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ê¡¢ -°Ü¿¢À­¤ò¹Í¤¨¤¿¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +に対しての適切な文字列を書き出さなければならない。 +.SH 準拠 +これらの関数と変数は GNU による拡張であり、 +移植性を考えたプログラムでは使用すべきではない。 +.SH 関連項目 .BR err (3), .BR errno (3), .BR exit (3), diff --git a/release/man3/ether_aton.3 b/release/man3/ether_aton.3 index 04e0c1d8..1bc38f71 100644 --- a/release/man3/ether_aton.3 +++ b/release/man3/ether_aton.3 @@ -33,10 +33,10 @@ .\" Translated Thu Aug 22 2002 by Akihiro MOTOKI .\" .TH ETHER_ATON 3 2002-07-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 ether_aton, ether_ntoa, ether_ntohost, ether_hostton, ether_line, -ether_ntoa_r, ether_aton_r \- Ethernet ¥¢¥É¥ì¥¹¤ÎÁàºîÍÑ´Ø¿ô -.SH ½ñ¼° +ether_ntoa_r, ether_aton_r \- Ethernet アドレスの操作用関数 +.SH 書式 .nf .B #include .sp @@ -51,76 +51,76 @@ ether_ntoa_r, ether_aton_r \- Ethernet .BI "int ether_line(const char *" line ", struct ether_addr *" addr , .BI " char *" hostname ); .sp -/* GNU ³ÈÄ¥ */ +/* GNU 拡張 */ .br .BI "char *ether_ntoa_r(const struct ether_addr *" addr ", char *" buf ); .sp .BI "struct ether_addr *ether_aton_r(const char *" asc , .BI " struct ether_addr *" addr ); .fi -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR ether_aton () -¤Ï¡¢É¸½àŪ¤Ê 16¿Ê¿ô¤È¥³¥í¥ó¤Î·Á¼°¤Ç½ñ¤«¤ì¤¿ 48¥Ó¥Ã¥È¤Î -Ethernet ¥Û¥¹¥È¥¢¥É¥ì¥¹ \fIasc\fP ¤ò¡¢¥Í¥Ã¥È¥ï¡¼¥¯¤Ç¤Î¥Ð¥¤¥È½ç (byte order) -¤Î¥Ð¥¤¥Ê¥ê¥Ç¡¼¥¿¤ËÊÑ´¹¤·¡¢ÀÅŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤¿¥Ç¡¼¥¿ -¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£¤³¤Î¥Ð¥Ã¥Õ¥¡¤Ï¡¢¤³¤ì°Ê¹ß¤Î´Ø¿ô¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë¡£ -¥¢¥É¥ì¥¹¤¬ÉÔÀµ¤Ê¾ì¹ç¡¢ +は、標準的な 16進数とコロンの形式で書かれた 48ビットの +Ethernet ホストアドレス \fIasc\fP を、ネットワークでのバイト順 (byte order) +のバイナリデータに変換し、静的に割り当てられたバッファに格納されたデータ +へのポインタを返す。このバッファは、これ以降の関数呼び出しで上書きされる。 +アドレスが不正な場合、 .BR ether_aton () -¤Ï NULL ¤òÊÖ¤¹¡£ +は NULL を返す。 .PP -´Ø¿ô +関数 .BR ether_ntoa () -¤Ï¡¢¥Í¥Ã¥È¥ï¡¼¥¯¤Î¥Ð¥¤¥È½ç¤Çɽ¤µ¤ì¤¿ Ethernet -¥Û¥¹¥È¥¢¥É¥ì¥¹ \fIaddr\fP ¤ò¡¢É¸½àŪ¤Ê 16¿Ê¿ô¤È¥³¥í¥ó¤Î·Á¼°¤Îʸ»úÎó¤ËÊÑ´¹¤¹¤ë¡£ -⤷¡¢ÀèƬ¤Î 0 ¤Ï¾Êά¤µ¤ì¤ë¡£ÊÑ´¹¸å¤Îʸ»úÎó¤ÏÀÅŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥Ð¥Ã¥Õ¥¡ -¤Ë³ÊǼ¤µ¤ì¤ÆÊÖ¤µ¤ì¤ë¡£¤³¤Î¥Ð¥Ã¥Õ¥¡¤Ï¡¢¤³¤ì°Ê¹ß¤Î´Ø¿ô¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë¡£ +は、ネットワークのバイト順で表された Ethernet +ホストアドレス \fIaddr\fP を、標準的な 16進数とコロンの形式の文字列に変換する。 +但し、先頭の 0 は省略される。変換後の文字列は静的に割り当てられたバッファ +に格納されて返される。このバッファは、これ以降の関数呼び出しで上書きされる。 .PP -´Ø¿ô +関数 .BR ether_ntohost () -¤Ï¡¢Ethernet ¥¢¥É¥ì¥¹¤ËÂбþ¤¹¤ë¥Û¥¹¥È̾¤ò +は、Ethernet アドレスに対応するホスト名を .I /etc/ethers -¤ò¸¡º÷¤·¤Æ³ä¤êÅö¤Æ¤ë¡£Âбþ¤¹¤ë¥Û¥¹¥È̾¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ -Èó 0 ¤òÊÖ¤¹¡£ +を検索して割り当てる。対応するホスト名が見つからなかった場合は、 +非 0 を返す。 .PP -´Ø¿ô +関数 .BR ether_hostton () -¤Ï¡¢¥Û¥¹¥È̾¤ËÂбþ¤¹¤ë Ethernet ¥¢¥É¥ì¥¹¤ò +は、ホスト名に対応する Ethernet アドレスを .I /etc/ethers -¤ò¸¡º÷¤·¤Æ³ä¤êÅö¤Æ¤ë¡£Âбþ¤¹¤ë¥Û¥¹¥È̾¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ -Èó 0 ¤òÊÖ¤¹¡£ +を検索して割り当てる。対応するホスト名が見つからなかった場合は、 +非 0 を返す。 .PP -´Ø¿ô +関数 .BR ether_line () -¤Ï¡¢ +は、 .I /etc/ethers -·Á¼°¤Ë¤Ê¤Ã¤¿¹Ô¤ò²òÀϤ·¡¢ -¥¢¥É¥ì¥¹¤È¥Û¥¹¥È̾¤ÎÁȤòÊÖ¤¹ +形式になった行を解析し、 +アドレスとホスト名の組を返す .RI ( /etc/ethers -·Á¼°¤Ï¡¢Ethernet ¥¢¥É¥ì¥¹¡¢¥Û¥¹¥È̾¤¬¶õÇòʸ»ú (whitespace) -¤Ç¶èÀÚ¤é¤ì¤¿½ñ¼°¤Ç¡¢\(aq#\(aq °Ê¹ß¤Ï¥³¥á¥ó¥È¤È¤ß¤Ê¤µ¤ì¤ë)¡£ -²òÀϤǤ­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢Èó 0 ¤òÊÖ¤¹¡£ +形式は、Ethernet アドレス、ホスト名が空白文字 (whitespace) +で区切られた書式で、\(aq#\(aq 以降はコメントとみなされる)。 +解析できなかった場合は、非 0 を返す。 .I hostname -¤Ç»ØÄꤵ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Ï½½Ê¬¤ÊŤµ¤¬É¬ÍפǤ¢¤ë¡£¤Ä¤Þ¤ê¡¢ +で指定されたバッファは十分な長さが必要である。つまり、 .I line -¤ÈƱ¤¸Ä¹¤µ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +と同じ長さでなければならない。 .PP -´Ø¿ô +関数 .BR ether_ntoa_r () -¤È +と .BR ether_aton_r () -¤Ï¡¢ -¤½¤ì¤¾¤ì +は、 +それぞれ .BR ether_ntoa () -¤È +と .BR ether_aton () -¤Î -¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ê¥Ð¡¼¥¸¥ç¥ó¤Ç¤¢¤ê¡¢ -ÀÅŪ¤Ê¥Ð¥Ã¥Õ¥¡¤ò»ÈÍѤ·¤Ê¤¤¡£ +の +リエントラントでスレッドセーフなバージョンであり、 +静的なバッファを使用しない。 .PP -\fIether_addr\fP ¹½Â¤ÂÎ¤Ï +\fIether_addr\fP 構造体は .I -¤Ç¼¡¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +で次のように定義されている: .sp .in +4n .nf @@ -129,11 +129,11 @@ struct ether_addr { } .fi .in -.SH ½àµò +.SH 準拠 4.3BSD, SunOS. -.SH ¥Ð¥° -glibc 2.2.5 ¤Ç¤Î +.SH バグ +glibc 2.2.5 での .BR ether_line () -¤Î¼ÂÁõ¤Ï¤ª¤«¤·¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +の実装はおかしい。 +.SH 関連項目 .BR ethers (5) diff --git a/release/man3/euidaccess.3 b/release/man3/euidaccess.3 index e82d478e..7092bc7e 100644 --- a/release/man3/euidaccess.3 +++ b/release/man3/euidaccess.3 @@ -27,62 +27,62 @@ .\" Translated 2007-06-02, Akihiro MOTOKI .\" .TH EUIDACCESS 3 2010-09-10 "" "Linux Programmer's Manual" -.SH ̾Á° -euidaccess, eaccess \- ¥Õ¥¡¥¤¥ë¤Ø¤Î¥¢¥¯¥»¥¹¸¢¤ò¼Â¸ú¥æ¡¼¥¶¤Ç¥Á¥§¥Ã¥¯¤¹¤ë -.SH ½ñ¼° +.SH 名前 +euidaccess, eaccess \- ファイルへのアクセス権を実効ユーザでチェックする +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "int euidaccess(const char *" pathname ", int " mode ); .BI "int eaccess(const char *" pathname ", int " mode ); .fi -.SH ÀâÌÀ +.SH 説明 .BR access (2) -¤ÈƱÍÍ¡¢ +と同様、 .BR euidaccess () -¤Ï°ú¤­¿ô +は引き数 .I pathname -¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤Îµö²Ä (permission) ¤È¸ºß¤Î¥Á¥§¥Ã¥¯¤ò¹Ô¤¦¡£ +で指定されたファイルの許可 (permission) と存在のチェックを行う。 .BR access (2) -¤Ï¥×¥í¥»¥¹¤Î¼Â (real) ¥æ¡¼¥¶ID / ¼Â¥°¥ë¡¼¥×ID ¤òÍѤ¤¤Æ¥Á¥§¥Ã¥¯¤ò¹Ô¤¦¤Î¤ËÂФ·¡¢ +はプロセスの実 (real) ユーザID / 実グループID を用いてチェックを行うのに対し、 .BR euidaccess () -¤Ï¼Â¸ú (effective) ID ¤òÍѤ¤¤ë¡£ +は実効 (effective) ID を用いる。 .I mode -¤Ï +は .BR R_OK ", " W_OK ", " X_OK ", " F_OK -¤Î°ì¤Ä°Ê¾å¤«¤é¹½À®¤µ¤ì¤ë¥Þ¥¹¥¯¤Ç¤¢¤ë¡£ +の一つ以上から構成されるマスクである。 .BR R_OK ", " W_OK ", " X_OK ", " F_OK -¤Ï +は .BR access (2) -¤ÈƱ¤¸°ÕÌ£¤ò»ý¤Ä¡£ +と同じ意味を持つ。 .BR eaccess () -¤Ï +は .BR euidaccess () -¤ÎƱµÁ¸ì¤Ç¤¢¤ê¡¢Â¾¤Î¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤È¤Î¸ß´¹À­¤Î¤¿¤á¤ËÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç (Í׵ᤷ¤¿Á´¤Æ¤Ë¤Ä¤¤¤Æ¤Îµö²Ä¤¬ÆÀ¤é¤ì¤¿¤é)¡¢¥¼¥í¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç +の同義語であり、他のいくつかのシステムとの互換性のために提供されている。 +.SH 返り値 +成功した場合 (要求した全てについての許可が得られたら)、ゼロが返される。 +エラーの場合 .RI ( mode -¤Î¾¯¤Ê¤¯¤È¤â°ì¤Ä¤Î¥Ó¥Ã¥È¤ÇÍ׵ᤷ¤¿µö²Ä¤¬¤Ê¤«¤Ã¤¿¾ì¹ç¤ä¡¢ -¾¤Î¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç)¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +の少なくとも一つのビットで要求した許可がなかった場合や、 +他のエラーが起こった場合)、\-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .BR access (2) -¤ÈƱ¤¸¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +と同じ。 +.SH バージョン .BR eaccess () -´Ø¿ô¤Ï glibc ¤Î¥Ð¡¼¥¸¥ç¥ó 2.4 ¤ÇÄɲ䵤줿¡£ -.SH ½àµò -¤³¤ì¤é¤Î´Ø¿ô¤ÏÈóɸ½à¤Ç¤¢¤ë¡£ -¾¤Î¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ë¤Ï -.\" Î㤨¤Ð¡¢FreeBSD 6.1. +関数は glibc のバージョン 2.4 で追加された。 +.SH 準拠 +これらの関数は非標準である。 +他のいくつかのシステムには +.\" 例えば、FreeBSD 6.1. .BR eaccess () -´Ø¿ô¤¬¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +関数がある。 +.SH 関連項目 .BR access (2), .BR chmod (2), .BR chown (2), diff --git a/release/man3/exec.3 b/release/man3/exec.3 index a2ebb51a..b01bd07b 100644 --- a/release/man3/exec.3 +++ b/release/man3/exec.3 @@ -44,18 +44,18 @@ .\" Modified 2005-02-26, Akihiro MOTOKI .\" Updated 2010-10-27, Akihiro Motoki , LDP v3.29 .\" -.\"WORD: null-terminated strings NULL¤Ç½ª¤ï¤ëʸ»úÎó -.\"WORD: anti-Trojan-horse measure ¥È¥í¥¤¤ÎÌÚÇÏÂкö -.\"WORD: external variable ³°ÉôÊÑ¿ô -.\"WORD: current directory first ¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤¬ºÇ½é -.\"WORD: the attempted execve ¸Æ¤Ó½Ð¤½¤¦¤È¤·¤¿execve -.\"WORD: variadic function ²ÄÊÑĹ°ú¤­¿ô´Ø¿ô -.\"WORD: semantics (¥×¥í¥°¥é¥à¤Î)Æ°ºî +.\"WORD: null-terminated strings NULLで終わる文字列 +.\"WORD: anti-Trojan-horse measure トロイの木馬対策 +.\"WORD: external variable 外部変数 +.\"WORD: current directory first カレントディレクトリが最初 +.\"WORD: the attempted execve 呼び出そうとしたexecve +.\"WORD: variadic function 可変長引き数関数 +.\"WORD: semantics (プログラムの)動作 .\" .TH EXEC 3 2010-09-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -execl, execlp, execle, execv, execvp, execvpe \- ¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤¹¤ë -.SH ½ñ¼° +.SH 名前 +execl, execlp, execle, execv, execvp, execvpe \- ファイルを実行する +.SH 書式 .B #include .sp .B extern char **environ; @@ -77,166 +77,166 @@ execl, execlp, execle, execv, execvp, execvpe \- .BI " char *const " envp "[]);" .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR execvpe (): _GNU_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR exec () -¥Õ¥¡¥ß¥ê¡¼¤Î´Ø¿ô¤Ï¸½ºß¤Î¥×¥í¥»¥¹¥¤¥á¡¼¥¸¤ò¿·¤·¤¤¥×¥í¥»¥¹¥¤¥á¡¼¥¸¤ÇÃÖ¤­ -´¹¤¨¤ë¡£¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤Ï +ファミリーの関数は現在のプロセスイメージを新しいプロセスイメージで置き +換える。このマニュアルで説明されている関数は .BR execve (2) -¤Î¥Õ¥í¥ó¥È¥¨¥ó¥É¤Ç¤¢¤ë¡£ -(¸½ºß¤Î¥×¥í¥»¥¹¥¤¥á¡¼¥¸¤ÎÃÖ¤­´¹¤¨¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤Ï +のフロントエンドである。 +(現在のプロセスイメージの置き換えについての詳細は .BR execve (2) -¤Î¥Þ¥Ë¥å¥¢¥ë¤ò»²¾È) +のマニュアルを参照) .PP -¤³¤ì¤é¤Î´Ø¿ô¤ÎºÇ½é¤Î°ú¤­¿ô¤Ï¡¢¼Â¹Ô¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Î̾Á°¤Ç¤¢¤ë¡£ +これらの関数の最初の引き数は、実行されるファイルの名前である。 .PP -´Ø¿ô +関数 .BR execl (), .BR execlp (), .BR execle () -¤Î +の .I "const char *arg" -¤È¤½¤ì¤Ë³¤¯¾ÊάÉôʬ¤Ï +とそれに続く省略部分は .IR arg0 , .IR arg1 , \&..., .I argn -¤È¤ß¤Ê¤µ¤ì¤ë¡£ -¤³¤ì¤é¤Ë¤Ï¡¢¼Â¹Ô¤µ¤ì¤ë¥×¥í¥°¥é¥à¤ÇÍøÍѲÄǽ¤Ê°ú¤­¿ô¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë -(°ú¤­¿ô¤Î¥ê¥¹¥È¤Ï NULL ¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤«¤é¹½À®¤µ¤ì¤ë)¡£ -´·½¬¤È¤·¤Æ¡¢ºÇ½é¤Î°ú¤­¿ô¤Ï¡¢¼Â¹Ô¤µ¤ì¤ë¥Õ¥¡¥¤¥ë̾ -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ë¤¹¤ë¡£°ú¤­¿ô¤Î¥ê¥¹¥È¤Ïɬ¤º NULL -¤Ç½ª¤ï¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï²ÄÊÑĹ°ú¤­¿ô´Ø¿ô¤Ê¤Î¤Ç¡¢ -¤³¤Î¥Ý¥¤¥ó¥¿¤Ï +とみなされる。 +これらには、実行されるプログラムで利用可能な引き数のリストを指定する +(引き数のリストは NULL で終端された文字列へのポインタから構成される)。 +慣習として、最初の引き数は、実行されるファイル名 +へのポインタにする。引き数のリストは必ず NULL +で終わらなければならず、これらの関数は可変長引き数関数なので、 +このポインタは .I "(char *) NULL" -¤È¥­¥ã¥¹¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +とキャストしなければならない。 .PP -´Ø¿ô +関数 .BR execv (), .BR execvp (), .BR execvpe () -¤Ï¡¢ÍøÍѲÄǽ¤Ê°ú¤­¿ô¥ê¥¹¥È (NULL ¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ø¤Î -¥Ý¥¤¥ó¥¿¤ÎÇÛÎó) ¤ò¿·¤·¤¤¥×¥í¥°¥é¥à¤ËÅϤ¹¡£ -´·½¬¤È¤·¤Æ¡¢ºÇ½é¤Î°ú¤­¿ô¤Ï¼Â¹Ô¤µ¤ì¤ë¥Õ¥¡¥¤¥ë̾¤Ø -¤Î¥Ý¥¤¥ó¥¿¤Ë¤¹¤ë¡£¥Ý¥¤¥ó¥¿¤ÎÇÛÎó¤Ïɬ¤º -NULL ¤Ç½ª¤ï¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は、利用可能な引き数リスト (NULL で終端された文字列への +ポインタの配列) を新しいプログラムに渡す。 +慣習として、最初の引き数は実行されるファイル名へ +のポインタにする。ポインタの配列は必ず +NULL で終わらなければならない。 .PP -´Ø¿ô +関数 .BR execle (), .BR execvpe () -¤Ç¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤¬°ú¤­¿ô +では、呼び出し元が引き数 .I envp -·Ðͳ¼Â¹Ô¤µ¤ì¤ë¥×¥í¥°¥é¥à¤Î´Ä¶­¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +経由実行されるプログラムの環境を指定することができる。 .I envp -°ú¤­¿ô¤Ï¡¢NULL ¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤ÎÇÛÎó¤Ç¤¢¤ê¡¢ -NULL ¥Ý¥¤¥ó¥¿¤Ç½ª¤ï¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¾¤Î´Ø¿ô¤Ç¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î³°ÉôÊÑ¿ô +引き数は、NULL で終端された文字列へのポインタの配列であり、 +NULL ポインタで終わらなければならない。 +他の関数では、呼び出し元のプロセスの外部変数 .B environ -¤«¤é¿·¤·¤¤¥×¥í¥»¥¹ÍѤδĶ­¤òÍ¿¤¨¤ë¡£ -.SS execlp() ¤È execvp() ¤ÎÆÃÊ̤ÊÆ°ºî +から新しいプロセス用の環境を与える。 +.SS execlp() と execvp() の特別な動作 .PP -´Ø¿ô +関数 .BR execlp (), .BR execvp (), .BR execvpe () -¤Ï¡¢»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë̾¤¬¥¹¥é¥Ã¥·¥å (/) ¤ò´Þ¤ó¤Ç¤¤¤Ê¤¤¾ì¹ç¡¢ -¥·¥§¥ë¤ÈƱ¤¸Æ°ºî¤Ç¼Â¹Ô²Äǽ¤Ê¥Õ¥¡¥¤¥ë¤òõº÷¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¤Î¸¡º÷¤Ï¡¢´Ä¶­ÊÑ¿ô +は、指定されたファイル名がスラッシュ (/) を含んでいない場合、 +シェルと同じ動作で実行可能なファイルを探索する。 +ファイルの検索は、環境変数 .B PATH -¤Ç»ØÄꤵ¤ì¤¿¥³¥í¥ó¶èÀÚ¤ê¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Ñ¥¹Ì¾¤Î¥ê¥¹¥È¤òÂоݤ˹Ԥï¤ì¤ë¡£ -¤³¤ÎÊÑ¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¥Ñ¥¹Ì¾¤Î¥ê¥¹¥È¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤȤ·¤Æ¡¢ -¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Î¸å¤í¤Ë¡¢ +で指定されたコロン区切りのディレクトリのパス名のリストを対象に行われる。 +この変数が定義されていない場合、パス名のリストのデフォルト値として、 +カレントディレクトリの後ろに、 .I confstr(_CS_PATH) -¤¬ÊÖ¤¹¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤ò¤Ä¤Ê¤²¤¿Ãͤ¬»ÈÍѤµ¤ì¤ë (¤³¤Î +が返すディレクトリのリストをつなげた値が使用される (この .BR confstr (3) -¤Î¸Æ¤Ó½Ð¤·¤Ç¤ÏÄ̾ï "/bin:/usr/bin" ¤¬ÊÖ¤µ¤ì¤ë)¡£ +の呼び出しでは通常 "/bin:/usr/bin" が返される)。 -»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë̾¤¬¥¹¥é¥Ã¥·¥å¤ò´Þ¤à¾ì¹ç¡¢ +指定されたファイル名がスラッシュを含む場合、 .B PATH -¤Ï̵»ë¤µ¤ì¡¢»ØÄꤵ¤ì¤¿¥Ñ¥¹Ì¾¤Î¥Õ¥¡¥¤¥ë¤¬¼Â¹Ô¤µ¤ì¤ë¡£ +は無視され、指定されたパス名のファイルが実行される。 -¤µ¤é¤Ë¡¢¤¤¤¯¤Ä¤«¤Î¥¨¥é¡¼¤ÏÆÃÊ̤˽èÍý¤µ¤ì¤ë¡£ +さらに、いくつかのエラーは特別に処理される。 -¥Õ¥¡¥¤¥ë¤¬¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ç¤Ê¤¤¾ì¹ç (¤³¤Î¤È¤­¸Æ¤Ó½Ð¤½¤¦¤È¤·¤¿ +ファイルが実行ファイルでない場合 (このとき呼び出そうとした .BR execve (2) -¤Ï¥¨¥é¡¼ +はエラー .B EACCES -¤Ç¼ºÇÔ¤¹¤ë)¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï»Ä¤ê¤Î¸¡º÷¥Ñ¥¹¤Î¸¡º÷¤ò³¤±¤ë¡£ -¾¤Ë¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤é¤Ê¤¯¤Ê¤Ã¤¿¾ì¹ç +で失敗する)、これらの関数は残りの検索パスの検索を続ける。 +他にファイルが見つからなくなった場合 .I errno -¤Ë +に .B EACCES -¤òÀßÄꤷÉüµ¢¤¹¤ë¡£ -.\" fujiwara: ¸Ä¿ÍŪ¤Ë¤Ï¡ÖÉüµ¢¤¹¤ë¡×¤ÎÊý¤¬¹¥¤­(^_^; +を設定し復帰する。 +.\" fujiwara: 個人的には「復帰する」の方が好き(^_^; -¥Õ¥¡¥¤¥ë¤Î¥Ø¥Ã¥À¤¬¼Â¹Ô·Á¼°¤È¤·¤Æǧ¼±¤Ç¤­¤Ê¤¤¾ì¹ç -(¤³¤Î¤È¤­¸Æ¤Ó½Ð¤½¤¦¤È¤·¤¿ +ファイルのヘッダが実行形式として認識できない場合 +(このとき呼び出そうとした .BR execve (2) -¤Ï¥¨¥é¡¼ +はエラー .B ENOEXEC -¤Ç¼ºÇÔ¤¹¤ë)¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï¤½¤Î¥Õ¥¡¥¤¥ë¤òºÇ½é¤Î°ú¤­¿ô¤È¤·¤¿¥·¥§¥ë +で失敗する)、これらの関数はそのファイルを最初の引き数としたシェル .RI ( /bin/sh ) -¤ò¼Â¹Ô¤¹¤ë (¤³¤ì¤Ë¤â¼ºÇÔ¤·¤¿¾ì¹ç¡¢¤³¤ì°Ê¾å¤Î¸¡º÷¤Ï¹Ô¤ï¤ì¤Ê¤¤)¡£ -.SH ÊÖ¤êÃÍ +を実行する (これにも失敗した場合、これ以上の検索は行われない)。 +.SH 返り値 .BR exec () -·²¤Î´Ø¿ô¤¬Éüµ¢¤¹¤ë¤Î¤Ï¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Î¤ß¤Ç¤¢¤ë¡£ -ÊÖ¤êÃÍ¤Ï \-1 ¤Ç¡¢ +群の関数が復帰するのは、エラーが発生した場合のみである。 +返り値は \-1 で、 .I errno -¤Ë¥¨¥é¡¼¤ÎÆâÍƤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤éÁ´¤Æ¤Î´Ø¿ô¤Ï¼ºÇÔ¤¹¤ë¾ì¹ç¤¬¤¢¤ë¡£¤½¤Î¾ì¹ç¡¢ +にエラーの内容がセットされる。 +.SH エラー +これら全ての関数は失敗する場合がある。その場合、 .BR execve (2) -¤ËÂФ·¤Æµ¬Äꤵ¤ì¤¿¥¨¥é¡¼¤¬ +に対して規定されたエラーが .I errno -¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +に設定される。 +.SH バージョン .BR execvpe () -´Ø¿ô¤Ï glibc 2.11 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +関数は glibc 2.11 で初めて登場した。 +.SH 準拠 POSIX.1-2001, POSIX.1-2008. .BR execvpe () -´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -Linux °Ê³°¤Î¥·¥¹¥Æ¥à¤Ë¤Ï¡¢ -(´Ä¶­ÊÑ¿ô \fBPATH\fR ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¤­¤Î) -¥Ç¥Õ¥©¥ë¥È¤Î¥Ñ¥¹¤Ë¤ª¤¤¤Æ¡¢¥«¥ì¥ó¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤¬ +関数は GNU による拡張である。 +.SH 注意 +Linux 以外のシステムには、 +(環境変数 \fBPATH\fR が定義されていないときの) +デフォルトのパスにおいて、カレント・ディレクトリが .I /bin -¤È +と .I /usr/bin -¤Î¸å¤í¤ËÇÛÃÖ¤µ¤ì¤ë¤â¤Î¤â¤¢¤ë¡£ -¤³¤ì¤Ï¥È¥í¥¤¤ÎÌÚÇÏÂкö¤Î¤¿¤á¤Ç¤¢¤ë¡£ -Linux ¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥Ñ¥¹¤Ë¡¢ÀΤʤ¬¤é¤Î¡Ö¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò -Àè¤Ëõº÷¡×¤È¤¤¤¦¥ë¡¼¥ë¤ò»È¤Ã¤Æ¤¤¤ë¡£ +の後ろに配置されるものもある。 +これはトロイの木馬対策のためである。 +Linux では、デフォルトのパスに、昔ながらの「現在のディレクトリを +先に探索」というルールを使っている。 .PP -¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤·¤è¤¦¤È¤·¤Æ¤¤¤ë´Ö¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿»þ¤Î +ファイルを実行しようとしている間にエラーが発生した時の .BR execlp () -¤È +と .BR execvp () -¤Î¤Õ¤ë¤Þ¤¤¤Ë¤Ä¤¤¤ÆÎò»ËŪ¤Ê´·½¬¤Ï¤¢¤ë¤¬¡¢ÅÁÅýŪ¤Ëʸ½ñ¤È¤·¤Æµ­ºÜ¤µ¤ì¤Æ¤ª¤é¤º¡¢ -POSIX ɸ½à¤Ç¤âµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£BSD (¤Þ¤¿¤ª¤½¤é¤¯Â¾¤Î¥·¥¹¥Æ¥à) ¤Ç¤Ï¡¢ +のふるまいについて歴史的な慣習はあるが、伝統的に文書として記載されておらず、 +POSIX 標準でも規定されていない。BSD (またおそらく他のシステム) では、 .B ETXTBSY -¤¬È¯À¸¤·¤¿¾ì¹ç¡¢¼«Æ°Åª¤ËÃæÃÇ (sleep) ¤·ºÆ»î¹Ô¤ò¹Ô¤¦¡£ -Linux ¤Ï¤½¤ì¤ò¥Ï¡¼¥É¥¨¥é¡¼¤È¤·¤Æ¼è¤ê°·¤¤Â¨ºÂ¤ËÉüµ¢¤¹¤ë¡£ +が発生した場合、自動的に中断 (sleep) し再試行を行う。 +Linux はそれをハードエラーとして取り扱い即座に復帰する。 .PP -ÅÁÅýŪ¤Ë¡¢´Ø¿ô +伝統的に、関数 .BR execlp () -¤È +と .BR execvp () -¤Ï¡¢¾å¤ÇÀâÌÀ¤·¤¿¥¨¥é¡¼¤È¡¢¤³¤ì¤é 2 ¤Ä¤Î´Ø¿ô¼«¿È¤¬ÊÖ¤¹ +は、上で説明したエラーと、これら 2 つの関数自身が返す .B ENOMEM -¤È +と .B E2BIG -°Ê³°¤ÎÁ´¤Æ¤Î¥¨¥é¡¼¤ò̵»ë¤·¤Æ¤¤¤¿¤¬¡¢ -º£¤Ç¤Ï¡¢¾å¤ÇÀâÌÀ¤·¤¿°Ê³°¤Î¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ç¤â¡¢ -Ê֤äƤ¯¤ë¤è¤¦Êѹ¹¤µ¤ì¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +以外の全てのエラーを無視していたが、 +今では、上で説明した以外のエラーが発生した場合でも、 +返ってくるよう変更された。 +.SH 関連項目 .BR sh (1), .BR execve (2), .BR fork (2), diff --git a/release/man3/exit.3 b/release/man3/exit.3 index c772a3b7..638c997d 100644 --- a/release/man3/exit.3 +++ b/release/man3/exit.3 @@ -29,143 +29,143 @@ .\" Updated 2007-06-18, Akihiro MOTOKI, LDP v2.57 .\" .TH EXIT 3 2009-09-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -exit \- ¥×¥í¥»¥¹¤ÎÀµ¾ï½ªÎ» -.SH ½ñ¼° +.SH 名前 +exit \- プロセスの正常終了 +.SH 書式 .nf .B #include .sp .BI "void exit(int " status ); .fi -.SH ÀâÌÀ +.SH 説明 .BR exit () -´Ø¿ô¤Ï¡¢¥×¥í¥»¥¹¤òÀµ¾ï¤Ë½ªÎ»¤µ¤»¡¢ -\fIstatus & 0377\fP ¤È¤¤¤¦Ãͤò¿Æ¥×¥í¥»¥¹¤ØÊÖ¤¹ +関数は、プロセスを正常に終了させ、 +\fIstatus & 0377\fP という値を親プロセスへ返す .RB ( wait (2) -¤ò»²¾È)¡£ +を参照)。 .LP .BR atexit (3) -¤ä +や .BR on_exit (3) -¤Ë¤è¤Ã¤Æ -ÅÐÏ¿¤µ¤ì¤¿Á´¤Æ¤Î´Ø¿ô¤Ï¡¢¤½¤ì¤é¤¬ÅÐÏ¿¤µ¤ì¤¿½çÈ֤ȵսç¤Ë¥³¡¼¥ë¤µ¤ì¤ë¡£ -(ÅÐÏ¿¤µ¤ì¤¿´Ø¿ô¤ÎÃæ¤Ç +によって +登録された全ての関数は、それらが登録された順番と逆順にコールされる。 +(登録された関数の中で .BR atexit (3) or .BR on_exit (3) -¤ò»È¤Ã¤Æ -exit ½èÍýÃæ¤Ë¼Â¹Ô¤µ¤ì¤ëÄɲäδؿô¤òÅÐÏ¿¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë; -¿·µ¬¤ËÅÐÏ¿¤µ¤ì¤¿´Ø¿ô¤Ï¡¢¤³¤Î¸å¤Ç¼Â¹Ô¤µ¤ì¤ë´Ø¿ô¥ê¥¹¥È¤ÎÀèƬ¤Ë -Äɲ䵤ì¤ë¡£) -¤³¤ì¤é¤Î´Ø¿ô¤Î°ì¤Ä¤¬ÊÖ¤é¤Ê¤«¤Ã¤¿¾ì¹ç -(Î㤨¤Ð¡¢¤½¤Î´Ø¿ô¤¬ +を使って +exit 処理中に実行される追加の関数を登録することができる; +新規に登録された関数は、この後で実行される関数リストの先頭に +追加される。) +これらの関数の一つが返らなかった場合 +(例えば、その関数が .BR _exit (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¤ê¡¢¥·¥°¥Ê¥ë¤Ç¼«Ê¬¼«¿È¤ò kill ¤·¤¿¾ì¹ç)¡¢ -»Ä¤ê¤Î´Ø¿ô¤Ï¤É¤ì¤â¸Æ¤Ó½Ð¤µ¤ì¤º¡¢¤½¤ì°Ê¹ß¤Î exit ½èÍý -(ÆÃ¤Ë +を呼び出したり、シグナルで自分自身を kill した場合)、 +残りの関数はどれも呼び出されず、それ以降の exit 処理 +(特に .BR stdio (3) -¥¹¥È¥ê¡¼¥à¤Î¥Õ¥é¥Ã¥·¥å¤Ê¤É) ¤ÏÃæ»ß¤µ¤ì¤ë¡£ -¤¢¤ë´Ø¿ô¤¬ +ストリームのフラッシュなど) は中止される。 +ある関数が .BR atexit (3) -¤ä +や .BR on_exit (3) -¤ò»È¤Ã¤ÆÊ£¿ô²óÅÐÏ¿¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢ -¤½¤Î´Ø¿ô¤ÏÅÐÏ¿¤µ¤ì¤¿¤Î¤ÈƱ¤¸²ó¿ô¤À¤±¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ +を使って複数回登録されていた場合、 +その関数は登録されたのと同じ回数だけ呼び出される。 .LP -¥ª¡¼¥×¥óÃæ¤Î +オープン中の .BR stdio (3) -¥¹¥È¥ê¡¼¥à¤ÏÁ´¤Æ¥Õ¥é¥Ã¥·¥å¤µ¤ì¤Æ¡¢¥¯¥í¡¼¥º¤µ¤ì¤ë¡£ +ストリームは全てフラッシュされて、クローズされる。 .BR tmpfile (3) -¤Ë¤è¤Ã¤ÆºîÀ®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ïºï½ü¤µ¤ì¤ë¡£ +によって作成されたファイルは削除される。 .LP -C ɸ½à¤Ç¤Ï +C 標準では .B EXIT_SUCCESS -¤È +と .B EXIT_FAILURE -¤È¤¤¤¦ 2¤Ä¤ÎÄê¿ô¤¬ -ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£¤½¤ì¤¾¤ìÀµ¾ï½ªÎ»¤È°Û¾ï½ªÎ»¤ò¼¨¤¹¤â¤Î¤Ç¡¢ +という 2つの定数が +定義されている。それぞれ正常終了と異常終了を示すもので、 .BR exit () -¤È¤·¤ÆÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¡£ -.SH ÊÖ¤êÃÍ +として渡すことができる。 +.SH 返り値 .BR exit () -´Ø¿ô¤ÏÊÖ¤é¤Ê¤¤¡£ -.SH ½àµò +関数は返らない。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001, C89, C99. -.SH Ãí°Õ +.SH 注意 .LP .BR atexit (3) -¤ä +や .BR on_exit (3) -¤ò»È¤Ã¤ÆÅÐÏ¿¤µ¤ì¤¿´Ø¿ô¤ÎÃæ¤Ç +を使って登録された関数の中で .BR exit () -¤« +か .BR longjmp (3) -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¡¢ -²¿¤¬µ¯¤³¤ë¤«¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +が呼び出された場合、 +何が起こるかは未定義である。 .LP .B EXIT_SUCCESS -¤È +と .B EXIT_FAILURE -¤ò»È¤¦¤È¡¢0 ¤ä (1 ¤ä \-1 ¤È¤¤¤Ã¤¿) 0 °Ê³°¤ÎÃͤò»È¤¦¤Î¤ËÈæ¤Ù¤Æ -(UNIX °Ê³°¤Î´Ä¶­¤Ë) °Ü¿¢¤¹¤ë¤Î¤¬¤¤¤¯¤é¤«´Êñ¤Ë¤Ê¤ë¡£ -ÆÃ¤Ë VMS ¤ÏÊ̤ÎÊý¼°¤òÍѤ¤¤Æ¤¤¤ë¡£ +を使うと、0 や (1 や \-1 といった) 0 以外の値を使うのに比べて +(UNIX 以外の環境に) 移植するのがいくらか簡単になる。 +特に VMS は別の方式を用いている。 .LP -BSD ¤Ï½ªÎ»¥³¡¼¥É¤òɸ½à²½¤·¤è¤¦¤È¤·¤Æ¤¤¤ë; +BSD は終了コードを標準化しようとしている; .I -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .LP .BR exit () -¤Î¸å¡¢¿Æ¥×¥í¥»¥¹¤Ë½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤¬ÅϤµ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤ÎÅϤ·Êý¤Ë¤Ï 3 ¤Ä¤Î¾ì¹ç¤¬¤¢¤ë¡£ -¿Æ¥×¥í¥»¥¹¤¬ +の後、親プロセスに終了ステータスが渡されなければならない。 +終了ステータスの渡し方には 3 つの場合がある。 +親プロセスが .B SA_NOCLDWAIT -¤òÀßÄꤷ¤¿¾ì¹ç¡¢ -¤Þ¤¿¤Ï +を設定した場合、 +または .B SIGCHLD -¥Ï¥ó¥É¥é¤ò +ハンドラを .B SIG_IGN -¤ËÀßÄꤷ¤¿¾ì¹ç¡¢ -¥¹¥Æ¡¼¥¿¥¹¤ÏÇË´þ¤µ¤ì¤ë¡£ -¿Æ¥×¥í¥»¥¹¤¬»Ò¥×¥í¥»¥¹¤Î½ªÎ»¤òÂԤäƤ¤¤ë¾ì¹ç¡¢ -¿Æ¥×¥í¥»¥¹¤Ë½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤¬ÅÁ¤¨¤é¤ì¤ë¡£ -¤É¤Á¤é¤Î¾ì¹ç¤Ç¤â exit ¤Î¥×¥í¥»¥¹¤Ïľ¤Á¤Ë½ªÎ»¤¹¤ë¡£ -¡Ö½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤ò´ØÃΤ»¤º½ªÎ»¤âÂÔ¤¿¤Ê¤¤¡× -¤È¤¤¤¦¤³¤È¤ò¿Æ¥×¥í¥»¥¹¤¬»Ø¼¨¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -exit ¥×¥í¥»¥¹¤Ï (½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤òɽ¤¹ 1 ¥Ð¥¤¥È¤Î¤ß¤òÊÝ»ý¤¹¤ë) -¡Ö¥¾¥ó¥Ó¡×¥×¥í¥»¥¹¤Ë¤Ê¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢¸å¤«¤é +に設定した場合、 +ステータスは破棄される。 +親プロセスが子プロセスの終了を待っている場合、 +親プロセスに終了ステータスが伝えられる。 +どちらの場合でも exit のプロセスは直ちに終了する。 +「終了ステータスを関知せず終了も待たない」 +ということを親プロセスが指示していない場合、 +exit プロセスは (終了ステータスを表す 1 バイトのみを保持する) +「ゾンビ」プロセスになる。 +これにより、後から .BR wait (2) -´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¡¢ -¿Æ¥×¥í¥»¥¹¤Ï½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤òÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ +関数を呼び出すことで、 +親プロセスは終了ステータスを知ることができる。 .LP .B SIGCHLD -¥·¥°¥Ê¥ë¤Î¥µ¥Ý¡¼¥È¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¤³¤Î¥·¥°¥Ê¥ë¤Ï¿Æ¥×¥í¥»¥¹¤ËÁ÷¤é¤ì¤ë¡£ -¿Æ¥×¥í¥»¥¹¤¬ +シグナルのサポートが実装されている場合、 +このシグナルは親プロセスに送られる。 +親プロセスが .B SA_NOCLDWAIT -¤òÀßÄꤷ¤¿¾ì¹ç¡¢ +を設定した場合、 .B SIGCHLD -¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¤«¤É¤¦¤«¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +シグナルが送られるかどうかは定義されていない。 .LP -¤½¤Î¥×¥í¥»¥¹¤¬¥»¥Ã¥·¥ç¥ó¤Î¥ê¡¼¥À¡¼¤Ç¡¢ -¤½¤Î¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤¬¤½¤Î¥»¥Ã¥·¥ç¥ó¤ÎÀ©¸æüËö¤Ç¤¢¤ë¾ì¹ç¡¢ -¤³¤ÎÀ©¸æüËö¤Î¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë¤¢¤ë -³Æ¥×¥í¥»¥¹¤Ë +そのプロセスがセッションのリーダーで、 +そのプロセスの制御端末がそのセッションの制御端末である場合、 +この制御端末のフォアグラウンドプロセスグループにある +各プロセスに .B SIGHUP -¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¡¢Ã¼Ëö¤¬¥»¥Ã¥·¥ç¥ó¤«¤éÀÚ¤êÎ¥¤µ¤ì¤ë¡£ -¤³¤ì¤Ë¤è¤ê¿·¤·¤¤À©¸æ¥×¥í¥»¥¹¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +シグナルが送られ、端末がセッションから切り離される。 +これにより新しい制御プロセスを取得することができる。 .LP -¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢¥×¥í¥»¥¹¥°¥ë¡¼¥×¤¬¸ÉΩ¤·¤Æ¡¢ -¤½¤Î¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð¡¼¤Î¤¦¤Á¤Î¤É¤ì¤«¤¬Ää»ß¤·¤¿¾ì¹ç¡¢ -¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Î³Æ¥×¥í¥»¥¹¤ËÂФ·¤Æ +プロセスが終了することにより、プロセスグループが孤立して、 +そのグループのメンバーのうちのどれかが停止した場合、 +プロセスグループの各プロセスに対して .B SIGHUP -¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¡¢Â³¤¤¤Æ +シグナルが送られ、続いて .B SIGCONT -¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£ -¸ÉΩ¤·¤¿ (orphaned) ¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÎÀâÌÀ¤Ï +シグナルが送られる。 +孤立した (orphaned) プロセスグループの説明は .BR setpgid (2) -¤ò»²¾È¡£ -.SH ´ØÏ¢¹àÌÜ +を参照。 +.SH 関連項目 .BR _exit (2), .BR setpgid (2), .BR wait (2), diff --git a/release/man3/exp.3 b/release/man3/exp.3 index f6e749ea..418b39ff 100644 --- a/release/man3/exp.3 +++ b/release/man3/exp.3 @@ -38,9 +38,9 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH EXP 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -exp, expf, expl \- Ä줬 e ¤Î»Ø¿ô´Ø¿ô -.SH ½ñ¼° +.SH 名前 +exp, expf, expl \- 底が e の指数関数 +.SH 書式 .nf .B #include .sp @@ -51,12 +51,12 @@ exp, expf, expl \- .BI "long double expl(long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -70,62 +70,62 @@ or .I cc\ -std=c99 .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR exp () -´Ø¿ô¤Ï e ¤Î \fIx\fP ¾è¤ÎÃͤòÊÖ¤¹ -(e ¤Ï¼«Á³Âпô¤ÎÄì)¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï e ¤Î +関数は e の \fIx\fP 乗の値を返す +(e は自然対数の底)。 +.SH 返り値 +成功すると、これらの関数は e の .I x -¾è¤òÊÖ¤¹¡£ +乗を返す。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢Àµ¤Î̵¸ÂÂ礬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大の場合、正の無限大が返される。 .I x -¤¬Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢+0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が負の無限大の場合、+0 が返される。 -·ë²Ì¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ -ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +結果がアンダーフローする場合、 +範囲エラー (range error) が発生し、0 が返される。 -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +結果がオーバーフローする場合、範囲エラーが発生し、 +各関数はそれぞれ .RB + HUGE_VAL , .RB + HUGE_VALF , .RB + HUGE_VALL -¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +を返す。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -ÈÏ°Ï¥¨¥é¡¼ (range error)¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Î¾ì¹ç +範囲エラー (range error)、オーバーフローの場合 .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP -ÈÏ°Ï¥¨¥é¡¼¡¢¥¢¥ó¥À¡¼¥Õ¥í¡¼¤Î¾ì¹ç +範囲エラー、アンダーフローの場合 .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -¥¢¥ó¥À¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +アンダーフロー浮動小数点例外 .RB ( FE_UNDERFLOW ) -¤¬¾å¤¬¤ë¡£ -.SH ½àµò +が上がる。 +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 +.SH 関連項目 .BR cbrt (3), .BR cexp (3), .BR exp10 (3), diff --git a/release/man3/exp10.3 b/release/man3/exp10.3 index 135cdca4..ec5cf26d 100644 --- a/release/man3/exp10.3 +++ b/release/man3/exp10.3 @@ -37,11 +37,11 @@ .\" by Akihiro MOTOKI .\" .TH EXP10 3 2008-08-11 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -exp10, exp10f, exp10l \- ´ð¿ô¤¬ 10 ¤Î»Ø¿ô´Ø¿ô -.SH ½ñ¼° +.SH 名前 +exp10, exp10f, exp10l \- 基数が 10 の指数関数 +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp @@ -52,34 +52,34 @@ exp10, exp10f, exp10l \- .BI "long double exp10l(long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lm\fP でリンクする。 +.SH 説明 .BR exp10 () -´Ø¿ô¤Ï 10 ¤Î \fIx\fP ¾è¤ÎÃͤòÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï 10 ¤Î +関数は 10 の \fIx\fP 乗の値を返す。 +.SH 返り値 +成功すると、これらの関数は 10 の .I x -¾è¤òÊÖ¤¹¡£ +乗を返す。 -̵¸ÂÂç¤ä NaN ¤Î°·¤¤¤ä¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤È¥¢¥ó¥À¡¼¥Õ¥í¡¼¤Ê¤É¤Î -¤µ¤Þ¤¶¤Þ¤ÊÆÃÊ̤ʾõ¶·¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +無限大や NaN の扱いや、オーバーフローとアンダーフローなどの +さまざまな特別な状況については、 .BR exp (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +を参照のこと。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 -¤³¤ì¤é¤Î´Ø¿ô¤ÇȯÀ¸¤¹¤ë¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +これらの関数で発生するエラーについては、 .BR exp (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\" FIXME . exp10 doesn't give ERANGE for an underflow, unlike exp() and exp2() .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6787 -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 +これらの関数は GNU による拡張である。 +.SH 関連項目 .BR cbrt (3), .BR exp (3), .BR exp2 (3), diff --git a/release/man3/exp2.3 b/release/man3/exp2.3 index fa77dd22..3145e8c1 100644 --- a/release/man3/exp2.3 +++ b/release/man3/exp2.3 @@ -37,9 +37,9 @@ .\" by Akihiro MOTOKI .\" .TH EXP2 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -exp2, exp2f, exp2l \- Ä줬 2 ¤Î»Ø¿ô´Ø¿ô -.SH ½ñ¼° +.SH 名前 +exp2, exp2f, exp2l \- 底が 2 の指数関数 +.SH 書式 .nf .B #include .sp @@ -50,12 +50,12 @@ exp2, exp2f, exp2l \- .BI "long double exp2l(long double " x ); .fi .sp -\fI-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -69,33 +69,33 @@ or .I cc\ -std=c99 .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR exp2 () -´Ø¿ô¤Ï 2 ¤Î \fIx\fP ¾è¤ÎÃͤòÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï 2 ¤Î +関数は 2 の \fIx\fP 乗の値を返す。 +.SH 返り値 +成功すると、これらの関数は 2 の .I x -¾è¤òÊÖ¤¹¡£ +乗を返す。 -̵¸ÂÂç¤ä NaN ¤Î°·¤¤¤ä¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤È¥¢¥ó¥À¡¼¥Õ¥í¡¼¤Ê¤É¤Î -¤µ¤Þ¤¶¤Þ¤ÊÆÃÊ̤ʾõ¶·¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +無限大や NaN の扱いや、オーバーフローとアンダーフローなどの +さまざまな特別な状況については、 .BR exp (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +を参照のこと。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 -¤³¤ì¤é¤Î´Ø¿ô¤ÇȯÀ¸¤¹¤ë¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +これらの関数で発生するエラーについては、 .BR exp (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +を参照のこと。 +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 +.SH 関連項目 .BR cbrt (3), .BR cexp2 (3), .BR exp (3), diff --git a/release/man3/expm1.3 b/release/man3/expm1.3 index b0739f4c..c3f8ff34 100644 --- a/release/man3/expm1.3 +++ b/release/man3/expm1.3 @@ -31,9 +31,9 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH EXPM1 3 2010-09-12 "" "Linux Programmer's Manual" -.SH ̾Á° -expm1, expm1f, expm1l \- °ú¤­¿ô¤Î»Ø¿ô¤«¤é 1 ¤ò°ú¤¤¤¿ÃÍ -.SH ½ñ¼° +.SH 名前 +expm1, expm1f, expm1l \- 引き数の指数から 1 を引いた値 +.SH 書式 .nf .B #include .sp @@ -44,12 +44,12 @@ expm1, expm1f, expm1l \- .BI "long double expm1l(long double " x ); .sp .fi -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -73,76 +73,76 @@ or .I cc\ -std=c99 .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BI expm1( x ) -¤Ï°Ê²¼¤ÈÅù¤·¤¤ÃͤòÊÖ¤¹¡£ +は以下と等しい値を返す。 .nf exp(x) \- 1 .fi .I "exp(x) \- 1" -¤Î·×»»¤Ë¤Ï¡¢\fIx\fP ¤¬ 0 ¤Î¶á˵¤Ç°ú¤­»»»þ¤Î·åÍî¤Á¤Î¤¿¤á¤Ë -ÉÔÀµ³Î¤È¤Ê¤ë¤è¤¦¤Ê¾ì¹ç¤Ç¤âÀµ³Î¤ÊÃͤ¬·×»»¤Ç¤­¤ëÊýË¡¤¬ÍѤ¤¤é¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +の計算には、\fIx\fP が 0 の近傍で引き算時の桁落ちのために +不正確となるような場合でも正確な値が計算できる方法が用いられる。 +.SH 返り値 +成功すると、これらの関数は .I "exp(x)\ \-\ 1" -¤òÊÖ¤¹¡£ +を返す。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬ +0 (\-0) ¤Î¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 (\-0) の場合、+0 (\-0) が返される。 .I x -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢Àµ¤Î̵¸ÂÂ礬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大の場合、正の無限大が返される。 .I x -¤¬Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が負の無限大の場合、\-1 が返される。 -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +結果がオーバーフローする場合、範囲エラー (range error) が発生し、 +各関数はそれぞれ .RB - HUGE_VAL , .RB - HUGE_VALF , .RB - HUGE_VALL -¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +を返す。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -ÈÏ°Ï¥¨¥é¡¼ (range error)¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Î¾ì¹ç +範囲エラー (range error)、オーバーフローの場合 .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë (¡Ö¥Ð¥°¡×¤ÎÀá¤â»²¾È)¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +が設定される (「バグ」の節も参照)。 +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP .\" .\" POSIX.1 specifies an optional range error (underflow) if .\" x is subnormal. Glibc does not implement this. -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\" BSD. -.SH ¥Ð¥° +.SH バグ .I x -¤¬Éé¤ÎÂ礭¤ÊÃͤξì¹ç (¤³¤Î¾ì¹ç¤Ë¤Ï´Ø¿ô¤Î·ë²Ì¤Ï \-1 ¤Ë¶áÉÕ¤¤¤Æ¤¤¤¯)¡¢ +が負の大きな値の場合 (この場合には関数の結果は \-1 に近付いていく)、 .BR expm1 () -¤Ï´Ö°ã¤Ã¤Æ¥¢¥ó¥À¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³°¤ò¾å¤²¤ë¤³¤È¤¬¤¢¤ë¡£ +は間違ってアンダーフロー浮動小数点例外を上げることがある。 .\" FIXME . .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6778 .I x -¤¬Àµ¤ÎÂ礭¤ÊÃͤξì¹ç¡¢ +が正の大きな値の場合、 .BR expm1 () -¤Ï´üÂÔÄ̤ê¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼Îã³°¤À¤±¤Ç¤Ê¤¯ -´Ö°ã¤Ã¤ÆÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³°¤ò¾å¤²¡¢ -Àµ¤Î̵¸ÂÂç¤Ç¤Ï¤Ê¤¯ NaN ¤òÊÖ¤¹¤³¤È¤¬¤¢¤ë¡£ +は期待通りのオーバーフロー例外だけでなく +間違って不正 (invalid) 浮動小数点例外を上げ、 +正の無限大ではなく NaN を返すことがある。 .\" FIXME . .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6814 .\" e.g., expm1(1e5) through expm1(1.00199970127e5), @@ -153,13 +153,13 @@ C99, POSIX.1-2001. .\" From the source (sysdeps/i386/fpu/s_expm1.S) it looks .\" like the changes were in 2.11. .\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=6788 -¥Ð¡¼¥¸¥ç¥ó 2.11 ¤è¤êÁ°¤Î glibc ¤Î¼ÂÁõ¤Ç¤Ï¡¢ -ÈÏ°Ï¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¡¢ +バージョン 2.11 より前の glibc の実装では、 +範囲エラーが発生した場合に、 .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤Ê¤«¤Ã¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +が設定されなかった。 +.SH 関連項目 .BR exp (3), .BR log (3), .BR log1p (3) diff --git a/release/man3/fabs.3 b/release/man3/fabs.3 index dc62ecd4..ac357b97 100644 --- a/release/man3/fabs.3 +++ b/release/man3/fabs.3 @@ -38,9 +38,9 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH FABS 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -fabs, fabsf, fabsl \- ÉâÆ°¾®¿ôÅÀ¼Â¿ô¤ÎÀäÂÐÃÍ -.SH ½ñ¼° +.SH 名前 +fabs, fabsf, fabsl \- 浮動小数点実数の絶対値 +.SH 書式 .nf .B #include .sp @@ -51,12 +51,12 @@ fabs, fabsf, fabsl \- .BI "long double fabsl(long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -70,29 +70,29 @@ or .I cc\ -std=c99 .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR fabs () -´Ø¿ô·²¤ÏÉâÆ°¾®¿ôÅÀ¼Â¿ô \fIx\fP ¤ÎÀäÂÐÃͤòÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤Ï +関数群は浮動小数点実数 \fIx\fP の絶対値を返す。 +.SH 返り値 +これらの関数は .I x -¤ÎÀäÂÐÃͤòÊÖ¤¹¡£ +の絶対値を返す。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬ \-0 ¤Î¾ì¹ç¡¢+0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が \-0 の場合、+0 が返される。 .I x -¤¬Éé¤Î̵¸ÂÂ礫Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢Àµ¤Î̵¸ÂÂ礬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¥¨¥é¡¼¤Ïµ¯¤³¤é¤Ê¤¤¡£ -.SH ½àµò +が負の無限大か正の無限大の場合、正の無限大が返される。 +.SH エラー +エラーは起こらない。 +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 +.SH 関連項目 .BR abs (3), .BR cabs (3), .BR ceil (3), diff --git a/release/man3/fclose.3 b/release/man3/fclose.3 index dbcd29b8..f4c60b0a 100644 --- a/release/man3/fclose.3 +++ b/release/man3/fclose.3 @@ -51,62 +51,62 @@ .\" by Yuichi SATO .\" .TH FCLOSE 3 2009-02-23 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -fclose \- ¥¹¥È¥ê¡¼¥à¤òÊĤ¸¤ë -.SH ½ñ¼° +.SH 名前 +fclose \- ストリームを閉じる +.SH 書式 .B #include .sp .BI "int fclose(FILE *" fp ); -.SH ÀâÌÀ +.SH 説明 .BR fclose () -´Ø¿ô¤Ï +関数は .I fp -¤Ç»Ø¤µ¤ì¤ë¥¹¥È¥ê¡¼¥à¤ò (¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤Æ¤¤¤¿Á´¤Æ¤Î½ÐÎϥǡ¼¥¿¤ò +で指されるストリームを (バッファリングされていた全ての出力データを .BR fflush (3) -¤òÍѤ¤¤Æ½ñ¤­¹þ¤ó¤Ç) ¥Õ¥é¥Ã¥·¥å¤·¡¢ -¤½¤Î´ð¤È¤Ê¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -´Ø¿ô¤¬Àµ¾ï¤Ë½ªÎ»¤¹¤ë¤È 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -Àµ¾ï¤Ë½ªÎ»¤·¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï +を用いて書き込んで) フラッシュし、 +その基となるファイルディスクリプタをクローズする。 +.SH 返り値 +関数が正常に終了すると 0 が返される。 +正常に終了しなかった場合には .B EOF -¤¬ÊÖ¤µ¤ì¡¢ +が返され、 .I errno -¤¬¥¨¥é¡¼¤ò¼¨¤¹¤¿¤á¤ËÀßÄꤵ¤ì¤ë¡£ -¤É¤Á¤é¤Î¾ì¹ç¤â¡¢¤½¤Î¥¹¥È¥ê¡¼¥à¤ËÂФ¹¤ë +がエラーを示すために設定される。 +どちらの場合も、そのストリームに対する .RB ( fclose () -¤Ø¤Î¤µ¤é¤Ê¤ë¸Æ¤Ó½Ð¤·¤ò´Þ¤à) ¤½¤ì°Ê¾å¤Î¥¢¥¯¥»¥¹¤Ï -̤ÄêµÁ¤ÎÆ°ºî¤òÀ¸¤¸¤µ¤»¤ë¡£ -.SH ¥¨¥é¡¼ +へのさらなる呼び出しを含む) それ以上のアクセスは +未定義の動作を生じさせる。 +.SH エラー .TP .B EBADF .I fp -¤Î´ð¤È¤Ê¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ -.\" Ʊ¤¸¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ ANSI C stdio ¤ÎÁàºî¤ÈÄã¥ì¥Ù¥ë¥Õ¥¡¥¤¥ëÁàºî¤ò -.\" ¼è¤êº®¤¼¤Æ¹Ô¤ï¤Ê¤¤¸Â¤ê¡¢¤³¤Î¥¨¥é¡¼¤Ïµ¯¤³¤é¤Ê¤¤¡£ -.\" ¤³¤Î¥¨¥é¡¼¤ò¼õ¤±¼è¤Ã¤¿¤Î¤Ï¡¢¥¹¥È¥ê¡¼¥à¤ÎÄã¥ì¥Ù¥ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¡¢ -.\" close(fileno(fp)) ¤Ê¤É¤Ç¡¢´û¤Ë¥¯¥í¡¼¥º¤·¤Æ¤·¤Þ¤Ã¤¿¤«¤é¤Ë°ã¤¤¤Ê¤¤¡£ +の基となるファイルディスクリプタが不正である。 +.\" 同じストリームに対して ANSI C stdio の操作と低レベルファイル操作を +.\" 取り混ぜて行わない限り、このエラーは起こらない。 +.\" このエラーを受け取ったのは、ストリームの低レベルファイルディスクリプタを、 +.\" close(fileno(fp)) などで、既にクローズしてしまったからに違いない。 .PP .BR fclose () -´Ø¿ô¤Ï¤³¤ì°Ê³°¤Ë¤â +関数はこれ以外にも .BR close (2), .BR write (2), .BR fflush (3) -¤Î¥ë¡¼¥Á¥ó¤Ç¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ë¡£¤½¤Î¾ì¹ç¤Ï +のルーチンで失敗することがある。その場合は .I errno -¤¬¡¢¼ºÇÔ¤·¤¿¥ë¡¼¥Á¥ó¤ÇÀßÄꤵ¤ì¤¿ÃͤËÀßÄꤵ¤ì¤ë¡£ -.SH ½àµò +が、失敗したルーチンで設定された値に設定される。 +.SH 準拠 C89, C99. -.SH Ãí°Õ +.SH 注意 .BR fclose () -¤Ï C ¥é¥¤¥Ö¥é¥ê¤ÇÄ󶡤µ¤ì¤¿¥æ¡¼¥¶¡¼¶õ´Ö¥Ð¥Ã¥Õ¥¡¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë¤À¤±¤Ç -¤¢¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¥Ç¡¼¥¿¤ò³Î¼Â¤ËʪÍýŪ¤Ë¥Ç¥£¥¹¥¯¤Ëµ­Ï¿¤¹¤ë¤¿¤á¤Ë¤Ï -¥«¡¼¥Í¥ë¥Ð¥Ã¥Õ¥¡¤â +は C ライブラリで提供されたユーザー空間バッファをフラッシュするだけで +ある点に注意すること。 +データを確実に物理的にディスクに記録するためには +カーネルバッファも .RB ( sync (2) -¤ä +や .BR fsync (2) -¤òÍѤ¤¤Æ) ¥Õ¥é¥Ã¥·¥å¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +を用いて) フラッシュしなければならない。 +.SH 関連項目 .BR close (2), .BR fcloseall (3), .BR fflush (3), diff --git a/release/man3/fcloseall.3 b/release/man3/fcloseall.3 index 529b5ddd..2dcacaa4 100644 --- a/release/man3/fcloseall.3 +++ b/release/man3/fcloseall.3 @@ -26,39 +26,39 @@ .\" Translated 2000-06-24, Yuichi SATO .\" Updated 2007-05-04, Akihiro MOTOKI , LDP v2.46 .\" -.\"WORD: standard streams ɸ½àÆþ½ÐÎÏ +.\"WORD: standard streams 標準入出力 .\" .TH FCLOSEALL 3 2006-12-27 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -fcloseall \- ³«¤¤¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥¹¥È¥ê¡¼¥à¤òÊĤ¸¤ë -.SH ½ñ¼° +.SH 名前 +fcloseall \- 開いているすべてのストリームを閉じる +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .B int fcloseall(void); .fi -.SH ÀâÌÀ +.SH 説明 .BR fcloseall () -´Ø¿ô¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬³«¤¤¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥¹¥È¥ê¡¼¥à¤òÊĤ¸¤ë¡£ -¥¹¥È¥ê¡¼¥à¤òÊĤ¸¤ëÁ°¤Ë¡¢ +関数は、呼び出し元プロセスが開いているすべてのストリームを閉じる。 +ストリームを閉じる前に、 .RB ( fflush (3) -¤ÈƱ¤¸¤è¤¦¤Ë) ³Æ¥¹¥È¥ê¡¼¥à¤Î¥Ð¥Ã¥Õ¥¡¤Ëί¤Ã¤Æ¤¤¤ë½ÐÎϥǡ¼¥¿¤Ï½ñ¤­½Ð¤µ¤ì¤ë¡£ -ÆþÎϥХåե¡Æâ¤Î¥Ç¡¼¥¿¤ÏÇË´þ¤µ¤ì¤ë¡£ +と同じように) 各ストリームのバッファに溜っている出力データは書き出される。 +入力バッファ内のデータは破棄される。 -ɸ½àÆþ½ÐÎÏ +標準入出力 .IR stdin , .IR stdout , .I stderr -¤âÊĤ¸¤é¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -¤³¤Î´Ø¿ô¤Ï¡¢¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤¬Àµ¾ï¤ËÊĤ¸¤é¤ì¤¿¾ì¹ç 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ +も閉じられる。 +.SH 返り値 +この関数は、すべてのファイルが正常に閉じられた場合 0 を返す。 +エラーの場合、 .B EOF -¤òÊÖ¤¹¡£ -.SH ½àµò -¤³¤Î´Ø¿ô¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を返す。 +.SH 準拠 +この関数は GNU 拡張である。 +.SH 関連項目 .BR close (2), .BR fclose (3), .BR fflush (3), diff --git a/release/man3/fdim.3 b/release/man3/fdim.3 index d900e959..28b992c3 100644 --- a/release/man3/fdim.3 +++ b/release/man3/fdim.3 @@ -11,9 +11,9 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH FDIM 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -fdim, fdimf, fdiml \- Àµ¤Îº¹Ê¬¤ò·×»»¤¹¤ë -.SH ½ñ¼° +.SH 名前 +fdim, fdimf, fdiml \- 正の差分を計算する +.SH 書式 .B #include .sp .BI "double fdim(double " x ", double " y ); @@ -22,12 +22,12 @@ fdim, fdimf, fdiml \- .br .BI "long double fdiml(long double " x ", long double " y ); .sp -\fI-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -41,45 +41,45 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢Æó¤Ä¤Î°ú¤­¿ô´Ö¤ÎÀµ¤Îº¹Ê¬ max(\fIx\fP-\fIy\fP,0) ¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤ÏÀµ¤Îº¹Ê¬¤òÊÖ¤¹¡£ +.SH 説明 +これらの関数は、二つの引き数間の正の差分 max(\fIx\fP-\fIy\fP,0) を返す。 +.SH 返り値 +成功すると、これらの関数は正の差分を返す。 .I x -¤« +か .I y -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +結果がオーバーフローする場合、範囲エラーが発生し、 +各関数はそれぞれ .BR HUGE_VAL , .BR HUGE_VALF , .B HUGE_VALL -¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +を返す。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -ÈÏ°Ï¥¨¥é¡¼ (range error)¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Î¾ì¹ç +範囲エラー (range error)、オーバーフローの場合 .\" .I errno .\" is set to .\" .BR ERANGE . -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6796 -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fmax (3) diff --git a/release/man3/fenv.3 b/release/man3/fenv.3 index 39d28f6c..d6403121 100644 --- a/release/man3/fenv.3 +++ b/release/man3/fenv.3 @@ -30,17 +30,17 @@ .\" Updated 2005-02-26, Akihiro MOTOKI .\" Updated 2008-09-16, Akihiro MOTOKI .\" -.\"WORD: (floating-point) exception (ÉâÆ°¾®¿ôÅÀ) Îã³° -.\"WORD: rounding ´Ý¤á -.\"WORD: opaque ÆâÉô¤Î +.\"WORD: (floating-point) exception (浮動小数点) 例外 +.\"WORD: rounding 丸め +.\"WORD: opaque 内部の .\" .TH FENV 3 2010-10-31 "Linux" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 feclearexcept, fegetexceptflag, feraiseexcept, fesetexceptflag, fetestexcept, fegetenv, fegetround, feholdexcept, fesetround, fesetenv, feupdateenv, feenableexcept, fedisableexcept, -fegetexcept \- ÉâÆ°¾®¿ôÅÀ¤Î´Ý¤á¤ÈÎã³°¤Î¼è¤ê°·¤¤ -.SH ½ñ¼° +fegetexcept \- 浮動小数点の丸めと例外の取り扱い +.SH 書式 .nf .B #include .sp @@ -67,237 +67,237 @@ fegetexcept \- .BI "int feupdateenv(const fenv_t *" envp ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ -¤³¤ì¤é¤Î 11 ¸Ä¤Î´Ø¿ô¤Ï C99 ¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ -ÉâÆ°¾®¿ôÅÀ¤Î´Ý¤á¤ÈÎã³° (¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¡¢¥¼¥í¤Ë¤è¤ë½ü»»¤Ê¤É) -¤Î¼è¤ê°·¤¤¤òµ¬Äꤹ¤ë¡£ -.SS Îã³° +\fI\-lm\fP でリンクする。 +.SH 説明 +これらの 11 個の関数は C99 で定義されており、 +浮動小数点の丸めと例外 (オーバーフロー、ゼロによる除算など) +の取り扱いを規定する。 +.SS 例外 .I divide-by-zero -Îã³°¤Ï¡¢Í­¸Â¤Î¿ôÃͤËÂФ¹¤ë±é»»¤¬¡¢ -̵¸ÂÂç¤ÎÅú¤¨¤òÀ¸À®¤¹¤ë¤è¤¦¤Ê¾ì¹ç¤Ëµ¯¤³¤ë¡£ +例外は、有限の数値に対する演算が、 +無限大の答えを生成するような場合に起こる。 .LP .I overflow -Îã³°¤Ï¡¢·ë²Ì¤¬ÉâÆ°¾®¿ôÅÀ¿ôÃͤÇɽµ­¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Î¤Ë¡¢ -¤½¤ÎÀäÂÐÃͤ¬É½¸½²Äǽ¤ÊÉâÆ°¾®¿ôÅÀ¿ô¤Î (Í­¸Â¤Î) ºÇÂçÃͤè¤ê¤â -(¤º¤Ã¤È) Â礭¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤è¤¦¤Ê¾ì¹ç¤Ëµ¯¤³¤ë¡£ +例外は、結果が浮動小数点数値で表記されなければならないのに、 +その絶対値が表現可能な浮動小数点数の (有限の) 最大値よりも +(ずっと) 大きくなってしまうような場合に起こる。 .LP .I underflow -Îã³°¤Ï¡¢·ë²Ì¤¬ÉâÆ°¾®¿ôÅÀ¿ôÃͤÇɽµ­¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Î¤Ë¡¢ -¤½¤ÎÀäÂÐÃͤ¬Àµ¤ÎÀµµ¬²½ÉâÆ°¾®¿ôÅÀ¿ô¤ÎºÇ¾®Ãͤè¤ê¤â -¾®¤µ¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦ -(¤½¤·¤Æ ÈóÀµµ¬²½¿ô¤Çɽ¸½¤·¤¿¾ì¹ç¤ËÈó¾ï¤ËÀºÅÙ¤ò¼º¤Ã¤Æ¤·¤Þ¤¦) -¤è¤¦¤Ê¾ì¹ç¤Ëµ¯¤³¤ë¡£ +例外は、結果が浮動小数点数値で表記されなければならないのに、 +その絶対値が正の正規化浮動小数点数の最小値よりも +小さくなってしまう +(そして 非正規化数で表現した場合に非常に精度を失ってしまう) +ような場合に起こる。 .LP .I inexact -Îã³°¤Ï¡¢´Ý¤á¸å¤Î±é»»·ë²Ì¤¬¡¢ -̵¸ÂÀºÅ٤ηë²Ì¤È°Û¤Ê¤ë¤è¤¦¤Ê¾ì¹ç¤Ëµ¯¤³¤ë¡£ +例外は、丸め後の演算結果が、 +無限精度の結果と異なるような場合に起こる。 .I overflow -Îã³°¤« +例外か .I underflow -Îã³°¤¬µ¯¤­¤¿¤È¤­¤Ë¤Ï¡¢¾ï¤Ë¤³¤ÎÎã³°¤âµ¯¤³¤ë¡£ +例外が起きたときには、常にこの例外も起こる。 .LP .I invalid -Îã³°¤Ï¡¢±é»»·ë²Ì¤¬¤¦¤Þ¤¯ÄêµÁ¤Ç¤­¤Ê¤¤·ë²Ì¤òÀ¸¤¸¤ë¤è¤¦¤Ê¾ì¹ç¤Ëµ¯¤³¤ë¡£ -Î㤨¤Ð 0/0¡¢Ìµ¸ÂÂç \- ̵¸ÂÂç¡¢sqrt(\-1) ¤Ê¤É¡£ -.SS Îã³°½èÍý -Îã³°¤Îɽ¤·Êý¤Ë¤Ï 2 ¤Ä¤ÎÊýË¡¤¬¤¢¤ë¡£ -¤Ò¤È¤Ä¤Ï¡¢Ã±°ì¤Î¥Ó¥Ã¥È¤Ç (Îã³°¤¬¤¢¤Ã¤¿¤«¤Ê¤«¤Ã¤¿¤«¤ò) ɽ¤¹ÊýË¡¤Ç¡¢ -¤³¤ì¤é¤Î¥Ó¥Ã¥È¤ÏÀ°¿ô¤Î¤¢¤ë¥Ó¥Ã¥È°ÌÃÖ¤ËÂбþ¤·¡¢¥Ó¥Ã¥È¤ÎÂбþÉÕ¤±¤Ï -¼ÂÁõ°Í¸¤Ç¤¢¤ë¡£¤â¤¦°ì¤Ä¤Ï¡¢ÆâÉô¹½Â¤ÂΤò»È¤Ã¤Æɽ¤¹ÊýË¡¤Ç¡¢ -¤³¤ÎÊýË¡¤ÎÊý¤¬Îã³°¤Ë´Ø¤¹¤ë¤è¤ê¿¤¯¤Î¾ðÊó -(Î㤨¤ÐÎã³°¤¬µ¯¤³¤Ã¤¿¥³¡¼¥É¤Î¥¢¥É¥ì¥¹¤Ê¤É) ¤¬´Þ¤Þ¤ì¤ë¡£ +例外は、演算結果がうまく定義できない結果を生じるような場合に起こる。 +例えば 0/0、無限大 \- 無限大、sqrt(\-1) など。 +.SS 例外処理 +例外の表し方には 2 つの方法がある。 +ひとつは、単一のビットで (例外があったかなかったかを) 表す方法で、 +これらのビットは整数のあるビット位置に対応し、ビットの対応付けは +実装依存である。もう一つは、内部構造体を使って表す方法で、 +この方法の方が例外に関するより多くの情報 +(例えば例外が起こったコードのアドレスなど) が含まれる。 .LP .BR FE_DIVBYZERO , .BR FE_INEXACT , .BR FE_INVALID , .BR FE_OVERFLOW , .B FE_UNDERFLOW -¤Î³Æ¥Þ¥¯¥í¤Ï¡¢¤½¤ì¤¾¤ìÂбþ¤¹¤ëÎã³°¤Î½èÍý¤ò -¼ÂÁõ¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¤ËÄêµÁ¤µ¤ì¤ë¡£ -¤³¤Î¤È¤­Âбþ¤¹¤ë¥Ó¥Ã¥È¤ò¤½¤ì¤¾¤ìÄêµÁ¤¹¤ë¤³¤È¤Ë¤Ê¤ë¤Î¤Ç¡¢ -Îã³°½èÍý´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤ò¡¢Î㤨¤Ð +の各マクロは、それぞれ対応する例外の処理を +実装がサポートしている場合に定義される。 +このとき対応するビットをそれぞれ定義することになるので、 +例外処理関数の呼び出しを、例えば .BR FE_OVERFLOW | FE_UNDERFLOW -¤È¤¤¤¦À°¿ô¤Î°ú¤­¿ô¤òÍѤ¤¤Æ¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¾¤ÎÎã³°¤â¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +という整数の引き数を用いて行うことができる。 +他の例外もサポートされているかもしれない。 .B FE_ALL_EXCEPT -¥Þ¥¯¥í¤Ï¡¢¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ëÎã³°¤ËÂбþ¤¹¤ë¥Ó¥Ã¥È¤¬Á´¤Æ¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë -(¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ëÎã³°Á´¤Æ¤ÎÏÀÍýϤǤ¢¤ë)¡£ +マクロは、サポートされている例外に対応するビットが全てセットされている +(サポートされている例外全ての論理和である)。 .PP .BR feclearexcept () -´Ø¿ô¤Ï¡¢°ú¤­¿ô +関数は、引き数 .I excepts -¤Î¥Ó¥Ã¥ÈÎó¤Ç»ØÄꤵ¤ì¤¿Îã³°¤ò¥¯¥ê¥¢¤¹¤ë -(½èÍý¤Ï¼ÂÁõ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ëÎã³°¤Ë¤Ä¤¤¤Æ¤Î¤ß¹Ô¤ï¤ì¤ë)¡£ +のビット列で指定された例外をクリアする +(処理は実装でサポートされている例外についてのみ行われる)。 .LP .BR fegetexceptflag () -´Ø¿ô¤Ï¡¢°ú¤­¿ô +関数は、引き数 .I excepts -¤Ç»ØÄꤵ¤ì¤¿Îã³°¥Õ¥é¥°¤Î¾õÂÖ¤ò +で指定された例外フラグの状態を .I *flagp -¤¬»Ø¤¹ÆâÉô¥ª¥Ö¥¸¥§¥¯¥È¤ËÊݸ¤¹¤ë¡£ +が指す内部オブジェクトに保存する。 .LP .BR feraiseexcept () -´Ø¿ô¤Ï¡¢ +関数は、 .I excepts -¤Î¥Ó¥Ã¥ÈÎó¤Ç»ØÄꤵ¤ì¤¿Îã³°¤Î¤¦¤Á¡¢ -¼ÂÁõ¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤â¤Î¤òȯÀ¸¤µ¤»¤ë¡£ +のビット列で指定された例外のうち、 +実装がサポートしているものを発生させる。 .LP .BR fesetexceptflag () -´Ø¿ô¤Ï¡¢ +関数は、 .I excepts -¤Ç»ØÄꤵ¤ì¤¿Îã³°¤ËÂбþ¤¹¤ë¥Õ¥é¥°¤Î¾õÂÖ¤ò +で指定された例外に対応するフラグの状態を .I *flagp -¤ÎÃͤËÀßÄꤹ¤ë¡£ +の値に設定する。 .I *flagp -¤ÎÃͤϡ¢¤³¤Î´Ø¿ô¤ò¸Æ¤ÖÁ°¤Ë +の値は、この関数を呼ぶ前に .BR fegetexceptflag () -´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤Æ¼èÆÀ¤·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(¤³¤Î¤È¤­¡¢ +関数を呼び出して取得しておかなければならない +(このとき、 .BR fegetexceptflag () -¤ÎºÇ¸å¤Î°ú¤­¿ô¤Ë¤Ï¡¢ +の最後の引き数には、 .BR fesetexceptflag () -¤ËÅϤ¹ +に渡す .I excepts -¤Î¤¹¤Ù¤Æ¤Î¥Ó¥Ã¥È¤ò´Þ¤àÃͤò»ØÄꤹ¤ë¤³¤È)¡£ +のすべてのビットを含む値を指定すること)。 .LP .BR fetestexcept () -´Ø¿ô¤Ï¡¢ +関数は、 .I excepts -°ú¤­¿ô¤Ç¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¥Ó¥Ã¥È¤Î¤¦¤Á¡¢ -¸½ºßÀßÄꤵ¤ì¤Æ¤¤¤ëÎã³°¤ËÂбþ¤¹¤ë¥Ó¥Ã¥È¤¬ 1 ¤Ë¤Ê¤Ã¤¿¥ï¡¼¥É¤òÊÖ¤¹¡£ -.SS ´Ý¤á¥â¡¼¥É -´Ý¤á¥â¡¼¥É¤Ï¡¢·ë²Ì¤¬²¾¿ôÉô¤À¤±¤ÇÀµ³Î¤Ëɽ¸½¤Ç¤­¤Ê¤¤ºÝ¤Ë¡¢ -ÉâÆ°¾®¿ôÅÀÁàºî¤Î·ë²Ì¤ò¤É¤Î¤è¤¦¤Ë°·¤¦¤«¤ò·è¤á¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¤µ¤Þ¤¶¤Þ¤Ê´Ý¤á¥â¡¼¥É¤òÄ󶡤¹¤ë¤³¤È¤¬¤Ç¤­¤ë: -ºÇ¤â¶á¤¤Ãͤ˴ݤá¤ë (¥Ç¥Õ¥©¥ë¥È)¡¢ -(Àµ¤Î̵¸ÂÂç¤Ë¸þ¤«¤Ã¤Æ) Â礭¤¯¤Ê¤ëÊý¸þ¤Ë´Ý¤á¤ë¡¢ -(Éé¤Î̵¸ÂÂç¤Ë¸þ¤«¤Ã¤Æ) ¾®¤µ¤¯¤Ê¤ëÊý¸þ¤Ë´Ý¤á¤ë¡¢ -0 ¤Ë¸þ¤±¤Æ´Ý¤á¤ë¡¢¤Ç¤¢¤ë¡£ +引き数でセットされているビットのうち、 +現在設定されている例外に対応するビットが 1 になったワードを返す。 +.SS 丸めモード +丸めモードは、結果が仮数部だけで正確に表現できない際に、 +浮動小数点操作の結果をどのように扱うかを決めるものである。 +さまざまな丸めモードを提供することができる: +最も近い値に丸める (デフォルト)、 +(正の無限大に向かって) 大きくなる方向に丸める、 +(負の無限大に向かって) 小さくなる方向に丸める、 +0 に向けて丸める、である。 .BR FE_TONEAREST , .BR FE_UPWARD , .BR FE_DOWNWARD , .BR FE_TOWARDZERO -¤Î³Æ¥Þ¥¯¥í¤Ï¡¢¤½¤ì¤¾¤ìÂбþ¤¹¤ë´Ý¤á¤ÎÊý¸þ¤ò -¼ÂÁõ¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¤ËÄêµÁ¤µ¤ì¤ë¡£ +の各マクロは、それぞれ対応する丸めの方向を +実装がサポートしている場合に定義される。 .LP .BR fegetround () -´Ø¿ô¤Ï¸½ºß¤Î´Ý¤á¥â¡¼¥É¤ËÂбþ¤¹¤ë¥Þ¥¯¥í¤òÊÖ¤¹¡£ +関数は現在の丸めモードに対応するマクロを返す。 .LP .BR fesetround () -´Ø¿ô¤Ï´Ý¤á¥â¡¼¥É¤ò°ú¤­¿ô¤ËÍ¿¤¨¤é¤ì¤¿Ãͤˤ·¡¢ -À®¸ù¤·¤¿¤é¥¼¥í¤òÊÖ¤¹¡£ +関数は丸めモードを引き数に与えられた値にし、 +成功したらゼロを返す。 -C99 ¤È POSIX.1-2008 ¤Ç¤Ï +C99 と POSIX.1-2008 では .B FLT_ROUNDS -¤È¤¤¤¦¼±Ê̻Ҥ¬µ¬Äꤵ¤ì¤Æ¤ª¤ê¡¢ +という識別子が規定されており、 .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£¤³¤Î¼±ÊÌ»Ò¤Ï -ÉâÆ°¾®¿ôÅÀ¿ô¤Î²Ã»»¤Ë¤Ä¤¤¤Æ¤Î¼ÂÁõÄêµÁ¤µ¤ì¤¿´Ý¤áÆ°ºî¤òɽ¤·¡¢ -°Ê²¼¤Î¤¤¤º¤ì¤«¤ÎÃͤò»ý¤Ä¡£ +で定義されている。この識別子は +浮動小数点数の加算についての実装定義された丸め動作を表し、 +以下のいずれかの値を持つ。 .IP \-1 -´Ý¤á¥â¡¼¥É¤Ï·è¤á¤é¤ì¤Æ¤¤¤Ê¤¤¡£ +丸めモードは決められていない。 .IP 0 -0 ¤Ë¸þ¤±¤Æ´Ý¤á¤ë¡£ +0 に向けて丸める。 .IP 1 -ºÇ¤â¶á¤¤¿ô¤Ë´Ý¤á¤ë¡£ +最も近い数に丸める。 .IP 2 -Àµ¤Î̵¸ÂÂç¤Ë¸þ¤±¤Æ´Ý¤á¤ë¡£ +正の無限大に向けて丸める。 .IP 3 -Éé¤Î̵¸ÂÂç¤Ë¸þ¤±¤Æ´Ý¤á¤ë¡£ +負の無限大に向けて丸める。 .PP -¾¤ÎÃͤϥޥ·¥ó°Í¸¤Ç¤¢¤ê¡¢É¸½àŪ¤Ç¤Ï¤Ê¤¤´Ý¤á¥â¡¼¥É¤Ç¤¢¤ë¡£ +他の値はマシン依存であり、標準的ではない丸めモードである。 .PP .BR FLT_ROUNDS -¤ÎÃͤˤϡ¢ +の値には、 .BR fesetround () -¤ÇÀßÄꤵ¤ì¤¿¸½ºß¤Î´Ý¤á¥â¡¼¥É¤¬È¿±Ç¤µ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë -(⤷¡¢¡Ö¥Ð¥°¡×¤ÎÀá¤ò»²¾È)¡£ -.SS ÉâÆ°¾®¿ôÅÀ´ØÏ¢¤Î´Ä¶­ -ÉâÆ°¾®¿ôÅÀ´ØÏ¢¤Î´Ä¶­¤ÎÁ´ÂΤϡ¢ -À©¸æ¥â¡¼¥É¤ä¾õÂ֥ե饰¤â´Þ¤á¡¢ +で設定された現在の丸めモードが反映されるべきである +(但し、「バグ」の節を参照)。 +.SS 浮動小数点関連の環境 +浮動小数点関連の環境の全体は、 +制御モードや状態フラグも含め、 .I fenv_t -·¿¤ÎÆâÉô¥ª¥Ö¥¸¥§¥¯¥È°ì¤Ä¤Ç¼è¤ê°·¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Î´Ä¶­¤Ï¡¢ +型の内部オブジェクト一つで取り扱うことができる。 +デフォルトの環境は、 .RI ( "const fenv_t *" -·¿¤Î) +型の) .B FE_DFL_ENV -¤Ç¼¨¤µ¤ì¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï¥×¥í¥°¥é¥à¤Î³«»Ï»þ¤Ë¹½ÃÛ¤µ¤ì¤ë´Ä¶­¤Ç¤¢¤ê¡¢ -ISO C ¤Ç¤Ï¡¢´Ý¤á¥â¡¼¥É¤òºÇ¤â¶á¤¤Ãͤؤδݤá +で示されるものである。 +これはプログラムの開始時に構築される環境であり、 +ISO C では、丸めモードを最も近い値への丸め .RB ( FE_TONEAREST ) -¤ËÀßÄꤷ¡¢¤¹¤Ù¤Æ¤ÎÎã³°¤ò¥¯¥ê¥¢¤·¡¢ÉÔÄä»ß (nonstop) -(Îã³°¤¬µ¯¤­¤Æ¤â·Ñ³¤¹¤ë) ¥â¡¼¥É¤È¤¹¤ë¤è¤¦¤Ëµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +に設定し、すべての例外をクリアし、不停止 (nonstop) +(例外が起きても継続する) モードとするように規定されている。 .LP .BR fegetenv () -´Ø¿ô¤Ï¡¢¸½ºß¤ÎÉâÆ°¾®¿ôÅÀ´Ä¶­¤ò¡¢¥ª¥Ö¥¸¥§¥¯¥È +関数は、現在の浮動小数点環境を、オブジェクト .I *envp -¤ËÊݸ¤¹¤ë¡£ +に保存する。 .LP .BR feholdexcept () -´Ø¿ô¤âƱ¤¸Æ°ºî¤ò¹Ô¤¤¡¢ -¤µ¤é¤Ë²Äǽ¤Ç¤¢¤ì¤Ð¡¢Á´¤Æ¤ÎÎã³°¥Õ¥é¥°¤ò¥¯¥ê¥¢¤·¡¢ -nonstop (Îã³°»þ¤Ë¤â¼Â¹Ô¤ò·Ñ³) ¥â¡¼¥É¤ËÀßÄꤹ¤ë¡£ +関数も同じ動作を行い、 +さらに可能であれば、全ての例外フラグをクリアし、 +nonstop (例外時にも実行を継続) モードに設定する。 .LP .BR fesetenv () -´Ø¿ô¤Ï¡¢ÉâÆ°¾®¿ôÅÀ´Ä¶­¤ò¡¢¥ª¥Ö¥¸¥§¥¯¥È +関数は、浮動小数点環境を、オブジェクト .I *envp -¤«¤é¼è¤ê½Ð¤·¤¿ÃͤËÌ᤹¡£ -¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢Í­¸ú¤Ç¤¢¤ë¤³¤È¤¬»öÁ°¤Ëʬ¤«¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Î㤨¤Ð¡¢ +から取り出した値に戻す。 +このオブジェクトは、有効であることが事前に分かっていなければならない。 +例えば、 .BR fegetenv () -¤ä +や .BR feholdexcept () -¤ò¸Æ¤Ó½Ð¤·¤¿·ë²Ì¤Ç¤¢¤ë¤È¤«¡¢ +を呼び出した結果であるとか、 .B FE_DFL_ENV -¤ËÅù¤·¤¤¤È¤«¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤Î´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤ÏÎã³°¤òȯÀ¸¤·¤Ê¤¤¡£ +に等しいとかでなければならない。 +この関数の呼び出しは例外を発生しない。 .LP .BR feupdateenv () -´Ø¿ô¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È +関数は、オブジェクト .I *envp -¤¬É½¸½¤¹¤ëÉâÆ°¾®¿ôÅÀ´Ä¶­¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¡£ -¤¿¤À¤·¡¢¸½ºßȯÀ¸¤·¤Æ¤¤¤ëÎã³°¤Ï¥¯¥ê¥¢¤µ¤ì¤Ê¤¤¡£ -¤³¤Î´Ø¿ô¤ò¸Æ¤ó¤À¸å¤ËΩ¤Ã¤Æ¤¤¤ëÎã³°¤Ï¡¢ -´Ø¿ô¤ò¸Æ¤ÖÁ°¤ÎÃÍ¤È +が表現する浮動小数点環境をインストールする。 +ただし、現在発生している例外はクリアされない。 +この関数を呼んだ後に立っている例外は、 +関数を呼ぶ前の値と .I *envp -¤ÎÃͤȤΥӥåȤ´¤È¤Î OR ¤ò¼è¤Ã¤¿¤â¤Î¤Ë¤Ê¤ë¡£ -¾åµ­¤ÈƱÍͤˡ¢¥ª¥Ö¥¸¥§¥¯¥È +の値とのビットごとの OR を取ったものになる。 +上記と同様に、オブジェクト .I *envp -¤Ï¡¢»öÁ°¤ËÍ­¸ú¤Ç¤¢¤ë¤³¤È¤¬Ê¬¤«¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢À®¸ù¤Î¾ì¹ç 0 ¤òÊÖ¤·¡¢¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤È 0 °Ê³°¤òÊÖ¤¹¡£ -.\" °ÊÁ°¤Ï¡¢¤³¤ì¤é¤Î´Ø¿ô¤Î¤¦¤Á 7¤Ä¤Ï void ¤òÊÖ¤¹¤â¤Î¤È½ñ¤«¤ì¤Æ¤¤¤¿¡£ -.\" ¤³¤ì¤Ï C99 ɸ½à¤Î Corrigendum 1 (ISO/IEC 9899:1999/Cor.1:2001(E)) -.\" ¤Ç½¤Àµ¤µ¤ì¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +は、事前に有効であることが分かっていなければならない。 +.SH 返り値 +これらの関数は、成功の場合 0 を返し、エラーが発生すると 0 以外を返す。 +.\" 以前は、これらの関数のうち 7つは void を返すものと書かれていた。 +.\" これは C99 標準の Corrigendum 1 (ISO/IEC 9899:1999/Cor.1:2001(E)) +.\" で修正された。 +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 IEC 60559 (IEC 559:1989), ANSI/IEEE 854, C99, POSIX.1-2001. -.SH Ãí°Õ -.SS glibc ¤Ç¤ÎÃí°Õ -²Äǽ¤Ê¾ì¹ç¤Ë¤Ï¡¢GNU C Library ¤Ï¥Þ¥¯¥í +.SH 注意 +.SS glibc での注意 +可能な場合には、GNU C Library はマクロ .B FE_NOMASK_ENV -¤òÄêµÁ¤¹¤ë¡£¤³¤Î¥Þ¥¯¥í¤Ï¤¹¤Ù¤Æ¤ÎÎã³°¤Ç¥È¥é¥Ã¥×¤¬À¸¤¸¤ë¤è¤¦¤Ê´Ä¶­¤òɽ¤¹¡£ +を定義する。このマクロはすべての例外でトラップが生じるような環境を表す。 .B #ifdef -¤ò»È¤Ã¤Æ¤³¤Î¥Þ¥¯¥í¤ò¥Æ¥¹¥È¤Ç¤­¤ë¡£¤³¤ì¤Ï +を使ってこのマクロをテストできる。これは .B _GNU_SOURCE -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¸Â¤Ã¤ÆÄêµÁ¤µ¤ì¤ë¡£ -C99 ɸ½à¤ÏÉâÆ°¾®¿ôÅÀ¥Þ¥¹¥¯ (Î㤨¤ÐÆÃÄê¤Î¥Õ¥é¥°¤Ç¤Î¥È¥é¥Ã¥×¤Ê¤É) -¤Î³Æ¥Ó¥Ã¥È¤ÎÀßÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤ÏÄêµÁ¤·¤Æ¤¤¤Ê¤¤¡£ -¥Ð¡¼¥¸¥ç¥ó 2.2 °Ê¹ß¤Î glibc ¤Ï¡¢ +が定義されている場合に限って定義される。 +C99 標準は浮動小数点マスク (例えば特定のフラグでのトラップなど) +の各ビットの設定方法については定義していない。 +バージョン 2.2 以降の glibc は、 .BR feenableexcept () -´Ø¿ô¤È +関数と .BR fedisableexcept () -´Ø¿ô¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤ª¤ê¡¢ -³Æ¡¹¤ÎÉâÆ°¾®¿ôÅÀ¥È¥é¥Ã¥×¤òÀßÄê¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤Þ¤¿ +関数をサポートしており、 +各々の浮動小数点トラップを設定できるようになっている。 +また .BR fegetexcept () -¤Ë¤è¤Ã¤Æ¾õÂÖ¤ÎÌ䤤¹ç¤ï¤»¤â¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +によって状態の問い合わせもできるようになっている。 .sp .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B "#define _GNU_SOURCE" .br .B "#include " @@ -311,26 +311,26 @@ C99 ɸ .fi .LP .BR feenableexcept () -´Ø¿ô¤È +関数と .BR fedisableexcept () -´Ø¿ô¤Ï +関数は .I excepts -¤Ë¤è¤Ã¤Æɽ¸½¤µ¤ì¤ë³ÆÎã³°¤Î¥È¥é¥Ã¥×¤òÍ­¸ú (̵¸ú) ¤Ë¤¹¤ë¡£ -À®¸ù¤·¤¿¾ì¹ç¤ÏľÁ°¤ËÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤¿Îã³°¤Î¥»¥Ã¥È¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ +によって表現される各例外のトラップを有効 (無効) にする。 +成功した場合は直前に有効になっていた例外のセットを返す。 +失敗した場合は \-1 を返す。 .BR fegetexcept () -´Ø¿ô¤Ï¸½ºßÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ëÎã³°Á´¤Æ¤«¤é¤Ê¤ë¥»¥Ã¥È¤òÊÖ¤¹¡£ -.SH ¥Ð¥° -C99 ¤Îµ¬Äê¤Ç¤Ï¡¢ +関数は現在有効になっている例外全てからなるセットを返す。 +.SH バグ +C99 の規定では、 .BR FLT_ROUNDS -¤ÎÃÍ¤Ë¤Ï +の値には .BR fesetround () -¤ÇÀßÄꤵ¤ì¤¿¸½ºß¤Î´Ý¤á¥â¡¼¥É¤¬È¿±Ç¤µ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¤È¤µ¤ì¤Æ¤¤¤ë¡£ -¸½ºß¤Î¤È¤³¤í¡¢ +で設定された現在の丸めモードが反映されるべきであるとされている。 +現在のところ、 .\" Aug 08, glibc 2.8 -¤³¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤ª¤é¤º¡¢ +このようになっておらず、 .B FLT_ROUNDS -¤Ï¾ï¤ËÃÍ 1 ¤È¤Ê¤ë¡£ +は常に値 1 となる。 .\" See http://gcc.gnu.org/ml/gcc/2002-02/msg01535.html -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR math_error (7) diff --git a/release/man3/ferror.3 b/release/man3/ferror.3 index e829441c..8cdce5b0 100644 --- a/release/man3/ferror.3 +++ b/release/man3/ferror.3 @@ -47,9 +47,9 @@ .\" Updated Fri Nov 2 JST 2001 by Kentaro Shirakata .\" .TH FERROR 3 2008-08-29 "" "Linux Programmer's Manual" -.SH ̾Á° -clearerr, feof, ferror, fileno \- ¥¹¥È¥ê¡¼¥à¥¹¥Æ¡¼¥¿¥¹¤Î¥Á¥§¥Ã¥¯¤È¥ê¥»¥Ã¥È -.SH ½ñ¼° +.SH 名前 +clearerr, feof, ferror, fileno \- ストリームステータスのチェックとリセット +.SH 書式 .B #include .sp .BI "void clearerr(FILE *" stream ); @@ -61,68 +61,68 @@ clearerr, feof, ferror, fileno \- .BI "int fileno(FILE *" stream ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR fileno (): _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR clearerr () -¤Ï +は .I stream -¤Ç¼¨¤µ¤ì¤ë¥¹¥È¥ê¡¼¥à¤Î EOF(end-of-file) »Ø¼¨»Ò¤È¥¨¥é¡¼»Ø¼¨»Ò¤ò¥¯¥ê¥¢¤¹¤ë¡£ +で示されるストリームの EOF(end-of-file) 指示子とエラー指示子をクリアする。 .PP -´Ø¿ô +関数 .BR feof () -¤Ï +は .I stream -¤Ç¼¨¤µ¤ì¤ë¥¹¥È¥ê¡¼¥à¤Î EOF »Ø¼¨»Ò¤ò¥Æ¥¹¥È¤·¡¢ -¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ì¤Ð 0 °Ê³°¤Î¿ô¤òÊÖ¤¹¡£ -EOF »Ø¼¨»Ò¤Ï¡¢´Ø¿ô +で示されるストリームの EOF 指示子をテストし、 +セットされていれば 0 以外の数を返す。 +EOF 指示子は、関数 .BR clearerr () -¤Ë¤è¤Ã¤Æ¤Î¤ß¥¯¥ê¥¢¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +によってのみクリアすることができる。 .PP -´Ø¿ô +関数 .BR ferror () -¤Ï +は .I stream -¤Ç¼¨¤µ¤ì¤ë¥¹¥È¥ê¡¼¥à¤Î¥¨¥é¡¼»Ø¼¨»Ò¤ò¥Æ¥¹¥È¤·¡¢ -¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ì¤Ð 0 °Ê³°¤Î¿ô¤òÊÖ¤¹¡£ -¥¨¥é¡¼»Ø¼¨»Ò¤Ï¡¢´Ø¿ô +で示されるストリームのエラー指示子をテストし、 +セットされていれば 0 以外の数を返す。 +エラー指示子は、関数 .BR clearerr () -¤Ë¤è¤Ã¤Æ¤Î¤ß¥ê¥»¥Ã¥È¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +によってのみリセットすることができる。 .PP -´Ø¿ô +関数 .BR fileno () -¤Ï¡¢°ú¿ô +は、引数 .I stream -¤òÄ´¤Ù¡¢¤½¤ÎÀ°¿ô¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤òÊÖ¤¹¡£ +を調べ、その整数のディスクリプターを返す。 .PP -¥í¥Ã¥¯¤»¤º¤Ë¤³¤ì¤é¤Î½èÍý¤ò¹Ô¤¤¤¿¤¤¤È¤­¤Ï¡¢ +ロックせずにこれらの処理を行いたいときは、 .BR unlocked_stdio (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¼ºÇÔ¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¯¡¢¤Þ¤¿¡¢³°ÉôÊÑ¿ô +を参照のこと。 +.SH エラー +これらの関数は失敗すべきではなく、また、外部変数 .I errno -¤ËÃͤò¥»¥Ã¥È¤·¤Ê¤¤¡£ -(¤·¤«¤·¡¢ +に値をセットしない。 +(しかし、 .BR fileno () -´Ø¿ô¤Î¾ì¹ç¤Ç¡¢°ú¿ô¤¬Í­¸ú¤Ê¥¹¥È¥ê¡¼¥à¤Ç¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ -´Ø¿ô¤Ï \-1 ¤òÊÖ¤·¡¢ +関数の場合で、引数が有効なストリームでなかった場合、 +関数は \-1 を返し、 .I errno -¤Ë +に .B EBADF -¤òÀßÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£) -.SH ½àµò -´Ø¿ô +を設定しなければならない。) +.SH 準拠 +関数 .BR clearerr (), .BR feof (), .BR ferror () -¤Ï C89 ¤È C99 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +は C89 と C99 に準拠している。 +.SH 関連項目 .BR open (2), .BR fdopen (3), .BR stdio (3), diff --git a/release/man3/fexecve.3 b/release/man3/fexecve.3 index 07314344..18164b7b 100644 --- a/release/man3/fexecve.3 +++ b/release/man3/fexecve.3 @@ -27,9 +27,9 @@ .\" Updated 2009-02-23, Akihiro MOTOKI , LDP v3.18 .\" .TH FEXECVE 3 2010-09-15 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -fexecve \- ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë -.SH ½ñ¼° +.SH 名前 +fexecve \- ファイルディスクリプタで指定されたプログラムを実行する +.SH 書式 .nf .B #include .sp @@ -37,9 +37,9 @@ fexecve \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR fexecve (): @@ -47,67 +47,67 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR fexecve () -¤Ï +は .BR execve (2) -¤ÈƱ¤¸ºî¶È¤ò¹Ô¤¦¡£°ã¤¦¤Î¤Ï¡¢ -¼Â¹Ô¤¹¤ë¥Õ¥¡¥¤¥ë¤ò¡¢¥Ñ¥¹Ì¾¤Ç¤Ï¤Ê¤¯¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +と同じ作業を行う。違うのは、 +実行するファイルを、パス名ではなく、 +ファイルディスクリプタ .I fd -¤òÍѤ¤¤Æ»ØÄꤹ¤ëÅÀ¤Ç¤¢¤ë¡£ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +を用いて指定する点である。 +ファイルディスクリプタ .I fd -¤Ï¡¢Æɤ߹þ¤ßÀìÍѤǥª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -¸Æ¤Ó½Ð¤·¸µ¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë -¼Â¹Ôµö²Ä¤ò»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は、読み込み専用でオープンされていなければならず、 +呼び出し元はファイルディスクリプタが参照するファイルに対する +実行許可を持っていなければならない。 .\" POSIX.1-2008 specifies the O_EXEC flag for open as an alternative, .\" but Linux doesn't support this flag yet. -.SH ÊÖ¤êÃÍ +.SH 返り値 .BR fexecve () -¤Ï¸Æ¤Ó½Ð¤·¤ËÀ®¸ù¤·¤¿¾ì¹ç¡¢Ìá¤ë¤³¤È¤Ï¤Ê¤¤¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ÊÖ¤êÃͤȤ·¤Æ \-1 ¤¬ÊÖ¤µ¤ì¡¢ +は呼び出しに成功した場合、戻ることはない。 +エラーの場合、返り値として \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¥¨¥é¡¼¤Ï +が適切に設定される。 +.SH エラー +エラーは .BR execve (2) -¤ÈƱ¤¸¤À¤¬¡¢°Ê²¼¤Î¥¨¥é¡¼¤¬ÄɲäˤʤäƤ¤¤ë: +と同じだが、以下のエラーが追加になっている: .TP .B EINVAL .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£¤Þ¤¿¤Ï +が有効なファイルディスクリプタでない。または .I argv -¤¬ NULL ¤Ç¤¢¤ë¡£¤Þ¤¿¤Ï +が NULL である。または .I envp -¤¬ NULL ¤Ç¤¢¤ë¡£ +が NULL である。 .TP .B ENOSYS .I /proc -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤«¤Ã¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +ファイルシステムにアクセスできなかった。 +.SH バージョン .BR fexecve () -¤Ï glibc 2.3.2 °Ê¹ß¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò +は glibc 2.3.2 以降で実装されている。 +.SH 準拠 POSIX.1-2008. -¤³¤Î´Ø¿ô¤Ï POSIX.1-2001 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤ª¤é¤º¡¢ -¾¤Î¥·¥¹¥Æ¥à¤Ç¹­¤¯ÍøÍѤǤ­¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ -Linux ¤Ç¤Ï¡¢ +この関数は POSIX.1-2001 では規定されておらず、 +他のシステムで広く利用できるわけではない。 +.SH 注意 +Linux では、 .BR fexecve () -¤Ï +は .BR proc (5) -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò»È¤Ã¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -¤½¤Î¤¿¤á¡¢¤³¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹»þÅÀ¤Ç¤Ï +ファイルシステムを使って実装されている。 +そのため、この関数を呼び出す時点では .I /proc -¤¬¥Þ¥¦¥ó¥È¤µ¤ì¤ÆÍøÍѲÄǽ¤È¤Ê¤Ã¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +がマウントされて利用可能となっている必要がある。 +.SH 関連項目 .BR execve (2) diff --git a/release/man3/fflush.3 b/release/man3/fflush.3 index 2fe03606..80134506 100644 --- a/release/man3/fflush.3 +++ b/release/man3/fflush.3 @@ -37,7 +37,7 @@ .\" .\" Converted for Linux, Mon Nov 29 15:22:01 1993, faith@cs.unc.edu .\" -.\" Modified 2000-07-22 by NicoláÔ Lichtmaier +.\" Modified 2000-07-22 by Nicol疽 Lichtmaier .\" Modified 2001-10-16 by John Levon .\" .\" Japanese Version Copyright (c) 1997-2000 YOSHINO Takashi and NAKANO Takeo @@ -48,77 +48,77 @@ .\" Updated 2001-11-02, Kentaro Shirakata .\" Updated 2010-04-10, Akihiro MOTOKI , LDP v3.24 .\" -.\"WORD: global variable Âç°èÊÑ¿ô -.\"WORD: buffered ¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤¿ +.\"WORD: global variable 大域変数 +.\"WORD: buffered バッファリングされた .\" .TH FFLUSH 3 2009-09-06 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -fflush \- ¥¹¥È¥ê¡¼¥à¤ÎÆâÍƤò¶¯À©Åª¤Ë½ÐÎÏ(¥Õ¥é¥Ã¥·¥å)¤¹¤ë -.SH ½ñ¼° +.SH 名前 +fflush \- ストリームの内容を強制的に出力(フラッシュ)する +.SH 書式 .B #include .sp .BI "int fflush(FILE *" stream ); -.SH ÀâÌÀ -½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Ë´Ø¤·¤Æ¤Ï¡¢ +.SH 説明 +出力ストリームに関しては、 .BR fflush () -¤Ï¡¢¥æ¡¼¥¶¡¼¶õ´Ö¤Ç¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥Ç¡¼¥¿¤ò -»ØÄꤵ¤ì¤¿½ÐÎϤ˽ñ¤­½Ð¤¹ (¥Õ¥é¥Ã¥·¥å¤¹¤ë)¡¢ -¤â¤·¤¯¤Ï¥¹¥È¥ê¡¼¥à +は、ユーザー空間でバッファリングされているすべてのデータを +指定された出力に書き出す (フラッシュする)、 +もしくはストリーム .I stream -¤Î²¼°Ì¤Ë¤¢¤ë½ñ¤­¹þ¤ß´Ø¿ô¤òÍѤ¤¤Æ¤³¤Î¥¹¥È¥ê¡¼¥à¤ò¹¹¿·¤¹¤ë¡£ -ÆþÎÏ¥¹¥È¥ê¡¼¥à¤Ë´Ø¤·¤Æ¤Ï¡¢ +の下位にある書き込み関数を用いてこのストリームを更新する。 +入力ストリームに関しては、 .BR fflush () -¤Ï¡¢Âбþ¤¹¤ë¥Õ¥¡¥¤¥ë¤«¤é¼èÆÀ¤µ¤ì¤¿¤¬¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é¤Ï -Æɤ߽Фµ¤ì¤Æ¤¤¤Ê¤¤¥Ð¥Ã¥Õ¥¡¥Ç¡¼¥¿¤òÁ´¤ÆÇË´þ¤¹¤ë¡£ -¥¹¥È¥ê¡¼¥à¤Ï³«¤¤¤¿¾õÂ֤ΤޤޤǤ¢¤ê¡¢ -¤³¤Î´Ø¿ô¤Ë¤è¤Ã¤Æ²¿¤Î±Æ¶Á¤â¼õ¤±¤Ê¤¤¡£ +は、対応するファイルから取得されたが、アプリケーションからは +読み出されていないバッファデータを全て破棄する。 +ストリームは開いた状態のままであり、 +この関数によって何の影響も受けない。 .PP .I stream -°ú¿ô¤¬ .BR NULL ¤Ê¤é¤Ð¡¢ +引数が .BR NULL ならば、 .BR fflush () -¤Ï³«¤¤¤Æ¤¤¤ë\fI¤¹¤Ù¤Æ¤Î\fR½ÐÎÏ¥¹¥È¥ê¡¼¥à¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë¡£ +は開いている\fIすべての\fR出力ストリームをフラッシュする。 .PP -¤³¤ì¤é¤Î½èÍý¤ò¥í¥Ã¥¯¤»¤º¤Ë¹Ô¤¤¤¿¤¤¤È¤­¤Ï¡¢ +これらの処理をロックせずに行いたいときは、 .BR unlocked_stdio (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¤½¤Î¾¤Î¾ì¹ç¤Ë¤Ï +を参照のこと。 +.SH 返り値 +成功すると 0 が返される。 +その他の場合には .B EOF -¤¬ÊÖ¤µ¤ì¡¢ +が返され、 .I errno -¤¬¡¢¥¨¥é¡¼¤ËÂбþ¤·¤¿ÃͤËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が、エラーに対応した値に設定される。 +.SH エラー .TP .B EBADF .I Stream -¤Ï³«¤¤¤Æ¤¤¤ë¥¹¥È¥ê¡¼¥à¤Ç¤Ï¤Ê¤¤¡£ -¤¢¤ë¤¤¤Ï¥¹¥È¥ê¡¼¥à¤Ï½ñ¤­¹þ¤ßÍѤǤϤʤ¤¡£ +は開いているストリームではない。 +あるいはストリームは書き込み用ではない。 .PP .BR fflush () -´Ø¿ô¤Ï +関数は .BR write (2) -¤Ë´Ø¤·¤Æµ¬Äꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë¤³¤È¤â¤¢¤ë¡£ -¤³¤Î¾ì¹ç +に関して規定されているエラーで失敗することもある。 +この場合 .I errno -¤â¤½¤ÎÃͤËÀßÄꤵ¤ì¤ë¡£ -.SH ½àµò +もその値に設定される。 +.SH 準拠 C89, C99, POSIX.1-2001, POSIX.1-2008. -ɸ½à¤Ç¤Ï¡¢ÆþÎÏ¥¹¥È¥ê¡¼¥à¤ËÂФ¹¤ëÆ°ºî¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -¾¤Î¤Û¤È¤ó¤É¤Î¼ÂÁõ¤Ï Linux ¤ÈƱ¤¸Æ°ºî¤ò¤¹¤ë¡£ +標準では、入力ストリームに対する動作は規定されていない。 +他のほとんどの実装は Linux と同じ動作をする。 .\" Verified on: Solaris 8. -.SH Ãí°Õ +.SH 注意 .BR fflush () -¤Ï¡¢ C ¥é¥¤¥Ö¥é¥ê¤¬Í¿¤¨¤Æ¤¤¤ë¥æ¡¼¥¶¡¼¶õ´Ö¤Î¥Ð¥Ã¥Õ¥¡¤·¤«¥Õ¥é¥Ã¥·¥å¤·¤Ê¤¤¡£ -¥Ç¡¼¥¿¤¬ÊªÍýŪ¤Ë¥Ç¥£¥¹¥¯¤ËÊݸ¤µ¤ì¤ë¤³¤È¤òÊݾڤ·¤¿¤±¤ì¤Ð¡¢ -¥«¡¼¥Í¥ë¥Ð¥Ã¥Õ¥¡¤â¥Õ¥é¥Ã¥·¥å¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ì¤Ë¤ÏÎ㤨¤Ð +は、 C ライブラリが与えているユーザー空間のバッファしかフラッシュしない。 +データが物理的にディスクに保存されることを保証したければ、 +カーネルバッファもフラッシュしなければならない。 +これには例えば .BR sync (2) -¤ä +や .BR fsync (2) -¤òÍѤ¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を用いる。 +.SH 関連項目 .BR fsync (2), .BR sync (2), .BR write (2), diff --git a/release/man3/ffs.3 b/release/man3/ffs.3 index 3342394f..d0074333 100644 --- a/release/man3/ffs.3 +++ b/release/man3/ffs.3 @@ -37,9 +37,9 @@ .\" Updated Mon Sep 1 JST 2003 by Kentaro Shirakata .\" .TH FFS 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -ffs, ffsl, ffsll \- ¥ï¡¼¥É¤ÎÃæ¤ÇºÇ½é¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¥Ó¥Ã¥È¤Î¸¡½Ð -.SH ½ñ¼° +.SH 名前 +ffs, ffsl, ffsll \- ワードの中で最初にセットされているビットの検出 +.SH 書式 .nf .B #include .sp @@ -53,9 +53,9 @@ ffs, ffsl, ffsll \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .PD 0 .ad l @@ -63,11 +63,11 @@ glibc .BR ffs (): .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _SVID_SOURCE || _BSD_SOURCE || _POSIX_C_SOURCE\ >=\ 200809L || _XOPEN_SOURCE\ >=\ 700 || .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: none .RE .PP @@ -78,32 +78,32 @@ _GNU_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR ffs () -´Ø¿ô¤Ï¡¢¥ï¡¼¥É \fIi\fP ¤ÎÃæ¤ÇºÇ½é¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë -(ºÇ²¼°Ì)¥Ó¥Ã¥È¤Î°ÌÃÖ¤òÊÖ¤¹¡£ -ºÇ²¼°Ì¥Ó¥Ã¥È¤Î°ÌÃÖ¤Ï 1¡¢ºÇ¾å°Ì¥Ó¥Ã¥È¤Î°ÌÃÖ¤ÏÎ㤨¤Ð 32 ¤ä 64 ¤Ç¤¢¤ë¡£ +関数は、ワード \fIi\fP の中で最初にセットされている +(最下位)ビットの位置を返す。 +最下位ビットの位置は 1、最上位ビットの位置は例えば 32 や 64 である。 .BR ffsll () -´Ø¿ô¤È +関数と .BR ffsl () -´Ø¿ô¤âƱÍͤÀ¤¬¡¢ -°Û¤Ê¤Ã¤¿¥µ¥¤¥º¤Î°ú¿ô¤ò¤È¤ë¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ºÇ½é¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¥Ó¥Ã¥È¤Î°ÌÃÖ¤òÊÖ¤·¡¢ +関数も同様だが、 +異なったサイズの引数をとる。 +.SH 返り値 +これらの関数は、最初にセットされているビットの位置を返し、 .I i -¤Î¤É¤Î¥Ó¥Ã¥È¤â¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ -.SH ½àµò +のどのビットもセットされていなければ 0 を返す。 +.SH 準拠 .BR ffs (): 4.3BSD, POSIX.1-2001. -´Ø¿ô +関数 .BR ffsl () -¤È +と .BR ffsll () -¤Ï glibc ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -BSD ¥·¥¹¥Æ¥à¤Ç¤Ï +は glibc による拡張である。 +.SH 注意 +BSD システムでは .I -¤Ë¥×¥í¥È¥¿¥¤¥×¤¬¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +にプロトタイプがある。 +.SH 関連項目 .BR memchr (3) diff --git a/release/man3/fgetgrent.3 b/release/man3/fgetgrent.3 index 7945bbc8..cac9e656 100644 --- a/release/man3/fgetgrent.3 +++ b/release/man3/fgetgrent.3 @@ -32,9 +32,9 @@ .\" Updated 2008-08-01, Akihiro MOTOKI .\" .TH FGETGRENT 3 2008-07-10 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -fgetgrent \- ¥°¥ë¡¼¥×¥Õ¥¡¥¤¥ë¥¨¥ó¥È¥ê¤Î¼è¤ê½Ð¤· -.SH ½ñ¼° +.SH 名前 +fgetgrent \- グループファイルエントリの取り出し +.SH 書式 .nf .B #include .B #include @@ -44,53 +44,53 @@ fgetgrent \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR fgetgrent (): _SVID_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR fgetgrent () -´Ø¿ô¤Ï¡¢ +関数は、 .I stream -¤Ç»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤«¤é¼è¤ê½Ð¤·¤¿¥°¥ë¡¼¥×¾ðÊó -¤ò´Þ¤à¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ºÇ½é¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿»þ¤Ï -ºÇ½é¤Î¥¨¥ó¥È¥ê¤òÊÖ¤·¡¢¤½¤ì°Ê¹ß¤Ï¡¢¼¡¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£ +で参照されるファイルから取り出したグループ情報 +を含む構造体へのポインタを返す。最初に呼び出された時は +最初のエントリを返し、それ以降は、次のエントリを返す。 .I stream -¤Ç»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ï¡¢ +で参照されるファイルは、 .I /etc/group -¤ÈƱ¤¸·Á¼°¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ +と同じ形式でなければならない .RB ( group (5) -»²¾È)¡£ +参照)。 .PP -\fIgroup\fP ¹½Â¤ÂΤϡ¢\fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +\fIgroup\fP 構造体は、\fI\fP で以下のように定義されている: .sp .in +4n .nf struct group { - char *gr_name; /* ¥°¥ë¡¼¥×̾ */ - char *gr_passwd; /* ¥°¥ë¡¼¥×¤Î¥Ñ¥¹¥ï¡¼¥É */ - gid_t gr_gid; /* ¥°¥ë¡¼¥× ID */ - char **gr_mem; /* ¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð */ + char *gr_name; /* グループ名 */ + char *gr_passwd; /* グループのパスワード */ + gid_t gr_gid; /* グループ ID */ + char **gr_mem; /* グループのメンバ */ }; .fi .in -.SH ÊÖ¤êÃÍ +.SH 返り値 .BR fgetgrent () -´Ø¿ô¤Ï +関数は .I group -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤ì°Ê¾å¥¨¥ó¥È¥ê¤¬Ìµ¤¤¤«¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +構造体へのポインタを返す。 +これ以上エントリが無いか、エラーが発生した場合は NULL を返す。 +.SH エラー .TP .B ENOMEM .I group -¹½Â¤ÂΤò³ä¤êÅö¤Æ¤ë¤¿¤á¤Î¥á¥â¥ê¤¬ÉÔ½½Ê¬¡£ -.SH ½àµò +構造体を割り当てるためのメモリが不十分。 +.SH 準拠 SVr4. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR endgrent (3), .BR fgetgrent_r (3), .BR fopen (3), diff --git a/release/man3/fgetpwent.3 b/release/man3/fgetpwent.3 index 5b687090..4fd1c28f 100644 --- a/release/man3/fgetpwent.3 +++ b/release/man3/fgetpwent.3 @@ -34,9 +34,9 @@ .\" Updated 2008-08-01, Akihiro MOTOKI .\" .TH FGETPWENT 3 2008-07-10 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -fgetpwent \- ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¥¨¥ó¥È¥ê¤Î¼è¤ê½Ð¤· -.SH ½ñ¼° +.SH 名前 +fgetpwent \- パスワードファイルエントリの取り出し +.SH 書式 .nf .B #include .B #include @@ -46,59 +46,59 @@ fgetpwent \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR fgetpwent (): _SVID_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR fgetpwent () -´Ø¿ô¤Ï¡¢\fIstream\fP ¤«¤éÆÀ¤é¤ì¤¿¹Ô¤òʬ²ò¤·¤¿¥Õ¥£¡¼¥ë¥É -¤ò´Þ¤à¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -ºÇ½é¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿»þ¤Ë¤ÏºÇ½é¤Î¥¨¥ó¥È¥ê¤òÊÖ¤·¡¢¤½¤ì°Ê¹ß¤Ï -¼¡¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£ +関数は、\fIstream\fP から得られた行を分解したフィールド +を含む構造体へのポインタを返す。 +最初に呼び出された時には最初のエントリを返し、それ以降は +次のエントリを返す。 .I stream -¤Ç»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ï +で参照されるファイルは .I /etc/passwd -¤ÈƱ¤¸·Á¼°¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ +と同じ形式でなければならない .RB ( passwd (5) -»²¾È)¡£ +参照)。 .PP -\fIpasswd\fP ¹½Â¤ÂΤϡ¢\fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +\fIpasswd\fP 構造体は、\fI\fP で以下のように定義されている: .sp .nf .in +4n struct passwd { - char *pw_name; /* ¥æ¡¼¥¶Ì¾ */ - char *pw_passwd; /* ¥æ¡¼¥¶¤Î¥Ñ¥¹¥ï¡¼¥É */ - uid_t pw_uid; /* ¥æ¡¼¥¶ ID */ - gid_t pw_gid; /* ¥°¥ë¡¼¥× ID */ - char *pw_gecos; /* ËÜ̾ */ - char *pw_dir; /* ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê */ - char *pw_shell; /* ¥·¥§¥ë¥×¥í¥°¥é¥à */ + char *pw_name; /* ユーザ名 */ + char *pw_passwd; /* ユーザのパスワード */ + uid_t pw_uid; /* ユーザ ID */ + gid_t pw_gid; /* グループ ID */ + char *pw_gecos; /* 本名 */ + char *pw_dir; /* ホームディレクトリ */ + char *pw_shell; /* シェルプログラム */ }; .fi .in -.SH ÊÖ¤êÃÍ +.SH 返り値 .BR fgetpwent () -´Ø¿ô¤Ï¡¢ +関数は、 .I passwd -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤ì°Ê¾å¥¨¥ó¥È¥ê¤¬Ìµ¤¤¤«¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +構造体へのポインタを返す。 +これ以上エントリが無いか、エラーが発生した場合は NULL を返す。 +.SH エラー .TP .B ENOMEM .I passwd -¹½Â¤ÂΤò³ä¤êÅö¤Æ¤ë¤¿¤á¤Î¥á¥â¥ê¤¬ÉÔ½½Ê¬¡£ -.SH ¥Õ¥¡¥¤¥ë +構造体を割り当てるためのメモリが不十分。 +.SH ファイル .TP .I /etc/passwd -¥Ñ¥¹¥ï¡¼¥É¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë -.SH ½àµò +パスワードデータベースファイル +.SH 準拠 SVr4. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR endpwent (3), .BR fgetpwent_r (3), .BR fopen (3), diff --git a/release/man3/fgetwc.3 b/release/man3/fgetwc.3 index 15c2894c..f1d3e1c8 100644 --- a/release/man3/fgetwc.3 +++ b/release/man3/fgetwc.3 @@ -21,9 +21,9 @@ .\" .TH FGETWC 3 1999-07-25 "GNU" "Linux Programmer's Manual" .\") .SH NAME -.SH ̾Á° -fgetwc, getwc \- ¥ï¥¤¥Éʸ»ú¤ò FILE ¥¹¥È¥ê¡¼¥à¤«¤éÆɤ߹þ¤à -.SH ½ñ¼° +.SH 名前 +fgetwc, getwc \- ワイド文字を FILE ストリームから読み込む +.SH 書式 .nf .B #include .br @@ -32,56 +32,56 @@ fgetwc, getwc \- .BI "wint_t fgetwc(FILE *" stream ); .BI "wint_t getwc(FILE *" stream ); .fi -.SH ÀâÌÀ +.SH 説明 .BR fgetwc () -´Ø¿ô¤Ï¡¢ +関数は、 .BR fgetc (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï \fIstream\fP ¤«¤é¥ï¥¤¥Éʸ»ú¤ò 1 ʸ»úÆɤ߹þ¤ß¡¢¤³¤ì¤òÊÖ¤¹¡£ -¥¹¥È¥ê¡¼¥à¤Î½ªÃ¼¤Ë㤹¤ë¤«¡¢\fIferror(stream)\fP ¤¬¿¿¤Ë¤Ê¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ -¤³¤Î´Ø¿ô¤Ï +に対応するワイド文字関数である。 +この関数は \fIstream\fP からワイド文字を 1 文字読み込み、これを返す。 +ストリームの終端に達するか、\fIferror(stream)\fP が真になった場合には、 +この関数は .B WEOF -¤òÊÖ¤¹¡£ -¥ï¥¤¥Éʸ»úÊÑ´¹¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï¡¢ -\fIerrno\fP ¤Ë \fBEILSEQ\fP ¤ò¥»¥Ã¥È¤·¡¢ +を返す。 +ワイド文字変換でエラーが発生した場合は、 +\fIerrno\fP に \fBEILSEQ\fP をセットし、 .B WEOF -¤òÊÖ¤¹¡£ +を返す。 .PP .BR getwc () -´Ø¿ô¤¢¤ë¤¤¤Ï¥Þ¥¯¥í¤Ï¡¢ +関数あるいはマクロは、 .BR fgetwc () -¤ÈÁ´¤¯Æ±¤¸Æ°ºî¤ò¤¹¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¥Þ¥¯¥í¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¤Î¤Ç¡¢°ú¤­¿ô¤¬Ê£¿ô²óɾ²Á¤µ -¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£¤³¤Î´Ø¿ô¤ò»È¤¦Íýͳ¤Ï¤â¤Ï¤ä¸ºß¤·¤Ê¤¤¡£ +と全く同じ動作をする。 +この関数はマクロとして実装されるかもしれないので、引き数が複数回評価さ +れるかもしれない。この関数を使う理由はもはや存在しない。 .PP -¤³¤ì¤é¤Î½èÍý¤ò¥í¥Ã¥¯¤»¤º¤Ë¹Ô¤¤¤¿¤¤¤È¤­¤Ï¡¢ +これらの処理をロックせずに行いたいときは、 .BR unlocked_stdio (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ +を参照のこと。 +.SH 返り値 .BR fgetwc () -´Ø¿ô¤Ï¥¹¥È¥ê¡¼¥à¤Î¼¡¤Î¥ï¥¤¥Éʸ»ú¤«¡¢¤¢¤ë¤¤¤Ï +関数はストリームの次のワイド文字か、あるいは .B WEOF -¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -Ä̾ï¤Î¥¨¥é¡¼¤Ë²Ã¤¨¤Æ¡¢°Ê²¼¤Î¥¨¥é¡¼¤¬¤¢¤ë: +を返す。 +.SH エラー +通常のエラーに加えて、以下のエラーがある: .TP .B EILSEQ -ÆþÎÏ¥¹¥È¥ê¡¼¥à¤«¤é¼èÆÀ¤·¤¿¥Ç¡¼¥¿¤¬¡¢Àµ¤·¤¤Ê¸»ú¤Ç¤Ê¤¤¡£ -.SH ½àµò +入力ストリームから取得したデータが、正しい文字でない。 +.SH 準拠 C99, POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .BR fgetwc () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .PP .BR fopen (3) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÅϤ¹ÄɲþðÊ󤬤ʤ¤¾ì¹ç¤Ë¤Ï¡¢ +システムコールに渡す追加情報がない場合には、 .BR fgetwc () -¤¬¼ÂºÝ -¤Ë¤Ï¥Þ¥ë¥Á¥Ð¥¤¥È¥·¡¼¥±¥ó¥¹¤ò¥¹¥È¥ê¡¼¥à¤«¤éÆɤ߹þ¤ß¡¢¤³¤ì¤ò¥ï¥¤¥Éʸ»ú¤Ë -ÊÑ´¹¤¹¤ë¤È´üÂÔ¤¹¤ë¤³¤È¤ÏŬÀڤǤ¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +が実際 +にはマルチバイトシーケンスをストリームから読み込み、これをワイド文字に +変換すると期待することは適切である。 +.SH 関連項目 .BR fgetws (3), .BR fputwc (3), .BR ungetwc (3), diff --git a/release/man3/fgetws.3 b/release/man3/fgetws.3 index 736ec14a..12269def 100644 --- a/release/man3/fgetws.3 +++ b/release/man3/fgetws.3 @@ -20,54 +20,54 @@ .\" Updated Sat Oct 27 09:01:41 JST 2001 .\" by Yuichi SATO .\" -.\" WORD: null wide characters ¥Ê¥ë¥ï¥¤¥Éʸ»ú +.\" WORD: null wide characters ナルワイド文字 .\" .TH FGETWS 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -fgetws \- ¥ï¥¤¥Éʸ»ú¤Îʸ»úÎó¤ò FILE ¥¹¥È¥ê¡¼¥à¤«¤éÆɤ߹þ¤à -.SH ½ñ¼° +.SH 名前 +fgetws \- ワイド文字の文字列を FILE ストリームから読み込む +.SH 書式 .nf .B #include .sp .BI "wchar_t *fgetws(wchar_t *" ws ", int " n ", FILE *" stream ); .fi -.SH ÀâÌÀ +.SH 説明 .BR fgetws () -´Ø¿ô¤Ï +関数は .BR fgets (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢ºÇÂç \fIn\-1\fP ʸ»ú¤Î¥ï¥¤¥Éʸ»ú¤ò -\fIws\fP ¤¬¼¨¤¹¥ï¥¤¥Éʸ»ú¤ÎÇÛÎó¤ËÆɤ߹þ¤ß¡¢ -½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤òÄɲ乤롣 -¤³¤Î´Ø¿ô¤Ï¡¢¥ï¥¤¥Éʸ»ú¤Î²þ¹Ôʸ»ú¤ò¸«¤Ä¤±¡¢¤³¤ì¤ò³ÊǼ¤¹¤ë¤ÈÆɤ߹þ¤à¤Î¤ò»ß¤á¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¥¹¥È¥ê¡¼¥à¤Î½ª¤ï¤ê¤Ë㤷¤¿¾ì¹ç¤âÆɤ߹þ¤ß¤ò»ß¤á¤ë¡£ +に対応するワイド文字関数である。 +この関数は、最大 \fIn\-1\fP 文字のワイド文字を +\fIws\fP が示すワイド文字の配列に読み込み、 +終端の NULL ワイド文字 (L\(aq\\0\(aq) を追加する。 +この関数は、ワイド文字の改行文字を見つけ、これを格納すると読み込むのを止める。 +この関数はストリームの終わりに達した場合も読み込みを止める。 .PP -¥×¥í¥°¥é¥Þ¤Ï¡¢\fIws\fP ¤Ë¤Ï¾¯¤Ê¤¯¤È¤â \fIn\fP ʸ»ú¤Î¥ï¥¤¥Éʸ»ú¤ò -³ÊǼ¤Ç¤­¤ëÎΰè¤òɬ¤º³ÎÊݤ·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +プログラマは、\fIws\fP には少なくとも \fIn\fP 文字のワイド文字を +格納できる領域を必ず確保していなければならない。 .PP -¤³¤ì¤é¤Î½èÍý¤ò¥í¥Ã¥¯¤»¤º¤Ë¹Ô¤¤¤¿¤¤¤È¤­¤Ï¡¢ +これらの処理をロックせずに行いたいときは、 .BR unlocked_stdio (3) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ÊÖ¤êÃÍ +を参照すること。 +.SH 返り値 .BR fgetws () -¤ÏÀ®¸ù¤¹¤ë¤È \fIws\fP ¤òÊÖ¤¹¡£ -´û¤Ë¥¹¥È¥ê¡¼¥à¤Î½ª¤ï¤ê¤Ë㤷¤Æ¤¤¤ë¤«¡¢¥¨¥é¡¼¤¬µ¯¤­¤¿¾ì¹ç¤Ë¤Ï NULL ¤òÊÖ¤¹¡£ -.SH ½àµò +は成功すると \fIws\fP を返す。 +既にストリームの終わりに達しているか、エラーが起きた場合には NULL を返す。 +.SH 準拠 C99, POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .BR fgetws () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .PP .BR fopen (3) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÅϤ¹ÄɲäξðÊ󤬤ʤ¤¾ì¹ç¤Ë¤Ï¡¢ +システムコールに渡す追加の情報がない場合には、 .BR fgetws () -¤¬¼ÂºÝ¤Ë¤Ï¥Þ¥ë¥Á¥Ð¥¤¥È¥·¡¼¥±¥ó¥¹¤ò¥¹¥È¥ê¡¼¥à¤«¤éÆɤ߹þ¤ß¡¢ -¤³¤ì¤ò¥ï¥¤¥Éʸ»ú¤ËÊÑ´¹¤¹¤ë¤È´üÂÔ¤¹¤ë¤³¤È¤ÏŬÀڤǤ¢¤ë¡£ +が実際にはマルチバイトシーケンスをストリームから読み込み、 +これをワイド文字に変換すると期待することは適切である。 .PP -¤³¤Î´Ø¿ô¤Ï¿®Íê¤Ç¤­¤Ê¤¤¡£¤Ê¤¼¤Ê¤é¡¢ÆþÎϤ˴ޤޤì¤ë¤«¤â¤·¤ì¤Ê¤¤ -¥Ê¥ë¥ï¥¤¥Éʸ»ú¤òŬÀڤ˽èÍý¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +この関数は信頼できない。なぜなら、入力に含まれるかもしれない +ナルワイド文字を適切に処理することができないからである。 +.SH 関連項目 .BR fgetwc (3), .BR unlocked_stdio (3) diff --git a/release/man3/finite.3 b/release/man3/finite.3 index b1eab0de..49557fc9 100644 --- a/release/man3/finite.3 +++ b/release/man3/finite.3 @@ -25,16 +25,16 @@ .\" Translated 2005-02-21, Akihiro MOTOKI .\" Updated 2008-09-16, Akihiro MOTOKI .\" -.\"WORD: classification ʬÎà -.\"WORD: infinite ̵¸ÂÂç -.\"WORD: not-a-number ̵¸úÃÍ -.\"WORD: NaN ̵¸úÃÍ +.\"WORD: classification 分類 +.\"WORD: infinite 無限大 +.\"WORD: not-a-number 無効値 +.\"WORD: NaN 無効値 .\" .TH FINITE 3 2008-08-05 "" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 finite, finitef, finitel, isinf, isinff, isinfl, isnan, isnanf, isnanl \- -BSD ¤ÎÉâÆ°¾®¿ôÅÀʬÎà´Ø¿ô -.SH ½ñ¼° +BSD の浮動小数点分類関数 +.SH 書式 .nf .B #include .sp @@ -58,9 +58,9 @@ BSD .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -96,36 +96,36 @@ or _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 600 .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR finite () -´Ø¿ô¤Ï¡¢ \fIx\fP ¤¬Ìµ¸ÂÂç¤ä̵¸úÃÍ (NaN) ¤Î¤¤¤º¤ì¤Ç¤â¤Ê¤¤ -¾ì¹ç¤Ë 0 °Ê³°¤ÎÃͤòÊÖ¤·¡¢¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +関数は、 \fIx\fP が無限大や無効値 (NaN) のいずれでもない +場合に 0 以外の値を返し、それ以外の場合は 0 を返す。 .BR isnan () -´Ø¿ô¤Ï¡¢ \fIx\fP ¤¬ NaN ¤Î¾ì¹ç 0 °Ê³°¤ÎÃͤòÊÖ¤·¡¢ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +関数は、 \fIx\fP が NaN の場合 0 以外の値を返し、 +それ以外の場合は 0 を返す。 .BR isinf () -´Ø¿ô¤Ï¡¢ \fIx\fP ¤¬Àµ¤Î̵¸ÂÂç¤Ç¤¢¤ì¤Ð 1 ¤òÊÖ¤·¡¢\fIx\fP ¤¬Éé¤Î̵¸ÂÂç¤Ç -¤¢¤ì¤Ð \-1 ¤òÊÖ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ -.SH Ãí°Õ -¤³¤ì¤é¤Î´Ø¿ô¤ÏÇѻߤµ¤ì¤¿ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -C99 ¤Ç¤Ï¡¢¤³¤ì¤é¤ÎÃÖ¤­´¹¤¨¤È¤·¤Æ (¤É¤ó¤Ê·¿¤Ë¤âŬÍѤǤ­¤ë) +関数は、 \fIx\fP が正の無限大であれば 1 を返し、\fIx\fP が負の無限大で +あれば \-1 を返す。それ以外の場合は 0 を返す。 +.SH 注意 +これらの関数は廃止された点に注意すること。 +C99 では、これらの置き換えとして (どんな型にも適用できる) .BR isfinite (), .BR isinf (), .BR isnan () -¤È¤¤¤¦¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤µ¤é¤Ë C99 ¤Î +というマクロが定義されている。 +さらに C99 の .BR isinf () -¤ÏÊÖ¤êÃͤ˴ؤ·¤Æ¼å¤¤°ÕÌ£¤Ç¤ÎÊݾڤ·¤«¤Ê¤¤¤³¤È¤Ë¤â -Ãí°Õ¤¹¤ë¤³¤È¡£¾ÜºÙ¤Ï +は返り値に関して弱い意味での保証しかないことにも +注意すること。詳細は .BR fpclassify (3) -¤ò»²¾È¡£ +を参照。 .\" .\" finite* not on HP-UX; they exist on Tru64. -.\" .SH Îò»Ë +.\" .SH 歴史 .\" .BR finite () -.\" ´Ø¿ô¤Ï 4.3BSD ¤ÇÅо줷¤¿¡£ -.\" 4.3BSD ¤Î¥Þ¥Ë¥å¥¢¥ë¤Î IEEE.3 ¤ò»²¾È -.SH ´ØÏ¢¹àÌÜ +.\" 関数は 4.3BSD で登場した。 +.\" 4.3BSD のマニュアルの IEEE.3 を参照 +.SH 関連項目 .BR fpclassify (3) diff --git a/release/man3/flockfile.3 b/release/man3/flockfile.3 index 491a0494..ed66accc 100644 --- a/release/man3/flockfile.3 +++ b/release/man3/flockfile.3 @@ -25,13 +25,13 @@ .\" Translated Sun Nov 4 14:09:45 2001 .\" by Akihiro MOTOKI .\" -.\"WORD: lockcount ¥í¥Ã¥¯¿ô -.\"WORD: owner thread ½êÍ­¼Ô¥¹¥ì¥Ã¥É +.\"WORD: lockcount ロック数 +.\"WORD: owner thread 所有者スレッド .\" .TH FLOCKFILE 3 2008-08-29 "" "Linux Programmer's Manual" -.SH ̾Á° -flockfile, ftrylockfile, funlockfile \- ɸ½àÆþ½ÐÎÏ FILE ¤Î¥í¥Ã¥¯¤ò¹Ô¤¦ -.SH ½ñ¼° +.SH 名前 +flockfile, ftrylockfile, funlockfile \- 標準入出力 FILE のロックを行う +.SH 書式 .nf .B #include .sp @@ -43,86 +43,86 @@ flockfile, ftrylockfile, funlockfile \- ɸ .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .ad l .sp -¾åµ­¤ÎÁ´¤Æ¤Î´Ø¿ô: +上記の全ての関数: .RS 4 _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE || _POSIX_SOURCE .RE .ad b -.SH ÀâÌÀ -ɸ½àÆþ½ÐÎÏ´Ø¿ô¤Ï¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤¢¤ë¡£¤³¤ì¤Ï¡¢³Æ +.SH 説明 +標準入出力関数はスレッドセーフである。これは、各 .I FILE -¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ·¡¢¥í¥Ã¥¯¿ô (lockcount) ¤È -(¥í¥Ã¥¯¿ô¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¤Ï) ½êÍ­¼Ô¥¹¥ì¥Ã¥É (owner thread) -¤ò´ÉÍý¤¹¤ë¤³¤È¤Ç¼Â¸½¤µ¤ì¤ë¡£ -¥é¥¤¥Ö¥é¥ê¤Î¸Æ¤Ó½Ð¤·¤¬¹Ô¤ï¤ì¤ëËè¤Ë¡¢É¸½àÆþ½ÐÎÏ´Ø¿ô¤Ï +オブジェクトに対し、ロック数 (lockcount) と +(ロック数が 0 でない場合は) 所有者スレッド (owner thread) +を管理することで実現される。 +ライブラリの呼び出しが行われる毎に、標準入出力関数は .I FILE -¥ª¥Ö¥¸¥§¥¯¥È¤¬Â¾¤Î¥¹¥ì¥Ã¥É¤Ë¤è¤Ã¤Æ¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤Ê¤¤¾õÂ֤ˤʤë¤Þ¤ÇÂÔ¤Á¡¢ +オブジェクトが他のスレッドによってロックされていない状態になるまで待ち、 .I FILE -¥ª¥Ö¥¸¥§¥¯¥È¤ò¥í¥Ã¥¯¤·¡¢Í׵ᤵ¤ì¤ÆÆþ½ÐÎϤò¹Ô¤¤¡¢ -¥ª¥Ö¥¸¥§¥¯¥È¤Î¥í¥Ã¥¯¤ò²ò½ü¤¹¤ë¡£ +オブジェクトをロックし、要求されて入出力を行い、 +オブジェクトのロックを解除する。 .LP -(Ãí: ¤³¤Î¥í¥Ã¥¯¤Ï¡¢ +(注: このロックは、 .BR flock (2) -¤ä +や .BR lockf (3) -¤È¤¤¤Ã¤¿´Ø¿ô¤¬¹Ô¤¦¥í¥Ã¥¯¤È¤ÏÁ´¤¯Ìµ´Ø·¸¤Ç¤¢¤ë¡£) +といった関数が行うロックとは全く無関係である。) .LP -¤³¤ì¤é¤Î¤³¤È¤Ï¤¹¤Ù¤Æ C ¥×¥í¥°¥é¥Þ¤Ë¤Ï¸«¤¨¤Ê¤¤Éôʬ¤Ç¹Ô¤ï¤ì¤ë¤¬¡¢ -¤è¤êºÙ¤«¤¤À©¸æ¤¬¤Ç¤­¤¿Êý¤¬¤è¤¤Íýͳ¤¬2¤Ä¤¢¤ë¤À¤í¤¦¡£°ì¤Ä¤Ï¡¢°ì¤Ä¤Î¥¹¥ì¥Ã¥É¤¬ -¹Ô¤¦°ìÏ¢¤ÎÆþ½ÐÎÏÆ°ºî¤Ï°ì½ï¤Ë¹Ô¤ï¤ì¡¢Â¾¤Î¥¹¥ì¥Ã¥É¤ÎÆþ½ÐÎϤˤè¤Ã¤ÆÃæÃǤµ¤ì¤Ê¤¤ -Êý¤¬¤è¤¤¤È¤¤¤¦¤³¤È¤Ç¤¢¤í¤¦¡£¤â¤¦°ì¤Ä¤Ï¡¢¸úΨ¤òÂ礭¤¯¾å¤²¤ë¤¿¤á¤Ë¤Ï -¥í¥Ã¥¯¤Î¥ª¡¼¥Ð¥Ø¥Ã¥É¤òÈò¤±¤ëɬÍפ¬¤¢¤ë¤È¤¤¤¦¤³¤È¤Ç¤¢¤í¤¦¡£ +これらのことはすべて C プログラマには見えない部分で行われるが、 +より細かい制御ができた方がよい理由が2つあるだろう。一つは、一つのスレッドが +行う一連の入出力動作は一緒に行われ、他のスレッドの入出力によって中断されない +方がよいということであろう。もう一つは、効率を大きく上げるためには +ロックのオーバヘッドを避ける必要があるということであろう。 .LP -¤³¤ÎÌÜŪ¤ò¼Â¸½¤¹¤ë¤¿¤á¤Ë¡¢ +この目的を実現するために、 .I FILE -¥ª¥Ö¥¸¥§¥¯¥È¤Î¥í¥Ã¥¯¡¢°ìÏ¢¤ÎÆþ½ÐÎÏÆ°ºî¤Î¼Â¹Ô¡¢ -¥í¥Ã¥¯¤Î²ò½ü¤ò¥¹¥ì¥Ã¥É¤¬ÌÀ¼¨Åª¤Ë»Ø¼¨¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢Â¾¤Î¥¹¥ì¥Ã¥É¤¬ÅÓÃæ¤ÇÆþ½ÐÎϤò¹Ô¤¦¤Î¤òËɻߤ¹¤ë¡£ -¤³¤Î¤è¤¦¤Ê¤³¤È¤ò¹Ô¤¦Íýͳ¤¬¸úΨ¤Î¸þ¾å¤Ç¤¢¤ë¤Ê¤é¤Ð¡¢ -¥í¥Ã¥¯¤ò¹Ô¤ï¤Ê¤¤¥Ð¡¼¥¸¥ç¥ó¤Îɸ½àÆþ½ÐÎÏ´Ø¿ô¤ò»È¤¦¤³¤È¤â¤Ç¤­¤ë¡£ -Î㤨¤Ð¡¢ +オブジェクトのロック、一連の入出力動作の実行、 +ロックの解除をスレッドが明示的に指示することができる。 +これにより、他のスレッドが途中で入出力を行うのを防止する。 +このようなことを行う理由が効率の向上であるならば、 +ロックを行わないバージョンの標準入出力関数を使うこともできる。 +例えば、 .BR getc (3) -¤ä +や .BR putc (3) -¤ÎÂå¤ï¤ê¤Ë +の代わりに .BR getc_unlocked (3) -¤ä +や .BR putc_unlocked (3) -¤ò»ÈÍѤ¹¤ë¡£ +を使用する。 .LP .BR flockfile () -´Ø¿ô¤Ï¡¢\fI*filehandle\fP ¤¬Â¾¤Î¥¹¥ì¥Ã¥É¤Ë¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤Ê -¤¤¾õÂ֤ˤʤë¤Þ¤ÇÂԤ俤ΤÁ¡¢¸½ºß¤Î¥¹¥ì¥Ã¥É¤ò \fI*filehandle\fP ¤Î¥ª¡¼¥Ê¤ËÀß -Äꤷ¡¢¥í¥Ã¥¯¿ô¤ò²Ã»»¤¹¤ë¡£ +関数は、\fI*filehandle\fP が他のスレッドにロックされていな +い状態になるまで待ったのち、現在のスレッドを \fI*filehandle\fP のオーナに設 +定し、ロック数を加算する。 .LP .BR funlockfile () -´Ø¿ô¤Ï¡¢¥í¥Ã¥¯¿ô¤ò¸º»»¤¹¤ë¡£ +関数は、ロック数を減算する。 .LP .BR ftrylockfile () -´Ø¿ô¤Ï +関数は .BR flockfile () -¤Î¥Ö¥í¥Ã¥­¥ó¥°¤ò¹Ô¤ï¤Ê¤¤ -¥Ð¡¼¥¸¥ç¥ó¤Ç¤¢¤ë¡£Â¾¤Î¥¹¥ì¥Ã¥É¤¬ \fI*filehandle\fP ¤ò¥í¥Ã¥¯¤·¤Æ¤¤¤ë»þ¤Ï -²¿¤â¹Ô¤ï¤º¡¢¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï \fI*filehandle\fP ¤Î½êÍ­¸¢¤ò³ÍÆÀ¤·¡¢ -¥í¥Ã¥¯¿ô¤ò²Ã»»¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ +のブロッキングを行わない +バージョンである。他のスレッドが \fI*filehandle\fP をロックしている時は +何も行わず、そうでない場合は \fI*filehandle\fP の所有権を獲得し、 +ロック数を加算する。 +.SH 返り値 .BR ftrylockfile () -´Ø¿ô¤Ï¥í¥Ã¥¯¤ËÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤·¡¢ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï 0 °Ê³°¤ÎÃͤòÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -¤Ê¤·¡£ -.SH ½àµò +関数はロックに成功すると 0 を返し、 +失敗した場合は 0 以外の値を返す。 +.SH エラー +なし。 +.SH 準拠 POSIX.1-2001. -.SH ²ÄÍÑÀ­ +.SH 可用性 .B _POSIX_THREAD_SAFE_FUNCTIONS -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ë¤³¤ì¤é¤Î´Ø¿ô¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -5.1.1 °Ê¹ß¤Î libc ¤È 2.0 °Ê¹ß¤Î glibc ¤Ë¸ºß¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +が定義されているときにこれらの関数を使用することができる。 +5.1.1 以降の libc と 2.0 以降の glibc に存在する。 +.SH 関連項目 .BR unlocked_stdio (3) diff --git a/release/man3/floor.3 b/release/man3/floor.3 index ddc01ddf..c68f6934 100644 --- a/release/man3/floor.3 +++ b/release/man3/floor.3 @@ -32,12 +32,12 @@ .\" by Yuichi SATO .\" Updated 2008-09-16, Akihiro MOTOKI .\" -.\"WORD: mantissa ²¾¿ô +.\"WORD: mantissa 仮数 .\" .TH FLOOR 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -floor, floorf, floorl \- °ú¤­¿ô¤ò±Û¤¨¤Ê¤¤ºÇÂç¤ÎÀ°¿ôÃÍ -.SH ½ñ¼° +.SH 名前 +floor, floorf, floorl \- 引き数を越えない最大の整数値 +.SH 書式 .nf .B #include .sp @@ -48,12 +48,12 @@ floor, floorf, floorl \- .BI "long double floorl(long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -67,49 +67,49 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï +.SH 説明 +これらの関数は .I x -¤è¤êÂ礭¤¯¤Ê¤¤ºÇÂç¤ÎÀ°¿ôÃͤòÊÖ¤¹¡£ +より大きくない最大の整数値を返す。 -Î㤨¤Ð¡¢ +例えば、 .I floor(0.5) -¤Ï 0.0 ¤Ç¡¢ +は 0.0 で、 .I floor(\-0.5) -¤Ï \-1.0 ¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤Ï +は \-1.0 である。 +.SH 返り値 +これらの関数は .I x -¤ò±Û¤¨¤Ê¤¤ºÇ¾®¤ÎÀ°¿ôÃͤòÊÖ¤¹¡£ +を越えない最小の整数値を返す。 -\fIx\fP ¤¬À°¿ô¡¢+0¡¢\-0¡¢NaN¡¢Ìµ¸ÂÂç¤Î¤¤¤º¤ì¤«¤Î¾ì¹ç¡¢ -\fIx\fP ¤½¤Î¤â¤Î¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ -POSIX.1-2001 ¤Ë¤Ï¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤ËÂФ·¤ÆÈÏ°Ï¥¨¥é¡¼¤¬µ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ -¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¡£ -.SH ½àµò +\fIx\fP が整数、+0、\-0、NaN、無限大のいずれかの場合、 +\fIx\fP そのものが返される。 +.SH エラー +エラーは発生しない。 +POSIX.1-2001 にはオーバーフローに対して範囲エラーが記載されている。 +「注意」の節を参照。 +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -SUSv2 ¤È POSIX.1-2001 ¤Ë¤Ï¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ë´Ø¤¹¤ëµ­½Ò¤¬¤¢¤ê¡¢ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Î¾ì¹ç¤Ë¤Ï¡¢ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 +.SH 注意 +SUSv2 と POSIX.1-2001 にはオーバーフローに関する記述があり、 +オーバーフローの場合には、 .I errno -¤ò +を .B ERANGE -¤ËÀßÄꤹ¤ë¤«¡¢ +に設定するか、 .B FE_OVERFLOW -Îã³°¤òȯÀ¸¤¹¤ë¤³¤È¤È¤µ¤ì¤Æ¤¤¤ë¡£ -¼ÂºÝ¤Î¤È¤³¤í¡¢¸½¹Ô¤Î¥Þ¥·¥ó¤Ç¤Ï·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤òµ¯¤³¤¹¤³¤È¤Ï¤Ê¤¤¤Î¤Ç¡¢ -¤³¤Î¥¨¥é¡¼½èÍý¤Ï°ÕÌ£¤¬¤Ê¤¤¡£ +例外を発生することとされている。 +実際のところ、現行のマシンでは結果がオーバーフローを起こすことはないので、 +このエラー処理は意味がない。 .\" The POSIX.1-2001 APPLICATION USAGE SECTION discusses this point. -(¤è¤êÀµ³Î¤Ë¸À¤¦¤È¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ï»Ø¿ôÉô¤ÎºÇÂçÃͤ¬ -²¾¿ôÉô¤òɽ¤¹¥Ó¥Ã¥È¤Î¿ô¤è¤ê¾®¤µ¤¤¾ì¹ç¤Ë¤·¤«µ¯¤³¤é¤Ê¤¤¡£ -IEEE-754 µ¬³Ê¤Î 32 ¥Ó¥Ã¥È¤È 64 ¥Ó¥Ã¥È¤ÎÉâÆ°¾®¿ô¤Ç¤Ï¡¢ -»Ø¿ôÉô¤ÎºÇÂçÃͤϤ½¤ì¤¾¤ì 128 ¤È 1024 ¤Ç¤¢¤ê¡¢ -²¾¿ôÉô¤Î¥Ó¥Ã¥È¿ô¤Ï¤½¤ì¤¾¤ì 24 ¤È 53 ¤Ç¤¢¤ë¡£) -.SH ´ØÏ¢¹àÌÜ +(より正確に言うと、オーバーフローは指数部の最大値が +仮数部を表すビットの数より小さい場合にしか起こらない。 +IEEE-754 規格の 32 ビットと 64 ビットの浮動小数では、 +指数部の最大値はそれぞれ 128 と 1024 であり、 +仮数部のビット数はそれぞれ 24 と 53 である。) +.SH 関連項目 .BR ceil (3), .BR lrint (3), .BR nearbyint (3), diff --git a/release/man3/fma.3 b/release/man3/fma.3 index a89be109..2c91c1e5 100644 --- a/release/man3/fma.3 +++ b/release/man3/fma.3 @@ -13,9 +13,9 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH FMA 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -fma, fmaf, fmal \- ÉâÆ°¾®¿ôÅÀ¿ô¤ÎÀѤÈϤò·×»»¤¹¤ë -.SH ½ñ¼° +.SH 名前 +fma, fmaf, fmal \- 浮動小数点数の積と和を計算する +.SH 書式 .nf .B #include .sp @@ -26,12 +26,12 @@ fma, fmaf, fmal \- .BI "long double fmal(long double " x ", long double " y ", long double " z ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -46,106 +46,106 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR fma () -´Ø¿ô¤Ï +関数は .IR x " * " y " + " z -¤ò·×»»¤¹¤ë¡£ -·ë²Ì¤Ï¡¢°ì¤Ä¤Î»°¹à±é»»¤È¤·¤Æ¸½ºß¤Î´Ý¤á¥â¡¼¥É¤Ë¤·¤¿¤¬¤Ã¤Æ´Ý¤á¤é¤ì¤ë +を計算する。 +結果は、一つの三項演算として現在の丸めモードにしたがって丸められる .RB ( fenv (3) -»²¾È)¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤Ï +参照)。 +.SH 返り値 +これらの関数は .IR x " * " y " + " z -¤Î¡¢°ì¤Ä¤Î»°¹à±é»»¤È¤·¤Æ´Ý¤á¤é¤ì¤¿ÃͤòÊÖ¤¹¡£ +の、一つの三項演算として丸められた値を返す。 .I x -¤« +か .I y -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I y -¤Î +の .I x -Çܤ¬¤Á¤ç¤¦¤É̵¸ÂÂç¤Ç¡¢ +倍がちょうど無限大で、 .I z -¤¬¤½¤ì¤È¤ÏÈ¿ÂФÎÉä¹æ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +がそれとは反対の符号の無限大の場合、 +領域エラー (domain error) が発生し、NaN が返される。 .\" POSIX.1-2008 allows some possible differences for the following two .\" domain error cases, but on Linux they are treated the same (AFAICS). .\" Nevertheless, we'll mirror POSIX.1 and describe the two cases .\" separately. .I x -¤È +と .I y -¤Î¤¦¤Á°ìÊý¤¬Ìµ¸ÂÂç¤Ç¡¢¤â¤¦°ìÊý¤¬ 0 ¤Ç¡¢ +のうち一方が無限大で、もう一方が 0 で、 .I z -¤¬ NaN ¤Ç¤Ê¤¤¾ì¹ç¡¢Îΰ襨¥é¡¼¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN でない場合、領域エラーが発生し、NaN が返される。 .\" POSIX.1 says that a NaN or an implementation-defined value shall .\" be returned for this case. .\" POSIX.1 makes the domain error optional for this case. .I x -¤È +と .I y -¤Î¤¦¤Á°ìÊý¤¬Ìµ¸ÂÂç¤Ç¡¢¤â¤¦°ìÊý¤¬ 0 ¤Ç¡¢ +のうち一方が無限大で、もう一方が 0 で、 .I z -¤¬ NaN ¤Î¾ì¹ç¡¢Îΰ襨¥é¡¼¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、領域エラーが発生し、NaN が返される。 .I y -¤Î +の .I x -Çܤ¬ 0 ¤Î̵¸ÂÂçÇÜ (¤â¤·¤¯¤Ï¤½¤ÎµÕ) ¤Ç¤Ï¤Ê¤¯¡¢ +倍が 0 の無限大倍 (もしくはその逆) ではなく、 .I z -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢ -Àµ¤·¤¤Éä¹æ¤Î̵¸ÂÂ礬ÊÖ¤µ¤ì¤ë¡£ +結果がオーバーフローする場合、範囲エラー (range error) が発生し、 +正しい符号の無限大が返される。 -·ë²Ì¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ -ÈÏ°Ï¥¨¥é¡¼¤¬È¯À¸¤·¡¢Éä¹æÉÕ¤­¤Î 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +結果がアンダーフローする場合、 +範囲エラーが発生し、符号付きの 0 が返される。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -Îΰ襨¥é¡¼: \fIx\fP * \fIy\fP + \fIz\fP ¤« \ -\fIx\fP * \fIy\fP ¤¬Ìµ¸ú¤Ç¡¢\fIz\fP ¤¬ NaN ¤Ç¤Ï¤Ê¤¤ +領域エラー: \fIx\fP * \fIy\fP + \fIz\fP か \ +\fIx\fP * \fIy\fP が無効で、\fIz\fP が NaN ではない .\" .I errno .\" is set to .\" .BR EDOM . -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ +範囲エラー: 結果のオーバーフロー .\" .I errno .\" is set to .\" .BR ERANGE . -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤Î¥¢¥ó¥À¡¼¥Õ¥í¡¼ +範囲エラー: 結果のアンダーフロー .\" .I errno .\" is set to .\" .BR ERANGE . -¥¢¥ó¥À¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +アンダーフロー浮動小数点例外 .RB ( FE_UNDERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6801 -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR remainder (3), .BR remquo (3) diff --git a/release/man3/fmax.3 b/release/man3/fmax.3 index d24d007d..824095b9 100644 --- a/release/man3/fmax.3 +++ b/release/man3/fmax.3 @@ -11,9 +11,9 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH FMAX 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -fmax, fmaxf, fmaxl \- Æó¤Ä¤ÎÉâÆ°¾®¿ôÅÀ¿ô¤ÎºÇÂçÃͤòµá¤á¤ë -.SH ½ñ¼° +.SH 名前 +fmax, fmaxf, fmaxl \- 二つの浮動小数点数の最大値を求める +.SH 書式 .B #include .sp .BI "double fmax(double " x ", double " y ); @@ -22,12 +22,12 @@ fmax, fmaxf, fmaxl \- .br .BI "long double fmaxl(long double " x ", long double " y ); .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -42,27 +42,27 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï +.SH 説明 +これらの関数は .I x -¤È +と .I y -¤Î¤¦¤ÁÂ礭¤¤Êý¤ÎÃͤòÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤Ï +のうち大きい方の値を返す。 +.SH 返り値 +これらの関数は .I x -¤È +と .I y -¤ÎºÇÂçÃͤòÊÖ¤¹¡£ +の最大値を返す。 -°ìÊý¤Î°ú¤­¿ô¤¬ NaN ¤Î¾ì¹ç¡¢¤â¤¦°ìÊý¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¡£ +一方の引き数が NaN の場合、もう一方の値が返される。 -ξÊý¤Î°ú¤­¿ô¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +両方の引き数が NaN の場合、NaN が返される。 +.SH エラー +エラーは発生しない。 +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fmin (3) diff --git a/release/man3/fmemopen.3 b/release/man3/fmemopen.3 index 7a204a58..09d6ebef 100644 --- a/release/man3/fmemopen.3 +++ b/release/man3/fmemopen.3 @@ -12,9 +12,9 @@ .\" Updated 2010-04-18, Akihiro MOTOKI, LDP v3.24 .\" .TH FMEMOPEN 3 2010-09-15 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -fmemopen, open_memstream, open_wmemstream \- ¥á¥â¥ê¤ò¥¹¥È¥ê¡¼¥à¤È¤·¤Æ¥ª¡¼¥×¥ó¤¹¤ë -.SH ½ñ¼° +.SH 名前 +fmemopen, open_memstream, open_wmemstream \- メモリをストリームとしてオープンする +.SH 書式 .nf .B #include @@ -29,9 +29,9 @@ fmemopen, open_memstream, open_wmemstream \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR fmemopen (), @@ -41,185 +41,185 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR fmemopen () -´Ø¿ô¤Ï¡¢¥¹¥È¥ê¡¼¥à¤ò¥ª¡¼¥×¥ó¤·¡¢¤½¤Î¥¹¥È¥ê¡¼¥à¤Ë +関数は、ストリームをオープンし、そのストリームに .I mode -¤Ç»ØÄꤵ¤ì¤¿¥¢¥¯¥»¥¹µö²Ä¤òÀßÄꤹ¤ë¡£ -¤½¤Î¥¹¥È¥ê¡¼¥à¤òÄ̤¸¤Æ¡¢ +で指定されたアクセス許可を設定する。 +そのストリームを通じて、 .I buf -¤Ç»ØÄꤵ¤ì¤¿Ê¸»úÎó¤ä¥á¥â¥ê¥Ð¥Ã¥Õ¥¡¤Ø¤ÎÆɤ߽ñ¤­¤¬¤Ç¤­¤ë¡£ -¤³¤Î¥Ð¥Ã¥Õ¥¡¤Ï¾¯¤Ê¤¯¤È¤â +で指定された文字列やメモリバッファへの読み書きができる。 +このバッファは少なくとも .I size -¥Ð¥¤¥È¤ÎŤµ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +バイトの長さでなければならない。 .PP -°ú¤­¿ô +引き数 .I mode -¤Ï +は .BR fopen (3) -¤Î¾ì¹ç¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +の場合と同じである。 .I mode -¤ÇÄɵ­¥â¡¼¥É (append mode) ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¥Õ¥¡¥¤¥ë°ÌÃ֤νé´üÃÍ¤Ï -¥Ð¥Ã¥Õ¥¡Ãæ¤ÎºÇ½é¤Î NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Î°ÌÃÖ¤ËÀßÄꤵ¤ì¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢¥Õ¥¡¥¤¥ë°ÌÃ֤νé´üÃͤϥХåե¡¤ÎÀèƬ¤Ë¤Ê¤ë¡£ -glibc 2.9 °Ê¹ß¤Ç¤Ï¡¢Ê¸»ú 'b' ¤ò +で追記モード (append mode) が指定された場合、ファイル位置の初期値は +バッファ中の最初の NULL バイト (\(aq\\0\(aq) の位置に設定される。 +それ以外の場合は、ファイル位置の初期値はバッファの先頭になる。 +glibc 2.9 以降では、文字 'b' を .I mode -¤ÎÆóÈÖÌܤÎʸ»ú¤È¤·¤Æ»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Îʸ»ú¤Ï¡Ö¥Ð¥¤¥Ê¥ê¡×¥â¡¼¥É¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î¥â¡¼¥É¤Ç¤Ï¡¢½ñ¤­¹þ¤ß»þ¤Ëʸ»úÎó½ªÃ¼¤Î¥Ì¥ë¥Ð¥¤¥È¤¬ÌۤäÆÄɲà -¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£¤Þ¤¿¡¢ +の二番目の文字として指定することができる。 +この文字は「バイナリ」モードを指定するものである。 +このモードでは、書き込み時に文字列終端のヌルバイトが黙って追加 +されることはない。また、 .BR fseek (3) .B SEEK_END -¤Ï¡¢Ê¸»úÎó¤ÎŤµ¤«¤é¤ÎÁêÂÐÃͤǤϤʤ¯¡¢¥Ð¥Ã¥Õ¥¡¤ÎËöÈø +は、文字列の長さからの相対値ではなく、バッファの末尾 .RI ( size -¤Ç»ØÄꤷ¤¿ÃÍ) ¤«¤é¤ÎÁêÂÐÃͤȤʤ롣 +で指定した値) からの相対値となる。 .PP -½ñ¤­¹þ¤ßÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤¿¥¹¥È¥ê¡¼¥à¤ò¥Õ¥é¥Ã¥·¥å +書き込み用にオープンされたストリームをフラッシュ .RB ( fflush (3)) -¤ä¥¯¥í¡¼¥º +やクローズ .RB ( fclose (3)) -¤·¤¿»þ¤Ë¡¢ -(¥Ð¥Ã¥Õ¥¡¤Ë¶õ¤­¤¬¤¢¤ì¤Ð) NULL ¥Ð¥¤¥È¤¬¥Ð¥Ã¥Õ¥¡¤ÎËöÈø¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£ -¤³¤Î¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Ï -¥Ð¥Ã¥Õ¥¡¤Ë 1¥Ð¥¤¥È;͵¤òºî¤ë +した時に、 +(バッファに空きがあれば) NULL バイトがバッファの末尾に書き込まれる。 +このようにするためには、呼び出し元は +バッファに 1バイト余裕を作る .RI ( size -¤Ë¤³¤Î 1¥Ð¥¤¥È¤ò´Þ¤á¤¿Ãͤò»ØÄꤹ¤ë) ɬÍפ¬¤¢¤ë¡£ +にこの 1バイトを含めた値を指定する) 必要がある。 -¥Ð¥Ã¥Õ¥¡¤Ë +バッファに .I size -¥Ð¥¤¥È¤è¤ê¤¿¤¯¤µ¤ó½ñ¤­¹þ¤â¤¦¤È¤·¤¿¾ì¹ç¤Ë¤Ï¡¢¥¨¥é¡¼¤È¤Ê¤ë¡£ -(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¤è¤¦¤Ê¥¨¥é¡¼¤¬¸«¤¨¤ë¤Î¤Ï +バイトよりたくさん書き込もうとした場合には、エラーとなる。 +(デフォルトでは、このようなエラーが見えるのは .I stdio -¥Ð¥Ã¥Õ¥¡¤¬¥Õ¥é¥Ã¥·¥å¤µ¤ì¤¿»þ¤À¤±¤Ç¤¢¤ë¡£ +バッファがフラッシュされた時だけである。 .I setbuf(fp,\ NULL) -¤ò»È¤Ã¤Æ¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤ò̵¸ú¤Ë¤¹¤ëÊýË¡¤Ï¡¢ -½ÐÎÏÁàºî¤ò¹Ô¤Ã¤¿»þÅÀ¤Ç¥¨¥é¡¼¤ò¸¡½Ð¤¹¤ë¤Î¤ËÌòΩ¤Ä¡£ -Ê̤ÎÊýË¡¤È¤·¤Æ¤Ï¡¢ +を使ってバッファリングを無効にする方法は、 +出力操作を行った時点でエラーを検出するのに役立つ。 +別の方法としては、 .IR "setbuffer(fp, buf, size)" -¤ò»È¤Ã¤Æ¡¢¸Æ¤Ó½Ð¤·Â¦¤¬ÌÀ¼¨Åª¤Ë -stdio ¥¹¥È¥ê¡¼¥à¥Ð¥Ã¥Õ¥¡¤È¤·¤Æ +を使って、呼び出し側が明示的に +stdio ストリームバッファとして .I buf -¤ò»ØÄꤷ¡¢¥Ð¥Ã¥Õ¥¡¤Î»ØÄê»þ¤Ë¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤ò -stdio ¤Ë¶µ¤¨¤ëÊýË¡¤¬¤¢¤ë¡£) +を指定し、バッファの指定時にバッファのサイズを +stdio に教える方法がある。) .\" See http://sourceware.org/bugzilla/show_bug.cgi?id=1995 .\" and .\" http://sources.redhat.com/ml/libc-alpha/2006-04/msg00064.html .PP -Æɤ߽Ф·ÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤¿¥¹¥È¥ê¡¼¥à¤Ç¤Ï¡¢ -¥Ð¥Ã¥Õ¥¡Æâ¤Ë NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤¬¤¢¤Ã¤Æ¤â -Æɤ߽Ф·Áàºî¤¬¥Õ¥¡¥¤¥ëËöÈø (end-of-file) ¤òÊÖ¤¹¤³¤È¤Ï¤Ê¤¤¡£ -¥Ð¥Ã¥Õ¥¡¤«¤é¤ÎÆɤ߽Ф·¤Ç¥Õ¥¡¥¤¥ëËöÈø¤¬ÊÖ¤ë¤Î¤Ï¡¢ -¥Õ¥¡¥¤¥ë¥Ý¥¤¥ó¥¿¤¬¥Ð¥Ã¥Õ¥¡¤ÎÀèƬ¤«¤é +読み出し用にオープンされたストリームでは、 +バッファ内に NULL バイト (\(aq\\0\(aq) があっても +読み出し操作がファイル末尾 (end-of-file) を返すことはない。 +バッファからの読み出しでファイル末尾が返るのは、 +ファイルポインタがバッファの先頭から .I size -¥Ð¥¤¥È¤ò±Û¤¨¤ÆÀè¤Ë¿Ê¤â¤¦¤È¤·¤¿¾ì¹ç¤À¤±¤Ç¤¢¤ë¡£ +バイトを越えて先に進もうとした場合だけである。 .PP .I buf -¤Ë NULL ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +に NULL が指定された場合、 .BR fmemopen () -¤ÏưŪ¤Ë +は動的に .I size -¥Ð¥¤¥È¤ÎŤµ¤Î¥Ð¥Ã¥Õ¥¡¤ò³ÎÊݤ¹¤ë¡£ -¤³¤ÎÊýË¡¤Ï¡¢°ì»þ¥Ð¥Ã¥Õ¥¡¤Ë¥Ç¡¼¥¿¤Î½ñ¤­¹þ¤ß¤ò¹Ô¤Ã¤Æ¤«¤é¡¢ -¤½¤ÎÆâÍƤòºÆÅÙÆɤ߽Ф¹¤è¤¦¤Ê¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÇÍ­ÍѤǤ¢¤ë¡£ -¤³¤Î¥Ð¥Ã¥Õ¥¡¤Ï¥¹¥È¥ê¡¼¥à¤¬¥¯¥í¡¼¥º¤µ¤ì¤ë¤È¤­¤Ë¼«Æ°Åª¤Ë²òÊü¤µ¤ì¤ë¡£ -¸Æ¤Ó½Ð¤·¸µ¤«¤é¤Ï¤³¤Î´Ø¿ô¤¬³ä¤êÅö¤Æ¤¿°ì»þ¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿Ãͤò -ÃΤëÊýË¡¤Ï¸ºß¤·¤Ê¤¤ÅÀ¤ËÃí°Õ (²¼µ­¤Î +バイトの長さのバッファを確保する。 +この方法は、一時バッファにデータの書き込みを行ってから、 +その内容を再度読み出すようなアプリケーションで有用である。 +このバッファはストリームがクローズされるときに自動的に解放される。 +呼び出し元からはこの関数が割り当てた一時バッファへのポインタ値を +知る方法は存在しない点に注意 (下記の .BR open_memstream () -¤â»²¾È)¡£ +も参照)。 .BR open_memstream () -´Ø¿ô¤Ï¡¢¥Ð¥Ã¥Õ¥¡¤Ø¤Î½ñ¤­¹þ¤ßÍѤ˥¹¥È¥ê¡¼¥à¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£ -¥Ð¥Ã¥Õ¥¡¤Ï +関数は、バッファへの書き込み用にストリームをオープンする。 +バッファは .RB ( malloc (3) -¤ò»È¤Ã¤Æ) ưŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¡¢É¬Íפ˱þ¤¸¤Æ¼«Æ°Åª¤Ë¿­Ä¹¤¹¤ë¡£ -¥¹¥È¥ê¡¼¥à¤ò¥¯¥í¡¼¥º¤·¤¿¸å¤Ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Ï¤³¤Î¥Ð¥Ã¥Õ¥¡¤ò +を使って) 動的に割り当てられ、必要に応じて自動的に伸長する。 +ストリームをクローズした後で、呼び出し元はこのバッファを .BR free (3) -¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +すべきである。 -¤³¤Î¥¹¥È¥ê¡¼¥à¤¬ -¥¯¥í¡¼¥º +このストリームが +クローズ .RB ( fclose (3)) -¤µ¤ì¤¿¤ê¥Õ¥é¥Ã¥·¥å +されたりフラッシュ .RB ( fflush (3)) -¤µ¤ì¤¿»þ¤Ë¡¢ +された時に、 .I ptr -¤È +と .I sizeloc -¤ÎÃͤϤ½¤ì¤¾¤ì¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤È¤½¤Î¥µ¥¤¥º¤Ë¹¹¿·¤µ¤ì¤ë¡£ -¤³¤ì¤é¤ÎÃͤϡ¢¸Æ¤Ó½Ð¤·¸µ¤¬¤½¤Î¥¹¥È¥ê¡¼¥à¤Ë¿·¤¿¤Ê½ñ¤­¹þ¤ß¤ò -¹Ô¤ï¤Ê¤¤¾ì¹ç¤Ë¸Â¤êÍ­¸ú¤Ç¤¢¤ë¡£ -¥¹¥È¥ê¡¼¥à¤Ë½ñ¤­¹þ¤ß¤ò¹Ô¤Ã¤¿ºÝ¤Ë¤Ï¡¢¤³¤ì¤é¤ÎÊÑ¿ô¤ò»²¾È¤¹¤ëÁ°¤Ë -¥¹¥È¥ê¡¼¥à¤òºÆÅÙ¥Õ¥é¥Ã¥·¥å¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +の値はそれぞれバッファへのポインタとそのサイズに更新される。 +これらの値は、呼び出し元がそのストリームに新たな書き込みを +行わない場合に限り有効である。 +ストリームに書き込みを行った際には、これらの変数を参照する前に +ストリームを再度フラッシュしなければならない。 -¥Ð¥Ã¥Õ¥¡ËöÈø¤Î NULL ¥Ð¥¤¥È¤ÏÊÝ»ý¤µ¤ì¤ë¡£ -¤³¤Î NULL ¥Ð¥¤¥È¤Ï +バッファ末尾の NULL バイトは保持される。 +この NULL バイトは .I sizeloc -¤Ë³ÊǼ¤µ¤ì¤ë¥µ¥¤¥º¤Ë¤Ï¡Ö´Þ¤Þ¤ì¤Ê¤¤¡×¡£ +に格納されるサイズには「含まれない」。 -¥¹¥È¥ê¡¼¥à¤Î¥Õ¥¡¥¤¥ë°ÌÃÖ¤Ï +ストリームのファイル位置は .BR fseek (3) -¤ä +や .BR fseeko (3) -¤ÇÊѹ¹¤Ç¤­¤ë¡£ -¤¹¤Ç¤Ë¥Ç¡¼¥¿¤¬½ñ¤­¹þ¤Þ¤ì¤¿Îΰè¤ÎËöÈø¤è¤êÀè¤Ë¥Õ¥¡¥¤¥ë°ÌÃÖ¤òÆ°¤«¤¹¤È¡¢ -¤½¤Î´Ö¤ÎÎΰè¤Ï 0 ¤ÇËä¤á¤é¤ì¤ë¡£ +で変更できる。 +すでにデータが書き込まれた領域の末尾より先にファイル位置を動かすと、 +その間の領域は 0 で埋められる。 .BR open_wmemstream () -¤Ï +は .BR open_memstream () -¤ÈƱÍͤÀ¤¬¡¢¥Ð¥¤¥È¤Ç¤Ï¤Ê¤¯¥ï¥¤¥Éʸ»ú¤ËÂФ·¤ÆÁàºî¤ò¹Ô¤¦ÅÀ¤¬°Û¤Ê¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤Æ½ªÎ»¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ +と同様だが、バイトではなくワイド文字に対して操作を行う点が異なる。 +.SH 返り値 +成功して終了した場合には、 .BR fmemopen (), .BR open_memstream (), .BR open_wmemstream () -¤Ï +は .I FILE -¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¡¢ NULL ¤òÊÖ¤·¡¢ +ポインタを返す。 +失敗した場合は、 NULL を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +にエラーを示す値をセットする。 +.SH バージョン .BR fmemopen () -¤È +と .BR open_memstream () -¤Ï glibc 1.0.x ¤Ç¤¹¤Ç¤ËÍøÍѲÄǽ¤Ç¤¢¤Ã¤¿¡£ +は glibc 1.0.x ですでに利用可能であった。 .BR open_wmemstream () -¤Ï glibc 2.4 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH ½àµò +は glibc 2.4 以降で利用可能である。 +.SH 準拠 POSIX.1-2008. -¤³¤ì¤é¤Î´Ø¿ô¤Ï POSIX.1-2001 ¤Ç¤Ïµ¬Äê¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -Linux °Ê³°¤Î¥·¥¹¥Æ¥à¤Ç¹­¤¯ÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -¤³¤ì¤é¤Î´Ø¿ô¤¬ÊÖ¤¹¥Õ¥¡¥¤¥ë¥¹¥È¥ê¡¼¥à¤ËÂбþ¤¹¤ë¥Õ¥¡¥¤¥ë -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¤Ê¤¤ (¤Ä¤Þ¤ê¡¢ÊÖ¤µ¤ì¤¿¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ +これらの関数は POSIX.1-2001 では規定れていないが、 +Linux 以外のシステムで広く利用可能である。 +.SH 注意 +これらの関数が返すファイルストリームに対応するファイル +ディスクリプタはない (つまり、返されたストリームに対して .BR fileno (3) -¤ò¸Æ¤Ó½Ð¤¹¤È¥¨¥é¡¼¤¬Ê֤뤳¤È¤Ë¤Ê¤ë)¡£ -.SH ¥Ð¥° -¥Ð¡¼¥¸¥ç¥ó 2.7 ¤è¤êÁ°¤Î glibc ¤Ç¤Ï¡¢ +を呼び出すとエラーが返ることになる)。 +.SH バグ +バージョン 2.7 より前の glibc では、 .BR open_memstream () -¤ÇºîÀ®¤µ¤ì¤¿¥¹¥È¥ê¡¼¥à¤ÎËöÈø¤è¤êÀè¤Ë¥Õ¥¡¥¤¥ë°ÌÃÖ¤òÆ°¤«¤·¤Æ¤â¡¢ -¥Ð¥Ã¥Õ¥¡¤¬¿­Ä¹¤µ¤ì¤º¡¢ +で作成されたストリームの末尾より先にファイル位置を動かしても、 +バッファが伸長されず、 .BR fseek (3) -¤¬¼ºÇÔ¤· \-1 ¤¬Ê֤롣 +が失敗し \-1 が返る。 .\" http://sourceware.org/bugzilla/show_bug.cgi?id=1996 -.SH Îã -¤³¤Î¥×¥í¥°¥é¥à¤Ï +.SH 例 +このプログラムは .BR fmemopen () -¤ò»È¤Ã¤Æ½ÐÎϥХåե¡¤ò¥ª¡¼¥×¥ó¤·¡¢ +を使って出力バッファをオープンし、 .BR open_memstream () -¤ò»È¤Ã¤ÆưŪ¤Ë¥µ¥¤¥º¤¬ÊѲ½¤¹¤ë½ÐÎϥХåե¡¤ò¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¡£ -(¥×¥í¥°¥é¥à¤ÎÂè°ì¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤«¤é¼è¤Ã¤¿) ÆþÎÏʸ»úÎó¤ò -¥¹¥­¥ã¥ó¤·¤ÆÀ°¿ô¤òÆɤ߹þ¤ß¡¢¤³¤ì¤é¤ÎÀ°¿ô¤ÎÆó¾è¤ò½ÐÎϥХåե¡¤Ë½ñ¤­½Ð¤¹¡£ -¤³¤Î¥×¥í¥°¥é¥à¤Î¼Â¹ÔÎã¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¡£ +を使って動的にサイズが変化する出力バッファをオープンしている。 +(プログラムの第一コマンドライン引き数から取った) 入力文字列を +スキャンして整数を読み込み、これらの整数の二乗を出力バッファに書き出す。 +このプログラムの実行例は以下のようになる。 .in +4n .nf @@ -227,7 +227,7 @@ Linux size=11; ptr=1 529 1849 .fi .in -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #define _GNU_SOURCE @@ -275,6 +275,6 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fopen (3), .BR fopencookie (3) diff --git a/release/man3/fmin.3 b/release/man3/fmin.3 index 4e1584bf..69e9b22b 100644 --- a/release/man3/fmin.3 +++ b/release/man3/fmin.3 @@ -11,9 +11,9 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH FMIN 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -fmin, fminf, fminl \- Æó¤Ä¤ÎÉâÆ°¾®¿ôÅÀ¿ô¤ÎºÇ¾®Ãͤòµá¤á¤ë -.SH ½ñ¼° +.SH 名前 +fmin, fminf, fminl \- 二つの浮動小数点数の最小値を求める +.SH 書式 .B #include .sp .BI "double fmin(double " x ", double " y ); @@ -22,12 +22,12 @@ fmin, fminf, fminl \- .br .BI "long double fminl(long double " x ", long double " y ); .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -42,27 +42,27 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï +.SH 説明 +これらの関数は .I x -¤È +と .I y -¤Î¤¦¤Á¾®¤µ¤¤Êý¤ÎÃͤòÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤Ï +のうち小さい方の値を返す。 +.SH 返り値 +これらの関数は .I x -¤È +と .I y -¤ÎºÇ¾®ÃͤòÊÖ¤¹¡£ +の最小値を返す。 -°ìÊý¤Î°ú¤­¿ô¤¬ NaN ¤Î¾ì¹ç¡¢¤â¤¦°ìÊý¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¡£ +一方の引き数が NaN の場合、もう一方の値が返される。 -ξÊý¤Î°ú¤­¿ô¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +両方の引き数が NaN の場合、NaN が返される。 +.SH エラー +エラーは発生しない。 +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fmax (3) diff --git a/release/man3/fmod.3 b/release/man3/fmod.3 index 3d1e04ac..d70c66e7 100644 --- a/release/man3/fmod.3 +++ b/release/man3/fmod.3 @@ -37,12 +37,12 @@ .\" Updated Wed Oct 15 JST 2003 by Kentaro Shirakata .\" Updated 2008-09-16, Akihiro MOTOKI .\" -.\" WORD: remainder function ¾ê;´Ø¿ô +.\" WORD: remainder function 剰余関数 .\" .TH FMOD 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -fmod, fmodf, fmodl \- ÉâÆ°¾®¿ôÅÀ¾ê;´Ø¿ô -.SH ½ñ¼° +.SH 名前 +fmod, fmodf, fmodl \- 浮動小数点剰余関数 +.SH 書式 .nf .B #include .sp @@ -53,12 +53,12 @@ fmod, fmodf, fmodl \- .BI "long double fmodl(long double " x ", long double " y ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -72,74 +72,74 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR fmod () -´Ø¿ô¤Ï \fIx\fP ¤ò \fIy\fP ¤Ç³ä¤Ã¤¿ÉâÆ°¾®¿ôÅÀ¾ê;¤ò·×»»¤¹¤ë¡£ -ÊÖ¤êÃÍ¤Ï \fIx\fP \- \fIn\fP * \fIy\fP ¤Ç¤¢¤ë¡£ -¤³¤³¤Ç¡¢\fIn\fP ¤Ï \fIx\fP / \fIy\fP ¤Î¾¦¤ò -¥¼¥í¤Ë¸þ¤«¤¦Êý¸þ¤ÇÀ°¿ôÃͤ˴ݤ᤿¤â¤Î¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï \fIx\fP\ \-\ \fIn\fP*\fIy\fP ¤òÊÖ¤¹¡£ -\fIn\fP ¤Ï¡¢ÊÖ¤êÃͤ¬ +関数は \fIx\fP を \fIy\fP で割った浮動小数点剰余を計算する。 +返り値は \fIx\fP \- \fIn\fP * \fIy\fP である。 +ここで、\fIn\fP は \fIx\fP / \fIy\fP の商を +ゼロに向かう方向で整数値に丸めたものである。 +.SH 返り値 +成功すると、これらの関数は \fIx\fP\ \-\ \fIn\fP*\fIy\fP を返す。 +\fIn\fP は、返り値が .I x -¤ÈƱ¤¸Éä¹æ¤Ç¡¢¤½¤ÎÀäÂÐÃͤ¬ +と同じ符号で、その絶対値が .I y -¤ÎÀäÂÐÃͤè¤ê¤â¾®¤µ¤¯¤Ê¤ë¤è¤¦¤ÊÀ°¿ô¤Ç¤¢¤ë¡£ +の絶対値よりも小さくなるような整数である。 .I x -¤« +か .I y -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬Ìµ¸ÂÂç¤Î¾ì¹ç¡¢Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ -NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が無限大の場合、領域エラー (domain error) が発生し、 +NaN が返される。 .I y -¤¬ 0 ¤Î¾ì¹ç¡¢Îΰ襨¥é¡¼¤¬È¯À¸¤·¡¢ -NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が 0 の場合、領域エラーが発生し、 +NaN が返される。 .I x -¤¬ +0 (\-0) ¤Ç +が +0 (\-0) で .I y -¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +が 0 でない場合、+0 (\-0) が返される。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -Îΰ襨¥é¡¼: \fIx\fP ¤¬Ìµ¸ÂÂç +領域エラー: \fIx\fP が無限大 .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë (¡Ö¥Ð¥°¡×¤ÎÀá¤â»²¾È)¡£ -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される (「バグ」の節も参照)。 +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP -Îΰ襨¥é¡¼: \fIy\fP ¤¬¥¼¥í +領域エラー: \fIy\fP がゼロ .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë¡£ -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .\" POSIX.1 documents an optional underflow error, but AFAICT it doesn't .\" (can't?) occur -- mtk, Jul 2008 -.SH ¥Ð¥° +.SH バグ .\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=6784 -¥Ð¡¼¥¸¥ç¥ó 2.10 ¤è¤êÁ°¤Î glibc ¤Î¼ÂÁõ¤Ç¤Ï¡¢ -̵¸ÂÂç¤ÇÎΰ襨¥é¡¼¤¬È¯À¸¤·¤¿ºÝ¤Ë¡¢ +バージョン 2.10 より前の glibc の実装では、 +無限大で領域エラーが発生した際に、 .I error -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤Ê¤«¤Ã¤¿¡£ -.SH ½àµò +が設定されなかった。 +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 +.SH 関連項目 .BR remainder (3) diff --git a/release/man3/fmtmsg.3 b/release/man3/fmtmsg.3 index 33d818e4..5e893baa 100644 --- a/release/man3/fmtmsg.3 +++ b/release/man3/fmtmsg.3 @@ -13,9 +13,9 @@ .\" by Yuichi SATO .\" .TH FMTMSG 3 2008-06-14 "" "Linux Programmer's Manual" -.SH ̾Á° -fmtmsg \- À°·Á¤µ¤ì¤¿¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë -.SH ½ñ¼° +.SH 名前 +fmtmsg \- 整形されたエラーメッセージを表示する +.SH 書式 .nf .B #include .sp @@ -25,219 +25,219 @@ fmtmsg \- .br .BI " const char *" action ", const char *" tag ); .fi -.SH ÀâÌÀ -¤³¤Î´Ø¿ô¤Ï¡¢°ú¤­¿ô¤Çµ­½Ò¤µ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤ò¡¢ +.SH 説明 +この関数は、引き数で記述されたメッセージを、 .I classification -°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿¥Ç¥Ð¥¤¥¹¾å¤Ëɽ¼¨¤¹¤ë¡£ +引き数で指定されたデバイス上に表示する。 .I stderr -¤Ë½ñ¤­½Ð¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢ +に書き出されるメッセージのフォーマットは、 .B MSGVERB -´Ä¶­ÊÑ¿ô¤Ë°Í¸¤¹¤ë¡£ +環境変数に依存する。 .LP .I label -°ú¤­¿ô¤Ï¥á¥Ã¥»¡¼¥¸¤ÎȯÀ¸¸»¤ò¼±Ê̤¹¤ë¡£ -¤³¤Îʸ»úÎó¤Ï¥³¥í¥ó¤Ç¶èÀÚ¤é¤ì¤¿ 2 ¤Ä¤ÎÉôʬ¤«¤é¹½À®¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -1 ¤ÄÌܤÎÉôʬ¤Ï 10 ʸ»ú°ÊÆâ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -2 ¤ÄÌܤÎÉôʬ¤Ï 14 ʸ»ú°ÊÆâ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数はメッセージの発生源を識別する。 +この文字列はコロンで区切られた 2 つの部分から構成されていなければならない。 +1 つ目の部分は 10 文字以内でなければならず、 +2 つ目の部分は 14 文字以内でなければならない。 .LP .I text -°ú¤­¿ô¤Ë¤Ï¥¨¥é¡¼¾ò·ï¤òµ­½Ò¤¹¤ë¡£ +引き数にはエラー条件を記述する。 .LP .I action -°ú¤­¿ô¤Ë¤Ï¥¨¥é¡¼¤«¤é²óÉü¤¹¤ë¤¿¤á¤ËÍøÍѲÄǽ¤Ê¥¹¥Æ¥Ã¥×¤òµ­½Ò¤¹¤ë¡£ -¤³¤ì¤¬É½¼¨¤µ¤ì¤ë¾ì¹ç¡¢"TO FIX: " ¤¬Á°¤ËÉÕ¤¯¡£ +引き数にはエラーから回復するために利用可能なステップを記述する。 +これが表示される場合、"TO FIX: " が前に付く。 .LP .I tag -°ú¤­¿ô¤Ï¤è¤ê¿¤¯¤Î¾ðÊó¤ò¸«¤Ä¤±¤ë¤¿¤á¤Î¥ª¥ó¥é¥¤¥ó¥É¥­¥å¥á¥ó¥È¤Ø¤Î»²¾È¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï +引き数はより多くの情報を見つけるためのオンラインドキュメントへの参照である。 +これは .I label -Ãͤȥæ¥Ë¡¼¥¯¤Ê¼±ÊÌÈÖ¹æ¤ò´Þ¤ó¤Ç¤¤¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -.SS ¥À¥ß¡¼°ú¤­¿ô -³Æ°ú¤­¿ô¤Ë¤Ï¥À¥ß¡¼¤ÎÃͤòÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥À¥ß¡¼¤Î +値とユニークな識別番号を含んでいるべきである。 +.SS ダミー引き数 +各引き数にはダミーの値を入れることができる。 +ダミーの .I classification -ÃÍ +値 .B MM_NULLMC -(0L) ¤Ï½ÐÎϤò²¿¤â»ØÄꤷ¤Ê¤¤¡£¤½¤Î¤¿¤á²¿¤âɽ¼¨¤µ¤ì¤Ê¤¤¡£ -¥À¥ß¡¼¤Î +(0L) は出力を何も指定しない。そのため何も表示されない。 +ダミーの .I severity -ÃÍ +値 .B NO_SEV -(0) ¤Ï½ÅÂçÅÙ (severity) ¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤òɽ¤¹¡£ -ÃÍ +(0) は重大度 (severity) が与えられていないことを表す。 +値 .BR MM_NULLLBL , .BR MM_NULLTXT , .BR MM_NULLACT , .B MM_NULLTAG -¤Ï +は .I "((char *) 0)" -¤È¶õʸ»úÎó¤ÎÊÌ̾¤Ç¤¢¤ê¡¢ +と空文字列の別名であり、 .B MM_NULLSEV -¤Ï +は .B NO_SEV -¤ÎÊÌ̾¤Ç¤¢¤ë¡£ -.SS "classification °ú¤­¿ô" +の別名である。 +.SS "classification 引き数" .I classification -°ú¤­¿ô¤Ï 4 ¼ïÎà¤Î¾ðÊó¤òµ­½Ò¤¹¤ëÃͤÎϤǤ¢¤ë¡£ +引き数は 4 種類の情報を記述する値の和である。 .br .sp -ºÇ½é¤ÎÃͤϽÐÎÏ¥Á¥ã¥ó¥Í¥ë¤òÄêµÁ¤¹¤ë¡£ +最初の値は出力チャンネルを定義する。 .TP 12n .B MM_PRINT .I stderr -¤Ë½ÐÎϤ¹¤ë¡£ +に出力する。 .TP .B MM_CONSOLE -¥·¥¹¥Æ¥à¥³¥ó¥½¡¼¥ë¤Ë½ÐÎϤ¹¤ë¡£ +システムコンソールに出力する。 .TP .B "MM_PRINT | MM_CONSOLE" -ξÊý¤Ë½ÐÎϤ¹¤ë¡£ +両方に出力する。 .PP -2 ÈÖÌܤÎÃͤϥ¨¥é¡¼¤ÎȯÀ¸¸»¤Ç¤¢¤ë: +2 番目の値はエラーの発生源である: .TP 12n .B MM_HARD -¥Ï¡¼¥É¥¦¥§¥¢¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£ +ハードウェアエラーが起こった。 .TP .B MM_FIRM -¥Õ¥¡¡¼¥à¥¦¥§¥¢¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£ +ファームウェアエラーが起こった。 .TP .B MM_SOFT -¥½¥Õ¥È¥¦¥§¥¢¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£ +ソフトウェアエラーが起こった。 .PP -3 ÈÖÌܤÎÃͤÏÌäÂê¤Î¸¡ÃΤò¹Ô¤Ã¤¿¤â¤Î¤ò¥¨¥ó¥³¡¼¥É¤¹¤ë: +3 番目の値は問題の検知を行ったものをエンコードする: .TP 12n .B MM_APPL -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤è¤Ã¤Æ¸¡ÃΤµ¤ì¤¿¡£ +アプリケーションによって検知された。 .TP .B MM_UTIL -¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ë¤è¤Ã¤Æ¸¡ÃΤµ¤ì¤¿¡£ +ユーティリティによって検知された。 .TP .B MM_OPSYS -¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¸¡ÃΤµ¤ì¤¿¡£ +オペレーティングシステムによって検知された。 .PP -4 ÈÖÌܤÎÃͤÏÌäÂê¤Î½ÅÂçÅÙ¤òɽ¤¹: +4 番目の値は問題の重大度を表す: .TP 12n .B MM_RECOVER -²óÉü²Äǽ¤Ê¥¨¥é¡¼¤Ç¤¢¤ë¡£ +回復可能なエラーである。 .TP .B MM_NRECOV -²óÉüÉÔ²Äǽ¤Ê¥¨¥é¡¼¤Ç¤¢¤ë¡£ -.SS "severity °ú¤­¿ô" +回復不可能なエラーである。 +.SS "severity 引き数" .I severity -°ú¤­¿ô¤Ï°Ê²¼¤Î 1 ¤Ä¤ÎÃͤò¤È¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +引き数は以下の 1 つの値をとることができる。 .TP 12n .B MM_NOSEV -½ÅÂçÅÙ¤Ïɽ¼¨¤µ¤ì¤Ê¤¤¡£ +重大度は表示されない。 .TP .B MM_HALT -¤³¤ÎÃÍ¤Ï HALT ¤È¤·¤Æɽ¼¨¤µ¤ì¤ë¡£ +この値は HALT として表示される。 .TP .B MM_ERROR -¤³¤ÎÃÍ¤Ï ERROR ¤È¤·¤Æɽ¼¨¤µ¤ì¤ë¡£ +この値は ERROR として表示される。 .TP .B MM_WARNING -¤³¤ÎÃÍ¤Ï WARNING ¤È¤·¤Æɽ¼¨¤µ¤ì¤ë¡£ +この値は WARNING として表示される。 .TP .B MM_INFO -¤³¤ÎÃÍ¤Ï INFO ¤È¤·¤Æɽ¼¨¤µ¤ì¤ë¡£ +この値は INFO として表示される。 .PP -¿ôÃͤξì¹ç¤Ï 0 ¤«¤é 4 ¤Ç¤¢¤ë¡£ +数値の場合は 0 から 4 である。 .BR addseverity (3) -¤Þ¤¿¤Ï´Ä¶­ÊÑ¿ô +または環境変数 .B SEV_LEVEL -¤ò»È¤¦¤³¤È¤Ë¤è¤ê¡¢É½¼¨¤¹¤ë¥ì¥Ù¥ë¤Èʸ»úÎó¤ò¹¹¤ËÄɲäǤ­¤ë¡£ -.SH ÊÖ¤êÃÍ -´Ø¿ô¤Ï 4 ¤Ä¤ÎÃͤòÊÖ¤¹: +を使うことにより、表示するレベルと文字列を更に追加できる。 +.SH 返り値 +関数は 4 つの値を返す: .TP 12n .B MM_OK -Á´¤Æ¤¬¤¦¤Þ¤¯¤¤¤Ã¤¿¡£ +全てがうまくいった。 .TP .B MM_NOTOK -´°Á´¤Ë¼ºÇÔ¤·¤¿¡£ +完全に失敗した。 .TP .B MM_NOMSG .I stderr -¤Ë½ñ¤­¹þ¤à¤È¤­¤Ë¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£ +に書き込むときにエラーが起こった。 .TP .B MM_NOCON -¥³¥ó¥½¡¼¥ë¤Ë½ñ¤­¹þ¤à¤È¤­¤Ë¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£ -.SH ´Ä¶­ÊÑ¿ô -´Ä¶­ÊÑ¿ô +コンソールに書き込むときにエラーが起こった。 +.SH 環境変数 +環境変数 .B MSGVERB -("message verbosity") ¤Ï +("message verbosity") は .I stderr -¤Ø¤Î½ÐÎϤΰìÉô¤òÍÞÀ©¤¹¤ë¤Î¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -(¥³¥ó¥½¡¼¥ë¤Ø¤Î½ÐÎϤˤϱƶÁ¤·¤Ê¤¤¡£) -¤³¤ÎÊÑ¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¡¢NULL ¤Ç¤Ê¤¯¡¢ -¥³¥í¥ó¤Ç¶èÀÚ¤é¤ì¤¿Í­¸ú¤Ê¥­¡¼¥ï¡¼¥É¤Î¥ê¥¹¥È¤Ç¤¢¤ë¾ì¹ç¡¢ -¥­¡¼¥ï¡¼¥É¤ËÂбþ¤¹¤ë¥á¥Ã¥»¡¼¥¸¤Î°ìÉô¤Î¤ß¤¬É½¼¨¤µ¤ì¤ë¡£ -Í­¸ú¤Ê¥­¡¼¥ï¡¼¥É¤Ï "label", "severity", "text", "action", "tag" ¤Ç¤¢¤ë¡£ +への出力の一部を抑制するのに使うことができる。 +(コンソールへの出力には影響しない。) +この変数が定義されて、NULL でなく、 +コロンで区切られた有効なキーワードのリストである場合、 +キーワードに対応するメッセージの一部のみが表示される。 +有効なキーワードは "label", "severity", "text", "action", "tag" である。 .PP -´Ä¶­ÊÑ¿ô +環境変数 .B SEV_LEVEL -¤Ï¿·¤·¤¤½ÅÂçÅÙ¥ì¥Ù¥ë¤òƳÆþ¤¹¤ë¤Î¤Ë»ÈÍѤǤ­¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¾åµ­¤Î 5 ¤Ä¤Î½ÅÂçÅÙ¥ì¥Ù¥ë¤Î¤ß¤¬ÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -¾¤Î¿ôÃͤξì¹ç¡¢ +は新しい重大度レベルを導入するのに使用できる。 +デフォルトでは、上記の 5 つの重大度レベルのみが利用可能である。 +他の数値の場合、 .BR fmtmsg () -¤Ï²¿¤âɽ¼¨¤·¤Ê¤¤¡£ +は何も表示しない。 .BR fmtmsg () -¤ò½é¤á¤Æ¸Æ¤Ó½Ð¤¹Á°¤Ë¡¢¥æ¡¼¥¶¤¬ +を初めて呼び出す前に、ユーザが .B SEV_LEVEL -¤ò +を .sp .RS SEV_LEVEL=[description[:description[:...]]] .RE .sp -¤Î¤è¤¦¤Ê·Á¼°¤Ç¥×¥í¥»¥¹¤Î´Ä¶­¤ËÀßÄꤹ¤ë¤È¡¢ +のような形式でプロセスの環境に設定すると、 .BR fmtmsg () -¤Ï (ɸ½à¤Î¥ì¥Ù¥ë 0-4 ¤Ë²Ã¤¨¤Æ) level ¤Ë»ØÄꤵ¤ì¤¿Ãͤâ¼õ¤±ÉÕ¤±¡¢ -¤½¤Î¤è¤¦¤Ê¥ì¥Ù¥ë¤ÎÌäÂ꤬ȯÀ¸¤¹¤ë¤È»ØÄꤵ¤ì¤¿ printstring ¤òɽ¼¨¤¹¤ë¡£ -³Æ description ¤Ï +は (標準のレベル 0-4 に加えて) level に指定された値も受け付け、 +そのようなレベルの問題が発生すると指定された printstring を表示する。 +各 description は .sp .RS severity-keyword,level,printstring .RE .sp -¤È¤¤¤¦·Á¼°¤Ç¤¢¤ë¡£ +という形式である。 .LP -severity-keyword Éô¤Ï +severity-keyword 部は .BR fmtmsg () -¤Ë»ÈÍѤµ¤ì¤Ê¤¤¤¬¡¢Â¸ºß¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -level Éô¤Ï¿ôÃͤòʸ»úÎó¤Çɽ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -¿ôÃÍ¤Ï 4 ¤è¤êÂ礭¤¤ÃͤǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ÎÃÍ¤Ï +に使用されないが、存在しなければならない。 +level 部は数値を文字列で表したものである。 +数値は 4 より大きい値でなければならない。 +この値は .BR fmtmsg () -¤Î severity °ú¤­¿ô¤Ç»ÈÍѤµ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢¤³¤Î½ÅÂçÅÙ¤òÁªÂò¤¹¤ë¡£ -Á°¤â¤Ã¤ÆÀë¸À¤µ¤ì¤¿½ÅÂçÅÙ¤ò¾å½ñ¤­¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -printstring ¤Ï¡¢ -¤³¤Î½ÅÂçÅ٤Υá¥Ã¥»¡¼¥¸¤¬ +の severity 引き数で使用されなければならず、この重大度を選択する。 +前もって宣言された重大度を上書きすることはできない。 +printstring は、 +この重大度のメッセージが .BR fmtmsg () -¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤¿¾ì¹ç¤Ëɽ¼¨¤µ¤ì¤ëʸ»úÎó¤Ç¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +によって生成された場合に表示される文字列である。 +.SH バージョン .BR fmtmsg () -¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò -´Ø¿ô +は、バージョン 2.1 以降の glibc で提供されている。 +.SH 準拠 +関数 .BR fmtmsg () -¤È +と .BR addseverity (3) -¤È´Ä¶­ÊÑ¿ô +と環境変数 .B MSGVERB -¤È +と .B SEV_LEVEL -¤Ï System V ¤ËͳÍ褷¤Æ¤¤¤ë¡£ -´Ø¿ô +は System V に由来している。 +関数 .BR fmtmsg () -¤È´Ä¶­ÊÑ¿ô +と環境変数 .B MSGVERB -¤Ï POSIX.1-2001 ¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -System V ¤È UnixWare ¤Î man ¥Ú¡¼¥¸¤Ë¤Ï¡¢ -¡Ö¤³¤ì¤é¤Î´Ø¿ô¤Ï "pfmt() ¤È addsev()" -¤Þ¤¿¤Ï "pfmt(), vpfmt(), lfmt(), vlfmt()" ¤ÇÃÖ¤­´¹¤¨¤é¤ì¤Æ¤ª¤ê¡¢ -¾­Íè¤Ïºï½ü¤µ¤ì¤ëͽÄê¤Ç¤¢¤ë¡×¤È½ñ¤«¤ì¤Æ¤¤¤ë¡£ -.SH Îã +は POSIX.1-2001 に記述されている。 +.SH 注意 +System V と UnixWare の man ページには、 +「これらの関数は "pfmt() と addsev()" +または "pfmt(), vpfmt(), lfmt(), vlfmt()" で置き換えられており、 +将来は削除される予定である」と書かれている。 +.SH 例 .nf #include #include @@ -271,27 +271,27 @@ main(void) } .fi .PP -½ÐÎÏ¤Ï +出力は .nf util\-linux:mount: ERROR: unknown mount option TO FIX: See mount(8). util\-linux:mount:017 .fi -¤Î¤è¤¦¤Ë¤Ê¤ê¡¢ +のようになり、 .nf MSGVERB=text:action; export MSGVERB .fi -¤ò¼Â¹Ô¤·¤¿¸å¤Ç¤Ï +を実行した後では .nf unknown mount option TO FIX: See mount(8). .fi -¤È¤Ê¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +となる。 +.SH 関連項目 .BR addseverity (3), .BR perror (3) diff --git a/release/man3/fnmatch.3 b/release/man3/fnmatch.3 index 5a7bda7b..0eac0ae6 100644 --- a/release/man3/fnmatch.3 +++ b/release/man3/fnmatch.3 @@ -29,80 +29,80 @@ .\" Updated 2006-03-05, Akihiro MOTOKI, catch up to LDP v2.25 .\" .TH FNMATCH 3 2000-10-15 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -fnmatch \- ¥Õ¥¡¥¤¥ë̾¤Þ¤¿¤Ï¥Ñ¥¹Ì¾¤Ø¤Î¥Þ¥Ã¥Á¤ò¹Ô¤¦ -.SH ½ñ¼° +.SH 名前 +fnmatch \- ファイル名またはパス名へのマッチを行う +.SH 書式 .nf .B #include .sp .BI "int fnmatch(const char *" "pattern" ", const char *" string ", int " flags ); .fi -.SH ÀâÌÀ +.SH 説明 .BR fnmatch () -´Ø¿ô¤Ï +関数は .I strings -°ú¤­¿ô¤¬ +引き数が .I pattern -°ú¤­¿ô¤Ë¥Þ¥Ã¥Á¤¹¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ +引き数にマッチするかをチェックする。 .I pattern -¤Ë¤Ï¥·¥§¥ë¤Î¥ï¥¤¥ë¥É¥«¡¼¥É¥Ñ¥¿¡¼¥ó¤òÍ¿¤¨¤ë¡£ +にはシェルのワイルドカードパターンを与える。 .PP .I flags -°ú¤­¿ô¤Ë¤è¤êÆ°ºî¤òÊѹ¹¤Ç¤­¤ë¡£ +引き数により動作を変更できる。 .I flags -¤Ï°Ê²¼¤Î¥Õ¥é¥°¤Î¥Ó¥Ã¥ÈËè¤Î OR ¤Ç»ØÄꤹ¤ë¡£ +は以下のフラグのビット毎の OR で指定する。 .TP .B FNM_NOESCAPE -¤³¤Î¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å (\\) ¤ò¥¨¥¹¥±¡¼¥×ʸ»ú -¤Ç¤Ï¤Ê¤¯Ä̾ï¤Îʸ»ú¤È¤·¤Æ°·¤¦¡£ +このフラグがセットされていると、バックスラッシュ (\\) をエスケープ文字 +ではなく通常の文字として扱う。 .TP .B FNM_PATHNAME -¤³¤Î¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢ +このフラグがセットされていると、 .I string -Ãæ¤Î¥¹¥é¥Ã¥·¥å (/) ¤ò +中のスラッシュ (/) を .I pattern -¤Ë¤¢¤ë¥¹¥é¥Ã¥·¥å¤½¤Î¤â¤Î¤Ë¤À¤±¥Þ¥Ã¥Á¤µ¤»¡¢ -¥¢¥¹¥¿¥ê¥¹¥¯ (*) ¤äµ¿ÌäÉä (?) ¤Î¥á¥¿¥­¥ã¥é¥¯¥¿¤ä¡¢ -¥¹¥é¥Ã¥·¥å¤ò´Þ¤à¥Ö¥é¥±¥Ã¥Èɽ¸½ ([]) ¤Ë¤Ï¥Þ¥Ã¥Á¤µ¤»¤Ê¤¤¡£ +にあるスラッシュそのものにだけマッチさせ、 +アスタリスク (*) や疑問符 (?) のメタキャラクタや、 +スラッシュを含むブラケット表現 ([]) にはマッチさせない。 .TP .B FNM_PERIOD -¤³¤Î¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢ +このフラグがセットされていると、 .I string -¤ÎÀèƬ¥Ô¥ê¥ª¥É (leading period) ¤Ï +の先頭ピリオド (leading period) は .I pattern -Ãæ¤Î¥Ô¥ê¥ª¥É¤½¤Î¤â¤Î¤Ë¤·¤«¥Þ¥Ã¥Á¤·¤Ê¤¤¡£ÀèƬ¥Ô¥ê¥ª¥É¤È¤Ï¡¢ +中のピリオドそのものにしかマッチしない。先頭ピリオドとは、 .I string -¤ÎºÇ½é¤Îʸ»ú°ÌÃ֤ˤ¢¤ë¥Ô¥ê¥ª¥É¤Î¤³¤È¤Ç¤¢¤ë¡£¤¿¤À¤· +の最初の文字位置にあるピリオドのことである。ただし .B FNM_PATHNAME -¥Õ¥é¥°¤¬Æ±»þ¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢¥¹¥é¥Ã¥·¥å¤Îľ¸å¤Ë³¤¯¥Ô¥ê¥ª¥É -¤âÀèƬ¥Ô¥ê¥ª¥É¤È¤ß¤Ê¤µ¤ì¤ë¡£ +フラグが同時にセットされている場合には、スラッシュの直後に続くピリオド +も先頭ピリオドとみなされる。 .TP .B FNM_FILE_NAME -¤³¤ì¤Ï \fBFNM_PATHNAME\fR ¤ËÂФ¹¤ë GNU ¤Ç¤ÎƱµÁ¸ì¤Ç¤¢¤ë. +これは \fBFNM_PATHNAME\fR に対する GNU での同義語である. .TP .B FNM_LEADING_DIR -¤³¤Î¥Õ¥é¥°¤Ï GNU ¤Ç¤Î³ÈÄ¥¤Ç¤¢¤ë¡£¤³¤ì¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -¥Ñ¥¿¡¼¥ó¤¬ +このフラグは GNU での拡張である。これがセットされている場合には、 +パターンが .I string -¤ÎºÇ½é¤ÎÉôʬ (¤Ë¥¹¥é¥Ã¥·¥å¤òÉÕ¤±¤¿¤â¤Î) ¤Ë¥Þ¥Ã¥Á¤¹¤ì¤Ð¡¢ -¥Þ¥Ã¥Á¤·¤¿¤â¤Î¤È¤ß¤Ê¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï¼ç¤È¤·¤Æ glibc ¤ÇÆâÉôŪ¤Ë»ÈÍѤ·¡¢¤½¤Î¤¿¤á¤Î¤ß¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +の最初の部分 (にスラッシュを付けたもの) にマッチすれば、 +マッチしたものとみなされる。 +このフラグは主として glibc で内部的に使用し、そのためのみ実装されている。 .TP .B FNM_CASEFOLD -¤³¤Î¥Õ¥é¥°¤Ï GNU ¤Ç¤Î³ÈÄ¥¤Ç¤¢¤ë¡£¤³¤ì¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -¥Ñ¥¿¡¼¥ó¤Î¥Þ¥Ã¥Á¤ËÂçʸ»ú¾®Ê¸»ú¤¬¶èÊ̤µ¤ì¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +このフラグは GNU での拡張である。これがセットされている場合には、 +パターンのマッチに大文字小文字が区別されない。 +.SH 返り値 .I string -¤¬ +が .I pattern -¤Ë¥Þ¥Ã¥Á¤¹¤ì¤Ð 0 ¤òÊÖ¤¹¡£¥Þ¥Ã¥Á¤·¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï +にマッチすれば 0 を返す。マッチしなかった場合には .B FNM_NOMATCH -¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï¤½¤ì°Ê³°¤ÎÈó¥¼¥íÃͤòÊÖ¤¹¡£ -.SH ½àµò +を返す。エラーの場合にはそれ以外の非ゼロ値を返す。 +.SH 準拠 POSIX.2. .BR FNM_FILE_NAME ", " FNM_LEADING_DIR ", " FNM_CASEFOLD -¥Õ¥é¥°¤Ï GNU ¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +フラグは GNU の拡張である。 +.SH 関連項目 .BR sh (1), .BR glob (3), .BR scandir (3), diff --git a/release/man3/fopen.3 b/release/man3/fopen.3 index aa4a1584..e31ec5f2 100644 --- a/release/man3/fopen.3 +++ b/release/man3/fopen.3 @@ -51,16 +51,16 @@ .\" Updated 2005-10-15, Kentaro Shirakata .\" Updated 2006-07-20, Akihiro MOTOKI .\" -.\"WORD: file descriptor ¥Õ¥¡¥¤¥ëµ­½Ò»Ò -.\"WORD: file position indicator ¥Õ¥¡¥¤¥ë°ÌÃֻؼ¨»Ò -.\"WORD: indicator »Ø¼¨»Ò -.\"WORD: global variable Âç°èÊÑ¿ô -.\"WORD: cancellation points ¼è¤ê¾Ã¤·¥Ý¥¤¥ó¥È +.\"WORD: file descriptor ファイル記述子 +.\"WORD: file position indicator ファイル位置指示子 +.\"WORD: indicator 指示子 +.\"WORD: global variable 大域変数 +.\"WORD: cancellation points 取り消しポイント .\" .TH FOPEN 3 2009-02-23 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -fopen, fdopen, freopen \- ¥¹¥È¥ê¡¼¥à¤ò³«¤¯´Ø¿ô -.SH ½ñ¼° +.SH 名前 +fopen, fdopen, freopen \- ストリームを開く関数 +.SH 書式 .nf .B #include .sp @@ -72,253 +72,253 @@ fopen, fdopen, freopen \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR fdopen (): _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR fopen () -´Ø¿ô¤Ï¡¢ +関数は、 .I path -¤Ç»ØÄꤵ¤ì¤¿Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤ò³«¤­¡¢¥¹¥È¥ê¡¼¥à¤È·ë¤Ó¤Ä¤±¤ë¡£ +で指定された名前のファイルを開き、ストリームと結びつける。 .PP -°ú¿ô +引数 .I mode -¤Ï¡¢°Ê²¼¤Ë³¤¯Ê¸»ú¤Î¤Ò¤È¤Ä¤«¤é»Ï¤Þ¤ëʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë -(ÄɲäÎʸ»ú¤¬¤³¤Îʸ»ú¤Î¸å¤Ë³¤¯¤³¤È¤â¤¢¤ë): +は、以下に続く文字のひとつから始まる文字列へのポインタである +(追加の文字がこの文字の後に続くこともある): .TP .B r -¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤òÆɤ߽Ф¹¤¿¤á¤Ë³«¤¯¡£ -¥¹¥È¥ê¡¼¥à¤Ï¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤Ë°ÌÃÖ¤µ¤ì¤ë¡£ +テキストファイルを読み出すために開く。 +ストリームはファイルの先頭に位置される。 .TP .B r+ -Æɤ߽Ф·¤ª¤è¤Ó½ñ¤­¹þ¤ß¤¹¤ë¤¿¤á¤Ë³«¤¯¡£ -¥¹¥È¥ê¡¼¥à¤Ï¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤Ë°ÌÃÖ¤µ¤ì¤ë¡£ +読み出しおよび書き込みするために開く。 +ストリームはファイルの先頭に位置される。 .TP .B w -¥Õ¥¡¥¤¥ë¤ò½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë³«¤¯¡£ -¥Õ¥¡¥¤¥ë¤¬´û¤Ë¸ºß¤¹¤ë¾ì¹ç¤Ë¤ÏŤµ¥¼¥í¤ËÀÚ¤êµÍ¤á¤ë¡£ -¥Õ¥¡¥¤¥ë¤¬¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¿·¤¿¤ËºîÀ®¤¹¤ë¡£ -¥¹¥È¥ê¡¼¥à¤Ï¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤Ë°ÌÃÖ¤µ¤ì¤ë¡£ +ファイルを書き込みのために開く。 +ファイルが既に存在する場合には長さゼロに切り詰める。 +ファイルがなかった場合には新たに作成する。 +ストリームはファイルの先頭に位置される。 .TP .B w+ -Æɤ߽Ф·¤ª¤è¤Ó½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë³«¤¯¡£ -¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¿·¤¿¤ËºîÀ®¤¹¤ë¡£ -¸ºß¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤ÏŤµ¥¼¥í¤ËÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ -¥¹¥È¥ê¡¼¥à¤Ï¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤Ë°ÌÃÖ¤µ¤ì¤ë¡£ +読み出しおよび書き込みのために開く。 +ファイルが存在していない場合には新たに作成する。 +存在している場合には長さゼロに切り詰められる。 +ストリームはファイルの先頭に位置される。 .TP .B a -Äɲà (¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤Ë½ñ¤­¹þ¤à) ¤Î¤¿¤á¤Ë³«¤¯¡£ -¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¿·¤¿¤ËºîÀ®¤¹¤ë¡£ -¥¹¥È¥ê¡¼¥à¤Ï¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤Ë°ÌÃÖ¤µ¤ì¤ë¡£ +追加 (ファイルの最後に書き込む) のために開く。 +ファイルが存在していない場合には新たに作成する。 +ストリームはファイルの最後に位置される。 .TP .B a+ -Æɤ߽Ф·¤ª¤è¤ÓÄɲà (¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤Ë½ñ¤­¹þ¤à) ¤Î¤¿¤á¤Ë³«¤¯¡£ -¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¿·¤¿¤ËºîÀ®¤¹¤ë¡£ -Æɤ߽Ф·¤Î½é´ü¥Õ¥¡¥¤¥ë°ÌÃ֤ϥե¡¥¤¥ë¤ÎÀèƬ¤Ç¤¢¤ë¤¬¡¢ -½ñ¤­¹þ¤ß¤Ï¾ï¤Ë¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤ËÄɲ䵤ì¤ë¡£ +読み出しおよび追加 (ファイルの最後に書き込む) のために開く。 +ファイルが存在していない場合には新たに作成する。 +読み出しの初期ファイル位置はファイルの先頭であるが、 +書き込みは常にファイルの最後に追加される。 .PP .I mode -ʸ»úÎó¤Ë¤Ïʸ»ú \(aqb\(aq ¤òÄɲûØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¡¢ +文字列には文字 \(aqb\(aq を追加指定することができ、 .I mode -ʸ»úÎó¤ÎºÇ¸å¤Îʸ»ú¤È¤·¤Æ»ØÄꤹ¤ë¡£ -¾åµ­¤Î¤¦¤Á 2 ʸ»ú¤Î¥â¡¼¥É¤Î¾ì¹ç¤Ë¤Ï 2 ¤Ä¤Îʸ»ú¤Î´Ö¤Ë»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¤³¤ì¤Ï C89 ¤È¤Î¸ß´¹À­¤Î¤¿¤á¤À¤±¤ËÍÑ°Õ¤µ¤ì¤¿ -¤â¤Î¤Ç¤¢¤ê¡¢´Ø¿ô¤Î¼Â¹Ô¤ËÂФ·¤Æ¤Ï¤¤¤«¤Ê¤ë±Æ¶Á¤â»ý¤¿¤Ê¤¤¡£ -¤¹¤Ê¤ï¤Á¡¢Linux ¤ò´Þ¤àÁ´¤Æ¤Î POSIX ½àµò¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -¤³¤Î \(aqb\(aq ¤Ï̵»ë¤µ¤ì¤ë¡£ -(¤½¤Î¾¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤È¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤òÊÌ¡¹¤Ë°·¤¦¤â¤Î¤â¤¢¤ë¤Î¤Ç¡¢ -¤â¤·¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤ÎÆþ½ÐÎϤò¹Ô¤¤¡¢ -¤½¤Î¥×¥í¥°¥é¥à¤¬Èó UNIX ´Ä¶­¤Ø°Ü¿¢¤µ¤ì¤ë¤Èͽ¬¤¹¤ë¤Ê¤é¡¢ -\(aqb\(aq¤òÉÕ¤±¤Æ¤ª¤¯¤Î¤ÏÎɤ¤¹Í¤¨¤Ç¤¢¤ë) +文字列の最後の文字として指定する。 +上記のうち 2 文字のモードの場合には 2 つの文字の間に指定することもできる。 +これは C89 との互換性のためだけに用意された +ものであり、関数の実行に対してはいかなる影響も持たない。 +すなわち、Linux を含む全ての POSIX 準拠システムでは、 +この \(aqb\(aq は無視される。 +(その他のシステムではテキストファイルとバイナリファイルを別々に扱うものもあるので、 +もしバイナリファイルの入出力を行い、 +そのプログラムが非 UNIX 環境へ移植されると予測するなら、 +\(aqb\(aqを付けておくのは良い考えである) .PP .I mode -¤Î glibc ¤Ë¤è¤ë³ÈÄ¥¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï²¼µ­¤Î¡ÖÃí°Õ¡×¤ò»²¾È¡£ +の glibc による拡張の詳細については下記の「注意」を参照。 .PP -¤¹¤Ù¤Æ¤ÎÀ¸À®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ï¡¢ +すべての生成されたファイルは、 .BR S_IRUSR " | " S_IWUSR " | " S_IRGRP " | " S_IWGRP " | " S_IROTH " | " S_IWOTH -(0666) ¤Î¥â¡¼¥É¤ò -¤½¤Î¥×¥í¥»¥¹¤Î umask Ãͤˤè¤Ã¤Æ½¤Àµ¤·¤¿¥â¡¼¥É¤ò»ý¤Ä +(0666) のモードを +そのプロセスの umask 値によって修正したモードを持つ .RB ( umask (2) -¤ò¸«¤è)¡£ +を見よ)。 .PP -Æɤ߽Ф·/½ñ¤­¹þ¤ß¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ¤ÏǤ°Õ¤Î½ç½ø¤ÇÆɤ߽ñ¤­¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¤¿¤À¤· ANSI C ¤Ç¤Ï¡¢ -(ÆþÎÏÁàºî¤¬¥Õ¥¡¥¤¥ë¤ÎËöÈø¤ËÅþ㤷¤¿¾ì¹ç¤ò½ü¤¤¤Æ) -½ÐÎϤÈÆþÎϤδ֤ˤϥե¡¥¤¥ë¤Î°ÌÃÖ·è¤á´Ø¿ô¤ò -¶´¤Þ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤ËÃí°Õ¤µ¤ì¤¿¤¤ -(¤³¤Î¾ò·ï¤òËþ­¤·¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢Æɤ߹þ¤ßÁàºî¤Ï¡¢ -ºÇ¸å¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¤â¤Î¤Ç¤Ê¤¯¡¢°ÊÁ°¤Ë½ñ¤­¹þ¤Þ¤ì¤¿ -ÃͤòÊÖ¤¹¤³¤È¤òµö¤µ¤ì¤Æ¤¤¤ë)¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¤³¤Î¤è¤¦¤Ê¥¹¥È¥ê¡¼¥à¤Ç¤ÎÆɤ߽ñ¤­Áàºî¤Î´Ö¤Ë¤Ï +読み出し/書き込みストリームに対しては任意の順序で読み書きを行うことができる。 +ただし ANSI C では、 +(入力操作がファイルの末尾に到達した場合を除いて) +出力と入力の間にはファイルの位置決め関数を +挟まなければならないことになっていることに注意されたい +(この条件を満足しない場合には、読み込み操作は、 +最後に書き込まれたものでなく、以前に書き込まれた +値を返すことを許されている)。 +したがって、このようなストリームでの読み書き操作の間には .BR fseek (3) -¤Þ¤¿¤Ï +または .BR fgetpos (3) -Áàºî¤ò¶´¤ó¤Ç¤ª¤¯¤ÈÎɤ¤¤À¤í¤¦ -(Linux ¤Ç¤ÏËÜÅö¤ËɬÍפȤʤ뤳¤È¤â¤È¤­¤É¤­¤¢¤ë)¡£ -¤³¤ÎÁàºî¤Ï¸«¤«¤±¾å²¿¤â¤·¤Ê¤¤Áàºî (no-op) ¤Ç¤âÎɤ¤ -(Î㤨¤Ð \fIfseek(..., 0L, SEEK_CUR)\fP ¤ò -¤½¤ÎÉû¼¡Åª¸ú²Ì¤Ç¤¢¤ëƱ´ü¤Î¤¿¤á¤À¤±¤Ë¸Æ¤Ù¤ÐÎɤ¤)¡£ +操作を挟んでおくと良いだろう +(Linux では本当に必要となることもときどきある)。 +この操作は見かけ上何もしない操作 (no-op) でも良い +(例えば \fIfseek(..., 0L, SEEK_CUR)\fP を +その副次的効果である同期のためだけに呼べば良い)。 .PP -¥Õ¥¡¥¤¥ë¤òÄɲå⡼¥É +ファイルを追加モード .RI ( mode -¤ÎºÇ½é¤Îʸ»ú¤ò \fBa\fP ¤Ë¤¹¤ë) ¤Ç³«¤¯¤È¡¢ -¤³¤Î¥¹¥È¥ê¡¼¥à¤ËÂФ¹¤ë½ñ¤­¹þ¤ßÁàºî¤Ï (Àè¤Ë +の最初の文字を \fBa\fP にする) で開くと、 +このストリームに対する書き込み操作は (先に .nf fseek(stream,0,SEEK_END); .fi -¤Î¸Æ¤Ó½Ð¤·¤ò¼Â¹Ô¤·¤¿¤«¤Î¤è¤¦¤Ë) ¥Õ¥¡¥¤¥ëËöÈø¤ËÂФ·¤Æ¹Ô¤ï¤ì¤ë¡£ +の呼び出しを実行したかのように) ファイル末尾に対して行われる。 .PP .BR fdopen () -´Ø¿ô¤Ï¡¢´û¸¤Î¥Õ¥¡¥¤¥ëµ­½Ò»Ò +関数は、既存のファイル記述子 .I fd -¤Ë¥¹¥È¥ê¡¼¥à¤ò·ë¤Ó¤Ä¤±¤ë¡£ -¥¹¥È¥ê¡¼¥à¤Î +にストリームを結びつける。 +ストリームの .I mode -("r", "r+", "w", "w+", "a", "a+" ¤Î¤¤¤º¤ì¤«) ¤Ï -¥Õ¥¡¥¤¥ëµ­½Ò»Ò¤Î¥â¡¼¥É¤È¸ß´¹¤Î¤â¤Î¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¿·¤·¤¤¥¹¥È¥ê¡¼¥à¤Î¥Õ¥¡¥¤¥ë°ÌÃֻؼ¨»Ò¤Ï +("r", "r+", "w", "w+", "a", "a+" のいずれか) は +ファイル記述子のモードと互換のものでなければならない。 +新しいストリームのファイル位置指示子は .I fd -¤Ë°¤·¤Æ¤¤¤ëÃͤËÀßÄꤵ¤ì¤ë¡£ -error ¤È end-of-file ¤Î³Æ»Ø¼¨»Ò¤Ï¥¯¥ê¥¢¤µ¤ì¤ë¡£ -"w" ¤ª¤è¤Ó "w+" ¥â¡¼¥É¤Ç¤Î¥Õ¥¡¥¤¥ë¤ÎÀÚ¤êµÍ¤á¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ -¥Õ¥¡¥¤¥ëµ­½Ò»Ò¤ÎÊ£À½¤Ï¹Ô¤Ê¤ï¤ì¤Ê¤¤¡£ +に属している値に設定される。 +error と end-of-file の各指示子はクリアされる。 +"w" および "w+" モードでのファイルの切り詰めは行われない。 +ファイル記述子の複製は行なわれない。 .BR fdopen () -¤ÇºîÀ®¤µ¤ì¤¿¥¹¥È¥ê¡¼¥à¤¬ÊĤ¸¤é¤ì¤¿¤È¤­¤Ë¥Õ¥¡¥¤¥ëµ­½Ò»Ò¤â -ÊĤ¸¤é¤ì¤ë¡£ -¶¦Í­¥á¥â¥ê¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ø +で作成されたストリームが閉じられたときにファイル記述子も +閉じられる。 +共有メモリのオブジェクトへ .BR fdopen () -¤ò¹Ô¤Ã¤¿¤È¤­¤Î·ë²Ì¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +を行ったときの結果は定義されていない。 .PP .BR freopen () -´Ø¿ô¤Ï +関数は .I path -¤Ç̾Á°¤¬»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ò³«¤­¡¢ +で名前が指定されたファイルを開き、 .I stream -¤Ç»ØÄꤵ¤ì¤¿¥¹¥È¥ê¡¼¥à¤Ë¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤ò·ë¤Ó¤Ä¤±¤ë¡£ -¤â¤È¤Î¥¹¥È¥ê¡¼¥à¤Ï (¤â¤·Â¸ºß¤¹¤ë¾ì¹ç¤Ë¤Ï) ÊĤ¸¤é¤ì¤ë¡£ +で指定されたストリームに、そのファイルを結びつける。 +もとのストリームは (もし存在する場合には) 閉じられる。 .I mode -°ú¿ô¤Ï +引数は .BR fopen () -´Ø¿ô¤ÈƱ¤¸·Á¤Ç»È¤ï¤ì¤ë¡£ +関数と同じ形で使われる。 .BR freopen () -´Ø¿ô¤Î¼ç¤ÊÍÑÅӤϡ¢É¸½à¥Æ¥­¥¹¥È¥¹¥È¥ê¡¼¥à +関数の主な用途は、標準テキストストリーム .RI ( stderr ", " stdin ", " stdout ) -¤ÈÂбþÉÕ¤±¤é¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤òÊѹ¹¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +と対応付けられているファイルを変更することである。 +.SH 返り値 .BR fopen (), .BR fdopen (), .BR freopen () -¤ÏÀ®¸ù¤¹¤ë¤È +は成功すると .I FILE -·¿¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¼ºÇÔ¤¹¤ë¤È NULL ¤¬ÊÖ¤µ¤ì¡¢ +型のポインタを返す。 +失敗すると NULL が返され、 .I errno -¤¬¥¨¥é¡¼¤ò¼¨¤¹Ãͤ˥»¥Ã¥È¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +がエラーを示す値にセットされる。 +.SH エラー .TP .B EINVAL .BR fopen (), .BR fdopen (), .BR freopen () -¤ÇÍ¿¤¨¤é¤ì¤¿ +で与えられた .I mode -¤¬ÉÔŬÀڤǤ¢¤ë¡£ +が不適切である。 .PP .BR fopen (), .BR fdopen (), .BR freopen () -´Ø¿ô¤Ï +関数は .BR malloc (3) -¥ë¡¼¥Á¥ó¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ç¤â¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ê¡¢ -¤½¤Î»þ¤ÏÂбþ¤¹¤ëÃÍ¤Ë +ルーチンで規定されているエラーでも失敗することがあり、 +その時は対応する値に .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ +をセットする。 .PP .BR fopen () -´Ø¿ô¤Ï +関数は .BR open (2) -¥ë¡¼¥Á¥ó¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ç¤â¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ê¡¢ -¤½¤Î»þ¤ÏÂбþ¤¹¤ëÃÍ¤Ë +ルーチンで規定されているエラーでも失敗することがあり、 +その時は対応する値に .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ +をセットする。 .PP .BR fdopen () -´Ø¿ô¤Ï +関数は .BR fcntl (2) -¥ë¡¼¥Á¥ó¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ç¤â¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ê¡¢ -¤½¤Î»þ¤ÏÂбþ¤¹¤ëÃÍ¤Ë +ルーチンで規定されているエラーでも失敗することがあり、 +その時は対応する値に .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ +をセットする。 .PP .BR freopen () -´Ø¿ô¤Ï +関数は .BR open (2), .BR fclose (3), .BR fflush (3) -³Æ¥ë¡¼¥Á¥ó¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ç¤â¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ê¡¢ -¤½¤Î»þ¤ÏÂбþ¤¹¤ëÃÍ¤Ë +各ルーチンで規定されているエラーでも失敗することがあり、 +その時は対応する値に .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ -.SH ½àµò +をセットする。 +.SH 準拠 .BR fopen () -´Ø¿ô¤È +関数と .BR freopen () -´Ø¿ô¤Ï C89¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +関数は C89に準拠している。 .BR fdopen () -´Ø¿ô¤Ï POSIX.1-1990 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -.SS glibc ¤Ç¤ÎÃí°Õ -GNU C ¥é¥¤¥Ö¥é¥ê¤Ç¤Ï¡¢ +関数は POSIX.1-1990 に準拠している。 +.SH 注意 +.SS glibc での注意 +GNU C ライブラリでは、 .I mode -¤Ë»ØÄê¤Ç¤­¤ëʸ»úÎó¤È¤·¤Æ¡¢°Ê²¼¤Î³ÈÄ¥¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë: +に指定できる文字列として、以下の拡張が行われている: .TP -.BR c " (glibc 2.3.3 °Ê¹ß)" -open Áàºî¡¢¤½¤ì¤Ë³¤¯ read/write Áàºî¤Î¡¢ -¥¹¥ì¥Ã¥É¤Î¼è¤ê¾Ã¤·¥Ý¥¤¥ó¥È (cancellation points) -¤òºîÀ®¤·¤Ê¤¤¡£ +.BR c " (glibc 2.3.3 以降)" +open 操作、それに続く read/write 操作の、 +スレッドの取り消しポイント (cancellation points) +を作成しない。 .TP -.BR e " (glibc 2.7 °Ê¹ß)" +.BR e " (glibc 2.7 以降)" .B O_CLOEXEC -¥Õ¥é¥°¤òÍ­¸ú¤Ë¤·¤Æ¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£ -¾ÜºÙ¤Ï +フラグを有効にしてファイルをオープンする。 +詳細は .BR open (2) -¤ò»²¾È¡£ +を参照。 .TP -.BR m " (glibc 2.3 °Ê¹ß)" -I/O ¥·¥¹¥Æ¥à¥³¡¼¥ë +.BR m " (glibc 2.3 以降)" +I/O システムコール .RB ( read (2), .BR write (2)) -¤Ç¤Ï¤Ê¤¯¡¢ +ではなく、 .BR mmap (2) -¤ò»È¤Ã¤Æ¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤·¤è¤¦¤È¤¹¤ë¡£ -.\" glibc 2.4 ¤Ç¤Ï +を使ってファイルにアクセスしようとする。 +.\" glibc 2.4 では .BR mmap (2) -¤ò»È¤ª¤¦¤È¤¹¤ë¤Î¤Ï¡¢Æɤ߽Ф·ÍѤ˥ª¡¼¥×¥ó¤¹¤ë¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¤À¤±¤Ç¤¢¤ë¡£ +を使おうとするのは、読み出し用にオープンするファイルについてだけである。 .TP .B x -¥Õ¥¡¥¤¥ë¤òÇÓ¾Ū¤Ë¥ª¡¼¥×¥ó¤¹¤ë +ファイルを排他的にオープンする .RB ( open (2) -¤Î +の .B O_EXCL -¥Õ¥é¥°¤ÈƱÍÍ)¡£ -¥Õ¥¡¥¤¥ë¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢ +フラグと同様)。 +ファイルがすでに存在する場合、 .BR fopen () -¤Ï¼ºÇÔ¤·¡¢ +は失敗し、 .I errno -¤Ë +に .B EEXIST -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï +がセットされる。 +このフラグは .BR fdopen () -¤Ç¤Ï̵»ë¤µ¤ì¤ë¡£ +では無視される。 .\" FIXME document /,ccs= charset/ -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR open (2), .BR fclose (3), .BR fileno (3), diff --git a/release/man3/fpathconf.3 b/release/man3/fpathconf.3 index d488d6e2..a3255e76 100644 --- a/release/man3/fpathconf.3 +++ b/release/man3/fpathconf.3 @@ -26,9 +26,9 @@ .\" Translated Fri Mar 20 1998 by NAKANO Takeo .\" .TH FPATHCONF 3 1993-04-04 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -fpathconf, pathconf \- ¥Õ¥¡¥¤¥ë¤ÎÀßÄêÃͤò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +fpathconf, pathconf \- ファイルの設定値を取得する +.SH 書式 .nf .B #include .sp @@ -36,139 +36,139 @@ fpathconf, pathconf \- .br .BI "long pathconf(char *" path ", int " name ); .fi -.SH ÀâÌÀ +.SH 説明 .BR fpathconf () -¤Ï¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¡¼ +はオープンされているファイルデスクリプター .I fd -¤ËÂФ·¤ÆÀßÄꤵ¤ì¤Æ¤¤¤ë¥ª¥×¥·¥ç¥ó +に対して設定されているオプション .I name -¤ÎÃͤò¼èÆÀ¤¹¤ë¡£ +の値を取得する。 .PP .BR pathconf () -¤Ï¥Õ¥¡¥¤¥ë̾ +はファイル名 .I path -¤ËÂФ·¤ÆÀßÄꤵ¤ì¤Æ¤¤¤ë¥ª¥×¥·¥ç¥ó +に対して設定されているオプション .I name -¤ÎÃͤò¼èÆÀ¤¹¤ë¡£ +の値を取得する。 .PP -Âбþ¤¹¤ë¥Þ¥¯¥í¤Î¤¦¤Á +対応するマクロのうち .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤ÏºÇ¾®ÃͤǤ¢¤ë¡£¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤è¤Ã¤Æ¤Ï¤³¤ì¤é¤Î -ÃͤòÊѹ¹¤·¤Æ¤è¤êÍ­Íø¤ÊÆ°ºî¤ò¹Ô¤ª¤¦¤È¤¹¤ë¤â¤Î¤¬¤¢¤ë¡£¤³¤Î¾ì¹ç¤Ç¤â +で定義されているものは最小値である。アプリケーションによってはこれらの +値を変更してより有利な動作を行おうとするものがある。この場合でも .BR fpathconf () -¤Þ¤¿¤Ï +または .BR pathconf () -¤Ï¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤Î¾ì¹ç¤Ï¤è¤êÂ礭¤ÊÃͤ¬Ê֤뤳¤È¤Ë¤Ê¤í¤¦¡£ +は呼び出すことができる。この場合はより大きな値が返ることになろう。 .PP .I name -¤ò°Ê²¼¤ÎÄê¿ô¤Î¤É¤ì¤«¤Ë¤¹¤ë¤È¡¢Âбþ¤¹¤ëÀßÄꥪ¥×¥·¥ç¥ó¤¬ÊÖ¤µ¤ì¤ë¡£ +を以下の定数のどれかにすると、対応する設定オプションが返される。 .TP .B _PC_LINK_MAX -¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯¤ÎºÇÂç¿ô¤òÊÖ¤¹¡£ +ファイルへのリンクの最大数を返す。 .I fd -¤Þ¤¿¤Ï +または .I path -¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Î¾ì¹ç¤Ï¡¢¤³¤ÎÃͤϥǥ£¥ì¥¯¥È¥êÁ´ÂΤËŬÍѤµ¤ì¤ë¡£Âбþ¤¹¤ë -¥Þ¥¯¥í¤Ï +がディレクトリの場合は、この値はディレクトリ全体に適用される。対応する +マクロは .B _POSIX_LINK_MAX -¤Ç¤¢¤ë¡£ +である。 .TP .B _PC_MAX_CANON -¥Õ¥©¡¼¥Þ¥Ã¥ÈÉÕ¤­ÆþÎϹԤκÇÂçŤòÊÖ¤¹¡£¤³¤Î¤È¤­ +フォーマット付き入力行の最大長を返す。このとき .I fd -¤Þ¤¿¤Ï +または .I path -¤ÏüËö¤ò»²¾È¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Âбþ¤¹¤ë¥Þ¥¯¥í¤Ï +は端末を参照していなければならない。 +対応するマクロは .B _POSIX_MAX_CANON -¤Ç¤¢¤ë¡£ +である。 .TP .B _PC_MAX_INPUT -ÆþÎϹԤκÇÂçŤòÊÖ¤¹¡£¤³¤Î¤È¤­ +入力行の最大長を返す。このとき .I fd -¤Þ¤¿¤Ï +または .I path -¤ÏüËö¤ò»²¾È¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Âбþ¤¹¤ë¥Þ¥¯¥í¤Ï +は端末を参照していなければならない。 +対応するマクロは .B _POSIX_MAX_INPUT -¤Ç¤¢¤ë¡£ +である。 .TP .B _PC_NAME_MAX -¥Ç¥£¥ì¥¯¥È¥ê +ディレクトリ .I path -¤Þ¤¿¤Ï +または .I fd -Æâ¤Ë¡¢¤½¤Î¥×¥í¥»¥¹¤¬ºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¥Õ¥¡¥¤¥ë̾¤ÎºÇÂçŤòÊÖ¤¹¡£ -Âбþ¤¹¤ë¥Þ¥¯¥í¤Ï +内に、そのプロセスが作成することができるファイル名の最大長を返す。 +対応するマクロは .B _POSIX_NAME_MAX -¤Ç¤¢¤ë¡£ +である。 .TP .B _PC_PATH_MAX .I path -¤Þ¤¿¤Ï +または .I fd -¤¬¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Î¾ì¹ç¡¢ÁêÂХѥ¹Ì¾¤ÎºÇÂçŤòÊÖ¤¹¡£ -Âбþ¤¹¤ë¥Þ¥¯¥í¤Ï +がカレントディレクトリの場合、相対パス名の最大長を返す。 +対応するマクロは .B _POSIX_PATH_MAX -¤Ç¤¢¤ë¡£ +である。 .TP .B _PC_PIPE_BUF -¥Ñ¥¤¥× (pipe) ¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤òÊÖ¤¹¡£¤³¤Î¤È¤­ +パイプ (pipe) バッファのサイズを返す。このとき .I fd -¤Ï¥Ñ¥¤¥×¤« FIFO ¤ò»²¾È¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ +はパイプか FIFO を参照していなければならず、 .I path -¤Ï FIFO ¤ò»²¾È¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Âбþ¤¹¤ë¥Þ¥¯¥í¤Ï +は FIFO を参照していなければならない。 +対応するマクロは .B _POSIX_PIPE_BUF -¤Ç¤¢¤ë¡£ +である。 .TP .B _PC_CHOWN_RESTRICTED -¤³¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë +このファイルに対する .BR chown (2) -¤Î¸Æ¤Ó½Ð¤·¤¬µö¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï 0 °Ê³°¤ÎÃͤòÊÖ¤¹¡£ +の呼び出しが許されていない場合には 0 以外の値を返す。 .I fd -¤Þ¤¿¤Ï +または .I path -¤¬¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤³¤ÎÀ©¸Â¤Ï¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¤¹¤Ù¤Æ -¤Î¥Õ¥¡¥¤¥ë¤ËŬÍѤµ¤ì¤ë¡£ -Âбþ¤¹¤ë¥Þ¥¯¥í¤Ï +がディレクトリを参照している場合は、この制限はそのディレクトリのすべて +のファイルに適用される。 +対応するマクロは .B _POSIX_CHOWN_RESTRICTED -¤Ç¤¢¤ë¡£ +である。 .TP .B _PC_NO_TRUNC -¥¢¥¯¥»¥¹Ãæ¤Î¥Õ¥¡¥¤¥ë̾¤¬ +アクセス中のファイル名が .B _POSIX_NAME_MAX -¤è¤ê¤âŤ¯¡¢¥¨¥é¡¼¤È¤Ê¤ë¾ì¹ç¤Ë¤Ï 0 °Ê³°¤ÎÃͤòÊÖ¤¹¡£ -Âбþ¤¹¤ë¥Þ¥¯¥í¤Ï +よりも長く、エラーとなる場合には 0 以外の値を返す。 +対応するマクロは .B _POSIX_NAME_MAX -¤Ç¤¢¤ë¡£ +である。 .TP .B _PC_VDISABLE -Æüìʸ»ú (special character) ¤Î½èÍý¤¬µö¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï 0 °Ê³°¤ÎÃͤò -ÊÖ¤¹¡£¤³¤Î¤È¤­ +特殊文字 (special character) の処理が許されていない場合は 0 以外の値を +返す。このとき .I fd -¤Þ¤¿¤Ï +または .I path -¤ÏüËö¤ò»²¾È¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -(¸ºß¤·¤Æ¤¤¤ì¤Ð) À©¸ÂÃͤ¬ÊÖ¤µ¤ì¤ë¡£Í׵ᤵ¤ì¤¿¥ê¥½¡¼¥¹¤Ø¤Î¥·¥¹¥Æ¥à¤ÎÀ© -¸Â¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤Ð \-1 ¤¬ÊÖ¤µ¤ì¡¢ +は端末を参照していなければならない。 +.SH 返り値 +(存在していれば) 制限値が返される。要求されたリソースへのシステムの制 +限が存在していなければ \-1 が返され、 .I errno -¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Ë¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +は変更されない。エラーが起こった場合には \-1 が返され、 .I errno -¤¬¥¨¥é¡¼¤ËÂбþ¤·¤¿ÃͤËÀßÄꤵ¤ì¤ë¡£ -.SH ½àµò +がエラーに対応した値に設定される。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .I name -¤Ë +に .B _PC_NAME_MAX -¤òÆþ¤ì¤ÆÊÖ¤µ¤ì¤¿Ãͤè¤ê¤âŤ¤¥Õ¥¡¥¤¥ë̾¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤¬¡¢Í¿¤¨¤é¤ì¤¿¥Ç¥£ -¥ì¥¯¥È¥ê¤Ë¸ºß¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +を入れて返された値よりも長いファイル名を持つファイルが、与えられたディ +レクトリに存在するかもしれない。 .PP -ÊÖ¤êÃͤÏÈó¾ï¤ËÂ礭¤ÊÃͤˤʤ뤳¤È¤â¤¢¤ë¡£¥á¥â¥ê¡¼¤Î³ä¤êÅö¤ÆÍѤÎÃͤˤÏÂç -¤­¤¹¤®¤ÆŬ¤µ¤Ê¤¤¤«¤âÃΤì¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +返り値は非常に大きな値になることもある。メモリーの割り当て用の値には大 +きすぎて適さないかも知れない。 +.SH 関連項目 .BR getconf (1), .BR open (2), .BR statfs (2), diff --git a/release/man3/fpclassify.3 b/release/man3/fpclassify.3 index a82297ad..52cb68fb 100644 --- a/release/man3/fpclassify.3 +++ b/release/man3/fpclassify.3 @@ -12,9 +12,9 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH FPCLASSIFY 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -fpclassify, isfinite, isnormal, isnan, isinf \- ÉâÆ°¾®¿ôÅÀ¿ô¤ÎʬÎà¥Þ¥¯¥í -.SH ½ñ¼° +.SH 名前 +fpclassify, isfinite, isnormal, isnan, isinf \- 浮動小数点数の分類マクロ +.SH 書式 .nf .B #include .sp @@ -29,12 +29,12 @@ fpclassify, isfinite, isnormal, isnan, isinf \- .BI "int isinf(" x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .\" I haven't fully grokked the source to determine the FTM requirements; @@ -67,70 +67,70 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ -ÉâÆ°¾®¿ôÅÀ¿ô¤Ï̵¸ÂÂç¤ä NaN ¤Î¤è¤¦¤ÊÆÃÊ̤ÊÃͤò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ -¥Þ¥¯¥í +.SH 説明 +浮動小数点数は無限大や NaN のような特別な値を持つことができる。 +マクロ .BI fpclassify( x ) -¤Ç +で .I x -¤¬¤É¤Î¤è¤¦¤Ê¼ïÊ̤«¤òÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ -¥Þ¥¯¥í¤ÏǤ°Õ¤ÎÉâÆ°¾®¿ôÅÀ¿ôɽ¸½¤ò°ú¤­¿ô¤È¤·¤Æ¤È¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -·ë²Ì¤Ï°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«°ì¤Ä¤Ç¤¢¤ë: +がどのような種別かを知ることができる。 +マクロは任意の浮動小数点数表現を引き数としてとることができる。 +結果は以下の値のいずれか一つである: .TP 14 .B FP_NAN .I x -¤¬ "Not a Number" ¤Ç¤¢¤ë (¿ôÃͤǤϤʤ¤)¡£ +が "Not a Number" である (数値ではない)。 .TP .B FP_INFINITE .I x -¤¬Àµ¤Î̵¸ÂÂç¤Þ¤¿¤ÏÉé¤Î̵¸ÂÂç¤Ç¤¢¤ë¡£ +が正の無限大または負の無限大である。 .TP .B FP_ZERO .I x -¤¬ 0 ¤Ç¤¢¤ë¡£ +が 0 である。 .TP .B FP_SUBNORMAL .I x -¤òÀµµ¬²½·Á¼°¤Çɽ¸½¤¹¤ë¤Ë¤Ï¾®¤µ¤¹¤®¤ë¡£ +を正規化形式で表現するには小さすぎる。 .TP .B FP_NORMAL -¾åµ­¤Î¤É¤ì¤Ë¤âÅö¤Æ¤Ï¤Þ¤é¤Ê¤¤¾ì¹ç¤Ç¤¢¤ê¡¢ -ÃͤÏÄ̾ï¤ÎÉâÆ°¾®¿ôÅÀ¿ô¤Ç¤¢¤ë¤Ï¤º¤À¡£ +上記のどれにも当てはまらない場合であり、 +値は通常の浮動小数点数であるはずだ。 .LP -¾¤Î¥Þ¥¯¥í¤Ï¡¢¤¤¤¯¤Ä¤«¤Îɸ½àŪ¤ÊÌ䤤¤ËÂФ·¤Æ¡¢´Êñ¤ÊÅú¤¨¤òÄ󶡤¹¤ë¡£ +他のマクロは、いくつかの標準的な問いに対して、簡単な答えを提供する。 .TP 14 .BI isfinite( x ) (fpclassify(x) != FP_NAN && fpclassify(x) != FP_INFINITE) -¤Î¾ì¹ç¤Ë 0 °Ê³°¤ÎÃͤòÊÖ¤¹¡£ +の場合に 0 以外の値を返す。 .TP .BI isnormal( x ) (fpclassify(x) == FP_NORMAL) -¤Î¾ì¹ç¤Ë 0 °Ê³°¤ÎÃͤòÊÖ¤¹¡£ +の場合に 0 以外の値を返す。 .TP .BI isnan( x ) (fpclassify(x) == FP_NAN) -¤Î¾ì¹ç¤Ë 0 °Ê³°¤ÎÃͤòÊÖ¤¹¡£ +の場合に 0 以外の値を返す。 .TP .BI isinf( x ) .I x -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¤Ï 1 ¤ò¡¢ -Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ -.SH ½àµò +が正の無限大の場合は 1 を、 +負の無限大の場合は \-1 を返す。 +.SH 準拠 C99, POSIX.1. .BR isinf () -¤Ë´Ø¤·¤Æ¡¢É¸½àµ¬³Ê¤ÇÄê¤á¤é¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢ -ÊÖ¤êÃͤ¬ 0 °Ê³°¤Ë¤Ê¤ë¤Î¤Ï°ú¤­¿ô¤¬Ìµ¸ÂÂç¤Î¾ì¹ç¤À¤±¤È¤¤¤¦¤³¤È¤À¤±¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -glibc 2.01 °ÊÁ°¤Ç¤Ï¡¢ +に関して、標準規格で定められているのは、 +返り値が 0 以外になるのは引き数が無限大の場合だけということだけである。 +.SH 注意 +glibc 2.01 以前では、 .BR isinf () -¤Ï +は .I x -¤¬Àµ¤Î̵¸ÂÂ礫Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ -0 °Ê³°¤ÎÃÍ (¼ÂºÝ¤Ë¤Ï 1) ¤òÊÖ¤¹ -(C99 ¤ÎÍ×µá»ÅÍͤǷè¤Þ¤Ã¤Æ¤¤¤ë¤Î¤Ï -0 °Ê³°¤ÎÃͤòÊÖ¤¹¤È¤¤¤¦¤³¤È¤À¤±¤Ç¤¢¤ë)¡£ -.SH ´ØÏ¢¹àÌÜ +が正の無限大か負の無限大の場合、 +0 以外の値 (実際には 1) を返す +(C99 の要求仕様で決まっているのは +0 以外の値を返すということだけである)。 +.SH 関連項目 .BR finite (3), .BR INFINITY (3), .BR isgreater (3), diff --git a/release/man3/fpurge.3 b/release/man3/fpurge.3 index 4f886a09..69385acf 100644 --- a/release/man3/fpurge.3 +++ b/release/man3/fpurge.3 @@ -24,9 +24,9 @@ .\" Translated Sat 12 Jan 2002 by NAKANO Takeo .\" .TH FPURGE 3 2001-12-15 "" "Linux Programmer's Manual" -.SH ̾Á° -fpurge, __fpurge \- ¥¹¥È¥ê¡¼¥à¤ò°ìÁÝ (purge) ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +fpurge, __fpurge \- ストリームを一掃 (purge) する +.SH 書式 .nf /* unsupported */ .B #include @@ -40,43 +40,43 @@ fpurge, __fpurge \- .sp .BI "void __fpurge(FILE *" stream ); .fi -.SH ÀâÌÀ +.SH 説明 .BR fpurge () -´Ø¿ô¤Ï¡¢Í¿¤¨¤é¤ì¤¿¥¹¥È¥ê¡¼¥à¤Î¥Ð¥Ã¥Õ¥¡¤ò¥¯¥ê¥¢¤¹¤ë¡£ -½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Ç¤³¤ì¤ò¹Ô¤¦¤È¡¢½ñ¤­½Ð¤µ¤ì¤Æ¤¤¤Ê¤¤½ÐÎϤϼΤƤé¤ì¤ë¡£ -ÆþÎÏ¥¹¥È¥ê¡¼¥à¤Ç¤³¤ì¤ò¹Ô¤¦¤È¡¢ -²¼Áؤˤ¢¤ë¥ª¥Ö¥¸¥§¥¯¥È¤«¤éÆɤ߹þ¤Þ¤ì +関数は、与えられたストリームのバッファをクリアする。 +出力ストリームでこれを行うと、書き出されていない出力は捨てられる。 +入力ストリームでこれを行うと、 +下層にあるオブジェクトから読み込まれ .BR getc (3) -¤Ë¤è¤ë¼èÆÀ¤òÂԤäƤ¤¤ëÆþÎϤ¬¡¢¤¹¤Ù¤Æ¼Î¤Æ¤é¤ì¤ë¡£ -¤³¤ì¤Ë¤Ï +による取得を待っている入力が、すべて捨てられる。 +これには .BR ungetc (3) -¤Ë¤è¤Ã¤ÆÌᤵ¤ì¤¿¥Æ¥­¥¹¥È¤â´Þ¤Þ¤ì¤ë¡£ +によって戻されたテキストも含まれる。 .BR fflush (3) -¤â»²¾È¤Î¤³¤È¡£ +も参照のこと。 .LP .BR __fpurge () -´Ø¿ô¤âÁ´¤¯Æ±¤¸¤³¤È¤ò¹Ô¤¦¤¬¡¢¤¿¤À¤·ÊÖ¤êÃͤòÊÖ¤µ¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È +関数も全く同じことを行うが、ただし返り値を返さない。 +.SH 返り値 +成功すると .BR fpurge () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬µ¯¤³¤ë¤È \-1 ¤òÊÖ¤·¡¢ +は 0 を返す。 +エラーが起こると \-1 を返し、 .I errno -¤òŬÀÚ¤ÊÃͤËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切な値に設定する。 +.SH エラー .TP .B EBADF .I stream -¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ½àµò -¤³¤ì¤é¤Î´Ø¿ô¤Ïɸ½à¤Ç¤Ï¤Ê¤¯¡¢¤è¤Ã¤Æ°Ü¿¢À­¤â¤Ê¤¤¡£ +がオープンされていない。 +.SH 準拠 +これらの関数は標準ではなく、よって移植性もない。 .BR fpurge () -´Ø¿ô¤Ï 4.4BSD ¤ÇƳÆþ¤µ¤ì¤¿¤¬¡¢Linux ¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤¡£ +関数は 4.4BSD で導入されたが、Linux では利用できない。 .BR __fpurge () -´Ø¿ô¤Ï Solaris ¤ÇƳÆþ¤µ¤ì¡¢glibc 2.1.95 °Ê¹ß¤Ë¤Ï¸ºß¤·¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -Ä̾ï¤ÏÆþÎϥХåե¡¤ò¼Î¤Æ¤è¤¦¤È¤¹¤ë¤Î¤Ï´Ö°ã¤Ã¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +関数は Solaris で導入され、glibc 2.1.95 以降には存在している。 +.SH 注意 +通常は入力バッファを捨てようとするのは間違っている。 +.SH 関連項目 .\" .BR fclean (3), .BR fflush (3), .BR setbuf (3), diff --git a/release/man3/fputwc.3 b/release/man3/fputwc.3 index 6ed6f7b6..6aa95ab1 100644 --- a/release/man3/fputwc.3 +++ b/release/man3/fputwc.3 @@ -18,9 +18,9 @@ .\" Updated Fri Nov 2 JST 2001 by Kentaro Shirakata .\" .TH FPUTWC 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -fputwc, putwc \- ¥ï¥¤¥Éʸ»ú¤ò FILE ¥¹¥È¥ê¡¼¥à¤Ë½ñ¤­¹þ¤à -.SH ½ñ¼° +.SH 名前 +fputwc, putwc \- ワイド文字を FILE ストリームに書き込む +.SH 書式 .nf .B #include .br @@ -29,56 +29,56 @@ fputwc, putwc \- .BI "wint_t fputwc(wchar_t " wc ", FILE *" stream ); .BI "wint_t putwc(wchar_t " wc ", FILE *" stream ); .fi -.SH ÀâÌÀ +.SH 説明 .BR fputwc () -´Ø¿ô¤Ï¡¢ +関数は、 .BR fputc (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£¤³¤Î -´Ø¿ô¤Ï¡¢¥ï¥¤¥Éʸ»ú \fIwc\fP ¤ò \fIstream\fP ¤Ë½ñ¤­¹þ¤à¡£ -\fIferror(stream)\fP ¤¬¿¿¤Ë¤Ê¤ë¤È¡¢¤³¤Î´Ø¿ô¤Ï +に対応するワイド文字関数である。この +関数は、ワイド文字 \fIwc\fP を \fIstream\fP に書き込む。 +\fIferror(stream)\fP が真になると、この関数は .B WEOF -¤òÊÖ¤¹¡£ -¥ï¥¤¥Éʸ»úÊÑ´¹¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï¡¢ -\fIerrno\fP ¤Ë \fBEILSEQ\fP ¤ò¥»¥Ã¥È¤·¡¢ +を返す。 +ワイド文字変換でエラーが発生した場合は、 +\fIerrno\fP に \fBEILSEQ\fP をセットし、 .B WEOF -¤òÊÖ¤¹¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ç¤Ï¡¢¤³¤Î´Ø¿ô¤Ï \fIwc\fP ¤òÊÖ¤¹¡£ +を返す。 +それ以外の場合では、この関数は \fIwc\fP を返す。 .PP .BR putwc () -´Ø¿ô¤¢¤ë¤¤¤Ï¥Þ¥¯¥í¤Ï¡¢ +関数あるいはマクロは、 .BR fputwc () -¤ÈÁ´¤¯Æ±¤¸Æ°ºî¤ò¤¹¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¥Þ¥¯¥í¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¤Î¤Ç¡¢°ú¤­¿ô¤¬Ê£¿ô²óɾ²Á¤µ -¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£¤³¤Î´Ø¿ô¤ò»È¤¦Íýͳ¤Ï¤â¤Ï¤ä¸ºß¤·¤Ê¤¤¡£ +と全く同じ動作をする。 +この関数はマクロとして実装されるかもしれないので、引き数が複数回評価さ +れるかもしれない。この関数を使う理由はもはや存在しない。 .PP -¤³¤ì¤é¤Î½èÍý¤òÄä»ß¤»¤º¤Ë¹Ô¤¤¤¿¤¤¤È¤­¤Ï¡¢ +これらの処理を停止せずに行いたいときは、 .BR unlocked_stdio (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ +を参照のこと。 +.SH 返り値 .BR fputwc () -´Ø¿ô¤Ï¡¢¥¨¥é¡¼¤¬µ¯¤­¤Ê¤±¤ì¤Ð \fIwc\fP ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï +関数は、エラーが起きなければ \fIwc\fP を返す。エラーの場合には .B WEOF -¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -ÉáÄ̤Τâ¤Î¤Î¾¤Ë¡¢°Ê²¼¤Î¤â¤Î¤¬¤¢¤ë¡£ +を返す。 +.SH エラー +普通のものの他に、以下のものがある。 .TP .B EILSEQ -\fIwc\fP ¤«¤é¥¹¥È¥ê¡¼¥à¤ÎÉä¹æ¤Ø¤ÎÊÑ´¹¤Ë¼ºÇÔ¤·¤¿¡£ -.SH ½àµò +\fIwc\fP からストリームの符号への変換に失敗した。 +.SH 準拠 C99, POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .BR fputwc () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .PP .BR fopen (3) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÅϤ¹ÄɲþðÊ󤬤ʤ¤¾ì¹ç¤Ë¤Ï¡¢ +システムコールに渡す追加情報がない場合には、 .BR fputwc () -¤Ï -¼ÂºÝ¤Ë¤Ï¥ï¥¤¥Éʸ»ú \fIwc\fP ¤ËÂбþ¤¹¤ë¥Þ¥ë¥Á¥Ð¥¤¥È¥·¡¼¥±¥ó¥¹¤ò½ñ¤­¹þ¤à¤È -´üÂÔ¤·¤Æ¤è¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +は +実際にはワイド文字 \fIwc\fP に対応するマルチバイトシーケンスを書き込むと +期待してよい。 +.SH 関連項目 .BR fgetwc (3), .BR fputws (3), .BR unlocked_stdio (3) diff --git a/release/man3/fputws.3 b/release/man3/fputws.3 index 4a79b14b..2a7ebc7a 100644 --- a/release/man3/fputws.3 +++ b/release/man3/fputws.3 @@ -17,44 +17,44 @@ .\" Updated Fri Nov 2 JST 2001 by Kentaro Shirakata .\" .TH FPUTWS 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -fputws \- ¥ï¥¤¥Éʸ»ú¤Îʸ»úÎó¤ò FILE ¥¹¥È¥ê¡¼¥à¤Ë½ñ¤­¹þ¤à -.SH ½ñ¼° +.SH 名前 +fputws \- ワイド文字の文字列を FILE ストリームに書き込む +.SH 書式 .nf .B #include .sp .BI "int fputws(const wchar_t *" ws ", FILE *" stream ); .fi -.SH ÀâÌÀ +.SH 説明 .BR fputws () -´Ø¿ô¤Ï¡¢ +関数は、 .BR fputs (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIws\fP ¤«¤é»Ï¤Þ¤ë¥ï¥¤¥Éʸ»úÎó¤ò½ªÃ¼¤Î L'\\0' -¤Þ¤Ç \fIstream\fP ¤Ë½ñ¤­½Ð¤¹¡£¤¿¤À¤·½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú -(L\(aq\\0\(aq) ¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ +に対応するワイド文字関数である。 +この関数は、\fIws\fP から始まるワイド文字列を終端の L'\\0' +まで \fIstream\fP に書き出す。ただし終端の NULL ワイド文字 +(L\(aq\\0\(aq) は含まれない。 .PP -¤³¤ì¤é¤Î½èÍý¤òÄä»ß¤»¤º¤Ë¹Ô¤¤¤¿¤¤¤È¤­¤Ï¡¢ +これらの処理を停止せずに行いたいときは、 .BR unlocked_stdio (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ +を参照のこと。 +.SH 返り値 .BR fputws () -¤Ï¡¢Áàºî¤¬À®¸ù¤·¤¿»þ¤Ë¤ÏÉé¤Ç¤Ê¤¤À°¿ôÃͤòÊÖ¤¹¡£¥¨¥é¡¼¤Î»þ -¤Ë¤Ï \-1 ¤òÊÖ¤¹¡£ -.SH ½àµò +は、操作が成功した時には負でない整数値を返す。エラーの時 +には \-1 を返す。 +.SH 準拠 C99, POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .BR fputws () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .PP .BR fopen (3) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÅϤ¹ÄɲþðÊ󤬤ʤ¤¾ì¹ç¤Ë¤Ï¡¢ +システムコールに渡す追加情報がない場合には、 .BR fputws () -¤¬¼ÂºÝ -¤Ë¤Ï¥ï¥¤¥Éʸ»ú¤Îʸ»úÎó¤Ç¤¢¤ë \fIws\fP ¤ËÂбþ¤¹¤ë¥Þ¥ë¥Á¥Ð¥¤¥È¥·¡¼¥±¥ó¥¹ -¤ò½ñ¤­¹þ¤à¤È´üÂÔ¤¹¤ë¤³¤È¤ÏŬÀڤǤ¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +が実際 +にはワイド文字の文字列である \fIws\fP に対応するマルチバイトシーケンス +を書き込むと期待することは適切である。 +.SH 関連項目 .BR fputwc (3), .BR unlocked_stdio (3) diff --git a/release/man3/fread.3 b/release/man3/fread.3 index 107c2827..0bc60b53 100644 --- a/release/man3/fread.3 +++ b/release/man3/fread.3 @@ -49,9 +49,9 @@ .\" Updated Sat Nov 3 JST 2001 by Kentaro Shirakata .\" .TH FREAD 3 1996-05-17 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -fread, fwrite \- ¥Ð¥¤¥Ê¥ê¥¹¥È¥ê¡¼¥à¤ÎÆþ½ÐÎÏ -.SH ½ñ¼° +.SH 名前 +fread, fwrite \- バイナリストリームの入出力 +.SH 書式 .nf .B #include .sp @@ -61,53 +61,53 @@ fread, fwrite \- .BI "size_t fwrite(const void *" ptr ", size_t " size ", size_t " nmemb , .BI " FILE *" stream ); .fi -.SH ÀâÌÀ +.SH 説明 .BR fread () -´Ø¿ô¤Ï +関数は .I stream -¥Ý¥¤¥ó¥¿¤Ç»ØÄꤵ¤ì¤¿¥¹¥È¥ê¡¼¥à¤«¤é +ポインタで指定されたストリームから .I nmemb -¸Ä¤Î¥Ç¡¼¥¿¤òÆɤ߹þ¤ß¡¢ +個のデータを読み込み、 .I ptr -¤ÇÍ¿¤¨¤é¤ì¤¿¾ì½ê¤Ë³ÊǼ¤¹¤ë¡£ -¸Ä¡¹¤Î¥Ç¡¼¥¿¤Ï +で与えられた場所に格納する。 +個々のデータは .I size -¥Ð¥¤¥È¤ÎŤµ¤ò»ý¤Ä¡£ +バイトの長さを持つ。 .PP .BR fwrite () -´Ø¿ô¤Ï +関数は .I ptr -¤Ç»ØÄꤵ¤ì¤¿¾ì½ê¤«¤éÆÀ¤¿ +で指定された場所から得た .I nmemb -¸Ä¤Î¥Ç¡¼¥¿¤ò¡¢ +個のデータを、 .I stream -¥Ý¥¤¥ó¥¿¤Ç»ØÄꤵ¤ì¤¿¥¹¥È¥ê¡¼¥à¤Ë½ñ¤­¹þ¤à¡£ -¸Ä¡¹¤Î¥Ç¡¼¥¿¤Ï +ポインタで指定されたストリームに書き込む。 +個々のデータは .I size -¥Ð¥¤¥È¤ÎŤµ¤ò»ý¤Ä¡£ +バイトの長さを持つ。 .PP -¤³¤ì¤é¤Î½èÍý¤òÄä»ß¤»¤º¤Ë¹Ô¤¤¤¿¤¤¤È¤­¤Ï¡¢ +これらの処理を停止せずに行いたいときは、 .BR unlocked_stdio (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ +を参照のこと。 +.SH 返り値 .BR fread () -¤È +と .BR fwrite () -¤ÏÆɤ߽ñ¤­¤ËÀ®¸ù¤·¤¿Í×ÁǤθĿô¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬À¸¤¸¤¿¾ì¹ç¤ä¡¢end-of-file(¥Õ¥¡¥¤¥ë¤ÎºÇ¸å)¤Ë㤷¤¿¾ì¹ç¡¢ -ÊÖ¤êÃͤϻØÄꤷ¤¿¸Ä¿ô¤è¤ê¤â¾®¤µ¤¤ÃÍ(¤Þ¤¿¤Ï¥¼¥í)¤È¤Ê¤ë¡£ +は読み書きに成功した要素の個数を返す。 +エラーが生じた場合や、end-of-file(ファイルの最後)に達した場合、 +返り値は指定した個数よりも小さい値(またはゼロ)となる。 .PP .BR fread () -¤Ï end-of-file ¤È¥¨¥é¡¼¤ò¶èÊ̤·¤Ê¤¤¤Î¤Ç¡¢ -¤É¤Á¤é¤¬À¸¤¸¤¿¤«¤òȽÃǤ¹¤ë¤¿¤á¤Ë¤Ï¡¢ -¸Æ¤Ó½Ð¤·Â¦¤Ç +は end-of-file とエラーを区別しないので、 +どちらが生じたかを判断するためには、 +呼び出し側で .BR feof (3) -¤È +と .BR ferror (3) -¤È¤ò»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ½àµò +とを使用しなければならない。 +.SH 準拠 C89, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR read (2), .BR write (2), .BR feof (3), diff --git a/release/man3/frexp.3 b/release/man3/frexp.3 index 794e2945..5e71fa4c 100644 --- a/release/man3/frexp.3 +++ b/release/man3/frexp.3 @@ -35,9 +35,9 @@ .\" Updated 2005-11-19, Akihiro MOTOKI .\" .TH FREXP 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -frexp, frexpf, frexpl \- ÉâÆ°¾®¿ôÅÀ¼Â¿ô¤ò¾®¿ôÀ®Ê¬¤ÈÀ°¿ôÀ®Ê¬¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +frexp, frexpf, frexpl \- 浮動小数点実数を小数成分と整数成分に変換する +.SH 書式 .nf .B #include .sp @@ -48,12 +48,12 @@ frexp, frexpf, frexpl \- .BI "long double frexpl(long double " x ", int *" exp ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -67,38 +67,38 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR frexp () -´Ø¿ô¤ÏÉâÆ°¾®¿ôÅÀ¼Â¿ô \fIx\fP ¤òÀµµ¬²½¾®¿ô¤È»Ø¿ô¤Ëʬ²ò¤·¡¢ -»Ø¿ô¤ò *\fIexp\fP ¤Ë³ÊǼ¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ +関数は浮動小数点実数 \fIx\fP を正規化小数と指数に分解し、 +指数を *\fIexp\fP に格納する。 +.SH 返り値 .BR frexp () -´Ø¿ô¤ÏÀµµ¬²½¾®¿ô¤òÊÖ¤¹¡£ -°ú¿ô \fIx\fP ¤¬¥¼¥í¤Ç¤Ê¤¤¾ì¹ç¡¢¤³¤ÎÀµµ¬²½¾®¿ô¤Ï -\fIx\fP ¤Ë 2 ¤ÎÎß¾è¤ò¾è¤¸¤¿¤â¤Î¤Ç¤¢¤ê¡¢¤½¤ÎÀäÂÐÃÍ¤Ï -¾ï¤Ë 1/2 °Ê¾å 1 ̤Ëþ¡¢¤Ä¤Þ¤ê [0.5,1) ¤È¤Ê¤ë¡£ +関数は正規化小数を返す。 +引数 \fIx\fP がゼロでない場合、この正規化小数は +\fIx\fP に 2 の累乗を乗じたものであり、その絶対値は +常に 1/2 以上 1 未満、つまり [0.5,1) となる。 -\fIx\fP ¤¬¥¼¥í¤Î¾ì¹ç¡¢Àµµ¬²½¾®¿ô¤Ï¥¼¥í¤Ë¤Ê¤ê -*\fIexp\fP ¤Ë¤Ï¥¼¥í¤¬³ÊǼ¤µ¤ì¤ë¡£ +\fIx\fP がゼロの場合、正規化小数はゼロになり +*\fIexp\fP にはゼロが格納される。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I *exp -¤ÎÃͤÏÉÔÄê¤Ç¤¢¤ë¡£ +の値は不定である。 .I x -¤¬Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤Î¾ì¹ç¡¢ -Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大 (負の無限大) の場合、 +正の無限大 (負の無限大) が返される。 .I *exp -¤ÎÃͤÏÉÔÄê¤Ç¤¢¤ë¡£ -.SH ¥¨¥é¡¼ -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ -.SH ½àµò +の値は不定である。 +.SH エラー +エラーは発生しない。 +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH Îã -¤³¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤È°Ê²¼¤Î¤è¤¦¤Ê·ë²Ì¤È¤Ê¤ë: +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 +.SH 例 +このプログラムを実行すると以下のような結果となる: .sp .nf .in +4n @@ -108,7 +108,7 @@ frexp(2560, &e) = 0.625: 0.625 * 2^12 = 2560 frexp(\-4, &e) = \-0.5: \-0.5 * 2^3 = \-4 .in .fi -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -130,6 +130,6 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ldexp (3), .BR modf (3) diff --git a/release/man3/fseek.3 b/release/man3/fseek.3 index 3ac3a70d..7a4e1ed3 100644 --- a/release/man3/fseek.3 +++ b/release/man3/fseek.3 @@ -41,13 +41,13 @@ .\" Japanese Version Copyright (c) 1998 NAKANO Takeo all rights reserved. .\" Translated Mon Apr 27 1998 by NAKANO Takeo .\" -.\" WORD: file position indicator ¥Õ¥¡¥¤¥ë°ÌÃÖɽ¼¨»Ò -.\" WORD: error indicator ¥¨¥é¡¼É½¼¨»Ò +.\" WORD: file position indicator ファイル位置表示子 +.\" WORD: error indicator エラー表示子 .\" .TH FSEEK 3 1993-11-29 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -fgetpos, fseek, fsetpos, ftell, rewind \- ¥¹¥È¥ê¡¼¥à¤Î°ÌÃÖ¤òÊѹ¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +fgetpos, fseek, fsetpos, ftell, rewind \- ストリームの位置を変更する +.SH 書式 .B #include .sp .BI "int fseek(FILE *" stream ", long " offset ", int " whence ); @@ -59,121 +59,121 @@ fgetpos, fseek, fsetpos, ftell, rewind \- .BI "int fgetpos(FILE *" stream ", fpos_t *" pos ); .br .BI "int fsetpos(FILE *" stream ", fpos_t *" pos ); -.SH ÀâÌÀ +.SH 説明 .BR fseek () -´Ø¿ô¤Ï +関数は .I stream -¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿¥¹¥È¥ê¡¼¥à¤Ë¤ª¤¤¤Æ¡¢¥Õ¥¡¥¤¥ë°ÌÃÖɽ¼¨»Ò -(file position indicator) ¤ò¥»¥Ã¥È¤¹¤ë¡£¿·¤¿¤Ê°ÌÃÖ (¥Ð¥¤¥Èñ°Ì) -¤Ï +によって指定されたストリームにおいて、ファイル位置表示子 +(file position indicator) をセットする。新たな位置 (バイト単位) +は .I whence -¤Ç»ØÄꤵ¤ì¤¿°ÌÃÖ¤Ë +で指定された位置に .I offset -¥Ð¥¤¥È¤ò²Ã¤¨¤ë¤³¤È¤Ë¤è¤Ã¤ÆÍ¿¤¨¤é¤ì¤ë¡£ +バイトを加えることによって与えられる。 .I whence -¤¬ +が .BR SEEK_SET , .BR SEEK_CUR , .B SEEK_END -¤Î¤É¤ì¤«¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤½¤ì¤¾¤ì¥Õ¥¡¥¤¥ë¤ÎÀèƬ¡¢¸½ºß¤Î°ÌÃÖɽ¼¨»Ò¡¢ -¥Õ¥¡¥¤¥ë¤ÎËöÈø¤«¤é¤Î¥ª¥Õ¥»¥Ã¥È¤¬¼è¤é¤ì¤ë¡£ +のどれかになっている場合は、それぞれファイルの先頭、現在の位置表示子、 +ファイルの末尾からのオフセットが取られる。 .BR fseek () -´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤¬À®¸ù¤¹¤ë¤È¡¢¥¹¥È¥ê¡¼¥à¤Î end-of-file ɽ¼¨»Ò¤Ï -¥¯¥ê¥¢¤µ¤ì¡¢¤½¤ì¤Þ¤Ç¤Ë +関数の呼び出しが成功すると、ストリームの end-of-file 表示子は +クリアされ、それまでに .BR ungetc (3) -´Ø¿ô¤ÇÌᤷ¤¿¥Ç¡¼¥¿¤Ï¤Ê¤«¤Ã¤¿¤³¤È¤Ë¤Ê¤ë¡£ +関数で戻したデータはなかったことになる。 .PP .BR ftell () -´Ø¿ô¤Ï +関数は .I stream -¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿¥¹¥È¥ê¡¼¥à¤Ë¤ª¤±¤ë¡¢¥Õ¥¡¥¤¥ë°ÌÃÖɽ¼¨»Ò -¤Î¸½»þÅÀ¤Ç¤ÎÃͤòÍ¿¤¨¤ë¡£ +によって指定されたストリームにおける、ファイル位置表示子 +の現時点での値を与える。 .PP .BR rewind () -´Ø¿ô¤Ï +関数は .I stream -¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿¥¹¥È¥ê¡¼¥à¤Ë¤ª¤¤¤Æ¡¢¥Õ¥¡¥¤¥ë°ÌÃÖɽ¼¨»Ò -¤ò¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤Ë¥»¥Ã¥È¤¹¤ë¡£¤³¤Î´Ø¿ô¤Ï°Ê²¼¤ÈÅù²Á¤Ç¤¢¤ë¡£ +によって指定されたストリームにおいて、ファイル位置表示子 +をファイルの先頭にセットする。この関数は以下と等価である。 .PP .RS (void) fseek(stream, 0L, SEEK_SET) .RE .PP -¤¿¤À¤· +ただし .BR rewind () -¤Ç¤Ï¥¹¥È¥ê¡¼¥à¤ËÂФ¹¤ë¥¨¥é¡¼É½¼¨»Ò (error indicator) ¤âƱ»þ¤Ë -¥¯¥ê¥¢¤µ¤ì¤ë ( +ではストリームに対するエラー表示子 (error indicator) も同時に +クリアされる ( .BR clearerr (3) -¤ò¸«¤è)¡£ +を見よ)。 .PP .BR fgetpos () -´Ø¿ô¤È +関数と .BR fsetpos () -´Ø¿ô¤Ï¡¢¤½¤ì¤¾¤ì +関数は、それぞれ .BR ftell () -¤È +と .BR fseek () -¤Ç +で .I whence -¤Ë +に .B SEEK_SET -¤ò»ØÄꤷ¤¿¾ì¹ç¤ÈƱÍͤε¡Ç½¤ò¡¢°Û¤Ê¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÇÄ󶡤¹¤ë¡£ +を指定した場合と同様の機能を、異なるインターフェースで提供する。 .BR fgetpos () -¤Ï¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤Î¸½ºß¤ÎÃͤò +はファイルオフセットの現在の値を .I pos -¤¬»²¾È¤¹¤ë¥ª¥Ö¥¸¥§¥¯¥È¤ËÊݸ¤·¡¢ +が参照するオブジェクトに保存し、 .BR fsetpos () -¤Ï¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤ò +はファイルオフセットを .I pos -¤ËÀßÄꤹ¤ë¡£ -UNIX °Ê³°¤Î¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¤Ï¡¢ +に設定する。 +UNIX 以外のシステムにおいては、 .I fpos_t -¤¬¹½Â¤ÂΤʤɤÎÊ£»¨¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ê¤Ã¤Æ¤¤¤Æ¡¢¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤¬¥Æ¥­¥¹ -¥È¥¹¥È¥ê¡¼¥à¤Ç¥Õ¥¡¥¤¥ë°ÌÃÖ¤òÊѹ¹¤¹¤ëÊýË¡¤Î¤¦¤Á¡¢°Ü¿¢À­¤Î¤¢¤ëÍ£°ì¤Î¤â¤Î -¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤â¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +が構造体などの複雑なオブジェクトになっていて、これらのルーチンがテキス +トストリームでファイル位置を変更する方法のうち、移植性のある唯一のもの +になっている場合もある。 +.SH 返り値 .BR rewind () -¤ÏÊÖ¤êÃͤò»ý¤¿¤Ê¤¤¡£ +は返り値を持たない。 .BR fgetpos (), .BR fseek (), .BR fsetpos () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ +は成功すると 0 を返す。 .BR ftell () -¤Ï¸½ºß¤Î¥ª¥Õ¥»¥Ã¥È¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¤ÏÊÖ¤êÃÍ¤Ï \-1 ¤È¤Ê¤ê¡¢ +は現在のオフセットを返す。失敗した場合は返り値は \-1 となり、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値がセットされる。 +.SH エラー .TP .B EBADF -»ØÄꤷ¤¿ +指定した .I stream -¤¬¥·¡¼¥¯¤Ç¤­¤Ê¤¤¡£ +がシークできない。 .TP .B EINVAL .BR fseek () -´Ø¿ô¤ËÂФ·¤ÆÍ¿¤¨¤¿ +関数に対して与えた .I whence -°ú¿ô¤¬ +引数が .BR SEEK_SET , .BR SEEK_END , .B SEEK_CUR -°Ê³°¤ÎÃͤǤ¢¤Ã¤¿¡£ +以外の値であった。 .PP .BR fgetpos (), .BR fseek (), .BR fsetpos (), .BR ftell () -¤Ï¡¢¤½¤ì¤¾¤ì +は、それぞれ .BR fflush (3), .BR fstat (2), .BR lseek (2), .BR malloc (3) -¤Ê¤É¤Î¥ë¡¼¥Á¥ó¤ò¸Æ¤Ó½Ð¤¹ºÝ¤Ë¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£¤³¤Î¾ì¹ç¤Ï -¤½¤ì¤¾¤ìÂбþ¤·¤¿ +などのルーチンを呼び出す際に失敗する可能性がある。この場合は +それぞれ対応した .I errno -¤¬ÀßÄꤵ¤ì¤ë¡£ -.SH ½àµò +が設定される。 +.SH 準拠 C89, C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR lseek (2), .BR fseeko (3) diff --git a/release/man3/fseeko.3 b/release/man3/fseeko.3 index e4f86b33..f309fc6a 100644 --- a/release/man3/fseeko.3 +++ b/release/man3/fseeko.3 @@ -25,9 +25,9 @@ .\" Updated 2006-01-18, Akihiro MOTOKI .\" .TH FSEEKO 3 2001-11-05 "" "Linux Programmer's Manual" -.SH ̾Á° -fseeko, ftello \- ¥Õ¥¡¥¤¥ë°ÌÃÖ¤òõ¤¹/Êó¹ð¤¹¤ë -.SH ½ñ¼° +.SH 名前 +fseeko, ftello \- ファイル位置を探す/報告する +.SH 書式 .nf .B #include .sp @@ -36,26 +36,26 @@ fseeko, ftello \- .BI "off_t ftello(FILE *" stream ); .BI .fi -.SH ÀâÌÀ +.SH 説明 .BR fseeko () -´Ø¿ô¤ª¤è¤Ó +関数および .BR ftello () -´Ø¿ô¤Ï¡¢ -¤½¤ì¤¾¤ì +関数は、 +それぞれ .BR fseek (3) -¤ª¤è¤Ó +および .BR ftell (3) -¤ÈƱ°ì¤Îµ¡Ç½¤ò»ý¤Ä +と同一の機能を持つ .RB ( fseek (3) -¤ò¸«¤è) ¤¬¡¢¤¿¤À¤· +を見よ) が、ただし .BR fseeko () -´Ø¿ô¤Î \fIoffset\fP °ú¿ô¤È +関数の \fIoffset\fP 引数と .BR ftello () -¤ÎÊÖ¤êÃͤ¬¡¢ -\fIlong\fP ¤Ç¤Ï¤Ê¤¯ \fIoff_t\fP ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +の返り値が、 +\fIlong\fP ではなく \fIoff_t\fP になっている。 .LP -¿¤¯¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï -\fIoff_t\fP ¤â \fIlong\fP ¤â¶¦¤Ë 32 ¥Ó¥Ã¥È¤Î·¿¤Ç¤¢¤ë¤¬¡¢ +多くのアーキテクチャでは +\fIoff_t\fP も \fIlong\fP も共に 32 ビットの型であるが、 .RS .nf @@ -63,24 +63,24 @@ fseeko, ftello \- .fi .RE -¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È \fIoff_t\fP ¤Ï 64 ¥Ó¥Ã¥È·¿¤È¤Ê¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +でコンパイルすると \fIoff_t\fP は 64 ビット型となる。 +.SH 返り値 +成功した場合、 .BR fseeko () -¤Ï 0 ¤ò¡¢ +は 0 を、 .BR ftello () -¤Ï¸½ºß¤Î¥ª¥Õ¥»¥Ã¥È¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は現在のオフセットを返す。 +失敗した場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値をセットする。 +.SH エラー .BR fseek (3) -¤Î¡Ö¥¨¥é¡¼¡×¤ÎÀá¤ò»²¾È¡£ -.SH ½àµò +の「エラー」の節を参照。 +.SH 準拠 SUSv2, POSIX.1-2001. -.SH Ãí°Õ -¤³¤ì¤é¤Î´Ø¿ô¤Ï System V Ū¤Ê¥·¥¹¥Æ¥à¤Ë¤¢¤ë¡£ -libc4, libc5, glibc 2.0 ¤Ë¤Ï¤Ê¤«¤Ã¤¿¤¬¡¢ -glibc 2.1 ¤«¤é»È¤¨¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +.SH 注意 +これらの関数は System V 的なシステムにある。 +libc4, libc5, glibc 2.0 にはなかったが、 +glibc 2.1 から使えるようになった。 +.SH 関連項目 .BR fseek (3) diff --git a/release/man3/ftime.3 b/release/man3/ftime.3 index e7d4b932..fd754603 100644 --- a/release/man3/ftime.3 +++ b/release/man3/ftime.3 @@ -38,18 +38,18 @@ .\" Updated Wed Jul 30 JST 2008 by Kentaro Shirakata .\" .TH FTIME 3 2010-02-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -ftime \- ÆüÉդȻþ´Ö¤òÊÖ¤¹ -.SH ½ñ¼° +.SH 名前 +ftime \- 日付と時間を返す +.SH 書式 .B "#include " .sp .BI "int ftime(struct timeb *" tp ); -.SH ÀâÌÀ -¤³¤Î´Ø¿ô¤Ï¸½ºß¤Î»þ¹ï¤ò¡¢µª¸µ (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) -¤«¤é¤ÎÉÿô¤È¥ß¥êÉÿô¤ÇÊÖ¤¹¡£ -»þ¹ï¤Ï +.SH 説明 +この関数は現在の時刻を、紀元 (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) +からの秒数とミリ秒数で返す。 +時刻は .I tp -¤ÇÊÖ¤µ¤ì¡¢¤³¤ì¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +で返され、これは以下のように定義されている: .sp .in +4n .nf @@ -62,52 +62,52 @@ struct timeb { .fi .in .LP -¤³¤³¤Ç¡¢\fItime\fP ¤Ïµª¸µ (the Epoch) ¤«¤é¤ÎÉÿô¡¢ -\fImillitm\fP ¤Ï µª¸µ¤«¤é \fItime\fP Éø夫¤é¤Î¥ß¥êÉÿô¤Ç¤¢¤ë¡£ -\fItimezone\fP ¥Õ¥£¡¼¥ë¥É¤Ï¥°¥ê¥Ë¥Ã¥¸¤«¤éÀ¾¼þ¤ê¤Îʬ¤Ç·×¬¤µ¤ì¤ë -¥í¡¼¥«¥ë¥¿¥¤¥à¥¾¡¼¥ó¤Ç¤¢¤ë(Éé¿ô¤Î¾ì¹ç¤Ï¥°¥ê¥Ë¥Ã¥¸¤«¤é¤ÎÅì²ó¤ê¤Îʬ¤ò -¼¨¤¹)¡£ -\fIdstflag\fP ¥Õ¥£¡¼¥ë¥É¤Ï¡¢¤â¤· 0 ¤Ç¤Ê¤±¤ì¤Ð°ìǯ¤Î°ìÉô¤Ç²Æ»þ´Ö¤¬ -¸ºß¤¹¤ë¤³¤È¤ò¼¨¤¹¥Õ¥é¥°¤Ç¤¢¤ë¡£ +ここで、\fItime\fP は紀元 (the Epoch) からの秒数、 +\fImillitm\fP は 紀元から \fItime\fP 秒後からのミリ秒数である。 +\fItimezone\fP フィールドはグリニッジから西周りの分で計測される +ローカルタイムゾーンである(負数の場合はグリニッジからの東回りの分を +示す)。 +\fIdstflag\fP フィールドは、もし 0 でなければ一年の一部で夏時間が +存在することを示すフラグである。 .LP -POSIX.1-2001 ¤Ç¤Ï¡¢\fItimezone\fP ¤È \fIdstflag\fP ¤ÎÆâÍƤÏ̤ÄêµÁ¤Ç¤¢¤ë; -¤³¤ì¤ËÍê¤ë¤Î¤ÏÈò¤±¤ë¤³¤È¡£ +POSIX.1-2001 では、\fItimezone\fP と \fIdstflag\fP の内容は未定義である; +これに頼るのは避けること。 \"O .SH "RETURN VALUE" -.SH ÊÖ¤êÃÍ +.SH 返り値 \"O This function always returns 0. -¤³¤Î´Ø¿ô¤Ï¾ï¤Ë 0 ¤òÊÖ¤¹¡£ -(POSIX.1-2001 »ÅÍ͵ڤӤ¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Î¥É¥­¥å¥á¥ó¥È¤Ç¤Ï¡¢ -¥¨¥é¡¼»þ¤Ë \-1 ¤òÊÖ¤¹¡£) +この関数は常に 0 を返す。 +(POSIX.1-2001 仕様及びいくつかのシステムのドキュメントでは、 +エラー時に \-1 を返す。) \"O .SH "CONFORMING TO" -.SH ½àµò +.SH 準拠 4.2BSD, POSIX.1-2001. -POSIX.1-2008 ¤Ç¤Ï +POSIX.1-2008 では .BR ftime () -¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ +の仕様が削除されている。 -¤³¤Î´Ø¿ô¤Ï¸Å¤¤¤â¤Î¤Ç¤¢¤ë¡£»È¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -ÉÃñ°Ì¤Î»þ´Ö¤Ç½½Ê¬¤Ê¤é¡¢ +この関数は古いものである。使ってはならない。 +秒単位の時間で十分なら、 .BR time (2) -¤¬ÍøÍѤǤ­¤ë¡£ +が利用できる。 .BR gettimeofday (2) -¤Ç¥Þ¥¤¥¯¥íÉä¬ÆÀ¤é¤ì¤ë¡£ +でマイクロ秒が得られる。 .BR clock_gettime (2) -¤Ç¥Ê¥ÎÉä¬ÆÀ¤é¤ì¤ë¤¬¡¢¹­¤¯ÍøÍѲÄǽ¤ÊÌõ¤Ç¤Ï¤Ê¤¤¡£ +でナノ秒が得られるが、広く利用可能な訳ではない。 \"O .SH BUGS -.SH ¥Ð¥° +.SH バグ .LP \"O glibc 2.1.1 is correct again. -\fImillitm\fP ¥Õ¥£¡¼¥ë¥É¤Ï¡¢libc4 ¤È libc5 ¤Ç¤ÏÀµ¤·¤¯Æ°ºî¤¹¤ë¡£ -¤·¤«¤·¡¢½é´ü¤Î glibc2 ¤Ç¤Ï¥Ð¥°¤¬¤¢¤ê¡¢¾ï¤Ë 0 ¤òÊÖ¤¹¡£ -glibc 2.1.1 ¤«¤éºÆ¤ÓÀµ¾ï¤Ë¤Ê¤Ã¤¿¡£ +\fImillitm\fP フィールドは、libc4 と libc5 では正しく動作する。 +しかし、初期の glibc2 ではバグがあり、常に 0 を返す。 +glibc 2.1.1 から再び正常になった。 \"O .\" .SH HISTORY \"O .\" The \"O .\" .B ftime() \"O .\" function appeared in 4.2BSD. -.\" .SH Îò»Ë +.\" .SH 歴史 .\" .BR ftime () -.\" ´Ø¿ô¤Ï 4.2BSD ¤Ë¸½¤ì¤¿¡£ +.\" 関数は 4.2BSD に現れた。 \"O .SH "SEE ALSO" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR gettimeofday (2), .BR time (2) diff --git a/release/man3/ftok.3 b/release/man3/ftok.3 index 635f4304..8f28152a 100644 --- a/release/man3/ftok.3 +++ b/release/man3/ftok.3 @@ -29,80 +29,80 @@ .\" Updated Sun 6 Jan 2002 by NAKANO Takeo .\" .TH FTOK 3 2001-11-28 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -ftok \- ¥Ñ¥¹Ì¾¤È¥×¥í¥¸¥§¥¯¥È¼±Ê̻Ҥò System V IPC ¥­¡¼¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +ftok \- パス名とプロジェクト識別子を System V IPC キーに変換する +.SH 書式 .nf .B #include .B #include .fi .sp .BI "key_t ftok(const char *" pathname ", int " proj_id ); -.SH ÀâÌÀ +.SH 説明 .BR ftok () -´Ø¿ô¤Ï +関数は .I pathname -¤ÇÍ¿¤¨¤é¤ì¤¿¥Õ¥¡¥¤¥ë (¸ºß¤·¡¢¥¢¥¯¥»¥¹²Äǽ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤) -¤Î¥Õ¥¡¥¤¥ë̾¤Î¼±Ê̾ðÊó (identity) ¤È¡¢ +で与えられたファイル (存在し、アクセス可能でなければならない) +のファイル名の識別情報 (identity) と、 .I proj_id -(0 ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤) ¤ÎÄã°Ì 8 ¥Ó¥Ã¥È¤È¤òÍѤ¤¤Æ¡¢ +(0 であってはならない) の低位 8 ビットとを用いて、 .I key_t -·¿¤Î System V IPC ¥­¡¼¤òÀ¸À®¤¹¤ë¡£ -¤³¤Î¥­¡¼¤Ï +型の System V IPC キーを生成する。 +このキーは .BR msgget (2), .BR semget (2), .BR shmget (2) -¤Ê¤É¤Ç¤ÎÍøÍѤËŬ¤·¤Æ¤¤¤ë¡£ +などでの利用に適している。 .LP -Ʊ¤¸¥Õ¥¡¥¤¥ë¤ò¼¨¤¹¤¢¤é¤æ¤ë¥Ñ¥¹Ì¾¤È¡¢Æ±¤¸ +同じファイルを示すあらゆるパス名と、同じ .I proj_id -¤ËÂФ·¤Æ¤Ï¡¢·ë²Ì¤ÎÃͤÏÅù¤·¤¯¤Ê¤ë¡£ -¥Õ¥¡¥¤¥ë¤¬°ã¤Ã¤¿¤ê (¤³¤Î¾ì¹çξ¼Ô¤ÏƱ»þ¤Ë¸ºß¤·¤Æ¤¤¤ë¤Ï¤º)¡¢ +に対しては、結果の値は等しくなる。 +ファイルが違ったり (この場合両者は同時に存在しているはず)、 .I proj_id -¤¬°Û¤Ê¤ë¤È¡¢ÊÖ¤êÃͤâ°Û¤Ê¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤ÏÀ¸À®¤µ¤ì¤¿ +が異なると、返り値も異なる。 +.SH 返り値 +成功した場合は生成された .I key_t -¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¡£ -¼ºÇÔ¤¹¤ë¤È \-1 ¤¬ÊÖ¤µ¤ì¡¢¥¨¥é¡¼¤ÎÆâÍƤ¬ +の値が返される。 +失敗すると \-1 が返され、エラーの内容が .B errno -¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£¤³¤ÎÆâÍƤϥ·¥¹¥Æ¥à¥³¡¼¥ë +に書き込まれる。この内容はシステムコール .BR stat (2) -¤Î¤â¤Î¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -.SH ½àµò +のものと同じである。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ -libc4 ¤È libc5 (¤ª¤è¤Ó SunOS 4.x) ¤Ç¤Ï¡¢ -¥×¥í¥È¥¿¥¤¥×¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +.SH 注意 +libc4 と libc5 (および SunOS 4.x) では、 +プロトタイプは以下のようになっている。 .sp .RS .BI "key_t ftok(char *" pathname ", char " proj_id ); .RE .PP -¸½ºß¤Ç¤Ï +現在では .I proj_id -¤Ï +は .I int -¤À¤¬¡¢°ÍÁ³¤È¤·¤Æ 8 ¥Ó¥Ã¥È¤·¤«ÍѤ¤¤é¤ì¤Ê¤¤¡£ -Ä̾ï¤Ï ASCII ¥­¥ã¥é¥¯¥¿¤¬ +だが、依然として 8 ビットしか用いられない。 +通常は ASCII キャラクタが .I proj_id -¤ËÍѤ¤¤é¤ì¤ë¡£ +に用いられる。 .I proj_id -¤¬ 0 ¤Î¤È¤­¤Î¿¶¤ëÉñ¤¤¤¬Ì¤ÄêµÁ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ï¡¢¤³¤ì¤¬Íýͳ¤Ç¤¢¤ë¡£ +が 0 のときの振る舞いが未定義になっているのは、これが理由である。 .LP -¤â¤Á¤í¤ó +もちろん .I key_t -¤¬Â¾¤È½Å¤Ê¤é¤Ê¤¤¤â¤Î¤Ç¤¢¤ë¤«¤É¤¦¤«¤ÏÊݾڤµ¤ì¤Ê¤¤¡£ -ºÇÁ±¤Î¾ì¹ç¤ÎÁȤ߹ç¤ï¤»¤ò¹Í¤¨¤Æ¤â¡¢ +が他と重ならないものであるかどうかは保証されない。 +最善の場合の組み合わせを考えても、 .I proj_id -¤Î 1 ¥Ð¥¤¥È¡¢i ¥Î¡¼¥ÉÈÖ¹æ¤ÎÄã°Ì 16 ¥Ó¥Ã¥È¡¢¤ª¤è¤Ó -¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤ÎÄã°Ì 8 ¥Ó¥Ã¥È¤Ê¤Î¤Ç¡¢·ë²Ì¤Ï 32 ¥Ó¥Ã¥È¤Ë²á¤®¤Ê¤¤¡£ -Î㤨¤Ð +の 1 バイト、i ノード番号の低位 16 ビット、および +デバイス番号の低位 8 ビットなので、結果は 32 ビットに過ぎない。 +例えば .I /dev/hda1 -¤È +と .I /dev/sda1 -¤½¤ì¤¾¤ì¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡¢¾×ÆͤÏÍưפ˵¯¤³¤ê¤¦¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +それぞれにあるファイルに対して、衝突は容易に起こりうる。 +.SH 関連項目 .BR msgget (2), .BR semget (2), .BR shmget (2), diff --git a/release/man3/fts.3 b/release/man3/fts.3 index 4ab94d8a..5b0fed2f 100644 --- a/release/man3/fts.3 +++ b/release/man3/fts.3 @@ -40,17 +40,17 @@ .\" Translated Tue Jul 11 19:02:58 JST 2000 .\" by Yuichi SATO .\" -.\"WORD: hierarchy ³¬ÁØ -.\"WORD: traverse ¤¿¤É¤ë -.\"WORD: pointer ¥Ý¥¤¥ó¥¿ -.\"WORD: restore Éü¸µ¤¹¤ë -.\"WORD: null-terminated NULL ½ªÃ¼¤µ¤ì¤¿ +.\"WORD: hierarchy 階層 +.\"WORD: traverse たどる +.\"WORD: pointer ポインタ +.\"WORD: restore 復元する +.\"WORD: null-terminated NULL 終端された .\" .TH FTS 3 2007-12-28 "Linux" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 fts, fts_open, fts_read, fts_children, fts_set, fts_close \- \ -¥Õ¥¡¥¤¥ë³¬Áؤò¤¿¤É¤ë -.SH ½ñ¼° +ファイル階層をたどる +.SH 書式 .nf .B #include .B #include @@ -67,681 +67,681 @@ fts, fts_open, fts_read, fts_children, fts_set, fts_close \- \ .sp .BI "int fts_close(FTS *" ftsp ); .fi -.SH ÀâÌÀ -fts ´Ø¿ô·²¤Ï¡¢¥Õ¥¡¥¤¥ë³¬Áؤò¤¿¤É¤ë¤¿¤á¤ËÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ -´Êñ¤Ë³µÎ¬¤¹¤ë¤È¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¡£ +.SH 説明 +fts 関数群は、ファイル階層をたどるために提供されている。 +簡単に概略すると次のようになる。 .BR fts_open () -´Ø¿ô¤Ï¡¢Â¾¤Î fts ´Ø¿ô·²¤ËÅϤ¹¤¿¤á¤Î¡¢¥Õ¥¡¥¤¥ë³¬ÁؤΡ֥ϥó¥É¥ë¡×¤òÊÖ¤¹¡£ +関数は、他の fts 関数群に渡すための、ファイル階層の「ハンドル」を返す。 .BR fts_read () -´Ø¿ô¤Ï¡¢¥Õ¥¡¥¤¥ë³¬ÁØÃæ¤Ë¤¢¤ë 1 ¤Ä¤Î¥Õ¥¡¥¤¥ë¤òµ­½Ò¤¹¤ë¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ +関数は、ファイル階層中にある 1 つのファイルを記述する構造体へのポインタを返す。 .BR fts_children () -´Ø¿ô¤Ï¡¢³¬ÁØÃæ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤òµ­½Ò¤¹¤ë¹½Â¤ÂΤΠ-¥ê¥ó¥¯¥ê¥¹¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -°ìÈ̤˥ǥ£¥ì¥¯¥È¥ê¤Ï¡¢ -preorder (ÀµÊý¸þ¡§²¼¤Î³¬ÁؤΥǥ£¥ì¥¯¥È¥ê¤ò¤¿¤É¤ëÁ°) ¤È -postorder (µÕÊý¸þ¡§²¼¤Î³¬ÁؤΥǥ£¥ì¥¯¥È¥ê¤ò¤¹¤Ù¤Æ¤¿¤É¤Ã¤¿¸å) ¤È¤¤¤¦¡¢ -°Û¤Ê¤ëÊý¸þ¤Ç 2 ²ó¤¿¤É¤é¤ì¤ë¡£¥Õ¥¡¥¤¥ë¤Ï 1 ²ó¤¿¤É¤é¤ì¤ë¡£ -¥Ç¥£¥ì¥¯¥È¥ê³¬Áؤò¡ÖÏÀÍýŪ¤Ë¡×(¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥°¤ò̵»ë¤·¤Æ) °ÜÆ°¤¹¤ë¤³¤È¤â¡¢ -ʪÍýŪ¤Ë (¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ò¤¿¤É¤Ã¤Æ) °ÜÆ°¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¢¤ë¡£ -¤Þ¤¿¡¢³¬ÁØÃæ¤Î°ÜÆ°¤ÎÆ»¶Ú¤ò»Ø¼¨¤¹¤ë¤³¤È¡¦ -;ʬ¤Ê¤â¤Î¤ò¼è¤ê½ü¤¯¤³¤È¡¦³¬ÁؤΰìÉô¤òºÆ¤Ó¤¿¤É¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£ +関数は、階層中のディレクトリにあるファイルを記述する構造体の +リンクリストへのポインタを返す。 +一般にディレクトリは、 +preorder (正方向:下の階層のディレクトリをたどる前) と +postorder (逆方向:下の階層のディレクトリをすべてたどった後) という、 +異なる方向で 2 回たどられる。ファイルは 1 回たどられる。 +ディレクトリ階層を「論理的に」(シンボリックリングを無視して) 移動することも、 +物理的に (シンボリックリンクをたどって) 移動することも可能である。 +また、階層中の移動の道筋を指示すること・ +余分なものを取り除くこと・階層の一部を再びたどることが可能である。 .PP -2 ¤Ä¤Î¹½Â¤ÂΤ¬¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +2 つの構造体がインクルードファイル .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë (¤µ¤é¤Ë typedef ¤µ¤ì¤Æ¤¤¤ë)¡£ -1 ¤ÄÌܤϡ¢¥Õ¥¡¥¤¥ë³¬Áؤ½¤Î¤â¤Î¤òɽ¸½¤¹¤ë +で定義されている (さらに typedef されている)。 +1 つ目は、ファイル階層そのものを表現する .I FTS -¹½Â¤ÂΤǤ¢¤ë¡£ -2 ¤ÄÌܤϡ¢¥Õ¥¡¥¤¥ë³¬ÁØÃæ¤Î¥Õ¥¡¥¤¥ë¤òɽ¸½¤¹¤ë +構造体である。 +2 つ目は、ファイル階層中のファイルを表現する .I FTSENT -¹½Â¤ÂΤǤ¢¤ë¡£ +構造体である。 .I FTSENT -¹½Â¤ÂΤÏÄ̾¥Õ¥¡¥¤¥ë³¬ÁØÃæ¤Î¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤ÆÊÖ¤µ¤ì¤ë¡£ -¤³¤Î man ¥Ú¡¼¥¸¤Ç¤Ï¡¢¡Ö¥Õ¥¡¥¤¥ë¡×¤È -.RI ¡Ö FTSENT -¹½Â¤ÂΡפò°ìÈ̤ËÆɤßÊѤ¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +構造体は通常、ファイル階層中のすべてのファイルに対して返される。 +この man ページでは、「ファイル」と +.RI 「 FTSENT +構造体」を一般に読み変えることができる。 .I FTSENT -¹½Â¤ÂΤϡ¢¾¯¤Ê¤¯¤È¤â¼¡¤Î¤è¤¦¤Ê¥Õ¥£¡¼¥ë¥É¤ò»ý¤Ã¤Æ¤ª¤ê¡¢ -°Ê²¼¤Ç¤è¤ê¾Ü¤·¤¯ÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡£ +構造体は、少なくとも次のようなフィールドを持っており、 +以下でより詳しく説明されている。 .in +4n .nf typedef struct _ftsent { - unsigned short fts_info; /* FTSENT ¹½Â¤ÂΤΤ¿¤á¤Î¥Õ¥é¥° */ - char *fts_accpath; /* ¥¢¥¯¥»¥¹¥Ñ¥¹ */ - char *fts_path; /* ¥ë¡¼¥È¥Ñ¥¹ */ - short fts_pathlen; /* fts_path ¤ÎŤµ */ - char *fts_name; /* ¥Õ¥¡¥¤¥ë̾ */ - short fts_namelen; /* fts_name ¤ÎŤµ */ - short fts_level; /* ¿¼¤µ (\-1 ¡Á N) */ - int fts_errno; /* ¥Õ¥¡¥¤¥ë¤Î¥¨¥é¡¼ÈÖ¹æ */ - long fts_number; /* ¥í¡¼¥«¥ë¤ÊÈÖ¹æ */ - void *fts_pointer; /* ¥í¡¼¥«¥ë¤Ê¥¢¥É¥ì¥¹ÈÖ¹æ */ - struct ftsent *fts_parent; /* ¿Æ¥Ç¥£¥ì¥¯¥È¥ê */ - struct ftsent *fts_link; /* ¼¡¤Î¥Õ¥¡¥¤¥ë¹½Â¤ÂÎ */ - struct ftsent *fts_cycle; /* ½Û´Ä¤·¤Æ¤¤¤ë¹½Â¤ÂÎ */ - struct stat *fts_statp; /* stat(2) ¤Î¾ðÊó */ + unsigned short fts_info; /* FTSENT 構造体のためのフラグ */ + char *fts_accpath; /* アクセスパス */ + char *fts_path; /* ルートパス */ + short fts_pathlen; /* fts_path の長さ */ + char *fts_name; /* ファイル名 */ + short fts_namelen; /* fts_name の長さ */ + short fts_level; /* 深さ (\-1 〜 N) */ + int fts_errno; /* ファイルのエラー番号 */ + long fts_number; /* ローカルな番号 */ + void *fts_pointer; /* ローカルなアドレス番号 */ + struct ftsent *fts_parent; /* 親ディレクトリ */ + struct ftsent *fts_link; /* 次のファイル構造体 */ + struct ftsent *fts_cycle; /* 循環している構造体 */ + struct stat *fts_statp; /* stat(2) の情報 */ } FTSENT; .fi .in .PP -¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢¼¡¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +これらのフィールドは、次のように定義されている。 .\" .Bl -tag -width "fts_namelen" .TP 12 .IR fts_info -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢ÊÖ¤µ¤ì¤¿ +このフィールドは、返された .I FTSENT -¹½Â¤ÂΤȥե¡¥¤¥ë¤òÀâÌÀ¤¹¤ë°Ê²¼¤Î¥Õ¥é¥°¤Î¤¤¤º¤ì¤«¤òɽ¤·¤Æ¤¤¤ë¡£ -¥¨¥é¡¼¤Î¤Ê¤¤¥Ç¥£¥ì¥¯¥È¥ê +構造体とファイルを説明する以下のフラグのいずれかを表している。 +エラーのないディレクトリ .RB ( FTS_D ), -¤Î¾ì¹ç¤ÏÎã³°¤È¤·¤Æ¡¢¤½¤ì°Ê³°¤Î¤¹¤Ù¤Æ¤Î¥¨¥ó¥È¥ê¤Ï½ªÃ¼¤Ç¤¢¤ë¡£ -¤Ä¤Þ¤ê¡¢¥¨¥ó¥È¥ê¤ÏºÆ¤Ó¤¿¤É¤é¤ì¤ë¤³¤È¤â¤Ê¤¯¡¢ -¤½¤ì¤è¤ê²¼¤Î³¬Áؤ¬¤¿¤É¤é¤ì¤ë¤³¤È¤â¤Ê¤¤¡£ +の場合は例外として、それ以外のすべてのエントリは終端である。 +つまり、エントリは再びたどられることもなく、 +それより下の階層がたどられることもない。 .\" .Bl -tag -width FTS_DEFAULT .RS 12 .TP 12 .BR FTS_D -preorder ¤Ç¤¿¤É¤é¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¡£ +preorder でたどられるディレクトリ。 .TP .BR FTS_DC -¥Ä¥ê¡¼¤ÎÃæ¤Ç½Û´Ä¤·¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¡£ +ツリーの中で循環しているディレクトリ。 .RI ( FTSENT -¹½Â¤ÂΤΠ+構造体の .I fts_cycle -¥Õ¥£¡¼¥ë¥É¤âƱÍͤËËä¤á¤é¤ì¤ë¡£) +フィールドも同様に埋められる。) .TP .BR FTS_DEFAULT -¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤òɽ¸½¤¹¤ë +ファイルタイプを表現する .I FTSENT -¹½Â¤ÂΤ¬¡¢ +構造体が、 .I fts_info -¤Î¾¤Î¤¤¤º¤ì¤«¤ÎÃͤÇÌÀ¼¨Åª¤ËÀâÌÀ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +の他のいずれかの値で明示的に説明されていない。 .TP .BR FTS_DNR -Æɤ߹þ¤ß¤¬¤Ç¤­¤Ê¤¤¥Ç¥£¥ì¥¯¥È¥ê¡£ -¤³¤ì¤Ï¥¨¥é¡¼¤Î¾ì¹ç¤ÎÊÖ¤êÃͤǤ¢¤ê¡¢ -²¿¤¬¥¨¥é¡¼¤òµ¯¤³¤·¤¿¤«¤ò¼¨¤¹¤¿¤á¤Ë +読み込みができないディレクトリ。 +これはエラーの場合の返り値であり、 +何がエラーを起こしたかを示すために .I fts_errno -¥Õ¥£¡¼¥ë¥É¤¬ÀßÄꤵ¤ì¤ë¡£ +フィールドが設定される。 .TP .BR FTS_DOT .BR fts_open () -¤Ø¤Î¥Õ¥¡¥¤¥ë̾¤È¤·¤Æ»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿ -"." ¤Þ¤¿¤Ï ".." -¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë +へのファイル名として指定されなかった +"." または ".." +という名前のファイル .RB ( FTS_SEEDOT -¤ò»²¾È¤¹¤ë¤³¤È)¡£ +を参照すること)。 .TP .BR FTS_DP -postorder ¤Ç¤¿¤É¤é¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¡£ +postorder でたどられるディレクトリ。 .I FTSENT -¹½Â¤ÂΤÎÆâÍƤϡ¢preorder ¤Î¤È¤­¤ËÊÖ¤µ¤ì¤¿¾õÂÖ -(¤Ä¤Þ¤ê¡¢ +構造体の内容は、preorder のときに返された状態 +(つまり、 .I fts_info -¥Õ¥£¡¼¥ë¥É¤¬ +フィールドが .B FTS_D -¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾õÂÖ) ¤«¤éÊѹ¹¤µ¤ì¤Ê¤¤¡£ +に設定されている状態) から変更されない。 .TP .B FTS_ERR -¤³¤ì¤Ï¥¨¥é¡¼¤Î¾ì¹ç¤ÎÊÖ¤êÃͤǤ¢¤ê¡¢ +これはエラーの場合の返り値であり、 .I fts_errno -¥Õ¥£¡¼¥ë¥É¤Ï¡¢²¿¤¬¥¨¥é¡¼¤òµ¯¤³¤·¤¿¤«¤ò¼¨¤¹ÃͤËÀßÄꤵ¤ì¤ë¡£ +フィールドは、何がエラーを起こしたかを示す値に設定される。 .TP .B FTS_F -Ä̾ï¤Î¥Õ¥¡¥¤¥ë¡£ +通常のファイル。 .TP .B FTS_NS .BR stat (2) -¾ðÊó¤¬ÆÀ¤é¤ì¤Ê¤«¤Ã¤¿¥Õ¥¡¥¤¥ë¡£ +情報が得られなかったファイル。 .I fts_statp -¥Õ¥£¡¼¥ë¥É¤ÎÆâÍƤÏÄêµÁ¤µ¤ì¤Ê¤¤¡£ -¤³¤ì¤Ï¥¨¥é¡¼¤Î¾ì¹ç¤ÎÊÖ¤êÃͤǤ¢¤ê¡¢ +フィールドの内容は定義されない。 +これはエラーの場合の返り値であり、 .I fts_errno -¥Õ¥£¡¼¥ë¥É¤Ï¡¢²¿¤¬¥¨¥é¡¼¤òµ¯¤³¤·¤¿¤«¤ò¼¨¤¹ÃͤËÀßÄꤵ¤ì¤ë¡£ +フィールドは、何がエラーを起こしたかを示す値に設定される。 .TP .B FTS_NSOK .BR stat (2) -¾ðÊó¤¬Í׵ᤵ¤ì¤Ê¤«¤Ã¤¿¥Õ¥¡¥¤¥ë¡£ +情報が要求されなかったファイル。 .I fts_statp -¥Õ¥£¡¼¥ë¥É¤ÎÆâÍƤÏÄêµÁ¤µ¤ì¤Ê¤¤¡£ +フィールドの内容は定義されない。 .TP .B FTS_SL -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¡£ +シンボリックリンク。 .TP .B FTS_SLNONE -¥ê¥ó¥¯Àè¤Î¸ºß¤·¤Ê¤¤¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¡£ +リンク先の存在しないシンボリックリンク。 .I fts_statp -¥Õ¥£¡¼¥ë¥É¤ÎÆâÍƤϡ¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤½¤Î¤â¤Î¤Î¥Õ¥¡¥¤¥ëÆÃÀ­¾ðÊó¤ò»²¾È¤¹¤ë¡£ +フィールドの内容は、シンボリックリンクそのもののファイル特性情報を参照する。 .\" .El .RE .TP .IR fts_accpath -¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Î¥Ñ¥¹¡£ +現在のディレクトリからファイルにアクセスするためのパス。 .TP .IR fts_path -³¬Áؤò¤¿¤É¤ë¤È¤­¤Î¥ë¡¼¥È¤«¤é¤ß¤¿¥Õ¥¡¥¤¥ë¤ÎÁêÂÐŪ¤Ê¥Ñ¥¹¡£ -¤³¤Î¥Ñ¥¹¤Ë¤Ï¡¢ +階層をたどるときのルートからみたファイルの相対的なパス。 +このパスには、 .BR fts_open () -¤Ë»ØÄꤷ¤¿¥Ñ¥¹¤¬¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤È¤·¤Æ´Þ¤Þ¤ì¤ë¡£ +に指定したパスがプレフィックスとして含まれる。 .TP .IR fts_pathlen .I fts_path -¤Ç»²¾È¤µ¤ì¤ëʸ»úÎó¤ÎŤµ¡£ +で参照される文字列の長さ。 .TP .IR fts_name -¥Õ¥¡¥¤¥ë¤Î̾Á°¡£ +ファイルの名前。 .TP .IR fts_namelen .I fts_name -¤Ç»²¾È¤µ¤ì¤ëʸ»úÎó¤ÎŤµ¡£ +で参照される文字列の長さ。 .TP .IR fts_level -³¬Áؤò¤¿¤É¤Ã¤Æ¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤¬¤ß¤Ä¤«¤Ã¤¿¿¼¤µ¡£ -\-1 ¡Á N ¤Î¿ôÃͤÇɽ¤µ¤ì¤ë¡£ -³¬Áؤò¤¿¤É¤ë¤È¤­¤Î½ÐȯÅÀ (¥ë¡¼¥È) ¤Î¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤òɽ¤¹ +階層をたどって、このファイルがみつかった深さ。 +\-1 〜 N の数値で表される。 +階層をたどるときの出発点 (ルート) の親ディレクトリを表す .I FTSENT -¹½Â¤ÂÎ¤Ç¤Ï \-1 ¤È¤Ê¤ë¡£ -¤Þ¤¿¡¢¥ë¡¼¥È¼«¿È¤Î +構造体では \-1 となる。 +また、ルート自身の .I FTSENT -¹½Â¤ÂÎ¤Ç¤Ï 0 ¤Ë¤Ê¤ë¡£ +構造体では 0 になる。 .TP .IR fts_errno -´Ø¿ô +関数 .BR fts_children () -¤È +と .BR fts_read () -¤«¤éÊÖ¤µ¤ì¤ë +から返される .I FTSENT -¹½Â¤ÂΤÎ +構造体の .I fts_info -¥Õ¥£¡¼¥ë¥É¤¬ +フィールドが .BR FTS_DNR , .BR FTS_ERR , .B FTS_NS -¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ +に設定されている場合、 .I fts_errno -¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¥¨¥é¡¼¤Î¸¶°ø¤ò¼¨¤¹³°ÉôÊÑ¿ô +フィールドにはエラーの原因を示す外部変数 .I errno -¤ÎÃͤ¬Æþ¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢ +の値が入る。 +それ以外の場合、 .I fts_errno -¥Õ¥£¡¼¥ë¥É¤ÎÆâÍƤÏÄêµÁ¤µ¤ì¤Ê¤¤¡£ +フィールドの内容は定義されない。 .TP .IR fts_number -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤é»ÈÍѤ¹¤ë¤¿¤á¤ËÄ󶡤µ¤ì¡¢ -fts ´Ø¿ô·²¤Ç¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï 0 ¤Ç½é´ü²½¤µ¤ì¤ë¡£ +このフィールドは、アプリケーションプログラムから使用するために提供され、 +fts 関数群では変更されない。 +このフィールドは 0 で初期化される。 .TP .IR fts_pointer -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤é»ÈÍѤ¹¤ë¤¿¤á¤ËÄ󶡤µ¤ì¡¢ -fts ´Ø¿ô·²¤Ç¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï +このフィールドは、アプリケーションプログラムから使用するために提供され、 +fts 関数群では変更されない。 +このフィールドは .B NULL -¤Ç½é´ü²½¤µ¤ì¤ë¡£ +で初期化される。 .TP .IR fts_parent -¸½ºß¤Î¥Õ¥¡¥¤¥ë¤Î¤¹¤°¾å¤Î³¬Áؤˤ¢¤ë¥Õ¥¡¥¤¥ë -(¤Ä¤Þ¤ê¡¢¸½ºß¤Î¥Õ¥¡¥¤¥ë¤¬¥á¥ó¥Ð¡¼¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê) ¤ò»²¾È¤¹¤ë +現在のファイルのすぐ上の階層にあるファイル +(つまり、現在のファイルがメンバーになっているディレクトリ) を参照する .I FTSENT -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¡£ -ºÇ½é¤Î½ÐȯÅÀ¤ËÂФ·¤Æ¤â¡¢¿Æ¤È¤Ê¤ë¹½Â¤ÂΤÏÍ¿¤¨¤é¤ì¤ë¡£ -¤·¤«¤·¡¢ +構造体へのポインタ。 +最初の出発点に対しても、親となる構造体は与えられる。 +しかし、 .IR fts_level , .IR fts_number , .I fts_pointer -¥Õ¥£¡¼¥ë¥É¤Î¤ß¤Î½é´ü²½¤·¤«Êݾڤµ¤ì¤Ê¤¤¡£ +フィールドのみの初期化しか保証されない。 .TP .IR fts_link .BR fts_children () -¤«¤éÊÖ¤µ¤ì¤ë¾ì¹ç¡¢ +から返される場合、 .I fts_link -¥Õ¥£¡¼¥ë¥É¤Ï¥Ç¥£¥ì¥¯¥È¥ê¥á¥ó¥Ð¡¼¤Î NUL ½ªÃ¼¤µ¤ì¤¿¥ê¥ó¥¯¥ê¥¹¥È¤Î·Á¼°¤Ç¡¢ -¼¡¤Î¹½Â¤ÂΤò»Ø¤·¼¨¤¹¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢ +フィールドはディレクトリメンバーの NUL 終端されたリンクリストの形式で、 +次の構造体を指し示す。 +それ以外の場合、 .I fts_link -¥Õ¥£¡¼¥ë¥É¤ÏÄêµÁ¤µ¤ì¤Ê¤¤¡£ +フィールドは定義されない。 .TP .IR fts_cycle -2 ¤Ä¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥Ï¡¼¥É¥ê¥ó¥¯¤¬Ä¥¤é¤ì¤Æ¤¤¤ë¤¿¤á¡¢ -¤Þ¤¿¤Ï¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ò»Ø¤·¤Æ¤¤¤ë¤¿¤á¤Ë¡¢ -¥Ç¥£¥ì¥¯¥È¥ê¤¬½Û´Ä¤¹¤ë³¬Áع½Â¤¤òºî¤Ã¤Æ¤¤¤ë¾ì¹ç +2 つのディレクトリにハードリンクが張られているため、 +または、シンボリックリンクがあるディレクトリを指しているために、 +ディレクトリが循環する階層構造を作っている場合 .RB ( FTS_DC -¤ò»²¾È)¡¢ -¹½Â¤ÂΤΠ+を参照)、 +構造体の .I fts_cycle -¥Õ¥£¡¼¥ë¥É¤Ï¡¢³¬ÁØÃæ¤Ç¸½ºß¤Î +フィールドは、階層中で現在の .I FTSENT -¹½Â¤ÂΤÈƱ¤¸¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤ë +構造体と同じファイルを参照している .I FTSENT -¹½Â¤ÂΤò»Ø¤·¼¨¤¹¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢ +構造体を指し示す。 +それ以外の場合、 .I fts_cycle -¥Õ¥£¡¼¥ë¥É¤ÏÄêµÁ¤µ¤ì¤Ê¤¤¡£ +フィールドは定義されない。 .TP .IR fts_statp -¤³¤Î¥Õ¥¡¥¤¥ë¤Î +このファイルの .BR stat (2) -¾ðÊó¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ +情報へのポインタ。 .\" .El .PP -¥Õ¥¡¥¤¥ë³¬ÁØÃæ¤Î¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹¤ËÂФ·¤Æ¡¢ -¤¿¤À 1 ¤Ä¤Î¥Ð¥Ã¥Õ¥¡¡¼¤¬»È¤ï¤ì¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢ +ファイル階層中のすべてのファイルのパスに対して、 +ただ 1 つのバッファーが使われる。 +したがって、 .I fts_path -¤È +と .I fts_accpath -¥Õ¥£¡¼¥ë¥É¤Ï¡¢ +フィールドは、 .BR fts_read () -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤¿ºÇ¤â¿·¤·¤¤¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡Ö¤Î¤ß¡× -NULL ½ªÃ¼¤µ¤ì¤ë¤³¤È¤¬Êݾڤµ¤ì¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤ò¡¢Â¾¤Î +によって返された最も新しいファイルに対して「のみ」 +NULL 終端されることが保証される。 +これらのフィールドを、他の .I FTSENT -¹½Â¤ÂΤÇɽ¸½¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¤¿¤á¤Ë»È¤¦¤Ë¤Ï¡¢ +構造体で表現されるファイルを参照するために使うには、 .I FTSENT -¹½Â¤ÂΤΠ+構造体の .I fts_pathlen -¥Õ¥£¡¼¥ë¥É¤Ë¤¢¤ë¾ðÊó¤ò»È¤Ã¤Æ¥Ñ¥¹¤Î¥Ð¥Ã¥Õ¥¡¡¼¤ò½¤Àµ¤¹¤ëɬÍפ¬¤¢¤ë¡£ -¤³¤ì¤é¤Î½¤Àµ¤Ï¡¢¤µ¤é¤Ë +フィールドにある情報を使ってパスのバッファーを修正する必要がある。 +これらの修正は、さらに .BR fts_read () -¤ò¸Æ¤Ó½Ð¤½¤¦¤È¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢¸µ¤ËÌᤷ¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を呼び出そうとする場合には、元に戻しておかなければならない。 .I fts_name -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¾ï¤Ë +フィールドは、常に .B NUL -½ªÃ¼¤µ¤ì¤ë¡£ +終端される。 .SS fts_open() .BR fts_open () -´Ø¿ô¤Ï¡¢Ê¸»úÎó¥Ý¥¤¥ó¥¿¤ÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò°ú¤­¿ô¤Ë¼è¤ë¡£ -¤³¤Îʸ»úÎó¥Ý¥¤¥ó¥¿¤Ï¡¢ÏÀÍý¥Õ¥¡¥¤¥ë³¬Áؤò¤Ä¤¯¤ë 1 ¤Ä°Ê¾å¤Î¥Ñ¥¹¤Î̾Á°¤Ë¤Ê¤ë¡£ -ÇÛÎó¤Ï¡¢ +関数は、文字列ポインタの配列へのポインタを引き数に取る。 +この文字列ポインタは、論理ファイル階層をつくる 1 つ以上のパスの名前になる。 +配列は、 .B NULL -¥Ý¥¤¥ó¥¿¤Ç½ªÃ¼¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ポインタで終端されなければならない。 .PP -¿¤¯¤Î¥ª¥×¥·¥ç¥ó¤¬¤¢¤ê¡¢¾¯¤Ê¤¯¤È¤â 1 ¤Ä +多くのオプションがあり、少なくとも 1 つ .RB ( FTS_LOGICAL -¤Þ¤¿¤Ï +または .BR FTS_PHYSICAL ) -¤¬»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥ª¥×¥·¥ç¥ó¤Ï°Ê²¼¤ÎÃͤÎÏÀÍýϤò¤È¤Ã¤ÆÁªÂò¤¹¤ë¡£ +が指定されなければならない。 +オプションは以下の値の論理和をとって選択する。 .\" .Bl -tag -width "FTS_PHYSICAL" .TP .B FTS_COMFOLLOW -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ +このオプションは、 .B FTS_LOGICAL -¤Î»ØÄê¤Ë¤«¤«¤ï¤é¤º¡¢ -¥ë¡¼¥È¥Ñ¥¹¤Ë»ØÄꤵ¤ì¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ò¤¹¤°¤Ë¤¿¤É¤é¤»¤ë¡£ +の指定にかかわらず、 +ルートパスに指定されたシンボリックリンクをすぐにたどらせる。 .TP .B FTS_LOGICAL -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ -fts ¥ë¡¼¥Á¥ó¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤½¤Î¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢ -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬»Ø¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Î +このオプションは、 +fts ルーチンにシンボリックリンクそのものではなく、 +シンボリックリンクが指しているファイルの .I FTSENT -¹½Â¤ÂΤòÊÖ¤µ¤»¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ +構造体を返させる。 +このオプションが設定された場合、 .I FTSENT -¹½Â¤ÂΤ¬¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ËÊÖ¤µ¤ì¤ë¤è¤¦¤Ê -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¤ß¤¬¡¢Â¸ºß¤·¤Ê¤¤¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤ë¡£ +構造体がアプリケーションに返されるような +シンボリックリンクのみが、存在しないファイルを参照している。 .B FTS_LOGICAL -¤Þ¤¿¤Ï +または .B FTS_PHYSICAL -¤Î¤É¤Á¤é¤«¤ò¡¢ +のどちらかを、 .BR fts_open () -´Ø¿ô¤ËÍ¿¤¨¤Ê¤±¤ì¤Ð¡Ö¤Ê¤é¤Ê¤¤¡×¡£ +関数に与えなければ「ならない」。 .TP .B FTS_NOCHDIR -¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤ÎºÇŬ²½¤Î¤¿¤á¡¢ -fts ´Ø¿ô·²¤Ï¥Õ¥¡¥¤¥ë³¬Áؤò¤¿¤É¤ë¤È¤­¥Ç¥£¥ì¥¯¥È¥ê¤òÊѤ¨¤ë¡£ -¤³¤ì¤Ë¤Ï¡¢³¬Áؤò¤¿¤É¤Ã¤Æ¤¤¤ë´Ö¤Ï -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¤¢¤ëÆÃÄê¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¤¤ë¤È¤¤¤¦¤³¤È¤Ë -°Í¸¤Ç¤­¤Ê¤¤¡¢¤È¤¤¤¦ÉûºîÍѤ¬¤¢¤ë¡£ +パフォーマンスの最適化のため、 +fts 関数群はファイル階層をたどるときディレクトリを変える。 +これには、階層をたどっている間は +アプリケーションがある特定のディレクトリにいるということに +依存できない、という副作用がある。 .B FTS_NOCHDIR -¥ª¥×¥·¥ç¥ó¤ÇºÇŬ²½¤ò̵¸ú¤Ë¤¹¤ë¤È¡¢ -fts ´Ø¿ô·²¤Ï¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òÊѹ¹¤·¤Ê¤¤¡£ +オプションで最適化を無効にすると、 +fts 関数群は現在のディレクトリを変更しない。 .B FTS_NOCHDIR -¤¬»ØÄꤵ¤ì¡¢¤«¤Ä +が指定され、かつ .BR fts_open () -¤Î°ú¤­¿ô¤È¤·¤ÆÀäÂХѥ¹Ì¾¤¬Í¿¤¨¤é¤ì¤¿¤È¤­°Ê³°¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢ -¼«¤é¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤òÊѹ¹¤·¤¿¤ê¡¢ -¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤·¤¿¤ê¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡¢¤È¤¤¤¦ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +の引き数として絶対パス名が与えられたとき以外、アプリケーションは、 +自らカレントディレクトリを変更したり、 +ファイルにアクセスしたりすべきではない、という点に注意すること。 .TP .B FTS_NOSTAT -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ÊÖ¤µ¤ì¤¿ +デフォルトでは、返された .I FTSENT -¹½Â¤ÂΤϡ¢¤¿¤É¤é¤ì¤¿³Æ¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¤Î¥Õ¥¡¥¤¥ëÆÃħ¾ðÊó +構造体は、たどられた各ファイルについてのファイル特徴情報 .I ( statp -¥Õ¥£¡¼¥ë¥É) ¤ò»²¾È¤¹¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ -fts ´Ø¿ô·²¤¬ +フィールド) を参照する。 +このオプションは、 +fts 関数群が .I fts_info -¥Õ¥£¡¼¥ë¥É¤ò +フィールドを .B FTS_NSOK -¤ËÀßÄꤷ +に設定し .I statp -¤ÎÆâÍƤòÄêµÁ¤µ¤ì¤Ê¤¤¤Þ¤Þ¤Ë¤¹¤ë¤³¤È¤òµö¤¹¤³¤È¤Ë¤è¤ê¡¢ -¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤ÎºÇŬ²½¤ËɬÍפʤâ¤Î¤ò´ËϤ¹¤ë¡£ +の内容を定義されないままにすることを許すことにより、 +パフォーマンスの最適化に必要なものを緩和する。 .TP .B FTS_PHYSICAL -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ -fts ¥ë¡¼¥Á¥ó¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬»Ø¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Ç¤Ï¤Ê¤¯¡¢ -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¼«¿È¤Î +このオプションは、 +fts ルーチンにシンボリックリンクが指しているファイルではなく、 +シンボリックリンク自身の .I FTSENT -¹½Â¤ÂΤòÊÖ¤µ¤»¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬ÀßÄꤵ¤ì¤ë¤È¡¢³¬ÁØÃæ¤Î¤¹¤Ù¤Æ¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î +構造体を返させる。 +このオプションが設定されると、階層中のすべてのシンボリックリンクの .I FTSENT -¹½Â¤ÂΤ¬¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ËÊÖ¤µ¤ì¤ë¡£ +構造体がアプリケーションに返される。 .B FTS_LOGICAL -¤Þ¤¿¤Ï +または .B FTS_PHYSICAL -¤Î¤É¤Á¤é¤«¤ò +のどちらかを .BR fts_open () -´Ø¿ô¤ËÍ¿¤¨¤Ê¤±¤ì¤Ð¡Ö¤Ê¤é¤Ê¤¤¡×¡£ +関数に与えなければ「ならない」。 .TP .B FTS_SEEDOT -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +デフォルトでは、 .BR fts_open () -¤Î¥Ñ¥¹°ú¤­¿ô¤È¤·¤Æ»ØÄꤵ¤ì¤Ê¤¤¸Â¤ê¡¢¥Õ¥¡¥¤¥ë³¬ÁØÃæ¤Ë¤¢¤ë -"." ¤Þ¤¿¤Ï ".." ¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤Ï̵»ë¤µ¤ì¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ -fts ¥ë¡¼¥Á¥ó¤Ë¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Î +のパス引き数として指定されない限り、ファイル階層中にある +"." または ".." という名前のファイルは無視される。 +このオプションは、 +fts ルーチンにこれらのファイルの .I FTSENT -¹½Â¤ÂΤòÊÖ¤µ¤»¤ë¡£ +構造体を返させる。 .TP .B FTS_XDEV -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ -fts ¤¬²¼¤ê»Ï¤á¤Î¥Õ¥¡¥¤¥ë¤È¤Ï°Û¤Ê¤ë¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤ò»ý¤Ã¤Æ¤¤¤ë -¥Ç¥£¥ì¥¯¥È¥ê¤Ë²¼¤ê¤ë¤Î¤òÁ˻ߤ¹¤ë¡£ +このオプションは、 +fts が下り始めのファイルとは異なるデバイス番号を持っている +ディレクトリに下りるのを阻止する。 .\" .El .PP -°ú¤­¿ô +引き数 .BR compar () -¤Ï¡¢³¬Áؤò¤¿¤É¤ë½çÈÖ¤ò·è¤á¤ë¤Î¤Ë»È¤ï¤ì¤ë¥æ¡¼¥¶¡¼ÄêµÁ´Ø¿ô¤ò»ØÄꤹ¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢°ú¤­¿ô¤È¤·¤Æ +は、階層をたどる順番を決めるのに使われるユーザー定義関数を指定する。 +この関数は、引き数として .I FTSENT -¹½Â¤ÂΤΥݥ¤¥ó¥¿¤Î¥Ý¥¤¥ó¥¿¤ò 2 ¤Ä¤È¤ê¡¢ -1 ÈÖÌܤΰú¤­¿ô¤Ç»²¾È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤¬ -2 ÈÖÌܤΰú¤­¿ô¤Ç»²¾È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤è¤ê -Á°¤Ë¤¢¤ë¾ì¹ç¤ÏÉé¤ÎÃÍ¡¦Æ±¤¸¾ì¹ç¤Ï¥¼¥í¡¦¸å¤Ë¤¢¤ë¾ì¹ç¤ÏÀµ¤ÎÃͤò -ÊÖ¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +構造体のポインタのポインタを 2 つとり、 +1 番目の引き数で参照されているファイルが +2 番目の引き数で参照されているファイルより +前にある場合は負の値・同じ場合はゼロ・後にある場合は正の値を +返さなければならない。 .I FTSENT -¹½Â¤ÂΤΠ+構造体の .IR fts_accpath , .IR fts_path , .I fts_pathlen -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¤³¤ÎÈæ³Ó¤Ë¡ÖÀäÂС׻ȤäƤϤ¤¤±¤Ê¤¤¡£ +フィールドは、この比較に「絶対」使ってはいけない。 .I fts_info -¥Õ¥£¡¼¥ë¥É¤¬ +フィールドが .B FTS_NS -¤Þ¤¿¤Ï +または .B FTS_NSOK -¤ËÀßÄꤵ¤ì¤ë¾ì¹ç¡¢ +に設定される場合、 .I fts_statp -¥Õ¥£¡¼¥ë¥É¤Ï¤³¤ì¤é¤Î¤É¤Á¤é¤Ç¤â¤Ê¤¤¡£ +フィールドはこれらのどちらでもない。 .BR compar () -°ú¤­¿ô¤¬ +引き数が .B NULL -¤Î¾ì¹ç¡¢¥Ç¥£¥ì¥¯¥È¥ê¤ò¤¿¤É¤ë½çÈ֤ϡ¢¥ë¡¼¥È¥Ñ¥¹¤Ë¤Ä¤¤¤Æ¤Ï +の場合、ディレクトリをたどる順番は、ルートパスについては .I path_argv -¤Î¤Ê¤«¤Ç¥ê¥¹¥È¤µ¤ì¤¿½çÈ֤ǡ¢ -¤½¤Î¾¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¤Ï¥Ç¥£¥ì¥¯¥È¥êÆâ¤Ç¥ê¥¹¥È¤µ¤ì¤¿½çÈ֤Ȥʤ롣 +のなかでリストされた順番で、 +その他のファイルについてはディレクトリ内でリストされた順番となる。 .SS fts_read() .BR fts_read () -´Ø¿ô¤Ï¡¢³¬ÁØÃæ¤Î¥Õ¥¡¥¤¥ë¤òµ­½Ò¤¹¤ë +関数は、階層中のファイルを記述する .I FTSENT -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -(Æɤ߹þ¤ß²Äǽ¤Ç¡¢½Û´Ä¤·¤Æ¤¤¤Ê¤¤) ¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢ -1 ²ó¤Ï preorder ¤Ç¡¢¤â¤¦ 1 ²ó¤Ï postorder ¤Ç¡¢¾¯¤Ê¤¯¤È¤â 2 ²ó¤¿¤É¤é¤ì¤ë¡£ -¾¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¾¯¤Ê¤¯¤È¤â 1 ²ó¤¿¤É¤é¤ì¤ë¡£ -(¥Ç¥£¥ì¥¯¥È¥ê´Ö¤Î¥Ï¡¼¥É¥ê¥ó¥¯¤Ë¤è¤Ã¤Æ -½Û´Ä¤ä¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ø¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬µ¯¤³¤é¤Ê¤¤¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¤Ï 2 ²ó°Ê¾å¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ï 3 ²ó°Ê¾å¤¿¤É¤é¤ì¤ë¡£) +構造体へのポインタを返す。 +(読み込み可能で、循環していない) ディレクトリは、 +1 回は preorder で、もう 1 回は postorder で、少なくとも 2 回たどられる。 +他のファイルは、少なくとも 1 回たどられる。 +(ディレクトリ間のハードリンクによって +循環やシンボリックリンクへのシンボリックリンクが起こらない場合、 +ファイルは 2 回以上、ディレクトリは 3 回以上たどられる。) .PP -³¬ÁØÃæ¤Î¤¹¤Ù¤Æ¤Î¥á¥ó¥Ð¡¼¤¬ÊÖ¤µ¤ì¤¿¾ì¹ç¡¢ +階層中のすべてのメンバーが返された場合、 .BR fts_read () -¤Ï +は .B NULL -¤òÊÖ¤·¡¢³°ÉôÊÑ¿ô +を返し、外部変数 .I errno -¤ò 0 ¤Ë¤¹¤ë¡£ -³¬ÁØÃæ¤Î¥Õ¥¡¥¤¥ë¤Ë´Ø·¸¤·¤Ê¤¤¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢ +を 0 にする。 +階層中のファイルに関係しないエラーが起こった場合、 .BR fts_read () -¤Ï +は .B NULL -¤òÊÖ¤·¡¢ +を返し、 .I errno -¤ò¥¨¥é¡¼¤ËÂбþ¤·¤¿Ãͤˤ¹¤ë¡£ -³¬ÁØÃæ¤Î¥Õ¥¡¥¤¥ë¤Ë´Ø·¸¤·¤¿¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢ +をエラーに対応した値にする。 +階層中のファイルに関係したエラーが起こった場合、 .I FTSENT -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤¬ÊÖ¤µ¤ì¡¢ +構造体へのポインタが返され、 .I errno -¤ÏÀßÄꤵ¤ì¤ë¾ì¹ç¤ÈÀßÄꤵ¤ì¤Ê¤¤¾ì¹ç¤¬¤¢¤ë +は設定される場合と設定されない場合がある .RI ( fts_info -¤ò»²¾È¤¹¤ë¤³¤È)¡£ +を参照すること)。 .PP .BR fts_read () -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë +によって返される .I FTSENT -¹½Â¤ÂΤϡ¢Æ±¤¸¥Õ¥¡¥¤¥ë³¬ÁØ¥¹¥È¥ê¡¼¥à¤Ø¤Î +構造体は、同じファイル階層ストリームへの .BR fts_close () -¤Î¸Æ½Ð¤·¤Î¸å¤Ë¾å½ñ¤­¤µ¤ì¤ë¡£ -¤Þ¤¿¡¢Æ±¤¸¥Õ¥¡¥¤¥ë³¬ÁØ¥¹¥È¥ê¡¼¥à¤Ø¤Î +の呼出しの後に上書きされる。 +また、同じファイル階層ストリームへの .BR fts_read () -¤Î¸Æ½Ð¤·¤Î¸å¤Ç¤â¡¢¹½Â¤ÂΤ¬¥Ç¥£¥ì¥¯¥È¥ê¤òɽ¸½¤·¤Æ¤¤¤Ê¤¤¸Â¤ê¾å½ñ¤­¤µ¤ì¤ë¡£ -¤³¤Î¾ì¹ç¡¢ +の呼出しの後でも、構造体がディレクトリを表現していない限り上書きされる。 +この場合、 .BR fts_read () -´Ø¿ô¤Ë¤è¤Ã¤Æ postorder ¤Ç +関数によって postorder で .I FTSENT -¹½Â¤ÂΤ¬ÊÖ¤µ¤ì¤¿¸å¡¢ +構造体が返された後、 .BR fts_read () -¤Î¸Æ½Ð¤·¤¬¤¢¤ë¤Þ¤Ç¡¢ -¤³¤ì¤é¤Î¹½Â¤ÂΤϾå½ñ¤­¤µ¤ì¤Ê¤¤¡£ +の呼出しがあるまで、 +これらの構造体は上書きされない。 .SS fts_children() .BR fts_children () -´Ø¿ô¤Ï¡¢ +関数は、 .I FTSENT -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤Î¹½Â¤ÂΤϡ¢( +構造体へのポインタを返す。 +この構造体は、( .BR fts_read () -¤ÇºÇ¤â¿·¤·¤¯ÊÖ¤µ¤ì¤¿ +で最も新しく返された .I FTSENT -¹½Â¤ÂΤÇɽ¸½¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤Î) -NUL ½ªÃ¼¤µ¤ì¤¿¥ê¥ó¥¯¥ê¥¹¥È¤ÎºÇ½é¤Î¥¨¥ó¥È¥ê¤òµ­½Ò¤¹¤ë¡£ -¤³¤Î¥ê¥¹¥È¤Ï¡¢ +構造体で表現されるディレクトリにあるファイルの) +NUL 終端されたリンクリストの最初のエントリを記述する。 +このリストは、 .I FTSENT -¹½Â¤ÂΤΠ+構造体の .I fts_link -¥Õ¥£¡¼¥ë¥É¤ò»È¤Ã¤Æ¥ê¥ó¥¯¤µ¤ì¡¢ -¥æ¡¼¥¶¡¼»ØÄê¤ÎÈæ³Ó´Ø¿ô¤¬¤¢¤ë¾ì¹ç¤Ï¡¢¤½¤ì¤Ç½ç½ø¤Å¤±¤é¤ì¤ë¡£ +フィールドを使ってリンクされ、 +ユーザー指定の比較関数がある場合は、それで順序づけられる。 .BR fts_children () -¤Î¸Æ½Ð¤·¤ò·«¤êÊÖ¤¹¤³¤È¤Ç¡¢ -¤³¤Î¥ê¥ó¥¯¥ê¥¹¥È¤ÏºÆÀ¸À®¤µ¤ì¤ë¡£ +の呼出しを繰り返すことで、 +このリンクリストは再生成される。 .PP -ÆÃÊ̤ʾì¹ç¤È¤·¤Æ¡¢ +特別な場合として、 .BR fts_read () -¤¬¥Õ¥¡¥¤¥ë³¬ÁؤˤĤ¤¤Æ¸Æ¤Ð¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +がファイル階層について呼ばれていない場合、 .BR fts_children () -¤Ï +は .BR fts_open () -¤Ë»ØÄꤵ¤ì¤¿ÏÀÍý¥Ç¥£¥ì¥¯¥È¥ê (¤Ä¤Þ¤ê¡¢ +に指定された論理ディレクトリ (つまり、 .BR fts_open () -¤Ë»ØÄꤵ¤ì¤¿°ú¤­¿ô) ¤ÎÃæ¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ç¡¢ +に指定された引き数) の中にあるファイルへのポインタを返す。 +それ以外の場合で、 .BR fts_read () -¤Ë¤è¤Ã¤ÆºÇ¤â¿·¤·¤¯ÊÖ¤µ¤ì¤¿ +によって最も新しく返された .I FTSENT -¹½Â¤ÂΤ¬ preorder ¤Ç¤¿¤É¤é¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¾ì¹ç¤ä -²¿¤â´Þ¤ó¤Ç¤¤¤Ê¤¤¥Ç¥£¥ì¥¯¥È¥ê¤Î¾ì¹ç¤Ï¡¢ +構造体が preorder でたどられたディレクトリでない場合や +何も含んでいないディレクトリの場合は、 .BR fts_children () -¤Ï +は .B NULL -¤òÊÖ¤·¡¢ +を返し、 .I errno -¤ò 0 ¤Ë¤¹¤ë¡£ -¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢ +を 0 にする。 +エラーが起こった場合、 .BR fts_children () -¤Ï +は .B NULL -¤òÊÖ¤·¡¢ +を返し、 .I errno -¤ò¥¨¥é¡¼¤ËÂбþ¤·¤¿Ãͤˤ¹¤ë¡£ +をエラーに対応した値にする。 .PP .BR fts_children () -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë +によって返される .I FTSENT -¹½Â¤ÂΤϡ¢Æ±¤¸¥Õ¥¡¥¤¥ë³¬ÁØ¥¹¥È¥ê¡¼¥à¤Ø¤Î +構造体は、同じファイル階層ストリームへの .BR fts_children (), .BR fts_close (), .BR fts_read () -¤Î¸Æ½Ð¤·¤Î¸å¤Ë¾å½ñ¤­¤µ¤ì¤ë¾ì¹ç¤¬¤¢¤ë¡£ +の呼出しの後に上書きされる場合がある。 .PP .I option -¤Ï¡¢¼¡¤ÎÃͤËÀßÄê¤Ç¤­¤ë¡£ +は、次の値に設定できる。 .\" .Bl -tag -width FTS_NAMEONLY .TP .B FTS_NAMEONLY -¥Õ¥¡¥¤¥ë̾¤Î¤ß¤¬É¬ÍפȤµ¤ì¤Æ¤¤¤ë¡£ -ÊÖ¤µ¤ì¤¿¹½Â¤ÂΤΥê¥ó¥¯¥ê¥¹¥È¤Î +ファイル名のみが必要とされている。 +返された構造体のリンクリストの .IR fts_name , .I fts_namelen -¥Õ¥£¡¼¥ë¥É°Ê³°¤Î -¤¹¤Ù¤Æ¤Î¥Õ¥£¡¼¥ë¥É¤ÎÆâÍƤÏÄêµÁ¤µ¤ì¤Ê¤¤¡£ +フィールド以外の +すべてのフィールドの内容は定義されない。 .\" .El .SS fts_set() -´Ø¿ô +関数 .BR fts_set () -¤Ï¡¢¥æ¡¼¥¶¡¼¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬ -¥¹¥È¥ê¡¼¥à +は、ユーザーアプリケーションが +ストリーム .I ftsp -¤Î¥Õ¥¡¥¤¥ë +のファイル .I f -¤Ë¤Ä¤¤¤Æ¹¹¤Ê¤ë½èÍý¤ò·èÄꤹ¤ë¤³¤Èµö¤¹¡£ +について更なる処理を決定すること許す。 .BR fts_set () -´Ø¿ô¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤ò¡¢¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ +関数は、成功した場合は 0 を、エラーが起こった場合は \-1 を返す。 .I option -¤Ï¡¢¼¡¤ÎÃͤΤ¤¤º¤ì¤« 1 ¤Ä¤ËÀßÄꤵ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は、次の値のいずれか 1 つに設定されなければならない。 .\" .Bl -tag -width FTS_PHYSICAL .TP .B FTS_AGAIN -¥Õ¥¡¥¤¥ë¤òºÆ¤Ó¤¿¤É¤ë¡£¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤¬ºÆ¤Ó¤¿¤É¤é¤ì¤ë¡£ -¼¡¤Î +ファイルを再びたどる。すべてのファイルタイプが再びたどられる。 +次の .BR fts_read () -¤Î¸Æ½Ð¤·¤Ë¤è¤ê¡¢»²¾È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤¬ÊÖ¤µ¤ì¤ë¡£ -¹½Â¤ÂΤΠ+の呼出しにより、参照されているファイルが返される。 +構造体の .IR fts_stat , .I fts_info -¥Õ¥£¡¼¥ë¥É¤Ï¤³¤Î»þ¤Ë½é´ü²½¤µ¤ì¤ë¤¬¡¢Â¾¤Î¥Õ¥£¡¼¥ë¥É¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ +フィールドはこの時に初期化されるが、他のフィールドは変更されない。 +このオプションは、 .BR fts_read () -¤Ë¤è¤Ã¤ÆºÇ¤â¿·¤·¤¯ÊÖ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¤Î¤ß°ÕÌ£¤ò»ý¤Ä¡£ -Ä̾ï¤Ï¡¢postorder ¤Ç¥Ç¥£¥ì¥¯¥È¥ê¤ò¤¿¤É¤ë¾ì¹ç¤Ë»ÈÍѤ·¡¢ -¤½¤Î²¼¤Î³¬ÁؤÈƱÍͤˡ¢ -¥Ç¥£¥ì¥¯¥È¥ê¤ò (preorder ¤È postorder ¤ÎξÊý¤Ç) ºÆ¤Ó¤¿¤É¤é¤»¤ë¡£ +によって最も新しく返されたファイルについてのみ意味を持つ。 +通常は、postorder でディレクトリをたどる場合に使用し、 +その下の階層と同様に、 +ディレクトリを (preorder と postorder の両方で) 再びたどらせる。 .TP .B FTS_FOLLOW -»²¾È¤µ¤ì¤Æ¤ë¥Õ¥¡¥¤¥ë¤Ï¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -»²¾È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤¬ +参照されてるファイルは、シンボリックリンクでなければならない。 +参照されているファイルが .BR fts_read () -¤Ë¤è¤Ã¤ÆºÇ¤â¿·¤·¤¯ÊÖ¤µ¤ì¤¿¤â¤Î¤Ç¤¢¤ë¾ì¹ç¡¢¼¡¤Î +によって最も新しく返されたものである場合、次の .BR fts_read () -¤Î¸Æ½Ð¤·¤Ç¤Ï¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤½¤Î¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢ -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬»Ø¤·¤Æ¤¤¤ëÀè¤òÈ¿±Ç¤¹¤ë¤è¤¦¤Ë +の呼出しでは、シンボリックリンクそのものではなく、 +シンボリックリンクが指している先を反映するように .IR fts_info , .I fts_statp -¤òºÆ¤Ó½é´ü²½¤·¤¿¥Õ¥¡¥¤¥ë¤¬ÊÖ¤µ¤ì¤ë¡£ -¥Õ¥¡¥¤¥ë¤¬ +を再び初期化したファイルが返される。 +ファイルが .BR fts_children () -¤Ë¤è¤Ã¤ÆºÇ¤â¿·¤·¤¯ÊÖ¤µ¤ì¤¿¤â¤Î¤Î 1 ¤Ä¤Ç¤¢¤ë¾ì¹ç¡¢ +によって最も新しく返されたものの 1 つである場合、 .BR fts_read () -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤¿¤È¤­¡¢¹½Â¤ÂΤΠ+によって返されたとき、構造体の .IR fts_info , .I fts_statp -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤½¤Î¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢ -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬»Ø¤·¤Æ¤¤¤ëÀè¤òÈ¿±Ç¤¹¤ë¡£ -¤É¤Á¤é¤Î¾ì¹ç¤Ç¤â¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬»Ø¤·¤Æ¤¤¤ëÀ褬¤Ê¤¤¤È¤­¤Ï¡¢ -ÊÖ¤µ¤ì¤¿¹½Â¤ÂΤΥե£¡¼¥ë¥É¤ÏÊѹ¹¤µ¤ì¤º¡¢ +フィールドは、シンボリックリンクそのものではなく、 +シンボリックリンクが指している先を反映する。 +どちらの場合でも、シンボリックリンクが指している先がないときは、 +返された構造体のフィールドは変更されず、 .I fts_info -¥Õ¥£¡¼¥ë¥É¤¬ +フィールドが .B FTS_SLNONE -¤ËÀßÄꤵ¤ì¤ë¡£ +に設定される。 .PP -¥ê¥ó¥¯À褬¥Ç¥£¥ì¥¯¥È¥ê¤Î¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¤¬ preorder ¤ÇÊÖ¤µ¤ì¤¿¸å¡¢²¼¤Î³¬ÁؤΤ¹¤Ù¤Æ¥Õ¥¡¥¤¥ë¤¬ÊÖ¤µ¤ì¡¢ -¤½¤Î¸å¤Ç postorder ¤ÇÊÖ¤µ¤ì¤ë¡£ +リンク先がディレクトリの場合、 +ファイルが preorder で返された後、下の階層のすべてファイルが返され、 +その後で postorder で返される。 .TP .B FTS_SKIP -¤³¤Î¥Õ¥¡¥¤¥ë¤Î²¼¤Î³¬ÁؤϤ¿¤É¤é¤ì¤Ê¤¤¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢ +このファイルの下の階層はたどられない。 +このファイルは、 .BR fts_children () -¤Þ¤¿¤Ï +または .BR fts_read () -¤Î¤É¤Á¤é¤«¤Ë¤è¤Ã¤ÆºÇ¤â¿·¤·¤¯ÊÖ¤µ¤ì¤¿¤â¤Î¤Î 1 ¤Ä¤Ç¤¢¤ë¡£ +のどちらかによって最も新しく返されたものの 1 つである。 .\" .El .SS fts_close() .BR fts_close () -´Ø¿ô¤Ï¡¢¥Õ¥¡¥¤¥ë³¬ÁØ¥¹¥È¥ê¡¼¥à +関数は、ファイル階層ストリーム .I ftsp -¤òÊĤ¸¤ë¡£¤½¤·¤Æ¡¢¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò +を閉じる。そして、現在のディレクトリを .I ftsp -¤ò³«¤¯¤¿¤á¤Ë +を開くために .BR fts_open () -¤¬¸Æ¤Ð¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ËÉü¸µ¤¹¤ë¡£ +が呼ばれたディレクトリに復元する。 .BR fts_close () -´Ø¿ô¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤ò¡¢¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ -.SS ¥¨¥é¡¼ -´Ø¿ô +関数は、成功した場合は 0 を、エラーが起こった場合は \-1 を返す。 +.SS エラー +関数 .BR fts_open () -¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +が失敗した場合、 .I errno -¤Ï¡¢¥é¥¤¥Ö¥é¥ê´Ø¿ô +は、ライブラリ関数 .BR open (2) -¤È +と .BR malloc (3) -¤ËÂФ·¤Æ»ØÄꤵ¤ì¤ë¥¨¥é¡¼¤ËÀßÄꤵ¤ì¤ë¡£ +に対して指定されるエラーに設定される。 .PP -´Ø¿ô +関数 .BR fts_close () -¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +が失敗した場合、 .I errno -¤Ï¡¢¥é¥¤¥Ö¥é¥ê´Ø¿ô +は、ライブラリ関数 .BR chdir (2) -¤È +と .BR close (2) -¤ËÂФ·¤Æ»ØÄꤵ¤ì¤ë¥¨¥é¡¼¤ËÀßÄꤵ¤ì¤ë¡£ +に対して指定されるエラーに設定される。 .PP -´Ø¿ô +関数 .BR fts_read () -¤È +と .BR fts_children () -¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +が失敗した場合、 .I errno -¤Ï¡¢¥é¥¤¥Ö¥é¥ê´Ø¿ô +は、ライブラリ関数 .BR chdir (2), .BR malloc (3), .BR opendir (3), .BR readdir (3), .BR stat (2) -¤ËÂФ·¤Æ»ØÄꤵ¤ì¤ë¥¨¥é¡¼¤ËÀßÄꤵ¤ì¤ë¡£ +に対して指定されるエラーに設定される。 .PP -¹¹¤Ë¡¢ +更に、 .BR fts_children (), .BR fts_open (), .BR fts_set () -¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +が失敗した場合、 .I errno -¤¬¼¡¤ÎÃͤˤµ¤ì¤ë¡£ +が次の値にされる。 .TP .B EINVAL -¥ª¥×¥·¥ç¥ó¤¬Ìµ¸ú¤Ç¤¢¤Ã¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢Linux ¤Ç¤Ï glibc2 ¤«¤é»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH ½àµò +オプションが無効であった。 +.SH バージョン +これらの関数は、Linux では glibc2 から使用可能である。 +.SH 準拠 4.4BSD. .\" The following statement is years old, and seems no closer to .\" being true -- mtk .\" .I fts -.\" ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ï¡¢¾­Íè¤Î +.\" ユーティリティは、将来の .\" POSIX.1 -.\" ¥ê¥Ó¥¸¥ç¥ó¤Ë´Þ¤Þ¤ì¤ë¤È´üÂÔ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +.\" リビジョンに含まれると期待されている。 +.SH 関連項目 .BR find (1), .BR chdir (2), .BR stat (2), diff --git a/release/man3/ftw.3 b/release/man3/ftw.3 index 51925f5b..bcebd7b6 100644 --- a/release/man3/ftw.3 +++ b/release/man3/ftw.3 @@ -38,12 +38,12 @@ .\" Updated & Modified 2005-11-04, Akihiro MOTOKI .\" Updated 2006-07-26, Akihiro MOTOKI , LDP v2.36 .\" -.\" WORD: file descriptor ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ +.\" WORD: file descriptor ファイルディスクリプター .\" .TH FTW 3 2010-09-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -ftw, nftw \- ¥Õ¥¡¥¤¥ë¥Ä¥ê¡¼¤òÊ⤭¤Þ¤ï¤ë -.SH ½ñ¼° +.SH 名前 +ftw, nftw \- ファイルツリーを歩きまわる +.SH 書式 .nf .B #include .sp @@ -52,7 +52,7 @@ ftw, nftw \- .BI " int " typeflag ), .BI " int " nopenfd ); .sp -.BR "#define _XOPEN_SOURCE 500" " /* feature_test_macros(7) »²¾È */" +.BR "#define _XOPEN_SOURCE 500" " /* feature_test_macros(7) 参照 */" .B #define _XOPEN_SOURCE 500 .B #include .sp @@ -61,258 +61,258 @@ ftw, nftw \- .BI " int " typeflag ", struct FTW *" ftwbuf ), .BI " int " nopenfd ", int " flags ); .fi -.SH ÀâÌÀ +.SH 説明 .BR ftw () -¤Ï¡¢ +は、 .I dirpath -¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Î¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼Á´ÂΤòÊ⤭¤Þ¤ï¤ê¡¢ -¥Ä¥ê¡¼Ãæ¤Ç¥¨¥ó¥È¥ê¤¬¸«ÉÕ¤«¤ë¤´¤È¤Ë¡¢ +で指定されたディレクトリ以下のディレクトリツリー全体を歩きまわり、 +ツリー中でエントリが見付かるごとに、 .IR fn () -¤ò¸Æ¤Ó½Ð¤¹¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤½¤Î¤â¤Î¤¬¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤ä -¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤è¤ê¤âÀè¤Ë½èÍý¤µ¤ì¤ë (¹Ô¤­¤¬¤±½çõº÷; preorder traversal)¡£ +を呼び出す。 +デフォルトでは、ディレクトリそのものが、そのディレクトリにあるファイルや +サブディレクトリよりも先に処理される (行きがけ順探索; preorder traversal)。 -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬ÍøÍѲÄǽ¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò»È¤¤ÀÚ¤Ã¤Æ -¤·¤Þ¤ï¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¡¢ +呼び出し元プロセスが利用可能なファイルディスクリプタを使い切って +しまわないようにするため、 .BR ftw () -¤¬Æ±»þ¤Ë¥ª¡¼¥×¥ó¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ÎºÇÂç¿ô¤ò +が同時にオープンするディレクトリの最大数を .I nopenfd -¤Ç»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -õº÷¤Î¿¼¤µ¤¬¤³¤ÎÃͤò±Û¤¨¤ë¤È¡¢ -°ì¤Ä¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òÊĤ¸¤Æ¤«¤é¾¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¥ª¡¼¥×¥ó¤·Ä¾¤¹¤³¤È -¤Ë¤Ê¤ë¤Î¤Ç¡¢ +で指定することができる。 +探索の深さがこの値を越えると、 +一つのディレクトリを閉じてから他のディレクトリをオープンし直すこと +になるので、 .BR ftw () -¤ÎÆ°ºî¤ÏÃÙ¤¯¤Ê¤ë¡£ +の動作は遅くなる。 .BR ftw () -¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Î³¬ÁØ 1 ¥ì¥Ù¥ë¤Ë¤Ä¤­¡¢ -ºÇÂç¤Ç¤â°ì¤Ä¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤·¤«»ÈÍѤ·¤Ê¤¤¡£ +は、ディレクトリツリーの階層 1 レベルにつき、 +最大でも一つのファイルディスクリプタしか使用しない。 -¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Ç¸«¤Ä¤«¤Ã¤¿¥¨¥ó¥È¥êËè¤Ë¡¢ +ディレクトリツリーで見つかったエントリ毎に、 .BR ftw () -¤Ï +は .IR fpath , .IR sb , .I typeflag -¤Î 3¤Ä¤ò°ú¤­¿ô¤È¤·¤Æ +の 3つを引き数として .IR fn () -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .I fpath -¤Ï¥¨¥ó¥È¥ê¤Î¥Ñ¥¹Ì¾¤Ç¤¢¤ë¡£ +はエントリのパス名である。 .I dirpath -¤¬ÁêÂХѥ¹Ì¾¤Ç»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ +が相対パス名で指定された場合には、 .I fpath -¤Ï +は .BR ftw () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿»þÅÀ¤Î¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê -¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤Ê¤ë¡£ +が呼び出された時点の呼び出し元プロセスのカレントワーキングディレクトリ +からの相対パス名となる。 .I dirpath -¤¬ÀäÂХѥ¹Ì¾¤Ç»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ +が絶対パス名で指定された場合には、 .I fpath -¤ÏÀäÂХѥ¹Ì¾¤È¤Ê¤ë¡£ +は絶対パス名となる。 .I sb -¤Ï +は .I fpath -¤ËÂФ¹¤ë +に対する .BR stat (2) -¤Î¸Æ¤Ó½Ð¤·¤ÇÊÖ¤µ¤ì¤ë +の呼び出しで返される .I stat -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ +構造体へのポインタである。 .I typeflag -¤ÏÀ°¿ô¤Ç¡¢°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«°ì¤Ä¤Ç¤¢¤ë: +は整数で、以下の値のいずれか一つである: .TP .B FTW_F .I fpath -¤¬Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë +が通常のファイルである .TP .B FTW_D .I fpath -¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë +がディレクトリである .TP .B FTW_DNR .I fpath -¤¬Æɤ߹þ¤ß¤Ç¤­¤Ê¤¤¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë +が読み込みできないディレクトリである .TP .B FTW_NS -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¤Ï¤Ê¤¤ +シンボリックリンクではない .I fpath -¤ËÂФ¹¤ë +に対する .BR stat (2) -¸Æ¤Ó½Ð¤·¤¬¼ºÇÔ¤·¤¿¡£ +呼び出しが失敗した。 .sp .I fpath -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¡¢¤«¤Ä +がシンボリックリンクで、かつ .BR stat (2) -¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +が失敗した場合、 .B FTW_NS -¤È +と .B FTW_SL -(¸å½Ò) ¤Î¤É¤Á¤é¤¬ +(後述) のどちらが .I typeflag -¤ËÅϤµ¤ì¤ë¤«¤Ï̤ÄêµÁ¤Ç¤¢¤ë¤È¡¢POSIX.1-2001 ¤Ë¤Ï½ñ¤«¤ì¤Æ¤¤¤ë¡£ +に渡されるかは未定義であると、POSIX.1-2001 には書かれている。 .PP -¥Ä¥ê¡¼¤Îõº÷¤ò»ß¤á¤¿¤¤¾ì¹ç¤Ï¡¢ +ツリーの探索を止めたい場合は、 .IR fn () -¤¬ 0 °Ê³°¤ÎÃͤòÊÖ¤»¤ÐÎɤ¤ -(¤³¤ÎÃÍ¤Ï +が 0 以外の値を返せば良い +(この値は .BR ftw () -¼«¿È¤ÎÌá¤êÃͤȤʤë)¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï +自身の戻り値となる)。 +それ以外の場合は .BR ftw () -¤Ï¥Ä¥ê¡¼Á´ÂΤÎõº÷¤ò³¤±¡¢¤¹¤Ù¤Æ¤Î¥Ä¥ê¡¼¤òõº÷¤·½ª¤¨¤¿¤È¤³¤í¤Ç -0 ¤òÊÖ¤¹¡£Ãµº÷Ãæ¤Ë +はツリー全体の探索を続け、すべてのツリーを探索し終えたところで +0 を返す。探索中に .RB ( malloc (3) -¤Î¼ºÇԤʤɤÎ) ¥¨¥é¡¼¤¬µ¯¤³¤ë¤È \-1 ¤òÊÖ¤¹¡£ +の失敗などの) エラーが起こると \-1 を返す。 .PP .BR ftw () -¤ÏưŪ¤Ê¥Ç¡¼¥¿¹½Â¤¤òÍѤ¤¤ë¤Î¤Ç¡¢¥Ä¥ê¡¼Ãµº÷¤ò°ÂÁ´¤ËÃæÃǤ¹¤ëÍ£°ì¤ÎÊýË¡¤Ï -0 °Ê³°¤ÎÃͤò +は動的なデータ構造を用いるので、ツリー探索を安全に中断する唯一の方法は +0 以外の値を .IR fn () -¤ÎÊÖ¤êÃͤȤ¹¤ë¤³¤È¤Ç¤¢¤ë¡£³ä¤ê¹þ¤ß¤ò°·¤¦¤Ë¤Ï¡¢ -Î㤨¤ÐȯÀ¸¤·¤¿³ä¤ê¹þ¤ß¤ò¥Þ¡¼¥¯¤·¤Æ¤ª¤¤¤Æ¡¢ 0 °Ê³°¤ÎÃͤòÊÖ¤¹¤è¤¦¤Ë¤¹¤ë -¥·¥°¥Ê¥ë¤Ë¤è¤ê¥á¥â¥ê¥ê¡¼¥¯¤òµ¯¤³¤µ¤º¤Ëõº÷¤ò½ªÎ»¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ç +の返り値とすることである。割り込みを扱うには、 +例えば発生した割り込みをマークしておいて、 0 以外の値を返すようにする +シグナルによりメモリリークを起こさずに探索を終了できるようにするには、 +シグナルハンドラで .IR fn () -¤¬¥Á¥§¥Ã¥¯¤¹¤ë¥°¥í¡¼¥Ð¥ë¤Ê¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤è¤¦¤Ë¤¹¤ì¤Ð¤è¤¤¡£ -¥×¥í¥°¥é¥à¤ò½ªÎ»¤µ¤»¤ë¾ì¹ç°Ê³°¤Ï¡¢ +がチェックするグローバルなフラグをセットするようにすればよい。 +プログラムを終了させる場合以外は、 .BR longjmp (3) -¤ò»ÈÍѤ·¤Ê¤¤¤³¤È¡£ +を使用しないこと。 .SS nftw() -´Ø¿ô +関数 .BR nftw () -¤Ï +は .BR ftw () -¤ÈƱ¤¸¤À¤¬¡¢°ú¤­¿ô +と同じだが、引き数 .I flags -¤¬Äɲ䵤ì¤ëÅÀ¤È¡¢ +が追加される点と、 .IR fn () -¤Î°ú¤­¿ô¤Ë +の引き数に .I ftwbuf -¤¬Äɲ䵤ì¤ëÅÀ¤¬°Û¤Ê¤ë¡£ +が追加される点が異なる。 -¤³¤Î +この .I flags -°ú¤­¿ô¤Ï²¼µ­¤Î¥Õ¥é¥°¤Î 0 ¸Ä°Ê¾å¤ÎÏÀÍýϤò¼è¤Ã¤¿¤â¤Î¤Ç¤¢¤ë: +引き数は下記のフラグの 0 個以上の論理和を取ったものである: .TP -.BR FTW_ACTIONRETVAL " (glibc 2.3.3 °Ê¹ß)" -¤³¤Î¥Õ¥é¥°¤Ï glibc ¸ÇÍ­¤Ç¤¢¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢ +.BR FTW_ACTIONRETVAL " (glibc 2.3.3 以降)" +このフラグは glibc 固有である。 +このフラグをセットすると、 .BR nftw () -¤Î +の .IR fn () -¤ÎÊÖ¤êÃͤΰ·¤¤¤¬ÊѤï¤ë¡£ +の返り値の扱いが変わる。 .IR fn () -¤Ï°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«°ì¤Ä¤òÊÖ¤¹É¬Íפ¬¤¢¤ë¡£ +は以下の値のいずれか一つを返す必要がある。 .RS .TP .B FTW_CONTINUE .BR nftw () -¤ÏÄ̾ïÄ̤ê½èÍý¤ò³¤±¤ë¡£ +は通常通り処理を続ける。 .TP .B FTW_SKIP_SIBLINGS .IR fn () -¤¬¤³¤ÎÃͤòÊÖ¤·¤¿¾ì¹ç¡¢½èÍýÃæ¤Î¥¨¥ó¥È¥ê¤Î·»Äï (Ʊ¤¸³¬ÁؤΥ¨¥ó¥È¥ê) -¤Î½èÍý¤Ï¥¹¥­¥Ã¥×¤µ¤ì¡¢¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ç³¤­¤Î½èÍý¤¬¹Ô¤ï¤ì¤ë¡£ +がこの値を返した場合、処理中のエントリの兄弟 (同じ階層のエントリ) +の処理はスキップされ、親ディレクトリで続きの処理が行われる。 .\" If \fBFTW_DEPTH\fP .\" is set, the entry's parent directory is processed next (with .\" \fIflag\fP set to \fBFTW_DP\fP). .TP .B FTW_SKIP_SUBTREE .IR fn () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¥¨¥ó¥È¥ê¤¬¥Ç¥£¥ì¥¯¥È¥ê +が呼び出されたエントリがディレクトリ .RI ( typeflag -¤¬ +が .BR FTW_D ) -¤Î¾ì¹ç¤Ë¡¢¤³¤ÎÃͤòÊÖ¤¹¤È +の場合に、この値を返すと .IR fn () -¤Î°ú¤­¿ô¤È¤·¤ÆÅϤµ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥¨¥ó¥È¥ê¤Î½èÍý¤¬¹Ô¤ï¤ì¤Ê¤¯¤Ê¤ë¡£ +の引き数として渡されたディレクトリ内のエントリの処理が行われなくなる。 .BR nftw () -¤Ï½èÍýÃæ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î·»Äï (Ʊ¤¸³¬ÁؤΥ¨¥ó¥È¥ê) ¤«¤é½èÍý¤ò³¤±¤ë¡£ +は処理中のディレクトリの兄弟 (同じ階層のエントリ) から処理を続ける。 .TP .B FTW_STOP .B nftw () -¤Ï¡¢ÊÖ¤êÃÍ +は、返り値 .B FTW_STOP -¤Ç¤¹¤°¤ËÉüµ¢¤¹¤ë¡£ +ですぐに復帰する。 .PP -¾¤ÎÊÖ¤êÃͤϾ­Íè¿·¤·¤¤Æ°ºî¤ËÂбþÉÕ¤±¤é¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +他の返り値は将来新しい動作に対応付けられる可能性がある。 .IR fn () -¤Ï¾åµ­¤Î¥ê¥¹¥È¤Ë¤¢¤ëÃͰʳ°¤òÊÖ¤µ¤Ê¤¤¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +は上記のリストにある値以外を返さないようにすべきである。 .I -¤Ç +で .B FTW_ACTIONRETVAL -¤ÎÄêµÁ¤¬Í­¸ú¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ -(¡Ö¤É¤Î¡×¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤è¤ê¤âÁ°¤Ë) -µ¡Ç½¸¡ºº¥Þ¥¯¥í +の定義が有効にするためには、 +(「どの」ヘッダファイルをインクルードするよりも前に) +機能検査マクロ .B _GNU_SOURCE -¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を定義しなければならない。 .RE .TP .B FTW_CHDIR -¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢¥Ç¥£¥ì¥¯¥È¥ê¤ÎÆâÍƤò½èÍý¤¹¤ëÁ°¤Ë -¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë +セットされると、ディレクトリの内容を処理する前に +そのディレクトリに .BR chdir (2) -¤¹¤ë¡£¤³¤Î¥Õ¥é¥°¤Ï¡¢ +する。このフラグは、 .I fpath -¤¬Â°¤¹¥Ç¥£¥ì¥¯¥È¥ê¤Ç²¿¤é¤«¤ÎÆ°ºî¤ò¼Â¹Ô¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ë -ÊØÍø¤Ç¤¢¤ë¡£ +が属すディレクトリで何らかの動作を実行する必要がある場合に +便利である。 .TP .B FTW_DEPTH -¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢µ¢¤ê¤¬¤±½çõº÷ (post-order traversal) ¤ò¹Ô¤¦¡£ -¤Ä¤Þ¤ê¡¢¥Ç¥£¥ì¥¯¥È¥ê¤½¤Î¤â¤Î¤ò°ú¤­¿ô¤È¤·¤¿ +セットされると、帰りがけ順探索 (post-order traversal) を行う。 +つまり、ディレクトリそのものを引き数とした .IR fn () -¸Æ½Ð¤·¤Ï¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë´Þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¤È¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë -ÂФ¹¤ë½èÍý¤Î¡Ö¸å¤Ç¡×¹Ô¤ï¤ì¤ë -(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¼«¿È¤Î½èÍý¤Ï¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥¨¥ó¥È¥ê -¤è¤ê¡ÖÁ°¤Ë¡×¹Ô¤Ê¤ï¤ì¤ë)¡£ +呼出しは、そのディレクトリに含まれるファイルとサブディレクトリに +対する処理の「後で」行われる +(デフォルトでは、ディレクトリ自身の処理はディレクトリ内のエントリ +より「前に」行なわれる)。 .TP .B FTW_MOUNT -¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢Æ±¤¸¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÃæ¤À¤±¤òõº÷ÂоݤȤ¹¤ë -(¤Ä¤Þ¤ê¡¢¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ò¤Þ¤¿¤°¤³¤È¤Ï¤Ê¤¤)¡£ +セットされると、同じファイルシステムの中だけを探索対象とする +(つまり、マウントポイントをまたぐことはない)。 .TP .B FTW_PHYS -¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òé¤é¤Ê¤¤ (¤ª¤½¤é¤¯¤³¤Á¤é¤¬ -Ä̾ï˾¤Þ¤·¤¤Æ°ºî¤À¤í¤¦)¡£¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ò -é¤ë¤¬¡¢Æ±¤¸¥Õ¥¡¥¤¥ë¤¬Æó²óÊó¹ð¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ +セットされると、シンボリックリンクを辿らない (おそらくこちらが +通常望ましい動作だろう)。セットされていないとシンボリックリンクを +辿るが、同じファイルが二回報告されることはない。 .sp .B FTW_PHYS -¤¬¥»¥Ã¥È¤µ¤ì¤º¤Ë +がセットされずに .B FTW_DEPTH -¤¬¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢¼«Ê¬¼«¿È¤ËÂФ¹¤ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òÇÛ²¼¤Ë»ý¤Ä -¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ·¤Æ +がセットされると、自分自身に対するシンボリックリンクを配下に持つ +ディレクトリに対して .IR fn () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤³¤È¤Ï·è¤·¤Æ¤Ê¤¤¡£ +が呼び出されることは決してない。 .LP -¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Î¥¨¥ó¥È¥êËè¤Ë¡¢ +ディレクトリツリーのエントリ毎に、 .BR nftw () -¤Ï 4¤Ä¤Î°ú¤­¿ô¤Ç +は 4つの引き数で .IR fn () -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .I fpath -¤È +と .I sb -¤Ï +は .BR ftw () -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .I typeflag -¤Ë¤Ï¡¢ +には、 .BR ftw () -¤Ç¼è¤êÆÀ¤ëÃͤΤ¤¤º¤ì¤«¡¢¤Þ¤¿¤Ï°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«¤¬ÅϤµ¤ì¤ë: +で取り得る値のいずれか、または以下の値のいずれかが渡される: .TP .B FTW_DP .I fpath -¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¡¢¤«¤Ä +がディレクトリで、かつ .I flags -¤Ç +で .B FTW_DEPTH -¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¡£ +が指定されていた。 .I fpath -ÇÛ²¼¤Î¥Õ¥¡¥¤¥ë¤È¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ÏÁ´¤Æ½èÍý¤¬½ª¤ï¤Ã¤Æ¤¤¤ë¡£ +配下のファイルとサブディレクトリは全て処理が終わっている。 .TP .B FTW_SL .I fpath -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¡¢¤«¤Ä \fBFTW_PHYS\fP ¤¬ \fIflags\fP ¤Ë -¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤¿¡£ +がシンボリックリンクで、かつ \fBFTW_PHYS\fP が \fIflags\fP に +セットされていた。 .\" To obtain the definition of this constant from .\" .IR , .\" either @@ -323,17 +323,17 @@ ftw, nftw \- .TP .B FTW_SLN .I fpath -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¡¢Â¸ºß¤·¤Ê¤¤¥Õ¥¡¥¤¥ë¤ò»Ø¤·¤Æ¤¤¤ë -(¤³¤ì¤¬¥»¥Ã¥È¤µ¤ì¤ë¤Î¤Ï +がシンボリックリンクで、存在しないファイルを指している +(これがセットされるのは .B FTW_PHYS -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤À¤±¤Ç¤¢¤ë)¡£ +がセットされていない場合だけである)。 .LP .BR nftw () -¤¬ +が .IR fn () -¤ò¸Æ¤Ó½Ð¤¹ºÝ¤ËÅϤ¹ 4¤Ä¤á¤Î°ú¤­¿ô¤Ï +を呼び出す際に渡す 4つめの引き数は .I FTW -·¿¤Î¹½Â¤ÂΤǤ¢¤ë¡£ +型の構造体である。 .in +4n .nf @@ -345,94 +345,94 @@ struct FTW { .fi .in .I base -¤Ï¡¢¥Õ¥¡¥¤¥ë̾ (basename Í×ÁÇ) ¤Î¡¢ +は、ファイル名 (basename 要素) の、 .I fpath -¤ÇÅϤµ¤ì¤ë¥Ñ¥¹Ì¾¤ÎÃæ¤Ç¤Î¥ª¥Õ¥»¥Ã¥È¤Ç¤¢¤ë¡£ +で渡されるパス名の中でのオフセットである。 .I level -¤Ï¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Ç¤Î +はディレクトリツリーでの .I fpath -¤Î¿¼¤µ¤ò¼¨¤¹¡£¿¼¤µ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Î¥È¥Ã¥× (root) ¤«¤é¤Î -ÁêÂÐÃͤǤ¢¤ë +の深さを示す。深さはディレクトリツリーのトップ (root) からの +相対値である .RI ( dirpath -¤Ï¿¼¤µ 0 ¤Ç¤¢¤ë)¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢À®¸ù¤¹¤ë¤È 0 ¤ò¡¢¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤È \-1 ¤òÊÖ¤¹¡£ +は深さ 0 である)。 +.SH 返り値 +これらの関数は、成功すると 0 を、エラーが発生すると \-1 を返す。 .IR fn () -¤¬ 0 °Ê³°¤òÊÖ¤·¤¿¾ì¹ç¡¢¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Îõº÷¤ò½ªÎ»¤·¡¢ +が 0 以外を返した場合、ディレクトリツリーの探索を終了し、 .IR fn () -¤¬ÊÖ¤·¤¿Ãͤò +が返した値を .BR ftw () -¤ä +や .BR nftw () -¤Î·ë²Ì¤È¤·¤ÆÊÖ¤¹¡£ +の結果として返す。 .BR nftw () -¤¬ +が .B FTW_ACTIONRETVAL -¥Õ¥é¥°ÉÕ¤­¤Ç¸Æ¤Ð¤ì¤¿¾ì¹ç¡¢¥Ä¥ê¡¼¤Îõº÷¤ò½ªÎ»¤µ¤»¤ë¤¿¤á¤Ë +フラグ付きで呼ばれた場合、ツリーの探索を終了させるために .IR fn () -¤¬»ÈÍѤǤ­¤ë¡¢Èó 0 ¤ÎÃÍ¤Ï +が使用できる、非 0 の値は .B FTW_STOP -¤À¤±¤Ç¤¢¤ê¡¢ -¤³¤ÎÃÍ¤Ï +だけであり、 +この値は .BR nftw () -¤ÎÊÖ¤êÃͤȤ·¤ÆÊÖ¤µ¤ì¤ë¡£ -.SH ½àµò +の返り値として返される。 +.SH 準拠 POSIX.1-2001, SVr4, SUSv1. -POSIX.1-2008 ¤Ï +POSIX.1-2008 は .BR ftw () -¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -POSIX.1-2001 ¤ÎÃíµ­¤Ë¤è¤ë¤È¡¢ +を廃止予定としている。 +.SH 注意 +POSIX.1-2001 の注記によると、 .I fn -¤¬¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤òÊÝ»ý¤·¤Ê¤«¤Ã¤¿¾ì¹ç¤Î -·ë²Ì¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¤µ¤ì¤Æ¤¤¤ë¡£ +がカレントワーキングディレクトリを保持しなかった場合の +結果は規定されていないとされている。 .PP .BR nftw () -´Ø¿ô¤È¡¢ +関数と、 .BR ftw () -¤Ë¤ª¤±¤ë +における .B FTW_SL -¤Ï¡¢SUSv1 ¤ÇƳÆþ¤µ¤ì¤¿¡£ +は、SUSv1 で導入された。 .LP .BR ftw () -¤Ç +で .B FTW_SL -¤ò°ìÀڻȤï¤Ê¤¤¥·¥¹¥Æ¥à¤ä¡¢ -¸ºß¤·¤Ê¤¤¥Õ¥¡¥¤¥ë¤ò»Ø¤·¤Æ¤¤¤ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¤Ë¤Î¤ß +を一切使わないシステムや、 +存在しないファイルを指しているシンボリックリンクの場合にのみ .B FTW_SL -¤ò»È¤¦¥·¥¹¥Æ¥à¡¢¤Þ¤¿ +を使うシステム、また .BR ftw () -¤¬Á´¤Æ¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ËÂФ·¤Æ +が全てのシンボリックリンクに対して .B FTW_SL -¤ò»È¤¦¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ -ͽ¬²Äǽ¤ÊÆ°ºî¤ò¤µ¤»¤ë¤¿¤á¤Ë¤Ï¡¢ +を使うシステムもある。 +予測可能な動作をさせるためには、 .BR nftw () -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .LP -Linux ¤Ç¤Ï¡¢ libc4, libc5, glibc 2.0.6 ¤Ï -¡Östat ¤Ç¤­¤ë¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¥ª¥Ö¥¸¥§¥¯¥È¡× -(¥Õ¥¡¥¤¥ë, ¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯, fifo Åù) -¤ËÂФ·¤Æ¤Ï¤¹¤Ù¤Æ +Linux では、 libc4, libc5, glibc 2.0.6 は +「stat できるがディレクトリではないオブジェクト」 +(ファイル, シンボリックリンク, fifo 等) +に対してはすべて .B FTW_F -¤ò»È¤¦¡£ +を使う。 .BR nftw () -´Ø¿ô¤Ï glibc 2.1 °Ê¹ß¤ÇÍøÍѤǤ­¤ë¡£ +関数は glibc 2.1 以降で利用できる。 .B FTW_ACTIONRETVAL -¤Ï glibc ¸ÇÍ­¤Ç¤¢¤ë¡£ -.SH Îã -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢°ì¤ÄÌܤΥ³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤ò̾Á°¤Ë»ý¤Ä¥Ñ¥¹°Ê²¼¤Î -¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤òõº÷¤¹¤ë¡£°ú¤­¿ô¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ -¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤òõº÷¤¹¤ë¡£ -³Æ¡¹¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤ÆÍÍ¡¹¤Î¾ðÊó¤¬É½¼¨¤µ¤ì¤ë¡£ -ÆóÈÖÌܤΥ³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ëʸ»ú¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢ +は glibc 固有である。 +.SH 例 +以下のプログラムは、一つ目のコマンドライン引き数を名前に持つパス以下の +ディレクトリツリーを探索する。引き数が指定されなかった場合は、 +カレントディレクトリ以下を探索する。 +各々のファイルについて様々の情報が表示される。 +二番目のコマンドライン引き数に文字を指定することで、 .BR nftw () -¤ò¸Æ¤Ó½Ð¤¹ºÝ¤Ë +を呼び出す際に .I flags -°ú¤­¿ô¤ËÅϤ¹ÃͤòÀ©¸æ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +引き数に渡す値を制御することができる。 .nf #define _XOPEN_SOURCE 500 @@ -474,7 +474,7 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR stat (2), .BR fts (3), .BR readdir (3) diff --git a/release/man3/futimes.3 b/release/man3/futimes.3 index f068b776..e95ef985 100644 --- a/release/man3/futimes.3 +++ b/release/man3/futimes.3 @@ -26,13 +26,13 @@ .\" Translated 2006-07-31, Akihiro MOTOKI .\" Updated 2008-08-07, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: access time ¥¢¥¯¥»¥¹»þ¹ï -.\"WORD: modification time ½¤Àµ»þ¹ï +.\"WORD: access time アクセス時刻 +.\"WORD: modification time 修正時刻 .\" .TH FUTIMES 3 2008-04-07 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -futimes, lutimes \- ¥Õ¥¡¥¤¥ë¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×¤òÊѹ¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +futimes, lutimes \- ファイルのタイムスタンプを変更する +.SH 書式 .nf .B #include @@ -42,63 +42,63 @@ futimes, lutimes \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR futimes (), .BR lutimes (): _BSD_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR futimes () -¤Ï +は .BR utimes (2) -¤ÈƱ¤¸ÊýË¡¤Ç¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹»þ¹ï¤È½¤Àµ»þ¹ï¤òÊѹ¹¤¹¤ë¡£ -°ã¤¤¤Ï¡¢¥¿¥¤¥à¥¹¥¿¥ó¥×¤òÊѹ¹¤¹¤ë¥Õ¥¡¥¤¥ë¤ò¡¢ -¥Ñ¥¹Ì¾¤Ç¤Ï¤Ê¤¯¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +と同じ方法でファイルのアクセス時刻と修正時刻を変更する。 +違いは、タイムスタンプを変更するファイルを、 +パス名ではなく、ファイルディスクリプタ .I fd -¤òÍѤ¤¤Æ»ØÄꤹ¤ëÅÀ¤Ç¤¢¤ë¡£ +を用いて指定する点である。 .BR lutimes () -¤Ï +は .BR utimes (2) -¤ÈƱ¤¸ÊýË¡¤Ç¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹»þ¹ï¤È½¤Àµ»þ¹ï¤òÊѹ¹¤¹¤ë¡£ -°ã¤¤¤Ï¡¢ +と同じ方法でファイルのアクセス時刻と修正時刻を変更する。 +違いは、 .I filename -¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢¥ê¥ó¥¯¤ÎŸ³«¤ò¹Ô¤ï¤º¡¢ -Âå¤ï¤ê¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×¤òÊѹ¹¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤·¡¢ +がシンボリック・リンクを参照している場合に、リンクの展開を行わず、 +代わりにシンボリック・リンクのタイムスタンプを変更する。 +.SH 返り値 +成功すると 0 を返す。エラーの場合 \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ -¥¨¥é¡¼¤Ï +を適切に設定する。 +.SH エラー +エラーは .BR utimes (2) -¤ÈƱ¤¸¤À¤¬¡¢ +と同じだが、 .BR futimes () -¤Ç¤Ï°Ê²¼¤Î¥¨¥é¡¼¤¬ÄɲäˤʤäƤ¤¤ë: +では以下のエラーが追加になっている: .TP .B EBADF .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B ENOSYS .I /proc -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤«¤Ã¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +ファイルシステムにアクセスできなかった。 +.SH バージョン .BR futimes () -¤Ï glibc 2.3 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +は glibc 2.3 以降で利用可能である。 .BR lutimes () -¤Ï glibc 2.6 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ê¡¢ +は glibc 2.6 以降で利用可能であり、 .BR utimensat (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +システムコールを使って実装されている。 .BR utimensat (2) -¤Ï¥«¡¼¥Í¥ë 2.6.22 °Ê¹ß¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò -¤³¤ì¤é¤Î´Ø¿ô¤Ï¤É¤Îɸ½à¤Ç¤âµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -Linux °Ê³°¤Ç¤Ï¡¢¤³¤ì¤é¤Ï BSD ¤Ç¤Î¤ßÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +はカーネル 2.6.22 以降でサポートされている。 +.SH 準拠 +これらの関数はどの標準でも規定されていない。 +Linux 以外では、これらは BSD でのみ利用可能である。 +.SH 関連項目 .BR utime (2), .BR utimensat (2), .BR symlink (7) diff --git a/release/man3/fwide.3 b/release/man3/fwide.3 index 10459ef9..93a09d3e 100644 --- a/release/man3/fwide.3 +++ b/release/man3/fwide.3 @@ -17,9 +17,9 @@ .\" by HANATAKA Shinya .\" .TH FWIDE 3 2011-09-17 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -fwide \- FILE ¥¹¥È¥ê¡¼¥à¤ÎÆþ½ÐÎÏñ°Ì¤òÀßÄê¤Þ¤¿¤Ï¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +fwide \- FILE ストリームの入出力単位を設定または取得する +.SH 書式 .nf .B #include .sp @@ -42,54 +42,54 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ -\fImode\fP ¤¬¥¼¥í¤Ê¤é¤Ð +.SH 説明 +\fImode\fP がゼロならば .BR fwide () -´Ø¿ô¤Ï \fIstream\fP ¤Î¸½ºß¤Î -Æþ½ÐÎÏñ°Ì¤ò·èÄꤷ¤ÆÊÖ¤¹¡£\fIstream\fP ¤¬¥ï¥¤¥Éʸ»úñ°Ì¤Î¤È¤­¡¢ -¤¹¤Ê¤ï¤Á¥ï¥¤¥Éʸ»ú I/O ¤Ïµö¤µ¤ì¤Æ¥Ð¥¤¥È (char) I/O ¤Ïµö¤µ¤ì¤Æ¤¤¤Ê¤¤ -¤È¤­¤Ë¤Ï¡¢Àµ¤ÎÃͤòÊÖ¤¹¡£ -\fIstream\fP ¤¬¥Ð¥¤¥Èñ°Ì¤Î¤È¤­¡¢¤¹¤Ê¤ï¤Á¥Ð¥¤¥È I/O ¤Ïµö¤µ¤ì¤Æ -¥ï¥¤¥Éʸ»ú I/O ¤Ïµö¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¤­¤Ë¤Ï¡¢Éé¤ÎÃͤòÊÖ¤¹¡£ -\fIstream\fP ¤ÎÆþ½ÐÎÏñ°Ì¤¬¤Þ¤À·èÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¥¼¥í¤¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤Î¾ì¹ç¤Ë¤Ï¼¡¤Î I/O Áàºî¤Ë¤è¤Ã¤ÆÆþ½ÐÎÏñ°Ì¤¬Êѹ¹¤µ¤ì¤ë -(¥Ð¥¤¥È I/O Áàºî¤Î¾ì¹ç¤Ë¤Ï¥Ð¥¤¥Èñ°Ì¤Ë¡¢¥ï¥¤¥Éʸ»ú I/O Áàºî¤Î¾ì¹ç¤Ë¤Ï -¥ï¥¤¥Éʸ»úñ°Ì¤Ë¤Ê¤ë)¡£ +関数は \fIstream\fP の現在の +入出力単位を決定して返す。\fIstream\fP がワイド文字単位のとき、 +すなわちワイド文字 I/O は許されてバイト (char) I/O は許されていない +ときには、正の値を返す。 +\fIstream\fP がバイト単位のとき、すなわちバイト I/O は許されて +ワイド文字 I/O は許されていないときには、負の値を返す。 +\fIstream\fP の入出力単位がまだ決定されていない場合にはゼロが返される。 +この場合には次の I/O 操作によって入出力単位が変更される +(バイト I/O 操作の場合にはバイト単位に、ワイド文字 I/O 操作の場合には +ワイド文字単位になる)。 .PP -°ìÅÙ¥¹¥È¥ê¡¼¥à¤ÎÆþ½ÐÎÏñ°Ì¤¬·è¤Þ¤ë¤È¡¢Êѹ¹¤¹¤ë¤³¤È¤Ï¤Ç¤­¤º¡¢ -¥¹¥È¥ê¡¼¥à¤¬¥¯¥í¡¼¥º (close) ¤µ¤ì¤ë¤Þ¤ÇÊÝ»ý¤µ¤ì¤ë¡£ +一度ストリームの入出力単位が決まると、変更することはできず、 +ストリームがクローズ (close) されるまで保持される。 .PP -\fImode\fP ¤¬¥¼¥í¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï +\fImode\fP がゼロでない場合には .BR fwide () -´Ø¿ô¤ÏºÇ½é¤Ë \fIstream\fP -¤ÎÆþ½ÐÎÏñ°Ì¤òÀßÄꤷ¤è¤¦¤È¤¹¤ë -(\fImode\fP ¤¬ 0 ¤è¤êÂ礭¤¤¾ì¹ç¤Ë¤Ï¥ï¥¤¥Éʸ»úñ°Ì¤Ë¡¢ -\fImode\fP ¤¬ 0 ¤è¤ê¾®¤µ¤¤¾ì¹ç¤Ë¤Ï¥Ð¥¤¥Èñ°Ì¤ËÀßÄꤷ¤è¤¦¤È¤¹¤ë)¡£ -¤½¤·¤Æ¾åµ­¤ÈƱÍͤ˸½ºß¤ÎÆþ½ÐÎÏñ°Ì¤òÊÖ¤¹¡£ +関数は最初に \fIstream\fP +の入出力単位を設定しようとする +(\fImode\fP が 0 より大きい場合にはワイド文字単位に、 +\fImode\fP が 0 より小さい場合にはバイト単位に設定しようとする)。 +そして上記と同様に現在の入出力単位を返す。 -.SH ÊÖ¤êÃÍ +.SH 返り値 .BR fwide () -´Ø¿ô¤Ï¥¹¥È¥ê¡¼¥à¤ÎÆþ½ÐÎÏñ°Ì¤ÎÀßÄê¤ò»î¤ß¤¿¸å¤Ë¤½¤ÎÃͤòÊÖ¤¹¡£ -Àµ¤ÎÊÖ¤êÃͤϥ磻¥Éʸ»úñ°Ì¤ò¡¢Éé¤ÎÊÖ¤êÃͤϥХ¤¥Èñ°Ì¤ò°ÕÌ£¤¹¤ë¡£ -ÊÖ¤êÃͤ¬ 0 ¤Ê¤é¤Ð̤·èÄê¤ò°ÕÌ£¤¹¤ë¡£ -.SH ½àµò +関数はストリームの入出力単位の設定を試みた後にその値を返す。 +正の返り値はワイド文字単位を、負の返り値はバイト単位を意味する。 +返り値が 0 ならば未決定を意味する。 +.SH 準拠 C99, POSIX.1-2001. -.SH Ãí°Õ -¥Ð¥¤¥Èñ°Ì¤Î¥¹¥È¥ê¡¼¥à¤Ë¥ï¥¤¥Éʸ»ú¤ò½ÐÎϤˤ¹¤ë¤Ë¤Ï +.SH 注意 +バイト単位のストリームにワイド文字を出力にするには .BR fprintf (3) -´Ø¿ô¤Î +関数の .B %lc -ÊÑ´¹¤ä +変換や .B %ls -ÊÑ´¹¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +変換を使用することができる。 .PP -¥ï¥¤¥Éʸ»úñ°Ì¤Î¥¹¥È¥ê¡¼¥à¤Ë¥Ð¥¤¥Èñ°Ì¤Î½ÐÎϤò¹Ô¤¦¤Ë¤Ï +ワイド文字単位のストリームにバイト単位の出力を行うには .BR fwprintf (3) -´Ø¿ô¤Î +関数の .B %c -ÊÑ´¹¤ä +変換や .B %s -ÊÑ´¹¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +変換を使用することができる。 +.SH 関連項目 .BR fprintf (3), .BR fwprintf (3) diff --git a/release/man3/gamma.3 b/release/man3/gamma.3 index b7ed45b9..8e98b5ea 100644 --- a/release/man3/gamma.3 +++ b/release/man3/gamma.3 @@ -14,9 +14,9 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH GAMMA 3 2008-08-05 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -gamma, gammaf, gammal \- ¥¬¥ó¥Þ´Ø¿ô (¤Î¼«Á³Âпô) -.SH ½ñ¼° +.SH 名前 +gamma, gammaf, gammal \- ガンマ関数 (の自然対数) +.SH 書式 .B #include .sp .BI "double gamma(double " x ");" @@ -25,12 +25,12 @@ gamma, gammaf, gammal \- .br .BI "long double gammal(long double " x ");" .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -45,67 +45,67 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 600 .\" Also seems to work: -std=c99 -D_XOPEN_SOURCE .RE .ad b -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤ÏÈó¿ä¾©¤Ç¤¢¤ë¡£¤½¤ÎÂå¤ï¤ê¡¢¾ìÌ̤˱þ¤¸¤Æ +.SH 説明 +これらの関数は非推奨である。その代わり、場面に応じて .BR tgamma (3) -¤« +か .BR lgamma (3) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 -¥¬¥ó¥Þ´Ø¿ô¤ÎÄêµÁ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +ガンマ関数の定義については、 .BR tgamma (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SS *BSDÈÇ -4.4BSD ¤Î libm ¤È FreeBSD ¤Î¤¤¤¯¤Ä¤«¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤Ï¡¢´Ø¿ô +を参照のこと。 +.SS *BSD版 +4.4BSD の libm と FreeBSD のいくつかのバージョンには、関数 .BR gamma () -¤¬´Þ¤Þ¤ì¤Æ¤ª¤ê¡¢´üÂÔÄ̤ꥬ¥ó¥Þ´Ø¿ô¤ò·×»»¤Ç¤­¤ë¡£ -.SS glibcÈÇ -Glibc¤Ï¡¢´Ø¿ô +が含まれており、期待通りガンマ関数を計算できる。 +.SS glibc版 +Glibcは、関数 .BR gamma () -¤ò´Þ¤ó¤Ç¤¤¤ë¤¬¡¢¤³¤ì¤Ï +を含んでいるが、これは .BR lgamma (3) -¤ÈÅù²Á¤Ç¤¢¤ê¡¢¥¬¥ó¥Þ´Ø¿ô¤Î¼«Á³Âпô¤ò·×»»¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ +と等価であり、ガンマ関数の自然対数を計算する。 +.SH 返り値 .BR lgamma (3) -¤ò»²¾È¡£ -.SH ¥¨¥é¡¼ +を参照。 +.SH エラー .BR lgamma (3) -¤ò»²¾È¡£ -.SH ½àµò -¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¿¶Éñ¤¤¤¬°Û¤Ê¤ë¤È¤¤¤¦Îò»ËŪ¤Ê·Ð°Þ¤Î¤¿¤á¡¢ -¤³¤Î´Ø¿ô¤Ï¤É¤Îɸ½àµ¬³Ê¤Ç¤âµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH Ãí°Õ -.SS Îò»Ë -4.2BSD¤Ë¤ª¤¤¤Æ¤Ï¡¢´Ø¿ô +を参照。 +.SH 準拠 +システムによって振舞いが異なるという歴史的な経緯のため、 +この関数はどの標準規格でも規定されていない。 +.SH 注意 +.SS 歴史 +4.2BSDにおいては、関数 .BR gamma () -¤¬¼ÂºÝ¤Ë·×»»¤¹¤ë¤Î¤Ï +が実際に計算するのは .RI ln(|Gamma(| x |)|) -¤Ç¤¢¤ê¡¢ +であり、 .RI Gamma(| x |) -¤ÎÉä¹æ¤¬ extern int \fIsigngam\fP ¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤¿¡£ -4.3BSD¤Ë¤Ê¤Ã¤Æ´Ø¿ô̾¤¬Êѹ¹¤µ¤ì¡¢ +の符号が extern int \fIsigngam\fP に格納されていた。 +4.3BSDになって関数名が変更され、 .BR lgamma (3) -¤È¤Ê¤ê¡¢¤½¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Ï +となり、そのマニュアルページでは .sp .in +4n -¡Ö¤¤¤Ä¤ÎÆü¤« gamma ¤Î̾¤ÏÉü³è¤·¡¢¥¬¥ó¥Þ´Ø¿ô¤Ë´§¤µ¤ì¤ë¤Ç¤¢¤í¤¦¡× +「いつの日か gamma の名は復活し、ガンマ関数に冠されるであろう」 .in .sp -¤È¤¤¤¦ÀÀ¤¤¤¬½Ò¤Ù¤é¤ì¤Æ¤¤¤¿¡£ +という誓いが述べられていた。 .\" The FreeBSD man page says about gamma() that it is like lgamma() .\" except that is does not set signgam. .\" Also, that 4.4BSD has a gamma() that computes the true gamma function. -¤³¤ì¤Ï4.4BSD¤Ë¤Ê¤Ã¤Æ¼Â¸½¤µ¤ì¡¢ +これは4.4BSDになって実現され、 .BR gamma () -¤Ï¤Þ¤µ¤Ë¥¬¥ó¥Þ´Ø¿ô¤ò·×»»¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ -(¤â¤¦ \fIsigngam\fP ¤Ë¤ÏºîÍѤ·¤Ê¤¤¡£) -¤È¤³¤í¤¬¡¢¤³¤ì¤¬Åо줹¤ë»þ´ü¤¬ÃÙ¤¹¤®¤¿¤¿¤á¡¢ +はまさにガンマ関数を計算するようになった。 +(もう \fIsigngam\fP には作用しない。) +ところが、これが登場する時期が遅すぎたため、 .BR tgamma (3) -¤È¤¤¤¦¡ÖËÜÅö¤Î¥¬¥ó¥Þ´Ø¿ô¡×¤¬¤¹¤Ç¤Ë¸ºß¤·¤Æ¤¤¤ë¤Î¤Ç¤¢¤ë¡£ -.\" FreeBSD¤Î¥Þ¥Ë¥å¥¢¥ë¤Ë¤è¤ì¤Ð¡¢gamma()¤Ïsigngam¤ò¥»¥Ã¥È¤·¤Ê¤¤ -.\" ¤³¤È¤ò½ü¤±¤Ðlgamma()¤ÈƱÍͤÀ¤È¤¤¤¦¡£ -.\" ¤Þ¤¿¡¢4.4BSD¤Ç¤Ïgamma()¤ÏËÜÅö¤Î¥¬¥ó¥Þ´Ø¿ô¤ò·×»»¤¹¤ë¤È¤â¤¤¤¦¡£ -.SH ´ØÏ¢¹àÌÜ +という「本当のガンマ関数」がすでに存在しているのである。 +.\" FreeBSDのマニュアルによれば、gamma()はsigngamをセットしない +.\" ことを除けばlgamma()と同様だという。 +.\" また、4.4BSDではgamma()は本当のガンマ関数を計算するともいう。 +.SH 関連項目 .BR lgamma (3), .BR signgam (3), .BR tgamma (3) diff --git a/release/man3/gcvt.3 b/release/man3/gcvt.3 index d1673b1c..0304675a 100644 --- a/release/man3/gcvt.3 +++ b/release/man3/gcvt.3 @@ -35,9 +35,9 @@ .\" Updated 2009-04-24, Akihiro MOTOKI, LDP v3.20 .\" .TH GCVT 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -gcvt \- ÉâÆ°¾®¿ôÅÀ¿ô¤òʸ»úÎó¤ØÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +gcvt \- 浮動小数点数を文字列へ変換する +.SH 書式 .nf .B #include .sp @@ -45,9 +45,9 @@ gcvt \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR gcvt (): @@ -55,7 +55,7 @@ glibc .PD 0 .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: .nf _SVID_SOURCE || (_XOPEN_SOURCE\ >=\ 500 || @@ -63,36 +63,36 @@ _SVID_SOURCE || !(_POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600) .fi .TP 4 -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED .RE .PD .ad b -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR gcvt () -¤Ï¡¢ \fInumber\fP ¤ò¡¢ºÇû¤ÎŤµ¤Î NULL ½ªÃ¼¤µ¤ì¤¿ ASCII -ʸ»úÎó¤ØÊÑ´¹¤·¡¢ÊÑ´¹¸å¤Îʸ»úÎó¤ò \fIbuf\fP ¤Ë³ÊǼ¤¹¤ë¡£ +は、 \fInumber\fP を、最短の長さの NULL 終端された ASCII +文字列へ変換し、変換後の文字列を \fIbuf\fP に格納する。 .BR printf (3) -¤Î F ¥Õ¥©¡¼¥Þ¥Ã¥È¤ä E ¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¤è¤¦¤Ë \fIndigit\fP ·å¤Î -Í­¸ú¿ô»ú¤òÀ¸À®¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -´Ø¿ô +の F フォーマットや E フォーマットのように \fIndigit\fP 桁の +有効数字を生成する。 +.SH 返り値 +関数 .BR gcvt () -¤Ïʸ»úÎó \fIbuf\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -.SH ½àµò -POSIX.1-2001 ¤Ç¤Ï¡¢ -¤³¤Î´Ø¿ô¤Ï¡Ö²áµî¤Î̾»Ä (LEGACY)¡×¤È°ÌÃÖÉÕ¤±¤é¤ì¤Æ¤¤¤ë¡£ -POSIX.1-2008 ¤Ç¤Ï¡¢ +は文字列 \fIbuf\fP へのポインタを返す。 +.SH 準拠 +POSIX.1-2001 では、 +この関数は「過去の名残 (LEGACY)」と位置付けられている。 +POSIX.1-2008 では、 .BR gcvt () -¤Î»ÅÍͤϺï½ü¤µ¤ì¡¢ -Âå¤ï¤ê¤Ë +の仕様は削除され、 +代わりに .BR sprintf (3) -¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë +を使用することが推奨されている .RB ( snprintf (3) -¤ÎÊý¤¬Å¬ÀÚ¤«¤â¤·¤ì¤Ê¤¤¤¬)¡£ -.SH ´ØÏ¢¹àÌÜ +の方が適切かもしれないが)。 +.SH 関連項目 .BR ecvt (3), .BR fcvt (3), .BR sprintf (3) diff --git a/release/man3/getaddrinfo.3 b/release/man3/getaddrinfo.3 index e29daed6..c8e6faa8 100644 --- a/release/man3/getaddrinfo.3 +++ b/release/man3/getaddrinfo.3 @@ -49,13 +49,13 @@ .\" Updated 2008-12-26, Akihiro MOTOKI, LDP v3.15 .\" Updated 2010-04-18, Akihiro MOTOKI, LDP v3.24 .\" -.\"WORD: null pointer ¥Ì¥ë¡¦¥Ý¥¤¥ó¥¿ +.\"WORD: null pointer ヌル・ポインタ .\" .TH GETADDRINFO 3 2010-09-27 "GNU" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 getaddrinfo, freeaddrinfo, gai_strerror \- -¥Í¥Ã¥È¥ï¡¼¥¯¤Î¥¢¥É¥ì¥¹¤È¥µ¡¼¥Ó¥¹¤òÊÑ´¹¤¹¤ë -.SH ½ñ¼° +ネットワークのアドレスとサービスを変換する +.SH 書式 .nf .B #include .B #include @@ -71,9 +71,9 @@ getaddrinfo, freeaddrinfo, gai_strerror \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .ad l .in .sp @@ -84,40 +84,40 @@ glibc _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR getaddrinfo () -¤Ï¡¢(¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Î¥Û¥¹¥È¤È¥µ¡¼¥Ó¥¹¤ò¼±Ê̤¹¤ë) +は、(インターネットのホストとサービスを識別する) .I node -¤È +と .I service -¤òÅϤ¹¤È¡¢°ì¤Ä°Ê¾å¤Î +を渡すと、一つ以上の .I addrinfo -¹½Â¤ÂΤòÊÖ¤¹¡£¤½¤ì¤¾¤ì¤Î +構造体を返す。それぞれの .I addrinfo -¹½Â¤ÂΤˤϡ¢ +構造体には、 .BR bind (2) -¤ä +や .BR connect (2) -¤ò¸Æ¤Ó½Ð¤¹ºÝ¤Ë»ØÄê¤Ç¤­¤ë¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥¢¥É¥ì¥¹¤¬³ÊǼ¤µ¤ì¤Æ¤¤¤ë¡£ +を呼び出す際に指定できるインターネットアドレスが格納されている。 .BR getaddrinfo () -´Ø¿ô¤Ï¡¢ +関数は、 .\" .BR getipnodebyname (3), .\" .BR getipnodebyaddr (3), .BR getservbyname (3) -¤È +と .BR getservbyport (3) -¤Îµ¡Ç½¤ò¤Þ¤È¤á¤Æ°ì¤Ä¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤·¤¿¤â¤Î¤Ç¤¢¤ë¤¬¡¢ -¤³¤ì¤é¤Î´Ø¿ô¤È°ã¤¤¡¢ +の機能をまとめて一つのインターフェースにしたものであるが、 +これらの関数と違い、 .BR getaddrinfo () -¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤¢¤ê¡¢ +はリエントラントであり、 .BR getaddrinfo () -¤ò»È¤¦¤³¤È¤Ç¥×¥í¥°¥é¥à¤Ï IPv4 ¤È IPv6 ¤Î°ã¤¤¤Ë´Ø¤¹¤ë°Í¸´Ø·¸¤ò -¤Ê¤¯¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +を使うことでプログラムは IPv4 と IPv6 の違いに関する依存関係を +なくすことができる。 .PP .BR getaddrinfo () -¤¬ÍѤ¤¤ë +が用いる .I addrinfo -¹½Â¤ÂΤϰʲ¼¤Î¥Õ¥£¡¼¥ë¥É¤ò´Þ¤à¡£ +構造体は以下のフィールドを含む。 .sp .in +4n .nf @@ -135,319 +135,319 @@ struct addrinfo { .in .PP .I hints -°ú¤­¿ô¤Ï +引き数は .I addrinfo -¹½Â¤ÂΤò»Ø¤·¼¨¤·¡¢¤³¤Î¹½Â¤ÂΤòÍѤ¤¤Æ +構造体を指し示し、この構造体を用いて .I res -¤¬»Ø¤¹¥ê¥¹¥È¤ËÆþ¤ì¤ÆÊÖ¤¹¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¹½Â¤ÂΤòÁªÂò¤¹¤ë¤¿¤á¤Î´ð½à¤ò»ØÄꤹ¤ë¡£ +が指すリストに入れて返すソケットアドレス構造体を選択するための基準を指定する。 .I hints -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が NULL でない場合、 .I hints -¤Ï +は .I addrinfo -¹½Â¤ÂΤò»Ø¤·¼¨¤·¡¢¤½¤Î¹½Â¤ÂΤΥե£¡¼¥ë¥É +構造体を指し示し、その構造体のフィールド .IR ai_family , .IR ai_socktype , .I ai_protocol -¤Ç +で .BR getaddrinfo () -¤¬ÊÖ¤¹¥½¥±¥Ã¥È¥¢¥É¥ì¥¹½¸¹ç¤ËÂФ¹¤ë´ð½à¤ò»ØÄꤹ¤ë¡£ +が返すソケットアドレス集合に対する基準を指定する。 .TP 12 .I ai_family -¤³¤Î¥Õ¥£¡¼¥ë¥É¤ÏÊÖ¤µ¤ì¤ë¥¢¥É¥ì¥¹¤Î´õ˾¤Î¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤ò»ØÄꤹ¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ë»ØÄê¤Ç¤­¤ëÍ­¸ú¤ÊÃͤȤ·¤Æ¤Ï +このフィールドは返されるアドレスの希望のアドレスファミリーを指定する。 +このフィールドに指定できる有効な値としては .B AF_INET -¤È +と .B AF_INET6 -¤¬¤¢¤ë¡£ -¤Þ¤¿¡¢ÃÍ +がある。 +また、値 .B AF_UNSPEC -¤ò»ØÄꤹ¤ë¤È¡¢ +を指定すると、 .BR getaddrinfo () -¤Ï +は .I node -¤È +と .I service -¤Ç»ÈÍѤǤ­¤ë¤¤¤º¤ì¤«¤Î¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼ (Î㤨¤Ð IPv4 ¤« IPv6) ¤Î -¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤òÊÖ¤¹¤³¤È¤òµá¤á¤é¤ì¤ë¡£ +で使用できるいずれかのアドレスファミリー (例えば IPv4 か IPv6) の +ソケットアドレスを返すことを求められる。 .TP .I ai_socktype -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¿ä¾©¤Î¥½¥±¥Ã¥È·¿ (Î㤨¤Ð +このフィールドは推奨のソケット型 (例えば .B SOCK_STREAM -¤ä +や .BR SOCK_DGRAM ) -¤ò»ØÄꤹ¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ë 0 ¤ò»ØÄꤹ¤ë¤È¡¢Ç¤°Õ¤Î¥½¥±¥Ã¥È·¿¤Î¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤ò +を指定する。 +このフィールドに 0 を指定すると、任意のソケット型のソケットアドレスを .BR getaddrinfo () -¤¬ÊÖ¤·¤Æ¤è¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +が返してよいことを意味する。 .TP .I ai_protocol -¤³¤Î¥Õ¥£¡¼¥ë¥É¤ÏÊÖ¤µ¤ì¤ë¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Î¥×¥í¥È¥³¥ë¤ò»ØÄꤹ¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ë 0 ¤ò»ØÄꤹ¤ë¤È¡¢Ç¤°Õ¤Î¥×¥í¥È¥³¥ë¤Î¤Î¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤ò +このフィールドは返されるソケットアドレスのプロトコルを指定する。 +このフィールドに 0 を指定すると、任意のプロトコルののソケットアドレスを .BR getaddrinfo () -¤¬ÊÖ¤·¤Æ¤è¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +が返してよいことを意味する。 .TP .I ai_flags -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢ÄɲäΥª¥×¥·¥ç¥ó (²¼µ­) ¤ò»ØÄꤹ¤ë¡£ -Ê£¿ô¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ëºÝ¤Ë¤Ï¡¢¤½¤ì¤é¤Î¥Ó¥Ã¥Èñ°Ì¤Î OR ¤ò¤È¤Ã¤Æ»ØÄꤹ¤ë¡£ +このフィールドは、追加のオプション (下記) を指定する。 +複数のフラグを指定する際には、それらのビット単位の OR をとって指定する。 .PP .I hints -¤¬»Ø¤·¼¨¤¹¹½Â¤ÂΤξ¤Î¤¹¤Ù¤Æ¤Î¥Õ¥£¡¼¥ë¥É¤Ë¤Ï -0 ¤« NULL ¥Ý¥¤¥ó¥¿¤òŬÀÚ¤ËÆþ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +が指し示す構造体の他のすべてのフィールドには +0 か NULL ポインタを適切に入れなければならない。 .I hints -¤Ë NULL ¤ò»ØÄꤹ¤ë¤Î¤Ï¡¢ +に NULL を指定するのは、 .I ai_socktype -¤È +と .I ai_protocol -¤Ë 0 ¤ò¡¢ +に 0 を、 .I ai_family -¤Ë +に .B AF_UNSPEC -¤ò¡¢ +を、 .I ai_flags -¤Ë +に .B "(AI_V4MAPPED\ |\ AI_ADDRCONFIG)" -¤òÀßÄꤹ¤ë¤Î¤ÈÅù²Á¤Ç¤¢¤ë¡£ +を設定するのと等価である。 .I node -¤Ë¤Ï¡¢¿ôÃÍ·Á¼°¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹ -(IPv4 ¤Î¾ì¹ç¤Ï +には、数値形式のネットワークアドレス +(IPv4 の場合は .BR inet_aton (3) -¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥É¥Ã¥È¶èÀÚ¤ê¤Î¿ô»ú¤Ë¤è¤ëɽµ­¡¢ -IPv6 ¤Î¾ì¹ç¤Ï +でサポートされているドット区切りの数字による表記、 +IPv6 の場合は .BR inet_pton (3) -¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë 16 ¿Ê¿ô¤Îʸ»úÎó·Á¼°) ¤â¤·¤¯¤Ï -¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È̾¤ò»ØÄꤹ¤ë¡£ -¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È̾¤ò»ØÄꤷ¤¿¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤¬¸¡º÷¤µ¤ì¡¢ -̾Á°²ò·è¤¬¹Ô¤Ê¤ï¤ì¤ë¡£ +でサポートされている 16 進数の文字列形式) もしくは +ネットワークホスト名を指定する。 +ネットワークホスト名を指定した場合には、そのネットワークアドレスが検索され、 +名前解決が行なわれる。 .I hints.ai_flags -¤Ë +に .B AI_NUMERICHOST -¥Õ¥é¥°¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ +フラグが含まれている場合は、 .I node -¤Ï¿ôÃÍ·Á¼°¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は数値形式のネットワークアドレスでなければならない。 .B AI_NUMERICHOST -¥Õ¥é¥°¤ò»È¤¦¤È¡¢»þ´Ö¤Î³Ý¤«¤ë²ÄǽÀ­¤Î¤¢¤ë¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È¥¢¥É¥ì¥¹¤Î¸¡º÷¤Ï -¤¹¤Ù¤ÆÍÞÀ©¤µ¤ì¤ë¡£ +フラグを使うと、時間の掛かる可能性のあるネットワークホストアドレスの検索は +すべて抑制される。 .PP .IR hints.ai_flags -¤Ë +に .B AI_PASSIVE -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¡¢¤«¤Ä +フラグが指定され、かつ .I node -¤¬ NULL ¤Î¾ì¹ç¡¢ -ÊÖ¤µ¤ì¤ë¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Ï -¥³¥Í¥¯¥·¥ç¥ó¤ò +が NULL の場合、 +返されるソケットアドレスは +コネクションを .BR accept (2) -¤¹¤ë¤¿¤á¤Î¥½¥±¥Ã¥È¤ò +するためのソケットを .BR bind (2) -¤¹¤ë¤Î¤ËŬ¤·¤¿¤â¤Î¤È¤Ê¤ë¡£ -ÊÖ¤µ¤ì¤ë¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Ë¤Ï¡Ö¥ï¥¤¥ë¥É¥«¡¼¥É¡¦¥¢¥É¥ì¥¹¡× -(IPv4 ¥¢¥É¥ì¥¹¤Î¾ì¹ç¤Ï -.BR INADDR_ANY ¡¢ -IPv6 ¥¢¥É¥ì¥¹¤Î¾ì¹ç¤Ï +するのに適したものとなる。 +返されるソケットアドレスには「ワイルドカード・アドレス」 +(IPv4 アドレスの場合は +.BR INADDR_ANY 、 +IPv6 アドレスの場合は .BR IN6ADDR_ANY_INIT ) -¤¬Æþ¤ë¡£ -¥ï¥¤¥ë¥É¥«¡¼¥É¡¦¥¢¥É¥ì¥¹¤Ï¡¢Ç¤°Õ¤Î¥Û¥¹¥È¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤ÇÀܳ¤ò -¼õ¤±ÉÕ¤±¤è¤¦¤È¤¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó (Ä̾ï¤Ï¥µ¡¼¥Ð¡¼) ¤ÇÍѤ¤¤é¤ì¤ë¡£ +が入る。 +ワイルドカード・アドレスは、任意のホストのネットワークアドレスで接続を +受け付けようとするアプリケーション (通常はサーバー) で用いられる。 .I node -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が NULL でない場合、 .B AI_PASSIVE -¥Õ¥é¥°¤Ï̵»ë¤µ¤ì¤ë¡£ +フラグは無視される。 .PP .I hints.ai_flags -¤Ë +に .B AI_PASSIVE -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -ÊÖ¤µ¤ì¤ë¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Ï +フラグがセットされていない場合、 +返されるソケットアドレスは .BR connect (2), .BR sendto (2), .BR sendmsg (2) -¤Ç¤Î»ÈÍѤËŬ¤·¤¿¤â¤Î¤È¤Ê¤ë¡£ +での使用に適したものとなる。 .I node -¤¬ NULL ¤Î¾ì¹ç¡¢¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤Ë¤Ï¥ë¡¼¥×¥Ð¥Ã¥¯¡¦¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Î -¥¢¥É¥ì¥¹ (IPv4 ¥¢¥É¥ì¥¹¤Î¾ì¹ç¤Ï +が NULL の場合、ネットワークアドレスにはループバック・インターフェイスの +アドレス (IPv4 アドレスの場合は .BR INADDR_LOOPBACK -IPv6 ¥¢¥É¥ì¥¹¤Î¾ì¹ç¤Ï -.BR IN6ADDR_LOOPBACK_INIT ) ¤¬ÀßÄꤵ¤ì¤ë¡£ -¤³¤ì¤ÏƱ¤¸¥Û¥¹¥È¾å¤ÇÆ°ºî¤·¤Æ¤¤¤ëÀܳÁê¼ê¤ÈÄÌ¿®¤¹¤ë¤è¤¦¤Ê -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÇÍѤ¤¤é¤ì¤ë¡£ +IPv6 アドレスの場合は +.BR IN6ADDR_LOOPBACK_INIT ) が設定される。 +これは同じホスト上で動作している接続相手と通信するような +アプリケーションで用いられる。 .PP .I service -¤Ë¤è¤ê¡¢ÊÖ¤µ¤ì¤ë³Æ¥¢¥É¥ì¥¹¹½Â¤ÂΤΥݡ¼¥ÈÈֹ椬·è¤Þ¤ë¡£ -¤³¤Î°ú¤­¿ô¤¬¥µ¡¼¥Ó¥¹Ì¾ +により、返される各アドレス構造体のポート番号が決まる。 +この引き数がサービス名 .RB ( services (5) -»²¾È) ¤Î¾ì¹ç¡¢Âбþ¤¹¤ë¥Ý¡¼¥ÈÈÖ¹æ¤ËËÝÌõ¤µ¤ì¤ë¡£ -¤³¤Î°ú¤­¿ô¤Ë¤Ï 10 ¿Ê¿ô¤â»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¡¢ -¤³¤Î¾ì¹ç¤Ë¤Ï¥Ð¥¤¥Ê¥ê¤Ø¤ÎÊÑ´¹¤À¤±¤¬¹Ô¤ï¤ì¤ë¡£ +参照) の場合、対応するポート番号に翻訳される。 +この引き数には 10 進数も指定することができ、 +この場合にはバイナリへの変換だけが行われる。 .I service -¤¬ NULL ¤Î¾ì¹ç¡¢ÊÖ¤µ¤ì¤ë¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Î¥Ý¡¼¥ÈÈÖ¹æ¤Ï -½é´ü²½¤µ¤ì¤Ê¤¤¤Þ¤Þ¤È¤Ê¤ë¡£ +が NULL の場合、返されるソケットアドレスのポート番号は +初期化されないままとなる。 .I hints.ai_flags -¤Ë +に .B AI_NUMERICSERV -¤¬»ØÄꤵ¤ì¡¢¤«¤Ä +が指定され、かつ .I service -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ +が NULL でない場合、 .I service -¤Ï¿ôÃͤΥݡ¼¥ÈÈÖ¹æ¤ò´Þ¤àʸ»úÎó¤ò»Ø¤·¼¨¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤Î¥Õ¥é¥°¤Ï¡¢Ì¾Á°²ò·è¥µ¡¼¥Ó¥¹¤¬ÉÔÍפǤ¢¤ë¤³¤È¤¬Ê¬¤«¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢ -¥µ¡¼¥Ó¥¹¤Îµ¯Æ°¤òÍÞÀ©¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ +は数値のポート番号を含む文字列を指し示さなければならない。 +このフラグは、名前解決サービスが不要であることが分かっている場合に、 +サービスの起動を抑制するために用いられる。 .PP .I node -¤È +と .I service -¤Î¤É¤Á¤é¤«¤Ï NULL ¤Ë¤·¤Æ¤è¤¤¤¬¡¢Î¾ÊýƱ»þ¤Ë NULL ¤Ë¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +のどちらかは NULL にしてよいが、両方同時に NULL にしてはならない。 .PP .BR getaddrinfo () -´Ø¿ô¤Ï¡¢ +関数は、 .I addrinfo -¹½Â¤ÂΤΥá¥â¥ê³ÎÊݤò¹Ô¤¤¡¢ +構造体のメモリ確保を行い、 .I addrinfo -¹½Â¤ÂΤΥê¥ó¥¯¥ê¥¹¥È¤ò½é´ü²½¤·¡¢ +構造体のリンクリストを初期化し、 .I res -¤Ë¥ê¥¹¥È¤ÎÀèƬ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÆþ¤ì¤ÆÊÖ¤¹¡£ -¤³¤Î¤È¤­¡¢³Æ¹½Â¤ÂΤΥͥåȥ¥¯¥¢¥É¥ì¥¹¤Ï +にリストの先頭へのポインタを入れて返す。 +このとき、各構造体のネットワークアドレスは .I node -¤È +と .I service -¤Ë°ìÃפ·¡¢ +に一致し、 .I hints -¤Ç²Ý¤µ¤ì¤¿¤¹¤Ù¤Æ¤ÎÀ©¸Â¤òËþ¤¿¤¹¤â¤Î¤È¤Ê¤ë¡£ -¥ê¥ó¥¯¥ê¥¹¥È¤ÎÍ×ÁÇ¤Ï +で課されたすべての制限を満たすものとなる。 +リンクリストの要素は .I ai_next -¥Õ¥£¡¼¥ë¥É¤Ë¤è¤êÏ¢·ë¤µ¤ì¤ë¡£ +フィールドにより連結される。 -¥ê¥ó¥¯¥ê¥¹¥È¤Î +リンクリストの .I addrinfo -¹½Â¤ÂΤÏÊ£¿ô¸Ä¤Ë¤Ê¤ë¤³¤È¤â¤¢¤ê¡¢¤½¤ÎÍýͳ¤Ï¤¤¤¯¤Ä¤«¤¢¤ë¡£ -¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È¤¬¥Þ¥ë¥Á¥Û¡¼¥à¤Ç¤¢¤ë¡¢ -Ê£¿ô¤Î¥×¥í¥È¥³¥ë¤Ç¥¢¥¯¥»¥¹¤Ç¤­¤ë (Î㤨¤Ð +構造体は複数個になることもあり、その理由はいくつかある。 +ネットワークホストがマルチホームである、 +複数のプロトコルでアクセスできる (例えば .B AF_INET -¤È +と .B AF_INET6 -¤ÎξÊý) ¡¢ -Ê£¿ô¤Î¥½¥±¥Ã¥È¼ïÊ̤ÇƱ¤¸¥µ¡¼¥Ó¥¹¤¬ÍøÍѤǤ­¤ë -(Î㤨¤Ð¡¢¤Ò¤È¤Ä¤¬ +の両方) 、 +複数のソケット種別で同じサービスが利用できる +(例えば、ひとつが .B SOCK_STREM -¥¢¥É¥ì¥¹¤Ç¡¢¤â¤¦¤Ò¤È¤Ä¤¬ +アドレスで、もうひとつが .B SOCK_DGRAM -¥¢¥É¥ì¥¹¤Ç¤¢¤ë)¡¢¤¬¤¢¤ë¡£ -Ä̾ï¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÏÊÖ¤µ¤ì¤¿½ç½ø¤Ç¥¢¥É¥ì¥¹¤ò»î¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +アドレスである)、がある。 +通常は、アプリケーションは返された順序でアドレスを試すべきである。 .BR getaddrinfo () -¤ÎÃæ¤Ç»ÈÍѤµ¤ì¤ëʤÙÂؤ¨´Ø¿ô¤Ï RFC\ 3484 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -Æüì¤Ê¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +の中で使用される並べ替え関数は RFC\ 3484 で定義されている。 +特殊なシステムでは、 .I /etc/gai.conf -¤òÊÔ½¸¤¹¤ë¤³¤È¤Ç¡¢¤³¤Î½ç½ø¤òÈùÄ´À°¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë +を編集することで、この順序を微調整することができる .RI ( /etc/gai.conf -¤Ï glibc 2.5 °Ê¹ß¤ÇÍøÍѤǤ­¤ë)¡£ +は glibc 2.5 以降で利用できる)。 .PP .I hints.ai_flags -¤Ë +に .B AI_CANONNAME -¥Õ¥é¥°¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ÊÖ¤µ¤ì¤ë¥ê¥¹¥È¤ÎºÇ½é¤Î +フラグが含まれている場合、返されるリストの最初の .I addrinfo -¹½Â¤ÂΤΠ+構造体の .I ai_canonname -¥Õ¥£¡¼¥ë¥É¤Ï¥Û¥¹¥È¤Î¸ø¼°¤Ê̾Á°¤ò»Ø¤¹¤è¤¦¤ËÀßÄꤵ¤ì¤ë¡£ +フィールドはホストの公式な名前を指すように設定される。 .\" In glibc prior to 2.3.4, the ai_canonname of each addrinfo .\" structure was set pointing to the canonical name; that was .\" more than POSIX.1-2001 specified, or other implementations provided. .\" MTK, Aug 05 -ÊÖ¤µ¤ì¤ë³Æ¡¹¤Î +返される各々の .I addrinfo -¹½Â¤ÂΤλĤê¤Î¥Õ¥£¡¼¥ë¥É¤Ï°Ê²¼¤Î¤è¤¦¤Ë½é´ü²½¤µ¤ì¤ë¡£ +構造体の残りのフィールドは以下のように初期化される。 .IP * 2 .IR ai_family , .IR ai_socktype , .I ai_protocol -¥Õ¥£¡¼¥ë¥É¤Ï¥½¥±¥Ã¥ÈÀ¸À®¥Ñ¥é¥á¡¼¥¿¤òÊÖ¤¹ -(¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Î°ÕÌ£¤Ï +フィールドはソケット生成パラメータを返す +(これらのフィールドの意味は .BR socket (2) -¤ÎƱ¤¸Ì¾Á°¤Î°ú¤­¿ô¤ÈƱ¤¸¤Ç¤¢¤ë)¡£ -Î㤨¤Ð¡¢ +の同じ名前の引き数と同じである)。 +例えば、 .I ai_family -¤Ï +は .B AF_INET -¤ä +や .B AF_INET6 -¤òÊÖ¤·¡¢ +を返し、 .I ai_socktype -¤Ï +は .B SOCK_DGRAM -¤ä +や .BR SOCK_STREAM -¤òÊÖ¤·¡¢ +を返し、 .I ai_protocol -¤Ï¤½¤Î¥½¥±¥Ã¥È¤Î¥×¥í¥È¥³¥ë¤òÊÖ¤¹¡£ +はそのソケットのプロトコルを返す。 .IP * .I ai_addr -¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬½ñ¤­¹þ¤Þ¤ì¡¢ +フィールドにはソケットアドレスへのポインタが書き込まれ、 .I ai_addrlen -¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤ÎŤµ¤¬¥Ð¥¤¥Èñ°Ì¤Ç½ñ¤­¹þ¤Þ¤ì¤ë¡£ +フィールドにはソケットアドレスの長さがバイト単位で書き込まれる。 .PP .I hints.ai_flags -¤¬ +が .B AI_ADDRCONFIG -¤ò´Þ¤à¾ì¹ç¡¢ +を含む場合、 .I res -¤¬»Ø¤¹¥ê¥¹¥È¤Ë¤Ï¡¢ -¥í¡¼¥«¥ë¥·¥¹¥Æ¥à¤ËºÇÄã°ì¤Ä¤Î IPv4 ¥¢¥É¥ì¥¹¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï -IPv4 ¥¢¥É¥ì¥¹¤¬ÊÖ¤µ¤ì¡¢ -¥í¡¼¥«¥ë¥·¥¹¥Æ¥à¤ËºÇÄã°ì¤Ä¤Î IPv6 ¥¢¥É¥ì¥¹¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï -IPv6 ¥¢¥É¥ì¥¹¤¬ÊÖ¤µ¤ì¤ë¡£ +が指すリストには、 +ローカルシステムに最低一つの IPv4 アドレスが設定されている場合は +IPv4 アドレスが返され、 +ローカルシステムに最低一つの IPv6 アドレスが設定されている場合は +IPv6 アドレスが返される。 .PP .I hint.ai_flags -¤Ë +に .B AI_V4MAPPED -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢ +が指定されていて、 .I hints.ai_family -¤Ë +に .B AF_INET6 -¤¬»ØÄꤵ¤ì¡¢ -¥Þ¥Ã¥Á¤¹¤ë IPv6 ¥¢¥É¥ì¥¹¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ +が指定され、 +マッチする IPv6 アドレスが見つからなかった場合、 .I res -¤¬»Ø¤¹¥ê¥¹¥È¤Ë¤Ï IPv4-mapped IPv6 ¥¢¥É¥ì¥¹¤¬ÊÖ¤µ¤ì¤ë¡£ +が指すリストには IPv4-mapped IPv6 アドレスが返される。 .I hints.ai_flags -¤Ë +に .B AI_V4MAPPED -¤È +と .B AI_ALL -¤ÎξÊý¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ +の両方が指定されている場合、 .I res -¤¬»Ø¤¹¥ê¥¹¥È¤Ë¤Ï IPv6 ¥¢¥É¥ì¥¹¤È IPv4-mapped IPv6 ¥¢¥É¥ì¥¹¤Î -ξÊý¤¬ÊÖ¤µ¤ì¤ë¡£ +が指すリストには IPv6 アドレスと IPv4-mapped IPv6 アドレスの +両方が返される。 .B AI_V4MAPPED -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +が指定されていない場合、 .B AI_ALL -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .PP .BR freeaddrinfo () -´Ø¿ô¤Ï¡¢ -¥ê¥ó¥¯¥ê¥¹¥È +関数は、 +リンクリスト .I res -¤ËÂФ·¤ÆưŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤ò²òÊü¤¹¤ë¡£ -.SS "¹ñºÝ²½¥É¥á¥¤¥ó̾¤Î¤¿¤á¤Î getaddrinfo() ¤Î³ÈÄ¥" +に対して動的に割り当てられたメモリを解放する。 +.SS "国際化ドメイン名のための getaddrinfo() の拡張" .PP -glibc 2.3.4 ¤«¤é¡¢ +glibc 2.3.4 から、 .BR getaddrinfo () -¤ÏÆþ½ÐÎϤ¹¤ë¥Û¥¹¥È̾¤òÆ©²áŪ¤Ë¹ñºÝ²½¥É¥á¥¤¥ó̾ (IDN) ·Á¼° (RFC 3490 ¤Î +は入出力するホスト名を透過的に国際化ドメイン名 (IDN) 形式 (RFC 3490 の .I "Internationalizing Domain Names in Applications (IDNA)" -¤ò»²¾È¤Î¤³¤È) ¤ÈÊÑ´¹¤¹¤ë¤³¤È¤òÁªÂòŪ¤Ëǧ¤á¤ë¤è¤¦¤Ë³ÈÄ¥¤µ¤ì¤Æ¤¤¤ë¡£ -4 ¤Ä¤Î¿·¤·¤¤¥Õ¥é¥°¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +を参照のこと) と変換することを選択的に認めるように拡張されている。 +4 つの新しいフラグが定義されている: .TP .B AI_IDN -¤³¤Î¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤ë¤È¡¢ +このフラグが指定されると、 .I node -¤ÇÍ¿¤¨¤é¤ì¤¿¥Î¡¼¥É̾¤ÏɬÍפ¬¤¢¤ì¤Ð IDN ·Á¼°¤ËÊÑ´¹¤µ¤ì¤ë¡£ -¥½¡¼¥¹Éä¹æ²½·Á¼°¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î¤â¤Î¤Ç¤¢¤ë¡£ - -ÆþÎÏ̾¤ËÈó ASCII ʸ»ú¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -IDN Éä¹æ²½·Á¼°¤¬»È¤ï¤ì¤ë¡£ -Èó ASCII ʸ»ú¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë(¥Ô¥ê¥ª¥É¤Ç¶èÀÚ¤é¤ì¤ë)Éôʬ¥Î¡¼¥É̾¤Ï¡¢ -̾Á°²ò·èµ¡Ç½¤ËÅϤµ¤ì¤ëÁ°¤Ë ASCII ¸ß´¹Éä¹æ²½·Á¼° (ACE) ¤ò»È¤Ã¤Æ -Éä¹æ²½¤µ¤ì¤ë¡£ +で与えられたノード名は必要があれば IDN 形式に変換される。 +ソース符号化形式は現在のロケールのものである。 + +入力名に非 ASCII 文字が含まれている場合、 +IDN 符号化形式が使われる。 +非 ASCII 文字が含まれている(ピリオドで区切られる)部分ノード名は、 +名前解決機能に渡される前に ASCII 互換符号化形式 (ACE) を使って +符号化される。 .\" Implementation Detail: .\" To minimize effects on system performance the implementation might .\" want to check whether the input string contains any non-ASCII @@ -457,37 +457,37 @@ IDN .TP .B AI_CANONIDN .B AI_CANONNAME -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ +が指定されている場合、 .BR getaddrinfo () -¤Ï̾Á°¤Î¸¡º÷¤ËÀ®¸ù¤·¤¿¸å¡¢ -ÊÖ¤µ¤ì¤¿ +は名前の検索に成功した後、 +返された .I addrinfo -¹½Â¤ÂΤËÂбþ¤¹¤ë¥Î¡¼¥É¤ÎÀµµ¬Ì¾¤òÊÖ¤¹¡£ -ÊÖ¤êÃͤÏ̾Á°²ò·èµ¡Ç½¤«¤éÊÖ¤µ¤ì¤¿ÃͤÎÀµ³Î¤Ê¥³¥Ô¡¼¤Ç¤¢¤ë¡£ +構造体に対応するノードの正規名を返す。 +返り値は名前解決機能から返された値の正確なコピーである。 .B AI_CANONIDN -̾Á°¤¬ ACE ¤ÇÉä¹æ²½¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢°ì¤Ä¤Þ¤¿¤ÏÊ£¿ô¤Î̾Á°¤Î¹½À®Í×ÁǤÎÀèƬ¤Ë +名前が ACE で符号化されている場合、一つまたは複数の名前の構成要素の先頭に .I xn\-\- -¤ò´Þ¤ó¤Ç¤¤¤ë¡£ -¤³¤ì¤é¤Î¹½À®Í×ÁǤòÆɤ߹þ¤ß²Äǽ¤Ê·Á¤ËÊÑ´¹¤¹¤ë¤¿¤á¤Ë¡¢ +を含んでいる。 +これらの構成要素を読み込み可能な形に変換するために、 .B AI_CANONNAME -¤È¶¦¤Ë +と共に .B AI_CANONIDN -¥Õ¥é¥°¤òÅϤ¹¤³¤È¤â½ÐÍè¤ë¡£ -ÊÖ¤µ¤ì¤ëʸ»úÎó¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤ÎÉä¹æ²½·Á¼°¤ÇÉä¹æ²½¤µ¤ì¤Æ¤¤¤ë¡£ +フラグを渡すことも出来る。 +返される文字列は現在のロケールの符号化形式で符号化されている。 .\" .\"Implementation Detail: .\"If no component of the returned name starts with xn\-\- the IDN .\"step can be skipped, therefore avoiding unnecessary slowdowns. .TP .BR AI_IDN_ALLOW_UNASSIGNED ", " AI_IDN_USE_STD3_ASCII_RULES -¤³¤ì¤é¤Î¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤ë¤È¡¢ -IDNA ¥Ï¥ó¥É¥ê¥ó¥°¤ò»È¤¦¤È¤­¤Ë¤½¤ì¤¾¤ì -IDNA_ALLOW_UNASSIGNED (Èó³ä¤êÅö¤Æ Unicode ¥³¡¼¥É¥Ý¥¤¥ó¥È¤òµö²Ä¤¹¤ë) ¤È -IDNA_USE_STD3_ASCII_RULES (½ÐÎϤ¬ STD3 ½àµò¥Û¥¹¥È̾¤Ç¤¢¤ë¤³¤È¤ò³Îǧ¤¹¤ë) -¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤ë¡£ +これらのフラグが設定されると、 +IDNA ハンドリングを使うときにそれぞれ +IDNA_ALLOW_UNASSIGNED (非割り当て Unicode コードポイントを許可する) と +IDNA_USE_STD3_ASCII_RULES (出力が STD3 準拠ホスト名であることを確認する) +フラグが有効になる。 -.SH ÊÖ¤êÃÍ +.SH 返り値 .\" FIXME glibc defines the following additional errors, some which .\" can probably be returned by getaddrinfo(); they need to .\" be documented. @@ -500,152 +500,152 @@ IDNA_USE_STD3_ASCII_RULES ( .\" #define EAI_IDN_ENCODE -105 /* IDN encoding failed. */ .\" #endif .BR getaddrinfo () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤·¡¢¼ºÇÔ¤¹¤ë¤È°Ê²¼¤ÎÈó 0 ¤Î¥¨¥é¡¼¥³¡¼¥É¤Î¤¤¤º¤ì¤«¤òÊÖ¤¹¡£ +は成功すると 0 を返し、失敗すると以下の非 0 のエラーコードのいずれかを返す。 .TP .B EAI_ADDRFAMILY .\" Not in SUSv3 -»ØÄꤵ¤ì¤¿¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È¤Ë¤Ï¡¢ -Í׵ᤵ¤ì¤¿¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤¬¤Ê¤¤¡£ +指定されたネットワークホストには、 +要求されたアドレスファミリーのネットワークアドレスがない。 .TP .B EAI_AGAIN -¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤«¤é°ì»þŪ¤Ê¼ºÇÔ (temporary failure) -¤ò°ÕÌ£¤¹¤ëÊÖ»ö¤¬ÊÖ¤µ¤ì¤¿¡£¸å¤Ç¤â¤¦°ìÅٻ¤Æ¤ß¤è¡£ +ネームサーバーから一時的な失敗 (temporary failure) +を意味する返事が返された。後でもう一度試してみよ。 .TP .B EAI_BADFLAGS .I hints.ai_flags -¤Î¥Õ¥é¥°¤ËÉÔÀµ¤Ê¥Õ¥é¥°¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£¤Þ¤¿¤Ï¡¢ +のフラグに不正なフラグが含まれている。または、 .I hints.ai_flags -¤Ë +に .B AI_CANONNAME -¤¬´Þ¤Þ¤ì¤Æ¤¤¤Æ¡¢¤«¤Ä +が含まれていて、かつ .I name -¤¬ NULL ¤Ç¤¢¤Ã¤¿¡£ +が NULL であった。 .TP .B EAI_FAIL -¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤«¤é¹±µ×Ū¤Ê¼ºÇÔ (permanent failure) -¤ò°ÕÌ£¤¹¤ëÊÖ»ö¤¬ÊÖ¤µ¤ì¤¿¡£ +ネームサーバーから恒久的な失敗 (permanent failure) +を意味する返事が返された。 .TP .B EAI_FAMILY -Í׵ᤵ¤ì¤¿¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +要求されたアドレスファミリーがサポートされていない。 .TP .B EAI_MEMORY -¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£ +メモリが足りない。 .TP .B EAI_NODATA .\" Not in SUSv3 -»ØÄꤵ¤ì¤¿¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È¤Ï¸ºß¤¹¤ë¤¬¡¢ -¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤¬¤Ò¤È¤Ä¤âÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +指定されたネットワークホストは存在するが、 +ネットワークアドレスがひとつも定義されていない。 .TP .B EAI_NONAME .I node -¤È +と .I service -¤Î¤É¤Á¤é¤«¤¬ÉÔÌÀ¡¢¤Þ¤¿¤Ï +のどちらかが不明、または .I node -¤È +と .I service -¤ÎξÊý¤¬ NULL ¤À¤Ã¤¿¾ì¹ç¡¢¤Þ¤¿¤Ï +の両方が NULL だった場合、または .B AI_NUMERICSERV -¤¬ +が .I hints.ai_flags -¤Ë»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢ +に指定されていて、 .I hints.ai_flags -¤È +と .I service -¤¬¿ôÃͤΥݡ¼¥ÈÈÖ¹æ¤Îʸ»úÎó¤Ç¤Ê¤¤¡£ +が数値のポート番号の文字列でない。 .TP .B EAI_SERVICE -Í׵ᤵ¤ì¤¿¥µ¡¼¥Ó¥¹¤Ï¡¢Í׵ᤵ¤ì¤¿¥½¥±¥Ã¥È¥¿¥¤¥×¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤¡£ -¾¤Î¥½¥±¥Ã¥È¥¿¥¤¥×¤Ç¤Ê¤éÍøÍѲÄǽ¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ëÎã¤È¤·¤Æ¤Ï¡¢ +要求されたサービスは、要求されたソケットタイプでは利用できない。 +他のソケットタイプでなら利用可能かもしれない。 +このエラーが発生する例としては、 .I service -¤¬ "shell" (¥¹¥È¥ê¡¼¥à¡¦¥½¥±¥Ã¥È¤Ç¤Î¤ßÍøÍѤǤ­¤ë¥µ¡¼¥Ó¥¹) ¤Ç¡¢ +が "shell" (ストリーム・ソケットでのみ利用できるサービス) で、 .I hints.ai_protocol -¤Ë +に .B IPPROTO_UDP -¤¬»ØÄꤵ¤ì¤¿¤ê¡¢ +が指定されたり、 .I hints.ai_socktype -¤Ë +に .B SOCK_DGRAM -¤¬»ØÄꤵ¤ì¤¿¤ê¤·¤¿¾ì¹ç¤¬¤¢¤ë¡£ -¤Þ¤¿¡¢ +が指定されたりした場合がある。 +また、 .I service -¤¬ NULL °Ê³°¤Ç¡¢ +が NULL 以外で、 .I hints.ai_socktype -¤Ë +に .B SOCK_RAW -(¥µ¡¼¥Ó¥¹¤Î¹Í¤¨Êý¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¥½¥±¥Ã¥È¼ïÊÌ) -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤â¡¢¤³¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¡£ +(サービスの考え方をサポートしていないソケット種別) +が指定された場合にも、このエラーが発生する。 .TP .B EAI_SOCKTYPE -Í׵ᤵ¤ì¤¿¥½¥±¥Ã¥È¥¿¥¤¥×¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤³¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ëÎã¤È¤·¤Æ¤Ï¡¢ +要求されたソケットタイプがサポートされていない。 +このエラーが発生する例としては、 .I hints.ai_socktype -¤È +と .I hints.ai_protocol -¤¬Ì·½â¤·¤Æ¤¤¤ë¾ì¹ç (Î㤨¤Ð +が矛盾している場合 (例えば .I hints.ai_socktype -¤¬ +が .B SOCK_DGRAM -¤Ç +で .I hints.ai_protocol -¤¬ +が .BR IPPROTO_TCP ) -¤¬¤¢¤ë¡£ +がある。 .TP .B EAI_SYSTEM -¤½¤Î¾¤Î¥·¥¹¥Æ¥à¥¨¥é¡¼¡£¾Ü¤·¤¯¤Ï +その他のシステムエラー。詳しくは .I errno -¤òÄ´¤Ù¤ë¤³¤È¡£ +を調べること。 .PP .BR gai_strerror () -´Ø¿ô¤òÍѤ¤¤ë¤È¡¢¤³¤ì¤é¤Î¥¨¥é¡¼¥³¡¼¥É¤ò¿Í´Ö¤Ë²ÄÆɤÊʸ»úÎó¤ËÊÑ´¹¤Ç¤­¤ë¤Î¤Ç¡¢ -¥¨¥é¡¼Êó¹ð¤ËŬ¤¹¤ë¤À¤í¤¦¡£ -.SH ¥Õ¥¡¥¤¥ë +関数を用いると、これらのエラーコードを人間に可読な文字列に変換できるので、 +エラー報告に適するだろう。 +.SH ファイル .I /etc/gai.conf -.SH ½àµò +.SH 準拠 POSIX.1-2001. .BR getaddrinfo () -´Ø¿ô¤Ï RFC 2553 ¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ +関数は RFC 2553 に記載されている。 +.SH 注意 .BR getaddrinfo () -¤Ï¡¢IPv6 scope-ID ¤ò»ØÄꤹ¤ë¤¿¤á¤Ë +は、IPv6 scope-ID を指定するために .IB address % scope-id -µ­Ë¡¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ +記法をサポートしている。 .BR AI_ADDRCONFIG , .BR AI_ALL , .B AI_V4MAPPED -¤Ï glibc 2.3.3 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +は glibc 2.3.3 以降で利用可能である。 .B AI_NUMERICSERV -¤Ï glibc 2.3.4 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +は glibc 2.3.4 以降で利用可能である。 -POSIX.1-2001 ¤Ë¤è¤ë¤È¡¢ +POSIX.1-2001 によると、 .I hints -¤Ë NULL ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +に NULL が指定された場合、 .I ai_flags -¤ò 0 ¤È¤ß¤Ê¤¹¤Ù¤­¤È¤µ¤ì¤Æ¤¤¤ë¡£ -GNU C ¥é¥¤¥Ö¥é¥ê¤Ç¤Ï¡¢¤³¤Î¾ì¹ç¤Ë¡¢Âå¤ï¤ê¤Ë +を 0 とみなすべきとされている。 +GNU C ライブラリでは、この場合に、代わりに .I ai_flags -¤ò +を .BR "(AI_V4MAPPED\ |\ AI_ADDRCONFIG)" -¤È¤ß¤Ê¤¹¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤³¤ÎÃͤÎÊý¤¬É¸½àµ¬³Ê¤Î²þÁ±¤Ë¤Ê¤ë¤È¹Í¤¨¤é¤ì¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£ -.SH Îã +とみなすようになっている。 +この値の方が標準規格の改善になると考えられているからである。 +.SH 例 .\" getnameinfo.3 refers to this example .\" socket.2 refers to this example .\" bind.2 refers to this example .\" connect.2 refers to this example .\" recvfrom.2 refers to this example .\" sendto.2 refers to this example -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢ +以下のプログラムは、 .BR getaddrinfo (), .BR gai_strerror (), .BR freeaddrinfo (), .BR getnameinfo (3) -¤Î»È¤¤Êý¤ò¼¨¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -¥×¥í¥°¥é¥à¤Ï UDP ¥Ç¡¼¥¿¥°¥é¥à¤Î echo ¥µ¡¼¥Ð¤È¥¯¥é¥¤¥¢¥ó¥È¤Ç¤¢¤ë¡£ -.SS ¥µ¡¼¥Ð¤Î¥×¥í¥°¥é¥à +の使い方を示したものである。 +プログラムは UDP データグラムの echo サーバとクライアントである。 +.SS サーバのプログラム \& .nf #include @@ -740,7 +740,7 @@ main(int argc, char *argv[]) } } .fi -.SS ¥¯¥é¥¤¥¢¥ó¥È¤Î¥×¥í¥°¥é¥à +.SS クライアントのプログラム \& .nf #include @@ -836,7 +836,7 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .\" .BR getipnodebyaddr (3), .\" .BR getipnodebyname (3) .BR getaddrinfo_a (3), diff --git a/release/man3/getcwd.3 b/release/man3/getcwd.3 index e9c98503..03e4991b 100644 --- a/release/man3/getcwd.3 +++ b/release/man3/getcwd.3 @@ -41,13 +41,13 @@ .\" Updated 2007-01-01 by Kentaro Shirakata .\" Updated 2008-08-21, Akihiro MOTOKI , LDP v3.07 .\" -.\" WORD: current working directory ¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê -.\" WORD: LEGACY ¡Ö²áµî¤Î̾»Ä(LEGACY)¡× +.\" WORD: current working directory カレントワーキングディレクトリ +.\" WORD: LEGACY 「過去の名残(LEGACY)」 .\" .TH GETCWD 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -getcwd, getwd, get_current_dir_name \- ¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê̾¤Î¼èÆÀ -.SH ½ñ¼° +.SH 名前 +getcwd, getwd, get_current_dir_name \- カレントワーキングディレクトリ名の取得 +.SH 書式 .nf .B #include .sp @@ -59,9 +59,9 @@ getcwd, getwd, get_current_dir_name \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .sp .in .BR get_current_dir_name (): @@ -74,7 +74,7 @@ _GNU_SOURCE .RS 4 .PD 0 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: .nf _BSD_SOURCE || (_XOPEN_SOURCE\ >=\ 500 || @@ -82,189 +82,189 @@ _BSD_SOURCE || !(_POSIX_C_SOURCE\ >=\ 200809L || _XOPEN_SOURCE\ >=\ 700) .fi .TP 4 -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .PD .RE .ad b -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤Î -ÀäÂХѥ¹Ì¾ (absolute pathname) ¤¬Æþ¤Ã¤¿Ê¸»úÎó¤òÊÖ¤¹¡£ -ÊÖ¤µ¤ì¤ëʸ»úÎó¤Ï NULL ¤Ç½ªÃ¼¤µ¤ì¤ë¡£ -¥Ñ¥¹Ì¾¤Ï´Ø¿ô¤Î·ë²Ì¤È¤·¤ÆÊÖ¤µ¤ì¡¢°ú¿ô +.SH 説明 +これらの関数は、呼び出したプロセスのカレントワーキングディレクトリの +絶対パス名 (absolute pathname) が入った文字列を返す。 +返される文字列は NULL で終端される。 +パス名は関数の結果として返され、引数 .I buf -¤¬¤¢¤ë¾ì¹ç¤Ï +がある場合は .I buf -·Ðͳ¤Ç¤âÊÖ¤µ¤ì¤ë¡£ +経由でも返される。 .BR getcwd () -´Ø¿ô¤Ï¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤ÎÀäÂХѥ¹Ì¾¤ò +関数はカレントワーキングディレクトリの絶対パス名を .I buf -¤Ç¼¨¤µ¤ì¤¿ +で示された .I size -ŤÎÇÛÎó¤Ë¥³¥Ô¡¼¤¹¤ë¡£ +長の配列にコピーする。 .PP -½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤â´Þ¤á¤¿¡¢¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤Î -ÀäÂХѥ¹Ì¾¤ÎŤµ¤¬ +終端の NULL バイトも含めた、カレントワーキングディレクトリの +絶対パス名の長さが .I size -¥Ð¥¤¥È¤òĶ¤¨¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ÊÖ¤êÃͤȤ·¤Æ NULL ¤¬ÊÖ¤ê +バイトを超えている場合は、返り値として NULL が返り .I errno -¤Ë +に .B ERANGE -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¤³¤Î¥¨¥é¡¼¤ò¥Á¥§¥Ã¥¯¤·¡¢ -ɬÍפ˱þ¤¸¤Æ¤è¤êŤ¤¥Ð¥Ã¥Õ¥¡¤òÍÑ°Õ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +がセットされる。 +アプリケーションはこのエラーをチェックし、 +必要に応じてより長いバッファを用意すべきである。 .PP -POSIX.1-2001 ɸ½à¤Î³ÈÄ¥¤È¤·¤Æ¡¢ -Linux (libc4, libc5, glibc) ¤Ç¤Ï +POSIX.1-2001 標準の拡張として、 +Linux (libc4, libc5, glibc) では .I buf -¤¬ NULL ¤Î¾ì¹ç¡¢ +が NULL の場合、 .BR getcwd () -¤ÏɬÍפʥХåե¡¤ò +は必要なバッファを .BR malloc (3) -¤òÍѤ¤¤ÆưŪ¤Ë³ä¤êÅö¤Æ¤ë¡£ -¤³¤Î¾ì¹ç¡¢ +を用いて動的に割り当てる。 +この場合、 .I size -¤¬ 0 ¤Î¾ì¹ç¤ò½ü¤­¡¢¥Ð¥Ã¥Õ¥¡¤ÎŤµ¤Ï +が 0 の場合を除き、バッファの長さは .I size -¤È¤Ê¤ë¡£ +となる。 .I size -¤¬ 0 ¤Î¾ì¹ç¤Ë¤ÏɬÍפÊÂ礭¤µ¤¬³ÎÊݤµ¤ì¤ë¡£ -¸Æ¤Ó½Ð¤·Â¦¤Ç¡¢ÊÖ¤µ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤ò +が 0 の場合には必要な大きさが確保される。 +呼び出し側で、返されたバッファを .BR free (3) -¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +すべきである。 .BR get_current_dir_name () -¤Ï¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤ÎÀäÂХѥ¹Ì¾¤ò¼ý¤á¤ë¤Î¤Ë -½½Ê¬¤ÊÂ礭¤µ¤ÎÇÛÎó¤ò +はカレントワーキングディレクトリの絶対パス名を収めるのに +十分な大きさの配列を .BR malloc (3) -¤Ç³ÍÆÀ¤¹¤ë¡£´Ä¶­ÊÑ¿ô +で獲得する。環境変数 .B PWD -¤¬ÀßÄꤵ¤ì¤Æ¤ª¤ê¤½¤ÎÃͤ¬Àµ¤·¤±¤ì¤Ð¡¢¤½¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¡£ -¸Æ¤Ó½Ð¤·Â¦¤Ç¡¢ÊÖ¤µ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤ò +が設定されておりその値が正しければ、その値が返される。 +呼び出し側で、返されたバッファを .BR free (3) -¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +すべきである。 .BR getwd () -¤Ï +は .BR malloc (3) -¤Ë¤è¤ë¥á¥â¥ê³ÍÆÀ¤ò°ìÀڹԤʤï¤Ê¤¤¡£ +によるメモリ獲得を一切行なわない。 .I buf -°ú¿ô¤Ï¾¯¤Ê¤¯¤È¤â +引数は少なくとも .B PATH_MAX -¥Ð¥¤¥È¤ÎŤµ¤ò»ý¤ÄÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ëɬÍפ¬¤¢¤ë¡£ -½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤â´Þ¤á¤¿¡¢¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤Î -ÀäÂХѥ¹Ì¾¤ÎŤµ¤¬ +バイトの長さを持つ配列へのポインタである必要がある。 +終端の NULL バイトも含めた、カレントワーキングディレクトリの +絶対パス名の長さが .B PATH_MAX -¥Ð¥¤¥È¤òĶ¤¨¤Æ¤¤¤ë¾ì¹ç¡¢ -NULL ¤¬ÊÖ¤µ¤ì¡¢ +バイトを超えている場合、 +NULL が返され、 .I errno -¤Ë +に .B ENAMETOOLONG -¤¬ÀßÄꤵ¤ì¤ë¡£ -(¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¡¢ +が設定される。 +(システムによっては、 .B PATH_MAX -¤Ïɬ¤º¤·¤â¥³¥ó¥Ñ¥¤¥ë»þ¤Ë·è¤Þ¤ëÄê¿ô¤Ç¤Ï¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¤Þ¤¿¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë°Í¸¤¹¤ë¾ì¹ç¤â¤¢¤ë¡£ +は必ずしもコンパイル時に決まる定数ではない点に注意すること。 +また、ファイルシステムに依存する場合もある。 .BR pathconf (3) -¤ò»²¾È¡£) -°Ü¿¢À­¤È¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÍýͳ¤«¤é¡¢ +を参照。) +移植性とセキュリティ上の理由から、 .BR getwd () -¤ÎÍøÍѤϿ侩¤µ¤ì¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤ÎÀäÂХѥ¹Ì¾ -¤¬Æþ¤Ã¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +の利用は推奨されない。 +.SH 返り値 +成功すると、これらの関数はカレントワーキングディレクトリの絶対パス名 +が入った文字列へのポインタを返す。 .BR getcwd () -¤È +と .BR getwd () -¤Î¾ì¹ç¡¢ÊÖ¤êÃÍ¤Ï +の場合、返り値は .I buf -¤ÈƱ¤¸Ãͤˤʤ롣 +と同じ値になる。 -¼ºÇÔ¤·¤¿¾ì¹ç¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï NULL ¤òÊÖ¤·¡¢ +失敗した場合、これらの関数は NULL を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ +にエラーを示す値を設定する。 .I buf -¤¬»Ø¤¹ÇÛÎó¤ÎÆâÍƤÏ̤ÄêµÁ¤Ç¤¢¤ë¡£ -.SH ¥¨¥é¡¼ +が指す配列の内容は未定義である。 +.SH エラー .TP .B EACCES -¥Õ¥¡¥¤¥ë̾¤Î¹½À®Í×ÁǤËÂФ¹¤ëÆɤ߹þ¤ß¤¢¤ë¤¤¤Ï¸¡º÷¤Î¸¢¸Â¤¬¤Ê¤¤¡£ +ファイル名の構成要素に対する読み込みあるいは検索の権限がない。 .TP .B EFAULT .I buf -¤¬ÉÔÀµ¤Ê¥¢¥É¥ì¥¹¤ò»Ø¤·¤Æ¤¤¤ë¡£ +が不正なアドレスを指している。 .TP .B EINVAL .I size -°ú¿ô¤¬ 0 ¤«¤Ä¡¢ +引数が 0 かつ、 .I buf -°ú¿ô¤¬ NULL ¥Ý¥¤¥ó¥¿¤Ç¤Ê¤¤¡£ +引数が NULL ポインタでない。 .TP .B EINVAL .BR getwd (): .I buf -¤¬ NULL ¤Ç¤¢¤ë¡£ +が NULL である。 .TP .B ENAMETOOLONG .BR getwd (): -ÀäÂХѥ¹Ì¾¤¬Æþ¤Ã¤¿ NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤ÎŤµ¤¬ +絶対パス名が入った NULL 終端された文字列の長さが .B PATH_MAX -¥Ð¥¤¥È¤òĶ¤¨¤Æ¤¤¤ë¡£ +バイトを超えている。 .TP .B ENOENT -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤¬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ +カレントワーキングディレクトリが削除されている。 .TP .B ERANGE .I size -°ú¿ô¤ÎÃͤ¬¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤ÎÀäÂХѥ¹Ì¾¤ÎŤµ¤è¤ê¾®¤µ¤¤¡£ -Ťµ¤Ë¤Ïʸ»úÎó¤Î½ªÃ¼¥Ð¥¤¥È¤â´Þ¤Þ¤ì¤ë¡£ -¤è¤êÂ礭¤¤ÇÛÎó¤ò³ÎÊݤ·¤Æ¤â¤¦°ìÅټ¹Ԥ¹¤ëɬÍפ¬¤¢¤ë¡£ -.SH ½àµò +引数の値がワーキングディレクトリの絶対パス名の長さより小さい。 +長さには文字列の終端バイトも含まれる。 +より大きい配列を確保してもう一度実行する必要がある。 +.SH 準拠 .BR getcwd () -¤Ï POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ -POSIX.1-2001 ¤Ï¡¢ +は POSIX.1-2001 に準拠している。 +POSIX.1-2001 は、 .I buf -¤¬ NULL ¤Î¾ì¹ç¤Î +が NULL の場合の .BR getcwd () -¤ÎÆ°ºî¤òµ¬Äꤷ¤Ê¤¤¤Þ¤Þ¤È¤·¤Æ¤¤¤ë¡£ +の動作を規定しないままとしている。 .BR getwd () -¤Ï POSIX.1-2001 ¤Ë¸ºß¤·¤Æ¤¤¤ë¤¬¡¢¡Ö²áµî¤Î̾»Ä(LEGACY)¡×¤È¤µ¤ì¤Æ¤¤¤ë¡£ -POSIX.1-2008 ¤Ç¤Ï¡¢ +は POSIX.1-2001 に存在しているが、「過去の名残(LEGACY)」とされている。 +POSIX.1-2008 では、 .BR getwd () -¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ -Âå¤ï¤ê¤Ë +の仕様が削除されている。 +代わりに .BR getcwd () -¤ò»È¤¦¤³¤È¡£ -POSIX.1-2001 ¤Ï +を使うこと。 +POSIX.1-2001 は .BR getwd () -¤Ë´Ø¤¹¤ë¥¨¥é¡¼¤òÄêµÁ¤·¤Æ¤¤¤Ê¤¤¡£ +に関するエラーを定義していない。 .BR get_current_dir_name () -¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -Linux ¤Ç¤Ï (2.1.92 °Ê¹ß)¡¢ +は GNU 拡張である。 +.SH 注意 +Linux では (2.1.92 以降)、 .BR getcwd () -¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤¢¤ë¡£ -¸Å¤¤¥·¥¹¥Æ¥à¤Ç¤Ï +はシステムコールである。 +古いシステムでは .I /proc/self/cwd -¤ò»²¾È¤¹¤ë¡£ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤â proc ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤â¤Ê¤¤¾ì¹ç¡¢ -°ìÈÌŪ¤Ê¼ÂÁõ¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ -¤³¤Î¾ì¹ç¤Ë¤ª¤¤¤Æ¤Î¤ß¡¢(Linux ¤Ç¤Ï) ¤³¤Î´Ø¿ô¤Ï +を参照する。 +システムコールも proc ファイルシステムもない場合、 +一般的な実装が呼び出される。 +この場合においてのみ、(Linux では) この関数は .B EACCES -¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +で失敗する可能性がある。 .LP -¤³¤ì¤é¤Î´Ø¿ô¤Ï¤·¤Ð¤·¤Ð¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤Î°ÌÃÖ¤òÊݸ¤·¡¢ -¸å¤ÇÌá¤Ã¤Æ¤¯¤ë¤¿¤á¤ËÍøÍѤµ¤ì¤ë¡£ -̤»ÈÍѤΥե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬½½Ê¬¤¢¤ë¾ì¹ç¤Ï¡¢ -¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê (".") ¤ò³«¤¤¤Æ +これらの関数はしばしばカレントワーキングディレクトリの位置を保存し、 +後で戻ってくるために利用される。 +未使用のファイルディスクリプタが十分ある場合は、 +現在のディレクトリ (".") を開いて .BR fchdir (2) -¤ò¸Æ¤Ó½Ð¤¹¤Û¤¦¤¬ÉáÄ̤Ϲ⮤ǿ®ÍêÀ­¤¬¤¢¤ë¡£ -ÆÃ¤Ë Linux °Ê³°¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Î¾ì¹ç¤Ï¤½¤¦¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を呼び出すほうが普通は高速で信頼性がある。 +特に Linux 以外のプラットフォームの場合はそうである。 +.SH 関連項目 .BR chdir (2), .BR fchdir (2), .BR open (2), diff --git a/release/man3/getdate.3 b/release/man3/getdate.3 index 1f2c1fe8..61a07cda 100644 --- a/release/man3/getdate.3 +++ b/release/man3/getdate.3 @@ -31,12 +31,12 @@ .\" Translated 2002-01-12, NAKANO Takeo .\" Updated 2008-09-20, Akihiro MOTOKI , LDP v3.09 .\" -.\"WORD: broken-down time Í×ÁÇÊ̤λþ¹ï +.\"WORD: broken-down time 要素別の時刻 .\" .TH GETDATE 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -getdate, getdate_r \- ÆüÉդȻþ¹ï¤Îʸ»úÎó¤òÍ×ÁÇÊ̤λþ¹ï¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +getdate, getdate_r \- 日付と時刻の文字列を要素別の時刻に変換する +.SH 書式 .B "#include " .sp .BI "struct tm *getdate(const char *" string ); @@ -48,9 +48,9 @@ getdate, getdate_r \- .BI "int getdate_r(const char *" string ", struct tm *" res ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR getdate (): @@ -66,161 +66,161 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED _GNU_SOURCE .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR getdate () -´Ø¿ô¤Ï¡¢ +関数は、 .I string -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤¿Ê¸»úÎóɽ¸½¤ÎÆüÉդȻþ¹ï¤ò¡¢ -Í×ÁÇÊ̤λþ¹ï (broken-down time) ¤ËÊÑ´¹¤¹¤ë¡£ -Í×ÁÇÊ̤λþ¹ï¤Ï +が指すバッファに格納された文字列表現の日付と時刻を、 +要素別の時刻 (broken-down time) に変換する。 +要素別の時刻は .I tm -¹½Â¤ÂΤ˳ÊǼ¤µ¤ì¡¢¤³¤Î¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤¬´Ø¿ô¤Î·ë²Ì¤È¤·¤ÆÊÖ¤µ¤ì¤ë¡£ -¤³¤Î +構造体に格納され、この構造体へのポインタが関数の結果として返される。 +この .I tm -¹½Â¤ÂΤÏÀÅŪ¤Ê¥á¥â¥êÎΰè¤Ë¤¢¤ê¡¢ +構造体は静的なメモリ領域にあり、 .BR getdate () -¤Î¤½¤ì°Ê¹ß¤Î¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë¤«¤â¤µ¤ì¤Ê¤¤¡£ +のそれ以降の呼び出しで上書きされるかもされない。 .PP .RI ( format -°ú¤­¿ô¤Ç¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»ØÄꤹ¤ë) +引き数でフォーマットを指定する) .BR strptime (3) -¤È¤Ï°ã¤¤¡¢ +とは違い、 .BR getdate () -¤Ï´Ä¶­ÊÑ¿ô +は環境変数 .B DATEMSK -¤Ç»ØÄꤵ¤ì¤¿¥Õ¥ë¥Ñ¥¹Ì¾¤Î¥Õ¥¡¥¤¥ë¤Ë½ñ¤¤¤Æ¤¢¤ë¥Õ¥©¡¼¥Þ¥Ã¥È¤òÍѤ¤¤ë¡£ +で指定されたフルパス名のファイルに書いてあるフォーマットを用いる。 .PP -¥Þ¥Ã¥Á¤ÎºÝ¤Ë¤ÏÂçʸ»ú¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤¡£ -¥Ñ¥¿¡¼¥óÃæ¤Ç¤âÊÑ´¹¤µ¤ì¤ëʸ»úÎóÃæ¤Ç¤â¡¢Í¾Ê¬¤Ê¶õÇòʸ»ú¤Ï̵»ë¤µ¤ì¤ë¡£ +マッチの際には大文字小文字を区別しない。 +パターン中でも変換される文字列中でも、余分な空白文字は無視される。 .PP -¥Ñ¥¿¡¼¥ó¤Ë»ØÄê¤Ç¤­¤ëÊÑ´¹»ØÄê¤Ï¡¢ +パターンに指定できる変換指定は、 .BR strptime (3) -¤Î¤â¤Î¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -POSIX.1-2001 ¤Ç¤Ï°ì¤Ä¤ÎÊÑ´¹»ØÄ꤬Äɲäǵ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +のものと同じである。 +POSIX.1-2001 では一つの変換指定が追加で規定されている。 .TP .B %Z -¥¿¥¤¥à¥¾¡¼¥ó¤Î̾Á°¡£ -glibc ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +タイムゾーンの名前。 +glibc では実装されていない。 .LP .B %Z -¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢Í×ÁÇÊ̤λþ¹ï¤ò³ÊǼ¤¹¤ë¹½Â¤ÂΤϡ¢ -»ØÄꤵ¤ì¤¿¥¿¥¤¥à¥¾¡¼¥ó¤Ë¤ª¤±¤ë¸½ºß»þ¹ï¤ËÂбþ¤¹¤ëÃͤǽé´ü²½¤µ¤ì¤ë¡£ -»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¤³¤Î¹½Â¤ÂΤϸ½ºß¤Î¥í¡¼¥«¥ë¥¿¥¤¥à¤ËÂбþ¤¹¤ë -Í×ÁÇÊ̤λþ¹ï¤Ç½é´ü²½¤µ¤ì¤ë +が指定された場合、要素別の時刻を格納する構造体は、 +指定されたタイムゾーンにおける現在時刻に対応する値で初期化される。 +指定されていない場合、この構造体は現在のローカルタイムに対応する +要素別の時刻で初期化される .RB ( localtime (3) -¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¤ÈƱ¤¸)¡£ +を呼び出した場合と同じ)。 .LP -ÍËÆü¤À¤±¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ -º£Æü¤Þ¤¿¤Ïº£Æü°Ê¹ß¤Ç¡¢ -¤½¤ÎÍËÆü¤Ë¹çÃפ¹¤ëºÇ½é¤ÎÆü¤¬ºÎÍѤµ¤ì¤ë¡£ +曜日だけが指定された場合、 +今日または今日以降で、 +その曜日に合致する最初の日が採用される。 .LP -(ǯ¤Ê¤·¤Ç) ·î¤À¤±¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ -º£·î¤Þ¤¿¤Ïº£·î°Ê¹ß¤Ç¡¢ -¤½¤Î·î¤Ë¹çÃפ¹¤ëºÇ½é¤Î·î¤¬ºÎÍѤµ¤ì¤ë¡£ +(年なしで) 月だけが指定された場合、 +今月または今月以降で、 +その月に合致する最初の月が採用される。 .LP -»þ¡¦Ê¬¡¦É䬤¤¤º¤ì¤â»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ -¸½ºß¤Î»þ¡¦Ê¬¡¦É䬺ÎÍѤµ¤ì¤ë¡£ +時・分・秒がいずれも指定されなかった場合、 +現在の時・分・秒が採用される。 .LP -ÆüÉդλØÄ꤬¤Ê¤«¤Ã¤¿¤¬¡¢»þ´Ö (hour) ¤À¤±»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢ -¸½ºß¤Î»þ´Ö¤Þ¤¿¤Ï¤½¤ì°Ê¹ß¤Ç¡¢¤½¤Î»ØÄê¤Ë¹çÃפ¹¤ëºÇ½é¤Î»þ´Ö¤¬ºÎÍѤµ¤ì¤ë¡£ +日付の指定がなかったが、時間 (hour) だけ指定された場合は、 +現在の時間またはそれ以降で、その指定に合致する最初の時間が採用される。 .BR getdate_r () -¤Ï GNU ³ÈÄ¥¤Ç +は GNU 拡張で .BR getdate () -¤Î¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤòÄ󶡤·¤Æ¤¤¤ë¡£ +のリエントラント版を提供している。 .BR getdate_r () -¤Ç¤Ï¡¢¥¨¥é¡¼¤òÊó¹ð¤¹¤ë¤Î¤Ë¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤ò»ÈÍѤ·¤¿¤ê¡¢ -Í×ÁÇÊ̤λþ¹ï¤òÊÖ¤¹¤Î¤ËÀÅŪ¤Ê¥Ð¥Ã¥Õ¥¡¤ò»ÈÍѤ·¤¿¤ê¤»¤º¡¢ -¥¨¥é¡¼¤ò´Ø¿ô¤ÎÊÖ¤êÃÍ·Ðͳ¤ÇÊó¹ð¤·¡¢Í×ÁÇÊ̤λþ¹ï¤ò -°ú¤­¿ô +では、エラーを報告するのにグローバル変数を使用したり、 +要素別の時刻を返すのに静的なバッファを使用したりせず、 +エラーを関数の返り値経由で報告し、要素別の時刻を +引き数 .I res -¤¬»Ø¤·¼¨¤¹¸Æ¤Ó½Ð¤·Â¦¤Ç³ä¤êÅö¤Æ¤¿¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +が指し示す呼び出し側で割り当てたバッファに格納して返す。 +.SH 返り値 +成功すると、 .BR getdate () -¤Ï +は .I struct tm -¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¼ºÇÔ¤¹¤ë¤È NULL ¤òÊÖ¤·¡¢¥°¥í¡¼¥Ð¥ëÊÑ¿ô +へのポインタを返す。 +失敗すると NULL を返し、グローバル変数 .I getdate_err -¤Ë°Ê²¼¤Ë¼¨¤¹¥¨¥é¡¼ÈÖ¹æ¤Î¤¤¤º¤ì¤«°ì¤Ä¤òÀßÄꤹ¤ë¡£ +に以下に示すエラー番号のいずれか一つを設定する。 .I errno -¤ÎÊѹ¹¤Ë¤Ä¤¤¤Æ¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +の変更については規定されていない。 -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR getdate_r () -¤Ï 0 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤¹¤ë¤È¡¢°Ê²¼¤Ë¼¨¤¹¥¨¥é¡¼ÈÖ¹æ¤Î¤¤¤º¤ì¤«°ì¤Ä¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -°Ê²¼¤Î¥¨¥é¡¼¤¬¡¢ +は 0 を返す。 +失敗すると、以下に示すエラー番号のいずれか一つを返す。 +.SH エラー +以下のエラーが、 .RB ( getdate () -¤Ç¤Ï) +では) .I getdate_err -·Ðͳ¤ÇÊÖ¤µ¤ì¡¢ +経由で返され、 .RB ( getdate_r () -¤Ç¤Ï) ´Ø¿ô¤ÎÊÖ¤êÃͤȤ·¤ÆÊÖ¤µ¤ì¤ë¡£ +では) 関数の返り値として返される。 .TP 4n .B 1 -´Ä¶­ÊÑ¿ô +環境変数 .B DATEMASK -¤¬Ì¤ÄêµÁ¡¢¤Þ¤¿¤Ï¤½¤ÎÃͤ¬¶õʸ»úÎó¤Ç¤¢¤ë¡£ +が未定義、またはその値が空文字列である。 .TP .B 2 .B DATEMSK -¤Ç»ØÄꤵ¤ì¤¿¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ßÍѤ˥ª¡¼¥×¥ó¤Ç¤­¤Ê¤¤¡£ +で指定されたテンプレートファイルを読み込み用にオープンできない。 .TP .B 3 -¥Õ¥¡¥¤¥ë¤Î¥¹¥Æ¡¼¥¿¥¹¾ðÊ󤬼èÆÀ¤Ç¤­¤Ê¤¤¡£ +ファイルのステータス情報が取得できない。 .\" stat() .TP .B 4 -¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤¬Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤Ê¤¤¡£ +テンプレートファイルが通常のファイルでない。 .TP .B 5 -¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤ÎÆɤ߹þ¤ßÃæ¤Ë¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£ +テンプレートファイルの読み込み中にエラーが起こった。 .TP .B 6 -¥á¥â¥ê¤Î³ä¤êÅö¤Æ¤Ë¼ºÇÔ¤·¤¿ (¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤)¡£ -.\" ¥¨¥é¡¼ 6 ¤Ï glibc ¤Ç¤ÏȯÀ¸¤·¤Ê¤¤¤è¤¦¤Ë¸«¤¨¤ë¡£ +メモリの割り当てに失敗した (メモリが足りない)。 +.\" エラー 6 は glibc では発生しないように見える。 .TP .B 7 -ÆþÎϤ˥ޥåÁ¤·¤¿¥Õ¥¡¥¤¥ë¤Ë¡¢¹Ô¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¡£ +入力にマッチしたファイルに、行が含まれていない。 .TP .B 8 -ÆþÎÏ»ØÄ꤬Àµ¤·¤¯¤Ê¤¤¡£ -.SH ´Ä¶­ÊÑ¿ô +入力指定が正しくない。 +.SH 環境変数 .TP .B DATEMSK -½ñ¼°¥Ñ¥¿¡¼¥ó¤ò´Þ¤à¥Õ¥¡¥¤¥ë¡£ +書式パターンを含むファイル。 .TP .BR TZ ", " LC_TIME .BR strptime (3) -¤¬ÍѤ¤¤ëÊÑ¿ô¡£ -.SH ½àµò +が用いる変数。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ -POSIX.1-2001 »ÅÍͤǤϡ¢ +.SH 注意 +POSIX.1-2001 仕様では、 .BR strptime (3) -¤Ë¤Ä¤¤¤Æ¤Ï +については .B %E -¤ä +や .B %O -¤È¤¤¤Ã¤¿½¤Àµ»Ò¤òÍѤ¤¤¿ÊÑ´¹»ØÄê¤òµ¬Äꤷ¤Æ¤¤¤ë¤¬¡¢ +といった修正子を用いた変換指定を規定しているが、 .BR getdate () -¤Ë¤Ä¤¤¤Æ¤Ï¤³¤Î¤è¤¦¤Ê½¤¾þ»Ò¤Îµ¬Äê¤Ï¤Ê¤¤¡£ -glibc ¤Ç¤Ï¡¢ +についてはこのような修飾子の規定はない。 +glibc では、 .BR getdate () -¤Ï +は .BR strptime (3) -¤òÍѤ¤¤Æ¼ÂÁõ¤µ¤ì¤Æ¤ª¤ê¡¢ -ξ¼Ô¤Ç¤ÏÁ´¤¯Æ±¤¸ÊÑ´¹¤¬Î¾¼Ô¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Îã -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Î¤½¤ì¤¾¤ì¤Ë¤Ä¤¤¤Æ +を用いて実装されており、 +両者では全く同じ変換が両者でサポートされている。 +.SH 例 +以下のプログラムは、コマンドライン引き数のそれぞれについて .BR getdate () -¤ò¸Æ¤Ó½Ð¤·¡¢¤½¤ì¤¾¤ì¤Ë¤Ä¤¤¤ÆÊÖ¤µ¤ì¤¿ +を呼び出し、それぞれについて返された .I tm -¹½Â¤ÂΤΥե£¡¼¥ë¥ÉÃͤòɽ¼¨¤¹¤ë¡£ -¼¡¤Î¥·¥§¥ë¡¦¥»¥Ã¥·¥ç¥ó¤Ï¡¢¥×¥í¥°¥é¥à¤ÎÆ°ºîÎã¤Ç¤¢¤ë¡£ +構造体のフィールド値を表示する。 +次のシェル・セッションは、プログラムの動作例である。 .in +4n .nf @@ -264,7 +264,7 @@ Call 3 ("12:22:33") succeeded: tm_isdst = 1 .fi .in -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #define _GNU_SOURCE 500 @@ -302,7 +302,7 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR time (2), .BR localtime (3), .BR setlocale (3), diff --git a/release/man3/getdirentries.3 b/release/man3/getdirentries.3 index 680295e5..ebfafc15 100644 --- a/release/man3/getdirentries.3 +++ b/release/man3/getdirentries.3 @@ -28,14 +28,14 @@ .\" Translated Thu Apr 30 1998 by NAKANO Takeo .\" .TH GETDIRENTRIES 3 2007-07-26 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -getdirentries \- ¥Ç¥£¥ì¥¯¥È¥ê¤Î¥¨¥ó¥È¥ê¤ò¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë°Í¸¤·¤Ê¤¤·Á¼°¤Ç¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +getdirentries \- ディレクトリのエントリをファイルシステムに依存しない形式で取得する +.SH 書式 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR getdirentries (): @@ -44,33 +44,33 @@ _BSD_SOURCE || _SVID_SOURCE .sp .BI "ssize_t getdirentries(int " fd ", char *" buf ", size_t " nbytes .BI ", off_t *" basep ); -.SH ÀâÌÀ +.SH 説明 .I fd -¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¥¨¥ó¥È¥ê¤òÆɤߡ¢ +で指定されたディレクトリからエントリを読み、 .I buf -¤Ë³ÊǼ¤¹¤ë¡£ºÇÂç¤Ç +に格納する。最大で .I nbytes -¤¬Æɤ߹þ¤Þ¤ì¤ë¡£Æɤ߹þ¤ß¤Ï¥ª¥Õ¥»¥Ã¥È +が読み込まれる。読み込みはオフセット .I *basep -¤«¤é³«»Ï¤µ¤ì¡¢Æɤ߹þ¤ß½ªÎ»»þ¤Ë¤Ï +から開始され、読み込み終了時には .I *basep -¤Ï¿·¤·¤¤°ÌÃ֤˹¹¿·¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +は新しい位置に更新される。 +.SH 返り値 .BR getdirentries () -¤ÏÆɤ߹þ¤ó¤À¥Ð¥¤¥È¿ô¤òÊÖ¤¹¤«¡¢¥Ç¥£¥ì¥¯¥È¥ê¤ÎºÇ¸å¤Ë¤­¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¤é \-1 ¤òÊÖ¤·¡¢ +は読み込んだバイト数を返すか、ディレクトリの最後にきた場合は 0 を返す。 +エラーが起こったら \-1 を返し、 .I errno -¤ò¥¨¥é¡¼¤ËÂбþ¤¹¤ëÃͤ˥»¥Ã¥È¤¹¤ë¡£ -.SH ¥¨¥é¡¼ -¾ÜºÙ¤Ï Linux ¤Î¥é¥¤¥Ö¥é¥ê¥½¡¼¥¹¥³¡¼¥É¤òÆɤó¤Ç¤Û¤·¤¤¡£ -.SH ½àµò -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -BSD ¤Ë¸ºß¤·¡¢Â¾¤Ë¤â¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ë¤â¤¢¤ë¡£ -Âå¤ï¤ê¤Ë +をエラーに対応する値にセットする。 +.SH エラー +詳細は Linux のライブラリソースコードを読んでほしい。 +.SH 準拠 +POSIX.1-2001 にはない。 +BSD に存在し、他にもいくつかのシステムにもある。 +代わりに .BR opendir (3) -¤È +と .BR readdir (3) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を使用すること。 +.SH 関連項目 .BR lseek (2), .BR open (2) diff --git a/release/man3/getenv.3 b/release/man3/getenv.3 index f4109203..d3309a94 100644 --- a/release/man3/getenv.3 +++ b/release/man3/getenv.3 @@ -36,49 +36,49 @@ .\" Updated 2008-08-07, Akihiro MOTOKI , LDP v3.05 .\" .TH GETENV 3 2008-03-17 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -getenv \- ´Ä¶­ÊÑ¿ô¤òÆÀ¤ë -.SH ½ñ¼° +.SH 名前 +getenv \- 環境変数を得る +.SH 書式 .nf .B #include .sp .BI "char *getenv(const char *" name ); .fi -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR getenv () -¤Ï¡¢´Ä¶­¥ê¥¹¥È¤«¤é̾Á°¤¬ +は、環境リストから名前が .I name -¤Î´Ä¶­ÊÑ¿ô¤ò¸¡º÷¤·¡¢Âбþ¤¹¤ë +の環境変数を検索し、対応する .I value -ʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -´Ø¿ô +文字列へのポインタを返す。 +.SH 返り値 +関数 .BR getenv () -¤Ï¡¢´Ä¶­¤Ë¤ª¤±¤ëÃÍ value ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -\fIname\fP ¤Ë¥Þ¥Ã¥Á¤¹¤ë´Ä¶­ÊÑ¿ô¤¬Â¸ºß¤·¤Ê¤¤¤È¤­¤Ë¤Ï NULL ¤òÊÖ¤¹¡£ -.SH ½àµò +は、環境における値 value へのポインタを返す。 +\fIname\fP にマッチする環境変数が存在しないときには NULL を返す。 +.SH 準拠 SVr4, POSIX.1-2001, 4.3BSD, C89, C99. -.SH Ãí°Õ -´Ä¶­¥ê¥¹¥È¤Îʸ»úÎó¤Ï \fIname=value\fP ¤È¤¤¤¦·Á¼°¤ò¤·¤Æ¤¤¤ë¡£ +.SH 注意 +環境リストの文字列は \fIname=value\fP という形式をしている。 -Ä̾ï¤Î¼ÂÁõ¤Ç¤Ï¡¢ +通常の実装では、 .BR getenv () -¤Ï´Ä¶­¥ê¥¹¥ÈÆâ¤Îʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¸Æ¤Ó½Ð¤·¸µ¤Ï¤³¤Îʸ»úÎó¤òÊѹ¹¤·¤Ê¤¤¤è¤¦¤ËÃí°Õ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤Îʸ»úÎó¤òÊѹ¹¤¹¤ë¤È¡¢¤½¤Î¥×¥í¥»¥¹¤Î´Ä¶­¤òÊѲ½¤µ¤»¤ë¤³¤È¤Ë¤Ê¤ë¤«¤é¤Ç¤¢¤ë¡£ +は環境リスト内の文字列へのポインタを返す。 +呼び出し元はこの文字列を変更しないように注意しなければならない。 +この文字列を変更すると、そのプロセスの環境を変化させることになるからである。 .BR getenv () -¤Î¼ÂÁõ¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È (ºÆÆþ²Äǽ) ¤Ç¤¢¤ë¤³¤È¤òÍ׵ᤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +の実装はリエントラント (再入可能) であることを要求されていない。 .BR getenv () -¤ÎÊÖ¤êÃͤˤè¤ê»²¾È¤µ¤ì¤ëʸ»úÎó¤ÏÀÅŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¤Æ¤â¤è¤¯¡¢ -ʸ»úÎó¤ÎÆâÍƤϸ峤Π+の返り値により参照される文字列は静的に割り当てられてもよく、 +文字列の内容は後続の .BR getenv (), .BR putenv (3), .BR setenv (3), .BR unsetenv (3) -¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤êÊѹ¹¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +の呼び出しにより変更されることがある。 +.SH 関連項目 .BR clearenv (3), .BR putenv (3), .BR setenv (3), diff --git a/release/man3/getfsent.3 b/release/man3/getfsent.3 index 6687fae2..46007d7f 100644 --- a/release/man3/getfsent.3 +++ b/release/man3/getfsent.3 @@ -26,9 +26,9 @@ .\" Translated Wed 7 Aug 2002 by NAKANO Takeo .\" .TH GETFSENT 3 2002-02-28 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -getfsent, getfsspec, getfsfile, setfsent, endfsent \- fstab ¥¨¥ó¥È¥ê¤Î½èÍý -.SH ½ñ¼° +.SH 名前 +getfsent, getfsspec, getfsfile, setfsent, endfsent \- fstab エントリの処理 +.SH 書式 .B #include .sp .B "void endfsent(void);" @@ -40,10 +40,10 @@ getfsent, getfsspec, getfsfile, setfsent, endfsent \- fstab .BI "struct fstab *getfsspec(const char *" special_file ); .sp .B "int setfsent(void);" -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï +.SH 説明 +これらの関数は .I /etc/fstab -¥Õ¥¡¥¤¥ë¤«¤é¾ðÊó¤òÆɤ߹þ¤à¡£\fIfstab\fP ¹½Â¤ÂΤϼ¡¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +ファイルから情報を読み込む。\fIfstab\fP 構造体は次のように定義されている。 .LP .in +4n .nf @@ -59,80 +59,80 @@ struct fstab { .fi .in .PP -*BSD ¥·¥¹¥Æ¥à¤Î¾ì¹ç¡¢ +*BSD システムの場合、 .I fs_type -¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¡¢5 ¤Ä¤Îʸ»úÎó +フィールドには、5 つの文字列 "rw", "rq", "ro", "sw", "xx" -¤Î¤¤¤º¤ì¤«¤¬Æþ¤ë -(¤½¤ì¤¾¤ì read-write, quota ÉÕ¤­ read-write, read-only, swap, ignore)¡£ +のいずれかが入る +(それぞれ read-write, quota 付き read-write, read-only, swap, ignore)。 -´Ø¿ô +関数 .BR setfsent () -¤Ï¸Æ¤Ó½Ð¤µ¤ì¤ë¤È fstab ¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤·¡¢ -ºÇ½é¤Î¹Ô¤Ë°ÜÆ°¤¹¤ë¡£ +は呼び出されると fstab ファイルをオープンし、 +最初の行に移動する。 .LP -´Ø¿ô +関数 .BR getfsent () -¤Ï fstab ¥Õ¥¡¥¤¥ë¤«¤é¼¡¤Î¹Ô¤ò¥Ñ¡¼¥¹¤¹¤ë -(ɬÍפʾì¹ç¤Ï¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë)¡£ +は fstab ファイルから次の行をパースする +(必要な場合はファイルをオープンする)。 .LP -´Ø¿ô +関数 .BR endfsent () -¤Ï¸Æ¤Ó½Ð¤µ¤ì¤ë¤È fstab ¥Õ¥¡¥¤¥ë¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +は呼び出されると fstab ファイルをクローズする。 .LP -´Ø¿ô +関数 .BR getfsspec () -¤Ï fstab ¥Õ¥¡¥¤¥ë¤òÀèƬ¤«¤é¸¡º÷¤·¡¢ +は fstab ファイルを先頭から検索し、 .I fs_spec -¥Õ¥£¡¼¥ë¥É¤¬ +フィールドが .I special_file -°ú¿ô¤Ë¥Þ¥Ã¥Á¤¹¤ë¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤Ã¤¿¤é¡¢¤½¤ÎºÇ½é¤Î¤â¤Î¤òÊÖ¤¹¡£ +引数にマッチするエントリが見つかったら、その最初のものを返す。 .LP -´Ø¿ô +関数 .BR getfsfile () -¤Ï fstab ¥Õ¥¡¥¤¥ë¤òÀèƬ¤«¤é¸¡º÷¤·¡¢ +は fstab ファイルを先頭から検索し、 .I fs_file -¥Õ¥£¡¼¥ë¥É¤¬ +フィールドが .I mount_point -°ú¿ô¤Ë¥Þ¥Ã¥Á¤¹¤ë¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤Ã¤¿¤é¡¢¤½¤ÎºÇ½é¤Î¤â¤Î¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +引数にマッチするエントリが見つかったら、その最初のものを返す。 +.SH 返り値 +成功すると、 .BR getfsent (), .BR getfsfile (), .BR getfsspec () -¤Î³Æ´Ø¿ô¤Ï \fIfstab\fP ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤·¡¢ +の各関数は \fIfstab\fP 構造体へのポインタを返し、 .BR setfsent () -´Ø¿ô¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤¹¤ë¤È¤³¤ì¤é¤Î´Ø¿ô¤Ï NULL ¤òÊÖ¤·¡¢ -end-of-file ¤Ë¤Ê¤Ã¤¿¤é 0 ¤òÊÖ¤¹¡£ -.\" .SH ÍúÎò +関数は 1 を返す。 +失敗するとこれらの関数は NULL を返し、 +end-of-file になったら 0 を返す。 +.\" .SH 履歴 .\" .BR getfsent () -.\" ´Ø¿ô¤Ï 4.0BSD ¤ÇÅо줷¤¿¡£ -.\" ¾¤Î 4 ¤Ä¤Î´Ø¿ô¤Ï 4.3BSD ¤ÇÅо줷¤¿¡£ -.SH ½àµò -POSIX.1-2001 ¤Ë¤Ï¤³¤ì¤é¤Î´Ø¿ô¤Ï¸ºß¤·¤Ê¤¤¡£ -¤³¤ì¤é¤Î´Ø¿ô¤ò¤â¤Ä OS ¤Ï¤¤¤¯¤Ä¤«¤¢¤ê¡¢ -*BSD, SunOS, Digital UNIX, AIX Åù¤Ç¤¢¤ë -(AIX ¤Ë¤Ï +.\" 関数は 4.0BSD で登場した。 +.\" 他の 4 つの関数は 4.3BSD で登場した。 +.SH 準拠 +POSIX.1-2001 にはこれらの関数は存在しない。 +これらの関数をもつ OS はいくつかあり、 +*BSD, SunOS, Digital UNIX, AIX 等である +(AIX には .BR getfstype () -¤â¤¢¤ë)¡£ -HP-UX ¤Ë¤âƱ̾¤Î´Ø¿ô·²¤¬¤¢¤ë¤¬¡¢ -HP-UX ¤Î¤â¤Î¤Ï \fIfstab\fP ¹½Â¤ÂΤǤϤʤ¯ \fIchecklist\fP ¹½Â¤ÂΤòÍѤ¤¤ë¡£ -¤Þ¤¿¤³¤ì¤é¤Î´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤Ï obsolete ¤Ç¡¢ +もある)。 +HP-UX にも同名の関数群があるが、 +HP-UX のものは \fIfstab\fP 構造体ではなく \fIchecklist\fP 構造体を用いる。 +またこれらの関数の呼び出しは obsolete で、 .BR getmntent (3) -¤Ë¼è¤Ã¤ÆÂå¤ï¤é¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤Ï¤Ê¤¤¡£ +に取って代わられている。 +.SH 注意 +これらの関数はスレッドセーフではない。 .LP -Linux ¤Ç¤Ï¥Ö¥í¥Ã¥¯¥¹¥Ú¥·¥ã¥ë¥Ç¥Ð¥¤¥¹¤òÊ£¿ô¤Î¾ì½ê¤Ë¥Þ¥¦¥ó¥È¤Ç¤­¡¢ -¤Þ¤¿Ê£¿ô¤Î¥Ç¥Ð¥¤¥¹¤¬Æ±¤¸¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ò¶¦Í­¤Ç¤­¤ë -(¤³¤Î¾ì¹ç¤Ï¤½¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ËºÇ¸å¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Ç¥Ð¥¤¥¹¤¬°ÕÌ£¤ò»ý¤Ä) -¤¬¡¢ +Linux ではブロックスペシャルデバイスを複数の場所にマウントでき、 +また複数のデバイスが同じマウントポイントを共有できる +(この場合はそのマウントポイントに最後にマウントされたデバイスが意味を持つ) +が、 .BR getfsfile () -¤È +と .BR getfsspec () -¤Ï¥Þ¥Ã¥Á¤·¤¿ºÇ½é¤Î¥¨¥ó¥È¥ê¤·¤«ÊÖ¤µ¤Ê¤¤¤Î¤Ç¡¢ -¤³¤ì¤é¤Î 2 ¤Ä¤Î´Ø¿ô¤Ï Linux ¤Ç¤ÎÍøÍѤˤÏŬ¤·¤Æ¤¤¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +はマッチした最初のエントリしか返さないので、 +これらの 2 つの関数は Linux での利用には適していない。 +.SH 関連項目 .BR getmntent (3), .BR fstab (5) diff --git a/release/man3/getgrent.3 b/release/man3/getgrent.3 index 384123b0..b1d9c0dd 100644 --- a/release/man3/getgrent.3 +++ b/release/man3/getgrent.3 @@ -33,9 +33,9 @@ .\" Updated & Modified 2005-09-06, Akihiro MOTOKI .\" .TH GETGRENT 3 2010-10-21 "" "Linux Programmer's Manual" -.SH ̾Á° -getgrent, setgrent, endgrent \- ¥°¥ë¡¼¥×¥Õ¥¡¥¤¥ë¥¨¥ó¥È¥ê¤Î¼èÆÀ -.SH ½ñ¼° +.SH 名前 +getgrent, setgrent, endgrent \- グループファイルエントリの取得 +.SH 書式 .nf .B #include .B #include @@ -48,9 +48,9 @@ getgrent, setgrent, endgrent \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .PD 0 @@ -71,94 +71,94 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .RE .PD .ad b -.SH ÀâÌÀ +.SH 説明 .BR getgrent () -´Ø¿ô¤Ï¡¢¥°¥ë¡¼¥×¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¼èÆÀ¤·¤¿¥¨¥ó¥È¥ê¤ò -Í×ÁÇËè¤Ëʬ²ò¤·¡¢³ÆÍ×ÁǤò³ÊǼ¤·¤¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹ -(¥°¥ë¡¼¥×¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÎã: -¥í¡¼¥«¥ë¤Î¥°¥ë¡¼¥×¥Õ¥¡¥¤¥ë +関数は、グループ・データベースから取得したエントリを +要素毎に分解し、各要素を格納した構造体へのポインタを返す +(グループ・データベースの例: +ローカルのグループファイル .IR /etc/group , -NIS, LDAP)¡£ +NIS, LDAP)。 .BR getgrent () -¤Ï¡¢ºÇ½é¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿»þ¤ÏºÇ½é¤Î¥¨¥ó¥È¥ê¤òÊÖ¤·¡¢ -¤½¤ì°Ê¹ß¤Ï¸Æ¤Ó½Ð¤µ¤ì¤ëËè¤Ë¼¡¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£ +は、最初に呼び出された時は最初のエントリを返し、 +それ以降は呼び出される毎に次のエントリを返す。 .PP .BR setgrent () -´Ø¿ô¤ò»È¤¦¤È¡¢¤â¤¦°ìÅÙÆɤ߹þ¤á¤ë¤è¤¦¤Ë¡¢ -¥°¥ë¡¼¥×¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÀèƬ¤ËÌá¤ë¡£ +関数を使うと、もう一度読み込めるように、 +グループ・データベースの先頭に戻る。 .PP .BR endgrent () -´Ø¿ô¤Ï¡¢Á´¤Æ¤Î½èÍý¤¬½ª¤ï¤Ã¤¿¸å¤Ë¥°¥ë¡¼¥×¡¦ -¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +関数は、全ての処理が終わった後にグループ・ +データベースをクローズする。 .PP -\fIgroup\fP ¹½Â¤ÂΤϡ¢\fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +\fIgroup\fP 構造体は、\fI\fP で以下のように定義されている: .sp .in +4n .nf struct group { - char *gr_name; /* ¥°¥ë¡¼¥×̾ */ - char *gr_passwd; /* ¥°¥ë¡¼¥×¤Î¥Ñ¥¹¥ï¡¼¥É */ - gid_t gr_gid; /* ¥°¥ë¡¼¥× ID */ - char **gr_mem; /* ¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð */ + char *gr_name; /* グループ名 */ + char *gr_passwd; /* グループのパスワード */ + gid_t gr_gid; /* グループ ID */ + char **gr_mem; /* グループのメンバ */ }; .fi .in .PP -¤³¤Î¹½Â¤ÂΤΥե£¡¼¥ë¥É¤Î¾ÜºÙ¤Ï +この構造体のフィールドの詳細は .BR group (5) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ +を参照のこと。 +.SH 返り値 .BR getgrent () -´Ø¿ô¤Ï +関数は .I group -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤ì°Ê¾å¥¨¥ó¥È¥ê¤¬Ìµ¤¤¤«¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +構造体へのポインタを返す。 +これ以上エントリが無いか、エラーが発生した場合は NULL を返す。 .LP -¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤È¡¢ +エラーが発生すると、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -¤³¤Î´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¸å¤Ë +が適切に設定される。 +この関数の呼び出し後に .I errno -¤ò¥Á¥§¥Ã¥¯¤·¤¿¤¤¾ì¹ç¤Ï¡¢¸Æ¤Ó½Ð¤·Á°¤Ë +をチェックしたい場合は、呼び出し前に .I errno -¤ò 0 ¤ËÀßÄꤷ¤Æ¤ª¤«¤Ê¤¤¤È¤¤¤±¤Ê¤¤¡£ +を 0 に設定しておかないといけない。 -ÊÖ¤êÃͤÏÀÅŪ¤ÊÎΰè¤ò»Ø¤·¤Æ¤ª¤ê¡¢¤½¤Î¸å¤Î +返り値は静的な領域を指しており、その後の .BR getgrent (), .BR getgrgid (3), .BR getgrnam (3) -¤Î¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -(ÊÖ¤µ¤ì¤¿¥Ý¥¤¥ó¥¿¤ò +の呼び出しで上書きされるかもしれない。 +(返されたポインタを .BR free (3) -¤ËÅϤµ¤Ê¤¤¤³¤È¡£) -.SH ¥¨¥é¡¼ +に渡さないこと。) +.SH エラー .TP .B EINTR -¥·¥°¥Ê¥ë¤¬¥­¥ã¥Ã¥Á¤µ¤ì¤¿¡£ +シグナルがキャッチされた。 .TP .B EIO -I/O ¥¨¥é¡¼¡£ +I/O エラー。 .TP .B EMFILE -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬´û¤Ë¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤·²á¤®¤Æ¤¤¤ë¡£ +呼び出したプロセスが既にファイルをオープンし過ぎている。 .TP .B ENFILE -¥·¥¹¥Æ¥à¾å¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬Â¿²á¤®¤ë¡£ +システム上にオープンされたファイルが多過ぎる。 .TP .B ENOMEM -.\" POSIX ¤Ë¤Ï¤Ê¤¤¡£ +.\" POSIX にはない。 .I group -¹½Â¤ÂΤò³ä¤êÅö¤Æ¤ë¤¿¤á¤Î¥á¥â¥ê¤¬ÉÔ½½Ê¬¡£ +構造体を割り当てるためのメモリが不十分。 .TP .B ERANGE -½½Ê¬¤Ê¥Ð¥Ã¥Õ¥¡¶õ´Ö¤¬¤Ê¤¤¡£ -.SH ¥Õ¥¡¥¤¥ë +十分なバッファ空間がない。 +.SH ファイル .TP .I /etc/group -¥í¡¼¥«¥ë¤Î¥°¥ë¡¼¥×¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë -.SH ½àµò +ローカルのグループ・データベースファイル +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fgetgrent (3), .BR getgrent_r (3), .BR getgrgid (3), diff --git a/release/man3/getgrent_r.3 b/release/man3/getgrent_r.3 index 8e1beb0c..1963d429 100644 --- a/release/man3/getgrent_r.3 +++ b/release/man3/getgrent_r.3 @@ -26,9 +26,9 @@ .\" by Yuichi SATO .\" .TH GETGRENT_R 3 2010-10-21 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -getgrent_r, fgetgrent_r \- ¥°¥ë¡¼¥×¥Õ¥¡¥¤¥ë¥¨¥ó¥È¥ê¤ò¥ê¥¨¥ó¥È¥é¥ó¥È (reentrant) ¤Ë¼è¤ê½Ð¤¹ -.SH ½ñ¼° +.SH 名前 +getgrent_r, fgetgrent_r \- グループファイルエントリをリエントラント (reentrant) に取り出す +.SH 書式 .nf .B #include .sp @@ -42,9 +42,9 @@ getgrent_r, fgetgrent_r \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR getgrent_r (): @@ -53,81 +53,81 @@ _GNU_SOURCE .br .BR fgetgrent_r (): _SVID_SOURCE -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR getgrent_r () -¤È +と .BR fgetgrent_r () -¤Ï +は .BR getgrent (3) -¤È +と .BR fgetgrent (3) -¤Î¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤǤ¢¤ë¡£ -Á°¼Ô¤Ï¡¢ +のリエントラント版である。 +前者は、 .BR setgrent (3) -¤Ë¤è¤Ã¤Æ½é´ü²½¤µ¤ì¤¿¥¹¥È¥ê¡¼¥à¤«¤é¡¢¼¡¤Î¥°¥ë¡¼¥×¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥È¥ê¤òÆɤ߹þ¤à¡£ -¸å¼Ô¤Ï¡¢¥¹¥È¥ê¡¼¥à +によって初期化されたストリームから、次のグループファイルのエントリを読み込む。 +後者は、ストリーム .I fp -¤«¤é¼¡¤Î¥°¥ë¡¼¥×¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥È¥ê¤òÆɤ߹þ¤à¡£ +から次のグループファイルのエントリを読み込む。 .PP -\fIgroup\fP ¹½Â¤ÂÎ¤Ï +\fIgroup\fP 構造体は .I -¤Ë¤ª¤¤¤Æ°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +において以下のように定義されている: .sp .in +4n .nf struct group { - char *gr_name; /* ¥°¥ë¡¼¥×̾ */ - char *gr_passwd; /* ¥°¥ë¡¼¥×¥Ñ¥¹¥ï¡¼¥É */ - gid_t gr_gid; /* ¥°¥ë¡¼¥× ID */ - char **gr_mem; /* ¥°¥ë¡¼¥×¥á¥ó¥Ð */ + char *gr_name; /* グループ名 */ + char *gr_passwd; /* グループパスワード */ + gid_t gr_gid; /* グループ ID */ + char **gr_mem; /* グループメンバ */ }; .fi .in .PP -¤³¤Î¹½Â¤ÂΤΥե£¡¼¥ë¥É¤Î¾ÜºÙ¤Ï +この構造体のフィールドの詳細は .BR group (5) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤Ê¤¤´Ø¿ô¤ÏÀÅŪ¤Ê³ÊǼÎΰè¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤ÎÀÅŪ¤Ê³ÊǼÎΰè¤Ë¤Ï¡¢¹¹¤Ë¥°¥ë¡¼¥×̾¡¦¥Ñ¥¹¥ï¡¼¥É¡¦ -¥á¥ó¥Ð¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬´Þ¤Þ¤ì¤ë¡£ -¤³¤³¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¥ê¥¨¥ó¥È¥é¥ó¥È¤Ê´Ø¿ô¤Ï¡¢ -¸Æ¤Ó½Ð¤·Â¦¤«¤éÄ󶡤µ¤ì¤ë¥Ð¥Ã¥Õ¥¡¤Ë¥°¥ë¡¼¥×̾¤Ê¤ÉÁ´¤Æ¤òÊÖ¤¹¡£ -ºÇ½é¤Î°ú¤­¿ô¤È¤·¤Æ \fIstruct group\fP ¤òÊÝ»ý¤Ç¤­¤ë¥Ð¥Ã¥Õ¥¡ +リエントラントでない関数は静的な格納領域へのポインタを返す。 +この静的な格納領域には、更にグループ名・パスワード・ +メンバへのポインタが含まれる。 +ここで説明されているリエントラントな関数は、 +呼び出し側から提供されるバッファにグループ名など全てを返す。 +最初の引き数として \fIstruct group\fP を保持できるバッファ .I gbuf -¤¬¤¢¤ë¡£ -¼¡¤Ë¤½¤Î¾¤Îʸ»úÎó¤òÊÝ»ý¤Ç¤­¤ë¥µ¥¤¥º +がある。 +次にその他の文字列を保持できるサイズ .I buflen -¤Î¥Ð¥Ã¥Õ¥¡ +のバッファ .I buf -¤¬¤¢¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Î·ë²Ì (¥¹¥È¥ê¡¼¥à¤«¤éÆɤ߹þ¤Þ¤ì¤¿ \fIstruct group\fP) ¤Ï¡¢ -Ä󶡤µ¤ì¤¿¥Ð¥Ã¥Õ¥¡ +がある。 +これらの関数の結果 (ストリームから読み込まれた \fIstruct group\fP) は、 +提供されたバッファ .IR *gbuf -¤Ë³ÊǼ¤µ¤ì¡¢¤³¤Î \fIstruct group\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ï +に格納され、この \fIstruct group\fP へのポインタは .IR *gbufp -¤ËÊÖ¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï 0 ¤òÊÖ¤·¡¢ +に返される。 +.SH 返り値 +成功した場合、これらの関数は 0 を返し、 .RI * gbufp -¤Ï \fIstruct group\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¤È¤Ê¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï¥¨¥é¡¼ÃͤòÊÖ¤·¡¢ +は \fIstruct group\fP へのポインタとなる。 +エラーの場合、これらの関数はエラー値を返し、 .RI * gbufp -¤Ï NULL ¤Ë¤Ê¤ë¡£ -.SH ¥¨¥é¡¼ +は NULL になる。 +.SH エラー .TP .B ENOENT -¼¡¤Î¥¨¥ó¥È¥ê¤¬¤Ê¤¤¡£ +次のエントリがない。 .TP .B ERANGE -½½Ê¬¤Ê¥Ð¥Ã¥Õ¥¡¶õ´Ö¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤¡£ -¤â¤Ã¤ÈÂ礭¤Ê¥Ð¥Ã¥Õ¥¡¤ÇºÆÅټ¹Ԥ¹¤ë¤³¤È¡£ -.SH ½àµò -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ê¡¢POSIX ÈǤδؿô +十分なバッファ空間が与えられていない。 +もっと大きなバッファで再度実行すること。 +.SH 準拠 +これらの関数は GNU 拡張であり、POSIX 版の関数 .BR getpwnam_r (3) -¤Î·Á¼°¤Ë»÷¤»¤Æ¤¢¤ë¡£ -¾¤Î¥·¥¹¥Æ¥à¤Ç¤Ï°Ê²¼¤Î¥×¥í¥È¥¿¥¤¥×¤¬»È¤ï¤ì¤Æ¤¤¤ë¡£ +の形式に似せてある。 +他のシステムでは以下のプロトタイプが使われている。 .sp .nf .in +4n @@ -136,7 +136,7 @@ struct group *getgrent_r(struct group *grp, char *buf, .in .fi .sp -¤è¤êÎɤ¤¤â¤Î¤Ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +より良いものでは、以下のようになっている。 .sp .nf .in +4n @@ -144,13 +144,13 @@ int getgrent_r(struct group *grp, char *buf, int buflen, FILE **gr_fp); .in .fi -.SH Ãí°Õ -´Ø¿ô +.SH 注意 +関数 .BR getgrent_r () -¤ÏËÜÅö¤Î¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤Ï¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¡¢¥¹¥È¥ê¡¼¥à¤ÎÆɤ߹þ¤ß°ÌÃÖ¤ò -¾¤ÎÁ´¤Æ¤Î¥¹¥ì¥Ã¥É¤È¶¦Í­¤·¤Æ¤¤¤ë¤¿¤á¤Ç¤¢¤ë¡£ -.SH Îã +は本当のリエントラントではない。 +なぜなら、ストリームの読み込み位置を +他の全てのスレッドと共有しているためである。 +.SH 例 .nf #define _GNU_SOURCE #include @@ -182,7 +182,7 @@ main(void) exit(EXIT_SUCCESS); } .fi -.\" ¤¿¤Ö¤ó¥¨¥é¡¼¥Á¥§¥Ã¥¯¤òÄɲ䷤ơ¢strerror_r ¤ò»È¤¦¤Ù¤­¤À¤í¤¦¡£ +.\" たぶんエラーチェックを追加して、strerror_r を使うべきだろう。 .\" #include .\" #include .\" if (i) { @@ -191,7 +191,7 @@ main(void) .\" printf("getgrent_r: %s", strerror(i)); .\" exit(EXIT_FAILURE); .\" } -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fgetgrent (3), .BR getgrent (3), .BR getgrgid (3), diff --git a/release/man3/getgrnam.3 b/release/man3/getgrnam.3 index efdaa6a3..47e75a83 100644 --- a/release/man3/getgrnam.3 +++ b/release/man3/getgrnam.3 @@ -38,9 +38,9 @@ .\" Updated 2008-12-24, Akihiro MOTOKI, LDP v3.14 .\" .TH GETGRNAM 3 2009-03-30 "" "Linux Programmer's Manual" -.SH ̾Á° -getgrnam, getgrnam_r, getgrgid, getgrgid_r \- ¥°¥ë¡¼¥×¥Õ¥¡¥¤¥ë¥¨¥ó¥È¥ê¤Î¼è¤ê½Ð¤· -.SH ½ñ¼° +.SH 名前 +getgrnam, getgrnam_r, getgrgid, getgrgid_r \- グループファイルエントリの取り出し +.SH 書式 .nf .B #include .B #include @@ -59,9 +59,9 @@ getgrnam, getgrnam_r, getgrgid, getgrgid_r \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .ad l .in .sp @@ -72,168 +72,168 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE || _POSIX_SOURCE .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR getgrnam () -´Ø¿ô¤Ï¡¢¥°¥ë¡¼¥×̾ +関数は、グループ名 .I name -¤Ë¥Þ¥Ã¥Á¤¹¤ë¥°¥ë¡¼¥×¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥¨¥ó¥È¥ê¤ò -Í×ÁÇËè¤Ëʬ²ò¤·¡¢³ÆÍ×ÁǤò³ÊǼ¤·¤¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹ -(¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÎã: -¥í¡¼¥«¥ë¤Î¥°¥ë¡¼¥×¥Õ¥¡¥¤¥ë +にマッチするグループ・データベースのエントリを +要素毎に分解し、各要素を格納した構造体へのポインタを返す +(パスワード・データベースの例: +ローカルのグループファイル .IR /etc/group , -NIS, LDAP)¡£ +NIS, LDAP)。 .PP .BR getgrgid () -´Ø¿ô¤Ï¡¢¥°¥ë¡¼¥× ID +関数は、グループ ID .I uid -¤Ë¥Þ¥Ã¥Á¤¹¤ë¥°¥ë¡¼¥×¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥¨¥ó¥È¥ê¤ò -Í×ÁÇËè¤Ëʬ²ò¤·¡¢³ÆÍ×ÁǤò³ÊǼ¤·¤¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ +にマッチするグループ・データベースのエントリを +要素毎に分解し、各要素を格納した構造体へのポインタを返す。 .PP .BR getgrnam_r () -¤È +と .BR getgrgid_r () -´Ø¿ô¤Ï (¾åµ­¤Î´Ø¿ô¤È) Ʊ¤¸¾ðÊó¤ò¼èÆÀ¤¹¤ë¤¬¡¢ -¼èÆÀ¤·¤¿ +関数は (上記の関数と) 同じ情報を取得するが、 +取得した .I group -¹½Â¤ÂΤò +構造体を .I grp -¤¬»Ø¤¹Îΰè¤Ë³ÊǼ¤¹¤ë¡£ -¤³¤Î +が指す領域に格納する。 +この .I group -¹½Â¤ÂΤˤÏʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬´Þ¤Þ¤ì¡¢ -¤³¤ì¤é¤Îʸ»úÎó¤Ï¥µ¥¤¥º +構造体には文字列へのポインタが含まれ、 +これらの文字列はサイズ .I buflen -¤Î¥Ð¥Ã¥Õ¥¡ +のバッファ .I buf -¤Ë³ÊǼ¤µ¤ì¤ë¡£ -À®¸ù¤·¤¿¾ì¹ç +に格納される。 +成功した場合 .I *gbufp -¤Ë¤Ï·ë²Ì¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬³ÊǼ¤µ¤ì¤ë¡£ -¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤ä¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¤Ï +には結果へのポインタが格納される。 +エントリが見つからなかった場合やエラーが発生した場合には .I *result -¤Ë¤Ï NULL ¤¬Æþ¤ë¡£ +には NULL が入る。 .PP -\fIgroup\fP ¹½Â¤ÂΤϡ¢\fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +\fIgroup\fP 構造体は、\fI\fP で以下のように定義されている: .sp .in +4n .nf struct group { - char *gr_name; /* ¥°¥ë¡¼¥×̾ */ - char *gr_passwd; /* ¥°¥ë¡¼¥×¤Î¥Ð¥¹¥ï¡¼¥É */ - gid_t gr_gid; /* ¥°¥ë¡¼¥× ID */ - char **gr_mem; /* ¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð */ + char *gr_name; /* グループ名 */ + char *gr_passwd; /* グループのバスワード */ + gid_t gr_gid; /* グループ ID */ + char **gr_mem; /* グループのメンバ */ }; .fi .in .PP .I buf -¤ËºÇÂçɬÍפʥµ¥¤¥º¤Ï¡¢ +に最大必要なサイズは、 .BR sysconf (3) -¤Ë°ú¤­¿ô +に引き数 .B _SC_GETGR_R_SIZE_MAX -¤ò»ØÄꤷ¤Æ¼Â¹Ô¤¹¤ë¤³¤È¤Çʬ¤«¤ë¡£ -.SH ÊÖ¤êÃÍ +を指定して実行することで分かる。 +.SH 返り値 .BR getgrnam () -¤È +と .BR getgrgid () -´Ø¿ô¤Ï¡¢ +関数は、 .I group -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¥Þ¥Ã¥Á¤¹¤ë¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤ä¡¢ -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢ +構造体へのポインタを返す。 +マッチするエントリが見つからなかった場合や、 +エラーが発生した場合は NULL を返す。 +エラーが起こった場合、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -¸Æ¤Ó½Ð¤·¤Î¸å¤Ç +が適切に設定される。 +呼び出しの後で .I errno -¤ò¥Á¥§¥Ã¥¯¤·¤¿¤¤¾ì¹ç¤Ï¡¢ -¸Æ¤Ó½Ð¤·¤ÎÁ°¤Ë (¤³¤ÎÃͤò) 0 ¤ËÀßÄꤷ¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£ +をチェックしたい場合は、 +呼び出しの前に (この値を) 0 に設定しておくべきである。 .LP -ÊÖ¤êÃͤÏÀÅŪ¤ÊÎΰè¤ò»Ø¤·¤Æ¤ª¤ê¡¢¤½¤Î¸å¤Î +返り値は静的な領域を指しており、その後の .BR getgrent (3), .BR getgrgid (), .BR getgrnam () -¤Î¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -(ÊÖ¤µ¤ì¤¿¥Ý¥¤¥ó¥¿¤ò +の呼び出しで上書きされるかもしれない。 +(返されたポインタを .BR free (3) -¤ËÅϤµ¤Ê¤¤¤³¤È¡£) +に渡さないこと。) .LP -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR getgrnam_r () -¤È +と .BR getgrgid_r () -¤Ï 0 ¤òÊÖ¤·¡¢ +は 0 を返し、 .I *result -¤Ë +に .I grp -¤òÀßÄꤹ¤ë¡£ -¥Þ¥Ã¥Á¤¹¤ë¥°¥ë¡¼¥×¡¦¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ -0 ¤òÊÖ¤·¡¢ +を設定する。 +マッチするグループ・エントリが見つからなかった場合には、 +0 を返し、 .I *result -¤Ë NULL ¤òÀßÄꤹ¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢¥¨¥é¡¼ÈÖ¹æ¤òÊÖ¤·¡¢ +に NULL を設定する。 +エラーの場合、エラー番号を返し、 .I *result -¤Ë NULL ¤òÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +に NULL を設定する。 +.SH エラー .TP -.BR 0 " ¤Þ¤¿¤Ï " ENOENT " ¤Þ¤¿¤Ï " ESRCH " ¤Þ¤¿¤Ï " EBADF " ¤Þ¤¿¤Ï " EPERM " ¤Þ¤¿¤Ï ... " -»ØÄꤵ¤ì¤¿ +.BR 0 " または " ENOENT " または " ESRCH " または " EBADF " または " EPERM " または ... " +指定された .I name -¤Þ¤¿¤Ï +または .I gid -¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£ +が見つからなかった。 .TP .B EINTR -¥·¥°¥Ê¥ë¤¬¥­¥ã¥Ã¥Á¤µ¤ì¤¿¡£ +シグナルがキャッチされた。 .TP .B EIO -I/O ¥¨¥é¡¼¡£ +I/O エラー。 .TP .B EMFILE -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ë¤ª¤¤¤Æ¡¢ -´û¤ËºÇÂç¿ô +呼び出したプロセスにおいて、 +既に最大数 .RB ( OPEN_MAX ) -¤Î¥Õ¥¡¥¤¥ë¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¡£ +のファイルがオープンされている。 .TP .B ENFILE -¥·¥¹¥Æ¥à¾å¤Ç´û¤ËºÇÂç¿ô¤Î¥Õ¥¡¥¤¥ë¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¡£ +システム上で既に最大数のファイルがオープンされている。 .TP .B ENOMEM -.\" POSIX ¤Ë¤Ï¤Ê¤¤ +.\" POSIX にはない .I group -¹½Â¤ÂΤò³ä¤êÅö¤Æ¤ë¤¿¤á¤Î¥á¥â¥ê¤¬ÉÔ½½Ê¬¡£ -.\" ¥°¥ë¡¼¥×¾ðÊó¹½Â¤ÂΤò³ä¤êÅö¤Æ¤ë¤¿¤á¡¢¤Þ¤¿¤Ï¥Ð¥Ã¥Õ¥¡¤ò³ä¤êÅö¤Æ¤ë¤¿¤á¤Î +構造体を割り当てるためのメモリが不十分。 +.\" グループ情報構造体を割り当てるため、またはバッファを割り当てるための .TP .B ERANGE -Í¿¤¨¤é¤ì¤¿¥Ð¥Ã¥Õ¥¡¶õ´Ö¤¬ÉÔ½½Ê¬¤Ç¤¢¤ë¡£ -.SH ¥Õ¥¡¥¤¥ë +与えられたバッファ空間が不十分である。 +.SH ファイル .TP .I /etc/group -¥í¡¼¥«¥ë¤Î¥°¥ë¡¼¥×¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë -.SH ½àµò +ローカルのグループ・データベースファイル +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -.SH Ãí°Õ -¾åµ­¤Î¡ÖÊÖ¤êÃ͡װʲ¼¤Îµ­½Ò¤Ï POSIX.1-2001 ¤Ëµò¤ë¡£ -¤³¤Îɸ½à¤Ï¡Ö(¥¨¥ó¥È¥ê¤¬) ¸«¤Ä¤«¤é¤Ê¤¤¤³¤È¡×¤ò¥¨¥é¡¼¤È¤·¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢ -¤½¤Î¤è¤¦¤Ê¾ì¹ç¤Ë +.SH 注意 +上記の「返り値」以下の記述は POSIX.1-2001 に拠る。 +この標準は「(エントリが) 見つからないこと」をエラーとしていないので、 +そのような場合に .I errno -¤¬¤É¤Î¤è¤¦¤ÊÃͤˤʤ뤫¤òÄê¤á¤Æ¤¤¤Ê¤¤¡£ -¤½¤Î¤¿¤á¡¢¥¨¥é¡¼¤òǧ¼±¤¹¤ë¤³¤È¤ÏÉÔ²Äǽ¤Ç¤¢¤ë¡£ -POSIX ¤Ë½àµò¤·¤Æ¡¢¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï +がどのような値になるかを定めていない。 +そのため、エラーを認識することは不可能である。 +POSIX に準拠して、エントリが見つからない場合は .I errno -¤òÊѹ¹¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡¢¤È¼çÄ¥¤¹¤ë¿Í¤â¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -ÍÍ¡¹¤Ê UNIX ·Ï¤Î¥·¥¹¥Æ¥à¤Ç»î¤·¤Æ¤ß¤ë¤È¡¢¤½¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï -0, ENOENT, EBADF, ESRCH, EWOULDBLOCK, EPERM ¤È¤¤¤Ã¤¿ÍÍ¡¹¤ÊÃͤ¬ÊÖ¤µ¤ì¤ë¡£ -¾¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -.\" ¤è¤êÀµ³Î¤Ë¤Ï: -.\" AIX 5.1 ¤Ï ESRCH ¤òÊÖ¤¹¡£ -.\" OSF1 4.0g ¤Ï EWOULDBLOCK ¤òÊÖ¤¹¡£ -.\" libc, glibc (¥Ð¡¼¥¸¥ç¥ó 2.6 ¤Þ¤Ç), Irix 6.5 ¤Ï ENOENT ¤òÊÖ¤¹¡£ -.\" glibc (¥Ð¡¼¥¸¥ç¥ó 2.7 °Ê¹ß) ¤Ï 0 ¤òÊÖ¤¹¡£ -.\" FreeBSD 4.8, OpenBSD 3.2, NetBSD 1.6 ¤Ï EPERM ¤òÊÖ¤¹¡£ -.\" SunOS 5.8 ¤Ï EBADF ¤òÊÖ¤¹¡£ -.\" Tru64 5.1b, HP-UX-11i, SunOS 5.7 ¤Ï 0 ¤òÊÖ¤¹¡£ -.SH ´ØÏ¢¹àÌÜ +を変更しないようにすべきである、と主張する人もいるかもしれない。 +様々な UNIX 系のシステムで試してみると、そのような場合には +0, ENOENT, EBADF, ESRCH, EWOULDBLOCK, EPERM といった様々な値が返される。 +他の値が返されるかもしれない。 +.\" より正確には: +.\" AIX 5.1 は ESRCH を返す。 +.\" OSF1 4.0g は EWOULDBLOCK を返す。 +.\" libc, glibc (バージョン 2.6 まで), Irix 6.5 は ENOENT を返す。 +.\" glibc (バージョン 2.7 以降) は 0 を返す。 +.\" FreeBSD 4.8, OpenBSD 3.2, NetBSD 1.6 は EPERM を返す。 +.\" SunOS 5.8 は EBADF を返す。 +.\" Tru64 5.1b, HP-UX-11i, SunOS 5.7 は 0 を返す。 +.SH 関連項目 .BR endgrent (3), .BR fgetgrent (3), .BR getgrent (3), diff --git a/release/man3/getgrouplist.3 b/release/man3/getgrouplist.3 index e403f581..c6a262ca 100644 --- a/release/man3/getgrouplist.3 +++ b/release/man3/getgrouplist.3 @@ -30,9 +30,9 @@ .\" Updated 2008-08-11, Akihiro MOTOKI , LDP v3.05 .\" .TH GETGROUPLIST 3 2009-07-03 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -getgrouplist \- ¥æ¡¼¥¶¤¬½ê°¤¹¤ë¥°¥ë¡¼¥×¤Î¥ê¥¹¥È¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +getgrouplist \- ユーザが所属するグループのリストを取得する +.SH 書式 .B #include .sp .BI "int getgrouplist(const char *" user ", gid_t " group , @@ -40,93 +40,93 @@ getgrouplist \- .BI " gid_t *" groups ", int *" ngroups ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR getgrouplist (): _BSD_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR getgrouplist () -´Ø¿ô¤Ï¡¢¥°¥ë¡¼¥×¥Ç¡¼¥¿¥Ù¡¼¥¹ +関数は、グループデータベース .RB ( group (5) -»²¾È) ¤òÄ´¤Ù¤Æ¡¢ +参照) を調べて、 .I user -¤¬½ê°¤¹¤ë¥°¥ë¡¼¥×¤Î¥ê¥¹¥È¤ò¼èÆÀ¤¹¤ë¡£ -¸«¤Ä¤«¤Ã¤¿¥°¥ë¡¼¥×¤Î¤¦¤ÁºÇÂç +が所属するグループのリストを取得する。 +見つかったグループのうち最大 .I *ngroups -¸Ä¤Î¥°¥ë¡¼¥×¤¬¡¢ÇÛÎó +個のグループが、配列 .I groups -¤Ë³ÊǼ¤µ¤ì¤ÆÊÖ¤µ¤ì¤ë¡£ +に格納されて返される。 -°ú¤­¿ô +引き数 .I group -¤¬¥°¥ë¡¼¥×¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë +がグループデータベースに .I user -¤¬½ê°¤¹¤ë¥°¥ë¡¼¥×¤¬¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ +が所属するグループがなかった場合、 .BR getgrouplist () -¤¬ÊÖ¤¹¥°¥ë¡¼¥×¤Î¥ê¥¹¥È¤Ë°ú¤­¿ô +が返すグループのリストに引き数 .I group -¤âÄɲ䵤ì¤ë¡£ -Ä̾ï¤Ï¡¢¤³¤Î°ú¤­¿ô¤Ë¤Ï¥æ¡¼¥¶ +も追加される。 +通常は、この引き数にはユーザ .I user -¤Î¥Ñ¥¹¥ï¡¼¥É¥ì¥³¡¼¥É¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¥°¥ë¡¼¥× ID ¤ò»ØÄꤹ¤ë¡£ +のパスワードレコードに書かれているグループ ID を指定する。 -°ú¤­¿ô +引き数 .I ngroups -¤Ï¡¢ÃÍÅϤ·¤È·ë²Ì¤ÎξÊý¤Ë»ÈÍѤµ¤ì¤ë°ú¤­¿ô (value-result argument) ¤Ç¤¢¤ê¡¢ -¥ê¥¿¡¼¥ó»þ¤Ë¤Ï¡¢¾ï¤Ë +は、値渡しと結果の両方に使用される引き数 (value-result argument) であり、 +リターン時には、常に .I group -¤â´Þ¤á¤¿ +も含めた .I user -¤¬½ê°¤¹¤ë¥°¥ë¡¼¥×¿ô¤¬³ÊǼ¤µ¤ì¤ë¡£ -¤³¤ÎÃÍ¤Ï +が所属するグループ数が格納される。 +この値は .I groups -¤Ë³ÊǼ¤µ¤ì¤¿¥°¥ë¡¼¥×¿ô¤è¤êÂ礭¤¯¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +に格納されたグループ数より大きくなる可能性がある。 +.SH 返り値 .I user -¤¬½ê°¤·¤Æ¤¤¤ë¥°¥ë¡¼¥×¿ô¤¬ +が所属しているグループ数が .I *ngroups -°Ê²¼¤Î¾ì¹ç¡¢ +以下の場合、 .I *ngroups -¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¡£ +の値が返される。 -»ØÄꤵ¤ì¤¿¥æ¡¼¥¶¤¬ +指定されたユーザが .I *ngroups -¤è¤ê¿¤¯¤Î¥°¥ë¡¼¥×¤Ë½ê°¤·¤Æ¤¤¤ë¾ì¹ç¡¢ +より多くのグループに所属している場合、 .BR getgrouplist () -¤Ï \-1 ¤òÊÖ¤¹¡£ -¤³¤Î¾ì¹ç¡¢ +は \-1 を返す。 +この場合、 .I *ngroups -¤ÇÊÖ¤µ¤ì¤ëÃͤò»È¤Ã¤Æ¡¢¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤òÊѹ¹¤·¤Æ¤«¤é¡¢ +で返される値を使って、バッファのサイズを変更してから、 .BR getgrouplist () -¤ò¤â¤¦°ìÅٸƤӽФ¹¤³¤È¤¬¤Ç¤­¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤Î´Ø¿ô¤Ï glibc 2.2.4 ¤«¤é¸ºß¤¹¤ë¡£ -.SH ½àµò -¤³¤Î´Ø¿ô¤ÏÈóɸ½à¤Ç¤¢¤ë¡£¤Û¤È¤ó¤É¤Î BSD ¤Ë¸ºß¤¹¤ë¡£ -.SH ¥Ð¥° -¥Ð¡¼¥¸¥ç¥ó 2.3.3 ¤è¤êÁ°¤Î glibc ¤Ç¤Ï¡¢ -¤³¤Î´Ø¿ô¤Î¼ÂÁõ¤Ë¤Ï¥Ð¥Ã¥Õ¥¡¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Î¥Ð¥°¤¬¤¢¤ê¡¢ +をもう一度呼び出すことができる。 +.SH バージョン +この関数は glibc 2.2.4 から存在する。 +.SH 準拠 +この関数は非標準である。ほとんどの BSD に存在する。 +.SH バグ +バージョン 2.3.3 より前の glibc では、 +この関数の実装にはバッファオーバーフローのバグがあり、 .I user -¤¬½ê°¤¹¤ë¥°¥ë¡¼¥×¿ô¤¬ +が所属するグループ数が .I *ngroups -¤è¤ê¿¤¤¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢ +より多い場合であっても、 .I user -¤¬½ê°¤¹¤ë¥°¥ë¡¼¥×¤ÎÁ´¥ê¥¹¥È¤òÇÛÎó +が所属するグループの全リストを配列 .I groups -¤Ë³ÊǼ¤·¤Æ¤·¤Þ¤¦¡£ -.SH Îã +に格納してしまう。 +.SH 例 .PP -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢°ì¤ÄÌܤΥ³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿Ì¾Á°¤Î¥æ¡¼¥¶ -¤¬½ê°¤¹¤ë¥°¥ë¡¼¥×¤Î¥ê¥¹¥È¤òɽ¼¨¤¹¤ë¡£ -ÆóÈÖÌܤΥ³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ë¤Ï¡¢ +以下のプログラムは、一つ目のコマンドライン引き数で指定された名前のユーザ +が所属するグループのリストを表示する。 +二番目のコマンドライン引き数には、 .BR getgrouplist () -¤ËÅϤ¹ +に渡す .I ngroups -¤ÎÃͤò»ØÄꤹ¤ë¡£ -°Ê²¼¤Î¥·¥§¥ë¤Î¥»¥Ã¥·¥ç¥ó¤Ï¤³¤Î¥×¥í¥°¥é¥à¤Î»ÈÍÑÎã¤ò¼¨¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +の値を指定する。 +以下のシェルのセッションはこのプログラムの使用例を示したものである。 .in +4n .nf @@ -139,7 +139,7 @@ ngroups = 3 100 (users) .fi .in -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -198,7 +198,7 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getgroups (2), .BR setgroups (2), .BR getgrent (3), diff --git a/release/man3/gethostbyname.3 b/release/man3/gethostbyname.3 index 52f6d816..62fc2ced 100644 --- a/release/man3/gethostbyname.3 +++ b/release/man3/gethostbyname.3 @@ -46,21 +46,21 @@ .\" Updated 2008-08-08, Akihiro MOTOKI, LDP v3.05 .\" .TH GETHOSTBYNAME 3 2010-10-04 "" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 gethostbyname, gethostbyaddr, sethostent, gethostent, endhostent, h_errno, herror, hstrerror, gethostbyaddr_r, gethostbyname2, gethostbyname2_r, gethostbyname_r, -gethostent_r \- ¥Í¥Ã¥È¥ï¡¼¥¯¾å¤Î¥Û¥¹¥È¤Î¥¨¥ó¥È¥ê¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +gethostent_r \- ネットワーク上のホストのエントリを取得する +.SH 書式 .nf .B #include .B extern int h_errno; .sp .BI "struct hostent *gethostbyname(const char *" name ); .sp -.BR "#include " " /* AF_INET ¤ò»È¤¦¾ì¹ç */" +.BR "#include " " /* AF_INET を使う場合 */" .BI "struct hostent *gethostbyaddr(const void *" addr , .BI " socklen_t " len ", int " type ); .sp @@ -72,11 +72,11 @@ gethostent_r \- .sp .BI "const char *hstrerror(int " err ); .sp -/* System V/POSIX ³ÈÄ¥ */ +/* System V/POSIX 拡張 */ .br .B struct hostent *gethostent(void); .sp -/* GNU ³ÈÄ¥ */ +/* GNU 拡張 */ .br .BI "struct hostent *gethostbyname2(const char *" name ", int " af ); .sp @@ -98,9 +98,9 @@ gethostent_r \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .PD 0 @@ -118,139 +118,139 @@ _BSD_SOURCE || _SVID_SOURCE .BR hstrerror (): .RS 4 .TP 4 -glibc 2.8 °Ê¹ß: +glibc 2.8 以降: _BSD_SOURCE || _SVID_SOURCE || _GNU_SOURCE .TP -glibc 2.8 ¤è¤êÁ°: -¤Ê¤· +glibc 2.8 より前: +なし .RE .ad b .PD -.SH ÀâÌÀ +.SH 説明 .BR gethostbyname* () -¤È +と .BR gethostbyaddr* () -¤Ï²áµî¤Î¤â¤Î¤Ç¤¢¤ë¡£ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢Âå¤ï¤ê¤Ë +は過去のものである。 +アプリケーションでは、代わりに .BR getaddrinfo (3) -¤È +と .BR getnameinfo (3) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +を使用すること。 .BR gethostbyname () -´Ø¿ô¤ÏÍ¿¤¨¤é¤ì¤¿¥Û¥¹¥È̾ +関数は与えられたホスト名 .I name -¤ËÂбþ¤¹¤ë¹½Â¤ÂÎ +に対応する構造体 .I hostent -¤òÊÖ¤¹¡£ +を返す。 .I name -¤Ë¤Ï¥Û¥¹¥È̾¡¢¥É¥Ã¥È¶èÀÚ¤ê¤Î IPv4 ¥¢¥É¥ì¥¹ +にはホスト名、ドット区切りの IPv4 アドレス .RB ( inet_addr (3) -»²¾È)¡¢¥³¥í¥ó¶èÀÚ¤ê¤Î IPv6 ¥¢¥É¥ì¥¹ (¤ª¤½¤é¤¯¥É¥Ã¥È¶èÀÚ¤ê¤Ç¤âÂç¾æÉ×) -¤Î¤¤¤º¤ì¤«¤ò»ØÄꤹ¤ë -(IPv6 ¥¢¥É¥ì¥¹¤Îµ­½ÒÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï RFC\ 1884 ¤ò»²¹Í¤Ë¤·¤Æ¤Û¤·¤¤)¡£ +参照)、コロン区切りの IPv6 アドレス (おそらくドット区切りでも大丈夫) +のいずれかを指定する +(IPv6 アドレスの記述方法については RFC\ 1884 を参考にしてほしい)。 .I name -¤¬ IPv4 ¤« IPv6 ¤Î¥¢¥É¥ì¥¹¤À¤Ã¤¿¾ì¹ç¡¢ -̾Á°²ò·è (lookup) ¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£¤½¤Î¾ì¹ç¤Ë¤Ï¡¢ +が IPv4 か IPv6 のアドレスだった場合、 +名前解決 (lookup) は行われない。その場合には、 .BR gethostbyname () -¤Ï +は .I name -¤ò¤½¤Î¤Þ¤Þ +をそのまま .I hostent -¹½Â¤ÂΤΠ+構造体の .I h_name -¥Õ¥£¡¼¥ë¥É¤Ë¥³¥Ô¡¼¤·¡¢ -¤µ¤é¤Ë +フィールドにコピーし、 +さらに .I name -¤ò +を .I struct in_addr -·Á¼°¤Çɽ¤·¤¿¥Ç¡¼¥¿¤ò +形式で表したデータを .I hostent -¹½Â¤ÂΤΠ+構造体の .I h_addr_list[0] -¥Õ¥£¡¼¥ë¥É¤ËÆþ¤ì¤Æ¡¢¤½¤Î +フィールドに入れて、その .I hostent -¹½Â¤ÂΤòÊÖ¤¹¡£ +構造体を返す。 .I name -¤¬¥É¥Ã¥È¤Ç½ªÎ»¤·¤Æ¤¤¤Æ¡¢¤«¤Ä´Ä¶­ÊÑ¿ô +がドットで終了していて、かつ環境変数 .B HOSTALIASES -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¤Þ¤º +が設定されている場合、まず .B HOSTALIASES -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥¤¥ê¥¢¥¹¥Õ¥¡¥¤¥ë¤«¤é +で指定されているエイリアスファイルから .I name -¤Î¥¨¥ó¥È¥ê¤¬¸¡º÷¤µ¤ì¤ë (¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¤Ä¤¤¤Æ¤Ï +のエントリが検索される (ファイルのフォーマットについては .BR hostname (7) -¤ò»²¾È¤Î¤³¤È)¡£ +を参照のこと)。 .I name -¤¬¥É¥Ã¥È¤Ç½ªÎ»¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¸½ºß¤Î¥É¥á¥¤¥ó¤È¤½¤Î¿Æ¥É¥á¥¤¥ó¤¬¸¡º÷¤µ¤ì¤ë¡£ +がドットで終了していなければ、現在のドメインとその親ドメインが検索される。 .PP .BR gethostbyaddr () -´Ø¿ô¤ÏÍ¿¤¨¤é¤ì¤¿¥Û¥¹¥È¥¢¥É¥ì¥¹ +関数は与えられたホストアドレス .I addr -(Ťµ \fIlen\fP¡¢ ¥¿¥¤¥× \fItype\fP) ¤ËÂбþ¤¹¤ë¹½Â¤ÂÎ +(長さ \fIlen\fP、 タイプ \fItype\fP) に対応する構造体 .I hostent -¤òÊÖ¤¹¡£ -ÍѤ¤¤ë¤³¤È¤Î¤Ç¤­¤ë¥¿¥¤¥×¤Ï +を返す。 +用いることのできるタイプは .B AF_INET -¤È +と .B AF_INET6 -¤Ç¤¢¤ë¡£ -¥Û¥¹¥È¥¢¥É¥ì¥¹°ú¤­¿ô¤Ï¥¢¥É¥ì¥¹¥¿¥¤¥×¤Ë°Í¸¤·¤¿ -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ -Î㤨¤Ð¡¢¥¢¥É¥ì¥¹¥¿¥¤¥× +である。 +ホストアドレス引き数はアドレスタイプに依存した +構造体へのポインタである。 +例えば、アドレスタイプ .B AF_INET -¤ËÂФ·¤Æ¤Ï +に対しては .RB ( inet_addr (3) -¤Î¸Æ¤Ó½Ð¤·¤ÇÆÀ¤é¤ì¤ë) -\fIstruct in_addr *\fP ¤Ç¤¢¤ë¡£ +の呼び出しで得られる) +\fIstruct in_addr *\fP である。 .PP .BR sethostent () -´Ø¿ô¤Ï¡¢¥Í¡¼¥à¥µ¡¼¥Ð¤Ø¤ÎÀܳ·ÁÂÖ¤ò»ØÄꤹ¤ë¡£ +関数は、ネームサーバへの接続形態を指定する。 .I stayopen -¤¬¿¿ (1) ¤Ê¤é¤Ð¡¢¥Í¡¼¥à¥µ¡¼¥Ð¤Ø¤ÎÌ䤤¹ç¤ï¤»¤Ë¤Ï¡¢ -Àܳ¤µ¤ì¤¿ TCP ¥½¥±¥Ã¥È¤òÍѤ¤¡¢Ï¢Â³¤·¤¿Ì䤤¹ç¤ï¤»¤Î´Ö¤ËÀܳ¤ò°Ý»ý¤¹¤ë¡£ -µ¶¤Ê¤é¤Ð¥Í¡¼¥à¥µ¡¼¥Ð¤Ø¤ÎÌ䤤¹ç¤ï¤»¤Ë UDP ¥Ç¡¼¥¿¥°¥é¥à¤òÍѤ¤¤ë¡£ +が真 (1) ならば、ネームサーバへの問い合わせには、 +接続された TCP ソケットを用い、連続した問い合わせの間に接続を維持する。 +偽ならばネームサーバへの問い合わせに UDP データグラムを用いる。 .PP .BR endhostent () -´Ø¿ô¤Ï¥Í¡¼¥à¥µ¡¼¥Ð¤Ø¤ÎÌ䤤¹ç¤ï¤»¤ËÍѤ¤¤¿ TCP Àܳ¤ÎÍøÍѤò½ªÎ»¤¹¤ë¡£ +関数はネームサーバへの問い合わせに用いた TCP 接続の利用を終了する。 .PP -(ÇÑ»ßͽÄê¤Î) +(廃止予定の) .BR herror () -´Ø¿ô¤Ï¸½ºß¤Î +関数は現在の .I h_errno -¤ËÂбþ¤¹¤ë¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɸ½à¥¨¥é¡¼ \fIstderr\fP ¤Ë½ÐÎϤ¹¤ë¡£ +に対応するエラーメッセージを標準エラー \fIstderr\fP に出力する。 .PP -(ÇÑ»ßͽÄê¤Î) +(廃止予定の) .BR hstrerror () -´Ø¿ô¤Ï¥¨¥é¡¼ÈÖ¹æ (Ä̾ï¤Ï \fIh_errno\fP) ¤ò°ú¤­¿ô¤Ë¼è¤ê¡¢ -Âбþ¤¹¤ë¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸Ê¸»úÎó¤òÊÖ¤¹¡£ +関数はエラー番号 (通常は \fIh_errno\fP) を引き数に取り、 +対応するエラーメッセージ文字列を返す。 .PP .BR gethostbyname () -¤È +と .BR gethostbyaddr () -¤Ë¤è¤Ã¤Æ¼Â¹Ô¤µ¤ì¤ë¥É¥á¥¤¥ó̾¤ÎÌ䤤¹ç¤ï¤»¤Ç¤Ï¡¢¥Í¡¼¥à¥µ¡¼¥Ð -.BR named (8)¡¢ +によって実行されるドメイン名の問い合わせでは、ネームサーバ +.BR named (8)、 .I /etc/hosts -¤Î¥Ç¡¼¥¿¹Ô¡¢¤ª¤è¤Ó -Network Information Service (NIS ¤Þ¤¿¤Ï YP) -¤¬ÁȤ߹ç¤ï¤»¤Æ»ÈÍѤµ¤ì¤ë¡£²¿¤¬»ÈÍѤµ¤ì¤ë¤«¤Ï¡¢ +のデータ行、および +Network Information Service (NIS または YP) +が組み合わせて使用される。何が使用されるかは、 .I /etc/host.conf -¤Î +の .I order -¹Ô¤ÎÆâÍƤˤè¤ê·è¤Þ¤ë¡£ -.\" (¾Ü¤·¤¯¤Ï +行の内容により決まる。 +.\" (詳しくは .\" .BR resolv+ (8) -.\" ¤ò»²¾È)¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤Þ¤º +.\" を参照)。 +デフォルトでは、まず .BR named (8) -¤ËÌ䤤¹ç¤ï¤»¤ò¹Ô¤¤¡¢¼¡¤¤¤Ç +に問い合わせを行い、次いで .I /etc/hosts -¤ò»²¾È¤¹¤ë¡£ +を参照する。 .PP .I hostent -¹½Â¤ÂÎ¤Ï +構造体は .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +で以下のように定義されている: .sp .in +4n .nf @@ -262,202 +262,202 @@ struct hostent { int h_length; /* length of address */ char **h_addr_list; /* list of addresses */ } -#define h_addr h_addr_list[0] /* ²áµî¤È¤Î¸ß´¹À­¤Î¤¿¤á */ +#define h_addr h_addr_list[0] /* 過去との互換性のため */ .fi .in .PP .I hostent -¹½Â¤ÂΤΥá¥ó¥Ð¤Ï°Ê²¼¤ÎÄ̤ꡣ +構造体のメンバは以下の通り。 .TP .I h_name -¥Û¥¹¥È¤ÎÀµ¼°Ì¾ (official name)¡£ +ホストの正式名 (official name)。 .TP .I h_aliases -¥Û¥¹¥È¤ÎÊÌ̾¤ÎÇÛÎó¡£ÇÛÎó¤Ï NULL ¥Ý¥¤¥ó¥¿¤Ç½ªÃ¼¤µ¤ì¤ë¡£ +ホストの別名の配列。配列は NULL ポインタで終端される。 .TP .I h_addrtype -¥¢¥É¥ì¥¹¤Î¥¿¥¤¥×¡£¸½ºß¤Ï¤¹¤Ù¤Æ +アドレスのタイプ。現在はすべて .B AF_INET -¤Þ¤¿¤Ï +または .B AF_INET6 -¤Ç¤¢¤ë¡£ +である。 .TP .I h_length -¥Ð¥¤¥Èñ°Ì¤Çɽ¤·¤¿¥¢¥É¥ì¥¹¤ÎŤµ¡£ +バイト単位で表したアドレスの長さ。 .TP .I h_addr_list -¥Û¥¹¥È¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤Ø¤Î¥Ý¥¤¥ó¥¿¤ÎÇÛÎó¡£ -ÇÛÎó¤Ï NULL ¥Ý¥¤¥ó¥¿¤Ç½ªÃ¼¤µ¤ì¤ë¡£ -¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À·Á¼°¤Ç¤¢¤ë¡£ +ホストのネットワークアドレスへのポインタの配列。 +配列は NULL ポインタで終端される。 +ネットワークアドレスはネットワークバイトオーダ形式である。 .TP .I h_addr .I h_addr_list -¤ÎºÇ½é¤Î¥¢¥É¥ì¥¹¡£²áµî¤È¤Î¸ß´¹À­¤òÊݤĤ¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +の最初のアドレス。過去との互換性を保つためのものである。 +.SH 返り値 .BR gethostbyname () -¤ª¤è¤Ó +および .BR gethostbyaddr () -´Ø¿ô¤Ï +関数は .I hostent -¹½Â¤ÂΤòÊÖ¤¹¡£¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¤é NULL ¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£¥¨¥é¡¼¤ÎºÝ¤Ë¤Ï +構造体を返す。エラーが起こったら NULL ポインタを返す。エラーの際には .I h_errno -ÊÑ¿ô¤¬¥¨¥é¡¼¤ÎÈÖ¹æ¤òÊÝ»ý¤¹¤ë¡£ -ÊÖ¤êÃͤ¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ÀÅŪ¥Ç¡¼¥¿¤ò¥Ý¥¤¥ó¥¿¤Ç»Ø¤·¤Æ¤¤¤ë¤³¤È¤â¤¢¤ë¡£ -°Ê²¼¤Î¡ÖÃí°Õ¡×¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ¥¨¥é¡¼ +変数がエラーの番号を保持する。 +返り値が NULL でない場合、静的データをポインタで指していることもある。 +以下の「注意」を参照すること。 +.SH エラー .I h_errno -ÊÑ¿ô¤Ï°Ê²¼¤ÎÃͤò¼è¤ê¤¦¤ë¡£ +変数は以下の値を取りうる。 .TP .B HOST_NOT_FOUND -»ØÄꤷ¤¿¥Û¥¹¥È¤¬¸«¤Ä¤«¤é¤Ê¤¤¡£ +指定したホストが見つからない。 .TP -.B NO_ADDRESS " ¤Þ¤¿¤Ï " NO_DATA -»ØÄꤷ¤¿Ì¾Á°¤ÏÍ­¸ú¤À¤¬ IP ¥¢¥É¥ì¥¹¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +.B NO_ADDRESS " または " NO_DATA +指定した名前は有効だが IP アドレスを持っていない。 .TP .B NO_RECOVERY -¥Í¡¼¥à¥µ¡¼¥Ð¤ÎÉüµìÉÔǽ¤Ê¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£ +ネームサーバの復旧不能なエラーが起こった。 .TP .B TRY_AGAIN -authoritative ¤Ê¥Í¡¼¥à¥µ¡¼¥Ð¤Ç°ì»þŪ¤Ê¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£ -»þ´Ö¤ò¤ª¤¤¤Æ¤â¤¦°ìÅٻ¤³¤È¡£ -.SH ¥Õ¥¡¥¤¥ë +authoritative なネームサーバで一時的なエラーが起こった。 +時間をおいてもう一度試すこと。 +.SH ファイル .TP .I /etc/host.conf -̾Á°²ò·è¤ÎÀßÄê¥Õ¥¡¥¤¥ë +名前解決の設定ファイル .TP .I /etc/hosts -¥Û¥¹¥È¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë +ホストのデータベースファイル .TP .I /etc/nsswitch.conf -¥Í¡¼¥à¥µ¡¼¥Ó¥¹ÀÚÂØÀßÄê -.SH ½àµò -POSIX.1-2001 ¤Ç¤Ï¡¢ +ネームサービス切替設定 +.SH 準拠 +POSIX.1-2001 では、 .BR gethostbyname (), .BR gethostbyaddr (), .BR sethostent (), .BR endhostent (), .BR gethostent (), .I h_errno -¤¬µ¬Äꤵ¤ì¤Æ¤ª¤ê¡¢ +が規定されており、 .BR gethostbyaddr () -¤È +と .BR gethostbyname () -¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¤È¤µ¤ì¤Æ¤¤¤ë¡£ -POSIX.1-2008 ¤Ç¤Ï +は廃止予定であるとされている。 +POSIX.1-2008 では .BR gethostbyname (), .BR gethostbyaddr (), .I h_errno -¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ -Âå¤ï¤ê¤Ë¡¢ +の仕様が削除されている。 +代わりに、 .BR getaddrinfo (3) -¤È +と .BR getnameinfo (3) -¤Î»ÈÍѤ¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ +の使用が推奨されている。 +.SH 注意 .BR gethostbyname () -¤ª¤è¤Ó +および .BR gethostbyaddr () -´Ø¿ô¤ÏÀÅŪ¥Ç¡¼¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤Î¥Ý¥¤¥ó¥¿¤Ï¡¢¤½¤Î¸å¤Î¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +関数は静的データへのポインタを返す。 +このポインタは、その後の呼び出しで上書きされるかもしれない。 .I hostent -¹½Â¤ÂΤϥݥ¤¥ó¥¿¤ò´Þ¤ó¤Ç¤¤¤ë¤Î¤Ç¡¢¹½Â¤ÂΤΥ³¥Ô¡¼¤À¤±¤Ç¤ÏÉÔ½½Ê¬¤Ç¤¢¤ë; -¤è¤ê¿¼¤¤¥³¥Ô¡¼¤¬É¬ÍפǤ¢¤ë¡£ +構造体はポインタを含んでいるので、構造体のコピーだけでは不十分である; +より深いコピーが必要である。 .LP -¥ª¥ê¥¸¥Ê¥ë¤Î BSD ¤Î¼ÂÁõ¤Ç¤Ï¡¢ +オリジナルの BSD の実装では、 .BR gethostbyname () -¤Î +の .I len -°ú¤­¿ô¤Ï +引き数は .I int -¤Ç¤¢¤Ã¤¿¡£ -SUSv2 ɸ½à¤Ï¥Ð¥°¤¬Â¿¤¯¡¢ +であった。 +SUSv2 標準はバグが多く、 .BR gethostbyaddr () -¤Î +の .I len -¥Ñ¥é¥á¡¼¥¿¤ò +パラメータを .I size_t -·¿¤È¤·¤ÆÀë¸À¤·¤Æ¤¤¤ë¡£ -(¤³¤ì¤Ï¸í¤ê¤Ç¡¢ +型として宣言している。 +(これは誤りで、 .I size_t -·¿¤Ç¤Ï¤Ê¤¯ +型ではなく .I int -·¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -POSIX.1-2001 ¤Ç¤Ï¤³¤ì¤ò +型でなければならない。 +POSIX.1-2001 ではこれを .I socklen_t -¤È¤·¤Æ¤¤¤ë¤¬¡¢¤³¤ì¤Ï OK¡£) +としているが、これは OK。) .BR accept (2) -¤â»²¾È¡£ +も参照。 .LP .BR gethostbyaddr () -¤Î BSD ¤Î¥×¥í¥È¥¿¥¤¥×¤Ï¡¢ºÇ½é¤Î°ú¤­¿ô¤È¤·¤Æ +の BSD のプロトタイプは、最初の引き数として .I const char * -¤ò»È¤¦¡£ -.SS "System V/POSIX ³ÈÄ¥" -POSIX ¤Ç¤Ï¡¢ +を使う。 +.SS "System V/POSIX 拡張" +POSIX では、 .BR gethostent () -¤¬É¬¿Ü¤È¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¥Û¥¹¥È¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¼¡¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£ -DNS/BIND ¤ò»È¤¦¾ì¹ç¤Ï¤¢¤Þ¤ê°ÕÌ£¤ò»ý¤¿¤Ê¤¤¤¬¡¢ -¥Û¥¹¥È¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬ 1 ¹Ô¤º¤ÄÆɤ߹þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¾ì¹ç¤Ï°ÕÌ£¤¬¤¢¤ë¡£ -¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤Î̾Á°¤Î¥ë¡¼¥Á¥ó¤Ï¥Õ¥¡¥¤¥ë +が必須とされている。 +この関数はホストデータベースの次のエントリを返す。 +DNS/BIND を使う場合はあまり意味を持たないが、 +ホストデータベースが 1 行ずつ読み込まれるファイルである場合は意味がある。 +多くのシステムでは、この名前のルーチンはファイル .I /etc/hosts -¤òÆɤ߹þ¤à¡£ -.\" Î㤨¤Ð¡¢Linux, FreeBSD, UnixWare, HP-UX -DNS ¥µ¥Ý¡¼¥È¤Ê¤·¤Ç¥é¥¤¥Ö¥é¥ê¤¬¥Ó¥ë¥É¤µ¤ì¤¿¾ì¹ç¤Ë¤Î¤ßÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.\" Î㤨¤Ð¡¢FreeBSD, AIX -glibc ÈÇ¤Ï ipv6 ¥¨¥ó¥È¥ê¤ò̵»ë¤¹¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È (reentrant) ¤Ç¤Ï¤Ê¤¯¡¢ -glibc ¤Ë¤Ï¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤΠ+を読み込む。 +.\" 例えば、Linux, FreeBSD, UnixWare, HP-UX +DNS サポートなしでライブラリがビルドされた場合にのみ利用可能である。 +.\" 例えば、FreeBSD, AIX +glibc 版は ipv6 エントリを無視する。 +この関数はリエントラント (reentrant) ではなく、 +glibc にはリエントラント版の .BR gethostent_r () -¤¬Äɲ䵤줿¡£ -.SS "GNU ³ÈÄ¥" -glibc2 ¤Ë¤Ï +が追加された。 +.SS "GNU 拡張" +glibc2 には .BR gethostbyname2 () -¤â¤¢¤ê¡¢ +もあり、 .BR gethostbyname () -¤ÈƱ¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¤¬¡¢ -¤³¤Á¤é¤Ï¥¢¥É¥ì¥¹¤¬Â°¤¹¤ë¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +と同じように動作するが、 +こちらはアドレスが属するアドレスファミリーを指定することができる。 .LP -glibc2 ¤Ë¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È¤Ê +glibc2 にはリエントラントな .BR gethostent_r (), .BR gethostbyaddr_r (), .BR gethostbyname_r () -¤È +と .BR gethostbyname2_r () -¤â¤¢¤ë¡£ -¸Æ¤Ó½Ð¤·Â¦¤Ï¡¢À®¸ù»þ¤Ë·ë²Ì¤¬³ÊǼ¤µ¤ì¤ë +もある。 +呼び出し側は、成功時に結果が格納される .I hostent -¹½Â¤ÂÎ +構造体 .I ret -¤È¡¢Â礭¤µ +と、大きさ .I buflen -¤Î°ì»þŪ¤Êºî¶È¥Ð¥Ã¥Õ¥¡ +の一時的な作業バッファ .I buf -¤òÄ󶡤¹¤ë¡£ -¥³¡¼¥ë½ªÎ»¸å¡¢À®¸ù¤·¤¿¾ì¹ç +を提供する。 +コール終了後、成功した場合 .I result -¤Ï·ë²Ì¤ò»Ø¤·¤Æ¤¤¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢¤Þ¤¿¤Ï¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ +は結果を指している。 +エラーの場合、またはエントリが見つからなかった場合、 .I result -¤Ï NULL ¤Ë¤Ê¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç 0 ¤òÊÖ¤·¡¢¼ºÇԤξì¹ç¤Ï 0 °Ê³°¤Î¥¨¥é¡¼ÈÖ¹æ¤òÊÖ¤¹¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Î¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤Ê¤¤¥Ð¡¼¥¸¥ç¥ó¤¬ÊÖ¤¹¥¨¥é¡¼¤Ë²Ã¤¨¤Æ¡¢ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ +は NULL になる。 +これらの関数は、成功した場合 0 を返し、失敗の場合は 0 以外のエラー番号を返す。 +これらの関数のリエントラントでないバージョンが返すエラーに加えて、 +これらの関数は、 .I buf -¤¬¾®¤µ¤¹¤®¤¿¾ì¹ç¤Ë +が小さすぎた場合に .B ERANGE -¤òÊÖ¤¹¡£¤³¤Î¾ì¹ç¤Ï¤â¤Ã¤ÈÂ礭¤Ê¥Ð¥Ã¥Õ¥¡¤òÍÑ°Õ¤·¤Æ -´Ø¿ô¸Æ¤Ó½Ð¤·¤òºÆÅÙ¹Ô¤¦¤Ù¤­¤Ç¤¢¤ë¡£ -Âç°èÊÑ¿ô +を返す。この場合はもっと大きなバッファを用意して +関数呼び出しを再度行うべきである。 +大域変数 .I h_errno -¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¤¬¡¢¥¨¥é¡¼ÈÖ¹æ¤ò³ÊǼ¤¹¤ëÊÑ¿ô¤Î¥¢¥É¥ì¥¹¤¬ +は変更されないが、エラー番号を格納する変数のアドレスが .I h_errnop -¤ËÅϤµ¤ì¤ë¡£ -.SH ¥Ð¥° +に渡される。 +.SH バグ .BR gethostbyname () -¤Ï¡¢16¿Ê¿ôɽ¸½¤Î¥É¥Ã¥È¶èÀÚ¤ê¤Î IPv4 ¥¢¥É¥ì¥¹Ê¸»úÎó¤ÎÍ×ÁǤòǧ¼±¤·¤Ê¤¤¡£ +は、16進数表現のドット区切りの IPv4 アドレス文字列の要素を認識しない。 .\" http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=482973 -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getaddrinfo (3), .\" .BR getipnodebyaddr (3), .\" .BR getipnodebyname (3), diff --git a/release/man3/gethostid.3 b/release/man3/gethostid.3 index 8b1d852e..44b4a2c4 100644 --- a/release/man3/gethostid.3 +++ b/release/man3/gethostid.3 @@ -37,9 +37,9 @@ .\" Updated 2009-01-16, Akihiro MOTOKI , LDP v3.16 .\" .TH GETHOSTID 3 2010-09-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -gethostid, sethostid \- ¸½ºß¤Î¥Û¥¹¥È¤Î¸ÇÍ­¤Î¼±Ê̻Ҥò¼èÆÀ/ÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +gethostid, sethostid \- 現在のホストの固有の識別子を取得/設定する +.SH 書式 .B #include .sp .B long gethostid(void); @@ -47,9 +47,9 @@ gethostid, sethostid \- .BI "int sethostid(long " hostid ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -64,76 +64,76 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR gethostid () -¤È +と .BR sethostid () -¤Ï¡¢¤½¤ì¤¾¤ì¡¢¸½ºß»ÈÍѤ·¤Æ¤¤¤ë¥Û¥¹¥È¤Ë¸ÇÍ­¤Î 32 ¥Ó¥Ã¥È¤Î¼±Ê̻ҤΠ-¼èÆÀ/ÀßÄê¤ò¹Ô¤¦¡£ -¤³¤Î 32 ¥Ó¥Ã¥È¤Î¼±Ê̻Ҥϡ¢¸½ºß¸ºß¤·¤Æ¤¤¤ëÁ´¤Æ¤Î UNIX ¥·¥¹¥Æ¥à -¤ÎÃæ¤ÇÍ£°ì¤Ë¤Ê¤ë¤è¤¦¤Ë·è¤á¤é¤ì¤ë¡£Ä̾ï¤Ï +は、それぞれ、現在使用しているホストに固有の 32 ビットの識別子の +取得/設定を行う。 +この 32 ビットの識別子は、現在存在している全ての UNIX システム +の中で唯一になるように決められる。通常は .BR gethostbyname (3) -¤Ë¤è¤êÊÖ¤µ¤ì¤ë¥í¡¼¥«¥ë¥Þ¥·¥ó¤Î Internet ¥¢¥É¥ì¥¹¤¬Âå¤ï¤ê¤Ë»ÈÍѤµ¤ì¡¢ -ÉáÄ̤ϼ±Ê̻Ҥò¤¢¤¨¤ÆÀßÄꤹ¤ëɬÍפϤʤ¤¡£ +により返されるローカルマシンの Internet アドレスが代わりに使用され、 +普通は識別子をあえて設定する必要はない。 .BR sethostid () -¤Ï¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤·¤«»ÈÍѤǤ­¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +はスーパーユーザしか使用できない。 +.SH 返り値 .BR gethostid () -¤Ï¡¢ +は、 .BR sethostid () -¤Ë¤è¤Ã¤ÆÀßÄꤵ¤ì¤¿¡¢¸½ºß»ÈÍѤ·¤Æ¤¤¤ë¥Û¥¹¥È¤Î 32 ¥Ó¥Ã¥È¤Î¼±Ê̻ҤÎÃͤòÊÖ¤¹¡£ +によって設定された、現在使用しているホストの 32 ビットの識別子の値を返す。 -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR sethostid () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値を設定する。 +.SH エラー .BR sethostid () -¤Ï°Ê²¼¤Î¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +は以下のエラーで失敗する可能性がある。 .TP .B EACCES -¸Æ¤Ó½Ð¤·¸µ¤¬¥Û¥¹¥È ID ¤òÊݸ¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ø¤Î -½ñ¤­¹þ¤ßµö²Ä¤ò»ý¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +呼び出し元がホスト ID を保存するのに使用されるファイルへの +書き込み許可を持っていなかった。 .TP .B EPERM -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú UID/GID ¤¬Âбþ¤¹¤ë¼Â UID/GID ¤ÈƱ¤¸¤Ç¤Ï¤Ê¤¤¡£ -.SH ½àµò -4.2BSD¡£4.4BSD ¤Ç¤Ï¤³¤ì¤é¤Î´Ø¿ô¤Ï¤Ê¤¯¤Ê¤Ã¤¿¡£ -SVr4 ¤Ë¤Ï +呼び出し元プロセスの実効 UID/GID が対応する実 UID/GID と同じではない。 +.SH 準拠 +4.2BSD。4.4BSD ではこれらの関数はなくなった。 +SVr4 には .BR gethostid () -¤Ï´Þ¤Þ¤ì¤Æ¤¤¤ë¤¬¡¢ +は含まれているが、 .BR sethostid () -¤Ï´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¡£ -POSIX.1-2001 ¤Ç¤Ï¡¢ +は含まれていない。 +POSIX.1-2001 では、 .BR gethostid () -¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤ë¤¬¡¢ +は規定されているが、 .BR sethostid () -¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH Ãí°Õ -glibc ¤Î¼ÂÁõ¤Ç¤Ï¡¢ +は規定されていない。 +.SH 注意 +glibc の実装では、 .I hostid -¤Ï¥Õ¥¡¥¤¥ë +はファイル .I /etc/hostid -¤ËÊݸ¤µ¤ì¤ë -(¥Ð¡¼¥¸¥ç¥ó 2.2 ¤è¤êÁ°¤Î glibc ¤Ç¤Ï¡¢ +に保存される +(バージョン 2.2 より前の glibc では、 .I /var/adm/hostid -¤¬»ÈÍѤµ¤ì¤Æ¤¤¤¿)¡£ +が使用されていた)。 .\" libc5 used /etc/hostid; libc4 didn't have these functions -glibc ¤Î¼ÂÁõ¤Ç¤Ï¡¢¥Û¥¹¥È ID ¤òÊݸ¤·¤¿¥Õ¥¡¥¤¥ë¤ò -¥ª¡¼¥×¥ó¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ +glibc の実装では、ホスト ID を保存したファイルを +オープンできなかった場合、 .BR gethostid () -¤Ï +は .BR gethostname (2) -¤ò»È¤Ã¤Æ¥Û¥¹¥È̾¤òÆþ¼ê¤·¡¢¤½¤Î¥Û¥¹¥È̾¤ò +を使ってホスト名を入手し、そのホスト名を .BR gethostbyname_r (3) -¤ËÅϤ·¥Û¥¹¥È¤Î IPv4 ¥¢¥É¥ì¥¹¤ò¼èÆÀ¤·¤Æ¡¢ -¤½¤Î IPv4 ¥¢¥É¥ì¥¹¤Î¥Ó¥Ã¥ÈÆþ¤ìÂؤ¨¤ò¹Ô¤Ã¤¿ÃͤòÊÖ¤¹¡£ -.SH ¥Ð¥° -¼±Ê̻Ҥ¬À¤³¦Ãæ¤Ç°ì°Õ¤Ç¤¢¤ë¤³¤È¤òÊݾڤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +に渡しホストの IPv4 アドレスを取得して、 +その IPv4 アドレスのビット入れ替えを行った値を返す。 +.SH バグ +識別子が世界中で一意であることを保証することはできない。 +.SH 関連項目 .BR hostid (1), .BR gethostbyname (3) diff --git a/release/man3/getipnodebyname.3 b/release/man3/getipnodebyname.3 index 5fb64be7..0da52505 100644 --- a/release/man3/getipnodebyname.3 +++ b/release/man3/getipnodebyname.3 @@ -26,12 +26,12 @@ .\" Translated Sun Jan 14 2001 by NAKANO Takeo .\" Updated Tue Nov 26 2002 by Kentaro Shirakata .\" -.\"WORD: null pointer ¥Ì¥ë¡¦¥Ý¥¤¥ó¥¿¡¼ +.\"WORD: null pointer ヌル・ポインター .\" .TH GETIPNODEBYNAME 3 2010-09-04 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -getipnodebyname, getipnodebyaddr, freehostent \- ¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È¤Î̾Á°¤È¥¢¥É¥ì¥¹¤Î¼èÆÀ -.SH ½ñ¼° +.SH 名前 +getipnodebyname, getipnodebyaddr, freehostent \- ネットワークホストの名前とアドレスの取得 +.SH 書式 .nf .B #include .B #include @@ -45,19 +45,19 @@ getipnodebyname, getipnodebyaddr, freehostent \- .sp .BI "void freehostent(struct hostent *" "ip" ); .fi -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤ÏÈó¿ä¾©¤Ç¤¢¤ë (glibc ¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤)¡£ -Âå¤ï¤ê¤Ë +.SH 説明 +これらの関数は非推奨である (glibc では利用できない)。 +代わりに .BR getaddrinfo (3) -¤È +と .BR getnameinfo (3) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .LP .BR getipnodebyname () -¤È +と .BR getipnodebyaddr () -¤Ï¡¢¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È¤Î̾Á°¤È¥¢¥É¥ì¥¹¤òÊÖ¤¹¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢°Ê²¼¤Î¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ +は、ネットワークホストの名前とアドレスを返す。 +これらの関数は、以下の構造体へのポインタを返す。 .sp .in +4n .nf @@ -71,192 +71,192 @@ struct hostent { .fi .in .PP -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ IPv4 ¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¤Ë¤·¤«¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤ +これらの関数は、 IPv4 ネットワークアドレスファミリにしかアクセスできない .BR gethostbyname (3) -¤ä +や .BR gethostbyaddr (3) -¤òÃÖ¤­´¹¤¨¤ë¤â¤Î¤Ç¤¢¤ë¡£ +を置き換えるものである。 .BR getipnodebyname () -´Ø¿ô¤È +関数と .BR getipnodebyaddr () -´Ø¿ô¤ÏÊ£¿ô¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤Ë¥¢¥¯¥»¥¹²Äǽ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +関数は複数のネットワークアドレスファミリーにアクセス可能になっている。 .PP -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ +これらの関数は、 .B gethostby -¤Î´Ø¿ô·²¤È°Û¤Ê¤ê¡¢Æ°Åª¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¸Æ¤Ó½Ð¤·¸µ¤¬¤³¤ì¤é¤Î +の関数群と異なり、動的に割り当てられたメモリへのポインタを返す。 +呼び出し元がこれらの .I hostent -¹½Â¤ÂΤòɬÍפȤ·¤Ê¤¯¤Ê¤Ã¤¿¸å¤Ï¡¢ +構造体を必要としなくなった後は、 .BR freehostent () -´Ø¿ô¤òÍѤ¤¤ì¤ÐưŪ¤Ê³ä¤êÅö¤Æ¥á¥â¥ê¤ò²òÊü¤Ç¤­¤ë¡£ -.SS getipnodebyname() ¤Î°ú¤­¿ô +関数を用いれば動的な割り当てメモリを解放できる。 +.SS getipnodebyname() の引き数 .BR getipnodebyname () -´Ø¿ô¤Ï +関数は .I name -°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿¥Û¥¹¥È¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤ò°ú¤¯¡£ +引き数で指定されたホストのネットワークアドレスを引く。 .I af -°ú¤­¿ô¤Ë¤Ï°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«¤ò»ØÄꤹ¤ë¡£ +引き数には以下の値のいずれかを指定する。 .TP .B AF_INET .I name -°ú¤­¿ô¤Ï¡¢¥É¥Ã¥È¤Ç 4 ¤Ä¤Ë¶èÀÚ¤é¤ì¤¿ IPv4 ¥¢¥É¥ì¥¹¤«¡¢ -IPv4 ¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È¤Î̾Á°¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +引き数は、ドットで 4 つに区切られた IPv4 アドレスか、 +IPv4 ネットワークホストの名前へのポインタである。 .TP .B AF_INET6 .I name -°ú¤­¿ô¤Ï¡¢16 ¿Ê¤Î IPv6 ¥¢¥É¥ì¥¹¤«¡¢ -IPv6 ¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È¤Î̾Á°¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +引き数は、16 進の IPv6 アドレスか、 +IPv6 ネットワークホストの名前へのポインタである。 .PP .I flags -¥Ñ¥é¥á¡¼¥¿¤Ë¤ÏÄɲäΥª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¡£ -Ê£¿ô¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤Ë¤Ï¡¢¤½¤ì¤é¤Î¥Ó¥Ã¥Èñ°Ì¤Î OR ¤ò¤È¤Ã¤Æ»ØÄꤹ¤ì¤Ð¤è¤¤¡£ -¥ª¥×¥·¥ç¥ó¤ò¤Ò¤È¤Ä¤â»ØÄꤷ¤¿¤¯¤Ê¤¤¤È¤­¤Ë¤Ï¡¢ +パラメータには追加のオプションを指定する。 +複数のフラグを指定するには、それらのビット単位の OR をとって指定すればよい。 +オプションをひとつも指定したくないときには、 .I flags -¤Ë 0 ¤òÀßÄꤹ¤ëɬÍפ¬¤¢¤ë¡£ +に 0 を設定する必要がある。 .TP .B AI_V4MAPPED -¤³¤Î¥Õ¥é¥°¤Ï +このフラグは .B AF_INET6 -¤È¶¦¤ËÍѤ¤¤é¤ì¡¢IPv6 ¥¢¥É¥ì¥¹¤ÎÂå¤ï¤ê¤Ë IPv4 ¥¢¥É¥ì¥¹¤òÌ䤤¹ç¤ï¤»¤ë¡£ -Ì䤤¹ç¤ï¤»¤ë IPv4 ¥¢¥É¥ì¥¹¤Ï IPv6 ¥¢¥É¥ì¥¹¤Ë¥Þ¥Ã¥×¤µ¤ì¤ë¡£ +と共に用いられ、IPv6 アドレスの代わりに IPv4 アドレスを問い合わせる。 +問い合わせる IPv4 アドレスは IPv6 アドレスにマップされる。 .TP .B AI_ALL -¤³¤Î¥Õ¥é¥°¤Ï +このフラグは .B AI_V4MAPPED -¤È¶¦¤ËÍѤ¤¤é¤ì¡¢IPv4 ¥¢¥É¥ì¥¹¤È IPv6 ¥¢¥É¥ì¥¹¤ÎξÊý¤òÌ䤤¹ç¤ï¤»¤ë¡£ -¸«¤Ä¤«¤Ã¤¿ IPv4 ¥¢¥É¥ì¥¹¤Ï¡¢¤¹¤Ù¤Æ IPv6 ¥¢¥É¥ì¥¹¤Ë¥Þ¥Ã¥×¤µ¤ì¤ë¡£ +と共に用いられ、IPv4 アドレスと IPv6 アドレスの両方を問い合わせる。 +見つかった IPv4 アドレスは、すべて IPv6 アドレスにマップされる。 .TP .B AI_ADDRCONFIG -¤³¤Î¥Õ¥é¥°¤Ï +このフラグは .B AF_INET6 -¤È¶¦¤ËÍѤ¤¤é¤ì¡¢ -IPv6 ¤¬³ä¤êÅö¤Æ¤é¤ì¤¿¥Í¥Ã¥È¥ï¡¼¥¯¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ -¥·¥¹¥Æ¥à¤Ë¤Ò¤È¤Ä¤â¤Ê¤±¤ì¤Ð IPv6 ¥¢¥É¥ì¥¹¤ÎÌ䤤¹ç¤ï¤»¤ò¹Ô¤ï¤º¡¢ -IPv4 ¤¬³ä¤êÅö¤Æ¤é¤ì¤¿¥Í¥Ã¥È¥ï¡¼¥¯¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ -¥·¥¹¥Æ¥à¤Ë¤Ò¤È¤Ä¤â¤Ê¤±¤ì¤Ð IPv4 ¥¢¥É¥ì¥¹¤ÎÌ䤤¹ç¤ï¤»¤ò¹Ô¤ï¤Ê¤¤¤è¤¦¤ËÍ׵᤹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ÏñÆȤǤ⡢¤¢¤ë¤¤¤Ï +と共に用いられ、 +IPv6 が割り当てられたネットワークインターフェースが +システムにひとつもなければ IPv6 アドレスの問い合わせを行わず、 +IPv4 が割り当てられたネットワークインターフェースが +システムにひとつもなければ IPv4 アドレスの問い合わせを行わないように要求する。 +このフラグは単独でも、あるいは .B AI_V4MAPPED -¥Õ¥é¥°¤È¶¦¤Ë¤Ç¤âÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +フラグと共にでも用いることができる。 .TP .B AI_DEFAULT -¤³¤Î¥Õ¥é¥°¤Ï +このフラグは .BR (AI_ADDRCONFIG | AI_V4MAPPED) -¤ÈÅù²Á¤Ç¤¢¤ë¡£ -.SS "getipnodebyaddr() ¤Î°ú¤­¿ô" +と等価である。 +.SS "getipnodebyaddr() の引き数" .BR getipnodebyaddr () -´Ø¿ô¤Ï¡¢¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤¬ +関数は、ネットワークアドレスが .I addr -°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿¥Û¥¹¥È¤Î̾Á°¤ò°ú¤¯¡£ +引き数で指定されたホストの名前を引く。 .I af -°ú¤­¿ô¤Ë¤Ï°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«¤ò»ØÄꤹ¤ë¡£ +引き数には以下の値のいずれかを指定する。 .TP .B AF_INET .I addr -°ú¤­¿ô¤Ï +引き数は .I struct in_addr -¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ê¡¢ +へのポインターであり、 .I len -°ú¤­¿ô¤Ï +引き数は .I sizeof(struct in_addr) -¤ËÀßÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +に設定しなければならない。 .TP .B AF_INET6 .I addr -°ú¤­¿ô¤Ï +引き数は .I struct in6_addr -¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ê¡¢ +へのポインターであり、 .I len -°ú¤­¿ô¤Ï +引き数は .I sizeof(struct in6_addr) -¤ËÀßÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -¥¨¥é¡¼¤¬µ¯¤³¤ë¤È¥Ì¥ë¡¦¥Ý¥¤¥ó¥¿¡¼¤¬ÊÖ¤µ¤ì¡¢ +に設定しなければならない。 +.SH 返り値 +エラーが起こるとヌル・ポインターが返され、 .I error_num -¤Ë°Ê²¼¤Ë¥ê¥¹¥È¤µ¤ì¤¿¥¨¥é¡¼¥³¡¼¥É¤Î¤¤¤º¤ì¤«¤¬ÀßÄꤵ¤ì¤ë¡£ +に以下にリストされたエラーコードのいずれかが設定される。 .TP .B HOST_NOT_FOUND -¥Û¥¹¥È̾¤Þ¤¿¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£ +ホスト名またはネットワークアドレスが見つからなかった。 .TP .B NO_ADDRESS -¥É¥á¥¤¥ó¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤Ï -¤½¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤Þ¤¿¤Ï¥Í¥Ã¥È¥ï¡¼¥¯Ì¾¤òǧ¼±¤·¤¿¤¬¡¢ -ÊÖ»ö¤¬Ê֤äƤ³¤Ê¤«¤Ã¤¿¡£¸¶°ø¤È¤·¤Æ¤Ï¡¢ -Î㤨¤Ð IPv4 ¥¢¥É¥ì¥¹¤·¤«»ý¤¿¤Ê¤¤¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È¤ËÂФ·¤Æ -IPv6 ¤Î¾ðÊó¤ÎÌ䤤¹ç¤ï¤»¤¬¹Ô¤ï¤ì¤¿ (¤ª¤è¤Ó¤½¤ÎµÕ) ¤Ê¤É¤¬¹Í¤¨¤é¤ì¤ë¡£ +ドメインネームサーバーは +そのネットワークアドレスまたはネットワーク名を認識したが、 +返事が返ってこなかった。原因としては、 +例えば IPv4 アドレスしか持たないネットワークホストに対して +IPv6 の情報の問い合わせが行われた (およびその逆) などが考えられる。 .TP .B NO_RECOVERY -¥É¥á¥¤¥ó¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤«¤é¹±µ×Ū¤Ê¼ºÇÔ (permanent failure) -¤ò°ÕÌ£¤¹¤ëÊÖ»ö¤¬ÊÖ¤µ¤ì¤¿¡£ +ドメインネームサーバーから恒久的な失敗 (permanent failure) +を意味する返事が返された。 .TP .B TRY_AGAIN -¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤«¤é°ì»þŪ¤Ê¼ºÇÔ (temporary failure) -¤ò°ÕÌ£¤¹¤ëÊÖ»ö¤¬ÊÖ¤µ¤ì¤¿¡£¼¡¤Ë¤Ï¤â¤¦¤Á¤ç¤Ã¤È±¿¤¬É¬Íפ«¤â¡£ +ネームサーバーから一時的な失敗 (temporary failure) +を意味する返事が返された。次にはもうちょっと運が必要かも。 .PP -Ì䤤¹ç¤ï¤»¤ËÀ®¸ù¤¹¤ë¤È¡¢ +問い合わせに成功すると、 .I hostent -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤Î¹½Â¤ÂΤϰʲ¼¤Î¥Õ¥£¡¼¥ë¥É¤«¤é¤Ê¤ë¡£ +構造体へのポインタが返される。 +この構造体は以下のフィールドからなる。 .TP .I h_name -¤³¤ì¤Ï¤³¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È¤Î¥ª¥Õ¥£¥·¥ã¥ë¤Ê̾Á°¤Ç¤¢¤ë¡£ +これはこのネットワークホストのオフィシャルな名前である。 .TP .I h_aliases -¤³¤ì¤Ï¡¢¤½¤Î¥Û¥¹¥È¤Î¥ª¥Õ¥£¥·¥ã¥ë¤Ç¤Ê¤¤ÊÌ̾¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤ÎÇÛÎó¤Ç¤¢¤ë¡£ -ÇÛÎó¤Ï¥Ì¥ë¡¦¥Ý¥¤¥ó¥¿¡¼¤Ç½ªÃ¼¤¹¤ë¡£ +これは、そのホストのオフィシャルでない別名へのポインターの配列である。 +配列はヌル・ポインターで終端する。 .TP .I h_addrtype -¤³¤ì¤Ï +これは .BR getipnodebyname () -¤Þ¤¿¤Ï +または .BR getipnodebyaddr () -¤ËÍ¿¤¨¤é¤ì¤¿ +に与えられた .I af -°ú¤­¿ô¤Î¥³¥Ô¡¼¤Ç¤¢¤ë¡£ +引き数のコピーである。 .I af -°ú¤­¿ô¤¬ +引き数が .B AF_INET -¤Ê¤é +なら .I h_addrtype -¤Ï¾ï¤Ë +は常に .B AF_INET -¤Ë¤Ê¤ê¡¢ +になり、 .I af -°ú¤­¿ô¤¬ +引き数が .B AF_INET6 -¤Ê¤é +なら .I h_addrtype -¤â¾ï¤Ë +も常に .B AF_INET6 -¤Ë¤Ê¤ë¡£ +になる。 .TP .I h_length -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢ +このフィールドは、 .I h_addrtype -¤¬ +が .B AF_INET -¤Ê¤é +なら .I sizeof(struct in_addr) -¤Ë¡¢ +に、 .I h_addrtype -¤¬ +が .B AF_INET6 -¤Ê¤é +なら .I sizeof(struct in6_addr) -¤ËÀßÄꤵ¤ì¤ë¡£ +に設定される。 .TP .I h_addr_list -¤³¤ì¤Ï¤Ò¤È¤Ä°Ê¾å¤Î¥Ý¥¤¥ó¥¿¡¼¤ÎÇÛÎó¤Ç¡¢ -¤½¤ì¤¾¤ì¤Î¥Ý¥¤¥ó¥¿¡¼¤Ï¡¢ -¤½¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È¤ËÂбþ¤¹¤ë¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¹½Â¤ÂΤò»Ø¤¹¡£ -¤³¤ÎÇÛÎó¤Ï¥Ì¥ë¡¦¥Ý¥¤¥ó¥¿¡¼¤Ç½ªÃ¼¤¹¤ë¡£ -.SH ½àµò +これはひとつ以上のポインターの配列で、 +それぞれのポインターは、 +そのネットワークホストに対応するネットワークアドレス構造体を指す。 +この配列はヌル・ポインターで終端する。 +.SH 準拠 RFC\ 2553. -.\" POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc 2.1.91-95 ¤Ë¸ºß¤·¤¿¤¬¡¢ºÆ¤Óºï½ü¤µ¤ì¤¿¡£ -¤¤¤¯¤Ä¤«¤Î UNIX É÷¥·¥¹¥Æ¥à¤Ï¤³¤ì¤é¤Î´Ø¿ô¤ËÂбþ¤·¤Æ¤¤¤ë¤¬¡¢ -¤³¤ì¤é¤Î´Ø¿ô¤ÏÁ´¤Æ¿ä¾©¤µ¤ì¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +.\" POSIX.1-2001 にはない。 +.SH 注意 +これらの関数は glibc 2.1.91-95 に存在したが、再び削除された。 +いくつかの UNIX 風システムはこれらの関数に対応しているが、 +これらの関数は全て推奨されない。 +.SH 関連項目 .BR getaddrinfo (3), .BR getnameinfo (3), .BR inet_ntop (3), diff --git a/release/man3/getline.3 b/release/man3/getline.3 index e4385fd6..0bdf81dd 100644 --- a/release/man3/getline.3 +++ b/release/man3/getline.3 @@ -28,12 +28,12 @@ .\" Updated 2006-07-20, Akihiro MOTOKI , LDP v2.34 .\" Updated 2010-04-18, Akihiro MOTOKI, LDP v3.24 .\" -.\"WORD: delimiter ¶èÀÚ¤êʸ»ú +.\"WORD: delimiter 区切り文字 .\" .TH GETLINE 3 2010-06-12 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -getline, getdelim \- ¶èÀÚ¤êʸ»ú¤Þ¤Ç¤Îʸ»úÎóÆþÎϤòÆɤ߹þ¤à -.SH ½ñ¼° +.SH 名前 +getline, getdelim \- 区切り文字までの文字列入力を読み込む +.SH 書式 .nf .B #include .sp @@ -44,9 +44,9 @@ getline, getdelim \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -55,96 +55,96 @@ glibc .PD 0 .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _POSIX_C_SOURCE\ >=\ 200809L || _XOPEN_SOURCE\ >=\ 700 .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .PD .ad -.SH ÀâÌÀ +.SH 説明 .BR getline () -¤Ï \fIstream\fP ¤«¤é 1 ¹ÔÁ´¤Æ¤òÆɤ߹þ¤ß¡¢¥Æ¥­¥¹¥È¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¥Ð¥Ã¥Õ¥¡¤Î¥¢¥É¥ì¥¹¤ò +は \fIstream\fP から 1 行全てを読み込み、テキストが含まれているバッファのアドレスを .I "*lineptr" -¤Ë³ÊǼ¤¹¤ë¡£ -¥Ð¥Ã¥Õ¥¡¤Ï¥Ì¥ëʸ»ú (\e0) ¤Ç½ªÃ¼¤µ¤ì¤ë¡£ -²þ¹Ôʸ»ú¤¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤Ï¡¢²þ¹Ôʸ»ú¤â¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤ë¡£ +に格納する。 +バッファはヌル文字 (\e0) で終端される。 +改行文字が見つかった場合は、改行文字もバッファに格納される。 .I "*lineptr" -¤¬ NULL ¤Î¾ì¹ç¡¢ +が NULL の場合、 .BR getline () -¤Ï¹Ô¤ÎÆâÍƤò³ÊǼ¤¹¤ë¤¿¤á¤Î¥Ð¥Ã¥Õ¥¡¤ò³ÎÊݤ¹¤ë¡£ -¤³¤Î¥Ð¥Ã¥Õ¥¡¤Ï¥æ¡¼¥¶¡¼¤Î¥×¥í¥°¥é¥à¤Ç²òÊü¤¹¤Ù¤­¤Ç¤¢¤ë -(¤³¤Î¾ì¹ç¡¢ +は行の内容を格納するためのバッファを確保する。 +このバッファはユーザーのプログラムで解放すべきである +(この場合、 .I *n -¤ÎÃͤÏ̵»ë¤µ¤ì¤ë)¡£ +の値は無視される)。 -Ê̤ÎÊýË¡¤È¤·¤Æ¡¢ +別の方法として、 .BR getline () -¤ò¸Æ¤Ó½Ð¤¹ºÝ¤Ë¡¢ +を呼び出す際に、 .I "*lineptr" -¤Ë +に .BR malloc (3) -¤Ç³ÎÊݤ·¤¿Â礭¤µ +で確保した大きさ .I "*n" -¥Ð¥¤¥È¤Î¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÆþ¤ì¤ÆÅϤ¹¤³¤È¤â¤Ç¤­¤ë¡£ -Æɤ߹þ¤ó¤À¹Ô¤òÊÝ»ý¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¥Ð¥Ã¥Õ¥¡¤¬¤Ê¤¤¾ì¹ç¡¢ +バイトのバッファへのポインタを入れて渡すこともできる。 +読み込んだ行を保持するのに十分なバッファがない場合、 .BR getline () -¤Ï +は .BR realloc (3) -¤ò»È¤Ã¤Æ¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤òÊѹ¹¤·¡¢É¬Íפ˱þ¤¸¤Æ +を使ってバッファのサイズを変更し、必要に応じて .I "*lineptr" -¤È +と .I "*n" -¤ò¹¹¿·¤¹¤ë¡£ +を更新する。 -¤É¤Á¤é¤Î¾ì¹ç¤Ç¤â¡¢¸Æ¤Ó½Ð¤·¤ËÀ®¸ù¤·¤¿¤È¤­¤Ë¤Ï¡¢ +どちらの場合でも、呼び出しに成功したときには、 .I "*lineptr" -¤È +と .I "*n" -¤¬¥Ð¥Ã¥Õ¥¡¤Î¥¢¥É¥ì¥¹¤È³ä¤êÅö¤Æ¤¿¥µ¥¤¥º¤òÈ¿±Ç¤·¤¿Ãͤ˹¹¿·¤µ¤ì¤ë¡£ +がバッファのアドレスと割り当てたサイズを反映した値に更新される。 .BR getdelim () -¤Ï +は .BR getline () -¤ÈƱ¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¤¬¡¢²þ¹Ôʸ»ú°Ê³°¤Î¶èÀÚ¤êʸ»ú¤ò°ú¤­¿ô +と同じように動作するが、改行文字以外の区切り文字を引き数 .I delim -¤Ë»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +に指定することができる。 .BR getline () -¤ÈƱÍͤˡ¢¥Õ¥¡¥¤¥ë½ªÃ¼¤Ë㤹¤ë¤Þ¤Ç¤ËÆþÎϹԤ˶èÀÚ¤êʸ»ú¤¬¸«ÉÕ¤«¤é¤Ê¤¤¾ì¹ç¤Ï¡¢ -¶èÀÚ¤êʸ»ú¤ò¥Ð¥Ã¥Õ¥¡¤ËÄɲ䷤ʤ¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +と同様に、ファイル終端に達するまでに入力行に区切り文字が見付からない場合は、 +区切り文字をバッファに追加しない。 +.SH 返り値 +成功した場合、 .BR getline () -¤È +と .BR getdelim () -¤ÏÆɤ߹þ¤ó¤Àʸ»ú¿ô¤òÊÖ¤¹¡£ -ʸ»ú¿ô¤Ë¤Ï¶èÀÚ¤êʸ»ú¤Ï´Þ¤Þ¤ì¤ë¤¬¡¢½ªÃ¼¤Ë»È¤¦ NULL ¥Ð¥¤¥È¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ -¤³¤ÎÃͤˤè¤Ã¤Æ¡¢Æɤ߹þ¤ó¤À¹Ô¤Ë´Þ¤Þ¤ì¤ë NULL ¥Ð¥¤¥È¤òÁàºî¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +は読み込んだ文字数を返す。 +文字数には区切り文字は含まれるが、終端に使う NULL バイトは含まれない。 +この値によって、読み込んだ行に含まれる NULL バイトを操作することができる。 -¤É¤Á¤é¤Î´Ø¿ô¤â¡¢¹Ô¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï \-1 ¤òÊÖ¤¹ -(¥Õ¥¡¥¤¥ë¤Î½ªÃ¼¤Ë㤷¤¿¾ì¹ç¤Ë¤â \-1 ¤òÊÖ¤¹)¡£ -.SH ¥¨¥é¡¼ +どちらの関数も、行の読み込みに失敗した場合には \-1 を返す +(ファイルの終端に達した場合にも \-1 を返す)。 +.SH エラー .TP .B EINVAL -°ú¤­¿ô¤¬ÉÔÀµ¤Ç¤¢¤ë +引き数が不正である .RI ( n -¤Þ¤¿¤Ï +または .I lineptr -¤¬ NULL ¤Ç¤¢¤ë¡£ -¤â¤·¤¯¤Ï +が NULL である。 +もしくは .I stream -¤¬Í­¸ú¤Ç¤Ê¤¤)¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï libc 4.6.27 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH ½àµò +が有効でない)。 +.SH バージョン +これらの関数は libc 4.6.27 以降で利用可能である。 +.SH 準拠 .BR getline () -¤È +と .BR getdelim () -¤Ï¡¢¤É¤Á¤é¤â¸µ¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤Ã¤¿¤¬¡¢ -POSIX.1-2008 ¤Çɸ½à²½¤µ¤ì¤¿¡£ -.SH Îã +は、どちらも元は GNU による拡張であったが、 +POSIX.1-2008 で標準化された。 +.SH 例 .nf #define _GNU_SOURCE #include @@ -171,7 +171,7 @@ main(void) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR read (2), .BR fgets (3), .BR fopen (3), diff --git a/release/man3/getloadavg.3 b/release/man3/getloadavg.3 index cef071f2..b823c529 100644 --- a/release/man3/getloadavg.3 +++ b/release/man3/getloadavg.3 @@ -32,42 +32,42 @@ .\" Japanese Version Copyright (c) 2002 NAKANO Takeo all rights reserved. .\" Translated Sun 6 Jan 2002 by NAKANO Takeo .\" -.\"WORD: load average Éé²ÙÊ¿¶Ñ +.\"WORD: load average 負荷平均 .\" .TH GETLOADAVG 3 2007-12-08 "Linux" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 getloadavg \- get system load averages -.SH ½ñ¼° +.SH 書式 .nf -.BR "#define _BSD_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _BSD_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "int getloadavg(double " loadavg[] ", int " nelem ); .fi -.SH ÀâÌÀ +.SH 説明 .BR getloadavg () -´Ø¿ô¤Ï¥·¥¹¥Æ¥à¤Î¼Â¹Ô¥­¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î¿ô¤ò¡¢ -ÍÍ¡¹¤Ê´ü´Ö¤Ë¤Ä¤¤¤ÆÊ¿¶Ñ¤·¤¿ÃͤòÊÖ¤¹¡£ +関数はシステムの実行キューに入っているプロセスの数を、 +様々な期間について平均した値を返す。 .I nelem -¸Ä¤Þ¤Ç¤Î¥µ¥ó¥×¥ëÃͤò¼èÆÀ¤·¡¢ +個までのサンプル値を取得し、 .IR loadavg [] -¤ÎϢ³¤¹¤ëÍ×ÁǤËÂåÆþ¤¹¤ë¡£ -¥·¥¹¥Æ¥à¤¬Ä󶡤¹¤ë¥µ¥ó¥×¥ë¿ô¤Ï 3 ¸Ä¤Þ¤Ç¤Ç¡¢ -¤½¤ì¤¾¤ìºÇ¶á 1, 5, 15 ʬ¤ÎÊ¿¶Ñ¤òɽ¤·¤Æ¤¤¤ë¡£ -.SH ÊÖ¤êÃÍ -Éé²ÙÊ¿¶Ñ¤¬¼èÆÀ¤Ç¤­¤Ê¤¤¤È \-1 ¤òÊÖ¤¹¡£ -¼èÆÀ¤Ç¤­¤¿¾ì¹ç¤Ï¡¢¼ÂºÝ¤Ë¼èÆÀ¤·¤¿¥µ¥ó¥×¥ëÃͤοô¤òÊÖ¤¹¡£ -.\" .SH ÍúÎò +の連続する要素に代入する。 +システムが提供するサンプル数は 3 個までで、 +それぞれ最近 1, 5, 15 分の平均を表している。 +.SH 返り値 +負荷平均が取得できないと \-1 を返す。 +取得できた場合は、実際に取得したサンプル値の数を返す。 +.\" .SH 履歴 .\" .BR getloadavg () -.\" ´Ø¿ô¤Ï +.\" 関数は .\" 4.3BSD Reno -.\" ¤ÇÅо줷¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤Î´Ø¿ô¤Ï glibc ¤Î¥Ð¡¼¥¸¥ç¥ó 2.2 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH ½àµò -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -BSD ·Ï¤È Solaris ¤Ë¸ºß¤¹¤ë¡£ +.\" で登場した。 +.SH バージョン +この関数は glibc のバージョン 2.2 以降で利用可能である。 +.SH 準拠 +POSIX.1-2001 にはない。 +BSD 系と Solaris に存在する。 .\" mdoc seems to have a bug - there must be no newline here -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR uptime (1), .BR proc (5) diff --git a/release/man3/getlogin.3 b/release/man3/getlogin.3 index 5da41a36..b24b79f4 100644 --- a/release/man3/getlogin.3 +++ b/release/man3/getlogin.3 @@ -32,9 +32,9 @@ .\" Updated & Modified 2005-03-18, Akihiro MOTOKI .\" .TH GETLOGIN 3 2008-06-29 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -getlogin, getlogin_r, cuserid \- ¥æ¡¼¥¶¡¼Ì¾¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +getlogin, getlogin_r, cuserid \- ユーザー名を取得する +.SH 書式 .B #include .sp .B "char *getlogin(void);" @@ -46,9 +46,9 @@ getlogin, getlogin_r, cuserid \- .BI "char *cuserid(char *" string ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR getlogin_r (): @@ -56,145 +56,145 @@ _REENTRANT || _POSIX_C_SOURCE\ >=\ 199506L .br .BR cuserid (): _XOPEN_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR getlogin () -¤Ï¡¢¸½ºß¤Î¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤Ë¥í¥°¥¤¥ó¤·¤Æ¤¤¤ë¥æ¡¼¥¶¡¼Ì¾¤Îʸ»úÎó¤Ø¤Î -¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£¥æ¡¼¥¶¡¼Ì¾¤¬·èÄê¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï NULL ¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -ʸ»úÎó¤ÏÀÅŪÎΰè¤Ë³ä¤êÅö¤Æ¤é¤ì¤Æ¤ª¤ê¡¢¤³¤Î¸å¤Ç¤³¤Î´Ø¿ô¤ä +は、現在のプロセスの制御端末にログインしているユーザー名の文字列への +ポインタを返す。ユーザー名が決定できない場合は NULL ポインタを返す。 +文字列は静的領域に割り当てられており、この後でこの関数や .BR cuserid () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿ºÝ¤Ë¾å½ñ¤­¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ +が呼び出された際に上書きされることがある。 .PP .BR getlogin_r () -¤Ï¡¢¾åµ­¤ÎƱ¤¸¥æ¡¼¥¶Ì¾¤ò¡¢Â礭¤µ +は、上記の同じユーザ名を、大きさ .I bufsize -¤ÎÇÛÎó +の配列 .I buf -¤ËÆþ¤ì¤ÆÊÖ¤¹¡£ +に入れて返す。 .PP .BR cuserid () -¤Ï¡¢¸½ºß¤Î¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶¡¼ID ¤ËÂбþ¤¹¤ë¥æ¡¼¥¶¡¼Ì¾¤Î -ʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -\fIstring\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿°Ê³°¤Î¾ì¹ç¡¢\fIstring\fP ¤Ï¾¯¤Ê¤¯¤È¤â -\fBL_cuserid\fP ʸ»ú¤òÊÝ»ý¤Ç¤­¤ëÇÛÎó¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -\fIstring\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¤Î¾ì¹ç¤Ë¤Ï¡¢ÀÅŪÎΰè¤ËÃÖ¤«¤ì¤¿Ê¸»úÎó¤Ø¤Î -¥Ý¥¤¥ó¥¿¤¬ÊÖ¤µ¤ì¤ë¡£¤³¤Îʸ»úÎó¤ÏÀÅŪÎΰè¤Ë³ä¤êÅö¤Æ¤é¤ì¤Æ¤ª¤ê¡¢¸å¤Ç -¤³¤Î´Ø¿ô¤ä +は、現在のプロセスの実効ユーザーID に対応するユーザー名の +文字列へのポインタを返す。 +\fIstring\fP が NULL ポインタ以外の場合、\fIstring\fP は少なくとも +\fBL_cuserid\fP 文字を保持できる配列でなければならない。 +\fIstring\fP が NULL ポインタの場合には、静的領域に置かれた文字列への +ポインタが返される。この文字列は静的領域に割り当てられており、後で +この関数や .BR getlogin () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿ºÝ¤Ë¾å½ñ¤­¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ +が呼び出された際に上書きされることがある。 .PP -¥Þ¥¯¥í \fBL_cuserid\fP ¤Ï integer ¤ÎÄê¿ô¤Ç¡¢¥æ¡¼¥¶¡¼Ì¾¤òÊÝ»ý¤¹¤ë¤¿¤á¤Ë -ɬÍפÊÇÛÎó¤ÎŤµ¤ò¼¨¤¹¡£ \fBL_cuserid\fP ¤Ï \fBstdio.h\fP ¤ÇÀë¸À¤µ¤ì¤Æ -¤¤¤ë¡£ +マクロ \fBL_cuserid\fP は integer の定数で、ユーザー名を保持するために +必要な配列の長さを示す。 \fBL_cuserid\fP は \fBstdio.h\fP で宣言されて +いる。 .PP -¤³¤ì¤é¤Î´Ø¿ô¤ò»È¤¦¤È¡¢¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Æ¤¤¤ë¥æ¡¼¥¶¡¼ +これらの関数を使うと、プログラムを実行しているユーザー .RB ( cuserid ()) -¤ä -¤³¤Î¥»¥Ã¥·¥ç¥ó¤Ë¥í¥°¥¤¥ó¤·¤Æ¤¤¤ë¥æ¡¼¥¶¡¼ +や +このセッションにログインしているユーザー .RB ( getlogin ()) -¤òÌÀ³Î¤ËÆÃÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë -(¤¿¤À¤· set-user-ID ¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¾õ¶·¤¬°ã¤¦¤³¤È¤â¤¢¤ë)¡£ +を明確に特定することができる +(ただし set-user-ID プログラムでは、状況が違うこともある)。 .PP -¤¿¤¤¤Æ¤¤¤ÎÌÜŪ¤Ç¤Ï¡¢¥æ¡¼¥¶¡¼¤ÎÆÃÄê¤Ë¤Ï´Ä¶­ÊÑ¿ô \fBLOGNAME\fP ¤òÄ´¤Ù -¤ë¤Û¤¦¤¬ÊØÍø¤Ç¤¢¤ë¡£LOGNAME ÊÑ¿ô¤Ï¥æ¡¼¥¶¡¼¤¬¼«Í³¤ËÀßÄê¤Ç¤­¤ë¤Î¤Ç -¤è¤ê½ÀÆð¤ÊÂбþ¤¬²Äǽ¤Ë¤Ê¤ë¡£ -.SH ÊÖ¤êÃÍ +たいていの目的では、ユーザーの特定には環境変数 \fBLOGNAME\fP を調べ +るほうが便利である。LOGNAME 変数はユーザーが自由に設定できるので +より柔軟な対応が可能になる。 +.SH 返り値 .BR getlogin () -¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï¥æ¡¼¥¶Ì¾¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤·¡¢¼ºÇÔ¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +は成功した場合はユーザ名へのポインタを返し、失敗した場合は NULL を返す。 .BR getlogin_r () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤·¡¢¼ºÇÔ¤¹¤ë¤È 0 °Ê³°¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -POSIX ¤Ç¤Ï°Ê²¼¤Î¥¨¥é¡¼¤¬µ¬Äꤵ¤ì¤Æ¤¤¤ë: +は成功すると 0 を返し、失敗すると 0 以外を返す。 +.SH エラー +POSIX では以下のエラーが規定されている: .TP .B EMFILE -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¿ô¤¬¤¹¤Ç¤Ë¥×¥í¥»¥¹¤¢¤¿¤ê¤Î -¾å¸Â¤Ë㤷¤Æ¤¤¤ë¡£ +呼び出し元プロセスがオープンしているファイル数がすでにプロセスあたりの +上限に達している。 .TP .B ENFILE -¥·¥¹¥Æ¥àÁ´ÂΤǥª¡¼¥×¥ó¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¿ô¤¬¤¹¤Ç¤Ë¾å¸Â¤Ë㤷¤Æ¤¤¤ë¡£ +システム全体でオープンしているファイル数がすでに上限に達している。 .TP .B ENXIO -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë¤ÏÀ©¸æüËö¤¬¤Ê¤¤¡£ +呼び出し元プロセスには制御端末がない。 .TP .B ERANGE (getlogin_r) -(½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤â´Þ¤á¤¿) ¥æ¡¼¥¶Ì¾¤ÎŤµ¤¬ +(終端の NULL バイトも含めた) ユーザ名の長さが .I bufsize -¤è¤ê¤âŤ¤¡£ +よりも長い。 .LP -Linux/glibc ¤Ë¤Ï°Ê²¼¤Î¥¨¥é¡¼¤â¤¢¤ë¡£ +Linux/glibc には以下のエラーもある。 .TP .B ENOENT -utmp ¥Õ¥¡¥¤¥ë¤ËÂбþ¤¹¤ë¥¨¥ó¥È¥ê¤¬¤Ê¤«¤Ã¤¿¡£ +utmp ファイルに対応するエントリがなかった。 .TP .B ENOMEM -passwd ¹½Â¤ÂΤò³ä¤êÅö¤Æ¤ë¤Î¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +passwd 構造体を割り当てるのに十分なメモリがない。 .TP .B ENOTTY -ɸ½àÆþÎϤ¬Ã¼Ëö¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤ (¡Ö¥Ð¥°¡×¤ÎÀá¤ò»²¾È)¡£ -.SH ¥Õ¥¡¥¤¥ë +標準入力が端末を参照していない (「バグ」の節を参照)。 +.SH ファイル .TP \fI/etc/passwd\fP -¥Ñ¥¹¥ï¡¼¥É¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Õ¥¡¥¤¥ë +パスワードデータベースのファイル .TP \fI/var/run/utmp\fP -(ÅÁÅýŪ¤Ë¤Ï \fI/etc/utmp\fP ¤¬»È¤ï¤ì¤Æ¤¤¤ë; -libc ¤ÎÃæ¤Ë¤Ï \fI/var/adm/utmp\fP ¤ò»È¤¦¤â¤Î¤â¤¢¤ë) -.SH ½àµò +(伝統的には \fI/etc/utmp\fP が使われている; +libc の中には \fI/var/adm/utmp\fP を使うものもある) +.SH 準拠 .BR getlogin () -¤È +と .BR getlogin_r () -¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は POSIX.1-2001 で規定されている。 -System V ¤Ë¤â +System V にも .BR cuserid () -¤¬¤¢¤ë¤¬¡¢ -¤³¤ì¤Ï¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤Ç¤Ï¤Ê¤¯¡¢¼Â¥æ¡¼¥¶¡¼ ID ¤ò»ÈÍѤ¹¤ë¡£ +があるが、 +これは実効ユーザー ID ではなく、実ユーザー ID を使用する。 .BR cuserid () -´Ø¿ô¤Ï 1988 ǯÈǤΠPOSIX ¤Ë¤Ï´Þ¤Þ¤ì¤Æ¤¤¤¿¤¬¡¢ -1990 ǯÈǤǤϺï½ü¤µ¤ì¤¿¡£ -SUSv2 ¤Ë¸ºß¤·¤¿¤¬¡¢POSIX.1-2001 ¤Çºï½ü¤µ¤ì¤¿¡£ +関数は 1988 年版の POSIX には含まれていたが、 +1990 年版では削除された。 +SUSv2 に存在したが、POSIX.1-2001 で削除された。 .LP -OpenBSD ¤Ë¤Ï +OpenBSD には .BR getlogin () -¤È +と .BR setlogin () -¤¬¤¢¤ê¡¢ -¥»¥Ã¥·¥ç¥ó¤ËÂбþ¤·¤¿¥æ¡¼¥¶Ì¾¤¬¤¢¤ë¡£À©¸æüËö¤¬¤Ê¤¤ -¥»¥Ã¥·¥ç¥ó¤Î¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢Âбþ¤¹¤ë¥æ¡¼¥¶Ì¾¤¬¤¢¤ë¡£ -.SH ¥Ð¥° -»ÄÇ°¤Ê¤¬¤é¡¢ +があり、 +セッションに対応したユーザ名がある。制御端末がない +セッションの場合であっても、対応するユーザ名がある。 +.SH バグ +残念ながら、 .BR getlogin () -¤ò¤À¤Þ¤¹¤Î¤Ï¤½¤ì¤Û¤ÉÆñ¤·¤¤¤³¤È¤Ç¤Ï¤Ê¤¤¡£ÊÌ¤Î¥×¥í¥°¥é¥à¤¬ utmp ¥Õ¥¡¥¤¥ë¤ò -²õ¤·¤Æ¤·¤Þ¤¦¤È¡¢Á´¤¯Æ°ºî¤·¤Ê¤¤¤³¤È¤â¤¢¤ë¡£¤Þ¤¿¥í¥°¥¤¥ó̾¤ÎºÇ½é¤Î 8 ʸ»ú -¤·¤«ÊÖ¤µ¤Ê¤¤¤³¤È¤â¿¤¤¡£¤Þ¤¿¥×¥í¥°¥é¥à¤òÀ©¸æ¤·¤Æ¤¤¤ë tty ¤Ë -¸½ºß¥í¥°¥¤¥ó¤·¤Æ¤¤¤ë¥æ¡¼¥¶¡¼¤Ï¡¢¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤¿ -¥æ¡¼¥¶¡¼¤Ç¤Ê¤¤¾ì¹ç¤â¤¢¤ë¡£ -¥»¥­¥å¥ê¥Æ¥£¤ÎÍí¤àÍÑÅÓ¤Ë¤Ï +をだますのはそれほど難しいことではない。別のプログラムが utmp ファイルを +壊してしまうと、全く動作しないこともある。またログイン名の最初の 8 文字 +しか返さないことも多い。またプログラムを制御している tty に +現在ログインしているユーザーは、プログラムを実行した +ユーザーでない場合もある。 +セキュリティの絡む用途には .BR getlogin () -¤òÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +を用いるべきではない。 .LP -glibc ¤Ï POSIX »ÅÍͤˤϽ¾¤Ã¤Æ¤ª¤é¤º¡¢ +glibc は POSIX 仕様には従っておらず、 .I /dev/tty -¤Ç¤Ï¤Ê¤¯ -.I "ɸ½àÆþÎÏ (stdin)" -¤ò»È¤¦¡£¤³¤ì¤Ï¥Ð¥°¤Ç¤¢¤ë¡£ -(SunOS 5.8 ¤ä HP-UX 11.11 ¤ä FreeBSD 4.8 ¤È¤¤¤Ã¤¿Â¾¤ÎºÇ¶á¤Î¥·¥¹¥Æ¥à¤Ï¤¤¤º¤ì¤â¡¢ -.I ɸ½àÆþÎÏ -¤¬¥ê¥À¥¤¥ì¥¯¥È¤µ¤ì¤¿¾ì¹ç¤Ç¤â¥í¥°¥¤¥ó̾¤òÊÖ¤¹¡£) +ではなく +.I "標準入力 (stdin)" +を使う。これはバグである。 +(SunOS 5.8 や HP-UX 11.11 や FreeBSD 4.8 といった他の最近のシステムはいずれも、 +.I 標準入力 +がリダイレクトされた場合でもログイン名を返す。) .LP .BR cuserid () -¤¬²¿¤ò¹Ô¤Ã¤Æ¤¤¤ë¤Î¤«¡¢¼ÂºÝ¤Î¤È¤³¤í¤òÃΤäƤ¤¤ë¼Ô¤Ïï¤â¤¤¤Ê¤¤; -°Ü¿¢À­¤¬µá¤á¤é¤ì¤ë¥×¥í¥°¥é¥à¤Ç¤Ï +が何を行っているのか、実際のところを知っている者は誰もいない; +移植性が求められるプログラムでは .BR cuserid () -¤Ï»È¤¦¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¤È¤¤¤¦¤«¤É¤ó¤Ê¥×¥í¥°¥é¥à¤Ç¤â»È¤¦¤Ù¤­¤Ç¤Ï¤Ê¤¤: -Âå¤ï¤ê¤Ë +は使うべきではない。 +というかどんなプログラムでも使うべきではない: +代わりに .I getpwuid(geteuid()) -¤òÍѤ¤¤ë¤Ù¤­¤Ç¤¢¤ë -(¤³¤ì¤¬°Õ¿Þ¤·¤Æ¤¤¤ë¤³¤È¤Ê¤é¤Ð¡¢¤À¤¬)¡£ +を用いるべきである +(これが意図していることならば、だが)。 .BR cuserid () -¤Ï¡Ö»È¤ï¤Ê¤¤¡×¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +は「使わない」こと。 +.SH 関連項目 .BR geteuid (2), .BR getuid (2), .BR utmp (5) diff --git a/release/man3/getmntent.3 b/release/man3/getmntent.3 index adec02b6..115d30c9 100644 --- a/release/man3/getmntent.3 +++ b/release/man3/getmntent.3 @@ -33,10 +33,10 @@ .\" Updated 2005-03-18, Akihiro MOTOKI .\" .TH GETMNTENT 3 2009-09-15 "" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 getmntent, setmntent, addmntent, endmntent, hasmntopt, -getmntent_r \- ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àµ­½Ò¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥È¥ê¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +getmntent_r \- ファイルシステム記述ファイルのエントリを取得する +.SH 書式 .nf .B #include .B #include @@ -51,7 +51,7 @@ getmntent_r \- .sp .BI "char *hasmntopt(const struct mntent *" mnt ", const char *" opt ); .sp -/* GNU ¤Ë¤è¤ë³ÈÄ¥ */ +/* GNU による拡張 */ .B #include .sp .BI "struct mntent *getmntent_r(FILE *" fp ", struct mntent *" mntbuf , @@ -59,67 +59,67 @@ getmntent_r \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR getmntent_r (): _BSD_SOURCE || _SVID_SOURCE -.SH ÀâÌÀ -¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òµ­½Ò¤·¤¿¥Õ¥¡¥¤¥ë \fI/etc/fstab\fP -¤È¡¢¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òµ­½Ò¤·¤¿¥Õ¥¡¥¤¥ë -\fI/etc/mtab\fP ¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ +.SH 説明 +これらのルーチンは、ファイルシステムを記述したファイル \fI/etc/fstab\fP +と、マウントされているファイルシステムを記述したファイル +\fI/etc/mtab\fP にアクセスするために用いられる。 .PP .BR setmntent () -´Ø¿ô¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Îµ­½Ò¥Õ¥¡¥¤¥ë \fIfilename\fP ¤ò¥ª¡¼¥×¥ó¤·¤Æ¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£¤³¤Î¥Õ¥¡¥¤¥ë¥Ý¥¤¥ó¥¿¤Ï +関数は、ファイルシステムの記述ファイル \fIfilename\fP をオープンして、 +そのファイルポインタを返す。このファイルポインタは .BR getmntent () -¤Ë¤è¤Ã¤ÆÍѤ¤¤é¤ì¤ë¡£°ú¤­¿ô \fItype\fP ¤ÏÍ׵᤹¤ë¥¢¥¯¥»¥¹·Á¼°¤Ç¡¢ +によって用いられる。引き数 \fItype\fP は要求するアクセス形式で、 .BR fopen (3) -¤Î \fImode\fP °ú¤­¿ô¤ÈƱ¤¸Ãͤò¼è¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +の \fImode\fP 引き数と同じ値を取ることができる。 .PP .BR getmntent () -´Ø¿ô¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Îµ­½Ò¥Õ¥¡¥¤¥ë \fIfp\fP ¤«¤é¿·¤·¤¤¹Ô¤òÆÉ -¤ß¹þ¤ß¡¢¹Ô¤ò¥Õ¥£¡¼¥ë¥É¤Ëʬ³ä¤·¤¿ÆâÍƤò¼ý¤á¤¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¥Ý¥¤¥ó¥¿¤Ï¥á¥â¥ê¤ÎÀÅŪ¤ÊÎΰè¤ò»Ø¤·¤Æ¤ª¤ê¡¢¤³¤ÎÎΰè¤Ï +関数はファイルシステムの記述ファイル \fIfp\fP から新しい行を読 +み込み、行をフィールドに分割した内容を収めた構造体へのポインタを返す。 +ポインタはメモリの静的な領域を指しており、この領域は .BR getmntent () -¤ò¼¡¤Ë¸Æ¤Ó½Ð¤·¤¿¤È¤­¤Ë¾å½ñ¤­¤µ¤ì¤Æ¤·¤Þ¤¦¡£ +を次に呼び出したときに上書きされてしまう。 .PP .BR addmntent () -´Ø¿ô¤Ï +関数は .I mntent -¹½Â¤ÂÎ \fImnt\fP ¤ÎÆâÍƤò¡¢¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë -\fIfp\fP ¤ÎºÇ¸å¤ËÄɲ乤롣 +構造体 \fImnt\fP の内容を、オープンされているファイル +\fIfp\fP の最後に追加する。 .PP .BR endmntent () -´Ø¿ô¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Îµ­½Ò¥Õ¥¡¥¤¥ë \fIfp\fP ¤òÊĤ¸¤ë¡£ +関数はファイルシステムの記述ファイル \fIfp\fP を閉じる。 .PP .BR hasmntopt () -´Ø¿ô¤Ï +関数は .I mntent -¹½Â¤ÂÎ \fImnt\fP ¤Î \fImnt_opts\fP ¥Õ¥£¡¼¥ë¥É (²¼µ­ -»²¾È) ¤ò¥¹¥­¥ã¥ó¤·¡¢ \fIopt\fP ¤Ë°ìÃפ¹¤ëÉôʬʸ»úÎ󤬤¢¤ë¤«¤òÄ´¤Ù¤ë¡£ -Í­¸ú¤Ê¥Þ¥¦¥ó¥È¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Ï \fI\fP ¤È +構造体 \fImnt\fP の \fImnt_opts\fP フィールド (下記 +参照) をスキャンし、 \fIopt\fP に一致する部分文字列があるかを調べる。 +有効なマウントオプションについては \fI\fP と .BR mount (8) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -¥ê¥¨¥ó¥È¥é¥ó¥È¤Ê´Ø¿ô +リエントラントな関数 .BR getmntent_r () -¤Ï +は .BR getmntent () -¤ÈƱ¤¸¤À¤¬¡¢ -¥æ¡¼¥¶¤¬ÍÑ°Õ¤·¤¿ +と同じだが、 +ユーザが用意した .I *mntbuf -¤Ë \fIstruct mount\fP ¤ò³ÊǼ¤·¡¢¤½¤Î¹½Â¤ÂΤγƥ¨¥ó¥È¥ê¤¬»Ø¤·¼¨¤¹Ê¸»úÎó¤ò -¥æ¡¼¥¶¤¬ÍÑ°Õ¤·¤¿Â礭¤µ +に \fIstruct mount\fP を格納し、その構造体の各エントリが指し示す文字列を +ユーザが用意した大きさ .I buflen -¤ÎÇÛÎó +の配列 .I buf -¤Ë½ñ¤­¹þ¤à¡£ +に書き込む。 .PP -\fImntent\fP ¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +\fImntent\fP 構造体は \fI\fP で以下のように定義されている。 .sp .in +4n .nf @@ -134,60 +134,60 @@ struct mntent { .fi .in -mtab ¤ä fstab ¥Õ¥¡¥¤¥ë¤Ç¤Ï¡¢³Æ¥Õ¥£¡¼¥ë¥É¤Ï¶õÇò¤Ç¶èÀÚ¤é¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢ -¥¹¥Ú¡¼¥¹¡¢¥¿¥Ö¡¢²þ¹Ô¡¢¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤Î 4ʸ»ú¤ò¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ç -»È¤¤¤¿¤¤¾ì¹ç¤Ç¡¢¤«¤Ä +mtab や fstab ファイルでは、各フィールドは空白で区切られているので、 +スペース、タブ、改行、バックスラッシュの 4文字をこれらのファイルで +使いたい場合で、かつ .I mntent -¹½Â¤ÂΤΠ4¤Ä¤Îʸ»úÎó¥á¥ó¥Ð¡¼¤Î¤¤¤º¤ì¤«¤ËÂбþ¤¹¤ë¥Õ¥£¡¼¥ë¥ÉÆâ¤Ç -»È¤¤¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢8¿Ê¤Î¥¨¥¹¥±¡¼¥×ɽµ­¤ò»È¤Ã¤Æɽ¸½¤¹¤ë: -¥¹¥Ú¡¼¥¹ (\e040), ¥¿¥Ö (\e011), ²þ¹Ô (\e012), ¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å (\e134)¡£ +構造体の 4つの文字列メンバーのいずれかに対応するフィールド内で +使いたい場合には、8進のエスケープ表記を使って表現する: +スペース (\e040), タブ (\e011), 改行 (\e012), バックスラッシュ (\e134)。 .BR addmntent () -¤È +と .BR getmntent () -¤Ï¡¢Ê¸»úÎóɽ¸½¤«¤é -¥¨¥¹¥±¡¼¥×ɽ¸½¤Ø¤ÎÊÑ´¹¡¢¤ª¤è¤Ó¤½¤ÎµÕ¤ò¹Ô¤¦¡£ -.SH ÊÖ¤êÃÍ +は、文字列表現から +エスケープ表現への変換、およびその逆を行う。 +.SH 返り値 .BR getmntent () -¤È +と .BR getmntent_r () -¤Ï +は .I mntent -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +構造体へのポインタを返す。 +失敗した場合は NULL を返す。 .PP -.\Baddmntent\fP() ´Ø¿ô¤ÏÀ®¸ù¤·¤¿¤é 0 ¤òÊÖ¤·¡¢¼ºÇÔ¤·¤¿¤é 1 ¤òÊÖ¤¹¡£ +.\Baddmntent\fP() 関数は成功したら 0 を返し、失敗したら 1 を返す。 .PP .BR endmntent () -´Ø¿ô¤Ï¤Ä¤Í¤Ë 1 ¤òÊÖ¤¹¡£ +関数はつねに 1 を返す。 .PP .BR hasmntopt () -´Ø¿ô¤Ï¡¢¥Þ¥Ã¥Á¤·¤¿¾ì¹ç¤ÏÉôʬʸ»úÎó¤Ø¤Î¥¢¥É¥ì¥¹¤òÊÖ¤·¡¢ -¥Þ¥Ã¥Á¤·¤Ê¤±¤ì¤Ð NULL ¤òÊÖ¤¹¡£ -.SH ¥Õ¥¡¥¤¥ë +関数は、マッチした場合は部分文字列へのアドレスを返し、 +マッチしなければ NULL を返す。 +.SH ファイル .nf -/etc/fstab ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àµ­½Ò¥Õ¥¡¥¤¥ë -/etc/mtab ¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Îµ­½Ò¥Õ¥¡¥¤¥ë +/etc/fstab ファイルシステム記述ファイル +/etc/mtab マウントされたファイルシステムの記述ファイル .fi -.SH ½àµò -¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤Ê¤¤´Ø¿ô¤Ï SunOS 4.1.3 ͳÍè¤Î¤â¤Î¤Ç¤¢¤ë¡£ +.SH 準拠 +リエントラントでない関数は SunOS 4.1.3 由来のものである。 .BR getmntent_r () -´Ø¿ô¤Ï HPUX 10 ¤ÇƳÆþ¤µ¤ì¤¿¤¬¡¢¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï int ¤òÊÖ¤¹¡£ -¾åµ­¤Ë¼¨¤·¤¿¥×¥í¥È¥¿¥¤¥×¤Ï glibc Æȼ«¤Î¤â¤Î¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -System V ¤Ë¤â +関数は HPUX 10 で導入されたが、このバージョンでは int を返す。 +上記に示したプロトタイプは glibc 独自のものである。 +.SH 注意 +System V にも .BR getmntent () -´Ø¿ô¤Ï¤¢¤ë¤¬¡¢ -¸Æ¤Ó½Ð¤·¼ê½ç¤¬°Û¤Ê¤ê¡¢ÊÖ¤µ¤ì¤ë¹½Â¤ÂΤâ°Û¤Ê¤ë¡£ -System V ¤Ç¤Ï +関数はあるが、 +呼び出し手順が異なり、返される構造体も異なる。 +System V では .I /etc/mnttab -¤¬ÍѤ¤¤é¤ì¤ë¡£ -4.4BSD ¤È Digital UNIX ¤Ë¤Ï +が用いられる。 +4.4BSD と Digital UNIX には .BR getmntinfo () -¤¬¤¢¤ë¤¬¡¢ -¥·¥¹¥Æ¥à¥³¡¼¥ë +があるが、 +システムコール .BR getfsstat () -¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +のラッパー関数である。 +.SH 関連項目 .BR fopen (3), .BR fstab (5), .BR mount (8) diff --git a/release/man3/getnameinfo.3 b/release/man3/getnameinfo.3 index c2a47761..d30e8c7f 100644 --- a/release/man3/getnameinfo.3 +++ b/release/man3/getnameinfo.3 @@ -10,9 +10,9 @@ .\" Updated 2010-04-10, Akihiro MOTOKI, LDP v3.24 .\" .TH GETNAMEINFO 3 2009-12-03 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -getnameinfo \- ¥¢¥É¥ì¥¹¤«¤é̾Á°¤Ø¤ÎÊÑ´¹¤ò¥×¥í¥È¥³¥ë¤Ë°Í¸¤·¤Ê¤¤¤«¤¿¤Á¤Ç¹Ô¤¦ -.SH ½ñ¼° +.SH 名前 +getnameinfo \- アドレスから名前への変換をプロトコルに依存しないかたちで行う +.SH 書式 .nf .B #include .B #include @@ -23,120 +23,120 @@ getnameinfo \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .ad l .in .sp .BR getnameinfo (): _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .ad b -.SH ÀâÌÀ +.SH 説明 .BR getnameinfo () -´Ø¿ô¤Ï¡¢ +関数は、 .BR getaddrinfo (3) -¤ÎµÕ¤ÎÆ°ºî¤ò¹Ô¤¦¡£¤Ä¤Þ¤ê¡¢¥×¥í¥È¥³¥ë¤Ë°Í¸¤·¤Ê¤¤¤«¤¿¤Á¤Ç -¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤«¤éÂбþ¤¹¤ë¥Û¥¹¥È̾¤È¥µ¡¼¥Ó¥¹¤Ø¤ÎÊÑ´¹¤ò¹Ô¤¦¡£ -¤³¤Î´Ø¿ô¤Ï +の逆の動作を行う。つまり、プロトコルに依存しないかたちで +ソケットアドレスから対応するホスト名とサービスへの変換を行う。 +この関数は .BR gethostbyaddr (3) -¤È +と .BR getservbyport (3) -¤Îµ¡Ç½¤ò°ì¤Ä¤Ë¤·¤¿¤â¤Î¤À¤¬¡¢ -¤³¤ì¤é¤Î´Ø¿ô¤È°ã¤¤¡¢ +の機能を一つにしたものだが、 +これらの関数と違い、 .BR getnameinfo (3) -¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤¢¤ê¡¢IPv4 ¤È IPv6 ¤Îº¹Ê¬¤Ë°Í¸¤·¤Ê¤¤¤«¤¿¤Á¤Ç -¥×¥í¥°¥é¥à¤ò½ñ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£ +はリエントラントであり、IPv4 と IPv6 の差分に依存しないかたちで +プログラムを書くことができる。 .I sa -°ú¤­¿ô¤Ï¡¢ -IP ¥¢¥É¥ì¥¹¤È¥Ý¡¼¥ÈÈÖ¹æ¤Î¾ðÊó¤òÊÝ»ý¤·¤Æ¤¤¤ë -ÈÆÍÑŪ¤Ê¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¹½Â¤ÂÎ +引き数は、 +IP アドレスとポート番号の情報を保持している +汎用的なソケットアドレス構造体 .RI ( sockaddr_in -·¿¤Þ¤¿¤Ï +型または .I sockaddr_in6 -·¿) ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +型) へのポインタである。 .I salen -¤Ï +は .I sa -¤Î¥µ¥¤¥º¤Ç¤¢¤ë¡£ +のサイズである。 .I host -¤È +と .I serv -°ú¤­¿ô¤Ï¡¢(¤½¤ì¤¾¤ì¥µ¥¤¥º¤¬ +引き数は、(それぞれサイズが .I hostlen -¤È +と .I servlen -¤Î) ¸Æ¤Ó½Ð¤·Â¦¤Ç³ÎÊݤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ê¡¢ -¥Û¥¹¥È̾¤È¥µ¡¼¥Ó¥¹Ì¾¤ò´Þ¤à NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤¬ -¤½¤ì¤¾¤ì¤Î¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤ë¡£ +の) 呼び出し側で確保されたバッファへのポインタであり、 +ホスト名とサービス名を含む NULL 終端された文字列が +それぞれのバッファに格納される。 -¥Û¥¹¥È̾¤¬ÉÔÍפǤ¢¤ë¤³¤È¤ò¤³¤Î´Ø¿ô¤ËÅÁ¤¨¤ë¤Ë¤Ï¡¢ +ホスト名が不要であることをこの関数に伝えるには、 .I host -¤Ë NULL ¤ò»ØÄꤹ¤ë¤«¡¢ +に NULL を指定するか、 .I hostlen -¤Ë 0 ¤ò»ØÄꤹ¤ë¡£Æ±Íͤˡ¢¥µ¡¼¥Ó¥¹Ì¾¤¬ÉÔÍפʾì¹ç¤Ï¡¢ +に 0 を指定する。同様に、サービス名が不要な場合は、 .I serv -¤Ë NULL ¤ò»ØÄꤹ¤ë¤«¡¢ +に NULL を指定するか、 .I servlen -¤Ë 0 ¤ò»ØÄꤹ¤ë¡£ -¤·¤«¤·¡¢¥Û¥¹¥È̾¤È¥µ¡¼¥Ó¥¹Ì¾¤ÎξÊý¤òÉÔÍפÀ¤È»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤ -(¤¤¤º¤ì¤«°ìÊý¤ÏÍ׵᤹¤ë¤³¤È)¡£ +に 0 を指定する。 +しかし、ホスト名とサービス名の両方を不要だと指定することはできない +(いずれか一方は要求すること)。 .I flags -°ú¤­¿ô¤Ç +引き数で .BR getnameinfo () -¤ÎÆ°ºî¤òÊѤ¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£»ØÄê¤Ç¤­¤ëÃͤϰʲ¼¤ÎÄ̤ê: +の動作を変えることができる。指定できる値は以下の通り: .TP .B NI_NAMEREQD -»ØÄꤹ¤ë¤È¡¢¥Û¥¹¥È̾¤¬·èÄê¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¥¨¥é¡¼¤òÊÖ¤¹¡£ +指定すると、ホスト名が決定できなかった場合にエラーを返す。 .TP .B NI_DGRAM -»ØÄꤹ¤ë¤È¡¢¥¹¥È¥ê¡¼¥à¥Ù¡¼¥¹ (TCP) ¤Ç¤Ê¤¯¥Ç¡¼¥¿¥°¥é¥à¥Ù¡¼¥¹ (UDP) -¤Î¥µ¡¼¥Ó¥¹¤òÂоݤˤ¹¤ë¡£¿ô¤Ï¾¯¤Ê¤¤¤¬¡¢ -UDP ¤È TCP ¤Ç°ã¤¦¥µ¡¼¥Ó¥¹¤òÄ󶡤·¤Æ¤¤¤ë¥Ý¡¼¥È -(512-514) ¤ËÂФ·¤ÆɬÍפȤʤ롣 +指定すると、ストリームベース (TCP) でなくデータグラムベース (UDP) +のサービスを対象にする。数は少ないが、 +UDP と TCP で違うサービスを提供しているポート +(512-514) に対して必要となる。 .TP .B NI_NOFQDN -»ØÄꤹ¤ë¤È¡¢¥í¡¼¥«¥ë¤Ê¥Û¥¹¥È¤Ë¤Ï fully qualified domain name (FQDN) ¤Î -¥Û¥¹¥È̾¤ÎÉôʬ¤Î¤ß¤òÊÖ¤¹¡£ +指定すると、ローカルなホストには fully qualified domain name (FQDN) の +ホスト名の部分のみを返す。 .TP .B NI_NUMERICHOST -»ØÄꤹ¤ë¤È¡¢¿ôÃÍ·Á¼°¤Î¥Û¥¹¥È̾¤¬ÊÖ¤µ¤ì¤ë¡£ -.\" Î㤨¤Ð +指定すると、数値形式のホスト名が返される。 +.\" 例えば .\" .BR gethostbyaddr () -.\" ¤ÎÂå¤ï¤ê¤Ë +.\" の代わりに .\" .BR inet_ntop () -.\" ¤ò¸Æ¤Ö -(»ØÄꤷ¤Ê¤¯¤Æ¤â¡¢¥Î¡¼¥É¤Î̾Á°¤¬·èÄê¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¿ôÃÍ·Á¼°¤¬Ê֤뤳¤È¤¬¤¢¤ë)¡£ +.\" を呼ぶ +(指定しなくても、ノードの名前が決定できない場合は数値形式が返ることがある)。 .\" POSIX.1-2003 has NI_NUMERICSCOPE, but glibc doesn't have it. .TP .B NI_NUMERICSERV -»ØÄꤹ¤ë¤È¡¢¿ôÃÍ·Á¼°¤Î¥µ¡¼¥Ó¥¹Ì¾ (Î㤨¤Ð¥Ý¡¼¥ÈÈÖ¹æ) ¤¬ÊÖ¤µ¤ì¤ë -(»ØÄꤷ¤Ê¤¯¤Æ¤â¡¢¥µ¡¼¥Ó¥¹Ì¾¤¬·èÄê¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¿ôÃÍ·Á¼°¤¬Ê֤뤳¤È¤¬¤¢¤ë)¡£ -.SS "¹ñºÝ²½¥É¥á¥¤¥ó̾¤Î¤¿¤á¤Î getnameinfo() ¤Î³ÈÄ¥" +指定すると、数値形式のサービス名 (例えばポート番号) が返される +(指定しなくても、サービス名が決定できない場合は数値形式が返ることがある)。 +.SS "国際化ドメイン名のための getnameinfo() の拡張" .PP -glibc 2.3.4 ¤«¤é¡¢ +glibc 2.3.4 から、 .BR getnameinfo () -¤Ë³ÈÄ¥¤¬¹Ô¤ï¤ì¡¢¥Û¥¹¥È̾¤È -¹ñºÝ²½¥É¥á¥¤¥ó̾ (Internationalized Domain Name; IDN) ·Á¼°¤È¤Î´Ö¤Ç -Æ©²áŪ¤ÊÊÑ´¹¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë -(IDN ·Á¼°¤Ë¤Ä¤¤¤Æ¤Ï RFC 3490 ¤Î +に拡張が行われ、ホスト名と +国際化ドメイン名 (Internationalized Domain Name; IDN) 形式との間で +透過的な変換ができるようになっている +(IDN 形式については RFC 3490 の .I "Internationalizing Domain Names in Applications (IDNA)" -¤ò»²¾È)¡£3¤Ä¤Î¥Õ¥é¥°¤¬¿·¤¿¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +を参照)。3つのフラグが新たに定義されている: .TP .B NI_IDN -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È¡¢É¬ÍפǤ¢¤ì¤Ð¡¢¸¡º÷½èÍý¤Ç¸«¤Ä¤«¤Ã¤¿Ì¾Á°¤Ï -IDN ·Á¼°¤«¤é¥í¥±¡¼¥ë¤Ë±þ¤¸¤¿Éä¹æ²½·Á¼°¤ËÊÑ´¹¤µ¤ì¤ë¡£ -ASCII ʸ»ú¤À¤±¤Î̾Á°¤Ï¤³¤ÎÊÑ´¹¤Ç¤Ï±Æ¶Á¤ò¼õ¤±¤Ê¤¤¡£¤³¤Î¤¿¤á¡¢ -´û¸¤Î¥×¥í¥°¥é¥à¤ä´Ä¶­¤Ç¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +このフラグを指定すると、必要であれば、検索処理で見つかった名前は +IDN 形式からロケールに応じた符号化形式に変換される。 +ASCII 文字だけの名前はこの変換では影響を受けない。このため、 +既存のプログラムや環境でこのフラグを使うことができる。 .TP .BR NI_IDN_ALLOW_UNASSIGNED ", " NI_IDN_USE_STD3_ASCII_RULES -¤³¤ì¤é¤Î¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢IDNA ½èÍý¤Ç»ÈÍѤµ¤ì¤ë¥Õ¥é¥° -IDNA_ALLOW_UNASSIGNED (̤³ä¤êÅö¤Æ¤Î Unicode ¤Î¥³¡¼¥É¥Ý¥¤¥ó¥È¤òµöÍÆ) ¤È -IDNA_USE_STD3_ASCII_RULES (½ÐÎϤ¬ STD3 ½àµò¤Î¥Û¥¹¥È̾¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë) -¤¬¤½¤ì¤¾¤ìÍ­¸ú¤Ë¤Ê¤ë¡£ -.SH ÊÖ¤êÃÍ +これらのフラグをセットすると、IDNA 処理で使用されるフラグ +IDNA_ALLOW_UNASSIGNED (未割り当ての Unicode のコードポイントを許容) と +IDNA_USE_STD3_ASCII_RULES (出力が STD3 準拠のホスト名かをチェックする) +がそれぞれ有効になる。 +.SH 返り値 .\" FIXME glibc defines the following additional errors, some which .\" can probably be returned by getnameinfo(); they need to .\" be documented. @@ -148,65 +148,65 @@ IDNA_USE_STD3_ASCII_RULES ( .\" #define EAI_INTR -104 /* Interrupted by a signal. */ .\" #define EAI_IDN_ENCODE -105 /* IDN encoding failed. */ .\" #endif -À®¸ù¤¹¤ë¤È 0 ¤¬Ê֤ꡢ(Í׵ᤵ¤ì¤Æ¤¤¤ì¤Ð) ¥Î¡¼¥É¤È¥µ¡¼¥Ó¥¹¤Î̾Á°¤¬ -NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Î·Á¼°¤Ç¤½¤ì¤¾¤ì¤Î»ØÄê¥Ð¥Ã¥Õ¥¡¤ËÊÖ¤µ¤ì¤ë -(¥Ð¥Ã¥Õ¥¡¤ÎŤµ¤Ë¤¢¤¦¤è¤¦¤Ë½Ì¤á¤é¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤)¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢°Ê²¼¤Î 0 °Ê³°¤Î¥¨¥é¡¼¡¦¥³¡¼¥É¤¬ÊÖ¤µ¤ì¤ë: +成功すると 0 が返り、(要求されていれば) ノードとサービスの名前が +NULL 終端された文字列の形式でそれぞれの指定バッファに返される +(バッファの長さにあうように縮められるかもしれない)。 +エラーの場合は、以下の 0 以外のエラー・コードが返される: .TP .B EAI_AGAIN -»ØÄꤵ¤ì¤¿Ì¾Á°¤¬¸½»þÅÀ¤Ç¤Ï²ò·è¤Ç¤­¤Ê¤«¤Ã¤¿¡£ -¸å¤ÇºÆ»î¹Ô¤·¤Æ¤ß¤ë¤³¤È¡£ +指定された名前が現時点では解決できなかった。 +後で再試行してみること。 .TP .B EAI_BADFLAGS .I flags -°ú¤­¿ô¤ËÉÔÀµ¤ÊÃͤ¬Í¿¤¨¤é¤ì¤¿¡£ +引き数に不正な値が与えられた。 .TP .B EAI_FAIL -²óÉü¤Ç¤­¤Ê¤¤¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +回復できないエラーが発生した。 .TP .B EAI_FAMILY -»ØÄꤷ¤¿¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤¬Ç§¼±¤Ç¤­¤Ê¤«¤Ã¤¿¡£ -¤¢¤ë¤¤¤Ï¥¢¥É¥ì¥¹¤ÎŤµ¤¬»ØÄꤵ¤ì¤¿¥Õ¥¡¥ß¥ê¡¼¤Ë¹ç¤¦¤â¤Î¤Ç¤Ê¤«¤Ã¤¿¡£ +指定したアドレスファミリーが認識できなかった。 +あるいはアドレスの長さが指定されたファミリーに合うものでなかった。 .TP .B EAI_MEMORY -¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£ +メモリが足りない。 .TP .B EAI_NONAME -Í¿¤¨¤é¤ì¤¿¥Ñ¥é¥á¡¼¥¿¤Ç¤Ï̾Á°¤¬²ò·è¤Ç¤­¤Ê¤¤¡£ +与えられたパラメータでは名前が解決できない。 .B NI_NAMEREQD -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤¿¤¬¥Û¥¹¥È̾¤¬·èÄê¤Ç¤­¤Ê¤«¤Ã¤¿¤«¡¢ -¥Û¥¹¥È̾¤â¥µ¡¼¥Ó¥¹Ì¾¤âÍ׵ᤵ¤ì¤Ê¤«¤Ã¤¿¡£ +が設定されていたがホスト名が決定できなかったか、 +ホスト名もサービス名も要求されなかった。 .TP .B EAI_OVERFLOW .I host -¤Þ¤¿¤Ï +または .I serv -¤¬»Ø¤·¤Æ¤¤¤ë¥Ð¥Ã¥Õ¥¡¤¬¾®¤µ¤¹¤®¤¿¡£ +が指しているバッファが小さすぎた。 .TP .B EAI_SYSTEM -¥·¥¹¥Æ¥à¥¨¥é¡¼¤¬µ¯¤Ã¤¿¡£ -¥¨¥é¡¼¥³¡¼¥É¤Ï +システムエラーが起った。 +エラーコードは .I errno -¤ËÀßÄꤵ¤ì¤ë¡£ +に設定される。 .PP .BR gai_strerror (3) -´Ø¿ô¤ò»È¤¦¤È¡¢¤³¤ì¤é¤Î¥¨¥é¡¼¡¦¥³¡¼¥É¤ò¡¢¥¨¥é¡¼¡¦¥ì¥Ý¡¼¥È¤ËŬ¤·¤¿ -¿Í´Ö¤¬Æɤߤ䤹¤¤Ê¸»úÎó¤ËËÝÌõ¤·¤Æ¤¯¤ì¤ë¡£ -.SH ¥Õ¥¡¥¤¥ë +関数を使うと、これらのエラー・コードを、エラー・レポートに適した +人間が読みやすい文字列に翻訳してくれる。 +.SH ファイル /etc/hosts .br /etc/nsswitch.conf .br /etc/resolv.conf -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .BR getnameinfo () -¤Ï¡¢glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò +は、glibc バージョン 2.1 以降で提供されている。 +.SH 準拠 RFC\ 2553, POSIX.1-2001. -.SH Ãí°Õ -ŬÀڤʥХåե¡¥µ¥¤¥º¤òÁªÂò¤Ç¤­¤ë¤è¤¦¤Ë¡¢ +.SH 注意 +適切なバッファサイズを選択できるように、 .I -¤Ë°Ê²¼¤ÎÄê¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +に以下の定数が定義されている。 .in +4n .nf @@ -215,24 +215,24 @@ RFC\ 2553, POSIX.1-2001. .fi .in -glibc 2.8 °Ê¹ß¤Ç¤Ï¡¢µ¡Ç½¸¡ºº¥Þ¥¯¥í +glibc 2.8 以降では、機能検査マクロ .BR _BSD_SOURCE , .BR _SVID_SOURCE , .BR _GNU_SOURCE -¤Î¤¤¤º¤ì¤«¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë¤Î¤ß¡¢¤³¤ì¤é¤ÎÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£ +のいずれかが定義された場合にのみ、これらの定義が公開される。 .PP -Á°¼Ô¤Ï¡¢ºÇ¶á¤Î¥Ð¡¼¥¸¥ç¥ó¤Î BIND ¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë +前者は、最近のバージョンの BIND のヘッダファイル .I -Ãæ¤ÎÄê¿ô +中の定数 .B MAXDNAME -¤ÈƱ¤¸ÃͤǤ¢¤ë¡£ -¸å¼Ô¤Ï¡¢³ä¤êÅö¤ÆºÑ¤Î¿ôÃͤˤĤ¤¤Æµ­¤·¤¿¸½ºß¤Î RFC ¤Ë -Îóµó¤µ¤ì¤Æ¥µ¡¼¥Ó¥¹¤«¤é¿äÎ̤·¤¿ÃͤǤ¢¤ë¡£ -.SH Îã -°Ê²¼¤Î¥³¡¼¥É¤Ï¡¢»ØÄꤵ¤ì¤¿¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤ËÂФ¹¤ë -¥Û¥¹¥È¤È¥µ¡¼¥Ó¥¹¤Î¿ôÃÍɽ¼°¤ò¼èÆÀ¤·¤è¤¦¤È»î¤ß¤ë¡£ -ÆÃÄê¤Î¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤ËÂФ¹¤ë»²¾È¾ðÊó¤Ï -°ìÀڥϡ¼¥É¥³¡¼¥É¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ËÃåÌܤ·¤Æ¤Û¤·¤¤¡£ +と同じ値である。 +後者は、割り当て済の数値について記した現在の RFC に +列挙されてサービスから推量した値である。 +.SH 例 +以下のコードは、指定されたソケットアドレスに対する +ホストとサービスの数値表式を取得しようと試みる。 +特定のアドレスファミリーに対する参照情報は +一切ハードコードされていないことに着目してほしい。 .in +4n .nf @@ -246,8 +246,8 @@ if (getnameinfo(sa, len, hbuf, sizeof(hbuf), sbuf, .fi .in -°Ê²¼¤Ç¤Ï¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Ë -µÕ¸þ¤­¤Î¥¢¥É¥ì¥¹¥Þ¥Ã¥Ô¥ó¥°¤¬Â¸ºß¤¹¤ë¤«¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤¤¤ë¡£ +以下ではソケットアドレスに +逆向きのアドレスマッピングが存在するかをチェックしている。 .in +4n .nf @@ -264,10 +264,10 @@ else .in .PP .BR getnameinfo () -¤ò»È¤Ã¤¿¥×¥í¥°¥é¥àÎ㤬 +を使ったプログラム例が .BR getaddrinfo (3) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +に記載されている。 +.SH 関連項目 .BR accept (2), .BR getpeername (2), .BR getsockname (2), diff --git a/release/man3/getnetent.3 b/release/man3/getnetent.3 index 65bb8055..6762f14f 100644 --- a/release/man3/getnetent.3 +++ b/release/man3/getnetent.3 @@ -32,9 +32,9 @@ .\" Updated 2008-09-19, Akihiro MOTOKI .\" .TH GETNETENT 3 2008-08-19 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -getnetent, getnetbyname, getnetbyaddr, setnetent, endnetent \- ¥Í¥Ã¥È¥ï¡¼¥¯¥¨¥ó¥È¥ê¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +getnetent, getnetbyname, getnetbyaddr, setnetent, endnetent \- ネットワークエントリを取得する +.SH 書式 .nf .B #include .sp @@ -48,35 +48,35 @@ getnetent, getnetbyname, getnetbyaddr, setnetent, endnetent \- .sp .B void endnetent(void); .fi -.SH ÀâÌÀ +.SH 説明 .BR getnetent () -´Ø¿ô¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¼¡¤Î¥¨¥ó¥È¥ê¤òÆɤ߹þ¤ß¡¢ -¤½¤Î¥¨¥ó¥È¥ê¤ò \fInetent\fP ¹½Â¤ÂΤÎÍ×ÁÇÊ̤Υե£¡¼¥ë¥É¤Ë³ÊǼ¤·¡¢ -¤½¤Î¹½Â¤ÂΤòÊÖ¤¹¡£ -ɬÍפǤ¢¤ì¤Ð¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤¬¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£ +関数はネットワークデータベースから次のエントリを読み込み、 +そのエントリを \fInetent\fP 構造体の要素別のフィールドに格納し、 +その構造体を返す。 +必要であれば、データベースへの接続がオープンされる。 .PP .BR getnetbyname () -´Ø¿ô¤Ï¡¢¥Í¥Ã¥È¥ï¡¼¥¯Ì¾ \fIname\fP ¤Ë¥Þ¥Ã¥Á¤¹¤ë¥¨¥ó¥È¥ê¤ò -¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éõ¤·¡¢¤½¤Î¥¨¥ó¥È¥ê¤ò¼ý¤á¤¿ \fInetent\fP ¹½Â¤ÂΤòÊÖ¤¹¡£ +関数は、ネットワーク名 \fIname\fP にマッチするエントリを +データベースから探し、そのエントリを収めた \fInetent\fP 構造体を返す。 .PP .BR getnetbyaddr () -´Ø¿ô¤Ï¡¢\fItype\fP ·¿¤Î¥Í¥Ã¥È¥ï¡¼¥¯ÈÖ¹æ \fInet\fP ¤Ë¥Þ¥Ã¥Á¤¹¤ë¥¨¥ó¥È¥ê¤ò -¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éõ¤·¡¢¤½¤Î¥¨¥ó¥È¥ê¤ò¼ý¤á¤¿ \fInetent\fP ¹½Â¤ÂΤòÊÖ¤¹¡£ +関数は、\fItype\fP 型のネットワーク番号 \fInet\fP にマッチするエントリを +データベースから探し、そのエントリを収めた \fInetent\fP 構造体を返す。 .I net -°ú¤­¿ô¤Ï¥Û¥¹¥È¡¦¥Ð¥¤¥È¥ª¡¼¥À¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数はホスト・バイトオーダでなければならない。 .PP .BR setnetent () -´Ø¿ô¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤ò¥ª¡¼¥×¥ó¤·¡¢ -¼¡¤ÎÆɤ߹þ¤ß¥¨¥ó¥È¥ê¤òÀèƬ¤Î¥¨¥ó¥È¥ê¤ËÀßÄꤹ¤ë¡£ -\fIstayopen\fP ¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¡¢ -°ì¤Ä°ì¤Ä¤Î +関数はデータベースへの接続をオープンし、 +次の読み込みエントリを先頭のエントリに設定する。 +\fIstayopen\fP が 0 でない場合、 +一つ一つの .BR getnet* () -´Ø¿ô¤Î¸Æ¤Ó½Ð¤·´Ö¤Ç¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤ò¥¯¥í¡¼¥º¤·¤Ê¤¤¡£ +関数の呼び出し間でデータベースへの接続をクローズしない。 .PP .BR endnetent () -´Ø¿ô¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +関数はデータベースへの接続をクローズする。 .PP -\fInetent\fP ¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +\fInetent\fP 構造体は \fI\fP で以下のように定義されている。 .sp .in +4n .nf @@ -89,45 +89,45 @@ struct netent { .fi .in .PP -\fInetent\fP ¹½Â¤ÂΤΥá¥ó¥Ð¤Ï°Ê²¼¤ÎÄ̤ꡣ +\fInetent\fP 構造体のメンバは以下の通り。 .RS .TP 12 .I n_name -¥Í¥Ã¥È¥ï¡¼¥¯¤ÎÀµ¼°Ì¾ (official name)¡£ +ネットワークの正式名 (official name)。 .TP .I n_aliases -¥Í¥Ã¥È¥ï¡¼¥¯¤ÎÊÌ̾¤«¤é¤Ê¤ë¥ê¥¹¥È¡£ -¥ê¥¹¥È¤Ï NULL ¤Ç½ªÃ¼¤µ¤ì¤ë¡£ +ネットワークの別名からなるリスト。 +リストは NULL で終端される。 .TP .I n_addrtype -¥Í¥Ã¥È¥ï¡¼¥¯ÈÖ¹æ¤Î·Á¼°¡£¸½ºß¤Ï +ネットワーク番号の形式。現在は .B AF_INET -¤Î¤ß¡£ +のみ。 .TP .I n_net -¥Û¥¹¥È¡¦¥Ð¥¤¥È¥ª¡¼¥À·Á¼°¤Î¥Í¥Ã¥È¥ï¡¼¥¯Èֹ档 +ホスト・バイトオーダ形式のネットワーク番号。 .RE -.SH ÊÖ¤êÃÍ +.SH 返り値 .BR getnetent (), .BR getnetbyname (), .BR getnetbyaddr () -´Ø¿ô¤Ï¡¢ÀÅŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿ \fInetent\fP ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¤ê¡¢¥Õ¥¡¥¤¥ë¤ÎËöÈø¤Ë㤷¤¿¾ì¹ç¤Ï NULL ¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -.SH ¥Õ¥¡¥¤¥ë +関数は、静的に割り当てられた \fInetent\fP 構造体へのポインタを返す。 +エラーが起こったり、ファイルの末尾に達した場合は NULL ポインタを返す。 +.SH ファイル .TP .I /etc/networks -¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë -.SH ½àµò +ネットワークデータベースファイル +.SH 準拠 4.3BSD, POSIX.1-2001. -.SH Ãí°Õ -¥Ð¡¼¥¸¥ç¥ó 2.2 ¤è¤êÁ°¤Î glibc ¤Ç¤Ï¡¢ +.SH 注意 +バージョン 2.2 より前の glibc では、 .BR getnetbyaddr () -¤Î°ú¤­¿ô +の引き数 .I net -¤Ï +は .I long -·¿¤À¤Ã¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +型だった。 +.SH 関連項目 .BR getnetent_r (3), .BR getprotoent (3), .BR getservent (3) diff --git a/release/man3/getopt.3 b/release/man3/getopt.3 index 8bbc6a68..0bfcb5a4 100644 --- a/release/man3/getopt.3 +++ b/release/man3/getopt.3 @@ -48,13 +48,13 @@ .\" Updated & Modified 2007-05-01, Akihiro MOTOKI, LDP v2.46 .\" Updated 2008-08-11, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: argv-element argv Í×ÁÇ +.\"WORD: argv-element argv 要素 .\" .TH GETOPT 3 2010-11-01 "GNU" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 getopt, getopt_long, getopt_long_only, -optarg, optind, opterr, optopt \- ¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤ò²ò¼á¤¹¤ë -.SH ½ñ¼° +optarg, optind, opterr, optopt \- コマンドラインオプションを解釈する +.SH 書式 .nf .B #include .sp @@ -76,9 +76,9 @@ optarg, optind, opterr, optopt \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .ad l .in .sp @@ -89,145 +89,145 @@ _POSIX_C_SOURCE\ >=\ 2 || _XOPEN_SOURCE .BR getopt_long_only (): _GNU_SOURCE .ad b -.SH ÀâÌÀ +.SH 説明 .BR getopt () -´Ø¿ô¤Ï¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤ò²ò¼á¤¹¤ë¡£ +関数はコマンドライン引き数を解釈する。 .BR getopt () -¤¬¤È¤ë°ú¤­¿ô +がとる引き数 .I argc -¤È +と .I argv -¤Ï¡¢¤½¤ì¤¾¤ì¥×¥í¥°¥é¥à¤Îµ¯Æ°»þ¤Ë +は、それぞれプログラムの起動時に .IR main () -´Ø¿ô¤ËÅϤµ¤ì¤¿°ú¤­¿ô¤Î¸Ä¿ô¤ÈÇÛÎó¤Ç¤¢¤ë¡£ -\fIargv\fP ¤ÎÍ×ÁǤΤ¦¤Á \(aq\-\(aq ¤Ç»Ï¤Þ¤ë¤â¤Î -(¤«¤Ä "\-" ñÆȤä "\-\-" ñÆȤǤϤʤ¤¤â¤Î) ¤Ï -¥ª¥×¥·¥ç¥óÍ×ÁÇ (option element) ¤È¤ß¤Ê¤µ¤ì¤ë¡£ -¤³¤ÎÍ×ÁǤ«¤éÀèƬ¤Î \(aq\-\(aq ¤ò½ü¤¤¤¿Ê¸»ú¤Ï -¥ª¥×¥·¥ç¥óʸ»ú (option character) ¤È¤µ¤ì¤ë¡£ +関数に渡された引き数の個数と配列である。 +\fIargv\fP の要素のうち \(aq\-\(aq で始まるもの +(かつ "\-" 単独や "\-\-" 単独ではないもの) は +オプション要素 (option element) とみなされる。 +この要素から先頭の \(aq\-\(aq を除いた文字は +オプション文字 (option character) とされる。 .BR getopt () -¤Ï¡¢·«¤êÊÖ¤·¸Æ¤Ó½Ð¤µ¤ì¤ë¤´¤È¤Ë¡¢¼¡¤Î¥ª¥×¥·¥ç¥óʸ»ú¤òÊÖ¤¹¡£ +は、繰り返し呼び出されるごとに、次のオプション文字を返す。 .PP -ÊÑ¿ô +変数 .I optind -¤Ï¡¢ +は、 .I argv -¤Î¼¡¤Ë½èÍý¤µ¤ì¤ëÍ×ÁǤΥ¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤¢¤ë¡£ -¥·¥¹¥Æ¥à¤Ë¤è¤ê¤³¤ÎÊÑ¿ô¤ÎÃÍ¤Ï 1 ¤Ë½é´ü²½¤µ¤ì¤ë¡£ -¸Æ¤Ó½Ð¤·Â¦¤Ç¤³¤ÎÃͤò 1 ¤Ë¥ê¥»¥Ã¥È¤¹¤ë¤³¤È¤Ç¡¢Æ±¤¸ +の次に処理される要素のインデックスである。 +システムによりこの変数の値は 1 に初期化される。 +呼び出し側でこの値を 1 にリセットすることで、同じ .I argv -¤Î¥¹¥­¥ã¥ó¤ò¤ä¤êľ¤·¤¿¤ê¡¢¿·¤·¤¤°ú¤­¿ô¥Ù¥¯¥È¥ë¤ò¥¹¥­¥ã¥ó¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +のスキャンをやり直したり、新しい引き数ベクトルをスキャンすることができる。 .PP -¿·¤¿¤Ê¥ª¥×¥·¥ç¥óʸ»ú¤ò¸«¤Ä¤±¤ë¤È¡¢ +新たなオプション文字を見つけると、 .BR getopt () -¤Ï¤½¤Îʸ»ú¤òÊÖ¤·¡¢ -³°ÉôÊÑ¿ô \fIoptind\fP ¤È¥¹¥¿¥Æ¥£¥Ã¥¯¤ÊÊÑ¿ô \fInextchar\fP ¤ò¹¹¿·¤¹¤ë¡£ -¤³¤ì¤é¤Ë¤è¤Ã¤Æ¡¢ +はその文字を返し、 +外部変数 \fIoptind\fP とスタティックな変数 \fInextchar\fP を更新する。 +これらによって、 .BR getopt () -¤Ï¼¡²ó¤Î¸Æ¤Ó½Ð¤·¤ÎºÝ¤Ë¡¢ -°Ê¹ß¤Î¥ª¥×¥·¥ç¥óʸ»ú¤ä \fIargv\fP Í×ÁǤΥ¹¥­¥ã¥ó¤ò·Ñ³¤Ç¤­¤ë¡£ +は次回の呼び出しの際に、 +以降のオプション文字や \fIargv\fP 要素のスキャンを継続できる。 .PP -¥ª¥×¥·¥ç¥óʸ»ú¤¬¤½¤ì°Ê¾å¸«¤Ä¤«¤é¤Ê¤¯¤Ê¤ë¤È¡¢ +オプション文字がそれ以上見つからなくなると、 .BR getopt () -¤Ï -\-1 ¤òÊÖ¤¹¡£¤½¤·¤Æ \fIoptind\fP ¤Ï¡¢\fIargv\fP ¤ÎÍ×ÁǤΤ¦¤Á¡¢ -¥ª¥×¥·¥ç¥ó¤Ç¤Ê¤¤ºÇ½é¤ÎÍ×ÁǤò¼¨¤¹¤è¤¦¤Ë¤Ê¤ë¡£ +は +\-1 を返す。そして \fIoptind\fP は、\fIargv\fP の要素のうち、 +オプションでない最初の要素を示すようになる。 .PP .I optstring -¤Ï¼õ¤±ÉÕ¤±¤ë¥ª¥×¥·¥ç¥óʸ»ú¤«¤é¤Ê¤ëʸ»úÎó¤Ç¤¢¤ë¡£ -ʸ»ú¤Î¤¢¤È¤Ë¥³¥í¥ó (:) ¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ -¥ª¥×¥·¥ç¥ó¤Ë¤Ï°ú¤­¿ô¤¬É¬ÍפǤ¢¤ë¤³¤È¤ò¼¨¤¹¡£ -¤³¤Î¤È¤­ +は受け付けるオプション文字からなる文字列である。 +文字のあとにコロン (:) が置かれている場合は、 +オプションには引き数が必要であることを示す。 +このとき .BR getopt () -¤Ï¡¢¸½ºßÃíÌܤ·¤Æ¤¤¤ë -\fIargv\fP Í×ÁǤǡ¢¥ª¥×¥·¥ç¥óʸ»ú¤Ë°ú¤­Â³¤¯¥Æ¥­¥¹¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤«¡¢ -¤¢¤ë¤¤¤Ï¼¡¤Î \fIargv\fP Í×ÁǤΥƥ­¥¹¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò +は、現在注目している +\fIargv\fP 要素で、オプション文字に引き続くテキストへのポインタか、 +あるいは次の \fIargv\fP 要素のテキストへのポインタを .I optarg -¤ËÂåÆþ¤¹¤ë¡£ -2 ¸ÄϢ³¤·¤Æ¥³¥í¥ó¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ -¤½¤Î¥ª¥×¥·¥ç¥ó¤Ï°ú¤­¿ô¤ò¤È¤Ã¤Æ¤â¤È¤é¤Ê¤¯¤Æ¤â¤è¤¤¡£ -¸½ºß¤Î \fIargv\fP Í×ÁǤ˥ƥ­¥¹¥È¤¬¤¢¤ì¤Ð -(¤Ä¤Þ¤ê¡¢"\-oarg" ¤Î¤è¤¦¤Ë¡¢¥ª¥×¥·¥ç¥ó̾¼«¿È¤ÈƱ¤¸¥ï¡¼¥ÉÆâ¤Ë -¥Æ¥­¥¹¥È¤¬¤¢¤ë¾ì¹ç)¡¢¤½¤ì¤¬ \fIoptarg\fP ¤ËÊÖ¤µ¤ì¤ë¡£ -¤Ê¤±¤ì¤Ð \fIoptarg\fP ¤Ï 0 ¤ËÀßÄꤵ¤ì¤ë¡£ -¤³¤ì¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ +に代入する。 +2 個連続してコロンが置かれている場合は、 +そのオプションは引き数をとってもとらなくてもよい。 +現在の \fIargv\fP 要素にテキストがあれば +(つまり、"\-oarg" のように、オプション名自身と同じワード内に +テキストがある場合)、それが \fIoptarg\fP に返される。 +なければ \fIoptarg\fP は 0 に設定される。 +これは GNU による拡張である。 .I optstring -¤Ë +に .B W -¤È¤½¤ì¤Ë³¤¯¥»¥ß¥³¥í¥ó¤¬Æþ¤Ã¤Æ¤¤¤ë¤È¡¢ +とそれに続くセミコロンが入っていると、 .B \-W foo -¤ÏŤ¤¥ª¥×¥·¥ç¥ó +は長いオプション .B \-\-foo -¤ÈƱ¤¸¤è¤¦¤Ë°·¤ï¤ì¤ë -(POSIX.2 ¤Ï +と同じように扱われる +(POSIX.2 は .B \-W -¥ª¥×¥·¥ç¥ó¤ò¼ÂÁõ°Í¸¤Î³ÈÄ¥¤È¤·¤ÆͽÌ󤷤Ƥ¤¤ë)¡£ -¤³¤ÎÆ°ºî¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ê¡¢glibc 2 °ÊÁ°¤Î¥é¥¤¥Ö¥é¥ê¤Ç¤Ï -ÍøÍѤǤ­¤Ê¤¤¡£ +オプションを実装依存の拡張として予約している)。 +この動作は GNU による拡張であり、glibc 2 以前のライブラリでは +利用できない。 .PP -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï +デフォルトでは .BR getopt () -¤Ï \fIargv\fP ¤ò¥¹¥­¥ã¥ó¤¹¤ëºÝ¤Ë½ç½ø¤òÊѹ¹¤·¡¢ -¥ª¥×¥·¥ç¥ó°Ê³°¤ÎÍ×ÁǤòºÇ¸å¤Ë°ÜÆ°¤¹¤ë¡£ -¾¤Ë¤â 2 ¤Ä¤Î¥â¡¼¥É¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -\fIoptstring\fP ¤ÎÀèƬʸ»ú¤¬ \(aq+\(aq ¤Ç¤¢¤ë¤«¡¢´Ä¶­ÊÑ¿ô +は \fIargv\fP をスキャンする際に順序を変更し、 +オプション以外の要素を最後に移動する。 +他にも 2 つのモードが実装されている。 +\fIoptstring\fP の先頭文字が \(aq+\(aq であるか、環境変数 .B POSIXLY_CORRECT -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢¥ª¥×¥·¥ç¥ó¤òÂоݤȤ¹¤ëÆ°ºî¤Ï¡¢ -È󥪥ץ·¥ç¥ó¤Î°ú¤­¿ô¤¬¸½¤ì¤¿Ãʳ¬¤Ç½ªÎ»¤¹¤ë¡£ -\fIoptstring\fP ¤ÎÀèƬʸ»ú¤¬ \(aq\-\(aq ¤Ç¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢ -¥ª¥×¥·¥ç¥ó¤Ç¤Ê¤¤ \fIargv\fP Í×ÁǤϡ¢ -ʸ»ú¥³¡¼¥É 1 ¤Î¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë¤«¤Î¤è¤¦¤Ë°·¤ï¤ì¤ë (¤³¤ì¤òÍѤ¤¤ë¥×¥í¥°¥é¥à¤Ï¡¢ -¥ª¥×¥·¥ç¥ó¤ä \fIargv\fP Í×ÁǤòǤ°Õ¤Î½ç½ø¤Ç¼õ¤±Æþ¤ì¡¢¤«¤Ä¤½¤ì¤é¤Î½ç½ø¤¬ -°ÕÌ£¤ò»ý¤Ä¤è¤¦¤Ë½ñ¤«¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ë)¡£ -"\-\-" ¤ÏÆüì¤Ê°ú¤­¿ô¤Ç¡¢¥¹¥­¥ã¥ó¤Î¥â¡¼¥É¤Ë¤è¤é¤º¡¢ -¥ª¥×¥·¥ç¥ó¤Î¥¹¥­¥ã¥ó¤ò¶¯À©Åª¤Ë½ªÎ»¤µ¤»¤ë¡£ +が設定されている場合には、オプションを対象とする動作は、 +非オプションの引き数が現れた段階で終了する。 +\fIoptstring\fP の先頭文字が \(aq\-\(aq である場合には、 +オプションでない \fIargv\fP 要素は、 +文字コード 1 のオプションであるかのように扱われる (これを用いるプログラムは、 +オプションや \fIargv\fP 要素を任意の順序で受け入れ、かつそれらの順序が +意味を持つように書かれている必要がある)。 +"\-\-" は特殊な引き数で、スキャンのモードによらず、 +オプションのスキャンを強制的に終了させる。 .PP -ǧ¼±¤Ç¤­¤Ê¤¤¥ª¥×¥·¥ç¥óʸ»ú¤¬¤¢¤ë¤È¡¢ +認識できないオプション文字があると、 .BR getopt () -¤Ï¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɸ½à¥¨¥é¡¼½ÐÎÏ \fIstderr\fP ¤Ëɽ¼¨¤·¡¢ -¤½¤Îʸ»ú¤ò \fIoptopt\fP ¤ËÊݸ¤·¤Æ \(aq?\(aq ¤òÊÖ¤¹¡£ -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥°¥é¥à¤Ç \fIopterr\fP ¤ò 0 ¤Ë¤·¤Æ¤ª¤±¤Ð¡¢ -¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Îɽ¼¨¤òÍÞÀ©¤Ç¤­¤ë¡£ +はエラーメッセージを標準エラー出力 \fIstderr\fP に表示し、 +その文字を \fIoptopt\fP に保存して \(aq?\(aq を返す。 +呼び出したプログラムで \fIopterr\fP を 0 にしておけば、 +エラーメッセージの表示を抑制できる。 .PP .BR getopt () -¤Ï \fIargv\fP ¤ÎÃæ¤Ë -\fIoptstring\fP ¤Ë¤Ê¤¤¥ª¥×¥·¥ç¥óʸ»ú¤ò¸«¤Ä¤±¤¿¾ì¹ç¡¢ -¤Þ¤¿¤Ï¥ª¥×¥·¥ç¥ó°ú¤­¿ô¤¬Â­¤ê¤Ê¤¤¤³¤È¤¬Ê¬¤«¤Ã¤¿¾ì¹ç¡¢ -\&\(aq?\(aq ¤òÊÖ¤·¤Æ³°ÉôÊÑ¿ô \fIoptopt\fP ¤ò¤½¤Î¥ª¥×¥·¥ç¥óʸ»ú¤ËÀßÄꤹ¤ë¡£ -\fIoptstring\fP ¤Î (¾å¤ÇÀâÌÀ¤·¤¿¥ª¥×¥·¥ç¥ó¤Ç»ØÄê¤Ç¤­¤ë -\&\(aq+\(aq ¤Þ¤¿¤Ï \(aq\-\(aq ¸å¤Ë³¤¯) ºÇ½é¤Îʸ»ú¤¬ -¥³¥í¥ó (\(aq:\(aq) ¤Î¤È¤­¡¢ +は \fIargv\fP の中に +\fIoptstring\fP にないオプション文字を見つけた場合、 +またはオプション引き数が足りないことが分かった場合、 +\&\(aq?\(aq を返して外部変数 \fIoptopt\fP をそのオプション文字に設定する。 +\fIoptstring\fP の (上で説明したオプションで指定できる +\&\(aq+\(aq または \(aq\-\(aq 後に続く) 最初の文字が +コロン (\(aq:\(aq) のとき、 .BR getopt () -¤Ï¥ª¥×¥·¥ç¥ó°ú¤­¿ô¤¬Â­¤ê¤Ê¤¤¾ì¹ç¤Ë \(aq?\(aq ¤Ç¤Ï¤Ê¤¯ \(aq:\(aq ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤ò¸«¤Ä¤±¤¿¾ì¹ç¤Ç¡¢¤«¤Ä \fIoptstring\fP ¤ÎºÇ½é¤Îʸ»ú¤¬¥³¥í¥ó¤Ç¤Ê¤¯¡¢ -¤«¤Ä³°ÉôÊÑ¿ô \fIopterr\fP ¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç (¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È)¡¢ +はオプション引き数が足りない場合に \(aq?\(aq ではなく \(aq:\(aq を返す。 +エラーを見つけた場合で、かつ \fIoptstring\fP の最初の文字がコロンでなく、 +かつ外部変数 \fIopterr\fP が 0 でない場合 (これがデフォルト)、 .BR getopt () -¤Ï¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¡£ -.SS getopt_long() ¤È getopt_long_only() +はエラーメッセージを表示する。 +.SS getopt_long() と getopt_long_only() .BR getopt_long () -´Ø¿ô¤Ï¡¢Ä¹¤¤¥ª¥×¥·¥ç¥ó (2 ¤Ä¤Î¥À¥Ã¥·¥å "\-\-" ¤Ç»Ï¤Þ¤ë¥ª¥×¥·¥ç¥ó) ¤ò -¼õ¤±Æþ¤ì¤ë¤³¤È¤ò½ü¤¤¤Æ +関数は、長いオプション (2 つのダッシュ "\-\-" で始まるオプション) を +受け入れることを除いて .BR getopt () -¤ÈƱ¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë -(¥×¥í¥°¥é¥à¤ËŤ¤¥ª¥×¥·¥ç¥ó¤À¤±¤¬ÅϤµ¤ì¤¿¾ì¹ç¡¢ +と同じように動作する +(プログラムに長いオプションだけが渡された場合、 .I optstring -¤Ï NULL ¤Ç¤Ï¤Ê¤¯¶õʸ»úÎó ("") ¤È¤Ê¤ë)¡£ -Ť¤¥ª¥×¥·¥ç¥ó¤Î̾Á°¤Ï¡¢Â¾¤È½Å¤Ê¤é¤Ê¤¤ÈϰϤˤª¤¤¤Æû½Ì¤Ç¤­¤ë¡£ -¤¢¤ë¤¤¤ÏÄêµÁ¤µ¤ì¤¿¥ª¥×¥·¥ç¥ó¤ËÀµ³Î¤Ë¥Þ¥Ã¥Á¤¹¤ë¤â¤Î¤Ç¤â (ÅöÁ³) ¤«¤Þ¤ï¤Ê¤¤¡£ -Ť¤¥ª¥×¥·¥ç¥ó¤Ï°ú¤­¿ô¤ò¼è¤ë¤³¤È¤¬¤Ç¤­¡¢ +は NULL ではなく空文字列 ("") となる)。 +長いオプションの名前は、他と重ならない範囲において短縮できる。 +あるいは定義されたオプションに正確にマッチするものでも (当然) かまわない。 +長いオプションは引き数を取ることができ、 .B \-\-arg=param -¤Þ¤¿¤Ï +または .B "\-\-arg param" -¤È¸À¤¦·Á¼°¤Ç»ØÄꤹ¤ë¡£ +と言う形式で指定する。 .PP .I longopts -¤Ï +は .I struct option -¤ÎÍ×ÁǤ«¤é¤Ê¤ëÇÛÎó¤Î¡¢ÀèƬÍ×ÁǤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ +の要素からなる配列の、先頭要素へのポインタである。 .I struct option -¤Ï +は .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で以下のように定義されている。 .in +4n .nf .sp @@ -240,158 +240,158 @@ struct option { .fi .in .PP -¤½¤ì¤¾¤ì¤Î¥Õ¥£¡¼¥ë¥É¤Î°ÕÌ£¤Ï°Ê²¼¤ÎÄ̤ꡣ +それぞれのフィールドの意味は以下の通り。 .TP .I name -Ť¤¥ª¥×¥·¥ç¥ó¤Î̾Á°¡£ +長いオプションの名前。 .TP .I has_arg -\fBno_argument\fP (¤Þ¤¿¤Ï 0) ¤Ê¤é¡¢¥ª¥×¥·¥ç¥ó¤Ï°ú¤­¿ô¤ò¤È¤é¤Ê¤¤¡£ -\fBrequired_argument\fP (¤Þ¤¿¤Ï 1) ¤Ê¤é¡¢¥ª¥×¥·¥ç¥ó¤Ï°ú¤­¿ô¤òɬÍפȤ¹¤ë¡£ -\fBoptional_argument\fP (¤Þ¤¿¤Ï 2) ¤Ê¤é¡¢¥ª¥×¥·¥ç¥ó¤Ï°ú¤­¿ô¤ò¤È¤Ã¤Æ¤â -¤È¤é¤Ê¤¯¤Æ¤âÎɤ¤¡£ +\fBno_argument\fP (または 0) なら、オプションは引き数をとらない。 +\fBrequired_argument\fP (または 1) なら、オプションは引き数を必要とする。 +\fBoptional_argument\fP (または 2) なら、オプションは引き数をとっても +とらなくても良い。 .TP .I flag -Ť¤¥ª¥×¥·¥ç¥ó¤ËÂФ¹¤ë·ë²Ì¤ÎÊÖ¤·Êý¤ò»ØÄꤹ¤ë¡£\fIflag\fP ¤¬ -NULL ¤Ê¤é +長いオプションに対する結果の返し方を指定する。\fIflag\fP が +NULL なら .BR getopt_long () -¤Ï \fIval\fP ¤òÊÖ¤¹ -(Î㤨¤Ð¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥°¥é¥à¤Ï¡¢ -\fIval\fP ¤ËÅù²Á¤Ê¥ª¥×¥·¥ç¥óʸ»ú¤òÂåÆþ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë)¡£ -NULL °Ê³°¤Î¾ì¹ç¤Ë¤Ï¡¢ +は \fIval\fP を返す +(例えば呼び出し元のプログラムは、 +\fIval\fP に等価なオプション文字を代入することができる)。 +NULL 以外の場合には、 .BR getopt_long () -¤Ï 0 ¤òÊÖ¤¹¡£ -¤³¤Î¤È¤­¥ª¥×¥·¥ç¥ó¤¬¸«¤Ä¤«¤ë¤È \fIflag\fP ¤¬¥Ý¥¤¥ó¥È¤¹¤ëÊÑ¿ô¤Ë -\fIval\fP ¤¬ÂåÆþ¤µ¤ì¤ë¡£¸«¤Ä¤«¤é¤Ê¤¤¤È¤³¤ÎÊÑ¿ô¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +は 0 を返す。 +このときオプションが見つかると \fIflag\fP がポイントする変数に +\fIval\fP が代入される。見つからないとこの変数は変更されない。 .TP \fIval\fP -ÊÖ¤êÃÍ¡¢¤Þ¤¿¤Ï \fIflag\fP ¤¬¥Ý¥¤¥ó¥È¤¹¤ëÊÑ¿ô¤Ø¥í¡¼¥É¤µ¤ì¤ëÃÍ¡£ +返り値、または \fIflag\fP がポイントする変数へロードされる値。 .PP -ÇÛÎó¤ÎºÇ¸å¤ÎÍ×ÁǤϡ¢Á´¤Æ 0 ¤ÇËä¤á¤é¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +配列の最後の要素は、全て 0 で埋められていなければならない。 .PP -\fIlongindex\fP ¤Ï¡¢NULL ¤Ç¤Ê¤±¤ì¤Ð¡¢ -Ť¤¥ª¥×¥·¥ç¥ó¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò +\fIlongindex\fP は、NULL でなければ、 +長いオプションのインデックスを .I longopts -¤«¤é¤ÎÁêÂаÌÃ֤Ȥ·¤ÆÊÝ»ý¤·¤Æ¤¤¤ëÊÑ¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤È¤Ê¤ë¡£ +からの相対位置として保持している変数へのポインタとなる。 .PP .BR getopt_long_only () -¤Ï +は .BR getopt_long () -¤ÈƱÍͤÎÆ°ºî¤ò¤¹¤ë¤¬¡¢ \(aq\-\(aq ¤â "\-\-" ¤ÈƱÍͤˡ¢ -Ť¤¥ª¥×¥·¥ç¥ó¤È¤·¤Æ°·¤ï¤ì¤ë¡£\(aq\-\(aq ¤Ç»Ï¤Þ¤ë -("\-\-" °Ê³°¤Î) ¥ª¥×¥·¥ç¥ó¤¬¡¢Ä¹¤¤¤â¤Î¤Ë¤Ï¥Þ¥Ã¥Á¤·¤Ê¤¤¤¬Ã»¤¤¤â¤Î¤Ë -¥Þ¥Ã¥Á¤¹¤ë¾ì¹ç¤Ë¤ª¤¤¤Æ¤Ï¡¢¤½¤ì¤Ïû¤¤¥ª¥×¥·¥ç¥ó¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -¥ª¥×¥·¥ç¥ó¤¬Àµ¾ï¤Ë¸«¤Ä¤«¤ì¤Ð +と同様の動作をするが、 \(aq\-\(aq も "\-\-" と同様に、 +長いオプションとして扱われる。\(aq\-\(aq で始まる +("\-\-" 以外の) オプションが、長いものにはマッチしないが短いものに +マッチする場合においては、それは短いオプションとして解釈される。 +.SH 返り値 +オプションが正常に見つかれば .BR getopt () -¤Ï¤½¤Î¥ª¥×¥·¥ç¥óʸ»ú¤òÊÖ¤¹¡£ -¤¹¤Ù¤Æ¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤Î²òÀϤ¬½ª¤ï¤Ã¤¿¤é¡¢ +はそのオプション文字を返す。 +すべてのコマンドラインオプションの解析が終わったら、 .BR getopt () -¤Ï \-1 ¤òÊÖ¤¹¡£ +は \-1 を返す。 .I optstring -¤Ë´Þ¤Þ¤ì¤Ê¤¤¥ª¥×¥·¥ç¥óʸ»ú¤¬¸«¤Ä¤«¤ë¤È¡¢\(aq?\(aq ¤òÊÖ¤¹¡£ -°ú¤­¿ô¤¬Â­¤ê¤Ê¤¤¥ª¥×¥·¥ç¥ó¤¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç¡¢ -ÊÖ¤êÃÍ¤Ï +に含まれないオプション文字が見つかると、\(aq?\(aq を返す。 +引き数が足りないオプションが見つかった場合、 +返り値は .I optstring -¤ÎºÇ½é¤Îʸ»ú¤Ë¤è¤ë°Û¤Ê¤ë: ºÇ½é¤Îʸ»ú¤¬ \(aq:\(aq ¤Ç¤¢¤ì¤Ð \(aq:\(aq ¤òÊÖ¤·¡¢ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï \(aq?\(aq ¤òÊÖ¤¹¡£ +の最初の文字による異なる: 最初の文字が \(aq:\(aq であれば \(aq:\(aq を返し、 +それ以外の場合は \(aq?\(aq を返す。 .PP .BR getopt_long () -¤È +と .BR getopt_long_only () -¤â¡¢ -û¤¤¥ª¥×¥·¥ç¥óʸ»ú¤òǧ¼±¤·¤¿¾ì¹ç¤Ë¤Ï¤½¤Îʸ»ú¤òÊÖ¤¹¡£ -Ť¤¥ª¥×¥·¥ç¥ó¤ËÂФ·¤Æ¤Ï¡¢ -\fIflag\fP ¤¬ NULL ¤Ê¤é \fIval\fP ¤òÊÖ¤·¡¢ -\fIflag\fP ¤¬ NULL °Ê³°¤Ê¤é 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤È \-1 ¤ÎÊÖ¤êÃÍ¤Ï +も、 +短いオプション文字を認識した場合にはその文字を返す。 +長いオプションに対しては、 +\fIflag\fP が NULL なら \fIval\fP を返し、 +\fIflag\fP が NULL 以外なら 0 を返す。 +エラーと \-1 の返り値は .BR getopt () -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -¤µ¤é¤Ë \(aq?\(aq ¤Ï¡¢¥Þ¥Ã¥Á¤¬³ÎÄê¤Ç¤­¤Ê¤¤¾ì¹ç¤ä;ʬ¤Ê¥Ñ¥é¥á¡¼¥¿¡¼¤¬¤¢¤ë¾ì¹ç¤Ë¤âÊ֤롣 -.SH ´Ä¶­ +と同じである。 +さらに \(aq?\(aq は、マッチが確定できない場合や余分なパラメーターがある場合にも返る。 +.SH 環境 .TP .B POSIXLY_CORRECT -¤³¤ì¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢È󥪥ץ·¥ç¥ó¤Î°ú¤­¿ô¤ËÅþ㤷¤¿»þÅÀ¤Ç¥ª¥×¥·¥ç¥ó -¤ËÂФ¹¤ëÁàºî¤¬Ää»ß¤µ¤ì¤ë¡£ +これが設定されていると、非オプションの引き数に到達した時点でオプション +に対する操作が停止される。 .TP .B __GNU_nonoption_argv_flags_ -¤³¤ÎÊÑ¿ô¤Ï +この変数は .BR bash (1) -2.0 ¤¬ glibc ¤ÈÄÌ¿®¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤¿¡£ -¤É¤Î°ú¤­¿ô¤¬¥ï¥¤¥ë¥É¥«¡¼¥É¤òŸ³«¤·¤¿·ë²Ì¤Ç¡¢ -¤·¤¿¤¬¤Ã¤Æ¥ª¥×¥·¥ç¥ó¤È¤ß¤Ê¤¹¤Ù¤­¤Ç¤Ê¤¤¤«¤òÃΤ餻¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Îµ¡Ç½¤Ï +2.0 が glibc と通信するために用いられた。 +どの引き数がワイルドカードを展開した結果で、 +したがってオプションとみなすべきでないかを知らせるものである。 +この機能は .BR bash (1) -¤Î¥Ð¡¼¥¸¥ç¥ó 2.01 ¤Çºï½ü¤µ¤ì¤¿¤¬¡¢glibc ¤Ë¤Ï¤Þ¤À»Ä¤Ã¤Æ¤¤¤ë¡£ -.SH ½àµò +のバージョン 2.01 で削除されたが、glibc にはまだ残っている。 +.SH 準拠 .TP .BR getopt (): -´Ä¶­ÊÑ¿ô +環境変数 .B POSIXLY_CORRECT -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï POSIX.2 ¤È POSIX.1-2001 ¤Ë½àµò¤¹¤ë¡£ -¾¤Î¾ì¹ç¤Ï \fIargv\fP ¤ÎÍ×ÁǤÏËÜÅö¤Î°ÕÌ£¤Ç¤ÎÄê¿ô¤Ë¤Ï¤Ê¤é¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é½ç½ø¤¬Êѹ¹¤µ¤ì¤Æ¤·¤Þ¤¦¤«¤é¤Ç¤¢¤ë¡£ -¤¿¤À¤·¤½¤ì¤é¤Ï¡¢¥×¥í¥È¥¿¥¤¥×¤Ç¤ÏÄê¿ô¤Ç¤¢¤ë¤«¤Î¤è¤¦¤Ë¤·¤Æ¤¢¤ë¡£ -¤³¤ì¤Ï¾¤Î¥·¥¹¥Æ¥à¤È¤Î¸ß´¹À­¤Î¤¿¤á¤Ç¤¢¤ë¡£ +が設定されている場合は POSIX.2 と POSIX.1-2001 に準拠する。 +他の場合は \fIargv\fP の要素は本当の意味での定数にはならない。 +なぜなら順序が変更されてしまうからである。 +ただしそれらは、プロトタイプでは定数であるかのようにしてある。 +これは他のシステムとの互換性のためである。 .I optstring -¤Ç \(aq+\(aq ¤ä \(aq\-\(aq ¤ò»È¤¦¤Î¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë. +で \(aq+\(aq や \(aq\-\(aq を使うのは GNU による拡張である. -¸Å¤¤¼ÂÁõ¤Î¤¤¤¯¤Ä¤«¤Ç¤Ï¡¢ +古い実装のいくつかでは、 .BR getopt () -¤Ï +は .I -¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤¿¡£ -SUSv1 ¤Ç¤Ï¡¢ +で宣言されていた。 +SUSv1 では、 .I -¤« +か .I -¤Î¤É¤Á¤é¤«¤Ç -Àë¸À¤·¤Æ¤â¤è¤«¤Ã¤¿¡£ -POSIX.1-2001 ¤Ç¤Ï¡¢ +のどちらかで +宣言してもよかった。 +POSIX.1-2001 では、 .B getopt -¤ÎÀë¸À¤ò +の宣言を .I -¤Ç¹Ô¤¦¤Î¤Ï¡Ö²áµî¤Î̾»Ä¡×¤Ç¤¢¤ë¤È¤µ¤ì¤¿¡£ -POSIX.1-2001 ¤Ç¤Ï +で行うのは「過去の名残」であるとされた。 +POSIX.1-2001 では .I -¤ÇÀë¸À¤ò¹Ô¤¦¤³¤È¤òǧ¤á¤Æ¤¤¤Ê¤¤¡£ +で宣言を行うことを認めていない。 .TP .BR getopt_long "(), " getopt_long_only (): -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -Ê£¿ô¤Î°ú¤­¿ô¥Ù¥¯¥È¥ë¤ò¥¹¥­¥ã¥ó¤·¤¿¤ê¡¢Æ±¤¸°ú¤­¿ô¥Ù¥¯¥È¥ë¤òÆó²ó°Ê¾å -¥¹¥­¥ã¥ó¤¹¤ë¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ç¡¢ +これらの関数は GNU による拡張である。 +.SH 注意 +複数の引き数ベクトルをスキャンしたり、同じ引き数ベクトルを二回以上 +スキャンするようなプログラムで、 .I optstring -¤ÎÀèƬ¤Ç \(aq+\(aq ¤ä \(aq\-\(aq ¤È¤¤¤Ã¤¿ GNU ¤Ë¤è¤ë³ÈÄ¥µ¡Ç½¤ò»ÈÍѤ·¤¿¤ê¡¢ -°ú¤­¿ô¥Ù¥¯¥È¥ë¤ÎÀÚ¤êÂؤ¨»þ¤Ë +の先頭で \(aq+\(aq や \(aq\-\(aq といった GNU による拡張機能を使用したり、 +引き数ベクトルの切り替え時に .B POSIXLY_CORRECT -¤ÎÃͤòÊѹ¹¤·¤¿¤ê¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢ +の値を変更したりする場合には、 .I optind -¤òÅÁÅýŪ¤Ê 1 ¤Ç¤Ï¤Ê¤¯ 0 ¤Ë¥ê¥»¥Ã¥È¤¹¤ë¤³¤È¤Ç +を伝統的な 1 ではなく 0 にリセットすることで .BR getopt () -¤òºÆ½é´ü²½¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(0 ¤Ë¥ê¥»¥Ã¥È¤¹¤ë¤³¤È¤Ç¡¢ +を再初期化しなければならない +(0 にリセットすることで、 .B POSIXLY_CORRECT -¤ä +や .I optstring -¤Î GNU ³ÈÄ¥µ¡Ç½¤Î¥Á¥§¥Ã¥¯¤ò¹Ô¤¦ÆâÉô½é´ü²½¥ë¡¼¥Á¥ó¤¬µ¯Æ°¤µ¤ì¤ë)¡£ -.SH ¥Ð¥° -POSIX.2 ¤Ë¤ª¤±¤ë +の GNU 拡張機能のチェックを行う内部初期化ルーチンが起動される)。 +.SH バグ +POSIX.2 における .BR getopt () -¤Î»ÅÍͤˤϵ»½ÑŪ¤ÊÌäÂ꤬¤¢¤ê¡¢ -¤½¤ÎÆâÍÆ¤Ï POSIX.2 Interpretation 150 ¤Ëµ­¤µ¤ì¤Æ¤¤¤ë¡£ -GNU ¤Ë¤è¤ë¼ÂÁõ¤Ç¤Ï (¤ª¤½¤é¤¯Â¾¤Î¤¹¤Ù¤Æ¤Î¼ÂÁõ¤Ç¤â)¡¢ -»ÅÍͤȰۤʤëÀµ¤·¤¤Æ°ºî¤ò¤¹¤ë¤è¤¦¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Îã -°Ê²¼¤Ë¼¨¤¹´Êñ¤Ê¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ -Æó¼ïÎà¤Î¥×¥í¥°¥é¥à¥ª¥×¥·¥ç¥ó¤ò°·¤¦¤Î¤Ë +の仕様には技術的な問題があり、 +その内容は POSIX.2 Interpretation 150 に記されている。 +GNU による実装では (おそらく他のすべての実装でも)、 +仕様と異なる正しい動作をするように実装されている。 +.SH 例 +以下に示す簡単なサンプルプログラムでは、 +二種類のプログラムオプションを扱うのに .BR getopt () -¤ò»ÈÍѤ·¤Æ¤¤¤ë¡£°ì¤Ä¤ÏÃͤòȼ¤ï¤Ê¤¤ +を使用している。一つは値を伴わない .I \-n -¤Ç¡¢¤â¤¦°ì¤Ä¤ÏÂбþ¤¹¤ëÃͤ¬É¬Í×¤Ê +で、もう一つは対応する値が必要な .I "\-t val" -¤Ç¤¢¤ë¡£ +である。 .nf .sp #include @@ -438,9 +438,9 @@ main(int argc, char *argv[]) } .fi .PP -°Ê²¼¤Ï¡¢ +以下は、 .BR getopt_long () -¤Î»ÈÍÑË¡¤ò¡¢¤Û¤Ü¤¹¤Ù¤Æ¤Îµ¡Ç½¤Ë¤Ä¤¤¤Æ¼¨¤·¤¿¥×¥í¥°¥é¥à¤ÎÎã¤Ç¤¢¤ë¡£ +の使用法を、ほぼすべての機能について示したプログラムの例である。 .nf .sp #include /* for printf */ @@ -521,5 +521,5 @@ main(int argc, char **argv) { exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getsubopt (3) diff --git a/release/man3/getpass.3 b/release/man3/getpass.3 index 2574168c..e72b3339 100644 --- a/release/man3/getpass.3 +++ b/release/man3/getpass.3 @@ -26,17 +26,17 @@ .\" Updated&Modified Fri 9 Feb 2001 by NAKANO Takeo .\" .TH GETPASS 3 2010-09-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -getpass \- ¥Ñ¥¹¥ï¡¼¥É¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +getpass \- パスワードを取得する +.SH 書式 .B #include .sp .BI "char *getpass( const char *" prompt ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR getpass (): @@ -44,7 +44,7 @@ glibc .RS 4 .PD 0 .TP 4 -glibc 2.2.2 °Ê¹ß: +glibc 2.2.2 以降: .nf _BSD_SOURCE || (_XOPEN_SOURCE\ >=\ 500 || @@ -52,112 +52,112 @@ _BSD_SOURCE || !(_POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600) .fi .TP 4 -glibc 2.2.2 ¤è¤êÁ°: ¤Ê¤· +glibc 2.2.2 より前: なし .PD .RE .ad b -.SH ÀâÌÀ -¤³¤Î´Ø¿ô¤Ï obsolete ¤Ç¤¢¤ë¡£ÍѤ¤¤Ê¤¤¤³¤È¡£ +.SH 説明 +この関数は obsolete である。用いないこと。 .PP .BR getpass () -´Ø¿ô¤Ï +関数は .I /dev/tty -(¥×¥í¥»¥¹¤ÎÀ©¸æüËö) ¤ò¥ª¡¼¥×¥ó¤·¡¢Ê¸»úÎó +(プロセスの制御端末) をオープンし、文字列 .I prompt -¤ò½ÐÎϤ¹¤ë¡£¤½¤·¤Æ echo ¤ò¥ª¥Õ¤Ë¤·¡¢°ì¹Ô (¡Ö¥Ñ¥¹¥ï¡¼¥É¡×) -¤òÆɤ߹þ¤ß¡¢Ã¼Ëö¤Î¾õÂÖ¤ò¸µ¤ËÌᤷ¤Æ¡¢ºÆ¤Ó +を出力する。そして echo をオフにし、一行 (「パスワード」) +を読み込み、端末の状態を元に戻して、再び .I /dev/tty -¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ +をクローズする。 +.SH 返り値 .BR getpass () -´Ø¿ô¤ÏÆþÎϤµ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É -(¤ÎºÇ½é¤Î +関数は入力されたパスワード +(の最初の .B PASS_MAX -¥Ð¥¤¥È¤Þ¤Ç) ¤¬½ñ¤­¤³¤Þ¤ì¤¿¡¢ -¥¹¥¿¥Æ¥£¥Ã¥¯¤Ê¥Ð¥Ã¥Õ¥¡¡¼¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£ -ËöÈø¤Î²þ¹Ô¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£¤³¤Îʸ»úÎó¤Ï NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Ç½ªÃ¼¤µ¤ì¤ë¡£ -¤³¤Î¥Ð¥Ã¥Õ¥¡¡¼¤Ï¡¢°Ê¹ß¤Î´Ø¿ô¥³¡¼¥ë¤Ç¾å½ñ¤­¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¥¨¥é¡¼¤¬µ¯¤³¤ë¤È¡¢Ã¼Ëö¤Î¾õÂÖ¤òÉü¸µ¤·¡¢ +バイトまで) が書きこまれた、 +スタティックなバッファーへのポインターを返す。 +末尾の改行は含まれない。この文字列は NULL バイト (\(aq\\0\(aq) で終端される。 +このバッファーは、以降の関数コールで上書きされるかもしれない。 +エラーが起こると、端末の状態を復元し、 .I errno -¤òŬÀÚ¤ÊÃͤËÀßÄꤷ¤Æ¡¢NULL ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -¤³¤Î´Ø¿ô¤Ï°Ê²¼¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¼ºÇÔ¤·¤¦¤ë¡£ +を適切な値に設定して、NULL を返す。 +.SH エラー +この関数は以下のような場合に失敗しうる。 .TP .B ENXIO -¥×¥í¥»¥¹¤¬À©¸æüËö¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -.SH ¥Õ¥¡¥¤¥ë +プロセスが制御端末を持っていない。 +.SH ファイル .I /dev/tty -.\" .SH ÍúÎò +.\" .SH 履歴 .\" .BR getpass () -.\" ´Ø¿ô¤Ï Version 7 AT&T UNIX ¤ÇÅо줷¤¿¡£ -.SH ½àµò -SUSv2 ¤Ë¤Ï¸ºß¤¹¤ë¤¬¡¢²áµî¤Î̾»Ä (LEGACY) ¤È°ÌÃÖÉÕ¤±¤é¤ì¤Æ¤¤¤ë¡£ -POSIX.1-2001 ¤Çºï½ü¤µ¤ì¤¿¡£ -.SH Ãí°Õ -libc4 ¤È libc5 ¤Ç¤Ï¡¢ +.\" 関数は Version 7 AT&T UNIX で登場した。 +.SH 準拠 +SUSv2 には存在するが、過去の名残 (LEGACY) と位置付けられている。 +POSIX.1-2001 で削除された。 +.SH 注意 +libc4 と libc5 では、 .I prompt -¤Ï +は .I /dev/tty -¤Ë¤Ç¤Ï¤Ê¤¯ +にではなく .I stderr -¤Ë½ÐÎϤµ¤ì¤¿¡£¤µ¤é¤Ë¡¢ +に出力された。さらに、 .I /dev/tty -¤¬¥ª¡¼¥×¥ó¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¡¢¥Ñ¥¹¥ï¡¼¥É¤Ï +がオープンできない場合は、パスワードは .I stdin -¤«¤éÆɤ߹þ¤Þ¤ì¤¿¡£ -¥¹¥¿¥Æ¥£¥Ã¥¯¤Ê¥Ð¥Ã¥Õ¥¡¡¼¤ÎŤµ¤Ï 128 ¥Ð¥¤¥È¤À¤Ã¤¿¤Î¤Ç¡¢ -¥Ñ¥¹¥ï¡¼¥É¤ÎºÇ½é¤Î 127 ʸ»ú¤À¤±¤¬ÊÖ¤µ¤ì¤¿¡£ -¥Ñ¥¹¥ï¡¼¥É¤òÆɤó¤Ç¤¤¤ëÅÓÃæ¤Ë¤Ï¡¢¥·¥°¥Ê¥ë¤Îȯ¹Ô +から読み込まれた。 +スタティックなバッファーの長さは 128 バイトだったので、 +パスワードの最初の 127 文字だけが返された。 +パスワードを読んでいる途中には、シグナルの発行 .RB ( SIGINT , .BR SIGQUIT , .BR SIGSTOP , .BR SIGSTOP ) -¤Ï̵¸ú¤Ë¤µ¤ì¡¢ -¤½¤ì¤¾¤ì¤ËÂбþ¤¹¤ëʸ»ú (Ä̾ï¤Ï Ctrl-C, Ctrl-\e, Ctrl-Z, Ctrl-Y) -¤Ï¤½¤Î¤Þ¤Þ¥Ñ¥¹¥ï¡¼¥É¤Î°ìÉô¤È¤·¤ÆÅϤµ¤ì¤¿¡£ -libc 5.4.19 ¤«¤é¤Ï¹ÔÊÔ½¸¤¬Ìµ¸ú¤Ë¤µ¤ì¡¢ -¤·¤¿¤¬¤Ã¤Æ¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹¤Ê¤É¤â¥Ñ¥¹¥ï¡¼¥É¤Î°ìÉô¤È¤ß¤Ê¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ +は無効にされ、 +それぞれに対応する文字 (通常は Ctrl-C, Ctrl-\e, Ctrl-Z, Ctrl-Y) +はそのままパスワードの一部として渡された。 +libc 5.4.19 からは行編集が無効にされ、 +したがってバックスペースなどもパスワードの一部とみなされるようになった。 .PP -glibc2 ¤Ç¤Ï¡¢ +glibc2 では、 .I /dev/tty -¤¬¥ª¡¼¥×¥ó¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï +がオープンできない場合は .I prompt -¤Ï +は .I stderr -¤Ë½ñ¤­½Ð¤µ¤ì¡¢¥Ñ¥¹¥ï¡¼¥É¤Ï +に書き出され、パスワードは .I stdin -¤«¤éÆɤ߹þ¤Þ¤ì¤¿¡£ -¥Ñ¥¹¥ï¡¼¥É¤ÎŤµ¤Ë¤ÏÀ©¸Â¤Ï¤Ê¤¯¡¢ -¹ÔÊÔ½¸¤â̵¸ú¤Ë¤Ï¤µ¤ì¤Ê¤«¤Ã¤¿¡£ +から読み込まれた。 +パスワードの長さには制限はなく、 +行編集も無効にはされなかった。 .PP -SUSv2 ¤Ë¤è¤ì¤Ð¡¢ +SUSv2 によれば、 .B PASS_MAX -¤ÎÃͤ¬ 8 °Ê²¼¤Î¾ì¹ç¤Ï¡¢¤³¤ÎÃÍ¤Ï +の値が 8 以下の場合は、この値は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤¤¤º¤ì¤Î¾ì¹ç¤Ç¤â¤³¤ÎÃÍ¤Ï +で定義されていなければならない。 +いずれの場合でもこの値は .I sysconf(_SC_PASS_MAX) -¤Ë¤è¤Ã¤Æ¼èÆÀ¤Ç¤­¤ë¡£ -¤·¤«¤·¡¢POSIX.2 ¤ÏÄê¿ô +によって取得できる。 +しかし、POSIX.2 は定数 .BR PASS_MAX , .B _SC_PASS_MAX -¤È´Ø¿ô +と関数 .BR getpass () -¤ò¼è¤ê²¼¤²¤¿¡£ -libc4 ¤È libc5 ¤Ç¤Ï¡¢ +を取り下げた。 +libc4 と libc5 では、 .B PASS_MAX -¤È +と .B _SC_PASS_MAX -¤Ï°ìÅ٤⥵¥Ý¡¼¥È¤µ¤ì¤¿¤³¤È¤Ï¤Ê¤¤¡£ -glibc2 ¤Ï +は一度もサポートされたことはない。 +glibc2 は .B _SC_PASS_MAX -¤ò¼õÉÕ¤±¡¢ +を受付け、 .B BUFSIZE -(Î㤨¤Ð 8192) ¤òÊÖ¤¹¡£ -.SH ¥Ð¥° -¤³¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¡¢ -¤Ç¤­¤ë¸Â¤êÁ᤯¤½¤Î¥Ñ¥¹¥ï¡¼¥É¤ò¾Ãµî (¥¼¥í¥¯¥ê¥¢) ¤·¡¢ -¥¯¥ê¥¢¥Æ¥­¥¹¥È¤Î¥Ñ¥¹¥ï¡¼¥É¤¬ -¤½¤Î¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ç¸«¤¨¤Ê¤¤¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +(例えば 8192) を返す。 +.SH バグ +この関数を呼び出したプロセスは、 +できる限り早くそのパスワードを消去 (ゼロクリア) し、 +クリアテキストのパスワードが +そのプロセスのアドレス空間で見えないようにすべきである。 +.SH 関連項目 .BR crypt (3) diff --git a/release/man3/getprotoent.3 b/release/man3/getprotoent.3 index 422546ed..65aec1be 100644 --- a/release/man3/getprotoent.3 +++ b/release/man3/getprotoent.3 @@ -31,10 +31,10 @@ .\" Updated 2008-09-19, Akihiro MOTOKI .\" .TH GETPROTOENT 3 2008-08-19 "GNU" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 getprotoent, getprotobyname, getprotobynumber, setprotoent, endprotoent \- -¥×¥í¥È¥³¥ë¤Î¥¨¥ó¥È¥ê¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +プロトコルのエントリを取得する +.SH 書式 .nf .B #include .sp @@ -48,37 +48,37 @@ getprotoent, getprotobyname, getprotobynumber, setprotoent, endprotoent \- .sp .B void endprotoent(void); .fi -.SH ÀâÌÀ +.SH 説明 .BR getprotoent () -´Ø¿ô¤Ï¡¢¥×¥í¥È¥³¥ë¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹ +関数は、プロトコルのデータベース .RB ( protocols (5) -»²¾È) ¤«¤é¼¡¤Î¥¨¥ó¥È¥ê¤òÆɤ߹þ¤ß¡¢ -¤½¤Î¥¨¥ó¥È¥ê¤ò \fIprotoent\fP ¹½Â¤ÂΤÎÍ×ÁÇÊ̤Υե£¡¼¥ë¥É¤Ë³ÊǼ¤·¡¢ -¤½¤Î¹½Â¤ÂΤòÊÖ¤¹¡£ -ɬÍפǤ¢¤ì¤Ð¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤¬¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£ +参照) から次のエントリを読み込み、 +そのエントリを \fIprotoent\fP 構造体の要素別のフィールドに格納し、 +その構造体を返す。 +必要であれば、データベースへの接続がオープンされる。 .PP .BR getprotobyname () -´Ø¿ô¤Ï¡¢¥×¥í¥È¥³¥ë̾ \fIname\fP ¤Ë¥Þ¥Ã¥Á¤¹¤ë¥¨¥ó¥È¥ê¤ò -¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éõ¤·¡¢¤½¤Î¥¨¥ó¥È¥ê¤ò¼ý¤á¤¿ \fIprotoent\fP ¹½Â¤ÂΤòÊÖ¤¹¡£ -ɬÍפǤ¢¤ì¤Ð¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤¬¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£ +関数は、プロトコル名 \fIname\fP にマッチするエントリを +データベースから探し、そのエントリを収めた \fIprotoent\fP 構造体を返す。 +必要であれば、データベースへの接続がオープンされる。 .PP .BR getprotobynumber () -´Ø¿ô¤Ï¡¢¥×¥í¥È¥³¥ëÈÖ¹æ \fInumber\fP ¤Ë¥Þ¥Ã¥Á¤¹¤ë¥¨¥ó¥È¥ê¤ò -¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éõ¤·¡¢¤½¤Î¥¨¥ó¥È¥ê¤ò¼ý¤á¤¿ \fIprotoent\fP ¹½Â¤ÂΤòÊÖ¤¹¡£ -ɬÍפǤ¢¤ì¤Ð¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤¬¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£ +関数は、プロトコル番号 \fInumber\fP にマッチするエントリを +データベースから探し、そのエントリを収めた \fIprotoent\fP 構造体を返す。 +必要であれば、データベースへの接続がオープンされる。 .PP .BR setprotoent () -´Ø¿ô¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤ò¥ª¡¼¥×¥ó¤·¡¢ -¼¡¤ÎÆɤ߹þ¤ß¥¨¥ó¥È¥ê¤òÀèƬ¤Î¥¨¥ó¥È¥ê¤ËÀßÄꤹ¤ë¡£ -\fIstayopen\fP ¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¡¢ -°ì¤Ä°ì¤Ä¤Î +関数はデータベースへの接続をオープンし、 +次の読み込みエントリを先頭のエントリに設定する。 +\fIstayopen\fP が 0 でない場合、 +一つ一つの .BR getproto* () -´Ø¿ô¤Î¸Æ¤Ó½Ð¤·´Ö¤Ç¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤ò¥¯¥í¡¼¥º¤·¤Ê¤¤¡£ +関数の呼び出し間でデータベースへの接続をクローズしない。 .PP .BR endprotoent () -´Ø¿ô¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +関数はデータベースへの接続をクローズする。 .PP -\fIprotoent\fP ¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +\fIprotoent\fP 構造体は \fI\fP で以下のように定義されている。 .sp .in +4n .nf @@ -90,34 +90,34 @@ struct protoent { .fi .in .PP -\fIprotoent\fP ¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤Ï°Ê²¼¤ÎÄ̤ꡣ +\fIprotoent\fP 構造体のメンバーは以下の通り。 .RS .TP 12 .I p_name -¥×¥í¥È¥³¥ë¤ÎÀµ¼°Ì¾ (official name)¡£ +プロトコルの正式名 (official name)。 .TP .I p_aliases -¥×¥í¥È¥³¥ë¤ÎÊÌ̾¤Î¥ê¥¹¥È¡£ -¥ê¥¹¥È¤Ï NULL ¤Ç½ªÃ¼¤µ¤ì¤ë¡£ +プロトコルの別名のリスト。 +リストは NULL で終端される。 .TP .I p_proto -¥×¥í¥È¥³¥ë¤ÎÈÖ¹æ +プロトコルの番号 .RE -.SH ÊÖ¤êÃÍ +.SH 返り値 .BR getprotoent (), .BR getprotobyname (), .BR getprotobynumber () -´Ø¿ô¤Ï¡¢ÀÅŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿ \fIprotoent\fP ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¤ê¡¢¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤Ë㤷¤¿¾ì¹ç¤Ï NULL ¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -.SH ¥Õ¥¡¥¤¥ë +関数は、静的に割り当てられた \fIprotoent\fP 構造体へのポインタを返す。 +エラーが起こったり、ファイルの最後に達した場合は NULL ポインタを返す。 +.SH ファイル .PD 0 .TP .I /etc/protocols -¥×¥í¥È¥³¥ë¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë +プロトコルのデータベースファイル .PD -.SH ½àµò +.SH 準拠 4.3BSD, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getnetent (3), .BR getprotoent_r (3), .BR getservent (3), diff --git a/release/man3/getpt.3 b/release/man3/getpt.3 index 98b12cd2..9d5c3190 100644 --- a/release/man3/getpt.3 +++ b/release/man3/getpt.3 @@ -7,51 +7,51 @@ .\" Translated Tue Jul 8 01:44:54 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: pseudoterminal µ¼»÷üËö -.\"WORD: specific Æȼ«¤Î +.\"WORD: pseudoterminal 擬似端末 +.\"WORD: specific 独自の .\" .TH GETPT 3 2010-09-10 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -getpt \- µ¼»÷üËö¥Þ¥¹¥¿ (PTM) ¤ò¥ª¡¼¥×¥ó¤¹¤ë -.SH ½ñ¼° +.SH 名前 +getpt \- 擬似端末マスタ (PTM) をオープンする +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .B "int getpt(void);" .fi -.SH ÀâÌÀ +.SH 説明 .BR getpt () -¤Ï¡¢µ¼»÷üËö¥Þ¥¹¥¿¤ò¥ª¡¼¥×¥ó¤·¡¢¤½¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¤³¤ì¤Ï¡¢ Linux ¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¤Ï +は、擬似端末マスタをオープンし、そのファイル・ディスクリプタを返す。 +これは、 Linux システムにおいては .nf open(/dev/ptmx, O_RDWR | O_NOCTTY); .fi -¤ÈÅù²Á¤Ç¤¢¤ë¡£Ã¢¤·¡¢ GNU Libc ¤ò»ÈÍѤ·¤Æ¤¤¤Æ¤â¡¢ -µ¼»÷üËö¥Þ¥¹¥¿¤¬¤É¤³¤«Â¾¤Î¾ì½ê¤Ë¤¢¤ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +と等価である。但し、 GNU Libc を使用していても、 +擬似端末マスタがどこか他の場所にあるシステムもある。 +.SH 返り値 +成功した場合、 .BR getpt () -¤Ï¥ª¡¼¥×¥ó¤·¤¿¥Õ¥¡¥¤¥ë¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +はオープンしたファイルのディスクリプタを返す。 +そうでない場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値がセットされる。 +.SH エラー .BR getpt () -¤Ï +は .BR open (2) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¼ï¡¹¤Î¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +で説明されている種々のエラーで失敗する可能性がある。 +.SH バージョン .BR getpt () -¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò +は、バージョン 2.1 以降の glibc で提供されている。 +.SH 準拠 .BR getpt () -¤Ï glibc Æȼ«¤Ç¤¢¤ë¡£Âå¤ï¤ê¤Ë +は glibc 独自である。代わりに .BR posix_openpt (3) -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を使用すること。 +.SH 関連項目 .BR grantpt (3), .BR posix_openpt (3), .BR ptsname (3), diff --git a/release/man3/getpw.3 b/release/man3/getpw.3 index 78922e61..c855bd97 100644 --- a/release/man3/getpw.3 +++ b/release/man3/getpw.3 @@ -35,27 +35,27 @@ .\" Modified 2008-07-23, Kentaro Shirakata .\" .TH GETPW 3 2010-10-21 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -getpw \- ¥Ñ¥¹¥ï¡¼¥É¹Ô¥¨¥ó¥È¥ê¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +getpw \- パスワード行エントリを取得する +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .B #include .sp .BI "int getpw(uid_t " uid ", char *" buf ); .fi -.SH ÀâÌÀ +.SH 説明 .BR getpw () -´Ø¿ô¤Ï¡¢¥Ð¥Ã¥Õ¥¡ \fIbuf\fP ¤Ë»ØÄê¥æ¡¼¥¶ ID \fIuid\fP ¤Î -¥Ñ¥¹¥ï¡¼¥É¹Ô¥¨¥ó¥È¥ê¤ò¼èÆÀ¤¹¤ë¡£ -ÊÖ¤µ¤ì¤ë¥Ð¥Ã¥Õ¥¡¤Ï¡¢°Ê²¼¤Î·Á¼°¤Î¹Ô¤ò´Þ¤à¡£ +関数は、バッファ \fIbuf\fP に指定ユーザ ID \fIuid\fP の +パスワード行エントリを取得する。 +返されるバッファは、以下の形式の行を含む。 .sp .in +4n .B name:passwd:uid:gid:gecos:dir:shell .in .PP -\fIpasswd\fP ¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +\fIpasswd\fP 構造体は \fI\fP で以下のように定義されている: .sp .in +4n .nf @@ -71,43 +71,43 @@ struct passwd { .fi .in .PP -¤³¤Î¹½Â¤ÂΤΥե£¡¼¥ë¥É¤Î¾ÜºÙ¤Ï +この構造体のフィールドの詳細は .BR passwd (5) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ +を参照のこと。 +.SH 返り値 .BR getpw () -´Ø¿ô¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç 0 ¤òÊÖ¤¹; ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç \-1 ¤òÊÖ¤·¡¢¥¨¥é¡¼¤ò -¼¨¤¹¤¿¤á¤Ë +関数は、成功した場合 0 を返す; エラーが発生した場合 \-1 を返し、エラーを +示すために .I error -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +がセットされる。 +.SH エラー .TP .B EINVAL .I buf -¤¬ NULL¡£ +が NULL。 .TP .B ENOENT .I uid -¤ËÂбþ¤¹¤ë¥æ¡¼¥¶¤¬¤¤¤Ê¤¤¡£ +に対応するユーザがいない。 .TP .B ENOMEM .I passwd -¹½Â¤ÂΤò³ä¤êÅö¤Æ¤ë¤¿¤á¤Î¥á¥â¥ê¤¬ÉÔ½½Ê¬¡£ -.SH ¥Õ¥¡¥¤¥ë +構造体を割り当てるためのメモリが不十分。 +.SH ファイル .TP .I /etc/passwd -¥Ñ¥¹¥ï¡¼¥É¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë -.SH ½àµò +パスワードデータベースファイル +.SH 準拠 SVr2 -.SH ¥Ð¥° +.SH バグ .BR getpw () -´Ø¿ô¤Ï¡¢Í¿¤¨¤é¤ì¤¿¥Ð¥Ã¥Õ¥¡ +関数は、与えられたバッファ .I buf -¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¤Î¤Ç´í¸±¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï +がオーバーフローするかもしれないので危険である。 +この関数は .BR getpwuid (3) -¤Ë¤è¤Ã¤Æ¸Å¤¤¤â¤Î¤È¤Ê¤Ã¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +によって古いものとなった。 +.SH 関連項目 .BR endpwent (3), .BR fgetpwent (3), .BR getpwent (3), diff --git a/release/man3/getpwent.3 b/release/man3/getpwent.3 index d6179e58..0cc11b4a 100644 --- a/release/man3/getpwent.3 +++ b/release/man3/getpwent.3 @@ -34,9 +34,9 @@ .\" Updated 2005-09-06, Akihiro MOTOKI .\" .TH GETPWENT 3 2010-10-21 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -getpwent, setpwent, endpwent \- ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥È¥ê¤Î¼èÆÀ -.SH ½ñ¼° +.SH 名前 +getpwent, setpwent, endpwent \- パスワードファイルのエントリの取得 +.SH 書式 .nf .B #include .B #include @@ -49,9 +49,9 @@ getpwent, setpwent, endpwent \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -63,100 +63,100 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR getpwent () -´Ø¿ô¤Ï¡¢¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¼èÆÀ¤·¤¿¥¨¥ó¥È¥ê¤ò -Í×ÁÇËè¤Ëʬ²ò¤·¡¢³ÆÍ×ÁǤò³ÊǼ¤·¤¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹ -(¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÎã: -¥í¡¼¥«¥ë¤Î¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë +関数は、パスワード・データベースから取得したエントリを +要素毎に分解し、各要素を格納した構造体へのポインタを返す +(パスワード・データベースの例: +ローカルのパスワードファイル .IR /etc/passwd , -NIS, LDAP)¡£ +NIS, LDAP)。 .BR getpwent () -¤Ï¡¢ºÇ½é¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿»þ¤ÏºÇ½é¤Î¥¨¥ó¥È¥ê¤òÊÖ¤·¡¢¤½¤ì°Ê¹ß¤Ï -¸Æ¤Ó½Ð¤µ¤ì¤ëËè¤Ë¼¡¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£ +は、最初に呼び出された時は最初のエントリを返し、それ以降は +呼び出される毎に次のエントリを返す。 .PP .BR setpwent () -´Ø¿ô¤ò»È¤¦¤È¡¢¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÀèƬ¤ËÌá¤ë¡£ +関数を使うと、パスワード・データベースの先頭に戻る。 .PP .BR endpwent () -´Ø¿ô¤Ï¡¢Á´¤Æ¤Î½èÍý¤¬½ª¤ï¤Ã¤¿¸å¤Ë¥Ñ¥¹¥ï¡¼¥É¡¦ -¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +関数は、全ての処理が終わった後にパスワード・ +データベースをクローズする。 .PP -\fIpasswd\fP ¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +\fIpasswd\fP 構造体は \fI\fP で以下のように定義されている: .sp .in +4n .nf struct passwd { - char *pw_passwd; /* ¥æ¡¼¥¶¤Î¥Ñ¥¹¥ï¡¼¥É */ - uid_t pw_uid; /* ¥æ¡¼¥¶ ID */ - gid_t pw_gid; /* ¥°¥ë¡¼¥× ID */ - char *pw_gecos; /* ¥æ¡¼¥¶¾ðÊó */ - char *pw_dir; /* ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê */ - char *pw_shell; /* ¥·¥§¥ë¥×¥í¥°¥é¥à */ + char *pw_passwd; /* ユーザのパスワード */ + uid_t pw_uid; /* ユーザ ID */ + gid_t pw_gid; /* グループ ID */ + char *pw_gecos; /* ユーザ情報 */ + char *pw_dir; /* ホームディレクトリ */ + char *pw_shell; /* シェルプログラム */ }; .fi .in .PP -¤³¤Î¹½Â¤ÂΤΥե£¡¼¥ë¥É¤Î¾ÜºÙ¤Ï +この構造体のフィールドの詳細は .BR passwd (5) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ +を参照のこと。 +.SH 返り値 .BR getpwent () -´Ø¿ô¤Ï +関数は .I passwd -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤ì°Ê¾å¥¨¥ó¥È¥ê¤¬Ìµ¤¤¤«¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤È¡¢ +構造体へのポインタを返す。 +これ以上エントリが無いか、エラーが発生した場合は NULL を返す。 +エラーが発生すると、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -¤³¤Î´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¸å¤Ë +が適切に設定される。 +この関数の呼び出し後に .I errno -¤ò¥Á¥§¥Ã¥¯¤·¤¿¤¤¾ì¹ç¤Ï¡¢¸Æ¤Ó½Ð¤·Á°¤Ë +をチェックしたい場合は、呼び出し前に .I errno -¤ò 0 ¤ËÀßÄꤷ¤Æ¤ª¤«¤Ê¤¤¤È¤¤¤±¤Ê¤¤¡£ +を 0 に設定しておかないといけない。 -ÊÖ¤êÃͤÏÀÅŪ¤ÊÎΰè¤ò»Ø¤·¤Æ¤ª¤ê¡¢¤½¤Î¸å¤Î +返り値は静的な領域を指しており、その後の .BR getpwent (), .BR getpwnam (3), .BR getpwuid (3) -¤Î¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -(ÊÖ¤µ¤ì¤¿¥Ý¥¤¥ó¥¿¤ò +の呼び出しで上書きされるかもしれない。 +(返されたポインタを .BR free (3) -¤ËÅϤµ¤Ê¤¤¤³¤È¡£) -.SH ¥¨¥é¡¼ +に渡さないこと。) +.SH エラー .TP .B EINTR -¥·¥°¥Ê¥ë¤¬Ê᪤µ¤ì¤¿¡£ +シグナルが捕捉された。 .TP .B EIO -Æþ½ÐÎÏ¥¨¥é¡¼¡£ +入出力エラー。 .TP .B EMFILE -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¿ô¤¬ -¤¹¤Ç¤Ë¾å¸Â +呼び出し元プロセスがオープンされているファイル数が +すでに上限 .RB ( OPEN_MAX ) -¤Ç¤¢¤Ã¤¿¡£ +であった。 .TP .B ENFILE -¥·¥¹¥Æ¥à¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¿ô¤¬¤¹¤Ç¤Ë¾å¸Â¤Ç¤¢¤Ã¤¿¡£ +システムでオープンされているファイル数がすでに上限であった。 .TP .B ENOMEM -.\" POSIX ¤Ë¤Ï¤Ê¤¤¡£ +.\" POSIX にはない。 .I passwd -¹½Â¤ÂΤ˳ä¤êÅö¤Æ¤ë¥á¥â¥ê¤¬½½Ê¬¤Ê¤«¤Ã¤¿¡£ +構造体に割り当てるメモリが十分なかった。 .TP .B ERANGE -½½Ê¬¤Ê¥Ð¥Ã¥Õ¥¡¶õ´Ö¤¬¤Ê¤¤¡£ -.SH ¥Õ¥¡¥¤¥ë +十分なバッファ空間がない。 +.SH ファイル .TP .I /etc/passwd -¥í¡¼¥«¥ë¤Î¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë -.SH ½àµò +ローカルのパスワード・データベースファイル +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. .I pw_gecos -¥Õ¥£¡¼¥ë¥É¤Ï POSIX ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -¤Û¤È¤ó¤É¤Î¼ÂÁõ¤Ë¸ºß¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +フィールドは POSIX では規定されていないが、 +ほとんどの実装に存在する。 +.SH 関連項目 .BR fgetpwent (3), .BR getpw (3), .BR getpwent_r (3), diff --git a/release/man3/getpwent_r.3 b/release/man3/getpwent_r.3 index 028c9207..8d733fd6 100644 --- a/release/man3/getpwent_r.3 +++ b/release/man3/getpwent_r.3 @@ -26,10 +26,10 @@ .\" by Yuichi SATO .\" .TH GETPWENT_R 3 2010-10-21 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -getpwent_r, fgetpwent_r \- ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥È¥ê¤ò -¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¼è¤ê½Ð¤¹ -.SH ½ñ¼° +.SH 名前 +getpwent_r, fgetpwent_r \- パスワードファイルのエントリを +リエントラントで取り出す +.SH 書式 .nf .B #include .sp @@ -43,9 +43,9 @@ getpwent_r, fgetpwent_r \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR getpwent_r (), @@ -53,84 +53,84 @@ _BSD_SOURCE || _SVID_SOURCE .br .BR fgetpwent_r (): _SVID_SOURCE -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR getpwent_r () -¤È +と .BR fgetpwent_r () -¤Ï +は .BR getpwent (3) -¤È +と .BR fgetpwent (3) -¤Î¥ê¥¨¥ó¥È¥é¥ó¥È (reentrant) ÈǤǤ¢¤ë¡£ -Á°¼Ô¤Ï¡¢ +のリエントラント (reentrant) 版である。 +前者は、 .BR setpwent (3) -¤Ë¤è¤Ã¤Æ½é´ü²½¤µ¤ì¤¿¥¹¥È¥ê¡¼¥à¤«¤é¡¢¼¡¤Î¥Ñ¥¹¥ï¡¼¥É¥¨¥ó¥È¥ê¤òÆɤ߹þ¤à¡£ -¸å¼Ô¤Ï¡¢¥¹¥È¥ê¡¼¥à +によって初期化されたストリームから、次のパスワードエントリを読み込む。 +後者は、ストリーム .I fp -¤«¤é¼¡¤Î¥Ñ¥¹¥ï¡¼¥É¥¨¥ó¥È¥ê¤òÆɤ߹þ¤à¡£ +から次のパスワードエントリを読み込む。 .PP -\fIpasswd\fP ¹½Â¤ÂÎ¤Ï +\fIpasswd\fP 構造体は .I -¤Ë¤ª¤¤¤Æ°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +において以下のように定義されている。 .sp .in +4n .nf struct passwd { - char *pw_name; /* ¥æ¡¼¥¶Ì¾ */ - char *pw_passwd; /* ¥æ¡¼¥¶¤Î¥Ñ¥¹¥ï¡¼¥É */ - uid_t pw_uid; /* ¥æ¡¼¥¶ ID */ - gid_t pw_gid; /* ¥°¥ë¡¼¥× ID */ - char *pw_gecos; /* ¥æ¡¼¥¶¾ðÊó */ - char *pw_dir; /* ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê */ - char *pw_shell; /* ¥·¥§¥ë¥×¥í¥°¥é¥à */ + char *pw_name; /* ユーザ名 */ + char *pw_passwd; /* ユーザのパスワード */ + uid_t pw_uid; /* ユーザ ID */ + gid_t pw_gid; /* グループ ID */ + char *pw_gecos; /* ユーザ情報 */ + char *pw_dir; /* ホームディレクトリ */ + char *pw_shell; /* シェルプログラム */ }; .fi .in .PP -¤³¤Î¹½Â¤ÂΤΥե£¡¼¥ë¥É¤Î¾ÜºÙ¤Ï +この構造体のフィールドの詳細は .BR passwd (5) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 -¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤Ê¤¤´Ø¿ô¤ÏÀÅŪ¤Ê³ÊǼÎΰè¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤ÎÀÅŪ¤Ê³ÊǼÎΰè¤Ë¤Ï¡¢¹¹¤Ë¥æ¡¼¥¶Ì¾¡¦¥Ñ¥¹¥ï¡¼¥É¡¦gecos ¥Õ¥£¡¼¥ë¥É¡¦ -¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¡¦¥·¥§¥ë¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬´Þ¤Þ¤ì¤ë¡£ -¤³¤³¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤδؿô¤Ï¡¢ -¸Æ¤Ó½Ð¤·Â¦¤«¤éÄ󶡤µ¤ì¤ë¥Ð¥Ã¥Õ¥¡¤Ë¥æ¡¼¥¶Ì¾¤Ê¤ÉÁ´¤Æ¤òÊÖ¤¹¡£ -ºÇ½é¤Î°ú¤­¿ô¤È¤·¤Æ \fIstruct passwd\fP ¤òÊÝ»ý¤Ç¤­¤ë¥Ð¥Ã¥Õ¥¡ +リエントラントでない関数は静的な格納領域へのポインタを返す。 +この静的な格納領域には、更にユーザ名・パスワード・gecos フィールド・ +ホームディレクトリ・シェルへのポインタが含まれる。 +ここで説明されているリエントラント版の関数は、 +呼び出し側から提供されるバッファにユーザ名など全てを返す。 +最初の引き数として \fIstruct passwd\fP を保持できるバッファ .I pwbuf -¤¬¤¢¤ë¡£ -¼¡¤Ë¤½¤Î¾¤Îʸ»úÎó¤òÊÝ»ý¤Ç¤­¤ë¥µ¥¤¥º +がある。 +次にその他の文字列を保持できるサイズ .I buflen -¤Î¥Ð¥Ã¥Õ¥¡ +のバッファ .I buf -¤¬¤¢¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Î·ë²Ì (¥¹¥È¥ê¡¼¥à¤«¤éÆɤ߹þ¤Þ¤ì¤¿ \fIstruct passwd\fP) ¤Ï¡¢ -Ä󶡤µ¤ì¤¿¥Ð¥Ã¥Õ¥¡ +がある。 +これらの関数の結果 (ストリームから読み込まれた \fIstruct passwd\fP) は、 +提供されたバッファ .I *pwbuf -¤Ë³ÊǼ¤µ¤ì¡¢¤³¤Î \fIstruct passwd\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ï +に格納され、この \fIstruct passwd\fP へのポインタは .I *pwbufp -¤ËÊÖ¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï 0 ¤òÊÖ¤·¡¢ +に返される。 +.SH 返り値 +成功した場合、これらの関数は 0 を返し、 .I *pwbufp -¤Ï \fIstruct passwd\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¤È¤Ê¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï¥¨¥é¡¼ÃͤòÊÖ¤·¡¢ +は \fIstruct passwd\fP へのポインタとなる。 +エラーの場合、これらの関数はエラー値を返し、 .I *pwbufp -¤Ï NULL ¤Ë¤Ê¤ë¡£ -.SH ¥¨¥é¡¼ +は NULL になる。 +.SH エラー .TP .B ENOENT -¼¡¤Î¥¨¥ó¥È¥ê¤¬¤Ê¤¤¡£ +次のエントリがない。 .TP .B ERANGE -½½Ê¬¤Ê¥Ð¥Ã¥Õ¥¡¶õ´Ö¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤¡£ -¤â¤Ã¤ÈÂ礭¤Ê¥Ð¥Ã¥Õ¥¡¤ÇºÆÅټ¹Ԥ¹¤ë¤³¤È¡£ -.SH ½àµò -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ê¡¢POSIX ÈǤδؿô +十分なバッファ空間が与えられていない。 +もっと大きなバッファで再度実行すること。 +.SH 準拠 +これらの関数は GNU 拡張であり、POSIX 版の関数 .BR getpwnam_r (3) -¤Î·Á¼°¤Ë»÷¤»¤Æ¤¢¤ë¡£ -¾¤Î¥·¥¹¥Æ¥à¤Ç¤Ï°Ê²¼¤Î¥×¥í¥È¥¿¥¤¥×¤¬»È¤ï¤ì¤Æ¤¤¤ë¡£ +の形式に似せてある。 +他のシステムでは以下のプロトタイプが使われている。 .sp .nf .in +4n @@ -139,7 +139,7 @@ getpwent_r(struct passwd *pwd, char *buf, int buflen); .in .fi .sp -¤è¤êÎɤ¤¤â¤Î¤Ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +より良いものでは、以下のようになっている。 .sp .nf .in +4n @@ -148,13 +148,13 @@ getpwent_r(struct passwd *pwd, char *buf, int buflen, FILE **pw_fp); .in .fi -.SH Ãí°Õ -´Ø¿ô +.SH 注意 +関数 .BR getpwent_r () -¤ÏËÜÅö¤Î¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤Ï¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¡¢¥¹¥È¥ê¡¼¥à¤ÎÆɤ߹þ¤ß°ÌÃÖ¤ò -¾¤ÎÁ´¤Æ¤Î¥¹¥ì¥Ã¥É¤È¶¦Í­¤·¤Æ¤¤¤ë¤¿¤á¤Ç¤¢¤ë¡£ -.SH Îã +は本当のリエントラントではない。 +なぜなら、ストリームの読み込み位置を +他の全てのスレッドと共有しているためである。 +.SH 例 .nf #define _GNU_SOURCE #include @@ -180,7 +180,7 @@ main(void) exit(EXIT_SUCCESS); } .fi -.\" ¤¿¤Ö¤ó¥¨¥é¡¼¥Á¥§¥Ã¥¯¤òÄɲ䷤ơ¢strerror_r ¤ò»È¤¦¤Ù¤­¤À¤í¤¦¡£ +.\" たぶんエラーチェックを追加して、strerror_r を使うべきだろう。 .\" #include .\" #include .\" if (i) { @@ -189,7 +189,7 @@ main(void) .\" printf("getpwent_r: %s", strerror(i)); .\" exit(EXIT_SUCCESS); .\" } -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fgetpwent (3), .BR getpw (3), .BR getpwent (3), diff --git a/release/man3/getpwnam.3 b/release/man3/getpwnam.3 index 55c08dd8..d007c984 100644 --- a/release/man3/getpwnam.3 +++ b/release/man3/getpwnam.3 @@ -41,9 +41,9 @@ .\" Updated 2008-12-24, Akihiro MOTOKI, LDP v3.14 .\" .TH GETPWNAM 3 2009-03-30 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -getpwnam, getpwnam_r, getpwuid, getpwuid_r \- ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥È¥ê¤Î¼èÆÀ -.SH ½ñ¼° +.SH 名前 +getpwnam, getpwnam_r, getpwuid, getpwuid_r \- パスワードファイルのエントリの取得 +.SH 書式 .nf .B #include .B #include @@ -62,9 +62,9 @@ getpwnam, getpwnam_r, getpwuid, getpwuid_r \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -75,192 +75,192 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE || _POSIX_SOURCE .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR getpwnam () -´Ø¿ô¤Ï¡¢¥æ¡¼¥¶Ì¾ +関数は、ユーザ名 .I name -¤Ë¥Þ¥Ã¥Á¤¹¤ë¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥¨¥ó¥È¥ê¤ò -Í×ÁÇËè¤Ëʬ²ò¤·¡¢³ÆÍ×ÁǤò³ÊǼ¤·¤¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹ -(¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÎã: -¥í¡¼¥«¥ë¤Î¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë +にマッチするパスワード・データベースのエントリを +要素毎に分解し、各要素を格納した構造体へのポインタを返す +(パスワード・データベースの例: +ローカルのパスワードファイル .IR /etc/passwd , -NIS, LDAP)¡£ +NIS, LDAP)。 .PP .BR getpwuid () -´Ø¿ô¤Ï¡¢¥æ¡¼¥¶ ID +関数は、ユーザ ID .I uid -¤Ë¥Þ¥Ã¥Á¤¹¤ë¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥¨¥ó¥È¥ê¤ò -Í×ÁÇËè¤Ëʬ²ò¤·¡¢³ÆÍ×ÁǤò³ÊǼ¤·¤¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ +にマッチするパスワード・データベースのエントリを +要素毎に分解し、各要素を格納した構造体へのポインタを返す。 .PP .BR getpwnam_r () -¤È +と .BR getpwuid_r () -´Ø¿ô¤Ï (¾åµ­¤Î´Ø¿ô¤È) Ʊ¤¸¾ðÊó¤ò¼èÆÀ¤¹¤ë¤¬¡¢ -¼èÆÀ¤·¤¿ +関数は (上記の関数と) 同じ情報を取得するが、 +取得した .I passwd -¹½Â¤ÂΤò +構造体を .I pwd -¤¬»Ø¤¹Îΰè¤Ë³ÊǼ¤¹¤ë¡£ -¤³¤Î +が指す領域に格納する。 +この .I passwd -¹½Â¤ÂΤˤÏʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬´Þ¤Þ¤ì¡¢ -¤³¤ì¤é¤Îʸ»úÎó¤Ï¥µ¥¤¥º +構造体には文字列へのポインタが含まれ、 +これらの文字列はサイズ .I buflen -¤Î¥Ð¥Ã¥Õ¥¡ +のバッファ .I buf -¤Ë³ÊǼ¤µ¤ì¤ë¡£ -À®¸ù¤·¤¿¾ì¹ç +に格納される。 +成功した場合 .I *result -¤Ë¤Ï·ë²Ì¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬³ÊǼ¤µ¤ì¤ë¡£ -¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤ä¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¤Ï +には結果へのポインタが格納される。 +エントリが見つからなかった場合やエラーが発生した場合には .I *result -¤Ë¤Ï NULL ¤¬Æþ¤ë¡£ +には NULL が入る。 .PP -\fIpasswd\fP ¹½Â¤ÂΤϡ¢\fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +\fIpasswd\fP 構造体は、\fI\fP で以下のように定義されている: .sp .in +4n .nf struct passwd { - char *pw_name; /* ¥æ¡¼¥¶Ì¾ */ - char *pw_passwd; /* ¥æ¡¼¥¶¤Î¥Ñ¥¹¥ï¡¼¥É */ - uid_t pw_uid; /* ¥æ¡¼¥¶ ID */ - gid_t pw_gid; /* ¥°¥ë¡¼¥× ID */ - char *pw_gecos; /* ¼Â̾ */ - char *pw_dir; /* ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê */ - char *pw_shell; /* ¥·¥§¥ë¥×¥í¥°¥é¥à */ + char *pw_name; /* ユーザ名 */ + char *pw_passwd; /* ユーザのパスワード */ + uid_t pw_uid; /* ユーザ ID */ + gid_t pw_gid; /* グループ ID */ + char *pw_gecos; /* 実名 */ + char *pw_dir; /* ホームディレクトリ */ + char *pw_shell; /* シェルプログラム */ }; .fi .in .PP .I buf -¤ËºÇÂçɬÍפʥµ¥¤¥º¤Ï¡¢ +に最大必要なサイズは、 .BR sysconf (3) -¤Ë°ú¤­¿ô +に引き数 .B _SC_GETPW_R_SIZE_MAX -¤ò»ØÄꤷ¤Æ¼Â¹Ô¤¹¤ë¤³¤È¤Çʬ¤«¤ë¡£ -.SH ÊÖ¤êÃÍ +を指定して実行することで分かる。 +.SH 返り値 .BR getpwnam () -¤È +と .BR getpwuid () -´Ø¿ô¤Ï¡¢ +関数は、 .I passwd -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -°ìÃפ¹¤ë¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤ä¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢ +構造体へのポインタを返す。 +一致するエントリが見つからなかった場合や、エラーが発生した場合は NULL を返す。 +エラーが起こった場合、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -¸Æ¤Ó½Ð¤·¤Î¸å¤Ç +が適切に設定される。 +呼び出しの後で .I errno -¤ò¥Á¥§¥Ã¥¯¤·¤¿¤¤¾ì¹ç¤Ï¡¢ -¸Æ¤Ó½Ð¤·¤ÎÁ°¤Ë (¤³¤ÎÃͤò) 0 ¤ËÀßÄꤷ¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£ +をチェックしたい場合は、 +呼び出しの前に (この値を) 0 に設定しておくべきである。 .LP -ÊÖ¤êÃͤÏÀÅŪ¤ÊÎΰè¤ò»Ø¤·¤Æ¤ª¤ê¡¢¤½¤Î¸å¤Î +返り値は静的な領域を指しており、その後の .BR getpwent (3), .BR getpwnam (), .BR getpwuid () -¤Î¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -(ÊÖ¤µ¤ì¤¿¥Ý¥¤¥ó¥¿¤ò +の呼び出しで上書きされるかもしれない。 +(返されたポインタを .BR free (3) -¤ËÅϤµ¤Ê¤¤¤³¤È¡£) +に渡さないこと。) .LP -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR getpwnam_r () -¤È +と .BR getpwuid_r () -¤Ï 0 ¤òÊÖ¤·¡¢ +は 0 を返し、 .I *result -¤Ë +に .I pwd -¤òÀßÄꤹ¤ë¡£ -¥Þ¥Ã¥Á¤¹¤ë¥Ñ¥¹¥ï¡¼¥É¡¦¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ -0 ¤òÊÖ¤·¡¢ +を設定する。 +マッチするパスワード・エントリが見つからなかった場合には、 +0 を返し、 .I *result -¤Ë NULL ¤òÀßÄꤹ¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢¥¨¥é¡¼ÈÖ¹æ¤òÊÖ¤·¡¢ +に NULL を設定する。 +エラーの場合、エラー番号を返し、 .I *result -¤Ë NULL ¤òÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +に NULL を設定する。 +.SH エラー .TP -.BR 0 " ¤Þ¤¿¤Ï " ENOENT " ¤Þ¤¿¤Ï " ESRCH " ¤Þ¤¿¤Ï " EBADF " ¤Þ¤¿¤Ï " EPERM " ¤Þ¤¿¤Ï ... " -»ØÄꤵ¤ì¤¿ +.BR 0 " または " ENOENT " または " ESRCH " または " EBADF " または " EPERM " または ... " +指定された .I name -¤Þ¤¿¤Ï +または .I uid -¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£ +が見つからなかった。 .TP .B EINTR -¥·¥°¥Ê¥ë¤¬¥­¥ã¥Ã¥Á¤µ¤ì¤¿¡£ +シグナルがキャッチされた。 .TP .B EIO -I/O ¥¨¥é¡¼¡£ +I/O エラー。 .TP .B EMFILE -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ë¤ª¤¤¤Æ¡¢ -´û¤ËºÇÂç¿ô (OPEN_MAX) ¤Î¥Õ¥¡¥¤¥ë¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¡£ +呼び出したプロセスにおいて、 +既に最大数 (OPEN_MAX) のファイルがオープンされている。 .TP .B ENFILE -¥·¥¹¥Æ¥à¾å¤Ç´û¤ËºÇÂç¿ô¤Î¥Õ¥¡¥¤¥ë¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¡£ +システム上で既に最大数のファイルがオープンされている。 .TP .B ENOMEM .\" not in POSIX -.\" POSIX ¤Ë¤Ï¤Ê¤¤¡£ +.\" POSIX にはない。 .I passwd -¹½Â¤ÂΤò³ä¤êÅö¤Æ¤ë¤¿¤á¤Î¥á¥â¥ê¤¬ÉÔ½½Ê¬¡£ -.\" ¤³¤Î¹½Â¤ÂΤÏÀÅŪ¤Ç¤¢¤ê¡¢0 ²ó¤Þ¤¿¤Ï 1 ²ó³ä¤êÅö¤Æ¤é¤ì¤ë¡£ -.\" ¥á¥â¥ê¥ê¡¼¥¯¤Ï̵¤¤¡£(libc45) +構造体を割り当てるためのメモリが不十分。 +.\" この構造体は静的であり、0 回または 1 回割り当てられる。 +.\" メモリリークは無い。(libc45) .TP .B ERANGE -Í¿¤¨¤é¤ì¤¿¥Ð¥Ã¥Õ¥¡¶õ´Ö¤¬ÉÔ½½Ê¬¤Ç¤¢¤ë¡£ -.SH ¥Õ¥¡¥¤¥ë +与えられたバッファ空間が不十分である。 +.SH ファイル .TP .I /etc/passwd -¥í¡¼¥«¥ë¤Î¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë -.SH ½àµò +ローカルのパスワード・データベースファイル +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -.SH Ãí°Õ -¾åµ­¤Î¡ÖÊÖ¤êÃ͡װʲ¼¤Îµ­½Ò¤Ï POSIX.1-2001 ¤Ëµò¤ë¡£ -¤³¤Îɸ½à¤Ï¡Ö(¥¨¥ó¥È¥ê¤¬) ¸«¤Ä¤«¤é¤Ê¤¤¤³¤È¡×¤ò¥¨¥é¡¼¤È¤·¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢ -¤½¤Î¤è¤¦¤Ê¾ì¹ç¤Ë +.SH 注意 +上記の「返り値」以下の記述は POSIX.1-2001 に拠る。 +この標準は「(エントリが) 見つからないこと」をエラーとしていないので、 +そのような場合に .I errno -¤¬¤É¤Î¤è¤¦¤ÊÃͤˤʤ뤫¤òÄê¤á¤Æ¤¤¤Ê¤¤¡£ -¤½¤Î¤¿¤á¡¢¥¨¥é¡¼¤òǧ¼±¤¹¤ë¤³¤È¤ÏÉÔ²Äǽ¤Ç¤¢¤ë¡£ -POSIX ¤Ë½àµò¤·¤Æ¡¢¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï +がどのような値になるかを定めていない。 +そのため、エラーを認識することは不可能である。 +POSIX に準拠して、エントリが見つからない場合は .I errno -¤òÊѹ¹¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡¢¤È¼çÄ¥¤¹¤ë¿Í¤â¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -ÍÍ¡¹¤Ê UNIX ·Ï¤Î¥·¥¹¥Æ¥à¤Ç»î¤·¤Æ¤ß¤ë¤È¡¢¤½¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï -0, ENOENT, EBADF, ESRCH, EWOULDBLOCK, EPERM ¤È¤¤¤Ã¤¿ÍÍ¡¹¤ÊÃͤ¬ÊÖ¤µ¤ì¤ë¡£ -¾¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -.\" ¤è¤êÀµ³Î¤Ë¤Ï: -.\" AIX 5.1 ¤Ï ESRCH ¤òÊÖ¤¹¡£ -.\" OSF1 4.0g ¤Ï EWOULDBLOCK ¤òÊÖ¤¹¡£ -.\" libc, glibc (¥Ð¡¼¥¸¥ç¥ó 2.6 ¤Þ¤Ç), Irix 6.5 ¤Ï ENOENT ¤òÊÖ¤¹¡£ -.\" glibc (¥Ð¡¼¥¸¥ç¥ó 2.7 °Ê¹ß) ¤Ï 0 ¤òÊÖ¤¹¡£ -.\" FreeBSD 4.8, OpenBSD 3.2, NetBSD 1.6 ¤Ï EPERM ¤òÊÖ¤¹¡£ -.\" SunOS 5.8 ¤Ï EBADF ¤òÊÖ¤¹¡£ -.\" Tru64 5.1b, HP-UX-11i, SunOS 5.7 ¤Ï 0 ¤òÊÖ¤¹¡£ +を変更しないようにすべきである、と主張する人もいるかもしれない。 +様々な UNIX 系のシステムで試してみると、そのような場合には +0, ENOENT, EBADF, ESRCH, EWOULDBLOCK, EPERM といった様々な値が返される。 +他の値が返されるかもしれない。 +.\" より正確には: +.\" AIX 5.1 は ESRCH を返す。 +.\" OSF1 4.0g は EWOULDBLOCK を返す。 +.\" libc, glibc (バージョン 2.6 まで), Irix 6.5 は ENOENT を返す。 +.\" glibc (バージョン 2.7 以降) は 0 を返す。 +.\" FreeBSD 4.8, OpenBSD 3.2, NetBSD 1.6 は EPERM を返す。 +.\" SunOS 5.8 は EBADF を返す。 +.\" Tru64 5.1b, HP-UX-11i, SunOS 5.7 は 0 を返す。 -¥Õ¥£¡¼¥ë¥É +フィールド .I pw_dir -¤Ë¤Ï¡¢¥æ¡¼¥¶¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê̾¤Î½é´üÃͤ¬³ÊǼ¤µ¤ì¤ë¡£ -¥í¥°¥¤¥ó¥×¥í¥»¥¹¤Ï¡¢¤³¤Î¥Õ¥£¡¼¥ë¥É¤ÎÃͤò»È¤Ã¤Æ¡¢ -¥í¥°¥¤¥ó¥·¥§¥ë¤Î +には、ユーザの作業ディレクトリ名の初期値が格納される。 +ログインプロセスは、このフィールドの値を使って、 +ログインシェルの .B HOME -´Ä¶­ÊÑ¿ô¤ò½é´ü²½¤¹¤ë¡£ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¡¢¥æ¡¼¥¶¤Î¥Û¡¼¥à¡¦¥Ç¥£¥ì¥¯¥È¥ê¤ò·èÄꤹ¤ë¾ì¹ç¤Ë¤Ï¡¢ +環境変数を初期化する。 +アプリケーションが、ユーザのホーム・ディレクトリを決定する場合には、 .RI ( getpwuid(getuid())\->pw_dir -¤ÎÃͤǤϤʤ¯) +の値ではなく) .B HOME -¤ÎÃͤò¸¡ºº¤¹¤ë¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¤Ê¤¼¤Ê¤é¡¢¤³¤Î¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ç¡¢¥æ¡¼¥¶¤¬¥í¥°¥¤¥ó¡¦¥»¥Ã¥·¥ç¥óÃæ¤Ç -¡Ö¥Û¡¼¥à¡¦¥Ç¥£¥ì¥¯¥È¥ê¡×¤Î°ÕÌ£¤òÊѹ¹¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¤«¤é¤Ç¤¢¤ë¡£ -Ê̤Υ桼¥¶¤Î¥Û¡¼¥à¡¦¥Ç¥£¥ì¥¯¥È¥ê (¤Î½é´üÃÍ) ¤òÃΤë¤Ë¤Ï +の値を検査するようにすべきである。 +なぜなら、このようにすることで、ユーザがログイン・セッション中で +「ホーム・ディレクトリ」の意味を変更できるようになるからである。 +別のユーザのホーム・ディレクトリ (の初期値) を知るには .I getpwnam("username")\->pw_dir -¤«Æ±ÍͤÎÊýË¡¤ò»È¤¦É¬Íפ¬¤¢¤ë¡£ -.SH Îã -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï +か同様の方法を使う必要がある。 +.SH 例 +以下のプログラムは .BR getpwnam_r () -¤Î»ÈÍÑÎã¤ò¼¨¤·¤¿¤â¤Î¤Ç¡¢¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤ÇÅϤµ¤ì¤¿¥æ¡¼¥¶Ì¾¤ËÂФ¹¤ë -´°Á´¤Ê¥æ¡¼¥¶Ì¾¤È¥æ¡¼¥¶ ID ¤òõ¤¹¤â¤Î¤Ç¤¢¤ë¡£ +の使用例を示したもので、コマンドライン引き数で渡されたユーザ名に対する +完全なユーザ名とユーザ ID を探すものである。 .nf #include @@ -284,8 +284,8 @@ main(int argc, char *argv[]) } bufsize = sysconf(_SC_GETPW_R_SIZE_MAX); - if (bufsize == \-1) /* Ãͤò·èÄê¤Ç¤­¤Ê¤«¤Ã¤¿ */ - bufsize = 16384; /* ½½Ê¬Â礭¤ÊÃͤˤ¹¤Ù¤­ */ + if (bufsize == \-1) /* 値を決定できなかった */ + bufsize = 16384; /* 十分大きな値にすべき */ buf = malloc(bufsize); if (buf == NULL) { @@ -308,7 +308,7 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR endpwent (3), .BR fgetpwent (3), .BR getgrnam (3), diff --git a/release/man3/getrpcent.3 b/release/man3/getrpcent.3 index 9ffed11f..4dd2eb1b 100644 --- a/release/man3/getrpcent.3 +++ b/release/man3/getrpcent.3 @@ -8,10 +8,10 @@ .\" Updated 2008-09-19, Akihiro MOTOKI .\" .TH GETRPCENT 3 2008-08-19 "" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 getrpcent, getrpcbyname, getrpcbynumber, setrpcent, endrpcent \- -RPC ¥¨¥ó¥È¥ê¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +RPC エントリを取得する +.SH 書式 .nf .B #include @@ -25,14 +25,14 @@ RPC .BI "void endrpcent(void);" .fi -.SH ÀâÌÀ +.SH 説明 .LP .BR getrpcent (), .BR getrpcbyname (), .BR getrpcbynumber () -¤Ï¤½¤ì¤¾¤ì°Ê²¼¤Î¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤Î¹½Â¤ÂÎ¤Ï RPC ¥×¥í¥°¥é¥àÈÖ¹æ¥Ç¡¼¥¿¥Ù¡¼¥¹ -¤Î³Æ¹Ô¤Î¥Õ¥£¡¼¥ë¥É¤ò´Þ¤ó¤Ç¤¤¤ë¡£ +はそれぞれ以下の構造体へのポインタを返す。 +この構造体は RPC プログラム番号データベース +の各行のフィールドを含んでいる。 .in +4n .nf @@ -44,60 +44,60 @@ struct rpcent { .fi .in .LP -¤³¤Î¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤Ï°Ê²¼¤ÎÄ̤ꡣ +この構造体のメンバーは以下の通り。 .RS 4 .TP 12 .I r_name -¤³¤Î RPC ¥×¥í¥°¥é¥à¤Î¥µ¡¼¥Ð¤Î̾Á° +この RPC プログラムのサーバの名前 .TP .I r_aliases -RPC ¥×¥í¥°¥é¥à¤ÎÊÌ̾¤Î¥ê¥¹¥È¡£¥¼¥í¤Ç½ªÃ¼¤µ¤ì¤Æ¤¤¤ë¡£ +RPC プログラムの別名のリスト。ゼロで終端されている。 .TP .I r_number -¤³¤Î¥µ¡¼¥Ó¥¹¤Î RPC ¥×¥í¥°¥é¥àÈֹ档 +このサービスの RPC プログラム番号。 .RE .LP .BR getrpcent () -¤Ï¥Õ¥¡¥¤¥ë¤Î¼¡¤Î¥¨¥ó¥È¥ê¤òÆɤ߹þ¤à¡£ -ɬÍפʤé¤Ð¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤¬¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£ +はファイルの次のエントリを読み込む。 +必要ならばデータベースへの接続がオープンされる。 .LP .BR setrpcent () -¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤ò¥ª¡¼¥×¥ó¤·¡¢ -¼¡¤ÎÆɤ߹þ¤ß¥¨¥ó¥È¥ê¤òÀèƬ¤Î¥¨¥ó¥È¥ê¤ËÀßÄꤹ¤ë¡£ -\fIstayopen\fP ¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¡¢ -°ì¤Ä°ì¤Ä¤Î +はデータベースへの接続をオープンし、 +次の読み込みエントリを先頭のエントリに設定する。 +\fIstayopen\fP が 0 でない場合、 +一つ一つの .BR getrpc* () -´Ø¿ô¤Î¸Æ¤Ó½Ð¤·´Ö¤Ç¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤ò¥¯¥í¡¼¥º¤·¤Ê¤¤¡£ +関数の呼び出し間でデータベースへの接続をクローズしない。 .LP .BR endrpcent () -¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +はデータベースへの接続をクローズする。 .LP .BR getrpcbyname () -¤È +と .BR getrpcbynumber () -¤Ï¥Õ¥¡¥¤¥ë¤ÎºÇ½é¤«¤é°ìÃפ¹¤ë RPC ¥×¥í¥°¥é¥à̾¤«¥×¥í¥°¥é¥àÈֹ椬 -¸«¤Ä¤«¤ë¤«¡¢¥Õ¥¡¥¤¥ë¤ÎºÇ¸å (end-of-file) ¤ËÅþ㤹¤ë¤Þ¤Ç¡¢½çÈÖ¤Ë -õ¤·¤Æ¤¤¤¯¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +はファイルの最初から一致する RPC プログラム名かプログラム番号が +見つかるか、ファイルの最後 (end-of-file) に到達するまで、順番に +探していく。 +.SH 返り値 +成功すると、 .BR getrpcent (), .BR getrpcbyname (), .BR getrpcbynumber () -¤Ï¡¢ÀÅŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿ +は、静的に割り当てられた .I rpcent -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -EOF ¤« ¥¨¥é¡¼¤ËÁø¶ø¤·¤¿¾ì¹ç¤Ë¤Ï NULL ¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -.SH ¥Õ¥¡¥¤¥ë +構造体へのポインタを返す。 +EOF か エラーに遭遇した場合には NULL ポインタを返す。 +.SH ファイル .TP .I /etc/rpc -RPC ¥×¥í¥°¥é¥àÈÖ¹æ¥Ç¡¼¥¿¥Ù¡¼¥¹ -.SH ½àµò -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -BSD ·Ï¡¢Solaris ¤ä¾¤Î¿¤¯¤Î¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¡£ -.SH ¥Ð¥° -Á´¤Æ¤Î¾ðÊó¤ÏÀÅŪÎΰè¤Ë³ÊǼ¤µ¤ì¤ë¡£ -Êݸ¤¹¤ë¤¿¤á¤Ë¤ÏÁ´¤Æ¤ò¥³¥Ô¡¼¤¹¤ëɬÍפ¬¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +RPC プログラム番号データベース +.SH 準拠 +POSIX.1-2001 にはない。 +BSD 系、Solaris や他の多くのシステムに存在する。 +.SH バグ +全ての情報は静的領域に格納される。 +保存するためには全てをコピーする必要がある。 +.SH 関連項目 .BR getrpcent_r (3), .BR rpc (5), .BR rpcinfo (8), diff --git a/release/man3/getrpcport.3 b/release/man3/getrpcport.3 index 3011d0ac..6961182e 100644 --- a/release/man3/getrpcport.3 +++ b/release/man3/getrpcport.3 @@ -8,33 +8,33 @@ .\" by HANATAKA Shinya .\" .TH GETRPCPORT 3 2007-12-23 "" "Linux Programmer's Manual" -.SH ̾Á° -getrpcport \- RPC ¥Ý¡¼¥ÈÈÖ¹æ¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +getrpcport \- RPC ポート番号を取得する +.SH 書式 .nf .BI "int getrpcport(char *" host ", int " prognum ", int " versnum \ ", int " proto ); .fi -.SH ÀâÌÀ +.SH 説明 .BR getrpcport () -¤Ï +は .I host -¾å¤Ç +上で .I proto -¥×¥í¥È¥³¥ë¤ò»ÈÍѤ·¤Æ¤¤¤ë¥Ð¡¼¥¸¥ç¥ó +プロトコルを使用しているバージョン .I versnum -¤Î RPC ¥×¥í¥°¥é¥à +の RPC プログラム .I prognum -¤Î¥Ý¡¼¥ÈÈÖ¹æ¤òÊÖ¤¹¡£ -¥Ý¡¼¥È¥Þ¥Ã¥Ñ¡¼¤ÈÏ¢Íí¤¬¼è¤ì¤Ê¤¤¾ì¹ç¤ä +のポート番号を返す。 +ポートマッパーと連絡が取れない場合や .I prognum -¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ +が登録されていない場合には 0 を返す。 .I prognum -¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤¬¡¢¥Ð¡¼¥¸¥ç¥ó +が登録されているが、バージョン .I versnum -¤Ç¤Ê¤¤¾ì¹ç¤Ë¤â¡¢¤½¤Î¥×¥í¥°¥é¥à¤¬¼ÂºÝ¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò¼¨¤¹¤¿¤á¤Ë -(¤½¤Î¥×¥í¥°¥é¥à¤Î¥Ð¡¼¥¸¥ç¥ó¤Î)¥Ý¡¼¥ÈÈÖ¹æ¤òÊÖ¤¹¡£ -¥Ð¡¼¥¸¥ç¥ó¤ÎÉÔ°ìÃפϺǽé¤Ë¤½¤Î¥µ¡¼¥Ó¥¹¤ò¸Æ¤Ó½Ð¤·¤¿»þ¤Ë¸¡½Ð¤µ¤ì¤ë¡£ -.SH ½àµò -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -BSD ·Ï¡¢Solaris ¤ä¾¤Î¿¤¯¤Î¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¡£ +でない場合にも、そのプログラムが実際に登録されていることを示すために +(そのプログラムのバージョンの)ポート番号を返す。 +バージョンの不一致は最初にそのサービスを呼び出した時に検出される。 +.SH 準拠 +POSIX.1-2001 にはない。 +BSD 系、Solaris や他の多くのシステムに存在する。 diff --git a/release/man3/gets.3 b/release/man3/gets.3 index 1154ee62..b108a114 100644 --- a/release/man3/gets.3 +++ b/release/man3/gets.3 @@ -30,9 +30,9 @@ .\" Updated 2005-09-06, Akihiro MOTOKI .\" .TH GETS 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -fgetc, fgets, getc, getchar, gets, ungetc \- ʸ»ú¤Èʸ»úÎó¤ÎÆþÎÏ -.SH ½ñ¼° +.SH 名前 +fgetc, fgets, getc, getchar, gets, ungetc \- 文字と文字列の入力 +.SH 書式 .nf .B #include .sp @@ -48,132 +48,132 @@ fgetc, fgets, getc, getchar, gets, ungetc \- ʸ .BI "int ungetc(int " c ", FILE *" stream ); .fi -.SH ÀâÌÀ +.SH 説明 .BR fgetc () -¤Ï¡¢ +は、 .I stream -¤«¤é¼¡¤Îʸ»ú¤ò +から次の文字を .I unsigned char -¤È¤·¤ÆÆɤߡ¢ +として読み、 .I int -¤Ë¥­¥ã¥¹¥È¤·¤ÆÊÖ¤¹¡£¥Õ¥¡¥¤¥ë¤Î½ª¤ï¤ê¤ä¥¨¥é¡¼¤È¤Ê¤Ã¤¿¾ì¹ç¤Ï +にキャストして返す。ファイルの終わりやエラーとなった場合は .B EOF -¤òÊÖ¤¹¡£ +を返す。 .PP .BR getc () -¤Ï +は .BR fgetc () -¤ÈƱÍͤÀ¤¬¡¢ +と同様だが、 .I stream -¤òÊ£¿ô²óɾ²Á¤¹¤ë¥Þ¥¯¥í¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +を複数回評価するマクロとして実装されているかもしれない。 .PP .BR getchar () -¤Ï +は .BI "getc(" stdin ) \fR -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .PP .BR gets () -¤Ï¡¢²þ¹Ôʸ»ú¤« +は、改行文字か .B EOF -¤Þ¤Ç¤Î 1¹Ô¤ò +までの 1行を .I stdin -¤«¤éÆɤ߹þ¤ß +から読み込み .I s -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤¹¤ë -(ËöÈø¤Î²þ¹Ôʸ»ú¤ä +が指すバッファに格納する +(末尾の改行文字や .B EOF -¤Ï NULL ¥Ð¥¤¥È (\(aq\e0\(aq) ¤ËÃÖ¤­´¹¤¨¤é¤ì¤ë)¡£ -¥Ð¥Ã¥Õ¥¡¡¦¥ª¡¼¥Ð¡¼¥é¥ó¤Î¥Á¥§¥Ã¥¯¤Ï¹Ô¤ï¤ì¤Ê¤¤ (²¼µ­¤Î¡Ö¥Ð¥°¡×¤ò»²¾È)¡£ +は NULL バイト (\(aq\e0\(aq) に置き換えられる)。 +バッファ・オーバーランのチェックは行われない (下記の「バグ」を参照)。 .PP .BR fgets () -¤Ï +は .I stream -¤«¤éºÇÂç¤Ç +から最大で .IR size " - 1" -¸Ä¤Îʸ»ú¤òÆɤ߹þ¤ß¡¢ +個の文字を読み込み、 .I s -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤¹¤ë¡£Æɤ߹þ¤ß¤Ï +が指すバッファに格納する。読み込みは .B EOF -¤Þ¤¿¤Ï²þ¹Ôʸ»ú¤òÆɤ߹þ¤ó¤À¸å¤ÇÄä»ß¤¹¤ë¡£ -Æɤ߹þ¤Þ¤ì¤¿²þ¹Ôʸ»ú¤Ï¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤ë¡£ -½ªÃ¼¤Î NULL ¥Ð¥¤¥È (\(aq\e0\(aq) -¤¬°ì¤Ä¥Ð¥Ã¥Õ¥¡¤ÎÃæ¤ÎºÇ¸å¤Îʸ»ú¤Î¸å¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£ +または改行文字を読み込んだ後で停止する。 +読み込まれた改行文字はバッファに格納される。 +終端の NULL バイト (\(aq\e0\(aq) +が一つバッファの中の最後の文字の後に書き込まれる。 .PP .BR ungetc () -¤Ï¡¢¸å¤Î read Áàºî¤ÇÆɤá¤ë¤è¤¦¤Ë¡¢ +は、後の read 操作で読めるように、 .I c -¤ò +を .I "unsigned char" -¤Ë¥­¥ã¥¹¥È¤·¤Æ +にキャストして .I stream -¤Ë½ñ¤­Ì᤹¡£ -½ñ¤­Ìᤵ¤ì¤¿Ê¸»ú¤ÏµÕ½ç¤ËÌᤵ¤ì¤ë; -½ñ¤­Ìᤷ¤È¤·¤ÆÊݾڤµ¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢°ìʸ»ú¤À¤±¤Ç¤¢¤ë¡£ +に書き戻す。 +書き戻された文字は逆順に戻される; +書き戻しとして保証されているのは、一文字だけである。 .PP -¤³¤³¤Ç½Ò¤Ù¤¿´Ø¿ô¤ä +ここで述べた関数や .I stdio -¥é¥¤¥Ö¥é¥ê¤ÎÆþÎÏ´Ø¿ô¤òƱ¤¸ÆþÎÏ¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ¸ß¤¤¤Ëº®¤¼¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +ライブラリの入力関数を同じ入力ストリームに対して互いに混ぜて使うことができる。 .PP -¤³¤ì¤é¤Î½èÍý¤ò¥í¥Ã¥¯¤»¤º¤Ë¹Ô¤¤¤¿¤¤¤È¤­¤Ï¡¢ +これらの処理をロックせずに行いたいときは、 .BR unlocked_stdio (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ +を参照のこと。 +.SH 返り値 .BR fgetc (), .BR getc (), .BR getchar () -¤Ï¡¢Ê¸»ú¤ò +は、文字を .I unsigned char -¤È¤·¤ÆÆɤó¤Ç +として読んで .I int -¤Ë¥­¥ã¥¹¥È¤·¤ÆÊÖ¤¹¡£¥Õ¥¡¥¤¥ë¤Î½ª¤ï¤ê¤ä¥¨¥é¡¼¤Î¾ì¹ç¤Ï +にキャストして返す。ファイルの終わりやエラーの場合は .B EOF -¤òÊÖ¤¹¡£ +を返す。 .PP .BR gets () -¤È +と .BR fgets () -¤Ï¡¢À®¸ù¤¹¤ë¤È +は、成功すると .I s -¤òÊÖ¤·¡¢¥¨¥é¡¼¤ä 1 ʸ»ú¤âÆɤ߹þ¤ó¤Ç¤¤¤Ê¤¤¤Î¤Ë¥Õ¥¡¥¤¥ë¤Î½ª¤ï¤ê¤Ë¤Ê¤Ã¤¿ -¾ì¹ç¤Ë NULL ¤òÊÖ¤¹¡£ +を返し、エラーや 1 文字も読み込んでいないのにファイルの終わりになった +場合に NULL を返す。 .PP .BR ungetc () -¤ÏÀ®¸ù¤¹¤ë¤È +は成功すると .I c -¤òÊÖ¤·¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ï +を返し、エラーの場合は .B EOF -¤òÊÖ¤¹¡£ -.SH ½àµò +を返す。 +.SH 準拠 C89, C99, POSIX.1-2001. -LSB ¤Ç¤Ï +LSB では .BR gets () -¤ÏÈó¿ä¾©¤Ç¤¢¤ë¡£ -POSIX.1-2008 ¤Ç¤Ï +は非推奨である。 +POSIX.1-2008 では .BR gets () -¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¤È¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ¥Ð¥° +は廃止予定であるとされている。 +.SH バグ .BR gets () -¤ÏÀäÂФ˻ÈÍѤ·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -Á°¤â¤Ã¤Æ¥Ç¡¼¥¿¤òÃΤ뤳¤È¤Ê¤·¤Ë +は絶対に使用してはならない。 +前もってデータを知ることなしに .BR gets () -¤¬²¿Ê¸»úÆɤफ¤òÃΤ뤳¤È¤Ï¤Ç¤­¤º¡¢ +が何文字読むかを知ることはできず、 .BR gets () -¤¬¥Ð¥Ã¥Õ¥¡¤Î½ª¤ï¤ê¤ò±Û¤¨¤Æ½ñ¤­¹þ¤ß³¤±¤ë¤¿¤á¡¢ +がバッファの終わりを越えて書き込み続けるため、 .BR gets () -¤ò»È¤¦¤Î¤Ï¶Ë¤á¤Æ´í¸±¤Ç¤¢¤ë¡£ -¤³¤ì¤òÍøÍѤ·¤Æ¥³¥ó¥Ô¥å¡¼¥¿¤Î¥»¥­¥å¥ê¥Æ¥£¤¬Çˤé¤ì¤Æ¤­¤¿¡£ -Âå¤ï¤ê¤Ë +を使うのは極めて危険である。 +これを利用してコンピュータのセキュリティが破られてきた。 +代わりに .BR fgets () -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .PP -ÆþÎÏ¥¹¥È¥ê¡¼¥à¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ¡¢ +入力ストリームのファイルディスクリプタに対して、 .I stdio -¥é¥¤¥Ö¥é¥ê¤ÎÆþÎÏ´Ø¿ô¤È¡¢Äã¥ì¥Ù¥ë¸Æ¤Ó½Ð¤·¤Î +ライブラリの入力関数と、低レベル呼び出しの .BR read (2) -¤òº®¤¼¤Æ¸Æ¤Ó½Ð¤¹»ö¤Ï´«¤á¤é¤ì¤Ê¤¤¡£ -·ë²Ì¤¬¤É¤¦¤Ê¤ë¤«¤Ïʬ¤«¤é¤º¡¢¤ª¤½¤é¤¯¤¢¤Ê¤¿¤Î -˾¤ó¤Ç¤¤¤ë·ë²Ì¤Ë¤Ï¤Ê¤é¤Ê¤¤¤À¤í¤¦¡£ -.SH ´ØÏ¢¹àÌÜ +を混ぜて呼び出す事は勧められない。 +結果がどうなるかは分からず、おそらくあなたの +望んでいる結果にはならないだろう。 +.SH 関連項目 .BR read (2), .BR write (2), .BR ferror (3), diff --git a/release/man3/getservent.3 b/release/man3/getservent.3 index 20d15de1..2d00be75 100644 --- a/release/man3/getservent.3 +++ b/release/man3/getservent.3 @@ -35,9 +35,9 @@ .\" Updated 2008-09-19, Akihiro MOTOKI .\" .TH GETSERVENT 3 2008-08-19 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -getservent, getservbyname, getservbyport, setservent, endservent \- ¥µ¡¼¥Ó¥¹¤Î¥¨¥ó¥È¥ê¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +getservent, getservbyname, getservbyport, setservent, endservent \- サービスのエントリを取得する +.SH 書式 .nf .B #include .sp @@ -51,44 +51,44 @@ getservent, getservbyname, getservbyport, setservent, endservent \- .sp .B void endservent(void); .fi -.SH ÀâÌÀ +.SH 説明 .BR getservent () -´Ø¿ô¤Ï¥µ¡¼¥Ó¥¹¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹ +関数はサービスのデータベース .RB ( services (5) -»²¾È) ¤«¤é¼¡¤Î¥¨¥ó¥È¥ê¤òÆɤ߹þ¤ß¡¢ -¤½¤Î¥¨¥ó¥È¥ê¤ò \fIservent\fP ¹½Â¤ÂΤÎÍ×ÁÇÊ̤Υե£¡¼¥ë¥É¤Ë³ÊǼ¤·¡¢ -¤½¤Î¹½Â¤ÂΤòÊÖ¤¹¡£ -ɬÍפǤ¢¤ì¤Ð¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤¬¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£ +参照) から次のエントリを読み込み、 +そのエントリを \fIservent\fP 構造体の要素別のフィールドに格納し、 +その構造体を返す。 +必要であれば、データベースへの接続がオープンされる。 .PP .BR getservbyname () -´Ø¿ô¤Ï¡¢ -¥×¥í¥È¥³¥ë \fIproto\fP ¤òÍѤ¤¤ë¥µ¡¼¥Ó¥¹¤Î̾Á° \fIname\fP -¤Ë¥Þ¥Ã¥Á¤¹¤ë¥¨¥ó¥È¥ê¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éõ¤·¡¢ -¤½¤Î¥¨¥ó¥È¥ê¤ò¼ý¤á¤¿ \fIservent\fP ¹½Â¤ÂΤòÊÖ¤¹¡£ -\fIproto\fP ¤¬ NULL ¤Î¾ì¹ç¤Ï¡¢Ç¤°Õ¤Î¥×¥í¥È¥³¥ë¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -ɬÍפǤ¢¤ì¤Ð¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤¬¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£ +関数は、 +プロトコル \fIproto\fP を用いるサービスの名前 \fIname\fP +にマッチするエントリをデータベースから探し、 +そのエントリを収めた \fIservent\fP 構造体を返す。 +\fIproto\fP が NULL の場合は、任意のプロトコルにマッチする。 +必要であれば、データベースへの接続がオープンされる。 .PP .BR getservbyport () -´Ø¿ô¤Ï¡¢ -¥×¥í¥È¥³¥ë \fIproto\fP ¤òÍѤ¤¤ë¥µ¡¼¥Ó¥¹¤Î¥Ý¡¼¥ÈÈÖ¹æ \fIport\fP -¤Ë¥Þ¥Ã¥Á¤¹¤ë¥¨¥ó¥È¥ê¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éõ¤·¡¢ -¤½¤Î¥¨¥ó¥È¥ê¤ÎÆâÍƤò¼ý¤á¤¿ \fIservent\fP ¹½Â¤ÂΤòÊÖ¤¹ -(¥Ý¡¼¥ÈÈÖ¹æ \fIport\fP ¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¡¦¥Ð¥¤¥È¥ª¡¼¥À¤Ç»ØÄꤹ¤ë)¡£ -\fIproto\fP ¤¬ NULL ¤Î¾ì¹ç¤ÏǤ°Õ¤Î¥×¥í¥È¥³¥ë¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -ɬÍפǤ¢¤ì¤Ð¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤¬¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£ +関数は、 +プロトコル \fIproto\fP を用いるサービスのポート番号 \fIport\fP +にマッチするエントリをデータベースから探し、 +そのエントリの内容を収めた \fIservent\fP 構造体を返す +(ポート番号 \fIport\fP はネットワーク・バイトオーダで指定する)。 +\fIproto\fP が NULL の場合は任意のプロトコルにマッチする。 +必要であれば、データベースへの接続がオープンされる。 .PP .BR setservent () -´Ø¿ô¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤ò¥ª¡¼¥×¥ó¤·¡¢ -¼¡¤ÎÆɤ߹þ¤ß¥¨¥ó¥È¥ê¤òÀèƬ¤Î¥¨¥ó¥È¥ê¤ËÀßÄꤹ¤ë¡£ -\fIstayopen\fP ¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¡¢ -°ì¤Ä°ì¤Ä¤Î +関数はデータベースへの接続をオープンし、 +次の読み込みエントリを先頭のエントリに設定する。 +\fIstayopen\fP が 0 でない場合、 +一つ一つの .BR getserv* () -´Ø¿ô¤Î¸Æ¤Ó½Ð¤·´Ö¤Ç¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤ò¥¯¥í¡¼¥º¤·¤Ê¤¤¡£ +関数の呼び出し間でデータベースへの接続をクローズしない。 .PP .BR endservent () -´Ø¿ô¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +関数はデータベースへの接続をクローズする。 .PP -\fIservent\fP ¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +\fIservent\fP 構造体は \fI\fP で以下のように定義されている。 .sp .in +4n .nf @@ -101,36 +101,36 @@ struct servent { .fi .in .PP -\fIservent\fP ¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤Ï°Ê²¼¤ÎÄ̤ꡣ +\fIservent\fP 構造体のメンバーは以下の通り。 .RS .TP 12 .I s_name -¥µ¡¼¥Ó¥¹¤ÎÀµ¼°Ì¾ (official name)¡£ +サービスの正式名 (official name)。 .TP .I s_aliases -¥µ¡¼¥Ó¥¹¤ÎÊÌ̾¤Î¥ê¥¹¥È¡£ -¥ê¥¹¥È¤Ï NULL ¤Ç½ªÃ¼¤µ¤ì¤ë¡£ +サービスの別名のリスト。 +リストは NULL で終端される。 .TP .I s_port -¥µ¡¼¥Ó¥¹¤Î¥Ý¡¼¥ÈÈֹ档¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¤Ç»ØÄꤵ¤ì¤ë¡£ +サービスのポート番号。ネットワークバイトオーダで指定される。 .TP .I s_proto -¤³¤Î¥µ¡¼¥Ó¥¹¤È¶¦¤ËÍѤ¤¤ë¥×¥í¥È¥³¥ë¤Î̾Á°¡£ +このサービスと共に用いるプロトコルの名前。 .RE -.SH ÊÖ¤êÃÍ +.SH 返り値 .BR getservent (), .BR getservbyname (), .BR getservbyport () -´Ø¿ô¤Ï¡¢ -ÀÅŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿ \fIservent\fP ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¤ê¡¢¥Õ¥¡¥¤¥ë¤ÎËöÈø¤Ë㤷¤¿¾ì¹ç¤Ï NULL ¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -.SH ¥Õ¥¡¥¤¥ë +関数は、 +静的に割り当てられた \fIservent\fP 構造体へのポインタを返す。 +エラーが起こったり、ファイルの末尾に達した場合は NULL ポインタを返す。 +.SH ファイル .TP .I /etc/services -¥µ¡¼¥Ó¥¹¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë -.SH ½àµò +サービスのデータベースファイル +.SH 準拠 4.3BSD, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getnetent (3), .BR getprotoent (3), .BR getservent_r (3), diff --git a/release/man3/getspnam.3 b/release/man3/getspnam.3 index 29caf0fe..0a3e3222 100644 --- a/release/man3/getspnam.3 +++ b/release/man3/getspnam.3 @@ -8,11 +8,11 @@ .\" Translated 2004-08-20, Yuichi SATO .\" .TH GETSPNAM 3 2010-02-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -getspnam, getspnam_r, getspent, getspent_r, setspent, endspent,fgetspent, fgetspent_r, sgetspent, sgetspent_r, putspent, lckpwdf, ulckpwdf \- shadow ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥È¥ê¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +getspnam, getspnam_r, getspent, getspent_r, setspent, endspent,fgetspent, fgetspent_r, sgetspent, sgetspent_r, putspent, lckpwdf, ulckpwdf \- shadow パスワードファイルのエントリを取得する +.SH 書式 .nf -/* °ìÈÌŪ¤Ê shadow ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë API */ +/* 一般的な shadow パスワードファイル API */ .br .B #include .sp @@ -34,7 +34,7 @@ getspnam, getspnam_r, getspent, getspent_r, setspent, endspent,fgetspent, fgetsp .sp .B int ulckpwdf(void); .sp -/* GNU ÈǤˤª¤±¤ë³ÈÄ¥ */ +/* GNU 版における拡張 */ .br .B #include .sp @@ -56,9 +56,9 @@ getspnam, getspnam_r, getspent, getspent_r, setspent, endspent,fgetspent, fgetsp .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -70,180 +70,180 @@ glibc _BSD_SOURCE || _SVID_SOURCE .RE .ad b -.SH ÀâÌÀ -ÀΤϰŹ沽¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤ò¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Ë -¸«¤¨¤ë¤è¤¦¤Ë¸ø³«¤·¤Æ¤ª¤¤¤Æ¤â°ÂÁ´¤À¤È¹Í¤¨¤é¤ì¤Æ¤¤¤¿¡£ -Julianne Frances Haugh ¤Ï shadow ¥Ñ¥¹¥ï¡¼¥É¡¦¥¹¥¤¡¼¥È¤ò¼ÂÁõ¤·¤¿¡£ -¤³¤ì¤Ï°Å¹æ²½¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤ò¡¢root ¤Î¤ß¤¬Æɤळ¤È¤¬¤Ç¤­¤ë -shadow ¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹ (Î㤨¤Ð¡¢ -¥í¡¼¥«¥ë¤Î shadow ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë +.SH 説明 +昔は暗号化されたパスワードをパスワードファイルに +見えるように公開しておいても安全だと考えられていた。 +Julianne Frances Haugh は shadow パスワード・スイートを実装した。 +これは暗号化されたパスワードを、root のみが読むことができる +shadow パスワード・データベース (例えば、 +ローカルの shadow パスワードファイル .IR /etc/shadow , NIS, LDAP) -¤ËÊÝ»ý¤¹¤ë¡£ +に保持する。 .LP -°Ê²¼¤ÇÀâÌÀ¤¹¤ë´Ø¿ô¤Ï¡¢ÅÁÅýŪ¤Ê¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÂФ¹¤ë -´Ø¿ô¤Ë»÷¤Æ¤¤¤ë (Î㤨¤Ð +以下で説明する関数は、伝統的なパスワード・データベースに対する +関数に似ている (例えば .BR getpwnam (3) -¤ä +や .BR getpwent (3) -¤ò»²¾È)¡£ -.\" FIXME °Ê²¼¤ò°ì»þŪ¤Ë¥³¥á¥ó¥È¥¢¥¦¥È¤·¤¿¡£ -.\" PAM ¤È nsswitch.conf ¤Î´Ø·¸¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥æ¡¼¥¶¡¢¥°¥ë¡¼¥×¡¢shadow -.\" ¥Ñ¥¹¥ï¡¼¥É¤Î´Ø¿ô¤Ë¤Ä¤¤¤Æ¤Î¥Ú¡¼¥¸¤«¤é»²¾È¤µ¤ì¤ë¤É¤³¤«¤Ë¤Ï¤Ã¤­¤ê¤È -.\" µ­ºÜ¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¡£ +を参照)。 +.\" FIXME 以下を一時的にコメントアウトした。 +.\" PAM と nsswitch.conf の関係については、ユーザ、グループ、shadow +.\" パスワードの関数についてのページから参照されるどこかにはっきりと +.\" 記載しておく必要がある。 .\" (Jul 2005, mtk) .\" -.\" ¤³¤Î shadow ¥Ñ¥¹¥ï¡¼¥É¤ÎÀßÄê¤Ï -.\" PAM (pluggable authentication modules) ¤Ç¼è¤êÂؤ¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.\" ¸½ºß¤Î¤È¤³¤í¡¢¤É¤Î¾ðÊ󸻤ò»ÈÍѤ¹¤ë¤«¤Ï +.\" この shadow パスワードの設定は +.\" PAM (pluggable authentication modules) で取り替えることができる。 +.\" 現在のところ、どの情報源を使用するかは .\" .I /etc/nsswitch.conf -.\" ¥Õ¥¡¥¤¥ë¤Ëµ­½Ò¤µ¤ì¤ë¡£ +.\" ファイルに記述される。 .LP .BR getspnam () -´Ø¿ô¤Ï¡¢¥æ¡¼¥¶Ì¾ +関数は、ユーザ名 .I name -¤Ë¥Þ¥Ã¥Á¤¹¤ë shadow ¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥¨¥ó¥È¥ê¤ò -Í×ÁÇËè¤Ëʬ²ò¤·¡¢³ÆÍ×ÁǤò³ÊǼ¤·¤¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ +にマッチする shadow パスワード・データベースのエントリを +要素毎に分解し、各要素を格納した構造体へのポインタを返す。 .LP .BR getspent () -´Ø¿ô¤Ï shadow ¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤ª¤±¤ë¼¡¤Î¥¨¥ó¥È¥ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -ÆþÎÏ¥¹¥È¥ê¡¼¥à¤Ë¤ª¤±¤ë°ÌÃ֤ϡ¢ +関数は shadow パスワード・データベースにおける次のエントリへのポインタを返す。 +入力ストリームにおける位置は、 .BR setspent () -¤Ç½é´ü²½¤µ¤ì¤ë¡£ -Æɤ߹þ¤ß¤¬½ª¤ï¤Ã¤¿¸å¤Ë¡¢ +で初期化される。 +読み込みが終わった後に、 .BR endspent () -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¥ê¥½¡¼¥¹¤ò²òÊü¤Ç¤­¤ë¡£ -.\" ºÇ½é¤Ë getspent() ¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¡¢ -.\" setspent() ¤ò¸Æ¤Ó½Ð¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ -.\" glibc ¤Ç¤Ï¤½¤ÎɬÍפ¬¤Ê¤¤¡£ +を呼び出すと、リソースを解放できる。 +.\" 最初に getspent() を呼び出す前に、 +.\" setspent() を呼び出さなければならないシステムもある。 +.\" glibc ではその必要がない。 .LP .BR fgetspent () -´Ø¿ô¤Ï +関数は .BR getspent () -¤Ë»÷¤Æ¤¤¤ë¤¬¡¢ +に似ているが、 .BR setspent () -¤Ç°ÅÌۤΤ¦¤Á¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤ë¥¹¥È¥ê¡¼¥à¤Ç¤Ï¤Ê¤¯¡¢Í¿¤¨¤é¤ì¤¿¥¹¥È¥ê¡¼¥à¤ò»È¤¦¡£ +で暗黙のうちにオープンされるストリームではなく、与えられたストリームを使う。 .LP .BR sgetspent () -´Ø¿ô¤ÏÍ¿¤¨¤é¤ì¤¿Ê¸»úÎó +関数は与えられた文字列 .I s -¤ò²òÀϤ· struct +を解析し struct .I spwd -¤Ë³ÊǼ¤¹¤ë¡£ +に格納する。 .LP .BR putspent () -´Ø¿ô¤ÏÍ¿¤¨¤é¤ì¤¿ struct +関数は与えられた struct .I spwd .I *p -¤ÎÆâÍƤò shadow ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë·Á¼°¤Î¥Æ¥­¥¹¥È¹Ô¤Ç¥¹¥È¥ê¡¼¥à +の内容を shadow パスワードファイル形式のテキスト行でストリーム .I fp -¤Ë½ñ¤­½Ð¤¹¡£ -¶õʸ»úÎó¤È¤·¤Æ¡¢ -Ãͤ¬ NULL ¤Îʸ»úÎ󥨥ó¥È¥ê¤ÈÃͤ¬ \-1 ¤Î¿ôÃÍ¥¨¥ó¥È¥ê¤¬ -½ñ¤­½Ð¤µ¤ì¤ë¡£ +に書き出す。 +空文字列として、 +値が NULL の文字列エントリと値が \-1 の数値エントリが +書き出される。 .LP .BR lckpwdf () -´Ø¿ô¤Ï¡¢ shadow ¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò -¿½ÅƱ»þ¥¢¥¯¥»¥¹¤«¤é¼é¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¥í¥Ã¥¯¤Î³ÍÆÀ¤ò»î¤ß¡¢ -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç (15 ÉðÊÆâ¤Ë¥í¥Ã¥¯¤¬¼èÆÀ¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç) ¤Ï \-1 ¤òÊÖ¤¹¡£ +関数は、 shadow パスワード・データベースを +多重同時アクセスから守るためのものである。 +この関数はロックの獲得を試み、 +成功した場合は 0 を返す。 +失敗した場合 (15 秒以内にロックが取得できなかった場合) は \-1 を返す。 .BR ulckpwdf () -´Ø¿ô¤Ï¥í¥Ã¥¯¤òºÆ¤Ó²òÊü¤¹¤ë¡£ -shadow ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Ø¤ÎľÀÜ¥¢¥¯¥»¥¹¤«¤é -Êݸ¤ë¼êÃʤ¬¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +関数はロックを再び解放する。 +shadow パスワードファイルへの直接アクセスから +保護する手段がない点に注意すること。 .BR lckpwdf () -¤ò»È¤¦¥×¥í¥°¥é¥à¤À¤±¤¬¥í¥Ã¥¯¤òÄÌÃΤǤ­¤ë¡£ +を使うプログラムだけがロックを通知できる。 .LP -¤³¤ì¤é¤Î´Ø¿ô¤Ï¥ª¥ê¥¸¥Ê¥ë¤Î shadow API ¤ò¹½À®¤·¤Æ¤¤¤¿´Ø¿ô¤Ç¤¢¤ê¡¢ -¤¤¤í¤¤¤í¤Ê¥·¥¹¥Æ¥à¤Ç¹­¤¯ÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.\" libc5 ¤Ç¤âÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.\" SUN ¤Ë¤Ï sgetspent() ¤¬¤Ê¤¤¡£ -.SS ¥ê¥¨¥ó¥È¥é¥ó¥ÈÈÇ -¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÂФ¹¤ë¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤÈƱ¤¸¤è¤¦¤Ë¡¢ -glibc ¤Ë¤Ï shadow ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤ¬¤¢¤ë¡£ +これらの関数はオリジナルの shadow API を構成していた関数であり、 +いろいろなシステムで広く利用可能である。 +.\" libc5 でも利用可能である。 +.\" SUN には sgetspent() がない。 +.SS リエントラント版 +パスワード・データベースに対するリエントラント版と同じように、 +glibc には shadow パスワードファイルに対してリエントラント版がある。 .BR getspnam_r () -´Ø¿ô¤Ï +関数は .BR getspnam () -¤È»÷¤Æ¤¤¤ë¤¬¡¢¼èÆÀ¤·¤¿ shadow ¥Ñ¥¹¥ï¡¼¥É¹½Â¤ÂΤò +と似ているが、取得した shadow パスワード構造体を .I spbuf -¤¬»Ø¤¹Îΰè¤Ë³ÊǼ¤¹¤ë¡£ -shadow ¥Ñ¥¹¥ï¡¼¥É¹½Â¤ÂΤÏʸ»úÎ󷲤ؤΥݥ¤¥ó¥¿¤ò´Þ¤ß¡¢ -¤³¤ì¤é¤Îʸ»úÎ󷲤ϥµ¥¤¥º +が指す領域に格納する。 +shadow パスワード構造体は文字列群へのポインタを含み、 +これらの文字列群はサイズ .I buflen -¤Î¥Ð¥Ã¥Õ¥¡ +のバッファ .I buf -¤Ë³ÊǼ¤µ¤ì¤ë¡£ +に格納される。 .I *spbufp -¤Ë¤Ï (À®¸ù¤·¤¿¾ì¹ç¤Ï) ·ë²Ì¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬³ÊǼ¤µ¤ì¡¢ -(¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Þ¤¿¤Ï¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Ï) -NULL ¤¬³ÊǼ¤µ¤ì¤ë¡£ +には (成功した場合は) 結果へのポインタが格納され、 +(エントリが見つからなかった場合またはエラーが起こった場合は) +NULL が格納される。 .LP -´Ø¿ô +関数 .BR getspent_r (), .BR fgetspent_r (), .BR sgetspent_r () -¤Ï¤½¤ì¤¾¤ì¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤Ê¤¤¥Ð¡¼¥¸¥ç¥ó¤ÈƱÍͤε¡Ç½¤ò»ý¤Ä¡£ +はそれぞれリエントラントでないバージョンと同様の機能を持つ。 .LP -glibc ¤Ç¤Ê¤¤¥·¥¹¥Æ¥à¤Ë¤â¤³¤ì¤é¤ÈƱ¤¸Ì¾Á°¤Î´Ø¿ô¤¬¤¢¤ë¤¬¡¢ -¥×¥í¥È¥¿¥¤¥×¤¬°Û¤Ê¤ë¤³¤È¤â¿¤¤¡£ -.\" SUN ¤Ë¤Ï sgetspent_r() ¤¬¤Ê¤¤¡£ -.SS ¹½Â¤ÂÎ -shadow ¥Ñ¥¹¥ï¡¼¥É¹½Â¤ÂÎ¤Ï \fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +glibc でないシステムにもこれらと同じ名前の関数があるが、 +プロトタイプが異なることも多い。 +.\" SUN には sgetspent_r() がない。 +.SS 構造体 +shadow パスワード構造体は \fI\fP で以下のように定義されている: .sp .in +4n .nf struct spwd { - char *sp_namp; /* ¥í¥°¥¤¥ó̾ */ - char *sp_pwdp; /* °Å¹æ²½¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É */ - long sp_lstchg; /* ºÇ½ª¹¹¿·Æü - (1970-01-01 00:00:00 +0000 (UTC)) ¤«¤é¤ÎÆü¿ô) */ - long sp_min; /* Êѹ¹¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ë¤Þ¤Ç¤ÎºÇûÆü¿ô */ - long sp_max; /* Êѹ¹¤ò¤·¤Ê¤¯¤Æ¤â¤è¤¤ºÇĹÆü¿ô */ - long sp_warn; /* ¥Ñ¥¹¥ï¡¼¥É¤¬´ü¸ÂÀÚ¤ì¤Ë¤Ê¤ëÁ°¤Ë - ¥æ¡¼¥¶¤ËÊѹ¹¤Î·Ù¹ð¤ò½Ð¤¹Æü¿ô */ - long sp_inact; /* ¥Ñ¥¹¥ï¡¼¥É¤¬´ü¸ÂÀÚ¤ì¤Ë¤Ê¤Ã¤Æ¤«¤é - ¥¢¥«¥¦¥ó¥È¤¬Ìµ¸ú¤Ë¤Ê¤ë¤Þ¤Ç¤ÎÆü¿ô */ - long sp_expire; /* ¥¢¥«¥¦¥ó¥È¤¬Ìµ¸ú¤Ë¤Ê¤ëÆüÉÕ - (1970-01-01 00:00:00 +0000 (UTC)) ¤«¤é¤ÎÆü¿ô) */ - unsigned long sp_flag; /* ͽÌó¥Õ¥£¡¼¥ë¥É */ + char *sp_namp; /* ログイン名 */ + char *sp_pwdp; /* 暗号化されたパスワード */ + long sp_lstchg; /* 最終更新日 + (1970-01-01 00:00:00 +0000 (UTC)) からの日数) */ + long sp_min; /* 変更が出来るようになるまでの最短日数 */ + long sp_max; /* 変更をしなくてもよい最長日数 */ + long sp_warn; /* パスワードが期限切れになる前に + ユーザに変更の警告を出す日数 */ + long sp_inact; /* パスワードが期限切れになってから + アカウントが無効になるまでの日数 */ + long sp_expire; /* アカウントが無効になる日付 + (1970-01-01 00:00:00 +0000 (UTC)) からの日数) */ + unsigned long sp_flag; /* 予約フィールド */ }; .fi .in -.SH ÊÖ¤êÃÍ -¥Ý¥¤¥ó¥¿¤òÊÖ¤¹´Ø¿ô¤Ï¡¢¤³¤ì°Ê¾å¥¨¥ó¥È¥ê¤¬¤Ê¤¤¾ì¹ç¤ä -½èÍýÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç NULL ¤òÊÖ¤¹¡£ -\fIint\fP ¤òÊÖ¤êÃͤȤ·¤Æ»ý¤Ä´Ø¿ô¤Ï¡¢ -À®¸ù¤·¤¿¾ì¹ç 0 ¤òÊÖ¤·¡¢¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤òÊÖ¤¹¡£ +.SH 返り値 +ポインタを返す関数は、これ以上エントリがない場合や +処理中にエラーが発生した場合 NULL を返す。 +\fIint\fP を返り値として持つ関数は、 +成功した場合 0 を返し、失敗した場合 \-1 を返す。 .LP -¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤǤʤ¤´Ø¿ô¤Ç¤Ï¡¢ÊÖ¤êÃͤ¬ÀÅŪ¤ÊÎΰè¤ò»Ø¤·¤Æ¤ª¤ê¡¢ -°ú¤­Â³¤¤¤Æ¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¤Ë¾å½ñ¤­¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +リエントラント版でない関数では、返り値が静的な領域を指しており、 +引き続いてこれらの関数を呼び出した場合に上書きされる可能性がある。 .LP -¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤδؿô¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¤Ë 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢¥¨¥é¡¼Èֹ椬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +リエントラント版の関数は、成功した場合に 0 を返す。 +エラーの場合は、エラー番号が返される。 +.SH エラー .TP .B ERANGE -Í¿¤¨¤é¤ì¤¿¥Ð¥Ã¥Õ¥¡¤¬¾®¤µ¤¹¤®¤ë¡£ -.SH ¥Õ¥¡¥¤¥ë +与えられたバッファが小さすぎる。 +.SH ファイル .TP .I /etc/shadow -¥í¡¼¥«¥ë¤Î shadow ¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë +ローカルの shadow パスワード・データベースファイル .TP .I /etc/.pwd.lock -¥í¥Ã¥¯¥Õ¥¡¥¤¥ë +ロックファイル .LP -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +インクルードファイル .I -¤ÏÄê¿ô +は定数 .B _PATH_SHADOW -¤òÄêµÁ¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï shadow ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹Ì¾¤Ç¤¢¤ë¡£ -.SH ½àµò -shadow ¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤È´ØÏ¢ API ¤Ï POSIX.1-2001 -¤Ë¤Ïµ­ºÜ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£¤·¤«¤·¤Ê¤¬¤é¡¢Â¿¤¯¤Î¾¤Î¥·¥¹¥Æ¥à¤Ç¤â -ƱÍͤΠAPI ¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を定義している。 +これは shadow パスワードファイルのパス名である。 +.SH 準拠 +shadow パスワード・データベースと関連 API は POSIX.1-2001 +には記載されていない。しかしながら、多くの他のシステムでも +同様の API が提供されている。 +.SH 関連項目 .BR getgrnam (3), .BR getpwnam (3), .BR getpwnam_r (3), diff --git a/release/man3/getsubopt.3 b/release/man3/getsubopt.3 index 217d0805..00d17163 100644 --- a/release/man3/getsubopt.3 +++ b/release/man3/getsubopt.3 @@ -25,18 +25,18 @@ .\" Translated 2007-06-02, Akihiro MOTOKI .\" .TH GETSUBOPT 3 2010-09-26 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -getsubopt \- ʸ»úÎóÃæ¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó°ú¤­¿ô¤Î²ò¼á¤ò¹Ô¤¦ -.SH ½ñ¼° +.SH 名前 +getsubopt \- 文字列中のサブオプション引き数の解釈を行う +.SH 書式 .B #include .BI "int getsubopt(char **"optionp ", char * const *" tokens \ ", char **" valuep ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR getsubopt (): @@ -50,101 +50,101 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .PD .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR getsubopt () -¤Ï¡¢ +は、 .I optionp -¤ÇÍ¿¤¨¤é¤ì¤¿¥«¥ó¥Þ¶èÀÚ¤ê¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó¡¦¥ê¥¹¥È¤ò²òÀϤ¹¤ë¡£ -(¤³¤Î¤è¤¦¤Ê¥µ¥Ö¥ª¥×¥·¥ç¥ó¡¦¥ê¥¹¥È¤Ï +で与えられたカンマ区切りのサブオプション・リストを解析する。 +(このようなサブオプション・リストは .BR getopt (3) -¤ò»È¤Ã¤Æ¥³¥Þ¥ó¥É¥é¥¤¥ó¤ò²ò¼á¤·¤¿¾ì¹ç¤Ë¸½¤ì¤ë¤³¤È¤¬Â¿¤¤¡£ -Î㤨¤Ð¡¢ +を使ってコマンドラインを解釈した場合に現れることが多い。 +例えば、 .BR mount (8) -¤Î \fI-o\fP ¥ª¥×¥·¥ç¥ó¤ò¸«¤ë¤È¤è¤¤¡£) -¤½¤ì¤¾¤ì¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Ë¤ÏÂбþ¤¹¤ëÃͤò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Î̾Á°¤ÈÂбþ¤¹¤ëÃͤÏÅù¹æ (\(aq=\(aq) ¤Ç¶èÀÚ¤é¤ì¤ë¡£ -Î㤨¤Ð¡¢°Ê²¼¤Î¤è¤¦¤Êʸ»úÎó¤ò +の \fI-o\fP オプションを見るとよい。) +それぞれのサブオプションには対応する値を指定することができる。 +サブオプションの名前と対応する値は等号 (\(aq=\(aq) で区切られる。 +例えば、以下のような文字列を .I optionp -¤ËÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¡£ +に渡すことができる。 .sp .in +4n .B ro,name=xyz .in .I tokens -°ú¤­¿ô¤Ï¥È¡¼¥¯¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¤ÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¡¢ -ÇÛÎó¤Ï NULL ¤Ç½ªÃ¼¤µ¤ì¤ë¡£ +引き数はトークンへのポインタの配列へのポインタで、 +配列は NULL で終端される。 .BR getsubopt () -¤Ï¤³¤Î¥È¡¼¥¯¥ó¤ò +はこのトークンを .I optionp -Æâ¤Çõ¤¹¡£ -¤½¤ì¤¾¤ì¤Î¥È¡¼¥¯¥ó¤Ï¡¢NULL ½ªÃ¼¤µ¤ì¤¿ 1ʸ»ú°Ê¾å¤Îʸ»úÎó¤Ç¡¢ -¾¤Î¥È¡¼¥¯¥ó¤È¶èÊ̤Ǥ­¤ëɬÍפ¬¤¢¤ë¡£ -¤Þ¤¿¡¢Åù¹æ¤È¥«¥ó¥Þ¤ò´Þ¤ó¤Ç¤Ï¤Ê¤é¤Ê¤¤¡£ +内で探す。 +それぞれのトークンは、NULL 終端された 1文字以上の文字列で、 +他のトークンと区別できる必要がある。 +また、等号とカンマを含んではならない。 .BR getsubopt () -¤Ï¸Æ¤Ó½Ð¤µ¤ì¤ë¤¿¤Ó¤Ë¡¢ +は呼び出されるたびに、 .I optionp -Ãæ¤Î¼¡¤Î̤½èÍý¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Î¾ðÊó¤òÊÖ¤¹¡£ -¥µ¥Ö¥ª¥×¥·¥ç¥óÆâ¤ËÅù¹æ¤¬¤¢¤Ã¤¿¾ì¹ç¡¢ºÇ½é¤ÎÅù¹æ¤Ï -¤½¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Î̾Á°¤ÈÃͤζèÀÚ¤ê¤È²ò¼á¤µ¤ì¤ë¡£ -¶èÀڤ꤫¤é¼¡¤Î¥«¥ó¥Þ (ºÇ¸å¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Î¾ì¹ç¡¢Ê¸»úÎó¤ÎËöÈø) -¤Þ¤Ç¤¬¡¢¥µ¥Ö¥ª¥×¥·¥ç¥ó¤ÎÃͤȤʤ롣 -¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Î̾Á°¤¬ +中の次の未処理のサブオプションの情報を返す。 +サブオプション内に等号があった場合、最初の等号は +そのサブオプションの名前と値の区切りと解釈される。 +区切りから次のカンマ (最後のサブオプションの場合、文字列の末尾) +までが、サブオプションの値となる。 +サブオプションの名前が .I tokens -Æâ¤Î̾Á°¤È°ìÃפ·¡¢Ãͤòɽ¤¹Ê¸»úÎ󤬸«¤Ä¤«¤Ã¤¿¾ì¹ç¡¢ +内の名前と一致し、値を表す文字列が見つかった場合、 .BR getsubopt () -¤Ï +は .I *valuep -¤òÃͤòɽ¤¹Ê¸»úÎó¤Î¥¢¥É¥ì¥¹¤ËÀßÄꤹ¤ë¡£ +を値を表す文字列のアドレスに設定する。 .I optionp -Ãæ¤ÎºÇ½é¤Î¥«¥ó¥Þ¤Ï¥Ì¥ë¥Ð¥¤¥È¤Ç¾å½ñ¤­¤µ¤ì¤ë¡£¤½¤Î¤¿¤á¡¢ +中の最初のカンマはヌルバイトで上書きされる。そのため、 .I *valuep -¤Ï¤½¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Î¡ÖÃͤÎʸ»úÎó¡×¤½¤Î¤â¤Î¤È¤Ê¤ë¡£ +はそのサブオプションの「値の文字列」そのものとなる。 -¥µ¥Ö¥ª¥×¥·¥ç¥ó¤¬Ç§¼±¤µ¤ì¤¿¤¬¡¢Ãͤòɽ¤¹Ê¸»úÎ󤬸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ +サブオプションが認識されたが、値を表す文字列が見つからなかった場合、 .RI * valuep -¤Ï NULL ¤ËÀßÄꤵ¤ì¤ë¡£ +は NULL に設定される。 .BR getsubopt () -¤¬ÊÖ¤ë»þ¡¢ +が返る時、 .I optionp -¤Ï¼¡¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó¤ò»Ø¤·¤Æ¤¤¤ë¡£ -¤Á¤ç¤¦¤ÉºÇ¸å¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó¤¬½èÍý¤µ¤ì¤¿¾ì¹ç¤Ï¡¢ -ʸ»úÎóËöÈø¤Î¥Ì¥ë¥Ð¥¤¥È (\(aq\\0\(aq) ¤ò»Ø¤·¤Æ¤¤¤ë¡£ -.SH ÊÖ¤êÃÍ +は次のサブオプションを指している。 +ちょうど最後のサブオプションが処理された場合は、 +文字列末尾のヌルバイト (\(aq\\0\(aq) を指している。 +.SH 返り値 .I optionp -Æâ¤Ç¥µ¥Ö¥ª¥×¥·¥ç¥ó¤¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç¡¢ +内でサブオプションが見つかった場合、 .BR getsubopt () -¤ÏºÇ½é¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Ë¥Þ¥Ã¥Á¤¹¤ë +は最初のサブオプションにマッチする .I tokens -¤ÎÍ×ÁǤÎź»ú¤òÊÖ¤¹¡£ -¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢\-1 ¤òÊÖ¤¹¡£¤³¤Î¾ì¹ç¡¢ +の要素の添字を返す。 +見つからなかった場合、\-1 を返す。この場合、 .I *valuep -¤Ï +は .IB name [= value ] -¤Îʸ»úÎóÁ´ÂΤȤʤ롣 +の文字列全体となる。 .I *optionp -¤ÏÊѹ¹¤µ¤ì¤ë¤Î¤Ç¡¢ +は変更されるので、 .BR getsubopt () -¤ò¸Æ¤Ó½Ð¤¹Á°¤ÎºÇ½é¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Ï +を呼び出す前の最初のサブオプションは .BR getsubopt () -¤ò¸Æ¤Ó½Ð¤·¸å¤Î¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Èɬ¤º¤·¤âƱ¤¸¤È¤Ï¸Â¤é¤Ê¤¤¡£ -.SH ½àµò +を呼び出し後のサブオプションと必ずしも同じとは限らない。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .BR getsubopt () -¤Ï¡¢Ê¸»úÎó +は、文字列 .RI * optionp -Ãæ¤Ë¸«¤Ä¤±¤¿¥«¥ó¥Þ¤ò¾å½ñ¤­¤¹¤ë¤Î¤Ç¡¢Ê¸»úÎó +中に見つけたカンマを上書きするので、文字列 .I *optionp -¤Ï½ñ¤­¹þ¤ß²Äǽ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -ʸ»úÎóÄê¿ô¤Ë¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -.SH Îã -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï "\-o" ¥ª¥×¥·¥ç¥ó¤Ë³¤¤¤Æ¥µ¥Ö¥ª¥×¥·¥ç¥ó¤¬¤¢¤ë¤³¤È¤ò -´üÂÔ¤·¤Æ¤¤¤ë¡£ +は書き込み可能でなければならず、 +文字列定数にすることはできない。 +.SH 例 +以下のプログラムは "\-o" オプションに続いてサブオプションがあることを +期待している。 .nf #define _XOPEN_SOURCE 500 @@ -231,5 +231,5 @@ int main(int argc, char **argv) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getopt (3) diff --git a/release/man3/getttyent.3 b/release/man3/getttyent.3 index 9e9f4c2f..a05cd346 100644 --- a/release/man3/getttyent.3 +++ b/release/man3/getttyent.3 @@ -7,9 +7,9 @@ .\" by Yuichi SATO .\" .TH GETTTYENT 3 2002-07-18 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -getttyent, getttynam, setttyent, endttyent \- ttys ¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥È¥ê¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +getttyent, getttynam, setttyent, endttyent \- ttys ファイルのエントリを取得する +.SH 書式 .B "#include " .sp .B "struct ttyent *getttyent(void);" @@ -19,66 +19,66 @@ getttyent, getttynam, setttyent, endttyent \- ttys .B "int setttyent(void);" .sp .B "int endttyent(void);" -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¥Õ¥¡¥¤¥ë +.SH 説明 +これらの関数はファイル .B _PATH_TTYS -(Î㤨¤Ð +(例えば .IR /etc/ttys ) -¤Ø¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤¹¤ë¡£ +へのインタフェースを提供する。 -´Ø¿ô +関数 .BR setttyent () -¤Ï¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£ -¤Þ¤¿´û¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢´¬¤­Ì᤹¡£ +はファイルをオープンする。 +また既にオープンされている場合は、巻き戻す。 -´Ø¿ô +関数 .BR endttyent () -¤Ï¥Õ¥¡¥¤¥ë¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +はファイルをクローズする。 -´Ø¿ô +関数 .BR getttynam () -¤Ï»ØÄꤵ¤ì¤¿Ã¼Ëö̾¤Ë¤Ä¤¤¤Æ¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤¹¤ë¡£ -¤³¤Î´Ø¿ô¤Ï (°Ê²¼¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë) +は指定された端末名についてファイルを検索する。 +この関数は (以下で説明されている) .I ttyent -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ +構造体へのポインタを返す。 -´Ø¿ô +関数 .BR getttyent () -¤Ï (¤â¤·É¬ÍפǤ¢¤ì¤Ð) ¥Õ¥¡¥¤¥ë +は (もし必要であれば) ファイル .B _PATH_TTYS -¤ò¥ª¡¼¥×¥ó¤·¡¢ºÇ½é¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£ -¥Õ¥¡¥¤¥ë¤¬´û¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¼¡¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£ +をオープンし、最初のエントリを返す。 +ファイルが既にオープンされている場合は、次のエントリを返す。 .I ttyent -¹½Â¤ÂΤϰʲ¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +構造体は以下の通りである。 .in +4n .nf struct ttyent { - char *ty_name; /* üËö¥Ç¥Ð¥¤¥¹Ì¾ */ - char *ty_getty; /* ¼Â¹Ô¤¹¤ë¥³¥Þ¥ó¥É¡£Ä̾ï¤Ï getty */ - char *ty_type; /* termcap ¤Î¤¿¤á¤ÎüËö¥¿¥¤¥× */ - int ty_status; /* ¾õÂ֥ե饰 */ - char *ty_window; /* ¥¦¥£¥ó¥É¥¦¥Þ¥Í¡¼¥¸¥ã¤òµ¯Æ°¤¹¤ë¥³¥Þ¥ó¥É */ - char *ty_comment; /* ¥³¥á¥ó¥È¥Õ¥£¡¼¥ë¥É */ + char *ty_name; /* 端末デバイス名 */ + char *ty_getty; /* 実行するコマンド。通常は getty */ + char *ty_type; /* termcap のための端末タイプ */ + int ty_status; /* 状態フラグ */ + char *ty_window; /* ウィンドウマネージャを起動するコマンド */ + char *ty_comment; /* コメントフィールド */ }; .fi .in .I ty_status -¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«Ãͤò¤È¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +は以下のいずれか値をとることができる。 .br .nf -#define TTY_ON 0x01 /* ¥í¥°¥¤¥ó¤òÍ­¸ú¤Ë¤¹¤ë (ty_getty ¥×¥í¥°¥é¥à¤ò³«»Ï¤¹¤ë) */ -#define TTY_SECURE 0x02 /* ¥æ¡¼¥¶ ID 0 ¤Ç¤Î¥í¥°¥¤¥ó¤òµö²Ä¤¹¤ë */ +#define TTY_ON 0x01 /* ログインを有効にする (ty_getty プログラムを開始する) */ +#define TTY_SECURE 0x02 /* ユーザ ID 0 でのログインを許可する */ .fi -.SH ½àµò -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -BSD ·Ï¤Ë¸ºß¤·¡¢¤ª¤½¤é¤¯Â¾¤Î¥·¥¹¥Æ¥à¤Ë¤â¤¢¤ë¤À¤í¤¦¡£ -.SH Ãí°Õ -Linux ¤Ç¤Ï¡¢¥Õ¥¡¥¤¥ë +.SH 準拠 +POSIX.1-2001 にはない。 +BSD 系に存在し、おそらく他のシステムにもあるだろう。 +.SH 注意 +Linux では、ファイル .I /etc/ttys -¤È¾å¤ÇÀâÌÀ¤·¤¿´Ø¿ô¤Ï»È¤ï¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +と上で説明した関数は使われていない。 +.SH 関連項目 .BR ttyname (3), .BR ttyslot (3) diff --git a/release/man3/getumask.3 b/release/man3/getumask.3 index cf6d6902..59da9c4f 100644 --- a/release/man3/getumask.3 +++ b/release/man3/getumask.3 @@ -27,11 +27,11 @@ .\" Translated Thu 05 Dec 2002 by Akihiro MOTOKI .\" .TH GETUMASK 3 2010-09-10 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -getumask \- ¥Õ¥¡¥¤¥ëºîÀ®¥Þ¥¹¥¯¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +getumask \- ファイル作成マスクを取得する +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B "#include " .br @@ -39,9 +39,9 @@ getumask \- .sp .B "mode_t getumask(void);" .fi -.SH ÀâÌÀ -¤³¤Î´Ø¿ô¤Ï¸½ºß¤Î¥Õ¥¡¥¤¥ëºîÀ®¥Þ¥¹¥¯¤òÊÖ¤¹¡£ -´ðËÜŪ¤Ë¤Ï°Ê²¼¤ÈÅù²Á¤Ç¤¢¤ë¡£ +.SH 説明 +この関数は現在のファイル作成マスクを返す。 +基本的には以下と等価である。 .in +4n .nf @@ -54,15 +54,15 @@ mode_t getumask(void) .fi .in -¥É¥­¥å¥á¥ó¥È¤Ë¤è¤ë¤È¡¢¤³¤Î´Ø¿ô¤Ï -¥¹¥ì¥Ã¥É¡¦¥»¡¼¥Õ¤Ç¤¢¤ë +ドキュメントによると、この関数は +スレッド・セーフである .RB ( umask (2) -¥é¥¤¥Ö¥é¥ê¡¦¥³¡¼¥ë¤È¥í¥Ã¥¯¤ò¶¦Í­¤¹¤ë) -ÅÀ¤¬°Û¤Ê¤ë¡£ -.SH ½àµò -¥É¥­¥å¥á¥ó¥È¤Ë½ñ¤¤¤Æ¤¢¤ë¤À¤±¤Î GNU ³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -¥Ð¡¼¥¸¥ç¥ó 2.9 »þÅÀ¤Î glibc ¤Ç¤Ï¡¢ -¤³¤Î´Ø¿ô¤Ë¤Ä¤¤¤Æ¤Îµ­ºÜ¤Ï¤¢¤ë¤¬¡¢¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +ライブラリ・コールとロックを共有する) +点が異なる。 +.SH 準拠 +ドキュメントに書いてあるだけの GNU 拡張である。 +.SH 注意 +バージョン 2.9 時点の glibc では、 +この関数についての記載はあるが、まだ実装されていない。 +.SH 関連項目 .BR umask (2) diff --git a/release/man3/getusershell.3 b/release/man3/getusershell.3 index 523a22e3..8c51572c 100644 --- a/release/man3/getusershell.3 +++ b/release/man3/getusershell.3 @@ -30,9 +30,9 @@ .\" Translated Mon Sep 8 15:02:18 1997 .\" by ISHIOKA Takashi .TH GETUSERSHELL 3 2007-07-26 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -getusershell, setusershell, endusershell \- µö²Ä¤µ¤ì¤¿¥æ¡¼¥¶¥·¥§¥ë¤òÆÀ¤ë -.SH ½ñ¼° +.SH 名前 +getusershell, setusershell, endusershell \- 許可されたユーザシェルを得る +.SH 書式 .nf .B #include .sp @@ -44,9 +44,9 @@ getusershell, setusershell, endusershell \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -57,31 +57,31 @@ glibc _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR getusershell () -´Ø¿ô¤Ï \fI/etc/shells\fP ¥Õ¥¡¥¤¥ë¤«¤é -(³«¤¯É¬Íפ¬¤¢¤ì¤Ð¤³¤Î¥Õ¥¡¥¤¥ë¤ò³«¤¤¤Æ¤«¤é) ¸½ºß¹Ô¤Î¼¡¤Î°ì¹Ô¤òÊÖ¤¹¡£ -ÊÖ¤µ¤ì¤¿¹Ô¤ÎÃæ¿È¤ÏÍ­¸ú¤Ê¥æ¡¼¥¶¥·¥§¥ë¤Î¤¦¤Á¤Î°ì¤Ä¤Î¥Ñ¥¹Ì¾¤Ç¤¢¤ë¡£ -(ÌõÃí. °ì¹Ô¤ËÉÕ¤­°ì¤Ä¤Î¥·¥§¥ë¤Î¥Ñ¥¹Ì¾¤¬½ñ¤«¤ì¤Æ¤¤¤ë¡£) -¤â¤· \fI/etc/shells\fP ¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢Æɤ߹þ¤ßÉԲĤξì¹ç¤Ë¤Ï¡¢ +関数は \fI/etc/shells\fP ファイルから +(開く必要があればこのファイルを開いてから) 現在行の次の一行を返す。 +返された行の中身は有効なユーザシェルのうちの一つのパス名である。 +(訳注. 一行に付き一つのシェルのパス名が書かれている。) +もし \fI/etc/shells\fP が存在しないか、読み込み不可の場合には、 .BR getusershell () -¤Ï \fI/bin/sh\fP ¤È \fI/bin/csh\fP -¤¬¥Õ¥¡¥¤¥ë¤Ëµ­¤µ¤ì¤Æ¤¤¤ë¤«¤Î¤è¤¦¤Ë¤Õ¤ë¤Þ¤¦¡£ +は \fI/bin/sh\fP と \fI/bin/csh\fP +がファイルに記されているかのようにふるまう。 .PP .BR setusershell () -´Ø¿ô¤Ï \fI/etc/shells\fP ¥Õ¥¡¥¤¥ë¤Î -¥Õ¥¡¥¤¥ë¥Ý¥¤¥ó¥¿¤òÀèƬ¤ËÌ᤹¡£ +関数は \fI/etc/shells\fP ファイルの +ファイルポインタを先頭に戻す。 .PP .BR endusershell () -´Ø¿ô¤Ï \fI/etc/shells\fP ¥Õ¥¡¥¤¥ë¤òÊĤ¸¤ë¡£ -.SH ÊÖ¤êÃÍ +関数は \fI/etc/shells\fP ファイルを閉じる。 +.SH 返り値 .BR getusershell () -´Ø¿ô¤Ï¥Õ¥¡¥¤¥ë¤Î½ªÃ¼¤Ç¤ÏNULL ¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -.SH ¥Õ¥¡¥¤¥ë +関数はファイルの終端ではNULL ポインタを返す。 +.SH ファイル .nf /etc/shells .fi -.SH ½àµò +.SH 準拠 4.3BSD. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR shells (5) diff --git a/release/man3/getutent.3 b/release/man3/getutent.3 index 293abee7..ec1a1aa6 100644 --- a/release/man3/getutent.3 +++ b/release/man3/getutent.3 @@ -35,10 +35,10 @@ .\" Updated 2008-08-11, Akihiro MOTOKI, LDP v3.05 .\" .TH GETUTENT 3 2008-06-29 "" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 getutent, getutid, getutline, pututline, setutent, endutent, utmpname \- -utmp ¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥È¥ê¤Ë¥¢¥¯¥»¥¹¤¹¤ë -.SH ½ñ¼° +utmp ファイルのエントリにアクセスする +.SH 書式 .B #include .sp .B struct utmp *getutent(void); @@ -54,120 +54,120 @@ utmp .B void endutent(void); .sp .BI "int utmpname(const char *" file ); -.SH ÀâÌÀ -¿·¤·¤¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢¤³¤ì¤é¤Î´Ø¿ô¤Î "utmpx" ÈǤò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Ï POSIX.1 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£¡Ö½àµò¡×¤ÎÀá¤ò»²¾È¡£ +.SH 説明 +新しいアプリケーションでは、これらの関数の "utmpx" 版を使用すべきである。 +これらは POSIX.1 で規定されている。「準拠」の節を参照。 .BR utmpname () -¤Ï¡¢Â¾¤Î utmp ´Ø¿ô¤¬¥¢¥¯¥»¥¹¤¹¤ë (utmp ¥Õ¥©¡¼¥Þ¥Ã¥È¤Î) -¥Õ¥¡¥¤¥ë¤Î̾Á°¤ò»ØÄꤹ¤ë¡£Â¾¤Î´Ø¿ô¤ò»È¤¦Á°¤Ë +は、他の utmp 関数がアクセスする (utmp フォーマットの) +ファイルの名前を指定する。他の関数を使う前に .BR utmpname () -¤ò»È¤Ã¤Æ -¥Õ¥¡¥¤¥ë̾¤Î»ØÄê¤ò¹Ô¤ï¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ \fI\fP ¤Ç -ÄêµÁ¤µ¤ì¤Æ¤¤¤ë \fB_PATH_UTMP\fP ¤¬¥Õ¥¡¥¤¥ë̾¤È¤ß¤Ê¤µ¤ì¤ë¡£ +を使って +ファイル名の指定を行わなかった場合は、 \fI\fP で +定義されている \fB_PATH_UTMP\fP がファイル名とみなされる。 .PP .BR setutent () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ý¥¤¥ó¥¿¤ò utmp ¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤Ë°ÜÆ°¤¹¤ë¡£ -°ìÈÌŪ¤Ë¤Ï¡¢Â¾¤Î´Ø¿ô¤ò»È¤¦Á°¤Ë¤³¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤Æ¤ª¤¯¤ÈÎɤ¤¤À¤í¤¦¡£ +は、ファイルポインタを utmp ファイルの先頭に移動する。 +一般的には、他の関数を使う前にこの関数を呼び出しておくと良いだろう。 .PP .BR endutent () -¤Ï utmp ¥Õ¥¡¥¤¥ë¤ò¥¯¥í¡¼¥º¤¹¤ë¡£¥æ¡¼¥¶¡¼¥³¡¼¥É¤Ç -¾¤Î´Ø¿ô¤ò»È¤Ã¤Æ¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤ò¹Ô¤Ã¤¿»þ¤Ï¡¢ºÇ¸å¤Ë¤³¤Î´Ø¿ô¤ò -¸Æ¤Ó½Ð¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +は utmp ファイルをクローズする。ユーザーコードで +他の関数を使ってこのファイルにアクセスを行った時は、最後にこの関数を +呼び出すべきである。 .PP .BR getutent () -¤Ï utmp ¥Õ¥¡¥¤¥ë¤Î¸½ºß¤Î¥Õ¥¡¥¤¥ë°ÌÃÖ¤«¤é°ì¹ÔÆɤ߹þ¤ß¡¢ -¹Ô¤Î³Æ¥Õ¥£¡¼¥ë¥É¤ÎÆâÍƤò¼ý¤á¤¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤Î¹½Â¤ÂΤÎÄêµÁ¤Ï +は utmp ファイルの現在のファイル位置から一行読み込み、 +行の各フィールドの内容を収めた構造体へのポインタを返す。 +この構造体の定義は .BR utmp (5) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ +に書かれている。 .PP .BR getutid () -¤Ï¡¢ utmp ¥Õ¥¡¥¤¥ëÃæ¤Î¸½ºß¤Î°ÌÃÖ¤«¤é½çÊý¸þ -(ËöÈø¤Ë¸þ¤«¤¦Êý¸þ) ¤Ø \fIut\fP ¤Ë´ð¤¯¸¡º÷¤ò¹Ô¤¦¡£ \fIut\fP\->ut_type ¤¬ -\fBRUN_LVL\fP, \fBBOOT_TIME\fP, \fBNEW_TIME\fP, \fBOLD_TIME\fP ¤Î -¤¤¤º¤ì¤«¤Ê¤é¡¢ +は、 utmp ファイル中の現在の位置から順方向 +(末尾に向かう方向) へ \fIut\fP に基く検索を行う。 \fIut\fP\->ut_type が +\fBRUN_LVL\fP, \fBBOOT_TIME\fP, \fBNEW_TIME\fP, \fBOLD_TIME\fP の +いずれかなら、 .BR getutid () -¤Ï \fBut_type\fP ¥Õ¥£¡¼¥ë¥É¤¬ -\fIut\fP\->ut_type ¤Ë°ìÃפ¹¤ëºÇ½é¤Î¥¨¥ó¥È¥ê¤òõ¤¹¡£ -\fIut\fP\->ut_type ¤¬ \fBINIT_PROCESS\fP, \fBLOGIN_PROCESS\fP, -\fBUSER_PROCESS\fP, \fBDEAD_PROCESS\fP ¤Î¤¤¤º¤ì¤«¤Ê¤é¡¢ +は \fBut_type\fP フィールドが +\fIut\fP\->ut_type に一致する最初のエントリを探す。 +\fIut\fP\->ut_type が \fBINIT_PROCESS\fP, \fBLOGIN_PROCESS\fP, +\fBUSER_PROCESS\fP, \fBDEAD_PROCESS\fP のいずれかなら、 .BR getutid () -¤Ï +は .I ut_id -¥Õ¥£¡¼¥ë¥É¤¬ \fIut\fP\->ut_id ¤Ë -°ìÃפ¹¤ëºÇ½é¤Î¥¨¥ó¥È¥ê¤òõ¤¹¡£ +フィールドが \fIut\fP\->ut_id に +一致する最初のエントリを探す。 .PP .BR getutline () -¤Ï¡¢ utmp ¥Õ¥¡¥¤¥ë¤Î¸½ºß¤Î°ÌÃÖ¤«¤éËöÈø¤Ë¸þ¤«¤Ã¤Æ¸¡º÷¤ò¹Ô¤¦¡£ +は、 utmp ファイルの現在の位置から末尾に向かって検索を行う。 .I ut_type -¤¬ \fBUSER_PROCESS\fP ¤Þ¤¿¤Ï \fBLOGIN_PROCESS\fP ¤Ç¡¢ +が \fBUSER_PROCESS\fP または \fBLOGIN_PROCESS\fP で、 .I ut_line -¥Õ¥£¡¼¥ë¥É¤¬ \fIut\fP->ut_line ¤Ë¥Þ¥Ã¥Á¤¹¤ëºÇ½é¤Î¹Ô¤òÊÖ¤¹¡£ +フィールドが \fIut\fP->ut_line にマッチする最初の行を返す。 .PP .BR pututline () -¤Ï +は .I utmp -¹½Â¤ÂÎ \fIut\fP ¤ÎÆâÍƤò utmp ¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤¹¡£ +構造体 \fIut\fP の内容を utmp ファイルに書き出す。 .BR pututline () -¤Ï +は .BR getutid () -¤òÍѤ¤¤Æ¡¢¿·¤¿¤Ê¥¨¥ó¥È¥ê¤ò -ÁÞÆþ¤¹¤ë¤Î¤Ë¤Õ¤µ¤ï¤·¤¤¾ì½ê¤òõ¤¹¡£ \fIut\fP ¤òÁÞÆþ¤¹¤ë¤Õ¤µ¤ï¤·¤¤¾ì½ê¤¬ -¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï¡¢¿·¤¿¤Ê¥¨¥ó¥È¥ê¤ò¥Õ¥¡¥¤¥ë¤ÎËöÈø¤ËÄɲ乤롣 -.SH ÊÖ¤êÃÍ +を用いて、新たなエントリを +挿入するのにふさわしい場所を探す。 \fIut\fP を挿入するふさわしい場所が +見つからない場合は、新たなエントリをファイルの末尾に追加する。 +.SH 返り値 .BR getutent (), .BR getutid (), .BR getutline () -¤Ï¡¢À®¸ù¤¹¤ë¤È \fIstruct utmp\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¼ºÇÔ¤¹¤ë¤È NULL ¤òÊÖ¤¹ (¥ì¥³¡¼¥É¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤â¼ºÇԤȤʤë)¡£ -¤³¤Î \fIstruct utmp\fP ¤ÏÀÅŪ¤Êµ­²±Îΰè¤Ë³ÎÊݤµ¤ì¡¢¼¡¤Ë¤³¤ì¤é¤Î´Ø¿ô¤ò -¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¾å½ñ¤­¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +は、成功すると \fIstruct utmp\fP へのポインタを返す。 +失敗すると NULL を返す (レコードが見つからなかった場合も失敗となる)。 +この \fIstruct utmp\fP は静的な記憶領域に確保され、次にこれらの関数を +呼び出した際に上書きされるかもしれない。 .BR pututline () -¤ÏÀ®¸ù¤¹¤ë¤È +は成功すると .I ut -¤òÊÖ¤¹¡£¼ºÇÔ¤¹¤ë¤È NULL ¤òÊÖ¤¹¡£ +を返す。失敗すると NULL を返す。 .BR utmpname () -¤Ï¡¢¿·¤·¤¤Ì¾Á°¤Î³ÊǼ¤ËÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤·¡¢¼ºÇÔ¤¹¤ë¤È \-1 ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +は、新しい名前の格納に成功すると 0 を返し、失敗すると \-1 を返す。 +.SH エラー .TP .B ENOMEM -¥á¥â¥êÉÔ­¡£ +メモリ不足。 .TP .B ESRCH -¥ì¥³¡¼¥É¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£ +レコードが見つからなかった。 .PP -´Ø¿ô +関数 .BR setutent (), .BR pututline (), .BR getut* () -¤Ï +は .BR open (2) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ëÍýͳ¤Ç¤â¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ë¡£ -.SH ¥Õ¥¡¥¤¥ë -/var/run/utmp ¸½ºß¥í¥°¥¤¥óÃæ¤Î¥æ¡¼¥¶¡¼¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹ +に書かれている理由でも失敗することがある。 +.SH ファイル +/var/run/utmp 現在ログイン中のユーザーのデータベース .br -/var/log/wtmp ²áµî¤Î¥æ¡¼¥¶¡¼¥í¥°¥¤¥ó¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹ -.SH ½àµò +/var/log/wtmp 過去のユーザーログインのデータベース +.SH 準拠 XPG2, SVr4. .LP -XPG2 ¤È SVID 2 ¤Ç¤Ï¡¢ +XPG2 と SVID 2 では、 .BR pututline () -´Ø¿ô¤ÏÃͤòÊÖ¤µ¤Ê¤¤¤È¤µ¤ì¤Æ¤ª¤ê¡¢ -(AIX, HP-UX, Linux libc5 ¤Ê¤É¤Î) ¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¤½¤¦¤Ê¤Ã¤Æ¤¤¤ë¡£ -HP-UX ¤Ç¤Ï¡¢¾å½Ò¤Î +関数は値を返さないとされており、 +(AIX, HP-UX, Linux libc5 などの) 多くのシステムではそうなっている。 +HP-UX では、上述の .BR pututline () -¤ÈƱ¤¸¥×¥í¥È¥¿¥¤¥×¤ò»ý¤Ä -¿·¤·¤¤´Ø¿ô +と同じプロトタイプを持つ +新しい関数 .BR _pututline () -¤¬Æ³Æþ¤µ¤ì¤Æ¤¤¤ë -(¤³¤Î´Ø¿ô¤Ï Linux libc5 ¤Ë¤â¤¢¤ë)¡£ +が導入されている +(この関数は Linux libc5 にもある)。 .LP -¸½ºß¤Ç¤Ï¡¢Linux °Ê³°¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤ì¤é¤Î´Ø¿ô¤ÏÁ´¤ÆÇѻߤµ¤ì¤Æ¤¤¤ë¡£ -SUSv1 ¤Î¸å¤Ë½Ð¤Æ¤­¤¿ POSIX.1-2001 ¤Ç¤Ï¡¢¤â¤Ï¤ä¤³¤ì¤é¤Î´Ø¿ô¤Ï¤Ê¤¯¡¢ -Âå¤ï¤ê¤Ë°Ê²¼¤Î¤â¤Î¤ò»È¤¦¡£ +現在では、Linux 以外のシステムでは、これらの関数は全て廃止されている。 +SUSv1 の後に出てきた POSIX.1-2001 では、もはやこれらの関数はなく、 +代わりに以下のものを使う。 .sp .B #include .sp @@ -183,37 +183,37 @@ SUSv1 .br .B void endutxent(void); .PP -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¤Ë¤è¤êÄ󶡤µ¤ì¤Æ¤ª¤ê¡¢ -"x" ¤¬¤Ê¤¤´Ø¿ô¤ÈƱ¤¸½èÍý¤ò¹Ô¤¦¤¬¡¢ +これらの関数は glibc により提供されており、 +"x" がない関数と同じ処理を行うが、 .I "struct utmpx" -¤ò»ÈÍѤ¹¤ë¡£ -Linux ¤Ç¤Ï¡¢¤³¤Î¹½Â¤ÂΤÎÄêµÁ¤Ï +を使用する。 +Linux では、この構造体の定義は .I "struct utmp" -¤ÈƱ¤¸¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -´°Á´¤ò´ü¤¹¤¿¤á¤Ë¡¢glibc ¤Ç¤Ï +と同じになっている。 +完全を期すために、glibc では .BR utmpxname () -¤âÄ󶡤·¤Æ¤¤¤ë¡£¤³¤Î´Ø¿ô¤Ï POSIX.1 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +も提供している。この関数は POSIX.1 では規定されていない。 .PP -Linux °Ê³°¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -\fIutmpx\fP ¹½Â¤ÂÎ¤Ï \fIutmp\fP ¹½Â¤ÂΤξå°Ì½¸¹ç (superset) ¤Ë¤Ê¤Ã¤Æ¤¤¤Æ¡¢ -ÄɲäΥե£¡¼¥ë¥É¤¬¤¢¤Ã¤¿¤ê¡¢´û¸¤Î¥Õ¥£¡¼¥ë¥É¤Î¥µ¥¤¥º¤¬Â礭¤¯¤Ê¤Ã¤Æ¤¤¤¿¤ê -¤¹¤ë¤â¤Î¤â¤¢¤ë¡£Ê£¿ô¤Î¥Õ¥¡¥¤¥ë¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¾ì¹ç¤â¤¢¤ê¡¢Â¿¤¯¤Î¾ì¹ç +Linux 以外のシステムでは、 +\fIutmpx\fP 構造体は \fIutmp\fP 構造体の上位集合 (superset) になっていて、 +追加のフィールドがあったり、既存のフィールドのサイズが大きくなっていたり +するものもある。複数のファイルが使用されている場合もあり、多くの場合 .I /var/*/utmpx -¤È +と .I /var/*/wtmpx -¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬»È¤ï¤ì¤ë¡£ +というファイルが使われる。 .LP -°ìÊý¡¢ Linux glibc ¤Ç¤ÏÊ£¿ô¤Î \fIutmpx\fP ¥Õ¥¡¥¤¥ë ¤Ï»È¤ï¤ì¤Æ¤¤¤Ê¤¤¡£ -\fIutmp\fP ¹½Â¤ÂΤ¬½½Ê¬¤ËÂ礭¤¤¤«¤é¤Ç¤¢¤ë¡£ -\fIgetutxent\fP() ¤Ê¤É¤Î´Ø¿ô¤Ï \fIgetutent\fP() ¤Ê¤É¤ÎÊÌ̾¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -.SS glibc ¤Ç¤ÎÃí°Õ -¾åµ­¤Î´Ø¿ô·²¤Ï¥¹¥ì¥Ã¥É¡¦¥»¡¼¥Õ¤Ç¤Ï¤Ê¤¤¡£ -glibc ¤Ë¤Ï¥ê¥¨¥ó¥È¥é¥ó¥ÈÈÇ (reentrant) ¤¬Äɲ䵤ì¤Æ¤¤¤ë¡£ +一方、 Linux glibc では複数の \fIutmpx\fP ファイル は使われていない。 +\fIutmp\fP 構造体が十分に大きいからである。 +\fIgetutxent\fP() などの関数は \fIgetutent\fP() などの別名となっている。 +.SH 注意 +.SS glibc での注意 +上記の関数群はスレッド・セーフではない。 +glibc にはリエントラント版 (reentrant) が追加されている。 .sp .nf .BR "#define _GNU_SOURCE" " /* or _SVID_SOURCE or _BSD_SOURCE; -.RB "\& " feature_test_macros(7) " »²¾È */" +.RB "\& " feature_test_macros(7) " 参照 */" .B #include .sp .BI "int getutent_r(struct utmp *" ubuf ", struct utmp **" ubufp ); @@ -225,23 +225,23 @@ glibc .BI " struct utmp *" ubuf ", struct utmp **" ubufp ); .fi .sp -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ¤Ç¤Î³ÈÄ¥¤Ç¤¢¤ê¡¢ËöÈø¤Î _r ¤ò¤È¤Ã¤¿Ì¾Á°¤Î´Ø¿ô¤È -ƱÍͤε¡Ç½¤ò»ý¤Ä¡£ +これらの関数は GNU での拡張であり、末尾の _r をとった名前の関数と +同様の機能を持つ。 .I ubuf -¥Ñ¥é¥á¡¼¥¿¤Ï·ë²Ì¤ò³ÊǼ¤¹¤ë¾ì½ê¤ò»ØÄꤹ¤ë¡£ -À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤·¡¢·ë²Ì¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò +パラメータは結果を格納する場所を指定する。 +成功すると 0 を返し、結果へのポインタを .I *ubufp -¤Ë½ñ¤­¹þ¤à¡£¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤¹¡£ -¾åµ­¤Î´Ø¿ô¤ËÂбþ¤¹¤ë utmpx ÈǤϸºß¤·¤Ê¤¤ -(POSIX.1 ¤Ç¤Ï¤³¤ì¤é¤Î´Ø¿ô¤òµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤)¡£ -.SH Îã -°Ê²¼¤ÎÎã¤Ç¤Ï¡¢ utmp ¤Î¥ì¥³¡¼¥É¤ÎÄɲᦺï½ü¤ò¹Ô¤Ã¤Æ¤¤¤ë¡£¤³¤Î¥³¡¼¥É¤Ï¡¢ -µ¼»÷üËö (pseudo terminal) ¤«¤é¼Â¹Ô¤µ¤ì¤ë¤³¤È¤òÁÛÄꤷ¤Æ¤¤¤ë¡£ -¼ÂºÝ¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï +に書き込む。エラーの場合 \-1 を返す。 +上記の関数に対応する utmpx 版は存在しない +(POSIX.1 ではこれらの関数を規定されていない)。 +.SH 例 +以下の例では、 utmp のレコードの追加・削除を行っている。このコードは、 +擬似端末 (pseudo terminal) から実行されることを想定している。 +実際のアプリケーションでは .BR getpwuid (3) -¤È +と .BR ttyname (3) -¤ÎÌá¤êÃͤò¸¡ºº¤¹¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +の戻り値を検査するべきである。 .PP .nf #include @@ -284,6 +284,6 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getutmp (3), .BR utmp (5) diff --git a/release/man3/getw.3 b/release/man3/getw.3 index d5fbe933..21784f95 100644 --- a/release/man3/getw.3 +++ b/release/man3/getw.3 @@ -28,9 +28,9 @@ .\" the source, must acknowledge the copyright and authors of this work. .\" License. .TH GETW 3 2010-09-26 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -getw, putw \- ¥ï¡¼¥É(int)¤ÎÆþ½ÐÎÏ -.SH ½ñ¼° +.SH 名前 +getw, putw \- ワード(int)の入出力 +.SH 書式 .nf .B #include .sp @@ -40,9 +40,9 @@ getw, putw \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR getw (), @@ -51,44 +51,44 @@ glibc .PD 0 .RS 4 .TP 4 -glibc 2.3.3 °Ê¹ß: +glibc 2.3.3 以降: _SVID_SOURCE || _BSD_SOURCE || .br (_XOPEN_SOURCE && !(_POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600)) .TP -glibc 2.3.3 ¤è¤êÁ°: +glibc 2.3.3 より前: _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE .RE .PD .ad -.SH ÀâÌÀ +.SH 説明 .BR getw () -¤Ï \fIstream\fP ¤«¤é¥ï¡¼¥É (\fIint\fP·¿) ¤òÆɤ߹þ¤à¡£ -¤³¤Î´Ø¿ô¤Ï¡¢SVr4 ¤È¤Î¸ß´¹À­¤Î¤¿¤á¤ËÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î´Ø¿ô¤ÎÂå¤ï¤ê¤Ë +は \fIstream\fP からワード (\fIint\fP型) を読み込む。 +この関数は、SVr4 との互換性のために提供されている。 +この関数の代わりに .BR fread (3) -¤ò»ÈÍѤ¹¤ë¤³¤È¤ò´«¤á¤ë¡£ +を使用することを勧める。 .P .BR putw () -¤Ï \fIstream\fP ¤Ë¥ï¡¼¥É \fIw\fP (\fIint\fP·¿) ¤ò½ñ¤­¹þ¤à¡£ -¤³¤Î´Ø¿ô¤Ï SVr4 ¤È¤Î¸ß´¹À­¤Î¤¿¤á¤ËÄ󶡤µ¤ì¤Æ¤¤¤ë¤¬¡¢¤³¤Î´Ø¿ô¤ÎÂå¤ï¤ê¤Ë +は \fIstream\fP にワード \fIw\fP (\fIint\fP型) を書き込む。 +この関数は SVr4 との互換性のために提供されているが、この関数の代わりに .BR fwrite (3) -¤ò»ÈÍѤ¹¤ë¤³¤È¤ò´«¤á¤ë¡£ -.SH ÊÖ¤êÃÍ -Ä̾ +を使用することを勧める。 +.SH 返り値 +通常、 .BR getw () -¤ÏÆɤ߹þ¤ó¤À¥ï¡¼¥É¤òÊÖ¤·¡¢ +は読み込んだワードを返し、 .BR putw () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï \fBEOF\fP ¤òÊÖ¤¹¡£ -.SH ½àµò -SVr4, SUSv2. POSIX.1-2001 ¤Ë¤Ï¸ºß¤·¤Ê¤¤¡£ -.SH ¥Ð¥° -¥¨¥é¡¼¤Î»þ¤ËÊÖ¤µ¤ì¤ëÃͤϡ¢Àµ¤·¤¤¥Ç¡¼¥¿¤È¤·¤ÆÊÖ¤µ¤ì¤ë¤³¤È¤â¤¢¤ë¡£ +は 0 を返す。 +エラーが発生した場合、これらの関数は \fBEOF\fP を返す。 +.SH 準拠 +SVr4, SUSv2. POSIX.1-2001 には存在しない。 +.SH バグ +エラーの時に返される値は、正しいデータとして返されることもある。 .BR ferror (3) -¤òÍѤ¤¤ë¤È¡¢¤³¤ÎÆó¤Ä¤Î¾ì¹ç¤ò¶èÊ̤¹¤ë¤³¤È¤¬½ÐÍè¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を用いると、この二つの場合を区別することが出来る。 +.SH 関連項目 .BR ferror (3), .BR fread (3), .BR fwrite (3), diff --git a/release/man3/getwchar.3 b/release/man3/getwchar.3 index 878f0068..0c8ba45f 100644 --- a/release/man3/getwchar.3 +++ b/release/man3/getwchar.3 @@ -19,46 +19,46 @@ .\" Updated Sat Nov 3 JST 2001 by Kentaro Shirakata .\" .TH GETWCHAR 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -getwchar \- ɸ½àÆþÎϤè¤ê¥ï¥¤¥Éʸ»ú¤òÆɤ߹þ¤à -.SH ½ñ¼° +.SH 名前 +getwchar \- 標準入力よりワイド文字を読み込む +.SH 書式 .nf .B #include .sp .B "wint_t getwchar(void);" .fi -.SH ÀâÌÀ +.SH 説明 .BR getwchar () -´Ø¿ô¤Ï +関数は .BR getchar (3) -´Ø¿ô¤Î¥ï¥¤¥Éʸ»úÈǤǤ¢¤ë¡£ -\fBstdin\fP ¤«¤é¥ï¥¤¥Éʸ»ú¤òÆɤ߹þ¤ó¤Ç¤½¤ì¤òÊÖ¤¹¡£ -¥¹¥È¥ê¡¼¥à¤ÎºÇ¸å¤Ë㤷¤Æ¤¤¤ë¾ì¹ç¤ä \fIferror(stdin)\fP ¤¬¿¿¤Î¾ì¹ç¤Ë¤Ï +関数のワイド文字版である。 +\fBstdin\fP からワイド文字を読み込んでそれを返す。 +ストリームの最後に達している場合や \fIferror(stdin)\fP が真の場合には .B WEOF -¤òÊÖ¤¹¡£¥ï¥¤¥Éʸ»úÊÑ´¹¤Ç¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Ë¤Ï \fIerrno\fP ¤Ë -\fBEILSEQ\fP ¤òÀßÄꤷ¤Æ +を返す。ワイド文字変換でエラーが起こった場合には \fIerrno\fP に +\fBEILSEQ\fP を設定して .B WEOF -¤òÊÖ¤¹¡£ +を返す。 .PP -¤³¤ì¤é¤Î½èÍý¤ò¥í¥Ã¥¯¤»¤º¤Ë¹Ô¤¤¤¿¤¤¤È¤­¤Ï¡¢ +これらの処理をロックせずに行いたいときは、 .BR unlocked_stdio (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ +を参照のこと。 +.SH 返り値 .BR getwchar () -´Ø¿ô¤Ïɸ½àÆþÎϤμ¡¤Î¥ï¥¤¥Éʸ»ú¤òÊÖ¤¹¤«¡¢ +関数は標準入力の次のワイド文字を返すか、 .B WEOF -¤òÊÖ¤¹¡£ -.SH ½àµò +を返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR getwchar () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ +カテゴリに依存している。 .PP .BR getwchar () -¤¬¼ÂºÝ¤Ë¤Ïɸ½àÆþÎϤ«¤é¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤òÆɤ߹þ¤ó¤Ç -¥ï¥¤¥Éʸ»ú¤ËÊÑ´¹¤¹¤ë¤³¤È¤ò´üÂÔ¤·¤Æ¤âÎɤ¤¡£ -.SH ´ØÏ¢¹àÌÜ +が実際には標準入力からマルチバイト列を読み込んで +ワイド文字に変換することを期待しても良い。 +.SH 関連項目 .BR fgetwc (3), .BR unlocked_stdio (3) diff --git a/release/man3/glob.3 b/release/man3/glob.3 index da166d5d..a7ef41ba 100644 --- a/release/man3/glob.3 +++ b/release/man3/glob.3 @@ -35,10 +35,10 @@ .\" Updated 2008-02-12, Akihiro MOTOKI , LDP v2.77 .\" .TH GLOB 3 2007-10-10 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -glob, globfree \- ¥Ñ¥¿¡¼¥ó¤Ë¥Þ¥Ã¥Á¤¹¤ë¥Ñ¥¹Ì¾¤ò¸«ÉÕ¤±¤ë¡£glob() ¤Ë¤è¤Ã -¤Æ³ÎÊݤµ¤ì¤¿¥á¥â¥êÎΰè¤ò²òÊü¤¹¤ë¡£ -.SH ½ñ¼° +.SH 名前 +glob, globfree \- パターンにマッチするパス名を見付ける。glob() によっ +て確保されたメモリ領域を解放する。 +.SH 書式 .nf .B #include .sp @@ -50,253 +50,253 @@ glob, globfree \- .br .BI "void globfree(glob_t *" pglob ); .fi -.SH ÀâÌÀ +.SH 説明 .BR glob () -´Ø¿ô¤Ï¥·¥§¥ë¤¬ÍѤ¤¤Æ¤¤¤ë¥ë¡¼¥ë +関数はシェルが用いているルール .RB ( glob (7) -»²¾È) ¤Ë´ð¤Å¤¤¤Æ¥Ñ¥¿¡¼¥ó +参照) に基づいてパターン .I pattern -¤Ë¥Þ¥Ã¥Á¤¹¤ë¤¹¤Ù¤Æ¤Î¥Ñ¥¹Ì¾¤ò¸¡º÷¤¹¤ë¡£ -¥Á¥ë¥À (~) ¤ÎŸ³«¤ä¥Ñ¥é¥á¡¼¥¿ÃÖ´¹¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£¤½¤ì¤é¤ò¹Ô¤¤¤¿¤¤¾ì¹ç¤Ï +にマッチするすべてのパス名を検索する。 +チルダ (~) の展開やパラメータ置換は行われない。それらを行いたい場合は .BR wordexp (3) -¤ò»È¤¦¤È¤è¤¤¡£ +を使うとよい。 .PP .BR globfree () -´Ø¿ô¤ÏÁ°¤Ë¸Æ¤Ð¤ì¤¿ +関数は前に呼ばれた .BR glob () -¤Ë¤è¤êưŪ¤Ë³ÎÊݤµ¤ì¤¿µ­²±Îΰè¤ò²òÊü¤¹¤ë¡£ +により動的に確保された記憶領域を解放する。 .PP .BR glob () -¤Î·ë²Ì¤Ï +の結果は .I pglob -¤¬¥Ý¥¤¥ó¥È¤¹¤ë¹½Â¤ÂΤËÊÖ¤µ¤ì¤ë¡£ +がポイントする構造体に返される。 .I pglob -¤Ï +は .I glob_t -·¿¤Î¹½Â¤ÂΤǤ¢¤ë¡£ +型の構造体である。 .I glob_t -·¿¤Ï +型は .I -Æâ¤ÇÀë¸À¤µ¤ì¤Æ¤ª¤ê¡¢°Ê²¼¤ÎÍ×ÁǤò´Þ¤ó¤Ç¤¤¤ë¡£¤³¤ì¤é¤ÎÍ×ÁÇ¤Ï POSIX.2 ¤ÇÄêµÁ -¤µ¤ì¤Æ¤¤¤ë (¤µ¤é¤Ë¿¤¯¤ÎÍ×ÁǤ¬³ÈÄ¥¤È¤·¤ÆÆþ¤Ã¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤)¡£ +内で宣言されており、以下の要素を含んでいる。これらの要素は POSIX.2 で定義 +されている (さらに多くの要素が拡張として入っているかもしれない)。 .PP .br .in +4n .nf typedef struct { - size_t gl_pathc; /* º£¤Þ¤Ç¤Ë¥Þ¥Ã¥Á¤·¤¿¥Ñ¥¹¤Î¿ô */ - char **gl_pathv; /* ¥Þ¥Ã¥Á¤·¤¿¥Ñ¥¹Ì¾¤Î¥ê¥¹¥È */ - size_t gl_offs; /* \fIgl_pathv\fP Æâ¤Ë³ÎÊݤ¹¤ë¥¹¥í¥Ã¥È¿ô */ + size_t gl_pathc; /* 今までにマッチしたパスの数 */ + char **gl_pathv; /* マッチしたパス名のリスト */ + size_t gl_offs; /* \fIgl_pathv\fP 内に確保するスロット数 */ } glob_t; .fi .in .PP -·ë²Ì¤ÏưŪ¤Ë³ÎÊݤµ¤ì¤¿µ­²±Îΰè¤ËÆþ¤ì¤é¤ì¤ë¡£ +結果は動的に確保された記憶領域に入れられる。 .PP -¥Ñ¥é¥á¡¼¥¿ +パラメータ .I flags -¤Ë¤Ï°Ê²¼¤Î¼¨¤¹Äê¿ô¤Î¤¦¤Á¡¢»ØÄꤷ¤¿¤¤¤â¤Î¤ò¥Ó¥Ã¥È¤´¤È¤Î OR ¤ÇÍ¿¤¨¤ë -(°ì¤Ä¤â -»ØÄꤷ¤Ê¤¯¤Æ¤â¤è¤¤)¡£¤³¤ì¤Ë¤è¤Ã¤Æ +には以下の示す定数のうち、指定したいものをビットごとの OR で与える +(一つも +指定しなくてもよい)。これによって .BR glob () -¤ÎÆ°ºî¤òÊѹ¹¤Ç¤­¤ë¡£ +の動作を変更できる。 .TP .B GLOB_ERR -(Î㤨¤Ð¡¢¥Ç¥£¥ì¥¯¥È¥ê¤ËÆɤ߼è¤êµö²Ä°À­¤¬Ìµ¤¤¾ì¹ç¤Ê¤É¤Ç) -Æɤ߼è¤ê¥¨¥é¡¼¤¬È¯À¸¤·¤¿ºÝ¤Ë´Ø¿ô¤«¤éÌá¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥¨¥é¡¼¤Ë´Ø¤ï¤é¤º -Æɤ߼è¤ê²Äǽ¤Ê¥Ç¥£¥ì¥¯¥È¥ê¤òÁ´¤Æ¤Ë¤Ä¤¤¤ÆÆɤ߼è¤ê¤ò¼Â¹Ô¤·¤è¤¦¤È¤¹¤ë¡£ +(例えば、ディレクトリに読み取り許可属性が無い場合などで) +読み取りエラーが発生した際に関数から戻る。 +デフォルトでは、エラーに関わらず +読み取り可能なディレクトリを全てについて読み取りを実行しようとする。 .TP .B GLOB_MARK -¥Ç¥£¥ì¥¯¥È¥ê¤ËÂбþ¤¹¤ë³Æ¡¹¤Î¥Ñ¥¹¤Ë¥¹¥é¥Ã¥·¥å¤òÉղ乤롣 +ディレクトリに対応する各々のパスにスラッシュを付加する。 .TP .B GLOB_NOSORT -ÊÖ¤µ¤ì¤ë¥Ñ¥¹Ì¾¤Î¥½¡¼¥È¤ò¹Ô¤ï¤Ê¤¤¡£ -¥½¡¼¥È¤ò¹Ô¤ï¤Ê¤¤Íýͳ¤Ï¡¢½èÍý»þ´Ö¤òÀáÌ󤹤뤿¤á¤À¤±¤Ç¤¢¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ÊÖ¤µ¤ì¤ë¥Ñ¥¹Ì¾¤Ï¥½¡¼¥È¤µ¤ì¤ë¡£ +返されるパス名のソートを行わない。 +ソートを行わない理由は、処理時間を節約するためだけである。 +デフォルトでは、返されるパス名はソートされる。 .TP .B GLOB_DOOFFS .I pglob->pathv -¤Îʸ»úÎó¥ê¥¹¥È¤ÎÀèƬ¤Ë +の文字列リストの先頭に .I pglob->gl_offs -¥¹¥í¥Ã¥Èʬ¤ÎÎΰè¤òͽÌ󤹤롣 -ͽÌ󤵤줿¥¹¥í¥Ã¥È¤Ë¤Ï NULL ¥Ý¥¤¥ó¥¿¤¬Æþ¤ë¡£ +スロット分の領域を予約する。 +予約されたスロットには NULL ポインタが入る。 .TP .B GLOB_NOCHECK -¥Þ¥Ã¥Á¤¹¤ë¥Ñ¥¿¡¼¥ó¤¬¤Ê¤±¤ì¤Ð¡¢¸µ¤Î¥Ñ¥¿¡¼¥ó¤òÊÖ¤¹¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +マッチするパターンがなければ、元のパターンを返す。 +デフォルトでは、 .BR glob () -¤Ï¥Þ¥Ã¥Á¤¹¤ë¥Ñ¥¿¡¼¥ó¤¬¤Ê¤±¤ì¤Ð +はマッチするパターンがなければ .B GLOB_NOMATCH -¤òÊÖ¤¹¡£ +を返す。 .TP .B GLOB_APPEND -¤³¤Î¸Æ¤Ó½Ð¤·¤Ç¤Î·ë²Ì¤òľÁ°¤Î +この呼び出しでの結果を直前の .BR glob () -¤Î¸Æ¤Ó½Ð¤·¤ÇÊÖ¤µ¤ì¤¿·ë²Ì¤Î¥Ù¥¯¥È¥ë¤ËÄɲ乤롣ºÇ½é¤Î +の呼び出しで返された結果のベクトルに追加する。最初の .BR glob () -¤Î¸Æ¤Ó½Ð¤·¤ÎºÝ¤Ë¤Ï¤³¤Î¥Õ¥é¥°¤òÀßÄꤷ¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ +の呼び出しの際にはこのフラグを設定してはいけない。 .TP .B GLOB_NOESCAPE -¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å (\(aq\\\(aq) ¤ò¥¨¥¹¥±¡¼¥×ÍÑʸ»ú¤È¤·¤Æ»ÈÍѤǤ­¤Ê¤¤¡£ -Ä̾ï¤Ï¡¢¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤ò»È¤Ã¤Æ¡¢¼¡¤Ë³¤¯Ê¸»ú¤ò¥¯¥©¡¼¥È¤¹¤ë¤³¤È¤Ç¡¢ -ÆÃÊ̤ʰÕÌ£¤ò»ý¤Ä¥á¥¿¥­¥ã¥é¥¯¥¿¤ò̵¸ú¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +バックスラッシュ (\(aq\\\(aq) をエスケープ用文字として使用できない。 +通常は、バックスラッシュを使って、次に続く文字をクォートすることで、 +特別な意味を持つメタキャラクタを無効することができる。 .PP .I flags -¤Ë¤Ï°Ê²¼¤Ë¼¨¤¹¤â¤Î¤â»ØÄê¤Ç¤­¤ë¡£ -¤³¤ì¤é¤Ï GNU ¤Ç³ÈÄ¥¤µ¤ì¤¿¤â¤Î¤Ç¡¢POSIX.2 ¤Ç¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +には以下に示すものも指定できる。 +これらは GNU で拡張されたもので、POSIX.2 では定義されていない。 .TP .B GLOB_PERIOD -ÀèƬ¤Î¥Ô¥ê¥ª¥É¤¬¥á¥¿¥­¥ã¥é¥¯¥¿¤Ë¥Þ¥Ã¥Á¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥á¥¿¥­¥ã¥é¥¯¥¿¤ÏÀèƬ¤Î¥Ô¥ê¥ª¥É¤Ë¤Ï¥Þ¥Ã¥Á¤Ç¤­¤Ê¤¤¡£ +先頭のピリオドがメタキャラクタにマッチできるようにする。 +デフォルトでは、メタキャラクタは先頭のピリオドにはマッチできない。 .TP .B GLOB_ALTDIRFUNC -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¥¢¥¯¥»¥¹¤¹¤ëºÝ¤Ë¡¢Ä̾ï¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤ÎÂå¤ï¤ê¤Ë -ÂåÂشؿô +ファイルシステムにアクセスする際に、通常のライブラリ関数の代わりに +代替関数 .IR pglob\->gl_closedir , .IR pglob\->gl_readdir , .IR pglob\->gl_opendir , .IR pglob\->gl_lstat , .I pglob\->gl_stat -¤¬ÍѤ¤¤é¤ì¤ë¡£ +が用いられる。 .TP .B GLOB_BRACE \fB{a,b}\fR -¤È¤¤¤¦·Á¼°¤Î +という形式の .BR csh (1) -¥¹¥¿¥¤¥ë¤Î³ç¸Ìɽ¸½¤òŸ³«¤¹¤ë¡£ -³ç¸Ìɽ¸½¤ÏÆþ¤ì»Ò¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢Î㤨¤Ð¡¢"{foo/{,cat,dog},bar}" ¤È¤¤¤¦¥Ñ¥¿¡¼¥ó¤ò -»ØÄꤷ¤¿¾ì¹ç¤ËÆÀ¤é¤ì¤ë·ë²Ì¤Ï¡¢ -4¤Ä¤Îʸ»úÎó "foo/", "foo/cat", "foo/dog", "bar" ¤Î¤½¤ì¤¾¤ì¤Ë¤Ä¤¤¤Æ +スタイルの括弧表現を展開する。 +括弧表現は入れ子にすることができる。 +したがって、例えば、"{foo/{,cat,dog},bar}" というパターンを +指定した場合に得られる結果は、 +4つの文字列 "foo/", "foo/cat", "foo/dog", "bar" のそれぞれについて .BR glob () -¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¤ÈƱ¤¸¤Ë¤Ê¤ë¡£ +を呼び出した場合と同じになる。 .TP .B GLOB_NOMAGIC -¥Ñ¥¿¡¼¥ó¤Ë¥á¥¿¥­¥ã¥é¥¯¥¿¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -¥Þ¥Ã¥Á·ë²Ì¤È¤·¤Æ»ØÄꤵ¤ì¤¿¥Ñ¥¿¡¼¥ó¤À¤±¤òÊÖ¤¹¡£ -¥Ñ¥¿¡¼¥ó¤Ç»ØÄꤵ¤ì¤¿Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢ -¤½¤Î¥Ñ¥¿¡¼¥ó¤¬ÊÖ¤µ¤ì¤ë¡£ +パターンにメタキャラクタが含まれていない場合、 +マッチ結果として指定されたパターンだけを返す。 +パターンで指定された名前のファイルが存在しない場合であっても、 +そのパターンが返される。 .TP .B GLOB_TILDE -¥Á¥ë¥À¤ÎŸ³«¤ò¹Ô¤¦¡£ -¥Á¥ë¥À (\(aq~\(aq) ¤¬¥Ñ¥¿¡¼¥óÆâ¤ÎÍ£°ì¤Îʸ»ú¤Î¾ì¹ç¤«¡¢ÀèƬ¤Î¥Á¥ë¥À¤Îľ¸å¤Îʸ»ú¤¬ -¥¹¥é¥Ã¥·¥å (\(aq/\(aq) ¤Î¾ì¹ç¡¢¥Á¥ë¥À¤ò¸Æ¤Ó½Ð¤·¼Ô¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤ÇÃÖ´¹¤¹¤ë¡£ -ÀèƬ¤Î¥Á¥ë¥À¤Ë¥æ¡¼¥¶Ì¾¤¬Â³¤¯¾ì¹ç (Î㤨¤Ð "~andrea/bin")¡¢ -¥Á¥ë¥À¤È¥æ¡¼¥¶Ì¾¤ò¤½¤Î¥æ¡¼¥¶¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤ÇÃÖ´¹¤¹¤ë¡£ -¥æ¡¼¥¶Ì¾¤¬Ìµ¸ú¤Ê¾ì¹ç¤ä¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤¬·èÄê¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¡¢ -ÃÖ´¹¤Ï¼Â¹Ô¤µ¤ì¤Ê¤¤¡£ +チルダの展開を行う。 +チルダ (\(aq~\(aq) がパターン内の唯一の文字の場合か、先頭のチルダの直後の文字が +スラッシュ (\(aq/\(aq) の場合、チルダを呼び出し者のホームディレクトリで置換する。 +先頭のチルダにユーザ名が続く場合 (例えば "~andrea/bin")、 +チルダとユーザ名をそのユーザのホームディレクトリで置換する。 +ユーザ名が無効な場合やホームディレクトリが決定できない場合は、 +置換は実行されない。 .TP .B GLOB_TILDE_CHECK -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È +このフラグを指定すると .B GLOB_TILDE -¤ÈƱÍͤο¶Éñ¤¤¤ò¤¹¤ë¡£ +と同様の振舞いをする。 .B GLOB_TILDE -¤È¤Î°ã¤¤¤Ï¡¢¥æ¡¼¥¶Ì¾¤¬Ìµ¸ú¤À¤Ã¤¿¾ì¹ç¤ä -¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤¬·èÄê¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¡¢ -¥Ñ¥¿¡¼¥ó¼«¿È¤ò»ÈÍѤ¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ +との違いは、ユーザ名が無効だった場合や +ホームディレクトリが決定できなかった場合に、 +パターン自身を使用するのではなく、 .BR glob () -¤¬¥¨¥é¡¼¤ò¼¨¤¹ +がエラーを示す .B GLOB_NOMATCH -¤òÊÖ¤¹¤³¤È¤Ç¤¢¤ë¡£ +を返すことである。 .TP .B GLOB_ONLYDIR -¤³¤Î¥Õ¥é¥°¤Ï¡¢ +このフラグは、 .BR glob () -¤ËÂФ¹¤ë¡Ö¥Ò¥ó¥È¡×¤Ç¤¢¤ê¡¢ -¸Æ¤Ó½Ð¤·Â¦¤¬¥Ñ¥¿¡¼¥ó¤Ë¥Þ¥Ã¥Á¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤·¤«¶½Ì£¤¬¤Ê¤¤¤³¤È¤òÃΤ餻¤ë¡£ -¼ÂÁõ¤Ë¤ª¤¤¤Æ¥Õ¥¡¥¤¥ë¤Î¼ïÊ̾ðÊó¤ò´Êñ¤Ë·èÄê¤Ç¤­¤ë¾ì¹ç¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤ -¥Õ¥¡¥¤¥ë¤Ï¸Æ¤Ó½Ð¤·Â¦¤ËÊÖ¤µ¤ì¤Ê¤¤¡£¤·¤«¤·¤Ê¤¬¤é¡¢¸Æ¤Ó½Ð¤·Â¦¤Ç¤Ï¡¢ÊÖ¤µ¤ì¤¿ -¥Õ¥¡¥¤¥ë¥ê¥¹¥È¤¬¥Ç¥£¥ì¥¯¥È¥ê¤«¤É¤¦¤«¤ò³Îǧ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -(¤³¤Î¥Õ¥é¥°¤¬Â¸ºß¤¹¤ë¤Î¤Ï¡¢¸Æ¤Ó½Ð¤·Â¦¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤·¤«¶½Ì£¤¬¤Ê¤¤ºÝ¤Ë -À­Ç½¤òºÇŬ²½¤¹¤ëÌÜŪ¤Î¤¿¤á¤À¤±¤Ç¤¢¤ë¡£) +に対する「ヒント」であり、 +呼び出し側がパターンにマッチするディレクトリにしか興味がないことを知らせる。 +実装においてファイルの種別情報を簡単に決定できる場合は、ディレクトリでない +ファイルは呼び出し側に返されない。しかしながら、呼び出し側では、返された +ファイルリストがディレクトリかどうかを確認しなければならない。 +(このフラグが存在するのは、呼び出し側がディレクトリにしか興味がない際に +性能を最適化する目的のためだけである。) .PP .I errfunc -¤¬ NULL ¤Ç¤Ê¤±¤ì¤Ð¡¢ -¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Ë¤Ï´Ø¿ô +が NULL でなければ、 +エラーが起こった場合には関数 .I errfunc -¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£´Ø¿ô¤Î°ú¿ô¤Ë¤Ï¡¢¼ºÇÔ¤·¤¿¥Ñ¥¹Ì¾ +が呼び出される。関数の引数には、失敗したパス名 .I epath -¤È +と .I errno .RB ( opendir (3), .BR readdir (3), .BR stat (2). -¤Î¤¤¤º¤ì¤«¤Ë¤è¤Ã¤Æ¥»¥Ã¥È¤µ¤ì¤¿ÃÍ) ¤¬Í¿¤¨¤é¤ì¤ë¡£ +のいずれかによってセットされた値) が与えられる。 .I errfunc -¤¬ 0 °Ê³°¤ÎÃͤòÊÖ¤¹¤«¤â¤·¤¯¤Ï +が 0 以外の値を返すかもしくは .B GLOB_ERR -¤¬¥»¥Ã¥È¤µ¤ì¤¿¾ì¹ç +がセットされた場合 .BR glob () -¤Ï +は .I errfunc -¤Î¸Æ¤Ó½Ð¤·¸å¤Ë½ªÎ»¤¹¤ë¡£ +の呼び出し後に終了する。 .PP -¸Æ¤Ó½Ð¤·¤¬À®¸ù¤·¤ÆÌá¤Ã¤¿¾ì¹ç +呼び出しが成功して戻った場合 .I pglob\->gl_pathc -¤Ë¤Ï¥Þ¥Ã¥Á¤·¤¿¥Ñ¥¹Ì¾¤¬´Þ¤Þ¤ì¡¢ +にはマッチしたパス名が含まれ、 .I pglob\->gl_pathv -¤Ï¥Þ¥Ã¥Á¤·¤¿¥Ñ¥¹Ì¾¤Ø¤Î¥Ý¥¤¥ó¥¿¤Î¥ê¥¹¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤È¤Ê¤ë¡£ -¥Ý¥¤¥ó¥¿¤Î¥ê¥¹¥È¤Ï NULL ¥Ý¥¤¥ó¥¿¤Ç½ªÃ¼¤µ¤ì¤ë¡£ +はマッチしたパス名へのポインタのリストへのポインタとなる。 +ポインタのリストは NULL ポインタで終端される。 .PP .BR glob () -¤ò²¿ÅÙ¤«Â³¤±¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡£¤½¤ÎºÝ2²óÌܰʹߤθƤӽФ·¤Ç¤Ï +を何度か続けて呼び出すことができる。その際2回目以降の呼び出しでは .B GLOB_APPEND -¥Õ¥é¥°¤¬ +フラグが .I flags -¤ËÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +に設定されていなければならない。 .PP -GNU ¤Î³ÈÄ¥¤È¤·¤Æ¡¢ +GNU の拡張として、 .I pglob\->gl_flags -¤Ë¤Ï»ØÄꤷ¤¿¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£¤â¤·°ì¤Ä¤Ç¤â¥á¥¿¥­¥ã¥é¥¯¥¿¤¬¸«ÉÕ¤«¤ì¤Ð -¤³¤Î¥Õ¥é¥°¤È +には指定したフラグがセットされる。もし一つでもメタキャラクタが見付かれば +このフラグと .B GLOB_MAGCHAR -¤È¤Î \fBOR\fR ¤ò¼è¤Ã¤¿·ë²Ì¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -¸Æ¤Ó½Ð¤·¤¬À®¸ù¤·¤Æ´°Î»¤¹¤ë¤È +との \fBOR\fR を取った結果がセットされる。 +.SH 返り値 +呼び出しが成功して完了すると .BR glob () -¤Ï 0 ¤òÊÖ¤¹¡£ -¤½¤ì°Ê³°¤ÎÊÖ¤êÃͤϰʲ¼¤ÎÄ̤ê: +は 0 を返す。 +それ以外の返り値は以下の通り: .TP .B GLOB_NOSPACE -¥á¥â¥ê¤ò»È¤¤²Ì¤¿¤·¤¿ +メモリを使い果たした .TP .B GLOB_ABORTED -Æɤ߼è¤ê¥¨¥é¡¼ +読み取りエラー .TP .B GLOB_NOMATCH -°ì¤Ä¤â¥Þ¥Ã¥Á¤·¤Ê¤«¤Ã¤¿ -.SH ½àµò +一つもマッチしなかった +.SH 準拠 POSIX.2, POSIX.1-2001. -.SH Ãí°Õ -glibc 2.1 ¤Ç¤Ï¡¢ +.SH 注意 +glibc 2.1 では、 .I gl_pathc -¤È +と .I gl_offs -¤Ï POSIX.2 ¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë +は POSIX.2 で指定されているように .I size_t -¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤ë¡£ -libc4, libc5, glibc 2.0 ¤Ç¤Ï¡¢ +として宣言されている。 +libc4, libc5, glibc 2.0 では、 .I int -¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ¥Ð¥° +として宣言されている。 +.SH バグ .BR glob () -´Ø¿ô¤Ï¤½¤ÎÃæ¤Ç¸Æ¤Ó½Ð¤·¤Æ¤¤¤ë +関数はその中で呼び出している .BR malloc (3) -¤ä +や .BR opendir (3) -¤Ê¤É¤Î´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤Ç¼ºÇÔ¤¬µ¯¤³¤ë¤È¼ºÇÔ¤¹¤ë¡£ -¤³¤ì¤Ë¤è¤ê +などの関数の呼び出しで失敗が起こると失敗する。 +これにより .I errno -¤Ë¤½¤Î¥¨¥é¡¼¥³¡¼¥É¤¬Æþ¤ë¡£ -.SH Îã -»ÈÍÑË¡¤Î°ìÎã¤ò°Ê²¼¤Ë¼¨¤¹¡£°Ê²¼¤Ï¥·¥§¥ë¤Ç +にそのエラーコードが入る。 +.SH 例 +使用法の一例を以下に示す。以下はシェルで .sp .in +4n ls \-l *.c ../*.c .in .sp -¤ò¥¿¥¤¥×¤·¤¿¾ì¹ç¤ò¥·¥ß¥å¥ì¡¼¥È¤·¤Æ¤¤¤ë¡£ +をタイプした場合をシミュレートしている。 .nf .in +4n @@ -310,7 +310,7 @@ globbuf.gl_pathv[1] = "\-l"; execvp("ls", &globbuf.gl_pathv[0]); .in .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ls (1), .BR sh (1), .BR stat (2), diff --git a/release/man3/gnu_get_libc_version.3 b/release/man3/gnu_get_libc_version.3 index 3433c61c..160aaf39 100644 --- a/release/man3/gnu_get_libc_version.3 +++ b/release/man3/gnu_get_libc_version.3 @@ -26,32 +26,32 @@ .\" Translated 2008-08-21, Akihiro MOTOKI , LDP v3.04 .\" .TH GNU_GET_LIBC_VERSION 3 2010-09-10 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -gnu_get_libc_version, gnu_get_libc_release \- glibc ¤Î¥Ð¡¼¥¸¥ç¥ó¤È -¥ê¥ê¡¼¥¹¾õÂÖ¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +gnu_get_libc_version, gnu_get_libc_release \- glibc のバージョンと +リリース状態を取得する +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .B const char *gnu_get_libc_version(void); .B const char *gnu_get_libc_release(void); .fi -.SH ÀâÌÀ +.SH 説明 .BR gnu_get_libc_version () -´Ø¿ô¤Ï¡¢¥·¥¹¥Æ¥à¤ÇÍøÍѲÄǽ¤Ê glibc ¤Î¥Ð¡¼¥¸¥ç¥ó¤òÆÃÄꤹ¤ëʸ»úÎó¤òÊÖ¤¹¡£ +関数は、システムで利用可能な glibc のバージョンを特定する文字列を返す。 .BR gnu_get_libc_release () -´Ø¿ô¤Ï¡¢¥·¥¹¥Æ¥à¤ÇÍøÍѲÄǽ¤Ê glibc ¥Ð¡¼¥¸¥ç¥ó¤Î¥ê¥ê¡¼¥¹¾õÂÖ¤ò¼¨¤¹ -ʸ»úÎó¤òÊÖ¤¹¡£ +関数は、システムで利用可能な glibc バージョンのリリース状態を示す +文字列を返す。 .I "stable" -¤È¤¤¤Ã¤¿Ê¸»úÎó¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¸ÇÍ­¤Ç¤¢¤ë¡£ -.SH Îã -²¼µ­¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ê½ÐÎϤ¬ÆÀ¤é¤ì¤ë¡£ +といった文字列が返される。 +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 +これらの関数は glibc 固有である。 +.SH 例 +下記のプログラムを実行すると、次のような出力が得られる。 .in +4n .nf @@ -60,7 +60,7 @@ GNU libc version: 2.8 GNU libc release: stable .fi .in -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -75,5 +75,5 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR confstr (3) diff --git a/release/man3/grantpt.3 b/release/man3/grantpt.3 index cd463611..5bf6a10e 100644 --- a/release/man3/grantpt.3 +++ b/release/man3/grantpt.3 @@ -6,67 +6,67 @@ .\" Translated Tue Jul 8 01:56:27 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: pseudoterminal µ¼»÷üËö -.\"WORD: pseudotty µ¼»÷üËö +.\"WORD: pseudoterminal 擬似端末 +.\"WORD: pseudotty 擬似端末 .\" .TH GRANTPT 3 2008-06-14 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -grantpt \- ¥¹¥ì¡¼¥Öµ¼»÷üËö¤Ø¤Î¥¢¥¯¥»¥¹¤òµö²Ä¤¹¤ë -.SH ½ñ¼° +.SH 名前 +grantpt \- スレーブ擬似端末へのアクセスを許可する +.SH 書式 .nf -.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "int grantpt(int " fd ");" .fi -.SH ÀâÌÀ +.SH 説明 .BR grantpt () -´Ø¿ô¤Ï¡¢ +関数は、 .I fd -¤Ç»²¾È¤µ¤ì¤¿¥Þ¥¹¥¿µ¼»÷üËö¤ËÂбþ¤¹¤ë¥¹¥ì¡¼¥Öµ¼»÷üËö¥Ç¥Ð¥¤¥¹ -¤Î¥â¡¼¥É¤È½êÍ­¼Ô¤òÊѹ¹¤¹¤ë¡£ -¥¹¥ì¡¼¥Ö¤Î¥æ¡¼¥¶ID ¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â UID ¤ËÀßÄꤵ¤ì¤ë¡£ -¥°¥ë¡¼¥×ID ¤È¤·¤ÆÀßÄꤵ¤ì¤ëÃͤϵ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤ (Î㤨¤Ð \fItty\fP ¤Ë¤Ê¤ë)¡£ -¥¹¥ì¡¼¥Ö¤Î¥â¡¼¥É¤Ï 0620 (crw\-\-w\-\-\-\-) ¤ËÀßÄꤵ¤ì¤ë¡£ +で参照されたマスタ擬似端末に対応するスレーブ擬似端末デバイス +のモードと所有者を変更する。 +スレーブのユーザID は呼び出したプロセスの実 UID に設定される。 +グループID として設定される値は規定されていない (例えば \fItty\fP になる)。 +スレーブのモードは 0620 (crw\-\-w\-\-\-\-) に設定される。 .PP .B SIGCHLD -¥·¥°¥Ê¥ë¤òÊ᪤¹¤ë¤¿¤á¤Ë¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Î +シグナルを捕捉するためにシグナル・ハンドラが設定されている場合の .BR grantpt () -¤ÎÆ°ºî¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +の動作は規定されていない。 +.SH 返り値 +成功した場合、 .BR grantpt () -¤Ï 0 ¤òÊÖ¤¹¡£¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。そうでない場合、\-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +に適切な値がセットされる。 +.SH エラー .TP .B EACCES -Âбþ¤¹¤ë¥¹¥ì¡¼¥Öµ¼»÷üËö¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +対応するスレーブ擬似端末にアクセスできなかった。 .TP .B EBADF -°ú¤­¿ô +引き数 .I fd -¤¬Í­¸ú¤Ê¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なオープンされたファイル・ディスクリプタでない。 .TP .B EINVAL -°ú¤­¿ô +引き数 .I fd -¤ÏÍ­¸ú¤À¤¬¡¢¥Þ¥¹¥¿µ¼»÷üËö¤ËÂбþ¤¹¤ë¤â¤Î¤Ç¤Ï¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +は有効だが、マスタ擬似端末に対応するものではない。 +.SH バージョン .BR grantpt () -¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò +は、バージョン 2.1 以降の glibc で提供されている。 +.SH 準拠 POSIX.1-2001. -.SH È÷¹Í -¤³¤ì¤Ï UNIX 98 µ¼»÷üËö (pseudoterminal) »ÅÍͤΰìÉô¤Ç¤¢¤ë¡£ +.SH 備考 +これは UNIX 98 擬似端末 (pseudoterminal) 仕様の一部である。 .BR pts (4) -¤ò»²¾È¤Î¤³¤È¡£ -¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤Î´Ø¿ô¤Ï "pt_chown" ¤È¸Æ¤Ð¤ì¤ë set-user-ID ¤µ¤ì¤¿ -Êä½õ¥Ð¥¤¥Ê¥ê¤òÍѤ¤¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -Linux ¤Î devpts ¤Ç¤Ï¡¢¤³¤Î¤è¤¦¤ÊÊä½õ¥Ð¥¤¥Ê¥ê¤òɬÍפȤ·¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +を参照のこと。 +多くのシステムでは、この関数は "pt_chown" と呼ばれる set-user-ID された +補助バイナリを用いて実装されている。 +Linux の devpts では、このような補助バイナリを必要としない。 +.SH 関連項目 .BR open (2), .BR posix_openpt (3), .BR ptsname (3), diff --git a/release/man3/gsignal.3 b/release/man3/gsignal.3 index 8c0cd07f..1597930d 100644 --- a/release/man3/gsignal.3 +++ b/release/man3/gsignal.3 @@ -26,12 +26,12 @@ .\" Japanese Version Copyright (c) 2002 Akihiro MOTOKI, all rights reserved. .\" Translated Mon Feb 2 2003 by Akihiro MOTOKI .\" -.\"WORD: broken Àµ¤·¤¯¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤ +.\"WORD: broken 正しく実装されていない .\" .TH GSIGNAL 3 2007-07-26 "" "Linux Programmer's Manual" -.SH ̾Á° -gsignal, ssignal \- ¥½¥Õ¥È¥¦¥§¥¢¡¦¥·¥°¥Ê¥ëµ¡Ç½ -.SH ½ñ¼° +.SH 名前 +gsignal, ssignal \- ソフトウェア・シグナル機能 +.SH 書式 .nf .B #include .sp @@ -43,69 +43,69 @@ gsignal, ssignal \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR gsignal (), .BR ssignal (): _SVID_SOURCE -.SH ÀâÌÀ -Linux ¤Ç¤Ï¤³¤ì¤é¤Î´Ø¿ô¤ò»ÈÍѤ·¤Ê¤¤¤³¤È¡£ -²áµî¤Ë´Ö°ã¤¤¤¬¤¢¤ê¡¢Linux ¤Ç¤Ï +.SH 説明 +Linux ではこれらの関数を使用しないこと。 +過去に間違いがあり、Linux では .BR gsignal () -¤È +と .BR ssignal () -¤Ï¤½¤ì¤¾¤ì +はそれぞれ .BR raise (3) -¤È +と .BR signal (2) -¤ÎÊÌ̾¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +の別名になっている。 .LP -°ìÊý¡¢System V É÷¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ç¡¢ -½¾Íè¤Î +一方、System V 風のシステムでは、これらの関数で、 +従来の .BR signal (2) -¤ä +や .BR kill (2) -¤Î´Ø¿ô·²¤È¤Ï´°Á´¤ËÆÈΩ¤Ê¡¢ -¥½¥Õ¥È¥¦¥§¥¢¡¦¥·¥°¥Ê¥ê¥ó¥°¤ò¼Â¸½¤·¤Æ¤¤¤ë¡£ +の関数群とは完全に独立な、 +ソフトウェア・シグナリングを実現している。 .BR ssignal () -´Ø¿ô¤Ï¡¢ÈÖ¹æ +関数は、番号 .I signum -¤Î¥½¥Õ¥È¥¦¥§¥¢¡¦¥·¥°¥Ê¥ë¤¬ +のソフトウェア・シグナルが .BR gsignal () -´Ø¿ô¤ò»È¤Ã¤ÆȯÀ¸¤µ¤ì¤¿»þ¤Ë¤È¤ë¤Ù¤­¥¢¥¯¥·¥ç¥ó¤òÄêµÁ¤¹¤ë¡£ +関数を使って発生された時にとるべきアクションを定義する。 .BR gsignal () -¤ÎÊÖ¤êÃͤϡ¢°ì¤ÄÁ°¤Ë»ØÄꤵ¤ì¤Æ¤¤¤¿¥¢¥¯¥·¥ç¥ó¡¢¤â¤·¤¯¤Ï +の返り値は、一つ前に指定されていたアクション、もしくは .B SIG_DFL -¤Ç¤¢¤ë¡£ +である。 .BR gsignal () -¤Ï°Ê²¼¤Î¤è¤¦¤ÊÆ°ºî¤ò¹Ô¤¦: +は以下のような動作を行う: .I signum -¤ËÂФ·¤Æ¥¢¥¯¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢¥¢¥¯¥·¥ç¥ó +に対してアクションが指定されていないか、アクション .B SIG_DFL -¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢²¿¤â¤»¤º¤Ë 0 ¤òÊÖ¤¹¡£ +が指定されていた場合、何もせずに 0 を返す。 .I signum -¤ËÂФ·¤Æ ¥¢¥¯¥·¥ç¥ó +に対して アクション .B SIG_IGN -¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢²¿¤â¤»¤º¤Ë 1 ¤òÊÖ¤¹¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¥¢¥¯¥·¥ç¥ó¤ò +が指定されていた場合、何もせずに 1 を返す。 +それ以外の場合、アクションを .B SIG_DFL -¤Ë¥ê¥»¥Ã¥È¤·¡¢°ú¤­¿ô¤Ë +にリセットし、引き数に .I signum -¤ò»ØÄꤷ¤Æ¥¢¥¯¥·¥ç¥ó´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤Æ¡¢¥¢¥¯¥·¥ç¥ó´Ø¿ô¤ÎÊÖ¤êÃͤòÊÖ¤¹¡£ +を指定してアクション関数を呼び出して、アクション関数の返り値を返す。 .I signum -¤¬¤È¤êÆÀ¤ëÃͤÎÈϰϤϼÂÁõ¤Ë¤è¤ê°Û¤Ê¤ë (¿¤¯¤Î¾ì¹ç 1¡Á15 ¤« 1¡Á17 ¤Ç¤¢¤ë)¡£ -.SH ½àµò -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢AIX, DG/UX, HP-UX, SCO, Solaris, Tru64 ¤Ç»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¤Î¤Û¤È¤ó¤É¤ÇÇѻߤµ¤ì¤¿¤³¤È¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢ -Linux ¤Î libc ¤ª¤è¤Ó glibc ¤Ç¤ÏÀµ¤·¤¯¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +がとり得る値の範囲は実装により異なる (多くの場合 1〜15 か 1〜17 である)。 +.SH 準拠 +これらの関数は、AIX, DG/UX, HP-UX, SCO, Solaris, Tru64 で使用可能である。 +これらのシステムのほとんどで廃止されたことになっており、 +Linux の libc および glibc では正しく実装されていない。 .BR gsignal_r () -¤È +と .BR ssignal_r () -¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +が実装されているシステムもある。 +.SH 関連項目 .BR kill (2), .BR signal (2), .BR raise (3) diff --git a/release/man3/hash.3 b/release/man3/hash.3 index 7e575514..14dadb19 100644 --- a/release/man3/hash.3 +++ b/release/man3/hash.3 @@ -38,36 +38,36 @@ .\" Proofed Tue Aug 17 1999 by NAKANO Takeo .\" Updated 2008-02-10, Akihiro MOTOKI , LDP v2.77 .\" -.\"WORD: access method ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É -.\"WORD: bucket ¥Ð¥±¥Ã¥È +.\"WORD: access method アクセスメソッド +.\"WORD: bucket バケット .\" .TH HASH 3 1994-08-18 "" "Linux Programmer's Manual" .UC 7 -.SH ̾Á° -hash \- hash ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤Î¥¢¥¯¥»¥¹¥á¥½¥Ã¥É -.SH ½ñ¼° +.SH 名前 +hash \- hash データベースへのアクセスメソッド +.SH 書式 .nf .ft B #include #include .ft R .fi -.SH ÀâÌÀ -¥ë¡¼¥Á¥ó +.SH 説明 +ルーチン .BR dbopen (3) -¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥é¥¤¥Ö¥é¥ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¢¤ë¡£ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¤Ò¤È¤Ä¤Ë hash ¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¡£ -¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤Î¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ë´Ø¤¹¤ë°ìÈÌŪ¤Êµ­½Ò¤Ï +はデータベースファイルに対するライブラリインターフェースである。 +サポートされているファイルフォーマットのひとつに hash ファイルがある。 +データベースへのアクセスメソッドに関する一般的な記述は .BR dbopen (3) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Ï hash ÆÃÍ­¤Î¾ðÊó¤Ë¤Ä¤¤¤Æ¤Î¤ßµ­½Ò¤¹¤ë¡£ +に書かれている。 +このマニュアルページでは hash 特有の情報についてのみ記述する。 .PP -hash ¥Ç¡¼¥¿¹½Â¤¤Ï¡¢³ÈÄ¥²Äǽ¤ÊưŪ¥Ï¥Ã¥·¥å¥¹¥­¡¼¥à¤Ç¤¢¤ë¡£ +hash データ構造は、拡張可能な動的ハッシュスキームである。 .PP .BR dbopen (3) -¤ËÅϤµ¤ì¤ë hash ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤ËÆÃÍ­¤Î¥Ç¡¼¥¿¹½Â¤ÂΤϡ¢ +に渡される hash アクセスメソッドに特有のデータ構造体は、 .I -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +インクルードファイルで以下のように定義されている。 .in +4n .nf @@ -82,86 +82,86 @@ typedef struct { .fi .in .PP -¤³¤Î¹½Â¤ÂΤÎÍ×ÁǤò°Ê²¼¤Ë¼¨¤¹¡£ +この構造体の要素を以下に示す。 .TP 10 .I bsize -hash ¥Æ¡¼¥Ö¥ë¥Ð¥±¥Ã¥È (table bucket) ¤Î¥µ¥¤¥º¤òÄêµÁ¤¹¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 256 ¥Ð¥¤¥È¤Ç¤¢¤ë¡£ -¥Ç¥£¥¹¥¯¤ËÃÖ¤«¤ì¤ë¥Æ¡¼¥Ö¥ë¤ä¥Ç¡¼¥¿¥¢¥¤¥Æ¥à¤¬Â礭¤¤¥Æ¡¼¥Ö¥ë¤Ç¤Ï -¥Ú¡¼¥¸¥µ¥¤¥º¤òÂ礭¤¯¤¹¤ë¤Û¤¦¤¬Îɤ¤¤À¤í¤¦¡£ +hash テーブルバケット (table bucket) のサイズを定義する。 +デフォルトは 256 バイトである。 +ディスクに置かれるテーブルやデータアイテムが大きいテーブルでは +ページサイズを大きくするほうが良いだろう。 .TP .I ffactor -¥æ¡¼¥¶¤¬Ë¾¤à hash ¥Æ¡¼¥Ö¥ëÃæ¤ÎÌ©Å٤Ǥ¢¤ë¡£ -¤³¤ì¤Ï¤½¤ì¤¾¤ì¤Î¥Ð¥±¥Ã¥È¤Ë³ÊǼ¤Ç¤­¤ë¥­¡¼¤Î³µ¿ô¤Ç¤¢¤ê¡¢ -hash ¥Æ¡¼¥Ö¥ë¤ò³ÈÂ硦½Ì¾®¤òºîÍѤ¹¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 8 ¤Ç¤¢¤ë¡£ +ユーザが望む hash テーブル中の密度である。 +これはそれぞれのバケットに格納できるキーの概数であり、 +hash テーブルを拡大・縮小を作用する。 +デフォルトは 8 である。 .TP .I nelem -hash ¥Æ¡¼¥Ö¥ë¤ÎºÇ½ª¥µ¥¤¥º¤òÂç¤Þ¤«¤Ë¸«ÀѤâ¤Ã¤¿ÃͤǤ¢¤ë¡£ -¤³¤ÎÃͤ¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¤ê¡¢¤¢¤Þ¤ê¤ËÄ㤯¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢ -hash ¥Æ¡¼¥Ö¥ë¤Ï¥­¡¼¤¬Æþ¤Ã¤Æ¤¯¤ë¤Ë±þ¤¸¤Æ³ÈÄ¥¤µ¤ì¤ë¡£ -¤·¤«¤·¾¯¤·¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤¬ (¤ª¤½¤é¤¯µ¤ÉÕ¤¯ÄøÅÙ¤Ë) Íî¤Á¤ë¡£ -¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 1 ¤Ç¤¢¤ë¡£ +hash テーブルの最終サイズを大まかに見積もった値である。 +この値がセットされていなかったり、あまりに低くセットされていると、 +hash テーブルはキーが入ってくるに応じて拡張される。 +しかし少しパフォーマンスが (おそらく気付く程度に) 落ちる。 +デフォルト値は 1 である。 .TP .I cachesize -¥á¥â¥ê¥­¥ã¥Ã¥·¥å¤ÎºÇÂçÃÍ (¥Ð¥¤¥Èñ°Ì) ¤Î»²¹ÍÃÍ¡£ -¤³¤ÎÃÍ¤Ï -.BR ¤¢¤¯¤Þ¤Ç»²¹Í¤Ç¤¢¤ê ¡¢ -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ï¤³¤ÎÃͤò±Û¤¨¤¿¥á¥â¥ê¤Î³ä¤êÅö¤Æ¤ËÀ®¸ù¤¹¤ë¤³¤È¤â¤¢¤ë¡£ +メモリキャッシュの最大値 (バイト単位) の参考値。 +この値は +.BR あくまで参考であり 、 +アクセスメソッドはこの値を越えたメモリの割り当てに成功することもある。 .TP .I hash -¤Ï¥æ¡¼¥¶¡¼ÄêµÁ¤Î hash ´Ø¿ô¤Ç¤¢¤ë¡£ -Á´¤Æ¤Î¥Ç¡¼¥¿¤ËÂФ·¤Æ¤¦¤Þ¤¯ºîÍѤ¹¤ë hash ´Ø¿ô¤È¸À¤¦¤Î¤Ï¤Ê¤¤¤«¤é¡¢ -ÆÃÄê¤Î¥Ç¡¼¥¿¥»¥Ã¥È¤ËÂФ·¤Æ¤ÏÁȤ߹þ¤ß¤Î hash ´Ø¿ô¤Ç¤Ï -¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤¬Ä㤤¤³¤È¤â¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¥æ¡¼¥¶¡¼ÄêµÁ¤Î hash ´Ø¿ô¤ÏÆó¤Ä¤Î°ú¿ô¤ò¤È¤é¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤ (¥Ð¥¤¥Èʸ»ú -Îó¤Ø¤Î¥Ý¥¤¥ó¥¿¤È¡¢Ä¹¤µ)¡£ -¤½¤·¤Æ hash ÃͤȤ·¤Æ»È¤ï¤ì¤ë 32¥Ó¥Ã¥È¤ÎÃͤòÊÖ¤µ¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +はユーザー定義の hash 関数である。 +全てのデータに対してうまく作用する hash 関数と言うのはないから、 +特定のデータセットに対しては組み込みの hash 関数では +パフォーマンスが低いこともあるかもしれない。 +ユーザー定義の hash 関数は二つの引数をとらなくてはならない (バイト文字 +列へのポインタと、長さ)。 +そして hash 値として使われる 32ビットの値を返さなくてはならない。 .TP .I lorder -¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤ë¥á¥¿¥Ç¡¼¥¿¤ÎÀ°¿ôÃͤΥХ¤¥È¥ª¡¼¥À¡¼¡£ -¤³¤Î¿ô»ú¤Ï¡¢½ç½ø¤òÀ°¿ô¤Çɽ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -Î㤨¤Ð¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤Ê¤é¡¢¤³¤Î¿ôÃÍ¤Ï 4,321 ¤È¤Ê¤ë¡£ +データベースに格納されているメタデータの整数値のバイトオーダー。 +この数字は、順序を整数で表したものである。 +例えばビッグエンディアンなら、この数値は 4,321 となる。 .I lorder -¤¬ 0 (»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤)¾ì¹ç¡¢¸½ºß¤Î¥Û¥¹¥È -¤Ç»È¤ï¤ì¤Æ¤¤¤ëʤӽ礬»È¤ï¤ì¤ë¡£ -¥Õ¥¡¥¤¥ë¤¬´û¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢»ØÄꤷ¤¿ÃͤÏ̵»ë¤µ¤ì¥Ä¥ê¡¼¤¬ºî¤é¤ì -¤¿»þ¤Ë»ØÄꤵ¤ì¤Æ¤¤¤¿Ãͤ¬»È¤ï¤ì¤ë¡£ +が 0 (指定されていない)場合、現在のホスト +で使われている並び順が使われる。 +ファイルが既に存在する場合、指定した値は無視されツリーが作られ +た時に指定されていた値が使われる。 .PP -.\"NAKANO the tree ¢ª the hash, ¤Ç¤·¤ç¤¦. -¥Õ¥¡¥¤¥ë¤¬´û¤Ë¸ºß¤·¤Æ¤¤¤ë (¤Þ¤¿¤Ï +.\"NAKANO the tree → the hash, でしょう. +ファイルが既に存在している (または .B O_TRUNC -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤) ¤È¡¢ +フラグが指定されていない) と、 .IR bsize , .IR ffactor , .IR lorder , .I nelem -¤Ë»ØÄꤵ¤ì¤¿ÃͤÏ̵»ë¤µ¤ì¡¢ -¥Ï¥Ã¥·¥å¤¬ºî¤é¤ì¤¿»þ¤Ë»È¤Ã¤¿Ãͤ¬»È¤ï¤ì¤ë¡£ +に指定された値は無視され、 +ハッシュが作られた時に使った値が使われる。 .PP -hash ´Ø¿ô¤¬»ØÄꤵ¤ì¤ë¤È¡¢ +hash 関数が指定されると、 .I hash_open -¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬ºî¤é¤ì¤¿»þ¤Ë»ØÄꤵ¤ì¤Æ¤¤¤¿ -hash ´Ø¿ô¤Èº£²ó»ØÄꤵ¤ì¤¿ hash ´Ø¿ô¤¬Æ±¤¸¤«¤É¤¦¤«¤òÄ´¤Ù¡¢ -Ʊ¤¸¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¼ºÇÔ¤¹¤ë¡£ +はデータベースが作られた時に指定されていた +hash 関数と今回指定された hash 関数が同じかどうかを調べ、 +同じでない場合には失敗する。 .PP .BR dbm (3), -¤È +と .BR ndbm (3) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¥ë¡¼¥Á¥ó¤Ø¤Î²áµî¸ß´¹¤ò¼è¤ë¤¿¤á¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤¬ -¸ºß¤¹¤ë¡£¤·¤«¤·¤³¤ì¤é¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï°ÊÁ°¤Î¥Õ¥¡¥¤¥ë¥Õ¥©¡¼ -¥Þ¥Ã¥È¤È¤Ï¸ß´¹À­¤¬¤Ê¤¤¡£ -.SH ¥¨¥é¡¼ +に記述されているルーチンへの過去互換を取るためのインターフェイスが +存在する。しかしこれらのインターフェイスは以前のファイルフォー +マットとは互換性がない。 +.SH エラー .I hash -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¥ë¡¼¥Á¥ó¤Ï¡¢¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó +アクセスメソッドルーチンは、失敗するとライブラリルーチン .BR dbopen (3) -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿ +で指定されているエラーに応じた .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ -.SH ¥Ð¥° -¥Ð¥¤¥È¥ª¡¼¥À¡¼¤È¤·¤Æ¤Ï¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤È¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¤Î¤ß¤¬ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +をセットする。 +.SH バグ +バイトオーダーとしてはビッグエンディアンとリトルエンディアンのみが +サポートされている。 +.SH 関連項目 .BR btree (3), .BR dbopen (3), .BR mpool (3), diff --git a/release/man3/hsearch.3 b/release/man3/hsearch.3 index f05ccbee..e3d037a6 100644 --- a/release/man3/hsearch.3 +++ b/release/man3/hsearch.3 @@ -42,19 +42,19 @@ .\" Updated & Modified 2005-01-10, Yuichi SATO .\" Updated 2008-09-20, Akihiro MOTOKI .\" -.\"WORD: hash table ¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë -.\"WORD: entry ¥¨¥ó¥È¥ê¡¼ -.\"WORD: allocate ³ä¤êÅö¤Æ -.\"WORD: NUL-terminated ¥Ì¥ëʸ»ú \0 ¤Ç½ªÃ¼¤µ¤ì¤¿ -.\"WORD: pointer ¥Ý¥¤¥ó¥¿ -.\"WORD: character ʸ»ú·¿ -.\"WORD: item ¹àÌÜ +.\"WORD: hash table ハッシュテーブル +.\"WORD: entry エントリー +.\"WORD: allocate 割り当て +.\"WORD: NUL-terminated ヌル文字 \0 で終端された +.\"WORD: pointer ポインタ +.\"WORD: character 文字型 +.\"WORD: item 項目 .\" .TH HSEARCH 3 2011-09-10 "GNU" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 hcreate, hdestroy, hsearch, hcreate_r, hdestroy_r, -hsearch_r \- ¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Î´ÉÍý -.SH ½ñ¼° +hsearch_r \- ハッシュテーブルの管理 +.SH 書式 .nf .B #include .sp @@ -64,7 +64,7 @@ hsearch_r \- .sp .B "void hdestroy(void);" .sp -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp @@ -75,72 +75,72 @@ hsearch_r \- .sp .BI "void hdestroy_r(struct hsearch_data *" htab ); .fi -.SH ÀâÌÀ +.SH 説明 .BR hcreate (), .BR hsearch (), .BR hdestroy () -¤Î 3 ¤Ä¤Î´Ø¿ô¤òÍøÍѤ¹¤ë¤È¡¢¥­¡¼ (ʸ»úÎó) ¤ÈÂбþ¤¹¤ë¥Ç¡¼¥¿¤«¤é¹½À®¤µ¤ì¤ë -¥¨¥ó¥È¥ê¤ò³ÊǼ¤Ç¤­¤ë¥Ï¥Ã¥·¥å¸¡º÷¥Æ¡¼¥Ö¥ë¤òºîÀ®¡¢´ÉÍý¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤ò»È¤Ã¤Æ¡¢°ìÅ٤˻ÈÍѤǤ­¤ë¤Î¤Ï°ì¤Ä¤Î¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤À¤±¤Ç¤¢¤ë¡£ +の 3 つの関数を利用すると、キー (文字列) と対応するデータから構成される +エントリを格納できるハッシュ検索テーブルを作成、管理することができる。 +これらの関数を使って、一度に使用できるのは一つのハッシュテーブルだけである。 .BR hcreate_r (), .BR hsearch_r (), .BR hdestroy_r () -¤Î 3 ¤Ä¤Î´Ø¿ô¤Ï¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤǡ¢¤³¤ì¤é¤òÍøÍѤ¹¤ë¤È¡¢ -°ì¤Ä¤Î¥×¥í¥°¥é¥à¤ÇƱ»þ¤ËÊ£¿ô¤Î¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -ºÇ¸å¤Î°ú¤­¿ô +の 3 つの関数はリエントラント版で、これらを利用すると、 +一つのプログラムで同時に複数のハッシュテーブルを使うことができる。 +最後の引き数 .I htab -¤Ï´Ø¿ô¤ÎÁàºîÂоݤȤʤë¥Æ¡¼¥Ö¥ë¤ò¼¨¤¹¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ -¥×¥í¥°¥é¥Þ¤Ï¤³¤Î¹½Â¤ÂΤò¥Ö¥é¥Ã¥¯¥Ü¥Ã¥¯¥¹¤È¤·¤Æ°·¤¦¤Ù¤­¤Ç¤¢¤ë -(¤Ä¤Þ¤ê¡¢¤³¤Î¹½Â¤ÂΤΥե£¡¼¥ë¥É¤ËľÀÜ¥¢¥¯¥»¥¹¤·¤¿¤êÊѹ¹¤·¤¿¤ê -¤·¤Ê¤¤¤³¤È)¡£ +は関数の操作対象となるテーブルを示す構造体へのポインタである。 +プログラマはこの構造体をブラックボックスとして扱うべきである +(つまり、この構造体のフィールドに直接アクセスしたり変更したり +しないこと)。 -ºÇ½é¤Ë¡¢ +最初に、 .BR hcreate () -´Ø¿ô¤Ë¤è¤Ã¤Æ¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤òºîÀ®¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -°ú¤­¿ô \fInel\fP ¤Ç¥Æ¡¼¥Ö¥ë¤ÎºÇÂ票¥ó¥È¥ê¿ô¤ò»ØÄꤹ¤ë -(¤³¤ÎºÇÂçÃͤϸå¤ÇÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¤Î¤Ç¡¢¤è¤¯¹Í¤¨¤ÆÁªÂò¤¹¤ë¤³¤È)¡£ -ºîÀ®¤µ¤ì¤ë¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤ÎÀ­Ç½¤ò¸þ¾å¤µ¤»¤ë¤¿¤á¤Ë¡¢ -´Ø¿ôÆâÉô¤Î¼ÂÁõ¤Ë¤è¤ê¤³¤ÎÃͤÏÁý¤ä¤µ¤ì¤ë¾ì¹ç¤â¤¢¤ë¡£ +関数によってハッシュテーブルを作成しなければならない。 +引き数 \fInel\fP でテーブルの最大エントリ数を指定する +(この最大値は後で変更することはできないので、よく考えて選択すること)。 +作成されるハッシュテーブルの性能を向上させるために、 +関数内部の実装によりこの値は増やされる場合もある。 .\" e.g., in glibc it is raised to the next higher prime number .BR hcreate_r () -´Ø¿ô¤Ï +関数は .BR hcreate () -¤ÈƱ¤¸Æ°ºî¤ò¤¹¤ë¤¬¡¢¹½Â¤ÂÎ +と同じ動作をするが、構造体 .I *htab -¤Ç¼¨¤µ¤ì¤ë¥Æ¡¼¥Ö¥ë¤òÂоݤȤ·¤ÆÆ°ºî¤¹¤ë¡£ +で示されるテーブルを対象として動作する。 .I htab -¤¬»Ø¤·¼¨¤¹¹½Â¤ÂΤϡ¢ +が指し示す構造体は、 .BR hcreate_r () -¤ò½é¤á¤Æ¸Æ¤Ó½Ð¤¹Á°¤Ë 0 ¤ÇËä¤á¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を初めて呼び出す前に 0 で埋めておかなければならない。 .BR hdestroy () -´Ø¿ô¤Ï¡¢ +関数は、 .BR hcreate () -¤ÇºîÀ®¤µ¤ì¤¿¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤¬ÀêÍ­¤·¤Æ¤¤¤¿¥á¥â¥ê¤ò²òÊü¤¹¤ë¡£ -¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Ë¤è¤Ã¤ÆÀêÍ­¤µ¤ì¤Æ¤¤¤¿¥á¥â¥ê¤ò²òÊü¤·¡¢ -¿·¤·¤¤¥Æ¡¼¥Ö¥ë¤òºîÀ®¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ +で作成されたハッシュテーブルが占有していたメモリを解放する。 +ハッシュテーブルによって占有されていたメモリを解放し、 +新しいテーブルを作成できるようにする。 .BR hdestroy () -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¤½¤Î¸å¤Ï +を呼び出すと、その後は .BR hcreate () -¤ò»È¤Ã¤Æ¿·¤·¤¤¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤òºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使って新しいハッシュテーブルを作成することができる。 .BR hdestroy_r () -´Ø¿ô¤Ï¡¢Æ±ÍͤνèÍý¤ò¡¢¤½¤ì°ÊÁ°¤Ë +関数は、同様の処理を、それ以前に .BR hcreate_r () -¤ò»È¤Ã¤ÆºîÀ®¤·¤¿ +を使って作成した .I *htab -¤Ç¼¨¤µ¤ì¤ë¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤ËÂФ·¤Æ¼Â¹Ô¤¹¤ë¡£ +で示されるハッシュテーブルに対して実行する。 .BR hsearch () -´Ø¿ô¤Ï¡¢\fIitem\fP ¤ÈƱ¤¸¥­¡¼¤ò»ý¤Ä¹àÌܤò¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤«¤é -¸¡º÷¤·¡¢¹àÌܤ¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¤½¤Î¹àÌܤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹ -(¡ÖƱ¤¸¡×¤«¤É¤¦¤«¤Ï +関数は、\fIitem\fP と同じキーを持つ項目をハッシュテーブルから +検索し、項目が見つかった場合にはその項目へのポインタを返す +(「同じ」かどうかは .BR strcmp (3) -¤ò»È¤Ã¤ÆȽÄꤹ¤ë)¡£ +を使って判定する)。 -°ú¤­¿ô \fIitem\fP ¤Ï \fBENTRY\fP ·¿¤Ç¤¢¤ê¡¢\fI\fP ¤ÎÃæ¤Ç -°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +引き数 \fIitem\fP は \fBENTRY\fP 型であり、\fI\fP の中で +以下のように定義されている。 .in +4n .sp .nf @@ -151,145 +151,145 @@ typedef struct entry { .in .fi .sp -¥Õ¥£¡¼¥ë¥É \fIkey\fP ¤Ï¸¡º÷¥­¡¼¤È¤Ê¤ë NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤ò»Ø¤¹¡£ -¥Õ¥£¡¼¥ë¥É \fIdata\fP ¤Ï¡¢¤³¤Î¥­¡¼¤ËÂбþ¤¹¤ë¥Ç¡¼¥¿¤ò»Ø¤¹¡£ +フィールド \fIkey\fP は検索キーとなる NULL 終端された文字列を指す。 +フィールド \fIdata\fP は、このキーに対応するデータを指す。 -¸¡º÷¤¬¼ºÇÔ¤·¤¿¸å¤ÎÆ°ºî¤Ï¡¢°ú¤­¿ô \fIaction\fP ¤Ë¤è¤ê·è¤Þ¤ë¡£ -¤³¤Î°ú¤­¿ô¤Ë¤Ï +検索が失敗した後の動作は、引き数 \fIaction\fP により決まる。 +この引き数には .B ENTER -¤« +か .B FIND -¤Î¤¤¤º¤ì¤«¤ÎÃͤò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +のいずれかの値を指定しなければならない。 .B ENTER -¤Ï +は .I item -¤Î¥³¥Ô¡¼¤òÁÞÆþ¤¹¤ë¤³¤È¤ò -(´Ø¿ô¤Î·ë²Ì¤È¤·¤Æ¿·¤·¤¤¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹)¡¢ +のコピーを挿入することを +(関数の結果として新しいハッシュテーブルエントリへのポインタを返す)、 .B FIND -¤Ï NULL ¤òÊÖ¤¹¤³¤È¤ò°ÕÌ£¤¹¤ë +は NULL を返すことを意味する .RI ( action -¤¬ +が .B FIND -¤Î¾ì¹ç¡¢ +の場合、 .I data -¤Ï̵»ë¤µ¤ì¤ë)¡£ +は無視される)。 .BR hsearch_r () -´Ø¿ô¤Ï +関数は .BR hsearch () -¤ÈƱÍͤÀ¤¬¡¢ +と同様だが、 .I *htab -¤Ç¼¨¤µ¤ì¤ë¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤ËÂФ·¤Æ½èÍý¤ò¹Ô¤¦¡£ +で示されるハッシュテーブルに対して処理を行う。 .BR hsearch_r () -´Ø¿ô¤¬ +関数が .BR hsearch () -¤È°Û¤Ê¤ë¤Î¤Ï¡¢¸«¤Ä¤«¤Ã¤¿¹àÌܤؤΥݥ¤¥ó¥¿¤ò¡¢ -´Ø¿ô¤Î·ë²Ì¤È¤·¤Æ¤Ç¤Ï¤Ê¤¯¡¢ +と異なるのは、見つかった項目へのポインタを、 +関数の結果としてではなく、 .I *retval -¤Ë³ÊǼ¤·¤ÆÊÖ¤¹ÅÀ¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +に格納して返す点である。 +.SH 返り値 .BR hcreate () -¤È +と .BR hcreate_r () -¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç 0 °Ê³°¤ÎÃͤòÊÖ¤·¡¢ -¥¨¥é¡¼¤Î¾ì¹ç 0 ¤òÊÖ¤¹¡£ +は、成功した場合 0 以外の値を返し、 +エラーの場合 0 を返す。 -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR hsearch () -¤Ï¡¢¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ëÆâ¤Î¥¨¥ó¥È¥ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ +は、ハッシュテーブル内のエントリへのポインタを返す。 +エラーの場合、 .BR hsearch () -¤Ï NULL ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤È¤Ê¤ë¤Î¤Ï¡¢ -\fIaction\fP ¤¬ \fBENTER\fP ¤Ç¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤¬¤¤¤Ã¤Ñ¤¤¤Î¾ì¹ç¤«¡¢ -\fIaction\fP ¤¬ \fBFIND\fP ¤Ç \fIitem\fP ¤¬¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ëÆâ¤Ë -¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ç¤¢¤ë¡£ +は NULL を返す。 +エラーとなるのは、 +\fIaction\fP が \fBENTER\fP でハッシュテーブルがいっぱいの場合か、 +\fIaction\fP が \fBFIND\fP で \fIitem\fP がハッシュテーブル内に +見つからない場合である。 .BR hsearch_r () -¤Ï¡¢À®¸ù¤¹¤ë¤È 0 °Ê³°¤òÊÖ¤·¡¢¥¨¥é¡¼¤Î¾ì¹ç 0 ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +は、成功すると 0 以外を返し、エラーの場合 0 を返す。 +.SH エラー .LP .BR hcreate_r () -¤È +と .BR hdestroy_r () -¤Ï°Ê²¼¤ÎÍýͳ¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +は以下の理由で失敗する可能性がある。 .TP .B EINVAL .I htab -¤¬ NULL ¤Ç¤¢¤ë¡£ +が NULL である。 .PP .BR hsearch () -¤È +と .BR hsearch_r () -¤Ï°Ê²¼¤ÎÍýͳ¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +は以下の理由で失敗する可能性がある。 .TP .B ENOMEM .I action -¤¬ +が .B ENTER -¤Ç¡¢ +で、 .I key -¤¬¥Æ¡¼¥Ö¥ëÆâ¤Ë¸«¤Ä¤«¤é¤º¡¢ -¥Æ¡¼¥Ö¥ë¤Ë¿·¤·¤¤¥¨¥ó¥È¥ê¤òÄɲ乤ë;ÃϤ¬¤Ê¤«¤Ã¤¿¡£ +がテーブル内に見つからず、 +テーブルに新しいエントリを追加する余地がなかった。 .TP .B ESRCH .I action -¤¬ +が .B FIND -¤Ç¡¢ +で、 .I key -¤¬¥Æ¡¼¥Ö¥ëÆâ¤Ë¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£ +がテーブル内に見つからなかった。 .PP -POSIX.1-2001 ¤¬µ¬Äꤷ¤Æ¤¤¤ë¤Î¤Ï¡¢¥¨¥é¡¼ +POSIX.1-2001 が規定しているのは、エラー .B ENOMEM -¤À¤±¤Ç¤¢¤ë¡£ -.SH ½àµò -´Ø¿ô +だけである。 +.SH 準拠 +関数 .BR hcreate (), .BR hsearch (), .BR hdestroy () -¤Ï SVr4 ¤«¤éƳÆþ¤µ¤ì¤¿¤â¤Î¤Ç¡¢POSIX.1-2001 ¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -´Ø¿ô +は SVr4 から導入されたもので、POSIX.1-2001 に記述されている。 +関数 .BR hcreate_r , .BR hsearch_r , .B hdestroy_r -¤Ï GNU ¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -Ä̾¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Î¼ÂÁõ¤Ï¡¢¾×ÆͤòºÇ¾®¸Â¤Ë¤¹¤ë¤¿¤á¤Ë -¥Æ¡¼¥Ö¥ë¤Ë½½Ê¬¤Ê¶õ¤­Îΰ褬¤¢¤ë¾ì¹ç¤Ë¸úΨ¤¬¤è¤¯¤Ê¤ë¡£ -¤³¤Î¤¿¤á¡¢ÉáÄ̤ϡ¢ +は GNU の拡張である。 +.SH 注意 +通常、ハッシュテーブルの実装は、衝突を最小限にするために +テーブルに十分な空き領域がある場合に効率がよくなる。 +このため、普通は、 .I nel -¤ò¡¢¸Æ¤Ó½Ð¤·Â¦¤¬¥Æ¡¼¥Ö¥ë¤Ë³ÊǼ¤·¤è¤¦¤È»×¤Ã¤Æ¤¤¤ë -¥¨¥ó¥È¥ê¤ÎºÇÂç¿ô¤è¤ê¾¯¤Ê¤¯¤È¤â 25% ¤ÏÂ礭¤ÊÃͤˤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +を、呼び出し側がテーブルに格納しようと思っている +エントリの最大数より少なくとも 25% は大きな値にすべきである。 .BR hdestroy () -¤È +と .BR hdestroy_r () -¤Ï¡¢¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Î¥¨¥ó¥È¥ê¤ÎÍ×ÁǤǤ¢¤ë +は、ハッシュテーブルのエントリの要素である .I key -¤È +と .I data -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤ò²òÊü¤·¤Ê¤¤ -(¤³¤ì¤¬¤Ç¤­¤Ê¤¤¤Î¤Ï¡¢¤³¤ì¤é¤Î¥Ð¥Ã¥Õ¥¡¤¬Æ°Åª¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¤Î¤«¤ò -ÃΤ뤳¤È¤¬¤Ç¤­¤Ê¤¤¤«¤é¤Ç¤¢¤ë)¡£ -¤³¤ì¤é¤Î¥Ð¥Ã¥Õ¥¡¤ò²òÊü¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¡¢ -¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥Ð¥Ã¥Õ¥¡¤ò²òÊü¤Ç¤­¤ë¤è¤¦¤Ë´ÉÍýÍѤΥǡ¼¥¿¹½Â¤¤ò -Àߤ±¤Æ¡¢¤³¤ì¤ò´ÉÍý¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(²òÊü¤¬É¬ÍפȤʤëÍýͳ¤Ï¡¢¤¿¤¤¤Æ¤¤¤Ï¡¢¥×¥í¥°¥é¥à¼«¿È¤ÈÀ¸Â¸´ü´Ö¤¬Æ±¤¸ -¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤ò°ì¤Ä¤À¤±ºîÀ®¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢¤½¤Î¥×¥í¥°¥é¥à¤Ç¤ÏÊ£¿ô¤Î -¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤ò·«¤êÊÖ¤·¤ÆºîÀ®¤·¤¿¤êÇË´þ¤·¤¿¤ê¤¹¤ë¤«¤é¤Ç¤¢¤í¤¦)¡£ -.SH ¥Ð¥° -SVr4 ¤È POSIX.1-2001 ¤Îµ¬Äê¤Ç¤Ï¡¢ -\fIaction\fP ¤Ï¸¡º÷¤¬¼ºÇÔ¤·¤¿¤È¤­¤Ë¤À¤±°ÕÌ£¤ò»ý¤Ä¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤è¤Ã¤Æ¡¢¸¡º÷¤¬À®¸ù¤·¤¿¾ì¹ç¡¢\fIaction\fP ¤ÎÃͤ¬ \fBENTER\fP ¤Ç¤â -²¿¤â¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -(¥Ð¡¼¥¸¥ç¥ó 2.3 ¤è¤êÁ°¤Î) libc ¤È glibc ¤Î¼ÂÁõ¤Ï¤³¤Îµ¬³Ê¤Ë°ãÈ¿¤·¤Æ¤ª¤ê¡¢ -¤³¤Î¾õ¶·¤Ç¡¢»ØÄꤵ¤ì¤¿ \fIkey\fP ¤ËÂбþ¤¹¤ë \fIdata\fP ¤¬¹¹¿·¤µ¤ì¤ë¡£ +が指すバッファを解放しない +(これができないのは、これらのバッファが動的に割り当てられたのかを +知ることができないからである)。 +これらのバッファを解放する必要がある場合、 +プログラムでは、これらのバッファを解放できるように管理用のデータ構造を +設けて、これを管理しなければならない +(解放が必要となる理由は、たいていは、プログラム自身と生存期間が同じ +ハッシュテーブルを一つだけ作成するのではなく、そのプログラムでは複数の +ハッシュテーブルを繰り返して作成したり破棄したりするからであろう)。 +.SH バグ +SVr4 と POSIX.1-2001 の規定では、 +\fIaction\fP は検索が失敗したときにだけ意味を持つとなっている。 +よって、検索が成功した場合、\fIaction\fP の値が \fBENTER\fP でも +何もすべきではない。 +(バージョン 2.3 より前の) libc と glibc の実装はこの規格に違反しており、 +この状況で、指定された \fIkey\fP に対応する \fIdata\fP が更新される。 -¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¡¼¤ÎÄɲäϤǤ­¤ë¤¬¡¢ºï½ü¤¬¤Ç¤­¤Ê¤¤¡£ -.SH Îã +ハッシュテーブルエントリーの追加はできるが、削除ができない。 +.SH 例 .PP -¼¡¤Î¥×¥í¥°¥é¥à¤Ï¡¢¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Ë 24 ¸Ä¤Î¹àÌܤòÁÞÆþ¤·¡¢ -¤½¤ì¤«¤é¤½¤Î¤¦¤Á¤Î¤¤¤¯¤Ä¤«¤òɽ¼¨¤¹¤ë¡£ +次のプログラムは、ハッシュテーブルに 24 個の項目を挿入し、 +それからそのうちのいくつかを表示する。 .nf #include @@ -312,10 +312,10 @@ int main() for (i = 0; i < 24; i++) { e.key = data[i]; - /* ¥Ç¡¼¥¿¤Ï¡¢¥Ý¥¤¥ó¥¿¤Ç¤Ï¤Ê¤¯¡¢Ã±¤Ê¤ëÀ°¿ôÃͤǤ¢¤ë¡£ */ + /* データは、ポインタではなく、単なる整数値である。 */ e.data = (void *) i; ep = hsearch(e, ENTER); - /* ¥¨¥é¡¼¤Ïµ¯¤³¤é¤Ê¤¤¤Ï¤º¤Ç¤¢¤ë¡£ */ + /* エラーは起こらないはずである。 */ if (ep == NULL) { fprintf(stderr, "entry failed\\n"); exit(EXIT_FAILURE); @@ -323,8 +323,8 @@ int main() } for (i = 22; i < 26; i++) { - /* ¥Æ¡¼¥Ö¥ë¤Ë¤¢¤ë 2 ¤Ä¤Î¥¨¥ó¥È¥ê¤òɽ¼¨¤·¡¢ - ¤¢¤È¤Î 2 ¤Ä¤¬¥Æ¡¼¥Ö¥ë¤Ë¤Ê¤¤¤³¤È¤ò¼¨¤¹¡£ */ + /* テーブルにある 2 つのエントリを表示し、 + あとの 2 つがテーブルにないことを示す。 */ e.key = data[i]; ep = hsearch(e, FIND); printf("%9.9s \-> %9.9s:%d\\n", e.key, @@ -334,7 +334,7 @@ int main() exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bsearch (3), .BR lsearch (3), .BR malloc (3), diff --git a/release/man3/hypot.3 b/release/man3/hypot.3 index 8af34dea..5ec88189 100644 --- a/release/man3/hypot.3 +++ b/release/man3/hypot.3 @@ -39,9 +39,9 @@ .\" Updated 2008-09-18, Akihiro MOTOKI .\" .TH HYPOT 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -hypot, hypotf, hypotl \- ¥æ¡¼¥¯¥ê¥Ã¥Éµ÷Î¥´Ø¿ô -.SH ½ñ¼° +.SH 名前 +hypot, hypotf, hypotl \- ユークリッド距離関数 +.SH 書式 .nf .B #include .sp @@ -52,12 +52,12 @@ hypot, hypotf, hypotl \- .BI "long double hypotl(long double " x ", long double " y ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -80,89 +80,89 @@ or .I cc\ -std=c99 .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR hypot () -´Ø¿ô¤Ï +関数は .RI sqrt( x * x + y * y ) -¤ÎÃͤòÊÖ¤¹¡£ -¤³¤ì¤Ï -ľ³Ñ¤ò¶´¤à 2 ÊÕ¤ÎŤµ¤¬ +の値を返す。 +これは +直角を挟む 2 辺の長さが .I x -¤È +と .I y -¤Ç¤¢¤ëľ³Ñ»°³Ñ·Á¤Î¼ÐÊÕ¤ÎŤµ¡¢ -¤¹¤Ê¤ï¤Á¡¢¸¶ÅÀ¤ÈÅÀ +である直角三角形の斜辺の長さ、 +すなわち、原点と点 .RI ( x , y ) -¤È¤Îµ÷Î¥¤Ç¤¢¤ë¡£ +との距離である。 -·×»»¤ÎÃæ´Ö¥¹¥Æ¥Ã¥×¤Ç¤Ï¡¢É¬Íװʾå¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤ä¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¬ -µ¯¤­¤Ê¤¤¤è¤¦¤Ë¤·¤Æ·×»»¤¬¼Â¹Ô¤µ¤ì¤ë¡£ +計算の中間ステップでは、必要以上のオーバーフローやアンダーフローが +起きないようにして計算が実行される。 .\" e.g., hypot(DBL_MIN, DBL_MIN) does the right thing, as does, say .\" hypot(DBL_MAX/2.0, DBL_MAX/2.0). -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ -ľ³Ñ¤ò¶´¤à 2 ÊÕ¤ÎŤµ¤¬ +.SH 返り値 +成功すると、これらの関数は、 +直角を挟む 2 辺の長さが .I x -¤È +と .I y -¤Ç¤¢¤ëľ³Ñ»°³Ñ·Á¤Î¼ÐÊÕ¤ÎŤµ¤òÊÖ¤¹¡£ +である直角三角形の斜辺の長さを返す。 .I x -¤« +か .I y -¤¬Ìµ¸ÂÂç¤Î¾ì¹ç¡¢Àµ¤Î̵¸ÂÂ礬ÊÖ¤µ¤ì¤ë¡£ +が無限大の場合、正の無限大が返される。 .I x -¤« +か .I y -¤Î°ìÊý¤¬ NaN ¤Ç¡¢¤â¤¦°ìÊý¤¬Ìµ¸ÂÂç¤Ç¤Ê¤¤¾ì¹ç¡¢ -NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +の一方が NaN で、もう一方が無限大でない場合、 +NaN が返される。 -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +結果がオーバーフローする場合、範囲エラー (range error) が発生し、 +各関数はそれぞれ .BR HUGE_VAL , .BR HUGE_VALF , .B HUGE_VALL -¤òÊÖ¤¹¡£ +を返す。 -ξÊý¤Î°ú¤­¿ô¤¬ÈóÀµµ¬²½¿ô (subnormal) ¤Ç¡¢·ë²Ì¤âÈóÀµµ¬²½¿ô (subnormal) ¤Î¾ì¹ç¡¢ +両方の引き数が非正規化数 (subnormal) で、結果も非正規化数 (subnormal) の場合、 .\" Actually, could the result not be subnormal if both arguments .\" are subnormal? I think not -- mtk, Jul 2008 -ÈÏ°Ï¥¨¥é¡¼¤¬È¯À¸¤·¡¢Àµ¤·¤¤·ë²Ì¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +範囲エラーが発生し、正しい結果が返される。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ +範囲エラー: 結果のオーバーフロー .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤Î¥¢¥ó¥À¡¼¥Õ¥í¡¼ +範囲エラー: 結果のアンダーフロー .\" .I errno .\" is set to .\" .BR ERANGE . -¥¢¥ó¥À¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +アンダーフロー浮動小数点例外 .RB ( FE_UNDERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .IP -¤³¤Î¾ì¹ç¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +この場合、これらの関数は .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" They do set errno for the overflow case. .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6795 -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +版の関数は SVr4, 4.3BSD にも準拠している。 +.SH 関連項目 .BR cabs (3), .BR sqrt (3) diff --git a/release/man3/iconv.3 b/release/man3/iconv.3 index 35490edf..65049065 100644 --- a/release/man3/iconv.3 +++ b/release/man3/iconv.3 @@ -17,15 +17,15 @@ .\" Translated 2000-07-11, Yuichi SATO .\" Updated 2008-09-14, Akihiro MOTOKI , LDP v3.09 .\" -.\"WORD: conversion ÊÑ´¹ -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ -.\"WORD: sequence ʸ»úÎó +.\"WORD: conversion 変換 +.\"WORD: descriptor ディスクリプター +.\"WORD: sequence 文字列 .\"WORD: .\" .TH ICONV 3 2008-09-08 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -iconv \- ʸ»ú¥»¥Ã¥ÈÊÑ´¹¤ò¹Ô¤¦ -.SH ½ñ¼° +.SH 名前 +iconv \- 文字セット変換を行う +.SH 書式 .nf .B #include .sp @@ -33,104 +33,104 @@ iconv \- ʸ .BI " char **" inbuf ", size_t *" inbytesleft , .BI " char **" outbuf ", size_t *" outbytesleft ); .fi -.SH ÀâÌÀ -°ú¤­¿ô \fIcd\fP ¤Ï¡¢´Ø¿ô +.SH 説明 +引き数 \fIcd\fP は、関数 .BR iconv_open (3) -¤ò»È¤Ã¤ÆÀ¸À®¤µ¤ì¤ë -ÊÑ´¹¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を使って生成される +変換ディスクリプターでなければならない。 .PP -¼ç¤Ë»È¤ï¤ì¤ë¤Î¤Ï¡¢ -¡Ö\fIinbuf\fP ¤¬ NULL ¤Ç¤Ê¤¯¡¢¤«¤Ä \fI*inbuf\fP ¤¬ NULL ¤Ç¤Ê¤¤¡× -¤È¤¤¤¦¾ì¹ç¤Ç¤¢¤ë¡£ -¤³¤Î¾ì¹ç¡¢ +主に使われるのは、 +「\fIinbuf\fP が NULL でなく、かつ \fI*inbuf\fP が NULL でない」 +という場合である。 +この場合、 .BR iconv () -´Ø¿ô¤Ï¡¢ -\fI*inbuf\fP ¤Ç»Ï¤Þ¤ë¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ò -\fI*outbuf\fP ¤Ç»Ï¤Þ¤ë¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ËÊÑ´¹¤¹¤ë¡£ -\fI*inbuf\fP ¤òÀèƬ¤È¤·¤ÆºÇÂç \fI*inbytesleft\fP ¥Ð¥¤¥È¤¬Æɤ߹þ¤Þ¤ì¡¢ -\fI*outbuf\fP ¤òÀèƬ¤È¤·¤ÆºÇÂç \fI*outbytesleft\fP ¥Ð¥¤¥È¤¬½ñ¤­½Ð¤µ¤ì¤ë¡£ +関数は、 +\fI*inbuf\fP で始まるマルチバイト文字列を +\fI*outbuf\fP で始まるマルチバイト文字列に変換する。 +\fI*inbuf\fP を先頭として最大 \fI*inbytesleft\fP バイトが読み込まれ、 +\fI*outbuf\fP を先頭として最大 \fI*outbytesleft\fP バイトが書き出される。 .PP .BR iconv () -´Ø¿ô¤Ï 1 ÅÙ¤Ë 1 ¤Ä¤Î¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤òÊÑ´¹¤¹¤ë¡£ -¤½¤·¤Æ¡¢³Æʸ»úÊÑ´¹Ëè¤Ë¡¢ÊÑ´¹¤µ¤ì¤¿ÆþÎϥХ¤¥È¤Î¿ô¤À¤± -\fI*inbuf\fP ¤òÁý²Ã¤µ¤»¡¢\fI*inbytesleft\fP ¤ò¸º¾¯¤µ¤»¤ë¡£ -¤Þ¤¿¡¢ÊÑ´¹¤µ¤ì¤¿½ÐÎϥХ¤¥È¤Î¿ô¤À¤± -\fI*outbuf\fP ¤òÁý²Ã¤µ¤»¡¢\fI*outbytesleft\fP ¤ò¸º¾¯¤µ¤»¤ë¡£ -¤µ¤é¤Ë¡¢\fIcd\fP ¤Ë´Þ¤Þ¤ì¤ëÊÑ´¹¾õÂÖ¤ò¹¹¿·¤¹¤ë¡£ -ÆþÎϤÎʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤¬¤¬¾õÂÖ¤ò»ý¤Ä¾ì¹ç¡¢ +関数は 1 度に 1 つのマルチバイト文字を変換する。 +そして、各文字変換毎に、変換された入力バイトの数だけ +\fI*inbuf\fP を増加させ、\fI*inbytesleft\fP を減少させる。 +また、変換された出力バイトの数だけ +\fI*outbuf\fP を増加させ、\fI*outbytesleft\fP を減少させる。 +さらに、\fIcd\fP に含まれる変換状態を更新する。 +入力の文字エンコーディングがが状態を持つ場合、 .BR iconv () -´Ø¿ô¤ÏÆþÎϥХ¤¥È¤ÎÎó¤ËÂФ·¤ÆÊÑ´¹¤Ë¤âÂбþ¤·¤Æ¤ª¤ê¡¢ -¥Ð¥¤¥È½ÐÎϤòȼ¤ï¤º¤ËÊÑ´¹¾õÂÖ¤ò¹¹¿·¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -ÊÑ´¹¤Ï¡¢¼¡¤Î 4 ¤Ä¤Î¾ì¹ç¤ËÄä»ß¤¹¤ë¡£ +関数は入力バイトの列に対して変換にも対応しており、 +バイト出力を伴わずに変換状態を更新することができる。 +変換は、次の 4 つの場合に停止する。 .PP -1. ÆþÎϤË̵¸ú¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎ󤬤¢¤Ã¤¿¾ì¹ç¡£ -¤³¤Î¾ì¹ç¡¢´Ø¿ô¤Ï \fIerrno\fP ¤ò \fBEILSEQ\fP ¤ËÀßÄꤷ¡¢ +1. 入力に無効なマルチバイト文字列があった場合。 +この場合、関数は \fIerrno\fP を \fBEILSEQ\fP に設定し、 .I (size_t)\ \-1 -¤òÊÖ¤¹¡£ -\fI*inbuf\fP ¤Ï¡¢Ìµ¸ú¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ÎÀèƬ¤ò»Ø¤·¤¿¤Þ¤Þ¤Ë¤Ê¤ë¡£ +を返す。 +\fI*inbuf\fP は、無効なマルチバイト文字列の先頭を指したままになる。 .PP -2. ÆþÎϥХ¤¥Èʸ»úÎ󤬴°Á´¤ËÊÑ´¹¤µ¤ì¡¢\fI*inbytesleft\fP ¤¬ 0 ¤Ë¤Ê¤Ã¤¿¾ì¹ç¡£ -¤³¤Î¾ì¹ç¡¢ +2. 入力バイト文字列が完全に変換され、\fI*inbytesleft\fP が 0 になった場合。 +この場合、 .BR iconv () -¤Ï¡¢¸Æ½Ð¤·¤Î´Ö¤ËÈó²ÄµÕÊÑ´¹¤¬¹Ô¤ï¤ì¤¿²ó¿ô¤òÊÖ¤¹¡£ +は、呼出しの間に非可逆変換が行われた回数を返す。 .PP -3. ÆþÎϤËÉÔ´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎ󤬤¢¤ê¡¢ -ÆþÎϥХ¤¥Èʸ»úÎ󤬤½¤Î¸å¤Ç½ªÎ»¤·¤Æ¤¤¤ë¾ì¹ç¡£ -¤³¤Î¾ì¹ç¡¢´Ø¿ô¤Ï¡¢\fIerrno\fP ¤ò \fBEINVAL\fP ¤ËÀßÄꤷ¡¢ +3. 入力に不完全なマルチバイト文字列があり、 +入力バイト文字列がその後で終了している場合。 +この場合、関数は、\fIerrno\fP を \fBEINVAL\fP に設定し、 .I (size_t)\ \-1 -¤òÊÖ¤¹¡£ -\fI*inbuf\fP ¤Ï¡¢ÉÔ´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ÎÀèƬ¤ò»Ø¤·¤¿¤Þ¤Þ¤Ë¤µ¤ì¤ë¡£ +を返す。 +\fI*inbuf\fP は、不完全なマルチバイト文字列の先頭を指したままにされる。 .PP -4. ½ÐÎϥХåե¡¡¼¤Ë¼¡¤ÎÊÑ´¹¤µ¤ì¤¿Ê¸»úÎó¤Î¤¿¤á¤Î¶õ¤­¤¬¤Ê¤¤¾ì¹ç¡£ -¤³¤Î¾ì¹ç¡¢\fIerrno\fP ¤¬ \fBE2BIG\fP ¤ËÀßÄꤵ¤ì¡¢ +4. 出力バッファーに次の変換された文字列のための空きがない場合。 +この場合、\fIerrno\fP が \fBE2BIG\fP に設定され、 .I (size_t)\ \-1 -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .PP -Ê̤Υ±¡¼¥¹¤È¤·¤Æ¤Ï¡¢ -¡Ö\fIinbuf\fP ¤¬ NULL¡¢¤Þ¤¿¤Ï \fI*inbuf\fP ¤¬ NULL ¤Ç¤¢¤ë¡£ -¤·¤«¤·¡¢\fIoutbuf\fP ¤¬ NULL ¤Ç¤Ê¤¯¡¢¤«¤Ä \fI*outbuf\fP ¤¬ NULL ¤Ç¤Ê¤¤¡× -¤È¤¤¤¦¾ì¹ç¤¬¤¢¤ë¡£ -¤³¤Î¾ì¹ç¡¢ +別のケースとしては、 +「\fIinbuf\fP が NULL、または \fI*inbuf\fP が NULL である。 +しかし、\fIoutbuf\fP が NULL でなく、かつ \fI*outbuf\fP が NULL でない」 +という場合がある。 +この場合、 .BR iconv () -´Ø¿ô¤Ï¡¢\fIcd\fP ¤ÎÊÑ´¹¾õÂÖ¤ò½é´ü¾õÂ֤ˤ·¤Æ¡¢ -Âбþ¤¹¤ë¥·¥Õ¥Èʸ»úÎó¤ò \fI*outbuf\fP ¤ËÊݸ¤·¤è¤¦¤È¤¹¤ë¡£ -ºÇÂç \fI*outbytesleft\fP ¥Ð¥¤¥È¤¬¡¢\fI*outbuf\fP ¤ò»Ï¤á¤È¤·¤Æ½ñ¤­½Ð¤µ¤ì¤ë¡£ -¤³¤Î¥ê¥»¥Ã¥È¤µ¤ì¤¿Ê¸»úÎó¤ËÂФ·¤Æ¡¢½ÐÎϥХåե¡¡¼¤Ë¶õ¤­¤¬¤Ê¤¤¾ì¹ç¡¢ -¤³¤Î´Ø¿ô¤Ï \fIerrno\fP ¤ò \fBE2BIG\fP ¤ËÀßÄꤷ¡¢ +関数は、\fIcd\fP の変換状態を初期状態にして、 +対応するシフト文字列を \fI*outbuf\fP に保存しようとする。 +最大 \fI*outbytesleft\fP バイトが、\fI*outbuf\fP を始めとして書き出される。 +このリセットされた文字列に対して、出力バッファーに空きがない場合、 +この関数は \fIerrno\fP を \fBE2BIG\fP に設定し、 .I (size_t)\ \-1 -¤òÊÖ¤¹¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï¡¢½ñ¤­¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¤Î¿ô¤À¤± -\fI*outbuf\fP ¤òÁý²Ã¤µ¤»¡¢\fI*outbytesleft\fP ¤ò¸º¾¯¤µ¤»¤ë¡£ +を返す。 +それ以外の場合、この関数は、書き込まれたバイトの数だけ +\fI*outbuf\fP を増加させ、\fI*outbytesleft\fP を減少させる。 .PP -3 ÈÖÌܤΥ±¡¼¥¹¤·¤Æ¤Ï¡¢ -¡Ö\fIinbuf\fP ¤¬ NULL¡¢¤Þ¤¿¤Ï \fI*inbuf\fP ¤¬ NULL ¤Ç¤¢¤ë¡£ -¤«¤Ä¡¢\fIoutbuf\fP ¤¬ NULL¡¢¤Þ¤¿¤Ï \fI*outbuf\fP ¤¬ NULL ¤Ç¤¢¤ë¡× -¤È¤¤¤¦¾ì¹ç¤¬¤¢¤ë¡£ -¤³¤Î¾ì¹ç¡¢ +3 番目のケースしては、 +「\fIinbuf\fP が NULL、または \fI*inbuf\fP が NULL である。 +かつ、\fIoutbuf\fP が NULL、または \fI*outbuf\fP が NULL である」 +という場合がある。 +この場合、 .BR iconv () -´Ø¿ô¤Ï¡¢\fIcd\fP ¤ÎÊÑ´¹¾õÂÖ¤ò½é´ü¾õÂ֤ˤ¹¤ë¡£ -.SH ÊÖ¤êÃÍ +関数は、\fIcd\fP の変換状態を初期状態にする。 +.SH 返り値 .BR iconv () -´Ø¿ô¤Ï¡¢¸Æ½Ð¤·¤Î´Ö¤ËÈó²ÄµÕ¤ÊÊýË¡¤ÇÊÑ´¹¤µ¤ì¤¿Ê¸»ú¿ô¤òÊÖ¤¹¡£ -¤Ä¤Þ¤ê¡¢²ÄµÕÊÑ´¹¤Ï¥«¥¦¥ó¥È¤µ¤ì¤Ê¤¤¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï \fIerrno\fP ¤òÀßÄꤷ¡¢ +関数は、呼出しの間に非可逆な方法で変換された文字数を返す。 +つまり、可逆変換はカウントされない。 +エラーの場合、この関数は \fIerrno\fP を設定し、 .I (size_t)\ \-1 -¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -¾¤Î¤¤¤í¤¤¤í¤Ê¥¨¥é¡¼¤Î¤¦¤Á¤«¤é¡¢°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ê¤¦¤ë¡£ +を返す。 +.SH エラー +他のいろいろなエラーのうちから、以下のエラーが起こりうる。 .TP .B E2BIG -\fI*outbuf\fP ¤Ë½½Ê¬¤Ê¶õ¤­¤¬¤Ê¤¤¡£ +\fI*outbuf\fP に十分な空きがない。 .TP .B EILSEQ -ÆþÎϤË̵¸ú¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎ󤬤¢¤Ã¤¿¡£ +入力に無効なマルチバイト文字列があった。 .TP .B EINVAL -ÆþÎϤËÉÔ´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎ󤬤¢¤Ã¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤Î´Ø¿ô¤Ï¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH ½àµò +入力に不完全なマルチバイト文字列があった。 +.SH バージョン +この関数はバージョン 2.1 以降の glibc で利用可能である。 +.SH 準拠 POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR iconv_close (3), .BR iconv_open (3) diff --git a/release/man3/iconv_close.3 b/release/man3/iconv_close.3 index 3d8271f8..50ec8a6b 100644 --- a/release/man3/iconv_close.3 +++ b/release/man3/iconv_close.3 @@ -14,37 +14,37 @@ .\" Translated Tue Jul 11 19:02:58 JST 2000 .\" by Yuichi SATO .\" -.\"WORD: conversion ÊÑ´¹ -.\"WORD: deallocate ²òÊü¤¹¤ë -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ +.\"WORD: conversion 変換 +.\"WORD: deallocate 解放する +.\"WORD: descriptor ディスクリプター .\"WORD: .\" .TH ICONV_CLOSE 3 2008-08-11 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -iconv_close \- ʸ»ú¥»¥Ã¥ÈÊÑ´¹¤Î¤¿¤á¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤ò²òÊü¤¹¤ë -.SH ½ñ¼° +.SH 名前 +iconv_close \- 文字セット変換のためのディスクリプターを解放する +.SH 書式 .nf .B #include .sp .BI "int iconv_close(iconv_t " cd ); .fi -.SH ÀâÌÀ +.SH 説明 .BR iconv_close () -´Ø¿ô¤Ï¡¢ +関数は、 .BR iconv_open (3) -¤ò»È¤Ã¤Æ°ÊÁ°¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿ -ÊÑ´¹¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ \fIcd\fP ¤ò²òÊü¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +を使って以前に割り当てられた +変換ディスクリプター \fIcd\fP を解放する。 +.SH 返り値 +成功した場合、 .BR iconv_close () -´Ø¿ô¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï +関数は 0 を返す。 +エラーの場合、この関数は .I errno -¤òÀßÄꤷ \-1 ¤òÊÖ¤¹¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤Î´Ø¿ô¤Ï¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH ½àµò +を設定し \-1 を返す。 +.SH バージョン +この関数はバージョン 2.1 以降の glibc で利用可能である。 +.SH 準拠 UNIX98, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR iconv (3), .BR iconv_open (3) diff --git a/release/man3/iconv_open.3 b/release/man3/iconv_open.3 index 6b175a89..b0e1aae2 100644 --- a/release/man3/iconv_open.3 +++ b/release/man3/iconv_open.3 @@ -19,79 +19,79 @@ .\" by Yuichi SATO .\" Updated 2007-06-01, Akihiro MOTOKI , LDP v2.50 .\" -.\"WORD: allocate ³ä¤êÅö¤Æ¤ë -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: conversion ÊÑ´¹ -.\"WORD: sequence ʸ»úÎó +.\"WORD: allocate 割り当てる +.\"WORD: descriptor ディスクリプタ +.\"WORD: conversion 変換 +.\"WORD: sequence 文字列 .\" .TH ICONV_OPEN 3 2008-08-11 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -iconv_open \- ʸ»ú¥»¥Ã¥ÈÊÑ´¹¤Î¤¿¤á¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò³ä¤êÅö¤Æ¤ë -.SH ½ñ¼° +.SH 名前 +iconv_open \- 文字セット変換のためのディスクリプタを割り当てる +.SH 書式 .nf .B #include .sp .BI "iconv_t iconv_open(const char *" tocode ", const char *" fromcode ); .fi -.SH ÀâÌÀ +.SH 説明 .BR iconv_open () -´Ø¿ô¤Ï¡¢Ê¸»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥° \fIfromcode\fP ¤«¤é -ʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥° \fItocode\fP ¤Ø¤Î¥Ð¥¤¥Èʸ»úÎóÊÑ´¹¤ËŬ¤·¤¿ -ÊÑ´¹¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò³ä¤êÅö¤Æ¤ë¡£ +関数は、文字エンコーディング \fIfromcode\fP から +文字エンコーディング \fItocode\fP へのバイト文字列変換に適した +変換ディスクリプタを割り当てる。 .PP -\fIfromcode\fP ¤È \fItocode\fP ¤Ë»È¤¦¤³¤È¤Î¤Ç¤­¤ëÃͤȡ¢ -¥µ¥Ý¡¼¥È¤µ¤ì¤ëÁȤ߹ç¤ï¤»¤Ï¡¢¥·¥¹¥Æ¥à¤Ë°Í¸¤¹¤ë¡£ -GNU C ¥é¥¤¥Ö¥é¥ê¤Ç¤Ï¡¢»È¤¦¤³¤È¤Î¤Ç¤­¤ëÃÍ¤Ï -\fBiconv \-\-list\fP ¥³¥Þ¥ó¥É¤Ç¥ê¥¹¥È¤µ¤ì¡¢ -¥ê¥¹¥È¤µ¤ì¤¿¤¹¤Ù¤Æ¤ÎÃͤÎÁȤ߹ç¤ï¤»¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤ë¡£ -¤µ¤é¤Ë¡¢ GNU C ¥é¥¤¥Ö¥é¥ê¤È GNU libiconv ¥é¥¤¥Ö¥é¥ê¤Ç¤Ï¡¢ -°Ê²¼¤ÎÀÜÈø¼­¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +\fIfromcode\fP と \fItocode\fP に使うことのできる値と、 +サポートされる組み合わせは、システムに依存する。 +GNU C ライブラリでは、使うことのできる値は +\fBiconv \-\-list\fP コマンドでリストされ、 +リストされたすべての値の組み合わせがサポートされる。 +さらに、 GNU C ライブラリと GNU libiconv ライブラリでは、 +以下の接尾辞がサポートされている。 .TP //TRANSLIT -\fItocode\fP ¤Î¸å¤í¤Ëʸ»úÎó "//TRANSLIT" ¤¬ÉÕ¤¤¤Æ¤¤¤ë¾ì¹ç¡¢ -ËÝÌõ (transliteration) ¤¬Í­¸ú¤Ë¤Ê¤ë¡£¤³¤Î¾ì¹ç¡¢ -ÊÑ´¹Àè¤Îʸ»ú¥»¥Ã¥È¤Çɽ¸½¤Ç¤­¤Ê¤¤Ê¸»ú¤ò¡¢¤½¤Îʸ»ú¤ÈƱ¤¸¤è¤¦¤Ë¸«¤¨¤ë -ʸ»ú (Ê£¿ôʸ»ú¤Î¾ì¹ç¤â¤¢¤ë) ¤Çɽ¸½¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +\fItocode\fP の後ろに文字列 "//TRANSLIT" が付いている場合、 +翻訳 (transliteration) が有効になる。この場合、 +変換先の文字セットで表現できない文字を、その文字と同じように見える +文字 (複数文字の場合もある) で表現することができる。 .TP //IGNORE -\fItocode\fP ¤Î¸å¤í¤Ëʸ»úÎó "//IGNORE" ¤¬ÉÕ¤¤¤Æ¤¤¤ë¾ì¹ç¡¢ -ÊÑ´¹Àè¤Îʸ»ú¥»¥Ã¥È¤Çɽ¸½¤Ç¤­¤Ê¤¤Ê¸»ú¤ÏÌۤäÆ̵»ë¤µ¤ì¤ë¡£ +\fItocode\fP の後ろに文字列 "//IGNORE" が付いている場合、 +変換先の文字セットで表現できない文字は黙って無視される。 .PP -¤³¤Î´Ø¿ô¤òÆɤó¤ÇÆÀ¤é¤ì¤¿ÊÑ´¹¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢ +この関数を読んで得られた変換ディスクリプタは、 .BR iconv (3) -¤Ç -²¿Å٤Ǥâ»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤Ï +で +何度でも使うことができる。 +これは .BR iconv_close (3) -¤ò»È¤Ã¤Æ²òÊü¤µ¤ì¤ë¤Þ¤ÇÍ­¸ú¤Ç¤¢¤ë¡£ +を使って解放されるまで有効である。 .PP -ÊÑ´¹¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÊÑ´¹¾õÂÖ¤ò»ý¤Ä¡£ +変換ディスクリプタは変換状態を持つ。 .BR iconv_open () -¤òÍѤ¤¤ÆÀ¸À®¤µ¤ì¤¿¸å¡¢ÊÑ´¹¾õÂ֤Ͻé´ü¾õÂ֤Ǥ¢¤ë¡£ +を用いて生成された後、変換状態は初期状態である。 .BR iconv (3) -¤ò»È¤¦¤³¤È¤Ë¤è¤ê¡¢¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÊÑ´¹¾õÂÖ¤¬Êѹ¹¤µ¤ì¤ë¡£ -(ÊÑ´¹¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Ç -Ʊ»þ¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤Ê¤¤¤³¤È¤ò°ÕÌ£¤·¤Æ¤¤¤ë¡£) -ÊÑ´¹¾õÂÖ¤ò½é´ü¾õÂÖ¤ËÌ᤹¤Ë¤Ï¡¢ -\fIinbuf\fP °ú¤­¿ô¤ò NULL ¤È¤·¤Æ +を使うことにより、ディスクリプタの変換状態が変更される。 +(変換ディスクリプタはマルチスレッドで +同時に使うことができないことを意味している。) +変換状態を初期状態に戻すには、 +\fIinbuf\fP 引き数を NULL として .BR iconv (3) -¤òÍѤ¤¤ë¤³¤È¡£ -.SH ÊÖ¤êÃÍ +を用いること。 +.SH 返り値 .BR iconv_open () -´Ø¿ô¤Ï¡¢¿·¤¿¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿ÊÑ´¹¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï \fIerrno\fP ¤òÀßÄꤷ¡¢ +関数は、新たに割り当てられた変換ディスクリプタを返す。 +エラーの場合、この関数は \fIerrno\fP を設定し、 .I (iconv_t)\ \-1 -¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -¾¤Î¤¤¤í¤¤¤í¤Ê¥¨¥é¡¼¤Î¤¦¤Á¡¢°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ê¤¦¤ë¡£ +を返す。 +.SH エラー +他のいろいろなエラーのうち、以下のエラーが起こりうる。 .TP .B EINVAL -\fIfromcode\fP ¤«¤é \fItocode\fP ¤Ø¤ÎÊÑ´¹¤Ï¡¢¤³¤Î¼ÂÁõ¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤Î´Ø¿ô¤Ï¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH ½àµò +\fIfromcode\fP から \fItocode\fP への変換は、この実装ではサポートされていない。 +.SH バージョン +この関数はバージョン 2.1 以降の glibc で利用可能である。 +.SH 準拠 UNIX98, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR iconv (1), .BR iconv (3), .BR iconv_close (3) diff --git a/release/man3/ilogb.3 b/release/man3/ilogb.3 index b703d80a..ddb541f1 100644 --- a/release/man3/ilogb.3 +++ b/release/man3/ilogb.3 @@ -31,9 +31,9 @@ .\" Updated 2008-09-18, Akihiro MOTOKI .\" .TH ILOGB 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -ilogb, ilogbf, ilogbl \- ÉâÆ°¾®¿ôÅÀ¿ô¤Î»Ø¿ôÉô¤òÀ°¿ô¤È¤·¤Æ¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +ilogb, ilogbf, ilogbl \- 浮動小数点数の指数部を整数として取得する +.SH 書式 .B #include .sp .BI "int ilogb(double " x ); @@ -42,12 +42,12 @@ ilogb, ilogbf, ilogbl \- .br .BI "int ilogbl(long double " x ); .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -72,38 +72,38 @@ or .I cc\ -std=c99 .RE .ad b -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï°ú¤­¿ô¤Î»Ø¿ôÉô¤òÉä¹æÉÕ¤­À°¿ô¤È¤·¤ÆÊÖ¤¹¡£ -¥¨¥é¡¼¤¬µ¯¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢Âбþ¤¹¤ë +.SH 説明 +これらの関数は引き数の指数部を符号付き整数として返す。 +エラーが起らなかった場合、これらの関数は、対応する .BR logb (3) -´Ø¿ô¤ò +関数を .I int -¤Ç¥­¥ã¥¹¥È¤·¤¿¤â¤Î¤ÈÅù²Á¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +でキャストしたものと等価である。 +.SH 返り値 +成功すると、これらの関数は .I x -¤Î»Ø¿ôÉô¤òÉä¹æÉÕ¤­À°¿ô¤È¤·¤ÆÊÖ¤¹¡£ +の指数部を符号付き整数として返す。 .\" the POSIX.1 spec for logb() says logb() gives pole error for this .\" case, but for ilogb() it says domain error. .\" glibc: The numeric value is either `INT_MIN' or `-INT_MAX'. .I x -¤¬¥¼¥í¤Î¾ì¹ç¡¢Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ +がゼロの場合、領域エラー (domain error) が発生し、 .B FP_ILOGB0 -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .\" glibc: The numeric value is either `INT_MIN' or `INT_MAX'. .\" On i386, FP_ILOGB0 and FP_ILOGBNAN have the same value. .I x -¤¬ NaN ¤Î¾ì¹ç¡¢Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ +が NaN の場合、領域エラー (domain error) が発生し、 .B FP_ILOGBNAN -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .I x -¤¬Éé¤Î̵¸ÂÂ礫Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ +が負の無限大か正の無限大の場合、 +領域エラー (domain error) が発生し、 .B INT_MAX -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .\" .\" POSIX.1-2001 also says: .\" If the correct value is greater than {INT_MAX}, {INT_MAX} @@ -111,27 +111,27 @@ or .\" .\" If the correct value is less than {INT_MIN}, {INT_MIN} .\" shall be returned and a domain error shall occur. -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -Îΰ襨¥é¡¼: \fIx\fP ¤¬ 0 ¤« NaN +領域エラー: \fIx\fP が 0 か NaN .\" .I errno .\" is set to .\" .BR EDOM . -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .IP -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¤³¤Î¾õ¶·¤Ç +これらの関数は、この状況で .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6794 .TP -Îΰ襨¥é¡¼: \fIx\fP ¤¬Ìµ¸ÂÂç +領域エラー: \fIx\fP が無限大 .\" .I errno .\" is set to .\" .BR EDOM . @@ -139,16 +139,16 @@ or .\" .RB ( FE_INVALID ) .\" is raised. .IP -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¤³¤Î¾õ¶·¤Ç +これらの関数は、この状況で .I errno -¤òÀßÄꤻ¤º¡¢Îã³°¤â¾å¤²¤Ê¤¤¡£ +を設定せず、例外も上げない。 .\" FIXME . Is it intentional that these functions do not set errno, .\" or raise an exception? .\" log(), log2(), log10() do set errno .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6794 -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR log (3), .BR logb (3), .BR significand (3) diff --git a/release/man3/index.3 b/release/man3/index.3 index 00b3553c..16eb7480 100644 --- a/release/man3/index.3 +++ b/release/man3/index.3 @@ -33,9 +33,9 @@ .\" by HIROFUMI Nishizuka .\" .TH INDEX 3 2011-09-21 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -index, rindex \- ʸ»úÎóÃæ¤Îʸ»ú¤Î°ÌÃÖ¤ò¼¨¤¹ -.SH ½ñ¼° +.SH 名前 +index, rindex \- 文字列中の文字の位置を示す +.SH 書式 .nf .B #include .sp @@ -43,36 +43,36 @@ index, rindex \- ʸ .sp .BI "char *rindex(const char *" s ", int " c ); .fi -.SH ÀâÌÀ +.SH 説明 .BR index () -´Ø¿ô¤Ï¡¢Ê¸»úÎó \fIs\fP Ãæ¤ËºÇ½é¤Ëʸ»ú \fIc\fP ¤¬ -¸½¤ì¤¿°ÌÃ֤ؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ +関数は、文字列 \fIs\fP 中に最初に文字 \fIc\fP が +現れた位置へのポインタを返す。 .PP .BR rindex () -´Ø¿ô¤Ï¡¢Ê¸»úÎó \fIs\fP Ãæ¤ËºÇ¸å¤Ëʸ»ú \fIc\fP ¤¬ -¸½¤ì¤¿°ÌÃ֤ؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ +関数は、文字列 \fIs\fP 中に最後に文字 \fIc\fP が +現れた位置へのポインタを返す。 .PP -ʸ»úÎó¤ò½ªÃ¼¤¹¤ë NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Ï¡¢Ê¸»úÎó¤Î°ìÉô¤È¤ß¤Ê¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +文字列を終端する NULL バイト (\(aq\\0\(aq) は、文字列の一部とみなされる。 +.SH 返り値 .BR index () -¤È +と .BR rindex () -´Ø¿ô¤Ï¡¢°ìÃפ·¤¿Ê¸»ú¤Ø¤Î¥Ý¥¤¥ó¥¿¤«¡¢ -¤â¤·Ê¸»ú¤¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、一致した文字へのポインタか、 +もし文字が見つからない場合は NULL を返す。 +.SH 準拠 4.3BSD; -POSIX.1-2001 ¤Ç¤Ï¡Ö²áµî¤Î̾»Ä (LEGACY)¡×¤È°ÌÃÖÉÕ¤±¤é¤ì¤Æ¤¤¤ë¡£ -POSIX.1-2008 ¤Ç¤Ï +POSIX.1-2001 では「過去の名残 (LEGACY)」と位置付けられている。 +POSIX.1-2008 では .BR index () -¤È +と .BR rindex () -¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ -Âå¤ï¤ê¤Ë¡¢ +の仕様が削除されている。 +代わりに、 .BR strchr (3) -¤È +と .BR strrchr (3) -¤Î»ÈÍѤ¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +の使用が推奨されている。 +.SH 関連項目 .BR memchr (3), .BR strchr (3), .BR string (3), diff --git a/release/man3/inet.3 b/release/man3/inet.3 index 38e814a3..7669c06e 100644 --- a/release/man3/inet.3 +++ b/release/man3/inet.3 @@ -48,15 +48,15 @@ .\" Updated 2007-05-01, Akihiro MOTOKI , LDP v2.46 .\" Updated 2008-08-13, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: numbers-and-dots notation ¿ôÃͤȥɥåȤˤè¤ëµ­Ë¡ -.\"WORD: dotted-decimal notation ¥É¥Ã¥È¶èÀÚ¤ê¤Î 10 ¿Ê¿ôµ­Ë¡ -.\"WORD: feature test macro µ¡Ç½¸¡ºº¥Þ¥¯¥í +.\"WORD: numbers-and-dots notation 数値とドットによる記法 +.\"WORD: dotted-decimal notation ドット区切りの 10 進数記法 +.\"WORD: feature test macro 機能検査マクロ .\" .TH INET 3 2008-06-19 "GNU" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 inet_aton, inet_addr, inet_network, inet_ntoa, inet_makeaddr, inet_lnaof, -inet_netof \- ¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥¢¥É¥ì¥¹Áàºî¥ë¡¼¥Á¥ó -.SH ½ñ¼° +inet_netof \- インターネットアドレス操作ルーチン +.SH 書式 .nf .B #include .B #include @@ -78,123 +78,123 @@ inet_netof \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR inet_aton (), .BR inet_ntoa (): _BSD_SOURCE || _SVID_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR inet_aton () -¤Ï¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥Û¥¹¥È¤Î¥¢¥É¥ì¥¹ \fIcp\fP ¤ò¡¢ -IPv4 ¤Î¿ôÃͤȥɥåȤˤè¤ëɽµ­¤«¤é (¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¤Î) ¥Ð¥¤¥Ê¥êÃÍ¤Ø -ÊÑ´¹¤·¡¢ÊÑ´¹·ë²Ì¤ò \fIinp\fP ¤¬»Ø¤·¤Æ¤¤¤ë¹½Â¤ÂΤ˳ÊǼ¤¹¤ë¡£ -¥¢¥É¥ì¥¹¤¬Í­¸ú¤Ê¾ì¹ç 0 °Ê³°¤òÊÖ¤·¡¢¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +は、インターネットホストのアドレス \fIcp\fP を、 +IPv4 の数値とドットによる表記から (ネットワークバイトオーダの) バイナリ値へ +変換し、変換結果を \fIinp\fP が指している構造体に格納する。 +アドレスが有効な場合 0 以外を返し、そうでない場合は 0 を返す。 .I cp -¤ÇÅϤ¹¥¢¥É¥ì¥¹¤È¤·¤Æ¡¢°Ê²¼¤Î·Á¼°¤òÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +で渡すアドレスとして、以下の形式を用いることができる。 .TP 10 .I a.b.c.d -4 ¤Ä¤Î¿ô»ú¤Î¤½¤ì¤¾¤ì¤Ï¥¢¥É¥ì¥¹¤Î³Æ¥Ð¥¤¥È¤ò¼¨¤¹¡£ -¤³¤ì¤é¤Î¥Ð¥¤¥È¤Ïº¸¤«¤é±¦¤Î½ç½ø¤Ç¥Ð¥¤¥Ê¥ê¥¢¥É¥ì¥¹¤Ë³ä¤êÅö¤Æ¤é¤ì¤ë¡£ +4 つの数字のそれぞれはアドレスの各バイトを示す。 +これらのバイトは左から右の順序でバイナリアドレスに割り当てられる。 .TP .I a.b.c .I a -¤È +と .I b -¤Ï¥Ð¥¤¥Ê¥ê¥¢¥É¥ì¥¹¤ÎºÇ½é¤Î 2 ¥Ð¥¤¥È¤ò¼¨¤¹¡£ +はバイナリアドレスの最初の 2 バイトを示す。 .I c -¤Ï 16 ¥Ó¥Ã¥ÈÃͤȲò¼á¤µ¤ì¡¢¥Ð¥¤¥Ê¥ê¥¢¥É¥ì¥¹¤Î±¦Â¦¤Î 2 ¥Ð¥¤¥È¤òɽ¤¹¡£ -¤³¤Îɽµ­¤Ï¡¢(²áµî¤Î¤â¤Î¤È¤Ê¤Ã¤¿) ¥¯¥é¥¹ B ¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤ò -»ØÄꤹ¤ë¤Î¤ËŬ¤·¤Æ¤¤¤ë¡£ +は 16 ビット値と解釈され、バイナリアドレスの右側の 2 バイトを表す。 +この表記は、(過去のものとなった) クラス B ネットワークアドレスを +指定するのに適している。 .TP .I a.b .I a -¤Ï¥Ð¥¤¥Ê¥ê¥¢¥É¥ì¥¹¤ÎºÇ½é¤Î¥Ð¥¤¥È¤ò¼¨¤¹¡£ +はバイナリアドレスの最初のバイトを示す。 .I b -¤Ï 24 ¥Ó¥Ã¥ÈÃͤȲò¼á¤µ¤ì¡¢¥Ð¥¤¥Ê¥ê¥¢¥É¥ì¥¹¤Î±¦Â¦¤Î 3 ¥Ð¥¤¥È¤òɽ¤¹¡£ -¤³¤Îɽµ­¤Ï¡¢(²áµî¤Î¤â¤Î¤È¤Ê¤Ã¤¿) ¥¯¥é¥¹ C ¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤ò -»ØÄꤹ¤ë¤Î¤ËŬ¤·¤Æ¤¤¤ë¡£ +は 24 ビット値と解釈され、バイナリアドレスの右側の 3 バイトを表す。 +この表記は、(過去のものとなった) クラス C ネットワークアドレスを +指定するのに適している。 .TP .I a -ÃÍ +値 .I a -¤Ï 32 ¥Ó¥Ã¥ÈÃͤȲò¼á¤µ¤ì¡¢¥Ð¥¤¥È¤ÎºÆÇÛÃ֤ϹԤï¤ì¤º¡¢ -¤½¤Î¤Þ¤Þ¥Ð¥¤¥Ê¥ê¥¢¥É¥ì¥¹¤È¤·¤Æ³ÊǼ¤µ¤ì¤ë¡£ +は 32 ビット値と解釈され、バイトの再配置は行われず、 +そのままバイナリアドレスとして格納される。 .PP -¾åµ­¤ÎÁ´¤Æ¤Î·Á¼°¤Ç¡¢¥É¥Ã¥È¶èÀÚ¤ê¤Î¥¢¥É¥ì¥¹¤Î³ÆÍ×ÁǤϡ¢10 ¿Ê¿ô¡¢ -8 ¿Ê¿ô (ÀèƬ¤Ë +上記の全ての形式で、ドット区切りのアドレスの各要素は、10 進数、 +8 進数 (先頭に .I 0 -¤òÉÕ¤±¤ë)¡¢ -16 ¿Ê¿ô (ÀèƬ¤Ë +を付ける)、 +16 進数 (先頭に .I 0X -¤òÉÕ¤±¤ë) ¤Ç»ØÄê¤Ç¤­¤ë¡£ -¤³¤ì¤é¤Î·Á¼°¤Î¥¢¥É¥ì¥¹¤ò¤Þ¤È¤á¤Æ -.I "IPv4 ¤Î¿ôÃͤȥɥåȤˤè¤ëɽµ­ (IPv4 numbers-and-dots notation)" -¤È¸Æ¤Ö¡£ -¤Þ¤¿¡¢10 ¿Ê¿ô 4 ¤Ä¤À¤±¤ò»È¤Ã¤¿·Á¼°¤ò -.I "IPv4 ¤Î¥É¥Ã¥È¶èÀÚ¤ê¤Î 10 ¿Ê¿ôɽµ­ (IPv4 dotted-decimal notation)" -¤È¸Æ¤Ö -.RI ( "IPv4 ¤Î¥É¥Ã¥È¶èÀÚ¤ê 4 ʬ³äɽµ­ (IPv4 dotted-decimal notation)" -¤È¸Æ¤Ö¤³¤È¤â¤¢¤ë)¡£ +を付ける) で指定できる。 +これらの形式のアドレスをまとめて +.I "IPv4 の数値とドットによる表記 (IPv4 numbers-and-dots notation)" +と呼ぶ。 +また、10 進数 4 つだけを使った形式を +.I "IPv4 のドット区切りの 10 進数表記 (IPv4 dotted-decimal notation)" +と呼ぶ +.RI ( "IPv4 のドット区切り 4 分割表記 (IPv4 dotted-decimal notation)" +と呼ぶこともある)。 .PP .BR inet_addr () -´Ø¿ô¤Ï¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥Û¥¹¥È¤Î¥¢¥É¥ì¥¹ \fIcp\fP ¤ò¡¢ -IPv4 ¤Î¿ôÃͤȥɥåȤˤè¤ëɽµ­¤«¤é¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¤Ç¤Î -¥Ð¥¤¥Ê¥êÃͤØÊÑ´¹¤·¤ÆÊÖ¤¹¡£ -ÆþÎϤ¬ÉÔÀµ¤Ê¾ì¹ç¡¢ +関数は、インターネットホストのアドレス \fIcp\fP を、 +IPv4 の数値とドットによる表記からネットワークバイトオーダでの +バイナリ値へ変換して返す。 +入力が不正な場合、 .B INADDR_NONE -(ÉáÄÌ¤Ï \-1) ¤òÊÖ¤¹¡£ -\-1 ¤ÏÍ­¸ú¤Ê¥¢¥É¥ì¥¹ (255.255.255.255) ¤Ê¤Î¤Ç¡¢¤³¤Î´Ø¿ô¤ò»È¤¦¤È -ÌäÂê¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤Î´Ø¿ô¤ò»È¤¦¤Î¤ÏÈò¤±¡¢Âå¤ï¤ê¤Ë +(普通は \-1) を返す。 +\-1 は有効なアドレス (255.255.255.255) なので、この関数を使うと +問題になるかもしれない。 +この関数を使うのは避け、代わりに .BR inet_aton (), .BR inet_pton (3), .BR getaddrinfo (3) -¤ò»È¤¦¤Î¤¬¤è¤¤¡£ -¤³¤ì¤é¤Î´Ø¿ô¤ÎÊý¤¬¡¢¥¨¥é¡¼¤ÎÄÌÃΤ¬¤è¤ê¤­¤ì¤¤¤ÊÊýË¡¤Ç¹Ô¤ï¤ì¤ë¡£ +を使うのがよい。 +これらの関数の方が、エラーの通知がよりきれいな方法で行われる。 .PP .BR inet_network () -´Ø¿ô¤Ï¡¢ -IPv4 ¤Î¿ôÃͤȥɥåȤˤè¤ëɽµ­¤Îʸ»úÎó \fIcp\fP ¤ò¡¢ -¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥¢¥É¥ì¥¹¤È¤·¤Æ¤Î»ÈÍѤËŬ¤·¤¿ -¥Û¥¹¥È¥Ð¥¤¥È¥ª¡¼¥À¤Î¿ôÃͤËÊÑ´¹¤¹¤ë¡£ -À®¸ù¤¹¤ë¤È¡¢ÊÑ´¹¤µ¤ì¤¿¥¢¥É¥ì¥¹¤òÊÖ¤¹¡£ -ÆþÎϤ¬ÉÔÀµ¤Ê¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ +関数は、 +IPv4 の数値とドットによる表記の文字列 \fIcp\fP を、 +インターネットアドレスとしての使用に適した +ホストバイトオーダの数値に変換する。 +成功すると、変換されたアドレスを返す。 +入力が不正な場合は \-1 を返す。 .PP .BR inet_ntoa () -´Ø¿ô¤Ï¡¢¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¤ÇÅϤµ¤ì¤¿¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥Û¥¹¥È¥¢¥É¥ì¥¹ -\fIin\fP ¤ò¡¢ IPv4 ¤Î¥É¥Ã¥È¶èÀÚ¤ê¤Î 10 ¿Ê¿ôɽµ­¤Îʸ»úÎó¤ËÊÑ´¹¤¹¤ë¡£ -ʸ»úÎó¤ÏÀÅŪ¤Ë³äÅö¤Æ¤é¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤ÆÊÖ¤µ¤ì¤ë¤Î¤Ç¡¢ -¤³¤Î¸å¤Ç¤³¤Î´Ø¿ô¤òºÆÅٸƤӽФ¹¤Èʸ»úÎó¤Ï¾å½ñ¤­¤µ¤ì¤ë¡£ +関数は、ネットワークバイトオーダで渡されたインターネットホストアドレス +\fIin\fP を、 IPv4 のドット区切りの 10 進数表記の文字列に変換する。 +文字列は静的に割当てられたバッファに格納されて返されるので、 +この後でこの関数を再度呼び出すと文字列は上書きされる。 .PP .BR inet_lnaof () -´Ø¿ô¤Ï¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥¢¥É¥ì¥¹ \fIin\fP ¤Î¥í¡¼¥«¥ë¥Í¥Ã¥È¥ï¡¼¥¯Éôʬ¤òÊÖ¤¹¡£ -¤³¤ÎÊÖ¤êÃͤϥۥ¹¥È¥Ð¥¤¥È¥ª¡¼¥À¤Ç¤¢¤ë¡£ +関数は、インターネットアドレス \fIin\fP のローカルネットワーク部分を返す。 +この返り値はホストバイトオーダである。 .PP .BR inet_netof () -´Ø¿ô¤Ï¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥¢¥É¥ì¥¹ \fIin\fP ¤Î¥Í¥Ã¥È¥ï¡¼¥¯Éôʬ¤òÊÖ¤¹¡£ -¤³¤ÎÊÖ¤êÃͤϥۥ¹¥È¥Ð¥¤¥È¥ª¡¼¥À¤Ç¤¢¤ë¡£ +関数は、インターネットアドレス \fIin\fP のネットワーク部分を返す。 +この返り値はホストバイトオーダである。 .PP .BR inet_makeaddr () -´Ø¿ô¤Ï +関数は .BR inet_netof () -¤È +と .BR inet_lnaof () -¤ÎµÕ¤Îµ¡Ç½¤ò»ý¤Ä¡£ -¥Í¥Ã¥È¥ï¡¼¥¯ÈÖ¹æ \fInet\fP ¤È¡¢¥í¡¼¥«¥ë¥¢¥É¥ì¥¹ \fIhost\fP ¤ò -ÁȤ߹ç¤ï¤»¤ÆÀ¸À®¤·¤¿¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥Û¥¹¥È¥¢¥É¥ì¥¹¤ò -¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¤ÇÊÖ¤¹¡£ -\fIhost\fP, \fInet\fP ¤Ï¤È¤â¤Ë¥Û¥¹¥È¥Ð¥¤¥È¥ª¡¼¥À¤Ç¤¢¤ë¡£ +の逆の機能を持つ。 +ネットワーク番号 \fInet\fP と、ローカルアドレス \fIhost\fP を +組み合わせて生成した、インターネットホストアドレスを +ネットワークバイトオーダで返す。 +\fIhost\fP, \fInet\fP はともにホストバイトオーダである。 .PP .BR inet_ntoa (), .BR inet_makeaddr (), .BR inet_lnaof (), .BR inet_netof () -¤Ç»ÈÍѤ¹¤ë¹½Â¤ÂÎ \fIin_addr\fP ¤Ï +で使用する構造体 \fIin_addr\fP は .I -¤Ç¼¡¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +で次のように定義されている: .sp .in +4n .nf @@ -205,57 +205,57 @@ struct in_addr { }; .fi .in -.SH ½àµò +.SH 準拠 4.3BSD. .BR inet_addr (), .BR inet_ntoa () -¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は POSIX.1-2001 で規定されている。 .BR inet_aton () -¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -i386 ¤Ç¤Ï¥Û¥¹¥È¥Ð¥¤¥È¥ª¡¼¥À¤Ï Least Significant Byte (LSB) first -(¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó) ¤À¤¬¡¢ -¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ç»È¤ï¤ì¤ë¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¤Ï -Most Significant Byte (MSB) first (¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó) -¤Ç¤¢¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +は POSIX.1-2001 で規定されていないが、ほとんどのシステムで利用可能である。 +.SH 注意 +i386 ではホストバイトオーダは Least Significant Byte (LSB) first +(リトルエンディアン) だが、 +インターネットで使われるネットワークバイトオーダは +Most Significant Byte (MSB) first (ビッグエンディアン) +である点に注意すること。 .BR inet_lnaof (), .BR inet_netof (), .BR inet_makeaddr () -¤Ï²áµî¤Î̾»Ä¤Ç¤¢¤ê¡¢ÅϤµ¤ì¤¿¥¢¥É¥ì¥¹¤¬ -.I "¥¯¥é¥¹¥Õ¥ë¡¦¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹ (classful network addresses)" -¤Ç¤¢¤ë¤È²¾Äꤷ¤Æ½èÍý¤ò¹Ô¤¦¡£ -¥¯¥é¥¹¥Õ¥ë¡¦¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤Ç¤Ï¡¢°Ê²¼¤Ë¤¢¤ë¤è¤¦¤Ë¡¢ -IPv4 ¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤ò¥Ð¥¤¥È¶­³¦¤Ç¥Í¥Ã¥È¥ï¡¼¥¯Éô¤È¥Û¥¹¥ÈÉô¤Ëʬ³ä¤¹¤ë¡£ +は過去の名残であり、渡されたアドレスが +.I "クラスフル・ネットワークアドレス (classful network addresses)" +であると仮定して処理を行う。 +クラスフル・ネットワークアドレスでは、以下にあるように、 +IPv4 ネットワークアドレスをバイト境界でネットワーク部とホスト部に分割する。 .TP 10 Class A -(¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¤Î) ¥¢¥É¥ì¥¹¤ÎºÇ¾å°Ì¥Ó¥Ã¥È¤¬ 0 ¤Î¾ì¹ç¡¢ -¤³¤Î¥¢¥É¥ì¥¹¼ïÊ̤Ȥʤ롣¤³¤Î¥¢¥É¥ì¥¹¼ïÊ̤Ǥϡ¢ -ºÇ¾å°Ì¥Ð¥¤¥È¤¬¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤òɽ¤·¡¢ -»Ä¤ê¤Î 3 ¥Ð¥¤¥È¤¬¥Û¥¹¥È¥¢¥É¥ì¥¹¤òɽ¤¹¡£ +(ネットワークバイトオーダの) アドレスの最上位ビットが 0 の場合、 +このアドレス種別となる。このアドレス種別では、 +最上位バイトがネットワークアドレスを表し、 +残りの 3 バイトがホストアドレスを表す。 .TP Class B -(¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¤Î) ¥¢¥É¥ì¥¹¤Î¾å°Ì¦ 2 ¥Ó¥Ã¥È¤¬¥Ð¥¤¥Ê¥êÃÍ¤Ç -10 ¤Î¾ì¹ç¡¢¤³¤Î¥¢¥É¥ì¥¹¼ïÊ̤Ȥʤ롣¤³¤Î¥¢¥É¥ì¥¹¼ïÊ̤Ǥϡ¢ -¾å°Ì 2 ¥Ð¥¤¥È¤¬¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤òɽ¤·¡¢ -»Ä¤ê¤Î 2 ¥Ð¥¤¥È¤¬¥Û¥¹¥È¥¢¥É¥ì¥¹¤òɽ¤¹¡£ +(ネットワークバイトオーダの) アドレスの上位側 2 ビットがバイナリ値で +10 の場合、このアドレス種別となる。このアドレス種別では、 +上位 2 バイトがネットワークアドレスを表し、 +残りの 2 バイトがホストアドレスを表す。 .TP Class C -(¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¤Î) ¥¢¥É¥ì¥¹¤Î¾å°Ì¦ 3 ¥Ó¥Ã¥È¤¬¥Ð¥¤¥Ê¥êÃÍ¤Ç -110 ¤Î¾ì¹ç¡¢¤³¤Î¥¢¥É¥ì¥¹¼ïÊ̤Ȥʤ롣¤³¤Î¥¢¥É¥ì¥¹¼ïÊ̤Ǥϡ¢ -¾å°Ì 3 ¥Ð¥¤¥È¤¬¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤òɽ¤·¡¢ -»Ä¤ê¤Î 1 ¥Ð¥¤¥È¤¬¥Û¥¹¥È¥¢¥É¥ì¥¹¤òɽ¤¹¡£ +(ネットワークバイトオーダの) アドレスの上位側 3 ビットがバイナリ値で +110 の場合、このアドレス種別となる。このアドレス種別では、 +上位 3 バイトがネットワークアドレスを表し、 +残りの 1 バイトがホストアドレスを表す。 .PP -¥¯¥é¥¹¥Õ¥ë¡¦¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤Ï¸½ºß¤Ç¤ÏÇѻߤµ¤ì¡¢ -¥¯¥é¥¹¥ì¥¹¡¦¥É¥á¥¤¥ó´Ö¥ë¡¼¥Á¥ó (CIDR) ¤Ë¼è¤Ã¤ÆÂå¤ï¤é¤ì¤¿¡£ -CIDR ¤Ç¤Ï¡¢¥¢¥É¥ì¥¹¤òǤ°Õ¤Î¥Ó¥Ã¥È¶­³¦ (¥Ð¥¤¥È¶­³¦¤Ç¤Ï¤Ê¤¤) ¤Ç -¥Í¥Ã¥È¥ï¡¼¥¯Éô¤È¥Û¥¹¥ÈÉô¤Ëʬ³ä¤¹¤ë¡£ -.SH Îã -°Ê²¼¤Ï +クラスフル・ネットワークアドレスは現在では廃止され、 +クラスレス・ドメイン間ルーチン (CIDR) に取って代わられた。 +CIDR では、アドレスを任意のビット境界 (バイト境界ではない) で +ネットワーク部とホスト部に分割する。 +.SH 例 +以下は .BR inet_aton () -¤È +と .BR inet_ntoa () -¤Î»ÈÍÑÎã¤Ç¤¢¤ë¡£¤³¤Î¤è¤¦¤Ë¼Â¹Ô¤¹¤ë¡£ +の使用例である。このように実行する。 .in +4n .nf @@ -265,7 +265,7 @@ CIDR 127.0.0.1 .fi .in -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #define _BSD_SOURCE @@ -292,7 +292,7 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR byteorder (3), .BR getaddrinfo (3), .BR gethostbyname (3), diff --git a/release/man3/inet_ntop.3 b/release/man3/inet_ntop.3 index c1474f95..66e15715 100644 --- a/release/man3/inet_ntop.3 +++ b/release/man3/inet_ntop.3 @@ -28,110 +28,110 @@ .\" Updated 2008-08-08, Akihiro MOTOKI, LDP v3.05 .\" .TH INET_NTOP 3 2008-11-11 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -inet_ntop \- IPv4/IPv6 ¥¢¥É¥ì¥¹¤ò¥Ð¥¤¥Ê¥ê·Á¼°¤«¤é¥Æ¥­¥¹¥È·Á¼°¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +inet_ntop \- IPv4/IPv6 アドレスをバイナリ形式からテキスト形式に変換する +.SH 書式 .nf .B #include .sp .BI "const char *inet_ntop(int " "af" ", const void *" "src" , .BI " char *" "dst" ", socklen_t " "size" ); .fi -.SH ÀâÌÀ -¤³¤Î´Ø¿ô¤Ï¡¢ +.SH 説明 +この関数は、 .I af -¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¹½Â¤ÂÎ +アドレスファミリーのネットワークアドレス構造体 .I src -¤òʸ»úÎó¤ËÊÑ´¹¤¹¤ë¡£ -ÊÑ´¹·ë²Ì¤Îʸ»úÎó¤Ï¡¢ +を文字列に変換する。 +変換結果の文字列は、 .I dst -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¡£ +が指すバッファにコピーされる。 .I dst -¤Ï NULL ¤Ç¤Ê¤¤¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¸Æ¤Ó½Ð¤·»þ¤Ë¡¢¤³¤Î¥Ð¥Ã¥Õ¥¡¤ÇÍøÍѤǤ­¤ë¥Ð¥¤¥È¿ô¤ò -°ú¤­¿ô +は NULL でないポインタでなければならない。 +呼び出し時に、このバッファで利用できるバイト数を +引き数 .I size -¤Ë»ØÄꤹ¤ë¡£ +に指定する。 .PP .BR inet_ntop () -¤Ï +は .BR inet_ntoa (3) -´Ø¿ô¤ò³ÈÄ¥¤·¤ÆÊ£¿ô¤Î¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤ò°·¤¨¤ë¤è¤¦¤Ë¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -º£¸å¤Ï +関数を拡張して複数のアドレスファミリーを扱えるようにしたものである。 +今後は .BR inet_ntoa (3) -¤Ï»È¤ï¤º¡¢ +は使わず、 .BR inet_ntop () -¤ò»È¤¦¤è¤¦¤Ë¤¹¤ë¤ÈÎɤ¤¤À¤í¤¦¡£ -¸½ºß¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤Ï°Ê²¼¤ÎÄ̤ê: +を使うようにすると良いだろう。 +現在サポートされているアドレスファミリーは以下の通り: .TP .B AF_INET -¤³¤Î¾ì¹ç +この場合 .I src -¤Ï (¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Î) +は (ネットワークバイトオーダーの) .I "struct in_addr" -¤Ø¤Î¥Ý¥¤¥ó¥¿¤È¤ß¤Ê¤µ¤ì¡¢¤³¤Î¹½Â¤ÂΤÎÆâÍƤ¬ -¥É¥Ã¥È¶èÀÚ¤ê¤Î 10 ¿Ê¿ô·Á¼° "\fIddd.ddd.ddd.ddd\fP" ¤Î -IPv4 ¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤ËÊÑ´¹¤µ¤ì¤ë¡£ -¥Ð¥Ã¥Õ¥¡ +へのポインタとみなされ、この構造体の内容が +ドット区切りの 10 進数形式 "\fIddd.ddd.ddd.ddd\fP" の +IPv4 ネットワークアドレスに変換される。 +バッファ .I dst -¤Ï¾¯¤Ê¤¯¤È¤â +は少なくとも .B INET_ADDRSTRLEN -¥Ð¥¤¥È¤ÎŤµ¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +バイトの長さを持たなければならない。 .TP .B AF_INET6 -¤³¤Î¾ì¹ç +この場合 .I src -¤Ï (¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Î) +は (ネットワークバイトオーダーの) .I "struct in6_addr" -¤Ø¤Î¥Ý¥¤¥ó¥¿¤È¤ß¤Ê¤µ¤ì¡¢¤³¤Î¹½Â¤ÂΤÎÆâÍƤ¬¡¢ -(¤³¤Î¥¢¥É¥ì¥¹¤ËÂФ·¤Æ¤â¤Ã¤È¤âŬÀÚ¤Ê) -IPv6 ¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤Îɽ¼¨·Á¼°¤ËÊÑ´¹¤µ¤ì¤ë¡£ -¥Ð¥Ã¥Õ¥¡ +へのポインタとみなされ、この構造体の内容が、 +(このアドレスに対してもっとも適切な) +IPv6 ネットワークアドレスの表示形式に変換される。 +バッファ .I dst -¤Ï¾¯¤Ê¤¯¤È¤â +は少なくとも .B INET6_ADDRSTRLEN -¥Ð¥¤¥È¤ÎŤµ¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +バイトの長さを持たなければならない。 +.SH 返り値 +成功すると、 .BR inet_ntop () -¤Ï +は .I dst -¤Ø¤Î (NULL ¤Ç¤Ê¤¤) ¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬¤¢¤Ã¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤·¡¢ +への (NULL でない) ポインタを返す。 +エラーがあった場合は NULL を返し、 .I errno -¤ò¥¨¥é¡¼¤ò¼¨¤¹ÃͤËŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +をエラーを示す値に適切に設定する。 +.SH エラー .TP .B EAFNOSUPPORT .I af -¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤Ç¤Ê¤«¤Ã¤¿¡£ +がサポートされているアドレスファミリーでなかった。 .TP .B ENOSPC -ÊÑ´¹¤µ¤ì¤¿¥¢¥É¥ì¥¹Ê¸»úÎó¤ÎŤµ¤¬ +変換されたアドレス文字列の長さが .I size -¤Ç»ØÄꤵ¤ì¤¿¥µ¥¤¥º¤òĶ²á¤·¤Æ¤·¤Þ¤¦¡£ -.SH ½àµò +で指定されたサイズを超過してしまう。 +.SH 準拠 POSIX.1-2001. -RFC\ 2553 ¤Ç¤ÏºÇ¸å¤Î°ú¤­¿ô +RFC\ 2553 では最後の引き数 .I size -¤Î¥×¥í¥È¥¿¥¤¥×¤ò +のプロトタイプを .I size_t -·¿¤ÈÄêµÁ¤·¤Æ¤¤¤ë¡£Â¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï RFC\ 2553 ¤Ë¤·¤¿¤¬¤Ã¤Æ¤¤¤ë¡£ -glibc 2.0 ¤È 2.1 ¤Ç¤Ï +型と定義している。多くのシステムでは RFC\ 2553 にしたがっている。 +glibc 2.0 と 2.1 では .I size_t -¤À¤¬¡¢ -glibc 2.2 °Ê¹ß¤Ç¤Ï +だが、 +glibc 2.2 以降では .I socklen_t -¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ +となっている。 .\" 2.1.3: size_t, 2.1.91: socklen_t -.SH ¥Ð¥° +.SH バグ .B AF_INET6 -¤Ï IPv4 ¤¬¥Þ¥Ã¥×¤µ¤ì¤¿ IPv6 ¥¢¥É¥ì¥¹¤ò -IPv6 ·Á¼°¤ËÊÑ´¹¤·¤Æ¤·¤Þ¤¦¡£ -.SH Îã +は IPv4 がマップされた IPv6 アドレスを +IPv6 形式に変換してしまう。 +.SH 例 .BR inet_pton (3) -¤ò»²¾È¡£ -.SH ´ØÏ¢¹àÌÜ +を参照。 +.SH 関連項目 .BR getnameinfo (3), .BR inet (3), .BR inet_pton (3) diff --git a/release/man3/inet_pton.3 b/release/man3/inet_pton.3 index ca0d3afa..ceed5f5a 100644 --- a/release/man3/inet_pton.3 +++ b/release/man3/inet_pton.3 @@ -28,148 +28,148 @@ .\" Updated 2008-08-08, Akihiro MOTOKI, LDP v3.05 .\" .TH INET_PTON 3 2008-06-18 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -inet_pton \- IPv4/IPv6 ¥¢¥É¥ì¥¹¤ò¥Æ¥­¥¹¥È·Á¼°¤«¤é¥Ð¥¤¥Ê¥ê·Á¼°¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +inet_pton \- IPv4/IPv6 アドレスをテキスト形式からバイナリ形式に変換する +.SH 書式 .nf .B #include .BI "int inet_pton(int " "af" ", const char *" "src" ", void *" "dst" ); .fi -.SH ÀâÌÀ -¤³¤Î´Ø¿ô¤Ïʸ»úÎó +.SH 説明 +この関数は文字列 .I src -¤ò¡¢¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼ +を、アドレスファミリー .I af -¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¹½Â¤ÂΤËÊÑ´¹¤·¡¢ +のネットワークアドレス構造体に変換し、 .I dst -¤Ë¥³¥Ô¡¼¤¹¤ë¡£ +にコピーする。 .I af -°ú¤­¿ô¤Ï +引き数は .B AF_INET -¤« +か .B AF_INET6 -¤Î¤É¤Á¤é¤«¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +のどちらかでなければならない。 .PP -¸½ºß¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +現在サポートされているアドレスファミリーは以下の通りである。 .TP .B AF_INET .I src -¤Ï¥É¥Ã¥È¶èÀÚ¤ê¤Î 10 ¿Ê¿ô·Á¼° "\fIddd.ddd.ddd.ddd\fP" -¤Î IPv4 ¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +はドット区切りの 10 進数形式 "\fIddd.ddd.ddd.ddd\fP" +の IPv4 ネットワークアドレス文字列へのポインタである。 .I ddd -¤Ï 0 ¤«¤é 255 ¤Þ¤Ç¤ÎÈϰϤκÇÂç 3 ·å¤Î 10 ¿Ê¿ô¤Ç¤¢¤ë¡£ -¤³¤Î¥¢¥É¥ì¥¹¤Ï +は 0 から 255 までの範囲の最大 3 桁の 10 進数である。 +このアドレスは .I "struct in_addr" -¤ËÊÑ´¹¤µ¤ì¤Æ +に変換されて .I dst -¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¡£ +にコピーされる。 .I dst -¤ÎŤµ¤Ï +の長さは .I "sizeof(struct in_addr)" -(4) ¥Ð¥¤¥È (32¥Ó¥Ã¥È) ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +(4) バイト (32ビット) でなければならない。 .TP .B AF_INET6 .I src -¤Ï IPv6 ¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤¬³ÊǼ¤µ¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤³¤Î¥¢¥É¥ì¥¹¤Ï +は IPv6 ネットワークアドレスが格納された文字列へのポインタである。 +このアドレスは .I "struct in6_addr" -¤ËÊÑ´¹¤µ¤ì¤Æ +に変換されて .I dst -¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¡£ +にコピーされる。 .I dst -¤ÎŤµ¤Ï +の長さは .I "sizeof(struct in6_addr)" -(16) ¥Ð¥¤¥È (128 ¥Ó¥Ã¥È) ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -°Ê²¼¤Î 3 ¤Ä¤Î¥ë¡¼¥ë¤Ë¤·¤¿¤¬¤Ã¤¿·Á¼°¤¬ IPv6 ¥¢¥É¥ì¥¹¤È¤·¤ÆÆþÎϤǤ­¤ë¡£ +(16) バイト (128 ビット) でなければならない。 +以下の 3 つのルールにしたがった形式が IPv6 アドレスとして入力できる。 .RS .IP 1. 3 -¿ä¾©·Á¼°¤Ï +推奨形式は .I x:x:x:x:x:x:x:x -¤Ç¤¢¤ë¡£¤³¤Î·Á¼°¤Ï 8 ¸Ä¤Î 16 ¿Ê¿ô¤«¤é¹½À®¤µ¤ì¡¢ -³Æ¡¹¤Î 16 ¿Ê¿ô¤Ï 16 ¥Ó¥Ã¥ÈÃͤòɽ¤¹ +である。この形式は 8 個の 16 進数から構成され、 +各々の 16 進数は 16 ビット値を表す .RI ( x -¤ÏºÇÂç 4 ·å¤Î 16 ¿Ê¿ô¤Ç¤¢¤ë)¡£ +は最大 4 桁の 16 進数である)。 .IP 2. -¿ä¾©·Á¼°¤ÎÃæ¤ÎϢ³¤¹¤ë 0 ¤ÎÎó¤Ï +推奨形式の中の連続する 0 の列は .I :: -¤Ëû½Ì¤Ç¤­¤ë¡£¥¢¥É¥ì¥¹Ãæ¤Ç»ÈÍѤǤ­¤ë +に短縮できる。アドレス中で使用できる .I :: -¤Ï 1 ¸Ä¤À¤±¤Ç¤¢¤ë¡£ -Î㤨¤Ð¡¢¥ë¡¼¥×¥Ð¥Ã¥¯¥¢¥É¥ì¥¹ +は 1 個だけである。 +例えば、ループバックアドレス .I 0:0:0:0:0:0:0:1 -¤Ï +は .I ::1 -¤Èû½Ì¤Ç¤­¤ë¡£ -Á´¥Ó¥Ã¥È¤¬ 0 ¤Ç¹½À®¤µ¤ì¤ë¥ï¥¤¥ë¥É¥«¡¼¥É¥¢¥É¥ì¥¹¤Ï +と短縮できる。 +全ビットが 0 で構成されるワイルドカードアドレスは .I :: -¤Èµ­ºÜ¤Ç¤­¤ë¡£ +と記載できる。 .IP 3. -IPv4 ¤ò¥Þ¥Ã¥Ô¥ó¥°¤·¤¿ IPv6 ¥¢¥É¥ì¥¹¤òɽµ­¤¹¤ë¤Ë¤ÏÊ̤ηÁ¼°¤¬ÊØÍø¤Ç¤¢¤ë¡£ -¤³¤ÎÊ̤ηÁ¼°¤Ï +IPv4 をマッピングした IPv6 アドレスを表記するには別の形式が便利である。 +この別の形式は .I x:x:x:x:x:x:d.d.d.d -¤È½ñ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£ -ºÇ½é¤Î 6 ¸Ä¤Î +と書くことができる。 +最初の 6 個の .I x -¤Ï¥¢¥É¥ì¥¹¤ò 16 ¥Ó¥Ã¥Èñ°Ì¤Ë¶èÀڤ俤Ȥ­¤Î¾å°Ì¦ 6 ¸Äʬ (¤Ä¤Þ¤ê 96 ¥Ó¥Ã¥Èʬ) -¤òÄêµÁ¤¹¤ë 16 ¿Ê¿ô¤Ç¤¢¤ê¡¢ +はアドレスを 16 ビット単位に区切ったときの上位側 6 個分 (つまり 96 ビット分) +を定義する 16 進数であり、 .I d -¤ÎÉôʬ¤Ï¥¢¥É¥ì¥¹¤Î²¼°Ì 32 ¥Ó¥Ã¥È¤ò¥É¥Ã¥È¶èÀÚ¤ê¤Î 10 ¿Ê¿ôɽµ­¤Çɽ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +の部分はアドレスの下位 32 ビットをドット区切りの 10 進数表記で表したものである。 .I ::FFFF:204.152.189.116 -¤Ï¤³¤Î·Á¼°¤ÎÎã¤Ç¤¢¤ë¡£ +はこの形式の例である。 .RE .IP -IPv6 ¥¢¥É¥ì¥¹¤Îɽ¸½ÊýË¡¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï RFC 2373 ¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë (¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤¬Àµ¾ï¤ËÊÑ´¹¤µ¤ì¤ë) ¤È¡¢ +IPv6 アドレスの表現方法の詳細については RFC 2373 を参照のこと。 +.SH 返り値 +成功する (ネットワークアドレスが正常に変換される) と、 .BR inet_pton () -¤Ï 1 ¤òÊÖ¤¹¡£ +は 1 を返す。 .I src -¤¬»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤ËÂФ¹¤ë -Àµ¤·¤¤¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹É½µ­¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ -0 ¤òÊÖ¤¹¡£ +が指定されたアドレスファミリーに対する +正しいネットワークアドレス表記でない場合には、 +0 を返す。 .I af -¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ -\-1 ¤òÊÖ¤·¡¢ +がサポートされているアドレスファミリーでない場合には、 +\-1 を返し、 .I errno -¤Ë +に .B EAFNOSUPPORT -¤òÀßÄꤹ¤ë¡£ -.SH ½àµò +を設定する。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .BR inet_aton (3) -¤ä +や .BR inet_addr (3) -¤È°Û¤Ê¤ê¡¢ +と異なり、 .BR inet_pton () -¤Ï IPv6 ¥¢¥É¥ì¥¹¤ËÂбþ¤·¤Æ¤¤¤ë¡£ -°ìÊý¤Ç¡¢ +は IPv6 アドレスに対応している。 +一方で、 .BR inet_pton () -¤¬¼õ¤±ÉÕ¤±¤ë IPv4 ¥¢¥É¥ì¥¹¤Ï¥É¥Ã¥È¶èÀÚ¤ê¤Î 10 ¿Ê¿ôɽµ­¤À¤±¤Ç¤¢¤ë¡£ -¤³¤ì¤ËÂФ·¡¢ +が受け付ける IPv4 アドレスはドット区切りの 10 進数表記だけである。 +これに対し、 .BR inet_aton (3) -¤ä +や .BR inet_addr (3) -¤Ç¤Ï¤â¤Ã¤È°ìÈÌŪ¤Ê¥É¥Ã¥È¶èÀÚ¤ê¤Î¿ô»úɽµ­ (16 ¿Ê¿ô¤ä 8 ¿Ê¿ô¤Î·Á¼°¤ä¡¢ -4 ¥Ð¥¤¥ÈÁ´¤Æ¤òÌÀ¼¨Åª¤Ë½ñ¤«¤Ê¤¯¤Æ¤â¤è¤¤·Á¼°) ¤¬»ÈÍѤǤ­¤ë¡£ -¥É¥Ã¥È¶èÀÚ¤ê¤Î¿ô»úɽµ­¤Ç IPv6 ¥¢¥É¥ì¥¹¤È IPv4 ¥¢¥É¥ì¥¹¤ÎξÊý¤ò°·¤¨¤ë -¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +ではもっと一般的なドット区切りの数字表記 (16 進数や 8 進数の形式や、 +4 バイト全てを明示的に書かなくてもよい形式) が使用できる。 +ドット区切りの数字表記で IPv6 アドレスと IPv4 アドレスの両方を扱える +インターフェイスについては、 .BR getaddrinfo (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ¥Ð¥° +を参照のこと。 +.SH バグ .B AF_INET6 -¤Ï IPv4 ¥¢¥É¥ì¥¹¤òǧ¼±¤·¤Ê¤¤¡£ -Âå¤ï¤ê¤Ë IPv4 ¥¢¥É¥ì¥¹¤ò¥Þ¥Ã¥Ô¥ó¥°¤·¤¿ IPv6 ¥¢¥É¥ì¥¹¤ò +は IPv4 アドレスを認識しない。 +代わりに IPv4 アドレスをマッピングした IPv6 アドレスを .I src -¤ËÍ¿¤¨¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH Îã -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï +に与えなければならない。 +.SH 例 +以下のプログラムは .BR inet_pton () -¤È +と .BR inet_ntop (3) -¤Î»ÈÍÑÎã¤ò¼¨¤¹¤â¤Î¤Ç¤¢¤ë¡£ -¼Â¹Ô¤¹¤ë¤È°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¡£ +の使用例を示すものである。 +実行すると以下のようになる。 .in +4n .nf @@ -181,7 +181,7 @@ POSIX.1-2001. ::ffff:204.152.189.116 .fi .in -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -223,7 +223,7 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getaddrinfo (3), .BR inet (3), .BR inet_ntop (3) diff --git a/release/man3/infnan.3 b/release/man3/infnan.3 index 612455eb..e52c3c39 100644 --- a/release/man3/infnan.3 +++ b/release/man3/infnan.3 @@ -36,9 +36,9 @@ .\" by Yuichi SATO .\" .TH INFNAN 3 1993-06-02 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -infnan \- ̵¸ÂÂç¤È̵¸úÃÍ (NaN) ¤ò¼è°·¤¦ -.SH ½ñ¼° +.SH 名前 +infnan \- 無限大と無効値 (NaN) を取扱う +.SH 書式 .nf .B #include .B #include @@ -46,35 +46,35 @@ infnan \- ̵ .BI "double infnan(int " error ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ -´Ø¿ô +\fI\-lm\fP でリンクする。 +.SH 説明 +関数 .BR infnan () -¤Ï̵¸ÂÂç¤È̵¸úÃÍ (NaN) ¤Î·ë²Ì¤ËÂФ¹¤ëŬÀÚ¤ÊÃͤòÊÖ¤¹¡£ -\fIerror\fP ¤ÎÃͤϡ¢Ìµ¸ÂÂç¤òɽ¤¹ +は無限大と無効値 (NaN) の結果に対する適切な値を返す。 +\fIerror\fP の値は、無限大を表す .B ERANGE -¤« NaN ¤òɽ¤¹¤½¤ì°Ê³°¤ÎÃͤǤ¢¤ë¡£ -\fIerrno\fP ¤âƱÍͤËÀßÄꤵ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -\fIerror\fP ¤¬ +か NaN を表すそれ以外の値である。 +\fIerrno\fP も同様に設定される。 +.SH 返り値 +\fIerror\fP が .B ERANGE -(̵¸ÂÂç) ¤Î¾ì¹ç¡¢ +(無限大) の場合、 .B HUGE_VAL -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .PP -\fIerror\fP ¤¬ \-\fBERANGE\fP (Éé¤Î̵¸ÂÂç) ¤Î¾ì¹ç¡¢ -\-\fBHUGE_VAL\fP ¤¬ÊÖ¤µ¤ì¤ë¡£ +\fIerror\fP が \-\fBERANGE\fP (負の無限大) の場合、 +\-\fBHUGE_VAL\fP が返される。 .PP -\fIerror\fP ¤¬¤½¤ì°Ê³°¤ÎÃͤξì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +\fIerror\fP がそれ以外の値の場合、NaN が返される。 +.SH エラー .TP .B EDOM -\fIerror\fP ¤ÎÃͤ¬Ìµ¸úÃÍ (NaN) ¤Ç¤¢¤ë¡£ +\fIerror\fP の値が無効値 (NaN) である。 .TP .B ERANGE -\fIerror\fP ¤ÎÃͤ¬Àµ¤Î̵¸ÂÂç¤â¤·¤¯¤ÏÉé¤Î̵¸ÂÂç¤Ç¤¢¤ë¡£ -.SH ½àµò +\fIerror\fP の値が正の無限大もしくは負の無限大である。 +.SH 準拠 4.3BSD. -.SH Ãí°Õ -¤³¤ÎÇѻߤµ¤ì¤¿ (obsolete) ´Ø¿ô¤Ï¡¢ -libc4 ¤È libc5 ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤¿¤¬¡¢ glibc2 ¤Ç¤ÏÄ󶡤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +.SH 注意 +この廃止された (obsolete) 関数は、 +libc4 と libc5 で提供されていたが、 glibc2 では提供されていない。 diff --git a/release/man3/initgroups.3 b/release/man3/initgroups.3 index 74c04971..2e502866 100644 --- a/release/man3/initgroups.3 +++ b/release/man3/initgroups.3 @@ -34,9 +34,9 @@ .\" Updated 2005-02-26, Akihiro MOTOKI .\" .TH INITGROUPS 3 2007-07-26 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -initgroups \- ÄɲäΥ°¥ë¡¼¥×¥¢¥¯¥»¥¹¥ê¥¹¥È¤Î½é´ü²½ -.SH ½ñ¼° +.SH 名前 +initgroups \- 追加のグループアクセスリストの初期化 +.SH 書式 .nf .B #include .B #include @@ -45,45 +45,45 @@ initgroups \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR initgroups (): _BSD_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR initgroups () -´Ø¿ô¤Ï¥°¥ë¡¼¥×¥Ç¡¼¥¿¥Ù¡¼¥¹ \fI/etc/group\fP ¤òÆÉ¤ß -¹þ¤ó¤Ç¡¢\fIuser\fP ¤¬½ê°¤·¤Æ¤¤¤ëÁ´¤Æ¤Î¥°¥ë¡¼¥×¤ò»È¤Ã¤Æ¡¢¥°¥ë¡¼¥×¥¢¥¯ -¥»¥¹¥ê¥¹¥È¤ò½é´ü²½¤¹¤ë¡£¤µ¤é¤Ë¡¢\fIgroup\fP ¤Ë¼¨¤µ¤ì¤ë¥°¥ë¡¼¥×¤â¥°¥ë¡¼ -¥×¥¢¥¯¥»¥¹¥ê¥¹¥È¤ËÄɲ䵤ì¤ë¡£ +関数はグループデータベース \fI/etc/group\fP を読み +込んで、\fIuser\fP が所属している全てのグループを使って、グループアク +セスリストを初期化する。さらに、\fIgroup\fP に示されるグループもグルー +プアクセスリストに追加される。 .I user -°ú¿ô¤Ï NULL ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +引数は NULL であってはならない。 +.SH 返り値 .BR initgroups () -´Ø¿ô¤Ï¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +関数は、成功すると 0 を返す。 +エラーの場合は \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切に設定する。 +.SH エラー .TP .B ENOMEM -¥°¥ë¡¼¥×¾ðÊó¹½Â¤ÂΤòÇÛÃÖ¤¹¤ë¤¿¤á¤Î¥á¥â¥ê¤¬ÉÔ­¤·¤Æ¤¤¤ë¡£ +グループ情報構造体を配置するためのメモリが不足している。 .TP .B EPERM -¸Æ½Ð¤·¥×¥í¥»¥¹¤¬½½Ê¬¤ÊÆø¢¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -¤³¤Î´Ø¿ô¤Î΢¤Ç¼Â¹Ô¤µ¤ì¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë +呼出しプロセスが十分な特権を持っていない。 +この関数の裏で実行されるシステムコール .BR setgroups (2) -¤â»²¾È¤Î¤³¤È¡£ -.SH ¥Õ¥¡¥¤¥ë +も参照のこと。 +.SH ファイル .nf -\fI/etc/group\fP ¥°¥ë¡¼¥×¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë +\fI/etc/group\fP グループデータベースファイル .fi -.SH ½àµò +.SH 準拠 SVr4, 4.3BSD. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getgroups (2), .BR setgroups (2), .BR credentials (7) diff --git a/release/man3/insque.3 b/release/man3/insque.3 index ec1cafea..d0e73513 100644 --- a/release/man3/insque.3 +++ b/release/man3/insque.3 @@ -35,9 +35,9 @@ .\" Updated Sun Sep 14 JST 2003 by Kentaro Shirakata .\" .TH INSQUE 3 2008-07-11 "" "Linux Programmer's Manual" -.SH ̾Á° -insque, remque \- ¥­¥å¡¼¤Ë¥¢¥¤¥Æ¥à¤òÁÞÆþ/ºï½ü¤¹¤ë -.SH ½ñ¼° +.SH 名前 +insque, remque \- キューにアイテムを挿入/削除する +.SH 書式 .nf .B #include .sp @@ -47,33 +47,33 @@ insque, remque \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR insque (), .BR remque (): _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 -.SH ÀâÌÀ +.SH 説明 .BR insque () -¤È +と .BR remque () -¤ÏÁÐÊý¸þÏ¢·ë¥ê¥¹¥È (doubly-linked list) ¤òÁàºî¤¹¤ë´Ø¿ô¤Ç¤¢¤ë¡£ -¥ê¥¹¥ÈÃæ¤Î¤½¤ì¤¾¤ì¤ÎÍ×ÁǤϡ¢ºÇ½é¤ÎÆó¤Ä¤Î¹½Â¤ÂÎÍ×ÁǤ¬ -¼¡¤ÈÁ°¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤è¤¦¤Ê¹½Â¤ÂΤǤ¢¤ë¡£ +は双方向連結リスト (doubly-linked list) を操作する関数である。 +リスト中のそれぞれの要素は、最初の二つの構造体要素が +次と前へのポインタであるような構造体である。 .BR insque () -¤Ï \fIelem\fP ¤Ç¼¨¤µ¤ì¤ëÍ×ÁǤò \fIprev\fP ¤Ç¼¨¤µ¤ì¤ë -Í×ÁǤÎľ¸å¤ËÁÞÆþ¤¹¤ë¡£ \fIprev\fP ¤Ï NULL ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +は \fIelem\fP で示される要素を \fIprev\fP で示される +要素の直後に挿入する。 \fIprev\fP は NULL であってはならない。 .BR remque () -¤Ï \fIelem\fP ¤Ç¼¨¤µ¤ì¤ëÍ×ÁǤòÁÐÊý¸þÏ¢·ë¥ê¥¹¥È¤«¤é¼è¤ê½ü¤¯¡£ -.SH ½àµò +は \fIelem\fP で示される要素を双方向連結リストから取り除く。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ -ÅÁÅýŪ¤Ë (SunOS, Linux libc 4,5 ¤Ç¤Ï) ¤³¤ì¤é¤Î´Ø¿ô¤Î°ú¿ô¤Ï -\fIstruct qelem *\fP·¿¤Ç¤¢¤ê¡¢¤³¤ì¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +.SH 注意 +伝統的に (SunOS, Linux libc 4,5 では) これらの関数の引数は +\fIstruct qelem *\fP型であり、これは以下のように定義されている。 .in +4n .nf @@ -85,11 +85,11 @@ struct qelem { .fi .in -¤³¤ÎÄêµÁ¤Ï \fI\fP ¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ëÁ°¤Ë +この定義は \fI\fP をインクルードする前に .B _GNU_SOURCE -¤òÄêµÁ¤¹¤ë¤³¤È¤ÇÆÀ¤é¤ì¤ë¡£ +を定義することで得られる。 -¤³¤ì¤é¤Î´Ø¿ô¤Î¥×¥í¥È¥¿¥¤¥×¤ÎÃÖ¤«¤ì¤ë¾ì½ê¤Ï¡¢Unix ¤Î¼ïÎà¤Ë¤è¤ê°Û¤Ê¤ë¡£ -¾åµ­¤Ï POSIX ÈǤǤ¢¤ë¡£ -\fI\fP ¤Ë¤¢¤ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ -Linux libc4 ¤È libc5 ¤Ï \fI\fP ¤Ë¥×¥í¥È¥¿¥¤¥×¤òÃÖ¤¤¤Æ¤¤¤ë¡£ +これらの関数のプロトタイプの置かれる場所は、Unix の種類により異なる。 +上記は POSIX 版である。 +\fI\fP にあるシステムもある。 +Linux libc4 と libc5 は \fI\fP にプロトタイプを置いている。 diff --git a/release/man3/intro.3 b/release/man3/intro.3 index 923873ba..55b33fcf 100644 --- a/release/man3/intro.3 +++ b/release/man3/intro.3 @@ -27,70 +27,70 @@ .\" Translated 2008-02-10, Akihiro MOTOKI .\" .TH INTRO 3 2010-11-11 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -intro \- ¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Î¾Ò²ð -.SH ÀâÌÀ -¥Þ¥Ë¥å¥¢¥ë¤Î 3 ¾Ï¤Ç¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¼ÂÁõ¤·¤¿ 2 ¾Ï¤ÇÀâÌÀ¤µ¤ì¤¿ -¥é¥¤¥Ö¥é¥ê´Ø¿ô (¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥é¥Ã¥Ñ¡¼) ¤ò½ü¤¤¤¿ -Á´¤Æ¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤ë¡£ +.SH 名前 +intro \- ライブラリ関数の紹介 +.SH 説明 +マニュアルの 3 章では、システムコールを実装した 2 章で説明された +ライブラリ関数 (システムコールのラッパー) を除いた +全てのライブラリ関数について説明している。 -¤³¤Î¾Ï¤ÇÀâÌÀ¤·¤Æ¤¤¤ë´Ø¿ô¤Î¿¤¯¤Ïɸ½à C ¥é¥¤¥Ö¥é¥ê +この章で説明している関数の多くは標準 C ライブラリ .RI ( libc ) -¤Î¤â¤Î¤Ç¤¢¤ë¡£ -¤Þ¤¿¡¢¤¤¤¯¤Ä¤«¤Î´Ø¿ô¤Ï¡¢Â¾¤Î¥é¥¤¥Ö¥é¥ê (Î㤨¤Ð¡¢¿ô³Ø¥é¥¤¥Ö¥é¥ê¤Î +のものである。 +また、いくつかの関数は、他のライブラリ (例えば、数学ライブラリの .I libm -¤ä¥ê¥¢¥ë¥¿¥¤¥à¥é¥¤¥Ö¥é¥ê +やリアルタイムライブラリ .I librt ) -¤Î¤â¤Î¤Ç¤¢¤ë¡£¸å¼Ô¤Î¾ì¹ç¤Ï¡¢¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë¡¢ -ɬÍפʥ饤¥Ö¥é¥ê¤È¥ê¥ó¥¯¤¹¤ë¤¿¤á¤ËɬÍפʥê¥ó¥«¥ª¥×¥·¥ç¥ó¤¬ -¼¨¤µ¤ì¤Æ¤¤¤ë (Î㤨¤Ð¡¢Á°½Ò¤Î¥é¥¤¥Ö¥é¥ê¤Î¾ì¹ç¤Ï¤½¤ì¤¾¤ì +のものである。後者の場合は、マニュアルページに、 +必要なライブラリとリンクするために必要なリンカオプションが +示されている (例えば、前述のライブラリの場合はそれぞれ .I \-lm -¤ä +や .I \-lrt -¤Ç¤¢¤ë)¡£ +である)。 -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¡Ö½ñ¼°¡×¤ÎÀá¤Ëµ¬Äꤵ¤ì¤¿¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤«¤é´Ø¿ô¤ÎÄêµÁ¤ò -ÆÀ¤ë¤¿¤á¤Ë¡¢¥×¥í¥°¥é¥Þ¤¬µ¡Ç½¸¡ºº¥Þ¥¯¥í¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¾ì¹ç¤¬¤¢¤ë¡£ -¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï¡¢É¬Íפʥޥ¯¥í¤¬¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡£ -(µ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÄêµÁ¤¬É¬Íפʾì¹ç¡¢¤³¤ì¤é¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÄêµÁ¤Ï -¡Ö¤É¤Î¡×¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Î¥¤¥ó¥¯¥ë¡¼¥É¤è¤ê¤âÁ°¤Ç¹Ô¤ï¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£ -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤Î¤µ¤é¤Ê¤ë¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +マニュアルページの「書式」の節に規定されたヘッダファイルから関数の定義を +得るために、プログラマが機能検査マクロを定義しなければならない場合がある。 +このような場合には、必要なマクロがマニュアルページで説明されている。 +(機能検査マクロの定義が必要な場合、これらの機能検査マクロの定義は +「どの」ヘッダファイルのインクルードよりも前で行われなければならない)。 +機能検査マクロのさらなる情報については、 .BR feature_test_macros (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\" -.\" ¾ÏÈÖ¹æ¤ËÉÕ¤±²Ã¤¨¤é¤ì¤Æ¤¤¤ëʸ»ú¤Ë¤è¤Ã¤Æ¼±Ê̤Ǥ­¤ëÍÍ¡¹¤Ê´Ø¿ô¤Î¥°¥ë¡¼¥×¤¬¤¢¤ë: +.\" 章番号に付け加えられている文字によって識別できる様々な関数のグループがある: .\" .IP (3C) -.\" ¤³¤ì¤é2¾Ï¤È3S¾Ï¤«¤é¤Î´Ø¿ô¤Ïɸ½àC¥é¥¤¥Ö¥é¥ê libc Ãæ¤Ë´Þ¤Þ¤ì¤ë¤â¤Î¤Ç¤¢¤ê¡¢ -.\" ¥Ç¥Õ¥©¥ë¥È¤Ç +.\" これら2章と3S章からの関数は標準Cライブラリ libc 中に含まれるものであり、 +.\" デフォルトで .\" .BR cc (1) -.\" ¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤ë¤Ç¤¢¤í¤¦¡£ +.\" によって使用されるであろう。 .\" .IP (3S) -.\" ¤³¤ì¤é¤Î´Ø¿ô¤Ï +.\" これらの関数は .\" .BR stdio (3) -.\" ¥é¥¤¥Ö¥é¥ê¤Î°ìÉô¤Ç¤¢¤ë¡£É¸½àC¥é¥¤¥Ö¥é¥ê libc ¤Ë´Þ¤Þ¤ì¤ë¡£ +.\" ライブラリの一部である。標準Cライブラリ libc に含まれる。 .\" .IP (3M) -.\" ¤³¤ì¤é¤Î´Ø¿ô¤Ï¿ô³Ø´Ø¿ô¥é¥¤¥Ö¥é¥ê libm ¤Ë´Þ¤Þ¤ì¤ë¡£¤³¤ì¤é¤Ï -.\" ¥Ç¥Õ¥©¥ë¥È¤Ç +.\" これらの関数は数学関数ライブラリ libm に含まれる。これらは +.\" デフォルトで .\" .BR f77 (1) -.\" ¥Õ¥©¡¼¥È¥é¥ó¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤ë¡¢¤·¤«¤· +.\" フォートランコンパイラによって使用される、しかし .\" .BR cc (1) -.\" C¥³¥ó¥Ñ¥¤¥é¤Ç»ÈÍѤ¹¤ë¤È¤­¤Ï¡¢\fI\-lm\fP ¥ª¥×¥·¥ç¥ó¤¬É¬ÍפȤʤ롣 +.\" Cコンパイラで使用するときは、\fI\-lm\fP オプションが必要となる。 .\" .IP (3F) -.\" ¤³¤ì¤é¤Î´Ø¿ô¤Ï¥Õ¥©¡¼¥È¥é¥ó¥é¥¤¥Ö¥é¥ê libF77 ¤Î°ìÉô¤Ç¤¢¤ë¡£ -.\" ¤³¤ì¤é¤Î´Ø¿ô¤ò»ÈÍѤ¹¤ë¤¿¤á¤ËÆÃÊ̤ʥ³¥ó¥Ñ¥¤¥é¥Õ¥é¥°¤ÏɬÍפʤ¤¡£ +.\" これらの関数はフォートランライブラリ libF77 の一部である。 +.\" これらの関数を使用するために特別なコンパイラフラグは必要ない。 .\" .IP (3X) -.\" ÍÍ¡¹¤ÊÆÃÊ̤ʥ饤¥Ö¥é¥ê¤Ç¤¢¤ë¡£¤³¤ì¤é¤Î´Ø¿ô¤òʸ½ñ²½¤·¤¿¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï -.\" ¥é¥¤¥Ö¥é¥ê̾¤ò»ØÄꤹ¤ë¡£ -.SH ½àµò -¤³¤Î¾Ï¤Î´Ø¿ô¤¬½àµò¤¹¤ë UNIX ¥·¥¹¥Æ¥à¤äɸ½à¤ò¼¨¤¹¤Î¤Ë¤¤¤¯¤Ä¤«¤Îñ¸ì¤äά¹æ¤¬ -»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ +.\" 様々な特別なライブラリである。これらの関数を文書化したマニュアルページは +.\" ライブラリ名を指定する。 +.SH 準拠 +この章の関数が準拠する UNIX システムや標準を示すのにいくつかの単語や略号が +使用されている。 .BR standards (7) -¤ò»²¾È¤Î¤³¤È¡£ -.SH È÷¹Í -.SS Ãø¼Ô¤ÈÃøºî¸¢ -Ãø¼Ô¤ÈÃøºî¸¢¤Î¾õÂ֤ϥޥ˥奢¥ë¥Ú¡¼¥¸¤Î¥Ø¥Ã¥À¤ò¸«¤ë¤³¤È¡£ -¤³¤ì¤é¤Ï¥Ú¡¼¥¸Ëè¤Ë°Û¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ë¤³¤È¤ËÃí°Õ¡£ -.SH ´ØÏ¢¹àÌÜ +を参照のこと。 +.SH 備考 +.SS 著者と著作権 +著者と著作権の状態はマニュアルページのヘッダを見ること。 +これらはページ毎に異なる可能性があることに注意。 +.SH 関連項目 .BR intro (2), .BR errno (3), .BR capabilities (7), diff --git a/release/man3/isalpha.3 b/release/man3/isalpha.3 index a711384c..145c4839 100644 --- a/release/man3/isalpha.3 +++ b/release/man3/isalpha.3 @@ -34,10 +34,10 @@ .\" Updated 2007-05-01, Akihiro MOTOKI, LDP v2.46 .\" .TH ISALPHA 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 isalnum, isalpha, isascii, isblank, iscntrl, isdigit, isgraph, islower, -isprint, ispunct, isspace, isupper, isxdigit \- ʸ»ú¤òʬÎह¤ë -.SH ½ñ¼° +isprint, ispunct, isspace, isupper, isxdigit \- 文字を分類する +.SH 書式 .nf .B #include .sp @@ -69,9 +69,9 @@ isprint, ispunct, isspace, isupper, isxdigit \- ʸ .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -89,110 +89,110 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Ë½¾¤Ã¤Æ +.SH 説明 +これらの関数は、現在のロケールに従って .I c -¤òʬÎह¤ë¡£ +を分類する。 .I c -¤Ï +は .I unsigned char -¤« +か .B EOF -¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +でなければならない。 .TP .BR isalnum () -±Ñ»ú¤Þ¤¿¤Ï¿ô»ú¤Ç¤¢¤ë¤«¤òÄ´¤Ù¤ë¡£ +英字または数字であるかを調べる。 .BI "(isalpha(" c ") || isdigit(" c "))" \fR -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 .TP .BR isalpha () -¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤«¤É¤¦¤«Ä´¤Ù¤ë¡£É¸½à¤Î \fB"C"\fP ¥í¥±¡¼¥ë¤Ç¤Ï +アルファベットかどうか調べる。標準の \fB"C"\fP ロケールでは .BI "(isupper(" c ") || islower(" c "))" \fR -¤ÈÅù²Á¤Ç¤¢¤ë¡£Â¾¤Î¥í¥±¡¼¥ë¤Ç¤Ï¡¢Âçʸ»ú¤Ç¤â¾®Ê¸»ú¤Ç¤â¤Ê¤¤Â¾¤Îʸ»ú¤Ç¤â +と等価である。他のロケールでは、大文字でも小文字でもない他の文字でも .BR isalpha () -¤¬ true ¤òÊÖ¤¹¤³¤È¤¬¤¢¤ë¡£ +が true を返すことがある。 .TP .BR isascii () -\fIc\fP ¤¬¡¢ASCIIʸ»ú¥»¥Ã¥È¤Ë¹çÃפ¹¤ë 7¥Ó¥Ã¥È¤Î +\fIc\fP が、ASCII文字セットに合致する 7ビットの .I unsigned char -¤Ç¤¢¤ë¤«¤òÄ´¤Ù¤ë¡£ +であるかを調べる。 .TP .BR isblank () -¶õÇòʸ»ú (¥¹¥Ú¡¼¥¹¤«¥¿¥Ö) ¤Ç¤¢¤ë¤«¤òÄ´¤Ù¤ë¡£ +空白文字 (スペースかタブ) であるかを調べる。 .TP .BR iscntrl () -À©¸æʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£ +制御文字かどうかを調べる。 .TP .BR isdigit () -¿ô»ú (0¡Á9) ¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£ +数字 (0〜9) かどうかを調べる。 .TP .BR isgraph () -ɽ¼¨²Äǽ¤Êʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£¥¹¥Ú¡¼¥¹¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ +表示可能な文字かどうかを調べる。スペースは含まれない。 .TP .BR islower () -¾®Ê¸»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£ +小文字かどうかを調べる。 .TP .BR isprint () -ɽ¼¨²Äǽ¤Êʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£¥¹¥Ú¡¼¥¹¤â´Þ¤Þ¤ì¤ë¡£ +表示可能な文字かどうかを調べる。スペースも含まれる。 .TP .BR ispunct () -ɽ¼¨²Äǽ¤Êʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£¥¹¥Ú¡¼¥¹¤È±Ñ¿ô»ú¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ +表示可能な文字かどうかを調べる。スペースと英数字は含まれない。 .TP .BR isspace () -¶õÇòʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£ +空白文字かどうかを調べる。 .B """C""" -¥í¥±¡¼¥ë¤« +ロケールか .B """POSIX""" -¥í¥±¡¼¥ë¤Ç¤Ï¡¢¶õÇòʸ»ú¤È¤Ï¡¢¥¹¥Ú¡¼¥¹¡¢¥Õ¥©¡¼¥à¥Õ¥£¡¼¥É +ロケールでは、空白文字とは、スペース、フォームフィード .RB ( \(aq\ef\(aq ) -¡¢²þ¹Ô(newline) +、改行(newline) .RB ( \(aq\en\(aq ) -¡¢Éüµ¢(carriage return) +、復帰(carriage return) .RB ( \(aq\er\(aq ) -¡¢¿åÊ¿¥¿¥Ö +、水平タブ .RB ( \(aq\et\(aq ) -¡¢¿âľ¥¿¥Ö +、垂直タブ .RB ( \(aq\ev\(aq ) -¤Ç¤¢¤ë¡£ +である。 .TP .BR isupper () -Âçʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£ +大文字かどうかを調べる。 .TP .BR isxdigit () -16¿Ê¿ô¤Ç¤Î¿ô»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£ +16進数での数字かどうかを調べる。 .br .B "0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F" -¤Îʸ»ú¤Ç¤¢¤ë¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¤³¤È¤ÈÅù²Á¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -ʸ»ú +の文字であるかどうかを調べることと等価である。 +.SH 返り値 +文字 .I c -¤¬Ä´¤Ù¤¿Ê¸»ú¤Î¼ïÎà¤Ë¹ç¤Ã¤Æ¤¤¤ì¤Ð 0 °Ê³°¤òÊÖ¤¹¡£ -¤½¤¦¤Ç¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ -.SH ½àµò +が調べた文字の種類に合っていれば 0 以外を返す。 +そうでなければ 0 を返す。 +.SH 準拠 C99, 4.3BSD. -C89 ¤Ç¤Ï¡¢¤³¤ì¤é¤Î´Ø¿ô¤Î¤¦¤Á +C89 では、これらの関数のうち .BR isascii () -¤È +と .BR isblank () -°Ê³°¤Î -¤¹¤Ù¤Æ¤¬µ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +以外の +すべてが規定されている。 .BR isascii () -¤Ï BSD ¤ä SVr4 ¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ +は BSD や SVr4 の拡張である。 .BR isblank () -¤Ï POSIX.1-2001 ¤È C99 7.4.1.3 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ -POSIX.1-2008 ¤Ï¡¢ +は POSIX.1-2001 と C99 7.4.1.3 に準拠している。 +POSIX.1-2008 は、 .BR isascii () -¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£ -¥í¡¼¥«¥é¥¤¥º¤µ¤ì¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢°Ü¿¢À­¤ò³ÎÊݤ·¤Ä¤Ä¡¢ -¤³¤Î´Ø¿ô¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -.SH Ãí°Õ -¤¢¤ëʸ»ú¤¬¤É¤Î¼ïÎà¤ËÆþ¤ë¤«¤È¤¤¤¦¤³¤È¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Ë°Í¸¤¹¤ë¡£ -¤¿¤È¤¨¤Ð¡¢¥Ç¥Õ¥©¥ë¥È¤Î +を廃止予定としている。 +ローカライズされたアプリケーションでは、移植性を確保しつつ、 +この関数を使用することはできない点に注意すること。 +.SH 注意 +ある文字がどの種類に入るかということは、現在のロケールに依存する。 +たとえば、デフォルトの .B "C" -¥í¥±¡¼¥ë¤Ç¤Ï +ロケールでは .BR isupper () -¤Ï A ¤Î¥¦¥à¥é¥¦¥È¤òǧ¼±¤Ç¤­¤Ê¤¤¤Î¤Ç¡¢¤½¤ì¤¬Âçʸ»ú¤À¤È¤¤¤¦¤³¤È¤¬¤ï¤«¤é¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +は A のウムラウトを認識できないので、それが大文字だということがわからない。 +.SH 関連項目 .BR iswalnum (3), .BR iswalpha (3), .BR iswblank (3), diff --git a/release/man3/isatty.3 b/release/man3/isatty.3 index fc4b2ac7..85ebf338 100644 --- a/release/man3/isatty.3 +++ b/release/man3/isatty.3 @@ -26,43 +26,43 @@ .\" Translated Mon Feb 10 1997 by Hiroaki Nagoya .\" .TH ISATTY 3 2008-12-03 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -isatty \- ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Ã¼Ëö¤ò»²¾È¤·¤Æ¤¤¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë -.SH ½ñ¼° +.SH 名前 +isatty \- ファイルディスクリプタが端末を参照しているかをチェックする +.SH 書式 .nf .B #include .sp .BI "int isatty(int " fd ); .fi -.SH ÀâÌÀ +.SH 説明 .BR isatty () -´Ø¿ô¤Ï¡¢ +関数は、 .I fd -¤¬Ã¼Ëö¤ò»²¾È¤¹¤ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤É¤¦¤«¤ò -¥Á¥§¥Ã¥¯¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ +が端末を参照するオープンされたファイルディスクリプタかどうかを +チェックする。 +.SH 返り値 .BR isatty () -¤Ï¡¢ +は、 .I fd -¤¬Ã¼Ëö¤ò»²¾È¤¹¤ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ì¤Ð 1 ¤òÊÖ¤¹¡£ -¤½¤¦¤Ç¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤·¡¢ +が端末を参照するオープンされたファイルディスクリプタであれば 1 を返す。 +そうでなければ 0 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値を設定する。 +.SH エラー .TP .B EBADF .I fd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ +が有効なファイルディスクリプタではない。 .TP .B EINVAL .\" FIXME File a bug for this? .I fd -¤¬Ã¼Ëö°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤ë¡£ -POSIX.1-2001 ¤Ç¤Ï¡¢¤³¤Î¾ì¹ç¤Ë¥¨¥é¡¼ +が端末以外のファイルを参照している。 +POSIX.1-2001 では、この場合にエラー .B ENOTTY -¤òÊÖ¤¹¤Èµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò +を返すと規定されている。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fstat (2), .BR ttyname (3) diff --git a/release/man3/isgreater.3 b/release/man3/isgreater.3 index 100d4e97..0259d3ea 100644 --- a/release/man3/isgreater.3 +++ b/release/man3/isgreater.3 @@ -11,10 +11,10 @@ .\" Updated 2008-09-18, Akihiro MOTOKI .\" .TH ISGREATER 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 isgreater, isgreaterequal, isless, islessequal, islessgreater, isunordered \- -NaN ¤ËÂФ·¤ÆÎã³°¤òȯÀ¸¤»¤º¤Ë¡¢ÉâÆ°¾®¿ôÅÀ¿ô¤ÎÂç¾®´Ø·¸¤ÎȽÄê¤ò¹Ô¤¦ -.SH ½ñ¼° +NaN に対して例外を発生せずに、浮動小数点数の大小関係の判定を行う +.SH 書式 .nf .B #include .sp @@ -31,16 +31,16 @@ NaN .BI "int isunordered(" x ", " y ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l -¤³¤³¤ÇÀâÌÀ¤¹¤ëÁ´¤Æ¤Î´Ø¿ô: +ここで説明する全ての関数: .RS _XOPEN_SOURCE\ >=\ 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L; @@ -49,58 +49,58 @@ or .I cc\ -std=c99 .RE .ad b -.SH ÀâÌÀ -(\fB<\fP¡¢¡Ö¾®¤Ê¤ê¡×¤Î¤è¤¦¤Ê) Ä̾ï¤Î´Ø·¸Áàºî (relation operations) ¤Ï¡¢ -¥ª¥Ú¥é¥ó¥É¤Î°ìÊý¤¬ NaN ¤Î¾ì¹ç¤Ë¤Ï¼ºÇÔ¤¹¤ë¡£ -¤³¤ì¤ÏÎã³°¤Î¸¶°ø¤Ë¤Ê¤ë¡£ -¤³¤ì¤òÈò¤±¤ë¤¿¤á¡¢C99 ¤Ç¤Ï¼¡¤Î¤è¤¦¤Ê¥Þ¥¯¥í¤òÄêµÁ¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ï¥ª¥Ú¥é¥ó¥É¤ò 1 ²ó¤À¤±É¾²Á¤¹¤ë¤³¤È¤¬Êݾڤµ¤ì¤Æ¤¤¤ë¡£ -¥ª¥Ú¥é¥ó¥É¤Ë¤ÏǤ°Õ¤Î¼Â¿ô¤ÎÉâÆ°¾®¿ôÅÀ¿ô·¿¤ò»ØÄê¤Ç¤­¤ë¡£ +.SH 説明 +(\fB<\fP、「小なり」のような) 通常の関係操作 (relation operations) は、 +オペランドの一方が NaN の場合には失敗する。 +これは例外の原因になる。 +これを避けるため、C99 では次のようなマクロを定義している。 +これらのマクロはオペランドを 1 回だけ評価することが保証されている。 +オペランドには任意の実数の浮動小数点数型を指定できる。 .TP .BR isgreater () -\fI(x)\ >\ (y)\fP ¤ò·èÄꤹ¤ë¡£ -\fIx\fP ¤Þ¤¿¤Ï \fIy\fP ¤¬ NaN ¤Ç¤âÎã³°¤òȯÀ¸¤·¤Ê¤¤¡£ +\fI(x)\ >\ (y)\fP を決定する。 +\fIx\fP または \fIy\fP が NaN でも例外を発生しない。 .TP .BR isgreaterequal () -\fI(x)\ >=\ (y)\fP ¤ò·èÄꤹ¤ë¡£ -\fIx\fP ¤Þ¤¿¤Ï \fIy\fP ¤¬ NaN ¤Ç¤âÎã³°¤òȯÀ¸¤·¤Ê¤¤¡£ +\fI(x)\ >=\ (y)\fP を決定する。 +\fIx\fP または \fIy\fP が NaN でも例外を発生しない。 .TP .BR isless () -\fI(x)\ <\ (y)\fP ¤ò·èÄꤹ¤ë¡£ -\fIx\fP ¤Þ¤¿¤Ï \fIy\fP ¤¬ NaN ¤Ç¤âÎã³°¤òȯÀ¸¤·¤Ê¤¤¡£ +\fI(x)\ <\ (y)\fP を決定する。 +\fIx\fP または \fIy\fP が NaN でも例外を発生しない。 .TP .BR islessequal () -\fI(x)\ <=\ (y)\fP ¤ò·èÄꤹ¤ë¡£ -\fIx\fP ¤Þ¤¿¤Ï \fIy\fP ¤¬ NaN ¤Ç¤âÎã³°¤òȯÀ¸¤·¤Ê¤¤¡£ +\fI(x)\ <=\ (y)\fP を決定する。 +\fIx\fP または \fIy\fP が NaN でも例外を発生しない。 .TP .BR islessgreater () -\fI(x)\ < (y) || (x) >\ (y)\fP ¤ò·èÄꤹ¤ë¡£ -\fIx\fP ¤Þ¤¿¤Ï \fIy\fP ¤¬ NaN ¤Ç¤âÎã³°¤òȯÀ¸¤·¤Ê¤¤¡£ -¤³¤Î¥Þ¥¯¥í¤Ï \fIx\ !=\ y\fP ¤ÈÅù²Á¤Ç¤Ï¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¡¢¤³¤Îɾ²Á¼°¤Ï \fIx\fP ¤Þ¤¿¤Ï \fIy\fP ¤¬ NaN ¤Î¾ì¹ç¤Ë -true ¤È¤Ê¤ë¤¿¤á¤Ç¤¢¤ë¡£ +\fI(x)\ < (y) || (x) >\ (y)\fP を決定する。 +\fIx\fP または \fIy\fP が NaN でも例外を発生しない。 +このマクロは \fIx\ !=\ y\fP と等価ではない。 +なぜなら、この評価式は \fIx\fP または \fIy\fP が NaN の場合に +true となるためである。 .TP .BR isunordered () -°ú¤­¿ô¤¬ unordered ¤«¤É¤¦¤«¡¢¤Ä¤Þ¤ê°ú¤­¿ô¤Î¾¯¤Ê¤¯¤È¤â°ìÊý¤¬ NaN ¤«¤É¤¦¤« -¤òȽÄꤹ¤ë¡£ -.SH ÊÖ¤êÃÍ +引き数が unordered かどうか、つまり引き数の少なくとも一方が NaN かどうか +を判定する。 +.SH 返り値 .BR isunordered () -°Ê³°¤Î¥Þ¥¯¥í¤Ï´Ø·¸Áàºî¤Î·ë²Ì¤òÊÖ¤¹¡£ -°ìÊý¤Î°ú¤­¿ô¤¬ NaN ¤Î¾ì¹ç¡¢¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ï 0 ¤òÊÖ¤¹¡£ +以外のマクロは関係操作の結果を返す。 +一方の引き数が NaN の場合、これらのマクロは 0 を返す。 .BR isunordered () -¤Ï \fIx\fP ¤« \fIy\fP ¤¬ NaN ¤Î¾ì¹ç 1 ¤ò¡¢ -¤½¤ì°Ê³°¤Î¾ì¹ç 0 ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ -.SH ½àµò +は \fIx\fP か \fIy\fP が NaN の場合 1 を、 +それ以外の場合 0 を返す。 +.SH エラー +エラーは発生しない。 +.SH 準拠 C99, POSIX.1-2001. -.SH Ãí°Õ -¤³¤ì¤é¤Î´Ø¿ô¤ÏÁ´¤Æ¤Î¥Ï¡¼¥É¥¦¥§¥¢¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢¥Þ¥¯¥í¤Ç¥¨¥ß¥å¥ì¡¼¥È¤µ¤ì¤ë¡£ -¥¨¥ß¥å¥ì¡¼¥È¤µ¤ì¤ë¾ì¹ç¤Ï¡¢À­Ç½¾å¤Ç¤ÎÉÔÍø¤È¤Ê¤ë¡£ -NaN ¤Ë¤Ä¤¤¤Æ¿´ÇÛ¤·¤Ê¤¯¤Æ¹½¤ï¤Ê¤¤¾ì¹ç¤Ï¡¢ -¤³¤ì¤é¤Î´Ø¿ô¤ò»È¤ï¤Ê¤¤¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +.SH 注意 +これらの関数は全てのハードウェアでサポートされているわけではない。 +サポートされていない場合は、マクロでエミュレートされる。 +エミュレートされる場合は、性能上での不利となる。 +NaN について心配しなくて構わない場合は、 +これらの関数を使わないこと。 +.SH 関連項目 .BR fpclassify (3), .BR isnan (3) diff --git a/release/man3/iswalnum.3 b/release/man3/iswalnum.3 index d3e16db5..2020dec3 100644 --- a/release/man3/iswalnum.3 +++ b/release/man3/iswalnum.3 @@ -18,51 +18,51 @@ .\" by Kentaro Shirakata .\" .TH ISWALNUM 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -iswalnum \- ±Ñ¿ô»ú¥ï¥¤¥Éʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë -.SH ½ñ¼° +.SH 名前 +iswalnum \- 英数字ワイド文字かどうかを調べる +.SH 書式 .nf .B #include .sp .BI "int iswalnum(wint_t " wc ); .fi -.SH ÀâÌÀ +.SH 説明 .BR iswalnum () -´Ø¿ô¤Ï¡¢ +関数は、 .BR isalnum (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢¤¢¤ë¥ï¥¤¥Éʸ»ú¤¬Ê¸»ú¥¯¥é¥¹ "alnum" ¤Ë°¤¹¤ë¤«¤É¤¦¤«¤òÄ´¤Ù -¤ë¡£ +に対応するワイド文字関数である。 +この関数は、あるワイド文字が文字クラス "alnum" に属するかどうかを調べ +る。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤Ï¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢ -¤ê¡¢¤·¤¿¤¬¤Ã¤Æ¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤â¤¢¤ë¡£ +ワイド文字クラス "alnum" は、ワイド文字クラス "graph" のサブクラスであ +り、したがってワイド文字クラス "print" のサブクラスでもある。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "cntrl" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "print" のサブクラスなので、ワイド文字クラス "alnum" +はワイド文字クラス "cntrl" と共通部分を持たない。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤È¤½¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë "blank" ¤È¶¦ÄÌ -Éôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "graph" のサブクラスなので、ワイド文字クラス "alnum" +はワイド文字クラス "space" とそのサブクラスである "blank" と共通 +部分を持たない。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤Ï¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "punct" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "alnum" は、ワイド文字クラス "punct" と共通部分を持たない。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤Ï¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" ¤È "digit" ¤ÎÏ -½¸¹ç¤Ç¤¢¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢¤³¤Î¥¯¥é¥¹¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "xdigit" ¤â´Þ¤à¡£ +ワイド文字クラス "alnum" は、ワイド文字クラス "alpha" と "digit" の和 +集合である。したがって、このクラスはワイド文字クラス "xdigit" も含む。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤Ï¡¢¾¯¤Ê¤¯¤È¤â \(aqA\(aq ¤«¤é \(aqZ\(aq, -\(aqa\(aq ¤«¤é \(aqz\(aq ¤Þ¤Ç¤Îʸ»ú¤È \(aq0\(aq ¤«¤é \(aq9\(aq ¤Þ¤Ç¤Î¿ô»ú¤ò -¾ï¤Ë´Þ¤à¡£ -.SH ÊÖ¤êÃÍ +ワイド文字クラス "alnum" は、少なくとも \(aqA\(aq から \(aqZ\(aq, +\(aqa\(aq から \(aqz\(aq までの文字と \(aq0\(aq から \(aq9\(aq までの数字を +常に含む。 +.SH 返り値 .BR iswalnum () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬Ê¸»ú¥¯¥é¥¹ "alnum" ¤Ë°¤¹¤ë¥ï¥¤¥Éʸ»ú -¤Ê¤é¤Ð 0 ¤Ç¤Ê¤¤ÃͤòÊÖ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIwc\fP が文字クラス "alnum" に属するワイド文字 +ならば 0 でない値を返す。それ以外の場合には 0 を返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR iswalnum () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +カテゴリに依存する。 +.SH 関連項目 .BR isalnum (3), .BR iswctype (3) diff --git a/release/man3/iswalpha.3 b/release/man3/iswalpha.3 index cb913877..658363bd 100644 --- a/release/man3/iswalpha.3 +++ b/release/man3/iswalpha.3 @@ -18,53 +18,53 @@ .\" by Kentaro Shirakata .\" .TH ISWALPHA 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -iswalpha \- ±Ñ»ú¥ï¥¤¥Éʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë -.SH ½ñ¼° +.SH 名前 +iswalpha \- 英字ワイド文字かどうかを調べる +.SH 書式 .nf .B #include .sp .BI "int iswalpha(wint_t " wc ); .fi -.SH ÀâÌÀ +.SH 説明 .BR iswalpha () -´Ø¿ô¤Ï +関数は .BR isalpha (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï \fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£ +に対応するワイド文字関数である。 +この関数は \fIwc\fP がワイド文字かどうかを調べる。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" ¤Ï¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢ -¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤È¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Î -¥µ¥Ö¥¯¥é¥¹¤Ç¤â¤¢¤ë¡£ +ワイド文字クラス "alpha" は、ワイド文字クラス "alnum" のサブクラスであ +る。したがって、ワイド文字クラス "graph" とワイド文字クラス "print" の +サブクラスでもある。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "cntrl" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "print" のサブクラスなので、ワイド文字クラス "alpha" +はワイド文字クラス "cntrl" と共通部分を持たない。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤È¤½¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë "blank" ¤È¶¦ÄÌ -Éôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "graph" のサブクラスなので、ワイド文字クラス "alpha" +はワイド文字クラス "space" とそのサブクラスである "blank" と共通 +部分を持たない。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "punct" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "alnum" のサブクラスなので、ワイド文字クラス "alpha" +はワイド文字クラス "punct" と共通部分を持たない。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" ¤Ï¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "digit" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "alpha" は、ワイド文字クラス "digit" と共通部分を持たない。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" ¤Ï¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "upper" ¤È "lower" ¤ò´Þ -¤à¡£ +ワイド文字クラス "alpha" は、ワイド文字クラス "upper" と "lower" を含 +む。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" ¤Ï¡¢¾¯¤Ê¤¯¤È¤â \(aqA\(aq ¤«¤é \(aqZ\(aq, -\(aqa\(aq ¤«¤é \(aqz\(aq ¤Þ¤Ç¤Îʸ»ú¤ò¾ï¤Ë´Þ¤à¡£ -.SH ÊÖ¤êÃÍ +ワイド文字クラス "alpha" は、少なくとも \(aqA\(aq から \(aqZ\(aq, +\(aqa\(aq から \(aqz\(aq までの文字を常に含む。 +.SH 返り値 .BR iswalpha () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" ¤Ë°¤¹¤ë -¥ï¥¤¥Éʸ»ú¤Ê¤é¤Ð 0 ¤Ç¤Ê¤¤ÃͤòÊÖ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIwc\fP がワイド文字クラス "alpha" に属する +ワイド文字ならば 0 でない値を返す。それ以外の場合には 0 を返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR iswalpha () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +カテゴリに依存する。 +.SH 関連項目 .BR isalpha (3), .BR iswctype (3) diff --git a/release/man3/iswblank.3 b/release/man3/iswblank.3 index 6a45ed8b..0a927098 100644 --- a/release/man3/iswblank.3 +++ b/release/man3/iswblank.3 @@ -18,9 +18,9 @@ .\" by Kentaro Shirakata .\" .TH ISWBLANK 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -iswblank \- ¶õÇò¥ï¥¤¥Éʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë -.SH ½ñ¼° +.SH 名前 +iswblank \- 空白ワイド文字かどうかを調べる +.SH 書式 .nf .B #include .sp @@ -28,9 +28,9 @@ iswblank \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -43,34 +43,34 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR iswblank () -´Ø¿ô¤Ï¡¢ +関数は、 .BR isblank (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "blank" ¤Ë°¤¹¤ë¥ï¥¤¥Éʸ»ú¤«¤É -¤¦¤«¤òÄ´¤Ù¤ë¡£ +に対応するワイド文字関数である。 +この関数は、\fIwc\fP がワイド文字クラス "blank" に属するワイド文字かど +うかを調べる。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "blank" ¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë¡£ +ワイド文字クラス "blank" はワイド文字クラス "space" のサブクラスである。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "blank" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤È¤Ï¶¦ÄÌÉôʬ¤ò»ý¤¿¤º¡¢¤·¤¿¤¬¤Ã¤Æ¤½¤Î¥µ¥Ö¥¯¥é¥¹ -¤Ç¤¢¤ë "alnum", "alpha", "upper", "lower", "digit", "xdigit", "punct" -¤È¤â¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "space" のサブクラスなので、ワイド文字クラス "blank" +はワイド文字クラス "graph" とは共通部分を持たず、したがってそのサブクラス +である "alnum", "alpha", "upper", "lower", "digit", "xdigit", "punct" +とも共通部分を持たない。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "blank" ¤Ï¡¢¾¯¤Ê¤¯¤È¤â¶õÇòʸ»ú¤ÈÀ©¸æʸ»ú \(aq\\t\(aq ¤ò¾ï¤Ë -´Þ¤à¡£ -.SH ÊÖ¤êÃÍ +ワイド文字クラス "blank" は、少なくとも空白文字と制御文字 \(aq\\t\(aq を常に +含む。 +.SH 返り値 .BR iswblank () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "blank" ¤Ë°¤¹¤ë -¥ï¥¤¥Éʸ»ú¤Ê¤é¤Ð 0 ¤Ç¤Ê¤¤ÃͤòÊÖ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIwc\fP がワイド文字クラス "blank" に属する +ワイド文字ならば 0 でない値を返す。それ以外の場合には 0 を返す。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .BR iswblank () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +カテゴリに依存する。 +.SH 関連項目 .BR isblank (3), .BR iswctype (3) diff --git a/release/man3/iswcntrl.3 b/release/man3/iswcntrl.3 index c2858da6..e3a2611f 100644 --- a/release/man3/iswcntrl.3 +++ b/release/man3/iswcntrl.3 @@ -16,40 +16,40 @@ .\" by FUJIWARA Teruyoshi .\" .TH ISWCNTRL 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -iswcntrl \- ¥ï¥¤¥ÉÀ©¸æʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë -.SH ½ñ¼° +.SH 名前 +iswcntrl \- ワイド制御文字かどうかを調べる +.SH 書式 .nf .B #include .sp .BI "int iswcntrl(wint_t " wc ); .fi -.SH ÀâÌÀ +.SH 説明 .BR iswcntrl () -´Ø¿ô¤Ï¡¢ +関数は、 .BR iscntrl (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "cntrl" ¤Ë°¤¹¤ë¥ï¥¤¥Éʸ»ú¤«¤É -¤¦¤«¤òÄ´¤Ù¤ë¡£ +に対応するワイド文字関数である。 +この関数は、\fIwc\fP がワイド文字クラス "cntrl" に属するワイド文字かど +うかを調べる。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "cntrl" ¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤È¤Ï¶¦ÄÌÉôʬ¤ò»ý¤¿ -¤º¡¢¤·¤¿¤¬¤Ã¤Æ¤½¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë "graph", "alpha", "upper", "lower", -"digit", "xdigit", "punct" ¤È¤â¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "cntrl" はワイド文字クラス "print" とは共通部分を持た +ず、したがってそのサブクラスである "graph", "alpha", "upper", "lower", +"digit", "xdigit", "punct" とも共通部分を持たない。 .PP -unsigned char ·¿¤Ç¤¢¤ë \fIc\fP ¤ËÂФ·¤Æ¤Ï¡¢\fIiscntrl(c)\fP ¤Ï°ÅÌÛŪ¤Ë -\fIiswcntrl(btowc(c))\fP ¤ò¹Ô¤¦¡£ -.SH ÊÖ¤êÃÍ -´Ø¿ô +unsigned char 型である \fIc\fP に対しては、\fIiscntrl(c)\fP は暗黙的に +\fIiswcntrl(btowc(c))\fP を行う。 +.SH 返り値 +関数 .BR iswcntrl () -¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "cntrl" ¤Ë°¤¹¤ë -¥ï¥¤¥Éʸ»ú¤Ê¤é¤Ð 0 ¤Ç¤Ê¤¤ÃͤòÊÖ¤¹¡£¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ -.SH ½àµò +は、\fIwc\fP がワイド文字クラス "cntrl" に属する +ワイド文字ならば 0 でない値を返す。そうでない場合には 0 を返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR iswcntrl () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +カテゴリに依存する。 +.SH 関連項目 .BR iscntrl (3), .BR iswctype (3) diff --git a/release/man3/iswctype.3 b/release/man3/iswctype.3 index 686231d5..34e4ad41 100644 --- a/release/man3/iswctype.3 +++ b/release/man3/iswctype.3 @@ -15,42 +15,42 @@ .\" Translated Thu Sep 2 21:47:20 JST 1999 .\" by FUJIWARA Teruyoshi .\" -.\" WORD: character property descriptor ʸ»ú°À­»Ø¼¨»Ò +.\" WORD: character property descriptor 文字属性指示子 .\" .TH ISWCTYPE 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -iswctype \- ¥ï¥¤¥Éʸ»ú¤ÎʬÎà -.SH ½ñ¼° +.SH 名前 +iswctype \- ワイド文字の分類 +.SH 書式 .nf .B #include .sp .BI "int iswctype(wint_t " wc ", wctype_t " desc ); .fi -.SH ÀâÌÀ -\fIwc\fP ¤¬ -\fIdesc\fP ¤Ç»Ø¼¨¤µ¤ì¤¿Ê¸»ú°À­¤ò»ý¤Ä (¸À¤¤´¹¤¨¤ë¤È¡¢\fIdesc\fP ¤Ç»Ø¼¨ -¤µ¤ì¤¿Ê¸»ú¥¯¥é¥¹¤Ë°¤¹¤ë) ¥ï¥¤¥Éʸ»ú¤Ê¤é¤Ð¡¢ +.SH 説明 +\fIwc\fP が +\fIdesc\fP で指示された文字属性を持つ (言い換えると、\fIdesc\fP で指示 +された文字クラスに属する) ワイド文字ならば、 .BR iswctype () -´Ø¿ô¤Ï 0 ¤Ç -¤Ê¤¤ÃͤòÊÖ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï¤³¤Î´Ø¿ô¤Ï 0 ¤òÊÖ¤¹¡£\fIwc\fP ¤¬ +関数は 0 で +ない値を返す。それ以外の場合にはこの関数は 0 を返す。\fIwc\fP が .B WEOF -¤Ê¤é¤Ð 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +ならば 0 が返される。 .PP -\fIdesc\fP ¤Ï +\fIdesc\fP は .BR wctype () -´Ø¿ô¤¬ÊÖ¤¹Ê¸»ú°À­»Ø¼¨»Ò¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +関数が返す文字属性指示子でなければならない。 +.SH 返り値 .BR iswctype () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬»Ø¼¨¤µ¤ì¤¿Â°À­¤ò»ý¤Ä¤Ê¤é¤Ð 0 ¤Ç¤Ê¤¤ -ÃͤòÊÖ¤¹¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIwc\fP が指示された属性を持つならば 0 でない +値を返す。そうでなければ 0 を返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR iswctype () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +カテゴリに依存する。 +.SH 関連項目 .BR iswalnum (3), .BR iswalpha (3), .BR iswblank (3), diff --git a/release/man3/iswdigit.3 b/release/man3/iswdigit.3 index 17a24373..43f924f3 100644 --- a/release/man3/iswdigit.3 +++ b/release/man3/iswdigit.3 @@ -18,53 +18,53 @@ .\" by Kentaro Shirakata .\" .TH ISWDIGIT 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -iswdigit \- ¿ô»ú¥ï¥¤¥Éʸ»ú¤Ç¤¢¤ë¤«¤É¤¦¤«¤òÄ´¤Ù¤ë -.SH ½ñ¼° +.SH 名前 +iswdigit \- 数字ワイド文字であるかどうかを調べる +.SH 書式 .nf .B #include .sp .BI "int iswdigit(wint_t " wc ); .fi -.SH ÀâÌÀ +.SH 説明 .BR iswdigit () -´Ø¿ô¤Ï¡¢ +関数は、 .BR isdigit (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "digit" ¤Ë°¤¹¤ë¥ï¥¤¥Éʸ»ú¤«¤É -¤¦¤«¤òÄ´¤Ù¤ë¡£ +に対応するワイド文字関数である。 +この関数は、\fIwc\fP がワイド文字クラス "digit" に属するワイド文字かど +うかを調べる。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "digit" ¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "xdigit" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢ -¤ë¡£¤·¤¿¤¬¤Ã¤Æ¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤ä¡¢¤½¤Î¿Æ¥¯¥é¥¹¤Ç¤¢¤ë "graph", -¤µ¤é¤Ë¤½¤Î¿Æ¥¯¥é¥¹¤Ç¤¢¤ë "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤â¤¢¤ë¡£ +ワイド文字クラス "digit" はワイド文字クラス "xdigit" のサブクラスであ +る。したがってワイド文字クラス "alnum" や、その親クラスである "graph", +さらにその親クラスである "print" のサブクラスでもある。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "digit" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "cntrl" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "print" のサブクラスなので、ワイド文字クラス "digit" +はワイド文字クラス "cntrl" と共通部分を持たない。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "digit" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤È¤½¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë "blank" ¤È¶¦ÄÌ -Éôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "graph" のサブクラスなので、ワイド文字クラス "digit" +はワイド文字クラス "space" とそのサブクラスである "blank" と共通 +部分を持たない。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "digit" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "punct" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "alnum" のサブクラスなので、ワイド文字クラス "digit" +はワイド文字クラス "punct" と共通部分を持たない。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "digit" ¤Ï¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿ -¤Ê¤¤¡£¤·¤¿¤¬¤Ã¤Æ¡¢¤½¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë "lower", "upper" ¤È¤â¶¦ÄÌÉôʬ¤ò -»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "digit" は、ワイド文字クラス "alpha" と共通部分を持た +ない。したがって、そのサブクラスである "lower", "upper" とも共通部分を +持たない。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "digit" ¤Ïɬ¤º¡¢\(aq0\(aq ¤«¤é \(aq9\(aq ¤Þ¤Ç¤Î -¿ô»ú¤À¤±¤«¤é¤Ê¤ë¡£ -.SH ÊÖ¤êÃÍ +ワイド文字クラス "digit" は必ず、\(aq0\(aq から \(aq9\(aq までの +数字だけからなる。 +.SH 返り値 .BR iswdigit () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "digit" ¤Ë°¤¹¤ë¥ï -¥¤¥Éʸ»ú¤Ê¤é¤Ð 0 ¤Ç¤Ê¤¤ÃͤòÊÖ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIwc\fP がワイド文字クラス "digit" に属するワ +イド文字ならば 0 でない値を返す。それ以外の場合には 0 を返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR iswdigit () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +カテゴリに依存する。 +.SH 関連項目 .BR isdigit (3), .BR iswctype (3) diff --git a/release/man3/iswgraph.3 b/release/man3/iswgraph.3 index bba537af..3f3bdb23 100644 --- a/release/man3/iswgraph.3 +++ b/release/man3/iswgraph.3 @@ -18,50 +18,50 @@ .\" by Kentaro Shirakata .\" .TH ISWGRAPH 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -iswgraph \- ¥°¥é¥Õ¥£¥Ã¥¯¥ï¥¤¥Éʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë -.SH ½ñ¼° +.SH 名前 +iswgraph \- グラフィックワイド文字かどうかを調べる +.SH 書式 .nf .B #include .sp .BI "int iswgraph(wint_t " wc ); .fi -.SH ÀâÌÀ +.SH 説明 .BR iswgraph () -´Ø¿ô¤Ï¡¢ +関数は、 .BR isgraph (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Ë°¤¹¤ë¥ï¥¤¥Éʸ»ú¤«¤É -¤¦¤«¤òÄ´¤Ù¤ë¡£ +に対応するワイド文字関数である。 +この関数は、\fIwc\fP がワイド文字クラス "graph" に属するワイド文字かど +うかを調べる。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Ï¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿ -¤Ê¤¤¡£¤·¤¿¤¬¤Ã¤Æ¡¢¤½¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë "blank" ¤È¤â¶¦ÄÌÉôʬ¤ò -»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "graph" は、ワイド文字クラス "space" と共通部分を持た +ない。したがって、そのサブクラスである "blank" とも共通部分を +持たない。 .\" Note: UNIX98 (susv2/xbd/locale.html) says that "graph" and "space" may .\" have characters in common, except U+0020. But C99 (ISO/IEC 9899:1999 .\" section 7.25.2.1.10) says that "space" and "graph" are disjoint. .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Ï¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢ -¤ë¡£ +ワイド文字クラス "graph" は、ワイド文字クラス "print" のサブクラスであ +る。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "cntrl" ¤È¤Ï¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "print" のサブクラスなので、ワイド文字クラス "graph" +はワイド文字クラス "cntrl" とは共通部分を持たない。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Ï¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Ë°¤¹¤ëʸ»ú¤Î¤¦ -¤Á¶õÇòʸ»ú¤ò½ü¤¯Á´¤Æ¤Î¥ï¥¤¥Éʸ»ú¤ò´Þ¤ó¤Ç¤¤¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢ -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Ë¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "almun" ¤È "punct" ¤¬´Þ -¤Þ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +ワイド文字クラス "graph" は、ワイド文字クラス "print" に属する文字のう +ち空白文字を除く全てのワイド文字を含んでいる。したがって、 +ワイド文字クラス "graph" にはワイド文字クラス "almun" と "punct" が含 +まれる。 +.SH 返り値 .BR iswgraph () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Ë°¤¹¤ë¥ï -¥¤¥Éʸ»ú¤Ê¤é¤Ð 0 ¤Ç¤Ê¤¤ÃͤòÊÖ¤¹¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIwc\fP がワイド文字クラス "graph" に属するワ +イド文字ならば 0 でない値を返す。そうでなければ 0 を返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR iswgraph () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +カテゴリに依存する。 +.SH 関連項目 .BR isgraph (3), .BR iswctype (3) diff --git a/release/man3/iswlower.3 b/release/man3/iswlower.3 index 9ac30470..d82a624c 100644 --- a/release/man3/iswlower.3 +++ b/release/man3/iswlower.3 @@ -18,60 +18,60 @@ .\" by Kentaro Shirakata .\" .TH ISWLOWER 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -iswlower \- ¾®Ê¸»ú¥ï¥¤¥Éʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë -.SH ½ñ¼° +.SH 名前 +iswlower \- 小文字ワイド文字かどうかを調べる +.SH 書式 .nf .B #include .sp .BI "int iswlower(wint_t " wc ); .fi -.SH ÀâÌÀ +.SH 説明 .BR iswlower () -´Ø¿ô¤Ï¡¢ +関数は、 .BR islower (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬Ê¸»ú¥¯¥é¥¹ "lower" ¤Ë°¤¹¤ë¥ï¥¤¥Éʸ»ú¤«¤É¤¦¤«¤ò -Ä´¤Ù¤ë¡£ +に対応するワイド文字関数である。 +この関数は、\fIwc\fP が文字クラス "lower" に属するワイド文字かどうかを +調べる。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "lower" ¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ê¡¢ -¤·¤¿¤¬¤Ã¤Æ¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤È¤½¤Î¿Æ¥¯¥é¥¹¤Ç¤¢¤ë "graph", ¤µ¤é¤Ë -¤½¤Î¿Æ¥¯¥é¥¹¤Ç¤¢¤ë "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤â¤¢¤ë¡£ +ワイド文字クラス "lower" はワイド文字クラス "alpha" のサブクラスであり、 +したがってワイド文字クラス "alnum" とその親クラスである "graph", さらに +その親クラスである "print" のサブクラスでもある。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "lower" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "cntrl" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "print" のサブクラスなので、ワイド文字クラス "lower" +はワイド文字クラス "cntrl" と共通部分を持たない。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "lower" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤È¤½¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë "blank" ¤È¶¦ÄÌ -Éôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "graph" のサブクラスなので、ワイド文字クラス "lower" +はワイド文字クラス "space" とそのサブクラスである "blank" と共通 +部分を持たない。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "lower" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "punct" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "alnum" のサブクラスなので、ワイド文字クラス "lower" +はワイド文字クラス "punct" と共通部分を持たない。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "lower" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "digit" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "alpha" のサブクラスなので、ワイド文字クラス "lower" +はワイド文字クラス "digit" と共通部分を持たない。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "lower" ¤Ï¾¯¤Ê¤¯¤È¤â¡¢\fIwc\fP ¤È \fItowlower(wc)\fP -¤¬Åù¤·¤¯¤Ê¤ê¡¢¤«¤Ä \fItowupper(wc)\fP ¤È°Û¤Ê¤ë¤è¤¦¤Êʸ»ú¤ò´Þ¤à¡£ +ワイド文字クラス "lower" は少なくとも、\fIwc\fP と \fItowlower(wc)\fP +が等しくなり、かつ \fItowupper(wc)\fP と異なるような文字を含む。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "lower" ¤Ï¾¯¤Ê¤¯¤È¤â \(aqa\(aq ¤«¤é \(aqz\(aq ¤òɬ¤º´Þ¤à¡£ -.SH ÊÖ¤êÃÍ +ワイド文字クラス "lower" は少なくとも \(aqa\(aq から \(aqz\(aq を必ず含む。 +.SH 返り値 .BR iswlower () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "lower" ¤Ë°¤¹¤ë¥ï -¥¤¥Éʸ»ú¤Ê¤é¤Ð 0 ¤Ç¤Ê¤¤ÃͤòÊÖ¤¹¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIwc\fP がワイド文字クラス "lower" に属するワ +イド文字ならば 0 でない値を返す。そうでなければ 0 を返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR iswlower () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .PP -¤³¤Î´Ø¿ô¤Ç Unicode ¤ò°·¤¦¤Î¤Ï¤¢¤Þ¤êŬÀڤǤʤ¤¡£ -¤Ê¤¼¤Ê¤é¡¢Unicode ¤Ë¤Ï -Âçʸ»ú (upper case)¡¦¾®Ê¸»ú (lower case)¡¦¥¿¥¤¥È¥ëʸ»ú (title case) -¤Î 3 ¤Ä¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +この関数で Unicode を扱うのはあまり適切でない。 +なぜなら、Unicode には +大文字 (upper case)・小文字 (lower case)・タイトル文字 (title case) +の 3 つが含まれているからである。 +.SH 関連項目 .BR islower (3), .BR iswctype (3), .BR towlower (3) diff --git a/release/man3/iswprint.3 b/release/man3/iswprint.3 index 0eb5aa17..6ff4621c 100644 --- a/release/man3/iswprint.3 +++ b/release/man3/iswprint.3 @@ -16,37 +16,37 @@ .\" by FUJIWARA Teruyoshi .\" .TH ISWPRINT 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -iswprint \- °õ»ú²Äǽ¥ï¥¤¥Éʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë -.SH ½ñ¼° +.SH 名前 +iswprint \- 印字可能ワイド文字かどうかを調べる +.SH 書式 .nf .B #include .sp .BI "int iswprint(wint_t " wc ); .fi -.SH ÀâÌÀ +.SH 説明 .BR iswprint () -´Ø¿ô¤Ï¡¢ +関数は、 .BR isprint (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Ë°¤¹¤ë¥ï¥¤¥Éʸ»ú¤«¤É -¤¦¤«¤òÄ´¤Ù¤ë¡£ +に対応するワイド文字関数である。 +この関数は、\fIwc\fP がワイド文字クラス "print" に属するワイド文字かど +うかを調べる。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Ï¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "cntrl" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿ -¤Ê¤¤¡£ +ワイド文字クラス "print" は、ワイド文字クラス "cntrl" と共通部分を持た +ない。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Ï¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤ò´Þ¤à¡£ -.SH ÊÖ¤êÃÍ +ワイド文字クラス "print" は、ワイド文字クラス "graph" を含む。 +.SH 返り値 .BR iswprint () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Ë°¤¹¤ë¥ï -¥¤¥Éʸ»ú¤Ê¤é¤Ð 0 ¤Ç¤Ê¤¤ÃͤòÊÖ¤¹¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIwc\fP がワイド文字クラス "print" に属するワ +イド文字ならば 0 でない値を返す。そうでなければ 0 を返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR iswprint () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +カテゴリに依存する。 +.SH 関連項目 .BR isprint (3), .BR iswctype (3) diff --git a/release/man3/iswpunct.3 b/release/man3/iswpunct.3 index c592dcb2..80c3618d 100644 --- a/release/man3/iswpunct.3 +++ b/release/man3/iswpunct.3 @@ -18,50 +18,50 @@ .\" by Kentaro Shirakata .\" .TH ISWPUNCT 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -iswpunct \- ¶çÆÉÅÀ¡¦µ­¹æ¥ï¥¤¥Éʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë -.SH ½ñ¼° +.SH 名前 +iswpunct \- 句読点・記号ワイド文字かどうかを調べる +.SH 書式 .nf .B #include .sp .BI "int iswpunct(wint_t " wc ); .fi -.SH ÀâÌÀ +.SH 説明 .BR iswpunct () -´Ø¿ô¤Ï¡¢ +関数は、 .BR ispunct (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "punct" ¤Ë°¤¹¤ë¥ï¥¤¥Éʸ»ú¤«¤É -¤¦¤«¤òÄ´¤Ù¤ë¡£ +に対応するワイド文字関数である。 +この関数は、\fIwc\fP がワイド文字クラス "punct" に属するワイド文字かど +うかを調べる。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "punct" ¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤â¤¢¤ë¡£ +ワイド文字クラス "punct" はワイド文字クラス "graph" のサブクラスである。 +したがって、ワイド文字クラス "print" のサブクラスでもある。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "punct" ¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê -¤¤¡£¤·¤¿¤¬¤Ã¤Æ¡¢¤½¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë "alpha", "upper", "lower", "digit", "xdigit" -¤È¤â¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "punct" はワイド文字クラス "alnum" と共通部分を持たな +い。したがって、そのサブクラスである "alpha", "upper", "lower", "digit", "xdigit" +とも共通部分を持たない。 .PP -¥ï¥¤¥Éʸ»ú "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "punct" ¤Ï -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "cntrl" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字 "print" のサブクラスなので、ワイド文字クラス "punct" は +ワイド文字クラス "cntrl" と共通部分を持たない。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "punct" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤È¤½¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë "blank" ¤È¶¦ÄÌ -Éôʬ¤ò»ý¤¿¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +ワイド文字クラス "graph" のサブクラスなので、ワイド文字クラス "punct" +はワイド文字クラス "space" とそのサブクラスである "blank" と共通 +部分を持たない。 +.SH 返り値 .BR iswpunct () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "punct" ¤Ë°¤¹¤ë -¥ï¥¤¥Éʸ»ú¤Ê¤é¤Ð 0 ¤Ç¤Ê¤¤ÃͤòÊÖ¤¹¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIwc\fP がワイド文字クラス "punct" に属する +ワイド文字ならば 0 でない値を返す。そうでなければ 0 を返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR iswpunct () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .PP -¤³¤Î´Ø¿ô¤Î̾Á°¤Ï Unicode ʸ»ú¤ò°·¤¦ºÝ¤Ë¤ÏÀµ¤·¤¯¤Ê¤¤¡£¤Ê¤¼¤Ê¤é¡¢¥ï¥¤¥É -ʸ»ú¥¯¥é¥¹ "punct" ¤Ï¶çÆÉÅÀʸ»ú¤Èµ­¹æʸ»ú(¿ô³Øµ­¹æ¡¢²ßʾµ­¹æ¤Ê¤É)¤Îξ -Êý¤ò´Þ¤à¤«¤é¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +この関数の名前は Unicode 文字を扱う際には正しくない。なぜなら、ワイド +文字クラス "punct" は句読点文字と記号文字(数学記号、貨幣記号など)の両 +方を含むからである。 +.SH 関連項目 .BR ispunct (3), .BR iswctype (3) diff --git a/release/man3/iswspace.3 b/release/man3/iswspace.3 index 19bc951d..48e466dc 100644 --- a/release/man3/iswspace.3 +++ b/release/man3/iswspace.3 @@ -18,44 +18,44 @@ .\" by Kentaro Shirakata .\" .TH ISWSPACE 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -iswspace \- ¶õÇò¥ï¥¤¥Éʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë -.SH ½ñ¼° +.SH 名前 +iswspace \- 空白ワイド文字かどうかを調べる +.SH 書式 .nf .B #include .sp .BI "int iswspace(wint_t " wc ); .fi -.SH ÀâÌÀ +.SH 説明 .BR iswspace () -´Ø¿ô¤Ï¡¢ +関数は、 .BR isspace (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤Ë°¤¹¤ë¥ï¥¤¥Éʸ»ú¤«¤É -¤¦¤«¤òÄ´¤Ù¤ë¡£ +に対応するワイド文字関数である。 +この関数は、\fIwc\fP がワイド文字クラス "space" に属するワイド文字かど +うかを調べる。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¤½¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë "alnum", "alpha", "upper", "lower", -"digit", "xdigit", "punct" ¤È¤â¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "space" はワイド文字クラス "graph" と共通部分を持たない。 +したがって、そのサブクラスである "alnum", "alpha", "upper", "lower", +"digit", "xdigit", "punct" とも共通部分を持たない。 .\" Note: UNIX98 (susv2/xbd/locale.html) says that "space" and "graph" may .\" have characters in common, except U+0020. But C99 (ISO/IEC 9899:1999 .\" section 7.25.2.1.10) says that "space" and "graph" are disjoint. .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "blank" ¤ò´Þ¤à¡£ +ワイド文字クラス "space" はワイド文字クラス "blank" を含む。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤Ï¾¯¤Ê¤¯¤È¤â¡¢¶õÇòʸ»ú¤ª¤è¤ÓÀ©¸æʸ»ú \(aq\\f\(aq, -\(aq\\n\(aq, \(aq\\r\(aq, \(aq\\t\(aq, \(aq\\v\(aq ¤òɬ¤º´Þ¤à¡£ -.SH ÊÖ¤êÃÍ +ワイド文字クラス "space" は少なくとも、空白文字および制御文字 \(aq\\f\(aq, +\(aq\\n\(aq, \(aq\\r\(aq, \(aq\\t\(aq, \(aq\\v\(aq を必ず含む。 +.SH 返り値 .BR iswspace () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤Ë´Þ¤Þ¤ì¤ë -¤Ê¤é¤Ð 0 ¤Ç¤Ê¤¤ÃͤòÊÖ¤¹¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIwc\fP がワイド文字クラス "space" に含まれる +ならば 0 でない値を返す。そうでなければ 0 を返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR iswspace () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +カテゴリに依存する。 +.SH 関連項目 .BR isspace (3), .BR iswctype (3) diff --git a/release/man3/iswupper.3 b/release/man3/iswupper.3 index fe6d9954..73119fba 100644 --- a/release/man3/iswupper.3 +++ b/release/man3/iswupper.3 @@ -18,58 +18,58 @@ .\" by Kentaro Shirakata .\" .TH ISWUPPER 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -iswupper \- Âçʸ»ú¥ï¥¤¥Éʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë -.SH ½ñ¼° +.SH 名前 +iswupper \- 大文字ワイド文字かどうかを調べる +.SH 書式 .nf .B #include .sp .BI "int iswupper(wint_t " wc ); .fi -.SH ÀâÌÀ +.SH 説明 .BR iswupper () -´Ø¿ô¤Ï¡¢ +関数は、 .BR isupper (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "upper" ¤Ë°¤¹¤ë¥ï¥¤¥Éʸ»ú¤«¤É -¤¦¤«¤òÄ´¤Ù¤ë¡£ +に対応するワイド文字関数である。 +この関数は、\fIwc\fP がワイド文字クラス "upper" に属するワイド文字かど +うかを調べる。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "upper" ¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ê¡¢ -¤·¤¿¤¬¤Ã¤Æ¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤È¤½¤Î¿Æ¥¯¥é¥¹¤Ç¤¢¤ë "graph", ¤µ¤é¤Ë -¤½¤Î¿Æ¥¯¥é¥¹¤Ç¤¢¤ë "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤â¤¢¤ë¡£ +ワイド文字クラス "upper" はワイド文字クラス "alpha" のサブクラスであり、 +したがってワイド文字クラス "alnum" とその親クラスである "graph", さらに +その親クラスである "print" のサブクラスでもある。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "upper" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "cntrl" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "print" のサブクラスなので、ワイド文字クラス "upper" +はワイド文字クラス "cntrl" と共通部分を持たない。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "upper" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤È¤½¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë "blank" ¤È¶¦ÄÌ -Éôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "graph" のサブクラスなので、ワイド文字クラス "upper" +はワイド文字クラス "space" とそのサブクラスである "blank" と共通 +部分を持たない。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "upper" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "punct" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "alnum" のサブクラスなので、ワイド文字クラス "upper" +はワイド文字クラス "punct" と共通部分を持たない。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alpha" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "upper" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "digit" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "alpha" のサブクラスなので、ワイド文字クラス "upper" +はワイド文字クラス "digit" と共通部分を持たない。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "upper" ¤Ï¾¯¤Ê¤¯¤È¤â¡¢\fIwc\fP ¤È \fItowupper(wc)\fP -¤¬Åù¤·¤¯¤Ê¤ê¡¢¤«¤Ä \fItowupper(wc)\fP ¤È°Û¤Ê¤ë¤è¤¦¤Êʸ»ú¤ò´Þ¤à¡£ +ワイド文字クラス "upper" は少なくとも、\fIwc\fP と \fItowupper(wc)\fP +が等しくなり、かつ \fItowupper(wc)\fP と異なるような文字を含む。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "upper" ¤Ï¾¯¤Ê¤¯¤È¤â \(aqA\(aq ¤«¤é \(aqZ\(aq ¤òɬ¤º´Þ¤à¡£ -.SH ÊÖ¤êÃÍ +ワイド文字クラス "upper" は少なくとも \(aqA\(aq から \(aqZ\(aq を必ず含む。 +.SH 返り値 .BR iswupper () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "upper" ¤Ë°¤¹¤ë¥ï¥¤¥Éʸ»ú¤Ê¤é¤Ð -0 ¤Ç¤Ê¤¤ÃͤòÊÖ¤¹¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIwc\fP がワイド文字クラス "upper" に属するワイド文字ならば +0 でない値を返す。そうでなければ 0 を返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR iswupper () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .PP -¤³¤Î´Ø¿ô¤Ç Unicode ¤ò°·¤¦¤Î¤Ï¤¢¤Þ¤êŬÀڤǤʤ¤¡£¤Ê¤¼¤Ê¤é¡¢Unicode ¤Ë¤Ï -Âçʸ»ú¡¦¾®Ê¸»ú¡¦¥¿¥¤¥È¥ëʸ»ú¤Î 3 ¤Ä¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +この関数で Unicode を扱うのはあまり適切でない。なぜなら、Unicode には +大文字・小文字・タイトル文字の 3 つが含まれているからである。 +.SH 関連項目 .BR isupper (3), .BR iswctype (3), .BR towupper (3) diff --git a/release/man3/iswxdigit.3 b/release/man3/iswxdigit.3 index 2daf54d0..3be8cd96 100644 --- a/release/man3/iswxdigit.3 +++ b/release/man3/iswxdigit.3 @@ -18,49 +18,49 @@ .\" by Kentaro Shirakata .\" .TH ISWXDIGIT 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -iswxdigit \- 16 ¿Ê¿ô¥ï¥¤¥Éʸ»ú¤«¤É¤¦¤«¤òÄ´¤Ù¤ë -.SH ½ñ¼° +.SH 名前 +iswxdigit \- 16 進数ワイド文字かどうかを調べる +.SH 書式 .nf .B #include .sp .BI "int iswxdigit(wint_t " wc ); .fi -.SH ÀâÌÀ +.SH 説明 .BR iswxdigit () -´Ø¿ô¤Ï¡¢ +関数は、 .BR isxdigit (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "xdigit" ¤Ë°¤¹¤ë¥ï¥¤¥Éʸ»ú¤« -¤É¤¦¤«¤òÄ´¤Ù¤ë¡£ +に対応するワイド文字関数である。 +この関数は、\fIwc\fP がワイド文字クラス "xdigit" に属するワイド文字か +どうかを調べる。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "xdigit" ¤Ï¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ç -¤¢¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤È¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" -¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤â¤¢¤ë¡£ +ワイド文字クラス "xdigit" は、ワイド文字クラス "alnum" のサブクラスで +ある。したがって、ワイド文字クラス "graph" とワイド文字クラス "print" +のサブクラスでもある。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "print" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "xdigit" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "cntrl" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "print" のサブクラスなので、ワイド文字クラス "xdigit" +はワイド文字クラス "cntrl" と共通部分を持たない。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "graph" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "xdigit" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "space" ¤È¤½¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë "blank" ¤È¶¦ÄÌ -Éôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "graph" のサブクラスなので、ワイド文字クラス "xdigit" +はワイド文字クラス "space" とそのサブクラスである "blank" と共通 +部分を持たない。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "alnum" ¤Î¥µ¥Ö¥¯¥é¥¹¤Ê¤Î¤Ç¡¢¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "xdigit" -¤Ï¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "punct" ¤È¶¦ÄÌÉôʬ¤ò»ý¤¿¤Ê¤¤¡£ +ワイド文字クラス "alnum" のサブクラスなので、ワイド文字クラス "xdigit" +はワイド文字クラス "punct" と共通部分を持たない。 .PP -¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "xdigit" ¤Ï¾¯¤Ê¤¯¤È¤â¡¢Ê¸»ú \(aqA\(aq ¤«¤é \(aqF\(aq, -\(aqa\(aq ¤«¤é \(aqf\(aq ¤È¿ô»ú \(aq0\(aq ¤«¤é \(aq9\(aq ¤òɬ¤º´Þ¤à¡£ -.SH ÊÖ¤êÃÍ +ワイド文字クラス "xdigit" は少なくとも、文字 \(aqA\(aq から \(aqF\(aq, +\(aqa\(aq から \(aqf\(aq と数字 \(aq0\(aq から \(aq9\(aq を必ず含む。 +.SH 返り値 .BR iswxdigit () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¥¯¥é¥¹ "xdigit" ¤Ë°¤¹¤ë -¥ï¥¤¥Éʸ»ú¤Ê¤é¤Ð 0 ¤Ç¤Ê¤¤ÃͤòÊÖ¤¹¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIwc\fP がワイド文字クラス "xdigit" に属する +ワイド文字ならば 0 でない値を返す。そうでなければ 0 を返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR iswxdigit () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +カテゴリに依存する。 +.SH 関連項目 .BR iswctype (3), .BR isxdigit (3) diff --git a/release/man3/j0.3 b/release/man3/j0.3 index 206690ca..4f54a0f5 100644 --- a/release/man3/j0.3 +++ b/release/man3/j0.3 @@ -37,9 +37,9 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH J0 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -j0, j0f, j0l, j1, j1f, j1l, jn, jnf, jnl \- Âè°ì¼ï¥Ù¥Ã¥»¥ë´Ø¿ô -.SH ½ñ¼° +.SH 名前 +j0, j0f, j0l, j1, j1f, j1l, jn, jnf, jnl \- 第一種ベッセル関数 +.SH 書式 .nf .B #include .sp @@ -63,12 +63,12 @@ j0, j0f, j0l, j1, j1f, j1l, jn, jnf, jnl \- .BI "long double jnl(int " n ", long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -90,68 +90,68 @@ _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 600 .\" Also seems to work: -std=c99 -D_XOPEN_SOURCE .RE .ad b -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR j0 (), .BR j1 () -¤Ï¤½¤ì¤¾¤ì \fIx\fP ¤Î0¼¡¡¢1¼¡¤Î -Âè°ì¼ï¥Ù¥Ã¥»¥ë´Ø¿ô¤ÎÃͤòÊÖ¤¹¡£ -´Ø¿ô +はそれぞれ \fIx\fP の0次、1次の +第一種ベッセル関数の値を返す。 +関数 .BR jn () -¤Ï \fIx\fP ¤Î \fIn\fP ¼¡¤Î -Âè°ì¼ï¥Ù¥Ã¥»¥ë´Ø¿ô¤ÎÃͤòÊÖ¤¹¡£ +は \fIx\fP の \fIn\fP 次の +第一種ベッセル関数の値を返す。 .PP .BR j0f () -·²¤Î´Ø¿ô¡¢ +群の関数、 .BR j0l () -·²¤Î´Ø¿ô¤Ï¡¢¤½¤ì¤¾¤ì +群の関数は、それぞれ .I float -·¿¡¢ +型、 .I "long double" -·¿¤ÎÊÖ¤êÃͤòÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +型の返り値を返す。 +.SH 返り値 +成功すると、これらの関数は .I x -¤ËÂФ¹¤ëÂè°ì¼ï¥Ù¥Ã¥»¥ë´Ø¿ô¤ÎÃͤòÊÖ¤¹¡£ +に対する第一種ベッセル関数の値を返す。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤ÎÀäÂÐÃͤ¬Â礭²á¤®¤ë¾ì¹ç¤ä·ë²Ì¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ -ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢ÊÖ¤êÃͤ¬ 0 ¤È¤Ê¤ë¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +の絶対値が大き過ぎる場合や結果がアンダーフローする場合、 +範囲エラー (range error) が発生し、返り値が 0 となる。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤Î¥¢¥ó¥À¡¼¥Õ¥í¡¼¤ä¡¢\fIx\fP ¤ÎÀäÂÐÃͤ¬Â礭²á¤®¤ë +範囲エラー: 結果のアンダーフローや、\fIx\fP の絶対値が大き過ぎる .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .\" An underflow floating-point exception .\" .RB ( FE_UNDERFLOW ) .\" is raised. .PP -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ +これらの関数は、 .BR fetestexcept (3) -¤Ç¥Á¥§¥Ã¥¯¤Ç¤­¤ëÎã³°¤ò¾å¤²¤Ê¤¤¡£ +でチェックできる例外を上げない。 .\" FIXME . Is it intentional that these functions do not raise exceptions? .\" e.g., j0(1.5e16) .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6805 -.SH ½àµò +.SH 準拠 .I double -·¿¤ÎÃͤòÊÖ¤¹´Ø¿ô¤Ï¡¢SVr4, 4.3BSD, POSIX.1-2001 -¤Ë½àµò¤¹¤ë¡£ -¤½¤ì°Ê³°¤ÏÈóɸ½à¤Î´Ø¿ô¤Ç¡¢BSD ¤Ë¤â¸ºß¤¹¤ë¡£ -.SH ¥Ð¥° -\-8 ¤«¤é 8 ¤Þ¤Ç¤Î \fIx\fP ¤ÎÃͤˤĤ¤¤Æ +型の値を返す関数は、SVr4, 4.3BSD, POSIX.1-2001 +に準拠する。 +それ以外は非標準の関数で、BSD にも存在する。 +.SH バグ +\-8 から 8 までの \fIx\fP の値について .BR j0 (), .BR j1 (), .BR jn () -¤¬ÊÖ¤¹Ãͤˤϡ¢ºÇÂç¤Ç 2e\-16 ¤Î¸íº¹¤¬¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +が返す値には、最大で 2e\-16 の誤差がある。 +.SH 関連項目 .BR y0 (3) diff --git a/release/man3/key_setsecret.3 b/release/man3/key_setsecret.3 index bccf665f..0905cef2 100644 --- a/release/man3/key_setsecret.3 +++ b/release/man3/key_setsecret.3 @@ -6,15 +6,15 @@ .\" Japanese Version Copyright (c) 2003 Akihiro MOTOKI all rights reserved. .\" Translated Mon Jan 27 2003 by Akihiro MOTOKI .\" -.\"WORD: authentication ǧ¾Ú -.\"WORD: asymmetric ÈóÂоθ°(°Å¹æ) -.\"WORD: symmetric Âоθ°(°Å¹æ) +.\"WORD: authentication 認証 +.\"WORD: asymmetric 非対称鍵(暗号) +.\"WORD: symmetric 対称鍵(暗号) .\" .TH KEY_SETSECRET 3 2002-07-18 "" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 key_decryptsession, key_encryptsession, key_setsecret, key_gendes, -key_secretkey_is_set \- rpc ¸°¥µ¡¼¥Ð¡¦¥Ç¡¼¥â¥ó¤È¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹ -.SH ½ñ¼° +key_secretkey_is_set \- rpc 鍵サーバ・デーモンとのインタフェース +.SH 書式 .B "#include " .sp .BI "int key_decryptsession(const char *" remotename , @@ -28,43 +28,43 @@ key_secretkey_is_set \- rpc .BI "int key_setsecret(const char *" key ); .sp .B "int key_secretkey_is_set(void);" -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï RPC ¤Î°ÂÁ´¤Êǧ¾Úµ¡¹½ (AUTH_DES) ¤Ç»ÈÍѤµ¤ì¤ë¡£ -¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤Ç¤³¤ì¤é¤Î´Ø¿ô¤ò»ÈÍѤ¹¤ëɬÍפϤʤ¤¡£ +.SH 説明 +これらの関数は RPC の安全な認証機構 (AUTH_DES) で使用される。 +ユーザ・プログラムでこれらの関数を使用する必要はない。 -´Ø¿ô +関数 .BR key_decryptsession () -¤Ï(¥ê¥â¡¼¥È)¥µ¡¼¥Ð¤Î¥Í¥Ã¥È̾¤òÍѤ¤¤Æ¡¢Éü¹æÍѤΠDES ¸°¤ò¼èÆÀ¤¹¤ë¡£ -¥µ¡¼¥Ð¤Î¸ø³«¸°¤È¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú UID ¤ËÂбþ¤¹¤ëÈëÌ©¸°¤¬»ÈÍѤµ¤ì¤ë¡£ +は(リモート)サーバのネット名を用いて、復号用の DES 鍵を取得する。 +サーバの公開鍵と、呼び出し元プロセスの実効 UID に対応する秘密鍵が使用される。 -´Ø¿ô +関数 .BR key_encryptsession () -¤Ï +は .BR key_decryptsession () -¤ÎµÕ¤Î½èÍý¤ò¹Ô¤¦¡£ -¥µ¡¼¥Ð¤Î¸ø³«¸°¤È¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú UID ¤ËÂбþ¤¹¤ëÈëÌ©¸°¤Ç -DES ¸°¤ò°Å¹æ¤¹¤ë¡£ +の逆の処理を行う。 +サーバの公開鍵と、呼び出し元プロセスの実効 UID に対応する秘密鍵で +DES 鍵を暗号する。 -´Ø¿ô +関数 .BR key_gendes () -¤Ï¡¢¸°¥µ¡¼¥Ð¤Ë°ÂÁ´¤ÊÄÌ¿®¤ò¹Ô¤¦¤¿¤á¤Î¸°¤òÍ׵᤹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ +は、鍵サーバに安全な通信を行うための鍵を要求するために使用される。 -´Ø¿ô +関数 .BR key_setsecret () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú UID ¤ËÂФ·¤Æ¸°¤òÀßÄꤹ¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ +は、呼び出し元プロセスの実効 UID に対して鍵を設定するために使用される。 -´Ø¿ô +関数 .BR key_secretkey_is_set () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú UID ¤ËÂФ·¤Æ¸°¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò -Ä´¤Ù¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤ÏÀ®¸ù¤·¤¿¾ì¹ç 1 ¤ò¡¢¼ºÇÔ¤·¤¿¾ì¹ç 0 ¤òÊÖ¤¹¡£ -.SH Ãí°Õ -¤³¤³¤Ç¤Ï 2 ¼ïÎà¤Î°Å¹æÊý¼°¤¬Åо줹¤ë¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -°ì¤Ä¤Ï¸ø³«¸°¤ÈÈëÌ©¸°¤ò»ÈÍѤ¹¤ëÈóÂоθ°°Å¹æ¤Ç¤¢¤ê¡¢ -¤â¤¦°ì¤Ä¤ÏÂоθ°°Å¹æ¤Ç¤¢¤ë 64 ¥Ó¥Ã¥È DES ¤Ç¤¢¤ë¡£ +は、呼び出し元プロセスの実効 UID に対して鍵が設定されているかどうかを +調べるために使用される。 +.SH 返り値 +これらの関数は成功した場合 1 を、失敗した場合 0 を返す。 +.SH 注意 +ここでは 2 種類の暗号方式が登場することに注意すること。 +一つは公開鍵と秘密鍵を使用する非対称鍵暗号であり、 +もう一つは対称鍵暗号である 64 ビット DES である。 .PP -¤³¤ì¤é¤Î´Ø¿ô¤Ï Linux/Doors-project ¤ÎÀ®²Ì¤Î°ìÉô¤À¤Ã¤¿¤¬¡¢ -¸½ºß¤Þ¤Ç¤Ë³ºÅö²Õ½ê¤Ï¤¹¤Ù¤ÆÇË´þ¤µ¤ì¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +これらの関数は Linux/Doors-project の成果の一部だったが、 +現在までに該当箇所はすべて破棄された。 +.SH 関連項目 .BR crypt (3) diff --git a/release/man3/ldexp.3 b/release/man3/ldexp.3 index f9418d8a..30475a72 100644 --- a/release/man3/ldexp.3 +++ b/release/man3/ldexp.3 @@ -39,9 +39,9 @@ .\" Updated 2008-09-18, Akihiro MOTOKI .\" .TH LDEXP 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -ldexp, ldexpf, ldexpl \- ÉâÆ°¾®¿ôÅÀ¼Â¿ô¤È 2 ¤ÎÀ°¿ô¾è¤È¤ÎÀѤò·×»»¤¹¤ë -.SH ½ñ¼° +.SH 名前 +ldexp, ldexpf, ldexpl \- 浮動小数点実数と 2 の整数乗との積を計算する +.SH 書式 .nf .B #include .sp @@ -52,12 +52,12 @@ ldexp, ldexpf, ldexpl \- .BI "long double ldexpl(long double " x ", int " exp ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -71,70 +71,70 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR ldexp () -´Ø¿ô¤Ï¡¢ÉâÆ°¾®¿ôÅÀ¼Â¿ô +関数は、浮動小数点実数 .I x -¤È 2 ¤Î +と 2 の .I exp -¾è¤È¤ÎÀѤòÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +乗との積を返す。 +.SH 返り値 +成功すると、これらの関数は .I "x * (2^exp)" -¤òÊÖ¤¹¡£ +を返す。 .I exp -¤¬¥¼¥í¤Î¾ì¹ç¡¢ +がゼロの場合、 .I x -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤Î¾ì¹ç¡¢ -Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大 (負の無限大) の場合、 +正の無限大 (負の無限大) が返される。 -·ë²Ì¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ -ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢¥¼¥í¤¬ÊÖ¤µ¤ì¤ë¡£ +結果がアンダーフローする場合、 +範囲エラー (range error) が発生し、ゼロが返される。 -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +結果がオーバーフローする場合、範囲エラーが発生し、 +各関数はそれぞれ .BR HUGE_VAL , .BR HUGE_VALF , .B HUGE_VALL -¤òÊÖ¤¹¡£ÊÖ¤êÃͤÎÉä¹æ¤Ï +を返す。返り値の符号は .I x -¤ÈƱ¤¸¤È¤Ê¤ë¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +と同じとなる。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ +範囲エラー: 結果のオーバーフロー .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤Î¥¢¥ó¥À¡¼¥Õ¥í¡¼ +範囲エラー: 結果のアンダーフロー .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -¥¢¥ó¥À¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +アンダーフロー浮動小数点例外 .RB ( FE_UNDERFLOW ) -¤¬¾å¤¬¤ë¡£ -.SH ½àµò +が上がる。 +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 +.SH 関連項目 .BR frexp (3), .BR modf (3), .BR scalbln (3) diff --git a/release/man3/lgamma.3 b/release/man3/lgamma.3 index 78e78dcd..d9e1ac25 100644 --- a/release/man3/lgamma.3 +++ b/release/man3/lgamma.3 @@ -13,10 +13,10 @@ .\" Updated 2008-09-18, Akihiro MOTOKI .\" .TH LGAMMA 3 2010-09-11 "" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 lgamma, lgammaf, lgammal, lgamma_r, lgammaf_r, lgammal_r, signgam \- -¥¬¥ó¥Þ´Ø¿ô¤ÎÂпô¤ò·×»»¤¹¤ë -.SH ½ñ¼° +ガンマ関数の対数を計算する +.SH 書式 .nf .B #include .sp @@ -35,12 +35,12 @@ lgamma, lgammaf, lgammal, lgamma_r, lgammaf_r, lgammal_r, signgam \- .BI "extern int " signgam ; .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -73,104 +73,104 @@ _BSD_SOURCE || _SVID_SOURCE _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE .RE .ad b -.SH ÀâÌÀ -¥¬¥ó¥Þ´Ø¿ô¤ÎÄêµÁ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +.SH 説明 +ガンマ関数の定義については、 .BR tgamma (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -´Ø¿ô +関数 .BR lgamma () -¤Ï¡¢¥¬¥ó¥Þ´Ø¿ô¤ÎÀäÂÐÃͤμ«Á³Âпô¤òÊÖ¤¹¡£ -¥¬¥ó¥Þ´Ø¿ô¤ÎÉä¹æ¤Ï¡¢ +は、ガンマ関数の絶対値の自然対数を返す。 +ガンマ関数の符号は、 .I -¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤ë extern int \fIsigngam\fP ¤Ë³ÊǼ¤µ¤ì¤ë¡£ -³ÊǼ¤µ¤ì¤ëÃͤϡ¢¥¬¥ó¥Þ´Ø¿ô¤¬Àµ¤Þ¤¿¤Ï 0 ¤Î¾ì¹ç 1¡¢ -Éé¤Î¾ì¹ç \-1 ¤Ç¤¢¤ë¡£ +で宣言されている extern int \fIsigngam\fP に格納される。 +格納される値は、ガンマ関数が正または 0 の場合 1、 +負の場合 \-1 である。 .PP .I signgam -¤È¤¤¤¦¸ÇÄꤵ¤ì¤¿¾ì½ê¤ò»È¤¦¤³¤È¤Ï¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢ -´Ø¿ô +という固定された場所を使うことはスレッドセーフではないので、 +関数 .BR lgamma_r () -¤Ê¤É¤¬Æ³Æþ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ç¤Ï¡¢Éä¹æ¤Ï°ú¤­¿ô +などが導入されている。 +これらの関数では、符号は引き数 .I signp -·Ðͳ¤ÇÊÖ¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï Gamma(x) ¤Î¼«Á³Âпô¤òÊÖ¤¹¡£ +経由で返される。 +.SH 返り値 +成功すると、これらの関数は Gamma(x) の自然対数を返す。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬ 1 ¤« 2 ¤Î¾ì¹ç¡¢+0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が 1 か 2 の場合、+0 が返される。 .I x -¤¬Àµ¤Î̵¸ÂÂ礫Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ -Àµ¤Î̵¸ÂÂ礬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大か負の無限大の場合、 +正の無限大が返される。 .I x -¤¬Àµ¤Ç¤Ê¤¤À°¿ô¤Î¾ì¹ç¡¢¶Ë¥¨¥é¡¼ (pole error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +が正でない整数の場合、極エラー (pole error) が発生し、 +各関数はそれぞれ .RB + HUGE_VAL , .RB + HUGE_VALF , .RB + HUGE_VALL -¤òÊÖ¤¹¡£ +を返す。 .\" e.g., lgamma(DBL_MAX) -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +結果がオーバーフローする場合、範囲エラーが発生し、 +各関数はそれぞれ .BR HUGE_VAL , .BR HUGE_VALF , .B HUGE_VALL -¤òÊÖ¤¹¡£ÊÖ¤êÃͤˤϿô³ØŪ¤ËÀµ¤·¤¤Éä¹æ¤¬ÉÕÍ¿¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +を返す。返り値には数学的に正しい符号が付与される。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -¶Ë¥¨¥é¡¼: \fIx\fP ¤¬Àµ¤Ç¤Ê¤¤À°¿ô +極エラー: \fIx\fP が正でない整数 .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë (¡Ö¥Ð¥°¡×¤ÎÀá¤ò»²¾È)¡£ -0 ¤Ë¤è¤ë½ü»» (divide-by-zero) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される (「バグ」の節を参照)。 +0 による除算 (divide-by-zero) 浮動小数点例外 .RB ( FE_DIVBYZERO ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ +範囲エラー: 結果のオーバーフロー .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .\" glibc (as at 2.8) also supports an inexact .\" exception for various cases. -.SH ½àµò -´Ø¿ô +.SH 準拠 +関数 .BR lgamma () -¤Ï C99 ¤È POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は C99 と POSIX.1-2001 で規定されている。 .I signgam -¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¤¬¡¢C99 ¤Ë¤Ï¤Ê¤¤¡£ -´Ø¿ô +は POSIX.1-2001 で規定されているが、C99 にはない。 +関数 .BR lgamma_r () -¤ÏÈóɸ½à¤À¤¬¡¢¤¤¤¯¤Ä¤«¤Î¾¤Î¥·¥¹¥Æ¥à¤Ë¤â¸ºß¤¹¤ë¡£ -.SH ¥Ð¥° +は非標準だが、いくつかの他のシステムにも存在する。 +.SH バグ .\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=6777 -glibc 2.9 ¤È¤½¤ì°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ -¶Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¡¢POSIX ¤ÇÍ׵ᤵ¤ì¤Æ¤¤¤ë +glibc 2.9 とそれ以前のバージョンでは、 +極エラーが発生した場合、POSIX で要求されている .B ERANGE -¤Ç¤Ï¤Ê¤¯ +ではなく .B EDOM -¤¬ +が .I errno -¤ËÀßÄꤵ¤ì¤ë¡£ -POSIX.1 ¤Ç¤Ï¡¢ +に設定される。 +POSIX.1 では、 .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¤Ù¤­¤È¤µ¤ì¤Æ¤¤¤ë¡£ -¥Ð¡¼¥¸¥ç¥ó 2.10 °Ê¹ß¤Î glibc ¤Ç¤Ï¡¢Àµ¤·¤¤Æ°ºî¤ò¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +が設定されるべきとされている。 +バージョン 2.10 以降の glibc では、正しい動作をする。 +.SH 関連項目 .BR tgamma (3) diff --git a/release/man3/localeconv.3 b/release/man3/localeconv.3 index 24cd6d23..a25833b7 100644 --- a/release/man3/localeconv.3 +++ b/release/man3/localeconv.3 @@ -28,39 +28,39 @@ .\" by YOSHINO Takashi .\" .TH LOCALECONV 3 1993-04-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -localeconv \- ¿ôÃͤ˴ؤ¹¤ë½ñ¼°¾ðÊó¤òÆÀ¤ë -.SH ½ñ¼° +.SH 名前 +localeconv \- 数値に関する書式情報を得る +.SH 書式 .nf .B #include .sp .B struct lconv *localeconv(void); .fi -.SH ÀâÌÀ +.SH 説明 .BR localeconv () -´Ø¿ô¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¾ðÊó¤òɽ¤¹ +関数は、現在のロケール情報を表す .I struct lconv -¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤Î¹½Â¤ÂÎ¤Ï +へのポインタを返す。 +この構造体は .BR locale (7) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤ª¤ê¡¢¥í¥±¡¼¥ë¡¦¥«¥Æ¥´¥ê +で説明されており、ロケール・カテゴリ .B LC_NUMERIC -¤È +と .B LC_MONETARY -¤Ë´ØÏ¢¤¹¤ë¤¹¤Ù¤Æ¤ÎÃͤò´Þ¤ó¤Ç¤¤¤ë¡£ -¤³¤Î´Ø¿ô¤òÍѤ¤¤ë¥×¥í¥°¥é¥à¤Ï¡¢¤ª¤½¤é¤¯Æ±»þ¤Ë +に関連するすべての値を含んでいる。 +この関数を用いるプログラムは、おそらく同時に .BR printf (3) -¤ä +や .BR strfmon (3) -¤Î¤è¤¦¤Ê´Ø¿ô¤âÍѤ¤¤ë¤À¤í¤¦¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¸½ºß»ÈÍѤµ¤ì¤Æ¤¤¤ë¥í¥±¡¼¥ë¤Ë½¾¤Ã¤¿Æ°ºî¤ò¤¹¤ë¡£ -.SH ½àµò +のような関数も用いるだろう。 +これらの関数は、現在使用されているロケールに従った動作をする。 +.SH 準拠 C89, C99 -.SH ¥Ð¥° +.SH バグ .BR printf (3) -¥°¥ë¡¼¥×¤Î´Ø¿ô¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤òÈ¿±Ç¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¤·¡¢ -¤·¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +グループの関数は現在のロケールを反映するかもしれないし、 +しないかもしれない。 +.SH 関連項目 .BR locale (1), .BR localedef (1), .BR isalpha (3), diff --git a/release/man3/lockf.3 b/release/man3/lockf.3 index d10cd635..5af73d78 100644 --- a/release/man3/lockf.3 +++ b/release/man3/lockf.3 @@ -26,24 +26,24 @@ .\" Updated & Modified Mon Jul 15 02:10:29 JST 2002 by Yuichi SATO .\" Updated 2010-04-18, Akihiro MOTOKI , LDP v3.24 .\" -.\"WORD: apply ŬÍÑ -.\"WORD: remove ²ò½ü -.\"WORD: exclusive ÇÓ¾ -.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿ +.\"WORD: apply 適用 +.\"WORD: remove 解除 +.\"WORD: exclusive 排他 +.\"WORD: descriptor ディスクリプタ .\"WORD: .\" .TH LOCKF 3 2011-09-11 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -lockf \- ¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë POSIX ¥í¥Ã¥¯¤ÎŬÍÑ¡¦¥Æ¥¹¥È¡¦²ò½ü¤ò¹Ô¤¦ -.SH ½ñ¼° +.SH 名前 +lockf \- オープンされたファイルに対する POSIX ロックの適用・テスト・解除を行う +.SH 書式 .B #include .sp .BI "int lockf(int " fd ", int " cmd ", off_t " len ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR lockf (): @@ -53,140 +53,140 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .RE .ad -.SH ÀâÌÀ -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥»¥¯¥·¥ç¥ó¤ËÂФ·¤Æ¡¢ -POSIX ¥í¥Ã¥¯¤ÎŬÍÑ¡¦¥Æ¥¹¥È¡¦²ò½ü¤ò¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¤Ï +.SH 説明 +オープンされたファイルのセクションに対して、 +POSIX ロックの適用・テスト・解除をする。 +ファイルは .I fd -¤Ç»ØÄꤵ¤ì¤ë¡£ +で指定される。 .I fd -¤Ï½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤·¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ -¥¢¥¯¥·¥ç¥ó¤Ï +は書き込みのためにオープンしたファイルディスクリプタである。 +アクションは .I cmd -¤Ç»ØÄꤵ¤ì¤ë¡£ +で指定される。 .I pos -¤ò¸½ºß¤Î¥Õ¥¡¥¤¥ë°ÌÃ֤Ȥ¹¤ë¤È¡¢ +を現在のファイル位置とすると、 .I len -¤¬Àµ¤Î¾ì¹ç¡¢¥»¥¯¥·¥ç¥ó¤Ï¥Ð¥¤¥È°ÌÃÖ +が正の場合、セクションはバイト位置 .IR pos .. pos + len \-1 -¤È¤Ê¤ê¡¢ +となり、 .I len -¤¬Éé¤Î¾ì¹ç¡¢¥»¥¯¥·¥ç¥ó¤Ï¥Ð¥¤¥È°ÌÃÖ +が負の場合、セクションはバイト位置 .IR pos - len .. pos \-1 -¤È¤Ê¤ë¡£ +となる。 .I len -¤¬ 0 ¤Î¾ì¹ç¡¢¥»¥¯¥·¥ç¥ó¤Ï¸½ºß¤Î¥Õ¥¡¥¤¥ë°ÌÃÖ¤«¤é̵¸ÂÂç¤Þ¤Ç¤È¤Ê¤ë -(¤Ä¤Þ¤ê¸½ºß¤Î¡¢¤¢¤ë¤¤¤ÏÊѹ¹¤µ¤ì¤¿¾ì¹ç¤Ï¾­Íè¤Î¡¢¥Õ¥¡¥¤¥ë½ªÃ¼°ÌÃÖ¤Þ¤Ç)¡£ -¤É¤Î¾ì¹ç¤Ë¤ª¤¤¤Æ¤â¡¢¥»¥¯¥·¥ç¥ó¤Ï°ÊÁ°¤Î¥Õ¥¡¥¤¥ë½ªÃ¼¤è¤ê¤â³ÈÂ礵¤ì¤¦¤ë¡£ +が 0 の場合、セクションは現在のファイル位置から無限大までとなる +(つまり現在の、あるいは変更された場合は将来の、ファイル終端位置まで)。 +どの場合においても、セクションは以前のファイル終端よりも拡大されうる。 .LP -Linux ¤Ç¤Ï¡¢ +Linux では、 .BR lockf () -¤Ïñ¤Ë +は単に .BR fcntl (2) -¤Î¥í¥Ã¥¯¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¢¤ë¡£ -¿¤¯¤Î¾¤Î¥·¥¹¥Æ¥à¤Ç +のロックへのインターフェースである。 +多くの他のシステムで .BR lockf () -¤Ï¤³¤Î¤è¤¦¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -POSIX.1-2001 ¤Ç¤Ï +はこのように実装されているが、 +POSIX.1-2001 では .BR lockf () -¤È +と .BR fcntl (2) -¤Î¥í¥Ã¥¯¤È¤Î´Ø·¸¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤ª¤½¤é¤¯¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ +のロックとの関係は規定されていない。 +おそらく、移植性が必要なアプリケーションでは、 .BR lockf () -¤È +と .BR fcntl (2) -¤Î¥í¥Ã¥¯¤òº®¤¼¤Æ¸Æ¤Ó½Ð¤¹¤Î¤ÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤í¤¦¡£ +のロックを混ぜて呼び出すのは避けるべきであろう。 .LP -Í­¸ú¤Ê¥ª¥×¥·¥ç¥ó¤ò°Ê²¼¤Ëµó¤²¤ë¡£ +有効なオプションを以下に挙げる。 .TP .B F_LOCK -¥Õ¥¡¥¤¥ë¤Î»ØÄꤵ¤ì¤¿¥»¥¯¥·¥ç¥ó¤ËÇÓ¾¥í¥Ã¥¯¤òÀßÄꤹ¤ë¡£ -¤½¤Î¥»¥¯¥·¥ç¥ó (¤Î°ìÉô) ¤¬´û¤Ë¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢ -Á°¤Î¥í¥Ã¥¯¤¬²ò½ü¤µ¤ì¤ë¤Þ¤Ç´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤¬Á°¤Ë¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¥»¥¯¥·¥ç¥ó¤È½Å¤Ê¤Ã¤¿¾ì¹ç¡¢ -2 ¤Ä¤Î¥»¥¯¥·¥ç¥ó¤Ï·ë¹ç¤µ¤ì¤ë¡£ -¥í¥Ã¥¯¤òÊÝ»ý¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤¬¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¯¥í¡¼¥º¤¹¤ë¤È¡¢ -¥Õ¥¡¥¤¥ë¥í¥Ã¥¯¤Ï²òÊü¤µ¤ì¤ë¡£ -»Ò¥×¥í¥»¥¹¤Ï¥í¥Ã¥¯¤ò·Ñ¾µ¤·¤Ê¤¤¡£ +ファイルの指定されたセクションに排他ロックを設定する。 +そのセクション (の一部) が既にロックされていた場合、 +前のロックが解除されるまで関数の呼び出しがブロックされる。 +このセクションが前にロックされているセクションと重なった場合、 +2 つのセクションは結合される。 +ロックを保持しているプロセスが、 +そのファイルのファイルディスクリプタをクローズすると、 +ファイルロックは解放される。 +子プロセスはロックを継承しない。 .TP .B F_TLOCK .B F_LOCK -¤ÈƱÍͤǤ¢¤ë¤¬¡¢¥Õ¥¡¥¤¥ë¤¬´û¤Ë¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤Ï¥Ö¥í¥Ã¥¯¤ò¹Ô¤ï¤º¤Ë¥¨¥é¡¼¤òÊÖ¤¹¡£ +と同様であるが、ファイルが既にロックされている場合、 +関数の呼び出しはブロックを行わずにエラーを返す。 .TP .B F_ULOCK -¥Õ¥¡¥¤¥ë¤Î»ØÄꤵ¤ì¤¿¥»¥¯¥·¥ç¥ó¤Î¥í¥Ã¥¯¤ò²ò½ü¤¹¤ë¡£ -¤³¤ì¤Ë¤è¤ê¥í¥Ã¥¯¤µ¤ì¤¿¥»¥¯¥·¥ç¥ó¤¬ 2 ¤Ä¤Ëʬ³ä¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +ファイルの指定されたセクションのロックを解除する。 +これによりロックされたセクションが 2 つに分割されるかもしれない。 .TP .B F_TEST -¼¡¤Î¤è¤¦¤Ë¥í¥Ã¥¯¤Î¥Æ¥¹¥È¤ò¤¹¤ë¡£ -»ØÄꤵ¤ì¤¿¥»¥¯¥·¥ç¥ó¤¬¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ -¤³¤Î¥×¥í¥»¥¹¤Ë¤è¤ê¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢0 ¤òÊÖ¤¹¡£ -¾¤Î¥×¥í¥»¥¹¤¬¥í¥Ã¥¯¤òÊÝ»ý¤·¤Æ¤¤¤ë¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +次のようにロックのテストをする。 +指定されたセクションがロックされていないか、 +このプロセスによりロックされている場合、0 を返す。 +他のプロセスがロックを保持している場合、\-1 を返し、 .I errno -¤ò +を .B EAGAIN -(¤¤¤¯¤Ä¤«¤Î¾¤Î¥·¥¹¥Æ¥à¤Ç¤Ï +(いくつかの他のシステムでは .BR EACCES ) -¤ËÀßÄꤹ¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +に設定する。 +.SH 返り値 +成功した場合、0 が返される。 +エラーの場合、\-1 が返され、 .I errno -¤¬¥¨¥é¡¼¤ËÂбþ¤·¤¿ÃͤËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +がエラーに対応した値に設定される。 +.SH エラー .TP -.BR EACCES " ¤â¤·¤¯¤Ï " EAGAIN -¥í¥Ã¥¯¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡¢ +.BR EACCES " もしくは " EAGAIN +ロックされたファイルに対して、 .B F_TLOCK -¤Þ¤¿¤Ï +または .B F_TEST -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¡£ -¤Þ¤¿¤Ï¡¢¥Õ¥¡¥¤¥ë¤¬Â¾¤Î¥×¥í¥»¥¹¤Ë¤è¤ê¥á¥â¥ê¡¼¥Þ¥Ã¥×¤µ¤ì¤Æ¤ª¤ê¡¢ -»ØÄꤵ¤ì¤¿Áàºî¤¬¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¡£ +が指定されている。 +または、ファイルが他のプロセスによりメモリーマップされており、 +指定された操作が禁止されている。 .TP .B EBADF .I fd -¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢ +がオープンされたファイルのディスクリプタではない。 +または、 .I cmd -¤¬ +が .B F_LOCK -¤« +か .B F_TLOCK -¤Ç¡¢ +で、 .I fd -¤¬½ñ¤­¹þ¤ß²Äǽ¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が書き込み可能なファイルディスクリプタでない。 .TP .B EDEADLK -¥³¥Þ¥ó¥É¤¬ +コマンドが .B T_LOCK -¤Ç¤¢¤ê¡¢¤³¤Î¥í¥Ã¥¯Áàºî¤ò¹Ô¤¦¤È¥Ç¥Ã¥É¥í¥Ã¥¯¤¬È¯À¸¤·¤Æ¤·¤Þ¤¦¡£ +であり、このロック操作を行うとデッドロックが発生してしまう。 .TP .B EINVAL .I fd -¤Ë̵¸ú¤ÊÁàºî¤¬»ØÄꤵ¤ì¤¿¡£ +に無効な操作が指定された。 .TP .B ENOLCK -Èó¾ï¤Ë¿¤¯¤Î¥»¥°¥á¥ó¥È¥í¥Ã¥¯¤¬³«¤«¤ì¡¢¥í¥Ã¥¯¥Æ¡¼¥Ö¥ë¤¬°ìÇդǤ¢¤ë¡£ -.SH ½àµò +非常に多くのセグメントロックが開かれ、ロックテーブルが一杯である。 +.SH 準拠 SVr4, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fcntl (2), .BR flock (2) .br -¥«¡¼¥Í¥ë¥½¡¼¥¹¤Î +カーネルソースの .I Documentation/filesystems -¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë +ディレクトリにある .I locks.txt -¤È +と .I mandatory-locking.txt -(°ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï +(以前のカーネルでは、これらのファイルは .I Documentation -¥Ç¥£¥ì¥¯¥È¥êľ²¼¤Ë¤¢¤ê¡¢ +ディレクトリ直下にあり、 .I mandatory-locking.txt -¤Ï +は .I mandatory.txt -¤È¤¤¤¦Ì¾Á°¤Ç¤¢¤Ã¤¿¡£) +という名前であった。) diff --git a/release/man3/log.3 b/release/man3/log.3 index 3e53b1da..47b869e6 100644 --- a/release/man3/log.3 +++ b/release/man3/log.3 @@ -38,9 +38,9 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH LOG 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -log, logf, logl \- ¼«Á³Âпô´Ø¿ô -.SH ½ñ¼° +.SH 名前 +log, logf, logl \- 自然対数関数 +.SH 書式 .nf .B #include .sp @@ -51,12 +51,12 @@ log, logf, logl \- .BI "long double logl(long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -70,70 +70,70 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR log () -´Ø¿ô¤Ï \fIx\fP ¤Î¼«Á³Âпô¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +関数は \fIx\fP の自然対数を返す。 +.SH 返り値 +成功すると、これらの関数は .I x -¤Î¼«Á³Âпô¤òÊÖ¤¹¡£ +の自然対数を返す。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬ 1 ¤Î¾ì¹ç¡¢+0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +が 1 の場合、+0 が返される。 .I x -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢Àµ¤Î̵¸ÂÂ礬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大の場合、正の無限大が返される。 .I x -¤¬ 0 ¤Î¾ì¹ç¡¢¶Ë¥¨¥é¡¼ (pole error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +が 0 の場合、極エラー (pole error) が発生し、 +各関数はそれぞれ .RB - HUGE_VAL , .RB - HUGE_VALF , .RB - HUGE_VALL -¤òÊÖ¤¹¡£ +を返す。 .I x -¤¬Éé¤Î¾ì¹ç (Éé¤Î̵¸ÂÂç¤â´Þ¤à)¡¢Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ -NaN (not a number) ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +が負の場合 (負の無限大も含む)、領域エラー (domain error) が発生し、 +NaN (not a number) が返される。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬Éé¤Ç¤¢¤ë +領域エラー (domain error): \fIx\fP が負である .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë¡£ -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP -¶Ë¥¨¥é¡¼ (pole error): \fIx\fP ¤¬ 0 ¤Ç¤¢¤ë +極エラー (pole error): \fIx\fP が 0 である .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -0 ¤Ë¤è¤ë½ü»» (divide-by-zero) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +0 による除算 (divide-by-zero) 浮動小数点例外 .RB ( FE_DIVBYZERO ) -¤¬¾å¤¬¤ë¡£ -.SH ½àµò +が上がる。 +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ¥Ð¥° -glibc 2.5 °ÊÁ°¤Ç¤Ï¡¢ -NaN ¤ËÂФ·¤Æ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 +.SH バグ +glibc 2.5 以前では、 +NaN に対して .BR log () -¤ò¤È¤ë¤È¡¢´Ö°ã¤Ã¤ÆÉÔÀµÉâÆ°¾®¿ôÅÀÎã³° +をとると、間違って不正浮動小数点例外 .RB ( FE_INVALID ) -¤¬È¯À¸¤·¤Æ¤¤¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +が発生していた。 +.SH 関連項目 .BR cbrt (3), .BR clog (3), .BR log10 (3), diff --git a/release/man3/log10.3 b/release/man3/log10.3 index 21b98b39..c149b66d 100644 --- a/release/man3/log10.3 +++ b/release/man3/log10.3 @@ -38,9 +38,9 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH LOG10 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -log10, log10f, log10l \- Ä줬 10 ¤ÎÂпô´Ø¿ô -.SH ½ñ¼° +.SH 名前 +log10, log10f, log10l \- 底が 10 の対数関数 +.SH 書式 .nf .B #include .sp @@ -51,12 +51,12 @@ log10, log10f, log10l \- .BI "long double log10l(long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -70,31 +70,31 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR log10 () -´Ø¿ô¤Ï \fIx\fP ¤Î¾ïÍÑÂпô (Ä줬 10 ¤ÎÂпô) ¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +関数は \fIx\fP の常用対数 (底が 10 の対数) を返す。 +.SH 返り値 +成功すると、これらの関数は .I x -¤Î¾ïÍÑÂпô (Ä줬 10 ¤ÎÂпô) ¤òÊÖ¤¹¡£ +の常用対数 (底が 10 の対数) を返す。 .I x -¤¬ 0¡¢1¡¢É顢̵¸ÂÂç¡¢NaN ¤Ê¤É¤Î¤µ¤Þ¤¶¤Þ¤ÊÆÃÊ̤ʾõ¶·¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が 0、1、負、無限大、NaN などのさまざまな特別な状況については、 .BR log (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +を参照のこと。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 -¤³¤ì¤é¤Î´Ø¿ô¤ÇȯÀ¸¤¹¤ë¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +これらの関数で発生するエラーについては、 .BR log (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ½àµò +を参照のこと。 +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 +.SH 関連項目 .BR cbrt (3), .BR clog10 (3), .BR exp10 (3), diff --git a/release/man3/log1p.3 b/release/man3/log1p.3 index abe14266..5cf71e25 100644 --- a/release/man3/log1p.3 +++ b/release/man3/log1p.3 @@ -32,9 +32,9 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH LOG1P 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -log1p, log1pf, log1pl \- °ú¤­¿ô¤Ë 1 ¤ò²Ã¤¨¤¿ÃͤÎÂпô -.SH ½ñ¼° +.SH 名前 +log1p, log1pf, log1pl \- 引き数に 1 を加えた値の対数 +.SH 書式 .nf .B #include .sp @@ -45,12 +45,12 @@ log1p, log1pf, log1pl \- .BI "long double log1pl(long double " x ); .sp .fi -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -74,73 +74,73 @@ or .I cc\ -std=c99 .RE .ad b -.SH ÀâÌÀ +.SH 説明 .I log1p(x) -¤Ï°Ê²¼¤ÈÅù²Á¤ÊÃͤòÊÖ¤¹¡£ +は以下と等価な値を返す。 .nf log (1 + \fIx\fP) .fi -\fIx\fP ¤ÎÃͤ¬ 0 ¤Ë¶á¤¤¾ì¹ç¤Ç¤âÀµ³Î¤Ë·×»»¤Ç¤­¤ëÊýË¡¤¬ÍѤ¤¤é¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +\fIx\fP の値が 0 に近い場合でも正確に計算できる方法が用いられる。 +.SH 返り値 +成功すると、これらの関数は .I "(1\ +\ x)" -¤Î¼«Á³Âпô¤òÊÖ¤¹¡£ +の自然対数を返す。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢Àµ¤Î̵¸ÂÂ礬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大の場合、正の無限大が返される。 .I x -¤¬ \-1 ¤Î¾ì¹ç¡¢¶Ë¥¨¥é¡¼ (pole error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +が \-1 の場合、極エラー (pole error) が発生し、 +各関数はそれぞれ .RB - HUGE_VAL , .RB - HUGE_VALF , .RB - HUGE_VALL -¤òÊÖ¤¹¡£ +を返す。 .I x -¤¬ \-1 ¤è¤ê¾®¤µ¤¤¾ì¹ç (Éé¤Î̵¸ÂÂç¤â´Þ¤à)¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ -NaN (not a number) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が \-1 より小さい場合 (負の無限大も含む)、 +領域エラー (domain error) が発生し、 +NaN (not a number) が返される。 .\" POSIX.1 specifies a possible range error if x is subnormal .\" glibc 2.8 doesn't do this -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬ \-1 ¤è¤ê¾®¤µ¤¤ +領域エラー (domain error): \fIx\fP が \-1 より小さい .\" .I errno .\" is set to .\" .BR EDOM . -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP -¶Ë¥¨¥é¡¼ (pole error): \fIx\fP ¤¬ \-1 ¤Ç¤¢¤ë +極エラー (pole error): \fIx\fP が \-1 である .\" .I errno .\" is set to .\" .BR ERANGE . -0 ¤Ë¤è¤ë½ü»» (divide-by-zero) ÉâÆ°¾®¿ôÅÀÎã³° +0 による除算 (divide-by-zero) 浮動小数点例外 .RB ( FE_DIVBYZERO ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" log(), log2(), log10() do set errno .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6792 -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .\" BSD -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR exp (3), .BR expm1 (3), .BR log (3) diff --git a/release/man3/log2.3 b/release/man3/log2.3 index f899f9c3..d3af5d26 100644 --- a/release/man3/log2.3 +++ b/release/man3/log2.3 @@ -39,9 +39,9 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH LOG2 3 2010-09-12 "" "Linux Programmer's Manual" -.SH ̾Á° -log2, log2f, log2l \- Ä줬 2 ¤ÎÂпô´Ø¿ô -.SH ½ñ¼° +.SH 名前 +log2, log2f, log2l \- 底が 2 の対数関数 +.SH 書式 .nf .B #include .sp @@ -52,12 +52,12 @@ log2, log2f, log2l \- .BI "long double log2l(long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -71,33 +71,33 @@ or .I cc\ -std=c99 .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR log2 () -´Ø¿ô¤ÏÄì¤ò 2 ¤È¤¹¤ë \fIx\fP ¤ÎÂпô¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +関数は底を 2 とする \fIx\fP の対数を返す。 +.SH 返り値 +成功すると、これらの関数は .I x -¤ÎÄì¤ò 2 ¤È¤¹¤ëÂпô¤òÊÖ¤¹¡£ +の底を 2 とする対数を返す。 .I x -¤¬ 0¡¢1¡¢É顢̵¸ÂÂç¡¢NaN ¤Ê¤É¤Î¤µ¤Þ¤¶¤Þ¤ÊÆÃÊ̤ʾõ¶·¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が 0、1、負、無限大、NaN などのさまざまな特別な状況については、 .BR log (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +を参照のこと。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 -¤³¤ì¤é¤Î´Ø¿ô¤ÇȯÀ¸¤¹¤ë¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +これらの関数で発生するエラーについては、 .BR log (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +を参照のこと。 +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +版の関数は SVr4, 4.3BSD にも準拠している。 +.SH 関連項目 .BR cbrt (3), .BR clog2 (3), .BR log (3), diff --git a/release/man3/logb.3 b/release/man3/logb.3 index 99167a1c..b4e7c214 100644 --- a/release/man3/logb.3 +++ b/release/man3/logb.3 @@ -30,14 +30,14 @@ .\" by Yuichi SATO .\" Updated 2008-09-16, Akihiro MOTOKI .\" -.\"WORD: exponent »Ø¿ôÉô -.\"WORD: radix ´ð¿ô -.\"WORD: subnormal ÈóÀµµ¬²½¤Î +.\"WORD: exponent 指数部 +.\"WORD: radix 基数 +.\"WORD: subnormal 非正規化の .\" .TH LOGB 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -logb, logbf, logbl \- ÉâÆ°¾®¿ôÅÀ¿ô¤Î»Ø¿ô¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +logb, logbf, logbl \- 浮動小数点数の指数を取得する +.SH 書式 .B #include .sp .BI "double logb(double " x ); @@ -46,12 +46,12 @@ logb, logbf, logbl \- .br .BI "long double logbl(long double " x ); .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -75,75 +75,75 @@ or .I cc\ -std=c99 .RE .ad b -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ +.SH 説明 +これらの関数は、 .I x -¤ÎÉâÆ°¾®¿ôÅÀ¤ÎÆâÉôɽ¸½¤«¤é»Ø¿ôÉô¤òÃê½Ð¤·¡¢ÉâÆ°¾®¿ôÅÀ¿ôÃͤȤ·¤ÆÊÖ¤¹¡£ +の浮動小数点の内部表現から指数部を抽出し、浮動小数点数値として返す。 .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëÀ°¿ôÄê¿ô +で定義されている整数定数 .B FLT_RADIX -¤Ï¡¢¥·¥¹¥Æ¥à¤ÎÉâÆ°¾®¿ôÅÀɽ¸½¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë´ð¿ô¤òɽ¤¹¡£ +は、システムの浮動小数点表現で使用されている基数を表す。 .B FLT_RADIX -¤¬ 2 ¤Î¾ì¹ç¡¢ +が 2 の場合、 .BI logb( x ) -¤Ï +は .BI floor(log2( x ))\fR -¤ÈÅù¤·¤¤¤¬¡¢¸å¼Ô¤ÎÊý¤¬¤¿¤Ö¤ó¹â®¤Ç¤¢¤ë¡£ +と等しいが、後者の方がたぶん高速である。 .LP .I x -¤¬ÈóÀµµ¬²½¿ô¤Î¾ì¹ç¡¢ +が非正規化数の場合、 .BR logb () -¤Ï +は .I x -¤¬Àµµ¬²½¤µ¤ì¤¿¾ì¹ç¤Î»Ø¿ô¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +が正規化された場合の指数を返す。 +.SH 返り値 +成功すると、これらの関数は .I x -¤Î»Ø¿ôÉô¤òÊÖ¤¹¡£ +の指数部を返す。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬ 0 ¤Î¾ì¹ç¡¢¶Ë¥¨¥é¡¼ (pole error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +が 0 の場合、極エラー (pole error) が発生し、 +各関数はそれぞれ .RB - HUGE_VAL , .RB - HUGE_VALF , .RB - HUGE_VALL -¤òÊÖ¤¹¡£ +を返す。 .I x -¤¬Éé¤Î̵¸ÂÂ礫Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢Àµ¤Î̵¸ÂÂ礬ÊÖ¤µ¤ì¤ë¡£ -.\" .SH ÊÖ¤êÃÍ -.\" ¤³¤ì¤é¤Î´Ø¿ô¤Ï°ú¤­¿ô¤Î»Ø¿ôÉô¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +が負の無限大か正の無限大の場合、正の無限大が返される。 +.\" .SH 返り値 +.\" これらの関数は引き数の指数部を返す。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -¶Ë¥¨¥é¡¼ (pole error): \fIx\fP ¤¬ 0 ¤Ç¤¢¤ë +極エラー (pole error): \fIx\fP が 0 である .\" .I errno .\" is set to .\" .BR ERANGE . -0 ¤Ë¤è¤ë½ü»» (divide-by-zero) ÉâÆ°¾®¿ôÅÀÎã³° +0 による除算 (divide-by-zero) 浮動小数点例外 .RB ( FE_DIVBYZERO ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" log(), log2(), log10() do set errno .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6793 .\" -.\" .SH ÍúÎò +.\" .SH 履歴 .\" .BR logb () -.\" ´Ø¿ô¤Ï 4.3BSD ¤ÇƳÆþ¤µ¤ì¤¿¡£ -.\" 4.3BSD ¥Þ¥Ë¥å¥¢¥ë¤Î IEEE.3 ¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ½àµò +.\" 関数は 4.3BSD で導入された。 +.\" 4.3BSD マニュアルの IEEE.3 を参照すること。 +.SH 準拠 C99, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ilogb (3), .BR log (3) diff --git a/release/man3/login.3 b/release/man3/login.3 index 376c3a3f..8ff5a7b7 100644 --- a/release/man3/login.3 +++ b/release/man3/login.3 @@ -28,107 +28,107 @@ .\" Updated & Modified Sat Jan 15 06:38:41 JST 2005 by Yuichi SATO .\" .TH LOGIN 3 2004-05-06 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -login, logout \- utmp ¤È wtmp ¥¨¥ó¥È¥ê¤ò½ñ¤­¹þ¤à -.SH ½ñ¼° +.SH 名前 +login, logout \- utmp と wtmp エントリを書き込む +.SH 書式 .B #include .sp .BI "void login(const struct utmp *" ut ); .sp .BI "int logout(const char *" ut_line ); .sp -\fI\-lutil\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ -utmp ¥Õ¥¡¥¤¥ë¤Ï¸½ºß¥·¥¹¥Æ¥à¤ò»ÈÍѤ·¤Æ¤¤¤ë¥æ¡¼¥¶¤òµ­Ï¿¤¹¤ë¡£ -wtmp ¥Õ¥¡¥¤¥ë¤Ï¤¹¤Ù¤Æ¤Î¥í¥°¥¤¥ó¤È¥í¥°¥¢¥¦¥È¤òµ­Ï¿¤¹¤ë¡£ +\fI\-lutil\fP でリンクする。 +.SH 説明 +utmp ファイルは現在システムを使用しているユーザを記録する。 +wtmp ファイルはすべてのログインとログアウトを記録する。 .BR utmp (5) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .LP -´Ø¿ô +関数 .BR login () -¤ÏÍ¿¤¨¤é¤ì¤¿ \fIstruct utmp\fP +は与えられた \fIstruct utmp\fP .I ut -¤ò utmp ¤È wtmp ¥Õ¥¡¥¤¥ë¤ÎξÊý¤Ë½ñ¤­¹þ¤à¡£ +を utmp と wtmp ファイルの両方に書き込む。 .LP -´Ø¿ô +関数 .BR logout () -¤Ï utmp ¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë¥¨¥ó¥È¥ê¤ò¥¯¥ê¥¢¤¹¤ë¡£ -.SS "GNU ÈǤξܺÙ" -¤è¤êÀµ³Î¤Ë¤Ï¡¢ +は utmp ファイルにあるエントリをクリアする。 +.SS "GNU 版の詳細" +より正確には、 .BR login () -¤Ï°ú¤­¿ô +は引き数 .I ut -¹½Â¤ÂΤò¤È¤ê¡¢(¤â¤·Â¸ºß¤¹¤ë¤Ê¤é¤Ð) ¥Õ¥£¡¼¥ë¥É +構造体をとり、(もし存在するならば) フィールド .I ut\->ut_type -¤ò +を .B USER_PROCESS -¤È¤¤¤¦Ãͤˤ·¡¢(¤â¤·Â¸ºß¤¹¤ë¤Ê¤é¤Ð) ¥Õ¥£¡¼¥ë¥É +という値にし、(もし存在するならば) フィールド .I ut\->ut_pid -¤ò¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤ÎÃͤˤ¹¤ë¡£ -¼¡¤Ë¥Õ¥£¡¼¥ë¥É +を呼び出し元プロセスのプロセス ID の値にする。 +次にフィールド .I ut\->ut_line -¤ÎÃͤòÀßÄꤷ¤è¤¦¤È¤¹¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢É¸½àÆþÎÏ¡¦É¸½à½ÐÎÏ¡¦É¸½à¥¨¥é¡¼½ÐÎϤÎÃ椫¤é -üËö (tty) ¤Ç¤¢¤ëºÇ½é¤Î¤â¤Î¤ò¤È¤ê¡¢ -Âбþ¤¹¤ë¥Ñ¥¹Ì¾¤«¤éÀèƬ¤Î \fI/dev/\fP ¤ò°ú¤¤¤¿¤â¤Î¤ò -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ë³ÊǼ¤·¤Æ¡¢¤³¤Î¹½Â¤ÂΤò utmp ¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤à¡£ -°ìÊý¡¢Ã¼Ëö̾¤¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï¡¢¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï "???" ¤È¤µ¤ì¤Æ¡¢ -¤³¤Î¹½Â¤ÂÎ¤Ï utmp ¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤Þ¤ì¤Ê¤¤¡£ -¤½¤Î¸å¤Ë¤³¤Î¹½Â¤ÂÎ¤Ï wtmp ¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£ +の値を設定しようとする。 +この関数は、標準入力・標準出力・標準エラー出力の中から +端末 (tty) である最初のものをとり、 +対応するパス名から先頭の \fI/dev/\fP を引いたものを +このフィールドに格納して、この構造体を utmp ファイルに書き込む。 +一方、端末名が見つからない場合は、このフィールドは "???" とされて、 +この構造体は utmp ファイルに書き込まれない。 +その後にこの構造体は wtmp ファイルに書き込まれる。 .LP .BR logout () -´Ø¿ô¤Ï utmp ¥Õ¥¡¥¤¥ë¤«¤é +関数は utmp ファイルから .I ut_line -°ú¤­¿ô¤Ë¥Þ¥Ã¥Á¤¹¤ë¥¨¥ó¥È¥ê¤òõ¤¹¡£ -¥ì¥³¡¼¥É¤¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç¡¢ +引き数にマッチするエントリを探す。 +レコードが見つかった場合、 .I ut_name -¤È +と .I ut_host -¥Õ¥£¡¼¥ë¥É¤ò¥¯¥ê¥¢¤·¤Æ¡¢ +フィールドをクリアして、 .I ut_tv -¥¿¥¤¥à¥¹¥¿¥ó¥×¥Õ¥£¡¼¥ë¥É¤ò¹¹¿·¤·¡¢ -(¤â¤·Â¸ºß¤¹¤ë¤Ê¤é¤Ð) +タイムスタンプフィールドを更新し、 +(もし存在するならば) .I ut_type -¥Õ¥£¡¼¥ë¥É¤ò +フィールドを .B DEAD_PROCESS -¤Ë¹¹¿·¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -¥¨¥ó¥È¥ê¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë½ñ¤­¹þ¤à¤Î¤ËÀ®¸ù¤·¤¿¾ì¹ç¡¢ +に更新する。 +.SH 返り値 +エントリをデータベースに書き込むのに成功した場合、 .BR logout () -´Ø¿ô¤Ï 1 ¤òÊÖ¤¹¡£ -¤Þ¤¿¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢0 ¤òÊÖ¤¹¡£ -.SH ¥Õ¥¡¥¤¥ë +関数は 1 を返す。 +またエラーが起こった場合、0 を返す。 +.SH ファイル .TP .I /var/run/utmp -¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¥Ç¡¼¥¿¥Ù¡¼¥¹¡£ +ユーザアカウントデータベース。 .I -¤Ë¤ª¤±¤ë +における .B _PATH_UTMP -¤ÇÀßÄꤵ¤ì¤Æ¤¤¤ë¡£ +で設定されている。 .TP .I /var/log/wtmp -¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¥í¥°¥Õ¥¡¥¤¥ë¡£ +ユーザアカウントログファイル。 .I -¤Ë¤ª¤±¤ë +における .B _PATH_WTMP -¤ÇÀßÄꤵ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -BSD ·Ï¤Ë¸ºß¤¹¤ë¡£ -.SH Ãí°Õ +で設定されている。 +.SH 準拠 +POSIX.1-2001 にはない。 +BSD 系に存在する。 +.SH 注意 .I struct utmp -¤Î¥á¥ó¥Ð +のメンバ .I ut_user -¤Ï¡¢BSD ¤Ç¤Ï +は、BSD では .I ut_name -¤È¤¤¤¦Ì¾Á°¤Ç¤¢¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¤½¤Î¤¿¤á +という名前である点に注意すること。 +そのため .I ut_name -¤Ï +は .I -¤Ë¤ª¤¤¤Æ +において .I ut_user -¤Î¥¨¥¤¥ê¥¢¥¹¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +のエイリアスとして定義されている。 +.SH 関連項目 .BR getutent (3), .BR utmp (5) diff --git a/release/man3/longjmp.3 b/release/man3/longjmp.3 index c813c171..cd7afd92 100644 --- a/release/man3/longjmp.3 +++ b/release/man3/longjmp.3 @@ -28,17 +28,17 @@ .\" Translated 1998-05-27, Seiiti Obara .\" Updated 2009-02-24, Akihiro MOTOKI, LDP v3.19 .\" -.\"WORD: stack context ¥¹¥¿¥Ã¥¯¥³¥ó¥Æ¥­¥¹¥È -.\"WORD: signal masks ¥·¥°¥Ê¥ë¥Þ¥¹¥¯ -.\"WORD: signal context ¥·¥°¥Ê¥ë¥³¥ó¥Æ¥­¥¹¥È -.\"WORD: flag ¥Õ¥é¥° -.\"WORD: low-level Äã¥ì¥Ù¥ë +.\"WORD: stack context スタックコンテキスト +.\"WORD: signal masks シグナルマスク +.\"WORD: signal context シグナルコンテキスト +.\"WORD: flag フラグ +.\"WORD: low-level 低レベル .\" .TH LONGJMP 3 2009-01-13 "" "Linux Programmer's Manual" -.SH ̾Á° -longjmp, siglongjmp \- Êݸ¤µ¤ì¤¿¥¹¥¿¥Ã¥¯¥³¥ó¥Æ¥­¥¹¥È (stack context) -¤Ø¤ÎÈó¶É½êŪ¤Ê¥¸¥ã¥ó¥× -.SH ½ñ¼° +.SH 名前 +longjmp, siglongjmp \- 保存されたスタックコンテキスト (stack context) +への非局所的なジャンプ +.SH 書式 .nf .B #include @@ -48,90 +48,90 @@ longjmp, siglongjmp \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR siglongjmp (): _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_C_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR longjmp () -¤È +と .BR setjmp (3) -¤Ï¡¢¥×¥í¥°¥é¥à¤ÎÄã¥ì¥Ù¥ë¤Ê¥µ¥Ö¥ë¡¼¥Á¥ó¤Ë¤ª¤¤¤Æ¡¢ -¥¨¥é¡¼¤ä³ä¤ê¹þ¤ß¤¬È¯À¸¤·¤¿»þ¤Î½èÍý¤ËÊØÍø¤Ç¤¢¤ë¡£ +は、プログラムの低レベルなサブルーチンにおいて、 +エラーや割り込みが発生した時の処理に便利である。 .BR longjmp () -¤Ï¡¢\fIenv\fP °ú¤­¿ô¤ò»ØÄꤷ¤Æ¸Æ¤Ó½Ð¤µ¤ì¤¿ºÇ¸å¤Î +は、\fIenv\fP 引き数を指定して呼び出された最後の .BR setjmp (3) -¤Ë¤è¤Ã¤ÆÊݸ¤µ¤ì¤¿´Ä¶­¤òÉü¸µ¤¹¤ë¡£ +によって保存された環境を復元する。 .BR longjmp () -¤Î´°Î»¸å¡¢¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤Ï¡¢¤Þ¤ë¤ÇÂбþ¤¹¤ë +の完了後、プログラムの実行は、まるで対応する .BR setjmp (3) -¤Î¸Æ¤Ó½Ð¤·¤¬ÃÍ \fIval\fP ¤ÇÊ֤äÆÍ褿¤«¤è¤¦¤Ë³¹Ô¤µ¤ì¤ë¡£ +の呼び出しが値 \fIval\fP で返って来たかように続行される。 .BR longjmp () -¤Ï 0 ¤òÊÖ¤¹¤è¤¦¤Ë»Ø¼¨¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -ÆóÈÖÌܤΰú¤­¿ô¤Ë 0 ¤ò»ØÄꤷ¤Æ +は 0 を返すように指示することはできない。 +二番目の引き数に 0 を指定して .BR longjmp () -¤¬¸Æ¤Ð¤ì¤¿¾ì¹ç¤Ï¡¢Âå¤ï¤ê¤Ë 1 ¤¬ÊÖ¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ +が呼ばれた場合は、代わりに 1 が返されることになる。 .P .BR siglongjmp () -¤Ï¡¢°ú¤­¿ô \fIenv\fP ¤Î·¿¤¬°Û¤Ê¤ëÅÀ°Ê³°¤Ï¡¢ +は、引き数 \fIenv\fP の型が異なる点以外は、 .BR longjmp () -¤ÈƱÍͤǤ¢¤ë¡£ -\fIenv\fP ¤òÊݸ¤·¤¿ +と同様である。 +\fIenv\fP を保存した .BR sigsetjmp (3) -¤¬ 0 °Ê³°¤Î \fIsavesigs\fP ¥Õ¥é¥°¤Ç¸Æ¤Ó½Ð¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ç¡¢ -¤«¤Ä¡¢¤½¤Î¾ì¹ç¤Ë¤Î¤ß¡¢ +が 0 以外の \fIsavesigs\fP フラグで呼び出されていた場合で、 +かつ、その場合にのみ、 .BR siglongjmp (3) -¤Ï +は .BR sigsetjmp (3) -¤è¤êÊݸ¤µ¤ì¤Æ¤¤¤¿¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ÎÉü¸µ¤ò¹Ô¤¦¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤¬Ê֤뤳¤È¤Ï¤Ê¤¤¡£ -.SH ½àµò +より保存されていたシグナルマスクの復元を行う。 +.SH 返り値 +これらの関数が返ることはない。 +.SH 準拠 .BR longjmp () -¤Ï C89, C99, POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は C89, C99, POSIX.1-2001 で規定されている。 .BR siglongjmp () -¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -POSIX ¤Ç¤Ï¡¢ +は POSIX.1-2001 で規定されている。 +.SH 注意 +POSIX では、 .BR longjmp () -¤¬¥·¥°¥Ê¥ë¥³¥ó¥Æ¥­¥¹¥È (signal context) ¤òÉü¸µ¤¹¤ë¤«¤É¤¦¤«µ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤ +がシグナルコンテキスト (signal context) を復元するかどうか規定されていない .RB ( setjmp (3) -¤Ë¤â¾¯¤·¾Ü¤·¤¤¾ðÊ󤬤¢¤ë)¡£ -°Ü¿¢À­¤Î¤¢¤ëÊýË¡¤Ç¡¢¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊݸ¤·Éü¸µ¤µ¤»¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ +にも少し詳しい情報がある)。 +移植性のある方法で、シグナルマスクを保存し復元させたい場合には、 .BR sigsetjmp (3) -¤È +と .BR siglongjmp () -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .P -°Ê²¼¤Î¾ò·ï¤¬Á´¤ÆÀ®Î©¤¹¤ë¾ì¹ç¡¢ +以下の条件が全て成立する場合、 .BR longjmp () -¤Î¸Æ¤Ó½Ð¤·¤¬¹Ô¤ï¤ì¤¿¸å¤Î¼«Æ°ÊÑ¿ô¤ÎÃͤÏ̤ÄêµÁ (unspecified) ¤È¤Ê¤ë¡£ +の呼び出しが行われた後の自動変数の値は未定義 (unspecified) となる。 .IP \(bu 3 -¤½¤Î¼«Æ°ÊÑ¿ô¤¬¡¢Âбþ¤¹¤ë +その自動変数が、対応する .BR setjmp (3) -¸Æ¤Ó½Ð¤·¤ò¹Ô¤Ã¤¿´Ø¿ô¤Î¥í¡¼¥«¥ëÊÑ¿ô¤Ç¤¢¤ë¡£ +呼び出しを行った関数のローカル変数である。 .IP \(bu -¼«Æ°ÊÑ¿ô¤ÎÃͤ¬ +自動変数の値が .BR setjmp (3) -¤È +と .BR longjmp () -¤Î´Ö¤ÇÊѹ¹¤µ¤ì¤Æ¤¤¤ë¡£ +の間で変更されている。 .IP \(bu .I volatile -¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +として宣言されていない。 .P -ƱÍͤÎÃí°Õ¤¬ +同様の注意が .BR siglongjmp () -¤Ë¤â¤¢¤Æ¤Ï¤Þ¤ë¡£ +にもあてはまる。 .P .BR longjmp () -¤ä +や .BR siglongjmp () -¤ò»È¤¦¤È¡¢¥×¥í¥°¥é¥à¤ÏÍý²ò¤·¤Å¤é¤¯¡¢Êݼ餷¤Ë¤¯¤¤¤â¤Î¤Ë¤Ê¤ë¡£ -Ê̤ÎÊýË¡¤¬²Äǽ¤Ê¤é¡¢¤½¤ì¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を使うと、プログラムは理解しづらく、保守しにくいものになる。 +別の方法が可能なら、それを使うべきである。 +.SH 関連項目 .BR setjmp (3), .BR sigsetjmp (3) diff --git a/release/man3/lrint.3 b/release/man3/lrint.3 index 3a28e07f..23b948ad 100644 --- a/release/man3/lrint.3 +++ b/release/man3/lrint.3 @@ -31,9 +31,9 @@ .\" Updated 2008-09-18, Akihiro MOTOKI .\" .TH LRINT 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -lrint, lrintf, lrintl, llrint, llrintf, llrintl \- ºÇ¤â¶á¤¤À°¿ôÃͤ˴ݤá¤ë -.SH ½ñ¼° +.SH 名前 +lrint, lrintf, lrintl, llrint, llrintf, llrintl \- 最も近い整数値に丸める +.SH 書式 .nf .B #include .sp @@ -50,16 +50,16 @@ lrint, lrintf, lrintl, llrint, llrintf, llrintl \- .BI "long long int llrintl(long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l -¾åµ­¤ÎÁ´¤Æ¤Î´Ø¿ô: +上記の全ての関数: .RS 4 _XOPEN_SOURCE\ >=\ 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L; @@ -68,51 +68,51 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¸½ºß¤Î´Ý¤áÊý¸þ¤Ë´ð¤Å¤­¡¢ºÇ¤â¶á¤¤À°¿ô¤Ë°ú¤­¿ô¤ò´Ý¤á¤ë -(¸½ºß¤Î´Ý¤áÊý¸þ¤Ë¤Ä¤¤¤Æ¤Ï +.SH 説明 +これらの関数は、現在の丸め方向に基づき、最も近い整数に引き数を丸める +(現在の丸め方向については .BR fesetround (3) -¤ò»²¾È)¡£ +を参照)。 .BR rint (3) -¤È°ã¤¤¡¢¤³¤ì¤é¤Î´Ø¿ô¤ÎÊÖ¤êÃͤη¿¤Ï°ú¤­¿ô¤Î·¿¤È°Û¤Ê¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤Ï´Ý¤á¤¿À°¿ôÃͤòÊÖ¤¹¡£ +と違い、これらの関数の返り値の型は引き数の型と異なる点に注意すること。 +.SH 返り値 +これらの関数は丸めた整数値を返す。 .I x -¤¬ NaN ¤«Ìµ¸ÂÂç¤Î¾ì¹ç¡¢¤â¤·¤¯¤Ï´Ý¤á¤¿Ãͤ¬Â礭²á¤®¤Æ +が NaN か無限大の場合、もしくは丸めた値が大き過ぎて .I long .RB ( ll* -´Ø¿ô¤Î¾ì¹ç¤Ë¤Ï +関数の場合には .IR "long long" ) -¤Ë³ÊǼ¤Ç¤­¤Ê¤¤¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ÊÖ¤êÃͤÏÉÔÄê¤È¤Ê¤ë¡£ +に格納できない場合、 +領域エラー (domain error) が発生し、返り値は不定となる。 .\" The return value is -(LONG_MAX - 1) or -(LLONG_MAX -1) -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -Îΰ襨¥é¡¼: \fIx\fP ¤¬ NaN ¤«Ìµ¸ÂÂç¡¢¤â¤·¤¯¤Ï´Ý¤á¤¿Ãͤ¬Â礭²á¤®¤ë +領域エラー: \fIx\fP が NaN か無限大、もしくは丸めた値が大き過ぎる .\" .I errno .\" is set to .\" .BR EDOM . -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6798 -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ceil (3), .BR floor (3), .BR lround (3), diff --git a/release/man3/lround.3 b/release/man3/lround.3 index 84c61515..03b50c73 100644 --- a/release/man3/lround.3 +++ b/release/man3/lround.3 @@ -31,9 +31,9 @@ .\" Updated 2008-09-18, Akihiro MOTOKI .\" .TH LROUND 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 lround, lroundf, lroundl, llround, llroundf, llroundl \- -(0 ¤«¤é±ó¤¤Êý¤Î) ºÇ¤â¶á¤¤À°¿ôÃͤ˴ݤá¤ë +(0 から遠い方の) 最も近い整数値に丸める .nf .B #include .sp @@ -50,16 +50,16 @@ lround, lroundf, lroundl, llround, llroundf, llroundl \- .BI "long long int llroundl(long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l -¤³¤³¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î´Ø¿ô: +ここに記載されている全ての関数: .RS 4 _XOPEN_SOURCE\ >=\ 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L; @@ -69,54 +69,54 @@ or .RE .ad \"O .SH DESCRIPTION -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤ÏºÇ¤â¶á¤¤À°¿ô¤Ë°ú¤­¿ô¤ò´Ý¤á¤ë¡£ -¸½ºß¤Î´Ý¤áÊý¸þ¤Ë´Ø·¸¤Ê¤¯¡¢ -0 ¤«¤é±ó¤¤Êý¤ÎºÇ¤â¶á¤¤À°¿ô¤Ë°ú¤­¿ô¤Ï´Ý¤á¤é¤ì¤ë -(¸½ºß¤Î´Ý¤áÊý¸þ¤Ë¤Ä¤¤¤Æ¤Ï +.SH 説明 +これらの関数は最も近い整数に引き数を丸める。 +現在の丸め方向に関係なく、 +0 から遠い方の最も近い整数に引き数は丸められる +(現在の丸め方向については .BR fenv (3) -»²¾È)¡£ +参照)。 .BR round (3), .BR ceil (3) -¤Ê¤É¤È°ã¤¤¡¢¤³¤ì¤é¤Î´Ø¿ô¤ÎÊÖ¤êÃͤη¿¤Ï°ú¤­¿ô¤Î·¿¤È°Û¤Ê¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤Ï´Ý¤á¤¿À°¿ôÃͤòÊÖ¤¹¡£ +などと違い、これらの関数の返り値の型は引き数の型と異なる点に注意すること。 +.SH 返り値 +これらの関数は丸めた整数値を返す。 .I x -¤¬ NaN ¤«Ìµ¸ÂÂç¤Î¾ì¹ç¡¢¤â¤·¤¯¤Ï´Ý¤á¤¿Ãͤ¬Â礭²á¤®¤Æ +が NaN か無限大の場合、もしくは丸めた値が大き過ぎて .I long .RB ( ll* -´Ø¿ô¤Î¾ì¹ç¤Ë¤Ï +関数の場合には .IR "long long" ) -¤Ë³ÊǼ¤Ç¤­¤Ê¤¤¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ÊÖ¤êÃͤÏÉÔÄê¤È¤Ê¤ë¡£ +に格納できない場合、 +領域エラー (domain error) が発生し、返り値は不定となる。 .\" The return value is -(LONG_MAX - 1) or -(LLONG_MAX -1) -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬ NaN ¤«Ìµ¸ÂÂç¡¢¤â¤·¤¯¤Ï´Ý¤á¤¿Ãͤ¬Â礭²á¤®¤ë +領域エラー (domain error): \fIx\fP が NaN か無限大、もしくは丸めた値が大き過ぎる .\" .I errno .\" is set to .\" .BR EDOM . -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6797 -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ceil (3), .BR floor (3), .BR lrint (3), diff --git a/release/man3/lsearch.3 b/release/man3/lsearch.3 index 7c7a5ef8..cb2de535 100644 --- a/release/man3/lsearch.3 +++ b/release/man3/lsearch.3 @@ -28,12 +28,12 @@ .\" Translated 1998-05-23, Ueyama Rui .\" Updated 2005-02-26, Akihiro MOTOKI .\" -.\"WORD: linear search Àþ·Á¸¡º÷ +.\"WORD: linear search 線形検索 .\" .TH LSEARCH 3 1999-09-27 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -lfind, lsearch \- ÇÛÎó¤òÀþ·Á¸¡º÷¤¹¤ë -.SH ½ñ¼° +.SH 名前 +lfind, lsearch \- 配列を線形検索する +.SH 書式 .nf .B #include .sp @@ -43,53 +43,53 @@ lfind, lsearch \- .BI "void *lsearch(const void *" key ", void *" base ", size_t *" nmemb , .BI " size_t " size ", int(*" compar ")(const void *, const void *));" .fi -.SH ÀâÌÀ +.SH 説明 .BR lfind () -¤È +と .BR lsearch () -¤Ï¡¢ +は、 .I size -¥Ð¥¤¥È¤ÎÍ×ÁÇ +バイトの要素 .I *nmemb -¸Ä¤«¤é¤Ê¤ëÇÛÎó +個からなる配列 .I base -¤«¤é¡¢ +から、 .I key -¤òÀþ·Á¸¡º÷¤¹¤ë¡£Èæ³Ó¤ò¹Ô¤¦¤Î¤Ï +を線形検索する。比較を行うのは .I compar -¤¬»²¾È¤·¤Æ¤¤¤ë´Ø¿ô¤Ç¡¢ -¤³¤ì¤Ï 2¤Ä¤Î°ú¤­¿ô¤ò»ý¤Á¡¢1¤Ä¤á¤Î°ú¤­¿ô¤¬ +が参照している関数で、 +これは 2つの引き数を持ち、1つめの引き数が .I key -¤ò¡¢2¤Ä¤á¤Î°ú¤­¿ô¤ÏÇÛÎó¥á¥ó¥Ð¡¼¤ò»Ø¤¹¡£¤Þ¤¿ +を、2つめの引き数は配列メンバーを指す。また .I compar -¤Ï¡¢ +は、 .I key -¤¬ÇÛÎó¤Î¥á¥ó¥Ð¡¼¤È¥Þ¥Ã¥Á¤·¤¿¤Ê¤é 0¡¢¤½¤¦¤Ç¤Ê¤±¤ì¤Ð -0 °Ê³°¤òÊÖ¤¹¤³¤È¤¬´üÂÔ¤µ¤ì¤Æ¤¤¤ë¡£ +が配列のメンバーとマッチしたなら 0、そうでなければ +0 以外を返すことが期待されている。 .PP .BR lsearch () -¤Ï¡¢¥Þ¥Ã¥Á¤¹¤ëÍ×ÁǤò¸«¤Ä¤±¤é¤ì¤Ê¤«¤Ã¤¿¤È¤­¡¢ -ÇÛÎó¤ÎºÇ¸å¤Ë +は、マッチする要素を見つけられなかったとき、 +配列の最後に .I key -¤ò¤Ä¤±²Ã¤¨¤ë¡£¤½¤·¤Æ +をつけ加える。そして .I *nmemb -¤ò 1 ¤Õ¤ä¤¹¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¤³¤Î´Ø¿ô¤ò»ÈÍѤ¹¤ëºÝ¤Ë¤Ï¡¢¥Þ¥Ã¥Á¤¹¤ëÍ×ÁǤ¬Â¸ºß¤¹¤ë¤«¡¢ -¤â¤·¤¯¤ÏÇÛÎó¤ËÍ×ÁǤòÄɲ乤뤿¤á¤ÎÎΰ褬¤¢¤ë¤«¡¢¤òÇÄ°®¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +を 1 ふやす。 +したがって、この関数を使用する際には、マッチする要素が存在するか、 +もしくは配列に要素を追加するための領域があるか、を把握しておく必要がある。 +.SH 返り値 .BR lfind () -¤ÎÊÖ¤êÃͤϡ¢ÇÛÎó¤Î¥Þ¥Ã¥Á¤·¤¿¥á¥ó¥Ð¡¼¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤â¤·¥Þ¥Ã¥Á¤¹¤ë¥á¥ó¥Ð¡¼¤¬¸«¤Ä¤«¤é¤Ê¤¤¤È NULL ¤òÊÖ¤¹¡£ +の返り値は、配列のマッチしたメンバーへのポインタである。 +もしマッチするメンバーが見つからないと NULL を返す。 .BR lsearch () -¤ÎÊÖ¤êÃͤ⡢ÇÛÎó¤Î¥Þ¥Ã¥Á¤·¤¿¥á¥ó¥Ð¡¼¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -¥Þ¥Ã¥Á¤¹¤ë¥á¥ó¥Ð¡¼¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¤È¤­¤Ï¡¢ -¿·¤¿¤Ë¤Ä¤±²Ã¤¨¤¿¥á¥ó¥Ð¡¼¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -.SH ½àµò +の返り値も、配列のマッチしたメンバーへのポインタである。 +マッチするメンバーが見つからなかったときは、 +新たにつけ加えたメンバーへのポインタを返す。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -libc ¤Ë¤Ï libc-4.6.27 °Ê¹ß¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ¥Ð¥° -´Ø¿ô¤Î̾Á°¤ÎÁª¤ÓÊý¤¬¤è¤¯¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +libc には libc-4.6.27 以降で実装されている。 +.SH バグ +関数の名前の選び方がよくない。 +.SH 関連項目 .BR bsearch (3), .BR hsearch (3), .BR tsearch (3) diff --git a/release/man3/lseek64.3 b/release/man3/lseek64.3 index 848cd271..5b64b960 100644 --- a/release/man3/lseek64.3 +++ b/release/man3/lseek64.3 @@ -26,45 +26,45 @@ .\" by Yuichi SATO .\" .TH LSEEK64 3 2004-12-11 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -lseek64 \- ¥Õ¥¡¥¤¥ë¤Î 64 ¥Ó¥Ã¥È¤ÎÆɤ߽ñ¤­¥ª¥Õ¥»¥Ã¥È¤Î°ÌÃÖ¤òÊѤ¨¤ë -.SH ½ñ¼° -.BR "#define _LARGEFILE64_SOURCE" " /* feature_test_macros(7) »²¾È */" +.SH 名前 +lseek64 \- ファイルの 64 ビットの読み書きオフセットの位置を変える +.SH 書式 +.BR "#define _LARGEFILE64_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .br .B #include .sp .BI "off64_t lseek64(int " fd ", off64_t " offset ", int " whence ); -.SH ÀâÌÀ +.SH 説明 .BR lseek (2) -´Ø¿ô¥Õ¥¡¥ß¥ê¡¼¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +関数ファミリーは、ファイルディスクリプタ .I fd -¤Ë´ØÏ¢¤¹¤ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥ª¥Õ¥»¥Ã¥È¤ò¡¢ -¥Õ¥¡¥¤¥ë¤Î³«»Ï°ÌÃÖ¡¦¸½ºß°ÌÃÖ¡¦½ªÃ¼¤«¤é +に関連するオープンされたファイルのオフセットを、 +ファイルの開始位置・現在位置・終端から .I offset -¤Î°ÌÃÖ¤ØÊѹ¹¤¹¤ë¡£ -¤³¤ì¤Ï +の位置へ変更する。 +これは .I whence -¤¬¤½¤ì¤¾¤ì +がそれぞれ .BR SEEK_SET , .BR SEEK_CUR , .B SEEK_END -¤Î¾ì¹ç¤ËÂбþ¤¹¤ë¡£ +の場合に対応する。 .LP -¹¹¤Ë¾Ü¤·¤¤ÀâÌÀ¡¦ÊÖ¤êÃÍ¡¦¥¨¥é¡¼¤Ï¡¢ +更に詳しい説明・返り値・エラーは、 .BR lseek (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .PP -4 ¤Ä¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¬»ÈÍѲÄǽ¤Ç¤¢¤ë: +4 つのインタフェースが使用可能である: .BR lseek (2), .BR lseek64 (), .BR llseek (2) -¤È¸µ¤È¤Ê¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë +と元となるシステムコール .BR _llseek (2) -¤Ç¤¢¤ë¡£ +である。 .SS lseek -¥×¥í¥È¥¿¥¤¥×: +プロトタイプ: .nf .sp .in +4n @@ -73,11 +73,11 @@ lseek64 \- .fi .sp .BR lseek (2) -¤Ï·¿ +は型 .I off_t -¤ò»È¤¦¡£ -¤³¤ì¤Ï 32 ¥Ó¥Ã¥È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¾å¤Ç¤Ï 32 ¥Ó¥Ã¥ÈÉä¹æÉÕ¤­·¿¤Ç¤¢¤ë¡£ -¤¿¤À¤·¡¢ +を使う。 +これは 32 ビットアーキテクチャ上では 32 ビット符号付き型である。 +ただし、 .nf .sp .in +4n @@ -85,9 +85,9 @@ lseek64 \- .in .sp .fi -¤òÄêµÁ¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¾ì¹ç¤Ï 64 ¥Ó¥Ã¥ÈÉä¹æÉÕ¤­·¿¤Ç¤¢¤ë¡£ +を定義してコンパイルした場合は 64 ビット符号付き型である。 .SS lseek64 -¥×¥í¥È¥¿¥¤¥×: +プロトタイプ: .nf .sp .in +4n @@ -95,14 +95,14 @@ lseek64 \- .in .fi .sp -¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó +ライブラリルーチン .BR lseek64 () -¤Ï +は .I off_t -¤¬ 32 ¥Ó¥Ã¥È·¿¤Ç¤¢¤Ã¤Æ¤â 64 ¥Ó¥Ã¥È·¿¤ò»È¤¦¡£ -¤³¤Î¥×¥í¥È¥¿¥¤¥× (¤È·¿ +が 32 ビット型であっても 64 ビット型を使う。 +このプロトタイプ (と型 .IR off64_t ) -¤Ï¡¢°Ê²¼¤ÎÄêµÁ¤ò¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¾ì¹ç¤Ë¤Î¤ß»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ +は、以下の定義をしてコンパイルした場合にのみ使用可能である。 .nf .sp .in +4n @@ -110,14 +110,14 @@ lseek64 \- .in .sp .fi -´Ø¿ô +関数 .BR lseek64 () -.\" glibc 2.0.94 ¤Ë¤Ï¸ºß¤¹¤ë¤¬ 2.0.6 ¤Ë¤Ï¸ºß¤·¤Ê¤¤ -¤Ï glibc 2.1 °Ê¹ß¤Ç»ÈÍѲÄǽ¤Ç¤¢¤ê¡¢ +.\" glibc 2.0.94 には存在するが 2.0.6 には存在しない +は glibc 2.1 以降で使用可能であり、 .BR llseek () -¤Î¥¨¥¤¥ê¥¢¥¹¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +のエイリアスとして定義されている。 .SS llseek -¥×¥í¥È¥¿¥¤¥×: +プロトタイプ: .nf .sp .in +4n @@ -125,32 +125,32 @@ lseek64 \- .in .fi .sp -·¿ +型 .I loff_t -¤Ï 64 ¥Ó¥Ã¥ÈÉä¹æÉÕ¤­·¿¤Ç¤¢¤ë¡£ -¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó +は 64 ビット符号付き型である。 +ライブラリルーチン .BR llseek () -.\" libc 5.0.9 ¤Ë¤Ï¸ºß¤¹¤ë¤¬ 4.7.6 ¤Ï¸ºß¤·¤Ê¤¤ -¤Ï libc5 ¤È glibc ¤Ç»ÈÍѲÄǽ¤Ç¤¢¤ê¡¢ÆÃÊ̤ÊÄêµÁ¤Ê¤·¤ËÆ°ºî¤¹¤ë¡£ -¤³¤Î¥×¥í¥È¥¿¥¤¥×¤Ï¡¢libc5 ¤Ç¤Ï +.\" libc 5.0.9 には存在するが 4.7.6 は存在しない +は libc5 と glibc で使用可能であり、特別な定義なしに動作する。 +このプロトタイプは、libc5 では .I -¤ÇÍ¿¤¨¤é¤ì¤ë¤¬¡¢glibc ¤Ï¥×¥í¥È¥¿¥¤¥×¤òÄ󶡤·¤Ê¤¤¡£ -¤³¤ì¤Ï¥×¥í¥È¥¿¥¤¥×¤¬É¬Íפˤʤë¤Î¤ÇÎɤ¯¤Ê¤¤¡£ -¥æ¡¼¥¶¤Ï¾åµ­¤Î¥×¥í¥È¥¿¥¤¥×¤Þ¤¿¤Ï¤½¤ì¤ÈƱÅù¤Î¤â¤Î¤ò¡¢ -¼«¿È¤Î¥½¡¼¥¹¤ËÄɲ䷤ʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤Î¥Ç¡¼¥¿¤¬¤Ê¤¤¤³¤È¤Ë¤è¤Ã¤Æ +で与えられるが、glibc はプロトタイプを提供しない。 +これはプロトタイプが必要になるので良くない。 +ユーザは上記のプロトタイプまたはそれと同等のものを、 +自身のソースに追加しなければならない。 +このデータがないことによって .BR e2fsck (8) -¤Î¥³¥ó¥Ñ¥¤¥ë¤¬¼ºÇÔ¤¹¤ë¤È¤¤¤¦¶ì¾ð¤¬¥æ¡¼¥¶¤«¤é½Ð¤¿¤Î¤Ç¡¢ -glibc 2.1.3 ¤Ç¤Ï°Ê²¼¤Î¤è¤¦¤Ê¥ê¥ó¥¯»þ¤Î·Ù¹ð¤¬Äɲ䵤줿¡£ +のコンパイルが失敗するという苦情がユーザから出たので、 +glibc 2.1.3 では以下のようなリンク時の警告が追加された。 .sp .in +4n "the \`llseek\' function may be dangerous; use \`lseek64\' instead." .in .sp -¤³¤ì¤Ë¤è¤ê¡¢·Ù¹ð¤Ê¤·¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢¤³¤Î´Ø¿ô¤ò»ÈÍÑÉԲĤˤǤ­¤ë¡£ +これにより、警告なしでコンパイルしたい場合には、この関数を使用不可にできる。 .SS _llseek -¾åµ­¤ÎÁ´¤Æ¤Î´Ø¿ô¤Ï¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë´ð¤Å¤¤¤Æ¼ÂÁõ¤µ¤ì¤ë¡£ -¥×¥í¥È¥¿¥¤¥×¤Ï°Ê²¼¤ÎÄ̤ê: +上記の全ての関数は、このシステムコールに基づいて実装される。 +プロトタイプは以下の通り: .nf .sp .in +4n @@ -159,9 +159,9 @@ glibc 2.1.3 .in .fi .sp -¹¹¤Ë¾Ü¤·¤¤¾ðÊó¤Ï¡¢ +更に詳しい情報は、 .BR llseek (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を参照すること。 +.SH 関連項目 .BR llseek (2), .BR lseek (2) diff --git a/release/man3/makecontext.3 b/release/man3/makecontext.3 index 807ef5e9..6d34e47f 100644 --- a/release/man3/makecontext.3 +++ b/release/man3/makecontext.3 @@ -27,125 +27,125 @@ .\" Updated 2008-12-24, Akihiro MOTOKI , LDP v3.15 .\" .TH MAKECONTEXT 3 2009-03-31 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -makecontext, swapcontext \- ¥æ¡¼¥¶¥³¥ó¥Æ¥­¥¹¥È¤òÁàºî¤¹¤ë -.SH ½ñ¼° +.SH 名前 +makecontext, swapcontext \- ユーザコンテキストを操作する +.SH 書式 .B #include .sp .BI "void makecontext(ucontext_t *" ucp ", void (*" func )(), .BI "int " argc ", ...);" .sp .BI "int swapcontext(ucontext_t *" oucp ", ucontext_t *" ucp ); -.SH ÀâÌÀ -System V Ū¤Ê´Ä¶­¤Ç¤Ï¡¢ -\fBmcontext_t\fP ¤ª¤è¤Ó \fBucontext_t\fP ¤È¤¤¤¦ 2 ¤Ä¤Î·¿¤È¡¢ +.SH 説明 +System V 的な環境では、 +\fBmcontext_t\fP および \fBucontext_t\fP という 2 つの型と、 .BR getcontext (2), .BR setcontext (2), .BR makecontext (), .BR swapcontext () -¤È¤¤¤¦ 4 ¤Ä¤Î´Ø¿ô¤¬ +という 4 つの関数が .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢¤¢¤ë¥×¥í¥»¥¹ÆâÉô¤ÇÀ©¸æ²¼¤Ë¤¢¤ëÊ£¿ô¤Î¥¹¥ì¥Ã¥É´Ö¤Ç¡¢ -¥æ¡¼¥¶¥ì¥Ù¥ë¤Î¥³¥ó¥Æ¥­¥¹¥ÈÀÚÂؤ¨¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +で定義されており、あるプロセス内部で制御下にある複数のスレッド間で、 +ユーザレベルのコンテキスト切替えができるようになっている。 .LP -¤³¤ì¤é¤Î·¿¤È¡¢ºÇ½é¤Î 2 ¤Ä¤Î´Ø¿ô¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +これらの型と、最初の 2 つの関数については、 .BR getcontext (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .LP .BR makecontext () -´Ø¿ô¤Ï¡¢¥Ý¥¤¥ó¥¿ \fIucp\fP ¤¬»Ø¤¹¥³¥ó¥Æ¥­¥¹¥È¤òÊѹ¹¤¹¤ë -(\fIucp\fP ¤Ï°ÊÁ°¤Î +関数は、ポインタ \fIucp\fP が指すコンテキストを変更する +(\fIucp\fP は以前の .BR getcontext (2) -¸Æ¤Ó½Ð¤·¤ÇÆÀ¤é¤ì¤¿¤â¤Î¤Ç¤¢¤ë)¡£ +呼び出しで得られたものである)。 .BR makecontext () -¤òµ¯Æ°¤¹¤ëÁ°¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·¼Ô¤Ï¡¢¤³¤Î¥³¥ó¥Æ¥­¥¹¥ÈÍÑ¤Ë -¿·¤·¤¤¥¹¥¿¥Ã¥¯¤ò³ÎÊݤ·¡¢¤½¤Î¥¢¥É¥ì¥¹¤ò \fIucp\->uc_stack\fP ¤ËÂåÆþ¤·¡¢ -¤µ¤é¤Ë¸å·Ñ¤Î¥³¥ó¥Æ¥­¥¹¥È¤òÄêµÁ¤·¡¢¤½¤Î¥¢¥É¥ì¥¹¤ò \fIucp\->uc_link\fP ¤Ë -ÂåÆþ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を起動する前には、呼び出し者は、このコンテキスト用に +新しいスタックを確保し、そのアドレスを \fIucp\->uc_stack\fP に代入し、 +さらに後継のコンテキストを定義し、そのアドレスを \fIucp\->uc_link\fP に +代入しなければならない。 -¤³¤Î¥³¥ó¥Æ¥­¥¹¥È¤¬¾­Íè +このコンテキストが将来 .RB ( setcontext (2) -¤Þ¤¿¤Ï +または .BR swapcontext () -¤Ë¤è¤Ã¤Æ) -Í­¸ú¤Ë¤µ¤ì¤ë¤È¡¢´Ø¿ô \fIfunc\fP ¤¬¸Æ¤Ð¤ì¡¢ -°ú¤­¿ô¤È¤·¤Æ +によって) +有効にされると、関数 \fIfunc\fP が呼ばれ、 +引き数として .I argc -°Ê¹ß¤ÎÀ°¿ô +以降の整数 .RI ( int ) -°ú¤­¿ô¤ÎÎó¤¬ÅϤµ¤ì¤ë¡£ -¸Æ¤Ó½Ð¤·¼Ô¤Ï +引き数の列が渡される。 +呼び出し者は .I argc -¤Ë¤³¤ì¤é¤Î°ú¤­¿ô¤Î¸Ä¿ô¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤Î´Ø¿ô¤¬Ìá¤ë¤È¡¢¸å·Ñ¤Î¥³¥ó¥Æ¥­¥¹¥È¤¬Í­¸ú¤Ë¤Ê¤ë¡£ -¸å·Ñ¥³¥ó¥Æ¥­¥¹¥È¤Î¥Ý¥¤¥ó¥¿¤¬ NULL ¤Î¾ì¹ç¡¢¤½¤Î¥¹¥ì¥Ã¥É¤¬½ªÎ»¤¹¤ë¡£ +にこれらの引き数の個数を指定しなければならない。 +この関数が戻ると、後継のコンテキストが有効になる。 +後継コンテキストのポインタが NULL の場合、そのスレッドが終了する。 .LP .BR swapcontext () -´Ø¿ô¤Ï¸½ºß¤Î¥³¥ó¥Æ¥­¥¹¥È¤ò -¥Ý¥¤¥ó¥¿ \fIoucp\fP ¤¬»Ø¤¹¹½Â¤ÂΤËÊݸ¤·¡¢ -¥Ý¥¤¥ó¥¿ \fIucp\fP ¤¬»Ø¤¹¥³¥ó¥Æ¥­¥¹¥È¤òÍ­¸ú¤Ë¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +関数は現在のコンテキストを +ポインタ \fIoucp\fP が指す構造体に保存し、 +ポインタ \fIucp\fP が指すコンテキストを有効にする。 +.SH 返り値 +成功すると、 .BR swapcontext () -¤ÏÊÖ¤é¤Ê¤¤ -(¤·¤«¤·¸å¤Ë \fIoucp\fP ¤¬Í­¸ú¤Ë¤Ê¤Ã¤¿¾ì¹ç¤Ë¤ÏÊ֤뤳¤È¤¬¤¢¤ë¡£ -¤³¤Î¤È¤­¤Ë¤Ï +は返らない +(しかし後に \fIoucp\fP が有効になった場合には返ることがある。 +このときには .BR swapcontext () -¤Ï 0 ¤òÊÖ¤¹¤è¤¦¤Ë¸«¤¨¤ë¡£) -¼ºÇÔ¤¹¤ë¤È¡¢ +は 0 を返すように見える。) +失敗すると、 .BR swapcontext () -¤Ï \-1 ¤òÊÖ¤·¡¢ -\fIerrno\fP ¤ò¥¨¥é¡¼¤Ë±þ¤¸¤ÆÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +は \-1 を返し、 +\fIerrno\fP をエラーに応じて設定する。 +.SH エラー .TP .B ENOMEM -¥¹¥¿¥Ã¥¯¤Ë³ä¤êÅö¤Æ¤ë¶õ´Ö¤¬»Ä¤Ã¤Æ¤¤¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +スタックに割り当てる空間が残っていない。 +.SH バージョン .BR makecontext () -¤È +と .BR swapcontext () -¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò +は、バージョン 2.1 以降の glibc で提供されている。 +.SH 準拠 SUSv2, POSIX.1-2001. -POSIX.1-2008 ¤Ç¤Ï¡¢°Ü¿¢À­¤ÎÌäÂ꤫¤é +POSIX.1-2008 では、移植性の問題から .BR makecontext () -¤È +と .BR swapcontext () -¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ -Âå¤ï¤ê¤Ë¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò POSIX ¥¹¥ì¥Ã¥É¤ò»È¤Ã¤Æ½ñ¤­Ä¾¤¹¤³¤È¤¬ -¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -\fIucp\->uc_stack\fP ¤Î²ò¼á¤Ï +の仕様が削除されている。 +代わりに、アプリケーションを POSIX スレッドを使って書き直すことが +推奨されている。 +.SH 注意 +\fIucp\->uc_stack\fP の解釈は .BR sigaltstack (2) -¤Î¾ì¹ç¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -¤¹¤Ê¤ï¤Á¤³¤Î¹½Â¤ÂΤˤϡ¢ -¥¹¥¿¥Ã¥¯¤È¤·¤ÆÍѤ¤¤é¤ì¤ë¥á¥â¥êÎΰè¤Î³«»Ï¥¢¥É¥ì¥¹¤ÈŤµ¤¬´Þ¤Þ¤ì¡¢ -¤³¤ì¤Ï¥¹¥¿¥Ã¥¯¤¬¿­¤Ó¤ëÊý¸þ¤¬¤É¤Á¤é¤Ç¤¢¤ë¤«¤Ë¤Ï´Ø·¸¤·¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¥æ¡¼¥¶¥×¥í¥°¥é¥à¤Ï¤³¤Î·ï¤Ë¤Ä¤¤¤Æ¤Ï¿´ÇÛ¤·¤Ê¤¯¤Æ¤è¤¤¡£ +の場合と同じである。 +すなわちこの構造体には、 +スタックとして用いられるメモリ領域の開始アドレスと長さが含まれ、 +これはスタックが伸びる方向がどちらであるかには関係しない。 +したがって、ユーザプログラムはこの件については心配しなくてよい。 .I int -¤È¥Ý¥¤¥ó¥¿·¿¤¬Æ±¤¸Â礭¤µ¤Ç¤¢¤ë¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï -(x86-32 ¤Ï¤½¤ÎÎã¤Ç¤¢¤ê¡¢Î¾Êý¤Î·¿¤È¤â 32 ¥Ó¥Ã¥È¤Ç¤¢¤ë)¡¢ +とポインタ型が同じ大きさであるアーキテクチャでは +(x86-32 はその例であり、両方の型とも 32 ビットである)、 .BR makecontext () -¤Î +の .I argc -°Ê¹ß¤Î°ú¤­¿ô¤È¤·¤Æ¥Ý¥¤¥ó¥¿¤òÅϤ·¤Æ¤â¤¦¤Þ¤¯Æ°¤¯¤«¤â¤·¤ì¤Ê¤¤¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢¤³¤Î¤è¤¦¤Ë¤¹¤ë¤È¡¢°Ü¿¢À­¤ÏÊݾڤµ¤ì¤º¡¢ -ɸ½à¤Ë½¾¤¨¤ÐÆ°ºî¤Ï̤ÄêµÁ¤Ç¤¢¤ê¡¢¥Ý¥¤¥ó¥¿¤¬ +以降の引き数としてポインタを渡してもうまく動くかもしれない。 +しかしながら、このようにすると、移植性は保証されず、 +標準に従えば動作は未定義であり、ポインタが .I int -¤è¤ê¤âÂ礭¤¤¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤ÏÀµ¤·¤¯Æ°ºî¤·¤Ê¤¤¤³¤È¤À¤í¤¦¡£ -¤½¤ì¤Ë¤â´Ø¤ï¤é¤º¡¢¥Ð¡¼¥¸¥ç¥ó 2.8 °Ê¹ß¤Î glibc ¤Ç¤Ï¡¢ +よりも大きいアーキテクチャでは正しく動作しないことだろう。 +それにも関わらず、バージョン 2.8 以降の glibc では、 .BR makecontext () -¤ËÊѹ¹¤¬¹Ô¤ï¤ì¡¢(x86-64 ¤Ê¤É¤Î) ¤¤¤¯¤Ä¤«¤Î 64 ¥Ó¥Ã¥È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç -°ú¤­¿ô¤È¤·¤Æ¥Ý¥¤¥ó¥¿¤òÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -.SH Îã +に変更が行われ、(x86-64 などの) いくつかの 64 ビットアーキテクチャで +引き数としてポインタを渡すことができるようになっている。 +.SH 例 .PP -°Ê²¼¤Î¥µ¥ó¥×¥ë¡¦¥×¥í¥°¥é¥à¤Ï¡¢ +以下のサンプル・プログラムは、 .BR getcontext (2), .BR makecontext (), .BR swapcontext () -¤Î»ÈÍÑÊýË¡¤ÎÎã¤ò¼¨¤¹¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤È¡¢°Ê²¼¤Î¤è¤¦¤Ê½ÐÎϤ¬ÆÀ¤é¤ì¤ë: +の使用方法の例を示すものである。 +このプログラムを実行すると、以下のような出力が得られる: .in +4n .nf @@ -160,7 +160,7 @@ func1: returning main: exiting .fi .in -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -221,7 +221,7 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getcontext (2), .BR sigaction (2), .BR sigaltstack (2), diff --git a/release/man3/malloc.3 b/release/man3/malloc.3 index d3243fa9..450e4d3b 100644 --- a/release/man3/malloc.3 +++ b/release/man3/malloc.3 @@ -34,12 +34,12 @@ .\" Modified 2005-03-15, Akihiro MOTOKI .\" Modified 2007-10-12, Akihiro MOTOKI, LDP v2.66 .\" -.\" WORD: OOM killer ¥á¥â¥êÉÔ­²ò·è´ï +.\" WORD: OOM killer メモリ不足解決器 .\" .TH MALLOC 3 2009-01-13 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -calloc, malloc, free, realloc \- ưŪ¤Ê¥á¥â¥ê¤Î³ä¤êÅö¤Æ¤È²òÊü¤ò¹Ô¤¦ -.SH ½ñ¼° +.SH 名前 +calloc, malloc, free, realloc \- 動的なメモリの割り当てと解放を行う +.SH 書式 .nf .B #include .sp @@ -51,212 +51,212 @@ calloc, malloc, free, realloc \- ưŪ .br .BI "void *realloc(void " "*ptr" ", size_t " "size" ); .fi -.SH ÀâÌÀ +.SH 説明 .BR calloc () -¤Ï +は .I size -¥Ð¥¤¥È¤ÎÍ×ÁÇ +バイトの要素 .I nmemb -¸Ä¤«¤é¤Ê¤ëÇÛÎó¤Ë¥á¥â¥ê¤ò³ä¤êÅö¤Æ¡¢ -³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤ËÂФ¹¤ë¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥á¥â¥ê¤ÎÆâÍƤϿôÃÍ¥¼¥í (Á´¥Ó¥Ã¥È¤¬¥¼¥í¤Î¥Ð¥¤¥È) ¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ +個からなる配列にメモリを割り当て、 +割り当てられたメモリに対するポインタを返す。 +メモリの内容は数値ゼロ (全ビットがゼロのバイト) にセットされる。 .I nmemb -¤« +か .I size -¤¬ 0 ¤Î¾ì¹ç¡¢ +が 0 の場合、 .BR calloc () -¤Ï NULL -.\" glibc ¤Ï¤³¤Á¤é -¤Þ¤¿¤Ï +は NULL +.\" glibc はこちら +または .BR free () -¤Ë¸å¤ÇÅϤ·¤Æ¤âÌäÂê¤Îµ¯¤³¤é¤Ê¤¤°ì°Õ¤Ê¥Ý¥¤¥ó¥¿ÃͤòÊÖ¤¹¡£ +に後で渡しても問題の起こらない一意なポインタ値を返す。 .PP .BR malloc () -¤Ï +は .I size -¥Ð¥¤¥È¤ò³ä¤êÅö¤Æ¡¢ -³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤ËÂФ¹¤ë¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥á¥â¥ê¤ÎÆâÍƤϥ¯¥ê¥¢¤µ¤ì¤Ê¤¤¡£ +バイトを割り当て、 +割り当てられたメモリに対するポインタを返す。 +メモリの内容はクリアされない。 .I size -¤¬ 0 ¤Î¾ì¹ç¡¢ +が 0 の場合、 .BR malloc () -¤Ï NULL -.\" glibc ¤Ï¤³¤Á¤é -¤Þ¤¿¤Ï +は NULL +.\" glibc はこちら +または .BR free () -¤Ë¸å¤ÇÅϤ·¤Æ¤âÌäÂê¤Îµ¯¤³¤é¤Ê¤¤°ì°Õ¤Ê¥Ý¥¤¥ó¥¿ÃͤòÊÖ¤¹¡£ +に後で渡しても問題の起こらない一意なポインタ値を返す。 .PP .BR free () -¤Ï¥Ý¥¤¥ó¥¿ +はポインタ .I ptr -¤¬»Ø¤¹¥á¥â¥ê¶õ´Ö¤ò²òÊü¤¹¤ë¡£¤³¤Î¥Ý¥¤¥ó¥¿¤Ï¡¢°ÊÁ°¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿ +が指すメモリ空間を解放する。このポインタは、以前に呼び出された .BR malloc (), .BR calloc (), .BR realloc () -¤Î¤¤¤º¤ì¤«¤¬ÊÖ¤·¤¿ÃͤǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ì°Ê³°¤Î¥Ý¥¤¥ó¥¿¤ò»ØÄꤷ¤¿¤ê¡¢¤¹¤Ç¤Ë +のいずれかが返した値でなければならない。 +これ以外のポインタを指定したり、すでに .I free(ptr) -¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤¿¤ê¤·¤¿¾ì¹ç¤ÎÆ°ºî¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +が実行されていたりした場合の動作は定義されていない。 .I ptr -¤¬ NULL ¤Î¾ì¹ç¤Ë¤Ï¡¢¤Ê¤ó¤ÎÆ°ºî¤â¹Ô¤ï¤ì¤Ê¤¤¡£ +が NULL の場合には、なんの動作も行われない。 .PP .BR realloc () -¤Ï¡¢¥Ý¥¤¥ó¥¿ +は、ポインタ .I ptr -¤¬¼¨¤¹¥á¥â¥ê¥Ö¥í¥Ã¥¯¤Î¥µ¥¤¥º¤òÊѹ¹¤·¤Æ +が示すメモリブロックのサイズを変更して .I size -¥Ð¥¤¥È¤Ë¤¹¤ë¡£ -¿·µì¤Î¥µ¥¤¥º¤Î¤¦¤Á¡¢¾®¤µ¤¤¤Û¤¦¤Î¥Ö¥í¥Ã¥¯¤Ë´Þ¤Þ¤ì¤ëÆâÍƤÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ -¿·¤·¤¯³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤ÎÆâÍƤϽé´ü²½¤µ¤ì¤Ê¤¤¡£ +バイトにする。 +新旧のサイズのうち、小さいほうのブロックに含まれる内容は変更されない。 +新しく割り当てられたメモリの内容は初期化されない。 .I size -¤¬¤É¤ÎÃͤǤ¢¤Ã¤Æ¤â¡¢ +がどの値であっても、 .I ptr -¤¬ NULL ¤Î¾ì¹ç¤Ë¤Ï +が NULL の場合には .I malloc(size) -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 .I size -¤¬ 0 ¤Ç +が 0 で .I ptr -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ +が NULL でない場合には、 .I free(ptr) -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 .I ptr -¤¬ NULL °Ê³°¤Î¾ì¹ç¡¢ +が NULL 以外の場合、 .I ptr -¤Ï°ÊÁ°¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿ +は以前に呼び出された .BR malloc (), .BR calloc (), .BR realloc () -¤Î¤¤¤º¤ì¤«¤¬ÊÖ¤·¤¿ÃͤǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +のいずれかが返した値でなければならない。 .I ptr -¤¬»Ø¤¹Îΰ褬°ÜÆ°¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ï +が指す領域が移動されていた場合は .I free(ptr) -¤¬¼Â¹Ô¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +が実行される。 +.SH 返り値 .BR calloc () -¤È +と .BR malloc () -¤Ï¡¢³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤Ï¡¢¤¢¤é¤æ¤ë¼ïÎà¤ÎÊÑ¿ô¤ËÂбþ¤Ç¤­¤ë¤è¤¦¤Ë -¥¢¥é¥¤¥ó¥á¥ó¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï NULL ¤òÊÖ¤¹¡£ +は、割り当てられたメモリへのポインタを返す。 +割り当てられたメモリは、あらゆる種類の変数に対応できるように +アラインメントされている。 +エラーの場合、これらの関数は NULL を返す。 .I size -¤¬ 0 ¤Ç¸Æ¤Ó½Ð¤·¤¿ +が 0 で呼び出した .BR malloc () -¤ä¡¢ +や、 .I nmemb -¤« +か .I size -¤¬ 0 ¤Ç¸Æ¤Ó½Ð¤·¤¿ +が 0 で呼び出した .BR calloc () -¤¬À®¸ù¤·¤¿¾ì¹ç¤Ë¤â NULL ¤¬ÊÖ¤µ¤ì¤ë¡£ +が成功した場合にも NULL が返される。 .PP .BR free () -¤ÏÃͤòÊÖ¤µ¤Ê¤¤¡£ +は値を返さない。 .PP .BR realloc () -¤Ï¿·¤¿¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤ì¤Ï¤¢¤é¤æ¤ë¼ïÎà¤ÎÊÑ¿ô¤ËÂбþ¤Ç¤­¤ë¤è¤¦¤Ë¥¢¥é¥¤¥ó¥á¥ó¥È¤µ¤ì¤Æ¤ª¤ê¡¢ +は新たに割り当てられたメモリへのポインタを返す。 +これはあらゆる種類の変数に対応できるようにアラインメントされており、 .I ptr -¤È¤Ï°Û¤Ê¤ë¤³¤È¤â¤¢¤ë¡£ -³ä¤êÅö¤ÆÍ×µá¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ï NULL ¤¬Ê֤롣 +とは異なることもある。 +割り当て要求に失敗した場合は NULL が返る。 .I size -¤¬ 0 ¤Î¾ì¹ç¤Ë¤Ï¡¢NULL ¤â¤·¤¯¤Ï +が 0 の場合には、NULL もしくは .BR free () -¤ËÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¥Ý¥¤¥ó¥¿¤¬Ê֤롣 +に渡すことができるポインタが返る。 .BR realloc () -¤¬¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¡¢¸µ¤Î¥Ö¥í¥Ã¥¯¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ -¤Ä¤Þ¤ê¡¢²òÊü¤µ¤ì¤¿¤ê°ÜÆ°¤µ¤ì¤¿¤ê¤Ï¤·¤Ê¤¤¡£ -.SH ½àµò +が失敗した場合には、元のブロックは変更されない。 +つまり、解放されたり移動されたりはしない。 +.SH 準拠 C89, C99. -.SH Ãí°Õ -Ä̾ +.SH 注意 +通常、 .BR malloc () -¤Ï¡¢¥Ò¡¼¥×¤«¤é¥á¥â¥ê¤ò³ä¤êÅö¤Æ¡¢É¬Íפ˱þ¤¸¤Æ¥Ò¡¼¥×¤Î¥µ¥¤¥º¤ò +は、ヒープからメモリを割り当て、必要に応じてヒープのサイズを .BR sbrk (2) -¤ò»È¤Ã¤ÆÄ´À᤹¤ë¡£ +を使って調節する。 .B MMAP_THRESHOLD -¥Ð¥¤¥È¤è¤ê¤âÂ礭¤Ê¥á¥â¥ê¥Ö¥í¥Ã¥¯¤ò³ä¤êÅö¤Æ¤ë¾ì¹ç¡¢ -glibc ¤Î +バイトよりも大きなメモリブロックを割り当てる場合、 +glibc の .BR malloc () -¼ÂÁõ¤Ï +実装は .BR mmap (2) -¤ò»È¤Ã¤Æ¥×¥é¥¤¥Ù¡¼¥È¤Ê̵̾¥Þ¥Ã¥Ô¥ó¥° (anonymous mapping) ¤È¤·¤Æ -¥á¥â¥ê¤ò³ä¤êÅö¤Æ¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï +を使ってプライベートな無名マッピング (anonymous mapping) として +メモリを割り当てる。 +デフォルトでは .B MMAP_THRESHOLD -¤Ï 128 kB ¤À¤¬¡¢ +は 128 kB だが、 .BR mallopt (3) -¤ò»È¤Ã¤ÆÄ´À°¤Ç¤­¤ë¡£ +を使って調整できる。 .\" FIXME . there is no mallopt(3) man page yet. .BR mmap (2) -¤ò»È¤Ã¤Æ¹Ô¤ï¤ì¤¿¥á¥â¥ê³ä¤êÅö¤Æ¤Ï +を使って行われたメモリ割り当ては .B RLIMIT_DATA -¥ê¥½¡¼¥¹¾å¸Â¤Î±Æ¶Á¤ò¼õ¤±¤Ê¤¤ +リソース上限の影響を受けない .RB ( getrlimit (2) -»²¾È)¡£ +参照)。 -Unix98 ɸ½à¤Ç¤Ï¡¢ +Unix98 標準では、 .BR malloc (), .BR calloc (), .BR realloc () -¤Ï¼Â¹Ô¤Ë¼ºÇÔ¤·¤¿¤È¤­¤Ë +は実行に失敗したときに .I errno -¤ò +を .B ENOMEM -¤ËÀßÄꤹ¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -Glibc ¤Ç¤Ï¤³¤ì¤¬¼é¤é¤ì¤Æ¤¤¤ë¤³¤È¤ò²¾Äꤷ¤Æ¤¤¤ë -(¤Þ¤¿¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤Î glibc ¥Ð¡¼¥¸¥ç¥ó¤Ï¤³¤Î¤³¤È¤ò¼é¤Ã¤Æ¤¤¤ë)¡£ -¸Ä¿ÍŪ¤ËÊ̤Πmalloc ¤Î¼ÂÁõ¤ò»È¤Ã¤Æ¤¤¤Æ¡¢¤½¤Î malloc ¤¬ +に設定することになっている。 +Glibc ではこれが守られていることを仮定している +(またこれらのルーチンの glibc バージョンはこのことを守っている)。 +個人的に別の malloc の実装を使っていて、その malloc が .I errno -¤òÀßÄꤷ¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢¼ºÇÔ¤·¤¿ºÝ¤Ë +を設定しない場合には、失敗した際に .I errno -¤Ë¥¨¥é¡¼¤ÎÍýͳ¤òÀßÄꤷ¤Ê¤¤¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +にエラーの理由を設定しないライブラリルーチンがあるかもしれない。 .LP .BR malloc (), .BR calloc (), .BR realloc (), .BR free () -¤Ë¤ª¤±¤ë»ö¸Î¤Ï¡¢ -¤Û¤È¤ó¤É¤Î¾ì¹ç¤Ï¥Ò¡¼¥×¤ÎÇ˲õ (corruption) ¤¬¸¶°ø¤Ç¤¢¤ë¡£ -Î㤨¤Ð¡¢³ä¤êÅö¤Æ¤é¤ì¤¿Îΰè¤ò¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¡¢ -Ʊ¤¸¥Ý¥¤¥ó¥¿¤ËÆóÅÙ free ¤¹¤ë¡¢¤Ê¤É¤¬¤³¤ì¤Ë¤¢¤¿¤ë¡£ +における事故は、 +ほとんどの場合はヒープの破壊 (corruption) が原因である。 +例えば、割り当てられた領域をオーバーフローする、 +同じポインタに二度 free する、などがこれにあたる。 .PP -ºÇ¶á¤Î¥Ð¡¼¥¸¥ç¥ó¤Î Linux libc (5.4.23 °Ê¹ß) ¤È glibc (2.x) ¤Ç¤Ï¡¢ +最近のバージョンの Linux libc (5.4.23 以降) と glibc (2.x) では、 .BR malloc () -¤ÎÆ°ºî¤ò´Ä¶­ÊÑ¿ô¤Ë¤è¤Ã¤ÆÀ©¸æ¤Ç¤­¤ë¤è¤¦¤Ê¼ÂÁõ¤¬¤µ¤ì¤Æ¤¤¤ë¡£ +の動作を環境変数によって制御できるような実装がされている。 .B MALLOC_CHECK_ -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢Æüì¤Ê¼ÂÁõ¤¬ÍѤ¤¤é¤ì¡¢ -ñ½ã¤Ê¥¨¥é¡¼¤Ë¤ÏÂѤ¨¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë (¸úΨ¤Ï°­¤¯¤Ê¤ë)¡£Î㤨¤Ð¡¢ +が設定されていると、特殊な実装が用いられ、 +単純なエラーには耐えることができるようになる (効率は悪くなる)。例えば、 .BR free () -¤òƱ¤¸°ú¤­¿ô¤ÇÆóÅٸƤӽФ·¤Æ¤·¤Þ¤¦¡¢ -1 ¥Ð¥¤¥È¤À¤±¹Ô¤­¤¹¤®¤Æ¤·¤Þ¤¦ (off-by-one ¥Ð¥°) ¤Ê¤É¤¬¤³¤ì¤ËÅö¤¿¤ë¡£ -¤·¤«¤·¡¢¤³¤ì¤é¤Î¥¨¥é¡¼¤ÎÁ´¤Æ¤òËɤ°¤³¤È¤¬¤Ç¤­¤ë¤ï¤±¤Ç¤Ï¤Ê¤¯¡¢ -¤½¤Î¾ì¹ç¤Ë¤Ï¥á¥â¥ê¥ê¡¼¥¯¤¬µ¯¤³¤Ã¤Æ¤·¤Þ¤¦¡£ +を同じ引き数で二度呼び出してしまう、 +1 バイトだけ行きすぎてしまう (off-by-one バグ) などがこれに当たる。 +しかし、これらのエラーの全てを防ぐことができるわけではなく、 +その場合にはメモリリークが起こってしまう。 .B MALLOC_CHECK_ -¤¬ 0 ¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢¥Ò¡¼¥×¤ÎÇ˲õ¤òÌۤäÆ̵»ë¤¹¤ë¡£ -1 ¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤¬É¸½à¥¨¥é¡¼½ÐÎϤËɽ¼¨¤µ¤ì¤ë¡£ -2 ¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢¤¿¤À¤Á¤Ë +が 0 にセットされていると、ヒープの破壊を黙って無視する。 +1 にセットされていると、診断メッセージが標準エラー出力に表示される。 +2 にセットされていると、ただちに .BR abort (3) -¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ -3 ¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤¬É¸½à¥¨¥é¡¼½ÐÎϤËɽ¼¨¤µ¤ì¡¢ -¥×¥í¥°¥é¥à¤Ï¶¯À©½ªÎ» (abort) ¤µ¤ì¤ë¡£ +が呼び出される。 +3 にセットされていると、診断メッセージが標準エラー出力に表示され、 +プログラムは強制終了 (abort) される。 .B MALLOC_CHECK_ -¤Ë 0 °Ê³°¤ÎÃͤò¥»¥Ã¥È¤·¤ÆÌò¤ËΩ¤Ä¾õ¶·¤È¤·¤Æ¤Ï¡¢ -¼ÂºÝ¤Î¥×¥í¥»¥¹¤Î¥¯¥é¥Ã¥·¥å¤¬¤º¤Ã¤È¸å¤Ëµ¯¤³¤ê¡¢ -ËÜÅö¤Î¸¶°ø¤òõ¤·½Ð¤¹¤Î¤¬Èó¾ï¤Ëº¤Æñ¤Ê¾ì¹ç¤Ê¤É¤¬µó¤²¤é¤ì¤ë¤À¤í¤¦¡£ -.SH ¥Ð¥° -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢Linux ¤Ï³Ú´ÑŪ¥á¥â¥êÇÛÃÖÀïά¤òÍѤ¤¤Æ¤¤¤ë¡£ -¤Ä¤Þ¤ê¡¢ +に 0 以外の値をセットして役に立つ状況としては、 +実際のプロセスのクラッシュがずっと後に起こり、 +本当の原因を探し出すのが非常に困難な場合などが挙げられるだろう。 +.SH バグ +デフォルトでは、Linux は楽観的メモリ配置戦略を用いている。 +つまり、 .BR malloc () -¤¬ NULL ¤Ç¤Ê¤¤ÃͤòÊÖ¤·¤Æ¤â¡¢¤½¤Î¥á¥â¥ê¤¬¼ÂºÝ¤ËÍøÍѲÄǽ¤Ç¤¢¤ë¤³¤È¤¬ -Êݾڤµ¤ì¤Ê¤¤¡£¤³¤ì¤ÏËÜÅö¤Ë¤Þ¤º¤¤¥Ð¥°¤Ç¤¢¤ë¡£ -¥·¥¹¥Æ¥à¤¬¥á¥â¥êÉÔ­¾õÂ֤ˤʤ俤Ȥ­¡¢°­Ì¾¹â¤¤¥á¥â¥êÉÔ­²ò·è´ï (OOM killer) -¤Ë¤è¤Ã¤Æ°ì¤Ä¤Þ¤¿¤ÏÊ£¿ô¤Î¥×¥í¥»¥¹¤¬ºï½ü¤µ¤ì¤ë¡£ -ÆÍÁ³¤¢¤ë¥×¥í¥»¥¹¤¬ºï½ü¤µ¤ì¤ë¤Î¤¬Ë¾¤Þ¤·¤¯¤Ê¤¤¾õ¶·¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤Æ¡¢ -¤·¤«¤â¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤¬½½Ê¬¤ËºÇ¶á¤Î¤â¤Î¤Ç¤¢¤ì¤Ð¡¢¤³¤Î¥á¥â¥ê¤ò -³ä¤êÅö¤Æ²á¤®¤ëÆ°ºî (overcommitting behavior) ¤ò°Ê²¼¤Î¥³¥Þ¥ó¥É¤Ç -̵¸ú¤Ë¤Ç¤­¤ë¡£ +が NULL でない値を返しても、そのメモリが実際に利用可能であることが +保証されない。これは本当にまずいバグである。 +システムがメモリ不足状態になったとき、悪名高いメモリ不足解決器 (OOM killer) +によって一つまたは複数のプロセスが削除される。 +突然あるプロセスが削除されるのが望ましくない状況で使用されていて、 +しかもカーネルのバージョンが十分に最近のものであれば、このメモリを +割り当て過ぎる動作 (overcommitting behavior) を以下のコマンドで +無効にできる。 .in +4n .sp .nf @@ -264,12 +264,12 @@ Glibc .fi .in -¥«¡¼¥Í¥ë¤ÎÉÕ°ʸ½ñ¤Î +カーネルの付属文書の .I vm/overcommit-accounting -¤È +と .I sysctl/vm.txt -¤â»²¾È¤Î¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +も参照のこと。 +.SH 関連項目 .BR brk (2), .BR posix_memalign (3) .\" .BR mallopt (3), diff --git a/release/man3/malloc_hook.3 b/release/man3/malloc_hook.3 index 0d0a857e..66a5d5d9 100644 --- a/release/man3/malloc_hook.3 +++ b/release/man3/malloc_hook.3 @@ -12,11 +12,11 @@ .\" Translated Thu 05 Dec 2002 by Akihiro MOTOKI .\" .TH MALLOC_HOOK 3 2002-07-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 __malloc_hook, __malloc_initialize_hook, __memalign_hook, __free_hook, __realloc_hook, -__after_morecore_hook \- malloc ¥Ç¥Ð¥Ã¥°ÍѤÎÊÑ¿ô -.SH ½ñ¼° +__after_morecore_hook \- malloc デバッグ用の変数 +.SH 書式 .nf .B "#include " .sp @@ -34,69 +34,69 @@ __after_morecore_hook \- malloc .sp .B "void (*__after_morecore_hook)(void);" .fi -.SH ÀâÌÀ -GNU C ¥é¥¤¥Ö¥é¥ê¤Ç¤Ï¡¢Å¬Àڤʥե寴ؿô (hook function) ¤ò»ØÄꤹ¤ë¤³¤È¤Ç +.SH 説明 +GNU C ライブラリでは、適切なフック関数 (hook function) を指定することで .BR malloc (3), .BR realloc (3), .BR free (3) -¤ÎÆ°ºî¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£Î㤨¤Ð¡¢Æ°Åª¤Ë¥á¥â¥ê³ä¤êÅö¤Æ¤ò¹Ô¤¦ -¥×¥í¥°¥é¥à¤Î¥Ç¥Ð¥Ã¥°¤Ë¤³¤ì¤é¤Î¥Õ¥Ã¥¯¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +の動作を変更することができる。例えば、動的にメモリ割り当てを行う +プログラムのデバッグにこれらのフックを使うことができる。 .LP -ÊÑ¿ô +変数 .B __malloc_initialize_hook -¤Ï malloc ¤Î¼ÂÁõ¤¬½é´ü²½¤µ¤ì¤ëºÝ¤Ë°ìÅÙ¤À¤±¸Æ¤Ð¤ì¤ë´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤³¤ÎÊÑ¿ô¤Ï½ñ¤­´¹¤¨²Äǽ (weak) ¤Ç¤¢¤ê¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥óÆâ¤Ç -°Ê²¼¤Î¤è¤¦¤ÊÄêµÁ¤Ç¾å½ñ¤­¤Ç¤­¤ë: +は malloc の実装が初期化される際に一度だけ呼ばれる関数へのポインタである。 +この変数は書き換え可能 (weak) であり、アプリケーション内で +以下のような定義で上書きできる: .nf void (*__malloc_initialize_hook)(void) = my_init_hook; .fi -¤Ê¤ª¡¢´Ø¿ô +なお、関数 .IR my_init_hook () -¤ÇÁ´¤Æ¤Î¥Õ¥Ã¥¯¤Î½é´ü²½¤ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +で全てのフックの初期化をすることができる。 .LP .BR __malloc_hook , .BR __realloc_hook , .BR __memalign_hook , .B __free_hook -¤Ç»Ø¤µ¤ì¤ë 4 ¤Ä¤Î´Ø¿ô¤Ï¡¢³Æ¡¹ +で指される 4 つの関数は、各々 .BR malloc (3), .BR realloc (3), .BR memalign (3), .BR free (3) -¤È¤è¤¯»÷¤¿¥×¥í¥È¥¿¥¤¥×¤ò»ý¤Ã¤Æ¤¤¤ë¤¬¡¢ -°ìÈֺǸå¤Î°ú¤­¿ô +とよく似たプロトタイプを持っているが、 +一番最後の引き数 .I caller -¤ò¤È¤ëÅÀ¤¬°Û¤Ê¤ë¡£ -°ú¤­¿ô +をとる点が異なる。 +引き数 .I caller -¤Ë¤Ï¡¢ +には、 .BR malloc (3) -¤Ê¤É¤Î¸Æ¤Ó½Ð¤·¸µ (caller) ¤Î¥¢¥É¥ì¥¹¤¬³ÊǼ¤µ¤ì¤ë¡£ +などの呼び出し元 (caller) のアドレスが格納される。 .LP -ÊÑ¿ô +変数 .B __after_morecore_hook -¤Ï¡¢Îΰè¤ÎÄɲÃÍ׵᤬¤¢¤ê +は、領域の追加要求があり .BR sbrk (2) -¤¬¸Æ¤Ð¤ì¤¿¸å¤ÇËè²ó¸Æ¤Ó½Ð¤µ¤ì¤ë´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -.SH ½àµò -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH Îã -¤³¤ì¤é¤ÎÊÑ¿ô¤Î»È¤¤Êý¤Î´Êñ¤ÊÎã¤ò°Ê²¼¤Ë¼¨¤¹¡£ +が呼ばれた後で毎回呼び出される関数へのポインタである。 +.SH 準拠 +これらの関数は GNU による拡張である。 +.SH 例 +これらの変数の使い方の簡単な例を以下に示す。 .sp .nf #include #include -/* »È¤ª¤¦¤È¤¹¤ë¥Õ¥Ã¥¯¤Î¥×¥í¥È¥¿¥¤¥×Àë¸À */ +/* 使おうとするフックのプロトタイプ宣言 */ static void my_init_hook(void); static void *my_malloc_hook(size_t, const void *); -/* ¸µ¡¹¤Î¥Õ¥Ã¥¯¤òÊݸ¤¹¤ë¤¿¤á¤ÎÊÑ¿ô */ +/* 元々のフックを保存するための変数 */ static void *(*old_malloc_hook)(size_t, const void *); -/* C ¥é¥¤¥Ö¥é¥ê¤«¤é¸Æ¤Ð¤ì¤ë½é´ü²½¥Õ¥Ã¥¯¤ò¾å½ñ¤­¤¹¤ë */ +/* C ライブラリから呼ばれる初期化フックを上書きする */ void (*__malloc_initialize_hook) (void) = my_init_hook; static void @@ -111,27 +111,27 @@ my_malloc_hook(size_t size, const void *caller) { void *result; - /* ¸µ¡¹¤Î¥Õ¥Ã¥¯¤òÁ´¤ÆÌ᤹ */ + /* 元々のフックを全て戻す */ __malloc_hook = old_malloc_hook; - /* malloc ¤ÎºÆµ¢Åª¸Æ¤Ó½Ð¤· */ + /* malloc の再帰的呼び出し */ result = malloc(size); - /* ¸½ºßÀßÄꤵ¤ì¤Æ¤¤¤ë¥Õ¥Ã¥¯ (underlying hook) ¤òÊݸ¤¹¤ë */ + /* 現在設定されているフック (underlying hook) を保存する */ old_malloc_hook = __malloc_hook; - /* printf() ¤Ï malloc() ¤ò¸Æ¤Ó½Ð¤¹²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç - ¤³¤³¤Ç¤â¥¬¡¼¥É¤ò¹Ô¤¦ (¸µ¡¹¤Î¥Õ¥Ã¥¯¤Î¤Þ¤Þ¤Ë¤·¤Æ¤ª¤¯) */ + /* printf() は malloc() を呼び出す可能性があるので + ここでもガードを行う (元々のフックのままにしておく) */ printf("malloc(%u) called from %p returns %p\\n", (unsigned int) size, caller, result); - /* ¥æ¡¼¥¶¤¬»È¤ª¤¦¤È¤¹¤ë¥Õ¥Ã¥¯¤òºÆÀßÄꤹ¤ë */ + /* ユーザが使おうとするフックを再設定する */ __malloc_hook = my_malloc_hook; return result; } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mallinfo (3), .BR malloc (3), .BR mcheck (3), diff --git a/release/man3/mblen.3 b/release/man3/mblen.3 index 67deecfe..55d94fc0 100644 --- a/release/man3/mblen.3 +++ b/release/man3/mblen.3 @@ -18,59 +18,59 @@ .\" .\" .TH MBLEN 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -mblen \- ¼¡¤Î¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤Î¥Ð¥¤¥È¿ô¤òÊÖ¤¹ -.SH ½ñ¼° +.SH 名前 +mblen \- 次のマルチバイト文字のバイト数を返す +.SH 書式 .nf .B #include .sp .BI "int mblen(const char *" s ", size_t " n ); .fi -.SH ÀâÌÀ -\fIs\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¡¼¤Ç¤Ê¤±¤ì¤Ð¡¢ +.SH 説明 +\fIs\fP が NULL ポインターでなければ、 .BR mblen () -´Ø¿ô¤Ï \fIs\fP ¤«¤é»Ï¤Þ¤ëºÇÂç \fIn\fP ¥Ð¥¤¥È¤Î¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ò¸¡ºº¤·¤Æ¡¢ -¼¡¤Î´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò¼è¤ê½Ð¤¹¡£¤³¤ì¤Ë¤Ï +関数は \fIs\fP から始まる最大 \fIn\fP バイトのマルチバイト文字列を検査して、 +次の完全なマルチバイト文字を取り出す。これには .BR mblen () -´Ø¿ô¤Î¤ß¤¬»ÈÍѤ¹¤ëÀÅŪ¤Ç̾Á°¤Î¤Ê¤¤¥·¥Õ¥È¾õÂÖ¤¬»ÈÍѤµ¤ì¤ë¡£ -¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤¬¥Ê¥ë¥ï¥¤¥Éʸ»ú¤Ç¤Ê¤±¤ì¤Ð \fIs\fP ¤«¤é¾ÃÈñ¤µ¤ì¤ë -¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤¬¥Ê¥ë¥ï¥¤¥Éʸ»ú¤Ê¤é¤Ð 0 ¤òÊÖ¤¹¡£ +関数のみが使用する静的で名前のないシフト状態が使用される。 +マルチバイト文字がナルワイド文字でなければ \fIs\fP から消費される +バイト数を返す。マルチバイト文字がナルワイド文字ならば 0 を返す。 .PP -\fIs\fP ¤«¤é»Ï¤Þ¤ë \fIn\fP ¥Ð¥¤¥È¤¬´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò´Þ¤ó¤Ç -¤¤¤Ê¤±¤ì¤Ð¡¢ +\fIs\fP から始まる \fIn\fP バイトが完全なマルチバイト文字を含んで +いなければ、 .BR mblen () -¤Ï \-1 ¤òÊÖ¤¹¡£¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó -¤Ë¾éĹ¤Ê¥·¥Õ¥È¥·¡¼¥±¥ó¥¹¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤È¡¢ -\fIn\fP ¤¬ \fIMB_CUR_MAX\fP °Ê¾å¤Î¾ì¹ç¤Ë¤â -¤³¤Î¤è¤¦¤Ê¤³¤È¤¬µ¯¤³¤ê¤¨¤ë¡£ +は \-1 を返す。マルチバイト文字列 +に冗長なシフトシーケンスが含まれていると、 +\fIn\fP が \fIMB_CUR_MAX\fP 以上の場合にも +このようなことが起こりえる。 .PP -\fIs\fP ¤«¤é»Ï¤Þ¤ë¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎ󤬼¡¤Î´°Á´¤Êʸ»ú¤ÎÁ°¤Ë -ÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ò´Þ¤ó¤Ç¤¤¤ë¾ì¹ç¤Ë¤â¡¢ +\fIs\fP から始まるマルチバイト文字列が次の完全な文字の前に +不正なマルチバイト列を含んでいる場合にも、 .BR mblen () -¤Ï \-1 ¤òÊÖ¤¹¡£ +は \-1 を返す。 .PP .\" The Dinkumware doc and the Single UNIX specification say this, but .\" glibc doesn't implement this. -\fIs\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¡¼¤Ê¤é¤Ð¡¢ +\fIs\fP が NULL ポインターならば、 .BR mblen () -´Ø¿ô¤Ï¤³¤Î´Ø¿ô¤Î¤ß¤¬ -»ÈÍѤ¹¤ë¥·¥Õ¥È¾õÂÖ¤ò½é´ü²½¾õÂÖ¤ËÌᤷ¡¢¥·¥Õ¥È¾õÂÖ¤ò»ÈÍѤ·¤¿Ê¸»úÉä¹æ¤Î¾ì¹ç¤Ë -¤Ï¥¼¥í°Ê³°¤ò¡¢Ê¸»úÉä¹æ¤¬¥·¥Õ¥È¾õÂÖ¤ò»ý¤¿¤Ê¤¤¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ +関数はこの関数のみが +使用するシフト状態を初期化状態に戻し、シフト状態を使用した文字符号の場合に +はゼロ以外を、文字符号がシフト状態を持たない場合にはゼロを返す。 +.SH 返り値 .BR mblen () -´Ø¿ô¤Ï \fIs\fP ¤«¤é»Ï¤Þ¤ë¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ò¸¡ºº¤·¤Æ -¥Ê¥ë¥ï¥¤¥Éʸ»ú°Ê³°¤ò³Îǧ¤·¤¿¾ì¹ç¤Ë¤Ï¤½¤Î¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -¥Ê¥ë¥ï¥¤¥Éʸ»ú¤ò³Îǧ¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£ÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤Ë -Áø¶ø¤·¤¿¾ì¹ç¤ä´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò²òÀϤǤ­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï \-1 ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は \fIs\fP から始まるマルチバイト列を検査して +ナルワイド文字以外を確認した場合にはそのバイト数を返す。 +ナルワイド文字を確認した場合にはゼロを返す。不正なマルチバイト列に +遭遇した場合や完全なマルチバイト文字を解析できなかった場合には \-1 を返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR mblen () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ +カテゴリに依存している。 .PP .BR mbrlen (3) -´Ø¿ô¤ÏƱ¤¸µ¡Ç½¤Î¤è¤êÎɤ¤¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +関数は同じ機能のより良いインタフェースを提供する。 +.SH 関連項目 .BR mbrlen (3) diff --git a/release/man3/mbrlen.3 b/release/man3/mbrlen.3 index a4e93e14..8fb3e876 100644 --- a/release/man3/mbrlen.3 +++ b/release/man3/mbrlen.3 @@ -17,58 +17,58 @@ .\" by HANATAKA Shinya .\" .TH MBRLEN 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -mbrlen \- ¼¡¤Î¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ÎŤµ¤ò¥Ð¥¤¥È¿ô¤ÇÊÖ¤¹ -.SH ½ñ¼° +.SH 名前 +mbrlen \- 次のマルチバイト文字の長さをバイト数で返す +.SH 書式 .nf .B #include .sp .BI "size_t mbrlen(const char *" s ", size_t " n ", mbstate_t *" ps ); .fi -.SH ÀâÌÀ +.SH 説明 .BR mbrlen () -´Ø¿ô¤Ï \fIs\fP ¤«¤é»Ï¤Þ¤ë¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ò -ºÇÂç \fIn\fP ¥Ð¥¤¥ÈÄ´¤Ù¤Æ¼¡¤Î´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò¼è¤ê½Ð¤¹¡£ -Ʊ»þ¤Ë¥·¥Õ¥È¾õÂÖ \fI*ps\fP ¤ò¹¹¿·¤¹¤ë¡£ -¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤¬¥Ê¥ë¥ï¥¤¥Éʸ»ú¤Ç¤Ê¤±¤ì¤Ð \fIs\fP ¤«¤é -¾ÃÈñ¤¹¤ë¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£¥Ê¥ë¥ï¥¤¥Éʸ»ú¤Ê¤é¤Ð¥·¥Õ¥È¾õÂÖ \fI*ps\fP ¤ò -½é´ü¾õÂÖ¤ËÌᤷ¤Æ¡¢0 ¤òÊÖ¤¹¡£ +関数は \fIs\fP から始まるマルチバイト文字列を +最大 \fIn\fP バイト調べて次の完全なマルチバイト文字を取り出す。 +同時にシフト状態 \fI*ps\fP を更新する。 +マルチバイト文字がナルワイド文字でなければ \fIs\fP から +消費するバイト数を返す。ナルワイド文字ならばシフト状態 \fI*ps\fP を +初期状態に戻して、0 を返す。 .PP -\fIs\fP ¤«¤é»Ï¤Þ¤ë \fIn\fP ¥Ð¥¤¥È¤Îʸ»úÎ󤬴°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò´Þ¤ó¤Ç -¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï +\fIs\fP から始まる \fIn\fP バイトの文字列が完全なマルチバイト文字を含んで +いない場合には .BR mbrlen () -¤Ï \fI(size_t)\ \-2\fP ¤òÊÖ¤¹¡£ -¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤Ë¾éĹ¤Ê¥·¥Õ¥È¥·¡¼¥±¥ó¥¹¤ò´Þ¤Þ¤ì¤Æ¤¤¤ë¤È -\fIn\fP >= \fIMB_CUR_MAX\fP ¤Î»þ¤Ë¤â¤³¤Î¤è¤¦¤Ê¤³¤È¤¬µ¯¤³¤ê¤¨¤ë¡£ +は \fI(size_t)\ \-2\fP を返す。 +マルチバイト文字列に冗長なシフトシーケンスを含まれていると +\fIn\fP >= \fIMB_CUR_MAX\fP の時にもこのようなことが起こりえる。 .PP -\fIs\fP ¤«¤é»Ï¤Þ¤ë¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎ󤬡¢¼¡¤Î´°Á´¤Êʸ»ú¤ÎÁ°¤Ë -ÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ò´Þ¤ó¤Ç¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ +\fIs\fP から始まるマルチバイト文字列が、次の完全な文字の前に +不正なマルチバイト列を含んでいる場合には、 .BR mbrlen () -¤Ï -\fI(size_t)\ \-1\fP ¤òÊÖ¤· \fIerrno\fP ¤Ë \fBEILSEQ\fP ¤¬ÀßÄꤵ¤ì¤ë¡£ -¤³¤Î¾ì¹ç¤Î \fI*ps\fP ¤Ø¤Î±Æ¶Á¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +は +\fI(size_t)\ \-1\fP を返し \fIerrno\fP に \fBEILSEQ\fP が設定される。 +この場合の \fI*ps\fP への影響は未定義である。 .PP -\fIps\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¡¼¤Ê¤é¤Ð¡¢Âå¤ê¤Ë +\fIps\fP が NULL ポインターならば、代りに .BR mbrlen () -´Ø¿ô¤Î¤ß¤¬»ÈÍѤ¹¤ëÀÅŪ¤Ç̾Á°¤Î¤Ê¤¤¾õÂÖ¤¬»ÈÍѤµ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -¥Ê¥ë¥ï¥¤¥Éʸ»ú°Ê³°¤Îʸ»ú¤ò³Îǧ¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ +関数のみが使用する静的で名前のない状態が使用される。 +.SH 返り値 +ナルワイド文字以外の文字を確認した場合には、 .BR mbrlen () -´Ø¿ô¤Ï \fIs\fP -¤«¤é»Ï¤Þ¤ë¥Þ¥ë¥Á¥Ð¥¤¥ÈÎ󤫤é»ÈÍѤ·¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -¥Ê¥ë¥ï¥¤¥Éʸ»ú¤¬³Îǧ¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£ -ÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ËÁø¶ø¤·¤¿¾ì¹ç¤Ë¤Ï +関数は \fIs\fP +から始まるマルチバイト列から使用したバイト数を返す。 +ナルワイド文字が確認された場合にはゼロを返す。 +不正なマルチバイト列に遭遇した場合には .I "(size_t)\ \-1" -¤òÊÖ¤· -\fIerrno\fP ¤Ë \fBEILSEQ\fP ¤òÀßÄꤹ¤ë¡£ -´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò²òÀϤǤ­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï \fI(size_t)\ \-2\fP ¤òÊÖ¤¹¡£ -¤³¤ì¤Ï \fIn\fP ¤òÁý¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -.SH ½àµò +を返し +\fIerrno\fP に \fBEILSEQ\fP を設定する。 +完全なマルチバイト文字を解析できなかった場合には \fI(size_t)\ \-2\fP を返す。 +これは \fIn\fP を増さなければならないことを意味する。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR mbrlen () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +カテゴリに依存している。 +.SH 関連項目 .BR mbrtowc (3) diff --git a/release/man3/mbrtowc.3 b/release/man3/mbrtowc.3 index a61e35fd..ee45f4d8 100644 --- a/release/man3/mbrtowc.3 +++ b/release/man3/mbrtowc.3 @@ -19,88 +19,88 @@ .\" Updated Thu Dec 13 JST 2001 by Kentaro Shirakata .\" .TH MBRTOWC 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -mbrtowc \- ¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ò¥ï¥¤¥Éʸ»ú¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mbrtowc \- マルチバイト列をワイド文字に変換する +.SH 書式 .nf .B #include .sp .BI "size_t mbrtowc(wchar_t *" pwc ", const char *" s ", size_t " n \ ", mbstate_t *" ps ); .fi -.SH ÀâÌÀ -¤³¤Î´Ø¿ô¤¬ÍѤ¤¤é¤ì¤ë¾ì¹ç¡¢Ä̾ï \fIs\fP ¤¬ NULL ¤Ç¤Ê¤¯ \fIpwc\fP ¤â NULL ¤Ç -¤Ê¤¤¡£¤³¤Î¾ì¹ç¤Ï¡¢ +.SH 説明 +この関数が用いられる場合、通常 \fIs\fP が NULL でなく \fIpwc\fP も NULL で +ない。この場合は、 .BR mbrtowc () -´Ø¿ô¤Ï \fIs\fP ¤«¤é»Ï¤Þ¤ëºÇÂç \fIn\fP ¥Ð¥¤¥È¤Î -¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò¸¡ºº¤·¤Æ¡¢¼¡¤Î´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ò¼è¤ê½Ð¤·¡¢ -¤½¤ì¤ò¥ï¥¤¥Éʸ»ú¤ËÊÑ´¹¤·¤Æ \fI*pwc\fP ¤Ë³ÊǼ¤¹¤ë¡£ -Ʊ»þ¤Ë¥·¥Õ¥È¾õÂÖ \fI*ps\fP ¤ò¹¹¿·¤¹¤ë¡£ -ÊÑ´¹¤·¤¿¥ï¥¤¥Éʸ»ú¤¬ L\(aq\\0\(aq (NULL ¥ï¥¤¥Éʸ»ú) ¤Ç¤Ê¤±¤ì¤Ð¡¢ -\fIs\fP ¤«¤é¾ÃÈñ¤¹¤ë¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -ÊÑ´¹¤·¤¿¥ï¥¤¥Éʸ»ú¤¬ L\(aq\\0\(aq ¤Î¾ì¹ç¤Ë¤Ï¥·¥Õ¥È¾õÂÖ \fI*ps\fP ¤ò -½é´ü¾õÂÖ¤ËÌᤷ¤Æ 0 ¤òÊÖ¤¹¡£ +関数は \fIs\fP から始まる最大 \fIn\fP バイトの +マルチバイト文字を検査して、次の完全なマルチバイト文字列を取り出し、 +それをワイド文字に変換して \fI*pwc\fP に格納する。 +同時にシフト状態 \fI*ps\fP を更新する。 +変換したワイド文字が L\(aq\\0\(aq (NULL ワイド文字) でなければ、 +\fIs\fP から消費するバイト数を返す。 +変換したワイド文字が L\(aq\\0\(aq の場合にはシフト状態 \fI*ps\fP を +初期状態に戻して 0 を返す。 .PP -\fIs\fP ¤«¤é»Ï¤Þ¤ë \fIn\fP ¥Ð¥¤¥È¤¬´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò´Þ¤ó¤Ç¤¤¤Ê¤¤ -¾ì¹ç¤Ë¤Ï¡¢ +\fIs\fP から始まる \fIn\fP バイトが完全なマルチバイト文字を含んでいない +場合には、 .BR mbrtowc () -¤Ï \fI(size_t)\ \-2\fP ¤òÊÖ¤¹¡£ -¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤Ë¾éĹ¤Ê¥·¥Õ¥È¥·¡¼¥±¥ó¥¹¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤È¡¢ -\fIn\fP >= \fIMB_CUR_MAX\fP ¤Î»þ¤Ë¤â¤³¤Î¤è¤¦¤Ê¤³¤È¤¬µ¯¤³¤ê¤¨¤ë¡£ +は \fI(size_t)\ \-2\fP を返す。 +マルチバイト文字列に冗長なシフトシーケンスが含まれていると、 +\fIn\fP >= \fIMB_CUR_MAX\fP の時にもこのようなことが起こりえる。 .PP -\fIs\fP ¤«¤é»Ï¤Þ¤ë¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎ󤬡¢¼¡¤Î´°Á´¤Êʸ»ú¤ÎÁ°¤Ë -ÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ò´Þ¤ó¤Ç¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ +\fIs\fP から始まるマルチバイト文字列が、次の完全な文字の前に +不正なマルチバイト列を含んでいる場合には、 .BR mbrtowc () -¤Ï -\fI(size_t)\ \-1\fP ¤òÊÖ¤·¡¢\fIerrno\fP ¤Ë \fBEILSEQ\fP ¤òÀßÄꤹ¤ë¡£ -¤³¤Î¾ì¹ç¤Ï \fI*ps\fP ¤Ø¤Î±Æ¶Á¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +は +\fI(size_t)\ \-1\fP を返し、\fIerrno\fP に \fBEILSEQ\fP を設定する。 +この場合は \fI*ps\fP への影響は未定義である。 .PP -\fIs\fP ¤¬ NULL ¤Ç¤Ê¤¯ \fIpwc\fP ¤¬ NULL ¤Î¾ì¹ç¤Ï +\fIs\fP が NULL でなく \fIpwc\fP が NULL の場合は .BR mbrtowc () -´Ø¿ô¤Ï -¾åµ­¤ÈƱÍͤËÆ°ºî¤¹¤ë¤¬¡¢ÊÑ´¹¤·¤¿¥ï¥¤¥Éʸ»ú¤Ï¥á¥â¥ê¤Ë¤Ï½ñ¤­¹þ¤Þ¤ì¤Ê¤¤¡£ +関数は +上記と同様に動作するが、変換したワイド文字はメモリには書き込まれない。 .PP puts \fI*ps\fP in the initial state and returns 0. -»°ÈÖÌܤξì¹ç¤È¤·¤Æ \fIs\fP ¤¬ NULL ¤Î¾ì¹ç¡¢ \fIpwc\fP ¤È \fIn\fP ¤Ï -̵»ë¤µ¤ì¤ë¡£ -\fI*ps\fP ¤¬É½¸½¤¹¤ëÊÑ´¹¾õÂÖ¤¬ÉÔ´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÊÑ´¹¤ò¼¨¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ +三番目の場合として \fIs\fP が NULL の場合、 \fIpwc\fP と \fIn\fP は +無視される。 +\fI*ps\fP が表現する変換状態が不完全なマルチバイト文字変換を示している場合は、 .BR mbrtowc () -´Ø¿ô¤Ï \fI(size_t)\ \-1\fP ¤òÊÖ¤·¡¢ -\fIerrno\fP ¤Ë \fBEILSEQ\fP ¤ò¥»¥Ã¥È¤·¡¢ -\fI*ps\fP ¤Ï̤ÄêµÁ¾õÂ֤Τޤޤˤ¹¤ë¡£ -¤µ¤â¤Ê¤±¤ì¤Ð¡¢ +関数は \fI(size_t)\ \-1\fP を返し、 +\fIerrno\fP に \fBEILSEQ\fP をセットし、 +\fI*ps\fP は未定義状態のままにする。 +さもなければ、 .BR mbrtowc () -´Ø¿ô¤Ï \fI*ps\fP ¤ò½é´ü¾õÂ֤ˤ·¤Æ 0 ¤òÊÖ¤¹¡£ +関数は \fI*ps\fP を初期状態にして 0 を返す。 .PP -¾åµ­¤ÎÁ´¤Æ¤Î¾ì¹ç¤Ë¤ª¤¤¤Æ¡¢\fIps\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¡¼¤Ê¤é¤ÐÂå¤ï¤ê¤Ë -mbrtowc ´Ø¿ô¤Î¤ß¤¬»ÈÍѤ¹¤ëÀÅŪ¤Ç̾Á°¤Î¤Ê¤¤¾õÂÖ¤¬»ÈÍѤµ¤ì¤ë¡£ -¤µ¤â¤Ê¤±¤ì¤Ð¡¢\fI*ps\fP ¤ÏÍ­¸ú¤Ê \fImbstate_t\fP ¥ª¥Ö¥¸¥§¥¯¥È¤Ç -¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -\fImbstate_t\fP ¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¢¤ë \fIa\fP ¤Ï¥¼¥í¤ÇËä¤á¤ë¤³¤È¤Ë¤è¤Ã¤Æ -½é´ü¾õÂ֤˽é´ü²½¤Ç¤­¤ë¡£°Ê²¼¤ËÎã¤ò¼¨¤¹¡£ +上記の全ての場合において、\fIps\fP が NULL ポインターならば代わりに +mbrtowc 関数のみが使用する静的で名前のない状態が使用される。 +さもなければ、\fI*ps\fP は有効な \fImbstate_t\fP オブジェクトで +なければならない。 +\fImbstate_t\fP オブジェクトである \fIa\fP はゼロで埋めることによって +初期状態に初期化できる。以下に例を示す。 .sp .in +4n memset(&a, 0, sizeof(a)); .in -.SH ÊÖ¤êÃÍ -L\(aq\\0\(aq °Ê³°¤Î¥ï¥¤¥Éʸ»ú¤òǧ¼±¤·¤¿¾ì¹ç¤Ë¤Ï +.SH 返り値 +L\(aq\\0\(aq 以外のワイド文字を認識した場合には .BR mbrtowc () -´Ø¿ô¤Ï \fIs\fP -¤«¤é»Ï¤Þ¤ë¥Þ¥ë¥Á¥Ð¥¤¥ÈÎ󤫤é²òÀϤ·¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -L\(aq\\0\(aq ¥ï¥¤¥Éʸ»ú¤òǧ¼±¤·¤¿¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ -ÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ËÁø¶ø¤·¤¿¾ì¹ç¤Ë¤Ï +関数は \fIs\fP +から始まるマルチバイト列から解析したバイト数を返す。 +L\(aq\\0\(aq ワイド文字を認識した場合には 0 を返す。 +不正なマルチバイト列に遭遇した場合には .I (size_t)\ \-1 -¤òÊÖ¤·¡¢ -\fIerrno\fP ¤Ë \fBEILSEQ\fP ¤òÀßÄꤹ¤ë¡£´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò -²òÀϤǤ­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï +を返し、 +\fIerrno\fP に \fBEILSEQ\fP を設定する。完全なマルチバイト文字を +解析できなかった場合には .I (size_t)\ \-2 -¤òÊÖ¤· \fIn\fP ¤òÁý²Ã¤µ¤»¤ëɬÍפ¬¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ -.SH ½àµò +を返し \fIn\fP を増加させる必要があることを示す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR mbrtowc () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +カテゴリに依存している。 +.SH 関連項目 .BR mbsrtowcs (3) diff --git a/release/man3/mbsinit.3 b/release/man3/mbsinit.3 index 46fda0b3..edadbb45 100644 --- a/release/man3/mbsinit.3 +++ b/release/man3/mbsinit.3 @@ -16,71 +16,71 @@ .\" Translated Tue Jan 11 00:56:13 JST 2000 .\" by HANATAKA Shinya .\" -.\"WORD: initial shift state ½é´ü¥·¥Õ¥È¾õÂÖ +.\"WORD: initial shift state 初期シフト状態 .\" .TH MBSINIT 3 2000-11-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -mbsinit \- ½é´ü¥·¥Õ¥È¾õÂÖ¤«¤É¤¦¤«¤ò¸¡ºº¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mbsinit \- 初期シフト状態かどうかを検査する +.SH 書式 .nf .B #include .sp .BI "int mbsinit(const mbstate_t *" ps ); .fi -.SH ÀâÌÀ -ʸ»ú¤ò¥Þ¥ë¥Á¥Ð¥¤¥Èɽ¸½¤È¥ï¥¤¥Éʸ»úɽ¸½¤Î´Ö¤ÇÊÑ´¹¤¹¤ë¾ì¹ç¤Ë¤Ï -\fImbstate_t\fP ·¿¤ÎÊÑ´¹¾õÂÖ¤ò»ÈÍѤ¹¤ë¡£Ê¸»úÎó¤ÎÊÑ´¹¤ÏÍ­¸Â¾õÂÖ¥Þ¥·¥ó -¤ò»ÈÍѤ¹¤ë¡£¤¤¤¯¤é¤«¤Îʸ»ú¤ÎÊÑ´¹¤ò´°Î»¤·¤¿¸å¤Ë¡¢»Ä¤ê¤Îʸ»ú¤ò½èÍý¤¹¤ë -¤¿¤á¤Ë¾õÂÖ¤òÊݸ¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£¤³¤Î¤è¤¦¤ÊÊÑ´¹¾õÂÖ¤Ï -ISO-2022 ¤ä UTF-7 ¤Î¤è¤¦¤ÊÉä¹æ¤ò°·¤¦¤Î¤ËɬÍפȤµ¤ì¤ë¡£ +.SH 説明 +文字をマルチバイト表現とワイド文字表現の間で変換する場合には +\fImbstate_t\fP 型の変換状態を使用する。文字列の変換は有限状態マシン +を使用する。いくらかの文字の変換を完了した後に、残りの文字を処理する +ために状態を保存しておく必要があるかもしれない。このような変換状態は +ISO-2022 や UTF-7 のような符号を扱うのに必要とされる。 .PP -½é´ü¾õÂ֤ȤÏʸ»úÎó¤ÎÊÑ´¹¤ò³«»Ï¤¹¤ë»þ¤Î¾õÂ֤Ǥ¢¤ë¡£¾õÂ֤ˤÏÆó¼ïÎब -¸ºß¤·¡¢°ì¤Ä¤Ï +初期状態とは文字列の変換を開始する時の状態である。状態には二種類が +存在し、一つは .BR mbsrtowcs (3) -¤Î¤è¤¦¤Ê¥Þ¥ë¥Á¥Ð¥¤¥È¤ò¥ï¥¤¥Éʸ»ú¤Ë -ÊÑ´¹¤¹¤ë´Ø¿ô¤Ç»ÈÍѤµ¤ì¤ë¡£¤â¤¦°ì¤Ä¤Ï +のようなマルチバイトをワイド文字に +変換する関数で使用される。もう一つは .BR wcsrtombs (3) -¤Î¤è¤¦¤Ê -¥ï¥¤¥Éʸ»ú¤ò¥Þ¥ë¥Á¥Ð¥¤¥È¤ËÊÑ´¹¤¹¤ë´Ø¿ô¤Ç»ÈÍѤµ¤ì¤ë¡£¤·¤«¤·Î¾Êý¤È¤â -\fImbstate_t\fP ¤Ë³ÊǼ¤µ¤ì¡¢½é´ü¾õÂ֤Ȥ·¤ÆƱ¤¸É½¸½¤ò»ý¤Ä¡£ +のような +ワイド文字をマルチバイトに変換する関数で使用される。しかし両方とも +\fImbstate_t\fP に格納され、初期状態として同じ表現を持つ。 .PP -8¥Ó¥Ã¥ÈÉä¹æ¤Ë¤ª¤¤¤Æ¤ÏÁ´¤Æ¤Î¾õÂ֤Ͻé´ü¾õÂÖ¤ÈÅù²Á¤Ç¤¢¤ë¡£ -UTF-8, EUC-*, BIG5, SJIS ¤Î¤è¤¦¤Ê¿¥Ð¥¤¥ÈÉä¹æ¤Ë¤ª¤¤¤Æ¥ï¥¤¥Éʸ»ú¤«¤é -¿¥Ð¥¤¥Èʸ»ú¤Ø¤ÎÊÑ´¹´Ø¿ô¤ÏÈó½é´ü¾õÂ֤ˤϤʤé¤Ê¤¤¡£ -¤·¤«¤· +8ビット符号においては全ての状態は初期状態と等価である。 +UTF-8, EUC-*, BIG5, SJIS のような多バイト符号においてワイド文字から +多バイト文字への変換関数は非初期状態にはならない。 +しかし .BR mbrtowc (3) -¤Î¤è¤¦¤Ê¿¥Ð¥¤¥Èʸ»ú¤«¤é¥ï¥¤¥Éʸ»ú¤Ø¤ÎÊÑ´¹´Ø¿ô¤Ç¤Ï -ʸ»ú¤Î²ò¼á¤ÎÅÓÃæ¤ÇÈó½é´ü¾õÂ֤Ȥʤë¾ì¹ç¤¬¤¢¤ë¡£ +のような多バイト文字からワイド文字への変換関数では +文字の解釈の途中で非初期状態となる場合がある。 .PP -½é´ü¾õÂ֤Π+初期状態の .I mbstate_t -¤òºîÀ®¤¹¤ëÊýË¡¤Î°ì¤Ä¤Ï¡¢¤½¤ì¤ò¥¼¥í¤ËÀßÄꤹ¤ë¤³¤È¤Ç¤¢¤ë: +を作成する方法の一つは、それをゼロに設定することである: .nf mbstate_t state; memset(&state,0,sizeof(mbstate_t)); .fi .PP -Linux ¤Ë¤ª¤¤¤Æ¤Ï°Ê²¼¤ÎÊýË¡¤Ç¤âƱÍͤǤ¢¤ë¤¬¡¢¥³¥ó¥Ñ¥¤¥é¡¼¤Î·Ù¹ð¤¬ -À¸À®¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +Linux においては以下の方法でも同様であるが、コンパイラーの警告が +生成されるかもしれない。 .nf mbstate_t state = { 0 }; .fi .PP .BR mbsinit () -¤Ï \fI*ps\fP ¤¬½é´ü¾õÂ֤˰ìÃפ¹¤ë¤«¤É¤¦¤«¤ò¸¡ºº¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ +は \fI*ps\fP が初期状態に一致するかどうかを検査する。 +.SH 返り値 .BR mbsinit () -¤Ï \fI*ps\fP ¤¬½é´ü¾õÂ֤ξì¹ç¤ä NULL ¥Ý¥¤¥ó¥¿¡¼¤Î¾ì¹ç¤Ë¤Ï -¥¼¥í°Ê³°¤òÊÖ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£ -.SH ½àµò +は \fI*ps\fP が初期状態の場合や NULL ポインターの場合には +ゼロ以外を返す。それ以外の場合にはゼロを返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR mbsinit () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +カテゴリに依存している。 +.SH 関連項目 .BR mbsrtowcs (3), .BR wcsrtombs (3) diff --git a/release/man3/mbsnrtowcs.3 b/release/man3/mbsnrtowcs.3 index b97b9f53..43da63c9 100644 --- a/release/man3/mbsnrtowcs.3 +++ b/release/man3/mbsnrtowcs.3 @@ -16,9 +16,9 @@ .\" by HANATAKA Shinya .\" .TH MBSNRTOWCS 3 2011-10-01 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -mbsnrtowcs \- ¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ò¥ï¥¤¥Éʸ»úÎó¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mbsnrtowcs \- マルチバイト文字列をワイド文字列に変換する +.SH 書式 .nf .B #include .sp @@ -27,9 +27,9 @@ mbsnrtowcs \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR mbsnrtowcs (): @@ -37,76 +37,76 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR mbsnrtowcs () -´Ø¿ô¤Ï +関数は .BR mbsrtowcs (3) -´Ø¿ô¤Ë»÷¤Æ¤¤¤ë¤¬ -ÊÑ´¹¤¹¤ë¥Ð¥¤¥È¿ô¤¬ \fI*src\fP ¤«¤é»Ï¤Þ¤ë \fInms\fP ¥Ð¥¤¥È¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë -ÅÀ¤¬°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ +関数に似ているが +変換するバイト数が \fI*src\fP から始まる \fInms\fP バイトに制限されている +点が異なっている。 .PP -\fIdest\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¡¼¤Ç¤Ê¤±¤ì¤Ð +\fIdest\fP が NULL ポインターでなければ .BR mbsnrtowcs () -´Ø¿ô¤Ï -\fI*src\fP ¤«¤é¤Î¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ÎºÇÂç \fInms\fP ¤Þ¤Ç¤ò -\fIdest\fP ¤«¤é¤Î¥ï¥¤¥Éʸ»úÎó¤ËÊÑ´¹¤¹¤ë¡£ -ºÇÂç \fIlen\fP ʸ»ú¤Î¥ï¥¤¥Éʸ»ú¤¬ \fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£ -Ʊ»þ¤Ë¥·¥Õ¥È¾õÂÖ \fI*ps\fP ¤ò¹¹¿·¤¹¤ë¡£ -ÊÑ´¹¤Ï +関数は +\fI*src\fP からのマルチバイト文字列の最大 \fInms\fP までを +\fIdest\fP からのワイド文字列に変換する。 +最大 \fIlen\fP 文字のワイド文字が \fIdest\fP に書き込まれる。 +同時にシフト状態 \fI*ps\fP を更新する。 +変換は .I "mbrtowc(dest, *src, n, ps)" -¤ò¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤¬À®¸ù¤¹¤ë¸Â¤ê¡¢·«¤êÊÖ¤·¼Â¹Ô¤·¤¿¤Î¤È¼Â¼ÁŪ¤ËƱÍͤǤ¢¤ë¡£ -¤³¤³¤Ç¤Î \fIn\fP ¤ÏÀµ¤Î¿ô¤Ç¤¢¤ê¡¢·«¤êÊÖ¤·¤´¤È¤Ë \fIdest\fP ¤¬ 1 Áý²Ã¤µ¤»¤é¤ì¡¢ -\fI*src\fP ¤¬¾ÃÈñ¤·¤¿¥Ð¥¤¥È¿ô¤À¤±Áý²Ã¤µ¤»¤é¤ì¤ë¡£ÊÑ´¹¤Ï°Ê²¼¤Î»°¤Ä¤Î -¤¤¤º¤ì¤«¤Î¾ò·ï¤ÇÄä»ß¤¹¤ë: +を、この呼び出しが成功する限り、繰り返し実行したのと実質的に同様である。 +ここでの \fIn\fP は正の数であり、繰り返しごとに \fIdest\fP が 1 増加させられ、 +\fI*src\fP が消費したバイト数だけ増加させられる。変換は以下の三つの +いずれかの条件で停止する: .IP 1. 3 -ÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ËÁø¶ø¤·¤¿¡£¤³¤Î¾ì¹ç¤Ë¤Ï \fI*src\fP ¤ÏÉÔÀµ¤Ê -¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ò»Ø¤¹¤è¤¦¤Ë¤·¤Æ¡¢ +不正なマルチバイト列に遭遇した。この場合には \fI*src\fP は不正な +マルチバイト列を指すようにして、 .I (size_t)\ \-1 -¤òÊÖ¤·¡¢\fIerrno\fP ¤Ë \fBEILSEQ\fP ¤òÀßÄꤹ¤ë¡£ +を返し、\fIerrno\fP に \fBEILSEQ\fP を設定する。 .IP 2. -\fInms\fP À©¸Â¤Ë¤è¤Ã¤Æ¶¯À©Åª¤ËÄä»ß¤¹¤ë¤«¡¢\fIlen\fP ʸ»ú¤Î L\(aq\\0\(aq °Ê³°¤Î -¥ï¥¤¥Éʸ»ú¤ò \fIdest\fP ¤Ë³ÊǼ¤·¤¿¾ì¹ç¡£¤³¤Î¾ì¹ç¤Ï \fI*src\fP ¤Ï -¼¡¤ËÊÑ´¹¤µ¤ì¤ë¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ò»Ø¤¹¤è¤¦¤Ë¤·¤Æ¡¢\fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤¿ -¥ï¥¤¥Éʸ»ú¤Î¿ô¤òÊÖ¤¹¡£ +\fInms\fP 制限によって強制的に停止するか、\fIlen\fP 文字の L\(aq\\0\(aq 以外の +ワイド文字を \fIdest\fP に格納した場合。この場合は \fI*src\fP は +次に変換されるマルチバイト列を指すようにして、\fIdest\fP に書き込まれた +ワイド文字の数を返す。 .IP 3. -¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎ󤬽ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú (\(aq\\0\(aq) -¤Þ¤Ç´Þ¤á¤Æ´°Á´¤ËÊÑ´¹¤µ¤ì¤¿¾ì¹ç¡£ -(¤³¤Î»þ¡¢ÉûºîÍѤȤ·¤Æ \fI*ps\fP ¤¬½é´ü¾õÂÖ¤ËÌᤵ¤ì¤ë¡£) -¤³¤Î¾ì¹ç¤Ï \fI*src\fP ¤Ë¤Ï NULL ¤¬ÀßÄꤵ¤ì¡¢ -\fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤¿Ê¸»ú¿ô (½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú¤Ï´Þ¤Þ¤ì¤Ê¤¤) ¤òÊÖ¤¹¡£ +マルチバイト文字列が終端の NULL ワイド文字 (\(aq\\0\(aq) +まで含めて完全に変換された場合。 +(この時、副作用として \fI*ps\fP が初期状態に戻される。) +この場合は \fI*src\fP には NULL が設定され、 +\fIdest\fP に書き込まれた文字数 (終端の NULL ワイド文字は含まれない) を返す。 .PP -\fIdest\fP ¤¬ NULL ¤Î¾ì¹ç¡¢\fIlen\fP ¤Ï̵»ë¤µ¤ì¡¢¾åµ­¤ÈƱÍͤÎÊÑ´¹¤¬ -¹Ô¤ï¤ì¤ë¤¬¡¢ÊÑ´¹¤µ¤ì¤¿¥ï¥¤¥Éʸ»ú¤Ï¥á¥â¥ê¤Ë½ñ¤­¹þ¤Þ¤ì¤º¡¢ÊÑ´¹Àè¤Î¾å¸Â -¤¬Â¸ºß¤·¤Ê¤¤¡£ +\fIdest\fP が NULL の場合、\fIlen\fP は無視され、上記と同様の変換が +行われるが、変換されたワイド文字はメモリに書き込まれず、変換先の上限 +が存在しない。 .PP -¾åµ­¤Î¤É¤Á¤é¤Î¾ì¹ç¤Ç¤â¡¢\fIps\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¡¼¤Ê¤é¤Ð¡¢Âå¤ê¤Ë -mbsnrtowcs ´Ø¿ô¤Î¤ß¤¬»ÈÍѤ¹¤ëÀÅŪ¤Ç̾Á°¤Î¤Ê¤¤¾õÂÖ¤¬»ÈÍѤµ¤ì¤ë¡£ +上記のどちらの場合でも、\fIps\fP が NULL ポインターならば、代りに +mbsnrtowcs 関数のみが使用する静的で名前のない状態が使用される。 .PP -¥×¥í¥°¥é¥Þ¡¼¤Ï \fIdest\fP ¤ËºÇÄã¤Ç¤â \fIlen\fP ¥ï¥¤¥Éʸ»ú¤ò½ñ¤­¹þ¤à¤³ -¤È¤¬¤Ç¤­¤ë¶õ´Ö¤¬¤¢¤ë¤³¤È¤òÊݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +プログラマーは \fIdest\fP に最低でも \fIlen\fP ワイド文字を書き込むこ +とができる空間があることを保証しなければならない。 +.SH 返り値 .BR mbsnrtowcs () -´Ø¿ô¤Ï¥ï¥¤¥Éʸ»úÎó¤ËÊÑ´¹´°Î»¤·¤¿¥ï¥¤¥Éʸ»ú¤Î¿ô¤òÊÖ¤¹¡£ -½ªÃ¼¤Î¥Ê¥ë¥ï¥¤¥Éʸ»ú¤Ï´Þ¤Þ¤Ê¤¤¡£ÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ËÁø¶ø¤·¤¿¾ì¹ç¤Ë¤Ï +関数はワイド文字列に変換完了したワイド文字の数を返す。 +終端のナルワイド文字は含まない。不正なマルチバイト列に遭遇した場合には .I (size_t)\ \-1 -¤òÊÖ¤·¡¢\fIerrno\fP ¤Ë \fBEILSEQ\fP ¤òÀßÄꤹ¤ë¡£ -.SH ½àµò +を返し、\fIerrno\fP に \fBEILSEQ\fP を設定する。 +.SH 準拠 POSIX.1-2008. -.SH Ãí°Õ +.SH 注意 .BR mbsnrtowcs () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ +カテゴリに依存している。 .PP -\fIps\fP ¤È¤·¤Æ NULL ¤òÅϤ¹¤³¤È¤Ï¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Ç¤Ï°ÂÁ´¤Ç¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +\fIps\fP として NULL を渡すことはマルチスレッドでは安全でない。 +.SH 関連項目 .BR iconv (3), .BR mbsrtowcs (3) diff --git a/release/man3/mbsrtowcs.3 b/release/man3/mbsrtowcs.3 index 550743ae..e83ab2df 100644 --- a/release/man3/mbsrtowcs.3 +++ b/release/man3/mbsrtowcs.3 @@ -17,70 +17,70 @@ .\" by HANATAKA Shinya .\" .TH MBSRTOWCS 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -mbsrtowcs \- ¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ò¥ï¥¤¥Éʸ»úÎó¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mbsrtowcs \- マルチバイト文字列をワイド文字列に変換する +.SH 書式 .nf .B #include .sp .BI "size_t mbsrtowcs(wchar_t *" dest ", const char **" src , .BI " size_t " len ", mbstate_t *" ps ); .fi -.SH ÀâÌÀ -\fIdest\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¡¼¤Ç¤Ê¤±¤ì¤Ð¡¢ +.SH 説明 +\fIdest\fP が NULL ポインターでなければ、 .BR mbsrtowcs () -´Ø¿ô¤Ï -¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó \fI*src\fP ¤ò \fIdest\fP ¤«¤é»Ï¤Þ¤ë¥ï¥¤¥Éʸ»úÎó¤Ë -ÊÑ´¹¤¹¤ë¡£\fIdest\fP ¤Ë¤ÏºÇÂç¤Ç \fIlen\fP ʸ»ú¤Î¥ï¥¤¥Éʸ»ú¤¬ -½ñ¤­¹þ¤Þ¤ì¤ë¡£Æ±»þ¤Ë¥·¥Õ¥È¾õÂÖ \fI*ps\fP ¤ò¹¹¿·¤¹¤ë¡£ -ÊÑ´¹¤Ï +関数は +マルチバイト文字列 \fI*src\fP を \fIdest\fP から始まるワイド文字列に +変換する。\fIdest\fP には最大で \fIlen\fP 文字のワイド文字が +書き込まれる。同時にシフト状態 \fI*ps\fP を更新する。 +変換は .I "mbrtowc(dest, *src, n, ps)" -¤ò¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤¬À®¸ù¤¹¤ë¸Â¤ê·«¤êÊÖ¤·¼Â¹Ô¤·¤¿¤Î¤È¼Â¼ÁŪ¤ËƱÍͤǤ¢¤ë¡£ -¤³¤³¤Ç \fIn\fP ¤ÏÀµ¤Î¿ô¤Ç¤¢¤ê¡¢·«¤êÊÖ¤·¤´¤È¤Ë \fIdest\fP ¤¬ 1 Áý²Ã¤µ¤»¤é¤ì¡¢ -\fI*src\fP ¤¬¾ÃÈñ¤·¤¿¥Ð¥¤¥È¿ô¤À¤±Áý²Ã¤µ¤»¤é¤ì¤ë¡£ÊÑ´¹¤Ï°Ê²¼¤Î»°¤Ä¤Î -¤¤¤º¤ì¤«¤Î¾ò·ï¤ÇÄä»ß¤¹¤ë: +を、この呼び出しが成功する限り繰り返し実行したのと実質的に同様である。 +ここで \fIn\fP は正の数であり、繰り返しごとに \fIdest\fP が 1 増加させられ、 +\fI*src\fP が消費したバイト数だけ増加させられる。変換は以下の三つの +いずれかの条件で停止する: .IP 1. 3 -ÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ËÁø¶ø¤·¤¿¡£¤³¤Î¾ì¹ç¤Ë¤Ï \fI*src\fP ¤ÏÉÔÀµ¤Ê -¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ò»Ø¤¹¤è¤¦¤Ë¤·¤Æ¡¢ +不正なマルチバイト列に遭遇した。この場合には \fI*src\fP は不正な +マルチバイト列を指すようにして、 .I (size_t)\ \-1 -¤òÊÖ¤·¡¢\fIerrno\fP ¤Ë \fBEILSEQ\fP ¤òÀßÄꤹ¤ë¡£ +を返し、\fIerrno\fP に \fBEILSEQ\fP を設定する。 .IP 2. -\fIlen\fP ʸ»ú¤Î L\(aq\\0\(aq °Ê³°¤Î¥ï¥¤¥Éʸ»ú¤ò \fIdest\fP ¤Ë³ÊǼ¤·¤¿¾ì¹ç¡£ -¤³¤Î¾ì¹ç¤Ï \fI*src\fP ¤Ï¼¡¤ËÊÑ´¹¤µ¤ì¤ë¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ò»Ø¤¹¤è¤¦¤Ë¤·¤Æ¡¢ -\fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¥ï¥¤¥Éʸ»ú¤Î¿ô¤òÊÖ¤¹¡£ +\fIlen\fP 文字の L\(aq\\0\(aq 以外のワイド文字を \fIdest\fP に格納した場合。 +この場合は \fI*src\fP は次に変換されるマルチバイト列を指すようにして、 +\fIdest\fP に書き込まれたワイド文字の数を返す。 .IP 3. -¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎ󤬽ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú (\(aq\\0\(aq) ¤Þ¤Ç´Þ¤á¤Æ´°Á´¤Ë -ÊÑ´¹¤µ¤ì¤¿¾ì¹ç¡£¤³¤Î»þ¡¢ÉûºîÍѤȤ·¤Æ \fI*ps\fP ¤¬½é´ü¾õÂÖ¤ËÌᤵ¤ì¤ë¡£ -¤³¤Î¾ì¹ç¤Ï \fI*src\fP ¤Ë¤Ï NULL ¤¬ÀßÄꤵ¤ì¡¢½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú¤ò½ü¤¤¤Æ -\fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤¿Ê¸»ú¿ô¤òÊÖ¤¹¡£ +マルチバイト文字列が終端の NULL ワイド文字 (\(aq\\0\(aq) まで含めて完全に +変換された場合。この時、副作用として \fI*ps\fP が初期状態に戻される。 +この場合は \fI*src\fP には NULL が設定され、終端の NULL ワイド文字を除いて +\fIdest\fP に書き込まれた文字数を返す。 .PP -\fIdest\fP ¤¬ NULL ¤Î¾ì¹ç¡¢\fIlen\fP ¤Ï̵»ë¤µ¤ì¡¢¾åµ­¤ÈƱÍͤÎÊÑ´¹¤¬ -¹Ô¤ï¤ì¤ë¤¬¡¢ÊÑ´¹¤µ¤ì¤¿¥ï¥¤¥Éʸ»ú¤Ï¥á¥â¥ê¤Ë½ñ¤­¹þ¤Þ¤ì¤º¡¢ÊÑ´¹Àè¤Î¾å¸Â -¤¬Â¸ºß¤·¤Ê¤¤¡£ +\fIdest\fP が NULL の場合、\fIlen\fP は無視され、上記と同様の変換が +行われるが、変換されたワイド文字はメモリに書き込まれず、変換先の上限 +が存在しない。 .PP -¾åµ­¤Î¤É¤Á¤é¤Î¾ì¹ç¤Ç¤â¡¢\fIps\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¡¼¤Ê¤é¤Ð¡¢ -Âå¤ê¤Ë +上記のどちらの場合でも、\fIps\fP が NULL ポインターならば、 +代りに .BR mbsrtowcs () -´Ø¿ô¤Î¤ß¤¬»ÈÍѤ¹¤ëÀÅŪ¤Ç̾Á°¤Î¤Ê¤¤¾õÂÖ¤¬»ÈÍѤµ¤ì¤ë¡£ +関数のみが使用する静的で名前のない状態が使用される。 .PP -¥×¥í¥°¥é¥Þ¡¼¤Ï \fIdest\fP ¤ËºÇÄã¤Ç¤â \fIlen\fP ¥ï¥¤¥Éʸ»ú¤ò½ñ¤­¹þ¤à¤³ -¤È¤¬¤Ç¤­¤ë¶õ´Ö¤¬¤¢¤ë¤³¤È¤òÊݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +プログラマーは \fIdest\fP に最低でも \fIlen\fP ワイド文字を書き込むこ +とができる空間があることを保証しなければならない。 +.SH 返り値 .BR mbsrtowcs () -´Ø¿ô¤Ï¥ï¥¤¥Éʸ»úÎó¤ËÊÑ´¹´°Î»¤·¤¿¥ï¥¤¥Éʸ»ú¤Î¿ô¤òÊÖ¤¹¡£ -½ªÃ¼¤Î¥Ê¥ë¥ï¥¤¥Éʸ»ú¤Ï´Þ¤Þ¤Ê¤¤¡£ÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ËÁø¶ø¤·¤¿¾ì¹ç¤Ë¤Ï +関数はワイド文字列に変換完了したワイド文字の数を返す。 +終端のナルワイド文字は含まない。不正なマルチバイト列に遭遇した場合には .I (size_t)\ \-1 -¤òÊÖ¤·¡¢\fIerrno\fP ¤Ë \fBEILSEQ\fP ¤òÀßÄꤹ¤ë¡£ -.SH ½àµò +を返し、\fIerrno\fP に \fBEILSEQ\fP を設定する。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR mbsrtowcs () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ +カテゴリに依存している。 .PP -\fIps\fP ¤È¤·¤Æ NULL ¤òÅϤ¹¤³¤È¤Ï¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Ç¤Ï°ÂÁ´¤Ç¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +\fIps\fP として NULL を渡すことはマルチスレッドでは安全でない。 +.SH 関連項目 .BR iconv (3), .BR mbsnrtowcs (3), .BR mbstowcs (3) diff --git a/release/man3/mbstowcs.3 b/release/man3/mbstowcs.3 index 67c4e9f9..7a98fa37 100644 --- a/release/man3/mbstowcs.3 +++ b/release/man3/mbstowcs.3 @@ -17,61 +17,61 @@ .\" by HANATAKA Shinya .\" .TH MBSTOWCS 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -mbstowcs \- ¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ò¥ï¥¤¥Éʸ»úÎó¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mbstowcs \- マルチバイト文字列をワイド文字列に変換する +.SH 書式 .nf .B #include .sp .BI "size_t mbstowcs(wchar_t *" dest ", const char *" src ", size_t " n ); .fi -.SH ÀâÌÀ -\fIdest\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¡¼¤Ç¤Ê¤±¤ì¤Ð +.SH 説明 +\fIdest\fP が NULL ポインターでなければ .BR mbstowcs () -´Ø¿ô¤Ï -¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó \fI*src\fP ¤ò \fIdest\fP ¤«¤é»Ï¤Þ¤ë¥ï¥¤¥Éʸ»úÎó¤Ë -ÊÑ´¹¤¹¤ë¡£\fIdest\fP ¤Ë¤ÏºÇÂç¤Ç \fIn\fP ʸ»ú¤Î¥ï¥¤¥Éʸ»ú¤¬ -½ñ¤­¹þ¤Þ¤ì¤ë¡£ÊÑ´¹¤Ï½é´ü¾õÂ֤dz«»Ï¤µ¤ì¡¢ -°Ê²¼¤Î»°¤Ä¤Î¤¤¤º¤ì¤«¤Î¾ò·ï¤ÇÄä»ß¤¹¤ë: +関数は +マルチバイト文字列 \fI*src\fP を \fIdest\fP から始まるワイド文字列に +変換する。\fIdest\fP には最大で \fIn\fP 文字のワイド文字が +書き込まれる。変換は初期状態で開始され、 +以下の三つのいずれかの条件で停止する: .IP 1. 3 -ÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ËÁø¶ø¤·¤¿¡£¤³¤Î¾ì¹ç¤Ë¤Ï +不正なマルチバイト列に遭遇した。この場合には .I (size_t)\ \-1 -¤òÊÖ¤¹¡£ +を返す。 .IP 2. -\fIn\fP ʸ»ú¤Î L\(aq\\0\(aq °Ê³°¤Î¥ï¥¤¥Éʸ»ú¤ò \fIdest\fP ¤Ë³ÊǼ¤·¤¿¾ì¹ç¡£ -¤³¤Î¾ì¹ç¤Ï \fI*src\fP ¤¬¼¡¤ËÊÑ´¹¤µ¤ì¤ë¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ò»Ø¤¹¤è¤¦¤Ë¤·¤Æ¡¢ -\fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¥ï¥¤¥Éʸ»ú¤Î¿ô¤òÊÖ¤¹¡£¤·¤«¤·¤³¤Î»Ø¤·¤Æ¤¤¤ë -¾ì½ê¤Î¥·¥Õ¥È¾õÂ֤ϼº¤ï¤ì¤ë¡£ +\fIn\fP 文字の L\(aq\\0\(aq 以外のワイド文字を \fIdest\fP に格納した場合。 +この場合は \fI*src\fP が次に変換されるマルチバイト列を指すようにして、 +\fIdest\fP に書き込まれたワイド文字の数を返す。しかしこの指している +場所のシフト状態は失われる。 .IP 3. -¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎ󤬽ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú (\(aq\\0\(aq) ¤Þ¤Ç´Þ¤á¤Æ´°Á´¤Ë -ÊÑ´¹¤µ¤ì¤¿¾ì¹ç¡£¤³¤Î¾ì¹ç¤Ï½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú¤ò½ü¤¤¤Æ -\fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤¿Ê¸»ú¿ô¤òÊÖ¤¹¡£ +マルチバイト文字列が終端の NULL ワイド文字 (\(aq\\0\(aq) まで含めて完全に +変換された場合。この場合は終端の NULL ワイド文字を除いて +\fIdest\fP に書き込まれた文字数を返す。 .PP -¥×¥í¥°¥é¥Þ¡¼¤Ï \fIdest\fP ¤ËºÇÄã¤Ç¤â \fIn\fP ¥ï¥¤¥Éʸ»ú¤ò½ñ¤­¹þ¤à¤³ -¤È¤¬¤Ç¤­¤ë¶õ´Ö¤¬¤¢¤ë¤³¤È¤òÊݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +プログラマーは \fIdest\fP に最低でも \fIn\fP ワイド文字を書き込むこ +とができる空間があることを保証しなければならない。 .PP -\fIdest\fP ¤¬ NULL ¤Î¾ì¹ç¡¢\fIn\fP ¤Ï̵»ë¤µ¤ì¡¢¾åµ­¤ÈƱÍͤÎÊÑ´¹¤¬ -¹Ô¤ï¤ì¤ë¤¬¡¢ÊÑ´¹¤µ¤ì¤¿¥ï¥¤¥Éʸ»ú¤Ï¥á¥â¥ê¤Ë½ñ¤­¹þ¤Þ¤ì¤º¡¢ÊÑ´¹Àè¤Î¾å¸Â -¤¬Â¸ºß¤·¤Ê¤¤¡£ +\fIdest\fP が NULL の場合、\fIn\fP は無視され、上記と同様の変換が +行われるが、変換されたワイド文字はメモリに書き込まれず、変換先の上限 +が存在しない。 .PP -¾åµ­¤Î 2. ¤Î¾ì¹ç¤òÈò¤±¤ë¤¿¤á¤Ë¥×¥í¥°¥é¥Þ¡¼¤Ï \fIn\fP ¤¬ -\fImbstowcs(NULL,src,0)+1\fP °Ê¾å¤Ç¤¢¤ë¤³¤È¤òÊݾڤ¹¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +上記の 2. の場合を避けるためにプログラマーは \fIn\fP が +\fImbstowcs(NULL,src,0)+1\fP 以上であることを保証すべきである。 +.SH 返り値 .BR mbstowcs () -´Ø¿ô¤Ï¥ï¥¤¥Éʸ»úÎó¤ËÊÑ´¹´°Î»¤·¤¿¥ï¥¤¥Éʸ»ú¤Î¿ô¤òÊÖ¤¹¡£ -½ªÃ¼¤Î¥Ê¥ë¥ï¥¤¥Éʸ»ú¤Ï´Þ¤Þ¤Ê¤¤¡£ÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ËÁø¶ø¤·¤¿¾ì¹ç¤Ë¤Ï +関数はワイド文字列に変換完了したワイド文字の数を返す。 +終端のナルワイド文字は含まない。不正なマルチバイト列に遭遇した場合には .I (size_t)\ \-1 -¤òÊÖ¤¹¡£ -.SH ½àµò +を返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR mbstowcs () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ +カテゴリに依存している。 .PP .BR mbsrtowcs (3) -´Ø¿ô¤ÏƱ¤¸µ¡Ç½¤Î¤è¤êÎɤ¤¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÄ󶡤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +関数は同じ機能のより良いインターフェースを提供する。 +.SH 関連項目 .BR mbsrtowcs (3), .BR wcstombs(3) diff --git a/release/man3/mbtowc.3 b/release/man3/mbtowc.3 index 81fe65a3..2818fa6b 100644 --- a/release/man3/mbtowc.3 +++ b/release/man3/mbtowc.3 @@ -17,70 +17,70 @@ .\" by HANATAKA Shinya .\" .TH MBTOWC 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -mbtowc \- ¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ò¥ï¥¤¥Éʸ»ú¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mbtowc \- マルチバイト列をワイド文字に変換する +.SH 書式 .nf .B #include .sp .BI "int mbtowc(wchar_t *" pwc ", const char *" s ", size_t " n ); .fi -.SH ÀâÌÀ -¤³¤Î´Ø¿ô¤¬ÍѤ¤¤é¤ì¤ë¾ì¹ç¡¢Ä̾ï \fIs\fP ¤¬ NULL ¤Ç¤Ê¤¯ \fIpwc\fP ¤â NULL -¤Ç¤Ê¤¤¡£¤³¤Î¾ì¹ç¤Ï +.SH 説明 +この関数が用いられる場合、通常 \fIs\fP が NULL でなく \fIpwc\fP も NULL +でない。この場合は .BR mbtowc () -´Ø¿ô¤Ï \fIs\fP ¤«¤é»Ï¤Þ¤ë -ºÇÂç \fIn\fP ¥Ð¥¤¥È¤Î¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ò¸¡ºº¤·¤Æ¡¢¼¡¤Î´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥È -ʸ»ú¤ò¼è¤ê½Ð¤·¡¢¤½¤ì¤ò¥ï¥¤¥Éʸ»ú¤ËÊÑ´¹¤·¤Æ \fI*pwc\fP ¤Ë³ÊǼ¤¹¤ë¡£ -Ʊ»þ¤Ë mbtowc ´Ø¿ô¤Î¤ß¤¬»ÈÍѤ¹¤ëÆâÉô¾õÂÖ¤ò¹¹¿·¤¹¤ë¡£\fIs\fP ¤¬ NULL ¥Ð¥¤¥È -(\(aq\\0\(aq) °Ê³°¤ò»Ø¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢\fIs\fP ¤«¤é¾ÃÈñ¤¹¤ë¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -\fIs\fP ¤¬ NULL ¥Ð¥¤¥È¤ò»Ø¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ +関数は \fIs\fP から始まる +最大 \fIn\fP バイトのマルチバイト文字列を検査して、次の完全なマルチバイト +文字を取り出し、それをワイド文字に変換して \fI*pwc\fP に格納する。 +同時に mbtowc 関数のみが使用する内部状態を更新する。\fIs\fP が NULL バイト +(\(aq\\0\(aq) 以外を指している場合は、\fIs\fP から消費するバイト数を返す。 +\fIs\fP が NULL バイトを指している場合には 0 を返す。 .PP -\fIs\fP ¤«¤é»Ï¤Þ¤ë \fIn\fP ¥Ð¥¤¥È¤¬´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò´Þ¤ó¤Ç -¤¤¤Ê¤¤¾ì¹ç¤äÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ò´Þ¤ó¤Ç¤¤¤ë¾ì¹ç¤Ë¤Ï +\fIs\fP から始まる \fIn\fP バイトが完全なマルチバイト文字を含んで +いない場合や不正なマルチバイト列を含んでいる場合には .BR mbtowc () -¤Ï -\-1 ¤òÊÖ¤¹¡£¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤Ë¾éĹ¤Ê¥·¥Õ¥È¥·¡¼¥±¥ó¥¹¤¬ -´Þ¤Þ¤ì¤Æ¤¤¤ë¤È \fIn\fP >= \fIMB_CUR_MAX\fP ¤Î¾ì¹ç¤â¤³¤Î¤è¤¦¤Ê¤³¤È¤¬ -µ¯¤³¤ê¤¨¤ë¡£ +は +\-1 を返す。マルチバイト文字列に冗長なシフトシーケンスが +含まれていると \fIn\fP >= \fIMB_CUR_MAX\fP の場合もこのようなことが +起こりえる。 .PP -\fIs\fP ¤¬ NULL ¤Ç¤Ê¤¯ \fIpwc\fP ¤¬ NULL ¤Î¾ì¹ç¤Ï +\fIs\fP が NULL でなく \fIpwc\fP が NULL の場合は .BR mbtowc () -´Ø¿ô¤Ï -¾åµ­¤ÈƱÍͤËÆ°ºî¤¹¤ë¤¬¡¢ÊÑ´¹¤·¤¿¥ï¥¤¥Éʸ»ú¤Ï¥á¥â¥ê¤Ë¤Ï½ñ¤­¹þ¤Þ¤ì¤Ê¤¤¡£ +関数は +上記と同様に動作するが、変換したワイド文字はメモリには書き込まれない。 .PP .\" The Dinkumware doc and the Single UNIX specification say this, but .\" glibc doesn't implement this. -»°ÈÖÌܤξì¹ç¤È¤·¤Æ \fIs\fP ¤¬ NULL ¤Î¾ì¹ç¤Ï \fIpwc\fP ¤È \fIn\fP ¤Ï -̵»ë¤µ¤ì¤ë¡£ +三番目の場合として \fIs\fP が NULL の場合は \fIpwc\fP と \fIn\fP は +無視される。 .BR mbtowc () -´Ø¿ô¤Î¤ß¤¬»ÈÍѤ¹¤ë¥·¥Õ¥È¾õÂ֤Ͻé´ü¾õÂÖ¤Ë -Ìᤵ¤ì¤ë¡£¤½¤·¤Æʸ»úÉä¹æ¤¬¥·¥Õ¥È¾õÂ֤˰͸¤¹¤ë¤Ê¤é¤Ð¥¼¥í°Ê³°¤ò¡¢Ê¸»úÉä¹æ¤¬ -¾õÂ֤ˤè¤é¤Ê¤¤¤Ê¤é¤Ð¥¼¥í¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -\fIs\fP ¤¬ NULL ¤Ç¤Ê¤±¤ì¤Ð +関数のみが使用するシフト状態は初期状態に +戻される。そして文字符号がシフト状態に依存するならばゼロ以外を、文字符号が +状態によらないならばゼロを返す。 +.SH 返り値 +\fIs\fP が NULL でなければ .BR mbtowc () -´Ø¿ô¤Ï \fIs\fP ¤«¤é¾ÃÈñ¤·¤¿ -¥Ð¥¤¥È¿ô¤ò¡¢\fIs\fP ¤¬¥Ê¥ëʸ»ú¤ò»Ø¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¥¼¥í¤ò¡¢ -ÊÑ´¹¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ +関数は \fIs\fP から消費した +バイト数を、\fIs\fP がナル文字を指している場合はゼロを、 +変換に失敗した場合は \-1 を返す。 .PP -\fIs\fP ¤¬ NULL ¤Ê¤é¤Ð +\fIs\fP が NULL ならば .BR mbtowc () -´Ø¿ô¤Ïʸ»úÉä¹æ¤¬¥·¥Õ¥È¾õÂ֤˰͸ -¤·¤Æ¤¤¤ì¤Ð¥¼¥í°Ê³°¤ò¡¢¾õÂ֤ˤè¤é¤Ê¤±¤ì¤Ð¥¼¥í¤òÊÖ¤¹¡£ -.SH ½àµò +関数は文字符号がシフト状態に依存 +していればゼロ以外を、状態によらなければゼロを返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR mbtowc () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ +カテゴリに依存している。 .PP -¤³¤Î´Ø¿ô¤Ï¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Ç¤Ï°ÂÁ´¤Ç¤Ï¤Ê¤¤¡£ +この関数はマルチスレッドでは安全ではない。 .BR mbrtowc (3) -´Ø¿ô¤Ï -Ʊ¤¸µ¡Ç½¤Î¤è¤êÎɤ¤¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÄ󶡤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +関数は +同じ機能のより良いインターフェースを提供する。 +.SH 関連項目 .BR MB_CUR_MAX (3), .BR mbrtowc (3), .BR mbstowcs (3) diff --git a/release/man3/memccpy.3 b/release/man3/memccpy.3 index e4e1e3e2..5cfa769d 100644 --- a/release/man3/memccpy.3 +++ b/release/man3/memccpy.3 @@ -31,31 +31,31 @@ .\" Translated Tue Feb 21 0:48:30 JST 1997 .\" by Ueyama Rui .TH MEMCCPY 3 1993-04-10 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -memccpy \- ¥á¥â¥êÎΰè¤ò¥³¥Ô¡¼¤¹¤ë -.SH ½ñ¼° +.SH 名前 +memccpy \- メモリ領域をコピーする +.SH 書式 .nf .B #include .sp .BI "void *memccpy(void *" dest ", const void *" src ", int " c ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .BR memccpy () -¤Ï¡¢¥á¥â¥êÎΰè \fIsrc\fP ¤«¤é¥á¥â¥êÎΰè \fIdest\fP ¤Ë -ºÇÂç¤Ç \fIn\fP ¥Ð¥¤¥È¤Î¥³¥Ô¡¼¤ò¹Ô¤¦¡£ -\fIn\fP ¥Ð¥¤¥È¥³¥Ô¡¼¤¹¤ëÁ°¤Ëʸ»ú \fIc\fP ¤¬¸«¤Ä¤«¤ë¤È¡¢ -¤½¤³¤Ç¥³¥Ô¡¼¤òÃæ»ß¤¹¤ë¡£ +は、メモリ領域 \fIsrc\fP からメモリ領域 \fIdest\fP に +最大で \fIn\fP バイトのコピーを行う。 +\fIn\fP バイトコピーする前に文字 \fIc\fP が見つかると、 +そこでコピーを中止する。 -¥³¥Ô¡¼¸µ¤È¥³¥Ô¡¼Àè¤Î¥á¥â¥êÎΰ褬½Å¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -·ë²Ì¤ÏÉÔÄê¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +コピー元とコピー先のメモリ領域が重なっている場合、 +結果は不定である。 +.SH 返り値 .BR memccpy () -¤Ï¡¢\fIdest\fP Ãæ¤Ë¸«¤Ä¤«¤Ã¤¿ \fIc\fP ¤Î -¼¡¤Ë¤¢¤ë¥­¥ã¥é¥¯¥¿¡¼·¿¤ÎÊÑ¿ô¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢NULL ¤òÊÖ¤¹¡£ -.SH ½àµò +は、\fIdest\fP 中に見つかった \fIc\fP の +次にあるキャラクター型の変数を指すポインタを返す。 +見つからなかった場合、NULL を返す。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bcopy (3), .BR memcpy (3), .BR memmove (3), diff --git a/release/man3/memchr.3 b/release/man3/memchr.3 index 57633b89..5327579d 100644 --- a/release/man3/memchr.3 +++ b/release/man3/memchr.3 @@ -35,9 +35,9 @@ .\" Updated 2008-08-11, Akihiro MOTOKI .\" .TH MEMCHR 3 2009-12-04 "" "Linux Programmer's Manual" -.SH ̾Á° -memchr, memrchr, rawmemchr \- ʸ»ú¤òõ¤¹¤¿¤á¤Ë¥á¥â¥ê¤ò¥¹¥­¥ã¥ó¤¹¤ë -.SH ½ñ¼° +.SH 名前 +memchr, memrchr, rawmemchr \- 文字を探すためにメモリをスキャンする +.SH 書式 .nf .B #include @@ -49,86 +49,86 @@ memchr, memrchr, rawmemchr \- ʸ .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR memrchr (): .BR rawmemchr (): _GNU_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR memchr () -´Ø¿ô¤Ï¡¢¥Ý¥¤¥ó¥¿ \fIs\fP ¤¬»Ø¤·¼¨¤¹¥á¥â¥ê¥Ö¥í¥Ã¥¯¤Î -ÀèƬ¤Î \fIn\fP ¥Ð¥¤¥È¤«¤éʸ»ú \fIc\fP ¤òõ¤¹¡£ -ºÇ½é¤Ë \fIc\fP (unsigned char ¤È²ò¼á¤µ¤ì¤ë) ¤¬¸«¤Ä¤«¤Ã¤¿»þÅÀ¤ÇÆ°ºî¤¬Ää»ß¤¹¤ë¡£ +関数は、ポインタ \fIs\fP が指し示すメモリブロックの +先頭の \fIn\fP バイトから文字 \fIc\fP を探す。 +最初に \fIc\fP (unsigned char と解釈される) が見つかった時点で動作が停止する。 .PP .BR memrchr () -´Ø¿ô¤Ï +関数は .BR memchr () -´Ø¿ô¤Ë»÷¤Æ¤¤¤ë¤¬¡¢ -ÀèƬ¤«¤é½çÊý¸þ¤Ëõ¤¹¤Î¤Ç¤Ï¤Ê¤¯¡¢ -¥Ý¥¤¥ó¥¿ \fIs\fP ¤¬»Ø¤·¼¨¤¹ \fIn\fP ¥Ð¥¤¥È¤Î¥á¥â¥ê¥Ö¥í¥Ã¥¯¤Î -ËöÈø¤«¤éµÕ¸þ¤­¤Ëõ¤¹¡£ +関数に似ているが、 +先頭から順方向に探すのではなく、 +ポインタ \fIs\fP が指し示す \fIn\fP バイトのメモリブロックの +末尾から逆向きに探す。 .BR rawmemchr () -´Ø¿ô¤Ï +関数は .BR memchr () -¤ÈƱÍͤÀ¤¬¡¢ -ʸ»ú +と同様だが、 +文字 .I c -¤¬Ê¸»úÎó +が文字列 .I s -Æâ¤Î¤É¤³¤«¤Ë¤¢¤ë¤³¤È¤òÁ°Äó¤Ë¤·¤Æ -(¤Ä¤Þ¤ê¡¢¥×¥í¥°¥é¥Þ¤Ï¤½¤Î¤³¤È¤òÃΤäƤ¤¤ë)¡¢ -ºÇŬ²½¤·¤¿ÊýË¡¤Çʸ»ú +内のどこかにあることを前提にして +(つまり、プログラマはそのことを知っている)、 +最適化した方法で文字 .I c -¤Î¸¡º÷¤ò¼Â¹Ô¤¹¤ë -(¤¹¤Ê¤ï¤Á¡¢½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤Î¥Á¥§¥Ã¥¯¤â¹Ô¤ï¤ì¤Ê¤¤¤·¡¢ -¸¡º÷ÈϰϤξå¸Â¤ò¼¨¤¹°ú¤­¿ô +の検索を実行する +(すなわち、終端の NULL バイトのチェックも行われないし、 +検索範囲の上限を示す引き数 .I n -¤â»ÈÍѤµ¤ì¤Ê¤¤)¡£ -ʸ»ú +も使用されない)。 +文字 .I c -¤¬Ê¸»úÎó +が文字列 .I s -Æâ¤Ë¤Ê¤¤¾ì¹ç¡¢ +内にない場合、 .BR rawmemchr () -¤Ïʸ»úÎóËöÈø¤ò±Û¤¨¤Æ¸¡º÷¤ò¼Â¹Ô¤¹¤ë¤«¤â¤·¤ì¤º¡¢·ë²Ì¤ÏÉÔÄê¤Ç¤¢¤ë¡£ -¼¡¤Ë¼¨¤¹¸Æ¤Ó½Ð¤·¤Ï¡¢Ê¸»úÎó½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤Î°ÌÃÖ¤òÆÃÄꤹ¤ë -¹â®¤Ê¼êÃʤǤ¢¤ë¡£ +は文字列末尾を越えて検索を実行するかもしれず、結果は不定である。 +次に示す呼び出しは、文字列終端の NULL バイトの位置を特定する +高速な手段である。 .in +4n .nf char *p = rawmemchr(s,\ \(aq\\0\(aq); .fi .in -.SH ÊÖ¤êÃÍ +.SH 返り値 .BR memchr () -´Ø¿ô¤È +関数と .BR memrchr () -´Ø¿ô¤Ï°ìÃפ¹¤ëʸ»ú¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤·¡¢ -¤â¤·Ê¸»ú¤¬»ØÄê¥á¥â¥êÎΰè¤Ë¸½¤ì¤Ê¤¤¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +関数は一致する文字へのポインタを返し、 +もし文字が指定メモリ領域に現れない場合は NULL を返す。 .BR rawmemchr () -´Ø¿ô¤Ï¥Þ¥Ã¥Á¤¹¤ë¥Ð¥¤¥È¤¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤Ï¥Þ¥Ã¥Á¤·¤¿¥Ð¥¤¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥Þ¥Ã¥Á¤¹¤ë¥Ð¥¤¥È¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢·ë²Ì¤ÏÉÔÄê¤Ç¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +関数はマッチするバイトが見つかった場合はマッチしたバイトへのポインタを返す。 +マッチするバイトが見つからなかった場合、結果は不定である。 +.SH バージョン .BR rawmemchr () -¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +は glibc バージョン 2.1 で初めて登場した。 .BR memrchr () -¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.2 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +は glibc バージョン 2.2 で初めて登場した。 +.SH 準拠 .BR memchr () -´Ø¿ô¤Ï SVr4, 4.3BSD, C89, C99, POSIX.1-2001 ¤Ë½àµò¤¹¤ë¡£ +関数は SVr4, 4.3BSD, C89, C99, POSIX.1-2001 に準拠する。 .BR memrchr () -´Ø¿ô¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ê¡¢glibc 2.1.91 ¤«¤é»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ +関数は GNU 拡張であり、glibc 2.1.91 から使用可能である。 .BR rawmemchr () -´Ø¿ô¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ê¡¢glibc 2.1 ¤«¤é»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +関数は GNU 拡張であり、glibc 2.1 から使用可能である。 +.SH 関連項目 .BR ffs (3), .BR index (3), .BR rindex (3), diff --git a/release/man3/memcmp.3 b/release/man3/memcmp.3 index b7cab2a9..0707e289 100644 --- a/release/man3/memcmp.3 +++ b/release/man3/memcmp.3 @@ -32,31 +32,31 @@ .\" by HIROFUMI Nishizuka .\" .TH MEMCMP 3 2011-09-14 "" "Linux Programmer's Manual" -.SH ̾Á° -memcmp \- ¥á¥â¥êÎΰè¤òÈæ³Ó¤¹¤ë -.SH ½ñ¼° +.SH 名前 +memcmp \- メモリ領域を比較する +.SH 書式 .nf .B #include .sp .BI "int memcmp(const void *" s1 ", const void *" s2 ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .BR memcmp () -´Ø¿ô¤Ï¡¢¥á¥â¥êÎΰè \fIs1\fP ¤È\fIs2\fP ¤ÎºÇ½é¤Î \fIn\fP -¥Ð¥¤¥È¤òÈæ³Ó¤¹¤ë (³Æ¥Ð¥¤¥È¤Ï +関数は、メモリ領域 \fIs1\fP と\fIs2\fP の最初の \fIn\fP +バイトを比較する (各バイトは .I "unsigned char" -¤È¤·¤Æ²ò¼á¤µ¤ì¤ë)¡£ -\fIs1\fP ¤¬ \fIs2\fP ¤è¤ê¾®¤µ¤¤¤«¡¢Æ±¤¸¤«¡¢¤¢¤ë¤¤¤ÏÂ礭¤¤¤«¤Ë¤è¤Ã¤Æ -¤½¤ì¤¾¤ì¡¢Éé¤ÎÀ°¿ô¡¢0¡¢Àµ¤ÎÀ°¿ô¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ +として解釈される)。 +\fIs1\fP が \fIs2\fP より小さいか、同じか、あるいは大きいかによって +それぞれ、負の整数、0、正の整数を返す。 +.SH 返り値 .BR memcmp () -´Ø¿ô¤Ï¡¢\fIs1\fP ¤ÎºÇ½é¤Î \fIn\fP ¥Ð¥¤¥È¤¬ -\fIs2\fP ¤ÎºÇ½é¤Î \fIn\fP ¥Ð¥¤¥È¤è¤ê¤â -¾®¤µ¤¤¤«¡¢Æ±¤¸¤«¡¢¤¢¤ë¤¤¤ÏÂ礭¤¤¤«¤Ë¤è¤Ã¤Æ¤½¤ì¤¾¤ì¡¢Éé¤ÎÀ°¿ô¡¢0¡¢ -Àµ¤ÎÀ°¿ô¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIs1\fP の最初の \fIn\fP バイトが +\fIs2\fP の最初の \fIn\fP バイトよりも +小さいか、同じか、あるいは大きいかによってそれぞれ、負の整数、0、 +正の整数を返す。 +.SH 準拠 SVr4, 4.3BSD, C89, C99, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bcmp (3), .BR strcasecmp (3), .BR strcmp (3), diff --git a/release/man3/memcpy.3 b/release/man3/memcpy.3 index a63c524b..e1aed746 100644 --- a/release/man3/memcpy.3 +++ b/release/man3/memcpy.3 @@ -32,27 +32,27 @@ .\" by Ueyama Rui .\" .TH MEMCPY 3 2010-11-15 "" "Linux Programmer's Manual" -.SH ̾Á° -memcpy \- ¥á¥â¥êÎΰè¤ò¥³¥Ô¡¼¤¹¤ë¡£ -.SH ½ñ¼° +.SH 名前 +memcpy \- メモリ領域をコピーする。 +.SH 書式 .nf .B #include .sp .BI "void *memcpy(void *" dest ", const void *" src ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .BR memcpy () -¤Ï¥á¥â¥êÎΰè \fIsrc\fP ¤ÎÀèƬ \fPn\fP ¥Ð¥¤¥È¤ò -¥á¥â¥êÎΰè \fIdest\fP ¤Ë¥³¥Ô¡¼¤¹¤ë¡£¥³¥Ô¡¼¸µ¤ÎÎΰè¤È -¥³¥Ô¡¼Àè¤ÎÎΰ褬½Å¤Ê¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£½Å¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï +はメモリ領域 \fIsrc\fP の先頭 \fPn\fP バイトを +メモリ領域 \fIdest\fP にコピーする。コピー元の領域と +コピー先の領域が重なってはならない。重なっている場合は .BR memmove (3) -¤ò»È¤¦¤³¤È¡£ -.SH ÊÖ¤êÃÍ +を使うこと。 +.SH 返り値 .BR memcpy () -¤Ï \fIdest\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -.SH ½àµò +は \fIdest\fP へのポインタを返す。 +.SH 準拠 SVr4, 4.3BSD, C89, C99, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bcopy (3), .BR memccpy (3), .BR memmove (3), diff --git a/release/man3/memfrob.3 b/release/man3/memfrob.3 index a51b9a6b..cb780d7c 100644 --- a/release/man3/memfrob.3 +++ b/release/man3/memfrob.3 @@ -32,31 +32,31 @@ .\" by ISHIKAWA Mutsumi .\" .TH MEMFROB 3 2010-09-10 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -memfrob \- ¥á¥â¥ê¥¨¥ê¥¢¤ÎÁàºî (°Å¹æ²½) -.SH ½ñ¼° +.SH 名前 +memfrob \- メモリエリアの操作 (暗号化) +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "void *memfrob(void *" s ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .BR memfrob () -´Ø¿ô¤Ï¡¢¥á¥â¥ê¥¨¥ê¥¢ \fIs\fP ¤ÎºÇ½é¤Î \fIn\fP ¥Ð¥¤¥È¤Î -¤½¤ì¤¾¤ì¤Îʸ»ú¤ò 42 ¤È¤ÎÇÓ¾ŪÏÀÍý¤ò¤È¤ë¤³¤È¤Ë¤è¤Ã¤Æ°Å¹æ²½¤¹¤ë¡£ -ÊÑ´¹¸å¤Î¥Ç¡¼¥¿¤Ï¡¢°Å¹æ²½¤µ¤ì¤Æ¤¤¤ë¥á¥â¥ê¥¨¥ê¥¢¤Ë (ºÆÅÙ) +関数は、メモリエリア \fIs\fP の最初の \fIn\fP バイトの +それぞれの文字を 42 との排他的論理をとることによって暗号化する。 +変換後のデータは、暗号化されているメモリエリアに (再度) .BR memfrob () -´Ø¿ô¤ò»Ü¤¹¤³¤È¤Ç¡¢¸µ¤ËÌ᤹¤³¤È¤¬¤Ç¤­¤ë¡£ +関数を施すことで、元に戻すことができる。 .PP -¤³¤Î´Ø¿ô¤ÏÂÅÅö¤Ê°Å¹æ²½¥ë¡¼¥Á¥ó¤Ç¤¢¤ë¤È¤Ï¸À¤¨¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤ÆÍߤ·¤¤¡£ -XOR ¤ò¤È¤ëÄê¿ô¤ò¸ÇÄꤷ¤Æ¤¤¤ë¤Î¤Ç¡¢¤»¤¤¤¼¤¤¡¢Ê¸»úÎó¤ò±£¤¹ÄøÅÙ¤ÎÍÑË¡¤Ë¤· -¤«¸þ¤¤¤Æ¤¤¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +この関数は妥当な暗号化ルーチンであるとは言えないことに注意して欲しい。 +XOR をとる定数を固定しているので、せいぜい、文字列を隠す程度の用法にし +か向いていない。 +.SH 返り値 .BR memfrob () -´Ø¿ô¤Ï¡¢°Å¹æ²½¤µ¤ì¤¿¥á¥â¥ê¥¨¥ê¥¢¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、暗号化されたメモリエリアへのポインタを返す。 +.SH 準拠 .BR memfrob () -´Ø¿ô¤Ï GNU C ¥é¥¤¥Ö¥é¥ê¤Ë¸ÇÍ­¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +関数は GNU C ライブラリに固有である。 +.SH 関連項目 .BR strfry (3) diff --git a/release/man3/memmem.3 b/release/man3/memmem.3 index 6b4fcfb5..21d6c299 100644 --- a/release/man3/memmem.3 +++ b/release/man3/memmem.3 @@ -32,40 +32,40 @@ .\" by HIROFUMI Nishizuka .\" .TH MEMMEM 3 2008-12-05 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -memmem \- Éôʬʸ»úÎó¤Î°ÌÃÖ¤ò¼¨¤¹ -.SH ½ñ¼° +.SH 名前 +memmem \- 部分文字列の位置を示す +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "void *memmem(const void *" haystack ", size_t " haystacklen , .BI " const void *" needle ", size_t " needlelen ); .fi -.SH ÀâÌÀ +.SH 説明 .BR memmem () -´Ø¿ô¤Ï¡¢ -\fIhaystacklen\fP ¤ÎÂ礭¤µ¤ò»ý¤Ä¥á¥â¥êÎΰè \fIhaystack\fP ¤ÎÃæ¤Ç -\fIneedlelen\fP ¤ÎÂ礭¤µ¤ò»ý¤ÄÉôʬʸ»úÎó \fIneedle\fP ¤¬ -ºÇ½é¤Ë¸½¤ì¤ë°ÌÃÖ¤ò¸«¤Ä¤±¤ë¡£ -.SH ÊÖ¤êÃÍ +関数は、 +\fIhaystacklen\fP の大きさを持つメモリ領域 \fIhaystack\fP の中で +\fIneedlelen\fP の大きさを持つ部分文字列 \fIneedle\fP が +最初に現れる位置を見つける。 +.SH 返り値 .BR memmem () -´Ø¿ô¤Ï¡¢Éôʬʸ»úÎó¤Î³«»Ï¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤òÊÖ¤·¡¢¤â¤·Éôʬʸ»úÎó¤¬ -¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ -.SH ½àµò -¤³¤Î´Ø¿ô¤Ï GNU extension ¤Ç¤¢¤ë¡£ -.SH ¥Ð¥° -Linux ¤Î¥é¥¤¥Ö¥é¥ê¤Ë´Ø¤·¤Æ¤¤¤¦¤È¡¢ libc 5.0.9 ¤È -¤½¤ì°ÊÁ°¤Î¤¹¤Ù¤Æ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¡¢¤³¤Î´Ø¿ô¤Ï²õ¤ì¤Æ¤¤¤ë¡£ -¤½¤ì¤é¤Î¥é¥¤¥Ö¥é¥ê¤Ç¤Ï \fIneedle\fP ¤È \fIhaystack\fP °ú¿ô¤¬ -Æþ¤ìÂؤï¤Ã¤Æ¤ª¤ê¡¢ \fIneedle\fP ¤¬ºÇ½é¤Ë½Ð¸½¤¹¤ëÉôʬ¤ÎºÇ¸å¤ò -¼¨¤¹¥Ý¥¤¥ó¥¿¤¬ÊÖ¤µ¤ì¤Æ¤¤¤¿¤Î¤Ç¤¢¤ë¡£ +関数は、部分文字列の開始を指すポインタを返し、もし部分文字列が +見つからない場合は NULL を返す。 +.SH 準拠 +この関数は GNU extension である。 +.SH バグ +Linux のライブラリに関していうと、 libc 5.0.9 と +それ以前のすべてのバージョンで、この関数は壊れている。 +それらのライブラリでは \fIneedle\fP と \fIhaystack\fP 引数が +入れ替わっており、 \fIneedle\fP が最初に出現する部分の最後を +示すポインタが返されていたのである。 -¿·µìξÊý¤Î libc ¥é¥¤¥Ö¥é¥ê¤¬¡¢ -\fIneedle\fP ¤¬¶õ¤Î¾ì¹ç (\fIhaystack\fP ¤Î¤«¤ï¤ê¤Ë) \fIhaystack-1\fP\ ¤¬ -ÊÖ¤µ¤ì¤ë¤È¤¤¤¦¥Ð¥°¤ò»ý¤Ã¤Æ¤¤¤ë¡£ -¤½¤·¤Æ¡¢glibc 2.0 ¤Ç¤Ï¤µ¤é¤Ë°­¤¯¤Ê¤Ã¤Æ¤ª¤ê¡¢ -\fIhaystack\fP ¤ÎºÇ¸å¤Î¥Ð¥¤¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤ì¤Ï glibc 2.1 ¤Ç½¤Àµ¤µ¤ì¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +新旧両方の libc ライブラリが、 +\fIneedle\fP が空の場合 (\fIhaystack\fP のかわりに) \fIhaystack-1\fP\ が +返されるというバグを持っている。 +そして、glibc 2.0 ではさらに悪くなっており、 +\fIhaystack\fP の最後のバイトへのポインタを返す。 +これは glibc 2.1 で修正された。 +.SH 関連項目 .BR strstr (3) diff --git a/release/man3/memmove.3 b/release/man3/memmove.3 index 91e9c7ad..7de71f73 100644 --- a/release/man3/memmove.3 +++ b/release/man3/memmove.3 @@ -33,34 +33,34 @@ .\" Updated 2007-06-13, Akihiro MOTOKI , LDP v2.55 .\" .TH MEMMOVE 3 1993-04-10 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -memmove \- ¥á¥â¥êÎΰè¤ò¥³¥Ô¡¼¤¹¤ë -.SH ½ñ¼° +.SH 名前 +memmove \- メモリ領域をコピーする +.SH 書式 .nf .B #include .sp .BI "void *memmove(void *" dest ", const void *" src ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .BR memmove () -¤Ï¡¢¥á¥â¥êÎΰè \fIsrc\fP ¤ÎÀèƬ \fIn\fP ¥Ð¥¤¥È¤ò -¥á¥â¥êÎΰè \fIdest\fP ¤Ë¥³¥Ô¡¼¤¹¤ë¡£¥³¥Ô¡¼¸µ¤È¥³¥Ô¡¼Àè¤Î -Îΰ褬½Å¤Ê¤Ã¤Æ¤¤¤Æ¤â¤è¤¤¡£ -ºÇ½é¤Ë +は、メモリ領域 \fIsrc\fP の先頭 \fIn\fP バイトを +メモリ領域 \fIdest\fP にコピーする。コピー元とコピー先の +領域が重なっていてもよい。 +最初に .I src -¤Î¥Ð¥¤¥È¤¬ +のバイトが .I src -¤È¤â +とも .I dest -¤È¤â½Å¤Ê¤é¤Ê¤¤°ì»þŪ¤ÊÇÛÎó¤Ë¥³¥Ô¡¼¤µ¤ì¤Æ¤«¤é¡¢°ì»þŪ¤ÊÇÛÎ󤫤é +とも重ならない一時的な配列にコピーされてから、一時的な配列から .I dest -¤Ë¥Ð¥¤¥È¤Î¥³¥Ô¡¼¤¬¹Ô¤ï¤ì¤¿¤«¤Î¤è¤¦¤Ë¡¢¥³¥Ô¡¼¤¬¹Ô¤ï¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +にバイトのコピーが行われたかのように、コピーが行われる。 +.SH 返り値 .BR memmove () -¤Ï \fIdest\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -.SH ½àµò +は \fIdest\fP へのポインタを返す。 +.SH 準拠 SVr4, 4.3BSD, C89, C99, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bcopy (3), .BR memccpy (3), .BR memcpy (3), diff --git a/release/man3/mempcpy.3 b/release/man3/mempcpy.3 index 196bb38e..b842c0a4 100644 --- a/release/man3/mempcpy.3 +++ b/release/man3/mempcpy.3 @@ -10,56 +10,56 @@ .\" by Yuichi SATO .\" .TH MEMPCPY 3 2008-08-11 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -mempcpy, wmempcpy \- ¥á¥â¥êÎΰè¤ò¥³¥Ô¡¼¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mempcpy, wmempcpy \- メモリ領域をコピーする +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "void *mempcpy(void *" dest ", const void *" src ", size_t " n ); .sp -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "wchar_t *wmempcpy(wchar_t *" dest ", const wchar_t *" src ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .BR mempcpy () -´Ø¿ô¤Ï +関数は .BR memcpy (3) -´Ø¿ô¤È¤Û¤ÜƱ°ì¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢ +関数とほぼ同一である。 +この関数は、 .I src -¤Ç»Ï¤Þ¤ë¥ª¥Ö¥¸¥§¥¯¥È¤«¤é +で始まるオブジェクトから .I n -¥Ð¥¤¥È¤ò¡¢ +バイトを、 .I dest -¤Ç»Ø¤µ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥³¥Ô¡¼¤¹¤ë¡£ -¤¿¤À¤· +で指されるオブジェクトにコピーする。 +ただし .I dest -¤ÎÃͤòÊÖ¤¹¤Î¤Ç¤Ï¤Ê¤¯¡¢ -ºÇ¸å¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¤Î¸å¤Ë³¤¯¥Ð¥¤¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +の値を返すのではなく、 +最後に書き込まれたバイトの後に続くバイトへのポインタを返す。 .PP -¤³¤Î´Ø¿ô¤Ï¤¤¤¯¤Ä¤«¤Î¥ª¥Ö¥¸¥§¥¯¥È¤¬ -Ϣ³Ū¤Ê¥á¥â¥ê¤Î¾ì½ê¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¤è¤¦¤Ê¾õ¶·¤ÇÌò¤ËΩ¤Ä¡£ +この関数はいくつかのオブジェクトが +連続的なメモリの場所にコピーされるような状況で役に立つ。 .PP .BR wmempcpy () -´Ø¿ô¤Ï¤³¤Î´Ø¿ô¤ÈƱ¤¸¤Ç¤¢¤ë¤¬¡¢ +関数はこの関数と同じであるが、 .I wchar_t -·¿¤Î°ú¤­¿ô¤ò¤È¤ê¡¢ +型の引き数をとり、 .I n -¥ï¥¤¥Éʸ»úÎó¤ò¥³¥Ô¡¼¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ +ワイド文字列をコピーする。 +.SH 返り値 \fIdest\fP + \fIn\fP. -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .BR mempcpy () -¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò -¤³¤Î´Ø¿ô¤Ï GNU ¤Ë¤ª¤±¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH Îã +は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 +この関数は GNU における拡張である。 +.SH 例 .nf void * combine (void *o1, size_t s1, void *o2, size_t s2) @@ -70,7 +70,7 @@ combine (void *o1, size_t s1, void *o2, size_t s2) return result; .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR memccpy (3), .BR memcpy (3), .BR memmove (3), diff --git a/release/man3/memset.3 b/release/man3/memset.3 index 704c5a87..c0c90f5a 100644 --- a/release/man3/memset.3 +++ b/release/man3/memset.3 @@ -32,24 +32,24 @@ .\" by Ueyama Rui .\" .TH MEMSET 3 1993-04-11 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -memset \- ¤¢¤ë°ìÄê¤Î¥Ð¥¤¥È¤Ç¥á¥â¥êÎΰè¤òËä¤á¤ë¡£ -.SH ½ñ¼° +.SH 名前 +memset \- ある一定のバイトでメモリ領域を埋める。 +.SH 書式 .nf .B #include .sp .BI "void *memset(void *" s ", int " c ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .BR memset () -¤Ï \fIs\fP ¤Ç¼¨¤µ¤ì¤ë¥á¥â¥êÎΰè¤ÎÀèƬ¤«¤é \fIn\fP ¥Ð¥¤¥È¤ò -\fIc\fP ¤ÇËä¤á¤ë¡£ -.SH ÊÖ¤êÃÍ +は \fIs\fP で示されるメモリ領域の先頭から \fIn\fP バイトを +\fIc\fP で埋める。 +.SH 返り値 .BR memset () -¤Ï \fIs\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -.SH ½àµò +は \fIs\fP へのポインタを返す。 +.SH 準拠 SVr4, 4.3BSD, C89, C99, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bzero (3), .BR swab (3), .BR wmemset (3) diff --git a/release/man3/mkdtemp.3 b/release/man3/mkdtemp.3 index 12858d94..1b2a56dd 100644 --- a/release/man3/mkdtemp.3 +++ b/release/man3/mkdtemp.3 @@ -28,9 +28,9 @@ .\" by Yuichi SATO .\" .TH MKDTEMP 3 2010-09-26 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -mkdtemp \- ¾¤È½Å¤Ê¤é¤Ê¤¤°ì»þŪ¤Ê¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mkdtemp \- 他と重ならない一時的なディレクトリを作成する +.SH 書式 .nf .B #include .sp @@ -38,9 +38,9 @@ mkdtemp \- ¾ .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR mkdtemp (): @@ -56,41 +56,41 @@ _BSD_SOURCE .ad .PD .RE -.SH ÀâÌÀ +.SH 説明 .BR mkdtemp () -´Ø¿ô¤Ï¡¢Â¾¤È½Å¤Ê¤é¤Ê¤¤Ì¾Á°¤Î°ì»þŪ¤Ê¥Ç¥£¥ì¥¯¥È¥ê¤ò -\fItemplate\fP ¤«¤éºîÀ®¤¹¤ë¡£ -\fItemplate\fP ¤Î¸å¤«¤é 6 ʸ»ú¤Ï XXXXXX ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ÎÉôʬ¤Ï¥Ç¥£¥ì¥¯¥È¥ê̾¤ò¾¤È½Å¤Ê¤é¤Ê¤¯¤¹¤ë¤¿¤á¤Î -ʸ»úÎó¤ÇÃÖ¤­´¹¤¨¤é¤ì¤ë¡£ -¥Ç¥£¥ì¥¯¥È¥ê¤Ïµö²Ä°À­¤ò 0700 ¤È¤·¤ÆºîÀ®¤µ¤ì¤ë¡£ +関数は、他と重ならない名前の一時的なディレクトリを +\fItemplate\fP から作成する。 +\fItemplate\fP の後から 6 文字は XXXXXX でなければならない。 +この部分はディレクトリ名を他と重ならなくするための +文字列で置き換えられる。 +ディレクトリは許可属性を 0700 として作成される。 .I template -¤ÏÊѹ¹¤µ¤ì¤ë¤Î¤Ç¡¢Ê¸»úÎóÄê¿ô¤Ë¤·¤Æ¤Ï¤Ê¤é¤º¡¢Ê¸»úÇÛÎó¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +は変更されるので、文字列定数にしてはならず、文字配列にすべきである。 +.SH 返り値 +成功した場合、 .BR mkdtemp () -´Ø¿ô¤Ï -Êѹ¹¤µ¤ì¤¿ template ʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¡¢NULL ¤òÊÖ¤·¤Æ¡¢ +関数は +変更された template 文字列へのポインタを返す。 +失敗した場合は、NULL を返して、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切に設定する。 +.SH エラー .TP .B EINVAL -\fItemplate\fP ¤Î¸å¤í¤«¤é 6 ʸ»ú¤¬ XXXXXX ¤Ç¤Ê¤¤¡£ -¤³¤Î¾ì¹ç¡¢\fItemplate\fP ¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +\fItemplate\fP の後ろから 6 文字が XXXXXX でない。 +この場合、\fItemplate\fP は変更されない。 .PP -\fIerrno\fP ¤ËÀßÄꤵ¤ì¤ë¾¤ÎÃͤˤĤ¤¤Æ¤Ï¡¢ +\fIerrno\fP に設定される他の値については、 .BR mkdir (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -OpenBSD 2.2 ¤ÇƳÆþ¤µ¤ì¤¿¡£ -.SH ½àµò +を参照すること。 +.SH バージョン +OpenBSD 2.2 で導入された。 +.SH 準拠 POSIX.1-2008. -¤³¤Î´Ø¿ô¤Ï BSD ¤Ë¸ºß¤¹¤ë¡£ -.\" 2006 ǯ»þÅÀ¤Ç¤Ï¡¢¤³¤Î´Ø¿ô¤Ï POSIX.1 ¤ËÆþ¤ì¤ë¤«¸¡Æ¤Ãæ¤Ç¤¢¤ë¡£ -.\" NetBSD 1.4 ¤Ë¤â¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +この関数は BSD に存在する。 +.\" 2006 年時点では、この関数は POSIX.1 に入れるか検討中である。 +.\" NetBSD 1.4 にもある。 +.SH 関連項目 .BR mkdir (2), .BR mkstemp (3), .BR mktemp (3), diff --git a/release/man3/mkfifo.3 b/release/man3/mkfifo.3 index 7b726ede..6fd46b57 100644 --- a/release/man3/mkfifo.3 +++ b/release/man3/mkfifo.3 @@ -31,80 +31,80 @@ .\" Updated 1999-12-11 by Kentaro Shirakata .\" Updated 2008-07-30 by Kentaro Shirakata .\" -.\"WORD: named pipe ̾Á°ÉÕ¤­¥Ñ¥¤¥× -.\"WORD: permission µö²Ä¥â¡¼¥É -.\"WORD: filename ¥Õ¥¡¥¤¥ë̾ -.\"WORD: filename component ¥Õ¥¡¥¤¥ë̾Éôʬ -.\"WORD: directory component ¥Ç¥£¥ì¥¯¥È¥êÉôʬ +.\"WORD: named pipe 名前付きパイプ +.\"WORD: permission 許可モード +.\"WORD: filename ファイル名 +.\"WORD: filename component ファイル名部分 +.\"WORD: directory component ディレクトリ部分 .TH MKFIFO 3 2008-06-12 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -mkfifo \- FIFO¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë(̾Á°ÉÕ¤­¥Ñ¥¤¥×)¤òºîÀ®¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mkfifo \- FIFOスペシャルファイル(名前付きパイプ)を作成する +.SH 書式 .nf .B #include .B #include .sp .BI "int mkfifo(const char *" pathname ", mode_t " mode ); .fi -.SH ÀâÌÀ +.SH 説明 .BR mkfifo () -¤Ï̾Á° \fIpathname\fP ¤ò»ý¤ÄFIFO¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤òºîÀ® -¤¹¤ë¡£FIFO¤Îµö²Ä¥â¡¼¥É¤Ï \fImode\fP ¤Ç»ØÄꤵ¤ì¡¢¥×¥í¥»¥¹¤Î -\fBumask\fP ¤Ë¤è¤Ã¤ÆÄ̾ï¤ÎÊý¼°¤ÇÊѹ¹¤ò¼õ¤±¤ë: ºîÀ®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Îµö²Ä -¥â¡¼¥É¤Ï \fB(\fP\fImode\fP\fB & ~umask)\fP ¤È¤Ê¤ë¡£ +は名前 \fIpathname\fP を持つFIFOスペシャルファイルを作成 +する。FIFOの許可モードは \fImode\fP で指定され、プロセスの +\fBumask\fP によって通常の方式で変更を受ける: 作成されたファイルの許可 +モードは \fB(\fP\fImode\fP\fB & ~umask)\fP となる。 .PP -FIFO¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤Ï¥Ñ¥¤¥×¤Ë»÷¤Æ¤¤¤ë¤¬¡¢ºîÀ®¤Î¤µ¤ìÊý¤Î¤ß¤¬°Û¤Ê¤Ã¤Æ -¤¤¤ë¡£FIFO¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤Ï̾Á°¤Î¤Ê¤¤ÄÌ¿®Ï©¤Ç¤Ï¤Ê¤¯¡¢ +FIFOスペシャルファイルはパイプに似ているが、作成のされ方のみが異なって +いる。FIFOスペシャルファイルは名前のない通信路ではなく、 .BR mkfifo () -¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÃæ¤Ë²Ã¤¨¤é¤ì¤ë¡£ +の呼び出しによりファイルシステムの中に加えられる。 .PP -¤Ò¤È¤¿¤Ó¤³¤Î¤è¤¦¤Ë¤·¤ÆFIFO¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤ë¤È¡¢Ä̾ï¤Î¥Õ¥¡ -¥¤¥ë¤ÈƱ¤¸¤è¤¦¤Ë¡¢¤É¤Î¥×¥í¥»¥¹¤«¤é¤Ç¤âÆɤ߽Ф·¡¢½ñ¤­¹þ¤ßÍѤˤ³¤ì¤ò¥ª¡¼ -¥×¥ó¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤¿¤À¤·¡¢¤³¤ì¤ËÂФ¹¤ëÁ´¤Æ¤ÎÆþ½ÐÎÏÁàºî¤ËÀèΩ¤Ã¤Æ -¤½¤Îξü¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£FIFO¤òÆɤ߽Ф·ÍѤ˥ª¡¼¥×¥ó¤¹¤ë -¤È¡¢Ä̾ï¾¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤ÆƱ¤¸FIFO¤¬½ñ¤­¹þ¤ßÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤ë¤Þ¤Ç¥Ö -¥í¥Ã¥¯¤µ¤ì¡¢µÕ¤Î¾ì¹ç¤âƱÍͤǤ¢¤ë¡£ -FIFO¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤ò¥Ö¥í¥Ã¥¯¤»¤º¤Ë°·¤¦ÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï +ひとたびこのようにしてFIFOスペシャルファイルが作成されると、通常のファ +イルと同じように、どのプロセスからでも読み出し、書き込み用にこれをオー +プンすることができる。ただし、これに対する全ての入出力操作に先立って +その両端がオープンされている必要がある。FIFOを読み出し用にオープンする +と、通常他のプロセスによって同じFIFOが書き込み用にオープンされるまでブ +ロックされ、逆の場合も同様である。 +FIFOスペシャルファイルをブロックせずに扱う方法については .BR fifo (7) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç +を参照のこと。 +.SH 返り値 +成功した場合 .BR mkfifo () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤¹ (¤Þ¤¿ \fIerrno\fP ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë)¡£ -.SH ¥¨¥é¡¼ +は 0 を返す。 +エラーの場合 \-1 を返す (また \fIerrno\fP が適切に設定される)。 +.SH エラー .TP .B EACCES -\fIpathname\fP ¤ÎÃæ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î°ì¤Ä¤ËÂФ·¸¡º÷(¼Â¹Ô)µö²Ä¤¬¤Ê¤¤¡£ +\fIpathname\fP の中のディレクトリの一つに対し検索(実行)許可がない。 .TP .B EEXIST -\fIpathname\fP ¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¡£ -¤³¤ì¤Ë¤Ï¡¢ +\fIpathname\fP がすでに存在する。 +これには、 .I pathname -¤¬(¥ê¥ó¥¯Àڤ줫¤É¤¦¤«¤Ë´Ø¤ï¤é¤º)¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¤¢¤ë¾ì¹ç¤â´Þ¤à¡£ +が(リンク切れかどうかに関わらず)シンボリックリンクである場合も含む。 .TP .B ENAMETOOLONG -\fIpathname\fP ¤ÎŤµ¤¬ \fBPATH_MAX\fP ¤òĶ¤¨¤Æ¤¤¤ë¤«¡¢¸Ä¡¹¤Î¥Õ¥¡¥¤¥ë -̾Éôʬ¤ÎŤµ¤¬ \fBNAME_MAX\fP ¤òĶ¤¨¤Æ¤¤¤ë¡£GNU¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¤Ï¡¢¥Õ¥¡ -¥¤¥ë̾¤ÎÁ´ÂΤÎŤµ¤ËÂФ·¤Æ¤ÏÀ©¸Â¤Ï²Ý¤»¤é¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -¤Ë¤è¤Ã¤Æ¤Ï³ÆÉôʬ¤ÎŤµ¤ËÀ©¸Â¤Î¤¢¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +\fIpathname\fP の長さが \fBPATH_MAX\fP を超えているか、個々のファイル +名部分の長さが \fBNAME_MAX\fP を超えている。GNUシステムにおいては、ファ +イル名の全体の長さに対しては制限は課せられていないが、ファイルシステム +によっては各部分の長さに制限のある可能性がある。 .TP .B ENOENT -\fIpathname\fP ¤ÎÃæ¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢¥ê¥ó¥¯Àè¤Î¤Ê¤¤¥· -¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¤¢¤ë¡£ +\fIpathname\fP の中のディレクトリ部分が存在しないか、リンク先のないシ +ンボリックリンクである。 .TP .B ENOSPC -¥Ç¥£¥ì¥¯¥È¥ê¤Þ¤¿¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¿·µ¬¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë;ÃϤ¬¤Ê¤¤¡£ +ディレクトリまたはファイルシステムに新規ファイルを作成する余地がない。 .TP .B ENOTDIR -\fIpathname\fP Ãæ¤Ç¥Ç¥£¥ì¥¯¥È¥ê¤È¤·¤Æ»ÈÍѤµ¤ì¤Æ¤¤¤ëÉôʬ¤¬¼ÂºÝ¤Ë¤Ï¥Ç¥£ -¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£ +\fIpathname\fP 中でディレクトリとして使用されている部分が実際にはディ +レクトリではない。 .TP .B EROFS -\fIpathname\fP ¤¬Æɤ߼è¤êÀìÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¤ò»Ø¤·¤Æ¤¤¤ë¡£ -.SH ½àµò +\fIpathname\fP が読み取り専用のファイルシステムを指している。 +.SH 準拠 POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mkfifo (1), .BR close (2), .BR open (2), diff --git a/release/man3/mkfifoat.3 b/release/man3/mkfifoat.3 index 0faca1b6..e325b794 100644 --- a/release/man3/mkfifoat.3 +++ b/release/man3/mkfifoat.3 @@ -27,20 +27,20 @@ .\" Translated 2006-08-04 by Yuichi SATO , LDP v2.36 .\" .TH MKFIFOAT 3 2009-12-13 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -mkfifoat \- ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤é¤ÎÁêÂаÌÃÖ¤Ë FIFO (̾Á°ÉÕ¤­¥Ñ¥¤¥×) ¤òºî¤ë -.SH ½ñ¼° +.SH 名前 +mkfifoat \- ディレクトリファイルディスクリプタからの相対位置に FIFO (名前付きパイプ) を作る +.SH 書式 .nf -.B #include /* AT_* Äê¿ô¤ÎÄêµÁ */ +.B #include /* AT_* 定数の定義 */ .B #include .sp .BI "int mkfifoat(int " dirfd ", const char *" pathname ", mode_t " mode ); .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR mkfifoat (): @@ -48,84 +48,84 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _ATFILE_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR mkfifoat () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë°ã¤¤¤¬¤¢¤ë°Ê³°¤Ï¡¢ +システムコールは、この man ページで説明している違いがある以外は、 .BR mkfifo (3) -¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ +と全く同じように動作する。 .I pathname -¤Ç»ØÄꤵ¤ì¤ë¥Ñ¥¹Ì¾¤¬ÁêÂХѥ¹Ì¾¤Ç¤¢¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +で指定されるパス名が相対パス名である場合、 +ファイルディスクリプタ .I dirfd -¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë +で参照されるディレクトリからの相対パス名として解釈される .RB ( mkfifo (3) -¤Ç¤Ï¡¢ÁêÂХѥ¹¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹¤È¤Ê¤ë)¡£ +では、相対パスは呼び出し元プロセスの +カレントワーキングディレクトリからの相対パスとなる)。 .I pathname -¤¬ÁêÂХѥ¹¤Ç¤¢¤ê¡¢¤«¤Ä +が相対パスであり、かつ .I dirfd -¤¬ÆÃÊ̤ÊÃÍ +が特別な値 .B AT_FDCWD -¤Ç¤¢¤ë¾ì¹ç¡¢ +である場合、 .I pathname -¤Ï +は .RB ( mkfifo (3) -¤ÈƱ¤¸¤è¤¦¤Ë) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î -¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +と同じように) 呼び出し元プロセスの +カレントワーキングディレクトリからの相対パス名として解釈される。 .I pathname -¤¬ÀäÂХѥ¹¤Ç¤¢¤ë¾ì¹ç¡¢ +が絶対パスである場合、 .I dirfd -¤Ï̵»ë¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +は無視される。 +.SH 返り値 +成功した場合、 .BR mkfifoat () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +は 0 を返す。 +エラーの場合、\-1 が返されて、 .I errno -¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +にはエラーを示す値が設定される。 +.SH エラー .BR mkfifo (3) -¤ÈƱ¤¸¥¨¥é¡¼¤¬ +と同じエラーが .BR mkfifoat () -¤Ç¤âµ¯¤³¤ë¡£ +でも起こる。 .BR mkfifoat () -¤Ç¤Ï¡¢¤½¤Î¾¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë: +では、その他に以下のエラーが起こる: .TP .B EBADF .I dirfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B ENOTDIR .I pathname -¤¬ÁêÂХѥ¹¤Ç¡¢¤«¤Ä +が相対パスで、かつ .I dirfd -¤¬¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +がディレクトリ以外のファイルを参照するファイルディスクリプタである。 +.SH バージョン .BR mkfifoat () -¤Ï glibc ¤Î¥Ð¡¼¥¸¥ç¥ó 2.4 ¤ÇÄɲ䵤줿¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ -¥«¡¼¥Í¥ë 2.6.16 °Ê¹ß¤Î Linux ¤ÇÍøÍѤǤ­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿ +は glibc のバージョン 2.4 で追加された。 +このシステムコールは、 +カーネル 2.6.16 以降の Linux で利用できるようになった .BR mknod (2) -¤ò»È¤Ã¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò +を使って実装されている。 +.SH 準拠 POSIX.1-2008. -.SH Ãí°Õ +.SH 注意 .BR mkfifoat () -¤¬É¬ÍפÊÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が必要な理由については、 .BR openat (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を参照すること。 +.SH 関連項目 .BR openat (2), .BR mkfifo (3), .BR path_resolution (7) diff --git a/release/man3/mkstemp.3 b/release/man3/mkstemp.3 index 62e11cc6..eda8fce0 100644 --- a/release/man3/mkstemp.3 +++ b/release/man3/mkstemp.3 @@ -41,14 +41,14 @@ .\" Updated 2005-02-26, Akihiro MOTOKI .\" Updated 2008-08-10, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: temporary file °ì»þ¥Õ¥¡¥¤¥ë -.\"WORD: read/write ¥ê¡¼¥É¡¿¥é¥¤¥È -.\"WORD: permissions µö²Ä +.\"WORD: temporary file 一時ファイル +.\"WORD: read/write リード/ライト +.\"WORD: permissions 許可 .\" .TH MKSTEMP 3 2008-06-19 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -mkstemp, mkostemp \- ¾¤È½Å¤Ê¤é¤Ê¤¤Ì¾Á°¤ò»ý¤Ä°ì»þ¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mkstemp, mkostemp \- 他と重ならない名前を持つ一時ファイルを作成する +.SH 書式 .nf .B #include .sp @@ -58,9 +58,9 @@ mkstemp, mkostemp \- ¾ .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR mkstemp (): @@ -69,97 +69,97 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 .BR mkostemp (): _GNU_SOURCE \"O .SH DESCRIPTION -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR mkstemp () -¤Ï°ú¿ô +は引数 .I template -¤«¤é¾¤È½Å¤Ê¤é¤Ê¤¤°ì»þ¥Õ¥¡¥¤¥ë̾¤òÀ¸À®¤·¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¤ÎºîÀ®¤È¥ª¡¼¥×¥ó¤ò¹Ô¤¤¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥ª¡¼¥×¥óºÑ¤ß¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ +から他と重ならない一時ファイル名を生成し、 +そのファイルの作成とオープンを行い、 +そのファイルに対するオープン済みのファイルディスクリプタを返す。 -°ú¿ô +引数 .I template -¤Ç»Ø¼¨¤¹¤ëʸ»úÎó¤Î¸å¤í¤Î 6 ʸ»ú¤Ï XXXXXX ¤Ç¤¢¤ëɬÍפ¬¤¢¤ë¡£ -¤³¤ÎÉôʬ¤¬¥Õ¥¡¥¤¥ë̾¤ò¾¤È½Å¤Ê¤é¤Ê¤¤¤è¤¦¤Ë¤¹¤ëʸ»ú¤ÇÃÖ¤­´¹¤¨¤é¤ì¤ë¡£ +で指示する文字列の後ろの 6 文字は XXXXXX である必要がある。 +この部分がファイル名を他と重ならないようにする文字で置き換えられる。 .I template -¤Ï½ñ¤­´¹¤¨¤é¤ì¤ë¤¿¤á¡¢Ê¸»úÎóÄê¿ô¤Ç¤Ï¤Ê¤¯Ê¸»úÇÛÎó¤È¤·¤Æ -Àë¸À¤¹¤ë¤è¤¦¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は書き換えられるため、文字列定数ではなく文字配列として +宣言するようにしなければならない。 -¥Õ¥¡¥¤¥ë¤Ïµö²Ä¥â¡¼¥É 0600 ¤ÇºîÀ®¤µ¤ì¡¢½êÍ­¼Ô¤Î¤ß¤¬Æɤ߽ñ¤­²Äǽ¤Ç¤¢¤ë -(glibc ¥Ð¡¼¥¸¥ç¥ó 2.06 °ÊÁ°¤Ç¤Ï¡¢¥Õ¥¡¥¤¥ë¤Ïµö²Ä¥â¡¼¥É 0666 ¤ÇºîÀ®¤µ¤ì¡¢ -Á´¤Æ¤Î¥æ¡¼¥¶¤¬Æɤ߽ñ¤­²Äǽ¤Ç¤¢¤Ã¤¿)¡£ -ÊÖ¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ø¤ÎÆɤ߽ñ¤­Î¾Êý¤Î¥¢¥¯¥»¥¹¤¬ -²Äǽ¤Ç¤¢¤ë¡£ -¸Æ¤Ó½Ð¤·¼Ô¤¬¤½¤Î¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¥×¥í¥»¥¹¤Ç¤¢¤ë¤³¤È¤òÊݾڤ¹¤ë¤¿¤á¤Ë¡¢ -¥Õ¥¡¥¤¥ë¤Ï +ファイルは許可モード 0600 で作成され、所有者のみが読み書き可能である +(glibc バージョン 2.06 以前では、ファイルは許可モード 0666 で作成され、 +全てのユーザが読み書き可能であった)。 +返されるファイルディスクリプタで、このファイルへの読み書き両方のアクセスが +可能である。 +呼び出し者がそのファイルを作成するプロセスであることを保証するために、 +ファイルは .BR open (2) -¤Î +の .B O_EXCL -¥Õ¥é¥°ÉÕ¤­¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£ +フラグ付きでオープンされる。 .BR mkostemp () -¤Ï +は .BR mkstemp () -¤ÈƱÍͤÀ¤¬¡¢ +と同様だが、 .BR open (2) -¤ËÅϤµ¤ì¤ë¥Õ¥é¥° +に渡されるフラグ .RB O_APPEND , .B O_SYNC -¤Ê¤É) ¤ò +など) を .I flags -¤Ç»ØÄê¤Ç¤­¤ëÅÀ¤¬°Û¤Ê¤ë -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï°ì»þ¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢\-1 ¤òÊÖ¤·¡¢ +で指定できる点が異なる +.SH 返り値 +成功すると、これらの関数は一時ファイルのファイルディスクリプタを返す。 +エラーの場合は、\-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切に設定する。 +.SH エラー .TP .B EEXIST -¤¹¤Ç¤ËƱ¤¸Ì¾Á°¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤¿¡£ -\fItemplate\fP ¤ÎÆâÍƤÏÉÔÄê¤Ç¤¢¤ë¡£ +すでに同じ名前を持つファイルが存在した。 +\fItemplate\fP の内容は不定である。 .TP .B EINVAL -°ú¿ô \fItemplate\fP ¤Ç»Ø¼¨¤µ¤ì¤¿Ê¸»úÇÛÎó¤Î¸å¤í¤Î 6 ʸ»ú¤¬ XXXXXX ¤Ç¤Ê¤¤¡£ -\fItemplate\fP ¤ÎÆâÍƤÏÊѲ½¤·¤Ê¤¤¡£ +引数 \fItemplate\fP で指示された文字配列の後ろの 6 文字が XXXXXX でない。 +\fItemplate\fP の内容は変化しない。 .PP -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .BR open (2) -¤Ë½ñ¤«¤ï¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Î¤¤¤º¤ì¤«¤Ç¼ºÇÔ¤¹¤ë¤³¤È¤â¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +に書かわれているエラーのいずれかで失敗することもある。 +.SH バージョン .BR mkostemp () -¤Ï glibc 2.7 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH ½àµò +は glibc 2.7 以降で利用可能である。 +.SH 準拠 .BR mkstemp (): 4.3BSD, POSIX.1-2001. .BR mkostemp (): -glibc ¤Ë¤è¤ë³ÈÄ¥¡£ -.SH Ãí°Õ -µö²Ä¥â¡¼¥É 0666 ¤Ç¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¤È¤¤¤¦¸Å¤¤Æ°ºî¤Ï¡¢ -¥»¥­¥å¥ê¥Æ¥£¾å¤Î¥ê¥¹¥¯¤Ë¤Ê¤ë¾ì¹ç¤¬¤¢¤ë¡£ -Æä˾¤Î Unix ¤Ç¤Ïµö²Ä¥â¡¼¥É¤È¤·¤Æ 0600 ¤ò»È¤¦¤¿¤á¡¢ -¥×¥í¥°¥é¥à¤ò°Ü¿¢¤¹¤ëºÝ¡¢¤³¤ÎºÙ¤«¤Ê°ã¤¤¤ò¸«Íî¤È¤¹²ÄǽÀ­¤¬ -¤¢¤ë¤«¤é¤À¡£ +glibc による拡張。 +.SH 注意 +許可モード 0666 でファイルを作成するという古い動作は、 +セキュリティ上のリスクになる場合がある。 +特に他の Unix では許可モードとして 0600 を使うため、 +プログラムを移植する際、この細かな違いを見落とす可能性が +あるからだ。 -¤è¤ê°ìÈÌŪ¤Ë¤Ï¡¢ +より一般的には、 .BR mkstemp () -¤Î POSIX µ¬Äê¤Ç¤Ï¥Õ¥¡¥¤¥ë¥â¡¼¥É¤Ë¤Ä¤¤¤Æ²¿¤â½Ò¤Ù¤Æ¤¤¤Ê¤¤¡£ -½¾¤Ã¤Æ¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï +の POSIX 規定ではファイルモードについて何も述べていない。 +従って、アプリケーションは .BR mkstemp () -(¤ä +(や .BR mkostemp ()) -¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¥Õ¥¡¥¤¥ë¥â¡¼¥ÉÀ¸À®¥Þ¥¹¥¯ +を呼び出す前にファイルモード生成マスク .RB ( umask (2) -»²¾È) ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¤«³Îǧ¤¹¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +参照) が適切に設定されているか確認するべきである。 .BR mktemp () -¤Î¥×¥í¥È¥¿¥¤¥×Àë¸À¤Ï¡¢libc4, libc5, glibc1 ¤Ç¤Ï +のプロトタイプ宣言は、libc4, libc5, glibc1 では .I -¤Ë´Þ¤Þ¤ì¤ë; glibc2 ¤Ç¤Ï POSIX.1 ¤Ë½àµò¤· +に含まれる; glibc2 では POSIX.1 に準拠し .I -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +に含まれている。 +.SH 関連項目 .BR mkdtemp (3), .BR mktemp (3), .BR tempnam (3), diff --git a/release/man3/mktemp.3 b/release/man3/mktemp.3 index f1a4527d..1e0703a5 100644 --- a/release/man3/mktemp.3 +++ b/release/man3/mktemp.3 @@ -34,15 +34,15 @@ .\" Translated Sat Apr 10 02:12:40 JST 1999 .\" by Kazuyuki Tanisako .\" -.\"WORD: temporary file ¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë -.\"WORD: filename ¥Õ¥¡¥¤¥ë̾ -.\"WORD: pointer ¥Ý¥¤¥ó¥¿¡¼ -.\"WORD: function ´Ø¿ô +.\"WORD: temporary file テンポラリファイル +.\"WORD: filename ファイル名 +.\"WORD: pointer ポインター +.\"WORD: function 関数 .\" .TH MKTEMP 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -mktemp \- ¾¤È½Å¤Ê¤é¤Ê¤¤¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë̾¤òºîÀ®¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mktemp \- 他と重ならないテンポラリファイル名を作成する +.SH 書式 .nf .B #include .sp @@ -50,9 +50,9 @@ mktemp \- ¾ .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR mktemp (): @@ -60,66 +60,66 @@ glibc .PD 0 .RS 4 .TP 4 -glibc 2.12 °Ê¹ß: +glibc 2.12 以降: _BSD_SOURCE || _SVID_SOURCE || (_XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED) && !(_POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600) .TP -glibc 2.12 ¤è¤êÁ°: +glibc 2.12 より前: _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .RE .PD .ad b \"O .SH DESCRIPTION -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR mktemp () -¤Ï°ú¿ô \fItemplate\fP ¤«¤é¾¤È½Å¤Ê¤é¤Ê¤¤ -¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë̾¤òºîÀ®¤¹¤ë¡£°ú¿ô \fItemplate\fP ¤Ç»Ø¼¨¤¹¤ëʸ»úÇÛÎó -¤Î¸å6ʸ»ú¤Ï XXXXXX ¤Ç¤¢¤ëɬÍפ¬¤¢¤ë¡£¤³¤ÎÉôʬ¤¬¥Õ¥¡¥¤¥ë̾¤ò¾¤È -½Å¤Ê¤é¤Ê¤¤¤Ë¤¹¤ë¤è¤¦¤Êʸ»ú¤ÇÃÖ¤­´¹¤¨¤é¤ì¤ë¡£ +は引数 \fItemplate\fP から他と重ならない +テンポラリファイル名を作成する。引数 \fItemplate\fP で指示する文字配列 +の後6文字は XXXXXX である必要がある。この部分がファイル名を他と +重ならないにするような文字で置き換えられる。 .I template -¤Ï½ñ¤­´¹¤¨¤é¤ì¤ë¤¿¤á¡¢Ê¸»úÎóÄê¿ô¤Ç¤Ï¤Ê¤¯Ê¸»úÇÛÎó¤È¤·¤ÆÀë¸À¤¹¤ë¤è¤¦¤Ë -¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -´Ø¿ô +は書き換えられるため、文字列定数ではなく文字配列として宣言するように +しなければならない。 +.SH 返り値 +関数 .BR mktemp () -¤Ï¾ï¤Ë \fItemplate\fP ¤òÌ᤹¡£ -°ì°Õ¤Ê̾Á°¤¬ºîÀ®¤µ¤ì¤¿¾ì¹ç¡¢ -\fItemplate\fP ¤ÎºÇ¸å¤Î 6 ¥Ð¥¤¥È¤Ë -¾¤È½Å¤Ê¤é¤Ê¤¤Ì¾Á° (¤½¤ì¤Þ¤Ç¤Ë½Ð¤Æ¤¤¤Ê¤¤Ì¾Á°) ¤Ë¤Ê¤ë¤è¤¦¤ÊÃͤ¬³ÊǼ¤µ¤ì¤ë¡£ -°ì°Õ¤Ê̾Á°¤¬ºîÀ®¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ -\fItemplate\fP ¤Ë¤Ï¶õʸ»úÎ󤬥»¥Ã¥È¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +は常に \fItemplate\fP を戻す。 +一意な名前が作成された場合、 +\fItemplate\fP の最後の 6 バイトに +他と重ならない名前 (それまでに出ていない名前) になるような値が格納される。 +一意な名前が作成できなかった場合には、 +\fItemplate\fP には空文字列がセットされる。 +.SH エラー .TP .B EINVAL -°ú¿ô \fItemplate\fP ¤Ç»Ø¼¨¤µ¤ì¤¿Ê¸»úÎó¤Î¸å6ʸ»ú¤¬ XXXXXX ¤Ç¤Ê¤¤¡£ -.SH ½àµò +引数 \fItemplate\fP で指示された文字列の後6文字が XXXXXX でない。 +.SH 準拠 4.3BSD, POSIX.1-2001. -POSIX.1-2008 ¤Ç¤Ï +POSIX.1-2008 では .BR mktemp () -¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -libc4, libc5, glibc1 ¤Ç¤Î¥×¥í¥È¥¿¥¤¥×Àë¸À¤Ï +の仕様が削除されている。 +.SH 注意 +libc4, libc5, glibc1 でのプロトタイプ宣言は .I -¤Ë´Þ¤Þ¤ì¤ë; glibc2 ¤Ç¤Ï Single UNIX Specification ¤Ë½¾¤Ã¤Æ +に含まれる; glibc2 では Single UNIX Specification に従って .I -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -.SH ¥Ð¥° +に含まれている。 +.SH バグ .BR mktemp () -¤ò·è¤·¤Æ»È¤ï¤Ê¤¤¤³¤È¡£4.3BSD ·Ï¤Î¼ÂÁõ¤ä XXXXXX ¤ò -¥×¥í¥»¥¹ ID ¤È1ʸ»ú¤Ë¤è¤êÃÖ¤­´¹¤¨¤ëÊý¼°¤Ç¤Ï¤»¤¤¤¼¤¤26¤Î̾Á°¤òÊÖ¤¹ -¤³¤È¤¬¤Ç¤­¤ë¤Ë¤¹¤®¤Ê¤¤¡£ -¤³¤Î̾Á°¤Ï´Êñ¤Ë¿ä¬¤Ç¤­¤ë¤³¤È¤ä¡¢¤½¤Î̾Á°¤¬¤¹¤Ç¤Ë¸ºß¤·¤Æ¤¤¤ë¤«¤É¤¦¤« -¥Æ¥¹¥È¤·¤Æ¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë´Ö¤Ë¶¥¹ç¤¬¤¢¤ë»ö¤«¤é¡¢ +を決して使わないこと。4.3BSD 系の実装や XXXXXX を +プロセス ID と1文字により置き換える方式ではせいぜい26の名前を返す +ことができるにすぎない。 +この名前は簡単に推測できることや、その名前がすでに存在しているかどうか +テストして、そのファイルをオープンする間に競合がある事から、 .BR mktemp () -¤ò»È¤¦¤Î¤ÏËè²ó¥»¥­¥å¥ê¥Æ¥£¥ê¥¹¥¯¤ò¤ª¤«¤¹¤³¤È¤Ë¤Ê¤ë¡£ -¤³¤Î¶¥¹ç¤Ï +を使うのは毎回セキュリティリスクをおかすことになる。 +この競合は .BR mkstemp (3) -¤ò»È¤¦¤³¤È¤ÇÈò¤±¤é¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を使うことで避けられる。 +.SH 関連項目 .BR mkstemp (3), .BR tempnam (3), .BR tmpfile (3), diff --git a/release/man3/modf.3 b/release/man3/modf.3 index 206538cd..31b3efe2 100644 --- a/release/man3/modf.3 +++ b/release/man3/modf.3 @@ -36,9 +36,9 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH MODF 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -modf, modff, modfl \- ÉâÆ°¾®¿ôÅÀ¼Â¿ô¤«¤é¡¢Éä¹æÉÕ¤­À°¿ô¤È¾®¿ôÉôʬ¤ò¼è¤ê½Ð¤¹´Ø¿ô -.SH ½ñ¼° +.SH 名前 +modf, modff, modfl \- 浮動小数点実数から、符号付き整数と小数部分を取り出す関数 +.SH 書式 .nf .B #include .sp @@ -48,12 +48,12 @@ modf, modff, modfl \- .br .BI "long double modfl(long double " x ", long double *" iptr ); .fi -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -67,31 +67,31 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR modf () -´Ø¿ô¤Ï¡¢°ú¿ô \fIx\fP ¤òÀ°¿ôÉôʬ¤È¾®¿ôÉôʬ¤Ëʬ³ä¤¹¤ë¡£ -¤³¤Î¤È¤­¡¢¤Õ¤¿¤Ä¤ÎÃͤϤȤâ¤Ë \fIx\fP ¤ÈƱ¤¸Éä¹æ¤ò»ý¤Ä¡£ -À°¿ôÉôʬ¤Ï \fIiptr\fP ¤¬»Ø¤¹¾ì½ê¤Ë³ÊǼ¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +関数は、引数 \fIx\fP を整数部分と小数部分に分割する。 +このとき、ふたつの値はともに \fIx\fP と同じ符号を持つ。 +整数部分は \fIiptr\fP が指す場所に格納される。 +.SH 返り値 .BR modf () -´Ø¿ô¤Ï \fIx\fP ¤Î¾®¿ôÉôʬ¤òÊÖ¤¹¡£ +関数は \fIx\fP の小数部分を返す。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¡¢ +が NaN の場合、NaN が返され、 .IR *iptr -¤Ë NaN ¤¬ÀßÄꤵ¤ì¤ë¡£ +に NaN が設定される。 .I x -¤¬Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤Î¾ì¹ç¡¢ -+0 (\-0) ¤¬ÊÖ¤µ¤ì¡¢ +が正の無限大 (負の無限大) の場合、 ++0 (\-0) が返され、 .IR *iptr -¤ËÀµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ -.SH ½àµò +に正の無限大 (負の無限大) が設定される。 +.SH エラー +エラーは発生しない。 +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 +.SH 関連項目 .BR frexp (3), .BR ldexp (3) diff --git a/release/man3/mpool.3 b/release/man3/mpool.3 index 60f27a74..898709ed 100644 --- a/release/man3/mpool.3 +++ b/release/man3/mpool.3 @@ -37,12 +37,12 @@ .\" by Shouichi Saito .\" Proofed Tue Aug 19 1999 by NAKANO Takeo .\" -.\"WORD: descriptor ¥Ç¥¹¥¯¥ê¥×¥¿ +.\"WORD: descriptor デスクリプタ .TH MPOOL 3 1993-06-04 "" "Linux Programmer's Manual" .UC 7 -.SH ̾Á° -mpool \- ¶¦Í­¥á¥â¥ê¥Ð¥Ã¥Õ¥¡¥×¡¼¥ë -.SH ½ñ¼° +.SH 名前 +mpool \- 共有メモリバッファプール +.SH 書式 .nf .B #include .B #include @@ -64,161 +64,161 @@ mpool \- .sp .BI "int mpool_close(MPOOL *" mp ); .fi -.SH ÀâÌÀ +.SH 説明 .I mpool -¤Ï¡¢¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥Ú¡¼¥¸»Ø¸þ¤Î¥Ð¥Ã¥Õ¥¡´ÉÍý¤ò¼ÂÁõ¤·¤¿ -¥é¥¤¥Ö¥é¥ê¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ç¤¢¤ë¡£ +は、ファイルに対するページ指向のバッファ管理を実装した +ライブラリインターフェイスである。 .PP -´Ø¿ô +関数 .BR mpool_open () -¤Ï¥á¥â¥ê¥×¡¼¥ë¤ò½é´ü²½¤¹¤ë¡£ +はメモリプールを初期化する。 .I key -°ú¿ô¤Ï¥Ð¥¤¥Èʸ»úÎó¤Ç¤¢¤ê¡¢¥Ð¥Ã¥Õ¥¡¤ò¶¦Í­¤·¤¿¤¤Ê£¿ô¥×¥í¥»¥¹´Ö -¤Ç¤Î¥Í¥´¥·¥¨¡¼¥·¥ç¥ó¤Ë»È¤ï¤ì¤ë¡£ -¥Õ¥¡¥¤¥ë¥Ð¥Ã¥Õ¥¡¤¬¶¦Í­¥á¥â¥ê¤Ë¥Þ¥Ã¥×¤µ¤ì¤ë¤È¡¢ -Ʊ¤¸¥­¡¼¤ò»È¤¦¥×¥í¥»¥¹¤ÏÁ´¤Æ¥Ð¥Ã¥Õ¥¡¤ò¶¦Í­¤¹¤ë¡£ +引数はバイト文字列であり、バッファを共有したい複数プロセス間 +でのネゴシエーションに使われる。 +ファイルバッファが共有メモリにマップされると、 +同じキーを使うプロセスは全てバッファを共有する。 .I key -¤¬ NULL ¤À¤È¡¢¥Ð¥Ã¥Õ¥¡¤Ï¥×¥é¥¤¥Ù¡¼¥È¤Ê¥á¥â¥ê¤Ë³ä¤êÉÕ¤±¤é¤ì¤ë¡£ +が NULL だと、バッファはプライベートなメモリに割り付けられる。 .I fd -°ú¿ô¤Ï¤â¤È¤Ë¤Ê¤ë¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¥Ç¥¹¥¯¥ê¥×¥¿¤Ï¥·¡¼¥¯²Äǽ¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +引数はもとになるファイルのファイルデスクリプタである。 +このファイルデスクリプタはシーク可能でなくてはならない。 .I key -¤¬ NULL ¤Ç¤Ê¤¯¡¢¤«¤Ä´û¤Ë¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Ë¥Þ¥Ã¥Á¤·¤¿¾ì¹ç¡¢ +が NULL でなく、かつ既にマップされているファイルにマッチした場合、 .I fd -°ú¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ +引数は無視される。 .PP .I pagesize -°ú¿ô¤Ï¥Ð¥¤¥Èñ°Ì¤Ç¤Î¥Ú¡¼¥¸¥µ¥¤¥º¤Ç¤¢¤ê¡¢¥Õ¥¡¥¤¥ë¤Ï¤³¤Î¥µ¥¤¥º¤Ëʬ³ä¤µ¤ì¤ë¡£ +引数はバイト単位でのページサイズであり、ファイルはこのサイズに分割される。 .I maxcache -°ú¿ô¤Ï´ð¥Õ¥¡¥¤¥ë¤ò¥­¥ã¥Ã¥·¥å¤¹¤ë¤È¤­¤ËÍѤ¤¤ëºÇÂç¥Ú¡¼¥¸¿ô¤Ç¤¢¤ë¡£ -.\"NAKANO "at any one time" ¤Ï¡Ö¤É¤ó¤Ê½Ö´Ö¤Ë¤ª¤¤¤Æ¤â (ºÇÂç)¡×¤Ç¤¹¤¬¡¢ -.\"NAKANO ¾Êά²Äǽ¤Ç¤·¤ç¤¦¡£ -¤³¤ÎÃͤϥե¡¥¤¥ë¥Ð¥Ã¥Õ¥¡¤ò¶¦Í­¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î¿ô¤Ë¤Ï´Ø·¸¤Ê¤¤¤¬¡¢ -¥Õ¥¡¥¤¥ë¤ò¶¦Í­¤¹¤ë¥×¥í¥»¥¹¤¬»ØÄꤷ¤¿¤¦¤Á¤ÎºÇÂçÃͤ¬¼ÂºÝ¤ËÍѤ¤¤é¤ì¤ë¡£ +引数は基ファイルをキャッシュするときに用いる最大ページ数である。 +.\"NAKANO "at any one time" は「どんな瞬間においても (最大)」ですが、 +.\"NAKANO 省略可能でしょう。 +この値はファイルバッファを共有しているプロセスの数には関係ないが、 +ファイルを共有するプロセスが指定したうちの最大値が実際に用いられる。 .PP -´Ø¿ô +関数 .BR mpool_filter () -¤ÏÆ©²áŪ¤Ê¥Ú¡¼¥¸Æþ½ÐÎϽèÍý¤ò²Äǽ¤Ë¤¹¤ë¡£ -´Ø¿ô +は透過的なページ入出力処理を可能にする。 +関数 .I pgin -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢ -¥Õ¥¡¥¤¥ë¤«¤é¥á¥â¥ê¥×¡¼¥ë¤ËÆɤ߹þ¤Þ¤ì¤ëÅ٤ˤ³¤Î´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ -´Ø¿ô +が指定されていると、 +ファイルからメモリプールに読み込まれる度にこの関数が呼び出される。 +関数 .I pgout -¤¬»ØÄꤵ¤ì¤Æ¤¤¤È¡¢ -¥Ð¥Ã¥Õ¥¡¤«¤é¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤µ¤ì¤ëÅ٤ˤ³¤Î´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ -¤É¤Á¤é¤Î´Ø¿ô¤â¡¢ +が指定されていと、 +バッファからファイルに書き出される度にこの関数が呼び出される。 +どちらの関数も、 .I pgcookie -¥Ý¥¤¥ó¥¿¡¢¥Ú¡¼¥¸¿ô¡¢Æɤ߽ñ¤­¤µ¤ì¤ë¥Ú¡¼¥¸¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò°ú¿ô¤Ë¤È¤ë¡£ +ポインタ、ページ数、読み書きされるページへのポインタを引数にとる。 .PP -´Ø¿ô +関数 .BR mpool_new () -¤Ï +は .I MPOOL -¥Ý¥¤¥ó¥¿¤È¥¢¥É¥ì¥¹¤ò°ú¿ô¤Ë¤È¤ë¡£ -¿·¤·¤¤¥Ú¡¼¥¸¤¬³ä¤êÅö¤Æ²Äǽ¤Ê¾ì¹ç¡¢¥Ú¡¼¥¸¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬ÊÖ¤µ¤ì¡¢ -¥Ú¡¼¥¸¿ô¤¬ +ポインタとアドレスを引数にとる。 +新しいページが割り当て可能な場合、ページへのポインタが返され、 +ページ数が .I pgnoaddr -¥¢¥É¥ì¥¹¤ËǼ¤á¤é¤ì¤ë¡£ -³ä¤êÅö¤Æ¤¬ÉÔ²Äǽ¤Ê¾ì¹ç¤Ï NULL ¤¬ÊÖ¤µ¤ì¡¢ +アドレスに納められる。 +割り当てが不可能な場合は NULL が返され、 .I errno -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .PP -´Ø¿ô +関数 .BR mpool_get () -¤Ï +は .I MPOOL -¥Ý¥¤¥ó¥¿¤È¥Ú¡¼¥¸¿ô¤ò°ú¿ô¤Ë¤È¤ë¡£¥Ú¡¼¥¸¤¬Â¸ºß¤·¤Æ¤¤¤ë¤È¡¢ -¥Ú¡¼¥¸¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬ÊÖ¤µ¤ì¤ë¡£ -¸ºß¤·¤Æ¤¤¤Ê¤¤¤È NULL ¤¬ÊÖ¤µ¤ì¡¢ +ポインタとページ数を引数にとる。ページが存在していると、 +ページへのポインタが返される。 +存在していないと NULL が返され、 .I errno -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .I flags -°ú¤­¿ô¤Ï¸½ºß»ÈÍѤµ¤ì¤Æ¤¤¤Ê¤¤¡£ +引き数は現在使用されていない。 .PP -´Ø¿ô +関数 .BR mpool_put () -¤Ï +は .I pgaddr -¤¬»²¾È¤¹¤ë¥Ú¡¼¥¸¤ò²òÊü¤¹¤ë¡£ +が参照するページを解放する。 .I pgaddr -¤Ï°ÊÁ°¤Ë +は以前に .BR mpool_get () -¤« +か .BR mpool_new () -¤¬ÊÖ¤·¤¿¥¢¥É¥ì¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -flag ¤ÎÃͤϰʲ¼¤ÎÃͤÎÏÀÍýϤǻØÄꤹ¤ë¡£ +が返したアドレスでなければならない。 +flag の値は以下の値の論理和で指定する。 .TP .B MPOOL_DIRTY -¥Ú¡¼¥¸¤ÏÊѹ¹¤µ¤ì¤Æ¤ª¤ê¡¢¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤¹É¬Íפ¬¤¢¤ë¡£ +ページは変更されており、ファイルに書き出す必要がある。 .PP .BR mpool_put () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤ò¡¢¥¨¥é¡¼¤¬¤¢¤ë¤È \-1 ¤òÊÖ¤¹¡£ +は成功すると 0 を、エラーがあると \-1 を返す。 .PP -´Ø¿ô +関数 .BR mpool_sync () -¤Ï +は .I MPOOL -¥Ý¥¤¥ó¥¿¤Î¼¨¤¹¥Ú¡¼¥¸¤Î¤¦¤Á¡¢ -Êѹ¹¤µ¤ì¤¿¤â¤Î¤òÁ´¤Æ¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤¹¡£ +ポインタの示すページのうち、 +変更されたものを全てファイルに書き出す。 .BR mpool_sync () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤ò¡¢¥¨¥é¡¼¤¬¤¢¤ë¤È \-1 ¤òÊÖ¤¹¡£ +は成功すると 0 を、エラーがあると \-1 を返す。 .PP -´Ø¿ô +関数 .BR mpool_close () -¤Ï¥á¥â¥ê¥×¡¼¥ë¥¯¥Ã¥­¡¼¤Î¼¨¤¹³ä¤êÅö¤ÆºÑ¤ß¤Î¥á¥â¥ê¤ò²òÊü¤¹¤ë¡£ -Êѹ¹¤µ¤ì¤¿¥Ú¡¼¥¸¤Ï¥Õ¥¡¥¤¥ë¤Ë\fB½ñ¤­½Ð¤µ¤ì¤Ê¤¤\fP¡£ +はメモリプールクッキーの示す割り当て済みのメモリを解放する。 +変更されたページはファイルに\fB書き出されない\fP。 .I mpool_close () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤ò¡¢¥¨¥é¡¼¤¬¤¢¤ë¤È \-1 ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -´Ø¿ô +は成功すると 0 を、エラーがあると \-1 を返す。 +.SH エラー +関数 .BR mpool_open () -¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó +は失敗するとライブラリルーチン .BR malloc (3) -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿ +で指定されているエラーに応じた .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ +をセットする。 .PP -´Ø¿ô +関数 .BR mpool_get () -¤Ï¼ºÇÔ¤¹¤ë¤È¼¡¤Î¤è¤¦¤Ê +は失敗すると次のような .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ +をセットする。 .TP 15 .B EINVAL -Í×µá¤Î¤¢¤Ã¤¿¥ì¥³¡¼¥É¤Ï¸ºß¤·¤Ê¤¤¡£ +要求のあったレコードは存在しない。 .PP -´Ø¿ô +関数 .BR mpool_new () -¤È +と .BR mpool_get () -¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó +は失敗するとライブラリルーチン .BR read (2), .BR write (2), .BR malloc (3) -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿ +で指定されているエラーに応じた .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ +をセットする。 .PP -´Ø¿ô +関数 .BR mpool_sync () -¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó +は失敗するとライブラリルーチン .BR write (2) -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿ +で指定されているエラーに応じた .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ +をセットする。 .PP -´Ø¿ô +関数 .BR mpool_close () -¤Ï¼ºÇÔ¤¹¤ë¤È¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó +は失敗するとライブラリルーチン .BR free (3) -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿ +で指定されているエラーに応じた .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ -.SH ½àµò -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -BSD ·Ï¤Ë¸ºß¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +をセットする。 +.SH 準拠 +POSIX.1-2001 にはない。 +BSD 系に存在する。 +.SH 関連項目 .BR btree (3), .BR dbopen (3), .BR hash (3), diff --git a/release/man3/mq_close.3 b/release/man3/mq_close.3 index b4a2ae57..0645aa6d 100644 --- a/release/man3/mq_close.3 +++ b/release/man3/mq_close.3 @@ -27,45 +27,45 @@ .\" Translated 2006-04-23, Akihiro MOTOKI .\" .TH MQ_CLOSE 3 2010-08-29 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -mq_close \- ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò»Ò¤ò¥¯¥í¡¼¥º¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mq_close \- メッセージキュー記述子をクローズする +.SH 書式 .nf .B #include .sp .BI "int mq_close(mqd_t " mqdes ); .fi .sp -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lrt\fP でリンクする。 +.SH 説明 .BR mq_close () -¤Ï¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò»Ò (message queue descriptor) +はメッセージキュー記述子 (message queue descriptor) .I mqdes -¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +をクローズする。 -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬ +呼び出し元のプロセスが .I mqdes -·Ðͳ¤Ç¤³¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤ËÄÌÃÎÍ×µá (notification request) -¤òÀßÄꤷ¤Æ¤¤¤ë¾ì¹ç¡¢ÄÌÃÎÍ×µá¤Ïºï½ü¤µ¤ì¡¢Â¾¤Î¥×¥í¥»¥¹¤¬¤½¤Î¥­¥å¡¼¤Ë -ÂФ·¤ÆÄÌÃÎÍ×µá¤òÀßÄê¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +経由でこのメッセージキューに通知要求 (notification request) +を設定している場合、通知要求は削除され、他のプロセスがそのキューに +対して通知要求を設定できるようになる。 +.SH 返り値 +成功すると、 .BR mq_close () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値を設定する。 +.SH エラー .TP .B EBADF .I mqdes -¤Ç»ØÄꤵ¤ì¤¿µ­½Ò»Ò¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ -.SH ½àµò +で指定された記述子が不正である。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ -¥×¥í¥»¥¹½ªÎ»»þ¡¢¤â¤·¤¯¤Ï +.SH 注意 +プロセス終了時、もしくは .BR execve (2) -¼Â¹Ô»þ¤Ë¡¢Á´¤Æ¤Î¥ª¡¼¥×¥ó¤µ¤ì¤¿¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ï¼«Æ°Åª¤Ë¥¯¥í¡¼¥º¤µ¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +実行時に、全てのオープンされたメッセージキューは自動的にクローズされる。 +.SH 関連項目 .BR mq_getattr (3), .BR mq_notify (3), .BR mq_open (3), diff --git a/release/man3/mq_getattr.3 b/release/man3/mq_getattr.3 index e02a8979..d23d6f4d 100644 --- a/release/man3/mq_getattr.3 +++ b/release/man3/mq_getattr.3 @@ -28,9 +28,9 @@ .\" Updated 2008-11-09, Akihiro MOTOKI, LDP v3.13 .\" .TH MQ_GETATTR 3 2010-08-29 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -mq_getattr, mq_setattr \- ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î°À­¤òÀßÄê/¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mq_getattr, mq_setattr \- メッセージキューの属性を設定/取得する +.SH 書式 .nf .B #include .sp @@ -40,119 +40,119 @@ mq_getattr, mq_setattr \- .BI " struct mq_attr *" oldattr ); .fi .sp -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lrt\fP でリンクする。 +.SH 説明 .BR mq_getattr () -¤È +と .BR mq_setattr () -¤Ï¡¢µ­½Ò»Ò +は、記述子 .I mqdes -¤Ç»²¾È¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î°À­¤Î¼èÆÀ¤ÈÊѹ¹¤ò¤½¤ì¤¾¤ì¹Ô¤¦¡£ +で参照されるメッセージキューの属性の取得と変更をそれぞれ行う。 .BR mq_getattr () -¤Ï¡¢ +は、 .I attr -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë +が指すバッファに .I mq_attr -¹½Â¤ÂΤò³ÊǼ¤·¤ÆÊÖ¤¹¡£¤³¤Î¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +構造体を格納して返す。この構造体は以下のように定義されている: .in +4n .nf struct mq_attr { - long mq_flags; /* ¥Õ¥é¥°: 0 ¤« O_NONBLOCK */ - long mq_maxmsg; /* ¥­¥å¡¼¤ÎºÇÂç¥á¥Ã¥»¡¼¥¸¿ô */ - long mq_msgsize; /* ºÇÂç¥á¥Ã¥»¡¼¥¸¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) */ - long mq_curmsgs; /* ¥­¥å¡¼¤Ë¸½ºßÆþ¤Ã¤Æ¤¤¤ë¥á¥Ã¥»¡¼¥¸¿ô */ + long mq_flags; /* フラグ: 0 か O_NONBLOCK */ + long mq_maxmsg; /* キューの最大メッセージ数 */ + long mq_msgsize; /* 最大メッセージサイズ (バイト単位) */ + long mq_curmsgs; /* キューに現在入っているメッセージ数 */ }; .fi .in .PP .I mq_flags -¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¡¢¥ª¡¼¥×¥ó¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò (open message queue -description) ¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤Æ¤¤¤ë¥Õ¥é¥°¤¬³ÊǼ¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï +フィールドには、オープンメッセージキュー記述 (open message queue +description) に関連付けられているフラグが格納される。 +このフィールドは .BR mq_open (3) -¤Ç¥­¥å¡¼¤¬ºîÀ®¤µ¤ì¤ëºÝ¤Ë½é´ü²½¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ë¸½¤ì¤ë¥Õ¥é¥°¤Ï +でキューが作成される際に初期化される。 +このフィールドに現れるフラグは .B O_NONBLOCK -¤À¤±¤Ç¤¢¤ë¡£ +だけである。 .I mq_maxmsg -¤È +と .I mq_msgsize -¥Õ¥£¡¼¥ë¥É¤Ï +フィールドは .BR mq_open (3) -¤Ç¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤¬ºîÀ®¤µ¤ì¤ëºÝ¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ +でメッセージキューが作成される際にセットされる。 .I mq_maxmsg -¥Õ¥£¡¼¥ë¥É¤Ï¡¢ +フィールドは、 .BR mq_send (3) -¤ò»È¤Ã¤Æ¥­¥å¡¼¤ËÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤ë¥á¥Ã¥»¡¼¥¸¿ô¤Î¾å¸Â¤Ç¤¢¤ë¡£ +を使ってキューに入れることができるメッセージ数の上限である。 .I mq_msgsize -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥­¥å¡¼¤ËÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤ë¥á¥Ã¥»¡¼¥¸¤Î -¾å¸Â¥µ¥¤¥º¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Ï¤É¤Á¤é¤â 0 ¤è¤êÂ礭¤ÊÃͤǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤ËÀßÄê¤Ç¤­¤ëÃͤξå¸Â¤Ï +フィールドは、キューに入れることができるメッセージの +上限サイズである。 +これらのフィールドはどちらも 0 より大きな値でなければならない。 +これらのフィールドに設定できる値の上限は .I /proc -¥Õ¥¡¥¤¥ë¤Ë¤è¤ê·è¤Þ¤ë¡£ +ファイルにより決まる。 .I /proc -¥Õ¥¡¥¤¥ë¤Î¾ÜºÙ¤Ï +ファイルの詳細は .BR mq_open (3) -¤ËÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡£ +に説明されている。 .I mq_curmsgs -¥Õ¥£¡¼¥ë¥É¤Ï¥­¥å¡¼¤Ë¸½ºß³ÊǼ¤µ¤ì¤Æ¤¤¤ë¥á¥Ã¥»¡¼¥¸¿ô¤òÊÖ¤¹¡£ +フィールドはキューに現在格納されているメッセージ数を返す。 .BR mq_setattr () -¤Ï¡¢ +は、 .I newattr -¤¬»Ø¤¹ +が指す .I mq_attr -¹½Â¤ÂΤÇÍ¿¤¨¤é¤ì¤¿¾ðÊó¤ò»È¤Ã¤Æ¡¢¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î°À­¤òÀßÄꤹ¤ë¡£ -Êѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë°À­¤Ï¡¢ +構造体で与えられた情報を使って、メッセージキューの属性を設定する。 +変更することができる属性は、 .I mq_flags -¤Î +の .B O_NONBLOCK -¥Õ¥é¥°¤ÎÀßÄê¤À¤±¤Ç¤¢¤ë¡£ +フラグの設定だけである。 .I newattr -¤Î¾¤Î¥Õ¥£¡¼¥ë¥É¤Ï̵»ë¤µ¤ì¤ë¡£ +の他のフィールドは無視される。 .I oldattr -¥Õ¥£¡¼¥ë¥É¤¬ NULL °Ê³°¤Î¾ì¹ç¡¢ +フィールドが NULL 以外の場合、 .BR mq_getattr () -¤¬ÊÖ¤¹¤Î¤ÈƱ¤¸¾ðÊó¤ò³ÊǼ¤·¤¿ +が返すのと同じ情報を格納した .I mq_attr -¹½Â¤ÂΤò +構造体を .I oldattr -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤ËÆþ¤ì¤ÆÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +が指すバッファに入れて返す。 +.SH 返り値 +成功すると、 .I mq_getattr () -¤È +と .I mq_setattr () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値を設定する。 +.SH エラー .TP .B EBADF .I mqdes -¤Ç»ØÄꤵ¤ì¤¿µ­½Ò»Ò¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +で指定された記述子が不正である。 .TP .B EINVAL .I newattr\->mq_flags -¤Ë +に .B O_NONBLOCK -°Ê³°¤Î¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤¿¡£ -.SH ½àµò +以外のビットがセットされていた。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ -Linux ¤Ç¤Ï¡¢ +.SH 注意 +Linux では、 .BR mq_getattr () -¤È +と .BR mq_setattr () -¤Ï¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ç¤¢¤ê¡¢ +はライブラリ関数であり、 .BR mq_getsetattr (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÍѤ¤¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +システムコールを用いて実装されている。 +.SH 関連項目 .BR mq_close (3), .BR mq_notify (3), .BR mq_open (3), diff --git a/release/man3/mq_notify.3 b/release/man3/mq_notify.3 index 6f939eaf..b1e78a55 100644 --- a/release/man3/mq_notify.3 +++ b/release/man3/mq_notify.3 @@ -29,158 +29,158 @@ .\" Updated 2010-10-27, Akihiro Motoki, LDP v3.29 .\" .TH MQ_NOTIFY 3 2010-10-04 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -mq_notify \- ¥á¥Ã¥»¡¼¥¸ÅþÃå»þ¤ËÄÌÃΤò¹Ô¤¦¤è¤¦ÅÐÏ¿¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mq_notify \- メッセージ到着時に通知を行うよう登録する +.SH 書式 .nf .B #include .sp .BI "int mq_notify(mqd_t " mqdes ", const struct sigevent *" notification ); .fi .sp -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lrt\fP でリンクする。 +.SH 説明 .BR mq_notify () -¤ò»È¤¦¤È¡¢¥Ç¥£¥¹¥¯¥ê¥×¥¿ +を使うと、ディスクリプタ .I mqdes -¤Ç»²¾È¤µ¤ì¤ë¶õ¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ë¿·¤·¤¯¥á¥Ã¥»¡¼¥¸¤¬ÅþÃ夷¤¿»þ¤Ë -ÈóƱ´ü¤ÎÄÌÃÎ (notification) ¤ÎÇÛÁ÷¤¬¹Ô¤ï¤ì¤ë¤è¤¦¤ËÅÐÏ¿¤·¤¿¤ê¡¢ -¤½¤Î²ò½ü¤ò¹Ô¤Ã¤¿¤ê¤Ç¤­¤ë¡£ +で参照される空のメッセージキューに新しくメッセージが到着した時に +非同期の通知 (notification) の配送が行われるように登録したり、 +その解除を行ったりできる。 .I sevp -°ú¤­¿ô¤Ï +引き数は .I sigevent -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤³¤Î¹½Â¤ÂΤÎÄêµÁ¤È°ìÈÌŪ¤Ê¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï +構造体へのポインタである。 +この構造体の定義と一般的な詳細については .BR sigevent (7) -¤ò»²¾È¡£ +を参照。 .PP .I sevp -¤¬ NULL ¤Ç¤Ê¤¤¥Ý¥¤¥ó¥¿¤Ç¤¢¤ì¤Ð¡¢ +が NULL でないポインタであれば、 .BR mq_notify () -¤Ï¥á¥Ã¥»¡¼¥¸ÄÌÃΤò¼õ¤±¼è¤ë¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤òÅÐÏ¿¤¹¤ë¡£ +はメッセージ通知を受け取るように呼び出し元のプロセスを登録する。 .I sevp -¤¬»Ø¤¹ +が指す .I sigevent -¹½Â¤ÂΤΠ+構造体の .I sigev_notify -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¤É¤Î¤è¤¦¤ÊÄÌÃΤò¹Ô¤¦¤Î¤«¤ò»ØÄꤹ¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«¤ò»ý¤Ä¡£ +フィールドは、どのような通知を行うのかを指定する。 +このフィールドは以下の値のいずれかを持つ。 .TP .B SIGEV_NONE -¡Ö¶õ¤Î (null)¡×¤ÎÄÌÃÎ: ¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤òÄÌÃΤΰ¸Àè¤È¤·¤ÆÅÐÏ¿¤¹¤ë¤¬¡¢ -¼ÂºÝ¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¤¬ÅþÃ夷¤¿»þ¤ËÄÌÃΤÏÁ÷¤é¤ì¤Ê¤¤¡£ +「空の (null)」の通知: 呼び出し元のプロセスを通知の宛先として登録するが、 +実際にはメッセージが到着した時に通知は送られない。 .\" When is SIGEV_NONE useful? .TP .B SIGEV_SIGNAL .I sigev_signo -¤Ç»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë¤òÁ÷¤Ã¤Æ¡¢¥×¥í¥»¥¹¤ËÄÌÃΤ¹¤ë¡£ -°ìÈÌŪ¤Ê¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï +で指定されたシグナルを送って、プロセスに通知する。 +一般的な詳細については .BR sigevent (7) -¤ò»²¾È¡£ +を参照。 .I siginfo_t -¹½Â¤ÂΤΠ+構造体の .I si_code -¥Õ¥£¡¼¥ë¥É¤Ë¤Ï +フィールドには .B SI_MESGQ -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .\" I don't know of other implementations that set .\" si_pid and si_uid -- MTK -¤µ¤é¤Ë¡¢ +さらに、 .I si_pid -¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¤·¤¿¥×¥í¥»¥¹¤Î PID ¤¬¡¢ +にはメッセージを送信したプロセスの PID が、 .I si_uid -¤Ë¤ÏÁ÷¿®¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶ ID ¤¬ÀßÄꤵ¤ì¤ë¡£ +には送信プロセスの実ユーザ ID が設定される。 .TP .B SIGEV_THREAD -¥á¥Ã¥»¡¼¥¸¤ÎÇÛÁ÷»þ¤Ë¤Ï¡¢ +メッセージの配送時には、 .I sigev_notify_function -¤¬¤¢¤¿¤«¤â¿·¤·¤¤¥¹¥ì¥Ã¥É¤Î³«»Ï´Ø¿ô¤Ç¤¢¤ë¤«¤Î¤è¤¦¤Ëµ¯Æ°¤µ¤ì¤ë¡£ -¾ÜºÙ¤Ï +があたかも新しいスレッドの開始関数であるかのように起動される。 +詳細は .BR sigevent (7) -¤ò»²¾È¡£ +を参照。 .PP -°ì¤Ä¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤«¤éÄÌÃΤò¼õ¿®¤¹¤ë¤è¤¦¤ËÅÐÏ¿¤Ç¤­¤ë¥×¥í¥»¥¹¤Ï -°ì¤Ä¤À¤±¤Ç¤¢¤ë¡£ +一つのメッセージキューから通知を受信するように登録できるプロセスは +一つだけである。 .I sevp -¤¬ NULL ¤Ç¡¢¤«¤Ä¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬¤³¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤«¤é¤Î -ÄÌÃΤò¼õ¿®¤¹¤ë¤Ë¸½ºßÅÐÏ¿¤·¤Æ¤¤¤ë¾ì¹ç¡¢ÅÐÏ¿¤òºï½ü¤¹¤ë¡£ -¤³¤ì°Ê¹ß¡¢ÊÌ¤Î¥×¥í¥»¥¹¤¬¤³¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤«¤éÄÌÃΤò¼õ¿®¤¹¤ë¤è¤¦¤Ë -ÅÐÏ¿¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +が NULL で、かつ呼び出し元のプロセスがこのメッセージキューからの +通知を受信するに現在登録している場合、登録を削除する。 +これ以降、別のプロセスがこのメッセージキューから通知を受信するように +登録できるようになる。 -¥á¥Ã¥»¡¼¥¸ÄÌÃΤϡ¢¤½¤ì¤Þ¤Ç¶õ¤Î¥­¥å¡¼¤Ë¿·¤·¤¤¥á¥Ã¥»¡¼¥¸¤¬ÅþÃ夷¤¿ -¾ì¹ç¤Ë¤Î¤ß¹Ô¤ï¤ì¤ë¡£ +メッセージ通知は、それまで空のキューに新しいメッセージが到着した +場合にのみ行われる。 .BR mq_notify () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿»þ¤Ë¤½¤Î¥­¥å¡¼¤¬¶õ¤Ç¤Ê¤¤¾ì¹ç¡¢ -¤½¤Î¥­¥å¡¼¤¬¶õ¤Ë¤Ê¤ê¡¢¤½¤Î¸å¿·¤·¤¤¥á¥Ã¥»¡¼¥¸¤¬ÅþÃ夷¤¿»þ¤Ë -½é¤á¤ÆÄÌÃΤ¬¹Ô¤ï¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ +が呼び出された時にそのキューが空でない場合、 +そのキューが空になり、その後新しいメッセージが到着した時に +初めて通知が行われることになる。 -ÊÌ¤Î¥×¥í¥»¥¹¤ä¥¹¥ì¥Ã¥É¤¬ +別のプロセスやスレッドが .BR mq_receive (3) -¤ò»È¤Ã¤Æ¡¢¶õ¤Î¥­¥å¡¼¤«¤é¥á¥Ã¥»¡¼¥¸¤ÎÆɤ߽Ф·¤òÂԤäƤ¤¤ë¾ì¹ç¡¢ -¥á¥Ã¥»¡¼¥¸ÄÌÃΤÎÅÐÏ¿¤ÏÁ´¤Æ̵»ë¤µ¤ì¤ë¡£ -¥á¥Ã¥»¡¼¥¸¤Ï +を使って、空のキューからメッセージの読み出しを待っている場合、 +メッセージ通知の登録は全て無視される。 +メッセージは .BR mq_receive (3) -¤ò¸Æ¤Ó½Ð¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤ä¥¹¥ì¥Ã¥É¤ËÇÛÁ÷¤µ¤ì¡¢ -¥á¥Ã¥»¡¼¥¸ÄÌÃΤÎÅÐÏ¿¤Ï¸úÎϤò»ý¤Ã¤¿¤Þ¤Þ¤È¤Ê¤ë¡£ +を呼び出しているプロセスやスレッドに配送され、 +メッセージ通知の登録は効力を持ったままとなる。 -ÄÌÃΤϰìÅÙ¤À¤±¹Ô¤ï¤ì¤ë¡£ÄÌÃΤ¬Á÷¤é¤ì¤¿¸å¤Ï¡¢ÄÌÃÎÍ×µá¤ÎÅÐÏ¿¤Ïºï½ü¤µ¤ì¡¢ -ÊÌ¤Î¥×¥í¥»¥¹¤¬¥á¥Ã¥»¡¼¥¸ÄÌÃΤò¼õ¿®¤¹¤ë¤è¤¦¤ËÅÐÏ¿¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -ÄÌÃΤò¼õ¤±¤¿¥×¥í¥»¥¹¤¬¼¡¤ÎÄÌÃΤâ¼õ¿®¤·¤¿¤¤¾ì¹ç¤Ï¡¢ +通知は一度だけ行われる。通知が送られた後は、通知要求の登録は削除され、 +別のプロセスがメッセージ通知を受信するように登録できるようになる。 +通知を受けたプロセスが次の通知も受信したい場合は、 .BR mq_notify () -¤ò»È¤Ã¤Æ¤½¤Î¸å¤ÎÄÌÃΤâ¼õ¤±¤ë¤è¤¦¤ËÍ׵᤹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使ってその後の通知も受けるように要求することができる。 .BR mq_notify () -¤òºÆÅٸƤӽФ¹¤Î¤Ï¡¢Æɤ߽Ф·¤Æ¤¤¤Ê¤¤¥á¥Ã¥»¡¼¥¸¤òÁ´ÉôÆɤ߽Ф·¤Æ -¥­¥å¡¼¤¬¶õ¤Ë¤Ê¤ëÁ°¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë -(¥­¥å¡¼¤«¤é¤Î¥á¥Ã¥»¡¼¥¸Æɤ߽Ф·¤ò¥­¥å¡¼¤¬¶õ¤Ë¤Ê¤Ã¤¿»þ¤Ë -Ää»ß (block) ¤»¤º¤Ë¹Ô¤¦¤Ë¤Ï¡¢¥­¥å¡¼¤òÈóÄä»ß¥â¡¼¥É (non-blocking mode) -¤ËÀßÄꤷ¤Æ¤ª¤¯¤È¤è¤¤)¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +を再度呼び出すのは、読み出していないメッセージを全部読み出して +キューが空になる前にすべきである +(キューからのメッセージ読み出しをキューが空になった時に +停止 (block) せずに行うには、キューを非停止モード (non-blocking mode) +に設定しておくとよい)。 +.SH 返り値 +成功すると、 .BR mq_notify () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤ò¥¨¥é¡¼¤ò¼¨¤¹ÃͤËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +をエラーを示す値に設定する。 +.SH エラー .TP .B EBADF .I mqdes -¤Ë»ØÄꤵ¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +に指定されたディスクリプタが不正である。 .TP .B EBUSY -ÊÌ¤Î¥×¥í¥»¥¹¤¬¤¹¤Ç¤Ë -¤³¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤ËÂФ¹¤ëÄÌÃΤò¼õ¿®¤¹¤ë¤è¤¦¤ËÅÐÏ¿¤·¤Æ¤¤¤ë¡£ +別のプロセスがすでに +このメッセージキューに対する通知を受信するように登録している。 .TP .B EINVAL .I sevp\->sigev_notify -¤¬µö²Ä¤µ¤ì¤¿ÃͤΤ¤¤º¤ì¤Ç¤â¤Ê¤¤¡£¤â¤·¤¯¤Ï +が許可された値のいずれでもない。もしくは .I sevp\->sigev_notify -¤¬ +が .B SIGEV_SIGNAL -¤À¤¬ +だが .I sevp\->sigev_signo -¤¬Í­¸ú¤Ê¥·¥°¥Ê¥ëÈÖ¹æ¤Ç¤Ï¤Ê¤¤¡£ +が有効なシグナル番号ではない。 .TP .B ENOMEM -ɬÍפʥá¥â¥ê¤¬¤Ê¤«¤Ã¤¿¡£ +必要なメモリがなかった。 .PP -POSIX.1-2008 ¤Ç¤Ï¡¢ +POSIX.1-2008 では、 .I sevp -¤¬ NULL ¤Ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬¥­¥å¡¼ +が NULL で、呼び出し元のプロセスがキュー .I mqdes -¤Ë´Ø¤¹¤ëÄÌÃΤò¼õ¿®¤¹¤ë¤è¤¦¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¥¨¥é¡¼ +に関する通知を受信するように登録されていない場合、エラー .B EINVAL -¤òÀ¸À®¤¹¤ë¤è¤¦¤Ê¼ÂÁõ¤ò¹Ô¤Ã¤Æ¤â¡Ö¤è¤¤¡×¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -.\" Linux ¤Î¼ÂÁõ¤Ç¤Ï EINVAL ¤ÏÀ¸À®¤µ¤ì¤Ê¤¤ -.SH ½àµò +を生成するような実装を行っても「よい」ことになっている。 +.\" Linux の実装では EINVAL は生成されない +.SH 準拠 POSIX.1-2001. -.SH Îã -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢ -¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿Ì¾Á°¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ø¤Î -ÄÌÃÎÍ×µá¤òÅÐÏ¿¤·¡¢ÄÌÃΤϥ¹¥ì¥Ã¥É¤ÎºîÀ®¤Ë¤è¤Ã¤Æ¹Ô¤ï¤ì¤ë¡£ -¤½¤Î¥¹¥ì¥Ã¥É¤Ï¡¢¤½¤Î¥­¥å¡¼¤«¤é¥á¥Ã¥»¡¼¥¸¤ò°ì¤ÄÆɤ߽Ф·¤Æ¤«¤é¡¢ -¥×¥í¥»¥¹¤ò½ªÎ»¤¹¤ë´Ø¿ô¤ò¼Â¹Ô¤¹¤ë¡£ +.SH 例 +以下のプログラムは、 +コマンドライン引き数で指定された名前のメッセージキューへの +通知要求を登録し、通知はスレッドの作成によって行われる。 +そのスレッドは、そのキューからメッセージを一つ読み出してから、 +プロセスを終了する関数を実行する。 .nf #include @@ -192,7 +192,7 @@ POSIX.1-2001. #define handle_error(msg) \\ do { perror(msg); exit(EXIT_FAILURE); } while (0) -static void /* ¥¹¥ì¥Ã¥É³«»Ï´Ø¿ô */ +static void /* スレッド開始関数 */ tfunc(union sigval sv) { struct mq_attr attr; @@ -200,8 +200,8 @@ tfunc(union sigval sv) void *buf; mqd_t mqdes = *((mqd_t *) sv.sival_ptr); - /* ºÇÂç¥á¥Ã¥»¡¼¥¸¥µ¥¤¥º¤ò·èÄꤷ¡¢ - ¥á¥Ã¥»¡¼¥¸¼õ¿®ÍѤΥХåե¡¤ò³ÎÊݤ¹¤ë */ + /* 最大メッセージサイズを決定し、 + メッセージ受信用のバッファを確保する */ if (mq_getattr(mqdes, &attr) == \-1) handle_error("mq_getattr"); @@ -215,7 +215,7 @@ tfunc(union sigval sv) printf("Read %ld bytes from MQ\\n", (long) nr); free(buf); - exit(EXIT_SUCCESS); /* ¥×¥í¥»¥¹¤ò½ªÎ»¤¹¤ë */ + exit(EXIT_SUCCESS); /* プロセスを終了する */ } int @@ -236,14 +236,14 @@ main(int argc, char *argv[]) sev.sigev_notify = SIGEV_THREAD; sev.sigev_notify_function = tfunc; sev.sigev_notify_attributes = NULL; - sev.sigev_value.sival_ptr = &mqdes; /* ¥¹¥ì¥Ã¥É´Ø¿ô¤ËÅϤ¹°ú¤­¿ô */ + sev.sigev_value.sival_ptr = &mqdes; /* スレッド関数に渡す引き数 */ if (mq_notify(mqdes, &sev) == \-1) handle_error("mq_notify"); - pause(); /* ¥×¥í¥»¥¹¤Ï¥¹¥ì¥Ã¥É´Ø¿ô¤Ë¤è¤ê½ªÎ»¤µ¤ì¤ë */ + pause(); /* プロセスはスレッド関数により終了される */ } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mq_close (3), .BR mq_getattr (3), .BR mq_open (3), diff --git a/release/man3/mq_open.3 b/release/man3/mq_open.3 index f48d4753..2ebef630 100644 --- a/release/man3/mq_open.3 +++ b/release/man3/mq_open.3 @@ -27,9 +27,9 @@ .\" Translated 2006-04-23, Akihiro MOTOKI .\" .TH MQ_OPEN 3 2009-02-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -mq_open \- ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤ò¥ª¡¼¥×¥ó¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mq_open \- メッセージキューをオープンする +.SH 書式 .nf .BR "#include " " /* For O_* constants */" .BR "#include " " /* For mode constants */" @@ -40,189 +40,189 @@ mq_open \- .BI " struct mq_attr *" attr ); .fi .sp -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lrt\fP でリンクする。 +.SH 説明 .BR mq_open () -¤Ï¡¢¿·¤·¤¤ POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤òºîÀ®¤¹¤ë¤«¡¢´û¸¤Î¥­¥å¡¼¤ò -¥ª¡¼¥×¥ó¤¹¤ë¡£¥­¥å¡¼¤Ï +は、新しい POSIX メッセージキューを作成するか、既存のキューを +オープンする。キューは .I name -¤Ç¼±Ê̤µ¤ì¤ë¡£ +で識別される。 .I name -¤Î¹½À®¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï +の構成の詳細については .B mq_overview (7) -¤ò»²¾È¡£ +を参照。 .I oflag -°ú¤­¿ô¤Ë¤Ï¡¢´Ø¿ô¸Æ¤Ó½Ð¤·¤ÎÁàºî¤òÀ©¸æ¤¹¤ë¥Õ¥é¥°¤ò»ØÄꤹ¤ë -(oflag ¤ÎÃͤÎÄêµÁ¤Ï +引き数には、関数呼び出しの操作を制御するフラグを指定する +(oflag の値の定義は .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ë¤è¤êÆÀ¤é¤ì¤ë)¡£ +のインクルードにより得られる)。 .I oflag -¤Ë¤Ï¡¢°Ê²¼¤Î¤¦¤Á¤¤¤º¤ì¤«°ì¤Ä¤òɬ¤º»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +には、以下のうちいずれか一つを必ず指定しなければならない。 .TP .B O_RDONLY -¥á¥Ã¥»¡¼¥¸¤Î¼õ¿®ÀìÍѤȤ·¤Æ¥­¥å¡¼¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£ +メッセージの受信専用としてキューをオープンする。 .TP .B O_WRONLY -¥á¥Ã¥»¡¼¥¸¤ÎÁ÷¿®ÀìÍѤȤ·¤Æ¥­¥å¡¼¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£ +メッセージの送信専用としてキューをオープンする。 .TP .B O_RDWR -¥á¥Ã¥»¡¼¥¸¤ÎÁ÷¼õ¿®Î¾ÍѤȤ·¤Æ¥­¥å¡¼¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£ +メッセージの送受信両用としてキューをオープンする。 .PP -0 ¸Ä°Ê¾å¤Î²¼µ­¤Î¥Õ¥é¥°¤ò¡¢¥Ó¥Ã¥Èñ°Ì¤Î OR (ÏÀÍýÏÂ) ¤Ç +0 個以上の下記のフラグを、ビット単位の OR (論理和) で .I oflag -¤ËÄɲäǻØÄê¤Ç¤­¤ë¡£ +に追加で指定できる。 .TP .B O_NONBLOCK -ÈóÄä»ß (nonblocking) ¥â¡¼¥É¤Ç¥­¥å¡¼¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£ +非停止 (nonblocking) モードでキューをオープンする。 .BR mq_receive (3) -¤È +と .BR mq_send (3) -¤Ï¡¢Ä̾ï¤ÏÄä»ß (block) ¤¹¤ë¾õ¶·¤Ë¤ª¤¤¤Æ¡¢¥¨¥é¡¼ +は、通常は停止 (block) する状況において、エラー .B EAGAIN -¤Ç¼ºÇÔ¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +で失敗するようになる。 .TP .B O_CREAT -¸ºß¤·¤Ê¤¤¾ì¹ç¡¢¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤òºîÀ®¤¹¤ë¡£ -¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î½êÍ­¼Ô (¥æ¡¼¥¶ ID) ¤È¥°¥ë¡¼¥×½êÍ­¸¢ (¥°¥ë¡¼¥× ID) ¤Ï¡¢ -¤½¤ì¤¾¤ì¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤È¼Â¸ú¥°¥ë¡¼¥× ID ¤ËÀßÄꤵ¤ì¤ë¡£ -.\" ¼ÂºÝ¤Ï¡¢Linux ¤Ç¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à ID ¤¬»ÈÍѤµ¤ì¤ë¡£ +存在しない場合、メッセージキューを作成する。 +メッセージキューの所有者 (ユーザ ID) とグループ所有権 (グループ ID) は、 +それぞれ呼び出し元プロセスの実効ユーザ ID と実効グループ ID に設定される。 +.\" 実際は、Linux ではファイルシステム ID が使用される。 .TP .B O_EXCL .B O_CREAT -¤¬ +が .I oflag -¤Ë»ØÄꤵ¤ì¡¢¤«¤Ä»ØÄꤵ¤ì¤¿Ì¾Á° +に指定され、かつ指定された名前 .I name -¤ò»ý¤Ä¥­¥å¡¼¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢¥¨¥é¡¼ +を持つキューがすでに存在する場合、エラー .B EEXIST -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .PP .I oflag -¤Ë +に .B O_CREAT -¤ò»ØÄꤹ¤ë¾ì¹ç¡¢ÄÉ²Ã¤Ç 2¤Ä¤Î°ú¤­¿ô¤òÍ¿¤¨¤ëɬÍפ¬¤¢¤ë¡£ +を指定する場合、追加で 2つの引き数を与える必要がある。 .I mode -°ú¤­¿ô¤Ï¡¢¿·¤·¤¤¥­¥å¡¼¤ËŬÍѤµ¤ì¤ëµö²ÄÀßÄê (permission) ¤ò¡¢ +引き数は、新しいキューに適用される許可設定 (permission) を、 .BR open (2) -¤ÈƱ¤¸¤è¤¦¤Ë»ØÄꤹ¤ë -(µö²Ä¥Ó¥Ã¥È¤Î¥·¥ó¥Ü¥ëÄêµÁ¤Ï +と同じように指定する +(許可ビットのシンボル定義は .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ë¤è¤êÆÀ¤é¤ì¤ë)¡£ -µö²ÄÀßÄê¤Ï¥×¥í¥»¥¹¤Î umask ¤Ç¥Þ¥¹¥¯¤µ¤ì¤ë¡£ +のインクルードにより得られる)。 +許可設定はプロセスの umask でマスクされる。 .I attr -°ú¤­¿ô¤Ï¡¢¥­¥å¡¼¤Î°À­¤ò»ØÄꤹ¤ë¡£¾ÜºÙ¤Ï¡¢ +引き数は、キューの属性を指定する。詳細は、 .BR mq_getattr (3) -¤ò»²¾È¡£ +を参照。 .I attr -¤¬ NULL ¤Î¾ì¹ç¡¢¥­¥å¡¼¤Ï¼ÂÁõ¤ÇÄêµÁ¤µ¤ì¤¿¥Ç¥Õ¥©¥ë¥È°À­¤ÇºîÀ®¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +が NULL の場合、キューは実装で定義されたデフォルト属性で作成される。 +.SH 返り値 +成功すると、 .BR mq_open () -¤Ï¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò»Ò (message queue descriptor) ¤òÊÖ¤¹¡£ -¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò»Ò¤Ï¾¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼´ØÏ¢¤Î´Ø¿ô¤Ç»ÈÍѤµ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ +はメッセージキュー記述子 (message queue descriptor) を返す。 +メッセージキュー記述子は他のメッセージキュー関連の関数で使用される。 +エラーの場合、 .BR mq_open () -¤Ï +は .I "(mqd_t)\ \-1" -¤òÊÖ¤·¡¢ +を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値を設定する。 +.SH エラー .TP .B EACCES -¥­¥å¡¼¤Ï¸ºß¤¹¤ë¤¬¡¢¸Æ¤Ó½Ð¤·¸µ¤¬»ØÄꤵ¤ì¤¿¥â¡¼¥É¤Ç¤½¤Î¥­¥å¡¼ -¤ò¥ª¡¼¥×¥ó¤¹¤ëµö²Ä¤ò»ý¤¿¤Ê¤¤¡£ +キューは存在するが、呼び出し元が指定されたモードでそのキュー +をオープンする許可を持たない。 .TP .B EACCES .I name -¤Ë¥¹¥é¥Ã¥·¥å¤¬ 2 ¸Ä°Ê¾å´Þ¤Þ¤ì¤Æ¤¤¤¿¡£ +にスラッシュが 2 個以上含まれていた。 .\" Note that this isn't consistent with the same case for sem_open() .TP .B EEXIST .I oflag -¤Ë +に .B O_CREAT -¤È +と .B O_EXCL -¤ÎξÊý¤¬»ØÄꤵ¤ì¤¿¤¬¡¢»ØÄꤵ¤ì¤¿Ì¾Á° +の両方が指定されたが、指定された名前 .I name -¤ò»ý¤Ä¥­¥å¡¼¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¡£ +を持つキューがすでに存在する。 .TP .B EINVAL .I oflag -¤Ë +に .B O_CREAT -¤¬»ØÄꤵ¤ì¡¢¤«¤Ä +が指定され、かつ .I attr -¤¬ NULL °Ê³°¤À¤¬¡¢ +が NULL 以外だが、 .I attr\->mq_maxmsg -¤« +か .I attr\->mq_msqsize -¤¬ÉÔÀµ¤Ç¤¢¤Ã¤¿¡£ -¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤ÏξÊý¤È¤â 0 ¤è¤êÂ礭¤¯¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥×¥í¥»¥¹¤¬Æø¢¤ò»ý¤¿¤Ê¤¤ +が不正であった。 +これらのフィールドは両方とも 0 より大きくなければならない。 +プロセスが特権を持たない .RB ( CAP_SYS_RESOURCE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤) ¾ì¹ç¡¢ +ケーパビリティを持たない) 場合、 .I attr\->mq_maxmsg -¤È +と .I attr\->mq_msgsize -¤Ï¡¢¤½¤ì¤¾¤ì¾å¸Â -.IR msg_max ¡¢ +は、それぞれ上限 +.IR msg_max 、 .I msgsize_max -°Ê²¼¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤Þ¤¿¡¢Æø¢¥×¥í¥»¥¹¤Î¾ì¹ç¤Ç¤â¡¢ +以下でなければならない。 +また、特権プロセスの場合でも、 .I attr\->mq_maxmsg -¤Ï +は .B HARD_MAX -¾å¸Â¤òĶ¤¨¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -(¤³¤ì¤é¤Î¾å¸Â¤Ë´Ø¤¹¤ë¾ÜºÙ¤Ï +上限を超えることはできない。 +(これらの上限に関する詳細は .BR mq_overview (7) -¤ò»²¾È¡£) +を参照。) .TP .B EMFILE -¤½¤Î¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤È¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î¿ô¤¬ -¥×¥í¥»¥¹Ëè¤Î¾å¸Â¤Ë㤷¤Æ¤¤¤ë¡£ +そのプロセスがオープンしているファイルとメッセージキューの数が +プロセス毎の上限に達している。 .TP .B ENAMETOOLONG .I name -¤¬Ä¹¤¹¤®¤ë¡£ +が長すぎる。 .TP .B ENFILE -¥·¥¹¥Æ¥àÁ´ÂΤǥª¡¼¥×¥ó¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤È¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î¹ç·×¿ô¤¬ -¥·¥¹¥Æ¥à¾å¸Â¤Ë㤷¤Æ¤¤¤ë¡£ +システム全体でオープンしているファイルとメッセージキューの合計数が +システム上限に達している。 .TP .B ENOENT .B O_CREAT -¥Õ¥é¥°¤¬ +フラグが .I oflag -¤Ë»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¤¬¡¢»ØÄꤵ¤ì¤¿Ì¾Á° +に指定されなかったが、指定された名前 .I name -¤ò»ý¤Ä¥­¥å¡¼¤¬Â¸ºß¤·¤Ê¤¤¡£ +を持つキューが存在しない。 .TP .B ENOENT .I name -¤¬ "/" ¤À¤±¤Ç¡¢¤½¤Î¸å¤í¤Ë¾¤Îʸ»ú¤¬Â³¤¤¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +が "/" だけで、その後ろに他の文字が続いていなかった。 .\" Note that this isn't consistent with the same case for sem_open() .TP .B ENOMEM -½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +十分なメモリがない。 .TP .B ENOSPC -¿·¤·¤¤¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤òºîÀ®¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¶õ´Ö¤¬¤Ê¤¤¡£ -¤³¤Î¥¨¥é¡¼¤Ï¤ª¤½¤é¤¯ +新しいメッセージキューを作成するのに十分な空間がない。 +このエラーはおそらく .I queues_max -¾å¸Â¤ËÄñ¿¨¤·¤¿¤¿¤áµ¯¤³¤Ã¤¿¤Î¤À¤í¤¦¡£ +上限に抵触したため起こったのだろう。 .BR mq_overview (7) -¤ò»²¾È¡£ -.SH ½àµò +を参照。 +.SH 準拠 POSIX.1-2001. -.SH ¥Ð¥° -2.6.14 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ë¤Ï¡¢ -¥×¥í¥»¥¹¤Î umask ¤¬ +.SH バグ +2.6.14 より前のカーネルには、 +プロセスの umask が .I mode -¤Ç»ØÄꤵ¤ì¤¿µö²ÄÀßÄê¤ËŬÍѤµ¤ì¤Ê¤«¤Ã¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +で指定された許可設定に適用されなかった。 +.SH 関連項目 .BR mq_close (3), .BR mq_getattr (3), .BR mq_notify (3), diff --git a/release/man3/mq_receive.3 b/release/man3/mq_receive.3 index 8cf02bf3..1a9768da 100644 --- a/release/man3/mq_receive.3 +++ b/release/man3/mq_receive.3 @@ -28,9 +28,9 @@ .\" Updated 2008-11-09, Akihiro MOTOKI, LDP v3.13 .\" .TH MQ_RECEIVE 3 2010-09-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -mq_receive, mq_timedreceive \- ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤«¤é¥á¥Ã¥»¡¼¥¸¤ò¼õ¿®¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mq_receive, mq_timedreceive \- メッセージキューからメッセージを受信する +.SH 書式 .nf .B #include .sp @@ -45,13 +45,13 @@ mq_receive, mq_timedreceive \- .BI " const struct timespec *" abs_timeout ); .fi .sp -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP でリンクする。 .sp .ad l .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR mq_timedreceive (): @@ -59,121 +59,121 @@ glibc _XOPEN_SOURCE\ >=\ 600 || _POSIX_C_SOURCE\ >=\ 200112L .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR mq_receive () -¤Ï¡¢µ­½Ò»Ò +は、記述子 .I mqdes -¤Ç»²¾È¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤«¤éºÇ¤â¹â¤¤Í¥ÀèÅÙ¤ò»ý¤Ä -ºÇ¤â¸Å¤¤¥á¥Ã¥»¡¼¥¸¤òºï½ü¤·¡¢¤½¤Î¥á¥Ã¥»¡¼¥¸¤ò +で参照されるメッセージキューから最も高い優先度を持つ +最も古いメッセージを削除し、そのメッセージを .I msg_ptr -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤¹¤ë¡£ +が指すバッファに格納する。 .I msg_len -°ú¤­¿ô¤Ï¡¢ +引き数は、 .I msg_ptr -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ¤ò¼¨¤¹¡£¤³¤ÎÃͤϥ­¥å¡¼¤Î +が指すバッファの大きさを示す。この値はキューの .I mq_msgsize -°À­¤è¤ê¤âÂ礭¤¯¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ +属性よりも大きくなければならない .RB ( mq_getattr (3) -»²¾È)¡£ +参照)。 .I prio -¤¬ NULL °Ê³°¤Î¾ì¹ç¡¢ +が NULL 以外の場合、 .I prio -¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë¼õ¿®¤·¤¿¥á¥Ã¥»¡¼¥¸¤ÎÍ¥ÀèÅÙ¤¬³ÊǼ¤µ¤ì¤ë¡£ +が指すバッファに受信したメッセージの優先度が格納される。 -¥­¥å¡¼¤¬¶õ¤Î¾ì¹ç¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +キューが空の場合、デフォルトでは、 .BR mq_receive () -¤Ï¡¢¿·¤·¤¤¥á¥Ã¥»¡¼¥¸¤¬ÆϤ¯¤«¡¢´Ø¿ô¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê -ÃæÃǤµ¤ì¤ë¤Þ¤Ç¡¢Ää»ß (block) ¤¹¤ë¡£ -¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò (message queue description) ¤Ç +は、新しいメッセージが届くか、関数呼び出しがシグナルハンドラにより +中断されるまで、停止 (block) する。 +メッセージキュー記述 (message queue description) で .B O_NONBLOCK -¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ +フラグが有効になっている場合は、 .BR mq_receive () -¤Ï¥¨¥é¡¼ +はエラー .B EAGAIN -¤Ç¤¹¤°¤Ë¼ºÇÔ¤¹¤ë¡£ +ですぐに失敗する。 .BR mq_timedreceive () -¤Ï +は .BR mq_receive () -¤ÈÁ´¤¯Æ±¤¸Æ°ºî¤ò¤¹¤ë¤¬¡¢ -¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤¬¶õ¤Ç¡¢¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò¤Ç +と全く同じ動作をするが、 +メッセージキューが空で、メッセージキュー記述で .B O_NONBLOCK -¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤¬Ää»ß¤¹¤ë»þ´Ö¤Î¾å¸Â¤ò +フラグが有効になっていない場合に、この呼び出しが停止する時間の上限を .I abs_timeout -¤¬»Ø¤¹¹½Â¤ÂΤǻØÄꤹ¤ëÅÀ¤¬°Û¤Ê¤ë¡£¤³¤Î¾å¸Â¤Ï¡¢¥¿¥¤¥à¥¢¥¦¥È¤Î»þ¹ï¤ò¡¢ -»þ¹ïµª¸µ (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) ¤«¤é¤Î·Ð²á»þ´Ö -(ÉäȥʥÎÉäÎÁÈ) ¤Ç»ØÄꤹ¤ë¡£¥¿¥¤¥à¥¢¥¦¥È»þ¹ï¤Ï°Ê²¼¤Î¹½Â¤ÂΤǻØÄꤹ¤ë: +が指す構造体で指定する点が異なる。この上限は、タイムアウトの時刻を、 +時刻紀元 (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) からの経過時間 +(秒とナノ秒の組) で指定する。タイムアウト時刻は以下の構造体で指定する: .sp .in +4n .nf struct timespec { - time_t tv_sec; /* Éà */ - long tv_nsec; /* ¥Ê¥ÎÉà */ + time_t tv_sec; /* 秒 */ + long tv_nsec; /* ナノ秒 */ }; .fi .in -¥á¥Ã¥»¡¼¥¸¤¬¥­¥å¡¼¤Ë¤Ê¤¯¡¢´Ø¿ô¸Æ¤Ó½Ð¤·»þ¤Ë¤¹¤Ç¤Ë¥¿¥¤¥à¥¢¥¦¥È»þ¹ï¤¬ -²á¤®¤Æ¤¤¤ë¾ì¹ç¡¢ +メッセージがキューになく、関数呼び出し時にすでにタイムアウト時刻が +過ぎている場合、 .BR mq_timedreceive () -¤Ï¤¹¤°¤ËÊ֤롣 -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +はすぐに返る。 +.SH 返り値 +成功すると、 .BR mq_receive () -¤È +と .BR mq_timedreceive () -¤Ï¼õ¿®¤·¤¿¥á¥Ã¥»¡¼¥¸¤Î¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は受信したメッセージのバイト数を返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値を設定する。 +.SH エラー .TP .B EAGAIN -¥­¥å¡¼¤¬¶õ¤Ç¡¢¤«¤Ä +キューが空で、かつ .I mqdes -¤Ç»²¾È¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò¤Ç +で参照されるメッセージキュー記述で .B O_NONBLOCK -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤¿¡£ +フラグがセットされていた。 .TP .B EBADF .I mqdes -¤Ç»ØÄꤵ¤ì¤¿µ­½Ò»Ò¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +で指定された記述子が不正である。 .TP .B EINTR -´Ø¿ô¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤êÃæÃǤµ¤ì¤¿¡£ +関数呼び出しがシグナルハンドラにより中断された。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL -´Ø¿ô¸Æ¤Ó½Ð¤·¤ÏÄä»ß¤¹¤ë¤Ï¤º¤Ç¤¢¤Ã¤¿¤¬¡¢ +関数呼び出しは停止するはずであったが、 .I abs_timeout -¤¬ÉÔÀµ¤Ç¤¢¤Ã¤¿¡£ +が不正であった。 .I abs_timeout -¤¬ÉÔÀµ¤È¤Ï¡¢ +が不正とは、 .I tv_sec -¤¬ 0 ̤Ëþ¡¢¤â¤·¤¯¤Ï +が 0 未満、もしくは .I tv_nsec -¤¬ 0 ̤Ëþ¤« 1,000,000,000 ¤è¤êÂ礭¤¤¡¢¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ +が 0 未満か 1,000,000,000 より大きい、ということである。 .TP .B EMSGSIZE .I msg_len -¤¬¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î +がメッセージキューの .I mq_msgsize -°À­¤è¤ê¤â¾®¤µ¤«¤Ã¤¿¡£ +属性よりも小さかった。 .TP .B ETIMEDOUT -¥á¥Ã¥»¡¼¥¸¤¬Å¾Á÷¤µ¤ì¤ëÁ°¤Ë´Ø¿ô¸Æ¤Ó½Ð¤·¤¬¥¿¥¤¥à¥¢¥¦¥È¤·¤¿¡£ -.SH ½àµò +メッセージが転送される前に関数呼び出しがタイムアウトした。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ -Linux ¤Ç¤Ï¡¢ +.SH 注意 +Linux では、 .BR mq_timedreceive () -¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤¢¤ë¡£ +はシステムコールである。 .BR mq_receive () -¤Ï¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ç¡¢ +はライブラリ関数で、 .BR mq_timedreceive () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÍѤ¤¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +システムコールを用いて実装されている。 +.SH 関連項目 .BR mq_close (3), .BR mq_getattr (3), .BR mq_notify (3), diff --git a/release/man3/mq_send.3 b/release/man3/mq_send.3 index e9834086..61f9b5c1 100644 --- a/release/man3/mq_send.3 +++ b/release/man3/mq_send.3 @@ -28,9 +28,9 @@ .\" Updated 2008-11-09, Akihiro MOTOKI, LDP v3.13 .\" .TH MQ_SEND 3 2010-09-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -mq_send, mq_timedsend \- ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ë¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mq_send, mq_timedsend \- メッセージキューにメッセージを送信する +.SH 書式 .nf .B #include .sp @@ -45,13 +45,13 @@ mq_send, mq_timedsend \- .BI " const struct timespec *" abs_timeout ); .fi .sp -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP でリンクする。 .sp .ad l .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR mq_timedsend (): @@ -59,123 +59,123 @@ glibc _XOPEN_SOURCE\ >=\ 600 || _POSIX_C_SOURCE\ >=\ 200112L .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR mq_send () -¤Ï¡¢µ­½Ò»Ò +は、記述子 .I mqdes -¤Ç»²¾È¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ë +で参照されるメッセージキューに .I msg_ptr -¤¬»Ø¤¹¥á¥Ã¥»¡¼¥¸¤òÄɲ乤롣 +が指すメッセージを追加する。 .I msg_len -°ú¤­¿ô¤Ï¡¢ +引き数は、 .I msg_ptr -¤¬»Ø¤¹¥á¥Ã¥»¡¼¥¸¤ÎŤµ¤ò¼¨¤¹¡£¤³¤ÎŤµ¤Ï¥­¥å¡¼¤Î +が指すメッセージの長さを示す。この長さはキューの .I mq_msgsize -°À­°Ê²¼¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Ťµ¤¬ 0 ¤Î¥á¥Ã¥»¡¼¥¸¤âǧ¤á¤é¤ì¤Æ¤¤¤ë¡£ +属性以下でなければならない。 +長さが 0 のメッセージも認められている。 .I msg_prio -°ú¤­¿ô¤Ï¡¢¥á¥Ã¥»¡¼¥¸¤ÎÍ¥ÀèÅÙ¤ò»ØÄꤹ¤ëÉé¤Ç¤Ê¤¤À°¿ô¤Ç¤¢¤ë¡£ -¥á¥Ã¥»¡¼¥¸¤ÏÍ¥ÀèÅ٤ι߽ç¤Ç¥­¥å¡¼¤Ë³ÊǼ¤µ¤ì¡¢Æ±¤¸Í¥ÀèÅ٤ο·¤·¤¤¥á¥Ã¥»¡¼¥¸¤Ï -Ʊ¤¸Í¥ÀèÅ٤θŤ¤¥á¥Ã¥»¡¼¥¸¤Î¸å¤í¤Ë³ÊǼ¤µ¤ì¤ë¡£ +引き数は、メッセージの優先度を指定する負でない整数である。 +メッセージは優先度の降順でキューに格納され、同じ優先度の新しいメッセージは +同じ優先度の古いメッセージの後ろに格納される。 -¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤¬¤¹¤Ç¤Ë°ìÇդξì¹ç -(¤¹¤Ê¤ï¤Á¡¢¥­¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ë¥á¥Ã¥»¡¼¥¸¿ô¤¬¥­¥å¡¼¤Î +メッセージキューがすでに一杯の場合 +(すなわち、キューに入っているメッセージ数がキューの .I mq_maxmsg -°À­¤ÈÅù¤·¤¤¾ì¹ç)¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +属性と等しい場合)、デフォルトでは、 .B mq_send () -¤Ï¡¢¥á¥Ã¥»¡¼¥¸¤ò¥­¥å¡¼¥¤¥ó¥°¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¶õ´Ö¤¬¤Ç¤­¤ë¤«¡¢ -´Ø¿ô¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤êÃæÃǤµ¤ì¤ë¤Þ¤Ç¡¢Ää»ß (block) ¤¹¤ë¡£ -¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò (message queue description) ¤Ç +は、メッセージをキューイングするのに十分な空間ができるか、 +関数呼び出しがシグナルハンドラにより中断されるまで、停止 (block) する。 +メッセージキュー記述 (message queue description) で .B O_NONBLOCK -¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ +フラグが有効になっている場合は、 .BR mq_send () -¤Ï¥¨¥é¡¼ +はエラー .B EAGAIN -¤Ç¤¹¤°¤Ë¼ºÇÔ¤¹¤ë¡£ +ですぐに失敗する。 .BR mq_timedsend () -¤Ï +は .BR mq_send () -¤ÈÁ´¤¯Æ±¤¸Æ°ºî¤ò¤¹¤ë¤¬¡¢ -¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤¬°ìÇդǡ¢¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò¤Ç +と全く同じ動作をするが、 +メッセージキューが一杯で、メッセージキュー記述で .B O_NONBLOCK -¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤¬Ää»ß¤¹¤ë»þ´Ö¤Î¾å¸Â¤ò +フラグが有効になっていない場合に、この呼び出しが停止する時間の上限を .I abs_timeout -¤¬»Ø¤¹¹½Â¤ÂΤǻØÄꤹ¤ëÅÀ¤¬°Û¤Ê¤ë¡£¤³¤Î¾å¸Â¤Ï¡¢¥¿¥¤¥à¥¢¥¦¥È¤Î»þ¹ï¤ò -»þ¹ïµª¸µ (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) ¤«¤é¤Î·Ð²á»þ´Ö -(ÉäȥʥÎÉäÎÁÈ) ¤Ç»ØÄꤹ¤ë¡£¥¿¥¤¥à¥¢¥¦¥È»þ¹ï¤Ï°Ê²¼¤Î¹½Â¤ÂΤǻØÄꤹ¤ë: +が指す構造体で指定する点が異なる。この上限は、タイムアウトの時刻を +時刻紀元 (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) からの経過時間 +(秒とナノ秒の組) で指定する。タイムアウト時刻は以下の構造体で指定する: .sp .in +4n .nf struct timespec { - time_t tv_sec; /* Éà */ - long tv_nsec; /* ¥Ê¥ÎÉà */ + time_t tv_sec; /* 秒 */ + long tv_nsec; /* ナノ秒 */ }; .fi .in -¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤¬°ìÇդǡ¢´Ø¿ô¸Æ¤Ó½Ð¤·»þ¤Ë¤¹¤Ç¤Ë¥¿¥¤¥à¥¢¥¦¥È»þ¹ï¤¬ -²á¤®¤Æ¤¤¤ë¾ì¹ç¡¢ +メッセージキューが一杯で、関数呼び出し時にすでにタイムアウト時刻が +過ぎている場合、 .BR mq_timedsend () -¤Ï¤¹¤°¤ËÊ֤롣 -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +はすぐに返る。 +.SH 返り値 +成功すると、 .BR mq_send () -¤È +と .BR mq_timedsend () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値を設定する。 +.SH エラー .TP .B EAGAIN -¥­¥å¡¼¤¬°ìÇդǡ¢¤«¤Ä +キューが一杯で、かつ .I mqdes -¤Ç»²¾È¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò¤Ç +で参照されるメッセージキュー記述で .B O_NONBLOCK -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤¿¡£ +フラグがセットされていた。 .TP .B EBADF .I mqdes -¤Ç»ØÄꤵ¤ì¤¿µ­½Ò»Ò¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +で指定された記述子が不正である。 .TP .B EINTR -´Ø¿ô¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤êÃæÃǤµ¤ì¤¿¡£ +関数呼び出しがシグナルハンドラにより中断された。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL -´Ø¿ô¸Æ¤Ó½Ð¤·¤ÏÄä»ß¤¹¤ë¤Ï¤º¤Ç¤¢¤Ã¤¿¤¬¡¢ +関数呼び出しは停止するはずであったが、 .I abs_timeout -¤¬ÉÔÀµ¤Ç¤¢¤Ã¤¿¡£ +が不正であった。 .I abs_timeout -¤¬ÉÔÀµ¤È¤Ï¡¢ +が不正とは、 .I tv_sec -¤¬ 0 ̤Ëþ¡¢¤â¤·¤¯¤Ï +が 0 未満、もしくは .I tv_nsec -¤¬ 0 ̤Ëþ¤« 1,000,000,000 ¤è¤êÂ礭¤¤¡¢¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ +が 0 未満か 1,000,000,000 より大きい、ということである。 .TP .B EMSGSIZE .I msg_len -¤¬¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î +がメッセージキューの .I mq_msgsize -°À­¤è¤ê¤âÂ礭¤«¤Ã¤¿¡£ +属性よりも大きかった。 .TP .B ETIMEDOUT -¥á¥Ã¥»¡¼¥¸¤¬Å¾Á÷¤µ¤ì¤ëÁ°¤Ë´Ø¿ô¸Æ¤Ó½Ð¤·¤¬¥¿¥¤¥à¥¢¥¦¥È¤·¤¿¡£ -.SH ½àµò +メッセージが転送される前に関数呼び出しがタイムアウトした。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ -Linux ¤Ç¤Ï¡¢ +.SH 注意 +Linux では、 .BR mq_timedsend () -¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤¢¤ë¡£ +はシステムコールである。 .BR mq_send () -¤Ï¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ç¡¢ +はライブラリ関数で、 .BR mq_timedsend () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÍѤ¤¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +システムコールを用いて実装されている。 +.SH 関連項目 .BR mq_close (3), .BR mq_getattr (3), .BR mq_notify (3), diff --git a/release/man3/mq_unlink.3 b/release/man3/mq_unlink.3 index fa51bca7..c0c60bb2 100644 --- a/release/man3/mq_unlink.3 +++ b/release/man3/mq_unlink.3 @@ -27,47 +27,47 @@ .\" Translated 2006-04-23, Akihiro MOTOKI .\" .TH MQ_UNLINK 3 2010-08-29 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -mq_unlink \- ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤òºï½ü¤¹¤ë -.SH ½ñ¼° +.SH 名前 +mq_unlink \- メッセージキューを削除する +.SH 書式 .nf .B #include .sp .BI "int mq_unlink(const char *" name ); .fi .sp -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lrt\fP でリンクする。 +.SH 説明 .BR mq_unlink () -¤Ï»ØÄꤵ¤ì¤¿¥á¥Ã¥»¡¼¥¸¥­¥å¡¼ +は指定されたメッセージキュー .I name -¤òºï½ü¤¹¤ë¡£ -¥á¥Ã¥»¡¼¥¸¥­¥å¡¼Ì¾¤Ïľ¤Á¤Ëºï½ü¤µ¤ì¤ë¡£ -¥­¥å¡¼¼«ÂΤϡ¢¤½¤Î¥­¥å¡¼¤ò¥ª¡¼¥×¥ó¤·¤¿Â¾¤Î¤¹¤Ù¤Æ¤Î¥×¥í¥»¥¹¤¬ -¤½¤Î¥­¥å¡¼¤ò»²¾È¤¹¤ëµ­½Ò»Ò¤ò¥¯¥í¡¼¥º¤·¤¿»þÅÀ¤ÇÇË´þ¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +を削除する。 +メッセージキュー名は直ちに削除される。 +キュー自体は、そのキューをオープンした他のすべてのプロセスが +そのキューを参照する記述子をクローズした時点で破棄される。 +.SH 返り値 +成功すると、 .BR mq_unlink () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値を設定する。 +.SH エラー .TP .B EACCES -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬¤³¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤òºï½ü (unlink) ¤¹¤ë -µö²Ä¤ò»ý¤¿¤Ê¤¤¡£ +呼び出し元プロセスがこのメッセージキューを削除 (unlink) する +許可を持たない。 .TP .B ENAMETOOLONG .I name -¤¬Ä¹²á¤®¤ë¡£ +が長過ぎる。 .TP .B ENOENT -»ØÄꤵ¤ì¤¿Ì¾Á° +指定された名前 .I name -¤ò»ý¤Ä¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤¬Â¸ºß¤·¤Ê¤¤¡£ -.SH ½àµò +を持つメッセージキューが存在しない。 +.SH 準拠 POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mq_close (3), .BR mq_getattr (3), .BR mq_notify (3), diff --git a/release/man3/mtrace.3 b/release/man3/mtrace.3 index 4a5b944b..83cbb69a 100644 --- a/release/man3/mtrace.3 +++ b/release/man3/mtrace.3 @@ -6,45 +6,45 @@ .\" Translated Thu 05 Dec 2002 by Akihiro MOTOKI .\" .TH MTRACE 3 2002-07-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 mtrace, muntrace \- malloc debugging -.SH ½ñ¼° +.SH 書式 .B "#include " .sp .B "void mtrace(void);" .sp .B "void muntrace(void);" -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR mtrace () -¤Ï¡¢ +は、 .BR malloc (3), .BR realloc (3), .BR free (3) -¤Î¥Ï¥ó¥É¥é¤òÁȤ߹þ¤à¡£ -´Ø¿ô +のハンドラを組み込む。 +関数 .BR muntrace () -¤Ï¤³¤ì¤é¤Î¥Ï¥ó¥É¥é¤ò²ò½ü¤¹¤ë¡£ +はこれらのハンドラを解除する。 .br -´Ä¶­ÊÑ¿ô +環境変数 .B MALLOC_TRACE -¤Ï +は .BR mtrace () -¤¬½ÐÎϤò½ñ¤­½Ð¤¹¥Õ¥¡¥¤¥ë¤ò»ØÄꤹ¤ë¡£ -¥æ¡¼¥¶¤¬½ñ¤­¹þ¤ß¸¢¸Â¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -½ñ¤­¹þ¤ß¸¢¸Â¤¬¤Ê¤¤¾ì¹ç¡¢ +が出力を書き出すファイルを指定する。 +ユーザが書き込み権限を持つファイルを指定しなければならない。 +書き込み権限がない場合、 .BR mtrace () -¤Ï²¿¤â¤·¤Ê¤¤¡£ -.\" motoki: truncate ¤Ã¤Æ¡Ö¸å¤í¤òÀڤäƤ·¤Þ¤¦¡×¤è¤¦¤Ê°ÕÌ£¤Î¤Ï¤º¤À¤±¤É -.\" motoki: ¼ÂºÝ¤Ë»î¤·¤Æ¤ß¤ë¤È¡¢¸µ¤Î¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤­¤¹¤ë¤è¤¦¤Ç¤¹¡¦¡¦¡¦ -¥Õ¥¡¥¤¥ë¤¬¶õ¤Ç¤Ê¤¤¾ì¹ç¡¢¥Õ¥¡¥¤¥ë¤Î¸µ¤ÎÆâÍƤò¾å½ñ¤­¤¹¤ë¡£ -.SH ½àµò -¤³¤Î´Ø¿ô¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH Ãí°Õ +は何もしない。 +.\" motoki: truncate って「後ろを切ってしまう」ような意味のはずだけど +.\" motoki: 実際に試してみると、元のファイルを上書きするようです・・・ +ファイルが空でない場合、ファイルの元の内容を上書きする。 +.SH 準拠 +この関数は GNU 拡張である。 +.SH 注意 .BR mtrace () -¤Î½ÐÎÏ¤Ï ASCII ·Á¼°¤À¤¬¡¢¿Í¤¬Æɤߤ䤹¤¤¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤Ï¤Ê¤¤¡£ -¤½¤³¤Ç¡¢glibc ¤Ë¤Ï mtrace ½ÐÎϤòʬ¤«¤ê¤ä¤¹¤¤·Á¼°¤ËÊÑ´¹¤¹¤ë -perl ¥¹¥¯¥ê¥×¥È¤¬ÉÕ°¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +の出力は ASCII 形式だが、人が読みやすいフォーマットではない。 +そこで、glibc には mtrace 出力を分かりやすい形式に変換する +perl スクリプトが付属している。 +.SH 関連項目 .BR malloc (3), .BR malloc_hook (3) diff --git a/release/man3/nan.3 b/release/man3/nan.3 index fbb42a48..84a7332a 100644 --- a/release/man3/nan.3 +++ b/release/man3/nan.3 @@ -8,13 +8,13 @@ .\" Translated Thu 05 Dec 2002 by Akihiro MOTOKI .\" Updated 2008-09-16, Akihiro MOTOKI .\" -.\"WORD: NaN ̵¸úÃÍ -.\"WORD: quiet NaN SIGFPE ¥·¥°¥Ê¥ë¤Ê¤·¤Î̵¸úÃÍ +.\"WORD: NaN 無効値 +.\"WORD: quiet NaN SIGFPE シグナルなしの無効値 .\" .TH NAN 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -nan, nanf, nanl \- ̵¸úÃÍ ('Not a Number') ¤òÊÖ¤¹ -.SH ½ñ¼° +.SH 名前 +nan, nanf, nanl \- 無効値 ('Not a Number') を返す +.SH 書式 .B #include .sp .BI "double nan(const char *" tagp ); @@ -23,12 +23,12 @@ nan, nanf, nanl \- ̵ .br .BI "long double nanl(const char *" tagp ); .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -43,46 +43,46 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ -.\" motoki: quiet NaN ¤È¤Ï²¿¤À¤í¤¦¡© -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢SIGFPE ¥·¥°¥Ê¥ë¤Ê¤·¤Î̵¸úÃÍ (NaN) ¤ò¼¨¤¹É½¸½¤òÊÖ¤¹ -(¤É¤Îɽ¸½¤ò»ÈÍѤ¹¤ë¤«¤Ï +.SH 説明 +.\" motoki: quiet NaN とは何だろう? +これらの関数は、SIGFPE シグナルなしの無効値 (NaN) を示す表現を返す +(どの表現を使用するかは .I tagp -¤Ç»ØÄꤹ¤ë)¡£SIGFPE ¥·¥°¥Ê¥ë¤Ê¤·¤Î NaN ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¼ÂÁõ¤Ç¤Ï 0 ¤òÊÖ¤¹¡£ +で指定する)。SIGFPE シグナルなしの NaN をサポートしていない実装では 0 を返す。 .LP .I nan("char-sequence") -¤ò¸Æ¤Ó½Ð¤¹¤Î¤Ï¡¢ +を呼び出すのは、 .nf strtod("NAN(char-sequence)", NULL); .fi -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 .PP -ƱÍͤˡ¢ +同様に、 .BR nanf () -¤ä +や .BR nanl () -¤ò¸Æ¤Ó½Ð¤¹¤Î¤Ï¡¢ +を呼び出すのは、 .BR strtof () -¤ä +や .BR strtold () -¤ò¸Æ¤Ö¤Î¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +を呼ぶのと同じである。 .PP -°ú¤­¿ô +引き数 .I tagp -¤Î»È¤¤Êý¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -IEEE 754 ½àµò¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢NaN ¤Ë¤âÊ£¿ô¤Îɽ¸½¤¬Â¸ºß¤·¡¢ +の使い方は規定されていない。 +IEEE 754 準拠のシステムでは、NaN にも複数の表現が存在し、 .I tagp -¤Ï¤½¤ÎÁªÂò¤Ë»ÈÍѤµ¤ì¤ë¡£ -¾¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢²¿¤Î°ÕÌ£¤â¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +はその選択に使用される。 +他のシステムでは、何の意味もないかもしれない。 +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99, POSIX.1-2001. -IEC 559 ¤ä¿ä¾©´Ø¿ô¤Ë¤Ê¤Ã¤Æ¤¤¤ë IEEE 754/IEEE 854 -¤ÎÉÕÏ¿¤â»²¾È¤¹¤ë¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +IEC 559 や推奨関数になっている IEEE 754/IEEE 854 +の付録も参照すること。 +.SH 関連項目 .BR isnan (3), .BR strtod (3), .BR math_error (7) diff --git a/release/man3/netlink.3 b/release/man3/netlink.3 index 32589adc..a040669f 100644 --- a/release/man3/netlink.3 +++ b/release/man3/netlink.3 @@ -8,13 +8,13 @@ .\" by Shouichi Saito .\" Proofed Fri Aug 20 1999 by NAKANO Takeo .\" -.\"WORD: payload ³ÊǼÎΰè -.\"WORD: lvalue º¸ÊÕÃÍ +.\"WORD: payload 格納領域 +.\"WORD: lvalue 左辺値 .\" .TH NETLINK 3 1999-05-14 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -netlink \- netlink ¥Þ¥¯¥í -.SH ½ñ¼° +.SH 名前 +netlink \- netlink マクロ +.SH 書式 .nf .\" FIXME . what will glibc 2.1 use here? .\" May 2007: glibc 2.5, things look to be unchanged -- the header file @@ -37,64 +37,64 @@ netlink \- netlink .br .BI "int NLMSG_PAYLOAD(struct nlmsghdr *" nlh ", int " len ); .fi -.SH ÀâÌÀ +.SH 説明 .I -¤Ç¤Ï¡¢ netlink ¥Ç¡¼¥¿¥°¥é¥à¤Ë¥¢¥¯¥»¥¹¤·¤¿¤ê¡¢¤³¤ì¤òºîÀ®¤¹¤ë¤¿¤á¤Î -ɸ½à¥Þ¥¯¥í¤¬¤¤¤¯¤Ä¤«ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Ï +では、 netlink データグラムにアクセスしたり、これを作成するための +標準マクロがいくつか定義されている。 +これらは .BR cmsg (3) -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëÊä½õ¥Ç¡¼¥¿ (auxiliary data) ÍѤΥޥ¯¥í¤È¡¢ -¤½¤ÎÀº¿À¤Ë¤ª¤¤¤Æ»÷¤Æ¤¤¤ë¤â¤Î¤Ç¤¢¤ë¡£ -netlink ¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤ä¤ê¤È¤ê¤µ¤ì¤ë¥Ð¥Ã¥Õ¥¡¤Ë¤Ï¡¢ -ɬ¤º¤³¤ì¤é¤Î¥Þ¥¯¥í¤ò»È¤Ã¤Æ¥¢¥¯¥»¥¹¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +で定義されている補助データ (auxiliary data) 用のマクロと、 +その精神において似ているものである。 +netlink ソケットに対してやりとりされるバッファには、 +必ずこれらのマクロを使ってアクセスすべきである。 .TP .B NLMSG_ALIGN -netlink ¥á¥Ã¥»¡¼¥¸¤ÎŤµ¤ò´Ý¤á¤ÆÀµ¤·¤¯Â·¤¨¤ë¡£ +netlink メッセージの長さを丸めて正しく揃える。 .TP .B NLMSG_LENGTH -³ÊǼÎΰè (payload) ¤ÎŤµ +格納領域 (payload) の長さ .I len -¤ò°ú¿ô¤Ë¤È¤ê¡¢ +を引数にとり、 .I nlmsghdr -¤Î +の .I nlmsg_len -¥Õ¥£¡¼¥ë¥É¤ËÂåÆþ¤Ç¤­¤ë -·¤¨¤é¤ì¤¿Ä¹¤µ (aligned length) ¤òÊÖ¤¹¡£ +フィールドに代入できる +揃えられた長さ (aligned length) を返す。 .TP .B NLMSG_SPACE -¥Ú¥¤¥í¡¼¥É¤ÎŤµ¤¬ +ペイロードの長さが .I len -¤Î netlink ¥á¥Ã¥»¡¼¥¸¤Î¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ +の netlink メッセージのバイト数を返す。 .TP .B NLMSG_DATA -Í¿¤¨¤¿ +与えた .I nlmsghdr -¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿³ÊǼÎΰè¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +に関連づけられた格納領域へのポインタを返す。 .TP .\" this is bizarre, maybe the interface should be fixed. .B NLMSG_NEXT -¥Þ¥ë¥Á¥Ñ¡¼¥È¥á¥Ã¥»¡¼¥¸¤Ë¤ª¤¤¤Æ¡¢¼¡¤Î +マルチパートメッセージにおいて、次の .I nlmsghdr -¤òÆþ¼ê¤¹¤ë¡£¤³¤ì¤ò¸Æ¤Ó½Ð¤¹¤È¤­¤Ë¤Ï¡¢ -¸½ºß¤Î nlmsghdr ¤Ç NLMSG_DONE ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò -³Îǧ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤Î´Ø¿ô¤Ï½ªÃ¼¤Ç NULL ¤òÊÖ¤µ¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +を入手する。これを呼び出すときには、 +現在の nlmsghdr で NLMSG_DONE がセットされていないことを +確認しなければならない。この関数は終端で NULL を返さないからである。 .I len -°ú¿ô¤Ï¥á¥Ã¥»¡¼¥¸¥Ð¥Ã¥Õ¥¡¤Î»Ä¤êŤµ¤¬Æþ¤Ã¤¿º¸ÊÕÃͤǤ¢¤ë¡£ -¤³¤Î¥Þ¥¯¥í¤Ï¤³¤Î°ú¿ô¤«¤é¥á¥Ã¥»¡¼¥¸¥Ø¥Ã¥À¤ÎŤµÊ¬¤òº¹¤·°ú¤¯¡£ +引数はメッセージバッファの残り長さが入った左辺値である。 +このマクロはこの引数からメッセージヘッダの長さ分を差し引く。 .TP .B NLMSG_OK -Netlink ¥á¥Ã¥»¡¼¥¸¤¬ÅÓÀÚ¤ì¤Æ¤ª¤é¤º¡¢¤«¤Ä²ò¼á²Äǽ¤Ê·Á¤Î¾ì¹ç¤Ç¤¢¤ì¤Ð¿¿¤òÊÖ¤¹¡£ +Netlink メッセージが途切れておらず、かつ解釈可能な形の場合であれば真を返す。 .TP .B NLMSG_PAYLOAD .I nlmsghdr -¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿³ÊǼÎΰè¤ÎŤµ¤òÊÖ¤¹¡£ -.SH ½àµò -¤³¤ì¤é¤Î¥Þ¥¯¥í¤ÏÈóɸ½à¤Ç Linux ¤Ç¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -Ä̾ï¤Ï¥«¡¼¥Í¥ë¤ÎÄã¥ì¥Ù¥ë¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤è¤ê¤â¡¢ +に関連づけられた格納領域の長さを返す。 +.SH 準拠 +これらのマクロは非標準で Linux での拡張である。 +.SH 注意 +通常はカーネルの低レベルインターフェイスよりも、 .I libnetlink -·Ðͳ¤Ç netlink ¤òÍѤ¤¤ë¤Û¤¦¤¬Îɤ¤¡£ -.SH ´ØÏ¢¹àÌÜ +経由で netlink を用いるほうが良い。 +.SH 関連項目 .BR netlink (7) .br -¤ª¤è¤Ó libnetlink ¤Ë´Ø¤·¤Æ¤Ï ftp://ftp.inr.ac.ru/ip-routing/iproute2* +および libnetlink に関しては ftp://ftp.inr.ac.ru/ip-routing/iproute2* diff --git a/release/man3/nextafter.3 b/release/man3/nextafter.3 index cbf9c046..de2d822e 100644 --- a/release/man3/nextafter.3 +++ b/release/man3/nextafter.3 @@ -8,15 +8,15 @@ .\" Translated Mon Jan 27 2003 by Akihiro MOTOKI .\" Updated 2008-09-18, Akihiro MOTOKI .\" -.\"WORD: mantissa ²¾¿ôÉô -.\"WORD: normalized Àµµ¬²½¤µ¤ì¤¿ -.\"WORD: subnormal ÈóÀµµ¬²½¤Î +.\"WORD: mantissa 仮数部 +.\"WORD: normalized 正規化された +.\"WORD: subnormal 非正規化の .\" .TH NEXTAFTER 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 nextafter, nextafterf, nextafterl, nexttoward, nexttowardf, nexttowardl \- -ÉâÆ°¾®¿ôÅÀ¿ô¤ÎÁàºî -.SH ½ñ¼° +浮動小数点数の操作 +.SH 書式 .B #include .sp .BI "double nextafter(double " x ", double " y ); @@ -31,12 +31,12 @@ nextafter, nextafterf, nextafterl, nexttoward, nexttowardf, nexttowardl \- .br .BI "long double nexttowardl(long double " x ", long double " y ); .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -72,97 +72,97 @@ or .I cc\ -std=c99 .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR nextafter () -´Ø¿ô·²¤Ï¡¢\fIy\fP ¤Ë¸þ¤«¤¦Êý¸þ¤Ç \fIx\fP ¤Î¤¹¤°¼¡¤ÎÉâÆ°¾®¿ôÅÀ¿ôɽ¸½¤òÊÖ¤¹¡£ +関数群は、\fIy\fP に向かう方向で \fIx\fP のすぐ次の浮動小数点数表現を返す。 .I y -¤¬ +が .I x -¤è¤ê¾®¤µ¤¤¾ì¹ç¡¢ +より小さい場合、 .I x -¤è¤ê¾®¤µ¤¤ºÇÂç¤ÎÉâÆ°¾®¿ôÅÀɽ¸½¤ÎÃͤòÊÖ¤¹¡£ +より小さい最大の浮動小数点表現の値を返す。 -\fIx\fP ¤¬ \fIy\fP ¤ÈÅù¤·¤¤¾ì¹ç¡¢\fIy\fP ¤¬ÊÖ¤µ¤ì¤ë¡£ +\fIx\fP が \fIy\fP と等しい場合、\fIy\fP が返される。 .BR nexttoward () -´Ø¿ô·²¤Ï¡¢2 ÈÖÌܤΰú¤­¿ô¤¬ +関数群は、2 番目の引き数が .I long double -·¿¤Ç¤¢¤ëÅÀ°Ê³°¡¢ +型である点以外、 .BR nextafter () -´Ø¿ô·²¤ÈƱ¤¸¤Ï¤¿¤é¤­¤ò¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï \fIy\fP ¤Ë¸þ¤«¤¦Êý¸þ¤Ç \fIx\fP ¤Î -¤¹¤°¼¡¤ÎÉâÆ°¾®¿ôÅÀ¿ôɽ¸½¤òÊÖ¤¹¡£ +関数群と同じはたらきをする。 +.SH 返り値 +成功すると、これらの関数は \fIy\fP に向かう方向で \fIx\fP の +すぐ次の浮動小数点数表現を返す。 .I x -¤¬ +が .I y -¤ÈÅù¤·¤¤¾ì¹ç¡¢ +と等しい場合、 .RI ( x -¤ÈƱ¤¸·¿¤Ë¥­¥ã¥¹¥È¤µ¤ì¤¿) +と同じ型にキャストされた) .I y -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .I x -¤« +か .I y -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬Í­¸ÂÃÍ¤Ç +が有限値で .\" e.g., DBL_MAX -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ -ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +結果がオーバーフローする場合、 +範囲エラー (range error) が発生し、 +各関数はそれぞれ .BR HUGE_VAL , .BR HUGE_VALF , .B HUGE_VALL -¤òÊÖ¤¹¡£ÊÖ¤êÃͤˤϿô³ØŪ¤ËÀµ¤·¤¤Éä¹æ¤¬ÉÕÍ¿¤µ¤ì¤ë¡£ +を返す。返り値には数学的に正しい符号が付与される。 .I x -¤¬ +が .I y -¤ÈƱ¤¸¤Ç¤Ï¤Ê¤¯¡¢Àµ¤·¤¤´Ø¿ô¤Î·ë²Ì¤¬ÈóÀµµ¬²½¿ô¤«¥¼¥í¤«¥¢¥ó¥À¡¼¥Õ¥í¡¼¤Î¾ì¹ç¡¢ -ÈÏ°Ï¥¨¥é¡¼¤¬È¯À¸¤·¡¢ -(ɽ¸½²Äǽ¤Ê¾ì¹ç¤Ë¤Ï) Àµ¤·¤¤Ãͤ¬¡¢(¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï) 0.0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +と同じではなく、正しい関数の結果が非正規化数かゼロかアンダーフローの場合、 +範囲エラーが発生し、 +(表現可能な場合には) 正しい値が、(そうでない場合には) 0.0 が返される。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ +範囲エラー: 結果のオーバーフロー .\" e.g., nextafter(DBL_MAX, HUGE_VAL); .\" .I errno .\" is set to .\" .BR ERANGE . -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤¬ÈóÀµµ¬²½¿ô¤«¥¢¥ó¥À¡¼¥Õ¥í¡¼ +範囲エラー: 結果が非正規化数かアンダーフロー .\" e.g., nextafter(DBL_MIN, 0.0); .\" .I errno .\" is set to .\" .BR ERANGE . -¥¢¥ó¥À¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +アンダーフロー浮動小数点例外 .RB ( FE_UNDERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6799 -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. -¤³¤Î´Ø¿ô¤Ï IEC 559 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -(¤Þ¤¿ IEEE 754/IEEE 854 ¤Ç¤ÏÉÕÏ¿¤Ç¿ä¾©´Ø¿ô¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë) -.SH ¥Ð¥° -glibc ¥Ð¡¼¥¸¥ç¥ó 2.5 °ÊÁ°¤Ç¤Ï¡¢¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¬È¯À¸¤·¤¿ºÝ¤Ë¡¢ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¥¢¥ó¥À¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +この関数は IEC 559 で定義されている。 +(また IEEE 754/IEEE 854 では付録で推奨関数として定義されている) +.SH バグ +glibc バージョン 2.5 以前では、アンダーフローが発生した際に、 +これらの関数はアンダーフロー浮動小数点例外 .RB ( FE_UNDERFLOW ) -¤ò¾å¤¬¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +を上がない。 +.SH 関連項目 .BR nearbyint (3) diff --git a/release/man3/nl_langinfo.3 b/release/man3/nl_langinfo.3 index af98937b..212ecb9c 100644 --- a/release/man3/nl_langinfo.3 +++ b/release/man3/nl_langinfo.3 @@ -17,107 +17,107 @@ .\" by UCHIDA Norihiro .\" .TH NL_LANGINFO 3 2010-10-03 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -nl_langinfo \- ¸À¸ì¤È¥í¥±¡¼¥ë¤Î¾ðÊó¤òÌ䤤¹ç¤ï¤»¤ë -.SH ½ñ¼° +.SH 名前 +nl_langinfo \- 言語とロケールの情報を問い合わせる +.SH 書式 .nf .B #include .sp .BI "char *nl_langinfo(nl_item " item ); .fi -.SH ÀâÌÀ +.SH 説明 .BR nl_langinfo () -´Ø¿ô¤Ï¡¢ +関数は、 .BR localeconv (3) -¤è¤ê½ÀÆð¤Ê¥í¥±¡¼¥ë¾ðÊó¤Ø¤Î¥¢¥¯¥»¥¹ÊýË¡¤òÄ󶡤¹¤ë¡£ -¥í¥±¡¼¥ë¥«¥Æ¥´¥ê¤Î¸Ä¡¹¤ÎÍ×ÁǤäÄɲäÎÍ×ÁǤòÌ䤤¹ç¤ï¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +より柔軟なロケール情報へのアクセス方法を提供する。 +ロケールカテゴリの個々の要素や追加の要素を問い合わせることができる。 .PP -\fI\fP ¤ËÄê¿ô¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤Æ¡¢ -\fIitem\fP ¤Ë»ØÄê¤Ç¤­¤ë¥í¥±¡¼¥ëÍ×ÁǤÎÎã¤ò°Ê²¼¤Ë¼¨¤¹: +\fI\fP に定数として定義されていて、 +\fIitem\fP に指定できるロケール要素の例を以下に示す: .TP .BR CODESET \ (LC_CTYPE) -ÁªÂò¤µ¤ì¤¿¥í¥±¡¼¥ë¤ÇÍѤ¤¤é¤ì¤ëʸ»ú¥¨¥ó¥³¡¼¥É̾¤ò¼¨¤¹Ê¸»úÎó¤òÊÖ¤¹¡£ -ʸ»ú¥¨¥ó¥³¡¼¥É̾¤È¤·¤Æ¤Ï¡¢"UTF-8" ¤ä "ISO-8859-1"¡¢"ANSI_X3.4-1968" -(¤³¤ì¤Ï US-ASCII ¤È¤¤¤¦Ì¾Á°¤ÎÊý¤¬¤è¤¯ÃΤé¤ì¤Æ¤¤¤ë) ¤Ê¤É¤¬¤¢¤ë¡£ -¤³¤Îʸ»úÎó¤Ï¡¢"locale charmap" ¤ò¼Â¹Ô¤·¤ÆÆÀ¤é¤ì¤ë¤â¤Î¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -ʸ»ú¥¨¥ó¥³¡¼¥É̾¤Î¥ê¥¹¥È¤òÆÀ¤ë¤Ë¤Ï¡¢"locale \-m" ¤ò¼Â¹Ô¤¹¤ë¤È¤è¤¤¡£ -»²¹Í: +選択されたロケールで用いられる文字エンコード名を示す文字列を返す。 +文字エンコード名としては、"UTF-8" や "ISO-8859-1"、"ANSI_X3.4-1968" +(これは US-ASCII という名前の方がよく知られている) などがある。 +この文字列は、"locale charmap" を実行して得られるものと同じである。 +文字エンコード名のリストを得るには、"locale \-m" を実行するとよい。 +参考: .BR locale (1) .TP .BR D_T_FMT \ (LC_TIME) -¥í¥±¡¼¥ë¸ÇÍ­¤Î»þ´Ö¤ÈÆüÉÕ¤òɽ¸½¤¹¤ë¤È¤­¤Ë¡¢ +ロケール固有の時間と日付を表現するときに、 .BR strftime (3) -¤Ç»ÈÍѤǤ­¤ë½ñ¼°ÉÕ¤­Ê¸»úÎó¤òÊÖ¤¹¡£ +で使用できる書式付き文字列を返す。 .TP .BR D_FMT \ (LC_TIME) -¥í¥±¡¼¥ë¸ÇÍ­¤ÎÆüÉÕ¤òɽ¸½¤¹¤ë¤È¤­¤Ë¡¢ +ロケール固有の日付を表現するときに、 .BR strftime (3) -¤Ç»ÈÍѤǤ­¤ë½ñ¼°ÉÕ¤­Ê¸»úÎó¤òÊÖ¤¹¡£ +で使用できる書式付き文字列を返す。 .TP .BR T_FMT \ (LC_TIME) -¥í¥±¡¼¥ë¸ÇÍ­¤Î»þ´Ö¤òɽ¸½¤¹¤ë¤È¤­¤Ë¡¢ +ロケール固有の時間を表現するときに、 .BR strftime (3) -¤Ç»ÈÍѤǤ­¤ë½ñ¼°ÉÕ¤­Ê¸»úÎó¤òÊÖ¤¹¡£ +で使用できる書式付き文字列を返す。 .TP .BR DAY_ "{1\(en7} (LC_TIME)" -ÍËÆü̾ (½µ¤Î \fIn\fP ÈÖÌܤÎÆü¤Î̾Á°) ¤òÊÖ¤¹¡£[·Ù¹ð: ¤³¤ÎÍ×ÁǤϥ¢¥á¥ê¥«¤Î -´·½¬¤Ë½¾¤Ã¤Æ DAY_1 ¤¬ ÆüÍËÆü¤È¤Ê¤ë¡£¹ñºÝŪ¤Ê´·½¬ (ISO 8601) ¤Ç¤Ï·îÍËÆü¤¬ -½µ¤ÎºÇ½é¤ÎÆü¤Ç¤¢¤ë¡£] +曜日名 (週の \fIn\fP 番目の日の名前) を返す。[警告: この要素はアメリカの +慣習に従って DAY_1 が 日曜日となる。国際的な慣習 (ISO 8601) では月曜日が +週の最初の日である。] .TP .BR ABDAY_ "{1\(en7} (LC_TIME)" -ÍËÆü (½µ¤Î \fIn\fP ÈÖÌܤÎÆü) ¤Î¾Êά̾¤òÊÖ¤¹¡£ +曜日 (週の \fIn\fP 番目の日) の省略名を返す。 .TP .BR MON_ "{1\(en12} (LC_TIME)" -\fIn\fP ÈÖÌܤηî¤Î̾Á°¤òÊÖ¤¹¡£ +\fIn\fP 番目の月の名前を返す。 .TP .BR ABMON_ "{1\(en12} (LC_TIME)" -\fIn\fP ÈÖÌܤηî¤Î¾Êά̾¤òÊÖ¤¹¡£ +\fIn\fP 番目の月の省略名を返す。 .TP .BR RADIXCHAR \ (LC_NUMERIC) -´ð¿ôµ­¹æ (¾®¿ôÅÀ¤ä¥³¥ó¥Þ¤Ê¤É) ¤òÊÖ¤¹¡£ +基数記号 (小数点やコンマなど) を返す。 .TP .BR THOUSEP \ (LC_NUMERIC) -Àé¤Î°Ì (3 ·å¤Î¿ôÃÍ) ¤Î¶èÀÚ¤êʸ»ú¤òÊÖ¤¹¡£ +千の位 (3 桁の数値) の区切り文字を返す。 .TP .BR YESEXPR \ (LC_MESSAGES) -yes/no ¤Î¼ÁÌä¤ËÂФ¹¤ë¹ÎÄê¤Î±þÅú¤òǧ¼±¤¹¤ë¤¿¤á¤Ë¡¢ +yes/no の質問に対する肯定の応答を認識するために、 .BR regex (3) -´Ø¿ô¤Ç»ÈÍѤǤ­¤ëÀµµ¬É½¸½¤òÊÖ¤¹¡£ +関数で使用できる正規表現を返す。 .TP .BR NOEXPR \ (LC_MESSAGES) -yes/no ¤Î¼ÁÌä¤ËÂФ¹¤ëÈÝÄê¤Î±þÅú¤òǧ¼±¤¹¤ë¤¿¤á¤Ë +yes/no の質問に対する否定の応答を認識するために .BR regex (3) -´Ø¿ô¤Ç»ÈÍѤǤ­¤ëÀµµ¬É½¸½¤òÊÖ¤¹¡£ +関数で使用できる正規表現を返す。 .TP .BR CRNCYSTR \ (LC_MONETARY) -Ä̲ߵ­¹æ¤òÊÖ¤¹¡£ -µ­¹æ¤¬¿ôÃͤÎÁ°¤ËÇÛÃÖ¤µ¤ì¤ë¾ì¹ç¤Ï¡¢"\-" ¤¬Ä̲ߵ­¹æ¤ËÁ°ÃÖ¤µ¤ì¤ë¡£ -¿ôÃͤθå¤Ëµ­¹æ¤¬ÇÛÃÖ¤µ¤ì¤ë¾ì¹ç¤Ï "+" ¤¬¡¢ -µ­¹æ¤¬´ð¿ôʸ»ú¤ÈÃÖ¤­´¹¤ï¤ë¾ì¹ç¤Ï "." ¤¬Á°ÃÖ¤µ¤ì¤ë¡£ +通貨記号を返す。 +記号が数値の前に配置される場合は、"\-" が通貨記号に前置される。 +数値の後に記号が配置される場合は "+" が、 +記号が基数文字と置き換わる場合は "." が前置される。 .PP -¾åµ­¤Î¥ê¥¹¥È¤Ï¡¢Í×µá¤Ç¤­¤ëÄêµÁ¤Î¤´¤¯°ìÉô¤Ç¤¢¤ë¡£ -¾ÜºÙ¤Ê¥ê¥¹¥È¤Ï¡¢ -.I "GNU C ¥é¥¤¥Ö¥é¥ê¡¦¥ê¥Õ¥¡¥ì¥ó¥¹¥Þ¥Ë¥å¥¢¥ë" -¤ò»²¾È¤·¤Æ¤Û¤·¤¤¡£ -.SH ÊÖ¤êÃÍ -ŬÀڤʥ«¥Æ¥´¥ê¤Î¥í¥±¡¼¥ë¤¬ +上記のリストは、要求できる定義のごく一部である。 +詳細なリストは、 +.I "GNU C ライブラリ・リファレンスマニュアル" +を参照してほしい。 +.SH 返り値 +適切なカテゴリのロケールが .BR setlocale (3) -¤Ë¤è¤Ã¤ÆÁªÂò¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢ +によって選択されていない場合は、 .BR nl_langinfo () -¤Ï "C" ¥í¥±¡¼¥ë¤Î¤È¤­¤ËÁêÅö¤¹¤ëʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +は "C" ロケールのときに相当する文字列へのポインタを返す。 .PP -̵¸ú¤Ê \fIitem\fP ¤Î¾ì¹ç¤Ï¡¢¶õʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬ÊÖ¤µ¤ì¤ë¡£ +無効な \fIitem\fP の場合は、空文字列へのポインタが返される。 .PP -¤³¤Î¥Ý¥¤¥ó¥¿¤ÏÀÅŪ¤Ê¥Ç¡¼¥¿Îΰè¤ò»Ø¤·¡¢¤½¤ÎÆâÍƤϼ¡²ó¤Î +このポインタは静的なデータ領域を指し、その内容は次回の .BR nl_langinfo () -¤ä +や .BR setlocale (3) -¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤Æ½ñ¤­Âؤï¤ë¤³¤È¤¬¤¢¤ë¡£ -.SH ½àµò +の呼び出しによって書き替わることがある。 +.SH 準拠 SUSv2, POSIX.1-2001. -.SH Îã -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢´Ä¶­ÊÑ¿ô¤Ë´ð¤¤¤Æʸ»ú·¿ (character type) ¤Î¥í¥±¡¼¥ë -¤òÀßÄꤷ¡¢Ã¼Ëö¤Îʸ»ú½¸¹ç¤ÎÌ䤤¹ç¤ï¤»¤ò¹Ô¤¦¡£ +.SH 例 +以下のプログラムは、環境変数に基いて文字型 (character type) のロケール +を設定し、端末の文字集合の問い合わせを行う。 .LP .nf #include @@ -133,11 +133,11 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR locale (1), .BR localeconv (3), .BR setlocale (3), .BR charsets (7), .BR locale (7) .br -GNU C ¥é¥¤¥Ö¥é¥ê¡¦¥ê¥Õ¥¡¥ì¥ó¥¹¥Þ¥Ë¥å¥¢¥ë +GNU C ライブラリ・リファレンスマニュアル diff --git a/release/man3/offsetof.3 b/release/man3/offsetof.3 index c11efc44..a8bf7c7f 100644 --- a/release/man3/offsetof.3 +++ b/release/man3/offsetof.3 @@ -29,43 +29,43 @@ .\" Translated 2006-07-25, Akihiro MOTOKI, Catch up to LDP v2.34 .\" .TH OFFSETOF 3 2008-07-12 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -offsetof \- ¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤Î¥ª¥Õ¥»¥Ã¥È¤òÊÖ¤¹ -.SH ½ñ¼° +.SH 名前 +offsetof \- 構造体のメンバーのオフセットを返す +.SH 書式 .nf .B #include .sp .BI "size_t offsetof(" type ", " member ); .fi -.SH ÀâÌÀ +.SH 説明 .BR offsetof () -¥Þ¥¯¥í¤Ï¡¢¥Õ¥£¡¼¥ë¥É \fImember\fP ¤Î -¹½Â¤ÂÎ \fItype\fP ¤ÎÀèƬ¤«¤é¤Î¥ª¥Õ¥»¥Ã¥È¤òÊÖ¤¹¡£ +マクロは、フィールド \fImember\fP の +構造体 \fItype\fP の先頭からのオフセットを返す。 -¤³¤Î¥Þ¥¯¥í¤¬Í­ÍѤʤΤϡ¢ -¹½Â¤ÂΤò¹½À®¤¹¤ë¥Õ¥£¡¼¥ë¥É¤Î¥µ¥¤¥º¤Ï¼ÂÁõ¤Ë¤è¤Ã¤ÆÊѲ½¤¹¤ë¤·¡¢ -¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤ê¥Õ¥£¡¼¥ë¥É´Ö¤ËÁÞÆþ¤¹¤ë¥Ñ¥Ç¥£¥ó¥°¤Î¥Ð¥¤¥È¿ô¤â -°ã¤¦²ÄǽÀ­¤¬¤¢¤ë¤«¤é¤Ç¤¢¤ë¡£ -¤½¤Î·ë²Ì¡¢¤¢¤ë¥¨¥ì¥á¥ó¥È¤Î¥ª¥Õ¥»¥Ã¥È¤Ïɬ¤º¤·¤â¤½¤ì¤è¤êÁ°¤Î -¥¨¥ì¥á¥ó¥È¤Î¥µ¥¤¥º¤Î¹ç·×¤È¤Ï¤Ê¤é¤Ê¤¤¡£ +このマクロが有用なのは、 +構造体を構成するフィールドのサイズは実装によって変化するし、 +コンパイラによりフィールド間に挿入するパディングのバイト数も +違う可能性があるからである。 +その結果、あるエレメントのオフセットは必ずしもそれより前の +エレメントのサイズの合計とはならない。 -\fImember\fP ¤¬¥Ð¥¤¥È¶­³¦¤Ë°ÌÃÖ¤·¤Æ¤¤¤Ê¤¤¾ì¹ç -(¤¹¤Ê¤ï¤Á¡¢¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤Î¾ì¹ç) ¤Ë¤Ï¡¢ -¥³¥ó¥Ñ¥¤¥é¤Ç¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ +\fImember\fP がバイト境界に位置していない場合 +(すなわち、ビットフィールドの場合) には、 +コンパイラでエラーが発生する。 +.SH 返り値 .BR offsetof () -¤Ï¡¢»ØÄꤵ¤ì¤¿ +は、指定された .I member -¤Î»ØÄꤵ¤ì¤¿ +の指定された .I type -¤ÎÃæ¤Ç¤Î¥ª¥Õ¥»¥Ã¥È¤ò¡¢¥Ð¥¤¥Èñ°Ì¤ÇÊÖ¤¹¡£ -.SH ½àµò +の中でのオフセットを、バイト単位で返す。 +.SH 準拠 C89, C99, POSIX.1-2001. -.SH Îã -Linux/i386 ¥·¥¹¥Æ¥à¤Ç¡¢ +.SH 例 +Linux/i386 システムで、 .BR gcc (1) -¤Î¥Ç¥Õ¥©¥ë¥È¥ª¥×¥·¥ç¥ó¤Ç -¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¾ì¹ç¡¢²¼µ­¤Î¥×¥í¥°¥é¥à¤Ï°Ê²¼¤Î¤è¤¦¤Ê½ÐÎϤòÊÖ¤¹¡£ +のデフォルトオプションで +コンパイルされた場合、下記のプログラムは以下のような出力を返す。 .in +4n .nf @@ -74,7 +74,7 @@ offsets: i=0; c=4; d=8 a=16 sizeof(struct s)=16 .fi .nf -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -91,7 +91,7 @@ main(void) char a[]; }; - /* ½ÐÎϤϥ³¥ó¥Ñ¥¤¥é°Í¸¤Ç¤¢¤ë */ + /* 出力はコンパイラ依存である */ printf("offsets: i=%ld; c=%ld; d=%ld a=%ld\\n", (long) offsetof(struct s, i), diff --git a/release/man3/on_exit.3 b/release/man3/on_exit.3 index d917ca76..ba53c55c 100644 --- a/release/man3/on_exit.3 +++ b/release/man3/on_exit.3 @@ -35,9 +35,9 @@ .\" Updated 2008-12-26, Akihiro MOTOKI, LDP v3.15 .\" .TH ON_EXIT 3 2008-12-05 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -on_exit \- ¥×¥í¥»¥¹¤¬Àµ¾ï¤Ë½ªÎ»¤·¤¿ºÝ¤Ë¸Æ¤Ð¤ì¤ë´Ø¿ô¤òÅÐÏ¿¤¹¤ë -.SH ½ñ¼° +.SH 名前 +on_exit \- プロセスが正常に終了した際に呼ばれる関数を登録する +.SH 書式 .nf .B #include .sp @@ -45,43 +45,43 @@ on_exit \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR on_exit (): _BSD_SOURCE || _SVID_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR on_exit () -´Ø¿ô¤Ï¡¢»ØÄꤵ¤ì¤¿´Ø¿ô \fIfunction\fP ¤ò¡¢¥×¥í¥»¥¹¤¬ -Àµ¾ï¤Ë½ªÎ»¤·¤¿ºÝ¤Ë¸Æ¤Ð¤ì¤ë´Ø¿ô¤È¤·¤ÆÅÐÏ¿¤¹¤ë¡£Àµ¾ï¤Ê½ªÎ»¤È¤Ï¡¢ +関数は、指定された関数 \fIfunction\fP を、プロセスが +正常に終了した際に呼ばれる関数として登録する。正常な終了とは、 .BR exit (3) -¤Þ¤¿¤Ï¥×¥í¥°¥é¥à¤Î \fImain\fP() -´Ø¿ô¤ÎÃæ¤Î return Ì¿Îá¤Ë¤è¤ë½ªÎ»¤Ç¤¢¤ë¡£ -´Ø¿ô \fIfunction\fP ¤Ë¤Ï¡¢Ä¾¶á¤Î +またはプログラムの \fImain\fP() +関数の中の return 命令による終了である。 +関数 \fIfunction\fP には、直近の .BR exit (3) -¤Î¸Æ¤Ó½Ð¤·¤ÇÅϤµ¤ì¤¿ status °ú¿ô¤È +の呼び出しで渡された status 引数と .BR on_exit () -¤Î \fIarg\fP °ú¿ô¤¬ÅϤµ¤ì¤ë¡£ +の \fIarg\fP 引数が渡される。 -Ʊ¤¸´Ø¿ô¤òÊ£¿ô²óÅÐÏ¿¤·¤Æ¤â¤è¤¤¡£ -ÅÐÏ¿¤µ¤ì¤¿´Ø¿ô¤ÏÅÐÏ¿ 1 ²ó¤Ë¤Ä¤­ 1 ²ó¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ +同じ関数を複数回登録してもよい。 +登録された関数は登録 1 回につき 1 回呼び出される。 .BR fork (2) -·Ðͳ¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢¿Æ¥×¥í¥»¥¹¤ÎÅÐÏ¿¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£ +経由で作成された子プロセスは、親プロセスの登録のコピーを継承する。 .BR exec (3) -·²¤Î´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤ËÀ®¸ù¤¹¤ë¤È¡¢Á´¤Æ¤ÎÅÐÏ¿¤¬ºï½ü¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +群の関数の呼び出しに成功すると、全ての登録が削除される。 +.SH 返り値 .BR on_exit () -´Ø¿ô¤Ï¡¢À®¸ù¤·¤¿¤é 0 ¤ò¡¢¤½¤¦¤Ç¤Ê¤±¤ì¤Ð 0 °Ê³°¤òÊÖ¤¹¡£ -.SH ½àµò -¤³¤Î´Ø¿ô¤Ï SunOS 4 ͳÍè¤Ç¤¢¤ë¤¬¡¢libc4, libc5, glibc ¤Ë¤â¸ºß¤¹¤ë¡£ -Solaris (SunOS 5) ¤Ë¤Ï¤â¤Ï¤ä¸ºß¤·¤Ê¤¤¡£ -¤³¤Î´Ø¿ô¤Î»ÈÍѤÏÈò¤±¡¢Âå¤ï¤ê¤Ëɸ½à¤Î +関数は、成功したら 0 を、そうでなければ 0 以外を返す。 +.SH 準拠 +この関数は SunOS 4 由来であるが、libc4, libc5, glibc にも存在する。 +Solaris (SunOS 5) にはもはや存在しない。 +この関数の使用は避け、代わりに標準の .BR atexit (3) -¤ò»È¤¦¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を使うこと。 +.SH 関連項目 .BR _exit (2), .BR atexit (3), .BR exit (3) diff --git a/release/man3/opendir.3 b/release/man3/opendir.3 index 57ec8d4d..0ec65e2a 100644 --- a/release/man3/opendir.3 +++ b/release/man3/opendir.3 @@ -35,15 +35,15 @@ .\" Updated & Modified Thu Feb 17 00:37:46 JST 2005 .\" by Yuichi SATO .\" -.\"WORD: directory stream ¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à -.\"WORD: entry ¥¨¥ó¥È¥ê -.\"WORD: Permission denied ¥¢¥¯¥»¥¹¸¢¸Â¤¬¤Ê¤¤ -.\"WORD: file descriptor ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +.\"WORD: directory stream ディレクトリストリーム +.\"WORD: entry エントリ +.\"WORD: Permission denied アクセス権限がない +.\"WORD: file descriptor ファイルディスクリプタ .\" .TH OPENDIR 3 2010-06-20 "" "Linux Programmer's Manual" -.SH ̾Á° -opendir, fdopendir \- ¥Ç¥£¥ì¥¯¥È¥ê¤ò¥ª¡¼¥×¥ó¤¹¤ë -.SH ½ñ¼° +.SH 名前 +opendir, fdopendir \- ディレクトリをオープンする +.SH 書式 .nf .B #include .br @@ -54,9 +54,9 @@ opendir, fdopendir \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR fdopendir (): @@ -64,91 +64,91 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR opendir () -´Ø¿ô¤Ï¥Ç¥£¥ì¥¯¥È¥ê \fIname\fP ¤ËÂбþ¤¹¤ë -¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤ò¥ª¡¼¥×¥ó¤·¡¢¤½¤Î¥¹¥È¥ê¡¼¥à¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¹¥È¥ê¡¼¥à¤Î°ÌÃ֤ϥǥ£¥ì¥¯¥È¥ê¤ÎÀèƬ¤Î¥¨¥ó¥È¥ê¤ËÀßÄꤵ¤ì¤ë¡£ +関数はディレクトリ \fIname\fP に対応する +ディレクトリストリームをオープンし、そのストリームへのポインタを返す。 +ストリームの位置はディレクトリの先頭のエントリに設定される。 .BR fdopendir () -´Ø¿ô¤Ï +関数は .BR opendir () -¤ÈƱÍͤÀ¤¬¡¢¥ª¡¼¥×¥óºÑ¤ß¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +と同様だが、オープン済みのファイルディスクリプタ .I fd -¤Ë¤è¤ê»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ¹¤ë -¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤òÊÖ¤¹¡£ +により参照されるディレクトリに対する +ディレクトリストリームを返す。 .BR fdopendir () -¤Î¸Æ¤Ó½Ð¤·¤¬À®¸ù¤·¤¿¸å¤Ï¡¢ +の呼び出しが成功した後は、 .I fd -¤Ï¼ÂÁõ¤ÎÆâÉô¤Ç»ÈÍѤµ¤ì¤ë¡£¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï +は実装の内部で使用される。アプリケーションは .I fd -¤ò¾¤Î¾ìÌ̤ǻÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -´Ø¿ô +を他の場面で使用すべきではない。 +.SH 返り値 +関数 .BR opendir () -¤È +と .BR fdopendir () -¤Ï¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢NULL ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +はディレクトリストリームへのポインタを返す。 +エラーの場合は、NULL が返されて、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EACCES -¥¢¥¯¥»¥¹¸¢¸Â¤¬¤Ê¤¤¡£ +アクセス権限がない。 .TP .B EBADF .I fd -¤¬Æɤ߽Ф·ÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤¿¡¢Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ +が読み出し用にオープンされた、有効なファイルディスクリプタではない。 .TP .B EMFILE -¥×¥í¥»¥¹¤¬»ÈÍÑÃæ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Â¿¤¹¤®¤ë¡£ +プロセスが使用中のファイルディスクリプタが多すぎる。 .TP .B ENFILE -¥·¥¹¥Æ¥à¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤¬Â¿¤¹¤®¤ë¡£ +システムでオープンされているファイルが多すぎる。 .TP .B ENOENT -¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢¤Þ¤¿¤Ï \fIname\fP ¤¬¶õʸ»úÎó¤Ç¤¢¤ë¡£ +ディレクトリが存在しないか、または \fIname\fP が空文字列である。 .TP .B ENOMEM -Ì¿Îá¤ò¼Â¹Ô¤¹¤ë¤Î¤Ë½¼Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ +命令を実行するのに充分なメモリがない。 .TP .B ENOTDIR -\fIname\fP ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +\fIname\fP はディレクトリではない。 +.SH バージョン .BR fdopendir () -¤Ï glibc 2.4 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH ½àµò +は glibc 2.4 以降で利用可能である。 +.SH 準拠 .BR opendir () -¤Ï SVr4 ¤È 4.3BSD ¤Ë¸ºß¤·¡¢ -POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は SVr4 と 4.3BSD に存在し、 +POSIX.1-2001 で規定されている。 .BR fdopendir () -¤Ï POSIX.1-2008 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤ËÂбþ¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï +は POSIX.1-2008 で規定されている。 +.SH 注意 +ディレクトリストリームに対応するファイルディスクリプタは .BR dirfd (3) -¤ò»ÈÍѤ·¤ÆÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使用して得ることができる。 .BR opendir () -´Ø¿ô¤Ï¡¢ +関数は、 .I "DIR *" -¤ÎÇظå¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î close-on-exec ¥Õ¥é¥°¤òÀßÄꤹ¤ë¡£ +の背後にあるファイルディスクリプタの close-on-exec フラグを設定する。 .BR fdopendir () -´Ø¿ô¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î close-on-exec ¥Õ¥é¥°¤ÎÀßÄê¤òÊѹ¹¤·¤Ê¤¤¡£ +関数は、ファイルディスクリプタの close-on-exec フラグの設定を変更しない。 .BR fdopendir () -¤Î¸Æ¤Ó½Ð¤·¤¬À®¸ù¤·¤¿ºÝ¤Ë¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +の呼び出しが成功した際に、ファイルディスクリプタ .I fd -¤Î close-on-exec ¤òÀßÄꤹ¤ë¤«¤É¤¦¤«¤Ï¡¢ -POSIX.1-200x ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +の close-on-exec を設定するかどうかは、 +POSIX.1-200x では規定されていない。 +.SH 関連項目 .BR open (2), .BR closedir (3), .BR dirfd (3), diff --git a/release/man3/openpty.3 b/release/man3/openpty.3 index 71feb5a9..3f1a0c45 100644 --- a/release/man3/openpty.3 +++ b/release/man3/openpty.3 @@ -36,13 +36,13 @@ .\" Updated Mon Mar 8 2003 by Akihiro MOTOKI .\" Updated Sun Sep 14 2003 by Akihiro MOTOKI .\" -.\"WORD: tty üËö -.\"WORD: pseudoterminal µ¿»÷üËö +.\"WORD: tty 端末 +.\"WORD: pseudoterminal 疑似端末 .\" .TH OPENPTY 3 2010-06-13 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -openpty, login_tty, forkpty \- üËö¥æ¡¼¥Æ¥£¥ê¥Æ¥£´Ø¿ô -.SH ½ñ¼° +.SH 名前 +openpty, login_tty, forkpty \- 端末ユーティリティ関数 +.SH 書式 .nf .B #include .sp @@ -58,137 +58,137 @@ openpty, login_tty, forkpty \- ü .sp .BI "int login_tty(int " fd ); .sp -\fI\-lutil\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lutil\fP でリンクする。 .fi -.SH ÀâÌÀ +.SH 説明 .BR openpty () -´Ø¿ô¤Ï¡¢»ÈÍѲÄǽ¤Êµ¿»÷üËö (pseudoterminal) ¤ò¸«¤Ä¤±¤Æ¡¢ -¥Þ¥¹¥¿¤È¥¹¥ì¡¼¥Ö¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò +関数は、使用可能な疑似端末 (pseudoterminal) を見つけて、 +マスタとスレーブのファイル・ディスクリプタを .I amaster -¤È +と .I aslave -¤ËÆþ¤ì¤ÆÊÖ¤¹¡£ +に入れて返す。 .I name -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢¥¹¥ì¡¼¥Ö¤Î¥Õ¥¡¥¤¥ë̾¤¬ +が NULL でない場合、スレーブのファイル名が .I name -¤ËÊÖ¤µ¤ì¤ë¡£ +に返される。 .I termp -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢¥¹¥ì¡¼¥Ö¤ÎüËö¥Ñ¥é¥á¡¼¥¿¤Ï +が NULL でない場合、スレーブの端末パラメータは .I termp -¤ÎÃͤËÀßÄꤵ¤ì¤ë¡£ +の値に設定される。 .I winp -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢¥¹¥ì¡¼¥Ö¤Î¥¦¥¤¥ó¥É¥¦¥µ¥¤¥º¤Ï +が NULL でない場合、スレーブのウインドウサイズは .I winp -¤ËÀßÄꤵ¤ì¤ë¡£ +に設定される。 .BR login_tty () -´Ø¿ô¤Ï¡¢Ã¼Ëö +関数は、端末 .I fd -¤Ë¥í¥°¥¤¥ó¤¹¤ë½àÈ÷¤ò¤¹¤ë +にログインする準備をする .RI ( fd -¤Ï¼ÂºÝ¤ÎüËö¥Ç¥Ð¥¤¥¹¤Ç¤â¡¢ +は実際の端末デバイスでも、 .BR openpty () -¤ÇÊÖ¤µ¤ì¤ëµ¿»÷üËö¤Î¥¹¥ì¡¼¥Ö¤Ç¤â¤è¤¤)¡£ -¶ñÂÎŪ¤Ë¤Ï¡¢¿·¤·¤¤¥»¥Ã¥·¥ç¥ó¤òºîÀ®¤·¡¢ +で返される疑似端末のスレーブでもよい)。 +具体的には、新しいセッションを作成し、 .I fd -¤ò¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤È¤·¡¢ -¸Æ¤Ó½Ð¤·¸µ¤Îɸ½àÆþÎÏ¡¦É¸½à½ÐÎÏ¡¦É¸½à¥¨¥é¡¼¤Î¥¹¥È¥ê¡¼¥à¤ò +を呼び出し元のプロセスの制御端末とし、 +呼び出し元の標準入力・標準出力・標準エラーのストリームを .I fd -¤ËÀßÄꤷ¤¿¸å¡¢ +に設定した後、 .I fd -¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +をクローズする。 .BR forkpty () -´Ø¿ô¤Ï +関数は .BR openpty (), .BR fork (2), .BR login_tty () -¤òÁȤ߹ç¤ï¤»¡¢µ¿»÷üËö¤òÁàºî¤¹¤ë¿·¤·¤¤¥×¥í¥»¥¹¤òÀ¸À®¤¹¤ë¡£ -µ¿»÷üËö¤Î¥Þ¥¹¥¿Â¦¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï +を組み合わせ、疑似端末を操作する新しいプロセスを生成する。 +疑似端末のマスタ側のファイル・ディスクリプタは .I amaster -¤ËÊÖ¤µ¤ì¡¢ +に返され、 .I name -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢¥¹¥ì¡¼¥Ö¤Î¥Õ¥¡¥¤¥ë̾¤¬ +が NULL でない場合には、スレーブのファイル名が .I name -¤ËÊÖ¤µ¤ì¤ë¡£ +に返される。 .I termp -¤È +と .I winp -°ú¤­¿ô¤Ï¡¢NULL ¤Ç¤Ê¤±¤ì¤Ð¡¢ -µ¿»÷üËö¤Î¥¹¥ì¡¼¥Ö¦¤ÎüËö°À­¤È¥¦¥¤¥ó¥É¥¦¥µ¥¤¥º¤ò·èÄꤹ¤ë¡£ -.SH ÊÖ¤êÃÍ +引き数は、NULL でなければ、 +疑似端末のスレーブ側の端末属性とウインドウサイズを決定する。 +.SH 返り値 .BR openpty (), .BR login_tty (), .BR forkpty () -¤Î¸Æ¤Ó½Ð¤·¤¬À®¸ù¤·¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ -\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +の呼び出しが成功しなかった場合、 +\-1 が返されて、 .I errno -¤Ï¥¨¥é¡¼¤ò¼¨¤¹ÃͤËÀßÄꤵ¤ì¤ë¡£ -À®¸ù¤·¤¿¾ì¹ç¡¢ +はエラーを示す値に設定される。 +成功した場合、 .BR openpty (), .BR login_tty () -¤ª¤è¤Ó +および .BR forkpty () -¤Î»Ò¥×¥í¥»¥¹¤Ï 0 ¤òÊÖ¤·¡¢ +の子プロセスは 0 を返し、 .BR forkpty () -¤Î¿Æ¥×¥í¥»¥¹¤Ï»Ò¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -°Ê²¼¤Î¾ì¹ç¤Ë +の親プロセスは子プロセスのプロセス ID を返す。 +.SH エラー +以下の場合に .BR openpty () -¤Ï¼ºÇÔ¤¹¤ë: +は失敗する: .TP .B ENOENT -»ÈÍѲÄǽ¤ÊüËö¤¬¤Ê¤¤¡£ +使用可能な端末がない。 .LP .BR ioctl (2) -¤¬ +が .I fd -¤ò¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤ËÀßÄꤹ¤ë¤Î¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +を呼び出し元のプロセスの制御端末に設定するのに失敗した場合、 .BR login_tty () -¤Ï¼ºÇÔ¤¹¤ë¡£ +は失敗する。 .LP .BR openpty () -¤Þ¤¿¤Ï +または .BR fork (2) -¤Î¤É¤Á¤é¤«¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +のどちらかが失敗した場合、 .BR forkpty () -¤Ï¼ºÇÔ¤¹¤ë¡£ -.SH ½àµò -¤³¤ì¤é¤Ï BSD ¤Î´Ø¿ô¤Ç¤¢¤ê¡¢libc5 ¤È glibc2 ¤Ë¸ºß¤¹¤ë¡£ -POSIX ¤Ç¤Îɸ½à²½¤Ï¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH Ãí°Õ -.\" ¤³¤ì¤é¤Î´Ø¿ô¤Ï libutil ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢¥³¥ó¥Ñ¥¤¥ë»þ¤Î -.\" ¥ª¥×¥·¥ç¥ó¤Ë +は失敗する。 +.SH 準拠 +これらは BSD の関数であり、libc5 と glibc2 に存在する。 +POSIX での標準化はされていない。 +.SH 注意 +.\" これらの関数は libutil に含まれている。したがって、コンパイル時の +.\" オプションに .\" .B \-lutil -.\" ¤ò²Ã¤¨¤ëɬÍפ¬¤¢¤ë¡£ +.\" を加える必要がある。 .\" -glibc 2.8 ¤Ç¡¢ +glibc 2.8 で、 .BR openpty () -¤È +と .BR forkpty () -¤Î¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Î°ú¤­¿ô¤Ë +の構造体へのポインタの引き数に .B const -½¤¾þ»Ò¤¬Äɲ䵤줿¡£ +修飾子が追加された。 -2.0.92 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î glibc ¤Ç¤Ï¡¢ +2.0.92 より前のバージョンの glibc では、 .BR openpty () -¤Ï BSD µ¿»÷üËö¥Ú¥¢¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -2.0.92 °Ê¹ß¤Î glibc ¤Ç¤Ï¡¢ +は BSD 疑似端末ペアのファイル・ディスクリプタを返す。 +2.0.92 以降の glibc では、 .BR openpty () -¤Ï¤Þ¤º Unix 98 µ¿»÷üËö¥Ú¥¢¤ò¥ª¡¼¥×¥ó¤·¤è¤¦¤È¤·¡¢¤½¤ì¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ë -BSD µ¿»÷üËö¥Ú¥¢¤Î¥ª¡¼¥×¥ó¤Ø¤È°Ü¹Ô¤¹¤ë¡£ -.SH ¥Ð¥° -ï¤â +はまず Unix 98 疑似端末ペアをオープンしようとし、それに失敗した場合に +BSD 疑似端末ペアのオープンへと移行する。 +.SH バグ +誰も .I name -¤ËÂФ·¤Æ¤É¤Î¤¯¤é¤¤Â礭¤µ¤òͽÌ󤷤Ƥª¤±¤Ð¤¤¤¤¤«Ê¬¤«¤é¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢NULL ¤Ç¤Ê¤¤ +に対してどのくらい大きさを予約しておけばいいか分からない。 +したがって、NULL でない .I name -¤ò°ú¤­¿ô¤È¤·¤Æ +を引き数として .BR openpty () -¤ä +や .BR forkpty () -¤ò¸Æ¤Ó½Ð¤¹¤Î¤Ï°ÂÁ´¤Ç¤¢¤ë¤È¤Ï¸À¤¨¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +を呼び出すのは安全であるとは言えない。 +.SH 関連項目 .BR fork (2), .BR ttyname (3), .BR pty (7) diff --git a/release/man3/perror.3 b/release/man3/perror.3 index 0014ee1b..0e00db06 100644 --- a/release/man3/perror.3 +++ b/release/man3/perror.3 @@ -34,9 +34,9 @@ .\" Updated 2005-03-15, Akihiro MOTOKI .\" .TH PERROR 3 2007-07-26 "" "Linux Programmer's Manual" -.SH ̾Á° -perror \- ¥·¥¹¥Æ¥à¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ¹¤ë -.SH ½ñ¼° +.SH 名前 +perror \- システムエラーメッセージを出力する +.SH 書式 .B #include .sp .BI "void perror(const char *" s ); @@ -50,96 +50,96 @@ perror \- .BI "int " errno ; .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .IR sys_errlist , .IR sys_nerr : _BSD_SOURCE -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR perror () -¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤Ë¤ª¤¤¤Æ¡¢ºÇ¸å¤ËȯÀ¸¤·¤¿ -¥¨¥é¡¼¤Ë´Ø¤¹¤ëÀâÌÀ¥á¥Ã¥»¡¼¥¸¤òÀ¸À®¤·¡¢É¸½à¥¨¥é¡¼½ÐÎϤ˽ÐÎϤ¹¤ë¡£ +は、システムコールやライブラリ関数の呼び出しにおいて、最後に発生した +エラーに関する説明メッセージを生成し、標準エラー出力に出力する。 .RI ( s -¤¬ NULL ¤Ç¤Ê¤¯¡¢ +が NULL でなく、 .I *s -¤¬ NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï) °ú¤­¿ô¤Îʸ»úÎó +が NULL バイト (\(aq\\0\(aq) でない場合には) 引き数の文字列 .I s -¤¬¤Þ¤º½ÐÎϤµ¤ì¡¢Â³¤¤¤Æ¥³¥í¥ó¡¢¶õÇò¤¬½ÐÎϤµ¤ì¡¢ -¤½¤ì¤«¤é¥á¥Ã¥»¡¼¥¸¤È²þ¹Ô¤¬½ÐÎϤµ¤ì¤ë¡£ +がまず出力され、続いてコロン、空白が出力され、 +それからメッセージと改行が出力される。 -¤³¤Î¥á¥Ã¥»¡¼¥¸¤òºÇÂç¸Â³èÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢°ú¤­¿ôʸ»úÎó¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿ -´Ø¿ô̾¤òÆþ¤ì¤Æ¤ª¤¯¤È¤è¤¤¡£ -¥¨¥é¡¼ÈÖ¹æ¤Ï³°ÉôÊÑ¿ô +このメッセージを最大限活用するためには、引き数文字列にエラーが発生した +関数名を入れておくとよい。 +エラー番号は外部変数 .I errno -¤«¤é¼èÆÀ¤µ¤ì¤ë¡£ +から取得される。 .I errno -¤Ï¥¨¥é¡¼¤¬È¯À¸¤·¤¿»þ¤ËÀßÄꤵ¤ì¡¢ -À®¸ù¤·¤¿¸Æ¤Ó½Ð¤·¤Ç¤Ï¥¯¥ê¥¢¤µ¤ì¤Ê¤¤¡£ +はエラーが発生した時に設定され、 +成功した呼び出しではクリアされない。 -Âç°èÊÑ¿ô¤Î¥¨¥é¡¼¥ê¥¹¥È +大域変数のエラーリスト .IR sys_errlist "[]" -¤Ï +は .I errno -¤òź»ú¤È¤¹¤ëÇÛÎó¤Ç¡¢¤³¤ÎÇÛÎ󤫤é²þ¹Ô̵¤·¤Î¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬¼èÆÀ¤µ¤ì¤ë¡£ -¥Æ¡¼¥Ö¥ë¤Ç¤ÎºÇÂç¤Î¥á¥Ã¥»¡¼¥¸ÈÖ¹æ¤Ï +を添字とする配列で、この配列から改行無しのエラーメッセージが取得される。 +テーブルでの最大のメッセージ番号は .IR sys_nerr " \-1" -¤È¤Ê¤ë¡£ -¤³¤Î¥Æ¡¼¥Ö¥ë¤òľÀÜ»²¾È¤¹¤ëºÝ¤Ë¤ÏÃí°Õ¤¹¤ë¤³¤È¡£¤Ê¤¼¤Ê¤é¡¢¿·¤·¤¤¥¨¥é¡¼Èֹ椬 +となる。 +このテーブルを直接参照する際には注意すること。なぜなら、新しいエラー番号が .IR sys_errlist "[]" -¤ËÄɲúѤȤϸ¤é¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +に追加済とは限らないからである。 -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢Ä̾ÊÖ¤êÃͤȤ·¤Æ \-1 ¤¬Ê֤ꡢ +システムコールが失敗した場合、通常、返り値として \-1 が返り、 .I errno -¤Ë¥¨¥é¡¼¤ò¼±Ê̤¹¤ëÃͤ¬ÀßÄꤵ¤ì¤ë (ÀßÄꤵ¤ì¤ë¥¨¥é¡¼ÈÖ¹æ¤Ï +にエラーを識別する値が設定される (設定されるエラー番号は .I -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë)¡£ -¿¤¯¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤âƱÍͤÎÆ°ºî¤È¤Ê¤ë¡£ -´Ø¿ô +に記載されている)。 +多くのライブラリ関数も同様の動作となる。 +関数 .BR perror () -¤Ï¡¢¤³¤Î¥¨¥é¡¼¥³¡¼¥É¤Î²ÄÆɤʥá¥Ã¥»¡¼¥¸¤Ø¤ÎÊÑ´¹¤ò¹Ô¤¦¡£ +は、このエラーコードの可読なメッセージへの変換を行う。 .I errno -¤Ï¡¢¥é¥¤¥Ö¥é¥ê¸Æ¤Ó½Ð¤·¤¬À®¸ù¤·¤¿¸å¤Ë¤Ï̤ÄêµÁ¤Ç¤¢¤ë¤³¤È¤ËÃí°Õ¤¬É¬ÍפǤ¢¤ë: -¤½¤Î¸Æ¤Ó½Ð¤·¼«¿È¤ÏÀ®¸ù¤·¤¿¤È¤·¤Æ¤â¡¢ÆâÉô¤Ç¸Æ¤Ó½Ð¤·¤¿Â¾¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤¬ -¼ºÇÔ¤·¤Æ¡¢¤½¤Î·ë²Ì¤ò¤³¤ÎÊÑ¿ô¤ËÀßÄꤹ¤ë¤³¤È¤¬¤¢¤ë¤«¤é¤À¡£ -¤è¤Ã¤Æ¡¢¼ºÇÔ¤·¤¿¸Æ¤Ó½Ð¤·¤Îľ¸å¤Ë +は、ライブラリ呼び出しが成功した後には未定義であることに注意が必要である: +その呼び出し自身は成功したとしても、内部で呼び出した他のライブラリ関数が +失敗して、その結果をこの変数に設定することがあるからだ。 +よって、失敗した呼び出しの直後に .BR perror () -¤ò¸Æ¤Ð¤Ê¤¤¾ì¹ç¤Ë¤Ï +を呼ばない場合には .I errno -¤ÎÃͤò -Êݸ¤·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ½àµò -´Ø¿ô +の値を +保存しておかなければならない。 +.SH 準拠 +関数 .BR perror () -¤È³°ÉôÊÑ¿ô +と外部変数 .I errno .RB ( errno (3) -»²¾È) ¤Ï C89, 4.3BSD, POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ -³°ÉôÊÑ¿ô +参照) は C89, 4.3BSD, POSIX.1-2001 に準拠している。 +外部変数 .I sys_nerr -¤È +と .I sys_errlist -¤Ï BSD ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -³°ÉôÊÑ¿ô +は BSD に準拠している。 +.SH 注意 +外部変数 .I sys_nerr -¤È +と .I sys_errlist -¤Ï glibc ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ +は glibc で定義されているが、 .I -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +に含まれている。 .\" .B _BSD_SOURCE -.\" ¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë¤Î¤ß¡¢¤³¤ì¤é¤ÎÊÑ¿ô¤ÏÄêµÁ¤µ¤ì¤ë¡£ +.\" が定義された場合にのみ、これらの変数は定義される。 .\" .B _GNU_SOURCE -.\" ¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ï¡¢ +.\" が定義された場合は、 .\" .I _sys_nerr -.\" ¤È +.\" と .\" .I _sys_errlist -.\" ¤È¤¤¤¦¥·¥ó¥Ü¥ë¤¬Ä󶡤µ¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +.\" というシンボルが提供される。 +.SH 関連項目 .BR err (3), .BR errno (3), .BR error (3), diff --git a/release/man3/popen.3 b/release/man3/popen.3 index c471699a..1d2dbbfb 100644 --- a/release/man3/popen.3 +++ b/release/man3/popen.3 @@ -42,9 +42,9 @@ .\" Modified 2008-11-09, Akihiro MOTOKI, LDP v3.13 .\" .TH POPEN 3 2010-02-03 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -popen, pclose \- ¥×¥í¥»¥¹¤È¤ÎÆþÎÏ/½ÐÎÏÍѤΥѥ¤¥×¡¦¥¹¥È¥ê¡¼¥à -.SH ½ñ¼° +.SH 名前 +popen, pclose \- プロセスとの入力/出力用のパイプ・ストリーム +.SH 書式 .nf .B #include .sp @@ -54,9 +54,9 @@ popen, pclose \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .ad l .in .sp @@ -66,140 +66,140 @@ glibc _POSIX_C_SOURCE\ >=\ 2 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR popen () -´Ø¿ô¤Ï¡¢¥×¥í¥»¥¹¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£¶ñÂÎŪ¤Ë¤Ï¡¢ -¥Ñ¥¤¥×¤òÀ¸À®¤·¡¢¥Õ¥©¡¼¥¯¤ò¹Ô¤¤¡¢¥·¥§¥ë¤òµ¯Æ°¤¹¤ë¡£ -ÄêµÁ¤«¤éʬ¤«¤ë¤è¤¦¤Ë¡¢¥Ñ¥¤¥×¤Ï°ìÊý¸þ¤Ê¤Î¤Ç¡¢ +関数は、プロセスをオープンする。具体的には、 +パイプを生成し、フォークを行い、シェルを起動する。 +定義から分かるように、パイプは一方向なので、 .I type -°ú¤­¿ô¤Ë¤ÏÆɤ߹þ¤ß¤«½ñ¤­¹þ¤ß¤Î¤É¤Á¤é¤«°ìÊý¤À¤±¤ò»ØÄê¤Ç¤­¤ë -(ξÊý¤Ï»ØÄê¤Ç¤­¤Ê¤¤)¡£ -À¸À®¤µ¤ì¤ë¥¹¥È¥ê¡¼¥à¤Ï¡¢¤³¤Î»ØÄê¤ËÂбþ¤·¤Æ¡¢Æɤ߼è¤êÀìÍѤޤ¿¤Ï -½ñ¤­¹þ¤ßÀìÍѤΤ¤¤º¤ì¤«¤È¤Ê¤ë¡£ +引き数には読み込みか書き込みのどちらか一方だけを指定できる +(両方は指定できない)。 +生成されるストリームは、この指定に対応して、読み取り専用または +書き込み専用のいずれかとなる。 .PP .I command -°ú¤­¿ô¤Ï¡¢¥·¥§¥ë¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤ò´Þ¤à -NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤³¤Î¥³¥Þ¥ó¥É¤Ï +引き数は、シェルのコマンドラインを含む +NULL 終端された文字列へのポインタである。 +このコマンドは .B \-c -¥Õ¥é¥°¤òÍѤ¤¤Æ +フラグを用いて .I /bin/sh -¤ËÅϤµ¤ì¤ë¡£ -¥³¥Þ¥ó¥É¤Î²ò¼á¤Ï (¤â¤·É¬Íפʤé¤Ð) ¥·¥§¥ë¤Ë¤è¤Ã¤Æ¹Ô¤ï¤ì¤ë¡£ +に渡される。 +コマンドの解釈は (もし必要ならば) シェルによって行われる。 .I type -°ú¤­¿ô¤Ï¡¢NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¡¢ -Æɤ߹þ¤ß¤ò¼¨¤¹Ê¸»ú \(aqr\(aq ¤«¡¢½ñ¤­¹þ¤ß¤ò¼¨¤¹Ê¸»ú \(aqw\(aq ¤Î -¤É¤Á¤é¤«°ìÊý¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -glibc 2.9 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î°ú¤­¿ô¤Ëʸ»ú \(aqe\(aq ¤òÄɲäǻØÄê¤Ç¤­¤ë¡£ -ʸ»ú \(aqe\(aq ¤ò»ØÄꤹ¤ë¤È¡¢ -Âбþ¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤ª¤¤¤Æ¡¢ -close-on-exec ¥Õ¥é¥° +引き数は、NULL 終端された文字列へのポインタで、 +読み込みを示す文字 \(aqr\(aq か、書き込みを示す文字 \(aqw\(aq の +どちらか一方を指定しなければならない。 +glibc 2.9 以降では、この引き数に文字 \(aqe\(aq を追加で指定できる。 +文字 \(aqe\(aq を指定すると、 +対応するファイルディスクリプタにおいて、 +close-on-exec フラグ .RB ( FD_CLOEXEC ) -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ -¤³¤ì¤¬Ìò¤ËΩ¤ÄÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +がセットされる。 +これが役に立つ理由については、 .BR open (2) -¤Î +の .B O_CLOEXEC -¥Õ¥é¥°¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ +フラグの説明を参照のこと。 .PP .BR popen () -¤«¤é¤ÎÊÖ¤êÃͤϡ¢Ä̾ï¤Îɸ½à I/O ¥¹¥È¥ê¡¼¥à¤ÈƱ¤¸¤Ç¤¢¤ë¤¬¡¢ +からの返り値は、通常の標準 I/O ストリームと同じであるが、 .BR fclose (3) -¤Ç¤Ï¤Ê¤¯ +ではなく .BR pclose () -¤ÇÊĤ¸¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¤³¤È¤À¤±¤¬°Û¤Ê¤ë¡£ -¤³¤Î¥¹¥È¥ê¡¼¥à¤Ø½ñ¤­¹þ¤ó¤À·ë²Ì¤Ï¥³¥Þ¥ó¥É¤Îɸ½àÆþÎϤ˽ñ¤­¹þ¤Þ¤ì¤ë¡£ -¤½¤·¤Æ¡¢¥³¥Þ¥ó¥É¤Îɸ½à½ÐÎϤϡ¢ -¥³¥Þ¥ó¥É¤½¤Î¤â¤Î¤¬ÃÖ¤­´¹¤ï¤Ã¤Æ¤·¤Þ¤ï¤Ê¤¤¸Â¤ê¡¢ +で閉じなくてはならないことだけが異なる。 +このストリームへ書き込んだ結果はコマンドの標準入力に書き込まれる。 +そして、コマンドの標準出力は、 +コマンドそのものが置き換わってしまわない限り、 .BR popen () -¤ò¸Æ¤ó¤À¥×¥í¥»¥¹¤Îɸ½à½ÐÎϤÈƱ¤¸¤³¤È¤Ë¤Ê¤ë¡£ -µÕ¤Ë¡¢"popened" +を呼んだプロセスの標準出力と同じことになる。 +逆に、"popened" .RB ( popen () -¤Ë¤è¤Ã¤Æ³«¤«¤ì¤¿) ¥¹¥È¥ê¡¼¥à¤«¤é¤ÎÆɤ߹þ¤ß¤Ï¡¢ -¤½¤Î¥³¥Þ¥ó¥É¤Îɸ½à½ÐÎϤòÆɤ߹þ¤à¤³¤È¤Ë¤Ê¤ë¡£ -¤½¤·¤Æ¡¢¤½¤Î¥³¥Þ¥ó¥É¤Îɸ½àÆþÎÏ¤Ï +によって開かれた) ストリームからの読み込みは、 +そのコマンドの標準出力を読み込むことになる。 +そして、そのコマンドの標準入力は .BR popen () -¤ò¸Æ¤ó¤À¥×¥í¥»¥¹¤Îɸ½àÆþÎϤÈƱ°ì¤Ç¤¢¤ë¡£ +を呼んだプロセスの標準入力と同一である。 .PP -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +デフォルトでは、 .BR popen () -¤Î½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Ï´°Á´¤Ë¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤ë¤³¤È¤ËÃí°Õ¤·¤è¤¦¡£ +の出力ストリームは完全にバッファリングされることに注意しよう。 .PP .BR pclose () -´Ø¿ô¤Ï¡¢(¥Ñ¥¤¥×¤Ë) ´ØÏ¢¤Å¤±¤é¤ì¤¿¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤Î¤òÂÔ¤Á¡¢ +関数は、(パイプに) 関連づけられたプロセスが終了するのを待ち、 .BR wait4 (2) -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤¿¥³¥Þ¥ó¥É¤Î½ªÎ»¾õÂÖ¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ +によって返されたコマンドの終了状態を返す。 +.SH 返り値 .BR popen () -´Ø¿ô¤Ï¡¢ +関数は、 .BR fork (2) -¤Þ¤¿¤Ï +または .BR pipe (2) -¸Æ¤Ó½Ð¤·¤¬¼ºÇÔ¤·¤¿¾ì¹ç¤ä¡¢ -¥á¥â¥ê³ä¤êÅö¤Æ¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ NULL ¤òÊÖ¤¹¡£ +呼び出しが失敗した場合や、 +メモリ割り当てができなかった場合、 NULL を返す。 .PP .BR pclose () -´Ø¿ô¤Ï¡¢ +関数は、 .BR wait4 (2) -¤¬¥¨¥é¡¼¤òÊÖ¤·¤¿¤ê¡¢²¿¤«Â¾¤Î¥¨¥é¡¼¤¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç¡¢ -\-1 ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +がエラーを返したり、何か他のエラーが見つかった場合、 +\-1 を返す。 +.SH エラー .BR popen () -´Ø¿ô¤Ï¡¢¥á¥â¥ê¥¢¥í¥±¡¼¥·¥ç¥ó¤Ë¼ºÇÔ¤·¤Æ¤â +関数は、メモリアロケーションに失敗しても .I errno -¤ò¥»¥Ã¥È¤·¤Ê¤¤¡£ +をセットしない。 .BR popen () -¤¬Ãæ¤Ç¸Æ¤Ó½Ð¤¹ +が中で呼び出す .BR fork (2) -¤ä +や .BR pipe (2) -¤¬¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ +が失敗した場合には、 .I errno -¤¬Å¬Àڤ˥»¥Ã¥È¤µ¤ì¤ë¡£ -°ú¤­¿ô +が適切にセットされる。 +引き数 .I type -¤¬Ìµ¸ú¤Ç¤¢¤ê¡¢¤³¤Î¾õÂÖ¤¬¸¡ÃΤµ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ +が無効であり、この状態が検知された場合には、 .I errno -¤¬ +が .B EINVAL -¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ +にセットされる。 .PP .BR pclose () -¤¬¡¢»Ò¥×¥í¥»¥¹¤Î¾õÂÖ¤ò¼èÆÀ¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ +が、子プロセスの状態を取得できなかった場合、 .I errno -¤¬ +が .B ECHILD -¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ -.SH ½àµò +にセットされる。 +.SH 準拠 POSIX.1-2001. .I type -¤Ë»ØÄê¤Ç¤­¤ë \(aqe\(aq ¤Ï Linux ¤Ç¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH ¥Ð¥° -Æɤ߹þ¤ß¤Î¤¿¤á¤Ë³«¤«¤ì¤¿¥³¥Þ¥ó¥É¤Îɸ½àÆþÎÏ¤Ï +に指定できる \(aqe\(aq は Linux での拡張である。 +.SH バグ +読み込みのために開かれたコマンドの標準入力は .BR popen (), -¤ò¸Æ¤ó¤À¥×¥í¥»¥¹¤È°ì½ï¤Ë¡¢¤½¤ÎÆɤ߼è¤ê°ÌÃÖ¤ò¶¦Í­¤¹¤ë¡£ -¤½¤Î¤¿¤á¡¢¤â¤È¤Î¥×¥í¥»¥¹¤¬¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤¿Æɤ߼è¤ê¤ò½ªÎ»¤·¤¿¤é¡¢ -¤½¤Î¥³¥Þ¥ó¥É¤ÎÆþÎÏ°ÌÃÖ¤ÏͽÁÛ¤µ¤ì¤¿¤â¤Î¤Ë¤Ï -¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -ƱÍͤˡ¢½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë³«¤«¤ì¤¿¥³¥Þ¥ó¥É¤«¤é¤Î½ÐÎϤϡ¢ -¤â¤È¤Î¥×¥í¥»¥¹¤Î½ÐÎϤȺ®¤¶¤ê¹ç¤¦¤³¤È¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¸å¼Ô¤Ï +を呼んだプロセスと一緒に、その読み取り位置を共有する。 +そのため、もとのプロセスがバッファリングされた読み取りを終了したら、 +そのコマンドの入力位置は予想されたものには +なっていないかもしれない。 +同様に、書き込みのために開かれたコマンドからの出力は、 +もとのプロセスの出力と混ざり合うことになるかもしれない。 +後者は .BR popen () -¤ÎÁ°¤Ë +の前に .BR fflush (3) -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ë¤è¤Ã¤Æ²óÈò²Äǽ¤Ç¤¢¤ë¡£ +を呼び出すことによって回避可能である。 .PP -¥·¥§¥ë¤Î¼Â¹Ô¤Î¼ºÇԤϡ¢ -¥·¥§¥ë¤¬¥³¥Þ¥ó¥É¤Î¼Â¹Ô¤Ë¼ºÇÔ¤·¤¿¤³¤È¤ä¡¢ -¥³¥Þ¥ó¥É¤¬¤¹¤°¤Ë½ªÎ»¤·¤Æ¤·¤Þ¤Ã¤¿¤³¤È¤È¡¢¶èÊ̤¬¤Ä¤«¤Ê¤¤¡£ -Í£°ì¤Î¥Ò¥ó¥È¤Ï½ªÎ»¾õÂÖ¤¬ 127 ¤Ë¤Ê¤ë¤³¤È¤Ç¤¢¤ë¡£ -.\" .SH ÍúÎò +シェルの実行の失敗は、 +シェルがコマンドの実行に失敗したことや、 +コマンドがすぐに終了してしまったことと、区別がつかない。 +唯一のヒントは終了状態が 127 になることである。 +.\" .SH 履歴 .\" .BR popen () -.\" ´Ø¿ô¤È +.\" 関数と .\" .BR pclose () -.\" ´Ø¿ô¤Ï AT&T UNIX ¤Î Version 7 ¤«¤éƳÆþ¤µ¤ì¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +.\" 関数は AT&T UNIX の Version 7 から導入された。 +.SH 関連項目 .BR sh (1), .BR fork (2), .BR pipe (2), diff --git a/release/man3/posix_fallocate.3 b/release/man3/posix_fallocate.3 index ee609cef..bf540001 100644 --- a/release/man3/posix_fallocate.3 +++ b/release/man3/posix_fallocate.3 @@ -26,9 +26,9 @@ .\" Updated 2010-04-11, Akihiro MOTOKI , LDP v3.24 .\" .TH POSIX_FALLOCATE 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -posix_fallocate \- ¥Õ¥¡¥¤¥ë¤Î¥¹¥Ú¡¼¥¹¤ò³ÎÊݤ¹¤ë -.SH ½ñ¼° +.SH 名前 +posix_fallocate \- ファイルのスペースを確保する +.SH 書式 .nf .B #include .sp @@ -37,9 +37,9 @@ posix_fallocate \- .sp .ad l .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR posix_fallocate (): @@ -47,84 +47,84 @@ glibc _XOPEN_SOURCE\ >=\ 600 || _POSIX_C_SOURCE\ >=\ 200112L .RE .ad -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR posix_fallocate () -¤Ï¡¢¥Ç¥£¥¹¥¯¥ê¥×¥¿ +は、ディスクリプタ .I fd -¤Ç»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡¢¥Ç¥£¥¹¥¯¥¹¥Ú¡¼¥¹¤ò³Î¼Â¤Ë³ÎÊݤ¹¤ë¡£ -¥Ç¥£¥¹¥¯¥¹¥Ú¡¼¥¹¤Ï +で参照されるファイルに対して、ディスクスペースを確実に確保する。 +ディスクスペースは .I offset -¤«¤é»Ï¤Þ¤ë +から始まる .I len -¥Ð¥¤¥È¤ÎÈϰϤΥХ¤¥È¤Ç¤¢¤ë¡£ +バイトの範囲のバイトである。 .BR posix_fallocate () -¤Î¸Æ¤Ó½Ð¤·¤¬À®¸ù¤·¤¿¸å¡¢»ØÄꤵ¤ì¤¿ÈϰϤΥХ¤¥È¤ËÂФ¹¤ë½ñ¤­¹þ¤ß¤Ï¡¢ -¥Ç¥£¥¹¥¯¥¹¥Ú¡¼¥¹¤ÎÉÔ­¤Ç¼ºÇÔ¤·¤Ê¤¤¤³¤È¤¬Êݾڤµ¤ì¤ë¡£ +の呼び出しが成功した後、指定された範囲のバイトに対する書き込みは、 +ディスクスペースの不足で失敗しないことが保証される。 -¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤¬ +ファイルのサイズが .IR offset + len -¤è¤ê¾®¤µ¤¤¾ì¹ç¡¢¥Õ¥¡¥¤¥ë¤Ï¤³¤Î¥µ¥¤¥º¤Ë¤Ê¤ë¤è¤¦¤Ë³ÈÂ礵¤ì¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤ÏÊѤï¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +より小さい場合、ファイルはこのサイズになるように拡大される。 +それ以外の場合、ファイルサイズは変わらない。 +.SH 返り値 .BR posix_fallocate () -¤ÏÀ®¸ù¤·¤¿¾ì¹ç¡¢0 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢¥¨¥é¡¼ÈÖ¹æ¤òÊÖ¤¹¡£ +は成功した場合、0 を返す。 +失敗した場合、エラー番号を返す。 .I errno -¤¬ÀßÄꤵ¤ì¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -.SH ¥¨¥é¡¼ +が設定されない点に注意すること。 +.SH エラー .TP .B EBADF .I fd -¤¬Í­¸ú¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ -¤Þ¤¿¤Ï½ñ¤­¹þ¤ßÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +が有効なディスクリプタでない。 +または書き込み用にオープンされていない。 .TP .B EFBIG .I offset+len -¤¬ºÇÂç¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤òĶ¤¨¤Æ¤¤¤ë¡£ +が最大ファイルサイズを超えている。 .TP .B EINVAL .I offset -¤¬ 0 ̤Ëþ¤À¤Ã¤¿¤«¡¢ +が 0 未満だったか、 .I len -¤¬ 0 °Ê²¼¤À¤Ã¤¿¡£ +が 0 以下だった。 .TP .B ENODEV .I fd -¤¬Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤È¤·¤Æ»²¾È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +が通常のファイルとして参照されていない。 .TP .B ENOSPC .I fd -¤Ç»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¥Ç¥Ð¥¤¥¹¤Ë¡¢½½Ê¬¤Ê¥¹¥Ú¡¼¥¹¤¬»Ä¤Ã¤Æ¤¤¤Ê¤¤¡£ +で参照されるファイルが存在するデバイスに、十分なスペースが残っていない。 .TP .B ESPIPE .I fd -¤¬¥Ñ¥¤¥×¤ò»²¾È¤·¤Æ¤¤¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +がパイプを参照している。 +.SH バージョン .BR posix_fallocate () -¤Ï glibc 2.1.94 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH ½àµò +は glibc 2.1.94 以降で利用可能である。 +.SH 準拠 POSIX.1-2001. -POSIX.1-2008 ¤Ç¤Ï¡¢ +POSIX.1-2008 では、 .I len -¤¬ 0 ¤Î¾ì¹ç¡¢¤â¤·¤¯¤Ï +が 0 の場合、もしくは .I offset -¤¬ 0 ̤Ëþ¤Î¾ì¹ç¡¢ +が 0 未満の場合、 .B EINVAL -¥¨¥é¡¼¤òÊÖ¤¹¤â¤Î¤È¤µ¤ì¤Æ¤¤¤ë¡£ -POSIX.1-2001 ¤Ç¤Ï¡¢ +エラーを返すものとされている。 +POSIX.1-2001 では、 .I len -¤¬ 0 ̤Ëþ¤Î¾ì¹ç¡¢¤â¤·¤¯¤Ï +が 0 未満の場合、もしくは .I offset -¤¬ 0 ̤Ëþ¤Î¾ì¹ç¡¢ +が 0 未満の場合、 .B EINVAL -¥¨¥é¡¼¤òÊÖ¤¹¤â¤Î¤È¤µ¤ì¤Æ¤¤¤ë¡£¤Þ¤¿¡¢ +エラーを返すものとされている。また、 .I len -¤¬ 0 ¤Î¾ì¹ç¡¢ +が 0 の場合、 .B EINVAL -¥¨¥é¡¼¤òÊÖ¤·¤Æ¤â¤è¤¤¤È¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +エラーを返してもよいとされている。 +.SH 関連項目 .BR fallocate (2), .BR lseek (2), .BR posix_fadvise (2) diff --git a/release/man3/posix_memalign.3 b/release/man3/posix_memalign.3 index 9e692dae..bff70831 100644 --- a/release/man3/posix_memalign.3 +++ b/release/man3/posix_memalign.3 @@ -31,14 +31,14 @@ .\" Updated 2005-11-19, Akihiro MOTOKI .\" Updated 2010-04-18, Akihiro MOTOKI, LDP v3.24 .\" -.\"WORD: obsolete Çѻߤµ¤ì¤¿ -.\"WORD: a multiple of ¡Á¤ÎÇÜ¿ô -.\"WORD: a power of two 2 ¤Î¤Ù¤­¾è +.\"WORD: obsolete 廃止された +.\"WORD: a multiple of 〜の倍数 +.\"WORD: a power of two 2 のべき乗 .\" .TH POSIX_MEMALIGN 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -posix_memalign, memalign, valloc \- ¥¢¥é¥¤¥ó¥á¥ó¥È¤µ¤ì¤¿¥á¥â¥ê¤Î³ä¤êÅö¤Æ¤ò¹Ô¤¦ -.SH ½ñ¼° +.SH 名前 +posix_memalign, memalign, valloc \- アラインメントされたメモリの割り当てを行う +.SH 書式 .nf .B #include .sp @@ -51,9 +51,9 @@ posix_memalign, memalign, valloc \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -67,7 +67,7 @@ _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .PD 0 .RS 4 .TP 4 -glibc 2.12 °Ê¹ß: +glibc 2.12 以降: .nf _BSD_SOURCE || (_XOPEN_SOURCE\ >=\ 500 || @@ -76,189 +76,189 @@ _BSD_SOURCE || .br .fi .TP -glibc 2.12 ¤è¤êÁ°: +glibc 2.12 より前: _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .RE .PD .ad b -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR posix_memalign () -¤Ï¡¢ +は、 .I size -¥Ð¥¤¥È¤Î¥á¥â¥ê¤ò³ä¤êÅö¤Æ¡¢³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤Î¥¢¥É¥ì¥¹¤ò +バイトのメモリを割り当て、割り当てられたメモリのアドレスを .I "*memptr" -¤ËÀßÄꤹ¤ë¡£ -³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤Î¥¢¥É¥ì¥¹¤Ï +に設定する。 +割り当てられたメモリのアドレスは .I "alignment" -¤ÎÇÜ¿ô¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Ï¤º¤Ç¤¢¤ë¡£ +の倍数になっているはずである。 .I "alignment" -¤Ï 2 ¤Î¤Ù¤­¾è¤Ç¡¢¤«¤Ä +は 2 のべき乗で、かつ .IR "sizeof(void *)" -¤ÎÇÜ¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +の倍数でなければならない。 .I size -¤¬ 0 ¤Î¾ì¹ç¡¢ +が 0 の場合、 .BR posix_memalign () -¤Ï NULL ¤«°ì°Õ¤Ê¥Ý¥¤¥ó¥¿ÃͤòÊÖ¤¹¡£ -¤³¤Î¥Ý¥¤¥ó¥¿Ãͤϡ¢¸å¤Ç +は NULL か一意なポインタ値を返す。 +このポインタ値は、後で .BR free (3) -¤ËÌäÂê¤Ê¤¯ÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¡£ +に問題なく渡すことができる。 -Çѻߤµ¤ì¤¿´Ø¿ô¤Ç¤¢¤ë +廃止された関数である .BR memalign () -¤Ï¡¢ +は、 .I size -¥Ð¥¤¥È¤Î¥á¥â¥ê¤ò³ä¤êÅö¤Æ¡¢³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥á¥â¥ê¤Î¥¢¥É¥ì¥¹¤Ï +バイトのメモリを割り当て、割り当てられたメモリへのポインタを返す。 +メモリのアドレスは .I "boundary" -¤ÎÇÜ¿ô¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Ï¤º¤Ç¤¢¤ë¡£ +の倍数になっているはずである。 .I "boundary" -¤Ï 2 ¤Î¤Ù¤­¾è¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は 2 のべき乗でなければならない。 .\" The behavior of memalign() for size==0 is as for posix_memalign() .\" but no standards govern this. -Çѻߤµ¤ì¤¿´Ø¿ô¤Ç¤¢¤ë +廃止された関数である .BR valloc () -¤Ï +は .I size -¥Ð¥¤¥È¤Î¥á¥â¥ê¤ò³ä¤êÅö¤Æ¡¢³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥á¥â¥ê¤Î¥¢¥É¥ì¥¹¤Ï¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Ï¤º¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï +バイトのメモリを割り当て、割り当てられたメモリへのポインタを返す。 +メモリのアドレスはページサイズの倍数になっているはずである。 +これは .I "memalign(sysconf(_SC_PAGESIZE),size)" -¤ÈÅù²Á¤Ç¤¢¤ë¡£ +と等価である。 -.\" motoki: be not zeroed ¤Ã¤Æ¤É¤¦¤¤¤¦°ÕÌ£¡© -3 ¤Ä¤Î´Ø¿ô¤Ï¤¤¤º¤ì¤â¥á¥â¥ê¤Î¥¼¥í¥¯¥ê¥¢¤ò¹Ô¤ï¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +.\" motoki: be not zeroed ってどういう意味? +3 つの関数はいずれもメモリのゼロクリアを行わない。 +.SH 返り値 .BR memalign () -¤È +と .BR valloc () -¤Ï³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -³ä¤êÅö¤Æ¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +は割り当てられたメモリへのポインタを返す。 +割り当てに失敗した場合は NULL を返す。 .BR posix_memalign () -¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤·¡¢ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¼¡¤Î¥»¥¯¥·¥ç¥ó¤Ëµ­ºÜ¤µ¤ì¤¿¥¨¥é¡¼ÃͤΤ¤¤º¤ì¤«¤òÊÖ¤¹¡£ +は成功した場合は 0 を返し、 +失敗した場合は次のセクションに記載されたエラー値のいずれかを返す。 .I errno -¤Ï¥»¥Ã¥È¤µ¤ì¤Ê¤¤¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -.SH ¥¨¥é¡¼ +はセットされないことに注意すること。 +.SH エラー .TP .B EINVAL .I alignment -°ú¤­¿ô¤¬ 2 ¤Î¤Ù¤­¾è¤Ç¤Ê¤«¤Ã¤¿¤«¡¢ +引き数が 2 のべき乗でなかったか、 .IR "sizeof(void *)" -¤ÎÇÜ¿ô¤Ç¤Ê¤«¤Ã¤¿¡£ +の倍数でなかった。 .TP .B ENOMEM -³ä¤êÅö¤ÆÍ×µá¤òËþ¤¿¤¹¤Î¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤«¤Ã¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +割り当て要求を満たすのに十分なメモリがなかった。 +.SH バージョン .BR memalign () -¤È +と .BR valloc () -¤Ï¤¹¤Ù¤Æ¤Î Linux libc ¥é¥¤¥Ö¥é¥ê¤Ç»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ +はすべての Linux libc ライブラリで使用可能である。 .BR posix_memalign () -¤Ï glibc 2.1.91 °Ê¹ß¤Ç»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH ½àµò -´Ø¿ô +は glibc 2.1.91 以降で使用可能である。 +.SH 準拠 +関数 .BR valloc () -¤Ï 3.0BSD ¤ÇÅо줷¤¿¡£4.3BSD ¤Ç¤ÏÇѻߤµ¤ì¤¿¤Èµ­ºÜ¤µ¤ì¤Æ¤ª¤ê¡¢ -SUSv2 ¤Ç¤Ï²áµî¤Î̾»Ä¤À¤Èµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ -POSIX.1-2001 ¤Ë¤Ï¤â¤Ï¤ä¸ºß¤·¤Ê¤¤¡£ -´Ø¿ô +は 3.0BSD で登場した。4.3BSD では廃止されたと記載されており、 +SUSv2 では過去の名残だと記載されている。 +POSIX.1-2001 にはもはや存在しない。 +関数 .BR memalign () -¤Ï SunOS 4.1.3 ¤ÇÅо줷¤¿¤¬¡¢4.4BSD ¤Ë¤Ï¤Ê¤¤¡£ -´Ø¿ô +は SunOS 4.1.3 で登場したが、4.4BSD にはない。 +関数 .BR posix_memalign () -¤Ï POSIX.1d ¤ËͳÍ褹¤ë¡£ -.SS ¥Ø¥Ã¥À +は POSIX.1d に由来する。 +.SS ヘッダ .BR posix_memalign () -¤ÎÀë¸À¤ò \fI\fP ¤Ç¹Ô¤¦¤³¤È¤Ë´Ø¤·¤Æ¤Ï¡¢ -³§¤Î°Õ¸«¤¬°ìÃפ·¤Æ¤¤¤ë¡£ +の宣言を \fI\fP で行うことに関しては、 +皆の意見が一致している。 -¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +いくつかのシステムでは、 .BR memalign () -¤Ï \fI\fP ¤Ç¤Ï¤Ê¤¯ \fI\fP ¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤ë¡£ +は \fI\fP ではなく \fI\fP で宣言されている。 -SUSv2 ¤Ë¤è¤ë¤È¡¢ +SUSv2 によると、 .BR valloc () -¤Ï +は .I -¤ÇÀë¸À¤µ¤ì¤ë¡£ -libc4,5 ¤ä glibc ¤Ç¤Ï +で宣言される。 +libc4,5 や glibc では .I -¤ÇÀë¸À¤µ¤ì¤Æ¤ª¤ê¡¢ -¤µ¤é¤Ë +で宣言されており、 +さらに .I -¤Ç¤âÀë¸À¤µ¤ì¤ë¤³¤È¤â¤¢¤ë -(¶ñÂÎŪ¤Ë¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«¤Î¾ì¹ç: +でも宣言されることもある +(具体的には以下のいずれかの場合: .B _GNU_SOURCE -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡¢ +が定義されている、 .B _BSD_SOURCE -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡¢ -glibc ¤Ç +が定義されている、 +glibc で .B _XOPEN_SOURCE_EXTENDED -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡¢ -glibc ¤Ç +が定義されている、 +glibc で .B _XOPEN_SOURCE -¤¬ 500 ¤è¤ê¾®¤µ¤¯¤Ê¤¤ÃͤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ -.SH Ãí°Õ -¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥¢¥é¥¤¥ó¥á¥ó¥È¤Ë´Ø¤·¤ÆÀ©¸Â¤¬¤¢¤ë¡£Î㤨¤Ð¡¢ -¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤ËÂФ¹¤ë¥À¥¤¥ì¥¯¥È I/O ¤Ë»ÈÍѤ¹¤ë¥Ð¥Ã¥Õ¥¡¤Ë¤Ï -¥¢¥é¥¤¥ó¥á¥ó¥È¤Ë´Ø¤¹¤ëÀ©¸Â¤¬¤¢¤ë¡£ -POSIX ¤Ç¤Ï¡¢¤É¤ó¤Ê¥¢¥é¥¤¥ó¥á¥ó¥È¤¬É¬Íפ«¤òÃΤ뤿¤á¤Ë +が 500 より小さくない値に定義されている)。 +.SH 注意 +多くのシステムでは、アラインメントに関して制限がある。例えば、 +ブロックデバイスに対するダイレクト I/O に使用するバッファには +アラインメントに関する制限がある。 +POSIX では、どんなアラインメントが必要かを知るために .I "pathconf(path,_PC_REC_XFER_ALIGN)" -¥³¡¼¥ë¤òµ¬Äꤷ¤Æ¤¤¤ë¡£¤³¤³¤Ç +コールを規定している。ここで .BR posix_memalign () -¤ò»È¤¦¤È¡¢¤³¤ÎɬÍ×¾ò·ï¤òËþ¤¿¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +を使うと、この必要条件を満たすことができる。 .BR posix_memalign () -¤Ï +は .I alignment -¤¬¾å¤Ç¾ÜºÙ¤Ë½Ò¤Ù¤¿É¬Í×¾ò·ï¤òËþ¤¿¤¹¤«¤É¤¦¤«¤ò³Î¤«¤á¤ë¡£ +が上で詳細に述べた必要条件を満たすかどうかを確かめる。 .BR memalign () -¤Ï +は .I boundary -°ú¤­¿ô¤¬Àµ¤·¤¤¤«¤É¤¦¤«¤Î³Îǧ¤ò¹Ô¤ï¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ +引き数が正しいかどうかの確認を行わないかもしれない。 -POSIX ¤Ç¤Ï +POSIX では .BR posix_memalign () -¤Ë¤è¤Ã¤Æ³ÍÆÀ¤·¤¿¥á¥â¥ê¤Ï +によって獲得したメモリは .BR free (3) -¤ò»È¤Ã¤Æ²òÊü¤¹¤ë¤³¤È¤¬¤Ç¤­¤ëɬÍפ¬¤¢¤ë¡£ -¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ç¤Ï +を使って解放することができる必要がある。 +いくつかのシステムでは .BR memalign () -¤ä +や .BR valloc () -¤Ç³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤òºÆÍøÍѤ¹¤ë¼êÃʤ¬Ä󶡤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.\" motoki: while ¤ÎÁ°¸å¤Î¤Ä¤Ê¤¬¤ê¤Ï¤³¤ì¤Ç¤¤¤¤¡© -(¤Ê¤¼¤Ê¤é +で割り当てられたメモリを再利用する手段が提供されていない。 +.\" motoki: while の前後のつながりはこれでいい? +(なぜなら .BR free (3) -¤ËÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¤Î¤Ï +に渡すことができるのは .BR malloc (3) -¤«¤é¼õ¤±¼è¤Ã¤¿¥Ý¥¤¥ó¥¿¤À¤±¤À¤¬¡¢ -Î㤨¤Ð +から受け取ったポインタだけだが、 +例えば .BR memalign () -¤Ï +は .BR malloc (3) -¤ò¸Æ¤Ó½Ð¤·¡¢ÆÀ¤¿Ãͤò¥¢¥é¥¤¥ó¥á¥ó¥È¤·¤Æ¤·¤Þ¤¦¤«¤é¤Ç¤¢¤ë) +を呼び出し、得た値をアラインメントしてしまうからである) .\" Other systems allow passing the result of .\" .BR valloc () .\" to .\" .BR free (3), .\" but not to .\" .BR realloc (3). -glibc ¤Î¼ÂÁõ¤Ç¤Ï¡¢ -¤³¤³¤Ë½Ò¤Ù¤¿ 3 ¤Ä¤Î´Ø¿ô¤Î¤¤¤º¤ì¤Ç³ÍÆÀ¤·¤¿¥á¥â¥ê¤â +glibc の実装では、 +ここに述べた 3 つの関数のいずれで獲得したメモリも .BR free (3) -¤ÇºÆÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +で再利用することができる。 -glibc ¤Î +glibc の .BR malloc (3) -¤Ï¾ï¤Ë 8 ¥Ð¥¤¥È¤Ë¥¢¥é¥¤¥ó¥á¥ó¥È¤µ¤ì¤¿¥á¥â¥ê¥¢¥É¥ì¥¹¤òÊÖ¤¹¤Î¤Ç¡¢ -¤³¤³¤Ç½Ò¤Ù¤¿´Ø¿ô¤¬É¬Íפˤʤë¤Î¤Ï -8 ¥Ð¥¤¥È¤è¤ê¤âÂ礭¤Ê¥¢¥é¥¤¥ó¥á¥ó¥È¤¬É¬Íפʾì¹ç¤À¤±¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +は常に 8 バイトにアラインメントされたメモリアドレスを返すので、 +ここで述べた関数が必要になるのは +8 バイトよりも大きなアラインメントが必要な場合だけである。 +.SH 関連項目 .BR brk (2), .BR getpagesize (2), .BR free (3), diff --git a/release/man3/posix_openpt.3 b/release/man3/posix_openpt.3 index 2770a3e2..b813c79f 100644 --- a/release/man3/posix_openpt.3 +++ b/release/man3/posix_openpt.3 @@ -28,9 +28,9 @@ .\" by Yuichi SATO .\" .TH POSIX_OPENPT 3 2010-10-04 "" "Linux Programmer's Manual" -.SH ̾Á° -posix_openpt \- µ¿»÷üËö (pseudoterminal) ¥Ç¥Ð¥¤¥¹¤ò¥ª¡¼¥×¥ó¤¹¤ë -.SH ½ñ¼° +.SH 名前 +posix_openpt \- 疑似端末 (pseudoterminal) デバイスをオープンする +.SH 書式 .nf .B #include .B #include @@ -39,52 +39,52 @@ posix_openpt \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l .BR posix_openpt (): _XOPEN_SOURCE\ >=\ 600 .ad b -.SH ÀâÌÀ +.SH 説明 .BR posix_openpt () -´Ø¿ô¤Ï»ÈÍѤµ¤ì¤Æ¤¤¤Ê¤¤µ¿»÷üËö¥Þ¥¹¥¿¥Ç¥Ð¥¤¥¹¤ò¥ª¡¼¥×¥ó¤·¡¢ -¤½¤Î¥Ç¥Ð¥¤¥¹¤ò»²¾È¤¹¤ë¤¿¤á¤Ë»È¤¦¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ +関数は使用されていない疑似端末マスタデバイスをオープンし、 +そのデバイスを参照するために使うファイルディスクリプタを返す。 .I flags -°ú¤­¿ô¤Ï¡¢°Ê²¼¤Î¥Õ¥é¥°¤Î¤¦¤Á 0 ¸Ä°Ê¾å¤Î OR ¤ò¤È¤Ã¤¿¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ë¡£ +引き数は、以下のフラグのうち 0 個以上の OR をとったビットマスクである。 .TP .B O_RDWR -Æɤ߽ñ¤­¤Î¤¿¤á¤Ë¥Ç¥Ð¥¤¥¹¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£ -ÉáÄ̤Ϥ³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¡£ +読み書きのためにデバイスをオープンする。 +普通はこのフラグを指定する。 .TP .B O_NOCTTY -¤³¤Î¥Ç¥Ð¥¤¥¹¤ò¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤È¤·¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +このデバイスをプロセスの制御端末としない。 +.SH 返り値 +成功した場合、 .BR posix_openpt () -¤ÏÉé¤Ç¤Ï¤Ê¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¤³¤ì¤Ï»ÈÍѤµ¤ì¤Æ¤¤¤Ê¤¤¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¦¤ÁºÇ¾®¤ÎÃͤǤ¢¤ë¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢¥¨¥é¡¼¤ò¼¨¤¹¤¿¤á¤Ë +は負ではないファイルディスクリプタを返す。 +これは使用されていないディスクリプタのうち最小の値である。 +失敗した場合、\-1 が返されて、エラーを示すために .I errno -¤¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が設定される。 +.SH エラー .BR open (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +を参照すること。 +.SH バージョン .BR posix_openpt () -¤Î glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.2.1 °Ê¹ß¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò +の glibc でのサポートはバージョン 2.2.1 以降で提供されている。 +.SH 準拠 .BR posix_openpt () -¤Ï UNIX 98 µ¿»÷üËö¥µ¥Ý¡¼¥È +は UNIX 98 疑似端末サポート .RB ( pts (4) -¤ò»²¾È) ¤Î°ìÉô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï POSIX.1-2001 ¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -¤³¤Î´Ø¿ô¤Ï POSIX ¤Ë¤ª¤¤¤ÆºÇ¶áºî¤é¤ì¤¿¤â¤Î¤Ç¤¢¤ë¡£ -System V (ÊÌ̾ UNIX 98) µ¿»÷üËö¤ò¥µ¥Ý¡¼¥È¤¹¤ë UNIX ¼ÂÁõ¤ÎÃæ¤Ë¤Ï¡¢ -¤³¤Î´Ø¿ô¤ò»ý¤¿¤Ê¤¤¤â¤Î¤â¤¢¤ë¤¬¡¢°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ´Êñ¤Ë¼ÂÁõ¤Ç¤­¤ë: +を参照) の一部である。 +この関数は POSIX.1-2001 で指定されている。 +.SH 注意 +この関数は POSIX において最近作られたものである。 +System V (別名 UNIX 98) 疑似端末をサポートする UNIX 実装の中には、 +この関数を持たないものもあるが、以下のようにして簡単に実装できる: .in +4n .nf @@ -95,7 +95,7 @@ posix_openpt(int flags) } .fi .in -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR open (2), .BR getpt (3), .BR grantpt (3), diff --git a/release/man3/pow.3 b/release/man3/pow.3 index 77bf35db..b3f31984 100644 --- a/release/man3/pow.3 +++ b/release/man3/pow.3 @@ -38,9 +38,9 @@ .\" Updated 2008-09-18, Akihiro MOTOKI .\" .TH POW 3 2010-09-12 "" "Linux Programmer's Manual" -.SH ̾Á° -pow, powf, powl \- Îß¾è´Ø¿ô -.SH ½ñ¼° +.SH 名前 +pow, powf, powl \- 累乗関数 +.SH 書式 .nf .B #include .sp @@ -51,12 +51,12 @@ pow, powf, powl \- .BI "long double powl(long double " x ", long double " y ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -70,143 +70,143 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR pow () -´Ø¿ô¤Ï \fIx\fP ¤Î \fIy\fP ¾è¤ÎÃͤòÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +関数は \fIx\fP の \fIy\fP 乗の値を返す。 +.SH 返り値 +成功すると、これらの関数は .I x -¤Î +の .I y -¾è¤ÎÃͤòÊÖ¤¹¡£ +乗の値を返す。 .I x -¤¬ 0 ̤Ëþ¤ÎÍ­¸ÂÃÍ¤Ç +が 0 未満の有限値で .I y -¤¬À°¿ô¤Ç¤Ê¤¤Í­¸ÂÃͤξì¹ç¡¢Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ +が整数でない有限値の場合、領域エラー (domain error) が発生し、 .\" The domain error is generated at least as far back as glibc 2.4 -NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +NaN が返される。 -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ -ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢ +結果がオーバーフローする場合、 +範囲エラー (range error) が発生し、 .\" The range error is generated at least as far back as glibc 2.4 -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +各関数はそれぞれ .BR HUGE_VAL , .BR HUGE_VALF , .BR HUGE_VALL -¤òÊÖ¤¹¡£ÊÖ¤êÃͤˤϿô³ØŪ¤ËÀµ¤·¤¤Éä¹æ¤¬ÉÕÍ¿¤µ¤ì¤ë¡£ +を返す。返り値には数学的に正しい符号が付与される。 -·ë²Ì¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤·¡¢¤½¤ÎÃͤ¬É½¸½²Äǽ¤Ç¤Ê¤¤¾ì¹ç¡¢ -ÈÏ°Ï¥¨¥é¡¼¤¬È¯À¸¤·¡¢ 0.0 ¤¬ÊÖ¤µ¤ì¤ë¡£ +結果がアンダーフローし、その値が表現可能でない場合、 +範囲エラーが発生し、 0.0 が返される。 .\" POSIX.1 does not specify the sign of the zero, .\" but http://sources.redhat.com/bugzilla/show_bug.cgi?id=2678 .\" points out that the zero has the wrong sign in some cases. -°Ê²¼¤Çµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ç¡¢ +以下で規定されていない場合で、 .I x -¤« +か .I y -¤¬ NaN ¤Î¾ì¹ç¡¢ÊÖ¤êÃÍ¤Ï NaN ¤È¤Ê¤ë¡£ +が NaN の場合、返り値は NaN となる。 .I x -¤¬ +1 ¤Î¾ì¹ç¡¢ +が +1 の場合、 .RI ( y -¤¬ NaN ¤Ç¤¢¤Ã¤¿¤È¤·¤Æ¤â) ÊÖ¤êÃÍ¤Ï 1.0 ¤È¤Ê¤ë¡£ +が NaN であったとしても) 返り値は 1.0 となる。 .I y -¤¬ 0 ¤Î¾ì¹ç¡¢ +が 0 の場合、 .RI ( x -¤¬ NaN ¤Ç¤¢¤Ã¤¿¤È¤·¤Æ¤â) ÊÖ¤êÃÍ¤Ï 1.0 ¤È¤Ê¤ë¡£ +が NaN であったとしても) 返り値は 1.0 となる。 .I x -¤¬ +0 (\-0) ¤Ç +が +0 (\-0) で .I y -¤¬ 0 ¤è¤êÂ礭¤Ê´ñ¿ô¤Î¾ì¹ç¡¢ÊÖ¤êÃÍ¤Ï +0 (\-0) ¤È¤Ê¤ë¡£ +が 0 より大きな奇数の場合、返り値は +0 (\-0) となる。 .I x -¤¬ 0 ¤Ç¡¢ +が 0 で、 .I y -¤¬ 0 ¤è¤êÂ礭¤¯´ñ¿ô¤Ç¤Ê¤¤¾ì¹ç¡¢ÊÖ¤êÃÍ¤Ï +0 ¤È¤Ê¤ë¡£ +が 0 より大きく奇数でない場合、返り値は +0 となる。 .I x -¤¬ \-1 ¤Ç¡¢ +が \-1 で、 .I y -¤¬Àµ¤Î̵¸ÂÂ礫Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ÊÖ¤êÃÍ¤Ï 1.0 ¤È¤Ê¤ë¡£ +が正の無限大か負の無限大の場合、返り値は 1.0 となる。 .I x -¤ÎÀäÂÐÃͤ¬ 1 ̤Ëþ¤Ç¡¢ +の絶対値が 1 未満で、 .I y -¤¬Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ÊÖ¤êÃͤÏÀµ¤Î̵¸ÂÂç¤È¤Ê¤ë¡£ +が負の無限大の場合、返り値は正の無限大となる。 .I x -ÀäÂÐÃͤ¬ 1 ¤è¤êÂ礭¤¯¡¢ +絶対値が 1 より大きく、 .I y -¤¬Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ÊÖ¤êÃÍ¤Ï +0 ¤È¤Ê¤ë¡£ +が負の無限大の場合、返り値は +0 となる。 .I x -¤ÎÀäÂÐÃͤ¬ 1 ̤Ëþ¤Ç¡¢ +の絶対値が 1 未満で、 .I y -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ÊÖ¤êÃÍ¤Ï +0 ¤È¤Ê¤ë¡£ +が正の無限大の場合、返り値は +0 となる。 .I x -¤ÎÀäÂÐÃͤ¬ 1 ¤è¤êÂ礭¤¯¡¢ +の絶対値が 1 より大きく、 .I y -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ÊÖ¤êÃͤÏÀµ¤Î̵¸ÂÂç¤È¤Ê¤ë¡£ +が正の無限大の場合、返り値は正の無限大となる。 .I x -¤¬Éé¤Î̵¸ÂÂç¤Ç¡¢ +が負の無限大で、 .I y -¤¬ 0 ¤è¤ê¾®¤µ¤¤´ñ¿ô¤Î¾ì¹ç¡¢ÊÖ¤êÃÍ¤Ï \-0 ¤È¤Ê¤ë¡£ +が 0 より小さい奇数の場合、返り値は \-0 となる。 .I x -¤¬Éé¤Î̵¸ÂÂç¤Ç¡¢ +が負の無限大で、 .I y -¤¬ 0 ¤è¤ê¾®¤µ¤¯´ñ¿ô¤Ç¤Ê¤¤¾ì¹ç¡¢ÊÖ¤êÃÍ¤Ï +0 ¤È¤Ê¤ë¡£ +が 0 より小さく奇数でない場合、返り値は +0 となる。 .I x -¤¬Éé¤Î̵¸ÂÂç¤Ç¡¢ +が負の無限大で、 .I y -¤¬ 0 ¤è¤êÂ礭¤¤´ñ¿ô¤Î¾ì¹ç¡¢ÊÖ¤êÃͤÏÉé¤Î̵¸ÂÂç¤È¤Ê¤ë¡£ +が 0 より大きい奇数の場合、返り値は負の無限大となる。 .I x -¤¬Éé¤Î̵¸ÂÂç¤Ç¡¢ +が負の無限大で、 .I y -¤¬ 0 ¤è¤êÂ礭¤¯´ñ¿ô¤Ç¤Ê¤¤¾ì¹ç¡¢ÊÖ¤êÃͤÏÀµ¤Î̵¸ÂÂç¤È¤Ê¤ë¡£ +が 0 より大きく奇数でない場合、返り値は正の無限大となる。 .I x -¤¬Àµ¤Î̵¸ÂÂç¤Ç¡¢ +が正の無限大で、 .I y -¤¬ 0 ̤Ëþ¤Î¾ì¹ç¡¢ÊÖ¤êÃÍ¤Ï +0 ¤È¤Ê¤ë¡£ +が 0 未満の場合、返り値は +0 となる。 .I x -¤¬Àµ¤Î̵¸ÂÂç¤Ç¡¢ +が正の無限大で、 .I y -¤¬ 0 ¤è¤êÂ礭¤¤¾ì¹ç¡¢ÊÖ¤êÃͤÏÀµ¤Î̵¸ÂÂç¤È¤Ê¤ë¡£ +が 0 より大きい場合、返り値は正の無限大となる。 .I x -¤¬ +0 ¤« \-0 ¤Ç¡¢ +が +0 か \-0 で、 .I y -¤¬ 0 ¤è¤ê¾®¤µ¤¤´ñ¿ô¤Î¾ì¹ç¡¢ -¶Ë¥¨¥é¡¼ (pole error) ¤¬È¯À¸¤·¡¢ÊÖ¤êÃÍ¤Ï +が 0 より小さい奇数の場合、 +極エラー (pole error) が発生し、返り値は .BR HUGE_VAL , .BR HUGE_VALF , .BR HUGE_VALL -¤È¤Ê¤ë¡£ +となる。 .I x -¤ÈƱ¤¸Éä¹æ¤¬ÉÕÍ¿¤µ¤ì¤ë¡£ +と同じ符号が付与される。 .I x -¤¬ +0 ¤« \-0 ¤Ç¡¢ +が +0 か \-0 で、 .I y -¤¬ 0 ¤è¤ê¾®¤µ¤¯´ñ¿ô¤Ç¤Ê¤¤¾ì¹ç¡¢ -¶Ë¥¨¥é¡¼¤¬È¯À¸¤·¡¢ +が 0 より小さく奇数でない場合、 +極エラーが発生し、 .\" The pole error is generated at least as far back as glibc 2.4 -ÊÖ¤êÃÍ¤Ï +返り値は .BR + HUGE_VAL , .BR + HUGE_VALF , .BR + HUGE_VALL -¤È¤Ê¤ë¡£ -.SH ¥¨¥é¡¼ +となる。 +.SH エラー .\" FIXME . review status of this error .\" longstanding bug report for glibc: .\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=369 @@ -227,96 +227,96 @@ NaN .\" pow(-1.5,DBL_MAX)=nan .\" EDOM FE_INVALID nan; fail-errno fail-except fail-result; .\" FAIL (expected: range-error-overflow (ERANGE, FE_OVERFLOW); +INF) -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -Îΰ襨¥é¡¼: \fIx\fP ¤¬Éé¤Ç¡¢\fIy\fP ¤¬À°¿ô¤Ç¤Ê¤¤Í­¸ÂÃÍ +領域エラー: \fIx\fP が負で、\fIy\fP が整数でない有限値 .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë¡£ -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP -¶Ë¥¨¥é¡¼: \fIx\fP ¤¬¥¼¥í¤Ç¡¢\fIy\fP ¤¬Éé +極エラー: \fIx\fP がゼロで、\fIy\fP が負 .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -0 ¤Ë¤è¤ë½ü»» (divide-by-zero) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +0 による除算 (divide-by-zero) 浮動小数点例外 .RB ( FE_DIVBYZERO ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ +範囲エラー: 結果がオーバーフロー .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼ +範囲エラー: 結果がアンダーフロー .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -¥¢¥ó¥À¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +アンダーフロー浮動小数点例外 .RB ( FE_UNDERFLOW ) -¤¬¾å¤¬¤ë¡£ -.SH ½àµò +が上がる。 +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ¥Ð¥° +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 +.SH バグ .\" .\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=6776 .\" or possibly 2.9, I haven't found the source code change .\" and I don't have a 2.9 system to test -glibc 2.9 ¤È¤½¤ì°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ -¶Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¡¢POSIX ¤ÇÍ׵ᤵ¤ì¤Æ¤¤¤ë +glibc 2.9 とそれ以前のバージョンでは、 +極エラーが発生した場合、POSIX で要求されている .B ERANGE -¤Ç¤Ï¤Ê¤¯ +ではなく .B EDOM -¤¬ +が .I errno -¤ËÀßÄꤵ¤ì¤ë¡£ -¥Ð¡¼¥¸¥ç¥ó 2.10 °Ê¹ß¤Î glibc ¤Ç¤Ï¡¢Àµ¤·¤¤Æ°ºî¤ò¤¹¤ë¡£ +に設定される。 +バージョン 2.10 以降の glibc では、正しい動作をする。 .I x -¤¬Éé¤Î¾ì¹ç¡¢Â礭¤ÊÀµÉé¤ÎÃͤΠ+が負の場合、大きな正負の値の .I y -¤¬Í¿¤¨¤é¤ì¤ë¤È¡¢´Ø¿ô¤Î·ë²Ì¤¬ NaN ¤È¤Ê¤ê¡¢ +が与えられると、関数の結果が NaN となり、 .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¡¢ -ÉÔÀµÉâÆ°¾®¿ôÅÀÎã³° +が設定され、 +不正浮動小数点例外 .RB ( FE_INVALID ) -¤¬È¯À¸¤¹¤ë¡£ -Î㤨¤Ð¡¢ +が発生する。 +例えば、 .BR pow () -¤Ç¤Ï¡¢ +では、 .I y -¤ÎÀäÂÐÃͤ¬Ìó 9.223373e18 ¤è¤êÂ礭¤¤¾ì¹ç¤Ë¤³¤Î¾õ¶·¤È¤Ê¤ë¡£ +の絶対値が約 9.223373e18 より大きい場合にこの状況となる。 .\" see bug http://sources.redhat.com/bugzilla/show_bug.cgi?id=3866 .\" and http://sources.redhat.com/bugzilla/show_bug.cgi?id=369 -glibc ¥Ð¡¼¥¸¥ç¥ó 2.3.2 °ÊÁ°¤Ç¤Ï¡¢ +glibc バージョン 2.3.2 以前では、 .\" FIXME . Actually, 2.3.2 is the earliest test result I have; so yet .\" to confirm if this error occurs only in 2.3.2. -¥¢¥ó¥À¡¼¥Õ¥í¡¼¤ä¥¢¥ó¥À¡¼¥Õ¥í¡¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¾ì¹ç¡¢ -glibc ¤Î +アンダーフローやアンダーフローのエラーが発生する場合、 +glibc の .BR pow () -¤Ï¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼Îã³°¤ä¥¢¥ó¥À¡¼¥Õ¥í¡¼Îã³°¤ò¾å¤²¤ë¤À¤±¤Ç¤Ê¤¯¡¢ -ÉÔÀµÉâÆ°¾®¿ôÅÀÎã³° +は、オーバーフロー例外やアンダーフロー例外を上げるだけでなく、 +不正浮動小数点例外 .RB ( FE_INVALID ) -¤ò´Ö°ã¤Ã¤ÆȯÀ¸¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を間違って発生する。 +.SH 関連項目 .BR cbrt (3), .BR cpow (3), .BR sqrt (3) diff --git a/release/man3/pow10.3 b/release/man3/pow10.3 index 87f3d2d0..c184cbda 100644 --- a/release/man3/pow10.3 +++ b/release/man3/pow10.3 @@ -26,11 +26,11 @@ .\" by Yuichi SATO .\" .TH POW10 3 2008-08-11 "" "Linux Programmer's Manual" -.SH ̾Á° -pow10, pow10f, pow10l \- Ä줬 10 ¤ÎÎß¾è´Ø¿ô -.SH ½ñ¼° +.SH 名前 +pow10, pow10f, pow10l \- 底が 10 の累乗関数 +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "double pow10(double " x ); @@ -40,18 +40,18 @@ pow10, pow10f, pow10l \- .BI "long double pow10l(long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lm\fP でリンクする。 +.SH 説明 .BR pow10 () -´Ø¿ô¤Ï 10 ¤Î \fIx\fP ¾è¤ÎÃͤòÊÖ¤¹¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò -¤³¤ì¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -¤³¤ì¤é¤Î´Ø¿ô¤Ï +関数は 10 の \fIx\fP 乗の値を返す。 +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 +これは GNU による拡張である。 +.SH 注意 +これらの関数は .BR exp10 (3) -¤Ç¥ê¥¹¥È¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤ÈƱ°ì¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +でリストされている関数と同一である。 +.SH 関連項目 .BR exp10 (3), .BR pow (3) diff --git a/release/man3/printf.3 b/release/man3/printf.3 index 1faf187a..035491f6 100644 --- a/release/man3/printf.3 +++ b/release/man3/printf.3 @@ -42,14 +42,14 @@ .\" Updated 2008-02-10, Akihiro MOTOKI , LDP v2.77 .\" Updated 2009-03-03, Akihiro MOTOKI , LDP v3.19 .\" -.\" WORD: conversion specifier ÊÑ´¹»ØÄê»Ò -.\" WORD: length modifier Ťµ½¤¾þ»Ò +.\" WORD: conversion specifier 変換指定子 +.\" WORD: length modifier 長さ修飾子 .\" .TH PRINTF 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, -vsnprintf \- »ØÄꤵ¤ì¤¿½ñ¼°¤ËÊÑ´¹¤·¤Æ½ÐÎϤò¹Ô¤¦ -.SH ½ñ¼° +vsnprintf \- 指定された書式に変換して出力を行う +.SH 書式 .B #include .sp .BI "int printf(const char *" format ", ...);" @@ -72,9 +72,9 @@ vsnprintf \- ", va_list " ap ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -88,137 +88,137 @@ or .I "cc -std=c99" .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR printf () -´Ø¿ô¥°¥ë¡¼¥×¤Ï¡¢°Ê²¼¤Ç½Ò¤Ù¤ë¤è¤¦¤Ë¡¢ +関数グループは、以下で述べるように、 .I format -¤Ë½¾¤Ã¤Æ½ÐÎϤòÀ¸À®¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +に従って出力を生成するものである。 .BR printf () -¤È +と .BR vprintf () -¤Ï½ÐÎϤò +は出力を .I stdout -(ɸ½à½ÐÎÏ¥¹¥È¥ê¡¼¥à) ¤Ë½ñ¤­½Ð¤¹¡£ +(標準出力ストリーム) に書き出す。 .BR fprintf () -¤È +と .BR vfprintf () -¤Ï½ÐÎϤò»ØÄꤵ¤ì¤¿½ÐÎÏ +は出力を指定された出力 .I stream -¤Ë½ñ¤­½Ð¤¹¡£ +に書き出す。 .BR sprintf (), .BR snprintf (), .BR vsprintf (), .BR vsnprintf () -¤Ï½ÐÎϤòʸ»úÎó +は出力を文字列 .IR str -¤Ë½ñ¤­¹þ¤à¡£ +に書き込む。 .PP .BR snprintf () -¤È +と .BR vsnprintf () -¤ÏºÇÂç¤Ç +は最大で .I size -¥Ð¥¤¥È¤ò +バイトを .I str -¤Ë½ñ¤­¹þ¤à +に書き込む .RI ( size -¤Ë¤Ïʸ»úÎó¤ò½ªÃ¼¤¹¤ë NULL ¥Ð¥¤¥È (\(aq\e0\(aq) ¤â¤ò´Þ¤Þ¤ì¤ë)¡£ +には文字列を終端する NULL バイト (\(aq\e0\(aq) もを含まれる)。 .PP .BR vprintf (), .BR vfprintf (), .BR vsprintf (), .BR vsnprintf () -¤Î³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +の各関数はそれぞれ .BR printf (), .BR fprintf (), .BR sprintf (), .BR snprintf (), -¤Î³Æ´Ø¿ô¤ÈÅù²Á¤Ç¤¢¤ê¡¢²ÄÊÑ¿ô°ú¤­¿ô¤ÎÂå¤ï¤ê¤Ë +の各関数と等価であり、可変数引き数の代わりに .I va_list -¤ò°ú¤­¿ô¤È¤·¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ëÅÀ¤À¤±¤¬°Û¤Ê¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ç¤Ï +を引き数として呼び出される点だけが異なる。 +これらの関数では .I va_end -¥Þ¥¯¥í¤Ï¸Æ¤Ó½Ð¤µ¤ì¤Ê¤¤¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ï +マクロは呼び出されない。 +これらの関数は .I va_arg -¤ò¸Æ¤Ó½Ð¤¹¤Î¤Ç¡¢¸Æ¤Ó½Ð¤·¸å¤Î +を呼び出すので、呼び出し後の .I ap -¤ÎÃͤÏ̤ÄêµÁ¤Ç¤¢¤ë¡£ +の値は未定義である。 .BR stdarg (3) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -¤³¤ì¤é¤Î 8 ¤Ä¤Î´Ø¿ô¤Ï +これらの 8 つの関数は .I format -ʸ»úÎó¤ÎÀ©¸æ¤Ë½¾¤Ã¤Æ½ÐÎϤò½ñ¤­½Ð¤¹¡£ +文字列の制御に従って出力を書き出す。 .I format -ʸ»úÎó¤Ï¡¢¤³¤ì¤Ë³¤¯°ú¤­¿ô (¤Þ¤¿¤Ï +文字列は、これに続く引き数 (または .BR stdarg (3) -¤Î²ÄÊÑĹ°ú¤­¿ôµ¡¹½¤ò»È¤Ã¤Æ¥¢¥¯¥»¥¹¤Ç¤­¤ë°ú¤­¿ô) -¤ò¤É¤Î¤è¤¦¤ËÊÑ´¹¤·¤Æ½ÐÎϤ¹¤ë¤«¤ò»ØÄꤹ¤ë¡£ +の可変長引き数機構を使ってアクセスできる引き数) +をどのように変換して出力するかを指定する。 -C99 ¤È POSIX.1-2001 ¤Ç¤Ï¡¢ +C99 と POSIX.1-2001 では、 .BR sprintf (), .BR snprintf (), .BR vsprintf (), .BR vsnprintf () -¤Î¸Æ¤Ó½Ð¤·¤Ç¡¢ÈϰϤ¬½ÅÊ£¤¹¤ë¥ª¥Ö¥¸¥§¥¯¥È´Ö¤Ç¥³¥Ô¡¼¤¬È¯À¸¤¹¤ë¾ì¹ç¤Î -·ë²Ì¤ÏÉÔÄê¤Ç¤¢¤ë¤Èµ¬Äꤵ¤ì¤Æ¤¤¤ë (Î㤨¤Ð¡¢½ÐÎÏÀè¤Îʸ»úÎó¤ÈÆþÎϤµ¤ì¤¿ -°ú¤­¿ô¤Î°ì¤Ä¤¬Æ±¤¸¥Ð¥Ã¥Õ¥¡¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¤Ê¤É¤Ç¤¢¤ë)¡£ -¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¡£ -.SS ÊÖ¤êÃÍ -À®¸ù»þ¤Ë¤Ï¡¢¾åµ­¤Î´Ø¿ô¤Ï½ñ¤­¹þ¤Þ¤ì¤¿Ê¸»ú¿ô¤òÊÖ¤¹ -(ʸ»úÎó¤ÎºÇ¸å¤ò¼¨¤¹¤¿¤á¤Ë»ÈÍѤ¹¤ë NULL ¥Ð¥¤¥È¤Ï¿ô¤Ë´Þ¤Þ¤ì¤Ê¤¤)¡£ +の呼び出しで、範囲が重複するオブジェクト間でコピーが発生する場合の +結果は不定であると規定されている (例えば、出力先の文字列と入力された +引き数の一つが同じバッファを参照している場合などである)。 +「注意」の節を参照。 +.SS 返り値 +成功時には、上記の関数は書き込まれた文字数を返す +(文字列の最後を示すために使用する NULL バイトは数に含まれない)。 .BR snprintf () -¤È +と .BR vsnprintf () -¤Ï¡¢ +は、 .I size -¥Ð¥¤¥È¤ò±Û¤¨¤ëʸ»ú¿ô¤ò½ñ¤­¹þ¤Þ¤Ê¤¤ +バイトを越える文字数を書き込まない .RI ( size -¤Ë¤Ïʸ»úÎó¤ò½ªÃ¼¤¹¤ë NULL ¥Ð¥¤¥È (\(aq\e0\(aq) ¤â´Þ¤Þ¤ì¤ë)¡£ -¤³¤ÎÀ©¸Â¤Ë¤è¤Ã¤Æ½ÐÎϤ¬ÀÚ¤êµÍ¤á¤é¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ -¤â¤·½½Ê¬¤Ê¥¹¥Ú¡¼¥¹¤¬¤¢¤ì¤Ð½ñ¤­¹þ¤Þ¤ì¤¿¤Ç¤¢¤í¤¦Ê¸»ú¤Î¸Ä¿ô -(ʸ»úÎó¤ò½ªÃ¼¤¹¤ë NULL ¥Ð¥¤¥È¤ò½ü¤¯) ¤òÊÖ¤¹¡£ -½¾¤Ã¤Æ¡¢ÊÖ¤êÃͤ¬ +には文字列を終端する NULL バイト (\(aq\e0\(aq) も含まれる)。 +この制限によって出力が切り詰められた場合には、 +もし十分なスペースがあれば書き込まれたであろう文字の個数 +(文字列を終端する NULL バイトを除く) を返す。 +従って、返り値が .I size -°Ê¾å¤À¤Ã¤¿¾ì¹ç¡¢½ÐÎϤ¬ÀÚ¤êµÍ¤á¤é¤ì¤¿¤³¤È¤ò°ÕÌ£¤¹¤ë -(¸å½Ò¤ÎÃí°Õ¤â»²¾È¤Î¤³¤È)¡£ +以上だった場合、出力が切り詰められたことを意味する +(後述の注意も参照のこと)。 -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï¡¢Éé¤Î¿ô¤òÊÖ¤¹¡£ -.SS ¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤Î¥Õ¥©¡¼¥Þ¥Ã¥È -¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤Ïʸ»ú¤ÎÎó¤Ç¡¢ -(¤â¤·¤¢¤ë¤Ê¤é) ½é´ü¥·¥Õ¥È¾õÂ֤ǻϤޤꡢ½é´ü¥·¥Õ¥È¾õÂ֤ǽª¤ï¤ë¡£ -¥Õ¥©¡¼¥Þ¥Ã¥ÈÍѤÎʸ»úÎó¤Ï 0 ¸Ä°Ê¾å¤ÎÌ¿Îá (directives) ¤Ë¤è¤Ã¤Æ¹½À®¤µ¤ì¤ë¡£ -Ì¿Îá¤Ë¤Ï¡¢Ä̾ïʸ»ú¤ÈÊÑ´¹»ØÄê (conversion specifications) ¤¬¤¢¤ë¡£ -Ä̾ïʸ»ú¤Ï +エラーが発生した場合は、負の数を返す。 +.SS フォーマット文字列のフォーマット +フォーマット文字列は文字の列で、 +(もしあるなら) 初期シフト状態で始まり、初期シフト状態で終わる。 +フォーマット用の文字列は 0 個以上の命令 (directives) によって構成される。 +命令には、通常文字と変換指定 (conversion specifications) がある。 +通常文字は .B % -°Ê³°¤Îʸ»ú¤Ç¡¢½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Ë¤½¤Î¤Þ¤Þ¥³¥Ô¡¼¤µ¤ì¤ë¡£ -ÊÑ´¹»ØÄê¤Ï¡¢¤½¤ì¤¾¤ì¤¬ 0 ¸Ä°Ê¾å¤Î°ú¤­¿ô¤ò¼è¤ë¡£ -³ÆÊÑ´¹»ØÄê¤Ïʸ»ú +以外の文字で、出力ストリームにそのままコピーされる。 +変換指定は、それぞれが 0 個以上の引き数を取る。 +各変換指定は文字 .B % -¤Ç»Ï¤Þ¤ê¡¢ -.I "ÊÑ´¹»ØÄê»Ò (conversion specifier)" -¤Ç½ª¤ï¤ë¡£ +で始まり、 +.I "変換指定子 (conversion specifier)" +で終わる。 .B % -¤ÈÊÑ´¹»ØÄê»Ò¤Î´Ö¤Ë¤Ï¡¢0 ¸Ä°Ê¾å¤Î -.I ¥Õ¥é¥° ¡¢ -ºÇ¾® -.I ¥Õ¥£¡¼¥ë¥ÉÉý ¡¢ -.I ÀºÅÙ ¡¢ -.I Ťµ½¤¾þ»Ò -¤ò (¤³¤Î½ç½ø¤Ç) ÃÖ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£ +と変換指定子の間には、0 個以上の +.I フラグ 、 +最小 +.I フィールド幅 、 +.I 精度 、 +.I 長さ修飾子 +を (この順序で) 置くことができる。 -°ú¤­¿ô¤Ï (·¿¤Î³Ê¾å¤²¤Î¸å¤Ï) ÊÑ´¹»ØÄê»Ò¤¬É½¤¹·¿¤ÈÀµ³Î¤ËÂбþ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢\(aq*\(aq ¤äÊÑ´¹»ØÄê»Ò¤¬½Ð¤Æ¤¯¤ëËè¤Ë¼¡¤Î°ú¤­¿ô¤òÍ׵ᤵ¤ì¡¢ -°ú¤­¿ô¤Ï»ØÄꤵ¤ì¤¿½ç½ø¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤¯ -(»ØÄꤵ¤ì¤¿°ú¤­¿ô¤Î¸Ä¿ô¤¬ÉÔ½½Ê¬¤Ê¤é¥¨¥é¡¼¤È¤Ê¤ë)¡£ -¤Þ¤¿¡¢°ú¤­¿ô¤¬É¬Íפʲսê¤Ç \(aq%\(aq ¤ÎÂå¤ï¤ê¤Ë "%m$"¡¢ -\(aq*\(aq¤ÎÂå¤ï¤ê¤Ë "*m$" ¤È½ñ¤¯¤³¤È¤Ç¡¢ -ÌÀ¼¨Åª¤Ë¤É¤Î°ú¤­¿ô¤ò»ÈÍѤ¹¤ë¤«¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¤³¤³¤Ç 10¿Ê¤ÎÀ°¿ô m ¤Ï´õ˾¤Î°ú¤­¿ô¤Î°ú¤­¿ô¥ê¥¹¥È¤Ç¤Î°ÌÃÖ¤ò¼¨¤¹ -(ºÇ½é¤Î°ú¤­¿ô¤ÎÈֹ椬 1 ¤Ç¤¢¤ë)¡£ -½¾¤Ã¤Æ¡¢°Ê²¼¤ÎÆó¤Ä¤ÏÅù²Á¤Ç¤¢¤ë¡£ +引き数は (型の格上げの後は) 変換指定子が表す型と正確に対応しなければならない。 +デフォルトでは、\(aq*\(aq や変換指定子が出てくる毎に次の引き数を要求され、 +引き数は指定された順序で使用されていく +(指定された引き数の個数が不十分ならエラーとなる)。 +また、引き数が必要な箇所で \(aq%\(aq の代わりに "%m$"、 +\(aq*\(aqの代わりに "*m$" と書くことで、 +明示的にどの引き数を使用するかを指定することもできる。 +ここで 10進の整数 m は希望の引き数の引き数リストでの位置を示す +(最初の引き数の番号が 1 である)。 +従って、以下の二つは等価である。 .in +4n .nf @@ -228,23 +228,23 @@ printf("%2$*1$d", width, num); .fi .in -¤ÏÅù²Á¤Ç¤¢¤ë¡£ -ÆóÈÖÌܤνñ¤­Êý¤Ç¤ÏƱ¤¸°ú¤­¿ô¤ò·«¤êÊÖ¤·»²¾È¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -C99 ɸ½à¤Ë¤Ï¡¢ Single UNIX Specification ͳÍè¤Î \(aq$\(aq ¤ò»È¤Ã¤¿½ñ¤­Êý¤Ï´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¡£ -\(aq$\(aq ¤ò»È¤Ã¤¿¥¹¥¿¥¤¥ë¤ò»È¤¦¤È¡¢°ú¤­¿ô¤ò¼è¤ëÊÑ´¹µÚ¤ÓÉý¤ÈÀºÅ٤ΰú¤­¿ô¤ò -Á´¤Æ¤³¤Î¥¹¥¿¥¤¥ë¤Ç»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤¬¡¢ -°ú¤­¿ô¤ò¾ÃÈñ¤·¤Ê¤¤ "%%" ¥Õ¥©¡¼¥Þ¥Ã¥È¤Èº®¤¶¤Ã¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -\(aq$\(aq ¤Ç»ØÄꤵ¤ì¤ë°ú¤­¿ô¤ÎÈÖ¹æ¤Ë¶õ¤­¤¬¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -Î㤨¤Ð¡¢¤â¤·°ú¤­¿ô 1 ¤È 3 ¤¬»ØÄꤵ¤ì¤ë¤È¡¢°ú¤­¿ô 2 ¤â¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤Î¤É¤³¤«¤Ç -»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は等価である。 +二番目の書き方では同じ引き数を繰り返し参照することができる。 +C99 標準には、 Single UNIX Specification 由来の \(aq$\(aq を使った書き方は含まれていない。 +\(aq$\(aq を使ったスタイルを使うと、引き数を取る変換及び幅と精度の引き数を +全てこのスタイルで指定しなければならないが、 +引き数を消費しない "%%" フォーマットと混ざっているかもしれない。 +\(aq$\(aq で指定される引き数の番号に空きがあってはならない。 +例えば、もし引き数 1 と 3 が指定されると、引き数 2 もフォーマット文字列のどこかで +指定されなければならない。 -¿ôÃÍÊÑ´¹¤Ë¤Ï¾®¿ôÅÀ¤ä 1000 ñ°Ì¤Î¶èÀÚ¤êʸ»ú¤ò»È¤¦¤â¤Î¤â¤¢¤ë¡£ -¼ÂºÝ¤Ë¤É¤Îʸ»ú¤ò»È¤¦¤«¤Ï¥í¥±¡¼¥ë¤Î +数値変換には小数点や 1000 単位の区切り文字を使うものもある。 +実際にどの文字を使うかはロケールの .B LC_NUMERIC -¤Ë¤è¤ë¡£ -POSIX ¥í¥±¡¼¥ë¤Ç¤Ï¾®¿ôÅÀ¤Ë \(aq.\(aq ¤òÍѤ¤¡¢ -¶èÀÚ¤êʸ»ú¤Ï»È¤ï¤Ê¤¤¡£ -½¾¤Ã¤Æ¡¢ +による。 +POSIX ロケールでは小数点に \(aq.\(aq を用い、 +区切り文字は使わない。 +従って、 .in +4n .nf @@ -252,22 +252,22 @@ printf("%\(aq.2f", 1234567.89); .fi .in -¤Ï¡¢ POSIX ¥í¥±¡¼¥ë¤Ç¤Ï "1234567.89" ¡¢ nl_NL ¥í¥±¡¼¥ë¤Ç¤Ï "1234567,89"¡¢ -da_DK ¥í¥±¡¼¥ë¤Ç¤Ï "1.234.567,89" ¤È¤Ê¤ë¡£ -.SS ¥Õ¥é¥°Ê¸»ú -% ʸ»ú¤Î¸å¤í¤Ë¤Ï 0 ¸Ä°Ê¾å¤Î¥Õ¥é¥°Ê¸»ú¤¬Â³¤¯¡£ +は、 POSIX ロケールでは "1234567.89" 、 nl_NL ロケールでは "1234567,89"、 +da_DK ロケールでは "1.234.567,89" となる。 +.SS フラグ文字 +% 文字の後ろには 0 個以上のフラグ文字が続く。 .TP .B # -ÃͤϡÖÊ̤ηÁ¼°¡×¤ËÊÑ´¹¤µ¤ì¤ë¡£ +値は「別の形式」に変換される。 .B o -ÊÑ´¹¤Î¾ì¹ç¡¢(ÀèƬʸ»ú¤¬ 0 ¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤ËÀèƬ¤Ë 0 ¤òÄɲ乤뤳¤È¤Ç) -½ÐÎÏʸ»úÎó¤ÎºÇ½é¤Îʸ»ú¤ò 0 ¤Ë¤¹¤ë¡£ +変換の場合、(先頭文字が 0 になっていない場合に先頭に 0 を追加することで) +出力文字列の最初の文字を 0 にする。 .B x -¤È +と .B X -ÊÑ´¹¤Î¾ì¹ç¡¢¿ôÃͤ¬ 0 ¤Ç¤Ê¤¤¤È¤­¤Ë¤Ïʸ»úÎó "0x" +変換の場合、数値が 0 でないときには文字列 "0x" .RB ( X -ÊÑ´¹¤Î¾ì¹ç¤Ë¤Ï "0X") ¤¬Á°¤ËÉÕÍ¿¤µ¤ì¤ë¡£ +変換の場合には "0X") が前に付与される。 .BR a , .BR A , .BR e , @@ -276,18 +276,18 @@ da_DK .BR F , .BR g , .B G -ÊÑ´¹¤Ç¤Ï¡¢ ¾®¿ôÅÀ¤Ë³¤¯¿ô»ú¤¬¤Ê¤¯¤Æ¤â¡¢ -½ÐÎϤˤϾï¤Ë¾®¿ôÅÀ¤¬´Þ¤Þ¤ì¤ë -(Ä̾ï¤Ï¡¢¾®¿ôÅÀ¤Î¸å¤Ë¿ô»ú¤¬Â³¤¯¾ì¹ç¤Ë¤Î¤ß¡¢ -¾®¿ôÅÀ¤¬É½¼¨¤µ¤ì¤ë)¡£ +変換では、 小数点に続く数字がなくても、 +出力には常に小数点が含まれる +(通常は、小数点の後に数字が続く場合にのみ、 +小数点が表示される)。 .B g -¤È +と .B G -ÊÑ´¹¤Î¾ì¹ç¡¢Â¾¤ÎÊÑ´¹¤È¤Ï°Û¤Ê¤ê¡¢ËöÈø¤Î¥¼¥í¤¬ÊÑ´¹·ë²Ì¤«¤éºï½ü¤µ¤ì¤Ê¤¤¡£ -¤½¤Î¾¤ÎÊÑ´¹¤Ç¤Ï¡¢·ë²Ì¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +変換の場合、他の変換とは異なり、末尾のゼロが変換結果から削除されない。 +その他の変換では、結果は未定義である。 .TP .B \&0 -Ãͤò¥¼¥í¤ÇËä¤á¤ë¡£ +値をゼロで埋める。 .BR d , .BR i , .BR o , @@ -302,56 +302,56 @@ da_DK .BR F , .BR g , .B G -ÊÑ´¹¤Ç¤Ï¡¢ÊÑ´¹¤·¤¿Ãͤκ¸Â¦¤ò¶õÇòʸ»ú¤ÎÂå¤ï¤ê¤Ë¥¼¥í¤ÇËä¤á¤ë¡£ +変換では、変換した値の左側を空白文字の代わりにゼロで埋める。 .B \&0 -¤È +と .B \- -¤¬Î¾Êý¤È¤â»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢ +が両方とも指定された場合は、 .B \&0 -¥Õ¥é¥°¤Ï̵»ë¤µ¤ì¤ë¡£ -ÀºÅÙ¤¬¿ôÃÍÊÑ´¹ +フラグは無視される。 +精度が数値変換 .RB ( d , .BR i , .BR o , .BR u , .BR x , .BR X ) -¤ÈƱ»þ¤Ë»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ +と同時に指定された場合には、 .B \&0 -¥Õ¥é¥°¤Ï̵»ë¤µ¤ì¤ë¡£ -¤½¤Î¾¤ÎÊÑ´¹¤Ç¤Ï¡¢Æ°ºî¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +フラグは無視される。 +その他の変換では、動作は未定義である。 .TP .B \- -ÊÑ´¹Ãͤò¥Õ¥£¡¼¥ë¥É¶­³¦¤Çº¸Â·¤¨¤Ë¤¹¤ë -(¥Ç¥Õ¥©¥ë¥È¤Ï±¦Â·¤¨¤Ç¤¢¤ë)¡£ +変換値をフィールド境界で左揃えにする +(デフォルトは右揃えである)。 .B n -ÊÑ´¹°Ê³°¤Ç¤Ï¡¢ÊÑ´¹¤µ¤ì¤¿ÃÍ¤Ï -º¸Â¦¤Ç¤Ï¤Ê¤¯±¦Â¦¤ò¶õÇòʸ»ú¤ä¥¼¥í¤ÇËä¤á¤é¤ì¤ë¡£ +変換以外では、変換された値は +左側ではなく右側を空白文字やゼロで埋められる。 .B \- -¤È +と .B \&0 -¤ÎξÊý¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ +の両方が指定された場合には、 .B \- -¤¬Í¥À褵¤ì¤ë¡£ +が優先される。 .TP .B ' ' -(1¸Ä¤ÎȾ³Ñ¥¹¥Ú¡¼¥¹) -Éä¹æÉÕ¤­ÊÑ´¹¤ÇÀ¸À®¤µ¤ì¤¿Àµ¤Î¿ô»ú¤ÎÁ°¤Ë¶õÇò (¤Þ¤¿¤Ï¶õʸ»úÎó) ¤¬ÃÖ¤«¤ì¤ë¡£ +(1個の半角スペース) +符号付き変換で生成された正の数字の前に空白 (または空文字列) が置かれる。 .TP .B + -Éä¹æÉÕ¤­ÊÑ´¹¤Ë¤è¤Ã¤Æ½ÐÎϤµ¤ì¤ë¿ô»ú¤ÎÁ°¤Ë¡¢¾ï¤ËÉä¹æ (+ ¤« \-) ¤¬ÃÖ¤«¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢Éä¹æ¤ÏÉé¤Î¿ô»ú¤Î¾ì¹ç¤Î¤ßÉÕÍ¿¤µ¤ì¤ë¡£ +符号付き変換によって出力される数字の前に、常に符号 (+ か \-) が置かれる。 +デフォルトでは、符号は負の数字の場合のみ付与される。 .B + -¤ÈȾ³Ñ¥¹¥Ú¡¼¥¹¤Î -ξÊý¤¬»È¤ï¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ +と半角スペースの +両方が使われている場合には、 .B + -¤¬Í¥À褵¤ì¤ë¡£ +が優先される。 .PP -¾åµ­¤Î 5 ¤Ä¤Î¥Õ¥é¥°¤Ï C ɸ½à¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -SUSv2 ¤Ç¤Ï¡¢¤µ¤é¤Ë¤â¤¦°ì¤Ä¥Õ¥é¥°Ê¸»ú¤¬µ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +上記の 5 つのフラグは C 標準で定義されている。 +SUSv2 では、さらにもう一つフラグ文字が規定されている。 .TP .B \(aq -10¿Ê¿ôÊÑ´¹ +10進数変換 .RB ( i , .BR d , .BR u , @@ -359,131 +359,131 @@ SUSv2 .BR F , .BR g , .BR G ) -¤Ë¤ª¤¤¤Æ¡¢¥í¥±¡¼¥ë¾ðÊó¤Ë»ØÄ꤬¤¢¤ì¤Ð 1000 ñ°Ì¤Î¶èÀÚ¤êʸ»ú¤ò½ÐÎϤ¹¤ë¡£ +において、ロケール情報に指定があれば 1000 単位の区切り文字を出力する。 .BR gcc (1) -¤Î¿¤¯¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò²ò¼á¤¹¤ë¤³¤È¤¬¤Ç¤­¤º¡¢ -·Ù¹ð¤ò½ÐÎϤ¹¤ë¤³¤È¤ËÃí°Õ¤»¤è¡£ -%\(aqF ¤Ï SUSv2 ¤Ë¤Ï´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¡£ +の多くのバージョンは、このオプションを解釈することができず、 +警告を出力することに注意せよ。 +%\(aqF は SUSv2 には含まれていない。 .PP -glibc 2.2 ¤Ç¤Ï¡¢¤µ¤é¤Ë°ì¤Ä¥Õ¥é¥°Ê¸»ú¤¬Äɲ䵤ì¤Æ¤¤¤ë¡£ +glibc 2.2 では、さらに一つフラグ文字が追加されている。 .TP .B I -10¿ÊÀ°¿ôÊÑ´¹ +10進整数変換 .RB ( i , .BR d , .BR u ) -¤Ë¤ª¤¤¤Æ¡¢¥í¥±¡¼¥ë¤ÎÂåÂؽÐÎÏ¿ô»ú¤¬¤¢¤ì¤Ð¡¢¤½¤ì¤òÍѤ¤¤Æ½ÐÎϤ¹¤ë¡£ -Î㤨¤Ð¡¢ glibc 2.2.3 °Ê¹ß¤Ç¤Ï¡¢¥Ú¥ë¥·¥¢ ("fa_IR") ¥í¥±¡¼¥ë¤Ç -¥¢¥é¥Ó¥¢¿ô»ú (Arabic-Indic digits) ¤ò½ÐÎϤǤ­¤ë¡£ -.\" ¥í¥±¡¼¥ë¥Õ¥¡¥¤¥ë¤Ë¤Ï outdigits ¤È¤¤¤¦¥­¡¼¥ï¡¼¥É¤¬¤¢¤ë¡£ -.SS ¥Õ¥£¡¼¥ë¥ÉÉý -ºÇ¾®¤Î¥Õ¥£¡¼¥ë¥ÉÉý¤ò»ØÄꤹ¤ë 10¿Ê¿ô¤Î¿ôÃÍʸ»úÎó (ʸ»úÎó¤ÎºÇ½é¤Îʸ»ú¤Ï -¥¼¥í°Ê³°)¡£ËܹàÌܤϥª¥×¥·¥ç¥ó¤Ç¤¢¤ë¡£ -ÊÑ´¹¤µ¤ì¤¿ÃͤÎʸ»ú¿ô¤¬¥Õ¥£¡¼¥ë¥ÉŤè¤ê¤â¾¯¤Ê¤¤¾ì¹ç¡¢ -¥Õ¥£¡¼¥ë¥É¤Îº¸Â¦¤ò¥¹¥Ú¡¼¥¹¤ÇËä¤á¤ë -(º¸Â·¤¨¤Î¥Õ¥é¥°¤¬¤¢¤ë¾ì¹ç¤Ï±¦Â¦¤òËä¤á¤ë)¡£ -10¿Ê¿ô¤Îʸ»úÎó¤ÎÂå¤ï¤ê¤Ë "*" ¤ä "*m$" (\fIm\fP ¤Ï 10¿ÊÀ°¿ô) ¤ò½ñ¤¯¤³¤È¤â¤Ç¤­¤ë¡£ -"*" ¤È "*m$" ¤Ï¤½¤ì¤¾¤ì¡¢¼¡¤Î°ú¤­¿ô¤È \fIm\fP ÈÖÌܤΰú¤­¿ô¤ò¥Õ¥£¡¼¥ë¥ÉÉý¤È¤·¤Æ -»È¤¦¤³¤È¤ò»ØÄꤹ¤ë (¤³¤ì¤é¤Î°ú¤­¿ô¤Ï +において、ロケールの代替出力数字があれば、それを用いて出力する。 +例えば、 glibc 2.2.3 以降では、ペルシア ("fa_IR") ロケールで +アラビア数字 (Arabic-Indic digits) を出力できる。 +.\" ロケールファイルには outdigits というキーワードがある。 +.SS フィールド幅 +最小のフィールド幅を指定する 10進数の数値文字列 (文字列の最初の文字は +ゼロ以外)。本項目はオプションである。 +変換された値の文字数がフィールド長よりも少ない場合、 +フィールドの左側をスペースで埋める +(左揃えのフラグがある場合は右側を埋める)。 +10進数の文字列の代わりに "*" や "*m$" (\fIm\fP は 10進整数) を書くこともできる。 +"*" と "*m$" はそれぞれ、次の引き数と \fIm\fP 番目の引き数をフィールド幅として +使うことを指定する (これらの引き数は .I int -·¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£ -¥Õ¥£¡¼¥ë¥ÉÉý¤ËÉé¤Î¿ô¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢ -\(aq\-\(aq ¥Õ¥é¥°¤ÈÀµ¤Î¿ô¤Î¥Õ¥£¡¼¥ë¥ÉÉý¤È¤·¤Æ°·¤ï¤ì¤ë¡£ -¥Õ¥£¡¼¥ë¥ÉÉý¤¬¾®¤µ¤«¤Ã¤¿¤ê»ØÄ꤬¤Ê¤«¤Ã¤¿¤ê¤·¤Æ¤â¡¢¥Õ¥£¡¼¥ë¥É¤¬ÀÚ¤êµÍ¤á¤é¤ì¤ë -¤³¤È¤Ï¤Ê¤¤¡£¤â¤·ÊÑ´¹·ë²Ì¤¬¥Õ¥£¡¼¥ë¥ÉÉý¤è¤ê¤â¹­¤«¤Ã¤¿¾ì¹ç¡¢ -¥Õ¥£¡¼¥ë¥É¤ÏÊÑ´¹·ë²Ì¤¬Æþ¤ëÉý¤Ë¹­¤²¤é¤ì¤ë¡£ -.SS ÀºÅÙ -¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ëÀºÅ٤ϡ¢¥Ô¥ê¥ª¥É (\(aq.\(aq) ¤È¤½¤ì¤Ë³¤¯10¿Ê¿ô¤È¤¤¤¦ -·Á¼°¤Ç»ØÄꤹ¤ë (10¿Ê¿ô¤Ï¥ª¥×¥·¥ç¥ó) ¡£ -10¿Ê¿ô¤Îʸ»úÎó¤ÎÂå¤ï¤ê¤Ë "*" ¤ä "*m$" (m ¤Ï 10 ¿ÊÀ°¿ô)¤ò½ñ¤¯¤³¤È¤â¤Ç¤­¤ë¡£ -"*" ¤È "*m$" ¤Ï¤½¤ì¤¾¤ì¡¢¼¡¤Î°ú¤­¿ô¤È m ÈÖÌܤΰú¤­¿ô¤òÀºÅ٤Ȥ·¤Æ -»È¤¦¤³¤È¤ò»ØÄꤹ¤ë (¤³¤ì¤é¤Î°ú¤­¿ô¤Ï +型でなければならない)。 +フィールド幅に負の数が指定された場合は、 +\(aq\-\(aq フラグと正の数のフィールド幅として扱われる。 +フィールド幅が小さかったり指定がなかったりしても、フィールドが切り詰められる +ことはない。もし変換結果がフィールド幅よりも広かった場合、 +フィールドは変換結果が入る幅に広げられる。 +.SS 精度 +オプションである精度は、ピリオド (\(aq.\(aq) とそれに続く10進数という +形式で指定する (10進数はオプション) 。 +10進数の文字列の代わりに "*" や "*m$" (m は 10 進整数)を書くこともできる。 +"*" と "*m$" はそれぞれ、次の引き数と m 番目の引き数を精度として +使うことを指定する (これらの引き数は .I int -·¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£ -ÀºÅ٤Ȥ·¤Æ \(aq.\(aq ¤À¤±¤¬»ØÄꤵ¤ì¤¿¤ê¡¢ÀºÅÙ¤¬Éé¤Î¿ô¤À¤Ã¤¿¾ì¹ç¡¢ -ÀºÅ٤ϥ¼¥í¤È¤ß¤Ê¤µ¤ì¤ë¡£ +型でなければならない)。 +精度として \(aq.\(aq だけが指定されたり、精度が負の数だった場合、 +精度はゼロとみなされる。 .BR d , .BR i , .BR o , .BR u , .BR x , .B X -ÊÑ´¹¤Ç¤Ï¡¢É½¼¨¤µ¤ì¤ëºÇ¾®¤Î·å¿ô¤ò»ØÄꤹ¤ë¡£ +変換では、表示される最小の桁数を指定する。 .BR a , .BR A , .BR e , .BR E , .BR f , .B F -ÊÑ´¹¤Ç¤Ï¡¢¾®¿ôÅÀ°Ê²¼¤Ëɽ¼¨¤µ¤ì¤ë¿ô»ú¤Î·å¿ô¤ò»ØÄꤹ¤ë¡£ +変換では、小数点以下に表示される数字の桁数を指定する。 .B g -¤È +と .B G -ÊÑ´¹¤Ç¤Ï¡¢Í­¸ú¿ô»ú¤ÎºÇÂç·å¿ô¤ò»ØÄꤹ¤ë¡£ +変換では、有効数字の最大桁数を指定する。 .B s -¤È +と .B S -ÊÑ´¹¤Ç¤Ï¡¢Ê¸»úÎ󤫤é½ÐÎϤµ¤ì¤ëºÇÂçʸ»ú¿ô¤ò»ØÄꤹ¤ë¡£ -.SS Ťµ½¤¾þ»Ò -¡ÖÀ°¿ôÊÑ´¹¡×¤È¤Ï¡¢ +変換では、文字列から出力される最大文字数を指定する。 +.SS 長さ修飾子 +「整数変換」とは、 .BR d , .BR i , .BR o , .BR u , .BR x , .B X -ÊÑ´¹¤Î¤³¤È¤Ç¤¢¤ë¡£ +変換のことである。 .TP .B hh -À°¿ôÊÑ´¹¤ËÂбþ¤¹¤ë°ú¤­¿ô¤¬ +整数変換に対応する引き数が .I signed char -¤« +か .I unsigned char -¤Ç¡¢ +で、 .B n -ÊÑ´¹¤ËÂбþ¤¹¤ë°ú¤­¿ô¤¬ +変換に対応する引き数が .I signed char -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ +へのポインタであることを示す。 .TP .B h -À°¿ôÊÑ´¹¤ËÂбþ¤¹¤ë°ú¤­¿ô¤¬ +整数変換に対応する引き数が .I short int -¤« +か .I unsigned short int -¤Ç¡¢ +で、 .B n -ÊÑ´¹¤ËÂбþ¤¹¤ë°ú¤­¿ô¤¬ +変換に対応する引き数が .I short int -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ +へのポインタであることを示す。 .TP -.BR l " (¥¨¥ë)" -³ÆÊÑ´¹¤ËÂбþ¤¹¤ë°ú¤­¿ô¤¬¡¢ -À°¿ôÊÑ´¹¤Ç¤Ï -.IR "long int" ¤« -.IR "unsigned long int" ¡¢ +.BR l " (エル)" +各変換に対応する引き数が、 +整数変換では +.IR "long int" か +.IR "unsigned long int" 、 .B n -ÊÑ´¹¤Ç¤Ï +変換では .I long long int -¤Ø¤Î¥Ý¥¤¥ó¥¿¡¢ +へのポインタ、 .B c -ÊÑ´¹¤Ç¤Ï -.IR wint_t ¡¢ +変換では +.IR wint_t 、 .B s -ÊÑ´¹¤Ç¤Ï +変換では .I wchar_t -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ +へのポインタであることを示す。 .TP -.BR ll " (¥¨¥ë¥¨¥ë)" -À°¿ôÊÑ´¹¤ËÂбþ¤¹¤ë°ú¤­¿ô¤¬ +.BR ll " (エルエル)" +整数変換に対応する引き数が .I long long int -¤« +か .I unsigned long long int -¤Ç¡¢ +で、 .B n -ÊÑ´¹¤ËÂбþ¤¹¤ë°ú¤­¿ô¤¬ +変換に対応する引き数が .I long int -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ +へのポインタであることを示す。 .TP .B L .BR a , @@ -494,39 +494,39 @@ glibc 2.2 .BR F , .BR g , .B G -ÊÑ´¹¤ËÂбþ¤¹¤ë°ú¤­¿ô¤¬ +変換に対応する引き数が .I long double -¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ -(C99 ¤Ç¤Ï %LF ¤ò»È¤¦¤³¤È¤òǧ¤á¤Æ¤¤¤ë¤¬¡¢SUSv2 ¤Ç¤Ïǧ¤á¤é¤ì¤Æ¤¤¤Ê¤¤¡£) +であることを示す。 +(C99 では %LF を使うことを認めているが、SUSv2 では認められていない。) .TP .B q -("quad"¡£ 4.4BSD ¤È Linux libc5 ¤Î¤ßÍ­¸ú¡£»È¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£) +("quad"。 4.4BSD と Linux libc5 のみ有効。使ってはならない。) .B ll -¤ÈƱ¤¸°ÕÌ£¤Ç¤¢¤ë¡£ +と同じ意味である。 .TP .B j -À°¿ôÊÑ´¹¤ËÂбþ¤¹¤ë°ú¤­¿ô¤¬ +整数変換に対応する引き数が .I intmax_t -¤« +か .I uintmax_t -¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ +であることを示す。 .TP .B z -À°¿ôÊÑ´¹¤ËÂбþ¤¹¤ë°ú¤­¿ô¤¬ +整数変換に対応する引き数が .I size_t -¤« +か .I ssize_t -¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ -(Linux libc5 ¤Ç¤Ï¡¢¤³¤ì¤ò»ØÄꤹ¤ë¤Î¤Ë +であることを示す。 +(Linux libc5 では、これを指定するのに .B Z -¤òÍѤ¤¤ë¡£»È¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£) +を用いる。使ってはならない。) .TP .B t -À°¿ôÊÑ´¹¤ËÂбþ¤¹¤ë°ú¤­¿ô¤¬ +整数変換に対応する引き数が .I ptrdiff_t -¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ +であることを示す。 .PP -SUSv2 ¤ÇŤµ½¤¾þ»Ò¤È¤·¤Æ»ÈÍѤǤ­¤ë¤Î¤Ï¡¢ +SUSv2 で長さ修飾子として使用できるのは、 .B h .RB ( hd , .BR hi , @@ -549,377 +549,377 @@ SUSv2 .BR Lf , .BR Lg , .BR LG ) -¤À¤±¤Ç¤¢¤ë¡£ -.SS ÊÑ´¹»ØÄê»Ò -ŬÍѤµ¤ì¤ëÊÑ´¹¤Î·¿¤ò»ØÄꤹ¤ëʸ»ú¡£ +だけである。 +.SS 変換指定子 +適用される変換の型を指定する文字。 .PP -ÊÑ´¹»ØÄê»Ò¤È¤½¤Î°ÕÌ£¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +変換指定子とその意味は以下の通りである。 .TP .BR d ", " i .I int -°ú¤­¿ô¤òÉä¹æÉÕ¤­ 10 ¿Êɽµ­¤ËÊÑ´¹¤¹¤ë¡£ -ÀºÅÙ»ØÄ꤬¤¢¤ì¤Ð¡¢ÀºÅ٤ǻØÄꤷ¤¿·å¿ô¤Ïɬ¤º½ÐÎϤµ¤ì¤ë¡£ÊÑ´¹¸å¤ÎÃͤ¬ -»ØÄꤵ¤ì¤¿·å¿ô¤Ë­¤ê¤Ê¤¤¾ì¹ç¤Ï¡¢º¸Â¦¤¬ 0 ¤ÇËä¤á¤é¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÀºÅÙ¤Ï 1 ¤Ç¤¢¤ë¡£ -0 ¤òɽ¼¨¤·¤è¤¦¤È¤·¤¿»þ¤Ë¡¢ÌÀ¼¨Åª¤ËÀºÅ٤Ȥ·¤Æ 0 ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢ -½ÐÎϤ϶õʸ»úÎó¤È¤Ê¤ë¡£ +引き数を符号付き 10 進表記に変換する。 +精度指定があれば、精度で指定した桁数は必ず出力される。変換後の値が +指定された桁数に足りない場合は、左側が 0 で埋められる。 +デフォルトの精度は 1 である。 +0 を表示しようとした時に、明示的に精度として 0 が指定されていると、 +出力は空文字列となる。 .TP .BR o ", " u ", " x ", " X .I "unsigned int" -°ú¤­¿ô¤ò¡¢ -Éä¹æ¤Ê¤·8¿Ê¿ô +引き数を、 +符号なし8進数 .RB ( o ), -Éä¹æ¤Ê¤·10¿Ê¿ô +符号なし10進数 .RB ( u ), -Éä¹æ¤Ê¤·16¿Ê¿ô +符号なし16進数 .RB ( x -¤È +と .BR X ) -¤ËÊÑ´¹¤¹¤ë¡£ +に変換する。 .B x -ÊÑ´¹¤Ç¤Ï +変換では .B abcdef -¤¬»ÈÍѤµ¤ì¡¢ +が使用され、 .B X -ÊÑ´¹¤Ç¤Ï +変換では .B ABCDEF -¤¬»ÈÍѤµ¤ì¤ë¡£ -ÀºÅÙ»ØÄ꤬¤¢¤ì¤Ð¡¢ÀºÅ٤ǻØÄꤷ¤¿·å¿ô¤Ïɬ¤º½ÐÎϤµ¤ì¤ë¡£ÊÑ´¹¸å¤ÎÃͤ¬ -»ØÄꤵ¤ì¤¿·å¿ô¤Ë­¤ê¤Ê¤¤¾ì¹ç¤Ï¡¢º¸Â¦¤¬ 0 ¤ÇËä¤á¤é¤ì¤ë¡£ +が使用される。 +精度指定があれば、精度で指定した桁数は必ず出力される。変換後の値が +指定された桁数に足りない場合は、左側が 0 で埋められる。 .TP .BR e ", " E .I double -°ú¤­¿ô¤ò´Ý¤á¤Æ +引き数を丸めて .if \w'\*(Pm'=0 .ds Pm \(+- .RB [\-]d \&. ddd e \\*(Pmdd -¤Î·Á¤ËÊÑ´¹¤¹¤ë¡£ -¾®¿ôÅÀ¤ÎÁ°¤Ë¤Ï°ì·å¤Î¿ô»ú¤¬¤¢¤ê¡¢¾®¿ôÅÀ°Ê²¼¤Î·å¿ô¤ÏÀºÅ٤ǻØÄꤵ¤ì¤¿ -·å¿ô¤Ë¤Ê¤ë¡£ÀºÅ٤ϻØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç 6 ¤È¤ß¤Ê¤µ¤ì¤ë¡£ -ÀºÅÙ¤¬ 0 ¤Î¾ì¹ç¤Ë¤Ï¡¢¾®¿ôÅÀ°Ê²¼¤Ïɽ¼¨¤µ¤ì¤Ê¤¤¡£ +の形に変換する。 +小数点の前には一桁の数字があり、小数点以下の桁数は精度で指定された +桁数になる。精度は指定されなかった場合 6 とみなされる。 +精度が 0 の場合には、小数点以下は表示されない。 .B E -ÊÑ´¹¤Ç¤Ï¡¢»Ø¿ô¤òɽ¸½¤¹¤ë¤È¤­¤Ë +変換では、指数を表現するときに .RB ( e -¤Ç¤Ï¤Ê¤¯) +ではなく) .B E -¤¬»È¤ï¤ì¤ë¡£ -»Ø¿ôÉôʬ¤Ï¾¯¤Ê¤¯¤È¤â 2·åɽ¼¨¤µ¤ì¤ë¡£ -¤Ä¤Þ¤ê¡¢»Ø¿ô¤ÎÃͤ¬ 0 ¤Î¾ì¹ç¤Ë¤Ï¡¢00 ¤Èɽ¼¨¤µ¤ì¤ë¡£ +が使われる。 +指数部分は少なくとも 2桁表示される。 +つまり、指数の値が 0 の場合には、00 と表示される。 .TP .BR f ", " F .I double -°ú¤­¿ô¤ò´Ý¤á¤Æ +引き数を丸めて .RB [\-]ddd \&. ddd -¤Î·Á¤Î10¿Êɽ¸½¤ËÊÑ´¹¤¹¤ë¡£ -¾®¿ôÅÀ¤Î¸å¤Î·å¿ô¤Ï¡¢ÀºÅ٤ǻØÄꤵ¤ì¤¿ÃͤȤʤ롣 -ÀºÅÙ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï 6 ¤È¤·¤Æ°·¤ï¤ì¤ë¡£ -ÀºÅ٤Ȥ·¤ÆÌÀ¼¨Åª¤Ë 0 ¤¬»ØÄꤵ¤ì¤¿¤È¤­¤Ë¤Ï¡¢¾®¿ôÅÀ°Ê²¼¤Ïɽ¼¨¤µ¤ì¤Ê¤¤¡£ -¾®¿ôÅÀ¤òɽ¼¨¤¹¤ëºÝ¤Ë¤Ï¡¢¾®¿ôÅÀ¤ÎÁ°¤Ë¾¯¤Ê¤¯¤È¤â°ì·å¤Ï¿ô»ú¤¬É½¼¨¤µ¤ì¤ë¡£ +の形の10進表現に変換する。 +小数点の後の桁数は、精度で指定された値となる。 +精度が指定されていない場合には 6 として扱われる。 +精度として明示的に 0 が指定されたときには、小数点以下は表示されない。 +小数点を表示する際には、小数点の前に少なくとも一桁は数字が表示される。 -(SUSv2 ¤Ç¤Ï¡¢ +(SUSv2 では、 .B F -¤Ïµ¬Äꤵ¤ì¤Æ¤ª¤é¤º¡¢Ìµ¸Â¤ä NaN ¤Ë´Ø¤¹¤ëʸ»úÎóɽ¸½¤ò -¹Ô¤Ã¤Æ¤â¤è¤¤¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ - C99 ɸ½à¤Ç¤Ï¡¢ +は規定されておらず、無限や NaN に関する文字列表現を +行ってもよいことになっている。 + C99 標準では、 .B f -ÊÑ´¹¤Ç¤Ï¡¢Ìµ¸Â¤Ï "[\-]inf" ¤« "[\-]infinity" ¤Èɽ¼¨¤·¡¢ -NaN ¤Ïʸ»úÎó¤ÎÀèƬ¤Ë `nan' ¤ò¤Ä¤±¤Æɽ¼¨¤¹¤ë¤è¤¦¤Ëµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +変換では、無限は "[\-]inf" か "[\-]infinity" と表示し、 +NaN は文字列の先頭に `nan' をつけて表示するように規定されている。 .B F -ÊÑ´¹¤Î¾ì¹ç¤Ï "[\-]INF", "[\-]INFINITY", "NAN*" ¤Èɽ¼¨¤µ¤ì¤ë¡£) +変換の場合は "[\-]INF", "[\-]INFINITY", "NAN*" と表示される。) .TP .BR g ", " G .I double -°ú¤­¿ô¤ò +引き数を .B f -¤« +か .B e .RB ( G -ÊÑ´¹¤Î¾ì¹ç¤Ï +変換の場合は .B F -¤« +か .BR E ) -¤Î·Á¼°¤ËÊÑ´¹¤¹¤ë¡£ -ÀºÅÙ¤Ïɽ¼¨¤¹¤ë·å¿ô¤ò»ØÄꤹ¤ë¡£ -ÀºÅÙ¤¬»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢6·å¤È¤ß¤Ê¤µ¤ì¤ë¡£ -ÀºÅÙ¤¬ 0 ¤Î¾ì¹ç¤Ï¡¢1·å¤È¤ß¤Ê¤µ¤ì¤ë¡£ -ÊÑ´¹¤µ¤ì¤ëÃͤλؿô¤¬¡¢ \-4 ¤è¤ê¾®¤µ¤¤¤«¡¢ÀºÅٰʾå¤Î¾ì¹ç¤Ë¡¢ +の形式に変換する。 +精度は表示する桁数を指定する。 +精度が指定されない場合は、6桁とみなされる。 +精度が 0 の場合は、1桁とみなされる。 +変換される値の指数が、 \-4 より小さいか、精度以上の場合に、 .B e -·Á¼°¤¬»ÈÍѤµ¤ì¤ë¡£ -ÊÑ´¹¤µ¤ì¤¿·ë²Ì¤Î¾®¿ôÉôʬ¤ÎËöÈø¤Î 0 ¤Ïºï½ü¤µ¤ì¤ë¡£¾®¿ôÅÀ¤¬É½¼¨¤µ¤ì¤ë¤Î¤Ï¡¢ -¾®¿ôÅÀ°Ê²¼¤Ë¿ô»ú¤¬¾¯¤Ê¤¯¤È¤â°ì¤Ä¤¢¤ë¾ì¹ç¤Ë¤À¤±¤Ç¤¢¤ë¡£ +形式が使用される。 +変換された結果の小数部分の末尾の 0 は削除される。小数点が表示されるのは、 +小数点以下に数字が少なくとも一つある場合にだけである。 .TP .BR a ", " A -(C99 ¤Ë¤Ï¤¢¤ë¤¬ SUSv2 ¤Ë¤Ï¤Ê¤¤) +(C99 にはあるが SUSv2 にはない) .B a -ÊÑ´¹¤Ç¤Ï¡¢ +変換では、 .I double -°ú¤­¿ô¤ò (abcdef ¤Îʸ»ú¤ò»È¤Ã¤Æ) +引き数を (abcdef の文字を使って) .RB [\-] 0x h \&. hhhh p \\*(Pmd; -·Á¼°¤Î 16 ¿Êɽµ­¤ËÊÑ´¹¤¹¤ë¡£ +形式の 16 進表記に変換する。 .B A -ÊÑ´¹¤Ç¤Ï¡¢Á°ÃÖʸ»úÎó +変換では、前置文字列 .BR 0X , -ʸ»ú ABCDEF, »Ø¿ôʸ»ú +文字 ABCDEF, 指数文字 .B P -¤òÍѤ¤¤ë¡£ -¾®¿ôÅÀ¤ÎÁ°¤Ë¤Ï 1·å¤Î16¿Ê¿ô¤¬ÃÖ¤«¤ì¡¢¾®¿ôÅÀ¤Î¸å¤í¤Î·å¿ô¤Ï -ÀºÅ٤ǻØÄꤵ¤ì¤¿ÃͤȤʤ롣 -¥Ç¥Õ¥©¥ë¥È¤ÎÀºÅ٤ϡ¢¤½¤ÎÃͤ¬ 2¿Ê¿ô¤ÇÀµ³Î¤Ëɽ¸½¤Ç¤­¤ë¾ì¹ç¤Ë¤Ï¡¢ -¤½¤ÎÃͤòÀµ³Î¤Ëɽ¸½¤Ç¤­¤ë·å¿ô¤È¤Ê¤ë¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢ +を用いる。 +小数点の前には 1桁の16進数が置かれ、小数点の後ろの桁数は +精度で指定された値となる。 +デフォルトの精度は、その値が 2進数で正確に表現できる場合には、 +その値を正確に表現できる桁数となる。それ以外の場合は、 .I double -·¿¤ÎÃͤò¶èÊ̤¹¤ë¤Î¤Ë½½Ê¬¤ÊÂ礭¤µ¤È¤Ê¤ë¡£ -.\" motoki 2005/03/19: ¹ç¤Ã¤Æ¤¤¤ë¤«¤Ê¡© -¾®¿ôÅÀ¤ÎÁ°¤Î¿ô»ú¤Ï¡¢Àµµ¬²½¤µ¤ì¤Æ¤¤¤Ê¤¤¿ô¤Î¾ì¹ç¤Ï¤¤¤¯¤Ä¤Ë¤Ê¤ë¤«Ê¬¤«¤é¤Ê¤¤¡£ -Àµµ¬²½¤µ¤ì¤¿¿ô¤Î¾ì¹ç¤Ï¡¢ 0 °Ê³°¤ÎÃͤˤʤ뤬¡¢¤¤¤¯¤Ä¤Ë¤Ê¤ë¤«¤Ïʬ¤«¤é¤Ê¤¤¡£ +型の値を区別するのに十分な大きさとなる。 +.\" motoki 2005/03/19: 合っているかな? +小数点の前の数字は、正規化されていない数の場合はいくつになるか分からない。 +正規化された数の場合は、 0 以外の値になるが、いくつになるかは分からない。 .TP .B c .B l -½¤¾þ»Ò¤¬¤Ê¤±¤ì¤Ð¡¢ +修飾子がなければ、 .I int -°ú¤­¿ô¤ò +引き数を .IR "unsigned char" -¤ËÊÑ´¹¤·¤Æ¡¢¤½¤Î·ë²Ì¤ËÂбþ¤¹¤ëʸ»ú¤ò½ÐÎϤ¹¤ë¡£ +に変換して、その結果に対応する文字を出力する。 .B l -½¤¾þ»Ò¤¬¤¢¤ì¤Ð¡¢ +修飾子があれば、 .I wint_t -(¥ï¥¤¥Éʸ»ú) °ú¤­¿ô¤ò¡¢ +(ワイド文字) 引き数を、 .BR wcrtomb (3) -´Ø¿ô¤ò½é´ü¥·¥Õ¥È¾õÂ֤ǸƤӽФ·¤Æ¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ËÊÑ´¹¤·¡¢ -ÊÑ´¹¤µ¤ì¤¿¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ò½ÐÎϤ¹¤ë¡£ +関数を初期シフト状態で呼び出してマルチバイト文字列に変換し、 +変換されたマルチバイト文字列を出力する。 .TP .B s .B l -½¤¾þ»Ò¤¬¤Ê¤¤¾ì¹ç¡¢ -°ú¤­¿ô¤Ï +修飾子がない場合、 +引き数は .I "const char *" -·¿¤Çʸ»ú·¿¤ÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿ (ʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿) ¤Ç¤¢¤ë¤³¤È¤¬ -´üÂÔ¤µ¤ì¤Æ¤¤¤ë¡£ÇÛÎóÃæ¤Îʸ»ú¤Ï¡¢½ªÃ¼¤Î NULL ¥Ð¥¤¥È (\(aq\\0\(aq) -¤¬½Ð¤Æ¤¯¤ë¤Þ¤Ç½ÐÎϤµ¤ì¤ë (½ªÃ¼Ê¸»ú¤Ï½ÐÎϤµ¤ì¤Ê¤¤)¡£ -ÀºÅÙ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢»ØÄꤵ¤ì¤¿»ú¿ô°Ê¾å¤Ï½ÐÎϤµ¤ì¤Ê¤¤¡£ -ÀºÅÙ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢½ªÃ¼¥Ð¥¤¥È¤¬Â¸ºß¤¹¤ëɬÍפϤʤ¤¡£ -ÀºÅÙ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¤ê¡¢ÀºÅÙ¤ÎÃͤ¬ÇÛÎó¤ÎÂ礭¤µ¤è¤êÂ礭¤¤¾ì¹ç¤Ë¤Ï¡¢ -ÇÛÎó¤Ï½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤ò´Þ¤ó¤Ç¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +型で文字型の配列へのポインタ (文字列へのポインタ) であることが +期待されている。配列中の文字は、終端の NULL バイト (\(aq\\0\(aq) +が出てくるまで出力される (終端文字は出力されない)。 +精度が指定されていると、指定された字数以上は出力されない。 +精度が指定された場合には、終端バイトが存在する必要はない。 +精度が指定されていなかったり、精度の値が配列の大きさより大きい場合には、 +配列は終端の NULL バイトを含んでいなければならない。 .B l -½¤¾þ»Ò¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -°ú¤­¿ô¤Ï +修飾子が指定されている場合、 +引き数は .I "const wchar_t *" -·¿¤Ç¥ï¥¤¥Éʸ»ú¤ÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤¬´üÂÔ¤µ¤ì¤Æ¤¤¤ë¡£ -ÇÛÎóÃæ¤Î¥ï¥¤¥Éʸ»ú¤Ï (1ʸ»úËè¤Ë +型でワイド文字の配列へのポインタであることが期待されている。 +配列中のワイド文字は (1文字毎に .BR wcrtomb (3) -¤ò¸Æ¤Ó½Ð¤·¤Æ) ¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ËÊÑ´¹¤µ¤ì¤ë -(ºÇ½é¤Î¥ï¥¤¥Éʸ»ú¤ÎÊÑ´¹¤ÎÁ°¤Ë +を呼び出して) マルチバイト文字に変換される +(最初のワイド文字の変換の前に .BR wcrtomb () -¤Î¥·¥Õ¥È¾õÂÖ¤ò½é´ü¾õÂÖ¤ËÌᤷ¤Æ¤«¤éÊÑ´¹¤Ï¹Ô¤ï¤ì¤ë)¡£ -¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤Ø¤ÎÊÑ´¹¤Ï¡¢Ê¸»úÎó¤ò½ªÃ¼¤¹¤ë NULL ¥ï¥¤¥Éʸ»ú¤¬ -½Ð¤Æ¤¯¤ë¤Þ¤Ç¹Ô¤ï¤ì¡¢½ªÃ¼ NULL ¥ï¥¤¥Éʸ»ú¤â´Þ¤á¤ÆÊÑ´¹¤µ¤ì¤ë¡£ -·ë²Ì¤Î¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤Ï¡¢½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤¬½Ð¤Æ¤¯¤ë¤Þ¤Ç -½ÐÎϤµ¤ì¤ë (½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤Ï½ÐÎϤµ¤ì¤Ê¤¤)¡£ -ÀºÅÙ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢»ØÄꤵ¤ì¤¿¥Ð¥¤¥È¿ô°Ê¾å¤Ë¤Ï½ÐÎϤµ¤ì¤Ê¤¤¡£ -⤷¡¢¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤Î°ìÉôʬ¤À¤±¤¬½ÐÎϤµ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ -ÀºÅ٤ϡ֥Х¤¥È¡×¿ô¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¤¢¤ê¡¢¡Ö¥ï¥¤¥Éʸ»ú¡×¿ô¤ä -¡Ö²èÌ̤ǤΰÌÃ֡פò»ØÄꤹ¤ë¤â¤Î¤Ç¤Ï¤Ê¤¤¤³¤È¤ËÃí°Õ¡£ -ÀºÅÙ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢¤µ¤é¤Ë½ÐÎϤ¬ÇÛÎó¤ÎËöÈø¤Ë㤹¤ëÁ°¤Ë½ÐÎϥХ¤¥È¿ô¤¬ -ÀºÅÙ¤ÎÃͤòĶ¤¨¤ë¾ì¹ç¤À¤±¤Ï¡¢ÇÛÎó¤Ï NULL ¥ï¥¤¥Éʸ»ú¤Ç½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¯¤Æ¤â¤è¤¤¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢É¬¤ºÇÛÎó¤Ï NULL ¥ï¥¤¥Éʸ»ú¤Ç½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +のシフト状態を初期状態に戻してから変換は行われる)。 +マルチバイト文字への変換は、文字列を終端する NULL ワイド文字が +出てくるまで行われ、終端 NULL ワイド文字も含めて変換される。 +結果のマルチバイト文字列は、終端の NULL バイトが出てくるまで +出力される (終端の NULL バイトは出力されない)。 +精度が指定された場合、指定されたバイト数以上には出力されない。 +但し、マルチバイト文字の一部分だけが出力されることはない。 +精度は「バイト」数を指定するものであり、「ワイド文字」数や +「画面での位置」を指定するものではないことに注意。 +精度が指定されていて、さらに出力が配列の末尾に達する前に出力バイト数が +精度の値を超える場合だけは、配列は NULL ワイド文字で終端されていなくてもよい。 +それ以外の場合は、必ず配列は NULL ワイド文字で終端されていなければならない。 .TP .B C -(C99 ¤Ë¤Ï¤Ê¤¤¤¬ SUSv2 ¤Ë¤Ï¤¢¤ë) +(C99 にはないが SUSv2 にはある) .B lc -¤ÈƱ¤¸¡£»È¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +と同じ。使ってはならない。 .TP .B S -(C99 ¤Ë¤Ï¤Ê¤¤¤¬ SUSv2 ¤Ë¤Ï¤¢¤ë) +(C99 にはないが SUSv2 にはある) .B ls -¤ÈƱ¤¸¡£»È¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +と同じ。使ってはならない。 .TP .B p .I "void *" -¥Ý¥¤¥ó¥¿°ú¤­¿ô¤ò +ポインタ引き数を .RB ( %#x -¤ä +や .BR %#lx -¤Î¤è¤¦¤Ê) 16 ¿Ê¿ô¤Ç½ÐÎϤ¹¤ë¡£ +のような) 16 進数で出力する。 .TP .B n -¤³¤ì¤Þ¤Ç¤Ë½ÐÎϤµ¤ì¤¿Ê¸»ú¿ô¤ò +これまでに出力された文字数を .I "int *" -(¤Þ¤¿¤ÏÎà»÷¤Î·¿) ¤Î¥Ý¥¤¥ó¥¿°ú¤­¿ô¤¬»Ø¤¹À°¿ô¤ËÊݸ¤¹¤ë¡£ -°ú¤­¿ô¤ÎÊÑ´¹¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ +(または類似の型) のポインタ引き数が指す整数に保存する。 +引き数の変換は行われない。 .TP .B m -(glibc ¤Ç¤Î³ÈÄ¥) +(glibc での拡張) .I strerror(errno) -¤Î½ÐÎϤòɽ¼¨¤¹¤ë¡£°ú¤­¿ô¤ÏɬÍפʤ¤¡£ +の出力を表示する。引き数は必要ない。 .TP .B % -\(aq%\(aq ʸ»ú¤ò½ÐÎϤ¹¤ë¡£ÊÑ´¹¤µ¤ì¤ë°ú¤­¿ô¤Ï̵¤¤¡£ -ÊÑ´¹»ØÄêÁ´ÂΤò½ñ¤¯¤È "%%" ¤È¤Ê¤ë¡£ -.SH ½àµò +\(aq%\(aq 文字を出力する。変換される引き数は無い。 +変換指定全体を書くと "%%" となる。 +.SH 準拠 .BR fprintf (), .BR printf (), .BR sprintf (), .BR vprintf (), .BR vfprintf (), .BR vsprintf () -´Ø¿ô¤Ï¡¢C89 ¤È C99 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +関数は、C89 と C99 に準拠している。 .BR snprintf () -¤È +と .BR vsnprintf () -¤Ï C99 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +は C99 に準拠している。 .PP .BR snprintf () -¤ÎÊÖ¤êÃͤò¸«¤ë¤È¡¢ -SUSv2 ¤È C99 ɸ½à¤Ï¸ß¤¤¤ËÌ·½â¤·¤Æ¤¤¤ë¡£ -SUSv2 ¤Ç¤Ï¡¢ +の返り値を見ると、 +SUSv2 と C99 標準は互いに矛盾している。 +SUSv2 では、 .BR snprintf () -¤¬ +が .IR size =0 -¤Ç¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¡¢ 1 ̤Ëþ¤ÎÃͤò²¿¤«ÊÖ¤êÃͤȤ¹¤ë¤è¤¦¤Ëµ¬Äꤷ¤Æ¤¤¤ë¡£ -°ìÊý C99 ¤Ç¤Ï¡¢¤³¤Î¤è¤¦¤Ê¾ì¹ç +で呼び出された場合、 1 未満の値を何か返り値とするように規定している。 +一方 C99 では、このような場合 .I str -¤ò NULL ¤È¤·¡¢ÊÖ¤êÃͤȤ·¤Æ (Ä̾ïÄ̤ê) ½ÐÎϥХåե¡¤¬½½Ê¬¤ÊÂ礭¤µ¤¬ -¤¢¤Ã¤¿¾ì¹ç¤Ë½ÐÎϤµ¤ì¤ë¤Ç¤¢¤í¤¦Ê¸»ú¿ô¤òÊÖ¤¹¡£ +を NULL とし、返り値として (通常通り) 出力バッファが十分な大きさが +あった場合に出力されるであろう文字数を返す。 .PP -Linux libc4 ¤Ç¤Ï¡¢ 5 ¤Ä¤Î C ɸ½à¤Î¥Õ¥é¥°¡¢ -Ťµ½¤¾þ»Ò \fBh\fP, \fBl\fP, \fBL\fP¡¢ÊÑ´¹ +Linux libc4 では、 5 つの C 標準のフラグ、 +長さ修飾子 \fBh\fP, \fBl\fP, \fBL\fP、変換 \fBc\fP, \fBd\fP, \fBe\fP, \fBE\fP, \fBf\fP, \fBF\fP, \fBg\fP, \fBG\fP, \fBi\fP, \fBn\fP, \fBo\fP, \fBp\fP, \fBs\fP, \fBu\fP, \fBx\fP, \fBX\fP -¤¬»È¤¨¤ë¡£ -⤷ \fBF\fP ¤Ï \fBf\fP ¤ÈƱµÁ¤Ç¤¢¤ë¡£ -¤Þ¤¿¡¢ \fBD\fP, \fBO\fP, and \fBU\fP ¤ò \fBld\fP, \fBlo\fP, and \fBlu\fP -¤ÈƱ¤¸¤â¤Î¤È¤·¤Æ»È¤¨¤ë -(¤³¤ì¤Ï¤Þ¤º¤¤»ÅÍͤǡ¢ ¸å¤Ë \fB%D\fP ¤ÎÂбþ¤¬ÂǤÁÀÚ¤é¤ì¤¿»þ¤Ë¿¼¹ï¤Ê¥Ð¥°¤ò -°ú¤­µ¯¤³¤·¤¿)¡£¥í¥±¡¼¥ë°Í¸¤Î¾®¿ôÅÀ¡¢1000 ¶èÀڤꡢ NaN ¤È̵¸Â¡¢ -"%m$" ¤È "*m$" ¤Ï»È¤¨¤Ê¤¤¡£ +が使える。 +但し \fBF\fP は \fBf\fP と同義である。 +また、 \fBD\fP, \fBO\fP, and \fBU\fP を \fBld\fP, \fBlo\fP, and \fBlu\fP +と同じものとして使える +(これはまずい仕様で、 後に \fB%D\fP の対応が打ち切られた時に深刻なバグを +引き起こした)。ロケール依存の小数点、1000 区切り、 NaN と無限、 +"%m$" と "*m$" は使えない。 .PP -Linux libc5 ¤Ç¤Ï¡¢ 5 ¤Ä¤Î C ɸ½à¤Î¥Õ¥é¥°¤È \(aq ¥Õ¥é¥°¡¢¥í¥±¡¼¥ë¡¢ -"%m$" ¤È "*m$" ¤¬»È¤¨¤ë¡£ -¤Þ¤¿¡¢Ä¹¤µ½¤¾þ»Ò \fBh\fP, \fBl\fP, \fBL\fP, \fBZ\fP, iand \fBq\fP ¤¬»È¤¨¤ë¤¬¡¢ -\fBL\fP ¤È \fBq\fP ¤ÏξÊý¤È¤â -\fIlong double\fP ¤È \fIlong long int\fP ¤ËÂбþ¤·¤Æ¤¤¤ë (¤³¤ì¤Ï¥Ð¥°¤Ç¤¢¤ë)¡£ -¸½ºß¤Ç¤ÏÊÑ´¹ \fBF\fP, \fBD\fP, \fBO\fP, \fBU\fP ¤Ïǧ¼±¤µ¤ì¤Ê¤¤¤¬¡¢ÊÑ´¹Ê¸»ú +Linux libc5 では、 5 つの C 標準のフラグと \(aq フラグ、ロケール、 +"%m$" と "*m$" が使える。 +また、長さ修飾子 \fBh\fP, \fBl\fP, \fBL\fP, \fBZ\fP, iand \fBq\fP が使えるが、 +\fBL\fP と \fBq\fP は両方とも +\fIlong double\fP と \fIlong long int\fP に対応している (これはバグである)。 +現在では変換 \fBF\fP, \fBD\fP, \fBO\fP, \fBU\fP は認識されないが、変換文字 .B m -¤¬Äɲ䵤줿¡£¤³¤ì¤Ï +が追加された。これは .I strerror(errno) -¤ò½ÐÎϤ¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +を出力するものである。 .PP -glibc 2.0 ¤Ç¤Ï¡¢ÊÑ´¹Ê¸»ú \fBC\fP ¤È \fBS\fP ¤¬Äɲ䵤줿¡£ +glibc 2.0 では、変換文字 \fBC\fP と \fBS\fP が追加された。 .PP -glibc 2.1 ¤Ç¤Ï¡¢Ä¹¤µ½¤¾þ»Ò \fBhh\fP, \fBj\fP, \fBt\fP, \fBz\fP -¤ÈÊÑ´¹Ê¸»ú \fBa\fP, \fBA\fP ¤¬Äɲ䵤줿¡£ +glibc 2.1 では、長さ修飾子 \fBhh\fP, \fBj\fP, \fBt\fP, \fBz\fP +と変換文字 \fBa\fP, \fBA\fP が追加された。 .PP -glibc 2.2 ¤Ç¤Ï¡¢ C99 ¤Çµ¬Äꤵ¤ì¤¿°ÕÌ£¤Ç¤ÎÊÑ´¹Ê¸»ú \fBF\fP ¤È -¥Õ¥é¥°Ê¸»ú \fBI\fP ¤¬Äɲ䵤줿¡£ -.SH Ãí°Õ -¥Æ¥­¥¹¥È¤ò +glibc 2.2 では、 C99 で規定された意味での変換文字 \fBF\fP と +フラグ文字 \fBI\fP が追加された。 +.SH 注意 +テキストを .I buf -¤ËÄɲ乤ë¤Î¤Ë¡¢·ÚΨ¤Ë¤â¼¡¤Î¤è¤¦¤Ê¥³¡¼¥É¤ò»È¤Ã¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤¬¤¢¤ë¡£ +に追加するのに、軽率にも次のようなコードを使っているプログラムがある。 sprintf(buf, "%s some further text", buf); -¤·¤«¤·¤Ê¤¬¤é¡¢É¸½àµ¬³Ê¤Ç¤Ï¡¢ +しかしながら、標準規格では、 .BR sprintf (), .BR snprintf (), .BR vsprintf (), .BR vsnprintf () -¤Î¸Æ¤Ó½Ð¤·¤Ë¤ª¤¤¤Æ¡¢¥³¥Ô¡¼¸µ¤È¥³¥Ô¡¼Àè¤Î¥Ð¥Ã¥Õ¥¡¤¬½Å¤Ê¤Ã¤Æ¤¤¤¿¾ì¹ç¤Î -·ë²Ì¤ÏÉÔÄê¤Ç¤¢¤ë¡¢¤ÈÌÀµ­¤µ¤ì¤Æ¤¤¤ë¡£ +の呼び出しにおいて、コピー元とコピー先のバッファが重なっていた場合の +結果は不定である、と明記されている。 .\" http://sourceware.org/bugzilla/show_bug.cgi?id=7075 -»ÈÍѤ¹¤ë +使用する .BR gcc (1) -¤Î¥Ð¡¼¥¸¥ç¥ó¤ä»ØÄꤷ¤¿¥³¥ó¥Ñ¥¤¥é¤Î¥ª¥×¥·¥ç¥ó¼¡Âè¤Ç¤Ï¡¢ -¾åµ­¤Î¤è¤¦¤Ê¸Æ¤Ó½Ð¤·¤Ç¡¢´üÂÔ¤·¤¿·ë²Ì¤¬ÆÀ¤é¤ì¡Ö¤Ê¤¤¡×¤³¤È¤¬¤¢¤ë¡£ +のバージョンや指定したコンパイラのオプション次第では、 +上記のような呼び出しで、期待した結果が得られ「ない」ことがある。 -glibc ¤Î +glibc の .BR snprintf () -¤È +と .BR vsnprintf () -¤Î¼ÂÁõ¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Ï C99 ɸ½à¤Ë½àµò¤·¤Æ¤ª¤ê¡¢ -¾åµ­¤ÎÄ̤ê¤ÎÆ°ºî¤ò¤¹¤ë¡£ -glibc 2.0.6 ¤Þ¤Ç¤Ï¡¢½ÐÎϤ¬ÀÚ¤êµÍ¤á¤é¤ì¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ -.\" .SH Îò»Ë -.\" UNIX V7 ¤Ç¤Ï +の実装は、バージョン 2.1 以降は C99 標準に準拠しており、 +上記の通りの動作をする。 +glibc 2.0.6 までは、出力が切り詰められた場合は \-1 を返す。 +.\" .SH 歴史 +.\" UNIX V7 では .\" .BR printf (), .\" .BR fprintf (), .\" .BR sprintf () -.\" ¤Î 3 ¤Ä¤Î´Ø¿ô¤È¡¢¥Õ¥é¥° \-¡¢Éý¤ÈÀºÅ٤ǤΠ*¡¢Ä¹¤µ½¤¾þ»Ò l¡¢ -.\" ÊÑ´¹ doxfegcsu¡¢¤½¤·¤Æ ld,ld,lu,lx ¤ÎƱµÁ¸ì¤È¤·¤Æ D,O,U,X ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -.\" 2.9.1BSD ¤Ç¤â¤³¤ì¤ÏƱ¤¸¤À¤Ã¤¿¤¬¡¢ 2.10BSD ¤Ç¤Ï -.\" ¥Õ¥é¥° #, +, ¶õÇò¤¬Äɲ䵤졢 D,O,U,X ¤Ë¤Ä¤¤¤Æ¤Ïµ­ºÜ¤µ¤ì¤Ê¤¯¤Ê¤Ã¤¿¡£ -.\" 2.11BSD ¤Ç¤Ï +.\" の 3 つの関数と、フラグ \-、幅と精度での *、長さ修飾子 l、 +.\" 変換 doxfegcsu、そして ld,ld,lu,lx の同義語として D,O,U,X が定義されている。 +.\" 2.9.1BSD でもこれは同じだったが、 2.10BSD では +.\" フラグ #, +, 空白が追加され、 D,O,U,X については記載されなくなった。 +.\" 2.11BSD では .\" .BR vprintf (), .\" .BR vfprintf (), .\" .BR vsprintf () -.\" ¤¬Äɲ䵤졢 D,O,U,X ¤ò»È¤ï¤Ê¤¤¤è¤¦¤Ë·Ù¹ð¤µ¤ì¤¿¡£ -.\" 4.3BSD Reno ¤Ç¤Ï¥Õ¥é¥° 0¡¢Ä¹¤µ½¤¾þ»Ò h ¤È L¡¢ -.\" ÊÑ´¹ n, p, E, G, (¸½ºß¤Î°ÕÌ£¤Ç¤Î) X ¤¬Äɲ䵤졢 -.\" D,O,U ¤ÏÈó¿ä¾©°·¤¤¤È¤Ê¤Ã¤¿¡£ -.\" 4.4BSD ¤Ç¤Ï¡¢´Ø¿ô -.\" .BR snprintf ()¤È -.\" .BR vsnprintf ()¡¢ -.\" Ťµ½¤¾þ»Ò q ¤¬Æ³Æþ¤µ¤ì¤¿¡£ -.\" FreeBSD ¤Ç¤Ï¡¢ +.\" が追加され、 D,O,U,X を使わないように警告された。 +.\" 4.3BSD Reno ではフラグ 0、長さ修飾子 h と L、 +.\" 変換 n, p, E, G, (現在の意味での) X が追加され、 +.\" D,O,U は非推奨扱いとなった。 +.\" 4.4BSD では、関数 +.\" .BR snprintf ()と +.\" .BR vsnprintf ()、 +.\" 長さ修飾子 q が導入された。 +.\" FreeBSD では、 .\" .BR sprintf () -.\" ¤Î¤¿¤á¤Ë½½Ê¬¤Ê¥Ð¥Ã¥Õ¥¡¤ò³ÎÊݤ¹¤ë +.\" のために十分なバッファを確保する .\" .BR asprintf () -.\" ¤È +.\" と .\" .BR vasprintf () -.\" ¤¬Äɲ䵤ì¤Æ¤¤¤ë¡£ -.\" glibc ¤Ë¤Ï¡¢´Ø¿ô +.\" が追加されている。 +.\" glibc には、関数 .\" .BR dprintf (), .\" .BR vdprintf () -.\" ¤¬¤¢¤ê¡¢¤³¤ì¤é¤Ï¥¹¥È¥ê¡¼¥à¤Ç¤Ï¤Ê¤¯¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë½ÐÎϤ¹¤ë¡£ -.SH ¥Ð¥° +.\" があり、これらはストリームではなくファイルディスクリプタに出力する。 +.SH バグ .BR sprintf () -¤È +と .BR vsprintf () -¤Ï¾¡¼ê¤Ë½½Ê¬¤ËŤ¤Ê¸»úÎóÎΰ褬¤¢¤ë¤È²¾Äꤹ¤ë¤Î¤Ç¡¢¸Æ¤Ó½Ð¤·Â¦¤Ï -¼ÂºÝ¤ÎÎΰ褫¤é¤¢¤Õ¤ì¤Ê¤¤¤è¤¦¤ËÃí°Õ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤·¤«¤·¡¢¤³¤ì¤òÊݾڤ¹¤ë¤³¤È¤¬ÉÔ²Äǽ¤Ê¾ì¹ç¤¬Â¿¤¤¡£ -À¸À®¤µ¤ì¤ëʸ»úÎó¤ÎŤµ¤Ï¥í¥±¡¼¥ë°Í¸¤Ç¤¢¤ê¡¢Í½Â¬¤¬Æñ¤·¤¤¤³¤È¤ËÃí°Õ¡£ -Âå¤ï¤ê¤Ë +は勝手に十分に長い文字列領域があると仮定するので、呼び出し側は +実際の領域からあふれないように注意しなければならない。 +しかし、これを保証することが不可能な場合が多い。 +生成される文字列の長さはロケール依存であり、予測が難しいことに注意。 +代わりに .BR snprintf () -¤È +と .BR vsnprintf () -(¤Þ¤¿¤Ï +(または .BR asprintf (3) -¤È +と .BR vasprintf (3)) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .PP -Linux libc4.[45] ¤Ë¤Ï +Linux libc4.[45] には .BR snprintf () -¤Ï¤Ê¤¤¤¬¡¢ libbsd ¤¬Ä󶡤µ¤ì¤Æ¤ª¤ê¡¢ -¤½¤ÎÃæ¤Ë¤Ï +はないが、 libbsd が提供されており、 +その中には .BR sprintf () -¤ÈÅù²Á¤Ê (¤Ä¤Þ¤ê +と等価な (つまり .I size -°ú¤­¿ô¤ò̵»ë¤¹¤ë) +引き数を無視する) .BR snprintf () -¤¬¤¢¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢½é´ü¤Î libc4 ¤Ç +がある。 +したがって、初期の libc4 で .BR snprintf () -¤ò»È¤¦¤È¡¢¿¼¹ï¤Ê¥»¥­¥å¥ê¥Æ¥£ÌäÂê¤ò°ú¤­µ¯¤³¤¹¤³¤È¤¬¤¢¤ë¡£ +を使うと、深刻なセキュリティ問題を引き起こすことがある。 .PP .BI printf( foo ); -¤Î¤è¤¦¤Ê¥³¡¼¥É¤Ï¤·¤Ð¤·¤Ð¥Ð¥°¤ò°ú¤­µ¯¤³¤¹¡£ -¤Ê¤¼¤Ê¤é +のようなコードはしばしばバグを引き起こす。 +なぜなら .I foo -¤Ë % ʸ»ú¤¬´Þ¤Þ¤ì¤Æ¤ë¤«¤â¤·¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +に % 文字が含まれてるかもしれないからである。 .I foo -¤¬¿®Íê¤Ç¤­¤Ê¤¤¥æ¡¼¥¶¡¼ÆþÎϤ«¤éºî¤é¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -¤½¤ÎÃæ¤Ë \fB%n\fP ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤³¤È¤¬¤¢¤ê¡¢ +が信頼できないユーザー入力から作られている場合には、 +その中に \fB%n\fP が含まれていることがあり、 .BR printf () -¸Æ¤Ó½Ð¤·»þ¤Ë¥á¥â¥ê¤Ø¤Î½ñ¤­¹þ¤ß¤¬µ¯¤³¤ê¡¢ -¥»¥­¥å¥ê¥Æ¥£¡¼¥Û¡¼¥ë¤òºî¤ë¤³¤È¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +呼び出し時にメモリへの書き込みが起こり、 +セキュリティーホールを作ることになるかもしれない。 .\".PP .\".\"O Some floating-point conversions under early libc4 .\".\"O caused memory leaks. -.\"½é´ü¤Î libc4 ¤Ç¤Î¼Â¿ôÊÑ´¹¤Ë¤Ï¥á¥â¥ê¥ê¡¼¥¯¤ò°ú¤­µ¯¤³¤¹¤³¤È¤¬¤¢¤ë¡£ -.SH Îã +.\"初期の libc4 での実数変換にはメモリリークを引き起こすことがある。 +.SH 例 .if \w'\*(Pi'=0 .ds Pi pi -\*(Pi ¤ò 5 ·å¤Ç½ÐÎϤ¹¤ë¡£ +\*(Pi を 5 桁で出力する。 .in +4n .nf @@ -929,11 +929,11 @@ fprintf(stdout, "pi = %.5f\en", 4 * atan(1.0)); .fi .in .PP -ÆüÉդȻþ´Ö¤ò "Sunday, July 3, 10:02" ¤Î·Á¼°¤Ç½ÐÎϤ¹¤ë¡£ +日付と時間を "Sunday, July 3, 10:02" の形式で出力する。 .RI ( weekday -¤È +と .I month -¤Ïʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë) +は文字列へのポインタである) .in +4n .nf @@ -943,9 +943,9 @@ fprintf(stdout, "%s, %s %d, %.2d:%.2d\en", .fi .in .PP -Æü - ·î - ǯ ¤Î½ç½ø¤Çɽ¼¨¤ò¹Ô¤¦¹ñ¤â¿¤¤¡£ -½¾¤Ã¤Æ¡¢¹ñºÝÈǤǤϽñ¼°¤Ç»ØÄꤵ¤ì¤¿½çÈÖ¤Ç -°ú¤­¿ô¤òɽ¼¨¤Ç¤­¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +日 - 月 - å¹´ の順序で表示を行う国も多い。 +従って、国際版では書式で指定された順番で +引き数を表示できなければならない。 .in +4n .nf @@ -956,9 +956,9 @@ fprintf(stdout, format, .fi .in .I format -¤Ï¥í¥±¡¼¥ë¤Ë°Í¸¤·¤Æ¤ª¤ê¡¢°ú¤­¿ô¤Î½çÈÖ¤òÊѤ¨¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +はロケールに依存しており、引き数の順番を変えることもできる。 .I format -¤¬ +が .in +4n .nf @@ -966,10 +966,10 @@ fprintf(stdout, format, .fi .in -¤Ç¤¢¤ì¤Ð¡¢ "Sonntag, 3. Juli, 10:02" ¤È¤¤¤¦·ë²Ì¤Ë¤Ê¤ë¡£ +であれば、 "Sonntag, 3. Juli, 10:02" という結果になる。 .PP -½½Ê¬¤ËÂ礭¤Êʸ»úÎóÎΰè¤ò³ÎÊݤ·¤Æ¡¢¤½¤³¤Ë¥á¥Ã¥»¡¼¥¸¤ò³ÊǼ¤¹¤ë¤Ë¤Ï -(glibc 2.0 ¤È glibc 2.1 ¤ÎξÊý¤ÇÀµ¤·¤¯Æ°ºî¤¹¤ë¥³¡¼¥É): +十分に大きな文字列領域を確保して、そこにメッセージを格納するには +(glibc 2.0 と glibc 2.1 の両方で正しく動作するコード): .nf #include @@ -1015,7 +1015,7 @@ make_message(const char *fmt, ...) } } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR printf (1), .BR asprintf (3), .BR dprintf (3), diff --git a/release/man3/profil.3 b/release/man3/profil.3 index aa1eb5dc..c7482b20 100644 --- a/release/man3/profil.3 +++ b/release/man3/profil.3 @@ -35,68 +35,68 @@ .\" Updated & Modified Thu Feb 17 00:57:49 JST 2005 .\" by Yuichi SATO .\" -.\"WORD: profile ¥×¥í¥Õ¥¡¥¤¥ë -.\"WORD: kernel ¥«¡¼¥Í¥ë -.\"WORD: implement ¼ÂÁõ -.\"WORD: library ¥é¥¤¥Ö¥é¥ê -.\"WORD: core ¥á¥â¥ê -.\"WORD: virtual ²¾ÁÛ -.\"WORD: word ¥ï¡¼¥É -.\"WORD: increment ¥¤¥ó¥¯¥ê¥á¥ó¥È -.\"WORD: core dump ¥³¥¢¡¦¥À¥ó¥× +.\"WORD: profile プロファイル +.\"WORD: kernel カーネル +.\"WORD: implement 実装 +.\"WORD: library ライブラリ +.\"WORD: core メモリ +.\"WORD: virtual 仮想 +.\"WORD: word ワード +.\"WORD: increment インクリメント +.\"WORD: core dump コア・ダンプ .\" .TH PROFIL 3 2007-07-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -profil \- ¼Â¹Ô»þ´Ö¥×¥í¥Õ¥¡¥¤¥ë (profile) -.SH ½ñ¼° +.SH 名前 +profil \- 実行時間プロファイル (profile) +.SH 書式 .B #include .sp .BI "int profil(unsigned short *" buf ", size_t " bufsiz \ ", size_t " offset ", unsigned int " scale ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR profil (): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) -.SH ÀâÌÀ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥×¥í¥°¥é¥à¤Î¤É¤³¤ÎÉôʬ¤Ç»þ´Ö¤òÈñ¤ä¤·¤Æ¤¤¤ë¤«¤òÄ´¤Ù¤ë -¼êÃʤòÄ󶡤¹¤ë¡£°ú¤­¿ô +.SH 説明 +このルーティンはプログラムのどこの部分で時間を費やしているかを調べる +手段を提供する。引き数 .I buf -¤Ï +は .I bufsiz -¥Ð¥¤¥È¤Î¥á¥â¥ê¤ò»Ø¤·¤Æ¤¤¤ë¡£²¾ÁۤΠ10 ¥ß¥êÉ䴤Ȥˡ¢¥æ¡¼¥¶¡¼¤Î -¥×¥í¥°¥é¥à¡¦¥«¥¦¥ó¥¿¡¼ (PC) ¤¬¸¡ºº¤µ¤ì¤ë: +バイトのメモリを指している。仮想の 10 ミリ秒ごとに、ユーザーの +プログラム・カウンター (PC) が検査される: .I offset -¤¬°ú¤«¤ì¡¢¤½¤Î·ë²Ì¤¬ +が引かれ、その結果が .I scale -Çܤµ¤ì 65536 ¤Ç³ä¤é¤ì¤ë¡£ -·ë²Ì¤¬ +倍され 65536 で割られる。 +結果が .I bufsiz -¤è¤ê¾®¤µ¤¤¾ì¹ç¤Ï +より小さい場合は .I buf -¤ÎÂбþ¤¹¤ë¥¨¥ó¥È¥ê¤¬¥¤¥ó¥¯¥ê¥á¥ó¥È¤µ¤ì¤ë¡£ +の対応するエントリがインクリメントされる。 .I buf -¤¬ NULL ¤Ê¤é¤Ð¡¢¥×¥í¥Õ¥¡¥¤¥ë (profile) ¤Ï̵¸ú¤Ë¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -¾ï¤Ë 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ½àµò -SVr4 ¤Î¥³¡¼¥ë¤Ë»÷¤Æ¤¤¤ë (¤·¤«¤· POSIX.1-2001 ¤Ç¤Ï¤Ê¤¤)¡£ -.SH ¥Ð¥° +が NULL ならば、プロファイル (profile) は無効にされる。 +.SH 返り値 +常に 0 が返される。 +.SH 準拠 +SVr4 のコールに似ている (しかし POSIX.1-2001 ではない)。 +.SH バグ .BR profil () -¤Ï +は .B ITIMER_PROF -¥¤¥ó¥¿¡¼¥Ð¥ë¡¦¥¿¥¤¥Þ¡¼¤â»ÈÍѤ·¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤǤ­¤Ê¤¤ +インターバル・タイマーも使用しているプログラムでは使用できない .RB ( setitimer (2) -»²¾È)¡£ +参照)。 -ËÜÅö¤Î¥«¡¼¥Í¥ë¡¦¥×¥í¥Õ¥¡¥¤¥ë¤Ï¤è¤êÀµ³Î¤Ê·ë²Ì¤òÍ¿¤¨¤ë¡£ -libc 4.4 ¤Ë¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë profil ¤òÄ󶡤¹¤ë¤¿¤á¤Î -¥«¡¼¥Í¥ë¥Ñ¥Ã¥Á¤¬´Þ¤Þ¤ì¤Æ¤¤¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +本当のカーネル・プロファイルはより正確な結果を与える。 +libc 4.4 にはシステムコール profil を提供するための +カーネルパッチが含まれていた。 +.SH 関連項目 .BR gprof (1), .BR setitimer (2), .BR sigaction (2), diff --git a/release/man3/program_invocation_name.3 b/release/man3/program_invocation_name.3 index 75206272..309c3e37 100644 --- a/release/man3/program_invocation_name.3 +++ b/release/man3/program_invocation_name.3 @@ -23,43 +23,43 @@ .\" Translated 2006-03-13, Akihiro MOTOKI .\" .TH INVOCATION_NAME 3 2006-04-29 "GNU" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 program_invocation_name, program_invocation_short_name \- \ -¥×¥í¥°¥é¥à¤Îµ¯Æ°¤Ë»È¤ï¤ì¤¿Ì¾Á°¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +プログラムの起動に使われた名前を取得する +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .BI "extern char *" program_invocation_name ; .BI "extern char *" program_invocation_short_name ; .fi -.SH ÀâÌÀ +.SH 説明 .I program_invocation_name -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥°¥é¥à¤Îµ¯Æ°¤Ë»ÈÍѤµ¤ì¤¿Ì¾Á°¤òÊÝ»ý¤¹¤ë¡£ -ÆâÍÆ¤Ï +は、呼び出し元プログラムの起動に使用された名前を保持する。 +内容は .IR main () -¤Î +の .I argv[0] -¤ÎÃͤÈƱ¤¸¤À¤¬¡¢ +の値と同じだが、 .I program_invocation_name -¤ÎÊý¤Ï¥¹¥³¡¼¥×¤¬¥°¥í¡¼¥Ð¥ë¤Ç¤¢¤ëÅÀ¤¬°Û¤Ê¤ë¡£ +の方はスコープがグローバルである点が異なる。 .I program_invocation_short_name -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥°¥é¥à¤Îµ¯Æ°¤Ë»ÈÍѤµ¤ì¤¿Ì¾Á°¤Î basename Éôʬ¤ò -ÊÝ»ý¤¹¤ë¡£¤Ä¤Þ¤ê¡¢¤³¤ÎÊÑ¿ô¤ÎÆâÍƤϡ¢ºÇ¸å¤Î¥¹¥é¥Ã¥·¥å (/) ¤È¤½¤ì¤è¤êÁ°¤Î -Éôʬ¤¬¤¢¤ë¾ì¹ç¡¢ +は、呼び出し元プログラムの起動に使用された名前の basename 部分を +保持する。つまり、この変数の内容は、最後のスラッシュ (/) とそれより前の +部分がある場合、 .I program_invocation_name -¤«¤é¤³¤ÎÉôʬ¤òºï½ü¤·¤¿¤â¤Î¤È¤Ê¤ë¡£ +からこの部分を削除したものとなる。 -¤³¤ì¤é¤ÎÊÑ¿ô¤Ï glibc ¤Î¥é¥ó¥¿¥¤¥à¡¦¥¹¥¿¡¼¥È¥¢¥Ã¥×¡¦¥³¡¼¥É¤Ç -¼«Æ°Åª¤Ë½é´ü²½¤µ¤ì¤ë¡£ -.SH ½àµò -¤³¤ì¤é¤ÎÊÑ¿ô¤Ï GNU ¤Î³ÈÄ¥¤Ç¤¢¤ê¡¢ -°Ü¿¢À­¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ¹¤Ù¤­¤Ç¤Ê¤¤¡£ -.SH È÷¹Í -Linux Æȼ«¤Î¥Õ¥¡¥¤¥ë +これらの変数は glibc のランタイム・スタートアップ・コードで +自動的に初期化される。 +.SH 準拠 +これらの変数は GNU の拡張であり、 +移植性が必要なプログラムでは使用すべきでない。 +.SH 備考 +Linux 独自のファイル .I /proc/[number]/cmdline -¤Ç¤âƱÍͤξðÊó¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +でも同様の情報を得ることができる。 +.SH 関連項目 .BR proc (5) diff --git a/release/man3/psignal.3 b/release/man3/psignal.3 index 82bd7d0c..ecc1c5d1 100644 --- a/release/man3/psignal.3 +++ b/release/man3/psignal.3 @@ -34,9 +34,9 @@ .\" by HIROFUMI Nishizuka .\" .TH PSIGNAL 3 2008-08-21 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -psignal \- ¥·¥°¥Ê¥ë¥á¥Ã¥»¡¼¥¸¤òɽ¼¨ -.SH ½ñ¼° +.SH 名前 +psignal \- シグナルメッセージを表示 +.SH 書式 .nf .B #include .sp @@ -46,9 +46,9 @@ psignal \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR psignal (): @@ -57,20 +57,20 @@ _SVID_SOURCE || _BSD_SOURCE .IR sys_siglist : _BSD_SOURCE \"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .BR psignal () -´Ø¿ô¤Ï¡¢Ê¸»úÎó \fIs\fP¡¢¥³¥í¥ó¡¢¥¹¥Ú¡¼¥¹¡¢ -¥·¥°¥Ê¥ëÈÖ¹æ \fIsig\fP ¤òÀâÌÀ¤¹¤ëʸ»úÎ󤫤鹽À®¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¤ò -\fIstderr\fP ¤Ëɽ¼¨¤¹¤ë¡£¤â¤· \fIsig\fP ¤¬ÉÔÀµ¤Ê¤é¤Ð¡¢É½¼¨¤µ¤ì¤ë -¥á¥Ã¥»¡¼¥¸¤Ï̤ÃΤΥ·¥°¥Ê¥ë¤ò¼¨¤¹¡£ +関数は、文字列 \fIs\fP、コロン、スペース、 +シグナル番号 \fIsig\fP を説明する文字列から構成されるメッセージを +\fIstderr\fP に表示する。もし \fIsig\fP が不正ならば、表示される +メッセージは未知のシグナルを示す。 .PP -ÇÛÎó \fIsys_siglist\fP ¤Ï¥·¥°¥Ê¥ë¤òÀâÌÀ¤¹¤ëʸ»úÎó¤òÊÝ»ý¤·¤Æ¤ª¤ê¡¢ -ÇÛÎó¤Ø¤Î¥¢¥¯¥»¥¹¤Ë¤Ï¥·¥°¥Ê¥ëÈÖ¹æ¤òź¤¨»ú¤È¤·¤ÆÍѤ¤¤ë»ö¤¬¤Ç¤­¤ë¡£ -.SH ÊÖ¤êÃÍ +配列 \fIsys_siglist\fP はシグナルを説明する文字列を保持しており、 +配列へのアクセスにはシグナル番号を添え字として用いる事ができる。 +.SH 返り値 .BR psignal () -´Ø¿ô¤Ï¡¢ÃͤòÊÖ¤µ¤Ê¤¤¡£ -.SH ½àµò +関数は、値を返さない。 +.SH 準拠 POSIX.1-2008, 4.3BSD. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR perror (3), .BR strsignal (3) diff --git a/release/man3/ptsname.3 b/release/man3/ptsname.3 index 39baba3d..bf3eba81 100644 --- a/release/man3/ptsname.3 +++ b/release/man3/ptsname.3 @@ -8,95 +8,95 @@ .\" Translated 2003-07-08, Akihiro MOTOKI .\" Updated 2005-02-27, Akihiro MOTOKI .\" -.\"WORD: pseudoterminal µ¼»÷üËö +.\"WORD: pseudoterminal 擬似端末 .\" .TH PTSNAME 3 2008-09-03 "" "Linux Programmer's Manual" -.SH ̾Á° -ptsname, ptsname_r \- ¥¹¥ì¡¼¥Öµ¼»÷üËö¤Î̾Á°¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +ptsname, ptsname_r \- スレーブ擬似端末の名前を取得する +.SH 書式 .nf -.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "char *ptsname(int " fd ");" .sp -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "int ptsname_r(int " fd ", char *" buf ", size_t " buflen ");" .fi -.SH ÀâÌÀ +.SH 説明 .BR ptsname () -´Ø¿ô¤Ï +関数は .I fd -¤Ç»²¾È¤µ¤ì¤ë¥Þ¥¹¥¿µ¼»÷üËö (pts) ¥Ç¥Ð¥¤¥¹¤ËÂбþ¤¹¤ë -¥¹¥ì¡¼¥Öµ¼»÷üËö¥Ç¥Ð¥¤¥¹¤Î̾Á°¤òÊÖ¤¹¡£ +で参照されるマスタ擬似端末 (pts) デバイスに対応する +スレーブ擬似端末デバイスの名前を返す。 .BR ptsname_r () -´Ø¿ô¤Ï +関数は .BR ptsname () -¤Î¥ê¥¨¥ó¥È¥é¥ó¥È¤Ê¥Ð¡¼¥¸¥ç¥ó¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢¥¹¥ì¡¼¥Öµ¿»÷üËö¥Ç¥Ð¥¤¥¹¤Î̾Á°¤ò¡¢ -NULL ¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Î·Á¤Ç +のリエントラントなバージョンである。 +この関数は、スレーブ疑似端末デバイスの名前を、 +NULL で終端された文字列の形で .I buf -¤Ç»ØÄꤵ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ +で指定されたバッファに格納して返す。 .I buflen -°ú¤­¿ô¤Ë¤Ï +引き数には .I buf -¤Î¥Ð¥¤¥È¿ô¤ò»ØÄꤹ¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤Î¾ì¹ç¡¢ +のバイト数を指定する。 +.SH 返り値 +成功の場合、 .BR ptsname () -¤ÏÀÅŪµ­²±Îΰè¤Îʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤³¤Îµ­²±Îΰè¤Ï¤³¤Î¸å¤Î +は静的記憶領域の文字列へのポインタを返す。 +この記憶領域はこの後の .BR ptsname () -¤Î¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë¡£ -¤³¤Î¥Ý¥¤¥ó¥¿¤ò free ¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï NULL ¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +の呼び出しで上書きされる。 +このポインタを free してはいけない。 +エラーの場合は NULL ポインタを返す。 -À®¸ù¤Î¾ì¹ç¡¢ +成功の場合、 .BR ptsname_r () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢0 °Ê³°¤ÎÃͤòÊÖ¤·¡¢ +は 0 を返す。 +エラーの場合、0 以外の値を返し、 .I errno -¤ò¥¨¥é¡¼¤ò¼¨¤¹ÃͤËÀßÄꤹ¤ë¡£ -.\" ¼ÂºÝ¤Ë¤Ï¡¢errno ¤ÎÃͤ¬´Ø¿ô¤Î·ë²Ì¤ÎÊÖ¤êÃͤȤ·¤Æ¤âÊÖ¤µ¤ì¤ë¡£-- MTK, Dec 04 -.SH ¥¨¥é¡¼ +をエラーを示す値に設定する。 +.\" 実際には、errno の値が関数の結果の返り値としても返される。-- MTK, Dec 04 +.SH エラー .TP .B EINVAL .RB ( ptsname_r () -¤Î¤ß) +のみ) .I buf -¤¬ NULL ¤Ç¤¢¤ë¡£ +が NULL である。 .TP .B ENOTTY .I fd -¤¬¥Þ¥¹¥¿µ¿»÷üËö¥Ç¥Ð¥¤¥¹¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£ +がマスタ疑似端末デバイスを参照していない。 .TP .B ERANGE .RB ( ptsname_r () -¤Î¤ß) +のみ) .I buf -¤¬¾®¤µ¤¹¤®¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +が小さすぎる。 +.SH バージョン .BR ptsname () -¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò +は、バージョン 2.1 以降の glibc で提供されている。 +.SH 準拠 .BR ptsname () -¤Ï UNIX 98 µ¿»÷üËö»ÅÍͤΰìÉô¤Ç¤¢¤ë +は UNIX 98 疑似端末仕様の一部である .RB ( pts (4) -¤ò»²¾È¤Î¤³¤È)¡£¤³¤Î´Ø¿ô¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +を参照のこと)。この関数は POSIX.1-2001 で規定されている。 .BR ptsname_r () -¤Ï Linux ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ë¤Ä¤¤¤Æ¤Îµ­ºÜ¤¬¤¢¤ë¤â¤Î¤È¤·¤Æ Tru64 ¤È HP-UX ¤¬¤¢¤ë¤¬¡¢ -¤³¤ì¤é¤Î OS ¤Ç¤Î¼ÂÁõ¤Ç¤Ï¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤·¡¢ +は Linux による拡張である。 +この関数についての記載があるものとして Tru64 と HP-UX があるが、 +これらの OS での実装ではエラーの場合 \-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -°Ü¿¢¤ò¹Íθ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Î´Ø¿ô¤Î»ÈÍѤÏÈò¤±¤ë¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +にエラーを示す値を設定する。 +移植を考慮したプログラムではこの関数の使用は避けること。 +.SH 関連項目 .BR grantpt (3), .BR posix_openpt (3), .BR ttyname (3), diff --git a/release/man3/putenv.3 b/release/man3/putenv.3 index 93c2740c..49ca38e9 100644 --- a/release/man3/putenv.3 +++ b/release/man3/putenv.3 @@ -39,9 +39,9 @@ .\" Updated 2005-11-19, Akihiro MOTOKI .\" .TH PUTENV 3 2007-07-26 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -putenv \- ´Ä¶­ÊÑ¿ô¤ÎÊѹ¹¤Þ¤¿¤ÏÄɲà -.SH ½ñ¼° +.SH 名前 +putenv \- 環境変数の変更または追加 +.SH 書式 .nf .B #include .sp @@ -50,67 +50,67 @@ putenv \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR putenv (): _SVID_SOURCE || _XOPEN_SOURCE \"O .SH DESCRIPTION -.SH ÀâÌÀ +.SH 説明 .BR putenv () -´Ø¿ô¤Ï¡¢´Ä¶­ÊÑ¿ô¤ÎÄɲäޤ¿¤ÏÃͤÎÊѹ¹¤ò¹Ô¤¦¡£ -°ú¿ô \fIstring\fP ¤Ï \fIname\fP=\fIvalue\fP ¤È¤¤¤¦·Á¼°¤ò¼è¤ë¡£ -\fIname\fP ¤¬´Ä¶­¤Ë¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï \fIstring\fP ¤¬´Ä¶­¤ËÄɲ䵤ì¤ë¡£ -\fIname\fP ¤¬´Ä¶­¤Ë¸ºß¤¹¤ë¾ì¹ç¤Ï \fIname\fP ¤ÎÃÍ¤Ï \fIvalue\fP ¤ËÊѹ¹¤µ¤ì¤ë¡£ -\fIstring\fP ¤¬»Ø¤·¤Æ¤¤¤ëʸ»úÎó¤Ï´Ä¶­¤Î°ìÉô¤È¤Ê¤ë¤Î¤Ç¡¢ -ʸ»úÎó¤òÊѹ¹¤¹¤ë¤È´Ä¶­¤âÊѹ¹¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +関数は、環境変数の追加または値の変更を行う。 +引数 \fIstring\fP は \fIname\fP=\fIvalue\fP という形式を取る。 +\fIname\fP が環境に存在しない場合は \fIstring\fP が環境に追加される。 +\fIname\fP が環境に存在する場合は \fIname\fP の値は \fIvalue\fP に変更される。 +\fIstring\fP が指している文字列は環境の一部となるので、 +文字列を変更すると環境も変更される。 +.SH 返り値 .BR putenv () -´Ø¿ô¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç 0 ¤ò¡¢ -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç 0 °Ê³°¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +関数は、成功した場合 0 を、 +エラーが発生した場合 0 以外を返す。 +.SH エラー .TP .B ENOMEM -¿·¤·¤¤´Ä¶­¤ò³ä¤êÅö¤Æ¤ë¤Î¤Ë½½Ê¬¤Ê¶õ¤­¤¬¤Ê¤¤¡£ -.SH ½àµò +新しい環境を割り当てるのに十分な空きがない。 +.SH 準拠 SVr4, POSIX.1-2001, 4.3BSD. -.SH Ãí°Õ +.SH 注意 .BR putenv () -¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤¢¤ë¤³¤È¤òµá¤á¤é¤ì¤Æ¤¤¤Ê¤¤¡£ -libc4, libc5, glibc 2.0 ¤Ç¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤Ï¤Ê¤¤¡£ -glibc 2.1 ¤Ç¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤¢¤ë¡£ +はリエントラントであることを求められていない。 +libc4, libc5, glibc 2.0 ではリエントラントではない。 +glibc 2.1 ではリエントラントである。 .LP -libc4, libc5, glibc ¤Ë´Ø¤¹¤ëÀâÌÀ: -¤â¤·°ú¿ô \fIstring\fP ¤¬ \fIname\fP ñÆȤǡ¢ -\(aq=\(aq ʸ»ú¤ò´Þ¤ó¤Ç¤¤¤Ê¤¤¾ì¹ç¡¢´Ä¶­ÊÑ¿ô \fIname\fP ¤Ï´Ä¶­¤«¤é½üµî¤µ¤ì¤ë¡£ -¤â¤· +libc4, libc5, glibc に関する説明: +もし引数 \fIstring\fP が \fIname\fP 単独で、 +\(aq=\(aq 文字を含んでいない場合、環境変数 \fIname\fP は環境から除去される。 +もし .BR putenv () -¤¬¿·¤·¤¤ \fIenviron\fP ÇÛÎó¤ò³ÎÊݤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤»þ¡¢ -°ÊÁ°¤Î \fIenviron\fP ÇÛÎó¤â +が新しい \fIenviron\fP 配列を確保しなければならない時、 +以前の \fIenviron\fP 配列も .BR putenv () -¤Ë¤è¤Ã¤Æ³ÎÊݤµ¤ì¤¿¤â¤Î¤Ê¤é¤Ð¡¢ -¤½¤ì¤Ï²òÊü¤µ¤ì¤ë¡£ -´Ä¶­ÊÑ¿ô¤½¤Î¤â¤Î¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¸Å¤¤µ­²±Îΰ褬²òÊü¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ +によって確保されたものならば、 +それは解放される。 +環境変数そのものに割り当てられた古い記憶領域が解放されることはない。 .LP -libc4 ¤È libc5 ¤È glibc 2.1.2 ¤Ç¤Ï SUSv2 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +libc4 と libc5 と glibc 2.1.2 では SUSv2 に準拠している。 .BR putenv () -¤ÇÍ¿¤¨¤é¤ì¤¿¥Ý¥¤¥ó¥¿ \fIstring\fP ¤¬»È¤ï¤ì¤ë¡£ -¤³¤Îʸ»úÎó¤Ï´Ä¶­¤Î°ìÉô¤È¤Ê¤ê¡¢¸å¤ÇÊѹ¹¤¹¤ë¤È´Ä¶­¤âÊѤï¤ë¡£ -(½¾¤Ã¤Æ¡¢ +で与えられたポインタ \fIstring\fP が使われる。 +この文字列は環境の一部となり、後で変更すると環境も変わる。 +(従って、 .BR putenv () -¤ò¼«Æ°ÊÑ¿ô¤ò°ú¿ô¤È¤·¤Æ¸Æ¤Ó½Ð¤·¡¢ -\fIstring\fP¤¬´Ä¶­¤Î°ìÉô¤Î¤Þ¤Þ¤Ç¸Æ¤Ó½Ð¤·¤¿´Ø¿ô¤«¤é return ¤¹¤ë¤È¥¨¥é¡¼¤Ë¤Ê¤ë) -¤·¤«¤·¡¢glibc 2.0-2.1.1 ¤Ç¤Ï°Û¤Ê¤ê¡¢Ê¸»úÎó¤Î¥³¥Ô¡¼¤¬»È¤ï¤ì¤ë¡£ -¤³¤ì¤Ï¥á¥â¥ê¥ê¡¼¥¯¤ò°ú¤­µ¯¤³¤¹¤À¤±¤Ç¤Ê¤¯¡¢ SUSv2 ¤Ë°ãÈ¿¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï glibc2.1.2 ¤Ç½¤Àµ¤µ¤ì¤¿¡£ +を自動変数を引数として呼び出し、 +\fIstring\fPが環境の一部のままで呼び出した関数から return するとエラーになる) +しかし、glibc 2.0-2.1.1 では異なり、文字列のコピーが使われる。 +これはメモリリークを引き起こすだけでなく、 SUSv2 に違反している。 +これは glibc2.1.2 で修正された。 .LP -4.4BSD ¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢glibc 2.0 ¤ÈƱÍͤ˥³¥Ô¡¼¤ò»È¤¦¡£ +4.4BSD バージョンでは、glibc 2.0 と同様にコピーを使う。 .LP -SUSv2 ¤Ç¤Ï¥×¥í¥È¥¿¥¤¥×¤«¤é \fIconst\fP ¤¬¼è¤ê½ü¤«¤ì¤Æ¤ª¤ê¡¢ -glibc 2.1.3 ¤â¤½¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +SUSv2 ではプロトタイプから \fIconst\fP が取り除かれており、 +glibc 2.1.3 もそのようになっている。 +.SH 関連項目 .BR clearenv (3), .BR getenv (3), .BR setenv (3), diff --git a/release/man3/putgrent.3 b/release/man3/putgrent.3 index 062e105f..93e6d28d 100644 --- a/release/man3/putgrent.3 +++ b/release/man3/putgrent.3 @@ -7,42 +7,42 @@ .\" by Yuichi SATO .\" .TH PUTGRENT 3 2003-09-09 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -putgrent \- ¥°¥ë¡¼¥×¥Ç¡¼¥¿¥Ù¡¼¥¹¥¨¥ó¥È¥ê¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤à -.SH ½ñ¼° -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.SH 名前 +putgrent \- グループデータベースエントリをファイルに書き込む +.SH 書式 +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "int putgrent(const struct group *" grp ", FILE *" fp ); -.SH ÀâÌÀ +.SH 説明 .BR putgrent () -´Ø¿ô¤Ï +関数は .BR fgetgrent (3) -¤ÎµÕ¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤ÏÍ¿¤¨¤é¤ì¤¿ \fIstruct group\fP ¤ò +の逆である。 +この関数は与えられた \fIstruct group\fP を .I fp -¤Ç»Ø¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤à¡£ -¥°¥ë¡¼¥×¥á¥ó¥Ð¤Î¥ê¥¹¥È¤Ï¡¢NULL ¤Ç½ªÃ¼¤µ¤ì¤ë¤«¡¢ -NULL ¤Ç½é´ü²½¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +で指されるファイルに書き込む。 +グループメンバのリストは、NULL で終端されるか、 +NULL で初期化されなければならない。 .sp -\fIstruct group\fP ¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë: +\fIstruct group\fP は以下のように定義される: .sp .in +4n .nf struct group { - char *gr_name; /* ¥°¥ë¡¼¥×̾ */ - char *gr_passwd; /* ¥°¥ë¡¼¥×¥Ñ¥¹¥ï¡¼¥É */ - gid_t gr_gid; /* ¥°¥ë¡¼¥× ID */ - char **gr_mem; /* ¥°¥ë¡¼¥×¥á¥ó¥Ð */ + char *gr_name; /* グループ名 */ + char *gr_passwd; /* グループパスワード */ + gid_t gr_gid; /* グループ ID */ + char **gr_mem; /* グループメンバ */ }; .fi .in -.SH ÊÖ¤êÃÍ -¤³¤Î´Ø¿ô¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤·¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ï 0 °Ê³°¤ÎÃͤòÊÖ¤¹¡£ -.SH ½àµò -¤³¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +.SH 返り値 +この関数は、成功した場合は 0 を返し、エラーの場合は 0 以外の値を返す。 +.SH 準拠 +この関数は GNU による拡張である。 +.SH 関連項目 .BR fgetgrent (3), .BR getgrent (3), .BR group (5) diff --git a/release/man3/putpwent.3 b/release/man3/putpwent.3 index 06e4f17c..8de7737a 100644 --- a/release/man3/putpwent.3 +++ b/release/man3/putpwent.3 @@ -32,9 +32,9 @@ .\" by HIROFUMI Nishizuka .\" .TH PUTPWENT 3 2007-07-26 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -putpwent \- ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¥¨¥ó¥È¥ê¤Î½ñ¤­¹þ¤ß -.SH ½ñ¼° +.SH 名前 +putpwent \- パスワードファイルエントリの書き込み +.SH 書式 .nf .B #include .B #include @@ -44,45 +44,45 @@ putpwent \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR putpwent (): _SVID_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR putpwent () -´Ø¿ô¤Ï¡¢¹½Â¤ÂÎ \fIp\fP ¤«¤é¤Î¥Ñ¥¹¥ï¡¼¥É¥¨¥ó¥È¥ê¤ò -\fIstream\fP ¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤à¡£ +関数は、構造体 \fIp\fP からのパスワードエントリを +\fIstream\fP に結びつけられたファイルに書き込む。 .PP -\fIpasswd\fP ¹½Â¤ÂΤϡ¢\fI\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +\fIpasswd\fP 構造体は、\fI\fP で以下のように定義されている: .sp .in +4n .nf struct passwd { - char *pw_name; /* ¥æ¡¼¥¶Ì¾ */ - char *pw_passwd; /* ¥æ¡¼¥¶¤Î¥Ñ¥¹¥ï¡¼¥É */ - uid_t pw_uid; /* ¥æ¡¼¥¶ ID */ - gid_t pw_gid; /* ¥°¥ë¡¼¥× ID */ - char *pw_gecos; /* ËÜ̾ */ - char *pw_dir; /* ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê */ - char *pw_shell; /* ¥·¥§¥ë¥×¥í¥°¥é¥à */ + char *pw_name; /* ユーザ名 */ + char *pw_passwd; /* ユーザのパスワード */ + uid_t pw_uid; /* ユーザ ID */ + gid_t pw_gid; /* グループ ID */ + char *pw_gecos; /* 本名 */ + char *pw_dir; /* ホームディレクトリ */ + char *pw_shell; /* シェルプログラム */ }; .fi .in -.SH ÊÖ¤êÃÍ +.SH 返り値 .BR putpwent () -´Ø¿ô¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤ò¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï -\-1 ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +関数は、成功した場合は 0 を、エラーが発生した場合は +\-1 を返す。 +.SH エラー .TP .B EINVAL -̵¸ú¤Ê(NULL)°ú¿ô¤¬ÅϤµ¤ì¤¿¡£ -.SH ½àµò +無効な(NULL)引数が渡された。 +.SH 準拠 SVr4. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR endpwent (3), .BR fgetpwent (3), .BR getpw (3), diff --git a/release/man3/puts.3 b/release/man3/puts.3 index 44555f14..9d23069b 100644 --- a/release/man3/puts.3 +++ b/release/man3/puts.3 @@ -29,9 +29,9 @@ .\" Updated Fri Nov 2 JST 2001 by Kentaro Shirakata .\" .TH PUTS 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -fputc, fputs, putc, putchar, puts \- ʸ»ú¤Èʸ»úÎó¤Î½ÐÎÏ -.SH ½ñ¼° +.SH 名前 +fputc, fputs, putc, putchar, puts \- 文字と文字列の出力 +.SH 書式 .nf .B #include .sp @@ -45,81 +45,81 @@ fputc, fputs, putc, putchar, puts \- ʸ .BI "int puts(const char *" "s" ); .fi -.SH ÀâÌÀ +.SH 説明 .BR fputc () -¤Ï¡¢¥­¥ã¥é¥¯¥¿ +は、キャラクタ .I c -¤ò +を .I "unsigned char" -¤Ë¥­¥ã¥¹¥È¤·¡¢ +にキャストし、 .I stream -¤Ë½ñ¤­¹þ¤à¡£ +に書き込む。 .PP .BR fputs () -¤Ï¡¢Ê¸»úÎó +は、文字列 .I s -¤ò +を .I stream -¤Ë½ñ¤­¹þ¤à¡£ -ʸ»úÎó½ªÃ¼¤Î NULL ¥Ð¥¤¥È (\(aq\e0\(aq) ¤Ï½ÐÎϤ·¤Ê¤¤¡£ +に書き込む。 +文字列終端の NULL バイト (\(aq\e0\(aq) は出力しない。 .PP .BR putc () -¤Ï¡¢ +は、 .I stream -¤ò°ìÅٰʾåɾ²Á¤¹¤ë¥Þ¥¯¥í¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤«¤âÃΤì¤Ê¤¤¤È¤¤¤¦ÅÀ¤ò½ü¤­¡¢ +を一度以上評価するマクロとして実装されているかも知れないという点を除き、 .BR fputc () -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .PP .BI "putchar(" c ); -¤Ï¡¢ +は、 .BI "putc(" c , stdout ) -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .PP .BR puts () -¤Ï¡¢Ê¸»úÎó +は、文字列 .I s -¤È²þ¹Ô¤ò +と改行を .I stdout -¤Ë½ñ¤­¹þ¤à¡£ +に書き込む。 .PP -¤³¤³¤ÇÀâÌÀ¤µ¤ì¤¿´Ø¿ô¤Ï¤ª¸ß¤¤¤Ëº®ºß¤·¤Æ»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¡¢¤Þ¤¿¡¢ +ここで説明された関数はお互いに混在して使用することができ、また、 .I stdio -¥é¥¤¥Ö¥é¥ê¤Ë´Þ¤Þ¤ì¤ë¾¤Î½ÐÎÏ´Ø¿ô¤òƱ¤¸½ÐÎÏ¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ -¸Æ¤Ó½Ð¤¹»ö¤¬½ÐÍè¤ë¡£ +ライブラリに含まれる他の出力関数を同じ出力ストリームに対して +呼び出す事が出来る。 .PP -¤³¤ì¤é¤Î½èÍý¤ò¥í¥Ã¥¯¤»¤º¤Ë¹Ô¤¤¤¿¤¤¤È¤­¤Ï¡¢ +これらの処理をロックせずに行いたいときは、 .BR unlocked_stdio (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ +を参照のこと。 +.SH 返り値 .BR fputc (), .BR putc (), .BR putchar () -¤Ï +は .I unsigned char -¤È¤·¤Æ½ñ¤­¹þ¤Þ¤ì¤¿Ê¸»ú¤ò +として書き込まれた文字を .I int -¤Ë¥­¥ã¥¹¥È¤·¤ÆÊÖ¤¹¡£ -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï +にキャストして返す。 +エラーが発生した場合は .B EOF -¤òÊÖ¤¹¡£ +を返す。 .PP .BR puts () -¤È +と .BR fputs () -¤Ï¡¢À®¸ù¤¹¤ë¤ÈÉé¤Ç¤Ï¤Ê¤¤¿ô¤ò¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï +は、成功すると負ではない数を、エラーが発生した場合は .B EOF -¤òÊÖ¤¹¡£ -.SH ½àµò +を返す。 +.SH 準拠 C89, C99. -.SH ¥Ð¥° +.SH バグ .I stdio -¥é¥¤¥Ö¥é¥ê¤Ë´Þ¤Þ¤ì¤ë½ÐÎÏ´Ø¿ô¤È¡¢Æ±¤¸½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤¿ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ¹¤ë +ライブラリに含まれる出力関数と、同じ出力ストリームに結びつけられた +ファイルディスクリプタに対する .BR write (2) -¤ÎÄã¥ì¥Ù¥ë¸Æ¤Ó½Ð¤·¤òº®ºß¤·¤Æ -»ÈÍѤ¹¤ë¤³¤È¤Ï¸­ÌÀ¤Ç¤Ï¤Ê¤¤¡£ -¤½¤Î·ë²Ì¤ÏÄêµÁ¤µ¤ì¤Æ¤ª¤é¤º¡¢Ë¾¤à·ë²Ì¤¬ÆÀ¤é¤ì¤Ê¤¤²ÄǽÀ­¤¬¹â¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +の低レベル呼び出しを混在して +使用することは賢明ではない。 +その結果は定義されておらず、望む結果が得られない可能性が高い。 +.SH 関連項目 .BR write (2), .BR ferror (3), .BR fopen (3), diff --git a/release/man3/putwchar.3 b/release/man3/putwchar.3 index 7aa7505d..0b3f8741 100644 --- a/release/man3/putwchar.3 +++ b/release/man3/putwchar.3 @@ -19,48 +19,48 @@ .\" Updated Sat Nov 3 JST 2001 by Kentaro Shirakata .\" .TH PUTWCHAR 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -putwchar \- ¥ï¥¤¥Éʸ»ú¤òɸ½à½ÐÎϤؽñ¤­½Ð¤¹ -.SH ½ñ¼° +.SH 名前 +putwchar \- ワイド文字を標準出力へ書き出す +.SH 書式 .nf .B #include .sp .BI "wint_t putwchar(wchar_t " wc ); .fi -.SH ÀâÌÀ +.SH 説明 .BR putwchar () -´Ø¿ô¤Ï +関数は .BR putchar () -¤Î¥ï¥¤¥Éʸ»úÈǤǤ¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï \fIwc\fP ¤ò \fIstdout\fP ¤Ø¤È½ñ¤­½Ð¤¹¡£\fIferror(stdout)\fP ¤¬ -¿¿¤Ê¤é¤Ð +のワイド文字版である。 +この関数は \fIwc\fP を \fIstdout\fP へと書き出す。\fIferror(stdout)\fP が +真ならば .B WEOF -¤òÊÖ¤¹¡£¥ï¥¤¥Éʸ»ú¤ÎÊÑ´¹¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï \fIerrno\fP ¤Ë -\fBEILSEQ\fP ¤òÀßÄꤷ¤Æ +を返す。ワイド文字の変換に失敗した場合には \fIerrno\fP に +\fBEILSEQ\fP を設定して .B WEOF -¤òÊÖ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï \fIwc\fP ¤òÊÖ¤¹¡£ +を返す。それ以外の場合は \fIwc\fP を返す。 .PP -¤³¤ì¤é¤Î½èÍý¤ò¥í¥Ã¥¯¤»¤º¤Ë¹Ô¤¤¤¿¤¤¤È¤­¤Ï¡¢ +これらの処理をロックせずに行いたいときは、 .BR unlocked_stdio (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ -¥¨¥é¡¼¤¬µ¯¤­¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ +を参照のこと。 +.SH 返り値 +エラーが起きなかった場合、 .BR putwchar () -´Ø¿ô¤Ï \fIwc\fP ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬µ¯¤­¤¿¾ì¹ç¤Ï +関数は \fIwc\fP を返す。 +エラーが起きた場合は .B WEOF -¤òÊÖ¤¹¡£ -.SH ½àµò +を返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR putwchar () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ +カテゴリに依存している。 .PP .BR putwchar () -¤¬¼ÂºÝ¤Ë¤Ï¥ï¥¤¥Éʸ»ú \fIwc\fP ¤ÈÅù²Á¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò -½ñ¤­½Ð¤¹¤³¤È¤ò´üÂÔ¤·¤Æ¤â¤è¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +が実際にはワイド文字 \fIwc\fP と等価なマルチバイト文字を +書き出すことを期待してもよい。 +.SH 関連項目 .BR fputwc (3), .BR unlocked_stdio (3) diff --git a/release/man3/qecvt.3 b/release/man3/qecvt.3 index 313d43a7..910c1f86 100644 --- a/release/man3/qecvt.3 +++ b/release/man3/qecvt.3 @@ -29,9 +29,9 @@ .\" by Akihiro MOTOKI .\" .TH QECVT 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -qecvt, qfcvt, qgcvt \- ÉâÆ°¾®¿ôÅÀ¿ô¤Îʸ»úÎó¤Ø¤ÎÊÑ´¹ -.SH ½ñ¼° +.SH 名前 +qecvt, qfcvt, qgcvt \- 浮動小数点数の文字列への変換 +.SH 書式 .B #include .sp .BI "char *qecvt(long double " number ", int " ndigits ", int *" decpt , @@ -43,9 +43,9 @@ qecvt, qfcvt, qgcvt \- .BI "char *qgcvt(long double " number ", int " ndigit ", char *" buf ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -54,31 +54,31 @@ glibc .BR qgcvt (): _SVID_SOURCE .ad b -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR qecvt (), .BR qfcvt (), .BR qgcvt () -¤Ï¡¢¤½¤ì¤¾¤ì +は、それぞれ .BR ecvt (3), .BR fcvt (3), .BR gcvt (3) -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -°ú¤­¿ô +と同じである。 +引き数 .I number -¤¬ +が .I "long double" -·¿¤Ç¤¢¤ëÅÀ¤À¤±¤¬°Û¤Ê¤ë¡£ -.SH ½àµò +型である点だけが異なる。 +.SH 準拠 SVr4. -¿¤¯¤Î°ìÈÌŪ¤Ê UNIX ¤Ë¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢SunOS ¤Ë¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -libc4 ¤È libc5 ¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -glibc ¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -¤³¤ì¤é¤Î´Ø¿ô¤ÏÇѻߤµ¤ì¤¿¡£Âå¤ï¤ê¤Ë +多くの一般的な UNIX には実装されていないが、SunOS には実装されている。 +libc4 と libc5 ではサポートされていないが、 +glibc ではサポートされている。 +.SH 注意 +これらの関数は廃止された。代わりに .BR sprintf (3) -¤Î»ÈÍѤò¿ä¾©¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +の使用を推奨する。 +.SH 関連項目 .BR ecvt (3), .BR ecvt_r (3), .BR gcvt (3), diff --git a/release/man3/qsort.3 b/release/man3/qsort.3 index 788f2ce1..42d7963c 100644 --- a/release/man3/qsort.3 +++ b/release/man3/qsort.3 @@ -38,52 +38,52 @@ .\" Updated 2006-01-18, Akihiro MOTOKI .\" .TH QSORT 3 2009-09-15 "" "Linux Programmer's Manual" -.SH ̾Á° -qsort \- ÇÛÎó¤òʤÙÊѤ¨¤ë -.SH ½ñ¼° +.SH 名前 +qsort \- 配列を並べ変える +.SH 書式 .nf .B #include .sp .BI "void qsort(void *" base ", size_t " nmemb ", size_t " size , .BI " int(*" compar ")(const void *, const void *));" .fi -.SH ÀâÌÀ +.SH 説明 .BR qsort () -´Ø¿ô¤Ï¡¢ -\fInmemb\fP ¸Ä¤ÎÂ礭¤µ \fIsize\fP ¤ÎÍ×ÁǤò¤â¤ÄÇÛÎó¤òʤÙÊѤ¨¤ë¡£ -\fIbase\fP °ú¤­¿ô¤ÏÇÛÎó¤ÎÀèƬ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +関数は、 +\fInmemb\fP 個の大きさ \fIsize\fP の要素をもつ配列を並べ変える。 +\fIbase\fP 引き数は配列の先頭へのポインタである。 .PP -\fIcompar\fP ¤ò¥Ý¥¤¥ó¥¿¤È¤¹¤ëÈæ³Ó´Ø¿ô¤Ë¤è¤Ã¤Æ¡¢ -ÇÛÎó¤ÎÃæ¿È¤Ï¾º½ç (ÃͤÎÂ礭¤¤¤â¤Î¤Û¤É¸å¤ËʤֽçÈÖ) ¤Ëʤ٤é¤ì¤ë¡£ -Èæ³Ó´Ø¿ô¤Î°ú¤­¿ô¤ÏÈæ³Ó¤µ¤ì¤ë¤Õ¤¿¤Ä¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +\fIcompar\fP をポインタとする比較関数によって、 +配列の中身は昇順 (値の大きいものほど後に並ぶ順番) に並べられる。 +比較関数の引き数は比較されるふたつのオブジェクトのポインタである。 .PP -Èæ³Ó´Ø¿ô¤Ï¡¢Âè°ì°ú¤­¿ô¤¬ÂèÆó°ú¤­¿ô¤ËÂФ·¤Æ¡¢ -1) ¾®¤µ¤¤¡¢2) Åù¤·¤¤¡¢3) Â礭¤¤¤Î¤½¤ì¤¾¤ì¤Ë±þ¤¸¤Æ¡¢ -1) ¥¼¥í¤è¤ê¾®¤µ¤¤À°¿ô¡¢2) ¥¼¥í¡¢3) ¥¼¥í¤è¤êÂ礭¤¤À°¿ô¤Î -¤¤¤º¤ì¤«¤òÊÖ¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Æó¤Ä¤ÎÍ×ÁǤÎÈæ³Ó·ë²Ì¤¬Åù¤·¤¤¤È¤­¡¢ -ʤÙÊѤ¨¤¿¸å¤ÎÇÛÎó¤Ç¤Ï¡¢¤³¤ì¤éÆó¤Ä¤Î½ç½ø¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +比較関数は、第一引き数が第二引き数に対して、 +1) 小さい、2) 等しい、3) 大きいのそれぞれに応じて、 +1) ゼロより小さい整数、2) ゼロ、3) ゼロより大きい整数の +いずれかを返さなければならない。 +二つの要素の比較結果が等しいとき、 +並べ変えた後の配列では、これら二つの順序は規定されていない。 +.SH 返り値 .BR qsort () -¤ÏÃͤòÊÖ¤µ¤Ê¤¤¡£ -.SH ½àµò +は値を返さない。 +.SH 準拠 SVr4, 4.3BSD, C89, C99. -.SH Ãí°Õ +.SH 注意 .I compar -°ú¤­¿ô¤Ë»ÈÍѤ¹¤ë¤Î¤ËŬ¤·¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤È¤·¤Æ¤Ï +引き数に使用するのに適しているライブラリルーチンとしては .BR alphasort (3), .BR versionsort (3) -¤¬¤¢¤ë¡£ -C ¤Îʸ»úÎó¤òÈæ³Ó¤¹¤ë¾ì¹ç¡¢°Ê²¼¤ÎÎã¤Ë¤¢¤ë¤è¤¦¤ËÈæ³Ó´Ø¿ô¤Ç +がある。 +C の文字列を比較する場合、以下の例にあるように比較関数で .BR strcmp (3) -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤â¤Ç¤­¤ë¡£ -.SH Îã -»ÈÍÑÎã¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +を呼び出すこともできる。 +.SH 例 +使用例については、 .BR bsearch (3) -¤Ë¤¢¤ëÎã¤ò»²¾È¤¹¤ë¤³¤È¡£ +にある例を参照すること。 -°Ê²¼¤Î¥×¥í¥°¥é¥à¤ËÊ̤λÈÍÑÎã¤ò¼¨¤¹¡£¤³¤Î¥×¥í¥°¥é¥à¤Ï¡¢ -¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿Ê¸»úÎó¤ÎʤӴ¹¤¨¤ò¹Ô¤¦¡£ +以下のプログラムに別の使用例を示す。このプログラムは、 +コマンドライン引き数で指定された文字列の並び換えを行う。 .sp .nf #include @@ -93,9 +93,9 @@ C static int cmpstringp(const void *p1, const void *p2) { - /* ¤³¤Î´Ø¿ô¤Î¼ÂºÝ¤Î°ú¤­¿ô¤Ï "char ·¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤Î¥Ý¥¤¥ó¥¿" ¤À¤¬¡¢ - strcmp(3) ¤Î°ú¤­¿ô¤Ï "char ·¿¤Ø¤Î¥Ý¥¤¥ó¥¿" ¤Ç¤¢¤ë¡£ - ¤½¤³¤Ç¡¢°Ê²¼¤Î¤è¤¦¤Ë¥­¥ã¥¹¥È¤ò¤·¤Æ¤«¤é¥Ý¥¤¥ó¥¿¤ÎµÕ»²¾È¤ò¹Ô¤¦¡£*/ + /* この関数の実際の引き数は "char 型へのポインタのポインタ" だが、 + strcmp(3) の引き数は "char 型へのポインタ" である。 + そこで、以下のようにキャストをしてからポインタの逆参照を行う。*/ return strcmp(* (char * const *) p1, * (char * const *) p2); } @@ -117,7 +117,7 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sort (1), .BR alphasort (3), .BR strcmp (3), diff --git a/release/man3/queue.3 b/release/man3/queue.3 index 73c44dca..8855836b 100644 --- a/release/man3/queue.3 +++ b/release/man3/queue.3 @@ -39,18 +39,18 @@ .\" Translated Thu Sep 2 04:41:11 JST 2004 .\" by Yuichi SATO .\" -.\"WORD: circular queue ½Û´Ä¥­¥å¡¼ +.\"WORD: circular queue 循環キュー .\" .TH QUEUE 3 2007-12-28 "Linux" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 LIST_ENTRY, LIST_HEAD, LIST_INIT, LIST_INSERT_AFTER, \ LIST_INSERT_HEAD, LIST_REMOVE, TAILQ_ENTRY, TAILQ_HEAD, \ TAILQ_INIT, TAILQ_INSERT_AFTER, TAILQ_INSERT_HEAD, TAILQ_INSERT_TAIL, \ TAILQ_REMOVE, CIRCLEQ_ENTRY, CIRCLEQ_HEAD, CIRCLEQ_INIT, \ CIRCLEQ_INSERT_AFTER, CIRCLEQ_INSERT_BEFORE, \ CIRCLEQ_INSERT_HEAD, CIRCLEQ_INSERT_TAIL, \ -CIRCLEQ_REMOVE \- ¥ê¥¹¥È¡¦¥Æ¡¼¥ë (tail) ¥­¥å¡¼¡¦½Û´Ä¥­¥å¡¼¤Î¼ÂÁõ -.SH ½ñ¼° +CIRCLEQ_REMOVE \- リスト・テール (tail) キュー・循環キューの実装 +.SH 書式 .nf .B #include @@ -88,104 +88,104 @@ CIRCLEQ_REMOVE \- .BI "CIRCLEQ_REMOVE(CIRCLEQ_HEAD *" head ", " .BI " TYPE *" elm ", CIRCLEQ_ENTRY " NAME ); .fi -.SH ÀâÌÀ -¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ï¡¢¼¡¤Î 3 ¤Ä¤Î¥Ç¡¼¥¿¹½Â¤¤òÄêµÁ¤·¤ÆÁàºî¤¹¤ë: -¥ê¥¹¥È¡¦¥Æ¡¼¥ë¥­¥å¡¼¡¦½Û´Ä¥­¥å¡¼¡£ -3 ¤Ä¤Î¥Ç¡¼¥¿¹½Â¤¤¹¤Ù¤Æ¤Ë¤ª¤¤¤Æ°Ê²¼¤Îµ¡Ç½¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë: +.SH 説明 +これらのマクロは、次の 3 つのデータ構造を定義して操作する: +リスト・テールキュー・循環キュー。 +3 つのデータ構造すべてにおいて以下の機能がサポートされている: .sp .RS 4 .PD 0 .IP * 4 -¿·¤¿¤Ê¥¨¥ó¥È¥ê¤ò¥ê¥¹¥È¤ÎÀèƬ¤ËÁÞÆþ¤¹¤ë¡£ +新たなエントリをリストの先頭に挿入する。 .IP * -¿·¤¿¤Ê¥¨¥ó¥È¥ê¤ò¥ê¥¹¥È¤Î¤É¤ÎÍ×ÁǤè¤ê¤â¸å¤ËÁÞÆþ¤¹¤ë¡£ +新たなエントリをリストのどの要素よりも後に挿入する。 .IP * -¥ê¥¹¥È¤ÎǤ°Õ¤Î¥¨¥ó¥È¥ê¤òºï½ü¤¹¤ë¡£ +リストの任意のエントリを削除する。 .IP * -¥ê¥¹¥È¤ò½çÊý¸þ¤Ëé¤ë¡£ +リストを順方向に辿る。 .PD .RE .PP -¥ê¥¹¥È¤Ï 3 ¤Ä¤Î¥Ç¡¼¥¿¹½Â¤¤ÎÃæ¤ÇºÇ¤âñ½ã¤Ç¤¢¤ê¡¢ -¾åµ­¤Îµ¡Ç½¤Î¤ß¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ +リストは 3 つのデータ構造の中で最も単純であり、 +上記の機能のみをサポートする。 -¥Æ¡¼¥ë¥­¥å¡¼¤Ï°Ê²¼¤Îµ¡Ç½¤òÄɲ乤ë: +テールキューは以下の機能を追加する: .RS 4 .IP * 4 -¥¨¥ó¥È¥ê¤ò¥ê¥¹¥È¤ÎºÇ¸å¤ËÄɲäǤ­¤ë¡£ +エントリをリストの最後に追加できる。 .RE .PP -¤¿¤À¤·: +ただし: .sp .RS 4 .PD 0 .IP 1. 4 -Á´¤Æ¤Î¥ê¥¹¥ÈÁÞÆþ¤Èºï½ü¤Ë¤ª¤¤¤Æ¡¢¥ê¥¹¥È¤ÎÀèƬ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +全てのリスト挿入と削除において、リストの先頭を指定しなければならない。 .IP 2. -³ÆÀèƬ¥¨¥ó¥È¥ê¤Ï 1 ¤Ä¤Ç¤Ï¤Ê¤¯ 2 ¤Ä¤Î¥Ý¥¤¥ó¥¿¤òɬÍפȤ¹¤ë¡£ +各先頭エントリは 1 つではなく 2 つのポインタを必要とする。 .IP 3. -¥ê¥¹¥È¤ÈÈæ¤Ù¤Æ¡¢¥³¡¼¥É¥µ¥¤¥º¤Ï 15% Â礭¤¯¤Ê¤ê¡¢Áàºî¤Ï 20% ÃÙ¤¯¤Ê¤ë¡£ +リストと比べて、コードサイズは 15% 大きくなり、操作は 20% 遅くなる。 .PD .RE .PP -½Û´Ä¥­¥å¡¼¤Ï°Ê²¼¤Îµ¡Ç½¤òÄɲ乤ë: +循環キューは以下の機能を追加する: .sp .RS 4 .PD 0 .IP * 4 -¥¨¥ó¥È¥ê¤ò¥ê¥¹¥È¤ÎºÇ¸å¤ËÄɲäǤ­¤ë¡£ +エントリをリストの最後に追加できる。 .IP * -¥¨¥ó¥È¥ê¤ò¾¤Î¥¨¥ó¥È¥ê¤ÎÁ°¤ËÄɲäǤ­¤ë¡£ +エントリを他のエントリの前に追加できる。 .IP * -µÕÊý¸þ¤ËËöÈø¤«¤éÀèƬ¤Øé¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +逆方向に末尾から先頭へ辿ることができる。 .PD .RE .PP -¤¿¤À¤·: +ただし: .sp .RS 4 .PD 0 .IP 1. 4 -Á´¤Æ¤Î¥ê¥¹¥ÈÁÞÆþ¤Èºï½ü¤Ë¤ª¤¤¤Æ¡¢¥ê¥¹¥È¤ÎÀèƬ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +全てのリスト挿入と削除において、リストの先頭を指定しなければならない。 .IP 2. -³ÆÀèƬ¥¨¥ó¥È¥ê¤Ï 1 ¤Ä¤Ç¤Ï¤Ê¤¯ 2 ¤Ä¤Î¥Ý¥¤¥ó¥¿¤òɬÍפȤ¹¤ë¡£ +各先頭エントリは 1 つではなく 2 つのポインタを必要とする。 .IP 3. -é¤ëºÝ¤Î½ªÎ»¾ò·ï¤¬¤è¤êÊ£»¨¤Ç¤¢¤ë¡£ +辿る際の終了条件がより複雑である。 .IP 4. -¥ê¥¹¥È¤ÈÈæ¤Ù¤Æ¡¢¥³¡¼¥É¥µ¥¤¥º¤Ï 40% Â礭¤¯¤Ê¤ê¡¢Áàºî¤Ï 45% ÃÙ¤¯¤Ê¤ë¡£ +リストと比べて、コードサイズは 40% 大きくなり、操作は 45% 遅くなる。 .PD .RE .PP -¥Þ¥¯¥íÄêµÁ¤Ë¤ª¤¤¤Æ +マクロ定義において .I TYPE -¤Ï¥æ¡¼¥¶ÄêµÁ¹½Â¤ÂΤÎ̾Á°¤Ç¤¢¤ê¡¢ +はユーザ定義構造体の名前であり、 .BR LIST_ENTRY , .BR TAILQ_ENTRY , .BR CIRCLEQ_ENTRY -¤Î²¿¤ì¤«·¿¤Î¥Õ¥£¡¼¥ë¥É¤È -»ØÄꤵ¤ì¤¿ +の何れか型のフィールドと +指定された .I NAME -¤ò´Þ¤Þ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -°ú¤­¿ô +を含まなければならない。 +引き数 .I HEADNAME -¤Ï¥æ¡¼¥¶ÄêµÁ¹½Â¤ÂΤÎ̾Á°¤Ç¤¢¤ê¡¢ -¥Þ¥¯¥í +はユーザ定義構造体の名前であり、 +マクロ .BR LIST_HEAD , .BR TAILQ_HEAD , .BR CIRCLEQ_HEAD -¤òÍѤ¤¤ÆÀë¸À¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ì¤é¤Î¥Þ¥¯¥í¤¬¤É¤Î¤è¤¦¤Ë»È¤ï¤ì¤ë¤«¤Ë¤Ä¤¤¤Æ¤Î¹¹¤Ê¤ëÀâÌÀ¤Ï¡¢ -°Ê²¼¤ÎÎã¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SS ¥ê¥¹¥È -¥ê¥¹¥È¤ÎÀèƬ¤Ë¤Ï¡¢ +を用いて宣言されなければならない。 +これらのマクロがどのように使われるかについての更なる説明は、 +以下の例を参照すること。 +.SS リスト +リストの先頭には、 .B LIST_HEAD -¥Þ¥¯¥í¤ÇÄêµÁ¤µ¤ì¤ë¹½Â¤ÂΤ¬ÃÖ¤«¤ì¤ë¡£ -¤³¤Î¹½Â¤ÂΤϥꥹ¥È¤ÎºÇ½é¤ÎÍ×ÁǤؤΥݥ¤¥ó¥¿¤ò 1 ¤Ä´Þ¤à¡£ -Í×ÁÇ¤Ï 2 ½Å¤Ë¥ê¥ó¥¯¤µ¤ì¤Æ¤ª¤ê¡¢ -Ǥ°Õ¤ÎÍ×ÁǤϥꥹ¥È¤òé¤é¤º¤Ëºï½ü¤Ç¤­¤ë¡£ -¿·¤·¤¤Í×ÁǤϴû¸¤ÎÍ×ÁǤθå¤Þ¤¿¤Ï¥ê¥¹¥È¤ÎÀèƬ¤ËÄɲäǤ­¤ë¡£ +マクロで定義される構造体が置かれる。 +この構造体はリストの最初の要素へのポインタを 1 つ含む。 +要素は 2 重にリンクされており、 +任意の要素はリストを辿らずに削除できる。 +新しい要素は既存の要素の後またはリストの先頭に追加できる。 .B LIST_HEAD -¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤Æ¤¤¤ë: +構造体は以下のように宣言されている: .in +4n .nf @@ -193,12 +193,12 @@ LIST_HEAD(HEADNAME, TYPE) head; .fi .in .PP -¤³¤³¤Ç +ここで .I HEADNAME -¤ÏÄêµÁ¤µ¤ì¤ë¹½Â¤ÂΤÎ̾Á°¤Ç¤¢¤ê¡¢ +は定義される構造体の名前であり、 .I TYPE -¤Ï¥ê¥ó¥¯Æâ¤Ç¥ê¥ó¥¯¤µ¤ì¤ëÍ×ÁǤη¿¤Ç¤¢¤ë¡£ -¥ê¥¹¥È¤ÎÀèƬ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ï¡¢¤½¤Î¸å¤Ç¼¡¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤ë: +はリンク内でリンクされる要素の型である。 +リストの先頭へのポインタは、その後で次のように宣言される: .in +4n .nf @@ -206,78 +206,78 @@ struct HEADNAME *headp; .fi .in .PP -(̾Á° +(名前 .IR "head" -¤È +と .IR "headp" -¤Ï¥æ¡¼¥¶¤¬ÁªÂò¤Ç¤­¤ë¡£) +はユーザが選択できる。) .PP -¥Þ¥¯¥í +マクロ .B LIST_ENTRY -¤Ï¥ê¥¹¥È¤ÎÍ×ÁǤòÀܳ¤¹¤ë¹½Â¤ÂΤòÀë¸À¤¹¤ë¡£ +はリストの要素を接続する構造体を宣言する。 .PP -¥Þ¥¯¥í +マクロ .B LIST_INIT -¤Ï +は .I head -¤Ç»²¾È¤µ¤ì¤ë¥ê¥¹¥È¤ò½é´ü²½¤¹¤ë¡£ +で参照されるリストを初期化する。 .PP -¥Þ¥¯¥í +マクロ .B LIST_INSERT_HEAD -¤Ï¿·¤¿¤ÊÍ×ÁÇ +は新たな要素 .I elm -¤ò¥ê¥¹¥È¤ÎÀèƬ¤ËÁÞÆþ¤¹¤ë¡£ +をリストの先頭に挿入する。 .PP -¥Þ¥¯¥í +マクロ .B LIST_INSERT_AFTER -¤Ï¿·¤¿¤ÊÍ×ÁÇ +は新たな要素 .I elm -¤òÍ×ÁÇ +を要素 .I listelm -¤Î¸å¤ËÁÞÆþ¤¹¤ë¡£ +の後に挿入する。 .PP -¥Þ¥¯¥í +マクロ .B LIST_REMOVE -¤ÏÍ×ÁÇ +は要素 .I elm -¤ò¥ê¥¹¥È¤«¤éºï½ü¤¹¤ë¡£ -.SS ¥ê¥¹¥È¤ÎÎã +をリストから削除する。 +.SS リストの例 .nf LIST_HEAD(listhead, entry) head; -struct listhead *headp; /* ¥ê¥¹¥È¤ÎÀèƬ¡£*/ +struct listhead *headp; /* リストの先頭。*/ struct entry { ... - LIST_ENTRY(entry) entries; /* ¥ê¥¹¥È¡£ */ + LIST_ENTRY(entry) entries; /* リスト。 */ ... } *n1, *n2, *np; -LIST_INIT(&head); /* ¥ê¥¹¥È¤ò½é´ü²½¤¹¤ë¡£*/ +LIST_INIT(&head); /* リストを初期化する。*/ -n1 = malloc(sizeof(struct entry)); /* ÀèƬ¤ËÁÞÆþ¤¹¤ë¡£*/ +n1 = malloc(sizeof(struct entry)); /* 先頭に挿入する。*/ LIST_INSERT_HEAD(&head, n1, entries); -n2 = malloc(sizeof(struct entry)); /* ¸å¤í¤ËÁÞÆþ¤¹¤ë¡£*/ +n2 = malloc(sizeof(struct entry)); /* 後ろに挿入する。*/ LIST_INSERT_AFTER(n1, n2, entries); - /* ½çÊý¸þ¤Ëé¤ë¡£*/ + /* 順方向に辿る。*/ for (np = head.lh_first; np != NULL; np = np\->entries.le_next) np\-> ... -while (head.lh_first != NULL) /* ºï½ü¤¹¤ë¡£*/ +while (head.lh_first != NULL) /* 削除する。*/ LIST_REMOVE(head.lh_first, entries); .fi -.SS ¥Æ¡¼¥ë¥­¥å¡¼ -¥Æ¡¼¥ë¥­¥å¡¼¤ÎÀèƬ¤Ë¤Ï +.SS テールキュー +テールキューの先頭には .B TAILQ_HEAD -¥Þ¥¯¥í¤ÇÄêµÁ¤µ¤ì¤ë¹½Â¤ÂΤ¬ÃÖ¤«¤ì¤ë¡£ -¤³¤Î¹½Â¤ÂÎ¤Ï 1 ÁȤΥݥ¤¥ó¥¿¤ò´Þ¤ó¤Ç¤¤¤ë¡£ -1 ¤Ä¤Ï¥Æ¡¼¥ë¥­¥å¡¼¤ÎºÇ½é¤ÎÍ×ÁǤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ê¡¢ -¤â¤¦ 1 ¤Ä¤Ï¥Æ¡¼¥ë¥­¥å¡¼¤ÎºÇ¸å¤ÎÍ×ÁǤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ -Í×ÁÇ¤Ï 2 ½Å¤Ë¥ê¥ó¥¯¤µ¤ì¤Æ¤ª¤ê¡¢ -Ǥ°Õ¤ÎÍ×ÁǤϥơ¼¥ë¥­¥å¡¼¤òé¤é¤º¤Ëºï½ü¤Ç¤­¤ë¡£ -¿·¤·¤¤Í×ÁǤϴû¸¤ÎÍ×ÁǤθå¤Þ¤¿¤Ï¥Æ¡¼¥ë¥­¥å¡¼¤ÎÀèƬ¤Þ¤¿¤ÏËöÈø¤ËÄɲäǤ­¤ë¡£ +マクロで定義される構造体が置かれる。 +この構造体は 1 組のポインタを含んでいる。 +1 つはテールキューの最初の要素へのポインタであり、 +もう 1 つはテールキューの最後の要素へのポインタである。 +要素は 2 重にリンクされており、 +任意の要素はテールキューを辿らずに削除できる。 +新しい要素は既存の要素の後またはテールキューの先頭または末尾に追加できる。 .B TAILQ_HEAD -¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +構造体は以下のように定義されている: .in +4n .nf @@ -285,12 +285,12 @@ TAILQ_HEAD(HEADNAME, TYPE) head; .fi .in .PP -¤³¤³¤Ç +ここで .Li HEADNAME -¤ÏÄêµÁ¤µ¤ì¤ë¹½Â¤ÂΤÎ̾Á°¤Ç¤¢¤ê¡¢ +は定義される構造体の名前であり、 .Li TYPE -¤Ï¥Æ¡¼¥ë¥­¥å¡¼Æâ¤Ç¥ê¥ó¥¯¤µ¤ì¤ëÍ×ÁǤη¿¤Ç¤¢¤ë¡£ -¥Æ¡¼¥ë¥­¥å¡¼¤ÎÀèƬ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ï¡¢¤½¤Î¸å¤Ç¼¡¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤ë: +はテールキュー内でリンクされる要素の型である。 +テールキューの先頭へのポインタは、その後で次のように宣言される: .in +4n .nf @@ -298,88 +298,88 @@ struct HEADNAME *headp; .fi .in .PP -(̾Á° +(名前 .IR "head" -¤È +と .IR "headp" -¤Ï¥æ¡¼¥¶¤¬ÁªÂò¤Ç¤­¤ë¡£) +はユーザが選択できる。) .PP -¥Þ¥¯¥í +マクロ .B TAILQ_ENTRY -¤Ï¥Æ¡¼¥ë¥­¥å¡¼¤ÎÍ×ÁǤòÀܳ¤¹¤ë¹½Â¤ÂΤòÀë¸À¤¹¤ë¡£ +はテールキューの要素を接続する構造体を宣言する。 .PP -¥Þ¥¯¥í +マクロ .B TAILQ_INIT -¤Ï +は .I head -¤Ç»²¾È¤µ¤ì¤ë¥Æ¡¼¥ë¥­¥å¡¼¤ò½é´ü²½¤¹¤ë¡£ +で参照されるテールキューを初期化する。 .PP -¥Þ¥¯¥í +マクロ .B TAILQ_INSERT_HEAD -¤Ï¿·¤¿¤ÊÍ×ÁÇ +は新たな要素 .I elm -¤ò¥Æ¡¼¥ë¥­¥å¡¼¤ÎÀèƬ¤ËÁÞÆþ¤¹¤ë¡£ +をテールキューの先頭に挿入する。 .PP -¥Þ¥¯¥í +マクロ .B TAILQ_INSERT_TAIL -¤Ï¿·¤¿¤ÊÍ×ÁÇ +は新たな要素 .I elm -¤ò¥Æ¡¼¥ë¥­¥å¡¼¤ÎËöÈø¤ËÁÞÆþ¤¹¤ë¡£ +をテールキューの末尾に挿入する。 .PP -¥Þ¥¯¥í +マクロ .B TAILQ_INSERT_AFTER -¤Ï¿·¤¿¤ÊÍ×ÁÇ +は新たな要素 .I elm -¤òÍ×ÁÇ +を要素 .Fa listelm -¤Î¸å¤ËÁÞÆþ¤¹¤ë¡£ +の後に挿入する。 .PP -¥Þ¥¯¥í +マクロ .B TAILQ_REMOVE -¤ÏÍ×ÁÇ +は要素 .I elm -¤ò¥Æ¡¼¥ë¥­¥å¡¼¤«¤éºï½ü¤¹¤ë¡£ -.SS ¥Æ¡¼¥ë¥­¥å¡¼¤ÎÎã +をテールキューから削除する。 +.SS テールキューの例 .nf TAILQ_HEAD(tailhead, entry) head; -struct tailhead *headp; /* ¥Æ¡¼¥ë¥­¥å¡¼¤ÎÀèƬ¡£*/ +struct tailhead *headp; /* テールキューの先頭。*/ struct entry { ... - TAILQ_ENTRY(entry) entries; /* ¥Æ¡¼¥ë¥­¥å¡¼¡£*/ + TAILQ_ENTRY(entry) entries; /* テールキュー。*/ ... } *n1, *n2, *np; -TAILQ_INIT(&head); /* ¥­¥å¡¼¤ò½é´ü²½¤¹¤ë¡£*/ +TAILQ_INIT(&head); /* キューを初期化する。*/ -n1 = malloc(sizeof(struct entry)); /* ÀèƬ¤ËÁÞÆþ¤¹¤ë¡£*/ +n1 = malloc(sizeof(struct entry)); /* 先頭に挿入する。*/ TAILQ_INSERT_HEAD(&head, n1, entries); -n1 = malloc(sizeof(struct entry)); /* ËöÈø¤ËÁÞÆþ¤¹¤ë¡£*/ +n1 = malloc(sizeof(struct entry)); /* 末尾に挿入する。*/ TAILQ_INSERT_TAIL(&head, n1, entries); -n2 = malloc(sizeof(struct entry)); /* ¸å¤í¤ËÁÞÆþ¤¹¤ë¡£*/ +n2 = malloc(sizeof(struct entry)); /* 後ろに挿入する。*/ TAILQ_INSERT_AFTER(&head, n1, n2, entries); - /* ½çÊý¸þ¤Ëé¤ë¡£*/ + /* 順方向に辿る。*/ for (np = head.tqh_first; np != NULL; np = np\->entries.tqe_next) np\-> ... - /* ºï½ü¤¹¤ë¡£*/ + /* 削除する。*/ while (head.tqh_first != NULL) TAILQ_REMOVE(&head, head.tqh_first, entries); .fi -.SS ½Û´Ä¥­¥å¡¼ -½Û´Ä¥­¥å¡¼¤ÎÀèƬ¤Ë¤Ï +.SS 循環キュー +循環キューの先頭には .B CIRCLEQ_HEAD -¥Þ¥¯¥í¤ÇÄêµÁ¤µ¤ì¤ë¹½Â¤ÂΤ¬ÃÖ¤«¤ì¤ë¡£ -¤³¤Î¹½Â¤ÂÎ¤Ï 1 ÁȤΥݥ¤¥ó¥¿¤ò´Þ¤ó¤Ç¤¤¤ë¡£ -1 ¤Ä¤Ï½Û´Ä¥­¥å¡¼¤ÎºÇ½é¤ÎÍ×ÁǤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ê¡¢ -¤â¤¦ 1 ¤Ä¤Ï½Û´Ä¥­¥å¡¼¤ÎºÇ¸å¤ÎÍ×ÁǤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ -Í×ÁÇ¤Ï 2 ½Å¤Ë¥ê¥ó¥¯¤µ¤ì¤Æ¤ª¤ê¡¢ -Ǥ°Õ¤ÎÍ×ÁǤϥ­¥å¡¼¤òé¤é¤º¤Ëºï½ü¤Ç¤­¤ë¡£ -¿·¤·¤¤Í×ÁǤϡ¢´û¸¤ÎÍ×ÁǤθå¤Þ¤¿¤ÏÁ°¡¢¤Þ¤¿¤Ï¥­¥å¡¼¤ÎÀèƬ¤Þ¤¿¤ÏËöÈø¤ËÄɲäǤ­¤ë¡£ +マクロで定義される構造体が置かれる。 +この構造体は 1 組のポインタを含んでいる。 +1 つは循環キューの最初の要素へのポインタであり、 +もう 1 つは循環キューの最後の要素へのポインタである。 +要素は 2 重にリンクされており、 +任意の要素はキューを辿らずに削除できる。 +新しい要素は、既存の要素の後または前、またはキューの先頭または末尾に追加できる。 A .B CIRCLEQ_HEAD -¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +構造体は以下のように定義されている: .in +4n .nf @@ -387,12 +387,12 @@ CIRCLEQ_HEAD(HEADNAME, TYPE) head; .fi .in .PP -¤³¤³¤Ç +ここで .IR "HEADNAME" -¤ÏÄêµÁ¤µ¤ì¤ë¹½Â¤ÂΤÎ̾Á°¤Ç¤¢¤ê¡¢ +は定義される構造体の名前であり、 .IR "TYPE" -¤Ï½Û´Ä¥­¥å¡¼Æâ¤Ç¥ê¥ó¥¯¤µ¤ì¤ëÍ×ÁǤη¿¤Ç¤¢¤ë¡£ -½Û´Ä¥­¥å¡¼¤ÎÀèƬ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ï¡¢¤½¤Î¸å¤Ç¼¡¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤ë: +は循環キュー内でリンクされる要素の型である。 +循環キューの先頭へのポインタは、その後で次のように宣言される: .in +4n .nf @@ -400,90 +400,90 @@ struct HEADNAME *headp; .fi .in .PP -(̾Á° +(名前 .I head -¤È +と .I headp -¤Ï¥æ¡¼¥¶¤¬ÁªÂò¤Ç¤­¤ë¡£) +はユーザが選択できる。) .PP -¥Þ¥¯¥í +マクロ .B CIRCLEQ_ENTRY -¤Ï½Û´Ä¥­¥å¡¼¤ÎÍ×ÁǤòÀܳ¤¹¤ë¹½Â¤ÂΤòÀë¸À¤¹¤ë¡£ +は循環キューの要素を接続する構造体を宣言する。 .PP -¥Þ¥¯¥í +マクロ .B CIRCLEQ_INIT -¤Ï +は .I head -¤Ç»²¾È¤µ¤ì¤ë½Û´Ä¥­¥å¡¼¤ò½é´ü²½¤¹¤ë¡£ +で参照される循環キューを初期化する。 .PP -¥Þ¥¯¥í +マクロ .B CIRCLEQ_INSERT_HEAD -¤Ï¿·¤¿¤ÊÍ×ÁÇ +は新たな要素 .I elm -¤ò½Û´Ä¥­¥å¡¼¤ÎÀèƬ¤ËÁÞÆþ¤¹¤ë¡£ +を循環キューの先頭に挿入する。 .PP -¥Þ¥¯¥í +マクロ .B CIRCLEQ_INSERT_TAIL -¤Ï¿·¤¿¤ÊÍ×ÁÇ +は新たな要素 .I elm -¤ò½Û´Ä¥­¥å¡¼¤ÎËöÈø¤ËÁÞÆþ¤¹¤ë¡£ +を循環キューの末尾に挿入する。 .PP -¥Þ¥¯¥í +マクロ .B CIRCLEQ_INSERT_AFTER -¤Ï¿·¤¿¤ÊÍ×ÁÇ +は新たな要素 .I elm -¤òÍ×ÁÇ +を要素 .I listelm -¤Î¸å¤ËÁÞÆþ¤¹¤ë¡£ +の後に挿入する。 .PP -¥Þ¥¯¥í +マクロ .B CIRCLEQ_INSERT_AFTER -¤Ï¿·¤¿¤ÊÍ×ÁÇ +は新たな要素 .I elm -¤òÍ×ÁÇ +を要素 .I listelm -¤ÎÁ°¤ËÁÞÆþ¤¹¤ë¡£ +の前に挿入する。 .PP -¥Þ¥¯¥í +マクロ .B CIRCLEQ_REMOVE -¤ÏÍ×ÁÇ +は要素 .I elm -¤ò½Û´Ä¥­¥å¡¼¤«¤éºï½ü¤¹¤ë¡£ -.SS ½Û´Ä¥­¥å¡¼¤ÎÎã +を循環キューから削除する。 +.SS 循環キューの例 .nf CIRCLEQ_HEAD(circleq, entry) head; -struct circleq *headp; /* ½Û´Ä¥­¥å¡¼¤ÎÀèƬ¡£*/ +struct circleq *headp; /* 循環キューの先頭。*/ struct entry { ... - CIRCLEQ_ENTRY(entry) entries; /* ½Û´Ä¥­¥å¡¼¡£*/ + CIRCLEQ_ENTRY(entry) entries; /* 循環キュー。*/ ... } *n1, *n2, *np; -CIRCLEQ_INIT(&head); /* ½Û´Ä¥­¥å¡¼¤ò½é´ü²½¤¹¤ë¡£*/ +CIRCLEQ_INIT(&head); /* 循環キューを初期化する。*/ -n1 = malloc(sizeof(struct entry)); /* ÀèƬ¤ËÁÞÆþ¤¹¤ë¡£*/ +n1 = malloc(sizeof(struct entry)); /* 先頭に挿入する。*/ CIRCLEQ_INSERT_HEAD(&head, n1, entries); -n1 = malloc(sizeof(struct entry)); /* ËöÈø¤ËÁÞÆþ¤¹¤ë¡£*/ +n1 = malloc(sizeof(struct entry)); /* 末尾に挿入する。*/ CIRCLEQ_INSERT_TAIL(&head, n1, entries); -n2 = malloc(sizeof(struct entry)); /* ¸å¤í¤ËÁÞÆþ¤¹¤ë¡£*/ +n2 = malloc(sizeof(struct entry)); /* 後ろに挿入する。*/ CIRCLEQ_INSERT_AFTER(&head, n1, n2, entries); -n2 = malloc(sizeof(struct entry)); /* Á°¤ËÁÞÆþ¤¹¤ë¡£*/ +n2 = malloc(sizeof(struct entry)); /* 前に挿入する。*/ CIRCLEQ_INSERT_BEFORE(&head, n1, n2, entries); - /* ½çÊý¸þ¤Ëé¤ë¡£*/ + /* 順方向に辿る。*/ for (np = head.cqh_first; np != (void *)&head; np = np\->entries.cqe_next) np\-> ... - /* µÕÊý¸þ¤Ëé¤ë¡£*/ + /* 逆方向に辿る。*/ for (np = head.cqh_last; np != (void *)&head; np = np\->entries.cqe_prev) np\-> ... - /* ºï½ü¤¹¤ë¡£*/ + /* 削除する。*/ while (head.cqh_first != (void *)&head) CIRCLEQ_REMOVE(&head, head.cqh_first, entries); .fi -.SH ½àµò -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -BSD ·Ï¤Ë¸ºß¤¹¤ë¡£ -queue ´Ø¿ô¤Ï 4.4BSD ¤Ç½é¤á¤ÆÅо줷¤¿¡£ +.SH 準拠 +POSIX.1-2001 にはない。 +BSD 系に存在する。 +queue 関数は 4.4BSD で初めて登場した。 diff --git a/release/man3/raise.3 b/release/man3/raise.3 index 9069d7db..940b371f 100644 --- a/release/man3/raise.3 +++ b/release/man3/raise.3 @@ -30,18 +30,18 @@ .\" Updated 2008-08-08, Akihiro MOTOKI , LDP v3.05 .\" .TH RAISE 3 2008-10-17 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -raise \- ¸Æ¤Ó½Ð¤·¸µ¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë -.SH ½ñ¼° +.SH 名前 +raise \- 呼び出し元にシグナルを送る +.SH 書式 .nf .B #include .sp .BI "int raise(int " sig ); .fi -.SH ÀâÌÀ +.SH 説明 .BR raise () -´Ø¿ô¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤â¤·¤¯¤Ï¥¹¥ì¥Ã¥É¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ -¥·¥ó¥°¥ë¥¹¥ì¥Ã¥É¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¡¢°Ê²¼¤ÈÅù²Á¤Ç¤¢¤ë¡£ +関数は、呼び出し元のプロセスもしくはスレッドにシグナルを送る。 +シングルスレッドのプログラムでは、以下と等価である。 .sp .in +4n .nf @@ -49,7 +49,7 @@ kill(getpid(), sig); .fi .in .PP -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¡¢°Ê²¼¤ÈÅù²Á¤Ç¤¢¤ë¡£ +マルチスレッドのプログラムでは、以下と等価である。 .sp .in +4n .nf @@ -57,14 +57,14 @@ pthread_kill(pthread_self(), sig); .fi .in .PP -¥·¥°¥Ê¥ë¤Ëµ¯°ø¤·¤Æ¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¾ì¹ç¤Ë¤Ï¡¢ +シグナルに起因してシグナル・ハンドラが呼び出される場合には、 .BR raise () -¤¬ÊÖ¤ë¤Î¤Ïɬ¤º¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤¬Ê֤俸å¤Ë¤Ê¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤ò¡¢¼ºÇÔ¤·¤¿¾ì¹ç¤Ï 0 °Ê³°¤ÎÃͤòÊÖ¤¹¡£ -.SH ½àµò +が返るのは必ずシグナル・ハンドラが返った後になる。 +.SH 返り値 +成功した場合は 0 を、失敗した場合は 0 以外の値を返す。 +.SH 準拠 C89, C99, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getpid (2), .BR kill (2), .BR sigaction (2), diff --git a/release/man3/rand.3 b/release/man3/rand.3 index bc2327fb..263d0561 100644 --- a/release/man3/rand.3 +++ b/release/man3/rand.3 @@ -42,9 +42,9 @@ .\" Updated 2008-08-08, Akihiro MOTOKI , LDP v3.05 .\" .TH RAND 3 2008-08-29 "" "Linux Programmer's Manual" -.SH ̾Á° -rand, srand \- Íð¿ô¤òÀ¸À®¤¹¤ë´Ø¿ô -.SH ½ñ¼° +.SH 名前 +rand, srand \- 乱数を生成する関数 +.SH 書式 .nf .B #include .sp @@ -56,101 +56,101 @@ rand, srand \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR rand_r (): _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR rand () -´Ø¿ô¤Ï [0,\ \fBRAND_MAX\fR] ¤ÎÈϰϤε¿»÷Íð¿ôÀ°¿ô¤òÊÖ¤¹¡£ +関数は [0,\ \fBRAND_MAX\fR] の範囲の疑似乱数整数を返す。 .PP .BR srand () -´Ø¿ô¤Ï¡¢ +関数は、 .BR rand () -´Ø¿ô¤Çºî¤é¤ì¤ëµ¿»÷Íð¿ôÀ°¿ô·ÏÎó¤Î¿·¤·¤¤¼ï¤È¤·¤Æ¡¢ -¤½¤Î°ú¤­¿ô¤ÎÃͤò»ÈÍѤ¹¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤ò»ÈÍѤ·¤Æºî¤é¤ì¤¿µ¿»÷Íð¿ô·ÏÎó¤Ï¡¢ -Ʊ¤¸Ãͤò°ú¤­¿ô¤È¤·¤Æ +関数で作られる疑似乱数整数系列の新しい種として、 +その引き数の値を使用する。 +これらの関数を使用して作られた疑似乱数系列は、 +同じ値を引き数として .BR srand () -¤ò¸Æ¤Ö¤³¤È¤Ç¡¢ -ºÆ¸½¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£ +を呼ぶことで、 +再現することが可能である。 .PP -¼ï¤ÎÃͤ¬Í¿¤¨¤é¤ì¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ +種の値が与えられない場合には、 .BR rand () -´Ø¿ô¤Ï -¼«Æ°Åª¤Ë 1 ¤ò¼ï¤È¤¹¤ë¡£ +関数は +自動的に 1 を種とする。 .PP .BR rand () -´Ø¿ô¤ÏºÆÆþ²Äǽ (reentrant) ¤Ç¤Ï¤Ê¤¤¡¢¤Ä¤Þ¤ê¥¹¥ì¥Ã¥É¡¦¥»¡¼¥Õ¤Ç¤Ï¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¡¢¤³¤Î´Ø¿ô¤Ï±£¤·¾õÂÖ¤ò»ý¤Ã¤Æ¤ª¤ê¡¢¸Æ¤Ó½Ð¤µ¤ì¤ëÅÙ¤ËÊѹ¹¤¹¤ë¤«¤é¤Ç¤¢¤ë¡£ -¤Á¤ç¤¦¤É¤³¤Î±£¤·¾õÂÖ¤¬¼¡¤Î¸Æ¤Ó½Ð¤·»þ¤ÎÍð¿ô¤Î¼ï¤È¤·¤Æ»È¤ï¤ì¤ë¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¡£ -¼ÂºÝ¤Ë¤Ï¤â¤¦¾¯¤·Ê£»¨¤«¤â¤·¤ì¤Ê¤¤¤¬¡£¥¹¥ì¥Ã¥É¤ò»ÈÍѤ¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç -ºÆ¸½²Äǽ¤ÊÆ°ºî¤ò¤µ¤»¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢¤³¤Î±£¤·¾õÂÖ¤¬¸¶°ø¤ÇºÆ¸½À­¤¬¤Ê¤¯¤Ê¤ë¡£ +関数は再入可能 (reentrant) ではない、つまりスレッド・セーフではない。 +なぜなら、この関数は隠し状態を持っており、呼び出される度に変更するからである。 +ちょうどこの隠し状態が次の呼び出し時の乱数の種として使われるようなものである。 +実際にはもう少し複雑かもしれないが。スレッドを使用するアプリケーションで +再現可能な動作をさせたい場合には、この隠し状態が原因で再現性がなくなる。 .BR rand_r () -´Ø¿ô¤Ï +関数は .I unsigned int -·¿¤ÎÊÑ¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò°ú¤­¿ô¤Ë¤È¤ê¡¢ -¤³¤ÎÊÑ¿ô¤ò¾õÂÖ³ÊǼÍѤ˻ÈÍѤ¹¤ë¡£ -¾õÂÖ¿ô¤¬Èó¾ï¤Ë¾®¤µ¤¤¤Î¤Ç¡¢¤³¤Î´Ø¿ô¤Ï¤¢¤Þ¤ê¤è¤¤µ¼»÷Íð¿ôÀ¸À®´ï¤È¤Ï¸À¤¨¤Ê¤¤¤À¤í¤¦¡£ -Âå¤ï¤ê¤Ë +型の変数へのポインタを引き数にとり、 +この変数を状態格納用に使用する。 +状態数が非常に小さいので、この関数はあまりよい擬似乱数生成器とは言えないだろう。 +代わりに .BR drand48_r (3) -¤ò»È¤¦¤È¤è¤¤¡£ -.SH ÊÖ¤êÃÍ +を使うとよい。 +.SH 返り値 .BR rand () -¤È +と .BR rand_r () -´Ø¿ô¤Ï 0 ¤È +関数は 0 と .B RAND_MAX -¤Î´Ö¤Î¿ô¤òÊÖ¤¹¡£ +の間の数を返す。 .BR srand () -´Ø¿ô¤ÏÃͤòÊÖ¤µ¤Ê¤¤¡£ -.SH ½àµò -´Ø¿ô +関数は値を返さない。 +.SH 準拠 +関数 .BR rand () -¤È +と .BR srand () -¤Ï SVr4, 4.3BSD, C89, C99, POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ -´Ø¿ô +は SVr4, 4.3BSD, C89, C99, POSIX.1-2001 に準拠している。 +関数 .BR rand_r () -¤Ï POSIX.1-2001 ¤ËͳÍ褹¤ë¡£ -POSIX.1-2008 ¤Ï¡¢ +は POSIX.1-2001 に由来する。 +POSIX.1-2008 は、 .BR rand_r () -¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£ -.SH Ãí°Õ +を廃止予定としている。 +.SH 注意 .BR rand () -¤È +と .BR srand () -¤Î Linux C Library ÈǤϡ¢ +の Linux C Library 版は、 .BR random (3) -¤È +と .BR srandom (3) -¤Îξ´Ø¿ô¤ÈƱ¤¸Íð¿ôÀ¸À® -¥¢¥ë¥´¥ê¥º¥à¤ò»ÈÍѤ·¤Æ¤¤¤ë¡£¤½¤Î¤¿¤á¡¢²¼°Ì¤Î¥Ó¥Ã¥È¤Ï¾å°Ì¤Î¥Ó¥Ã¥È¤È -Ʊ¤¸¤¯¤é¤¤¤Ë¥é¥ó¥À¥à¤Ç¤¢¤ë¡£ -¤·¤«¤·¡¢µìÈǤΠ+の両関数と同じ乱数生成 +アルゴリズムを使用している。そのため、下位のビットは上位のビットと +同じくらいにランダムである。 +しかし、旧版の .BR rand () -¤Î¼ÂÁõ¤ä¡¢Â¾¤Î¥·¥¹¥Æ¥à¤Î¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¡¢²¼°Ì¤Î¥Ó¥Ã¥È¤¬¾å°Ì¤Î¥Ó¥Ã¥È¤Û¤É -¥é¥ó¥À¥à¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¡£°Ü¿¢À­¤ò¹â¤á¤ë¾ì¹ç¤Ç¤â¡¢ÀºÅ٤ι⤤Íð¿ô¤¬É¬Í×¤Ê -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤Î´Ø¿ô¤Ï»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤ -(Âå¤ï¤ê¤Ë +の実装や、他のシステムの現在の実装では、下位のビットが上位のビットほど +ランダムになっていない。移植性を高める場合でも、精度の高い乱数が必要な +アプリケーションではこの関数は使用してはいけない +(代わりに .BR random (3) -¤ò»È¤¦¤³¤È)¡£ -.SH Îã -POSIX 1003.1-2003 ¤Ç¤Ï¡¢ +を使うこと)。 +.SH 例 +POSIX 1003.1-2003 では、 .BR rand () -¤È +と .BR srand () -¤Î¼ÂÁõÎã¤È¤·¤Æ°Ê²¼¤òµó¤²¤Æ¤¤¤ë¡£¤³¤ì¤Ï¡¢°Û¤Ê¤ë£²¤Ä¤Î¥Þ¥·¥ó¤ÇƱ¤¸Íð¿ô·ÏÎó¤¬ -ɬÍפʾì¹ç¤Ë¤ÏÊØÍø¤Ç¤¢¤í¤¦¡£ +の実装例として以下を挙げている。これは、異なる2つのマシンで同じ乱数系列が +必要な場合には便利であろう。 .sp .in +4n .nf static unsigned long next = 1; -/* RAND_MAX ¤ò 32767 ¤È²¾Äê */ +/* RAND_MAX を 32767 と仮定 */ int myrand(void) { next = next * 1103515245 + 12345; return((unsigned)(next/65536) % 32768); @@ -161,6 +161,6 @@ void mysrand(unsigned seed) { } .fi .in -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR drand48 (3), .BR random (3) diff --git a/release/man3/random.3 b/release/man3/random.3 index 1257f23b..87e30a9a 100644 --- a/release/man3/random.3 +++ b/release/man3/random.3 @@ -33,13 +33,13 @@ .\" Translated 1997-01-21, YOSHINO Takashi .\" Updated 2008-08-08, Akihiro MOTOKI .\" -.\" WORD: nonlinear additive feedback ÈóÀþ·Á²ÃË¡¥Õ¥£¡¼¥É¥Ð¥Ã¥¯ -.\" WORD: state array ¾õÂÖÇÛÎó +.\" WORD: nonlinear additive feedback 非線形加法フィードバック +.\" WORD: state array 状態配列 .\" .TH RANDOM 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -random, srandom, initstate, setstate \- Íð¿ô¤òÀ¸À®¤¹¤ë´Ø¿ô -.SH ½ñ¼° +.SH 名前 +random, srandom, initstate, setstate \- 乱数を生成する関数 +.SH 書式 .nf .B #include .sp @@ -53,9 +53,9 @@ random, srandom, initstate, setstate \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -68,107 +68,107 @@ _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR random () -´Ø¿ô¤Ï¡¢ÈóÀþ·Á²ÃË¡¥Õ¥£¡¼¥É¥Ð¥Ã¥¯¤òÍѤ¤¤¿Íð¿ôÀ¸À®´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢0 ¤«¤é \fBRAND_MAX\fR ¤Þ¤Ç¤Îµ¿»÷Íð¿ô¤òÊÖ¤¹¡£ -¤½¤Î¤¿¤á¤Ë 31 ¸Ä¤Î¥í¥ó¥°À°¿ô¤«¤é¤Ê¤ë¥Ç¥Õ¥©¥ë¥È¤Îɽ¤ò»ÈÍѤ¹¤ë¡£ -¤³¤ÎÍð¿ô¤òÀ¸À®¤¹¤ë´Ø¿ô¤Î¼þ´ü¤Ï¤È¤Æ¤âŤ¯¡¢¤ª¤è¤½ +関数は、非線形加法フィードバックを用いた乱数生成関数である。 +この関数は、0 から \fBRAND_MAX\fR までの疑似乱数を返す。 +そのために 31 個のロング整数からなるデフォルトの表を使用する。 +この乱数を生成する関数の周期はとても長く、およそ .I "16\ *\ ((2^31)\ \-\ 1)" -¤Ç¤¢¤ë¡£ +である。 .PP .BR srandom () -´Ø¿ô¤Ï¡¢ +関数は、 .BR random () -¤ÇÊÖ¤µ¤ì¤ëµ¿»÷Íð¿ôÀ°¿ô·ÏÎó¤Î¼ï¤òÀßÄꤹ¤ë¡£ -¤½¤Î¤¿¤á¤Ë¤Ï¿·¤·¤¤¼ï¤ò°ú¿ô¤Ë¤·¤Æ +で返される疑似乱数整数系列の種を設定する。 +そのためには新しい種を引数にして .BR srandom () -¤ò¸Æ¤Ù¤Ð¤è¤¤¡£ +を呼べばよい。 .BR random () -¤ÇÀ¸À®¤µ¤ì¤ë·ÏÎó¤Ï¡¢ -°ú¿ô¤ËƱ¤¸¼ï¤ÎÃͤòÍѤ¤¤Æ +で生成される系列は、 +引数に同じ種の値を用いて .BR srandom () -¤ò¸Æ¤Ö¤³¤È¤ÇºÆ¸½²Äǽ¤Ç¤¢¤ë¡£ -¼ï¤ÎÃͤ¬Í¿¤¨¤é¤ì¤Ê¤¤¾ì¹ç¤Ë¤Ï +を呼ぶことで再現可能である。 +種の値が与えられない場合には .BR random () -´Ø¿ô¤Ï¡¢¼«Æ°Åª¤Ë 1 ¤ò¼ï¤ËÀßÄꤹ¤ë¡£ +関数は、自動的に 1 を種に設定する。 .PP .BR initstate () -´Ø¿ô¤Ï¡¢ +関数は、 .BR random () -¤Ç»ÈÍѤµ¤ì¤ë¾õÂÖÇÛÎó -\fIstate\fP ¤ò½é´ü²½¤¹¤ë¡£ +で使用される状態配列 +\fIstate\fP を初期化する。 .BR initstate () -¤Ç¤Ï¡¢¾õÂÖÇÛÎó¤ÎÂ礭¤µ \fIn\fP ¤Ï -»ÈÍѤ¹¤ë´Ø¿ô¤ÎÍð¿ôÀ¸À®¤ÎÀ­Ç½¤ÎÄøÅÙ¤ò·èÄꤹ¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë -\(em ¾õÂÖÇÛÎó¤¬Â礭¤¤Äø¡¢Íð¿ô¤ÎÀ­Ç½¤Ï¤è¤¯¤Ê¤ë¡£ -\fIseed\fP ¤Ï½é´ü²½¤Î¤¿¤á¤Î¼ï¤Ç¤¢¤ë¡£ -¤³¤ì¤ÏÍð¿ô·ÏÎó¤Î³«»Ï°ÌÃÖ¤ò·èÄꤹ¤ë¤â¤Î¤Ç¤¢¤ê¡¢ -¤³¤ÎÃͤò»ØÄꤹ¤ë¤³¤È¤ÇƱ°ì¤Î³«»Ï°ÌÃÖ¤«¤éÍð¿ô¤ÎÀ¸À®¤ò -ºÆ³«¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +では、状態配列の大きさ \fIn\fP は +使用する関数の乱数生成の性能の程度を決定するために使用される +\(em 状態配列が大きい程、乱数の性能はよくなる。 +\fIseed\fP は初期化のための種である。 +これは乱数系列の開始位置を決定するものであり、 +この値を指定することで同一の開始位置から乱数の生成を +再開することができる。 .PP .BR setstate () -´Ø¿ô¤Ï¡¢ +関数は、 .BR random () -¤Ç»ÈÍѤµ¤ì¤ë¾õÂÖÇÛÎó¤òÊѹ¹¤¹¤ë¡£ -¾õÂÖÇÛÎó \fIstate\fP ¤Ï¡¢ +で使用される状態配列を変更する。 +状態配列 \fIstate\fP は、 .BR initstate () -¤Þ¤¿¤Ï +または .BR setstate () -¤¬ -¼¡¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë¤Þ¤Ç¡¢Íð¿ô¤ÎÀ¸À®¤Ë»ÈÍѤµ¤ì¤ë¡£ -\fIstate\fP ¤Ï +が +次に呼び出されるまで、乱数の生成に使用される。 +\fIstate\fP は .BR initstate () -¤òÍѤ¤¤ÆºÇ½é¤Ë½é´ü²½¤µ¤ì¤Æ¤¤¤ë¤«¡¢ -°ÊÁ°¤Ë¸Æ¤Ó½Ð¤·¤¿ +を用いて最初に初期化されているか、 +以前に呼び出した .BR setstate () -¤Î·ë²Ì¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +の結果でなければならない。 +.SH 返り値 .BR random () -´Ø¿ô¤Ï 0 ¤È +関数は 0 と .B RAND_MAX -¤Î´Ö¤ÎÃͤòÊÖ¤¹¡£ +の間の値を返す。 .BR srandom () -´Ø¿ô¤ÏÃͤòÊÖ¤µ¤Ê¤¤¡£ +関数は値を返さない。 .BR initstate () -´Ø¿ô¤ÏľÁ°¤Î¾õÂÖÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +関数は直前の状態配列へのポインタを返す。 .BR setstate () -´Ø¿ô¤ÏľÁ°¤Î¾õÂÖÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤·¡¢ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +関数は直前の状態配列へのポインタを返し、 +エラーの場合は NULL を返す。 +.SH エラー .TP .B EINVAL .BR initstate () -¤Ç8¥Ð¥¤¥È¤è¤ê¤â¾®¤µ¤¤¾õÂÖÇÛÎó¤ò»ØÄꤷ¤¿¡£ -.SH ½àµò +で8バイトよりも小さい状態配列を指定した。 +.SH 準拠 4.3BSD, POSIX.1-2001. -.SH Ãí°Õ -¾õÂÖÇÛÎó \fIn\fP ¤ÎÂ礭¤µ¤Î¸½ºß¤Î¡ÖºÇŬ¡×ÃÍ¤Ï -8¡¢32¡¢64¡¢128¡¢256 ¥Ð¥¤¥È¤Ç¤¢¤ë¡£ -¤½¤Î¾¤ÎÎ̤ò»ØÄꤷ¤¿¾ì¹ç¤Ë¤Ï¡¢»ØÄꤷ¤¿Î̤ò±Û¤¨¤Ê¤¤¾å½Ò¤ÎÃÍ¤Ë -ºÇ¤â¶á¤¤Ãͤˤʤ롣 -8 ¥Ð¥¤¥È̤Ëþ¤ÎÎ̤ò»ØÄꤷ¤¿¾ì¹ç¤Ë¤Ï¥¨¥é¡¼¤Î¸¶°ø¤È¤Ê¤ë¡£ +.SH 注意 +状態配列 \fIn\fP の大きさの現在の「最適」値は +8、32、64、128、256 バイトである。 +その他の量を指定した場合には、指定した量を越えない上述の値に +最も近い値になる。 +8 バイト未満の量を指定した場合にはエラーの原因となる。 -Ê£¿ô¤Î¥¹¥ì¥Ã¥É¤¬ +複数のスレッドが .BR random () -¤ò»È¤¦¤è¤¦¤Ê¾õ¶·¤Ç¤Ï¡¢¤³¤Î´Ø¿ô¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¤½¤Î¾ì¹ç¤Ë¤Ï +を使うような状況では、この関数を使用すべきではない。 +その場合には .BR random_r (3) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 -Íð¿ô¤ÎÀ¸À®¤ÏÊ£»¨¤ÊÏÃÂê¤Ç¤¢¤ë¡£ +乱数の生成は複雑な話題である。 .I Numerical Recipes in C: The Art of Scientific Computing (William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling; New York: Cambridge University Press, 2007, 3rd ed.) -¤Ç¤Ï¼ÂÍÑŪ¤ÊÍð¿ôÀ¸À®¤òÏÀÅÀ¤È¤·¤¿Í¥¤ì¤¿µÄÏÀ¤¬Âè 7 ¾Ï (Íð¿ô) ¤ÇŸ³«¤µ¤ì¤Æ¤¤¤ë¡£ +では実用的な乱数生成を論点とした優れた議論が第 7 ç«  (乱数) で展開されている。 -¤è¤êÍýÏÀŪ¤ÊµÄÏÀ¤Ë¤Ä¤¤¤Æ¤Ï Donald E. Knuth ¤Î +より理論的な議論については Donald E. Knuth の .IR "The Art of Computer Programming" , volume 2 (Seminumerical Algorithms), 2nd ed.; Reading, Massachusetts: Addison-Wesley Publishing Company, 1981 -¤ÎÂè 3 ¾Ï (Íð¿ô) ¤ò¸«¤è¡£¤³¤³¤Ç¤Ï¡¢ -¤¿¤¯¤µ¤ó¤Î¼ÂÍÑŪ¤ÊÏÃÂê¤Ë¤Ä¤¤¤Æ¤â¿¼¤¯ÌÖÍ夵¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +の第 3 ç«  (乱数) を見よ。ここでは、 +たくさんの実用的な話題についても深く網羅されている。 +.SH 関連項目 .BR drand48 (3), .BR rand (3), .BR random_r (3), diff --git a/release/man3/random_r.3 b/release/man3/random_r.3 index e5ce8468..eecb9dd0 100644 --- a/release/man3/random_r.3 +++ b/release/man3/random_r.3 @@ -26,10 +26,10 @@ .\" .\" .TH RANDOM_R 3 2008-03-07 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -random_r, srandom_r, initstate_r, setstate_r \- ¥ê¥¨¥ó¥È¥é¥ó¥È¤Ê -Íð¿ôÀ¸À®´ï -.SH ½ñ¼° +.SH 名前 +random_r, srandom_r, initstate_r, setstate_r \- リエントラントな +乱数生成器 +.SH 書式 .nf .B #include .sp @@ -44,9 +44,9 @@ random_r, srandom_r, initstate_r, setstate_r \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -58,76 +58,76 @@ glibc _SVID_SOURCE || _BSD_SOURCE .RE .ad b -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ +.SH 説明 +これらの関数は、 .BR random (3) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤Î¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤǡ¢Åù²Á¤Êµ¡Ç½¤ò»ý¤Ä¡£ -¤³¤ì¤é¤Ï¡¢ÆÈΩ¤·¤¿ºÆ¸½²Äǽ¤ÊÍð¿ôÎó¤ò³Æ¥¹¥ì¥Ã¥É¤¬ÆÀ¤ëɬÍפ¬¤¢¤ë¤è¤¦¤Ê -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¡¦¥×¥í¥°¥é¥à¤Ç¤Î»ÈÍѤËŬ¤·¤Æ¤¤¤ë¡£ +で説明されている関数のリエントラント版で、等価な機能を持つ。 +これらは、独立した再現可能な乱数列を各スレッドが得る必要があるような +マルチスレッド・プログラムでの使用に適している。 .BR random_r () -´Ø¿ô¤Ï +関数は .BR random (3) -¤ÈƱÍͤÀ¤¬¡¢ -Âç°èÊÑ¿ô (global variable) ¤Ç´ÉÍý¤µ¤ì¤ë¾õÂÖ¾ðÊó¤ò»È¤¦¤Î¤Ç¤Ï¤Ê¤¯¡¢ +と同様だが、 +大域変数 (global variable) で管理される状態情報を使うのではなく、 .I buf -¤¬»Ø¤¹°ú¤­¿ô¤Ë³ÊǼ¤µ¤ì¤¿¾õÂÖ¾ðÊó¤ò»È¤¦¡£ -À¸À®¤µ¤ì¤¿Íð¿ô¤Ï°ú¤­¿ô +が指す引き数に格納された状態情報を使う。 +生成された乱数は引き数 .I result -¤Ë³ÊǼ¤µ¤ì¤ÆÊÖ¤µ¤ì¤ë¡£ +に格納されて返される。 .BR srandom_r () -´Ø¿ô¤Ï +関数は .BR srandom (3) -¤ÈƱÍͤÀ¤¬¡¢ -Âç°èÊÑ¿ô¤Ç´ÉÍý¤µ¤ì¤ë¾õÂÖ¤ËÂбþ¤¹¤ëÍð¿ôÀ¸À®´ï¤Î¼ï¤Ç¤Ï¤Ê¤¯¡¢ +と同様だが、 +大域変数で管理される状態に対応する乱数生成器の種ではなく、 .I buf -¤¬»Ø¤¹¥ª¥Ö¥¸¥§¥¯¥È¤Ç´ÉÍý¤µ¤ì¤ë¾õÂÖ¤ËÂбþ¤¹¤ëÍð¿ôÀ¸À®´ï¤Î¼ï¤ò -½é´ü²½¤¹¤ë¡£ +が指すオブジェクトで管理される状態に対応する乱数生成器の種を +初期化する。 .BR initstate_r () -´Ø¿ô¤Ï +関数は .BR initstate (3) -¤ÈƱÍͤÀ¤¬¡¢Âç°èÊÑ¿ô¤Ç´ÉÍý¤µ¤ì¤ë¾õÂÖ¤ò½é´ü²½¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ +と同様だが、大域変数で管理される状態を初期化するのではなく、 .I buf -¤¬»Ø¤¹¥ª¥Ö¥¸¥§¥¯¥ÈÆâ¤Î¾õÂÖ¤ò½é´ü²½¤¹¤ë¡£ +が指すオブジェクト内の状態を初期化する。 .BR setstate_r () -´Ø¿ô¤Ï +関数は .BR setstate (3) -¤ÈƱÍͤÀ¤¬¡¢Âç°èÊÑ¿ô¤Ç´ÉÍý¤µ¤ì¤ë¾õÂÖ¤òÊѹ¹¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ +と同様だが、大域変数で管理される状態を変更するのではなく、 .I buf -¤¬»Ø¤¹¥ª¥Ö¥¸¥§¥¯¥ÈÆâ¤Î¾õÂÖ¤òÊѹ¹¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤·¡¢ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +が指すオブジェクト内の状態を変更する。 +.SH 返り値 +これらの関数は、成功すると 0 を返し、 +エラーの場合は \-1 を返す。 +.SH エラー .TP .B EINVAL -8 ¥Ð¥¤¥È¤è¤ê¾®¤µ¤¤¾õÂÖÇÛÎó¤¬ +8 バイトより小さい状態配列が .BR initstate_r () -¤Ë»ØÄꤵ¤ì¤¿¡£ +に指定された。 .TP .B EINVAL .BR setstate_r () -¤Î°ú¤­¿ô +の引き数 .I statebuf -¤« +か .I buf -¤¬ NULL ¤Ç¤¢¤Ã¤¿¡£ +が NULL であった。 .TP .B EINVAL .BR random_r () -¤Î°ú¤­¿ô +の引き数 .I buf -¤« +か .I result -¤¬ NULL ¤Ç¤¢¤Ã¤¿¡£ -.SH ½àµò -¤³¤ì¤é¤Î´Ø¿ô¤ÏÈóɸ½à¤Ç glibc ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ +が NULL であった。 +.SH 準拠 +これらの関数は非標準で glibc による拡張である。 .\" These functions appear to be on Tru64, but don't seem to be on .\" Solaris, HP-UX, or FreeBSD. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR drand48 (3), .BR rand (3), .BR random (3) diff --git a/release/man3/rcmd.3 b/release/man3/rcmd.3 index 359161ce..7fd6ae9b 100644 --- a/release/man3/rcmd.3 +++ b/release/man3/rcmd.3 @@ -42,13 +42,13 @@ .\" Japanese Version Copyright (c) 1999 NAKANO Takeo all rights reserved. .\" Translated Mon Mar 1 1999 by NAKANO Takeo .\" -.\"WORD: standard name (¥Û¥¹¥È¤Î) ɸ½à̾ -.\"WORD: regular file Ä̾ï¥Õ¥¡¥¤¥ë +.\"WORD: standard name (ホストの) 標準名 +.\"WORD: regular file 通常ファイル .\" .TH RCMD 3 2007-12-28 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -rcmd, rresvport, iruserok, ruserok \- ¥ê¥â¡¼¥È¥³¥Þ¥ó¥É¤Ë¥¹¥È¥ê¡¼¥à¤òÊÖ¤¹´Ø¿ô·² -.SH ½ñ¼° +.SH 名前 +rcmd, rresvport, iruserok, ruserok \- リモートコマンドにストリームを返す関数群 +.SH 書式 .nf .B #include \ \ \fP/* Or on some systems */ .sp @@ -65,156 +65,156 @@ rcmd, rresvport, iruserok, ruserok \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR rcmd (), .BR rresvport (), .BR ruserok (): _BSD_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR rcmd () -´Ø¿ô¤Ï¡¢¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¤¬¥ê¥â¡¼¥È¥Þ¥·¥ó¤Ç¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Ë -ÍѤ¤¤é¤ì¤ë¡£¤³¤Î¤È¤­Æø¢¥Ý¡¼¥ÈÈÖ¹æ¤ò¤â¤È¤Ë¤·¤¿Ç§¾Ú¥¹¥­¡¼¥à¤¬ -ÍѤ¤¤é¤ì¤ë¡£ +関数は、スーパーユーザーがリモートマシンでコマンドを実行するために +用いられる。このとき特権ポート番号をもとにした認証スキームが +用いられる。 .BR rresvport () -´Ø¿ô¤Ï¡¢Æø¢¥Ý¡¼¥È¶õ´Ö¤Î¥¢¥É¥ì¥¹¤ò»ý¤Ä¥½¥±¥Ã¥È¤Î -¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤òÊÖ¤¹¡£ +関数は、特権ポート空間のアドレスを持つソケットの +ディスクリプターを返す。 .BR iruserok () -´Ø¿ô¤È +関数と .BR ruserok () -´Ø¿ô¤Ï¡¢ +関数は、 .BR rcmd () -¤Ç¥µ¡¼¥Ó¥¹Í×µá¤ò¹Ô¤Ã¤¿¥¯¥é¥¤¥¢¥ó¥È¤Îǧ¾Ú¤ò¹Ô¤¦¤¿¤á¤Ë -¥µ¡¼¥Ð¡¼¤¬ÍѤ¤¤ë´Ø¿ô¤Ç¤¢¤ë¡£ -°Ê¾å¤Î 4 ¤Ä¤Î´Ø¿ô¤Ï¡¢¤¹¤Ù¤ÆƱ¤¸¥Õ¥¡¥¤¥ë¤Ëµ­½Ò¤µ¤ì¤Æ¤ª¤ê¡¢ +でサービス要求を行ったクライアントの認証を行うために +サーバーが用いる関数である。 +以上の 4 つの関数は、すべて同じファイルに記述されており、 .BR rshd (8) -¥µ¡¼¥Ð¡¼¤Ë¤è¤Ã¤Æ (¾¤Î´Ø¿ô¤È¤È¤â¤Ë) ÍøÍѤµ¤ì¤ë¡£ +サーバーによって (他の関数とともに) 利用される。 .PP .BR rcmd () -´Ø¿ô¤Ï +関数は .BR gethostbyname (3) -¤òÍѤ¤¤Æ +を用いて .I *ahost -¤Î»²¾È¤ò¹Ô¤¦¡£¥Û¥¹¥È¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ -¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤Ï +の参照を行う。ホストが存在しない場合は \-1 を返す。 +見つかった場合は .I *ahost -¤Ë¥Û¥¹¥È¤Îɸ½à̾ (standard name) ¤ò¥»¥Ã¥È¤·¤Æ¡¢ -ͽÌ󤵤ì¤Æ¤¤¤ë¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥Ý¡¼¥È +にホストの標準名 (standard name) をセットして、 +予約されているインターネットポート .I inport -·Ðͳ¤Ç¥µ¡¼¥Ð¡¼¤Ø¤ÎÀܳ¤ò³ÎΩ¤¹¤ë¡£ +経由でサーバーへの接続を確立する。 .PP -Àܳ¤ËÀ®¸ù¤·¤¿¤é¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥É¥á¥¤¥ó¤Ë¸ºß¤¹¤ë¥¿¥¤¥× +接続に成功したら、インターネットドメインに存在するタイプ .B SOCK_STREAM -¤Î¥½¥±¥Ã¥È¤¬¸Æ¤Ó½Ð¤·¤â¤È¤ËÊÖ¤µ¤ì¤ë¡£ -¤³¤Î¥½¥±¥Ã¥È¤ÎÁê¼ê¦¤Ï¥ê¥â¡¼¥È¥³¥Þ¥ó¥É¤Î +のソケットが呼び出しもとに返される。 +このソケットの相手側はリモートコマンドの .I stdin -¤ª¤è¤Ó +および .I stdout -¤ËÀܳ¤µ¤ì¤ë¡£ +に接続される。 .I fd2p -¤¬¥¼¥í¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢À©¸æ¥×¥í¥»¥¹¤Ø¤ÎÀܳ¤¬¤â¤¦°ì¤ÄÍÑ°Õ¤µ¤ì¡¢ -¤½¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤¬ +がゼロでない場合は、制御プロセスへの接続がもう一つ用意され、 +そのディスクリプターが .I *fd2p -¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ -À©¸æ¥×¥í¥»¥¹¤Ï¥ê¥â¡¼¥È¥³¥Þ¥ó¥É¤«¤é¤Îɸ½à¥¨¥é¡¼½ÐÎÏ (unit 2) ¤ò -¤³¤Î¥Á¥ã¥ó¥Í¥ë¤ËÊÖ¤¹¡£ -¤Þ¤¿À©¸æ¥×¥í¥»¥¹¤Ï¤³¤ÎÀܳ¤«¤é¼õ¤±¼è¤Ã¤¿¥Ð¥¤¥È¥Ç¡¼¥¿¤ò -UNIX ¥·¥°¥Ê¥ë¤ÎÈÖ¹æ¤È¤·¤Æ°·¤¤¡¢¥ê¥â¡¼¥È¥³¥Þ¥ó¥É¤Î¥×¥í¥»¥¹ -¥°¥ë¡¼¥×¤Ø¤È¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +にセットされる。 +制御プロセスはリモートコマンドからの標準エラー出力 (unit 2) を +このチャンネルに返す。 +また制御プロセスはこの接続から受け取ったバイトデータを +UNIX シグナルの番号として扱い、リモートコマンドのプロセス +グループへとシグナルを送る。 .I fd2p -¤¬¥¼¥í¤Î¾ì¹ç¤Ï¡¢ +がゼロの場合は、 .I stderr -(¥ê¥â¡¼¥È¥³¥Þ¥ó¥É¤Î unit 2) ¤Ï +(リモートコマンドの unit 2) は .I stdout -¤È°ì½ï¤Ë¤Þ¤È¤á¤é¤ì¤ë¡£¤Þ¤¿¤³¤Î¾ì¹ç¤Ï¥ê¥â¡¼¥È¥×¥í¥»¥¹¤Ø -Ǥ°Õ¤Î¥·¥°¥Ê¥ë¤òÁ÷¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¯¤Ê¤ë¡£ -¤¿¤À¤·ÂÓ°è³° (out-of-band) ¥Ç¡¼¥¿¤òÍѤ¤¤ì¤Ð¡¢ -¥ê¥â¡¼¥È¥×¥í¥»¥¹¤ÎÃí°Õ¤ò°ú¤¯¤³¤È¤Ï¤Ç¤­¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +と一緒にまとめられる。またこの場合はリモートプロセスへ +任意のシグナルを送ることはできなくなる。 +ただし帯域外 (out-of-band) データを用いれば、 +リモートプロセスの注意を引くことはできるかもしれない。 .PP -¥×¥í¥È¥³¥ë¤Î¾ÜºÙ¤Ï +プロトコルの詳細は .BR rshd (8) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +に記述されている。 .PP .BR rresvport () -´Ø¿ô¤ÏÆø¢¥¢¥É¥ì¥¹¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¤¿¥½¥±¥Ã¥È¤ò¼èÆÀ¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ -¤³¤Î¥½¥±¥Ã¥È¤Ï +関数は特権アドレスにバインドされたソケットを取得するために用いられる。 +このソケットは .BR rcmd () -¤Ê¤É¤Î´Ø¿ô¤Ç¤ÎÍøÍѤËŬ¤·¤Æ¤¤¤ë¡£¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥Ý¡¼¥È¤ÎÆø¢¥Ý¡¼¥È¤Ï¡¢ -0 ¤«¤é 1023 ¤ÎÈϰϤǤ¢¤ë¡£¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¤À¤±¤¬¤³¤ì¤é¤Î¥¢¥É¥ì¥¹¤ò -¥½¥±¥Ã¥È¤Ë¥Ð¥¤¥ó¥É¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +などの関数での利用に適している。インターネットポートの特権ポートは、 +0 から 1023 の範囲である。スーパーユーザーだけがこれらのアドレスを +ソケットにバインドすることができる。 .PP .BR iruserok () -¤È +と .BR ruserok () -´Ø¿ô¤Ï¡¢¤Þ¤º°Ê²¼¤Î°ú¿ô¤ò¼è¤ë: ¥ê¥â¡¼¥È¥Û¥¹¥È +関数は、まず以下の引数を取る: リモートホスト .RB ( iruserok () -¤Ï IP ¥¢¥É¥ì¥¹¤Ç¡¢ +は IP アドレスで、 .BR ruserok () -¤Ï¥Û¥¹¥È̾¤Ç»ØÄê)¡¢ 2 ¤Ä¤Î¥æ¡¼¥¶¡¼Ì¾¡¢¥í¡¼¥«¥ë¥æ¡¼¥¶¡¼¤Î̾Á°¤¬ -¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¤Î¤â¤Î¤Ç¤¢¤ë¤«¤É¤¦¤«¤ò¼¨¤¹¥Õ¥é¥°¡¢¤Ç¤¢¤ë¡£ -¤â¤·¥æ¡¼¥¶¡¼¤¬\fB¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¤Ç¤Ï¤Ê¤¤\fP¾ì¹ç¤Ï¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +はホスト名で指定)、 2 つのユーザー名、ローカルユーザーの名前が +スーパーユーザーのものであるかどうかを示すフラグ、である。 +もしユーザーが\fBスーパーユーザーではない\fP場合は、これらの関数は .I /etc/hosts.equiv -¥Õ¥¡¥¤¥ë¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¤ê¡¢ -ÆâÍƤΥÁ¥§¥Ã¥¯¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ -¥í¡¼¥«¥ë¥æ¡¼¥¶¡¼¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë +ファイルをチェックする。ファイルが見つからなかったり、 +内容のチェックに失敗した場合には、 +ローカルユーザーのホームディレクトリにある .I .rhosts -¥Õ¥¡¥¤¥ë¤ò¥Á¥§¥Ã¥¯¤·¤Æ¡¢¥µ¡¼¥Ó¥¹Í׵᤬µö²Ä¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«Ä´¤Ù¤ë¡£ +ファイルをチェックして、サービス要求が許可されているかどうか調べる。 .PP -¤³¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤«¤Ã¤¿¤ê¡¢ -Ä̾ï¥Õ¥¡¥¤¥ë (regular file) ¤Ç¤Ï¤Ê¤«¤Ã¤¿¤ê¡¢ -»ØÄê¥æ¡¼¥¶¡¼¤Þ¤¿¤Ï¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼°Ê³°¤Î½êÍ­¤À¤Ã¤¿¤ê¡¢ -½êÍ­¼Ô°Ê³°¤«¤é½ñ¤­¹þ¤ß²Äǽ¤À¤Ã¤¿¤ê¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ -¤³¤Î¥Á¥§¥Ã¥¯¤Ï¼«Æ°Åª¤Ë¼ºÇÔ¤¹¤ë¡£ -¥Þ¥·¥ó¤Î̾Á°¤¬ +このファイルが存在しなかったり、 +通常ファイル (regular file) ではなかったり、 +指定ユーザーまたはスーパーユーザー以外の所有だったり、 +所有者以外から書き込み可能だったりした場合には、 +このチェックは自動的に失敗する。 +マシンの名前が .I hosts.equiv -¤Ë¥ê¥¹¥È¤µ¤ì¤Æ¤¤¤¿¤ê¡¢ -¥Û¥¹¥È¤È¥ê¥â¡¼¥È¥æ¡¼¥¶¡¼¤Î̾Á°¤¬ +にリストされていたり、 +ホストとリモートユーザーの名前が .I .rhosts -¥Õ¥¡¥¤¥ë¤Ë½ñ¤«¤ì¤Æ¤¤¤¿¾ì¹ç¤Ë¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï¡¢ +ファイルに書かれていた場合には 0 が返される。 +それ以外の場合には、 .BR iruserok () -¤È +と .BR ruserok () -¤Ï \-1 ¤òÊÖ¤¹¡£ +は \-1 を返す。 .RB ( gethostname (2) -¤Ë¤è¤Ã¤Æ¼èÆÀ¤µ¤ì¤ë) ¥í¡¼¥«¥ë¥É¥á¥¤¥ó¤¬¥ê¥â¡¼¥È¤Î¥É¥á¥¤¥ó¤ÈƱ¤¸¾ì¹ç¤Ï¡¢ -¥Þ¥·¥ó¤Î̾Á°¤À¤±¤ò»ØÄꤹ¤ì¤Ð¤è¤¤¡£ +によって取得される) ローカルドメインがリモートのドメインと同じ場合は、 +マシンの名前だけを指定すればよい。 .PP -¥ê¥â¡¼¥È¥Û¥¹¥È¤Î IP ¥¢¥É¥ì¥¹¤¬¤ï¤«¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ +リモートホストの IP アドレスがわかっている場合は、 .BR ruserok () -¤è¤ê¤â -.BR iruserok () ¤òÍѤ¤¤ëÊý¤¬Îɤ¤¤À¤í¤¦¡£ +よりも +.BR iruserok () を用いる方が良いだろう。 .BR ruserok () -¤Ï¥ê¥â¡¼¥È¥Û¥¹¥È¤Î½ê°¤¹¤ë¥É¥á¥¤¥ó¤Î DNS ¥µ¡¼¥Ð¡¼¤¬¿®Íê¤Ç¤­¤Ê¤¯¤Æ¤â -»ÈÍѤǤ­¤ë¤«¤é¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +はリモートホストの所属するドメインの DNS サーバーが信頼できなくても +使用できるからである。 +.SH 返り値 .BR rcmd () -´Ø¿ô¤ÏÀ®¸ù¤¹¤ë¤ÈÍ­¸ú¤Ê¥½¥±¥Ã¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤òÊÖ¤¹¡£ -¼ºÇÔ¤¹¤ë¤È \-1 ¤òÊÖ¤·¡¢É¸½à¥¨¥é¡¼½ÐÎϤ˿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤ò -ɽ¼¨¤¹¤ë¡£ +関数は成功すると有効なソケットディスクリプターを返す。 +失敗すると \-1 を返し、標準エラー出力に診断メッセージを +表示する。 .PP .BR rresvport () -´Ø¿ô¤Ï¡¢À®¸ù¤¹¤ë¤È¥Ð¥¤¥ó¥É¤µ¤ì¤¿Í­¸ú¤Ê¥½¥±¥Ã¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤òÊÖ¤¹¡£ -¼ºÇÔ¤¹¤ë¤È \-1 ¤òÊÖ¤·¡¢¥°¥í¡¼¥Ð¥ëÊÑ¿ô +関数は、成功するとバインドされた有効なソケットディスクリプターを返す。 +失敗すると \-1 を返し、グローバル変数 .I errno -¤ò¥¨¥é¡¼¤Î¸¶°ø¤ËÂбþ¤¹¤ëÃͤ˥»¥Ã¥È¤¹¤ë¡£ -¥¨¥é¡¼¥³¡¼¥É +をエラーの原因に対応する値にセットする。 +エラーコード .B EAGAIN -¤Ï¡¢¤³¤Î´Ø¿ô¤Ë¤ª¤¤¤Æ¤Ï¡Ö¤¹¤Ù¤Æ¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥Ý¡¼¥È¤¬»ÈÍÑÃæ¡× -¤È¤¤¤¦°ÕÌ£¤òɽ¤¹¡£ -.SH ½àµò -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -BSD ·Ï¡¢Solaris ¤ä¾¤Î¿¤¯¤Î¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ï 4.2BSD ¤ÇÅо줷¤¿¡£ -.SH ¥Ð¥° +は、この関数においては「すべてのネットワークポートが使用中」 +という意味を表す。 +.SH 準拠 +POSIX.1-2001 にはない。 +BSD 系、Solaris や他の多くのシステムに存在する。 +これらの関数は 4.2BSD で登場した。 +.SH バグ .BR iruserok () -¤Ï glibc ¤Î¥Ø¥Ã¥À¤Ç¤ÏÀë¸À¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +は glibc のヘッダでは宣言されていない。 .\" Bug filed 25 Nov 2007: .\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=5399 -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR rlogin (1), .BR rsh (1), .BR intro (2), diff --git a/release/man3/re_comp.3 b/release/man3/re_comp.3 index 88d37c05..38797503 100644 --- a/release/man3/re_comp.3 +++ b/release/man3/re_comp.3 @@ -28,9 +28,9 @@ .\" Wed Jun 14 16:10:28 BST 1995 Wilf. (G.Wilford@@ee.surrey.ac.uk) .\" .TH RE_COMP 3 1995-07-14 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -re_comp, re_exec \- BSD ¤ÎÀµµ¬É½¸½´Ø¿ô -.SH ½ñ¼° +.SH 名前 +re_comp, re_exec \- BSD の正規表現関数 +.SH 書式 .B #define _REGEX_RE_COMP .br .B #include @@ -40,42 +40,42 @@ re_comp, re_exec \- BSD .BI "char *re_comp(char *" regex ); .sp .BI "int re_exec(char *" string ); -.SH ÀâÌÀ +.SH 説明 .BR re_comp () -¤Ï¡¢ +は、 .I regex -¤Ç¼¨¤µ¤ì¤ë NULL ¤Ç½ªÃ¼¤µ¤ì¤¿Àµµ¬É½¸½¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ -¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥Ñ¥¿¡¼¥ó¤ÏÀÅŪ¤ÊÎΰè¤ò»ÈÍѤ·¤Æ¤ª¤ê¡¢¤½¤Î¥Ñ¥¿¡¼¥ó¥Ð¥Ã¥Õ¥¡ -¤Ï°Ê¹ß¤Î +で示される NULL で終端された正規表現をコンパイルするために使用される。 +コンパイルされたパターンは静的な領域を使用しており、そのパターンバッファ +は以降の .BR re_comp () -¤Î»ÈÍѤˤè¤Ã¤Æ¾å½ñ¤­¤µ¤ì¤ë¡£ -¤â¤· +の使用によって上書きされる。 +もし .I regex -¤¬ NULL ¤Ê¤é¤Ð²¿¤ÎÁàºî¤â¹Ô¤ï¤ì¤º¡¢¥Ñ¥¿¡¼¥ó¥Ð¥Ã¥Õ¥¡¤ÎÆâÍÆ¤Ï -ÃÖ¤­´¹¤¨¤é¤ì¤Ê¤¤¡£ +が NULL ならば何の操作も行われず、パターンバッファの内容は +置き換えられない。 .BR re_exec () -¤Ï¡¢ +は、 .I string -¤¬»Ø¤¹ NULL ¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤¬Á°²ó¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿ +が指す NULL で終端された文字列が前回コンパイルされた .I regex -¤Ë¥Þ¥Ã¥Á¤¹¤ë¤«¤É¤¦¤«¤òɾ²Á¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +にマッチするかどうかを評価するために使用される。 +.SH 返り値 .BR re_comp () -¤Ï¡¢ +は、 .I regex -¤Î¥³¥ó¥Ñ¥¤¥ë¤ËÀ®¸ù¤·¤¿¾ì¹ç NULL ¤òÊÖ¤·¡¢ -¤½¤ì°Ê³°¤Î¾ì¹ç¤ÏŬÀڤʥ¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +のコンパイルに成功した場合 NULL を返し、 +それ以外の場合は適切なエラーメッセージへのポインタを返す。 .BR re_exec () -¤Ï¡¢°ìÃפ·¤¿¾ì¹ç 1 ¤ò¡¢¼ºÇÔ¤·¤¿¾ì¹ç 0 ¤òÊÖ¤¹¡£ -.SH ½àµò +は、一致した場合 1 を、失敗した場合 0 を返す。 +.SH 準拠 4.3BSD. -.SH Ãí°Õ -¤³¤ì¤é¤Î´Ø¿ô¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¡£Âå¤ï¤ê¤Ë +.SH 注意 +これらの関数は廃止予定である。代わりに .BR regcomp (3) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë´Ø¿ô¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +に書かれている関数を使用すべきである。 +.SH 関連項目 .BR regcomp (3), .BR regex (7), GNU regex manual diff --git a/release/man3/readdir.3 b/release/man3/readdir.3 index 2a4ec999..27ee70e8 100644 --- a/release/man3/readdir.3 +++ b/release/man3/readdir.3 @@ -40,9 +40,9 @@ .\" Updated 2008-08-11, Akihiro MOTOKI , LDP v3.05 .\" .TH READDIR 3 2010-09-10 "" "Linux Programmer's Manual" -.SH ̾Á° -readdir, readdir_r \- ¥Ç¥£¥ì¥¯¥È¥ê¤òÆɤ߹þ¤à -.SH ½ñ¼° +.SH 名前 +readdir, readdir_r \- ディレクトリを読み込む +.SH 書式 .nf .B #include .sp @@ -53,9 +53,9 @@ readdir, readdir_r \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .ad l .in .sp @@ -65,182 +65,182 @@ _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE || _POSIX_SOURCE .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR readdir () -´Ø¿ô¤Ï¡¢\fIdirp\fP ¤¬»Ø¤¹¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤ÎÃæ¤Ç¡¢ -¼¡¤Î¥Ç¥£¥ì¥¯¥È¥ê¥¨¥ó¥È¥ê¤òɽ¤¹ \fIdirent\fP ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤ÎËöÈø¤Ë㤷¤¿¾ì¹ç¤ä¡¢ -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï¡¢ NULL ¤òÊÖ¤¹¡£ +関数は、\fIdirp\fP が指すディレクトリストリームの中で、 +次のディレクトリエントリを表す \fIdirent\fP 構造体へのポインタを返す。 +ディレクトリストリームの末尾に達した場合や、 +エラーが発生した場合は、 NULL を返す。 .PP -Linux ¤Ç¤Ï +Linux では .I dirent -¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +構造体は以下のように定義されている。 .PP .in +4n .nf struct dirent { - ino_t d_ino; /* inode ÈÖ¹æ */ - off_t d_off; /* ¼¡¤Î dirent ¤Ø¤Î¥ª¥Õ¥»¥Ã¥È */ - unsigned short d_reclen; /* ¤³¤Î¥ì¥³¡¼¥É¤ÎŤµ */ - unsigned char d_type; /* ¥Õ¥¡¥¤¥ë¼ïÊÌ¡£Á´¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à */ - ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤ */ - char d_name[256]; /* ¥Õ¥¡¥¤¥ë̾ */ + ino_t d_ino; /* inode 番号 */ + off_t d_off; /* 次の dirent へのオフセット */ + unsigned short d_reclen; /* このレコードの長さ */ + unsigned char d_type; /* ファイル種別。全ファイルシステム */ + でサポートされているわけではない */ + char d_name[256]; /* ファイル名 */ }; .fi .in .PP .I dirent -¹½Â¤ÂΤΥե£¡¼¥ë¥É¤Ç POSIX.1 ¤ÇÍ׵ᤵ¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢ +構造体のフィールドで POSIX.1 で要求されているのは、 .IR d_name [] -¤È (XSI ³ÈÄ¥¤Ç¤Î) +と (XSI 拡張での) .I d_ino -¤À¤±¤Ç¤¢¤ë¡£ +だけである。 .IR d_name [] -¤Ï¤½¤ÎÂ礭¤µ¤âµ¬Äꤵ¤ì¤Æ¤ª¤é¤º¡¢ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ë¤ÏºÇÂç¤Ç +はその大きさも規定されておらず、 +このフィールドには最大で .B NAME_MAX -¸Ä¤Îʸ»ú¤È¡¢¤½¤ì¤Ë³¤¯½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤¬³ÊǼ¤µ¤ì¤ë¡£ -¾¤Î¥Õ¥£¡¼¥ë¥É¤ÏÈóɸ½à¤Ç¤¢¤ê¡¢Á´¤Æ¤Î¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢²¼µ­¤Î¡ÖÃí°Õ¡×¤ò»²¾È¤Î¤³¤È¡£ +個の文字と、それに続く終端の NULL バイトが格納される。 +他のフィールドは非標準であり、全てのシステムに存在するわけではない。 +詳細については、下記の「注意」を参照のこと。 .PP .BR readdir () -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë¥Ç¡¼¥¿¤Ï¡¢¤½¤ì°Ê¹ß¤ÎƱ¤¸¥¹¥È¥ê¡¼¥à¤ËÂФ¹¤ë +によって返されるデータは、それ以降の同じストリームに対する .BR readdir () -¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤Æ¾å½ñ¤­¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +の呼び出しによって上書きされる可能性がある。 .BR readdir_r () -´Ø¿ô¤Ï +関数は .BR readdir () -¤Î¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤǤ¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à +のリエントラント版である。 +この関数はディレクトリストリーム .I dirp -¤«¤é¼¡¤Î¥Ç¥£¥ì¥¯¥È¥ê¥¨¥ó¥È¥ê¤òÆɤ߹þ¤ß¡¢ +から次のディレクトリエントリを読み込み、 .I entry -¤¬»Ø¤¹¸Æ¤Ó½Ð¤·¸µ¤¬³ä¤êÅö¤Æ¤¿¥Ð¥Ã¥Õ¥¡¤Ë¤½¤Î¥¨¥ó¥È¥ê¤ò³ÊǼ¤·¤ÆÊÖ¤¹ -(¤³¤Î¥Ð¥Ã¥Õ¥¡¤Î³ä¤êÅö¤Æ¤Ë¤Ä¤¤¤Æ¤Ï¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¤Î¤³¤È)¡£ -ÊÖ¤µ¤ì¤ë¥¨¥ó¥È¥ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬ +が指す呼び出し元が割り当てたバッファにそのエントリを格納して返す +(このバッファの割り当てについては「注意」の節を参照のこと)。 +返されるエントリへのポインタが .I *result -¤Ë³ÊǼ¤µ¤ì¤ë¡£¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤ÎËöÈø¤Ë㤷¤¿¾ì¹ç¤Ï¡¢ -NULL ¤¬ +に格納される。ディレクトリストリームの末尾に達した場合は、 +NULL が .I *result -¤Ë³ÊǼ¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +に格納される。 +.SH 返り値 +成功すると、 .BR readdir () -¤Ï +は .I dirent -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -(¤³¤Î¹½Â¤ÂΤÏÀÅŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤Î¥Ý¥¤¥ó¥¿¤ò +構造体へのポインタを返す。 +(この構造体は静的に割り当てられているかもしれない。 +このポインタを .BR free (3) -¤·¤è¤¦¤È¤·¤Ê¤¤¤³¤È¡£) -¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤ÎËöÈø¤Ë㤷¤¿¾ì¹ç¤Ë¤Ï¡¢NULL ¤¬ÊÖ¤µ¤ì¡¢ +しようとしないこと。) +ディレクトリストリームの末尾に達した場合には、NULL が返され、 .I errno -¤ÏÊѲ½¤·¤Ê¤¤¡£ -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¡¢NULL ¤¬ÊÖ¤µ¤ì¡¢ +は変化しない。 +エラーが発生した場合、NULL が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 -À®¸ù¤¹¤ë¤È¡¢ +成功すると、 .BR readdir_r () -´Ø¿ô¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢(¡Ö¥¨¥é¡¼¡×¤ÎÀá¤Î¥ê¥¹¥È¤ËºÜ¤Ã¤Æ¤¤¤ë) Àµ¤Î¥¨¥é¡¼ÈÖ¹æ¤òÊÖ¤¹¡£ -¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤ÎËöÈø¤Ë㤷¤¿¾ì¹ç¡¢ +関数は 0 を返す。 +エラーの場合、(「エラー」の節のリストに載っている) 正のエラー番号を返す。 +ディレクトリストリームの末尾に達した場合、 .BR readdir_r () -¤ÏÊÖ¤êÃͤȤ·¤Æ 0 ¤òÊÖ¤·¡¢ +は返り値として 0 を返し、 .I *result -¤Ë NULL ¤ò³ÊǼ¤¹¤ë¡£ -.SH ¥¨¥é¡¼ +に NULL を格納する。 +.SH エラー .TP .B EBADF -¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¥Ç¥£¥¹¥¯¥ê¥×¥¿ \fIdirp\fP ¤¬Ìµ¸ú¡£ -.SH ½àµò +ディレクトリストリームディスクリプタ \fIdirp\fP が無効。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -.SH Ãí°Õ -¥Õ¥£¡¼¥ë¥É +.SH 注意 +フィールド .I d_name -¤È +と .I d_ino -¤À¤±¤¬ POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -»Ä¤ê¤Î¥Õ¥£¡¼¥ë¥É¤Ï¿¤¯¤Î¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¤¬¡¢Á´¤Æ¤Î¥·¥¹¥Æ¥à¤Ë -¸ºß¤¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -glibc ¤Ç¤Ï¡¢¥×¥í¥°¥é¥à¤¬ POSIX.1 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¥Õ¥£¡¼¥ë¥É¤¬ -ÍøÍѤǤ­¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥Á¥§¥Ã¥¯¤¹¤ë¤Ë¤Ï¡¢¥Þ¥¯¥í +だけが POSIX.1-2001 で規定されている。 +残りのフィールドは多くのシステムに存在するが、全てのシステムに +存在するわけではない。 +glibc では、プログラムが POSIX.1 で定義されていないフィールドが +利用できるかをチェックすることができる。 +チェックするには、マクロ .BR _DIRENT_HAVE_D_NAMLEN , .BR _DIRENT_HAVE_D_RECLEN , .BR _DIRENT_HAVE_D_OFF , .B _DIRENT_HAVE_D_TYPE -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤«¤ò¥Æ¥¹¥È¤¹¤ì¤Ð¤è¤¤¡£ +が定義されているかをテストすればよい。 .I d_type -¥Õ¥£¡¼¥ë¥É¤Ï¡¢Linux °Ê³°¤Ç¤Ï¡¢ -¼ç¤Ë BSD ·Ï¤Î¥·¥¹¥Æ¥à¤Ë¤À¤±Â¸ºß¤¹¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤ò»È¤¦¤È¡¢ -¤½¤Î¸å¤ÎÆ°ºî¤¬¥Õ¥¡¥¤¥ë¤Î¼ïÊ̤ˤè¤ê·è¤Þ¤ë¾ì¹ç¤Ë¡¢ +フィールドは、Linux 以外では、 +主に BSD 系のシステムにだけ存在する。 +このフィールドを使うと、 +その後の動作がファイルの種別により決まる場合に、 .BR lstat (2) -¤ò¸Æ¤Ó½Ð¤¹¥³¥¹¥È¤òÈò¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -µ¡Ç½¸¡ºº¥Þ¥¯¥í +を呼び出すコストを避けることができる。 +機能検査マクロ .B _BSD_SOURCE -¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¡¢glibc ¤Ï +が定義された場合、glibc は .I d_type -¤ÇÊÖ¤µ¤ì¤ëÃͤȤ·¤Æ°Ê²¼¤Î¥Þ¥¯¥íÄê¿ô¤òÄêµÁ¤¹¤ë¡£ +で返される値として以下のマクロ定数を定義する。 .TP 12 .B DT_BLK -¥Ö¥í¥Ã¥¯¡¦¥Ç¥Ð¥¤¥¹¤Ç¤¢¤ë¡£ +ブロック・デバイスである。 .TP .B DT_CHR -¥­¥ã¥é¥¯¥¿¡¦¥Ç¥Ð¥¤¥¹¤Ç¤¢¤ë¡£ +キャラクタ・デバイスである。 .TP .B DT_DIR -¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¡£ +ディレクトリである。 .TP .B DT_FIFO -̾Á°ÉÕ¤­¥Ñ¥¤¥× (FIFO) ¤Ç¤¢¤ë¡£ +名前付きパイプ (FIFO) である。 .TP .B DT_LNK -¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ç¤¢¤ë¡£ +シンボリック・リンクである。 .TP .B DT_REG -Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ +通常のファイルである。 .TP .B DT_SOCK -UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤Ç¤¢¤ë¡£ +UNIX ドメインソケットである。 .TP .B DT_UNKNOWN -¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤¬ÉÔÌÀ¤Ç¤¢¤ë¡£ +ファイルタイプが不明である。 .\" The glibc manual says that on some systems this is the only .\" value returned .PP -¥Õ¥¡¥¤¥ë¼ïÊ̤ò·èÄê¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ +ファイル種別を決定できなかった場合には、 .I d_type -¤Ë +に .B DT_UNKNOWN -¤¬Æþ¤ë¡£ +が入る。 -¸½ºß¤Î¤È¤³¤í¡¢ -.\" ¥«¡¼¥Í¥ë 2.6.27 -.\" Ʊ¤¸ÀâÌÀʸ¤¬ readdir.2 ¤Ë¤â¤¢¤ë¡£ +現在のところ、 +.\" カーネル 2.6.27 +.\" 同じ説明文が readdir.2 にもある。 .I d_type -¤Ç¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤òÊÖ¤¹µ¡Ç½¤¬´°Á´¤Ë¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢ -¤¤¤¯¤Ä¤«¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¤Î¤ß¤Ç¤¢¤ë -(Btrfs, ext2, ext3, ext4 ¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë)¡£ -¤É¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤â¡¢ +でファイルタイプを返す機能が完全にサポートされているのは、 +いくつかのファイルシステムにおいてのみである +(Btrfs, ext2, ext3, ext4 はサポートしている)。 +どのアプリケーションも、 .B DT_UNKNOWN -¤¬ÊÖ¤µ¤ì¤¿ºÝ¤ËŬÀڤ˽èÍý¤Ç¤­¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +が返された際に適切に処理できなければならない。 -POSIX.1 ¤Ç¤Ï +POSIX.1 では .I d_name -¥Õ¥£¡¼¥ë¥É¤Î¥µ¥¤¥º¤Ïµ¬Äꤵ¤ì¤Æ¤ª¤é¤º¡¢ +フィールドのサイズは規定されておらず、 .I dirent -¹½Â¤ÂΤΠ+構造体の .I d_name -¤Î¸å¤í¤Ë¾¤ÎÈóɸ½à¤Î¥Õ¥£¡¼¥ë¥É¤¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¤Î¤Ç¡¢ -°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç +の後ろに他の非標準のフィールドがあるかもしれないので、 +移植性が必要なアプリケーションで .BR readdir_r () -¤ò»È¤¦¾ì¹ç¤Ï +を使う場合は .I entry -¤ËÅϤ¹¥Ð¥Ã¥Õ¥¡¤ò¼¡¤Î¤è¤¦¤Ë¤·¤Æ³ä¤êÅö¤Æ¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +に渡すバッファを次のようにして割り当てるべきである。 .in +4n .nf @@ -250,12 +250,12 @@ entryp = malloc(len); .fi .in -(POSIX.1 ¤Ç¤Ï +(POSIX.1 では .I "struct dirent" -¤ÎºÇ¸å¤Î¥Õ¥£¡¼¥ë¥É¤¬ +の最後のフィールドが .I d_name -¤Ç¤¢¤ë¤³¤È¤òÍ׵ᤷ¤Æ¤¤¤ë¡£) -.SH ´ØÏ¢¹àÌÜ +であることを要求している。) +.SH 関連項目 .BR getdents (2), .BR read (2), .BR closedir (3), diff --git a/release/man3/realpath.3 b/release/man3/realpath.3 index 99671594..a486b6df 100644 --- a/release/man3/realpath.3 +++ b/release/man3/realpath.3 @@ -31,12 +31,12 @@ .\" Updated 2005-09-06, Akihiro MOTOKI .\" Updated 2009-04-24, Akihiro MOTOKI, LDP v3.20 .\" -.\"WORD: bounded À©¸Â¤¬¤Ê¤¤ +.\"WORD: bounded 制限がない .\" .TH REALPATH 3 2011-09-10 "" "Linux Programmer's Manual" -.SH ̾Á° -realpath \- Àµµ¬²½¤µ¤ì¤¿ÀäÂХѥ¹Ì¾¤òÊÖ¤¹ -.SH ½ñ¼° +.SH 名前 +realpath \- 正規化された絶対パス名を返す +.SH 書式 .nf .B #include .B #include @@ -45,9 +45,9 @@ realpath \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR realpath (): @@ -57,105 +57,105 @@ _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR realpath () -¤Ï +は .I path -¤È¤·¤ÆÍ¿¤¨¤é¤ì¤¿ NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎóÃæ¤Î -¤¹¤Ù¤Æ¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òŸ³«¤·¡¢ +として与えられた NULL 終端された文字列中の +すべてのシンボリックリンクを展開し、 .IR "/./" ", " "/../" -¤Ë¤è¤ë»²¾È¤ä;ʬ¤Ê \(aq/\(aq -¤ò²ò·è¤·¤Æ¡¢Àµµ¬²½¤µ¤ì¤¿ÀäÂХѥ¹Ì¾¤òÀ¸À®¤¹¤ë¡£ -ÆÀ¤é¤ì¤¿ÀäÂХѥ¹Ì¾¤Ï¡¢ºÇÂç¤Ç +による参照や余分な \(aq/\(aq +を解決して、正規化された絶対パス名を生成する。 +得られた絶対パス名は、最大で .B PATH_MAX -¥Ð¥¤¥È¤Î NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤È¤·¤Æ¡¢ +バイトの NULL 終端された文字列として、 .I resolved_path -¤Ë¤è¤ê»²¾È¤µ¤ì¤ë¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤ë¡£ -·ë²Ì¤È¤·¤ÆÊÖ¤ë¥Ñ¥¹¤ÎÃæ¤Ë¤Ï¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ä +により参照されるバッファに格納される。 +結果として返るパスの中には、シンボリックリンクや .IR "/./" ", " "/../" -¤È¤¤¤Ã¤¿Í×ÁǤϴޤޤì¤Ê¤¤¡£ +といった要素は含まれない。 .I resolved_path -¤Ë NULL ¤¬»ØÄꤵ¤ì¤ë¤È¡¢ +に NULL が指定されると、 .BR realpath () -¤Ï +は .BR malloc (3) -¤ò»È¤Ã¤Æ²ò·è¤·¤¿¥Ñ¥¹Ì¾¤òÊÝ»ý¤¹¤ë¤¿¤á¤Î¥Ð¥Ã¥Õ¥¡¤ò -ºÇÂç¤Ç +を使って解決したパス名を保持するためのバッファを +最大で .B PATH_MAX -¥Ð¥¤¥È¤Þ¤Ç³ä¤êÅö¤Æ¡¢¤³¤Î¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¸Æ¤Ó½Ð¤·¸µ¤Ï¡¢ +バイトまで割り当て、このバッファへのポインタを返す。 +呼び出し元は、 .BR free (3) -¤ò»È¤Ã¤Æ¤³¤Î¥Ð¥Ã¥Õ¥¡¤ò²òÊü¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -.\" resolved_path == NULL ¤ò»ØÄꤷ¤¿¾ì¹ç¤Ç¤â¡¢²ò·è¤·¤¿¥Ñ¥¹Ì¾¤ÎŤµ¤¬ -.\" PATH_MAX ¥Ð¥¤¥È¤òĶ¤¨¤¿¤È¤­¤Ë¤Ï¡¢realpath() ¤ÏÁ°¤ÈƱ¤¸¤¯ -.\" ENAMETOOLONG ¤òÊÖ¤¹¡£-- MTK, Dec 04 -.\" .SH Îò»Ë +を使ってこのバッファを解放すべきである。 +.\" resolved_path == NULL を指定した場合でも、解決したパス名の長さが +.\" PATH_MAX バイトを超えたときには、realpath() は前と同じく +.\" ENAMETOOLONG を返す。-- MTK, Dec 04 +.\" .SH 歴史 .\" .BR realpath () -.\" ´Ø¿ô¤Ï 4.4BSD ¤Ç½é¤á¤ÆÅо줷¤¿ (Jan-Simon Pendry ¤Ë¤è¤êÄ󶡤µ¤ì¤¿)¡£ -.SH ÊÖ¤êÃÍ -¥¨¥é¡¼¤¬¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ +.\" 関数は 4.4BSD で初めて登場した (Jan-Simon Pendry により提供された)。 +.SH 返り値 +エラーがなかった場合、 .BR realpath () -¤Ï +は .I resolved_path -¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£ +へのポインターを返す。 -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢¥Ì¥ë (NULL) ¥Ý¥¤¥ó¥¿¡¼¤¬Ê֤ꡢÇÛÎó +それ以外の場合は、ヌル (NULL) ポインターが返り、配列 .I resolved_path -¤ÎÆâÍƤÏÉÔÄê¤È¤Ê¤ê¡¢ +の内容は不定となり、 .I errno -¤Ë¥¨¥é¡¼¤ÎÆâÍƤò¼¨¤¹Ãͤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーの内容を示す値がセットされる。 +.SH エラー .TP .B EACCES -¥Ñ¥¹¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤Ë¡¢Æɤ߽Ф·µö²Ä¤Þ¤¿¤Ï¸¡º÷µö²Ä¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤¡£ +パスのディレクトリ部分に、読み出し許可または検索許可が与えられていない。 .TP .B EINVAL .I path -¤¬ NULL ¤Ç¤¢¤ë¡£ -.\" (libc5 ¤Ç¤Ï¡¢¤³¤Î¤è¤¦¤Ê¾ì¹ç segfault ¤òµ¯¤³¤¹¤À¤±¤Ç¤¢¤í¤¦) -(¥Ð¡¼¥¸¥ç¥ó 2.3 ¤è¤êÁ°¤Î glibc ¤Ç¤Ï¡¢ +が NULL である。 +.\" (libc5 では、このような場合 segfault を起こすだけであろう) +(バージョン 2.3 より前の glibc では、 .I resolved_path -¤¬ NULL ¤Î¾ì¹ç¤Ë¤â¤³¤Î¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¡£) +が NULL の場合にもこのエラーが返される。) .TP .B EIO -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òÆɤà¤È¤­¤Ë¡¢I/O¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£ +ファイルシステムを読むときに、I/Oエラーが起こった。 .TP .B ELOOP -¥Ñ¥¹Ì¾¤ÎÊÑ´¹¤Ë¤¢¤¿¤ê¡¢²ò·è¤¹¤Ù¤­¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Î¿ô¤¬Â¿²á¤®¤¿¡£ +パス名の変換にあたり、解決すべきシンボリック・リンクの数が多過ぎた。 .TP .B ENAMETOOLONG -¥Ñ¥¹Ì¾¤Î°ìÍ×ÁǤÎʸ»ú¿ô¤¬ +パス名の一要素の文字数が .B NAME_MAX -¤ò±Û¤¨¤Æ¤¤¤ë¡¢¤Þ¤¿¤Ï¥Ñ¥¹Ì¾Á´ÂΤÎʸ»ú¿ô¤¬ +を越えている、またはパス名全体の文字数が .B PATH_MAX -¤ò±Û¤¨¤Æ¤¤¤ë¡£ +を越えている。 .TP .B ENOENT -»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ +指定されたファイルが存在しない。 .TP .B ENOTDIR -¥Ñ¥¹¤Î¥Ç¥£¥ì¥¯¥È¥êÍ×ÁǤ¬¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤Î´Ø¿ô¤¬ Linux ¤ËÅо줷¤¿¤Î¤Ï libc 4.5.21 ¤Ç¤¢¤ë¡£ -.SH ½àµò +パスのディレクトリ要素が、ディレクトリでない。 +.SH バージョン +この関数が Linux に登場したのは libc 4.5.21 である。 +.SH 準拠 4.4BSD, POSIX.1-2001. -POSIX.1-2001 ¤Ç¤Ï +POSIX.1-2001 では .I resolved_path -¤¬ NULL ¤Î¾ì¹ç¤ÎÆ°ºî¤Ï¼ÂÁõ¤Ë°Í¸¤¹¤ë¤È¤·¤Æ¤¤¤ë¡£ -POSIX.1-2008 ¤Ç¤Ï¡¢¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë½ñ¤«¤ì¤Æ¤¤¤ëÆ°ºî¤¬µ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -4.4BSD ¤È Solaris ¤Ç¤Ï¡¢¥Ñ¥¹Ì¾¤ÎŤµ¤Î¾å¸Â¤Ï -(\fI\fP ¤ÎÃæ¤Ë¤¢¤ë) +が NULL の場合の動作は実装に依存するとしている。 +POSIX.1-2008 では、このマニュアルページに書かれている動作が規定されている。 +.SH 注意 +4.4BSD と Solaris では、パス名の長さの上限は +(\fI\fP の中にある) .B MAXPATHLEN -¤Ç¤¢¤ë¡£SUSv2 ¤Ç¤Ï +である。SUSv2 では .B PATH_MAX -¤È +と .B NAME_MAX -¤¬µ¬Äꤵ¤ì¤Æ¤ª¤ê¡¢ -¤³¤ì¤é¤Ï \fI\fP ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤«¡¢ +が規定されており、 +これらは \fI\fP で定義されているか、 .BR pathconf (3) -´Ø¿ô¤«¤éÆÀ¤é¤ì¤ë¡£°Ê²¼¤Î¤è¤¦¤Ê¥½¡¼¥¹¥³¡¼¥É¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤¬Â¿¤¤¡£ +関数から得られる。以下のようなソースコードになっていることが多い。 .LP .in +4n .nf @@ -169,50 +169,50 @@ POSIX.1-2008 .fi .in .LP -(¥Ð¥°¤Î¾Ï¤â»²¾È¤Î¤³¤È¡£) +(バグの章も参照のこと。) .LP -4.4BSD¡¢Linux¡¢SUSv2 ¤Ç¤Ï¡¢ÊÖ¤êÃͤϾï¤ËÀäÂХѥ¹Ì¾¤Ç¤¢¤ë¡£ -Solaris ¤Ç¤Ï¡¢ -°ú¤­¿ô +4.4BSD、Linux、SUSv2 では、返り値は常に絶対パス名である。 +Solaris では、 +引き数 .I path -¤¬ÁêÂХѥ¹¤Î¾ì¹ç¡¢ÊÖ¤êÃͤ¬ÁêÂХѥ¹¤Ë¤Ê¤ë¤³¤È¤¬¤¢¤ë¡£ +が相対パスの場合、返り値が相対パスになることがある。 .BR realpath () -¤Î¥×¥í¥È¥¿¥¤¥×Àë¸À¤Ï¡¢ -libc4 ¤È libc5 ¤Ç¤Ï \fI\fP ¤Ë¤¢¤ë¤¬¡¢ -¤½¤ì°Ê³°¤Î´Ä¶­¤Ç¤Ï¤¤¤º¤ì¤â \fI\fP ¤Ë¤¢¤ë¡£ -.SH ¥Ð¥° -¤³¤Î´Ø¿ô¤Î POSIX.1-2001 ÈǤϡ¢Àß·×Ãʳ¬¤«¤éÌäÂ꤬¤¢¤ë¡£ -½ÐÎϥХåե¡ +のプロトタイプ宣言は、 +libc4 と libc5 では \fI\fP にあるが、 +それ以外の環境ではいずれも \fI\fP にある。 +.SH バグ +この関数の POSIX.1-2001 版は、設計段階から問題がある。 +出力バッファ .I resolved_path -¤ÎŬÀڤʥµ¥¤¥º¤ò·èÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ -POSIX.1-2001 ¤Ç¤Ï¥Ð¥Ã¥Õ¥¡¡¦¥µ¥¤¥º¤È¤·¤Æ +の適切なサイズを決定することができないからである。 +POSIX.1-2001 ではバッファ・サイズとして .B PATH_MAX -¤Ï½½Ê¬¤À¤È¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ +は十分だとされているが、 .B PATH_MAX -¤ÏÄêµÁºÑ¤ÎÄê¿ô¤Ç¤¢¤ëɬÍפϤʤ¯¡¢ +は定義済の定数である必要はなく、 .BR pathconf (3) -¤ò»È¤Ã¤ÆÆÀ¤é¤ì¤ëÃͤǤ¢¤Ã¤Æ¤â¤è¤¤¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +を使って得られる値であってもよいことになっている。 .BR pathconf (3) -¤«¤é¥Ð¥Ã¥Õ¥¡¡¦¥µ¥¤¥º¤ò¼èÆÀ¤·¤¿¤È¤·¤Æ¤âɬ¤º¤·¤â½½Ê¬¤Ç¤Ï¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¡¢POSIX ¤Ç·Ù¹ð¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë¡¢ +からバッファ・サイズを取得したとしても必ずしも十分ではない。 +なぜなら、POSIX で警告されているように、 .BR pathconf (3) -¤ÎÊÖ¤êÃͤ¬Â礭²á¤®¤ÆŬÀڤ˥á¥â¥ê¤ò³ÎÊݤ¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤ -¤«¤â¤·¤ì¤Ê¤¤°ìÊý¤Ç¡¢ +の返り値が大き過ぎて適切にメモリを確保することができない +かもしれない一方で、 .BR pathconf (3) -¤Ï +は .B PATH_MAX -¤ËÀ©¸Â¤¬¤Ê¤¤¤³¤È¤ò¼¨¤¹ \-1 ¤òÊÖ¤¹¤«¤â¤·¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +に制限がないことを示す \-1 を返すかもしれないからである。 .I "resolved_path\ ==\ NULL" -¤Îµ¡Ç½¤ò»È¤¦¤È¡¢¤³¤ÎÀß·×¾å¤ÎÌäÂê¤ò²óÈò¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Îµ¡Ç½¤Ï POSIX.1-2001 ¤Ç¤Ïɸ½à²½¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -POSIX.1-2008 ¤Ç¤Ïɸ½à²½¤µ¤ì¤Æ¤¤¤ë¡£ +の機能を使うと、この設計上の問題を回避することができる。 +この機能は POSIX.1-2001 では標準化されていないが、 +POSIX.1-2008 では標準化されている。 .LP -libc4 ¤È libc5 ¤Î¼ÂÁõ¤Ï¥Ð¥Ã¥Õ¥¡¡¦¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Î²ÄǽÀ­¤ò»ý¤Ã¤Æ¤¤¤ë -(libc-5.4.13 ¤Ç½¤Àµ¤µ¤ì¤¿¤¬)¡£¤·¤¿¤¬¤Ã¤Æ¡¢ +libc4 と libc5 の実装はバッファ・オーバーフローの可能性を持っている +(libc-5.4.13 で修正されたが)。したがって、 .BR mount (8) -¤Î¤è¤¦¤Ê set-user-ID ¤µ¤ì¤ë¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ -¤³¤Î´Ø¿ôÁêÅö¤Î´Ø¿ô¤ò¼«Á°¤Ç»ý¤ÄɬÍפ¬¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +のような set-user-ID されるプログラムでは、 +この関数相当の関数を自前で持つ必要がある。 +.SH 関連項目 .BR readlink (2), .BR canonicalize_file_name (3), .BR getcwd (3), diff --git a/release/man3/recno.3 b/release/man3/recno.3 index 46cba303..0fcdc302 100644 --- a/release/man3/recno.3 +++ b/release/man3/recno.3 @@ -37,40 +37,40 @@ .\" by Shouichi Saito .\" Proofed Tue Aug 19 1999 by NAKANO Takeo .\" -.\"WORD: access method ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É -.\"WORD: pad character Ëä¤áʸ»ú +.\"WORD: access method アクセスメソッド +.\"WORD: pad character 埋め文字 .TH RECNO 3 1994-08-18 "" "Linux Programmer's Manual" .UC 7 -.SH ̾Á° -recno \- ¥ì¥³¡¼¥ÉÈÖ¹æ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤Î¥¢¥¯¥»¥¹¥á¥½¥Ã¥É -.SH ½ñ¼° +.SH 名前 +recno \- レコード番号データベースへのアクセスメソッド +.SH 書式 .nf .ft B #include #include .ft R .fi -.SH ÀâÌÀ -¥ë¡¼¥Á¥ó +.SH 説明 +ルーチン .BR dbopen (3) -¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥é¥¤¥Ö¥é¥ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¢¤ë¡£ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Î°ì¤Ä¤Ë¡¢ -¥ì¥³¡¼¥ÉÈÖ¹æ¥Õ¥¡¥¤¥ë (record number file: recno file) ¤¬¤¢¤ë¡£ -¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤Î¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ë´Ø¤¹¤ë°ìÈÌŪ¤Êµ­½Ò¤Ï +はデータベースファイルに対するライブラリインターフェースである。 +サポートされているファイルフォーマットの一つに、 +レコード番号ファイル (record number file: recno file) がある。 +データベースへのアクセスメソッドに関する一般的な記述は .BR dbopen (3), -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Ï recno ÆÃÍ­¤Î¾ðÊó¤Ë¤Ä¤¤¤Æ¤Î¤ßµ­½Ò¤¹¤ë¡£ +に書かれている。 +このマニュアルページでは recno 特有の情報についてのみ記述する。 .PP -¥ì¥³¡¼¥ÉÈÖ¹æ¥Ç¡¼¥¿¹½Â¤¤Ï¡¢¥Õ¥é¥Ã¥È¤Ê¥Õ¥¡¥¤¥ë·Á¼°¤Ë³ÊǼ¤µ¤ì¤¿ -²ÄÊÑĹ/¸ÇÄêĹ¥ì¥³¡¼¥É¤«¤é¤Ê¤ê¡¢ÏÀÍý¥ì¥³¡¼¥ÉÈÖ¹æ¤Ç¥¢¥¯¥»¥¹¤µ¤ì¤ë¡£ -¥ì¥³¡¼¥ÉÈÖ¹æ 5 ¤¬¤¢¤ì¤Ð¡¢¥ì¥³¡¼¥ÉÈÖ¹æ 1 ¤«¤é 4 ¤â¸ºß¤¹¤ë¡£ -¥ì¥³¡¼¥ÉÈÖ¹æ 1 ¤òºï½ü¤¹¤ë¤È¡¢¥ì¥³¡¼¥ÉÈÖ¹æ 5 ¤Ï 4 ¤ËÉÕ¤±Âؤ¨¤é¤ì¡¢ -¥«¡¼¥½¥ë¤â°ÜÆ°¤¹¤ë¡£¥ì¥³¡¼¥ÉÈÖ¹æ 1 °Ê¹ß¤Î¤â¤Î¤Ï°ì¤Ä·«¤ê¾å¤¬¤ë¤ï¤±¤Ç¤¢¤ë¡£ +レコード番号データ構造は、フラットなファイル形式に格納された +可変長/固定長レコードからなり、論理レコード番号でアクセスされる。 +レコード番号 5 があれば、レコード番号 1 から 4 も存在する。 +レコード番号 1 を削除すると、レコード番号 5 は 4 に付け替えられ、 +カーソルも移動する。レコード番号 1 以降のものは一つ繰り上がるわけである。 .PP .BR dbopen (3) -¤Ç»È¤¦ recno ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤ËÆÃÍ­¤Î¥Ç¡¼¥¿¹½Â¤ÂΤϡ¢ +で使う recno アクセスメソッドに特有のデータ構造体は、 .I -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Ç¼¡¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +インクルードファイルで次のように定義されている。 .PP .in +4n .nf @@ -86,138 +86,138 @@ typedef struct { .fi .in .PP -¤³¤Î¹½Â¤ÂΤÎÍ×ÁǤò°Ê²¼¤Ë¼¨¤¹¡£ +この構造体の要素を以下に示す。 .TP flags -flag ¤ÎÃͤϰʲ¼¤ÎÃͤÎÏÀÍýϤǻØÄꤵ¤ì¤ë¡£ +flag の値は以下の値の論理和で指定される。 .RS .TP .B R_FIXEDLEN -¥ì¥³¡¼¥ÉŤ¬¸ÇÄê¤Ç¤¢¤ê¡¢¥Ð¥¤¥È¶èÀÚ¤ê¤Ç¤Ï¤Ê¤¤¡£ -¹½Â¤ÂΤÎÍ×ÁÇ +レコード長が固定であり、バイト区切りではない。 +構造体の要素 .I reclen -¤Ï¥ì¥³¡¼¥É¤ÎŤµ¤ò»ØÄꤹ¤ë¡£¤Þ¤¿¡¢Í×ÁÇ +はレコードの長さを指定する。また、要素 .I bval -¤ÏËä¤áʸ»ú (pad character) ¤ò»ØÄꤹ¤ë¡£ -¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÆþ¤ì¤é¤ì¤¿¥ì¥³¡¼¥É¤ÎÆâ +は埋め文字 (pad character) を指定する。 +データベースに入れられたレコードの内 .I reclen -¥Ð¥¤¥È¤ËËþ¤¿¤Ê¤¤¤â¤Î¤Ç¤Ï¡¢»Ä¤ê¤ÎÉôʬ¤ËËä¤áʸ»ú¤¬¼«Æ°Åª¤ËÆþ¤ë¡£ +バイトに満たないものでは、残りの部分に埋め文字が自動的に入る。 .TP .B R_NOKEY .BR dbopen (3) -¤Ç»ØÄꤵ¤ì¤¿¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ç¤Ï¡¢¥·¡¼¥±¥ó¥·¥ã¥ë¤Ê¥ì¥³¡¼¥É¼èÆÀ¤Ï -¸Æ¤Ó½Ð¤·¥­¡¼¤È¥Ç¡¼¥¿¹½Â¤ÂΤÎξÊý¤òËä¤á¤Æ¤¤¤¯¡£ +で指定されたインターフェイスでは、シーケンシャルなレコード取得は +呼び出しキーとデータ構造体の両方を埋めていく。 .B R_NOKEY -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢¥­¡¼¹½Â¤ÂΤòËä¤á¤ë¤Î¤Ë +フラグが指定されていると、キー構造体を埋めるのに .I cursor -¥ë¡¼¥Á¥ó¤òɬÍפȤ·¤Ê¤¤¡£ -¤³¤ì¤òÍѤ¤¤ì¤Ð¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¥Õ¥¡¥¤¥ë¤Î½ª¤ê¤ÎÊý¤ò¼èÆÀ¤¹¤ëºÝ¤Ë¡¢ -¤½¤ÎÅÓÃæ¤Î¥ì¥³¡¼¥É¤òÆɤޤʤ¯¤Æ¤âºÑ¤à»ö¤Ë¤Ê¤ë¡£ +ルーチンを必要としない。 +これを用いれば、アプリケーションがファイルの終りの方を取得する際に、 +その途中のレコードを読まなくても済む事になる。 .TP .B R_SNAPSHOT -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È¡¢ +このフラグを指定すると、 .BR dbopen (3) -¤Î¸Æ¤Ó½Ð¤·¤ÎºÝ¡¢ -¥ª¥ê¥¸¥Ê¥ë¥Õ¥¡¥¤¥ë¤«¤éÊѹ¹¤µ¤ì¤Æ¤¤¤Ê¤¤¥ì¥³¡¼¥É¤òÆɤàÂå¤ï¤ê¤Ë¡¢ -¥Õ¥¡¥¤¥ë¤Î snapshot ¤òÍѤ¤¤ë¡£ +の呼び出しの際、 +オリジナルファイルから変更されていないレコードを読む代わりに、 +ファイルの snapshot を用いる。 .RE .TP .I cachesize -ÁÛÄꤵ¤ì¤ë¥á¥â¥ê¥­¥ã¥Ã¥·¥å¤ÎºÇÂ祵¥¤¥º (¥Ð¥¤¥Èñ°Ì)¡£ -¤³¤ÎÃÍ¤Ï -.B ¤¢¤¯¤Þ¤Ç -»²¹Í¤Ç¤¢¤ê¡¢¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ï¤³¤ÎÃͤò±Û¤¨¤¿¥á¥â¥ê¤Î -³ä¤êÅö¤Æ¤ËÀ®¸ù¤¹¤ë¤³¤È¤â¤¢¤ë¡£ +想定されるメモリキャッシュの最大サイズ (バイト単位)。 +この値は +.B あくまで +参考であり、アクセスメソッドはこの値を越えたメモリの +割り当てに成功することもある。 .I cachesize -¤¬ 0 (¤¢¤ë¤¤¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤) ¤Î¾ì¹ç¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥­¥ã¥Ã¥·¥å¤¬»È¤ï¤ì¤ë¡£ +が 0 (あるいは指定されていない) の場合、デフォルトのキャッシュが使われる。 .TP .I psize -recno ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ï¡¢¼«¿È¤Î¥ì¥³¡¼¥É¤Î¥³¥Ô¡¼¤ò¥á¥â¥êÆâÉô¤Ë -btree ¤ÇÊݸ¤·¤Æ¤¤¤ë¡£ -¤³¤ÎÃͤϡ¢¤½¤Î btree Ãæ¤Î¥Î¡¼¥É¤ËÂФ·¤ÆÍѤ¤¤é¤ì¤ë -¥Ú¡¼¥¸¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤Ç¤¢¤ë¡£ +recno アクセスメソッドは、自身のレコードのコピーをメモリ内部に +btree で保存している。 +この値は、その btree 中のノードに対して用いられる +ページサイズ (バイト単位) である。 .I psize -¤¬ 0 (¤¢¤ë¤¤¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤) ¤Î¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î I/O ¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ò´ð¤Ë¤·¤Æ -¥Ú¡¼¥¸¥µ¥¤¥º¤¬·è¤á¤é¤ì¤ë¡£ -¾ÜºÙ¤Ï +が 0 (あるいは指定されていない) の場合、 +ファイルシステムの I/O ブロックサイズを基にして +ページサイズが決められる。 +詳細は .BR btree (3) -¤ò»²¾È¡£ +を参照。 .TP .I lorder -¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤ë¥á¥¿¥Ç¡¼¥¿¤ÎÀ°¿ôÃͤΥХ¤¥È¥ª¡¼¥À¡¼¡£ -¤³¤Î¿ô»ú¤Ï¡¢½ç½ø¤òÀ°¿ô¤Çɽ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -Î㤨¤Ð¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤Ê¤é¡¢¤³¤Î¿ôÃÍ¤Ï 4,321 ¤È¤Ê¤ë¡£ +データベースに格納されているメタデータの整数値のバイトオーダー。 +この数字は、順序を整数で表したものである。 +例えばビッグエンディアンなら、この数値は 4,321 となる。 .I lorder -¤¬ 0 (»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤) ¤Î¾ì¹ç¡¢¸½ºß¤Î¥Û¥¹¥È -¤Ç»È¤ï¤ì¤Æ¤¤¤ë¥Ð¥¤¥È¥ª¡¼¥À¡¼¤¬»È¤ï¤ì¤ë¡£ +が 0 (指定されていない) の場合、現在のホスト +で使われているバイトオーダーが使われる。 .TP .I reclen -¸ÇÄê¥ì¥³¡¼¥ÉŤÎŤµ¡£ +固定レコード長の長さ。 .TP .I bval -²ÄÊѥ쥳¡¼¥ÉŤˤª¤¤¤Æ¡¢ -¥ì¥³¡¼¥É¤Î½ª¤ê¤ò¼¨¤¹¶èÀÚ¤ê¥Ð¥¤¥È (¶èÀÚ¤êʸ»ú) ¤Ç¤¢¤ë¡£ -¸ÇÄê¥ì¥³¡¼¥ÉŤǤÏËä¤áʸ»ú¤È¤·¤Æ»È¤ï¤ì¤ë¡£ -Ãͤ¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¡¢ -²ÄÊѥ쥳¡¼¥ÉĹ¤Î¥ì¥³¡¼¥É¤Î½ª¤ê¤Ë¤Ï²þ¹Ô ("\en") ¤¬»È¤ï¤ì¤ë¡£ -¸ÇÄê¥ì¥³¡¼¥ÉĹ¤Î¥ì¥³¡¼¥É¤Ï¶õÇò (space) ¤ÇËä¤á¤é¤ì¤ë¡£ +可変レコード長において、 +レコードの終りを示す区切りバイト (区切り文字) である。 +固定レコード長では埋め文字として使われる。 +値が指定されていないと、 +可変レコード長のレコードの終りには改行 ("\en") が使われる。 +固定レコード長のレコードは空白 (space) で埋められる。 .TP .I bfname -recno ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ï¡¢ -¼«¿È¤Î¥ì¥³¡¼¥É¤Î¥³¥Ô¡¼¤ò¥á¥â¥êÆâÉô¤Ç btree ¤ËÊݸ¤·¤Æ¤¤¤ë¡£ +recno アクセスメソッドは、 +自身のレコードのコピーをメモリ内部で btree に保存している。 .I bfname -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢¤³¤ì¤Ï btree ¥Õ¥¡¥¤¥ë̾ -(btree ¥Õ¥¡¥¤¥ë¤ò +が NULL でない場合、これは btree ファイル名 +(btree ファイルを .BR dbopen (3) -¤¹¤ë»þ¤Ë»ØÄꤹ¤ë¥Õ¥¡¥¤¥ë̾) ¤ò»ØÄꤹ¤ë¡£ +する時に指定するファイル名) を指定する。 .PP .I recno -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Ç»È¤ï¤ì¤ë¥­¡¼/¥Ç¡¼¥¿ÂФΥǡ¼¥¿Éôʬ¤Ï¡¢ -¾¤Î¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -¤·¤«¤·¥­¡¼¤Ï°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ -¥­¡¼¤Î +アクセスメソッドで使われるキー/データ対のデータ部分は、 +他のアクセスメソッドと同じである。 +しかしキーは異なっている。 +キーの .I data -¥Õ¥£¡¼¥ë¥É¤Ï +フィールドは .I recno_t -·¿¤Î¡¢¥á¥â¥ê°ÌÃ֤ؤΥݥ¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +型の、メモリ位置へのポインタでなければならない。 .I recno_t -¤Ï +は .I -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î·¿¤ÏÄ̾¤½¤Î¼ÂÁõ¤ÇÍøÍѲÄǽ¤ÊºÇÂç¤ÎÉä¹æ̵¤·À°¿ô¤Ç¤¢¤ë¡£ -¥­¡¼¤Î +インクルードファイルで定義されている。 +この型は通常、その実装で利用可能な最大の符号無し整数である。 +キーの .I size -¥Õ¥£¡¼¥ë¥É¤Ï¤½¤Î·¿¤Î¥µ¥¤¥º¤È¤Ê¤ë¡£ +フィールドはその型のサイズとなる。 .PP -recno ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¤Î¥Õ¥¡¥¤¥ë¤Ë´ØÏ¢¤Å¤±¤é¤ì¤ë -¥á¥¿¥Ç¡¼¥¿¤Ï¸ºß¤Ç¤­¤Ê¤¤¤«¤é¡¢ -¥Ç¥Õ¥©¥ë¥ÈÃÍ (¸ÇÄê¥ì¥³¡¼¥ÉĹ¤ä¥»¥Ñ¥ì¡¼¥¿Ê¸»ú¤Ê¤É) -¤ËÂФ¹¤ëÊѹ¹¤Ï¥Õ¥¡¥¤¥ë¤ò³«¤¯Ëè¤ËÌÀ¼¨Åª¤Ë»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +recno アクセスメソッドのファイルに関連づけられる +メタデータは存在できないから、 +デフォルト値 (固定レコード長やセパレータ文字など) +に対する変更はファイルを開く毎に明示的に指定しなければならない。 .PP .BR dbopen (3) -¤Ç»ØÄꤵ¤ì¤¿¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ç¤Ï¡¢ +で指定されたインターフェイスでは、 .I put -¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤ò»È¤Ã¤Æ¿·¤·¤¤¥ì¥³¡¼¥É¤òºîÀ®¤¹¤ë¤È¤­¤Ë¡¢ -»ØÄꤷ¤¿¥ì¥³¡¼¥ÉÈֹ椬¥Ç¡¼¥¿¥Ù¡¼¥¹Ãæ¤Ë¸ºß¤·¤Æ¤¤¤ëºÇÂç¥ì¥³¡¼¥ÉÈÖ¹æ¤è¤ê -°ì¤Ä°Ê¾åÂ礭¤¤¤È¡¢ -¶õ¤Î¥ì¥³¡¼¥É¤¬Æ±»þ¤Ë¤Ç¤­¤Æ¤·¤Þ¤¦¡£ -.SH ¥¨¥é¡¼ +インターフェイスを使って新しいレコードを作成するときに、 +指定したレコード番号がデータベース中に存在している最大レコード番号より +一つ以上大きいと、 +空のレコードが同時にできてしまう。 +.SH エラー .I recno -¥¢¥¯¥»¥¹¥á¥½¥Ã¥É¥ë¡¼¥Á¥ó¤Ï¼ºÇÔ¤¹¤ë¤È +アクセスメソッドルーチンは失敗すると .BR dbopen (3) -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ë±þ¤¸¤¿ -.IR errno " ¤«¡¢" -¤¢¤ë¤¤¤Ï°Ê²¼¤Ë¼¨¤¹ +で指定されているエラーに応じた +.IR errno " か、" +あるいは以下に示す .I errno -¤ò¥»¥Ã¥È¤¹¤ë¡£ +をセットする。 .TP .B EINVAL -¸ÇÄêĹ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¥ì¥³¡¼¥É¤òÄɲ乤ë¤È¤­¡¢¥Ç¡¼¥¿¤¬Ä¹¤¹¤®¤¿¡£ -.SH ¥Ð¥° -¥Ð¥¤¥È¥ª¡¼¥À¡¼¤È¤·¤Æ¤Ï¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤È¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¤Î¤ß¤¬ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +固定長データベースにレコードを追加するとき、データが長すぎた。 +.SH バグ +バイトオーダーとしてはビッグエンディアンとリトルエンディアンのみが +サポートされている。 +.SH 関連項目 .BR btree (3), .BR dbopen (3), .BR hash (3), diff --git a/release/man3/regex.3 b/release/man3/regex.3 index d85749ff..9886dd9d 100644 --- a/release/man3/regex.3 +++ b/release/man3/regex.3 @@ -31,9 +31,9 @@ .\" Updated & Modified 2005-02-24, Yuichi SATO .\" Updated 2008-08-02, Akihiro MOTOKI , LDP v3.05 .\" -.\"WORD: bitwise-or ¥Ó¥Ã¥È¤´¤È¤ÎOR -.\"WORD: element (¹½Â¤ÂÎ)Í×ÁÇ -.\"WORD: collating element ¾È¹ç½ç½ø¤ÎÍ×ÁÇ +.\"WORD: bitwise-or ビットごとのOR +.\"WORD: element (構造体)要素 +.\"WORD: collating element 照合順序の要素 .\" .\" show the synopsis section nicely .de xx @@ -41,9 +41,9 @@ .ti -\\$1 .. .TH REGEX 3 2011-09-27 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -regcomp, regexec, regerror, regfree \- POSIX regex ´Ø¿ô -.SH ½ñ¼° +.SH 名前 +regcomp, regexec, regerror, regfree \- POSIX regex 関数 +.SH 書式 .nf .B #include .B #include @@ -59,125 +59,125 @@ regcomp, regexec, regerror, regfree \- POSIX regex .BI "void regfree(regex_t *" preg ); .fi -.SH ÀâÌÀ -.SS "POSIX regex ¥³¥ó¥Ñ¥¤¥ë" +.SH 説明 +.SS "POSIX regex コンパイル" .BR regcomp () -¤Ï¡¢Àµµ¬É½¸½¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¡¢ +は、正規表現をコンパイルして、 .BR regexec () -¤Ç¤Î¸¡º÷½èÍý¤ËŬ¹ç¤¹¤ë·ÁÂ֤ˤ¹¤ë¡£ +での検索処理に適合する形態にする。 .BR regcomp () -¤Ï¥Ñ¥¿¡¼¥ó¤òµ­²±¤¹¤ë¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿ -.IR preg ¡¢ -¥Ì¥ëʸ»ú¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó -.IR regex ¡¢ -¤½¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤Î·Á¼°¤ò·è¤á¤ë¤¿¤á¤Î¥Õ¥é¥° +はパターンを記憶するバッファへのポインタ +.IR preg 、 +ヌル文字で終端された文字列 +.IR regex 、 +そしてコンパイルの形式を決めるためのフラグ .I cflag -¤ò°ú¿ô¤Ëȼ¤¦¡£ +を引数に伴う。 -Á´¤Æ¤ÎÀµµ¬É½¸½¸¡º÷¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥Ñ¥¿¡¼¥ó¤Ë¤è¤Ã¤Æ¹Ô¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤è¤Ã¤Æ¡¢ +全ての正規表現検索は、コンパイルされたパターンによって行わなければならない。 +よって、 .BR regexec () -¤Ë»ØÄꤹ¤ë¤Î¤Ï¡¢É¬¤º +に指定するのは、必ず .RB ( regcomp () -¤Ë¤è¤Ã¤Æ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿) ¥Ñ¥¿¡¼¥ó¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥¢¥É¥ì¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +によってコンパイルされた) パターンバッファへのアドレスでなければならない。 .I cflags -¤Ë¤Ï°Ê²¼¤Ë¼¨¤¹Äê¿ô°ì¤Ä°Ê¾å¤Î¥Ó¥Ã¥È¤´¤È¤Î OR (bitwise-or) ¤ò»ØÄꤹ¤ë¡£ +には以下に示す定数一つ以上のビットごとの OR (bitwise-or) を指定する。 .TP .B REG_EXTENDED .I regex -¤Ë +に .B POSIX -³ÈÄ¥Àµµ¬É½¸½¤ò»ÈÍѤ¹¤ë¡£¤â¤·¤³¤Î¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢ +拡張正規表現を使用する。もしこのフラグが設定されない場合、 .B POSIX -ɸ½àÀµµ¬É½¸½¤¬»È¤ï¤ì¤ë¡£ +標準正規表現が使われる。 .TP .B REG_ICASE -Âçʸ»ú¾®Ê¸»ú¤Î°ã¤¤¤ò̵»ë¤¹¤ë¡£¤³¤Î¥Õ¥é¥°¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿ -¥Ñ¥¿¡¼¥ó¥Ð¥Ã¥Õ¥¡¤òÍѤ¤¤Æ +大文字小文字の違いを無視する。このフラグを指定してコンパイルされた +パターンバッファを用いて .BR regexec () -´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤È¡¢Âçʸ»ú¾®Ê¸»ú¤Î¶èÊ̤òÉÕ¤±¤º¤Ë¸¡º÷¤¬¹Ô¤ï¤ì¤ë¡£ +関数を呼び出すと、大文字小文字の区別を付けずに検索が行われる。 .TP .B REG_NOSUB -¤³¤Î¥Õ¥é¥°¤òÀßÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥Ñ¥¿¡¼¥ó¥Ð¥Ã¥Õ¥¡¤¬ +このフラグを設定してコンパイルされたパターンバッファが .BR regexec () -¤Î°ú¿ô¤Ë»ØÄꤵ¤ì¤ë¤È¡¢°ú¤­¿ô +の引数に指定されると、引き数 .IR nmatch , .I pmatch -¤¬Ìµ»ë¤µ¤ì¤ë¡£ +が無視される。 .TP .B REG_NEWLINE -Á´¤Æ¤Îʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë¥ª¥Ú¥ì¡¼¥¿¤Ë²þ¹Ô¤ò¥Þ¥Ã¥Á¤µ¤»¤Ê¤¤¡£ +全ての文字にマッチするオペレータに改行をマッチさせない。 -²þ¹Ô¤ò´Þ¤Þ¤Ê¤¤Èó¥Þ¥Ã¥Á¥ó¥°Ê¸»ú¥ê¥¹¥È +改行を含まない非マッチング文字リスト .RB ( [^...] ) -¤Ë²þ¹Ô¤ò¥Þ¥Ã¥Á¤µ¤»¤Ê¤¤¡£ +に改行をマッチさせない。 .BR regexec () -¤Î¼Â¹Ô»þ¤Ë»ØÄꤹ¤ë¥Õ¥é¥° +の実行時に指定するフラグ .I eflags -¤Ë +に .B REG_NOTBOL -¤ò´Þ¤à¤«¤É¤¦¤«¤Ë¤«¤«¤ï¤é¤º¡¢¹ÔƬ¤Ë¥Þ¥Ã¥Á¤¹¤ë¥ª¥Ú¥ì¡¼¥¿ +を含むかどうかにかかわらず、行頭にマッチするオペレータ .RB ( ^ ) -¤ò²þ¹Ôľ¸å¤Î¶õʸ»úÎó¤Ë¥Þ¥Ã¥Á¤µ¤»¤ë¡£ +を改行直後の空文字列にマッチさせる。 .I eflags -¤Ë +に .B REG_NOTEOL -¤ò´Þ¤à¤«¤É¤¦¤«¤Ë¤«¤«¤ï¤é¤º¡¢¹ÔËö¤Ë¥Þ¥Ã¥Á¤¹¤ë¥ª¥Ú¥ì¡¼¥¿ +を含むかどうかにかかわらず、行末にマッチするオペレータ .RB ( $ ) -¤ò²þ¹ÔľÁ°¤Î¶õʸ»úÎó¤Ë¥Þ¥Ã¥Á¤µ¤»¤ë¡£ -.SS "POSIX regex ¥Þ¥Ã¥Á¥ó¥°" +を改行直前の空文字列にマッチさせる。 +.SS "POSIX regex マッチング" .BR regexec () -¤Ï¡¢ -¥×¥ê¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥Ñ¥¿¡¼¥ó¥Ð¥Ã¥Õ¥¡ +は、 +プリコンパイルされたパターンバッファ .I preg -¤ò¥Ì¥ëʸ»ú¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ë¥Þ¥Ã¥Á¤µ¤»¤ë¡£ +をヌル文字で終端された文字列にマッチさせる。 .I nmatch -¤È +と .I pmatch -¤Ï¥Þ¥Ã¥Á¥ó¥°¤Î°ÌÃ֤˴ؤ¹¤ë¾ðÊó¤ò¼èÆÀ¤¹¤ë¤Î¤ËÍѤ¤¤é¤ì¤ë¡£ +はマッチングの位置に関する情報を取得するのに用いられる。 .I eflags -¤Ë¤Ï +には .B REG_NOTBOL -¤È +と .B REG_NOTEOL -¤Î¤É¤Á¤é¤«¡¢¤â¤·¤¯¤ÏξÊý¤Î¥Ó¥Ã¥È¤´¤È¤Î +のどちらか、もしくは両方のビットごとの .BR OR " (bitwise-" or ) -¤ò»ØÄꤷ¡¢°Ê²¼¤ÇÀâÌÀ¤¹¤ë¤è¤¦¤Ë¥Þ¥Ã¥Á¥ó¥°Æ°ºî¤òÊѲ½¤µ¤»¤ë¡£ +を指定し、以下で説明するようにマッチング動作を変化させる。 .TP .B REG_NOTBOL -¹ÔƬ¤Ë¥Þ¥Ã¥Á¤¹¤ë¥ª¥Ú¥ì¡¼¥¿¤Ï¡¢É¬¤º¥Þ¥Ã¥Á¤Ë¼ºÇÔ¤¹¤ë (¥³¥ó¥Ñ¥¤¥ë»þ¤Î¥Õ¥é¥° +行頭にマッチするオペレータは、必ずマッチに失敗する (コンパイル時のフラグ .B REG_NEWLINE -¤Î¹àÌܤ⻲¾È)¡£ -¤³¤Î¥Õ¥é¥°¤Ï¡¢Ê£¿ô¹Ô¤Ë¤Þ¤¿¤¬¤ëʸ»úÎó¤ò +の項目も参照)。 +このフラグは、複数行にまたがる文字列を .BR regexec () -¤Ç¸¡º÷¤¹¤ëºÝ¤Ë¡¢Ê¸»úÎó¤ÎÀèƬ¤ò¹Ô¤ÎÀèƬ¤È¤·¤Æ²ò¼á¤µ¤»¤Ê¤¤¾ì¹ç¤ËÍѤ¤¤ë¡£ +で検索する際に、文字列の先頭を行の先頭として解釈させない場合に用いる。 .TP .B REG_NOTEOL -¹ÔËö¤Ë¥Þ¥Ã¥Á¤¹¤ë¥ª¥Ú¥ì¡¼¥¿¤Ï¡¢É¬¤º¥Þ¥Ã¥Á¤Ë¼ºÇÔ¤¹¤ë (¥³¥ó¥Ñ¥¤¥ë»þ¤Î¥Õ¥é¥° +行末にマッチするオペレータは、必ずマッチに失敗する (コンパイル時のフラグ .B REG_NEWLINE -¤Î¹àÌܤ⻲¾È)¡£ -.SS ¥Ð¥¤¥È¥ª¥Õ¥»¥Ã¥È -¥Ñ¥¿¡¼¥ó¥Ð¥Ã¥Õ¥¡¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +の項目も参照)。 +.SS バイトオフセット +パターンバッファのコンパイル時に .B REG_NOSUB -¤¬ÀßÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢Éôʬʸ»úÎó¤Î¥Þ¥Ã¥Á¥ó¥°°ÌÃÖ¾ðÊó¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +が設定されない場合は、部分文字列のマッチング位置情報を得ることができる。 .I pmatch -¤Ï¡¢¾¯¤Ê¤¯¤È¤â +は、少なくとも .I nmatch -¤ÎÂ礭¤µ¤ò»ý¤Ä¤è¤¦¤Ë»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +の大きさを持つように指定しなければならない。 .BR regexec () -¤Î¼Â¹Ô¤Ë¤è¤Ã¤Æ¡¢¤½¤ì¤é¤ËÉôʬʸ»úÎó¥Þ¥Ã¥Á¥ó¥°°ÌÃÖ¾ðÊó¤¬ÂåÆþ¤µ¤ì¤ë¡£ -̤»ÈÍѤι½Â¤ÂÎÍ×ÁÇ¤Ë¤Ï \-1 ¤¬ÃͤȤ·¤ÆÂåÆþ¤µ¤ì¤ë¡£ +の実行によって、それらに部分文字列マッチング位置情報が代入される。 +未使用の構造体要素には \-1 が値として代入される。 .I pmatch -¤Î·¿¤Ç¤¢¤ë +の型である .I regmatch_t -¹½Â¤ÂΤϡ¢ +構造体は、 .I -Æâ¤ÇÄêµÁ¤µ¤ì¤ë¡£ +内で定義される。 .in +4n .nf @@ -188,126 +188,126 @@ typedef struct { .fi .in -¹½Â¤ÂÎÍ×ÁÇ +構造体要素 .I rm_so -¤ÎÃͤ¬ \-1 ¤Ç¤Ê¤¤¾ì¹ç¡¢¤½¤ì¤Ïʸ»úÎóÆâ¤Ç¤Î¼¡¤ÎºÇÂç¤Î¥Þ¥Ã¥Á¥ó¥°Éôʬ¤Î³«»Ï -¥ª¥Õ¥»¥Ã¥È°ÌÃÖ¤ò¼¨¤¹¡£¤½¤ì¤ËÂФ·¡¢¹½Â¤ÂÎÍ×ÁÇ +の値が \-1 でない場合、それは文字列内での次の最大のマッチング部分の開始 +オフセット位置を示す。それに対し、構造体要素 .I rm_eo -¤Ï¥Þ¥Ã¥Á¥ó¥°Éôʬ¤Î½ªÎ»¥ª¥Õ¥»¥Ã¥È°ÌÃÖ¤ò¼¨¤·¡¢ -¥Þ¥Ã¥Á¥ó¥°Éôʬ¤Îľ¸å¤Îʸ»ú¤Î¥ª¥Õ¥»¥Ã¥È°ÌÃÖ¤¬»ÈÍѤµ¤ì¤ë¡£ -.SS "POSIX ¥¨¥é¡¼¥ì¥Ý¡¼¥È" +はマッチング部分の終了オフセット位置を示し、 +マッチング部分の直後の文字のオフセット位置が使用される。 +.SS "POSIX エラーレポート" .BR regerror () -¤Ï¡¢ +は、 .BR regcomp () -¤È +と .BR regexec () -¤Î¼Â¹Ô¤Ë¤è¤Ã¤ÆÆÀ¤é¤ì¤ë¥¨¥é¡¼¥³¡¼¥É¤«¤é¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸Ê¸»úÎó¤ò -ÆÀ¤ë¤Î¤ËÍѤ¤¤é¤ì¤ë¡£ +の実行によって得られるエラーコードから、エラーメッセージ文字列を +得るのに用いられる。 .BR regerror () -¤Ï¥¨¥é¡¼¥³¡¼¥É -.IR errcode ¡¢ -¥Ñ¥¿¡¼¥ó¥Ð¥Ã¥Õ¥¡ -.IR preg ¡¢ -ʸ»úÎó¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿ -.IR errbuf ¡¢ -ʸ»úÎó¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º +はエラーコード +.IR errcode 、 +パターンバッファ +.IR preg 、 +文字列バッファへのポインタ +.IR errbuf 、 +文字列バッファのサイズ .I errbuf_size -¤ò°ú¿ô¤Ë¤È¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢¥Ì¥ëʸ»ú¤Ç½ªÃ¼¤µ¤ì¤¿¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸Ê¸»úÎó¤ò³ÊǼ¤¹¤ë¤Î¤ËɬÍ×¤Ê +を引数にとる。 +この関数は、ヌル文字で終端されたエラーメッセージ文字列を格納するのに必要な .I errbuf -¤Î¥µ¥¤¥º¤òÊÖ¤¹¡£¤â¤· +のサイズを返す。もし .I errbuf -¤È +と .I errbuf_size -¤ÎξÊý¤¬Èó 0 ÃͤǤ¢¤ì¤Ð¡¢ +の両方が非 0 値であれば、 .I errbuf -¤Ë¤ÏºÇ½é¤Î +には最初の .I "errbuf_size \- 1" -ʸ»úʬ¤Ë¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤È½ªÃ¼¤Î NULL ¥Ð¥¤¥È (\(aq\\0\(aq) -¤¬¼ý¤Þ¤ë¤è¤¦¤ËÂåÆþ¤µ¤ì¤ë¡£ -.SS "POSIX ¥Ñ¥¿¡¼¥ó¥Ð¥Ã¥Õ¥¡²òÊü" -°ú¿ô¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥Ñ¥¿¡¼¥ó¥Ð¥Ã¥Õ¥¡ +文字分にエラーメッセージと終端の NULL バイト (\(aq\\0\(aq) +が収まるように代入される。 +.SS "POSIX パターンバッファ解放" +引数にコンパイルされたパターンバッファ .I preg -¤òÍ¿¤¨¤Æ +を与えて .BR regfree () -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢ +を呼び出すと、 .BR regcomp () -¤Ë¤è¤ë¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¥Ñ¥¿¡¼¥ó¥Ð¥Ã¥Õ¥¡¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤¬²òÊü¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +によるコンパイル時にパターンバッファに割り当てられたメモリが解放される。 +.SH 返り値 .BR regcomp () -¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë¤ÎÀ®¸ù»þ¤Ë¤Ï 0 ¤òÊÖ¤·¡¢¼ºÇÔ»þ¤Ë¤Ï¥¨¥é¡¼¥³¡¼¥É¤òÊÖ¤¹¡£ +は、コンパイルの成功時には 0 を返し、失敗時にはエラーコードを返す。 .BR regexec () -¤Ï¡¢¥Þ¥Ã¥Á¥ó¥°¤ÎÀ®¸ù»þ¤Ë¤Ï 0 ¤òÊÖ¤·¡¢¼ºÇÔ»þ¤Ë¤Ï +は、マッチングの成功時には 0 を返し、失敗時には .B REG_NOMATCH -¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +を返す。 +.SH エラー .BR regcomp () -¤Ï°Ê²¼¤Î¥¨¥é¡¼¤òÊÖ¤¹¡£ +は以下のエラーを返す。 .TP .B REG_BADBR -̵¸ú¤Ê¸åÊý»²¾È¥ª¥Ú¥ì¡¼¥¿¤Î»ÈÍÑ¡£ +無効な後方参照オペレータの使用。 .TP .B REG_BADPAT -¥°¥ë¡¼¥×¤ä¥ê¥¹¥È¤Ê¤É¤Î¡¢¥Ñ¥¿¡¼¥ó¥ª¥Ú¥ì¡¼¥¿¤Î̵¸ú¤Ê»ÈÍÑ¡£ +グループやリストなどの、パターンオペレータの無効な使用。 .TP .B REG_BADRPT -\(aq*\(aq ¤¬ºÇ½é¤Îʸ»ú¤È¤·¤Æ¤¯¤ë¤è¤¦¤Ê¡¢Ìµ¸ú¤Ê·«¤êÊÖ¤·¥ª¥Ú¥ì¡¼¥¿¤Î»ÈÍÑ¡£ +\(aq*\(aq が最初の文字としてくるような、無効な繰り返しオペレータの使用。 .TP .B REG_EBRACE -¥¤¥ó¥¿¡¼¥Ð¥ë¥ª¥Ú¥ì¡¼¥¿ +インターバルオペレータ .B {} -(brace interval operators) ¤¬ÊĤ¸¤Æ¤¤¤Ê¤¤¡£ +(brace interval operators) が閉じていない。 .TP .B REG_EBRACK -¥ê¥¹¥È¥ª¥Ú¥ì¡¼¥¿ +リストオペレータ .B [] -(bracket list operators) ¤¬ÊĤ¸¤Æ¤¤¤Ê¤¤¡£ +(bracket list operators) が閉じていない。 .TP .B REG_ECOLLATE -¾È¹ç½ç½ø¤ÎÍ×ÁÇ (collating element) ¤È¤·¤ÆÍ­¸ú¤Ç¤Ï¤Ê¤¤¡£ +照合順序の要素 (collating element) として有効ではない。 -(ÌõÃí) ¾È¹ç½ç½ø¤ÎÍ×ÁÇ (collating element) ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +(訳注) 照合順序の要素 (collating element) については、 .BR regex (7) -¤ò»²¾È¡£ +を参照。 .TP .B REG_ECTYPE -̤ÃΤΥ­¥ã¥é¥¯¥¿¥¯¥é¥¹Ì¾¡£ +未知のキャラクタクラス名。 .TP .B REG_EEND -̤ÄêµÁ¥¨¥é¡¼¡£¤³¤ì¤Ï POSIX.2 ¤Ë¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +未定義エラー。これは POSIX.2 には定義されていない。 .TP .B REG_EESCAPE -Àµµ¬É½¸½¤¬¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤Ç½ª¤Ã¤Æ¤¤¤ë¡£ +正規表現がバックスラッシュで終っている。 -(ÌõÃí) ÆüËܸì´Ä¶­¤Î¾ì¹ç¡¢¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤È¤Ê¤ë¤Ù¤­½ê¤¬±ßµ­¹æ¤Ç -ɽ¼¨¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¤¬¡¢¤³¤ì¤Ïñ¤Ëɽ¼¨¥Õ¥©¥ó¥È¤ÎÌäÂê¤Ç¡¢ -ÆâÉôŪ¤Ë¤ÏƱ¤¸°ÕÌ£¤Ç¤¢¤ë¡£ +(訳注) 日本語環境の場合、バックスラッシュとなるべき所が円記号で +表示されることがあるが、これは単に表示フォントの問題で、 +内部的には同じ意味である。 .TP .B REG_EPAREN -¥°¥ë¡¼¥×¥ª¥Ú¥ì¡¼¥¿ +グループオペレータ .B () -(parenthesis group operators) ¤¬ÊĤ¸¤Æ¤¤¤Ê¤¤¡£ +(parenthesis group operators) が閉じていない。 .TP .B REG_ERANGE -̵¸ú¤ÊÈÏ°Ï¥ª¥Ú¥ì¡¼¥¿¤Î»ÈÍÑ¡£ -Î㤨¤Ð¡¢ÈϰϤνªÎ»°ÌÃÖ¤¬³«»Ï°ÌÃÖ¤è¤ê¤âÁ°¤Ë¤¢¤ë¤è¤¦¤Ê¾ì¹ç¡£ +無効な範囲オペレータの使用。 +例えば、範囲の終了位置が開始位置よりも前にあるような場合。 .TP .B REG_ESIZE -Àµµ¬É½¸½¤Î¥³¥ó¥Ñ¥¤¥ë¤Ë¡¢64Kb °Ê¾å¤Î¥Ñ¥¿¡¼¥ó¥Ð¥Ã¥Õ¥¡¤¬É¬Íס£ -¤³¤ì¤Ï POSIX.2 ¤Ë¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +正規表現のコンパイルに、64Kb 以上のパターンバッファが必要。 +これは POSIX.2 には定義されていない。 .TP .B REG_ESPACE -regex ¥ë¡¼¥Á¥ó¤¬¥á¥â¥ê¤ò»È¤¤¤Ï¤¿¤·¤Æ¤¤¤ë¡£ +regex ルーチンがメモリを使いはたしている。 .TP .B REG_ESUBREG -¥µ¥Ö¥¨¥¯¥¹¥×¥ì¥Ã¥·¥ç¥ó +サブエクスプレッション .RB \e (...\e ) -(subexpression) ¤Ø¤Î̵¸ú¤Ê¸åÊý»²¾È¡£ -.SH ½àµò +(subexpression) への無効な後方参照。 +.SH 準拠 POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR grep (1), .BR regex (7), -GNU regex ¥Þ¥Ë¥å¥¢¥ë +GNU regex マニュアル diff --git a/release/man3/remainder.3 b/release/man3/remainder.3 index d85853a8..3189f11c 100644 --- a/release/man3/remainder.3 +++ b/release/man3/remainder.3 @@ -40,29 +40,29 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH REMAINDER 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -drem, dremf, dreml, remainder, remainderf, remainderl \- ÉâÆ°¾®¿ôÅÀ¾ê;´Ø¿ô -.SH ½ñ¼° +.SH 名前 +drem, dremf, dreml, remainder, remainderf, remainderl \- 浮動小数点剰余関数 +.SH 書式 .nf .B #include .sp -/* C99 ÈÇ */ +/* C99 版 */ .BI "double remainder(double " x ", double " y ); .BI "float remainderf(float " x ", float " y ); .BI "long double remainderl(long double " x ", long double " y ); .sp -/* Çѻߤµ¤ì¤¿ÊÌ̾ */ +/* 廃止された別名 */ .BI "double drem(double " x ", double " y ); .BI "float dremf(float " x ", float " y ); .BI "long double dreml(long double " x ", long double " y ); .sp .fi -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -94,119 +94,119 @@ or _SVID_SOURCE || _BSD_SOURCE .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR remainder () -´Ø¿ô¤Ï +関数は .I x -¤ò +を .I y -¤Ç³ä¤Ã¤¿Í¾¤ê¤ò·×»»¤¹¤ë¡£ -ÊÖ¤êÃÍ¤Ï +で割った余りを計算する。 +返り値は \fIx\fP\-\fIn\fP*\fIy\fP -¤Ç¤¢¤ë¡£ -¤³¤³¤Ç +である。 +ここで .I n -¤Ï +は .I "x\ /\ y" -¤ÎÃͤòºÇ¤â¶á¤¤À°¿ô¤Ë´Ý¤á¤¿¤â¤Î¤Ç¤¢¤ë¡£ +の値を最も近い整数に丸めたものである。 \fIx\fP\-\fIn\fP*\fIy\fP -¤ÎÀäÂÐÃͤ¬ 0.5 ¤Î¾ì¹ç¡¢¶ö¿ô¤Ë¤Ê¤ë¤è¤¦¤Ë +の絶対値が 0.5 の場合、偶数になるように .I n -¤¬Áª¤Ð¤ì¤ë¡£ +が選ばれる。 -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¸½ºß¤Î´Ý¤á¥â¡¼¥É¤Î±Æ¶Á¤ò¼õ¤±¤Ê¤¤ (´Ý¤á¥â¡¼¥É¤Ë¤Ä¤¤¤Æ¤Ï +これらの関数は、現在の丸めモードの影響を受けない (丸めモードについては .BR fenv (3) -¤ò»²¾È)¡£ +を参照)。 .LP .BR drem () -´Ø¿ô¤Ï¤³¤ì¤ÈÁ´¤¯Æ±¤¸Æ°ºî¤ò¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤ÏÉâÆ°¾®¿ôÅÀ¤Î¾ê; \fIx\fP\-\fIn\fP*\fIy\fP ¤òÊÖ¤¹¡£ -ÊÖ¤êÃͤ¬ 0 ¤Î¾ì¹ç¡¢¤½¤ÎÉä¹æ¤Ï +関数はこれと全く同じ動作をする。 +.SH 返り値 +成功すると、これらの関数は浮動小数点の剰余 \fIx\fP\-\fIn\fP*\fIy\fP を返す。 +返り値が 0 の場合、その符号は .I x -¤ÈƱ¤¸¤Ë¤Ê¤ë¡£ +と同じになる。 .I x -¤« +か .I y -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬Ìµ¸ÂÂç¤Ç +が無限大で .I y -¤¬ NaN ¤Ç¤Ê¤¤¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN でない場合、 +領域エラー (domain error) が発生し、NaN が返される。 .\" FIXME . Instead, glibc gives a domain error even if x is a NaN .\" Interestingly, remquo(3) does not have the same problem. .I y -¤¬¥¼¥í¤Ç +がゼロで .I x -¤¬ NaN ¤Ç¤Ê¤¤¾ì¹ç¡¢ -Îΰ襨¥é¡¼¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +が NaN でない場合、 +領域エラーが発生し、NaN が返される。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬Ìµ¸ÂÂç¤Ç \fIy\fP ¤¬ NaN ¤Ç¤Ï¤Ê¤¤ +領域エラー (domain error): \fIx\fP が無限大で \fIy\fP が NaN ではない .\" .I errno .\" is set to .\" .BR EDOM . -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .IP -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¤³¤Î¾ì¹ç¤Ë +これらの関数は、この場合に .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" They do set errno for the y == 0 case, below. .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6783 .TP -Îΰ襨¥é¡¼: \fIy\fP ¤¬¥¼¥í¤Ç \fIx\fP ¤¬ NaN ¤Ç¤Ï¤Ê¤¤ (²¼µ­¤Î¡Ö¥Ð¥°¡×»²¾È) +領域エラー: \fIy\fP がゼロで \fIx\fP が NaN ではない (下記の「バグ」参照) .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë¡£ -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ -.SH ½àµò +が上がる。 +.SH 準拠 .\" IEC 60559. -´Ø¿ô +関数 .BR remainder (), .BR remainderf (), .BR remainderl () -¤Ï C99 ¤È POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は C99 と POSIX.1-2001 で規定されている。 -´Ø¿ô +関数 .BR drem () -¤Ï 4.3BSD ¤ËͳÍ褹¤ë¡£ +は 4.3BSD に由来する。 .I float -¤È +と .I "long double" -ÈǤΠ+版の .BR dremf () -¤È +と .BR dreml () -¤Ï¡¢Tru64 ¤ä glibc2 ¤Î¤è¤¦¤Ê¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Î»ÈÍѤÏÈò¤±¤Æ¡¢ +は、Tru64 や glibc2 のようないくつかのシステムに存在する。 +これらの関数の使用は避けて、 .BR remainder () -¤Ê¤É¤ò»ÈÍѤ¹¤ë¤³¤È¡£ -.SH ¥Ð¥° +などを使用すること。 +.SH バグ remainder(nan(""), 0); -¤Î¸Æ¤Ó½Ð¤·¤ò¹Ô¤¦¤È¡¢´üÂÔÄ̤ê Nan ¤¬Ê֤뤬¡¢¸í¤Ã¤ÆÎΰ襨¥é¡¼¤¬È¯À¸¤¹¤ë¡£ -Àµ¤·¤¯¤Ï¥¨¥é¡¼¤Ê¤·¤Î Nan ¤È¤Ê¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +の呼び出しを行うと、期待通り Nan が返るが、誤って領域エラーが発生する。 +正しくはエラーなしの Nan となるべきである。 .\" FIXME . this bug occurs as at glibc 2.8. .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6779 -.SH Îã -"remainder(29.0, 3.0)" ¤ò¸Æ¤Ó½Ð¤¹¤È \-1 ¤òÊÖ¤¹¡£ -.SH ´ØÏ¢¹àÌÜ +.SH 例 +"remainder(29.0, 3.0)" を呼び出すと \-1 を返す。 +.SH 関連項目 .BR div (3), .BR fmod (3), .BR remquo (3) diff --git a/release/man3/remove.3 b/release/man3/remove.3 index 442f0d7a..af3b1fec 100644 --- a/release/man3/remove.3 +++ b/release/man3/remove.3 @@ -36,56 +36,56 @@ .\" Updated Mon Feb 17 JST 2003 by Kentaro Shirakata .\" .TH REMOVE 3 2008-12-03 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -remove \- ¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥ì¥¯¥È¥ê¤òºï½ü¤¹¤ë -.SH ½ñ¼° +.SH 名前 +remove \- ファイルやディレクトリを削除する +.SH 書式 .B #include .sp .BI "int remove(const char *" pathname ); -.SH ÀâÌÀ +.SH 説明 .BR remove () -¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤«¤é¥Õ¥¡¥¤¥ë̾¤òºï½ü¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¤Ï +はファイルシステムからファイル名を削除する。 +ファイルに対しては .BR unlink (2) -¤ò¡¢¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ·¤Æ¤Ï +を、ディレクトリに対しては .BR rmdir (2) -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 -¤â¤·¤½¤Î̾Á°¤¬ -¥Õ¥¡¥¤¥ë¤Ø¤ÎºÇ¸å¤Î¥ê¥ó¥¯¤Ç¡¢¤«¤Ä¡¢¤É¤Î¥×¥í¥»¥¹¤â¤½¤Î¥Õ¥¡¥¤¥ë¤ò -³«¤¤¤Æ¤¤¤Ê¤¤¤Ê¤é¡¢¥Õ¥¡¥¤¥ë¤âºï½ü¤¹¤ë¡£¥Õ¥¡¥¤¥ë¤ÎÀê¤á¤Æ¤¤¤¿ -Îΰè¤Ï¾¤Ç»È¤¦¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +もしその名前が +ファイルへの最後のリンクで、かつ、どのプロセスもそのファイルを +開いていないなら、ファイルも削除する。ファイルの占めていた +領域は他で使うことができるようになる。 -̾Á°¤¬¥Õ¥¡¥¤¥ë¤Ø¤ÎºÇ¸å¤Î¥ê¥ó¥¯¤Ç¤¢¤Ã¤Æ¤â¡¢¤É¤³¤«¤Î¥×¥í¥»¥¹¤¬ -¤½¤Î¥Õ¥¡¥¤¥ë¤ò³«¤¤¤Æ¤¤¤ë¤Ê¤é¡¢¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤Î¥Õ¥¡¥¤¥ëµ­½Ò»Ò -(file descriptor) ¤¬ÊĤ¸¤é¤ì¤ë¤Þ¤Ç¥Õ¥¡¥¤¥ë¤Ï¸ºß¤·Â³¤±¤ë¡£ +名前がファイルへの最後のリンクであっても、どこかのプロセスが +そのファイルを開いているなら、ファイルの最後のファイル記述子 +(file descriptor) が閉じられるまでファイルは存在し続ける。 -̾Á°¤¬»Ø¤·¤Æ¤¤¤ë¤Î¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ê¤é¡¢¤½¤Î¥ê¥ó¥¯¤òºï½ü¤¹¤ë¡£ +名前が指しているのがシンボリックリンクなら、そのリンクを削除する。 -̾Á°¤¬»Ø¤·¤Æ¤¤¤ë¤Î¤¬¥½¥±¥Ã¥È¡¢FIFO¡¢¥Ç¥Ð¥¤¥¹¤Î¾ì¹ç¡¢Ì¾Á°¤Ïºï½ü¤µ¤ì¤ë¤¬¡¢ -¤½¤Î¥½¥±¥Ã¥È¤Ê¤É¤ò³«¤¤¤Æ¤¤¤ë¥×¥í¥»¥¹¤Ï¤½¤Î¤Þ¤Þ»È¤¤Â³¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ì¤Ð 0 ¤¬Ê֤롣¥¨¥é¡¼¤Ê¤é \-1 ¤¬Ê֤ꡢ +名前が指しているのがソケット、FIFO、デバイスの場合、名前は削除されるが、 +そのソケットなどを開いているプロセスはそのまま使い続けることができる。 +.SH 返り値 +成功すれば 0 が返る。エラーなら \-1 が返り、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -ȯÀ¸¤¹¤ë¥¨¥é¡¼¤Ï +に適切な値がセットされる。 +.SH エラー +発生するエラーは .BR unlink (2) -¤ª¤è¤Ó +および .BR rmdir (2) -¤ÈƱ¤¸¤â¤Î¤Ç¤¢¤ë¡£ -.SH ½àµò +と同じものである。 +.SH 準拠 C89, C99, 4.3BSD, POSIX.1-2001. -.SH Ãí°Õ -libc4 ¤È libc5 ¤Ë¤ª¤¤¤Æ¤Ï¡¢ +.SH 注意 +libc4 と libc5 においては、 .BR remove () -¤Ï +は .BR unlink (2) -¤ÎÊÌ̾¤Ç¤¢¤Ã¤¿ (½¾¤Ã¤Æ¥Ç¥£¥ì¥¯¥È¥ê¤òºï½ü¤Ç¤­¤Ê¤«¤Ã¤¿)¡£ -.SH ¥Ð¥° -NFS ¥×¥í¥È¥³¥ë¤Îº¬ËÜŪ¤ÊÉÔÅÔ¹ç¤Ë¤è¤ê¡¢»ÈÍÑÃæ¤Î¥Õ¥¡¥¤¥ë¤¬¡¢ -ÁÛÄê¤Ç¤­¤Ê¤¤·Á¤Çºï½ü¤µ¤ì¤ë¤³¤È¤¬¤¢¤ê¤¨¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +の別名であった (従ってディレクトリを削除できなかった)。 +.SH バグ +NFS プロトコルの根本的な不都合により、使用中のファイルが、 +想定できない形で削除されることがありえる。 +.SH 関連項目 .BR rm (1), .BR unlink (1), .BR link (2), diff --git a/release/man3/remquo.3 b/release/man3/remquo.3 index 6438532c..2094234f 100644 --- a/release/man3/remquo.3 +++ b/release/man3/remquo.3 @@ -12,9 +12,9 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH REMQUO 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -remquo, remquof, remquol \- ¾¦¤Î°ìÉô¤È¾ê;¤òµá¤á¤ë -.SH ½ñ¼° +.SH 名前 +remquo, remquof, remquol \- 商の一部と剰余を求める +.SH 書式 .nf .B #include .sp @@ -25,12 +25,12 @@ remquo, remquof, remquol \- .BI "long double remquol(long double " x ", long double " y ", int *" quo ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -45,82 +45,82 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï +.SH 説明 +これらの関数は .I x -¤ò +を .I y -¤Ç³ä¤Ã¤¿¤È¤­¤Î¾¦¤Î°ìÉô¤È¾ê;¤ò·×»»¤¹¤ë¡£ -¾¦¤Î¤¤¤¯¤Ä¤«¤Î¥Ó¥Ã¥È¤¬ +で割ったときの商の一部と剰余を計算する。 +商のいくつかのビットが .I quo -¥Ý¥¤¥ó¥¿¤ò»È¤Ã¤Æ³ÊǼ¤µ¤ì¤ë¡£ -¾ê;¤Ï´Ø¿ô¤Î·ë²Ì¤È¤·¤ÆÊÖ¤µ¤ì¤ë¡£ +ポインタを使って格納される。 +剰余は関数の結果として返される。 -¾ê;¤ÎÃÍ¤Ï +剰余の値は .BR remainder (3) -´Ø¿ô¤Ç·×»»¤µ¤ì¤ë¤â¤Î¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +関数で計算されるものと同じである。 .I quo -¥Ý¥¤¥ó¥¿¤ò»È¤Ã¤Æ³ÊǼ¤µ¤ì¤ëÃͤˤϡ¢ +ポインタを使って格納される値には、 .I "x\ /\ y" -¤ÎÉä¹æ¤ÈºÇÄã¤Ç¤â¾¦¤Î²¼°Ì 3 ¥Ó¥Ã¥È¤¬´Þ¤Þ¤ì¤ë¡£ +の符号と最低でも商の下位 3 ビットが含まれる。 -¤¿¤È¤¨¤Ð \fIremquo(29.0,\ 3.0)\fP ¤Ï \-1.0 ¤òÊÖ¤·¡¢ -(ÌõÃí: quo ¤Î»Ø¤·¤Æ¤¤¤ë¤â¤Î¤Ë¤Ï) 2 ¤¬³ÊǼ¤µ¤ì¤ë¡£ -¼ÂºÝ¤Î¾¦¤¬À°¿ôÃͤˤʤé¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -.\" ¤³¤Î´Ø¿ô¤òÍøÍѤ¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤È¤·¤Æ¤Ï¡¢ -.\" sin(x) ¤Î·×»»¤Ê¤É¤¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -.\" sin(x) ¤Ç¤Ï remquo(x, pi/2, &quo) ¤Ê¤É¤ò·×»»¤¹¤ë¡£ +たとえば \fIremquo(29.0,\ 3.0)\fP は \-1.0 を返し、 +(訳注: quo の指しているものには) 2 が格納される。 +実際の商が整数値にならない点に注意すること。 +.\" この関数を利用するアプリケーションとしては、 +.\" sin(x) の計算などがあるかもしれない。 +.\" sin(x) では remquo(x, pi/2, &quo) などを計算する。 .\" -.\" glibc, UnixWare: 3 ¥Ó¥Ã¥È¤òÊÖ¤¹¡£ -.\" MacOS 10: 7 ¥Ó¥Ã¥È¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +.\" glibc, UnixWare: 3 ビットを返す。 +.\" MacOS 10: 7 ビットを返す。 +.SH 返り値 +成功すると、これらの関数は .BR remainder (3) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ëƱÍͤδؿô¤ÈƱ¤¸ÃͤòÊÖ¤¹¡£ +に書かれている同様の関数と同じ値を返す。 .I x -¤« +か .I y -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬Ìµ¸ÂÂç¤Ç +が無限大で .I y -¤¬ NaN ¤Ç¤Ê¤¤¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN でない場合、 +領域エラー (domain error) が発生し、NaN が返される。 .I y -¤¬¥¼¥í¤Ç +がゼロで .I x -¤¬ NaN ¤Ç¤Ê¤¤¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +が NaN でない場合、 +領域エラー (domain error) が発生し、NaN が返される。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬Ìµ¸ÂÂ礫 \fIy\fP ¤¬ 0 ¤Ç¡¢ \ -¾¤Î°ú¤­¿ô¤¬ NaN ¤Ç¤Ê¤¤ +領域エラー (domain error): \fIx\fP が無限大か \fIy\fP が 0 で、 \ +他の引き数が NaN でない .\" .I errno .\" is set to .\" .BR EDOM . -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6802 -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fmod (3), .BR logb (3), .BR remainder (3) diff --git a/release/man3/resolver.3 b/release/man3/resolver.3 index 84b5c010..4f5d223a 100644 --- a/release/man3/resolver.3 +++ b/release/man3/resolver.3 @@ -33,27 +33,27 @@ .\" Updated & Modified Thu Feb 17 03:58:45 JST 2005 .\" by Yuichi SATO .\" -.\"WORD: resolver ¥ì¥¾¥ë¥Ð (¥ê¥¾¥ë¥Ð) -.\"WORD: override ¥ª¡¼¥Ð¡¼¥é¥¤¥É -.\"WORD: call ¸Æ¤Ó½Ð¤·¡¢¸Æ¤Ó½Ð¤¹ -.\"WORD: fully qualified domain name ´°Á´½¤¾þ¥É¥á¥¤¥ó̾(FQDN) -.\"WORD: type ·¿ -.\"WORD: class ¥¯¥é¥¹ -.\"WORD: query Ì䤤¹ç¤ï¤»¡¢Ì䤤¹ç¤ï¤»¤ë -.\"WORD: buffer ¥Ð¥Ã¥Õ¥¡¡¼ -.\"WORD: lower-level routines ²¼°Ì¥ë¡¼¥Á¥ó -.\"WORD: limit of the array ÇÛÎó¤ÎÈÏ°Ï -.\"WORD: state information ¾õÂ֤ξðÊó -.\"WORD: bitwise ``or'' ¥Ó¥Ã¥Èñ°Ì¤ÎÏÀÍýÏ -.\"WORD: True ¿¿ÃÍ -.\"WORD: authoritative ¸¢°ÒÉÕ¤±¤µ¤ì¤¿ -.\"WORD: recursion desired bit ºÆµ¢Í×µá¥Ó¥Ã¥È -.\"WORD: single component names °ìÉôʬ¤«¤é¤Ê¤ë̾Á° +.\"WORD: resolver レゾルバ (リゾルバ) +.\"WORD: override オーバーライド +.\"WORD: call 呼び出し、呼び出す +.\"WORD: fully qualified domain name 完全修飾ドメイン名(FQDN) +.\"WORD: type 型 +.\"WORD: class クラス +.\"WORD: query 問い合わせ、問い合わせる +.\"WORD: buffer バッファー +.\"WORD: lower-level routines 下位ルーチン +.\"WORD: limit of the array 配列の範囲 +.\"WORD: state information 状態の情報 +.\"WORD: bitwise ``or'' ビット単位の論理和 +.\"WORD: True 真値 +.\"WORD: authoritative 権威付けされた +.\"WORD: recursion desired bit 再帰要求ビット +.\"WORD: single component names 一部分からなる名前 .\" .TH RESOLVER 3 2010-06-17 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, dn_comp, dn_expand \- ¥ì¥¾¥ë¥Ð¡¦¥ë¡¼¥Á¥ó -.SH ½ñ¼° +.SH 名前 +res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, dn_comp, dn_expand \- レゾルバ・ルーチン +.SH 書式 .nf .B #include .B #include @@ -101,161 +101,161 @@ res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, dn_comp .RE .fi .sp -\fI\-lresolv\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Î¥É¥á¥¤¥ó¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤ËÌ䤤¹ç¤ï¤»¡¢ -¤½¤Î±þÅú¤ò²ò¼á¤¹¤ë¡£ +\fI\-lresolv\fP でリンクする。 +.SH 説明 +これらの関数はインターネットのドメインネームサーバーに問い合わせ、 +その応答を解釈する。 .PP .BR res_init () -´Ø¿ô¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥É¥á¥¤¥ó̾¡¢¸¡º÷½ç¡¢¥Í¡¼¥à¥µ¡¼¥Ð¡¼ -¥¢¥É¥ì¥¹¤òÆÀ¤ë¤¿¤á¤ËÀßÄê¥Õ¥¡¥¤¥ë (resolv.conf(5) »²¾È) ¤òÆɤࡣ -¤â¤·¥µ¡¼¥Ð¡¼¤¬¼¨¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¥í¡¼¥«¥ë¥Û¥¹¥È¤ò»î¤¹¡£ -¥É¥á¥¤¥ó¤¬¼¨¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¥í¡¼¥«¥ë¥Û¥¹¥È¤ËÉÕ¤±¤é¤ì¤¿¥É¥á¥¤¥ó¤òÍѤ¤¤ë¡£ -´Ä¶­ÊÑ¿ô +関数は、デフォルトのドメイン名、検索順、ネームサーバー +アドレスを得るために設定ファイル (resolv.conf(5) 参照) を読む。 +もしサーバーが示されていなければローカルホストを試す。 +ドメインが示されていなければローカルホストに付けられたドメインを用いる。 +環境変数 .B LOCALDOMAIN -¤Ç¥ª¡¼¥Ð¡¼¥é¥¤¥É¤Ç¤­¤ë¡£ +でオーバーライドできる。 .BR res_init () -¤Ï¡¢¸å½Ò¤¹¤ë´Ø¿ô¤Î¤É¤ì¤«¤¬ºÇ½é¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿»þ¡¢¤½¤Î´Ø¿ô -¤«¤é¼Â¹Ô¤µ¤ì¤ë¡£ +は、後述する関数のどれかが最初に呼び出された時、その関数 +から実行される。 .PP .BR res_query () -´Ø¿ô¤Ï¡¢»ØÄꤵ¤ì¤¿ \fItype\fP ¤È \fIclass\fP ¤Î -´°Á´½¤¾þ¥É¥á¥¤¥ó̾ (FQDN) \fIname\fP ¤ò¡¢¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤ØÌ䤤¹ç¤ï¤»¤ë¡£ -±þÅú¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿Â¦¤Ë¤è¤Ã¤ÆÍÑ°Õ¤µ¤ì¤ëŤµ \fIanslen\fP ¤Î \fIanswer\fP -¥Ð¥Ã¥Õ¥¡¡¼¤Ë»Ä¤µ¤ì¤ë¡£ +関数は、指定された \fItype\fP と \fIclass\fP の +完全修飾ドメイン名 (FQDN) \fIname\fP を、ネームサーバーへ問い合わせる。 +応答は、呼び出した側によって用意される長さ \fIanslen\fP の \fIanswer\fP +バッファーに残される。 .PP .BR res_search () -´Ø¿ô¤Ï¡¢Ì䤤¹ç¤ï¤»¤ò¹Ô¤¤ +関数は、問い合わせを行い .BR res_query () -ƱÍͤ½¤Î±þÅú¤ò -ÂԤĤ¬¡¢¤µ¤é¤Ë¥Ç¥Õ¥©¥ë¥È¤ò¼ÂÁõ¤·¤Æ¤ª¤ê +同様その応答を +待つが、さらにデフォルトを実装しており .B RES_DEFNAMES -¤È +と .B RES_DNSRCH -¤Ë¤è¤Ã¤Æµ¬Äꤵ¤ì¤ë¸¡º÷¥ë¡¼¥ë¤òŬÍѤ¹¤ë¡£ -(²¼µ­ \fI_res\fP ¥ª¥×¥·¥ç¥ó¤ÎÀâÌÀ¤ò»²¾È) +によって規定される検索ルールを適用する。 +(下記 \fI_res\fP オプションの説明を参照) .PP .BR res_querydomain () -´Ø¿ô¤Ï \fIname\fP ¤È \fIdomain\fP ¤Î·ë¹ç¤Ë +関数は \fIname\fP と \fIdomain\fP の結合に .BR res_query () -¤òÍѤ¤¤ÆÌ䤤¹ç¤ï¤»¤ò¹Ô¤¦¡£ +を用いて問い合わせを行う。 .PP -¼¡¤Î´Ø¿ô¤Ï¡¢ +次の関数は、 .BR res_query () -¤Ç»È¤ï¤ì¤ë²¼°Ì¥ë¡¼¥Á¥ó¤Ç¤¢¤ë¡£ +で使われる下位ルーチンである。 .PP .BR res_mkquery () -´Ø¿ô¤Ï¡¢¥É¥á¥¤¥ó̾ \fIdname\fP ¤Î°Ù¤Ë¡¢Ä¹¤µ \fIbuflen\fP -¤Î \fIbuf\fP ¤ËÌ䤤¹ç¤ï¤»¤ë¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤¹¤ë¡£ -Ì䤤¹ç¤ï¤»¤Î·¿ \fIop\fP ¤ÏÄ̾ï +関数は、ドメイン名 \fIdname\fP の為に、長さ \fIbuflen\fP +の \fIbuf\fP に問い合わせるメッセージを作成する。 +問い合わせの型 \fIop\fP は通常 .B QUERY -¤À¤¬¡¢ \fI\fP ¤ÇÄêµÁ¤µ¤ì¤¿·¿¤Î¤É¤ì¤Ç¤âÎɤ¤¡£ -\fInewrr\fP ¤Ï¸½ºß»ÈÍѤµ¤ì¤Æ¤¤¤Ê¤¤¡£ +だが、 \fI\fP で定義された型のどれでも良い。 +\fInewrr\fP は現在使用されていない。 .PP .BR res_send () -´Ø¿ô¤Ï¡¢Ä¹¤µ \fImsglen\fP ¤Î \fImsg\fP ¤Ë·è¤á¤é¤ì¤¿½ñ¼° -¤ÇÌ䤤¹ç¤ï¤»¡¢\fIanswer\fP ¤ËŤµ \fIanslen\fP ¤Î²óÅú¤òÊÖ¤¹¡£ -¤Þ¤À¸Æ¤Ó½Ð¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð +関数は、長さ \fImsglen\fP の \fImsg\fP に決められた書式 +で問い合わせ、\fIanswer\fP に長さ \fIanslen\fP の回答を返す。 +まだ呼び出されていなければ .BR res_init () -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .PP .BR dn_comp () -´Ø¿ô¤Ï¥É¥á¥¤¥ó̾ \fIexp_dn\fP ¤ò°µ½Ì¤·¤Æ¡¢Ä¹¤µ \fIlength\fP -¤Î¥Ð¥Ã¥Õ¥¡¡¼ \fIcomp_dn\fP ¤ËÊݸ¤¹¤ë¡£ -°µ½Ì¤Ë¤Ï¥Ý¥¤¥ó¥¿¡¼ÇÛÎó \fIdnptrs\fP ¤òÍѤ¤¤ë¡£ -¤³¤ì¤é¤Î¥Ý¥¤¥ó¥¿¡¼¤Ï¡¢¸½ºß¤Î¥á¥Ã¥»¡¼¥¸¤ÎÃæ¤Ë¤¢¤ë°ÊÁ°¤Ë°µ½Ì¤µ¤ì¤¿Ì¾Á°¤ò»Ø¤¹¡£ -ºÇ½é¤Î¥Ý¥¤¥ó¥¿¡¼¤Ï¥á¥Ã¥»¡¼¥¸¤ÎËÁƬ¤ò»Ø¤·¡¢¤½¤Î¥ê¥¹¥È¤Ï NULL ¤Ç½ª¤ï¤ë¡£ -ÇÛÎó¤ÎÈÏ°Ï¤Ï \fIlastdnptr\fP ¤Ç·è¤á¤é¤ì¤ë¡£ -\fIdnptr\fP ¤¬ NULL ¤Ê¤é¤Ð¥É¥á¥¤¥ó̾¤Ï°µ½Ì¤µ¤ì¤Ê¤¤¡£ -\fIlastdnptr\fP ¤¬ NULL ¤Ê¤é¤Ð¡¢¤½¤Î¥é¥Ù¥ë¤Î¥ê¥¹¥È¤Ï¥¢¥Ã¥×¥Ç¡¼¥È¤µ¤ì¤Ê¤¤¡£ +関数はドメイン名 \fIexp_dn\fP を圧縮して、長さ \fIlength\fP +のバッファー \fIcomp_dn\fP に保存する。 +圧縮にはポインター配列 \fIdnptrs\fP を用いる。 +これらのポインターは、現在のメッセージの中にある以前に圧縮された名前を指す。 +最初のポインターはメッセージの冒頭を指し、そのリストは NULL で終わる。 +配列の範囲は \fIlastdnptr\fP で決められる。 +\fIdnptr\fP が NULL ならばドメイン名は圧縮されない。 +\fIlastdnptr\fP が NULL ならば、そのラベルのリストはアップデートされない。 .PP .BR dn_expand () -´Ø¿ô¤Ï¡¢°µ½Ì¤µ¤ì¤¿¥É¥á¥¤¥ó̾ \fIcomp_dn\fP ¤«¤é¥µ¥¤¥º -¤¬ \fIlength\fP ¤Î \fIexp_dn\fP ¥Ð¥Ã¥Õ¥¡¡¼¤ËÀµ¼°¤Ê¥É¥á¥¤¥ó̾¤òŸ³«¤¹¤ë¡£ -¤½¤Î°µ½Ì¤µ¤ì¤¿Ì¾Á°¤Ï¡¢Ì䤤¹ç¤ï¤»¡¢¤Þ¤¿¤Ï±þÅú¥á¥Ã¥»¡¼¥¸¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Æ¡¢ -\fImsg\fP ¤¬¥á¥Ã¥»¡¼¥¸¤ÎËÁƬ¤ò»Ø¤¹¡£ +関数は、圧縮されたドメイン名 \fIcomp_dn\fP からサイズ +が \fIlength\fP の \fIexp_dn\fP バッファーに正式なドメイン名を展開する。 +その圧縮された名前は、問い合わせ、または応答メッセージに含まれていて、 +\fImsg\fP がメッセージの冒頭を指す。 .PP -¥ì¥¾¥ë¥Ð¡¦¥ë¡¼¥Á¥ó¤Ï¡¢\fI\fP ¤ËÄêµÁ¤µ¤ì¤¿ \fI_res\fP ¹½Â¤ÂÎ¤Ë -´Þ¤Þ¤ì¤Æ¤¤¤ëÁ´ÂÎŪ¤ÊÀßÄê¤È¾õÂ֤ξðÊó¤ò»ÈÍѤ¹¤ë¡£ -Ä̾ï¥æ¡¼¥¶¡¼¤ËÁàºî¤Ç¤­¤ë¹àÌÜ¤Ï \fI_res.options\fP ¤À¤±¤Ç¤¢¤ë¡£ -¤³¤Î¹àÌܤϰʲ¼¤Î¥ª¥×¥·¥ç¥ó¤Î¥Ó¥Ã¥Èñ°Ì¤ÎÏÀÍýϤˤǤ­¤ë¡£ +レゾルバ・ルーチンは、\fI\fP に定義された \fI_res\fP 構造体に +含まれている全体的な設定と状態の情報を使用する。 +通常ユーザーに操作できる項目は \fI_res.options\fP だけである。 +この項目は以下のオプションのビット単位の論理和にできる。 .TP .B RES_INIT .BR res_init () -¤¬¸Æ¤Ó½Ð¤µ¤ì¤Æ¤¤¤ì¤Ð¿¿¡£ +が呼び出されていれば真。 .TP .B RES_DEBUG -¥Ç¥Ð¥Ã¥°¡¦¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ¹¤ë¡£ +デバッグ・メッセージを出力する。 .TP .B RES_AAONLY -¸¢°ÒÉÕ¤±¤µ¤ì¤¿ (authoritative) ²óÅú¤Î¤ß¼õ¤±Æþ¤ì¤ë¡£ +権威付けされた (authoritative) 回答のみ受け入れる。 .BR res_send () -¤Ï¡¢ºÇ½ªÅª¤Ë¸¢°ÒÉÕ¤±¤µ¤ì¤¿²óÅú¤òÆÀ¤é¤ì¤ë¤«¡¢¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë -¤Þ¤Ç³¹Ô¤¹¤ë¡£ -[¸½ºß¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤] +は、最終的に権威付けされた回答を得られるか、エラーが返される +まで続行する。 +[現在実装されていない] .TP .B RES_USEVC -Ì䤤¹ç¤ï¤»¤Ë UDP ¥Ç¡¼¥¿¥°¥é¥à¤Ç¤Ï¤Ê¤¯ TCP Àܳ¤òÍѤ¤¤ë¡£ +問い合わせに UDP データグラムではなく TCP 接続を用いる。 .TP .B RES_PRIMARY -¥×¥é¥¤¥Þ¥ê¡¦¥É¥á¥¤¥ó¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤Î¤ßÌ䤤¹ç¤ï¤»¤ë¡£ +プライマリ・ドメインネームサーバーのみ問い合わせる。 .TP .B RES_IGNTC -ÀÚ¤êµÍ¤á¥¨¥é¡¼ (truncation error) ¤ò̵»ë¤¹¤ë¡£TCP ¤Ç¥ê¥È¥é¥¤¤·¤Ê¤¤¡£ -[¸½ºß¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤] +切り詰めエラー (truncation error) を無視する。TCP でリトライしない。 +[現在実装されていない] .TP .B RES_RECURSE -ºÆµ¢Í×µá (recursion desired) ¥Ó¥Ã¥È¤òÌ䤤¹ç¤ï¤»¤ËÀßÄꤹ¤ë¡£ -ºÆµ¢¤Ï +再帰要求 (recursion desired) ビットを問い合わせに設定する。 +再帰は .BR res_send () -¤Ç¤Ï¤Ê¤¯¥É¥á¥¤¥ó¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤Ë¤è¤Ã¤Æ¹Ô¤ï¤ì¤ë¡£ -[¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú] +ではなくドメインネームサーバーによって行われる。 +[デフォルトで有効] .TP .B RES_DEFNAMES -ÀßÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢ +設定されていれば、 .BR res_search () -¤Ï¥Ç¥Õ¥©¥ë¥È¤Î¥É¥á¥¤¥ó̾¤ò°ìÉôʬ -¤Î¤ß¤«¤é¤Ê¤ë̾Á°¡¢¤¹¤Ê¤ï¤Á¥É¥Ã¥È¤ò´Þ¤Þ¤Ê¤¤Ì¾Á°¤ËÉÕ¤±²Ã¤¨¤ë¡£ -[¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú] +はデフォルトのドメイン名を一部分 +のみからなる名前、すなわちドットを含まない名前に付け加える。 +[デフォルトで有効] .TP .B RES_STAYOPEN -Ì䤤¹ç¤ï¤»Ãæ¤Ë TCP Àܳ¤òÊݤĤ¿¤á +問い合わせ中に TCP 接続を保つため .B RES_USEVC -¤È¶¦¤ËÍѤ¤¤é¤ì¤ë¡£ +と共に用いられる。 .TP .B RES_DNSRCH -ÀßÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢ +設定されていれば、 .BR res_search () -¤Ï¸½ºß¤Î¥É¥á¥¤¥ó¤ª¤è¤Ó¿Æ¥É¥á¥¤¥ó¤Î -¥Û¥¹¥È̾¤òõ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +は現在のドメインおよび親ドメインの +ホスト名を探す。このオプションは .BR gethostbyname (3) -¤ÇÍѤ¤¤é¤ì¤ë¡£ -[¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú] -.SH ÊÖ¤êÃÍ +で用いられる。 +[デフォルトで有効] +.SH 返り値 .BR res_init () -´Ø¿ô¤ÏÀ®¸ù¤¹¤ì¤Ð 0 ¤ò¡¢¥¨¥é¡¼¤¬È¯À¸¤¹¤ì¤Ð \-1 ¤òÊÖ¤¹¡£ +関数は成功すれば 0 を、エラーが発生すれば \-1 を返す。 .PP .BR res_query (), .BR res_search (), .BR res_querydomain (), .BR res_mkquery (), .BR res_send () -´Ø¿ô¤Ï±þÅú¤ÎŤµ¤òÊÖ¤¹¡£ -¤Þ¤¿¡¢¥¨¥é¡¼¤¬È¯À¸¤¹¤ì¤Ð \-1 ¤òÊÖ¤¹¡£ +関数は応答の長さを返す。 +また、エラーが発生すれば \-1 を返す。 .PP .BR dn_comp () -¤È +と .BR dn_expand () -´Ø¿ô¤Ï°µ½Ì¤µ¤ì¤¿¥É¥á¥¤¥ó̾¤ÎŤµ¤òÊÖ¤¹¡£ -¤Þ¤¿¡¢¥¨¥é¡¼¤¬È¯À¸¤¹¤ì¤Ð \-1 ¤òÊÖ¤¹¡£ -.SH ¥Õ¥¡¥¤¥ë +関数は圧縮されたドメイン名の長さを返す。 +また、エラーが発生すれば \-1 を返す。 +.SH ファイル .nf -/etc/resolv.conf ¥ì¥¾¥ë¥ÐÀßÄê¥Õ¥¡¥¤¥ë -/etc/host.conf ¥ì¥¾¥ë¥ÐÀßÄê¥Õ¥¡¥¤¥ë +/etc/resolv.conf レゾルバ設定ファイル +/etc/host.conf レゾルバ設定ファイル .fi -.SH ½àµò +.SH 準拠 4.3BSD. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR gethostbyname (3), .BR resolv.conf (5), .BR resolver (5), diff --git a/release/man3/rewinddir.3 b/release/man3/rewinddir.3 index 2c919fc8..837b2b23 100644 --- a/release/man3/rewinddir.3 +++ b/release/man3/rewinddir.3 @@ -33,9 +33,9 @@ .\" by HIROFUMI Nishizuka .\" .TH REWINDDIR 3 1995-06-11 "" "Linux Programmer's Manual" -.SH ̾Á° -rewinddir \- ¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤Î½é´ü²½ -.SH ½ñ¼° +.SH 名前 +rewinddir \- ディレクトリストリームの初期化 +.SH 書式 .nf .B #include .sp @@ -43,16 +43,16 @@ rewinddir \- .sp .BI "void rewinddir(DIR *" dirp ); .fi -.SH ÀâÌÀ +.SH 説明 .BR rewinddir () -´Ø¿ô¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à \fIdirp\fP ¤Î°ÌÃÖ¤ò -¥Ç¥£¥ì¥¯¥È¥ê¤ÎÀèƬ¤Ë½é´ü²½¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ +関数は、ディレクトリストリーム \fIdirp\fP の位置を +ディレクトリの先頭に初期化する。 +.SH 返り値 .BR rewinddir () -´Ø¿ô¤Ï¡¢ÃͤòÊÖ¤µ¤Ê¤¤¡£ -.SH ½àµò +関数は、値を返さない。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR closedir (3), .BR opendir (3), .BR readdir (3), diff --git a/release/man3/rexec.3 b/release/man3/rexec.3 index a59b02b6..2e6d4914 100644 --- a/release/man3/rexec.3 +++ b/release/man3/rexec.3 @@ -40,81 +40,81 @@ .\" Translated 2005-11-20, Akihiro MOTOKI .\" .TH REXEC 3 2010-09-10 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -rexec \- ¥ê¥â¡¼¥È¥³¥Þ¥ó¥É¤Ø¤Î¥¹¥È¥ê¡¼¥à¤òÊÖ¤¹ -.SH ½ñ¼° +.SH 名前 +rexec \- リモートコマンドへのストリームを返す +.SH 書式 .nf -.BR "#define _BSD_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _BSD_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "int rexec(char **" ahost ", int " inport ", char *" user ", " .BI " char *" passwd ", char *" cmd ", int *" fd2p ); .fi -.SH ÀâÌÀ -¤³¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï +.SH 説明 +このインタフェースは .BR rcmd (3) -¤Ë¤è¤Ã¤ÆÃÖ¤­´¹¤¨¤é¤ì¤¿¡£ +によって置き換えられた。 .BR rexec () -´Ø¿ô¤Ï +関数は .BR gethostbyname (3) -¤ò»È¤Ã¤Æ¥Û¥¹¥È +を使ってホスト .I *ahost -¤òõ¤¹¡£¥Û¥¹¥È¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï +を探す。ホストが存在しない場合は \-1 を返し、それ以外の場合には .I *ahost -¤Ë¤½¤Î¥Û¥¹¥È¤Îɸ½àŪ¤Ê̾Á°¤òÀßÄꤹ¤ë¡£ -¥æ¡¼¥¶Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤ÎξÊý¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢¤³¤ì¤é¤Ï -ÀܳÀè¤Î¥Û¥¹¥È¤Ø¤Îǧ¾Ú¤ËÍøÍѤµ¤ì¤ë¡£¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ -ŬÀڤʾðÊó¤òÆþ¼ê¤¹¤ë¤¿¤á¤Ë¡¢´Ä¶­ÊÑ¿ô¤È¡¢¤½¤Î¥æ¡¼¥¶¤Î -¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤Î +にそのホストの標準的な名前を設定する。 +ユーザ名とパスワードの両方が指定された場合には、これらは +接続先のホストへの認証に利用される。そうでない場合には、 +適切な情報を入手するために、環境変数と、そのユーザの +ホームディレクトリの .I .netrc -¥Õ¥¡¥¤¥ë¤¬¸¡º÷¤µ¤ì¤ë¡£¾ðÊ󤬸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿»þ¤Ë¤Ï¡¢ -¥æ¡¼¥¶¤ËÂФ·¤Æ¾ðÊó¤òÆþÎϤ¹¤ë¥×¥í¥ó¥×¥È¤¬É½¼¨¤µ¤ì¤ë¡£ +ファイルが検索される。情報が見つからなかった時には、 +ユーザに対して情報を入力するプロンプトが表示される。 .PP -¥Ý¡¼¥È +ポート .I inport -¤Ë¤Ï¡¢Àܳ¤Ë»ÈÍѤ¹¤ë DARPA Internet ¤Î well-known ¥Ý¡¼¥È¤ò»ØÄꤹ¤ë¡£ +には、接続に使用する DARPA Internet の well-known ポートを指定する。 .I "getservbyname(""exec"", ""tcp"")" -¤ò¸Æ¤Ó½Ð¤¹¤È¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤¬ÊÖ¤µ¤ì +を呼び出すと構造体へのポインタが返され .RB ( getservent (3) -»²¾È)¡¢¤³¤Î¹½Â¤ÂΤˤÏɬÍפʥݡ¼¥È¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ -Àܳ¤Ë»ÈÍѤµ¤ì¤ë¥×¥í¥È¥³¥ë¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤Ï +参照)、この構造体には必要なポートが入っている。 +接続に使用されるプロトコルについての詳細は .BR rexecd (8) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë (ÌõÃí: ¸½ºß¤Î¤È¤³¤í¸ºß¤·¤Ê¤¤)¡£ +に書かれている (訳注: 現在のところ存在しない)。 .PP -Àܳ¤ËÀ®¸ù¤¹¤ë¤È¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥É¥á¥¤¥ó¤Î +接続に成功すると、インターネットドメインの .B SOCK_STREAM -·¿¤Î¥½¥±¥Ã¥È¤¬ÊÖ¤µ¤ì¡¢¤½¤Î¥½¥±¥Ã¥È¤Ï¥ê¥â¡¼¥È¥³¥Þ¥ó¥É¤Î -ɸ½àÆþÎϤª¤è¤Óɸ½à½ÐÎϤȤʤ롣 +型のソケットが返され、そのソケットはリモートコマンドの +標準入力および標準出力となる。 .I fd2p -¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢À©¸æ¥×¥í¥»¥¹¤Ø¤ÎÊä½õ¥Á¥ã¥ó¥Í¥ë¤¬¥»¥Ã¥È¥¢¥Ã¥×¤µ¤ì¡¢ -Êä½õ¥Á¥ã¥ó¥Í¥ë¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ +が 0 以外の場合、制御プロセスへの補助チャンネルがセットアップされ、 +補助チャンネルのディスクリプタが .I *fd2p -¤Ë½ñ¤«¤ì¤ë¡£ -À©¸æ¥×¥í¥»¥¹¤Ï¥³¥Þ¥ó¥É¤«¤é¤Î¿ÇÃÇ¥á¥Ã¥»¡¼¥¸½ÐÎÏ (¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ 2) -¤ò¤³¤Î¥Á¥ã¥ó¥Í¥ë¤ÇÊÖ¤¹¡£¤Þ¤¿¡¢¤³¤Î¥Á¥ã¥ó¥Í¥ë·Ðͳ¤Ç -UNIX ¤Î¥·¥°¥Ê¥ëÈÖ¹æ¤ò¼¨¤¹¥Ð¥¤¥È¤ò¼õ¿®¤¹¤ë¡£¼õ¿®¤·¤¿¥·¥°¥Ê¥ë¤Ï -¥³¥Þ¥ó¥É¤¬Â°¤¹¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ËžÁ÷¤µ¤ì¤ë¡£ -¿ÇÃǾðÊó¤Ë¤Ï¥ê¥â¡¼¥È¤Îǧ¾Ú¼ºÇԤϴޤޤì¤Ê¤¤¡£¤Ê¤¼¤Ê¤é¡¢Ç§¾Ú¤Î³Îǧ¤¬¹Ô¤ï¤ì¤¿ -¸å¤ÇÊä½õ¥Á¥ã¥ó¥Í¥ë¤ÎÀܳ¤Ï¥»¥Ã¥È¥¢¥Ã¥×¤µ¤ì¤ë¤«¤é¤Ç¤¢¤ë¡£ +に書かれる。 +制御プロセスはコマンドからの診断メッセージ出力 (ファイルディスクリプタ 2) +をこのチャンネルで返す。また、このチャンネル経由で +UNIX のシグナル番号を示すバイトを受信する。受信したシグナルは +コマンドが属すプロセスグループに転送される。 +診断情報にはリモートの認証失敗は含まれない。なぜなら、認証の確認が行われた +後で補助チャンネルの接続はセットアップされるからである。 .I fd2p -¤¬ 0 ¤Î¾ì¹ç¡¢É¸½à¥¨¥é¡¼ (¥ê¥â¡¼¥È¥³¥Þ¥ó¥É¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ 2) ¤Ï -ɸ½à½ÐÎϤÈƱÍͤ˰·¤ï¤ì¡¢¥ê¥â¡¼¥È¥×¥í¥»¥¹¤ËǤ°Õ¤Î¥·¥°¥Ê¥ë¤òÁ÷¤ë¤¿¤á¤Î -¼êÃʤÏÄ󶡤µ¤ì¤Ê¤¤¡£Ã¢¤·¡¢¥ê¥â¡¼¥È¥×¥í¥»¥¹¤ËÂФ·¤Æ¥È¥ê¥¬¤ò¤«¤±¤ë¤¿¤á¤Ë¡¢ -ÂÓ°è³°¥Ç¡¼¥¿ (out-of-band data) ¤ò»È¤¦¤³¤È¤Ï¤Ç¤­¤ë¡£ -.SH ½àµò -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -BSD ·Ï¡¢Solaris ¤ä¾¤Î¿¤¯¤Î¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¡£ +が 0 の場合、標準エラー (リモートコマンドのファイルディスクリプタ 2) は +標準出力と同様に扱われ、リモートプロセスに任意のシグナルを送るための +手段は提供されない。但し、リモートプロセスに対してトリガをかけるために、 +帯域外データ (out-of-band data) を使うことはできる。 +.SH 準拠 +POSIX.1-2001 にはない。 +BSD 系、Solaris や他の多くのシステムに存在する。 .BR rexec () -´Ø¿ô¤Ï 4.2BSD ¤Ç»Ï¤á¤ÆÅо줷¤¿¡£ -.SH ¥Ð¥° +関数は 4.2BSD で始めて登場した。 +.SH バグ .BR rexec () -´Ø¿ô¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¤Ë°Å¹æ²½¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ñ¥¹¥ï¡¼¥É¤òÁ÷¿®¤¹¤ë¡£ +関数はネットワークに暗号化されていないパスワードを送信する。 .PP -´ðÁÃŪ¤Ê¥µ¡¼¥Ó¥¹¤Ë¤ª¤¤¤Æ¤ÏÂ礭¤Ê¥»¥­¥å¥ê¥Æ¥£¥Û¡¼¥ë¤È¹Í¤¨¤é¤ì¤ë¤¿¤á¡¢ -¿¤¯¤Î¥µ¥¤¥È¤Ç̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¾ÜºÙ¤Ï +基礎的なサービスにおいては大きなセキュリティホールと考えられるため、 +多くのサイトで無効になっている。詳細は .BR rexecd (8) -¤ò»²¾È¡£ -.SH ´ØÏ¢¹àÌÜ +を参照。 +.SH 関連項目 .BR rcmd (3), .BR rexecd (8) diff --git a/release/man3/rint.3 b/release/man3/rint.3 index 11affb41..70812f68 100644 --- a/release/man3/rint.3 +++ b/release/man3/rint.3 @@ -32,12 +32,12 @@ .\" by Yuichi SATO .\" Updated 2008-09-16, Akihiro MOTOKI .\" -.\"WORD: mantissa ²¾¿ô +.\"WORD: mantissa 仮数 .\" .TH RINT 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -nearbyint, nearbyintf, nearbyintl, rint, rintf, rintl \- ºÇ¤â¶á¤¤À°¿ô¤Ë´Ý¤á¤ë -.SH ½ñ¼° +.SH 名前 +nearbyint, nearbyintf, nearbyintl, rint, rintf, rintl \- 最も近い整数に丸める +.SH 書式 .nf .B #include .sp @@ -54,12 +54,12 @@ nearbyint, nearbyintf, nearbyintl, rint, rintf, rintl \- .BI "long double rintl(long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -93,55 +93,55 @@ or .I cc\ -std=c99 .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR nearbyint () -´Ø¿ô·²¤Ï¡¢¸½ºß¤Î´Ý¤áÊý¸þ +関数群は、現在の丸め方向 .RB ( fesetround (3) -»²¾È) ¤Ç°ú¤­¿ô¤òÉâÆ°¾®¿ôÅÀ·Á¼°¤ÎÀ°¿ô¤Ë´Ý¤á¤ë¡£ +参照) で引き数を浮動小数点形式の整数に丸める。 .I inexact -Îã³°¤ò½Ð¤µ¤Ê¤¤¡£ +例外を出さない。 .LP .BR rint () -´Ø¿ô·²¤âƱ¤¸¤è¤¦¤ÊÆ°ºî¤ò¤¹¤ë¤¬¡¢ -·ë²Ì¤¬°ú¤­¿ô¤È°Û¤Ê¤ë¾ì¹ç¤Ë +関数群も同じような動作をするが、 +結果が引き数と異なる場合に .I inexact -Îã³° +例外 .RB ( FE_INEXACT ) -¤ò½Ð¤¹ (¤³¤ÎÎã³°¤Ï +を出す (この例外は .BR fetestexcept (3) -·Ðͳ¤Ç³Îǧ²Äǽ)¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤Ï´Ý¤á¤¿À°¿ôÃͤòÊÖ¤¹¡£ +経由で確認可能)。 +.SH 返り値 +これらの関数は丸めた整数値を返す。 -\fIx\fP ¤¬À°¿ô¡¢+0¡¢\-0¡¢NaN¡¢Ìµ¸ÂÂç¤Î¤¤¤º¤ì¤«¤Î¾ì¹ç¡¢ -\fIx\fP ¤½¤Î¤â¤Î¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ -POSIX.1-2001 ¤Ë¤Ï¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ç¤ÎÈÏ°Ï¥¨¥é¡¼ (range error) ¤Î -µ­ºÜ¤¬¤¢¤ë¡£¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¤Î¤³¤È¡£ -.SH ½àµò +\fIx\fP が整数、+0、\-0、NaN、無限大のいずれかの場合、 +\fIx\fP そのものを返す。 +.SH エラー +エラーは発生しない。 +POSIX.1-2001 にはオーバーフローでの範囲エラー (range error) の +記載がある。「注意」の節を参照のこと。 +.SH 準拠 C99, POSIX.1-2001. -.SH Ãí°Õ -SUSv2 ¤È POSIX.1-2001 ¤Ë¤Ï¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ë´Ø¤¹¤ëµ­½Ò¤¬¤¢¤ê¡¢ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Î¾ì¹ç¤Ë¤Ï¡¢ +.SH 注意 +SUSv2 と POSIX.1-2001 にはオーバーフローに関する記述があり、 +オーバーフローの場合には、 .I errno -¤ò +を .B ERANGE -¤ËÀßÄꤹ¤ë¤«¡¢ +に設定するか、 .B FE_OVERFLOW -Îã³°¤òȯÀ¸¤¹¤ë¤³¤È¤È¤µ¤ì¤Æ¤¤¤ë¡£ -¼ÂºÝ¤Î¤È¤³¤í¡¢¤É¤Î¸½¹Ô¤Î¥Þ¥·¥ó¤Ç¤â·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤òµ¯¤³¤¹¤³¤È¤Ï¤Ê¤¤¤Î¤Ç¡¢ -¤³¤Î¥¨¥é¡¼½èÍý¤Ï°ÕÌ£¤¬¤Ê¤¤¡£ -(¤è¤êÀµ³Î¤Ë¸À¤¦¤È¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ï»Ø¿ôÉô¤ÎºÇÂçÃͤ¬ -²¾¿ôÉô¤òɽ¤¹¥Ó¥Ã¥È¤Î¿ô¤è¤ê¾®¤µ¤¤¾ì¹ç¤Ë¤·¤«µ¯¤³¤é¤Ê¤¤¡£ -IEEE-754 µ¬³Ê¤Î 32 ¥Ó¥Ã¥È¤È 64 ¥Ó¥Ã¥È¤ÎÉâÆ°¾®¿ô¤Ç¤Ï¡¢ -»Ø¿ôÉô¤ÎºÇÂçÃͤϤ½¤ì¤¾¤ì 128 ¤È 1024 ¤Ç¤¢¤ê¡¢ -²¾¿ôÉô¤Î¥Ó¥Ã¥È¿ô¤Ï¤½¤ì¤¾¤ì 24 ¤È 53 ¤Ç¤¢¤ë¡£) +例外を発生することとされている。 +実際のところ、どの現行のマシンでも結果がオーバーフローを起こすことはないので、 +このエラー処理は意味がない。 +(より正確に言うと、オーバーフローは指数部の最大値が +仮数部を表すビットの数より小さい場合にしか起こらない。 +IEEE-754 規格の 32 ビットと 64 ビットの浮動小数では、 +指数部の最大値はそれぞれ 128 と 1024 であり、 +仮数部のビット数はそれぞれ 24 と 53 である。) -´Ý¤á¤¿ÃͤòÀ°¿ô·¿¤Ë³ÊǼ¤·¤¿¾ì¹ç¤Ë¤Ï¡¢¤ª¤½¤é¤¯¤³¤Î´Ø¿ô¤Ç¤Ï¤Ê¤¯ +丸めた値を整数型に格納した場合には、おそらくこの関数ではなく .BR lrint (3) -¤ËºÜ¤Ã¤Æ¤¤¤ë´Ø¿ô¤Î¤É¤ì¤«¤ò»È¤¤¤¿¤¤¤Î¤À¤í¤¦¡£ -.SH ´ØÏ¢¹àÌÜ +に載っている関数のどれかを使いたいのだろう。 +.SH 関連項目 .BR ceil (3), .BR floor (3), .BR lrint (3), diff --git a/release/man3/round.3 b/release/man3/round.3 index d9c02f52..4ad14df1 100644 --- a/release/man3/round.3 +++ b/release/man3/round.3 @@ -30,12 +30,12 @@ .\" by Yuichi SATO .\" Updated 2008-09-16, Akihiro MOTOKI .\" -.\"WORD: mantissa ²¾¿ô +.\"WORD: mantissa 仮数 .\" .TH ROUND 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -round, roundf, roundl \- ºÇ¤â¶á¤¤À°¿ôÃͤ˴ݤá¤ë (2 ¤Ä¤ÎÀ°¿ô¤ÎÃæ´ÖÃͤξì¹ç¤Ï 0 ¤«¤é±ó¤¤Êý¤Ë´Ý¤á¤ë) -.SH ½ñ¼° +.SH 名前 +round, roundf, roundl \- 最も近い整数値に丸める (2 つの整数の中間値の場合は 0 から遠い方に丸める) +.SH 書式 .nf .B #include .sp @@ -46,12 +46,12 @@ round, roundf, roundl \- .BI "long double roundl(long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -66,56 +66,56 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï \fIx\fP ¤òºÇ¤â¶á¤¤À°¿ôÃͤ˴ݤá¤ë¡£ -2 ¤Ä¤ÎÀ°¿ô¤ÎÃæ´ÖÃͤξì¹ç¤Ï¡¢ +.SH 説明 +これらの関数は \fIx\fP を最も近い整数値に丸める。 +2 つの整数の中間値の場合は、 .BR rint (3) -¤Î¤è¤¦¤ËºÇ¤â¶á¤¤¶ö¿ô¤Ë´Ý¤á¤¿¤ê¤»¤º¤Ë¡¢ -(¸½ºß¤Î´Ý¤áÊý¸þ¤Ë´Ø·¸¤Ê¤¯) 0 ¤«¤é±ó¤¤Êý¤Ë´Ý¤á¤ë -(´Ý¤áÊý¸þ¤Ë¤Ä¤¤¤Æ¤Ï +のように最も近い偶数に丸めたりせずに、 +(現在の丸め方向に関係なく) 0 から遠い方に丸める +(丸め方向については .BR fenv (3) -¤ò»²¾È)¡£ +を参照)。 -Î㤨¤Ð¡¢ +例えば、 .I round(0.5) -¤Ï 1.0 ¤Ç¡¢ +は 1.0 で、 .I round(\-0.5) -¤Ï \-1.0 ¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤Ï´Ý¤á¤¿À°¿ôÃͤòÊÖ¤¹¡£ +は \-1.0 である。 +.SH 返り値 +これらの関数は丸めた整数値を返す。 -\fIx\fP ¤¬À°¿ô¡¢+0¡¢\-0¡¢NaN¡¢Ìµ¸Â¤Î¤¤¤º¤ì¤«¤Î¾ì¹ç¡¢ -\fIx\fP ¤½¤Î¤â¤Î¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ -POSIX.1-2001 ¤Ë¤Ï¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ç¤ÎÈÏ°Ï¥¨¥é¡¼ (range error) ¤Î -µ­ºÜ¤¬¤¢¤ë¡£¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È¤Î¤³¤È¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +\fIx\fP が整数、+0、\-0、NaN、無限のいずれかの場合、 +\fIx\fP そのものが返される。 +.SH エラー +エラーは発生しない。 +POSIX.1-2001 にはオーバーフローでの範囲エラー (range error) の +記載がある。「注意」の節を参照のこと。 +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99, POSIX.1-2001. -.SH Ãí°Õ -POSIX.1-2001 ¤Ë¤Ï¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ë´Ø¤¹¤ëµ­½Ò¤¬¤¢¤ê¡¢ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Î¾ì¹ç¤Ë¤Ï¡¢ +.SH 注意 +POSIX.1-2001 にはオーバーフローに関する記述があり、 +オーバーフローの場合には、 .I errno -¤ò +を .B ERANGE -¤ËÀßÄꤹ¤ë¤«¡¢ +に設定するか、 .B FE_OVERFLOW -Îã³°¤òȯÀ¸¤¹¤ë¤³¤È¤È¤µ¤ì¤Æ¤¤¤ë¡£ -¼ÂºÝ¤Î¤È¤³¤í¡¢¤É¤Î¸½¹Ô¤Î¥Þ¥·¥ó¤Ç¤Ï·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤òµ¯¤³¤¹¤³¤È¤Ï¤Ê¤¤¤Î¤Ç¡¢ -¤³¤Î¥¨¥é¡¼½èÍý¤Ï°ÕÌ£¤¬¤Ê¤¤¡£ +例外を発生することとされている。 +実際のところ、どの現行のマシンでは結果がオーバーフローを起こすことはないので、 +このエラー処理は意味がない。 .\" The POSIX.1-2001 APPLICATION USAGE SECTION discusses this point. -(¤è¤êÀµ³Î¤Ë¸À¤¦¤È¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ï»Ø¿ôÉô¤ÎºÇÂçÃͤ¬ -²¾¿ôÉô¤òɽ¤¹¥Ó¥Ã¥È¤Î¿ô¤è¤ê¾®¤µ¤¤¾ì¹ç¤Ë¤·¤«µ¯¤³¤é¤Ê¤¤¡£ -IEEE-754 µ¬³Ê¤Î 32 ¥Ó¥Ã¥È¤È 64 ¥Ó¥Ã¥È¤ÎÉâÆ°¾®¿ô¤Ç¤Ï¡¢ -»Ø¿ôÉô¤ÎºÇÂçÃͤϤ½¤ì¤¾¤ì 128 ¤È 1024 ¤Ç¤¢¤ê¡¢ -²¾¿ôÉô¤Î¥Ó¥Ã¥È¿ô¤Ï¤½¤ì¤¾¤ì 24 ¤È 53 ¤Ç¤¢¤ë¡£) +(より正確に言うと、オーバーフローは指数部の最大値が +仮数部を表すビットの数より小さい場合にしか起こらない。 +IEEE-754 規格の 32 ビットと 64 ビットの浮動小数では、 +指数部の最大値はそれぞれ 128 と 1024 であり、 +仮数部のビット数はそれぞれ 24 と 53 である。) -´Ý¤á¤¿ÃͤòÀ°¿ô·¿¤Ë³ÊǼ¤·¤¿¾ì¹ç¤Ë¤Ï¡¢¤ª¤½¤é¤¯¤³¤Î´Ø¿ô¤Ç¤Ï¤Ê¤¯ +丸めた値を整数型に格納した場合には、おそらくこの関数ではなく .BR lround (3) -¤ËºÜ¤Ã¤Æ¤¤¤ë´Ø¿ô¤Î¤É¤ì¤«¤ò»È¤¤¤¿¤¤¤Î¤À¤í¤¦¡£ -.SH ´ØÏ¢¹àÌÜ +に載っている関数のどれかを使いたいのだろう。 +.SH 関連項目 .BR ceil (3), .BR floor (3), .BR lround (3), diff --git a/release/man3/rpc.3 b/release/man3/rpc.3 index 380fa533..346c0347 100644 --- a/release/man3/rpc.3 +++ b/release/man3/rpc.3 @@ -12,27 +12,27 @@ .\" by Yuichi SATO .\" .TH RPC 3 2008-07-17 "" "Linux Programmer's Manual" -.SH ̾Á° -rpc \- ±ó³Ö¼ê³¤­¸Æ¤Ó½Ð¤·(RPC)¤Î¤¿¤á¤Î¥é¥¤¥Ö¥é¥ê¡¦¥ë¡¼¥Æ¥£¥ó -.SH ½ñ¼°¤ÈÀâÌÀ -¤³¤ì¤é¤Î¥ë¡¼¥Æ¥£¥ó¤Ï C ¥×¥í¥°¥é¥à¤Ç¥Í¥Ã¥È¥ï¡¼¥¯¤òÄ̤·¤Æ -¾¤Î¥Þ¥·¥ó¤Ë¥¢¥¯¥»¥¹¤¹¤ë¥×¥í¥·¥¸¥ã¤òºîÀ®¤¹¤ë¤³¤È¤ò²Äǽ¤Ë¤¹¤ë¡£ -ºÇ½é¤Ë¥¯¥é¥¤¥¢¥ó¥È¤Ï¥Ç¡¼¥¿¥Ñ¥±¥Ã¥È¤ò¥µ¡¼¥Ð¤ËÁ÷¤ë¤¿¤á¤Ë -¥×¥í¥·¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹¡£ -¥µ¡¼¥Ð¤Ï¥Ñ¥±¥Ã¥È¤ò¼õ¤±¼è¤ë¤È¡¢ÇÛʬ¥ë¡¼¥Á¥ó¤ò¸Æ¤Ó½Ð¤·¤Æ -Í׵ᤵ¤ì¤¿¥µ¡¼¥Ó¥¹¤Ë¼Â¹Ô¤·¡¢ÊÖÅú¤òÁ÷¤êÊÖ¤¹¡£ -ºÇ¸å¤Ë¥×¥í¥·¥¸¥ã¡¦¥³¡¼¥ë¤Ï¥¯¥é¥¤¥¢¥ó¥È¤Ø¤ÈÌá¤ë¡£ +.SH 名前 +rpc \- 遠隔手続き呼び出し(RPC)のためのライブラリ・ルーティン +.SH 書式と説明 +これらのルーティンは C プログラムでネットワークを通して +他のマシンにアクセスするプロシジャを作成することを可能にする。 +最初にクライアントはデータパケットをサーバに送るために +プロシジャを呼び出す。 +サーバはパケットを受け取ると、配分ルーチンを呼び出して +要求されたサービスに実行し、返答を送り返す。 +最後にプロシジャ・コールはクライアントへと戻る。 .\" .LP -.\" º£¸½ºß¤Ï rpc_secure.3 ¤ÏÆþ¤Ã¤Æ¤¤¤Ê¤¤ -- MTK, 19 Sep 05 -.\" (DES ǧ¾Ú¤Ë¤è¤ë) Secure RPC ¤Ç»ÈÍѤµ¤ì¤ë¥ë¡¼¥Æ¥£¥ó¤Ë¤Ä¤¤¤Æ¤ÎÀâÌÀ¤Ï +.\" 今現在は rpc_secure.3 は入っていない -- MTK, 19 Sep 05 +.\" (DES 認証による) Secure RPC で使用されるルーティンについての説明は .\" .BR rpc_secure (3) -.\" ¤Ë¸ºß¤¹¤ë¡£ Secure RPC ¤Ï DES ǧ¾Ú¤¬ÍøÍѲÄǽ¤Ê¾ì¹ç¤Ë¤Î¤ß»ÈÍѤǤ­¤ë¡£ +.\" に存在する。 Secure RPC は DES 認証が利用可能な場合にのみ使用できる。 .LP -¤³¤ì¤é¤Î¥ë¡¼¥Æ¥£¥ó¤ò»ÈÍѤ¹¤ë¤Ë¤Ï¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë +これらのルーティンを使用するには、ヘッダファイル .I "" -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤³¤È¡£ +をインクルードすること。 -²¼µ­¤Î¥×¥í¥È¥¿¥¤¥×¤Ç¤Ï¼¡¤Î·¿¤ò»ÈÍѤ·¤Æ¤¤¤ë¡£ +下記のプロトタイプでは次の型を使用している。 .in +4n .nf @@ -45,63 +45,63 @@ typedef bool_t (*\fIresultproc_t\fP) (caddr_t resp, .fi .in .LP -·¿ +型 .IR AUTH , .IR CLIENT , .IR SVCXPRT , .IR XDR -¤ÎÀë¸À¤Ë¤Ä¤¤¤Æ¤Ï¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò»²¾È¡£ +の宣言についてはヘッダファイルを参照。 .LP .nf .BI "void auth_destroy(AUTH *" auth ); .fi .IP -¤³¤Î¥Þ¥¯¥í¤Ï +このマクロは .I auth -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿Ç§¾Ú¾ðÊó¤òÇ˲õ¤¹¤ë¡£Ç˲õ¤ÏÄ̾ï¤Ï»äŪ¤Ê¥Ç¡¼¥¿¹½Â¤¤Î -ÇË´þ¤ò´Þ¤ó¤Ç¤¤¤ë¡£ +に関連付けられた認証情報を破壊する。破壊は通常は私的なデータ構造の +破棄を含んでいる。 .BR auth_destroy () -¤ò¸Æ¤Ó½Ð¤·¤¿¸å¤Ë +を呼び出した後に .I auth -¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +を使用することは未定義である。 .LP .nf .BI "AUTH *authnone_create(void);" .fi .IP -³Æ¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¡¦¥³¡¼¥ë¤Ç»ÈÍѤǤ­¤Ê¤¤²¾¤Îǧ¾Ú¾ðÊó¤È¤·¤ÆÅϤµ¤ì¤ë -RPC ǧ¾Ú¥Ï¥ó¥É¥ë¤òºîÀ®¤·¤ÆÊÖ¤¹¡£ -¤³¤ì¤Ï RPC ¤Ç»ÈÍѤµ¤ì¤ë¥Ç¥Õ¥©¥ë¥È¤Îǧ¾Ú¤Ç¤¢¤ë¡£ +各リモート・プロシジャ・コールで使用できない仮の認証情報として渡される +RPC 認証ハンドルを作成して返す。 +これは RPC で使用されるデフォルトの認証である。 .LP .nf .BI "AUTH *authunix_create(char *" host ", int " uid ", int " gid , .BI " int " len ", int *" aup_gids ); .fi .IP -ǧ¾Ú¾ðÊó¤ò´Þ¤ó¤À RPC ǧ¾Ú¥Ï¥ó¥É¥ë¤òºîÀ®¤·¤ÆÊÖ¤¹¡£ +認証情報を含んだ RPC 認証ハンドルを作成して返す。 .I host -¥Ñ¥é¥á¡¼¥¿¡¼¤Ï¾ðÊ󤬺îÀ®¤µ¤ì¤¿¥Þ¥·¥ó¤Î̾Á°¤Ç¤¢¤ë¡£ +パラメーターは情報が作成されたマシンの名前である。 .I uid -¤Ï¤½¤Î¥æ¡¼¥¶¤Î¥æ¡¼¥¶ +はそのユーザのユーザ .SM ID -¡¢ +、 .I gid -¤Ï¤½¤Î¥æ¡¼¥¶¤Î¸½ºß¤Î¥°¥ë¡¼¥× +はそのユーザの現在のグループ .SM ID -¤Ç¤¢¤ë¡£ +である。 .I len -¤È +と .I aup_gids -¤Ï¤½¤Î¥æ¡¼¥¶¤¬½ê°¤¹¤ë¥°¥ë¡¼¥×¤ÎÇÛÎó¤ò»²¾È¤·¤Æ¤¤¤ë¡£ -¾¤Î¥æ¡¼¥¶¤Ë¤Ê¤ê¤¹¤Þ¤¹¤³¤È¤Ï´Êñ¤Ç¤¢¤ë¡£ +はそのユーザが所属するグループの配列を参照している。 +他のユーザになりすますことは簡単である。 .LP .nf .BI "AUTH *authunix_create_default(void);" .fi .IP -ŬÀڤʥѥé¥á¡¼¥¿¡¼¤Ç +適切なパラメーターで .BR authunix_create () -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .LP .nf .BI "int callrpc(char *" host ", unsigned long " prognum , @@ -110,33 +110,33 @@ RPC ǧ .BI " xdrproc_t " outproc ", char *" out ); .fi .IP -¥Þ¥·¥ó +マシン .I host -¾å¤Ç +上で .IR prognum , .IR versnum , .I procnum -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹¡£ -¥Ñ¥é¥á¡¼¥¿¡¼ +に関連付けられたリモート・プロシジャを呼び出す。 +パラメーター .I in -¤Ï¥×¥í¥·¥¸¥ã¤Î°ú¤­¿ô¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ê +はプロシジャの引き数のアドレスであり .I out -¤Ï·ë²Ì¤ò³ÊǼ¤¹¤ë¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +は結果を格納するアドレスである。 .I inproc -¤Ï¥×¥í¥·¥¸¥ã¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ò¥¨¥ó¥³¡¼¥É¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¡¢ +はプロシジャのパラメーターをエンコードするのに使用され、 .I outproc -¤Ï·ë²Ì¤ò¥Ç¥³¡¼¥É¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï +は結果をデコードするのに使用される。 +このルーティンは成功した場合にはゼロを返す。失敗した場合には .B "enum clnt_stat" -¤òÀ°¿ô¤Ë¥­¥ã¥¹¥È¤·¤¿ÃͤòÊÖ¤¹¡£ +を整数にキャストした値を返す。 .BR clnt_perrno () -¥ë¡¼¥Æ¥£¥ó¤¬¼ºÇԤξõÂÖ¤ò¥á¥Ã¥»¡¼¥¸¤ËÊÑ´¹¤¹¤ë¤Î¤Ë»ÈÍѤǤ­¤ë¡£ +ルーティンが失敗の状態をメッセージに変換するのに使用できる。 .IP -·Ù¹ð: ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ç¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹¤ÈÄÌ¿®¤Ë¤Ï -UDP/IP ¤¬»ÈÍѤµ¤ì¤ë¡£¤³¤ÎºÝ¤ÎÀ©¸Â¤Ë¤Ä¤¤¤Æ¤Ï +警告: このルーティンでリモート・プロシジャを呼び出すと通信には +UDP/IP が使用される。この際の制限については .BR clntudp_create () -¤ò»²¾È¤¹¤ë¤³¤È¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ò»ÈÍѤ·¤Æǧ¾Ú¤ä»þ´ÖÀÚ¤ì¤ÎÀ©¸æ¤ò -¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +を参照すること。このルーティンを使用して認証や時間切れの制御を +することはできない。 .LP .nf .BI "enum clnt_stat clnt_broadcast(unsigned long " prognum , @@ -147,11 +147,11 @@ UDP/IP .fi .IP .BR callrpc () -¤ÈƱÍͤǤ¢¤ë¤¬¡¢¥á¥Ã¥»¡¼¥¸¤¬¥í¡¼¥«¥ë¤Î¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¡¦¥Í¥Ã¥È¥ï¡¼¥¯ -Á´ÂÎ¤Ø¤È¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¤µ¤ì¤ëÅÀ¤¬°Û¤Ã¤Æ¤¤¤ë¡£²óÅú¤ò¼õ¤±¼è¤ëÅÙ¤Ë -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï°Ê²¼¤Î·Á¼°¤Î +と同様であるが、メッセージがローカルのブロードキャスト・ネットワーク +全体へとブロードキャストされる点が異っている。回答を受け取る度に +このルーティンは以下の形式の .BR eachresult () -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .IP .in +4n .nf @@ -159,23 +159,23 @@ UDP/IP .fi .in .IP -¤³¤³¤Ç +ここで .I out -¤Ï +は .BR clnt_broadcast () -¤ËÅϤµ¤ì¤ë +に渡される .I out -¤ÈƱ¤¸¤Ç¤¢¤ë¤¬¡¢¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¤«¤é¤Î½ÐÎϤ¬¥Ç¥³¡¼¥É¤µ¤ì¤Æ¤¤¤ë -ÅÀ¤Î¤ß¤¬°Û¤Ã¤Æ¤¤¤ë¡£ +と同じであるが、リモート・プロシジャからの出力がデコードされている +点のみが異っている。 .I addr -¤Ï·ë²Ì¤òÁ÷¤Ã¤ÆÍ褿¥Þ¥·¥ó¤Î¥¢¥É¥ì¥¹¤ò»Ø¤·¤Æ¤¤¤ë¡£ +は結果を送って来たマシンのアドレスを指している。 .BR eachresult () -¤¬¥¼¥í¤òÊÖ¤·¤¿¾ì¹ç¡¢ +がゼロを返した場合、 .BR clnt_broadcast () -¤Ï¤µ¤é¤Ê¤ë²óÅú¤òÂԤġ£¤½¤¦¤Ç¤Ê¤±¤ì¤ÐŬÀڤʾõÂ֤ǽªÎ»¤¹¤ë¡£ +はさらなる回答を待つ。そうでなければ適切な状態で終了する。 .IP -·Ù¹ð: ¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¡¦¥½¥±¥Ã¥È¤Ï¥Ç¡¼¥¿¥ê¥ó¥¯ÁؤκÇÂçžÁ÷ñ°Ì¤Ë -À©¸Â¤µ¤ì¤Æ¤¤¤ë¡£¥¤¡¼¥µ¥Í¥Ã¥È¤Î¾ì¹ç¡¢ºÇÂçÃÍ¤Ï 1500 ¥Ð¥¤¥È¤Ç¤¢¤ë¡£ +警告: ブロードキャスト・ソケットはデータリンク層の最大転送単位に +制限されている。イーサネットの場合、最大値は 1500 バイトである。 .LP .nf .BI "enum clnt_stat clnt_call(CLIENT *" clnt ", unsigned long " procnum , @@ -184,234 +184,234 @@ UDP/IP .BI " struct timeval " tout ); .fi .IP -¤³¤Î¥Þ¥¯¥í¤Ï¥¯¥é¥¤¥¢¥ó¥È¡¦¥Ï¥ó¥É¥ë +このマクロはクライアント・ハンドル .I clnt -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿ +に関連付けられた .I procnum -¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹¡£ -¥¯¥é¥¤¥¢¥ó¥È¡¦¥Ï¥ó¥É¥ë¤Ï +リモート・プロシジャを呼び出す。 +クライアント・ハンドルは .BR clnt_create () -¤Î¤è¤¦¤Ê +のような .SM RPC -¥¯¥é¥¤¥¢¥ó¥ÈºîÀ®¥ë¡¼¥Æ¥£¥ó¤Ë¤è¤Ã¤ÆÆÀ¤é¤ì¤ë¡£ -¥Ñ¥¿¥á¡¼¥¿ +クライアント作成ルーティンによって得られる。 +パタメータ .I in -¤Ï¥×¥í¥·¥¸¥ã¤Î°ú¤­¿ô¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +はプロシジャの引き数のアドレスである。 .I out -¤Ï¥×¥í¥·¥¸¥ã¤ÎÊÖ¤êÃͤò³ÊǼ¤¹¤ë¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +はプロシジャの返り値を格納するアドレスである。 .I inproc -¤Ï¥×¥í¥·¥¸¥ã¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ò¥¨¥ó¥³¡¼¥É¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ +はプロシジャのパラメーターをエンコードするのに使用される。 .I outproc -¤Ï¥×¥í¥·¥¸¥ã¤ÎÊÖ¤êÃͤò¥Ç¥³¡¼¥É¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ +はプロシジャの返り値をデコードするのに使用される。 .I tout -¤Ï·ë²Ì¤¬ÊÖ¤µ¤ì¤ë¤Î¤òÂԤĻþ´Ö¤Ç¤¢¤ë¡£ +は結果が返されるのを待つ時間である。 .LP .nf .BI "clnt_destroy(CLIENT *" clnt ); .fi .IP -¤³¤Î¥Þ¥¯¥í¤Ï¥¯¥é¥¤¥¢¥ó¥È¤Î RPC ¥Ï¥ó¥É¥ë¤òÇ˲õ¤¹¤ë¡£Ç˲õ¤Ë¤ÏÄ̾ï¤Ï +このマクロはクライアントの RPC ハンドルを破壊する。破壊には通常は .I clnt -¼«¿È¤â´Þ¤á¤Æ»äŪ¤Ê¥Ç¡¼¥¿¹½Â¤ÂΤÎÇË´þ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +自身も含めて私的なデータ構造体の破棄が含まれている。 .BR clnt_destroy () -¤Î¸Æ¤Ó½Ð¤·¤Î¸å¤Ë +の呼び出しの後に .I clnt -¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ -RPC ¥é¥¤¥Ö¥é¥ê¤¬´ØÏ¢¤¹¤ë¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ -¤½¤ì¤âÊĤ¸¤é¤ì¤ë¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï¥½¥±¥Ã¥È¤Ï¥ª¡¼¥×¥ó¤µ¤ì¤¿¤Þ¤Þ¤Ç¤¢¤ë¡£ +を使用することは未定義である。 +RPC ライブラリが関連するソケットをオープンした場合には、 +それも閉じられる。それ以外の場合にはソケットはオープンされたままである。 .LP .nf .BI "CLIENT *clnt_create(char *" host ", unsigned long " prog , .BI " unsigned long " vers ", char *" proto ); .fi .IP -°ìÈÌŪ¤Ê¥¯¥é¥¤¥¢¥ó¥È¤ÎºîÀ®¥ë¡¼¥Æ¥£¥ó¤Ç¤¢¤ë¡£ +一般的なクライアントの作成ルーティンである。 .I host -¤Ï¥µ¡¼¥Ð¤Î¤¢¤ë¥ê¥â¡¼¥È¥Û¥¹¥È¤Î̾Á°¤ò»ØÄꤹ¤ë¡£ +はサーバのあるリモートホストの名前を指定する。 .I proto -¤É¤Î¤è¤¦¤ÊÄÌ¿®¥×¥í¥È¥³¥ë¤ò»ÈÍѤ¹¤ë¤«¤ò»ØÄꤹ¤ë¡£¸½ºß¤³¤³¤Ë -»ÈÍѤǤ­¤ëÃÍ¤Ï \(lqudp\(rq ¤È \(lqtcp\(rq ¤Ç¤¢¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Î»þ´ÖÀڤ줬ÀßÄꤵ¤ì¤ë¤¬¡¢ +どのような通信プロトコルを使用するかを指定する。現在ここに +使用できる値は \(lqudp\(rq と \(lqtcp\(rq である。 +デフォルトの時間切れが設定されるが、 .BR clnt_control () -¤ò»ÈÍѤ·¤ÆÊѹ¹²Äǽ¤Ç¤¢¤ë¡£ +を使用して変更可能である。 .IP -·Ù¹ð: -UDP ¤ò»ÈÍѤ·¤¿¾ì¹ç¤Ë¤Ï·çÅÀ¤¬¤¢¤ë¡£ -UDP ¤Ë´ð¤Å¤¤¤¿ RPC ¥á¥Ã¥»¡¼¥¸¤Ï -ºÇÂç¤Ç¤â 8 KByte ¤Î¥¨¥ó¥³¡¼¥É¥Ç¡¼¥¿¤·¤«ÊÝ»ý¤¹¤ë -¤³¤È¤¬¤Ç¤­¤Ê¤¤¤¿¤á¡¢Â礭¤Ê°ú¤­¿ô¤äµðÂç¤Ê·ë²Ì¤ò¼è¤ë¥×¥í¥·¥¸¥ã¤Ë -¤Ï»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +警告: +UDP を使用した場合には欠点がある。 +UDP に基づいた RPC メッセージは +最大でも 8 KByte のエンコードデータしか保持する +ことができないため、大きな引き数や巨大な結果を取るプロシジャに +は使用することができない。 .LP .nf .BI "bool_t clnt_control(CLIENT *" cl ", int " req ", char *" info ); .fi .IP -¤³¤Î¥Þ¥¯¥í¤Ï³Æ¼ï¥¯¥é¥¤¥¢¥ó¥È¤Ë¤Ä¤¤¤Æ¾ðÊó¤òÊѹ¹¤·¤¿¤ê¡¢¼èÆÀ¤·¤¿¤ê -¤¹¤ë¤Î¤Ë»ÈÍѤ¹¤ë¡£ +このマクロは各種クライアントについて情報を変更したり、取得したり +するのに使用する。 .I req -¤ÏÁàºî¤Î¼ïÎà¤ò»ØÄꤹ¤ë¡£ +は操作の種類を指定する。 .I info -¤Ï¾ðÊó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ -UDP ¤È TCP ¤É¤Á¤é¤Î¾ì¹ç¤â»ÈÍѲÄǽ¤Ê +は情報へのポインターである。 +UDP と TCP どちらの場合も使用可能な .I req -¤ÎÃͤȡ¢¤½¤Î°ú¤­¿ô¤Î·¿¡¢¤ª¤è¤Ó¤½¤ÎÆâÍƤϰʲ¼¤ÎÄ̤ê¤Ç¤¢¤ë: +の値と、その引き数の型、およびその内容は以下の通りである: .IP .in +4n .nf .ta +2.0i +2.0i +2.0i -\fBCLSET_TIMEOUT\fP \fIstruct timeval\fP // »þ´ÖÀÚ¤ì¤òÀßÄꤹ¤ë -\fBCLGET_TIMEOUT\fP \fIstruct timeval\fP // »þ´ÖÀÚ¤ì¤ò¼èÆÀ¤¹¤ë +\fBCLSET_TIMEOUT\fP \fIstruct timeval\fP // 時間切れを設定する +\fBCLGET_TIMEOUT\fP \fIstruct timeval\fP // 時間切れを取得する .fi .in .IP -Ãí°Õ: +注意: .BR clnt_control () -¤ò»ÈÍѤ·¤Æ»þ´ÖÀÚ¤ì¤òÀßÄꤷ¤¿¾ì¹ç¤Ë¤Ï¤½¤ì°Ê¸å¤Ï +を使用して時間切れを設定した場合にはそれ以後は .BR clnt_call () -¤ËÅϤµ¤ì¤ë»þ´ÖÀÚ¤ì¥Ñ¥é¥á¡¼¥¿¡¼¤ÏÁ´¤Æ̵»ë¤µ¤ì¤ë¡£ +に渡ã•ã‚Œã‚‹æ™‚間切れパラメーターは全て無視される。 .IP .in +4n .nf -\fBCLGET_SERVER_ADDR\fP \fIstruct sockaddr_in \fP // ¥µ¡¼¥Ð¥¢¥É¥ì¥¹¤ò¼èÆÀ¤¹¤ë +\fBCLGET_SERVER_ADDR\fP \fIstruct sockaddr_in \fP // サーバアドレスを取得する .fi .in .IP -°Ê²¼¤ÎÁàºî¤Ï UDP ¤Î¾ì¹ç¤Ë¤Î¤ßÍ­¸ú¤Ç¤¢¤ë: +以下の操作は UDP の場合にのみ有効である: .IP .in +4n .nf -\fBCLSET_RETRY_TIMEOUT\fP \fIstruct timeval\fP // ºÆÁ÷´Ö³Ö¤òÀßÄꤹ¤ë -\fBCLGET_RETRY_TIMEOUT\fP \fIstruct timeval\fP // ºÆÁ÷´Ö³Ö¤ò¼èÆÀ¤¹¤ë +\fBCLSET_RETRY_TIMEOUT\fP \fIstruct timeval\fP // 再送間隔を設定する +\fBCLGET_RETRY_TIMEOUT\fP \fIstruct timeval\fP // 再送間隔を取得する .fi .in .IP -ºÆÁ÷´Ö³Ö¤Ï¼¡¤ËÍ×µá¤òºÆÁ÷¤¹¤ëÁ°¤Ë -"UDP RPC" ¤¬¥µ¡¼¥Ð¤Î²óÅú¤òÂԤĻþ´Ö¤Ç¤¢¤ë¡£ +再送間隔は次に要求を再送する前に +"UDP RPC" がサーバの回答を待つ時間である。 .LP .nf .BI "clnt_freeres(CLIENT * " clnt ", xdrproc_t " outproc ", char *" out ); .fi .IP -¤³¤Î¥Þ¥¯¥í¤Ï RPC ¸Æ¤Ó½Ð¤·¤Î·ë²Ì¤Î¥Ç¥³¡¼¥É¤ÎºÝ¤Ë -RPC/XDR ¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ³äÅö¤Æ¤é¤ì¤¿¥Ç¡¼¥¿¤ò²òÊü¤¹¤ë¡£ -¥Ñ¥é¥á¡¼¥¿¡¼ +このマクロは RPC 呼び出しの結果のデコードの際に +RPC/XDR システムによって割当てられたデータを解放する。 +パラメーター .I out -¤Ï·ë²Ì¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +は結果のアドレスである。 .I outproc -¤Ï·ë²Ì¤òµ­½Ò¤·¤Æ¤¤¤ë XDR ¥ë¡¼¥Æ¥£¥ó¤Ç¤¢¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï·ë²Ì¤Î²òÊü¤ËÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£ +は結果を記述している XDR ルーティンである。 +このルーティンは結果の解放に成功した場合には 1 を返す。 +失敗した場合にはゼロを返す。 .LP .nf .BI "void clnt_geterr(CLIENT *" clnt ", struct rpc_err *" errp ); .fi .IP -¤³¤Î¥Þ¥¯¥í¤Ï¥¯¥é¥¤¥¢¥ó¥È¡¦¥Ï¥ó¥É¥ë¤Î¥¨¥é¡¼¹½Â¤ÂΤò +このマクロはクライアント・ハンドルのエラー構造体を .I errp -¥¢¥É¥ì¥¹¤Ç»ØÄꤵ¤ì¤¿¹½Â¤ÂΤإ³¥Ô¡¼¤¹¤ë¡£ +アドレスで指定された構造体へコピーする。 .LP .nf .BI "void clnt_pcreateerror(char *" s ); .fi .IP -ɸ½à¥¨¥é¡¼½ÐÎϤˡ¢¤Ê¤¼¥¯¥é¥¤¥¢¥ó¥È RPC ¥Ï¥ó¥É¥ë¤ÎºîÀ®¤¬ -¤Ç¤­¤Ê¤«¤Ã¤¿¤«¤Ë¤Ä¤¤¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¡£ -¥á¥Ã¥»¡¼¥¸¤ÎÁ°¤Ëʸ»úÎó +標準エラー出力に、なぜクライアント RPC ハンドルの作成が +できなかったかについてのメッセージを表示する。 +メッセージの前に文字列 .I s -¤È¥³¥í¥ó(:)¤¬É½¼¨¤µ¤ì¤ë¡£ +とコロン(:)が表示される。 .BR clnt_create (), .BR clntraw_create (), .BR clnttcp_create (), .BR clntudp_create () -¤Î¸Æ¤Ó½Ð¤·¤¬¼ºÇÔ¤·¤¿»þ¤Ë»ÈÍѤ¹¤ë¤³¤È¡£ +の呼び出しが失敗した時に使用すること。 .LP .nf .BI "void clnt_perrno(enum clnt_stat " stat ); .fi .IP -ɸ½à¥¨¥é¡¼½ÐÎÏ¤Ë +標準エラー出力に .I stat -¤Ë¤è¤Ã¤Æ»Ø¼¨¤µ¤ì¤ë¥¨¥é¡¼¾õÂÖ¤ËÂбþ¤¹¤ë¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¡£ +によって指示されるエラー状態に対応するメッセージを表示する。 .BR callrpc () -¤Î¸å¤Ë»ÈÍѤ¹¤ë¤³¤È¡£ +の後に使用すること。 .LP .nf .BI "clnt_perror(CLIENT *" clnt ", char *" s ); .fi .IP -ɸ½à¥¨¥é¡¼½ÐÎϤˡ¢¤Ê¤¼ RPC ¸Æ¤Ó½Ð¤·¤¬¼ºÇÔ¤·¤¿¤«¤Ë¤Ä¤¤¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¡£ +標準エラー出力に、なぜ RPC 呼び出しが失敗したかについてのメッセージを表示する。 .I clnt -¤Ï¥³¡¼¥ë¤Ë»ÈÍѤ·¤¿¥Ï¥ó¥É¥ë¤Ç¤¢¤ë¡£ -¥á¥Ã¥»¡¼¥¸¤ÎÁ°¤Ëʸ»úÎó +はコールに使用したハンドルである。 +メッセージの前に文字列 .I s -¤È¥³¥í¥ó(:)¤¬É½¼¨¤µ¤ì¤ë¡£ +とコロン(:)が表示される。 .BR clnt_call () -¤¬¼ºÇÔ¤·¤¿¸å¤Ë»ÈÍѤ¹¤ë¤³¤È¡£ +が失敗した後に使用すること。 .LP .nf .BI "char *clnt_spcreateerror(char *" s ); .fi .IP .BR clnt_pcreateerror () -¤ÈƱÍͤǤ¢¤ë¤¬¡¢É¸½à¥¨¥é¡¼½ÐÎϤØɽ¼¨¤¹¤ë¤«¤ï¤ê¤Ëʸ»úÎó¤òÊÖ¤¹ÅÀ¤¬°Û¤Ã¤Æ¤¤¤ë¡£ +と同様であるが、標準エラー出力へ表示するかわりに文字列を返す点が異っている。 .IP -¥Ð¥°: ÀÅŪ¤ÊÎΰè¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¤¿¤á¡¢¸Æ¤Ó½Ð¤·¤´¤È¤Ë¾å½ñ¤­¤µ¤ì¤ë¡£ +バグ: 静的な領域へのポインターを返すため、呼び出しごとに上書きされる。 .LP .nf .BI "char *clnt_sperrno(enum clnt_stat " stat ); .fi .IP .BR clnt_perrno () -¤ÈƱ¤¸°ú¤­¿ô¤ò¼è¤ë¤¬¡¢¤Ê¤¼ -RPC ¸Æ¤Ó½Ð¤·¤¬¼ºÇÔ¤·¤¿¤«¤Ë¤Ä¤¤¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤òɸ½à¥¨¥é¡¼½ÐÎϤËɽ¼¨¤¹¤ë -¤«¤ï¤ê¤Ë¡¢¥á¥Ã¥»¡¼¥¸¤ò³ÊǼ¤·¤Æ¤¤¤ëʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£ -ʸ»úÎó¤Ï NEWLINE(²þ¹Ô) ¤Ç½ª¤Ã¤Æ¤¤¤ë¡£ +と同じ引き数を取るが、なぜ +RPC 呼び出しが失敗したかについてのメッセージを標準エラー出力に表示する +かわりに、メッセージを格納している文字列へのポインターを返す。 +文字列は NEWLINE(改行) で終っている。 .IP .BR clnt_sperrno () -¤Ï¥×¥í¥°¥é¥à¤¬É¸½à¥¨¥é¡¼½ÐÎϤò»ý¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç(¥×¥í¥°¥é¥à¤¬¥µ¡¼¥Ð¤È¤· -¤ÆÁö¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¤è¤¯¤¢¤ê¤¨¤ë)¤ä¡¢¥×¥í¥°¥é¥Þ¡¼¤¬¥á¥Ã¥»¡¼¥¸¤ò +はプログラムが標準エラー出力を持っていない場合(プログラムがサーバとし +て走っている場合にはよくありえる)や、プログラマーがメッセージを .BR printf (3) -¤Ç½ÐÎϤ¹¤ë¤³¤È¤ò˾¤Þ¤Ê¤¤¾ì¹ç¤ä¡¢¥á¥Ã¥»¡¼¥¸¤Î·Á¼°¤¬ +で出力することを望まない場合や、メッセージの形式が .BR clnt_perrno () -¤¬¥µ¥Ý¡¼¥È¤¹¤ë¤â¤Î¤È¤Ï°Û¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ê¤É¤Ë +がサポートするものとは異っている場合などに .BR clnt_perrno () -¤Î¤«¤ï¤ê¤Ë»ÈÍѤµ¤ì¤ë¡£ -Ãí°Õ: +のかわりに使用される。 +注意: .BR clnt_sperror () -¤ä +や .BR clnt_spcreaterror () -¤È¤Ï°ã¤Ã¤Æ +とは違って .BR clnt_sperrno () -¤ÏÀÅŪ¥Ç¡¼¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£¤·¤«¤·¸Æ¤Ó½Ð¤·¤´¤È¤Ë¾å½ñ¤­¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ +は静的データへのポインターを返す。しかし呼び出しごとに上書きされることはない。 .LP .nf .BI "char *clnt_sperror(CLIENT *" rpch ", char *" s ); .fi .IP .BR clnt_perror () -¤ÈƱÍͤǤ¢¤ë¤¬¡¢É¸½à¥¨¥é¡¼½ÐÎϤËɽ¼¨¤¹¤ëÂå¤ê¤Ë +と同様であるが、標準エラー出力に表示する代りに .RB ( clnt_sperrno () -¤Î¤è¤¦¤Ë) ʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹ÅÀ¤¬°Û¤Ã¤Æ¤¤¤ë¡£ +のように) 文字列へのポインターを返す点が異っている。 .IP -¥Ð¥°: ¸Æ¤Ó½Ð¤·¤´¤È¤Ë¾å½ñ¤­¤µ¤ì¤ëÀÅŪ¥Ç¡¼¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£ +バグ: 呼び出しごとに上書きされる静的データへのポインターを返す。 .LP .nf .BI "CLIENT *clntraw_create(unsigned long " prognum \ ", unsigned long " versnum ); .fi .IP -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à -.IR prognum ¡¢ -¥Ð¡¼¥¸¥ç¥ó +このルーティンはリモート・プログラム +.IR prognum 、 +バージョン .I versnum -¤Î¤¿¤á¤Îµ¼»÷ RPC ¥¯¥é¥¤¥¢¥ó¥È¤òºîÀ®¤¹¤ë¡£¥á¥Ã¥»¡¼¥¸¤ò¥µ¡¼¥Ó¥¹¤ËÅϤ¹¤¿¤á¤Ë»ÈÍѤ¹¤ë -ÄÌ¿®¤Ï¼ÂºÝ¤Ë¤Ï¤½¤Î¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤¢¤ë¥Ð¥Ã¥Õ¥¡¡¼¤Ç¤¢¤ë¡£ -¤½¤ì¤Ç¡¢Âбþ¤¹¤ë RPC ¥µ¡¼¥Ð¤¬Æ±¤¸¥¢¥É¥ì¥¹¶õ´Ö¤ÎÃæ¤Ë¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +のための擬似 RPC クライアントを作成する。メッセージをサービスに渡すために使用する +通信は実際にはそのプロセスのアドレス空間にあるバッファーである。 +それで、対応する RPC サーバが同じアドレス空間の中にいなければならない。 .BR svcraw_create () -¤ò»²¾È¤¹¤ë¤³¤È¡£ -¤³¤ì¤Ë¤è¤ê RPC ¤Î¥·¥ß¥å¥ì¡¼¥·¥ç¥ó¤ä¡¢¥«¡¼¥Í¥ë¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë±Æ¶Á¤µ¤ì¤º¤Ë -±þÅú»þ´Ö¤Ê¤É¤Î RPC ¥ª¡¼¥Ð¥Ø¥Ã¥É¤Î³ÍÆÀ¤¬¤Ç¤­¤ë¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï NULL ¤òÊÖ¤¹¡£ +を参照すること。 +これにより RPC のシミュレーションや、カーネル・インターフェースに影響されずに +応答時間などの RPC オーバヘッドの獲得ができる。 +失敗した場合にはこのルーティンは NULL を返す。 .LP .nf .BI "CLIENT *clnttcp_create(struct sockaddr_in *" addr , @@ -420,33 +420,33 @@ RPC ", unsigned int " recvsz ); .fi .IP -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à -.IR prognum ¡¢ -¥Ð¡¼¥¸¥ç¥ó +このルーティンはリモート・プログラム +.IR prognum 、 +バージョン .I versnum -¤Î¤¿¤á¤Î RPC ¥¯¥é¥¤¥¢¥ó¥È¤òºîÀ®¤¹¤ë¡£¥¯¥é¥¤¥¢¥ó¥È¤ÏÄÌ¿®¤Ë -TCP/IP ¤ò»ÈÍѤ¹¤ë¡£¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤Ï¥¤¥ó¥¿¡¼¥Í¥Ã¥È¡¦¥¢¥É¥ì¥¹¤Î +のための RPC クライアントを作成する。クライアントは通信に +TCP/IP を使用する。リモート・プログラムはインターネット・アドレスの .I *addr -¤Ë¤¢¤ë¡£ +にある。 .\"The following inline font conversion is necessary for the hyphen indicator -\fIaddr\->sin_port\fR ¤¬¥¼¥í¤Ê¤é¤Ð¡¢¼ÂºÝ¤Ë¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤¬ -listen ¤·¤Æ¤¤¤ë¥Ý¡¼¥È¤¬ÀßÄꤵ¤ì¤ë¡£(¤³¤Î¾ðÊó¤Î¤¿¤á¤Ë¥ê¥â¡¼¥È¤Î +\fIaddr\->sin_port\fR がゼロならば、実際にリモート・プログラムが +listen しているポートが設定される。(この情報のためにリモートの .B portmap -¥µ¡¼¥Ó¥¹¤¬ÍøÍѤµ¤ì¤ë¡£) ¥Ñ¥é¥á¡¼¥¿¡¼ +サービスが利用される。) パラメーター .I sockp -¤Ï¥½¥±¥Ã¥È¤Ç¤¢¤ë¡£¤â¤·¤³¤ì¤¬ +はソケットである。もしこれが .B RPC_ANYSOCK -¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤³¤Î¥ë¡¼¥Æ¥£¥ó¤¬¿·¤·¤¤¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤·¤Æ +に設定されている場合は、このルーティンが新しいソケットをオープンして .I sockp -¤ËÀßÄꤹ¤ë¡£ -TCP ¤Ë´ð¤Å¤¤¤¿ RPC ¤Ï¥Ð¥Ã¥Õ¥¡¤µ¤ì¤¿ I/O -¤ò»ÈÍѤ¹¤ë¤¿¤á¡¢¥æ¡¼¥¶¤Ï¥Ñ¥é¥á¡¼¥¿¡¼ +に設定する。 +TCP に基づいた RPC はバッファされた I/O +を使用するため、ユーザはパラメーター .I sendsz -¤È +と .I recvsz -¤ò»ÈÍѤ·¤ÆÁ÷¿®¥Ð¥Ã¥Õ¥¡¤È¼õ¿®¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥¼¥í¤ò»ØÄꤷ¤¿¾ì¹ç¤Ë¤ÏŬÀڤʥǥե©¥ë¥È¤¬ÁªÂò¤µ¤ì¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¼ºÇÔ¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +を使用して送信バッファと受信バッファのサイズを指定することができる。 +ゼロを指定した場合には適切なデフォルトが選択される。 +このルーティンは失敗した場合は NULL を返す。 .LP .nf .BI "CLIENT *clntudp_create(struct sockaddr_in *" addr , @@ -454,34 +454,34 @@ TCP .BI " struct timeval " wait ", int *" sockp ); .fi .IP -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à -.IR prognum ¡¢ -¥Ð¡¼¥¸¥ç¥ó +このルーティンはリモート・プログラム +.IR prognum 、 +バージョン .I versnum -¤Î¤¿¤á¤Î RPC ¥¯¥é¥¤¥¢¥ó¥È¤òºîÀ®¤¹¤ë¡£¥¯¥é¥¤¥¢¥ó¥È¤ÏÄÌ¿®¤Ë -UDP/IP ¤ò»ÈÍѤ¹¤ë¡£¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤Ï¥¤¥ó¥¿¡¼¥Í¥Ã¥È¡¦¥¢¥É¥ì¥¹¤Î +のための RPC クライアントを作成する。クライアントは通信に +UDP/IP を使用する。リモート・プログラムはインターネット・アドレスの .I *addr -¤Ë¤¢¤ë¡£ -\fIaddr\->sin_port\fR ¤¬¥¼¥í¤Ê¤é¤Ð¡¢¼ÂºÝ¤Ë¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤¬ -listen ¤·¤Æ¤¤¤ë¥Ý¡¼¥È¤¬ÀßÄꤵ¤ì¤ë¡£(¤³¤Î¾ðÊó¤Î¤¿¤á¤Ë¥ê¥â¡¼¥È¤Î +にある。 +\fIaddr\->sin_port\fR がゼロならば、実際にリモート・プログラムが +listen しているポートが設定される。(この情報のためにリモートの .B portmap -¥µ¡¼¥Ó¥¹¤¬ÍøÍѤµ¤ì¤ë¡£) ¥Ñ¥é¥á¡¼¥¿¡¼ +サービスが利用される。) パラメーター .I sockp -¤Ï¥½¥±¥Ã¥È¤Ç¤¢¤ë¡£¤â¤·¤³¤ì¤¬ +はソケットである。もしこれが .B RPC_ANYSOCK -¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤³¤Î¥ë¡¼¥Æ¥£¥ó¤¬¿·¤·¤¤¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤·¤Æ +に設定されている場合は、このルーティンが新しいソケットをオープンして .I sockp -¤ËÀßÄꤹ¤ë¡£ -UDP ÄÌ¿®¤Ï²óÅú¤¬¤¢¤ë¤«¡¢»þ´ÖÀڤ줬µ¯¤³¤ë¤Þ¤Ç +に設定する。 +UDP 通信は回答があるか、時間切れが起こるまで .B wait -´Ö³Ö¤Ç¸Æ¤Ó½Ð¤·¥á¥Ã¥»¡¼¥¸¤òºÆÁ÷¤¹¤ë¡£»þ´ÖÀڤ줬µ¯¤³¤ë¤Þ¤Ç¤Î¹ç·×»þ´Ö¤Ï +間隔で呼び出しメッセージを再送する。時間切れが起こるまでの合計時間は .BR clnt_call () -¤Ç»ØÄꤹ¤ë¡£ +で指定する。 .IP -·Ù¹ð: UDP ¤Ë´ð¤Å¤¤¤¿ -RPC ¥á¥Ã¥»¡¼¥¸¤ÏºÇÂç¤Ç¤â 8 Kbyte ¤Þ¤Ç¤Î¥¨¥ó¥³¡¼¥É¤µ¤ì¤¿¥Ç¡¼¥¿¤·¤« -ÊÝ»ý¤Ç¤­¤Ê¤¤¤¿¤á¡¢¤³¤ÎÄÌ¿®¤ÏÂ礭¤Ê°ú¤­¿ô¤äµðÂç¤Ê·ë²Ì¤ò¼è¤ë -¥×¥í¥·¥¸¥ã¤Ë¤Ï»ÈÍѤǤ­¤Ê¤¤¡£ +警告: UDP に基づいた +RPC メッセージは最大でも 8 Kbyte までのエンコードされたデータしか +保持できないため、この通信は大きな引き数や巨大な結果を取る +プロシジャには使用できない。 .LP .nf .BI "CLIENT *clntudp_bufcreate(struct sockaddr_in *" addr , @@ -490,57 +490,57 @@ RPC .BI " unsigned int " sendsize ", unsigned int "recosize ); .fi .IP -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à -.IR prognum ¡¢ -¥Ð¡¼¥¸¥ç¥ó +このルーティンはリモート・プログラム +.IR prognum 、 +バージョン .I versnum -¤Î¤¿¤á¤Î RPC ¥¯¥é¥¤¥¢¥ó¥È¤òºîÀ®¤¹¤ë¡£¥¯¥é¥¤¥¢¥ó¥È¤ÏÄÌ¿®¤Ë -UDP/IP ¤ò»ÈÍѤ¹¤ë¡£¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤Ï¥¤¥ó¥¿¡¼¥Í¥Ã¥È¡¦¥¢¥É¥ì¥¹¤Î +のための RPC クライアントを作成する。クライアントは通信に +UDP/IP を使用する。リモート・プログラムはインターネット・アドレスの .I *addr -¤Ë¤¢¤ë¡£ -\fIaddr\->sin_port\fR ¤¬¥¼¥í¤Ê¤é¤Ð¡¢¼ÂºÝ¤Ë¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤¬ -listen ¤·¤Æ¤¤¤ë¥Ý¡¼¥È¤¬ÀßÄꤵ¤ì¤ë¡£(¤³¤Î¾ðÊó¤Î¤¿¤á¤Ë¥ê¥â¡¼¥È¤Î +にある。 +\fIaddr\->sin_port\fR がゼロならば、実際にリモート・プログラムが +listen しているポートが設定される。(この情報のためにリモートの .B portmap -¥µ¡¼¥Ó¥¹¤¬ÍøÍѤµ¤ì¤ë¡£) ¥Ñ¥é¥á¡¼¥¿¡¼ +サービスが利用される。) パラメーター .I sockp -¤Ï¥½¥±¥Ã¥È¤Ç¤¢¤ë¡£¤â¤·¤³¤ì¤¬ +はソケットである。もしこれが .B RPC_ANYSOCK -¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤³¤Î¥ë¡¼¥Æ¥£¥ó¤¬¿·¤·¤¤¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤·¤Æ +に設定されている場合は、このルーティンが新しいソケットをオープンして .I sockp -¤ËÀßÄꤹ¤ë¡£ -UDP ÄÌ¿®¤Ï²óÅú¤¬¤¢¤ë¤«¡¢»þ´ÖÀڤ줬µ¯¤³¤ë¤Þ¤Ç +に設定する。 +UDP 通信は回答があるか、時間切れが起こるまで .B wait -´Ö³Ö¤Ç¸Æ¤Ó½Ð¤·¥á¥Ã¥»¡¼¥¸¤òºÆÁ÷¤¹¤ë¡£»þ´ÖÀڤ줬µ¯¤³¤ë¤Þ¤Ç¤Î¹ç·×»þ´Ö¤Ï +間隔で呼び出しメッセージを再送する。時間切れが起こるまでの合計時間は .BR clnt_call () -¤Ç»ØÄꤹ¤ë¡£ +で指定する。 .IP -¤³¤ì¤ò»ÈÍѤ¹¤ë¤È UDP ¤Ë´ð¤Å¤¤¤¿ RPC ¥á¥Ã¥»¡¼¥¸¤Ë¤ª¤¤¤ÆÁ÷¿®¥Ñ¥±¥Ã¥È¤ä -¼õ¿®¥Ñ¥±¥Ã¥È¤ÎºÇÂ祵¥¤¥º¤ò»ØÄꤹ¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¡£ +これを使用すると UDP に基づいた RPC メッセージにおいて送信パケットや +受信パケットの最大サイズを指定することが可能になる。 .LP .nf .BI "void get_myaddress(struct sockaddr_in *" addr ); .fi .IP -¤³¤Î¥Þ¥·¥ó¤Î IP ¥¢¥É¥ì¥¹¤ò +このマシンの IP アドレスを .I *addr -¤Ë³ÊǼ¤¹¤ë¡£ +に格納する。 .I /etc/hosts -¤ò°·¤¦¥é¥¤¥Ö¥é¥ê¡¦¥ë¡¼¥Æ¥£¥ó¤Ï»ÈÍѤ·¤Ê¤¤¡£¥Ý¡¼¥ÈÈÖ¹æ¤Ï¾ï¤Ë +を扱うライブラリ・ルーティンは使用しない。ポート番号は常に .B htons(PMAPPORT) -¤ËÀßÄꤵ¤ì¤ë¡£ +に設定される。 .LP .nf .BI "struct pmaplist *pmap_getmaps(struct sockaddr_in *" addr ); .fi .IP .B portmap -¥µ¡¼¥Ó¥¹¤Î¤¿¤á¤Î¥æ¡¼¥¶¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¢¤ê¡¢ -IP ¥¢¥É¥ì¥¹ +サービスのためのユーザインターフェースであり、 +IP アドレス .I *addr -¤Ë¤¢¤ë¥Û¥¹¥È¤Î¸½ºß¤Î RPC ¥×¥í¥°¥é¥à¤«¤é¥Ý¡¼¥ÈÈÖ¹æ¤Ø¤Î¥Þ¥Ã¥Ô¥ó¥°¤Î°ìÍ÷¤òÊÖ¤¹¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤¬ NULL ¤òÊÖ¤¹¾ì¹ç¤â¤¢¤ë¡£ +にあるホストの現在の RPC プログラムからポート番号へのマッピングの一覧を返す。 +このルーティンが NULL を返す場合もある。 .RB ` "rpcinfo \-p" ' -¥³¥Þ¥ó¥É¤Ï¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ò»ÈÍѤ·¤Æ¤¤¤ë¡£ +コマンドはこのルーティンを使用している。 .LP .nf .BI "unsigned short pmap_getport(struct sockaddr_in *" addr , @@ -549,22 +549,22 @@ IP .fi .IP .B portmap -¥µ¡¼¥Ó¥¹¤Î¤¿¤á¤Î¥æ¡¼¥¶¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¡¢ -¥×¥í¥°¥é¥àÈÖ¹æ -.IR prognum ¡¢ -¥Ð¡¼¥¸¥ç¥ó -.IR versnum ¡¢ -´ØÏ¢ÉÕ¤±¤é¤ì¤¿ÄÌ¿®¥×¥í¥È¥³¥ë +サービスのためのユーザ・インターフェースで、 +プログラム番号 +.IR prognum 、 +バージョン +.IR versnum 、 +関連付けられた通信プロトコル .I protocol -¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥µ¡¼¥Ó¥¹¤¬ÂԤäƤ¤¤ë¥Ý¡¼¥ÈÈÖ¹æ¤òÊÖ¤¹¡£ +をサポートするサービスが待っているポート番号を返す。 .I protocol -¤ÎÃͤϤۤȤó¤É¤Î¾ì¹ç IPPROTO_UDP ¤« IPPROTO_TCP ¤Ç¤¢¤ë¡£ -ÊÖ¤êÃÍ¥¼¥í¤Ï¥Þ¥Ã¥Ô¥ó¥°¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢ -RPC ¥·¥¹¥Æ¥à¤¬¥ê¥â¡¼¥È¤Î +の値はほとんどの場合 IPPROTO_UDP か IPPROTO_TCP である。 +返り値ゼロはマッピングが存在しないか、 +RPC システムがリモートの .B portmap -¥µ¡¼¥Ó¥¹¤Î»²¾È¤Ë¼ºÇÔ¤·¤¿¤³¤È¤ò°ÕÌ£¤¹¤ë¡£¸å¼Ô¤Î¾ì¹ç¤ÏÂç°èÊÑ¿ô +サービスの参照に失敗したことを意味する。後者の場合は大域変数 .I rpc_createerr -¤¬ RPC ¾õÂÖ¤òÊÝ»ý¤·¤Æ¤¤¤ë¡£ +が RPC 状態を保持している。 .LP .nf .BI "enum clnt_stat pmap_rmtcall(struct sockaddr_in *" addr , @@ -576,24 +576,24 @@ RPC .fi .IP .B portmap -¥µ¡¼¥Ó¥¹¤Î¤¿¤á¤Î¥æ¡¼¥¶¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¡¢ -IP ¥¢¥É¥ì¥¹ +サービスのためのユーザ・インターフェースで、 +IP アドレス .I *addr -¤Î¥Û¥¹¥È¤Î +のホストの .B portmap -¤ò»²¾È¤·¤Æ¡¢ -RPC ¸Æ¤Ó½Ð¤·¤òÀ¸À®¤·¡¢¤½¤Î¥Û¥¹¥È¾å¤Î¥×¥í¥·¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹¡£ -¥Ñ¥é¥á¡¼¥¿¡¼ +を参照して、 +RPC 呼び出しを生成し、そのホスト上のプロシジャを呼び出す。 +パラメーター .I *portp -¤Ï¥×¥í¥·¥¸¥ã¤¬À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¥×¥í¥°¥é¥à¤Î¥Ý¡¼¥ÈÈÖ¹æ¤Ë½¤Àµ¤µ¤ì¤ë¡£ -¾¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ÎÄêµÁ¤Ë¤Ä¤¤¤Æ¤Ï +はプロシジャが成功した場合にはプログラムのポート番号に修正される。 +他のパラメーターの定義については .BR callrpc () -¤ä +や .BR clnt_call () -¤ÇÀâÌÀ¤·¤Æ¤¢¤ë¡£ -¤³¤Î¥×¥í¥·¥¸¥ã¤Ï \(lqping\(rq ¤Î¤ß¤Ë»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +で説明してある。 +このプロシジャは \(lqping\(rq のみに使用すべきである。 .BR clnt_broadcast () -¤â»²¾È¤¹¤ë¤³¤È¡£ +も参照すること。 .LP .nf .BI "bool_t pmap_set(unsigned long " prognum ", unsigned long " versnum , @@ -601,36 +601,36 @@ RPC .fi .IP .B portmap -¥µ¡¼¥Ó¥¹¤Î¤¿¤á¤Î¥æ¡¼¥¶¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¡¢ +サービスのためのユーザ・インターフェースで、 .RI [ prognum , versnum , protocol\fR] -¤ÎÁȤ߹ç¤ï¤»¤È +の組み合わせと .I port -¤È¤Î´Ö¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò¡¢¤½¤Î¥Þ¥·¥ó¾å¤Î +との間のマッピングを、そのマシン上の .B portmap -¥µ¡¼¥Ó¥¹¤ËÅÐÏ¿¤¹¤ë¡£ +サービスに登録する。 .I protocol -¤Ï¤Û¤È¤ó¤É¤Î¾ì¹ç +はほとんどの場合 .B IPPROTO_UDP -¤« +か .B IPPROTO_TCP -¤Î¤É¤Á¤é¤«¤Ç¤¢¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 1 ¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£ +のどちらかである。 +このルーティンは成功した場合には 1 を返す。失敗した場合にはゼロを返す。 .BR svc_register () -¤Ë¤è¤Ã¤Æ¼«Æ°Åª¤Ë¼Â¹Ô¤µ¤ì¤ë¡£ +によって自動的に実行される。 .LP .nf .BI "bool_t pmap_unset(unsigned long " prognum ", unsigned long " versnum ); .fi .IP .B portmap -¥µ¡¼¥Ó¥¹¤Î¤¿¤á¤Î¥æ¡¼¥¶¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¡¢ +サービスのためのユーザ・インターフェースで、 .RI [ prognum , versnum , *\fR] -¤ÎÁȤ߹ç¤ï¤»¤È +の組み合わせと .B ports -¤Î´Ö¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò¤½¤Î¥Þ¥·¥ó¾å¤Î +の間のマッピングをそのマシン上の .B portmap -¥µ¡¼¥Ó¥¹¤«¤éºï½ü¤¹¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ +サービスから削除する。このルーティンは成功した場合は 1 を返す。 +失敗した場合には 0 を返す。 .LP .nf .BI "int registerrpc(unsigned long " prognum ", unsigned long " versnum , @@ -638,139 +638,139 @@ RPC .BI " xdrproc_t " inproc ", xdrproc_t " outproc ); .fi .IP -RPC ¥µ¡¼¥Ó¥¹¥Ñ¥Ã¥±¡¼¥¸¤ò»ÈÍѤ·¤Æ +RPC サービスパッケージを使用して .I procname -¥×¥í¥·¥¸¥ã¤òÅÐÏ¿¤¹¤ë¡£¥×¥í¥°¥é¥à -.IR prognum ¡¢ -¥Ð¡¼¥¸¥ç¥ó -.IR versnum ¡¢ -¥×¥í¥·¥¸¥ã +プロシジャを登録する。プログラム +.IR prognum 、 +バージョン +.IR versnum 、 +プロシジャ .I procnum -¤Ø¤ÎÍ׵᤬ÆϤ¤¤¿¾ì¹ç¡¢ +への要求が届いた場合、 .I procname -¤¬¥Ñ¥é¥á¡¼¥¿¡¼¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤ò»ý¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ +がパラメーターへのポインターを持って呼び出される。 .I progname -¤ÏÀÅŪ¤Ê·ë²Ì¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹É¬Íפ¬¤¢¤ë¡£ +は静的な結果へのポインターを返す必要がある。 .I inproc -¤Ï¥Ñ¥é¥á¡¼¥¿¡¼¤ò¥Ç¥³¡¼¥É¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ +はパラメーターをデコードするために使用される。 .I outproc -¤Ï·ë²Ì¤ò¥¨¥ó¥³¡¼¥É¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÅÐÏ¿¤ËÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï \-1 ¤òÊÖ¤¹¡£ +は結果をエンコードするために使用される。 +このルーティンは登録に成功した場合にはゼロを返す。 +失敗した場合には \-1 を返す。 .IP -·Ù¹ð: ¤³¤Î·Á¼°¤ÇÅÐÏ¿¤µ¤ì¤¿¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¤Ï -UDP/IP ÄÌ¿®¤ò»ÈÍѤ¹¤ë¡£À©¸Â¤Ë´Ø¤·¤Æ¤Ï +警告: この形式で登録されたリモート・プロシジャは +UDP/IP 通信を使用する。制限に関しては .BR svcudp_create () -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .LP .nf .BI "struct rpc_createerr " rpc_createerr ; .fi .IP -À®¸ù¤·¤Ê¤«¤Ã¤¿ RPC ¥¯¥é¥¤¥¢¥ó¥ÈÀ¸À®¥ë¡¼¥Æ¥£¥ó¤Ë¤è¤Ã¤ÆÀßÄꤵ¤ì¤ëÂç°èÊÑ¿ô¡£ +成功しなかった RPC クライアント生成ルーティンによって設定される大域変数。 .BR clnt_pcreateerror () -¥ë¡¼¥Æ¥£¥ó¤¬Íýͳ¤òɽ¼¨¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£ +ルーティンが理由を表示するために使用する。 .LP .nf .BI "void svc_destroy(SVCXPRT *" xprt ); .fi .IP -¤³¤Î¥Þ¥¯¥í¤ÏÄÌ¿®¥Ï¥ó¥É¥ë +このマクロは通信ハンドル .I xprt -¤Î RPC ¥µ¡¼¥Ó¥¹¤òÇ˲õ¤¹¤ë¡£Ç˲õ¤Ë¤ÏÄ̾ +の RPC サービスを破壊する。破壊には通常、 .I xprt -¤ò´Þ¤á¤Æ¡¢»äŪ¤Ê¥Ç¡¼¥¿¹½Â¤ÂΤÎÇË´þ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ò¸Æ¤Ó½Ð¤·¤¿¸å¤Ë +を含めて、私的なデータ構造体の破棄が含まれている。 +このルーティンを呼び出した後に .I xprt -¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +を使用することは未定義である。 .LP .nf .BI "fd_set " svc_fdset ; .fi .IP -RPC ¥µ¡¼¥Ó¥¹Â¦¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤òÈ¿±Ç¤·¤¿Âç°èÊÑ¿ô¡£ +RPC サービス側のファイル・ディスクリプターのビットマスクを反映した大域変数。 .BR select (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤Î¤¿¤á¤ËÍøÍѤǤ­¤ë¡£¤³¤ì¤Ï -¥µ¡¼¥Ó¥¹¤Î¼ÂÁõ¼Ô¤¬ +システムコールのパラメーターのために利用できる。これは +サービスの実装者が .BR svc_run () -¤ò¸Æ¤Ó½Ð¤µ¤Ê¤º¤Ë¡¢Æȼ«¤ÎÈóƱ´ü¥¤¥Ù¥ó¥È½èÍý¤òÍѤ¤¤ë¾ì¹ç¤Ë¤Î¤ß°ÕÌ£¤¬¤¢¤ë¡£ -¤³¤ÎÊÑ¿ô¤ÏÆɤ߹þ¤ßÀìÍÑ¤Ç (¤½¤Î¤Þ¤Þ +を呼び出さなずに、独自の非同期イベント処理を用いる場合にのみ意味がある。 +この変数は読み込み専用で (そのまま .BR select (2) -¤ØÅϤ·¤Æ¤Ï¤Ê¤é¤Ê¤¤!)¡¢ +へ渡してはならない!)、 .BR svc_getreqset () -¸Æ¤Ó½Ð¤·¤äÀ¸À®¥ë¡¼¥Æ¥£¥ó¤Î¸å¤ËÊѹ¹¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +呼び出しや生成ルーティンの後に変更されているかもしれない。 .LP .nf .BI "int " svc_fds ; .fi .IP .B svc_fdset -¤Ë»÷¤Æ¤¤¤ë¤¬¡¢32 ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï +に似ているが、32 ディスクリプターに制限されている。 +このインターフェースは .B svc_fdset -¤Ë¤è¤Ã¤ÆÃÖ¤­´¹¤¨¤é¤ì¤¿¡£ +によって置き換えられた。 .LP .nf .BI "svc_freeargs(SVCXPRT *" xprt ", xdrproc_t " inproc ", char *" in ); .fi .IP -¤³¤Î¥Þ¥¯¥í¤Ï¥µ¡¼¥Ó¥¹¡¦¥×¥í¥·¥¸¥ã¤¬ +このマクロはサービス・プロシジャが .BR svc_getargs () -¤ò»ÈÍѤ·¤Æ°ú¤­¿ô¤ò¥Ç¥³¡¼¥É¤·¤¿»þ¤Ë -RPC/XDR ¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ³ä¤êÅö¤Æ¤é¤ì¤¿¥Ç¡¼¥¿¤ò²òÊü¤¹¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï²òÊü¤ËÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£ +を使用して引き数をデコードした時に +RPC/XDR システムによって割り当てられたデータを解放する。 +このルーティンは解放に成功した場合には 1 を返す。 +失敗した場合にはゼロを返す。 .LP .nf .BI "svc_getargs(SVCXPRT *" xprt ", xdrproc_t " inproc ", char *" in ); .fi .IP -¤³¤Î¥Þ¥¯¥í¤Ï RPC ¥µ¡¼¥Ó¥¹ÄÌ¿®¥Ï¥ó¥É¥ë +このマクロは RPC サービス通信ハンドル .I xprt -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿ RPC Í×µá¤Î°ú¤­¿ô¤ò¥Ç¥³¡¼¥É¤¹¤ë¡£¥Ñ¥é¥á¡¼¥¿¡¼ +に関連付けられた RPC 要求の引き数をデコードする。パラメーター .I in -¤Ï°ú¤­¿ô¤Î³ÊǼ¤µ¤ì¤¿¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +は引き数の格納されたアドレスである。 .I inproc -¤Ï°ú¤­¿ô¤ò¥Ç¥³¡¼¥É¤¹¤ë¤¿¤á¤Î XDR ¥ë¡¼¥Æ¥£¥ó¤Ç¤¢¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥Ç¥³¡¼¥É¤ËÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +は引き数をデコードするための XDR ルーティンである。 +このルーティンはデコードに成功した場合は 1 を返す。 +失敗した場合はゼロを返す。 .LP .nf .BI "struct sockaddr_in *svc_getcaller(SVCXPRT *" xprt ); .fi .IP -RPC ¥µ¡¼¥Ó¥¹ÄÌ¿®¥Ï¥ó¥É¥ë +RPC サービス通信ハンドル .I xprt -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥×¥í¥·¥¸¥ã¤Î¸Æ¤Ó½Ð¤·¸µ¤Î¥Í¥Ã¥È¥ï¡¼¥¯¡¦¥¢¥É¥ì¥¹¤ò -¼èÆÀ¤¹¤ë¤¿¤á¤Îɸ½àŪ¤Ê¼êÃÊ¡£ +に関連付けられたプロシジャの呼び出し元のネットワーク・アドレスを +取得するための標準的な手段。 .LP .nf .BI "void svc_getreqset(fd_set *" rdfds ); .fi .IP -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥µ¡¼¥Ó¥¹¤Î¼ÂÁõ¼Ô¤¬ +このルーティンはサービスの実装者が .BR svc_run () -¤ò¸Æ¤Ó½Ð¤µ¤º¡¢Æȼ«¤ÎÈóƱ´ü¥¤¥Ù¥ó¥È½èÍý¤ò¼ÂÁõ¤¹¤ë¾ì¹ç¤Ë¤Î¤ß°ÕÌ£¤¬¤¢¤ë¡£ -¤³¤ì¤Ï +を呼び出さず、独自の非同期イベント処理を実装する場合にのみ意味がある。 +これは .BR select (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ RPC ¥½¥±¥Ã¥È¤Ë -RPC Í׵᤬ÅþÃ夷¤¿¤ÈÊÖ¤·¤¿¾ì¹ç¤Ë¤Î¤ß¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ +システムコールが RPC ソケットに +RPC 要求が到着したと返した場合にのみ呼び出される。 .I rdfds -¤Ï·ë²Ì¤ÎÆɤ߹þ¤ß¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï +は結果の読み込みファイル・ディスクリプターのビットマスクである。 +このルーティンは .I rdfds -¤ÎÃͤ˴ØÏ¢ÉÕ¤±¤é¤ì¤¿Á´¤Æ¤Î¥½¥±¥Ã¥È¤Î¥µ¡¼¥Ó¥¹¤¬¹Ô¤Ê¤ï¤ì¤¿»þ¤Ë -Ê֤äƤ¯¤ë¡£ +の値に関連付けられた全てのソケットのサービスが行なわれた時に +返ってくる。 .LP .nf .BI "void svc_getreq(int " rdfds ); .fi .IP .BR svc_getreqset () -¤Ë»÷¤Æ¤¤¤ë¤¬¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Î¿ô¤¬ 32 ¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï +に似ているがディスクリプターの数が 32 に制限されている。 +このインターフェースは .BR svc_getreqset () -¤Ë¤è¤Ã¤ÆÃÖ¤­´¹¤¨¤é¤ì¤¿¡£ +によって置き換えられた。 .LP .nf .BI "bool_t svc_register(SVCXPRT *" xprt ", unsigned long " prognum , @@ -780,29 +780,29 @@ RPC .fi .IP .I prognum -¤È +と .I versnum -¤ò¥µ¡¼¥Ó¥¹ÇÛʬ¥×¥í¥·¥¸¥ã +をサービス配分プロシジャ .I dispatch -¤Ç´ØÏ¢ÉÕ¤±¤ë¡£ +で関連付ける。 .I protocol -¤¬¥¼¥í¤Î¾ì¹ç¡¢¥µ¡¼¥Ó¥¹¤Ï +がゼロの場合、サービスは .B portmap -¥µ¡¼¥Ó¥¹¤Ë¤ÏÅÐÏ¿¤µ¤ì¤Ê¤¤¡£ +サービスには登録されない。 .I protocol -¤¬¥¼¥í°Ê³°¤Î¾ì¹ç¡¢ +がゼロ以外の場合、 .RI [ prognum , versnum , protocol\fR] -¤ÎÁȤ߹ç¤ï¤»¤È \fIxprt\->xp_port\fR ¤È¤Î¥Þ¥Ã¥Ô¥ó¥°¤¬¥í¡¼¥«¥ë¤Î +の組み合わせと \fIxprt\->xp_port\fR とのマッピングがローカルの .B portmap -¥µ¡¼¥Ó¥¹¤ËÅÐÏ¿¤µ¤ì¤ë¡£(°ìÈÌŪ¤Ë +サービスに登録される。(一般的に .I protocol -¤Ï¥¼¥í¡¢ -.BR IPPROTO_UDP ¡¢ +はゼロ、 +.BR IPPROTO_UDP 、 .B IPPROTO_TCP -¤Î¤É¤ì¤«¤Ç¤¢¤ë¡£) -¥×¥í¥·¥¸¥ã +のどれかである。) +プロシジャ .I dispatch -¤Ï°Ê²¼¤Î·Á¼°¤Ç¤¢¤ë: +は以下の形式である: .in +4n .nf @@ -811,286 +811,286 @@ dispatch(struct svc_req *request, SVCXPRT *xprt); .in .IP .BR svc_register () -¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +ルーティンは成功した場合は 1 を返す。失敗した場合はゼロを返す。 .LP .nf .B "void svc_run(void);" .fi .IP -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÌá¤Ã¤Æ¤³¤Ê¤¤¡£¤³¤ì¤Ï +このルーティンは戻ってこない。これは .SM RPC -Í×µá¤ÎÅþÃå¤òÂÔ¤Á¡¢¤É¤ì¤«¤¬ÆϤ¤¤¿¾ì¹ç¤Ë +要求の到着を待ち、どれかが届いた場合に .BR svc_getreq () -¤ò»ÈÍѤ·¤ÆŬÀڤʥµ¡¼¥Ó¥¹¡¦¥×¥í¥·¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹¡£ -¤³¤Î¥×¥í¥·¥¸¥ã¤ÏÄ̾ï¤Ï +を使用して適切なサービス・プロシジャを呼び出す。 +このプロシジャは通常は .BR select (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤«¤éÊÖ¤ë¤Î¤òÂԤäƤ¤¤ë¡£ +システムコールから返るのを待っている。 .LP .nf .BI "bool_t svc_sendreply(SVCXPRT *" xprt ", xdrproc_t " outproc \ ", char *" out ); .fi .IP -RPC ¥µ¡¼¥Ó¥¹ÇÛʬ¥ë¡¼¥Æ¥£¥ó¤Ë¤è¤Ã¤Æ¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¡¦¥³¡¼¥ë¤Î·ë²Ì¤ò -ÊÖ¤¹¤¿¤á¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ -¥Ñ¥é¥á¡¼¥¿¡¼ +RPC サービス配分ルーティンによってリモート・プロシジャ・コールの結果を +返すために呼び出される。 +パラメーター .I xprt -¤Ï¤½¤ÎÍ×µá¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿ÄÌ¿®¥Ï¥ó¥É¥ë¤Ç¤¢¤ë¡£ +はその要求に関連付けられた通信ハンドルである。 .I outproc -¤Ï·ë²Ì¤ò¥¨¥ó¥³¡¼¥É¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë XDR ¥ë¡¼¥Æ¥£¥ó¤Ç¤¢¤ë¡£ +は結果をエンコードするために使用する XDR ルーティンである。 .I out -¤Ï·ë²Ì¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +は結果のアドレスである。このルーティンは成功した場合は 1 を返す。 +失敗した場合はゼロを返す。 .LP .nf .BI "void svc_unregister(unsigned long " prognum ", unsigned long " versnum ); .fi .IP -ÇÛʬ¥ë¡¼¥Æ¥£¥ó¤«¤é +配分ルーティンから .RI [ prognum , versnum ] -¤ª¤è¤Ó +および .RI [ prognum , versnum , *\fR] -¤ÎÁȤ߹ç¤ï¤»¤«¤é¥Ý¡¼¥ÈÈÖ¹æ¤Ø¤Î¥Þ¥Ã¥Ô¥ó¥°¤òÁ´¤Æºï½ü¤¹¤ë¡£ +の組み合わせからポート番号へのマッピングを全て削除する。 .LP .nf .BI "void svcerr_auth(SVCXPRT *" xprt ", enum auth_stat " why ); .fi .IP -ǧ¾Ú¥¨¥é¡¼¤Ë¤è¤ê¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¡¦¥³¡¼¥ë¤Î¼Â¹Ô¤òµñÈݤµ¤ì¤¿ -¾ì¹ç¤Ë¥µ¡¼¥Ó¥¹ÇÛʬ¥ë¡¼¥Æ¥£¥ó¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ +認証エラーによりリモート・プロシジャ・コールの実行を拒否された +場合にサービス配分ルーティンによって呼び出される。 .LP .nf .BI "void svcerr_decode(SVCXPRT *" xprt ); .fi .IP -¥Ñ¥é¥á¡¼¥¿¤Î¥Ç¥³¡¼¥É¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ë -¥µ¡¼¥Ó¥¹ÇÛʬ¥ë¡¼¥Æ¥£¥ó¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ +パラメータのデコードに失敗した場合に +サービス配分ルーティンによって呼び出される。 .BR svc_getargs () -¤â»²¾È¤¹¤ë¤³¤È¡£ +も参照すること。 .LP .nf .BI "void svcerr_noproc(SVCXPRT *" xprt ); .fi .IP -Í×µá¤Î¤¢¤Ã¤¿¥×¥í¥·¥¸¥ãÈֹ椬¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë -¥µ¡¼¥Ó¥¹ÇÛʬ¥ë¡¼¥Æ¥£¥ó¤è¤ê¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ +要求のあったプロシジャ番号が実装されていない場合に +サービス配分ルーティンより呼び出される。 .LP .nf .BI "void svcerr_noprog(SVCXPRT *" xprt ); .fi .IP -RPC ¥Ñ¥Ã¥±¡¼¥¸¤ËÍ׵ᤵ¤ì¤¿¥×¥í¥°¥é¥à¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ -¥µ¡¼¥Ó¥¹¤Î¼ÂÁõ¤Ë¤ÏÄ̾¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏɬÍפʤ¤¡£ +RPC パッケージに要求されたプログラムが登録されていない場合に呼び出される。 +サービスの実装には通常、このルーティンは必要ない。 .LP .nf .BI "void svcerr_progvers(SVCXPRT *" xprt ); .fi .IP -RPC ¥Ñ¥Ã¥±¡¼¥¸¤ËÍ׵ᤵ¤ì¤¿¥Ð¡¼¥¸¥ç¥ó¤Î¥×¥í¥°¥é¥à¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë -¸Æ¤Ó½Ð¤µ¤ì¤ë¡£¥µ¡¼¥Ó¥¹¤Î¼ÂÁõ¤Ë¤ÏÄ̾¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏɬÍפʤ¤¡£ +RPC パッケージに要求されたバージョンのプログラムが登録されていない場合に +呼び出される。サービスの実装には通常、このルーティンは必要ない。 .LP .nf .BI "void svcerr_systemerr(SVCXPRT *" xprt ); .fi .IP -ÆÃÄê¤Î¥×¥í¥È¥³¥ë¤Ë¤è¤Ã¤Æ¥«¥Ð¡¼¤µ¤ì¤Æ¤¤¤Ê¥·¥¹¥Æ¥à¡¦¥¨¥é¡¼¤¬ -¸¡½Ð¤µ¤ì¤¿¾ì¹ç¤Ë¥µ¡¼¥Ó¥¹ÇÛʬ¥ë¡¼¥Æ¥£¥ó¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ -Î㤨¤Ð¡¢¥µ¡¼¥Ó¥¹¤¬¤½¤ì°Ê¾å¡¢µ­²±ÁõÃÖ¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¾ì¹ç¤Ë¤Ï -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +特定のプロトコルによってカバーされていなシステム・エラーが +検出された場合にサービス配分ルーティンによって呼び出される。 +例えば、サービスがそれ以上、記憶装置を割り当てることができない場合には +このルーティンが呼び出されるかもしれない。 .LP .nf .BI "void svcerr_weakauth(SVCXPRT *" xprt ); .fi .IP -ǧ¾Ú¥Ñ¥é¥á¡¼¥¿¤¬Â­¤ê¤Ê¤¤¤¿¤á¤Ë¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¡¦¥³¡¼¥ë¤Î¼Â¹Ô¤ò -µñÈݤµ¤ì¤¿¾ì¹ç¤Ë¥µ¡¼¥Ó¥¹ÇÛʬ¥ë¡¼¥Æ¥£¥ó¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï +認証パラメータが足りないためにリモート・プロシジャ・コールの実行を +拒否された場合にサービス配分ルーティンによって呼び出される。 +このルーティンは .B "svcerr_auth(xprt, AUTH_TOOWEAK)" -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .LP .nf .BI "SVCXPRT *svcfd_create(int " fd ", unsigned int " sendsize , .BI " unsigned int " recvsize ); .fi .IP -Ǥ°Õ¤Î¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¾å¤Ë¥µ¡¼¥Ó¥¹¤òºîÀ®¤¹¤ë¡£ -ŵ·¿Åª¤Ë¡¢¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ï -TCP ¤Î¤è¤¦¤Ê¥¹¥È¥ê¡¼¥à¡¦¥×¥í¥È¥³¥ë¤ÇÀܳ¤µ¤ì¤¿¥½¥±¥Ã¥È¤Ç¤¢¤ë¡£ +任意のオープンされたディスクリプター上にサービスを作成する。 +典型的に、ディスクリプターは +TCP のようなストリーム・プロトコルで接続されたソケットである。 .I sendsize -¤È +と .I recvsize -¤Ë¤ÏÁ÷¿®¥Ð¥Ã¥Õ¥¡¤È¼õ¿®¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ¤ò»ØÄꤹ¤ë¡£¤â¤·¥¼¥í¤¬»ØÄꤵ¤ì¤¿ -¾ì¹ç¤ÏŬÀڤʥǥե©¥ë¥È¤¬ÁªÂò¤µ¤ì¤ë¡£ +には送信バッファと受信バッファの大きさを指定する。もしゼロが指定された +場合は適切なデフォルトが選択される。 .LP .nf .BI "SVCXPRT *svcraw_create(void);" .fi .IP -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ïµ¼»÷ RPC ¥µ¡¼¥Ó¥¹ÄÌ¿®¤òÀ¸À®¤·¤Æ¡¢¤½¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£ -ÄÌ¿®¤Ï¼ÂºÝ¤Ë¤Ï¤½¤Î¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤¢¤ë¥Ð¥Ã¥Õ¥¡¤Ê¤Î¤Ç -Âбþ¤¹¤ë RPC ¥¯¥é¥¤¥¢¥ó¥È¤ÏƱ¤¸¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤¤¤ëɬÍפ¬¤¢¤ë¡£ +このルーティンは擬似 RPC サービス通信を生成して、そのポインターを返す。 +通信は実際にはそのプロセスのアドレス空間にあるバッファなので +対応する RPC クライアントは同じアドレス空間にいる必要がある。 .BR clntraw_create () -¤ò»²¾È¤¹¤ë¤³¤È¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ç -RPC ¤Î¥·¥ß¥å¥ì¡¼¥·¥ç¥ó¤ä¡¢¥«¡¼¥Í¥ë¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë±Æ¶Á¤µ¤ì¤º¤Ë±þÅú»þ´Ö¤Ê¤É¤Î -RPC ¥ª¡¼¥Ð¥Ø¥Ã¥É¤ò¼èÆÀ¤¬¤Ç¤­¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¼ºÇÔ¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +を参照すること。 +このルーティンで +RPC のシミュレーションや、カーネル・インターフェースに影響されずに応答時間などの +RPC オーバヘッドを取得ができる。このルーティンは失敗した場合は NULL を返す。 .LP .nf .BI "SVCXPRT *svctcp_create(int " sock ", unsigned int " send_buf_size , .BI " unsigned int " recv_buf_size ); .fi .IP -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï TCP/IP ¤Ë´ð¤Å¤¯ -RPC ¥µ¡¼¥Ó¥¹ÄÌ¿®¤òºîÀ®¤·¡¢¤½¤ì¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£ -ÄÌ¿®¤Ï¥½¥±¥Ã¥È +このルーティンは TCP/IP に基づく +RPC サービス通信を作成し、それへのポインターを返す。 +通信はソケット .I sock -¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤ë¡£ +に結びつけられる。 .I sock -¤Ï +は .B RPC_ANYSOCK -¤Ç¤âÎɤ¤¡£¤³¤Î¾ì¹ç¤Ï¿·¤·¤¤¥½¥±¥Ã¥È¤¬ºîÀ®¤µ¤ì¤ë¡£ -¤â¤·¥½¥±¥Ã¥È¤¬¥í¡¼¥«¥ë¤Ê TCP ¥Ý¡¼¥È¤Ë bind ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤¬Å¬Åö¤Ê¥Ý¡¼¥È¤Ë bind ¤¹¤ë¡£ -Êä´°¤µ¤ì¤¿¾ì¹ç¡¢\fIxprt\->xp_sock\fR ¤Ë¤ÏÄÌ¿®¤Î¥½¥±¥Ã¥È¡¦ -¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤¬¡¢\fIxprt\->xp_port\fR ¤Ë¤ÏÄÌ¿®¤Î¥Ý¡¼¥ÈÈֹ椬 -ÀßÄꤵ¤ì¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¼ºÇÔ¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ -TCP ¤Ë´ð¤Å¤¤¤¿ RPC ¤Ï¥Ð¥Ã¥Õ¥¡¤µ¤ì¤¿ I/O ¤ò»ÈÍѤ¹¤ë¤¿¤á¡¢ -¥æ¡¼¥¶¤Ï¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ¤ò»ØÄê¤Ç¤­¤ë¡£ -¥¼¥í¤ò»ØÄꤷ¤¿¾ì¹ç¤ÏŬÀڤʥǥե©¥ë¥È¤¬ÁªÂò¤µ¤ì¤ë¡£ +でも良い。この場合は新しいソケットが作成される。 +もしソケットがローカルな TCP ポートに bind されていない場合は、 +このルーティンが適当なポートに bind する。 +補完された場合、\fIxprt\->xp_sock\fR には通信のソケット・ +ディスクリプターが、\fIxprt\->xp_port\fR には通信のポート番号が +設定される。 +このルーティンは失敗した場合は NULL を返す。 +TCP に基づいた RPC はバッファされた I/O を使用するため、 +ユーザはバッファの大きさを指定できる。 +ゼロを指定した場合は適切なデフォルトが選択される。 .LP .nf .BI "SVCXPRT *svcudp_bufcreate(int " sock ", unsigned int " sendsize , .BI " unsigned int " recosize ); .fi .IP -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï UDP/IP ¤Ë´ð¤Å¤¤¤¿ RPC ¥µ¡¼¥Ó¥¹ÄÌ¿®¤òºîÀ®¤·¡¢ -¤½¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£ÄÌ¿®¤Ï¥½¥±¥Ã¥È +このルーティンは UDP/IP に基づいた RPC サービス通信を作成し、 +そのポインターを返す。通信はソケット .I sock -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤ë¡£ +に関連付けられる。 .I sock -¤Ï +は .B RPC_ANYSOCK -¤Ç¤âÎɤ¤¡£¤³¤Î¾ì¹ç¤Ï¿·¤·¤¤¥½¥±¥Ã¥È¤¬ºîÀ®¤µ¤ì¤ë¡£ -¥½¥±¥Ã¥È¤¬¥í¡¼¥«¥ë¤Î UDP ¥Ý¡¼¥È¤Ë bind ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏŬÅö¤Ê¥Ý¡¼¥È¤Ë bind ¤¹¤ë¡£ -Êä´°¤µ¤ì¤¿¾ì¹ç¡¢\fIxprt\->xp_sock\fR ¤ËÄÌ¿®¤Î¥½¥±¥Ã¥È¤Î -¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤¬¡¢\fIxprt\->xp_port\fR ¤ËÄÌ¿®¤Î¥Ý¡¼¥ÈÈֹ椬 -ÀßÄꤵ¤ì¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï NULL ¤òÊÖ¤¹¡£ +でも良い。この場合は新しいソケットが作成される。 +ソケットがローカルの UDP ポートに bind されていない場合には +このルーティンは適当なポートに bind する。 +補完された場合、\fIxprt\->xp_sock\fR に通信のソケットの +ディスクリプターが、\fIxprt\->xp_port\fR に通信のポート番号が +設定される。このルーティンは失敗した場合には NULL を返す。 .IP -¤³¤ì¤Ë¤è¤ê¥æ¡¼¥¶¤Ï UDP ¤Ë´ð¤Å¤¤¤¿ RPC ¥á¥Ã¥»¡¼¥¸¤Ç -»ÈÍѤǤ­¤ëÁ÷¿®¥Ñ¥±¥Ã¥È¤ª¤è¤Ó¼õ¿®¥Ñ¥±¥Ã¥È¤ÎºÇÂ祵¥¤¥º¤ò»ØÄê¤Ç¤­¤ë¡£ +これによりユーザは UDP に基づいた RPC メッセージで +使用できる送信パケットおよび受信パケットの最大サイズを指定できる。 .LP .nf .BI "SVCXPRT *svcudp_create(int " sock ); .fi .IP -Á÷¿®¥Ñ¥±¥Ã¥È¤È¼õ¿®¥Ñ¥±¥Ã¥È¤Î¥µ¥¤¥º¤òƱ¤¸¥Ç¥Õ¥©¥ë¥È¤ÎÃÍ \fISZ\fP ¤Ë»ØÄꤷ¤¿ -\fIsvcudp_bufcreate(sock,SZ,SZ)\fP ¤ÈÅù²Á¤Ç¤¢¤ë¡£ +送信パケットと受信パケットのサイズを同じデフォルトの値 \fISZ\fP に指定した +\fIsvcudp_bufcreate(sock,SZ,SZ)\fP と等価である。 .LP .nf .BI "bool_t xdr_accepted_reply(XDR *" xdrs ", struct accepted_reply *" ar ); .fi .IP -RPC ±þÅú¥á¥Ã¥»¡¼¥¸¤ò¥¨¥ó¥³¡¼¥É¤¹¤ë¤Î¤Ë»ÈÍѤ¹¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï -RPC ¥Ñ¥Ã¥±¡¼¥¸¤òÍѤ¤¤º¤Ë -RPC-·Á¼°¤Î¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤·¤è¤¦¤È¤¹¤ë¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£ +RPC 応答メッセージをエンコードするのに使用する。このルーティンは +RPC パッケージを用いずに +RPC-形式のメッセージを作成しようとする場合に便利である。 .LP .nf .BI "bool_t xdr_authunix_parms(XDR *" xdrs ", struct authunix_parms *" aupp ); .fi .IP -UNIX ·Á¼°¤Î¾ÚÌÀ½ñ¤òµ­½Ò¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï -RPC ǧ¾Ú¥Ñ¥Ã¥±¡¼¥¸¤ò»ÈÍѤ»¤º¤Ë¤³¤ì¤é¤Î¾ÚÌÀ½ñ¤òºîÀ®¤·¤è¤¦¤È¤¹¤ë¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£ +UNIX 形式の証明書を記述するために使用する。このルーティンは +RPC 認証パッケージを使用せずにこれらの証明書を作成しようとする場合に便利である。 .LP .nf .BI "void xdr_callhdr(XDR *" xdrs ", struct rpc_msg *" chdr ); .fi .IP -RPC ¸Æ¤Ó½Ð¤·¤Î¥Ø¥Ã¥À¡¼¡¦¥á¥Ã¥»¡¼¥¸¤òµ­½Ò¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï RPC ¥Ñ¥Ã¥±¡¼¥¸¤ò»ÈÍѤ»¤º¤Ë -RPC-·Á¼°¤Î¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤·¤è¤¦¤È¤¹¤ë¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£ +RPC 呼び出しのヘッダー・メッセージを記述するために使用する。 +このルーティンは RPC パッケージを使用せずに +RPC-形式のメッセージを作成しようとする場合に便利である。 .LP .nf .BI "bool_t xdr_callmsg(XDR *" xdrs ", struct rpc_msg *" cmsg ); .fi .IP -RPC ¸Æ¤Ó½Ð¤·¥á¥Ã¥»¡¼¥¸¤òµ­½Ò¤¹¤ë¤Î¤Ë»ÈÍѤ¹¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï RPC ¥Ñ¥Ã¥±¡¼¥¸¤ò»ÈÍѤ»¤º¤Ë -RPC-·Á¼°¤Î¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤·¤è¤¦¤È¤¹¤ë¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£ +RPC 呼び出しメッセージを記述するのに使用する。 +このルーティンは RPC パッケージを使用せずに +RPC-形式のメッセージを作成しようとする場合に便利である。 .LP .nf .BI "bool_t xdr_opaque_auth(XDR *" xdrs ", struct opaque_auth *" ap ); .fi .IP -PRC ǧ¾Ú¾ðÊó¥á¥Ã¥»¡¼¥¸¤òµ­½Ò¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï RPC ¥Ñ¥Ã¥±¡¼¥¸¤ò»ÈÍѤ»¤º¤Ë -RPC-·Á¼°¤Î¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤·¤è¤¦¤È¤¹¤ë¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£ +PRC 認証情報メッセージを記述するために使用する。 +このルーティンは RPC パッケージを使用せずに +RPC-形式のメッセージを作成しようとする場合に便利である。 .LP .nf .BI "bool_t xdr_pmap(XDR *" xdrs ", struct pmap *" regs ); .fi .IP -³Æ¼ï¤Î +各種の .B portmap -¥×¥í¥·¥¸¥ã¤Ø¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ò³°ÉôŪ¤Ëµ­½Ò¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï +プロシジャへのパラメーターを外部的に記述するために使用する。 +このルーティンは .B pmap -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»ÈÍѤ»¤º¤Ë¡¢¤³¤ì¤é¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ò -ºîÀ®¤·¤¿¤¤¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£ +インターフェースを使用せずに、これらのパラメーターを +作成したい場合に便利である。 .LP .nf .BI "bool_t xdr_pmaplist(XDR *" xdrs ", struct pmaplist **" rp ); .fi .IP -¥Ý¡¼¥È¤Î¥Þ¥Ã¥Ô¥ó¥°¤Î¥ê¥¹¥È¤ò³°ÉôŪ¤Ëµ­½Ò¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï +ポートのマッピングのリストを外部的に記述するために使用する。 +このルーティンは .B pmap -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»ÈÍѤ»¤º¤Ë¡¢¤³¤ì¤é¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ò -ºîÀ®¤·¤¿¤¤¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£ +インターフェースを使用せずに、これらのパラメーターを +作成したい場合に便利である。 .LP .nf .BI "bool_t xdr_rejected_reply(XDR *" xdrs ", struct rejected_reply *" rr ); .fi .IP -RPC ±þÅú¥á¥Ã¥»¡¼¥¸¤òµ­½Ò¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï -RPC ¥Ñ¥Ã¥±¡¼¥¸¤ò»ÈÍѤ»¤º¤Ë¡¢ -RPC-·Á¼°¤Î¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤·¤¿¤¤¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£ +RPC 応答メッセージを記述するために使用する。このルーティンは +RPC パッケージを使用せずに、 +RPC-形式のメッセージを作成したい場合に便利である。 .LP .nf .BI "bool_t xdr_replymsg(XDR *" xdrs ", struct rpc_msg *" rmsg ); .fi .IP -RPC ±þÅú¥á¥Ã¥»¡¼¥¸¤òµ­½Ò¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï RPC ¥Ñ¥Ã¥±¡¼¥¸¤ò»ÈÍѤ»¤º¤Ë¡¢ -RPC ·Á¼°¤Î¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤·¤¿¤¤¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£ +RPC 応答メッセージを記述するために使用する。 +このルーティンは RPC パッケージを使用せずに、 +RPC 形式のメッセージを作成したい場合に便利である。 .LP .nf .BI "void xprt_register(SVCXPRT *" xprt ); .fi .IP -RPC ¥µ¡¼¥Ó¥¹ÄÌ¿®¥Ï¥ó¥É¥ë¤òÀ¸À®¤·¤¿¸å¤Ë¡¢¤½¤ì¤é¼«¿È¤ò -RPC ¥µ¡¼¥Ó¥¹¡¦¥Ñ¥Ã¥±¡¼¥¸¤ËÅÐÏ¿¤¹¤ëɬÍפ¬¤¢¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÂç°èÊÑ¿ô +RPC サービス通信ハンドルを生成した後に、それら自身を +RPC サービス・パッケージに登録する必要がある。 +このルーティンは大域変数 .I svc_fds -¤ò½¤Àµ¤¹¤ë¡£¥µ¡¼¥Ó¥¹¤Î¼ÂÁõ¼Ô¤ÏÄ̾¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏɬÍפʤ¤¡£ +を修正する。サービスの実装者は通常、このルーティンは必要ない。 .LP .nf .BI "void xprt_unregister(SVCXPRT *" xprt ); .fi .IP -RPC ¥µ¡¼¥Ó¥¹ÄÌ¿®¥Ï¥ó¥É¥ë¤òÇ˲õ¤¹¤ëÁ°¤Ë¡¢¤½¤ì¤ò -RPC ÄÌ¿®¥Ñ¥Ã¥±¡¼¥¸¤«¤éÅÐÏ¿²ò½ü¤¹¤ëɬÍפ¬¤¢¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÂç°èÊÑ¿ô +RPC サービス通信ハンドルを破壊する前に、それを +RPC 通信パッケージから登録解除する必要がある。 +このルーティンは大域変数 .I svc_fds -¤ò½¤Àµ¤¹¤ë¡£¥µ¡¼¥Ó¥¹¤Î¼ÂÁõ¼Ô¤ÏÄ̾¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏɬÍפʤ¤¡£ -.SH ´ØÏ¢¹àÌÜ -.\" º£¸½ºß¤Ï¡¢¤³¤ÎÇÛÉÛʪ (LDP_man-pages) ¤Ë¤Ï rpc_secure.3 ¤ÏÆþ¤Ã¤Æ¤¤¤Ê¤¤ +を修正する。サービスの実装者は通常、このルーティンは必要ない。 +.SH 関連項目 +.\" 今現在は、この配布物 (LDP_man-pages) には rpc_secure.3 は入っていない .\" -- MTK, 19 Sep 05 .\" .BR rpc_secure (3), .BR xdr (3) .br -°Ê²¼¤Î¥Þ¥Ë¥å¥¢¥ë: +以下のマニュアル: .RS Remote Procedure Calls: Protocol Specification .br diff --git a/release/man3/rpmatch.3 b/release/man3/rpmatch.3 index b3ee516b..2a8bba9b 100644 --- a/release/man3/rpmatch.3 +++ b/release/man3/rpmatch.3 @@ -28,9 +28,9 @@ .\" Translated 2006-07-31, Akihiro MOTOKI .\" .TH RPMATCH 3 2007-07-26 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -rpmatch \- ¼ÁÌä¤Ø¤Î±þÅú¤¬¹ÎÄ꤫ÈÝÄ꤫¤òȽÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +rpmatch \- 質問への応答が肯定か否定かを判定する +.SH 書式 .nf .B #include @@ -38,84 +38,84 @@ rpmatch \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR rpmatch (): _SVID_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR rpmatch () -¤Ï yes/no ¤Î¼ÁÌä¤ËÂФ¹¤ë¥æ¡¼¥¶¤«¤é¤Î±þÅú¤ò½èÍý¤¹¤ë¡£ -¹ñºÝ²½ (I18N) ¤ËÂбþ¤·¤Æ¤¤¤ë¡£ +は yes/no の質問に対するユーザからの応答を処理する。 +国際化 (I18N) に対応している。 .I response -¤Ë¤Ï¥æ¡¼¥¶¤«¤é¤Î±þÅú¤ò³ÊǼ¤·¤¿ NULL ½ªÃ¼Ê¸»úÎó¤¬Æþ¤Ã¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ -¤¿¤¤¤Æ¤¤¤Ï¡¢ +にはユーザからの応答を格納した NULL 終端文字列が入っている必要がある。 +たいていは、 .BR fgets (3) -¤ä +や .BR getline (3) -¤Ç¼è¤ê¹þ¤ó¤À¤â¤Î¤Ç¤¢¤í¤¦¡£ +で取り込んだものであろう。 -¥×¥í¥°¥é¥à¤¬ +プログラムが .BR setlocale (3) -¤ò¸Æ¤Ó½Ð¤·¤Æ´Ä¶­ÊÑ¿ô¤ÎÊѹ¹¤òÍ­¸ú¤Ë¤·¤¿¾ì¹ç¡¢ -´Ä¶­ÊÑ¿ô \fBLANG\fP, \fBLC_MESSAGES\fP, \fBLC_ALL\fP ¤¬ -¥æ¡¼¥¶¤Î¸À¸ìÀßÄê¤È¤·¤Æ¹Í褵¤ì¤ë¡£ +を呼び出して環境変数の変更を有効にした場合、 +環境変数 \fBLANG\fP, \fBLC_MESSAGES\fP, \fBLC_ALL\fP が +ユーザの言語設定として考慮される。 -¥í¥±¡¼¥ë¤Ë´Ø¤ï¤é¤º¡¢\fB^[Yy]\fP ¤Ë¥Þ¥Ã¥Á¤¹¤ë±þÅú¤Ï¾ï¤Ë¹ÎÄê¤À¤È²ò¼á¤µ¤ì¡¢ -\fB^[Nn]\fP ¤Ë¥Þ¥Ã¥Á¤¹¤ë±þÅú¤Ï¾ï¤ËÈÝÄê¤À¤È²ò¼á¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +ロケールに関わらず、\fB^[Yy]\fP にマッチする応答は常に肯定だと解釈され、 +\fB^[Nn]\fP にマッチする応答は常に否定だと解釈される。 +.SH 返り値 .I response -¤ò¸¡ºº¤·¤¿¸å¡¢ +を検査した後、 .BR rpmatch () -¤ÏÈÝÄêŪ¤Ê±þÅú ("no") ¤Èǧ¼±¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤·¡¢ -¹ÎÄêŪ¤Ê±þÅú ("yes") ¤Èǧ¼±¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ +は否定的な応答 ("no") と認識した場合は 0 を返し、 +肯定的な応答 ("yes") と認識した場合は 1 を返す。 .I response -¤ÎÃͤò²ò¼á¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -ÊÖ¤êÃÍ \-1 ¤¬Ê֤俾ì¹ç¡¢ÆþÎϤ¬ÉÔÀµ¤Ç¤¢¤Ã¤¿¤«¡¢Â¾¤Î²¿¤é¤«¤Î¥¨¥é¡¼¤¬ -¤¢¤Ã¤¿¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ÊÖ¤êÃͤ¬ 0 °Ê³°¤«¤É¤¦¤«¤ò³Îǧ¤¹¤ë¤À¤±¤Ç¤Ï -½½Ê¬¤Ç¤Ï¤Ê¤¤¡£ +の値を解釈できなかった場合は \-1 を返す。 +.SH エラー +返り値 \-1 が返った場合、入力が不正であったか、他の何らかのエラーが +あったことを意味する。返り値が 0 以外かどうかを確認するだけでは +十分ではない。 .BR rpmatch () -¤Ï¡¢ +は、 .BR regcomp (3) -¤ä +や .BR regexec (3) -¤¬¼ºÇÔ¤¹¤ëÍýͳ¤Î¤É¤ì¤«¤Ç¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ë¡£ -¥¨¥é¡¼¤Î¸¶°ø¤ò +が失敗する理由のどれかで失敗することがある。 +エラーの原因を .I errno -¤ä¾¤Î²¿¤«¤ÇÃΤ뤳¤È¤Ï¤Ç¤­¤Ê¤¤¤¬¡¢ +や他の何かで知ることはできないが、 .I errno -¤ÏÀµµ¬É½¸½¥¨¥ó¥¸¥ó¤Î¼ºÇԤθ¶°ø¤ò¼¨¤·¤Æ¤¤¤ë -(⤷¡¢¤³¤Î¥±¡¼¥¹¤È +は正規表現エンジンの失敗の原因を示している +(但し、このケースと .I response -¤ÎÃͤòǧ¼±¤Ç¤­¤º¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤ò¶èÊ̤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤)¡£ -.SH ½àµò +の値を認識できずに失敗した場合を区別することはできない)。 +.SH 準拠 .BR rpmatch () -¤Ï¤É¤Îɸ½à¤Ç¤âɬ¿Ü¤È¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤¬¡¢ -Linux °Ê³°¤Ë¤âÍøÍѤǤ­¤ë¥·¥¹¥Æ¥à¤â¤¤¤¯¤Ä¤«¤Ï¸ºß¤¹¤ë¡£ -.\" ¾¯¤Ê¤¯¤È¤â AIX 5.1 ¤È FreeBSD 6.0 ¤Ç¤ÏÍøÍѤǤ­¤ë¡£ -.SH ¥Ð¥° +はどの標準でも必須となっていないが、 +Linux 以外にも利用できるシステムもいくつかは存在する。 +.\" 少なくとも AIX 5.1 と FreeBSD 6.0 では利用できる。 +.SH バグ .BR rpmatch () -¤Î¼ÂÁõ¤Ï +の実装は .I response -¤ÎºÇ½é¤Î 1 ʸ»ú¤À¤±¤ò¸«¤Æ¤¤¤ë¤è¤¦¤Ç¤¢¤ë¡£¤½¤Î·ë²Ì¡¢ -"nyes" ¤Ï 0 ¤òÊÖ¤·¡¢ -"ynever; not in a million years" ¤Ï 1 ¤òÊÖ¤¹¤³¤È¤Ë¤Ê¤ë¡£ -ÆþÎÏʸ»úÎó¤ò¤â¤Ã¤È¸·Ì©¤Ë²ò¼á¤·¤¿Êý¤¬¤è¤¤¤À¤í¤¦¡£ -Î㤨¤Ð¡¢ +の最初の 1 文字だけを見ているようである。その結果、 +"nyes" は 0 を返し、 +"ynever; not in a million years" は 1 を返すことになる。 +入力文字列をもっと厳密に解釈した方がよいだろう。 +例えば、 .RB ( regex (7) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë³ÈÄ¥Àµµ¬É½¸½¤ò»È¤Ã¤Æ) -.BR ^([yY]|yes|YES)$ " ¤ä " ^([nN]|no|NO)$ -¤Ç²ò¼á¤¹¤ë¤Ê¤É¡£ -.SH Îã -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ç -»ØÄꤵ¤ì¤¿Ê¸»úÎó¤ò +で説明されている拡張正規表現を使って) +.BR ^([yY]|yes|YES)$ " や " ^([nN]|no|NO)$ +で解釈するなど。 +.SH 例 +以下のプログラムは、コマンドライン引き数で +指定された文字列を .BR rpmatch () -¤ËÅϤ·¤¿¾ì¹ç¤Î·ë²Ì¤òɽ¼¨¤¹¤ë¡£ +に渡した場合の結果を表示する。 .nf #define _SVID_SOURCE @@ -137,7 +137,7 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fgets (3), .BR getline (3), .BR nl_langinfo (3), diff --git a/release/man3/rtime.3 b/release/man3/rtime.3 index 00c42dc2..1f5df0ea 100644 --- a/release/man3/rtime.3 +++ b/release/man3/rtime.3 @@ -11,78 +11,78 @@ .\" by Yuichi SATO .\" .TH RTIME 3 2010-02-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -rtime \- ¥ê¥â¡¼¥È¥Þ¥·¥ó¤«¤é»þ¹ï¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +rtime \- リモートマシンから時刻を取得する +.SH 書式 .nf .B "#include " .sp .BI "int rtime(struct sockaddr_in *" addrp ", struct rpc_timeval *" timep , .BI " struct rpc_timeval *" timeout ); .fi -.SH ÀâÌÀ -¤³¤Î´Ø¿ô¤Ï RFC\ 868 ¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¥¿¥¤¥à¥µ¡¼¥Ð¥×¥í¥È¥³¥ë¤ò»ÈÍѤ·¡¢ -¥ê¥â¡¼¥È¥Þ¥·¥ó¤«¤é»þ¹ï¤ò¼èÆÀ¤¹¤ë¡£ +.SH 説明 +この関数は RFC\ 868 に記述されているタイムサーバプロトコルを使用し、 +リモートマシンから時刻を取得する。 .LP -¥¿¥¤¥à¥µ¡¼¥Ð¥×¥í¥È¥³¥ë¤Ï 00:00:00 UTC, 1 Jan 1900 ¤«¤éÉÿô¤òÄ󶡤¹¤ë¤Î¤Ç¡¢ -¤³¤Î´Ø¿ô¤ÏŬÀÚ¤ÊÄê¿ôÃͤò°ú¤¯¤³¤È¤Ë¤è¤ê¡¢ -Ä󶡤µ¤ì¤¿Ãͤò Unix ¤Ë¤ª¤±¤ë»þ¹ïµª¸µ (1970-01-01 00:00:00 +0000 (UTC)) -¤«¤éÉÿô¤ËÊÑ´¹¤¹¤ë¡£ +タイムサーバプロトコルは 00:00:00 UTC, 1 Jan 1900 から秒数を提供するので、 +この関数は適切な定数値を引くことにより、 +提供された値を Unix における時刻紀元 (1970-01-01 00:00:00 +0000 (UTC)) +から秒数に変換する。 .LP .I timeout -¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢udp/time ¥½¥±¥Ã¥È (¥Ý¡¼¥È 37) ¤¬»ÈÍѤµ¤ì¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢tcp/time ¥½¥±¥Ã¥È (¥Ý¡¼¥È 37) ¤¬»ÈÍѤµ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï¡¢0 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ÆÀ¤é¤ì¤¿ 32 ¥Ó¥Ã¥È¤Î»þ¹ïÃÍ¤Ï +が NULL でない場合、udp/time ソケット (ポート 37) が使用される。 +それ以外の場合、tcp/time ソケット (ポート 37) が使用される。 +.SH 返り値 +成功した場合は、0 が返されて、得られた 32 ビットの時刻値は .I timep\->tv_sec -¤Ë³ÊǼ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +に格納される。 +エラーの場合は、\-1 が返されて、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -ÆâÉô¤Ç»ÈÍѤ·¤Æ¤¤¤ë´Ø¿ô +が適切に設定される。 +.SH エラー +内部で使用している関数 .RB ( sendto (2), .BR poll (2), .BR recvfrom (2), .BR connect (2), .BR read (2)) -¤ÎÁ´¤Æ¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¹¹¤Ë¼¡¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë²ÄǽÀ­¤¬¤¢¤ë: +の全てのエラーが起こる可能性がある。 +更に次のエラーが起こる可能性がある: .TP .B EIO -ÊÖ¤µ¤ì¤¿¥Ð¥¤¥È¿ô¤¬ 4 ¥Ð¥¤¥È¤Ç¤Ê¤¤¡£ +返されたバイト数が 4 バイトでない。 .TP .B ETIMEDOUT -timeout ¤ÇÄêµÁ¤µ¤ì¤¿ÂÔ¤Á»þ´Ö¤Î´ü¸Â¤¬Àڤ줿¡£ -.SH Ãí°Õ -IPv4 ¤Î¤ß¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +timeout で定義された待ち時間の期限が切れた。 +.SH 注意 +IPv4 のみがサポートされている。 .LP .I in.timed -¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤Ã¤Æ¤Ï TCP ¤·¤«¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¤â¤Î¤â¤¢¤ë¡£ +のバージョンによっては TCP しかサポートしていないものもある。 .I use_tcp -¤ò 1 ¤ËÀßÄꤷ¤Æ¡¢Îã¤Ë¤¢¤ë¥×¥í¥°¥é¥à¤ò»î¤¹¤³¤È¡£ +を 1 に設定して、例にあるプログラムを試すこと。 .LP -libc5 ¤Ï¥×¥í¥È¥¿¥¤¥× +libc5 はプロトタイプ .br int rtime(struct sockaddr_in *, struct timeval *, struct timeval *); .br -¤ò»È¤¤¡¢ +を使い、 .I -¤ÎÂå¤ï¤ê¤Ë +の代わりに .I -¤òɬÍפȤ¹¤ë¡£ -.SH ¥Ð¥° -glibc 2.2.5 °ÊÁ°¤Î +を必要とする。 +.SH バグ +glibc 2.2.5 以前の .BR rtime () -¤Ï¡¢64 ¥Ó¥Ã¥È¥Þ¥·¥ó¤ÇÀµ³Î¤ËÆ°ºî¤·¤Ê¤¤¡£ -.SH Îã -¤³¤ÎÎã¤Ç¤Ï¥Ý¡¼¥È 37 ¤¬¥¢¥Ã¥×¤µ¤ì¤Æ¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ +は、64 ビットマシンで正確に動作しない。 +.SH 例 +この例ではポート 37 がアップされてオープンされている必要がある。 .I /etc/inetd.conf -¤Î time ¥¨¥ó¥È¥ê¤¬¥³¥á¥ó¥È¥¢¥¦¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò³Îǧ¤·¤Æ¤Û¤·¤¤¡£ +の time エントリがコメントアウトされていないことを確認してほしい。 .br -¤³¤Î¥×¥í¥°¥é¥à¤Ï "linux" ¤È¤¤¤¦¥³¥ó¥Ô¥å¡¼¥¿¤ËÀܳ¤¹¤ë¡£ -"localhost" ¤ò»È¤Ã¤¿¾ì¹ç¤ÏÆ°ºî¤·¤Ê¤¤¡£ -·ë²Ì¤Ï¥³¥ó¥Ô¥å¡¼¥¿ "linux" ¤Î¥í¡¼¥«¥ë»þ¹ï¤Ç¤¢¤ë¡£ +このプログラムは "linux" というコンピュータに接続する。 +"localhost" を使った場合は動作しない。 +結果はコンピュータ "linux" のローカル時刻である。 .sp .nf #include @@ -119,7 +119,7 @@ main(void) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .\" .BR netdate (1), .BR ntpdate (1), .\" .BR rdate (1), diff --git a/release/man3/rtnetlink.3 b/release/man3/rtnetlink.3 index 3c09bb34..2eefb294 100644 --- a/release/man3/rtnetlink.3 +++ b/release/man3/rtnetlink.3 @@ -11,12 +11,12 @@ .\" by Shouichi Saito .\" Proofed Fri Aug 20 1999 by NAKANO Takeo .\" -.\"WORD: running length ¼ÂÆ°»þ¤ÎŤµ +.\"WORD: running length 実動時の長さ .\" .TH RTNETLINK 3 2010-01-11 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -rtnetlink \- rtnetlink ¥á¥Ã¥»¡¼¥¸¤òÁàºî¤¹¤ë¥Þ¥¯¥í -.SH ½ñ¼° +.SH 名前 +rtnetlink \- rtnetlink メッセージを操作するマクロ +.SH 書式 .B #include .br .B #include @@ -40,57 +40,57 @@ rtnetlink \- rtnetlink .BI "unsigned int RTA_LENGTH(unsigned int " length ); .sp .BI "unsigned int RTA_SPACE(unsigned int "length ); -.SH ÀâÌÀ -Á´¤Æ¤Î +.SH 説明 +全ての .BR rtnetlink (7) -¥á¥Ã¥»¡¼¥¸¤Ï +メッセージは .BR netlink (7) -¥á¥Ã¥»¡¼¥¸¥Ø¥Ã¥À¤ÈÄɲðÀ­¤«¤é¤Ê¤ë¡£ -°À­¤ÎÁàºî¤Ï¡¢É¬¤º¤³¤³¤Ëµó¤²¤¿¥Þ¥¯¥í¤òÄ̤·¤Æ¹Ô¤¦¤Ù¤­¤Ç¤¢¤ë¡£ +メッセージヘッダと追加属性からなる。 +属性の操作は、必ずここに挙げたマクロを通して行うべきである。 .PP .BI RTA_OK( rta ", " attrlen ) -¤Ï +は .I rta -¤¬Í­¸ú¤Ê¥ë¡¼¥Æ¥£¥ó¥°Â°À­¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ì¤Ð¿¿¤òÊÖ¤¹¡£ +が有効なルーティング属性へのポインタであれば真を返す。 .I attrlen -¤Ï°À­¥Ð¥Ã¥Õ¥¡¤Î¼ÂƯ»þ¤ÎŤµ (running length) ¤Ç¤¢¤ë¡£ -¿¿¤Ç¤Ê¤±¤ì¤Ð¡¢Î㤨 +は属性バッファの実働時の長さ (running length) である。 +真でなければ、例え .I attrlen -¤¬¥¼¥í¤Ç¤Ê¤¯¤Æ¤â¡¢ -¥á¥Ã¥»¡¼¥¸Ãæ¤Ë¤Ï¤â¤¦¤½¤ì°Ê¾å°À­¤Ï̵¤¤¤È¹Í¤¨¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +がゼロでなくても、 +メッセージ中にはもうそれ以上属性は無いと考えなければならない。 .PP .BI RTA_DATA( rta ) -¤Ï¤³¤Î°À­¥Ç¡¼¥¿¤ÎÀèƬ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +はこの属性データの先頭へのポインタを返す。 .PP .BI RTA_PAYLOAD( rta ) -¤Ï¤³¤Î°À­¥Ç¡¼¥¿¤ÎŤµ¤òÊÖ¤¹¡£ +はこの属性データの長さを返す。 .PP .BI RTA_NEXT( rta ", " attrlen ) -¤Ï +は .I rta -¤Î¼¡¤Ë¤¢¤ë°À­¤ò¼èÆÀ¤¹¤ë¡£ -¤³¤Î¥Þ¥¯¥í¤ò¸Æ¤Ö¤È +の次にある属性を取得する。 +このマクロを呼ぶと .I attrlen -¤¬¹¹¿·¤µ¤ì¤ë¡£ +が更新される。 .B RTA_OK -¤ò»È¤Ã¤Æ¡¢ÊÖ¤µ¤ì¤¿¥Ý¥¤¥ó¥¿¤¬Àµ¤·¤¤¤«¤ò¥Á¥§¥Ã¥¯¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +を使って、返されたポインタが正しいかをチェックすべきである。 .PP .BI RTA_LENGTH( len ) -¤Ï +は .I len -¥Ð¥¤¥È¤Î¥Ç¡¼¥¿ + ¥Ø¥Ã¥À¤ËɬÍפÊŤµ¤òÊÖ¤¹¡£ +バイトのデータ + ヘッダに必要な長さを返す。 .PP .BI RTA_SPACE( len ) -¤Ï +は .I len -¥Ð¥¤¥È¤Î¥Ç¡¼¥¿¤ò»ý¤Ä¥á¥Ã¥»¡¼¥¸¤ËɬÍפȤµ¤ì¤ëÍÆÎ̤òÊÖ¤¹¡£ -.SH ½àµò -¤³¤ì¤é¤Î¥Þ¥¯¥í¤ÏÈóɸ½à¤Ç¡¢Linux ¤Ç¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH ¥Ð¥° -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Ï´°Á´¤Ç¤Ï¤Ê¤¤¡£ -.SH Îã +バイトのデータを持つメッセージに必要とされる容量を返す。 +.SH 準拠 +これらのマクロは非標準で、Linux での拡張である。 +.SH バグ +このマニュアルは完全ではない。 +.SH 例 .\" FIXME ? would be better to use libnetlink in the EXAMPLE code here -¥Ç¥Ð¥¤¥¹¤Î MTU ¤ò¥»¥Ã¥È¤¹¤ë rtnetlink ¥á¥Ã¥»¡¼¥¸¤òÀ¸À®¤¹¤ë +デバイスの MTU をセットする rtnetlink メッセージを生成する .nf #include @@ -123,7 +123,7 @@ rtnetlink \- rtnetlink memcpy(RTA_DATA(rta), &mtu, sizeof(mtu)); send(rtnetlink_sk, &req, req.nh.nlmsg_len); .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR netlink (3), .BR netlink (7), .BR rtnetlink (7) diff --git a/release/man3/scalb.3 b/release/man3/scalb.3 index 43a188e6..802dc5e9 100644 --- a/release/man3/scalb.3 +++ b/release/man3/scalb.3 @@ -29,9 +29,9 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH SCALB 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -scalb, scalbf, scalbl \- ÉâÆ°¾®¿ôÅÀ¿ô¤ËÀ°¿ô¤Ç¤¢¤ë´ð¿ô¤ÎÎß¾è¤ò³Ý¤±¤ë (ÇÑ»ßͽÄê) -.SH ½ñ¼° +.SH 名前 +scalb, scalbf, scalbl \- 浮動小数点数に整数である基数の累乗を掛ける (廃止予定) +.SH 書式 .B #include .sp .BI "double scalb(double " x ", double " exp ); @@ -40,12 +40,12 @@ scalb, scalbf, scalbl \- .br .BI "long double scalbl(long double " x ", double " exp ); .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -61,130 +61,130 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 600 .RE .ad b -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤ÏºÇ½é¤Î°ú¤­¿ô +.SH 説明 +これらの関数は最初の引き数 .I x -¤Ë +に .B FLT_RADIX -¤Î +の .I exp -¾è¤ò³Ý¤±¤ë +乗を掛ける .RB ( FLT_RADIX -¤Ï¤ª¤½¤é¤¯ 2 ¤Ç¤¢¤ë)¡£¤Ä¤Þ¤ê¡¢°Ê²¼¤Î¼°¤ÎÃͤòÊÖ¤¹¡£ +はおそらく 2 である)。つまり、以下の式の値を返す。 .nf x * FLT_RADIX ** exp .fi .B FLT_RADIX -¤ÎÄêµÁ¤Ï +の定義は .I -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤³¤È¤ÇÆÀ¤é¤ì¤ë¡£ -.\" /usr/include ¤Ç¤Ï¤Ê¤¯¡¢gcc ¤Î lib ¤Ë¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï \fIx\fP * \fBFLT_RADIX\fP ** \fIexp\fP ¤òÊÖ¤¹¡£ +をインクルードすることで得られる。 +.\" /usr/include ではなく、gcc の lib にある。 +.SH 返り値 +成功すると、これらの関数は \fIx\fP * \fBFLT_RADIX\fP ** \fIexp\fP を返す。 .I x -¤« +か .I exp -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤Ç +が正の無限大 (負の無限大) で .I exp -¤¬Éé¤Î̵¸ÂÂç¤Ç¤Ê¤¤¾ì¹ç¡¢Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が負の無限大でない場合、正の無限大 (負の無限大) が返される。 .I x -¤¬ +0 (\-0) ¤Ç +が +0 (\-0) で .I exp -¤¬Àµ¤Î̵¸ÂÂç¤Ç¤Ê¤¤¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大でない場合、+0 (\-0) が返される。 .I x -¤¬¥¼¥í¤Ç +がゼロで .I exp -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ -NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大の場合、領域エラー (domain error) が発生し、 +NaN が返される。 .I x -¤¬Ìµ¸ÂÂç¤Ç +が無限大で .I exp -¤¬Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ -NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が負の無限大の場合、領域エラー (domain error) が発生し、 +NaN が返される。 -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ -ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +結果がオーバーフローする場合、 +範囲エラー (range error) が発生し、 +各関数はそれぞれ .BR HUGE_VAL , .BR HUGE_VALF , .BR HUGE_VALL -¤òÊÖ¤¹¡£Éä¹æ¤Ï +を返す。符号は .I x -¤ÈƱ¤¸¤Ë¤Ê¤ë¡£ +と同じになる。 -·ë²Ì¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï 0 ¤òÊÖ¤¹¡£Éä¹æ¤Ï +結果がアンダーフローする場合、範囲エラーが発生し、 +各関数は 0 を返す。符号は .I x -¤ÈƱ¤¸¤Ë¤Ê¤ë¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +と同じになる。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬ 0 ¤Ç \fIexp\fP ¤¬Àµ¤Î̵¸ÂÂç¡¢\ -¤Þ¤¿¤Ï \fIx\fP ¤¬Àµ¤Î̵¸ÂÂç¤Ç \fIexp\fP ¤¬Éé¤Î̵¸ÂÂç +領域エラー (domain error): \fIx\fP が 0 で \fIexp\fP が正の無限大、\ +または \fIx\fP が正の無限大で \fIexp\fP が負の無限大 .\" .I errno .\" is set to .\" .BR EDOM . -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP -ÈÏ°Ï¥¨¥é¡¼ (range error)¡¢¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ +範囲エラー (range error)、オーバーフロー .\" .I errno .\" is set to .\" .BR ERANGE . -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP -ÈÏ°Ï¥¨¥é¡¼ (range error)¡¢¥¢¥ó¥À¡¼¥Õ¥í¡¼ +範囲エラー (range error)、アンダーフロー .\" .I errno .\" is set to .\" .BR ERANGE . -¥¢¥ó¥À¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +アンダーフロー浮動小数点例外 .RB ( FE_UNDERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6803 .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6804 -.SH ½àµò +.SH 準拠 .BR scalb () -¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¤¬¡¢ÇÑ»ßͽÄê¤È¤µ¤ì¤Æ¤¤¤ë¡£ -POSIX.1-2008 ¤Ç¤Ï +は POSIX.1-2001 で規定されているが、廃止予定とされている。 +POSIX.1-2008 では .BR scalb () -¤Î»ÅÍͤϺï½ü¤µ¤ì¤Æ¤ª¤ê¡¢Âå¤ï¤ê¤Ë +の仕様は削除されており、代わりに .BR scalbln (3), .BR scalblnf (3), .BR scalblnl (3) -¤Î»ÈÍѤ¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£ +の使用が推奨されている。 .BR scalb () -´Ø¿ô¤Ï 4.3BSD ¤ËͳÍ褹¤ë¡£ +関数は 4.3BSD に由来する。 .BR scalbf () -¤È +と .BR scalbl () -¤Ïɸ½à²½¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤½¤ì¤Ë¤â´Ø¤ï¤é¤º¡¢ +は標準化されていない。 +それにも関わらず、 .BR scalbf () -¤Ï¤¤¤¯¤Ä¤«¤Î¾¤Î¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¡£ +はいくつかの他のシステムに存在する。 .\" Looking at header files: scalbf() is present on the .\" BSDs, Tru64, HP-UX 11, Irix 6.5; scalbl() is on HP-UX 11 and Tru64. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ldexp (3), .BR scalbln (3) diff --git a/release/man3/scandir.3 b/release/man3/scandir.3 index 3fd933b4..2a6b0de4 100644 --- a/release/man3/scandir.3 +++ b/release/man3/scandir.3 @@ -41,9 +41,9 @@ .\" by Yuichi SATO .\" .TH SCANDIR 3 2011-09-08 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -scandir, alphasort, versionsort \- ¥Ç¥£¥ì¥¯¥È¥ê¤òÁöºº¤¹¤ë -.SH ½ñ¼° +.SH 名前 +scandir, alphasort, versionsort \- ディレクトリを走査する +.SH 書式 .nf .B #include .sp @@ -59,9 +59,9 @@ scandir, alphasort, versionsort \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR scandir (), @@ -70,106 +70,106 @@ _BSD_SOURCE || _SVID_SOURCE .br .BR versionsort (): _GNU_SOURCE -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR scandir () -¤Ï¥Ç¥£¥ì¥¯¥È¥ê \fIdirp\fP ¤òÁöºº¤·¡¢ -¥Ç¥£¥ì¥¯¥È¥ê¤Î³Æ¥¨¥ó¥È¥ê¤ò°ú¤­¿ô¤È¤·¤Æ +はディレクトリ \fIdirp\fP を走査し、 +ディレクトリの各エントリを引き数として .BR filter () -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .BR filter () -¤¬ 0 °Ê³°¤ÎÃͤòÊÖ¤¹¥¨¥ó¥È¥ê¤Ï +が 0 以外の値を返すエントリは .BR malloc (3) -¤Ë¤è¤Ã¤Æ -³ÎÊݤµ¤ì¤¿Ê¸»úÎó¤ËÊݸ¤µ¤ì¡¢Èæ³Ó´Ø¿ô +によって +確保された文字列に保存され、比較関数 .BR compar () -¤òÍѤ¤¤Æ +を用いて .BR qsort (3) -¤Ë¤è¤ê¥½¡¼¥È¤µ¤ì¡¢ +によりソートされ、 .BR malloc (3) -¤Ë¤è¤ê³ÎÊݤµ¤ì¤¿ÇÛÎó -\fInamelist\fP ¤Ë¤Þ¤È¤á¤é¤ì¤ë¡£ -\fIfilter\fP ¤¬ NULL ¤Ê¤é¤Ð¡¢¤¹¤Ù¤Æ¤Î¥¨¥ó¥È¥ê¤¬ÁªÂò¤µ¤ì¤ë¡£ +により確保された配列 +\fInamelist\fP にまとめられる。 +\fIfilter\fP が NULL ならば、すべてのエントリが選択される。 .LP -Èæ³Ó´Ø¿ô +比較関数 .IR compar () -¤Ë¤Ï +には .BR alphasort () -´Ø¿ô¤È +関数と .BR versionsort () -´Ø¿ô¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +関数を使うことができる。 .BR alphasort () -¤Ï +は .BR strcoll (3) -¤òÍѤ¤¤Æ¥Ç¥£¥ì¥¯¥È¥ê¥¨¥ó¥È¥ê¤ò¥½¡¼¥È¤·¡¢ +を用いてディレクトリエントリをソートし、 .BR versionsort () -¤Ïʸ»úÎó \fI(*a)\->d_name\fP ¤È \fI(*b)\->d_name\fP ¤ËÂФ·¤Æ +は文字列 \fI(*a)\->d_name\fP と \fI(*b)\->d_name\fP に対して .BR strverscmp (3) -¤òÍѤ¤¤ë¡£ -.SH ÊÖ¤êÃÍ -´Ø¿ô +を用いる。 +.SH 返り値 +関数 .BR scandir () -¤ÏÁªÂò¤µ¤ì¤¿¥¨¥ó¥È¥ê¤Î¿ô¤«¡¢ -(¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç) \-1 ¤òÊÖ¤¹¡£ +は選択されたエントリの数か、 +(エラーが発生した場合) \-1 を返す。 .PP -´Ø¿ô +関数 .BR alphasort () -¤È +と .BR versionsort () -¤Ï 1 ÈÖÌܤΰú¤­¿ô¤¬ 2 ÈÖÌܤΰú¤­¿ô¤ËÂФ·¤Æ¡¢ -[¾®¤µ¤¤/Åù¤·¤¤/Â礭¤¤] ¤«¤Ë±þ¤¸¤Æ¡¢0 ¤è¤ê [¾®¤µ¤¤/Åù¤·¤¤/Â礭¤¤] ÃͤòÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +は 1 番目の引き数が 2 番目の引き数に対して、 +[小さい/等しい/大きい] かに応じて、0 より [小さい/等しい/大きい] 値を返す。 +.SH エラー .TP .B ENOENT -\fIdirp\fR ¤Ç»ØÄꤵ¤ì¤¿¥Ñ¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£ +\fIdirp\fR で指定されたパスが存在しない。 .TP .B ENOMEM -Æ°ºî¤ò´°¿ë¤¹¤ë¤Ë¤Ï¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£ +動作を完遂するにはメモリが足りない。 .TP .B ENOTDIR -\fIdirp\fR ¤Ç»ØÄꤵ¤ì¤¿¥Ñ¥¹¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +\fIdirp\fR で指定されたパスがディレクトリではない。 +.SH バージョン .BR versionsort () -¤Ï¡¢glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤ÇÄɲ䵤줿¡£ -.SH ½àµò +は、glibc バージョン 2.1 で追加された。 +.SH 準拠 .BR alphasort () -¤È +と .BR scandir () -¤Ï POSIX.1-2008 ¤Çµ¬Äꤵ¤ì¤Æ¤ª¤ê¡¢¹­¤¯ÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +は POSIX.1-2008 で規定されており、広く利用可能である。 .BR versionsort () -¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ë¡£ +は GNU 拡張である。 .LP -´Ø¿ô +関数 .BR scandir () -¤È +と .BR alphasort () -¤Ï 4.3BSD ¤«¤é¼è¤êÆþ¤ì¤é¤ì¡¢Linux ¤Ç¤Ï libc4 ¤«¤é»ÈÍѲÄǽ¤Ë¤Ê¤Ã¤¿¡£ -libc4 ¤È libc5 ¤Ç¤Ï°Ê²¼¤Î¤è¤¦¤Ê¤â¤Ã¤È¾ÜºÙ¤Ê¥×¥í¥È¥¿¥¤¥×¤ò»È¤Ã¤Æ¤¤¤ë¡£ +は 4.3BSD から取り入れられ、Linux では libc4 から使用可能になった。 +libc4 と libc5 では以下のようなもっと詳細なプロトタイプを使っている。 .sp .nf int alphasort(const struct dirent ** a, const struct dirent **b); .fi .sp -¤·¤«¤· glibc 2.0 ¤Ç¤ÏÉÔÀµ³Î¤Ê BSD ¤Î¥×¥í¥È¥¿¥¤¥×¤ËÌá¤Ã¤¿¡£ +しかし glibc 2.0 では不正確な BSD のプロトタイプに戻った。 .LP -´Ø¿ô +関数 .BR versionsort () -¤Ï GNU ¤Î³ÈÄ¥¤Ç¤¢¤ê¡¢glibc 2.1 °Ê¹ß¤Ç»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ +は GNU の拡張であり、glibc 2.1 以降で使用可能である。 .LP -glibc 2.1 °Ê¹ß¤Ç¤Ï +glibc 2.1 以降では .BR alphasort () -¤Ï +は .BR strcoll (3) -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .BR alphasort () -¤Ï°ÊÁ°¤Ï +は以前は .BR strcmp (3) -¤ò»È¤Ã¤Æ¤¤¤¿¡£ -.SH Îã +を使っていた。 +.SH 例 .nf #define _SVID_SOURCE -/* ¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Õ¥¡¥¤¥ë¤òµÕ½ç¤Ë½ÐÎϤ¹¤ë */ +/* カレントディレクトリのファイルを逆順に出力する */ #include int @@ -190,7 +190,7 @@ main(void) } } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR closedir (3), .BR fnmatch (3), .BR opendir (3), diff --git a/release/man3/scanf.3 b/release/man3/scanf.3 index d41170bd..36b787c4 100644 --- a/release/man3/scanf.3 +++ b/release/man3/scanf.3 @@ -54,13 +54,13 @@ .\" Updated 2005-09-18, Akihiro MOTOKI .\" Updated 2008-08-11, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: conversion specifications ÊÑ´¹»ØÄê -.\"WORD: type modifier ·¿½¤¾þ»Ò +.\"WORD: conversion specifications 変換指定 +.\"WORD: type modifier 型修飾子 .\" .TH SCANF 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -scanf, fscanf, sscanf, vscanf, vsscanf, vfscanf \- ½ñ¼°ÉÕ¤­ÆþÎÏÊÑ´¹ -.SH ½ñ¼° +.SH 名前 +scanf, fscanf, sscanf, vscanf, vsscanf, vfscanf \- 書式付き入力変換 +.SH 書式 .nf .B #include @@ -76,9 +76,9 @@ scanf, fscanf, sscanf, vscanf, vsscanf, vfscanf \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .ad l .sp @@ -93,554 +93,554 @@ or .I "cc -std=c99" .ad .RE -.SH ÀâÌÀ +.SH 説明 .BR scanf () -´Ø¿ô¥°¥ë¡¼¥×¤Ï¡¢°Ê²¼¤Ë½Ò¤Ù¤ë¤è¤¦¤Ë¡¢ +関数グループは、以下に述べるように、 .I format -¤Ë½¾¤Ã¤ÆÆþÎϤòÆɤ߹þ¤à¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î½ñ¼°¤Ë¤Ï -.I "¡ÖÊÑ´¹»ØÄê¡× (conversion specifications)" -¤ò´Þ¤á¤ë¤³¤È¤¬¤Ç¤­¡¢ÊÑ´¹»ØÄ꤬¤¢¤ì¤Ð¡¢¤½¤ÎÊÑ´¹¤Î·ë²Ì¤Ï +に従って入力を読み込むものである。 +この書式には +.I "「変換指定」 (conversion specifications)" +を含めることができ、変換指定があれば、その変換の結果は .I format -¤Ë³¤¯ +に続く .I pointer -°ú¤­¿ô¤¬»Ø¤¹¾ì½ê¤Ë³ÊǼ¤µ¤ì¤ë¡£ -¤½¤ì¤¾¤ì¤Î +引き数が指す場所に格納される。 +それぞれの .I pointer -°ú¤­¿ô¤Î·¿¤Ï¡¢Âбþ¤¹¤ëÊÑ´¹»ØÄ꤬ÊÖ¤¹ÃÍ¤Ë -Ŭ¹ç¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +引き数の型は、対応する変換指定が返す値に +適合していなければならない。 .I format -Ãæ¤ÎÊÑ´¹»ØÄê¤Î¸Ä¿ô¤¬ +中の変換指定の個数が .I pointer -°ú¤­¿ô¤Î¿ô¤è¤ê¿¤«¤Ã¤¿¾ì¹ç¤Î·ë²Ì¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +引き数の数より多かった場合の結果は未定義である。 .I pointer -°ú¤­¿ô¤Î¿ô¤¬ÊÑ´¹»ØÄê¤Î¸Ä¿ô¤è¤ê¤â¿¤«¤Ã¤¿¾ì¹ç¡¢ -;ʬ¤Ê +引き数の数が変換指定の個数よりも多かった場合、 +余分な .I pointer -°ú¤­¿ô¤Îɾ²Á¤Ï¹Ô¤ï¤ì¤ë¤¬¡¢¤½¤ì°Ê³°¤Ï¹Ô¤ï¤ì¤ºÌµ»ë¤µ¤ì¤ë¡£ +引き数の評価は行われるが、それ以外は行われず無視される。 .BR scanf () -´Ø¿ô¤Ïɸ½àÆþÎÏ¥¹¥È¥ê¡¼¥à +関数は標準入力ストリーム .I stdin -¤«¤é¤ÎÆþÎϤòÆɤ߹þ¤à¡£ +からの入力を読み込む。 .BR fscanf () -¤Ï¥¹¥È¥ê¡¼¥à¥Ý¥¤¥ó¥¿ +はストリームポインタ .I stream -¤«¤é¤ÎÆþÎϤòÆɤ߹þ¤à¡£ +からの入力を読み込む。 .BR sscanf () -¤Ïʸ»úÎó¥Ý¥¤¥ó¥¿ +は文字列ポインタ .I str -¤Ç¼¨¤µ¤ì¤¿Ê¸»úÎ󤫤é¤ÎÆþÎϤòÆɤ߹þ¤à¡£ +で示された文字列からの入力を読み込む。 .PP .BR vfscanf () -´Ø¿ô¤Ï +関数は .BR vfprintf (3) -¤ÈƱÍͤˡ¢¥¹¥È¥ê¡¼¥à¥Ý¥¤¥ó¥¿ +と同様に、ストリームポインタ .I stream -¤«¤é¤ÎÆþÎϤò¥Ý¥¤¥ó¥¿¤Î²ÄÊÑĹ°ú¤­¿ô¥ê¥¹¥È¤òÍѤ¤¤ÆÆɤ߹þ¤à +からの入力をポインタの可変長引き数リストを用いて読み込む .RB ( stdarg (3) -¤ò»²¾È)¡£ +を参照)。 .BR vscanf () -´Ø¿ô¤Ï¡¢²ÄÊÑĹ°ú¤­¿ô¤Î¥ê¥¹¥È¤Ë´ð¤Å¤­É¸½àÆþÎϤ«¤é¤ÎÆɤ߼è¤ê¤ò¹Ô¤¦¡£ +関数は、可変長引き数のリストに基づき標準入力からの読み取りを行う。 .BR vsscanf () -´Ø¿ô¤Ï¤½¤Î¥ê¥¹¥È¤Ë´ð¤Å¤­Ê¸»úÎ󤫤éÆɤ߼è¤ë¡£ -¤³¤ì¤é¤Î´Ø·¸¤Ï +関数はそのリストに基づき文字列から読み取る。 +これらの関係は .BR vprintf (3) -¤È +と .BR vsprintf (3) -´Ø¿ô¤Î´Ø·¸¤ÈƱÍͤǤ¢¤ë¡£ +関数の関係と同様である。 .PP .I format -ʸ»úÎó¤Ï -.I "¡ÖÌ¿Îá¡× (directive)" -¤ÎÎó¤Ç¹½À®¤µ¤ì¤ë¡£Ì¿Îá¤ÏÆþÎÏʸ»ú¤Î·ÏÎó¤ò¤É¤Î¤è¤¦¤Ë½èÍý¤¹¤ë¤«¤ò»Ø¼¨¤¹¤ë -¤â¤Î¤Ç¤¢¤ë¡£¤¢¤ëÌ¿Îá¤Î½èÍý¤¬¼ºÇÔ¤¹¤ë¤È¡¢ÆþÎϤϤ½¤ì°Ê¾åÆɤ߹þ¤Þ¤ì¤º¡¢ +文字列は +.I "「命令」 (directive)" +の列で構成される。命令は入力文字の系列をどのように処理するかを指示する +ものである。ある命令の処理が失敗すると、入力はそれ以上読み込まれず、 .BR scanf () -¤ÏÊ֤롣¡Ö¼ºÇÔ¡×¤Ï -.I "¡ÖÆþÎϤμºÇÔ¡× (input failure)" -¤È -.I "¡Ö°ìÃפμºÇÔ¡× (matching failure)" -¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¡£ -ÆþÎϤμºÇÔ¤ÏÆþÎÏʸ»ú¤¬»ÈÍѤǤ­¤Ê¤«¤Ã¤¿¤³¤È¤ò°ÕÌ£¤·¡¢ -°ìÃפμºÇÔ¤ÏÆþÎϤ¬ÉÔŬÀڤǤ¢¤Ã¤¿¤³¤È (²¼µ­»²¾È) ¤ò°ÕÌ£¤¹¤ë¡£ +は返る。「失敗」は +.I "「入力の失敗」 (input failure)" +と +.I "「一致の失敗」 (matching failure)" +のいずれかである。 +入力の失敗は入力文字が使用できなかったことを意味し、 +一致の失敗は入力が不適切であったこと (下記参照) を意味する。 -Ì¿Îá¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë: +命令は以下のいずれかである: .TP \(bu -¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹ (¥¹¥Ú¡¼¥¹¡¢¥¿¥Ö¡¢²þ¹Ô¤Ê¤É; +ホワイトスペース (スペース、タブ、改行など; .BR isspace (3) -»²¾È) ¤ÎÎó¡£ -¤³¤ÎÌ¿Îá¤Ï¡¢ÆþÎÏÃæ¤ÎǤ°Õ¤Î¸Ä¿ô¤Î¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹¤Ë°ìÃפ¹¤ë¡£ -(¡Ö²¿¤â¤Ê¤·¡×¤Ë¤â°ìÃפ¹¤ë)¡£ +参照) の列。 +この命令は、入力中の任意の個数のホワイトスペースに一致する。 +(「何もなし」にも一致する)。 .TP \(bu -Ä̾ïʸ»ú (¤Ä¤Þ¤ê¡¢¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹¤È \(aq%\(aq °Ê³°¤Îʸ»ú)¡£ -¤³¤Îʸ»ú¤ÏÆþÎϤμ¡¤Îʸ»ú¤ËÀµ³Î¤Ë°ìÃפ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +通常文字 (つまり、ホワイトスペースと \(aq%\(aq 以外の文字)。 +この文字は入力の次の文字に正確に一致しなければならない。 .TP \(bu -ÊÑ´¹»ØÄê¡£ÊÑ´¹»ØÄê¤Ï \(aq%\(aq (¥Ñ¡¼¥»¥ó¥È) ʸ»ú¤Ç»Ï¤Þ¤ë¡£ -ÆþÎϤµ¤ì¤¿Ê¸»ú¤Î·ÏÎó¤Ï¤³¤Î»ØÄê¤Ë¤â¤È¤Å¤¤¤ÆÊÑ´¹¤µ¤ì¡¢ -ÊÑ´¹·ë²Ì¤ÏÂбþ¤¹¤ë +変換指定。変換指定は \(aq%\(aq (パーセント) 文字で始まる。 +入力された文字の系列はこの指定にもとづいて変換され、 +変換結果は対応する .I pointer -°ú¤­¿ô¤¬»Ø¤¹¾ì½ê¤Ë³ÊǼ¤µ¤ì¤ë¡£ -ÆþÎϤμ¡¤Îʸ»ú¤¬ÊÑ´¹»ØÄê¤È°ìÃפ·¤Ê¤¤¾ì¹ç¤Ï¡¢ÊÑ´¹¤Ï¼ºÇÔ¤¹¤ë -\(em¤³¤ì¤¬ -.I "¡Ö°ìÃפμºÇÔ¡× (matching failure)" -¤Ç¤¢¤ë¡£ +引き数が指す場所に格納される。 +入力の次の文字が変換指定と一致しない場合は、変換は失敗する +\(emこれが +.I "「一致の失敗」 (matching failure)" +である。 .PP .I format -Ãæ¤Î³Æ¡¹¤Î -.I "¡ÖÊÑ´¹»ØÄê¡×" -¤Ïʸ»ú \(aq%\(aq ¤«Ê¸»ú·ÏÎó "\fB%\fP\fIn\fP\fB$\fP" -(°ã¤¤¤Ë¤Ä¤¤¤Æ¤Ï¸å½Ò) ¤Ç»Ï¤Þ¤ê¡¢°Ê²¼¤ÎÍ×ÁǤ¬Â³¤¯¡£ +中の各々の +.I "「変換指定」" +は文字 \(aq%\(aq か文字系列 "\fB%\fP\fIn\fP\fB$\fP" +(違いについては後述) で始まり、以下の要素が続く。 .TP \(bu -ÂåÆþÍÞÀ©Ê¸»ú \(aq*\(aq (¾Êά²Äǽ)¡£ +代入抑制文字 \(aq*\(aq (省略可能)。 .BR scanf () -¤ÏÊÑ´¹»ØÄê¤Ë»Ø¼¨¤µ¤ì¤¿Ä̤êÆþÎϤòÆɤ߹þ¤à¤¬¡¢¤½¤ÎÆþÎϤϼΤƤé¤ì¤ë¡£ -Âбþ¤¹¤ë +は変換指定に指示された通り入力を読み込むが、その入力は捨てられる。 +対応する .I pointer -°ú¤­¿ô¤ÏɬÍפʤ¯¡¢ +引き数は必要なく、 .BR scanf () -¤¬ÊÖ¤¹ÂåÆþ¤¬À®¸ù¤·¤¿¿ô¤Ë¤³¤Î»ØÄê¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ +が返す代入が成功した数にこの指定は含まれない。 .TP \(bu -ʸ»ú \(aqa\(aq (¾Êά²Äǽ)¡£¤³¤ì¤Ïʸ»úÎóÊÑ´¹¤È¤È¤â¤Ë»ÈÍѤµ¤ì¡¢¤³¤ì¤ò»È¤¦¤È -¸Æ¤Ó½Ð¤·¸µ¤¬ÆþÎϤòÊÝ»ý¤¹¤ëÂбþ¤¹¤ë¥Ð¥Ã¥Õ¥¡¤ò³ÎÊݤ¹¤ëɬÍפ¬¤Ê¤¯¤Ê¤ë¡£ -Âå¤ï¤ê¤Ë +文字 \(aqa\(aq (省略可能)。これは文字列変換とともに使用され、これを使うと +呼び出し元が入力を保持する対応するバッファを確保する必要がなくなる。 +代わりに .BR scanf () -¤¬É¬ÍפÊÂ礭¤µ¤Î¥Ð¥Ã¥Õ¥¡¤ò³ÎÊݤ·¡¢¤³¤Î¥Ð¥Ã¥Õ¥¡¤Î¥¢¥É¥ì¥¹¤ò -Âбþ¤¹¤ë +が必要な大きさのバッファを確保し、このバッファのアドレスを +対応する .I pointer -°ú¤­¿ô¤ËÂåÆþ¤¹¤ë¡£ +引き数に代入する。 .I pointer -°ú¤­¿ô¤Ï +引き数は .I "char *" -·¿¤ÎÊÑ¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(ÊÑ¿ô¼«ÂΤϸƤӽФ·Á°¤Ë½é´ü²½¤µ¤ì¤Æ¤¤¤ëɬÍפϤʤ¤)¡£ -¸Æ¤Ó½Ð¤·¸µ¤Ï¡¢ÉÔÍפˤʤä¿»þÅÀ¤Ç¡¢¤³¤Î¥Ð¥Ã¥Õ¥¡¤ò +型の変数へのポインタでなければならない +(変数自体は呼び出し前に初期化されている必要はない)。 +呼び出し元は、不要になった時点で、このバッファを .BR free (3) -¤¹¤Ù¤­¤Ç¤¢¤ë¡£¤³¤Îµ¡Ç½¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -C99 ¤Ï \(aqa\(aq ʸ»ú¤òÊÑ´¹»ØÄê¤È¤·¤Æ»ÈÍѤ·¤Æ¤¤¤ë -(¤³¤Á¤é¤â GNU ¤Î¼ÂÁõ¤ÈƱ¤¸¤è¤¦¤Ë»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë)¡£ +すべきである。この機能は GNU による拡張である。 +C99 は \(aqa\(aq 文字を変換指定として使用している +(こちらも GNU の実装と同じように使用することができる)。 .TP \(bu -.I "¡ÖºÇÂç¥Õ¥£¡¼¥ë¥ÉÉý¡×" -¤ò»ØÄꤹ¤ë 10¿Ê¿ô (¾Êά²Äǽ)¡£ -¤³¤ÎºÇÂçÃͤË㤹¤ë¤«¡¢°ìÃפ·¤Ê¤¤Ê¸»ú¤¬¸«¤Ä¤«¤ë¤«¡¢¤Î¤É¤Á¤é¤«¤Ë -¤Ê¤ë¤È¡¢Ê¸»ú¤ÎÆɤ߹þ¤ß¤òÄä»ß¤¹¤ë¡£ -¤Û¤È¤ó¤É¤ÎÊÑ´¹¤Ç¤Ï¡¢ÀèƬ¤Î¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹Ê¸»ú¤Ï¼Î¤Æ¤é¤ì -(Îã³°¤Ë¤Ä¤¤¤Æ¤Ï¸å½Ò¤¹¤ë)¡¢ -¼Î¤Æ¤é¤ì¤¿¤³¤ì¤é¤Îʸ»ú¤ÏºÇÂç¥Õ¥£¡¼¥ë¥ÉÉý¤Î·×»»¤Ë¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ -ʸ»úÎó¤ÎÆþÎÏÊÑ´¹¤Ç¤Ï¡¢ÆþÎϤÎËöÈø¤ò¼¨¤¹½ªÃ¼¤Î NULL ¥Ð¥¤¥È (\(aq\\0\(aq) -¤â³ÊǼ¤µ¤ì¤ë¤¬¡¢ºÇÂç¥Õ¥£¡¼¥ë¥ÉÉý¤Ë¤Ï¤³¤Î½ªÃ¼¥Ð¥¤¥È¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ +.I "「最大フィールド幅」" +を指定する 10進数 (省略可能)。 +この最大値に達するか、一致しない文字が見つかるか、のどちらかに +なると、文字の読み込みを停止する。 +ほとんどの変換では、先頭のホワイトスペース文字は捨てられ +(例外については後述する)、 +捨てられたこれらの文字は最大フィールド幅の計算には含まれない。 +文字列の入力変換では、入力の末尾を示す終端の NULL バイト (\(aq\\0\(aq) +も格納されるが、最大フィールド幅にはこの終端バイトは含まれない。 .TP \(bu -.I "¡Ö·¿½¤¾þ»Ò¡× (type modifier characters)" -(¾Êά²Äǽ)¡£ -Î㤨¤Ð¡¢·¿½¤¾þ»Ò +.I "「型修飾子」 (type modifier characters)" +(省略可能)。 +例えば、型修飾子 .B l -¤ò +を .B %d -¤Ê¤É¤ÎÀ°¿ôÊÑ´¹¤È°ì½ï¤Ë»È¤¦¤È¡¢Âбþ¤¹¤ë +などの整数変換と一緒に使うと、対応する .I pointer -°ú¤­¿ô¤¬ +引き数が .I int -¤Ç¤Ï¤Ê¤¯ +ではなく .I "long int" -¤ò»²¾È¤·¤Æ¤¤¤ë¤³¤È¤ò»ØÄê¤Ç¤­¤ë¡£ +を参照していることを指定できる。 .TP \(bu -.I "¡ÖÊÑ´¹»ØÄê¡×" -: ¼Â¹Ô¤¹¤Ù¤­ÆþÎÏÊÑ´¹¤Î¼ïÎà¤ò»ØÄꤹ¤ë¡£ +.I "「変換指定」" +: 実行すべき入力変換の種類を指定する。 .PP .I format -Ãæ¤ÎÊÑ´¹»ØÄê¤Ï¡¢\(aq%\(aq ¤Ç»Ï¤Þ¤ë¤«¡¢ -"\fB%\fP\fIn\fP\fB$\fP" ¤Ç»Ï¤Þ¤ë¤«¤Î¡¢¤¤¤º¤ì¤«¤Î·Á¼°¤Ç¤¢¤ë¡£ -¤³¤ì¤é 2¤Ä¤Î·Á¼°¤òƱ¤¸ +中の変換指定は、\(aq%\(aq で始まるか、 +"\fB%\fP\fIn\fP\fB$\fP" で始まるかの、いずれかの形式である。 +これら 2つの形式を同じ .I format -ʸ»úÎó¤Ëº®¤¼¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£Ã¢¤·¡¢"\fB%\fP\fIn\fP\fB$\fP" ¤ò -´Þ¤àʸ»úÎó¤Ë +文字列に混ぜることはできない。但し、"\fB%\fP\fIn\fP\fB$\fP" を +含む文字列に .B %% -¤È +と .B %* -¤ò´Þ¤á¤ë¤³¤È¤Ï¤Ç¤­¤ë¡£ +を含めることはできる。 .I format -¤Ë \(aq%\(aq »ØÄ꤬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢³Æ¡¹¤Î \(aq%\(aq »ØÄê¤È -¸å³¤Î +に \(aq%\(aq 指定が含まれている場合、各々の \(aq%\(aq 指定と +後続の .I pointer -°ú¤­¿ô¤Ï¤½¤Î½çÈÖÄ̤ê¤ËÂбþ¤¹¤ë¡£ -"\fB%\fP\fIn\fP\fB$\fP" ·Á¼° -(POSIX.1-2001 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤ë¤¬¡¢C99 ¤Ë¤Ï¤Ê¤¤) -¤Ç¤Ï¡¢ +引き数はその順番通りに対応する。 +"\fB%\fP\fIn\fP\fB$\fP" 形式 +(POSIX.1-2001 では規定されているが、C99 にはない) +では、 .I n -¤Ï 10¿Ê¿ô¤Ç¤¢¤ê¡¢ÊÑ´¹¸å¤ÎÆþÎϤò +は 10進数であり、変換後の入力を .I format -¤Î¸å¤í¤Î +の後ろの .I n -ÈÖÌܤΠ+番目の .I pointer -°ú¤­¿ô¤¬»²¾È¤¹¤ë¾ì½ê¤Ë³ÊǼ¤¹¤ë¤³¤È¤ò»ØÄꤹ¤ë¡£ -.SS ÊÑ´¹ -ÊÑ´¹»ØÄê¤Ë¤Ï¡¢°Ê²¼¤Î -.I "¡Ö·¿½¤¾þ»Ò¡×" -¤òÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +引き数が参照する場所に格納することを指定する。 +.SS 変換 +変換指定には、以下の +.I "「型修飾子」" +を入れることができる。 .TP .B h -ÊÑ´¹¤¬ +変換が \fBd\fP, \fBi\fP, \fBo\fP, \fBu\fP, \fBx\fP, \fBX\fP, \fBn\fP -¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ê¡¢¼¡¤Î¥Ý¥¤¥ó¥¿¤¬ +のいずれかであり、次のポインタが .RI ( int -¤Ç¤Ï¤Ê¤¯) +ではなく) .I short int -¤« +か .I unsigned short int -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ +へのポインタであることを示す。 .TP .B hh .B h -¤ÈƱ¤¸¤À¤¬¡¢¼¡¤Î¥Ý¥¤¥ó¥¿¤¬ +と同じだが、次のポインタが .I signed char -¤« +か .I unsigned char -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ +へのポインタであることを示す。 .TP .B j .B h -¤ÈƱ¤¸¤À¤¬¡¢¼¡¤Î¥Ý¥¤¥ó¥¿¤¬ +と同じだが、次のポインタが .I intmax_t -¤« +か .I uintmax_t -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ -¤³¤Î½¤¾þ»Ò¤Ï C99 ¤ÇƳÆþ¤µ¤ì¤¿¡£ +へのポインタであることを示す。 +この修飾子は C99 で導入された。 .TP .B l -ÊÑ´¹¤¬ +変換が \fBd\fP, \fBi\fP, \fBo\fP, \fBu\fP, \fBx\fP, \fBX\fP, \fBn\fP -¤« +か .B n -¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ê¼¡¤Î¥Ý¥¤¥ó¥¿¤¬ +のいずれかであり次のポインタが .RI ( int -¤Ç¤Ï¤Ê¤¯) +ではなく) .I long int -¤« +か .I unsigned long int -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¡¢¤Þ¤¿¤Ï¡¢ÊÑ´¹¤¬ +へのポインタであること、または、変換が \fBe\fP, \fBf\fP, \fBg\fP -¤Î¤¦¤Á¤Î¤Ò¤È¤Ä¤Ç¤¢¤ê¼¡¤Î¥Ý¥¤¥ó¥¿¤¬ +のうちのひとつであり次のポインタが .RI ( float -¤Ç¤Ï¤Ê¤¯) +ではなく) .I double -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ +へのポインタであることのいずれかであることを示す。 .B l -ʸ»ú¤òÆó¤Ä»ØÄꤹ¤ë¤È¡¢ +文字を二つ指定すると、 .B L -¤ÈƱ¤¸°ÕÌ£¤È¤Ê¤ë¡£ +と同じ意味となる。 .B %c -¤ä +や .B %s -¤È¤È¤â¤Ë»ÈÍѤ¹¤ë¤È¡¢ -¥Ñ¥é¥á¡¼¥¿¤Ï¤½¤ì¤¾¤ì¥ï¥¤¥Éʸ»ú¤ä¥ï¥¤¥Éʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤È -¤ß¤Ê¤µ¤ì¤ë¡£ -.\" l ¤Î¤³¤Î»ÈÍÑË¡¤Ï ISO C90 ¤Î Amendment 1 ¤ÇƳÆþ¤µ¤ì¤¿¡£ +とともに使用すると、 +パラメータはそれぞれワイド文字やワイド文字列へのポインタであると +みなされる。 +.\" l のこの使用法は ISO C90 の Amendment 1 で導入された。 .TP .B L \fBe\fP, \fBf\fP, \fBg\fP -ÊÑ´¹¤Ç¡¢¼¡¤Î¥Ý¥¤¥ó¥¿¤¬ +変換で、次のポインタが .I "long double" -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£¤â¤·¤¯¤Ï¡¢ +へのポインタであることを示す。もしくは、 \fBd\fP, \fBi\fP, \fBo\fP, \fBu\fP, \fBx\fP -ÊÑ´¹¤Ç¡¢¼¡¤Î¥Ý¥¤¥ó¥¿¤¬ +変換で、次のポインタが .I "long long" -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ -.\" MTK, Jul 05: °Ê²¼¤ÎÆâÍƤϿ·¤·¤¤ ANSI C (¤Ä¤Þ¤ê C99) ¤Ç¤Ï -.\" ¤â¤Ï¤äÀµ¤·¤¯¤Ê¤¤¡£ -.\" (long long ¤Ï +へのポインタであることのいずれかであることを示す。 +.\" MTK, Jul 05: 以下の内容は新しい ANSI C (つまり C99) では +.\" もはや正しくない。 +.\" (long long は .\" .I ANSI C -.\" ¤Çµ¬Äꤵ¤ì¤¿·¿¤Ç¤Ï¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤è¤¦¡£ -.\" ¤³¤ì¤òÍѤ¤¤¿¥×¥í¥°¥é¥à¤ÏÁ´¤Æ¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ËÂФ·¤Æ -.\" °Ü¿¢²Äǽ¤Ç¤Ï¤Ê¤¤¡£) +.\" で規定された型ではないことに注意しよう。 +.\" これを用いたプログラムは全てのアーキテクチャに対して +.\" 移植可能ではない。) .TP .B q .B L -¤ÈƱ°ì¤Ç¤¢¤ë¡£ -¤³¤Î½¤¾þ»Ò¤Ï ANSI C ¤Ë¤Ï¸ºß¤·¤Ê¤¤¡£ +と同一である。 +この修飾子は ANSI C には存在しない。 .TP .B t .B h -¤ÈƱÍͤÀ¤¬¡¢¼¡¤Î¥Ý¥¤¥ó¥¿¤¬ +と同様だが、次のポインタが .I ptrdiff_t -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ -¤³¤Î½¤¾þ»Ò¤Ï C99 ¤ÇƳÆþ¤µ¤ì¤¿¡£ +へのポインタであることを示す。 +この修飾子は C99 で導入された。 .TP .B z .B h -¤ÈƱÍͤÀ¤¬¡¢¼¡¤Î¥Ý¥¤¥ó¥¿¤¬ +と同様だが、次のポインタが .I size_t -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ -¤³¤Î½¤¾þ»Ò¤Ï C99 ¤ÇƳÆþ¤µ¤ì¤¿¡£ +へのポインタであることを示す。 +この修飾子は C99 で導入された。 .PP -°Ê²¼¤Î -.I ¡ÖÊÑ´¹»ØÄê»Ò¡× -¤¬ÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +以下の +.I 「変換指定子」 +が利用可能である。 .TP .B % -ʸ»ú \(aq%\(aq ¤ËÂбþ¤¹¤ë¡£ -½ñ¼°Ê¸»úÎó¤ÎÃæ¤Î +文字 \(aq%\(aq に対応する。 +書式文字列の中の .B %\&% -¤Ïñ°ì¤Îʸ»ú \(aq%\(aq ¤ËÂбþ¤¹¤ë¡£ -ÊÑ´¹¤Ï¹Ô¤ï¤ì¤º (⤷¡¢ÀèƬ¤Î¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹Ê¸»ú¤Ï¼Î¤Æ¤é¤ì¤ë)¡¢ -ÊÑ¿ô¤Ø¤ÎÂåÆþ¤ÏÀ¸¤¸¤Ê¤¤¡£ +は単一の文字 \(aq%\(aq に対応する。 +変換は行われず (但し、先頭のホワイトスペース文字は捨てられる)、 +変数への代入は生じない。 .TP .B d -Éä¹æ¤Ä¤­¤Î 10¿Ê¤ÎÀ°¿ô¤ËÂбþ¤¹¤ë¡£ -¼¡¤Î¥Ý¥¤¥ó¥¿¤Ï +符号つきの 10進の整数に対応する。 +次のポインタは .I int -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +へのポインタでなければならない。 .TP .B D .I ld -¤ÈƱ°ì¤Ç¤¢¤ë¡£¤³¤ì¤Ï°ÊÁ°¤Î»ÅÍͤȤθߴ¹À­¤À¤±¤Î¤¿¤á¤Ë¤¢¤ë¡£ -(Ãí°Õ: ¤³¤ì¤Ï libc4 ¤Î¾ì¹ç¤À¤±¤Ç¤¢¤ë¡£ libc5 ¤ä glibc ¤Ç¤Ï +と同一である。これは以前の仕様との互換性だけのためにある。 +(注意: これは libc4 の場合だけである。 libc5 や glibc では .B %D -¤Ï°ÅÌۤΤ¦¤Á¤Ë̵»ë¤µ¤ì¡¢¸Å¤¤¥×¥í¥°¥é¥à¤Ë¤ª¤¤¤ÆÆæ¤ËËþ¤Á¤¿¼ºÇԤθ¶°ø¤È¤Ê¤ë¡£) +は暗黙のうちに無視され、古いプログラムにおいて謎に満ちた失敗の原因となる。) .TP .B i -Éä¹æ¤Ä¤­À°¿ô¤ËÂбþ¤¹¤ë¡£ -¼¡¤Î¥Ý¥¤¥ó¥¿¤Ï +符号つき整数に対応する。 +次のポインタは .I int -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ÎÀ°¿ô¤Ï +へのポインタでなければならない。 +この整数は .I 0x -¤Þ¤¿¤Ï +または .I 0X -¤Ç³«»Ï¤¹¤ë¾ì¹ç¤Ë¤Ï 16 ¿Ê¿ô¡¢ +で開始する場合には 16 進数、 .I 0 -¤Ç³«»Ï¤¹¤ë¾ì¹ç¤Ë¤Ï 8 ¿Ê¿ô¡¢¤½¤Î¾¤Î¾ì¹ç¤Ë¤Ï 10¿Ê¿ô¤È¤·¤ÆÆɤ߹þ¤Þ¤ì¤ë¡£ -¤³¤ÎÊÑ´¹¤Ç»ÈÍѤµ¤ì¤ëʸ»ú¤Ï¡¢¤³¤ì¤é¤Î´ð¿ô¤ËÂбþ¤·¤Æ¤¤¤ë¤â¤Î¤À¤±¤Ç¤¢¤ë¡£ +で開始する場合には 8 進数、その他の場合には 10進数として読み込まれる。 +この変換で使用される文字は、これらの基数に対応しているものだけである。 .TP .B o -Éä¹æ¤Ê¤·¤Î 8 ¿Ê¤ÎÀ°¿ô¤ËÂбþ¤¹¤ë¡£ -¼¡¤Î¥Ý¥¤¥ó¥¿¤Ï +符号なしの 8 進の整数に対応する。 +次のポインタは .I "unsigned int" -¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +でなければならない。 .TP .B u -Éä¹æ¤Ê¤·¤Î 10¿Ê¤ÎÀ°¿ô¤ËÂбþ¤¹¤ë¡£ -¼¡¤Î¥Ý¥¤¥ó¥¿¤Ï +符号なしの 10進の整数に対応する。 +次のポインタは .I "unsigned int" -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +へのポインタでなければならない。 .TP .B x -Éä¹æ¤Ê¤·¤Î 16 ¿Ê¤ÎÀ°¿ô¤ËÂбþ¤¹¤ë¡£ -¼¡¤Î¥Ý¥¤¥ó¥¿¤Ï +符号なしの 16 進の整数に対応する。 +次のポインタは .I "unsigned int" -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +へのポインタでなければならない。 .TP .B X .B x -¤ÈƱ°ì¤Ç¤¢¤ë¡£ +と同一である。 .TP .B f -Éä¹æ¤Ä¤­ÉâÆ°¾®¿ôÅÀ¼Â¿ô¤ËÂбþ¤¹¤ë¡£ -¼¡¤Î¥Ý¥¤¥ó¥¿¤Ï +符号つき浮動小数点実数に対応する。 +次のポインタは .I float -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +へのポインタでなければならない。 .TP .B e .B f -¤ÈƱ°ì¤Ç¤¢¤ë¡£ +と同一である。 .TP .B g .B f -¤ÈƱ°ì¤Ç¤¢¤ë¡£ +と同一である。 .TP .B E .B f -¤ÈƱ°ì¤Ç¤¢¤ë¡£ +と同一である。 .TP .B a (C99) .B f -¤ÈƱ°ì¤Ç¤¢¤ë¡£ +と同一である。 .TP .B s -¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹¤Ç¤Ï¤Ê¤¤Ê¸»ú¤Ç¹½À®¤µ¤ì¤¿Ê¸»úÎó¤ËÂбþ¤¹¤ë¡£ -¼¡¤Î¥Ý¥¤¥ó¥¿¤Ïʸ»ú¤ÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -¤½¤Îʸ»úÇÛÎó¤Ï¡¢ÆþÎϤµ¤ì¤¿Ê¸»úÎó¤È (¼«Æ°Åª¤ËÄɲ䵤ì¤ë) ½ªÃ¼¤Î NULL -¥Ð¥¤¥È (\(aq\\0\(aq) ¤ò³ÊǼ¤¹¤ë¤Î¤Ë½½Ê¬¤ÊÂ礭¤µ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -ʸ»úÎó¤ÎÆþÎϤϡ¢¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹¤¬ÆþÎϤµ¤ì¤ë¤«¡¢ºÇÂç¥Õ¥£¡¼¥ë¥ÉÉý¤Ë -㤹¤ë¤«¡¢¤Î¤É¤Á¤é¤«¤¬µ¯¤³¤ë¤ÈÄä»ß¤µ¤ì¤ë¡£ +ホワイトスペースではない文字で構成された文字列に対応する。 +次のポインタは文字の配列へのポインタでなければならず、 +その文字配列は、入力された文字列と (自動的に追加される) 終端の NULL +バイト (\(aq\\0\(aq) を格納するのに十分な大きさでなければならない。 +文字列の入力は、ホワイトスペースが入力されるか、最大フィールド幅に +達するか、のどちらかが起こると停止される。 .TP .B c -.I "¡ÖºÇÂç¥Õ¥£¡¼¥ë¥ÉÉý¡×" -(¥Ç¥Õ¥©¥ë¥È¤Ï 1) ¤Ç»ØÄꤵ¤ì¤¿Éý¤Îʸ»ú¤ÎÎó¤ËÂбþ¤¹¤ë¡£ -¼¡¤Î¥Ý¥¤¥ó¥¿¤Ï +.I "「最大フィールド幅」" +(デフォルトは 1) で指定された幅の文字の列に対応する。 +次のポインタは .I char -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¡¢¤¹¤Ù¤Æ¤Îʸ»ú¤ò³ÊǼ¤¹¤ë¤Î¤Ë½½Ê¬¤ÊÎΰ褬 -¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ (½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤ÏÄɲ䵤ì¤Ê¤¤)¡£ -Ä̾ï¹Ô¤ï¤ì¤ëÀèƬ¤Î¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹¤ÎÆɤßÈô¤Ð¤·¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ -ÀèƬ¤Î¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹¤òÆɤßÈô¤Ð¤¹¤¿¤á¤Ë¤Ï¡¢ -¥Õ¥©¡¼¥Þ¥Ã¥Èʸ¤ÎÃæ¤ÇÌÀ¼¨Åª¤Ë¥¹¥Ú¡¼¥¹¤ò»ÈÍѤ¹¤ì¤ÐÎɤ¤¡£ +へのポインタで、すべての文字を格納するのに十分な領域が +なければならない (終端の NULL バイトは追加されない)。 +通常行われる先頭のホワイトスペースの読み飛ばしは行われない。 +先頭のホワイトスペースを読み飛ばすためには、 +フォーマット文の中で明示的にスペースを使用すれば良い。 .TP .B \&[ -³ÊǼ¤µ¤ì¤¿Ê¸»úÎó¤Î¤¦¤Á¤«¤é¼è¤ê½Ð¤µ¤ì¤¿¡¢ -»ØÄꤵ¤ì¤¿Ê¸»ú¤Î½¸¹ç¤Ç¹½À®¤µ¤ì¤ë¶õ¤Ç¤Ï¤Ê¤¤Ê¸»ú¤ÎÎó¤ËÂбþ¤¹¤ë¡£ -¼¡¤Î¥Ý¥¤¥ó¥¿¤Ï +格納された文字列のうちから取り出された、 +指定された文字の集合で構成される空ではない文字の列に対応する。 +次のポインタは .I char -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -¤½¤³¤Ë¤Ïʸ»úÎóÃæ¤Î¤¹¤Ù¤Æ¤Îʸ»ú¤È½ªÃ¼¤Î NULL ¥Ð¥¤¥È -¤ò³ÊǼ¤¹¤ë¤¿¤á¤Î½½Ê¬¤ÊÎΰ褬¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Ä̾ï¹Ô¤ï¤ì¤ëÀèƬ¤Î¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹¤ÎÆɤßÈô¤Ð¤·¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ -¤³¤Îʸ»úÎó¤ÏÆÃÊ̤ʽ¸¹ç¤ÎÃæ¤Îʸ»ú¤Ç¹½À®¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î½¸¹ç¤Ï -³«¤­³ç¸Ì +へのポインタでなければならず、 +そこには文字列中のすべての文字と終端の NULL バイト +を格納するための十分な領域がなければならない。 +通常行われる先頭のホワイトスペースの読み飛ばしは行われない。 +この文字列は特別な集合の中の文字で構成されている。 +この集合は +開き括弧 .B [ -¤ÈÊĤ¸³ç¸Ì +と閉じ括弧 .B ] -¤Î´Ö¤Îʸ»ú¤ÇÄêµÁ¤µ¤ì¤ë¡£ -³«¤­³ç¸Ì¤Î¤¢¤È¤ÎºÇ½é¤Îʸ»ú¤¬¶Ê¥¢¥¯¥»¥ó¥Èµ­¹æ +の間の文字で定義される。 +開き括弧のあとの最初の文字が曲アクセント記号 .RB ( ^ ) -¤Î¾ì¹ç¡¢½¸¹ç¤Ï¤³¤ì¤é¤Îʸ»ú¤ò´Þ¤Þ¤Ê¤¤¤â¤Î¤È¤Ê¤ë¡£ -ÊĤ¸³ç¸Ì¤ò½¸¹ç¤Ë´Þ¤Þ¤»¤ë¤¿¤á¤Ë¤Ï¡¢¤³¤Îʸ»ú¤ò³«¤­³ç¸Ì¤Þ¤¿¤Ï -¶Ê¥¢¥¯¥»¥ó¥Èµ­¹æ¤Î¤¢¤È¤ÎºÇ½é¤Îʸ»ú¤Ë¤¹¤ì¤Ð¤è¤¤¡£ -¤Ä¤Þ¤ê¡¢Â¾¤Î°ÌÃÖ¤ËÊĤ¸³ç¸Ì¤òÃÖ¤¯¤Èʸ»ú¤Î½¸¹ç¤¬½ª¤ë¡£ -¥Ï¥¤¥Õ¥ó +の場合、集合はこれらの文字を含まないものとなる。 +閉じ括弧を集合に含ませるためには、この文字を開き括弧または +曲アクセント記号のあとの最初の文字にすればよい。 +つまり、他の位置に閉じ括弧を置くと文字の集合が終る。 +ハイフン .B \- -¤â¤Þ¤¿Æüìʸ»ú¤Ç¤¢¤ë¡£ -Æó¤Ä¤Î°Û¤Ê¤ëʸ»ú¤Î´Ö¤ËÃÖ¤«¤ì¤¿»þ¡¢¤³¤Îʸ»ú¤Ï¡¢ -¤½¤Î´Ö¤Ë¤¢¤ëÁ´¤Æ¤Îʸ»ú¤ò½¸¹ç¤Ë²Ã¤¨¤ë¡£ -¥Ï¥¤¥Õ¥ó¼«ÂΤò´Þ¤Þ¤»¤ë¤¿¤á¤Ë¤Ï¡¢ -³ç¸Ì¤¬ÊĤ¸¤ëÁ°¤ÎºÇ¸å¤Î°ìʸ»ú¤ò¥Ï¥¤¥Õ¥ó¤Ë¤¹¤ì¤Ð¤è¤¤¡£ -Î㤨¤Ð¡¢ +もまた特殊文字である。 +二つの異なる文字の間に置かれた時、この文字は、 +その間にある全ての文字を集合に加える。 +ハイフン自体を含ませるためには、 +括弧が閉じる前の最後の一文字をハイフンにすればよい。 +例えば、 .B [^]0\-9\-] -¤Ï¡ÖÊĤ¸³ç¸Ì¡¢0 ¡Á 9¡¢¥Ï¥¤¥Õ¥ó¤Î 3 ¼ïÎà¤ò½ü¤¯Á´¤Æ¤Îʸ»ú¡×¤Î½¸¹ç¤ò°ÕÌ£¤¹¤ë¡£ -¤³¤Îʸ»úÎó¤Ï -½¸¹ç¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤ (¶Ê¥¢¥¯¥»¥ó¥È¤Î¾ì¹ç¤Ë¤Ï´Þ¤Þ¤ì¤ë) ʸ»ú¤Î -½Ð¸½¤Þ¤¿¤Ï³ÎÊݤµ¤ì¤¿Îΰ褬»È¤¤ÀÚ¤é¤ì¤¿»þ¤Ë½ªÎ»¤¹¤ë¡£ +は「閉じ括弧、0 〜 9、ハイフンの 3 種類を除く全ての文字」の集合を意味する。 +この文字列は +集合に含まれていない (曲アクセントの場合には含まれる) 文字の +出現または確保された領域が使い切られた時に終了する。 .TP .B p .RB ( printf (3) -¤Î +の .B %p -¤Ç°õ»ú¤µ¤ì¤ë¤è¤¦¤Ê) ¥Ý¥¤¥ó¥¿ÃͤËÂбþ¤¹¤ë¡£ -¼¡¤Î¥Ý¥¤¥ó¥¿¤Ï +で印字されるような) ポインタ値に対応する。 +次のポインタは .I void -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +へのポインタへのポインタでなければならない。 .TP .B n -¤É¤ó¤ÊÆþÎϤâɬÍפȤ·¤Ê¤¤¡£ -¤½¤Î¤«¤ï¤ê¤Ë¡¢ -ÆþÎϤ«¤é¤³¤³¤Þ¤Ç¾ÃÈñ¤µ¤ì¤¿Ê¸»ú¿ô¤¬¼¡¤Î¥Ý¥¤¥ó¥¿¤Ç»ØÄꤵ¤ì¤¿¾ì½ê¤Ë -³ÊǼ¤µ¤ì¤ë¡£ -¤³¤Î¥Ý¥¤¥ó¥¿¤Ï +どんな入力も必要としない。 +そのかわりに、 +入力からここまで消費された文字数が次のポインタで指定された場所に +格納される。 +このポインタは .I int -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -ÊÑ´¹¤òÍÞÀ©¤¹¤ë¤Î¤Ç¤¢¤ì¤Ð +へのポインタでなければならない。 +変換を抑制するのであれば .B * -ÂåÆþÍÞÀ©Ê¸»ú¤ò»È¤Ã¤ÆÍÞÀ©¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤Î¤À¤¬¡¢ -¤³¤ÎÊÑ´¹»ØÄê»Ò¤ÏÊÑ´¹¤Ç¤Ï¡Ö¤Ê¤¤¡×¡£ -C ¸À¸ì¤Îɸ½àµ¬³Ê¤Ç¤Ï¡Ö¼Â¹Ô¤Î´°Î»»þ¤ËÊÖ¤µ¤ì¤ëÂåÆþ¤Î²ó¿ô¤Ï +代入抑制文字を使って抑制することができるのだが、 +この変換指定子は変換では「ない」。 +C 言語の標準規格では「実行の完了時に返される代入の回数は .B %n -Ì¿Îá¤Î¼Â¹Ô¤Ç¤ÏÁý²Ã¤·¤Ê¤¤¡×¤È¤Ê¤Ã¤Æ¤¤¤ë¤¬¡¢ -Àµ¸íɽ¤ÎÆâÍƤϤ³¤ì¤ÈÌ·½â¤¹¤ë¤è¤¦¤Ç¤¢¤ë¡£¤ª¤½¤é¤¯¡¢ +命令の実行では増加しない」となっているが、 +正誤表の内容はこれと矛盾するようである。おそらく、 .B %n -ÊÑ´¹¤¬ÊÖ¤êÃͤËÍ¿¤¨¤ë±Æ¶Á¤Ë¤Ä¤¤¤Æ¤Ï¤É¤Î¤è¤¦¤Ê²¾Äê¤â¤·¤Ê¤¤¤Î¤¬ -¸­ÌÀ¤Ç¤¢¤í¤¦¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢°ìÃפÈÂåÆþ¤¬À®¸ù¤·¤¿ÆþÎÏÍ×ÁǤθĿô¤òÊÖ¤¹¡£ -ÊÖ¤µ¤ì¤ëÃͤÏÅϤµ¤ì¤¿ÊÑ´¹¤Î¸Ä¿ô¤è¤ê¤â¾¯¤Ê¤¤¤³¤È¤â¤¢¤ê¡¢ -ºÇ½é¤Ë°ìÃפμºÇÔ¤¬¤¢¤Ã¤¿¾ì¹ç¤Ë¤Ï 0 ¤Ë¤Ê¤ë¤³¤È¤â¤¢¤ë¡£ +変換が返り値に与える影響についてはどのような仮定もしないのが +賢明であろう。 +.SH 返り値 +これらの関数は、一致と代入が成功した入力要素の個数を返す。 +返される値は渡された変換の個数よりも少ないこともあり、 +最初に一致の失敗があった場合には 0 になることもある。 -ºÇ½é¤ÎÊÑ´¹¤¬À®¸ù¤¹¤ëÁ°¤ËÆþÎϤκǸå¤Ë㤷¤Æ¡¢°ìÃפμºÇÔ¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ +最初の変換が成功する前に入力の最後に達して、一致の失敗が起こった場合には、 .B EOF -¤¬ÊÖ¤µ¤ì¤ë¡£¤Þ¤¿¡¢ -Æɤ߹þ¤ß¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¤â +が返される。また、 +読み込みエラーが発生した場合にも .B EOF -¤¬ÊÖ¤µ¤ì¤ë¡£Æɤ߹þ¤ß¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¥¹¥È¥ê¡¼¥à¤Î -¥¨¥é¡¼»Ø¼¨»Ò¤¬¥»¥Ã¥È¤µ¤ì +が返される。読み込みエラーの場合には、そのストリームの +エラー指示子がセットされ .RB ( ferror (3) -»²¾È)¡¢ +参照)、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値がセットされる。 +.SH エラー .TP .B EAGAIN .I stream -¤ËÂбþ¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ nonblocking ¤È¤Ê¤Ã¤Æ¤ª¤ê¡¢ -Æɤ߹þ¤ßÁàºî¤ÏÄä»ß (block) ¤¹¤ë¤³¤È¤Ë¤Ê¤ë¡£ +に対応するファイルディスクリプタが nonblocking となっており、 +読み込み操作は停止 (block) することになる。 .TP .B EBADF .I stream -¤ËÂбþ¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Ìµ¸ú¤Ç¤¢¤ë¤¬¡¢ -Æɤ߹þ¤ßÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +に対応するファイルディスクリプタが無効であるが、 +読み込み用にオープンされていない。 .TP .B EILSEQ -ÆþÎϤµ¤ì¤¿¥Ð¥¤¥ÈÎó¤¬Í­¸ú¤Êʸ»ú¤ò¹½À®¤·¤Æ¤¤¤Ê¤¤¡£ +入力されたバイト列が有効な文字を構成していない。 .TP .B EINTR -Æɤ߹þ¤ßÁàºî¤¬¥·¥°¥Ê¥ë¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¡£ +読み込み操作がシグナルにより割り込まれた。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL -°ú¤­¿ô¤¬½½Ê¬¤Ç¤Ê¤¤¡£¤Þ¤¿¤Ï +引き数が十分でない。または .I format -¤¬ NULL ¤Ç¤¢¤ë¡£ +が NULL である。 .TP .B ENOMEM -¥á¥â¥êÉÔ­¡£ +メモリ不足。 .TP .B ERANGE -À°¿ôÊÑ´¹¤Î·ë²Ì¤¬¡¢Âбþ¤¹¤ëÀ°¿ô·¿¤Ë³ÊǼ¤Ç¤­¤ë¥µ¥¤¥º¤ò±Û¤¨¤Æ¤·¤Þ¤¦¡£ -.SH ½àµò +整数変換の結果が、対応する整数型に格納できるサイズを越えてしまう。 +.SH 準拠 .BR fscanf (), .BR scanf (), .BR sscanf () -´Ø¿ô¤Ï C89, C99, POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Îɸ½à¤Ç¤Ï¡¢¥¨¥é¡¼ +関数は C89, C99, POSIX.1-2001 に準拠している。 +これらの標準では、エラー .B ERANGE -¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +は規定されていない。 .PP .B q -»ØÄê»Ò¤Ï +指定子は .I "long long" -¤Î 4.4BSD ¤Ç¤Îµ­½ÒÊýË¡¤Ç¤¢¤ë¡£ -°ìÊý¡¢À°¿ôÊÑ´¹¤Ç¤Î +の 4.4BSD での記述方法である。 +一方、整数変換での .B ll -¤Þ¤¿¤Ï +または .B L -¤Î»ÈÍÑ¤Ï GNU ¤Ç¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ +の使用は GNU での拡張である。 .PP -¤³¤ì¤é¤Î´Ø¿ô¤Î Linux ÈÇ¤Ï +これらの関数の Linux 版は .I GNU .I libio -¥é¥¤¥Ö¥é¥ê¡¼¤ò¸µ¤Ë¤·¤Æ¤¤¤ë¡£ -¤è¤ê´Ê·é¤ÊÀâÌÀ¤Ë¤Ï +ライブラリーを元にしている。 +より簡潔な説明には .I GNU .I libc (glibc-1.08) -¤Î +の .I info -ʸ½ñ¤ËÌܤòÄ̤¹¤³¤È¡£ -.SH Ãí°Õ -GNU C ¥é¥¤¥Ö¥é¥ê (glibc) ¤Ç¤ÏÈóɸ½à¤Î¥ª¥×¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤ª¤ê¡¢ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤ÈÊÑ´¹»ØÄê»Ò +文書に目を通すこと。 +.SH 注意 +GNU C ライブラリ (glibc) では非標準のオプションをサポートしており、 +このオプションを使うと変換指定子 .B %s -¤ä +や \fB%a[\fP\fIrange\fP\fB]\fP -¤Ø¤ÎÆþÎÏʸ»úÎó¤ËÂФ·¤Æ½½Ê¬¤ÊÂ礭¤µ¤Îʸ»úÎó¤ò¥é¥¤¥Ö¥é¥ê¤¬Æ°Åª¤Ë³ÎÊݤ¹¤ë -¤è¤¦¤Ë¤Ê¤ë¡£ -.\" ¤³¤Îµ¡Ç½¤Ï¾¯¤Ê¤¯¤È¤â glibc 2.0 »þÅÀ¤«¤é¸ºß¤·¤Æ¤¤¤ë¤è¤¦¤À¡£ -¤³¤Îµ¡Ç½¤ò»ÈÍѤ¹¤ë¤Ë¤Ï¡¢Ä¹¤µ½¤¾þ»Ò¤È¤·¤Æ +への入力文字列に対して十分な大きさの文字列をライブラリが動的に確保する +ようになる。 +.\" この機能は少なくとも glibc 2.0 時点から存在しているようだ。 +この機能を使用するには、長さ修飾子として .B a -¤ò»ØÄꤹ¤ë (¤·¤¿¤¬¤Ã¤Æ¡¢Á´ÂΤȤ·¤Æ¤Ï +を指定する (したがって、全体としては .B %as -¤ä -\fB%a[\fP\fIrange\fP\fB]\fP ¤È¤Ê¤ë)¡£ -°Ê²¼¤ÎÎã¤Ë¤¢¤ë¤è¤¦¤Ë¡¢¸Æ¤Ó½Ð¤·Â¦¤ÏÊÖ¤µ¤ì¤¿Ê¸»úÎó¤ò +や +\fB%a[\fP\fIrange\fP\fB]\fP となる)。 +以下の例にあるように、呼び出し側は返された文字列を .BR free (3) -¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +しなければならない。 .in +4n .nf @@ -660,84 +660,84 @@ if (n == 1) { .fi .in .PP -¾åµ­¤ÎÎã¤Ë¤¢¤ë¤è¤¦¤Ë¡¢ +上記の例にあるように、 .BR scanf () -¤¬Ê¸»úÎó¤ÎÆɤ߹þ¤ß¤ËÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤À¤±¡¢ +が文字列の読み込みに成功した場合にだけ、 .BR free (3) -¤ò¸Æ¤Ó½Ð¤¹É¬Íפ¬¤¢¤ë¡£ +を呼び出す必要がある。 .PP .I "gcc -std=c99" -¤ä +や .I "gcc -D_ISOC99_SOURCE" -¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï +でコンパイルしたプログラムでは .RB ( _GNU_SOURCE -¤âƱ»þ¤Ë»ØÄꤷ¤Æ¤¤¤Ê¤¤¾ì¹ç)¡¢ +も同時に指定していない場合)、 .B a -½¤¾þ»Ò¤ÏÍøÍѤǤ­¤Ê¤¤¡£ -¾åµ­¤Î¾ì¹ç¡¢ +修飾子は利用できない。 +上記の場合、 .B a -¤Ï (¾å½Ò¤ÎÄ̤ê) ÉâÆ°¾®¿ôÅÀ¿ô¤ò¼¨¤¹ÊÑ´¹»ØÄê»Ò¤È²ò¼á¤µ¤ì¤ë¡£ +は (上述の通り) 浮動小数点数を示す変換指定子と解釈される。 -¥Ð¡¼¥¸¥ç¥ó 2.7 °Ê¹ß¤Ç¤Ï¡¢glibc ¤Ï +バージョン 2.7 以降では、glibc は .B a -½¤¾þ»Ò¤ÈƱ¤¸ÌÜŪ¤Ç +修飾子と同じ目的で .B m -½¤¾þ»Ò¤âÄ󶡤·¤Æ¤¤¤ë¡£ +修飾子も提供している。 .B m -½¤¾þ»Ò¤Ï°Ê²¼¤ÎÍøÅÀ¤¬¤¢¤ë¡£ +修飾子は以下の利点がある。 .IP * 2 .B %c -ÊÑ´¹»ØÄê»Ò¤Ë¤âŬÍѤǤ­¤ë (Î㤨¤Ð -.BR %3mc )¡£ +変換指定子にも適用できる (例えば +.BR %3mc )。 .IP * -ÉâÆ°¾®¿ôÅÀÊÑ´¹»ØÄê»Ò¤È¤·¤Æ¤Î +浮動小数点変換指定子としての .B %a -¤È¤Îʶ¤é¤ï¤·¤µ¤¬Èò¤±¤é¤ì¤ë (¤Þ¤¿ +との紛らわしさが避けられる (また .I "gcc -std=c99" -¤Ê¤É¤Î±Æ¶Á¤âÈò¤±¤é¤ì¤ë)¡£ +などの影響も避けられる)。 .IP * -POSIX.1 ɸ½à¤Î¼¡¤Î²þÄûÈǤǵ¬Äꤵ¤ì¤ë¡£ -.SH ¥Ð¥° -Á´¤Æ¤Î´Ø¿ô¤Ï¡¢´°Á´¤Ë C89 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£¤·¤«¤· -ÄÉ²Ã¤Ç +POSIX.1 標準の次の改訂版で規定される。 +.SH バグ +全ての関数は、完全に C89 に準拠している。しかし +追加で .B q -¤È +と .B a -»ØÄê»Ò¤¬Ä󶡤µ¤ì¤Æ¤ª¤ê¡¢Æ±ÍÍ¤Ë +指定子が提供されており、同様に .B L -¤È +と .B l -»ØÄê»Ò¤ÎÉÕ²ÃŪ¤Ê¿¶¤ëÉñ¤¤¤â¤¢¤ë¡£¸å¼Ô¤Ï¡¢ -C89 ¤ÇÄêµÁ¤µ¤ì¤¿»ØÄê»Ò¤Î¿¶¤ëÉñ¤¤¤òÊѹ¹¤¹¤ë¤â¤Î¤Ê¤Î¤Ç¡¢ -¥Ð¥°¤È¤ß¤Ê¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +指定子の付加的な振る舞いもある。後者は、 +C89 で定義された指定子の振る舞いを変更するものなので、 +バグとみなされるかもしれない。 .PP -ANSI C ¤ÇÄêµÁ¤µ¤ì¤¿·¿½¤¾þ»Ò¤ÈÊÑ´¹»ØÄê»Ò¤ÎÁȤ߹ç¤ï¤»¤ÎÃæ¤Ë¤Ï -°ÕÌ£¤ò¤Ê¤µ¤Ê¤¤¤â¤Î¤¬¤¢¤ë -(Î㤨¤Ð¡¢ -.BR "%Ld" )¡£ -¤³¤ì¤é¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ -Linux ¾å¤Ç¤Ï¤Ï¤Ã¤­¤ê¤ÈÄêµÁ¤µ¤ì¤¿¿¶¤ëÉñ¤¤¤ò¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¤¬¡¢ -¾¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤âƱÍͤˤʤäƤ¤¤ë¤È¤Ï¸Â¤é¤Ê¤¤¡£ -¤½¤ì¤æ¤¨¤Ë¡¢¤Û¤È¤ó¤É¤Î¾ì¹ç¡¢ -ANSI C ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤½¤¾þ»Ò¤ò»ÈÍѤ·¤¿Êý¤¬Îɤ¤¡£ -¤¹¤Ê¤ï¤Á¡¢ +ANSI C で定義された型修飾子と変換指定子の組み合わせの中には +意味をなさないものがある +(例えば、 +.BR "%Ld" )。 +これらが指定された場合、 +Linux 上でははっきりと定義された振る舞いをするかもしれないが、 +他のアーキテクチャでも同様になっているとは限らない。 +それゆえに、ほとんどの場合、 +ANSI C で定義されていない修飾子を使用した方が良い。 +すなわち、 \fBd\fP, \fBi\fP, \fBo\fP, \fBu\fP, \fBx\fP, \fBX\fP -ÊÑ´¹¤ä +変換や .B ll -¤ÈÁȤ߹ç¤ï¤»¤ë¾ì¹ç¤Ë¤Ï¡¢ +と組み合わせる場合には、 .B L -¤ÎÂå¤ï¤ê¤Ë +の代わりに .B q -¤ò»ÈÍѤ·¤¿Êý¤¬Îɤ¤¡£ +を使用した方が良い。 .PP .B q -¤Î»ÈÍÑÊýË¡¤Ï 4.4BSD ¤ÈƱ¤¸¤Ç¤Ï¤Ê¤¤¡£ -4.4BSD ¤Ç¤Ï +の使用方法は 4.4BSD と同じではない。 +4.4BSD では .B q -¤Ï +は .B L -¤ÈƱÅù¤ËÉâÆ°¾®¿ô¤ÎÊÑ´¹¤Ë»ÈÍѤµ¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +と同等に浮動小数の変換に使用される。 +.SH 関連項目 .BR getc (3), .BR printf (3) .BR setlocale (3), diff --git a/release/man3/sched_getcpu.3 b/release/man3/sched_getcpu.3 index 13cdd411..9215a28f 100644 --- a/release/man3/sched_getcpu.3 +++ b/release/man3/sched_getcpu.3 @@ -26,38 +26,38 @@ .\" Translated 2008-08-21, Akihiro MOTOKI , LDP v3.04 .\" .TH SCHED_GETCPU 3 2010-10-31 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sched_getcpu \- ¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë CPU ¤òÃΤë -.SH ½ñ¼° +.SH 名前 +sched_getcpu \- 呼び出したスレッドが実行されている CPU を知る +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .\" Really:_BSD_SOURCE || _SVID_SOURCE .B #include .B int sched_getcpu(void); .fi -.SH ÀâÌÀ +.SH 説明 .BR sched_getcpu () -¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤¬¸½ºß¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë CPU ¤ÎÈÖ¹æ¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +は、呼び出したスレッドが現在実行されている CPU の番号を返す。 +.SH 返り値 +成功すると、 .BR sched_getcpu () -¤ÏÈóÉé¤Î CPU ÈÖ¹æ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は非負の CPU 番号を返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値を設定する。 +.SH エラー .TP .B ENOSYS -¤³¤Î¥«¡¼¥Í¥ë¤Ç¤Ï +このカーネルでは .BR getcpu (2) -¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤Î´Ø¿ô¤Ï glibc 2.6 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH ½àµò +が実装されていない。 +.SH バージョン +この関数は glibc 2.6 以降で利用可能である。 +.SH 準拠 .BR sched_getcpu () -¤Ï glibc ¸ÇÍ­¤Ç¤¢¤ë¡£ -.SH Ãí°Õ +は glibc 固有である。 +.SH 注意 .in +4n .nf @@ -65,9 +65,9 @@ cpu = sched_getcpu(); .fi .in -¤Ï¡¢°Ê²¼¤Î +は、以下の .BR getcpu (2) -¤Î¸Æ¤Ó½Ð¤·¤ÈÅù²Á¤Ç¤¢¤ë¡£ +の呼び出しと等価である。 .in +4n .nf @@ -76,5 +76,5 @@ s = getcpu(&c, NULL, NULL); cpu = (s == \-1) ? s : c; .fi .in -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getcpu (2) diff --git a/release/man3/seekdir.3 b/release/man3/seekdir.3 index 4ce555ea..a7e7401b 100644 --- a/release/man3/seekdir.3 +++ b/release/man3/seekdir.3 @@ -33,10 +33,10 @@ .\" Updated 2009-04-24, Akihiro MOTOKI , LDP v3.20 .\" .TH SEEKDIR 3 2009-03-11 "" "Linux Programmer's Manual" -.SH ̾Á° -seekdir \- ¼¡¤Î readdir() ¸Æ¤Ó½Ð¤·¤Î¤¿¤á¤Ë¡¢¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥àÃæ¤Î°ÌÃÖ¤ò -ÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +seekdir \- 次の readdir() 呼び出しのために、ディレクトリストリーム中の位置を +設定する +.SH 書式 .nf .B #include .sp @@ -44,42 +44,42 @@ seekdir \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR seekdir (): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR seekdir () -´Ø¿ô¤Ï¡¢¼¡¤Î +関数は、次の .BR readdir (3) -¸Æ¤Ó½Ð¤·¤Î³«»Ï°ÌÃ֤Ǥ¢¤ë¡¢ -¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤ÎÃæ¤Ç¤Î°ÌÃÖ¤òÀßÄꤹ¤ë¡£ +呼び出しの開始位置である、 +ディレクトリストリームの中での位置を設定する。 .BR seekdir () -¤Ï +は .BR telldir (3) -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë +によって返される .I offset -¤È¤È¤â¤Ë»ÈÍѤµ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +とともに使用されるべきである。 +.SH 返り値 .BR seekdir () -´Ø¿ô¤Ï¡¢ÃͤòÊÖ¤µ¤Ê¤¤¡£ -.SH ½àµò +関数は、値を返さない。 +.SH 準拠 4.3BSD, POSIX.1-2001. -.SH Ãí°Õ -¥Ð¡¼¥¸¥ç¥ó 2.1.1 °ÊÁ°¤Î glibc ¤Ç¤Ï¡¢ +.SH 注意 +バージョン 2.1.1 以前の glibc では、 .I offset -°ú¤­¿ô¤Î·¿¤Ï +引き数の型は .I off_t -¤Ç¤¢¤Ã¤¿¡£ -POSIX.1-2001 ¤Ç¤Ï +であった。 +POSIX.1-2001 では .I long -¤Èµ¬Äꤵ¤ì¤Æ¤ª¤ê¡¢glibc 2.1.2 °Ê¹ß¤Ç¤Ï +と規定されており、glibc 2.1.2 以降では .I long -¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +になっている。 +.SH 関連項目 .BR lseek (2), .BR closedir (3), .BR opendir (3), diff --git a/release/man3/sem_close.3 b/release/man3/sem_close.3 index b86527b6..06f2658a 100644 --- a/release/man3/sem_close.3 +++ b/release/man3/sem_close.3 @@ -27,41 +27,41 @@ .\" Translated 2006-04-18, Akihiro MOTOKI .\" .TH SEM_CLOSE 3 2006-03-25 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sem_close \- ̾Á°ÉÕ¤­¥»¥Þ¥Õ¥©¤ò¥¯¥í¡¼¥º¤¹¤ë -.SH ½ñ¼° +.SH 名前 +sem_close \- 名前付きセマフォをクローズする +.SH 書式 .nf .B #include .sp .BI "int sem_close(sem_t *" sem ); .fi .sp -\fI\-lrt\fP ¤Þ¤¿¤Ï \fI\-pthread\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lrt\fP または \fI\-pthread\fP でリンクする。 +.SH 説明 .BR sem_close () -¤Ï +は .I sem -¤¬»²¾È¤¹¤ë̾Á°ÉÕ¤­¥»¥Þ¥Õ¥©¤ò¥¯¥í¡¼¥º¤·¡¢ -¤³¤Î¥»¥Þ¥Õ¥©ÍѤ˸ƤӽФ·¸µ¥×¥í¥»¥¹¤Ë¥·¥¹¥Æ¥à¤¬³ä¤êÅö¤Æ¤Æ¤¤¤¿ -¥ê¥½¡¼¥¹¤ò²òÊü¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +が参照する名前付きセマフォをクローズし、 +このセマフォ用に呼び出し元プロセスにシステムが割り当てていた +リソースを解放できるようにする。 +.SH 返り値 +成功すると、 .BR sem_close () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値をセットする。 +.SH エラー .TP .B EINVAL .I sem -¤ÏÍ­¸ú¤Ê¥»¥Þ¥Õ¥©¤Ç¤Ï¤Ê¤¤¡£ -.SH ½àµò +は有効なセマフォではない。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ -¥ª¡¼¥×¥ó¤µ¤ì¤¿¤¹¤Ù¤Æ¤Î̾Á°ÉÕ¤­¥»¥Þ¥Õ¥©¤Ï¡¢¥×¥í¥»¥¹½ªÎ»»þ¡¢¤â¤·¤¯¤Ï +.SH 注意 +オープンされたすべての名前付きセマフォは、プロセス終了時、もしくは .BR execve (2) -¼Â¹Ô»þ¤Ë¼«Æ°Åª¤Ë¥¯¥í¡¼¥º¤µ¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +実行時に自動的にクローズされる。 +.SH 関連項目 .BR sem_getvalue (3), .BR sem_open (3), .BR sem_post (3), diff --git a/release/man3/sem_destroy.3 b/release/man3/sem_destroy.3 index 35791b7c..7be4432b 100644 --- a/release/man3/sem_destroy.3 +++ b/release/man3/sem_destroy.3 @@ -27,54 +27,54 @@ .\" Translated 2006-04-18, Akihiro MOTOKI .\" .TH SEM_DESTROY 3 2006-03-25 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sem_destroy \- ̾Á°¤Ê¤·¥»¥Þ¥Õ¥©¤òÇË´þ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +sem_destroy \- 名前なしセマフォを破棄する +.SH 書式 .nf .B #include .sp .BI "int sem_destroy(sem_t *" sem ); .fi .sp -\fI\-lrt\fP ¤Þ¤¿¤Ï \fI\-pthread\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lrt\fP または \fI\-pthread\fP でリンクする。 +.SH 説明 .BR sem_destroy () -¤Ï +は .I sem -¤¬»Ø¤¹¥¢¥É¥ì¥¹¤Ë¤¢¤ë̾Á°¤Ê¤·¥»¥Þ¥Õ¥©¤òÇË´þ¤¹¤ë¡£ +が指すアドレスにある名前なしセマフォを破棄する。 .BR sem_destroy () -¤ò»È¤Ã¤ÆÇË´þ¤¹¤ë¤Î¤Ï¡¢ +を使って破棄するのは、 .BR sem_init (3) -¤Ç½é´ü²½¤·¤¿¥»¥Þ¥Õ¥©¤À¤±¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +で初期化したセマフォだけにすべきである。 -¾¤Î¥×¥í¥»¥¹¤ä¥¹¥ì¥Ã¥É¤¬ +他のプロセスやスレッドが .RB ( sem_wait (3) -¤Ç) ÂÔ¤Á¾õÂ֤ˤʤäƤ¤¤ë¥»¥Þ¥Õ¥©¤òÇË´þ¤·¤¿¾ì¹ç¤ÎµóÆ°¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +で) 待ち状態になっているセマフォを破棄した場合の挙動は定義されていない。 -¤¹¤Ç¤ËÇË´þ¤µ¤ì¤¿¥»¥Þ¥Õ¥©¤ò¡¢ +すでに破棄されたセマフォを、 .BR sem_init (3) -¤ò»È¤Ã¤ÆºÆ½é´ü²½¤µ¤ì¤ëÁ°¤Ë»ÈÍѤ·¤¿¾ì¹ç¡¢¤½¤Î·ë²Ì¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +を使って再初期化される前に使用した場合、その結果は未定義である。 +.SH 返り値 +成功すると、 .BR sem_destroy () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値をセットする。 +.SH エラー .TP .B EINVAL .I sem -¤ÏÍ­¸ú¤Ê¥»¥Þ¥Õ¥©¤Ç¤Ï¤Ê¤¤¡£ -.SH ½àµò +は有効なセマフォではない。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ -̾Á°¤Ê¤·¥»¥Þ¥Õ¥©¤Ï¡¢¤½¤Î¥»¥Þ¥Õ¥©¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¥á¥â¥ê¤¬²òÊü¤µ¤ì¤ëÁ°¤Ë¡¢ +.SH 注意 +名前なしセマフォは、そのセマフォが置かれているメモリが解放される前に、 .BR sem_destroy () -¤ò»È¤Ã¤ÆÇË´þ¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£¤³¤ì¤ò¹Ô¤ï¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¼ÂÁõ¤Ë¤è¤Ã¤Æ¤Ï -¥ê¥½¡¼¥¹¤Î¥ê¡¼¥¯¤¬µ¯¤³¤ê¤¨¤ë¡£ -.\" NPTL ¤Ç¤Ï¥ê¡¼¥¯¤Ïµ¯¤³¤é¤Ê¤¤¡£sem_destroy () ¤Ï²¿¤â¤·¤Ê¤¤¤À¤±.. -.SH ´ØÏ¢¹àÌÜ +を使って破棄しておくべきである。これを行わなかった場合、実装によっては +リソースのリークが起こりえる。 +.\" NPTL ではリークは起こらない。sem_destroy () は何もしないだけ.. +.SH 関連項目 .BR sem_init (3), .BR sem_post (3), .BR sem_wait (3), diff --git a/release/man3/sem_getvalue.3 b/release/man3/sem_getvalue.3 index a8832bf7..c77341b7 100644 --- a/release/man3/sem_getvalue.3 +++ b/release/man3/sem_getvalue.3 @@ -27,51 +27,51 @@ .\" Translated 2006-04-18, Akihiro MOTOKI .\" .TH SEM_GETVALUE 3 2006-03-25 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sem_getvalue \- ¥»¥Þ¥Õ¥©¤ÎÃͤò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +sem_getvalue \- セマフォの値を取得する +.SH 書式 .nf .B #include .sp .BI "int sem_getvalue(sem_t *" sem ", int *" sval ); .fi .sp -\fI\-lrt\fP ¤Þ¤¿¤Ï \fI\-pthread\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lrt\fP または \fI\-pthread\fP でリンクする。 +.SH 説明 .BR sem_getvalue () -¤Ï¡¢ +は、 .I sem -¤¬»Ø¤¹¥»¥Þ¥Õ¥©¤Î¸½ºß¤ÎÃͤò +が指すセマフォの現在の値を .I sval -¤Ç»Ø¤¹À°¿ô¤Ë³ÊǼ¤¹¤ë¡£ +で指す整数に格納する。 -POSIX.1-2001 ¤Ë¤è¤ë¤È¡¢ -1¤Ä°Ê¾å¤Î¥×¥í¥»¥¹¤«¥¹¥ì¥Ã¥É¤¬ +POSIX.1-2001 によると、 +1つ以上のプロセスかスレッドが .BR sem_wait (3) -¤Ç¥»¥Þ¥Õ¥©¤Î¥í¥Ã¥¯ÂÔ¤Á¤ÇÄä»ß¤·¤Æ¤¤¤ë¾ì¹ç¡¢ +でセマフォのロック待ちで停止している場合、 .I sval -¤ÇÊÖ¤µ¤ì¤ëÃÍ¤Ï 0 ¤â¤·¤¯¤ÏÉé¤ÎÃͤΤ¤¤º¤ì¤«¤È¤Ê¤ë¡£ -Éé¤ÎÃͤξì¹ç¡¢¤½¤ÎÀäÂÐÃÍ¤Ï +で返される値は 0 もしくは負の値のいずれかとなる。 +負の値の場合、その絶対値は .BR sem_wait (3) -¤Ç¸½ºßÄä»ß¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤«¥¹¥ì¥Ã¥É¤Î¹ç·×¿ô¤ËÅù¤·¤¤¡£ -Linux ¤ÏÁ°¼Ô¤ÎÆ°ºî (0 ¤òÊÖ¤¹Æ°ºî) ¤òºÎÍѤ·¤Æ¤¤¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +で現在停止しているプロセスかスレッドの合計数に等しい。 +Linux は前者の動作 (0 を返す動作) を採用している。 +.SH 返り値 +成功すると、 .BR sem_getvalue () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値をセットする。 +.SH エラー .TP .B EINVAL .I sem -¤ÏÍ­¸ú¤Ê¥»¥Þ¥Õ¥©¤Ç¤Ï¤Ê¤¤¡£ -.SH ½àµò +は有効なセマフォではない。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .BR sem_getvalue () -¤¬ÊÖ¤ë¤È¤­¤Ë¤Ï¡¢¤¹¤Ç¤Ë¥»¥Þ¥Õ¥©¤ÎÃͤÏÊѲ½¤·¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +が返るときには、すでにセマフォの値は変化している可能性がある。 +.SH 関連項目 .BR sem_post (3), .BR sem_wait (3), .BR sem_overview (7) diff --git a/release/man3/sem_init.3 b/release/man3/sem_init.3 index 68048006..6dd1a1f7 100644 --- a/release/man3/sem_init.3 +++ b/release/man3/sem_init.3 @@ -27,77 +27,77 @@ .\" Translated 2006-04-18, Akihiro MOTOKI .\" .TH SEM_INIT 3 2008-07-27 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sem_init \- ̾Á°¤Ê¤·¥»¥Þ¥Õ¥©¤ò½é´ü²½¤¹¤ë -.SH ½ñ¼° +.SH 名前 +sem_init \- 名前なしセマフォを初期化する +.SH 書式 .nf .B #include .sp .BI "int sem_init(sem_t *" sem ", int " pshared ", unsigned int " value ); .fi .sp -\fI\-lrt\fP ¤Þ¤¿¤Ï \fI\-pthread\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lrt\fP または \fI\-pthread\fP でリンクする。 +.SH 説明 .BR sem_init () -¤Ï¡¢ +は、 .I sem -¤¬»Ø¤¹¥¢¥É¥ì¥¹¤Ë¤¢¤ë̾Á°¤Ê¤·¥»¥Þ¥Õ¥©¤ò½é´ü²½¤¹¤ë¡£ +が指すアドレスにある名前なしセマフォを初期化する。 .I value -°ú¤­¿ô¤Ï¤½¤Î¥»¥Þ¥Õ¥©¤Î½é´üÃͤò»ØÄꤹ¤ë¡£ +引き数はそのセマフォの初期値を指定する。 .I pshared -°ú¤­¿ô¤Ï¡¢¤³¤Î¥»¥Þ¥Õ¥©¤¬¥×¥í¥»¥¹Æâ¤Î¥¹¥ì¥Ã¥É´Ö¤Ç¶¦Í­¤µ¤ì¤ë¤Î¤«¡¢ -¥×¥í¥»¥¹´Ö¤Ç¶¦Í­¤µ¤ì¤ë¤Î¤«¡¢¤ò¼¨¤¹¡£ +引き数は、このセマフォがプロセス内のスレッド間で共有されるのか、 +プロセス間で共有されるのか、を示す。 .I pshared -¤¬ 0 ¤Î¾ì¹ç¡¢¥»¥Þ¥Õ¥©¤Ï¥×¥í¥»¥¹Æâ¤Î¥¹¥ì¥Ã¥É´Ö¤Ç¶¦Í­¤µ¤ì¤ë¡£ -¥»¥Þ¥Õ¥©¤Ï¤¹¤Ù¤Æ¤Î¥¹¥ì¥Ã¥É¤«¤é»²¾È²Äǽ¤Ê¥¢¥É¥ì¥¹¤ËÇÛÃÖ¤¹¤Ù¤­¤Ç¤¢¤ë -(Î㤨¤Ð¡¢Âç°èÊÑ¿ô¤ä¡¢¥Ò¡¼¥×¾å¤ËưŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿ÊÑ¿ô¤Ê¤É)¡£ +が 0 の場合、セマフォはプロセス内のスレッド間で共有される。 +セマフォはすべてのスレッドから参照可能なアドレスに配置すべきである +(例えば、大域変数や、ヒープ上に動的に割り当てられた変数など)。 .I pshared -¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢¥»¥Þ¥Õ¥©¤Ï¥×¥í¥»¥¹´Ö¤Ç¶¦Í­¤µ¤ì¤ë¡£¥»¥Þ¥Õ¥©¤Ï -¶¦Í­¥á¥â¥êÎΰè¤ËÇÛÃÖ¤¹¤Ù¤­¤Ç¤¢¤ë +が 0 以外の場合、セマフォはプロセス間で共有される。セマフォは +共有メモリ領域に配置すべきである .RB ( shm_open (3), .BR mmap (2), .BR shmget (2) -»²¾È)¡£ +参照)。 .RB ( fork (2) -¤ÇÀ¸À®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤Î¥á¥â¥ê¥Þ¥Ã¥Ô¥ó¥°¤ò·Ñ¾µ¤¹¤ë¤¿¤á¡¢ -»Ò¥×¥í¥»¥¹¤â¥»¥Þ¥Õ¥©¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£) -¶¦Í­¥á¥â¥êÎΰè¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¥×¥í¥»¥¹¤Ê¤é¤Ð¡¢¤É¤Î¥×¥í¥»¥¹¤Ç¤â +で生成された子プロセスは親プロセスのメモリマッピングを継承するため、 +子プロセスもセマフォにアクセスできる。) +共有メモリ領域にアクセスできるプロセスならば、どのプロセスでも .BR sem_post (3) -¤ä +や .BR sem_wait (3) -¤Ê¤É¤ò»È¤Ã¤Æ¥»¥Þ¥Õ¥©¤òÁàºî¤Ç¤­¤ë¡£ +などを使ってセマフォを操作できる。 -¤¹¤Ç¤Ë½é´ü²½ºÑ¤Î¥»¥Þ¥Õ¥©¤ò½é´ü²½¤·¤¿¾ì¹ç¤ÎµóÆ°¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +すでに初期化済のセマフォを初期化した場合の挙動は定義されていない。 +.SH 返り値 +成功すると、 .BR sem_init () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値をセットする。 +.SH エラー .TP .B EINVAL .I value -¤¬ +が .B SEM_VALUE_MAX -¤òĶ¤¨¤Æ¤¤¤ë¡£ +を超えている。 .TP .B ENOSYS .I pshared -¤¬ 0 °Ê³°¤À¤¬¡¢¥·¥¹¥Æ¥à¤¬¥×¥í¥»¥¹¶¦Í­¥»¥Þ¥Õ¥©¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤ +が 0 以外だが、システムがプロセス共有セマフォをサポートしていない .RB ( sem_overview (7) -»²¾È)¡£ -.SH ½àµò +参照)。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ -̯¤Ê¤³¤È¤Ë¡¢POSIX.1-2001 ¤Ï +.SH 注意 +妙なことに、POSIX.1-2001 は .BR sem_init () -¤¬À®¸ù¤·¤¿¾ì¹ç¤ËÊÖ¤¹¤Ù¤­Ãͤòµ¬Äꤷ¤Æ¤¤¤Ê¤¤¡£ -POSIX.1-2008 ¤Ç¤Ï¤³¤ì¤¬½¤Àµ¤µ¤ì¡¢À®¸ù»þ¤Ë¤Ï 0 ¤òÊÖ¤¹¤³¤È¤¬µ¬Äꤵ¤ì¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +が成功した場合に返すべき値を規定していない。 +POSIX.1-2008 ではこれが修正され、成功時には 0 を返すことが規定された。 +.SH 関連項目 .BR sem_destroy (3), .BR sem_post (3), .BR sem_wait (3), diff --git a/release/man3/sem_open.3 b/release/man3/sem_open.3 index d40650f1..aa376302 100644 --- a/release/man3/sem_open.3 +++ b/release/man3/sem_open.3 @@ -28,9 +28,9 @@ .\" Updated 2009-02-23, Akihiro MOTOKI , LDP v3.19 .\" .TH SEM_OPEN 3 2009-02-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sem_open \- ̾Á°ÉÕ¤­¥»¥Þ¥Õ¥©¤ò½é´ü²½¤·¡¢¥ª¡¼¥×¥ó¤¹¤ë -.SH ½ñ¼° +.SH 名前 +sem_open \- 名前付きセマフォを初期化し、オープンする +.SH 書式 .nf .BR "#include " " /* For O_* constants */" .BR "#include " " /* For mode constants */" @@ -41,133 +41,133 @@ sem_open \- ̾ .BI " mode_t " mode ", unsigned int " value ); .fi .sp -\fI\-lrt\fP ¤Þ¤¿¤Ï \fI\-pthread\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lrt\fP または \fI\-pthread\fP でリンクする。 +.SH 説明 .BR sem_open () -¤Ï¡¢¿·µ¬¤Î POSIX ¥»¥Þ¥Õ¥©¤òºîÀ®¤¹¤ë¤«¡¢´û¸¤Î¥»¥Þ¥Õ¥©¤Î¥ª¡¼¥×¥ó¤ò¹Ô¤¦¡£ -¥»¥Þ¥Õ¥©¤Ï +は、新規の POSIX セマフォを作成するか、既存のセマフォのオープンを行う。 +セマフォは .I name -¤Ç¼±Ê̤µ¤ì¤ë¡£ +で識別される。 .I name -¤Î¹½À®¤Î¾ÜºÙ¤Ï +の構成の詳細は .BR sem_overview (7) -¤ò»²¾È¡£ +を参照。 .I oflag -°ú¤­¿ô¤Ë¤Ï¡¢ +引き数には、 .BR sem_open () -¤ÎÆ°ºî¤òÀ©¸æ¤¹¤ë¥Õ¥é¥°¤ò»ØÄꤹ¤ë -(oflag ¤ÎÃͤÎÄêµÁ¤Ï +の動作を制御するフラグを指定する +(oflag の値の定義は .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ë¤è¤êÆÀ¤é¤ì¤ë)¡£ +のインクルードにより得られる)。 .I oflag -¤Ë +に .B O_CREAT -¤¬»ØÄꤵ¤ì¤ë¤È¡¢¤Þ¤À¸ºß¤·¤Ê¤¤¾ì¹ç¤Ë¤Ï¤½¤Î¥»¥Þ¥Õ¥©¤¬ºîÀ®¤µ¤ì¤ë¡£ -¥»¥Þ¥Õ¥©¤Î½êÍ­¼Ô (¥æ¡¼¥¶ ID)¡¢¥°¥ë¡¼¥×½êÍ­¸¢ (¥°¥ë¡¼¥× ID) ¤Ë¤Ï¡¢ -¤½¤ì¤¾¤ì¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú UID¡¢¼Â¸ú GID ¤¬ÀßÄꤵ¤ì¤ë¡£ -.\" ¼ÂºÝ¤Ï¡¢Linux ¤Ç¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à ID ¤¬»ÈÍѤµ¤ì¤ë¡£ +が指定されると、まだ存在しない場合にはそのセマフォが作成される。 +セマフォの所有者 (ユーザ ID)、グループ所有権 (グループ ID) には、 +それぞれ呼び出し元プロセスの実効 UID、実効 GID が設定される。 +.\" 実際は、Linux ではファイルシステム ID が使用される。 .I oflag -¤Ë +に .B O_CREAT -¤È +と .B O_EXCL -¤ÎξÊý¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢»ØÄꤵ¤ì¤¿Ì¾Á° +の両方が指定された場合、指定された名前 .I name -¤Î¥»¥Þ¥Õ¥©¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¤È¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ +のセマフォがすでに存在するとエラーが返される。 .PP .I oflag -¤Ë +に .B O_CREAT -¤ò»ØÄꤹ¤ë¾ì¹ç¡¢¤µ¤é¤Ë°ú¤­¿ô¤¬ 2 ¤ÄɬÍפǤ¢¤ë¡£ +を指定する場合、さらに引き数が 2 つ必要である。 .I mode -°ú¤­¿ô¤Ï¡¢ +引き数は、 .BR open (2) -¤ÈƱ¤¸¤è¤¦¤Ë¡¢¿·¤·¤¤¥»¥Þ¥Õ¥©¤ËÀßÄꤵ¤ì¤ë¥¢¥¯¥»¥¹µö²Ä (permission) ¤ò -»ØÄꤹ¤ë¡£µö²ÄÀßÄê¤Ï¥×¥í¥»¥¹¤Î umask ¤Ç¥Þ¥¹¥¯¤µ¤ì¤ë -(µö²Ä¥Ó¥Ã¥È¤Î¥·¥ó¥Ü¥ëÄêµÁ¤Ï +と同じように、新しいセマフォに設定されるアクセス許可 (permission) を +指定する。許可設定はプロセスの umask でマスクされる +(許可ビットのシンボル定義は .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ë¤è¤êÆÀ¤é¤ì¤ë)¡£ -¥»¥Þ¥Õ¥©¤Ë¥¢¥¯¥»¥¹¤·¤è¤¦¤È¤¹¤ë¥æ¡¼¥¶¤Ï¡¢Æɤ߽Ф·µö²Ä¤È½ñ¤­¹þ¤ßµö²Ä¤Î -ξÊý¤òÆÀ¤ëɬÍפ¬¤¢¤ë¡£ +のインクルードにより得られる)。 +セマフォにアクセスしようとするユーザは、読み出し許可と書き込み許可の +両方を得る必要がある。 .I value -°ú¤­¿ô¤Ï¿·¤·¤¤¥»¥Þ¥Õ¥©¤Î½é´üÃͤò»ØÄꤹ¤ë¡£ +引き数は新しいセマフォの初期値を指定する。 .B O_CREAT -¤¬»ØÄꤵ¤ì¡¢»ØÄꤷ¤¿Ì¾Á° +が指定され、指定した名前 .I name -¤Î¥»¥Þ¥Õ¥©¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢ +のセマフォがすでに存在する場合、 .I mode -¤È +と .I value -¤Ï̵»ë¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +は無視される。 +.SH 返り値 +成功すると、 .BR sem_open () -¤Ï¿·¤·¤¤¥»¥Þ¥Õ¥©¤Î¥¢¥É¥ì¥¹¤òÊÖ¤¹¡£ -¤³¤Î¥¢¥É¥ì¥¹¤Ï¾¤Î¥»¥Þ¥Õ¥©´ØÏ¢¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹ºÝ¤Ë»ÈÍѤµ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ +は新しいセマフォのアドレスを返す。 +このアドレスは他のセマフォ関連の関数を呼び出す際に使用される。 +エラーの場合、 .BR sem_open () -¤Ï +は .B SEM_FAILED -¤òÊÖ¤·¡¢ +を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値をセットする。 +.SH エラー .TP .B EACCES -¤½¤Î¥»¥Þ¥Õ¥©¤¬Â¸ºß¤¹¤ë¤¬¡¢¸Æ¤Ó½Ð¤·¸µ¤Ë¤Ï¤½¤Î¥»¥Þ¥Õ¥©¤ò¥ª¡¼¥×¥ó¤¹¤ë -µö²Ä¤¬¤Ê¤¤¡£ +そのセマフォが存在するが、呼び出し元にはそのセマフォをオープンする +許可がない。 .TP .B EEXIST .I oflag -¤Ë +に .B O_CREAT -¤È +と .B O_EXCL -¤ÎξÊý¤¬»ØÄꤵ¤ì¤¿¤¬¡¢ +の両方が指定されたが、 .I name -¤È¤¤¤¦Ì¾Á°¤Î¥»¥Þ¥Õ¥©¤Ï¤¹¤Ç¤Ë¸ºß¤¹¤ë¡£ +という名前のセマフォはすでに存在する。 .TP .B EINVAL .I value -¤¬ +が .B SEM_VALUE_MAX -¤è¤ê¤âÂ礭¤¤¡£ +よりも大きい。 .TP .B EINVAL .I name -¤¬ "/" ¤À¤±¤Ç¹½À®¤µ¤ì¡¢¤½¤Î¸å¤í¤Ë¾¤Îʸ»ú¤¬Â³¤¤¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +が "/" だけで構成され、その後ろに他の文字が続いていなかった。 .TP .B EMFILE -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¿ô¤¬¤¹¤Ç¤Ë¤½¤Î¥×¥í¥»¥¹¤Ë¤ª¤±¤ë¾å¸Â¤Ë㤷¤Æ¤¤¤ë¡£ +オープンされたファイル数がすでにそのプロセスにおける上限に達している。 .TP .B ENAMETOOLONG .I name -¤¬Ä¹¤¹¤®¤ë¡£ +が長すぎる。 .TP .B ENFILE -¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ëÁí¿ô¤¬¥·¥¹¥Æ¥àÁ´ÂΤǤξå¸Â¤Ë㤷¤Æ¤¤¤ë¡£ +オープンされたファイル総数がシステム全体での上限に達している。 .TP .B ENOENT .I oflag -¤Ë +に .B O_CREAT -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤ª¤é¤º¡¢ +フラグが指定されておらず、 .I name -¤È¤¤¤¦Ì¾Á°¤Î¥»¥Þ¥Õ¥©¤â¸ºß¤·¤Ê¤¤¡£ -¤Þ¤¿¤Ï¡¢ +という名前のセマフォも存在しない。 +または、 .\" this error can occur if we have a name of the (nonportable) form .\" /dir/name, and the directory /dev/shm/dir does not exist. .B O_CREAT -¤¬»ØÄꤵ¤ì¤¿¤¬¡¢ +が指定されたが、 .I name -¤¬Å¬ÀڤʷÁ¼°¤Ç¤Ï¤Ê¤«¤Ã¤¿¡£ +が適切な形式ではなかった。 .TP .B ENOMEM -½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ -.SH ½àµò +十分なメモリがない。 +.SH 準拠 POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sem_close (3), .BR sem_getvalue (3), .BR sem_post (3), diff --git a/release/man3/sem_post.3 b/release/man3/sem_post.3 index d035ff06..ec718e4a 100644 --- a/release/man3/sem_post.3 +++ b/release/man3/sem_post.3 @@ -27,50 +27,50 @@ .\" Translated 2006-04-18, Akihiro MOTOKI .\" .TH SEM_POST 3 2009-03-30 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sem_post \- ¥»¥Þ¥Õ¥©¤Î¥í¥Ã¥¯¤ò²ò½ü¤¹¤ë -.SH ½ñ¼° +.SH 名前 +sem_post \- セマフォのロックを解除する +.SH 書式 .nf .B #include .sp .BI "int sem_post(sem_t *" sem ); .fi .sp -\fI\-lrt\fP ¤Þ¤¿¤Ï \fI\-pthread\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lrt\fP または \fI\-pthread\fP でリンクする。 +.SH 説明 .BR sem_post () -¤Ï¡¢ +は、 .I sem -¤¬»Ø¤¹¥»¥Þ¥Õ¥©¤ÎÃͤò 1 Áý¤ä¤¹ (¥í¥Ã¥¯¤ò²ò½ü¤¹¤ë)¡£¤½¤Î·ë²Ì¡¢ -¥»¥Þ¥Õ¥©¤ÎÃÍ¤Ï 0 ¤è¤êÂ礭¤ÊÃͤËÊѲ½¤·¡¢ +が指すセマフォの値を 1 増やす (ロックを解除する)。その結果、 +セマフォの値は 0 より大きな値に変化し、 .BR sem_wait (3) -¤ÇÄä»ß¤·¤Æ¤¤¤ëÊÌ¤Î¥×¥í¥»¥¹¤ä¥¹¥ì¥Ã¥É¤¬¸Æ¤Óµ¯¤³¤µ¤ì¡¢ -¥»¥Þ¥Õ¥©¤ò¥í¥Ã¥¯¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +で停止している別のプロセスやスレッドが呼び起こされ、 +セマフォをロックできるようになる。 +.SH 返り値 +成功すると、 .BR sem_post () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢¥»¥Þ¥Õ¥©¤ÎÃͤÏÊѹ¹¤»¤º¤Ë¡¢ \-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、セマフォの値は変更せずに、 \-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値をセットする。 +.SH エラー .TP .B EINVAL .I sem -¤ÏÍ­¸ú¤Ê¥»¥Þ¥Õ¥©¤Ç¤Ï¤Ê¤¤¡£ +は有効なセマフォではない。 .TP .B EOVERFLOW .\" Added in POSIX.1-2008 TC1 (Austin Interpretation 213) -°ì¤Ä¤Î¥»¥Þ¥Õ¥©¤Ç»ÈÍѤǤ­¤ëºÇÂçÃͤòĶ¤¨¤Æ¤·¤Þ¤¦¤È¤³¤í¤Ç¤¢¤Ã¤¿¡£ -.SH ½àµò +一つのセマフォで使用できる最大値を超えてしまうところであった。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .BR sem_post () -¤Ï async-signal-safe ¤Ç¤¢¤ë¡£ -¤Ä¤Þ¤ê¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ÎÃæ¤Ç¤â°ÂÁ´¤Ë¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ -.SH Îã +は async-signal-safe である。 +つまり、シグナルハンドラの中でも安全に呼び出すことができる。 +.SH 例 .BR sem_wait (3) -»²¾È¡£ -.SH ´ØÏ¢¹àÌÜ +参照。 +.SH 関連項目 .BR sem_getvalue (3), .BR sem_wait (3), .BR sem_overview (7) diff --git a/release/man3/sem_unlink.3 b/release/man3/sem_unlink.3 index a23d7365..2e86935a 100644 --- a/release/man3/sem_unlink.3 +++ b/release/man3/sem_unlink.3 @@ -27,46 +27,46 @@ .\" Translated 2006-04-18, Akihiro MOTOKI .\" .TH SEM_UNLINK 3 2006-03-25 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sem_unlink \- ̾Á°ÉÕ¤­¥»¥Þ¥Õ¥©¤òºï½ü¤¹¤ë -.SH ½ñ¼° +.SH 名前 +sem_unlink \- 名前付きセマフォを削除する +.SH 書式 .nf .B #include .sp .BI "int sem_unlink(const char *" name ); .fi .sp -\fI\-lrt\fP ¤Þ¤¿¤Ï \fI\-pthread\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lrt\fP または \fI\-pthread\fP でリンクする。 +.SH 説明 .BR sem_unlink () -¤Ï¡¢ +は、 .I name -¤Ç»²¾È¤µ¤ì¤ë̾Á°ÉÕ¤­¥»¥Þ¥Õ¥©¤òºï½ü¤¹¤ë¡£ -¥»¥Þ¥Õ¥©¤Î̾Á°¤Ïľ¤Á¤Ëºï½ü¤µ¤ì¤ë¡£ -¤³¤Î¥»¥Þ¥Õ¥©¤ò¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¾¤Î¤¹¤Ù¤Æ¤Î¥×¥í¥»¥¹¤¬¥»¥Þ¥Õ¥©¤ò -ÊĤ¸¤Æ½é¤á¤Æ¥»¥Þ¥Õ¥©¤Îºï½ü¤¬¹Ô¤ï¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +で参照される名前付きセマフォを削除する。 +セマフォの名前は直ちに削除される。 +このセマフォをオープンしている他のすべてのプロセスがセマフォを +閉じて初めてセマフォの削除が行われる。 +.SH 返り値 +成功すると、 .BR sem_unlink () -¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値をセットする。 +.SH エラー .TP .B EACCES -¸Æ¤Ó½Ð¤·¸µ¤Ë¤Ï¤³¤Î¥»¥Þ¥Õ¥©¤òºï½ü¤¹¤ëµö²Ä¤¬¤Ê¤¤¡£ +呼び出し元にはこのセマフォを削除する許可がない。 .TP .B ENAMETOOLONG .I name -¤¬Ä¹¤¹¤®¤ë¡£ +が長すぎる。 .TP .B ENOENT -»ØÄꤵ¤ì¤¿Ì¾Á° +指定された名前 .I name -¤Î¥»¥Þ¥Õ¥©¤¬Â¸ºß¤·¤Ê¤¤¡£ -.SH ½àµò +のセマフォが存在しない。 +.SH 準拠 POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR sem_getvalue (3), .BR sem_open (3), .BR sem_post (3), diff --git a/release/man3/sem_wait.3 b/release/man3/sem_wait.3 index f8339afc..c3d785bd 100644 --- a/release/man3/sem_wait.3 +++ b/release/man3/sem_wait.3 @@ -27,9 +27,9 @@ .\" Translated 2006-04-18, Akihiro MOTOKI .\" .TH SEM_WAIT 3 2010-02-25 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sem_wait, sem_timedwait, sem_trywait \- ¥»¥Þ¥Õ¥©¤ò¥í¥Ã¥¯¤¹¤ë -.SH ½ñ¼° +.SH 名前 +sem_wait, sem_timedwait, sem_trywait \- セマフォをロックする +.SH 書式 .nf .B #include .sp @@ -41,49 +41,49 @@ sem_wait, sem_timedwait, sem_trywait \- .fi .sp .sp -\fI\-lrt\fP ¤Þ¤¿¤Ï \fI\-pthread\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lrt\fP または \fI\-pthread\fP でリンクする。 .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR sem_timedwait (): _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 -.SH ÀâÌÀ +.SH 説明 .BR sem_wait () -¤Ï +は .I sem -¤¬»Ø¤¹¥»¥Þ¥Õ¥©¤ÎÃͤò 1 ¸º¤é¤¹ (¥í¥Ã¥¯¤¹¤ë)¡£ -¥»¥Þ¥Õ¥©¤ÎÃͤ¬ 0 ¤è¤êÂ礭¤¤¾ì¹ç¡¢¸º»»¤¬¼Â¹Ô¤µ¤ì¡¢´Ø¿ô¤Ïľ¤Á¤ËÉüµ¢¤¹¤ë¡£ -¥»¥Þ¥Õ¥©¤Î¸½ºßÃͤ¬ 0 ¤Î¾ì¹ç¤Ë¤Ï¡¢¸º»»¤ò¼Â¹Ô¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë -(¤Ä¤Þ¤ê¡¢¥»¥Þ¥Õ¥©¤ÎÃͤ¬ 0 ¤è¤êÂ礭¤ÊÃͤˤʤë) ¤Þ¤Ç¡¢¤â¤·¤¯¤Ï -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤·¤¬ÃæÃǤµ¤ì¤ë¤Þ¤Ç¡¢ -´Ø¿ô¸Æ¤Ó½Ð¤·¤ÏÄä»ß (block) ¤¹¤ë¡£ +が指すセマフォの値を 1 減らす (ロックする)。 +セマフォの値が 0 より大きい場合、減算が実行され、関数は直ちに復帰する。 +セマフォの現在値が 0 の場合には、減算を実行できるようになる +(つまり、セマフォの値が 0 より大きな値になる) まで、もしくは +シグナルハンドラによって呼び出しが中断されるまで、 +関数呼び出しは停止 (block) する。 .BR sem_trywait () -¤Ï +は .BR sem_wait () -¤ÈƱ¤¸¤À¤¬¡¢¥»¥Þ¥Õ¥©Ãͤθº»»¤ò¤¹¤°¤Ë¼Â¹Ô¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¡¢ -Ää»ß (block) ¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¥¨¥é¡¼¤ÇÉüµ¢¤¹¤ë +と同じだが、セマフォ値の減算をすぐに実行できなかった場合に、 +停止 (block) するのではなくエラーで復帰する .RI ( errno -¤Ë +に .B EAGAIN -¤¬¥»¥Ã¥È¤µ¤ì¤ë) ÅÀ¤¬°Û¤Ê¤ë¡£ +がセットされる) 点が異なる。 .BR sem_timedwait () -¤Ï +は .BR sem_wait () -¤ÈƱ¤¸¤À¤¬¡¢¥»¥Þ¥Õ¥©Ãͤθº»»¤ò¤¹¤°¤Ë¼Â¹Ô¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë -´Ø¿ô¸Æ¤Ó½Ð¤·¤¬Ää»ß¤¹¤ë»þ´Ö¤Î¾å¸Â¤ò +と同じだが、セマフォ値の減算をすぐに実行できなかった場合に +関数呼び出しが停止する時間の上限を .I abs_timeout -¤Ç»ØÄꤹ¤ëÅÀ¤¬°Û¤Ê¤ë¡£ +で指定する点が異なる。 .I abs_timeout -°ú¤­¿ô¤Ï¡¢¥¿¥¤¥à¥¢¥¦¥È»þ¹ï¤ò»ØÄꤹ¤ë¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤³¤Î¹½Â¤ÂΤˤϡ¢¥¿¥¤¥à¥¢¥¦¥È»þ¹ï¤ò»þ¹ïµª¸µ (Epoch; -1970-01-01 00:00:00 +0000 (UTC)) ¤«¤é¤Î -·Ð²á»þ´Ö (ÉáܥʥÎÉÃ) ¤Ç»ØÄꤹ¤ë¡£ -¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +引き数は、タイムアウト時刻を指定する構造体へのポインタである。 +この構造体には、タイムアウト時刻を時刻紀元 (Epoch; +1970-01-01 00:00:00 +0000 (UTC)) からの +経過時間 (秒+ナノ秒) で指定する。 +構造体は以下のように定義されている: .nf .in +4n @@ -94,84 +94,84 @@ struct timespec { .in .fi .PP -´Ø¿ô¸Æ¤Ó½Ð¤·»þÅÀ¤Ç¤¹¤Ç¤Ë¥¿¥¤¥à¥¢¥¦¥È¤Ë»ØÄꤷ¤¿»þ¹ï¤¬²á¤®¤Æ¤ª¤ê¡¢ -¤«¤Ä¥»¥Þ¥Õ¥©¤ò¤¹¤°¤Ë¥í¥Ã¥¯¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ +関数呼び出し時点ですでにタイムアウトに指定した時刻が過ぎており、 +かつセマフォをすぐにロックできなかった場合は、 .BR sem_timedwait () -¤Ï¥¿¥¤¥à¥¢¥¦¥È¥¨¥é¡¼ +はタイムアウトエラー .RI ( errno -¤Ë +に .B ETIMEDOUT -¤¬¥»¥Ã¥È¤µ¤ì¤ë) ¤Ç¼ºÇÔ¤¹¤ë¡£ +がセットされる) で失敗する。 -¥»¥Þ¥Õ¥©Áàºî¤¬¤¹¤°¤Ë¼Â¹Ô¤Ç¤­¤ë¤È¤­¤Ï¡¢ +セマフォ操作がすぐに実行できるときは、 .I abs_timeout -¤¬¤É¤ó¤ÊÃͤǤ¢¤Ã¤Æ¤â +がどんな値であっても .BR sem_timedwait () -¤¬¼ºÇÔ¤¹¤ë¤³¤È¤Ï·è¤·¤Æ¤Ê¤¤¡£¤µ¤é¤Ë¤¤¤¦¤È¡¢¤³¤Î¾ì¹ç¤Ë¤Ï +が失敗することは決してない。さらにいうと、この場合には .I abs_timeout -¤ÎÀµÅöÀ­¤Î¸¡ºº¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢¥»¥Þ¥Õ¥©¤ÎÃͤòÊѹ¹¤»¤º¤Ë¡¢\-1 ¤òÊÖ¤·¡¢ +の正当性の検査は行われない。 +.SH 返り値 +成功すると、これらの関数は 0 を返す。 +エラーの場合、セマフォの値を変更せずに、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値をセットする。 +.SH エラー .TP .B EINTR -¸Æ¤Ó½Ð¤·¤Ï¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤êÃæÃǤµ¤ì¤¿¡£ +呼び出しはシグナルハンドラにより中断された。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL .I sem -¤ÏÍ­¸ú¤Ê¥»¥Þ¥Õ¥©¤Ç¤Ê¤¤¡£ +は有効なセマフォでない。 .PP .BR sem_trywait () -¤Î¾ì¹ç¤Ë¤Ï¡¢¾åµ­¤Ë²Ã¤¨¤Æ°Ê²¼¤Î¥¨¥é¡¼¤âµ¯¤³¤ë¡£ +の場合には、上記に加えて以下のエラーも起こる。 .TP .B EAGAIN -Ää»ß (block) ¤»¤º¤Ë¥í¥Ã¥¯Áàºî¤ò´°Î»¤Ç¤­¤Ê¤«¤Ã¤¿ (¤Ä¤Þ¤ê¡¢ -¥»¥Þ¥Õ¥©¤Î¸½ºß¤ÎÃͤ¬ 0 ¤Ç¤¢¤Ã¤¿)¡£ +停止 (block) せずにロック操作を完了できなかった (つまり、 +セマフォの現在の値が 0 であった)。 .PP .BR sem_timedwait () -¤Î¾ì¹ç¡¢°Ê²¼¤Î¥¨¥é¡¼¤âµ¯¤³¤ë¡£ +の場合、以下のエラーも起こる。 .TP .B EINVAL .I abs_timeout.tv_nsecs -¤ÎÃͤ¬ 0 ̤Ëþ¡¢¤â¤·¤¯¤Ï 1,000,000,000 °Ê¾å¤Ç¤¢¤ë¡£ +の値が 0 未満、もしくは 1,000,000,000 以上である。 .TP .B ETIMEDOUT -¥»¥Þ¥Õ¥©¤Î¥í¥Ã¥¯¤ËÀ®¸ù¤¹¤ëÁ°¤Ë»þ´ÖÀÚ¤ì¤È¤Ê¤Ã¤¿¡£ -.\" POSIX.1-2001 ¤Ç¤Ï¥¨¥é¡¼¤È¤·¤Æ EDEADLK ¤âÍÑ°Õ¤·¤Æ¤¤¤ë¡£ -.\" ¤³¤ì¤Ï¥Ç¥Ã¥É¥í¥Ã¥¯¾ò·ï¤ò¸¡½Ð¤·¤¿¤³¤È¤ò¼¨¤¹¤â¤Î¤À¤¬¡¢ -.\" Linux ¤ÇȯÀ¸¤¹¤ë¤³¤È¤Ï¤Ê¤¤(?) +セマフォのロックに成功する前に時間切れとなった。 +.\" POSIX.1-2001 ではエラーとして EDEADLK も用意している。 +.\" これはデッドロック条件を検出したことを示すものだが、 +.\" Linux で発生することはない(?) POSIX.1-2001. -.SH Ãí°Õ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ï¡¢ +.SH 注意 +シグナルハンドラは、 .BR sigaction (2) -¤Î +の .B SA_RESTART -¥Õ¥é¥°¤ò»ÈÍѤ·¤Æ¤¤¤ë¤«¤É¤¦¤«¤Ë´Ø¤ï¤é¤º¡¢¤³¤ì¤é¤Î´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤¬ -Ää»ß¤·¤Æ¤¤¤ë¾ì¹ç¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê¾ï¤ËÃæÃǤµ¤ì¤ë¡£ -.\" sem_wait() ¤Ï¾¤Î¤Û¤È¤ó¤É¤Î¼ÂÁõ¤Ç¤Ï¾ï¤ËÃæÃǤµ¤ì¤ë¤¬¡¢ -.\" FreeBSD 5.4 ¤Ç¤Ï SA_RESTART ¤ò»ØÄꤷ¤Æ¤ª¤¯¤È¼Â¹Ô¤¬ºÆ³«¤µ¤ì¤ë¡£ -.SH Îã +フラグを使用しているかどうかに関わらず、これらの関数の呼び出しが +停止している場合、シグナルハンドラにより常に中断される。 +.\" sem_wait() は他のほとんどの実装では常に中断されるが、 +.\" FreeBSD 5.4 では SA_RESTART を指定しておくと実行が再開される。 +.SH 例 .PP -°Ê²¼¤Ë¼¨¤¹ (¤Á¤ç¤Ã¤È¤·¤¿) ¥×¥í¥°¥é¥à¤Ï̾Á°¤Ê¤·¥»¥Þ¥Õ¥©¤ÎÁàºî¤ò¹Ô¤¦¡£ -¥×¥í¥°¥é¥à¤Ï¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤ò 2 ¤Ä¼è¤ë¡£ -ºÇ½é¤Î°ú¤­¿ô¤Ë¤Ï¡¢ +以下に示す (ちょっとした) プログラムは名前なしセマフォの操作を行う。 +プログラムはコマンドライン引き数を 2 つ取る。 +最初の引き数には、 .B SIGALRM -¥·¥°¥Ê¥ë¤òÀ¸À®¤¹¤ë¤¿¤á¤Î¥¢¥é¡¼¥à¥¿¥¤¥Þ¡¼¤ÎÀßÄê¤Ë»È¤ï¤ì¤ëÃͤò -ÉÃñ°Ì¤Ç»ØÄꤹ¤ë¡£¤³¤Î¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ï¡¢ +シグナルを生成するためのアラームタイマーの設定に使われる値を +秒単位で指定する。このシグナルハンドラは、 .I main() -Æâ¤Ç +内で .BR sem_timedwait () -¤ò»È¤Ã¤ÆÂԤäƤ¤¤ë¥»¥Þ¥Õ¥©¤ò¡¢ +を使って待っているセマフォを、 .BR sem_post (3) -¤ò»È¤Ã¤Æ²Ã»»¤¹¤ë¡£ -2ÈÖÌܤΰú¤­¿ô¤Ë¤Ï¡¢ +を使って加算する。 +2番目の引き数には、 .BR sem_timedwait () -¤ËÅϤ¹¥¿¥¤¥à¥¢¥¦¥È¤Þ¤Ç¤Î»þ´Ö¤òÉÃñ°Ì¤Ç»ØÄꤹ¤ë¡£ +に渡すタイムアウトまでの時間を秒単位で指定する。 .in +4n .nf @@ -185,7 +185,7 @@ About to call sem_timedwait() sem_timedwait() timed out .fi .in -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -263,7 +263,7 @@ main(int argc, char *argv[]) exit((s == 0) ? EXIT_SUCCESS : EXIT_FAILURE); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR clock_gettime (2), .BR sem_getvalue (3), .BR sem_post (3), diff --git a/release/man3/setaliasent.3 b/release/man3/setaliasent.3 index a104bb16..6eecdaba 100644 --- a/release/man3/setaliasent.3 +++ b/release/man3/setaliasent.3 @@ -9,9 +9,9 @@ .\" by Yuichi SATO .\" .TH SETALIASENT 3 2003-09-09 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -setaliasent, endaliasent, getaliasent, getaliasent_r, getaliasbyname, getaliasbyname_r \- ¥¨¥¤¥ê¥¢¥¹¥¨¥ó¥È¥ê¤òÆɤ߹þ¤à -.SH ½ñ¼° +.SH 名前 +setaliasent, endaliasent, getaliasent, getaliasent_r, getaliasbyname, getaliasbyname_r \- エイリアスエントリを読み込む +.SH 書式 .B #include .sp .B "void setaliasent(void);" @@ -29,77 +29,77 @@ setaliasent, endaliasent, getaliasent, getaliasent_r, getaliasbyname, getaliasby .BI "int getaliasbyname_r(const char *" name ", struct aliasent *" result , .br .BI " char *" buffer ", size_t " buflen ", struct aliasent **" res ); -.SH ÀâÌÀ -¥Í¡¼¥à¥µ¡¼¥Ó¥¹¥¹¥¤¥Ã¥Á (Name Service Switch, NSS) ¤Ç -ÍøÍѲÄǽ¤Ê¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î 1 ¤Ä¤È¤·¤Æ¡¢ -¥á¡¼¥ë¥¨¥¤¥ê¥¢¥¹¤òÊÝ»ý¤¹¤ë¥¨¥¤¥ê¥¢¥¹¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬¤¢¤ë¡£ -(¤É¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤«¤òÄ´¤Ù¤ë¤Ë¤Ï¡¢ -getent \-\-help ¤ò¼Â¹Ô¤¹¤ë¤³¤È¡£) -¥¨¥¤¥ê¥¢¥¹¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Ë¡¢ -6 ¤Ä¤Î´Ø¿ô¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¡£ +.SH 説明 +ネームサービススイッチ (Name Service Switch, NSS) で +利用可能なデータベースの 1 つとして、 +メールエイリアスを保持するエイリアスデータベースがある。 +(どのデータベースがサポートされているかを調べるには、 +getent \-\-help を実行すること。) +エイリアスデータベースにアクセスするために、 +6 つの関数が提供されている。 .PP .BR getaliasent () -´Ø¿ô¤Ï¥¨¥¤¥ê¥¢¥¹¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¼è¤ê½Ð¤·¤¿ -¥°¥ë¡¼¥×¾ðÊó¤ò´Þ¤à¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ -1 ²óÌܤ˴ؿô¤¬¸Æ¤Ð¤ì¤¿¤È¤­¤Ë¤Ï¡¢ºÇ½é¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹; -¤½¤ì°Ê¹ß¤Ï¤½¤Î¸å¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£ +関数はエイリアスデータベースから取り出した +グループ情報を含む構造体へのポインタを返す。 +1 回目に関数が呼ばれたときには、最初のエントリを返す; +それ以降はその後のエントリを返す。 .PP .BR setaliasent () -´Ø¿ô¤Ï¥Õ¥¡¥¤¥ë¥Ý¥¤¥ó¥¿¤ò¥¨¥¤¥ê¥¢¥¹¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÀèƬ¤Ë´¬¤­Ì᤹¡£ +関数はファイルポインタをエイリアスデータベースの先頭に巻き戻す。 .PP .BR endaliasent () -´Ø¿ô¤Ï¥¨¥¤¥ê¥¢¥¹¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +関数はエイリアスデータベースをクローズする。 .PP .BR getaliasent_r () -´Ø¿ô¤Ï¾åµ­¤Î´Ø¿ô¤Î¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤǤ¢¤ë¡£ -Í׵ᤵ¤ì¤¿¹½Â¤ÂΤÏÂè 1 °ú¤­¿ô¤Ë³ÊǼ¤µ¤ì¤ë¤¬¡¢ -¥×¥í¥°¥é¥Þ¤Ï¾¤Î°ú¤­¿ô¤âËä¤á¤Æ¤ä¤ëɬÍפ¬¤¢¤ë¡£ -½¼Ê¬¤ÊÎΰ褬Ϳ¤¨¤é¤ì¤Ê¤¤¤È¡¢¤³¤Î´Ø¿ô¤Ï¼ºÇÔ¤¹¤ë¡£ +関数は上記の関数のリエントラント版である。 +要求された構造体は第 1 引き数に格納されるが、 +プログラマは他の引き数も埋めてやる必要がある。 +充分な領域が与えられないと、この関数は失敗する。 .PP -´Ø¿ô +関数 .BR getaliasbyname () -¤Ï name °ú¤­¿ô¤ò¤È¤ê¡¢¥¨¥¤¥ê¥¢¥¹¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¸¡º÷¤¹¤ë¡£ -¥¨¥ó¥È¥ê¤Ï +は name 引き数をとり、エイリアスデータベースを検索する。 +エントリは .I "struct aliasent" -¤Ø¤Î¥Ý¥¤¥ó¥¿¤È¤·¤ÆÊÖ¤µ¤ì¤ë¡£ +へのポインタとして返される。 .PP .BR getaliasbyname_r () -¤Ï¾åµ­¤Î´Ø¿ô¤Î¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤǤ¢¤ë¡£ -Í׵ᤵ¤ì¤¿¹½Â¤ÂΤÏÂè 2 °ú¤­¿ô¤Ë³ÊǼ¤µ¤ì¤ë¤¬¡¢ -¥×¥í¥°¥é¥Þ¤Ï¾¤Î°ú¤­¿ô¤âËä¤á¤Æ¤ä¤ëɬÍפ¬¤¢¤ë¡£ -½¼Ê¬¤ÊÎΰ褬Ϳ¤¨¤é¤ì¤Ê¤¤¤È¡¢¤³¤Î´Ø¿ô¤Ï¼ºÇÔ¤¹¤ë¡£ +は上記の関数のリエントラント版である。 +要求された構造体は第 2 引き数に格納されるが、 +プログラマは他の引き数も埋めてやる必要がある。 +充分な領域が与えられないと、この関数は失敗する。 .PP .I "struct aliasent" -¤Ï +は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で定義されている。 .in +4n .nf struct aliasent { - char *alias_name; /* ¥¨¥¤¥ê¥¢¥¹Ì¾ */ + char *alias_name; /* エイリアス名 */ size_t alias_members_len; - char **alias_members; /* ¥¨¥¤¥ê¥¢¥¹Ì¾¤Î¥ê¥¹¥È */ + char **alias_members; /* エイリアス名のリスト */ int alias_local; }; .fi .in -.SH ÊÖ¤êÃÍ -´Ø¿ô +.SH 返り値 +関数 .BR getaliasent_r () -¤È +と .BR getaliasbyname_r () -¤Ï¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ë 0 °Ê³°¤ÎÃͤòÊÖ¤¹¡£ -.SH ¥Õ¥¡¥¤¥ë -¥Ç¥Õ¥©¥ë¥È¤Î¥¨¥¤¥ê¥¢¥¹¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ï¡¢¥Õ¥¡¥¤¥ë +は、エラーの場合に 0 以外の値を返す。 +.SH ファイル +デフォルトのエイリアスデータベースは、ファイル .I /etc/aliases -¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï +である。 +これは .I /etc/nsswitch.conf -¥Õ¥¡¥¤¥ë¤ÇÊѹ¹¤Ç¤­¤ë¡£ -.SH ½àµò -¤³¤Î¥ë¡¼¥Á¥ó¤Ï glibc ¸ÇÍ­¤Î¤â¤Î¤Ç¤¢¤ë¡£ -NeXT ¥·¥¹¥Æ¥à¤Ë¤ÏƱÍͤΥ롼¥Á¥ó¤¬¤¢¤ë¡£ +ファイルで変更できる。 +.SH 準拠 +このルーチンは glibc 固有のものである。 +NeXT システムには同様のルーチンがある。 .in +4n .sp .nf @@ -112,11 +112,11 @@ alias_ent *alias_getent(void); alias_ent *alias_getbyname(char *name); .fi .in -.SH Îã -°Ê²¼¤ÎÎã¤Ï +.SH 例 +以下の例は .I "gcc example.c -o example" -¤Ç¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤ë¡£ -¤³¤ì¤Ï¥¨¥¤¥ê¥¢¥¹¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤¢¤ëÁ´¤Æ¤Î̾Á°¤ò¥À¥ó¥×¤¹¤ë¡£ +でコンパイルできる。 +これはエイリアスデータベースにある全ての名前をダンプする。 .sp .nf #include @@ -142,7 +142,7 @@ main(void) endaliasent(); exit(EXIT_SUCCESS); .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR getgrent (3), .BR getpwent (3), .BR getspent (3), diff --git a/release/man3/setbuf.3 b/release/man3/setbuf.3 index 0e81bcf2..712e2bc2 100644 --- a/release/man3/setbuf.3 +++ b/release/man3/setbuf.3 @@ -53,9 +53,9 @@ .\" Added return value for setvbuf, aeb, .\" .TH SETBUF 3 2008-06-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -setbuf, setbuffer, setlinebuf, setvbuf \- ¥¹¥È¥ê¡¼¥à¤Î¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤ÎÁàºî -.SH ½ñ¼° +.SH 名前 +setbuf, setbuffer, setlinebuf, setvbuf \- ストリームのバッファリングの操作 +.SH 書式 .nf .B #include @@ -70,40 +70,40 @@ setbuf, setbuffer, setlinebuf, setvbuf \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR setbuffer (), .BR setlinebuf (): _BSD_SOURCE -.SH ÀâÌÀ -¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤Ë¤Ï unbuffered, block buffered, line buffered ¤Î3¤Ä¤Î¥¿¥¤¥×¤¬ -¤¢¤ë¡£½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Î¥¿¥¤¥×¤¬ unbuffered ¤Î¾ì¹ç¡¢¥Ç¡¼¥¿¤ò½ñ¤­¹þ¤à¤È¤¹¤°¤Ë½Ð -ÎÏÀè¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¤«¥¿¡¼¥ß¥Ê¥ë¤Ëɽ¼¨¤µ¤ì¤ë¡£block buffered ¤Î¾ì¹ç¡¢Ê¸ -»ú¤ÎÆɤ߽ñ¤­¤Ï¥Ö¥í¥Ã¥¯Ã±°Ì¤Ç¤¤¤Ã¤Ú¤ó¤Ë¹Ô¤ï¤ì¤ë¡£line buffered ¤Î¾ì¹ç¡¢ -¿·¤·¤¤¹Ô¤¬½ÐÎϤµ¤ì¤ë¤«¡¢¥¿¡¼¥ß¥Ê¥ë¥Ç¥Ð¥¤¥¹¤ËÀܳ¤·¤Æ¤¤¤ë¥¹¥È¥ê¡¼¥à -(Ä̾\fIstdin\fP) ¤«¤é¿·¤·¤¤¹Ô¤¬ÆþÎϤµ¤ì¤ë¤Þ¤Çʸ»ú¤¬¤¿¤¯¤ï¤¨¤é¤ì¤ë¡£ -¥Ö¥í¥Ã¥¯¤ò¶¯À©Åª¤Ë½ÐÎϤ¹¤ë¤Ë¤Ï +.SH 説明 +バッファリングには unbuffered, block buffered, line buffered の3つのタイプが +ある。出力ストリームのタイプが unbuffered の場合、データを書き込むとすぐに出 +力先ファイルに書き込まれるかターミナルに表示される。block buffered の場合、文 +字の読み書きはブロック単位でいっぺんに行われる。line buffered の場合、 +新しい行が出力されるか、ターミナルデバイスに接続しているストリーム +(通常、\fIstdin\fP) から新しい行が入力されるまで文字がたくわえられる。 +ブロックを強制的に出力するには .BR fflush (3) -´Ø¿ô¤ò»È¤¦¡£ +関数を使う。 .RB ( fclose (3) -¤ò»²¾È¤Î¤³¤È) Ä̾¥Õ¥¡¥¤¥ë¤Ï¤¹¤Ù¤Æ block buffered ¤Ç¤¢¤ë¡£¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ -½é¤á¤ÆÆþ½ÐÎϽèÍý¤ò¹Ô¤¦¤È +を参照のこと) 通常、ファイルはすべて block buffered である。ファイルに対して +初めて入出力処理を行うと .BR malloc (3) -¤¬¸Æ¤Ó½Ð¤µ¤ì¥Ð¥Ã¥Õ¥¡¤¬³ÍÆÀ¤µ¤ì¤ë¡£¤â¤· ¥¹¥È¥ê¡¼¥à¤¬ (Ä̾ +が呼び出されバッファが獲得される。もし ストリームが (通常、 .I stdout -¤¬¤½¤¦¤Ç¤¢¤ë¤è¤¦¤Ë) ¥¿¡¼¥ß¥Ê¥ë¤ò»²¾È¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤Ï line buffered ¤È -¤Ê¤ë¡£É¸½à¥¨¥é¡¼½ÐÎÏ +がそうであるように) ターミナルを参照する場合には、ファイルは line buffered と +なる。標準エラー出力 .I stderr -¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¾ï¤Ë unbuffered ¤Ç¤¢¤ë¡£ +はデフォルトでは常に unbuffered である。 .PP .BR setvbuf () -´Ø¿ô¤Ï¡¢¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ëǤ°Õ¤Î¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ¥Ð¥Ã¥Õ¥¡¤òÊѹ¹¤Ç¤­¤ë¡£ -°ú¤­¿ô +関数は、オープンしている任意のストリームに対してバッファを変更できる。 +引き数 .I mode -¤Ï¡¢¼¡¤Î 3 ¤Ä¤Î¥Þ¥¯¥í¤Î¤¦¤Á¤¤¤º¤ì¤«¤Ç¤¢¤ë: +は、次の 3 つのマクロのうちいずれかである: .RS .TP .B _IONBF @@ -116,74 +116,74 @@ line buffered fully buffered .RE .PP -unbuffered ¤Î¥Õ¥¡¥¤¥ë¤ò½ü¤­¡¢ +unbuffered のファイルを除き、 .I buf -°ú¿ô¤Ï +引数は .I size -¥Ð¥¤¥È°Ê¾å¤ÎÂ礭¤µ¤Î¥Ð¥Ã¥Õ¥¡¤ò»Ø¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤Î¥Ð¥Ã¥Õ¥¡¤Ï¸½ºß¤Î -¥Ð¥Ã¥Õ¥¡¤ÎÂå¤ï¤ê¤ËÍѤ¤¤é¤ì¤ë¡£¤â¤·¡¢°ú¿ô +バイト以上の大きさのバッファを指していなければならない。このバッファは現在の +バッファの代わりに用いられる。もし、引数 .I buf -¤¬ NULL ¤Ê¤é¤Ð¡¢¥â¡¼¥É¤À¤±¤¬Êѹ¹¤µ¤ì¤ë¡£ -¿·¤·¤¤¥Ð¥Ã¥Õ¥¡¤Ï¼¡¤ËÆɤ߽ñ¤­¤·¤¿ºÝ¤Ë³ä¤êÅö¤Æ¤é¤ì¤ë¡£ +が NULL ならば、モードだけが変更される。 +新しいバッファは次に読み書きした際に割り当てられる。 .BR setvbuf () -´Ø¿ô¤Ï¡¢¥¹¥È¥ê¡¼¥à¤ò¥ª¡¼¥×¥ó¤·¤¿¸å¡¢ -¤½¤Î¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ²¿¤é¤«¤ÎÁàºî¤ò¤¹¤ëÁ°¤Ë¤Î¤ß»ÈÍѤǤ­¤ë¡£ +関数は、ストリームをオープンした後、 +そのストリームに対して何らかの操作をする前にのみ使用できる。 .PP -¾¤Î 3 ¤Ä¤Î´Ø¿ô¤Ï +他の 3 つの関数は .BR setvbuf () -¤Î¸Æ¤Ó½Ð¤·¤Ëñ½ã¤ËÃÖ¤­´¹¤¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +の呼び出しに単純に置き換えることができる。 .BR setbuf () -´Ø¿ô¤Ï¡¢ +関数は、 .PP .in +4n setvbuf(stream, buf, buf ? _IOFBF : _IONBF, BUFSIZ); .in -¤ÈÁ´¤¯Æ±Åù¤À¤·¡¢ +と全く同等だし、 .BR setbuffer () -´Ø¿ô¤Ï¡¢¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤¬¥Ç¥Õ¥©¥ë¥ÈÃÍ +関数は、バッファサイズがデフォルト値 .B BUFSIZ -¤Ç¤Ï¤Ê¤¯°ú¿ô¤ÇÍ¿¤¨¤é¤ì¤ëÅÀ°Ê³°¤ÏƱ¤¸¤Ç¤¢¤ë¡£ +ではなく引数で与えられる点以外は同じである。 .BR setlinebuf () -´Ø¿ô¤Ï +関数は .PP .in +4n setvbuf(stream, (char *) NULL, _IOLBF, 0); .in -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +と同じである。 +.SH 返り値 .BR setvbuf () -´Ø¿ô¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç 0 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢0 °Ê³°¤ÎÃͤòÊÖ¤¹ -(¼ºÇԤȤϡ¢ +関数は、成功した場合 0 を返す。 +失敗した場合、0 以外の値を返す +(失敗とは、 .I mode -¤¬ÉÔÀµ¤Ê¾ì¹ç¤Þ¤¿¤Ï¥ê¥¯¥¨¥¹¥È¤¬¾ò·ï¤òËþ¤¿¤µ¤Ê¤¤¾ì¹ç¤Ç¤¢¤ë)¡£ +が不正な場合またはリクエストが条件を満たさない場合である)。 .BR setvbuf () -´Ø¿ô¤¬¼ºÇÔ¤·¤¿¾ì¹ç¤Ï +関数が失敗した場合は .I errno -¤òÀßÄꤹ¤ë¤³¤È¤â¤¢¤ë¡£ +を設定することもある。 -¤½¤Î¾¤Î´Ø¿ô¤ÏÃͤòÊÖ¤µ¤Ê¤¤¡£ -.SH ½àµò +その他の関数は値を返さない。 +.SH 準拠 .BR setbuf () -´Ø¿ô¤ª¤è¤Ó +関数および .BR setvbuf () -´Ø¿ô¤Ï C89 ¤È C99 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ -.SH ¥Ð¥° +関数は C89 と C99 に準拠している。 +.SH バグ .BR setbuffer () -´Ø¿ô¤ª¤è¤Ó +関数および .BR setlinebuf () -´Ø¿ô¤Ï 4.2BSD ¤è¤êÁ°¤Î BSD ¤È¤Ï¸ß´¹À­¤¬¤Ê¤¤¡£¤Þ¤¿ Linux ¤Ç¤â(¸Å¤¤¥Ð¡¼¥¸¥ç¥ó -¤Ç¤Ï)ÍøÍѤǤ­¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£4.2BSD ¤ª¤è¤Ó 4.3BSD ¤Î¥·¥¹¥Æ¥à¤Ç¤Ï +関数は 4.2BSD より前の BSD とは互換性がない。また Linux でも(古いバージョン +では)利用できないかもしれない。4.2BSD および 4.3BSD のシステムでは .BR setbuf () -¤Ïɬ¤ºÄɲäΥХåե¡¡¼¤Î¥µ¥¤¥º¤ò»ÈÍѤ¹¤ë¤Î¤Ç¡¢¤³¤ì¤â»È¤¦¤Ù¤­¤Ç¤Ê¤¤¡£ +は必ず追加のバッファーのサイズを使用するので、これも使うべきでない。 .P .I stream -¤òÊĤ¸¤ë»þ (¥×¥í¥°¥é¥à¤ò½ªÎ»¤¹¤ëºÝ¤Ë¤â¤³¤ì¤Ïµ¯¤­¤ë) ¤Ë¤Ï¡¢ +を閉じる時 (プログラムを終了する際にもこれは起きる) には、 .I buf -¤¬»Ø¤·¼¨¤¹¶õ´Ö¤È¤¬Â¸ºß¤·¤Æ¤¤¤ë¤³¤È¤òÊݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Î㤨¤Ð¡¢¼¡¤Î¤è¤¦¤Ê»È¤¤Êý¤Ïµö¤µ¤ì¤Ê¤¤: +が指し示す空間とが存在していることを保証しなければならない。 +例えば、次のような使い方は許されない: .nf .sp #include @@ -197,7 +197,7 @@ main(void) return 0; } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fclose (3), .BR fflush (3), .BR fopen (3), diff --git a/release/man3/setenv.3 b/release/man3/setenv.3 index a18a7abd..e2fdd87f 100644 --- a/release/man3/setenv.3 +++ b/release/man3/setenv.3 @@ -41,9 +41,9 @@ .\" Updated 2010-04-10, Akihiro MOTOKI, LDP v3.24 .\" .TH SETENV 3 2009-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -setenv \- ´Ä¶­ÊÑ¿ô¤òÊѹ¹¤Þ¤¿¤ÏÄɲ乤ë -.SH ½ñ¼° +.SH 名前 +setenv \- 環境変数を変更または追加する +.SH 書式 .nf .B #include .sp @@ -53,9 +53,9 @@ setenv \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -65,73 +65,73 @@ glibc _BSD_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR setenv () -´Ø¿ô¤Ï¡¢\fIname\fP ¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç -´Ä¶­ÊÑ¿ô \fIname\fP ¤ËÃÍ \fIvalue\fP ¤òÀßÄꤷ¡¢´Ä¶­¤ËÄɲ乤롣 -\fIname\fP ¤¬´Ä¶­¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢\fIoverwrite\fP ¤¬ 0 °Ê³°¤Ê¤é¤Ð -¤½¤ÎÃͤò \fIvalue\fP ¤ËÊѹ¹¤·¡¢\fIoverwrite\fP ¤¬ 0 ¤Ê¤é¤Ð -\fIname\fP ¤ÎÃͤòÊѹ¹¤·¤Ê¤¤¡£ -¤³¤Î´Ø¿ô¤Ï¡¢ +関数は、\fIname\fP が存在しない場合 +環境変数 \fIname\fP に値 \fIvalue\fP を設定し、環境に追加する。 +\fIname\fP が環境に存在する場合、\fIoverwrite\fP が 0 以外ならば +その値を \fIvalue\fP に変更し、\fIoverwrite\fP が 0 ならば +\fIname\fP の値を変更しない。 +この関数は、 .RB ( putenv (3) -¤È°ã¤¤) +と違い) .I name -¤È +と .I value -¤Ë¤è¤ê»²¾È¤µ¤ì¤ëʸ»úÎó¤Î¥³¥Ô¡¼¤ò¹Ô¤¦¡£ +により参照される文字列のコピーを行う。 .PP .BR unsetenv () -´Ø¿ô¤Ï¡¢ÊÑ¿ô \fIname\fP ¤ò´Ä¶­¤«¤éºï½ü¤¹¤ë¡£ +関数は、変数 \fIname\fP を環境から削除する。 .I name -¤¬´Ä¶­¤Ë¤Ê¤¤¾ì¹ç¡¢¤³¤Î´Ø¿ô¤ÏÀ®¸ù¤·¡¢´Ä¶­¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +が環境にない場合、この関数は成功し、環境は変更されない。 +.SH 返り値 .BR setenv () -´Ø¿ô¤Ï¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +関数は、成功すると 0 を返す。 +エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤Î¸¶°ø¤ò¼¨¤¹Ãͤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +にエラーの原因を示す値がセットされる。 .BR unsetenv () -´Ø¿ô¤Ï¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +関数は、成功すると 0 を返す。 +エラーの場合は \-1 を返し、 .I errno -¤òÀßÄꤷ¤Æ¥¨¥é¡¼¤Î¸¶°ø¤ò¼¨¤¹¡£ -.SH ¥¨¥é¡¼ +を設定してエラーの原因を示す。 +.SH エラー .TP .B EINVAL .I name -¤¬ NULL ¤Ç¤¢¤ë¤«¡¢Ä¹¤µ¤¬ 0 ¤Îʸ»úÎó¤ò»Ø¤·¤Æ¤¤¤ë¤«¡¢ -\(aq=\(aq ʸ»ú¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +が NULL であるか、長さが 0 の文字列を指しているか、 +\(aq=\(aq 文字が含まれている。 .TP .B ENOMEM -´Ä¶­¤Ë¿·¤·¤¤ÊÑ¿ô¤òÄɲ乤ë¤Î¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ -.SH ½àµò +環境に新しい変数を追加するのに十分なメモリがない。 +.SH 準拠 4.3BSD, POSIX.1-2001. -.SH Ãí°Õ -POSIX.1-2001 ¤Ï¡¢ +.SH 注意 +POSIX.1-2001 は、 .BR setenv () -¤ä +や .BR unsetenv () -¤¬¥ê¥¨¥ó¥È¥é¥ó¥È (ºÆÆþ²Äǽ) ¤Ç¤¢¤ë¤³¤È¤òÍ׵ᤷ¤Æ¤¤¤Ê¤¤¡£ +がリエントラント (再入可能) であることを要求していない。 -glibc 2.2.2 °ÊÁ°¤Ç¤Ï¡¢ +glibc 2.2.2 以前では、 .BR unsetenv () -¤Ï -ÊÖ¤êÃͤ¬ \fIvoid\fP ¤Î¥×¥í¥È¥¿¥¤¥×¤Ç¤¢¤Ã¤¿¡£ -¤â¤Ã¤ÈºÇ¶á¤Î glibc ÈǤϡ¢¡Ö½ñ¼°¡×¥»¥¯¥·¥ç¥ó¤Ç¼¨¤·¤Æ¤¤¤ë¤è¤¦¤Ë -POSIX.1-2001 ¸ß´¹¤Î¥×¥í¥È¥¿¥¤¥×¤Ç¤¢¤ë¡£ -.SH ¥Ð¥° -POSIX.1-2001 ¤Ç¤Ï -.RI ¡Ö name -¤Ë \(aq=\(aq ʸ»ú¤¬´Þ¤Þ¤ì¤ë¾ì¹ç¡¢ +は +返り値が \fIvoid\fP のプロトタイプであった。 +もっと最近の glibc 版は、「書式」セクションで示しているように +POSIX.1-2001 互換のプロトタイプである。 +.SH バグ +POSIX.1-2001 では +.RI 「 name +に \(aq=\(aq 文字が含まれる場合、 .BR setenv () -¤Ï¥¨¥é¡¼ +はエラー .B EINVAL -¤Ç¼ºÇÔ¤¹¤Ù¤­¤Ç¤¢¤ë¡×¤È½Ò¤Ù¤é¤ì¤Æ¤¤¤ë¡£ -¤·¤«¤· 2.3.4 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î glibc ¤Ç¤Ï¡¢ +で失敗すべきである」と述べられている。 +しかし 2.3.4 より前のバージョンの glibc では、 .I name -¤Ë \(aq=\(aq ʸ»ú¤¬´Þ¤Þ¤ì¤ë¤Î¤òµö¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +に \(aq=\(aq 文字が含まれるのを許している。 +.SH 関連項目 .BR clearenv (3), .BR getenv (3), .BR putenv (3), diff --git a/release/man3/setjmp.3 b/release/man3/setjmp.3 index 9348d023..af427d20 100644 --- a/release/man3/setjmp.3 +++ b/release/man3/setjmp.3 @@ -30,15 +30,15 @@ .\" Modified 2007-12-20, Akihiro MOTOKI .\" Updated 2009-02-12, Kentaro Shirakata .\" -.\"WORD: stack context ¥¹¥¿¥Ã¥¯¥³¥ó¥Æ¥­¥¹¥È -.\"WORD: signal masks ¥·¥°¥Ê¥ë¥Þ¥¹¥¯ -.\"WORD: signal context ¥·¥°¥Ê¥ë¥³¥ó¥Æ¥­¥¹¥È -.\"WORD: low-level Äã¥ì¥Ù¥ë +.\"WORD: stack context スタックコンテキスト +.\"WORD: signal masks シグナルマスク +.\"WORD: signal context シグナルコンテキスト +.\"WORD: low-level 低レベル .\" .TH SETJMP 3 2009-06-26 "" "Linux Programmer's Manual" -.SH ̾Á° -setjmp, sigsetjmp \- Èó¶É½êŪ¤Ê¥¸¥ã¥ó¥×¤Î¤¿¤á¤Ë¡¢¥¹¥¿¥Ã¥¯¥³¥ó¥Æ¥­¥¹¥È (stack context) ¤òÊݸ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +setjmp, sigsetjmp \- 非局所的なジャンプのために、スタックコンテキスト (stack context) を保存する +.SH 書式 .B #include .sp .nf @@ -48,84 +48,84 @@ setjmp, sigsetjmp \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR setjmp (): -¡ÖÃí°Õ¡×»²¾È¡£ +「注意」参照。 .br .BR sigsetjmp (): _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_C_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR setjmp () -¤È +と .BR longjmp (3) -¤Ï¡¢¥×¥í¥°¥é¥à¤ÎÄã¥ì¥Ù¥ë¤Ê¥µ¥Ö¥ë¡¼¥Á¥ó -¤Ë¤ª¤¤¤Æ¡¢¥¨¥é¡¼¤ä³ä¤ê¹þ¤ß¤¬È¯À¸¤·¤¿»þ¤Î½èÍý¤ËÊØÍø¤Ç¤¢¤ë¡£ +は、プログラムの低レベルなサブルーチン +において、エラーや割り込みが発生した時の処理に便利である。 .BR setjmp () -¤Ï¡¢ +は、 .BR longjmp (3) -¤Ë¤è¤Ã¤Æ»È¤ï¤ì¤ë \fIenv\fP ¤Ë -¥¹¥¿¥Ã¥¯¥³¥ó¥Æ¥­¥¹¥È/¥¹¥¿¥Ã¥¯´Ä¶­¤òÊݸ¤¹¤ë¡£ +によって使われる \fIenv\fP に +スタックコンテキスト/スタック環境を保存する。 .BR setjmp () -¤ò¸Æ¤Ó½Ð¤·¤¿ -´Ø¿ô¤¬ÊÖ¤ë¤È¤­¤Ë¡¢¤½¤Î¥¹¥¿¥Ã¥¯¥³¥ó¥Æ¥­¥¹¥È¤Ï̵¸ú¤Ë¤Ê¤ë¡£ +を呼び出した +関数が返るときに、そのスタックコンテキストは無効になる。 .P .BR sigsetjmp () -¤â +も .BR setjmp () -¤ÈƱÍͤǤ¢¤ë¡£ -\fIsavesigs\fP ¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢ -¤³¤Î¥×¥í¥»¥¹¤Î¸½ºß¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤â \fIenv\fP ¤ËÊݸ¤µ¤ì¡¢ -¤³¤Î¥·¥°¥Ê¥ë¤Ï¸å¤Ç +と同様である。 +\fIsavesigs\fP が 0 以外の場合、 +このプロセスの現在のシグナルマスクも \fIenv\fP に保存され、 +このシグナルは後で .BR siglongjmp (3) -¤¬¤³¤Î \fIenv\fP ¤Ç¼Â¹Ô¤µ¤ì¤¿ºÝ¤ËÉü¸µ¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -ľÀÜÊ֤äƤ¯¤ë¤È¤­¤Ï¡¢ +がこの \fIenv\fP で実行された際に復元される。 +.SH 返り値 +直接返ってくるときは、 .BR setjmp () -¤È +と .BR sigsetjmp () -¤Ï 0 ¤òÊÖ¤·¡¢Êݸ¤·¤¿¥³¥ó¥Æ¥­¥¹¥È¤ò»È¤Ã¤Æ +は 0 を返し、保存したコンテキストを使って .BR longjmp (3) -¤ä +や .BR siglongjmp (3) -¤«¤éÊ֤äƤ¯¤ë¤È¤­¤Ï 0 °Ê³°¤òÊÖ¤¹¡£ -.SH ½àµò +から返ってくるときは 0 以外を返す。 +.SH 準拠 .BR setjmp () -¤Ï C89, C99, POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は C89, C99, POSIX.1-2001 で規定されている。 .BR sigsetjmp () -¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -POSIX ¤Ï¡¢ +は POSIX.1-2001 で規定されている。 +.SH 注意 +POSIX は、 .BR setjmp () -¤¬¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊݸ¤¹¤Ù¤­¤«¤É¤¦¤«¤òµ¬Äꤷ¤Æ¤¤¤Ê¤¤¡£ -System V ¤Ç¤ÏÊݸ¤·¤Ê¤¤¡£ -4.3BSD ¤Ç¤ÏÊݸ¤¹¤ë; -4.3BSD ¤Ë¤Ï¥·¥°¥Ê¥ë¥³¥ó¥Æ¥­¥¹¥È¤òÊݸ¤·¤Ê¤¤´Ø¿ô \fB_setjmp\fP ¤â¤¢¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢Linux/glibc ¤Ï System V ¤Î¿¶¤ëÉñ¤¤¤Ë½¾¤¦¤¬¡¢ +がシグナルマスクを保存すべきかどうかを規定していない。 +System V では保存しない。 +4.3BSD では保存する; +4.3BSD にはシグナルコンテキストを保存しない関数 \fB_setjmp\fP もある。 +デフォルトでは、Linux/glibc は System V の振る舞いに従うが、 .B _BSD_SOURCE -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¡¢ +機能検査マクロが定義され、 .BR _POSIX_SOURCE , .BR _POSIX_C_SOURCE , .BR _XOPEN_SOURCE , .BR _XOPEN_SOURCE_EXTENDED , .BR _GNU_SOURCE , .B _SVID_SOURCE -¤Î¤¤¤º¤ì¤âÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤»þ¤Ï BSD ¤Î¿¶¤ëÉñ¤¤¤È¤Ê¤ë¡£ +のいずれも定義されていない時は BSD の振る舞いとなる。 -°Ü¿¢À­¤Î¤¢¤ë·Á¤Ç¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊݸ¤ª¤è¤ÓÉü¸µ¤·¤¿¤¤¤Î¤Ê¤é¡¢ +移植性のある形でシグナルマスクを保存および復元したいのなら、 .BR sigsetjmp () -¤È +と .BR siglongjmp (3) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .P .BR setjmp () -¤ä +や .BR sigsetjmp () -¤ò»È¤¦¤È¡¢¥×¥í¥°¥é¥à¤ÏÍý²ò¤·¤Å¤é¤¯¡¢Êݼ餷¤Ë¤¯¤¤¤â¤Î¤Ë¤Ê¤ë¡£ -Ê̤ÎÊýË¡¤¬²Äǽ¤Ê¤é¡¢¤½¤ì¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を使うと、プログラムは理解しづらく、保守しにくいものになる。 +別の方法が可能なら、それを使うべきである。 +.SH 関連項目 .BR longjmp (3), .BR siglongjmp (3) diff --git a/release/man3/setlocale.3 b/release/man3/setlocale.3 index b9809fd7..5688e49c 100644 --- a/release/man3/setlocale.3 +++ b/release/man3/setlocale.3 @@ -36,165 +36,165 @@ .\" by Kentaro Shirakata .\" Updated Sat Oct 12 2002 by NAKANO Takeo .\" -.\"WORD: locale ¥í¥±¡¼¥ë -.\"WORD: portable ¸ß´¹À­¤Î¤¢¤ë -.\"WORD: regular expression Àµµ¬É½¸½ -.\"WORD: range expressions ÈÏ°Ïɽ¸½ -.\"WORD: equivalence classes Åù²Á¥¯¥é¥¹ -.\"WORD: collation ¾È¹ç -.\"WORD: multibyte character ¿¥Ð¥¤¥Èʸ»ú -.\"WORD: wide character ¥ï¥¤¥Éʸ»ú -.\"WORD: opaque string ÆâÉôʸ»úÎó +.\"WORD: locale ロケール +.\"WORD: portable 互換性のある +.\"WORD: regular expression 正規表現 +.\"WORD: range expressions 範囲表現 +.\"WORD: equivalence classes 等価クラス +.\"WORD: collation 照合 +.\"WORD: multibyte character 多バイト文字 +.\"WORD: wide character ワイド文字 +.\"WORD: opaque string 内部文字列 .\" .TH SETLOCALE 3 2008-12-05 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -setlocale \- ¸½ºß¤Î¥í¥±¡¼¥ë (locale) ¤òÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +setlocale \- 現在のロケール (locale) を設定する +.SH 書式 .nf .B #include .sp .BI "char *setlocale(int " category ", const char *" locale ); .fi -.SH ÀâÌÀ +.SH 説明 .BR setlocale () -´Ø¿ô¤Ï¥×¥í¥°¥é¥à¤Î¥«¥ì¥ó¥È¥í¥±¡¼¥ë¤òÀßÄꤷ¤¿¤ê -Ì䤤¹ç¤ï¤»¤¿¤ê¤¹¤ë¤Î¤ËÍѤ¤¤é¤ì¤ë¡£ +関数はプログラムのカレントロケールを設定したり +問い合わせたりするのに用いられる。 .PP .I locale -¤¬ NULL ¤Ç¤Ê¤±¤ì¤Ð¡¢¥×¥í¥°¥é¥à¤Î¥«¥ì¥ó¥È¥í¥±¡¼¥ë¤Ï°ú¤­¿ô¤Ë½¾¤Ã¤ÆÊѹ¹¤µ¤ì¤ë¡£ -°ú¤­¿ô +が NULL でなければ、プログラムのカレントロケールは引き数に従って変更される。 +引き数 .I category -¤Ï¥×¥í¥°¥é¥à¤Î¥«¥ì¥ó¥È¥í¥±¡¼¥ë¤Î¤É¤ÎÉôʬ¤òÊѹ¹¤¹¤ë¤«¤ò·è¤á¤ë¡£ +はプログラムのカレントロケールのどの部分を変更するかを決める。 .TP .B LC_ALL -Á´¤Æ¤Î¥í¥±¡¼¥ë +全てのロケール .TP .B LC_COLLATE -Àµµ¬É½¸½¤Î¥Þ¥Ã¥Á¥ó¥° (ÈÏ°Ïɽ¸½¤ÈÅù²Á¥¯¥é¥¹¤Î¥Þ¥Ã¥Á¥ó¥°¤ò·èÄꤹ¤ë) -¤Èʸ»úÎó¤Î¾È¹ç (collation) +正規表現のマッチング (範囲表現と等価クラスのマッチングを決定する) +と文字列の照合 (collation) .TP .B LC_CTYPE -Àµµ¬É½¸½¤Î¥Þ¥Ã¥Á¥ó¥°¡¢Ê¸»ú¤ÎʬÎࡢʸ»ú¤ÎÊÑ´¹¡¢Âçʸ»ú¾®Ê¸»úÈæ³Ó¡¢ -¥ï¥¤¥Éʸ»ú´Ø¿ô +正規表現のマッチング、文字の分類、文字の変換、大文字小文字比較、 +ワイド文字関数 .TP .B LC_MESSAGES -ÃÏ°è²½²Äǽ¤Ê¼«Á³¸À¸ì¥á¥Ã¥»¡¼¥¸ +地域化可能な自然言語メッセージ .TP .B LC_MONETARY -Ä̲ߤνñ¼° +通貨の書式 .TP .B LC_NUMERIC -¿ôÃͤνñ¼° (¾®¿ôÅÀ¤ä 3 ·å¤´¤È¤Î¶èÀÚ¤ê) +数値の書式 (小数点や 3 桁ごとの区切り) .TP .B LC_TIME -»þ¹ï¤ÈÆüÉÕ¤±¤Î½ñ¼° +時刻と日付けの書式 .PP -°ú¤­¿ô +引き数 .I locale -¤Ï +は .I category -¤ËÀßÄꤹ¤ëʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤³¤Îʸ»úÎó¤Ï¤è¤¯ÃΤé¤ì¤¿Äê¿ô¤Ç¤¢¤ë "C" ¤ä "da_DK" ¤Ê¤É¤Ç¤âÎɤ¤¤· -(°Ê²¼¤ò»²¾È)¡¢Â¾¤Î¤È¤­¤Ë +に設定する文字列へのポインタである。 +この文字列はよく知られた定数である "C" や "da_DK" などでも良いし +(以下を参照)、他のときに .BR setlocale () -¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤ËÊÖ¤µ¤ì¤¿¡¢ÆâÉôÍѤÎʸ»úÎó¤Ç¤âÎɤ¤¡£ +を呼び出した際に返された、内部用の文字列でも良い。 .PP .I locale -¤¬ \fB""\fP ¤Î¾ì¹ç¡¢¥í¥±¡¼¥ë¤Î³ÆÉôʬ¤ÎÀßÄê¤Ë¤Ï´Ä¶­ÊÑ¿ô¤¬»²¾È¤µ¤ì¤ë¡£ -¤½¤Î¾ÜºÙ¤Ï¼ÂÁõ°Í¸¤Ç¤¢¤ë¡£ -glibc ¤Î¾ì¹ç¡¢¤Þ¤ººÇ½é¤Ë (¤É¤ó¤Ê +が \fB""\fP の場合、ロケールの各部分の設定には環境変数が参照される。 +その詳細は実装依存である。 +glibc の場合、まず最初に (どんな .I category -¤ËÂФ·¤Æ¤â) ´Ä¶­ÊÑ¿ô +に対しても) 環境変数 .B LC_ALL -¤¬¸¡ºº¤µ¤ì¤ë¡£ -¼¡¤Ë¥«¥Æ¥´¥ê (category) ¤ÈƱ¤¸Ì¾Á°¤Î´Ä¶­ÊÑ¿ô +が検査される。 +次にカテゴリ (category) と同じ名前の環境変数 .RB ( LC_COLLATE , .BR LC_CTYPE , .BR LC_MESSAGES , .BR LC_MONETARY , .BR LC_NUMERIC , .BR LC_TIME ) -¤¬¸¡ºº¤µ¤ì¡¢ºÇ¸å¤Ë´Ä¶­ÊÑ¿ô +が検査され、最後に環境変数 .B LANG -¤¬¸¡ºº¤µ¤ì¤ë¡£ -ºÇ½é¤Ë¸«¤Ä¤«¤Ã¤¿´Ä¶­ÊÑ¿ô¤ò»ÈÍѤ¹¤ë¡£ -¤½¤ÎÃͤ¬¥í¥±¡¼¥ë»ØÄê¤È¤·¤ÆÀµ¤·¤¯¤Ê¤±¤ì¤Ð¡¢¥í¥±¡¼¥ë¤ÏÊѹ¹¤µ¤ì¤º¡¢ +が検査される。 +最初に見つかった環境変数を使用する。 +その値がロケール指定として正しくなければ、ロケールは変更されず、 .BR setlocale () -¤Ï NULL ¤òÊÖ¤¹¡£ +は NULL を返す。 .PP -\fB"C"\fP ¥í¥±¡¼¥ë¤ä \fB"POSIX"\fP ¥í¥±¡¼¥ë¤Ï¸ß´¹À­¤Î¤¢¤ë¥í¥±¡¼¥ë¤Ç¤¢¤ë¡£ -¤³¤Î +\fB"C"\fP ロケールや \fB"POSIX"\fP ロケールは互換性のあるロケールである。 +この .B LC_CTYPE -¤ÎÉôʬ¤Ï 7 ¥Ó¥Ã¥È ASCII ʸ»ú½¸¹ç¤ËÁêÅö¤·¤Æ¤¤¤ë¡£ +の部分は 7 ビット ASCII 文字集合に相当している。 .PP -¥í¥±¡¼¥ë̾¤Î½ñ¼°¤Ï¡¢Ä̾ï +ロケール名の書式は、通常 .IR language "[_" territory "][." codeset "][@" modifier "]" -¤È¤¤¤¦¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤³¤Ç +というものである。 +ここで .I language -¤Ï ISO 639 ¤Î¸À¸ì¥³¡¼¥É¤Ç¤¢¤ë¡£ +は ISO 639 の言語コードである。 .I territory -¤Ï ISO 3166 ¤Î¹ñ̾¥³¡¼¥É¤Ç¤¢¤ë¡£ +は ISO 3166 の国名コードである。 .I codeset -¤Ï +は .B "ISO-8859-1" -¤ä +や .B "UTF-8" -¤Î¤è¤¦¤Êʸ»ú½¸¹ç¤äʸ»úÉä¹æ²½¼±Ê̻ҤǤ¢¤ë¡£ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥í¥±¡¼¥ë¤Î°ìÍ÷¤òÆÀ¤ë¤Ë¤Ï¡¢ -"locale \-a" ¤ò¼Â¹Ô¤·¤Æ¤ß¤è +のような文字集合や文字符号化識別子である。 +サポートされているロケールの一覧を得るには、 +"locale \-a" を実行してみよ .RB ( locale (1) -»²¾È¤Î¤³¤È)¡£ +参照のこと)。 .PP .I locale -¤¬ NULL ¤Ê¤é¤Ð¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤òÌ䤤¹ç¤ï¤»¤ë¤Î¤ß¤ÇÊѹ¹¤Ï¤·¤Ê¤¤¡£ +が NULL ならば、現在のロケールを問い合わせるのみで変更はしない。 .PP -main ¥×¥í¥°¥é¥à¤Îµ¯Æ°»þ¤Ë¤Ï¡¢ -¸ß´¹À­¤Î¤¢¤ë \fB"C"\fP ¥í¥±¡¼¥ë¤¬¥Ç¥Õ¥©¥ë¥È¤ÇÁªÂò¤µ¤ì¤ë¡£ -¥×¥í¥°¥é¥à¤ò¤¹¤Ù¤Æ¤Î¥í¥±¡¼¥ë¤ËÂФ·¤Æ¸ß´¹¤Ë¤·¤¿¤±¤ì¤Ð¡¢ -¥×¥í¥°¥é¥à¤Î½é´ü²½¤Î¸å¤Ë +main プログラムの起動時には、 +互換性のある \fB"C"\fP ロケールがデフォルトで選択される。 +プログラムをすべてのロケールに対して互換にしたければ、 +プログラムの初期化の後に .nf setlocale(LC_ALL, ""); .fi -¤ò¸Æ¤Ó½Ð¤·¡¢¥í¥±¡¼¥ë°Í¸¤Î¾ðÊó¤Ë¤Ï +を呼び出し、ロケール依存の情報には .BR localeconv (3) -¤ÎÊÖ¤êÃͤòÍѤ¤¡¢ +の返り値を用い、 .BR "MB_CUR_MAX > 1" -¤Î¾ì¹ç¤Ë¤Ïʸ»úÎó¤ÎÁàºî¤Ë¤Ï¿¥Ð¥¤¥Èʸ»ú¡¢¥ï¥¤¥Éʸ»ú´Ø¿ô¤ò»ÈÍѤ·¡¢ -ʸ»úÎó¤ÎÈæ³Ó¤Ë¤Ï +の場合には文字列の操作には多バイト文字、ワイド文字関数を使用し、 +文字列の比較には .BR strcoll (3), .BR wcscoll (3) -¤ä +や .BR strxfrm (3), .BR wcsxfrm (3) -¤òÍѤ¤¤ë¡£ -.SH ÊÖ¤êÃÍ +を用いる。 +.SH 返り値 .BR setlocale () -¤Î¸Æ¤Ó½Ð¤·¤ËÀ®¸ù¤¹¤ë¤È¡¢ -¤½¤Î¥í¥±¡¼¥ë½¸¹ç¤ËÂбþ¤¹¤ëÆâÉôʸ»úÎó (opaque string) ¤òÊÖ¤¹¡£ -¤³¤Îʸ»úÎó¤ÏÀÅŪ¤Êµ­²±°è¤Ë³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤ÎÊ֤äÆÍ褿ʸ»úÎó¤ò¡¢¥«¥Æ¥´¥ê»ØÄê¤È¶¦¤Ë¡¢ -¤Î¤Á¤Î setlocale ¤Î¸Æ¤Ó½Ð¤·¤Ë»ØÄꤹ¤ì¤Ð¡¢ -¥×¥í¥»¥¹¤Î¤½¤ÎÉôʬ¤Î¥í¥±¡¼¥ë¤¬Éü¸µ¤µ¤ì¤ë¡£ -ÀßÄê¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ÊÖ¤êÃÍ¤Ï NULL ¤Ë¤Ê¤ë¡£ -.SH ½àµò +の呼び出しに成功すると、 +そのロケール集合に対応する内部文字列 (opaque string) を返す。 +この文字列は静的な記憶域に割り当てられているかもしれない。 +この返って来た文字列を、カテゴリ指定と共に、 +のちの setlocale の呼び出しに指定すれば、 +プロセスのその部分のロケールが復元される。 +設定に失敗した場合には、返り値は NULL になる。 +.SH 準拠 C89, C99, POSIX.1-2001. -.SH Ãí°Õ -Linux (¤È¤¤¤¦¤« glibc) ¤Ï¸ß´¹À­¤Î¤¢¤ë¥í¥±¡¼¥ë¤È¤·¤Æ -\fB"C"\fP ¤È \fB"POSIX"\fP ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -¸Å¤­¤è¤­»þÂå¤Ë¤Ï (Î㤨¤Ð libc-4.5.21 ¤È libc-4.6.27 ¤Ê¤É¤Ç¤Ï)¡¢ -European Latin-1 ¸þ¤±¤Ë -\fB"ISO-8859-1"\fP ¥í¥±¡¼¥ë¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤ª¤ê¡¢ -¥í¥·¥¢¸ì (Russian) ¸þ¤±¤Ë \fB"KOI-8"\fP -(¤è¤êÀµ³Î¤Ë¤Ï "koi-8r") ¥í¥±¡¼¥ë¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤¿¡£ -½¾¤Ã¤Æ´Ä¶­ÊÑ¿ô¤ò \fILC_CTYPE=ISO-8859-1\fP ¤È»ØÄꤹ¤ë¤À¤±¤Ç +.SH 注意 +Linux (というか glibc) は互換性のあるロケールとして +\fB"C"\fP と \fB"POSIX"\fP をサポートしている。 +古きよき時代には (例えば libc-4.5.21 と libc-4.6.27 などでは)、 +European Latin-1 向けに +\fB"ISO-8859-1"\fP ロケールがサポートされており、 +ロシア語 (Russian) 向けに \fB"KOI-8"\fP +(より正確には "koi-8r") ロケールがサポートされていた。 +従って環境変数を \fILC_CTYPE=ISO-8859-1\fP と指定するだけで .BR isprint (3) -¤ÏÀµ¤·¤¤Åú¤¨¤òÊÖ¤·¤¿¡£ -ºÇ¶á¤Ç¤Ï¡¢±Ñ¸ì°Ê³°¤ò»È¤¦¥è¡¼¥í¥Ã¥Ñ¿Í¤Ï¤â¤¦¾¯¡¹¤ä¤Ã¤«¤¤¤Êºî¶È¤òɬÍפȤ·¡¢ -¼ÂºÝ¤Î¥í¥±¡¼¥ë¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +は正しい答えを返した。 +最近では、英語以外を使うヨーロッパ人はもう少々やっかいな作業を必要とし、 +実際のロケールファイルをインストールしなければならない。 +.SH 関連項目 .BR locale (1), .BR localedef (1), .BR isalpha (3), diff --git a/release/man3/setlogmask.3 b/release/man3/setlogmask.3 index 7fb687fb..81a65064 100644 --- a/release/man3/setlogmask.3 +++ b/release/man3/setlogmask.3 @@ -25,35 +25,35 @@ .\" Translated Sat Nov 3 01:46:03 JST 2001 .\" by Akihiro MOTOKI .\" -.\"WORD: logging ¥í¥°¼ý½¸ +.\"WORD: logging ログ収集 .\" .TH SETLOGMASK 3 2001-10-05 "" "Linux Programmer's Manual" -.SH ̾Á° -setlogmask \- ¥í¥°¤ÎÍ¥ÀèÅÙ¥Þ¥¹¥¯¤òÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +setlogmask \- ログの優先度マスクを設定する +.SH 書式 .nf .B #include .sp .BI "int setlogmask(int " mask ); .fi -.SH ÀâÌÀ -¥×¥í¥»¥¹¤Ë¤Ï¥í¥°Í¥ÀèÅÙ¥Þ¥¹¥¯(log priority mask)¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Æ¡¢ -¤³¤ì¤òÍѤ¤¤Æ +.SH 説明 +プロセスにはログ優先度マスク(log priority mask)が用意されていて、 +これを用いて .BR syslog (3) -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¤Ë¥í¥°µ­Ï¿¤ò¹Ô¤¦¤«¤É¤¦¤«¤ò·èÄꤹ¤ë¡£ -¾¤Î¤¹¤Ù¤Æ¤Î´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¤Ï¥í¥°µ­Ï¿¤¬¹Ô¤ï¤ì¤Ê¤¤¡£ +が呼び出された場合にログ記録を行うかどうかを決定する。 +他のすべての関数が呼び出された場合はログ記録が行われない。 .I mask -¤Î³Æ¥Ó¥Ã¥È¤ÏÍ¥ÀèÅÙ¤ËÂбþ¤·¤Æ¤ª¤ê¡¢Âбþ¤¹¤ë¥Ó¥Ã¥È¤¬ 1 ¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë -Í¥ÀèÅÙ¤ËÂФ·¤Æ¥í¥°¼ý½¸(logging)¤¬Í­¸ú¤Ë¤Ê¤ë¡£ -¥Þ¥¹¥¯¤Î½é´üÃͤϡ¢¤¹¤Ù¤Æ¤ÎÍ¥ÀèÅÙ¤ËÂФ·¤Æ¥í¥°¼ý½¸¤¬Í­¸ú¤Ë¤Ê¤ë¤è¤¦¤ÊÃͤǤ¢¤ë¡£ +の各ビットは優先度に対応しており、対応するビットが 1 にセットされている +優先度に対してログ収集(logging)が有効になる。 +マスクの初期値は、すべての優先度に対してログ収集が有効になるような値である。 .LP .BR setlogmask () -´Ø¿ô¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ËÂФ¹¤ë¥í¥°¥Þ¥¹¥¯¤òÀßÄꤷ¡¢ -Êѹ¹Á°¤Î¥Þ¥¹¥¯¤òÊÖ¤¹¡£ +関数は、呼び出し元のプロセスに対するログマスクを設定し、 +変更前のマスクを返す。 .I mask -°ú¤­¿ô¤¬ 0 ¤Ê¤é¤Ð¡¢¸½ºß¤Î¥í¥°¥Þ¥¹¥¯¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +引き数が 0 ならば、現在のログマスクは変更されない。 .LP -°Ê²¼¤Î8¥ì¥Ù¥ë¤ÎÍ¥ÀèÅÙ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë(Í¥ÀèÅ٤ι⤤½ç)¡§ +以下の8レベルの優先度が定義されている(優先度の高い順): .BR LOG_EMERG , .BR LOG_ALERT , .BR LOG_CRIT , @@ -61,20 +61,20 @@ setlogmask \- .BR LOG_WARNING , .BR LOG_NOTICE , .BR LOG_INFO , -.BR LOG_DEBUG ¡£ -Í¥ÀèÅÙ \fIp\fP ¤ËÂбþ¤¹¤ë¥Ó¥Ã¥ÈÎó¤Ï \fBLOG_MASK\fP(\fIp\fP) ¤Ë¤è¤Ã¤Æµá¤á¤é¤ì¤ë¡£ -Í¥ÀèÅÙ \fIp\fP °Ê¾å¤Î¤¹¤Ù¤Æ¤ÎÍ¥ÀèÅÙ (\fIp\fP ¤ò´Þ¤à) ¤Î¥Þ¥¹¥¯¥Ó¥Ã¥È¤ò -µá¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¥Þ¥¯¥í \fBLOG_UPTO\fP(\fIp\fP) ¤ò»ÈÍѤǤ­¤ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -Êѹ¹Á°¤Î¥í¥°Í¥ÀèÅÙ¥Þ¥¹¥¯¤ÎÃͤòÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -¤Ê¤·¡£ -.SH Ãí°Õ -glibc 2.1.1 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï glibc ¤Î¥í¥°¥Þ¥¹¥¯¤Î°·¤¤¤ËÉÔ¶ñ¹ç¤¬¤¢¤ë¡£ -.SH ½àµò +.BR LOG_DEBUG 。 +優先度 \fIp\fP に対応するビット列は \fBLOG_MASK\fP(\fIp\fP) によって求められる。 +優先度 \fIp\fP 以上のすべての優先度 (\fIp\fP を含む) のマスクビットを +求めることができるマクロ \fBLOG_UPTO\fP(\fIp\fP) を使用できるシステムもある。 +.SH 返り値 +変更前のログ優先度マスクの値を返す。 +.SH エラー +なし。 +.SH 注意 +glibc 2.1.1 より前のバージョンでは glibc のログマスクの扱いに不具合がある。 +.SH 準拠 POSIX.1-2001. -POSIX.1-2001 ¤Ç¤ÎÀâÌÀ¤Ë¤Ï·ç´Ù¤¬¤¢¤ë¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +POSIX.1-2001 での説明には欠陥があることに注意すること。 +.SH 関連項目 .BR closelog (3), .BR openlog (3), .BR syslog (3) diff --git a/release/man3/setnetgrent.3 b/release/man3/setnetgrent.3 index 910ac1f1..4829f6cf 100644 --- a/release/man3/setnetgrent.3 +++ b/release/man3/setnetgrent.3 @@ -8,10 +8,10 @@ .\" Translated 2005-02-20, Akihiro MOTOKI .\" .TH SETNETGRENT 3 2007-07-26 "GNU" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 setnetgrent, endnetgrent, getnetgrent, getnetgrent_r, innetgr \- -¥Í¥Ã¥È¥ï¡¼¥¯¡¦¥°¥ë¡¼¥×¤Î¥¨¥ó¥È¥ê¤òÁàºî¤¹¤ë -.SH ½ñ¼° +ネットワーク・グループのエントリを操作する +.SH 書式 .nf .B #include @@ -29,9 +29,9 @@ setnetgrent, endnetgrent, getnetgrent, getnetgrent_r, innetgr \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -42,66 +42,66 @@ glibc .BR innetgr (): _BSD_SOURCE || _SVID_SOURCE .ad b -.SH ÀâÌÀ +.SH 説明 .I netgroup -¤Ï SunOS ¤Ç¹Í°Æ¤µ¤ì¤¿¤â¤Î¤Ç¤¢¤ë¡£¥Í¥Ã¥È¥°¥ë¡¼¥×¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î -¥¨¥ó¥È¥ê¤Ï¡¢ 3 ¤Ä¤Îʸ»úÎó¤Î¥ê¥¹¥È +は SunOS で考案されたものである。ネットグループのデータベースの +エントリは、 3 つの文字列のリスト .RI ( hostname ", " username ", " domainname ) -¤â¤·¤¯¤Ï¥Í¥Ã¥È¥°¥ë¡¼¥×̾¤Ç¤¢¤ë¡£ -Á°µ­¤Î¥ê¥¹¥È¤Î³ÆÍ×ÁǤ϶õ¤Ç¤¢¤Ã¤Æ¤â¤è¤¤¡£ -¶õ¤Ï²¿¤È¤Ç¤â°ìÃפ¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -ËÜ¥Ú¡¼¥¸¤ÇÀâÌÀ¤¹¤ë´Ø¿ô¤ò»È¤¦¤³¤È¤Ç¡¢¥Í¥Ã¥È¥°¥ë¡¼¥×¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë -¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤É¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬¸¡º÷¤µ¤ì¤ë¤«¤Ï +もしくはネットグループ名である。 +前記のリストの各要素は空であってもよい。 +空は何とでも一致することを意味する。 +本ページで説明する関数を使うことで、ネットグループのデータベースに +アクセスすることができる。どのデータベースが検索されるかは .I /etc/nsswitch.conf -¥Õ¥¡¥¤¥ë¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +ファイルで定義されている。 .PP .BR setnetgrent () -¥³¡¼¥ë¤Ï¡¢¤³¤Î¸å¤Ç¸Æ¤Ð¤ì¤ë +コールは、この後で呼ばれる .BR getnetgrent () -¥³¡¼¥ë¤¬¸¡º÷¤¹¤ë¥Í¥Ã¥È¥°¥ë¡¼¥×¤òÄê¤á¤ë¡£ +コールが検索するネットグループを定める。 .BR getnetgrent () -´Ø¿ô¤Ï¥Í¥Ã¥È¥°¥ë¡¼¥×¤Î¼¡¤Î¥¨¥ó¥È¥ê¤ò¼èÆÀ¤·¡¢ +関数はネットグループの次のエントリを取得し、 .IR host , .IR user , .I domain -¤Ë¥Ý¥¤¥ó¥¿¤òÆþ¤ì¤ÆÊ֤롣 -NULL ¥Ý¥¤¥ó¥¿¤Ï¡¢Âбþ¤¹¤ë¥¨¥ó¥È¥ê¤¬¤É¤ó¤Êʸ»úÎó¤È¤â°ìÃפ¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -ÆÀ¤é¤ì¤¿¥Ý¥¤¥ó¥¿¤Ï¡¢¥Í¥Ã¥È¥°¥ë¡¼¥×´Ø·¸¤Î´Ø¿ô¤Î¤¤¤º¤ì¤«¤¬¸Æ¤Ð¤ì¤ë¤Þ¤Ç¤Î -´Ö¤À¤±Í­¸ú¤Ç¤¢¤ë¡£¤³¤ÎÌäÂê¤òÈò¤±¤ë¤¿¤á¤Ë¤Ï GNU ³ÈÄ¥¤Î´Ø¿ô +にポインタを入れて返る。 +NULL ポインタは、対応するエントリがどんな文字列とも一致することを意味する。 +得られたポインタは、ネットグループ関係の関数のいずれかが呼ばれるまでの +間だけ有効である。この問題を避けるためには GNU 拡張の関数 .BR getnetgrent_r () -¤ò»È¤¦¤È¤è¤¤¡£¤³¤Î´Ø¿ô¤Ï¸Æ¤Ó½Ð¤·Â¦¤¬ÍÑ°Õ¤·¤¿¥Ð¥Ã¥Õ¥¡¤Ë -ʸ»úÎó¤ò³ÊǼ¤¹¤ë¡£³ä¤êÅö¤ÆºÑ¤Î¥Ð¥Ã¥Õ¥¡¤òÁ´¤Æ²òÊü¤¹¤ë¤Ë¤Ï +を使うとよい。この関数は呼び出し側が用意したバッファに +文字列を格納する。割り当て済のバッファを全て解放するには .BR endnetgrent () -¤ò»ÈÍѤ¹¤ë¡£ +を使用する。 .PP -¤Û¤È¤ó¤É¤Î¾ì¹ç¡¢ +ほとんどの場合、 .RI ( hostname ", " username ", " domainname ) -¤Î3Í×ÁǤÎÁȤ¬¥Í¥Ã¥È¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð¡¼¤«¤É¤¦¤«¤ò³Îǧ¤·¤¿¤¤¤À¤±¤Ç¤¢¤í¤¦¡£ +の3要素の組がネットグループのメンバーかどうかを確認したいだけであろう。 .BR innetgr () -´Ø¿ô¤ò»È¤¦¤È¡¢¾åµ­¤Î3¤Ä¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤µ¤º¤Ë¤³¤ÎÌÜŪ¤òãÀ®¤Ç¤­¤ë¡£ -¤â¤¦°ìÅÙ½ñ¤¤¤Æ¤ª¤¯¤¬¡¢NULL ¥Ý¥¤¥ó¥¿¤Ï¥ï¥¤¥ë¥É¥«¡¼¥É¤Ç¤¢¤ê¡¢ -¤¢¤é¤æ¤ëʸ»úÎó¤È°ìÃפ¹¤ë¡£¤³¤Î´Ø¿ô¤Ï¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤ÏÀ®¸ù¤¹¤ë¤È 1 ¤ò¡¢¼ºÇÔ¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ -.SH ¥Õ¥¡¥¤¥ë +関数を使うと、上記の3つの関数を呼び出さずにこの目的を達成できる。 +もう一度書いておくが、NULL ポインタはワイルドカードであり、 +あらゆる文字列と一致する。この関数はスレッドセーフである。 +.SH 返り値 +これらの関数は成功すると 1 を、失敗すると 0 を返す。 +.SH ファイル .I /etc/netgroup .br .I /etc/nsswitch.conf -.SH ½àµò -¤³¤ì¤é¤Î´Ø¿ô¤Ï POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¤¬¡¢ +.SH 準拠 +これらの関数は POSIX.1-2001 にはないが、 setnetgrent (), endnetgrent (), getnetgrent (), innetgr () -¤Ï¤Û¤È¤ó¤É¤Î UNIX ¥·¥¹¥Æ¥à¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +はほとんどの UNIX システムで利用可能である。 .BR getnetgrent_r () -¤Ï¹­¤¯Â¾¤Î¥·¥¹¥Æ¥à¤ÇÍøÍѤǤ­¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ +は広く他のシステムで利用できるわけではない。 .\" getnetgrent_r() is on Solaris 8 and AIX 5.1, but not the BSDs. -.SH Ãí°Õ -BSD ¤Î¼ÂÁõ¤Ç¤Ï +.SH 注意 +BSD の実装では .BR setnetgrent () -¤Ï void ¤òÊÖ¤¹¡£ -.SH ´ØÏ¢¹àÌÜ +は void を返す。 +.SH 関連項目 .BR sethostent (3), .BR setprotoent (3), .BR setservent (3) diff --git a/release/man3/shm_open.3 b/release/man3/shm_open.3 index b9d16df5..b1f16d37 100644 --- a/release/man3/shm_open.3 +++ b/release/man3/shm_open.3 @@ -29,253 +29,253 @@ .\" Updated 2009-02-23, Akihiro MOTOKI , LDP v3.19 .\" .TH SHM_OPEN 3 2009-02-25 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -shm_open, shm_unlink \- POSIX ¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ÎºîÀ®/¥ª¡¼¥×¥ó¡¢ -ºï½ü¤ò¹Ô¤¦ -.SH ½ñ¼° +.SH 名前 +shm_open, shm_unlink \- POSIX 共有メモリ・オブジェクトの作成/オープン、 +削除を行う +.SH 書式 .B #include .br -.BR "#include " " /* mode Äê¿ôÍÑ */" +.BR "#include " " /* mode 定数用 */" .br -.BR "#include " " /* O_* Äê¿ô¤ÎÄêµÁÍÑ */" +.BR "#include " " /* O_* 定数の定義用 */" .sp .BI "void * shm_open(const char *" name ", int " oflag ", mode_t " mode ); .sp .BI "int shm_unlink(const char *" name ); .sp -\fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ +\fI\-lrt\fP でリンクする。 +.SH 説明 .BR shm_open () -¤Ï¡¢POSIX ¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò¿·µ¬¤ËºîÀ®/¥ª¡¼¥×¥ó¤·¤¿¤ê¡¢ -¤¹¤Ç¤Ë¸ºß¤¹¤ë¥ª¥Ö¥¸¥§¥¯¥È¤ò¥ª¡¼¥×¥ó¤·¤¿¤ê¤¹¤ë¡£ -POSIX ¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢¼ÂºÝ¤Ë¤Ï¡¢´Ø·¸¤Î¤Ê¤¤¥×¥í¥»¥¹¤¬ -¶¦Í­¥á¥â¥ê¤ÎƱ¤¸Îΰè¤ò +は、POSIX 共有メモリ・オブジェクトを新規に作成/オープンしたり、 +すでに存在するオブジェクトをオープンしたりする。 +POSIX 共有メモリ・オブジェクトは、実際には、関係のないプロセスが +共有メモリの同じ領域を .BR mmap (2) -¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¼êÃʤǤ¢¤ë¡£ +するために使用することができる手段である。 .BR shm_unlink () -¤Ï¡¢µÕ¤ÎÁàºî¡¢¤Ä¤Þ¤ê°ÊÁ°¤Ë +は、逆の操作、つまり以前に .BR shm_open () -¤ÇºîÀ®¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Îºï½ü¤ò¹Ô¤¦¡£ +で作成されたオブジェクトの削除を行う。 .LP .BR shm_open () -¤ÎÆ°ºî¤Ï +の動作は .BR open (2) -¤È¤è¤¯»÷¤Æ¤¤¤ë¡£ +とよく似ている。 .I name -¤ÇºîÀ®¤·¤¿¤ê¥ª¡¼¥×¥ó¤·¤¿¤ê¤¹¤ë¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò»ØÄꤹ¤ë¡£ -°Ü¿¢À­¤ò»ý¤¿¤»¤ë¤¿¤á¤Ë¤Ï¡¢¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ï +で作成したりオープンしたりする共有メモリ・オブジェクトを指定する。 +移植性を持たせるためには、共有メモリ・オブジェクトは .I /somename -¤È¤¤¤¦·Á¼°¤Î̾Á°¤Ç¼±Ê̤·¡¢ -¤½¤Î̾Á°¤Ï¡¢ºÇÂç¤Ç +という形式の名前で識別し、 +その名前は、最大で .B NAME_MAX -(¤¹¤Ê¤ï¤Á 255) ʸ»ú¤Î NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ç¡¢ +(すなわち 255) 文字の NULL 終端された文字列で、 .\" glibc allows the initial slash to be omitted, and makes .\" multiple initial slashes equivalent to a single slash. .\" This differs from the implementation of POSIX message queues. -¥¹¥é¥Ã¥·¥å¤Ç»Ï¤Þ¤ê¡¢¥¹¥é¥Ã¥·¥å°Ê³°¤Îʸ»ú¤¬ 1 ʸ»ú°Ê¾å³¤¯·Á¼° -¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +スラッシュで始まり、スラッシュ以外の文字が 1 文字以上続く形式 +にすべきである。 .\" glibc allows subdirectory components in the name, in which .\" case the subdirectory must exist under /dev/shm, and allow the .\" required permissions if a user wants to create a shared memory .\" object in that subdirectory. .LP .I oflag -¤Ï¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¡¢ +はビットマスクで、 .B O_RDONLY -¤È +と .B O_RDWR -¤Î¤¤¤º¤ì¤«°ìÊý¤È¡¢°Ê²¼¤Ë½Ò¤Ù¤ë¾¤Î¥Õ¥é¥°¤ÎÏÀÍýϤò¤È¤Ã¤¿¤â¤Î -¤ò»ØÄꤹ¤ë¡£ +のいずれか一方と、以下に述べる他のフラグの論理和をとったもの +を指定する。 .TP 1.1i .B O_RDONLY -Æɤ߽Ф·¥¢¥¯¥»¥¹ÍѤ˥ª¥Ö¥¸¥§¥¯¥È¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤷ¤Æ¥ª¡¼¥×¥ó¤µ¤ì¤¿¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢ -Æɤ߽Ф· (\fBPROT_READ\fP) ¥¢¥¯¥»¥¹¤Ç¤Î¤ß +読み出しアクセス用にオブジェクトをオープンする。 +このフラグを指定してオープンされた共有メモリ・オブジェクトは、 +読み出し (\fBPROT_READ\fP) アクセスでのみ .BR mmap (2) -¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +することができる。 .TP .B O_RDWR -Æɤ߽ñ¤­¥¢¥¯¥»¥¹ÍѤ˥ª¥Ö¥¸¥§¥¯¥È¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£ +読み書きアクセス用にオブジェクトをオープンする。 .TP .B O_CREAT -¸ºß¤·¤Ê¤¤¾ì¹ç¡¢¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë¡£ -¥ª¥Ö¥¸¥§¥¯¥È¤Î¥æ¡¼¥¶¤È¥°¥ë¡¼¥×¤Î½êÍ­¸¢¤Ï¡¢ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤ÎÂбþ¤¹¤ë¼Â¸ú ID ¤¬»È¤ï¤ì¡¢ -.\" ËÜÅö¤Ï¡¢Linux ¤Ç¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à ID ¤¬»È¤ï¤ì¤ë¤Î¤À¤¬¡¢ -.\" ¤½¤ÎÃͤϤۤȤó¤É¤¤¤Ä¤â¼Â¸ú ID ¤ÈƱ¤¸¤Ç¤¢¤ë¡£ (MTK, Jul 05) -¥ª¥Ö¥¸¥§¥¯¥È¤Îµö²Ä¥Ó¥Ã¥È¤Ï +存在しない場合、共有メモリ・オブジェクトを作成する。 +オブジェクトのユーザとグループの所有権は、 +呼び出し元プロセスの対応する実効 ID が使われ、 +.\" 本当は、Linux ではファイルシステム ID が使われるのだが、 +.\" その値はほとんどいつも実効 ID と同じである。 (MTK, Jul 05) +オブジェクトの許可ビットは .I mode -¤Î²¼°Ì 9 ¥Ó¥Ã¥È¤Ë´ð¤Å¤¤¤ÆÀßÄꤵ¤ì¤ë¡£¤¿¤À¤·¡¢ -¥Õ¥¡¥¤¥ë¥â¡¼¥ÉºîÀ®¥Þ¥¹¥¯ +の下位 9 ビットに基づいて設定される。ただし、 +ファイルモード作成マスク .RB ( umask (2) -»²¾È) ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ëÃͤϡ¢¿·µ¬¥ª¥Ö¥¸¥§¥¯¥È¤Ë´Ø¤·¤Æ¤Ï¥¯¥ê¥¢¤µ¤ì¤ë¡£ +参照) に設定されている値は、新規オブジェクトに関してはクリアされる。 .I mode -¤òÄêµÁ¤¹¤ë¤¿¤á¤Ë»ÈÍѤǤ­¤ë¥Þ¥¯¥íÄê¿ô(·²)¤Ï +を定義するために使用できるマクロ定数(群)は .BR open (2) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë -(¤³¤ì¤é¤ÎÄê¿ô¤Î¥·¥ó¥Ü¥ëÄêµÁ¤Ï +に記載されている +(これらの定数のシンボル定義は .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ë¤è¤êÆÀ¤é¤ì¤ë)¡£ +のインクルードにより得られる)。 .sp -¿·µ¬¤ËºîÀ®¤µ¤ì¤¿¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ÏŤµ 0 ¤Ç½é´ü²½¤µ¤ì¤ë¡£ -¥ª¥Ö¥¸¥§¥¯¥È¤ÎÂ礭¤µ¤Ï +新規に作成された共有メモリ・オブジェクトは長さ 0 で初期化される。 +オブジェクトの大きさは .BR ftruncate (2) -¤ò»È¤Ã¤ÆÀßÄê¤Ç¤­¤ë¡£ -¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤Æ¿·µ¬¤Ë³ÎÊݤµ¤ì¤¿¥Ð¥¤¥È¤Ï¼«Æ°Åª¤Ë -0 ¤Ë½é´ü²½¤µ¤ì¤ë¡£ +を使って設定できる。 +共有メモリ・オブジェクトとして新規に確保されたバイトは自動的に +0 に初期化される。 .TP .B O_EXCL .B O_CREAT -¤¬°ì½ï¤Ë»ØÄꤵ¤ì¤Æ¤ª¤ê¡¢ +が一緒に指定されており、 .I name -¤Ç»ØÄꤵ¤ì¤¿¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤¬´û¤Ë¸ºß¤·¤¿¾ì¹ç¡¢ -¥¨¥é¡¼¤òÊÖ¤¹¡£ -¥ª¥Ö¥¸¥§¥¯¥È¤Î¸ºß³Îǧ¤È¡¢Â¸ºß¤·¤Ê¤«¤Ã¤¿¾ì¹ç¤Î¥ª¥Ö¥¸¥§¥¯¥ÈºîÀ®¤Ï¡¢ -ɬ¤º°ìÏ¢¤ÎÁàºî¤È¤·¤Æ¼Â¹Ô¤µ¤ì¤ë (performed atomically)¡£ +で指定された共有メモリ・オブジェクトが既に存在した場合、 +エラーを返す。 +オブジェクトの存在確認と、存在しなかった場合のオブジェクト作成は、 +必ず一連の操作として実行される (performed atomically)。 .TP .B O_TRUNC -¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤¬¤¹¤Ç¤Ë¸ºß¤·¤¿¾ì¹ç¡¢ -¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò 0 ¥Ð¥¤¥È¤ËÀÚ¤êµÍ¤á¤ë¡£ +共有メモリ・オブジェクトがすでに存在した場合、 +そのオブジェクトを 0 バイトに切り詰める。 .LP -¤³¤ì¤é¤Î¥Õ¥é¥°ÃͤÎÄêµÁ¤Ï +これらのフラグ値の定義は .I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ë¤è¤êÆÀ¤é¤ì¤ë¡£ +のインクルードにより得られる。 .LP -À®¸ù¤·¤Æ´°Î»¤·¤¿¾ì¹ç¡¢ +成功して完了した場合、 .BR shm_open () -¤Ï¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò»²¾È¤¹¤ë¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢¤½¤Î¥×¥í¥»¥¹Æâ¤Ç²áµî¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤ -¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÃæ¤ÇºÇ¤â¾®¤µ¤Ê¿ô¤Ë¤Ê¤ë¤³¤È¤¬Êݾڤµ¤ì¤ë¡£ +は共有メモリ・オブジェクトを参照する新しいファイル・ディスクリプタを返す。 +このファイル・ディスクリプタは、そのプロセス内で過去にオープンされていない +ファイル・ディスクリプタの中で最も小さな数になることが保証される。 .B FD_CLOEXEC -¥Õ¥é¥° +フラグ .RB ( fcntl (2) -¤ò»²¾È) ¤¬¡¢¤³¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÀßÄꤵ¤ì¤ë¡£ +を参照) が、このファイル・ディスクリプタに設定される。 .PP -Ä̾¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢¤³¤Î¸å³¤±¤Æ¼Â¹Ô¤µ¤ì¤ë +通常、これらのファイル・ディスクリプタは、この後続けて実行される .BR ftruncate (2) -(¿·µ¬¤ËºîÀ®¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ì¹ç¤Î¤ß) ¤È +(新規に作成されたオブジェクトの場合のみ) と .BR mmap (2) -¤Î¸Æ¤Ó½Ð¤·¤Ë»ÈÍѤµ¤ì¤ë¡£ +の呼び出しに使用される。 .BR mmap (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¸å¤Ï¡¢¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¯¥í¡¼¥º¤·¤Æ¤â¤è¤¯¡¢ -¥¯¥í¡¼¥º¤·¤Æ¤â¥á¥â¥ê¡¦¥Þ¥Ã¥Ô¥ó¥°¤Ë±Æ¶Á¤òÍ¿¤¨¤ë¤³¤È¤Ï¤Ê¤¤¡£ +を呼び出した後は、ファイル・ディスクリプタをクローズしてもよく、 +クローズしてもメモリ・マッピングに影響を与えることはない。 .PP .BR shm_unlink () -¤ÎÆ°ºî¤Ï +の動作は .BR unlink (2) -¤È¤è¤¯»÷¤Æ¤¤¤ë: -¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È̾¤òºï½ü¤·¡¢¤¹¤Ù¤Æ¤Î¥×¥í¥»¥¹¤¬½èÍýÂоݤΠ-¥ª¥Ö¥¸¥§¥¯¥È¤ò¥¢¥ó¥Þ¥Ã¥×¤·¤¿»þÅÀ¤Ç¥ª¥Ö¥¸¥§¥¯¥È¤Î³ä¤êÅö¤Æ¤ò²ò½ü¤·¡¢ -Âбþ¤¹¤ë¥á¥â¥êÎΰè¤ÎÆâÍƤòÇË´þ¤¹¤ë¡£ +とよく似ている: +共有メモリ・オブジェクト名を削除し、すべてのプロセスが処理対象の +オブジェクトをアンマップした時点でオブジェクトの割り当てを解除し、 +対応するメモリ領域の内容を破棄する。 .BR shm_unlink () -¤¬À®¸ù¤·¤¿¸å¤Ç¡¢Æ±¤¸ +が成功した後で、同じ .I name -¤ò»ý¤Ä¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ·¤Æ +を持つオブジェクトに対して .BR shm_open () -¤ò¹Ô¤¦¤È¡¢ +を行うと、 .RB ( O_CREAT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç) ¼ºÇÔ¤¹¤ë¡£ +が指定されていない場合) 失敗する。 .RB ( O_CREAT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¿·¤·¤¯Ê̤Υª¥Ö¥¸¥§¥¯¥È¤¬ºîÀ®¤µ¤ì¤ë)¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +が指定されている場合、新しく別のオブジェクトが作成される)。 +.SH 返り値 +成功した場合、 .BR shm_open () -¤ÏÈóÉé¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢ +は非負のファイル・ディスクリプタを返す。 +失敗した場合、 .BR shm_open () -¤Ï \-1 ¤òÊÖ¤¹¡£ +は \-1 を返す。 .BR shm_unlink () -¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç 0 ¤ò¡¢¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç \-1 ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -¼ºÇÔ¤·¤¿¾ì¹ç¡¢¥¨¥é¡¼¤Î¸¶°ø¤ò¼¨¤¹¤¿¤á +は、成功した場合 0 を、エラーが起こった場合 \-1 を返す。 +.SH エラー +失敗した場合、エラーの原因を示すため .I errno -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .I errno -¤ËÀßÄꤵ¤ì¤ëÃͤϰʲ¼¤ÎÄ̤ê¤Ç¤¢¤ë: +に設定される値は以下の通りである: .TP .B EACCES -¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È¤ò +共有メモリオブジェクトを .BR shm_unlink () -¤¹¤ë¸¢¸Â¤¬¤Ê¤«¤Ã¤¿¡£ +する権限がなかった。 .TP .B EACCES -»ØÄꤵ¤ì¤¿ +指定された .I mode -¤Ç +で .I name -¤ò +を .BR shm_open () -¤¹¤ë¸¢¸Â¤¬¤Ê¤«¤Ã¤¿¡£¤â¤·¤¯¤Ï¡¢ +する権限がなかった。もしくは、 .B O_TRUNC -¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¸Æ¤Ó½Ð¤·¸µ¤Ë¤Ï¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ¹¤ë½ñ¤­¹þ¤ß¸¢¸Â¤¬ -¤Ê¤«¤Ã¤¿¡£ +が指定されたが、呼び出し元にはそのオブジェクトに対する書き込み権限が +なかった。 .TP .B EEXIST .B O_CREAT -¤È +と .B O_EXCL -¤ÎξÊý¤¬ +の両方が .BR shm_open () -¤Ë»ØÄꤵ¤ì¤¿¤¬¡¢ +に指定されたが、 .I name -¤Ç»ØÄꤵ¤ì¤¿¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤¬´û¤Ë¸ºß¤·¤¿¡£ +で指定された共有メモリ・オブジェクトが既に存在した。 .TP .B EINVAL .BR shm_open () -¤ËÍ¿¤¨¤é¤ì¤¿ +に与えられた .I name -°ú¤­¿ô¤¬ÉÔÀµ¤Ç¤¢¤Ã¤¿¡£ +引き数が不正であった。 .TP .B EMFILE -¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó²Äǽ¤Ê¥Õ¥¡¥¤¥ë¿ô¤Î¾å¸Â¤Ë¤¹¤Ç¤Ë㤷¤Æ¤¤¤¿¡£ +プロセスがオープン可能なファイル数の上限にすでに達していた。 .TP .B ENAMETOOLONG .I name -¤ÎŤµ¤¬ +の長さが .B PATH_MAX -¤ò±Û¤¨¤Æ¤¤¤ë¡£ +を越えている。 .TP .B ENFILE -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¿ô¤Î¾å¸Â¤Ë㤷¤¿¡£ +ファイルシステムでオープンできるファイル数の上限に達した。 .TP .B ENOENT -¸ºß¤·¤Æ¤¤¤Ê¤¤ +存在していない .I name -¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò +のオブジェクトを .BR shm_open () -¤·¤è¤¦¤È¤·¤¿¤¬¡¢ +しようとしたが、 .B O_CREAT -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +が指定されていなかった。 .TP .B ENOENT -¸ºß¤·¤Ê¤¤ +存在しない .I name -¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò +のオブジェクトを .BR shm_unlink () -¤·¤è¤¦¤È¤·¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc 2.2 °Ê¹ß¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò +しようとした。 +.SH バージョン +これらの関数は glibc 2.2 以降で提供されている。 +.SH 準拠 POSIX.1-2001. .LP -POSIX.1-2001 ¤Ë¤Ï¡¢¿·µ¬¤ËºîÀ®¤µ¤ì¤ë¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È¤Î¥°¥ë¡¼¥×½êÍ­¸¢¤Ï¡¢ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú¥°¥ë¡¼¥× ID ¤« ¡Ö¥·¥¹¥Æ¥à¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥°¥ë¡¼¥× ID¡× -¤Î¤É¤Á¤é¤«¤ËÀßÄꤵ¤ì¤ë¡¢¤È½ñ¤«¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ +POSIX.1-2001 には、新規に作成される共有メモリオブジェクトのグループ所有権は、 +呼び出し元プロセスの実効グループ ID か 「システムのデフォルトのグループ ID」 +のどちらかに設定される、と書かれている。 +.SH 注意 .LP -POSIX ¤Ï +POSIX は .B O_RDONLY -¤È +と .B O_TRUNC -¤¬°ì½ï¤Ë»ØÄꤵ¤ì¤¿¾ì¹ç¤ÎÆ°ºî¤ò̤ÄêµÁ¤Ë¤·¤Æ¤¤¤ë¡£Linux ¤Ç¤Ï¡¢ -´û¸¤Î¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ¹¤ëÀÚ¤êµÍ¤á (truncate) ¤ÏÀ®¸ù¤¹¤ë¡£ -¤·¤«¤·¡¢Â¾¤Î UNIX ¥·¥¹¥Æ¥à¤Ç¤âƱ¤¸¤Ç¤¢¤ë¤È¤Ï¸Â¤é¤Ê¤¤¡£ +が一緒に指定された場合の動作を未定義にしている。Linux では、 +既存の共有メモリ・オブジェクトに対する切り詰め (truncate) は成功する。 +しかし、他の UNIX システムでも同じであるとは限らない。 .LP -Linux 2.4 ¤Ë¤ª¤±¤ë POSIX ¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Î¼ÂÁõ¤Ï -ÀìÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¤ò»ÈÍѤ¹¤ë¡£¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÏÄ̾ï +Linux 2.4 における POSIX 共有メモリ・オブジェクトの実装は +専用のファイルシステムを使用する。そのファイルシステムは通常 .I /dev/shm -¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +にマウントされる。 +.SH 関連項目 .BR close (2), .BR fchmod (2), .BR fchown (2), diff --git a/release/man3/siginterrupt.3 b/release/man3/siginterrupt.3 index 00d4f1b6..76e270d2 100644 --- a/release/man3/siginterrupt.3 +++ b/release/man3/siginterrupt.3 @@ -33,9 +33,9 @@ .\" by HANATAKA Shinya .\" .TH SIGINTERRUPT 3 2011-09-09 "" "Linux Programmer's Manual" -.SH ̾Á° -siginterrupt \- ¥·¥°¥Ê¥ë¤Ç¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ë³ä¤ê¹þ¤à¤³¤È¤òµö¤¹ -.SH ½ñ¼° +.SH 名前 +siginterrupt \- シグナルでシステム・コールに割り込むことを許す +.SH 書式 .nf .B #include .sp @@ -43,9 +43,9 @@ siginterrupt \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR siginterrupt (): @@ -57,40 +57,40 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED || /* Since glibc 2.12: */ _POSIX_C_SOURCE\ >=\ 200809L .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR siginterrupt () -´Ø¿ô¤Ï¡¢¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤¬¥·¥°¥Ê¥ë \fIsig\fP -¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿¸å¡¢ºÆ¼Â¹Ô¤ÎºÝ¤Î¿¶¤ëÉñ¤¤¤òÊѹ¹¤¹¤ë¡£ -\fIflag\fP °ú¤­¿ô¤¬µ¶ (0) ¤Ê¤é¤Ð¡¢¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤¬»ØÄꤷ¤¿ -¥·¥°¥Ê¥ë \fIsig\fP ¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿¸å¤Ë¡¢¤½¤Î¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï -ºÆ¼Â¹Ô¤µ¤ì¤ë¡£¤³¤ì¤Ï Linux ¤Ë¤ª¤¤¤Æ¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ç¤¢¤ë¡£ +関数は、システム・コールがシグナル \fIsig\fP +によって割り込まれた後、再実行の際の振る舞いを変更する。 +\fIflag\fP 引き数が偽 (0) ならば、システム・コールが指定した +シグナル \fIsig\fP によって割り込まれた後に、そのシステム・コールは +再実行される。これは Linux においてデフォルトの動作である。 .PP -\fIflag\fP °ú¤­¿ô¤¬¿¿ (1) ¤Ç¥Ç¡¼¥¿¤ÎžÁ÷¤¬Á´¤¯¹Ô¤Ê¤ï¤ì¤Æ¤¤¤Ê¤¤¤Ê¤é¤Ð¡¢ -¥·¥°¥Ê¥ë \fIsig\fP ¤Ç¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ÏÃæÃǤµ¤ì¤Æ¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ -\fIerrno\fP ¤Ë +\fIflag\fP 引き数が真 (1) でデータの転送が全く行なわれていないならば、 +シグナル \fIsig\fP でシステム・コールは中断されて、\-1 が返され、 +\fIerrno\fP に .B EINTR -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .PP -\fIflag\fP °ú¤­¿ô¤¬¿¿ (1) ¤Ç¥Ç¡¼¥¿¤ÎžÁ÷¤¬³«»Ï¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢ -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ÏÃæÃǤµ¤ì¡¢¤½¤ì¤Þ¤Ç¤Ë¼ÂºÝ¤ËžÁ÷¤µ¤ì¤¿¥Ç¡¼¥¿ -¤ÎÎ̤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +\fIflag\fP 引き数が真 (1) でデータの転送が開始されていれば、 +システム・コールは中断され、それまでに実際に転送されたデータ +の量が返される。 +.SH 返り値 .BR siginterrupt () -´Ø¿ô¤ÏÀ®¸ù¤·¤¿¾ì¹ç 0 ¤òÊÖ¤¹¡£ -¥·¥°¥Ê¥ëÈÖ¹æ \fIsig\fP ¤¬ÉÔÀµ¤Ê¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +関数は成功した場合 0 を返す。 +シグナル番号 \fIsig\fP が不正な場合は \-1 を返す。 +.SH エラー .TP .B EINVAL -»ØÄꤷ¤¿¥·¥°¥Ê¥ëÈֹ椬ÉÔÀµ¤Ç¤¢¤ë¡£ -.SH ½àµò +指定したシグナル番号が不正である。 +.SH 準拠 4.3BSD, POSIX.1-2001. -POSIX.1-2008 ¤Ï¡¢ +POSIX.1-2008 は、 .BR siginterrupt () -¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£ -Âå¤ï¤ê¤Ë¡¢ +を廃止予定としている。 +代わりに、 .BR sigaction (2) -¤Ë +に .B SA_RESTART -¥Õ¥é¥°¤ò»ØÄꤷ¤Æ»È¤¦¤³¤È¤ò¿ä¾©¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +フラグを指定して使うことを推奨している。 +.SH 関連項目 .BR signal (2) diff --git a/release/man3/signbit.3 b/release/man3/signbit.3 index 2a3218ac..67dee79d 100644 --- a/release/man3/signbit.3 +++ b/release/man3/signbit.3 @@ -11,19 +11,19 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH SIGNBIT 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -signbit \- ÉâÆ°¾®¿ôÅÀ¼Â¿ô¤ÎÉä¹æ (sign) ¤òÄ´¤Ù¤ë -.SH ½ñ¼° +.SH 名前 +signbit \- 浮動小数点実数の符号 (sign) を調べる +.SH 書式 .B "#include " .sp .BI "int signbit(" x ");" .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -36,33 +36,33 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR signbit () -¤Ï¡¢¤¢¤é¤æ¤ë¼ïÎà¤ÎÉâÆ°¾®¿ôÅÀ¼Â¿ô¤ËÂФ·¤Æ -ŬÍѲÄǽ¤ÊÈÆÍÑŪ¤Ê¥Þ¥¯¥í¤Ç¤¢¤ë¡£ +は、あらゆる種類の浮動小数点実数に対して +適用可能な汎用的なマクロである。 .I x -¤ÎÃͤÎÉä¹æ¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢Èó 0 ¤ÎÃͤòÊÖ¤¹¡£ +の値の符号ビットがセットされている場合、非 0 の値を返す。 .PP -¤³¤Î¥Þ¥¯¥í¤Ï +このマクロは .I "x < 0.0" -¤ÈÁ´¤¯Æ±¤¸¤Ç¤Ï¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¡¢IEEE 754 ¤ÎÉâÆ°¾®¿ôÅÀɽ¸½¤Ç¤Ï 0 ¤âÉä¹æ¤ò»ý¤Ä¤«¤é¤Ç¤¢¤ë¡£ +と全く同じではない。 +なぜなら、IEEE 754 の浮動小数点表現では 0 も符号を持つからである。 .I "-0.0 < 0.0" -¤È¤¤¤¦Èæ³Ó·ë²Ì¤Ïµ¶ (false) ¤À¤¬¡¢ +という比較結果は偽 (false) だが、 .IR "signbit (\-0.0)" -¤Ï Èó 0 ¤ÎÃͤòÊÖ¤¹¡£ +は 非 0 の値を返す。 -NaN ¤È̵¸ÂÂç¤Ë¤ÏÉä¹æ¥Ó¥Ã¥È¤¬¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +NaN と無限大には符号ビットがある。 +.SH 返り値 .BR signbit () -¥Þ¥¯¥í¤Ï +マクロは .I x -¤ÎÉä¹æ¤¬Éé¤Î¾ì¹ç 0 °Ê³°¤òÊÖ¤·¡¢¤½¤¦¤Ç¤Ê¤¤¾ì¹ç 0 ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ -.SH ½àµò +の符号が負の場合 0 以外を返し、そうでない場合 0 を返す。 +.SH エラー +エラーは発生しない。 +.SH 準拠 C99, POSIX.1-2001. -¤³¤Î´Ø¿ô¤Ï IEC 559 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë -(¤Þ¤¿ IEEE 754/IEEE 854 ¤Ç¤ÏÉÕÏ¿¤Ç¿ä¾©´Ø¿ô¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ -.SH ´ØÏ¢¹àÌÜ +この関数は IEC 559 で定義されている +(また IEEE 754/IEEE 854 では付録で推奨関数として定義されている)。 +.SH 関連項目 .BR copysign (3) diff --git a/release/man3/significand.3 b/release/man3/significand.3 index 4fc39169..ef4d0e7e 100644 --- a/release/man3/significand.3 +++ b/release/man3/significand.3 @@ -8,9 +8,9 @@ .\" by Yuichi SATO .\" .TH SIGNIFICAND 3 2009-02-04 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -significand, significandf, significandl \- ÉâÆ°¾®¿ôÅÀ¿ô¤Î²¾¿ô (mantissa) ¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +significand, significandf, significandl \- 浮動小数点数の仮数 (mantissa) を取得する +.SH 書式 .B #include .sp .BI "double significand(double " x ); @@ -19,12 +19,12 @@ significand, significandf, significandl \- .br .BI "long double significandl(long double " x ); .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -35,24 +35,24 @@ glibc _SVID_SOURCE || _BSD_SOURCE .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR significand () -´Ø¿ô¤Ï +関数は .I x -¤Î²¾¿ô¤ò [1,2) ¤ÎÈϰϤˤ·¤ÆÊÖ¤¹¡£ -¤³¤ì¤Ï¡¢°Ê²¼¤ÈÅù¤·¤¤¡£ +の仮数を [1,2) の範囲にして返す。 +これは、以下と等しい。 .sp .in +4n scalb(x, (double) \-ilogb(x)) .in .PP -¤³¤Î´Ø¿ô¤Ï¼ç¤Ë IEEE 754 ¤Ø¤Î½àµò¤òÄ´¤Ù¤ëɸ½à¥Æ¥¹¥È¤Ç»È¤ï¤ì¤ë¡£ -.SH ½àµò -¤³¤ì¤é¤Î´Ø¿ô¤ÏÈóɸ½à¤Ç¤¢¤ë¡£¡£ +この関数は主に IEEE 754 への準拠を調べる標準テストで使われる。 +.SH 準拠 +これらの関数は非標準である。。 .I double -ÈǤϾ¤Î¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤âÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.\" .SH ÍúÎò -.\" ¤³¤Î´Ø¿ô¤Ï BSD ¤ËͳÍ褹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +版は他の多くのシステムでも利用可能である。 +.\" .SH 履歴 +.\" この関数は BSD に由来する。 +.SH 関連項目 .BR ilogb (3), .BR scalb (3) diff --git a/release/man3/sigpause.3 b/release/man3/sigpause.3 index 64273460..fd78a534 100644 --- a/release/man3/sigpause.3 +++ b/release/man3/sigpause.3 @@ -27,15 +27,15 @@ .\" Catch up to LDP man-pages 2.16 .\" Rename sigpause.2 to sigpause.3, and modified a little. .\" -.\"WORD: signal ¥·¥°¥Ê¥ë -.\"WORD: interrupt ³ä¤ê¹þ¤ß -.\"WORD: mask ¥Þ¥¹¥¯ -.\"WORD: block ¥Ö¥í¥Ã¥¯¤¹¤ë +.\"WORD: signal シグナル +.\"WORD: interrupt 割り込み +.\"WORD: mask マスク +.\"WORD: block ブロックする .\" .TH SIGPAUSE 3 2010-09-12 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sigpause \- ¥Ö¥í¥Ã¥¯¤µ¤ì¤¿¥·¥°¥Ê¥ë¤ò¥¢¥È¥ß¥Ã¥¯¤Ë²òÊü¤·¤Æ³ä¤ê¹þ¤ß¤òÂÔ¤Ä -.SH ½ñ¼° +.SH 名前 +sigpause \- ブロックされたシグナルをアトミックに解放して割り込みを待つ +.SH 書式 .nf .B #include .sp @@ -43,72 +43,72 @@ sigpause \- .sp .BI "int sigpause(int " sig "); /* System V / UNIX 95 */" .fi -.SH ÀâÌÀ -¤³¤Î´Ø¿ô¤ò»È¤ï¤Ê¤¤¤³¤È¡£ -Âå¤ï¤ê¤Ë +.SH 説明 +この関数を使わないこと。 +代わりに .BR sigsuspend (2) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .LP -´Ø¿ô +関数 .BR sigpause () -¤Ï¥·¥°¥Ê¥ë¤òÂԤĤ褦¤ËÀ߷פµ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯ (¥Ö¥í¥Ã¥¯¤µ¤ì¤¿¥·¥°¥Ê¥ë¤Î¥»¥Ã¥È) ¤òÊѹ¹¤·¡¢ -¥·¥°¥Ê¥ë¤¬ÅþÃ夹¤ë¤Î¤òÂԤġ£ -¥·¥°¥Ê¥ë¤¬ÅþÃ夹¤ë¤È¡¢¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ï¸µ¤ËÌᤵ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +はシグナルを待つように設計されている。 +この関数はプロセスのシグナルマスク (ブロックされたシグナルのセット) を変更し、 +シグナルが到着するのを待つ。 +シグナルが到着すると、シグナルマスクは元に戻される。 +.SH 返り値 .BR sigpause () -¤¬Ê֤俾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤Æ¤¤¤ë¡£ -ÊÖ¤êÃÍ¤Ï \-1 ¤Ç¡¢ +が返った場合、この関数はシグナルによって割り込まれている。 +返り値は \-1 で、 .I errno -¤Ï +は .B EINTR -¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ½àµò -System V ÈǤΠ+に設定される。 +.SH 準拠 +System V 版の .BR sigpause () -¤Ï POSIX.1-2001 ¤Çɸ½à²½¤µ¤ì¤Æ¤¤¤ë¡£ -.SH È÷¹Í -.SS Îò»Ë -¤³¤Î´Ø¿ô¤Î¸ÅŵŪ¤Ê BSD ÈÇ¤Ï 4.2BSD ¤ÇÅо줷¤¿¡£ -¤³¤Î´Ø¿ô¤Ï¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ò +は POSIX.1-2001 で標準化されている。 +.SH 備考 +.SS 歴史 +この関数の古典的な BSD 版は 4.2BSD で登場した。 +この関数はプロセスのシグナルマスクを .I sigmask -¤ËÀßÄꤹ¤ë¡£ -UNIX 95 ¤Ç¤Ï BSD ÈǤȸߴ¹À­¤Î¤Ê¤¤ System V ÈǤΤ³¤Î´Ø¿ô¤¬É¸½à²½¤µ¤ì¤¿¡£ -UNIX 95 ÈǤϡ¢»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë +に設定する。 +UNIX 95 では BSD 版と互換性のない System V 版のこの関数が標準化された。 +UNIX 95 版は、指定されたシグナル .I sig -¤ò¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤«¤éºï½ü¤¹¤ë¤À¤±¤Ç¤¢¤ë¡£ +をプロセスのシグナルマスクから削除するだけである。 .\" __xpg_sigpause: UNIX 95, spec 1170, SVID, SVr4, XPG -Ʊ¤¸Ì¾Á°¤Ç¸ß´¹À­¤Î¤Ê¤¤ 2 ¤Ä¤Î´Ø¿ô¤¬¤¢¤ë¤È¤¤¤¦ÉÔ¹¬¤Ê»öÂ֤ϡ¢ +同じ名前で互換性のない 2 つの関数があるという不幸な事態は、 .BR \%sigsuspend (2) -´Ø¿ô¤Ë¤è¤Ã¤Æ²ò¾Ã¤µ¤ì¤¿¡£ -¤³¤Î´Ø¿ô¤Ï +関数によって解消された。 +この関数は .RI ( int -¤ÎÂå¤ï¤ê¤Ë) +の代わりに) .B "sigset_t *" -°ú¤­¿ô¤ò¤È¤ë¡£ -.SS Linux ¤Ç¤ÎÃí°Õ -Linux ¤Ç¤Ï¡¢¤³¤Î¥ë¡¼¥Á¥ó¤Ï Sparc (sparc64) ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Î¤ß -¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ +引き数をとる。 +.SS Linux での注意 +Linux では、このルーチンは Sparc (sparc64) アーキテクチャでのみ +システムコールとなっている。 -libc4 ¤È libc5 ¤Ë¤Ï BSD ÈǤ·¤«¤Ê¤¤¡£ +libc4 と libc5 には BSD 版しかない。 -µ¡Ç½¸¡ºº¥Þ¥¯¥í +機能検査マクロ .B _BSD_SOURCE -¤¬ÄêµÁ¤µ¤ì¡¢ +が定義され、 .BR _POSIX_SOURCE , .BR _POSIX_C_SOURCE , .BR _XOPEN_SOURCE , .BR _GNU_SOURCE , .B _SVID_SOURCE -¤Î¤¤¤º¤ì¤âÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -glibc ¤Ï BSD ÈǤò»È¤¦¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï¡¢System V ÈǤò»ÈÍѤ¹¤ë¡£ +のいずれも定義されていない場合、 +glibc は BSD 版を使う。 +それ以外の場合には、System V 版を使用する。 .\" -.\" BSD ÈǤǤϡ¢ -.\" .RI ¡Ö sigmask -.\" ¤ò 0 ¤Ë¤·¤Æ¡¢¤É¤Î¥·¥°¥Ê¥ë¤â¥Ö¥í¥Ã¥¯¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡× -.\" ¤È¤¤¤¦¤Î¤¬¤è¤¯»È¤ï¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +.\" BSD 版では、 +.\" .RI 「 sigmask +.\" を 0 にして、どのシグナルもブロックされないようにする」 +.\" というのがよく使われる。 +.SH 関連項目 .BR kill (2), .BR sigaction (2), .BR sigprocmask (2), diff --git a/release/man3/sigqueue.3 b/release/man3/sigqueue.3 index 47a8024d..6e885a34 100644 --- a/release/man3/sigqueue.3 +++ b/release/man3/sigqueue.3 @@ -30,39 +30,39 @@ .\" Updated 2007-09-08, Akihiro MOTOKI , LDP v2.64 .\" .TH SIGQUEUE 3 2011-09-18 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sigqueue, rt_sigqueueinfo \- ¥·¥°¥Ê¥ë¤È¥Ç¡¼¥¿¤ò¥×¥í¥»¥¹¤ËÁ÷¤ë -.SH ½ñ¼° +.SH 名前 +sigqueue, rt_sigqueueinfo \- シグナルとデータをプロセスに送る +.SH 書式 .B #include .sp .BI "int sigqueue(pid_t " pid ", int " sig ", const union sigval " value ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR sigqueue (): _POSIX_C_SOURCE\ >=\ 199309L -.SH ÀâÌÀ +.SH 説明 .BR sigqueue () -¤Ï +は .I sig -¤Ç»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë¤ò¡¢PID ¤¬ +で指定されたシグナルを、PID が .I pid -¤Ç¤¢¤ë¥×¥í¥»¥¹¤ËÁ÷¤ë¡£ -¥·¥°¥Ê¥ë¤òÁ÷¤ë¤Î¤ËɬÍפʸ¢¸Â¤Ï +であるプロセスに送る。 +シグナルを送るのに必要な権限は .BR kill (2) -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .BR kill (2) -¤ÈƱÍͤˡ¢¥Ì¥ë¡¦¥·¥°¥Ê¥ë (0) ¤ò»È¤Ã¤Æ -»ØÄꤷ¤¿ PID ¤Î¥×¥í¥»¥¹¤¬Â¸ºß¤¹¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +と同様に、ヌル・シグナル (0) を使って +指定した PID のプロセスが存在するかをチェックすることができる。 .PP .I value -°ú¤­¿ô¤Ï¥·¥°¥Ê¥ë¤È°ì½ï¤ËÁ÷¤ë¥Ç¡¼¥¿¤ÎÉÕ°¥¢¥¤¥Æ¥à¤ò»ØÄꤹ¤ë¡£ +引き数はシグナルと一緒に送るデータの付属アイテムを指定する。 .I value -¤Ï (À°¿ô¤Þ¤¿¤Ï¥Ý¥¤¥ó¥¿¤ÎÃͤǤ¢¤ê) °Ê²¼¤Î¤è¤¦¤Ê·¿¤Ç¤¢¤ë¡£ +は (整数またはポインタの値であり) 以下のような型である。 .sp .in +4n .nf @@ -73,84 +73,84 @@ union sigval { .fi .in -¼õ¼èÀè¤Î¥×¥í¥»¥¹¤Ë¡¢¤³¤Î¥·¥°¥Ê¥ë¤ËÂФ¹¤ë¥Ï¥ó¥É¥é¤ò +受取先のプロセスに、このシグナルに対するハンドラを .RB ( sigaction (2) -¤Ë +に .B SA_SIGINFO -¤ò»ØÄꤷ¤Æ) ¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤ª¤¯¤È¡¢ -¤½¤Î¥Ï¥ó¥É¥é¤ÎÂè 2 °ú¤­¿ô¤ËÅϤµ¤ì¤ë +を指定して) インストールしておくと、 +そのハンドラの第 2 引き数に渡される .I siginfo_t -¹½Â¤ÂΤΠ+構造体の .I si_value -¥Õ¥£¡¼¥ë¥É¤Ë¤è¤Ã¤Æ¡¢¤³¤Î¥Ç¡¼¥¿¤ò¼èÆÀ¤Ç¤­¤ë¡£ -¤µ¤é¤Ë¡¢¤³¤Î¹½Â¤ÂΤΠ+フィールドによって、このデータを取得できる。 +さらに、この構造体の .I si_code -¥Õ¥£¡¼¥ë¥É¤Ï +フィールドは .B SI_QUEUE -¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +に設定される。 +.SH 返り値 +成功した場合、 .BR sigqueue () -¤Ï 0 ¤òÊÖ¤¹¡£ -¤³¤ì¤Ï¼õ¤±¼è¤ê¦¥×¥í¥»¥¹¤ÎÂÔ¤Á¹ÔÎó¤Ë -¥·¥°¥Ê¥ë¤¬Àµ¤·¤¯Æþ¤ì¤é¤ì¤¿¤³¤È¤ò¼¨¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ +は 0 を返す。 +これは受け取り側プロセスの待ち行列に +シグナルが正しく入れられたことを示す。 +失敗した場合は \-1 が返され、 .I errno -¤¬¥¨¥é¡¼¤òɽ¤¹ÃͤËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +がエラーを表す値に設定される。 +.SH エラー .TP .B EAGAIN -ÂÔ¤Á¹ÔÎó¤ËÆþ¤ì¤é¤ì¤ë¥·¥°¥Ê¥ë¤ÎºÇÂç¿ô¤Ë㤷¤¿ -(¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï +待ち行列に入れられるシグナルの最大数に達した +(より詳しい情報は .BR signal (7) -¤ò»²¾È¤¹¤ë¤³¤È)¡£ +を参照すること)。 .TP .B EINVAL .I sig -¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ +が不正である。 .TP .B EPERM -¤³¤Î¥×¥í¥»¥¹¤Ë¤Ï¡¢¼õ¤±¼è¤ê¦¥×¥í¥»¥¹¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¸¢¸Â¤¬¤Ê¤¤¡£ -ɬÍפʸ¢¸Â¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +このプロセスには、受け取り側プロセスにシグナルを送る権限がない。 +必要な権限については、 .BR kill (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .TP .B ESRCH .I pid -¤Ë¥Þ¥Ã¥Á¤¹¤ë PID ¤Î¥×¥í¥»¥¹¤¬¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 2.2 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +にマッチする PID のプロセスがない。 +.SH バージョン +このシステムコールは Linux 2.2 で初めて登場した。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ -¤³¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ë¤³¤Î´Ø¿ô¤¬¥·¥°¥Ê¥ë¤òÁ÷¤Ã¤¿¤È¤­¤Ë¡¢ -¥·¥°¥Ê¥ë¤¬¸Æ¤Ó½Ð¤·Â¦¥¹¥ì¥Ã¥É¤Ë¥Ö¥í¥Ã¥¯¤µ¤ì¤º¡¢ -¤«¤Ä (¥·¥°¥Ê¥ë¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤Ê¤«¤Ã¤¿¡¢¤Þ¤¿¤Ï +.SH 注意 +この関数を呼び出したプロセスにこの関数がシグナルを送ったときに、 +シグナルが呼び出し側スレッドにブロックされず、 +かつ (シグナルがブロックされなかった、または .BR sigwait (3) -¤ò»ÈÍѤ¹¤ë¤Î¤òÂԤäƤ¤¤ë¤³¤È¤Ë¤è¤ê) -¤³¤Î¥·¥°¥Ê¥ë¤ò°·¤¦¥¹¥ì¥Ã¥É¤¬²¿¤â¤Ê¤¤¾ì¹ç¤Ï¡¢ -¤³¤Î´Ø¿ô¤¬¥ê¥¿¡¼¥ó¤¹¤ëÁ°¤Ë¡¢¾¯¤Ê¤¯¤È¤â -¤½¤Î¥¹¥ì¥Ã¥É¤ËÂФ·¤Æ¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を使用するのを待っていることにより) +このシグナルを扱うスレッドが何もない場合は、 +この関数がリターンする前に、少なくとも +そのスレッドに対してシグナルが配送されていなければならない。 -Linux ¤Ç¤Ï¡¢¤³¤Î´Ø¿ô¤Ï +Linux では、この関数は .BR rt_sigqueueinfo (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -ξ¼Ô¤Ë¤Ï 3 ÈÖÌܤΰú¤­¿ô¤Ë°ã¤¤¤¬¤¢¤ê¡¢ +システムコールを使って実装されている。 +両者には 3 番目の引き数に違いがあり、 .BR rt_sigqueueinfo (2) -¤Ç¤Ï 3 ÈÖÌܤΰú¤­¿ô¤Ï +では 3 番目の引き数は .I siginfo_t -¹½Â¤ÂΤǤ¢¤ë¡£ +構造体である。 .I siginfo_t -¹½Â¤ÂΤϡ¢¥·¥°¥Ê¥ë¤ò¼õ¿®¤¹¤ë¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ËÅϤµ¤ì¤¿¤ê¡¢ -¥·¥°¥Ê¥ë¼õ¿®¥×¥í¥»¥¹¤Î +構造体は、シグナルを受信するプロセスのシグナルハンドラに渡されたり、 +シグナル受信プロセスの .BR sigtimedwait (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤«¤éÊÖ¤µ¤ì¤¿¤ê¤¹¤ë¡£ -glibc ¤Î +システムコールから返されたりする。 +glibc の .BR sigqueue () -¥é¥Ã¥Ñ¡¼´Ø¿ôÆâÉô¤Ç¤Ï¡¢ -¤³¤Î°ú¤­¿ô +ラッパー関数内部では、 +この引き数 .I uinfo -¤Ï°Ê²¼¤Î¤è¤¦¤Ë½é´ü²½¤µ¤ì¤ë¡£ +は以下のように初期化される。 .in +4n .nf @@ -161,7 +161,7 @@ uinfo.si_uid = getuid(); /* Real UID of sender */ uinfo.si_value = val; /* argument supplied to sigqueue() */ .fi .in -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR kill (2), .BR rt_sigqueueinfo (2), .BR sigaction (2), diff --git a/release/man3/sigset.3 b/release/man3/sigset.3 index 4bfe8cbd..c65a15a6 100644 --- a/release/man3/sigset.3 +++ b/release/man3/sigset.3 @@ -25,9 +25,9 @@ .\" Translated 2005-12-04, Akihiro MOTOKI .\" .TH SIGSET 3 2010-09-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sigset, sighold, sigrelse, sigignore \- System V ÈÇ¥·¥°¥Ê¥ë API -.SH ½ñ¼° +.SH 名前 +sigset, sighold, sigrelse, sigignore \- System V 版シグナル API +.SH 書式 .B #include .sp .B typedef void (*sighandler_t)(int); @@ -41,9 +41,9 @@ sigset, sighold, sigrelse, sigignore \- System V .BI "int sigignore(int " sig ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -57,216 +57,216 @@ _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .RE .ad -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ÀΤʤ¬¤é¤Î System V ÈÇ¥·¥°¥Ê¥ë API ¤ò»ÈÍѤ·¤Æ¤¤¤ë¥×¥í¥°¥é¥à -¤ËÂФ·¤Æ¸ß´¹À­¤Î¤¢¤ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò glibc ¤ÇÄ󶡤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î API ¤Ï²áµî¤Î¤â¤Î¤Ç¤¢¤ê¡¢¿·¤·¤¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï -POSIX ¥·¥°¥Ê¥ë API +.SH 説明 +これらの関数は、昔ながらの System V 版シグナル API を使用しているプログラム +に対して互換性のあるインタフェースを glibc で提供するものである。 +この API は過去のものであり、新しいアプリケーションでは +POSIX シグナル API .RB ( sigaction (2), .BR sigprocmask (2) -¤Ê¤É) ¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +など) を使用すべきである。 -´Ø¿ô +関数 .BR sigset () -¤Ï¥·¥°¥Ê¥ë +はシグナル .I sig -¤Î¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ÎÆ°ºî¤òÊѹ¹¤¹¤ë¡£ +のシグナルハンドラの動作を変更する。 .I disp -°ú¤­¿ô¤Ë¤Ï¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é´Ø¿ô¤Î¥¢¥É¥ì¥¹¤«¡¢ -°Ê²¼¤ÎÄê¿ô¤Î¤¤¤º¤ì¤«°ì¤Ä¤ò»ØÄê¤Ç¤­¤ë¡£ +引き数には、シグナルハンドラ関数のアドレスか、 +以下の定数のいずれか一つを指定できる。 .TP .B SIG_DFL .I sig -¤ÎÆ°ºî¤ò¥Ç¥Õ¥©¥ë¥È¤Ë¥ê¥»¥Ã¥È¤¹¤ë¡£ +の動作をデフォルトにリセットする。 .TP .B SIG_IGN .I sig -¤ò̵»ë¤¹¤ë¡£ +を無視する。 .TP .B SIG_HOLD -¤½¤Î¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ë +そのプロセスのシグナルマスクに .I sig -¤òÄɲ乤뤬¡¢ +を追加するが、 .I sig -¤ÎÆ°ºî¤ÏÊѹ¹¤·¤Ê¤¤¡£ +の動作は変更しない。 .PP .I disp -¤Ë¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Î¥¢¥É¥ì¥¹¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Î¼Â¹ÔÃæ¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ë +にシグナルハンドラのアドレスが指定された場合、 +シグナルハンドラの実行中は、そのプロセスのシグナルマスクに .I sig -¤¬Äɲ䵤ì¤ë¡£ +が追加される。 .PP .I disp -¤Ë +に .B SIG_HOLD -°Ê³°¤ÎÃͤ¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ -¤½¤Î¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤«¤é +以外の値が指定された場合、 +そのプロセスのシグナルマスクから .I sig -¤¬ºï½ü¤µ¤ì¤ë¡£ +が削除される。 .PP -¥·¥°¥Ê¥ë +シグナル .B SIGKILL -¤È +と .B SIGSTOP -¤ËÂФ¹¤ëÆ°ºî¤ÏÊѹ¹¤Ç¤­¤Ê¤¤¡£ +に対する動作は変更できない。 .PP -´Ø¿ô +関数 .BR sighold () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ë +は、呼び出し元プロセスのシグナルマスクに .I sig -¤òÄɲ乤롣 +を追加する。 -´Ø¿ô +関数 .BR sigrelse () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤«¤é +は、呼び出し元プロセスのシグナルマスクから .I sig -¤òºï½ü¤¹¤ë¡£ +を削除する。 -´Ø¿ô +関数 .BR sigignore () -¤Ï¡¢ +は、 .I sig -¤ÎÆ°ºî¤ò +の動作を .B SIG_IGN -¤ËÀßÄꤹ¤ë¡£ -.SH ÊÖ¤êÃÍ +に設定する。 +.SH 返り値 .BR sigset () -¤ÏÀ®¸ù¤¹¤ë¤È¡¢ -¸Æ¤Ó½Ð¤·Á°¤Ë +は成功すると、 +呼び出し前に .I sig -¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ë¤Ï +がブロックされていた場合には .B SIG_HOLD -¤òÊÖ¤·¡¢ -¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï -Êѹ¹Á°¤Î¤½¤Î¥·¥°¥Ê¥ë¤ÎÆ°ºî¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ +を返し、 +ブロックされていなかった場合には +変更前のそのシグナルの動作を返す。 +エラーの場合、 .BR sigset () -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ -⤷¡¢°Ê²¼¤Î¡Ö¥Ð¥°¡×¤ÎÀá¤â»²¾È¤Î¤³¤È¡£ +にエラーを示す値をセットする。 +但し、以下の「バグ」の節も参照のこと。 -´Ø¿ô +関数 .BR sighold (), .BR sigrelse (), .BR sigignore () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は成功すると 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ -.SH ¥¨¥é¡¼ +にエラーを示す値をセットする。 +.SH エラー .BR sigset () -¤Ë´Ø¤·¤Æ¤Ï¡¢ +に関しては、 .BR sigaction (2) -¤È +と .BR sigprocmask (2) -¤Î¡Ö¥¨¥é¡¼¡×¤ÎÀá¤ò»²¾È¡£ +の「エラー」の節を参照。 .BR sighold () -¤È +と .BR sigrelse () -¤Ë´Ø¤·¤Æ¤Ï¡¢ +に関しては、 .BR sigprocmask (2) -¤Î¡Ö¥¨¥é¡¼¡×¤ÎÀá¤ò»²¾È¡£ +の「エラー」の節を参照。 .BR sigignore () -¤Ë´Ø¤·¤Æ¤Ï¡¢ +に関しては、 .BR sigaction (2) -¤Î¡Ö¥¨¥é¡¼¡×¤ÎÀá¤ò»²¾È¡£ -.SH ½àµò +の「エラー」の節を参照。 +.SH 準拠 SVr4, POSIX.1-2001. -¤³¤ì¤é¤Î´Ø¿ô¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¡£¿·¤·¤¤¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ·¤Ê¤¤¤³¤È¡£ -POSIX.1-2008 ¤Ï¡¢ +これらの関数は廃止予定である。新しいプログラムでは使用しないこと。 +POSIX.1-2008 は、 .BR sighold (), .BR sigignore (), .BR sigpause (), .BR sigrelse (), .BR sigset () -¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£ -Âå¤ï¤ê¤Ë¡¢ +を廃止予定としている。 +代わりに、 .BR sigaction (2), .BR sigprocmask (2), .BR pthread_sigmask (3), .BR sigsuspend (2) -¤Î»ÈÍѤ¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc 2.1 ¤ÇÅо줷¤¿¡£ +の使用が推奨されている。 +.SH 注意 +これらの関数は glibc 2.1 で登場した。 .I sighandler_t -·¿¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ê¡¢¤³¤Î man page ¤Ç +型は GNU による拡張であり、この man page で .BR sigset () -¤Î¥×¥í¥È¥¿¥¤¥×¤ò¤è¤êÆɤߤ䤹¤¯¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤Æ¤¤¤ë¤À¤±¤Ç¤¢¤ë¡£ +のプロトタイプをより読みやすくするために使われているだけである。 -´Ø¿ô +関数 .BR sigset () -¤Ï¿®ÍêÀ­¤Î¤¢¤ë¥·¥°¥Ê¥ë½èÍýµ¡¹½¤òÄ󶡤¹¤ë +は信頼性のあるシグナル処理機構を提供する .RI ( sa_mask -¤ò 0 ¤Ç +を 0 で .BR sigaction (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¤È¤­¤ÈƱÍÍ)¡£ +を呼び出したときと同様)。 -System V ¤Ç¤Ï¡¢´Ø¿ô +System V では、関数 .BR signal () -¤¬Ä󶡤¹¤ë½èÍýµ¡¹½¤Ï¿®ÍêÀ­¤Î¤Ê¤¤¤â¤Î¤Ç¤¢¤ë +が提供する処理機構は信頼性のないものである .RI ( sa_mask -¤ò +を .IR "SA_RESETHAND | SA_NODEFER" -¤È¤·¤Æ +として .BR sigaction (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¤È¤­¤ÈƱÍÍ)¡£ -BSD ¤Ç¤Ï¡¢ +を呼び出したときと同様)。 +BSD では、 .BR signal () -¤Ï¿®ÍêÀ­¤Î¤¢¤ë½èÍýµ¡¹½¤òÄ󶡤¹¤ë¡£ -POSIX.1-2001 ¤Ç¤Ï¡¢ +は信頼性のある処理機構を提供する。 +POSIX.1-2001 では、 .BR signal () -¤Î¤³¤ÎÅÀ¤Ïµ¬Äꤷ¤Ê¤¤¤Þ¤Þ¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤µ¤é¤Ê¤ë¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï +のこの点は規定しないままとなっている。 +さらなる詳細については .BR signal (2) -¤ò»²¾È¡£ +を参照。 -BSD ¤È System V ¤Î¤É¤Á¤é¤Î¥·¥¹¥Æ¥à¤Ç¤â -¥·¥°¥Ê¥ë¤òÂԤĤ¿¤á¤Ë¡¢ +BSD と System V のどちらのシステムでも +シグナルを待つために、 .BR sigpause (3) -¤È¤¤¤¦Ì¾Á°¤Î´Ø¿ô¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -¤³¤Î´Ø¿ô¤Î°ú¤­¿ô¤ÏξÊý¤Î¥·¥¹¥Æ¥à¤Ç°Û¤Ê¤ë¡£ -¾ÜºÙ¤Ï +という名前の関数が提供されているが、 +この関数の引き数は両方のシステムで異なる。 +詳細は .BR sigpause (3) -¤ò»²¾È¡£ -.SH ¥Ð¥° -2.2 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î glibc ¤Ç¤Ï¡¢ +を参照。 +.SH バグ +2.2 より前のバージョンの glibc では、 .I disp -¤Ë +に .B SIG_HOLD -°Ê³°¤ÎÃͤ¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +以外の値が指定された場合、 .I sig -¤Î¥Ö¥í¥Ã¥¯²ò½ü¤ò¹Ô¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +のブロック解除を行っていなかった。 -2.3.5 °ÊÁ°¤ÎÁ´¤Æ¤Î¥Ð¡¼¥¸¥ç¥ó¤Î glibc ¤Ç¤Ï¡¢ +2.3.5 以前の全てのバージョンの glibc では、 .BR sigset () -¤¬Êѹ¹Á°¤Î¥·¥°¥Ê¥ë¤ÎÆ°ºî¤òÀµ¤·¤¯ÊÖ¤µ¤Ê¤¤¾ì¹ç¤¬ 2¤Ä¤¢¤ë¡£ -°ì¤Ä¤á¤Ï¡¢ +が変更前のシグナルの動作を正しく返さない場合が 2つある。 +一つめは、 .I disp -¤Ë +に .B SIG_HOLD -¤¬»ØÄꤵ¤ì¤ë¤È¡¢À®¸ù¤·¤¿¾ì¹ç +が指定されると、成功した場合 .BR sigset () -¤Ï¾ï¤Ë +は常に .B SIG_HOLD -¤òÊÖ¤¹¤³¤È¤Ç¤¢¤ë¡£ -Àµ¤·¤¯¤Ï¡¢(¥·¥°¥Ê¥ë¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï) -Êѹ¹Á°¤Î¥·¥°¥Ê¥ë¤ÎÆ°ºî¤òÊÖ¤¹¤Ù¤­¤Ç¤¢¤ë -(¥·¥°¥Ê¥ë¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ë¤Ï¡¢ +を返すことである。 +正しくは、(シグナルがブロックされていなかった場合には) +変更前のシグナルの動作を返すべきである +(シグナルがブロックされていた場合には、 .B SIG_HOLD -¤¬ÊÖ¤µ¤ì¤ë)¡£ -¤â¤¦°ì¤Ä¤Ï¡¢¥·¥°¥Ê¥ë¤¬¸½ºß¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -À®¸ù¤·¤¿¾ì¹ç¤Î +が返される)。 +もう一つは、シグナルが現在ブロックされている場合には、 +成功した場合の .BR sigset () -¤ÎÊÖ¤êÃÍ¤Ï +の返り値は .B SIG_HOLD -¤Ë¤Ê¤ë¤Ù¤­¤Ç¤¢¤ë¤¬¡¢¼ÂºÝ¤Ë¤Ï -Êѹ¹Á°¤Î¥·¥°¥Ê¥ë¤ÎÆ°ºî¤¬ÊÖ¤µ¤ì¤ë¤³¤È¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤ÎÌäÂê¤Ï glibc 2.5 °Ê¹ß¤Ç½¤Àµ¤µ¤ì¤Æ¤¤¤ë¡£ +になるべきであるが、実際には +変更前のシグナルの動作が返されることである。 +これらの問題は glibc 2.5 以降で修正されている。 .\" See http://sourceware.org/bugzilla/show_bug.cgi?id=1951 -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR kill (2), .BR pause (2), .BR sigaction (2), diff --git a/release/man3/sigsetops.3 b/release/man3/sigsetops.3 index f2118dbe..d6fd718b 100644 --- a/release/man3/sigsetops.3 +++ b/release/man3/sigsetops.3 @@ -26,7 +26,7 @@ .\" 2007-10-26 mdw added wording that a sigset_t must be initialized .\" prior to use .\" -.\"WORD: signal set ¥·¥°¥Ê¥ë½¸¹ç +.\"WORD: signal set シグナル集合 .\" .\" Japanese Version Copyright (c) 1998 HANATAKA Shinya .\" all rights reserved. @@ -35,10 +35,10 @@ .\" Updated 2008-02-09, Akihiro MOTOKI , LDP v2.77 .\" .TH SIGSETOPS 3 2008-09-01 "Linux" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 sigemptyset, sigfillset, sigaddset, sigdelset, sigismember \- POSIX -¥·¥°¥Ê¥ë½¸¹ç¤ÎÁàºî -.SH ½ñ¼° +シグナル集合の操作 +.SH 書式 .B #include .sp .BI "int sigemptyset(sigset_t *" set ); @@ -52,9 +52,9 @@ sigemptyset, sigfillset, sigaddset, sigdelset, sigismember \- POSIX .BI "int sigismember(const sigset_t *" set ", int " signum ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -67,112 +67,112 @@ glibc _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .RE .ad b -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï POSIX ¥·¥°¥Ê¥ë½¸¹ç(signal set)¤òÁàºî¤¹¤ë¤¿¤á»ÈÍѤ¹¤ë¡£ +.SH 説明 +これらの関数は POSIX シグナル集合(signal set)を操作するため使用する。 .PP .BR sigemptyset () -¤Ï +は .I set -¤ÇÍ¿¤¨¤é¤ì¤¿¥·¥°¥Ê¥ë½¸¹ç¤ò¶õ¤Ë½é´ü²½¤·¡¢¥·¥°¥Ê¥ë¤¬°ì¤Ä¤â -´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¾õÂ֤ˤ¹¤ë¡£ +で与えられたシグナル集合を空に初期化し、シグナルが一つも +含まれていない状態にする。 .PP .BR sigfillset () -¤Ï +は .I set -¤ÇÍ¿¤¨¤é¤ì¤¿¥·¥°¥Ê¥ë½¸¹ç¤¬Á´¤Æ¤Î¥·¥°¥Ê¥ë¤ò´Þ¤à¤è¤¦¤Ë¤¹¤ë¡£ +で与えられたシグナル集合が全てのシグナルを含むようにする。 .PP .BR sigaddset () -¤È +と .BR sigdelset () -¤Ï +は .I set -¤Ë +に .I signum -¥·¥°¥Ê¥ë¤ò¤½¤ì¤¾¤ì²Ã¤¨¤¿¤ê¡¢ºï½ü¤·¤¿¤ê¤¹¤ë¡£ +シグナルをそれぞれ加えたり、削除したりする。 .PP .BR sigismember () -¤Ï +は .I signum -¤¬ +が .I set -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò¥Æ¥¹¥È¤¹¤ë¡£ +に含まれているかどうかをテストする。 .PP .I sigset_t -·¿¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢´Ø¿ô +型のオブジェクトは、関数 .BR sigaddset (), .BR sigdelset (), .BR sigismember () -¤ä¸å½Ò¤Î glibc ¤ÎÄɲôؿô +や後述の glibc の追加関数 .RB ( sigisemptyset (), .BR sigandset (), .BR sigorset ()) -¤ËÅϤ¹Á°¤Ë¡¢ +に渡す前に、 .BR sigemptyset () -¤« +か .BR sigfillset () -¤ò¸Æ¤Ó½Ð¤·¤Æ½é´ü²½¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -½é´ü²½¤·¤Ê¤«¤Ã¤¿¾ì¹ç¤Î·ë²Ì¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +を呼び出して初期化しなければならない。 +初期化しなかった場合の結果は未定義である。 +.SH 返り値 .BR sigemptyset (), .BR sigfillset (), .BR sigaddset (), .BR sigdelset () -¤ÏÀ®¸ù¤¹¤ì¤Ð 0 ¤ò¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ +は成功すれば 0 を、エラーの場合は \-1 を返す。 .PP .BR sigismember () -¤Ï +は .I signum -¤¬ +が .I set -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ì¤Ð 1 ¤òÊÖ¤·¡¢´Þ¤Þ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +に含まれていれば 1 を返し、含まれていなければ 0 を返す。 +エラーの場合は \-1 を返す。 +.SH エラー .TP .B EINVAL .I sig -¤¬Í­¸ú¤Ê¥·¥°¥Ê¥ë¤Ç¤Ï¤Ê¤¤¡£ -.SH ½àµò +が有効なシグナルではない。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ -.SS glibc ¤Ç¤ÎÃí°Õ +.SH 注意 +.SS glibc での注意 .B _GNU_SOURCE -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤È¡¢ -\fI\fP ¤Ç¥·¥°¥Ê¥ë½¸¹ç¤òÁàºî¤¹¤ë 3¤Ä¤Î´Ø¿ô¤¬ÄɲäǸø³«¤µ¤ì¤ë¡£ +機能検査マクロが定義されていると、 +\fI\fP でシグナル集合を操作する 3つの関数が追加で公開される。 .TP .BI "int sigisemptyset(sigset_t *" set ); .I set -¤Ë¥·¥°¥Ê¥ë¤¬°ì¤Ä¤â´Þ¤Þ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð 1 ¤òÊÖ¤·¡¢ -¤½¤ì°Ê³°¤Ï 0 ¤òÊÖ¤¹¡£ +にシグナルが一つも含まれていなければ 1 を返し、 +それ以外は 0 を返す。 .TP .BI "int sigorset(sigset_t *" dest ", sigset_t *" left \ ", sigset_t *" right ); -¥·¥°¥Ê¥ë½¸¹ç +シグナル集合 .I left -¤È +と .I left -¤ÎϽ¸¹ç¤ò +の和集合を .I dest -¤Ë½ñ¤­¹þ¤à¡£ +に書き込む。 .TP .BI "int sigandset(sigset_t *" dest ", sigset_t *" left \ ", sigset_t *" right ); -¥·¥°¥Ê¥ë½¸¹ç +シグナル集合 .I left -¤È +と .I left -¤ÎÀѽ¸¹ç¤ò +の積集合を .I dest -¤Ë½ñ¤­¹þ¤à¡£ +に書き込む。 .PP .BR sigorset () -¤È +と .BR sigandset () -¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤ò¡¢¼ºÇÔ¤¹¤ë¤È \-1 ¤òÊÖ¤¹¡£ +は成功すると 0 を、失敗すると \-1 を返す。 .PP -¤³¤ì¤é¤Î´Ø¿ô¤ÏÈóɸ½à¤Ç¤¢¤ê¡¢(¾¤Ë¤âƱÍͤδؿô¤òÄ󶡤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤â -¤¤¤¯¤Ä¤«¤Ï¤¢¤ë¤¬) °Ü¿¢À­¤ò¹Íθ¤·¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï»ÈÍѤòÈò¤±¤ë¤Ù¤­ -¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +これらの関数は非標準であり、(他にも同様の関数を提供しているシステムも +いくつかはあるが) 移植性を考慮したアプリケーションでは使用を避けるべき +である。 +.SH 関連項目 .BR sigaction (2), .BR sigpending (2), .BR sigprocmask (2), diff --git a/release/man3/sigvec.3 b/release/man3/sigvec.3 index caa5d339..6bdf108f 100644 --- a/release/man3/sigvec.3 +++ b/release/man3/sigvec.3 @@ -25,9 +25,9 @@ .\" Translated 2005-12-04, Akihiro MOTOKI .\" .TH SIGVEC 3 2007-07-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sigvec, sigblock, sigsetmask, siggetmask, sigmask \- BSD ÈÇ¥·¥°¥Ê¥ë API -.SH ½ñ¼° +.SH 名前 +sigvec, sigblock, sigsetmask, siggetmask, sigmask \- BSD 版シグナル API +.SH 書式 .B #include .sp .BI "int sigvec(int " sig ", struct sigvec *" vec ", struct sigvec *" ovec ); @@ -41,55 +41,55 @@ sigvec, sigblock, sigsetmask, siggetmask, sigmask \- BSD .B int siggetmask(void); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp -¾åµ­¤ÎÁ´¤Æ¤Î´Ø¿ô: +上記の全ての関数: _BSD_SOURCE -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ÀΤʤ¬¤é¤Î BSD ÈÇ¥·¥°¥Ê¥ë API ¤ò»ÈÍѤ·¤Æ¤¤¤ë¥×¥í¥°¥é¥à -¤ËÂФ·¤Æ¸ß´¹À­¤Î¤¢¤ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò glibc ¤ÇÄ󶡤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î API ¤Ï²áµî¤Î¤â¤Î¤Ç¤¢¤ê¡¢¿·¤·¤¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï -POSIX ¥·¥°¥Ê¥ë API +.SH 説明 +これらの関数は、昔ながらの BSD 版シグナル API を使用しているプログラム +に対して互換性のあるインタフェースを glibc で提供するものである。 +この API は過去のものであり、新しいアプリケーションでは +POSIX シグナル API .RB ( sigaction (2), .BR sigprocmask (2) -¤Ê¤É) ¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +など) を使用すべきである。 -´Ø¿ô +関数 .BR sigvec () -¤Ï¡¢(POSIX ¤Î +は、(POSIX の .BR sigaction (2) -¤ÈƱÍͤË) ¥·¥°¥Ê¥ë +と同様に) シグナル .I sig -¤ÎÆ°ºî¤ÎÀßÄꡦ¼èÆÀ¤ò¹Ô¤¦¡£ +の動作の設定・取得を行う。 .I vec -¤Ï¡¢NULL °Ê³°¤Î¾ì¹ç¡¢ +は、NULL 以外の場合、 .I sig -¤Î¿·¤·¤¤Æ°ºî¤òÄêµÁ¤·¤¿ +の新しい動作を定義した .I sigvec -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ +構造体へのポインタである。 .I ovec -¤Ï¡¢NULL °Ê³°¤Î¾ì¹ç¡¢ +は、NULL 以外の場合、 .I sig -¤ÎÊѹ¹Á°¤ÎÆ°ºî¤òÊÖ¤¹¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë +の変更前の動作を返すために使用される .I sigvec -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ +構造体へのポインタである。 .I sig -¤ÎÆ°ºî¤òÊѹ¹¤»¤º¤Ë¸½ºß¤ÎÆ°ºî¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ +の動作を変更せずに現在の動作を取得するためには、 .I vec -¤Ë NULL ¤ò»ØÄꤷ¡¢ +に NULL を指定し、 .I ovec -¤Ë NULL ¤Ç¤Ê¤¤¥Ý¥¤¥ó¥¿¤ò»ØÄꤹ¤ì¤Ð¤è¤¤¡£ +に NULL でないポインタを指定すればよい。 .B SIGKILL -¤È +と .B SIGSTOP -¤ÎÆ°ºî¤ÏÊѹ¹¤Ç¤­¤Ê¤¤¡£ +の動作は変更できない。 .I sigvec -¹½Â¤ÂΤϰʲ¼¤ÎÄ̤ê¤Ç¤¢¤ë: +構造体は以下の通りである: .in +4n .nf @@ -102,69 +102,69 @@ struct sigvec { .fi .in .I sv_handler -¥Õ¥£¡¼¥ë¥É¤Ï¥·¥°¥Ê¥ë¤ÎÆ°ºî¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é´Ø¿ô¤Î¥¢¥É¥ì¥¹¤«¡¢ +フィールドはシグナルの動作を指定するもので、 +シグナルハンドラ関数のアドレスか、 .B SIG_DFL -¤È +と .B SIG_IGN -¤Î¤¤¤º¤ì¤«¤ò»ØÄê¤Ç¤­¤ë¡£ +のいずれかを指定できる。 .B SIG_DFL -¤Ï¥·¥°¥Ê¥ë¤ËŬÍѤµ¤ì¤ë¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤ò°ÕÌ£¤·¡¢ +はシグナルに適用されるデフォルトの動作を意味し、 .B SIG_IGN -¤Ï¥·¥°¥Ê¥ë¤ò̵»ë¤¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +はシグナルを無視することを意味する。 .I sv_handler -¤Ë¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Î¥¢¥É¥ì¥¹¤ò»ØÄꤷ¤¿¾ì¹ç¡¢ +にシグナルハンドラのアドレスを指定した場合、 .I sv_mask -¤Ï¥Ï¥ó¥É¥é¤¬¼Â¹ÔÃæ¤Ë¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¤Ù¤­¥·¥°¥Ê¥ë¤Î¥Þ¥¹¥¯¤ò»ØÄꤹ¤ë¡£ -¤Þ¤¿¡¢¥Ï¥ó¥É¥é¤òµ¯Æ°¤·¤¿¥·¥°¥Ê¥ë¼«¿È¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¡£ +はハンドラが実行中にブロックされるべきシグナルのマスクを指定する。 +また、ハンドラを起動したシグナル自身はデフォルトでブロックされる。 .B SIGKILL -¤« +か .B SIGSTOP -¤ò¥Ö¥í¥Ã¥¯¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ÌۤäÆ̵»ë¤µ¤ì¤ë¡£ +をブロックしようとした場合には、黙って無視される。 .I sv_handler -¤Ë¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Î¥¢¥É¥ì¥¹¤ò»ØÄꤷ¤¿¾ì¹ç¡¢ +にシグナルハンドラのアドレスを指定した場合、 .I sv_flags -¥Õ¥£¡¼¥ë¥É¤Ï¥Ï¥ó¥É¥é¤¬¸Æ¤Ð¤ì¤¿ºÝ¤ÎµóÆ°¤òÀ©¸æ¤¹¤ë¥Õ¥é¥°¤ò»ØÄꤹ¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¡¢0 ¤«¡¢°Ê²¼¤Î¥Õ¥é¥°¤ò 1¸Ä°Ê¾å»ØÄê¤Ç¤­¤ë: +フィールドはハンドラが呼ばれた際の挙動を制御するフラグを指定する。 +このフィールドには、0 か、以下のフラグを 1個以上指定できる: .TP .B SV_INTERRUPT -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬Ää»ßÃæ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÃæÃǤ·¤¿¾ì¹ç¡¢ -¥Ï¥ó¥É¥é¤«¤éÉüµ¢¤·¤Æ¤â¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏºÆ³«¤µ¤ì¤º¡¢ -¥¨¥é¡¼ +シグナルハンドラが停止中のシステムコールを中断した場合、 +ハンドラから復帰しても、システムコールは再開されず、 +エラー .B EINTR -¤Ç¼ºÇÔ¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï -¥Ç¥Õ¥©¥ë¥È¤ÇºÆ³«¤µ¤ì¤ë¡£ +で失敗する。 +このフラグを指定しなかった場合、システムコールは +デフォルトで再開される。 .TP .B SV_RESETHAND -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¥·¥°¥Ê¥ë¤ÎÆ°ºî¤ò -¥Ç¥Õ¥©¥ë¥È¤Ë¥ê¥»¥Ã¥È¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¤â¤¦°ìÅÙ +シグナルハンドラを呼び出す前にシグナルの動作を +デフォルトにリセットする。 +このフラグを指定しなかった場合、もう一度 .BR sigvec () -¤ò¸Æ¤Ó½Ð¤·¤ÆÌÀ¼¨Åª¤Ëºï½ü¤µ¤ì¤ë¤«¡¢¥×¥í¥»¥¹¤¬ +を呼び出して明示的に削除されるか、プロセスが .BR execve (2) -¤ò¼Â¹Ô¤¹¤ë¤Þ¤Ç¡¢¥Ï¥ó¥É¥é¤ÏÀßÄꤵ¤ì¤¿¤Þ¤Þ¤È¤Ê¤ë¡£ +を実行するまで、ハンドラは設定されたままとなる。 .TP .B SV_ONSTACK -ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¾å¤Ç¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò¼Â¹Ô¤¹¤ë -(Îò»ËŪ¤Ë¡¢BSD ¤Ç¤ÏÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ÏÇѻߤµ¤ì¤¿´Ø¿ô +代替シグナルスタック上でシグナルハンドラを実行する +(歴史的に、BSD では代替シグナルスタックは廃止された関数 .BR sigstack () -¤ò»È¤Ã¤ÆÀßÄꤹ¤ë¡£POSIX ¤Ç¤Ï¡¢Âå¤ï¤ê¤Ë +を使って設定する。POSIX では、代わりに .BR sigaltstack (2) -¤ò»ÈÍѤ¹¤ë)¡£ +を使用する)。 .PP -´Ø¿ô +関数 .BR sigmask () -¤Ï +は .I signum -¤ËÂФ¹¤ë¡Ö¥·¥°¥Ê¥ë¥Þ¥¹¥¯¡×¤ò¹½À®¤·¤ÆÊÖ¤¹¡£ -Î㤨¤Ð¡¢°Ê²¼¤Î¤è¤¦¤Ê¥³¡¼¥É¤ò»È¤¦¤È¡¢ +に対する「シグナルマスク」を構成して返す。 +例えば、以下のようなコードを使うと、 .BR sigvec () -¤ËÅϤ¹ +に渡す .I vec.sv_mask -¤ò½é´ü²½¤Ç¤­¤ë¡£ +を初期化できる。 .nf vec.sv_mask = sigmask(SIGQUIT) | sigpause(SIGABRT); @@ -173,78 +173,78 @@ struct sigvec { .fi .PP .BR sigblock () -´Ø¿ô¤Ï¡¢ +関数は、 .I mask -¤Ë¤¢¤ë¥·¥°¥Ê¥ë¤ò¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ËÄɲä· -(POSIX ¤Î +にあるシグナルをプロセスのシグナルマスクに追加し +(POSIX の .I sigprocmask(SIG_BLOCK) -¤ÈƱÍÍ)¡¢Êѹ¹Á°¤Î¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊÖ¤¹¡£ +と同様)、変更前のプロセスのシグナルマスクを返す。 .B SIGKILL -¤ä +や .B SIGSTOP -¤ò¥Ö¥í¥Ã¥¯¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ÌۤäÆ̵»ë¤µ¤ì¤ë¡£ +をブロックしようとした場合には、黙って無視される。 .PP .BR sigsetmask () -´Ø¿ô¤Ï¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ò +関数はプロセスのシグナルマスクを .I mask -¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤷ (POSIX ¤Î +で指定された値に設定し (POSIX の .I sigprocmask(SIG_SETMASK) -¤ÈƱÍÍ)¡¢Êѹ¹Á°¤Î¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊÖ¤¹¡£ +と同様)、変更前のプロセスのシグナルマスクを返す。 .PP .BR siggetmask () -´Ø¿ô¤Ï¥×¥í¥»¥¹¤Î¸½ºß¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊÖ¤¹¡£¤³¤Î´Ø¿ô¤Ï +関数はプロセスの現在のシグナルマスクを返す。この関数は .I sigblock(0) -¤ÈÅù²Á¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +と等価である。 +.SH 返り値 .BR sigvec () -´Ø¿ô¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +関数は成功すると 0 を返す。エラーの場合、\-1 を返し、 .I errno -¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ +にエラーを示す値をセットする。 .BR sigblock () -¤È +と .BR sigsetmask () -¤ÏÊѹ¹Á°¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊÖ¤¹¡£ +は変更前のシグナルマスクを返す。 .BR sigmask () -´Ø¿ô¤Ï +関数は .I signum -¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +のシグナルマスクを返す。 +.SH エラー .BR sigaction (2) -¤È +と .BR sigprocmask (2) -¤Î¡Ö¥¨¥é¡¼¡×¤ÎÀá¤ò»²¾È¡£ -.SH ½àµò -¤³¤ì¤é¤Î´Ø¿ô¤Î¤¦¤Á +の「エラー」の節を参照。 +.SH 準拠 +これらの関数のうち .BR siggetmask () -°Ê³°¤ÎÁ´¤Æ¤Ï 4.3BSD ¤Ë¤¢¤Ã¤¿¡£ +以外の全ては 4.3BSD にあった。 .BR siggetmask () -¤Î½Ð¼«¤Ï¤Ï¤Ã¤­¤ê¤·¤Ê¤¤¡£ -¤³¤ì¤é¤Î´Ø¿ô¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ê¡¢¿·¤·¤¤¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ·¤Ê¤¤¤³¤È¡£ -.SH Ãí°Õ -4.3BSD ¤Ç¤Ï¡¢¿®ÍêÀ­¤Î¤¢¤ë¥·¥°¥Ê¥ë½èÍýµ¡¹½¤òÄ󶡤¹¤ë +の出自ははっきりしない。 +これらの関数は廃止予定であり、新しいプログラムでは使用しないこと。 +.SH 注意 +4.3BSD では、信頼性のあるシグナル処理機構を提供する .RI ( vec.sv_mask -¤ò 0 ¤Ç +を 0 で .BR sigvec () -¤ò¸Æ¤Ó½Ð¤·¤¿¤È¤­¤ÈƱÍÍ)¡£ -System V ¤¬Ä󶡤¹¤ë½èÍýµ¡¹½¤Ï¿®ÍêÀ­¤Î¤Ê¤¤¤â¤Î¤Ç¤¢¤ë¡£ -POSIX.1-2001 ¤Ç¤Ï¡¢ +を呼び出したときと同様)。 +System V が提供する処理機構は信頼性のないものである。 +POSIX.1-2001 では、 .BR signal () -¤Î¤³¤ÎÅÀ¤Ïµ¬Äꤷ¤Ê¤¤¤Þ¤Þ¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤µ¤é¤Ê¤ë¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï +のこの点は規定しないままとなっている。 +さらなる詳細については .BR signal (2) -¤ò»²¾È¡£ +を参照。 -BSD ¤È System V ¤Î¤É¤Á¤é¤Î¥·¥¹¥Æ¥à¤Ç¤â -¥·¥°¥Ê¥ë¤òÂԤĤ¿¤á¤Ë¡¢ +BSD と System V のどちらのシステムでも +シグナルを待つために、 .BR sigpause (3) -¤È¤¤¤¦Ì¾Á°¤Î´Ø¿ô¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -¤³¤Î´Ø¿ô¤Î°ú¤­¿ô¤ÏξÊý¤Î¥·¥¹¥Æ¥à¤Ç°Û¤Ê¤ë¡£ -¾ÜºÙ¤Ï +という名前の関数が提供されているが、 +この関数の引き数は両方のシステムで異なる。 +詳細は .BR sigpause (3) -¤ò»²¾È¡£ -.SH ´ØÏ¢¹àÌÜ +を参照。 +.SH 関連項目 .BR kill (2), .BR pause (2), .BR sigaction (2), diff --git a/release/man3/sigwait.3 b/release/man3/sigwait.3 index 52c20d48..544203b5 100644 --- a/release/man3/sigwait.3 +++ b/release/man3/sigwait.3 @@ -26,9 +26,9 @@ .\" Translated 2008-08-21, Akihiro MOTOKI , LDP v3.04 .\" .TH SIGWAIT 3 2010-09-10 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sigwait \- ¥·¥°¥Ê¥ë¤òÂÔ¤Ä -.SH ½ñ¼° +.SH 名前 +sigwait \- シグナルを待つ +.SH 書式 .nf .B #include @@ -36,61 +36,61 @@ sigwait \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l .BR sigwait (): _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .ad b -.SH ÀâÌÀ +.SH 説明 .BR sigwait () -´Ø¿ô¤Ï¡¢¥·¥°¥Ê¥ë½¸¹ç +関数は、シグナル集合 .I set -¤Ç»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë¤Î°ì¤Ä¤¬ÇÛÁ÷¤µ¤ì¤ë¤Þ¤Ç¡¢ -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Î¼Â¹Ô¤òÃæÃǤ¹¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¤½¤Î¥·¥°¥Ê¥ë¤ò¼õ¤±¼è¤ê (¤Ä¤Þ¤ê¡¢½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë¤Î¥ê¥¹¥È -¤«¤é¤½¤Î¥·¥°¥Ê¥ë¤òºï½ü¤·)¡¢¤½¤Î¥·¥°¥Ê¥ëÈÖ¹æ¤ò +で指定されたシグナルの一つが配送されるまで、 +呼び出したスレッドの実行を中断する。 +この関数はそのシグナルを受け取り (つまり、処理待ちのシグナルのリスト +からそのシグナルを削除し)、そのシグナル番号を .I sig -¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£ +に格納して返す。 .BR sigwait () -¤ÎÆ°ºî¤Ï +の動作は .BR sigwaitinfo (2) -¤ÈƱ¤¸¤À¤¬¡¢°Ê²¼¤ÎÅÀ¤¬°Û¤Ê¤ë¡£ +と同じだが、以下の点が異なる。 .IP * 2 .BR sigwait () -¤Ï¡¢¥·¥°¥Ê¥ë¤ÎÆâÍƤòɽ¤¹ +は、シグナルの内容を表す .I siginfo_t -¹½Â¤ÂΤòÊÖ¤¹¤Î¤Ç¤Ï¤Ê¤¯¡¢Ã±¤Ë¥·¥°¥Ê¥ëÈÖ¹æ¤òÊÖ¤¹¡£ +構造体を返すのではなく、単にシグナル番号を返す。 .IP * -ÊÖ¤êÃͤ¬ +返り値が .BR sigwaitinfo (2) -¤È¤Ï°Û¤Ê¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢ +とは異なる。 +.SH 返り値 +成功すると、 .BR sigwait () -¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢(¡Ö¥¨¥é¡¼¡×¤ÎÀá¤Î¥ê¥¹¥È¤Ë¤¢¤ë) Àµ¤Î¥¨¥é¡¼ÈÖ¹æ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +は 0 を返す。 +エラーの場合、(「エラー」の節のリストにある) 正のエラー番号を返す。 +.SH エラー .TP .B EINVAL .\" Does not occur for glibc. .I set -¤Ë̵¸ú¤Ê¥·¥°¥Ê¥ëÈֹ椬Æþ¤Ã¤Æ¤¤¤ë¡£ -.SH ½àµò +に無効なシグナル番号が入っている。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .BR sigwait () -¤Ï +は .BR sigtimedwait (2) -¤ò»È¤Ã¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Îã +を使って実装されている。 +.SH 例 .BR pthread_sigmask (3) -¤ò»²¾È¡£ -.SH ´ØÏ¢¹àÌÜ +を参照。 +.SH 関連項目 .BR sigaction (2), .BR signalfd (2), .BR sigpending (2), diff --git a/release/man3/sin.3 b/release/man3/sin.3 index d9b2239b..43f318bc 100644 --- a/release/man3/sin.3 +++ b/release/man3/sin.3 @@ -40,9 +40,9 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH SIN 3 2010-09-11 "" "Linux Programmer's Manual" -.SH ̾Á° -sin, sinf, sinl \- Àµ¸¹ (¥µ¥¤¥ó) ´Ø¿ô -.SH ½ñ¼° +.SH 名前 +sin, sinf, sinl \- 正弦 (サイン) 関数 +.SH 書式 .nf .B #include .sp @@ -53,12 +53,12 @@ sin, sinf, sinl \- .BI "long double sinl(long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -72,53 +72,53 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR sin () -´Ø¿ô¤Ï \fIx\fP ¤ÎÀµ¸¹ (¥µ¥¤¥ó) ¤ÎÃͤòÊÖ¤¹¡£ -\fIx\fP ¤Ï¥é¥¸¥¢¥óñ°Ì¤Ç»ØÄꤹ¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +関数は \fIx\fP の正弦 (サイン) の値を返す。 +\fIx\fP はラジアン単位で指定する。 +.SH 返り値 +成功すると、これらの関数は .I x -¤ÎÀµ¸¹¤òÊÖ¤¹¡£ +の正弦を返す。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬Àµ¤Î̵¸ÂÂ礫Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大か負の無限大の場合、 +領域エラー (domain error) が発生し、NaN が返される。 .\" .\" POSIX.1 allows an optional range error for subnormal x .\" glibc 2.8 doesn't do this -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬Ìµ¸ÂÂç +領域エラー (domain error): \fIx\fP が無限大 .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë (¡Ö¥Ð¥°¡×¤ÎÀá¤â»²¾È)¡£ -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される (「バグ」の節も参照)。 +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP -.SH ½àµò +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ¥Ð¥° +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 +.SH バグ .\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=6781 -¥Ð¡¼¥¸¥ç¥ó 2.10 ¤è¤êÁ°¤Î glibc ¤Î¼ÂÁõ¤Ç¤Ï¡¢ -Îΰ襨¥é¡¼¤¬È¯À¸¤·¤¿ºÝ¤Ë¡¢ +バージョン 2.10 より前の glibc の実装では、 +領域エラーが発生した際に、 .I error -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤Ê¤«¤Ã¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +が設定されなかった。 +.SH 関連項目 .BR acos (3), .BR asin (3), .BR atan (3), diff --git a/release/man3/sincos.3 b/release/man3/sincos.3 index 8d1e2e9b..1a3ff953 100644 --- a/release/man3/sincos.3 +++ b/release/man3/sincos.3 @@ -10,11 +10,11 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH SINCOS 3 2008-08-11 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -sincos, sincosf, sincosl \- Àµ¸¹¤È;¸¹¤òƱ»þ¤Ë·×»»¤¹¤ë -.SH ½ñ¼° +.SH 名前 +sincos, sincosf, sincosl \- 正弦と余弦を同時に計算する +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "void sincos(double " x ", double *" sin ", double *" cos ); @@ -24,61 +24,61 @@ sincos, sincosf, sincosl \- .BI "void sincosl(long double " x ", long double *" sin ", long double *" cos ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -.SH ÀâÌÀ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÃæ¤Ë¤Ï¡¢Æ±¤¸³ÑÅÙ +\fI\-lm\fP でリンクする。 +.SH 説明 +アプリケーションの中には、同じ角度 .I x -¤Ë¤Ä¤¤¤ÆÀµ¸¹¤È;¸¹¤ÎξÊý¤Î·×»»¤¬É¬Íפʤâ¤Î¤¬¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ïξ¼Ô¤òƱ»þ¤Ë·×»»¤·¡¢¤½¤Î·ë²Ì¤ò +について正弦と余弦の両方の計算が必要なものがある。 +この関数は両者を同時に計算し、その結果を .I *sin -¤È +と .I *cos -¤Ë³ÊǼ¤¹¤ë¡£ +に格納する。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢ +が NaN の場合、 .I *sin -¤È +と .I *cos -¤Ë NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +に NaN が返される。 .I x -¤¬Àµ¤Î̵¸ÂÂ礫Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ +が正の無限大か負の無限大の場合、 +領域エラー (domain error) が発生し、 .I *sin -¤È +と .I *cos -¤Ë NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤Ï +に NaN が返される。 +.SH 返り値 +これらの関数は .I void -¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +を返す。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -Îΰ襨¥é¡¼ (domain error): \fIx\fp ¤¬Ìµ¸ÂÂç +領域エラー (domain error): \fIx\fp が無限大 .\" .I errno .\" is set to .\" .BR EDOM . -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .I errno -¤òÀßÄꤷ¤Ê¤¤¡£ +を設定しない。 .\" FIXME . Is it intentional that these functions do not set errno? .\" sin() and cos() also don't set errno; bugs have been raised for .\" those functions. -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò -¤³¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 +この関数は GNU による拡張である。 +.SH 関連項目 .BR cos (3), .BR sin (3), .BR tan (3) diff --git a/release/man3/sinh.3 b/release/man3/sinh.3 index 943910d1..38b007a6 100644 --- a/release/man3/sinh.3 +++ b/release/man3/sinh.3 @@ -40,9 +40,9 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH SINH 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -sinh, sinhf, sinhl \- ÁжÊÀþÀµ¸¹ (¥Ï¥¤¥Ñ¥Ü¥ê¥Ã¥¯¥µ¥¤¥ó) ´Ø¿ô -.SH ½ñ¼° +.SH 名前 +sinh, sinhf, sinhl \- 双曲線正弦 (ハイパボリックサイン) 関数 +.SH 書式 .nf .B #include .sp @@ -53,12 +53,12 @@ sinh, sinhf, sinhl \- .BI "long double sinhl(long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -72,61 +72,61 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR sinh () -´Ø¿ô¤ÏÁжÊÀþÀµ¸¹ (¥Ï¥¤¥Ñ¥Ü¥ê¥Ã¥¯¥µ¥¤¥ó) ´Ø¿ô¤ÎÃͤòÊÖ¤¹¡£ -¿ô³ØŪ¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +関数は双曲線正弦 (ハイパボリックサイン) 関数の値を返す。 +数学的には以下のように定義されている。 .nf sinh(x) = (exp(x) \- exp(\-x)) / 2 .fi -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +.SH 返り値 +成功すると、これらの関数は .I x -¤ÎÁжÊÀþÀµ¸¹¤òÊÖ¤¹¡£ +の双曲線正弦を返す。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬ +0 (\-0) ¤Î¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 (\-0) の場合、+0 (\-0) が返される。 .I x -¤¬Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤Î¾ì¹ç¡¢Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大 (負の無限大) の場合、正の無限大 (負の無限大) が返される。 -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ -ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +結果がオーバーフローする場合、 +範囲エラー (range error) が発生し、 +各関数はそれぞれ .BR HUGE_VAL , .BR HUGE_VALF , .BR HUGE_VALL -¤òÊÖ¤¹¡£Éä¹æ¤Ï +を返す。符号は .I x -¤ÈƱ¤¸¤Ë¤Ê¤ë¡£ +と同じになる。 .\" .\" POSIX.1-2001 documents an optional range error (underflow) .\" for subnormal x; .\" glibc 2.8 does not do this. -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -ÈÏ°Ï¥¨¥é¡¼ (range error): ·ë²Ì¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ +範囲エラー (range error): 結果のオーバーフロー .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ -.SH ½àµò +が上がる。 +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 +.SH 関連項目 .BR acosh (3), .BR asinh (3), .BR atanh (3), diff --git a/release/man3/sleep.3 b/release/man3/sleep.3 index b052de15..524d9e6e 100644 --- a/release/man3/sleep.3 +++ b/release/man3/sleep.3 @@ -27,44 +27,44 @@ .\" Translated Tue Jan 21 20:46:24 JST 1997 .\" by YOSHINO Takashi .\" -.\" WORD: signal handler ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¡¼ +.\" WORD: signal handler シグナルハンドラー .\" .TH SLEEP 3 2010-02-03 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -sleep \- »ØÄê¤ÎÉÿô¤Î´Ö¤À¤±µÙ»ß¤¹¤ë -.SH ½ñ¼° +.SH 名前 +sleep \- 指定の秒数の間だけ休止する +.SH 書式 .nf .B #include .sp .BI "unsigned int sleep(unsigned int " "seconds" ); .fi -.SH ÀâÌÀ +.SH 説明 .BR sleep () -¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤ò +は、呼び出したスレッドを .I seconds -Éô֤ޤ¿¤Ï̵»ë¤µ¤ì¤Ê¤¤¥·¥°¥Ê¥ë¤¬ÅþÃ夹¤ë¤Þ¤ÇµÙ»ß¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -Í׵ᤵ¤ì¤¿»þ´Ö¤¬²á¤®¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ -¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¡¼¤Ë³ä¤ê¹þ¤Þ¤ì¤¿¾ì¹ç¤Ï¡¢ -µÙ»ß¤Î»Ä¤ê»þ´Ö¤òÊÖ¤¹¡£ -.SH ½àµò +秒間または無視されないシグナルが到着するまで休止する。 +.SH 返り値 +要求された時間が過ぎた場合はゼロを返す。 +呼び出しがシグナルハンドラーに割り込まれた場合は、 +休止の残り時間を返す。 +.SH 準拠 POSIX.1-2001. -.SH ¥Ð¥° +.SH バグ .BR sleep () -¤Ï +は .B SIGALRM -¤òÍѤ¤¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£¤½¤Î¤¿¤á¡¢ +を用いて実装されている。そのため、 .BR alarm (2) -¤È +と .BR sleep () -¤òº®¤¼¤Æ»ÈÍѤ¹¤ë¤Î¤Ï¡¢¤Þ¤º¤¤¹Í¤¨¤Ç¤¢¤ë¡£ +を混ぜて使用するのは、まずい考えである。 .PP -µÙ»ßÃæ¤Ë¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¡¼¤«¤é +休止中にシグナルハンドラーから .BR longjmp (3) -¤ò»ÈÍѤ¹¤ë¤³¤È¤ä +を使用することや .B SIGALRM -¤Î¥Ï¥ó¥É¥ê¥ó¥°¤òÊѹ¹¤¹¤ë¤³¤È¤Ï¡¢ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤·ë²Ì¤òÀ¸¤à¡£ -.SH ´ØÏ¢¹àÌÜ +のハンドリングを変更することは、定義されていない結果を生む。 +.SH 関連項目 .BR alarm (2), .BR nanosleep (2), .BR signal (2), diff --git a/release/man3/sockatmark.3 b/release/man3/sockatmark.3 index bdecc14c..aacd26f6 100644 --- a/release/man3/sockatmark.3 +++ b/release/man3/sockatmark.3 @@ -25,83 +25,83 @@ .\" Translated 2006-08-01 by Yuichi SATO , LDP v2.36 .\" .TH SOCKATMARK 3 2008-12-03 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sockatmark \- ¤É¤Î¥½¥±¥Ã¥È¤ËÂÓ°è³° (out-of-band) ¥Þ¡¼¥¯¤¬ÉÕ¤±¤é¤ì¤Æ¤¤¤ë¤«¤òÄ´¤Ù¤ë -.SH ½ñ¼° +.SH 名前 +sockatmark \- どのソケットに帯域外 (out-of-band) マークが付けられているかを調べる +.SH 書式 .B #include .sp .BI "int sockatmark(int " sockfd ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l .BR sockatmark (): _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600 .ad b -.SH ÀâÌÀ +.SH 説明 .BR sockatmark () -¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +はファイルディスクリプタ .I sockfd -¤Ç»²¾È¤µ¤ì¤ë¥½¥±¥Ã¥È¤ËÂÓ°è³°¥Þ¡¼¥¯¤¬ÉÕ¤±¤é¤ì¤Æ¤¤¤ë¤«Èݤ«¤òÊÖ¤¹¡£ -¥½¥±¥Ã¥È¤Ë¥Þ¡¼¥¯¤¬ÉÕ¤±¤é¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢1 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥½¥±¥Ã¥È¤Ë¥Þ¡¼¥¯¤¬ÉÕ¤±¤é¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤Î´Ø¿ô¤ÏÂÓ°è³°¥Þ¡¼¥¯¤òºï½ü¤·¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +で参照されるソケットに帯域外マークが付けられているか否かを返す。 +ソケットにマークが付けられている場合は、1 が返される。 +ソケットにマークが付けられていない場合は、0 が返される。 +この関数は帯域外マークを削除しない。 +.SH 返り値 .BR sockatmark () -¤Î¸Æ¤Ó½Ð¤·¤¬À®¸ù¤·¤¿¾ì¹ç¡¢¥½¥±¥Ã¥È¤ËÂÓ°è³°¥Þ¡¼¥¯¤¬ -ÉÕ¤±¤é¤ì¤Æ¤¤¤ì¤Ð 1 ¤òÊÖ¤·¡¢ÉÕ¤±¤é¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢¥¨¥é¡¼¤òɽ¤¹ \fIerrno\fP ¤¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +の呼び出しが成功した場合、ソケットに帯域外マークが +付けられていれば 1 を返し、付けられていなければ 0 を返す。 +エラーの場合は \-1 が返され、エラーを表す \fIerrno\fP が設定される。 +.SH エラー .TP .B EBADF .I sockfd -¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が有効なファイルディスクリプタでない。 .TP .B EINVAL .\" POSIX.1 says ENOTTY for this case .I sockfd -¤Ï +は .BR sockatmark () -¤¬Å¬ÍѤǤ­¤Ê¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +が適用できないファイルディスクリプタである。 +.SH バージョン .BR sockatmark () -¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.2.4 ¤ÇÄɲ䵤줿¡£ -.SH ½àµò +は glibc バージョン 2.2.4 で追加された。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .BR sockatmark () -¤¬ 1 ¤òÊÖ¤¹¾ì¹ç¡¢ÂÓ°è³°¥Ç¡¼¥¿¤Ï +が 1 を返す場合、帯域外データは .B MSG_OOB -¤ò»ØÄꤷ¤¿ +を指定した .BR recv (2) -¤ÇÆɤ߹þ¤à¤³¤È¤¬¤Ç¤­¤ë¡£ +で読み込むことができる。 -ÂÓ°è³°¥Ç¡¼¥¿¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¥¹¥È¥ê¡¼¥à¥½¥±¥Ã¥È¥×¥í¥È¥³¥ë¤Ç¤·¤« -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +帯域外データは、いくつかのストリームソケットプロトコルでしか +サポートされていない。 .BR sockatmark () -¤Ï +は .B SIGURG -¥·¥°¥Ê¥ë¤Î¥Ï¥ó¥É¥é¤«¤é°ÂÁ´¤Ë¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +シグナルのハンドラから安全に呼び出すことができる。 .BR sockatmark () -¤Ï +は .B SIOCATMARK .BR ioctl (2) -Áàºî¤ò»È¤Ã¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ¥Ð¥° -glibc 2.4 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ +操作を使って実装されている。 +.SH バグ +glibc 2.4 より前のバージョンでは、 .BR sockatmark () -¤ÏÆ°ºî¤·¤Ê¤¤¡£ -.SH Îã -°Ê²¼¤Î¥³¡¼¥É¤Ï¡¢ +は動作しない。 +.SH 例 +以下のコードは、 .B SIGURG -¥·¥°¥Ê¥ë¤ò¼õ¤±¼è¤Ã¤¿¸å¤Ë¥Þ¡¼¥¯¤Þ¤Ç¤ÎÁ´¤Æ¤Î¥Ç¡¼¥¿¤òÆɤ߹þ¤ó¤Ç (ÇË´þ¤·)¡¢ -¥Þ¡¼¥¯¤µ¤ì¤¿¥Ç¡¼¥¿¤Î¥Ð¥¤¥È¤òÆɤ߹þ¤à¤Î¤Ë»ÈÍѤǤ­¤ë¡£ +シグナルを受け取った後にマークまでの全てのデータを読み込んで (破棄し)、 +マークされたデータのバイトを読み込むのに使用できる。 .nf char buf[BUF_LEN]; @@ -132,7 +132,7 @@ glibc 2.4 } } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fcntl (2), .BR recv (2), .BR send (2), diff --git a/release/man3/sqrt.3 b/release/man3/sqrt.3 index d9d79e27..df5b5c52 100644 --- a/release/man3/sqrt.3 +++ b/release/man3/sqrt.3 @@ -39,9 +39,9 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH SQRT 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -sqrt, sqrtf, sqrtl \- Ê¿Êýº¬´Ø¿ô -.SH ½ñ¼° +.SH 名前 +sqrt, sqrtf, sqrtl \- 平方根関数 +.SH 書式 .nf .B #include .sp @@ -52,12 +52,12 @@ sqrt, sqrtf, sqrtl \- Ê¿ .BI "long double sqrtl(long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -71,46 +71,46 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR sqrt () -´Ø¿ô¤Ï \fIx\fP ¤ÎÊ¿Êýº¬¤Î¤¦¤ÁÉé¤Ç¤Ê¤¤Êý¤ÎÃͤòÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +関数は \fIx\fP の平方根のうち負でない方の値を返す。 +.SH 返り値 +成功すると、これらの関数は .I x -¤ÎÊ¿Êýº¬¤òÊÖ¤¹¡£ +の平方根を返す。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬ +0 (\-0) ¤Î¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 (\-0) の場合、+0 (\-0) が返される。 .I x -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢Àµ¤Î̵¸ÂÂ礬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大の場合、正の無限大が返される。 .I x -¤¬ 0 ̤Ëþ¤Î¾ì¹ç¡¢Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ -NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +が 0 未満の場合、領域エラー (domain error) が発生し、 +NaN が返される。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬ 0 ̤Ëþ +領域エラー (domain error): \fIx\fP が 0 未満 .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë¡£ -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ -.SH ½àµò +が上がる。 +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 +.SH 関連項目 .BR cbrt (3), .BR csqrt (3), .BR hypot (3) diff --git a/release/man3/statvfs.3 b/release/man3/statvfs.3 index 91533bc0..03b1c363 100644 --- a/release/man3/statvfs.3 +++ b/release/man3/statvfs.3 @@ -32,150 +32,150 @@ .\" Updated & Modified Sun Jan 9 22:50:29 JST 2005 by Yuichi SATO .\" .TH STATVFS 3 2003-08-22 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -statvfs, fstatvfs \- ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÅý·×¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +statvfs, fstatvfs \- ファイルシステムの統計を取得する +.SH 書式 .B #include .sp .BI "int statvfs(const char *" path ", struct statvfs *" buf ); .br .BI "int fstatvfs(int " fd ", struct statvfs *" buf ); -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR statvfs () -¤Ï¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÊÖ¤¹¡£ +はマウントされたファイルシステムについての情報を返す。 .I path -¤Ï¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÃæ¤ÎǤ°Õ¤Î¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹Ì¾¤Ç¤¢¤ë¡£ +はマウントされたファイルシステム中の任意のファイルのパス名である。 .I buf -¤Ï¡¢¤À¤¤¤¿¤¤°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë +は、だいたい以下のように定義されている .I statvfs -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë: +構造体へのポインタである: .in +4n .nf struct statvfs { - unsigned long f_bsize; /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥º */ - unsigned long f_frsize; /* ¥Õ¥é¥°¥á¥ó¥È¥µ¥¤¥º */ - fsblkcnt_t f_blocks; /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥µ¥¤¥º (f_frsize ñ°Ì) */ - fsblkcnt_t f_bfree; /* ²òÊü¤µ¤ì¤Æ¤¤¤ë¥Ö¥í¥Ã¥¯¿ô */ - fsblkcnt_t f_bafvail; /* ÈóÆø¢¥æ¡¼¥¶ÍѤ˲òÊü¤µ¤ì¤Æ¤¤¤ë¥Ö¥í¥Ã¥¯¿ô */ - fsfilcnt_t f_files; /* inode ¿ô */ - fsfilcnt_t f_ffree; /* ²òÊü¤µ¤ì¤Æ¤¤¤ë inode ¤Î¿ô */ - fsfilcnt_t f_favail; /* ÈóÆø¢¥æ¡¼¥¶ÍѤ˲òÊü¤µ¤ì¤Æ¤¤¤ë inode ¤Î¿ô */ - unsigned long f_fsid; /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à ID */ - unsigned long f_flag; /* ¥Þ¥¦¥ó¥È¥Õ¥é¥° */ - unsigned long f_namemax; /* ¥Õ¥¡¥¤¥ë̾¤ÎŤµ¤ÎºÇÂçÃÍ */ + unsigned long f_bsize; /* ファイルシステムのブロックサイズ */ + unsigned long f_frsize; /* フラグメントサイズ */ + fsblkcnt_t f_blocks; /* ファイルシステムのサイズ (f_frsize 単位) */ + fsblkcnt_t f_bfree; /* 解放されているブロック数 */ + fsblkcnt_t f_bafvail; /* 非特権ユーザ用に解放されているブロック数 */ + fsfilcnt_t f_files; /* inode 数 */ + fsfilcnt_t f_ffree; /* 解放されている inode の数 */ + fsfilcnt_t f_favail; /* 非特権ユーザ用に解放されている inode の数 */ + unsigned long f_fsid; /* ファイルシステム ID */ + unsigned long f_flag; /* マウントフラグ */ + unsigned long f_namemax; /* ファイル名の長さの最大値 */ }; .fi .in -¤³¤³¤Ç¡¢·¿ +ここで、型 .I fsblkcnt_t -¤È +と .I fsfilcnt_t -¤Ï +は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤«¤Ä¤Æ¡¢¤³¤ì¤é¤Ï¶¦¤Ë +で定義されている。 +かつて、これらは共に .I "unsigned long" -¤Ç¤¢¤Ã¤¿¡£ +であった。 -¥Õ¥£¡¼¥ë¥É +フィールド .I f_flag -¤Ï (¥Þ¥¦¥ó¥È¥Õ¥é¥°¤Î) ¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ë -(¥Þ¥¦¥ó¥È¥Õ¥é¥°¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +は (マウントフラグの) ビットマスクである +(マウントフラグについては、 .BR mount (8) -¤ò»²¾È¤¹¤ë¤³¤È)¡£ -POSIX ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥Ó¥Ã¥È¤Ï°Ê²¼¤ÎÄ̤ê: +を参照すること)。 +POSIX で定義されているビットは以下の通り: .TP .B ST_RDONLY -Æɤ߹þ¤ßÀìÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¡£ +読み込み専用のファイルシステム。 .TP .B ST_NOSUID .BR exec (3) -¤Ë̵»ë¤µ¤ì¤ë set-user-id/set-group-ID ¥Ó¥Ã¥È¡£ +に無視される set-user-id/set-group-ID ビット。 .LP -ÊÖ¤µ¤ì¤¿¹½Â¤ÂΤÎÁ´¤Æ¤Î¥á¥ó¥Ð¤¬Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç -°ÕÌ£¤Î¤¢¤ëÃͤǤ¢¤ë¤«Èݤ«¤Ï¡¢»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +返された構造体の全てのメンバが全てのファイルシステムで +意味のある値であるか否かは、指定されていない。 .BR fstatvfs () -¤Ï¡¢¥Ç¥£¥¹¥¯¥ê¥×¥¿ +は、ディスクリプタ .I fd -¤Ç»²¾È¤µ¤ì¤ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¡¢Æ±¤¸¾ðÊó¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +で参照されるオープンされたファイルについて、同じ情報を返す。 +.SH 返り値 +成功した場合、0 が返される。 +エラーの場合、\-1 が返されて、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EACCES .RB ( statvfs () -¤Î¾ì¹ç) +の場合) .I path -¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤Ë¸¡º÷µö²Ä¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤ +のディレクトリ部分に検索許可が与えられていない .RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È)¡£ +も参照すること)。 .TP .B EBADF .RB ( fstatvfs () -¤Î¾ì¹ç) +の場合) .I fd -¤¬Í­¸ú¤Ê¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ +が有効なオープンファイルディスクリプタではない。 .TP .B EFAULT .I buf -¤Þ¤¿¤Ï +または .I path -¤¬Ìµ¸ú¤Ê¥¢¥É¥ì¥¹¤ò»Ø¤·¤Æ¤¤¤ë¡£ +が無効なアドレスを指している。 .TP .B EINTR -¤³¤Î¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤ÆÃæÃǤµ¤ì¤¿¡£ +この呼び出しがシグナルによって中断された。 .TP .B EIO -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤«¤éÆɤ߽Ф·¤Æ¤¤¤ë´Ö¤Ë I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ +ファイルシステムから読み出している間に I/O エラーが発生した。 .TP .B ELOOP .RB ( statvfs () -¤Î¾ì¹ç) +の場合) .I path -¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬Â¿¤¹¤®¤ë¡£ +にシンボリックリンクが多すぎる。 .TP .B ENAMETOOLONG .RB ( statvfs () -¤Î¾ì¹ç) +の場合) .I path -¤¬Ä¹¤¹¤®¤ë¡£ +が長すぎる。 .TP .B ENOENT .RB ( statvfs () -¤Î¾ì¹ç) +の場合) .I path -¤Ç»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ +で参照されるファイルが存在しない。 .TP .B ENOMEM -½½Ê¬¤Ê¥«¡¼¥Í¥ë¥á¥â¥ê¤¬»ÈÍѤǤ­¤Ê¤¤¡£ +十分なカーネルメモリが使用できない。 .TP .B ENOSYS -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¤³¤Î¸Æ¤Ó½Ð¤·¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +ファイルシステムがこの呼び出しをサポートしていない。 .TP .B ENOTDIR .RB ( statvfs () -¤Î¾ì¹ç) +の場合) .I path -¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ +のディレクトリ部分がディレクトリでない。 .TP .B EOVERFLOW -¤¤¤¯¤Ä¤«¤ÎÃͤϡ¢ÊÖ¤µ¤ì¤ë¹½Â¤ÂΤÇɽ¸½¤¹¤ë¤Ë¤ÏÂ礭¤¹¤®¤ë¡£ -.SH ½àµò +いくつかの値は、返される構造体で表現するには大きすぎる。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ -Linux ¥«¡¼¥Í¥ë¤Ë¤Ï¡¢¤³¤Î¥é¥¤¥Ö¥é¥ê¥³¡¼¥ë¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¿¤á¤Ë¡¢ +.SH 注意 +Linux カーネルには、このライブラリコールをサポートするために、 .BR statfs (2), .BR fstatfs (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤¢¤ë¡£ +システムコールがある。 -¸½ºß¤Î glibc ¤Î¼ÂÁõ¤Ë¤ª¤¤¤Æ¡¢ +現在の glibc の実装において、 .sp .nf pathconf(path, _PC_REC_XFER_ALIGN); @@ -183,12 +183,12 @@ Linux pathconf(path, _PC_REC_MIN_XFER_SIZE); .fi .sp -¤Ï¡¢¤½¤ì¤¾¤ì +は、それぞれ .I "statvfs(path,buf)" -¤ÎÊÖ¤êÃͤΠ+の返り値の .IR f_frsize , .IR f_frsize , .I f_bsize -¥Õ¥£¡¼¥ë¥É¤ò»È¤¦¡£ -.SH ´ØÏ¢¹àÌÜ +フィールドを使う。 +.SH 関連項目 .BR statfs (2) diff --git a/release/man3/stdarg.3 b/release/man3/stdarg.3 index 1f57c58a..a6c45b87 100644 --- a/release/man3/stdarg.3 +++ b/release/man3/stdarg.3 @@ -43,9 +43,9 @@ .\" Updated Tue Oct 16 2001 by Kentaro Shirakata .\" .TH STDARG 3 2001-10-14 "" "Linux Programmer's Manual" -.SH ̾Á° -stdarg, va_start, va_arg, va_end, va_copy \- ¸Ä¿ô¡¦·¿¤¬²ÄÊѤʰú¿ô¥ê¥¹¥È -.SH ½ñ¼° +.SH 名前 +stdarg, va_start, va_arg, va_end, va_copy \- 個数・型が可変な引数リスト +.SH 書式 .B #include .sp .BI "void va_start(va_list " ap ", " last ); @@ -55,106 +55,106 @@ stdarg, va_start, va_arg, va_end, va_copy \- .BI "void va_end(va_list " ap ); .br .BI "void va_copy(va_list " dest ", va_list " src ); -.SH ÀâÌÀ -´Ø¿ô¤Ï¸Æ¤Ó½Ð¤·¤ËºÝ¤·¤Æ¡¢¸Ä¿ô¤ä·¿¤¬²ÄÊѤʰú¿ô¤ò¤È¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +.SH 説明 +関数は呼び出しに際して、個数や型が可変な引数をとることができる。 +インクルードファイル .I -¤Ç¤Ï +では .I va_list -·¿¤¬Àë¸À¤µ¤ì¤Æ¤ª¤ê¡¢3 ¤Ä¤Î¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£¤³¤ì¤é¤òÍѤ¤¤ë¤È¡¢ -¸Æ¤Ó½Ð¤µ¤ì¤¿´Ø¿ô¦¤Ç¤Ï¸Ä¿ô¤ä·¿¤òÃΤé¤Ê¤¤°ú¤­¿ô¤Î¥ê¥¹¥È¤ò¡¢½ç¤Ë°ì -¤Ä¤Å¤ÄÆɤ߹þ¤à¤³¤È¤¬¤Ç¤­¤ë¡£ +型が宣言されており、3 つのマクロが定義されている。これらを用いると、 +呼び出された関数側では個数や型を知らない引き数のリストを、順に一 +つづつ読み込むことができる。 .PP -¸Æ¤Ó½Ð¤µ¤ì¤ë´Ø¿ô¤Ç¤Ï¡¢ +呼び出される関数では、 .I va_list -·¿¤Î¥ª¥Ö¥¸¥§¥¯¥È¤¬Àë¸À¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤¬ +型のオブジェクトが宣言されていなければならない。このオブジェクトが .BR va_start (), .BR va_arg (), .BR va_end () -¤Î³Æ¥Þ¥¯¥í¤Ë¤è¤Ã¤Æ°·¤ï¤ì¤ë¡£ +の各マクロによって扱われる。 .SS va_start() .BR va_start () -¥Þ¥¯¥í¤ÏºÇ½é¤Ë¸Æ¤Ó½Ð¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤ì¤Ï +マクロは最初に呼び出さなければならない。これは .I ap -¤ò½é´ü²½¤·¡¢ +を初期化し、 .BR va_arg () -¤È +と .BR va_end () -¤ÇÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ +で用いることができるようにする。 .PP -°ú¤­¿ô +引き数 .I last -¤Ï°ú¤­¿ô¥ê¥¹¥È¤Î¤¦¤Á¡¢²ÄÊѤÊÉôʬ¤ÎľÁ°¤ËÃÖ¤«¤ì¤ë°ú¤­¿ô¤Î̾Á°¤Ç¤¢ -¤ë¡£¤Ä¤Þ¤ê¸Æ¤Ó½Ð¤µ¤ì¤¿´Ø¿ô¤¬·¿¤òÃΤäƤ¤¤ëºÇ¸å¤Î°ú¤­¿ô¤Ç¤¢¤ë¡£ +は引き数リストのうち、可変な部分の直前に置かれる引き数の名前であ +る。つまり呼び出された関数が型を知っている最後の引き数である。 .PP -¤³¤Î°ú¤­¿ô¤Ï¥ì¥¸¥¹¥¿ÊÑ¿ô¤ä´Ø¿ô¡¢ÇÛÎó¤È¤·¤Æ -Àë¸À¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£¤³¤Î°ú¤­¿ô¤Î¥¢¥É¥ì¥¹¤¬ +この引き数はレジスタ変数や関数、配列として +宣言してはならない。この引き数のアドレスが .BR va_start () -¥Þ¥¯¥í¤ÇÍѤ¤¤é¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +マクロで用いられるかもしれないからである。 .SS va_arg() .BR va_arg () -¥Þ¥¯¥í¤Ï¡¢¸Æ¤Ó½Ð¤·»þ¤Ë»ØÄꤵ¤ì¤¿°ú¤­¿ô¤Î¤¦¤Á¡¢ -¼¡¤Î°ÌÃ֤ˤ¢¤ë¤â¤Î¤ò»ØÄꤷ¤¿·¿ +マクロは、呼び出し時に指定された引き数のうち、 +次の位置にあるものを指定した型 .I type -¤ÎÃͤȤ·¤Æ¼èÆÀ¤¹¤ë¡£ -°ú¤­¿ô +の値として取得する。 +引き数 .I ap -¤Ï +は .I va_list .I ap -¤Ç¡¢ +で、 .BR va_start () -¤Ë¤è¤Ã¤Æ½é´ü²½¤µ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ +によって初期化されている必要がある。 .BR va_arg () -¤ò¸Æ¤Ó½Ð¤¹¤´¤È¤Ë +を呼び出すごとに .I ap -¤ÏÊѹ¹¤µ¤ì¡¢¼¡²ó¤Î¸Æ¤Ó½Ð¤·¤ÎºÝ¤Ë¡¢¤µ¤é¤Ë¼¡¤Î°ú¤­¿ô¤òÊÖ¤¹¤è¤¦¤Ë¤Ê¤ë¡£ -°ú¤­¿ô +は変更され、次回の呼び出しの際に、さらに次の引き数を返すようになる。 +引き数 .I type -¤Ï·¿¤Î̾Á°¤Ç¤¢¤ë¡£ +は型の名前である。 .I type -¤ÎÁ°¤Ë * ¤òÉÕ¤±¤ì¤Ð¡¢¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î·¿ÉÕ¤­¥Ý¥¤¥ó¥¿¤¬ÆÀ¤é¤ì¤ë¡£ +の前に * を付ければ、オブジェクトへの型付きポインタが得られる。 .PP .BR va_start () -¥Þ¥¯¥í¤Îľ¸å¤Ë +マクロの直後に .BR va_arg () -¤òºÇ½é¤Ë¼Â¹Ô¤¹¤ë¤È¡¢ +を最初に実行すると、 .I last -¤Î¼¡¤Î°ú¤­¿ô¤¬Ê֤롣³¤±¤Æ¼Â¹Ô¤¹¤ë¤È¡¢»Ä¤ê¤Î°ú¤­¿ô¤¬¤½¤ì¤¾¤ìÊ֤롣 +の次の引き数が返る。続けて実行すると、残りの引き数がそれぞれ返る。 .PP -¼¡¤Î°ú¤­¿ô¤¬¤Ê¤«¤Ã¤¿¤ê¡¢ +次の引き数がなかったり、 .I type -¤¬¼¡¤Î°ú¤­¿ô¤Î¼ÂºÝ¤Î·¿¤È¸ß´¹¤Ç¤Ê¤¤¾ì¹ç (¥Ç¥Õ¥©¥ë¥È¤Î°ú¤­¿ôÊÑ´¹¤Ç°· -¤¨¤Ê¤«¤Ã¤¿¾ì¹ç) ¤Ë¤Ï¡¢Í½Â¬¤Ç¤­¤Ê¤¤¥¨¥é¡¼¤¬µ¯¤³¤ë¡£ +が次の引き数の実際の型と互換でない場合 (デフォルトの引き数変換で扱 +えなかった場合) には、予測できないエラーが起こる。 .PP .I ap -¤¬ +が .BI va_arg( ap , type ) -¤Î·Á¤Ç´Ø¿ô¤ËÅϤµ¤ì¤ë¤È¡¢ +の形で関数に渡されると、 .I ap -¤ÎÃͤϴؿô¤«¤éÊ֤äÆÍ褿¸å¤ÏÉÔÄê¤È¤Ê¤ë¡£ +の値は関数から返って来た後は不定となる。 .SS va_end() .BR va_start () -¤¬¼Â¹Ô¤µ¤ì¤ëËè¤Ë¡¢Æ±¤¸´Ø¿ôÆâ¤ÇÂбþ¤¹¤ë +が実行される毎に、同じ関数内で対応する .BR va_end () -¤¬¼Â¹Ô¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +が実行されなければならない。 .BI va_end( ap ) -¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¸å¡¢ÊÑ¿ô +が呼び出された後、変数 .I ap -¤ÎÃͤÏÉÔÄê¤È¤Ê¤ë¡£ +の値は不定となる。 .BR va_start () -¤È +と .BR va_end () -¤ÎÁȤò²¿²ó¤âʤ٤ƻȤ¦¤³¤È¤â²Äǽ¤Ç¤¢¤ë¡£ +の組を何回も並べて使うことも可能である。 .BR va_end () -¤Ï¥Þ¥¯¥í¤«¤â¤·¤ì¤Ê¤¤¤·´Ø¿ô¤«¤â¤·¤ì¤Ê¤¤¡£ +はマクロかもしれないし関数かもしれない。 .SS va_copy() -¤¹¤°Ê¬¤«¤ë +すぐ分かる .I va_list -¤Î¼ÂÁõ¤Ï¡¢variadic ¤Ê´Ø¿ô¤Î¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +の実装は、variadic な関数のスタックフレームのポインタである。 .\"argrath: variadic? -¤³¤Î¤è¤¦¤Ê¾ì¹ç(¤Û¤È¤ó¤É¤Ï¤½¤¦¤Ç¤¢¤ë)¡¢ -ñ¤Ë°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¤¤¤¤¤è¤¦¤Ë»×¤¨¤ë¡£ +このような場合(ほとんどはそうである)、 +単に以下のようにすればいいように思える。 .in +4n .nf @@ -162,8 +162,8 @@ va_list aq = ap; .fi .in -»ÄÇ°¤Ê¤¬¤é¡¢(Ťµ 1¤Î)¥Ý¥¤¥ó¥¿¤ÎÇÛÎó¤È¤·¤Æ°·¤¦¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ -¤½¤Î¤è¤¦¤Ê¾ì¹ç¡¢°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ëɬÍפ¬¤¢¤ë¡£ +残念ながら、(長さ 1の)ポインタの配列として扱うシステムもある。 +そのような場合、以下のようにする必要がある。 .in +4n .nf @@ -172,19 +172,19 @@ va_list aq; .fi .in -ºÇ¸å¤Ë¡¢°ú¤­¿ô¤ò¥ì¥¸¥¹¥¿¤ÇÅϤ¹¥·¥¹¥Æ¥à¤Î¾ì¹ç¡¢ +最後に、引き数をレジスタで渡すシステムの場合、 .BR va_start () -¤Ç¥á¥â¥ê¤ò³ä¤êÅö¤Æ¡¢°ú¤­¿ô¤ò³ÊǼ¤·¡¢ -¼¡¤Î°ú¤­¿ô¤¬¤É¤ì¤«¤ò»Ø¤·¼¨¤¹¤è¤¦¤Ë¤¹¤ëɬÍפ¬¤¢¤ë¡£ -¤½¤·¤Æ +でメモリを割り当て、引き数を格納し、 +次の引き数がどれかを指し示すようにする必要がある。 +そして .BR va_arg () -¤Ç¥ê¥¹¥È¤ò½çÈ֤ˤ¿¤É¤ê¡¢ +でリストを順番にたどり、 .BR va_end () -¤Ç³ä¤êÅö¤Æ¤¿¥á¥â¥ê¤ò³«Êü¤¹¤ë¡£ -¤³¤Î¤è¤¦¤Ê¾õ¶·¤ËÂбþ¤¹¤ë¤¿¤á¡¢C99 ¤Ç¤Ï +で割り当てたメモリを開放する。 +このような状況に対応するため、C99 では .BR va_copy () -¥Þ¥¯¥í¤òÄɲä·¡¢ -Á°½Ò¤Î¤è¤¦¤Ê³ä¤êÅö¤Æ¤Ï°Ê²¼¤Î¤è¤¦¤ËÃÖ¤­´¹¤¨¤é¤ì¤ë¤è¤¦¤Ë¤·¤¿¡£ +マクロを追加し、 +前述のような割り当ては以下のように置き換えられるようにした。 .in +4n .nf @@ -197,30 +197,30 @@ va_end(aq); .in .RE .BR va_copy () -¤¬¼Â¹Ô¤µ¤ì¤ë¤´¤È¤Ë¡¢ -Âбþ¤¹¤ë +が実行されるごとに、 +対応する .BR va_end () -¤òƱ¤¸´Ø¿ôÆâ¤Ç¼Â¹Ô¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤Î̾Á°¤Ï¤Þ¤À draft proposal ¤Ê¤Î¤Ç¡¢ +を同じ関数内で実行しなければならない。 +この名前はまだ draft proposal なので、 .BR va_copy () -¤ÎÂå¤ï¤ê¤Ë +の代わりに .B __va_copy -¤òÍѤ¤¤ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ -.SH ½àµò +を用いるシステムもある。 +.SH 準拠 .BR va_start (), .BR va_arg (), .BR va_end () -¥Þ¥¯¥í¤Ï C89 ½àµò¤Ç¤¢¤ë¡£ +マクロは C89 準拠である。 .BR va_copy () -¤Ï C99 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ï¡¢°ÊÁ°¤«¤éÍѤ¤¤é¤ì¤Æ¤­¤¿Æ±Åù¤Î¥Þ¥¯¥í·²¤È -¸ß´¹¤Ç¤Ï\fI¤Ê¤¤\fP¡£²áµî¤Î¤â¤Î¤È¸ß´¹¤Ê¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢ -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +は C99 で定義されている。 +.SH 注意 +これらのマクロは、以前から用いられてきた同等のマクロ群と +互換では\fIない\fP。過去のものと互換なバージョンは、 +インクルードファイル .I -¤Ë¸ºß¤¹¤ë¡£ +に存在する。 .PP -Îò»ËŪ¤Ê¥»¥Ã¥È¥¢¥Ã¥×¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¢¤ë¡£ +歴史的なセットアップは以下のとおりである。 .in +4n .nf @@ -244,30 +244,30 @@ foo(va_alist) .fi .in .I va_start -¥Þ¥¯¥í¤Ë \(aq}\(aq ¤ò´Þ¤ß¡¢ +マクロに \(aq}\(aq を含み、 .I va_end -¥Þ¥¯¥í¤ËÂбþ¤¹¤ë \(aq{\(aq ¤ò´Þ¤à¥·¥¹¥Æ¥à¤â¤¢¤ë¤Î¤Ç¡¢ -¤³¤ÎÆó¤Ä¤Î¥Þ¥¯¥í¤ÏƱ¤¸´Ø¿ô¤Ë¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ¥Ð¥° +マクロに対応する \(aq{\(aq を含むシステムもあるので、 +この二つのマクロは同じ関数になければならない。 +.SH バグ .B varargs -¥Þ¥¯¥í¤È¤Ï°Û¤Ê¤ê¡¢ +マクロとは異なり、 .B stdarg -¥Þ¥¯¥í¤Ç¤Ï¸ÇÄê°ú¤­¿ô¤Ê¤·¤Ç´Ø¿ô¤ò»ØÄꤹ¤ë¤³¤È¤¬µö¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤³¤ì¤Ï +マクロでは固定引き数なしで関数を指定することが許されていない。 +これは .B varargs -¥Ù¡¼¥¹¤Î¥³¡¼¥É¤ò +ベースのコードを .B stdarg -¤Î¥³¡¼¥É¤Ë½ñ¤­´¹¤¨¤ë¤È¤­¤Ë¡¢ÌÌÅݤʺî¶È¤Î¤â¤È¤Ë¤Ê¤ë¡£ -¤Þ¤¿¡¢¤¹¤Ù¤Æ¤Î°ú¤­¿ô¤ò +のコードに書き換えるときに、面倒な作業のもとになる。 +また、すべての引き数を .I va_list -¤È¤·¤Æ²ÄÊѸĻØÄꤷ¤¿¤¤¤è¤¦¤Ê¾ì¹ç +として可変個指定したいような場合 .RB ( vfprintf (3) -¤Ê¤É) ¤Ë¤â¾ã³²¤È¤Ê¤ë¡£ -.SH Îã -´Ø¿ô +など) にも障害となる。 +.SH 例 +関数 .I foo -¤Ï½ñ¼°Ê¸»ú¤«¤é¤Ê¤ëʸ»úÎó¤ò¼õ¤±Æþ¤ì¡¢¤½¤Î½ñ¼°Ê¸»ú¤ËÂбþ¤¹¤ë·¿¤Ç²ÄÊѸĤΠ-°ú¤­¿ô¤òÆɤ߹þ¤ß¡¢°õ»ú¤¹¤ë¡£ +は書式文字からなる文字列を受け入れ、その書式文字に対応する型で可変個の +引き数を読み込み、印字する。 .nf #include diff --git a/release/man3/stdin.3 b/release/man3/stdin.3 index e99bc836..4096c340 100644 --- a/release/man3/stdin.3 +++ b/release/man3/stdin.3 @@ -11,9 +11,9 @@ .\" Updated 2005-09-04, Akihiro MOTOKI .\" .TH STDIN 3 2008-07-14 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -stdin, stdout, stderr \- ɸ½àÆþ½ÐÎÏ¥¹¥È¥ê¡¼¥à -.SH ½ñ¼° +.SH 名前 +stdin, stdout, stderr \- 標準入出力ストリーム +.SH 書式 .nf .B #include @@ -21,125 +21,125 @@ stdin, stdout, stderr \- ɸ .BI "extern FILE *" stdout ; .BI "extern FILE *" stderr ; .fi -.SH ÀâÌÀ -ɸ½à¤Î´Ä¶­¤Ç¤Ï¡¢ UNIX ¥×¥í¥°¥é¥à¤Ïµ¯Æ°»þ¤Ë¡¢¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥¹¥È¥ê¡¼ -¥à¤ò 3 ¤ÄÍ¿¤¨¤é¤ì¤ë¡£¤½¤ì¤¾¤ìÆþÎÏÍÑ¡¢½ÐÎÏÍÑ¡¢¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤ä¥¨¥é¡¼¥á¥Ã -¥»¡¼¥¸¤Îɽ¼¨ÍѤΤâ¤Î¤Ç¤¢¤ë¡£¤³¤ì¤é¤ÏÄ̾ï¥æ¡¼¥¶¤ÎüËö +.SH 説明 +標準の環境では、 UNIX プログラムは起動時に、オープンされているストリー +ムを 3 つ与えられる。それぞれ入力用、出力用、診断メッセージやエラーメッ +セージの表示用のものである。これらは通常ユーザの端末 .RB ( tty (4) -¤ò¸«¤è) ¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢¿Æ¥×¥í¥»¥¹¤Ç¤ÎÁªÂò¡¦ÀßÄê¤Ë¤è¤Ã¤Æ¥Õ¥¡¥¤¥ë -¤ä¾¤Î¥Ç¥Ð¥¤¥¹¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ë¤³¤È¤â¤¢¤ë +を見よ) に接続されているが、親プロセスでの選択・設定によってファイル +や他のデバイスに関連づけられていることもある .RB ( sh (1) -¤Î¡Ö¥ê¥À¥¤¥ì¥¯¥·¥ç¥ó¡×¥»¥¯¥·¥ç¥ó¤â»²¾È¤Î¤³¤È)¡£ +の「リダイレクション」セクションも参照のこと)。 .PP -ÆþÎÏ¥¹¥È¥ê¡¼¥à¤Ï "standard input" ¤È¸Æ¤Ð¤ì¤ë¡£½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Ï -"standard output"¡¢¥¨¥é¡¼¥¹¥È¥ê¡¼¥à¤Ï "standard error" ¤È¸Æ¤Ð¤ì¤ë¡£ -¤³¤ì¤é¤ÎÍѸì¤òû½Ì¤·¤¿¤â¤Î¤¬¤½¤ì¤¾¤ì¤Î¥Õ¥¡¥¤¥ë¤ò¼¨¤¹¥·¥ó¥Ü¥ë¤È¤Ê¤ë¡£¤Ä -¤Þ¤ê +入力ストリームは "standard input" と呼ばれる。出力ストリームは +"standard output"、エラーストリームは "standard error" と呼ばれる。 +これらの用語を短縮したものがそれぞれのファイルを示すシンボルとなる。つ +まり .IR stdin , .IR stdout , .I stderr -¤Ç¤¢¤ë¡£ +である。 .PP -¤³¤ì¤é¤Î¥·¥ó¥Ü¥ë¤Ï +これらのシンボルは .BR stdio (3) -¤Î¥Þ¥¯¥í¤Ç¡¢ FILE ¤Ø¤Î¥Ý¥¤¥ó¥¿·¿¤Ç¤¢¤ë¡£¤·¤¿¤¬¤Ã¤Æ +のマクロで、 FILE へのポインタ型である。したがって .BR fprintf (3) -¤ä +や .BR fread (3) -¤Ê¤É¤Î´Ø¿ô¤È¤È¤â¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +などの関数とともに用いることができる。 .PP .I FILE -¤Ï UNIX ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¥Ð¥Ã¥Õ¥¡µ¡Ç½¤òÄɲä·¤¿¥é¥Ã¥Ñ¡¼ -¤Ç¤¢¤ë¤«¤é¡¢¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ë¤âÂбþ¤¹¤ë¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¡¢ UNIX ¤Î raw ¥Õ¥¡ -¥¤¥ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹ +は UNIX のファイルディスクリプタにバッファ機能を追加したラッパー +であるから、これらのマクロにも対応するファイルがあり、 UNIX の raw ファ +イルインタフェース .RB ( read (2) -¤ä +や .BR lseek (2) -¤Ê¤É) ¤Ë¤è¤Ã¤Æ¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +など) によってアクセスすることもできる。 .PP -¥×¥í¥°¥é¥à¤Îµ¯Æ°»þ¤Ë¤Ï¡¢ -¥¹¥È¥ê¡¼¥à +プログラムの起動時には、 +ストリーム .IR stdin , .IR stdout , .I stderr -¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÈÖ¹æ¤Ï¡¢ -¤½¤ì¤¾¤ì 0, 1, 2 ¤Ç¤¢¤ë¡£ -¥×¥ê¥×¥í¥»¥Ã¥µ¥·¥ó¥Ü¥ë +に結びつけられているファイルディスクリプタの番号は、 +それぞれ 0, 1, 2 である。 +プリプロセッサシンボル .BR STDIN_FILENO , .BR STDOUT_FILENO , .B STDERR_FILENO -¤Ï +は .I -Ãæ¤Ç¤½¤ì¤¾¤ì¤³¤ì¤é¤ÎÃͤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -(¤³¤ì¤é¤Î¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ +中でそれぞれこれらの値に定義されている。 +(これらのストリームに対して .BR freopen (3) -¤òŬÍѤ¹¤ë¤³¤È¤Ç¡¢¤½¤Î¥¹¥È¥ê¡¼¥à¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ -¤ÎÈÖ¹æ¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£) +を適用することで、そのストリームに関連付けられたファイルディスクリプタ +の番号を変更することができる。) .PP .I FILE -¤È raw ¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÊ»ÍѤϡ¢Í½´ü¤Ç¤­¤Ê¤¤·ë²Ì¤òÀ¸¤¸ -¤ë¤³¤È¤¬¤¢¤ë¤Î¤Ç¡¢Ä̾ï¤ÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ (¥Þ¥¾¥Ò¥¹¥Æ¥£¥Ã¥¯¤Ê¿Í¤Ë: -POSIX.1 ¤Î¥»¥¯¥·¥ç¥ó 8.2.3 ¤Ë¤Ï¡¢¤³¤Îº®ÍѤÇÆ°ºî¤¬¤É¤Î¤è¤¦¤Ë¤Ê¤ê¤½¤¦ -¤«¤¬¾Ü¤·¤¯µ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£) -°ìÈÌŪ¤Ê¥ë¡¼¥ë¤Ï°Ê²¼¤ÎÄ̤ê: ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ -°·¤ï¤ì¡¢ stdio ¤Ïñ¤Ë¥é¥¤¥Ö¥é¥ê¤Ë¤è¤Ã¤Æ°·¤ï¤ì¤ë¤Î¤Ç¤¢¤ë¡£¤¹¤Ê¤ï¤ÁÎ㤨¤Ð +と raw なファイルディスクリプタの併用は、予期できない結果を生じ +ることがあるので、通常は避けるべきである。 (マゾヒスティックな人に: +POSIX.1 のセクション 8.2.3 には、この混用で動作がどのようになりそう +かが詳しく記述されている。) +一般的なルールは以下の通り: ファイルディスクリプタはカーネルによって +扱われ、 stdio は単にライブラリによって扱われるのである。すなわち例えば .BR exec (3) -¤Î¸å¤Ë¤Ï¡¢»Ò¥×¥í¥»¥¹¤Ï¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ -¤ò¤¹¤Ù¤Æ·Ñ¾µ¤¹¤ë¤¬¡¢¿Æ¤«¤é¤Î¥¹¥È¥ê¡¼¥à¤Ï¤¹¤Ù¤Æ¥¢¥¯¥»¥¹ÉԲĤȤʤ롣 +の後には、子プロセスはオープンされているファイルディスクリプタ +をすべて継承するが、親からのストリームはすべてアクセス不可となる。 .PP -¥·¥ó¥Ü¥ë +シンボル .IR stdin , .IR stdout , .I stderr -¤Ï¤¹¤Ù¤Æ¥Þ¥¯¥í¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¤³¤ì¤é¤Ø¤ÎÂåÆþ -¤Ï°Ü¿¢À­¤òÊݾڤµ¤ì¤Ê¤¤¡£É¸½à¥¹¥È¥ê¡¼¥à¤Ï¥é¥¤¥Ö¥é¥ê´Ø¿ô +はすべてマクロとして定義されているので、これらへの代入 +は移植性を保証されない。標準ストリームはライブラリ関数 .BR freopen (3) -¤òÍѤ¤¤ì¤Ð¡¢Ê̤Υե¡¥¤¥ë¤ò¼¨¤¹¤è¤¦¤ËÊѹ¹¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¤³¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ï +を用いれば、別のファイルを示すように変更することもできる。 +このライブラリ関数は .IR stdin , .IR stdout , .I stderr -¤ÎºÆ³ä¤êÅö¤Æ¤¬²Äǽ¤Ê¤è¤¦¤ËÆÃÊ̤ËƳÆþ¤µ¤ì¤¿¤â¤Î¤Ç¤¢¤ë¡£ -ɸ½à¥¹¥È¥ê¡¼¥à¤Ï +の再割り当てが可能なように特別に導入されたものである。 +標準ストリームは .BR exit (3) -¤Î¸Æ¤Ó½Ð¤·¤È¡¢¥×¥í¥°¥é¥à¤ÎÀµ¾ï½ªÎ»¤Ë¤è¤Ã¤Æ¥¯¥í¡¼¥º¤µ¤ì¤ë¡£ -.SH ½àµò +の呼び出しと、プログラムの正常終了によってクローズされる。 +.SH 準拠 .IR stdin , .IR stdout , .I stderr -¥Þ¥¯¥í¤Ï C89 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ -¤Þ¤¿ C89 ¤Ç¤Ï¡¢¤³¤ì¤é 3 ¤Ä¤Î¥¹¥È¥ê¡¼¥à¤¬¥×¥í¥°¥é¥à -¤Îµ¯Æ°»þ¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¤Ù¤­¤Ç¤¢¤ë¤³¤È¤¬µ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ +マクロは C89 に準拠している。 +また C89 では、これら 3 つのストリームがプログラム +の起動時にオープンされているべきであることが規定されている。 +.SH 注意 .I stderr -¥¹¥È¥ê¡¼¥à¤Ï¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +ストリームはバッファリングされていない。 .I stdout -¥¹¥È¥ê¡¼¥à¤Ï¡¢Ã¼Ëö¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ë¤Ï¹Ôñ°Ì¤Ç¥Ð¥Ã¥Õ¥¡¥ê¥ó¥° -¤µ¤ì¤Æ¤¤¤ë¡£°ì¹Ô¤ËËþ¤¿¤Ê¤¤ÆâÍƤϡ¢ +ストリームは、端末に接続されているときには行単位でバッファリング +されている。一行に満たない内容は、 .BR fflush (3) -¤« +か .BR exit (3) -¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤«¡¢²þ¹Ôʸ»ú¤¬°õ»ú¤µ¤ì¤ë¤Þ¤Çɽ¼¨¤µ¤ì¤Ê¤¤¡£¤³¤ì¤Ï¡¢ -Æä˥ǥХå°»þ¤Ë¤ª¤¤¤Æ¡¢Í½´ü¤·¤Ê¤¤·ë²Ì¤òÀ¸¤¸¤ë¸¶°ø¤È¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -ɸ½à¥¹¥È¥ê¡¼¥à¤Î (¤¢¤ë¤¤¤Ï¾¤Î¤¹¤Ù¤Æ¤Î¥¹¥È¥ê¡¼¥à¤Î) -¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¥â¡¼¥É¤Ï¡¢ +が呼び出されるか、改行文字が印字されるまで表示されない。これは、 +特にデバッグ時において、予期しない結果を生じる原因となるかもしれない。 +標準ストリームの (あるいは他のすべてのストリームの) +バッファリングモードは、 .BR setbuf (3) -¤Þ¤¿¤Ï +または .BR setvbuf (3) -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ë¤è¤Ã¤ÆÊѹ¹¤Ç¤­¤ë¡£ -¤¿¤À¤·¡¢ +を呼び出すことによって変更できる。 +ただし、 .I stdin -¤¬Ã¼Ëö¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ï¡¢Ã¼Ëö¤Î¥É¥é¥¤¥Ð¤Ç¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤Æ¤¤¤ë -²ÄǽÀ­¤¬¤¢¤ëÅÀ¤Ë¤âÃí°Õ¤¹¤ë¤³¤È¡£¤³¤ì¤Ï stdio ¤Î¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤È¤ÏÁ´¤¯ -´Ø·¸¤Ê¤¯Â¸ºß¤·¤¦¤ë¡£ (¼ÂºÝ¡¢Ä̾ï¤À¤ÈüËöÆþÎϤϥ«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ¹Ôñ°Ì -¤Ç¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤Æ¤¤¤ë¡£) ¤³¤Î¥«¡¼¥Í¥ë¤Ë¤è¤ëÆþÎϤΰ·¤¤¤Ï +が端末に接続されているときは、端末のドライバでバッファリングされている +可能性がある点にも注意すること。これは stdio のバッファリングとは全く +関係なく存在しうる。 (実際、通常だと端末入力はカーネルによって行単位 +でバッファリングされている。) このカーネルによる入力の扱いは .BR tcsetattr (3) -¤Ê¤É¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤ÆÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +などの呼び出しによって変更することができる。 .BR stty (1) -¤È +と .BR termios (3) -¤â»²¾È¤¹¤ë¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +も参照すること。 +.SH 関連項目 .BR csh (1), .BR sh (1), .BR open (2), diff --git a/release/man3/stdio.3 b/release/man3/stdio.3 index 14d415a9..56a966be 100644 --- a/release/man3/stdio.3 +++ b/release/man3/stdio.3 @@ -44,13 +44,13 @@ .\" by Yuichi SATO .\" Updated & Modified Sat Jan 17 03:18:29 JST 2004 by Yuichi SATO .\" -.\"WORD: position indicator °ÌÃֻؼ¨»Ò -.\"WORD: positioning requests °ÌÃÖ»ØÄê¥ê¥¯¥¨¥¹¥È +.\"WORD: position indicator 位置指示子 +.\"WORD: positioning requests 位置指定リクエスト .\" .TH STDIO 3 2001-12-26 "" "Linux Programmer's Manual" -.SH ̾Á° -stdio \- ɸ½àÆþ½ÐÎϥ饤¥Ö¥é¥ê´Ø¿ô -.SH ½ñ¼° +.SH 名前 +stdio \- 標準入出力ライブラリ関数 +.SH 書式 .B #include .sp .BI "FILE *" stdin ; @@ -58,104 +58,104 @@ stdio \- ɸ .BI "FILE *" stdout ; .br .BI "FILE *" stderr ; -.SH ÀâÌÀ -ɸ½àÆþ½ÐÎϥ饤¥Ö¥é¥ê¤Ï¡¢´Êñ¤«¤Ä¸ú²Ì¤Î¤è¤¤¡¢ -¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤¿¥¹¥È¥ê¡¼¥àÆþ½ÐÎÏ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÄ󶡤¹¤ë¡£ -ÆþÎϤȽÐÎϤÏÏÀÍý¥Ç¡¼¥¿¥¹¥È¥ê¡¼¥à¤Ë³ä¤êÉÕ¤±¤é¤ì¡¢ -Æþ½ÐÎϤÎʪÍýŪ¤ÊÆÃħ¤Ï±£Ê䵤ì¤ë¡£ -¤³¤Î¥é¥¤¥Ö¥é¥ê¤Ë°¤¹¤ë´Ø¿ô¤È¥Þ¥¯¥í¤ò°Ê²¼¤Ëµó¤²¤ë¡£ -¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï¸Ä¡¹¤Î man ¥Ú¡¼¥¸¤«¤éÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +.SH 説明 +標準入出力ライブラリは、簡単かつ効果のよい、 +バッファリングされたストリーム入出力インターフェースを提供する。 +入力と出力は論理データストリームに割り付けられ、 +入出力の物理的な特徴は隠蔽される。 +このライブラリに属する関数とマクロを以下に挙げる。 +より詳しい情報は個々の man ページから得ることができる。 .PP -¥Õ¥¡¥¤¥ë¤ò -.I ¥ª¡¼¥×¥ó (open) ¤¹¤ë -¤³¤È¤Ë¤è¤Ã¤Æ¡¢ -¥¹¥È¥ê¡¼¥à¤Ï³°Éô¥Õ¥¡¥¤¥ë (Ä̾ï¤ÏʪÍý¥Ç¥Ð¥¤¥¹) ¤ËÏ¢·ë¤µ¤ì¤ë¡£ -¤³¤ÎÁàºî¤Ë¤Ï¿·¤·¤¯¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¤³¤È¤â´Þ¤Þ¤ì¤ë¡£ -´û¸¤Î¥Õ¥¡¥¤¥ë¤ÈƱ¤¸Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤ò¿·¤¿¤Ëºî¤ë¤È¡¢ -¤â¤È¤Î¥Õ¥¡¥¤¥ë¤ÎÃæ¿È¤¬¼Î¤Æ¤é¤ì¤Æ¤·¤Þ¤¦¡£ -¥Õ¥¡¥¤¥ë¤¬°ÌÃÖ»ØÄê¥ê¥¯¥¨¥¹¥È¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë -(¥Ç¥£¥¹¥¯¥Õ¥¡¥¤¥ë¤Ê¤É¤¬ÁêÅö¤¹¤ë¡£µÕ¤ÎÎã¤È¤·¤Æ¤ÏüËö¤¬µó¤²¤é¤ì¤ë) ¾ì¹ç¡¢ -¤½¤Î¥¹¥È¥ê¡¼¥à¤ËÏ¢·ë¤µ¤ì¤¿ -.I ¥Õ¥¡¥¤¥ë°ÌÃֻؼ¨»Ò (file position indicator) -¤Ï¡¢Äɲå⡼¥É¤Ç³«¤«¤ì¤Ê¤¤¸Â¤ê¥Õ¥¡¥¤¥ë¤ÎÀèƬ (0 ¥Ð¥¤¥ÈÌÜ) ¤Ë°ÌÃÖ¤¹¤ë¡£ -Äɲå⡼¥É¤ò»ÈÍѤ·¤¿¾ì¹ç¡¢ -°ÌÃֻؼ¨»Ò¤ò¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤ËÃÖ¤«¤ì¤ë¤«ËöÈø¤ËÃÖ¤«¤ì¤ë¤«¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -°ÌÃֻؼ¨»Ò¤Ï¡¢ -°Ê¹ß¤ÎÆɤ߽ñ¤­¤ä°ÌÃÖ»ØÄê¥ê¥¯¥¨¥¹¥È¤Ë¤è¤Ã¤ÆÊѹ¹¤µ¤ì¤ë¡£ -¤¹¤Ù¤Æ¤ÎÆþÎϤϡ¢ +ファイルを +.I オープン (open) する +ことによって、 +ストリームは外部ファイル (通常は物理デバイス) に連結される。 +この操作には新しくファイルを作成することも含まれる。 +既存のファイルと同じ名前のファイルを新たに作ると、 +もとのファイルの中身が捨てられてしまう。 +ファイルが位置指定リクエストをサポートしている +(ディスクファイルなどが相当する。逆の例としては端末が挙げられる) 場合、 +そのストリームに連結された +.I ファイル位置指示子 (file position indicator) +は、追加モードで開かれない限りファイルの先頭 (0 バイト目) に位置する。 +追加モードを使用した場合、 +位置指示子をファイルの先頭に置かれるか末尾に置かれるかは規定されていない。 +位置指示子は、 +以降の読み書きや位置指定リクエストによって変更される。 +すべての入力は、 .BR fgetc (3) -´Ø¿ô¤ò¼¡¡¹¤Ë¸Æ¤Ó½Ð¤·¤Æʸ»ú¤òÆɤ߹þ¤ó¤À¤«¤Î¤è¤¦¤Ë¹Ô¤ï¤ì¤ë¡£ -°ìÊý¤¹¤Ù¤Æ¤Î½ÐÎϤϡ¢ +関数を次々に呼び出して文字を読み込んだかのように行われる。 +一方すべての出力は、 .BR fputc (3) -´Ø¿ô¤ò¼¡¡¹¤Ë¸Æ¤Ó½Ð¤·¤Æʸ»ú¤ò½ñ¤­¹þ¤ó¤À¤«¤Î¤è¤¦¤Ë¹Ô¤ï¤ì¤ë¡£ +関数を次々に呼び出して文字を書き込んだかのように行われる。 .PP -¥Õ¥¡¥¤¥ë¤ò -.I ¥¯¥í¡¼¥º (close) ¤¹¤ë -¤³¤È¤Ë¤è¤Ã¤Æ¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤Ï¥¹¥È¥ê¡¼¥à¤«¤éÀÚ¤êÎ¥¤µ¤ì¤ë¡£ -½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Ï¡¢¤½¤Î¥¹¥È¥ê¡¼¥à¤¬¥Õ¥¡¥¤¥ë¤«¤éÀÚ¤êÎ¥¤µ¤ì¤ëÁ°¤Ë¥Õ¥é¥Ã¥·¥å¤µ¤ì¤ë -(½ñ¤­¹þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¤¹¤Ù¤Æ¤Î¥Ð¥Ã¥Õ¥¡¤ÎÆâÍƤ¬¥Û¥¹¥È´Ä¶­¤ËžÁ÷¤µ¤ì¤ë)¡£ +ファイルを +.I クローズ (close) する +ことによって、そのファイルはストリームから切り離される。 +出力ストリームは、そのストリームがファイルから切り離される前にフラッシュされる +(書き込まれていないすべてのバッファの内容がホスト環境に転送される)。 .I FILE -¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤ÎÃͤϡ¢ -¥Õ¥¡¥¤¥ë¤òÊĤ¸¤¿¸å¤Ç¤ÏÉÔ³ÎÄê¤Ë¤Ê¤ë (¥´¥ß¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦)¡£ +オブジェクトへのポインタの値は、 +ファイルを閉じた後では不確定になる (ゴミになってしまう)。 .PP -¥Õ¥¡¥¤¥ë¤Ï¤½¤Î¸å (Ʊ¤¸¤Þ¤¿¤ÏÊÌ¤Î¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤Æ) -ºÆ¤Ó¥ª¡¼¥×¥ó¤µ¤ì¤ë¤³¤È¤â¤¢¤ê¡¢ -¤½¤ÎÆâÍƤ¬½¤Àµ¤µ¤ì¤¿¤êÊѹ¹¤µ¤ì¤¿¤ê¤¹¤ë -(¤½¤Î¥Õ¥¡¥¤¥ë¤ÇÀèƬ¤Ø¤Î°ÌÃÖ°ÜÆ°¤¬²Äǽ¤Ç¤¢¤ì¤Ð)¡£ -main ´Ø¿ô¤¬¤â¤È¤Î¸Æ¤Ó½Ð¤·Â¦¤ËÊ֤俤ꡢ +ファイルはその後 (同じまたは別のプログラムによって) +再びオープンされることもあり、 +その内容が修正されたり変更されたりする +(そのファイルで先頭への位置移動が可能であれば)。 +main 関数がもとの呼び出し側に返ったり、 .BR exit (3) -´Ø¿ô¤¬¸Æ¤Ð¤ì¤¿¾ì¹ç¡¢ -¥×¥í¥°¥é¥à¤Î½ªÎ»¤ÎÁ°¤Ë -¸½ºß³«¤¤¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤ÏÊĤ¸¤é¤ì¤ë -(¤½¤Î·ë²Ì¡¢¤¹¤Ù¤Æ¤Î½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Ï¥Õ¥é¥Ã¥·¥å¤µ¤ì¤ë)¡£ -¥×¥í¥°¥é¥à¤ÎÄä»ß¤Ë +関数が呼ばれた場合、 +プログラムの終了の前に +現在開いているすべてのファイルは閉じられる +(その結果、すべての出力ストリームはフラッシュされる)。 +プログラムの停止に .BR abort (3) -¤Î¤è¤¦¤Ê¾¤ÎÊýË¡¤òÍѤ¤¤¿¾ì¹ç¤Ë¤Ï¡¢ -¥Õ¥¡¥¤¥ë¤¬Àµ¤·¤¯ÊĤ¸¤é¤ì¤ëÊݾڤϤʤ¤¡£ +のような他の方法を用いた場合には、 +ファイルが正しく閉じられる保証はない。 .PP -¥×¥í¥°¥é¥à¤Îµ¯Æ°»þ¤Ë 3 ¸Ä¤Î¥Æ¥­¥¹¥È¥¹¥È¥ê¡¼¥à¤¬Í½¤áÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ -¤½¤ì¤é¤ÏÌÀ¼¨Åª¤Ë³«¤¯É¬Íפ¬¤Ê¤¤¡£ -.I ɸ½àÆþÎÏ (standard input) -(Ä̾ï¤ÎÆþÎϤòÆɤ߼è¤ë¤Î¤Ë»È¤¦)¡¢ -.I ɸ½à½ÐÎÏ (standard output) -(Ä̾ï¤Î½ÐÎϤò½ñ¤­¹þ¤à¤Î¤Ë»È¤¦)¡¢ -.I ɸ½à¥¨¥é¡¼½ÐÎÏ (standard error) -(¿ÇÃǽÐÎϤò½ñ¤­¹þ¤à¤Î¤Ë»È¤¦) ¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î¥¹¥È¥ê¡¼¥à¤Ï +プログラムの起動時に 3 個のテキストストリームが予め定義されており、 +それらは明示的に開く必要がない。 +.I 標準入力 (standard input) +(通常の入力を読み取るのに使う)、 +.I 標準出力 (standard output) +(通常の出力を書き込むのに使う)、 +.I 標準エラー出力 (standard error) +(診断出力を書き込むのに使う) である。 +これらのストリームは .IR stdin , .IR stdout , .I stderr -¤Èû½Ì¤·¤Æɽ¸½¤µ¤ì¤ë¡£ -¥ª¡¼¥×¥ó¤µ¤ì¤¿¤È¤­¤Ë¤Ï¡¢ -ɸ½à¥¨¥é¡¼¥¹¥È¥ê¡¼¥à¤Ï -´°Á´¤Ë¤Ï¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -ɸ½àÆþÎÏ¥¹¥È¥ê¡¼¥à¤Èɸ½à½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Ï¡¢ -¥¹¥È¥ê¡¼¥à¤¬¥¤¥ó¥¿¥é¥¯¥Æ¥£¥Ö¤Ê¥Ç¥Ð¥¤¥¹¤ò»²¾È¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ -´°Á´¤Ë¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤Æ¤¤¤ë¡£ +と短縮して表現される。 +オープンされたときには、 +標準エラーストリームは +完全にはバッファリングされていない。 +標準入力ストリームと標準出力ストリームは、 +ストリームがインタラクティブなデバイスを参照していなければ、 +完全にバッファリングされている。 .PP -üËö¥Ç¥Ð¥¤¥¹¤ò»²¾È¤¹¤ë½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Ï¡¢ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¾ï¤Ë¹Ôñ°Ì¤Ç¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤Æ¤¤¤ë¡£ -¤¿¤À¤·¤½¤Î¤è¤¦¤Ê¥¹¥È¥ê¡¼¥à¤Ë¤ª¤±¤ë¥Ð¥Ã¥Õ¥¡Æâ¤Î½ÐÎϤϡ¢ -üËö¥Ç¥Ð¥¤¥¹¤ò»²¾È¤·¤Æ¤¤¤ëÆþÎÏ¥¹¥È¥ê¡¼¥à¤«¤é¤ÎÆɤ߹þ¤ß¤¬¤¢¤ë¤¿¤Ó¤Ë¡¢ -¼«Æ°Åª¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£ -½ÐÎÏüËö¤Ë¹Ô¤Î°ìÉô¤ò½ñ¤­¹þ¤ó¤À¸å¤ÇÂçÎ̤η׻»¤ò¹Ô¤¦¾ì¹ç¡¢ -½ÐÎϤ¬É½¼¨¤µ¤ì¤ë¤è¤¦¤Ë¡¢·×»»¤Ë¼è¤ê¤«¤«¤ëÁ°¤Ëɸ½à½ÐÎϤËÂФ·¤Æ +端末デバイスを参照する出力ストリームは、 +デフォルトでは常に行単位でバッファリングされている。 +ただしそのようなストリームにおけるバッファ内の出力は、 +端末デバイスを参照している入力ストリームからの読み込みがあるたびに、 +自動的に書き込まれる。 +出力端末に行の一部を書き込んだ後で大量の計算を行う場合、 +出力が表示されるように、計算に取りかかる前に標準出力に対して .BR fflush (3) -¤ò¼Â¹Ô¤¹¤ëɬÍפ¬¤¢¤ë¡£ +を実行する必要がある。 .PP .I stdio -¥é¥¤¥Ö¥é¥ê¤Ï +ライブラリは .B libc -¥é¥¤¥Ö¥é¥ê¤Î°ìÉô¤Ç¤¢¤ê¡¢¥ë¡¼¥Á¥ó¤Ï -¥³¥ó¥Ñ¥¤¥é¡¼ +ライブラリの一部であり、ルーチンは +コンパイラー .BR cc (1) -¤È +と .BR pc (1) -¤Ë¤è¤Ã¤ÆɬÍפʻþ¤Ë¼«Æ°Åª¤ËÆɤ߹þ¤Þ¤ì¤ë¡£ -¸å½Ò¤¹¤ë man ¥Ú¡¼¥¸Ãæ¤Î¡Ö½ñ¼°¡×¤ÎÀá¤Ë¤Ï¡¢ -¤É¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¡¢ -¤½¤Î´Ø¿ô¤Î¥³¥ó¥Ñ¥¤¥é¡¼Àë¸À¤Ï¤É¤Î¤è¤¦¤Ê¤â¤Î¤«¡¢ -¤É¤Î¤è¤¦¤Ê³°ÉôÊÑ¿ô¤¬´Ø·¸¤¹¤ë¤Î¤«¤¬¼¨¤µ¤ì¤Æ¤¤¤ë¡£ +によって必要な時に自動的に読み込まれる。 +後述する man ページ中の「書式」の節には、 +どのインクルードファイルを使用しなければならないか、 +その関数のコンパイラー宣言はどのようなものか、 +どのような外部変数が関係するのかが示されている。 .PP .BR BUFSIZ , .BR EOF , @@ -182,11 +182,11 @@ main .BR stderr , .BR stdin , .B stdout -¤Ï¥Þ¥¯¥í¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Î̾Á°¤Ï¡¢¸½ºß¤ÎÄêµÁ¤ò +はマクロとして定義されている。 +これらの名前は、現在の定義を .B #undef -¤Çºï½ü¤·¤Ê¤¤¸Â¤ê¡¢ºÆÍøÍѤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -¥Þ¥¯¥í´Ø¿ô¤Î´Ø¿ôÈǤȤ·¤Æ¡¢ +で削除しない限り、再利用することはできない。 +マクロ関数の関数版として、 .BR feof , .BR ferror , .BR clearerr , @@ -195,78 +195,78 @@ main .BR getchar , .BR putc , .B putchar -¤¬¤¢¤ë¡£ -¥Þ¥¯¥í¤ÎÄêµÁ¤¬ÌÀ¼¨Åª¤Ë¾Ãµî¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -¤³¤ì¤é¤ò»ÈÍѤ¹¤ë¤³¤È¤Ë¤Ê¤ë¤À¤í¤¦¡£ -.SS ´Ø¿ô¤Î¥ê¥¹¥È +がある。 +マクロの定義が明示的に消去されている場合には、 +これらを使用することになるだろう。 +.SS 関数のリスト .TS ; lb lb lb l. -´Ø¿ô ÀâÌÀ +関数 説明 _ -clearerr ¥¹¥È¥ê¡¼¥à¤Î¾õÂ֤γÎǧ¤È¥ê¥»¥Ã¥È -fclose ¥¹¥È¥ê¡¼¥à¤ò¥¯¥í¡¼¥º¤¹¤ë -fdopen ¥¹¥È¥ê¡¼¥à¤ò¥ª¡¼¥×¥ó¤¹¤ë -feof ¥¹¥È¥ê¡¼¥à¤Î¾õÂ֤γÎǧ¤È¥ê¥»¥Ã¥È -ferror ¥¹¥È¥ê¡¼¥à¤Î¾õÂ֤γÎǧ¤È¥ê¥»¥Ã¥È -fflush ¥¹¥È¥ê¡¼¥à¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë -fgetc ¼¡¤Îʸ»ú¤Þ¤¿¤Ï¸ì¤òÆþÎÏ¥¹¥È¥ê¡¼¥à¤«¤é³ÍÆÀ¤¹¤ë -fgetpos ¥¹¥È¥ê¡¼¥à¤Î°ÌÃÖ¤ò¼èÆÀ¤¹¤ë -.\"nakano ¢¬¸¶Ê¸°ã¤¦¤Î¤Ç¤Ï? -fgets ¥¹¥È¥ê¡¼¥à¤«¤é¹Ô¤ò¼èÆÀ¤¹¤ë -fileno °ú¤­¿ô¤Ç¤¢¤ë¥¹¥È¥ê¡¼¥à¤ÎÀ°¿ôÃͤΥǥ£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹ -fopen ¥¹¥È¥ê¡¼¥à¤ò¥ª¡¼¥×¥ó¤¹¤ë -fprintf ½ñ¼°ÉÕ¤­½ÐÎÏÊÑ´¹ -fpurge ¥¹¥È¥ê¡¼¥à¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë -fputc ʸ»ú¤Þ¤¿¤Ï¸ì¤ò¥¹¥È¥ê¡¼¥à¤Ë½ÐÎϤ¹¤ë -fputs ¹Ô¤ò¥¹¥È¥ê¡¼¥à¤Ë½ÐÎϤ¹¤ë -fread ¥Ð¥¤¥Ê¥ê¡¼¥¹¥È¥ê¡¼¥àÆþ½ÐÎÏ -freopen ¥¹¥È¥ê¡¼¥à¤ò¥ª¡¼¥×¥ó¤¹¤ë -fscanf ½ñ¼°ÉÕ¤­ÆþÎÏÊÑ´¹ -fseek ¥¹¥È¥ê¡¼¥à¤Î°ÌÃֻؼ¨»Ò¤ò°ÜÆ°¤¹¤ë -fsetpos ¥¹¥È¥ê¡¼¥à¤Î°ÌÃֻؼ¨»Ò¤ò°ÜÆ°¤¹¤ë -ftell ¥¹¥È¥ê¡¼¥à¤Î°ÌÃÖ¤ò¼èÆÀ¤¹¤ë -.\"nakano ¢¬¤³¤ì¤â¡£ -fwrite ¥Ð¥¤¥Ê¥ê¡¼¥¹¥È¥ê¡¼¥àÆþ½ÐÎÏ -getc ¼¡¤Îʸ»ú¤Þ¤¿¤Ï¸ì¤òÆþÎÏ¥¹¥È¥ê¡¼¥à¤«¤é¼èÆÀ¤¹¤ë -getchar ¼¡¤Îʸ»ú¤Þ¤¿¤Ï¸ì¤òÆþÎÏ¥¹¥È¥ê¡¼¥à¤«¤é¼èÆÀ¤¹¤ë -gets ¹Ô¤òÆþÎÏ¥¹¥È¥ê¡¼¥à¤«¤é¼èÆÀ¤¹¤ë -getw ¼¡¤Îʸ»ú¤Þ¤¿¤Ï¸ì¤òÆþÎÏ¥¹¥È¥ê¡¼¥à¤«¤é¼èÆÀ¤¹¤ë -mktemp ¾¤È½Å¤Ê¤é¤Ê¤¤¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë̾¤òºî¤ë -perror ¥·¥¹¥Æ¥à¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸ -printf ½ñ¼°ÉÕ¤­½ÐÎÏÊÑ´¹ -putc ʸ»ú¤Þ¤¿¤Ï¸ì¤ò¥¹¥È¥ê¡¼¥à¤Ë½ÐÎϤ¹¤ë -putchar ʸ»ú¤Þ¤¿¤Ï¸ì¤ò¥¹¥È¥ê¡¼¥à¤Ë½ÐÎϤ¹¤ë -puts ¹Ô¤ò¥¹¥È¥ê¡¼¥à¤Ë½ÐÎϤ¹¤ë -putw ʸ»ú¤Þ¤¿¤Ï¸ì¤ò¥¹¥È¥ê¡¼¥à¤Ë½ÐÎϤ¹¤ë -remove ¥Ç¥£¥ì¥¯¥È¥ê¥¨¥ó¥È¥ê¤òºï½ü¤¹¤ë -rewind ¥¹¥È¥ê¡¼¥à¤Î°ÌÃֻؼ¨»Ò¤ò°ÜÆ°¤¹¤ë -scanf ½ñ¼°ÉÕ¤­ÆþÎÏÊÑ´¹ -setbuf ¥¹¥È¥ê¡¼¥à¤Î¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤ÎÁàºî -setbuffer ¥¹¥È¥ê¡¼¥à¤Î¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤ÎÁàºî -setlinebuf ¥¹¥È¥ê¡¼¥à¤Î¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤ÎÁàºî -setvbuf ¥¹¥È¥ê¡¼¥à¤Î¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤ÎÁàºî -sprintf ½ñ¼°ÉÕ¤­½ÐÎÏÊÑ´¹ -sscanf ½ñ¼°ÉÕ¤­ÆþÎÏÊÑ´¹ -strerror ¥·¥¹¥Æ¥à¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸ -sys_errlist ¥·¥¹¥Æ¥à¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸ -sys_nerr ¥·¥¹¥Æ¥à¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸ -tempnam ¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë¤ÎÁàºî -tmpfile ¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë¤ÎÁàºî -tmpnam ¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë¤ÎÁàºî -ungetc ÆþÎÏ¥¹¥È¥ê¡¼¥à¤Ø 1 ʸ»úÌ᤹¡£ -vfprintf ½ñ¼°ÉÕ¤­½ÐÎÏÊÑ´¹ -vfscanf ½ñ¼°ÉÕ¤­ÆþÎÏÊÑ´¹ -vprintf ½ñ¼°ÉÕ¤­½ÐÎÏÊÑ´¹ -vscanf ½ñ¼°ÉÕ¤­ÆþÎÏÊÑ´¹ -vsprintf ½ñ¼°ÉÕ¤­½ÐÎÏÊÑ´¹ -vsscanf ½ñ¼°ÉÕ¤­ÆþÎÏÊÑ´¹ +clearerr ストリームの状態の確認とリセット +fclose ストリームをクローズする +fdopen ストリームをオープンする +feof ストリームの状態の確認とリセット +ferror ストリームの状態の確認とリセット +fflush ストリームをフラッシュする +fgetc 次の文字または語を入力ストリームから獲得する +fgetpos ストリームの位置を取得する +.\"nakano ↑原文違うのでは? +fgets ストリームから行を取得する +fileno 引き数であるストリームの整数値のディスクリプタを返す +fopen ストリームをオープンする +fprintf 書式付き出力変換 +fpurge ストリームをフラッシュする +fputc 文字または語をストリームに出力する +fputs 行をストリームに出力する +fread バイナリーストリーム入出力 +freopen ストリームをオープンする +fscanf 書式付き入力変換 +fseek ストリームの位置指示子を移動する +fsetpos ストリームの位置指示子を移動する +ftell ストリームの位置を取得する +.\"nakano ↑これも。 +fwrite バイナリーストリーム入出力 +getc 次の文字または語を入力ストリームから取得する +getchar 次の文字または語を入力ストリームから取得する +gets 行を入力ストリームから取得する +getw 次の文字または語を入力ストリームから取得する +mktemp 他と重ならないテンポラリファイル名を作る +perror システムエラーメッセージ +printf 書式付き出力変換 +putc 文字または語をストリームに出力する +putchar 文字または語をストリームに出力する +puts 行をストリームに出力する +putw 文字または語をストリームに出力する +remove ディレクトリエントリを削除する +rewind ストリームの位置指示子を移動する +scanf 書式付き入力変換 +setbuf ストリームのバッファリングの操作 +setbuffer ストリームのバッファリングの操作 +setlinebuf ストリームのバッファリングの操作 +setvbuf ストリームのバッファリングの操作 +sprintf 書式付き出力変換 +sscanf 書式付き入力変換 +strerror システムエラーメッセージ +sys_errlist システムエラーメッセージ +sys_nerr システムエラーメッセージ +tempnam テンポラリファイルの操作 +tmpfile テンポラリファイルの操作 +tmpnam テンポラリファイルの操作 +ungetc 入力ストリームへ 1 文字戻す。 +vfprintf 書式付き出力変換 +vfscanf 書式付き入力変換 +vprintf 書式付き出力変換 +vscanf 書式付き入力変換 +vsprintf 書式付き出力変換 +vsscanf 書式付き入力変換 .TE -.SH ½àµò +.SH 準拠 .I stdio -¥é¥¤¥Ö¥é¥ê¤Ï C89 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +ライブラリは C89 に準拠している。 +.SH 関連項目 .BR close (2), .BR open (2), .BR read (2), diff --git a/release/man3/stdio_ext.3 b/release/man3/stdio_ext.3 index e1c1a68d..3bb56311 100644 --- a/release/man3/stdio_ext.3 +++ b/release/man3/stdio_ext.3 @@ -23,11 +23,11 @@ .\" Japanese Version Copyright (c) 2002 Akihiro MOTOKI all rights reserved. .\" Translated Nov 2 2002 by Akihiro MOTOKI .TH STDIO_EXT 3 2001-12-16 "" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 __fbufsize, __flbf, __fpending, __fpurge, __freadable, __freading, __fsetlocking, __fwritable, __fwriting, _flushlbf \- -ɸ½àÆþ½ÐÎÏ¥Õ¥¡¥¤¥ë¹½Â¤ÂΤؤΥ¤¥ó¥¿¥Õ¥§¡¼¥¹ -.SH ½ñ¼° +標準入出力ファイル構造体へのインタフェース +.SH 書式 .B #include .br .B #include @@ -51,74 +51,74 @@ __freading, __fsetlocking, __fwritable, __fwriting, _flushlbf \- .B "void _flushlbf(void);" .br .BI "void __fpurge(FILE *" stream ); -.SH ÀâÌÀ -Solaris ¤Ç¤Ï¡¢ +.SH 説明 +Solaris では、 .I FILE -¹½Â¤ÂΤÎÆâÉô¤Ø¥Ý¡¼¥¿¥Ö¥ë¤Ê¤«¤¿¤Á¤Ç -¥¢¥¯¥»¥¹¤Ç¤­¤ë¼êÃʤ¬Æ³Æþ¤µ¤ì¤Æ¤ª¤ê¡¢¤³¤ì¤é¤Ï glibc ¤Ç¤â¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +構造体の内部へポータブルなかたちで +アクセスできる手段が導入されており、これらは glibc でも実装されている。 .LP .BR __fbufsize () -´Ø¿ô¤Ï¡¢»ØÄꤵ¤ì¤¿¥¹¥È¥ê¡¼¥à¤¬»ÈÍѤ·¤Æ¤¤¤ë¥Ð¥Ã¥Õ¥¡¡¦¥µ¥¤¥º¤òÊÖ¤¹¡£ +関数は、指定されたストリームが使用しているバッファ・サイズを返す。 .LP .BR __fpending () -´Ø¿ô¤Ï¡¢½ÐÎϥХåե¡¤ËÆþ¤Ã¤Æ¤¤¤ë¥Ç¡¼¥¿¤Î¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -¥ï¥¤¥É¥­¥ã¥é¥¯¥¿¤ò°·¤¦¥¹¥È¥ê¡¼¥à¤Î¾ì¹ç¡¢¥ï¥¤¥É¥­¥ã¥é¥¯¥¿Ã±°Ì¤Ç·×»»¤µ¤ì¤ë¡£ -¥Ð¥Ã¥Õ¥¡¤¬Æɤ߽Ф·¥â¡¼¥É¤Î¾ì¹ç¤äÆɤ߽Ф·ÀìÍѤdz«¤«¤ì¤Æ¤¤¤ë¾ì¹ç¤Î -¤³¤Î´Ø¿ô¤Î¿¶Éñ¤¤¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +関数は、出力バッファに入っているデータのバイト数を返す。 +ワイドキャラクタを扱うストリームの場合、ワイドキャラクタ単位で計算される。 +バッファが読み出しモードの場合や読み出し専用で開かれている場合の +この関数の振舞いは未定義である。 .LP .BR __flbf () -´Ø¿ô¤Ï¡¢¥¹¥È¥ê¡¼¥à¤¬¥é¥¤¥ó¥Ð¥Ã¥Õ¥¡¤Î¾ì¹ç¤Ï 0 °Ê³°¤ò¡¢ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +関数は、ストリームがラインバッファの場合は 0 以外を、 +それ以外の場合は 0 を返す。 .LP .BR __freadable () -´Ø¿ô¤Ï¡¢¥¹¥È¥ê¡¼¥à¤¬Æɤ߽Ф·²Äǽ¤Ê¾ì¹ç¤Ï 0 °Ê³°¤ò¡¢ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +関数は、ストリームが読み出し可能な場合は 0 以外を、 +それ以外の場合は 0 を返す。 .LP .BR __fwritable () -´Ø¿ô¤Ï¡¢¥¹¥È¥ê¡¼¥à¤¬½ñ¤­¹þ¤ß²Äǽ¤Ê¾ì¹ç¤Ï 0 °Ê³°¤ò¡¢ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +関数は、ストリームが書き込み可能な場合は 0 以外を、 +それ以外の場合は 0 を返す。 .LP .BR __freading () -´Ø¿ô¤Ï¡¢¥¹¥È¥ê¡¼¥à¤¬Æɤ߽Ф·ÀìÍѤξì¹ç¡¢¤Þ¤¿¤Ï¥¹¥È¥ê¡¼¥à¤ËÂФ¹¤ëľÁ°¤ÎÁàºî¤¬ -Æɤ߽Ф·Áàºî¤Ç¤¢¤Ã¤¿¾ì¹ç¤Ï 0 °Ê³°¤òÊÖ¤·¡¢¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +関数は、ストリームが読み出し専用の場合、またはストリームに対する直前の操作が +読み出し操作であった場合は 0 以外を返し、それ以外の場合は 0 を返す。 .LP .BR __fwriting () -´Ø¿ô¤Ï¡¢¥¹¥È¥ê¡¼¥à¤¬½ñ¤­¹þ¤ßÀìÍÑ(¤â¤·¤¯¤ÏÄɲÃÀìÍÑ)¤Î¾ì¹ç¡¢ -¤Þ¤¿¤Ï¥¹¥È¥ê¡¼¥à¤ËÂФ¹¤ëľÁ°¤ÎÁàºî¤¬½ñ¤­¹þ¤ßÁàºî¤Ç¤¢¤Ã¤¿¾ì¹ç¤Ï 0 °Ê³°¤òÊÖ¤·¡¢ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +関数は、ストリームが書き込み専用(もしくは追加専用)の場合、 +またはストリームに対する直前の操作が書き込み操作であった場合は 0 以外を返し、 +それ以外の場合は 0 を返す。 .LP .BR __fsetlocking () -´Ø¿ô¤Ï¡¢¥¹¥È¥ê¡¼¥à¤Î¥í¥Ã¥¯·Á¼°¤òÁªÂò¤¹¤ë¤¿¤á¤Ë»ÈÍѤǤ­¤ë¡£ -ÊÖ¤êÃͤϡ¢¸½ºß¤Î¥í¥Ã¥¯·Á¼°¤Ç¤¢¤ë¡£ +関数は、ストリームのロック形式を選択するために使用できる。 +返り値は、現在のロック形式である。 .I type -°ú¤­¿ô¤Ï°Ê²¼¤Î 3 ¼ïÎà¤ÎÃͤò¤È¤ë¤³¤È¤¬¤Ç¤­¤ë : +引き数は以下の 3 種類の値をとることができる : .TP .B FSETLOCKING_INTERNAL -»ØÄꤵ¤ì¤¿¥¹¥È¥ê¡¼¥à¤ËÂФ·¤ÆÁàºî¤¬¹Ô¤ï¤ì¤ëÅ٤ˡ¢Áàºî¤ÎÁ°¸å¤Ç -ÌÀ¼¨Åª¤Ë»Ø¼¨¤·¤Ê¤¯¤Æ¤â¥¹¥È¥ê¡¼¥à¤Î¥í¥Ã¥¯½èÍý¤ò¹Ô¤¦ -(⤷¡¢*_unlocked ´Ø¿ô¤ò»ÈÍѤ·¤¿¾ì¹ç¤ÏÎã³°¤Ç¤¢¤ë)¡£ -¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Î¥í¥Ã¥¯·Á¼°¤Ç¤¢¤ë¡£ +指定されたストリームに対して操作が行われる度に、操作の前後で +明示的に指示しなくてもストリームのロック処理を行う +(但し、*_unlocked 関数を使用した場合は例外である)。 +これがデフォルトのロック形式である。 .TP .B FSETLOCKING_BYCALLER -´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¸µ¤Ç¥í¥Ã¥¯¤ÎÌÌÅݤò¤ß¤ë¡£ -(¤ª¤½¤é¤¯¡¢Ê£¿ô¤Î¥¹¥ì¥Ã¥É¤¬Â¸ºß¤¹¤ë¾õ¶·¤Ç¤Ï +関数の呼び出し元でロックの面倒をみる。 +(おそらく、複数のスレッドが存在する状況では .BR flockfile (3) -¤ò»È¤¦¤³¤È¤Ë¤Ê¤ë¤À¤í¤¦) -¥í¥Ã¥¯·Á¼°¤¬ +を使うことになるだろう) +ロック形式が .B FSETLOCKING_INTERNAL -¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë¤Þ¤Ç¤Ïɸ½àÆþ½ÐÎÏ´ØÏ¢¤Î´Ø¿ô¤Ï¥í¥Ã¥¯½èÍý¤ò¹Ô¤ï¤Ê¤¤¡£ +にリセットされるまでは標準入出力関連の関数はロック処理を行わない。 .TP .B FSETLOCKING_QUERY -¥í¥Ã¥¯·Á¼°¤ÎÊѹ¹¤ò¹Ô¤ï¤Ê¤¤¡£(¸½ºß¤Î·Á¼°¤òÊÖ¤¹¤À¤±¤Ç¤¢¤ë) +ロック形式の変更を行わない。(現在の形式を返すだけである) .LP .BR _flushlbf () -´Ø¿ô¤Ï¡¢¤¹¤Ù¤Æ¤Î¥é¥¤¥ó¥Ð¥Ã¥Õ¥¡ (line-buffered) ¥¿¥¤¥×¤Î¥¹¥È¥ê¡¼¥à¤Î -ÆâÍƤò½ÐÎÏ(¥Õ¥é¥Ã¥·¥å)¤¹¤ë¡£ -(ÅöÁ³¤Ê¤¬¤é¡¢Ã¼Ëö¤Ø¤Î½ÐÎϤ¬¶¯À©Åª¤Ë¹Ô¤ï¤ì¤ë¤³¤È¤Ë¤Ê¤ë¤Î¤Ç¡¢ -¥­¡¼¥Ü¡¼¥É¤«¤é¤ÎÆþÎϤòÆɤߤ³¤àÁ°¤Ë¤³¤Î´Ø¿ô¤ò¸Æ¤ó¤ÀÊý¤¬¤¤¤¤¤À¤í¤¦) +関数は、すべてのラインバッファ (line-buffered) タイプのストリームの +内容を出力(フラッシュ)する。 +(当然ながら、端末への出力が強制的に行われることになるので、 +キーボードからの入力を読みこむ前にこの関数を呼んだ方がいいだろう) .LP .BR __fpurge () -´Ø¿ô¤Ï¡¢¥¹¥È¥ê¡¼¥à¤Î¥Ð¥Ã¥Õ¥¡¤ÎÆâÍƤòÇÑ´þ¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +関数は、ストリームのバッファの内容を廃棄する。 +.SH 関連項目 .BR flockfile (3), .BR fpurge (3) diff --git a/release/man3/stpcpy.3 b/release/man3/stpcpy.3 index 4bf5e5f7..fe467e62 100644 --- a/release/man3/stpcpy.3 +++ b/release/man3/stpcpy.3 @@ -28,9 +28,9 @@ .\" the source, must acknowledge the copyright and authors of this work. .\" .TH STPCPY 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -stpcpy \- ʸ»úÎó¤ò¥³¥Ô¡¼¤·¡¢¥³¥Ô¡¼¤·¤¿Ê¸»úÎó¤Î½ª¤ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹ -.SH ½ñ¼° +.SH 名前 +stpcpy \- 文字列をコピーし、コピーした文字列の終りへのポインタを返す +.SH 書式 .nf .B #include .sp @@ -38,9 +38,9 @@ stpcpy \- ʸ .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR stpcpy (): @@ -48,36 +48,36 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR stpcpy () -´Ø¿ô¤Ï¡¢\fIsrc\fP ¤Ç»Ø¤µ¤ì¤¿Ê¸»úÎó¤ò (ʸ»úÎó¤ò½ªÃ¼¤¹¤ë NULL ¥Ð¥¤¥È -(\(aq\\0\(aq) ¤ò´Þ¤á¤Æ) \fIdest\fP ¤Ç»Ø¤µ¤ì¤¿ÇÛÎó¤Ë¥³¥Ô¡¼¤¹¤ë¡£ -ʸ»úÎó¤Ï½ÅÊ£¤·¤Æ¤Ï¤Ê¤é¤º¡¢¥³¥Ô¡¼Àè¤Îʸ»úÎó \fIdest\fP ¤Ï¥³¥Ô¡¼¤ò¼õ¤±¼è¤ë -¤Î¤Ë½½Ê¬Â礭¤¯¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +関数は、\fIsrc\fP で指された文字列を (文字列を終端する NULL バイト +(\(aq\\0\(aq) を含めて) \fIdest\fP で指された配列にコピーする。 +文字列は重複してはならず、コピー先の文字列 \fIdest\fP はコピーを受け取る +のに十分大きくなくてはならない。 +.SH 返り値 .BR stpcpy () -¤Ï¡¢Ê¸»úÎó \fIdest\fP ¤Î»Ï¤Þ¤ê¤Ç¤Ï¤Ê¤¯ -\fB½ª¤ê\fP¤ò»Ø¤¹¥Ý¥¤¥ó¥¿ (¤¹¤Ê¤ï¤Á¡¢Ê¸»úÎó¤ò½ªÃ¼¤¹¤ë NULL ¥Ð¥¤¥È) ¤òÊÖ¤¹¡£ -.SH ½àµò -¤³¤Î´Ø¿ô¤Ï POSIX.1-2008 ¤ËÄɲ䵤줿¡£ -¤½¤ì°ÊÁ°¤Ï¡¢¤³¤Î´Ø¿ô¤Ï C ¤ä POSIX.1 ɸ½à¤Î°ìÉô¤Ç¤â -UNIX ¥·¥¹¥Æ¥à¤Î´·½¬Åª¤Ê¤â¤Î¤Ç¤â¤Ê¤«¤Ã¤¿¤¬¡¢ -GNU ¤ÎȯÌÀ¤È¤¤¤¦¤ï¤±¤Ç¤â¤Ê¤«¤Ã¤¿¡£ -¤Ò¤ç¤Ã¤È¤·¤¿¤é MS-DOS ͳÍè¤Î¤â¤Î¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤Î´Ø¿ô¤Ï BSD ·Ï¤Ë¤â¸ºß¤¹¤ë¡£ -.SH Îã -Îã¤È¤·¤Æ¡¢¤³¤Î¥×¥í¥°¥é¥à¤Ï \fBfoo\fP ¤È \fBbar\fP ¤òÏ¢·ë¤·¤Æ \fBfoobar\fP -¤òºî¤ë¤¿¤á¤Ë +は、文字列 \fIdest\fP の始まりではなく +\fB終り\fPを指すポインタ (すなわち、文字列を終端する NULL バイト) を返す。 +.SH 準拠 +この関数は POSIX.1-2008 に追加された。 +それ以前は、この関数は C や POSIX.1 標準の一部でも +UNIX システムの慣習的なものでもなかったが、 +GNU の発明というわけでもなかった。 +ひょっとしたら MS-DOS 由来のものかもしれない。 +この関数は BSD 系にも存在する。 +.SH 例 +例として、このプログラムは \fBfoo\fP と \fBbar\fP を連結して \fBfoobar\fP +を作るために .BR stpcpy () -¤ò»ÈÍѤ·¡¢¤½¤Î¸åɽ¼¨¤¹¤ë¡£ +を使用し、その後表示する。 .in +4n .nf @@ -97,11 +97,11 @@ main(void) } .fi .in -.SH ¥Ð¥° -¤³¤Î´Ø¿ô¤Ï¥Ð¥Ã¥Õ¥¡ +.SH バグ +この関数はバッファ .I dest -¤ÎÈϰϤò¹Ô¤­²á¤®¤Æ¤·¤Þ¤¦²ÄǽÀ­¤¬¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +の範囲を行き過ぎてしまう可能性がある。 +.SH 関連項目 .BR bcopy (3), .BR memccpy (3), .BR memcpy (3), diff --git a/release/man3/stpncpy.3 b/release/man3/stpncpy.3 index d27c2be2..c8dd8125 100644 --- a/release/man3/stpncpy.3 +++ b/release/man3/stpncpy.3 @@ -16,9 +16,9 @@ .\" by HANATAKA Shinya .\" .TH STPNCPY 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -stpncpy \- ¸ÇÄêŤÎʸ»úÎó¤ò¥³¥Ô¡¼¤·¤Æ¡¢¤½¤ÎºÇ¸å¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹ -.SH ½ñ¼° +.SH 名前 +stpncpy \- 固定長の文字列をコピーして、その最後へのポインターを返す +.SH 書式 .nf .B #include .sp @@ -26,9 +26,9 @@ stpncpy \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR stpncpy (): @@ -36,34 +36,34 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR stpncpy () -´Ø¿ô¤Ï \fIsrc\fP ¤¬»Ø¤·¤Æ¤¤¤ëʸ»úÎ󤫤齪ü¤Î NULL ¥Ð¥¤¥È (\(aq\\0\(aq) -¤ò´Þ¤á¤ÆºÇÂç \fIn\fP ¥Ð¥¤¥È¤ò \fIdest\fP ¤Ë¥³¥Ô¡¼¤¹¤ë¡£Ä¹¤µ -\fIstrlen(src)\fP ¤¬ \fIn\fP ¤è¤ê¾®¤µ¤¤¾ì¹ç¤Ë¤Ï \fIdest\fP ¤Î»Ä¤ê¤Î -Éôʬ¤Ë¤Ï NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ʸ»ú¤¬Ëä¤á¤é¤ì¤ë¡£ -Ťµ \fIstrlen(src)\fP ¤¬ \fIn\fP °Ê¾å¤Ê¤é¤Ð¡¢ -\fIdest\fP ¤¬»Ø¤¹Ê¸»úÎó¤Ï NULL ¤Ç½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +関数は \fIsrc\fP が指している文字列から終端の NULL バイト (\(aq\\0\(aq) +を含めて最大 \fIn\fP バイトを \fIdest\fP にコピーする。長さ +\fIstrlen(src)\fP が \fIn\fP より小さい場合には \fIdest\fP の残りの +部分には NULL バイト (\(aq\\0\(aq) 文字が埋められる。 +長さ \fIstrlen(src)\fP が \fIn\fP 以上ならば、 +\fIdest\fP が指す文字列は NULL で終端されていない。 .PP -Æó¤Ä¤Îʸ»úÎó¤Ï½Å¤Ê¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +二つの文字列は重なってはならない。 .PP -¥×¥í¥°¥é¥Þ¡¼¤Ï \fIdest\fP ¤Ë¾¯¤Ê¤¯¤È¤â \fIn\fP ¥Ð¥¤¥È¤Î¶õ¤­¤¬¤¢¤ë¤³¤È¤ò -Êݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +プログラマーは \fIdest\fP に少なくとも \fIn\fP バイトの空きがあることを +保証しなければならない。 +.SH 返り値 .BR stpncpy () -¤Ï \fIdest\fP ¤Î½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¤«¡¢ -\fIdest\fP ¤¬ NULL ¥Ð¥¤¥È¤Ç½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï \fIdest + n\fP ¤òÊÖ¤¹¡£ -.SH ½àµò -¤³¤Î´Ø¿ô¤Ï POSIX.1-2008 ¤ËÄɲ䵤줿¡£ -¤½¤ì°ÊÁ°¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤Ã¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +は \fIdest\fP の終端の NULL バイトを指すポインターを返すか、 +\fIdest\fP が NULL バイトで終端されていない場合には \fIdest + n\fP を返す。 +.SH 準拠 +この関数は POSIX.1-2008 に追加された。 +それ以前は GNU による拡張であった。 +.SH 関連項目 .BR strncpy (3), .BR wcpncpy (3) diff --git a/release/man3/strcasecmp.3 b/release/man3/strcasecmp.3 index 34cb7bc1..ba33f578 100644 --- a/release/man3/strcasecmp.3 +++ b/release/man3/strcasecmp.3 @@ -32,9 +32,9 @@ .\" by HIROFUMI Nishizuka .\" .TH STRCASECMP 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -strcasecmp, strncasecmp \- Æó¤Ä¤Îʸ»úÎó¤òÂçʸ»ú¾®Ê¸»ú¤ò¶èÊ̤»¤ºÈæ³Ó¤¹¤ë -.SH ½ñ¼° +.SH 名前 +strcasecmp, strncasecmp \- 二つの文字列を大文字小文字を区別せず比較する +.SH 書式 .nf .B #include .sp @@ -42,26 +42,26 @@ strcasecmp, strncasecmp \- .sp .BI "int strncasecmp(const char *" s1 ", const char *" s2 ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .BR strcasecmp () -´Ø¿ô¤Ï¡¢Æó¤Ä¤Îʸ»úÎó¡¡\fIs1\fP ¤È \fIs2\fP ¤ò¡¢ -Âçʸ»ú¾®Ê¸»ú¤ò¶èÊ̤»¤º¤ËÈæ³Ó¤¹¤ë¡£ -\fIs1\fP ¤¬ \fIs2\fP ¤è¤ê¤â¾®¤µ¤¤¤«¡¢Æ±¤¸¤«¡¢Â礭¤¤¤«¤Ë¤è¤Ã¤Æ¤½¤ì¤¾¤ì -Éé¤ÎÀ°¿ô¡¢0¡¢Àµ¤ÎÀ°¿ô¤òÊÖ¤¹¡£ +関数は、二つの文字列 \fIs1\fP と \fIs2\fP を、 +大文字小文字を区別せずに比較する。 +\fIs1\fP が \fIs2\fP よりも小さいか、同じか、大きいかによってそれぞれ +負の整数、0、正の整数を返す。 .PP .BR strncasecmp () -´Ø¿ô¤âƱÍͤǤ¢¤ë¤¬¡¢ -\fIs1\fP ¤ÎºÇ½é¤Î \fIn\fP ʸ»ú¤À¤±¤òÈæ³Ó¤¹¤ëÅÀ¤À¤±¤¬°Û¤Ê¤ë¡£ -.SH ÊÖ¤êÃÍ +関数も同様であるが、 +\fIs1\fP の最初の \fIn\fP 文字だけを比較する点だけが異なる。 +.SH 返り値 .BR strcasecmp () -¤È +と .BR strncasecmp () -´Ø¿ô¤Ï¡¢\fIs1\fP -(¤Þ¤¿¤Ï¡¢¤½¤ÎºÇ½é¤Î \fIn\fP ¥Ð¥¤¥È)¤¬ \fIs2\fP ¤è¤ê¤â¾®¤µ¤¤¤«¡¢ -Ʊ¤¸¤«¡¢Â礭¤¤¤«¤Ë¤è¤ê¡¢¤½¤ì¤¾¤ìÉé¤ÎÀ°¿ô¡¢0¡¢Àµ¤ÎÀ°¿ô¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIs1\fP +(または、その最初の \fIn\fP バイト)が \fIs2\fP よりも小さいか、 +同じか、大きいかにより、それぞれ負の整数、0、正の整数を返す。 +.SH 準拠 4.4BSD, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bcmp (3), .BR memcmp (3), .BR strcmp (3), diff --git a/release/man3/strcat.3 b/release/man3/strcat.3 index b0a98fed..d3f0488c 100644 --- a/release/man3/strcat.3 +++ b/release/man3/strcat.3 @@ -37,9 +37,9 @@ .\" Updated 2007-07-04, Akihiro MOTOKI , LDP v2.58 .\" .TH STRCAT 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -strcat, strncat \- Æó¤Ä¤Îʸ»úÎó¤òÏ¢·ë¤¹¤ë -.SH ½ñ¼° +.SH 名前 +strcat, strncat \- 二つの文字列を連結する +.SH 書式 .nf .B #include .sp @@ -47,35 +47,35 @@ strcat, strncat \- .sp .BI "char *strncat(char *" dest ", const char *" src ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .BR strcat () -´Ø¿ô¤Ï¡¢\fIdest\fP ʸ»úÎó¤Î¸å¤Ë \fIsrc\fP ʸ»úÎó¤òÉÕ¤±²Ã¤¨¤ë¡£ -¤½¤ÎºÝ¤Ë¡¢\fIdest\fP ¤ÎºÇ¸å¤Ë¤¢¤ë½ªÃ¼¤Î NULL ¥Ð¥¤¥È (\(aq\\0\(aq) -¤Ï¾å½ñ¤­¤µ¤ì¡¢¿·¤¿¤ËÀ¸À®¤µ¤ì¤¿Ê¸»úÎó¤ÎËöÈø¤Ë½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤¬ÉÕÍ¿¤µ¤ì¤ë¡£ -Æó¤Ä¤Îʸ»úÎó \fIsrc\fP ¤È \fIdest\fP ¤Ï½Å¤Ê¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -¤Þ¤¿¡¢Ê¸»úÎó \fIdest\fP ¤Ï¡¢Ï¢·ë¸å¤Î·ë²Ì¤ò³ÊǼ¤¹¤ë¤Î¤Ë -½½Ê¬¤ÊÂ礭¤µ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +関数は、\fIdest\fP 文字列の後に \fIsrc\fP 文字列を付け加える。 +その際に、\fIdest\fP の最後にある終端の NULL バイト (\(aq\\0\(aq) +は上書きされ、新たに生成された文字列の末尾に終端の NULL バイトが付与される。 +二つの文字列 \fIsrc\fP と \fIdest\fP は重なってはならない。 +また、文字列 \fIdest\fP は、連結後の結果を格納するのに +十分な大きさでなければならない。 .PP .BR strncat () -¤âƱÍͤÀ¤¬¡¢°Ê²¼¤ÎÅÀ¤¬°Û¤Ê¤ë¡£ +も同様だが、以下の点が異なる。 .IP * 3 -\fIsrc\fP ¤Î¤¦¤ÁºÇÂç \fIn\fP ʸ»ú¤¬»ÈÍѤµ¤ì¤ë¡£ +\fIsrc\fP のうち最大 \fIn\fP 文字が使用される。 .IP * -\fIsrc\fP ¤¬ \fIn\fP ʸ»ú°Ê¾å¤Î¾ì¹ç¡¢ -\fIsrc\fP ¤Ï NULL ½ªÃ¼¤µ¤ì¤Æ¤¤¤ëɬÍפϤʤ¤¡£ +\fIsrc\fP が \fIn\fP 文字以上の場合、 +\fIsrc\fP は NULL 終端されている必要はない。 .PP .BR strcat () -¤ÈƱ¤¸¤¯¡¢\fIdest\fP ¤Ë³ÊǼ¤µ¤ì¤ë·ë²Ì¤Îʸ»úÎó¤Ï¾ï¤Ë NULL ½ªÃ¼¤µ¤ì¤ë¡£ +と同じく、\fIdest\fP に格納される結果の文字列は常に NULL 終端される。 .PP -\fIsrc\fP ¤¬ \fIn\fP ʸ»ú°Ê¾å¤Î¾ì¹ç¡¢ +\fIsrc\fP が \fIn\fP 文字以上の場合、 .BR strncat () -¤Ï \fIdest\fP ¤Ë \fIn+1\fP ʸ»ú¤ò½ñ¤­¹þ¤à -(\fIsrc\fP ¤«¤é¤Î \fIn\fP ʸ»ú¤È½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤Ç¤¢¤ë)¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢\fIdest\fP ¤ÎÂ礭¤µ¤ÏºÇÄã¤Ç¤â -\fIstrlen(dest)+n+1\fP ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は \fIdest\fP に \fIn+1\fP 文字を書き込む +(\fIsrc\fP からの \fIn\fP 文字と終端の NULL バイトである)。 +したがって、\fIdest\fP の大きさは最低でも +\fIstrlen(dest)+n+1\fP でなければならない。 .BR strncat () -¤Î´Êñ¤Ê¼ÂÁõ¤Ï°Ê²¼¤Î¤è¤¦¤Ê´¶¤¸¤Ç¤¢¤í¤¦: +の簡単な実装は以下のような感じであろう: .in +4n .nf @@ -93,15 +93,15 @@ strncat(char *dest, const char *src, size_t n) } .fi .in -.SH ÊÖ¤êÃÍ +.SH 返り値 .BR strcat () -´Ø¿ô¤È +関数と .BR strncat () -´Ø¿ô¤Ï¡¢·ë²Ì¤È¤·¤Æ¤Ç¤­¤ëʸ»úÎó -\fIdest\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、結果としてできる文字列 +\fIdest\fP へのポインタを返す。 +.SH 準拠 SVr4, 4.3BSD, C89, C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bcopy (3), .BR memccpy (3), .BR memcpy (3), diff --git a/release/man3/strchr.3 b/release/man3/strchr.3 index 5f76cead..650fcd1f 100644 --- a/release/man3/strchr.3 +++ b/release/man3/strchr.3 @@ -37,9 +37,9 @@ .\" Updated 2006-07-20, Akihiro MOTOKI .\" .TH STRCHR 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -strchr, strrchr, strchrnul \- ʸ»úÎóÃæ¤Îʸ»ú¤Î°ÌÃÖ¤òÆÃÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +strchr, strrchr, strchrnul \- 文字列中の文字の位置を特定する +.SH 書式 .nf .B #include .sp @@ -47,51 +47,51 @@ strchr, strrchr, strchrnul \- ʸ .sp .BI "char *strrchr(const char *" s ", int " c ); .sp -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "char *strchrnul(const char *" s ", int " c ); .fi -.SH ÀâÌÀ +.SH 説明 .BR strchr () -´Ø¿ô¤Ï¡¢Ê¸»úÎó \fIs\fP Ãæ¤ËºÇ½é¤Ëʸ»ú \fIc\fP -¤¬¸½¤ì¤¿°ÌÃ֤ؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ +関数は、文字列 \fIs\fP 中に最初に文字 \fIc\fP +が現れた位置へのポインタを返す。 .PP .BR strrchr () -´Ø¿ô¤Ï¡¢Ê¸»úÎó \fIs\fP Ãæ¤ËºÇ¸å¤Ëʸ»ú \fIc\fP -¤¬¸½¤ì¤¿°ÌÃ֤ؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£ +関数は、文字列 \fIs\fP 中に最後に文字 \fIc\fP +が現れた位置へのポインタを返す。 .PP .BR strchrnul () -´Ø¿ô¤Ï +関数は .BR strchr () -¤ÈƱÍͤÀ¤¬¡¢ -\fIc\fP ¤¬ \fIs\fP Ãæ¤Ë¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¡¢ÊÖ¤êÃͤȤ·¤Æ -NULL ¤Ç¤Ê¤¯¡¢\fIs\fP ¤ÎËöÈø¤Î¥Ì¥ë¥Ð¥¤¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹ÅÀ¤¬°Û¤Ê¤ë¡£ +と同様だが、 +\fIc\fP が \fIs\fP 中に見つからなかった場合に、返り値として +NULL でなく、\fIs\fP の末尾のヌルバイトへのポインタを返す点が異なる。 .PP -¤³¤³¤Ç¤¤¤¦¡Öʸ»ú¡×¤Ï¡Ö¥Ð¥¤¥È¡×¤Î°ÕÌ£¤Ê¤Î¤Ç¡¢ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¥ï¥¤¥Éʸ»ú¤ä¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤Ç¤ÏÆ°ºî¤·¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +ここでいう「文字」は「バイト」の意味なので、 +これらの関数はワイド文字やマルチバイト文字では動作しない。 +.SH 返り値 .BR strchr () -¤È +と .BR strrchr () -´Ø¿ô¤Ï°ìÃפ·¤¿Ê¸»ú¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò -ÊÖ¤·¡¢¤â¤·Ê¸»ú¤¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +関数は一致した文字へのポインタを +返し、もし文字が見つからない場合は NULL を返す。 .BR strchrnul () -´Ø¿ô¤Ï°ìÃפ·¤¿Ê¸»ú¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -ʸ»ú¤¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï¡¢\fIs\fP ¤ÎËöÈø¤Î¥Ì¥ë¥Ð¥¤¥È¤Ø¤Î -¥Ý¥¤¥ó¥¿ (¤Ä¤Þ¤ê \fIs+strlen(s)\fP) ¤òÊÖ¤¹¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +関数は一致した文字へのポインタを返す。 +文字が見つからない場合は、\fIs\fP の末尾のヌルバイトへの +ポインタ (つまり \fIs+strlen(s)\fP) を返す。 +.SH バージョン .BR strchrnul () -¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +は glibc バージョン 2.1.1 で初めて登場した。 +.SH 準拠 .BR strchr () -¤È +と .BR strrchr () -¤Ï SVr4, 4.3BSD, C89, C99 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +は SVr4, 4.3BSD, C89, C99 に準拠している。 .BR strchrnul () -¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +は GNU 拡張である。 +.SH 関連項目 .BR index (3), .BR memchr (3), .BR rindex (3), diff --git a/release/man3/strcmp.3 b/release/man3/strcmp.3 index c2b860f7..8116d665 100644 --- a/release/man3/strcmp.3 +++ b/release/man3/strcmp.3 @@ -34,9 +34,9 @@ .\" Updated Fri Oct 12 JST 2001 by Akihiro MOTOKI .\" .TH STRCMP 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -strcmp, strncmp \- Æó¤Ä¤Îʸ»úÎó¤òÈæ¤Ù¤ë -.SH ½ñ¼° +.SH 名前 +strcmp, strncmp \- 二つの文字列を比べる +.SH 書式 .nf .B #include .sp @@ -44,27 +44,27 @@ strcmp, strncmp \- .sp .BI "int strncmp(const char *" s1 ", const char *" s2 ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .BR strcmp () -´Ø¿ô¤ÏÆó¤Ä¤Îʸ»úÎó \fIs1\fP ¤È \fIs2\fP ¤ò³Ó¤Ù¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢ -\fIs1\fP ¤¬ \fIs2\fP ¤Ë³Ó¤Ù¤Æ 1)¾®¤µ¤¤¡¢2)Åù¤·¤¤¡¢3)Â礭¤¤¾ì¹ç¤Ë¡¢ -¥¼¥í¤è¤ê¤â 1)¾®¤µ¤¤¡¢2)Åù¤·¤¤¡¢3)Â礭¤¤À°¿ô¤òÊÖ¤¹¡£ +関数は二つの文字列 \fIs1\fP と \fIs2\fP を較べる。 +この関数は、 +\fIs1\fP が \fIs2\fP に較べて 1)小さい、2)等しい、3)大きい場合に、 +ゼロよりも 1)小さい、2)等しい、3)大きい整数を返す。 .PP .BR strncmp () -´Ø¿ô¤Ï¡¢\fIs1\fP ¤È \fIs2\fP ¤ÎºÇ½é¤Î -\fIn\fP ʸ»ú¤À¤±¤òÈæ³Ó¤¹¤ë¤³¤È¤ò½ü¤±¤Ð¡¢strcmp()¤ÈƱÍͤǤ¢¤ë¡£ -.SH ÊÖ¤êÃÍ +関数は、\fIs1\fP と \fIs2\fP の最初の +\fIn\fP 文字だけを比較することを除けば、strcmp()と同様である。 +.SH 返り値 .BR strcmp () -´Ø¿ô¤È +関数と .BR strncmp () -´Ø¿ô¤ÏÀ°¿ô¤òÊÖ¤¹¡£ -¤³¤ÎÀ°¿ô¤Ï¡¢¥¼¥í¤è¤ê¤â¡¢1)¾®¤µ¤¤¡¢2)Åù¤·¤¤¡¢3)Â礭¤¤¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¡£ -¤½¤ì¤¾¤ì¤Ï¡¢\fIs1\fP¡Ê¤Þ¤¿¤Ï¡¢¤³¤Îʸ»úÎó¤ÎºÇ½é¤Î \fIn\fP ¥Ð¥¤¥È¡Ë¤¬ -\fIs2\fP ¤è¤ê¤â¡¢1)¾®¤µ¤¤¡¢2)Åù¤·¤¤¡¢3)Â礭¤¤¤ËÂбþ¤·¤Æ¤¤¤ë¡£ -.SH ½àµò +関数は整数を返す。 +この整数は、ゼロよりも、1)小さい、2)等しい、3)大きいのいずれかである。 +それぞれは、\fIs1\fP(または、この文字列の最初の \fIn\fP バイト)が +\fIs2\fP よりも、1)小さい、2)等しい、3)大きいに対応している。 +.SH 準拠 SVr4, 4.3BSD, C89, C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bcmp (3), .BR memcmp (3), .BR strcasecmp (3), diff --git a/release/man3/strcoll.3 b/release/man3/strcoll.3 index 9e079b4a..77053b90 100644 --- a/release/man3/strcoll.3 +++ b/release/man3/strcoll.3 @@ -32,36 +32,36 @@ .\" Modified 2007-05-28, Akihiro MOTOKI , LDP v2.48 .\" .TH STRCOLL 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -strcoll \- ¸½ºß¤Î¥í¥±¡¼¥ë¤ò»ÈÍѤ·¤ÆÆó¤Ä¤Îʸ»úÎó¤òÈæ³Ó¤¹¤ë -.SH ½ñ¼° +.SH 名前 +strcoll \- 現在のロケールを使用して二つの文字列を比較する +.SH 書式 .nf .B #include .sp .BI "int strcoll(const char *" s1 ", const char *" s2 ); .fi -.SH ÀâÌÀ -\fbstrcoll\fP() ´Ø¿ô¤ÏÆó¤Ä¤Îʸ»úÎó \fIs1\fP ¤È \fIs2\fP ¤òÈæ³Ó¤¹¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIs1\fP ¤¬ \fIs2\fP ¤è¤ê¤â¾®¤µ¤¤¤«¡¢Åù¤·¤¤¤«¡¢Â礭¤¤¤«¤Ë¤è¤Ã¤Æ -¤½¤ì¤¾¤ìÉé¤ÎÀ°¿ô¡¢0¡¢Àµ¤ÎÀ°¿ô¤òÊÖ¤¹¡£ -Èæ³Ó¤Ï¡¢¥×¥í¥°¥é¥à¤Î¸½ºß¤Î¥í¥±¡¼¥ë¤Î \fBLC_COLLATE\fP ¥«¥Æ¥´¥ê¤Ë±þ¤¸¤Æ -²ò¼á¤µ¤ì¤¿Ê¸»úÎó¤Ë´ð¤Å¤¤¤Æ¹Ô¤ï¤ì¤ë +.SH 説明 +\fbstrcoll\fP() 関数は二つの文字列 \fIs1\fP と \fIs2\fP を比較する。 +この関数は、\fIs1\fP が \fIs2\fP よりも小さいか、等しいか、大きいかによって +それぞれ負の整数、0、正の整数を返す。 +比較は、プログラムの現在のロケールの \fBLC_COLLATE\fP カテゴリに応じて +解釈された文字列に基づいて行われる .RB ( setlocale (3) -»²¾È)¡£ -.SH ÊÖ¤êÃÍ +参照)。 +.SH 返り値 .BR strcoll () -´Ø¿ô¤Ï¡¢\fIs1\fP ¤¬ \fIs2\fP ¤è¤ê¤â¾®¤µ¤¤¤«¡¢Åù¤·¤¤¤«¡¢ -Â礭¤¤¤«¤Ë¤è¤Ã¤Æ¡¢¤½¤ì¤¾¤ìÉé¤ÎÀ°¿ô¡¢0¡¢Àµ¤ÎÀ°¿ô¤òÊÖ¤¹¡£ -¤É¤Á¤é¤Îʸ»úÎó¤â¸½ºß¤Î¥í¥±¡¼¥ë¤Ë±þ¤¸¤Æ²ò¼á¤µ¤ì¤¿¤â¤Î¤¬»ÈÍѤµ¤ì¤ë¡£ -.SH ½àµò +関数は、\fIs1\fP が \fIs2\fP よりも小さいか、等しいか、 +大きいかによって、それぞれ負の整数、0、正の整数を返す。 +どちらの文字列も現在のロケールに応じて解釈されたものが使用される。 +.SH 準拠 SVr4, 4.3BSD, C89, C99. -.SH Ãí°Õ -\fI"POSIX"\fP ¤ª¤è¤Ó \fI"C"\fP ¥í¥±¡¼¥ë¤Ë¤ª¤¤¤Æ¤Ï¡¢ +.SH 注意 +\fI"POSIX"\fP および \fI"C"\fP ロケールにおいては、 .BR strcoll () -¤Ï +は .BR strcmp (3) -¤ÈÅù²Á¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +と等価である。 +.SH 関連項目 .BR bcmp (3), .BR memcmp (3), .BR setlocale (3), diff --git a/release/man3/strcpy.3 b/release/man3/strcpy.3 index 8876bc62..f26db633 100644 --- a/release/man3/strcpy.3 +++ b/release/man3/strcpy.3 @@ -42,9 +42,9 @@ .\" Updated 2007-07-04, Akihiro MOTOKI , LDP v2.58 .\" .TH STRCPY 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -strcpy, strncpy \- ʸ»úÎó¤ò¥³¥Ô¡¼¤¹¤ë -.SH ½ñ¼° +.SH 名前 +strcpy, strncpy \- 文字列をコピーする +.SH 書式 .nf .B #include .sp @@ -52,32 +52,32 @@ strcpy, strncpy \- ʸ .sp .BI "char *strncpy(char *" dest ", const char *" src ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .BR strcpy () -´Ø¿ô¤Ï -\fIsrc\fP ¤¬»Ø¤¹Ê¸»úÎó¤òËöÈø¤Î¥Ì¥ë¥Ð¥¤¥È (\(aq\\0\(aq) ¤â´Þ¤á¤Æ -\fIdest\fP ¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë¥³¥Ô¡¼¤¹¤ë¡£ -Æó¤Ä¤Îʸ»úÎó¤Ï½Å¤Ê¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£¼õ¤±Â¦¤Îʸ»úÎó \fIdest\fP ¤Ï -¥³¥Ô¡¼¤ò¼õ¤±¼è¤ë¤Î¤Ë½½Ê¬¤ÊÂ礭¤µ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +関数は +\fIsrc\fP が指す文字列を末尾のヌルバイト (\(aq\\0\(aq) も含めて +\fIdest\fP が指すバッファにコピーする。 +二つの文字列は重なってはならない。受け側の文字列 \fIdest\fP は +コピーを受け取るのに十分な大きさでなければならない。 .PP .BR strncpy () -´Ø¿ô¤âƱÍͤÀ¤¬¡¢ -\fIsrc\fP ¤Î¤¦¤ÁºÇÂç¤Ç¤â \fIn\fP ¥Ð¥¤¥È¤·¤«¥³¥Ô¡¼¤µ¤ì¤Ê¤¤ÅÀ¤¬°Û¤Ê¤ë¡£ -.BR ·Ù¹ð : -\fIsrc\fP ¤ÎºÇ½é¤Î \fIn\fP ¥Ð¥¤¥È¤ÎÃæ¤Ë¥Ì¥ë¥Ð¥¤¥È¤¬¤Ê¤¤¾ì¹ç¡¢ -\fIdest\fP ¤Ë³ÊǼ¤µ¤ì¤ëʸ»úÎó¤Ï¥Ì¥ë¤Ç½ªÃ¼¤µ¤ì¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¡£ +関数も同様だが、 +\fIsrc\fP のうち最大でも \fIn\fP バイトしかコピーされない点が異なる。 +.BR 警告 : +\fIsrc\fP の最初の \fIn\fP バイトの中にヌルバイトがない場合、 +\fIdest\fP に格納される文字列はヌルで終端されないことになる。 .PP .I src -¤ÎŤµ¤¬ +の長さが .I n -¤è¤ê¤âû¤¤¾ì¹ç¡¢ +よりも短い場合、 .BR strncpy () -¤Ï +は .I dest -¤Î»Ä¤ê¤ò¥Ì¥ë¥Ð¥¤¥È¤ÇËä¤á¤ë¡£ +の残りをヌルバイトで埋める。 .PP .BR strncpy () -¤Î´Êñ¤Ê¼ÂÁõ¤Ï°Ê²¼¤Î¤è¤¦¤Ê´¶¤¸¤Ç¤¢¤í¤¦: +の簡単な実装は以下のような感じであろう: .in +4n .nf @@ -95,28 +95,28 @@ strncpy(char *dest, const char *src, size_t n) } .fi .in -.SH ÊÖ¤êÃÍ +.SH 返り値 .BR strcpy () -´Ø¿ô¤È +関数と .BR strncpy () -´Ø¿ô¤Ï -¼õ¤±Â¦¤Îʸ»úÎó\fIdest\fP¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -.SH ½àµò +関数は +受け側の文字列\fIdest\fPへのポインタを返す。 +.SH 準拠 SVr4, 4.3BSD, C89, C99. -.SH Ãí°Õ +.SH 注意 .BR strncpy () -¤Ï¸úΨŪ¤Ç¤Ê¤¯´Ö°ã¤¤¤òµ¯¤³¤·¤ä¤¹¤¤¤È¹Í¤¨¤ë¥×¥í¥°¥é¥Þ¤â¤¤¤ë¤À¤í¤¦¡£ -¥×¥í¥°¥é¥Þ¤¬ \fIdest\fP ¤ÎÂ礭¤µ¤¬ \fIsrc\fP ¤ÎŤµ¤è¤ê¤â -Â礭¤¤¤³¤È¤òÃΤäƤ¤¤ë (¤Ä¤Þ¤ê¡¢¤½¤Î¤³¤È¤ò¥Á¥§¥Ã¥¯¤¹¤ë¥³¡¼¥É¤ò -½ñ¤¤¤Æ¤¤¤ë) ¾ì¹ç¤Ï¡¢ +は効率的でなく間違いを起こしやすいと考えるプログラマもいるだろう。 +プログラマが \fIdest\fP の大きさが \fIsrc\fP の長さよりも +大きいことを知っている (つまり、そのことをチェックするコードを +書いている) 場合は、 .B strcpy() -¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +を使うことができる。 -\fIsrc\fP ¤ÎºÇ½é¤Î \fIn\fP ʸ»ú¤Ë½ªÃ¼¤Î¥Ì¥ë¥Ð¥¤¥È¤¬¤Ê¤¤¾ì¹ç¡¢ +\fIsrc\fP の最初の \fIn\fP 文字に終端のヌルバイトがない場合、 .BR strncpy () -¤Ï \fIdest\fP ¤Ë½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤Ê¸»úÎó¤òÀ¸À®¤¹¤ë¡£ -¥×¥í¥°¥é¥Þ¤Ï´Ö°ã¤¤¤òËɻߤ¹¤ë¤¿¤á¤Ë¡¢ -°Ê²¼¤Î¤è¤¦¤Ë¶¯À©Åª¤Ë½ªÃ¼¤ò¹Ô¤¦¤³¤È¤¬¤è¤¯¤¢¤ë¡£ +は \fIdest\fP に終端されていない文字列を生成する。 +プログラマは間違いを防止するために、 +以下のように強制的に終端を行うことがよくある。 .in +4n .nf @@ -125,18 +125,18 @@ if (n > 0) buf[n \- 1]= \(aq\\0\(aq; .fi .in -.SH ¥Ð¥° +.SH バグ .BR strcpy () -¤Î¼õ¤±Â¦¤Îʸ»úÎ󤬽½Ê¬¤ÊÂ礭¤µ¤Ç¤Ê¤¤¾ì¹ç¡¢²¿¤¬µ¯¤³¤ë¤«¤ï¤«¤é¤Ê¤¤¡£ -¸ÇÄêĹʸ»úÎó¤ò°î¤ì¤µ¤»¤ë¤Î¤Ï¡¢¥Þ¥·¥ó¤ÎÀ©¸æ¤ò¾¸Ãæ¤Ë¼ý¤á¤ë¤¿¤á¤Ë -¥¯¥é¥Ã¥«¡¼¤¬¹¥¤ó¤Ç»È¤¦¥Æ¥¯¥Ë¥Ã¥¯¤Ç¤¢¤ë¡£ -¥×¥í¥°¥é¥à¤Ç¥Ç¡¼¥¿¤ò¥Ð¥Ã¥Õ¥¡¤ËÆɤ߹þ¤ó¤À¤ê¥³¥Ô¡¼¤·¤¿¤ê¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢ -ɬ¤º¤Þ¤ººÇ½é¤Ë½½Ê¬¤ÊÂ礭¤µ¤¬¤¢¤ë¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ëɬÍפ¬¤¢¤ë¡£ -¥×¥í¥°¥é¥Þ¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬ÉÔ²Äǽ¤À¤È¼¨¤»¤ë¾ì¹ç¤Ë¤Ï -¤³¤Î¥Á¥§¥Ã¥¯¤ÏÉÔÍפ«¤â¤·¤ì¤Ê¤¤¤¬¡¢½½Ê¬Ãí°Õ¤¹¤ë¤³¤È¡£ -Ť¤´Ö¤Ë¤Ï¡¢ÉÔ²Äǽ¤À¤Ã¤¿¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¤è¤¦¤ÊÊýË¡¤Ç¥×¥í¥°¥é¥à¤¬ -Êѹ¹¤µ¤ì¤ë¤³¤È¤â¤¢¤ë¤«¤é¤À¡£ -.SH ´ØÏ¢¹àÌÜ +の受け側の文字列が十分な大きさでない場合、何が起こるかわからない。 +固定長文字列を溢れさせるのは、マシンの制御を掌中に収めるために +クラッカーが好んで使うテクニックである。 +プログラムでデータをバッファに読み込んだりコピーしたりする場合には、 +必ずまず最初に十分な大きさがあるかどうかをチェックする必要がある。 +プログラマがオーバーフローが不可能だと示せる場合には +このチェックは不要かもしれないが、十分注意すること。 +長い間には、不可能だったことが可能になるような方法でプログラムが +変更されることもあるからだ。 +.SH 関連項目 .BR bcopy (3), .BR memccpy (3), .BR memcpy (3), diff --git a/release/man3/strdup.3 b/release/man3/strdup.3 index 289d0c97..9424811a 100644 --- a/release/man3/strdup.3 +++ b/release/man3/strdup.3 @@ -34,9 +34,9 @@ .\" Updated Fri Nov 2 JST 2001 by Kentaro Shirakata .\" .TH STRDUP 3 2011-10-01 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -strdup, strndup, strdupa, strndupa \- ʸ»úÎó¤òÊ£À½¤¹¤ë -.SH ½ñ¼° +.SH 名前 +strdup, strndup, strdupa, strndupa \- 文字列を複製する +.SH 書式 .nf .B #include .sp @@ -50,9 +50,9 @@ strdup, strndup, strdupa, strndupa \- ʸ .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .PD 0 .ad l @@ -68,10 +68,10 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .BR strndup (): .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: POSIX_C_SOURCE\ >=\ 200809L || _XOPEN_SOURCE\ >=\ 700 .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .PP @@ -80,47 +80,47 @@ _GNU_SOURCE _GNU_SOURCE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR strdup () -´Ø¿ô¤Ï¡¢Ê¸»úÎó \fIs\fP¤ÎÊ£À½¤Ç¤¢¤ë -¿·¤·¤¤Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¿·¤·¤¤Ê¸»úÎó¤Î¤¿¤á¤Î¥á¥â¥ê¤Ï +関数は、文字列 \fIs\fPの複製である +新しい文字列へのポインタを返す。 +新しい文字列のためのメモリは .BR malloc (3) -¤ÇÆÀ¤Æ¤¤¤ë¡£ -¤½¤·¤Æ¡¢ +で得ている。 +そして、 .BR free (3) -¤Ç²òÊü¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +で解放することができる。 .BR strndup () -´Ø¿ô¤ÏƱÍͤǤ¢¤ë¤¬¡¢ºÇÂç¤Ç \fIn\fP ʸ»ú¤À¤±¤òÊ£À½¤¹¤ë¡£ -\fIs\fP ¤¬ \fIn\fP ¤è¤ê¤âŤ¤¾ì¹ç¡¢\fIn\fP ʸ»ú¤À¤±¤¬Ê£À½¤µ¤ì¡¢ -½ªÃ¼¤Î NULL ¥Ð¥¤¥È (\(aq\\0\(aq)) ¤¬Äɲ䵤ì¤ë¡£ +関数は同様であるが、最大で \fIn\fP 文字だけを複製する。 +\fIs\fP が \fIn\fP よりも長い場合、\fIn\fP 文字だけが複製され、 +終端の NULL バイト (\(aq\\0\(aq)) が追加される。 .BR strdupa () -¤È +と .BR strndupa () -´Ø¿ô¤ÏƱÍͤǤ¢¤ë¤¬¡¢ -¥Ð¥Ã¥Õ¥¡¤ò³ä¤êÅö¤Æ¤ë¤Î¤Ë \fBalloca(3)\fP ¤òÍѤ¤¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU GCC ¤òÍѤ¤¤¿¾ì¹ç¤Ë¤Î¤ßÍ­¸ú¤Ç¡¢ -\fBalloca(3)\fP ¤Çµ­½Ò¤µ¤ì¤Æ¤¤¤ë¤Î¤ÈƱÍͤÎÀ©¸Â¤ò¼õ¤±¤ë¡£ -.SH ÊÖ¤êÃÍ +関数は同様であるが、 +バッファを割り当てるのに \fBalloca(3)\fP を用いる。 +これらの関数は GNU GCC を用いた場合にのみ有効で、 +\fBalloca(3)\fP で記述されているのと同様の制限を受ける。 +.SH 返り値 .BR strdup () -´Ø¿ô¤ÏÊ£À½¤µ¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¢¤Þ¤¿¤Ï -½½Ê¬¤Ê¥á¥â¥ê¤¬³ÎÊݤǤ­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤ÏNULL¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +関数は複製された文字列へのポインタ、または +十分なメモリが確保できなかった場合にはNULLを返す。 +.SH エラー .TP .B ENOMEM -Ê£À½¤µ¤ì¤¿Ê¸»úÎó¤ò³ä¤êÅö¤Æ¤ë½½Ê¬¤Ê¥á¥â¥ê¤¬³ÎÊݤǤ­¤Ê¤«¤Ã¤¿¡£ -.SH ½àµò +複製された文字列を割り当てる十分なメモリが確保できなかった。 +.SH 準拠 .\" 4.3BSD-Reno, not (first) 4.3BSD. .BR strdup () -¤Ï SVr4, 4.3BSD, POSIX.1-2001 ½àµò¤Ç¤¢¤ë¡£ +は SVr4, 4.3BSD, POSIX.1-2001 準拠である。 .BR strndup () -¤Ï POSIX.1-2008 ½àµò¤Ç¤¢¤ë¡£ +は POSIX.1-2008 準拠である。 .BR strdupa (), .BR strndupa () -¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +は GNU 拡張である。 +.SH 関連項目 .BR alloca (3), .BR calloc (3), .BR free (3), diff --git a/release/man3/strerror.3 b/release/man3/strerror.3 index 2bc2364a..402101b6 100644 --- a/release/man3/strerror.3 +++ b/release/man3/strerror.3 @@ -41,13 +41,13 @@ .\" Updated 2005-12-26, Akihiro MOTOKI .\" Updated 2007-09-06, Akihiro MOTOKI , LDP v2.64 .\" -.\"WORD GNU-specific GNU »ÅÍͤΠ-.\"WORD XSI-compliant XSI ½àµò¤Î +.\"WORD GNU-specific GNU 仕様の +.\"WORD XSI-compliant XSI 準拠の .\" .TH STRERROR 3 2009-03-30 "" "Linux Programmer's Manual" -.SH ̾Á° -strerror, strerror_r \- ¥¨¥é¡¼ÈÖ¹æ¤òÀâÌÀ¤¹¤ëʸ»úÎó¤òÊÖ¤¹¡£ -.SH ½ñ¼° +.SH 名前 +strerror, strerror_r \- エラー番号を説明する文字列を返す。 +.SH 書式 .nf .B #include .sp @@ -57,136 +57,136 @@ strerror, strerror_r \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp -¼¡¤Î¾ì¹ç¤Ë¤Ï -XSI ½àµò¤Î¥Ð¡¼¥¸¥ç¥ó¤Î +次の場合には +XSI 準拠のバージョンの .BR strerror_r () -¤¬Ä󶡤µ¤ì¤ë: +が提供される: .br (_POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600) && !\ _GNU_SOURCE .fi -.SH ÀâÌÀ +.SH 説明 .BR strerror () -´Ø¿ô¤Ï¡¢°ú¤­¿ô \fIerrnum\fP ¤ÇÅϤµ¤ì¤¿¥¨¥é¡¼¥³¡¼¥É¤Ë¤Ä¤¤¤Æ¤Î -ÀâÌÀ¤¬Æþ¤Ã¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -²Äǽ¤Ç¤¢¤ë¤Ê¤é¤Ð¡¢Å¬ÀڤʸÀ¸ì¤òÁªÂò¤¹¤ë¤¿¤á¤Ë¡¢ -¸½ºß¤Î¥í¥±¡¼¥ë¤Î +関数は、引き数 \fIerrnum\fP で渡されたエラーコードについての +説明が入った文字列へのポインタを返す。 +可能であるならば、適切な言語を選択するために、 +現在のロケールの .B LC_MESSAGES -¤ò»È¤¦¡£ -¤³¤Îʸ»úÎó¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÇÊѹ¹¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¤¬¡¢ -¤½¤Î¸å¤Ëµ¯¤³¤ë +を使う。 +この文字列は、アプリケーションで変更してはならないが、 +その後に起こる .BR perror (3) -¤ä +や .BR strerror () -¤Î¸Æ¤Ó½Ð¤·¤Ç -Êѹ¹¤µ¤ì¤Æ¤â¹½¤ï¤Ê¤¤¡£ -¤³¤Îʸ»úÎó¤òÊѹ¹¤¹¤ë¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ï¤Ê¤¤¡£ +の呼び出しで +変更されても構わない。 +この文字列を変更するライブラリ関数はない。 .BR strerror_r () -´Ø¿ô¤Ï +関数は .BR strerror () -¤È»÷¤Æ¤¤¤ë¤¬¡¢ -¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ë¤ÏÆó¼ïÎà¤Î¥Ð¡¼¥¸¥ç¥ó¤¬Â¸ºß¤·¡¢ -POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤¿ XSI ½àµò¤Î¥Ð¡¼¥¸¥ç¥ó -(glibc 2.3.4 °Ê¹ß¤ÇÍøÍѲÄǽ) ¤È¡¢ -GNU »ÅÍͤΥС¼¥¸¥ç¥ó (glibc 2.0 °Ê¹ß¤ÇÍøÍѲÄǽ) ¤Ç¤¢¤ë¡£ -¡Ö½ñ¼°¡×¤ÎÀá¤Ëµ­ºÜ¤µ¤ì¤¿µ¡Ç½¸¡ºº¥Þ¥¯¥í¤Î¾ì¹ç¤Ë¤Ï¡¢ -XSI ½àµò¤Î¥Ð¡¼¥¸¥ç¥ó¤¬Ä󶡤µ¤ì¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï GNU »ÅÍͤΥС¼¥¸¥ç¥ó¤¬Ä󶡤µ¤ì¤ë¡£ -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬°ì¤Ä¤âÌÀ¼¨Åª¤ËÄêµÁ¤µ¤ì¤Ê¤¤¾ì¹ç¡¢ -(glibc 2.4 °Ê¹ß¤Ç¤Ï) ¥Ç¥Õ¥©¥ë¥È¤Ç +と似ているが、 +スレッドセーフである。 +この関数には二種類のバージョンが存在し、 +POSIX.1-2001 で規定された XSI 準拠のバージョン +(glibc 2.3.4 以降で利用可能) と、 +GNU 仕様のバージョン (glibc 2.0 以降で利用可能) である。 +「書式」の節に記載された機能検査マクロの場合には、 +XSI 準拠のバージョンが提供される。 +それ以外の場合には GNU 仕様のバージョンが提供される。 +機能検査マクロが一つも明示的に定義されない場合、 +(glibc 2.4 以降では) デフォルトで .B _POSIX_SOURCE -¤ÏÃÍ 200112l ¤ÇÄêµÁ¤µ¤ì¡¢¤½¤Î·ë²Ì -XSI ½àµò¤Î¥Ð¡¼¥¸¥ç¥ó¤Î +は値 200112l で定義され、その結果 +XSI 準拠のバージョンの .BR strerror_r () -¤¬¥Ç¥Õ¥©¥ë¥È¤ÇÄ󶡤µ¤ì¤ë¡£ +がデフォルトで提供される。 -°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ -XSI ½àµò¤Î +移植性が必要なアプリケーションでは、 +XSI 準拠の .BR strerror_r () -¤ò»È¤¦Êý¤¬¤è¤¤¡£ -¤³¤Î´Ø¿ô¤Ï¡¢¥æ¡¼¥¶¡¼¤«¤éÄ󶡤µ¤ì¤ëŤµ +を使う方がよい。 +この関数は、ユーザーから提供される長さ .I buflen -¤Î¥Ð¥Ã¥Õ¥¡ +のバッファ .I buf -¤Ë¥¨¥é¡¼Ê¸»úÎó¤òÊÖ¤¹¡£ +にエラー文字列を返す。 -GNU »ÅÍͤΠ+GNU 仕様の .BR strerror_r () -¤Ï¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò³ÊǼ¤·¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -ÊÖ¤êÃͤϡ¢¤³¤Î´Ø¿ô¤¬ +は、エラーメッセージを格納した文字列へのポインタを返す。 +返り値は、この関数が .I buf -¤Ë³ÊǼ¤·¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤«¡¢ -²¿¤é¤«¤Î (ÉÔÊѤÊ) ÀÅŪ¤Êʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¢¤Î¤¤¤º¤ì¤«¤È¤Ê¤ë -(¸å¼Ô¤Î¾ì¹ç¤Ï +に格納した文字列へのポインタか、 +何らかの (不変な) 静的な文字列へのポインタ、のいずれかとなる +(後者の場合は .I buf -¤Ï»ÈÍѤµ¤ì¤Ê¤¤)¡£ +は使用されない)。 .I buf -¤Ëʸ»úÎ󤬳ÊǼ¤µ¤ì¤ë¾ì¹ç¤Ï¡¢ -ºÇÂç¤Ç +に文字列が格納される場合は、 +最大で .I buflen -¥Ð¥¤¥È¤¬³ÊǼ¤µ¤ì +バイトが格納され .RI ( buflen -¤¬¾®¤µ²á¤®¤¿¤È¤­¤Ë¤Ïʸ»úÎó¤ÏÀÚ¤êµÍ¤á¤é¤ì¤ë)¡¢ -ʸ»úÎó¤Ë¤Ïɬ¤º½ªÃ¼¥Ì¥ëʸ»ú¤¬´Þ¤Þ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +が小さ過ぎたときには文字列は切り詰められる)、 +文字列には必ず終端ヌル文字が含まれる。 +.SH 返り値 .BR strerror () -¤È +と .BR strerror_r () -¤Ï¥¨¥é¡¼ÆâÍƤòÀâÌÀ¤¹¤ë -ʸ»úÎó¤òÊÖ¤¹¡£¥¨¥é¡¼Èֹ椬̤ÃΤξì¹ç¤Ï "Unknown error nnn" ¤È¤¤¤¦ -¥á¥Ã¥»¡¼¥¸¤òÊÖ¤¹¡£ +はエラー内容を説明する +文字列を返す。エラー番号が未知の場合は "Unknown error nnn" という +メッセージを返す。 -XSI ½àµò¤Î +XSI 準拠の .BR strerror_r () -´Ø¿ô¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï¡¢ \-1 ¤òÊÖ¤·¡¢ +関数は成功すると 0 を返す。 +エラーの場合には、 \-1 を返し、 .I errno -¤Ë¥¨¥é¡¼ÆâÍƤò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£ -.SH ¥¨¥é¡¼ +にエラー内容を示す値をセットする。 +.SH エラー .TP .B EINVAL .I errnum -¤ÎÃͤ¬Í­¸ú¤Ê¥¨¥é¡¼ÈÖ¹æ¤Ç¤Ï¤Ê¤¤¡£ +の値が有効なエラー番号ではない。 .TP .B ERANGE -¥¨¥é¡¼¥³¡¼¥É¤òÀâÌÀ¤¹¤ëʸ»úÎó¤Î¤¿¤á¤Ë¡¢½¼Ê¬¤ÊÎΰ褬³ÎÊݤǤ­¤Ê¤«¤Ã¤¿¡£ -.SH ½àµò +エラーコードを説明する文字列のために、充分な領域が確保できなかった。 +.SH 準拠 .BR strerror () -¤Ï POSIX.1-2001, C89, C99 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は POSIX.1-2001, C89, C99 で規定されている。 .BR strerror_r () -¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は POSIX.1-2001 で規定されている。 -GNU »ÅÍͤΠ+GNU 仕様の .BR strerror_r () -´Ø¿ô¤ÏÈóɸ½à¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ +関数は非標準の拡張である。 -POSIX.1-2001 ¤Ï¡¢ +POSIX.1-2001 は、 .BR strerror () -¤¬¥¨¥é¡¼¤ËÁø¶ø¤·¤¿¾ì¹ç¤Ë +がエラーに遭遇した場合に .I errno -¤ò¥»¥Ã¥È¤¹¤ë¤³¤È¤òǧ¤á¤Æ¤¤¤ë¤¬¡¢¥¨¥é¡¼È¯À¸»þ¤Ë´Ø¿ô¤Î·ë²Ì¤È¤·¤Æ -¤É¤ó¤ÊÃͤòÊÖ¤¹¤Ù¤­¤«¤òµ¬Äꤷ¤Æ¤Ê¤¤¡£ -¤¢¤ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -.\" Î㤨¤Ð Solaris 8, HP-UX 11 -¥¨¥é¡¼Èֹ椬̤ÃΤξì¹ç¡¢ +をセットすることを認めているが、エラー発生時に関数の結果として +どんな値を返すべきかを規定してない。 +あるシステムでは、 +.\" 例えば Solaris 8, HP-UX 11 +エラー番号が未知の場合、 .BR strerror () -¤Ï NULL ¤òÊÖ¤¹¡£ -¾¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -.\" Î㤨¤Ð FreeBSD 5.4, Tru64 5.1B -¥¨¥é¡¼Èֹ椬̤ÃΤξì¹ç¡¢ +は NULL を返す。 +他のシステムでは、 +.\" 例えば FreeBSD 5.4, Tru64 5.1B +エラー番号が未知の場合、 .BR strerror () -¤Ï "Error nnn occurred" ¤È¤¤¤Ã¤¿Ê¸»úÎó¤òÊÖ¤·¡¢ +は "Error nnn occurred" といった文字列を返し、 .I errno -¤Ë +に .B EINVAL -¤ò¥»¥Ã¥È¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +をセットする。 +.SH 関連項目 .BR err (3), .BR errno (3), .BR error (3), diff --git a/release/man3/strfmon.3 b/release/man3/strfmon.3 index 402d424c..8a829c1b 100644 --- a/release/man3/strfmon.3 +++ b/release/man3/strfmon.3 @@ -23,127 +23,127 @@ .\" Japanese Version Copyright (c) 2001 NAKANO Takeo all rights reserved. .\" Translated Thu Fri 08 2001 by NAKANO Takeo .\" -.\"WORD: numeric fill character ¿ôÃÍËä¤áʸ»ú -.\"WORD: grouping character ¥°¥ë¡¼¥×²½Ê¸»ú -.\"WORD: left precision º¸ÀºÅÙ -.\"WORD: right precision º¸ÀºÅÙ -.\"WORD: radix (character) ´ð¿ôÅÀ(ʸ»ú) -.\"WORD: conversion character ÊÑ´¹Ê¸»ú -.\"WORD: international currency format ¹ñºÝÄ̲ߥե©¡¼¥Þ¥Ã¥È -.\"WORD: national currency format ¹ñÆâÄ̲ߥե©¡¼¥Þ¥Ã¥È +.\"WORD: numeric fill character 数値埋め文字 +.\"WORD: grouping character グループ化文字 +.\"WORD: left precision 左精度 +.\"WORD: right precision 左精度 +.\"WORD: radix (character) 基数点(文字) +.\"WORD: conversion character 変換文字 +.\"WORD: international currency format 国際通貨フォーマット +.\"WORD: national currency format 国内通貨フォーマット .\" .TH STRFMON 3 2000-12-05 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -strfmon \- ¶â³Û¤ÎÃͤòʸ»úÎó¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +strfmon \- 金額の値を文字列に変換する +.SH 書式 .B #include .sp .BI "ssize_t strfmon(char *" s ", size_t " max ", const char *" format , .B "...);" -.SH ÀâÌÀ +.SH 説明 .BR strfmon () -´Ø¿ô¤Ï¡¢»ØÄꤵ¤ì¤¿¿ôÎ̤ò +関数は、指定された数量を .I format -¤Ç»ØÄꤵ¤ì¤¿¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¤·¤¿¤¬¤Ã¤ÆÀ°·Á¤·¡¢ -·ë²Ì¤ò¥µ¥¤¥º +で指定されたフォーマットにしたがって整形し、 +結果をサイズ .I max -¤Îʸ»úÇÛÎó +の文字配列 .I s -¤Ë½ñ¤­¤³¤à¡£ +に書きこむ。 .PP .I format -Ãæ¤ÎÄ̾ï¤Îʸ»ú¤Ï¡¢ÊÑ´¹¤µ¤ì¤º¤Ë¤½¤Î¤Þ¤Þ +中の通常の文字は、変換されずにそのまま .I s -¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¡£ÊÑ´¹»ØÄê¤Ï \(aq%\(aq ʸ»ú¤Ç»Ï¤Þ¤ë¡£ -¤³¤Îľ¸å¤Ë¤Ï¡¢°Ê²¼¤Î¥Õ¥é¥°¤ò 0 ¸Ä°Ê¾å³¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +にコピーされる。変換指定は \(aq%\(aq 文字で始まる。 +この直後には、以下のフラグを 0 個以上続けることができる。 .TP .BI = f -1 ¥Ð¥¤¥Èʸ»ú +1 バイト文字 .I f -¤ò¿ôÃÍËä¤áʸ»ú (numeric fill character) ¤Ë¤¹¤ë -(º¸ÀºÅ٤ȶ¦¤ËÍѤ¤¤ë¡£°Ê²¼¤ò»²¾È)¡£ -»ØÄꤵ¤ì¤Ê¤¤¤È¡¢¥¹¥Ú¡¼¥¹Ê¸»ú¤¬ÍѤ¤¤é¤ì¤ë¡£ +を数値埋め文字 (numeric fill character) にする +(左精度と共に用いる。以下を参照)。 +指定されないと、スペース文字が用いられる。 .TP .B ^ -¸½ºß¤Î¥í¥±¡¼¥ë¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤Ç¤¢¤í¤¦¥°¥ë¡¼¥×²½Ê¸»ú (grouping character) -¤ò°ìÀڻȤï¤Ê¤¤¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥°¥ë¡¼¥×²½¤ÏÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +現在のロケールで定義されているであろうグループ化文字 (grouping character) +を一切使わない。デフォルトではグループ化は有効になっている。 .TP -.BR ( " ¤Þ¤¿¤Ï " + -( ¥Õ¥é¥°¤Ï¡¢Éé¤Î¿ôÃͤò³ç¸Ì¤Ç³ç¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -+ ¥Õ¥é¥°¤ÏÉä¹æ¤ò¥Ç¥Õ¥©¥ë¥È¤Î¤è¤¦¤Ë¼è¤ê°·¤¦¤³¤È¤ò°ÕÌ£¤¹¤ë -(¤¹¤Ê¤ï¤Á¿ôÃͤÎÁ°¤Ë¥í¥±¡¼¥ë¤ÎÉä¹æ¥Þ¡¼¥¯¤¬ÃÖ¤«¤ì¤ë¡£ -Î㤨¤ÐÀµ¤Ê¤é¤Ê¤Ë¤â¤Ê¤¯¡¢Éé¤Ê¤é \(aq\-\(aq ¤òÃÖ¤¯¡¢¤Ê¤É)¡£ +.BR ( " または " + +( フラグは、負の数値を括弧で括ることを意味する。 ++ フラグは符号をデフォルトのように取り扱うことを意味する +(すなわち数値の前にロケールの符号マークが置かれる。 +例えば正ならなにもなく、負なら \(aq\-\(aq を置く、など)。 .TP .B ! -Ä̲ߥ·¥ó¥Ü¥ë¤ò¾Êά¤¹¤ë¡£ +通貨シンボルを省略する。 .TP .B \- -¤¹¤Ù¤Æ¤Î¥Õ¥£¡¼¥ë¥É¤òº¸µÍ¤á¤Ë¤¹¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ï±¦µÍ¤á¡£ +すべてのフィールドを左詰めにする。デフォルトは右詰め。 .LP -¼¡¤Î°ÌÃ֤ˤϡ¢¥Õ¥£¡¼¥ë¥É¤ÎÉý¤ò»ØÄê¤Ç¤­¤ë¡£ -10 ¿Ê¤Î¿ôÃÍʸ»úÎó¤Ç¡¢¥Õ¥£¡¼¥ë¥É¤ÎºÇ¾®Éý¤ò¥Ð¥¤¥Èñ°Ì¤Ç»ØÄꤹ¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 0¡£ -·ë²Ì¤¬¤³¤ÎÉý¤è¤ê¤â¶¹¤¯¤Ê¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ -ÉÔ­ʬ¤¬¥¹¥Ú¡¼¥¹¤ÇËä¤á¤é¤ì¤ë -(º¸µÍ¤á¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ðº¸Â¦¤¬Ëä¤á¤é¤ì¤ë)¡£ +次の位置には、フィールドの幅を指定できる。 +10 進の数値文字列で、フィールドの最小幅をバイト単位で指定する。 +デフォルトは 0。 +結果がこの幅よりも狭くなった場合には、 +不足分がスペースで埋められる +(左詰めフラグが指定されていなければ左側が埋められる)。 .LP -¼¡¤Î°ÌÃ֤ˤϡ¢"#" ¤Ë 10 ¿Ê¿ôÃÍʸ»úÎó¤ò³¤±¤¿·Á¼°¤Ç¡¢ -º¸ÀºÅÙ (left precision) ¤ò»ØÄê¤Ç¤­¤ë¡£ -Ä̲ߤδð¿ôÅÀ (radix) ¤è¤êº¸Â¦¤Î¿ôÃͤηå¿ô¤¬¤³¤Î»ØÄê¤è¤ê¾®¤µ¤¤¾ì¹ç¤Ï¡¢ -¿ôÃÍËä¤áʸ»ú¤Çº¸Â¦¤¬Ëä¤á¤é¤ì¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥ÉÉý¤Î»ØÄê¤Ç¤Ï¡¢¥°¥ë¡¼¥×²½Ê¸»ú¤Ï¥«¥¦¥ó¥È¤µ¤ì¤Ê¤¤¡£ +次の位置には、"#" に 10 進数値文字列を続けた形式で、 +左精度 (left precision) を指定できる。 +通貨の基数点 (radix) より左側の数値の桁数がこの指定より小さい場合は、 +数値埋め文字で左側が埋められる。 +このフィールド幅の指定では、グループ化文字はカウントされない。 .LP -¼¡¤Î°ÌÃ֤ˤϡ¢"." ¤Ë 10 ¿Ê¿ôÃÍʸ»úÎó¤ò³¤±¤¿·Á¼°¤Ç¡¢ -±¦ÀºÅÙ (right precision) ¤ò»ØÄê¤Ç¤­¤ë¡£ -À°·Á¤µ¤ì¤ë¿ôÃͤϡ¢À°·ÁÁ°¤Ë¤³¤Î·å¿ô¤Ë´Ý¤á¤é¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥«¥ì¥ó¥È¥í¥±¡¼¥ë¤Î +次の位置には、"." に 10 進数値文字列を続けた形式で、 +右精度 (right precision) を指定できる。 +整形される数値は、整形前にこの桁数に丸められる。 +デフォルトではカレントロケールの .I frac_digits -¤È +と .I int_frac_digits -¤Î»ØÄê¤òÍѤ¤¤ë¡£ -±¦ÀºÅÙ¤¬ 0 ¤Î¾ì¹ç¤Ï¡¢´ð¿ôÅÀʸ»ú (radix character) ¤Ï°õ»ú¤µ¤ì¤Ê¤¤ -(¤³¤³¤Ç¤Î´ð¿ôÅÀʸ»ú¤Ï +の指定を用いる。 +右精度が 0 の場合は、基数点文字 (radix character) は印字されない +(ここでの基数点文字は .B LC_MONETARY -¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ +で定義されており、 .B LC_NUMERIC -¤Î»ØÄê¤È¤Ï°Û¤Ê¤Ã¤Æ¤¤¤Æ¤â¤è¤¤)¡£ +の指定とは異なっていてもよい)。 .LP -ºÇ¸å¤Ë¡¢ÊÑ´¹»ØÄê¤ÏÊÑ´¹Ê¸»ú (conversion character) -¤Ç½ªÎ»¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -ÊÑ´¹Ê¸»ú¤Ë¤Ï°Ê²¼¤Î 3 ¤Ä¤¬¤¢¤ë¡£ +最後に、変換指定は変換文字 (conversion character) +で終了しなければならない。 +変換文字には以下の 3 つがある。 .TP .B % -(¤³¤Î¾ì¹ç¤Ï»ØÄêÁ´ÂΤ¬ "%%" ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£) -·ë²Ì¤Îʸ»úÎó¤Ë \(aq%\(aq ʸ»ú¤ò½ñ¤­¤³¤à¡£ +(この場合は指定全体が "%%" でなければならない。) +結果の文字列に \(aq%\(aq 文字を書きこむ。 .TP .B i .I double -·¿¤Î°ú¤­¿ô¤Ò¤È¤Ä¤¬¡¢ -¥í¥±¡¼¥ë¤Î¹ñºÝÄ̲ߥե©¡¼¥Þ¥Ã¥È (international currency format) -¤òÍѤ¤¤ÆÊÑ´¹¤µ¤ì¤ë¡£ +型の引き数ひとつが、 +ロケールの国際通貨フォーマット (international currency format) +を用いて変換される。 .TP .B n .I double -·¿¤Î°ú¤­¿ô¤Ò¤È¤Ä¤¬¡¢ -¥í¥±¡¼¥ë¤Î¹ñÆâÄ̲ߥե©¡¼¥Þ¥Ã¥È (national currency format) -¤òÍѤ¤¤ÆÊÑ´¹¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +型の引き数ひとつが、 +ロケールの国内通貨フォーマット (national currency format) +を用いて変換される。 +.SH 返り値 .BR strfmon () -´Ø¿ô¤Ï¡¢·ë²Ì¤Îʸ»úÎ󤬽ªÃ¼¤Î NULL ¥Ð¥¤¥È¤ò´Þ¤á¤ÆÇÛÎó +関数は、結果の文字列が終端の NULL バイトを含めて配列 .I s -¤Ë¼ý¤Þ¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ +に収まった場合には、 .I s -¤Ë½ñ¤­¤³¤Þ¤ì¤¿Ê¸»ú¿ô¤òÊÖ¤¹¡£NULL ¥Ð¥¤¥È¤Ïʸ»ú¿ô¤ËÆþ¤é¤Ê¤¤¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï¡¢ +に書きこまれた文字数を返す。NULL バイトは文字数に入らない。 +それ以外の場合には、 .I errno -¤Ë +に .B E2BIG -¤òÀßÄꤷ¤Æ \-1 ¤òÊÖ¤¹¡£ -¤³¤Î¾ì¹ç¤ÎÇÛÎó¤ÎÆâÍƤÏ̤ÄêµÁ¤Ç¤¢¤ë¡£ -.SH ½àµò -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -¾¤Î¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¡£ -.SH Îã +を設定して \-1 を返す。 +この場合の配列の内容は未定義である。 +.SH 準拠 +POSIX.1-2001 にはない。 +他のいくつかのシステムに存在する。 +.SH 例 .in +4n .nf @@ -152,22 +152,22 @@ strfmon(buf, sizeof(buf), "[%^=*#6n] [%=*#6i]", .fi .in -¤Î¤è¤¦¤Ê´Ø¿ô¥³¡¼¥ë¤Î½ÐÎϤϡ¢¥ª¥é¥ó¥À¤Î¥í¥±¡¼¥ë¤Ç¤Ï°Ê²¼¤Î¤è¤¦¤Ê½ÐÎϤˤʤ롣 +のような関数コールの出力は、オランダのロケールでは以下のような出力になる。 .in +4n [ fl **1234,57] [ NLG **1 234,57] .in -(fl ¤Ï "florijnen" ¤Î°Õ¡£NLG ¤Ï Netherlands Guilder¡£) -¥°¥ë¡¼¥×²½Ê¸»ú¤òÍѤ¤¤ë¤ÈÈó¾ï¤Ë½¹¤¯¤Ê¤ë¡£ -Ʊ»þ¤Ë´Ö°ã¤¤¤Ê¤¯º®Íð¤Î¸¶°ø¤Ë¤â¤Ê¤Ã¤Æ¤·¤Þ¤¦¤À¤í¤¦¡£ -¤³¤ì¤Ï¿ôÃͤÎȾʬ°Ê²¼¤ÎÉý¤Ç¤¢¤ë¤Ù¤­¤À¤¬¡¢ -¿ôÃͤÈƱ¤¸¤À¤±¤ÎÉý¤ò¼è¤Ã¤Æ¤·¤Þ¤¦¤«¤é¤Ç¤¢¤ë¡£ -¤Ò¤É¤¤¤³¤È¤Ë¡¢ "fl" ¤ÎÁ°¸å¤Ë¤Ï¥¹¥Ú¡¼¥¹¤¬Æþ¤Ã¤Æ¤·¤Þ¤¤¡¢ -¤Þ¤¿ "NLG" ¤ÎÁ°¤Ë¤Ï 1 ¤Ä¡¢¸å¤Ë¤Ï 2 ¤Ä¤Î¥¹¥Ú¡¼¥¹¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï¥í¥±¡¼¥ë¥Õ¥¡¥¤¥ë¤Î¥Ð¥°¤Ç¤¢¤í¤¦¡£ -¥¤¥¿¥ê¥¢¡¦¥ª¡¼¥¹¥È¥é¥ê¥¢¡¦¥¹¥¤¥¹¡¦¥Ý¥ë¥È¥¬¥ë¤Î -³Æ¥í¥±¡¼¥ë¤Ç¤Î·ë²Ì¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¡£ +(fl は "florijnen" の意。NLG は Netherlands Guilder。) +グループ化文字を用いると非常に醜くなる。 +同時に間違いなく混乱の原因にもなってしまうだろう。 +これは数値の半分以下の幅であるべきだが、 +数値と同じだけの幅を取ってしまうからである。 +ひどいことに、 "fl" の前後にはスペースが入ってしまい、 +また "NLG" の前には 1 つ、後には 2 つのスペースが置かれている。 +これはロケールファイルのバグであろう。 +イタリア・オーストラリア・スイス・ポルトガルの +各ロケールでの結果は以下のようになる。 .in +4n [ L. **1235] [ ITL **1.235] @@ -178,7 +178,7 @@ strfmon(buf, sizeof(buf), "[%^=*#6n] [%=*#6i]", .br [ **1234$57Esc] [ **1.234$57PTE ] .in -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR setlocale (3), .BR sprintf (3), .BR locale (7) diff --git a/release/man3/strfry.3 b/release/man3/strfry.3 index 68eacdd8..3550a12d 100644 --- a/release/man3/strfry.3 +++ b/release/man3/strfry.3 @@ -30,29 +30,29 @@ .\" Translated Mon May 25 1998 by Akihiro Motoki .\" .TH STRFRY 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -strfry \- ʸ»úÎó¤ò¥é¥ó¥À¥à¤ËʤÙÊѤ¨¤ë -.SH ½ñ¼° +.SH 名前 +strfry \- 文字列をランダムに並べ変える +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "char *strfry(char *" string ); .fi -.SH ÀâÌÀ +.SH 説明 .BR strfry () -´Ø¿ô¤Ï¡¢Ê¸»úÎó \fIstring\fP ¤ÎÆâÍƤò¥é¥ó¥À¥à¤ËʤӴ¹¤¨¤ë¡£ -ʤӴ¹¤¨¤Ï¡¢ +関数は、文字列 \fIstring\fP の内容をランダムに並び換える。 +並び換えは、 .BR rand (3) -´Ø¿ô¤òÍѤ¤¤Æ¡¢Ê¸»úÎóÃæ¤Î³Æʸ»ú¤ò̵ºî°Ù¤Ë -¸ò´¹¤¹¤ë¤³¤È¤Ç¼Â¸½¤µ¤ì¤ë¡£·ë²Ì¤Ï¡¢Ê¸»úÎó \fIstring\fP ¤Î¥¢¥Ê¥°¥é¥à¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +関数を用いて、文字列中の各文字を無作為に +交換することで実現される。結果は、文字列 \fIstring\fP のアナグラムである。 +.SH 返り値 .BR strfry () -´Ø¿ô¤Ï¡¢¥é¥ó¥À¥à¤ËʤӴ¹¤¨¤é¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、ランダムに並び換えられた文字列へのポインタを返す。 +.SH 準拠 .BR strfry () -´Ø¿ô¤Ï GNU C ¥é¥¤¥Ö¥é¥ê¤ËÆÃÍ­¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +関数は GNU C ライブラリに特有である。 +.SH 関連項目 .BR memfrob (3), .BR string (3) diff --git a/release/man3/strftime.3 b/release/man3/strftime.3 index 5ece7b8c..3603d991 100644 --- a/release/man3/strftime.3 +++ b/release/man3/strftime.3 @@ -42,240 +42,240 @@ .\" Updated 2005-12-05, Akihiro MOTOKI, LDP v2.16 .\" Updated 2010-04-18, Akihiro MOTOKI, LDP v3.24 .\" -.\"WORD: conversion specifier ÊÑ´¹»ØÄêʸ»ú -.\"WORD: conversion specification ÊÑ´¹»ØÄê -.\"WORD: modifier ½¤¾þ»Ò -.\"WORD: broken-down time Í×ÁÇÊ̤Î(»þ¹ï) -.\"WORD: Single UNIX Specification Åý°ì UNIX µ¬³Ê -.\"WORD: ISO\ 8601 week-based ISO\ 8601 ¤Î½µÃ±°Ìɽµ­ +.\"WORD: conversion specifier 変換指定文字 +.\"WORD: conversion specification 変換指定 +.\"WORD: modifier 修飾子 +.\"WORD: broken-down time 要素別の(時刻) +.\"WORD: Single UNIX Specification 統一 UNIX 規格 +.\"WORD: ISO\ 8601 week-based ISO\ 8601 の週単位表記 .\" .TH STRFTIME 3 2010-01-17 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -strftime \- ÆüÉÕ¤ª¤è¤Ó»þ¹ï¤Îʸ»úÎó¤Ø¤ÎÊÑ´¹ -.SH ½ñ¼° +.SH 名前 +strftime \- 日付および時刻の文字列への変換 +.SH 書式 .nf .B #include .sp .BI "size_t strftime(char *" s ", size_t " max ", const char *" format , .BI " const struct tm *" tm ); .fi -.SH ÀâÌÀ +.SH 説明 .BR strftime () -´Ø¿ô ¤Ï¡¢Í×ÁÇÊ̤λþ¹ï \fItm\fP ¤ÎÆâÍƤò -\fIformat\fP ¤Ç»ØÄꤵ¤ì¤¿½ñ¼°»ØÄê¤Ë¤·¤¿¤¬¤Ã¤ÆÊÑ´¹¤·¡¢ -Ťµ \fImax\fP ¤Îʸ»úÎó \fIs\fP ¤Ë½ñ¤­¹þ¤à¡£ +関数 は、要素別の時刻 \fItm\fP の内容を +\fIformat\fP で指定された書式指定にしたがって変換し、 +長さ \fImax\fP の文字列 \fIs\fP に書き込む。 .\" FIXME POSIX says: Local timezone information is used as though .\" strftime() called tzset(). But this doesn't appear to be the case .PP -½ñ¼°»ØÄê¤Ï NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ç¤¢¤ê¡¢ -¡ÖÊÑ´¹»ØÄê (conversion specification)¡×¤È¸Æ¤Ð¤ì¤ëÆÃÊ̤Êʸ»úÎó¤ò -´Þ¤Þ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -³Æ¡¹¤ÎÊÑ´¹»ØÄê¤Ï \(aq%\(aq ʸ»ú¤Ç»Ï¤Þ¤ê¡¢ -¡ÖÊÑ´¹»ØÄêʸ»ú (conversion specifier character)¡×¤È¸Æ¤Ð¤ì¤ë -²¿¤é¤«Â¾¤Îʸ»ú¤Ç½ªÃ¼¤µ¤ì¤ë¡£¾åµ­°Ê³°¤ÎÁ´¤Æ¤Îʸ»úÎó¤Ï -¡ÖÄ̾ï¤Îʸ»úÎó (ordinary character sequence)¡×¤È¤Ê¤ë¡£ +書式指定は NULL 終端された文字列であり、 +「変換指定 (conversion specification)」と呼ばれる特別な文字列を +含まることができる。 +各々の変換指定は \(aq%\(aq 文字で始まり、 +「変換指定文字 (conversion specifier character)」と呼ばれる +何らか他の文字で終端される。上記以外の全ての文字列は +「通常の文字列 (ordinary character sequence)」となる。 .PP -(NULL ¥Ð¥¤¥È¤â´Þ¤à) Ä̾ï¤Îʸ»úÎóÆâ¤Îʸ»ú¤Ï¡¢ -¤½¤Î¤Þ¤Þ \fIformat\fP ¤«¤é \fIs\fP ¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¡£ -°ìÊý¡¢ÊÑ´¹»ØÄê¤Îʸ»ú¤Ï°Ê²¼¤Î¤è¤¦¤ËÃÖ´¹¤µ¤ì¤ë¡£ +(NULL バイトも含む) 通常の文字列内の文字は、 +そのまま \fIformat\fP から \fIs\fP にコピーされる。 +一方、変換指定の文字は以下のように置換される。 .TP .B %a -¸½ºß¤Î¥í¥±¡¼¥ë¤Ë¤ª¤±¤ëÍËÆü¤Î¾Êά̾¡£ +現在のロケールにおける曜日の省略名。 .TP .B %A -¸½ºß¤Î¥í¥±¡¼¥ë¤Ë¤ª¤±¤ëÍËÆü¤Î´°Á´¤Ê̾Á°¡£ +現在のロケールにおける曜日の完全な名前。 .TP .B %b -¸½ºß¤Î¥í¥±¡¼¥ë¤Ë¤ª¤±¤ë·î¤Î¾Êά̾¡£ +現在のロケールにおける月の省略名。 .TP .B %B -¸½ºß¤Î¥í¥±¡¼¥ë¤Ë¤ª¤±¤ë·î¤Î´°Á´¤Ê̾Á°¡£ +現在のロケールにおける月の完全な名前。 .TP .B %c -¸½ºß¤Î¥í¥±¡¼¥ë¤Ë¤ª¤¤¤Æ°ìÈÌŪ¤ÊÆüÉÕ¡¦»þ¹ï¤Îɽµ­¡£ +現在のロケールにおいて一般的な日付・時刻の表記。 .TP .B %C -À¤µª (À¾Îñǯ¤Î¾å 2 ·å)¡£ (SU) +世紀 (西暦年の上 2 桁)。 (SU) .TP .B %d -·îÆâÄÌ»»Æü (10 ¿Ê¿ôɽµ­) (01-31)¡£ +月内通算日 (10 進数表記) (01-31)。 .TP .B %D .B %m/%d/%y -¤ÈÅù²Á¡£(¤¦¤¨¤Ã¡¢¥¢¥á¥ê¥«ÀìÍѤÀ¡£¥¢¥á¥ê¥«°Ê³°¤Î¹ñ¤Ç¤Ï +と等価。(うえっ、アメリカ専用だ。アメリカ以外の国では .B %d/%m/%y -¤ÎÊý¤¬°ìÈÌŪ¤À¡£Ê¶¤é¤ï¤·¤¤¤Î¤Ç¡¢»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£) (SU) +の方が一般的だ。紛らわしいので、使用すべきではない。) (SU) .TP .B %e .B %d -¤ÈƱÍͤ˷îÆâÄÌ»»Æü¤ò 10 ¿Ê¿ô¤Çɽ¸½¤¹¤ë¤¬¡¢ -1 ·å¤Î¾ì¹ç 10 ¤Î°Ì¤Ë¥¼¥í¤òÃÖ¤«¤º¥¹¥Ú¡¼¥¹¤òÃÖ¤¯¡£(SU) +と同様に月内通算日を 10 進数で表現するが、 +1 桁の場合 10 の位にゼロを置かずスペースを置く。(SU) .TP .B %E -ÊÌ·Á¼°¤ò»ÈÍѤ¹¤ëºÝ¤Î½¤¾þ»Ò¡£²¼µ­»²¾È¡£ (SU) +別形式を使用する際の修飾子。下記参照。 (SU) .TP .B %F .B %Y-%m-%d -¤ÈÅù²Á (ISO\ 8601 ·Á¼°¤ÎÆüÉÕ¥Õ¥©¡¼¥Þ¥Ã¥È)¡£ (C99) +と等価 (ISO\ 8601 形式の日付フォーマット)。 (C99) .TP .B %G -ISO\ 8601 ½µÃ±°Ìɽµ­¤Îǯ (week-based year; ¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È)¡£ -À¤µª¤â 10 ¿Ê¿ô¤Çɽ¤¹¡£ -ISO ½µÈÖ¹æ +ISO\ 8601 週単位表記の年 (week-based year; 「注意」の節を参照)。 +世紀も 10 進数で表す。 +ISO 週番号 .RB ( %V -¤ò»²¾È) ¤ËÂбþ¤·¤¿ 4 ·å¤ÎÀ¾Îñǯ¡£ -¤³¤ì¤Ï´ðËÜŪ¤Ë¤Ï +を参照) に対応した 4 桁の西暦年。 +これは基本的には .B %Y -¤ÈƱ¤¸·Á¼°¤À¤¬¡¢ISO ½µ¿ô¤¬Á°Ç¯¤äÍâǯ¤Ë¤Ê¤ë -¾ì¹ç¤Ë¤Ï¤½¤Îǯ¤¬»ÈÍѤµ¤ì¤ëÅÀ¤¬°Û¤Ê¤ë¡£(TZ) +と同じ形式だが、ISO 週数が前年や翌年になる +場合にはその年が使用される点が異なる。(TZ) .TP .B %g .B %G -¤ÈƱÍÍ¡£Ã¢¤·¡¢À¤µª¤ò´Þ¤Þ¤º²¼ 2 ·å¤Î¤ß¤òɽ¼¨ (00-99)¡£ (TZ) +と同様。但し、世紀を含まず下 2 桁のみを表示 (00-99)。 (TZ) .TP .B %h .B %b -¤ÈÅù²Á (SU) +と等価 (SU) .TP .B %H -24 »þ´Öɽµ­¤Ç¤Î»þ (hour)¡£ (00-23) +24 時間表記での時 (hour)。 (00-23) .TP .B %I -12 »þ´Öɽµ­¤Ç¤Î»þ (hour)¡£ (01-12) +12 時間表記での時 (hour)。 (01-12) .TP .B %j -ǯ¤Î½é¤á¤«¤éÄÌ»»¤ÎÆü¿ô¡£ (001-366) +年の初めから通算の日数。 (001-366) .TP .B %k -24 »þ´Öɽµ­¤Ç¤Î»þ (0-23)¡£ -1 ·å¤Î¾ì¹ç¤Ë¤ÏÁ°¤Ë¥¼¥í¤Ç¤Ê¤¯¥¹¥Ú¡¼¥¹¤¬ÃÖ¤«¤ì¤ë¡£ +24 時間表記での時 (0-23)。 +1 桁の場合には前にゼロでなくスペースが置かれる。 .RB ( %H -¤â»²¾È) (TZ) +も参照) (TZ) .TP .B %l -12 »þ´Öɽµ­¤Ç¤Î»þ (0-12)¡£ -1 ·å¤Î¾ì¹ç¤Ë¤ÏÁ°¤Ë¥¼¥í¤Ç¤Ê¤¯¥¹¥Ú¡¼¥¹¤¬ÃÖ¤«¤ì¤ë¡£ +12 時間表記での時 (0-12)。 +1 桁の場合には前にゼロでなくスペースが置かれる。 .RB ( %I -¤â»²¾È) (TZ) +も参照) (TZ) .TP .B %m -·î (10 ¿Ê¿ôɽµ­)¡£ (01-12) +月 (10 進数表記)。 (01-12) .TP .B %M -ʬ (10 ¿Ê¿ôɽµ­) (00-59) +分 (10 進数表記) (00-59) .TP .B %n -²þ¹Ô¡£ (SU) +改行。 (SU) .TP .B %O -ÊÌ·Á¼°¤ò»ÈÍѤ¹¤ëºÝ¤Î½¤¾þ»Ò¡£°Ê²¼¤ò»²¾È¡£(SU) +別形式を使用する際の修飾子。以下を参照。(SU) .TP .B %p -¸½ºß¤Î¥í¥±¡¼¥ë¤Ë¤ª¤±¤ë¡Ö¸áÁ°¡×¡Ö¸á¸å¡×¤ËÁêÅö¤¹¤ëʸ»úÎó¡£ -±Ñ¸ì¤Î¾ì¹ç¤Ë¤Ï "AM" ¤Þ¤¿¤Ï "PM" ¤È¤Ê¤ë¡£ -Àµ¸á¤Ï¡Ö¸á¸å¡×¡¢¿¿ÌëÃæ¤Ï¡Ö¸áÁ°¡×¤È¤·¤Æ°·¤ï¤ì¤ë¡£ +現在のロケールにおける「午前」「午後」に相当する文字列。 +英語の場合には "AM" または "PM" となる。 +正午は「午後」、真夜中は「午前」として扱われる。 .TP .B %P .B %p -¤ÈƱÍͤǤ¢¤ë¤¬¾®Ê¸»ú¤¬»ÈÍѤµ¤ì¤ë¡£ -±Ñ¸ì¤Î¾ì¹ç¤Ë¤Ï "am" ¤ä "pm" ¤È¤Ê¤ë¡£(GNU) +と同様であるが小文字が使用される。 +英語の場合には "am" や "pm" となる。(GNU) .TP .B %r -¸áÁ°¡¦¸á¸å·Á¼°¤Ç¤Î»þ¹ï¡£ -POSIX ¥í¥±¡¼¥ë¤Ç¤Ï +午前・午後形式での時刻。 +POSIX ロケールでは .B "%I:%M:%S %p" -¤ÈÅù²Á¤Ç¤¢¤ë¡£(SU) +と等価である。(SU) .TP .B %R -24 »þ´Öɽµ­¤Ç¤Î»þ¹ï¡¢ÉäÏɽ¼¨¤·¤Ê¤¤ -.RB ( %H:%M )¡£ -Éäò´Þ¤ó¤À¤â¤Î¤Ï°Ê²¼¤Î +24 時間表記での時刻、秒は表示しない +.RB ( %H:%M )。 +秒を含んだものは以下の .B %T -¤ò»²¾È¤¹¤ë¤³¤È¡£(SU) +を参照すること。(SU) .TP .B %s -µª¸µ (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) ¤«¤é¤ÎÉÿô¡£ (TZ) +紀元 (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) からの秒数。 (TZ) .TP .B %S -Éà (10 ¿Ê¿ôɽµ­) (00-60) -(»þ¡¹¤¢¤ë±¼ÉäËÂбþ¤¹¤ë¤¿¤á¡¢ÃͤÎÈÏ°Ï¤Ï 60 ¤Þ¤Ç¤È¤Ê¤Ã¤Æ¤¤¤ë) +秒 (10 進数表記) (00-60) +(時々ある閏秒に対応するため、値の範囲は 60 までとなっている) .TP .B %t -¥¿¥Öʸ»ú (SU) +タブ文字 (SU) .TP .B %T -24 »þ´Öɽµ­¤Î»þ´Ö (\fB%H:%M:%S\fP) (SU) +24 時間表記の時間 (\fB%H:%M:%S\fP) (SU) .TP .B %u -½µ¤Î²¿ÈÖÌܤÎÆü (10 ¿Ê¿ôɽµ­) ¤«¡£·îÍËÆü¤ò 1 ¤È¤¹¤ë (1-7)¡£ +週の何番目の日 (10 進数表記) か。月曜日を 1 とする (1-7)。 .B %w -¤â»²¾È¡£(SU) +も参照。(SU) .TP .B %U -ǯ¤Î½é¤á¤«¤é¤ÎÄÌ»»¤Î½µÈÖ¹æ (10 ¿Ê¿ôɽµ­) (00-53)¡£ -¤½¤Îǯ¤ÎºÇ½é¤ÎÆüÍËÆü¤ò¡¢Âè 1 ½µ¤Î»Ï¤Þ¤ê¤È¤·¤Æ·×»»¤¹¤ë¡£ +年の初めからの通算の週番号 (10 進数表記) (00-53)。 +その年の最初の日曜日を、第 1 週の始まりとして計算する。 .B %V -¤È +と .B %W -¤â»²¾È¤¹¤ë¤³¤È¡£ +も参照すること。 .TP .B %V -ISO\ 8601 ·Á¼°¤Ç¤Îǯ¤Î»Ï¤á¤«¤é¤Î½µÈÖ¹æ (¡ÖÃí°Õ¡×¤ÎÀá¤ò»²¾È)¡£ -10 ¿Ê¿ôɽµ­¤Ç¡¢01 ¤«¤é 53 ¤ÎÃͤȤʤ롣½µÈÖ¹æ¤Ï¡¢ -¿·¤·¤¤Ç¯¤¬¾¯¤Ê¤¯¤È¤â 4 Æü°Ê¾å´Þ¤Þ¤ì¤ëºÇ½é¤Î½µ¤ò 1 ¤È¤·¤Æ·×»»¤¹¤ë¡£ +ISO\ 8601 形式での年の始めからの週番号 (「注意」の節を参照)。 +10 進数表記で、01 から 53 の値となる。週番号は、 +新しい年が少なくとも 4 日以上含まれる最初の週を 1 として計算する。 .B %U -¤È +と .B %W -¤â»²¾È¤Î¤³¤È¡£(SU) +も参照のこと。(SU) .TP .B %w -½µ¤Î²¿ÈÖÌܤÎÆü (10 ¿Ê¿ôɽµ­) ¤«¡£ÆüÍËÆü¤ò 0 ¤È¤¹¤ë¡£(0-6)¡£ +週の何番目の日 (10 進数表記) か。日曜日を 0 とする。(0-6)。 .B %u -¤â»²¾È¡£(SU) +も参照。(SU) .TP .B %W -ǯ¤Î½é¤á¤«¤é¤ÎÄÌ»»¤Î½µÈÖ¹æ (10 ¿Ê¿ôɽµ­) (00-53)¡£ -¤½¤Îǯ¤ÎºÇ½é¤Î·îÍËÆü¤ò¡¢Âè 1 ½µ¤Î»Ï¤Þ¤ê¤È¤·¤Æ·×»»¤¹¤ë¡£ +年の初めからの通算の週番号 (10 進数表記) (00-53)。 +その年の最初の月曜日を、第 1 週の始まりとして計算する。 .TP .B %x -¸½ºß¤Î¥í¥±¡¼¥ë¤Ç°ìÈÌŪ¤ÊÆüÉÕɽµ­¡£»þ¹ï¤Ï´Þ¤Þ¤Ê¤¤¡£ +現在のロケールで一般的な日付表記。時刻は含まない。 .TP .B %X -¸½ºß¤Î¥í¥±¡¼¥ë¤Ç°ìÈÌŪ¤Ê»þ¹ïɽµ­¡£ÆüÉդϴޤޤʤ¤¡£ +現在のロケールで一般的な時刻表記。日付は含まない。 .TP .B %y -À¾Îñ¤Î²¼2·å (À¤µªÉôʬ¤ò´Þ¤Þ¤Ê¤¤Ç¯) (00-99)¡£ +西暦の下2桁 (世紀部分を含まない年) (00-99)。 .TP .B %Y -À¤µªÉôʬ¤ò´Þ¤á¤¿ ( 4 ·å¤Î) À¾Îñǯ¡£ +世紀部分を含めた ( 4 桁の) 西暦年。 .TP .B %z .I +hhmm -¤ä +や .I -hhmm -¤Î·Á¼°¤Î¥¿¥¤¥à¥¾¡¼¥ó (UTC ¤Ø¤Î¥ª¥Õ¥»¥Ã¥È»þ´Ö)¡£(SU) +の形式のタイムゾーン (UTC へのオフセット時間)。(SU) .TP .B %Z -¥¿¥¤¥à¥¾¡¼¥ó¤Þ¤¿¤Ï¥¾¡¼¥ó̾¤Þ¤¿¤Ï¾Êά̾¡£ +タイムゾーンまたはゾーン名または省略名。 .TP .B %+ .\" Nov 05 -- Not in Linux/glibc, but is in some BSDs (according to .\" their man pages) .BR date (1) -·Á¼°¤Ç¤ÎÆü»þ¡£(TZ) -(glibc2 ¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤) +形式での日時。(TZ) +(glibc2 ではサポートされていない) .TP .B %% -\(aq%\(aq ʸ»ú¡£ +\(aq%\(aq 文字。 .PP -¤¤¤¯¤Ä¤«¤ÎÊÑ´¹»ØÄê¤Ç¤Ï¡¢ÊÑ´¹»ØÄêʸ»ú¤ÎÁ°¤Ë +いくつかの変換指定では、変換指定文字の前に .B E -¤ä +や .B O -¡Ö½¤¾þ»Ò¡×¤òÃÖ¤¯¤³¤È¤Ë¤è¤Ã¤ÆÊ̽ñ¼°¤ò»ÈÍѤ¹¤ë¤è¤¦¤Ë»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¸½ºß¤Î¥í¥±¡¼¥ë¤Ë¤ª¤¤¤ÆÊ̽ñ¼°¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ -Ä̾ï¤ÎÊÑ´¹»ØÄ꤬»ÈÍѤµ¤ì¤¿¤«¤Î¤è¤¦¤ËÆ°ºî¤¹¤ë (SU)¡£ -Åý°ì UNIX µ¬³Ê (Single UNIX Specification) ¤Ç¤Ï +「修飾子」を置くことによって別書式を使用するように指定することができる。 +現在のロケールにおいて別書式が存在しない場合には、 +通常の変換指定が使用されたかのように動作する (SU)。 +統一 UNIX 規格 (Single UNIX Specification) では .BR %Ec , .BR %EC , .BR %Ex , @@ -295,148 +295,148 @@ ISO\ 8601 .BR %Ow , .BR %OW , .BR %Oy , -¤Ë¤Ä¤¤¤Æµ­½Ò¤¬¤¢¤ë¡£¤³¤³¤Ç +について記述がある。ここで .B O -½¤¾þ»Ò¤ÏÊÌ·Á¼°¤Î¿ôÃÍ (¥í¡¼¥Þ¿ô»ú¤È¤«) ¤ò»ØÄꤹ¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£ +修飾子は別形式の数値 (ローマ数字とか) を指定するために使用する。 .B E -½¤¾þ»Ò¤Ï¥í¥±¡¼¥ë°Í¸¤ÎÊÌɽ¸½¤ò»ØÄꤹ¤ë¤Î¤Ë»ÈÍѤ¹¤ë¡£ -(ÌõÃí: +修飾子はロケール依存の別表現を指定するのに使用する。 +(訳注: .B E -½¤¾þ»Ò¤ÏÆüËܤǻÈÍѤµ¤ì¤Æ¤¤¤ë¡Ö¾¼Ï¡סÖÊ¿À®¡× -¤Ê¤É¤Î¸µ¹æ¤Ë¤è¤ëǯɽµ­¤ò»ØÄꤹ¤ë¡£glibc 2.2 °Ê¹ß¤Ç¤Î¤ßÍ­¸ú) +修飾子は日本で使用されている「昭和」「平成」 +などの元号による年表記を指定する。glibc 2.2 以降でのみ有効) .PP -Í×ÁÇÊ̤λþ¹ï¹½Â¤ÂÎ \fItm\fP ¤Î¾ÜºÙ¤Ï \fI\fP ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +要素別の時刻構造体 \fItm\fP の詳細は \fI\fP に定義されている。 .BR ctime (3) -¤â»²¾È¤¹¤ë¤³¤È¡£ -.SH ÊÖ¤êÃÍ +も参照すること。 +.SH 返り値 .BR strftime () -´Ø¿ô¤Ïʸ»úÎó \fIs\fP ¤Ë³ÊǼ¤µ¤ì¤¿Ê¸»ú¿ô¤òÊÖ¤¹¡£ -¤³¤Îʸ»ú¿ô¤Ë½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤Ï´Þ¤Þ¤Ê¤¤¡£ -½ªÃ¼¤Î NULL ¥Ð¥¤¥È¤ò³ÊǼ¤Ç¤­¤ë¤À¤±¤ÎÂ礭¤µ¤ò»ý¤Ã¤¿Ê¸»úÎó¤òÅϤ¹¤³¤È¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤òÊÖ¤·¡¢Ê¸»úÎó¤ÎÆâÍƤϽ¤Àµ¤µ¤ì¤Ê¤¤¡£ -(libc 4.4.4 °Ê¹ß¤Ç¤³¤ÎµóÆ°¤¬Å¬ÍѤµ¤ì¤Æ¤¤¤ë¡£ -libc 4.4.1 ¤Ê¤É¤ÎÈó¾ï¤Ë¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Î libc ¤Ç¤Ï -ʸ»úÎó¤¬Ã»¤«²á¤®¤¿¾ì¹ç¤Ë¤Ï \fImax\fP ¤¬ÊÖ¤µ¤ì¤ë¡£) +関数は文字列 \fIs\fP に格納された文字数を返す。 +この文字数に終端の NULL バイトは含まない。 +終端の NULL バイトを格納できるだけの大きさを持った文字列を渡すこと。 +それ以外の場合は 0 を返し、文字列の内容は修正されない。 +(libc 4.4.4 以降でこの挙動が適用されている。 +libc 4.4.1 などの非常に古いバージョンの libc では +文字列が短か過ぎた場合には \fImax\fP が返される。) .LP -ÊÖ¤êÃÍ 0 ¤Ïɬ¤º¤·¤â¥¨¥é¡¼¤ò°ÕÌ£¤·¤Æ¤¤¤ëÌõ¤Ç¤Ï¤Ê¤¤¤Î¤ÇÃí°Õ¤¹¤ë¤³¤È¡£ -Î㤨¤Ð¡¢Â¿¤¯¤Î¥í¥±¡¼¥ë¤Ç¤Ï +返り値 0 は必ずしもエラーを意味している訳ではないので注意すること。 +例えば、多くのロケールでは .B %p -¤Ï¶õʸ»úÎó¤òÊÖ¤¹¡£ -.SH ´Ä¶­ÊÑ¿ô -´Ä¶­ÊÑ¿ô +は空文字列を返す。 +.SH 環境変数 +環境変数 .B TZ -¤È +と .B LC_TIME -¤¬»ÈÍѤµ¤ì¤ë¡£ -(ÌõÃí: +が使用される。 +(訳注: .B LC_ALL -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï +が設定されている場合には .B LC_TIME -¤è¤ê¤â¤½¤Á¤é¤¬Í¥À褵¤ì¤ë¡£ +よりもそちらが優先される。 .B LC_TIME -¤â +も .B LC_ALL -¤âÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï +も設定されていない場合には .B LANG -¤¬»ÈÍѤµ¤ì¤ë¡£) -.SH ½àµò +が使用される。) +.SH 準拠 SVr4, C89, C99. -¸Ä¡¹¤ÎÊÑ´¹¤¬¸·Ì©¤Ë¤É¤Îµ¬³Ê¤Ë´Þ¤Þ¤ì¤ë¤«¤Ï¡¢ -ANSI C (°õ¤Ê¤·)¡¢Åý°ì UNIX µ¬³Ê (SU°õ)¡¢Olson ¤Î timezone ¥Ñ¥Ã¥±¡¼¥¸ (TZ°õ)¡¢ -glibc Æȼ« (GNU°õ) ¤Ç¼¨¤·¤Æ¤¤¤ë¡£glibc2 ¤Ç¤Ï +個々の変換が厳密にどの規格に含まれるかは、 +ANSI C (印なし)、統一 UNIX 規格 (SU印)、Olson の timezone パッケージ (TZ印)、 +glibc 独自 (GNU印) で示している。glibc2 では .B %+ -¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -¤¤¤¯¤Ä¤«¤Î³ÈÄ¥¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë¡£POSIX.1 ¤Ç¤Ï ANSI C ¤Î¤ß¤ò»²¾È¤·¤Æ¤¤¤ë¡£ -POSIX.2 ¤Î +はサポートされていないが、 +いくつかの拡張が行われている。POSIX.1 では ANSI C のみを参照している。 +POSIX.2 の .BR date (1) -¤Î¤È¤³¤í¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë´ö¤Ä¤«¤Î³ÈÄ¥¤Ï +のところに記述されている幾つかの拡張は .BR strftime () -¤Ë¤âŬÍѤǤ­¤ë¤À¤í¤¦¡£ +にも適用できるだろう。 .B %F -ÊÑ´¹¤Ï C99 ¤È POSIX.1-2001 ¤Ë¤¢¤ë¡£ +変換は C99 と POSIX.1-2001 にある。 -SUSv2 ¤Ç¤Ï¡¢ +SUSv2 では、 .B %S -¤Ï 00 ¤«¤é 61 ¤ÎÈϰϤò¤È¤ë¤Èµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï¡¢1ʬ´Ö¤Î¤¦¤Á±¼Éä¬ 2¤ÄÆþ¤ë²ÄǽÀ­¤¬ÍýÏÀŪ¤Ë¤Ï¤¢¤ë¤³¤È¤ò -¹Íθ¤·¤Æ¤Î¤â¤Î¤Ç¤¢¤ë (¼ÂºÝ¤Ë¤Ï¡¢¤³¤Î¤è¤¦¤Ê¾õ¶·¤Ï¤³¤ì¤Þ¤Ç°ìÅÙ¤â -µ¯¤³¤Ã¤Æ¤¤¤Ê¤¤)¡£ -.SH Ãí°Õ -.SS ISO\ 8601 ¤Î½µ¡¦ÍËÆüɽµ­ (Week Dates) +は 00 から 61 の範囲をとると規定されている。 +これは、1分間のうち閏秒が 2つ入る可能性が理論的にはあることを +考慮してのものである (実際には、このような状況はこれまで一度も +起こっていない)。 +.SH 注意 +.SS ISO\ 8601 の週・曜日表記 (Week Dates) .BR %G , .BR %g , .BR %V -¤Ï¡¢ISO\ 8601 ɸ½à¤Ë¤è¤êÄêµÁ¤µ¤ì¤¿½µÃ±°Ìɽµ­¤Îǯ¤Ë¤è¤ê -·×»»¤µ¤ì¤ëÃͤò½ÐÎϤ¹¤ë¡£ -ISO\ 8601 ɸ½à¤Î½µÃ±°Ìɽµ­¤Ç¤Ï¡¢½µ¤Ï·îÍËÆü¤«¤é³«»Ï¤µ¤ì¡¢ -½µÈÖ¹æ¤Ï¡¢Ç¯¤ÎºÇ½é¤Î½µ¤¬ 01 ¤È¤Ê¤ê¡¢ºÇ¸å¤Î½µ¤Ï 52 ¤« 53 ¤È¤Ê¤ë¡£ -½µ 01 ¤Ï¡¢¿·¤·¤¤Ç¯¤¬ 4 Æü°Ê¾å´Þ¤Þ¤ì¤ëºÇ½é¤Î½µ¤Ç¤¢¤ë¡£ -¸À¤¤´¹¤¨¤ë¤È¡¢½µ 01 ¤Ï¡¢¤½¤Îǯ¤ÎÌÚÍËÆü¤ò´Þ¤àºÇ½é¤Î½µ¡¢ -¤Ä¤Þ¤ê 1 ·î 4 Æü¤ò´Þ¤à½µ¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ -¿·¤·¤¤Ç¯¤Î¥«¥ì¥ó¥À¡¼¾å¤ÎºÇ½é¤Î½µ¤Ë¿·¤·¤¤Ç¯¤¬ 3 Æü°Ê²¼¤·¤«´Þ¤Þ¤ì¤Ê¤¤¾ì¹ç¡¢ -ISO\ 8601 ¤Î½µÃ±°Ìɽµ­¤Ç¤Ï¡¢¤³¤ì¤é¤ÎÆü¤òÁ°¤Îǯ¤Î½µ 53 ¤Î°ìÉô¤È¤ß¤Ê¤¹¡£ -Î㤨¤Ð¡¢2010 ǯ 1 ·î 1 Æü¤Ï¶âÍËÆü¤Ç¤¢¤ê¡¢ -¤½¤Î½µ¤Ë¤Ï 2010 ǯ¤ÎÆü¤¬ 3 Æü¤·¤«´Þ¤Þ¤ì¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢ISO\ 8601 ¤Î½µÃ±°Ìɽµ­¤Ç¤Ï¡¢¤³¤ì¤é¤ÎÆü¤Ï 2009 ǯ (\fB%G\fP) -¤Î½µ 53 (\fB%V\fP) ¤Î°ìÉô¤È¤Ê¤ë¡£ -ISO\ 8601 ¤Î 2010 ǯ¤Î½µ 01 ¤Ï 2010 ǯ 1 ·î 4 Æü¤Î·îÍËÆü¤«¤é»Ï¤Þ¤ë¡£ -.SS glibc ¤Ç¤ÎÃí°Õ -glibc ¤Ç¤ÏÊÑ´¹»ØÄê¤Ë¤¤¤¯¤Ä¤«³ÈÄ¥¤ò¹Ô¤Ã¤Æ¤¤¤ë -(¤³¤ì¤é¤Î³ÈÄ¥¤Ï POSIX.1-2001 ¤Ë¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -¾¤Î¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤ÇƱÍͤε¡Ç½¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë)¡£ -.\" HP-UX ¤È Tru64 ¤Ë¤âƱÍͤε¡Ç½¤¬¤¢¤ë¡£ -\(aq%\(aq ʸ»ú¤ÈÊÑ´¹»ØÄêʸ»ú¤Î´Ö¤Ë¡¢¥ª¥×¥·¥ç¥ó¤È¤·¤Æ +は、ISO\ 8601 標準により定義された週単位表記の年により +計算される値を出力する。 +ISO\ 8601 標準の週単位表記では、週は月曜日から開始され、 +週番号は、年の最初の週が 01 となり、最後の週は 52 か 53 となる。 +週 01 は、新しい年が 4 日以上含まれる最初の週である。 +言い換えると、週 01 は、その年の木曜日を含む最初の週、 +つまり 1 月 4 日を含む週ということである。 +新しい年のカレンダー上の最初の週に新しい年が 3 日以下しか含まれない場合、 +ISO\ 8601 の週単位表記では、これらの日を前の年の週 53 の一部とみなす。 +例えば、2010 å¹´ 1 月 1 日は金曜日であり、 +その週には 2010 年の日が 3 日しか含まれない。 +したがって、ISO\ 8601 の週単位表記では、これらの日は 2009 å¹´ (\fB%G\fP) +の週 53 (\fB%V\fP) の一部となる。 +ISO\ 8601 の 2010 年の週 01 は 2010 å¹´ 1 月 4 日の月曜日から始まる。 +.SS glibc での注意 +glibc では変換指定にいくつか拡張を行っている +(これらの拡張は POSIX.1-2001 には規定されていないが、 +他のいくつかのシステムで同様の機能が提供されている)。 +.\" HP-UX と Tru64 にも同様の機能がある。 +\(aq%\(aq 文字と変換指定文字の間に、オプションとして .I flag -¤È¥Õ¥£¡¼¥ë¥É¤Î -.I Éý -¤ò»ØÄê¤Ç¤­¤ë (¤³¤ì¤é¤ò»ØÄꤹ¤ë¾ì¹ç¤Ë¤Ï +とフィールドの +.I 幅 +を指定できる (これらを指定する場合には .B E -¤ä +や .B O -½¤¾þ»Ò¤ÎÁ°¤ËÃÖ¤¯)¡£ +修飾子の前に置く)。 -°Ê²¼¤Î¥Õ¥é¥°Ê¸»ú¤¬»ÈÍѤǤ­¤ë: +以下のフラグ文字が使用できる: .TP .B _ -(²¼Àþ) -¿ôÃͤηë²Ìʸ»úÎó¤Î¥Ñ¥Ç¥£¥ó¥° (·êËä¤á) ¤ò¥¹¥Ú¡¼¥¹ (¶õÇòʸ»ú) ¤Ç¹Ô¤¦¡£ +(下線) +数値の結果文字列のパディング (穴埋め) をスペース (空白文字) で行う。 .TP .B \- -(¥À¥Ã¥·¥å) -¿ôÃͤηë²Ìʸ»úÎó¤ËÂФ¹¤ë¥Ñ¥Ç¥£¥ó¥°¤ò¹Ô¤ï¤Ê¤¤¡£ +(ダッシュ) +数値の結果文字列に対するパディングを行わない。 .TP .B 0 -ÊÑ´¹»ØÄêʸ»ú¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥¹¥Ú¡¼¥¹¤Ç¥Ñ¥Ç¥£¥ó¥°¤ò¹Ô¤¦¾ì¹ç¤Ç¤â¡¢ -¿ôÃͤηë²Ìʸ»úÎó¤Ø¤Î¥Ñ¥Ç¥£¥ó¥°¤ò 0 ¤Ç¹Ô¤¦¡£ +変換指定文字がデフォルトではスペースでパディングを行う場合でも、 +数値の結果文字列へのパディングを 0 で行う。 .TP .B ^ -·ë²Ìʸ»úÎóÃæ¤Î¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»ú¤òÂçʸ»ú¤ËÊÑ´¹¤¹¤ë¡£ +結果文字列中のアルファベット文字を大文字に変換する。 .TP .B # -·ë²Ìʸ»úÎó¤ÎÂçʸ»ú¡¦¾®Ê¸»ú¤òÆþ¤ìÂؤ¨¤ë -(¤³¤Î¥Õ¥é¥°¤ÏÆÃÄê¤ÎÊÑ´¹»ØÄêʸ»ú¤Ç¤·¤«µ¡Ç½¤·¤Ê¤¤¡£¤½¤ÎÃæ¤Ç¤â -ËÜÅö¤ËÍ­ÍÑ¤Ê¤Î¤Ï +結果文字列の大文字・小文字を入れ替える +(このフラグは特定の変換指定文字でしか機能しない。その中でも +本当に有用なのは .B %Z -¤Î¾ì¹ç¤À¤±¤Ç¤¢¤ë)¡£ +の場合だけである)。 .PP -¥ª¥×¥·¥ç¥ó¤Î10¿Ê¿ô¤ÎÉý»ØÄê»Ò¤Ï¥Õ¥é¥°¤Î¸å¤í¤ËÃÖ¤¯¤³¤È¤¬¤Ç¤­¤ë -(¥Õ¥é¥°¤Ï¤Ê¤¯¤Æ¤â¤è¤¤)¡£¥Õ¥£¡¼¥ë¥É¤ÎËÜÍè¤ÎÂ礭¤µ¤¬»ØÄꤵ¤ì¤¿Éý¤è¤ê¤â -¾®¤µ¤¤¾ì¹ç¡¢·ë²Ìʸ»úÎó¤Îº¸Â¦¤Ï»ØÄꤵ¤ì¤¿Éý¤Þ¤Ç¥Ñ¥Ç¥£¥ó¥°¤µ¤ì¤ë¡£ -.SH ¥Ð¥° +オプションの10進数の幅指定子はフラグの後ろに置くことができる +(フラグはなくてもよい)。フィールドの本来の大きさが指定された幅よりも +小さい場合、結果文字列の左側は指定された幅までパディングされる。 +.SH バグ .BR gcc (1) -¤Î¤¤¤¯¤Ä¤«¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤Ï¤ª¤«¤·¤Ê¤È¤³¤í¤¬¤¢¤ê¡¢ +のいくつかのバージョンにはおかしなところがあり、 .B %c -¤Î»ÈÍÑË¡¤Ë¤Ä¤¤¤Æ°Ê²¼¤Î¤è¤¦¤Ê·Ù¹ð¤ò½Ð¤¹: +の使用法について以下のような警告を出す: .I "warning: `%c' yields only last 2 digits of year in some locales" -.RI ( ·Ù¹ð: ¤¤¤¯¤Ä¤«¤Î¥í¥±¡¼¥ë¤Ç¤Ï `%c' ¤Ïǯ¤Î²¼2·å¤·¤«½ÐÎϤ·¤Ê¤¤ )¡£ -¤â¤Á¤í¤ó¥×¥í¥°¥é¥Þ¤¬ +.RI ( 警告: いくつかのロケールでは `%c' は年の下2桁しか出力しない )。 +もちろんプログラマが .B %c -¤ò»È¤¦¤Î¤Ï¤ªÁ¦¤á¤Ç¤­¤ë¤³¤È¤Ç¤¢¤ë¡£ +を使うのはお薦めできることである。 .B %c -¤ò»È¤¦¤ÈŬÀÚ¤ÊÆüÉդȻþ¹ï¤Îɽµ­¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¤«¤é¤Ç¤¢¤ë¡£ +を使うと適切な日付と時刻の表記を得ることができるからである。 .BR gcc (1) -¤Î¤³¤ÎÌäÂê¤ò²óÈò¤·¤è¤¦¤È¤¹¤ë¤È¡¢²¿¤«¤¹¤Ã¤­¤ê¤·¤Ê¤¤µ¤Ê¬¤Ë¤Ê¤ë¤À¤í¤¦¡£ -Èæ³ÓŪ¤­¤ì¤¤¤Ê²ò·èÊýË¡¤Ï°Ê²¼¤Î¤è¤¦¤ÊÃæ´Ö´Ø¿ô¤òÄɲ乤뤳¤È¤Ç¤¢¤ë¡£ +のこの問題を回避しようとすると、何かすっきりしない気分になるだろう。 +比較的きれいな解決方法は以下のような中間関数を追加することである。 .in +4n .nf @@ -450,30 +450,30 @@ my_strftime(char *s, size_t max, const char *fmt, .in .RE -¸½ºß¤Ç¤Ï¡¢ +現在では、 .BR gcc (1) -¤Ï¤³¤Î·Ù¹ð¤òÍÞ¤¨¤ë¤¿¤á¤Î \fI\-Wno\-format\-y2k\fP ¥ª¥×¥·¥ç¥ó¤ò -Ä󶡤·¤Æ¤ª¤ê¡¢¾åµ­¤Î²óÈòºö¤Ï¤â¤Ï¤äɬÍפʤ¤¡£ -.SH Îã -.B "RFC\ 2822 ½àµò¤ÎÆüÉÕ·Á¼°" -(%a ¤È %b ¤Ï±Ñ¸ì¥í¥±¡¼¥ë) +はこの警告を抑えるための \fI\-Wno\-format\-y2k\fP オプションを +提供しており、上記の回避策はもはや必要ない。 +.SH 例 +.B "RFC\ 2822 準拠の日付形式" +(%a と %b は英語ロケール) .PP .in +2n "%a,\ %d\ %b\ %Y\ %T\ %z" .PP -.B "RFC\ 822 ½àµò¤ÎÆüÉÕ·Á¼°" -(%a ¤È %b ¤Ï±Ñ¸ì¥í¥±¡¼¥ë) +.B "RFC\ 822 準拠の日付形式" +(%a と %b は英語ロケール) .PP .in +2n "%a,\ %d\ %b\ %y\ %T\ %z" -.SS ¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à -°Ê²¼¤Î¥×¥í¥°¥é¥à¤ò»È¤¦¤È +.SS サンプルプログラム +以下のプログラムを使うと .BR strftime () -¤Î¼Â¸³¤¬¤Ç¤­¤ë¡£ +の実験ができる。 .PP -°Ê²¼¤Ë¡¢ +以下に、 .BR strftime () -¤Î glibc ¼ÂÁõ¤¬À¸À®¤¹¤ë·ë²Ì¤ÎÎã¤ò¤¤¤¯¤Ä¤«¼¨¤¹: +の glibc 実装が生成する結果の例をいくつか示す: .nf .RB "$" " ./a.out \(aq%m\(aq" @@ -485,7 +485,7 @@ Result string is " 11" .fi .in .PP -¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹¤Ï°Ê²¼¤ÎÄ̤ê: +プログラムのソースは以下の通り: .nf #include @@ -497,9 +497,9 @@ main(int argc, char *argv[]) { char outstr[200]; .PP -°Ê²¼¤Ë¡¢ +以下に、 .BR strftime () -¤Î glibc ¼ÂÁõ¤¬À¸À®¤¹¤ë·ë²Ì¤ÎÎã¤ò¤¤¤¯¤Ä¤«¼¨¤¹: +の glibc 実装が生成する結果の例をいくつか示す: .nf $ ./a.out "%m" @@ -528,7 +528,7 @@ Result string is " 11" exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR date (1), .BR time (2), .BR ctime (3), diff --git a/release/man3/string.3 b/release/man3/string.3 index 150be324..681b619e 100644 --- a/release/man3/string.3 +++ b/release/man3/string.3 @@ -32,12 +32,12 @@ .\" by YOSHINO Takashi .\" .TH STRING 3 2010-02-25 "" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 stpcpy, strcasecmp, strcat, strchr, strcmp, strcoll, strcpy, strcspn, strdup, strfry, strlen, strncat, strncmp, strncpy, strncasecmp, strpbrk, strrchr, strsep, strspn, strstr, strtok, strxfrm, index, rindex -\- ʸ»úÎó¤òÁàºî¤¹¤ë´Ø¿ô -.SH ½ñ¼° +\- 文字列を操作する関数 +.SH 書式 .nf .B #include .sp @@ -91,11 +91,11 @@ strrchr, strsep, strspn, strstr, strtok, strxfrm, index, rindex .sp .BI "size_t strxfrm(char *" dest ", const char *" src ", size_t " n ); .fi -.SH ÀâÌÀ -ʸ»úÎó´Ø¿ô¤Ï¡¢NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ë -ÂФ·¤Æ¡¢Ê¸»úÎóÁàºî¤ò¼Â¹Ô¤¹¤ë¡£ -¤½¤ì¤¾¤ì¤Î´Ø¿ô¤ÎÀâÌÀ¤Ë¤Ä¤¤¤Æ¤Ï¸Ä¡¹¤Îman¥Ú¡¼¥¸¤ò¸«¤è¡£ -.SH ´ØÏ¢¹àÌÜ +.SH 説明 +文字列関数は、NULL 終端された文字列に +対して、文字列操作を実行する。 +それぞれの関数の説明については個々のmanページを見よ。 +.SH 関連項目 .BR index (3), .BR rindex (3), .BR stpcpy (3), diff --git a/release/man3/strlen.3 b/release/man3/strlen.3 index 30669ecc..254da10b 100644 --- a/release/man3/strlen.3 +++ b/release/man3/strlen.3 @@ -32,24 +32,24 @@ .\" by YOSHINO Takashi .\" .TH STRLEN 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -strlen \- ʸ»úÎó¤ÎŤµ¤ò·×»»¤¹¤ë -.SH ½ñ¼° +.SH 名前 +strlen \- 文字列の長さを計算する +.SH 書式 .nf .B #include .sp .BI "size_t strlen(const char *" s ); .fi -.SH ÀâÌÀ +.SH 説明 .BR strlen () -´Ø¿ô¤Ïʸ»úÎó \fIs\fP ¤ÎŤµ¤ò·×»»¤¹¤ë¡£ -¤³¤Î¤È¤­¡¢½ªÃ¼ NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Ï·×»»¤Ë´Þ¤Þ¤ì¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +関数は文字列 \fIs\fP の長さを計算する。 +このとき、終端 NULL バイト (\(aq\\0\(aq) は計算に含まれない。 +.SH 返り値 .BR strlen () -´Ø¿ô¤Ï \fIs\fP ¤ÎÃæ¤Îʸ»ú¿ô¤òÊÖ¤¹¡£ -.SH ½àµò +関数は \fIs\fP の中の文字数を返す。 +.SH 準拠 SVr4, 4.3BSD, C89, C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR string (3), .BR strnlen (3), .BR wcslen (3), diff --git a/release/man3/strnlen.3 b/release/man3/strnlen.3 index da242e20..179774ad 100644 --- a/release/man3/strnlen.3 +++ b/release/man3/strnlen.3 @@ -14,9 +14,9 @@ .\" by HANATAKA Shinya .\" .TH STRNLEN 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -strnlen \- ¸ÇÄêŤÎʸ»úÎó¤ÎŤµ¤òÄ´¤Ù¤ë -.SH ½ñ¼° +.SH 名前 +strnlen \- 固定長の文字列の長さを調べる +.SH 書式 .nf .B #include .sp @@ -24,9 +24,9 @@ strnlen \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR strnlen (): @@ -34,28 +34,28 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR strnlen () -´Ø¿ô¤Ï \fIs\fP ¤¬»Ø¤¹Ê¸»úÎó¤ÎŤµ¤ò¥Ð¥¤¥È¿ô¤ÇÊÖ¤¹¡£ -Ťµ¤Ë¤Ï½ªÃ¼¤Î NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Ï´Þ¤Þ¤Ê¤¤¡£ -¤Þ¤¿Ä¹¤µ¤ÏºÇÂç¤Ç \fImaxlen\fP ¤Þ¤Ç¤Ç¤¢¤ê¡¢ +関数は \fIs\fP が指す文字列の長さをバイト数で返す。 +長さには終端の NULL バイト (\(aq\\0\(aq) は含まない。 +また長さは最大で \fImaxlen\fP までであり、 .BR strnlen () -¤Ï \fIs\fP ¤ÎºÇ½é¤Î \fImaxlen\fP ¥Ð¥¤¥È¤Î¤ß¤ò¸¡ºº¤· -\fIs+maxlen\fP ¤è¤êÀè¤ò¸¡ºº¤¹¤ë¤³¤È¤Ï¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +は \fIs\fP の最初の \fImaxlen\fP バイトのみを検査し +\fIs+maxlen\fP より先を検査することはない。 +.SH 返り値 .BR strnlen () -´Ø¿ô¤Ï \fImaxlen\fP °Ê²¼¤Ê¤é¤Ð \fIstrlen(s)\fP ¤ÈƱ¤¸ -ÃͤòÊÖ¤¹¡£\fIs\fP ¤Î»Ø¤¹Ê¸»úÎ󤬺ÇÂç \fImaxlen\fP ¥Ð¥¤¥È¤Þ¤Ç¤Ë -NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ʸ»ú¤ò´Þ¤Þ¤Ê¤¤¾ì¹ç¤Ë¤Ï \fImaxlen\fP ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は \fImaxlen\fP 以下ならば \fIstrlen(s)\fP と同じ +値を返す。\fIs\fP の指す文字列が最大 \fImaxlen\fP バイトまでに +NULL バイト (\(aq\\0\(aq) 文字を含まない場合には \fImaxlen\fP を返す。 +.SH 準拠 POSIX.1-2008. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strlen (3) diff --git a/release/man3/strpbrk.3 b/release/man3/strpbrk.3 index 5df67307..31459176 100644 --- a/release/man3/strpbrk.3 +++ b/release/man3/strpbrk.3 @@ -33,27 +33,27 @@ .\" Updated Sat Dec 11 00:44:56 JST 1999 .\" by Kentaro Shirakata .TH STRPBRK 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -strpbrk \- ʸ»ú¥»¥Ã¥ÈÃæ¤Îʸ»ú¤òʸ»úÎ󤫤鸡½Ð¤¹¤ë -.SH ½ñ¼° +.SH 名前 +strpbrk \- 文字セット中の文字を文字列から検出する +.SH 書式 .nf .B #include .sp .BI "char *strpbrk(const char *" s ", const char *" accept ); .fi -.SH ÀâÌÀ +.SH 説明 .BR strpbrk () -´Ø¿ô¤Ïʸ»úÎó \fIaccept\fP ¤Ë´Þ¤Þ¤ì¤ëʸ»ú¤¬Ê¸»úÎó \fIs\fP ¤Ë -¤ª¤¤¤ÆºÇ½é¤Ë¸½¤ì¤ë°ÌÃÖ¤òÁܤ·½Ð¤¹¡£ -.SH ÊÖ¤êÃÍ +関数は文字列 \fIaccept\fP に含まれる文字が文字列 \fIs\fP に +おいて最初に現れる位置を捜し出す。 +.SH 返り値 .BR strpbrk () -´Ø¿ô¤Ï¡¢ \fIs\fP ¤Ë´Þ¤Þ¤ì¤ëʸ»ú¤Î¤¦¤Á¡¢ -\fIaccept\fP ¤Ë´Þ¤Þ¤ì¤ëʸ»ú¤Î¤É¤ì¤«¤Ë°ìÃפ·¤¿¤â¤Î¤Ø¤Î -¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤½¤Î¤è¤¦¤Êʸ»ú¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、 \fIs\fP に含まれる文字のうち、 +\fIaccept\fP に含まれる文字のどれかに一致したものへの +ポインタを返す。 +そのような文字が見つからなかった場合は NULL を返す。 +.SH 準拠 SVr4, 4.3BSD, C89, C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR index (3), .BR memchr (3), .BR rindex (3), diff --git a/release/man3/strptime.3 b/release/man3/strptime.3 index 5abea3a6..d8f8ff6b 100644 --- a/release/man3/strptime.3 +++ b/release/man3/strptime.3 @@ -38,355 +38,355 @@ .\" Updated Sat Jan 5 22:17:34 JST 2002 by Yuichi SATO .\" Updated Wed Jan 14 23:21:57 JST 2002 by Akihiro MOTOKI .\" -.\"WORD: modifier ½¤Àµ»Ò -.\"WORD: broken-down time Í×ÁÇÊ̤λþ¹ï +.\"WORD: modifier 修正子 +.\"WORD: broken-down time 要素別の時刻 .\" .TH STRPTIME 3 2009-12-05 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -strptime \- ʸ»úÎó¤Ç¤¢¤é¤ï¤µ¤ì¤Æ¤¤¤ë»þ´Ö¤ò tm ¹½Â¤ÂΤλþ´Ö¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° -.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) »²¾È */" +.SH 名前 +strptime \- 文字列であらわされている時間を tm 構造体の時間に変換する +.SH 書式 +.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "char *strptime(const char *" s ", const char *" format , .BI "struct tm *" tm ); -.SH ÀâÌÀ +.SH 説明 .BR strptime () -´Ø¿ô¤Ï +関数は .BR strftime (3) -¤ÎµÕ´Ø¿ô¤Ç¤¢¤ê¡¢¥Ý¥¤¥ó¥¿ +の逆関数であり、ポインタ .I s -¤¬»Ø¤¹Ê¸»úÎó¤ò»þ´Ö¤ËÊÑ´¹¤¹¤ë¡£ -ÊÑ´¹¤ÎºÝ¤Ë¤Ï +が指す文字列を時間に変換する。 +変換の際には .I format -¤Ç»ØÄꤷ¤¿¥Õ¥©¡¼¥Þ¥Ã¥È¤òÍѤ¤¡¢Ãͤϥݥ¤¥ó¥¿ +で指定したフォーマットを用い、値はポインタ .I tm -¤¬»Ø¤¹ +が指す .I tm -¹½Â¤ÂΤ˼ý¤á¤é¤ì¤ë¡£ +構造体に収められる。 .I format -¤Ï¡¢ +は、 .BR scanf (3) -¤Ç»È¤ï¤ì¤Æ¤¤¤ë¤è¤¦¤Ê¡¢ -¥Õ¥£¡¼¥ë¥É¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤È¥Æ¥­¥¹¥Èʸ»ú¤Ç¹½À®¤µ¤ì¤Æ¤¤¤ëʸ»úÎó¤Ç¤¢¤ë¡£ -¸Ä¡¹¤Î¥Õ¥£¡¼¥ë¥É¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ï +で使われているような、 +フィールドディスクリプターとテキスト文字で構成されている文字列である。 +個々のフィールドディスクリプターは .B % -¤È¤½¤ì¤Ë³¤¯Ê¸»ú¤«¤é¤Ê¤ê¡¢ -¸å¼Ô¤Ë¥Õ¥£¡¼¥ë¥É¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤òÃÖ¤­´¹¤¨¤ëÆâÍƤò»ØÄꤹ¤ë¡£ +とそれに続く文字からなり、 +後者にフィールドディスクリプターを置き換える内容を指定する。 .I format -ʸ»úÎóÃæ¤Î¾¤ÎÁ´¤Æ¤Îʸ»ú¤Ë¤Ï¡¢ÆþÎÏʸ»úÎó¤Ë¥Þ¥Ã¥Á¤¹¤ëʸ»ú¤¬¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎóÃæ¤Ë¤¢¤ë¶õÇò¤ÏÎã³°¤Ç¤¢¤ê¡¢ -ÆþÎÏʸ»úÎóÃæ¤Î 0 ¸Ä°Ê¾å¤Î¶õÇò¤È¥Þ¥Ã¥Á¤¹¤ë¡£ -2 ¤Ä¤Î¥Õ¥£¡¼¥ë¥É¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Î´Ö¤Ë¤Ï¡¢ -¶õÇò¡¦±Ñ»ú¡¦¿ô»ú¤¬¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +文字列中の他の全ての文字には、入力文字列にマッチする文字がなければならない。 +フォーマット文字列中にある空白は例外であり、 +入力文字列中の 0 個以上の空白とマッチする。 +2 つのフィールドディスクリプターの間には、 +空白・英字・数字がなければならない。 .PP .BR strptime () -´Ø¿ô¤Ï¡¢ÆþÎÏʸ»úÎó¤òº¸¤«¤é±¦¤Ø½èÍý¤¹¤ë¡£ -ÆþÎϤµ¤ì¤¿ 3 ¤Ä¤ÎÍ×ÁÇ (¶õÇò¡¦Ê¸»ú¡¦¥Õ¥©¡¼¥Þ¥Ã¥È) ¤Ï¡¢½ç¤Ë½èÍý¤µ¤ì¤ë¡£ -ÆþÎϤ¬¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤È¥Þ¥Ã¥Á¤Ç¤­¤Ê¤¤¾ì¹ç¡¢´Ø¿ô¤ÏÄä»ß¤¹¤ë¡£ -»Ä¤ê¤Î¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤ÈÆþÎÏʸ»úÎó¤Ï½èÍý¤µ¤ì¤Ê¤¤¡£ +関数は、入力文字列を左から右へ処理する。 +入力された 3 つの要素 (空白・文字・フォーマット) は、順に処理される。 +入力がフォーマット文字列とマッチできない場合、関数は停止する。 +残りのフォーマット文字列と入力文字列は処理されない。 .PP -»ÈÍѲÄǽ¤Ê¥Õ¥£¡¼¥ë¥É¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤ò°Ê²¼¤Ëµó¤²¤ë¡£ -(ÍËÆü¤ä·î¤Î̾Á°¤È¤¤¤Ã¤¿) ʸ»úÎó¤ò¥Þ¥Ã¥Á¤µ¤»¤ë¾ì¹ç¡¢ -Âçʸ»ú¤È¾®Ê¸»ú¤Ï¶èÊ̤»¤º¤ËÈæ³Ó¤¹¤ë¡£ -¿ô¤ò¥Þ¥Ã¥Á¤µ¤»¤ë¾ì¹ç¡¢Á°¤Ë 0 ¤ò¤Ä¤±¤Æ¤â¹½¤ï¤Ê¤¤¤¬É¬¤º¤·¤âɬÍפǤϤʤ¤¡£ +使用可能なフィールドディスクリプターを以下に挙げる。 +(曜日や月の名前といった) 文字列をマッチさせる場合、 +大文字と小文字は区別せずに比較する。 +数をマッチさせる場合、前に 0 をつけても構わないが必ずしも必要ではない。 .TP .B %% -ʸ»ú¤È¤·¤Æ¤Î -.BR % ¡£ +文字としての +.BR % 。 .TP -.BR %a " ¤Þ¤¿¤Ï " %A -¸½ºß¤Î¥í¥±¡¼¥ë¤Ç¤ÎÍËÆü̾ (¾Êά̾¤Þ¤¿¤Ï´°Á´¤Ê̾Á°)¡£ +.BR %a " または " %A +現在のロケールでの曜日名 (省略名または完全な名前)。 .TP -.BR %b " ¤Þ¤¿¤Ï " %B " ¤Þ¤¿¤Ï " %h -¸½ºß¤Î¥í¥±¡¼¥ë¤Ç¤Î·î̾ (¾Êά̾¤Þ¤¿¤Ï´°Á´¤Ê̾Á°)¡£ +.BR %b " または " %B " または " %h +現在のロケールでの月名 (省略名または完全な名前)。 .TP .B %c -¸½ºß¤Î¥í¥±¡¼¥ë¤Ç¤ÎÆüÉդȻþ¹ï¤Îɽ¸½¡£ +現在のロケールでの日付と時刻の表現。 .TP .B %C -1 À¤µªÃæ¤Îǯ (0-99)¡£ +1 世紀中の年 (0-99)。 .TP -.BR %d " ¤Þ¤¿¤Ï " %e -·îÆâ¤ÎÆüÉÕ (1-31)¡£ +.BR %d " または " %e +月内の日付 (1-31)。 .TP .B %D -ÆüÉÕ¡£ +日付。 .B %m/%d/%y -¤ÈƱ¤¸¡£ -(¤³¤ì¤Ï¥¢¥á¥ê¥«¼°¤ÎÆüÉÕ·Á¼°¤Ç¡¢ -¥è¡¼¥í¥Ã¥Ñ¤Ç¤ÏÆÃ¤Ë +と同じ。 +(これはアメリカ式の日付形式で、 +ヨーロッパでは特に .B %d/%m/%y -¤È¤¤¤¦·Á¼°¤¬¹­¤¯»È¤ï¤ì¤Æ¤¤¤ë¤¿¤á¤Ë¡¢ -¥¢¥á¥ê¥«¿Í°Ê³°¤Ë¤Ïʶ¤é¤ï¤·¤¯´¶¤¸¤é¤ì¤ë¡£ -ISO 8601 µ¬³Ê¤Ç¤Ï +という形式が広く使われているために、 +アメリカ人以外には紛らわしく感じられる。 +ISO 8601 規格では .B %Y-%m-%d -¤È¤¤¤¦·Á¼°¤Ç¤¢¤ë¡£) +という形式である。) .TP .B %H -»þ´Ö (0-23)¡£ +時間 (0-23)。 .TP .B %I -12 »þ´ÖÀ©¤Ç¤Î»þ´Ö (1-12)¡£ +12 時間制での時間 (1-12)。 .TP .B %j -ǯ¤Î½é¤á¤«¤é¤ÎÄÌ»»¤ÎÆüÉÕ (1-366)¡£ +年の初めからの通算の日付 (1-366)。 .TP .B %m -¿ô»úɽ¸½¤Î·î (1-12)¡£ +数字表現の月 (1-12)。 .TP .B %M -ʬ (0-59)¡£ +分 (0-59)。 .TP .B %n -Ǥ°Õ¤Î¶õÇò¡£ +任意の空白。 .TP .B %p -¥í¥±¡¼¥ë¤Î AM (¸áÁ°) ¤È PM (¸á¸å) ¤ËÂбþ¤¹¤ë¤â¤Î¡£ -(Ãí°Õ: Âбþ¤¹¤ë¤â¤Î¤¬¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£) +ロケールの AM (午前) と PM (午後) に対応するもの。 +(注意: 対応するものがないかもしれない。) .TP .B %r -(¥í¥±¡¼¥ë¤Î AM ¤È PM ¤ò»È¤Ã¤¿) 12 »þ´ÖÀ©¤Î»þ´Ö¡£ -POSIX ¥í¥±¡¼¥ë¤Ç¤Ï +(ロケールの AM と PM を使った) 12 時間制の時間。 +POSIX ロケールでは .B %I:%M:%S %p -¤ÈƱ¤¸¡£ -¸½ºß¤Î¥í¥±¡¼¥ë¤Ë¤ª¤¤¤Æ +と同じ。 +現在のロケールにおいて .B LC_TIME -¥Ñ¡¼¥È¤Î -\fIt_fmt_ampm\fP ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -Æ°ºî¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +パートの +\fIt_fmt_ampm\fP が定義されていない場合、 +動作は未定義である。 .TP .B %R .B %H:%M -¤ÈƱ¤¸¡£ +と同じ。 .TP .B %S -Éà (0-60; 60 ¤Ï±¼Éäò¼¨¤¹¡£°ÊÁ°¤Ï 61 ¤â»ØÄê¤Ç¤­¤¿)¡£ +秒 (0-60; 60 は閏秒を示す。以前は 61 も指定できた)。 .TP .B %t -Ǥ°Õ¤Î¶õÇò¡£ +任意の空白。 .TP .B %T .B %H:%M:%S -¤ÈƱ¤¸¡£ +と同じ。 .TP .B %U -ÆüÍËÆü¤ò½µ¤Î»Ï¤Þ¤ê¤È¤·¤¿Ç¯ÄÌ»»¤Ç¤Î½µ¿ô (0-53)¡£ -1 ·î¤ÎºÇ½é¤ÎÆüÍËÆü¤òÂè 1 ½µÌܤκǽé¤ÎÆü¤¹¤ë¡£ +日曜日を週の始まりとした年通算での週数 (0-53)。 +1 月の最初の日曜日を第 1 週目の最初の日する。 .TP .B %w -ÆüÍËÆü¤ò 0 ¤È¤·¤¿¿ô»úɽµ­¤ÎÍËÆü (0-6)¡£ +日曜日を 0 とした数字表記の曜日 (0-6)。 .TP .B %W -·îÍËÆü¤ò½µ¤Î»Ï¤Þ¤ê¤È¤·¤¿Ç¯ÄÌ»»¤Ç¤Î½µ¿ô (0-53)¡£ -1 ·î¤ÎºÇ½é¤Î·îÍËÆü¤òÂè 1 ½µÌܤκǽé¤ÎÆü¤¹¤ë¡£ +月曜日を週の始まりとした年通算での週数 (0-53)。 +1 月の最初の月曜日を第 1 週目の最初の日する。 .TP .B %x -ÆüÉÕ¡£¥í¥±¡¼¥ë¤ÎÆüÉÕ¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»È¤¦¡£ +日付。ロケールの日付フォーマットを使う。 .TP .B %X -»þ¹ï¡£¥í¥±¡¼¥ë¤Î»þ¹ï¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»È¤¦¡£ +時刻。ロケールの時刻フォーマットを使う。 .TP .B %y -1 À¤µªÃæ¤Îǯ (0-99)¡£ -À¤µª¤¬»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢ -Ãͤ¬ 69-99 ¤ÎÈϰϤΤȤ­¤Ï 20 À¤µª¤Îǯ (1969-1999)¡¢ -Ãͤ¬ 00-68 ¤ÎÈϰϤΤȤ­¤Ï 21 À¤µª¤Îǯ (2000-2068) ¤È¤¹¤ë¡£ +1 世紀中の年 (0-99)。 +世紀が指定されない場合、 +値が 69-99 の範囲のときは 20 世紀の年 (1969-1999)、 +値が 00-68 の範囲のときは 21 世紀の年 (2000-2068) とする。 .TP .B %Y -ǯ¡£À¤µª¤ÎÉôʬ¤ò´Þ¤à (Îã: 1991)¡£ +年。世紀の部分を含む (例: 1991)。 .LP -E ¤ä O ¤È¤¤¤¦½¤Àµ»Ò¤ò»È¤¦¤³¤È¤ÇÊѹ¹¤Ç¤­¤ë¥Õ¥£¡¼¥ë¥É¥Ç¥£¥¹¥¯¥ê¥×¥¿¤â¤¢¤ë¡£ -¤³¤ì¤é¤Î½¤Àµ»Ò¤Ï¡¢Ê̤Υե©¡¼¥Þ¥Ã¥È¤ä»ÅÍͤò»È¤¦¤³¤È¤ò»Ø¼¨¤¹¤ë¡£ -Ê̤Υե©¡¼¥Þ¥Ã¥È¤ä»ÅÍͤ¬¸½ºß¤Î¥í¥±¡¼¥ë¤Ë¸ºß¤·¤Ê¤¤¤È¤­¤Ï¡¢ -Êѹ¹¤·¤Æ¤¤¤Ê¤¤¥Õ¥£¡¼¥ë¥É¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬»È¤ï¤ì¤ë¡£ +E や O という修正子を使うことで変更できるフィールドディスクリプタもある。 +これらの修正子は、別のフォーマットや仕様を使うことを指示する。 +別のフォーマットや仕様が現在のロケールに存在しないときは、 +変更していないフィールドディスクリプタが使われる。 .LP -E ½¤Àµ»Ò¤Ï¡¢¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿ÆüÉդȻþ¹ï¤ÎÊ̤Îɽ¸½·Á¼°¤¬ -ÆþÎÏʸ»úÎó¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤³¤È¤ò»ØÄꤹ¤ë¡£ +E 修正子は、ロケールに依存した日付と時刻の別の表現形式が +入力文字列に含まれていることを指定する。 .TP .B %Ec -ÆüÉդȻþ¹ï¡£¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤Îɽ¸½·Á¼°¤ò»È¤¦¡£ +日付と時刻。ロケールに依存した別の表現形式を使う。 .TP .B %EC -´ð½àǯ (´ü´Ö) ¤Î̾Á°¡£¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤Îɽ¸½·Á¼°¤ò»È¤¦¡£ +基準年 (期間) の名前。ロケールに依存した別の表現形式を使う。 .TP .B %Ex -ÆüÉÕ¡£¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤Îɽ¸½·Á¼°¤ò»È¤¦¡£ +日付。ロケールに依存した別の表現形式を使う。 .TP .B %EX -»þ¹ï¡£¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤Îɽ¸½·Á¼°¤ò»È¤¦¡£ +時刻。ロケールに依存した別の表現形式を使う。 .TP .B %Ey .B %EC -(ǯ¤Î¤ß) ¤«¤é¤Î¥ª¥Õ¥»¥Ã¥È¡£¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤Îɽ¸½·Á¼°¤ò»È¤¦¡£ +(年のみ) からのオフセット。ロケールに依存した別の表現形式を使う。 .TP .B %EY -´°Á´¤Ê·Á¼°¤Îǯ¡£Ê̤Îɽ¸½·¿¼°¤ò»È¤¦¡£ +完全な形式の年。別の表現型式を使う。 .LP -O ½¤Àµ»Ò¤Ï¡¢¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤Υե©¡¼¥Þ¥Ã¥È¤ÎÃæ¤Ë -¿ôÃͤÎÆþÎϤ¬¤¢¤ë¤³¤È¤ò»ØÄꤹ¤ë¡£ +O 修正子は、ロケールに依存した別のフォーマットの中に +数値の入力があることを指定する。 .TP -.BR %Od " ¤Þ¤¿¤Ï " %Oe -·î¤Î½é¤á¤«¤é¤ÎÄÌ»»¤ÎÆüÉÕ¡£¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤οôÃÍ¥·¥ó¥Ü¥ë¤ò»È¤¦¡£ -0 ¤òƬ¤Ë¤Ä¤±¤Æ¤â¤è¤¤¤¬¡¢É¬¿Ü¤Ç¤Ï¤Ê¤¤¡£ +.BR %Od " または " %Oe +月の初めからの通算の日付。ロケールに依存した別の数値シンボルを使う。 +0 を頭につけてもよいが、必須ではない。 .TP .B %OH -»þ´Ö (24 »þ´ÖÀ©)¡£¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤οôÃÍ¥·¥ó¥Ü¥ë¤ò»È¤¦¡£ +時間 (24 時間制)。ロケールに依存した別の数値シンボルを使う。 .TP .B %OI -»þ´Ö (12 »þ´ÖÀ©)¡£¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤οôÃÍ¥·¥ó¥Ü¥ë¤ò»È¤¦¡£ +時間 (12 時間制)。ロケールに依存した別の数値シンボルを使う。 .TP .B %Om -·î¡£¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤οôÃÍ¥·¥ó¥Ü¥ë¤ò»È¤¦¡£ +月。ロケールに依存した別の数値シンボルを使う。 .TP .B %OM -ʬ¡£¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤οôÃÍ¥·¥ó¥Ü¥ë¤ò»È¤¦¡£ +分。ロケールに依存した別の数値シンボルを使う。 .TP .B %OS -Éá£¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤οôÃÍ¥·¥ó¥Ü¥ë¤ò»È¤¦¡£ +秒。ロケールに依存した別の数値シンボルを使う。 .TP .B %OU -ǯ¤Î½é¤á¤«¤é¤ÎÄÌ»»¤Î½µ¿ô (ÆüÍËÆü¤ò½µ¤Î»Ï¤á¤È¤¹¤ë)¡£ -¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤οôÃÍ¥·¥ó¥Ü¥ë¤ò»È¤¦¡£ +年の初めからの通算の週数 (日曜日を週の始めとする)。 +ロケールに依存した別の数値シンボルを使う。 .TP .B %Ow -¿ôÃÍɽµ­¤ÎÍËÆü (ÆüÍËÆü¤ò 0 ¤È¤¹¤ë)¡£ -¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤οôÃÍ¥·¥ó¥Ü¥ë¤ò»È¤¦¡£ +数値表記の曜日 (日曜日を 0 とする)。 +ロケールに依存した別の数値シンボルを使う。 .TP .B %OW -ǯ¤Î½é¤á¤«¤é¤ÎÄÌ»»¤Î½µ¿ô (·îÍËÆü¤ò½µ¤Î»Ï¤á¤È¤¹¤ë)¡£ -¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤οôÃÍ¥·¥ó¥Ü¥ë¤ò»È¤¦¡£ +年の初めからの通算の週数 (月曜日を週の始めとする)。 +ロケールに依存した別の数値シンボルを使う。 .TP .B %Oy -ǯ +å¹´ .RB ( %C -¤«¤é¤Î¥ª¥Õ¥»¥Ã¥È)¡£¥í¥±¡¼¥ë¤Ë°Í¸¤·¤¿Ê̤οôÃÍ¥·¥ó¥Ü¥ë¤ò»È¤¦¡£ +からのオフセット)。ロケールに依存した別の数値シンボルを使う。 .LP -Í×ÁÇÊ̤λþ¹ï¹½Â¤ÂÎ \fItm\fP ¤Ï -\fI\fP Æâ¤Ç°Ê²¼¤ÎÍͤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +要素別の時刻構造体 \fItm\fP は +\fI\fP 内で以下の様に定義されている。 .sp .in +4n .nf struct tm { - int tm_sec; /* Éà */ - int tm_min; /* ʬ */ - int tm_hour; /* »þ´Ö */ - int tm_mday; /* Æü */ - int tm_mon; /* ·î */ - int tm_year; /* ǯ */ - int tm_wday; /* ÍËÆü */ - int tm_yday; /* ǯÆâÄÌ»»Æü */ - int tm_isdst; /* ²Æ»þ´Ö */ + int tm_sec; /* 秒 */ + int tm_min; /* 分 */ + int tm_hour; /* 時間 */ + int tm_mday; /* 日 */ + int tm_mon; /* 月 */ + int tm_year; /* å¹´ */ + int tm_wday; /* 曜日 */ + int tm_yday; /* 年内通算日 */ + int tm_isdst; /* 夏時間 */ }; .fi .in -.SH ÊÖ¤êÃÍ -¤³¤Î´Ø¿ô¤ÎÊÖ¤êÃͤϡ¢´Ø¿ô¤ÎÃæ¤Ç½èÍý¤µ¤ì¤Ê¤«¤Ã¤¿ºÇ½é¤Îʸ»ú¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤¬É¬Íפ¹¤ë°Ê¾å¤Îʸ»ú¤¬ÆþÎÏʸ»úÎó¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -ÊÖ¤êÃͤϺǸå¤Ë½èÍý¤µ¤ì¤¿ÆþÎÏʸ»ú¤Î¼¡¤Îʸ»ú¤ò»Ø¤¹¡£ -¤¹¤Ù¤Æ¤ÎÆþÎÏʸ»úÎ󤬽èÍý¤µ¤ì¤¿¾ì¹ç¡¢ -ÊÖ¤êÃͤÏʸ»úÎóËöÈø¤Î NULL ¥Ð¥¤¥È¤ò»Ø¤¹¡£ +.SH 返り値 +この関数の返り値は、関数の中で処理されなかった最初の文字へのポインタである。 +フォーマット文字列が必要する以上の文字が入力文字列に含まれている場合、 +返り値は最後に処理された入力文字の次の文字を指す。 +すべての入力文字列が処理された場合、 +返り値は文字列末尾の NULL バイトを指す。 .BR strptime () -¤¬¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤Î¤¹¤Ù¤Æ¤ÎÈæ³Ó¤Ë¼ºÇÔ¤·¡¢ -¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¡¢´Ø¿ô¤Ï NULL ¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -.SH ½àµò +がフォーマット文字列のすべての比較に失敗し、 +エラーが起こった場合、関数は NULL ポインタを返す。 +.SH 準拠 SUSv2, POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .LP -¸¶Â§¤È¤·¤Æ¡¢¤³¤Î´Ø¿ô¤Ï \fItm\fP ¤Î½é´ü²½¤Ï¤»¤º¤Ë¡¢ -»ØÄꤵ¤ì¤¿ÃͤΤߤòÆþ¤ì¤ë¡£ -¤Ä¤Þ¤ê¡¢¤³¤Î´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤ÎÁ°¤Ë \fItm\fP ¤ò½é´ü²½¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¾¤Î UNIX ¥·¥¹¥Æ¥à¤È¤Ï¡¢ºÙ¤«¤¤ÅÀ¤Ç°Û¤Ê¤ë¡£ -glibc ¤Î¼ÂÁõ¤Ç¤Ï¡¢ÌÀ¼¨Åª¤Ë»ØÄꤵ¤ì¤Ê¤¤¥Õ¥£¡¼¥ë¥É¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ -Îã³°¤È¤·¤Æ¡¢Ç¯¡¦·î¡¦Æü¤Î¤¤¤º¤ì¤«¤ÎÍ×ÁǤ¬Êѹ¹¤µ¤ì¤¿¾ì¹ç¤Ë +原則として、この関数は \fItm\fP の初期化はせずに、 +指定された値のみを入れる。 +つまり、この関数の呼び出しの前に \fItm\fP を初期化しなければならない。 +他の UNIX システムとは、細かい点で異なる。 +glibc の実装では、明示的に指定されないフィールドは変更されない。 +例外として、年・月・日のいずれかの要素が変更された場合に .I tm_wday -¤È +と .I tm_yday -¤¬ºÆ·×»»¤µ¤ì¤ë¡£ +が再計算される。 .PP -¤³¤Î´Ø¿ô¤Ï¡¢libc 4.6.8 °Ê¹ß¤Ç»ÈÍѤǤ­¤ë¡£ -Linux ¤Î libc4 ¤È libc5 ¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Ï¡¢ -¤³¤Î´Ø¿ô¤Î¥×¥í¥È¥¿¥¤¥×¤ò¾ï¤ËÄêµÁ¤¹¤ë¡£ -glibc2 ¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Ï¡¢ +この関数は、libc 4.6.8 以降で使用できる。 +Linux の libc4 と libc5 のインクルードファイルは、 +この関数のプロトタイプを常に定義する。 +glibc2 のインクルードファイルは、 .B _XOPEN_SOURCE -¤Þ¤¿¤Ï +または .B _GNU_SOURCE -¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Î¤ß¡¢ -¤³¤Î´Ø¿ô¤Î¥×¥í¥È¥¿¥¤¥×¤òÄ󶡤¹¤ë¡£ +が定義された場合のみ、 +この関数のプロトタイプを提供する。 .PP -libc 5.4.13 ¤è¤êÁ°¤Ç¤Ï¡¢¶õÇò (¤È \(aqn\(aq ¤Þ¤¿¤Ï \(aqt\(aq »ØÄê) ¤Ï°·¤ï¤ì¤Ê¤«¤Ã¤¿¡£ -¥í¥±¡¼¥ë¤Î½¤Àµ»Ò \(aqE\(aq ¤È \(aqO\(aq ¤Ï¼õ¤±ÉÕ¤±¤é¤ì¤Ê¤«¤Ã¤¿¡£ -¤Þ¤¿¡¢\(aqC\(aq ¤Î»ØÄê¤Ï \(aqc\(aq ¤Î»ØÄê¤ÈƱ¤¸°ÕÌ£¤Ç°·¤ï¤ì¤¿¡£ +libc 5.4.13 より前では、空白 (と \(aqn\(aq または \(aqt\(aq 指定) は扱われなかった。 +ロケールの修正子 \(aqE\(aq と \(aqO\(aq は受け付けられなかった。 +また、\(aqC\(aq の指定は \(aqc\(aq の指定と同じ意味で扱われた。 .PP -\(aqy\(aq (1 À¤µªÃæ¤Îǯ) ¤Î»ØÄê¤Ï¡¢libc4 ¤È libc5 ¤Ç¤Ï 20 À¤µª¤Îǯ¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ -glibc 2.0 ¤Ç¤Ï 1950-2049 ¤ÎÈϰϤȤ·¤Æ²ò¼á¤µ¤ì¤ë¡£ -glibc 2.1 ¤«¤é¤Ï 1969-2068 ¤ÎÈϰϤȤ·¤Æ²ò¼á¤µ¤ì¤ë¡£ -.\" libc4 ¤È libc5 ¤Ç¤Ï %I ÍѤΥ³¡¼¥É¤¬²õ¤ì¤Æ¤¤¤ë (glibc ¤Ç½¤Àµ¤µ¤ì¤¿; -.\" %OI ¤Ï glibc 2.2.4 ¤Ç½¤Àµ¤µ¤ì¤¿)¡£ -.SS glibc ¤Ç¤ÎÃí°Õ -ÂоÝÀ­¤Î¤¿¤á¤Ë¡¢glibc ¤Ç¤Ï +\(aqy\(aq (1 世紀中の年) の指定は、libc4 と libc5 では 20 世紀の年として解釈される。 +glibc 2.0 では 1950-2049 の範囲として解釈される。 +glibc 2.1 からは 1969-2068 の範囲として解釈される。 +.\" libc4 と libc5 では %I 用のコードが壊れている (glibc で修正された; +.\" %OI は glibc 2.2.4 で修正された)。 +.SS glibc での注意 +対象性のために、glibc では .BR strptime () -¤Ë +に .BR strftime (3) -¤ÈƱ¤¸¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»ú¤ò¥µ¥Ý¡¼¥È¤µ¤»¤è¤¦¤È¤·¤Æ¤¤¤ë¡£ -¿¤¯¤Î¾ì¹ç¡¢Âбþ¤¹¤ë¥Õ¥£¡¼¥ë¥É¤¬²ò¼á¤µ¤ì¤ë¤¬¡¢ -\fItm\fP ¥Õ¥£¡¼¥ë¥É¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ -»ÈÍѲÄǽ¤Ê¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»ú¤ò°Ê²¼¤Ë¼¨¤¹¡£ +と同じフォーマット文字をサポートさせようとしている。 +多くの場合、対応するフィールドが解釈されるが、 +\fItm\fP フィールドは変更されない。 +使用可能なフォーマット文字を以下に示す。 .TP .B %F -\fB%Y-%m-%d\fP ¤ÈƱ¤¸¡£ISO 8601 ¤ÎÆüÉÕ·Á¼°¡£ +\fB%Y-%m-%d\fP と同じ。ISO 8601 の日付形式。 .TP .B %g -ISO ½µ¿ô¤ËÂбþ¤·¤¿À¾Îñǯ¡£À¤µª¤Ï´Þ¤Þ¤º (0-99) ¤ÎÈÏ°Ï¡£ +ISO 週数に対応した西暦年。世紀は含まず (0-99) の範囲。 .TP .B %G -ISO ½µ¿ô¤ËÂбþ¤·¤¿À¾Îñǯ (Î㤨¤Ð 1991)¡£ +ISO 週数に対応した西暦年 (例えば 1991)。 .TP .B %u -10 ¿Ê¿ôɽµ­¤ÎÍËÆü (1-7 ¤Ç·îÍËÆü¤ò 1 ¤È¤¹¤ë)¡£ +10 進数表記の曜日 (1-7 で月曜日を 1 とする)。 .TP .B %V -ISO 8601:1988 ·Á¼°¤Ç¤ÎǯÄÌ»»¤Î 10 ¿Ê¿ôɽµ­¤Ç¤Î½µ¿ô (1-53)¡£ -1 ·î 1 Æü¤ò´Þ¤à (·îÍËÆü¤«¤é»Ï¤Þ¤ë) ½µ¤Ë 4 Æü°Ê¾å¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ -¤½¤Î½µ¤òÂè 1 ½µ¤È¤¹¤ë¡£ -3 Æü°Ê²¼¤·¤«´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢1 ·î 1 Æü¤ò´Þ¤à½µ¤òÁ°Ç¯¤ÎºÇ½ª¤Î½µ¤È¤·¤Æ¡¢ -¼¡¤Î½µ¤òÂè 1 ½µ¤È¤¹¤ë¡£ +ISO 8601:1988 形式での年通算の 10 進数表記での週数 (1-53)。 +1 月 1 日を含む (月曜日から始まる) 週に 4 日以上が含まれている場合は、 +その週を第 1 週とする。 +3 日以下しか含まれていない場合は、1 月 1 日を含む週を前年の最終の週として、 +次の週を第 1 週とする。 .TP .B %z -RFC-822/ISO 8601 ɸ½à¥¿¥¤¥à¥¾¡¼¥ó¤ò»ØÄꤹ¤ë¡£ +RFC-822/ISO 8601 標準タイムゾーンを指定する。 .TP .B %Z -¥¿¥¤¥à¥¾¡¼¥ó̾¡£ +タイムゾーン名。 .LP -ƱÍͤˡ¢ +同様に、 .BR strftime (3) -¤Î GNU ÈǤǤγÈÄ¥¤ËÂбþ¤¹¤ë¤¿¤á¤Ë¡¢ +の GNU 版での拡張に対応するために、 .B %k -¤Ï -.B %H¡¢ +は +.B %H、 .B %P -¤Ï +は .B %p -¤ÈÅù²Á¤Ë°·¤ï¤ì¤ë¡£¤Þ¤¿¡¢ +と等価に扱われる。また、 .B %l -¤Ï +は .B %I -¤ÈÅù²Á¤Ë°·¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¤Ï¤º¤Ç¤¢¤ë¡£ +と等価に扱われるようになるはずである。 -¤µ¤é¤Ë°Ê²¼¤âÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +さらに以下も定義されている。 .TP .B %s -µª¸µ (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) ¤«¤é¤ÎÄÌ»»¤ÎÉÿô¡£ -±¼É䬥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¸Â¤ê¡¢±¼Éäϥ«¥¦¥ó¥È¤·¤Ê¤¤¡£ +紀元 (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) からの通算の秒数。 +閏秒がサポートされていない限り、閏秒はカウントしない。 .LP -glibc ¤Ë¤ª¤±¤ë¼ÂÁõ¤Ç¤Ï¡¢2 ¤Ä¤Î¥Õ¥£¡¼¥ë¥É´Ö¤Î¶õÇò¤ÏɬÍפʤ¤¡£ -.SH Îã -°Ê²¼¤ÎÎã¤Ï +glibc における実装では、2 つのフィールド間の空白は必要ない。 +.SH 例 +以下の例は .BR strptime () -¤È +と .BR strftime (3) -¤Î»ÈÍÑË¡¤ò¼¨¤·¤Æ¤¤¤ë¡£ +の使用法を示している。 .sp .nf #define _XOPEN_SOURCE @@ -408,7 +408,7 @@ main(void) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR time (2), .BR getdate (3), .BR scanf (3), diff --git a/release/man3/strsep.3 b/release/man3/strsep.3 index 907abaad..35c8bcbb 100644 --- a/release/man3/strsep.3 +++ b/release/man3/strsep.3 @@ -35,12 +35,12 @@ .\" Updated Tue Apr 10 11:19:58 JST 2001 by Kentaro Shirakata .\" Updated 2009-02-12 by Kentaro Shirakata .\" -.\" WORD: delimiter ¶èÀÚ¤êʸ»ú +.\" WORD: delimiter 区切り文字 .\" .TH STRSEP 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -strsep \- ʸ»úÎ󤫤é¥È¡¼¥¯¥ó¤ò¼è¤ê½Ð¤¹ -.SH ½ñ¼° +.SH 名前 +strsep \- 文字列からトークンを取り出す +.SH 書式 .nf .B #include .sp @@ -48,50 +48,50 @@ strsep \- ʸ .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR strsep (): _BSD_SOURCE -.SH ÀâÌÀ -\fI*stringp\fP ¤¬ NULL ¤Î¾ì¹ç¡¢ +.SH 説明 +\fI*stringp\fP が NULL の場合、 .BR strsep () -´Ø¿ô¤Ï²¿¤â¤»¤º¤Ë NULL ¤òÊÖ¤¹¡£ -¤µ¤â¤Ê¤±¤ì¤Ð¡¢Ê¸»úÎó \fIstringp\fP ¤ò -\fIdelim\fP ¤Ë´Þ¤Þ¤ì¤ëʸ»ú¤Ç¶èÀڤä¿ -¥È¡¼¥¯¥ó¤Î¤¦¤ÁºÇ½é¤Î¤â¤Î¤òÊÖ¤¹¡£ -¥È¡¼¥¯¥ó¤Ï¡¢¶èÀÚ¤êʸ»ú¤ò NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Ç¾å½ñ¤­¤¹¤ë¤³¤È¤Ç -½ªÃ¼¤µ¤ì¤ë¡£ -\fI*stringp\fP ¤ÏÀÚ¤ê½Ð¤µ¤ì¤¿¥È¡¼¥¯¥ó¤Î¼¡¤Î°ÌÃÖ¤ò¼¨¤¹¤è¤¦¤Ë¹¹¿·¤µ¤ì¤ë¡£ -¶èÀÚ¤êʸ»ú¤¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¡¢\fI*stringp\fP ʸ»úÎóÁ´ÂΤ¬¥È¡¼¥¯¥ó¤È¤·¤Æ -°·¤ï¤ì¡¢\fI*stringp\fP ¤Ï NULL ¤È¤Ê¤ë¡£ -.SH ÊÖ¤êÃÍ +関数は何もせずに NULL を返す。 +さもなければ、文字列 \fIstringp\fP を +\fIdelim\fP に含まれる文字で区切った +トークンのうち最初のものを返す。 +トークンは、区切り文字を NULL バイト (\(aq\\0\(aq) で上書きすることで +終端される。 +\fI*stringp\fP は切り出されたトークンの次の位置を示すように更新される。 +区切り文字が見つからない場合、\fI*stringp\fP 文字列全体がトークンとして +扱われ、\fI*stringp\fP は NULL となる。 +.SH 返り値 .BR strsep () -´Ø¿ô¤Ï¡¢¥È¡¼¥¯¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤Ä¤Þ¤ê¡¢¸µ¤Î \fI*stringp\fP ¤ÎÃͤòÊÖ¤¹¡£ -.SH ½àµò +関数は、トークンへのポインタを返す。 +つまり、元の \fI*stringp\fP の値を返す。 +.SH 準拠 4.4BSD. -.SH Ãí°Õ +.SH 注意 .BR strsep () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strtok (3) -´Ø¿ô¤¬¶õ¤Î¥Õ¥£¡¼¥ë¥É¤ò -°·¤¨¤Ê¤¤¤¿¤á¤Ë¡¢¤½¤ÎÂåÂØÉʤȤ·¤ÆƳÆþ¤µ¤ì¤¿¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢ +関数が空のフィールドを +扱えないために、その代替品として導入された。 +しかしながら、 .BR strtok (3) -´Ø¿ô¤Ï C89/C99 ¤Ë½àµò¤·¤Æ¤ª¤ê¡¢¤è¤ê°Ü¿¢À­¤¬¤¢¤ë¡£ -.SH ¥Ð¥° -¤³¤Î´Ø¿ô¤ò»È¤¦»þ¤ÏÃí°Õ¤¹¤ë¤³¤È¡£ -¤â¤·»È¤¦¤Ê¤é¡¢°Ê²¼¤Î¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +関数は C89/C99 に準拠しており、より移植性がある。 +.SH バグ +この関数を使う時は注意すること。 +もし使うなら、以下のことに注意すること。 .IP * 2 -¤³¤Î´Ø¿ô¤ÏºÇ½é¤Î°ú¿ô¤òÊѹ¹¤¹¤ë¡£ +この関数は最初の引数を変更する。 .IP * -¤³¤Î´Ø¿ô¤ÏÄê¿ôʸ»úÎó¤Ë¤Ï»È¤¨¤Ê¤¤¡£ +この関数は定数文字列には使えない。 .IP * -¶èÀÚ¤êʸ»ú¤¬²¿¤Ç¤¢¤Ã¤¿¤«Ê¬¤«¤é¤Ê¤¯¤Ê¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +区切り文字が何であったか分からなくなる。 +.SH 関連項目 .BR index (3), .BR memchr (3), .BR rindex (3), diff --git a/release/man3/strsignal.3 b/release/man3/strsignal.3 index 4fe4ab14..36297542 100644 --- a/release/man3/strsignal.3 +++ b/release/man3/strsignal.3 @@ -34,9 +34,9 @@ .\" by Kentaro Shirakata .\" .TH STRSIGNAL 3 2010-09-15 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -strsignal \- ¥·¥°¥Ê¥ë¤òÀâÌÀ¤¹¤ëʸ»úÎó¤òÊÖ¤¹ -.SH ½ñ¼° +.SH 名前 +strsignal \- シグナルを説明する文字列を返す +.SH 書式 .nf .B #include .sp @@ -46,9 +46,9 @@ strsignal \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR strsignal (): @@ -56,38 +56,38 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR strsignal () -´Ø¿ô¤Ï¡¢°ú¿ô \fIsig\fP ¤ÇÅϤµ¤ì¤¿¥·¥°¥Ê¥ëÈÖ¹æ¤ò -ÀâÌÀ¤¹¤ëʸ»úÎó¤òÊÖ¤¹¡£ -ʸ»úÎó¤Ï¡¢¼¡¤Î +関数は、引数 \fIsig\fP で渡されたシグナル番号を +説明する文字列を返す。 +文字列は、次の .BR strsignal () -¤¬¸Æ¤Ð¤ì¤ë¤Þ¤Ç¤Î´Ö¤À¤±»ÈÍѤǤ­¤ë¡£ +が呼ばれるまでの間だけ使用できる。 .PP -ÇÛÎó \fIsys_siglist\fP ¤Ï¥·¥°¥Ê¥ë¤òÀâÌÀ¤¹¤ëʸ»úÎó¤òÊÝ»ý¤·¤Æ¤ª¤ê¡¢ -ÇÛÎó¤Ø¤Î¥¢¥¯¥»¥¹¤Ë¤Ï¥·¥°¥Ê¥ëÈÖ¹æ¤òź¤¨»ú¤È¤·¤ÆÍѤ¤¤ë»ö¤¬¤Ç¤­¤ë¡£ -½ÐÍè¤ë¤À¤±¤³¤ÎÇÛÎó¤ÎÂå¤ï¤ê¤Ë +配列 \fIsys_siglist\fP はシグナルを説明する文字列を保持しており、 +配列へのアクセスにはシグナル番号を添え字として用いる事ができる。 +出来るだけこの配列の代わりに .BR strsignal () -´Ø¿ô¤ò -»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +関数を +使うべきである。 +.SH 返り値 .BR strsignal () -´Ø¿ô¤Ï¡¢¥·¥°¥Ê¥ë¤ÎŬÀÚ¤ÊÀâÌÀ¤òÊÖ¤¹¡£ -¤â¤·¥·¥°¥Ê¥ëÈֹ椬ÉÔÀµ¤Ê¾ì¹ç¤Ï¡¢Ì¤ÃΤΥ·¥°¥Ê¥ë(unknown signal)¤ò¼¨¤¹ -¥á¥Ã¥»¡¼¥¸¤òÊÖ¤¹¡£ -(Linux ¤Ï¤½¤¦¤Ç¤Ï¤Ê¤¤¤¬)ÉÔÀµ¤Ê¥·¥°¥Ê¥ëÈÖ¹æ¤ËÂФ·¤Æ¡¢ NULL ¥Ý¥¤¥ó¥¿¤ò -ÊÖ¤¹¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ -.SH ½àµò +関数は、シグナルの適切な説明を返す。 +もしシグナル番号が不正な場合は、未知のシグナル(unknown signal)を示す +メッセージを返す。 +(Linux はそうではないが)不正なシグナル番号に対して、 NULL ポインタを +返すシステムもある。 +.SH 準拠 POSIX.1-2008. -Solaris ¤È BSD ·Ï¤Ë¤â¸ºß¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +Solaris と BSD 系にも存在する。 +.SH 関連項目 .BR psignal (3), .BR strerror (3) diff --git a/release/man3/strspn.3 b/release/man3/strspn.3 index f17e3434..213c33ff 100644 --- a/release/man3/strspn.3 +++ b/release/man3/strspn.3 @@ -32,9 +32,9 @@ .\" by HIROFUMI Nishizuka .\" .TH STRSPN 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -strspn, strcspn \- ʸ»úÎ󤫤éʸ»ú¤Î¥»¥Ã¥È¤òõ¤¹ -.SH ½ñ¼° +.SH 名前 +strspn, strcspn \- 文字列から文字のセットを探す +.SH 書式 .nf .B #include .sp @@ -42,25 +42,25 @@ strspn, strcspn \- ʸ .sp .BI "size_t strcspn(const char *" s ", const char *" reject ); .fi -.SH ÀâÌÀ +.SH 説明 .BR strspn () -´Ø¿ô¤Ï¡¢\fIaccept\fP ¤Ë´Þ¤Þ¤ì¤ëʸ»ú¤À¤±¤Ç¹½À®¤µ¤ì¤ëʸ»úÎó -¤ò \fIs\fP ¤«¤éõ¤·¡¢¤½¤ÎºÇ½é¤ÎÉôʬ¤ÎŤµ¤ò·×»»¤¹¤ë¡£ +関数は、\fIaccept\fP に含まれる文字だけで構成される文字列 +を \fIs\fP から探し、その最初の部分の長さを計算する。 .PP .BR strcspn () -´Ø¿ô¤Ï¡¢\fIreject\fP ¤Ë´Þ¤Þ¤ì¤Ê¤¤Ê¸»ú¤À¤±¤Ç¹½À®¤µ¤ì¤ëʸ»úÎó -¤ò \fIs\fP ¤«¤éõ¤·¡¢¤½¤ÎºÇ½é¤ÎÉôʬ¤ÎŤµ¤ò·×»»¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ +関数は、\fIreject\fP に含まれない文字だけで構成される文字列 +を \fIs\fP から探し、その最初の部分の長さを計算する。 +.SH 返り値 .BR strspn () -´Ø¿ô¤Ï¡¢\fIaccept\fP ¤«¤é¤Îʸ»ú¤À¤±¤Ç¹½À®¤µ¤ì¤ë \fIs\fP ¤Î -ºÇ½é¤ÎÉôʬ¤Îʸ»ú¤Î¿ô¤òÊÖ¤¹¡£ +関数は、\fIaccept\fP からの文字だけで構成される \fIs\fP の +最初の部分の文字の数を返す。 .PP .BR strcspn () -´Ø¿ô¤Ï¡¢\fIs\fP ¤ÎºÇ½é¤ÎÉôʬ¤Ç¡¢Ê¸»úÎó \fIreject\fP ¤Ë -´Þ¤Þ¤ì¤Ê¤¤Ê¸»ú¤Î¿ô¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIs\fP の最初の部分で、文字列 \fIreject\fP に +含まれない文字の数を返す。 +.SH 準拠 SVr4, 4.3BSD, C89, C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR index (3), .BR memchr (3), .BR rindex (3), diff --git a/release/man3/strstr.3 b/release/man3/strstr.3 index 117189cc..7459488d 100644 --- a/release/man3/strstr.3 +++ b/release/man3/strstr.3 @@ -36,46 +36,46 @@ .\" Updated Wed Apr 20 JST 2005 by by Kentaro Shirakata .\" .TH STRSTR 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -strstr, strcasestr \- Éôʬʸ»úÎó¤Î°ÌÃÖ¤ò¼¨¤¹ -.SH ½ñ¼° +.SH 名前 +strstr, strcasestr \- 部分文字列の位置を示す +.SH 書式 .nf .B #include .sp .BI "char *strstr(const char *" haystack ", const char *" needle ); .sp -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .sp .B #include .sp .BI "char *strcasestr(const char *" haystack ", const char *" needle ); .fi -.SH ÀâÌÀ +.SH 説明 .BR strstr () -´Ø¿ô¤Ï¡¢Éôʬʸ»úÎó \fIneedle\fP ¤¬Ê¸»úÎó \fIhaystack\fP Ãæ -¤ÇºÇ½é¤Ë¸½¤ì¤ë°ÌÃÖ¤ò¸«¤Ä¤±¤ë¡£ -ʸ»úÎó¤ò½ªÃ¼ NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤ÏÈæ³Ó¤µ¤ì¤Ê¤¤¡£ +関数は、部分文字列 \fIneedle\fP が文字列 \fIhaystack\fP 中 +で最初に現れる位置を見つける。 +文字列を終端 NULL バイト (\(aq\\0\(aq) は比較されない。 .BR strcasestr () -´Ø¿ô¤Ï +関数は .BR strstr () -´Ø¿ô¤ÈƱÍͤÀ¤¬¡¢ -ξÊý¤Î°ú¿ô¤ËÂФ·¤ÆÂçʸ»ú¾®Ê¸»ú¤ò̵»ë¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢Éôʬʸ»úÎó¤Î³«»Ï¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤òÊÖ¤·¡¢ -¤â¤·Éôʬʸ»úÎ󤬸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ -.SH ½àµò +関数と同様だが、 +両方の引数に対して大文字小文字を無視する。 +.SH 返り値 +これらの関数は、部分文字列の開始を指すポインタを返し、 +もし部分文字列が見つからない場合は NULL を返す。 +.SH 準拠 .BR strstr () -´Ø¿ô¤Ï C89 ¤È C99 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +関数は C89 と C99 に準拠している。 .BR strcasestr () -´Ø¿ô¤ÏÈóɸ½à³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH ¥Ð¥° -Linux libc ¤Î½é´ü¤Î¥Ð¡¼¥¸¥ç¥ó(4.5.26 ¤Þ¤Ç)¤Ï +関数は非標準拡張である。 +.SH バグ +Linux libc の初期のバージョン(4.5.26 まで)は .BR strstr () -´Ø¿ô¤Î \fIneedle\fP °ú¿ô¤Ë¶õʸ»úÎó¤ò»ØÄê¤Ç¤­¤Ê¤¤¡£ -ºÇ¶á¤Î¥Ð¡¼¥¸¥ç¥ó(4.6.27 °Ê¹ß)¤ÏÀµ¤·¤¯Æ°ºî¤·¡¢ -\fIneedle\fP ¤¬¶õ¤Î»þ¤Ï \fIhaystack\fP ¤òÊÖ¤¹¡£ -.SH ´ØÏ¢¹àÌÜ +関数の \fIneedle\fP 引数に空文字列を指定できない。 +最近のバージョン(4.6.27 以降)は正しく動作し、 +\fIneedle\fP が空の時は \fIhaystack\fP を返す。 +.SH 関連項目 .BR index (3), .BR memchr (3), .BR rindex (3), diff --git a/release/man3/strtod.3 b/release/man3/strtod.3 index 46bb94ba..8e71a6d3 100644 --- a/release/man3/strtod.3 +++ b/release/man3/strtod.3 @@ -50,9 +50,9 @@ .\" Akihiro MOTOKI , LDP v2.36 .\" .TH STRTOD 3 2010-00-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -strtod, strtof, strtold \- ASCII ʸ»úÎó¤òÉâÆ°¾®¿ôÅÀ¼Â¿ô¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +strtod, strtof, strtold \- ASCII 文字列を浮動小数点実数に変換する +.SH 書式 .B #include .sp .BI "double strtod(const char *" nptr ", char **" endptr ); @@ -62,9 +62,9 @@ strtod, strtof, strtold \- ASCII ʸ .BI "long double strtold(const char *" nptr ", char **" endptr ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .ad l .sp @@ -78,105 +78,105 @@ or .I cc\ -std=c99 .RE .ad l -.SH ÀâÌÀ +.SH 説明 .BR strtod (), .BR strtof (), .BR strtold () -´Ø¿ô¤Ï¡¢ +関数は、 .I nptr -¤¬»Ø¤·¼¨¤¹Ê¸»úÎó¤Î¤Ï¤¸¤á¤ÎÉôʬ¤ò +が指し示す文字列のはじめの部分を .IR double , .IR float , .I long double -·¿¤ÎÃͤˤ½¤ì¤¾¤ìÊÑ´¹¤¹¤ë¡£ +型の値にそれぞれ変換する。 -ÆþÎϤ¹¤ëʸ»úÎó (¤ÎÀèƬÉôʬ) ¤Ï°Ê²¼¤Î·Á¼°¤¬´üÂÔ¤µ¤ì¤Æ¤¤¤ë¡£ -ÀèƬ¤Ë¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹¡¢ -¼¡¤Ë¥×¥é¥¹ (\(aq+\(aq) ¤Þ¤¿¤Ï¥Þ¥¤¥Ê¥¹ (\(aq\-\(aq) ¤Îµ­¹æ¡¢ -¤½¤Î¸å¤Ë (i) 10 ¿Ê¿ô¡¢(ii) 16 ¿Ê¿ô¡¢(iii) ̵¸Â¡¢ -(iv) NAN (·×»»¤Ç¤­¤Ê¤¤¿ô¡¢not-a-number) ¤Î¤¤¤º¤ì¤«¤¬¤¢¤ë -(¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹¡¢Éä¹æ¤Ï¾Êά²Äǽ¡£ -¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹¤Ï +入力する文字列 (の先頭部分) は以下の形式が期待されている。 +先頭にホワイトスペース、 +次にプラス (\(aq+\(aq) またはマイナス (\(aq\-\(aq) の記号、 +その後に (i) 10 進数、(ii) 16 進数、(iii) 無限、 +(iv) NAN (計算できない数、not-a-number) のいずれかがある +(ホワイトスペース、符号は省略可能。 +ホワイトスペースは .BR isspace (3) -¤Ç¼±Ê̤µ¤ì¤ë)¡£ +で識別される)。 .LP -.I "10 ¿Ê¿ô" -¤Ï 1 ʸ»ú°Ê¾å¤Î 10 ¿Ê¤Î¿ô»ú¤ÎÎ󤫤é¤Ê¤ê¡¢ -´ð¤òɽ¤¹Ê¸»ú (radix charater) -(¾®¿ôÅÀ¡£¥í¥±¡¼¥ë¤Ë°Í¸¤¹¤ë¤¬¡¢Ä̾ï¤Ï \(aq.\(aq) ¤¬´Þ¤Þ¤ì¤ë¤³¤È¤â¤¢¤ë¡£ -¤³¤Î¸å¤Ë 10 ¿Ê¤Î»Ø¿ôÉô¤¬Â³¤¤¤Æ¤âÎɤ¤¡£ -10 ¿Ê¤Î»Ø¿ôÉô¤Ï \(aqE\(aq ¤Þ¤¿¤Ï \(aqe\(aq ¤È¡¢¤½¤Î¸å¤ËÃÖ¤«¤ì¤ëÀµÉéµ­¹æ (¾Êά²Ä)¡¢ -¤ª¤è¤Ó¤½¤Î¸å¤Ë³¤¯ 1 ʸ»ú°Ê¾å¤Î 10 ¿Ê¤Î¿ô»ú¤ÎÎ󤫤é¤Ê¤ê¡¢ -10 ¤Î²¿¾è¤Ç¤¢¤ë¤«¤òɽ¤¹¡£ +.I "10 進数" +は 1 文字以上の 10 進の数字の列からなり、 +基を表す文字 (radix charater) +(小数点。ロケールに依存するが、通常は \(aq.\(aq) が含まれることもある。 +この後に 10 進の指数部が続いても良い。 +10 進の指数部は \(aqE\(aq または \(aqe\(aq と、その後に置かれる正負記号 (省略可)、 +およびその後に続く 1 文字以上の 10 進の数字の列からなり、 +10 の何乗であるかを表す。 .LP -.I "16 ¿Ê¿ô" -¤Ï¡¢"0x" ¤Þ¤¿¤Ï "0X" ¤È¤½¤Î¸å¤Ë³¤¯ 1 ʸ»ú°Ê¾å¤Î 16 ¿Ê¤Î¿ô»ú¤ÎÎ󤫤é¤Ê¤ê¡¢ -´ð¤òɽ¤¹Ê¸»ú¤¬´Þ¤Þ¤ì¤ë¤³¤È¤â¤¢¤ë¡£ -¤³¤Î¸å¤Ë 2 ¿Ê¤Î»Ø¿ôÉô¤¬Â³¤¤¤Æ¤âÎɤ¤¡£ -2 ¿Ê¤Î»Ø¿ôÉô¤Ï \(aqP\(aq ¤Þ¤¿¤Ï \(aqp\(aq ¤È¡¢¤½¤Î¸å¤ËÃÖ¤«¤ì¤ëÀµÉéµ­¹æ (¾Êά²Ä)¡¢ -¤ª¤è¤Ó¤½¤Î¸å¤Ë³¤¯ 1 ʸ»ú°Ê¾å¤Î 10 ¿Ê¤Î¿ô»ú¤ÎÎ󤫤鹽À®¤µ¤ì¡¢ -2 ¤Î²¿¾è¤Ç¤¢¤ë¤«¤òɽ¤¹¡£ -´ð¤òɽ¤¹Ê¸»ú¤È 2 ¿Ê¤Î»Ø¿ôÉô¤Ï¡¢¤É¤Á¤é¤«°ìÊý¤·¤«Â¸ºß¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +.I "16 進数" +は、"0x" または "0X" とその後に続く 1 文字以上の 16 進の数字の列からなり、 +基を表す文字が含まれることもある。 +この後に 2 進の指数部が続いても良い。 +2 進の指数部は \(aqP\(aq または \(aqp\(aq と、その後に置かれる正負記号 (省略可)、 +およびその後に続く 1 文字以上の 10 進の数字の列から構成され、 +2 の何乗であるかを表す。 +基を表す文字と 2 進の指数部は、どちらか一方しか存在してはならない。 .LP -.I ̵¸Â -¤Ï "INF" ¤Þ¤¿¤Ï "INFINITY" ¤Çɽ¤µ¤ì¡¢Âçʸ»ú¾®Ê¸»ú¤Ï¶èÊ̤µ¤ì¤Ê¤¤¡£ +.I 無限 +は "INF" または "INFINITY" で表され、大文字小文字は区別されない。 .LP .I NAN -¤Ï "NAN" (Âçʸ»ú¾®Ê¸»ú¤Ï¶èÊ̤µ¤ì¤Ê¤¤) ¤Çɽ¤µ¤ì¡¢ -¤½¤Î¸å¤Ë \(aq(\(aq ʸ»úÎó \(aq)\(aq ¤¬Â³¤¯¾ì¹ç¤â¤¢¤ë¡£ -¤³¤Îʸ»úÎó¤Ï¼ÂÁõ¤Ë°Í¸¤¹¤ë NAN ¤ò»ØÄꤹ¤ë¡£ +は "NAN" (大文字小文字は区別されない) で表され、 +その後に \(aq(\(aq 文字列 \(aq)\(aq が続く場合もある。 +この文字列は実装に依存する NAN を指定する。 .\" From glibc 2.8's stdlib/strtod_l.c: .\" We expect it to be a number which is put in the .\" mantissa of the number. -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ÊÑ´¹¤µ¤ì¤¿Ãͤ¬¤¢¤ì¤Ð¡¢¤½¤ì¤òÊÖ¤¹¡£ +.SH 返り値 +これらの関数は、変換された値があれば、それを返す。 .I endptr -¤¬ NULL ¤Ç¤Ê¤¤¤È¤­¤Ï¡¢ÊÑ´¹¤Ë»È¤ï¤ì¤¿ºÇ½ªÊ¸»ú¤Î¼¡¤Îʸ»ú¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤¬ +が NULL でないときは、変換に使われた最終文字の次の文字へのポインターが .I endptr -¤Ç»²¾È¤µ¤ì¤ë¾ì½ê¤ØÊݸ¤µ¤ì¤ë¡£ +で参照される場所へ保存される。 -ÊÑ´¹¤¬¹Ô¤ï¤ì¤Ê¤«¤Ã¤¿¤È¤­¤Ë¤Ï 0 ¤¬Ê֤롣¤½¤·¤Æ +変換が行われなかったときには 0 が返る。そして .I endptr -¤¬»²¾È¤·¤Æ¤¤¤ë¾ì½ê¤Ë +が参照している場所に .I nptr -¤ÎÃÍ (ÊÑ´¹ÂоݤǤ¢¤ëʸ»úÎó¤Î³«»Ï¥¢¥É¥ì¥¹) ¤¬Êݸ¤µ¤ì¤ë¡£ +の値 (変換対象である文字列の開始アドレス) が保存される。 -Àµ¤·¤¤·Á¼°¤Î¿ôÃÍʸ»úÎó¤Ç¤¢¤ë¤¬¡¢ÊÑ´¹·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤òµ¯¤³¤·¤¿¾ì¹ç -¤Ë¤Ï¡¢¥×¥é¥¹¤Þ¤¿¤Ï¥Þ¥¤¥Ê¥¹¤Î +正しい形式の数値文字列であるが、変換結果がオーバーフローを起こした場合 +には、プラスまたはマイナスの .B HUGE_VAL .RB ( HUGE_VALF , .BR HUGE_VALL ) -¤¬ÊÖ¤ê (ÃͤÎÉä¹æ¤Ë¤è¤ë)¡¢ +が返り (値の符号による)、 .B ERANGE -¤¬ +が .I errno -¤ËÂåÆþ¤µ¤ì¤ë¡£ÊÑ´¹·ë²Ì¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤òµ¯¤³¤·¤¿¾ì¹ç¤Ë¤Ï 0 ¤¬Ê֤ꡢ +に代入される。変換結果がアンダーフローを起こした場合には 0 が返り、 .B ERANGE -¤¬ +が .I errno -¤ËÂåÆþ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +に代入される。 +.SH エラー .TP .B ERANGE -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Þ¤¿¤Ï¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¬µ¯¤³¤Ã¤¿¡£ -.SH ½àµò -C89 ¤Ç¤Ï +オーバーフローまたはアンダーフローが起こった。 +.SH 準拠 +C89 では .BR strtod () -¤¬¡¢C99 ¤Ç¤Ï»Ä¤ê¤Î 2 ¤Ä¤Î´Ø¿ô¤¬µ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -À®¸ù¡¢¼ºÇԤɤÁ¤é¤Î¾ì¹ç¤Ç¤â 0 ¤òÊÖ¤¹²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç¡¢ -¥×¥í¥°¥é¥à¤Ï¸Æ¤Ó½Ð¤¹Á°¤Ë +が、C99 では残りの 2 つの関数が記述されている。 +.SH 注意 +成功、失敗どちらの場合でも 0 を返す可能性があるので、 +プログラムは呼び出す前に .I errno -¤ò 0 ¤ËÀßÄꤷ¡¢¸Æ¤Ó½Ð¤·¸å¤Ë +を 0 に設定し、呼び出し後に .I errno -¤¬ 0 °Ê³°¤ÎÃͤ«¤É¤¦¤«¤ò³Îǧ¤·¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤É¤¦¤«¤òȽÃǤ¹¤ë -ɬÍפ¬¤¢¤ë¡£ -.SH Îã +が 0 以外の値かどうかを確認しエラーが発生したかどうかを判断する +必要がある。 +.SH 例 .BR strtol (3) -¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÎÎã¤ò»²¾È¡£ -¤³¤Î¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤¿´Ø¿ô¤Î»ÈÍÑÊýË¡¤âƱÍͤǤ¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +のマニュアルページの例を参照。 +このページで説明した関数の使用方法も同様である。 +.SH 関連項目 .BR atof (3), .BR atoi (3), .BR atol (3), diff --git a/release/man3/strtoimax.3 b/release/man3/strtoimax.3 index 8930f37c..a6586c4f 100644 --- a/release/man3/strtoimax.3 +++ b/release/man3/strtoimax.3 @@ -26,9 +26,9 @@ .\" by Yuichi SATO .\" .TH STRTOIMAX 3 2003-11-28 "" "Linux Programmer's Manual" -.SH ̾Á° -strtoimax, strtoumax \- ʸ»úÎó¤òÀ°¿ô¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +strtoimax, strtoumax \- 文字列を整数に変換する +.SH 書式 .nf .B #include .sp @@ -36,33 +36,33 @@ strtoimax, strtoumax \- ʸ .br .BI "uintmax_t strtoumax(const char *" nptr ", char **" endptr ", int " base ); .fi -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¤Á¤ç¤¦¤É +.SH 説明 +これらの関数はちょうど .BR strtol (3) -¤È +と .BR strtoul (3) -¤Ë»÷¤Æ¤¤¤ë¤¬¡¢¤½¤ì¤¾¤ì +に似ているが、それぞれ .I intmax_t -¤È +と .I uintmax_t -·¿¤ÎÃͤòÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ÊÑ´¹¤µ¤ì¤¿Ãͤ¬ÊÖ¤µ¤ì¤ë¡£ -ÊÑ´¹¤¹¤ë¤â¤Î¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Þ¤¿¤Ï¥¢¥ó¥À¡¼¥Õ¥í¡¼¤Î¾ì¹ç¡¢ +型の値を返す。 +.SH 返り値 +成功した場合、変換された値が返される。 +変換するものが見つからなかった場合、0 が返される。 +オーバーフローまたはアンダーフローの場合、 .B INTMAX_MAX -¤Þ¤¿¤Ï +または .B INTMAX_MIN -¤Þ¤¿¤Ï +または .B UINTMAX_MAX -¤¬ÊÖ¤µ¤ì¡¢ +が返され、 .I errno -¤¬ +が .B ERANGE -¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ½àµò +に設定される。 +.SH 準拠 C99, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR imaxabs (3), .BR imaxdiv (3), .BR strtol (3), diff --git a/release/man3/strtok.3 b/release/man3/strtok.3 index 67f6bd4f..396a1a3a 100644 --- a/release/man3/strtok.3 +++ b/release/man3/strtok.3 @@ -33,9 +33,9 @@ .\" Updated 2005-11-19, Akihiro MOTOKI .\" .TH STRTOK 3 2010-09-27 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -strtok, strtok_r \- ʸ»úÎ󤫤é¥È¡¼¥¯¥ó¤ò¼è¤ê½Ð¤¹ -.SH ½ñ¼° +.SH 名前 +strtok, strtok_r \- 文字列からトークンを取り出す +.SH 書式 .nf .B #include .sp @@ -45,9 +45,9 @@ strtok, strtok_r \- ʸ .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -55,96 +55,96 @@ glibc _SVID_SOURCE || _BSD_SOURCE || _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .ad b -.SH ÀâÌÀ +.SH 説明 .BR strtok () -´Ø¿ô¤Ïʸ»úÎó¤ò²òÀϤ·¤Æ¥È¡¼¥¯¥ó¤Ëʬ³ä¤¹¤ë¡£ +関数は文字列を解析してトークンに分割する。 .BR strtok () -¤òºÇ½é¤Ë¸Æ¤Ó½Ð¤¹ºÝ¤Ë¤Ï¡¢²òÀÏÂоݤÎʸ»úÎó¤ò \fIstr\fP ¤Ë -»ØÄꤹ¤ë¡£Æ±¤¸Ê¸»úÎó¤Î²òÀϤò¹Ô¤¦¤½¤Î¸å¤Î¸Æ¤Ó½Ð¤·¤Ç¤Ï¡¢ -\fIstr\fP ¤Ë¤Ï NULL ¤ò»ØÄꤹ¤ë¡£ +を最初に呼び出す際には、解析対象の文字列を \fIstr\fP に +指定する。同じ文字列の解析を行うその後の呼び出しでは、 +\fIstr\fP には NULL を指定する。 -\fIdelim\fP °ú¤­¿ô¤Ë¤Ï¡¢²òÀϤ¹¤ëʸ»úÎó¤ò¥È¡¼¥¯¥ó¤Ë¶èÀÚ¤ëʸ»ú½¸¹ç¤ò -»ØÄꤹ¤ë¡£Æ±¤¸Ê¸»úÎó¤ò²òÀϤ¹¤ë°ìÏ¢¤Î¸Æ¤Ó½Ð¤·¤Ë¤ª¤¤¤Æ¡¢ -\fIdelim\fP ¤Ë°ã¤¦Ê¸»úÎó¤ò»ØÄꤷ¤Æ¤â¤è¤¤¡£ +\fIdelim\fP 引き数には、解析する文字列をトークンに区切る文字集合を +指定する。同じ文字列を解析する一連の呼び出しにおいて、 +\fIdelim\fP に違う文字列を指定してもよい。 .BR strtok () -¤Î¤½¤ì¤¾¤ì¤Î¸Æ¤Ó½Ð¤·¤Ç¤Ï¡¢¼¡¤Î¥È¡¼¥¯¥ó¤ò -³ÊǼ¤·¤¿ NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤Îʸ»úÎó¤Ë¤Ï¶èÀÚ¤êʸ»ú¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ -¤³¤ì°Ê¾å¥È¡¼¥¯¥ó¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢NULL ¤¬ÊÖ¤µ¤ì¤ë¡£ +のそれぞれの呼び出しでは、次のトークンを +格納した NULL 終端された文字列へのポインタが返される。 +この文字列には区切り文字は含まれない。 +これ以上トークンが見つからなかった場合には、NULL が返される。 -²òÀÏÂоݤÎʸ»úÎó¤Ë2¤Ä°Ê¾å¤Î¶èÀÚ¤êʸ»ú¤¬Ï¢Â³¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -°ì¤Ä¤Î¶èÀÚ¤êʸ»ú¤È¤ß¤Ê¤µ¤ì¤ë¡£ -ʸ»úÎó¤ÎÀèƬ¤äËöÈø¤Ë¤¢¤ë¶èÀÚ¤êʸ»ú¤Ï̵»ë¤µ¤ì¤ë¡£¸À¤¤´¹¤¨¤ë¤È¡¢ +解析対象の文字列に2つ以上の区切り文字が連続している場合には、 +一つの区切り文字とみなされる。 +文字列の先頭や末尾にある区切り文字は無視される。言い換えると、 .BR strtok () -¤¬ÊÖ¤¹¥È¡¼¥¯¥ó¤Ï¾ï¤Ë¶õ¤Ç¤Ê¤¤Ê¸»úÎó¤È¤Ê¤ë¡£ +が返すトークンは常に空でない文字列となる。 .BR strtok_r () -´Ø¿ô¤Ï +関数は .BR strtok () -¤Î¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤǤ¢¤ë¡£ -\fIsaveptr\fP °ú¤­¿ô¤Ï \fIchar *\fP ÊÑ¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ê¡¢ -Ʊ¤¸Ê¸»úÎó¤Î²òÀϤò¹Ô¤¦ +のリエントラント版である。 +\fIsaveptr\fP 引き数は \fIchar *\fP 変数へのポインタであり、 +同じ文字列の解析を行う .BR strtok_r () -¤Î¸Æ¤Ó½Ð¤·´Ö¤Ç½èÍý¾õ¶·¤òÊݸ¤¹¤ë¤¿¤á¤Ë +の呼び出し間で処理状況を保存するために .BR strtok_r () -ÆâÉô¤Ç»ÈÍѤµ¤ì¤ë¡£ +内部で使用される。 .BR strtok_r () -¤òºÇ½é¤Ë¸Æ¤Ó½Ð¤¹ºÝ¤Ë¤Ï¡¢ +を最初に呼び出す際には、 .I str -¤Ï²òÀÏÂоݤÎʸ»úÎó¤ò»Ø¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ +は解析対象の文字列を指していなければならず、 .I saveptr -¤ÎÃͤÏ̵»ë¤µ¤ì¤ë¡£¤½¤ì°Ê¹ß¤Î¸Æ¤Ó½Ð¤·¤Ç¤Ï¡¢ +の値は無視される。それ以降の呼び出しでは、 .I str -¤Ï NULL ¤È¤·¡¢ +は NULL とし、 .I saveptr -¤ÏÁ°²ó¤Î¸Æ¤Ó½Ð¤·°Ê¹ßÊѹ¹¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は前回の呼び出し以降変更しないようにしなければならない。 .BR strtok_r () -¤Î¸Æ¤Ó½Ð¤·»þ¤Ë°Û¤Ê¤ë \fIsaveptr\fP °ú¤­¿ô¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢ -°Û¤Ê¤ëʸ»úÎó¤Î²òÀϤòƱ»þ¤Ë¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -.SH ÊÖ¤êÃÍ +の呼び出し時に異なる \fIsaveptr\fP 引き数を指定することで、 +異なる文字列の解析を同時に行うことができる。 +.SH 返り値 .BR strtok () -¤È +と .BR strtok_r () -¤Ï¼¡¤Î¥È¡¼¥¯¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¤«¡¢ -¥È¡¼¥¯¥ó¤¬¤Ê¤±¤ì¤Ð NULL ¤òÊÖ¤¹¡£ -.SH ½àµò +は次のトークンへのポインタか、 +トークンがなければ NULL を返す。 +.SH 準拠 .TP .BR strtok () SVr4, POSIX.1-2001, 4.3BSD, C89, C99. .TP .BR strtok_r () POSIX.1-2001. -.SH ¥Ð¥° -¤³¤ì¤é¤Î´Ø¿ô¤ò»È¤¦¤Î¤Ï¿µ½Å¤Ë¶ãÌ£¤¹¤ë¤³¤È¡£ -»ÈÍѤ¹¤ë¾ì¹ç¤Ï¡¢°Ê²¼¤ÎÅÀ¤ËÃí°Õ¤¬É¬ÍפǤ¢¤ë¡£ +.SH バグ +これらの関数を使うのは慎重に吟味すること。 +使用する場合は、以下の点に注意が必要である。 .IP * 2 -¤³¤ì¤é¤Î´Ø¿ô¤Ï¤½¤ÎºÇ½é¤Î°ú¿ô¤òÊѹ¹¤¹¤ë¡£ +これらの関数はその最初の引数を変更する。 .IP * -¤³¤ì¤é¤Î´Ø¿ô¤Ï const ¤Êʸ»úÎó¤Ç¤Ï»È¤¨¤Ê¤¤¡£ +これらの関数は const な文字列では使えない。 .IP * -¶èÀÚ¤êʸ»ú¼«ÂΤϼº¤ï¤ì¤Æ¤·¤Þ¤¦¡£ +区切り文字自体は失われてしまう。 .IP * .BR strtok () -´Ø¿ô¤Ïʸ»úÎó¤Î²òÀϤËÀÅŪ¥Ð¥Ã¥Õ¥¡¤òÍѤ¤¤ë¤Î¤Ç¡¢¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤Ê¤¤¡£ -¤³¤ì¤¬ÌäÂê¤Ë¤Ê¤ë¾ì¹ç¤Ï +関数は文字列の解析に静的バッファを用いるので、スレッドセーフでない。 +これが問題になる場合は .BR strtok_r () -¤òÍѤ¤¤ë¤³¤È¡£ -.SH Îã -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢ +を用いること。 +.SH 例 +以下のプログラムは、 .BR strtok_r () -¤òÍøÍѤ¹¤ë¥ë¡¼¥×¤òÆþ¤ì»Ò¤Ë¤·¤Æ»ÈÍѤ·¡¢ -ʸ»úÎó¤ò2³¬ÁؤΥȡ¼¥¯¥ó¤Ëʬ³ä¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -1ÈÖÌܤΥ³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ë¤Ï¡¢²òÀÏÂоݤÎʸ»úÎó¤ò»ØÄꤹ¤ë¡£ -2ÈÖÌܤΰú¤­¿ô¤Ë¤Ï¡¢Ê¸»úÎó¤ò¡ÖÂ礭¤Ê¡×¥È¡¼¥¯¥ó¤Ëʬ³ä¤¹¤ë¤¿¤á¤Ë -»ÈÍѤ¹¤ë¶èÀÚ¤êʸ»ú¤ò»ØÄꤹ¤ë¡£ -3ÈÖÌܤΰú¤­¿ô¤Ë¤Ï¡¢¡ÖÂ礭¤Ê¡×¥È¡¼¥¯¥ó¤òºÙ¤«¤¯Ê¬³ä¤¹¤ë¤¿¤á¤Ë -»ÈÍѤ¹¤ë¶èÀÚ¤êʸ»ú¤ò»ØÄꤹ¤ë¡£ +を利用するループを入れ子にして使用し、 +文字列を2階層のトークンに分割するものである。 +1番目のコマンドライン引き数には、解析対象の文字列を指定する。 +2番目の引き数には、文字列を「大きな」トークンに分割するために +使用する区切り文字を指定する。 +3番目の引き数には、「大きな」トークンを細かく分割するために +使用する区切り文字を指定する。 .PP .PP -¤³¤Î¥×¥í¥°¥é¥à¤Î½ÐÎÏÎã¤ò°Ê²¼¤Ë¼¨¤¹¡£ +このプログラムの出力例を以下に示す。 .PP .in +4n .nf @@ -159,7 +159,7 @@ POSIX.1-2001. \-\-> yyy .fi .in -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -198,10 +198,10 @@ main(int argc, char *argv[]) .fi .PP .BR strtok () -¤ò»È¤Ã¤¿ÊÌ¤Î¥×¥í¥°¥é¥àÎ㤬 +を使った別のプログラム例が .BR getaddrinfo_a (3) -¤Ë¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +にある。 +.SH 関連項目 .BR index (3), .BR memchr (3), .BR rindex (3), diff --git a/release/man3/strtol.3 b/release/man3/strtol.3 index 877437ab..b93ced58 100644 --- a/release/man3/strtol.3 +++ b/release/man3/strtol.3 @@ -36,12 +36,12 @@ .\" Updated & Modified 2006-07-20, .\" Akihiro MOTOKI , LDP v2.36 .\" -.\" WORD: base ´ð¿ô +.\" WORD: base 基数 .\" .TH STRTOL 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -strtol, strtoll, strtoq \- ʸ»úÎó¤ò long int ¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +strtol, strtoll, strtoq \- 文字列を long int に変換する +.SH 書式 .nf .B #include .sp @@ -52,9 +52,9 @@ strtol, strtoll, strtoq \- ʸ .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -67,107 +67,107 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR strtol () -´Ø¿ô¤Ï¡¢ \fInptr\fP ¤Îʸ»úÎó¤ÎºÇ½é¤ÎÉôʬ¤ò¡¢ -\fIbase\fP ¤ò´ð¿ô¤È¤·¤Æ long int ¤ËÊÑ´¹¤¹¤ë¡£ -¤³¤Î \fIbase\fP ¤Ï 2 ¤«¤é 36 ¤Þ¤Ç¤ÎÃÍ -¤¢¤ë¤¤¤ÏÆÃÊ̤ʰÕÌ£¤ò»ý¤ÄÃÍ 0 ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +関数は、 \fInptr\fP の文字列の最初の部分を、 +\fIbase\fP を基数として long int に変換する。 +この \fIbase\fP は 2 から 36 までの値 +あるいは特別な意味を持つ値 0 でなければならない。 .PP -ʸ»úÎó¤ÎÀèƬ¤Ë¤Ï¡¢Ç¤°Õ¤Î¿ô¤Î¶õÇò¤¬¤¢¤Ã¤Æ¤â¤è¤¯ (¶õÇò¤Ï +文字列の先頭には、任意の数の空白があってもよく (空白は .BR isspace (3) -¤ÇȽÄꤵ¤ì¤ë)¡¢¤Þ¤¿¿ô»ú¤ÎľÁ°¤Ë¤Ï \(aq+\(aq ¤« \(aq\-\(aq ¤Î -Éä¹æ¤¬¤¢¤Ã¤Æ¤â¤è¤¤¡£ -\fIbase\fP ¤¬ 0 ¤Þ¤¿¤Ï 16 ¤Î¾ì¹ç¤Ë¤Ï¡¢Ê¸»úÎó¤ÎÀèƬ¤Ë "0x" ¤òÃÖ¤¯¤³¤È¤¬ -¤Ç¤­¡¢¤½¤Î¾ì¹ç¤Ë¤Ïʸ»úÎó¤Ï 16¿Ê¿ô¤È¤·¤Æ°·¤ï¤ì¤ë¡£ -¤³¤ì°Ê³°¤Îʸ»úÎó¤Ç \fIbase\fP ¤¬ 0 ¤Î¾ì¹ç¤Ï¡¢ -ʸ»úÎó¤¬ \(aq0\(aq ¤Ç»Ï¤Þ¤ë¤È¤­¤Ï 8¿Ê¿ô¤È¤·¤Æ¡¢ -¤½¤ì°Ê³°¤Î¤È¤­¤Ï 10¿Ê¿ô¤È¤·¤Æ°·¤ï¤ì¤ë¡£ +で判定される)、また数字の直前には \(aq+\(aq か \(aq\-\(aq の +符号があってもよい。 +\fIbase\fP が 0 または 16 の場合には、文字列の先頭に "0x" を置くことが +でき、その場合には文字列は 16進数として扱われる。 +これ以外の文字列で \fIbase\fP が 0 の場合は、 +文字列が \(aq0\(aq で始まるときは 8進数として、 +それ以外のときは 10進数として扱われる。 .PP -¿ô»ú¤òɽ¤¹Ê¸»úÎó¤Ï +数字を表す文字列は .I long int -¤ËÊÑ´¹¤µ¤ì¤ë¤¬¡¢´ð¿ô¤ËÂФ·¤Æ -Í­¸ú¤Ç¤Ê¤¤¿ô»ú¤¬¸½¤ì¤¿»þÅÀ¤ÇÊÑ´¹¤Ï½ªÎ»¤¹¤ë¡£(11¿Ê¿ô°Ê¾å¤Ç¤Ï \(aqA\(aq ¤Ï -Âçʸ»ú¡¦¾®Ê¸»ú¤Ë´Ø¤ï¤é¤º 10 ¤òɽ¤·¡¢ \(aqB\(aq ¤Ï 11 ¤òɽ¸½¤·¡¢ -°Ê²¼Æ±Íͤˡ¢ \(aqZ\(aq ¤Ï 35 ¤òɽ¤¹¡£) +に変換されるが、基数に対して +有効でない数字が現れた時点で変換は終了する。(11進数以上では \(aqA\(aq は +大文字・小文字に関わらず 10 を表し、 \(aqB\(aq は 11 を表現し、 +以下同様に、 \(aqZ\(aq は 35 を表す。) .PP -\fIendptr\fP ¤¬¥Ì¥ëÃÍ (NULL) ¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢ºÇ½é¤Ë¸½¤ì¤¿ÉÔÀµ¤Êʸ»ú¤¬ +\fIendptr\fP がヌル値 (NULL) でない場合は、最初に現れた不正な文字が .BR strtol () -¤Ë¤è¤Ã¤Æ \fI*endptr\fP ¤ËÊݸ¤µ¤ì¤Æ¤¤¤ë¡£ -ʸ»úÎó¤ËÍ­¸ú¤Ê¿ô»ú¤¬¤Ò¤È¤Ä¤â¤Ê¤±¤ì¤Ð¡¢ +によって \fI*endptr\fP に保存されている。 +文字列に有効な数字がひとつもなければ、 .BR strtol () -¤Ï \fInptr\fP -¤Î¸µ¤ÎÃͤò \fI*endptr\fP ¤ËÂåÆþ¤¹¤ë (¤½¤·¤Æ 0 ¤òÊÖ¤¹)¡£ -Æäˡ¢\fI*nptr\fP ¤¬ \(aq\\0\(aq °Ê³°¤Ç¡¢ÊÖ¤µ¤ì¤¿ \fI**endptr\fP ¤¬ -\(aq\\0\(aq ¤Ê¤é¤Ð¡¢Ê¸»úÎóÁ´ÂΤ¬Í­¸ú¤À¤Ã¤¿¤³¤È¤Ë¤Ê¤ë¡£ +は \fInptr\fP +の元の値を \fI*endptr\fP に代入する (そして 0 を返す)。 +特に、\fI*nptr\fP が \(aq\\0\(aq 以外で、返された \fI**endptr\fP が +\(aq\\0\(aq ならば、文字列全体が有効だったことになる。 .PP .BR strtoll () -´Ø¿ô¤Ï +関数は .BR strtol () -¤ÈƱÍͤÀ¤¬¡¢long long int ·¿¤ÎÃͤòÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -¥¢¥ó¥À¡¼¥Õ¥í¡¼¤â¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤âµ¯¤­¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ +と同様だが、long long int 型の値を返す。 +.SH 返り値 +アンダーフローもオーバーフローも起きなかった場合、 .BR strtol () -´Ø¿ô¤Ï -ÊÑ´¹¤µ¤ì¤¿ÃͤòÊÖ¤¹¡£¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤¿¾ì¹ç¤Ë¤Ï +関数は +変換された値を返す。オーバーフローした場合には .B LONG_MAX -¤¬Ê֤ꡢ -¥¢¥ó¥À¡¼¥Õ¥í¡¼¤·¤¿¾ì¹ç¤Ë¤Ï +が返り、 +アンダーフローした場合には .B LONG_MIN -¤¬Ê֤롣¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¡¢ -¥¢¥ó¥À¡¼¥Õ¥í¡¼¤Î¤¤¤º¤ì¤Î¾ì¹ç¤Ë¤â -Âç°èÊÑ¿ô \fIerrno\fP ¤Ë¤Ï +が返る。オーバーフロー、 +アンダーフローのいずれの場合にも +大域変数 \fIerrno\fP には .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .BR strtoll () -¤âƱÍͤǤ¢¤ë¤¬¡¢ +も同様であるが、 .B LONG_MIN -¤È +と .B LONG_MAX -¤ÎÂå¤ï¤ê¤Ë +の代わりに .B LLONG_MIN -¤È +と .B LLONG_MAX -¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が返される。 +.SH エラー .TP .B EINVAL -(C99 ¤Ë¤Ï¤Ê¤¤) +(C99 にはない) .I base -¤¬Âбþ¤·¤Æ¤¤¤Ê¤¤ÃͤǤ¢¤ë¡£ +が対応していない値である。 .TP .B ERANGE -·ë²Ì¤ÎÃͤ¬Èϰϳ°¤Ç¤¢¤ë¡£ +結果の値が範囲外である。 .LP -¼ÂÁõ¤Ë¤è¤Ã¤Æ¤Ï¡¢ÊÑ´¹¤¬¹Ô¤ï¤ì¤Ê¤«¤Ã¤¿¾ì¹ç (¿ô»ú¤¬¤Ê¤¯¡¢0 ¤òÊÖ¤·¤¿¾ì¹ç)¡¢ -\fIerrno\fP ¤Ë \fBEINVAL\fP ¤¬ÀßÄꤵ¤ì¤ë¾ì¹ç¤¬¤¢¤ë¡£ -.SH ½àµò +実装によっては、変換が行われなかった場合 (数字がなく、0 を返した場合)、 +\fIerrno\fP に \fBEINVAL\fP が設定される場合がある。 +.SH 準拠 .BR strtol () -¤Ï SVr4, 4.3BSD, C89, C99 ¤È POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +は SVr4, 4.3BSD, C89, C99 と POSIX.1-2001 に準拠している。 .BR strtoll () -¤Ï C99 ¤È POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ -.SH Ãí°Õ +は C99 と POSIX.1-2001 に準拠している。 +.SH 注意 .B strtol () -¤«¤é¤ÏÀ®¸ù¡¢¼ºÇԤɤÁ¤é¤Î¾ì¹ç¤Ç¤â +からは成功、失敗どちらの場合でも 0, .BR LONG_MAX , .B LONG_MIN .RB ( strtoll () -¤Ç¤Ï +では .BR LLONG_MAX , .BR LLONG_MIN ) -¤¬ÊÖ¤ë²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç¡¢ -¥×¥í¥°¥é¥à¤Ï´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë +が返る可能性があるので、 +プログラムは関数を呼び出す前に .I errno -¤ò 0 ¤ËÀßÄꤷ¡¢¸Æ¤Ó½Ð¤·¸å¤Ë +を 0 に設定し、呼び出し後に .I errno -¤¬ 0 °Ê³°¤ÎÃͤ«¤É¤¦¤«¤ò³Îǧ¤·¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤É¤¦¤«¤òȽÃǤ¹¤ë -ɬÍפ¬¤¢¤ë¡£ +が 0 以外の値かどうかを確認しエラーが発生したかどうかを判断する +必要がある。 -"C" °Ê³°¤Î¥í¥±¡¼¥ë¤Î¾ì¹ç¡¢¤½¤Î¾¤Îʸ»úÎó¤â¼õ¤±ÉÕ¤±¤é¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -(Î㤨¤Ð¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î 1000 Ëè¤Î¶èÀÚ¤êʸ»ú¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£) +"C" 以外のロケールの場合、その他の文字列も受け付けられるかもしれない。 +(例えば、現在のロケールの 1000 毎の区切り文字がサポートされているかもしれない。) .LP -BSD ¤Ë¤Ï¡¢ +BSD には、 .sp .in +4n .nf @@ -175,30 +175,30 @@ BSD .sp .in .fi -¤È¤¤¤¦´°Á´¤ËƱÍͤÎÄêµÁ¤ò»ý¤Ä´Ø¿ô¤¬¤¢¤ë¡£ -»ÈÍÑÃæ¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î¥ï¡¼¥ÉĹ¼¡Âè¤Ç¤¢¤ë¤¬¡¢¤³¤Î´Ø¿ô¤Ï +という完全に同様の定義を持つ関数がある。 +使用中のアーキテクチャのワード長次第であるが、この関数は .BR strtoll () -¤« +か .BR strtol () -¤ÈÅù²Á¤È¤Ê¤ë¤³¤È¤â¤¢¤ë¡£ -.SH Îã -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï +と等価となることもある。 +.SH 例 +以下のプログラムは .BR strtol () -¤Î»ÈÍÑÎã¤Ç¤¢¤ë¡£ -ºÇ½é¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ë¤Ï +の使用例である。 +最初のコマンドライン引き数には .BR strtol () -¤¬¿ô»ú¤È¤·¤Æ²ò¼á¤¹¤ëʸ»úÎó¤ò»ØÄꤹ¤ë¡£ -(¾Êά²Äǽ¤Ê) ÆóÈÖÌܤΰú¤­¿ô¤Ë¤Ï -ÊÑ´¹¤Ë»ÈÍѤµ¤ì¤ë´ð¿ô¤ò»ØÄꤹ¤ë -(¤³¤Î°ú¤­¿ô¤Ï +が数字として解釈する文字列を指定する。 +(省略可能な) 二番目の引き数には +変換に使用される基数を指定する +(この引き数は .BR atoi (3) -¤ò»È¤Ã¤Æ¿ôÃͤËÊÑ´¹¤µ¤ì¤ë¡£ +を使って数値に変換される。 .BR atoi (3) -¤Ï +は .BR strtol () -¤è¤ê¤â´Êñ¤Ê¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò»ý¤Ä´Ø¿ô¤Ç¡¢ -¤½¤ÎÃæ¤Ç¤Ï¥¨¥é¡¼¥Á¥§¥Ã¥¯¤Ï¹Ô¤ï¤ì¤Ê¤¤)¡£ -¤³¤Î¥×¥í¥°¥é¥à¤Î¼Â¹ÔÎã¤ò¤¤¤¯¤Ä¤«°Ê²¼¤Ë¼¨¤¹: +よりも簡単なインタフェースを持つ関数で、 +その中ではエラーチェックは行われない)。 +このプログラムの実行例をいくつか以下に示す: .in +4n .nf @@ -217,7 +217,7 @@ No digits were found strtol: Numerical result out of range .fi .in -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -266,7 +266,7 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR atof (3), .BR atoi (3), .BR atol (3), diff --git a/release/man3/strtoul.3 b/release/man3/strtoul.3 index 5460c7c9..5c2a8357 100644 --- a/release/man3/strtoul.3 +++ b/release/man3/strtoul.3 @@ -36,12 +36,12 @@ .\" Updated & Modified 2006-07-20, .\" Akihiro MOTOKI , LDP v2.36 .\" -.\" WORD: base ´ð¿ô +.\" WORD: base 基数 .\" .TH STRTOUL 3 2011-09-15 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -strtoul, strtoull, strtouq \- ʸ»úÎó¤ò unsigned long int ¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +strtoul, strtoull, strtouq \- 文字列を unsigned long int に変換する +.SH 書式 .nf .B #include .sp @@ -53,9 +53,9 @@ strtoul, strtoull, strtouq \- ʸ .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -68,105 +68,105 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR strtoul () -´Ø¿ô¤Ï¡¢ \fInptr\fP ¤Îʸ»úÎó¤ÎºÇ½é¤ÎÉôʬ¤ò¡¢ -\fIbase\fP ¤ò´ð¿ô¤È¤·¤Æ +関数は、 \fInptr\fP の文字列の最初の部分を、 +\fIbase\fP を基数として .I "unsigned long int" -¤ËÊÑ´¹¤¹¤ë¡£ -¤³¤Î \fIbase\fP ¤Ï 2 ¤«¤é 36 ¤Þ¤Ç¤ÎÃÍ -¤¢¤ë¤¤¤ÏÆÃÊ̤ʰÕÌ£¤ò»ý¤ÄÃÍ 0 ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +に変換する。 +この \fIbase\fP は 2 から 36 までの値 +あるいは特別な意味を持つ値 0 でなければならない。 .PP -ʸ»úÎó¤ÎÀèƬ¤Ë¤Ï¡¢Ç¤°Õ¤Î¿ô¤Î¶õÇò¤¬¤¢¤Ã¤Æ¤â¤è¤¯ (¶õÇò¤Ï +文字列の先頭には、任意の数の空白があってもよく (空白は .BR ( isspace (3) -¤ÇȽÄꤵ¤ì¤ë) ¡¢¤Þ¤¿¿ô»ú¤ÎľÁ°¤Ë¤Ï \(aq+\(aq ¤« \(aq\-\(aq ¤Î -Éä¹æ¤¬¤¢¤Ã¤Æ¤â¤è¤¤¡£ -\fIbase\fP ¤¬ 0 ¤Þ¤¿¤Ï 16 ¤Î¾ì¹ç¤Ë¤Ï¡¢ ʸ»úÎó¤ÎÀèƬ¤Ë "0x" ¤òÃÖ¤¯¤³¤È¤¬ -¤Ç¤­¡¢¤½¤Î¾ì¹ç¤Ë¤Ïʸ»úÎó¤Ï 16¿Ê¿ô¤È¤·¤Æ°·¤ï¤ì¤ë¡£ -¤³¤ì°Ê³°¤Îʸ»úÎó¤Ç \fIbase\fP ¤¬ 0 ¤Î¾ì¹ç¤Ï¡¢ -ʸ»úÎó¤¬ \(aq0\(aq ¤Ç»Ï¤Þ¤ë¤È¤­¤Ï 8¿Ê¿ô¤È¤·¤Æ¡¢ -¤½¤ì°Ê³°¤Î¤È¤­¤Ï 10¿Ê¿ô¤È¤·¤Æ°·¤ï¤ì¤ë¡£ +で判定される) 、また数字の直前には \(aq+\(aq か \(aq\-\(aq の +符号があってもよい。 +\fIbase\fP が 0 または 16 の場合には、 文字列の先頭に "0x" を置くことが +でき、その場合には文字列は 16進数として扱われる。 +これ以外の文字列で \fIbase\fP が 0 の場合は、 +文字列が \(aq0\(aq で始まるときは 8進数として、 +それ以外のときは 10進数として扱われる。 .PP -ʸ»úÎó¤Î»Ä¤ê¤ÎÉôʬ¤Ï +文字列の残りの部分は .I "unsigned long int" -¤ËÊÑ´¹¤µ¤ì¤ë¤¬¡¢´ð¿ô¤ËÂФ·¤Æ -Í­¸ú¤Ç¤Ê¤¤¿ô»ú¤¬¸½¤ì¤¿»þÅÀ¤ÇÊÑ´¹¤Ï½ªÎ»¤¹¤ë¡£(11¿Ê¿ô°Ê¾å¤Ç¤Ï \(aqA\(aq ¤Ï -Âçʸ»ú¡¦¾®Ê¸»ú¤Ë´Ø¤ï¤é¤º 10 ¤òɽ¤·¡¢ \(aqB\(aq ¤Ï 11 ¤òɽ¸½¤·, -°Ê²¼Æ±Íͤˡ¢ \(aqZ\(aq ¤Ï 35 ¤òɽ¤¹¡£) +に変換されるが、基数に対して +有効でない数字が現れた時点で変換は終了する。(11進数以上では \(aqA\(aq は +大文字・小文字に関わらず 10 を表し、 \(aqB\(aq は 11 を表現し, +以下同様に、 \(aqZ\(aq は 35 を表す。) .PP -\fIendptr\fP ¤¬¥Ì¥ëÃÍ (NULL) ¤Ç¤Ê¤¤¾ì¹ç¡¢ +\fIendptr\fP がヌル値 (NULL) でない場合、 .BR strtoul () -¤ÏºÇ½é¤ËÉÔÀµ¤Êʸ»ú¤¬¸½¤ì¤¿¥¢¥É¥ì¥¹¤ò -\fI*endptr\fP ¤Ë³ÊǼ¤·¤Æ¤¤¤ë¡£ -ʸ»úÎó¤ËÍ­¸ú¤Ê¿ô»ú¤¬¤Ò¤È¤Ä¤â¤Ê¤±¤ì¤Ð¡¢ +は最初に不正な文字が現れたアドレスを +\fI*endptr\fP に格納している。 +文字列に有効な数字がひとつもなければ、 .BR strtoul () -¤Ï \fInptr\fP -¤Î¸µ¤ÎÃͤò \fI*endptr\fP ¤ËÂåÆþ¤¹¤ë(¤½¤·¤Æ 0 ¤òÊÖ¤¹)¡£ -Æäˡ¢ \fI*nptr\fP ¤¬ \(aq\\0\(aq °Ê³°¤Ç¡¢ÊÖ¤µ¤ì¤¿ \fI**endptr\fP ¤¬ -\(aq\\0\(aq ¤Ê¤é¤Ð¡¢Ê¸»úÎóÁ´ÂΤ¬Í­¸ú¤À¤Ã¤¿¤³¤È¤Ë¤Ê¤ë¡£ +は \fInptr\fP +の元の値を \fI*endptr\fP に代入する(そして 0 を返す)。 +特に、 \fI*nptr\fP が \(aq\\0\(aq 以外で、返された \fI**endptr\fP が +\(aq\\0\(aq ならば、文字列全体が有効だったことになる。 .PP .BR strtoull () -´Ø¿ô¤Ï +関数は .BR strtoul () -´Ø¿ô¤ÈƱÍͤÀ¤¬¡¢ +関数と同様だが、 .I "unsigned long long int" -·¿¤ÎÃͤòÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ +型の値を返す。 +.SH 返り値 .BR strtoul () -´Ø¿ô¤ÏÊÑ´¹·ë²Ì¤òÊÖ¤¹¡£Ê¸»úÎ󤬥ޥ¤¥Ê¥¹Éä¹æ¤«¤é»Ï¤Þ¤Ã¤Æ¤¤¤¿¾ì -¹ç¤Ï¡¢(Éä¹æȿžÁ°¤ÎÃͤ¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Æ¤¤¤Ê¤±¤ì¤Ð) ÊÑ´¹·ë²Ì¤òÉä¹æȿž¤·¤¿ -Ãͤò unsigned ·¿¤ÇÊÖ¤¹¡£ÊÑ´¹¤Ç¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï +関数は変換結果を返す。文字列がマイナス符号から始まっていた場 +合は、(符号反転前の値がオーバーフローしていなければ) 変換結果を符号反転した +値を unsigned 型で返す。変換でオーバーフローが発生した場合は .B ULONG_MAX -¤òÊÖ¤·¡¢ +を返し、 .I errno -¤Ë +に .B ERANGE -¤òÀßÄꤹ¤ë¡£ +を設定する。 .RB ( ULONG_MAX -¤ò +を .B ULLONG_MAX -¤ÈÆɤßÂؤ¨¤ì¤Ð) +と読み替えれば) .BR strtoull () -¤Ï +は .BR strtoul () -¤ÈÁ´¤¯Æ±¤¸¤Ç¤¢¤ë¡£ -.SH ¥¨¥é¡¼ +と全く同じである。 +.SH エラー .TP .B EINVAL -(C99 ¤Ë¤Ï¤Ê¤¤) -Í¿¤¨¤é¤ì¤¿ +(C99 にはない) +与えられた .I base -¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤ÃͤǤ¢¤ë¡£ +がサポートされていない値である。 .TP .B ERANGE -ʸ»úÎ󤬿ôÃͤÎɽ¸½Èϰϳ°¤Ç¤¢¤ë¡£ +文字列が数値の表現範囲外である。 .LP -¼ÂÁõ¤Ë¤è¤Ã¤Æ¤Ï¡¢Á´¤¯ÊÑ´¹¤¬¹Ô¤ï¤ì¤Ê¤«¤Ã¤¿¾ì¹ç(Á´¤¯¿ô»ú¤¬¸½¤ì¤º¡¢ -0 ¤¬ÊÖ¤µ¤ì¤ë)¡¢\fIerrno\fP ¤Ë \fBEINVAL\fP ¤¬¥»¥Ã¥È¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -.SH ½àµò +実装によっては、全く変換が行われなかった場合(全く数字が現れず、 +0 が返される)、\fIerrno\fP に \fBEINVAL\fP がセットされるかもしれない。 +.SH 準拠 .BR strtoul () -¤Ï SVr4, C89, C99 ¤È POSIX-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ +は SVr4, C89, C99 と POSIX-2001 に準拠している。 .BR strtoull () -¤Ï C99 ¤È POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ -.SH Ãí°Õ +は C99 と POSIX.1-2001 に準拠している。 +.SH 注意 .B strtoul () -¤«¤é¤ÏÀ®¸ù¡¢¼ºÇԤɤÁ¤é¤Î¾ì¹ç¤Ç¤â 0 ¤ä +からは成功、失敗どちらの場合でも 0 や .B ULONG_MAX .RB ( strtoull () -¤Ç¤Ï +では .BR ULLONG_MAX ) -¤¬ÊÖ¤ë²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç¡¢ -¥×¥í¥°¥é¥à¤Ï´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë +が返る可能性があるので、 +プログラムは関数を呼び出す前に .I errno -¤ò 0 ¤ËÀßÄꤷ¡¢¸Æ¤Ó½Ð¤·¸å¤Ë +を 0 に設定し、呼び出し後に .I errno -¤¬ 0 °Ê³°¤ÎÃͤ«¤É¤¦¤«¤ò³Îǧ¤·¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤É¤¦¤«¤òȽÃǤ¹¤ë -ɬÍפ¬¤¢¤ë¡£ +が 0 以外の値かどうかを確認しエラーが発生したかどうかを判断する +必要がある。 -"C" °Ê³°¤Î¥í¥±¡¼¥ë¤Î¾ì¹ç¡¢¤½¤Î¾¤Îʸ»úÎó¤â¼õ¤±ÉÕ¤±¤é¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -(Î㤨¤Ð¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î 1000 Ëè¤Î¶èÀÚ¤êʸ»ú¤ËÂбþ¤·¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£) +"C" 以外のロケールの場合、その他の文字列も受け付けられるかもしれない。 +(例えば、現在のロケールの 1000 毎の区切り文字に対応しているかもしれない。) .LP -BSD ¤Ë¤Ï¡¢ +BSD には、 .sp .in +4n .nf @@ -174,22 +174,22 @@ BSD .sp .in -4n .fi -¤È¤¤¤¦´°Á´¤ËƱÍͤÎÄêµÁ¤ò»ý¤Ä´Ø¿ô¤¬¤¢¤ë¡£ -»ÈÍÑÃæ¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î¥ï¡¼¥ÉĹ¼¡Âè¤Ç¤¢¤ë¤¬¡¢¤³¤Î´Ø¿ô¤Ï +という完全に同様の定義を持つ関数がある。 +使用中のアーキテクチャのワード長次第であるが、この関数は .BR strtoull () -¤ä +や .BR stroul () -¤ÈÅù²Á¤Ê¾ì¹ç¤â¤¢¤ê¤¨¤ë¡£ +と等価な場合もありえる。 -Éé¤ÎÃͤâÀµÅö¤ÊÆþÎϤȤߤʤµ¤ì¡¢¥¨¥é¡¼¤â¤Ê¤¯¡¢ -Âбþ¤¹¤ë +負の値も正当な入力とみなされ、エラーもなく、 +対応する .I "unsigned long int" -·¿¤ÎÃͤËÊÑ´¹¤µ¤ì¤ë¡£ -.SH Îã +型の値に変換される。 +.SH 例 .BR strtol (3) -¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÎÎã¤ò»²¾È¡£ -¤³¤Î¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤¿´Ø¿ô¤Î»ÈÍÑÊýË¡¤âƱÍͤǤ¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +のマニュアルページの例を参照。 +このページで説明した関数の使用方法も同様である。 +.SH 関連項目 .BR atof (3), .BR atoi (3), .BR atol (3), diff --git a/release/man3/strverscmp.3 b/release/man3/strverscmp.3 index bf02a055..3f2cb8ce 100644 --- a/release/man3/strverscmp.3 +++ b/release/man3/strverscmp.3 @@ -26,74 +26,74 @@ .\" by Akihiro MOTOKI .\" .TH STRVERSCMP 3 2001-12-19 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -strverscmp \- 2¤Ä¤Î¥Ð¡¼¥¸¥ç¥óʸ»úÎó¤òÈæ³Ó¤¹¤ë -.SH ½ñ¼° +.SH 名前 +strverscmp \- 2つのバージョン文字列を比較する +.SH 書式 .nf -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "int strverscmp(const char *" s1 ", const char *" s2 ); .fi -.SH ÀâÌÀ +.SH 説明 .IR jan1 ", " jan2 ", ..., " jan9 ", " jan10 ", ..." -¤È¤¤¤Ã¤¿Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¾õ¶·¤Ï¤è¤¯¤¢¤ë¤¬¡¢ +といった名前のファイルがある状況はよくあるが、 .BR ls (1) -¤ò¼Â¹Ô¤·¤¿¤È¤­¤Ë +を実行したときに .IR jan1 ", " jan10 ", ..., " jan2 ", ..., " jan9 -¤Î½çÈÖ¤Çɽ¼¨¤µ¤ì¤ë¤Î¤Ë¤Ï°ãÏ´¶¤¬¤¢¤ë¡£ -.\" ¤³¤ì¤Þ¤Ç¤Î²ò·èÊýË¡: "rename jan jan0 jan?" -¤³¤ì¤ò½¤Àµ¤¹¤ë¤¿¤á¤Ë¡¢GNU ¤Ï +の順番で表示されるのには違和感がある。 +.\" これまでの解決方法: "rename jan jan0 jan?" +これを修正するために、GNU は .BR ls (1) -¤Ë +に .I \-v -¥ª¥×¥·¥ç¥ó¤òƳÆþ¤·¤¿¡£ -¤³¤Îµ¡Ç½¤Ï +オプションを導入した。 +この機能は .BR versionsort (3) -¤ò»È¤Ã¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢¤³¤ÎÃæ¤Ç +を使って実装されているが、この中で .BR strverscmp () -¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ +が使用されている。 -¤³¤Î¤è¤¦¤Ë +このように .BR strverscmp () -¤ÎÌòÌܤÏ2¤Ä¤Îʸ»úÎó¤òÈæ³Ó¤·¤Æ¡ÖÀµ¤·¤¤¡×½ç½ø¤òõ¤¹¤³¤È¤Ç¤¢¤ë¡£ -¤³¤ì¤ËÂФ·¤Æ +の役目は2つの文字列を比較して「正しい」順序を探すことである。 +これに対して .BR strcmp (3) -¤Ï¼­½ñ½ç¤ÇÈæ³Ó¤·¤¿·ë²Ì¤òÊÖ¤¹¤À¤±¤Ç¤¢¤ë¡£ -´Ø¿ô +は辞書順で比較した結果を返すだけである。 +関数 .BR strverscmp () -¤Ï¥í¥±¡¼¥ë¤Î¥«¥Æ¥´¥ê¤Ç¤¢¤ë +はロケールのカテゴリである .B LC_COLLATE -¤ò»ÈÍѤ·¤Ê¤¤¡£ -¤³¤Î¤³¤È¤«¤é¡¢¤³¤Î´Ø¿ô¤¬¼ç¤Ë¥¢¥¹¥­¡¼Ê¸»ú¤«¤éÀ®¤ëʸ»úÎó¤ò -ÁÛÄꤷ¤Æ¤¤¤ë¤³¤È¤¬Ê¬¤«¤ë¡£ +を使用しない。 +このことから、この関数が主にアスキー文字から成る文字列を +想定していることが分かる。 -¤³¤Î´Ø¿ô¤ÎÆ°ºî¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ -ξÊý¤Îʸ»úÎó¤¬Åù¤·¤¤¾ì¹ç¡¢0 ¤òÊÖ¤¹¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¤½¤ÎľÁ°¤Þ¤Ç¤ÏξÊý¤Îʸ»úÎó¤¬Åù¤·¤¯¡¢ -¤½¤Îľ¸å¤Î¥Ð¥¤¥È¤Çξ¼Ô¤Ë°ã¤¤¤¬¤¢¤ë¤è¤¦¤Ê¡¢¥Ð¥¤¥È¤Î¶­³¦¤òõ¤¹¡£ -¸«¤Ä¤«¤Ã¤¿¥Ð¥¤¥È¶­³¦¤ò´Þ¤à¿ô»úÎó(¿ô»ú¤À¤±¤Îʸ»úÎó)¤ÎºÇĹ°ìÃ׸¡º÷¤ò¹Ô¤¦¡£ -(¿ô»úÎó¤Ï¶­³¦¤«¤é»Ï¤Þ¤Ã¤Æ¤¤¤Æ¤â¡¢¶­³¦¤Ç½ª¤ï¤Ã¤Æ¤¤¤Æ¤â¤è¤¤)¡£ -2¤Ä¤Îʸ»úÎ󤫤éÆÀ¤é¤ì¤¿¿ô»úÎó¤Î°ìÊý¤Þ¤¿¤ÏξÊý¤¬¶õ¤Ç¤¢¤ì¤Ð¡¢ +この関数の動作は以下の通りである。 +両方の文字列が等しい場合、0 を返す。 +それ以外の場合、その直前までは両方の文字列が等しく、 +その直後のバイトで両者に違いがあるような、バイトの境界を探す。 +見つかったバイト境界を含む数字列(数字だけの文字列)の最長一致検索を行う。 +(数字列は境界から始まっていても、境界で終わっていてもよい)。 +2つの文字列から得られた数字列の一方または両方が空であれば、 .BR strcmp (3) -¤¬ÊÖ¤·¤¿·ë²Ì¤ò´Ø¿ô¤ÎÊÖ¤êÃͤȤ·¤ÆÊÖ¤¹¡£ -¤¹¤Ê¤ï¤Á¡¢¥Ð¥¤¥ÈÃͤòÈæ³Ó¤·¤¿·ë²Ì¤òÊÖ¤¹¡£ -¤½¤ì°Ê³°¤Î(¿ô»úÎó¤¬Î¾Êý¤È¤â¶õ¤Ç¤Ê¤¤)¾ì¹ç¡¢Î¾Êý¤Î¿ô»úÎó¤ò¿ô»ú½ç¤ÇÈæ³Ó¤¹¤ë¡£ -¤³¤Î¤È¤­¡¢1¤Ä°Ê¾å¤Î 0 ¤¬ÀèƬ¤Ë¤¢¤ë¿ô»úÎó¤Ï¡¢Á°¤Ë¾®¿ôÅÀ¤¬¤Ä¤¤¤Æ¤¤¤ë¤â¤Î¤È -²ò¼á¤µ¤ì¤ë¡£(ÀèƬ¤Ë 0 ¤¬Â¿¤¯¤¢¤ë¿ô»úÎó¤Û¤ÉÁ°¤ËÍè¤ë¤³¤È¤Ë¤Ê¤ë) -¤³¤Î·ë²Ì¡¢½ç½ø¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ë: +が返した結果を関数の返り値として返す。 +すなわち、バイト値を比較した結果を返す。 +それ以外の(数字列が両方とも空でない)場合、両方の数字列を数字順で比較する。 +このとき、1つ以上の 0 が先頭にある数字列は、前に小数点がついているものと +解釈される。(先頭に 0 が多くある数字列ほど前に来ることになる) +この結果、順序は次のようになる: .IR 000 ", " 00 ", " 01 ", " 010 ", " 09 ", " 0 ", " 1 ", " 9 ", " 10 -.SH ÊÖ¤êÃÍ -´Ø¿ô +.SH 返り値 +関数 .BR strverscmp () -¤Ï¡¢¥¼¥í¤è¤ê¤â -1)¾®¤µ¤¤¡¢2)Åù¤·¤¤¡¢3)Â礭¤¤¤Î¤¤¤º¤ì¤«¤ÎÀ°¿ô¤òÊÖ¤¹¡£ -¤½¤ì¤¾¤ì¤Ï¡¢\fIs1\fP ¤¬ \fIs2\fP ¤è¤ê¤â¡¢ -1)¾®¤µ¤¤¡¢2)Åù¤·¤¤¡¢3)Â礭¤¤ ¤³¤È¤ò¼¨¤¹¡£ -.SH ½àµò -¤³¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +は、ゼロよりも +1)小さい、2)等しい、3)大きいのいずれかの整数を返す。 +それぞれは、\fIs1\fP が \fIs2\fP よりも、 +1)小さい、2)等しい、3)大きい ことを示す。 +.SH 準拠 +この関数は GNU による拡張である。 +.SH 関連項目 .BR rename (1), .BR strcasecmp (3), .BR strcmp (3), diff --git a/release/man3/strxfrm.3 b/release/man3/strxfrm.3 index 65230705..17575112 100644 --- a/release/man3/strxfrm.3 +++ b/release/man3/strxfrm.3 @@ -31,48 +31,48 @@ .\" Updated & Modefied Sun Mar 7 1999 by Shouichi Saito .\" .TH STRXFRM 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -strxfrm \- ʸ»úÎó¤ÎÊÑ´¹ -.SH ½ñ¼° +.SH 名前 +strxfrm \- 文字列の変換 +.SH 書式 .nf .B #include .sp .BI "size_t strxfrm(char *" dest ", const char *" src ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .BR strxfrm () -´Ø¿ô¤Ïʸ»úÎó \fIsrc\fP ¤ËÂФ·¤Æ¡¢¼¡¤Î¾ò·ï¤òËþ¤¿¤¹¤è¤¦ -¤ÊÊÑ´¹¤ò¤¹¤ë: ¡Ö¤¢¤ëÆó¤Ä¤Îʸ»úÎó¤ËÂФ·¤Æ¡¢¤½¤ì¤¾¤ì¤ò +関数は文字列 \fIsrc\fP に対して、次の条件を満たすよう +な変換をする: 「ある二つの文字列に対して、それぞれを .BR strxfrm () -¤ÇÊÑ´¹¤·¤Æ¤«¤é +で変換してから .BR strcmp (3) -¤·¤¿·ë²Ì¤È¡¢ +した結果と、 .BR strxfrm () -¤Ë¤è¤ëÊÑ´¹ -¤ò¹Ô¤ï¤º¤Ë +による変換 +を行わずに .BR strcoll (3) -¤·¤¿·ë²Ì¤ÈƱ¤¸¡× -ÊÑ´¹¤·¤¿Ê¸»úÎó¤ÎÀèƬ¤«¤é \fIn\fP ʸ»úʬ¤¬ \fIdest\fP ¤ËÂåÆþ¤µ¤ì¤ë¡£ -ÊÑ´¹¤Ï¡¢¥«¥Æ¥´¥ê \fBLC_COLLATE\fP ¤ËÂФ¹¤ë¡¢¥×¥í¥°¥é¥à¤Î¸½ºß¤Î¥í¥±¡¼¥ë -¤Ë´ð¤Å¤¤¤Æ¹Ô¤ï¤ì¤ë +した結果と同じ」 +変換した文字列の先頭から \fIn\fP 文字分が \fIdest\fP に代入される。 +変換は、カテゴリ \fBLC_COLLATE\fP に対する、プログラムの現在のロケール +に基づいて行われる .RB ( setlocale (3) -¤ò»²¾È¤Î¤³¤È)¡£ -.SH ÊÖ¤êÃÍ +を参照のこと)。 +.SH 返り値 .BR strxfrm () -´Ø¿ô¤Ï¡¢ÊÑ´¹¤µ¤ì¤¿Ê¸»úÎó¤ò \fIdest\fP ¤ËÂåÆþ¤¹¤ë¤È¤­¤Ë -ɬÍפʥХ¤¥È¿ô¤«¤é¡¢½ªÃ¼¤Î NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Îʬ¤ò -°ú¤¤¤¿¤â¤Î¤òÊÖ¤¹¡£¤â¤·ÊÖ¤êÃͤ¬ \fIn\fP °Ê¾å¤Î¾ì¹ç¡¢ -\fIdest\fP ¤ÎÆâÍƤÏÉÔÄê¤È¤Ê¤ë¡£ -.SH ½àµò +関数は、変換された文字列を \fIdest\fP に代入するときに +必要なバイト数から、終端の NULL バイト (\(aq\\0\(aq) の分を +引いたものを返す。もし返り値が \fIn\fP 以上の場合、 +\fIdest\fP の内容は不定となる。 +.SH 準拠 SVr4, 4.3BSD, C89, C99. -.SH Ãí°Õ -\fI"POSIX"\fP ¤Þ¤¿¤Ï \fI"C"\fP ¥í¥±¡¼¥ë¤Ç¤Ï¡¢´Ø¿ô +.SH 注意 +\fI"POSIX"\fP または \fI"C"\fP ロケールでは、関数 .BR strxfrm () -¤Ï¡¢ -´Ø¿ô +は、 +関数 .BR strncpy (3) -¤ò»È¤Ã¤Æʸ»úÎó¤ò¥³¥Ô¡¼¤¹¤ë¤Î¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を使って文字列をコピーするのと同じである。 +.SH 関連項目 .BR bcmp (3), .BR memcmp (3), .BR setlocale (3), diff --git a/release/man3/swab.3 b/release/man3/swab.3 index 512c873d..b9b5c49e 100644 --- a/release/man3/swab.3 +++ b/release/man3/swab.3 @@ -34,30 +34,30 @@ .\" Updated Fri Dec 21 JST 2001 by Kentaro Shirakata .\" .TH SWAB 3 2001-12-15 "" "Linux Programmer's Manual" -.SH ̾Á° -swab \- ÎÙÀܤ¹¤ë¥Ð¥¤¥È¤ò¸ò´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +swab \- 隣接するバイトを交換する +.SH 書式 .nf -.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "void swab(const void *" from ", void *" to ", ssize_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .BR swab () -´Ø¿ô¤Ï¡¢\fIfrom\fP ¤Ç»Ø¤µ¤ì¤¿ÇÛÎ󤫤é \fIn\fP ¥Ð¥¤¥È¤ò -\fIto\fP ¤Ç»Ø¤µ¤ì¤¿ÇÛÎó¤Ë¡¢ÎÙÀܤ·¤¿¶ö¿ô/´ñ¿ô¥Ð¥¤¥È¤ò¸ò´¹¤·¤Ê¤¬¤é¥³¥Ô¡¼¤¹¤ë¡£ -¤³¤Î´Ø¿ô¤Ï°Û¤Ê¤ë¥Ð¥¤¥È¥ª¡¼¥À¡¼¤ò»ý¤Ä¥Þ¥·¥ó´Ö¤Ç¤Î¥Ç¡¼¥¿¸ò´¹¤Ë -»ÈÍѤµ¤ì¤ë¡£ +関数は、\fIfrom\fP で指された配列から \fIn\fP バイトを +\fIto\fP で指された配列に、隣接した偶数/奇数バイトを交換しながらコピーする。 +この関数は異なるバイトオーダーを持つマシン間でのデータ交換に +使用される。 .LP -\fIn\fP ¤¬Éé¤Î¿ô¤Î¾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï²¿¤â¤·¤Ê¤¤¡£ -\fIn\fP ¤¬Àµ¤Ç¤«¤Ä´ñ¿ô¤Î¾ì¹ç¡¢\fIn\-1\fP ¥Ð¥¤¥È¤Ï¾åµ­¤ÎÄ̤갷¤¤¡¢ -ºÇ¸å¤Î¥Ð¥¤¥È¤Ë¤Ä¤¤¤Æ¤Ï̤µ¬Äê¤ÎÆ°ºî¤ò¤¹¤ë -(¸À¤¤´¹¤¨¤ì¤Ð¡¢\fIn\fP ¤Ï¶ö¿ô¤Ë¤¹¤ë¤Ù¤­¤Ç¤¢¤ë)¡£ -.SH ÊÖ¤êÃÍ +\fIn\fP が負の数の場合、この関数は何もしない。 +\fIn\fP が正でかつ奇数の場合、\fIn\-1\fP バイトは上記の通り扱い、 +最後のバイトについては未規定の動作をする +(言い換えれば、\fIn\fP は偶数にするべきである)。 +.SH 返り値 .BR swab () -´Ø¿ô¤Ï¡¢ÃͤòÊÖ¤µ¤Ê¤¤¡£ -.SH ½àµò +関数は、値を返さない。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bstring (3) diff --git a/release/man3/sysconf.3 b/release/man3/sysconf.3 index 1eebaa29..d13ebd8f 100644 --- a/release/man3/sysconf.3 +++ b/release/man3/sysconf.3 @@ -30,277 +30,277 @@ .\" Updated 2005-03-15, Akihiro MOTOKI .\" .TH SYSCONF 3 2007-12-12 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -sysconf \- Æ°ºîÃæ¤ËÀßÄê¾ðÊó¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +sysconf \- 動作中に設定情報を取得する +.SH 書式 .nf .B #include .sp .BI "long sysconf(int " "name" ); .fi -.SH ÀâÌÀ -POSIX ¤Ç¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¥³¥ó¥Ñ¥¤¥ë»þ¤ä¼Â¹Ô»þ¤Ë¡¢ -ÆÃÄê¤Î¥ª¥×¥·¥ç¥ó¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤«¤ä¡¢ -ÀßÄê²Äǽ¤ÊÆÃÄê¤ÎÄê¿ô¤äÀ©¸Â¤¬¤É¤ó¤ÊÃͤ«¤ò¥Æ¥¹¥È¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +.SH 説明 +POSIX では、アプリケーションがコンパイル時や実行時に、 +特定のオプションがサポートされているかや、 +設定可能な特定の定数や制限がどんな値かをテストすることができる。 .LP -¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¹Ô¤¦¤Ë¤Ï¡¢ +コンパイル時に行うには、 .I -¤È +と .I -¤ÎξÊý¤â¤·¤¯¤Ï°ìÊý¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¡¢ -ÆÃÄê¤Î¥Þ¥¯¥í¤ÎÃͤò³Îǧ¤¹¤ë¡£ +の両方もしくは一方をインクルードし、 +特定のマクロの値を確認する。 .LP -¼Â¹Ô»þ¤Ë¤Ï¡¢¤³¤³¤ÇÀâÌÀ¤¹¤ë´Ø¿ô +実行時には、ここで説明する関数 .BR sysconf () -¤ò»È¤Ã¤Æ¿ôÃͤòÌ䤤¹ç¤ï¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë´Ø¤¹¤ë¿ôÃͤϡ¢ +を使って数値を問い合わせることができる。 +ファイルが存在するファイルシステムに関する数値は、 .BR fpathconf (3) -¤È +と .BR pathconf (3) -¤ò»È¤Ã¤Æ³Îǧ¤Ç¤­¤ë¡£ -ʸ»úÎó¤ÎÃÍ¤Ï +を使って確認できる。 +文字列の値は .BR confstr (3) -¤ò»È¤Ã¤Æ³Îǧ¤Ç¤­¤ë¡£ +を使って確認できる。 .LP -¤³¤ì¤é¤Î´Ø¿ô¤Ç¼èÆÀ¤µ¤ì¤ëÃͤÏÀßÄê²Äǽ¤Ê¥·¥¹¥Æ¥àÄê¿ô¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Ï¥×¥í¥»¥¹¤ÎÀ¸Â¸´ü´Ö¤Î´Ö¤ÏÊѲ½¤·¤Ê¤¤¡£ -.\" ⤷ RLIMIT_NOFILE ¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤òÊѹ¹¤¹¤ë setrlimit() ¤¬¸Æ¤Ó½Ð¤·¤¿ -.\" ¸å¤Ç¤Ï¡¢ sysconf(_SC_OPEN_MAX) ¤¬ÊÖ¤¹ÃͤÏÊѲ½¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +これらの関数で取得される値は設定可能なシステム定数である。 +これらはプロセスの生存期間の間は変化しない。 +.\" 但し RLIMIT_NOFILE ソフト・リミットを変更する setrlimit() が呼び出した +.\" 後では、 sysconf(_SC_OPEN_MAX) が返す値は変化するかもしれない。 .LP -¥ª¥×¥·¥ç¥ó¤ò³Îǧ¤Ç¤­¤ë¤è¤¦¤Ë¡¢¤¿¤¤¤Æ¤¤¤Ï +オプションを確認できるように、たいていは .I -¤ÇÄê¿ô +で定数 .B _POSIX_FOO -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¤­¤Ï¡¢¼Â¹Ô»þ¤ËÌ䤤¹ç¤ï¤»¤ò¹Ô¤¦É¬Íפ¬¤¢¤ë¡£ -¤½¤ÎÃͤ¬ \-1 ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ï¡¢¤½¤Î¥ª¥×¥·¥ç¥ó¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -0 ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ï¡¢´ØÏ¢¤¹¤ë´Ø¿ô¤ä¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¤¬¡¢ -¤É¤ÎÄøÅÙ¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤«¤Ï¼Â¹Ô»þ¤Ë³Îǧ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -\-1 ¤Ç¤â 0 ¤Ç¤â¤Ê¤¤ÃͤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ï¡¢¤½¤Î¥ª¥×¥·¥ç¥ó¤¬¥µ¥Ý¡¼¥È -¤µ¤ì¤Æ¤¤¤ë¡£Ä̾ï¤Ï¡¢¤½¤Î¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æµ­ºÜ¤·¤¿ POSIX ¤Î²þÄûǯ·î -¤ò¼¨¤¹ÃͤˤʤäƤ¤¤ë (Î㤨¤Ð 200112L)¡£ -glibc ¤Ç¤Ï 1 ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢¤½¤Î¥ª¥×¥·¥ç¥ó¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -POSIX ¤Î²þÄûÈǤ¬¤Þ¤Àȯ¹Ô¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò¼¨¤¹¡£ -.\" 999 ¤Ï¡¢¤½¤Î¥ª¥×¥·¥ç¥ó¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -.\" ºÇ¿·¤Îɸ½à¤Ë¤Ï¤â¤Ï¤ä¸ºß¤·¤Ê¤¤¤³¤È¤ò¼¨¤¹¡£(?) +が定義されている。 +定義されていないときは、実行時に問い合わせを行う必要がある。 +その値が \-1 に定義されているときは、そのオプションはサポートされていない。 +0 に定義されているときは、関連する関数やヘッダファイルが存在するが、 +どの程度サポートされているかは実行時に確認しなければならない。 +\-1 でも 0 でもない値に定義されているときは、そのオプションがサポート +されている。通常は、そのオプションについて記載した POSIX の改訂年月 +を示す値になっている (例えば 200112L)。 +glibc では 1 が設定されていると、そのオプションはサポートされているが、 +POSIX の改訂版がまだ発行されていないことを示す。 +.\" 999 は、そのオプションはサポートされているが、 +.\" 最新の標準にはもはや存在しないことを示す。(?) .BR sysconf () -¤Î°ú¤­¿ô¤Ë¤Ï +の引き数には .B _SC_FOO -¤ò»ØÄꤹ¤ë¡£ -¥ª¥×¥·¥ç¥ó¤Î¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¤Ï +を指定する。 +オプションのリストについては .BR posixoptions (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .LP -ÊÑ¿ô¤äÀ©¸Â¤ò³Îǧ¤Ç¤­¤ë¤è¤¦¤Ë¡¢¤¿¤¤¤Æ¤¤¤Ï¡¢ +変数や制限を確認できるように、たいていは、 .I -¤ÇÄê¿ô +で定数 .B _FOO -¤¬¡¢ +が、 .I -¤Ç +で .B _POSIX_FOO -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -À©¸Â¤¬µ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤ÏÄê¿ô¤ÏÄêµÁ¤µ¤ì¤Ê¤¤¡£ -Äê¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ë¤Ï¡¢¤½¤ÎÄê¿ô¤ÏÊݾڤǤ­¤ëÃͤǤ¢¤ê¡¢ -¼ÂºÝ¤Ë¤Ï¤â¤Ã¤ÈÂ礭¤ÊÃͤ¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤³¤È¤â¤¢¤ë¡£ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¥·¥¹¥Æ¥àËè¤ËÊѲ½¤¹¤ëÃͤòÍøÍѤ·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ +が定義されている。 +制限が規定されていない場合は定数は定義されない。 +定数が定義されているときには、その定数は保証できる値であり、 +実際にはもっと大きな値がサポートされていることもある。 +アプリケーションがシステム毎に変化する値を利用したい場合には、 .BR sysconf () -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¼Â¸½¤Ç¤­¤ë¡£ +を呼び出すことで実現できる。 .BR sysconf () -¤Î°ú¤­¿ô¤Ë¤Ï +の引き数には .B _SC_FOO -¤ò»ØÄꤹ¤ë¡£ -.SS "POSIX.1 ÊÑ¿ô" -ÊÑ¿ô̾¡¢¤½¤ÎÃͤò¼èÆÀ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë +を指定する。 +.SS "POSIX.1 変数" +変数名、その値を取得するのに使われる .BR sysconf () -¤Î¥Ñ¥é¥á¡¼¥¿Ì¾¡¢´Êñ¤ÊÀâÌÀ¤ò°Ê²¼¤Ë¼¨¤¹¡£ +のパラメータ名、簡単な説明を以下に示す。 .LP -¤Þ¤º POSIX.1 ¸ß´¹¤ÎÊÑ¿ô¤ò¼¨¤¹¡£ +まず POSIX.1 互換の変数を示す。 .TP .BR ARG_MAX " - " _SC_ARG_MAX .BR exec (3) -´Ø¿ô·²¤Î°ú¤­¿ô¤ÎºÇÂçĹ¡£ +関数群の引き数の最大長。 .B _POSIX_ARG_MAX -(4096) ̤Ëþ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +(4096) 未満であってはならない。 .TP .BR CHILD_MAX " - " _SC_CHILD_MAX -¥æ¡¼¥¶ID ¤¢¤¿¤ê¤ÎƱ»þ¤Ë¸ºß¤Ç¤­¤ë¥×¥í¥»¥¹¤ÎºÇÂç¿ô¡£ +ユーザID あたりの同時に存在できるプロセスの最大数。 .B _POSIX_CHILD_MAX -(25) ̤Ëþ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +(25) 未満であってはならない。 .TP .BR HOST_NAME_MAX " - " _SC_HOST_NAME_MAX .BR gethostname (2) -¤ÇÊÖ¤µ¤ì¤ë¥Û¥¹¥È̾¤ÎºÇÂçĹ¡£ËöÈø¤Î NULL ¥Ð¥¤¥È¤ÏŤµ¤Ë´Þ¤Þ¤ì¤Ê¤¤¡£ +で返されるホスト名の最大長。末尾の NULL バイトは長さに含まれない。 .B _POSIX_HOST_NAME_MAX -(255) ̤Ëþ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +(255) 未満であってはならない。 .TP .BR LOGIN_NAME_MAX " - " _SC_LOGIN_NAME_MAX -¥í¥°¥¤¥ó̾¤ÎŤµ¤ÎºÇÂçÃÍ¡£ËöÈø¤Î NULL ¥Ð¥¤¥È¤âŤµ¤Ë´Þ¤Þ¤ì¤ë¡£ +ログイン名の長さの最大値。末尾の NULL バイトも長さに含まれる。 .B _POSIX_LOGIN_NAME_MAX -(9) ̤Ëþ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +(9) 未満であってはならない。 .TP .BR "" "clock ticks - " _SC_CLK_TCK -1É䢤¿¤ê¤Î¥¯¥í¥Ã¥¯¡¦¥Æ¥£¥Ã¥¯¿ô¡£ -Âбþ¤¹¤ëÊÑ¿ô¤ÏÇѻߤµ¤ì¤¿¡£¤³¤ÎÊÑ¿ô¤ÏÅöÁ³¤Ê¤¬¤é +1秒あたりのクロック・ティック数。 +対応する変数は廃止された。この変数は当然ながら .B CLK_TCK -¤È¸Æ¤Ð¤ì¤Æ¤¤¤¿¡£ -(Ãí°Õ: ¥Þ¥¯¥í +と呼ばれていた。 +(注意: マクロ .B CLOCKS_PER_SEC -¤«¤é¤Ï¾ðÊó¤ÏÆÀ¤é¤ì¤Ê¤¤: ¤³¤ÎÃÍ¤Ï 1000000 ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤) +からは情報は得られない: この値は 1000000 でなければならない) .TP .BR OPEN_MAX " - " _SC_OPEN_MAX -°ì¤Ä¤Î¥×¥í¥»¥¹¤¬Æ±»þ¤Ë¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¿ô¤Î¾å¸Â¡£ +一つのプロセスが同時にオープンできるファイル数の上限。 .B _POSIX_OPEN_MAX -(20) ̤Ëþ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +(20) 未満であってはならない。 .TP .BR PAGESIZE " - " _SC_PAGESIZE -¥Ð¥¤¥Èñ°Ì¤Ç¤Î¥Ú¡¼¥¸¥µ¥¤¥º¡£ -1 ¤è¤ê¾®¤µ¤¯¤Ê¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -(¤³¤ÎÂå¤ï¤ê¤Ë PAGE_SIZE ¤ò»È¤¦¥·¥¹¥Æ¥à¤â¤¢¤ë) +バイト単位でのページサイズ。 +1 より小さくなってはならない。 +(この代わりに PAGE_SIZE を使うシステムもある) .TP .BR RE_DUP_MAX " - " _SC_RE_DUP_MAX .BR regexec (3) -¤È +と .BR regcomp (3) -¤ÇµöÍƤµ¤ì¤Æ¤¤¤ë BRE (Basic Regular Expression; ´ðËÜÀµµ¬É½¸½) -¤Î·«¤êÊÖ¤·½Ð¸½²ó¿ô¤ÎºÇÂçÃÍ¡£ +で許容されている BRE (Basic Regular Expression; 基本正規表現) +の繰り返し出現回数の最大値。 .B _POSIX2_RE_DUP_MAX -(255) ̤Ëþ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +(255) 未満であってはならない。 .TP .BR STREAM_MAX " - " _SC_STREAM_MAX -°ì¤Ä¤Î¥×¥í¥»¥¹¤¬Æ±»þ¤Ë¥ª¡¼¥×¥ó¤Ç¤­¤ë¥¹¥È¥ê¡¼¥à¿ô¤Î¾å¸Â¡£ -ÄêµÁ¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ë¤Ï¡¢¤³¤ÎÃͤÏɸ½à C ¥Þ¥¯¥í¤Î +一つのプロセスが同時にオープンできるストリーム数の上限。 +定義されていた場合には、この値は標準 C マクロの .B FOPEN_MAX -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .B _POSIX_STREAM_MAX -(8) ̤Ëþ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +(8) 未満であってはならない。 .TP .B SYMLOOP_MAX -¥Ñ¥¹Ì¾¤Î²ò·è»þ¤Ë¸½¤ì¤Æ¤â¤è¤¤¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤ÎºÇÂç¿ô¡£ -¤³¤Î¿ô¤òĶ¤¨¤ë¤È¡¢¥Ñ¥¹Ì¾²ò·è»þ¤Ë +パス名の解決時に現れてもよいシンボリック・リンクの最大数。 +この数を超えると、パス名解決時に .B ELOOP -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .B _POSIX_SYMLOOP_MAX -(8) ̤Ëþ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +(8) 未満であってはならない。 .TP .BR TTY_NAME_MAX " - " _SC_TTY_NAME_MAX -üËö¥Ç¥Ð¥¤¥¹Ì¾¤ÎºÇÂçĹ¡£Ä¹¤µ¤Ë¤ÏËöÈø¤Î NULL ¥Ð¥¤¥È¤â´Þ¤Þ¤ì¤ë¡£ +端末デバイス名の最大長。長さには末尾の NULL バイトも含まれる。 .B _POSIX_TTY_NAME_MAX -(9) ̤Ëþ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +(9) 未満であってはならない。 .TP .BR TZNAME_MAX " - " _SC_TZNAME_MAX -¥¿¥¤¥à¥¾¡¼¥ó̾¤È¤·¤Æ»È¤¨¤ë¥Ð¥¤¥È¿ô¤ÎºÇÂçÃÍ¡£ +タイムゾーン名として使えるバイト数の最大値。 .B _POSIX_TZNAME_MAX -(6) ̤Ëþ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +(6) 未満であってはならない。 .TP .BR _POSIX_VERSION " - " _SC_VERSION -POSIX.1 ɸ½à¤¬¾µÇ§¤µ¤ì¤¿Ç¯·î¡£ +POSIX.1 標準が承認された年月。 .B YYYYMML -¤È¤¤¤¦½ñ¼°¤Ç¤¢¤ë¡£ +という書式である。 .B 199009L -¤È¤¤¤¦Ãͤϡ¢1990ǯ 9·î ²þÄû¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ -.SS "POSIX.2 ÊÑ¿ô" -¼¡¤Ë¡¢POSIX.2 ¤ÎÃͤò¼¨¤¹¡£ -¤³¤ì¤é¤Ï³Æ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ËÂФ¹¤ëÀ©¸Â¤ò»ØÄꤹ¤ë¡£ +という値は、1990å¹´ 9月 改訂であることを示す。 +.SS "POSIX.2 変数" +次に、POSIX.2 の値を示す。 +これらは各ユーティリティに対する制限を指定する。 .TP .BR BC_BASE_MAX " - " _SC_BC_BASE_MAX .BR bc (1) -¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ÇµöÍƤµ¤ì¤ë +ユーティリティで許容される .I obase -¤ÎºÇÂçÃÍ¡£ +の最大値。 .TP .BR BC_DIM_MAX " - " _SC_BC_DIM_MAX .BR bc (1) -¤ÇµöÍƤµ¤ì¤ë°ì¤Ä¤ÎÇÛÎóÃæ¤ÎÍ×ÁÇ¿ô¤ÎºÇÂçÃÍ¡£ +で許容される一つの配列中の要素数の最大値。 .TP .BR BC_SCALE_MAX " - " _SC_BC_SCALE_MAX .BR bc (1) -¤Çµö¤µ¤ì¤ë +で許される .I scale -¤ÎºÇÂçÃÍ¡£ +の最大値。 .TP .BR BC_STRING_MAX " - " _SC_BC_STRING_MAX .BR bc (1) -¤ÇµöÍƤµ¤ì¤ëʸ»úÎó¤ÎºÇÂçĹ¡£ +で許容される文字列の最大長。 .TP .BR COLL_WEIGHTS_MAX " - " _SC_COLL_WEIGHTS_MAX -¥í¥±¡¼¥ëÄêµÁ¥Õ¥¡¥¤¥ëÃæ¤Î +ロケール定義ファイル中の .B LC_COLLATE order -¥­¡¼¥ï¡¼¥É¤Î¥¨¥ó¥È¥ê¤Ë³ä¤êÅö¤Æ²Äǽ¤Ê½Å¤ß¤ÎºÇÂçÃÍ¡£ +キーワードのエントリに割り当て可能な重みの最大値。 .TP .BR EXPR_NEST_MAX " - " _SC_EXPR_NEST_MAX .BR expr (1) -¤Ë¤ª¤¤¤Æ¡¢³ç¸Ì¤ÇÆþ¤ì»Ò¤Ë¤Ç¤­¤ë¼°¤ÎºÇÂç¿ô¡£ +において、括弧で入れ子にできる式の最大数。 .TP .BR LINE_MAX " - " _SC_LINE_MAX -¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ÎÆþÎϹԤκÇÂçĹ¡£É¸½àÆþÎϤÀ¤±¤Ç¤Ê¤¯¡¢¥Õ¥¡¥¤¥ë¤«¤é¤ÎÆþÎϤˤâ -ŬÍѤµ¤ì¤ë¡£Ä¹¤µ¤Ë¤Ï¹Ô¤ÎËöÈø¤Î²þ¹Ôʸ»ú¤â´Þ¤Þ¤ì¤ë¡£ +ユーティリティの入力行の最大長。標準入力だけでなく、ファイルからの入力にも +適用される。長さには行の末尾の改行文字も含まれる。 .TP .BR RE_DUP_MAX " - " _SC_RE_DUP_MAX -Àµµ¬É½¸½¤Ç¶è´Öɽµ­ (interval notation) +正規表現で区間表記 (interval notation) .B \e{m,n\e} -¤¬»ÈÍѤµ¤ì¤¿¤È¤­¤ËµöÍƤµ¤ì¤ë·«¤êÊÖ¤·½Ð¸½²ó¿ô¤ÎºÇÂçÃÍ¡£ +が使用されたときに許容される繰り返し出現回数の最大値。 .TP .BR POSIX2_VERSION " - " _SC_2_VERSION -POSIX.2 ɸ½à¤Î¥Ð¡¼¥¸¥ç¥ó¡£YYYYMML ¤È¤¤¤¦½ñ¼°¤Çɽµ­¤µ¤ì¤ë¡£ +POSIX.2 標準のバージョン。YYYYMML という書式で表記される。 .TP .BR POSIX2_C_DEV " - " _SC_2_C_DEV -POSIX.2 ¤Î C ¸À¸ì³«È¯µ¡Ç½¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤¹¡£ +POSIX.2 の C 言語開発機能がサポートされているかを示す。 .TP .BR POSIX2_FORT_DEV " - " _SC_2_FORT_DEV -POSIX.2 ¤Î FORTRAN ³«È¯¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤¹¡£ +POSIX.2 の FORTRAN 開発ユーティリティがサポートされているかを示す。 .TP .BR POSIX2_FORT_RUN " - " _SC_2_FORT_RUN -POSIX.2 ¤Î FORTRAN ¥é¥ó¥¿¥¤¥à¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤¹¡£ +POSIX.2 の FORTRAN ランタイムユーティリティがサポートされているかを示す。 .TP .BR _POSIX2_LOCALEDEF " - " _SC_2_LOCALEDEF .BR localedef (1) -¤ò»È¤Ã¤¿¡¢POSIX.2 ¤Î¥í¥±¡¼¥ë¤ÎºîÀ®¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤«¤ò¼¨¤¹¡£ +を使った、POSIX.2 のロケールの作成をサポートしているかを示す。 .TP .BR POSIX2_SW_DEV " - " _SC_2_SW_DEV -POSIX.2 ¥½¥Õ¥È¥¦¥§¥¢³«È¯¥æ¡¼¥Æ¥£¥ê¥Æ¥£¥ª¥×¥·¥ç¥ó¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤¹¡£ +POSIX.2 ソフトウェア開発ユーティリティオプションがサポートされているかを示す。 .PP -°Ê²¼¤ÎÃͤ⸺ߤ¹¤ë¤¬¡¢É¸½à¤Ë¤Ï´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¡£ +以下の値も存在するが、標準には含まれていない。 .TP .BR "" " - " _SC_PHYS_PAGES -ʪÍý¥á¥â¥ê¤Î¥Ú¡¼¥¸¿ô¡£ -¤³¤ÎÃÍ¤È +物理メモリのページ数。 +この値と .B _SC_PAGE_SIZE -ÃͤÎÀѤϷå°î¤ì¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¤Î¤ÇÃí°Õ¤¹¤ë¤³¤È¡£ +値の積は桁溢れする可能性があるので注意すること。 .TP .BR "" " - " _SC_AVPHYS_PAGES -¸½ºßÍøÍѲÄǽ¤ÊʪÍý¥á¥â¥ê¤Î¥Ú¡¼¥¸¿ô¡£ +現在利用可能な物理メモリのページ数。 .TP .BR "" " - " _SC_NPROCESSORS_CONF -ÀßÄꤵ¤ì¤¿¥×¥í¥»¥Ã¥µ¿ô¡£ +設定されたプロセッサ数。 .TP .BR "" " - " _SC_NPROCESSORS_ONLN -¸½ºß¥ª¥ó¥é¥¤¥ó¤Î (ÍøÍѲÄǽ¤Ê) ¥×¥í¥»¥Ã¥µ¿ô¡£ -.SH ÊÖ¤êÃÍ +現在オンラインの (利用可能な) プロセッサ数。 +.SH 返り値 .I name -¤¬ÉÔÀµ¤Ê¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¡¢ +が不正な場合、\-1 が返され、 .I errno -¤Ë +に .B EINVAL -¤¬ÀßÄꤵ¤ì¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¥·¥¹¥Æ¥à¥ê¥½¡¼¥¹¤ÎÃͤ¬ÊÖ¤êÃͤȤ·¤ÆÊÖ¤µ¤ì¡¢ +が設定される。 +それ以外の場合、システムリソースの値が返り値として返され、 .I errno -¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£Ì䤤¹ç¤ï¤»¤¬¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Ç¤¢¤ì¤Ð¡¢ -¤½¤Î¥ª¥×¥·¥ç¥ó¤¬ÍøÍѤǤ­¤ë¤È¤­¤ÏÀµ¤ÎÃͤ¬ÊÖ¤µ¤ì¡¢ -ÍøÍѤǤ­¤Ê¤¤¤È¤­¤Ï \-1 ¤¬ÊÖ¤µ¤ì¤ë¡£Ì䤤¹ç¤ï¤»¤¬ -À©¸Â¤Ë¤Ä¤¤¤Æ¾ì¹ç¤Ï¡¢À©¸Â¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¤­¤Ë \-1 ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ½àµò +は変更されない。問い合わせがオプションについてであれば、 +そのオプションが利用できるときは正の値が返され、 +利用できないときは \-1 が返される。問い合わせが +制限について場合は、制限が設定されていないときに \-1 が返される。 +.SH 準拠 POSIX.1-2001. -.SH ¥Ð¥° +.SH バグ .B ARG_MAX -¤ò»È¤¦¤Î¤ÏÆñ¤·¤¤¡¢¤Ê¤¼¤Ê¤é¡¢ +を使うのは難しい、なぜなら、 .BR exec (3) -¤Î°ú¤­¿ôÎΰè (argument space) ¤Î¤¦¤Á¤É¤ì¤¯¤é¤¤¤¬ -¥æ¡¼¥¶¤Î´Ä¶­ÊÑ¿ô¤Ë¤è¤Ã¤Æ»È¤ï¤ì¤ë¤«¤Ïʬ¤«¤é¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +の引き数領域 (argument space) のうちどれくらいが +ユーザの環境変数によって使われるかは分からないからである。 .PP -¤¤¤¯¤Ä¤«¤ÎÊÖ¤êÃͤϤȤƤâÂ礭¤¯¤Ê¤ë¤À¤í¤¦¡£¤³¤ì¤é¤ò»È¤Ã¤Æ -¥á¥â¥ê¤Î³ä¤êÅö¤Æ¤ò¹Ô¤¦¤Î¤ÏŬÅö¤Ç¤Ï¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +いくつかの返り値はとても大きくなるだろう。これらを使って +メモリの割り当てを行うのは適当ではない。 +.SH 関連項目 .BR bc (1), .BR expr (1), .BR getconf (1), diff --git a/release/man3/syslog.3 b/release/man3/syslog.3 index bc04fd04..9501da41 100644 --- a/release/man3/syslog.3 +++ b/release/man3/syslog.3 @@ -43,9 +43,9 @@ .\" Updated 2007-01-01 by Kentaro Shirakata .\" .TH SYSLOG 3 2008-11-12 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -closelog, openlog, syslog, vsyslog \- ¥·¥¹¥Æ¥à¥í¥¬¡¼¤Ë¥á¥Ã¥»¡¼¥¸¤òÁ÷¤ë -.SH ½ñ¼° +.SH 名前 +closelog, openlog, syslog, vsyslog \- システムロガーにメッセージを送る +.SH 書式 .B #include .sp .BI "void openlog(const char *" ident ", int " option ", int " facility ); @@ -59,279 +59,279 @@ closelog, openlog, syslog, vsyslog \- .BI "void vsyslog(int " priority ", const char *" format ", va_list " ap ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR vsyslog (): _BSD_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR closelog () -¤Ï¥·¥¹¥Æ¥à¤Î¥í¥°µ­Ï¿ÍÑ¥×¥í¥°¥é¥à(¥·¥¹¥Æ¥à¥í¥¬¡¼ +はシステムのログ記録用プログラム(システムロガー .BR syslogd (8)) -¥Ø¤ÎÀܳ¤ò½ªÎ»¤¹¤ë¡£ +ヘの接続を終了する。 .BR closelog () -¤Ïɬ¿Ü¤Ç¤Ï¤Ê¤¤¡£ +は必須ではない。 .sp .BR openlog () -¤Ï¥í¥°¤ò½ÐÎϤ·¤è¤¦¤È¤·¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤«¤é¥í¥°µ­Ï¿ÍÑ¥×¥í¥°¥é¥à¤Ø¤Î -Àܳ¤ò³«»Ï¤¹¤ë¡£ +はログを出力しようとしているプログラムからログ記録用プログラムへの +接続を開始する。 .I ident -¤Ç»ØÄꤷ¤¿Ê¸»úÎó(Ä̾ï¤Ï +で指定した文字列(通常は .BR openlog () -¤·¤¿¥×¥í¥°¥é¥à¤Î̾Á°)¤Ï¥í¥°½ÐÎϤΰìʸ°ìʸ¤ËÄɲ䵤졢¤É¤Î¥×¥í¥°¥é¥à -¤¬½ÐÎϤ·¤¿¥í¥°¤«¤ò¼±Ê̤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ +したプログラムの名前)はログ出力の一文一文に追加され、どのプログラム +が出力したログかを識別するために使われる。 .I option -°ú¤­¿ô¤Ï¡¢ +引き数は、 .BR openlog () -¤ÎÆ°ºî¤È¤½¤Î¸å¤Î +の動作とその後の .BR syslog () -¤Î¸Æ¤Ó½Ð¤·¤òÀ©¸æ¤¹¤ë¥Õ¥é¥°¤ò»ØÄꤹ¤ë¡£ +の呼び出しを制御するフラグを指定する。 .I facility -°ú¤­¿ô¤Ï¡¢¸å¤Ç +引き数は、後で .BR syslog () -¤ò¸Æ¤Ó½Ð¤¹ºÝ¤Ë facility ¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë»ÈÍѤµ¤ì¤ë -¥Ç¥Õ¥©¥ë¥ÈÃͤò·èÄꤹ¤ë¡£ +を呼び出す際に facility が指定されなかった場合に使用される +デフォルト値を決定する。 .I option -¤È +と .I facility -¤Ë¤Ä¤¤¤Æ¤Ï¸å½Ò¤¹¤ë¡£ +については後述する。 .BR openlog () -¤Ïɬ¿Ü¤Ç¤Ï¤Ê¤¯¡¢É¬Íפ˱þ¤¸¤Æ +は必須ではなく、必要に応じて .BR syslog () -¤«¤é¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ +から呼び出される。 .BR syslog () -¤¬¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¡¢ +が呼び出した場合、 .I ident -¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï NULL ¤Ë¤Ê¤ë¡£ +のデフォルト値は NULL になる。 .sp .BR syslog () -¤Ï¥í¥°¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¡¢ +はログメッセージを出力し、 .BR syslogd (8) -¤¬¤½¤Î¥á¥Ã¥»¡¼¥¸¤òµ­Ï¿¤¹¤ë¡£ +がそのメッセージを記録する。 .I priority -°ú¤­¿ô¤Ï +引き数は .I facility -¤È +と .I level -¤È¤ÎÁȹ礻¤Ç»ØÄꤹ¤ë¡£ +との組合せで指定する。 .I facility -¤È +と .I level -¤Î¼è¤ê¤¦¤ëÃͤϸå½Ò¤¹¤ë¡£ -»Ä¤ê¤Î +の取りうる値は後述する。 +残りの .I format -°ú¤­¿ô¤Ï +引き数は .BR printf (3) -¤È»÷¤¿¥¹¥¿¥¤¥ë¤Î½ñ¼°¤È¤½¤Î½ñ¼°¤ËÍ¿¤¨¤ëÃͤǤ¢¤ë¡£ +と似たスタイルの書式とその書式に与える値である。 .I format -Ãæ¤Î2ʸ»ú +中の2文字 .B %m -¤Ï¤½¤Î»þÅÀ¤Ç¤Î +はその時点での .I errno -¤Ë´ØÏ¢¤¹¤ë¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸Ê¸»úÎó +に関連するエラーメッセージ文字列 .RI ( strerror ) -¤Ë¤è¤Ã¤ÆÃÖ¤­´¹¤¨¤é¤ì¤ë¡£ -ɬÍפʾì¹ç¤ÏËöÈø¤Ë²þ¹Ô¤¬²Ã¤¨¤é¤ì¤ë¡£ +によって置き換えられる。 +必要な場合は末尾に改行が加えられる。 .BR vsyslog () -´Ø¿ô¤Ï +関数は .BR syslog () -¤ÈƱ¤¸µ¡Ç½¤ò»ý¤Ä¤¬¡¢²ÄÊÑ°ú¤­¿ô¥ê¥¹¥È¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ëÅÀ¤¬°Û¤Ê¤ë¡£ -»ØÄꤵ¤ì¤¿°ú¤­¿ô¤Ï¡¢ +と同じ機能を持つが、可変引き数リストを指定することができる点が異なる。 +指定された引き数は、 .BR stdarg (3) -²ÄÊÑ°ú¤­¿ô¥ê¥¹¥È¥Þ¥¯¥í¤òÍѤ¤¤Æ¼èÆÀ¤µ¤ì¤ë¡£ +可変引き数リストマクロを用いて取得される。 -°Ê²¼¤Î¥µ¥Ö¥»¥¯¥·¥ç¥ó¤Ç¤Ï¡¢ +以下のサブセクションでは、 .I option -¤È +と .I facility -¤È +と .I priority -¤ÎÃͤòÀßÄꤹ¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¥Ñ¥é¥á¡¼¥¿¤òÀâÌÀ¤¹¤ë¡£ +の値を設定するのに使用されるパラメータを説明する。 .SS option -²¼µ­¤ÎÃͤò OR ¤·¤¿¤â¤Î¤¬ +下記の値を OR したものが .BR openlog () -¤Î +の .I option -°ú¤­¿ô¤Ë¤Ê¤ë: +引き数になる: .TP 15 .B LOG_CONS -¥¨¥é¡¼¤¬¤¢¤ì¤Ð¡¢¥·¥¹¥Æ¥à¥í¥¬¡¼¤ËÁ÷¤ë°ìÊý¤Ç¥·¥¹¥Æ¥à¥³¥ó¥½¡¼¥ë¤Ë¤âľÀܽñ¤¯¡£ +エラーがあれば、システムロガーに送る一方でシステムコンソールにも直接書く。 .TP .B LOG_NDELAY -¥í¥°µ­Ï¿ÍÑ¥×¥í¥°¥é¥à¤È¤ÎÀܳ¤ò¨ºÂ¤Ë³«»Ï¤¹¤ë -(Ä̾ï¤Ï¡¢ºÇ½é¤Î¥á¥Ã¥»¡¼¥¸¤¬µ­Ï¿¤µ¤ì¤ë»þ¤ËÀܳ¤ò³«¤¯)¡£ +ログ記録用プログラムとの接続を即座に開始する +(通常は、最初のメッセージが記録される時に接続を開く)。 .TP .B LOG_NOWAIT -¥á¥Ã¥»¡¼¥¸¤òµ­Ï¿¤¹¤ëºÝ¤ËÀ¸À®¤µ¤ì¤ë»Ò¥×¥í¥»¥¹¤Î½ªÎ»¤òÂÔ¤¿¤Ê¤¤¡£ -(GNU C ¥é¥¤¥Ö¥é¥ê¤Ï»Ò¥×¥í¥»¥¹¤òÀ¸À®¤·¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï Linux ¤Ç¤Ï̵¸ú¤Ç¤¢¤ë¡£) +メッセージを記録する際に生成される子プロセスの終了を待たない。 +(GNU C ライブラリは子プロセスを生成しない。 +したがって、このオプションは Linux では無効である。) .TP .B LOG_ODELAY .B LOG_NDELAY -¤ÎÈ¿ÂС£ +の反対。 .BR syslog () -¤¬¸Æ¤Ð¤ì¤ë¤Þ¤Ç¡¢Àܳ¤Î³«»Ï¤ò¹Ô¤ï¤Ê¤¤¡£ -(¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ê¡¢Æä˻ØÄꤹ¤ëɬÍפϤʤ¤¡£) +が呼ばれるまで、接続の開始を行わない。 +(このオプションはデフォルトであり、特に指定する必要はない。) .TP .B LOG_PERROR -stderr ¤Ë¤â½ÐÎϤ¹¤ë¡£(POSIX.1-2001 ¤Ç¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤) +stderr にも出力する。(POSIX.1-2001 では定義されていない) .TP .B LOG_PID -¸Ä¡¹¤Î¥á¥Ã¥»¡¼¥¸¤Ë PID ¤ò´Þ¤á¤ë¡£ +個々のメッセージに PID を含める。 .SS facility .I facility -°ú¤­¿ô¤Ï¥á¥Ã¥»¡¼¥¸¤Ëµ­Ï¿¤µ¤ì¤ë¥×¥í¥°¥é¥à¤Î¥¿¥¤¥×¤ò»ØÄꤹ¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ -¤³¤ì¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¥¿¥¤¥×¤Î¥×¥í¥°¥é¥à¤«¤é¤Î¥á¥Ã¥»¡¼¥¸¤Ï°Û¤Ê¤ë°·¤¤¤ò -¤¹¤ë¤è¤¦¤ËÀßÄê¥Õ¥¡¥¤¥ë( +引き数はメッセージに記録されるプログラムのタイプを指定するために使われる。 +これによって異なるタイプのプログラムからのメッセージは異なる扱いを +するように設定ファイル( .BR syslog.conf (5)) -¤ËÄêµÁ¤Ç¤­¤ë¡£ +に定義できる。 .TP 15 .B LOG_AUTH -¥»¥­¥å¥ê¥Æ¥£/ǧ¾Ú ¥á¥Ã¥»¡¼¥¸ -(Èó¿ä¾©¡£Âå¤ï¤ê¤Ë +セキュリティ/認証 メッセージ +(非推奨。代わりに .B LOG_AUTHPRIV -¤ò»ÈÍѤ¹¤ë¤³¤È) +を使用すること) .TP .B LOG_AUTHPRIV -¥»¥­¥å¥ê¥Æ¥£/ǧ¾Ú ¥á¥Ã¥»¡¼¥¸ (¥×¥é¥¤¥Ù¡¼¥È) +セキュリティ/認証 メッセージ (プライベート) .TP .B LOG_CRON -¥¯¥í¥Ã¥¯¥Ç¡¼¥â¥ó +クロックデーモン .RB ( cron -¤È +と .RB at ) .TP .B LOG_DAEMON -ÆÃÄê¤Î facility Ãͤò»ý¤¿¤Ê¤¤¥·¥¹¥Æ¥à¥Ç¡¼¥â¥ó +特定の facility 値を持たないシステムデーモン .TP .B LOG_FTP -ftp ¥Ç¡¼¥â¥ó +ftp デーモン .TP .B LOG_KERN -¥«¡¼¥Í¥ë¥á¥Ã¥»¡¼¥¸ (¥æ¡¼¥¶¥×¥í¥»¥¹¤«¤éÀ¸À®¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤) +カーネルメッセージ (ユーザプロセスから生成することはできない) .\" LOG_KERN has the value 0; if used as a facility, zero translates to: .\" "use the default facility". .TP -.BR LOG_LOCAL0 " ¤«¤é " LOG_LOCAL7 -¥í¡¼¥«¥ë¤Ê»ÈÍѤΤ¿¤á¤Ë¥ê¥¶¡¼¥Ö¤µ¤ì¤Æ¤¤¤ë +.BR LOG_LOCAL0 " から " LOG_LOCAL7 +ローカルな使用のためにリザーブされている .TP .B LOG_LPR -¥é¥¤¥ó¥×¥ê¥ó¥¿¡¦¥µ¥Ö¥·¥¹¥Æ¥à +ラインプリンタ・サブシステム .TP .B LOG_MAIL -¥á¡¼¥ë¡¦¥µ¥Ö¥·¥¹¥Æ¥à +メール・サブシステム .TP .B LOG_NEWS -USENET ¥Ë¥å¡¼¥¹¡¦¥µ¥Ö¥·¥¹¥Æ¥à +USENET ニュース・サブシステム .TP .B LOG_SYSLOG .BR syslogd (8) -¤Ë¤è¤Ã¤ÆÆâÉôŪ¤Ëȯ¹Ô¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸ +によって内部的に発行されるメッセージ .TP -.BR LOG_USER " (¥Ç¥Õ¥©¥ë¥È)" -°ìÈÌŪ¤Ê¥æ¡¼¥¶¥ì¥Ù¥ë¥á¥Ã¥»¡¼¥¸ +.BR LOG_USER " (デフォルト)" +一般的なユーザレベルメッセージ .TP .B LOG_UUCP -UUCP¥µ¥Ö¥·¥¹¥Æ¥à +UUCPサブシステム .SS level -¤³¤ì¤Ï¥á¥Ã¥»¡¼¥¸¤ÎÍ¥ÀèÅÙ¤ò»ØÄꤹ¤ë¡£ -Í¥ÀèÅ٤ι⤤¤â¤Î¤«¤éÄ㤤¤â¤Î¤Î½ç¤Ç²¼µ­¤¹¤ë¡£ +これはメッセージの優先度を指定する。 +優先度の高いものから低いものの順で下記する。 .TP 15 .B LOG_EMERG -¥·¥¹¥Æ¥à¤¬»ÈÍÑÉÔ²Ä +システムが使用不可 .TP .B LOG_ALERT -ľ¤Á¤Ë¹ÔÆ°¤òµ¯¤³¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ +直ちに行動を起こさなければならない .TP .B LOG_CRIT -´í¸±¤Ê¾õÂÖ +危険な状態 .TP .B LOG_ERR -¥¨¥é¡¼¤Î¾õÂÖ +エラーの状態 .TP .B LOG_WARNING -¥ï¡¼¥Ë¥ó¥°¤Î¾õÂÖ +ワーニングの状態 .TP .B LOG_NOTICE -Ä̾ï¤À¤¬½ÅÍפʾõÂÖ +通常だが重要な状態 .TP .B LOG_INFO -¥¤¥ó¥Õ¥©¥á¡¼¥·¥ç¥ó¥á¥Ã¥»¡¼¥¸ +インフォメーションメッセージ .TP .B LOG_DEBUG -¥Ç¥Ð¥Ã¥°¥ì¥Ù¥ë¤Î¥á¥Ã¥»¡¼¥¸ +デバッグレベルのメッセージ .LP .BR setlogmask (3) -´Ø¿ô¤ò»ÈÍѤ·¤Æ¡¢ -»ØÄꤵ¤ì¤¿¥ì¥Ù¥ë¤Î¥á¥Ã¥»¡¼¥¸¤À¤±¤òµ­Ï¿¤¹¤ë¤è¤¦¤Ë -À©¸Â¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.SH ½àµò +関数を使用して、 +指定されたレベルのメッセージだけを記録するように +制限することができる。 +.SH 準拠 .BR openlog (), .BR closelog (), .BR syslog () -¤Ï SUSv2 ¤È POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë -(⤷ +は SUSv2 と POSIX.1-2001 で規定されている +(但し .BR vsyslog () -¤Ï½ü¤¯)¡£ -POSIX.1-2001 ¤Ç¤Ï +は除く)。 +POSIX.1-2001 では .I facility -¤È¤·¤Æ +として .B LOG_USER -¤È +と .B LOG_LOCAL* -¤ÎÃͤ¬µ¬Äꤵ¤ì¤Æ¤¤¤ë¤À¤±¤Ç¤¢¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢ +の値が規定されているだけである。 +しかしながら、 .B LOG_AUTHPRIV -¤È +と .B LOG_FTP -¤È¤¤¤¦Îã³°¤Ï¤¢¤ë¤¬¡¢ -¤½¤ì°Ê³°¤Î +という例外はあるが、 +それ以外の .I facility -¤ÎÃͤÏ¿¤¯¤Î UNIX ¥·¥¹¥Æ¥à¤Ç»È¤ï¤ì¤Æ¤¤¤ë¡£ +の値は多くの UNIX システムで使われている。 .I option -¤ÎÃͤΠ+の値の .B LOG_PERROR -¤ÎÃͤϡ¢ POSIX.1-2001 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -UNIX ¤Î¿¤¯¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ -.\" .SH ÍúÎò +の値は、 POSIX.1-2001 では規定されていないが、 +UNIX の多くのバージョンで使用可能である。 +.\" .SH 履歴 .\" .BR syslog () -.\" ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¡¦¥³¡¼¥ë¤Ï 4.2BSD ¤«¤é¼ÂÁõ¤µ¤ì¤¿¡£ -.\" 4.3BSD ¤Ë¤Ï +.\" ファンクション・コールは 4.2BSD から実装された。 +.\" 4.3BSD には .\" .BR openlog (), .\" .BR syslog (), .\" .BR closelog (), .\" .BR setlogmask () -.\" ¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -.\" ¤Þ¤¿¡¢4.3BSD-Reno ¤Ë¤Ï +.\" が実装されている。 +.\" また、4.3BSD-Reno には .\" .BR vsyslog () -.\" ¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -.\" ÅöÁ³¤Ê¤¬¤é½é´ü¤Î v* ´Ø¿ô¤Ï +.\" が実装されている。 +.\" 当然ながら初期の v* 関数は .\" .I -.\" ¤È¤Ï¸ß´¹À­¤Î¤Ê¤¤ +.\" とは互換性のない .\" .I -.\" ¤Î»ÅÁȤò»ÈÍѤ·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -.SH Ãí°Õ +.\" の仕組を使用したものである。 +.SH 注意 .BR openlog () -¸Æ¤Ó½Ð¤·¤Î +呼び出しの .I ident -°ú¤­¿ô¤Ï¡¢Ãͤ¬¤½¤Î¤Þ¤ÞÊÝ»ý¤µ¤ì¤Æ¤¤¤ë¤³¤È¤òÁ°Äó¤Ë¤·¤Æ¤¤¤ë¡£ -¤½¤ì¤æ¤¨¡¢ +引き数は、値がそのまま保持されていることを前提にしている。 +それゆえ、 .I ident -¤Ç»ØÄꤵ¤ì¤¿Ê¸»úÎó¤¬Êѹ¹¤µ¤ì¤ë¤È¡¢ +で指定された文字列が変更されると、 .BR syslog () -¤ÏÊѹ¹¤µ¤ì¤¿Ê¸»úÎó¤ÎÄɲ乤ë¤À¤í¤¦¤·¡¢ -»ØÄꤵ¤ì¤¿Ê¸»úÎó¤¬Â¸ºß¤·¤Ê¤¯¤Ê¤Ã¤¿¾ì¹ç¡¢·ë²Ì¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ -ºÇ¤â°Ü¿¢À­¤¬¤¢¤ëÊýË¡¤Ï¡¢Ê¸»úÎóÄê¿ô¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç¤¢¤ë¡£ +は変更された文字列の追加するだろうし、 +指定された文字列が存在しなくなった場合、結果は未定義である。 +最も移植性がある方法は、文字列定数を使用することである。 .LP -¥æ¡¼¥¶¡¼¤«¤éÍ¿¤¨¤é¤ì¤¿¥Ç¡¼¥¿¤ò format ¤È¤·¤ÆÅϤ·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -Âå¤ï¤ê¤Ë°Ê²¼¤ò»È¤¦¤³¤È¡£ +ユーザーから与えられたデータを format として渡してはならない。 +代わりに以下を使うこと。 .nf syslog(priority, "%s", string); .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR logger (1), .BR setlogmask (3), .BR syslog.conf (5), diff --git a/release/man3/system.3 b/release/man3/system.3 index 12103eca..563efe88 100644 --- a/release/man3/system.3 +++ b/release/man3/system.3 @@ -32,83 +32,83 @@ .\" Updated 2001-10-16, Kentaro Shirakata .\" Updated 2005-02-27, Akihiro MOTOKI .\" -.\"WORD: feature test macro µ¡Ç½¸¡ºº¥Þ¥¯¥í +.\"WORD: feature test macro 機能検査マクロ .\" .TH SYSTEM 3 2010-09-10 "" "Linux Programmer's Manual" -.SH ̾Á° -system \- ¥·¥§¥ë¥³¥Þ¥ó¥É¤Î¼Â¹Ô -.SH ½ñ¼° +.SH 名前 +system \- シェルコマンドの実行 +.SH 書式 .nf .B #include .sp .BI "int system(const char *" "command" ); .fi -.SH ÀâÌÀ +.SH 説明 .BR system () -¤Ï +は .I command -¤Ç»ØÄꤷ¤¿¥³¥Þ¥ó¥É¤ò +で指定したコマンドを .B "/bin/sh \-c" .I command -¤Î·Á¤Ç¼Â¹Ô¤¹¤ë¡£»ØÄꤷ¤¿¥³¥Þ¥ó¥É¤¬½ªÎ»¤¹¤ì¤Ð¤³¤Î´Ø¿ô¤â½ªÎ»¤¹¤ë¡£ -¥³¥Þ¥ó¥É¼Â¹ÔÃæ¤Ï¡¢ +の形で実行する。指定したコマンドが終了すればこの関数も終了する。 +コマンド実行中は、 .B SIGCHLD -¤Ï¥Ö¥í¥Ã¥¯¤µ¤ì¡¢ +はブロックされ、 .B SIGINT -¤È +と .B SIGQUIT -¤Ï̵»ë¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç +は無視される。 +.SH 返り値 +エラーが発生した場合 .RB ( fork (2) -¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ê¤É)¡¢\-1 ¤òÊÖ¤¹¡£ -¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¡¢¥³¥Þ¥ó¥É¤Î¥¹¥Æ¡¼¥¿¥¹¤òÊÖ¤¹¡£ -¸å¼Ô¤Î¾ì¹ç¡¢¥¹¥Æ¡¼¥¿¥¹¤Ï +に失敗した場合など)、\-1 を返す。 +そうでなければ、コマンドのステータスを返す。 +後者の場合、ステータスは .BR wait (2) -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥Õ¥©¡¼¥Þ¥Ã¥È¤ÇÊ֤äƤ¯¤ë¡£ -½¾¤Ã¤Æ¡¢¥³¥Þ¥ó¥É¤Î½ªÎ»¥³¡¼¥É¤Ï +で定義されているフォーマットで返ってくる。 +従って、コマンドの終了コードは .I WEXITSTATUS(status) -¤ÇÆÀ¤ë¤³¤È¤¬½ÐÍè¤ë¡£ +で得ることが出来る。 .I /bin/sh -¤¬¼Â¹Ô½ÐÍè¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ -½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ï¥³¥Þ¥ó¥É¤¬ +が実行出来なかった場合、 +終了ステータスはコマンドが .I exit(127) -¤ò¼Â¹Ô¤·¤¿¾ì¹ç¤ÈƱ¤¸¤Ë¤Ê¤ë¡£ +を実行した場合と同じになる。 .PP .I command -¤ÎÃͤ¬ NULL ¤Î¤È¤­¤Ï¡¢ +の値が NULL のときは、 .BR system () -¤Ï¥·¥§¥ë¤¬ÍøÍѲÄǽ¤Ê¤é¥¼¥í°Ê³°¤ÎÃͤòÊÖ¤·¡¢ÍøÍÑÉԲĤʤ饼¥í¤òÊÖ¤¹¡£ +はシェルが利用可能ならゼロ以外の値を返し、利用不可ならゼロを返す。 .PP .BR system () -¤Ï¾¤Î»Ò¥×¥í¥»¥¹¤Î¥¦¥¨¥¤¥È¥¹¥Æ¡¼¥¿¥¹¤Ë¤Ï±Æ¶Á¤òÍ¿¤¨¤Ê¤¤¡£ -.SH ½àµò +は他の子プロセスのウエイトステータスには影響を与えない。 +.SH 準拠 C89, C99, POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .PP -(¡Ö¤É¤Î¡×¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤è¤ê¤âÁ°¤Ë) -µ¡Ç½¸¡ºº¥Þ¥¯¥í +(「どの」ヘッダファイルをインクルードするよりも前に) +機能検査マクロ .B _XOPEN_SOURCE -¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ +が定義された場合には、 .BR wait (2) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¥Þ¥¯¥í·² +で説明されているマクロ群 .RB ( WEXITSTATUS () -Åù) ¤¬ +等) が .I -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤ÈÍøÍѲÄǽ¤Ë¤Ê¤ë¡£ +をインクルードすると利用可能になる。 .PP -´û¤Ë½Ò¤Ù¤¿¤è¤¦¤Ë¡¢ +既に述べたように、 .BR system () -¤Ï +は .B SIGINT -¤È +と .B SIGQUIT -¤ò̵»ë¤¹¤ë¡£ -¤è¤Ã¤Æ¥ë¡¼¥×¤«¤é +を無視する。 +よってループから .BR system () -¤ò¸Æ¤Ö¥×¥í¥°¥é¥à¤Ï¡¢ -°Ê²¼¤ÎÎã¤Î¤è¤¦¤Ë»Ò¥×¥í¥»¥¹¤Î½ªÎ»¾õÂÖ¤ò¼«Ê¬¤Ç¥Á¥§¥Ã¥¯¤·¤Æ¤ª¤«¤Ê¤¤¤È¡¢ -ÃæÃǤǤ­¤Ê¤¯¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +を呼ぶプログラムは、 +以下の例のように子プロセスの終了状態を自分でチェックしておかないと、 +中断できなくなるかもしれない。 .br .nf @@ -121,50 +121,50 @@ C89, C99, POSIX.1-2001. } .fi .PP -set-user-ID ¤ä set-group-ID ¤ÎÆø¢¤ò¤â¤Ä¥×¥í¥°¥é¥à¤ÎÃæ¤Ç¤Ï +set-user-ID や set-group-ID の特権をもつプログラムの中では .BR system () -¤ò»È¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤¡£¤Ê¤¼¤Ê¤é¡¢¤¢¤ë´Ä¶­ÊÑ¿ô¤Î̤ÃΤÎÃͤˤè¤Ã¤Æ -¥·¥¹¥Æ¥à¤Î°ÂÁ´¤¬Â»¤Ê¤ï¤ì¤ë¤«¤é¤Ç¤¢¤ë¡£Âå¤ï¤ê¤Ë +を使ってはいけない。なぜなら、ある環境変数の未知の値によって +システムの安全が損なわれるからである。代わりに .BR exec (3) -´ØÏ¢¤Î´Ø¿ô·²¤ÎÃæ¤Ç +関連の関数群の中で .BR execlp (3) -¤È +と .BR execvp (3) -°Ê³°¤Î´Ø¿ô¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ -¼ÂºÝ¤Î¤È¤³¤í¡¢ +以外の関数を使用すべきである。 +実際のところ、 .BR system () -¤Ï +は .I /bin/sh -¤¬ bash ¥Ð¡¼¥¸¥ç¥ó 2 ¤Ç¤¢¤ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -set-user-ID ¤ä set-group-ID ¤ÎÆø¢¤ò»ý¤Ä¥×¥í¥°¥é¥à¤«¤é¤ÏÀµ¤·¤¯Æ°ºî¤·¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¡¢bash ¥Ð¡¼¥¸¥ç¥ó 2 ¤Ï¥¹¥¿¡¼¥È¥¢¥Ã¥×»þ¤ËÆø¢¤òÍî¤È¤¹¤«¤é¤Ç¤¢¤ë¡£ -(Debian ¤Ç¤Ï¡¢sh ¤È¤·¤Æµ¯Æ°¤µ¤ì¤¿»þ¤Ë¤Ï¤³¤Î¤è¤¦¤ÊÆ°ºî¤ò¹Ô¤Ê¤ï¤Ê¤¤¤è¤¦¤Ë -½¤Àµ¤µ¤ì¤¿ bash ¤òÍѤ¤¤Æ¤¤¤ë) +が bash バージョン 2 であるシステムでは、 +set-user-ID や set-group-ID の特権を持つプログラムからは正しく動作しない。 +なぜなら、bash バージョン 2 はスタートアップ時に特権を落とすからである。 +(Debian では、sh として起動された時にはこのような動作を行なわないように +修正された bash を用いている) .PP -glibc 2.1.3 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ +glibc 2.1.3 より前のバージョンでは、 .I command -¤¬ NULL ¤Î¾ì¹ç¤Ë +が NULL の場合に .I /bin/sh -¤¬ÍøÍѲÄǽ¤«¤É¤¦¤«¤Î¥Á¥§¥Ã¥¯¤Ï¼ÂºÝ¤Ë¤Ï¹Ô¤ï¤º¡¢ -¤¤¤Ä¤Ç¤âÍøÍѲÄǽ¤Ç¤¢¤ë¤È¤ß¤Ê¤·¤Æ¤¤¤¿¡£ +が利用可能かどうかのチェックは実際には行わず、 +いつでも利用可能であるとみなしていた。 .BR system () -¤Ï¤³¤Î¾ì¹ç¤Ë¾ï¤Ë 1 ¤òÊÖ¤·¤Æ¤¤¤¿¡£ -POSIX.1-2001 ¤Ç¤Ï¥·¥§¥ë¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¤È¤¤¤¦É¸½à¤Ë½àµò¤·¤¿¼ÂÁõ¤ò -Í׵ᤷ¤Æ¤¤¤ë¤¬¡¢glibc 2.1.3 °Ê¹ß¤Ç¤Ï¥·¥§¥ë¤Î¥Á¥§¥Ã¥¯¤ò¼Â¹Ô¤·¤Æ¤¤¤ë¡£ -¤Ê¤¼¤Ê¤é¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥°¥é¥à¤¬ +はこの場合に常に 1 を返していた。 +POSIX.1-2001 ではシェルが提供されているという標準に準拠した実装を +要求しているが、glibc 2.1.3 以降ではシェルのチェックを実行している。 +なぜなら、呼び出し元のプログラムが .BR system () -¤ò¸Æ¤Ó½Ð¤¹¤è¤êÁ°¤Ë (POSIX.1-2001 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤) +を呼び出すより前に (POSIX.1-2001 では規定されていない) .BR chroot (2) -¤ò¸Æ¤Ó½Ð¤·¤Æ¤¤¤¿»þ¤Ë¤Ï¡¢¥·¥§¥ë¤¬ÍøÍѲÄǽ¤Ç¤Ê¤¤¾ì¹ç¤ä¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë -¤Ç¤Ê¤¤¾ì¹ç¤¬¤¢¤ë¤«¤é¤Ç¤¢¤ë¡£ +を呼び出していた時には、シェルが利用可能でない場合や実行可能ファイル +でない場合があるからである。 .PP -¼Â¹Ô¤·¤¿¥·¥§¥ë¥³¥Þ¥ó¥É¤¬ 127 +実行したシェルコマンドが 127 .RB ( /bin/sh -¤Î¸Æ¤Ó½Ð¤·¤Ë¼ºÇÔ¤·¤¿»þ¤ËÊÖ¤¹ÃÍ) ¤òÊÖ¤¹¤³¤È¤â¹Í¤¨¤é¤ì¤ë¡£ -¤½¤Î¤¿¤á¡¢¥×¥í¥°¥é¥à¤Ï (¥ê¥¿¡¼¥ó¥³¡¼¥É¤ò¸«¤ë¤À¤±¤Ç¤Ï) +の呼び出しに失敗した時に返す値) を返すことも考えられる。 +そのため、プログラムは (リターンコードを見るだけでは) .BR execve (2) -¤Î¸Æ¤Ó½Ð¤·¤¬¼ºÇÔ¤·¤¿¤³¤È¤ò³Î¼Â¤ËÃΤ뤳¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +の呼び出しが失敗したことを確実に知ることはできない。 +.SH 関連項目 .BR sh (1), .BR signal (2), .BR wait (2), diff --git a/release/man3/sysv_signal.3 b/release/man3/sysv_signal.3 index e90fc638..41ea987b 100644 --- a/release/man3/sysv_signal.3 +++ b/release/man3/sysv_signal.3 @@ -24,71 +24,71 @@ .\" all rights reserved. .\" Translated 2007-06-02, Akihiro MOTOKI .\" -.\"WORD: reliable ¿®ÍêÀ­¤Î¤¢¤ë -.\"WORD: unreliable ¿®ÍêÀ­¤Ë·ç¤±¤ë -.\"WORD: signal semantics ¥·¥°¥Ê¥ë½èÍýÊý¼° +.\"WORD: reliable 信頼性のある +.\"WORD: unreliable 信頼性に欠ける +.\"WORD: signal semantics シグナル処理方式 .\" .TH SYSV_SIGNAL 3 2007-05-04 "" "Linux Programmer's Manual" -.SH ̾Á° -sysv_signal \- System V Êý¼°¤Î¥·¥°¥Ê¥ë½èÍý -.SH ½ñ¼° -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.SH 名前 +sysv_signal \- System V 方式のシグナル処理 +.SH 書式 +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .B typedef void (*sighandler_t)(int); .sp .BI "sighandler_t sysv_signal(int " signum ", sighandler_t " handler ); -.SH ÀâÌÀ +.SH 説明 .BR sysv_signal () -´Ø¿ô¤Ï +関数は .BR signal (2) -¤ÈƱ¤¸°ú¤­¿ô¤ò¤È¤ê¡¢Æ±¤¸½èÍý¤ò¼Â¹Ô¤¹¤ë¡£ +と同じ引き数をとり、同じ処理を実行する。 -¤·¤«¤·¤Ê¤¬¤é¡¢ +しかしながら、 .BR sysv_signal () -¤Ï System V ¤Î¿®ÍêÀ­¤Ë·ç¤±¤ë¥·¥°¥Ê¥ë½èÍýÊý¼°¤òÄ󶡤·¤Æ¤¤¤ë¡£ -¿®ÍêÀ­¤Ë·ç¤±¤ë¥·¥°¥Ê¥ë½èÍýÊý¼°¤Ï°Ê²¼¤ÎÆÃħ¤ò»ý¤Ä¡£ -a) ¥Ï¥ó¥É¥é¤¬µ¯Æ°¤µ¤ì¤ë¤È¡¢¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡ (disposition) ¤¬ -¥Ç¥Õ¥©¥ë¥È¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë¡¢ -b) ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Î¼Â¹ÔÃæ¤Ï¡¢¤½¤ì°Ê¹ß¤ËȯÀ¸¤·¤¿Æ±¤¸¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤¬ -¥Ö¥í¥Ã¥¯¤µ¤ì¤Ê¤¤¡¢ -c) ¥Ï¥ó¥É¥é¤¬Ää»ßÃæ¤Î (blocking ¤·¤Æ¤¤¤ë) ¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÃæÃǤ·¤¿¾ì¹ç¡¢ -¼«Æ°Åª¤ËºÆ³«¤µ¤ì¤Ê¤¤¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +は System V の信頼性に欠けるシグナル処理方式を提供している。 +信頼性に欠けるシグナル処理方式は以下の特徴を持つ。 +a) ハンドラが起動されると、シグナルの処理方法 (disposition) が +デフォルトにリセットされる、 +b) シグナルハンドラの実行中は、それ以降に発生した同じシグナルの配送が +ブロックされない、 +c) ハンドラが停止中の (blocking している) システムコールを中断した場合、 +自動的に再開されないシステムコールがある。 +.SH 返り値 .BR sysv_signal () -´Ø¿ô¤Ï¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ÎľÁ°¤ÎÃͤòÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢ +関数はシグナルハンドラの直前の値を返す。 +エラーの場合、 .B SIG_ERR -¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +を返す。 +.SH エラー .BR signal (2) -¤ÈƱ¤¸¡£ -.SH ½àµò -¤³¤Î´Ø¿ô¤ÏÈóɸ½à¤Ç¤¢¤ë¡£ -.SH Ãí°Õ +と同じ。 +.SH 準拠 +この関数は非標準である。 +.SH 注意 .BR sysv_signal () -¤Î»ÈÍѤÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£Âå¤ï¤ê¤Ë +の使用は避けるべきである。代わりに .BR sigaction (2) -¤ò»È¤¦¤³¤È¡£ +を使うこと。 -°ÊÁ°¤Î Linux ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +以前の Linux システムでは、 .BR sysv_signal () -¤È +と .BR signal (2) -¤ÏÅù²Á¤Ç¤¢¤Ã¤¿¡£¤·¤«¤·¡¢¿·¤·¤á¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +は等価であった。しかし、新しめのシステムでは、 .BR signal (2) -¤Ï¿®ÍêÀ­¤Î¤¢¤ë¥·¥°¥Ê¥ë½èÍýÊý¼°¤òÄ󶡤·¤Æ¤¤¤ë¡£ -¾ÜºÙ¤Ï +は信頼性のあるシグナル処理方式を提供している。 +詳細は .BR signal (2) -¤ò»²¾È¡£ +を参照。 .I sighandler_t -¤ò»È¤Ã¤Æ¤¤¤ë¤Î¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -¤³¤Î·¿¤Ïµ¡Ç½¸¡ºº¥Þ¥¯¥í +を使っているのは GNU による拡張である。 +この型は機能検査マクロ .B _GNU_SOURCE -¤òÄêµÁ¤·¤¿¾ì¹ç¤Ë¤Î¤ßÄêµÁ¤µ¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を定義した場合にのみ定義される。 +.SH 関連項目 .BR sigaction (2), .BR signal (2), .BR bsd_signal (3), diff --git a/release/man3/tan.3 b/release/man3/tan.3 index afe955e5..7c28daf3 100644 --- a/release/man3/tan.3 +++ b/release/man3/tan.3 @@ -38,9 +38,9 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH TAN 3 2010-09-11 "" "Linux Programmer's Manual" -.SH ̾Á° -tan, tanf, tanl \- ÀµÀÜ¡Ê¥¿¥ó¥¸¥§¥ó¥È¡Ë´Ø¿ô -.SH ½ñ¼° +.SH 名前 +tan, tanf, tanl \- 正接(タンジェント)関数 +.SH 書式 .nf .B #include .sp @@ -51,7 +51,7 @@ tan, tanf, tanl \- .BI "long double tanl(long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n Feature Test Macro Requirements for glibc (see @@ -69,28 +69,28 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR tan () -´Ø¿ô¤Ï \fIx\fP ¤ÎÀµÀÜ¡Ê¥¿¥ó¥¸¥§¥ó¥È¡Ë¤ÎÃͤòÊÖ¤¹¡£ -\fIx\fP ¤Ï¥é¥¸¥¢¥óñ°Ì¤Ç»ØÄꤹ¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +関数は \fIx\fP の正接(タンジェント)の値を返す。 +\fIx\fP はラジアン単位で指定する。 +.SH 返り値 +成功すると、これらの関数は .I x -¤ÎÀµÀÜ (¥¿¥ó¥¸¥§¥ó¥È) ¤òÊÖ¤¹¡£ +の正接 (タンジェント) を返す。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬Àµ¤Î̵¸ÂÂ礫Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ -Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大か負の無限大の場合、 +領域エラー (domain error) が発生し、NaN が返される。 -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +結果がオーバーフローする場合、範囲エラー (range error) が発生し、 +各関数はそれぞれ .BR HUGE_VAL , .BR HUGE_VALF , .B HUGE_VALL -¤òÊÖ¤¹¡£ +を返す。 .\" I think overflow can't occur, because the closest floating-point .\" representation of pi/2 is still not close enough to pi/2 to .\" produce a large enough value to overflow. @@ -100,44 +100,44 @@ or .\" glibc 2.8 doesn't do this .\" POSIX.1 an optional range error for subnormal x; .\" glibc 2.8 doesn't do this -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤Ï̵¸ÂÂç¤Ç¤¢¤ë +領域エラー (domain error): \fIx\fP は無限大である .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë (¡Ö¥Ð¥°¡×¤ÎÀá¤â»²¾È)¡£ -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される (「バグ」の節も参照)。 +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP -ÈÏ°Ï¥¨¥é¡¼ (range error): ·ë²Ì¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ +範囲エラー (range error): 結果のオーバーフロー .\" Unable to test this case, since the best approximation of .\" pi/2 in double precision only yields a tan() value of 1.633e16. .\" .I errno .\" is set to .\" .BR ERANGE . -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ -.SH ¥Ð¥° +が上がる。 +.SH バグ .\" http://sourceware.org/bugzilla/show_bug.cgi?id=6782 -¥Ð¡¼¥¸¥ç¥ó 2.10 ¤è¤êÁ°¤Î glibc ¤Î¼ÂÁõ¤Ç¤Ï¡¢ -Îΰ襨¥é¡¼¤¬È¯À¸¤·¤¿ºÝ¤Ë¡¢ +バージョン 2.10 より前の glibc の実装では、 +領域エラーが発生した際に、 .I error -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤Ê¤«¤Ã¤¿¡£ -.SH ½àµò +が設定されなかった。 +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 +.SH 関連項目 .BR acos (3), .BR asin (3), .BR atan (3), diff --git a/release/man3/tanh.3 b/release/man3/tanh.3 index b68fab1f..bb38c81a 100644 --- a/release/man3/tanh.3 +++ b/release/man3/tanh.3 @@ -37,9 +37,9 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH TANH 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -tanh, tanhf, tanhl \- ÁжÊÀþÀµÀÜ (hyperbolic tangent) ´Ø¿ô -.SH ½ñ¼° +.SH 名前 +tanh, tanhf, tanhl \- 双曲線正接 (hyperbolic tangent) 関数 +.SH 書式 .nf .B #include .sp @@ -50,12 +50,12 @@ tanh, tanhf, tanhl \- .BI "long double tanhl(long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -69,38 +69,38 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR tanh () -´Ø¿ô¤Ï \fIx\fP ¤ÎÁжÊÀþÀµÀÜ (hyperbolic tangent) ´Ø¿ô¤òÊÖ¤¹¡£ -¿ô³ØŪ¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡¥ +関数は \fIx\fP の双曲線正接 (hyperbolic tangent) 関数を返す。 +数学的には以下のように定義されている. .nf tanh(x) = sinh(x) / cosh(x) .fi -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +.SH 返り値 +成功すると、これらの関数は .I x -¤ÎÁжÊÀþÀµÀܤòÊÖ¤¹¡£ +の双曲線正接を返す。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬ +0 (\-0) ¤Î¾ì¹ç¡¢+0 (\-0) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が +0 (\-0) の場合、+0 (\-0) が返される。 .I x -¤¬Àµ¤Î̵¸ÂÂç (Éé¤Î̵¸ÂÂç) ¤Î¾ì¹ç¡¢+1 (\-1) ¤¬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大 (負の無限大) の場合、+1 (\-1) が返される。 .\" .\" POSIX.1-2001 documents an optional range error (underflow) .\" for subnormal x; .\" glibc 2.8 does not do this. -.SH ¥¨¥é¡¼ -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ -.SH ½àµò +.SH エラー +エラーは発生しない。 +.SH 準拠 C99, POSIX.1-2001. .I double -ÈǤδؿô¤Ï SVr4, 4.3BSD, C89 ¤Ë¤â½àµò¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +版の関数は SVr4, 4.3BSD, C89 にも準拠している。 +.SH 関連項目 .BR acosh (3), .BR asinh (3), .BR atanh (3), diff --git a/release/man3/tcgetpgrp.3 b/release/man3/tcgetpgrp.3 index e3bf477d..aaaeffcd 100644 --- a/release/man3/tcgetpgrp.3 +++ b/release/man3/tcgetpgrp.3 @@ -26,104 +26,104 @@ .\" by Akihiro MOTOKI .\" .TH TCGETPGRP 3 2003-01-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -tcgetpgrp, tcsetpgrp \- üËö¤Î¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¡¦¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Î -¼èÆÀ/ÀßÄê¤ò¹Ô¤¦ -.SH ½ñ¼° +.SH 名前 +tcgetpgrp, tcsetpgrp \- 端末のフォアグラウンド・プロセス・グループの +取得/設定を行う +.SH 書式 .B "#include " .sp .BI "pid_t tcgetpgrp(int " fd ); .sp .BI "int tcsetpgrp(int " fd ", pid_t " pgrp ); -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR tcgetpgrp () -¤Ï¡¢ +は、 .I fd -¤ËÂбþ¤¹¤ëüËö¤Î¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¡¦¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Î -¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× ID ¤òÊÖ¤¹¡£ +に対応する端末のフォアグラウンド・プロセス・グループの +プロセス・グループ ID を返す。 .I fd -¤Ç»ØÄꤵ¤ì¤¿Ã¼Ëö¤Ï¡¢¸Æ¤Ó½Ð¤·¤ò¹Ô¤¦¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.\" ¥×¥í¥»¥¹¼«ÂΤϥХ寥°¥é¥¦¥ó¥É¡¦¥×¥í¥»¥¹¤Ç¤¢¤Ã¤Æ¤â¤è¤¤¡£ +で指定された端末は、呼び出しを行うプロセスの制御端末でなければならない。 +.\" プロセス自体はバックグラウンド・プロセスであってもよい。 .LP -´Ø¿ô +関数 .BR tcsetpgrp () -¤Ï¡¢¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×ID ¤¬ \fIpgrp\fP ¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤ò +は、プロセス・グループID が \fIpgrp\fP のプロセス・グループを .I fd -¤ËÂбþ¤¹¤ëüËö¤Î¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¡¦¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Ë¤¹¤ë¡£ -¤³¤Î¤È¤­¡¢ +に対応する端末のフォアグラウンド・プロセス・グループにする。 +このとき、 .I fd -¤Ï +は .BR tcsetpgrp () -¤ò¸Æ¤Ó½Ð¤¹¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤µ¤é¤Ë¡¢ \fIpgrp\fP ¤Ï¡¢¸Æ¤Ó½Ð¤·¤ò¹Ô¤¦¥×¥í¥»¥¹¤ÈƱ¤¸¥»¥Ã¥·¥ç¥ó¤Ë -°¤¹¤ë (¥á¥ó¥Ð¤¬¶õ¤Ç¤Ê¤¤) ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を呼び出すプロセスの制御端末でなければならない。 +さらに、 \fIpgrp\fP は、呼び出しを行うプロセスと同じセッションに +属する (メンバが空でない) プロセス・グループでなければならない。 .LP .BR tcsetpgrp () -¤¬¥»¥Ã¥·¥ç¥ó¤Ë°¤¹¤ë¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¡¦¥°¥ë¡¼¥×¡¦¥×¥í¥»¥¹¤Î¥á¥ó¥Ð¤«¤é -¸Æ¤Ó½Ð¤µ¤ì¡¢¤«¤Ä¸Æ¤Ó½Ð¤·¤ò¹Ô¤¦¥×¥í¥»¥¹¤¬ +がセッションに属するバックグラウンド・グループ・プロセスのメンバから +呼び出され、かつ呼び出しを行うプロセスが .B SIGTTOU -¤ò¥Ö¥í¥Ã¥¯¤·¤¿¤ê -̵»ë¤·¤¿¤ê¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +をブロックしたり +無視したりするようになっていない場合、 .B SIGTTOU -¥·¥°¥Ê¥ë¤Ï -¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¡¦¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤ÎÁ´¤Æ¤Î¥á¥ó¥Ð¤ËÁ÷¤é¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +シグナルは +バックグラウンド・プロセス・グループの全てのメンバに送られる。 +.SH 返り値 .I fd -¤¬¸Æ¤Ó½Ð¤·¤ò¹Ô¤Ã¤¿¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¡¢´Ø¿ô +が呼び出しを行ったプロセスの制御端末を参照している場合、関数 .BR tcgetpgrp () -¤Ï¡¢¤½¤ÎÀ©¸æüËö¤Î¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¡¦¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤¬¤¢¤ì¤Ð -¤½¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Î ID ¤òÊÖ¤¹¡£ -¤½¤Î¤è¤¦¤Ê¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤¬¤Ê¤±¤ì¤Ð¡¢¸½ºß¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× ID -¤È¤·¤Æ»ÈÍѤµ¤ì¤Æ¤¤¤Ê¤¤¡¢1¤è¤êÂ礭¤Ê²¿¤é¤«¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¡£ +は、その制御端末のフォアグラウンド・プロセス・グループがあれば +そのプロセス・グループの ID を返す。 +そのようなプロセス・グループがなければ、現在プロセス・グループ ID +として使用されていない、1より大きな何らかの値が返される。 .I fd -¤¬¸Æ¤Ó½Ð¤·¤ò¹Ô¤Ã¤¿¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -\-1 ¤¬ÊÖ¤µ¤ì¡¢ +が呼び出しを行ったプロセスの制御端末を参照していない場合、 +\-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .LP -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .BR tcsetpgrp () -¤Ï 0 ¤òÊÖ¤¹¡£¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¡¢ \-1 ¤òÊÖ¤·¡¢ +は 0 を返す。そうでない場合、 \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切に設定する。 +.SH エラー .TP .B EBADF .I fd -¤ÏÍ­¸ú¤Ê¥Õ¥¡¥¤¥ëµ­½Ò»Ò¤Ç¤Ê¤¤¡£ +は有効なファイル記述子でない。 .TP .B EINVAL .I pgrp -¤¬Ìµ¸ú¤ÊÃͤǤ¢¤ë¡£ +が無効な値である。 .TP .B ENOTTY -¸Æ¤Ó½Ð¤·¤ò¹Ô¤Ã¤¿¥×¥í¥»¥¹¤¬À©¸æüËö¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡¢¤â¤·¤¯¤Ï -À©¸æüËö¤ò»ý¤Ã¤Æ¤¤¤ë¤¬ +呼び出しを行ったプロセスが制御端末を持っていない、もしくは +制御端末を持っているが .I fd -¤Ç»²¾È¤µ¤ì¤ë¤â¤Î¤È¤Ï°Û¤Ê¤ë¡¢ +で参照されるものとは異なる、 .BR tcsetpgrp () -¤Î¾ì¹ç¤Ï¡¢ +の場合は、 .I fd -¤Ç»ØÄꤵ¤ì¤¿À©¸æüËö¤¬¤¹¤Ç¤Ë¸Æ¤Ó½Ð¤·¤ò¹Ô¤Ã¤¿¥×¥í¥»¥¹¤Î¥»¥Ã¥·¥ç¥ó -¤È´Ø·¸¤Î¤Ê¤¤¤â¤Î¤Ë¤Ê¤Ã¤Æ¤¤¤ëºÝ¤Ë¤â¡¢¤³¤Î¥¨¥é¡¼¤È¤Ê¤ë¡£ +で指定された制御端末がすでに呼び出しを行ったプロセスのセッション +と関係のないものになっている際にも、このエラーとなる。 .TP .B EPERM .I pgrp -¤¬Í­¸ú¤ÊÃͤÀ¤¬¡¢¸Æ¤Ó½Ð¤·¤ò¹Ô¤Ã¤¿¥×¥í¥»¥¹¤ÈƱ¤¸¥»¥Ã¥·¥ç¥ó¤Ë°¤¹¤ë -¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× ID ¤Ë¤Ï³ºÅö¤¹¤ë¤â¤Î¤¬¤Ê¤¤¡£ -.SH ½àµò +が有効な値だが、呼び出しを行ったプロセスと同じセッションに属する +プロセスのプロセス・グループ ID には該当するものがない。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ -¤³¤Î´Ø¿ô¤Ï +.SH 注意 +この関数は .B TIOCGPGRP -¤È +と .B TIOCGSID -¤Î ioctl ·Ðͳ¤Ç¼Â¸½¤µ¤ì¤Æ¤¤¤ë¡£ -.SS Îò»Ë -¤³¤ì¤é¤Î ioctl ¤Ï 4.2BSD ¤ÇÅо줷¤¿¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ï POSIX ¤Ç¹Í°Æ¤µ¤ì¤¿¤â¤Î¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +の ioctl 経由で実現されている。 +.SS 歴史 +これらの ioctl は 4.2BSD で登場した。 +これらの関数は POSIX で考案されたものである。 +.SH 関連項目 .BR setpgid (2), .BR setsid (2), .BR credentials (7) diff --git a/release/man3/tcgetsid.3 b/release/man3/tcgetsid.3 index e28caa67..4b3d61ea 100644 --- a/release/man3/tcgetsid.3 +++ b/release/man3/tcgetsid.3 @@ -26,54 +26,54 @@ .\" by Akihiro MOTOKI .\" .TH TCGETSID 3 2010-09-10 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -tcgetsid \- ¥»¥Ã¥·¥ç¥óID ¤ò¼èÆÀ¤¹¤ë -.SH ½ñ¼° +.SH 名前 +tcgetsid \- セッションID を取得する +.SH 書式 .nf -.BR "#define _XOPEN_SOURCE 500" " /* feature_test_macros(7) »²¾È */" +.BR "#define _XOPEN_SOURCE 500" " /* feature_test_macros(7) 参照 */" .br .B "#include " .sp .BI "pid_t tcgetsid(int " fd ); .fi -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR tcgetsid () -¤Ï¡¢À©¸æüËö¤È¤·¤Æ +は、制御端末として .I fd -¤ËÂбþ¤¹¤ëüËö¤ò»ý¤Ä¥«¥ì¥ó¥È¡¦¥»¥Ã¥·¥ç¥ó¤Î¥»¥Ã¥·¥ç¥óID ¤òÊÖ¤¹¡£ -¤³¤ÎüËö¤Ï \fBtcgetsid\fR() ¤Î¸Æ¤Ó½Ð¤·¤ò¹Ô¤¦¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤Ç -¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +に対応する端末を持つカレント・セッションのセッションID を返す。 +この端末は \fBtcgetsid\fR() の呼び出しを行うプロセスの制御端末で +なければならない。 +.SH 返り値 .I fd -¤¬¸Æ¤Ó½Ð¤·¤ò¹Ô¤Ã¤¿¥»¥Ã¥·¥ç¥ó¤ÎÀ©¸æüËö¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -´Ø¿ô +が呼び出しを行ったセッションの制御端末を参照している場合、 +関数 .BR tcgetsid () -¤Ï¤³¤Î¥»¥Ã¥·¥ç¥ó¤Î¥»¥Ã¥·¥ç¥óID ¤òÊÖ¤¹¡£ -¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¡¢ \-1 ¤¬ÊÖ¤µ¤ì¡¢ +はこのセッションのセッションID を返す。 +そうでない場合、 \-1 が返され、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EBADF .I fd -¤ÏÍ­¸ú¤Ê¥Õ¥¡¥¤¥ëµ­½Ò»Ò¤Ç¤Ê¤¤¡£ +は有効なファイル記述子でない。 .TP .B ENOTTY -¸Æ¤Ó½Ð¤·¤ò¹Ô¤Ã¤¿¥×¥í¥»¥¹¤¬À©¸æüËö¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡¢¤â¤·¤¯¤Ï -À©¸æüËö¤ò»ý¤Ã¤Æ¤¤¤ë¤¬ +呼び出しを行ったプロセスが制御端末を持っていない、もしくは +制御端末を持っているが .I fd -¤Ç»²¾È¤µ¤ì¤ë¤â¤Î¤È¤Ï°Û¤Ê¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +で参照されるものとは異なる。 +.SH バージョン .BR tcgetsid () -¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò +は、バージョン 2.1 以降の glibc で提供されている。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ -¤³¤Î´Ø¿ô¤Ï +.SH 注意 +この関数は .B TIOCGSID .BR ioctl (2) -·Ðͳ¤Ç¼Â¸½¤µ¤ì¤Æ¤ª¤ê¡¢ -Linux 2.1.71 °Ê¹ß¤Ç¸ºß¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +経由で実現されており、 +Linux 2.1.71 以降で存在する。 +.SH 関連項目 .BR getsid (2) diff --git a/release/man3/telldir.3 b/release/man3/telldir.3 index 5483d3ba..0e3789fc 100644 --- a/release/man3/telldir.3 +++ b/release/man3/telldir.3 @@ -34,9 +34,9 @@ .\" Updated 2009-04-24, Akihiro MOTOKI , LDP v3.20 .\" .TH TELLDIR 3 2009-03-11 "" "Linux Programmer's Manual" -.SH ̾Á° -telldir \- ¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥àÃæ¤Î¸½ºß°ÌÃÖ¤òÊÖ¤¹ -.SH ½ñ¼° +.SH 名前 +telldir \- ディレクトリストリーム中の現在位置を返す +.SH 書式 .nf .B #include .sp @@ -44,42 +44,42 @@ telldir \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR telldir (): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR telldir () -´Ø¿ô¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à \fIdirp\fP ¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤¿ -¸½ºß°ÌÃÖ¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +関数は、ディレクトリストリーム \fIdirp\fP に結びつけられた +現在位置を返す。 +.SH 返り値 +成功した場合、 .BR telldir () -´Ø¿ô¤Ï¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥àÃæ¤Î¸½ºß°ÌÃÖ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢ +関数はディレクトリストリーム中の現在位置を返す。 +エラーの場合、\-1 が返されて、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +が適切に設定される。 +.SH エラー .TP .B EBADF -¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¥Ç¥£¥¹¥¯¥ê¥×¥¿ \fIdirp\fP ¤¬Ìµ¸ú¤Ç¤¢¤ë¡£ -.SH ½àµò +ディレクトリストリームディスクリプタ \fIdirp\fP が無効である。 +.SH 準拠 4.3BSD, POSIX.1-2001. -.SH Ãí°Õ -¥Ð¡¼¥¸¥ç¥ó 2.1.1 °ÊÁ°¤Î glibc ¤Ç¤Ï¡¢ +.SH 注意 +バージョン 2.1.1 以前の glibc では、 .BR telldir ()9 -¤ÎÊÖ¤êÃͤη¿¤Ï +の返り値の型は .I off_t -¤Ç¤¢¤Ã¤¿¡£ -POSIX.1-2001 ¤Ç¤Ï +であった。 +POSIX.1-2001 では .I long -¤Èµ¬Äꤵ¤ì¤Æ¤ª¤ê¡¢glibc 2.1.2 °Ê¹ß¤Ç¤Ï +と規定されており、glibc 2.1.2 以降では .I long -¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +になっている。 +.SH 関連項目 .BR closedir (3), .BR opendir (3), .BR readdir (3), diff --git a/release/man3/tempnam.3 b/release/man3/tempnam.3 index bbbfc1b2..81a41645 100644 --- a/release/man3/tempnam.3 +++ b/release/man3/tempnam.3 @@ -29,19 +29,19 @@ .\" Updated 2006-04-14, Akihiro MOTOKI , LDP v2.29 .\" Updated 2006-07-26, Akihiro MOTOKI , LDP v2.36 .\" -.\"WORD: temporary file ¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë -.\"WORD: filename ¥Õ¥¡¥¤¥ë̾ -.\"WORD: function ´Ø¿ô -.\"WORD: directory ¥Ç¥£¥ì¥¯¥È¥ê -.\"WORD: environment variable ´Ä¶­ÊÑ¿ô -.\"WORD: argument °ú¤­¿ô -.\"WORD: storage ÊݸÎΰè -.\"WORD: pointer ¥Ý¥¤¥ó¥¿¡¼ +.\"WORD: temporary file テンポラリファイル +.\"WORD: filename ファイル名 +.\"WORD: function 関数 +.\"WORD: directory ディレクトリ +.\"WORD: environment variable 環境変数 +.\"WORD: argument 引き数 +.\"WORD: storage 保存領域 +.\"WORD: pointer ポインター .\" .TH TEMPNAM 3 2008-08-06 "" "Linux Programmer's Manual" -.SH ̾Á° -tempnam \- ¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë¤Î̾Á°¤òºîÀ®¤¹¤ë -.SH ½ñ¼° +.SH 名前 +tempnam \- テンポラリファイルの名前を作成する +.SH 書式 .nf .B #include .sp @@ -49,136 +49,136 @@ tempnam \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR tempnam (): _BSD_SOURCE || _SVID_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR tempnam () -´Ø¿ô¤Ï¥Õ¥¡¥¤¥ë̾¤È¤·¤ÆÀµ¤·¤¤Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£ -¤³¤Î¥Õ¥¡¥¤¥ë̾¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤Ï¡¢ +関数はファイル名として正しい文字列へのポインターを返す。 +このファイル名を持つファイルは、 .BR tempnam () -¤¬¥Á¥§¥Ã¥¯¤·¤¿»þÅÀ¤Ë¤ª¤¤¤Æ¤Ï¸ºß¤·¤Ê¤¤ (¤·¤Ê¤«¤Ã¤¿)¡£ +がチェックした時点においては存在しない (しなかった)。 .I pfx -¤¬ NULL ¤Ç¤Ê¤¤ 5 ¥Ð¥¤¥È°ÊÆâ¤Îʸ»úÎó¤Ç¤¢¤ì¤Ð¡¢ -À¸À®¤µ¤ì¤ë¥Ñ¥¹Ì¾¤Î¤¦¤Á¤Î¥Õ¥¡¥¤¥ë̾¤ÎÉôʬ¤Ï +が NULL でない 5 バイト以内の文字列であれば、 +生成されるパス名のうちのファイル名の部分は .I pfx -¤«¤é»Ï¤Þ¤ë¤â¤Î¤Ë¤Ê¤ë¡£ -À¸À®¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ÎÉôʬ¤Ï¡¢¡ÖŬÀڡפǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(ÂçÄñ¤Î¾ì¹ç¡¢¡ÖŬÀڡפǤ¢¤ë¤¿¤á¤Ë¤Ï¤Þ¤º¾¯¤Ê¤¯¤È¤â -½ñ¤­¹þ¤ß²Äǽ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£ +から始まるものになる。 +生成されるディレクトリの部分は、「適切」でなければならない +(大抵の場合、「適切」であるためにはまず少なくとも +書き込み可能でなければならない)。 -ŬÀڤʥǥ£¥ì¥¯¥È¥ê¤Îõº÷¤Ï¡¢°Ê²¼¤Î¼ê½ç¤Ë¤·¤¿¤¬¤Ã¤Æ¹Ô¤ï¤ì¤ë¡£ +適切なディレクトリの探索は、以下の手順にしたがって行われる。 .TP 3 a) -´Ä¶­ÊÑ¿ô +環境変数 .B TMPDIR -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Æ¡¢ -¤½¤ÎÆâÍƤ¬Å¬Àڤʥǥ£¥ì¥¯¥È¥ê¤Î̾Á°¤Ê¤é¡¢¤½¤ì¤òÍѤ¤¤ë¡£ +が設定されていて、 +その内容が適切なディレクトリの名前なら、それを用いる。 .TP b) -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢ +それ以外の場合、 .I dir -°ú¤­¿ô¤¬ NULL ¤Ç¤Ê¤¤Ê¸»úÎó¤Ç¤«¤ÄŬÀڤʤ顢¤½¤ì¤òÍѤ¤¤ë¡£ +引き数が NULL でない文字列でかつ適切なら、それを用いる。 .TP c) -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢ +それ以外の場合、 .RI ( -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë) +で定義されている) .I P_tmpdir -¤¬Å¬Àڤʤ顢¤½¤ì¤òÍѤ¤¤ë¡£ +が適切なら、それを用いる。 .TP d) -ºÇ¸å¤Ë¼ÂÁõ¤ÇÄêµÁ¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤¬ÍѤ¤¤é¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ +最後に実装で定義されたディレクトリが用いられることになる。 .PP .BR tempnam () -¤¬ÊÖ¤¹Ê¸»úÎó¤Ï +が返す文字列は .BR malloc (3) -¤ò»È¤Ã¤Æ³ÎÊݤµ¤ì¤ë¡£¤½¤Î¤¿¤á¡¢ +を使って確保される。そのため、 .BR free (3) -¤Ç²òÊü¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +で解放すべきである。 +.SH 返り値 .BR tempnam () -´Ø¿ô¤Ï¾¤È½Å¤Ê¤é¤Ê¤¤¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë̾¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¾¤È½Å¤Ê¤é¤Ê¤¤Ì¾Á°¤¬À¸À®¤Ç¤­¤Ê¤±¤ì¤Ð NULL ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +関数は他と重ならないテンポラリファイル名へのポインタを返す。 +他と重ならない名前が生成できなければ NULL を返す。 +.SH エラー .TP .B ENOMEM -ÊݸÎΰè¤Î³ä¤êÅö¤Æ¤Ë¼ºÇÔ¤·¤¿¡£ -.SH ½àµò +保存領域の割り当てに失敗した。 +.SH 準拠 SVr4, 4.3BSD, POSIX.1-2001. -POSIX.1-2008 ¤Ï +POSIX.1-2008 は .BR tempnam () -¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£ -.SH Ãí°Õ +を廃止予定としている。 +.SH 注意 .BR tempnam () -¤Ï¿ä¬¤¬Æñ¤·¤¤Ì¾Á°¤òÀ¸À®¤¹¤ë¤¬¡¢¤½¤ì¤Ë¤â¤«¤«¤ï¤é¤º¡¢ +は推測が難しい名前を生成するが、それにもかかわらず、 .BR tempnam () -¤¬¥Ñ¥¹Ì¾¤òÊÖ¤·¤Æ¤«¤é¡¢¥×¥í¥°¥é¥à¤¬¤½¤Î¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë -¤Þ¤Ç¤Î´Ö¤Ë¡¢ÊÌ¤Î¥×¥í¥°¥é¥à¤¬Æ±¤¸¥Ñ¥¹Ì¾¤Ç¡¢¥Õ¥¡¥¤¥ë¤ò +がパス名を返してから、プログラムがそのファイルをオープンする +までの間に、別のプログラムが同じパス名で、ファイルを .BR open (2) -¤ÇºîÀ®¤·¤¿¤ê¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òºîÀ®¤·¤¿¤ê¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¤³¤ì¤Ï¥»¥­¥å¥ê¥Æ¥£¥Û¡¼¥ë¤Ë¤Ä¤Ê¤¬¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¤½¤Î¤è¤¦¤Ê²ÄǽÀ­¤ò²óÈò¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ +で作成したり、シンボリックリンクを作成したりする可能性がある。 +これはセキュリティホールにつながる可能性がある。 +そのような可能性を回避するためには、 .BR open (2) -¤Î +の .B O_EXCL -¥Õ¥é¥°¤ò»È¤Ã¤Æ¥Ñ¥¹Ì¾¤ò¥ª¡¼¥×¥ó¤¹¤ì¤Ð¤è¤¤¡£ -¤â¤Ã¤È¤¤¤¤¤Î¤Ï¡¢ +フラグを使ってパス名をオープンすればよい。 +もっといいのは、 .BR mkstemp (3) -¤ä +や .BR tmpfile (3) -¤ò»È¤¦¤³¤È¤Ç¤¢¤ë¡£ +を使うことである。 -SUSv2 ¤Ç¤Ï +SUSv2 では .B TMPDIR -¤ËÉÕ¤¤¤Æ¸ÀµÚ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -glibc ¤Ï¡¢¥×¥í¥°¥é¥à¤¬ set-user-ID ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¸Â¤Ã¤Æ¤³¤ì¤òÍѤ¤¤ë¡£ -SVr4 ¤Ç¤Ï \fBd)\fP ¤Ç»ÈÍѤµ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ò +に付いて言及されていない。 +glibc は、プログラムが set-user-ID されていない場合に限ってこれを用いる。 +SVr4 では \fBd)\fP で使用されるディレクトリを .I /tmp -¤ÈÄê¤á¤Æ¤¤¤ë (glibc ¤â¤³¤ÎÄ̤ê¤Ç¤¢¤ë)¡£ +と定めている (glibc もこの通りである)。 .LP -¥Ñ¥¹Ì¾¤òÊÖ¤¹¤Î¤Ë»ÈÍѤ¹¤ë¥á¥â¥ê¤òưŪ¤Ë³ÎÊݤ¹¤ë¤Î¤Ç¡¢ +パス名を返すのに使用するメモリを動的に確保するので、 .BR tmpnam (3) -¤È°ã¤¤¡¢ +と違い、 .BR tempnam () -¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤¢¤ê¡¢¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤¢¤ë¡£ +はリエントラントであり、スレッドセーフである。 .LP .BR tempnam () -´Ø¿ô¤ÏºÇÂç +関数は最大 .B TMP_MAX -²ó¤Þ¤Ç¡¢¸Æ¤Ó½Ð¤µ¤ì¤ëÅ٤˰ۤʤëʸ»úÎó¤òºîÀ®¤¹¤ë +回まで、呼び出される度に異なる文字列を作成する .RB ( TMP_MAX -¤Ï +は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ -¤â¤· +で定義されている)。 +もし .B TMP_MAX -²ó°Ê¾å¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¡¢Æ°ºî¤Ï¼ÂÁõ°Í¸¤Ç¤¢¤ë¡£ +回以上呼び出された場合、動作は実装依存である。 .LP .BR tempnam () -¤ÏºÇÂç¤Ç +は最大で .I pfx -¤ÎÀèƬ 5 ¥Ð¥¤¥È¤ò»ÈÍѤ¹¤ë¡£ +の先頭 5 バイトを使用する。 -¾¤È½Å¤Ê¤é¤Ê¤¤Ì¾Á°¤¬¸«¤Ä¤±¤é¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢glibc ¤Î +他と重ならない名前が見つけられなかった場合、glibc の .BR tempnam () -¤Î¼ÂÁõ¤Ï¥¨¥é¡¼ +の実装はエラー .B EEXIST -¤Ç¼ºÇÔ¤¹¤ë¡£ -.SH ¥Ð¥° -¡ÖŬÀڡפȤ¤¤¦¸ÀÍÕ¤ÎÀµ³Î¤Ê°ÕÌ£¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ·¤Æ¤É¤ÎÄøÅ٤Υ¢¥¯¥»¥¹¸¢¸Â¤¬É¬ÍפʤΤ«¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +で失敗する。 +.SH バグ +「適切」という言葉の正確な意味は定義されていない。 +ディレクトリに対してどの程度のアクセス権限が必要なのかは指定されていない。 -·è¤·¤Æ¤³¤Î´Ø¿ô¤ò»È¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£Âå¤ï¤ê¤Ë +決してこの関数を使ってはならない。代わりに .BR mkstemp (3) -¤« +か .BR tmpfile (3) -¤ò»È¤¦¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を使うこと。 +.SH 関連項目 .BR mkstemp (3), .BR mktemp (3), .BR tmpfile (3), diff --git a/release/man3/termios.3 b/release/man3/termios.3 index 2a6730b1..b9678070 100644 --- a/release/man3/termios.3 +++ b/release/man3/termios.3 @@ -50,20 +50,20 @@ .\" Updated 2007-05-01, Akihiro MOTOKI, LDP v2.46 .\" Updated 2007-09-06, Akihiro MOTOKI, LDP v2.64 .\" -.\"WORD: carriage return Éüµ¢(ʸ»ú) -.\"WORD: new line ²þ¹Ô(ʸ»ú) -.\"WORD: fill character ÊäŶʸ»ú -.\"WORD: horizontal tab ¿åÊ¿¥¿¥Ö -.\"WORD: backspace ¸åÂà(ʸ»ú) -.\"WORD: vertical tab ¿âľ¥¿¥Ö -.\"WORD: feature test macro µ¡Ç½¸¡ºº¥Þ¥¯¥í +.\"WORD: carriage return 復帰(文字) +.\"WORD: new line 改行(文字) +.\"WORD: fill character 補填文字 +.\"WORD: horizontal tab 水平タブ +.\"WORD: backspace 後退(文字) +.\"WORD: vertical tab 垂直タブ +.\"WORD: feature test macro 機能検査マクロ .\" .TH TERMIOS 3 2010-06-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 termios, tcgetattr, tcsetattr, tcsendbreak, tcdrain, tcflush, tcflow, cfmakeraw, cfgetospeed, cfgetispeed, cfsetispeed, cfsetospeed, cfsetspeed \- -¥¿¡¼¥ß¥Ê¥ë°À­¤Î¼èÆÀ¡¦ÀßÄê¡¢¥é¥¤¥óÀ©¸æ¡¢¥Ü¡¼¥ì¡¼¥È¤Î¼èÆÀ¡¦ÀßÄê -.SH ½ñ¼° +ターミナル属性の取得・設定、ライン制御、ボーレートの取得・設定 +.SH 書式 .nf .B #include .br @@ -96,22 +96,22 @@ cfmakeraw, cfgetospeed, cfgetispeed, cfsetispeed, cfsetospeed, cfsetspeed \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR cfsetspeed (), .BR cfmakeraw (): _BSD_SOURCE -.SH ÀâÌÀ -termios ´Ø¿ô·²¤Ï¡¢ÈóƱ´üÄÌ¿®¥Ý¡¼¥È¤òÀ©¸æ¤¹¤ë¤¿¤á¤ÎÈÆÍÑ -¥¿¡¼¥ß¥Ê¥ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ç¤¢¤ë¡£ -.SS "termios ¹½Â¤ÂÎ" +.SH 説明 +termios 関数群は、非同期通信ポートを制御するための汎用 +ターミナルインタフェースである。 +.SS "termios 構造体" .LP -¤³¤³¤Ë¼¨¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤Î¿¤¯¤Ï¡¢°ú¤­¿ô¤Ë \fItermios_p\fP ¤òÍѤ¤¤ë¡£ -¤³¤Î°ú¤­¿ô¤Ï \fItermios\fP ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤³¤Î¹½Â¤ÂΤˤϾ¯¤Ê¤¯¤È¤â°Ê²¼¤Ë¼¨¤¹¥á¥ó¥Ð¤¬´Þ¤Þ¤ì¤ë: +ここに示されている関数の多くは、引き数に \fItermios_p\fP を用いる。 +この引き数は \fItermios\fP 構造体へのポインタである。 +この構造体には少なくとも以下に示すメンバが含まれる: .sp .in +4n .nf @@ -123,628 +123,628 @@ cc_t c_cc[NCCS]; /* control chars */ .fi .in .PP -°Ê²¼¤Ë¡¢¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Ë³ä¤êÅö¤Æ²Äǽ¤ÊÃͤˤĤ¤¤ÆÀâÌÀ¤¹¤ë¡£ -ºÇ½é¤Î 4 ¤Ä¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¥Õ¥£¡¼¥ë¥É¤Ç¤Ï¡¢ -´Ø·¸¤¹¤ë¥Õ¥é¥°¤ÎÄêµÁ¤Î¤¤¤¯¤Ä¤«¤Ï¡¢ÆÃÄê¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í +以下に、これらのフィールドに割り当て可能な値について説明する。 +最初の 4 つのビットマスクフィールドでは、 +関係するフラグの定義のいくつかは、特定の機能検査マクロ .RB ( feature_test_macros (7) -»²¾È) ¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë¤Î¤ß¸ø³«¤µ¤ì¤ë¡£ -ɬÍפʵ¡Ç½¸¡ºº¥Þ¥¯¥í¤Ï³Ñ³ç¸Ì ("[]") Æâ¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ +参照) が定義された場合にのみ公開される。 +必要な機能検査マクロは角括弧 ("[]") 内に書かれている。 .PP -°Ê²¼¤ÎÀâÌÀ¤Ç¡¢ "POSIX ¤Ë¤Ï¤Ê¤¤" ¤Ï -¤½¤ÎÃͤ¬ POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò°ÕÌ£¤·¡¢ -"XSI" ¤Ï¤½¤ÎÃͤ¬ POSIX.1-2001 ¤Î XSI ³ÈÄ¥¤Ç -µ¬Äꤵ¤ì¤Æ¤¤¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +以下の説明で、 "POSIX にはない" は +その値が POSIX.1-2001 で規定されていないことを意味し、 +"XSI" はその値が POSIX.1-2001 の XSI 拡張で +規定されていることを意味する。 .PP -\fIc_iflag\fP ¥Õ¥é¥°¤Ë¤Ï°Ê²¼¤ÎÍ×ÁǤò»ØÄê¤Ç¤­¤ë: +\fIc_iflag\fP フラグには以下の要素を指定できる: .TP .B IGNBRK -ÆþÎÏÃæ¤Î BREAK ¿®¹æ¤ò̵»ë¤¹¤ë¡£ +入力中の BREAK 信号を無視する。 .TP .B BRKINT -\fBIGNBRK\fP ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢BREAK ¿®¹æ¤Ï̵»ë¤µ¤ì¤ë¡£ -\fBIGNBRK\fP ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢\fBBRKINT\fP ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ -BREAK ¿®¹æ¤Ë¤è¤Ã¤ÆÆþ½ÐÎÏ¥­¥å¡¼¤¬¥Õ¥é¥Ã¥·¥å¤µ¤ì¡¢ -¤µ¤é¤Ë¡¢Ã¼Ëö¤¬¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÎÀ©¸æüËö¤Î¾ì¹ç¤Ï¡¢ -¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë \fBSIGINT\fP ¤¬Á÷¤é¤ì¤ë¡£ -\fBIGNBRK\fP ¤â \fBBRKINT\fP ¤âÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -BREAK ¤ò NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤È¤·¤ÆÆɤ߹þ¤à¡£ -¤¿¤À¤·¡¢\fBPARMRK\fP ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï \\377 \\0 \\0 ¤Î¥·¡¼¥±¥ó¥¹¤È¤·¤Æ -Æɤ߹þ¤à¡£ +\fBIGNBRK\fP が設定されている場合は、BREAK 信号は無視される。 +\fBIGNBRK\fP が設定されていないが、\fBBRKINT\fP が設定されている場合は、 +BREAK 信号によって入出力キューがフラッシュされ、 +さらに、端末がフォアグラウンドプロセスグループの制御端末の場合は、 +フォアグラウンドプロセスグループに \fBSIGINT\fP が送られる。 +\fBIGNBRK\fP も \fBBRKINT\fP も設定されていない場合、 +BREAK を NULL バイト (\(aq\\0\(aq) として読み込む。 +ただし、\fBPARMRK\fP が設定されている場合は \\377 \\0 \\0 のシーケンスとして +読み込む。 .TP .B IGNPAR -¥Õ¥ì¡¼¥à¥¨¥é¡¼¤ª¤è¤Ó¥Ñ¥ê¥Æ¥£¥¨¥é¡¼¤ò̵»ë¤¹¤ë¡£ +フレームエラーおよびパリティエラーを無視する。 .TP .B PARMRK -\fBIGNPAR\fP ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¥Ñ¥ê¥Æ¥£¥¨¥é¡¼¤¢¤ë¤¤¤Ï¥Õ¥ì¡¼¥à¥¨¥é¡¼ -¤ÎȯÀ¸¤·¤¿Ê¸»ú¤ÎÁ°¤Ë \\377 \\0 ¤òÉղ乤롣\fBIGNPAR\fP ¤â \fBPARMRK\fP ¤â -ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¥Ñ¥ê¥Æ¥£¥¨¥é¡¼¤¢¤ë¤¤¤Ï¥Õ¥ì¡¼¥à¥¨¥é¡¼¤ÎȯÀ¸¤·¤¿Ê¸»ú¤ò -\\0 ¤È¤·¤ÆÆɤ߹þ¤à¡£ +\fBIGNPAR\fP が設定されていない場合、パリティエラーあるいはフレームエラー +の発生した文字の前に \\377 \\0 を付加する。\fBIGNPAR\fP も \fBPARMRK\fP も +設定されていない場合、パリティエラーあるいはフレームエラーの発生した文字を +\\0 として読み込む。 .TP .B INPCK -ÆþÎϤΥѥê¥Æ¥£¥Á¥§¥Ã¥¯¤òÍ­¸ú¤Ë¤¹¤ë¡£ +入力のパリティチェックを有効にする。 .TP .B ISTRIP -8 ¥Ó¥Ã¥ÈÌܤòÍî¤È¤¹¡£ +8 ビット目を落とす。 .TP .B INLCR -ÆþÎϤΠNL (New Line: ²þ¹Ôʸ»ú) ¤ò CR (Carriage Return: Éüµ¢Ê¸»ú) ¤Ë -ÃÖ¤­´¹¤¨¤ë¡£ +入力の NL (New Line: 改行文字) を CR (Carriage Return: 復帰文字) に +置き換える。 .TP .B IGNCR -ÆþÎϤΠCR ¤ò̵»ë¤¹¤ë¡£ +入力の CR を無視する。 .TP .B ICRNL -(\fBIGNCR\fP ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç) ÆþÎϤΠCR ¤ò NL ¤ËÃÖ¤­´¹¤¨¤ë¡£ +(\fBIGNCR\fP が設定されていない場合) 入力の CR を NL に置き換える。 .TP .B IUCLC -(POSIX ¤Ë¤Ï¤Ê¤¤) ÆþÎϤÎÂçʸ»ú¤ò¾®Ê¸»ú¤ËÃÖ¤­´¹¤¨¤ë¡£ +(POSIX にはない) 入力の大文字を小文字に置き換える。 .TP .B IXON -½ÐÎϤΠXON/XOFF ¥Õ¥í¡¼À©¸æ¤òÍ­¸ú¤Ë¤¹¤ë¡£ +出力の XON/XOFF フロー制御を有効にする。 .TP .B IXANY -(XSI) Ǥ°Õ¤Îʸ»ú¤òÆþÎϤ¹¤ë¤È¡¢Ää»ß¤·¤Æ¤¤¤¿½ÐÎϤòºÆ³«¤¹¤ë -(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢START ʸ»ú¤Ç¤Î¤ß½ÐÎϤ¬ºÆ³«¤µ¤ì¤ë)¡£ +(XSI) 任意の文字を入力すると、停止していた出力を再開する +(デフォルトでは、START 文字でのみ出力が再開される)。 .TP .B IXOFF -ÆþÎϤΠXON/XOFF ¥Õ¥í¡¼À©¸æ¤òÍ­¸ú¤Ë¤¹¤ë¡£ +入力の XON/XOFF フロー制御を有効にする。 .TP .B IMAXBEL -(POSIX ¤Ë¤Ï¤Ê¤¤) ÆþÎÏ¥­¥å¡¼¤¬°ìÇդλþ¤Ë¥Ù¥ë¤òÌĤ餹¡£ -Linux ¤Ç¤Ï¤³¤Î¥Ó¥Ã¥È¤Ï¼ÂÁõ¤µ¤ì¤Æ¤ª¤é¤º¡¢ -¾ï¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤«¤Î¤è¤¦¤Ë¿¶Éñ¤¦¡£ -.TP -.BR IUTF8 " (Linux 2.6.4 °Ê¹ß)" -(POSIX ¤Ë¤Ï¤Ê¤¤) ÆþÎϤ¬ UTF8 ¤Ç¤¢¤ë; -¤³¤ì¤Ë¤è¤ê cooked mode ¤Çʸ»úºï½ü (character-erase) ¤ò -Àµ¤·¤¯µ¡Ç½¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +(POSIX にはない) 入力キューが一杯の時にベルを鳴らす。 +Linux ではこのビットは実装されておらず、 +常にセットされているかのように振舞う。 +.TP +.BR IUTF8 " (Linux 2.6.4 以降)" +(POSIX にはない) 入力が UTF8 である; +これにより cooked mode で文字削除 (character-erase) を +正しく機能させることができる。 .PP -POSIX.1 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë \fIc_oflag\fP ¥Õ¥é¥°¤ò°Ê²¼¤Ë¼¨¤¹: +POSIX.1 で定義されている \fIc_oflag\fP フラグを以下に示す: .TP .B OPOST -¼ÂÁõ¤Ë°Í¸¤·¤¿½ÐÎϽèÍý¤òÍ­¸ú¤Ë¤¹¤ë¡£ +実装に依存した出力処理を有効にする。 .PP -»Ä¤ê¤Î \fIc_oflag\fP ¥Õ¥é¥°¤Ï¡¢Æõ­¤Î¤Ê¤¤¸Â¤ê POSIX.1-2001 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +残りの \fIc_oflag\fP フラグは、特記のない限り POSIX.1-2001 で定義されている。 .TP .B OLCUC -(POSIX ¤Ë¤Ï¤Ê¤¤) ½ÐÎÏ»þ¤Ë¾®Ê¸»ú¤òÂçʸ»ú¤ËÊÑ´¹¤¹¤ë¡£ +(POSIX にはない) 出力時に小文字を大文字に変換する。 .TP .B ONLCR -(XSI) ½ÐÎϤΠNL ¤ò CR-NL ¤ËÃÖ¤­´¹¤¨¤ë¡£ +(XSI) 出力の NL を CR-NL に置き換える。 .TP .B OCRNL -½ÐÎϤΠCR ¤ò NL ¤ËÃÖ¤­´¹¤¨¤ë¡£ +出力の CR を NL に置き換える。 .TP .B ONOCR -0 ·åÌÜ¤Ç CR ¤ò½ÐÎϤ·¤Ê¤¤¡£ +0 桁目で CR を出力しない。 .TP .B ONLRET -CR ¤ò½ÐÎϤ·¤Ê¤¤¡£ +CR を出力しない。 .TP .B OFILL -žÁ÷»þ´Ö¤òÃ٤餻¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ÊäŶʸ»ú (fill character) ¤òÁ÷¤ë¡£ -(ÌõÃí:ÆÃÄê¤Îʸ»ú¤ËÂФ·¤Æ¡¢Ã¼Ëö¦¤Î½èÍý¤òÂԤĤ¿¤á¤ËžÁ÷¤ò°ìÄê»þ´Ö -Ã٤餻¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤Þ¤¿¡¢ \fBOFILL\fP ¤ò»ØÄꤹ¤ë¤È -žÁ÷¤òÃ٤餻¤ëÂå¤ï¤ê¤ËÊäŶʸ»ú¤òÁ÷¤ë¡£) +転送時間を遅らせるのではなく、補填文字 (fill character) を送る。 +(訳注:特定の文字に対して、端末側の処理を待つために転送を一定時間 +遅らせることができる。また、 \fBOFILL\fP を指定すると +転送を遅らせる代わりに補填文字を送る。) .TP .B OFDEL -(POSIX ¤Ë¤Ï¤Ê¤¤) ÊäŶʸ»ú¤ò ASCII DEL ¤Ë¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï ASCII NUL (\(aq\\0\(aq) ¤Ë¤Ê¤ë¡£ -(Linux ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤) +(POSIX にはない) 補填文字を ASCII DEL にする。 +このフラグが設定されていない場合は ASCII NUL (\(aq\\0\(aq) になる。 +(Linux では実装されていない) .TP .B NLDLY -NL ¤ÎÃÙ±ä¤òÀßÄꤹ¤ë¡£ÃÍ¤Ï \fBNL0\fP (ÃÙ±ä¤Ê¤·) ¤ª¤è¤Ó \fBNL1\fP ¤Ç¤¢¤ë¡£ +NL の遅延を設定する。値は \fBNL0\fP (遅延なし) および \fBNL1\fP である。 .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤« +か .B _XOPEN_SOURCE -¤¬É¬Í×] +が必要] .TP .B CRDLY -CR ¤ÎÃÙ±ä¤òÀßÄꤹ¤ë¡£ÃÍ¤Ï \fBCR0\fP (ÃÙ±ä¤Ê¤·), -\fBCR1\fP, \fBCR2\fP,\fBCR3\fP ¤Ç¤¢¤ë¡£ +CR の遅延を設定する。値は \fBCR0\fP (遅延なし), +\fBCR1\fP, \fBCR2\fP,\fBCR3\fP である。 .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤« +か .B _XOPEN_SOURCE -¤¬É¬Í×] +が必要] .TP .B TABDLY -¿åÊ¿¥¿¥Ö (horizontal tab) ¤ÎÃÙ±ä¤òÀßÄꤹ¤ë¡£ -ÃÍ¤Ï \fBTAB0\fP (ÃÙ±ä¤Ê¤·), -\fBTAB1\fP, \fBTAB2\fP, \fBTAB3\fP (\fBXTABS\fP) ¤Ç¤¢¤ë¡£ +水平タブ (horizontal tab) の遅延を設定する。 +値は \fBTAB0\fP (遅延なし), +\fBTAB1\fP, \fBTAB2\fP, \fBTAB3\fP (\fBXTABS\fP) である。 .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤« +か .B _XOPEN_SOURCE -¤¬É¬Í×] -XTAB3 (¤³¤ì¤Ï XTABS ¤ÈƱ¤¸¤Ç¤¢¤ë) ¤ÎÃͤϥ¿¥Ö¤ò¥¹¥Ú¡¼¥¹²¿¸Ä¤ËÊÑ´¹¤¹¤ë¤«¤ò¼¨¤¹ -(¥¿¥Ö¤Ï 8 ·åËè¤Ë»ß¤Þ¤ë)¡£ +が必要] +XTAB3 (これは XTABS と同じである) の値はタブをスペース何個に変換するかを示す +(タブは 8 桁毎に止まる)。 .TP .B BSDLY -¸åÂà (backspace) ¤ÎÃÙ±ä¤òÀßÄꤹ¤ë¡£ -ÃÍ¤Ï \fBBS0\fP (ÃÙ±ä¤Ê¤·) ¤¢¤ë¤¤¤Ï \fBBS1\fP ¤Ç¤¢¤ë¡£ -(¼ÂÁõ¤µ¤ì¤¿¤³¤È¤Ï¤Ê¤¤) +後退 (backspace) の遅延を設定する。 +値は \fBBS0\fP (遅延なし) あるいは \fBBS1\fP である。 +(実装されたことはない) .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤« +か .B _XOPEN_SOURCE -¤¬É¬Í×] +が必要] .TP .B VTDLY -¿âľ¥¿¥Ö (vertical tab) ¤ÎÃÙ±ä¤òÀßÄꤹ¤ë¡£ -ÃÍ¤Ï \fBVT0\fP (ÃÙ±ä¤Ê¤·) ¤¢¤ë¤¤¤Ï \fBVT1\fP ¤Ç¤¢¤ë¡£ +垂直タブ (vertical tab) の遅延を設定する。 +値は \fBVT0\fP (遅延なし) あるいは \fBVT1\fP である。 .TP .B FFDLY -ÊÇÁ÷¤ê (form feed) ¤ÎÃÙ±ä¤òÀßÄꤹ¤ë¡£ -ÃÍ¤Ï \fBFF0\fP (ÃÙ±ä¤Ê¤·) ¤¢¤ë¤¤¤Ï \fBFF1\fP ¤Ç¤¢¤ë¡£ +頁送り (form feed) の遅延を設定する。 +値は \fBFF0\fP (遅延なし) あるいは \fBFF1\fP である。 .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤« +か .B _XOPEN_SOURCE -¤¬É¬Í×] +が必要] .PP -\fIc_cflag\fP ¥Õ¥é¥°¤Ï°Ê²¼¤ÎÄ̤ê: +\fIc_cflag\fP フラグは以下の通り: .TP .B CBAUD -(POSIX ¤Ë¤Ï¤Ê¤¤) ¥Ü¡¼¥ì¡¼¥È¥Þ¥¹¥¯ (4+1 ¥Ó¥Ã¥È)¡£ +(POSIX にはない) ボーレートマスク (4+1 ビット)。 .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤¬É¬Í×] +が必要] .TP .B CBAUDEX -(POSIX ¤Ë¤Ï¤Ê¤¤) ÄɲäΥܡ¼¥ì¡¼¥È¥Þ¥¹¥¯ (1 ¥Ó¥Ã¥È)¡£ +(POSIX にはない) 追加のボーレートマスク (1 ビット)。 .B CBAUD -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +に含まれている。 .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤¬É¬Í×] +が必要] .sp -(POSIX ¤Ç¤Ï¡¢ +(POSIX では、 .I termios -¹½Â¤ÂΤ˳ÊǼ¤µ¤ì¤¿¥Ü¡¼¥ì¡¼¥È¤ÏÀµ³Î¤Ê¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢ -¥Ü¡¼¥ì¡¼¥È¤òÁàºî¤¹¤ë¤¿¤á¤Ë +構造体に格納されたボーレートは正確なものではなく、 +ボーレートを操作するために .BR cfgetispeed () -¤È +と .BR cfsetispeed () -¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¡£ +が提供されている。 .I c_cflag -Æâ¤Î +内の .B CBAUD -¤ÇÁªÂò¤µ¤ì¤¿¥Ó¥Ã¥È¤ò»È¤¦¥·¥¹¥Æ¥à¤â¤¢¤ì¤Ð¡¢ +で選択されたビットを使うシステムもあれば、 .I sg_ispeed -¤ä +や .I sg_ospeed -¤È¤¤¤Ã¤¿ÆÈΩ¤·¤¿¥Õ¥£¡¼¥ë¥É¤ò»È¤¦¤â¤Î¤â¤¢¤ë¡£) +といった独立したフィールドを使うものもある。) .TP .B CSIZE -ʸ»ú¥µ¥¤¥º¤òÀßÄꤹ¤ë¡£ -ÃÍ¤Ï \fBCS5\fP, \fBCS6\fP, \fBCS7\fP, \fBCS8\fP ¤Ç¤¢¤ë¡£ +文字サイズを設定する。 +値は \fBCS5\fP, \fBCS6\fP, \fBCS7\fP, \fBCS8\fP である。 .TP .B CSTOPB -¥¹¥È¥Ã¥×¥Ó¥Ã¥È¤ò 1 ¤Ç¤Ï¤Ê¤¯ 2 ¤Ë¤¹¤ë¡£ +ストップビットを 1 ではなく 2 にする。 .TP .B CREAD -¼õ¿®¤òÍ­¸ú¤Ë¤¹¤ë¡£ +受信を有効にする。 .TP .B PARENB -½ÐÎϤ˥ѥê¥Æ¥£¤òÉղä·¡¢ÆþÎϤΥѥê¥Æ¥£¥Á¥§¥Ã¥¯¤ò¹Ô¤¦¡£ +出力にパリティを付加し、入力のパリティチェックを行う。 .TP .B PARODD -ÀßÄꤵ¤ì¤ë¤È¡¢ÆþÎϤª¤è¤Ó½ÐÎϤËÂФ¹¤ë¥Ñ¥ê¥Æ¥£¤¬´ñ¿ô¥Ñ¥ê¥Æ¥£¤È¤Ê¤ë¡£ -ÀßÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢¶ö¿ô¥Ñ¥ê¥Æ¥£¤¬»ÈÍѤµ¤ì¤ë¡£ +設定されると、入力および出力に対するパリティが奇数パリティとなる。 +設定されない場合、偶数パリティが使用される。 .TP .B HUPCL -ºÇ¸å¤Î¥×¥í¥»¥¹¤¬¥Ç¥Ð¥¤¥¹¤ò¥¯¥í¡¼¥º¤·¤¿¸å¡¢¥â¥Ç¥à¤ÎÀ©¸æÀþ¤ò low ¤Ë¤¹¤ë -(ÀÚÃǤ¹¤ë)¡£ +最後のプロセスがデバイスをクローズした後、モデムの制御線を low にする +(切断する)。 .TP .B CLOCAL -¥â¥Ç¥à¤ÎÀ©¸æÀþ¤ò̵»ë¤¹¤ë¡£ +モデムの制御線を無視する。 .TP .B LOBLK -(POSIX ¤Ë¤Ï¤Ê¤¤) ¸½ºß¤Î¥·¥§¥ëÁذʳ°¤«¤é¤Î½ÐÎϤòÍÞÀ©¤¹¤ë¡£ - \fBshl\fP (¥·¥§¥ëÁØ) ¤ÇÍѤ¤¤é¤ì¤ë¡£(Linux ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤) +(POSIX にはない) 現在のシェル層以外からの出力を抑制する。 + \fBshl\fP (シェル層) で用いられる。(Linux では実装されていない) .TP .B CIBAUD -(POSIX ¤Ë¤Ï¤Ê¤¤) ÆþÎÏ®Å٤Υޥ¹¥¯¡£ +(POSIX にはない) 入力速度のマスク。 .B CIBAUD -¥Ó¥Ã¥È¤Î¤¿¤á¤ÎÃÍ¤Ï +ビットのための値は .B CBAUD -¥Ó¥Ã¥È¤Î¤¿¤á¤ÎÃͤÈƱ¤¸¤Ç¤¢¤ê¡¢ -º¸¤Ë +ビットのための値と同じであり、 +左に .B IBSHIFT -¥Ó¥Ã¥È¥·¥Õ¥È¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +ビットシフトしたものである。 .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤¬É¬Í×] -(Linux ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤) +が必要] +(Linux では実装されていない) .TP .B CMSPAR -(POSIX ¤Ë¤Ï¤Ê¤¤) -(°ìÉô¤Î¥·¥ê¥¢¥ë¥Ç¥Ð¥¤¥¹¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë) -¡Ö¥¹¥Æ¥£¥Ã¥¯ (stick)¡×¥Ñ¥ê¥Æ¥£ (¥Þ¡¼¥¯/¥¹¥Ú¡¼¥¹ ¥Ñ¥ê¥Æ¥£)¤ò»ÈÍѤ¹¤ë¡£ +(POSIX にはない) +(一部のシリアルデバイスでサポートされている) +「スティック (stick)」パリティ (マーク/スペース パリティ)を使用する。 .B PARODD -¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¥Ñ¥ê¥Æ¥£¥Ó¥Ã¥È¤Ï¾ï¤Ë 1 ¤È¤Ê¤ê¡¢ -ÀßÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï¾ï¤Ë 0 ¤È¤Ê¤ë¡£ +が設定された場合パリティビットは常に 1 となり、 +設定されない場合は常に 0 となる。 .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤¬É¬Í×] +が必要] .TP .B CRTSCTS -(POSIX ¤Ë¤Ï¤Ê¤¤) RTS/CTS (¥Ï¡¼¥É¥¦¥§¥¢) ¥Õ¥í¡¼À©¸æ¤òÍ­¸ú¤Ë¤¹¤ë¡£ +(POSIX にはない) RTS/CTS (ハードウェア) フロー制御を有効にする。 .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤¬É¬Í×] +が必要] .PP -\fIc_lflag\fP ¥Õ¥é¥°¤Ï°Ê²¼¤ÎÄ̤ê: +\fIc_lflag\fP フラグは以下の通り: .TP .B ISIG -INTR, QUIT, SUSP, DSUSP ¤Îʸ»ú¤ò¼õ¿®¤·¤¿»þ¡¢Âбþ¤¹¤ë¥·¥°¥Ê¥ë¤ò -ȯÀ¸¤µ¤»¤ë¡£ +INTR, QUIT, SUSP, DSUSP の文字を受信した時、対応するシグナルを +発生させる。 .TP .B ICANON -¥«¥Î¥Ë¥«¥ë¥â¡¼¥É¤òÍ­¸ú¤Ë¤¹¤ë (²¼µ­»²¾È)¡£ +カノニカルモードを有効にする (下記参照)。 .TP .B XCASE -(POSIX ¤Ë¤Ï¤Ê¤¤; Linux ¤Ç¤ÏÂбþ¤·¤Æ¤¤¤Ê¤¤) -\fBICANON\fP ¤¬Æ±»þ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢Ã¼Ëö¤ÏÂçʸ»ú¤Î¤ß¤¬Í­¸ú¤Ç¤¢¤ë¡£ -ÆþÎϤµ¤ì¤¿Ê¸»ú¤Ï \\ ¤¬ÉÕ¤¤¤¿Ê¸»ú¤ò½ü¤¤¤Æ¾®Ê¸»ú¤ËÊÑ´¹¤µ¤ì¤ë¡£ -½ÐÎÏ»þ¤Ï¡¢Âçʸ»ú¤ÎÁ°¤Ë \\ ¤¬ÉÕ¤­¡¢¾®Ê¸»ú¤ÏÂçʸ»ú¤ËÊÑ´¹¤µ¤ì¤ë¡£ +(POSIX にはない; Linux では対応していない) +\fBICANON\fP が同時に設定された場合、端末は大文字のみが有効である。 +入力された文字は \\ が付いた文字を除いて小文字に変換される。 +出力時は、大文字の前に \\ が付き、小文字は大文字に変換される。 .RB [ _BSD_SOURCE -¤¬ +が .B _SVID_SOURCE -¤« +か .B _XOPEN_SOURCE -¤¬É¬Í×] -.\" °Ê²¼¤Ï¤ª¤½¤é¤¯ glibc ¤Î´Ö°ã¤¤¤Ç¤¢¤í¤¦¡£ +が必要] +.\" 以下はおそらく glibc の間違いであろう。 .\" .B XCASE -.\" ¤ò¸ø³«¤¹¤ë¤Ë¤Ï +.\" を公開するには .\" .B _XOPEN_SOURCE -.\" ¤òÄêµÁ¤¹¤ë¤³¤È¡£ +.\" を定義すること。 .TP .B ECHO -ÆþÎϤµ¤ì¤¿Ê¸»ú¤ò¥¨¥³¡¼¤¹¤ë¡£ +入力された文字をエコーする。 .TP .B ECHOE -\fBICANON\fP ¤âƱ»þ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ERASE ʸ»ú¤ÏÁ°¤Îʸ»ú¤òºï½ü¤·¡¢ -WERASE ʸ»ú¤ÏÁ°¤Îñ¸ì¤òºï½ü¤¹¤ë¡£ +\fBICANON\fP も同時に設定された場合、ERASE 文字は前の文字を削除し、 +WERASE 文字は前の単語を削除する。 .TP .B ECHOK -\fBICANON\fP ¤âƱ»þ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢KILL ʸ»ú¤Ï¸½ºß¤Î¹Ô¤òºï½ü¤¹¤ë¡£ +\fBICANON\fP も同時に設定された場合、KILL 文字は現在の行を削除する。 .TP .B ECHONL -\fBICANON\fP ¤âƱ»þ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ -ECHO ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¯¤Æ¤â NL ʸ»ú¤ò¥¨¥³¡¼¤¹¤ë¡£ +\fBICANON\fP も同時に設定された場合、 +ECHO が設定されていなくても NL 文字をエコーする。 .TP .B ECHOCTL -(POSIX ¤Ë¤Ï¤Ê¤¤) \fBECHO\fP ¤âƱ»þ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ -TAB, NL, START, STOP ¤Î ASCII À©¸æʸ»ú¤¬ \fB^X\fP ¤È¤·¤Æ¥¨¥³¡¼¤µ¤ì¤ë¡£ -X ¤ÏÀ©¸æʸ»ú¤è¤ê ASCII ¥³¡¼¥É¤Ç 0x10 ¤À¤±Â礭¤Êʸ»ú¤Ç¤¢¤ë¡£ -Î㤨¤Ðʸ»ú 0x28 (BS) ¤Ï \fB^H\fP ¤È¥¨¥³¡¼¤µ¤ì¤ë¡£ +(POSIX にはない) \fBECHO\fP も同時に設定された場合、 +TAB, NL, START, STOP の ASCII 制御文字が \fB^X\fP としてエコーされる。 +X は制御文字より ASCII コードで 0x10 だけ大きな文字である。 +例えば文字 0x28 (BS) は \fB^H\fP とエコーされる。 .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤¬É¬Í×] +が必要] .TP .B ECHOPRT -(POSIX ¤Ë¤Ï¤Ê¤¤) \fBICANON\fP ¤ª¤è¤Ó \fBIECHO\fP ¤¬Æ±»þ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -ºï½ü¤µ¤ì¤¿Ê¸»ú¤âɽ¼¨¤µ¤ì¤ë¡£ +(POSIX にはない) \fBICANON\fP および \fBIECHO\fP が同時に設定されている場合、 +削除された文字も表示される。 .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤¬É¬Í×] +が必要] .TP .B ECHOKE -(POSIX ¤Ë¤Ï¤Ê¤¤) \fBICANON\fP ¤âÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ -KILL ¤¬¹Ô¤Î³Æʸ»ú¤ò¾Ãµî¤¹¤ëÂå¤ï¤ê¤Ë¥¨¥³¡¼¤µ¤ì¤ë¡£ -¤³¤ì¤Ï \fBECHOE\fP ¤ª¤è¤Ó \fBECHOPRT\fP ¤ò»ØÄꤹ¤ë¤³¤È¤ÈÅù¤·¤¤¡£ +(POSIX にはない) \fBICANON\fP も設定された場合、 +KILL が行の各文字を消去する代わりにエコーされる。 +これは \fBECHOE\fP および \fBECHOPRT\fP を指定することと等しい。 .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤¬É¬Í×] +が必要] .TP .B DEFECHO -(POSIX ¤Ë¤Ï¤Ê¤¤) ¥×¥í¥»¥¹¤¬Æɤ߹þ¤ó¤À¤È¤­¤Ë¤À¤±¥¨¥³¡¼¤¹¤ë¡£ -(Linux ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤) +(POSIX にはない) プロセスが読み込んだときにだけエコーする。 +(Linux では実装されていない) .TP .B FLUSHO -(POSIX ¤Ë¤Ï¤Ê¤¤; Linux ¤Ç¤ÏÂбþ¤·¤Æ¤¤¤Ê¤¤) -½ÐÎϤò¥Õ¥é¥Ã¥·¥å¤¹¤ë¡£¤³¤Î¥Õ¥é¥°¤Ï DISCARD ʸ»ú¤òÆþÎϤ¹¤ë¤³¤È¤ÇÀÚÂؤ¨¤é¤ì¤ë¡£ +(POSIX にはない; Linux では対応していない) +出力をフラッシュする。このフラグは DISCARD 文字を入力することで切替えられる。 .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤¬É¬Í×] +が必要] .TP .B NOFLSH .\" Stevens lets SUSP only flush the input queue -INT, QUIT, SUSP ʸ»ú¤ËÂбþ¤¹¤ë¥·¥°¥Ê¥ë¤òȯÀ¸¤¹¤ëºÝ¤Î -ÆþÎÏ¡¦½ÐÎÏ¥­¥å¡¼¤Î¥Õ¥é¥Ã¥·¥å¤ò̵¸ú¤Ë¤¹¤ë¡£ +INT, QUIT, SUSP 文字に対応するシグナルを発生する際の +入力・出力キューのフラッシュを無効にする。 .TP .B TOSTOP -¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÇÀ©¸æüËö¤Ø -ʸ»ú¤ò½ÐÎϤ·¤è¤¦¤È¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤ËÂФ·¤Æ +バックグラウンドプロセスのプロセスグループで制御端末へ +文字を出力しようとしているプロセスに対して .B SIGTTOU -¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +シグナルを送る。 .TP .B PENDIN -(POSIX ¤Ë¤Ï¤Ê¤¤; Linux ¤Ç¤ÏÂбþ¤·¤Æ¤¤¤Ê¤¤) -¼¡¤Îʸ»ú¤òÆɤ߹þ¤ó¤À»þ¡¢ÆþÎÏ¥­¥å¡¼Ãæ¤ÎÁ´Ê¸»ú¤òºÆɽ¼¨¤¹¤ë¡£ +(POSIX にはない; Linux では対応していない) +次の文字を読み込んだ時、入力キュー中の全文字を再表示する。 .RB ( bash (1) -¤ÏÆþÎϹԤò¤³¤Î¤è¤¦¤Ë½èÍý¤·¤Æ¤¤¤ë¡£) +は入力行をこのように処理している。) .RB [ _BSD_SOURCE -¤« +か .B _SVID_SOURCE -¤¬É¬Í×] +が必要] .TP .B IEXTEN -¼ÂÁõ°Í¸¤ÎÆþÎϽèÍý¤òÍ­¸ú¤Ë¤¹¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï¡¢Æüìʸ»ú¤Ç¤¢¤ë EOL2, LNEXT, REPRINT, WERASE ¤ä¡¢ -\fBIUCLC\fP ¥Õ¥é¥°¤òÍ­¸ú¤Ë¤¹¤ë¤¿¤á¤ËɬÍפǤ¢¤ë¡£ +実装依存の入力処理を有効にする。 +このフラグは、特殊文字である EOL2, LNEXT, REPRINT, WERASE や、 +\fBIUCLC\fP フラグを有効にするために必要である。 .PP -\fIc_cc\fP ÇÛÎó¤ÏÆüì¤ÊÀ©¸æʸ»ú¤òÄêµÁ¤·¤Æ¤¤¤ë¡£ -¥·¥ó¥Ü¥ë¤Î°ìÍ÷ (½é´üÃÍ) ¤È°ÕÌ£¤Ï°Ê²¼¤ÎÄ̤ꡣ +\fIc_cc\fP 配列は特殊な制御文字を定義している。 +シンボルの一覧 (初期値) と意味は以下の通り。 .TP .B VINTR -(003, ETX, Ctrl-C ¤« 0177, DEL, rubout) -³ä¤ê¹þ¤ßʸ»ú¡£ +(003, ETX, Ctrl-C か 0177, DEL, rubout) +割り込み文字。 .B SIGINT -¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +シグナルを送る。 .B ISIG -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£ +がセットされている場合に認識し、入力には渡されない。 .TP .B VQUIT (034, FS, Ctrl-\e) -½ªÎ»Ê¸»ú¡£ +終了文字。 .B SIGQUIT -¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +シグナルを送る。 .B ISIG -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£ +がセットされている場合に認識し、入力には渡されない。 .TP .B VERASE -(0177, DEL, rubout ¤« 010, BS, Ctrl-H ¤« #) -¾Ãµîʸ»ú¡£¤³¤ì¤Ë¤è¤ê¡¢Ä¾Á°¤Î̤¾Ãµîʸ»ú¤ò¾Ãµî¤¹¤ë¡£ -¤·¤«¤·¡¢EOF ¤ä¹ÔƬ¤òĶ¤¨¤Æ¤Ï¾Ãµî¤·¤Ê¤¤¡£ +(0177, DEL, rubout か 010, BS, Ctrl-H か #) +消去文字。これにより、直前の未消去文字を消去する。 +しかし、EOF や行頭を超えては消去しない。 .B ICANON -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£ +がセットされている場合に認識し、入力には渡されない。 .TP .B VKILL -(025, NAK, Ctrl-U ¤« Ctrl-X ¤« @) -´°Á´¾Ãµîʸ»ú¡£Ä¾Á°¤Î EOF ¤«¹ÔƬ°Ê¹ß¤ÎÁ´¤Æ¤ÎÆþÎϤò¾Ãµî¤¹¤ë¡£ +(025, NAK, Ctrl-U か Ctrl-X か @) +完全消去文字。直前の EOF か行頭以降の全ての入力を消去する。 .B ICANON -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£ +がセットされている場合に認識し、入力には渡されない。 .TP .B VEOF (004, EOT, Ctrl-D) -¥Õ¥¡¥¤¥ë½ªÃ¼Ê¸»ú¡£ -¤è¤êÀµ³Î¤Ë¤Ï¡¢tty ¥Ð¥Ã¥Õ¥¡¤ÎÆâÍƤò¹ÔËö¤òÂÔ¤¿¤º¤Ë¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥à¤ËÁ÷¤ë¡£ -¤³¤ì¤¬¹Ô¤ÎºÇ½é¤Îʸ»ú¤À¤Ã¤¿¾ì¹ç¡¢¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥à¤Î +ファイル終端文字。 +より正確には、tty バッファの内容を行末を待たずにユーザープログラムに送る。 +これが行の最初の文字だった場合、ユーザープログラムの .BR read (2) -¤Ï 0 ¤ò -ÊÖ¤·¡¢¥Õ¥¡¥¤¥ë½ªÃ¼¤Ç¤¢¤ë¤³¤È¤òÃΤ餻¤ë¡£ +は 0 を +返し、ファイル終端であることを知らせる。 .B ICANON -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£ +がセットされている場合に認識し、入力には渡されない。 .TP .B VMIN -È󥫥Υ˥«¥ëÆɤ߹þ¤ß»þ¤ÎºÇ¾®Ê¸»ú¿ô¡£ +非カノニカル読み込み時の最小文字数。 .TP .B VEOL (0, NUL) -ÄɲäιÔËöʸ»ú¡£ +追加の行末文字。 .B ICANON -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤¹¤ë¡£ +がセットされている場合に認識する。 .TP .B VTIME -È󥫥Υ˥«¥ëÆɤ߹þ¤ß»þ¤Î¥¿¥¤¥à¥¢¥¦¥È»þ´Ö (1/10 ÉÃñ°Ì)¡£ +非カノニカル読み込み時のタイムアウト時間 (1/10 秒単位)。 .TP .B VEOL2 -(POSIX ¤Ë¤Ï¤Ê¤¤; 0, NUL) -ÄɲäιÔËöʸ»ú¡£ +(POSIX にはない; 0, NUL) +追加の行末文字。 .B ICANON -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤¹¤ë¡£ +がセットされている場合に認識する。 .TP .B VSWTCH -(POSIX ¤Ë¤Ï¤Ê¤¤; Linux ¤Ç¤ÏÂбþ¤·¤Æ¤¤¤Ê¤¤; 0, NUL) -¥¹¥¤¥Ã¥Áʸ»ú (\fBshl\fP ¤Ç¤Î¤ßÍѤ¤¤é¤ì¤ë)¡£ +(POSIX にはない; Linux では対応していない; 0, NUL) +スイッチ文字 (\fBshl\fP でのみ用いられる)。 .TP .B VSTART (021, DC1, Ctrl-Q) -³«»Ïʸ»ú¡£Ää»ßʸ»ú¤ÇÄä»ß¤·¤¿½ÐÎϤòºÆ³«¤¹¤ë¡£ +開始文字。停止文字で停止した出力を再開する。 .B IXON -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£ +がセットされている場合に認識し、入力には渡されない。 .TP .B VSTOP (023, DC3, Ctrl-S) -Ää»ßʸ»ú¡£³«»Ïʸ»ú¤¬ÆþÎϤµ¤ì¤ë¤Þ¤Ç½ÐÎϤòÄä»ß¤¹¤ë¡£ +停止文字。開始文字が入力されるまで出力を停止する。 .B IXON -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£ +が設定されている場合に認識し、入力には渡されない。 .TP .B VSUSP (032, SUB, Ctrl-Z) -ÃæÃÇʸ»ú¡£ +中断文字。 .B SIGTSTP -¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +シグナルを送る。 .B ISIG -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£ +がセットされている場合に認識し、入力には渡されない。 .TP .B VDSUSP -(POSIX ¤Ë¤Ï¤Ê¤¤; Linux ¤Ç¤ÏÂбþ¤·¤Æ¤¤¤Ê¤¤; 031, EM, Ctrl-Y) -ÃÙ±äÃæÃÇʸ»ú¡£¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥à¤«¤éʸ»ú¤¬Æɤ߹þ¤Þ¤ì¤¿»þ¤Ë +(POSIX にはない; Linux では対応していない; 031, EM, Ctrl-Y) +遅延中断文字。ユーザープログラムから文字が読み込まれた時に .B SIGTSTP -¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +シグナルを送る。 .B IEXTEN -¤È +と .B ISIG -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Æ¡¢¥·¥¹¥Æ¥à¤¬¥¸¥ç¥ÖÀ©¸æ¤ËÂбþ¤·¤Æ¤¤¤ë¾ì¹ç¤Ë -ǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£ +がセットされていて、システムがジョブ制御に対応している場合に +認識し、入力には渡されない。 .TP .B VLNEXT -(POSIX ¤Ë¤Ï¤Ê¤¤; 026, SYN Ctrl-V) -¥ê¥Æ¥é¥ë¡£¼¡¤ÎÆþÎÏʸ»ú¤ò¥¨¥¹¥±¡¼¥×¤·¡¢ÆÃÊ̤ʰÕÌ£¤¬¤¢¤Ã¤Æ¤â²ò¼á¤·¤Ê¤¤¡£ +(POSIX にはない; 026, SYN Ctrl-V) +リテラル。次の入力文字をエスケープし、特別な意味があっても解釈しない。 .B IEXTEN -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£ +がセットされている場合に認識し、入力には渡されない。 .TP .B VWERASE -(POSIX ¤Ë¤Ï¤Ê¤¤; 027, ETB, Ctrl-W) -ñ¸ì¾Ãµî¡£ +(POSIX にはない; 027, ETB, Ctrl-W) +単語消去。 .B ICANON -¤È +と .B IEXTEN -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£ +がセットされている場合に認識し、入力には渡されない。 .TP .B VREPRINT -(POSIX ¤Ë¤Ï¤Ê¤¤; 022, DC2, Ctrl-R) -¤Þ¤ÀÆɤ߹þ¤ó¤Ç¤¤¤Ê¤¤Ê¸»úÎó¤òºÆɽ¼¨¤¹¤ë¡£ +(POSIX にはない; 022, DC2, Ctrl-R) +まだ読み込んでいない文字列を再表示する。 .B ICANON -¤È +と .B IEXTEN -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£ +がセットされている場合に認識し、入力には渡されない。 .TP .B VDISCARD -(POSIX ¤Ë¤Ï¤Ê¤¤; Linux ¤Ç¤ÏÂбþ¤·¤Æ¤¤¤Ê¤¤; 017, SI, Ctrl-O) -̤Á÷¿®¥Ð¥Ã¥Õ¥¡¤ÎÆâÍƤÎÇË´þ/Êݸ¤òÀÚ¤êÂؤ¨¤ë¡£ +(POSIX にはない; Linux では対応していない; 017, SI, Ctrl-O) +未送信バッファの内容の破棄/保存を切り替える。 .B IEXTEN -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ëǧ¼±¤·¡¢ÆþÎϤˤÏÅϤµ¤ì¤Ê¤¤¡£ +がセットされている場合に認識し、入力には渡されない。 .TP .B VSTATUS -(POSIX ¤Ë¤Ï¤Ê¤¤; Linux ¤Ç¤ÏÂбþ¤·¤Æ¤¤¤Ê¤¤; -¾õÂÖÍ×µá: 024, DC4, Ctrl-T) +(POSIX にはない; Linux では対応していない; +状態要求: 024, DC4, Ctrl-T) .LP -¤³¤ì¤é¤Î¥·¥ó¥Ü¥ë¤Î¼¨¤¹ÃͤÏÁ´¤Æ°Û¤Ê¤ë¡£ -¤¿¤À¤·¡¢ +これらのシンボルの示す値は全て異なる。 +ただし、 .BR VTIME , .B VMIN -¤Ï¤½¤ì¤¾¤ì +はそれぞれ .BR VEOL , .B VEOF -¤ÈƱ¤¸ÃͤǤ¢¤ë¡£ -È󥫥Υ˥«¥ë¥â¡¼¥É¤Ç¤Ï¡¢Æüìʸ»ú¤Î°ÕÌ£¤Ï¥¿¥¤¥à¥¢¥¦¥È¤Î°ÕÌ£¤ËÊѤï¤ë¡£ +と同じ値である。 +非カノニカルモードでは、特殊文字の意味はタイムアウトの意味に変わる。 .B VMIN -¤È +と .B VTIME -¤ÎÀâÌÀ¤Ë¤Ä¤¤¤Æ¤Ï¡¢²¼µ­¤ÎÈ󥫥Υ˥«¥ë¥â¡¼¥É¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£ -.SS "üËö¤ÎÀßÄê¤Î¼èÆÀ¤ÈÊѹ¹" +の説明については、下記の非カノニカルモードの説明を参照のこと。 +.SS "端末の設定の取得と変更" .PP .BR tcgetattr () -¤Ï \fIfd\fP ¤Ë´Ø¤¹¤ë¥Ñ¥é¥á¡¼¥¿¤ò¼èÆÀ¤·¡¢\fItermios_p\fP ¤¬»²¾È¤¹¤ë¹½ -¤ÂÎ \fItermios\fP ¤ËÀßÄꤹ¤ë¡£¤³¤Î´Ø¿ô¤Ï¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹¤«¤é -¸Æ¤Ð¤ì¤ë¤³¤È¤â¤¢¤ë¤¬¡¢¤³¤Î¾ì¹ç¡¢Ã¼Ëö¤Î°À­¤Ï¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹ -¤Ë¤è¤Ã¤ÆÊѲ½¤¹¤ë¤³¤È¤â¤¢¤ë¡£ +は \fIfd\fP に関するパラメータを取得し、\fItermios_p\fP が参照する構 +造体 \fItermios\fP に設定する。この関数はバックグラウンドプロセスから +呼ばれることもあるが、この場合、端末の属性はフォアグラウンドプロセス +によって変化することもある。 .LP .BR tcsetattr () -¤ÏüËö¤Ë´ØÏ¢¤·¤¿¥Ñ¥é¥á¡¼¥¿¤òÀßÄꤹ¤ë (¥Ï¡¼¥É¥¦¥§¥¢¤ÎÀßÄê¤ËɬÍפǡ¢¤³¤³¤Ç -ÀßÄê¤Ç¤­¤Ê¤¤¤â¤Î¤ò½ü¤¯)¡£ÀßÄê¤Ë¤Ï \fItermios_p\fP ¤¬»²¾È¤¹¤ë -\fItermios\fP ¹½Â¤ÂΤòÍѤ¤¤ë¡£ -\fIoptional_actions\fP ¤Ë¤ÏÊѹ¹¤¬Í­¸ú¤È¤Ê¤ë¥¿¥¤¥ß¥ó¥°¤òÀßÄꤹ¤ë: +は端末に関連したパラメータを設定する (ハードウェアの設定に必要で、ここで +設定できないものを除く)。設定には \fItermios_p\fP が参照する +\fItermios\fP 構造体を用いる。 +\fIoptional_actions\fP には変更が有効となるタイミングを設定する: .IP \fBTCSANOW\fP -¤¿¤À¤Á¤ËÊѹ¹¤¬Í­¸ú¤È¤Ê¤ë¡£ +ただちに変更が有効となる。 .IP \fBTCSADRAIN\fP .I fd -¤Ø¤Î½ÐÎϤ¬¤¹¤Ù¤ÆžÁ÷¤µ¤ì¤¿¸å¤ËÊѹ¹¤¬Í­¸ú¤Ë¤Ê¤ë¡£¤³¤Îµ¡Ç½¤Ï -½ÐÎϤ˱ƶÁ¤¹¤ë¥Ñ¥é¥á¡¼¥¿¤òÊѹ¹¤¹¤ë»þ¤Ë»ÈÍѤ¹¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +への出力がすべて転送された後に変更が有効になる。この機能は +出力に影響するパラメータを変更する時に使用するべきである。 .IP \fBTCSAFLUSH\fP -¥Ñ¥é¥á¡¼¥¿¤òÊѹ¹¤¹¤ëÁ°¤Ë¡¢ +パラメータを変更する前に、 .I fd -¤Ø¤Î½ÐÎϤ¬¤¹¤Ù¤ÆžÁ÷¤µ¤ì¡¢¼õ¿®¤·¤¿¤¬¤Þ¤ÀÆɤ߹þ¤ó¤Ç¤¤¤Ê¤¤¤¹¤Ù¤Æ¤Î -ÆþÎϤ¬ÇË´þ¤µ¤ì¤ë¡£ -.SS "¥«¥Î¥Ë¥«¥ë¥â¡¼¥É¤ÈÈ󥫥Υ˥«¥ë¥â¡¼¥É" +への出力がすべて転送され、受信したがまだ読み込んでいないすべての +入力が破棄される。 +.SS "カノニカルモードと非カノニカルモード" .I c_lflag -¤Î +の .B ICANON -¥Õ¥é¥°¤ÎÀßÄê¤Ë¤è¤ê¡¢Ã¼Ëö¤¬¥«¥Î¥Ë¥«¥ë¥â¡¼¥É¤ÇÆ°ºî¤¹¤ë¤«¤¬·èÄꤵ¤ì¤ë¡£ +フラグの設定により、端末がカノニカルモードで動作するかが決定される。 .B ICANON -¤¬¥»¥Ã¥È¤µ¤ì¤¿¾ì¹ç¡¢¥«¥Î¥Ë¥«¥ë¥â¡¼¥É (canonical mode) ¤È¤Ê¤ê¡¢ -¥»¥Ã¥È¤µ¤ì¤Ê¤¤¾ì¹ç¡¢È󥫥Υ˥«¥ë¥â¡¼¥É (noncanonical mode) ¤È¤Ê¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ +がセットされた場合、カノニカルモード (canonical mode) となり、 +セットされない場合、非カノニカルモード (noncanonical mode) となる。 +デフォルトでは、 .B ICANON -¤Ï¥»¥Ã¥È¤µ¤ì¤ë¡£ +はセットされる。 -¥«¥Î¥Ë¥«¥ë¥â¡¼¥É¤Ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤ÊÆ°ºî¤È¤Ê¤ë¡£ +カノニカルモードでは、以下のような動作となる。 .IP * 2 -ÆþÎϤϹÔñ°Ì¤Ë¹Ô¤ï¤ì¤ë¡£ -¹Ô¶èÀÚ¤êʸ»ú¤¬ÂǤÁ¹þ¤Þ¤ì¤¿»þÅÀ¤Ç¡¢ÆþÎϹԤ¬ÍøÍѲÄǽ¤È¤Ê¤ë¡£ -¹Ô¶èÀÚ¤êʸ»ú¤Ï NL, EOL, EOL2 ¤ª¤è¤Ó¹ÔƬ¤Ç¤Î EOF ¤Ç¤¢¤ë¡£ -EOF °Ê³°¤Î¾ì¹ç¡¢ +入力は行単位に行われる。 +行区切り文字が打ち込まれた時点で、入力行が利用可能となる。 +行区切り文字は NL, EOL, EOL2 および行頭での EOF である。 +EOF 以外の場合、 .BR read (2) -¤¬ÊÖ¤¹¥Ð¥Ã¥Õ¥¡¤Ë¹Ô¶èÀÚ¤êʸ»ú¤â´Þ¤á¤é¤ì¤ë¡£ +が返すバッファに行区切り文字も含められる。 .IP * 2 -¹ÔÊÔ½¸¤¬Í­¸ú¤È¤Ê¤ë (ERASE, KILL ¤¬¸ú²Ì¤ò»ý¤Ä¡£ +行編集が有効となる (ERASE, KILL が効果を持つ。 .B IEXTEN -¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢ -WERASE, REPRINT, LNEXT ¤â¸ú²Ì¤ò»ý¤Ä)¡£ +フラグが設定された場合は、 +WERASE, REPRINT, LNEXT も効果を持つ)。 .BR read (2) -¤ÏºÇÂç¤Ç¤â 1¹Ô¤ÎÆþÎϤ·¤«ÊÖ¤µ¤Ê¤¤¡£ +は最大でも 1行の入力しか返さない。 .BR read (2) -¤¬Í׵ᤷ¤¿¥Ð¥¤¥È¿ô¤¬¸½ºß¤ÎÆþÎϹԤΥХ¤¥È¿ô¤è¤ê¤â¾¯¤Ê¤¤¾ì¹ç¡¢ -Í׵ᤷ¤¿¤Î¤ÈƱ¤¸¥Ð¥¤¥È¿ô¤À¤±¤¬Æɤ߹þ¤Þ¤ì¡¢ -»Ä¤ê¤Îʸ»ú¤Ï¼¡²ó¤Î +が要求したバイト数が現在の入力行のバイト数よりも少ない場合、 +要求したのと同じバイト数だけが読み込まれ、 +残りの文字は次回の .BR read (2) -¤ÇÆɤ߹þ¤Þ¤ì¤ë¡£ +で読み込まれる。 .PP -È󥫥Υ˥«¥ë¥â¡¼¥É¤Ç¤Ï¡¢ÆþÎϤϨºÂ¤ËÍøÍѲÄǽ¤È¤Ê¤ê -(¥æ¡¼¥¶¤Ï¹Ô¶èÀÚ¤êʸ»ú¤òÂǤÁ¹þ¤àɬÍפϤʤ¤)¡¢ -¹ÔÊÔ½¸¤Ï̵¸ú¤È¤Ê¤ë¡£ +非カノニカルモードでは、入力は即座に利用可能となり +(ユーザは行区切り文字を打ち込む必要はない)、 +行編集は無効となる。 MIN .RI ( c_cc[VMIN] ) -¤È TIME +と TIME .RI ( c_cc[VTIME] ) -¤ÎÀßÄê¤Ë¤è¤ê¡¢ +の設定により、 .BR read (2) -¤¬´°Î»¤¹¤ë¾ò·ï¤¬·èÄꤵ¤ì¤ë¡£4¼ïÎà¤Î¾ì¹ç¤¬¤¢¤ë: +が完了する条件が決定される。4種類の場合がある: .IP * 2 MIN == 0; TIME == 0: -¥Ç¡¼¥¿¤¬ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢ +データが利用可能であれば、 .BR read (2) -¤Ï¤¹¤°¤ËÊ֤롣¤³¤Î¤È¤­¤ÎÊÖ¤êÃͤϡ¢¤½¤Î¤È¤­ÍøÍѲÄǽ¤Ê¥Ð¥¤¥È¿ô¤« +はすぐに返る。このときの返り値は、そのとき利用可能なバイト数か .BR read (2) -¤ÎÍ×µá¥Ð¥¤¥È¿ô¤Î¤¦¤Á¾®¤µ¤¤Êý¤È¤Ê¤ë¡£ -ÍøÍѲÄǽ¤Ê¥Ç¡¼¥¿¤¬¤Ê¤¤¾ì¹ç +の要求バイト数のうち小さい方となる。 +利用可能なデータがない場合 .BR read (2) -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .IP * 2 MIN > 0; TIME == 0: .BR read (2) -¤Ï¡¢ÍøÍѲÄǽ¤Ê¥Ç¡¼¥¿¤¬ MIN ¥Ð¥¤¥È¤«Í×µá¥Ð¥¤¥È¿ô¤Î¤¤¤º¤ì¤«¤Ë㤹¤ë¤Þ¤Ç -Ää»ß¤¹¤ë¡£ÊÖ¤êÃͤϡ¢MIN ¤«Í×µá¥Ð¥¤¥È¿ô¤Î¾®¤µ¤¤Êý¤È¤Ê¤ë¡£ +は、利用可能なデータが MIN バイトか要求バイト数のいずれかに達するまで +停止する。返り値は、MIN か要求バイト数の小さい方となる。 .IP * 2 MIN == 0; TIME > 0: -TIME ¤Ï¥¿¥¤¥Þ¤Î¾å¸Â¤òµ¬Äꤷ¡¢Ã±°Ì¤Ï 1/10 ÉäǤ¢¤ë¡£ -¥¿¥¤¥Þ¤Ï +TIME はタイマの上限を規定し、単位は 1/10 秒である。 +タイマは .BR read (2) -¤¬¸Æ¤Ð¤ì¤¿»þÅÀ¤Ç³«»Ï¤µ¤ì¤ë¡£ +が呼ばれた時点で開始される。 .BR read (2) -¤¬ÊÖ¤ë¤Î¤Ï¡¢¾¯¤Ê¤¯¤È¤â 1¥Ð¥¤¥È¤Î¥Ç¡¼¥¿¤¬ÍøÍѲÄǽ¤È¤Ê¤Ã¤¿»þÅÀ¡¢ -¤Þ¤¿¤Ï¥¿¥¤¥Þ¤¬»þ´ÖÀÚ¤ì¤È¤Ê¤Ã¤¿»þÅÀ¤Ç¤¢¤ë¡£ -ÆþÎϤ¬Á´¤¯¤Ê¤¯¥¿¥¤¥Þ¤¬»þ´ÖÀÚ¤ì¤È¤Ê¤Ã¤¿¾ì¹ç¡¢ +が返るのは、少なくとも 1バイトのデータが利用可能となった時点、 +またはタイマが時間切れとなった時点である。 +入力が全くなくタイマが時間切れとなった場合、 .BR read (2) -¤Ï 0 ¤òÊÖ¤¹¡£ +は 0 を返す。 .IP * 2 MIN > 0; TIME > 0: -TIME ¤Ï¥¿¥¤¥Þ¤Î¾å¸Â¤òµ¬Äꤷ¡¢Ã±°Ì¤Ï 1/10 ÉäǤ¢¤ë¡£ -ÆþÎϤκǽé¤Î¥Ð¥¤¥È¤¬ÍøÍѲÄǽ¤Ë¤Ê¤Ã¤¿¸å¤Ï¡¢ -¿·¤¿¤Ë 1¥Ð¥¤¥È¼õ¿®¤¹¤ëÅ٤˥¿¥¤¥Þ¤¬¥ê¥»¥Ã¥È¤µ¤ì¤ë¡£ +TIME はタイマの上限を規定し、単位は 1/10 秒である。 +入力の最初のバイトが利用可能になった後は、 +新たに 1バイト受信する度にタイマがリセットされる。 .BR read (2) -¤¬ÊÖ¤ë¤Î¤Ï¡¢MIN ¥Ð¥¤¥È¤«Í×µá¥Ð¥¤¥È¿ô¤Î¤¦¤Á¾¯¤Ê¤¤Êý¤Þ¤ÇÆɤ߽Фµ¤ì¤¿»þÅÀ¤«¡¢ -¥Ð¥¤¥È´Ö¥¿¥¤¥Þ¤¬»þ´ÖÀÚ¤ì¤È¤Ê¤Ã¤¿»þÅÀ¤Ç¤¢¤ë¡£ -¤ÏºÇ½é¤Î¥Ð¥¤¥È¤¬ÍøÍѲÄǽ¤Ë¤Ê¤é¤Ê¤¤¤È¥¿¥¤¥Þ¤Ï³«»Ï¤µ¤ì¤Ê¤¤¤Î¤Ç¡¢ -¾¯¤Ê¤¯¤È¤â 1¥Ð¥¤¥È¤ÏÆɤ߹þ¤Þ¤ì¤ë¡£ +が返るのは、MIN バイトか要求バイト数のうち少ない方まで読み出された時点か、 +バイト間タイマが時間切れとなった時点である。 +は最初のバイトが利用可能にならないとタイマは開始されないので、 +少なくとも 1バイトは読み込まれる。 .SS "Raw mode" .LP .BR cfmakeraw () -¤Ï¡¢Ã¼Ëö¤òÀΤΠVersion 7 üËö¥É¥é¥¤¥Ð¤Î -"raw" ¥â¡¼¥É¤Î¤è¤¦¤ËÀßÄꤹ¤ë¡£ -ÆþÎϤÏʸ»úñ°Ì¤Ë²Äǽ¤Ç¤¢¤ê¡¢¥¨¥³¡¼¤¬Ìµ¸ú¤È¤Ê¤ê¡¢ -üËö¤ÎÆþ½ÐÎÏʸ»ú¤ËÂФ¹¤ëÆüì½èÍý¤Ï¤¹¤Ù¤Æ̵¸ú¤È¤Ê¤ë¡£ -üËö¤Î°À­¤Ï°Ê²¼¤Î¤è¤¦¤ËÀßÄꤵ¤ì¤ë: +は、端末を昔の Version 7 端末ドライバの +"raw" モードのように設定する。 +入力は文字単位に可能であり、エコーが無効となり、 +端末の入出力文字に対する特殊処理はすべて無効となる。 +端末の属性は以下のように設定される: .nf termios_p\->c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP @@ -754,83 +754,83 @@ TIME termios_p\->c_cflag &= ~(CSIZE | PARENB); termios_p\->c_cflag |= CS8; .fi -.SS "¥é¥¤¥óÀ©¸æ" +.SS "ライン制御" .LP .BR tcsendbreak () -¤ÏüËö¤¬ÈóƱ´ü¤Î¥·¥ê¥¢¥ë¥Ç¡¼¥¿Å¾Á÷¤òÍѤ¤¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢ -Ϣ³¤·¤¿0¤Î¥Ó¥Ã¥ÈÎó¤ò°ìÄê´Ö³Ö¤ÇžÁ÷¤¹¤ë¡£ -\fIduration\fP ¤¬ 0 ¤Î¾ì¹ç¤Ï¡¢0 ¤Î¥Ó¥Ã¥È¤ò 0.25 Éðʾ塢 -0.5 Éðʲ¼¤Î´Ö³Ö¤ÇžÁ÷¤¹¤ë¡£ \fIduration\fP ¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢ -0 ¤Î¥Ó¥Ã¥È¤ò¼ÂÁõ°Í¸¤Î»þ´Ö´Ö³Ö¤ÇÁ÷¤ë¡£ +は端末が非同期のシリアルデータ転送を用いている場合に、 +連続した0のビット列を一定間隔で転送する。 +\fIduration\fP が 0 の場合は、0 のビットを 0.25 秒以上、 +0.5 秒以下の間隔で転送する。 \fIduration\fP が 0 でない場合は、 +0 のビットを実装依存の時間間隔で送る。 .LP -üËö¤¬ÈóƱ´ü¤Î¥·¥ê¥¢¥ë¥Ç¡¼¥¿Å¾Á÷¥â¡¼¥É¤Ç¤Ê¤¤¾ì¹ç¡¢ +端末が非同期のシリアルデータ転送モードでない場合、 .BR tcsendbreak () -¤Ï²¿¤â¹Ô¤ï¤º¤ËÌá¤ë¡£ +は何も行わずに戻る。 .LP .BR tcdrain () -¤Ï +は .I fd -¤¬¹Ô¤Ã¤Æ¤¤¤ë½ÐÎϤΞÁ÷¤¬´°Î»¤¹¤ë¤Þ¤ÇÂԤġ£ +が行っている出力の転送が完了するまで待つ。 .LP .BR tcflush () -¤Ï +は .I fd -¤¬¹Ô¤Ã¤Æ¤¤¤ë¥Ç¡¼¥¿¤Î½ÐÎϤǤޤÀžÁ÷¤µ¤ì¤Æ¤¤¤Ê¤¤¤â¤Î¡¢¤¢¤ë¤¤¤Ï¼õ¿®¤· -¤¿¤¬¤Þ¤ÀÆþÎϤ·¤Æ¤¤¤Ê¤¤¤â¤Î¤òÇË´þ¤¹¤ë¡£¤¤¤º¤ì¤ò¹Ô¤¦¤«¤Ï +が行っているデータの出力でまだ転送されていないもの、あるいは受信し +たがまだ入力していないものを破棄する。いずれを行うかは .I queue_selector -¤ÎÃͤÇÄê¤á¤ë: +の値で定める: .\"??nakano flush == discard? .IP \fBTCIFLUSH\fP -¼õ¿®¤·¤¿¤¬Æɤó¤Ç¤¤¤Ê¤¤¥Ç¡¼¥¿¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë¡£ +受信したが読んでいないデータをフラッシュする。 .IP \fBTCOFLUSH\fP -½ñ¤¤¤¿¤¬Á÷¿®¤·¤Æ¤¤¤Ê¤¤¥Ç¡¼¥¿¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë¡£ +書いたが送信していないデータをフラッシュする。 .IP \fBTCIOFLUSH\fP -¼õ¿®¤·¤¿¤¬Æɤó¤Ç¤¤¤Ê¤¤¥Ç¡¼¥¿¡¦½ñ¤¤¤¿¤¬Á÷¿®¤·¤Æ¤¤¤Ê¤¤¥Ç¡¼¥¿Î¾Êý -¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë¡£ +受信したが読んでいないデータ・書いたが送信していないデータ両方 +をフラッシュする。 .LP .BR tcflow () -¤Ï +は .I fd -¤Ç»ØÄꤵ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤ª¤±¤ë¥Ç¡¼¥¿¤ÎÁ÷¿®¤¢¤ë¤¤¤Ï¼õ¿®¤ò°ì»þŪ¤ËÃæÃǤ¹¤ë¡£ -Á÷¿®¤È¼õ¿®¤Î¤É¤Á¤é¤«¤Ï¡¢ -.IR action ¤Ç·è¤Þ¤ë: +で指定されたオブジェクトにおけるデータの送信あるいは受信を一時的に中断する。 +送信と受信のどちらかは、 +.IR action で決まる: .IP \fBTCOOFF\fP -½ÐÎϤÎÃæÃÇ¡£ +出力の中断。 .IP \fBTCOON\fP -ÃæÃǤ·¤¿½ÐÎϤκƳ«¡£ +中断した出力の再開。 .IP \fBTCIOFF\fP -STOP ʸ»ú¤ÎÁ÷¿®¡£ -STOP ʸ»ú¤ÏüËö¥Ç¥Ð¥¤¥¹¤«¤é¥·¥¹¥Æ¥à¤Ø¤Î¥Ç¡¼¥¿Á÷¿®¤òÄä»ß¤¹¤ë¡£ +STOP 文字の送信。 +STOP 文字は端末デバイスからシステムへのデータ送信を停止する。 .IP \fBTCION\fP -START ʸ»ú¤ÎÁ÷¿®¡£ -START ʸ»ú¤ÏüËö¥Ç¥Ð¥¤¥¹¤«¤é¥·¥¹¥Æ¥à¤Ø¤Î¥Ç¡¼¥¿Á÷¿®¤ò³«»Ï¤¹¤ë¡£ +START 文字の送信。 +START 文字は端末デバイスからシステムへのデータ送信を開始する。 .LP -üËö¥Õ¥¡¥¤¥ë¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¤È¤­¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ -ÆþÎϤâ½ÐÎϤâÃæÃǤµ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SS "¥é¥¤¥ó®ÅÙ" -¥Ü¡¼¥ì¡¼¥È´Ø¿ô¤Ï \fItermios\fP ¹½Â¤ÂÎÃæ¤ÎÆþ½ÐÎϥܡ¼¥ì¡¼¥È¤ò -¼èÆÀ¡¢ÀßÄꤹ¤ë¤¿¤á¤ËÄ󶡤µ¤ì¤ë¡£ -ÀßÄꤵ¤ì¤¿ÃÍ¤Ï +端末ファイルがオープンされたときのデフォルトでは、 +入力も出力も中断されていない。 +.SS "ライン速度" +ボーレート関数は \fItermios\fP 構造体中の入出力ボーレートを +取得、設定するために提供される。 +設定された値は .BR tcsetattr () -¤Î¸Æ¤Ó½Ð¤·¤¬À®¸ù¤¹¤ë¤Þ¤Ç¤ÏÍ­¸ú¤Ç¤Ï¤Ê¤¤¡£ +の呼び出しが成功するまでは有効ではない。 -®ÅÙ¤ò \fBB0\fP ¤ËÀßÄꤷ¤¿¾ì¹ç¡¢¥â¥Ç¥à¤ÏÄä»ß (hang up) ¤¹¤ë¡£ -\fBB38400\fP ¤Ë³ºÅö¤¹¤ë¼ÂºÝ¤Î¥Ó¥Ã¥È¥ì¡¼¥È¤Ï +速度を \fBB0\fP に設定した場合、モデムは停止 (hang up) する。 +\fBB38400\fP に該当する実際のビットレートは .BR setserial (8) -¤Ç -Êѹ¹¤Ç¤­¤ë¡£ +で +変更できる。 .LP -ÆþÎϤª¤è¤Ó½ÐÎϥܡ¼¥ì¡¼¥È¤Ï \fItermios\fP ¹½Â¤ÂΤ˳ÊǼ¤µ¤ì¤ë¡£ +入力および出力ボーレートは \fItermios\fP 構造体に格納される。 .LP .BR cfgetospeed () -¤Ï +は .I termios_p -¤¬¼¨¤·¤Æ¤¤¤ë \fItermios\fP ¹½Â¤ÂΤ˳ÊǼ¤µ¤ì¤Æ¤¤¤ë -½ÐÎϥܡ¼¥ì¡¼¥È¤òÊÖ¤¹¡£ +が示している \fItermios\fP 構造体に格納されている +出力ボーレートを返す。 .LP .BR cfsetospeed () -¤Ï \fItermios_p\fP ¤Ç¼¨¤µ¤ì¤Æ¤¤¤ë \fItermios\fP ¹½Â¤ÂÎÃæ¤Î½ÐÎϥܡ¼¥ì¡¼¥È¤ò -\fIspeed\fP ¤ËÀßÄꤹ¤ë¡£Ãͤϰʲ¼¤Î¤¤¤º¤ì¤«¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤: +は \fItermios_p\fP で示されている \fItermios\fP 構造体中の出力ボーレートを +\fIspeed\fP に設定する。値は以下のいずれかでなければならない: .nf .ft B @@ -856,52 +856,52 @@ START ʸ .ft P .fi -0¥Ü¡¼ (\fBB0\fP) ¤ÏÀܳ¤ÎÃæÃǤËÍѤ¤¤é¤ì¤ë¡£ -B0¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¥â¥Ç¥à¤ÎÀ©¸æÀþ¤Ï»ÈÍѤµ¤ì¤Ê¤¤¾õÂ֤ˤʤꡢ°ìÈ̤ˤϤ³¤ì¤Ç -Àܳ¤¬ÀÚÃǤµ¤ì¤ë¡£ -\fBCBAUDEX\fP ¤ÏPOSIX.1¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë®ÅÙ¤ÎÈϰϳ° (57600 ¤ª¤è¤Ó¤½¤ì°Ê¾å) -¤òÀßÄꤹ¤ë¡£¤¹¤Ê¤ï¤ÁÎ㤨¤Ð \fBB57600\fP & \fBCBAUDEX\fP ¤Ï 0 ¤Ç¤Ê¤¤¡£ +0ボー (\fBB0\fP) は接続の中断に用いられる。 +B0が指定された場合、モデムの制御線は使用されない状態になり、一般にはこれで +接続が切断される。 +\fBCBAUDEX\fP はPOSIX.1で定義されている速度の範囲外 (57600 およびそれ以上) +を設定する。すなわち例えば \fBB57600\fP & \fBCBAUDEX\fP は 0 でない。 .LP .BR cfgetispeed () -¤Ï \fItermios\fP ¹½Â¤ÂÎÃæ¤ÎÆþÎϥܡ¼¥ì¡¼¥È¤òÊÖ¤¹¡£ +は \fItermios\fP 構造体中の入力ボーレートを返す。 .LP .BR cfsetispeed () -¤Ï \fItermios\fP ¹½Â¤ÂÎÃæ¤ÎÆþÎϥܡ¼¥ì¡¼¥È¤ò +は \fItermios\fP 構造体中の入力ボーレートを .I speed -¤ËÀßÄꤹ¤ë¡£ +に設定する。 .I speed -¤Ë¤Ï¡¢¾å½Ò¤Î +には、上述の .BR cfsetospeed () -¤Î¥Ü¡¼¥ì¡¼¥ÈÄê¿ô \fBBnnn\fP ¤Î¤¤¤º¤ì¤«°ì¤Ä¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -ÆþÎϥܡ¼¥ì¡¼¥È¤¬ 0 ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ÆþÎϥܡ¼¥ì¡¼¥È¤Ï½ÐÎϥܡ¼¥ì¡¼¥È -¤ÈƱ¤¸ÃͤȤʤ롣 +のボーレート定数 \fBBnnn\fP のいずれか一つを指定しなければならない。 +入力ボーレートが 0 に設定された場合、入力ボーレートは出力ボーレート +と同じ値となる。 .LP .BR cfsetspeed () -¤Ï 4.4BSD ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£¤³¤Î´Ø¿ô¤Ï +は 4.4BSD による拡張である。この関数は .BR cfsetispeed () -¤ÈƱ¤¸°ú¤­¿ô¤ò¤È¤ê¡¢Æþ½ÐÎÏξÊý¤Î®ÅÙ¤òÀßÄꤹ¤ë¡£ -.SH ÊÖ¤êÃÍ +と同じ引き数をとり、入出力両方の速度を設定する。 +.SH 返り値 .LP .BR cfgetispeed () -¤Ï \fItermios\fP ¹½Â¤ÂÎÃæ¤ÎÆþÎϥܡ¼¥ì¡¼¥È¤òÊÖ¤¹¡£ +は \fItermios\fP 構造体中の入力ボーレートを返す。 .LP .BR cfgetospeed () -¤Ï \fItermios\fP ¹½Â¤ÂÎÃæ¤Î½ÐÎϥܡ¼¥ì¡¼¥È¤òÊÖ¤¹¡£ +は \fItermios\fP 構造体中の出力ボーレートを返す。 .LP -¾¤Î¤¹¤Ù¤Æ¤Î´Ø¿ô¤ÎÌá¤êÃÍ: +他のすべての関数の戻り値: .IP 0 -¼Â¹ÔÀ®¸ù¡£ +実行成功。 .IP \-1 -¼Â¹Ô¼ºÇÔ¡£ +実行失敗。 .I errno -¤¬¥¨¥é¡¼¤Î¼ïÎà¤ò¼¨¤¹¡£ +がエラーの種類を示す。 .LP .BR tcsetattr () -¤Ï \fI¤Ê¤ó¤é¤«¤Î\fP Êѹ¹Í׵᤬À®¸ù¤·¤¿¾ì¹ç¤ËÀ®¸ù¤òÊÖ¤¹¤³¤È¤ËÃí°Õ¡£ -½¾¤Ã¤Æ¡¢Ê£¿ô¤ÎÊѹ¹¤ò¹Ô¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢°ú¤­Â³¤¤¤Æ +は \fIなんらかの\fP 変更要求が成功した場合に成功を返すことに注意。 +従って、複数の変更を行った場合には、引き続いて .BR tcgetattr () -¤ò¸Æ¤Ó½Ð¤·¤ÆÁ´¤Æ¤ÎÊѹ¹¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¤«¤ò³Îǧ¤¹¤ëɬÍפ¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -.SH ½àµò +を呼び出して全ての変更が実行されているかを確認する必要があるかもしれない。 +.SH 準拠 .BR tcgetattr (), .BR tcsetattr (), .BR tcsendbreak (), @@ -912,37 +912,37 @@ B0 .BR cfgetospeed (), .BR cfsetispeed (), .BR cfsetospeed () -¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +は POSIX.1-2001 で規定されている。 .BR cfmakeraw () -¤È +と .BR cfsetspeed () -¤ÏÈóɸ½à¤À¤¬¡¢BSD ¤Ç¤ÏÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -UNIX V7 ¤È¤½¤Î¸å¤Î¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥Ü¡¼¥ì¡¼¥È¤Î 14 ¸Ä¤Î¥ê¥¹¥È¤Ç¤¢¤ë -B0, ..., B9600 ¤Î¸å¤í¤Ë EXTA, EXTB ("External A" ¤È "External B") ¤Î 2 ¤Ä¤ò -Äɲ䷤Ƥ¤¤ë¡£ -¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¤µ¤é¤Ë¹â®¤Ê¥Ü¡¼¥ì¡¼¥È¤Î¤¿¤á¤Ë¥ê¥¹¥È¤ò³ÈÄ¥¤·¤Æ¤¤¤ë¡£ +は非標準だが、BSD では利用可能である。 +.SH 注意 +UNIX V7 とその後のいくつかのシステムでは、ボーレートの 14 個のリストである +B0, ..., B9600 の後ろに EXTA, EXTB ("External A" と "External B") の 2 つを +追加している。 +多くのシステムではさらに高速なボーレートのためにリストを拡張している。 .LP .BR tcsendbreak () -¤Ç \fIduration\fP ¤Ë 0 °Ê³°¤ò»ØÄꤷ¤¿¾ì¹ç¤Î¸ú²Ì¤ÏÍÍ¡¹¤Ç¤¢¤ë¡£ -SunOS ¤Ï +で \fIduration\fP に 0 以外を指定した場合の効果は様々である。 +SunOS は .IB duration * N -ÉäΥ֥졼¥¯¤òµ¬Äꤷ¤Æ¤¤¤ë¡£¤³¤³¤Ç \fIN\fP ¤Ï 0.25 °Ê¾å 0.5 ̤Ëþ¤Ç¤¢¤ë¡£ -Linux, AIX, DU, Tru64 ¤Ï +秒のブレークを規定している。ここで \fIN\fP は 0.25 以上 0.5 未満である。 +Linux, AIX, DU, Tru64 は .I duration -¥ß¥êÉäΥ֥졼¥¯¤òÁ÷¿®¤¹¤ë¡£ -FreeBSD, NetBSD, HP-UX, MacOS ¤Ï +ミリ秒のブレークを送信する。 +FreeBSD, NetBSD, HP-UX, MacOS は .I duration -¤ÎÃͤò̵»ë¤¹¤ë¡£ -Solaris ¤È UnixWare ¤Ç¤Ï¡¢Èó¥¼¥í¤Î +の値を無視する。 +Solaris と UnixWare では、非ゼロの .I duration -¤ò»ØÄꤷ¤¿ +を指定した .BR tcsendbreak () -¤Î¿¶¤ëÉñ¤¤¤Ï +の振る舞いは .BR tcdrain () -¤ÈƱÍͤǤ¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +と同様である。 +.SH 関連項目 .BR stty (1), .BR console_ioctl (4), .BR tty_ioctl (4), diff --git a/release/man3/tgamma.3 b/release/man3/tgamma.3 index a603190e..c9b77ee8 100644 --- a/release/man3/tgamma.3 +++ b/release/man3/tgamma.3 @@ -15,9 +15,9 @@ .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH TGAMMA 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -tgamma, tgammaf, tgammal \- ËÜÅö¤Î¥¬¥ó¥Þ´Ø¿ô -.SH ½ñ¼° +.SH 名前 +tgamma, tgammaf, tgammal \- 本当のガンマ関数 +.SH 書式 .B #include .sp .BI "double tgamma(double " x ); @@ -26,12 +26,12 @@ tgamma, tgammaf, tgammal \- .br .BI "long double tgammal(long double " x ); .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -46,140 +46,140 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ -¥¬¥ó¥Þ´Ø¿ô¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë: +.SH 説明 +ガンマ関数は以下のように定義される: .sp - Gamma(x) = t^(x\-1) e^\-t dt ¤Î 0 ¤«¤é̵¸ÂÂç¤Þ¤Ç¤ÎÀÑʬ + Gamma(x) = t^(x\-1) e^\-t dt の 0 から無限大までの積分 .sp -¤³¤Î´Ø¿ô¤ÏÀµ¤Ç¤Ê¤¤À°¿ô¤ò½ü¤¯¤¹¤Ù¤Æ¤Î¼Â¿ô¤ËÂФ·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -ÈóÉé¤ÎÀ°¿ô \fIm\fP ¤Ë´Ø¤·¤Æ¡¢°Ê²¼¤¬À®Î©¤¹¤ë: +この関数は正でない整数を除くすべての実数に対して定義されている。 +非負の整数 \fIm\fP に関して、以下が成立する: .sp Gamma(m+1) = m! .sp -¤è¤ê°ìÈÌŪ¤Ë¤Ï¡¢¤¹¤Ù¤Æ¤Î \fIx\fP ¤Ë´Ø¤·¤Æ°Ê²¼¤¬À®Î©¤¹¤ë: +より一般的には、すべての \fIx\fP に関して以下が成立する: .sp Gamma(x+1) = x * Gamma(x) .sp -¤µ¤é¤Ë¡¢¶Ë¤ò½ü¤¯¤¹¤Ù¤Æ¤Î \fIx\fP ¤Ç¼¡¼°¤âÀ®Î©¤¹¤ë: +さらに、極を除くすべての \fIx\fP で次式も成立する: .sp Gamma(x) * Gamma(1 \- x) = PI / sin(PI * x) .PP -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï Gamma(x) ¤òÊÖ¤¹¡£ +.SH 返り値 +成功すると、これらの関数は Gamma(x) を返す。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬Àµ¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢Àµ¤Î̵¸ÂÂ礬ÊÖ¤µ¤ì¤ë¡£ +が正の無限大の場合、正の無限大が返される。 .I x -¤¬Éé¤ÎÀ°¿ô¤«Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ -NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が負の整数か負の無限大の場合、領域エラー (domain error) が発生し、 +NaN が返される。 -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +結果がオーバーフローする場合、範囲エラー (range error) が発生し、 +各関数はそれぞれ .BR HUGE_VAL , .BR HUGE_VALF , .BR HUGE_VALL , -¤òÊÖ¤¹¡£¤³¤ÎºÝ¡¢¿ô³ØŪ¤ËÀµ¤·¤¤Éä¹æ¤¬ÉÕÍ¿¤µ¤ì¤ë¡£ +を返す。この際、数学的に正しい符号が付与される。 -·ë²Ì¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢ -´Ø¿ô¤Ï 0 ¤ò¤òÊÖ¤¹¡£¤³¤ÎºÝ¡¢¿ô³ØŪ¤ËÀµ¤·¤¤Éä¹æ¤¬ÉÕÍ¿¤µ¤ì¤ë¡£ +結果がアンダーフローする場合、範囲エラー (range error) が発生し、 +関数は 0 をを返す。この際、数学的に正しい符号が付与される。 .I x -¤¬ \-0 ¤« +0 ¤Î¾ì¹ç¡¢¶Ë¥¨¥é¡¼ (pole error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +が \-0 か +0 の場合、極エラー (pole error) が発生し、 +各関数はそれぞれ .BR HUGE_VAL , .BR HUGE_VALF , .BR HUGE_VALL , -¤òÊÖ¤¹¡£ -0 ¤ÈƱ¤¸Éä¹æ¤¬ÉÕÍ¿¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +を返す。 +0 と同じ符号が付与される。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -Îΰ襨¥é¡¼: \fIx\fP ¤¬Éé¤ÎÀ°¿ô¤«Éé¤Î̵¸ÂÂç +領域エラー: \fIx\fP が負の整数か負の無限大 .\" FIXME . errno is not set to EDOM for x == -inf .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6809 .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë¡£ -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë (¡Ö¥Ð¥°¡×¤ÎÀá¤ò»²¾È)¡£ +が上がる (「バグ」の節を参照)。 .TP -¶Ë¥¨¥é¡¼ (pole error): \fIx\fP ¤¬ +0 ¤« \-0 +極エラー (pole error): \fIx\fP が +0 か \-0 .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -0 ¤Ë¤è¤ë½ü»» (divide-by-zero) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +0 による除算 (divide-by-zero) 浮動小数点例外 .RB ( FE_DIVBYZERO ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP -ÈÏ°Ï¥¨¥é¡¼ (range error): ·ë²Ì¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ +範囲エラー (range error): 結果のオーバーフロー .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .PP -glibc ¤Ç¤Ï¡¢C99 ¤ä POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤°Ê²¼¤Î¥¨¥é¡¼¤â -µ¯¤³¤êÆÀ¤ë¡£ +glibc では、C99 や POSIX.1-2001 で規定されていない以下のエラーも +起こり得る。 .TP -ÈÏ°Ï¥¨¥é¡¼ (range error): ·ë²Ì¤Î¥¢¥ó¥À¡¼¥Õ¥í¡¼ +範囲エラー (range error): 結果のアンダーフロー .\" e.g., tgamma(-172.5) on glibc 2.8/x86-32 .\" .I errno .\" is set to .\" .BR ERANGE . -¥¢¥ó¥À¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +アンダーフロー浮動小数点例外 .RB ( FE_UNDERFLOW ) -¤¬¾å¤¬¤ë¡£ -¤³¤Î¾ì¹ç¤Ï +が上がる。 +この場合は .I errno -¤ÏÀßÄꤵ¤ì¤Ê¤¤¡£ +は設定されない。 .\" FIXME . Is it intentional that errno is not set: .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6810 .\" .\" glibc (as at 2.8) also supports and an inexact .\" exception for various cases. -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99, POSIX.1-2001. -.SH Ãí°Õ -¤³¤Î´Ø¿ô¤ò¡ÖËÜÅö¤Î (true) ¥¬¥ó¥Þ´Ø¿ô¡×¤È¸Æ¤Ð¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤«¤Ã¤¿¡£ -¤Ê¤¼¤Ê¤é¡¢Â¾¤ÎÃͤòÊÖ¤¹ +.SH 注意 +この関数を「本当の (true) ガンマ関数」と呼ばなければならなかった。 +なぜなら、他の値を返す .BR gamma (3) -¤È¤¤¤¦´Ø¿ô¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¤«¤é¤Ç¤¢¤ë (¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï +という関数がすでに存在するからである (詳細については .BR gamma (3) -¤ò»²¾È)¡£ -.SH ¥Ð¥° +を参照)。 +.SH バグ .I x -¤¬Éé¤Î̵¸ÂÂç¤Î¾ì¹ç¡¢ +が負の無限大の場合、 .I errno -¤ÏÀßÄꤵ¤ì¤Ê¤¤ +は設定されない .RB ( EDOM -¤¬ÀßÄꤵ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë)¡£ +が設定されるべきである)。 .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6809 -glibc ¥Ð¡¼¥¸¥ç¥ó 2.3.3 °ÊÁ°¤Ç¤Ï¡¢ -°ú¤­¿ô¤Ë +0 ¤ä \-0 ¤òÅϤ¹¤È¡¢¶Ë¥¨¥é¡¼¤Ç¤Ï¤Ê¤¯¡¢ -Îΰ襨¥é¡¼¤ò´Ö°ã¤Ã¤ÆȯÀ¸¤·¤Æ¤¤¤¿ -(Îΰ襨¥é¡¼¤Î¾ì¹ç¡¢ +glibc バージョン 2.3.3 以前では、 +引き数に +0 や \-0 を渡すと、極エラーではなく、 +領域エラーを間違って発生していた +(領域エラーの場合、 .I errno -¤Ë +に .B EDOM -¤òÀßÄꤵ¤ì¡¢ +を設定され、 .B FE_INVALID -Îã³°¤¬È¯À¸¤¹¤ë)¡£ -.SH ´ØÏ¢¹àÌÜ +例外が発生する)。 +.SH 関連項目 .BR gamma (3), .BR lgamma (3) diff --git a/release/man3/timegm.3 b/release/man3/timegm.3 index bc07d0bd..17bace9a 100644 --- a/release/man3/timegm.3 +++ b/release/man3/timegm.3 @@ -24,9 +24,9 @@ .\" Translated Thu 3 Jan 2002 by NAKANO Takeo .\" .TH TIMEGM 3 2007-07-26 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -timegm, timelocal \- gmtime ¤È localtime ¤ÎµÕ´Ø¿ô -.SH ½ñ¼° +.SH 名前 +timegm, timelocal \- gmtime と localtime の逆関数 +.SH 書式 .nf .B #include .sp @@ -36,43 +36,43 @@ timegm, timelocal \- gmtime .sp .fi .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR timelocal (), .BR timegm (): _BSD_SOURCE || _SVID_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR timelocal () -´Ø¿ô¤È +関数と .BR timegm () -´Ø¿ô¤Ï¡¢¤½¤ì¤¾¤ì +関数は、それぞれ .BR localtime (3) -´Ø¿ô¤È +関数と .BR gmtime (3) -´Ø¿ô¤ÎµÕ´Ø¿ô¤Ç¤¢¤ë¡£ -.SH ½àµò -¤³¤ì¤é¤Î´Ø¿ô¤ÏÈóɸ½à¤Ç GNU ¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ -BSD ·Ï¤Ë¤â¸ºß¤¹¤ë¡£ -¤³¤ì¤é¤Î»ÈÍѤÏÈò¤±¤ë¤³¤È¡£¡ÖÃí°Õ¡×»²¾È¡£ -.SH Ãí°Õ +関数の逆関数である。 +.SH 準拠 +これらの関数は非標準で GNU の拡張である。 +BSD 系にも存在する。 +これらの使用は避けること。「注意」参照。 +.SH 注意 .BR timelocal () -´Ø¿ô¤Ï POSIX ¤Îɸ½à´Ø¿ô +関数は POSIX の標準関数 .BR mktime (3) -¤ÈƱ¤¸¤â¤Î¤Ç¤¢¤ë¡£ -¤Î¤Ç¡¢¤³¤ì¤ò»È¤¦Íýͳ¤Ï¤Ê¤¤¤Ï¤º¤Ç¤¢¤ë¡£ +と同じものである。 +ので、これを使う理由はないはずである。 .LP .BR timegm () -¤ò°Ü¿¢À­¤¬¤¢¤ë¤è¤¦¤Ê¤«¤¿¤Á¤Ç¼Â¸½¤¹¤ë¤Ë¤Ï¡¢ +を移植性があるようなかたちで実現するには、 .B TZ -´Ä¶­ÊÑ¿ô¤ò UTC ¤ËÀßÄꤷ¤Æ¤«¤é +環境変数を UTC に設定してから .BR mktime (3) -¤ò¸Æ¤ó¤Ç¡¢ +を呼んで、 .B TZ -¤ÎÃͤò¼èÆÀ¤¹¤ì¤Ð¤è¤¤¡£ -Î㤨¤Ð¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¤À¤í¤¦¡£ +の値を取得すればよい。 +例えば次のようになるだろう。 .sp .in +4n .nf @@ -97,7 +97,7 @@ time_t my_timegm (struct tm *tm) } .fi .in -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR gmtime (3), .BR localtime (3), .BR mktime (3), diff --git a/release/man3/timeradd.3 b/release/man3/timeradd.3 index c130ddea..30545770 100644 --- a/release/man3/timeradd.3 +++ b/release/man3/timeradd.3 @@ -28,9 +28,9 @@ .\" Updated 2009-04-24, Akihiro MOTOKI , LDP v3.20 .\" .TH TIMERADD 3 2010-02-25 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -timeradd, timersub, timercmp, timerclear, timerisset \- timeval ¤ÎÁàºî -.SH ½ñ¼° +.SH 名前 +timeradd, timersub, timercmp, timerclear, timerisset \- timeval の操作 +.SH 書式 .nf .B #include @@ -48,113 +48,113 @@ timeradd, timersub, timercmp, timerclear, timerisset \- timeval .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp -¾åµ­¤ÎÁ´¤Æ¤Î´Ø¿ô: +上記の全ての関数: _BSD_SOURCE -.SH ÀâÌÀ +.SH 説明 .I timeval -¹½Â¤ÂΤòÁàºî¤¹¤ë¤¿¤á¤Î¥Þ¥¯¥í¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¡£ +構造体を操作するためのマクロが提供されている。 .I timeval -¹½Â¤ÂÎ¤Ï +構造体は .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で以下のように定義されている。 .sp .in +4n .nf struct timeval { - time_t tv_sec; /* Éà */ - suseconds_t tv_usec; /* ¥Þ¥¤¥¯¥íÉà */ + time_t tv_sec; /* 秒 */ + suseconds_t tv_usec; /* マイクロ秒 */ }; .fi .in .PP .BR timeradd () -¤Ï¡¢ +は、 .I a -¤È +と .I b -¤Î»þ¹ïÃͤò²Ã»»¤·¡¢¤½¤Î¹ç·×¤ò +の時刻値を加算し、その合計を .I res -¤Ë¤è¤ê»²¾È¤µ¤ì¤ë +により参照される .I timeval -¹½Â¤ÂΤ˳ÊǼ¤¹¤ë¡£·ë²Ì¤Ï¡¢ +構造体に格納する。結果は、 .I res\->tv_usec -¤ÎÃͤ¬ 0 ¤«¤é 999,999 ¤ÎÈϰϤËÆþ¤ë¤è¤¦¤ËÀµµ¬²½¤µ¤ì¤ë¡£ +の値が 0 から 999,999 の範囲に入るように正規化される。 .BR timersub () -¤Ï¡¢ +は、 .I a -¤Î»þ¹ïÃͤ«¤é +の時刻値から .I b -¤Î»þ¹ïÃͤò¸º»»¤·¡¢¤½¤Î·ë²Ì¤ò +の時刻値を減算し、その結果を .I res -¤Ë¤è¤ê»²¾È¤µ¤ì¤ë +により参照される .I timeval -¹½Â¤ÂΤ˳ÊǼ¤¹¤ë¡£·ë²Ì¤Ï¡¢ +構造体に格納する。結果は、 .I res\->tv_usec -¤ÎÃͤ¬ 0 ¤«¤é 999,999 ¤ÎÈϰϤËÆþ¤ë¤è¤¦¤ËÀµµ¬²½¤µ¤ì¤ë¡£ +の値が 0 から 999,999 の範囲に入るように正規化される。 .BR timerclear () -¤Ï +は .I tvp -¤Ë¤è¤ê»²¾È¤µ¤ì¤ë +により参照される .I timeval -¹½Â¤ÂΤò 0 ¤ÇËä¤á¤ë¡£ -0 ¤ÇËä¤á¤é¤ì¤¿ +構造体を 0 で埋める。 +0 で埋められた .I timeval -¹½Â¤ÂΤϡ¢»þ¹ïµª¸µ (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) ¤òɽ¤¹¡£ +構造体は、時刻紀元 (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) を表す。 .BR timerisset () -¤Ï¡¢ +は、 .I tvp -¤Ë¤è¤ê»²¾È¤µ¤ì¤ë +により参照される .I timeval -¹½Â¤ÂΤΤ¤¤º¤ì¤«°ìÊý¤Î¥Õ¥£¡¼¥ë¥É¤Ë 0 °Ê³°¤ÎÃͤ¬Æþ¤Ã¤Æ¤¤¤ì¤Ð¡¢ -¿¿ (0 °Ê³°) ¤òÊÖ¤¹¡£ +構造体のいずれか一方のフィールドに 0 以外の値が入っていれば、 +真 (0 以外) を返す。 .BR timercmp () -¤Ï +は .I a -¤È +と .I b -¤Î»þ¹ïÃͤòÈæ³Ó±é»»»Ò +の時刻値を比較演算子 .I CMP -¤ò»È¤Ã¤ÆÈæ³Ó¤·¡¢Èæ³Ó·ë²Ì¤Ë´ð¤Å¤­¡¢¿¿ (0 °Ê³°) ¤«µ¶ (0) ¤òÊÖ¤¹¡£ -(Linux/glibc ¤Ï¤½¤¦¤Ç¤Ï¤Ê¤¤¤¬) -¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +を使って比較し、比較結果に基づき、真 (0 以外) か偽 (0) を返す。 +(Linux/glibc はそうではないが) +いくつかのシステムでは、 .BRr timercmp () -¤Î¼ÂÁõ¤¬¤ª¤«¤·¤¯¡¢ -.\" HP-UX, Tru64, Irix ¤Ç¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +の実装がおかしく、 +.\" HP-UX, Tru64, Irix では以下のように定義されている。 .\"#define timercmp(tvp, uvp, cmp) \ .\" ((tvp)->tv_sec cmp (uvp)->tv_sec || \ .\" (tvp)->tv_sec == (uvp)->tv_sec && (tvp)->tv_usec cmp (uvp)->tv_usec) .I CMP -¤Ë +に .IR >= , .IR <= , .I == -¤ò»ØÄꤹ¤ë¤ÈÀµ¤·¤¯Æ°ºî¤·¤Ê¤¤¡£ -°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ -Âå¤ï¤ê¤Ë°Ê²¼¤ò»È¤¦¤³¤È¡£ +を指定すると正しく動作しない。 +移植性が必要なアプリケーションでは、 +代わりに以下を使うこと。 !timercmp(..., <) !timercmp(..., >) !timercmp(..., !=) -.SH ÊÖ¤êÃÍ +.SH 返り値 .BR timerisset () -¤È +と .BR timercmp () -¤Ï¡¢¿¿ (0 °Ê³°) ¤«µ¶ (0) ¤òÊÖ¤¹¡£ +は、真 (0 以外) か偽 (0) を返す。 .BR -.SH ¥¨¥é¡¼ -¥¨¥é¡¼¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ½àµò -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -¤Û¤È¤ó¤É¤Î BSD ͳÍè¤Î¥·¥¹¥Æ¥à¤Ë¤Ï¸ºß¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +.SH エラー +エラーは定義されていない。 +.SH 準拠 +POSIX.1-2001 にはない。 +ほとんどの BSD 由来のシステムには存在する。 +.SH 関連項目 .BR gettimeofday (2), .BR time (7) diff --git a/release/man3/tmpfile.3 b/release/man3/tmpfile.3 index 55bfd939..d9f91eb8 100644 --- a/release/man3/tmpfile.3 +++ b/release/man3/tmpfile.3 @@ -35,60 +35,60 @@ .\" by Yuichi SATO .\" .TH TMPFILE 3 2008-07-14 "" "Linux Programmer's Manual" -.SH ̾Á° -tmpfile \- ¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë -.SH ½ñ¼° +.SH 名前 +tmpfile \- テンポラリファイルを作成する +.SH 書式 .nf .B #include .sp .B FILE *tmpfile(void); .fi -.SH ÀâÌÀ +.SH 説明 .BR tmpfile () -´Ø¿ô¤Ï¥æ¥Ë¡¼¥¯¤Ê¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë¤ò -¥Ð¥¤¥Ê¥ê¥ê¡¼¥É¥é¥¤¥È¥â¡¼¥É (w+b) ¤Ç¥ª¡¼¥×¥ó¤¹¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥¯¥í¡¼¥º»þ¤Þ¤¿¤Ï¥×¥í¥°¥é¥à¤Î½ªÎ»»þ¤Ë¼«Æ°Åª¤Ëºï½ü¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +関数はユニークなテンポラリファイルを +バイナリリードライトモード (w+b) でオープンする。 +このファイルはクローズ時またはプログラムの終了時に自動的に削除される。 +.SH 返り値 .BR tmpfile () -´Ø¿ô¤Ï¥Õ¥¡¥¤¥ë¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¤«¡¢ -¥æ¥Ë¡¼¥¯¤Ê¥Õ¥¡¥¤¥ë¤¬ºî¤ì¤Ê¤«¤Ã¤¿¤«¥ª¡¼¥×¥ó¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ -¸å¼Ô¤Î¾ì¹ç¡¢¥¨¥é¡¼¤òɽ¤¹ \fIerrno\fP ¤òÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +関数はファイルポインタを返すか、 +ユニークなファイルが作れなかったかオープンできなかった場合は NULL を返す。 +後者の場合、エラーを表す \fIerrno\fP を設定する。 +.SH エラー .TP .B EACCES -¥Õ¥¡¥¤¥ë¤Î¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥µ¡¼¥Á¤Î¥¢¥¯¥»¥¹¸¢ (search permission) ¤¬¤Ê¤¤¡£ +ファイルのあるディレクトリにサーチのアクセス権 (search permission) がない。 .TP .B EEXIST -¥æ¥Ë¡¼¥¯¤Ê¥Õ¥¡¥¤¥ë̾¤¬ºîÀ®¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +ユニークなファイル名が作成できなかった。 .TP .B EINTR -¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤ÆÃæÃǤµ¤ì¤¿¡£ +呼び出しがシグナルによって中断された。 .TP .B EMFILE -1 ¤Ä¤Î¥×¥í¥»¥¹¤Ç»ÈÍѲÄǽ¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¿ô¤òĶ²á¤·¤¿¡£ +1 つのプロセスで使用可能なファイルディスクリプタ数を超過した。 .TP .B ENFILE -¥·¥¹¥Æ¥àÁ´ÂΤǥª¡¼¥×¥ó²Äǽ¤Ê¥Õ¥¡¥¤¥ë¿ô¤òĶ²á¤·¤¿¡£ +システム全体でオープン可能なファイル数を超過した。 .TP .B ENOSPC -¥Ç¥£¥ì¥¯¥È¥ê¤Ë¿·¤·¤¤¥Õ¥¡¥¤¥ë¤òÄɲ乤뤿¤á¤Î¶õ¤­Îΰ褬¤Ê¤¤¡£ +ディレクトリに新しいファイルを追加するための空き領域がない。 .TP .B EROFS -ÆɤߤÀ¤·ÀìÍÑ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£ -.SH ½àµò +読みだし専用ファイルシステムである。 +.SH 準拠 SVr4, 4.3BSD, C89, C99, SUSv2, POSIX.1-2001. -.SH Ãí°Õ -POSIX.1-2001 ¤Ç¤Ï¡¢ -¥¹¥È¥ê¡¼¥à¤ò¥ª¡¼¥×¥ó¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ -\fIstdout\fP ¤Ë¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬½ñ¤­½Ð¤µ¤ì¤ë¡¢¤Èµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +.SH 注意 +POSIX.1-2001 では、 +ストリームをオープンできなかった場合、 +\fIstdout\fP にエラーメッセージが書き出される、と規定されている。 .LP -µ¬³Ê¤Ç¤Ï +規格では .BR tmpfile () -¤¬»È¤¦¥Ç¥£¥ì¥¯¥È¥ê¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -glibc ¤Ç¤Ï \fI\fP ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë -\fIP_tmpdir\fP ¤ò¥Ñ¥¹¤ÎÀèƬ¤Ë»È¤ª¤¦¤È¤¹¤ë¡£ -¤³¤ì¤¬¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê \fI/tmp\fP ¤ò»È¤¦¡£ -.SH ´ØÏ¢¹àÌÜ +が使うディレクトリは指定されていない。 +glibc では \fI\fP で定義されている +\fIP_tmpdir\fP をパスの先頭に使おうとする。 +これが失敗した場合は、ディレクトリ \fI/tmp\fP を使う。 +.SH 関連項目 .BR exit (3), .BR mkstemp (3), .BR mktemp (3), diff --git a/release/man3/tmpnam.3 b/release/man3/tmpnam.3 index f9bf9588..debcd819 100644 --- a/release/man3/tmpnam.3 +++ b/release/man3/tmpnam.3 @@ -31,98 +31,98 @@ .\" Updated 2006-07-26, Akihiro MOTOKI , LDP v2.36 .\" .TH TMPNAM 3 2010-09-10 "" "Linux Programmer's Manual" -.SH ̾Á° -tmpnam, tmpnam_r \- °ì»þ¥Õ¥¡¥¤¥ë¤Î̾Á°¤òºîÀ®¤¹¤ë -.SH ½ñ¼° +.SH 名前 +tmpnam, tmpnam_r \- 一時ファイルの名前を作成する +.SH 書式 .nf .B #include .sp .BI "char *tmpnam(char *" s ); .fi -.SH ÀâÌÀ +.SH 説明 .BR tmpnam () -´Ø¿ô¤Ï¡¢¥Õ¥¡¥¤¥ë̾¤Ë»È¤¨¤ëʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¤¢¤ë»þÅÀ¤Ç¤ÏƱ¤¸Ì¾Á°¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¥Õ¥¡¥¤¥ë̾¤¬ÊÖ¤µ¤ì¤ë¤Î¤Ç¡¢ -ÍÄÃÕ¤Ê¥×¥í¥°¥é¥Þ¤Ï¤³¤Îʸ»úÎ󤬰ì»þ¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë̾¤È¤·¤Æ -Ŭ¤·¤Æ¤¤¤ë¤È¹Í¤¨¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -°ú¤­¿ô +関数は、ファイル名に使える文字列へのポインタを返す。 +ある時点では同じ名前を持つファイルが存在しないファイル名が返されるので、 +幼稚なプログラマはこの文字列が一時ファイルのファイル名として +適していると考えるかもしれない。 +引き数 .I s -¤¬ NULL ¤Ê¤é¡¢¤³¤Î̾Á°¤ÏÆâÉô¤ÎÀÅŪ¥Ð¥Ã¥Õ¥¡¤ËºîÀ®¤µ¤ì¡¢ -¼¡¤Ë +が NULL なら、この名前は内部の静的バッファに作成され、 +次に .BR tmpnam () -´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿»þ¤Ë¾å½ñ¤­¤µ¤ì¤ë¡£ +関数が呼び出された時に上書きされる。 .I s -¤¬ NULL ¤Ç¤Ê¤±¤ì¤Ð¡¢¥Õ¥¡¥¤¥ë̾¤Ï +が NULL でなければ、ファイル名は .I s -¤¬»Ø¤¹ (¾¯¤Ê¤¯¤È¤â +が指す (少なくとも .I L_tmpnam -¤ÎŤµ¤ò»ý¤Ä) ʸ»úÇÛÎó¤Ë¥³¥Ô¡¼¤µ¤ì¡¢ -À®¸ù¤·¤¿¾ì¹ç¤Ï +の長さを持つ) 文字配列にコピーされ、 +成功した場合は .I s -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .LP -ºîÀ®¤µ¤ì¤ë¥Ñ¥¹Ì¾¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤ÎÉôʬ¤Ë +作成されるパス名は、ディレクトリの部分に .I P_tmpdir -¤¬»È¤ï¤ì¤ë¡£ +が使われる。 .RI ( L_tmpnam -¤È +と .I P_tmpdir -¤Ï¡¢°Ê²¼¤ÇÀâÌÀ¤¹¤ë +は、以下で説明する .B TMP_MAX -ƱÍÍ +同様 .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£) -.SH ÊÖ¤êÃÍ +で定義されている。) +.SH 返り値 .BR tmpnam () -´Ø¿ô¤Ï°ì°Õ¤Ê°ì»þ¥Õ¥¡¥¤¥ë̾¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -°ì°Õ¤Ê¥Õ¥¡¥¤¥ë̾¤¬ºîÀ®¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ -¥¨¥é¡¼¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ½àµò +関数は一意な一時ファイル名へのポインタを返す。 +一意なファイル名が作成できなかった場合は NULL を返す。 +.SH エラー +エラーは定義されていない。 +.SH 準拠 SVr4, 4.3BSD, C89, C99, POSIX.1-2001. -POSIX.1-2008 ¤Ï +POSIX.1-2008 は .BR tmpnam () -¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£ -.SH Ãí°Õ +を廃止予定としている。 +.SH 注意 .BR tmpnam () -´Ø¿ô¤ÏºÇÂç +関数は最大 .B TMP_MAX -²ó¤Þ¤Ç¡¢¸Æ¤Ó½Ð¤µ¤ì¤ëÅ٤˰ۤʤëʸ»úÎó¤òºîÀ®¤¹¤ë¡£ +回まで、呼び出される度に異なる文字列を作成する。 .B TMP_MAX -²ó°Ê¾å¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¡¢¤½¤ÎÆ°ºî¤Ï¼ÂÁõ°Í¸¤Ç¤¢¤ë¡£ +回以上呼び出された場合、その動作は実装依存である。 .LP .BR tmpnam () -¤Ï¿ä¬¤¬Æñ¤·¤¤Ì¾Á°¤òÀ¸À®¤¹¤ë¤¬¡¢¤½¤ì¤Ë¤â¤«¤«¤ï¤é¤º¡¢ +は推測が難しい名前を生成するが、それにもかかわらず、 .BR tmpnam () -¤¬¥Ñ¥¹Ì¾¤òÊÖ¤·¤Æ¤«¤é¡¢¥×¥í¥°¥é¥à¤¬¤½¤Î¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë -¤Þ¤Ç¤Î´Ö¤Ë¡¢ÊÌ¤Î¥×¥í¥°¥é¥à¤¬Æ±¤¸¥Ñ¥¹Ì¾¤Ç¡¢¥Õ¥¡¥¤¥ë¤ò +がパス名を返してから、プログラムがそのファイルをオープンする +までの間に、別のプログラムが同じパス名で、ファイルを .BR open (2) -¤ÇºîÀ®¤·¤¿¤ê¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òºîÀ®¤·¤¿¤ê¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¤³¤ì¤Ï¥»¥­¥å¥ê¥Æ¥£¥Û¡¼¥ë¤Ë¤Ä¤Ê¤¬¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¤½¤Î¤è¤¦¤Ê²ÄǽÀ­¤ò²óÈò¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ +で作成したり、シンボリックリンクを作成したりする可能性がある。 +これはセキュリティホールにつながる可能性がある。 +そのような可能性を回避するためには、 .BR open (2) -¤Î +の .B O_EXCL -¥Õ¥é¥°¤ò»È¤Ã¤Æ¥Ñ¥¹Ì¾¤ò¥ª¡¼¥×¥ó¤¹¤ì¤Ð¤è¤¤¡£ -¤â¤Ã¤È¤¤¤¤¤Î¤Ï¡¢ +フラグを使ってパス名をオープンすればよい。 +もっといいのは、 .BR mkstemp (3) -¤ä +や .BR tmpfile (3) -¤ò»È¤¦¤³¤È¤Ç¤¢¤ë¡£ +を使うことである。 .LP -°Ü¿¢À­¤¬É¬Íפʡ¢¥¹¥ì¥Ã¥É¤ò»È¤Ã¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ +移植性が必要な、スレッドを使ったアプリケーションでは、 .B _POSIX_THREADS -¤« +か .B _POSIX_THREAD_SAFE_FUNCTIONS -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢ +が定義されている場合に、 .BR tmpnam () -´Ø¿ô¤ò NULL °ú¤­¿ô¤Ç¸Æ¤Ó½Ð¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +関数を NULL 引き数で呼び出してはならない。 .LP -POSIX Áð°Æ¤Ç¤Ï¡¢´Ø¿ô +POSIX 草案では、関数 .BR tmpnam_r () -¤ò»È¤¦¤³¤È¤òÄó°Æ¤·¤Æ¤¤¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ -NULL ¤ò»È¤ï¤Ê¤¤¤è¤¦¤Ë¤È¤¤¤¦·Ù¹ð¤Î°ÕÌ£¤Ç NULL ¤òÊÌ°·¤¤¤·¤Æ¤¤¤ë¡£ +を使うことを提案している。 +この関数は、以下のように定義されており、 +NULL を使わないようにという警告の意味で NULL を別扱いしている。 .sp .nf .in +4n @@ -134,22 +134,22 @@ tmpnam_r(char *s) .in .fi .sp -¿ô¤Ï¾¯¤Ê¤¤¤¬¡¢¤³¤Î´Ø¿ô¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Î glibc ¤Î¥×¥í¥È¥¿¥¤¥×¤ò +数は少ないが、この関数を実装しているシステムもある。 +この関数の glibc のプロトタイプを .I -¤«¤éÆÀ¤ë¤Ë¤Ï¡¢ -(¡Ö¤É¤Î¡×¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤è¤ê¤âÁ°¤Ë) +から得るには、 +(「どの」ヘッダファイルをインクルードするよりも前に) .B _SVID_SOURCE -¤« +か .B _BSD_SOURCE -¤òÄêµÁ¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¡£ -.SH ¥Ð¥° -·è¤·¤Æ¤³¤Î´Ø¿ô¤ò»È¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£Âå¤ï¤ê¤Ë +を定義しておく必要がある。 +.SH バグ +決してこの関数を使ってはならない。代わりに .BR mkstemp (3) -¤« +か .BR tmpfile (3) -¤ò»È¤¦¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を使うこと。 +.SH 関連項目 .BR mkstemp (3), .BR mktemp (3), .BR tempnam (3), diff --git a/release/man3/toascii.3 b/release/man3/toascii.3 index 9b2abd35..9a4abd25 100644 --- a/release/man3/toascii.3 +++ b/release/man3/toascii.3 @@ -30,9 +30,9 @@ .\" Added BUGS section, aeb, 950919 .\" .TH TOASCII 3 2009-03-15 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -toascii \- ʸ»ú¤ò ASCII ¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +toascii \- 文字を ASCII に変換する +.SH 書式 .nf .B #include .sp @@ -40,31 +40,31 @@ toascii \- ʸ .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR toascii (): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR toascii () -¤Ï¾å°Ì¥Ó¥Ã¥È¤ò¥¯¥ê¥¢¤¹¤ë»ö¤Ë¤è¤ê¡¢ -ASCII ʸ»ú¥»¥Ã¥È¤ËŬ¹ç¤¹¤ë¤è¤¦¤Ë \fIc\fP ¤ò 7¥Ó¥Ã¥È¤Î \fIunsigned char\fP -¤ËÊÑ´¹¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -ÊÑ´¹¤µ¤ì¤¿Ê¸»ú¤òÊÖ¤¹¡£ -.SH ½àµò +は上位ビットをクリアする事により、 +ASCII 文字セットに適合するように \fIc\fP を 7ビットの \fIunsigned char\fP +に変換する。 +.SH 返り値 +変換された文字を返す。 +.SH 準拠 SVr4, BSD, POSIX.1-2001. -POSIX.1-2008 ¤Ï +POSIX.1-2008 は .BR toascii () -¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£ -¥í¡¼¥«¥é¥¤¥º¤µ¤ì¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢°Ü¿¢À­¤ò³ÎÊݤ·¤Ä¤Ä¡¢ -¤³¤Î´Ø¿ô¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -.SH ¥Ð¥° -¤³¤Î´Ø¿ô¤ò»È¤¦»ö¤Ç¤¿¤¯¤µ¤ó¤Î¿Í¡¹¤¬ÉÔ¹¬¤Ë¤Ê¤ë¤À¤í¤¦¡£ -¤³¤Î´Ø¿ô¤Ï¥¢¥¯¥»¥ó¥ÈÉÕ¤­¤Î»ú¤ò¤Ç¤¿¤é¤á¤Êʸ»ú¤ËÊÑ´¹¤·¤Æ¤·¤Þ¤¦¡£ -.SH ´ØÏ¢¹àÌÜ +を廃止予定としている。 +ローカライズされたアプリケーションでは、移植性を確保しつつ、 +この関数を使用することはできない点に注意すること。 +.SH バグ +この関数を使う事でたくさんの人々が不幸になるだろう。 +この関数はアクセント付きの字をでたらめな文字に変換してしまう。 +.SH 関連項目 .BR isascii (3), .BR tolower (3), .BR toupper (3) diff --git a/release/man3/toupper.3 b/release/man3/toupper.3 index 7f9f04de..06672157 100644 --- a/release/man3/toupper.3 +++ b/release/man3/toupper.3 @@ -32,9 +32,9 @@ .\" by HANATAKA Shinya .\" .TH TOUPPER 3 1993-04-04 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -toupper, tolower \- ¾®Ê¸»ú¤òÂçʸ»ú¤Ë¤¹¤ë¡£¤Þ¤¿¤ÏÂçʸ»ú¤ò¾®Ê¸»ú¤Ë¤¹¤ë¡£ -.SH ½ñ¼° +.SH 名前 +toupper, tolower \- 小文字を大文字にする。または大文字を小文字にする。 +.SH 書式 .nf .B #include .sp @@ -42,41 +42,41 @@ toupper, tolower \- .br .BI "int tolower(int " "c" ); .fi -.SH ÀâÌÀ +.SH 説明 .BR toupper () -¤Ï¡¢ +は、 .I c -¤¬Âçʸ»ú¤Ë¤Ç¤­¤ëʸ»ú¤Ç¤¢¤ë¤Ê¤é¤ÐÂçʸ»ú¤ËÊÑ´¹¤¹¤ë¡£ +が大文字にできる文字であるならば大文字に変換する。 .PP .BR tolower () -¤Ï +は .I c -¤¬¾®Ê¸»ú¤Ë¤Ç¤­¤ëʸ»ú¤Ç¤¢¤ë¤Ê¤é¤Ð¾®Ê¸»ú¤ËÊÑ´¹¤¹¤ë¡£ +が小文字にできる文字であるならば小文字に変換する。 .PP -¤â¤· +もし .I c -¤¬ +が .I unsigned char -¤ÎÃͤǤʤ¤¤« +の値でないか .B EOF -¤Ê¤é¤Ð¡¢¤³¤ì¤é¤Î´Ø¿ô¤ÎÆ°ºî¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -ÊÑ´¹¤¬¤Ç¤­¤ì¤ÐÊÑ´¹¸å¤Îʸ»ú¤òÊÖ¤¹¡£¤Ç¤­¤Ê¤±¤ì¤ÐÊÑ´¹Á°¤Î +ならば、これらの関数の動作は未定義である。 +.SH 返り値 +変換ができれば変換後の文字を返す。できなければ変換前の .I c -¤òÊÖ¤¹¡£ -.SH ½àµò +を返す。 +.SH 準拠 C89, C99, 4.3BSD. -.SH ¥Ð¥° -¤Ê¤Ë¤¬Âçʸ»ú¤Ç¤Ê¤Ë¤¬¾®Ê¸»ú¤Ê¤Î¤«¤È¤¤¤¦¤³¤È¤Î¾ÜºÙ¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Ë -°Í¸¤·¤Æ¤¤¤ë¡£¤¿¤È¤¨¤Ð¡¢¥Ç¥Õ¥©¥ë¥È¤Î +.SH バグ +なにが大文字でなにが小文字なのかということの詳細は、現在のロケールに +依存している。たとえば、デフォルトの .B """C""" -¥í¥±¡¼¥ë¤Ç¤Ï¥¦¥à¥é¥¦¥È¤òǧ¼±¤·¤Ê¤¤¤¿¤á¡¢¤½¤ì¤é¤Îʸ»ú¤ÏÊÑ´¹¤Ç¤­¤Ê¤¤¡£ +ロケールではウムラウトを認識しないため、それらの文字は変換できない。 .PP -.\" ¤Þ¤¿¡¢±Ñ¸ì°Ê³°¤Î¥í¥±¡¼¥ë¤Ç¤Ï¡¢Âçʸ»ú¤È¾®Ê¸»ú¤¬Àµ¤·¤¯Âбþ¤·¤Ê¤¤ -.\" ¤³¤È¤¬¤¢¤ë¡£¤¿¤È¤¨¤Ð¡¢¥É¥¤¥Ä¸ì¤Î¥¨¥¹¥Ä¥§¥Ã¥È¤Ê¤É¤Ç¤¢¤ë¡£ -¤¤¤¯¤Ä¤«¤ÎÈó±Ñ¸ì¥í¥±¡¼¥ë¤Ç¤Ï¡¢Âбþ¤¹¤ëÂçʸ»ú¤ò»ý¤¿¤Ê¤¤¾®Ê¸»ú¤¬Â¸ºß¤¹¤ë¡£ -¥É¥¤¥Ä¸ì¤Î¥¨¥¹¥Ä¥§¥Ã¥È¤¬°ì¤Ä¤ÎÎã¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +.\" また、英語以外のロケールでは、大文字と小文字が正しく対応しない +.\" ことがある。たとえば、ドイツ語のエスツェットなどである。 +いくつかの非英語ロケールでは、対応する大文字を持たない小文字が存在する。 +ドイツ語のエスツェットが一つの例である。 +.SH 関連項目 .BR isalpha (3), .BR setlocale (3), .BR towlower (3), diff --git a/release/man3/towctrans.3 b/release/man3/towctrans.3 index 00140d49..3b644505 100644 --- a/release/man3/towctrans.3 +++ b/release/man3/towctrans.3 @@ -15,39 +15,39 @@ .\" Translated Mon Oct 25 08:17:41 JST 1999 .\" by FUJIWARA Teruyoshi .\" -.\" WORD: transliteration descriptor ÊÑ´¹µ­½Ò»Ò +.\" WORD: transliteration descriptor 変換記述子 .\" .TH TOWCTRANS 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -towctrans \- ¥ï¥¤¥Éʸ»ú¤ÎÊÑ´¹ -.SH ½ñ¼° +.SH 名前 +towctrans \- ワイド文字の変換 +.SH 書式 .nf .B #include .sp .BI "wint_t towctrans(wint_t " wc ", wctrans_t " desc ); .fi -.SH ÀâÌÀ -\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¤Ê¤é¤Ð¡¢ +.SH 説明 +\fIwc\fP がワイド文字ならば、 .BR towctrans () -´Ø¿ô¤ÏÊÑ´¹µ­½Ò»Ò -\fIdesc\fP ¤Ë½¾¤Ã¤Æ¤½¤Îʸ»ú¤òÊÑ´¹¤¹¤ë¡£\fIwc\fP ¤¬ \fBWEOF\fP ¤Ê¤é¤Ð¡¢ -\fBWEOF\fP ¤¬ÊÖ¤µ¤ì¤ë¡£ +関数は変換記述子 +\fIdesc\fP に従ってその文字を変換する。\fIwc\fP が \fBWEOF\fP ならば、 +\fBWEOF\fP が返される。 .PP -\fIdesc\fP ¤Ï¡¢ +\fIdesc\fP は、 .BR wctrans (3) -¤¬ÊÖ¤·¤¿ÊÑ´¹µ­½Ò»Ò¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +が返した変換記述子でなければならない。 +.SH 返り値 .BR towctrans () -´Ø¿ô¤Ï¡¢ÊÑ´¹·ë²Ì¤Î¥ï¥¤¥Éʸ»ú¤òÊÖ¤¹¡£\fIwc\fP ¤¬ \fBWEOF\fP -¤Ê¤é¤Ð¡¢\fBWEOF\fP ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、変換結果のワイド文字を返す。\fIwc\fP が \fBWEOF\fP +ならば、\fBWEOF\fP を返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR towctrans () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +カテゴリに依存する。 +.SH 関連項目 .BR towlower (3), .BR towupper (3), .BR wctrans (3) diff --git a/release/man3/towlower.3 b/release/man3/towlower.3 index 37ab1492..11ea07f3 100644 --- a/release/man3/towlower.3 +++ b/release/man3/towlower.3 @@ -16,38 +16,38 @@ .\" by FUJIWARA Teruyoshi .\" .TH TOWLOWER 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -towlower \- ¥ï¥¤¥Éʸ»ú 1 ¸Ä¤ò¾®Ê¸»ú¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +towlower \- ワイド文字 1 個を小文字に変換する +.SH 書式 .nf .B #include .sp .BI "wint_t towlower(wint_t " wc ); .fi -.SH ÀâÌÀ +.SH 説明 .BR towlower () -´Ø¿ô¤Ï¡¢ +関数は、 .BR tolower (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¤Ê¤é¤Ð¡¢¤³¤Îʸ»ú¤Ï¾®Ê¸»ú¤ËÊÑ´¹¤µ¤ì¤ë¡£ -Âçʸ»ú¡¦¾®Ê¸»ú¤Î¶èÊ̤¬¤Ê¤¤Ê¸»ú¤ÏÊÑ´¹¤µ¤ì¤º¤ËÊÖ¤µ¤ì¤ë¡£ -\fIwc\fP ¤¬ \fBWEOF\fP ¤Ê¤é¤Ð¡¢\fBWEOF\fP ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +関数に対応するワイド文字関数である。 +\fIwc\fP がワイド文字ならば、この文字は小文字に変換される。 +大文字・小文字の区別がない文字は変換されずに返される。 +\fIwc\fP が \fBWEOF\fP ならば、\fBWEOF\fP が返される。 +.SH 返り値 .BR towlower () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤ËÂбþ¤¹¤ë¾®Ê¸»ú¤òÊÖ¤¹¡£\fIwc\fP ¤¬ -\fBWEOF\fP ¤Ê¤é¤Ð¡¢\fBWEOF\fP ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIwc\fP に対応する小文字を返す。\fIwc\fP が +\fBWEOF\fP ならば、\fBWEOF\fP を返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR towlower () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .PP -¤³¤Î´Ø¿ô¤ò Unicode ʸ»ú¤ËÂФ·¤Æ»È¤¦¤Î¤Ï¤¢¤Þ¤êŬÀڤǤʤ¤¡£¤Ê¤¼¤Ê¤é¡¢ -Unicode ¤Ë¤Ï¡¢Âçʸ»ú (upper case)¡¦¾®Ê¸»ú (lower case)¡¦ -¥¿¥¤¥È¥ëʸ»ú (title case) ¤È¤¤¤¦ 3 ¤Ä¤Î "case" ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +この関数を Unicode 文字に対して使うのはあまり適切でない。なぜなら、 +Unicode には、大文字 (upper case)・小文字 (lower case)・ +タイトル文字 (title case) という 3 つの "case" が含まれているからである。 +.SH 関連項目 .BR iswlower (3), .BR towctrans (3), .BR towupper (3) diff --git a/release/man3/towupper.3 b/release/man3/towupper.3 index 3a4aecc5..ef5d4867 100644 --- a/release/man3/towupper.3 +++ b/release/man3/towupper.3 @@ -16,37 +16,37 @@ .\" by FUJIWARA Teruyoshi .\" .TH TOWUPPER 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -towupper \- ¥ï¥¤¥Éʸ»ú 1 ¸Ä¤òÂçʸ»ú¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +towupper \- ワイド文字 1 個を大文字に変換する +.SH 書式 .nf .B #include .sp .BI "wint_t towupper(wint_t " wc ); .fi -.SH ÀâÌÀ +.SH 説明 .BR towupper () -´Ø¿ô¤Ï¡¢ +関数は、 .BR toupper (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -\fIwc\fP ¤¬¥ï¥¤¥Éʸ»ú¤Ê¤é¤Ð¡¢¤³¤Îʸ»ú¤ÏÂçʸ»ú¤ËÊÑ´¹¤µ¤ì¤ë¡£ -Âçʸ»ú¡¦¾®Ê¸»ú¤Î¶èÊ̤¬¤Ê¤¤Ê¸»ú¤ÏÊÑ´¹¤µ¤ì¤º¤ËÊÖ¤µ¤ì¤ë¡£ -\fIwc\fP ¤¬ \fBWEOF\fP ¤Ê¤é¤Ð¡¢\fBWEOF\fP ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +関数に対応するワイド文字関数である。 +\fIwc\fP がワイド文字ならば、この文字は大文字に変換される。 +大文字・小文字の区別がない文字は変換されずに返される。 +\fIwc\fP が \fBWEOF\fP ならば、\fBWEOF\fP が返される。 +.SH 返り値 .BR towupper () -´Ø¿ô¤Ï¡¢\fIwc\fP ¤ËÂбþ¤¹¤ëÂçʸ»ú¤òÊÖ¤¹¡£\fIwc\fP ¤¬ -\fBWEOF\fP ¤Ê¤é¤Ð¡¢\fBWEOF\fP ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIwc\fP に対応する大文字を返す。\fIwc\fP が +\fBWEOF\fP ならば、\fBWEOF\fP を返す。 +.SH 準拠 C99. -.SH Ãí°Õ -\fBtowlower\fP ¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +.SH 注意 +\fBtowlower\fP の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .PP -¤³¤Î´Ø¿ô¤ò Unicode ʸ»ú¤ËÂФ·¤Æ»È¤¦¤Î¤Ï¤¢¤Þ¤êŬÀڤǤʤ¤¡£¤Ê¤¼¤Ê¤é¡¢ -Unicode ¤Ë¤Ï¡¢Âçʸ»ú (upper case)¡¦¾®Ê¸»ú (lower case)¡¦ -¥¿¥¤¥È¥ëʸ»ú (title case) ¤È¤¤¤¦ 3 ¤Ä¤Î "case" ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +この関数を Unicode 文字に対して使うのはあまり適切でない。なぜなら、 +Unicode には、大文字 (upper case)・小文字 (lower case)・ +タイトル文字 (title case) という 3 つの "case" が含まれているからである。 +.SH 関連項目 .BR iswupper (3), .BR towctrans (3), .BR towlower (3) diff --git a/release/man3/trunc.3 b/release/man3/trunc.3 index 6317fa80..7777b6e1 100644 --- a/release/man3/trunc.3 +++ b/release/man3/trunc.3 @@ -28,9 +28,9 @@ .\" by Yuichi SATO .\" .TH TRUNC 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -trunc, truncf, truncl \- 0 ¤Ë¶á¤¤Êý¤ÎÀ°¿ôÃͤ˴ݤá¤ë -.SH ½ñ¼° +.SH 名前 +trunc, truncf, truncl \- 0 に近い方の整数値に丸める +.SH 書式 .nf .B #include .sp @@ -41,12 +41,12 @@ trunc, truncf, truncl \- 0 .BI "long double truncl(long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -61,28 +61,28 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤ÏÀäÂÐÃͤ¬ \fIx\fP ¤è¤ê¾®¤µ¤¤ -°ìÈֶᤤÀ°¿ôÃÍ¤Ë \fIx\fP ¤ò´Ý¤á¤ë¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤Ï´Ý¤á¤é¤ì¤¿À°¿ôÃͤòÊÖ¤¹¡£ +.SH 説明 +これらの関数は絶対値が \fIx\fP より小さい +一番近い整数値に \fIx\fP を丸める。 +.SH 返り値 +これらの関数は丸められた整数値を返す。 -\fIx\fP ¤¬À°¿ô¡¢Ìµ¸ÂÂç¡¢NaN ¤Î¾ì¹ç¡¢\fIx\fP ¼«¿È¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¥¨¥é¡¼¤ÏȯÀ¸¤·¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò +\fIx\fP が整数、無限大、NaN の場合、\fIx\fP 自身が返される。 +.SH エラー +エラーは発生しない。 +.SH バージョン +これらの関数は glibc バージョン 2.1 で初めて登場した。 +.SH 準拠 C99, POSIX.1-2001. -.SH Ãí°Õ -¤³¤ì¤é¤Î´Ø¿ô¤¬ÊÖ¤¹À°¿ôÃͤÏÀ°¿ô·¿ +.SH 注意 +これらの関数が返す整数値は整数型 .RI ( int , .I long -¤Ê¤É) ¤Ë³ÊǼ¤¹¤ë¤Ë¤ÏÂ礭²á¤®¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Î·ë²Ì¤Ïʬ¤«¤é¤Ê¤¤¤Î¤Ç¡¢ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤òÈò¤±¤ë¤¿¤á¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤ÏÀ°¿ô·¿¤ËÂåÆþ¤¹¤ëÁ°¤Ë -ÊÖ¤µ¤ì¤¿ÃͤÎÈϰϳÎǧ¤ò¼Â¹Ô¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +など) に格納するには大き過ぎるかもしれない。 +オーバーフローが起こった場合の結果は分からないので、 +オーバーフローを避けるため、アプリケーションでは整数型に代入する前に +返された値の範囲確認を実行すべきである。 +.SH 関連項目 .BR ceil (3), .BR floor (3), .BR lrint (3), diff --git a/release/man3/tsearch.3 b/release/man3/tsearch.3 index cd6ca356..9a2d255f 100644 --- a/release/man3/tsearch.3 +++ b/release/man3/tsearch.3 @@ -29,9 +29,9 @@ .\" by Yuichi SATO .\" .TH TSEARCH 3 2008-09-23 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -tsearch, tfind, tdelete, twalk, tdestroy \- ÆóʬÌÚ (binary tree) ¤ÎÁàºî -.SH ½ñ¼° +.SH 名前 +tsearch, tfind, tdelete, twalk, tdestroy \- 二分木 (binary tree) の操作 +.SH 書式 .nf .B #include .sp @@ -48,131 +48,131 @@ tsearch, tfind, tdelete, twalk, tdestroy \- .BI " const VISIT " which , .BI " const int " depth "));" .sp -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "void tdestroy(void *" root ", void (*" free_node ")(void *" nodep )); .fi -.SH ÀâÌÀ +.SH 説明 .BR tsearch (), .BR tfind (), .BR twalk (), .BR tdelete () -¤Ï -ÆóʬÌÚ¤òÁàºî¤¹¤ë´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î´Ø¿ô¤Ï Knuth (6.2.2) Algorithm T ¤Ë´ð¤Å¤¤¤Æ¤¤¤ë¡£ -ÌÚ¹½Â¤¤Ë¤ª¤±¤ë³Æ¥Î¡¼¥É¤ÎºÇ½é¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢Âбþ¤¹¤ë¥Ç¡¼¥¿¡¦ -¥¢¥¤¥Æ¥à¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -(»²¾ÈÀè¤Î¥Ç¡¼¥¿¤Ï¡¢¸Æ¤Ó½Ð¤·¥×¥í¥°¥é¥à¤ÇÍÑ°Õ¤¹¤ë¡£) -\fIcompar\fP ¤ÏÈæ³Ó¥ë¡¼¥Á¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -Èæ³Ó¥ë¡¼¥Á¥ó¤Ï¡¢¥¢¥¤¥Æ¥à¤Ø¤Î¥Ý¥¤¥ó¥¿ 2 ¤Ä¤ò°ú¿ô¤Ë»ý¤Ä¡£ -Èæ³Ó¥ë¡¼¥Á¥ó¤ÎÊÖ¤êÃͤϡ¢1 ¤ÄÌܤΥ¢¥¤¥Æ¥à¤¬ 2 ¤ÄÌܤΥ¢¥¤¥Æ¥à¤è¤ê¤â -¡Ö¾®¤µ¤¤¡¢Åù¤·¤¤¡¢Â礭¤¤¡×¤Ë¤è¤Ã¤Æ¡¢ -¡ÖÉé¡¢0¡¢Àµ¡×¤ÎÀ°¿ôÃͤǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は +二分木を操作する関数である。 +これらの関数は Knuth (6.2.2) Algorithm T に基づいている。 +木構造における各ノードの最初のフィールドは、対応するデータ・ +アイテムへのポインタである。 +(参照先のデータは、呼び出しプログラムで用意する。) +\fIcompar\fP は比較ルーチンへのポインタである。 +比較ルーチンは、アイテムへのポインタ 2 つを引数に持つ。 +比較ルーチンの返り値は、1 つ目のアイテムが 2 つ目のアイテムよりも +「小さい、等しい、大きい」によって、 +「負、0、正」の整数値でなければならない。 .PP .BR tsearch () -¤Ï¡¢ÌÚ¹½Â¤¤«¤é¥¢¥¤¥Æ¥à¤ò¸¡º÷¤¹¤ë´Ø¿ô¤Ç¤¢¤ë¡£ -\fIkey\fP ¤Ï¡¢¸¡º÷¤¹¤ë¥¢¥¤¥Æ¥à¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -\fIrootp\fP ¤ÏÌÚ¹½Â¤¤Îº¬¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -ÌÚ¹½Â¤¤¬¥Î¡¼¥É¤ò´Þ¤Þ¤Ê¤¤¾ì¹ç¡¢\fIrootp\fP ¤Î»²¾È¤·¤Æ¤¤¤ëÊÑ¿ô¤Ï -NULL ¤ËÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -ÌÚ¹½Â¤¤Ë¥¢¥¤¥Æ¥à¤¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç¡¢ +は、木構造からアイテムを検索する関数である。 +\fIkey\fP は、検索するアイテムへのポインタである。 +\fIrootp\fP は木構造の根へのポインタへのポインタである。 +木構造がノードを含まない場合、\fIrootp\fP の参照している変数は +NULL に設定されていなければならない。 +木構造にアイテムが見つかった場合、 .BR tsearch () -¤Ï¤½¤Î¥¢¥¤¥Æ¥à¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢¥¢¥¤¥Æ¥à¤òÌÚ¹½Â¤¤ËÄɲä·¡¢ -Äɲä·¤¿¥¢¥¤¥Æ¥à¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +はそのアイテムへのポインタを返す。 +見つからなかった場合は、アイテムを木構造に追加し、 +追加したアイテムへのポインタを返す。 .PP .BR tfind () -¤Ï¡¢ +は、 .BR tsearch () -¤Ë»÷¤Æ¤¤¤ë¤¬¡¢ -¥¢¥¤¥Æ¥à¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç NULL ¤òÊÖ¤¹ÅÀ¤¬°Û¤Ê¤ë¡£ +に似ているが、 +アイテムが見つからなかった場合 NULL を返す点が異なる。 .PP .BR tdelete () -¤ÏÌÚ¹½Â¤¤«¤é¥¢¥¤¥Æ¥à¤òºï½ü¤¹¤ë¡£ -°ú¿ô¤Ï +は木構造からアイテムを削除する。 +引数は .BR tsearch () -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .PP .BR twalk () -¤Ï¡¢ÆóʬÌÚ¤ò¿¼¤µÍ¥Àè (depth-first) ¤Ç¡¢ -º¸¤«¤é±¦¤Ë¤¿¤É¤Ã¤Æ¤¤¤¯´Ø¿ô¤Ç¤¢¤ë¡£ -\fIroot\fP ¤Ïµ¯ÅÀ¤È¤Ê¤ë¥Î¡¼¥É¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -\fIroot\fP ¤Ëº¬°Ê³°¤Î¥Î¡¼¥É¤ò»ØÄꤹ¤ë¤È¡¢ÉôʬÌÚ¤¬ÂоݤȤʤ롣 +は、二分木を深さ優先 (depth-first) で、 +左から右にたどっていく関数である。 +\fIroot\fP は起点となるノードへのポインタである。 +\fIroot\fP に根以外のノードを指定すると、部分木が対象となる。 .BR twalk () -¤Ï¡¢¥Î¡¼¥É¤òˬ¤ì¤ëÅÙ¤Ë -(¤Ä¤Þ¤ê¡¢ÆâÉô¥Î¡¼¥É¤ËÂФ·¤Æ¤Ï 3 ²ó¡¢ÍÕ¤ËÂФ·¤Æ¤Ï 1 ²ó) -¥æ¡¼¥¶´Ø¿ô \fIaction\fP ¤ò¸Æ¤Ó½Ð¤¹¡£ -\fIaction\fP ¤Ë¤Ï°Ê²¼¤Î½ç¤Ë 3 ¤Ä¤Î°ú¿ô¤¬Í¿¤¨¤é¤ì¤ë¡£ -ºÇ½é¤Î°ú¿ô¤Ïˬ¤ì¤¿¥Î¡¼¥É¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -2 ¤ÄÌܤΰú¿ô¤Ë¤Ï¡¢ÆâÉô¥Î¡¼¥É¤Î¾ì¹ç¤ÏˬÌä²ó¿ô¤Ë±þ¤¸¤Æ -\fBpreorder\fP, \fBpostorder\fP, \fBendorder\fP ¤¬¡¢ -Íդξì¹ç¤Ï \fBleaf\fP ¤¬Í¿¤¨¤é¤ì¤ë¡£ -(¤³¤ì¤é¤Î¥·¥ó¥Ü¥ë¤Ï \fI\fP ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£) -3 ¤ÄÌܤΰú¿ô¤Ï¥Î¡¼¥É¤Î¿¼¤µ¤Ç¡¢º¬¤Î¾ì¹ç¤Ï 0 ¤Ç¤¢¤ë¡£ +は、ノードを訪れる度に +(つまり、内部ノードに対しては 3 回、葉に対しては 1 回) +ユーザ関数 \fIaction\fP を呼び出す。 +\fIaction\fP には以下の順に 3 つの引数が与えられる。 +最初の引数は訪れたノードへのポインタである。 +2 つ目の引数には、内部ノードの場合は訪問回数に応じて +\fBpreorder\fP, \fBpostorder\fP, \fBendorder\fP が、 +葉の場合は \fBleaf\fP が与えられる。 +(これらのシンボルは \fI\fP で定義されている。) +3 つ目の引数はノードの深さで、根の場合は 0 である。 .PP -(¤è¤ê°ìÈÌŪ¤Ë¤Ï¡¢\fBpreorder\fP, \fBpostorder\fP, \fBendorder\fP ¤Ï -\fBpreorder\fP, \fBinorder\fP, \fBpostorder\fP ¤È¤·¤ÆÃΤé¤ì¤Æ¤¤¤ë: -¤½¤ì¤¾¤ì¡¢»ÒÍ×ÁǤòé¤ëÁ°¡¦ºÇ½é¤Î»ÒÍ×ÁǤòé¤Ã¤¿¸å¤«¤Ä 2 ÈÖÌܤλÒÍ×ÁǤòé¤ëÁ°¡¦ -»ÒÍ×ÁǤòé¤Ã¤¿¸å¤È¤¤¤¦¤³¤È¤òɽ¤·¤Æ¤¤¤ë¡£ -¤è¤Ã¤Æ \fBpost\%order\fP ¤È¤¤¤¦Ì¾Á°¤òÁª¤Ö¤Î¤Ï¾¯¤·Ê¶¤é¤ï¤·¤¤¡£) +(より一般的には、\fBpreorder\fP, \fBpostorder\fP, \fBendorder\fP は +\fBpreorder\fP, \fBinorder\fP, \fBpostorder\fP として知られている: +それぞれ、子要素を辿る前・最初の子要素を辿った後かつ 2 番目の子要素を辿る前・ +子要素を辿った後ということを表している。 +よって \fBpost\%order\fP という名前を選ぶのは少し紛らわしい。) .PP .BR tdestroy () -¤Ï \fIroot\fP ¤¬»Ø¤¹ÌÚ¹½Â¤Á´ÂΤòºï½ü¤·¡¢ +は \fIroot\fP が指す木構造全体を削除し、 .BR tsearch () -´Ø¿ô¤Ç³ÎÊݤµ¤ì¤¿¥ê¥½¡¼¥¹¤òÁ´¤Æ²òÊü¤¹¤ë¡£ -ÌÚ¹½Â¤¤Î³Æ¥Î¡¼¥É¤Ë¤Ä¤¤¤Æ¡¢´Ø¿ô \fIfree_node\fP ¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ -¥Ç¡¼¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬¤³¤Î´Ø¿ô¤Î°ú¿ô¤È¤·¤ÆÅϤµ¤ì¤ë¡£ -¤½¤Î¤è¤¦¤ÊÆ°ºî¤¬É¬ÍפǤʤ±¤ì¤Ð¡¢ -\fIfree_node\fP ¤Ï²¿¤â¤·¤Ê¤¤´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +関数で確保されたリソースを全て解放する。 +木構造の各ノードについて、関数 \fIfree_node\fP が呼び出される。 +データへのポインタがこの関数の引数として渡される。 +そのような動作が必要でなければ、 +\fIfree_node\fP は何もしない関数へのポインタでなければならない。 +.SH 返り値 .BR tsearch () -¤Ï¡¢ÌÚ¹½Â¤¤Ë¸«¤Ä¤«¤Ã¤¿¥¢¥¤¥Æ¥à¤«¡¢ -¿·¤·¤¯Äɲä·¤¿¥¢¥¤¥Æ¥à¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥á¥â¥ê¤ÎÉÔ­¤Î¤¿¤á¥¢¥¤¥Æ¥à¤òÄɲäǤ­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +は、木構造に見つかったアイテムか、 +新しく追加したアイテムへのポインタを返す。 +メモリの不足のためアイテムを追加できなかった場合は NULL を返す。 .BR tfind () -¤Ï¡¢¥¢¥¤¥Æ¥à¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -°ìÃפ¹¤ë¥¢¥¤¥Æ¥à¤¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ -¸¡º÷¾ò·ï¤Ë°ìÃפ¹¤ëÍ×ÁǤ¬Ê£¿ô¤¢¤ë¾ì¹ç¡¢ÊÖ¤µ¤ì¤ëÃͤÏÉÔÄê¤Ç¤¢¤ë¡£ +は、アイテムへのポインタを返す。 +一致するアイテムが見つからない場合は NULL を返す。 +検索条件に一致する要素が複数ある場合、返される値は不定である。 .PP .BR tdelete () -¤Ïºï½ü¤·¤¿¥¢¥¤¥Æ¥à¤Î¿Æ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¢¥¤¥Æ¥à¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ +は削除したアイテムの親へのポインタを返す。 +アイテムが見つからなかった場合は NULL を返す。 .PP -\fIrootp\fP ¤¬ NULL ¤Î¾ì¹ç¡¢ +\fIrootp\fP が NULL の場合、 .BR tsearch (), .BR tfind (), .BR tdelete () -¤Ï NULL ¤òÊÖ¤¹¡£ -.SH ½àµò +は NULL を返す。 +.SH 準拠 SVr4, POSIX.1-2001. -´Ø¿ô +関数 .BR tdestroy () -¤Ï GNU ¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH Ãí°Õ +は GNU の拡張である。 +.SH 注意 .BR twalk () -¤Ïº¬¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò°ú¿ô¤Ë¤È¤ë¤¬¡¢ -¤Û¤«¤Î´Ø¿ô¤Ïº¬¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +は根へのポインタを引数にとるが、 +ほかの関数は根へのポインタへのポインタである。 .PP .BR twalk () -¤Ë¤ª¤¤¤Æ¤Ï¡¢\fBpostorder\fP ¤Ï -¡Öº¸¤ÎÉôʬÌڤθå¤Ç¡¢±¦¤ÎÉôʬÌÚ¤ÎÁ°¡×¤ò°ÕÌ£¤·¤Æ¤¤¤ë¡£ -¤·¤«¤·¡¢¿Í¤Ë¤è¤Ã¤Æ¤Ï¤³¤ì¤ò "inorder" ¤È¸Æ¤ó¤Ç¡¢ -"postorder" ¤ò¡ÖξÊý¤ÎÉôʬÌڤθå¡×¤È¤¹¤ë¾ì¹ç¤â¤¢¤ë¡£ +においては、\fBpostorder\fP は +「左の部分木の後で、右の部分木の前」を意味している。 +しかし、人によってはこれを "inorder" と呼んで、 +"postorder" を「両方の部分木の後」とする場合もある。 .PP .BR tdelete () -¤Ï¡¢ºï½ü¤·¤¿¥Î¡¼¥É¤Î»ÈÍѤ·¤Æ¤¤¤¿¥á¥â¥ê¤ò²òÊü¤¹¤ë¤¬¡¢ -¥Î¡¼¥É¤ËÂбþ¤¹¤ë¥Ç¡¼¥¿¤Î¥á¥â¥ê¤Ï¡¢¥æ¡¼¥¶¤¬²òÊü¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は、削除したノードの使用していたメモリを解放するが、 +ノードに対応するデータのメモリは、ユーザが解放しなければならない。 .PP -²¼¤Î¥×¥í¥°¥é¥àÎã¤Ï¡¢¥æ¡¼¥¶´Ø¿ô¤¬ "endorder" ¤« "leaf" ¤ò°ú¿ô¤Ë¤·¤Æ -¸Æ¤Ó½Ð¤µ¤ì¤Æ°Ê¹ß¤Ï¡¢ +下のプログラム例は、ユーザ関数が "endorder" か "leaf" を引数にして +呼び出されて以降は、 .BR twalk () -¤¬¤½¤Î¥Î¡¼¥É¤ò»²¾È¤·¤Ê¤¤¤³¤È¤òÁ°Äó¤È¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï GNU ¥é¥¤¥Ö¥é¥ê¤Î¼ÂÁõ¤Ç¤Ïµ¡Ç½¤¹¤ë¤¬¡¢System V ¤Î¥Þ¥Ë¥å¥¢¥ë¤Ë¤Ï¸ºß¤·¤Ê¤¤¡£ -.SH Îã -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï 12 ¸Ä¤ÎÍð¿ô¤òÆóʬÌÚ¤ËÁÞÆþ¤·¤¿¸å¡¢ -ÁÞÆþ¤·¤¿¿ô¤ò½çÈ֤˽ÐÎϤ¹¤ë (ÁÞÆþ¤ÎºÝ¡¢½ÅÊ£¤·¤¿Íð¿ô¤Ï 1 ¤Ä¤Ë¤Þ¤È¤á¤é¤ì¤ë)¡£ +がそのノードを参照しないことを前提としている。 +これは GNU ライブラリの実装では機能するが、System V のマニュアルには存在しない。 +.SH 例 +以下のプログラムは 12 個の乱数を二分木に挿入した後、 +挿入した数を順番に出力する (挿入の際、重複した乱数は 1 つにまとめられる)。 .sp .nf #define _GNU_SOURCE /* Expose declaration of tdestroy() */ @@ -246,7 +246,7 @@ main(void) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bsearch (3), .BR hsearch (3), .BR lsearch (3) diff --git a/release/man3/ttyname.3 b/release/man3/ttyname.3 index cac5d0da..8306fa32 100644 --- a/release/man3/ttyname.3 +++ b/release/man3/ttyname.3 @@ -30,9 +30,9 @@ .\" Updated Fri Oct 16 JST 2002 by Kentaro Shirakata .\" .TH TTYNAME 3 2008-07-14 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -ttyname, ttyname_r \- üËö̾¤òÊÖ¤¹ -.SH ½ñ¼° +.SH 名前 +ttyname, ttyname_r \- 端末名を返す +.SH 書式 .nf .B #include .sp @@ -40,41 +40,41 @@ ttyname, ttyname_r \- ü .BI "int ttyname_r(int " fd ", char *" buf ", size_t " buflen ); .fi -.SH ÀâÌÀ +.SH 説明 .BR ttyname () -´Ø¿ô¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ \fIfd\fP ¤¬¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ëüËö¥Ç¥Ð¥¤¥¹¤Î -NULL ½ªÃ¼¤µ¤ì¤¿¥Ñ¥¹Ì¾¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬µ¯¤­¤¿¤Ê¤é¤Ð NULL ¤òÊÖ¤¹ -(¤¿¤È¤¨¤Ð¡¢\fIfd\fP ¤¬Ã¼Ëö¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¤È¤­)¡£ -ÊÖ¤êÃͤÏÀÅŪ¥Ç¡¼¥¿¤ò»Ø¤·¤Æ¤¤¤ë¤Î¤Ç¡¢¼¡¤Î¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +関数は、ファイルディスクリプタ \fIfd\fP がオープンしている端末デバイスの +NULL 終端されたパス名へのポインタを返す。 +エラーが起きたならば NULL を返す +(たとえば、\fIfd\fP が端末を参照していないとき)。 +返り値は静的データを指しているので、次の呼び出しで上書きされる可能性がある。 .BR ttyname_r () -´Ø¿ô¤Ï¡¢¤³¤Î¥Ñ¥¹Ì¾¤òŤµ +関数は、このパス名を長さ .I buflen -¤Î¥Ð¥Ã¥Õ¥¡ +のバッファ .I buf -¤Ë³ÊǼ¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ +に格納する。 +.SH 返り値 .BR ttyname () -´Ø¿ô¤Ï¡¢À®¸ù»þ¤Ï¥Ñ¥¹Ì¾¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¨¥é¡¼»þ¤Ï NULL ¤òÊÖ¤·¡¢ +関数は、成功時はパス名へのポインタを返す。 +エラー時は NULL を返し、 .I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ +が適切に設定される。 .BR ttyname_r () -´Ø¿ô¤Ï¡¢À®¸ù»þ¤Ë¤Ï 0 ¤òÊÖ¤·¡¢¥¨¥é¡¼»þ¤Ë¤Ï¥¨¥é¡¼ÈÖ¹æ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +関数は、成功時には 0 を返し、エラー時にはエラー番号を返す。 +.SH エラー .BR ttyname_r (): .TP .B EBADF -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÉÔÀµ¡£ +ファイルディスクリプタが不正。 .TP .B ENOTTY -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Ã¼Ëö¥Ç¥Ð¥¤¥¹¤ò¼¨¤·¤Æ¤¤¤Ê¤¤¡£ +ファイルディスクリプタが端末デバイスを示していない。 .TP .B ERANGE .I buflen -¤¬¥Ñ¥¹Ì¾¤ò³ÊǼ¤¹¤ë¤Ë¤Ïû¤¹¤®¤ë¡£ -.SH ½àµò +がパス名を格納するには短すぎる。 +.SH 準拠 4.2BSD, POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fstat (2), .BR isatty (3) diff --git a/release/man3/ttyslot.3 b/release/man3/ttyslot.3 index 83791852..4ffddcd4 100644 --- a/release/man3/ttyslot.3 +++ b/release/man3/ttyslot.3 @@ -29,19 +29,19 @@ .\" by Yuichi SATO .\" .TH TTYSLOT 3 2010-09-20 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -ttyslot \- ¥«¥ì¥ó¥È¥æ¡¼¥¶¤ÎüËö¤Î¥¹¥í¥Ã¥È¤ò¥Õ¥¡¥¤¥ë¤«¤éõ¤¹ -.SH ½ñ¼° -.BR "#include " " /* BSD ·Ï¤Î¥·¥¹¥Æ¥à¤È Linux ¤Î¾ì¹ç */" +.SH 名前 +ttyslot \- カレントユーザの端末のスロットをファイルから探す +.SH 書式 +.BR "#include " " /* BSD 系のシステムと Linux の場合 */" .br -.BR "#include " " /* System V ·Ï¤Î¥·¥¹¥Æ¥à¤Î¾ì¹ç */" +.BR "#include " " /* System V 系のシステムの場合 */" .sp .B "int ttyslot(void);" .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -52,112 +52,112 @@ _BSD_SOURCE || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_\ <\ 500\ &&\ _XOPEN_SOURCE_EXTENDED .RE .ad b -.SH ÀâÌÀ -¥ì¥¬¥·¡¼¤Ê´Ø¿ô +.SH 説明 +レガシーな関数 .BR ttyslot () -¤Ï¡¢¤¢¤ë¥Õ¥¡¥¤¥ë¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¥«¥ì¥ó¥È¥æ¡¼¥¶¤Î¥¨¥ó¥È¥ê¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÊÖ¤¹¡£ +は、あるファイルに書かれているカレントユーザのエントリのインデックスを返す。 .LP -¡Ö¤É¤Î¥Õ¥¡¥¤¥ë¤Ê¤Î¤«¡©¡×¤È¤¤¤¦¼ÁÌ䤬¤¢¤ë¤À¤í¤¦¡£ -¤Ç¤Ï¡¢¤Þ¤ººÇ½é¤Ë¤½¤ÎÎò»Ë¤ò¸«¤Æ¤ß¤è¤¦¡£ -.SS ÂçÀΤÎÎò»Ë -UNIX V6 ¤Ç¤Ï +「どのファイルなのか?」という質問があるだろう。 +では、まず最初にその歴史を見てみよう。 +.SS 大昔の歴史 +UNIX V6 では .I /etc/ttys -¥Õ¥¡¥¤¥ë¤¬»È¤ï¤ì¤Æ¤¤¤¿¡£ +ファイルが使われていた。 .BR init (8) -¥×¥í¥°¥é¥à¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ß¡¢ -³ÆüËö¹Ô¤Ç²¿¤ò¤¹¤Ù¤­¤«¤òõ¤¹¡£ -³Æ¹Ô¤Ï 3 ʸ»ú¤«¤é¹½À®¤µ¤ì¤Æ¤¤¤ë¡£ -1 ʸ»úÌÜ¤Ï \(aq0\(aq ¤Þ¤¿¤Ï \(aq1\(aq ¤Ç¤¢¤ê¡¢ -\(aq0\(aq ¤Ï¡Ö̵»ë¤¹¤ë¡×¤³¤È¤òɽ¤¹¡£ -2 ʸ»úÌܤÏüËö¤ò¼¨¤¹: \(aq8\(aq ¤Ï "/dev/tty8" ¤òɽ¤¹¡£ -3 ʸ»úÌÜ¤Ï +プログラムは、このファイルを読み込み、 +各端末行で何をすべきかを探す。 +各行は 3 文字から構成されている。 +1 文字目は \(aq0\(aq または \(aq1\(aq であり、 +\(aq0\(aq は「無視する」ことを表す。 +2 文字目は端末を示す: \(aq8\(aq は "/dev/tty8" を表す。 +3 文字目は .BR getty (8) -¤Ø¤Î°ú¤­¿ô¤Ç¤¢¤ê¡¢(Àܳ¤ò) »î¤ß¤ë²óÀþ®Å٤νç½ø¤òɽ¤¹ -(\(aq\-\(aq ¤Ï 110 ¥Ü¡¼¤ÇÀܳ¤Î»î¹Ô¤ò³«»Ï¤¹¤ë¤³¤È¤òɽ¤¹)¡£ -¤è¤Ã¤Æ°ìÈÌŪ¤Ê¹Ô¤Ï "18\-" ¤È¤Ê¤ë¡£ -¤¢¤ë¹Ô¤Ç¥Ï¥ó¥°¤·¤¿¾ì¹ç¤Ï¡¢\(aq1\(aq ¤ò \(aq0\(aq ¤ËÊѹ¹¤·¡¢ -init ¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ê¡¢\(aq0\(aq ¤ò \(aq1\(aq ºÆÅÙ¤ËÊѹ¹¤·¡¢ -init ¤ËºÆÅÙ¥·¥°¥Ê¥ë¤òÁ÷¤ë¤³¤È¤Ç²ò·è¤¹¤ë¡£ +への引き数であり、(接続を) 試みる回線速度の順序を表す +(\(aq\-\(aq は 110 ボーで接続の試行を開始することを表す)。 +よって一般的な行は "18\-" となる。 +ある行でハングした場合は、\(aq1\(aq を \(aq0\(aq に変更し、 +init にシグナルを送り、\(aq0\(aq を \(aq1\(aq 再度に変更し、 +init に再度シグナルを送ることで解決する。 .LP -UNIX V7 ¤Ç¤Ï¥Õ¥©¡¼¥Þ¥Ã¥È¤¬Êѹ¹¤µ¤ì¤¿: -2 ʸ»úÌܤ¬ +UNIX V7 ではフォーマットが変更された: +2 文字目が .BR getty (8) -¤Î°ú¤­¿ô¤È¤Ê¤ê¡¢(Àܳ¤ò) »î¤ß¤ë²óÀþ®Å٤νç½ø¤òɽ¤¹¤è¤¦¤Ë¤Ê¤ê -(\(aq0\(aq ¤Ï 300-1200-150-110 ¤ò·«¤êÊÖ¤¹¤³¤È¤òɽ¤·¡¢ -\(aq4\(aq ¤Ï¥ª¥ó¥é¥¤¥ó¥³¥ó¥½¡¼¥ë DECwriter ¤òɽ¤¹)¡¢ -¹Ô¤Î»Ä¤ê (¤Îʸ»ú) ¤ÏüËö̾¤È¤Ê¤Ã¤¿¡£ -¤è¤Ã¤Æ¡¢°ìÈÌŪ¤Ê¹Ô¤Ï "14console" ¤È¤Ê¤ë¡£ +の引き数となり、(接続を) 試みる回線速度の順序を表すようになり +(\(aq0\(aq は 300-1200-150-110 を繰り返すことを表し、 +\(aq4\(aq はオンラインコンソール DECwriter を表す)、 +行の残り (の文字) は端末名となった。 +よって、一般的な行は "14console" となる。 .LP -¸å¼Ô¤Î¥·¥¹¥Æ¥à¤Î½ñ¼°¤Ï¡¢¤è¤êÀº¹ª¤Ç¤¢¤ë¡£ -System V ·Ï¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢Âå¤ï¤ê¤Ë +後者のシステムの書式は、より精巧である。 +System V 系のシステムでは、代わりに .I /etc/inittab -¤¬¤¢¤ë¡£ -.SS "ÂçÀΤÎÎò»Ë (2)" -°ìÊý¡¢¸½ºß¥í¥°¥¤¥ó¤·¤Æ¤¤¤ë¿Í¤ò¥ê¥¹¥È¤¹¤ë¥Õ¥¡¥¤¥ë +がある。 +.SS "大昔の歴史 (2)" +一方、現在ログインしている人をリストするファイル .I /etc/utmp -¤¬¤¢¤ë¡£ -¤³¤ì¤Ï +がある。 +これは .BR login (1) -¤Ë¤è¤Ã¤Æ´ÉÍý¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¸ÇÄꤵ¤ì¤¿¥µ¥¤¥º¤Ç¤¢¤ê¡¢¥Õ¥¡¥¤¥ëÆâ¤ÎŬÀڤʥ¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¡¢ +によって管理されている。 +このファイルは固定されたサイズであり、ファイル内の適切なインデックスは、 .BR login (1) -¤Ë¤è¤Ã¤Æ·èÄꤵ¤ì¤ë¡£ -¤³¤ÎºÝ¤Ë +によって決定される。 +この際に .BR ttyslot () -¤¬¸Æ¤Ð¤ì¤Æ¡¢ +が呼ばれて、 .I /etc/ttys -¤Ë¤ª¤±¤ë¹ÔÈÖ¹æ¤ò¸«¤Ä¤±¤ë (¹ÔÈÖ¹æ¤Ï 1 ¤«¤é¿ô¤¨¤ë)¡£ -.SS "ttyslot ¤Î°ÕÌ£" -¤è¤Ã¤Æ¡¢´Ø¿ô +における行番号を見つける (行番号は 1 から数える)。 +.SS "ttyslot の意味" +よって、関数 .BR ttyslot () -¤Ï¡¢¥Õ¥¡¥¤¥ë +は、ファイル .I /etc/ttys -¤Ë¤ª¤±¤ë¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÊÖ¤¹¡£ -¤³¤ì¤Ï +における呼び出し元のプロセスの制御端末のインデックスを返す。 +これは .I /etc/utmp -¤Ë¤ª¤±¤ë¥«¥ì¥ó¥È¥æ¡¼¥¶¤Î¥¨¥ó¥È¥ê¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤È (Ä̾ï¤Ï) Åù¤·¤¤¡£ -BSD ¤Ë¤Ï̤¤À¤Ë +におけるカレントユーザのエントリのインデックスと (通常は) 等しい。 +BSD には未だに .I /etc/ttys -¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¤¬¡¢System V ·Ï¤Î¥·¥¹¥Æ¥à¤Ë¤Ï¤Ê¤¤¤Î¤Ç¡¢ -¤³¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -¤è¤Ã¤Æ¡¢¤½¤Î¤è¤¦¤Ê¥·¥¹¥Æ¥à¤Ç¤Ï -.RB ¡Ö ttyslot () -¤Ï¥«¥ì¥ó¥È¥æ¡¼¥¶¤Î¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤ª¤±¤ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÊÖ¤¹¡× -¤È¥É¥­¥å¥á¥ó¥È¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï¥¹¥í¥Ã¥ÈÈÖ¹æ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç -(Î㤨¤Ð¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ 0, 1, 2 ¤Î²¿¤ì¤â -¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤¢¤ëüËö¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç)¡¢ -UNIX V6, V7, BSD ·Ï¤Î¥·¥¹¥Æ¥à¤Ï 0 ¤òÊÖ¤¹¤¬¡¢ -System V ·Ï¤Î¥·¥¹¥Æ¥à¤Ï -1 ¤òÊÖ¤¹¡£ -.SH ½àµò -SUSv1¡£SUSv2 ¤Ç¤Ï¡Ö²áµî¤Î̾»Ä (LEGACY)¡×¤È°ÌÃÖÉÕ¤±¤é¤ì¤Æ¤¤¤ë¡£ -POSIX.1-2001 ¤Çºï½ü¤µ¤ì¤¿¡£ -SUSv2 ¤Ç¤Ï¥¨¥é¡¼»þ¤Ë \-1 ¤òÊÖ¤¹¤³¤È¤¬Í׵ᤵ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -utmp ¥Õ¥¡¥¤¥ë¤ÏÍÍ¡¹¤Ê¥·¥¹¥Æ¥à¤Ç +ファイルがあるが、System V 系のシステムにはないので、 +このファイルを参照することはできない。 +よって、そのようなシステムでは +.RB 「 ttyslot () +はカレントユーザのユーザアカウントデータベースにおけるインデックスを返す」 +とドキュメントに書かれている。 +.SH 返り値 +成功した場合、この関数はスロット番号を返す。 +エラーの場合 +(例えば、ファイルディスクリプタ 0, 1, 2 の何れも +データベースにある端末に関連づけられていない場合)、 +UNIX V6, V7, BSD 系のシステムは 0 を返すが、 +System V 系のシステムは -1 を返す。 +.SH 準拠 +SUSv1。SUSv2 では「過去の名残 (LEGACY)」と位置付けられている。 +POSIX.1-2001 で削除された。 +SUSv2 ではエラー時に \-1 を返すことが要求されている。 +.SH 注意 +utmp ファイルは様々なシステムで .IR /etc/utmp , .IR /var/adm/utmp , .I /var/run/utmp -¤Î¤è¤¦¤Ë¤¤¤í¤¤¤í¤Ê¾ì½ê¤Ë¤¢¤ë¡£ +のようにいろいろな場所にある。 .LP -¤³¤Î´Ø¿ô¤Î glibc2 ¤Ë¤ª¤±¤ë¼ÂÁõ¤Ç¤Ï¡¢¥Õ¥¡¥¤¥ë +この関数の glibc2 における実装では、ファイル .B _PATH_TTYS -¤òÆɤ߹þ¤à¡£ -¤³¤ì¤Ï +を読み込む。 +これは .I -¤Ë¤ª¤¤¤Æ "/etc/ttys" ¤ÈÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¡¢0 ¤òÊÖ¤¹¡£ -Linux ¥·¥¹¥Æ¥à¤Ë¤ÏÄ̾ï "/etc/ttys" ¤¬¤Ê¤¤¤Î¤Ç¡¢¾ï¤Ë 0 ¤òÊÖ¤¹¡£ +において "/etc/ttys" と定義されている。 +エラーの場合、0 を返す。 +Linux システムには通常 "/etc/ttys" がないので、常に 0 を返す。 .LP -Minix ¤Ë¤Ï +Minix には .IR fttyslot ( fd ) -¤â¤¢¤ë¡£ -.\" .SH ÍúÎò +もある。 +.\" .SH 履歴 .\" .BR ttyslot () -.\" ¤Ï UNIX V7 ¤ÇÅо줷¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +.\" は UNIX V7 で登場した。 +.SH 関連項目 .BR getttyent (3), .BR ttyname (3), .BR utmp (5) diff --git a/release/man3/tzset.3 b/release/man3/tzset.3 index 3aedfb8d..19e3da9e 100644 --- a/release/man3/tzset.3 +++ b/release/man3/tzset.3 @@ -34,15 +34,15 @@ .\" Updated 2002-01-06, NAKANO Takeo .\" Updated 2007-01-07, Akihiro MOTOKI, catch up to LDP v2.43 .\" -.\" WORD: Wall Clock Time ÊÉ»þ·×»þ¹ï -.\" WORD: Coordinated Universal Time ¶¨ÄêÀ¤³¦»þ -.\" WORD: daylight saving time ¥µ¥Þ¡¼¥¿¥¤¥à -.\" WORD: Prime Meridian ¥°¥ê¥Ë¥Ã¥¸»Ò¸áÀþ +.\" WORD: Wall Clock Time 壁時計時刻 +.\" WORD: Coordinated Universal Time 協定世界時 +.\" WORD: daylight saving time サマータイム +.\" WORD: Prime Meridian グリニッジ子午線 .\" .TH TZSET 3 2010-02-25 "" "Linux Programmer's Manual" -.SH ̾Á° -tzset, tzname, timezone, daylight \- »þ¹ï¤ÎÊÑ´¹¾ðÊó¤ò½é´ü²½¤¹¤ë -.SH ½ñ¼° +.SH 名前 +tzset, tzname, timezone, daylight \- 時刻の変換情報を初期化する +.SH 書式 .nf .B #include .sp @@ -54,9 +54,9 @@ tzset, tzname, timezone, daylight \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR tzset (): @@ -70,181 +70,181 @@ _SVID_SOURCE || _XOPEN_SOURCE .br .IR daylight : _SVID_SOURCE || _XOPEN_SOURCE -.SH ÀâÌÀ +.SH 説明 .BR tzset () -´Ø¿ô¤Ï +関数は .B TZ -´Ä¶­ÊÑ¿ô¤òÍѤ¤¤Æ \fItzname\fP ÊÑ¿ô¤ò½é´ü²½¤¹¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢¥¿¥¤¥à¥¾¡¼¥ó¤Ë°Í¸¤¹¤ë¾¤Î»þ¹ïÊÑ´¹´Ø¿ô¤«¤é¼«Æ°Åª¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ -System V Ū¤Ê´Ä¶­¤Ç¤Ï¡¢¤³¤Î´Ø¿ô¤ÏÊÑ¿ô \fItimezone\fP (UTC ¤«¤é¤ÎÀ¾¸þ¤­¤ÎÉÿô) ¤È -\fIdaylight\fP (¤³¤Î¥¿¥¤¥à¥¾¡¼¥ó¤Ë¥µ¥Þ¡¼¥¿¥¤¥à¤Ë´Ø¤¹¤ë¥ë¡¼¥ë¤¬¤Ê¤±¤ì¤Ð 0¡¢ -¥µ¥Þ¡¼¥¿¥¤¥à´ü´Ö¤¬°ìǯ¤Î¤É¤³¤«¤Ë¤¢¤ì¤Ð 0 °Ê³°) ¤âÀßÄꤹ¤ë¡£ +環境変数を用いて \fItzname\fP 変数を初期化する。 +この関数は、タイムゾーンに依存する他の時刻変換関数から自動的に呼び出される。 +System V 的な環境では、この関数は変数 \fItimezone\fP (UTC からの西向きの秒数) と +\fIdaylight\fP (このタイムゾーンにサマータイムに関するルールがなければ 0、 +サマータイム期間が一年のどこかにあれば 0 以外) も設定する。 .PP .B TZ -´Ä¶­ÊÑ¿ô¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ -\fItzname\fP ÊÑ¿ô¤Ï¥í¡¼¥«¥ë¤ÊÊÉ»þ·×»þ¹ï (wall clock time) ¤Ë -ºÇ¤â¶á¤¤Ãͤ˽é´ü²½¤µ¤ì¤ë¡£ -¤³¤Î¥í¡¼¥«¥ë¤ÊÊÉ»þ·×»þ¹ï¤È¤·¤Æ¤Ï¡¢ -¥·¥¹¥Æ¥à¤Î¥¿¥¤¥à¥¾¡¼¥ó¥Ç¥£¥ì¥¯¥È¥ê (¸å½Ò) ¤Ë¤¢¤ë +環境変数が設定されていない場合には、 +\fItzname\fP 変数はローカルな壁時計時刻 (wall clock time) に +最も近い値に初期化される。 +このローカルな壁時計時刻としては、 +システムのタイムゾーンディレクトリ (後述) にある .BR tzfile (5) -·Á¼°¤Î¥Õ¥¡¥¤¥ë \fIlocaltime\fP ¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ëÃͤ¬ÍѤ¤¤é¤ì¤ë¡£ -(¤³¤ÎºÝ¤Ë¤Ï +形式のファイル \fIlocaltime\fP で指定されている値が用いられる。 +(この際には .I /etc/localtime -¤â¤è¤¯ÍѤ¤¤é¤ì¤ë¡£ -¤³¤ì¤Ï¥·¥¹¥Æ¥à¤Î¥¿¥¤¥à¥¾¡¼¥ó¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë -ŬÀڤʥե¡¥¤¥ë¤Ø¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£) +もよく用いられる。 +これはシステムのタイムゾーンディレクトリにある +適切なファイルへのシンボリックリンクになっている。) .PP .B TZ -´Ä¶­ÊÑ¿ô¤¬Â¸ºß¤·¤Æ¤¤¤ë¤¬¡¢¤½¤ÎÃͤ¬¶õ¤À¤Ã¤¿¤ê¡¢ -°Ê²¼¤Ë¼¨¤¹·Á¼°¤Î¤É¤ì¤Ë¤â¤¢¤Æ¤Ï¤Þ¤é¤Ê¤¤¾ì¹ç¤Ï¡¢ -¶¨ÄêÀ¤³¦»þ (Coordinated Universal Time: UTC) ¤¬ÍѤ¤¤é¤ì¤ë¡£ +環境変数が存在しているが、その値が空だったり、 +以下に示す形式のどれにもあてはまらない場合は、 +協定世界時 (Coordinated Universal Time: UTC) が用いられる。 .PP .B TZ -¤ÎÃͤϰʲ¼¤Î 3 ¤Ä¤Î·Á¼°¤Î¤¤¤º¤ì¤«¤ò¼è¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -ºÇ½é¤Î·Á¼°¤Ï¥µ¥Þ¡¼¥¿¥¤¥à (daylight saving time) -¤ò»ý¤¿¤Ê¤¤¥í¡¼¥«¥ë¥¿¥¤¥à¥¾¡¼¥ó¤ËÂФ·¤ÆÍѤ¤¤ë¡£ +の値は以下の 3 つの形式のいずれかを取ることができる。 +最初の形式はサマータイム (daylight saving time) +を持たないローカルタイムゾーンに対して用いる。 .sp .RS .I std offset .RE .sp -\fIstd\fP ʸ»úÎó¤Ï¥¿¥¤¥à¥¾¡¼¥ó¤Î̾Á°¤ò»ØÄꤹ¤ë¡£ -¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤«¤é¤Ê¤ë 3 ʸ»ú°Ê¾å¤Îʸ»úÎó¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -\fIoffset\fP ʸ»úÎó¤Ï \fIstd\fP ¤Îľ¸å¤Ë³¤­¡¢ -¶¨ÄêÀ¤³¦»þ (UTC) ¤òÆÀ¤ë¤¿¤á¤Ë -¥í¡¼¥«¥ë¤Ê»þ¹ï¤Ë²Ã¤¨¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤»þ´Ö¤ò»ØÄꤹ¤ë¡£ +\fIstd\fP 文字列はタイムゾーンの名前を指定する。 +アルファベットからなる 3 文字以上の文字列でなければならない。 +\fIoffset\fP 文字列は \fIstd\fP の直後に続き、 +協定世界時 (UTC) を得るために +ローカルな時刻に加えなければならない時間を指定する。 .I offset -¤Ï¡¢¥í¡¼¥«¥ë¥¿¥¤¥à¥¾¡¼¥ó¤¬¥°¥ê¥Ë¥Ã¥¸»Ò¸áÀþ (Prime Meridian) -¤ÎÀ¾¤Ê¤éÀµ¤ÎÃÍ¡¢Åì¤Ê¤éÉé¤ÎÃͤò¼è¤ë¡£ -»þ´Ö (hour) ¤Ï 0 ¤«¤é 24 ¤Î´Ö¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -ʬ (minute) ¤ÈÉà (second) ¤Ï 0 ¤«¤é 59 ¤Î´Ö¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は、ローカルタイムゾーンがグリニッジ子午線 (Prime Meridian) +の西なら正の値、東なら負の値を取る。 +時間 (hour) は 0 から 24 の間でなければならない。 +分 (minute) と秒 (second) は 0 から 59 の間でなければならない。 .PP -2 ÈÖÌܤηÁ¼°¤Ï¥µ¥Þ¡¼¥¿¥¤¥à¤¬¤¢¤ë¾ì¹ç¤ËÍѤ¤¤é¤ì¤ë¡£ +2 番目の形式はサマータイムがある場合に用いられる。 .sp .RS .I std offset dst [offset],start[/time],end[/time] .RE .sp -»ØÄê¤Ë¤Ï¥¹¥Ú¡¼¥¹¤ò´Þ¤á¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -ÀèƬ¤Î \fIstd\fP ¤È \fIoffset\fP ¤Ï 1 ÈÖÌܤηÁ¼°¤ÈƱ¤¸¤Ç¡¢ -ɸ½à¤Î¥¿¥¤¥à¥¾¡¼¥ó¤ò»ØÄꤹ¤ë¡£ -\fIdst\fP ʸ»úÎó¤È \fIoffset\fP ¤Ï¡¢ -Âбþ¤¹¤ë¥µ¥Þ¡¼¥¿¥¤¥à¥¾¡¼¥ó¤Î̾Á°¤È¥ª¥Õ¥»¥Ã¥È¤ò»ØÄꤹ¤ë¡£ -¥ª¥Õ¥»¥Ã¥È¤¬¾Êά¤µ¤ì¤ë¤È¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ïɸ½à¤Î°ì»þ´ÖÁ°¤È¤Ê¤ë¡£ +指定にはスペースを含めてはならない。 +先頭の \fIstd\fP と \fIoffset\fP は 1 番目の形式と同じで、 +標準のタイムゾーンを指定する。 +\fIdst\fP 文字列と \fIoffset\fP は、 +対応するサマータイムゾーンの名前とオフセットを指定する。 +オフセットが省略されると、デフォルトでは標準の一時間前となる。 .PP -\fIstart\fP ¥Õ¥£¡¼¥ë¥É¤Ï¥µ¥Þ¡¼¥¿¥¤¥à¤¬Í­¸ú¤Ë¤Ê¤ë»þ¹ï¡¢ -\fIend\fP ¥Õ¥£¡¼¥ë¥É¤Ïɸ½à¤ËÌá¤ë»þ¹ï¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Ï°Ê²¼¤Î·Á¼°¤Ç»ØÄꤹ¤ë¡£ +\fIstart\fP フィールドはサマータイムが有効になる時刻、 +\fIend\fP フィールドは標準に戻る時刻である。 +これらのフィールドは以下の形式で指定する。 .TP J\fIn\fP -ǯ¤ÎÄÌÆü (Julian day) ¤ÇÆü¤Ë¤Á¤ò»ØÄꤹ¤ë¡£ -\fIn\fP ¤Ï 1 ¤«¤é 365 ¤Î´Ö¤Î¿ôÃÍ¡£ -¤¦¤ë¤¦Ç¯¤Î¾ì¹ç¤Ç¤â 2 ·î 29 Æü¤Ï¥«¥¦¥ó¥È¤µ¤ì¤Ê¤¤¡£ +年の通日 (Julian day) で日にちを指定する。 +\fIn\fP は 1 から 365 の間の数値。 +うるう年の場合でも 2 月 29 日はカウントされない。 .TP .I n -ǯ¤ÎÄÌÆü¤ÇÆü¤Ë¤Á¤ò»ØÄꤹ¤ë¡£ -\fIn\fP ¤Ï 1 ¤«¤é 365 ¤Î´Ö¤Î¿ôÃÍ¡£ -¤¦¤ë¤¦Ç¯¤Î¾ì¹ç¤Ë¤Ï 2 ·î 29 Æü¤¬¥«¥¦¥ó¥È¤µ¤ì¤ë¡£ +年の通日で日にちを指定する。 +\fIn\fP は 1 から 365 の間の数値。 +うるう年の場合には 2 月 29 日がカウントされる。 .TP M\fIm\fP.\fIw\fP.\fId\fP -\fIm\fP ¤Ï·î (1 <= \fIm\fP <= 12) ¤ò¡¢ -\fIw\fP ¤Ï·î¤Î¤¦¤Á¤Î½µ (1 <= \fIw\fP <= 5) ¤ò¡¢ -\fId\fP ¤Ï½µ¤Î¤¦¤Á¤ÎÆü¤Ë¤Á (0 <= \fId\fP <= 6) ¤ò¼¨¤¹¡£ -\fIw\fP = 1 ¤Ï½ê°¤¹¤ë \fId\fP ¤¬Â¸ºß¤¹¤ëºÇ½é¤Î½µ¡¢ -\fIw\fP = 5 ¤ÏºÇ¸å¤Î½µ¤Ç¤¢¤ë¡£ -\fId\fP = 0 ¤ÏÆüÍËÆü¤Ç¤¢¤ë¡£ +\fIm\fP は月 (1 <= \fIm\fP <= 12) を、 +\fIw\fP は月のうちの週 (1 <= \fIw\fP <= 5) を、 +\fId\fP は週のうちの日にち (0 <= \fId\fP <= 6) を示す。 +\fIw\fP = 1 は所属する \fId\fP が存在する最初の週、 +\fIw\fP = 5 は最後の週である。 +\fId\fP = 0 は日曜日である。 .PP -\fItime\fP ¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥í¡¼¥«¥ë¥¿¥¤¥à¤òÀÚ¤êÂؤ¨¤ë»þ¹ï¤ò¡¢ -Êѹ¹Á°¤Î¥í¡¼¥«¥ë¥¿¥¤¥à¤Çɽ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -¾Êά¤µ¤ì¤¿¾ì¹ç¤Î¥Ç¥Õ¥©¥ë¥È¤Ï 02:00:00 ¤Ç¤¢¤ë¡£ +\fItime\fP フィールドは、ローカルタイムを切り替える時刻を、 +変更前のローカルタイムで表したものである。 +省略された場合のデフォルトは 02:00:00 である。 -¥Ë¥å¡¼¥¸¡¼¥é¥ó¥É¤ÎÎã¤Ç¤¢¤ë¡£ -¥Ë¥å¡¼¥¸¡¼¥é¥ó¥É¤Ç¤Ï¡¢É¸½à¤Î¥¿¥¤¥à¥¾¡¼¥ó (NZST) ¤Ï UTC ¤è¤ê 12»þ´Ö¿Ê¤ó¤Ç¤ª¤ê¡¢ -¥µ¥Þ¡¼¥¿¥¤¥à (NZDT) ¤Ï UTC ¤Î 13»þ´Ö¿Ê¤ó¤Ç¤¤¤ë¡£ -¥µ¥Þ¡¼¥¿¥¤¥à¤Ï 10·î¤ÎÂè°ìÆüÍˤ«¤é 3·î¤ÎÂè»°ÆüÍˤޤǤǤ¢¤ê¡¢ -¥í¡¼¥«¥ë¥¿¥¤¥à¤ÎÀÚ¤êÂؤ¨¤Ï¥Ç¥Õ¥©¥ë¥È¤Î 02:00:00 ¤Ë¹Ô¤ï¤ì¤ë¡£ +ニュージーランドの例である。 +ニュージーランドでは、標準のタイムゾーン (NZST) は UTC より 12時間進んでおり、 +サマータイム (NZDT) は UTC の 13時間進んでいる。 +サマータイムは 10月の第一日曜から 3月の第三日曜までであり、 +ローカルタイムの切り替えはデフォルトの 02:00:00 に行われる。 .nf TZ="NZST-12:00:00NZDT-13:00:00,M10.1.0,M3.3.0" .fi .PP -3 ÈÖÌܤηÁ¼°¤Ï¡¢¥¿¥¤¥à¥¾¡¼¥ó¤Î¾ðÊó¤ò¥Õ¥¡¥¤¥ë¤«¤éÆɤ߹þ¤à¤è¤¦¤Ë»ØÄꤹ¤ë¡£ +3 番目の形式は、タイムゾーンの情報をファイルから読み込むように指定する。 .sp .RS :[filespec] .RE .sp -¥Õ¥¡¥¤¥ë¤Î»ØÄê \fIfilespec\fP ¤¬¾Êά¤µ¤ì¤¿¾ì¹ç¤Ï¡¢ -¥¿¥¤¥à¥¾¡¼¥ó¤Î¾ðÊó¤Ï¥·¥¹¥Æ¥à¥¿¥¤¥à¥¾¡¼¥ó¥Ç¥£¥ì¥¯¥È¥ê¤Î +ファイルの指定 \fIfilespec\fP が省略された場合は、 +タイムゾーンの情報はシステムタイムゾーンディレクトリの .I localtime -¥Õ¥¡¥¤¥ë¤«¤éÆɤޤì¤ë¡£ -ºÇ¶á¤Ç¤Ï¥·¥¹¥Æ¥à¥¿¥¤¥à¥¾¡¼¥ó¥Ç¥£¥ì¥¯¥È¥ê¤ÏÉáÄÌ +ファイルから読まれる。 +最近ではシステムタイムゾーンディレクトリは普通 .I /usr/share/zoneinfo/localtime -¤Ç¤¢¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï +である。 +このファイルは .BR tzfile (5) -·Á¼°¤Ç½ñ¤«¤ì¤Æ¤¤¤ë¡£ -\fIfilespec\fP ¤¬Í¿¤¨¤é¤ì¤¿¾ì¹ç¤Ï¡¢ -¥¿¥¤¥à¥¾¡¼¥ó¤Î¾ðÊó¤ò¤½¤Î¥Õ¥¡¥¤¥ë¤«¤éÆɤ߹þ¤à¡£¤³¤Î¥Õ¥¡¥¤¥ë¤â +形式で書かれている。 +\fIfilespec\fP が与えられた場合は、 +タイムゾーンの情報をそのファイルから読み込む。このファイルも .BR tzfile (5) -·Á¼°¤Ç½ñ¤«¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ -\fIfilespec\fP ¤¬ \(aq/\(aq ¤Ç»Ï¤Þ¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ -¥·¥¹¥Æ¥à¥¿¥¤¥à¥¾¡¼¥ó¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹¤Ç -¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤¿¤³¤È¤Ë¤Ê¤ë¡£ +形式で書かれている必要がある。 +\fIfilespec\fP が \(aq/\(aq で始まらなかった場合には、 +システムタイムゾーンディレクトリからの相対パスで +ファイルが指定されたことになる。 .PP -Îã¤òµó¤²¤Æ¤ª¤¯¡£¤â¤¦°ìÅ٥˥塼¥¸¡¼¥é¥ó¥É¤ÎÎã¤Ç¤¢¤ë¡£ +例を挙げておく。もう一度ニュージーランドの例である。 .nf TZ=":Pacific/Auckland" .fi -.SH ¥Õ¥¡¥¤¥ë -ÍѤ¤¤é¤ì¤ë¥·¥¹¥Æ¥à¥¿¥¤¥à¥¾¡¼¥ó¥Ç¥£¥ì¥¯¥È¥ê¤Ï (g)libc ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë°Í¸¤¹¤ë¡£ -libc4 ¤È libc5 ¤Ï +.SH ファイル +用いられるシステムタイムゾーンディレクトリは (g)libc のバージョンに依存する。 +libc4 と libc5 は .I /usr/lib/zoneinfo -¤òÍѤ¤¤ë¡£libc-5.4.6 °Ê¹ß¤Ç¤Ï¡¢¤³¤ì¤¬»È¤¨¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï +を用いる。libc-5.4.6 以降では、これが使えなかった場合には .I /usr/share/zoneinfo -¤ò»È¤ª¤¦¤È¤¹¤ë¡£ -glibc2 ¤Ç¤Ï´Ä¶­ÊÑ¿ô +を使おうとする。 +glibc2 では環境変数 .B TZDIR -¤¬Â¸ºß¤¹¤ì¤Ð¤½¤ì¤òÍѤ¤¤ë¡£ -¤³¤Î¥Ç¥Õ¥©¥ë¥È¤Ï¤É¤Î¤è¤¦¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¤«¤Ë¤è¤ë¤¬¡¢ -ÉáÄÌ¤Ï +が存在すればそれを用いる。 +このデフォルトはどのようにインストールされたかによるが、 +普通は .I /usr/share/zoneinfo -¤Ç¤¢¤ë¡£ +である。 .LP -¤³¤Î¥¿¥¤¥à¥¾¡¼¥ó¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤ë¡£ +このタイムゾーンディレクトリには以下のファイルが含まれる。 .sp .nf -localtime ¥í¡¼¥«¥ë¥¿¥¤¥à¥¾¡¼¥ó¤Î¥Õ¥¡¥¤¥ë -posixrules POSIX ¼°¤Î TZ ½ñ¼°¥ë¡¼¥ë +localtime ローカルタイムゾーンのファイル +posixrules POSIX 式の TZ 書式ルール .fi .LP .I /etc/localtime -¤Ï¡¢ +は、 .I localtime -¥Õ¥¡¥¤¥ë¤ä¡¢ -¥·¥¹¥Æ¥à¤Î¥¿¥¤¥à¥¾¡¼¥ó¥Ç¥£¥ì¥¯¥È¥êÃæ¤ÎŬÀڤʥ¿¥¤¥à¥¾¡¼¥ó¥Õ¥¡¥¤¥ë¤Ø¤Î -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¤¢¤ë¤³¤È¤¬Â¿¤¤¡£ -.SH ½àµò +ファイルや、 +システムのタイムゾーンディレクトリ中の適切なタイムゾーンファイルへの +シンボリックリンクであることが多い。 +.SH 準拠 SVr4, POSIX.1-2001, 4.3BSD. -.SH Ãí°Õ +.SH 注意 .I daylight -ÊÑ¿ô¤Ï¡¢¸½ºß¤¬¥µ¥Þ¡¼¥¿¥¤¥à¤Ç¤¢¤ë¤«¤É¤¦¤«¤ò¼¨¤·¤Æ¤¤¤ë¤Î¤Ç¤Ï¤Ê¤¤¡£ -¤³¤ì¤Ï¤¤¤¯¤Ä¤«¤¢¤ë¥¢¥ë¥´¥ê¥º¥à¤Î¤¦¤Á¤ÎÈÖ¹æ¤òÍ¿¤¨¤ë -(¥¢¥ë¥´¥ê¥º¥à¤Ë¤Ä¤¤¤Æ¤Ï +変数は、現在がサマータイムであるかどうかを示しているのではない。 +これはいくつかあるアルゴリズムのうちの番号を与える +(アルゴリズムについては .BR gettimeofday (2) -¤Î +の .I tz_dsttime -ÊÑ¿ô¤ò¸«¤è)¡£ -¤³¤ì¤Ï¤â¤¦²¿Ç¯¤â»È¤ï¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢SUSv2 ¤Ç¤ÏɬÍפȤµ¤ì¤Æ¤¤¤ë¡£ +変数を見よ)。 +これはもう何年も使われていないが、SUSv2 では必要とされている。 .LP -4.3BSD ¤Ë¤Ï +4.3BSD には .BI "char *timezone(" zone ", " dst ) -¤È¤¤¤¦¥ë¡¼¥Á¥ó¤¬¤¢¤ê¡¢¤³¤ì¤Ï -ºÇ½é¤Î°ú¿ô (UTC ¤«¤é¤ÎÀ¾¸þ¤­¤Îʬ¿ô) ¤ËÂбþ¤¹¤ë¥¿¥¤¥à¥¾¡¼¥ó¤Î̾Á°¤òÊÖ¤¹¡£ -ÆóÈÖÌܤΰú¿ô¤¬ 0 ¤Î¾ì¹ç¤Ïɸ½à¤Î̾Á°¤¬ÍѤ¤¤é¤ì¡¢ -¤½¤ì°Ê³°¤Ï¥µ¥Þ¡¼¥¿¥¤¥àÈǤÎ̾Á°¤¬ÍѤ¤¤é¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +というルーチンがあり、これは +最初の引数 (UTC からの西向きの分数) に対応するタイムゾーンの名前を返す。 +二番目の引数が 0 の場合は標準の名前が用いられ、 +それ以外はサマータイム版の名前が用いられる。 +.SH 関連項目 .BR date (1), .BR gettimeofday (2), .BR time (2), diff --git a/release/man3/ualarm.3 b/release/man3/ualarm.3 index 630ef953..722aa769 100644 --- a/release/man3/ualarm.3 +++ b/release/man3/ualarm.3 @@ -27,9 +27,9 @@ .\" Updated 2007-05-04, Akihiro MOTOKI .\" .TH UALARM 3 2010-09-20 "" "Linux Programmer's Manual" -.SH ̾Á° -ualarm \- »ØÄꤷ¤¿¥Þ¥¤¥¯¥íÉøå¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ëͽÄê¤ò¤¹¤ë -.SH ½ñ¼° +.SH 名前 +ualarm \- 指定したマイクロ秒後にシグナルを送る予定をする +.SH 書式 .nf .B "#include " .sp @@ -37,9 +37,9 @@ ualarm \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR ualarm (): @@ -47,7 +47,7 @@ glibc .RS 4 .PD 0 .TP 4 -glibc 2.12 °Ê¹ß: +glibc 2.12 以降: .nf _BSD_SOURCE || (_XOPEN_SOURCE\ >=\ 500 || @@ -55,66 +55,66 @@ _BSD_SOURCE || !(_POSIX_C_SOURCE\ >=\ 200809L || _XOPEN_SOURCE\ >=\ 700) .TP 4 .fi -glibc 2.12 ¤è¤êÁ°: +glibc 2.12 より前: _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .PD .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR ualarm () -´Ø¿ô¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ +関数は、呼び出し元のプロセスに対して .I usecs -¥Þ¥¤¥¯¥íÉà (°Ê¾å) ¸å¤Ë +マイクロ秒 (以上) 後に .B SIGALRM -¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ -ÃÙ¤ì¤Ï¥·¥¹¥Æ¥à¤Î³èÀ­ÅÙ¡¦¸Æ¤Ó½Ð¤·¤Î½èÍý»þ´Ö¡¦ -¥·¥¹¥Æ¥à¥¿¥¤¥Þ¡¼¤ÎγÅ٤ˤè¤Ã¤ÆŤ¯¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +シグナルを送る。 +遅れはシステムの活性度・呼び出しの処理時間・ +システムタイマーの粒度によって長くなるかもしれない。 .LP -Ê᪤ޤ¿¤Ï̵»ë¤µ¤ì¤Ê¤¤¸Â¤ê¡¢ +捕捉または無視されない限り、 .B SIGALRM -¥·¥°¥Ê¥ë¤Ï¥×¥í¥»¥¹¤ò½ªÎ»¤µ¤»¤ë¡£ +シグナルはプロセスを終了させる。 .LP .I interval -°ú¤­¿ô¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¡¢ºÇ½é¤Î +引き数が 0 でない場合、最初の .B SIGALRM -¥·¥°¥Ê¥ë¤Î¸å¡¢ -¤µ¤é¤Ë +シグナルの後、 +さらに .I interval -¥Þ¥¤¥¯¥íÉÃËè¤Ë SIGALRM ¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -¤³¤Î´Ø¿ô¤Ï¡¢²áµî¤ËÀßÄꤵ¤ì¤¿ alarm ¤Î»Ä¤ê¥Þ¥¤¥¯¥íÉÿô¤òÊÖ¤¹¡£ -¼Â¹ÔÃæ¤Î alarm ¤¬¤Ê¤¤¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +マイクロ秒毎に SIGALRM シグナルが送られる。 +.SH 返り値 +この関数は、過去に設定された alarm の残りマイクロ秒数を返す。 +実行中の alarm がない場合は 0 を返す。 +.SH エラー .TP .B EINTR -¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿¡£ +シグナルによって割り込まれた。 .TP .B EINVAL -\fIusecs\fP ¤Þ¤¿¤Ï \fIinterval\fP ¤¬ 1000000 ̤Ëþ¤Ç¤Ê¤¤ -(¤³¤ì¤¬¥¨¥é¡¼¤È¤·¤Æ°·¤ï¤ì¤ë¥·¥¹¥Æ¥à¤Î¾ì¹ç)¡£ -.SH ½àµò +\fIusecs\fP または \fIinterval\fP が 1000000 未満でない +(これがエラーとして扱われるシステムの場合)。 +.SH 準拠 4.3BSD, POSIX.1-2001. -POSIX.1-2001 ¤Ç¤Ï +POSIX.1-2001 では .BR ualarm () -¤Ï²áµî¤Î¤â¤Î¤È¤µ¤ì¤Æ¤¤¤ë¡£ -POSIX.1-2008 ¤Ç¤Ï¡¢ +は過去のものとされている。 +POSIX.1-2008 では、 .BR ualarm () -¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ -4.3BSD, SUSv2, POSIX ¤Ï¥¨¥é¡¼¤òÄêµÁ¤·¤Æ¤¤¤Ê¤¤¡£ -.SH Ãí°Õ +の仕様が削除されている。 +4.3BSD, SUSv2, POSIX はエラーを定義していない。 +.SH 注意 .I useconds_t -·¿¤Ï [0,1000000] ¤ÎÈϰϤÎÀ°¿ô¤òÊÝ»ý¤Ç¤­¤ëÉä¹æ¤Ê¤·À°¿ô·¿¤Ç¤¢¤ë¡£ -¤â¤È¤â¤È¤Î BSD ¤Ç¤Î¼ÂÁõ¤ä¡¢¥Ð¡¼¥¸¥ç¥ó 2.1 ¤è¤êÁ°¤Î glibc ¤Ç¤Ï¡¢ +型は [0,1000000] の範囲の整数を保持できる符号なし整数型である。 +もともとの BSD での実装や、バージョン 2.1 より前の glibc では、 .BR ualarm () -¤Î°ú¤­¿ô¤Î·¿¤Ï +の引き数の型は .I "unsigned int" -¤Ç¤¢¤Ã¤¿¡£ -¥×¥í¥°¥é¥àÃæ¤ËÌÀ¼¨Åª¤Ë +であった。 +プログラム中に明示的に .I useconds_t -¤È½ñ¤«¤Ê¤¤Êý¤¬¡¢°Ü¿¢À­¤¬¹â¤¯¤Ê¤ë¡£ +と書かない方が、移植性が高くなる。 .LP -¤³¤Î´Ø¿ô¤È +この関数と .BR alarm (2), .BR sleep (3), .BR nanosleep (2), @@ -125,15 +125,15 @@ POSIX.1-2008 .BR timer_gettime (2), .BR timer_settime (2), .BR usleep (3) -¤Î¤è¤¦¤Ê¾¤Î¥¿¥¤¥Þ¡¼´Ø¿ô¤È¤ÎÁê¸ßºîÍѤϵ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +のような他のタイマー関数との相互作用は規定されていない。 .LP -¤³¤Î´Ø¿ô¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¡£ -Âå¤ï¤ê¤Ë +この関数は廃止予定である。 +代わりに .BR setitimer (2) -¤â¤·¤¯¤Ï POSIX ¥¤¥ó¥¿¡¼¥Ð¥ë¥¿¥¤¥Þ +もしくは POSIX インターバルタイマ .RB ( timer_create (2) -¤Ê¤É) ¤ò»È¤¦¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +など) を使うこと。 +.SH 関連項目 .BR alarm (2), .BR getitimer (2), .BR nanosleep (2), diff --git a/release/man3/ulimit.3 b/release/man3/ulimit.3 index b16f7b68..426d8668 100644 --- a/release/man3/ulimit.3 +++ b/release/man3/ulimit.3 @@ -29,60 +29,60 @@ .\" Modified Sun Dec 18 1998 by NAKANO Takeo .\" .TH ULIMIT 3 2008-08-06 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -ulimit \- ¥æ¡¼¥¶¡¼À©¸Â¤ò¼èÆÀ¡¦ÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +ulimit \- ユーザー制限を取得・設定する +.SH 書式 .B #include .sp .BI "long ulimit(int " cmd ", long " newlimit ); -.SH ÀâÌÀ -Ãí°Õ: ¤³¤Î¥ë¡¼¥Á¥ó¤Ï¸Å¤¤¡£ -Âå¤ï¤ê¤Ë +.SH 説明 +注意: このルーチンは古い。 +代わりに .BR getrlimit (2), .BR setrlimit (2), .BR sysconf (3) -¤Ê¤É¤òÍѤ¤¤ë¤³¤È¡£ -¥·¥§¥ë¥³¥Þ¥ó¥É¤È¤·¤Æ¤Î +などを用いること。 +シェルコマンドとしての .BR ulimit () -¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +については、 .BR bash (1) -¤ò¸«¤ë¤³¤È¡£ +を見ること。 .BR ulimit () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ë´Ø¤¹¤ëÀ©¸Â¤Î¤¤¤¯¤Ä¤«¤ò¼èÆÀ¡¦ÀßÄꤹ¤ë¡£ +は呼び出し元のプロセスに関する制限のいくつかを取得・設定する。 .I cmd -°ú¤­¿ô¤Ë¤Ï¡¢°Ê²¼¤ÎÃͤΤ¦¤Á¤Î¤É¤ì¤«°ì¤Ä¤òÍ¿¤¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +引き数には、以下の値のうちのどれか一つを与えることができる。 .TP .B UL_GETFSIZE -¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤Ë´Ø¤¹¤ëÀ©¸Â¤òÊÖ¤¹¡£Ã±°Ì¤Ï 512 ¥Ð¥¤¥È¡£ +ファイルサイズに関する制限を返す。単位は 512 バイト。 .TP .B UL_SETFSIZE -¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤Ë´Ø¤¹¤ëÀ©¸Â¤òÀßÄꤹ¤ë¡£ +ファイルサイズに関する制限を設定する。 .TP .B 3 -(Linux ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤) -¥Ç¡¼¥¿¥»¥°¥á¥ó¥È¤Ç»ØÄê¤Ç¤­¤ë¥¢¥É¥ì¥¹¤ÎºÇÂçÃͤòÊÖ¤¹¡£ +(Linux では実装されていない) +データセグメントで指定できるアドレスの最大値を返す。 .TP .B 4 -(¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢Âбþ¤¹¤ë¥·¥ó¥Ü¥ê¥Ã¥¯¤ÊÄê¿ô¤Ï¸ºß¤·¤Ê¤¤) -¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¿ô¤ÎºÇÂçÃͤòÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È +(実装されているが、対応するシンボリックな定数は存在しない) +プロセスがオープンできるファイル数の最大値を返す。 +.SH 返り値 +成功すると .BR ulimit () -¤Ï 0 ¤Þ¤¿¤ÏÀµ¤ÎÃͤòÊÖ¤¹¡£ -¥¨¥é¡¼¤¬À¸¤¸¤ë¤È \-1 ¤òÊÖ¤·¡¢ +は 0 または正の値を返す。 +エラーが生じると \-1 を返し、 .I errno -¤òŬÀÚ¤ÊÃͤËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切な値に設定する。 +.SH エラー .TP .B EPERM -ÈóÆø¢¥×¥í¥»¥¹¤¬À©¸ÂÃͤòÁý²Ã¤µ¤»¤è¤¦¤È¤·¤¿¡£ -.SH ½àµò +非特権プロセスが制限値を増加させようとした。 +.SH 準拠 SVr4, POSIX.1-2001. -POSIX.1-2008 ¤Ï +POSIX.1-2008 は .BR ulimit () -¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を廃止予定としている。 +.SH 関連項目 .BR bash (1), .BR getrlimit (2), .BR setrlimit (2), diff --git a/release/man3/undocumented.3 b/release/man3/undocumented.3 index 83cff8fc..107bc8ce 100644 --- a/release/man3/undocumented.3 +++ b/release/man3/undocumented.3 @@ -32,22 +32,22 @@ .\" Updated 2005-02-21, Akihiro MOTOKI .\" .TH UNDOCUMENTED 3 2010-02-10 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -none \- ¥É¥­¥å¥á¥ó¥È¤¬¤Ê¤¤¥é¥¤¥Ö¥é¥ê´Ø¿ô (library functions) -.SH ½ñ¼° -¥É¥­¥å¥á¥ó¥È¤¬¤Ê¤¤¥é¥¤¥Ö¥é¥ê´Ø¿ô -.SH ÀâÌÀ -¤³¤Î man ¥Ú¡¼¥¸¤Ç¤Ï¡¢ -ɸ½à¥é¥¤¥Ö¥é¥ê¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -¤Þ¤À man ¥Ú¡¼¥¸¤¬Â¸ºß¤·¤Ê¤¤¥é¥¤¥Ö¥é¥ê´Ø¿ô¤ò¾Ò²ð¤¹¤ë¡£ -.SS ´«Í¶ -¤³¤ì¤é¤Î´Ø¿ô¤Ë¤Ä¤¤¤Æ¾ðÊ󤬤¢¤Ã¤¿¤é¡¢ -¥½¡¼¥¹¥³¡¼¥É¤ò¸«¤Æ man ¥Ú¡¼¥¸¤ò (¾¤Î Linux ¥»¥¯¥·¥ç¥ó 3 ¤Î -man ¥Ú¡¼¥¸¤Ë»÷¤¿¥¹¥¿¥¤¥ë¤Ç) ½ñ¤­¡¢¤½¤Î¥Ú¡¼¥¸¤ò +.SH 名前 +none \- ドキュメントがないライブラリ関数 (library functions) +.SH 書式 +ドキュメントがないライブラリ関数 +.SH 説明 +この man ページでは、 +標準ライブラリに実装されているが、 +まだ man ページが存在しないライブラリ関数を紹介する。 +.SS 勧誘 +これらの関数について情報があったら、 +ソースコードを見て man ページを (他の Linux セクション 3 の +man ページに似たスタイルで) 書き、そのページを .B mtk.manpages@gmail.com -¤Þ¤ÇÁ÷¤Ã¤Æ¤Û¤·¤¤¡£ -¼¡¤Î man ¥Ú¡¼¥¸¤Î¥ê¥ê¡¼¥¹¤ÇºÎÍѤ·¤¿¤¤¡£ -.SS ¥ê¥¹¥È +まで送ってほしい。 +次の man ページのリリースで採用したい。 +.SS リスト .BR authdes_create (3), .BR authdes_getucred (3), diff --git a/release/man3/ungetwc.3 b/release/man3/ungetwc.3 index 9f8c3e40..4aaa5ff8 100644 --- a/release/man3/ungetwc.3 +++ b/release/man3/ungetwc.3 @@ -17,46 +17,46 @@ .\" by HANATAKA Shinya .\" .TH UNGETWC 3 1999-09-19 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -ungetwc \- ¥ï¥¤¥Éʸ»ú¤ò FILE ¥¹¥È¥ê¡¼¥à¤ØÌ᤹ -.SH ½ñ¼° +.SH 名前 +ungetwc \- ワイド文字を FILE ストリームへ戻す +.SH 書式 .nf .B #include .sp .BI "wint_t ungetwc(wint_t " wc ", FILE *" stream ); .fi -.SH ÀâÌÀ +.SH 説明 .BR ungetwc () -´Ø¿ô¤Ï +関数は .BR ungetc (3) -´Ø¿ô¤Î¥ï¥¤¥Éʸ»úÈǤǤ¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¥ï¥¤¥Éʸ»ú¤ò \fIstream\fP ¤ØÌᤷ¤Æ¡¢¤½¤ì¤òÊÖ¤¹¡£ +関数のワイド文字版である。 +この関数はワイド文字を \fIstream\fP へ戻して、それを返す。 .PP -\fIwc\fP ¤¬ \fBWEOF\fP ¤Î¾ì¹ç¡¢ \fBWEOF\fP ¤òÊÖ¤¹¡£ -\fIwc\fP ¤¬ÉÔÀµ¤Ê¥ï¥¤¥Éʸ»ú¤Î¾ì¹ç¡¢ -\fIerrno\fP ¤Ë \fBEILSEQ\fP ¤òÀßÄꤷ¤Æ \fBWEOF\fP ¤òÊÖ¤¹¡£ +\fIwc\fP が \fBWEOF\fP の場合、 \fBWEOF\fP を返す。 +\fIwc\fP が不正なワイド文字の場合、 +\fIerrno\fP に \fBEILSEQ\fP を設定して \fBWEOF\fP を返す。 .PP -\fIwc\fP ¤¬Í­¸ú¤Ê¥ï¥¤¥Éʸ»ú¤Î¾ì¹ç¡¢¤½¤ì¤ò¥¹¥È¥ê¡¼¥à¤Ø¤ÈÌᤷ¤Æ¸å¤Î -¥ï¥¤¥Éʸ»úÆɤ߹þ¤ßÁàºî¤Ç¼èÆÀ¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£¥Õ¥¡¥¤¥ë°ÌÃÖ(file-position) -»Ø¼¨»Ò¤Ï1°Ê¾åÌᤵ¤ì¤ë¡£¥Õ¥¡¥¤¥ë½ªÃ¼(end-of-file)»Ø¼¨»Ò¤Ï¥¯¥ê¥¢¤µ¤ì¤ë¡£ -¤½¤Î¥Õ¥¡¥¤¥ë¤ÎÇظå¤Ë¤¢¤ëµ­²±ÇÞÂΤϱƶÁ¤ò¼õ¤±¤Ê¤¤¡£ +\fIwc\fP が有効なワイド文字の場合、それをストリームへと戻して後の +ワイド文字読み込み操作で取得できるようにする。ファイル位置(file-position) +指示子は1以上戻される。ファイル終端(end-of-file)指示子はクリアされる。 +そのファイルの背後にある記憶媒体は影響を受けない。 .PP -Ãí°Õ: \fIwc\fP ¤Ï¥¹¥È¥ê¡¼¥à¤«¤éÆɤ߹þ¤ó¤ÀºÇ¸å¤Î¥ï¥¤¥Éʸ»ú¤Ç¤¢¤ëɬÍפϤʤ¤¡£ -Í­¸ú¤Ê¥ï¥¤¥Éʸ»ú¤Ê¤é¤Ð²¿¤Ç¤âÎɤ¤¡£ +注意: \fIwc\fP はストリームから読み込んだ最後のワイド文字である必要はない。 +有効なワイド文字ならば何でも良い。 .PP -³¤±¤ÆÊ£¿ô¤Î¥ï¥¤¥Éʸ»ú¤òÌ᤹¤³¤È¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¼ÂÁõ¤Î¾ì¹ç¤Ï¡¢ -Ìᤷ¤¿¥ï¥¤¥Éʸ»ú¤Ï¡¢Ìᤷ¤¿¤Î¤È¤ÏµÕ¤Î½çÈÖ¤ÇÆɤ߹þ¤Þ¤ì¤ë¡£ -¤·¤«¤·¤³¤Î¾ì¹ç¤Ç¤â°ìÃʳ¬¤ÎÌᤷ¤·¤«Êݾڤµ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +続けて複数のワイド文字を戻すことをサポートしている実装の場合は、 +戻したワイド文字は、戻したのとは逆の順番で読み込まれる。 +しかしこの場合でも一段階の戻ししか保証されていない。 +.SH 返り値 .BR ungetwc () -´Ø¿ô¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï \fIwc\fP ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï \fBWEOF\fP ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は成功した場合には \fIwc\fP を返す。 +失敗した場合には \fBWEOF\fP を返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR ungetwc () -´Ø¿ô¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +関数の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +カテゴリに依存している。 +.SH 関連項目 .BR fgetwc (3) diff --git a/release/man3/unlocked_stdio.3 b/release/man3/unlocked_stdio.3 index c7c136e9..9d90a618 100644 --- a/release/man3/unlocked_stdio.3 +++ b/release/man3/unlocked_stdio.3 @@ -26,10 +26,10 @@ .\" by Akihiro MOTOKI .\" .TH UNLOCKED_STDIO 3 2008-08-29 "" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 getc_unlocked, getchar_unlocked, putc_unlocked, -putchar_unlocked \- ¥í¥Ã¥¯¤ò¹Ô¤ï¤º¤Ëɸ½àÆþ½ÐÎϤò¹Ô¤¦´Ø¿ô·² -.SH ½ñ¼° +putchar_unlocked \- ロックを行わずに標準入出力を行う関数群 +.SH 書式 .nf .B #include .sp @@ -66,9 +66,9 @@ putchar_unlocked \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .ad l .in .sp @@ -107,25 +107,25 @@ _BSD_SOURCE || _SVID_SOURCE _GNU_SOURCE .RE .ad b -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ËöÈø¤Ë "_unlocked" ¤¬¤Ä¤¤¤Æ¤¤¤Ê¤¤´Ø¿ô¤ÈƱ¤¸Æ°ºî¤ò¤¹¤ë¤¬¡¢ -¥Õ¥¡¥¤¥ë¤Î¥í¥Ã¥¯¤ò»ÈÍѤ·¤Ê¤¤ÅÀ¤¬°Û¤Ê¤ë¡£(¤³¤ì¤é¤Î´Ø¿ô¼«¿È¤Ï¥Õ¥¡¥¤¥ë¤Î¥í¥Ã¥¯ -¤ò¥»¥Ã¥È¤»¤º¡¢Â¾¤Î´Ø¿ô¤Ë¤è¤Ã¤Æ¥í¥Ã¥¯¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Î¥Á¥§¥Ã¥¯¤â -¹Ô¤ï¤Ê¤¤) ¤½¤ì¤æ¤¨¡¢¥¹¥ì¥Ã¥É(thread)¤Ç°ÂÁ´¤Ë»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +.SH 説明 +これらの関数は、末尾に "_unlocked" がついていない関数と同じ動作をするが、 +ファイルのロックを使用しない点が異なる。(これらの関数自身はファイルのロック +をセットせず、他の関数によってロックがセットされているかどうかのチェックも +行わない) それゆえ、スレッド(thread)で安全に使用することができない。 .BR flockfile (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ½àµò +を参照のこと。 +.SH 準拠 .BR getc_unlocked (), .BR getchar_unlocked (), .BR putc_unlocked (), .BR putchar_unlocked () -¤Î 4 ¤Ä¤Î´Ø¿ô¤Ï -POSIX.1-2001 ¤Ëµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +の 4 つの関数は +POSIX.1-2001 に規定されている。 -Èóɸ½à¤Î +非標準の .BR *_unlocked () -¤ÎÃç´Ö¤Ï 2¡¢3 ¤Î UNIX ¥·¥¹¥Æ¥à¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ -ºÇ¶á¤Î glibc ¤Ç¤Ï»ÈÍѲÄǽ¤Ç¤¢¤ë¤¬¡¢ +の仲間は 2、3 の UNIX システムで定義されており、 +最近の glibc では使用可能であるが、 .\" E.g., in HP-UX 10.0. In HP-UX 10.30 they are called obsolescent, and .\" moved to a compatibility library. .\" Available in HP-UX 10.0: clearerr_unlocked, fclose_unlocked, @@ -137,7 +137,7 @@ POSIX.1-2001 .\" putchar_unlocked, puts_unlocked, putws_unlocked, putw_unlocked, .\" putwc_unlocked, putwchar_unlocked, rewind_unlocked, setvbuf_unlocked, .\" ungetc_unlocked, ungetwc_unlocked. -¤³¤ì¤é¤Î´Ø¿ô¤Ï»È¤ï¤Ê¤¤Êý¤¬¤è¤¤¤À¤í¤¦¡£ -.SH ´ØÏ¢¹àÌÜ +これらの関数は使わない方がよいだろう。 +.SH 関連項目 .BR flockfile (3), .BR stdio (3) diff --git a/release/man3/unlockpt.3 b/release/man3/unlockpt.3 index 2f4fda48..e0dc225c 100644 --- a/release/man3/unlockpt.3 +++ b/release/man3/unlockpt.3 @@ -7,49 +7,49 @@ .\" by Akihiro MOTOKI .\" .TH UNLOCKPT 3 2008-06-14 "" "Linux Programmer's Manual" -.SH ̾Á° -unlockpt \- µ¼»÷üËö¥Þ¥¹¥¿/¥¹¥ì¡¼¥Ö¤Î¥Ú¥¢¤Î¥í¥Ã¥¯¤ò²ò½ü¤¹¤ë -.SH ½ñ¼° +.SH 名前 +unlockpt \- 擬似端末マスタ/スレーブのペアのロックを解除する +.SH 書式 .nf -.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) 参照 */" .br .B #include .sp .BI "int unlockpt(int " fd ");" .fi -.SH ÀâÌÀ +.SH 説明 .BR unlockpt () -´Ø¿ô¤Ï +関数は .I fd -¤Ç»²¾È¤µ¤ì¤ë¥Þ¥¹¥¿µ¼»÷üËö¤ËÂбþ¤¹¤ë¥¹¥ì¡¼¥Öµ¼»÷üËö¤Î¥í¥Ã¥¯¤ò -²ò½ü¤¹¤ë¡£ +で参照されるマスタ擬似端末に対応するスレーブ擬似端末のロックを +解除する。 .PP -µ¼»÷üËö¤Î¥¹¥ì¡¼¥Ö¦¤ò¥ª¡¼¥×¥ó¤¹¤ëÁ°¤Ë¡¢ +擬似端末のスレーブ側をオープンする前に、 .BR unlockpt () -¤ò¸Æ¤Ó½Ð¤¹É¬Íפ¬¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¡¢ +を呼び出す必要がある。 +.SH 返り値 +成功した場合、 .BR grantpt () -¤Ï 0 ¤òÊÖ¤¹¡£¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢ +は 0 を返す。そうでない場合、\-1 を返し、 .I errno -¤ËŬÀÚ¤ÊÃͤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +に適切な値がセットされる。 +.SH エラー .TP .B EBADF -°ú¤­¿ô +引き数 .I fd -¤¬½ñ¤­¹þ¤ßÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ +が書き込み用にオープンされたファイル・ディスクリプタでない。 .TP .B EINVAL -°ú¤­¿ô +引き数 .I fd -¤¬¥Þ¥¹¥¿µ¼»÷üËö¤ËÂбþ¤¹¤ë¤â¤Î¤Ç¤Ï¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +がマスタ擬似端末に対応するものではない。 +.SH バージョン .BR unlockpt () -¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò +は、バージョン 2.1 以降の glibc で提供されている。 +.SH 準拠 POSIX.1-2001. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR grantpt (3), .BR posix_openpt (3), .BR ptsname (3), diff --git a/release/man3/updwtmp.3 b/release/man3/updwtmp.3 index 28eb03cd..e39fba55 100644 --- a/release/man3/updwtmp.3 +++ b/release/man3/updwtmp.3 @@ -1,6 +1,6 @@ -.\" WORD: current process ID ¸½¥×¥í¥»¥¹ID -.\" WORD: AVAILABILITY ÍøÍѲÄǽ¤Ê´Ä¶­ -.\" Copyright 1997 NicoláÔ Lichtmaier +.\" WORD: current process ID 現プロセスID +.\" WORD: AVAILABILITY 利用可能な環境 +.\" Copyright 1997 Nicol疽 Lichtmaier .\" Created Wed Jul 2 23:27:34 ART 1997 .\" .\" This is free documentation; you can redistribute it and/or @@ -30,9 +30,9 @@ .\" Updated 2008-07-30 by Kentaro Shirakata .\" .TH UPDWTMP 3 2008-07-02 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -updwtmp, logwtmp \- wtmp ¥Õ¥¡¥¤¥ë¤Ë¥¨¥ó¥È¥ê¤òÄɲ乤ë -.SH ½ñ¼° +.SH 名前 +updwtmp, logwtmp \- wtmp ファイルにエントリを追加する +.SH 書式 .nf .B #include .sp @@ -41,40 +41,40 @@ updwtmp, logwtmp \- wtmp .BI "void logwtmp(const char *" line ", const char *" name \ ", const char *" host ); .fi -.SH ÀâÌÀ +.SH 説明 .BR updwtmp () -¤Ï¡¢utmp ¹½Â¤ÂÎ +は、utmp 構造体 .I ut -¤ò wtmp ¥Õ¥¡¥¤¥ë¤ËÄɲ乤롣 +を wtmp ファイルに追加する。 .PP .BR logwtmp () -¤Ï¡¢ +は、 .IR line ", " name ", " host , -¸½ºß»þ¹ï¡¢¸½¥×¥í¥»¥¹ID ¤«¤é utmp ¹½Â¤ÂΤòºî¤ê¡¢ +現在時刻、現プロセスID から utmp 構造体を作り、 .BR updwtmp () -¤ò¸Æ¤Ó½Ð¤·¤Æ¤½¤Î¹½Â¤ÂΤò wtmp ¥Õ¥¡¥¤¥ë¤ËÄɲ乤롣 -.SH ¥Õ¥¡¥¤¥ë +を呼び出してその構造体を wtmp ファイルに追加する。 +.SH ファイル .TP .I /var/log/wtmp -¥æ¡¼¥¶¥í¥°¥¤¥ó¤ÎÍúÎò¥Ç¡¼¥¿¥Ù¡¼¥¹ -.SH ½àµò -POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -Solaris, NetBSD ¤Ë¸ºß¤·¡¢¤ª¤½¤é¤¯Â¾¤Î¥·¥¹¥Æ¥à¤Ë¤â¤¢¤ë¤À¤í¤¦¡£ -.SH ÍøÍѲÄǽ¤Ê´Ä¶­ -glibc2 ¤Î²¼¤Ç¤Ï¤É¤Á¤é¤Î´Ø¿ô¤âÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -libc5 ¤Î²¼¤Ç¤Ï¤É¤Á¤é¤â»È¤¨¤Ê¤¤¤¬¡¢ +ユーザログインの履歴データベース +.SH 準拠 +POSIX.1-2001 にはない。 +Solaris, NetBSD に存在し、おそらく他のシステムにもあるだろう。 +.SH 利用可能な環境 +glibc2 の下ではどちらの関数も利用可能である。 +libc5 の下ではどちらも使えないが、 .BR logwtmp () -¤Ï¸Å¤¤ libbsd ¤Ë¤¢¤Ã¤¿¡£ -ºÇ¶á¤Ç¤Ï¡¢ +は古い libbsd にあった。 +最近では、 .BR logwtmp () -´Ø¿ô¤Ï libutil ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë -(¤·¤¿¤¬¤Ã¤Æ¡¢¤³¤Î´Ø¿ô¤ò»È¤¦¤¿¤á¤Ë¤Ï¥³¥ó¥Ñ¥¤¥é¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ë -\fI\-lutil\fP ¤òÄɲ乤ëɬÍפ¬¤¢¤ë)¡£ -.SH Ãí°Õ -¾¤Î "utmpx" ´Ø¿ô·² +関数は libutil に含まれている +(したがって、この関数を使うためにはコンパイラのコマンドラインに +\fI\-lutil\fP を追加する必要がある)。 +.SH 注意 +他の "utmpx" 関数群 .RB ( getutxent (3) -»²¾È) ¤È¤Î°ì´ÓÀ­¤Î¤¿¤á¤Ë¡¢glibc (¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß) ¤Ï°Ê²¼¤Î´Ø¿ô¤ò -Ä󶡤·¤Æ¤¤¤ë: +参照) との一貫性のために、glibc (バージョン 2.1 以降) は以下の関数を +提供している: .nf .sp .B #include @@ -82,11 +82,11 @@ libc5 .BI "void updwtmpx (const char *" wtmpx_file ", const struct utmpx *" utx ); .fi .PP -¤³¤Î´Ø¿ô¤Ï +この関数は .BR updwtmp () -¤ÈƱ¤¸ºî¶È¤ò¹Ô¤¦¤¬¡¢ºÇ¸å¤Î°ú¤­¿ô¤È¤·¤Æ +と同じ作業を行うが、最後の引き数として .I utmpx -¹½Â¤ÂΤò¼è¤ë¤È¤³¤í¤¬°Û¤Ê¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +構造体を取るところが異なる。 +.SH 関連項目 .BR getutxent (3), .BR wtmp (5) diff --git a/release/man3/usleep.3 b/release/man3/usleep.3 index 0c20f944..e1309938 100644 --- a/release/man3/usleep.3 +++ b/release/man3/usleep.3 @@ -37,9 +37,9 @@ .\" Updated 2007-05-04, Akihiro MOTOKI , LDP v2.44 .\" .TH USLEEP 3 2010-12-03 "" "Linux Programmer's Manual" -.SH ̾Á° -usleep \- ¥Þ¥¤¥¯¥íÉÃñ°Ì¤Ç¼Â¹Ô¤ò±ä´ü¤¹¤ë -.SH ½ñ¼° +.SH 名前 +usleep \- マイクロ秒単位で実行を延期する +.SH 書式 .nf .B "#include " .sp @@ -47,9 +47,9 @@ usleep \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR usleep (): @@ -57,7 +57,7 @@ glibc .RS 4 .PD 0 .TP 4 -glibc 2.12 °Ê¹ß: +glibc 2.12 以降: .nf _BSD_SOURCE || (_XOPEN_SOURCE\ >=\ 500 || @@ -65,59 +65,59 @@ _BSD_SOURCE || !(_POSIX_C_SOURCE\ >=\ 200809L || _XOPEN_SOURCE\ >=\ 700) .TP 4 .fi -glibc 2.12 ¤è¤êÁ°: +glibc 2.12 より前: _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .PD .RE .ad b -.SH ÀâÌÀ +.SH 説明 .BR usleep () -´Ø¿ô¤Ï -(¾¯¤Ê¤¯¤È¤â) \fIusec\fP¥Þ¥¤¥¯¥íÉäδ֡¢ -¸Æ¤Ó½Ð¤·¸µ¥¹¥ì¥Ã¥É¤Î¼Â¹Ô¤ò±ä´ü¤¹¤ë¡£ -¥·¥¹¥Æ¥à¤ÎÆ°ºî¾õ¶·¤ä¸Æ¤Ó½Ð¤·¤Ë¤è¤ë»þ´Ö¤Î¾ÃÈñ¤ä¥·¥¹¥Æ¥à¥¿¥¤¥Þ¤ÎγÅ٤ˤè¤Ã¤Æ¡¢ -Ää»ß»þ´Ö¤ÏÀßÄꤷ¤¿Ãͤè¤ê¤â¾¯¤·±ä¤Ð¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È 0¡¢¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +関数は +(少なくとも) \fIusec\fPマイクロ秒の間、 +呼び出し元スレッドの実行を延期する。 +システムの動作状況や呼び出しによる時間の消費やシステムタイマの粒度によって、 +停止時間は設定した値よりも少し延ばされるかもしれない。 +.SH 返り値 +成功すると 0、エラーの場合 \-1 を返す。 +.SH エラー .TP .B EINTR -¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤ÆÃæÃǤµ¤ì¤¿¡£ +シグナルによって中断された。 .BR signal (7) -»²¾È¡£ +参照。 .TP .B EINVAL -\fIusec\fP ¤¬ 1000000 °Ê¾å¤À¤Ã¤¿¡£ -(¤³¤ì¤ò¥¨¥é¡¼¤È¤ß¤Ê¤¹¥·¥¹¥Æ¥à¤Î¤ß) -.SH ½àµò +\fIusec\fP が 1000000 以上だった。 +(これをエラーとみなすシステムのみ) +.SH 準拠 4.3BSD, POSIX.1-2001. -POSIX.1-2001 ¤Ç¤Ï¡¢¤³¤Î´Ø¿ô¤Ï²áµî¤Î¤â¤Î¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤ë¡£ -Âå¤ï¤ê¤Ë +POSIX.1-2001 では、この関数は過去のものと宣言されている。 +代わりに .BR nanosleep (2) -¤ò»È¤¦¤³¤È¡£ -POSIX.1-2008 ¤Ç¤Ï¡¢ +を使うこと。 +POSIX.1-2008 では、 .BR usleep () -¤Îµ¬Ä꤬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£ +の規定が削除されている。 -¤â¤È¤â¤È¤Î BSD ¤Î¼ÂÁõ¤ä¡¢¥Ð¡¼¥¸¥ç¥ó 2.2.2 ¤è¤êÁ°¤Î glibc ¤Ç¤Ï¡¢ -¤³¤Î´Ø¿ô¤ÎÊÖ¤êÃͤη¿¤Ï +もともとの BSD の実装や、バージョン 2.2.2 より前の glibc では、 +この関数の返り値の型は .I void -¤Ç¤¢¤ë¡£ -POSIX ÈÇ¤Ï +である。 +POSIX 版は .I int -¤òÊÖ¤·¡¢¤³¤Î¥×¥í¥È¥¿¥¤¥×¤Ï glibc 2.2.2 °Ê¹ß¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ +を返し、このプロトタイプは glibc 2.2.2 以降で使用されている。 -¥¨¥é¡¼¤È¤·¤Æ +エラーとして .B EINVAL -¤òÊÖ¤¹¤È¤¤¤¦¤Î¤Ï -SUSv2 ¤È POSIX.1-2001 ¤Ç¤Î¤ßʸ½ñ²½¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ +を返すというのは +SUSv2 と POSIX.1-2001 でのみ文書化されている。 +.SH 注意 .I useconds_t -·¿¤Ï [0,1000000] ¤ÎÈϰϤÎÀ°¿ô¤ò°·¤¦¤³¤È¤¬¤Ç¤­¤ë -Éä¹æ¤Ê¤·À°¿ô·¿¤Ç¤¢¤ë¡£ -ÌÀ¼¨Åª¤Ë¤³¤Î·¿¤ò»È¤ï¤Ê¤¤¤³¤È¤Ç¥×¥í¥°¥é¥à¤Î°Ü¿¢À­¤¬¤è¤ê¹â¤Þ¤ë¡£ -°Ê²¼¤Î¤è¤¦¤Ë»È¤¦¤³¤È¡£ +型は [0,1000000] の範囲の整数を扱うことができる +符号なし整数型である。 +明示的にこの型を使わないことでプログラムの移植性がより高まる。 +以下のように使うこと。 .in +4n .nf .sp @@ -129,9 +129,9 @@ SUSv2 .fi .in .LP -¤³¤Î´Ø¿ô¤È¡¢ +この関数と、 .B SIGALRM -¥·¥°¥Ê¥ë¤¢¤ë¤¤¤Ï +シグナルあるいは .BR alarm (2), .BR sleep (3), .BR nanosleep (2), @@ -142,8 +142,8 @@ SUSv2 .BR timer_gettime (2), .BR timer_settime (2), .BR ualarm (3) -¤È¤¤¤Ã¤¿¤½¤Î¾¤Î¥¿¥¤¥Þ¡¼´Ø¿ô¤òƱ»þ¤Ë»È¤Ã¤¿¾ì¹ç¤ÎÆ°ºî¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +といったその他のタイマー関数を同時に使った場合の動作は未定義である。 +.SH 関連項目 .BR alarm (2), .BR getitimer (2), .BR nanosleep (2), diff --git a/release/man3/wcpcpy.3 b/release/man3/wcpcpy.3 index a2853024..e666673b 100644 --- a/release/man3/wcpcpy.3 +++ b/release/man3/wcpcpy.3 @@ -15,9 +15,9 @@ .\" by FUJIWARA Teruyoshi .\" .TH WCPCPY 3 2011-10-01 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wcpcpy \- ¥ï¥¤¥Éʸ»úʸ»úÎó¤ò¥³¥Ô¡¼¤·¡¢¤½¤ÎËöÈø¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤òÊÖ¤¹ -.SH ½ñ¼° +.SH 名前 +wcpcpy \- ワイド文字文字列をコピーし、その末尾を指すポインタを返す +.SH 書式 .nf .B #include .sp @@ -25,9 +25,9 @@ wcpcpy \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR wcpcpy (): @@ -35,33 +35,33 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR wcpcpy () -´Ø¿ô¤Ï¡¢ +関数は、 .BR stpcpy (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï \fIsrc\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤ò¡¢ -½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤ò´Þ¤á¤Æ¡¢ -\fIdest\fP ¤¬»Ø¤¹ÇÛÎó¤Ë¥³¥Ô¡¼¤¹¤ë¡£ +関数に対応するワイド文字関数である。 +この関数は \fIsrc\fP が指すワイド文字文字列を、 +終端の NULL ワイド文字 (L\(aq\\0\(aq) を含めて、 +\fIdest\fP が指す配列にコピーする。 .PP -¤³¤ì¤é¤Îʸ»úÎó¤Ï½Å¤Ê¤Ã¤Æ¤¤¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +これらの文字列は重なっていてはならない。 .PP -¥×¥í¥°¥é¥Þ¤Ï¡¢\fIdest\fP ¤¬»Ø¤¹Îΰè¤Ë¾¯¤Ê¤¯¤È¤â¥ï¥¤¥Éʸ»ú -\fIwcslen(src)+1\fP ¸Äʬ¤ÎÎΰè¤ò³ÎÊݤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +プログラマは、\fIdest\fP が指す領域に少なくともワイド文字 +\fIwcslen(src)+1\fP 個分の領域を確保しなければならない。 +.SH 返り値 .BR wcpcpy () -¤Ï¡¢¥ï¥¤¥Éʸ»úʸ»úÎó \fIdest\fP ¤ÎËöÈø¡¢¤Ä¤Þ¤ê½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú -¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -.SH ½àµò +は、ワイド文字文字列 \fIdest\fP の末尾、つまり終端の NULL ワイド文字 +を指すポインタを返す。 +.SH 準拠 POSIX.1-2008. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strcpy (3), .BR wcscpy (3) diff --git a/release/man3/wcpncpy.3 b/release/man3/wcpncpy.3 index 0a2374fa..cf8ddfdc 100644 --- a/release/man3/wcpncpy.3 +++ b/release/man3/wcpncpy.3 @@ -15,9 +15,9 @@ .\" by FUJIWARA Teruyoshi .\" .TH WCPNCPY 3 2011-10-01 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wcpncpy \- ¸ÇÄêĹ¤Î¥ï¥¤¥Éʸ»úʸ»úÎó¤ò¥³¥Ô¡¼¤·¡¢¤½¤ÎËöÈø¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤òÊÖ¤¹ -.SH ½ñ¼° +.SH 名前 +wcpncpy \- 固定長のワイド文字文字列をコピーし、その末尾を指すポインタを返す +.SH 書式 .nf .B #include .sp @@ -25,9 +25,9 @@ wcpncpy \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR wcpncpy (): @@ -35,38 +35,38 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR wcpncpy () -´Ø¿ô¤Ï¡¢ +関数は、 .BR stpncpy (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIsrc\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎ󤫤é \fIdest\fP ¤¬»Ø¤¹ -¥ï¥¤¥Éʸ»úʸ»úÎó¤Ë¡¢½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤ò´Þ¤á¤Æ -ºÇÂç \fIn\fP ʸ»ú¤ò¥³¥Ô¡¼¤¹¤ë¡£ -¤Á¤ç¤¦¤É \fIn\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤¬ \fIdest\fP ¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¡£ -¤Ä¤Þ¤ê¡¢\fIwcslen(src)\fP ¤ÎŤµ¤¬ \fIn\fP ¤è¤ê¾®¤µ¤±¤ì¤Ð¡¢ -\fIdest\fP ¤¬»Ø¤¹ÇÛÎóÃæ¤Î»Ä¤ê¤Î¥ï¥¤¥Éʸ»ú¤Ï L\(aq\\0\(aq ʸ»ú¤ÇËä¤á¤é¤ì¤ë¡£ -\fIwcslen(src)\fP ¤ÎŤµ¤¬ \fIn\fP °Ê¾å¤Ê¤é¤Ð¡¢\fIdest\fP ¤¬»Ø¤¹ -ʸ»úÎó¤Ï L\(aq\\0\(aq ¤Ç½ªÃ¼¤µ¤ì¤Ê¤¤¡£ +関数に対応するワイド文字関数である。 +この関数は、\fIsrc\fP が指すワイド文字文字列から \fIdest\fP が指す +ワイド文字文字列に、終端の NULL ワイド文字 (L\(aq\\0\(aq) を含めて +最大 \fIn\fP 文字をコピーする。 +ちょうど \fIn\fP 個のワイド文字が \fIdest\fP にコピーされる。 +つまり、\fIwcslen(src)\fP の長さが \fIn\fP より小さければ、 +\fIdest\fP が指す配列中の残りのワイド文字は L\(aq\\0\(aq 文字で埋められる。 +\fIwcslen(src)\fP の長さが \fIn\fP 以上ならば、\fIdest\fP が指す +文字列は L\(aq\\0\(aq で終端されない。 .PP -2 ¤Ä¤Îʸ»úÎó¤Ï½Å¤Ê¤Ã¤Æ¤¤¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +2 つの文字列は重なっていてはならない。 .PP -¥×¥í¥°¥é¥Þ¤Ï¡¢¾¯¤Ê¤¯¤È¤â \fIn\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤ò³ÊǼ¤Ç¤­¤ëÎΰè¤ò -\fIdest\fP ¤Ë³ÎÊݤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +プログラマは、少なくとも \fIn\fP 個のワイド文字を格納できる領域を +\fIdest\fP に確保しなければならない。 +.SH 返り値 .BR wcpncpy () -¤Ï¡¢ºÇ¸å¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¥ï¥¤¥Éʸ»ú¤Ø¤Î¥Ý¥¤¥ó¥¿¡¢ -¤¹¤Ê¤ï¤Á \fIdest + n \- 1\fP ¤òÊÖ¤¹¡£ -.SH ½àµò +は、最後に書き込まれたワイド文字へのポインタ、 +すなわち \fIdest + n \- 1\fP を返す。 +.SH 準拠 POSIX.1-2008. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR stpncpy (3), .BR wcsncpy (3) diff --git a/release/man3/wcrtomb.3 b/release/man3/wcrtomb.3 index b530ce7b..efba984e 100644 --- a/release/man3/wcrtomb.3 +++ b/release/man3/wcrtomb.3 @@ -16,63 +16,63 @@ .\" by FUJIWARA Teruyoshi .\" .TH WCRTOMB 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wcrtomb \- ¥ï¥¤¥Éʸ»ú 1 ¤Ä¤ò¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +wcrtomb \- ワイド文字 1 つをマルチバイト列に変換する +.SH 書式 .nf .B #include .sp .BI "size_t wcrtomb(char *" s ", wchar_t " wc ", mbstate_t *" ps ); .fi -.SH ÀâÌÀ -¤³¤Î´Ø¿ô¤¬¼ç¤Ë»È¤ï¤ì¤ë¤Î¤Ï¡¢\fIs\fP ¤¬ NULL ¤Ç¤Ê¤¯¡¢ -\fIwc\fP ¤¬ NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤Ç¤Ê¤¤¾ì¹ç¤Ç¤¢¤ë¡£ -¤³¤Î¾ì¹ç¤Ë¤Ï¡¢ +.SH 説明 +この関数が主に使われるのは、\fIs\fP が NULL でなく、 +\fIwc\fP が NULL ワイド文字 (L\(aq\\0\(aq) でない場合である。 +この場合には、 .BR wcrtomb () -´Ø¿ô¤Ï¥ï¥¤¥Éʸ»ú \fIwc\fP ¤ò¥Þ¥ë¥Á¥Ð¥¤¥Èɽ -¸½¤ËÊÑ´¹¤·¡¢\fIs\fP ¤¬»Ø¤¹ char ·¿¤ÎÇÛÎó¤Ë¤³¤ì¤ò³ÊǼ¤¹¤ë¡£¤³¤Î´Ø¿ô¤Ï -¥·¥Õ¥È¾õÂÖ \fI*ps\fP ¤ò¹¹¿·¤·¡¢½ÐÎϤµ¤ì¤¿¥Þ¥ë¥Á¥Ð¥¤¥Èɽ¸½¤ÎŤµ¡¢¤¹¤Ê -¤ï¤Á \fIs\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ +関数はワイド文字 \fIwc\fP をマルチバイト表 +現に変換し、\fIs\fP が指す char 型の配列にこれを格納する。この関数は +シフト状態 \fI*ps\fP を更新し、出力されたマルチバイト表現の長さ、すな +わち \fIs\fP に書き込まれたバイト数を返す。 .PP -Ê̤Υ±¡¼¥¹¤È¤·¤Æ¤Ï¡¢\fIs\fP ¤Ï NULL ¤Ç¤Ê¤¤¤¬ -\fIwc\fP ¤¬ NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤Î¤³¤È¤¬¤¢¤ë¡£ -¤³¤Î¾ì¹ç¤Î +別のケースとしては、\fIs\fP は NULL でないが +\fIwc\fP が NULL ワイド文字 (L\(aq\\0\(aq) のことがある。 +この場合の .BR wcrtomb () -´Ø¿ô¤Ï¡¢\fI*ps\fP ¤ò½é´ü¾õÂÖ¤ËÌ᤹¤Î¤Ëɬ -Íפʥ·¥Õ¥È¥·¡¼¥±¥ó¥¹¤ò \fIs\fP ¤¬»Ø¤¹ char ·¿ÇÛÎó¤Ë³ÊǼ¤·¡¢¤½¤Î¸å¤Ë \(aq\\0\(aq -¤ò³ÊǼ¤¹¤ë¡£¤³¤Î´Ø¿ô¤Ï¥·¥Õ¥È¾õÂÖ \fI*ps\fP ¤ò¹¹¿·¤·(¤Ä¤Þ¤ê½é´ü¾õÂÖ¤ËÌá -¤·)¡¢¥·¥Õ¥È¥·¡¼¥±¥ó¥¹¤ÎŤµ¤Ë 1 ¤ò²Ã¤¨¤¿ÃͤòÊÖ¤¹¡£¤³¤ÎÃÍ¤Ï \fIs\fP ¤Ë -½ñ¤­¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¿ô¤Ç¤¢¤ë¡£ +関数は、\fI*ps\fP を初期状態に戻すのに必 +要なシフトシーケンスを \fIs\fP が指す char 型配列に格納し、その後に \(aq\\0\(aq +を格納する。この関数はシフト状態 \fI*ps\fP を更新し(つまり初期状態に戻 +し)、シフトシーケンスの長さに 1 を加えた値を返す。この値は \fIs\fP に +書き込まれたバイト数である。 .PP -»°ÈÖÌܤΥ±¡¼¥¹¤Ï¡¢\fIs\fP ¤¬ NULL ¤Î»þ¤Ç¤¢¤ë¡£ -¤³¤Î¾ì¹ç¤Ë¤Ï \fIwc\fP ¤Ï̵»ë¤µ¤ì¡¢´Ø¿ô¤Î¼ÂºÝ¤ÎÆ°¤­¤È¤·¤Æ¤Ï +三番目のケースは、\fIs\fP が NULL の時である。 +この場合には \fIwc\fP は無視され、関数の実際の動きとしては wcrtomb(buf, L\(aq\\0\(aq, ps) -¤¬ÊÖ¤µ¤ì¤ë¡£¤³¤³¤Ç¡¢ +が返される。ここで、 .I buf -¤ÏÆâÉôŪ¤Ê̵̾¥Ð¥Ã¥Õ¥¡¤Ç¤¢¤ë¡£ +は内部的な無名バッファである。 .PP -°Ê¾å¤Î¤¤¤º¤ì¤Î¾ì¹ç¤â¡¢\fIps\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¤Ê¤é¤Ð¥·¥Õ¥È¾õÂÖ¤ÏÍѤ¤ -¤é¤ì¤º¡¢ +以上のいずれの場合も、\fIps\fP が NULL ポインタならばシフト状態は用い +られず、 .BR wcrtomb () -´Ø¿ô¤À¤±¤¬ÃΤäƤ¤¤ëÀÅŪ¤Êƿ̾¤Î¾õÂÖ¤¬»È¤ï¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +関数だけが知っている静的な匿名の状態が使われる。 +.SH 返り値 .BR wcrtomb () -´Ø¿ô¤Ï¡¢\fIs\fP ¤¬»Ø¤¹¥Ð¥¤¥ÈÎó¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¿ô¡¢¤¢ -¤ë¤¤¤Ï½ñ¤­¹þ¤Þ¤ì¤¿¤Ç¤¢¤í¤¦¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£\fIwc\fP ¤ò(¸½ºß¤Î¥í¥±¡¼¥ë¤Ë -½¾¤Ã¤Æ)¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤Çɽ¸½¤Ç¤­¤Ê¤±¤ì¤Ð¡¢ +関数は、\fIs\fP が指すバイト列に書き込まれたバイト数、あ +るいは書き込まれたであろうバイト数を返す。\fIwc\fP を(現在のロケールに +従って)マルチバイト列で表現できなければ、 .I (size_t)\ \-1 -¤¬ÊÖ¤µ¤ì¡¢ \fIerrno\fP ¤Ë \fBEILSEQ\fP ¤¬ÀßÄꤵ¤ì¤ë¡£ -.SH ½àµò +が返され、 \fIerrno\fP に \fBEILSEQ\fP が設定される。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR wcrtomb () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .PP -\fIps\fP ¤Ë NULL ¤òÅϤ·¤¿ºÝ¤ÎÆ°ºî¤Ï¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +\fIps\fP に NULL を渡した際の動作はマルチスレッドセーフでない。 +.SH 関連項目 .BR wcsrtombs (3) diff --git a/release/man3/wcscasecmp.3 b/release/man3/wcscasecmp.3 index da55f1f5..2f42d69d 100644 --- a/release/man3/wcscasecmp.3 +++ b/release/man3/wcscasecmp.3 @@ -15,9 +15,9 @@ .\" by FUJIWARA Teruyoshi .\" .TH WCSCASECMP 3 2010-09-15 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wcscasecmp \- ¥ï¥¤¥Éʸ»úÎó¤òÈæ³Ó¤¹¤ë¡£Âçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤¡£ -.SH ½ñ¼° +.SH 名前 +wcscasecmp \- ワイド文字列を比較する。大文字と小文字を区別しない。 +.SH 書式 .nf .B #include .sp @@ -25,9 +25,9 @@ wcscasecmp \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR wcscasecmp (): @@ -35,44 +35,44 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR wcscasecmp () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strcasecmp (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô -¤Ç¤¢¤ë¡£¤³¤Î´Ø¿ô¤Ï¡¢\fIs1\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤È \fIs2\fP ¤¬»Ø¤¹ -¥ï¥¤¥Éʸ»úʸ»úÎó¤ò¡¢Âçʸ»ú¤È¾®Ê¸»ú¤Î°ã¤¤ +関数に対応するワイド文字関数 +である。この関数は、\fIs1\fP が指すワイド文字文字列と \fIs2\fP が指す +ワイド文字文字列を、大文字と小文字の違い .RB ( towupper (3), .BR towlower (3)) -¤ò̵»ë¤·¤ÆÈæ³Ó¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ +を無視して比較する。 +.SH 返り値 .BR wcscasecmp () -´Ø¿ô¤Ï¡¢\fIs1\fP ¤È \fIs2\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úÎó¤òÂçʸ -»ú¤È¾®Ê¸»ú¤Î°ã¤¤¤ò̵»ë¤·¤ÆÈæ³Ó¤·¤¿»þ¤Ë¡¢Åù¤·¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£Âçʸ»ú¤È -¾®Ê¸»ú¤Î°ã¤¤¤ò̵»ë¤·¤Æ \fIs1\fP ¤ÎÊý¤¬ \fIs2\fP ¤è¤êÂ礭¤±¤ì¤ÐÀµ¤ÎÀ°¿ô -¤òÊÖ¤¹¡£ -Âçʸ»ú¤È¾®Ê¸»ú¤Î°ã¤¤¤ò̵»ë¤·¤Æ \fIs1\fP ¤ÎÊý¤¬ \fIs2\fP ¤è¤ê¾®¤µ¤±¤ì¤Ð -Éé¤ÎÀ°¿ô¤òÊÖ¤¹¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +関数は、\fIs1\fP と \fIs2\fP が指すワイド文字列を大文 +字と小文字の違いを無視して比較した時に、等しければ 0 を返す。大文字と +小文字の違いを無視して \fIs1\fP の方が \fIs2\fP より大きければ正の整数 +を返す。 +大文字と小文字の違いを無視して \fIs1\fP の方が \fIs2\fP より小さければ +負の整数を返す。 +.SH バージョン .BR wcscasecmp () -´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò +関数は glibc バージョン 2.1 以降で提供されている。 +.SH 準拠 POSIX.1-2008. -¤³¤Î´Ø¿ô¤Ï POSIX.1-2001 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -Linux °Ê³°¤Î¾¤Î¥·¥¹¥Æ¥à¤Ç¹­¤¯ÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH Ãí°Õ +この関数は POSIX.1-2001 では規定されていないが、 +Linux 以外の他のシステムで広く利用可能である。 +.SH 注意 .BR wcscasecmp () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¤Ë°Í¸¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +に依存する。 +.SH 関連項目 .BR strcasecmp (3), .BR wcscmp (3) diff --git a/release/man3/wcscat.3 b/release/man3/wcscat.3 index 445bc4fc..f92e7578 100644 --- a/release/man3/wcscat.3 +++ b/release/man3/wcscat.3 @@ -16,33 +16,33 @@ .\" by FUJIWARA Teruyoshi .\" .TH WCSCAT 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wcscat \- 2 ¤Ä¤Î¥ï¥¤¥Éʸ»úʸ»úÎó¤ò·ë¹ç¤¹¤ë -.SH ½ñ¼° +.SH 名前 +wcscat \- 2 つのワイド文字文字列を結合する +.SH 書式 .nf .B #include .sp .BI "wchar_t *wcscat(wchar_t *" dest ", const wchar_t *" src ); .fi -.SH ÀâÌÀ +.SH 説明 .BR wcscat () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strcat (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIsrc\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó -(½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤ò´Þ¤à) ¤ò¡¢ -\fIdest\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤ÎºÇ¸å¤Ë¥³¥Ô¡¼¤¹¤ë¡£ +に対応するワイド文字関数である。 +この関数は、\fIsrc\fP が指すワイド文字文字列 +(終端の NULL ワイド文字 (L\(aq\\0\(aq) を含む) を、 +\fIdest\fP が指すワイド文字文字列の最後にコピーする。 .PP -¤³¤Îʸ»úÎó¤Ï½Å¤Ê¤Ã¤Æ¤¤¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +この文字列は重なっていてはならない。 .PP -¥×¥í¥°¥é¥Þ¤Ï¡¢¾¯¤Ê¤¯¤È¤â \fIwcslen(dest)+wcslen(src)+1\fP ʸ»ú¤Î -¥ï¥¤¥Éʸ»ú¤¬Æþ¤ë¤À¤±¤ÎÎΰè¤ò \fIdest\fP ¤ËÂФ·¤Æ³ÎÊݤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +プログラマは、少なくとも \fIwcslen(dest)+wcslen(src)+1\fP 文字の +ワイド文字が入るだけの領域を \fIdest\fP に対して確保しなければならない。 +.SH 返り値 .BR wcscat () -¤Ï \fIdest\fP ¤òÊÖ¤¹¡£ -.SH ½àµò +は \fIdest\fP を返す。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strcat (3), .BR wcpcpy (3), .BR wcscpy (3), diff --git a/release/man3/wcschr.3 b/release/man3/wcschr.3 index 7469fc9b..c030ce6f 100644 --- a/release/man3/wcschr.3 +++ b/release/man3/wcschr.3 @@ -16,28 +16,28 @@ .\" by FUJIWARA Teruyoshi .\" .TH WCSCHR 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wcschr \- ¥ï¥¤¥Éʸ»úʸ»úÎóÃæ¤Î¥ï¥¤¥Éʸ»ú¤ò¸¡º÷¤¹¤ë -.SH ½ñ¼° +.SH 名前 +wcschr \- ワイド文字文字列中のワイド文字を検索する +.SH 書式 .nf .B #include .sp .BI "wchar_t *wcschr(const wchar_t *" wcs ", wchar_t " wc ); .fi -.SH ÀâÌÀ +.SH 説明 .BR wcschr () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strchr (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwcs\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤ÎÃæ¤ÇºÇ½é¤Ë¸½¤ï¤ì¤ë \fIwc\fP ¤ò¸¡º÷¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ +関数に対応するワイド文字関数である。 +この関数は、\fIwcs\fP が指すワイド文字文字列の中で最初に現われる \fIwc\fP を検索する。 +.SH 返り値 .BR wcschr () -´Ø¿ô¤Ï¡¢\fIwcs\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤ÎÃæ¤ÇºÇ½é¤Ë¸½¤ï¤ì¤¿ -\fIwc\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£\fIwc\fP ¤¬Ê¸»úÎóÃæ¤Ë¸½¤ï¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï -NULL ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIwcs\fP が指すワイド文字文字列の中で最初に現われた +\fIwc\fP へのポインタを返す。\fIwc\fP が文字列中に現われなかった場合は +NULL を返す。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strchr (3), .BR wcspbrk (3), .BR wcsrchr (3), diff --git a/release/man3/wcscmp.3 b/release/man3/wcscmp.3 index 39bc622f..c78c544c 100644 --- a/release/man3/wcscmp.3 +++ b/release/man3/wcscmp.3 @@ -16,31 +16,31 @@ .\" by FUJIWARA Teruyoshi .\" .TH WCSCMP 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wcscmp \- 2 ¤Ä¤Î¥ï¥¤¥Éʸ»úʸ»úÎó¤òÈæ³Ó¤¹¤ë -.SH ½ñ¼° +.SH 名前 +wcscmp \- 2 つのワイド文字文字列を比較する +.SH 書式 .nf .B #include .sp .BI "int wcscmp(const wchar_t *" s1 ", const wchar_t *" s2 ); .fi -.SH ÀâÌÀ +.SH 説明 .BR wcscmp () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strcmp (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIs1\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤È -\fIs2\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤òÈæ³Ó¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ +関数に対応するワイド文字関数である。 +この関数は、\fIs1\fP が指すワイド文字文字列と +\fIs2\fP が指すワイド文字文字列を比較する。 +.SH 返り値 .BR wcscmp () -´Ø¿ô¤Ï¡¢\fIs1\fP ¤È \fIs2\fP ¤¬¤½¤ì¤¾¤ì»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó -¤¬Æ±¤¸¤Ç¤¢¤ì¤Ð 0 ¤òÊÖ¤¹¡£°Û¤Ê¤ëʸ»ú¤¬ºÇ½é¤Ë¸½¤ï¤ì¤¿°ÌÃ֤ˤª¤¤¤Æ¡¢¤½¤Î°Ì -Ã֤ˤ¢¤ë¥ï¥¤¥Éʸ»ú \fIs1[i]\fP ¤¬ \fIs2[i]\fP ¤è¤êÂ礭¤±¤ì¤ÐÀµ¤ÎÃͤòÊÖ¤¹¡£ -°Û¤Ê¤ëʸ»ú¤¬ºÇ½é¤Ë¸½¤ï¤ì¤¿°ÌÃ֤ˤª¤¤¤Æ¡¢¤½¤Î°ÌÃ֤ˤ¢¤ë¥ï¥¤¥Éʸ»ú \fIs1[i]\fP -¤¬ \fIs2[i]\fP ¤è¤ê¾®¤µ¤±¤ì¤ÐÉé¤ÎÃͤòÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIs1\fP と \fIs2\fP がそれぞれ指すワイド文字文字列 +が同じであれば 0 を返す。異なる文字が最初に現われた位置において、その位 +置にあるワイド文字 \fIs1[i]\fP が \fIs2[i]\fP より大きければ正の値を返す。 +異なる文字が最初に現われた位置において、その位置にあるワイド文字 \fIs1[i]\fP +が \fIs2[i]\fP より小さければ負の値を返す。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strcmp (3), .BR wcscasecmp (3), .BR wmemcmp (3) diff --git a/release/man3/wcscpy.3 b/release/man3/wcscpy.3 index 75713fa5..3d78ffa5 100644 --- a/release/man3/wcscpy.3 +++ b/release/man3/wcscpy.3 @@ -16,32 +16,32 @@ .\" by FUJIWARA Teruyoshi .\" .TH WCSCPY 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wcscpy \- ¥ï¥¤¥Éʸ»úʸ»úÎó¤ò¥³¥Ô¡¼¤¹¤ë -.SH ½ñ¼° +.SH 名前 +wcscpy \- ワイド文字文字列をコピーする +.SH 書式 .nf .B #include .sp .BI "wchar_t *wcscpy(wchar_t *" dest ", const wchar_t *" src ); .fi -.SH ÀâÌÀ +.SH 説明 .BR wcscpy () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strcpy (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIsrc\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»ú (½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú -(L\(aq\\0\(aq) ¤ò´Þ¤à)¤ò \fIdest\fP ¤¬»Ø¤¹ÇÛÎó¤Ë¥³¥Ô¡¼¤¹¤ë¡£ +関数に対応するワイド文字関数である。 +この関数は、\fIsrc\fP が指すワイド文字 (終端の NULL ワイド文字 +(L\(aq\\0\(aq) を含む)を \fIdest\fP が指す配列にコピーする。 .PP -¤³¤ì¤é¤Îʸ»úÎó¤Ï½Å¤Ê¤Ã¤Æ¤¤¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +これらの文字列は重なっていてはならない。 .PP -¥×¥í¥°¥é¥Þ¤Ï¡¢¾¯¤Ê¤¯¤È¤â \fIwcslen(src)+1\fP ʸ»ú¤Î¥ï¥¤¥Éʸ»ú -¤¬Æþ¤ë¤À¤±¤ÎÎΰè¤ò \fIdest\fP ¤ËÂФ·¤Æ³ÎÊݤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +プログラマは、少なくとも \fIwcslen(src)+1\fP 文字のワイド文字 +が入るだけの領域を \fIdest\fP に対して確保しなければならない。 +.SH 返り値 .BR wcscpy () -¤Ï \fIdest\fP ¤òÊÖ¤¹¡£ -.SH ½àµò +は \fIdest\fP を返す。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strcpy (3), .BR wcpcpy (3), .BR wcscat (3), diff --git a/release/man3/wcscspn.3 b/release/man3/wcscspn.3 index d8df0812..6d752f68 100644 --- a/release/man3/wcscspn.3 +++ b/release/man3/wcscspn.3 @@ -16,34 +16,34 @@ .\" by FUJIWARA Teruyoshi .\" .TH WCSCSPN 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wcscspn \- ¥ï¥¤¥Éʸ»úʸ»úÎ󤫤顢Ϳ¤¨¤¿Ê¸»ú½¸¹ç¤Ë´Þ¤Þ¤ì¤ëʸ»ú¤ò¸¡º÷¤¹¤ë -.SH ½ñ¼° +.SH 名前 +wcscspn \- ワイド文字文字列から、与えた文字集合に含まれる文字を検索する +.SH 書式 .nf .B #include .sp .BI "size_t wcscspn(const wchar_t *" wcs ", const wchar_t *" reject ); .fi -.SH ÀâÌÀ +.SH 説明 .BR wcscspn () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strcspn (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwcs\fP ¤ÎÀèƬÉôʬ¤òÄ´¤Ù¡¢\fIreject\fP ¤ËÎóµó¤µ¤ì¤Æ¤¤¤Ê¤¤ -¥ï¥¤¥Éʸ»ú¤À¤±¤Ë¤è¤Ã¤Æ¹½À®¤µ¤ì¤ëÉôʬ¤òºÇ¤âŤ¯¼è¤Ã¤¿¾ì¹ç¤ÎŤµ¤òµá¤á¤ë¡£ -¸À¤¤´¹¤¨¤ë¤È¡¢¤³¤Î´Ø¿ô¤Ï¥ï¥¤¥Éʸ»úʸ»úÎó \fIwcs\fP ¤ÎÃæ¤Ë¡¢¥ï¥¤¥Éʸ»úÎó -\fIreject\fP ¤Ë´Þ¤Þ¤ì¤ë¤¤¤º¤ì¤«¤Îʸ»ú¤¬¸½¤ï¤ì¤ëºÇ½é¤Î°ÌÃÖ¤òõ¤¹¡£ -.SH ÊÖ¤êÃÍ +関数に対応するワイド文字関数である。 +この関数は、\fIwcs\fP の先頭部分を調べ、\fIreject\fP に列挙されていない +ワイド文字だけによって構成される部分を最も長く取った場合の長さを求める。 +言い換えると、この関数はワイド文字文字列 \fIwcs\fP の中に、ワイド文字列 +\fIreject\fP に含まれるいずれかの文字が現われる最初の位置を探す。 +.SH 返り値 .BR wcscspn () -´Ø¿ô¤Ï¡¢\fIwcs\fP ¤ÎÀèƬÉôʬ¤òÄ´¤Ù¡¢\fIreject\fP ¤ËÎóµó -¤µ¤ì¤Æ¤¤¤Ê¤¤¥ï¥¤¥Éʸ»ú¤À¤±¤Ë¤è¤Ã¤Æ¹½À®¤µ¤ì¤ëÉôʬ¤òºÇ¤âŤ¯¼è¤Ã¤¿¾ì¹ç¤Î -Ťµ¤òÊÖ¤¹¡£ -¸À¤¤´¹¤¨¤ë¤È¡¢¤³¤Î´Ø¿ô¤Ï¥ï¥¤¥Éʸ»úʸ»úÎó \fIwcs\fP ¤ÎÃæ¤Ë¡¢¥ï¥¤¥Éʸ»úÎó -\fIreject\fP ¤Ë´Þ¤Þ¤ì¤ë¤¤¤º¤ì¤«¤Îʸ»ú¤¬¸½¤ï¤ì¤ëºÇ½é¤Î°ÌÃÖ¤òÊÖ¤¹¡£ -²¿¤â¸½¤ï¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï \fIwcslen(wcs)\fP ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIwcs\fP の先頭部分を調べ、\fIreject\fP に列挙 +されていないワイド文字だけによって構成される部分を最も長く取った場合の +長さを返す。 +言い換えると、この関数はワイド文字文字列 \fIwcs\fP の中に、ワイド文字列 +\fIreject\fP に含まれるいずれかの文字が現われる最初の位置を返す。 +何も現われなかった場合には \fIwcslen(wcs)\fP を返す。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strcspn (3), .BR wcspbrk (3), .BR wcsspn (3) diff --git a/release/man3/wcsdup.3 b/release/man3/wcsdup.3 index f2c263a6..2c0208ef 100644 --- a/release/man3/wcsdup.3 +++ b/release/man3/wcsdup.3 @@ -17,9 +17,9 @@ .\" by Yuichi SATO .\" .TH WCSDUP 3 2010-09-15 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wcsdup \- ¥ï¥¤¥Éʸ»úʸ»úÎó¤òÊ£À½¤¹¤ë -.SH ½ñ¼° +.SH 名前 +wcsdup \- ワイド文字文字列を複製する +.SH 書式 .nf .B #include .sp @@ -27,9 +27,9 @@ wcsdup \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR wcsdup (): @@ -37,41 +37,41 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR wcsdup () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strdup (3) -´Ø¿ô¤Î¥ï¥¤¥Éʸ»úÈǤǤ¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¥Ý¥¤¥ó¥¿ \fIs\fP ¤¬»Ø¤·¼¨¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤ÎÊ£À½¤ò -¿·¤·¤¤Îΰè¤Ë³ä¤êÅö¤Æ¤ÆÊÖ¤¹¡£ +関数のワイド文字版である。 +この関数はポインタ \fIs\fP が指し示すワイド文字文字列の複製を +新しい領域に割り当てて返す。 .PP -¿·¤·¤¤¥ï¥¤¥Éʸ»úʸ»úÎó¤Î¤¿¤á¤Î¥á¥â¥ê¤Ï +新しいワイド文字文字列のためのメモリは .BR malloc (3) -¤ò»È¤Ã¤Æ³ä¤êÅö¤Æ¤é¤ì¤ë¡£ -¤³¤ÎÎΰè¤Ï +を使って割り当てられる。 +この領域は .BR free (3) -¤ò»È¤Ã¤Æ²òÊü¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ÊÖ¤êÃÍ +を使って解放すべきである。 +.SH 返り値 .BR wcsdup () -´Ø¿ô¤Ï¡¢¿·¤·¤¤¥ï¥¤¥Éʸ»úʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤±¤ì¤Ð NULL ¤òÊÖ¤¹¡£ -.SH ¥¨¥é¡¼ +関数は、新しいワイド文字文字列へのポインタを返す。 +十分なメモリがなければ NULL を返す。 +.SH エラー .TP .B ENOMEM -Ê£À½Ê¸»úÎó¤ò³ä¤êÅö¤Æ¤ë¤Î¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ -.SH ½àµò +複製文字列を割り当てるのに十分なメモリがない。 +.SH 準拠 POSIX.1-2008. -¤³¤Î´Ø¿ô¤Ï POSIX.1-2001 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -Linux °Ê³°¤Î¾¤Î¥·¥¹¥Æ¥à¤Ç¹­¤¯ÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.\" libc5 ¤È glibc 2.0 ¤È¤½¤ì°Ê¹ß¤Ë¸ºß¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +この関数は POSIX.1-2001 では規定されていないが、 +Linux 以外の他のシステムで広く利用可能である。 +.\" libc5 と glibc 2.0 とそれ以降に存在する。 +.SH 関連項目 .BR strdup (3), .BR wcscpy (3) diff --git a/release/man3/wcslen.3 b/release/man3/wcslen.3 index 6ffc8143..67d807d9 100644 --- a/release/man3/wcslen.3 +++ b/release/man3/wcslen.3 @@ -16,25 +16,25 @@ .\" by FUJIWARA Teruyoshi .\" .TH WCSLEN 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wcslen \- ¥ï¥¤¥Éʸ»úʸ»úÎó¤ÎŤµ¤òµá¤á¤ë -.SH ½ñ¼° +.SH 名前 +wcslen \- ワイド文字文字列の長さを求める +.SH 書式 .nf .B #include .sp .BI "size_t wcslen(const wchar_t *" s ); .fi -.SH ÀâÌÀ +.SH 説明 .BR wcslen () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strlen (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIs\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤ÎŤµ¤òµá¤á¤ë¡£ -½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤Ï¤³¤ÎŤµ¤Ë¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +関数に対応するワイド文字関数である。 +この関数は、\fIs\fP が指すワイド文字文字列の長さを求める。 +終端の NULL ワイド文字 (L\(aq\\0\(aq) はこの長さには含まれない。 +.SH 返り値 .BR wcslen () -´Ø¿ô¤Ï¡¢\fIs\fP ¤Ë´Þ¤Þ¤ì¤ë¥ï¥¤¥Éʸ»ú¤Î¿ô¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIs\fP に含まれるワイド文字の数を返す。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strlen (3) diff --git a/release/man3/wcsncasecmp.3 b/release/man3/wcsncasecmp.3 index 31d3e66f..33a60411 100644 --- a/release/man3/wcsncasecmp.3 +++ b/release/man3/wcsncasecmp.3 @@ -15,9 +15,9 @@ .\" by FUJIWARA Teruyoshi .\" .TH WCSNCASECMP 3 2010-09-15 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wcsncasecmp \- Âçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤»¤º¡¢2 ¤Ä¤Î¸ÇÄêĹ¤Î¥ï¥¤¥Éʸ»úʸ»úÎó¤òÈæ³Ó¤¹¤ë -.SH ½ñ¼° +.SH 名前 +wcsncasecmp \- 大文字と小文字を区別せず、2 つの固定長のワイド文字文字列を比較する +.SH 書式 .nf .B #include .sp @@ -25,9 +25,9 @@ wcsncasecmp \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR wcsncasecmp (): @@ -35,46 +35,46 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR wcsncasecmp () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strncasecmp (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø -¿ô¤Ç¤¢¤ë¡£¤³¤Î´Ø¿ô¤Ï¡¢\fIs1\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤È \fIs2\fP ¤¬»Ø -¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤òÈæ³Ó¤¹¤ë¤¬¡¢ºÇÂç¤Ç¤âÀèƬ¤Î¥ï¥¤¥Éʸ»ú \fIn\fP ¸Ä -¤·¤«Èæ³Ó¤·¤Ê¤¤¡£¤Þ¤¿¡¢Âçʸ»ú¤È¾®Ê¸»ú +関数に対応するワイド文字関 +数である。この関数は、\fIs1\fP が指すワイド文字文字列と \fIs2\fP が指 +すワイド文字文字列を比較するが、最大でも先頭のワイド文字 \fIn\fP 個 +しか比較しない。また、大文字と小文字 .RB ( towupper (3), .BR towlower (3)) -¤Ï¶èÊ̤·¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +は区別しない。 +.SH 返り値 .BR wcsncasecmp () -´Ø¿ô¤Ï¡¢\fIs1\fP ¤È \fIs2\fP ¤¬¤½¤ì¤¾¤ì»Ø¤¹Ê¸»úÎó¤ò -\fIn\fP ʸ»ú¤Ë¼ý¤Þ¤ë¤è¤¦¤ËÀÚ¤êµÍ¤á¤¿¤â¤Î¤ò¡¢Âçʸ»ú¤È¾®Ê¸»ú¤Î°ã¤¤¤ò̵»ë -¤·¤ÆÈæ³Ó¤·¤¿¤È¤­¤ËÅù¤·¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£¤³¤Î´Ø¿ô¤Ï¡¢Âçʸ»ú¤È¾®Ê¸»ú¤ò¶è -Ê̤·¤Ê¤¤¾ì¹ç¤Ë¡¢\fIs1\fP ¤òÀÚ¤êµÍ¤á¤¿¤â¤Î¤¬ \fIs2\fP ¤òÀÚ¤êµÍ¤á¤¿¤â¤Î -¤è¤êÂ礭¤±¤ì¤ÐÀµ¤ÎÃͤòÊÖ¤¹¡£¤³¤Î´Ø¿ô¤Ï¡¢Âçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤¾ì¹ç -¤Ë¡¢\fIs1\fP ¤òÀÚ¤êµÍ¤á¤¿¤â¤Î¤¬ \fIs2\fP ¤òÀÚ¤êµÍ¤á¤¿¤â¤Î¤è¤ê¾®¤µ¤±¤ì -¤ÐÉé¤ÎÃͤòÊÖ¤¹¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +関数は、\fIs1\fP と \fIs2\fP がそれぞれ指す文字列を +\fIn\fP 文字に収まるように切り詰めたものを、大文字と小文字の違いを無視 +して比較したときに等しければ 0 を返す。この関数は、大文字と小文字を区 +別しない場合に、\fIs1\fP を切り詰めたものが \fIs2\fP を切り詰めたもの +より大きければ正の値を返す。この関数は、大文字と小文字を区別しない場合 +に、\fIs1\fP を切り詰めたものが \fIs2\fP を切り詰めたものより小さけれ +ば負の値を返す。 +.SH バージョン .BR wcsncasecmp () -´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò +関数は glibc バージョン 2.1 以降で提供されている。 +.SH 準拠 POSIX.1-2008. -¤³¤Î´Ø¿ô¤Ï POSIX.1-2001 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -Linux °Ê³°¤Î¾¤Î¥·¥¹¥Æ¥à¤Ç¹­¤¯ÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH Ãí°Õ +この関数は POSIX.1-2001 では規定されていないが、 +Linux 以外の他のシステムで広く利用可能である。 +.SH 注意 .BR wcsncasecmp () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +カテゴリに依存する。 +.SH 関連項目 .BR strncasecmp (3), .BR wcsncmp (3) diff --git a/release/man3/wcsncat.3 b/release/man3/wcsncat.3 index f58cca93..1e99472b 100644 --- a/release/man3/wcsncat.3 +++ b/release/man3/wcsncat.3 @@ -16,32 +16,32 @@ .\" by FUJIWARA Teruyoshi .\" .TH WCSNCAT 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wcsncat \- 2 ¤Ä¤Î¥ï¥¤¥Éʸ»úʸ»úÎó¤ò·ë¹ç¤¹¤ë -.SH ½ñ¼° +.SH 名前 +wcsncat \- 2 つのワイド文字文字列を結合する +.SH 書式 .nf .B #include .sp .BI "wchar_t *wcsncat(wchar_t *" dest ", const wchar_t *" src ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .BR wcsncat () -´Ø¿ô¤Ï +関数は .BR strncat (3) -¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIsrc\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎ󤫤éºÇÂç \fIn\fP ¸Äʬ¤Î¥ï -¥¤¥Éʸ»ú¤ò¥³¥Ô¡¼¤·¤Æ¡¢\fIdest\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤ÎËöÈø¤ËŽ¤êÉÕ -¤±¤ë¡£\fIdest\fP ¤Î½ªÃ¼¤Ë¤Ï NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤òÄɲ乤롣 +に対応するワイド文字関数である。 +この関数は、\fIsrc\fP が指すワイド文字文字列から最大 \fIn\fP 個分のワ +イド文字をコピーして、\fIdest\fP が指すワイド文字文字列の末尾に貼り付 +ける。\fIdest\fP の終端には NULL ワイド文字 (L\(aq\\0\(aq) を追加する。 .PP -¤³¤ì¤é¤Îʸ»úÎó¤Ï½Å¤Ê¤Ã¤Æ¤¤¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +これらの文字列は重なっていてはならない。 .PP -¥×¥í¥°¥é¥Þ¤Ï¡¢\fIdest\fP ¤Ë¾¯¤Ê¤¯¤È¤â \fIwcslen(dest) + n + 1\fP -¸Ä¤Î¥ï¥¤¥Éʸ»ú¤¬Æþ¤ëÎΰè¤ò³ÎÊݤ·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +プログラマは、\fIdest\fP に少なくとも \fIwcslen(dest) + n + 1\fP +個のワイド文字が入る領域を確保しておかなければならない。 +.SH 返り値 .BR wcsncat () -¤Ï \fIdest\fP ¤òÊÖ¤¹¡£ -.SH ½àµò +は \fIdest\fP を返す。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strncat (3), .BR wcscat (3) diff --git a/release/man3/wcsncmp.3 b/release/man3/wcsncmp.3 index 5a51f46f..580cb491 100644 --- a/release/man3/wcsncmp.3 +++ b/release/man3/wcsncmp.3 @@ -16,34 +16,34 @@ .\" by FUJIWARA Teruyoshi .\" .TH WCSNCMP 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wcsncmp \- 2 ¤Ä¤Î¸ÇÄêĹ¥ï¥¤¥Éʸ»úʸ»úÎó¤òÈæ³Ó¤¹¤ë -.SH ½ñ¼° +.SH 名前 +wcsncmp \- 2 つの固定長ワイド文字文字列を比較する +.SH 書式 .nf .B #include .sp .BI "int wcsncmp(const wchar_t *" s1 ", const wchar_t *" s2 ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .BR wcsncmp () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strncmp (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIs1\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤È \fIs2\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ -»úʸ»úÎó¤òÈæ³Ó¤¹¤ë¤¬¡¢ºÇÂç¤Ç¤âÀèƬ¤Î¥ï¥¤¥Éʸ»ú \fIn\fP ¸Ä¤Þ¤Ç¤·¤«Èæ³Ó -¤·¤Ê¤¤¡£¤Þ¤¿¤¤¤º¤ì¤«¤Îʸ»úÎó¤Ë NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤¬¸½¤ì¤¿¤é¡¢ -Èæ³Ó¤Ï¤½¤Î°ÌÃ֤ǽªÎ»¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ +関数に対応するワイド文字関数である。 +この関数は、\fIs1\fP が指すワイド文字文字列と \fIs2\fP が指すワイド文 +字文字列を比較するが、最大でも先頭のワイド文字 \fIn\fP 個までしか比較 +しない。またいずれかの文字列に NULL ワイド文字 (L\(aq\\0\(aq) が現れたら、 +比較はその位置で終了する。 +.SH 返り値 .BR wcsncmp () -´Ø¿ô¤Ï¡¢\fIs1\fP ¤È \fIs2\fP ¤¬¤½¤ì¤¾¤ì»Ø¤¹Ê¸»úÎó¤ò -\fIn\fP ʸ»ú¤Ë¼ý¤Þ¤ë¤è¤¦¤ËÀÚ¤êµÍ¤á¤¿¤â¤Î¤¬Åù¤·¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ -¤³¤Î´Ø¿ô¤Ï¡¢°Û¤Ê¤ëʸ»ú¤¬ºÇ½é¤Ë¸½¤ï¤ì¤¿°ÌÃÖ \fIi\fP (\fIi\fP < \fIn\fP) -¤Ë¤ª¤¤¤Æ¡¢¤½¤Î°ÌÃ֤ˤ¢¤ëʸ»ú \fIs1[i]\fP ¤¬ \fIs2[i]\fP ¤è¤êÂ礭¤±¤ì¤Ð -Àµ¤ÎÃͤòÊÖ¤¹¡£°Û¤Ê¤ëʸ»ú¤¬ºÇ½é¤Ë¸½¤ï¤ì¤¿°ÌÃÖ \fIi\fP (\fIi\fP < \fIn\fP) -¤Ë¤ª¤¤¤Æ¡¢¤½¤Î°ÌÃ֤ˤ¢¤ëʸ»ú \fIs1[i]\fP ¤¬ \fIs2[i]\fP ¤è¤ê¾®¤µ¤±¤ì¤Ð -Éé¤ÎÃͤòÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIs1\fP と \fIs2\fP がそれぞれ指す文字列を +\fIn\fP 文字に収まるように切り詰めたものが等しければ 0 を返す。 +この関数は、異なる文字が最初に現われた位置 \fIi\fP (\fIi\fP < \fIn\fP) +において、その位置にある文字 \fIs1[i]\fP が \fIs2[i]\fP より大きければ +正の値を返す。異なる文字が最初に現われた位置 \fIi\fP (\fIi\fP < \fIn\fP) +において、その位置にある文字 \fIs1[i]\fP が \fIs2[i]\fP より小さければ +負の値を返す。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strncmp (3), .BR wcsncasecmp (3) diff --git a/release/man3/wcsncpy.3 b/release/man3/wcsncpy.3 index 6a2eaa15..951f36c1 100644 --- a/release/man3/wcsncpy.3 +++ b/release/man3/wcsncpy.3 @@ -16,36 +16,36 @@ .\" by FUJIWARA Teruyoshi .\" .TH WCSNCPY 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wcsncpy \- ¸ÇÄêĹ¤Î¥ï¥¤¥Éʸ»úʸ»úÎó¤ò¥³¥Ô¡¼¤¹¤ë -.SH ½ñ¼° +.SH 名前 +wcsncpy \- 固定長のワイド文字文字列をコピーする +.SH 書式 .nf .B #include .sp .BI "wchar_t *wcsncpy(wchar_t *" dest ", const wchar_t *" src ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .BR wcsncpy () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strncpy (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï \fIsrc\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎ󤫤顢 -½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤ò -´Þ¤á¤ÆºÇÂç \fIn\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤ò¡¢\fIdest\fP ¤¬»Ø¤¹ÇÛÎó¤Ë¥³¥Ô¡¼¤¹¤ë¡£ -¤Á¤ç¤¦¤É \fIn\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤¬ \fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£ -\fIwcslen(src)\fP ¤ÎŤµ¤¬ \fIn\fP ¤è¤ê¾®¤µ¤±¤ì¤Ð¡¢\fIdest\fP ¤¬»Ø¤¹ -ÇÛÎó¤Î»Ä¤ê¤Î¥ï¥¤¥Éʸ»ú¤ÎÉôʬ¤Ï NULL ¥ï¥¤¥Éʸ»ú¤ÇËä¤á¤é¤ì¤ë¡£ -\fIwcslen(src)\fP ¤ÎŤµ¤¬ \fIn\fP °Ê¾å¤Ê¤é¤Ð¡¢\fIdest\fP ¤¬»Ø¤¹Ê¸»úÎó -¤¬ NULL ¥ï¥¤¥Éʸ»ú¤Ç½ªÃ¼¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ +関数に対応するワイド文字関数である。 +この関数は \fIsrc\fP が指すワイド文字文字列から、 +終端の NULL ワイド文字 (L\(aq\\0\(aq) を +含めて最大 \fIn\fP 個のワイド文字を、\fIdest\fP が指す配列にコピーする。 +ちょうど \fIn\fP 個のワイド文字が \fIdest\fP に書き込まれる。 +\fIwcslen(src)\fP の長さが \fIn\fP より小さければ、\fIdest\fP が指す +配列の残りのワイド文字の部分は NULL ワイド文字で埋められる。 +\fIwcslen(src)\fP の長さが \fIn\fP 以上ならば、\fIdest\fP が指す文字列 +が NULL ワイド文字で終端されることはない。 .PP -¤³¤ì¤é¤ÎÇÛÎó¤Ï½Å¤Ê¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +これらの配列は重なってはならない。 .PP -¥×¥í¥°¥é¥Þ¤Ï¡¢¾¯¤Ê¤¯¤È¤â \fIn\fP ʸ»ú¤Î¥ï¥¤¥Éʸ»ú¤¬Æþ¤ë¤À¤±¤ÎÎΰè¤ò -\fIdest\fP ¤ËÂФ·¤Æ³ÎÊݤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +プログラマは、少なくとも \fIn\fP 文字のワイド文字が入るだけの領域を +\fIdest\fP に対して確保しなければならない。 +.SH 返り値 .BR wcsncpy () -¤Ï \fIdest\fP ¤òÊÖ¤¹¡£ -.SH ½àµò +は \fIdest\fP を返す。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strncpy (3) diff --git a/release/man3/wcsnlen.3 b/release/man3/wcsnlen.3 index c366b20b..eb37eab2 100644 --- a/release/man3/wcsnlen.3 +++ b/release/man3/wcsnlen.3 @@ -15,9 +15,9 @@ .\" by FUJIWARA Teruyoshi .\" .TH WCSNLEN 3 2011-10-01 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wcsnlen \- ¸ÇÄêĹ¤Î¥ï¥¤¥Éʸ»úʸ»úÎó¤ÎŤµ¤òµá¤á¤ë -.SH ½ñ¼° +.SH 名前 +wcsnlen \- 固定長のワイド文字文字列の長さを求める +.SH 書式 .nf .B #include .sp @@ -25,9 +25,9 @@ wcsnlen \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR wcsncasecmp (): @@ -35,39 +35,39 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR wcsnlen () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strnlen (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIs\fP ¤¬»Ø¤¹Ê¸»úÎóÃæ¤Î¥ï¥¤¥Éʸ»ú¤Î¿ô¤òÊÖ¤¹¤¬¡¢ -ÊÖ¤µ¤ì¤ë¤Î¤Ï¥ï¥¤¥Éʸ»ú¤ÇºÇÂç \fImaxlen\fP ʸ»ú¤Þ¤Ç¤Ç¤¢¤ë -(¤³¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¥Ð¥¤¥È¿ô¤Ç¤Ï¤Ê¤¤ÅÀ¤ËÃí°Õ)¡£ -¤Þ¤¿¡¢½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤Ï´Þ¤Þ¤Ê¤¤¡£ -¤³¤ì¤ò¹Ô¤¦ºÝ¤Ë¤Ï¡¢ +関数に対応するワイド文字関数である。 +この関数は、\fIs\fP が指す文字列中のワイド文字の数を返すが、 +返されるのはワイド文字で最大 \fImaxlen\fP 文字までである +(このパラメータはバイト数ではない点に注意)。 +また、終端の NULL ワイド文字 (L\(aq\\0\(aq) は含まない。 +これを行う際には、 .BR wcsnlen () -¤Ï \fIs\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úÎó¤ÎºÇ½é¤Î -\fImaxlen\fP ʸ»ú¤·¤«¸«¤º¡¢·è¤·¤Æ \fIs+maxlen\fP ʸ»ú¤òĶ¤¨¤Æʸ»úÎó¤ò -»²¾È¤¹¤ë¤³¤È¤Ï¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +は \fIs\fP が指すワイド文字列の最初の +\fImaxlen\fP 文字しか見ず、決して \fIs+maxlen\fP 文字を超えて文字列を +参照することはない。 +.SH 返り値 .BR wcsnlen () -´Ø¿ô¤Ï¡¢\fIwcslen(s)\fP ¤ÎÃͤ¬ \fImaxlen\fP ¤è¤ê¾®¤µ¤±¤ì -¤Ð \fIwcslen(s)\fP ¤òÊÖ¤¹¡£¤¢¤ë¤¤¤Ï¡¢\fIs\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úÎóÃæ¤Î -ºÇ½é¤Î \fImaxlen\fP ʸ»ú¤Ë NULL ¥ï¥¤¥Éʸ»ú¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð -\fImaxlen\fP ¤òÊÖ¤¹¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +関数は、\fIwcslen(s)\fP の値が \fImaxlen\fP より小さけれ +ば \fIwcslen(s)\fP を返す。あるいは、\fIs\fP が指すワイド文字列中の +最初の \fImaxlen\fP 文字に NULL ワイド文字が含まれていなければ +\fImaxlen\fP を返す。 +.SH バージョン .BR wcsnlen () -´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò +関数は glibc バージョン 2.1 以降で提供されている。 +.SH 準拠 POSIX.1-2008. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strnlen (3), .BR wcslen (3) diff --git a/release/man3/wcsnrtombs.3 b/release/man3/wcsnrtombs.3 index 707b4fef..c093ddf5 100644 --- a/release/man3/wcsnrtombs.3 +++ b/release/man3/wcsnrtombs.3 @@ -15,9 +15,9 @@ .\" by FUJIWARA Teruyoshi .\" .TH WCSNRTOMBS 3 2011-10-01 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wcsnrtombs \- ¥ï¥¤¥Éʸ»úʸ»úÎó¤ò¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +wcsnrtombs \- ワイド文字文字列をマルチバイト文字列に変換する +.SH 書式 .nf .B #include .sp @@ -26,9 +26,9 @@ wcsnrtombs \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR wcsnrtombs (): @@ -36,75 +36,75 @@ glibc .ad l .RS 4 .TP 4 -glibc 2.10 °Ê¹ß: +glibc 2.10 以降: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP -glibc 2.10 ¤è¤êÁ°: +glibc 2.10 より前: _GNU_SOURCE .RE .ad .PD -.SH ÀâÌÀ +.SH 説明 .BR wcsnrtombs () -´Ø¿ô¤Ï¡¢ +関数は、 .BR wcsrtombs () -´Ø¿ô¤Ë»÷¤Æ¤¤¤ë¡£¤¿¤À¤·¡¢ -ÊÑ´¹¤µ¤ì¤ë¥ï¥¤¥Éʸ»ú¤Î¿ô¤¬(\fI*src\fP ¤«¤é¿ô¤¨¤Æ) \fInwc\fP ʸ»ú¤ËÀ©¸Â -¤µ¤ì¤Æ¤¤¤ëÅÀ¤¬°Û¤Ê¤ë¡£ +関数に似ている。ただし、 +変換されるワイド文字の数が(\fI*src\fP から数えて) \fInwc\fP 文字に制限 +されている点が異なる。 .PP -\fIdest\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¡¢ +\fIdest\fP が NULL ポインタでなければ、 .BR wcsnrtombs () -´Ø¿ô¤Ï -¥ï¥¤¥Éʸ»úʸ»úÎó¤ÎºÇÂç \fInwc\fP ¸Ä¤Þ¤Ç¤Î¥ï¥¤¥Éʸ»ú¤ò \fIdest\fP ¤«¤é -»Ï¤Þ¤ë¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ËÊÑ´¹¤¹¤ë¡£\fIdest\fP ¤Ë¤ÏºÇÂç \fIlen\fP ¥Ð¥¤ -¥È¤Þ¤Ç½ñ¤­¹þ¤Þ¤ì¤ë¡£¥·¥Õ¥È¾õÂÖ \fI*ps\fP ¤Ï¹¹¿·¤µ¤ì¤ë¡£¼ÂºÝ¤Î¸ú²Ì¤È¤· -¤Æ¤Ï¡¢¤³¤ÎÊÑ´¹¤Ï°Ê²¼¤ÎÆ°ºî¤ÈƱ¤¸¤Ë¤Ê¤ë: +関数は +ワイド文字文字列の最大 \fInwc\fP 個までのワイド文字を \fIdest\fP から +始まるマルチバイト文字列に変換する。\fIdest\fP には最大 \fIlen\fP バイ +トまで書き込まれる。シフト状態 \fI*ps\fP は更新される。実際の効果とし +ては、この変換は以下の動作と同じになる: .IR "wcrtomb(dest, *src, ps)" -¤ò¸Æ¤Ó¡¢À®¸ù¤¬Ê֤俤é -\fIdest\fP ¤ò½ñ¤­¹þ¤ó¤À¥Ð¥¤¥È¿ô¤À¤±Áý¤ä¤·¡¢\fI*src\fP ¤ò 1 Áý¤ä¤¹¡£ -¤½¤·¤Æ¡¢wcrtomb ¤¬À®¸ù¤òÊÖ¤¹¸Â¤ê¤³¤ì¤ò·«¤êÊÖ¤¹¡£ -ÊÑ´¹¤¬»ß¤Þ¤ëÍýͳ¤Ï 3 ¤Ä¹Í¤¨¤é¤ì¤ë: +を呼び、成功が返ったら +\fIdest\fP を書き込んだバイト数だけ増やし、\fI*src\fP を 1 増やす。 +そして、wcrtomb が成功を返す限りこれを繰り返す。 +変換が止まる理由は 3 つ考えられる: .PP -1. (¸½ºß¤Î¥í¥±¡¼¥ë¤Ë´ð¤Å¤¤¤Æ)¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤Çɽ¸½¤Ç¤­¤Ê¤¤¥ï¥¤¥Éʸ»ú¤Ë -½Ð²ñ¤Ã¤¿¾ì¹ç¡£¤³¤Î¾ì¹ç¤Ï¡¢\fI*src\fP ¤ÏÉÔÀµ¤Ê¥ï¥¤¥Éʸ»ú¤ò»Ø¤·¤¿¾õÂ֤ˤʤꡢ +1. (現在のロケールに基づいて)マルチバイト列で表現できないワイド文字に +出会った場合。この場合は、\fI*src\fP は不正なワイド文字を指した状態になり、 .I (size_t)\ \-1 -¤¬ÊÖ¤µ¤ì¡¢\fIerrno\fP ¤Ë \fBEILSEQ\fP ¤¬ÀßÄꤵ¤ì¤ë¡£ +が返され、\fIerrno\fP に \fBEILSEQ\fP が設定される。 .PP -2. NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤Ë½Ð²ñ¤ï¤Ê¤¤¤Ç \fInwc\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤ò -ÊÑ´¹¤·¤¿¾ì¹ç¤«¡¢Ä¹¤µ¤ÎÀ©¸Â¤Ë¤è¤Ã¤ÆÊÑ´¹¤¬»ß¤á¤é¤ì¤¿¾ì¹ç¡£ -¤³¤Î¾ì¹ç¤Ë¤Ï¡¢\fI*src\fP ¤Ï¼¡¤ËÊÑ´¹¤µ¤ì¤ë¤Ù¤­¥ï¥¤¥Éʸ»ú¤ò»Ø¤·¤¿¾õÂ֤ˤʤꡢ -\fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¿ô¤¬ÊÖ¤µ¤ì¤ë¡£ +2. NULL ワイド文字 (L\(aq\\0\(aq) に出会わないで \fInwc\fP 個のワイド文字を +変換した場合か、長さの制限によって変換が止められた場合。 +この場合には、\fI*src\fP は次に変換されるべきワイド文字を指した状態になり、 +\fIdest\fP に書き込まれたバイト数が返される。 .PP -3. ¥ï¥¤¥Éʸ»úÎ󤬽ªÃ¼¤Î L\(aq\\0\(aq (¤³¤ì¤Ë¤Ï \fI*ps\fP ¤ò½é´ü¾õÂÖ¤ËÌ᤹¤È -¤¤¤¦ÉûºîÍѤ¬¤¢¤ë)¤â´Þ¤á¤ÆÁ´¤ÆÊÑ´¹¤µ¤ì¤¿¾ì¹ç¡£¤³¤Î¾ì¹ç¤Ë¤Ï \fI*src\fP -¤Ë NULL ¤¬ÀßÄꤵ¤ì¡¢\fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¿ô¤¬ÊÖ¤µ¤ì¤ë -(½ªÃ¼¤Î \(aq\\0\(aq ¤Ï¿ô¤¨¤Ê¤¤)¡£ +3. ワイド文字列が終端の L\(aq\\0\(aq (これには \fI*ps\fP を初期状態に戻すと +いう副作用がある)も含めて全て変換された場合。この場合には \fI*src\fP +に NULL が設定され、\fIdest\fP に書き込まれたバイト数が返される +(終端の \(aq\\0\(aq は数えない)。 .PP -\fIdest\fP ¤¬ NULL ¤Ê¤é¤Ð \fIlen\fP ¤Ï̵»ë¤µ¤ì¤ÆÁ°½Ò¤Î¤è¤¦¤ËÊÑ´¹¤¬¹Ô¤ï -¤ì¤ë¤¬¡¢ÊÑ´¹¤µ¤ì¤¿¥Ð¥¤¥È¥Ç¡¼¥¿¤Ï¥á¥â¥ê¤Ë½ñ¤­½Ð¤µ¤ì¤Ê¤¤ÅÀ¤È¡¢½ÐÎÏÀè¤ÎĹ -¤µ¤ÎÀ©¸Â¤¬¤Ê¤¤ÅÀ¤¬°Û¤Ê¤ë¡£ +\fIdest\fP が NULL ならば \fIlen\fP は無視されて前述のように変換が行わ +れるが、変換されたバイトデータはメモリに書き出されない点と、出力先の長 +さの制限がない点が異なる。 .PP -¾åµ­¤Î¤¤¤º¤ì¤Î¾ì¹ç¤â¡¢\fIps\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¤Ê¤é¤Ð¡¢wcsnrtombs ´Ø¿ô -¤À¤±¤¬ÃΤäƤ¤¤ëÀÅŪ¤Êƿ̾¤Î¾õÂÖ¤¬¥·¥Õ¥È¾õÂÖ¤ÎÂå¤ï¤ê¤ËÍѤ¤¤é¤ì¤ë¡£ +上記のいずれの場合も、\fIps\fP が NULL ポインタならば、wcsnrtombs 関数 +だけが知っている静的な匿名の状態がシフト状態の代わりに用いられる。 .PP -¥×¥í¥°¥é¥Þ¤Ï¾¯¤Ê¤¯¤È¤â \fIlen\fP ¥Ð¥¤¥È¤ÎÎΰè¤ò \fIdest\fP ¤Ë³ÎÊݤ·¤Ê -¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +プログラマは少なくとも \fIlen\fP バイトの領域を \fIdest\fP に確保しな +ければならない。 +.SH 返り値 .BR wcsnrtombs () -´Ø¿ô¤Ï¡¢ÊÑ´¹¤·¤ÆÆÀ¤é¤ì¤¿¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤Î¥Ð¥¤¥È¿ô¤òÊÖ -¤¹¡£¤³¤ì¤Ë¤Ï½ªÃ¼¤Î NULL ¤Ï´Þ¤Þ¤Ê¤¤¡£ -ÊÑ´¹¤Ç¤­¤Ê¤¤¥ï¥¤¥Éʸ»ú¤Ë½Ð²ñ¤Ã¤¿¾ì¹ç¤Ë¤Ï +関数は、変換して得られたマルチバイト列のバイト数を返 +す。これには終端の NULL は含まない。 +変換できないワイド文字に出会った場合には .I (size_t)\ \-1 -¤¬ÊÖ¤µ¤ì¡¢ \fIerrno\fP ¤Ë \fBEILSEQ\fP ¤¬ÀßÄꤵ¤ì¤ë¡£ -.SH ½àµò +が返され、 \fIerrno\fP に \fBEILSEQ\fP が設定される。 +.SH 準拠 POSIX.1-2008. -.SH Ãí°Õ +.SH 注意 .BR wcsnrtombs () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .PP -\fIps\fP ¤Ë NULL ¤òÅϤ·¤¿ºÝ¤ÎÆ°ºî¤Ï¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +\fIps\fP に NULL を渡した際の動作はマルチスレッドセーフでない。 +.SH 関連項目 .BR iconv (3), .BR wcsrtombs (3) diff --git a/release/man3/wcspbrk.3 b/release/man3/wcspbrk.3 index 60ac9a70..f5e8cd39 100644 --- a/release/man3/wcspbrk.3 +++ b/release/man3/wcspbrk.3 @@ -16,29 +16,29 @@ .\" by FUJIWARA Teruyoshi .\" .TH WCSPBRK 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wcspbrk \- ¥ï¥¤¥Éʸ»úÎ󤫤顢Ϳ¤¨¤é¤ì¤¿¥ï¥¤¥Éʸ»ú½¸¹ç¤Ë´Þ¤Þ¤ì¤ëʸ»ú¤ò¸¡º÷¤¹¤ë -.SH ½ñ¼° +.SH 名前 +wcspbrk \- ワイド文字列から、与えられたワイド文字集合に含まれる文字を検索する +.SH 書式 .nf .B #include .sp .BI "wchar_t *wcspbrk(const wchar_t *" wcs ", const wchar_t *" accept ); .fi -.SH ÀâÌÀ +.SH 説明 .BR wcspbrk () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strpbrk (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwcs\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤Ë¤ª¤¤¤Æ¡¢\fIaccept\fP ¤¬ -¼¨¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤Î¤¤¤º¤ì¤«¤Îʸ»ú¤¬ºÇ½é¤Ë¸½¤ï¤ì¤ë°ÌÃÖ¤ò¸¡º÷¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ +関数に対応するワイド文字関数である。 +この関数は、\fIwcs\fP が指すワイド文字文字列において、\fIaccept\fP が +示すワイド文字文字列のいずれかの文字が最初に現われる位置を検索する。 +.SH 返り値 .BR wcspbrk () -´Ø¿ô¤Ï¡¢\fIaccept\fP ¤ËÎóµó¤µ¤ì¤¿Ê¸»ú¤Î¤¤¤º¤ì¤«¤¬ -\fIwcs\fP Ãæ¤ËºÇ½é¤Ë¸½¤ï¤ì¤¿°ÌÃ֤ؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£¤³¤Î¤è¤¦¤Êʸ»ú¤¬ -\fIwcs\fP ¤Ë´Þ¤Þ¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢NULL ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ½àµò +関数は、\fIaccept\fP に列挙された文字のいずれかが +\fIwcs\fP 中に最初に現われた位置へのポインタを返す。このような文字が +\fIwcs\fP に含まれない場合は、NULL が返される。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strpbrk (3), .BR wcschr (3), .BR wcscspn (3) diff --git a/release/man3/wcsrchr.3 b/release/man3/wcsrchr.3 index 446682a1..4a034618 100644 --- a/release/man3/wcsrchr.3 +++ b/release/man3/wcsrchr.3 @@ -16,27 +16,27 @@ .\" by FUJIWARA Teruyoshi .\" .TH WCSRCHR 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wcsrchr \- ¥ï¥¤¥Éʸ»úÎóÃæ¤Î¥ï¥¤¥Éʸ»ú¤òõ¤¹ -.SH ½ñ¼° +.SH 名前 +wcsrchr \- ワイド文字列中のワイド文字を探す +.SH 書式 .nf .B #include .sp .BI "wchar_t *wcsrchr(const wchar_t *" wcs ", wchar_t " wc ); .fi -.SH ÀâÌÀ +.SH 説明 .BR wcsrchr () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strrchr (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwcs\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎóÃæ¤Ë \fIwc\fP ¤¬ºÇ¸å¤Ë¸½¤ï -¤ì¤ë°ÌÃÖ¤ò¸¡º÷¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ -\fBwcsrchr\fP ´Ø¿ô¤Ï¡¢\fIwcs\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎóÃæ¤Ë \fIwc\fP ¤¬ -ºÇ¸å¤Ë¸½¤ï¤ì¤¿°ÌÃÖ¤òÊÖ¤¹¡£¤³¤Îʸ»úÎó¤Ë \fIwc\fP ¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð -NULL ¤òÊÖ¤¹¡£ -.SH ½àµò +関数に対応するワイド文字関数である。 +この関数は、\fIwcs\fP が指すワイド文字文字列中に \fIwc\fP が最後に現わ +れる位置を検索する。 +.SH 返り値 +\fBwcsrchr\fP 関数は、\fIwcs\fP が指すワイド文字文字列中に \fIwc\fP が +最後に現われた位置を返す。この文字列に \fIwc\fP が含まれていなければ +NULL を返す。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strrchr (3), .BR wcschr (3) diff --git a/release/man3/wcsrtombs.3 b/release/man3/wcsrtombs.3 index 1fab3547..729a96b0 100644 --- a/release/man3/wcsrtombs.3 +++ b/release/man3/wcsrtombs.3 @@ -16,72 +16,72 @@ .\" by FUJIWARA Teruyoshi .\" .TH WCSRTOMBS 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wcsrtombs \- ¥ï¥¤¥Éʸ»úʸ»úÎó¤ò¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +wcsrtombs \- ワイド文字文字列をマルチバイト文字列に変換する +.SH 書式 .nf .B #include .sp .BI "size_t wcsrtombs(char *" dest ", const wchar_t **" src , .BI " size_t " len ", mbstate_t *" ps ); .fi -.SH ÀâÌÀ -\fIdest\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¡¢ +.SH 説明 +\fIdest\fP が NULL ポインタでなければ、 .BR wcsrtombs () -´Ø¿ô¤Ï -¥ï¥¤¥Éʸ»úʸ»úÎó \fI*src\fP ¤ò \fIdest\fP ¤¬»Ø¤¹¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó -¤ËÊÑ´¹¤¹¤ë¡£ºÇÂç \fIlen\fP ¥Ð¥¤¥È¤Þ¤Ç¤¬ \fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£ -¥·¥Õ¥È¾õÂÖ \fI*ps\fP ¤Ï¹¹¿·¤µ¤ì¤ë¡£¼ÂºÝ¤Î¸ú²Ì¤È¤·¤Æ¤Ï¡¢¤³¤ÎÊÑ´¹¤Ï°Ê²¼ -¤ÎÆ°ºî¤ÈƱ¤¸¤Ë¤Ê¤ë: +関数は +ワイド文字文字列 \fI*src\fP を \fIdest\fP が指すマルチバイト文字列 +に変換する。最大 \fIlen\fP バイトまでが \fIdest\fP に書き込まれる。 +シフト状態 \fI*ps\fP は更新される。実際の効果としては、この変換は以下 +の動作と同じになる: .IR "wcrtomb(dest, *src, ps)" -¤ò¸Æ¤Ó¡¢À®¸ù¤¬Ê֤俤顢 -\fIdest\fP ¤ò½ñ¤­¹þ¤ó¤À¥Ð¥¤¥È¿ô¤À¤±Áý¤ä¤·¡¢\fI*src\fP ¤ò 1 Áý¤ä¤¹¡£ -¤½¤·¤Æ¡¢wcrtomb ¤¬À®¸ù¤òÊÖ¤¹¸Â¤ê¤³¤ì¤ò·«¤êÊÖ¤¹¡£ -ÊÑ´¹¤¬»ß¤Þ¤ëÍýͳ¤Ï 3 ¤Ä¹Í¤¨¤é¤ì¤ë: +を呼び、成功が返ったら、 +\fIdest\fP を書き込んだバイト数だけ増やし、\fI*src\fP を 1 増やす。 +そして、wcrtomb が成功を返す限りこれを繰り返す。 +変換が止まる理由は 3 つ考えられる: .PP -(¸½ºß¤Î¥í¥±¡¼¥ë¤Ë´ð¤Å¤¤¤Æ)¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤Çɽ¸½¤Ç¤­¤Ê¤¤¥ï¥¤¥Éʸ»ú¤Ë -½Ð²ñ¤Ã¤¿¾ì¹ç¡£¤³¤Î¾ì¹ç¤Ï¡¢\fI*src\fP ¤ÏÉÔÀµ¤Ê¥ï¥¤¥Éʸ»ú¤ò»Ø¤·¤¿¾õÂ֤ˤʤꡢ +(現在のロケールに基づいて)マルチバイト列で表現できないワイド文字に +出会った場合。この場合は、\fI*src\fP は不正なワイド文字を指した状態になり、 .I (size_t)\ \-1 -¤¬ÊÖ¤µ¤ì¡¢ +が返され、 .I errno -¤Ë \fBEILSEQ\fP ¤¬ÀßÄꤵ¤ì¤ë¡£ +に \fBEILSEQ\fP が設定される。 .PP -2. Ťµ¤ÎÀ©¸Â¤Ë¤è¤êÊÑ´¹¤¬»ß¤á¤é¤ì¤¿¾ì¹ç¡£¤³¤Î¾ì¹ç¤Ë¤Ï¡¢\fI*src\fP ¤Ï¼¡¤Ë -ÊÑ´¹¤µ¤ì¤ë¤Ù¤­¥ï¥¤¥Éʸ»úÎó¤ò»Ø¤·¤¿¾õÂ֤ˤʤꡢ\fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì -¤¿¥Ð¥¤¥È¿ô¤¬ÊÖ¤µ¤ì¤ë¡£ +2. 長さの制限により変換が止められた場合。この場合には、\fI*src\fP は次に +変換されるべきワイド文字列を指した状態になり、\fIdest\fP に書き込まれ +たバイト数が返される。 .PP -3. ¥ï¥¤¥Éʸ»úÎ󤬽ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤â´Þ¤á¤ÆÁ´¤Æ -ÊÑ´¹¤µ¤ì¤¿¾ì¹ç¡£¤³¤ÎºÝ¡¢\fI*ps\fP ¤¬½é´ü¾õÂÖ¤ËÌá¤ë¤È¤¤¤¦ÉûºîÍѤ¬¤¢¤ë¡£ -¤³¤Î¾ì¹ç¤Ë¤Ï \fI*src\fP ¤Ë NULL ¤¬ÀßÄꤵ¤ì¡¢\fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤¿ -¥Ð¥¤¥È¿ô¤¬ÊÖ¤µ¤ì¤ë (½ªÃ¼¤Î NULL ¤Ï¿ô¤¨¤Ê¤¤)¡£ +3. ワイド文字列が終端の NULL ワイド文字 (L\(aq\\0\(aq) も含めて全て +変換された場合。この際、\fI*ps\fP が初期状態に戻るという副作用がある。 +この場合には \fI*src\fP に NULL が設定され、\fIdest\fP に書き込まれた +バイト数が返される (終端の NULL は数えない)。 .PP -\fIdest\fP ¤¬ NULL ¤Ê¤é¤Ð \fIlen\fP ¤Ï̵»ë¤µ¤ì¤ÆÁ°½Ò¤Î¤è¤¦¤ËÊÑ´¹¤¬¹Ô¤ï -¤ì¤ë¤¬¡¢ÊÑ´¹¤µ¤ì¤¿¥Ð¥¤¥È¥Ç¡¼¥¿¤Ï¥á¥â¥ê¤Ë½ñ¤­½Ð¤µ¤ì¤Ê¤¤ÅÀ¤È¡¢½ÐÎÏÀè¤ÎĹ -¤µ¤ÎÀ©¸Â¤¬¤Ê¤¤ÅÀ¤¬°Û¤Ê¤ë¡£ +\fIdest\fP が NULL ならば \fIlen\fP は無視されて前述のように変換が行わ +れるが、変換されたバイトデータはメモリに書き出されない点と、出力先の長 +さの制限がない点が異なる。 .PP -¾åµ­¤Î¤¤¤º¤ì¤Î¾ì¹ç¤â¡¢\fIps\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¤Ê¤é¤Ð¡¢wcsnrtombs ´Ø¿ô -¤À¤±¤¬ÃΤäƤ¤¤ëÀÅŪ¤Êƿ̾¤Î¾õÂÖ¤¬¥·¥Õ¥È¾õÂÖ¤ÎÂå¤ï¤ê¤ËÍѤ¤¤é¤ì¤ë¡£ +上記のいずれの場合も、\fIps\fP が NULL ポインタならば、wcsnrtombs 関数 +だけが知っている静的な匿名の状態がシフト状態の代わりに用いられる。 .PP -¥×¥í¥°¥é¥Þ¤Ï¾¯¤Ê¤¯¤È¤â \fIlen\fP ¥Ð¥¤¥È¤ÎÎΰè¤ò \fIdest\fP ¤Ë³ÎÊݤ·¤Ê -¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +プログラマは少なくとも \fIlen\fP バイトの領域を \fIdest\fP に確保しな +ければならない。 +.SH 返り値 .BR wcsrtombs () -¤Ï¡¢ÊÑ´¹¤·¤ÆÆÀ¤é¤ì¤¿¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤Î¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ -¤³¤ì¤Ë¤Ï½ªÃ¼¤Î null ¥Ð¥¤¥È¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ -ÊÑ´¹¤Ç¤­¤Ê¤¤¥ï¥¤¥Éʸ»ú¤Ë½Ð²ñ¤Ã¤¿¾ì¹ç¤Ë¤Ï +は、変換して得られたマルチバイト列のバイト数を返す。 +これには終端の null バイトは含まれない。 +変換できないワイド文字に出会った場合には .I (size_t)\ \-1 -¤¬ÊÖ¤µ¤ì¡¢ +が返され、 .I errno -¤Ë \fBEILSEQ\fP ¤¬ÀßÄꤵ¤ì¤ë¡£ -.SH ½àµò +に \fBEILSEQ\fP が設定される。 +.SH 準拠 C99. .BR wcsrtombs () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .PP -\fIps\fP ¤Ë NULL ¤òÅϤ·¤¿ºÝ¤ÎÆ°ºî¤Ï¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +\fIps\fP に NULL を渡した際の動作はマルチスレッドセーフでない。 +.SH 関連項目 .BR iconv (3), .BR wcsnrtombs (3), .BR wcstombs (3) diff --git a/release/man3/wcsspn.3 b/release/man3/wcsspn.3 index aee2f69c..987239f0 100644 --- a/release/man3/wcsspn.3 +++ b/release/man3/wcsspn.3 @@ -16,33 +16,33 @@ .\" by FUJIWARA Teruyoshi .\" .TH WCSSPN 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wcsspn \- ¥ï¥¤¥Éʸ»úʸ»úÎó¤ò¿Ê¤ß¡¢¥ï¥¤¥Éʸ»ú¤Î½¸¹ç¤Îʸ»ú¤ò¥¹¥­¥Ã¥×¤¹¤ë -.SH ½ñ¼° +.SH 名前 +wcsspn \- ワイド文字文字列を進み、ワイド文字の集合の文字をスキップする +.SH 書式 .nf .B #include .sp .BI "size_t wcsspn(const wchar_t *" wcs ", const wchar_t *" accept ); .fi -.SH ÀâÌÀ +.SH 説明 .BR wcsspn () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strspn (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIwcs\fP ¤ÎÀèƬÉôʬ¤òÄ´¤Ù¡¢\fIaccept\fP ¤ËÎóµó¤µ¤ì¤Æ¤¤¤ë -¥ï¥¤¥Éʸ»ú¤À¤±¤Ë¤è¤Ã¤Æ¹½À®¤µ¤ì¤ëÉôʬ¤òºÇ¤âŤ¯¼è¤Ã¤¿¾ì¹ç¤ÎŤµ¤òµá¤á¤ë¡£ -¸À¤¤´¹¤¨¤ë¤È¡¢¤³¤Î´Ø¿ô¤Ï¥ï¥¤¥Éʸ»úʸ»úÎó \fIwcs\fP ¤ÎÃæ¤Ë¡¢¥ï¥¤¥Éʸ»úÎó -\fIaccept\fP ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤Ê¸»ú¤¬¸½¤ï¤ì¤ëºÇ½é¤Î°ÌÃÖ¤òõ¤¹¡£ -.SH ÊÖ¤êÃÍ +関数に対応するワイド文字関数である。 +この関数は、\fIwcs\fP の先頭部分を調べ、\fIaccept\fP に列挙されている +ワイド文字だけによって構成される部分を最も長く取った場合の長さを求める。 +言い換えると、この関数はワイド文字文字列 \fIwcs\fP の中に、ワイド文字列 +\fIaccept\fP に含まれていない文字が現われる最初の位置を探す。 +.SH 返り値 .BR wcsspn () -´Ø¿ô¤Ï¡¢\fIwcs\fP ¤ÎÀèƬÉôʬ¤òÄ´¤Ù¡¢\fIaccept\fP ¤ËÎóµó¤µ -¤ì¤Æ¤¤¤ë¥ï¥¤¥Éʸ»ú¤À¤±¤Ë¤è¤Ã¤Æ¹½À®¤µ¤ì¤ëÉôʬ¤òºÇ¤âŤ¯¼è¤Ã¤¿¾ì¹ç¤ÎŤµ -¤òÊÖ¤¹¡£ -¸À¤¤´¹¤¨¤ë¤È¡¢¤³¤Î´Ø¿ô¤Ï¥ï¥¤¥Éʸ»úʸ»úÎó \fIwcs\fP ¤ÎÃæ¤Ë¡¢¥ï¥¤¥Éʸ»úÎó -\fIaccept\fP ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤Ê¸»ú¤¬¸½¤ï¤ì¤ëºÇ½é¤Î°ÌÃÖ¤òÊÖ¤¹¡£ -²¿¤â¸½¤ï¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï \fIwcslen(wcs)\fP ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIwcs\fP の先頭部分を調べ、\fIaccept\fP に列挙さ +れているワイド文字だけによって構成される部分を最も長く取った場合の長さ +を返す。 +言い換えると、この関数はワイド文字文字列 \fIwcs\fP の中に、ワイド文字列 +\fIaccept\fP に含まれていない文字が現われる最初の位置を返す。 +何も現われなかった場合には \fIwcslen(wcs)\fP を返す。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strspn (3), .BR wcscspn (3) diff --git a/release/man3/wcsstr.3 b/release/man3/wcsstr.3 index 9c60431b..94f716ab 100644 --- a/release/man3/wcsstr.3 +++ b/release/man3/wcsstr.3 @@ -16,32 +16,32 @@ .\" by FUJIWARA Teruyoshi .\" .TH WCSSTR 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wcsstr \- ¥ï¥¤¥Éʸ»úʸ»úÎóÃæ¤ÎÉôʬʸ»úÎó¤Î°ÌÃÖ¤òÆÃÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +wcsstr \- ワイド文字文字列中の部分文字列の位置を特定する +.SH 書式 .nf .B #include .sp .BI "wchar_t *wcsstr(const wchar_t *" haystack ", const wchar_t *" needle ); .fi -.SH ÀâÌÀ +.SH 説明 .BR wcsstr () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strstr (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»úʸ»úÎó¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¥ï¥¤¥Éʸ»úʸ»úÎó \fIneedle\fP (½ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú -(L\(aq\\0\(aq) ¤Ï´Þ¤Þ¤Ê¤¤) ¤¬¡¢¥ï¥¤¥Éʸ»úʸ»úÎó \fIhaystack\fP ¤ÎÉôʬʸ»úÎó -¤È¤·¤ÆºÇ½é¤Ë¸½¤ï¤ì¤ë°ÌÃÖ¤òõ¤¹¡£ -.SH ÊÖ¤êÃÍ +関数に対応するワイド文字文字列である。 +この関数はワイド文字文字列 \fIneedle\fP (終端の NULL ワイド文字 +(L\(aq\\0\(aq) は含まない) が、ワイド文字文字列 \fIhaystack\fP の部分文字列 +として最初に現われる位置を探す。 +.SH 返り値 .BR wcsstr () -´Ø¿ô¤Ï¡¢\fIhaystack\fP Ãæ¤Ë \fIneedle\fP ¤¬¸½¤ï¤ì¤¿ºÇ½é¤Î -°ÌÃÖ¤òÊÖ¤¹¡£\fIneedle\fP ¤¬ \fIhaystack\fP ¤ÎÉôʬʸ»úÎó¤Ç¤Ê¤±¤ì¤Ð -NULL ¤òÊÖ¤¹¡£ +関数は、\fIhaystack\fP 中に \fIneedle\fP が現われた最初の +位置を返す。\fIneedle\fP が \fIhaystack\fP の部分文字列でなければ +NULL を返す。 .PP -°Ê²¼¤ÎÆüì¤Ê¾ì¹ç¤ËÃí°Õ¤¹¤ë¤³¤È: \fIneedle\fP ¤¬¶õ¤Î¥ï¥¤¥Éʸ»úʸ»úÎó¤Ê -¤é¤Ð¡¢ÊÖ¤êÃͤϾï¤Ë \fIhaystack\fP ¼«¿È¤È¤Ê¤ë¡£ -.SH ½àµò +以下の特殊な場合に注意すること: \fIneedle\fP が空のワイド文字文字列な +らば、返り値は常に \fIhaystack\fP 自身となる。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strstr (3), .BR wcschr (3) diff --git a/release/man3/wcstoimax.3 b/release/man3/wcstoimax.3 index 39c1c36a..a9f4bab6 100644 --- a/release/man3/wcstoimax.3 +++ b/release/man3/wcstoimax.3 @@ -26,9 +26,9 @@ .\" by Yuichi SATO .\" .TH WCSTOIMAX 3 2003-11-01 "" "Linux Programmer's Manual" -.SH ̾Á° -wcstoimax, wcstoumax \- ¥ï¥¤¥Éʸ»úʸ»úÎó¤òÀ°¿ô¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +wcstoimax, wcstoumax \- ワイド文字文字列を整数に変換する +.SH 書式 .nf .B #include .br @@ -40,19 +40,19 @@ wcstoimax, wcstoumax \- .BI "uintmax_t wcstoumax(const wchar_t *" nptr ", wchar_t **" endptr \ ", int " base ); .fi -.SH ÀâÌÀ -¤³¤ì¤é¤Î´Ø¿ô¤Ï¤Á¤ç¤¦¤É +.SH 説明 +これらの関数はちょうど .BR wcstol (3) -¤È +と .BR wcstoul (3) -¤Ë»÷¤Æ¤¤¤ë¤¬¡¢¤½¤ì¤¾¤ì +に似ているが、それぞれ .I intmax_t -¤È +と .I uintmax_t -·¿¤ÎÃͤòÊÖ¤¹¡£ -.SH ½àµò +型の値を返す。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR imaxabs (3), .BR imaxdiv (3), .BR strtoimax (3), diff --git a/release/man3/wcstok.3 b/release/man3/wcstok.3 index 2d96f670..9b6e4eca 100644 --- a/release/man3/wcstok.3 +++ b/release/man3/wcstok.3 @@ -16,57 +16,57 @@ .\" by FUJIWARA Teruyoshi .\" .TH WCSTOK 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wcstok \- ¥ï¥¤¥Éʸ»úʸ»úÎó¤ò¥È¡¼¥¯¥ó¤Ëʬ³ä¤¹¤ë -.SH ½ñ¼° +.SH 名前 +wcstok \- ワイド文字文字列をトークンに分割する +.SH 書式 .nf .B #include .sp .BI "wchar_t *wcstok(wchar_t *" wcs ", const wchar_t *" delim \ ", wchar_t **" ptr ); .fi -.SH ÀâÌÀ +.SH 説明 .BR wcstok () -´Ø¿ô¤Ï¡¢ +関数は、 .BR strtok (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ë¡¢ -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤ÎÆ°ºî¤ò¤µ¤»¤ë¤¿¤á¤Î°ú¤­¿ô¤òÄɲä·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤òÍѤ¤¤Æ¡¢¥ï¥¤¥Éʸ»úʸ»úÎó \fIwcs\fP ¤ò¥È¡¼¥¯¥ó¤Ëʬ²ò¤¹¤ë¤³¤È -¤¬¤Ç¤­¤ë¡£¤³¤³¤Ç¡¢¥È¡¼¥¯¥ó¤Ï \fIdelim\fP ¤ËÎóµó¤µ¤ì¤Æ¤¤¤ëʸ»ú¤ò´Þ¤Þ¤Ê -¤¤Éôʬʸ»úÎó¤È¤·¤ÆÄêµÁ¤µ¤ì¤ë¡£ +関数に対応するワイド文字関数に、 +マルチスレッドセーフの動作をさせるための引き数を追加したものである。 +この関数を用いて、ワイド文字文字列 \fIwcs\fP をトークンに分解すること +ができる。ここで、トークンは \fIdelim\fP に列挙されている文字を含まな +い部分文字列として定義される。 .PP -¸¡º÷¤Ï \fIwcs\fP ¤¬ NULL ¤Ç¤Ê¤±¤ì¤Ð \fIwcs\fP ¤«¤é³«»Ï¤µ¤ì¡¢\fIwcs\fP -¤¬ NULL ¤Ê¤é¤Ð \fI*ptr\fP ¤«¤é³«»Ï¤µ¤ì¤ë¡£¤Þ¤º¡¢Á´¤Æ¤Î¶èÀÚ¤ê¥ï¥¤¥Éʸ»ú -¤¬¥¹¥­¥Ã¥×¤µ¤ì¤ë¡£¤Ä¤Þ¤ê¡¢\fIdelim\fP ¤Ë´Þ¤Þ¤ì¤ë¥ï¥¤¥Éʸ»ú¤òĶ¤¨¤ë¤è¤¦ -¤Ë¥Ý¥¤¥ó¥¿¤¬Á°¤Ë¿Ê¤á¤é¤ì¤ë¡£ -¥ï¥¤¥Éʸ»úʸ»úÎó¤Î½ª¤ï¤ê¤Ë㤷¤¿¤é¡¢ +検索は \fIwcs\fP が NULL でなければ \fIwcs\fP から開始され、\fIwcs\fP +が NULL ならば \fI*ptr\fP から開始される。まず、全ての区切りワイド文字 +がスキップされる。つまり、\fIdelim\fP に含まれるワイド文字を超えるよう +にポインタが前に進められる。 +ワイド文字文字列の終わりに達したら、 .BR wcstok () -¤Ï NULL ¤òÊÖ¤·¤Æ -¥È¡¼¥¯¥ó¤¬Á´¤¯¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¤³¤È¤ò¼¨¤·¡¢¤³¤Î¸å¤Ë +は NULL を返して +トークンが全く見つからなかったことを示し、この後に .BR wcstok () -¤ò¸Æ¤Ó -½Ð¤·¤Æ¤â NULL ¤¬ÊÖ¤µ¤ì¤ë¤è¤¦¤Ë \fI*ptr\fP ¤ËŬÀÚ¤ÊÃͤòÀßÄꤹ¤ë¡£¤½¤ì -°Ê³°¤Î¾ì¹ç¤Ë¤Ï¡¢ +を呼び +出しても NULL が返されるように \fI*ptr\fP に適切な値を設定する。それ +以外の場合には、 .BR wcstok () -´Ø¿ô¤Ï¥È¡¼¥¯¥ó¤ÎÀèƬ¤ò¼±Ê̤·¡¢¤³¤ì¤ò»Ø¤¹ -¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£¤¿¤À¤·¤³¤ì¤ò¹Ô¤¦Á°¤Ë¡¢¥È¡¼¥¯¥ó¤Î¸å¤Ë¤¢¤ë¡¢\fIdelim\fP -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ëʸ»ú¤ò NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤ËÃÖ¤­´¹¤¨¤ë¤³¤È -¤Ë¤è¤Ã¤Æ¥È¡¼¥¯¥ó¤ò 0 ¤Ç½ªÃ¼¤µ¤»¤ë¡£¤µ¤é¤Ë \fI*ptr\fP ¤ò¹¹¿·¤·¡¢¸å¤Ç +関数はトークンの先頭を識別し、これを指す +ポインタを返す。ただしこれを行う前に、トークンの後にある、\fIdelim\fP +に含まれている文字を NULL ワイド文字 (L\(aq\\0\(aq) に置き換えること +によってトークンを 0 で終端させる。さらに \fI*ptr\fP を更新し、後で .BR wcstok () -¤ò¸Æ¤Ó½Ð¤·¤¿ -ºÝ¤Ë¡¢¼±Ê̤µ¤ì¤¿¥È¡¼¥¯¥ó¤Î³¤­¤«¤é¸¡º÷¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ +を呼び出した +際に、識別されたトークンの続きから検索できるようにする。 +.SH 返り値 .BR wcstok () -´Ø¿ô¤Ï¼¡¤Î¥È¡¼¥¯¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£¥È¡¼¥¯¥ó¤¬¸«¤Ä¤«¤é -¤Ê¤±¤ì¤Ð NULL ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は次のトークンへのポインタを返す。トークンが見つから +なければ NULL を返す。 +.SH 準拠 C99. -.SH Ãí°Õ -´Ø¿ô¤ËÍ¿¤¨¤¿¥ï¥¤¥Éʸ»úÎó \fIwcs\fP ¤Ï¡¢´Ø¿ô¤ÎÆ°ºî¤Ë¤è¤Ã¤Æ´°Á´¤Ë½ñ¤­´¹ -¤¨¤é¤ì¤ë¡£ -.SH Îã -°Ê²¼¤Î¥³¡¼¥É¤Ï¡¢¥ï¥¤¥Éʸ»úʸ»úÎó¤Ë´Þ¤Þ¤ì¤ë¥È¡¼¥¯¥ó¤ò¼è¤ê½Ð¤·¤Ê¤¬¤é -¥ë¡¼¥×¤¹¤ë¡£ +.SH 注意 +関数に与えたワイド文字列 \fIwcs\fP は、関数の動作によって完全に書き換 +えられる。 +.SH 例 +以下のコードは、ワイド文字文字列に含まれるトークンを取り出しながら +ループする。 .sp .nf wchar_t *wcs = ...; @@ -78,6 +78,6 @@ for (token = wcstok(wcs, " \\t\\n", &state); ... } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR strtok (3), .BR wcschr (3) diff --git a/release/man3/wcstombs.3 b/release/man3/wcstombs.3 index 40b79617..a88d9b79 100644 --- a/release/man3/wcstombs.3 +++ b/release/man3/wcstombs.3 @@ -17,60 +17,60 @@ .\" by HANATAKA Shinya .\" .TH WCSTOMBS 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wcstombs \- ¥ï¥¤¥Éʸ»úÎó¤ò¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.SH 名前 +wcstombs \- ワイド文字列をマルチバイト文字列に変換する +.SH 書式 .nf .B #include .sp .BI "size_t wcstombs(char *" dest ", const wchar_t *" src ", size_t " n ); .fi -.SH ÀâÌÀ -\fIdest\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¤Ç¤Ê¤¤¾ì¹ç¡¢ +.SH 説明 +\fIdest\fP が NULL ポインタでない場合、 .BR wcstombs () -´Ø¿ô¤Ï -¥ï¥¤¥Éʸ»úÎó \fIsrc\fP ¤ò \fIdest\fP ¤«¤é»Ï¤Þ¤ë¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤Ë -ÊÑ´¹¤¹¤ë¡£\fIdest\fP ¤Ë¤ÏºÇÂç¤Ç \fIn\fP ¥Ð¥¤¥È¤¬½ñ¤­¹þ¤Þ¤ì¤ë¡£ -ÊÑ´¹¤Ï½é´ü¾õÂ֤dz«»Ï¤µ¤ì¤ë¡£ÊÑ´¹¤Ï°Ê²¼¤Î3¤Ä¤ÎÍýͳ¤Ë¤è¤êÄä»ß¤¹¤ë¡£ +関数は +ワイド文字列 \fIsrc\fP を \fIdest\fP から始まるマルチバイト文字列に +変換する。\fIdest\fP には最大で \fIn\fP バイトが書き込まれる。 +変換は初期状態で開始される。変換は以下の3つの理由により停止する。 .PP -1. (¸½ºß¤Î¥í¥±¡¼¥ë¤Ë¤ª¤±¤ë)¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤Çɽ¸½¤Ç¤­¤Ê¤¤¥ï¥¤¥Éʸ»ú¤Ë -Áø¶ø¤·¤¿¾ì¹ç¡£¤³¤Î¾ì¹ç¤Ë¤Ï +1. (現在のロケールにおける)マルチバイト列で表現できないワイド文字に +遭遇した場合。この場合には .I (size_t)\ \-1 -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .PP -2. ŤµÀ©¸Â¤Ë¤è¤Ã¤Æ¶¯À©Ää»ß¤µ¤»¤é¤ì¤¿¾ì¹ç¡£¤³¤Î¾ì¹ç¤Ë¤Ï \fIdest\fP ¤Ë -½ñ¤­¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¿ô¤¬ÊÖ¤µ¤ì¤ë¡£¤·¤«¤·¤³¤Î»þÅÀ¤Ç¤Î¥·¥Õ¥È¾õÂ֤ϼº¤ï¤ì¤ë¡£ +2. 長さ制限によって強制停止させられた場合。この場合には \fIdest\fP に +書き込まれたバイト数が返される。しかしこの時点でのシフト状態は失われる。 .PP -3. ¥ï¥¤¥Éʸ»úÎ󤬽ªÃ¼¤Î NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤ò´Þ¤á¤Æ -´°Á´¤ËÊÑ´¹¤µ¤ì¤¿¾ì¹ç¡£¤³¤Î¾ì¹ç¤Ë¤ÏÊÑ´¹¤Ï½é´ü¾õÂ֤ǽª¤ê¡¢ -\fIdest\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¿ô (½ªÃ¼¤Î NULL ¤Ï´Þ¤Þ¤ì¤Ê¤¤) ¤òÊÖ¤¹¡£ +3. ワイド文字列が終端の NULL ワイド文字 (L\(aq\\0\(aq) を含めて +完全に変換された場合。この場合には変換は初期状態で終り、 +\fIdest\fP に書き込まれたバイト数 (終端の NULL は含まれない) を返す。 .PP -¥×¥í¥°¥é¥Þ¡¼¤Ï \fIdest\fP ¤ËºÇÄã¤Ç¤â \fIn\fP ¥Ð¥¤¥È¤Î¶õ¤­¤¬¤¢¤ë¤³¤È¤ò -Êݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +プログラマーは \fIdest\fP に最低でも \fIn\fP バイトの空きがあることを +保証しなければならない。 .PP -\fIdest\fP ¤¬ NULL ¤Î¾ì¹ç¡¢\fIn\fP ¤Ï̵»ë¤µ¤ì¤ë¡£¾åµ­¤ÈƱÍͤËÊÑ´¹¤¬¹Ô -¤Ê¤ï¤ì¤ë¤¬ÊÑ´¹·ë²Ì¤Î¥Ð¥¤¥ÈÎó¤Ï¥á¥â¥ê¤Ë¤Ï½ñ¤­¹þ¤Þ¤ì¤Ê¤¤¡£ -¤Þ¤¿Ä¹¤µ¤Î¾å¸Â¤¬Â¸ºß¤·¤Ê¤¤¡£ +\fIdest\fP が NULL の場合、\fIn\fP は無視される。上記と同様に変換が行 +なわれるが変換結果のバイト列はメモリには書き込まれない。 +また長さの上限が存在しない。 .PP -¾åµ­¤Î 2. ¤Î¾ì¹ç¤òÈò¤±¤ë¤¿¤á¤Ë¡¢¥×¥í¥°¥é¥Þ¡¼¤Ï \fIn\fP ¤¬ -\fIwcstombs(NULL,src,0)+1\fP °Ê¾å¤Ç¤¢¤ë¤³¤È¤òÊݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +上記の 2. の場合を避けるために、プログラマーは \fIn\fP が +\fIwcstombs(NULL,src,0)+1\fP 以上であることを保証しなければならない。 +.SH 返り値 .BR wcstombs () -´Ø¿ô¤ÏÀ¸À®¤·¤¿¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤Î¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£½ªÃ¼¤Î -¥Ê¥ëʸ»ú¤Ï´Þ¤Þ¤Ê¤¤¡£¤â¤·ÊÑ´¹¤Ç¤­¤Ê¤¤¥ï¥¤¥Éʸ»ú¤ËÁø¶ø¤·¤¿¾ì¹ç¤Ë¤Ï +関数は生成したマルチバイト列のバイト数を返す。終端の +ナル文字は含まない。もし変換できないワイド文字に遭遇した場合には .I (size_t)\ \-1 -¤òÊÖ¤¹¡£ -.SH ½àµò +を返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR wcstombs () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ +カテゴリに依存している。 .PP .BR wcsrtombs () -´Ø¿ô¤ÏƱ¤¸µ¡Ç½¤Î¤¿¤á¤Î¥¹¥ì¥Ã¥É¡¦¥»¡¼¥Õ¤Ê -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÄ󶡤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +関数は同じ機能のためのスレッド・セーフな +インターフェースを提供する。 +.SH 関連項目 .BR mbstowcs (3), .BR wcsrtombs (3) diff --git a/release/man3/wcswidth.3 b/release/man3/wcswidth.3 index 2efb15f7..1675b699 100644 --- a/release/man3/wcswidth.3 +++ b/release/man3/wcswidth.3 @@ -15,31 +15,31 @@ .\" by FUJIWARA Teruyoshi .\" .TH WCSWIDTH 3 2010-09-10 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wcswidth \- ¸ÇÄꥵ¥¤¥º¤Î¥ï¥¤¥Éʸ»úʸ»úÎó¤Îɽ¼¨¤ËɬÍפʥ«¥é¥à¿ô¤òµá¤á¤ë -.SH ½ñ¼° +.SH 名前 +wcswidth \- 固定サイズのワイド文字文字列の表示に必要なカラム数を求める +.SH 書式 .nf -.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) »²¾È */" +.BR "#define _XOPEN_SOURCE" " /* feature_test_macros(7) 参照 */" .B #include .sp .BI "int wcswidth(const wchar_t *" s ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .BR wcswidth () -´Ø¿ô¤Ï¡¢\fIs\fP ¤¬»Ø¤¹¥ï¥¤¥Éʸ»úʸ»úÎó¤òɽ¸½¤¹¤ë¤¿¤á¤Ë -ɬÍפʥ«¥é¥à¿ô¤òÊÖ¤¹¡£¤¿¤À¤·¡¢ºÇÂç \fIn\fP ʸ»ú¤·¤«½èÍý¤·¤Ê¤¤¡£ -°õºþ²Äǽ¤Ç¤Ê¤¤¥ï¥¤¥Éʸ»ú¤¬Ê¸»úÎó¤Ë´Þ¤Þ¤ì¤ë¾ì¹ç¤Ë¤Ï¡¢ \-1 ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +関数は、\fIs\fP が指すワイド文字文字列を表現するために +必要なカラム数を返す。ただし、最大 \fIn\fP 文字しか処理しない。 +印刷可能でないワイド文字が文字列に含まれる場合には、 \-1 が返される。 +.SH 返り値 .BR wcswidth () -´Ø¿ô¤Ï¡¢¥ï¥¤¥Éʸ»úʸ»úÎó \fIs\fP ¤Îɽ¸½¤ËɬÍפʥ«¥é¥à¿ô -¤òÊÖ¤¹¡£¤¿¤À¤·¥ï¥¤¥Éʸ»úʸ»úÎó¤ÏºÇÂç \fIn\fP ¸Ä¤ËÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ -.SH ½àµò +関数は、ワイド文字文字列 \fIs\fP の表現に必要なカラム数 +を返す。ただしワイド文字文字列は最大 \fIn\fP 個に切り詰められる。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ +.SH 注意 .BR wcswidth () -¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +カテゴリに依存する。 +.SH 関連項目 .BR iswprint (3), .BR wcwidth (3) diff --git a/release/man3/wctob.3 b/release/man3/wctob.3 index dc1a7bcb..dfd2c06f 100644 --- a/release/man3/wctob.3 +++ b/release/man3/wctob.3 @@ -16,44 +16,44 @@ .\" by FUJIWARA Teruyoshi .\" .TH WCTOB 3 2011-09-22 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wctob \- ¥ï¥¤¥Éʸ»ú¤Î¥·¥ó¥°¥ë¥Ð¥¤¥Èɽ¸½¤ò»î¤ß¤ë -.SH ½ñ¼° +.SH 名前 +wctob \- ワイド文字のシングルバイト表現を試みる +.SH 書式 .nf .B #include .sp .BI "int wctob(wint_t " c ); .fi -.SH ÀâÌÀ +.SH 説明 .BR wctob () -´Ø¿ô¤Ï¡¢¥ï¥¤¥Éʸ»ú \fIc\fP ¤Î¥Þ¥ë¥Á¥Ð¥¤¥Èɽ¸½(½é´ü¾õÂ֤dz« -»Ï)¤¬¥·¥ó¥°¥ë¥Ð¥¤¥Èʸ»ú¤À¤±¤Ç¤Ç¤­¤Æ¤¤¤ë¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£¤â¤·¤½¤¦¤Ç¤¢ -¤ì¤Ð¡¢¤³¤ì¤ò +関数は、ワイド文字 \fIc\fP のマルチバイト表現(初期状態で開 +始)がシングルバイト文字だけでできているかどうかを調べる。もしそうであ +れば、これを .I "unsigned char" -·¿¤È¤·¤ÆÊÖ¤¹¡£ +型として返す。 .PP -¤³¤Î´Ø¿ô¤Ï·è¤·¤Æ»È¤ï¤Ê¤¤¤³¤È¡£¤³¤Î´Ø¿ô¤Ï¹ñºÝ²½¥×¥í¥°¥é¥à¤ò½ñ¤¯¾å¤Ç¤ÏÌò -¤ËΩ¤¿¤Ê¤¤¡£¹ñºÝ²½¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¥·¥ó¥°¥ë¥Ð¥¤¥Èʸ»ú¤È¥Þ¥ë¥Á¥Ð¥¤¥È -ʸ»ú¤ò¶èÊ̤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +この関数は決して使わないこと。この関数は国際化プログラムを書く上では役 +に立たない。国際化されたプログラムでは、シングルバイト文字とマルチバイト +文字を区別してはならない。 +.SH 返り値 .BR wctob () -´Ø¿ô¤Ï \fIc\fP ¤Î¥·¥ó¥°¥ë¥Ð¥¤¥Èɽ¸½¤¬Â¸ºß¤¹¤ì¤Ð¡¢¤½¤Îɽ¸½ -¤òÊÖ¤¹¡£Â¸ºß¤·¤Ê¤±¤ì¤Ð \fBEOF\fP ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は \fIc\fP のシングルバイト表現が存在すれば、その表現 +を返す。存在しなければ \fBEOF\fP を返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR wctob () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ +カテゴリに依存する。 .PP -¤³¤Î´Ø¿ô¤Ï·è¤·¤Æ»È¤¦¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£¹ñºÝ²½¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¥·¥ó¥°¥ë¥Ð¥¤¥È -ʸ»ú¤È¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò¶èÊ̤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£Âå¤ï¤ê¤Ë¡¢ +この関数は決して使うべきではない。国際化プログラムでは、シングルバイト +文字とマルチバイト文字を区別してはならない。代わりに、 .BR wctomb (3) -¤«¡¢¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ê +か、スレッドセーフな .BR wcrtomb (3) -¤ò»È¤¦¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を使うこと。 +.SH 関連項目 .BR btowc (3), .BR wcrtomb (3), .BR wctomb (3) diff --git a/release/man3/wctomb.3 b/release/man3/wctomb.3 index 7d848ebf..11d647ae 100644 --- a/release/man3/wctomb.3 +++ b/release/man3/wctomb.3 @@ -17,54 +17,54 @@ .\" by HANATAKA Shinya .\" .TH WCTOMB 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wctomb \- ¥ï¥¤¥Éʸ»ú¤ò¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ËÊÑ´¹¤¹¤ë¡£ -.SH ½ñ¼° +.SH 名前 +wctomb \- ワイド文字をマルチバイト列に変換する。 +.SH 書式 .nf .B #include .sp .BI "int wctomb(char *" s ", wchar_t " wc ); .fi -.SH ÀâÌÀ +.SH 説明 .PP -\fIs\fP ¤¬ NULL ¤Ç¤Ê¤±¤ì¤Ð¡¢ +\fIs\fP が NULL でなければ、 .BR wctomb () -´Ø¿ô¤Ï¥ï¥¤¥Éʸ»ú \fIwc\fP ¤ò -¥Þ¥ë¥Á¥Ð¥¤¥Èɽ¸½¤ËÊÑ´¹¤·¤Æ \fIs\fP ¤Î»Ø¤¹Ê¸»úÇÛÎó¤Ë³ÊǼ¤¹¤ë¡£ -Ʊ»þ¤Ë wctomb ´Ø¿ô¤Î¤ß¤¬»ÈÍѤ¹¤ëÀÅŪ¤Ç̾Á°¤Î¤Ê¤¤¥·¥Õ¥È¾õÂÖ¤ò¹¹¿·¤¹¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¥Þ¥ë¥Á¥Ð¥¤¥Èɽ¸½¤ÎŤµ¡¢¤¹¤Ê¤ï¤Á \fIs\fP ¤Ë½ñ¤­¹þ¤Þ¤ì¤¿ -¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£¥×¥í¥°¥é¥Þ¡¼¤Ï \fIs\fP ¤Ë¾¯¤Ê¤¯¤È¤â \fBMB_CUR_MAX\fP -¥Ð¥¤¥È¤Î¶õ¤­¤¬¤¢¤ë¤³¤È¤òÊݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +関数はワイド文字 \fIwc\fP を +マルチバイト表現に変換して \fIs\fP の指す文字配列に格納する。 +同時に wctomb 関数のみが使用する静的で名前のないシフト状態を更新する。 +この関数はマルチバイト表現の長さ、すなわち \fIs\fP に書き込まれた +バイト数を返す。プログラマーは \fIs\fP に少なくとも \fBMB_CUR_MAX\fP +バイトの空きがあることを保証しなければならない。 .PP -\fIs\fP ¤¬ NULL ¤Ê¤é¤Ð¡¢ +\fIs\fP が NULL ならば、 .BR wctomb () -´Ø¿ô¤Ï¼«Ê¬¤Î¤ß¤¬»ÈÍѤ¹¤ë¥·¥Õ¥È¾õÂÖ¤ò -½é´ü¾õÂÖ¤ËÌᤷ¤Æ¡¢Ê¸»úÉä¹æ¤¬¥·¥Õ¥È¾õÂ֤˰͸¤·¤Æ¤¤¤ë¤Ê¤é¤Ð¥¼¥í°Ê³°¤ò -¥·¥Õ¥È¾õÂ֤˰͸¤·¤Ê¤¤¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -\fIs\fP ¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç +関数は自分のみが使用するシフト状態を +初期状態に戻して、文字符号がシフト状態に依存しているならばゼロ以外を +シフト状態に依存しない場合にはゼロを返す。 +.SH 返り値 +\fIs\fP が NULL でない場合 .BR wctomb () -´Ø¿ô¤Ï¥Ð¥¤¥ÈÇÛÎó \fIs\fP ¤Ë -½ñ¤­¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£\fIwc\fP ¤¬(¸½ºß¤Î¥í¥±¡¼¥ë¤Ë¤ª¤¤¤Æ) -¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤Çɽ¸½¤Ç¤­¤Ê¤¤¾ì¹ç¤Ë¤Ï \-1 ¤òÊÖ¤¹¡£ +関数はバイト配列 \fIs\fP に +書き込まれたバイト数を返す。\fIwc\fP が(現在のロケールにおいて) +マルチバイト列で表現できない場合には \-1 を返す。 .PP -\fIs\fP ¤¬ NULL ¤Î¾ì¹ç +\fIs\fP が NULL の場合 .BR wctomb () -´Ø¿ô¤Ïʸ»úÉä¹æ¤¬¥·¥Õ¥È¾õÂÖ¤Ë -°Í¸¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¥¼¥í°Ê³°¡¢¥·¥Õ¥È¾õÂ֤˰͸¤·¤Ê¤¤¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ -.SH ½àµò +関数は文字符号がシフト状態に +依存している場合にはゼロ以外、シフト状態に依存しない場合はゼロを返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR wctomb () -´Ø¿ô¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +関数の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ +カテゴリに依存している。 .PP -¤³¤Î´Ø¿ô¤Ï¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Ç¤Ï°ÂÁ´¤Ç¤Ï¤Ê¤¤¡£ +この関数はマルチスレッドでは安全ではない。 .BR wcrtomb (3) -´Ø¿ô¤Ï -Ʊ¤¸µ¡Ç½¤Î¤è¤êÎɤ¤¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÄ󶡤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +関数は +同じ機能のより良いインターフェースを提供する。 +.SH 関連項目 .BR MB_CUR_MAX (3), .BR wcrtomb (3), .BR wcstombs (3) diff --git a/release/man3/wctrans.3 b/release/man3/wctrans.3 index ac4429db..477d624c 100644 --- a/release/man3/wctrans.3 +++ b/release/man3/wctrans.3 @@ -16,43 +16,43 @@ .\" by FUJIWARA Teruyoshi .\" .TH WCTRANS 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wctrans \- ¥ï¥¤¥Éʸ»úÊÑ´¹¥Þ¥Ã¥Ô¥ó¥° -.SH ½ñ¼° +.SH 名前 +wctrans \- ワイド文字変換マッピング +.SH 書式 .nf .B #include .sp .BI "wctrans_t wctrans(const char *" name ); .fi -.SH ÀâÌÀ -\fIwctrans_t\fP ·¿¤Ï¡¢¤¢¤ë¥ï¥¤¥Éʸ»ú¤ò¾¤Î¥ï¥¤¥Éʸ»ú¤ËÊÑ´¹¤Ç¤­¤ë¥Þ¥Ã¥Ô -¥ó¥°¤òɽ¸½¤¹¤ë¡£ËܼÁŪ¤Ë¤Ï¼ÂÁõ°Í¸¤Ç¤¢¤ë¤¬¡¢Æüì¤ÊÃÍ -\fI(wctrans_t)0\fP ¤ÏÉÔÀµ¤Ê¥Þ¥Ã¥Ô¥ó¥°¤ò¼¨¤¹¡£0 ¤Ç¤Ê¤¤Ãͤò»ý¤Ä -\fIwctrans_t\fP ¤ò +.SH 説明 +\fIwctrans_t\fP 型は、あるワイド文字を他のワイド文字に変換できるマッピ +ングを表現する。本質的には実装依存であるが、特殊な値 +\fI(wctrans_t)0\fP は不正なマッピングを示す。0 でない値を持つ +\fIwctrans_t\fP を .BR towctrans (3) -´Ø¿ô¤ËÅϤ¹¤³¤È¤Ë¤è¤Ã¤Æ¡¢¼ÂºÝ¤Ë -¥ï¥¤¥Éʸ»ú¤ÎÊÑ´¹¤ò¼Â¹Ô¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +関数に渡すことによって、実際に +ワイド文字の変換を実行させることができる。 .PP .BR wctrans () -¤Ï¡¢Ì¾Á°¤Ë¤è¤Ã¤ÆÍ¿¤¨¤é¤ì¤ë¥Þ¥Ã¥Ô¥ó¥°¤òÊÖ¤¹¡£Í­¸ú¤Ê̾Á°¤Î -½¸¹ç¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +は、名前によって与えられるマッピングを返す。有効な名前の +集合は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¤¬¡¢°Ê²¼¤Î̾Á°¤ÏÁ´¤Æ¤Î¥í¥±¡¼¥ë¤Ë¤ª¤¤¤ÆÍ­¸ú¤Ç¤¢¤ë¡£ +カテゴリに依存するが、以下の名前は全てのロケールにおいて有効である。 .nf - "tolower" \- \fBtolower\fP(3) ¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò¼Â¸½¤¹¤ë - "toupper" \- \fBtoupper\fP(3) ¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò¼Â¸½¤¹¤ë + "tolower" \- \fBtolower\fP(3) のマッピングを実現する + "toupper" \- \fBtoupper\fP(3) のマッピングを実現する .fi -.SH ÊÖ¤êÃÍ +.SH 返り値 .BR wctrans () -´Ø¿ô¤Ï¡¢\fIname\fP ¤¬Í­¸ú¤Ê¤é¤Ð¥Þ¥Ã¥Ô¥ó¥°µ­½Ò»Ò¤òÊÖ¤¹¡£ -Í­¸ú¤Ç¤Ê¤±¤ì¤Ð \fI(wctrans_t) 0\fP ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIname\fP が有効ならばマッピング記述子を返す。 +有効でなければ \fI(wctrans_t) 0\fP を返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR wctrans () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +カテゴリに依存する。 +.SH 関連項目 .BR towctrans (3) diff --git a/release/man3/wctype.3 b/release/man3/wctype.3 index 2b065708..026188cd 100644 --- a/release/man3/wctype.3 +++ b/release/man3/wctype.3 @@ -16,65 +16,65 @@ .\" by FUJIWARA Teruyoshi .\" .TH WCTYPE 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wctype \- ¥ï¥¤¥Éʸ»ú¤ÎʬÎà -.SH ½ñ¼° +.SH 名前 +wctype \- ワイド文字の分類 +.SH 書式 .nf .B #include .sp .BI "wctype_t wctype(const char *" name ); .fi -.SH ÀâÌÀ +.SH 説明 .I wctype_t -·¿¤Ï¡¢¥ï¥¤¥Éʸ»ú¤¬»ý¤Ã¤Æ¤¤¤ë¡¢¤¢¤ë¤¤¤Ï»ý¤Ã¤Æ¤¤¤Ê¤¤Â°À­¤òɽ¸½¤¹¤ë¡£ -¸À¤¤´¹¤¨¤ë¤È¡¢ +型は、ワイド文字が持っている、あるいは持っていない属性を表現する。 +言い換えると、 .I wctype_t -·¿¤Ï¥ï¥¤¥Éʸ»ú¤Î¥¯¥é¥¹¤òɽ¸½¤¹¤ë¡£ -¤³¤Î·¿¤ÏËܼÁŪ¤Ë¼ÂÁõ°Í¸¤Ç¤¢¤ë¤¬¡¢Æüì¤ÊÃÍ +型はワイド文字のクラスを表現する。 +この型は本質的に実装依存であるが、特殊な値 .I "(wctype_t) 0" -¤ÏÉÔÀµ¤Ê°À­¤ò¼¨¤¹¡£ -0 ¤Ç¤Ê¤¤Ãͤò»ý¤Ä +は不正な属性を示す。 +0 でない値を持つ .I wctype_t -¤ò +を .BR iswctype (3) -´Ø¿ô¤ËÅÏ -¤¹¤³¤È¤Ë¤è¤Ã¤Æ¡¢Í¿¤¨¤é¤ì¤¿¥ï¥¤¥Éʸ»ú¤¬¤½¤Î°À­¤ò»ý¤Ä¤«¤É¤¦¤«¤ò¼ÂºÝ¤Ë¥Æ -¥¹¥È¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +関数に渡 +すことによって、与えられたワイド文字がその属性を持つかどうかを実際にテ +ストすることができる。 x.PP .BR wctype () -´Ø¿ô¤Ï¡¢Ì¾Á°¤Ë¤è¤Ã¤ÆÍ¿¤¨¤é¤ì¤ë°À­¤òÊÖ¤¹¡£Í­¸ú¤Ê̾Á°¤Î½¸ -¹ç¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +関数は、名前によって与えられる属性を返す。有効な名前の集 +合は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¤¬¡¢°Ê²¼¤Î̾Á°¤ÏÁ´¤Æ¤Î¥í¥±¡¼¥ë¤ÇÍ­¸ú¤Ç¤¢¤ë¡£ +カテゴリに依存するが、以下の名前は全てのロケールで有効である。 .sp .nf - "alnum" \- ¥¯¥é¥¹²½´Ø¿ô \fBisalnum\fP(3) ¤ò¼Â¸½¤¹¤ë - "alpha" \- ¥¯¥é¥¹²½´Ø¿ô \fBisalpha\fP(3) ¤ò¼Â¸½¤¹¤ë - "blank" \- ¥¯¥é¥¹²½´Ø¿ô \fBisblank\fP(3) ¤ò¼Â¸½¤¹¤ë - "cntrl" \- ¥¯¥é¥¹²½´Ø¿ô \fBiscntrl\fP(3) ¤ò¼Â¸½¤¹¤ë - "digit" \- ¥¯¥é¥¹²½´Ø¿ô \fBisdigit\fP(3) ¤ò¼Â¸½¤¹¤ë - "graph" \- ¥¯¥é¥¹²½´Ø¿ô \fBisgraph\fP(3) ¤ò¼Â¸½¤¹¤ë - "lower" \- ¥¯¥é¥¹²½´Ø¿ô \fBislower\fP(3) ¤ò¼Â¸½¤¹¤ë - "print" \- ¥¯¥é¥¹²½´Ø¿ô \fBisprint\fP(3) ¤ò¼Â¸½¤¹¤ë - "punct" \- ¥¯¥é¥¹²½´Ø¿ô \fBispunct\fP(3) ¤ò¼Â¸½¤¹¤ë - "space" \- ¥¯¥é¥¹²½´Ø¿ô \fBisspace\fP(3) ¤ò¼Â¸½¤¹¤ë - "upper" \- ¥¯¥é¥¹²½´Ø¿ô \fBisupper\fP(3) ¤ò¼Â¸½¤¹¤ë - "xdigit" \- ¥¯¥é¥¹²½´Ø¿ô \fBisxdigit\fP(3) ¤ò¼Â¸½¤¹¤ë + "alnum" \- クラス化関数 \fBisalnum\fP(3) を実現する + "alpha" \- クラス化関数 \fBisalpha\fP(3) を実現する + "blank" \- クラス化関数 \fBisblank\fP(3) を実現する + "cntrl" \- クラス化関数 \fBiscntrl\fP(3) を実現する + "digit" \- クラス化関数 \fBisdigit\fP(3) を実現する + "graph" \- クラス化関数 \fBisgraph\fP(3) を実現する + "lower" \- クラス化関数 \fBislower\fP(3) を実現する + "print" \- クラス化関数 \fBisprint\fP(3) を実現する + "punct" \- クラス化関数 \fBispunct\fP(3) を実現する + "space" \- クラス化関数 \fBisspace\fP(3) を実現する + "upper" \- クラス化関数 \fBisupper\fP(3) を実現する + "xdigit" \- クラス化関数 \fBisxdigit\fP(3) を実現する .fi -.SH ÊÖ¤êÃÍ +.SH 返り値 .BR wctype () -´Ø¿ô¤Ï¡¢ +関数は、 .I name -¤¬Í­¸ú¤Ê¤é¤Ð°À­µ­½Ò»Ò¤òÊÖ¤¹¡£ -Í­¸ú¤Ç¤Ê¤±¤ì¤Ð +が有効ならば属性記述子を返す。 +有効でなければ .I "(wctype_t) 0" -¤òÊÖ¤¹¡£ -.SH ½àµò +を返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR wctype () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +カテゴリに依存する。 +.SH 関連項目 .BR iswctype (3) diff --git a/release/man3/wcwidth.3 b/release/man3/wcwidth.3 index 9117d34c..076e58c8 100644 --- a/release/man3/wcwidth.3 +++ b/release/man3/wcwidth.3 @@ -17,39 +17,39 @@ .\" by Akihiro MOTOKI .\" .TH WCWIDTH 3 2011-09-28 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wcwidth \- ¥ï¥¤¥Éʸ»ú¤¬É¬ÍפȤ¹¤ë¥«¥é¥à¿ô¤òÄ´¤Ù¤ë -.SH ½ñ¼° +.SH 名前 +wcwidth \- ワイド文字が必要とするカラム数を調べる +.SH 書式 .nf .B #define _XOPEN_SOURCE .B #include .sp .BI "int wcwidth(wchar_t " c ); .fi -.SH ÀâÌÀ +.SH 説明 .BR wcwidth () -´Ø¿ô¤Ï¡¢¥ï¥¤¥Éʸ»ú \fIc\fP ¤òɽ¸½¤¹¤ë¤¿¤á¤ËɬÍפʥ«¥é¥à -¿ô¤òÊÖ¤¹¡£\fIc\fP ¤¬°õºþ²Äǽʸ»ú¤Ê¤é¤Ð¡¢¤³¤ÎÃÍ¤Ï 0 °Ê¾å¤Ç¤¢¤ë¡£ -\fIc\fP ¤¬ NULL ¥ï¥¤¥Éʸ»ú (L\(aq\\0\(aq) ¤Ê¤é¤Ð¡¢ÃÍ¤Ï 0 ¤Ç¤¢¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï \-1 ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ +関数は、ワイド文字 \fIc\fP を表現するために必要なカラム +数を返す。\fIc\fP が印刷可能文字ならば、この値は 0 以上である。 +\fIc\fP が NULL ワイド文字 (L\(aq\\0\(aq) ならば、値は 0 である。 +それ以外の場合には \-1 が返される。 +.SH 返り値 .BR wcwidth () -´Ø¿ô¤Ï¡¢\fIc\fP ¤Îɽ¸½¤ËɬÍפʥ«¥é¥à¿ô¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIc\fP の表現に必要なカラム数を返す。 +.SH 準拠 POSIX.1-2001. -glibc 2.2.5 °ÊÁ°¤Ç¤Ï°Ê²¼¤Î¥×¥í¥È¥¿¥¤¥×Àë¸À¤¬»ÈÍѤµ¤ì¤Æ¤¤¤¿¤³¤È¤Ë -Ãí°Õ¤¹¤ë¤³¤È¡£ +glibc 2.2.5 以前では以下のプロトタイプ宣言が使用されていたことに +注意すること。 .br .nf .BI "int wcwidth(wint_t " c ); .fi -.SH Ãí°Õ +.SH 注意 .BR wcwidth () -¤ÎÆ°ºî¤Ï¡¢¸½ºß¤Î¥í¥±¡¼¥ë¤Î +の動作は、現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤¹¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +カテゴリに依存する。 +.SH 関連項目 .BR iswprint (3), .BR wcswidth (3), .BR feature_test_macros (7) diff --git a/release/man3/wmemchr.3 b/release/man3/wmemchr.3 index fef6efc0..eb42c58d 100644 --- a/release/man3/wmemchr.3 +++ b/release/man3/wmemchr.3 @@ -16,28 +16,28 @@ .\" by FUJIWARA Teruyoshi .\" .TH WMEMCHR 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wmemchr \- ¥ï¥¤¥Éʸ»ú¤ÎÇÛÎ󤫤é¥ï¥¤¥Éʸ»ú¤òõ¤¹ -.SH ½ñ¼° +.SH 名前 +wmemchr \- ワイド文字の配列からワイド文字を探す +.SH 書式 .nf .B #include .sp .BI "wchar_t *wmemchr(const wchar_t *" s ", wchar_t " c ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .BR wmemchr () -´Ø¿ô¤Ï¡¢ +関数は、 .BR memchr (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIs\fP ¤òÀèƬ¤È¤¹¤ë \fIn\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤ÎÃ椫¤é¡¢ºÇ½é -¤Ë¥ï¥¤¥Éʸ»ú \fIc\fP ¤¬¸½¤ï¤ì¤ë¾ì½ê¤òõ¤¹¡£ -.SH ÊÖ¤êÃÍ +関数に対応するワイド文字関数である。 +この関数は、\fIs\fP を先頭とする \fIn\fP 個のワイド文字の中から、最初 +にワイド文字 \fIc\fP が現われる場所を探す。 +.SH 返り値 .BR wmemchr () -´Ø¿ô¤Ï¡¢\fIs\fP ¤òÀèƬ¤È¤¹¤ë \fIn\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤ÎÃæ -¤Ë¤ª¤¤¤ÆºÇ½é¤Ë \fIc\fP ¤¬¸½¤ï¤ì¤ë¾ì½ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£\fIc\fP ¤¬¸½ -¤ï¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï NULL ¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIs\fP を先頭とする \fIn\fP 個のワイド文字の中 +において最初に \fIc\fP が現われる場所へのポインタを返す。\fIc\fP が現 +われなかった場合には NULL を返す。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR memchr (3), .BR wcschr (3) diff --git a/release/man3/wmemcmp.3 b/release/man3/wmemcmp.3 index 43f77cae..ccf06acf 100644 --- a/release/man3/wmemcmp.3 +++ b/release/man3/wmemcmp.3 @@ -15,33 +15,33 @@ .\" by FUJIWARA Teruyoshi .\" .TH WMEMCMP 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wmemcmp \- ¥ï¥¤¥Éʸ»ú¤ÎÇÛÎó 2 ¤Ä¤òÈæ³Ó¤¹¤ë -.SH ½ñ¼° +.SH 名前 +wmemcmp \- ワイド文字の配列 2 つを比較する +.SH 書式 .nf .B #include .sp .BI "int wmemcmp(const wchar_t *" s1 ", const wchar_t *" s2 ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .BR wmemcmp () -´Ø¿ô¤Ï¡¢ +関数は、 .BR memcmp (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIs1\fP ¤òÀèƬ¤È¤¹¤ë \fIn\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤È \fIs2\fP ¤ò -ÀèƬ¤È¤¹¤ë \fIn\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤òÈæ³Ó¤¹¤ë¡£ -.SH ÊÖ¤êÃÍ +関数に対応するワイド文字関数である。 +この関数は、\fIs1\fP を先頭とする \fIn\fP 個のワイド文字と \fIs2\fP を +先頭とする \fIn\fP 個のワイド文字を比較する。 +.SH 返り値 .BR wmemcmp () -´Ø¿ô¤Ï¡¢\fIs1\fP ¤È \fIs2\fP ¤òÀèƬ¤È¤¹¤ëÂ礭¤µ¤¬ -\fIn\fP ¤Î 2 ¤Ä¤ÎÇÛÎó¤¬Åù¤·¤±¤ì¤Ð 0 ¤òÊÖ¤¹¡£ -ºÇ½é¤Ë°Û¤Ê¤ëʸ»ú¤¬¸½¤ï¤ì¤¿°ÌÃÖ \fIi\fP (\fIi\fP < \fIn\fP)¤Ë¤ª¤¤¤Æ¡¢¤½ -¤Î°ÌÃ֤ˤ¢¤ë¥ï¥¤¥Éʸ»ú \fIs1[i]\fP ¤¬ \fIs2[i]\fP ¤è¤êÂ礭¤±¤ì¤ÐÀµ¤ÎÀ° -¿ô¤òÊÖ¤¹¡£ -ºÇ½é¤Ë°Û¤Ê¤ëʸ»ú¤¬¸½¤ï¤ì¤¿°ÌÃÖ \fIi\fP (\fIi\fP < \fIn\fP)¤Ë¤ª¤¤¤Æ¡¢¤½ -¤Î°ÌÃ֤ˤ¢¤ë¥ï¥¤¥Éʸ»ú \fIs1[i]\fP ¤¬ \fIs2[i]\fP ¤è¤ê¾®¤µ¤±¤ì¤ÐÉé¤ÎÀ° -¿ô¤òÊÖ¤¹¡£ -.SH ½àµò +関数は、\fIs1\fP と \fIs2\fP を先頭とする大きさが +\fIn\fP の 2 つの配列が等しければ 0 を返す。 +最初に異なる文字が現われた位置 \fIi\fP (\fIi\fP < \fIn\fP)において、そ +の位置にあるワイド文字 \fIs1[i]\fP が \fIs2[i]\fP より大きければ正の整 +数を返す。 +最初に異なる文字が現われた位置 \fIi\fP (\fIi\fP < \fIn\fP)において、そ +の位置にあるワイド文字 \fIs1[i]\fP が \fIs2[i]\fP より小さければ負の整 +数を返す。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR memcmp (3), .BR wcscmp (3) diff --git a/release/man3/wmemcpy.3 b/release/man3/wmemcpy.3 index 9c8004b8..f93f3dda 100644 --- a/release/man3/wmemcpy.3 +++ b/release/man3/wmemcpy.3 @@ -16,34 +16,34 @@ .\" by FUJIWARA Teruyoshi .\" .TH WMEMCPY 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wmemcpy \- ¥ï¥¤¥Éʸ»ú¤ÎÇÛÎó¤ò¥³¥Ô¡¼¤¹¤ë -.SH ½ñ¼° +.SH 名前 +wmemcpy \- ワイド文字の配列をコピーする +.SH 書式 .nf .B #include .sp .BI "wchar_t *wmemcpy(wchar_t *" dest ", const wchar_t *" src ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .BR wmemcpy () -´Ø¿ô¤Ï¡¢ +関数は、 .BR memcpy (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fIsrc\fP ¤òÀèƬ¤È¤¹¤ëÇÛÎ󤫤é \fIdest\fP ¤òÀèƬ¤È¤¹¤ëÇÛÎó -¤Ë \fIn\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤ò¥³¥Ô¡¼¤¹¤ë¡£ +関数に対応するワイド文字関数である。 +この関数は、\fIsrc\fP を先頭とする配列から \fIdest\fP を先頭とする配列 +に \fIn\fP 個のワイド文字をコピーする。 .PP -2 ¤Ä¤ÎÇÛÎó¤Ï½Å¤Ê¤Ã¤Æ¤¤¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ÇÛÎ󤬽ŤʤäƤ¤¤ë¾ì¹ç¤Ë¤Ï +2 つの配列は重なっていてはならない。配列が重なっている場合には .BR wmemmove (3) -¤ò»È¤Ã¤Æ¥³¥Ô¡¼¤¹¤ë¤³¤È¡£ +を使ってコピーすること。 .PP -¥×¥í¥°¥é¥Þ¤Ï¡¢¾¯¤Ê¤¯¤È¤â \fIn\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤¬Æþ¤ëÎΰè¤ò \fIdest\fP -¤Ë³ÎÊݤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +プログラマは、少なくとも \fIn\fP 個のワイド文字が入る領域を \fIdest\fP +に確保しなければならない。 +.SH 返り値 .BR wmemcpy () -¤Ï \fIdest\fP ¤òÊÖ¤¹¡£ -.SH ½àµò +は \fIdest\fP を返す。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR memcpy (3), .BR wcscpy (3), .BR wmemmove (3), diff --git a/release/man3/wmemmove.3 b/release/man3/wmemmove.3 index 02469708..dcca26d4 100644 --- a/release/man3/wmemmove.3 +++ b/release/man3/wmemmove.3 @@ -16,30 +16,30 @@ .\" by FUJIWARA Teruyoshi .\" .TH WMEMMOVE 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wmemmove \-¥ï¥¤¥Éʸ»ú¤ÎÇÛÎó¤ò¥³¥Ô¡¼¤¹¤ë -.SH ½ñ¼° +.SH 名前 +wmemmove \-ワイド文字の配列をコピーする +.SH 書式 .nf .B #include .sp .BI "wchar_t *wmemmove(wchar_t *" dest ", const wchar_t *" src ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .BR wmemmove () -´Ø¿ô¤Ï¡¢ +関数は、 .BR memmove (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢ -¤ë¡£¤³¤Î´Ø¿ô¤Ï \fIsrc\fP ¤òÀèƬ¤È¤¹¤ëÇÛÎ󤫤é \fIdest\fP ¤òÀèƬ¤È¤¹¤ë -ÇÛÎó¤Ë \fIn\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤ò¥³¥Ô¡¼¤¹¤ë¡£2 ¤Ä¤ÎÇÛÎó¤Ï½Å¤Ê¤Ã¤Æ¤¤¤Æ¤â -¹½¤ï¤Ê¤¤¡£ +関数に対応するワイド文字関数であ +る。この関数は \fIsrc\fP を先頭とする配列から \fIdest\fP を先頭とする +配列に \fIn\fP 個のワイド文字をコピーする。2 つの配列は重なっていても +構わない。 .PP -¥×¥í¥°¥é¥Þ¤Ï¡¢¾¯¤Ê¤¯¤È¤â \fIn\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤¬Æþ¤ëÎΰè¤ò \fIdest\fP -¤Ë³ÎÊݤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ +プログラマは、少なくとも \fIn\fP 個のワイド文字が入る領域を \fIdest\fP +に確保しなければならない。 +.SH 返り値 .BR wmemmove () -¤Ï \fIdest\fP ¤òÊÖ¤¹¡£ -.SH ½àµò +は \fIdest\fP を返す。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR memmove (3), .BR wmemcpy (3) diff --git a/release/man3/wmemset.3 b/release/man3/wmemset.3 index 24befc33..fbdf8669 100644 --- a/release/man3/wmemset.3 +++ b/release/man3/wmemset.3 @@ -16,25 +16,25 @@ .\" by FUJIWARA Teruyoshi .\" .TH WMEMSET 3 1999-07-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wmemset \- ¥ï¥¤¥Éʸ»ú¤ÎÇÛÎó¤òÄê¿ô¤Î¥ï¥¤¥Éʸ»ú¤ÇËä¤á¤ë -.SH ½ñ¼° +.SH 名前 +wmemset \- ワイド文字の配列を定数のワイド文字で埋める +.SH 書式 .nf .B #include .sp .BI "wchar_t *wmemset(wchar_t *" wcs ", wchar_t " wc ", size_t " n ); .fi -.SH ÀâÌÀ +.SH 説明 .BR wmemset () -´Ø¿ô¤Ï¡¢ +関数は、 .BR memset (3) -´Ø¿ô¤ËÂбþ¤¹¤ë¥ï¥¤¥Éʸ»ú´Ø¿ô¤Ç¤¢¤ë¡£ -¤³¤Î´Ø¿ô¤Ï¡¢\fBmemset\fP ¤òÀèƬ¤È¤¹¤ë \fIn\fP ¸Ä¤Î¥ï¥¤¥Éʸ»ú¤ÎÇÛÎó¤ò¡¢ -¥ï¥¤¥Éʸ»ú \fIwc\fP ¤Î \fIn\fP ¸Ä¤Î¥³¥Ô¡¼¤ÇËä¤á¤ë¡£ -.SH ÊÖ¤êÃÍ +関数に対応するワイド文字関数である。 +この関数は、\fBmemset\fP を先頭とする \fIn\fP 個のワイド文字の配列を、 +ワイド文字 \fIwc\fP の \fIn\fP 個のコピーで埋める。 +.SH 返り値 .BR wmemset () -¤Ï \fIwcs\fP ¤òÊÖ¤¹¡£ -.SH ½àµò +は \fIwcs\fP を返す。 +.SH 準拠 C99. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR memset (3) diff --git a/release/man3/wordexp.3 b/release/man3/wordexp.3 index 935cce74..afe4ee2c 100644 --- a/release/man3/wordexp.3 +++ b/release/man3/wordexp.3 @@ -26,9 +26,9 @@ .\" by Yuichi SATO .\" .TH WORDEXP 3 2008-07-14 "" "Linux Programmer's Manual" -.SH ̾Á° -wordexp, wordfree \- posix ¥·¥§¥ë¤Î¤è¤¦¤Ëñ¸ì¤ÎŸ³«¤ò¹Ô¤¦ -.SH ½ñ¼° +.SH 名前 +wordexp, wordfree \- posix シェルのように単語の展開を行う +.SH 書式 .B "#include " .sp .BI "int wordexp(const char *" s ", wordexp_t *" p ", int " flags ); @@ -36,162 +36,162 @@ wordexp, wordfree \- posix .BI "void wordfree(wordexp_t *" p ); .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .BR wordexp (), .BR wordfree (): _XOPEN_SOURCE -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR wordexp () -¤Ï¥·¥§¥ë¤Î¤è¤¦¤Ëʸ»úÎó +はシェルのように文字列 .I s -¤òŸ³«¤·¡¢ +を展開し、 .I p -¤Ç»Ø¤·¼¨¤¹¹½Â¤ÂΤ˷ë²Ì¤òÊÖ¤¹¡£ -¥Ç¡¼¥¿·¿ +で指し示す構造体に結果を返す。 +データ型 .I wordexp_t -¤Ï¾¯¤Ê¤¯¤È¤â¥Õ¥£¡¼¥ë¥É +は少なくともフィールド .IR we_wordc , .IR we_wordv , .I we_offs -¤ò»ý¤Ä¹½Â¤ÂΤǤ¢¤ë¡£ -¥Õ¥£¡¼¥ë¥É +を持つ構造体である。 +フィールド .I we_wordc -¤Ï +は .I size_t -¤Ç¤¢¤ê¡¢ +であり、 .I s -¤òŸ³«¤·¤¿·ë²Ì¤Ëñ¸ì¤¬¤¤¤¯¤Ä¤¢¤ë¤«¤òɽ¤¹¡£ -¥Õ¥£¡¼¥ë¥É +を展開した結果に単語がいくつあるかを表す。 +フィールド .I we_wordv -¤Ï +は .I char ** -¤Ç¤¢¤ê¡¢¸«¤Ä¤«¤Ã¤¿Ã±¸ì¤ÎÇÛÎó¤ò»Ø¤·¼¨¤¹¡£ +であり、見つかった単語の配列を指し示す。 .I size_t -·¿¤Î¥Õ¥£¡¼¥ë¥É +型のフィールド .I we_offs -¤Ï¡¢ +は、 .I we_wordv -ÇÛÎó¤Ë¤¢¤ë½é´üÍ×ÁǤΤ¦¤Á¤¤¤¯¤Ä¤¬ -NULL ¤ÇËä¤á¤é¤ì¤ë¤Ù¤­¤«¤òɽ¤¹¤Î¤Ë»È¤ï¤ì¤¿¤ê¤¹¤ë +配列にある初期要素のうちいくつが +NULL で埋められるべきかを表すのに使われたりする .RI ( flags -¤Ë¤è¤ê·èÄꤵ¤ì¤ë¡£²¼µ­¤ò»²¾È¡£)¡£ +により決定される。下記を参照。)。 .LP -´Ø¿ô +関数 .BR wordfree () -¤Ï³ä¤êÅö¤Æ¤¿¥á¥â¥ê¤òºÆÅÙ²òÊü¤¹¤ë¡£ -¤è¤êÀµ³Î¤Ë¤¤¤¦¤È¡¢¤³¤Î´Ø¿ô¤Ï¤½¤Î°ú¤­¿ô¤ò²òÊü¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ -ÇÛÎó +は割り当てたメモリを再度解放する。 +より正確にいうと、この関数はその引き数を解放するのではなく、 +配列 .I we_wordv -¤È¤½¤ì¤¬»Ø¤·¼¨¤¹Ê¸»úÎó¤ò²òÊü¤¹¤ë¡£ -.SS "ʸ»úÎó°ú¤­¿ô" -¤³¤ÎŸ³«¤Ï¥·¥§¥ë¤Ë¤è¤ë¥³¥Þ¥ó¥É¤Î¥Ñ¥é¥á¡¼¥¿¤ÎŸ³« +とそれが指し示す文字列を解放する。 +.SS "文字列引き数" +この展開はシェルによるコマンドのパラメータの展開 .RB ( sh (1) -¤ò»²¾È) ¤ÈƱ¤¸¤Ç¤¢¤ë¤Î¤Ç¡¢Ê¸»úÎó +を参照) と同じであるので、文字列 .I s -¤Ï¥·¥§¥ë¥³¥Þ¥ó¥É¥Ñ¥é¥á¡¼¥¿¤ÇÉÔÀµ¤È¤µ¤ì¤ëʸ»ú¤ò´Þ¤ó¤Ç¤Ï¤Ê¤é¤Ê¤¤¡£ -Æä˥¨¥¹¥±¡¼¥×¤µ¤ì¤Æ¤¤¤Ê¤¤²þ¹Ô¡¢|, &, ;, <, >, (, ), {, } ʸ»ú¤ò -¥³¥Þ¥ó¥ÉÃÖ´¹¤ä¥Ñ¥é¥á¡¼¥¿ÃÖ´¹¤Î¾ìḬ̀ʳ°¤Ë´Þ¤á¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +はシェルコマンドパラメータで不正とされる文字を含んではならない。 +特にエスケープされていない改行、|, &, ;, <, >, (, ), {, } 文字を +コマンド置換やパラメータ置換の場面以外に含めてはならない。 .LP -°ú¤­¿ô +引き数 .I s -¤Ë¥¯¥©¡¼¥È¤·¤Æ¤¤¤Ê¤¤¥³¥á¥ó¥Èʸ»ú # ¤Ç»Ï¤Þ¤ëñ¸ì¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -¤½¤Îñ¸ì¤È¤½¤ì°Ê¹ß¤Îñ¸ì¤¬Ìµ»ë¤µ¤ì¤ë¤«¡¢ -¤½¤ì¤È¤â # ¤¬¥³¥á¥ó¥Èʸ»ú¤È¤·¤Æ°·¤ï¤Ê¤¤¤«¤Ï¡¢µ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SS "Ÿ³«" -¼Â¹Ô¤µ¤ì¤ëŸ³«¤Ï¡¢°Ê²¼¤ÎÃʳ¬¤Ç¹½À®¤µ¤ì¤ë: -¥Á¥ë¥ÀŸ³« (~user ¤ò user ¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤­´¹¤¨¤ë)¡¢ -ÊÑ¿ôŸ³« ($FOO ¤ò´Ä¶­ÊÑ¿ô FOO ¤ÎÃͤËÃÖ¤­´¹¤¨¤ë)¡¢ -¥³¥Þ¥ó¥ÉŸ³« ($(command) ¤Þ¤¿¤Ï \`command\` ¤ò command ¤Î½ÐÎϤÇÃÖ¤­´¹¤¨¤ë)¡¢ -»»½ÑŸ³«¡¢¥Õ¥£¡¼¥ë¥Éʬ³ä¡¢¥ï¥¤¥ë¥É¥«¡¼¥ÉŸ³«¡¢¥¯¥©¡¼¥È¤Î½üµî¡£ +にクォートしていないコメント文字 # で始まる単語が含まれている場合には、 +その単語とそれ以降の単語が無視されるか、 +それとも # がコメント文字として扱わないかは、規定されていない。 +.SS "展開" +実行される展開は、以下の段階で構成される: +チルダ展開 (~user を user のホームディレクトリに置き換える)、 +変数展開 ($FOO を環境変数 FOO の値に置き換える)、 +コマンド展開 ($(command) または \`command\` を command の出力で置き換える)、 +算術展開、フィールド分割、ワイルドカード展開、クォートの除去。 .LP -Æüì¤Ê¥Ñ¥é¥á¡¼¥¿ ($@, $*, $#, $?, $\-, $$, $!, $0) ¤Î -Ÿ³«·ë²Ì¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +特殊なパラメータ ($@, $*, $#, $?, $\-, $$, $!, $0) の +展開結果は規定されていない。 .LP -¥Õ¥£¡¼¥ë¥Éʬ³ä¤Ï´Ä¶­ÊÑ¿ô $IFS ¤òÍѤ¤¤Æ¹Ô¤ï¤ì¤ë¡£ -¤³¤Î´Ä¶­ÊÑ¿ô¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -¥Õ¥£¡¼¥ë¥É¶èÀÚ¤êʸ»ú¤Ï¥¹¥Ú¡¼¥¹¡¦¥¿¥Ö¡¦²þ¹Ô¤Ç¤¢¤ë¡£ -.SS "½ÐÎϤµ¤ì¤ëÇÛÎó" -ÇÛÎó +フィールド分割は環境変数 $IFS を用いて行われる。 +この環境変数が設定されていない場合、 +フィールド区切り文字はスペース・タブ・改行である。 +.SS "出力される配列" +配列 .I we_wordv -¤Ï¸«¤Ä¤«¤Ã¤¿Ã±¸ì¤ò¤ò´Þ¤ß¡¢ºÇ¸å¤Ë NULL ¤¬Â³¤¯¡£ -.SS "flags °ú¤­¿ô" +は見つかった単語をを含み、最後に NULL が続く。 +.SS "flags 引き数" .I flags -°ú¤­¿ô¤Ï°Ê²¼¤ÎÃͤΥӥåÈÊñ´ÞŪ OR ¤Ç¤¢¤ë: +引き数は以下の値のビット包含的 OR である: .TP .B WRDE_APPEND -¸«¤Ä¤«¤Ã¤¿Ã±¸ì¤òÁ°²ó¤Î¸Æ¤Ó½Ð¤··ë²Ì¤ÎÇÛÎó¤ËÄɲ乤롣 +見つかった単語を前回の呼び出し結果の配列に追加する。 .TP .B WRDE_DOOFFS -½é´ü¾õÂ֤Ǥ¢¤ë +初期状態である .I we_offs -¸Ä¤Î NULL ¤òÇÛÎó +個の NULL を配列 .I we_wordv -¤ËÁÞÆþ¤¹¤ë (¤³¤ì¤é¤ÏÊÖ¤µ¤ì¤ë +に挿入する (これらは返される .I we_wordc -¤Ë¤Ï¥«¥¦¥ó¥È¤µ¤ì¤Ê¤¤)¡£ +にはカウントされない)。 .TP .B WRDE_NOCMD -¥³¥Þ¥ó¥ÉÃÖ´¹¤ò¹Ô¤ï¤Ê¤¤¡£ +コマンド置換を行わない。 .TP .B WRDE_REUSE -°ú¤­¿ô +引き数 .I p -¤ÏÁ°²ó¤Î +は前回の .BR wordexp () -¤Î¸Æ¤Ó½Ð¤··ë²Ì¤Ç¤¢¤ê¡¢ +の呼び出し結果であり、 .BR wordfree () -¤¬ (¤Þ¤À) ¸Æ¤Ó½Ð¤µ¤ì¤Ê¤¤¡£ -³ä¤êÅö¤Æ¤é¤ì¤¿Îΰè¤òºÆÍøÍѤ¹¤ë¡£ +が (まだ) 呼び出されない。 +割り当てられた領域を再利用する。 .TP .B WRDE_SHOWERR -Ä̾ï¤Ï¥³¥Þ¥ó¥ÉÃÖ´¹¤Î¤È¤­¤Ë +通常はコマンド置換のときに .I stderr -¤¬ +が .I /dev/null -¤Ë¥ê¥À¥¤¥ì¥¯¥È¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï +にリダイレクトされる。 +このフラグは .I stderr -¤ò¥ê¥À¥¤¥ì¥¯¥È¤·¤Ê¤¤¤è¤¦¤Ë»ØÄꤹ¤ë¡£ +をリダイレクトしないように指定する。 .TP .B WRDE_UNDEF -̤ÄêµÁ¤Î¥·¥§¥ëÊÑ¿ô¤òŸ³«¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤Ë¡¢¥¨¥é¡¼¤È¤·¤Æ°·¤¦¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï°Ê²¼¤Î 5 ¤Ä¤ÎÃͤΤ¦¤Á¤Î 1 ¤Ä¤¬ÊÖ¤µ¤ì¤ë¡£ +未定義のシェル変数を展開しようとした場合に、エラーとして扱う。 +.SH 返り値 +成功した場合は 0 が返される。 +エラーの場合は以下の 5 つの値のうちの 1 つが返される。 .TP .B WRDE_BADCHAR -²þ¹Ô¤Þ¤¿¤Ï |, &, ;, <, >, (, ), {, } ¤Î¤¦¤Á¤Î 1 ¤Ä¤¬ÉÔÀµ¤Ë½Ð¸½¤·¤¿¡£ +改行または |, &, ;, <, >, (, ), {, } のうちの 1 つが不正に出現した。 .TP .B WRDE_BADVAL -̤ÄêµÁ¤Î¥·¥§¥ëÊÑ¿ô¤¬»²¾È¤µ¤ì¡¢¤«¤Ä +未定義のシェル変数が参照され、かつ .B WRDE_UNDEF -¥Õ¥é¥°¤Ç¤³¤ì¤ò¥¨¥é¡¼¤È¤·¤Æ°·¤¦¤è¤¦¤Ë»Ø¼¨¤µ¤ì¤Æ¤¤¤ë¡£ +フラグでこれをエラーとして扱うように指示されている。 .TP .B WRDE_CMDSUB -¥³¥Þ¥ó¥ÉÃÖ´¹¤¬µ¯¤³¤ê¡¢¤«¤Ä +コマンド置換が起こり、かつ .B WRDE_NOCMD -¥Õ¥é¥°¤Ç¤³¤ì¤ò¥¨¥é¡¼¤È¤·¤Æ°·¤¦¤è¤¦¤Ë»Ø¼¨¤µ¤ì¤Æ¤¤¤ë¡£ +フラグでこれをエラーとして扱うように指示されている。 .TP .B WRDE_NOSPACE -¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£ +メモリが足りない。 .TP .B WRDE_SYNTAX -Âбþ¤¹¤ë³ç¸Ì¤¬¤Ê¤¤¡¢¥¯¥©¡¼¥È¤¬¹çÃפ·¤Ê¤¤¤È¤¤¤Ã¤¿¡¢ -¥·¥§¥ë¤Î½ñ¼°¥¨¥é¡¼¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +対応する括弧がない、クォートが合致しないといった、 +シェルの書式エラー。 +.SH バージョン .BR wordexp () -¤È +と .BR wordfree () -¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò +は、バージョン 2.1 以降の glibc で提供されている。 +.SH 準拠 POSIX.1-2001. -.SH Îã -°Ê²¼¤Î¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Î½ÐÎϤϤÀ¤¤¤¿¤¤ "ls [a-c]*.c" ¤ÈƱ¤¸¤Ë¤Ê¤ë¡£ +.SH 例 +以下のサンプルプログラムの出力はだいたい "ls [a-c]*.c" と同じになる。 .LP .nf #include @@ -213,6 +213,6 @@ main(int argc, char **argv) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR fnmatch (3), .BR glob (3) diff --git a/release/man3/wprintf.3 b/release/man3/wprintf.3 index 1891a76d..1473e234 100644 --- a/release/man3/wprintf.3 +++ b/release/man3/wprintf.3 @@ -17,10 +17,10 @@ .\" by HANATAKA Shinya .\" .TH WPRINTF 3 2011-09-17 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf \- ¥ï¥¤¥Éʸ»ú¤ò -¥Õ¥©¡¼¥Þ¥Ã¥È¤·¤Æ½ÐÎϤ¹¤ë -.SH ½ñ¼° +.SH 名前 +wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf \- ワイド文字を +フォーマットして出力する +.SH 書式 .nf .B #include .B #include @@ -37,13 +37,13 @@ wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf \- .fi .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l -¾åµ­¤ÎÁ´¤Æ¤Î´Ø¿ô: +上記の全ての関数: .RS 4 .\" .BR wprintf (), .\" .BR fwprintf (), @@ -61,153 +61,153 @@ or .I cc\ -std=c99 .RE .ad -.SH ÀâÌÀ +.SH 説明 .BR wprintf () -¥Õ¥¡¥ß¥ê¡¼¤Î´Ø¿ô¤Ï +ファミリーの関数は .BR printf (3) -¥Õ¥¡¥ß¥ê¡¼¤Î´Ø¿ô¤Î -¥ï¥¤¥Éʸ»úÈǤǤ¢¤ë¡£¤³¤ì¤é¤Ï¥ï¥¤¥Éʸ»ú¤ò¥Õ¥©¡¼¥Þ¥Ã¥È¤·¤Æ½ÐÎϤ¹¤ë¡£ +ファミリーの関数の +ワイド文字版である。これらはワイド文字をフォーマットして出力する。 .PP .BR wprintf () -¤È +と .BR vwprintf () -´Ø¿ô¤Ï \fIstdout\fP ¤Ë½ÐÎϤò¹Ô¤Ê¤¦¡£ -\fIstdout\fP ¤¬¥Ð¥¤¥Èñ°ÌÆþ½ÐÎϤǤ¢¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤¡£¤è¤ê¾Ü¤·¤¤ÀâÌÀ¤Ï +関数は \fIstdout\fP に出力を行なう。 +\fIstdout\fP がバイト単位入出力であってはいけない。より詳しい説明は .BR fwide (3) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .PP .BR fwprintf () -¤È +と .BR vfwprintf () -´Ø¿ô¤Ï \fIstream\fP ¤Ë¥ï¥¤¥Éʸ»ú½ÐÎÏ -¤ò¹Ô¤Ê¤¦¡£ \fIstream\fP ¤¬¥Ð¥¤¥Èñ°ÌÆþ½ÐÎϤǤ¢¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ -¤è¤ê¾Ü¤·¤¤ÀâÌÀ¤Ï +関数は \fIstream\fP にワイド文字出力 +を行なう。 \fIstream\fP がバイト単位入出力であってはいけない。 +より詳しい説明は .BR fwide (3) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .PP .BR swprintf () -¤È +と .BR vswprintf () -´Ø¿ô¤Ï¥ï¥¤¥Éʸ»ú¤ÎÇÛÎó¤Ë -¥ï¥¤¥Éʸ»ú½ÐÎϤò¹Ô¤Ê¤¦¡£¥×¥í¥°¥é¥Þ¡¼¤Ï \fIwcs\fP ¤ËºÇÄã¤Ç¤â -\fImaxlen\fP ʸ»ú¤Î¥ï¥¤¥Éʸ»ú¤ò½ÐÎϤǤ­¤ë¶õ¤­¤¬¤¢¤ë¤³¤È¤òÊݾڤ·¤Ê¤±¤ì¤Ð -¤Ê¤é¤Ê¤¤¡£ +関数はワイド文字の配列に +ワイド文字出力を行なう。プログラマーは \fIwcs\fP に最低でも +\fImaxlen\fP 文字のワイド文字を出力できる空きがあることを保証しなければ +ならない。 .PP -¤³¤ì¤é¤Î´Ø¿ô¤Ï +これらの関数は .BR printf (3), .BR vprintf (3), .BR fprintf (3), .BR vfprintf (3), .BR sprintf (3), .BR vsprintf (3) -´Ø¿ô¤Ë»÷¤Æ¤¤¤ë¤¬°Ê²¼¤Î -ÅÀ¤Ç°Û¤Ã¤Æ¤¤¤ë¡£ +関数に似ているが以下の +点で異っている。 .TP .B \(bu -\fIformat\fP ¤¬¥ï¥¤¥Éʸ»úÎó¤ÇÍ¿¤¨¤é¤ì¤ë¡£ +\fIformat\fP がワイド文字列で与えられる。 .TP .B \(bu -½ÐÎϤ¬¥Ð¥¤¥È¤Ç¤Ï¤Ê¤¯¥ï¥¤¥Éʸ»ú¤Ç¹½À®¤µ¤ì¤ë¡£ +出力がバイトではなくワイド文字で構成される。 .TP .B \(bu .BR swprintf () -¤È +と .BR vswprintf () -¤Ï \fImaxlen\fP °ú¤­¿ô¤ò¼è¤ë¤¬¡¢ +は \fImaxlen\fP 引き数を取るが、 .BR sprintf () -¤È +と .BR vsprintf () -¤Ï¼è¤é¤Ê¤¤ +は取らない .RB ( snprintf () -¤È +と .BR vsnprintf () -¤Ï \fImaxlen\fP °ú¤­¿ô¤ò¼è¤ë¤¬ -¤³¤ì¤é¤Î´Ø¿ô¤¬ Linux ¤Ç¤Ï¡¢¥Ð¥Ã¥Õ¥¡¡¼¤¬°î¤ì¤¿¾ì¹ç¤Ç¤â \-1 ¤òÊÖ¤µ¤Ê¤¤)¡£ +は \fImaxlen\fP 引き数を取るが +これらの関数が Linux では、バッファーが溢れた場合でも \-1 を返さない)。 .PP -\fBc\fP ¤È \fBs\fP ÊÑ´¹Ê¸»ú¤Î°·¤¤¤¬°Û¤Ã¤Æ¤¤¤ë: +\fBc\fP と \fBs\fP 変換文字の扱いが異っている: .TP .B c -¤â¤· +もし .B l -½¤¾þ»Ò¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï +修飾子が存在しない場合は .I int -°ú¤­¿ô¤Ï +引き数は .BR btowc (3) -´Ø¿ô¤Ë¤è¤Ã¤Æ¥ï¥¤¥Éʸ»ú¤ËÊÑ´¹¤µ¤ì¤ë¡£¤½¤·¤Æ·ë²Ì¤Î¥ï¥¤¥Éʸ»ú¤¬½ÐÎϤµ¤ì¤ë¡£ +関数によってワイド文字に変換される。そして結果のワイド文字が出力される。 .B l -½¤¾þ»Ò¤¬Â¸ºß¤¹¤ë¾ì¹ç¤Ï +修飾子が存在する場合は .I wint_t -(¥ï¥¤¥Éʸ»ú)°ú¤­¿ô¤¬½ÐÎϤµ¤ì¤ë¡£ +(ワイド文字)引き数が出力される。 .TP .B s -¤â¤· +もし .B l -½¤¾þ»Ò¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢ +修飾子が存在しない場合、 .I "const\ char\ *" -°ú¤­¿ô¤Ï½é´ü¾õÂÖ¤è¤ê»Ï¤Þ¤ë¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ò´Þ¤ó¤À -char ·¿¤ÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼(ʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼)¤È¤ß¤Ê¤µ¤ì¤ë¡£ -ÇÛÎó¤Îʸ»ú¤Ï(ºÇ½é¤Î¥Ð¥¤¥ÈÁ°¤Ë½é´ü¾õÂÖ¤ÇÊÑ´¹¤ò³«»Ï¤·¡¢¤½¤ì¤¾¤ì¤Îʸ»ú¤ò +引き数は初期状態より始まるマルチバイト文字列を含んだ +char 型の配列へのポインター(文字列へのポインター)とみなされる。 +配列の文字は(最初のバイト前に初期状態で変換を開始し、それぞれの文字を .BR mbrtowc (3) -´Ø¿ô¤Ë¤è¤Ã¤Æ)¥ï¥¤¥Éʸ»ú¤Ø¤ÈÊÑ´¹¤µ¤ì¤ë¡£·ë²Ì¤Î¥ï¥¤¥Éʸ»ú¤Ï½ªÃ¼¤Î -¥Ê¥ë¥ï¥¤¥Éʸ»ú¤Î¼êÁ°¤Þ¤Ç¤¬½ñ¤­¹þ¤Þ¤ì¤ë¡£ÀºÅÙ(precision)¤¬»ØÄꤵ¤ì¤¿ -¾ì¹ç¡¢»ØÄꤵ¤ì¤¿¿ô»ú¤òĶ¤¨¤ë¥ï¥¤¥Éʸ»ú¤Ï½ñ¤­¹þ¤Þ¤ì¤Ê¤¤¡£ÀºÅÙ¤Ï -½ñ¤­¹þ¤Þ¤ì¤ë -.I ¥Ð¥¤¥È -¿ô¤ä -.I ²èÌ̾å¤Î°ÌÃÖ -¤Ç¤Ï¤Ê¤¯ -.I ¥ï¥¤¥Éʸ»ú -¤Î¿ô¤ò»ØÄꤹ¤ë¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -ÀºÅÙ¤¬¤Ê¤¤¾ì¹ç¤Ë¤ÏÇÛÎó¤Î½ªÃ¼¤Ë¥Ê¥ëʸ»ú¤ò´Þ¤àɬÍפ¬¤¢¤ë¡£ -ÀºÅÙ¤ò»ØÄꤹ¤ë¾ì¹ç¤Ë¤Ï¡¢ÇÛÎó¤ÎºÇ¸å¤ËÅþÃ夹¤ëÁ°¤ËÊÑ´¹¤µ¤ì¤¿¥ï¥¤¥Éʸ»ú¤Î -¿ô¤¬¤½¤ì¤ËÅþ㤹¤ë¤è¤¦¡¢ÀºÅ٤Ͻ½Ê¬¤Ë¾®¤µ¤Ê¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤â¤· +関数によって)ワイド文字へと変換される。結果のワイド文字は終端の +ナルワイド文字の手前までが書き込まれる。精度(precision)が指定された +場合、指定された数字を超えるワイド文字は書き込まれない。精度は +書き込まれる +.I バイト +数や +.I 画面上の位置 +ではなく +.I ワイド文字 +の数を指定することに注意すること。 +精度がない場合には配列の終端にナル文字を含む必要がある。 +精度を指定する場合には、配列の最後に到着する前に変換されたワイド文字の +数がそれに到達するよう、精度は十分に小さな数でなければならない。 +もし .B l -½¤¾þ»Ò¤¬Â¸ºß¤¹¤ë¾ì¹ç¡¢ +修飾子が存在する場合、 .I "const\ wchar_t\ *" -°ú¤­¿ô¤Ï¥ï¥¤¥Éʸ»ú¤ÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤È¤ß¤Ê¤µ¤ì¤ë¡£ -ÇÛÎó¤Î¥ï¥¤¥Éʸ»úÎó¤Ï½ªÃ¼¤Î¥Ê¥ë¥ï¥¤¥Éʸ»ú¤Î¼ê´Ö¤Þ¤Ç½ÐÎϤµ¤ì¤ë¡£ -¤â¤·ÀºÅÙ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï»ØÄꤵ¤ì¤¿ÀºÅٰʾå¤Îʸ»ú¤Ï½ÐÎϤµ¤ì¤Ê¤¤¡£ -ÀºÅÙ¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ë¤Ï½ªÃ¼¤Î¥Ê¥ë¥ï¥¤¥Éʸ»ú¤ò´Þ¤àɬÍפ¬¤¢¤ë¡£ -ÀºÅÙ¤ò»ØÄꤹ¤ë¾ì¹ç¤Ë¤Ï¤½¤ì¤Ï¥ï¥¤¥Éʸ»ú¤ÎÇÛÎó¤ÎÂ礭¤µ¤è¤ê¤â¾®¤µ¤¯¤Ê -¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ÊÖ¤êÃÍ -¤³¤ì¤é¤Î´Ø¿ô¤Ï½ñ¤­¹þ¤Þ¤ì¤¿¥ï¥¤¥Éʸ»ú¤Îʸ»ú¿ô¤òÊÖ¤¹¡£ +引き数はワイド文字の配列へのポインターとみなされる。 +配列のワイド文字列は終端のナルワイド文字の手間まで出力される。 +もし精度が指定された場合には指定された精度以上の文字は出力されない。 +精度を指定しない場合には終端のナルワイド文字を含む必要がある。 +精度を指定する場合にはそれはワイド文字の配列の大きさよりも小さくな +ければならない。 +.SH 返り値 +これらの関数は書き込まれたワイド文字の文字数を返す。 .BR swprintf () -¤È +と .BR vswprintf () -´Ø¿ô¤Î¾ì¹ç¤Ï -½ªÃ¼¤Î¥Ê¥ë¥ï¥¤¥Éʸ»ú¤Ï´Þ¤Þ¤Ê¤¤¡£¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ -.SH ½àµò +関数の場合は +終端のナルワイド文字は含まない。エラーが起こった場合は \-1 を返す。 +.SH 準拠 C99. -.SH Ãí°Õ +.SH 注意 .BR wprintf () -Åù¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î +等の動作は現在のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ +カテゴリに依存している。 .PP -\fIformat\fP ʸ»úÎó¤¬ ASCII °Ê³°¤Î¥ï¥¤¥Éʸ»ú¤ò´Þ¤ó¤Ç¤¤¤ë¾ì¹ç¡¢ -¼Â¹Ô»þ¤Î¥í¥±¡¼¥ë¤Î +\fIformat\fP 文字列が ASCII 以外のワイド文字を含んでいる場合、 +実行時のロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤¬¥³¥ó¥Ñ¥¤¥ë»þ¤Î +カテゴリがコンパイル時の .B LC_CTYPE -¥«¥Æ¥´¥ê¤È -°ìÃפ·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Î¤ß¥×¥í¥°¥é¥à¤ÏÀµ¾ï¤ËÆ°ºî¤¹¤ë¡£¤³¤ì¤Ï +カテゴリと +一致している場合にのみプログラムは正常に動作する。これは .I wchar_t -¤Îɽ¸½¤¬¥í¥±¡¼¥ë¤ä¥×¥é¥Ã¥È¥Û¡¼¥à¤Ë°Í¸¤·¤Æ¤¤¤ë¤³¤È¤Ë¸¶°ø¤¬¤¢¤ë¡£ -(glibc ¤Ç¤Ï¥ï¥¤¥Éʸ»ú¤È¤·¤Æ Unicode (ISO-10646) ¤Î¥³¡¼¥É¥Ý¥¤¥ó¥È¤ò -»ÈÍѤ·¤Æ¤¤¤ë¡£Â¾¤Î¥×¥é¥Ã¥È¥Û¡¼¥à¤Ç¤Ï¤½¤¦¤Ç¤Ï¤Ê¤¤¡£Æ±ÍÍ¤Ë -ISO C99 ¤Î \\unnnn ·Á¼°¤ÎÈÆÍÑʸ»ú̾¾Î¤Ï¤³¤ÎÌäÂê¤ò²ò·è¤·¤Ê¤¤¡£) -¤³¤Î¤¿¤á¹ñºÝ²½¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Ç¤Ï \fIformat\fP ʸ»úÎó¤ò ASCII ¥ï¥¤¥É -ʸ»ú¤Î¤ß¤Ë¤¹¤ë¤«¡¢¼Â¹Ô»þ¤Ë¹ñºÝ²½¤µ¤ì¤¿ÊýË¡¤Ç¹½À®¤¹¤ëɬÍפ¬¤¢¤ë -(Î㤨¤Ð +の表現がロケールやプラットホームに依存していることに原因がある。 +(glibc ではワイド文字として Unicode (ISO-10646) のコードポイントを +使用している。他のプラットホームではそうではない。同様に +ISO C99 の \\unnnn 形式の汎用文字名称はこの問題を解決しない。) +このため国際化されたプログラムでは \fIformat\fP 文字列を ASCII ワイド +文字のみにするか、実行時に国際化された方法で構成する必要がある +(例えば .BR gettext () -¤È +と .BR iconv () -¤ä +や .BR mbstowcs () -¤òÁȤ߹ç¤ï¤Æ»ÈÍѤ¹¤ë)¡£ -.SH ´ØÏ¢¹àÌÜ +を組み合わて使用する)。 +.SH 関連項目 .BR fprintf (3), .BR fputwc (3), .BR fwide (3), diff --git a/release/man3/xcrypt.3 b/release/man3/xcrypt.3 index 50213170..b760c99d 100644 --- a/release/man3/xcrypt.3 +++ b/release/man3/xcrypt.3 @@ -12,9 +12,9 @@ .\" by Yuichi SATO .\" .TH XCRYPT 3 2003-04-04 "" "Linux Programmer's Manual" -.SH ̾Á° -xencrypt, xdecrypt, passwd2des \- RFS ¥Ñ¥¹¥ï¡¼¥É°Å¹æ²½ -.SH ½ñ¼° +.SH 名前 +xencrypt, xdecrypt, passwd2des \- RFS パスワード暗号化 +.SH 書式 .B "#include " .sp .BI "void passwd2des(char " *passwd ", char *" key ");" @@ -22,54 +22,54 @@ xencrypt, xdecrypt, passwd2des \- RFS .BI "int xencrypt(char *" secret ", char *" passwd ");" .sp .BI "int xdecrypt(char *" secret ", char *" passwd ");" -.SH ÀâÌÀ -´Ø¿ô +.SH 説明 +関数 .BR passwd2des () -¤ÏǤ°Õ¤ÎŤµ¤Îʸ»úÎó +は任意の長さの文字列 .I passwd -¤ò¤È¤ê¡¢Ä¹¤µ 8 ¤Îʸ»úÇÛÎó +をとり、長さ 8 の文字配列 .I key -¤òËä¤á¤ë¡£ -ÇÛÎó +を埋める。 +配列 .I key -¤Ï DES ¥­¡¼¤È¤·¤Æ»È¤¦¤Î¤ËŬ¤·¤Æ¤¤¤ë¡£ -¤³¤ÎÇÛÎó¤Î³Æ¥Ð¥¤¥È¤Î¥Ó¥Ã¥È 0 ¤Ï´ñ¿ô¥Ñ¥ê¥Æ¥£¤Ç¤¢¤ë¡£ -¤³¤³¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë»Ä¤ê¤Î 2 ¤Ä¤Î´Ø¿ô¤Ï¡¢ -¤³¤Î´Ø¿ô¤ò»È¤¤¡¢°ú¤­¿ô +は DES キーとして使うのに適している。 +この配列の各バイトのビット 0 は奇数パリティである。 +ここで説明されている残りの 2 つの関数は、 +この関数を使い、引き数 .I passwd -¤ò DES ¥­¡¼¤ËÊÑ´¹¤¹¤ë¡£ +を DES キーに変換する。 .LP .BR xencrypt () -´Ø¿ô¤Ï -.\" (¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È 0123456789abcdefABCDEF ¤Çɽ¤µ¤ì¤ë) -16 ¿Ê¿ô¤ÇÍ¿¤¨¤é¤ì¤¿ ASCII ʸ»úÎó +関数は +.\" (アルファベット 0123456789abcdefABCDEF で表される) +16 進数で与えられた ASCII 文字列 .I secret -¤ò¤È¤ë¡£ -¤³¤ÎŤµ¤Ï 16 ¤ÎÇÜ¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤½¤·¤Æ +をとる。 +この長さは 16 の倍数でなければならない。 +そして .BR passwd2des () -¤Ë¤è¤Ã¤Æ +によって .I passwd -¤«¤éƳ¤­½Ð¤µ¤ì¤¿ DES ¥­¡¼¤ò»È¤¤¡¢ +から導き出された DES キーを使い、 .I secret -¤ò°Å¹æ²½¤¹¤ë¡£ -¤½¤Î·ë²Ì¤Ï -.\" (¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È 0123456789abcdef ¤Çɽ¤µ¤ì¤ë) -16 ¿Ê¿ôʸ»úÎó¤È¤·¤Æ +を暗号化する。 +その結果は +.\" (アルファベット 0123456789abcdef で表される) +16 進数文字列として .I secret -¤ËºÆ¤ÓƱ¤¸Ä¹¤µ¤Ç½ÐÎϤµ¤ì¤ë¡£ +に再び同じ長さで出力される。 .LP .BR xdecrypt () -´Ø¿ô¤ÏµÕ¤ÎÁàºî¤ò¹Ô¤¦¡£ -.SH ÊÖ¤êÃÍ -´Ø¿ô +関数は逆の操作を行う。 +.SH 返り値 +関数 .BR xencrypt () -¤È +と .BR xdecrypt () -¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¤Ë 1 ¤òÊÖ¤·¡¢¼ºÇÔ¤·¤¿¾ì¹ç¤Ë 0 ¤òÊÖ¤¹¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤Ï libc 4.6.27 °Ê¹ß¤È glibc 2.1 °Ê¹ß¤Ë¸ºß¤¹¤ë¡£ -.SH ¥Ð¥° -¾åµ­¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Ë¥×¥í¥È¥¿¥¤¥×¤¬¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +は、成功した場合に 1 を返し、失敗した場合に 0 を返す。 +.SH バージョン +これらのルーチンは libc 4.6.27 以降と glibc 2.1 以降に存在する。 +.SH バグ +上記のインクルードファイルにプロトタイプがない。 +.SH 関連項目 .BR cbc_crypt (3) diff --git a/release/man3/xdr.3 b/release/man3/xdr.3 index 11de95d1..009e6830 100644 --- a/release/man3/xdr.3 +++ b/release/man3/xdr.3 @@ -10,18 +10,18 @@ .\" by HANATAKA Shinya .\" .TH XDR 3 2007-12-30 "" "Linux Programmer's Manual" -.SH ̾Á° -xdr \- ³°Éô¥Ç¡¼¥¿É½¸½(XDR)¤Î¤¿¤á¤Î¥é¥¤¥Ö¥é¥ê¡¦¥ë¡¼¥Æ¥£¥ó -.SH ½ñ¼°¤ÈÀâÌÀ -.LP -¤³¤ì¤é¤Î¥ë¡¼¥Æ¥£¥ó¤Ï C ¥×¥í¥°¥é¥Þ¡¼¤¬¥Þ¥·¥óÈó°Í¸¤Ê·Á¼°¤Ç -Ǥ°Õ¤Î¥Ç¡¼¥¿¹½Â¤ÂΤòµ­½Ò¤¹¤ë¤³¤È¤ò²Äǽ¤Ë¤¹¤ë¡£ -¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¡¦¥³¡¼¥ë¤Î¤¿¤á¤Î¥Ç¡¼¥¿¤Ï¤³¤ì¤é¤Î¥ë¡¼¥Æ¥£¥ó¤ò -»ÈÍѤ·¤ÆÁ÷¿®¤µ¤ì¤ë¡£ +.SH 名前 +xdr \- 外部データ表現(XDR)のためのライブラリ・ルーティン +.SH 書式と説明 +.LP +これらのルーティンは C プログラマーがマシン非依存な形式で +任意のデータ構造体を記述することを可能にする。 +リモート・プロシジャ・コールのためのデータはこれらのルーティンを +使用して送信される。 -°Ê²¼¤Ë¼¨¤¹¥×¥í¥È¥¿¥¤¥×Àë¸À¤Ï +以下に示すプロトタイプ宣言は .I -¤Ç¹Ô¤ï¤ì¤Æ¤ª¤ê¡¢¤½¤ÎÃæ¤Ç¤Ï¼¡¤Î·¿¤¬»ÈÍѤµ¤ì¤ë¡£ +で行われており、その中では次の型が使用される。 .in +4n .nf @@ -32,9 +32,9 @@ typedef bool_t (*\fIxdrproc_t\fP) (XDR *, void *,...); .in .LP .I XDR -·¿¤ÎÀë¸À¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +型の宣言については、 .I -¤ò»²¾È¡£ +を参照。 .LP .nf .BI "bool_t xdr_array(XDR *" xdrs ", char **" arrp ", unsigned int *" sizep , @@ -42,202 +42,202 @@ typedef bool_t (*\fIxdrproc_t\fP) (XDR *, void *,...); .BI " xdrproc_t " elproc ); .fi .IP -²ÄÊÑŤÎÇÛÎó¤È¤½¤ì¤ËÂбþ¤¹¤ë³°Éôɽ¸½¤È¤òÊÑ´¹¤¹¤ë´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -°ú¤­¿ô +可変長の配列とそれに対応する外部表現とを変換する基本フィルター。 +引き数 .I arrp -¤ÏÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ê¡¢ +は配列へのポインターのアドレスであり、 .I sizep -¤ÏÇÛÎó¤ÎÍ×ÁÇ¿ô¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤ÎÍ×ÁÇ¿ô¤Ï +は配列の要素数のアドレスである。 +これらの要素数は .I maxsize -¤òĶ¤¨¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -°ú¤­¿ô +を超えてはならない。 +引き数 .I elsize -¤Ï³ÆÇÛÎó¤ÎÍ×ÁǤΠ+は各配列の要素の .I sizeof -¤Ç¤¢¤ê¡¢ +であり、 .I elproc -¤ÏÇÛÎóÍ×ÁǤò C ·Á¼°¤«¤é¤½¤Î³°Éôɽ¸½¤ËÊÑ´¹¤¹¤ë¤¿¤á¤Î XDR ¥Õ¥£¥ë¥¿¡¼¤Ç¤¢¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£ +は配列要素を C 形式からその外部表現に変換するための XDR フィルターである。 +このルーティンは成功した場合には 1 を返す。 +失敗した場合にはゼロを返す。 .LP .nf .BI "bool_t xdr_bool(XDR *" xdrs ", bool_t *" bp ); .fi .IP -¿¿µ¶ÃÍ(C ¤Î int)¤È¤½¤Î³°Éôɽ¸½¤È¤òÊÑ´¹¤¹¤ë´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -¥Ç¡¼¥¿¤ò¥¨¥ó¥³¡¼¥É¤¹¤ë»þ¡¢¤³¤Î¥Õ¥£¥ë¥¿¡¼¤Ï 1 ¤Þ¤¿ 0 ¤ÎÃͤòÀ¸À®¤¹¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ +真偽値(C の int)とその外部表現とを変換する基本フィルター。 +データをエンコードする時、このフィルターは 1 また 0 の値を生成する。 +このルーティンは成功した場合には 1 を返す。 +失敗した場合には 0 を返す。 .LP .nf .BI "bool_t xdr_bytes(XDR *" xdrs ", char **" sp ", unsigned int *" sizep , .BI " unsigned int " maxsize ); .fi .IP -¤¢¤ëŤµ¤Î¥Ð¥¤¥Èʸ»úÎó¤È¤½¤Î³°Éôɽ¸½¤È¤òÊÑ´¹¤¹¤ë´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -°ú¤­¿ô +ある長さのバイト文字列とその外部表現とを変換する基本フィルター。 +引き数 .I sp -¤Ïʸ»úÎó¥Ý¥¤¥ó¥¿¡¼¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£Ê¸»úÎó¤ÎŤµ¤Ï +は文字列ポインターのアドレスである。文字列の長さは .I sizep -¤Î¥¢¥É¥ì¥¹¤ËÃÖ¤¯¡£Ê¸»úÎó¤Ï +のアドレスに置く。文字列は .I maxsize -¤è¤êŤ¯¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ +より長くてはいけない。 +このルーティンは成功した場合には 1 を返す。 +失敗した場合には 0 を返す。 .LP .nf .BI "bool_t xdr_char(XDR *" xdrs ", char *" cp ); .fi .IP -C ¤Îʸ»ú(char)¤È¤½¤Î³°Éôɽ¸½¤È¤Î´Ö¤òÊÑ´¹¤¹¤ë´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£ -Ãí°Õ: ¥¨¥ó¥³¡¼¥É¤µ¤ì¤¿¥Ç¡¼¥¿¤ÏµÍ¤á¹þ¤Þ¤ì¤Æ¤ª¤é¤º¡¢¤½¤ì¤¾¤ì 4 ¥Ð¥¤¥È¤ò -Àê¤á¤ë¡£Ê¸»ú¤ÎÇÛÎó¤Î¾ì¹ç¤Ë¤Ï +C の文字(char)とその外部表現との間を変換する基本フィルター。 +このルーティンは成功した場合には 1 を返す。 +失敗した場合には 0 を返す。 +注意: エンコードされたデータは詰め込まれておらず、それぞれ 4 バイトを +占める。文字の配列の場合には .BR xdr_bytes (), .BR xdr_opaque (), .BR xdr_string () -¤Ê¤É¤ò¹Íθ¤·¤¿Êý¤¬Îɤ¤¡£ +などを考慮した方が良い。 .LP .nf .BI "void xdr_destroy(XDR *" xdrs ); .fi .IP -¤³¤Î¥Þ¥¯¥í¤Ï XDR ¥¹¥È¥ê¡¼¥à +このマクロは XDR ストリーム .I xdrs -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿Ç˲õ¥ë¡¼¥Æ¥£¥ó¤ò¸Æ¤Ó½Ð¤¹¡£ -Ç˲õ¤Ë¤ÏÄ̾¥¹¥È¥ê¡¼¥à¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿»äŪ¥Ç¡¼¥¿¹½Â¤ÂΤβòÊü¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +に関連付けられた破壊ルーティンを呼び出す。 +破壊には通常、ストリームに関連付けられた私的データ構造体の解放が含まれている。 .BR xdr_destroy () -¤Î¸Æ¤Ó½Ð¤·¤Î¸å¤Ë +の呼び出しの後に .I xdrs -¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +を使用することは未定義である。 .LP .nf .BI "bool_t xdr_double(XDR *" xdrs ", double *" dp ); .fi .IP -C ¤Î -.I ÇÜÀºÅÙ¿ô (double) -¤È¤½¤Î³°Éôɽ¸½¤È¤ÎÊÑ´¹¤ò¹Ô¤Ê¤¦´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +C の +.I 倍精度数 (double) +とその外部表現との変換を行なう基本フィルター。 +このルーティンは成功した場合は 1 を返す。 +失敗した場合は 0 を返す。 .LP .nf .BI "bool_t xdr_enum(XDR *" xdrs ", enum_t *" ep ); .fi .IP -C ¤Î +C の .I enum -(¼ÂºÝ¤Ë¤Ï int)¤È¤½¤Î³°Éôɽ¸½¤È¤ÎÊÑ´¹¤ò¹Ô¤Ê¤¦´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +(実際には int)とその外部表現との変換を行なう基本フィルター。 +このルーティンは成功した場合は 1 を返す。 +失敗した場合は 0 を返す。 .LP .nf .BI "bool_t xdr_float(XDR *" xdrs ", float *" fp ); .fi .IP -C ¤Î -.IR "ÉâÆ°¾®¿ôÅÀ¿ô (float)" -¤È¤½¤Î³°Éôɽ¸½¤È¤ÎÊÑ´¹¤ò¹Ô¤Ê¤¦´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +C の +.IR "浮動小数点数 (float)" +とその外部表現との変換を行なう基本フィルター。 +このルーティンは成功した場合は 1 を返す。 +失敗した場合は 0 を返す。 .LP .nf .BI "void xdr_free(xdrproc_t " proc ", char *" objp ); .fi .IP -ÈÆÍѲòÊü(free)¥ë¡¼¥Æ¥£¥ó¡£ºÇ½é¤Î°ú¤­¿ô¤Ï¥ª¥Ö¥¸¥§¥¯¥È¤ò²òÊü¤¹¤ë¤¿¤á¤Î -XDR ¥ë¡¼¥Æ¥£¥ó¤Ç¤¢¤ë¡£ÆóÈÖÌܤΰú¤­¿ô¤Ï¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¼«¿È¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼ -¤Ç¤¢¤ë¡£Ãí°Õ: ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ËÅϤµ¤ì¤ë¥Ý¥¤¥ó¥¿¡¼¤Ï -.I ²òÊü¤µ¤ì¤Ê¤¤ -¤¬¡¢¤³¤Î¥Ý¥¤¥ó¥¿¡¼¤Î»Ø¤¹¥Ç¡¼¥¿¤Ï(ºÆµ¢Åª¤Ë) -.IR ²òÊü¤µ¤ì¤ë ¡£ +汎用解放(free)ルーティン。最初の引き数はオブジェクトを解放するための +XDR ルーティンである。二番目の引き数はそのオブジェクト自身へのポインター +である。注意: このルーティンに渡されるポインターは +.I 解放されない +が、このポインターの指すデータは(再帰的に) +.IR 解放される 。 .LP .nf .BI "unsigned int xdr_getpos(XDR *" xdrs ); .fi .IP -¤³¤Î¥Þ¥¯¥í¤Ï XDR ¥¹¥È¥ê¡¼¥à +このマクロは XDR ストリーム .I xdrs -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿°ÌÃÖ¼èÆÀ¥ë¡¼¥Æ¥£¥ó¤ò¸Æ¤Ó½Ð¤¹¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï XDR ¥Ð¥¤¥È¡¦¥¹¥È¥ê¡¼¥à¤Î°ÌÃÖ¤ò»Ø¼¨¤¹¤ëÉä¹æ̵¤·À°¿ô¤òÊÖ¤¹¡£ -XDR ¥¹¥È¥ê¡¼¥à¤Îµ¡Ç½¤È¤·¤Æ¤³¤Î¿ôÃͤÇñ½ã¤Ê»»½Ñºî¶È¤¬¤Ç¤­¤ë¤³¤È¤¬ -´üÂÔ¤µ¤ì¤Æ¤ë¤¤¤ë¡£¤·¤«¤·¤Ê¤¬¤é -XDR ¥¹¥È¥ê¡¼¥à¤Î¼ÂÂΤϤ³¤ì¤òÊݾڤ¹¤ëɬÍפϤʤ¤¡£ +に関連付けられた位置取得ルーティンを呼び出す。 +このルーティンは XDR バイト・ストリームの位置を指示する符号無し整数を返す。 +XDR ストリームの機能としてこの数値で単純な算術作業ができることが +期待されてるいる。しかしながら +XDR ストリームの実体はこれを保証する必要はない。 .LP .nf .BI "long *xdr_inline(XDR *" xdrs ", int " len ); .fi .IP -¤³¤Î¥Þ¥¯¥í¤Ï XDR ¥¹¥È¥ê¡¼¥à +このマクロは XDR ストリーム .I xdrs -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿ÆâÉô(inline)¥ë¡¼¥Æ¥£¥ó¤ò¸Æ¤Ó½Ð¤¹¡£ -¥ë¡¼¥Æ¥£¥ó¤Ï¥¹¥È¥ê¡¼¥à¤Î¥Ð¥Ã¥Õ¥¡¡¼¤ÎϢ³¤¹¤ëÃÇÊҤؤΥݥ¤¥ó¥¿¡¼¤òÊÖ¤¹¡£ +に関連付けられた内部(inline)ルーティンを呼び出す。 +ルーティンはストリームのバッファーの連続する断片へのポインターを返す。 .I len -¤ÏÍ׵᤹¤ë¥Ð¥Ã¥Õ¥¡¡¼¤Î¥Ð¥¤¥ÈŤǤ¢¤ë¡£ -Ãí°Õ: ¥Ý¥¤¥ó¥¿¡¼¤Ï +は要求するバッファーのバイト長である。 +注意: ポインターは .I "long *" -¤Ë¥­¥ã¥¹¥È¤µ¤ì¤ë¡£ +にキャストされる。 .IP -·Ù¹ð: +警告: .BR xdr_inline () -¤Ï¥Ð¥Ã¥Õ¥¡¡¼¤ÎϢ³¤¹¤ëÃÇÊÒ¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï -NULL (0)¤òÊÖ¤¹¤«¤â¤·¤ì¤Ê¤¤¡£ -¤É¤Î¾ì¹ç¤â¤½¤ÎÆ°ºî¤Ï¥¹¥È¥ê¡¼¥à¤Î¼ÂÂΤˤè¤Ã¤ÆÊѲ½¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤ì¤Ï¸úΨ²½¤Î¤¿¤á¤Ë¸ºß¤·¤Æ¤¤¤ë¡£ +はバッファーの連続する断片を割り当てることができなかった場合には +NULL (0)を返すかもしれない。 +どの場合もその動作はストリームの実体によって変化するかもしれない。 +これは効率化のために存在している。 .LP .nf .BI "bool_t xdr_int(XDR *" xdrs ", int *" ip ); .fi .IP -C ¤ÎÀ°¿ô(int)¤È¤½¤Î³°Éôɽ¸½¤È¤òÊÑ´¹¤¹¤ë¤¿¤á¤Î´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +C の整数(int)とその外部表現とを変換するための基本フィルター。 +このルーティンは成功した場合は 1 を返す。 +失敗した場合はゼロを返す。 .LP .nf .BI "bool_t xdr_long(XDR *" xdrs ", long *" lp ); .fi .IP -C ¤Î +C の .I long -À°¿ô¤È¤½¤Î¤½¤Î³°Éôɽ¸½¤È¤òÊÑ´¹¤¹¤ë¤¿¤á¤Î´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +整数とそのその外部表現とを変換するための基本フィルター。 +このルーティンは成功した場合は 1 を返す。 +失敗した場合はゼロを返す。 .LP .nf .BI "void xdrmem_create(XDR *" xdrs ", char *" addr ", unsigned int " size , .BI " enum xdr_op " op ); .fi .IP -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï +このルーティンは .I xdrs -¤Ë¤è¤Ã¤Æ»Ø¤µ¤ì¤Æ¤¤¤ë XDR ¥¹¥È¥ê¡¼¥à¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò½é´ü²½¤¹¤ë¡£ -¥¹¥È¥ê¡¼¥à¤Î¥Ç¡¼¥¿¤Ï +によって指されている XDR ストリーム・オブジェクトを初期化する。 +ストリームのデータは .I addr -°ÌÃ֤ˤ¢¤ë¥á¥â¥ê¡¼¤Î²ô¤«¤éÆɤ߽ñ¤­¤µ¤ì¤ë¡£ -¤½¤ÎŤµ¤Ï¥Ð¥¤¥Èñ°Ì¤Ç +位置にあるメモリーの塊から読み書きされる。 +その長さはバイト単位で .I size -Ķ¤¨¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ +超えてはいけない。 .I op -¤Ï XDR ¥¹¥È¥ê¡¼¥à¤ÎÊÑ´¹Êý¸þ¤ò·èÄꤹ¤ë +は XDR ストリームの変換方向を決定する .RB ( XDR_ENCODE , .BR XDR_DECODE , .B XDR_FREE -¤Î¤É¤ì¤«)¡£ +のどれか)。 .LP .nf .BI "bool_t xdr_opaque(XDR *" xdrs ", char *" cp ", unsigned int " cnt ); .fi .IP -¸ÇÄêŤÎÉÔÌÀ¥Ç¡¼¥¿¤È¤½¤Î³°Éôɽ¸½¤È¤ÎÊÑ´¹¤ò¹Ô¤Ê¤¦´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -°ú¤­¿ô +固定長の不明データとその外部表現との変換を行なう基本フィルター。 +引き数 .I cp -¤ÏÉÔÌÀ¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ê +は不明オブジェクトのアドレスであり .I cnt -¤Ï¤½¤Î¥Ð¥¤¥Èñ°Ì¤ÎÂ礭¤µ¤Ç¤¢¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +はそのバイト単位の大きさである。 +このルーティンは成功した場合は 1 を返す。 +失敗した場合はゼロを返す。 .LP .nf .BI "bool_t xdr_pointer(XDR *" xdrs ", char **" objpp , @@ -245,12 +245,12 @@ C .fi .IP .BR xdr_reference () -¤ÈƱÍͤǤ¢¤ë¤¬¡¢¤³¤ì¤¬ NULL ¥Ý¥¤¥ó¥¿¡¼¤òÈֹ沽¤¹¤ë¤Î¤ËÂФ·¤Æ +と同様であるが、これが NULL ポインターを番号化するのに対して .BR xdr_reference () -¤Ï¤½¤¦¤·¤Ê¤¤ÅÀ¤¬°Û¤Ê¤Ã¤Æ¤¤¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢ +はそうしない点が異なっている。これにより、 .BR xdr_pointer () -¤ÏÆóʬÌÚ¤äÏ¢·ë¥ê¥¹¥È¤Î¤è¤¦¤ÊºÆµ¢Åª¤Ê¥Ç¡¼¥¿¹½Â¤ÂΤò -ɽ¸½¤Ç¤­¤ë¡£ +は二分木や連結リストのような再帰的なデータ構造体を +表現できる。 .LP .nf .BI "void xdrrec_create(XDR *" xdrs ", unsigned int " sendsize , @@ -259,202 +259,202 @@ C .BI " int (*" writeit ") (char *, char *, int));" .fi .IP -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï +このルーティンは .I xdrs -¤Ç»Ø¤µ¤ì¤¿ XDR ¥¹¥È¥ê¡¼¥à¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò½é´ü²½¤¹¤ë¡£ -¥¹¥È¥ê¡¼¥à¤Î¥Ç¡¼¥¿¤ÏÂ礭¤µ +で指された XDR ストリーム・オブジェクトを初期化する。 +ストリームのデータは大きさ .I sendsize -¤Î¥Ð¥Ã¥Õ¥¡¤Ø½ñ¤­¹þ¤Þ¤ì¤ë¡£ +のバッファへ書き込まれる。 .I sendsize -¤ò¥¼¥í¤Ë¤¹¤ë¤È¡¢¥·¥¹¥Æ¥à¤ËŬÀڤʥǥե©¥ë¥È¤ò»ÈÍѤ¹¤ë¤è¤¦¤Ë»Ø¼¨¤¹¤ë¡£ -¥¹¥È¥ê¡¼¥à¤Î¥Ç¡¼¥¿¤ÏÂ礭¤µ +をゼロにすると、システムに適切なデフォルトを使用するように指示する。 +ストリームのデータは大きさ .I recvsize -¤Î¥Ð¥Ã¥Õ¥¡¤«¤éÆɤ߹þ¤Þ¤ì¤ë¡£¤³¤ì¤â¥¼¥í¤òÅϤ¹¤³¤È¤ÇŬÀڤʥǥե©¥ë¥È¤Ë -ÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥¹¥È¥ê¡¼¥à¤Î½ÐÎϥХåե¡¤¬°ìÇդξì¹ç¤Ï +のバッファから読み込まれる。これもゼロを渡すことで適切なデフォルトに +設定することができる。 +ストリームの出力バッファが一杯の場合は .I writeit -¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£Æ±Íͤ˥¹¥È¥ê¡¼¥àÆþÎϥХåե¡¤¬¶õ¤Î¾ì¹ç¤Ë¤Ï +が呼び出される。同様にストリーム入力バッファが空の場合には .I readit -¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£¤³¤ì¤é¤ÎÆó¤Ä¤Î¥ë¡¼¥Æ¥£¥ó¤ÎÆ°ºî¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î +が呼び出される。これらの二つのルーティンの動作はシステムコールの .BR read (2) -¤ä +や .BR write (2) -¤È»÷¤Æ¤¤¤ë¤¬¡¢Á°¼Ô¤Î¥ë¡¼¥Æ¥£¥ó¤ÏºÇ½é¤Î°ú¤­¿ô¤È¤·¤Æ +と似ているが、前者のルーティンは最初の引き数として .I handle -¤¬ÅϤµ¤ì¤ëÅÀ¤Ç°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ -Ãí°Õ: XDR ¥¹¥È¥ê¡¼¥à¤Î +が渡される点で異なっている。 +注意: XDR ストリームの .I op -¤Ï¸Æ¤Ó½Ð¤·Â¦¤ÇÀßÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は呼び出し側で設定しなければならない。 .IP -·Ù¹ð: ¤³¤Î XDR ¥¹¥È¥ê¡¼¥à¤ÏÃæ´Ö¥ì¥³¡¼¥É¡¦¥¹¥È¥ê¡¼¥à¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¡£ -¥ì¥³¡¼¥É¶­³¦¤Î¾ðÊó¤òÄ󶡤¹¤ë¤¿¤á¤Ë¥¹¥È¥ê¡¼¥à¤Ë¤Ï;ʬ¤Ê¥Ð¥¤¥È¤¬Â¸ºß¤¹¤ë¡£ +警告: この XDR ストリームは中間レコード・ストリームを実装している。 +レコード境界の情報を提供するためにストリームには余分なバイトが存在する。 .LP .nf .BI "bool_t xdrrec_endofrecord(XDR *" xdrs ", int " sendnow ); .fi .IP -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï +このルーティンは .BR xdrrec_create () -¤Ë¤è¤Ã¤ÆºîÀ®¤µ¤ì¤¿¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ¤Î¤ß¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ -½ÐÎϥХåե¡¤Î¥Ç¡¼¥¿¤Ï´°Á´¤Ê¥ì¥³¡¼¥É¤È¤·¤Æ°õ¤µ¤ì¡¢ +によって作成されたストリームに対してのみ呼び出すことができる。 +出力バッファのデータは完全なレコードとして印され、 .I sendnow -¤¬¥¼¥í¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï½ÐÎϥХåե¡¤Ï½ñ¤­½Ð¤µ¤ì¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +がゼロでない場合には出力バッファは書き出される。 +このルーティンは成功した場合は 1 を返す。失敗した場合はゼロを返す。 .LP .nf .BI "bool_t xdrrec_eof(XDR *" xdrs ); .fi .IP -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï +このルーティンは .BR xdrrec_create () -¤Ë¤è¤Ã¤ÆºîÀ®¤µ¤ì¤¿¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ¤Î¤ß¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ -¥¹¥È¥ê¡¼¥à¤Î¸½ºß¤Î¥ì¥³¡¼¥É¤Î»Ä¤ê¤ò¾ÃÈñ¤·¤¿¸å¤Ë¡¢ -¥¹¥È¥ê¡¼¥à¤ËÆþÎϤ¬»Ä¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï 1 ¤òÊÖ¤¹¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +によって作成されたストリームに対してのみ呼び出すことができる。 +ストリームの現在のレコードの残りを消費した後に、 +ストリームに入力が残っていない場合には 1 を返す。 +それ以外の場合はゼロを返す。 .LP .nf .BI "bool_t xdrrec_skiprecord(XDR *" xdrs ); .fi .IP -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï +このルーティンは .BR xdrrec_create () -¤Ë¤è¤Ã¤ÆºîÀ®¤µ¤ì¤¿¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ¤Î¤ß¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ -XDR ¤Î¼ÂÁõ¤Ë¤½¤Î¥¹¥È¥ê¡¼¥à¤ÎÆþÎϥХåե¡¡¼¤Î¸½ºß¤Î¥ì¥³¡¼¥É¤Î»Ä¤ê¤ò -¼Î¤Æ¤ë¤è¤¦¤ËÅÁ¤¨¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +によって作成されたストリームに対してのみ呼び出すことができる。 +XDR の実装にそのストリームの入力バッファーの現在のレコードの残りを +捨てるように伝える。このルーティンは成功した場合は 1 を返す。 +失敗した場合はゼロを返す。 .LP .nf .BI "bool_t xdr_reference(XDR *" xdrs ", char **" pp ", unsigned int " size , .BI " xdrproc_t " proc ); .fi .IP -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¡¼ÄÉÀפòÄ󶡤¹¤ë´ðËܥ롼¥Æ¥£¥ó¡£ -°ú¤­¿ô +構造体へのポインター追跡を提供する基本ルーティン。 +引き数 .I pp -¤Ï¥Ý¥¤¥ó¥¿¡¼¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +はポインターのアドレスである。 .I size -¤Ï +は .I *pp -¤¬»Ø¤·¤Æ¤¤¤ë¹½Â¤ÂΤΠ+が指している構造体の .I sizeof -¤Ç¤¢¤ë¡£ +である。 .I proc -¤Ï¤½¤Î¹½Â¤ÂΤΠC ·Á¼°¤È³°Éôɽ¸½¤È¤ÎÊÑ´¹¤ò¹Ô¤Ê¤¦ XDR ¥×¥í¥·¥¸¥ã¤Ç¤¢¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +はその構造体の C 形式と外部表現との変換を行なう XDR プロシジャである。 +このルーティンは成功した場合 1 を返す。 +失敗した場合はゼロを返す。 .IP -·Ù¹ð: ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï NULL ¥Ý¥¤¥ó¥¿¡¼¤òÍý²ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£¤«¤ï¤ê¤Ë +警告: このルーティンは NULL ポインターを理解することができない。かわりに .BR xdr_pointer () -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +を使用すること。 .LP .nf .BI "xdr_setpos(XDR *" xdrs ", unsigned int " pos ); .fi .IP -¤³¤Î¥Þ¥¯¥í¤Ï XDR ¥¹¥È¥ê¡¼¥à +このマクロは XDR ストリーム .I xdrs -¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿°ÌÃÖÀßÄê¥ë¡¼¥Æ¥£¥ó¤ò¸Æ¤Ó½Ð¤¹¡£°ú¤­¿ô +に関連付けられた位置設定ルーティンを呼び出す。引き数 .I pos -¤Ï +は .BR xdr_getpos () -¤Ë¤è¤Ã¤Æ¼èÆÀ¤µ¤ì¤ë°ÌÃÖ¿ôÃͤǤ¢¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï XDR ¥¹¥È¥ê¡¼¥à¤Î°ÌÃÖ¤ÎÊѹ¹¤¬¤Ç¤­¤¿¾ì¹ç¤Ë¤Ï 1 ¤òÊÖ¤¹¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +によって取得される位置数値である。 +このルーティンは XDR ストリームの位置の変更ができた場合には 1 を返す。 +それ以外の場合は 0 を返す。 .IP -·Ù¹ð: ¤¢¤ë¼ï¤Î XDR ¥¹¥È¥ê¡¼¥à¤Î¾ì¹ç¤Ï°ÌÃÖ¤ÎÊѹ¹¤ò¹Ô¤Ê¤¦¤³¤È¤¬º¤Æñ¤Ç¤¢¤ë¡£ -¤½¤ì¤Ç¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¤¢¤ë¼ï¤Î¥¹¥È¥ê¡¼¥à¤Î¾ì¹ç¤Ë¤ÏÀ®¸ù¤·¡¢Ê̤μïÎà¤Î -¾ì¹ç¤Ë¤Ï¼ºÇÔ¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +警告: ある種の XDR ストリームの場合は位置の変更を行なうことが困難である。 +それでこのルーティンはある種のストリームの場合には成功し、別の種類の +場合には失敗するかもしれない。 .LP .nf .BI "bool_t xdr_short(XDR *" xdrs ", short *" sp ); .fi .IP -C ¤Î +C の .I short -À°¿ô¤È¤½¤Î³°Éôɽ¸½¤È¤ÎÊÑ´¹¤ò¹Ô¤Ê¤¦´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤¹¤ë¤È 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +整数とその外部表現との変換を行なう基本フィルター。 +このルーティンは成功すると 1 を返す。 +失敗した場合はゼロを返す。 .LP .nf .BI "void xdrstdio_create(XDR *" xdrs ", FILE *" file ", enum xdr_op " op ); .fi .IP -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï +このルーティンは .I xdrs -¤Ç»Ø¤µ¤ì¤¿ XDR ¥¹¥È¥ê¡¼¥à¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò½é´ü²½¤¹¤ë¡£ -XDR ¥¹¥È¥ê¡¼¥à¤ËÆɤ߽ñ¤­¤ì¤¿¥Ç¡¼¥¿¤Ï +で指された XDR ストリーム・オブジェクトを初期化する。 +XDR ストリームに読み書きれたデータは .I stdio -¥¹¥È¥ê¡¼¥à +ストリーム .I file -¤¬»ÈÍѤµ¤ì¤ë¡£ +が使用される。 .I op -°ú¤­¿ô¤Ï XDR ¥¹¥È¥ê¡¼¥à¤ÎÊÑ´¹Êý¸þ¤ò·èÄꤹ¤ë +引き数は XDR ストリームの変換方向を決定する .RB ( XDR_ENCODE , .BR XDR_DECODE , .B XDR_FREE -¤Î¤É¤ì¤«)¡£ +のどれか)。 .IP -·Ù¹ð: ¤³¤Î¤è¤¦¤Ê XDR ¥¹¥È¥ê¡¼¥à¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿Ç˲õ¥ë¡¼¥Æ¥£¥ó¤Ï +警告: このような XDR ストリームに関連付けられた破壊ルーティンは .I file -¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ +ストリームに対して .BR fflush (3) -¤ò¸Æ¤Ó½Ð¤¹¤¬ +を呼び出すが .BR fclose (3) -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ï¤Ê¤¤¡£ +を呼び出すことはない。 .LP .nf .BI "bool_t xdr_string(XDR *" xdrs ", char **" sp ", unsigned int " maxsize ); .fi .IP -C ¤Îʸ»úÎó¤È¤½¤ì¤ËÂбþ¤¹¤ë³°Éôɽ¸½¤È¤òÊÑ´¹¤¹¤ë¤¿¤á¤Î´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -ʸ»úÎó¤Ï +C の文字列とそれに対応する外部表現とを変換するための基本フィルター。 +文字列は .I maxsize -¤è¤êŤ¯¤Ï¤Ç¤­¤Ê¤¤¡£ -Ãí°Õ: +より長くはできない。 +注意: .I sp -¤Ïʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +は文字列へのポインターのアドレスである。 +このルーティンは成功した場合は 1 を返す。 +失敗した場合はゼロを返す。 .LP .nf .BI "bool_t xdr_u_char(XDR *" xdrs ", unsigned char *" ucp ); .fi .IP -C ¤Î -.I Éä¹æ̵¤·Ê¸»ú (unsigned char) -¤È¤½¤Î³°Éôɽ¸½¤È¤òÊÑ´¹¤¹¤ë´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +C の +.I 符号無し文字 (unsigned char) +とその外部表現とを変換する基本フィルター。 +このルーティンは成功した場合は 1 を返す。 +失敗した場合はゼロを返す。 .LP .nf .BI "bool_t xdr_u_int(XDR *" xdrs ", unsigned *" up ); .fi .IP -C ¤Î -.I Éä¹æ̵¤·À°¿ô (unsigned) -¤È¤½¤Î³°Éôɽ¸½¤òÊÑ´¹¤¹¤ë¤¿¤á¤Î´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +C の +.I 符号無し整数 (unsigned) +とその外部表現を変換するための基本フィルター。 +このルーティンは成功した場合は 1 を返す。 +失敗した場合はゼロを返す。 .LP .nf .BI "bool_t xdr_u_long(XDR *" xdrs ", unsigned long *" ulp ); .fi .IP -C ¤Î +C の .I "unsigned long" -À°¿ô¤È¤½¤Î³°Éôɽ¸½¤òÊÑ´¹¤¹¤ë¤¿¤á¤Î´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +整数とその外部表現を変換するための基本フィルター。 +このルーティンは成功した場合は 1 を返す。 +失敗した場合はゼロを返す。 .LP .nf .BI "bool_t xdr_u_short(XDR *" xdrs ", unsigned short *" usp ); .fi .IP -C ¤Î +C の .I "unsigned short" -À°¿ô¤È¤½¤Î³°Éôɽ¸½¤òÊÑ´¹¤¹¤ë¤¿¤á¤Î´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +整数とその外部表現を変換するための基本フィルター。 +このルーティンは成功した場合は 1 を返す。 +失敗した場合はゼロを返す。 .LP .nf .BI "bool_t xdr_union(XDR *" xdrs ", int *" dscmp ", char *" unp , @@ -462,91 +462,91 @@ C .BI " xdrproc_t " defaultarm "); /* may equal NULL */" .fi .IP -ʬÊ̲Äǽ¤Ê C ¤Î -.I "¶¦ÍÑÂÎ (union)" -¤È¤½¤Î³°Éô·Á¼°¤È¤òÊÑ´¹¤¹¤ë´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -ºÇ½é¤Ë +分別可能な C の +.I "共用体 (union)" +とその外部形式とを変換する基本フィルター。 +最初に .I dscmp -¤È¤·¤ÆÍ¿¤¨¤é¤ì¤¿¶¦ÍÑÂΤÎʬÊÌÍ×ÁǤ¬ÊÑ´¹¤µ¤ì¤ë¡£ -¤³¤ÎʬÊÌÍ×ÁǤϾï¤Ë +として与えられた共用体の分別要素が変換される。 +この分別要素は常に .I enum_t -¤Ç¤¢¤ë¡£ -¼¡¤Ë +である。 +次に .I unp -¤Î°ÌÃ֤ζ¦ÍÑÂΤ¬ÊÑ´¹¤µ¤ì¤ë¡£°ú¤­¿ô +の位置の共用体が変換される。引き数 .I choices -¤Ï +は .BR xdr_discrim () -¹½Â¤ÂΤÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£³Æ¹½Â¤ÂÎ¤Ï +構造体の配列へのポインターである。各構造体は .RI [ value , proc ] -¤Î½ç½øÉÕ¤­¥Ú¥¢¤ò³ÊǼ¤·¤Æ¤¤¤ë¡£ -¤â¤·¶¦ÍÑÂΤÎʬÊÌÍ×ÁǤ¬´ØÏ¢ÉÕ¤±¤é¤ì¤¿ +の順序付きペアを格納している。 +もし共用体の分別要素が関連付けられた .I value -¤ÈÅù¤·¤¤¾ì¹ç¤Ë¤Ï¡¢¶¦ÍÑÂΤòÊÑ´¹¤¹¤ë¤¿¤á¤Ë +と等しい場合には、共用体を変換するために .I proc -¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ +が呼び出される。 .BR xdr_discrim () -¹½Â¤ÂΤÎÇÛÎó¤ÎºÇ¸å¤Ï¡¢¥ë¡¼¥Æ¥£¥ó¤È¤·¤Æ +構造体の配列の最後は、ルーティンとして .SM NULL -¤ò»ØÄꤹ¤ë¤³¤È¤Ç¼¨¤µ¤ì¤ë¡£ -ʬÊÌÍ×ÁǤ¬ +を指定することで示される。 +分別要素が .I choices -ÇÛÎó¤ÎÃæ¤Ë¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ +配列の中に見つからなかった場合、 .I defaultarm -¤¬ (NULL ¤Ç¤Ê¤±¤ì¤Ð) ¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ -À®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +が (NULL でなければ) 呼び出される。 +成功した場合は 1 を返す。失敗した場合はゼロを返す。 .LP .nf .BI "bool_t xdr_vector(XDR *" xdrs ", char *" arrp ", unsigned int " size , .BI " unsigned int " elsize ", xdrproc_t " elproc ); .fi .IP -¸ÇÄêŤÎÇÛÎó¤È¤½¤ì¤é¤¬Âбþ¤¹¤ë³°Éôɽ¸½¤È¤òÊÑ´¹¤¹¤ë´ðËÜ¥Õ¥£¥ë¥¿¡¼¡£ -°ú¤­¿ô +固定長の配列とそれらが対応する外部表現とを変換する基本フィルター。 +引き数 .I arrp -¤ÏÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£°ìÊý¤Ç +は配列へのポインターのアドレスである。一方で .I size -¤ÏÇÛÎó¤ÎÍ×ÁÇ¿ô¤½¤Î¤â¤Î¤Ç¤¢¤ë¡£°ú¤­¿ô +は配列の要素数そのものである。引き数 .I elsize -¤ÏÇÛÎó¤Î³ÆÍ×ÁǤΠ+は配列の各要素の .I sizeof -¤Ç¡¢ +で、 .I elproc -¤ÏÇÛÎó¤ÎÍ×ÁǤò C ·Á¼°¤«¤é¤½¤Î³°Éôɽ¸½¤Ø¤ÈÊÑ´¹¤¹¤ë XDR ¥Õ¥£¥ë¥¿¡¼¤Ç¤¢¤ë¡£ -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç 1 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ +は配列の要素を C 形式からその外部表現へと変換する XDR フィルターである。 +このルーティンは成功した場合 1 を返す。 +失敗した場合はゼロを返す。 .LP .nf .BI "bool_t xdr_void(void);" .fi .IP -¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¾ï¤Ë 1 ¤òÊÖ¤¹¡£ -¤³¤ì¤Ï²¿¤â¹Ô¤Ê¤ï¤Ê¤¤¤¬¡¢´Ø¿ô°ú¤­¿ô¤¬É¬Í×¤Ê -RPC ¥ë¡¼¥Æ¥£¥ó¤ËÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¡£ +このルーティンは常に 1 を返す。 +これは何も行なわないが、関数引き数が必要な +RPC ルーティンに渡すことができる。 .LP .nf .BI "bool_t xdr_wrapstring(XDR *" xdrs ", char **" sp ); .fi .IP .B "xdr_string(xdrs, sp, \s-1MAXUN.UNSIGNED\s0 );" -¤ò¸Æ¤Ó½Ð¤¹´ðËܥ롼¥Æ¥£¥ó¡£ -¤³¤³¤Ç +を呼び出す基本ルーティン。 +ここで .B .SM MAXUN.UNSIGNED -¤ÏÉä¹æ̵¤·À°¿ô(unsigned int)¤ÎºÇÂçÃͤǤ¢¤ë¡£ +は符号無し整数(unsigned int)の最大値である。 .BR xdr_wrapstring () -¤Ï¡¢ +は、 .SM RPC -¥Ñ¥Ã¥±¡¼¥¸¤ÏÆó¤Ä¤Î +パッケージは二つの .SM XDR -¥ë¡¼¥Æ¥£¥ó¤ÎºÇÂçÃͤò°ú¤­¿ô¤È¤·¤ÆÅϤ¹¤¿¤áÊØÍø¤Ç¤¢¤ë¡£ +ルーティンの最大値を引き数として渡すため便利である。 .BR xdr_string () -¤ÏºÇ¤âÉÑÈˤËÍøÍѤµ¤ì¤ë´ðËܥ롼¥Æ¥£¥ó¤Ç¤¢¤ë¤¬»°¤Ä¤òÍ׵᤹¤ë¡£ -À®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡¢¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£ -.SH ´ØÏ¢¹àÌÜ +は最も頻繁に利用される基本ルーティンであるが三つを要求する。 +成功した場合は 1 を返す、失敗した場合はゼロを返す。 +.SH 関連項目 .BR rpc (3) .LP -°Ê²¼¤Î¥Þ¥Ë¥å¥¢¥ë: +以下のマニュアル: .RS eXternal Data Representation Standard: Protocol Specification .br diff --git a/release/man3/y0.3 b/release/man3/y0.3 index 650cbbaf..bf1f7e01 100644 --- a/release/man3/y0.3 +++ b/release/man3/y0.3 @@ -36,10 +36,10 @@ .\" Translated 2008-09-19, Akihiro MOTOKI , LDP v3.07 .\" .TH Y0 3 2008-08-10 "" "Linux Programmer's Manual" -.SH ̾Á° +.SH 名前 y0, y0f, y0l, y1, y1f, y1l, yn, ynf, ynl \- -ÂèÆó¼ï¥Ù¥Ã¥»¥ë´Ø¿ô -.SH ½ñ¼° +第二種ベッセル関数 +.SH 書式 .nf .B #include .sp @@ -62,12 +62,12 @@ y0, y0f, y0l, y1, y1f, y1l, yn, ynf, ynl \- .BI "long double ynl(int " n ", long double " x ); .fi .sp -\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£ +\fI\-lm\fP でリンクする。 .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .in .sp .ad l @@ -89,147 +89,147 @@ _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 600 .\" Also seems to work: -std=c99 -D_XOPEN_SOURCE .RE .ad b -.SH ÀâÌÀ +.SH 説明 .PP -´Ø¿ô +関数 .BR y0 () -¤È +と .BR y1 () -¤Ï¤½¤ì¤¾¤ì \fIx\fP ¤Î 0 ¼¡¡¢1 ¼¡¤Î -ÂèÆó¼ï¥Ù¥Ã¥»¥ë´Ø¿ô¤ÎÃͤòÊÖ¤¹¡£ -´Ø¿ô +はそれぞれ \fIx\fP の 0 次、1 次の +第二種ベッセル関数の値を返す。 +関数 .BR yn () -¤Ï \fIx\fP ¤Î \fIn\fP ¼¡¤Î -ÂèÆó¼ï¥Ù¥Ã¥»¥ë´Ø¿ô¤ÎÃͤòÊÖ¤¹¡£ +は \fIx\fP の \fIn\fP 次の +第二種ベッセル関数の値を返す。 .PP -\fIx\fP ¤ÏÀµ¤ÎÃͤǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +\fIx\fP は正の値でなければならない。 .PP .BR y0f () -·²¤Î´Ø¿ô¡¢ +群の関数、 .BR y0l () -·²¤Î´Ø¿ô¤Ï¡¢¤½¤ì¤¾¤ì +群の関数は、それぞれ .I float -·¿¡¢ +型、 .I "long double" -·¿¤ÎÊÖ¤êÃͤòÊÖ¤¹¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +型の返り値を返す。 +.SH 返り値 +成功すると、これらの関数は .I x -¤ËÂФ¹¤ëÂèÆó¼ï¥Ù¥Ã¥»¥ë´Ø¿ô¤ÎÃͤòÊÖ¤¹¡£ +に対する第二種ベッセル関数の値を返す。 .I x -¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£ +が NaN の場合、NaN が返される。 .I x -¤¬Éé¤Î¾ì¹ç¡¢Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +が負の場合、領域エラー (domain error) が発生し、 +各関数はそれぞれ .RB - HUGE_VAL , .RB - HUGE_VALF , .RB - HUGE_VALL -¤òÊÖ¤¹ (POSIX.1-2001 ¤Ç¤Ï¤³¤Î¾ì¹ç¤Ë NaN ¤òÊÖ¤¹¤³¤È¤âǧ¤á¤Æ¤¤¤ë)¡£ +を返す (POSIX.1-2001 ではこの場合に NaN を返すことも認めている)。 .I x -¤¬ 0.0 ¤Î¾ì¹ç¡¢¶Ë¥¨¥é¡¼ (pole error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +が 0.0 の場合、極エラー (pole error) が発生し、 +各関数はそれぞれ .RB - HUGE_VAL , .RB - HUGE_VALF , .RB - HUGE_VALL -¤òÊÖ¤¹¡£ +を返す。 -·ë²Ì¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ -ÈÏ°Ï¥¨¥é¡¼ (range error) ¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï 0.0 ¤òÊÖ¤¹¡£ +結果がアンダーフローする場合、 +範囲エラー (range error) が発生し、 +各関数は 0.0 を返す。 -·ë²Ì¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¾ì¹ç¡¢ÈÏ°Ï¥¨¥é¡¼¤¬È¯À¸¤·¡¢ -³Æ´Ø¿ô¤Ï¤½¤ì¤¾¤ì +結果がオーバーフローする場合、範囲エラーが発生し、 +各関数はそれぞれ .RB - HUGE_VAL , .RB - HUGE_VALF , .RB - HUGE_VALL -¤òÊÖ¤¹ (POSIX.1-2001 ¤Ç¤Ï¤³¤Î¾ì¹ç¤Ë 0.0 ¤òÊÖ¤¹¤³¤È¤âǧ¤á¤Æ¤¤¤ë)¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï +を返す (POSIX.1-2001 ではこの場合に 0.0 を返すことも認めている)。 +.SH エラー +これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は .BR math_error (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +以下のエラーが発生する可能性がある。 .TP -Îΰ襨¥é¡¼: \fIx\fP ¤¬Éé +領域エラー: \fIx\fP が負 .I errno -¤Ë +に .B EDOM -¤¬ÀßÄꤵ¤ì¤ë¡£ -ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³° +が設定される。 +不正 (invalid) 浮動小数点例外 .RB ( FE_INVALID ) -¤¬¾å¤¬¤ë¡£ +が上がる。 .TP -¶Ë¥¨¥é¡¼: \fIx\fP ¤¬ 0.0 +極エラー: \fIx\fP が 0.0 .\" Before POSIX.1-2001 TC2, this was (inconsistently) specified .\" as a range error. .\" FIXME . y0(0.0) gives EDOM .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë (¡Ö¥Ð¥°¡×¤ÎÀá¤ò»²¾È¤Î¤³¤È)¡£ -¤³¤Î¥¨¥é¡¼¤Î¾ì¹ç¡¢ +が設定される (「バグ」の節を参照のこと)。 +このエラーの場合、 .BR fetestexcept (3) -¤Ï +は .B FE_DIVBYZERO -Îã³°¤òÊÖ¤µ¤Ê¤¤¡£ +例外を返さない。 .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6808 .TP -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤Î¥¢¥ó¥À¡¼¥Õ¥í¡¼ +範囲エラー: 結果のアンダーフロー .\" e.g., y0(1e33) on glibc 2.8/x86-32 .I errno -¤Ë +に .B ERANGE -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 .\" An underflow floating-point exception .\" .RB ( FE_UNDERFLOW ) .\" is raised. .\" FIXME . Is it intentional that these functions do not use FE_*? .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6806 -¤³¤Î¥¨¥é¡¼¤Î¾ì¹ç¡¢ +このエラーの場合、 .BR fetestexcept (3) -¤Ï +は .B FE_UNDERFLOW -Îã³°¤òÊÖ¤µ¤Ê¤¤¡£ +例外を返さない。 .TP -ÈÏ°Ï¥¨¥é¡¼: ·ë²Ì¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ +範囲エラー: 結果のオーバーフロー .\" e.g., yn(10, 1e-40) on glibc 2.8/x86-32 .\" .I errno .\" is set to .\" .BR ERANGE . -¤³¤Î¾ì¹ç¡¢ +この場合、 .I errno -¤ÏÀßÄꤵ¤ì¤Ê¤¤¡£ +は設定されない。 .\" FIXME . Is it intentional that errno is not set? .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6808 -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÉâÆ°¾®¿ôÅÀÎã³° +オーバーフロー浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ -.SH ½àµò +が上がる。 +.SH 準拠 .I double -·¿¤ÎÃͤòÊÖ¤¹´Ø¿ô¤Ï¡¢SVr4, 4.3BSD, POSIX.1-2001 -¤Ë½àµò¤¹¤ë¡£ -¤½¤ì°Ê³°¤ÏÈóɸ½à¤Î´Ø¿ô¤Ç¡¢BSD ¤Ë¤â¸ºß¤¹¤ë¡£ -.SH ¥Ð¥° -¶Ë¥¨¥é¡¼¤Î¾ì¹ç¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï +型の値を返す関数は、SVr4, 4.3BSD, POSIX.1-2001 +に準拠する。 +それ以外は非標準の関数で、BSD にも存在する。 +.SH バグ +極エラーの場合、これらの関数は .I errno -¤Ë +に .B EDOM -¤òÀßÄꤹ¤ë¤¬¡¢ -POSIX.1-2004 ¤Ç¤Ï +を設定するが、 +POSIX.1-2004 では .B ERANGE -¤òÀßÄꤹ¤ë¤³¤È¤¬Í׵ᤵ¤ì¤Æ¤¤¤ë¡£ +を設定することが要求されている。 .\" FIXME . .\" Bug raised: http://sourceware.org/bugzilla/show_bug.cgi?id=6807 -glibc ¥Ð¡¼¥¸¥ç¥ó 2.3.2 °ÊÁ°¤Ç¤Ï¡¢ +glibc バージョン 2.3.2 以前では、 .\" FIXME . Actually, 2.3.2 is the earliest test result I have; so yet .\" to confirm if this error occurs only in 2.3.2. -Îΰ襨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï -ÉÔÀµÉâÆ°¾®¿ôÅÀÎã³° +領域エラーが発生した場合に、これらの関数は +不正浮動小数点例外 .RB ( FE_INVALID ) -¤ò¾å¤²¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +を上げない。 +.SH 関連項目 .BR j0 (3) diff --git a/release/man4/console.4 b/release/man4/console.4 index 08025aca..203eef11 100644 --- a/release/man4/console.4 +++ b/release/man4/console.4 @@ -13,91 +13,91 @@ .\" by ISHIKAWA Mutsumi .\" Updated Wed Jan 9 JST 2002 by Kentaro Shirakata .\" -.\" WORD: console ¥³¥ó¥½¡¼¥ë -.\" WORD: terminal üËö -.\" WORD: virtual ²¾ÁÛ -.\" WORD: major number ¥á¥¸¥ã¡¼¥Ê¥ó¥Ð¡¼ -.\" WORD: minor number ¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼ -.\" WORD: character device ¥­¥ã¥é¥¯¥¿¡¼¥Ç¥Ð¥¤¥¹ -.\" WORD: device file ¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë -.\" WORD: kernel ¥«¡¼¥Í¥ë -.\" WORD: compile ¥³¥ó¥Ñ¥¤¥ë -.\" WORD: key mapping ¥­¡¼¥Þ¥Ã¥Ô¥ó¥° -.\" WORD: screen buffer ¥¹¥¯¥ê¡¼¥ó¥Ð¥Ã¥Õ¥¡ -.\" WORD: simulate ¥·¥ß¥å¥ì¡¼¥È -.\" WORD: escape sequence ¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ -.\" WORD: initial state ½é´ü¾õÂÖ -.\" WORD: reset ¥ê¥»¥Ã¥È +.\" WORD: console コンソール +.\" WORD: terminal 端末 +.\" WORD: virtual 仮想 +.\" WORD: major number メジャーナンバー +.\" WORD: minor number マイナーナンバー +.\" WORD: character device キャラクターデバイス +.\" WORD: device file デバイスファイル +.\" WORD: kernel カーネル +.\" WORD: compile コンパイル +.\" WORD: key mapping キーマッピング +.\" WORD: screen buffer スクリーンバッファ +.\" WORD: simulate シミュレート +.\" WORD: escape sequence エスケープシーケンス +.\" WORD: initial state 初期状態 +.\" WORD: reset リセット .TH CONSOLE 4 1994-10-31 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -console \- ¥³¥ó¥½¡¼¥ëüËö (console terminal) ¤È²¾ÁÛ¥³¥ó¥½¡¼¥ë (virtual console) -.SH ÀâÌÀ -Linux ¥·¥¹¥Æ¥à¤ÏÉáÄÌ¡¢\fI/dev/tty\fP\fIn\fP (n ¤Ï 1 \(<= \fIn\fP \(<= -63) ¤È¸Æ¤Ð¤ì¤ë\fI²¾ÁÛ¥³¥ó¥½¡¼¥ë\fP (¥á¥¸¥ã¡¼¥Ê¥ó¥Ð¡¼ (major number) -4 ¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼ (minor number) 1 ¤«¤é 63 ¤Î¥­¥ã¥é¥¯¥¿¡¼¥Ç¥Ð¥¤¥¹ -(character device)) ¤ò»ý¤Ä¡£ -¸½ºß¤Î¥³¥ó¥½¡¼¥ë¤Ï \fI/dev/console\fP ¤Þ¤¿¤Ï \fI/dev/tty0\fP (¥á¥¸¥ã¡¼ -¥Ê¥ó¥Ð¡¼ 4 ¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼ 0 ¤Î¥­¥ã¥é¥¯¥¿¡¼¥Ç¥Ð¥¤¥¹) ¤Ë¤è¤Ã¤Æ¤â°·¤¨¤ë¡£ -¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë (device file) /dev/* ¤ÏÉáÄÌ MAKEDEV ¥¹¥¯¥ê¥×¥È¤Þ¤¿¤Ï +.SH 名前 +console \- コンソール端末 (console terminal) と仮想コンソール (virtual console) +.SH 説明 +Linux システムは普通、\fI/dev/tty\fP\fIn\fP (n は 1 \(<= \fIn\fP \(<= +63) と呼ばれる\fI仮想コンソール\fP (メジャーナンバー (major number) +4 マイナーナンバー (minor number) 1 から 63 のキャラクターデバイス +(character device)) を持つ。 +現在のコンソールは \fI/dev/console\fP または \fI/dev/tty0\fP (メジャー +ナンバー 4 マイナーナンバー 0 のキャラクターデバイス) によっても扱える。 +デバイスファイル (device file) /dev/* は普通 MAKEDEV スクリプトまたは .BR mknod (1) -¤ò»È¤Ã¤Æ¥â¡¼¥É 0622¡¢½êÍ­¼Ô root.tty ¤È¤·¤ÆºîÀ®¤µ¤ì¤ë¡£ +を使ってモード 0622、所有者 root.tty として作成される。 .LP -¥«¡¼¥Í¥ë (kernel) ¥Ð¡¼¥¸¥ç¥ó 1.1.54 °ÊÁ°¤Ï¡¢²¾ÁÛ¥³¥ó¥½¡¼¥ë¤Î¿ô¤Ï¥³¥ó¥Ñ¥¤¥ë»þ¤Ë -(tty.h Ãæ¤Î : #define NR_CONSOLES 8 ¤Ë¤è¤Ã¤Æ) ¥«¡¼¥Í¥ë¤ËËä¤á¹þ¤Þ¤ì¤Æ¤¤¤¿¡£ -¤½¤·¤Æ¡¢¤½¤ì¤òÊѹ¹¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤·Ä¾¤¹¤³¤È¤Ç²¾ÁÛ¥³¥ó¥½¡¼¥ë¤Î¿ô¤òÊѹ¹¤Ç¤­¤¿¡£ -¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó 1.1.54 °Ê¹ß¤Ç¤Ï²¾ÁÛ¥³¥ó¥½¡¼¥ë¤¬É¬ÍפȤµ¤ì¤ë»þ¤Ï -¤¹¤°¤ËÆ°ºîÃæ¤ËºîÀ®¤µ¤ì¤ë¡£ +カーネル (kernel) バージョン 1.1.54 以前は、仮想コンソールの数はコンパイル時に +(tty.h 中の : #define NR_CONSOLES 8 によって) カーネルに埋め込まれていた。 +そして、それを変更してコンパイルし直すことで仮想コンソールの数を変更できた。 +カーネルバージョン 1.1.54 以降では仮想コンソールが必要とされる時は +すぐに動作中に作成される。 .LP -¥³¥ó¥½¡¼¥ë¾å¤Ç¥×¥í¥»¥¹¤ò³«»Ï¤¹¤ë°ìÈÌŪ¤ÊÊýË¡¤Ï: -(a) ¥³¥ó¥½¡¼¥ë¾å¤Ç +コンソール上でプロセスを開始する一般的な方法は: +(a) コンソール上で .BR mingetty (8) -(¤Þ¤¿¤Ï +(または .BR agetty (8)) -¤ò¥¹¥¿¡¼¥È¤µ¤»¤ë¤³¤È¤ò +をスタートさせることを .RB ( inittab (5) -¤ÎÃæ¤Ç) +の中で) .BR init (8) -¤ËÅÁ¤¨¤ë¡£ -(b) ¥³¥ó¥½¡¼¥ë¾å¤Ç¥×¥í¥»¥¹¤ò¥¹¥¿¡¼¥È¤¹¤ë¤³¤È¤ò +に伝える。 +(b) コンソール上でプロセスをスタートすることを .BR openvt (1) -¤ËÍê¤à¡£ -(c) X ¤ò³«»Ï¤¹¤ë - X ¤Ï»È¤ï¤ì¤Æ¤¤¤Ê¤¤¥³¥ó¥½¡¼¥ë¤Î¤¦¤ÁºÇ½é¤Î¤â¤Î¤ò¸«ÉÕ¤±¡¢ -¤½¤³¤Ëɽ¼¨¤ò½ÐÎϤ¹¤ë¡£(ÀΤʤ¬¤é¤Î +に頼む。 +(c) X を開始する - X は使われていないコンソールのうち最初のものを見付け、 +そこに表示を出力する。(昔ながらの .BR doshell (8) -¤â¤¢¤ë¡£) +もある。) .LP -¥³¥ó¥½¡¼¥ë¤òÀÚ¤êÂؤ¨¤ë°ìÈÌŪ¤ÊÊýË¡¤Ï: (a)¥³¥ó¥½¡¼¥ë \fIn\fP ¤ËÀÚ¤êÂؤ¨¤ë -¤¿¤á¤Ë Alt+F\fIn\fP ¤Þ¤¿¤Ï Ctrl+Alt+F\fIn\fP ¤ò»È¤¦¡£ -AltGr+F\fIn\fP ¤ò»È¤¦¤È¡¢¤ª¤½¤é¤¯¥³¥ó¥½¡¼¥ë \fIn\fP+12 ¤ËÀÚ¤êÂؤï¤ë -[¤³¤³¤Ç¤Î Alt ¤È AltGr ¤Ï¤½¤ì¤¾¤ìº¸±¦¤Î Alt ¥­¡¼¤ò¼¨¤¹]¡£ -(b) ¸½ºß³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¥³¥ó¥½¡¼¥ë¤ò½Û´Ä¤¹¤ë¤¿¤á¤Ë Alt + ±¦Ìð°õ¥­¡¼ -¤Þ¤¿¤Ï Alt + º¸Ìð°õ¥­¡¼¤ò»È¤¦¡£(c) +コンソールを切り替える一般的な方法は: (a)コンソール \fIn\fP に切り替える +ために Alt+F\fIn\fP または Ctrl+Alt+F\fIn\fP を使う。 +AltGr+F\fIn\fP を使うと、おそらくコンソール \fIn\fP+12 に切り替わる +[ここでの Alt と AltGr はそれぞれ左右の Alt キーを示す]。 +(b) 現在割り当てられているコンソールを循環するために Alt + 右矢印キー +または Alt + 左矢印キーを使う。(c) .BR chvt (1) -¥×¥í¥°¥é¥à¤ò»È¤¦ -(¥­¡¼¥Þ¥Ã¥Ô¥ó¥°¤Ï¥æ¡¼¥¶¤¬¥»¥Ã¥È¤Ç¤­¤ë¡¢ +プログラムを使う +(キーマッピングはユーザがセットできる、 .BR loadkeys (1) -¤ò¸«¤è¡£ -¾å¤Ç½Ò¤Ù¤¿¥­¡¼¥Ð¥¤¥ó¥É¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¤Ë¤è¤ë¤â¤Î¤Ç¤¢¤ë)¡£ +を見よ。 +上で述べたキーバインドはデフォルトの設定によるものである)。 .LP .BR deallocvt (1) -¥³¥Þ¥ó¥É(°ÊÁ°¤Ï \fBdisalloc\fP ¤È¤¤¤¦Ì¾Á°¤À¤Ã¤¿)¤Ï¡¢ -¥×¥í¥»¥¹¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤Æ¤¤¤Ê¤¤¥³¥ó¥½¡¼¥ë¤Î -¥¹¥¯¥ê¡¼¥ó¥Ð¥Ã¥Õ¥¡ (screen buffer) ¤Î¤¿¤á¤Ë»È¤ï¤ì¤Æ¤¤¤ë¥á¥â¥ê¤ò²òÊü¤¹¤ë¡£ -.SS ÆÃÀ­ -¥³¥ó¥½¡¼¥ë¤Ï¿¤¯¤Î¾õÂÖ¤ò¤â¤Ã¤Æ¤¤¤ë¡£ -»ä¤Ï¡¢¤½¤ì¤Ë¤Ä¤¤¤Æ¤¤¤Ä¤«¥É¥­¥å¥á¥ó¥È¤Ë¤·¤¿¤¤¤È¹Í¤¨¤Æ¤¤¤ë¡£ -¤â¤Ã¤È¤â½ÅÍפʻö¼Â¤Ï¥³¥ó¥½¡¼¥ë¤Ï vt100 üËö¤ò¿¿»÷¤Æ¤¤¤ë -(¥·¥ß¥å¥ì¡¼¥È¤·¤Æ¤¤¤ë) ¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ -¥³¥ó¥½¡¼¥ë¤Ï ESC c ¤È¤¤¤¦Æó¤Ä¤Îʸ»ú¤ò°õ»ú¤¹¤ë»ö¤Ë¤è¤Ã¤Æ¡¢ -½é´ü¾õÂ֤˥ꥻ¥Ã¥È¤µ¤ì¤ë¡£ -¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ (escape sequences) ¤Ë¤Ä¤¤¤Æ¤Ï +コマンド(以前は \fBdisalloc\fP という名前だった)は、 +プロセスに結びつけられていないコンソールの +スクリーンバッファ (screen buffer) のために使われているメモリを解放する。 +.SS 特性 +コンソールは多くの状態をもっている。 +私は、それについていつかドキュメントにしたいと考えている。 +もっとも重要な事実はコンソールは vt100 端末を真似ている +(シミュレートしている) ということである。 +コンソールは ESC c という二つの文字を印字する事によって、 +初期状態にリセットされる。 +エスケープシーケンス (escape sequences) については .BR console_codes (4) -¤ÇÁ´¤ÆÀâÌÀ¤·¤Æ¤¢¤ë¡£ -.SH ¥Õ¥¡¥¤¥ë +で全て説明してある。 +.SH ファイル .I /dev/console .br .I /dev/tty* -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chvt (1), .BR deallocvt (1), .BR loadkeys (1), diff --git a/release/man4/console_codes.4 b/release/man4/console_codes.4 index a8fca782..20e806a1 100644 --- a/release/man4/console_codes.4 +++ b/release/man4/console_codes.4 @@ -31,613 +31,613 @@ .\" Updated Sun Jul 23 JST 2006 by Kentaro Shirakata .\" Updated Tue Jul 22 JST 2008 by Kentaro Shirakata .\" -.\" WORD: private mode ¥×¥é¥¤¥Ù¡¼¥È¥â¡¼¥É +.\" WORD: private mode プライベートモード .\" .TH CONSOLE_CODES 4 2011-09-15 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -console_codes \- Linux ¥³¥ó¥½¡¼¥ë¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤È¥³¥ó¥È¥í¡¼¥ë -¥·¡¼¥±¥ó¥¹ -.SH ÀâÌÀ -Linux ¥³¥ó¥½¡¼¥ë¤Ï VT102 ¤È ECMA-48/ISO6429/ANSI X3.64 üËö¥³¥ó¥½¡¼¥ë¤Î -¥µ¥Ö¥»¥Ã¥È¤Ë¡¢¥«¥é¡¼¥Ñ¥ì¥Ã¥È¤äʸ»ú½¸¹ç¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ê¤É¤òÊѹ¹¤¹¤ë -¥×¥é¥¤¥Ù¡¼¥È¥â¡¼¥É¥·¡¼¥±¥ó¥¹¤ò²Ã¤¨¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ -°Ê²¼¤Îɽ¤Ç¤Ï¡¢µ¡Ç½¤Î ECMA-48 ¤Þ¤¿¤Ï DEC ¤Î¥Ë¡¼¥â¥Ë¥¯¥¹(DEC¤Ç»Ï¤Þ¤ì¤Ð¸å¼Ô)¤ò -2 ÈÖÌܤηå¤Ëµ­¤¹¡£ -¥Ë¡¼¥â¥Ë¥¯¥¹¤Î¤Ê¤¤¤â¤Î¤Ï ECMA-48 ¤Ç¤â VT102 ¤Ç¤â¤Ê¤¤¤â¤Î¤Ç¤¢¤ë¡£ +.SH 名前 +console_codes \- Linux コンソールのエスケープシーケンスとコントロール +シーケンス +.SH 説明 +Linux コンソールは VT102 と ECMA-48/ISO6429/ANSI X3.64 端末コンソールの +サブセットに、カラーパレットや文字集合のマッピングなどを変更する +プライベートモードシーケンスを加えて実装されている。 +以下の表では、機能の ECMA-48 または DEC のニーモニクス(DECで始まれば後者)を +2 番目の桁に記す。 +ニーモニクスのないものは ECMA-48 でも VT102 でもないものである。 .LP -¤¹¤Ù¤Æ¤Î½ÐÎϺî¶È¤¬½ª¤Ã¤Æ¡¢¼ÂºÝ¤Ë°õ»ú¤¹¤ë¤¿¤á¤Ëʸ»ú¤Î¥¹¥È¥ê¡¼¥à¤¬ -¥³¥ó¥½¡¼¥ë¥É¥é¥¤¥Ð¡¼¤ËÆϤ¤¤¿»þ¡¢ºÇ½é¤Ë¹Ô¤Ê¤ï¤ì¤ë¤Î¤¬¡¢½èÍýÍÑ¥³¡¼¥É¤«¤é -°õ»úÍѤΥ³¡¼¥É¤Ø¤ÎÊÑ´¹¤Ç¤¢¤ë¡£ +すべての出力作業が終って、実際に印字するために文字のストリームが +コンソールドライバーに届いた時、最初に行なわれるのが、処理用コードから +印字用のコードへの変換である。 .LP -¤â¤·¡¢¥³¥ó¥½¡¼¥ë¤¬ UTF-8 ¥â¡¼¥É¤Ê¤é¡¢Æþ¤Ã¤ÆÍ褿¥Ð¥¤¥È(byte)¤Ï -16 ¥Ó¥Ã¥È¤Î Unicode ¤ËÁȤßΩ¤Æ¤é¤ì¤ë¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¡¢¤½¤ì¤¾¤ì¤Î -¥Ð¥¤¥È¤Ï¸½ºß¤Î(³Æ¥Ð¥¤¥È¤ò Unicode ¤ÎÃͤËÊÑ´¹¤¹¤ë)¥Þ¥Ã¥Ô¥ó¥°¥Æ¡¼¥Ö¥ë¤Ë -½¾¤Ã¤ÆÊÑ´¹¤µ¤ì¤ë¡£¤³¤ì¤Ë´Ø¤·¤Æ¤Ï²¼¤Î¥­¥ã¥é¥¯¥¿¡¼¥»¥Ã¥È(Charcter Sets) -Àá¤ò»²¾È¤Î¤³¤È¡£ +もし、コンソールが UTF-8 モードなら、入って来たバイト(byte)は +16 ビットの Unicode に組み立てられる。そうでなければ、それぞれの +バイトは現在の(各バイトを Unicode の値に変換する)マッピングテーブルに +従って変換される。これに関しては下のキャラクターセット(Charcter Sets) +節を参照のこと。 .LP -Ä̾Unicode ¤ÎÃͤϥե©¥ó¥È¥¤¥ó¥Ç¥Ã¥¯¥¹(font index) ¤ËÊÑ´¹¤µ¤ì¡¢ -¥Ó¥Ç¥ª¥á¥â¥ê¤ËÃߤ¨¤é¤ì¤ë¡£¤½¤·¤Æ(¥Ó¥Ç¥ª ROM Ãæ¤Ë¸«ÉÕ¤±¤é¤ì¤ë) -Âбþ¤¹¤ë¥°¥ê¥Õ(glyph)¤¬²èÌ̤˸½¤ì¤ë¡£ -Unicode ¤òÍѤ¤¤ë¤È¡¢(PC ¸ß´¹µ¡¤ÎÀ߷פǤÏ) 512 ¤Î°Û¤Ê¤Ã¤¿ -¥°¥ê¥Õ¤òƱ»þ¤ËÍøÍѤǤ­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +通常、Unicode の値はフォントインデックス(font index) に変換され、 +ビデオメモリに蓄えられる。そして(ビデオ ROM 中に見付けられる) +対応するグリフ(glyph)が画面に現れる。 +Unicode を用いると、(PC 互換機の設計では) 512 の異なった +グリフを同時に利用できるようになる。 .LP -¸½ºß¤Î Unicode ¤ÎÃͤ¬¥³¥ó¥È¥í¡¼¥ëʸ»ú¤Ç¤¢¤ë¤«¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤ò -½èÍý¤·¤Æ¤¤¤ë»þ¤Ë¤Ï¡¢¤½¤ÎÃͤÏÆÃÊ̤˰·¤ï¤ì¤ë¡£ -¥Õ¥©¥ó¥È¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤ËÊÑ´¹¤µ¤ì¤Æ¥°¥ê¥Õ¤È¤·¤Æɽ¼¨¤µ¤ì¤ëÂå¤ï¤ê¤Ë¡¢¥«¡¼¥½¥ë¤Î -°ÜÆ°¤ä¤½¤Î¾¤Î¥³¥ó¥È¥í¡¼¥ëµ¡Ç½¤ò¼Â¹Ô¤µ¤»¤ë¡£ -¾Ü¤·¤¤¤³¤È¤Ï¡¢¸å½Ò¤Î¡ÖLINUX ¥³¥ó¥½¡¼¥ë¥³¥ó¥È¥í¡¼¥ë¡×¤Î¥»¥¯¥·¥ç¥ó¤ò»²¾È¤Î¤³¤È¡£ +現在の Unicode の値がコントロール文字であるかエスケープシーケンスを +処理している時には、その値は特別に扱われる。 +フォントのインデックスに変換されてグリフとして表示される代わりに、カーソルの +移動やその他のコントロール機能を実行させる。 +詳しいことは、後述の「LINUX コンソールコントロール」のセクションを参照のこと。 .LP -°ìÈ̤ËüËö¥³¥ó¥È¥í¡¼¥ë¥³¡¼¥É¤ò¥×¥í¥°¥é¥àÃæ¤ËľÀܵ­½Ò¤¹¤ë¤Î¤Ï -Îɤ¤¤³¤È¤Ç¤Ï¤Ê¤¤¡£ -Linux¤Ç¤Ï¡¢Ã¼Ëö¤Ë¤ª¤¤¤Æ¼Â¸½²Äǽ¤ÊÁàºî¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ç¤¢¤ë +一般に端末コントロールコードをプログラム中に直接記述するのは +良いことではない。 +Linuxでは、端末において実現可能な操作のデータベースである .BR terminfo (5) -¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -¥³¥ó¥½¡¼¥ë¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤ò¤ï¤¶¤ï¤¶ÆþÎϤ¹¤ë¤è¤ê¤â¡¢¤Û¤È¤ó¤É¤Î¾ì¹ç -terminfo ¤Î¾ðÊó¤ò»²¾È¤¹¤ë +をサポートしている。 +コンソールエスケープシーケンスをわざわざ入力するよりも、ほとんどの場合 +terminfo の情報を参照する .BR ncurses (3), .BR tput (1), -¤ä +や .BR reset (1) -¤Ê¤É¤Î¥¹¥¯¥ê¡¼¥ó¥é¥¤¥Ö¥é¥ê¤ä¥æ¡¼¥Æ¥£¥ê¥Æ¥£¡¼¤ò»È¤¤¤¿¤¤¤È»×¤¦¤Ç¤¢¤í¤¦¡£ -.SS "Linux ¥³¥ó¥½¡¼¥ë¥³¥ó¥È¥í¡¼¥ë" -¤³¤Î¾Ï¤Ç¤Ï Linux ¥³¥ó¥½¡¼¥ë¤Ë¤ª¤¤¤ÆÆüì¤Êµ¡Ç½(¤Ä¤Þ¤ê¡¢¸½ºß¤Î¥«¡¼¥½¥ë°ÌÃÖ¤Ë -ʸ»ú¤Î¥¤¥á¡¼¥¸¤ò°õ»ú¤¹¤ë°Ê³°¤Î¤³¤È)¤òµ¯¤³¤µ¤»¤ëÁ´¤Æ¤Î¥³¥ó¥È¥í¡¼¥ëʸ»ú¤È -¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤Ë¤Ä¤¤¤Æ½Ò¤Ù¤ë¡£ +などのスクリーンライブラリやユーティリティーを使いたいと思うであろう。 +.SS "Linux コンソールコントロール" +この章では Linux コンソールにおいて特殊な機能(つまり、現在のカーソル位置に +文字のイメージを印字する以外のこと)を起こさせる全てのコントロール文字と +エスケープシーケンスについて述べる。 .PP -.B "¥³¥ó¥È¥í¡¼¥ëʸ»ú" +.B "コントロール文字" .sp -¥³¥ó¥È¥í¡¼¥ëʸ»ú¤È¤Ï¡¢(¥Þ¥Ã¥Ô¥ó¥°¥Æ¡¼¥Ö¥ë¤Ë¤è¤ëÊÑ´¹Á°¤Î¥³¡¼¥É¤¬) +コントロール文字とは、(マッピングテーブルによる変換前のコードが) 00 (NUL), 07 (BEL), 08 (BS), 09 (HT), 0a (LF), 0b (VT), 0c (FF), 0d (CR), 0e (SO), 0f (SI), 18 (CAN), 1a (SUB), -1b (ESC), 7f (DEL) ¤Î 14 ¤Î¥³¡¼¥É¤Î¤¦¤Á¤Î¤É¤ì¤«¤Ç¤¢¤ëʸ»ú¤Ç¤¢¤ë¡£ -"¥³¥ó¥È¥í¡¼¥ëʸ»úɽ¼¨(display control characters)"¥â¡¼¥É(¸å½Ò)¤ò -ÀßÄꤹ¤ë¤È¡¢07, 09, 0b, 18, 1a, 7f ¤ò¥°¥ê¥Õ¤È¤·¤Æɽ¼¨¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -°ìÊý¡¢ UTF-8 ¥â¡¼¥É¤Ç¤Ï¡¢00-1f ¤ÎÁ´¤Æ¤Î¥³¡¼¥É¤Ï¡¢¥³¥ó¥È¥í¡¼¥ëʸ»úɽ¼¨ -¥â¡¼¥É¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ç¤â¥³¥ó¥È¥í¡¼¥ëʸ»ú¤È¤·¤Æ°·¤ï¤ì¤ë¡£ -.PP -¥³¥ó¥È¥í¡¼¥ëʸ»ú¤¬¤¢¤ë»þ¤Ë¤Ï¡¢¤½¤ì¤Ï¤¹¤°¤Ë(¤¿¤È¤¨¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤Î -ÅÓÃæ¤Ç¤â)¼Â¹Ô¤µ¤ì¡¢ÇË´þ¤µ¤ì¤ë¡£¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤Ï¼¡¤Îʸ»ú¤«¤é³¤±¤é¤ì¤ë -(¤·¤«¤·¡¢ESC ¤Ï¿·¤·¤¤¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤ò»Ï¤á¤ë¤Î¤Ç¡¢ -Á°¤Î½ªÎ»¤·¤Æ¤¤¤Ê¤¤¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤¬Ãæ»ß¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¤µ¤é¤Ë¡¢CAN ¤È SUB ¤Ï¤É¤ó¤Ê¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤âÃæ»ß¤¹¤ë)¡£ -ǧ¤á¤é¤ì¤Æ¤¤¤ë¥³¥ó¥È¥í¡¼¥ëʸ»ú¤Ï¡¢BEL, BS, HT, LF, VT, FF, CR, SO, SI, -CAN, SUB, ESC, DEL, CSI ¤Ç¤¢¤ë¡£¤³¤ì¤é¤Ï´üÂԤɤª¤ê¤ÎÆ°ºî¤ò¤¹¤ë: +1b (ESC), 7f (DEL) の 14 のコードのうちのどれかである文字である。 +"コントロール文字表示(display control characters)"モード(後述)を +設定すると、07, 09, 0b, 18, 1a, 7f をグリフとして表示することができる。 +一方、 UTF-8 モードでは、00-1f の全てのコードは、コントロール文字表示 +モードが指定された場合でもコントロール文字として扱われる。 +.PP +コントロール文字がある時には、それはすぐに(たとえエスケープシーケンスの +途中でも)実行され、破棄される。エスケープシーケンスは次の文字から続けられる +(しかし、ESC は新しいエスケープシーケンスを始めるので、 +前の終了していないエスケープシーケンスが中止される可能性がある。 +さらに、CAN と SUB はどんなエスケープシーケンスも中止する)。 +認められているコントロール文字は、BEL, BS, HT, LF, VT, FF, CR, SO, SI, +CAN, SUB, ESC, DEL, CSI である。これらは期待どおりの動作をする: .HP -BEL (0x07, \fB^G\fP) ¤Ï¥Ó¡¼¥×²»¤òÌĤ餹; +BEL (0x07, \fB^G\fP) はビープ音を鳴らす; .HP -BS (0x08, \fB^H\fP) ¤Ï¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹ -(¤¿¤À¤·¡¢¹ÔƬ¤Ï±Û¤¨¤Ê¤¤); +BS (0x08, \fB^H\fP) はバックスペース +(ただし、行頭は越えない); .HP -HT (0x09, \fB^I\fP) ¤Ï¼¡¤Î¥¿¥Ö¥¹¥È¥Ã¥×(tab stop)¤Ø°ÜÆ°¤¹¤ë¡¢¤½¤³¤«¤é¹ÔËö¤Þ¤Ç¤Ë -¥¿¥Ö¥¹¥È¥Ã¥×¤¬Ìµ¤¤¾ì¹ç¤Ï¹Ô¤Î½ª¤ê¤Ë°ÜÆ°¤¹¤ë; +HT (0x09, \fB^I\fP) は次のタブストップ(tab stop)へ移動する、そこから行末までに +タブストップが無い場合は行の終りに移動する; .HP -LF (0x0A, \fB^J\fP), VT (0x0B, \fB^K\fP), FF (0x0C, \fB^L\fP) ¤³¤ì¤é¤ÏÁ´¤Æ -¥é¥¤¥ó¥Õ¥£¡¼¥É(linefeed)¤òÍ¿¤¨¤ë; -LF/NL (¥Ë¥å¡¼¥é¥¤¥ó¥â¡¼¥É(new line mode))¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ì¤Ð -¥­¥ã¥ê¥Ã¥¸¥ê¥¿¡¼¥ó¤â¥¢¥¯¥Æ¥£¥Ö¤Ë¤¹¤ë; +LF (0x0A, \fB^J\fP), VT (0x0B, \fB^K\fP), FF (0x0C, \fB^L\fP) これらは全て +ラインフィード(linefeed)を与える; +LF/NL (ニューラインモード(new line mode))がセットされていれば +キャリッジリターンもアクティブにする; .HP -CR (0x0D, \fB^M\fP) ¤Ï¥­¥ã¥ê¥Ã¥¸¥ê¥¿¡¼¥ó¤òÍ¿¤¨¤ë; +CR (0x0D, \fB^M\fP) はキャリッジリターンを与える; .HP -SO (0x0E, \fB^N\fP) ¤Ï G1 ʸ»ú½¸¹ç¤ò¥¢¥¯¥Æ¥£¥Ö¤Ë¤¹¤ë¡£ +SO (0x0E, \fB^N\fP) は G1 文字集合をアクティブにする。 .HP -SI (0x0F, \fB^O\fP) ¤Ï G0 ʸ»ú½¸¹ç¤ò¥¢¥¯¥Æ¥£¥Ö¤Ë¤¹¤ë; +SI (0x0F, \fB^O\fP) は G0 文字集合をアクティブにする; .HP -CAN (0x18, \fB^X\fP) ¤È SUB (0x1A, \fB^Z\fP) ¤Ï¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤òÃæÃǤ¹¤ë; +CAN (0x18, \fB^X\fP) と SUB (0x1A, \fB^Z\fP) はエスケープシーケンスを中断する; .HP -ESC (0x1B, \fB^[\fP) ¤Ï¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤ò»Ï¤á¤ë¡£ +ESC (0x1B, \fB^[\fP) はエスケープシーケンスを始める。 .HP -DEL (0x7F) ¤Ï̵»ë¤µ¤ì¤ë; +DEL (0x7F) は無視される; .HP -CSI (0x9B) ¤Ï ESC [ ¤ÈÅù²Á¡£ +CSI (0x9B) は ESC [ と等価。 .PP -.B "¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤Ç¤¢¤ë¤¬ CSI ¥·¡¼¥±¥ó¥¹¤Ç¤Ê¤¤¤â¤Î" +.B "エスケープシーケンスであるが CSI シーケンスでないもの" .sp .TS l l l. -ESC c RIS ¥ê¥»¥Ã¥È¡£ -ESC D IND ¥é¥¤¥ó¥Õ¥£¡¼¥É¡£ -ESC E NEL ¥Ë¥å¡¼¥é¥¤¥ó¡£ -ESC H HTS ¸½ºß¤Î·å¤Î°ÌÃ֤˥¿¥Ö¥¹¥È¥Ã¥×¤òÀßÄꤹ¤ë¡£ -ESC M RI µÕ¥é¥¤¥ó¥Õ¥£¡¼¥É +ESC c RIS リセット。 +ESC D IND ラインフィード。 +ESC E NEL ニューライン。 +ESC H HTS 現在の桁の位置にタブストップを設定する。 +ESC M RI 逆ラインフィード ESC Z DECID T{ -DEC¸ÇÍ­¤Î¼±ÊÌÍÑ¡£¥«¡¼¥Í¥ë¤Ïʸ»úÎó ESC [ ? 6 c ¤òÊÖ¤¹¡£ -¤³¤ì¤ÏüËö¤¬VT102¤Ç¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +DEC固有の識別用。カーネルは文字列 ESC [ ? 6 c を返す。 +これは端末がVT102であることを意味する。 T} ESC 7 DECSC T{ -¸½ºß¤Î¾õÂÖ(¥«¡¼¥½¥ë¤ÎºÂɸ¡¢Â°À­¡¢G0, G1 ¤Ç¼¨¤·¤Æ¤¤¤ë -ʸ»ú½¸¹ç)¤ò¥»¡¼¥Ö¤¹¤ë¡£ +現在の状態(カーソルの座標、属性、G0, G1 で示している +文字集合)をセーブする。 T} -ESC 8 DECRC ºÇ¸å¤Ë ESC 7 ¤Ç¥»¡¼¥Ö¤·¤¿¾õÂÖ¤òÉüµ¢¤µ¤»¤ë¡£ -ESC [ CSI ¥³¥ó¥È¥í¡¼¥ë¥·¡¼¥±¥ó¥¹¤òƳÆþ¤¹¤ë¡£ -ESC % ¥­¥ã¥é¥¯¥¿¡¼¥»¥Ã¥È¤òÁªÂò¤¹¤ë¥·¡¼¥±¥ó¥¹¤ò³«»Ï¤¹¤ë¡£ -ESC % @ \0\0\0 ¥Ç¥Õ¥©¥ë¥È(ISO 646 / ISO 8859-1)¤òÁªÂò¤¹¤ë¡£ -ESC % G \0\0\0 UTF-8 ¤òÁªÂò¤¹¤ë¡£ -ESC % 8 \0\0\0 UTF-8 ¤òÁªÂò¤¹¤ë(µì¼°)¡£ -ESC # 8 DECALN DEC ¤Î¥¹¥¯¥ê¡¼¥óÄ´À°¥Æ¥¹¥È \- ¥¹¥¯¥ê¡¼¥ó¤ò E ¤Ç - ¤¦¤á¤ë¡£ -ESC ( G0 ʸ»ú½¸¹ç¤òÄêµÁ¤¹¤ë¥·¡¼¥±¥ó¥¹¤ò³«»Ï¤¹¤ë¡£ -ESC ( B \0\0\0 ¥Ç¥Õ¥©¥ë¥È(ISO 8859-1 ¥Þ¥Ã¥Ô¥ó¥°)¤òÁªÂò¤¹¤ë¡£ -ESC ( 0 \0\0\0 VT100 ¥°¥é¥Õ¥£¥¯¥¹¥Þ¥Ã¥Ô¥ó¥°¤òÁªÂò¤¹¤ë¡£ -ESC ( U \0\0\0 ¥Ì¥ë¥Þ¥Ã¥Ô¥ó¥°¤òÁªÂò¤¹¤ë \- ¥­¥ã¥é¥¯¥¿ ROM ¤«¤é - \0\0\0 ľÀܥޥåԥ󥰤¹¤ë¡£ -ESC ( K \0\0\0 ¥æ¡¼¥¶¡¼ÄêµÁ¤Î¥Þ¥Ã¥Ô¥ó¥°¤òÁªÂò¤¹¤ë \- ¤½¤Î¥Þ¥Ã¥× - \0\0\0 ¤Ï \fBmapscrn\fP(8) ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¡¼¤Ë¤è¤Ã¤Æ¥í¡¼ - \0\0\0 ¥É¤µ¤ì¤ë¡£ -ESC ) G1 ¤òÄêµÁ¤¹¤ë¥·¡¼¥±¥ó¥¹¤ò³«»Ï¤¹¤ë¡£ - (¤¹¤Ç¤Ë½Ò¤Ù¤¿¤è¤¦¤Ë B, 0, U, K ¤Î¤É¤ì¤«¤¬¼¡¤Ë³¤¯) -ESC > DECPNM ¿ôÃÍ¥­¡¼¥Ñ¥Ã¥É¥â¡¼¥É(numeric keypad mode)¤ò - ¥»¥Ã¥È¤¹¤ë¡£ -ESC = DECPAM ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥­¡¼¥Ñ¥Ã¥É¥â¡¼¥É(application keypad - mode) ¤ò¥»¥Ã¥È¤¹¤ë¡£ +ESC 8 DECRC 最後に ESC 7 でセーブした状態を復帰させる。 +ESC [ CSI コントロールシーケンスを導入する。 +ESC % キャラクターセットを選択するシーケンスを開始する。 +ESC % @ \0\0\0 デフォルト(ISO 646 / ISO 8859-1)を選択する。 +ESC % G \0\0\0 UTF-8 を選択する。 +ESC % 8 \0\0\0 UTF-8 を選択する(旧式)。 +ESC # 8 DECALN DEC のスクリーン調整テスト \- スクリーンを E で + うめる。 +ESC ( G0 文字集合を定義するシーケンスを開始する。 +ESC ( B \0\0\0 デフォルト(ISO 8859-1 マッピング)を選択する。 +ESC ( 0 \0\0\0 VT100 グラフィクスマッピングを選択する。 +ESC ( U \0\0\0 ヌルマッピングを選択する \- キャラクタ ROM から + \0\0\0 直接マッピングする。 +ESC ( K \0\0\0 ユーザー定義のマッピングを選択する \- そのマップ + \0\0\0 は \fBmapscrn\fP(8) ユーティリティーによってロー + \0\0\0 ドされる。 +ESC ) G1 を定義するシーケンスを開始する。 + (すでに述べたように B, 0, U, K のどれかが次に続く) +ESC > DECPNM 数値キーパッドモード(numeric keypad mode)を + セットする。 +ESC = DECPAM アプリケーションキーパッドモード(application keypad + mode) をセットする。 ESC ] OSC T{ -("Operating system command"¤Î¤³¤È¤À¤í¤¦) -ESC ] P \fInrrggbb\fP: ºÇ¸å¤Î P ¤Î¤¢¤È¤Î 7 ¤Ä¤Î 16 ¿Ê¿ô¤ò -¥Ñ¥é¥á¡¼¥¿¤È¤·¤Æ :-( ¥Ñ¥ì¥Ã¥È¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤³¤Ç¡¢\fIn\fP¤Ï¿§ (0-15)¡¢\fIrrggbb\fP¤ÏÀÖ/ÎÐ/ÀĤÎÃÍ -(0-255)¤ò°ÕÌ£¤¹¤ë¡£ -ESC ] R: ¥Ñ¥ì¥Ã¥È¤ò¥ê¥»¥Ã¥È¤¹¤ë¡£ +("Operating system command"のことだろう) +ESC ] P \fInrrggbb\fP: 最後の P のあとの 7 つの 16 進数を +パラメータとして :-( パレットをセットする。 +ここで、\fIn\fPは色 (0-15)、\fIrrggbb\fPは赤/緑/青の値 +(0-255)を意味する。 +ESC ] R: パレットをリセットする。 T} .TE .PP -.B "ECMA-48 CSI ¥·¡¼¥±¥ó¥¹" +.B "ECMA-48 CSI シーケンス" .sp -CSI (¤Þ¤¿¤Ï ESC [ ) ¤Î¤¢¤È¤Ë¡¢ºÇÂç¤Ç NPAR (16) ¸Ä¤Î¥»¥ß¥³¥í¥ó¤Ç¶èÀÚ¤é¤ì¤¿ -10 ¿Ê¿ô¤Î¥Ñ¥é¥á¡¼¥¿¥·¡¼¥±¥ó¥¹¤¬Â³¤¯¡£ -¶õ¤Ç¤¢¤ë¤«¤½¤³¤Ë¤Ê¤¤¥Ñ¥é¥á¡¼¥¿¤Ï 0 ¤È¤µ¤ì¤ë¡£ -¥Ñ¥é¥á¡¼¥¿¥·¡¼¥±¥ó¥¹¤ÎÁ°¤Ë¤Ï¤Ò¤È¤Ä¤Î¥¯¥¨¥¹¥Á¥ç¥ó¥Þ¡¼¥¯¤¬¤Ä¤¯¤³¤È¤¬¤¢¤ë¡£ +CSI (または ESC [ ) のあとに、最大で NPAR (16) 個のセミコロンで区切られた +10 進数のパラメータシーケンスが続く。 +空であるかそこにないパラメータは 0 とされる。 +パラメータシーケンスの前にはひとつのクエスチョンマークがつくことがある。 .PP -¤·¤«¤·¡¢CSI [ (¤Þ¤¿¤Ï ESC [ [ ) ¤Î¸å¤Ç¤Ï¡¢°ìʸ»ú¤¬Æɤޤ졢¤³¤Î¤¹¤Ù¤Æ¤Î -¥Ñ¥é¥á¡¼¥¿¥·¡¼¥±¥ó¥¹¤¬Ìµ»ë¤µ¤ì¤ë(Íפ¹¤ë¤Ë¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼¤Î¥¨¥³¡¼¤Ï -̵»ë¤µ¤ì¤ë¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë)¡£ +しかし、CSI [ (または ESC [ [ ) の後では、一文字が読まれ、このすべての +パラメータシーケンスが無視される(要するにファンクションキーのエコーは +無視されるということである)。 .PP -CSI ¥·¡¼¥±¥ó¥¹¤ÎÆ°ºî¤Ï¡¢¤½¤ÎºÇ¸å¤Îʸ»ú¤Ë¤è¤Ã¤Æ·è¤Þ¤ë¡£ +CSI シーケンスの動作は、その最後の文字によって決まる。 .TS l l l l. -@ ICH »Ø¼¨¤µ¤ì¤¿¿ô¤Î¶õÇòʸ»ú¤òÁÞÆþ¤¹¤ë¡£ -A CUU »Ø¼¨¤µ¤ì¤¿¿ô¤À¤±¥«¡¼¥½¥ë¤ò¾åÊý¸þ¤Ë°ÜÆ°¤¹¤ë¡£ -B CUD ¥«¡¼¥½¥ë¤ò»Ø¼¨¤µ¤ì¤¿¿ô¤Î¹Ô¤À¤±²¼Êý¸þ¤Ë°ÜÆ°¤¹¤ë¡£ -C CUF ¥«¡¼¥½¥ë¤ò»Ø¼¨¤µ¤ì¤¿¿ô¤Î·å¤À¤±±¦¤Ë°ÜÆ°¤¹¤ë¡£ -D CUB ¥«¡¼¥½¥ë¤ò»Ø¼¨¤µ¤ì¤¿¿ô¤Î·å¤À¤±º¸¤Ë°ÜÆ°¤¹¤ë¡£ -E CNL ¥«¡¼¥½¥ë¤ò»Ø¼¨¤µ¤ì¤¿¿ô¤Î¹Ô¤À¤±²¼¤ÎÂè 1 ·å¤Ë°ÜÆ°¤¹¤ë¡£ -F CPL ¥«¡¼¥½¥ë¤ò»Ø¼¨¤µ¤ì¤¿¿ô¤Î¹Ô¤À¤±¾å¤ÎÂè 1 ·å¤Ë°ÜÆ°¤¹¤ë¡£ -G CHA ¥«¡¼¥½¥ë¤ò¸½ºß¤Î¹Ô¤Î»Ø¼¨¤µ¤ì¤¿·å¤Ë°ÜÆ°¤¹¤ë¡£ -H CUP ¥«¡¼¥½¥ë¤ò»Ø¼¨¤µ¤ì¤¿¹Ô¡¢·å(1,1¤ò¸¶ÅÀ¤È¤¹¤ë)¤Ë - °ÜÆ°¤¹¤ë¡£ -J ED ¥Ç¥£¥¹¥×¥ì¥¤¤Î¾Ãµî(¥Ç¥Õ¥©¥ë¥È: ¥«¡¼¥½¥ë¤«¤é¥Ç¥£¥¹¥×¥ì¥¤¤Î - ºÇ¸å¤Þ¤Ç)¡£ - ESC [ 1 J: ºÇ½é¤«¤é¥«¡¼¥½¥ë¤Þ¤Ç¤Î¾Ãµî¡£ - ESC [ 2 J: ¥Ç¥£¥¹¥×¥ì¥¤Á´ÂΤξõ - ESC [ 3 J: ¥¹¥¯¥í¡¼¥ë¥Ð¥Ã¥Õ¥¡¤â´Þ¤á¤¿¥Ç¥£¥¹¥×¥ì¥¤Á´ÂΤΠ- ¾Ãµî (Linux 3.0 °Ê¹ß)¡£ +@ ICH 指示された数の空白文字を挿入する。 +A CUU 指示された数だけカーソルを上方向に移動する。 +B CUD カーソルを指示された数の行だけ下方向に移動する。 +C CUF カーソルを指示された数の桁だけ右に移動する。 +D CUB カーソルを指示された数の桁だけ左に移動する。 +E CNL カーソルを指示された数の行だけ下の第 1 桁に移動する。 +F CPL カーソルを指示された数の行だけ上の第 1 桁に移動する。 +G CHA カーソルを現在の行の指示された桁に移動する。 +H CUP カーソルを指示された行、桁(1,1を原点とする)に + 移動する。 +J ED ディスプレイの消去(デフォルト: カーソルからディスプレイの + 最後まで)。 + ESC [ 1 J: 最初からカーソルまでの消去。 + ESC [ 2 J: ディスプレイ全体の消去。 + ESC [ 3 J: スクロールバッファも含めたディスプレイ全体の + 消去 (Linux 3.0 以降)。 .\" ESC [ 3 J: commit f8df13e0a901fe55631fed66562369b4dba40f8b -K EL ¹Ô¤Î¾Ãµî(¥Ç¥Õ¥©¥ë¥È: ¥«¡¼¥½¥ë¤«¤é¹ÔËö¤Þ¤Ç)¡£ - ESC [ 1 K: ¹ÔƬ¤«¤é¥«¡¼¥½¥ë¤Þ¤Ç¤Î¾Ãµî¡£ - ESC [ 2 K: ¹ÔÁ´ÂΤξõ -L IL »Ø¼¨¤µ¤ì¤¿¿ô¤Î¶õ¹Ô¤òÁÞÆþ¤¹¤ë¡£ -M DL »Ø¼¨¤µ¤ì¤¿¿ô¤Î¹Ô¤òºï½ü¤¹¤ë¡£ -P DCH ¸½ºß¤Î¹Ô¤«¤é»Ø¼¨¤µ¤ì¤¿¿ô¤Îʸ»ú¤òºï½ü¤¹¤ë¡£ -X ECH ¸½ºß¤Î¹Ô¤«¤é»Ø¼¨¤µ¤ì¤¿¿ô¤Îʸ»ú¤ò¾Ãµî¤¹¤ë¡£ -a HPR ¥«¡¼¥½¥ë¤ò»Ø¼¨¤µ¤ì¤¿¿ô¤Î·å¤À¤±±¦¤Ë°ÜÆ°¤¹¤ë¡£ -c DA ESC [ ? 6 c ¤òÊÖ¤¹: "»ä¤ÏVT102¤Ç¤¹"(¤È¤¤¤¦¤³¤È)¡£ -d VPA ¥«¡¼¥½¥ë¤ò»Ø¼¨¤µ¤ì¤¿¹Ô¤Î¸½ºß¤Î·å¤Ë°ÜÆ°¤¹¤ë¡£ -e VPR ¥«¡¼¥½¥ë¤ò»Ø¼¨¤µ¤ì¤¿¹Ô¿ô¤À¤±²¼¤Ë°ÜÆ°¤¹¤ë¡£ -f HVP ¥«¡¼¥½¥ë¤ò»Ø¼¨¤µ¤ì¤¿¹Ô¡¢·å¤Ë°ÜÆ°¤¹¤ë¡£ -g TBC ¥Ñ¥é¥á¡¼¥¿¤Ê¤·¤Î»þ: ¸½ºß°ÌÃ֤Υ¿¥Ö¥¹¥È¥Ã¥×¤òºï½ü¤¹¤ë¡£ - ESC [ 3 g: ¤¹¤Ù¤Æ¤Î¥¿¥Ö¥¹¥È¥Ã¥×¤òºï½ü¤¹¤ë¡£ -h SM ¥â¡¼¥É¤Î¥»¥Ã¥È(¸å½Ò)¡£ -l RM ¥â¡¼¥É¤Î¥ê¥»¥Ã¥È(¸å½Ò)¡£ -m SGR °À­¤Î¥»¥Ã¥È(¸å½Ò)¡£ -n DSR ¾õÂÖ¤ÎÊó¹ð(¸å½Ò)¡£ -q DECLL ¥­¡¼¥Ü¡¼¥É¤Î LED ¤ò¥»¥Ã¥È¤¹¤ë¡£ - ESC [ 0 q: ¤¹¤Ù¤Æ¤Î LED ¤ò¾Ã¤¹¡£ - ESC [ 1 q: ¥¹¥¯¥í¡¼¥ë¥í¥Ã¥¯ LED ¤òÅÀÅô¡£ - ESC [ 2 q: ¥Ê¥ó¥Ð¡¼¥í¥Ã¥¯ LED ¤òÅÀÅô¡£ - ESC [ 3 q: ¥­¥ã¥Ô¥¿¥ë¥í¥Ã¥¯ LED ¤òÅÀÅô¡£ -r DECSTBM ¥¹¥¯¥í¡¼¥ë¤ÎÈϰϤΥ»¥Ã¥È; ¥Ñ¥é¥á¡¼¥¿¤Ï°ìÈÖ¾å¤Î¹Ô¤È - °ìÈÖ²¼¤Î¹Ô¡£ -s ? ¥«¡¼¥½¥ë°ÌÃÖ¤ÎÊݸ¡£ -u ? ¥«¡¼¥½¥ë°ÌÃÖ¤ÎÉüµ¢¡£ -\` HPA ¥«¡¼¥½¥ë¤ò¸½ºß¤Î¹Ô¤Î»Ø¼¨¤µ¤ì¤¿·å¤Ë°ÜÆ°¤¹¤ë¡£ +K EL 行の消去(デフォルト: カーソルから行末まで)。 + ESC [ 1 K: 行頭からカーソルまでの消去。 + ESC [ 2 K: 行全体の消去。 +L IL 指示された数の空行を挿入する。 +M DL 指示された数の行を削除する。 +P DCH 現在の行から指示された数の文字を削除する。 +X ECH 現在の行から指示された数の文字を消去する。 +a HPR カーソルを指示された数の桁だけ右に移動する。 +c DA ESC [ ? 6 c を返す: "私はVT102です"(ということ)。 +d VPA カーソルを指示された行の現在の桁に移動する。 +e VPR カーソルを指示された行数だけ下に移動する。 +f HVP カーソルを指示された行、桁に移動する。 +g TBC パラメータなしの時: 現在位置のタブストップを削除する。 + ESC [ 3 g: すべてのタブストップを削除する。 +h SM モードのセット(後述)。 +l RM モードのリセット(後述)。 +m SGR 属性のセット(後述)。 +n DSR 状態の報告(後述)。 +q DECLL キーボードの LED をセットする。 + ESC [ 0 q: すべての LED を消す。 + ESC [ 1 q: スクロールロック LED を点灯。 + ESC [ 2 q: ナンバーロック LED を点灯。 + ESC [ 3 q: キャピタルロック LED を点灯。 +r DECSTBM スクロールの範囲のセット; パラメータは一番上の行と + 一番下の行。 +s ? カーソル位置の保存。 +u ? カーソル位置の復帰。 +\` HPA カーソルを現在の行の指示された桁に移動する。 .TE .PP -.B "ECMA-48 ¥°¥é¥Õ¥£¥¯¥¹¥ì¥ó¥Ç¥£¥·¥ç¥ó(Graphics Rendition)¤ÎÀßÄê" +.B "ECMA-48 グラフィクスレンディション(Graphics Rendition)の設定" .sp -ECMA-48 SGR ¥·¡¼¥±¥ó¥¹ ESC [ <¥Ñ¥é¥á¡¼¥¿> m ¤Ïɽ¼¨Â°À­¤òÀßÄꤹ¤ë¡£ -¥»¥ß¥³¥í¥ó¤Ç¶èÀڤ뤳¤È¤Ç¡¢Æ±¤¸¥·¡¼¥±¥ó¥¹¤Ç¤¤¤¯¤Ä¤«¤Î°À­¤òÀßÄê¤Ç¤­¤ë¡£ -¶õ¥Ñ¥é¥á¡¼¥¿(¥»¥ß¥³¥í¥ó¤«Ê¸»úÎ󳫻Ïʸ»ú¤«Ê¸»úÎó½ªÃ¼Ê¸»ú¤Î´Ö)¤Ï¥¼¥í¤È²ò¼á¤µ¤ì¤ë¡£ +ECMA-48 SGR シーケンス ESC [ <パラメータ> m は表示属性を設定する。 +セミコロンで区切ることで、同じシーケンスでいくつかの属性を設定できる。 +空パラメータ(セミコロンか文字列開始文字か文字列終端文字の間)はゼロと解釈される。 .TS l l. -¥Ñ¥é¥á¡¼¥¿ ·ë²Ì -0 ¤¹¤Ù¤Æ¤Î°À­¤ò¥Ç¥Õ¥©¥ë¥È¤Ë¥ê¥»¥Ã¥È¤¹¤ë¡£ -1 ¥Ü¡¼¥ë¥É(bold)¤ò¥»¥Ã¥È¡£ -2 ¥Ï¡¼¥Õ¥Ö¥é¥¤¥È(half-bright)(¥«¥é¡¼¥Ç¥£¥¹¥×¥ì¥¤¤Ç¤Ï¿§¤ÇÂåÍÑ)¤ò - ¥»¥Ã¥È¡£ +パラメータ 結果 +0 すべての属性をデフォルトにリセットする。 +1 ボールド(bold)をセット。 +2 ハーフブライト(half-bright)(カラーディスプレイでは色で代用)を + セット。 4 T{ -²¼Àþ(underscore)¤ò¥»¥Ã¥È(¥«¥é¡¼¥Ç¥£¥¹¥×¥ì¥¤¤Ç¤Ï¿§¤ÇÂåÍÑ)¡£ -(¥Ç¥£¥à¤ä²¼Àþ¤òÂåÍѤ¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¿§¤Ï ESC ] ... ¤Ë¤è¤ê¥»¥Ã¥È) +下線(underscore)をセット(カラーディスプレイでは色で代用)。 +(ディムや下線を代用するのに使われる色は ESC ] ... によりセット) T} -5 ÅÀÌÇ(blink)¤ò¥»¥Ã¥È¡£ -7 ȿžɽ¼¨(reverce video)¤ò¥»¥Ã¥È¡£ +5 点滅(blink)をセット。 +7 反転表示(reverce video)をセット。 10 T{ -ÁªÂò¤·¤¿¥Þ¥Ã¥Ô¥ó¥°¡¢¥Ç¥£¥¹¥×¥ì¥¤¥³¥ó¥È¥í¡¼¥ë¥Õ¥é¥°(display -control flag)¡¢¥È¥°¥ë¥á¥¿¥Õ¥é¥°(toggle meta flag)¤ò¥ê¥»¥Ã¥È¤¹¤ë -(ECMA-48¤Ç¤Ï"primary font"¤È¸Æ¤ó¤Ç¤¤¤ë)¡£ +選択したマッピング、ディスプレイコントロールフラグ(display +control flag)、トグルメタフラグ(toggle meta flag)をリセットする +(ECMA-48では"primary font"と呼んでいる)。 T} 11 T{ -¥Ì¥ë¥Þ¥Ã¥Ô¥ó¥°¤òÁªÂò¡¢¥Ç¥£¥¹¥×¥ì¥¤¥³¥ó¥È¥í¡¼¥ë¥Õ¥é¥°¤ò¥»¥Ã¥È¡¢ -¥È¥°¥ë¥á¥¿¥Õ¥é¥°¤ò¥ê¥»¥Ã¥È¤¹¤ë -(ECMA-48 ¤Ç¤Ï"first alternate font"¤È¸Æ¤ó¤Ç¤¤¤ë)¡£ +ヌルマッピングを選択、ディスプレイコントロールフラグをセット、 +トグルメタフラグをリセットする +(ECMA-48 では"first alternate font"と呼んでいる)。 T} 12 T{ -¥Ì¥ë¥Þ¥Ã¥Ô¥ó¥°¤òÁªÂò¡¢¥Ç¥£¥¹¥×¥ì¥¤¥³¥ó¥È¥í¡¼¥ë¥Õ¥é¥°¡¢ -¥È¥°¥ë¥á¥¿¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë -(ECMA-48 ¤Ç¤Ï "second alternate font" ¤È¸Æ¤ó¤Ç¤¤¤ë)¡£ -¥È¥°¥ë¥á¥¿¥Õ¥é¥°¤¬¤¿¤Ã¤Æ¤¤¤ë¤È¡¢ -¥Þ¥Ã¥Ô¥ó¥°¥Æ¡¼¥Ö¥ë¤Ë¤è¤ëÊÑ´¹¤ò¤¹¤ëÁ°¤Ë¡¢¥Ð¥¤¥È¤Î¾å°Ì¤Î1¥Ó¥Ã¥È¤¬ -¥È¥°¥ë¤µ¤ì¤ë¡£ +ヌルマッピングを選択、ディスプレイコントロールフラグ、 +トグルメタフラグをセットする +(ECMA-48 では "second alternate font" と呼んでいる)。 +トグルメタフラグがたっていると、 +マッピングテーブルによる変換をする前に、バイトの上位の1ビットが +トグルされる。 T} -21 Ä̾ï¤Îµ±Å٤˥»¥Ã¥È(ECMA-48 ¤Ç¤Ï "doubly underlined" ¤È¸Æ¤ó¤Ç¤¤¤ë)¡£ -22 Ä̾ï¤Îµ±Å٤˥»¥Ã¥È¡£ -24 ²¼Àþ¥ª¥Õ¡£ -25 ÅÀÌÇ¥ª¥Õ¡£ -27 ȿžɽ¼¨¥ª¥Õ¡£ -30 ¥Õ¥©¥¢¥°¥é¥¦¥ó¥É(foreground)¤ò¹õ¤Ë¥»¥Ã¥È¡£ -31 ¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤òÀ֤˥»¥Ã¥È¡£ -32 ¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤òÎФ˥»¥Ã¥È¡£ -33 ¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤òÃã¤Ë¥»¥Ã¥È¡£ -34 ¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤òÀĤ˥»¥Ã¥È¡£ -35 ¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤ò¥Þ¥¼¥ó¥À¤Ë¥»¥Ã¥È¡£ -36 ¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤ò¥·¥¢¥ó¤Ë¥»¥Ã¥È¡£ -37 ¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤òÇò¤Ë¥»¥Ã¥È¡£ -38 ²¼Àþɽ¼¨¤ËÀßÄꤷ¡¢¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤ò¥Ç¥Õ¥©¥ë¥È¤Ë¥»¥Ã¥È¡£ -39 ²¼Àþɽ¼¨¤ò²ò½ü¤·¡¢¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤ò¥Ç¥Õ¥©¥ë¥È¤Ë¥»¥Ã¥È¡£ -40 ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É(background)¤ò¹õ¤Ë¥»¥Ã¥È¡£ -41 ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤òÀ֤˥»¥Ã¥È¡£ -42 ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤òÎФ˥»¥Ã¥È¡£ -43 ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤òÃã¤Ë¥»¥Ã¥È¡£ -44 ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤òÀĤ˥»¥Ã¥È¡£ -45 ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤ò¥Þ¥¼¥ó¥À¤Ë¥»¥Ã¥È¡£ -46 ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤ò¥·¥¢¥ó¤Ë¥»¥Ã¥È¡£ -47 ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤òÇò¤Ë¥»¥Ã¥È¡£ -49 ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤ò¥Ç¥Õ¥©¥ë¥È¤Ë¥»¥Ã¥È¡£ +21 通常の輝度にセット(ECMA-48 では "doubly underlined" と呼んでいる)。 +22 通常の輝度にセット。 +24 下線オフ。 +25 点滅オフ。 +27 反転表示オフ。 +30 フォアグラウンド(foreground)を黒にセット。 +31 フォアグラウンドを赤にセット。 +32 フォアグラウンドを緑にセット。 +33 フォアグラウンドを茶にセット。 +34 フォアグラウンドを青にセット。 +35 フォアグラウンドをマゼンダにセット。 +36 フォアグラウンドをシアンにセット。 +37 フォアグラウンドを白にセット。 +38 下線表示に設定し、フォアグラウンドをデフォルトにセット。 +39 下線表示を解除し、フォアグラウンドをデフォルトにセット。 +40 バックグラウンド(background)を黒にセット。 +41 バックグラウンドを赤にセット。 +42 バックグラウンドを緑にセット。 +43 バックグラウンドを茶にセット。 +44 バックグラウンドを青にセット。 +45 バックグラウンドをマゼンダにセット。 +46 バックグラウンドをシアンにセット。 +47 バックグラウンドを白にセット。 +49 バックグラウンドをデフォルトにセット。 .TE .PP -.B "ECMA-48 ¥â¡¼¥É¥¹¥¤¥Ã¥Á(Mode Switches)" +.B "ECMA-48 モードスイッチ(Mode Switches)" .TP ESC [ 3 h -DECCRM (¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥ª¥Õ): ¥³¥ó¥È¥í¡¼¥ëʸ»ú¤òɽ¼¨¤¹¤ë¡£ +DECCRM (デフォルトではオフ): コントロール文字を表示する。 .TP ESC [ 4 h -DECIM (¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥ª¥Õ): ÁÞÆþ¥â¡¼¥É¤Ë¤¹¤ë¡£ +DECIM (デフォルトではオフ): 挿入モードにする。 .TP ESC [ 20 h -LF/NL (¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥ª¥Õ): LF, VT, FF¤ò¥¨¥³¡¼¤·¤¿¤¢¤È¼«Æ°Åª CR ¤ò¤Ä¤±¤ë¡£ +LF/NL (デフォルトではオフ): LF, VT, FFをエコーしたあと自動的 CR をつける。 .\" .PP -.B "ECMA-48 ¾õÂÖ¥ê¥Ý¡¼¥È¥³¥Þ¥ó¥É(Status Report Commands)" +.B "ECMA-48 状態リポートコマンド(Status Report Commands)" .\" .TP ESC [ 5 n -¥Ç¥Ð¥¤¥¹¾õÂ֤Υê¥Ý¡¼¥È(DSR): ÊÖ»ö¤Ï ESC [ 0 n (üËö OK). +デバイス状態のリポート(DSR): 返事は ESC [ 0 n (端末 OK). .TP ESC [ 6 n -¥«¡¼¥½¥ë°ÌÃ֤Υê¥Ý¡¼¥È(CPR): ÊÖ»ö¤Ï ESC [ \fIy\fP ; \fIx\fP R¡¢ -\fIx,y\fP ¤Ï¥«¡¼¥½¥ë¤Î°ÌÃÖ¤ò¤¢¤é¤ï¤¹¡£ +カーソル位置のリポート(CPR): 返事は ESC [ \fIy\fP ; \fIx\fP R、 +\fIx,y\fP はカーソルの位置をあらわす。 .\" .PP -.B "DEC ¥×¥é¥¤¥Ù¡¼¥È¥â¡¼¥É (DECSET/DECRST) ¥·¡¼¥±¥ó¥¹" +.B "DEC プライベートモード (DECSET/DECRST) シーケンス" .sp .\" -¤³¤ì¤é¤Ï ECMA-48 ¤Ç¤Ïµ­½Ò¤µ¤ì¤Æ¤¤¤Ê¤¤¡£¤³¤³¤Ç¤Ï¡¢¥»¥Ã¥È¥â¡¼¥É -¥·¡¼¥±¥ó¥¹ (Set Mode sequences)¤òµ­ºÜ¤¹¤ë; ºÇ¸å¤Î \(aqh\(aq ¤ò \(aql\(aq ¤Ë -ÃÖ¤­´¹¤¨¤ë¤È¥ê¥»¥Ã¥È¥â¡¼¥É¥·¡¼¥±¥ó¥¹(Reset Mode sequences)¤Ë¤Ê¤ë¡£ +これらは ECMA-48 では記述されていない。ここでは、セットモード +シーケンス (Set Mode sequences)を記載する; 最後の \(aqh\(aq を \(aql\(aq に +置き換えるとリセットモードシーケンス(Reset Mode sequences)になる。 .TP ESC [ ? 1 h -DECCKM (¥Ç¥Õ¥©¥ë¥È¤Ï¥ª¥Õ): ¥»¥Ã¥È¤µ¤ì¤¿»þ¤Ë¤Ï¥«¡¼¥½¥ë¥­¡¼¤Ï ESC [ ¤Ç¤Ï¤Ê¤¯ -ESC O ¤òÁ°¤Ë¤Ä¤±¤ÆÁ÷¤ë¡£ +DECCKM (デフォルトはオフ): セットされた時にはカーソルキーは ESC [ ではなく +ESC O を前につけて送る。 .TP ESC [ ? 3 h -DECCOLM (¥Ç¥Õ¥©¥ë¥È¤Ï¥ª¥Õ = 80 ·å): 80/132 ¤Î·å¥â¡¼¥ÉÀÚÂؤ¨¡£ -¥É¥é¥¤¥Ð¡¼¤Î¥½¡¼¥¹¤ÎÃí¼á¤Ë¤Ï¡¢¤³¤ì¤À¤±¤Ç¤Ï½½Ê¬¤Ç¤Ê¤¯ +DECCOLM (デフォルトはオフ = 80 桁): 80/132 の桁モード切替え。 +ドライバーのソースの注釈には、これだけでは十分でなく .BR resizecons (8) -¤Î¤è¤¦¤Ê¥æ¡¼¥¶¡¼¥â¡¼¥É¤Î¥æ¡¼¥Æ¥£¥ê¥Æ¥£¡¼¤Ç¡¢¥³¥ó¥½¡¼¥ë¥Ó¥Ç¥ª¥«¡¼¥É¤Î -¥Ï¡¼¥É¥¦¥§¥¢¥ì¥¸¥¹¥¿¤òÊѤ¨¤ëɬÍפ¬¤¢¤ë¤È½ñ¤«¤ì¤Æ¤¤¤ë¡£ +のようなユーザーモードのユーティリティーで、コンソールビデオカードの +ハードウェアレジスタを変える必要があると書かれている。 .TP ESC [ ? 5 h -DECSCNM (¥Ç¥Õ¥©¥ë¥È¤Ï¥ª¥Õ): ȿžɽ¼¨¥â¡¼¥É¤Î¥»¥Ã¥È¡£ +DECSCNM (デフォルトはオフ): 反転表示モードのセット。 .TP ESC [ ? 6 h -DECOM(¥Ç¥Õ¥©¥ë¥È¤Ï¥ª¥Õ): ¥»¥Ã¥È¤µ¤ì¤¿»þ¤Ë¤Ï¡¢¥«¡¼¥½¥ë¤Î¥¢¥É¥ì¥Ã¥·¥ó¥°¤¬¡¢ -¥¹¥¯¥í¡¼¥ëÈϰϤκ¸¾å¶ù¤«¤é¤ÎÁêÂаÌÃ֤ˤʤ롣 +DECOM(デフォルトはオフ): セットされた時には、カーソルのアドレッシングが、 +スクロール範囲の左上隅からの相対位置になる。 .TP ESC [ ? 7 h -DECAWM(¥Ç¥Õ¥©¥ë¥È¤Ï¥ª¥ó): ¥ª¡¼¥È¥é¥Ã¥×¤òÀßÄê¡£¤³¤Î¥â¡¼¥É¤Î»þ¤Ï¡¢80 ·å -(DECCOLM ¤¬¥ª¥ó¤Î¤È¤­¤Ï 132 ·å)¤òĶ¤¨¤¿¥°¥é¥Õ¥£¥Ã¥¯¥­¥ã¥é¥¯¥¿¤Ï¡¢ -¶¯À©Åª¤Ë¼¡¤Î¹Ô¤ÎÀèƬ¤ËÀÞ¤êÊÖ¤µ¤ì¤Æɽ¼¨¤µ¤ì¤ë¡£ +DECAWM(デフォルトはオン): オートラップを設定。このモードの時は、80 桁 +(DECCOLM がオンのときは 132 桁)を超えたグラフィックキャラクタは、 +強制的に次の行の先頭に折り返されて表示される。 .TP ESC [ ? 8 h -DECARM(¥Ç¥Õ¥©¥ë¥È¤Ï¥ª¥ó): ¥­¡¼¥Ü¡¼¥É¤Î¥ª¡¼¥È¥ê¥Ô¡¼¥È¤ò¥ª¥ó¤Ë¥»¥Ã¥È¡£ +DECARM(デフォルトはオン): キーボードのオートリピートをオンにセット。 .TP ESC [ ? 9 h -X10 ¥Þ¥¦¥¹¥ê¥Ý¡¼¥È(¥Ç¥Õ¥©¥ë¥È¤Ï¥ª¥Õ): ¥ê¥Ý¡¼¥È¥â¡¼¥É¤ò 1 ¤Ë¥»¥Ã¥È(¤Þ¤¿¤Ï¡¢ -0 ¤Ë¥ê¥»¥Ã¥È)\(em¸å½Ò +X10 マウスリポート(デフォルトはオフ): リポートモードを 1 にセット(または、 +0 にリセット)\(em後述 .TP ESC [ ? 25 h -DECTECM (¥Ç¥Õ¥©¥ë¥È¤Ï¥ª¥ó): ¥«¡¼¥½¥ë¤ò²Ä»ë(visible)¤Ë¤¹¤ë¡£ +DECTECM (デフォルトはオン): カーソルを可視(visible)にする。 .TP ESC [ ? 1000 h -X11 ¥Þ¥¦¥¹¥ê¥Ý¡¼¥È(¥Ç¥Õ¥©¥ë¥È¤Ï¥ª¥Õ): ¥ê¥Ý¡¼¥È¥â¡¼¥É¤ò 2 ¤Ë¥»¥Ã¥È(¤Þ¤¿¤Ï¡¢ -0¤Ë¥ê¥»¥Ã¥È)\(em¸å½Ò +X11 マウスリポート(デフォルトはオフ): リポートモードを 2 にセット(または、 +0にリセット)\(em後述 .\" .PP -.B "Linux ¥³¥ó¥½¡¼¥ë¥×¥é¥¤¥Ù¡¼¥È CSI ¥·¡¼¥±¥ó¥¹" +.B "Linux コンソールプライベート CSI シーケンス" .sp .\" -°Ê²¼¤Î¥·¡¼¥±¥ó¥¹¤Ï ECMA-48 ¤Î¤â¤Î¤Ç¤âËÜÍè¤Î VT102 ¤Î¤â¤Î¤Ç¤â¤Ç¤â¤Ê¤¯¡¢ -Linux¥³¥ó¥½¡¼¥ë¥É¥é¥¤¥Ð¡¼¤Ë¸ÇÍ­¤Ê¥·¡¼¥±¥ó¥¹¤Ç¤¢¤ë¡£¿§¤Ï SGR ¥Ñ¥é¥á¡¼¥¿¤Ç -ɽ¸½¤µ¤ì¤ë: 0 = ¹õ, 1= ÀÖ, 2 = ÎÐ, 3 = Ãã, 4 = ÀÄ, 5 = ¥Þ¥¼¥ó¥¿, -6 = ¥·¥¢¥ó, 7 = Çò +以下のシーケンスは ECMA-48 のものでも本来の VT102 のものでもでもなく、 +Linuxコンソールドライバーに固有なシーケンスである。色は SGR パラメータで +表現される: 0 = 黒, 1= 赤, 2 = 緑, 3 = 茶, 4 = 青, 5 = マゼンタ, +6 = シアン, 7 = 白 .TS l l. -ESC [ 1 ; \fIn\fP ] ²¼Àþ¤Î¿§¤ò\fIn\fP ¤Ë¥»¥Ã¥È¤¹¤ë¡£ -ESC [ 2 ; \fIn\fP ] ¥Ç¥£¥à¤Î¿§¤ò\fIn\fP ¤Ë¥»¥Ã¥È¤¹¤ë¡£ -ESC [ 8 ] ¸½ºß¤Î¿§¤Î¥Ú¥¢¤ò¥Ç¥Õ¥©¥ë¥È°À­¤Ë¤¹¤ë¡£ -ESC [ 9 ; \fIn\fP ] ¥¹¥¯¥ê¡¼¥ó¥Ö¥é¥ó¥¯(screen blank)¤Î¥¿¥¤¥à¥¢¥¦¥È - ¤ò \fIn\fP ʬ¤Ë¥»¥Ã¥È¤¹¤ë¡£ -ESC [ 10 ; \fIn\fP ] ¥Ù¥ë¤Î¼þÇÈ¿ô(Hz)¤ò¥»¥Ã¥È¤¹¤ë¡£ -ESC [ 11 ; \fIn\fP ] ¥Ù¥ë¤ÎÌĤäƤ¤¤ë»þ´Ö(msec)¤ò¥»¥Ã¥È¤¹¤ë¡£ -ESC [ 12 ; \fIn\fP ] »ØÄê¤Î¥³¥ó¥½¡¼¥ë¤òÁ°Ì̤˻ý¤Ã¤Æ¤¯¤ë¡£ -ESC [ 13 ] ¥¹¥¯¥ê¡¼¥ó¤ò¥¢¥ó¥Ö¥é¥ó¥¯(Unblank)¤¹¤ë¡£ -ESC [ 14 ] VESAÅŸ»Ää»ß¥¤¥ó¥¿¡¼¥Ð¥ë(VESA powerdown - interval)¤ò¥»¥Ã¥È¤¹¤ë¡£ +ESC [ 1 ; \fIn\fP ] 下線の色を\fIn\fP にセットする。 +ESC [ 2 ; \fIn\fP ] ディムの色を\fIn\fP にセットする。 +ESC [ 8 ] 現在の色のペアをデフォルト属性にする。 +ESC [ 9 ; \fIn\fP ] スクリーンブランク(screen blank)のタイムアウト + を \fIn\fP 分にセットする。 +ESC [ 10 ; \fIn\fP ] ベルの周波数(Hz)をセットする。 +ESC [ 11 ; \fIn\fP ] ベルの鳴っている時間(msec)をセットする。 +ESC [ 12 ; \fIn\fP ] 指定のコンソールを前面に持ってくる。 +ESC [ 13 ] スクリーンをアンブランク(Unblank)する。 +ESC [ 14 ] VESA電源停止インターバル(VESA powerdown + interval)をセットする。 .TE -.SS ʸ»ú½¸¹ç -¥«¡¼¥Í¥ë¤Ï¡¢¥Ð¥¤¥ÈÎ󤫤饳¥ó¥½¡¼¥ë¥¹¥¯¥ê¡¼¥óÉä¹æ¤ÎÊÑ´¹¤ò 4 ¤Ä -ÃΤäƤ¤¤ë¡£ -4 ¤Ä¤ÎÊÑ´¹¥Æ¡¼¥Ö¥ë¤È¤Ï¡¢a) Latin1 \-> PC, b) VT100 graphics \-> PC, -c) PC \-> PC, d) ¥æ¡¼¥¶¡¼ÄêµÁ, ¤Ç¤¢¤ë¡£ -.PP -G0 ¤È G1 ¤È¸Æ¤Ð¤ì¤ëÆó¤Ä¤Îʸ»ú½¸¹ç¤¬¤¢¤ê¡¢¤½¤Î¤¦¤Á°ì¤Ä¤¬¸½ºß¤Î -ʸ»ú½¸¹ç¤Ç¤¢¤ë(½é´üÃÍ¤Ï G0 )¡£ -\fB^N\fP ¤ò¥¿¥¤¥×¤¹¤ë¤È G1 ¤¬ \fB^O\fP ¤òÆþÎϤ¹¤ë¤È G0 ¤¬¸½ºß¤Îʸ»ú½¸¹ç¤Ë¤Ê¤ë¡£ -.PP -ÊÑ¿ô G0 ¤È G1 ¤ÏÊÑ´¹¥Æ¡¼¥Ö¥ë¤ò»Ø¤·¤Æ¤ª¤ê¡¢¥æ¡¼¥¶¡¼¤Ë¤è¤êÊѹ¹¤Ç¤­¤ë¡£ -ºÇ½é¤Ï¤½¤ì¤¾¤ì¥Æ¡¼¥Ö¥ë a) ¤È ¥Æ¡¼¥Ö¥ë b) ¤ò»Ø¤·¤Æ¤¤¤ë¡£ -ESC ( B ¡¢ ESC ( 0 ¡¢ ESC ( U ¡¢ ESC ( K ¤Î¤½¤ì¤¾¤ì¤Î¥·¡¼¥±¥ó¥¹¤Ë¤è¤ê¡¢ -G0 ¤¬ÊÑ´¹¥Æ¡¼¥Ö¥ë a)¡¢ b)¡¢ c)¡¢ d) ¤ò»Ø¤¹¤è¤¦¤Ë¤Ê¤ë¡£ -¤Þ¤¿¡¢ESC ) B ¡¢ ESC ) 0 ¡¢ ESC ) U ¡¢ ESC ) K ¤Î¤½¤ì¤¾¤ì¤Î¥·¡¼¥±¥ó¥¹ -¤Ë¤è¤ê¡¢G1 ¤¬ÊÑ´¹¥Æ¡¼¥Ö¥ë a)¡¢ b)¡¢ c)¡¢ d) ¤ò»Ø¤¹¤è¤¦¤Ë¤Ê¤ë¡£ -.PP -ESC c ¤Î¥·¡¼¥±¥ó¥¹¤ÏüËö¤ò¥ê¥»¥Ã¥È¤¹¤ë¡£¥¹¥¯¥ê¡¼¥ó¤¬¤á¤Á¤ã¤¯¤Á¤ã¤Ë¤Ê¤Ã¤¿ -»þ¤Ë¤½¤¦¤¹¤ë¤³¤È¤¬É¬ÍפǤ¢¤ë¡£¤è¤¯¥¢¥É¥Ð¥¤¥¹¤µ¤ì¤ë "echo ^V^O" ¤Ï G0 -¤ò¸½ºß¤Îʸ»ú½¸¹ç¤Ë¤¹¤ë¤À¤±¤Ç¤¢¤ê¡¢G0 ¤¬¥Æ¡¼¥Ö¥ë a) ¤ò»Ø¤·¤Æ¤¤¤ë¤È¤¤¤¦ -ÊݾڤϤʤ¤¡£ -¤¤¤¯¤Ä¤«¤Î¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ë¤Ï¡¢ +.SS 文字集合 +カーネルは、バイト列からコンソールスクリーン符号の変換を 4 つ +知っている。 +4 つの変換テーブルとは、a) Latin1 \-> PC, b) VT100 graphics \-> PC, +c) PC \-> PC, d) ユーザー定義, である。 +.PP +G0 と G1 と呼ばれる二つの文字集合があり、そのうち一つが現在の +文字集合である(初期値は G0 )。 +\fB^N\fP をタイプすると G1 が \fB^O\fP を入力すると G0 が現在の文字集合になる。 +.PP +変数 G0 と G1 は変換テーブルを指しており、ユーザーにより変更できる。 +最初はそれぞれテーブル a) と テーブル b) を指している。 +ESC ( B 、 ESC ( 0 、 ESC ( U 、 ESC ( K のそれぞれのシーケンスにより、 +G0 が変換テーブル a)、 b)、 c)、 d) を指すようになる。 +また、ESC ) B 、 ESC ) 0 、 ESC ) U 、 ESC ) K のそれぞれのシーケンス +により、G1 が変換テーブル a)、 b)、 c)、 d) を指すようになる。 +.PP +ESC c のシーケンスは端末をリセットする。スクリーンがめちゃくちゃになった +時にそうすることが必要である。よくアドバイスされる "echo ^V^O" は G0 +を現在の文字集合にするだけであり、G0 がテーブル a) を指しているという +保証はない。 +いくつかのディストリビューションには、 .BR reset (1) -¤È¤¤¤¦¥×¥í¥°¥é¥à¤¬´Þ¤Þ¤ì¤ë¤¬¡¢¤³¤ì¤Ï¤¿¤À "echo ^[c" ¤ò¼Â¹Ô¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¤â¤·¡¢¥³¥ó¥½¡¼¥ë¤Î terminfo ¥¨¥ó¥È¥ê¡¼¤¬Àµ¤·¤¤(¤«¤Ä rs1=\\Ec ¤Î¥¨¥ó¥È¥ê¡¼¤¬ -¤¢¤ë)¤Ê¤é¤Ð¡¢"tput reset"¤Ç¤âƱ¤¸¸ú²Ì¤¬¤¢¤ë¡£ +というプログラムが含まれるが、これはただ "echo ^[c" を実行するものである。 +もし、コンソールの terminfo エントリーが正しい(かつ rs1=\\Ec のエントリーが +ある)ならば、"tput reset"でも同じ効果がある。 .PP -¥æ¡¼¥¶¡¼ÄêµÁ¤Î¥Þ¥Ã¥Ô¥ó¥°¥Æ¡¼¥Ö¥ë¤Ï +ユーザー定義のマッピングテーブルは .BR mapscrn (8) -¤ò»È¤Ã¤ÆÄêµÁ¤Ç¤­¤ë¡£ -¥Þ¥Ã¥Ô¥ó¥°¤Î·ë²Ì¡¢¥·¥ó¥Ü¥ë c ¤¬°õ»ú¤µ¤ì¤ë¤È¥·¥ó¥Ü¥ë s = map[c] ¤¬ -¥Ó¥Ç¥ª¥á¥â¥ê¤ËÁ÷¤é¤ì¤ë¡£s ¤ËÂбþ¤¹¤ë¥Ó¥Ã¥È¥Þ¥Ã¥×¤Ï¥­¥ã¥é¥¯¥¿¡¼ ROM ¤Ë¤¢¤ê¡¢ +を使って定義できる。 +マッピングの結果、シンボル c が印字されるとシンボル s = map[c] が +ビデオメモリに送られる。s に対応するビットマップはキャラクター ROM にあり、 .BR setfont (8) -¤Ë¤è¤êÊѹ¹²Äǽ¤Ç¤¢¤ë¡£ -.SS ¥Þ¥¦¥¹¥È¥é¥Ã¥­¥ó¥° -¥Þ¥¦¥¹¥È¥é¥Ã¥­¥ó¥°µ¡Ç½¤Ï¡¢ -.BR xterm (1)-¸ß´¹¤Î -¥Þ¥¦¥¹¥¹¥Æ¡¼¥¿¥¹¥ê¥Ý¡¼¥È(mouse -status reports)¤òÊÖ¤µ¤»¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ -¥³¥ó¥½¡¼¥ë¥É¥é¥¤¥Ð¡¼¤Ï¥Þ¥¦¥¹¤Î¥Ç¥Ð¥¤¥¹¤ä¼ïÎà¤Ë¤Ä¤¤¤ÆÃΤëÊýË¡¤¬ -¤Ê¤¤¤Î¤Ç¡¢²¾ÁÛ¥¿¡¼¥ß¥Ê¥ë¥É¥é¥¤¥Ð¡¼¤¬¥Þ¥¦¥¹¹¹¿·¤Î ioctl ¤ò¼õ¤±¼è¤Ã¤¿»þ¤À¤±¡¢ -¥Þ¥¦¥¹¥¹¥Æ¡¼¥¿¥¹¥ê¥Ý¡¼¥È¤¬¥³¥ó¥½¡¼¥ë¤ÎÆþÎÏ¥¹¥È¥ê¡¼¥à¤ËÁ÷¤é¤ì¤ë¡£ -¤³¤Î ioctl ¤Ï¡¢ +により変更可能である。 +.SS マウストラッキング +マウストラッキング機能は、 +.BR xterm (1)-互換の +マウスステータスリポート(mouse +status reports)を返させるためのものである。 +コンソールドライバーはマウスのデバイスや種類について知る方法が +ないので、仮想ターミナルドライバーがマウス更新の ioctl を受け取った時だけ、 +マウスステータスリポートがコンソールの入力ストリームに送られる。 +この ioctl は、 .BR gpm (8) -¥Ç¡¼¥â¥ó¤Î¤è¤¦¤Ê¥Þ¥¦¥¹Âбþ¤Î¥æ¡¼¥¶¡¼¥â¡¼¥É -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬È¯À¸¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.PP -\fBxterm\fP(1) ¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤ëÁ´¤Æ¤Î¥Þ¥¦¥¹ÄÉÀ×¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤Î¤¿¤á¤Î -¥Ñ¥é¥á¡¼¥¿¤Ï¡¢¿ôÃͤò \fIvalue\fP+040 ¤Î¤è¤¦¤ËÉä¹æ²½¤·¡¢°ì¤Ä¤Îʸ»ú¤È¤·¤Æ -¤¢¤é¤ï¤¹¡£ -Î㤨¤Ð¡¢\(aq!\(aq ¤Ï 1 ¤Ë¤Ê¤ë¡£¥¹¥¯¥ê¡¼¥óºÂɸ¤Ï 1 ¤ò¥Ù¡¼¥¹¤Ë¤¹¤ë¡£ -.PP -X10 ¸ß´¹¥â¡¼¥É¤Ç¤Ï¡¢¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤¿»þ¤Ë¥Þ¥¦¥¹¤Î°ÌÃ֤Ȳ¡¤µ¤ì¤¿¥Þ¥¦¥¹¤Î -¥Ü¥¿¥ó¤È¤ò¥¨¥ó¥³¡¼¥É¤·¤¿¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤òÁ÷¤ë¡£ -¤³¤Îµ¡Ç½¤Ï ESC [ ? 9 h ¤òÁ÷¤ë¤ÈÍ­¸ú¤Ë¤Ê¤ê ESC [ ? 9 l ¤Ë¤è¤ê̵¸ú¤Ë¤Ê¤ë¡£ -¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤ë¤È \fBxterm\fP(1) ¤Ï ESC [ M \fIbxy\fP (¤Î 6 ʸ»ú)¤òÁ÷¤ë¡£ -¤³¤³¤Ç \fIb\fP ¤Ï button\-1, \fIx\fP ¤È \fIy\fP ¤Ï ¥Þ¥¦¥¹¤¬¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤¿ -»þ¤Î x ¤È y ºÂɸ¤Ç¤¢¤ë¡£ -¤³¤Î¥³¡¼¥É¤Ï¥«¡¼¥Í¥ë¤¬È¯À¸¤¹¤ë¤Î¤ÈƱ¤¸¥³¡¼¥É¤Ç¤¢¤ë¡£ -.PP -¥Î¡¼¥Þ¥ë¥È¥é¥Ã¥­¥ó¥°¥â¡¼¥É(Normal tracking mode)(Linux 2.0.24 ¤Ç¤Ï -¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤)¤Ç¤Ï¡¢Î¾Êý¤Î¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤¿¤«Î¥¤µ¤ì¤¿»þ¤Ë -¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤¬Á÷¤é¤ì¤ë¡£ -¥â¥Ç¥£¥Õ¥¡¥¤¥¢¤Î¾ðÊó¤â°ì½ï¤ËÁ÷¤é¤ì¤ë¡£ -¤³¤Îµ¡Ç½¤Ï¡¢ESC [ ? 1000 h ¤òÁ÷¤ë¤ÈÍ­¸ú¤Ë¤Ê¤ê ESC [ ? 1000 l ¤Ç̵¸ú¤Ë¤Ê¤ë¡£ -¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤ë¤«Î¥¤µ¤ì¤ë¤«¤·¤¿»þ¤Ë¤Ï¡¢\fBxterm\fP(1) ¤Ï ESC [ M -\fIbxy\fP ¤òÁ÷¤ë¡£ -\fIb\fP ¤ÎÄã°Ì¤Î2¥Ó¥Ã¥È¤Ë¤Ï¥Ü¥¿¥ó¾ðÊ󤬥¨¥ó¥³¡¼¥É¤µ¤ì¤ë: -0=MB1 ¤¬²¡¤µ¤ì¤¿, 1=MB2 ¤¬²¡¤µ¤ì¤¿, 2=MB3 ¤¬²¡¤µ¤ì¤¿, 3=Î¥¤µ¤ì¤¿¡£ -¹â°Ì¤Î¥Ó¥Ã¥È¤Ë¤Ï¡¢¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤¿»þ¤Ë¤É¤Î¥â¥Ç¥£¥Õ¥¡¥¤¥¢¤¬¥À¥¦¥ó¤·¤Æ¤¤¤¿¤«¤¬ -¥¨¥ó¥³¡¼¥É¤µ¤ì¤ë: 4=Shift, 8=Meta, 16=Control¡£ -¤½¤·¤Æ¡¢¾å°Ì¤È²¼°Ì¥Ó¥Ã¥È¤¬²Ã»»¤µ¤ì¤ë¡£ -¤³¤³¤Ç¤â \fIx\fP ¤È \fIy\fP ¤Ï¡¢¥Þ¥¦¥¹¥¤¥Ù¥ó¥È¤¬µ¯¤³¤Ã¤¿»þ¤Î -x ¤È y ºÂɸ¤Ç¤¢¤ê¡¢º¸¾å¤Î¶ù¤¬(1,1)¤Ç¤¢¤ë¡£ -.SS ¾¤Î¥¿¡¼¥ß¥Ê¥ë¤È¤ÎÈæ³Ó -¿¤¯¤Î°Û¤Ê¤ë¥¿¡¼¥ß¥Ê¥ë¥¿¥¤¥×¤¬¡¢Linux ¥³¥ó¥½¡¼¥ë¤Î¤è¤¦¤Ë¡¢"VT100¸ß´¹"¤ò -̾¾è¤Ã¤Æ¤¤¤ë¡£ -¤³¤³¤Ç¤Ï¡¢Linux ¥³¥ó¥½¡¼¥ë¤È 2 ¤Ä¤ÎºÇ¤â½ÅÍפʥ¿¡¼¥ß¥Ê¥ë¤Ç¤¢¤ë -DEC VT102 ¤È +デーモンのようなマウス対応のユーザーモード +アプリケーションが発生しなければならない。 +.PP +\fBxterm\fP(1) によって生成される全てのマウス追跡エスケープシーケンスのための +パラメータは、数値を \fIvalue\fP+040 のように符号化し、一つの文字として +あらわす。 +例えば、\(aq!\(aq は 1 になる。スクリーン座標は 1 をベースにする。 +.PP +X10 互換モードでは、ボタンが押された時にマウスの位置と押されたマウスの +ボタンとをエンコードしたエスケープシーケンスを送る。 +この機能は ESC [ ? 9 h を送ると有効になり ESC [ ? 9 l により無効になる。 +ボタンが押されると \fBxterm\fP(1) は ESC [ M \fIbxy\fP (の 6 文字)を送る。 +ここで \fIb\fP は button\-1, \fIx\fP と \fIy\fP は マウスがボタンが押された +時の x と y 座標である。 +このコードはカーネルが発生するのと同じコードである。 +.PP +ノーマルトラッキングモード(Normal tracking mode)(Linux 2.0.24 では +実装されていない)では、両方のボタンが押されたか離された時に +エスケープシーケンスが送られる。 +モディファイアの情報も一緒に送られる。 +この機能は、ESC [ ? 1000 h を送ると有効になり ESC [ ? 1000 l で無効になる。 +ボタンが押されるか離されるかした時には、\fBxterm\fP(1) は ESC [ M +\fIbxy\fP を送る。 +\fIb\fP の低位の2ビットにはボタン情報がエンコードされる: +0=MB1 が押された, 1=MB2 が押された, 2=MB3 が押された, 3=離された。 +高位のビットには、ボタンが押された時にどのモディファイアがダウンしていたかが +エンコードされる: 4=Shift, 8=Meta, 16=Control。 +そして、上位と下位ビットが加算される。 +ここでも \fIx\fP と \fIy\fP は、マウスイベントが起こった時の +x と y 座標であり、左上の隅が(1,1)である。 +.SS 他のターミナルとの比較 +多くの異なるターミナルタイプが、Linux コンソールのように、"VT100互換"を +名乗っている。 +ここでは、Linux コンソールと 2 つの最も重要なターミナルである +DEC VT102 と .BR xterm (1) -¤È¤Î°ã¤¤¤Ë¤Ä¤¤¤Æ½Ò¤Ù¤ë¡£ +との違いについて述べる。 .\" .PP -.B ¥³¥ó¥È¥í¡¼¥ëʸ»ú¤Î¼è¤ê°·¤¤ +.B コントロール文字の取り扱い .sp -VT102 ¤Ï°Ê²¼¤Î¥³¥ó¥È¥í¡¼¥ëʸ»ú¤âǧ¼±¤¹¤ë: +VT102 は以下のコントロール文字も認識する: .HP -NUL (0x00) ¤Ï̵»ë¤µ¤ì¤ë; +NUL (0x00) は無視される; .HP -ENQ (0x05) ¤Ï¥¢¥ó¥µ¡¼¥Ð¥Ã¥¯¥á¥Ã¥»¡¼¥¸(answerback message)¤òȯÀ¸¤¹¤ë; +ENQ (0x05) はアンサーバックメッセージ(answerback message)を発生する; .HP -DC1 (0x11, \fB^Q\fP, XON) ¤ÏÁ÷¿®¤òºÆ³«¤¹¤ë; +DC1 (0x11, \fB^Q\fP, XON) は送信を再開する; .HP -DC3 (0x13, \fB^S\fP, XOFF) ¤Ï VT100 ¤Ë XOFF ¤È XON °Ê³°¤Î¥³¡¼¥É¤ò̵»ë(¤½¤·¤Æ -Á÷¿®¤ÎÄä»ß)¤òµ¯¤³¤µ¤»¤ë¡£ +DC3 (0x13, \fB^S\fP, XOFF) は VT100 に XOFF と XON 以外のコードを無視(そして +送信の停止)を起こさせる。 .LP -tty ¥É¥é¥¤¥Ð¡¼¤Ë¤è¤ê VT100 ¤Ë»÷¤¿ DC1/DC3 ½èÍý¤ò¤Ç¤­¤ë¡£ +tty ドライバーにより VT100 に似た DC1/DC3 処理をできる。 .LP .BR xterm (1) -(VT100 ¥â¡¼¥É)¤Ï BEL, BS, HT, LF, VT, FF, CR, SO, SI, ESC ¤Î -¥³¥ó¥È¥í¡¼¥ëʸ»ú¤òǧ¼±¤¹¤ë¡£ +(VT100 モード)は BEL, BS, HT, LF, VT, FF, CR, SO, SI, ESC の +コントロール文字を認識する。 .\" .PP -.B ¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ +.B エスケープシーケンス .sp -Linux ¥³¥ó¥½¡¼¥ë¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤ VT100 ¥³¥ó¥½¡¼¥ë¥·¡¼¥±¥ó¥¹¤Ï°Ê²¼¤ÎÄ̤ê: +Linux コンソールで実装されていない VT100 コンソールシーケンスは以下の通り: .TS l l l. -ESC N SS2 ¥·¥ó¥°¥ë¥·¥Õ¥È 2 - (¼¡¤Îʸ»ú¤À¤± G2 ʸ»ú½¸¹ç¤òÁªÂò¤¹¤ë)¡£ -ESC O SS3 ¥·¥ó¥°¥ë¥·¥Õ¥È 3 - (¼¡¤Îʸ»ú¤À¤± G3 ʸ»ú½¸¹ç¤òÁªÂò¤¹¤ë)¡£ -ESC P DCS ¥Ç¥Ð¥¤¥¹À©¸æʸ»úÎó (ESC \\ ¤Ç½ª¤ï¤ë) -ESC X SOS ʸ»úÎó¤Î»Ï¤Þ¤ê¡£ -ESC ^ PM ¥×¥é¥¤¥Ð¥·¡¼¥á¥Ã¥»¡¼¥¸(ESC \\ ¤Ç½ª¤ï¤ë)¡£ -ESC \\ ST ʸ»úÎó¤Î½ªÃ¼Ê¸»ú¡£ -ESC * ... G2 ʸ»ú½¸¹ç¤ò»ØÄꤹ¤ë¡£ -ESC + ... G3 ʸ»ú½¸¹ç¤ò»ØÄꤹ¤ë¡£ +ESC N SS2 シングルシフト 2 + (次の文字だけ G2 文字集合を選択する)。 +ESC O SS3 シングルシフト 3 + (次の文字だけ G3 文字集合を選択する)。 +ESC P DCS デバイス制御文字列 (ESC \\ で終わる) +ESC X SOS 文字列の始まり。 +ESC ^ PM プライバシーメッセージ(ESC \\ で終わる)。 +ESC \\ ST 文字列の終端文字。 +ESC * ... G2 文字集合を指定する。 +ESC + ... G3 文字集合を指定する。 .TE .PP .BR xterm (1) -(VT100 ¥â¡¼¥É)¤Ï ESC c, ESC # 8, ESC >, ESC =, +(VT100 モード)は ESC c, ESC # 8, ESC >, ESC =, ESC D, ESC E, ESC H, ESC M, ESC N, ESC O, ESC P ... ESC \\, -ESC Z ¤òǧ¼±¤¹¤ë("¤ï¤¿¤·¤Ï¹âÅù¥Ó¥Ç¥ª¥ª¥×¥·¥ç¥óÉÕ¤­¤Î VT100 ¤Ç¤¹"¤È¤¤¤¦ -°ÕÌ£¤Ç ESC [ ? 1 ; 2 c ¤ÈÊÖÅú¤¹¤ë)¡¢ESC ^ ... ESC \\ ¤Ï¾å½Ò¤ÈƱ¤¸°ÕÌ£¤ò -¤¢¤é¤ï¤¹¡£ESC (, ESC ), ESC *, ESC + ¤Ë³¤¯ 0, A, B ¤ò DEC Æüìʸ»ú¤È -¤·¤Æ¼õ¤±¡¢¤½¤ì¤¾¤ì¥é¥¤¥ó¥É¥í¡¼¥¤¥ó¥°(line drawing) ¤Î¥»¥Ã¥È¡¢UK¡¢ -US-ASCII ¤ò¤¢¤é¤ï¤¹¡£ -.PP -¥æ¡¼¥¶¡¼¤Ï \fBxterm\fP(1) ¤¬ VT220 ÆÃÍ­¤Î¥³¥ó¥È¥í¡¼¥ë¥·¡¼¥±¥ó¥¹¤Ë -È¿±þ¤¹¤ë¤è¤¦¤ËÀßÄê¤Ç¤­¡¢¤Þ¤¿ÀßÄê¤È½é´ü²½¤Î¤µ¤ì¤«¤¿¤Ë¤è¤Ã¤Æ -¼«Ê¬¼«¿È¤ò VT52, VT100 ¤Ê¤É¤Èǧ¼±¤¹¤ë¡£ -.PP -xterm ¤Ï¡¢ÆÃÄê¤Î¥ê¥½¡¼¥¹¤ÎÀßÄê¤Î¤¿¤á¤Ë ESC ] (OSC) ¤ò¼õ¤±ÉÕ¤±¤ë¡£ -ECMA-48 ¤Îʸ»úÎó½ªÃ¼Ê¸»ú (ST) ¤Ë²Ã¤¨¤Æ¡¢ -\fBxterm\fP(1) ¤Ï BEL ¤ò OSC ʸ»úÎó¤ò½ªÃ¼¤¹¤ë¤â¤Î¤È¤·¤Æ¼õ¤±ÉÕ¤±¤ë¡£ -°Ê²¼¤Ï \fBxterm\fP(1) ¤¬Ç§¼±¤¹¤ë OSC ¥³¥ó¥È¥í¡¼¥ë¥·¡¼¥±¥ó¥¹¤Î°ìÉô¤Ç¤¢¤ë¡£ +ESC Z を認識する("わたしは高等ビデオオプション付きの VT100 です"という +意味で ESC [ ? 1 ; 2 c と返答する)、ESC ^ ... ESC \\ は上述と同じ意味を +あらわす。ESC (, ESC ), ESC *, ESC + に続く 0, A, B を DEC 特殊文字と +して受け、それぞれラインドローイング(line drawing) のセット、UK、 +US-ASCII をあらわす。 +.PP +ユーザーは \fBxterm\fP(1) が VT220 特有のコントロールシーケンスに +反応するように設定でき、また設定と初期化のされかたによって +自分自身を VT52, VT100 などと認識する。 +.PP +xterm は、特定のリソースの設定のために ESC ] (OSC) を受け付ける。 +ECMA-48 の文字列終端文字 (ST) に加えて、 +\fBxterm\fP(1) は BEL を OSC 文字列を終端するものとして受け付ける。 +以下は \fBxterm\fP(1) が認識する OSC コントロールシーケンスの一部である。 .TS l l. -ESC ] 0 ; \fItxt\fP ST ¥¢¥¤¥³¥ó̾¤È¥¦¥¤¥ó¥É¥¦¥¿¥¤¥È¥ë¤ò \fItxt\fP ¤Ë - ¥»¥Ã¥È¤¹¤ë¡£ -ESC ] 1 ; \fItxt\fP ST ¥¢¥¤¥³¥ó̾¤ò \fItxt\fP ¤Ë¥»¥Ã¥È¤¹¤ë¡£ -ESC ] 2 ; \fItxt\fP ST ¥¦¥¤¥ó¥É¥¦¥¿¥¤¥È¥ë¤ò \fItxt\fP ¤Ë¥»¥Ã¥È¤¹¤ë¡£ -ESC ] 4 ; \fInum\fP; \fItxt\fP ST ANSI ¿§ \fInum\fP ¤ò \fItxt\fP ¤Ë¥»¥Ã¥È¤¹¤ë¡£ -ESC ] 10 ; \fI\fItxt\fP\fP ST ưŪ¥Æ¥­¥¹¥È¿§¤ò \fItxt\fP ¤Ë¥»¥Ã¥È¤¹¤ë¡£ -ESC ] 4 6 ; \fIname\fP ST ¥Á¥§¥ó¥¸¥í¥°¥Õ¥¡¥¤¥ë¤ò \fIname\fP ¤ËÊѹ¹¤¹¤ë(Ä̾ï¤Ï - ¥³¥ó¥Ñ¥¤¥ë»þ¥ª¥×¥·¥ç¥ó¤Ë¤è¤ê̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë)¡£ -ESC ] 5 0 ; \fIfn\fP ST ¥Õ¥©¥ó¥È¤ò \fIfn\fP ¤Ë¥»¥Ã¥È¤¹¤ë¡£ +ESC ] 0 ; \fItxt\fP ST アイコン名とウインドウタイトルを \fItxt\fP に + セットする。 +ESC ] 1 ; \fItxt\fP ST アイコン名を \fItxt\fP にセットする。 +ESC ] 2 ; \fItxt\fP ST ウインドウタイトルを \fItxt\fP にセットする。 +ESC ] 4 ; \fInum\fP; \fItxt\fP ST ANSI 色 \fInum\fP を \fItxt\fP にセットする。 +ESC ] 10 ; \fI\fItxt\fP\fP ST 動的テキスト色を \fItxt\fP にセットする。 +ESC ] 4 6 ; \fIname\fP ST チェンジログファイルを \fIname\fP に変更する(通常は + コンパイル時オプションにより無効になっている)。 +ESC ] 5 0 ; \fIfn\fP ST フォントを \fIfn\fP にセットする。 .TE .PP -°Ê²¼¤Î¤â¤Î¤Ï¡¢¾¯¤·°ã¤Ã¤¿°ÕÌ£¤Ë¤È¤é¤ì¤ë -(¤è¤ê¿¤¯¤Î¾õÂÖ¤òÊݸ¤·¡¢¤è¤ê VT100/VT220 ¤Ë¶á¤¤¤Õ¤ë¤Þ¤¤¤ò¤¹¤ë): +以下のものは、少し違った意味にとられる +(より多くの状態を保存し、より VT100/VT220 に近いふるまいをする): .LP .TS l l l. -ESC 7 DECSC ¥«¡¼¥½¥ë¤ÎÊݸ¡£ -ESC 8 DECRC ¥«¡¼¥½¥ë¤ÎÉü¸µ¡£ +ESC 7 DECSC カーソルの保存。 +ESC 8 DECRC カーソルの復元。 .TE .PP -¤Þ¤¿¡¢¼¡¤Î¤â¤Î¤âǧ¼±¤¹¤ë: +また、次のものも認識する: .TS l l l. -ESC F ¥«¡¼¥½¥ë¤ò¥¹¥¯¥ê¡¼¥ó¤Îº¸²¼¤Ë°ÜÆ°¤¹¤ë¡£ - (\fBxterm\fP(1) ¤Î \fBhpLowerleftBugCompat\fP¥ê¥½¡¼¥¹¤Ë¤è¤êÍ­¸ú¤Ê»þ) -ESC l (HP ¥¿¡¼¥ß¥Ê¥ëËè¤Ë)¥á¥â¥ê¥í¥Ã¥¯¡£ - ¥«¡¼¥½¥ë¤è¤ê¾å¤Î¥á¥â¥ê¤ò¥í¥Ã¥¯¤¹¤ë¡£ -ESC m (HP ¥¿¡¼¥ß¥Ê¥ëËè¤Ë)¥á¥â¥ê¥í¥Ã¥¯¤ò²ò½ü¤¹¤ë¡£ -ESC n LS2 G2 ʸ»ú½¸¹ç¤Î¸Æ¤Ó½Ð¤·¡£ -ESC o LS3 G3 ʸ»ú½¸¹ç¤Î¸Æ¤Ó½Ð¤·¡£ -ESC | LS3R G3 ʸ»ú½¸¹ç¤ò GR ¤È¤·¤Æ¸Æ¤Ó½Ð¤¹¡£ -ESC } LS2R G2 ʸ»ú½¸¹ç¤ò GR ¤È¤·¤Æ¸Æ¤Ó½Ð¤¹¡£ -ESC ~ LS1R G1 ʸ»ú½¸¹ç¤ò GR ¤È¤·¤Æ¸Æ¤Ó½Ð¤¹¡£ +ESC F カーソルをスクリーンの左下に移動する。 + (\fBxterm\fP(1) の \fBhpLowerleftBugCompat\fPリソースにより有効な時) +ESC l (HP ターミナル毎に)メモリロック。 + カーソルより上のメモリをロックする。 +ESC m (HP ターミナル毎に)メモリロックを解除する。 +ESC n LS2 G2 文字集合の呼び出し。 +ESC o LS3 G3 文字集合の呼び出し。 +ESC | LS3R G3 文字集合を GR として呼び出す。 +ESC } LS2R G2 文字集合を GR として呼び出す。 +ESC ~ LS1R G1 文字集合を GR として呼び出す。 .TE .PP -¤Þ¤¿ ESC % ¤òǧ¼±¤·¡¢Linux ¥³¥ó¥½¡¼¥ë¤è¤ê¹¹¤Ë´°Á´¤Ê UTF-8 ¼ÂÁõ¤òÄ󶡤¹¤ë¡£ +また ESC % を認識し、Linux コンソールより更に完全な UTF-8 実装を提供する。 .\" .PP -.B "CSI ¥·¡¼¥±¥ó¥¹" +.B "CSI シーケンス" .sp -X11R5 ͳÍè¤Î¤è¤¦¤Ê¡¢¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Î \fBxterm\fP(1) ¤Ï¥Ö¥ê¥ó¥¯ SGR ¤ò -¥Ü¡¼¥ë¥É SGR ¤È¤·¤Æ²ò¼á¤¹¤ë¡£ -1995 ǯ¤Î XFree86 3.1.2A ¤Î¤è¤¦¤Ê¡¢ANSI ¥«¥é¡¼¤¬¼ÂÁõ¤µ¤ì¤¿¡¢¤è¤ê¿·¤·¤¤ -¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢¥Ö¥ê¥ó¥¯Â°À­¤ò¿§¤È¤·¤Æɽ¼¨¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¤³¤ì¤ò -²þÁ±¤·¤Æ¤¤¤ë¡£ -ºÇ¶á¤Î¥Ð¡¼¥¸¥ç¥ó¤Î xterm ¤Ï¥Ö¥ê¥ó¥¯ SGR ¤ò¥Æ¥­¥¹¥È¤ò¥Ö¥ê¥ó¥¯¤µ¤»¤ë¤³¤È¤Ç -¼ÂÁõ¤·¡¢¤µ¤é¤Ë¤Þ¤¿¡¢SGR ɽ¼¨¤ÎÂåÂذƤȤ·¤Æ¿§ÉÕ¤­¤Î¥Æ¥­¥¹¥È¤âÍøÍѤǤ­¤ë¡£ -Stock X11R6 ÈǤǤϡ¢XFree86 xterm ¤¬ÁȤßÆþ¤ì¤é¤ì¤¿ X11R6.8 ¥ê¥ê¡¼¥¹¤Þ¤Ç -¿§ÀßÄê SGR ¤òǧ¼±¤·¤Ê¤«¤Ã¤¿¡£ -Linux ¤¬Ç§¼±¤¹¤ë¾¤Î¤¹¤Ù¤Æ¤Î ECMA-48 CSI ¥·¡¼¥±¥ó¥¹¤Ï +X11R5 由来のような、古いバージョンの \fBxterm\fP(1) はブリンク SGR を +ボールド SGR として解釈する。 +1995 年の XFree86 3.1.2A のような、ANSI カラーが実装された、より新しい +バージョンでは、ブリンク属性を色として表示することによってこれを +改善している。 +最近のバージョンの xterm はブリンク SGR をテキストをブリンクさせることで +実装し、さらにまた、SGR 表示の代替案として色付きのテキストも利用できる。 +Stock X11R6 版では、XFree86 xterm が組み入れられた X11R6.8 リリースまで +色設定 SGR を認識しなかった。 +Linux が認識する他のすべての ECMA-48 CSI シーケンスは .I xterm -¤Ç¤âǧ¼±¤µ¤ì¤ë¤¬¡¢\fBxterm\fP(1) ¤Ï Linux ¤¬Ç§¼±¤·¤Ê¤¤ -¤¤¤¯¤Ä¤«¤Î ECMA-48 ¤È DEC ¤Î¥³¥ó¥È¥í¡¼¥ë¥·¡¼¥±¥ó¥¹¤â¼ÂÁõ¤·¤Æ¤¤¤ë¡£ +でも認識されるが、\fBxterm\fP(1) は Linux が認識しない +いくつかの ECMA-48 と DEC のコントロールシーケンスも実装している。 .PP -\fBxterm\fP(1) ¤Ï¾å½Ò¤Î¤¹¤Ù¤Æ¤Î DEC ¥×¥é¥¤¥Ù¡¼¥È¥â¡¼¥É¤Î¥·¡¼¥±¥ó¥¹¤òǧ¼±¤¹¤ë¤¬¡¢ -Linux ¥×¥é¥¤¥Ù¡¼¥È¥â¡¼¥É¤Î¥·¡¼¥±¥ó¥¹¤Ï¤É¤ì¤âǧ¼±¤·¤Ê¤¤¡£ -\fBxterm\fP(1) ¼«¿È¤Î¥×¥é¥¤¥Ù¡¼¥È¥â¡¼¥É¥·¡¼¥±¥ó¥¹¤Ë´Ø¤·¤Æ¤ÎµÄÏÀ¤Ï¡¢ -X ÇÛÉۤȤȤâ¤ËÆþ¼ê²Äǽ¤Ê Edward Moy, Stephen Gildea,Thomas E. Dickey ¤Ë¤è¤ë +\fBxterm\fP(1) は上述のすべての DEC プライベートモードのシーケンスを認識するが、 +Linux プライベートモードのシーケンスはどれも認識しない。 +\fBxterm\fP(1) 自身のプライベートモードシーケンスに関しての議論は、 +X 配布とともに入手可能な Edward Moy, Stephen Gildea,Thomas E. Dickey による \fIXterm Control Sequences\fP -¥É¥­¥å¥á¥ó¥È¤ò»²¾È¤µ¤ì¤¿¤¤¡£ -¤³¤Î¥É¥­¥å¥á¥ó¥È¤Ï¡¢´Ê·é¤Ê¤â¤Î¤Ç¤¢¤ë¤¬¡¢¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤è¤ê -ÍÚ¤«¤ËŤ¤¤â¤Î¤Ç¤¢¤ë¡£ -ǯÂå½ç¤Î³µ´Ñ¤È¤·¤Æ¤Ï¡¢ +ドキュメントを参照されたい。 +このドキュメントは、簡潔なものであるが、このマニュアルページより +遥かに長いものである。 +年代順の概観としては、 .PP .in +4n http://invisible-island.net/xterm/xterm.log.html .in .PP -¤Ë¤Ï xterm ¤ÎÊѹ¹¤Î¾ÜºÙ¤¬¤¢¤ë¡£ +には xterm の変更の詳細がある。 .PP -\fIvttest\fP ¤Ï +\fIvttest\fP は .PP .in +4n http://invisible-island.net/vttest/ .in .PP -¤ÇÆþ¼ê¤Ç¤­¡¢¤³¤ì¤é¤Î¥³¥ó¥È¥í¡¼¥ë¥·¡¼¥±¥ó¥¹¤Î¿¤¯¤Ë´Ø¤¹¤ë¥Ç¥â¤ò¹Ô¤¦¡£ -\fBxterm\fP(1) ¥½¡¼¥¹ÇÛÉۥѥ屡¼¥¸¤Ë¤Ï -¤½¤Î¾¤Îµ¡Ç½¤ò³Ø¤Ö¤³¤È¤¬½ÐÍè¤ë¥µ¥ó¥×¥ë¥¹¥¯¥ê¥×¥È¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -ESC 8 (DECRC) ¤Ï ESC % ¤ÇÊѹ¹¤µ¤ì¤¿Ê¸»ú½¸¹ç¤òÉü¸µ¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -.SH ¥Ð¥° -2.0.23 ¤Ç¤Ï CSI ¤¬²õ¤ì¤Æ¤¤¤Æ¡¢¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹Ãæ¤Î NUL ¤¬ -̵»ë¤µ¤ì¤Ê¤¤¡£ -.PP -¸Å¤¤¥Ð¡¼¥¸¥ç¥ó(2.0 °Ê¹ß)¤Î¥«¡¼¥Í¥ë¤Ë¤Ï¡¢8 ¥Ó¥Ã¥ÈÀ©¸æ¥·¡¼¥±¥ó¥¹¤ò²ò¼á¤¹¤ë¡£ -¤³¤ì¤é¤Î "C1 ¥³¥ó¥È¥í¡¼¥ë" ¤Ï ESC [, ESC ] ¤ª¤è¤ÓƱÍͤÊÀ©¸æ¥·¡¼¥±¥ó¥¹ -µ¯Æ°»Ò¤òÃÖ¤­´¹¤¨¤ë¤¿¤á¤Ë 128 ¤«¤é 159 ¤Î¥³¡¼¥É¤ò»È¤¦¡£ -¿·¤·¤¤¥«¡¼¥Í¥ë¤Ç¤Ï (UTF-8 Âбþ¤ÎÊѹ¹»þ¤Ë¸«Íî¤È¤µ¤ì¤¿¤«²õ¤ì¤¿¤¿¤á¤Ë) -À£ÃǤ·¤Æ¤¤¤ë¤¬¡¢¼ÂÁõ¤ÏÉÔ´°Á´¤Ç¿®Íê¤Ç¤­¤Ê¤¤¤â¤Î¤Èɾ²Á¤µ¤ì¤Æ¤¤¤ë¡£ -.PP -Linux "¥×¥é¥¤¥Ù¡¼¥È¥â¡¼¥É" ¥·¡¼¥±¥ó¥¹¤Ï ECMA-48 ¤Î¥×¥é¥¤¥Ù¡¼¥È¥â¡¼¥É -¥³¥ó¥È¥í¡¼¥ë¥·¡¼¥±¥ó¥¹¤Î¥ë¡¼¥ë¤Ë½¾¤Ã¤Æ¤¤¤Ê¤¤¡£ -Æäˡ¢ ] ¤Ç½ª¤ï¤ë¤â¤Î¤Ïɸ½à½ªÃ¼Ê¸»ú¤ò»È¤¨¤Ê¤¤¡£ -OSC(¥Ñ¥ì¥Ã¥ÈÀßÄê)¥·¡¼¥±¥ó¥¹¤ÏÂ礭¤ÊÌäÂ꤬¤¢¤ë¡£ -\fBxterm\fP(1) ¤Ï¤³¤ì¤òʸ»úÎó½ªÃ¼Ê¸»ú (ST) ¤¬É¬Íפʥ³¥ó¥È¥í¡¼¥ë¥·¡¼¥±¥ó¥¹¤È -²ò¼á¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ -(ÉÔÀµ¤Ê¥³¥ó¥È¥í¡¼¥ë¥·¡¼¥±¥ó¥¹¤Ê¤Î¤Ç)̵»ë¤µ¤ì¤ë \fBsetterm\fP(1) ¥·¡¼¥±¥ó¥¹¤È -°ã¤¤¡¢¥Ñ¥ì¥Ã¥È¥·¡¼¥±¥ó¥¹¤Ï \fBxterm\fP(1) ¤ò¥Ï¥ó¥°¤µ¤»¤ë¤«¤â¤·¤ì¤Ê¤¤ -(¤·¤«¤·¥ê¥¿¡¼¥ó¥­¡¼¤ò²¡¤¹¤³¤È¤Ç²óÉü¤Ç¤­¤ë)¡£ -Linux ¥³¥ó¥È¥í¡¼¥ë¥·¡¼¥±¥ó¥¹¤ò¥Ï¡¼¥É¥³¡¼¥É¤·¤Æ¤¤¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë -Ŭ±þ¤µ¤»¤ë¤Ë¤Ï¡¢\fBxterm\fP(1) ¥ê¥½¡¼¥¹¤Î \fBbrokenLinuxOSC\fP ¤ò -¿¿ (true) ¤ËÀßÄꤹ¤ë¡£ -.PP -¤³¤Î¥É¥­¥å¥á¥ó¥È¤Î¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢Linux ¤¬ ECMA-48 ¤ÎÉԲĻë¥Æ¥­¥¹¥È¤Î -¥³¥ó¥È¥í¡¼¥ë¥·¡¼¥±¥ó¥¹¤òǧ¼±¤¹¤ë¤«¤Î¤è¤¦¤Ë½ñ¤«¤ì¤Æ¤¤¤¿¡£ -¤³¤ì¤Ï̵»ë¤µ¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +で入手でき、これらのコントロールシーケンスの多くに関するデモを行う。 +\fBxterm\fP(1) ソース配布パッケージには +その他の機能を学ぶことが出来るサンプルスクリプトが入っている。 +.SH 注意 +ESC 8 (DECRC) は ESC % で変更された文字集合を復元することはできない。 +.SH バグ +2.0.23 では CSI が壊れていて、エスケープシーケンス中の NUL が +無視されない。 +.PP +古いバージョン(2.0 以降)のカーネルには、8 ビット制御シーケンスを解釈する。 +これらの "C1 コントロール" は ESC [, ESC ] および同様な制御シーケンス +起動子を置き換えるために 128 から 159 のコードを使う。 +新しいカーネルでは (UTF-8 対応の変更時に見落とされたか壊れたために) +寸断しているが、実装は不完全で信頼できないものと評価されている。 +.PP +Linux "プライベートモード" シーケンスは ECMA-48 のプライベートモード +コントロールシーケンスのルールに従っていない。 +特に、 ] で終わるものは標準終端文字を使えない。 +OSC(パレット設定)シーケンスは大きな問題がある。 +\fBxterm\fP(1) はこれを文字列終端文字 (ST) が必要なコントロールシーケンスと +解釈するかもしれないからである。 +(不正なコントロールシーケンスなので)無視される \fBsetterm\fP(1) シーケンスと +違い、パレットシーケンスは \fBxterm\fP(1) をハングさせるかもしれない +(しかしリターンキーを押すことで回復できる)。 +Linux コントロールシーケンスをハードコードしているアプリケーションに +適応させるには、\fBxterm\fP(1) リソースの \fBbrokenLinuxOSC\fP を +真 (true) に設定する。 +.PP +このドキュメントの古いバージョンでは、Linux が ECMA-48 の不可視テキストの +コントロールシーケンスを認識するかのように書かれていた。 +これは無視される。 +.SH 関連項目 .BR console (4), .BR console_ioctl (4), .BR charsets (7) diff --git a/release/man4/console_ioctl.4 b/release/man4/console_ioctl.4 index bd807cb1..fd7fe037 100644 --- a/release/man4/console_ioctl.4 +++ b/release/man4/console_ioctl.4 @@ -49,165 +49,165 @@ .\" Updated Tue Jan 28 JST 2003 by Kentaro Shirakata .\" .TH CONSOLE_IOCTL 4 2009-02-28 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -console_ioctl \- ¥³¥ó¥½¡¼¥ëüËö¤È²¾ÁÛ¥³¥ó¥½¡¼¥ë¤Î ioctl -.SH ÀâÌÀ -¼¡¤Î¤è¤¦¤Ê Linux ¸ÇÍ­¤Î +.SH 名前 +console_ioctl \- コンソール端末と仮想コンソールの ioctl +.SH 説明 +次のような Linux 固有の .BR ioctl (2) -¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¤½¤ì¤¾¤ì3ÈÖÌܤΰú¿ô¤¬É¬ÍפǤ¢¤ë¡¢¤³¤³¤Ç¤Ï \fIargp\fP ¤È¤¹¤ë¡£ +がサポートされている。 +それぞれ3番目の引数が必要である、ここでは \fIargp\fP とする。 .IP \fBKDGETLED\fP -LED ¤Î¾õÂÖ¤ò¼èÆÀ¤¹¤ë¡£ -\fIargp\fP ¤Ï \fIchar\fP ¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ -\fI*argp\fP ¤Î²¼°Ì 3 ¥Ó¥Ã¥È¤Ë°Ê²¼¤Î¤è¤¦¤Ë LED ¤Î¾õÂÖ¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +LED の状態を取得する。 +\fIargp\fP は \fIchar\fP のポインターである。 +\fI*argp\fP の下位 3 ビットに以下のように LED の状態がセットされる。 - LED_CAP 0x04 ¥­¥ã¥Ô¥¿¥ë¥í¥Ã¥¯¤¬ÅÀÅô - LEC_NUM 0x02 ¥Ê¥ó¥Ð¡¼¥í¥Ã¥¯¤¬ÅÀÅô - LED_SCR 0x01 ¥¹¥¯¥í¡¼¥ë¥í¥Ã¥¯¤¬ÅÀÅô + LED_CAP 0x04 キャピタルロックが点灯 + LEC_NUM 0x02 ナンバーロックが点灯 + LED_SCR 0x01 スクロールロックが点灯 .IP \fBKDSETLED\fP -LED¤òÅÀÅô¤µ¤»¤ë¡£LED¤Ï \fIargp\fP ¤Î²¼°Ì 3 ¥Ó¥Ã¥È¤Ë½¾¤¤ÅÀÅô¤µ¤ì¤ë¡£ -¤·¤«¤·¡¢¤è¤ê¹â°Ì¤Î¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë»þ¤Ë¤Ï¡¢¥­¥ã¥Ô¥¿¥ë¥í¥Ã¥¯¡¢ -¥Ê¥ó¥Ð¡¼¥í¥Ã¥¯¡¢¥¹¥¯¥í¡¼¥ë¥í¥Ã¥¯¤Î¥­¡¼¥Ü¡¼¥Éµ¡Ç½¤Î¾õÂÖ¤òɽ¼¨¤¹¤ë LED ¤Ï -Ä̾ï¾õÂÖ¤ËÌá¤ë¡£ +LEDを点灯させる。LEDは \fIargp\fP の下位 3 ビットに従い点灯される。 +しかし、より高位のビットがセットされている時には、キャピタルロック、 +ナンバーロック、スクロールロックのキーボード機能の状態を表示する LED は +通常状態に戻る。 .LP -¥«¡¼¥Í¥ë 1.1.54 °ÊÁ°¤Ï¡¢LED ¤Ï¤½¤ì¤¾¤ì¤Î¥­¡¼¥Ü¡¼¥É¥Õ¥é¥°¤Î¾õÂÖ¤òÈ¿±Ç¤¹¤ë -¤À¤±¤Ç¡¢KDGETLED/KDSETLED ¤â¥­¡¼¥Ü¡¼¥É¥Õ¥é¥°¤òÊѹ¹¤¹¤ë¤À¤±¤Ç¤¢¤Ã¤¿¡£ -¥«¡¼¥Í¥ël 1.1.54 ¤«¤é¤Ï LED ¤ËǤ°Õ¤Îɽ¼¨¤ò¤¹¤ë»ö¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤¬¡¢ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥­¡¼¥Ü¡¼¥É¥Õ¥é¥°¤òɽ¼¨¤¹¤ë¡£ -¼¡¤Ë¼¨¤¹ 2 ¤Ä¤Î ioctl ¤Ï¥­¡¼¥Ü¡¼¥É¥Õ¥é¥°¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤Î¤ËÍѤ¤¤é¤ì¤ë¡£ +カーネル 1.1.54 以前は、LED はそれぞれのキーボードフラグの状態を反映する +だけで、KDGETLED/KDSETLED もキーボードフラグを変更するだけであった。 +カーネルl 1.1.54 からは LED に任意の表示をする事ができるようになったが、 +デフォルトではキーボードフラグを表示する。 +次に示す 2 つの ioctl はキーボードフラグにアクセスするのに用いられる。 .IP \fBKDGKBLED\fP -¥­¥ã¥Ô¥¿¥ë¥í¥Ã¥¯¡¢¥Ê¥ó¥Ð¡¼¥í¥Ã¥¯¡¢¥¹¥¯¥í¡¼¥ë¥í¥Ã¥¯¤Î(LED ¤Îɽ¼¨¤Ç¤Ï -¤Ê¤¯)¥­¡¼¥Ü¡¼¥É¥Õ¥é¥°¤òÆÀ¤ë¡£ -\fIargp\fP ¤Ï¥Õ¥é¥°¤Î¾õÂÖ¤¬¥»¥Ã¥È¤µ¤ì¤ëʸ»úÊÑ¿ô¤ò»Ø¤¹¡£ -(0x7)¤Ç¥Þ¥¹¥¯¤·¤ÆÆÀ¤é¤ì¤ë²¼°Ì 3 ¥Ó¥Ã¥È¤¬¸½ºß¤Î¥Õ¥é¥°¤Î¾õÂÖ¤ò¼¨¤·¡¢ -(0x70)¤Ç¥Þ¥¹¥¯¤·¤ÆÆÀ¤é¤ì¤ë¼¡¤Î 3 ¥Ó¥Ã¥È¤¬¥Ç¥Õ¥©¥ë¥È¤Î¥Õ¥é¥°¤Î¾õÂÖ¤ò -¼¨¤¹¡£(¥«¡¼¥Í¥ë 1.1.54°Ê¹ß) +キャピタルロック、ナンバーロック、スクロールロックの(LED の表示では +なく)キーボードフラグを得る。 +\fIargp\fP はフラグの状態がセットされる文字変数を指す。 +(0x7)でマスクして得られる下位 3 ビットが現在のフラグの状態を示し、 +(0x70)でマスクして得られる次の 3 ビットがデフォルトのフラグの状態を +示す。(カーネル 1.1.54以降) .IP \fBKDSKBLED\fP -¥­¥ã¥Ô¥¿¥ë¥í¥Ã¥¯¡¢¥Ê¥ó¥Ð¡¼¥í¥Ã¥¯¡¢¥¹¥¯¥í¡¼¥ë¥í¥Ã¥¯¤Î(LED ¤Îɽ¼¨¤Ç¤Ï¤Ê¤¯) -¥­¡¼¥Ü¡¼¥É¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -\fIargp\fP ¤¬¥»¥Ã¥È¤·¤¿¤¤¥Õ¥é¥°¤Ç¤¢¤ë¡£ -(0x7)¤Ç¥Þ¥¹¥¯¤·¤ÆÆÀ¤é¤ì¤ë²¼°Ì 3 ¥Ó¥Ã¥È¤¬¥Õ¥é¥°¤Î¾õÂ֤ǡ¢(0x70)¤Ç¥Þ¥¹¥¯¤·¤Æ -ÆÀ¤é¤ì¤ë¼¡¤Î 3 ¥Ó¥Ã¥È¤¬¥Ç¥Õ¥©¥ë¥È¤Î¥Õ¥é¥°¤Î¾õÂ֤Ǥ¢¤ë¡£(¥«¡¼¥Í¥ë -1.1.54°Ê¹ß) +キャピタルロック、ナンバーロック、スクロールロックの(LED の表示ではなく) +キーボードフラグをセットする。 +\fIargp\fP がセットしたいフラグである。 +(0x7)でマスクして得られる下位 3 ビットがフラグの状態で、(0x70)でマスクして +得られる次の 3 ビットがデフォルトのフラグの状態である。(カーネル +1.1.54以降) .IP \fBKDGKBTYPE\fP -¥­¡¼¥Ü¡¼¥É¤Î¼ïÎà¤òÆÀ¤ë¡£¤³¤ì¤ÏÃÍ 0x02 ¤ÈÄêµÁ¤µ¤ì¤Æ¤¤¤ë KB_101¤òÊÖ¤¹¡£ +キーボードの種類を得る。これは値 0x02 と定義されている KB_101を返す。 .IP \fBKDADDIO\fP -I/O¥Ý¡¼¥È¤òÍ­¸ú¤Êʪ¤È¤·¤Æ²Ã¤¨¤ë¡£¤³¤ì¤Ï \fIioperm(arg,1,1)\fP ¤ÈÅù²Á¤Ç¤¢¤ë¡£ +I/Oポートを有効な物として加える。これは \fIioperm(arg,1,1)\fP と等価である。 .IP \fBKDDELIO\fP -I/O¥Ý¡¼¥È¤òÍ­¸ú¤Êʪ¤«¤é³°¤¹¡£¤³¤ì¤Ï \fIioperm(arg,1,0)\fP ¤ÈÅù²Á¤Ç¤¢¤ë¡£ +I/Oポートを有効な物から外す。これは \fIioperm(arg,1,0)\fP と等価である。 .IP \fBKDENABIO\fP -¥Ó¥Ç¥ª¥Ü¡¼¥É¤Ø¤Î I/O ¤ò²Äǽ¤Ë¤¹¤ë¡£ -¤³¤ì¤Ï \fIioperm(0x3b4, 0x3df-0x3b4+1, 1)\fP ¤ÈÅù²Á¤Ç¤¢¤ë¡£ +ビデオボードへの I/O を可能にする。 +これは \fIioperm(0x3b4, 0x3df-0x3b4+1, 1)\fP と等価である。 .IP \fBKDDISABIO\fP -¥Ó¥Ç¥ª¥Ü¡¼¥É¤Ø¤Î I/O ¤òÉÔ²Äǽ¤Ë¤¹¤ë¡£ -¤³¤ì¤Ï \fIioperm(0x3b4, 0x3df-0x3b4+1, 0)\fP ¤ÈÅù²Á¤Ç¤¢¤ë¡£ +ビデオボードへの I/O を不可能にする。 +これは \fIioperm(0x3b4, 0x3df-0x3b4+1, 0)\fP と等価である。 .IP \fBKDSETMODE\fP -¥Æ¥­¥¹¥È/¥°¥é¥Õ¥£¥¯¥¹¥â¡¼¥É¤òÀßÄꤹ¤ë¡£ -\fIargp\fP ¤Ï¼¡¤Î¤¦¤Á¤Î¤É¤ì¤«¡§ +テキスト/グラフィクスモードを設定する。 +\fIargp\fP は次のうちのどれか: KD_TEXT 0x00 KD_GRAPHICS 0x01 .IP \fBKDGETMODE\fP -¥Æ¥­¥¹¥È/¥°¥é¥Õ¥£¥¯¥¹¥â¡¼¥É¤ò¼èÆÀ¤¹¤ë¡£ -\fIargp\fP ¤¬»Ø¤¹ \fIlong\fP ·¿ÊÑ¿ô¤Ë -¾å½Ò¤ÎÃͤΤɤÁ¤é¤«¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +テキスト/グラフィクスモードを取得する。 +\fIargp\fP が指す \fIlong\fP 型変数に +上述の値のどちらかがセットされる。 .IP \fBKDMKTONE\fP -»ØÄꤵ¤ì¤¿Ä¹¤µ¤Î¥È¡¼¥ó¤òȯÀ¸¤¹¤ë¡£ -\fIargp\fP ¤Î²¼°Ì 16 ¥Ó¥Ã¥È¤Ï¥¯¥í¥Ã¥¯¥µ¥¤¥¯¥ë¤òñ°Ì¤Ë¤·¤Æ¼þ´ü¤ò»ØÄꤷ¡¢ -¾å°Ì 16 ¥Ó¥Ã¥È¤¬ msec ¤Îñ°Ì¤Çɽ¤·¤¿¡¢(¥È¡¼¥ó¤òȯÀ¸¤µ¤»¤ë)»þ´Ö¤ò»ØÄꤹ¤ë¡£ -¥È¡¼¥ó¤òȯÀ¸¤µ¤»¤ë»þ´Ö¤¬¥¼¥í¤Î¤È¤­¤Ï¡¢¥µ¥¦¥ó¥É¤Ï¥ª¥Õ¤Ë¤Ê¤ë¡£ -À©¸æ¤Ïľ¤Á¤ËÌá¤ë¡£ -Î㤨¤Ð¡¢\fIargp\fP = (125<<16) + 0x637 ¤È¤¹¤ì¤Ð¡¢Ä̾ï ctrl-G ¤ò²¡¤·¤¿»þ¤Ë -ȯÀ¸¤¹¤ë²»¤Ë¤Ê¤ë¡£ -(¥«¡¼¥Í¥ë 0.99pl1 °Ê¹ß;¤³¤Îµ¡Ç½¤Ï ¥«¡¼¥Í¥ë 2.1.49 ¤«¤é -2.1.50 ¤Ç¤Ï¥Ð¥°¤Î¤¿¤áÆ°ºî¤·¤Ê¤¤) +指定された長さのトーンを発生する。 +\fIargp\fP の下位 16 ビットはクロックサイクルを単位にして周期を指定し、 +上位 16 ビットが msec の単位で表した、(トーンを発生させる)時間を指定する。 +トーンを発生させる時間がゼロのときは、サウンドはオフになる。 +制御は直ちに戻る。 +例えば、\fIargp\fP = (125<<16) + 0x637 とすれば、通常 ctrl-G を押した時に +発生する音になる。 +(カーネル 0.99pl1 以降;この機能は カーネル 2.1.49 から +2.1.50 ではバグのため動作しない) .IP \fBKIOCSOUND\fP -²»¤ÎȯÀ¸¤Î³«»Ï¤äÄä»ß¤ò¹Ô¤¦¡£ -\fIargp\fP ¤Î²¼°Ì 16 ¥Ó¥Ã¥È¤Ï¥¯¥í¥Ã¥¯¥µ¥¤¥¯¥ë¤òñ°Ì¤È¤·¤Æ¼þ´ü¤ò¼¨¤¹¡£ -(¤Ä¤Þ¤ê \fIargp\fP = 1193180/¼þÇÈ¿ô)¡£ -\fIargp\fP = 0 ¤Î¾ì¹ç¡¢¥µ¥¦¥ó¥É¤Ï¥ª¥Õ¤Ë¤Ê¤ë¡£ -¤É¤Á¤é¤Î¾ì¹ç¤Ç¤â¡¢¤¿¤À¤Á¤ËÀ©¸æ¤ÏÌá¤ë¡£ +音の発生の開始や停止を行う。 +\fIargp\fP の下位 16 ビットはクロックサイクルを単位として周期を示す。 +(つまり \fIargp\fP = 1193180/周波数)。 +\fIargp\fP = 0 の場合、サウンドはオフになる。 +どちらの場合でも、ただちに制御は戻る。 .IP \fBGIO_CMAP\fP -¸½ºß¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥«¥é¡¼¥Þ¥Ã¥×¤ò¥«¡¼¥Í¥ë¤è¤ê¼èÆÀ¤¹¤ë¡£ +現在のデフォルトのカラーマップをカーネルより取得する。 .IP \fBPIO_CMAP\fP -¥Ç¥Õ¥©¥ë¥È¤Î¥Æ¥­¥¹¥È¥â¡¼¥É¤Î¥«¥é¡¼¥Þ¥Ã¥×¤òÊѹ¹¤¹¤ë¡£ -\fIargp\fP ¤¬»Ø¤¹ 48 ¥Ð¥¤¥È¤ÎÇÛÎóÃæ¤Ë¤Ï¡¢16 ¤Î²Äǽ¤Ê¥¹¥¯¥ê¡¼¥ó¤Î¿§¤ò¡¢ -ÀÖ¡¢ÎС¢ÀĤνç¤Ë 0 ¤ò¥ª¥Õ¡¢255¤òºÇÂ綯Å٤Ȥ·¤¿ÃͤȤ·¤ÆǼ¤á¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Î¿§¤Ï½ç¤Ë¡¢¹õ¡¢Ç»¤¤ÀÖ¡¢Ç»¤¤ÎС¢Ã㡢ǻ¤¤ÀÄ¡¢Ç»¤¤»ç¡¢Ç»¤¤¥·¥¢¥ó¡¢ -ÌÀ¤ë¤¤³¥¿§¡¢Ç»¤¤³¥¿§¡¢ÌÀ¤ë¤¤ÀÖ¡¢ÌÀ¤ë¤¤ÎС¢²«¡¢ÌÀ¤ë¤¤ÀÄ¡¢ÌÀ¤ë¤¤»ç¡¢ -ÌÀ¤ë¤¤¥·¥¢¥ó¡¢Çò¤Ç¤¢¤ë¡£(¥«¡¼¥Í¥ë 1.3.3°Ê¹ß) +デフォルトのテキストモードのカラーマップを変更する。 +\fIargp\fP が指す 48 バイトの配列中には、16 の可能なスクリーンの色を、 +赤、緑、青の順に 0 をオフ、255を最大強度とした値として納める。 +デフォルトの色は順に、黒、濃い赤、濃い緑、茶、濃い青、濃い紫、濃いシアン、 +明るい灰色、濃い灰色、明るい赤、明るい緑、黄、明るい青、明るい紫、 +明るいシアン、白である。(カーネル 1.3.3以降) .IP \fBGIO_FONT\fP -³ÈÄ¥¤µ¤ì¤¿·Á¼°¤Ç 256 ʸ»ú¤Î¥¹¥¯¥ê¡¼¥ó¥Õ¥©¥ó¥È¤òÆÀ¤ë¡£ -\fIargp\fP ¤Ï 8192 ¥Ð¥¤¥È¤ÎÇÛÎó¤ò»Ø¤¹¡£ -¸½ºß¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë¥Õ¥©¥ó¥È¤¬ 512 ʸ»ú¤Î¥Õ¥©¥ó¥È¤Ç¤¢¤ë¤«¡¢¥³¥ó¥½¡¼¥ë¤¬ -¥Æ¥­¥¹¥È¥â¡¼¥É¤Ç¤Ê¤¤»þ¤Ë¤Ï¼ºÇÔ¤· \fBEINVAL\fP ¤Î¥¨¥é¡¼¥³¡¼¥É¤òÊÖ¤¹¡£ +拡張された形式で 256 文字のスクリーンフォントを得る。 +\fIargp\fP は 8192 バイトの配列を指す。 +現在ロードされているフォントが 512 文字のフォントであるか、コンソールが +テキストモードでない時には失敗し \fBEINVAL\fP のエラーコードを返す。 .IP \fBGIO_FONTX\fP -¥¹¥¯¥ê¡¼¥ó¥Õ¥©¥ó¥È¤È¤½¤ì¤Ë´ØÏ¢¤·¤¿¾ðÊó¤ò¼èÆÀ¤¹¤ë¡£ -\fIargp\fP ¤Ï¹½Â¤ÂÎ consolefontdesc (\fBPIO_FONTX\fP ¤ò»²¾È¤Î¤³¤È)¤ò»Ø¤¹¡£ -´Ø¿ô¸Æ¤Ó½Ð¤·¤Î¤È¤­¤Ë¤Ï¡¢\fIcharcount\fP ¤Ë¤Ï¡¢\fIchardata\fP ¤¬»Ø¤¹ -¥Ð¥Ã¥Õ¥¡¤Ë¤ª¤µ¤Þ¤ëºÇÂç¤Îʸ»ú¿ô¤ò¥»¥Ã¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -´Ø¿ô¸Æ¤Ó½Ð¤·¤«¤éÌá¤Ã¤¿»þ¤Ë¤Ï \fIcharcount\fP ¤È \fIcharheight\fP ¤Ë¤Ï¡¢ -¸½ºß¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë¥Õ¥©¥ó¥È¤Î³ºÅö¤¹¤ë¥Ç¡¼¥¿¤¬¼ý¤á¤é¤ì¤Æ¤¤¤ë¡£ -ÇÛÎó \fIchardata\fP ¤Ë¤Ï¡¢ºÇ½é¤Ë \fIcharcount\fP ¤Ë¤¤¤ì¤¿Ãͤˤè¤Ã¤Æ -¥Õ¥©¥ó¥È¤ò¼ý¤á¤ë¤Î¤Ë½½Ê¬¤Ê¥¹¥Ú¡¼¥¹¤¬¤¢¤ë¤È¤ï¤«¤ì¤Ð¥Õ¥©¥ó¥È¥Ç¡¼¥¿¤¬¼ý¤á¤é¤ì¤ë¡£ -¤½¤¦¤Ç¤Ê¤¤»þ¤Ë¤Ï¡¢¥Ð¥Ã¥Õ¥¡¤ÏÊѹ¹¤µ¤ì¤º¡¢ \fIerrno\fP ¤Ë \fBENOMEM\fP ¤¬ -¥»¥Ã¥È¤µ¤ì¤ë(¥«¡¼¥Í¥ë 1.3.1 °Ê¹ß)¡£ +スクリーンフォントとそれに関連した情報を取得する。 +\fIargp\fP は構造体 consolefontdesc (\fBPIO_FONTX\fP を参照のこと)を指す。 +関数呼び出しのときには、\fIcharcount\fP には、\fIchardata\fP が指す +バッファにおさまる最大の文字数をセットしなければならない。 +関数呼び出しから戻った時には \fIcharcount\fP と \fIcharheight\fP には、 +現在ロードされているフォントの該当するデータが収められている。 +配列 \fIchardata\fP には、最初に \fIcharcount\fP にいれた値によって +フォントを収めるのに十分なスペースがあるとわかればフォントデータが収められる。 +そうでない時には、バッファは変更されず、 \fIerrno\fP に \fBENOMEM\fP が +セットされる(カーネル 1.3.1 以降)。 .IP \fBPIO_FONT\fP -256 ʸ»ú¤Î¥Õ¥©¥ó¥È¤ò¥»¥Ã¥È¤¹¤ë¡£EGA/VGA ¥­¥ã¥é¥¯¥¿¡¼¥¸¥§¥Í¥ì¡¼¥¿¡¼ -(character generator) ¤Ë¥Õ¥©¥ó¥È¤ò¥í¡¼¥É¤¹¤ë¡£ -\fIargp\fP ¤Ï¡¢8192 ¥Ð¥¤¥È(°ìʸ»ú 32 ¥Ð¥¤¥È)¤Î¥Þ¥Ã¥×¤ò»Ø¤¹¡£ -¥Þ¥Ã¥×¤Î¤¦¤Á¡¢ºÇ½é¤Î \fIN\fP ¤Î¤ß¤¬ 8x\fIN\fP ¤Î¥Õ¥©¥ó¥È¤Î¤¿¤á¤Ë -ÍѤ¤¤é¤ì¤ë(0 < \fIN\fP <= 32)¡£ -¤³¤Î¸Æ¤Ó½Ð¤·¤ò¤¹¤ë¤È Unicode ¤Î¥Þ¥Ã¥Ô¥ó¥°¤¬Ìµ¸ú¤Ë¤Ê¤ë¡£ +256 文字のフォントをセットする。EGA/VGA キャラクタージェネレーター +(character generator) にフォントをロードする。 +\fIargp\fP は、8192 バイト(一文字 32 バイト)のマップを指す。 +マップのうち、最初の \fIN\fP のみが 8x\fIN\fP のフォントのために +用いられる(0 < \fIN\fP <= 32)。 +この呼び出しをすると Unicode のマッピングが無効になる。 .IP \fBPIO_FONTX\fP -¥¹¥¯¥ê¡¼¥ó¥Õ¥©¥ó¥È¤È¡¢¤½¤ì¤Ë´ØÏ¢¤¹¤ë¥ì¥ó¥À¥ê¥ó¥°¾ðÊó¤ò¥»¥Ã¥È¤¹¤ë¡£ -\fIargp\fP ¤Ï¡¢°Ê²¼¤Î¹½Â¤ÂΤò»Ø¤¹¡£ +スクリーンフォントと、それに関連するレンダリング情報をセットする。 +\fIargp\fP は、以下の構造体を指す。 .in +4n .nf struct consolefontdesc { - unsigned short charcount; /* ¥Õ¥©¥ó¥È¤Îʸ»ú¿ô - (256 ¤Þ¤¿¤Ï 512) */ - unsigned short charheight; /* °ìʸ»ú¤ÎÁöººÀþ¤Î¿ô + unsigned short charcount; /* フォントの文字数 + (256 または 512) */ + unsigned short charheight; /* 一文字の走査線の数 (1-32) */ - char *chardata; /* Ÿ³«¤µ¤ì¤¿¥Õ¥©¥ó¥È¥Ç¡¼¥¿ */ + char *chardata; /* 展開されたフォントデータ */ }; .fi .in -ɬÍפʤ饹¥¯¥ê¡¼¥ó¤ÏŬÅö¤Ë¥µ¥¤¥ºÊѹ¹¤µ¤ì¡¢\fBSIGWINCH\fP ¤¬Å¬ÀÚ¤Ê -¥×¥í¥»¥¹¤ËÁ÷¤é¤ì¤ë¡£ -¤³¤Î¥³¡¼¥ë¤Ë¤è¤ê Unicode ¤Î¥Þ¥Ã¥Ô¥ó¥°¤¬Ìµ¸ú¤Ë¤Ê¤ë¡£ +必要ならスクリーンは適当にサイズ変更され、\fBSIGWINCH\fP が適切な +プロセスに送られる。 +このコールにより Unicode のマッピングが無効になる。 .IP \fBPIO_FONTRESET\fP -¥¹¥¯¥ê¡¼¥ó¥Õ¥©¥ó¥È¡¢¥µ¥¤¥º¡¢ Unicode ¥Þ¥Ã¥Ô¥ó¥°¤ò¥Ö¡¼¥È»þ¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ë -¥ê¥»¥Ã¥È¤¹¤ë¡£\fIargp\fP ¤ÏÍѤ¤¤é¤ì¤Ê¤¤¤¬¡¢¾­Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤Î -Linux ¤È¤Î¸ß´¹À­¤òÊݤĤ¿¤á¤Ë NULL ¤Ë¥»¥Ã¥È¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +スクリーンフォント、サイズ、 Unicode マッピングをブート時のデフォルト値に +リセットする。\fIargp\fP は用いられないが、将来のバージョンの +Linux との互換性を保つために NULL にセットすべきである。 .IP \fBGIO_SCRNMAP\fP -¥¹¥¯¥ê¡¼¥ó¥Þ¥Ã¥Ô¥ó¥°¤ò¥«¡¼¥Í¥ë¤è¤ê¼èÆÀ¤¹¤ë¡£\fIargp\fP ¤Ï¥µ¥¤¥º E_TABSZ ¤Î -Îΰè¤ò»Ø¤¹¡£¤½¤ÎÎΰè¤Ë¤Ï³Æ¥­¥ã¥é¥¯¥¿¡¼¤òɽ¼¨¤¹¤ë¤Î¤ËÍѤ¤¤é¤ì¤ë¥Õ¥©¥ó¥È¤Î -°ÌÃÖ¤¬¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¸Æ¤Ó½Ð¤·¤Ï¸½ºß¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë¥Õ¥©¥ó¥È¤¬ 256 ʸ»ú¤è¤ê¤â¿¤¤»þ¤Ë¤Ï -̵°ÕÌ£¤Ê¾ðÊó¤òÊÖ¤¹»ö¤¬Â¿¤¤¡£ +スクリーンマッピングをカーネルより取得する。\fIargp\fP はサイズ E_TABSZ の +領域を指す。その領域には各キャラクターを表示するのに用いられるフォントの +位置がロードされている。 +この呼び出しは現在ロードされているフォントが 256 文字よりも多い時には +無意味な情報を返す事が多い。 .IP \fBGIO_UNISCRNMAP\fP -¥Õ¥ë Unicode ¥¹¥¯¥ê¡¼¥ó¥Þ¥Ã¥Ô¥ó¥°¤ò¥«¡¼¥Í¥ë¤è¤ê¼èÆÀ¤¹¤ë¡£ -\fIargp\fP ¤Ï¥µ¥¤¥º E_TABSZ*sizeof(unsigned short) ¤ÎÎΰè¤ò»Ø¤¹¡£ -¤½¤ÎÎΰè¤Ë¤Ï³Æ¥­¥ã¥é¥¯¥¿¡¼¤ò¼¨¤¹ Unicode ¤¬¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë¡£ -U+F000 ¤Ë»Ï¤Þ¤ë Unicode ¤ÎÆÃÊ̤ʽ¸¹ç¤Ï¡¢¡Ö¥Õ¥©¥ó¥ÈľÀܤÊ(direct to font)¡× -¥Þ¥Ã¥Ô¥ó¥°¤ò¼¨¤¹¤Î¤ËÍѤ¤¤é¤ì¤ë(¥«¡¼¥Í¥ë 1.3.1 °Ê¹ß)¡£ +フル Unicode スクリーンマッピングをカーネルより取得する。 +\fIargp\fP はサイズ E_TABSZ*sizeof(unsigned short) の領域を指す。 +その領域には各キャラクターを示す Unicode がロードされている。 +U+F000 に始まる Unicode の特別な集合は、「フォント直接な(direct to font)」 +マッピングを示すのに用いられる(カーネル 1.3.1 以降)。 .IP \fBPIO_SCRNMAP\fP -¡Ö¥æ¡¼¥¶¡¼ÄêµÁ²Äǽ¤Ê(user definable)¡×(4ÈÖÌܤÎ)¥Æ¡¼¥Ö¥ë¤ò¥«¡¼¥Í¥ë¤Ë -¥í¡¼¥É¤¹¤ë¡£¤½¤Î¥Æ¡¼¥Ö¥ë¤Ï³Æ¥Ð¥¤¥È¤ò¥¹¥¯¥ê¡¼¥ó¥·¥ó¥Ü¥ë¤Ë¥Þ¥Ã¥Ô¥ó¥°¤¹¤ë¡£ -\fIargp\fP ¤Ï¥µ¥¤¥ºE_TABSZ¤ÎÎΰè¤ò»Ø¤¹¡£ +「ユーザー定義可能な(user definable)」(4番目の)テーブルをカーネルに +ロードする。そのテーブルは各バイトをスクリーンシンボルにマッピングする。 +\fIargp\fP はサイズE_TABSZの領域を指す。 .IP \fBPIO_UNISCRNMAP\fP -¡Ö¥æ¡¼¥¶¡¼ÄêµÁ²Äǽ¤Ê¡×(4ÈÖÌܤÎ)¥Æ¡¼¥Ö¥ë¤ò¥«¡¼¥Í¥ë¤Ë¥í¡¼¥É¤¹¤ë¡£ -¤½¤Î¥Æ¡¼¥Ö¥ë¤Ï³Æ¥Ð¥¤¥È¤ò¥æ¥Ë¥³¡¼¥É¤Ë¥Þ¥Ã¥Ô¥ó¥°¤·¡¢¤½¤Î¸å¡¢ -¸½ºß¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë¥æ¥Ë¥³¡¼¥É¤«¤é¥Õ¥©¥ó¥È¤Ø¤Î¥Þ¥Ã¥×¤Ë½¾¤¤ -¥¹¥¯¥ê¡¼¥ó¥·¥ó¥Ü¥ë¤ËÊÑ´¹¤µ¤ì¤ë¡£ -U+F000 ¤Ë»Ï¤Þ¤ë¥æ¥Ë¥³¡¼¥É¤ÏľÀÜ¥Õ¥©¥ó¥È¥·¥ó¥Ü¥ë¤Ë¥Þ¥Ã¥Ô¥ó¥°¤¹¤ë¤Î¤Ë -»È¤¨¤ë(¥«¡¼¥Í¥ë 1.3.1 °Ê¹ß) +「ユーザー定義可能な」(4番目の)テーブルをカーネルにロードする。 +そのテーブルは各バイトをユニコードにマッピングし、その後、 +現在ロードされているユニコードからフォントへのマップに従い +スクリーンシンボルに変換される。 +U+F000 に始まるユニコードは直接フォントシンボルにマッピングするのに +使える(カーネル 1.3.1 以降) .IP \fBGIO_UNIMAP\fP -Unicode ¤«¤é¥Õ¥©¥ó¥È¤Ø¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò¥«¡¼¥Í¥ë¤«¤é¼èÆÀ¤¹¤ë¡£ -\fIargp\fP ¤Ï¡¢ +Unicode からフォントへのマッピングをカーネルから取得する。 +\fIargp\fP は、 .in +4n .nf @@ -218,8 +218,8 @@ struct unimapdesc { .fi .in -¤È¤¤¤¦¹½Â¤ÂΤò»Ø¤¹¡£ -¤³¤³¤Ç \fIentries\fP ¤Ï¡¢ +という構造体を指す。 +ここで \fIentries\fP は、 .in +4n .nf @@ -230,14 +230,14 @@ struct unipair { .fi .in -¤È¤¤¤¦¹½Â¤ÂΤÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ -(¥«¡¼¥Í¥ë 1.1.92 °Ê¹ß) +という構造体の配列へのポインターである。 +(カーネル 1.1.92 以降) .IP \fBPIO_UNIMAP\fP -Unicode ¤«¤é¥Õ¥©¥ó¥È¤Ø¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò¥«¡¼¥Í¥ë¤Ë¥»¥Ã¥È¤¹¤ë¡£\fIargp\fP -¤Ï¹½Â¤ÂÎ \fIstruct unimapdesc\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£(¥«¡¼¥Í¥ë 1.1.92 °Ê¹ß) +Unicode からフォントへのマッピングをカーネルにセットする。\fIargp\fP +は構造体 \fIstruct unimapdesc\fP へのポインターである。(カーネル 1.1.92 以降) .IP \fBPIO_UNIMAPCLR\fP -¥Æ¡¼¥Ö¥ë¤ò¥¯¥ê¥¢¤·¡¢¤½¤Î»ö¤ò¥Ï¥·¥å¥¢¥ë¥´¥ê¥º¥à¤ËÅÁ¤¨¤ë¡£ -\fIargp\fP¤Ï +テーブルをクリアし、その事をハシュアルゴリズムに伝える。 +\fIargp\fPは .in +4n .nf @@ -249,32 +249,32 @@ struct unimapinit { .fi .in -¤È¤¤¤¦¹½Â¤ÂΤò»Ø¤¹¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ -(¥«¡¼¥Í¥ë 1.1.92 °Ê¹ß) +という構造体を指すポインターである。 +(カーネル 1.1.92 以降) .IP \fBKDGKBMODE\fP -¸½ºß¤Î¥­¡¼¥Ü¡¼¥É¥â¡¼¥É¤ò¼èÆÀ¤¹¤ë¡£\fIargp\fP ¤Î»Ø¤¹ \fIlong\fP ·¿ÊÑ¿ô¤¬¡¢ -¼¡¤Î¤¦¤Á¤Î¤É¤ì¤«¤ËÀßÄꤵ¤ì¤ë¡£ +現在のキーボードモードを取得する。\fIargp\fP の指す \fIlong\fP 型変数が、 +次のうちのどれかに設定される。 K_RAW 0x00 K_XLATE 0x01 K_MEDIUMRAW 0x02 K_UNICODE 0x03 .IP \fBKDSKBMODE\fP -¸½ºß¤Î¥­¡¼¥Ü¡¼¥É¥â¡¼¥É¤òÀßÄꤹ¤ë¡£ -\fIargp\fP ¤Ï¾åµ­¤ÎÃͤΤ¦¤Á¤Î¤É¤ì¤«¤ËÅù¤·¤¤ \fIlong\fP ¤Ë¤¹¤ë¡£ +現在のキーボードモードを設定する。 +\fIargp\fP は上記の値のうちのどれかに等しい \fIlong\fP にする。 .IP \fBKDGKBMETA\fP -¥á¥¿¥­¡¼¥Ï¥ó¥É¥ê¥ó¥°¥â¡¼¥É(meta key handling mode)¤ò¼èÆÀ¤¹¤ë¡£ -\fIargp\fP ¤¬»Ø¤¹ \fIlong\fP ·¿ÊÑ¿ô¤Ï¡¢¼¡¤Î¤¦¤Á¤Î¤É¤ì¤«¤ËÀßÄꤵ¤ì¤ë¡£ +メタキーハンドリングモード(meta key handling mode)を取得する。 +\fIargp\fP が指す \fIlong\fP 型変数は、次のうちのどれかに設定される。 K_METABIT 0x03 set high order bit K_ESCPREFIX 0x04 escape prefix .IP \fBKDSKBMETA\fP -¥á¥¿¥­¡¼¥Ï¥ó¥É¥ê¥ó¥°¥â¡¼¥É¤òÀßÄꤹ¤ë¡£ -\fIargp\fP ¤Ï¾åµ­¤ÎÃͤΤɤ줫¤ËÅù¤·¤¤ \fIlong\fP ¤Ë¤¹¤ë¡£ +メタキーハンドリングモードを設定する。 +\fIargp\fP は上記の値のどれかに等しい \fIlong\fP にする。 .IP \fBKDGKBENT\fP -¥­¡¼¥³¡¼¥É¤ò¥¢¥¯¥·¥ç¥ó¥³¡¼¥É¤ËÊÑ´¹¤¹¤ë¥­¡¼ÊÑ´¹É½¤Î¥¨¥ó¥È¥ê¡¼¤Î°ì¤Ä¤ò -¼èÆÀ¤¹¤ë¡£ -\fIargp\fP ¤Ï¡¢ +キーコードをアクションコードに変換するキー変換表のエントリーの一つを +取得する。 +\fIargp\fP は、 .in +4n .nf @@ -286,17 +286,17 @@ struct kbentry { .fi .in -¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ -ºÇ½é¤Î2¤Ä¤ÎÍ×ÁÇ¡¢\fIkb_table\fP ¤Ë¤ÏÁªÂò¤¹¤ë¥­¡¼¥Æ¡¼¥Ö¥ë (0 <= -\fIkb_table\fP < MAX_NR_KEYMAPS)¡¢\fIkb_index\fP ¤Ë¤Ï¥­¡¼¥³¡¼¥É(0 <= -\fIkb_index\fP < NR_KEYS)¤òÀßÄꤹ¤ë¡£ -\fIkb_value\fP ¤ÏÂбþ¤¹¤ë¥¢¥¯¥·¥ç¥ó¥³¡¼¥É¡¢¤Þ¤¿¤Ï¡¢¤½¤Î¤è¤¦¤Ê¥­¡¼¤¬ -¤Ê¤¤¤È¤­¤Ë¤Ï K_HOLE¡¢\fIkb_table\fP ¤¬Ìµ¸ú¤Ê»þ¤Ë¤Ï K_NOSUCHMAP ¤ËÀßÄꤵ¤ì¤ë¡£ +へのポインターである。 +最初の2つの要素、\fIkb_table\fP には選択するキーテーブル (0 <= +\fIkb_table\fP < MAX_NR_KEYMAPS)、\fIkb_index\fP にはキーコード(0 <= +\fIkb_index\fP < NR_KEYS)を設定する。 +\fIkb_value\fP は対応するアクションコード、または、そのようなキーが +ないときには K_HOLE、\fIkb_table\fP が無効な時には K_NOSUCHMAP に設定される。 .IP \fBKDSKBENT\fP -ÊÑ´¹¥Æ¡¼¥Ö¥ë¤Î¥¨¥ó¥È¥ê¡¼¤Î°ì¤Ä¤òÀßÄꤹ¤ë¡£\fIargp\fP ¤Ï -¹½Â¤ÂÎ \fIstruct kbentry\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ +変換テーブルのエントリーの一つを設定する。\fIargp\fP は +構造体 \fIstruct kbentry\fP へのポインターである。 .IP \fBKDGKBSENT\fP -¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼¤Îʸ»úÎó¤ò¼èÆÀ¤¹¤ë¡£\fIargp\fP ¤Ï¡¢ +ファンクションキーの文字列を取得する。\fIargp\fP は、 .in +4n .nf @@ -307,15 +307,15 @@ struct kbsentry { .fi .in -¤È¤¤¤¦¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ +という構造体へのポインターである。 -\fIkb_func\fP ÈÖÌܤΥե¡¥ó¥¯¥·¥ç¥ó¥­¡¼¤Î¥¢¥¯¥·¥ç¥ó¥³¡¼¥É¤ËÂбþ¤¹¤ë -(NULL ¤Ç½ªÃ¼¤µ¤ì¤¿)ʸ»úÎó¤¬ \fIkb_string\fP ¤ËÀßÄꤵ¤ì¤ë¡£ +\fIkb_func\fP 番目のファンクションキーのアクションコードに対応する +(NULL で終端された)文字列が \fIkb_string\fP に設定される。 .IP \fBKDSKBSENT\fP -¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼¤Îʸ»úÎó¤Î¥¨¥ó¥È¥ê¡¼¤òÀßÄꤹ¤ë¡£\fIargp\fP ¤Ï¡¢ -¹½Â¤ÂÎ \fIstruct kbsentry\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ +ファンクションキーの文字列のエントリーを設定する。\fIargp\fP は、 +構造体 \fIstruct kbsentry\fP へのポインターである。 .IP \fBKDGKBDIACR\fP -¥«¡¼¥Í¥ë¤Î¥¢¥¯¥»¥ó¥È¥Æ¡¼¥Ö¥ë(accent table)¤òÆɤ߹þ¤à¡£\fIargp\fP¤Ï¡¢ +カーネルのアクセントテーブル(accent table)を読み込む。\fIargp\fPは、 .in +4n .nf @@ -326,8 +326,8 @@ struct kbdiacrs { .fi .in -¤È¤¤¤¦¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ -¤³¤³¤Ç¡¢\fIkb_cnt\fP ¤ÏÇÛÎóÃæ¤Î¥¨¥ó¥È¥ê¡¼¤Î¸Ä¿ô¤Ç¡¢¸Ä¡¹¤Î¥¨¥ó¥È¥ê¡¼¤Ï¡¢ +という構造体へのポインターである。 +ここで、\fIkb_cnt\fP は配列中のエントリーの個数で、個々のエントリーは、 .in +4n .nf @@ -339,11 +339,11 @@ struct kbdiacr { .fi .in -¤È¤¤¤¦¹½Â¤ÂΤǤ¢¤ë¡£ +という構造体である。 .IP \fBKDGETKEYCODE\fP -¥«¡¼¥Í¥ë¤Î(¥¹¥­¥ã¥ó¥³¡¼¥É¤«¤é¥­¡¼¥³¡¼¥É¤Ø -ÊÑ´¹¤¹¤ë)¥­¡¼¥³¡¼¥É¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¡¼¤òÆɤ߹þ¤à¡£ -\fIargp\fP ¤Ï¡¢ +カーネルの(スキャンコードからキーコードへ +変換する)キーコードテーブルエントリーを読み込む。 +\fIargp\fP は、 .in +4n .nf @@ -354,25 +354,25 @@ struct kbkeycode { .fi .in -¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ -\fIkeycode\fP ¤Ï¡¢\fIscancode\fP ¤ËÂбþ¤·¤¿ÃͤËÀßÄꤵ¤ì¤ë¡£(¤¿¤À¤·¡¢89 -<= \fIscancode\fP <= 255 ¤Î¤ß¤Ë¤Ä¤¤¤Æ¡£1 <= \fIscancode\fP <= 88 ¤Ç¤Ï -\fIkeycode\fP == \fIscancode\fP ¤Ç¤¢¤ë¡£) -(¥«¡¼¥Í¥ë 1.1.63 °Ê¹ß) +へのポインターである。 +\fIkeycode\fP は、\fIscancode\fP に対応した値に設定される。(ただし、89 +<= \fIscancode\fP <= 255 のみについて。1 <= \fIscancode\fP <= 88 では +\fIkeycode\fP == \fIscancode\fP である。) +(カーネル 1.1.63 以降) .IP \fBKDSETKEYCODE\fP -¥«¡¼¥Í¥ë¤Î¥­¡¼¥³¡¼¥É¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¡¼¤ò½ñ¤­¹þ¤à¡£\fIargp\fP ¤Ï¹½Â¤ÂÎ -\fIstruct kbkeycode\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ -(¥«¡¼¥Í¥ë 1.1.63 °Ê¹ß) +カーネルのキーコードテーブルエントリーを書き込む。\fIargp\fP は構造体 +\fIstruct kbkeycode\fP へのポインターである。 +(カーネル 1.1.63 以降) .IP \fBKDSIGACCEPT\fP -¤³¤Î´Ø¿ô¸Æ¤Ó½Ð¤·¤Ï¡¢ÆÃÊ̤ÊÁȹ礻¤Ç¥­¡¼¤ò²¡¤·¤¿»þ¤ËȯÀ¸¤¹¤ë¥·¥°¥Ê¥ë -\fIargp\fP (1 <= \fIargp\fP <= NSIG) ¤ò¿Ê¤ó¤Ç¼õ¤±ÉÕ¤±¤ë¤«¤É¤¦¤«¤ò¼¨¤¹¡£ -(linux/drivers/char/keyboard.c ¤Î Spawn_console() ¤ò¸«¤è¡£) +この関数呼び出しは、特別な組合せでキーを押した時に発生するシグナル +\fIargp\fP (1 <= \fIargp\fP <= NSIG) を進んで受け付けるかどうかを示す。 +(linux/drivers/char/keyboard.c の Spawn_console() を見よ。) .IP \fBVT_OPENQRY\fP -ºÇ½é¤Î¶õ¤¤¤Æ¤¤¤ë(¤Þ¤À¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤)¥³¥ó¥½¡¼¥ë¤òÊÖ¤¹¡£ -\fIargp\fP ¤Î»Ø¤¹ \fIint\fP ·¿¤ÎÀ°¿ô¤Ë¤Ï¡¢vt ¤ÎÈֹ椬¥»¥Ã¥È¤µ¤ì¤ë -(1 <= \fI*argp\fP <= MAX_NR_CONSOLES)¡£ +最初の空いている(まだオープンされていない)コンソールを返す。 +\fIargp\fP の指す \fIint\fP 型の整数には、vt の番号がセットされる +(1 <= \fI*argp\fP <= MAX_NR_CONSOLES)。 .IP \fBVT_GETMODE\fP -¥¢¥¯¥Æ¥£¥Ö¤Ê vt ¤Î¥â¡¼¥É¤ò¼èÆÀ¤¹¤ë¡£\fIargp\fP¤Ï¡¢ +アクティブな vt のモードを取得する。\fIargp\fPは、 .in +4n .nf @@ -386,19 +386,19 @@ struct vt_mode { .fi .in -¤È¤¤¤¦¹½Â¤ÂΤò»Ø¤¹¥Ý¥¤¥ó¥¿¤Ç¤¢¤ê¡¢¥¢¥¯¥Æ¥£¥Ö¤Ê vt ¤Î¥â¡¼¥É¤¬ -¥»¥Ã¥È¤µ¤ì¤ë¡£ -\fImode\fP ¤Ï¼¡¤Î¤É¤ì¤«¤ËÀßÄꤵ¤ì¤ë¡§ +という構造体を指すポインタであり、アクティブな vt のモードが +セットされる。 +\fImode\fP は次のどれかに設定される: - VT_AUTO ¼«Æ°vtÀÚÂؤ¨ - VT_PROCESS ¥×¥í¥»¥¹¥³¥ó¥È¥í¡¼¥ëÀÚÂؤ¨ - VT_ACKACQ ¥¢¥¯¥Î¥ê¥Ã¥¸ÀÚÂؤ¨ + VT_AUTO 自動vt切替え + VT_PROCESS プロセスコントロール切替え + VT_ACKACQ アクノリッジ切替え .IP \fBVT_SETMODE\fP -¥¢¥¯¥Æ¥£¥Ö¤Ê vt ¤Î¥â¡¼¥É¤òÀßÄꤹ¤ë¡£\fIargp\fP ¤Ï¹½Â¤ÂÎ -\fIstruct vt_mode\fP ¤Ø¤Î -¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ +アクティブな vt のモードを設定する。\fIargp\fP は構造体 +\fIstruct vt_mode\fP への +ポインターである。 .IP \fBVT_GETSTATE\fP -¥°¥í¡¼¥Ð¥ë¤Ê vt ¤Î¾õÂ֤ξðÊó¤ò¼èÆÀ¤¹¤ë¡£\fIargp\fP¤Ï¡¢ +グローバルな vt の状態の情報を取得する。\fIargp\fPは、 .in +4n .nf @@ -410,21 +410,21 @@ struct vt_stat { .fi .in -¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ -»ÈÍѤµ¤ì¤Æ¤¤¤ë¤½¤ì¤¾¤ì¤Î vt ¤Ë¤Ä¤­ \fIv_state\fP ¤ÎÂбþ¤¹¤ë¥Ó¥Ã¥È¤¬ -¥»¥Ã¥È¤µ¤ì¤ë¡£ -(¥«¡¼¥Í¥ël 1.0 ¤«¤é 1.1.92 ¤Þ¤Ç) +へのポインターである。 +使用されているそれぞれの vt につき \fIv_state\fP の対応するビットが +セットされる。 +(カーネルl 1.0 から 1.1.92 まで) .IP \fBVT_RELDISP\fP -¥Ç¥£¥¹¥×¥ì¡¼¤ò²òÊü¤¹¤ë¡£ +ディスプレーを解放する。 .IP \fBVT_ACTIVATE\fP -\fIargp\fP (1 <= \fIargp\fP <= MAX_NR_CONSOLES)¤Î vt ¤ËÀÚÂؤ¨¤ë¡£ +\fIargp\fP (1 <= \fIargp\fP <= MAX_NR_CONSOLES)の vt に切替える。 .IP \fBVT_WAITACTIVE\fP -\fIargp\fP¤Î vt ¤¬¥¢¥¯¥Æ¥£¥Ö¤Ë¤Ê¤ë¤Þ¤ÇÂԤġ£ +\fIargp\fPの vt がアクティブになるまで待つ。 .IP \fBVT_DISALLOCATE\fP -\fIargp\fP ¤Î vt ¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤¿¥á¥â¥ê¡¼¤ò²òÊü¤¹¤ë¡£ -(¥«¡¼¥Í¥ë 1.1.54 °Ê¹ß) +\fIargp\fP の vt に結びつけられたメモリーを解放する。 +(カーネル 1.1.54 以降) .IP \fBVT_RESIZE\fP -¥«¡¼¥Í¥ë¤¬Ç§¼±¤¹¤ë¥¹¥¯¥ê¡¼¥ó¥µ¥¤¥º¤òÀßÄꤹ¤ë¡£\fIargp\fP ¤Ï¡¢ +カーネルが認識するスクリーンサイズを設定する。\fIargp\fP は、 .in +4n .nf @@ -436,12 +436,12 @@ struct vt_sizes { .fi .in -¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï¥Ó¥Ç¥ª¥â¡¼¥É¤òÊѹ¹¤·¤Ê¤¤»ö¤ËÃí°Õ¡£ +へのポインターである。 +これはビデオモードを変更しない事に注意。 .BR resizecons (8) -¤ò¸«¤è(¥«¡¼¥Í¥ë 1.1.54 °Ê¹ß)¡£ +を見よ(カーネル 1.1.54 以降)。 .IP \fBVT_RESIZEX\fP -¥«¡¼¥Í¥ë¤¬Ç§¼±¤¹¤ë³Æ¼ï¤Î¥¹¥¯¥ê¡¼¥ó¥Ñ¥é¥á¡¼¥¿¤òÀßÄꤹ¤ë¡£\fIargp\fP ¤Ï¡¢ +カーネルが認識する各種のスクリーンパラメータを設定する。\fIargp\fP は、 .in +4n .nf @@ -460,27 +460,27 @@ struct vt_consize { .fi .in -¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£ +へのポインターである。 -¥Ñ¥é¥á¡¼¥¿¤Ï¥¼¥í¤Ç¤¢¤Ã¤Æ¤â¤è¤¤¡£¤½¤Î¤È¤­¤Ï¡ÖÊѹ¹¤·¤Ê¤¤¤³¤È¡×¤ò -°ÕÌ£¤¹¤ë¤¬¡¢Ê£¿ô¤Î¥Ñ¥é¥á¡¼¥¿¤¬ÀßÄꤵ¤ì¤¿»þ¤Ë¤Ï¤½¤ì¤é¤Î´Ö¤ÇÌ·½â¤¬ -¤Ê¤¤¤è¤¦¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤Î´Ø¿ô¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤Æ¤â¥Ó¥Ç¥ª¥â¡¼¥É¤ÏÊѹ¹¤µ¤ì¤Ê¤¤»ö¤ËÃí°Õ¡£ +パラメータはゼロであってもよい。そのときは「変更しないこと」を +意味するが、複数のパラメータが設定された時にはそれらの間で矛盾が +ないようにしなければならない。 +この関数呼び出しによってもビデオモードは変更されない事に注意。 .BR resizecons (8) -¤ò»²¾È¤Î»ö(¥«¡¼¥Í¥ë 1.3.3 °Ê¹ß)¡£ +を参照の事(カーネル 1.3.3 以降)。 .PP -°Ê²¼¤Î ioctl ¤¬¤É¤Î¤è¤¦¤ËÆ°ºî¤ò¤¹¤ë¤«¤Ï¡¢\fIargp\fP ¤¬»Ø¤¹¹½Â¤ÂΤΠ-ºÇ½é¤Î¥Ð¥¤¥È(¤³¤³¤Ç¤Ï \fIsubcode\fP ¤È¸Æ¤Ö)¤Ë°Í¸¤¹¤ë¡£ -¤³¤ì¤é¤Î¸Æ½Ð¤·¤Ï¡¢¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¤«¸½ºß¤Î tty ¤Î¥ª¡¼¥Ê¤Ë¤Î¤ßµö¤µ¤ì¤ë¡£ +以下の ioctl がどのように動作をするかは、\fIargp\fP が指す構造体の +最初のバイト(ここでは \fIsubcode\fP と呼ぶ)に依存する。 +これらの呼出しは、スーパーユーザーか現在の tty のオーナにのみ許される。 .IP "\fBTIOCLINUX, subcode=0\fP" -¥¹¥¯¥ê¡¼¥ó¤ò¥À¥ó¥×(dump)¤¹¤ë -¥«¡¼¥Í¥ë 1.1.92 °Ê¹ß¤Ç¤Ê¤¯¤Ê¤Ã¤¿(1.1.92 °Ê¹ß¤Ç¤Ï¡¢Âå¤ï¤ê¤Ë /dev/vcsN -¤Þ¤¿¤Ï /dev/vcsaN ¤è¤êÆɤ߹þ¤à)¡£ +スクリーンをダンプ(dump)する +カーネル 1.1.92 以降でなくなった(1.1.92 以降では、代わりに /dev/vcsN +または /dev/vcsaN より読み込む)。 .IP "\fBTIOCLINUX, subcode=1\fP" -¥¿¥¹¥¯¾ðÊó¤ò¼èÆÀ¤¹¤ë¡£¥«¡¼¥Í¥ë 1.1.92 ¤Ç¤Ê¤¯¤Ê¤Ã¤¿¡£ +タスク情報を取得する。カーネル 1.1.92 でなくなった。 .IP "\fBTIOCLINUX, subcode=2\fP" -ÁªÂò¤òÀßÄꤹ¤ë¡£ -\fIargp\fP ¤¬»Ø¤¹¤Î¤Ï¡¢ +選択を設定する。 +\fIargp\fP が指すのは、 .in +4n .nf @@ -492,97 +492,97 @@ struct { .fi .in -¤Ç¤¢¤ê¡¢¤³¤³¤Ç -\fIxs\fP ¤È \fIys\fP ¤Ï»Ï¤á¤Î·å¤È¹Ô¤Ç¡¢\fIxe\fP ¤È \fIye\fP ¤Ï½ª¤ê¤Î·å¤È -¹Ô¤Ç¤¢¤ë¡£ -(º¸¾å¤Î¶ù¤¬ ·å=¹Ô=1 ) -\fIsel_mode\fP ¤Ï 0 ¤¬Ê¸»úËè¤ÎÁªÂò¤Ç¡¢1¤Ï¸ìËè¤ÎÁªÂò¡¢2¤Ï¹ÔËè¤ÎÁªÂò¤ò -°ÕÌ£¤¹¤ë¡£ -¼¨¤µ¤ì¤¿¥¹¥¯¥ê¡¼¥ó¾å¤Îʸ»ú¤Ï¥Ï¥¤¥é¥¤¥Èɽ¼¨¤µ¤ì devices/char/console.c ¤Î -ÀÅŪÇÛÎó sel_buffer ¤ËÊݸ¤µ¤ì¤ë¡£ +であり、ここで +\fIxs\fP と \fIys\fP は始めの桁と行で、\fIxe\fP と \fIye\fP は終りの桁と +行である。 +(左上の隅が 桁=行=1 ) +\fIsel_mode\fP は 0 が文字毎の選択で、1は語毎の選択、2は行毎の選択を +意味する。 +示されたスクリーン上の文字はハイライト表示され devices/char/console.c の +静的配列 sel_buffer に保存される。 .IP "\fBTIOCLINUX, subcode=3\fP" -ÁªÂò¤·¤¿¤â¤Î¤ò¥Ú¡¼¥¹¥È¤¹¤ë¡£ -ÁªÂò¥Ð¥Ã¥Õ¥¡Ãæ¤Îʸ»ú ¤¬ \fIfd\fP ¤Ë½ñ¤­½Ð¤µ¤ì¤ë¡£ +選択したものをペーストする。 +選択バッファ中の文字 が \fIfd\fP に書き出される。 .IP "\fBTIOCLINUX, subcode=4\fP" -¥¹¥¯¥ê¡¼¥ó¤ò¥¢¥ó¥Ö¥é¥ó¥¯(unblank)¤¹¤ë¡£ +スクリーンをアンブランク(unblank)する。 .IP "\fBTIOCLINUX, subcode=5\fP" -¸ìËè¤ÎÁªÂò¤Î¤¿¤á¤Î¡Ö¸ì¡×Ãæ¤Îʸ»ú¤òµ¬Äꤷ¤Æ¤¤¤ë 256 ¥Ó¥Ã¥È¤Î¥ë¥Ã¥¯¥¢¥Ã¥× -¥Æ¡¼¥Ö¥ë¤ÎÆâÍƤòÀßÄꤹ¤ë(¥«¡¼¥Í¥ë 1.1.32 °Ê¹ß)¡£ +語毎の選択のための「語」中の文字を規定している 256 ビットのルックアップ +テーブルの内容を設定する(カーネル 1.1.32 以降)。 .IP "\fBTIOCLINUX, subcode=6\fP" -\fIargp\fP ¤Ïʸ»úÊÑ¿ô¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤Ç¡¢¤½¤ÎÆâÍƤ¬¥«¡¼¥Í¥ëÊÑ¿ô -\fIshift_state\fP¤ÎÃͤËÀßÄꤵ¤ì¤ë(¥«¡¼¥Í¥ë 1.1.32 °Ê¹ß)¡£ +\fIargp\fP は文字変数を指すポインタで、その内容がカーネル変数 +\fIshift_state\fPの値に設定される(カーネル 1.1.32 以降)。 .IP "\fBTIOCLINUX, subcode=7\fP" -\fIargp\fP ¤Ïʸ»úÊÑ¿ô¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤Ç¡¢¤½¤ÎÆâÍƤ¬¥«¡¼¥Í¥ëÊÑ¿ô -\fIreport_mouse\fP ¤ÎÃͤËÀßÄꤵ¤ì¤ë(¥«¡¼¥Í¥ë 1.1.33 °Ê¹ß)¡£ +\fIargp\fP は文字変数を指すポインタで、その内容がカーネル変数 +\fIreport_mouse\fP の値に設定される(カーネル 1.1.33 以降)。 .IP "\fBTIOCLINUX, subcode=8\fP" -¥¹¥¯¥ê¡¼¥óÉý¡¢¥¹¥¯¥ê¡¼¥ó¹â¤µ¡¢¥«¡¼¥½¥ë°ÌÃÖ¡¢Á´¤Æ¤Îʸ»ú°À­¤ÎÁȤò¥À¥ó¥×¤¹¤ë -(¥«¡¼¥Í¥ë 1.1.67 ¤«¤é 1.1.91¤Þ¤Ç¤Î¤ß¡£ -¥«¡¼¥Í¥ë 1.1.92 °Ê¹ß¤Ç¤Ï /dev/vcsa*¤è¤êÆɤ߹þ¤à)¡£ +スクリーン幅、スクリーン高さ、カーソル位置、全ての文字属性の組をダンプする +(カーネル 1.1.67 から 1.1.91までのみ。 +カーネル 1.1.92 以降では /dev/vcsa*より読み込む)。 .IP "\fBTIOCLINUX, subcode=9\fP" -¥¹¥¯¥ê¡¼¥óÉý¡¢¥¹¥¯¥ê¡¼¥ó¹â¤µ¡¢¥«¡¼¥½¥ë°ÌÃÖ¡¢Á´¤Æ¤Îʸ»ú°À­¤ÎÁȤòÉü¸µ¤¹¤ë -(¥«¡¼¥Í¥ë 1.1.67 ¤«¤é 1.1.91 ¤Þ¤Ç¤Î¤ß¡£ -¥«¡¼¥Í¥ë 1.1.92 °Ê¹ß¤Ç¤Ï /dev/vcsa* ¤Ë½ñ¤­¹þ¤à)¡£ +スクリーン幅、スクリーン高さ、カーソル位置、全ての文字属性の組を復元する +(カーネル 1.1.67 から 1.1.91 までのみ。 +カーネル 1.1.92 以降では /dev/vcsa* に書き込む)。 .IP "\fBTIOCLINUX, subcode=10\fP" -¿·À¤Âå¥â¥Ë¥¿¡¼¤Î¥Ñ¥ï¡¼¥»¡¼¥Öµ¡Ç½¤òÀ©¸æ¤¹¤ë¡£ -VESA ¥¹¥¯¥ê¡¼¥ó¥Ö¥é¥ó¥­¥ó¥°¥â¡¼¥É¤¬ \fIargp\fP[1]¤ËÀßÄꤵ¤ì¤ë¡£ -¤½¤ÎÃͤϥ¹¥¯¥ê¡¼¥ó¥Ö¥é¥ó¥­¥ó¥°¤¬¤É¤Î¤è¤¦¤Ë¹Ô¤ï¤ì¤ë¤«¤ò¼¨¤¹¡£°Ê²¼¤¬¤½¤Î -ÃͤǤ¢¤ë¡£ - - \fI0\fP: ¥¹¥¯¥ê¡¼¥ó¥Ö¥é¥ó¥­¥ó¥°¤Ê¤·¡£ - - \fI1\fP:¸½ºß¤Î¥Ó¥Ç¥ª¥¢¥À¥×¥¿¡¼¥ì¥¸¥¹¥¿¤¬Êݸ¤µ¤ì¤¿¤¢¤È¡¢ -¥³¥ó¥È¥í¡¼¥é¤Ï¿âľƱ´ü¥Ñ¥ë¥¹¤ò¥ª¥Õ¤Ë¤¹¤ë¤è¤¦¥×¥í¥°¥é¥à¤µ¤ì¤ë¡£¤³¤ì¤Ë¤è¤ê -¥â¥Ë¥¿¡¼¤Ï¡Ö¥¹¥¿¥ó¥Ð¥¤¡×¥â¡¼¥É¤Ë¤Ï¤¤¤ë¡£ -¥â¥Ë¥¿¡¼¤Ë Off_Mode ¥¿¥¤¥Þ¤¬È÷¤ï¤Ã¤Æ¤ª¤ì¤Ð¡¢ºÇ½ªÅª¤Ë¤Ï¥â¥Ë¥¿¡¼¤¬¼«Ê¬¤Ç -ÅŸ»¤òÍ¡£ - - \fI2\fP:¸½ºß¤ÎÀßÄê¤òÊݸ¤·¤¿¸å¡¢¿âľ¡¢¿åʿƱ´ü¥Ñ¥ë¥¹¤¬¥ª¥Õ¤Ë¤Ê¤ë¡£ -¤³¤ì¤Ë¤è¤ê¥â¥Ë¥¿¡¼¤Ï¡Ö¥ª¥Õ¡×¥â¡¼¥É¤Ë¤Ê¤ë¡£ -¥â¥Ë¥¿¡¼¤Ë Off_Mode ¥¿¥¤¥Þ¡¼¤¬¤Ê¤¤»þ¡¢¤Þ¤¿¤Ï¡¢blank_timer ¤¬¥¿¥¤¥à¥¢¥¦¥È¤·¤¿¤é -¤¹¤°¤Ë¥â¥Ë¥¿¡¼¤ÎÅŸ»¤òÍ¤¿¤¤¤È¤­¤Ë¤³¤ÎÁªÂò»è¤òÁª¤Ö¡£ -(Ãí°Õ¡§ÉÑÈˤ˥â¥Ë¥¿¡¼¤ÎÅŸ»¤òÀÚ¤ë¤È¥â¥Ë¥¿¡¼¤òÄˤá¤ë¡£) - -(¥«¡¼¥Í¥ë 1.1.76 °Ê¹ß) - -.SH Ìá¤êÃÍ -À®¸ù»þ¤Ë¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤ËÂФ·¤Æ¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ -\fIerrno\fP ¤¬ÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -\fIerrno\fP ¤Ï¼¡¤Î¤è¤¦¤ÊÃͤò¤È¤ë: +新世代モニターのパワーセーブ機能を制御する。 +VESA スクリーンブランキングモードが \fIargp\fP[1]に設定される。 +その値はスクリーンブランキングがどのように行われるかを示す。以下がその +値である。 + + \fI0\fP: スクリーンブランキングなし。 + + \fI1\fP:現在のビデオアダプターレジスタが保存されたあと、 +コントローラは垂直同期パルスをオフにするようプログラムされる。これにより +モニターは「スタンバイ」モードにはいる。 +モニターに Off_Mode タイマが備わっておれば、最終的にはモニターが自分で +電源を落す。 + + \fI2\fP:現在の設定を保存した後、垂直、水平同期パルスがオフになる。 +これによりモニターは「オフ」モードになる。 +モニターに Off_Mode タイマーがない時、または、blank_timer がタイムアウトしたら +すぐにモニターの電源を落したいときにこの選択肢を選ぶ。 +(注意:頻繁にモニターの電源を切るとモニターを痛める。) + +(カーネル 1.1.76 以降) + +.SH 戻り値 +成功時には 0 が返される。エラーに対しては \-1 が返され、 +\fIerrno\fP が設定される。 +.SH エラー +\fIerrno\fP は次のような値をとる: .TP .B EBADF -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Ìµ¸ú¡£ +ファイルディスクリプタが無効。 .TP .B ENOTTY -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥­¥ã¥é¥¯¥¿¡¦¥¹¥Ú¥·¥ã¥ë¥Ç¥Ð¥¤¥¹¤È´ØÏ¢ÉÕ¤±¤é¤ì¤Æ -¤¤¤Ê¤¤¡£¤Þ¤¿¤Ï¡¢Í׵ᤵ¤ì¤¿¤â¤Î¤¬¤½¤ì¤ËÅö¤Æ¤Ï¤Þ¤é¤Ê¤¤¡£ +ファイルディスクリプタがキャラクタ・スペシャルデバイスと関連付けられて +いない。または、要求されたものがそれに当てはまらない。 .TP .B EINVAL -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Þ¤¿¤Ï \fIargp\fP ¤¬Ìµ¸ú¡£ +ファイルディスクリプタまたは \fIargp\fP が無効。 .TP .B EPERM -¸¢¸Â¤¬ÉÔ½½Ê¬¡£ - -.SH Ãí°Õ -.BR ·Ù¹ð : -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò Linux ¤Î¥³¥ó¥½¡¼¥ë ioctl ¤òʸ½ñ²½¤·¤¿¤â¤Î¤È»×¤ï¤Ê¤¤»ö¡£ -¤³¤ì¤Ï¡¢¶½Ì£¤¬¤¢¤ë¿Í¤¬¥½¡¼¥¹¤òÆɤळ¤È¤ÎÂå¤ï¤ê¤Ë¤Ê¤ë¤è¤¦¤ËÍÑ°Õ¤·¤¿Êª¤Ç¤¢¤ë¡£ -ioctl ¤Ïʸ½ñ²½¤µ¤ì¤Ê¤¤ Linux ¤ÎÆâÉôµ¡Ç½¤Ç¤¢¤Ã¤Æ¡¢·Ù¹ð¤Ê¤·¤Ë -Êѹ¹¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ -(¤½¤·¤Æ¡¢¤³¤Î¥Ú¡¼¥¸¤Ï¥«¡¼¥Í¥ë 1.1.94 ¤Î¤È¤­¤Î¾õ¶·¤òµ­½Ò¤·¤¿Êª¤Ç¡¢¤½¤ì¤Ï -°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤ÈÈæ¤Ù¤ì¤Ð¡¢Â¿¤¯¤Î°ã¤¤¤¬¤¢¤ë) - -ioctl ¤Ï¥«¡¼¥Í¥ë¤È¡¢¤¢¤ëÆÃÄê¤Î¤è¤¯ÃΤé¤ì¤¿¥×¥í¥°¥é¥à¤È¤Î¾ðÊó¸ò´¹¤Î¤¿¤á¤Ë -ƳÆþ¤µ¤ì¤ë»ö¤¬Èó¾ï¤Ë¿¤¤(fdisk, hdparm, setserial,tunelp, loadkeys, -selection, setfont ¤Ê¤É)¡£¤½¤Î¤¿¤á ioctl ¤ÎÆ°ºî¤Ï¡¢¤½¤ÎÆÃÄê¤Î¥×¥í¥°¥é¥à¤¬ -ɬÍפȤ·¤¿»þ¤Ë¤ÏÊѹ¹¤Ë¤Ê¤ë¡£ - -¤³¤ì¤é¤Î ioctl ¤ò»È¤Ã¤¿¥×¥í¥°¥é¥à¤Ï¾¤Î¥Ð¡¼¥¸¥ç¥ó¤Î UNIX ¤È¤Î¸ß´¹À­¤¬ -¤Ê¤¤¤·¡¢¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Î Linux ¤Ç¤Ï¡¢Áö¤é¤Ê¤¤¡£¤µ¤é¤Ë¾­Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤Î -Linux ¤Ç¤ÏÁö¤é¤Ê¤¯¤Ê¤ë¤«¤âÃΤì¤Ê¤¤¡£ - -POSIX µ¡Ç½¤ò»È¤¤¤Ê¤µ¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +権限が不十分。 + +.SH 注意 +.BR 警告 : +このマニュアルページを Linux のコンソール ioctl を文書化したものと思わない事。 +これは、興味がある人がソースを読むことの代わりになるように用意した物である。 +ioctl は文書化されない Linux の内部機能であって、警告なしに +変更されることがある。 +(そして、このページはカーネル 1.1.94 のときの状況を記述した物で、それは +以前のバージョンと比べれば、多くの違いがある) + +ioctl はカーネルと、ある特定のよく知られたプログラムとの情報交換のために +導入される事が非常に多い(fdisk, hdparm, setserial,tunelp, loadkeys, +selection, setfont など)。そのため ioctl の動作は、その特定のプログラムが +必要とした時には変更になる。 + +これらの ioctl を使ったプログラムは他のバージョンの UNIX との互換性が +ないし、古いバージョンの Linux では、走らない。さらに将来のバージョンの +Linux では走らなくなるかも知れない。 + +POSIX 機能を使いなさい。 +.SH 関連項目 .BR dumpkeys (1), .BR kbd_mode (1), .BR loadkeys (1), diff --git a/release/man4/dsp56k.4 b/release/man4/dsp56k.4 index a1dc6a43..2c99b0b6 100644 --- a/release/man4/dsp56k.4 +++ b/release/man4/dsp56k.4 @@ -28,17 +28,17 @@ .\" Translated Tue Jul 11 20:05:48 JST 2000 .\" by Yuichi SATO .\" -.\"WORD: handshake ¥Ï¥ó¥É¥·¥§¥¤¥¯ -.\"WORD: device ¥Ç¥Ð¥¤¥¹ -.\"WORD: processer ¥×¥í¥»¥Ã¥µ¡¼ -.\"WORD: transmit Á÷¿® -.\"WORD: recieve ¼õ¿® -.\"WORD: quantity ñ°Ì +.\"WORD: handshake ハンドシェイク +.\"WORD: device デバイス +.\"WORD: processer プロセッサー +.\"WORD: transmit 送信 +.\"WORD: recieve 受信 +.\"WORD: quantity 単位 .\" .TH DSP56K 4 2000-03-01 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -dsp56k \- DSP56001 ¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¡¦¥Ç¥Ð¥¤¥¹ -.SH ½ñ¼° +.SH 名前 +dsp56k \- DSP56001 のインターフェース・デバイス +.SH 書式 .nf #include .sp @@ -51,72 +51,72 @@ dsp56k \- DSP56001 .BI "int ioctl(int " fd ", DSP56K_HOST_FLAGS, struct dsp56k_host_flags *" flags ); .BI "int ioctl(int " fd ", DSP56K_HOST_CMD, int " cmd ); .fi -.SH ÀßÄê -dsp56k ¥Ç¥Ð¥¤¥¹¤Ï¡¢¥á¥¸¥ã¡¼ÈÖ¹æ 55¡¢¥Þ¥¤¥Ê¡¼ÈÖ¹æ 0 ¤Î -¥­¥ã¥é¥¯¥¿¡¼¡¦¥Ç¥Ð¥¤¥¹¤Ç¤¢¤ë¡£ -.SH ÀâÌÀ -Motorola DSP56001 ¤Ï¡¢Atari Falcon030 ¸ß´¹¤Î¥³¥ó¥Ô¥å¡¼¥¿¤Ç»È¤ï¤ì¤Æ¤¤¤ë -¥Õ¥ë¥×¥í¥°¥é¥Þ¥Ö¥ë¤Ê 24 ¥Ó¥Ã¥È¤Î¥Ç¥¸¥¿¥ë¥·¥°¥Ê¥ë¥×¥í¥»¥Ã¥µ¡¼¤Ç¤¢¤ë¡£ -¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë \fIdsp56k\fP ¤Ï¡¢DSP56001 ¤ÎÀ©¸æ¤È -ÁÐÊý¸þ¥Ï¥ó¥É¥·¥§¥¤¥¯¥Û¥¹¥È¥Ý¡¼¥È¤Ç¤Î¥Ç¡¼¥¿¤ÎÁ÷¼õ¿®¤Î¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ +.SH 設定 +dsp56k デバイスは、メジャー番号 55、マイナー番号 0 の +キャラクター・デバイスである。 +.SH 説明 +Motorola DSP56001 は、Atari Falcon030 互換のコンピュータで使われている +フルプログラマブルな 24 ビットのデジタルシグナルプロセッサーである。 +スペシャルファイル \fIdsp56k\fP は、DSP56001 の制御と +双方向ハンドシェイクホストポートでのデータの送受信のために使われる。 .PP -¥Ç¡¼¥¿¥¹¥È¥ê¡¼¥à¤ò¥·¥°¥Ê¥ë¥×¥í¥»¥Ã¥µ¡¼¤ËÁ÷¿®¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ -¥Ç¥Ð¥¤¥¹¤ËÂФ·¤Æ +データストリームをシグナルプロセッサーに送信するためには、 +デバイスに対して .BR write (2) -¤ò»È¤¦¤³¤È¡£ -½èÍý¤µ¤ì¤¿¥Ç¡¼¥¿¤ò¼õ¿®¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ +を使うこと。 +処理されたデータを受信するためには、 .BR read (2) -¤ò»È¤¦¤³¤È¡£ -¥Û¥¹¥È¦¤Ç¤Ï¡¢¥Ç¡¼¥¿¤Ï 8, 16, 24, 32 ¥Ó¥Ã¥Èñ°Ì¤ÇÁ÷¼õ¿®¤Ç¤­¤ë¤¬¡¢ -DSP56001 Æâ¤Ç¤Ï¡¢24 ¥Ó¥Ã¥Èñ°Ì¤Ç°·¤ï¤ì¤ë¡£ +を使うこと。 +ホスト側では、データは 8, 16, 24, 32 ビット単位で送受信できるが、 +DSP56001 内では、24 ビット単位で扱われる。 .PP -¼¡¤Î +次の .BR ioctl (2) -¥³¡¼¥ë¤¬ \fIdsp56k\fP ¥Ç¥Ð¥¤¥¹¤òÀ©¸æ¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ +コールが \fIdsp56k\fP デバイスを制御するために使われる。 .IP \fBDSP56K_UPLOAD\fP -DSP56001 ¤ò¥ê¥»¥Ã¥È¤·¡¢¥×¥í¥°¥é¥à¤ò¥¢¥Ã¥×¥í¡¼¥É¤¹¤ë¡£ +DSP56001 をリセットし、プログラムをアップロードする。 .BR ioctl (2) -¤Î 3 ÈÖÌܤΰú¤­¿ô¤Ï¡¢ -¹½Â¤ÂÎ \fIstruct dsp56k_binary\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¹½Â¤ÂΤΥá¥ó¥Ð¡¼ \fIbin\fP ¤Ï DSP56001 ¥Ð¥¤¥Ê¥ê¥×¥í¥°¥é¥à¤ò»Ø¤·¡¢ -¹½Â¤ÂΤΥá¥ó¥Ð¡¼ \fIlen\fP ¤Ï 24 ¥Ó¥Ã¥È¥ï¡¼¥É¤Ç¿ô¤¨¤¿ -¥×¥í¥°¥é¥à¤ÎŤµ¤ËÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +の 3 番目の引き数は、 +構造体 \fIstruct dsp56k_binary\fP へのポインタでなければならない。 +構造体のメンバー \fIbin\fP は DSP56001 バイナリプログラムを指し、 +構造体のメンバー \fIlen\fP は 24 ビットワードで数えた +プログラムの長さに設定されていなければならない。 .IP \fBDSP56K_SET_TX_WSIZE\fP -Á÷¿®¥ï¡¼¥É¥µ¥¤¥º¤òÀßÄꤹ¤ë¡£ -ÀßÄê¤Ç¤­¤ëÃÍ¤Ï 1 ¡Á 4 ¤ÎÈϰϤǡ¢¤³¤Î¥Ð¥¤¥È¿ôʬ¤À¤± 1 ÅÙ¤Ë DSP56001 ¤ËÁ÷¿®¤¹¤ë¡£ -¤³¤Î¥Ç¡¼¥¿Ã±°Ì¤Ï¡¢DSP56001 ËÜÍè¤Î 24 ¥Ó¥Ã¥È¥Ç¡¼¥¿·Á¼°¤Ë¹ç¤ï¤»¤ë¤¿¤á¡¢ -¥¼¥í¤Î¥Ð¥¤¥È¤ÇËä¤á¤é¤ì¤¿¤ê¡¢ÀÚ¤êµÍ¤á¤é¤ì¤¿¤ê¤¹¤ë¡£ +送信ワードサイズを設定する。 +設定できる値は 1 〜 4 の範囲で、このバイト数分だけ 1 度に DSP56001 に送信する。 +このデータ単位は、DSP56001 本来の 24 ビットデータ形式に合わせるため、 +ゼロのバイトで埋められたり、切り詰められたりする。 .IP \fBDSP56K_SET_RX_WSIZE\fP -¼õ¿®¥ï¡¼¥É¥µ¥¤¥º¤òÀßÄꤹ¤ë¡£ -ÀßÄê¤Ç¤­¤ëÃÍ¤Ï 1 ¡Á 4 ¤ÎÈϰϤǡ¢ -¤³¤Î¥Ð¥¤¥È¿ôʬ¤À¤± 1 ÅÙ¤Ë DSP56001 ¤«¤é¼õ¿®¤¹¤ë¡£ -¤³¤Î¥Ç¡¼¥¿Ã±°Ì¤Ï¡¢DSP56001 ËÜÍè¤Î 24 ¥Ó¥Ã¥È¥Ç¡¼¥¿·Á¼°¤Ë¹ç¤ï¤»¤ë¤¿¤á¡¢ -ÀÚ¤êµÍ¤á¤é¤ì¤¿¤ê¡¢NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤ÇËä¤á¤é¤ì¤¿¤ê¤¹¤ë¡£ +受信ワードサイズを設定する。 +設定できる値は 1 〜 4 の範囲で、 +このバイト数分だけ 1 度に DSP56001 から受信する。 +このデータ単位は、DSP56001 本来の 24 ビットデータ形式に合わせるため、 +切り詰められたり、NULL バイト (\(aq\\0\(aq) で埋められたりする。 .IP \fBDSP56K_HOST_FLAGS\fP -¥Û¥¹¥È¥Õ¥é¥°¤òÆɤ߽ñ¤­¤¹¤ë¡£ -¥Û¥¹¥È¥Õ¥é¥°¤Ï¡¢°ìÈÌŪ¤ÊÌÜŪ¤Ç»È¤¦¤³¤È¤Î¤Ç¤­¤ë¥Ó¥Ã¥È¤Ç¡¢ -¥Û¥¹¥È¥³¥ó¥Ô¥å¡¼¥¿¤È DSP56001 ¤ÎξÊý¤«¤éÆɤळ¤È¤¬¤Ç¤­¤ë¡£ -¥Ó¥Ã¥È 0 ¤È 1 ¤Ï¡¢¥Û¥¹¥È¤Ë¤è¤Ã¤Æ½ñ¤­¹þ¤à¤³¤È¤¬¤Ç¤­¡¢ -¥Ó¥Ã¥È 2 ¤È 3 ¤Ï¡¢DSP56001 ¤Ë¤è¤Ã¤Æ½ñ¤­¹þ¤à¤³¤È¤¬¤Ç¤­¤ë¡£ +ホストフラグを読み書きする。 +ホストフラグは、一般的な目的で使うことのできるビットで、 +ホストコンピュータと DSP56001 の両方から読むことができる。 +ビット 0 と 1 は、ホストによって書き込むことができ、 +ビット 2 と 3 は、DSP56001 によって書き込むことができる。 -¥Û¥¹¥È¥Õ¥é¥°¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ +ホストフラグにアクセスするためには、 .BR ioctl (2) -¤Î 3 ÈÖÌܤΰú¤­¿ô¤¬ -¹½Â¤ÂÎ \fIstruct dsp56k_host_flags\fP ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤Î¹½Â¤ÂΤΥá¥ó¥Ð¡¼ \fIdir\fP ¤Î¥Ó¥Ã¥È 0 ¤Þ¤¿¤Ï 1 ¤¬ÀßÄꤵ¤ì¤ë¤È¡¢ -¥á¥ó¥Ð¡¼ \fIout\fP ¤ÎÂбþ¤¹¤ë¥Ó¥Ã¥È¤ÎÃͤ¬¥Û¥¹¥È¥Õ¥é¥°¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£ -¤¹¤Ù¤Æ¤Î¥Û¥¹¥È¥Õ¥é¥°¤Î¾õÂ֤ϡ¢¹½Â¤ÂΤΥá¥ó¥Ð¡¼ \fIstatus\fP ¤Î -²¼¤«¤é 4 ¥Ó¥Ã¥È¤È¤·¤ÆÊÖ¤µ¤ì¤ë¡£ +の 3 番目の引き数が +構造体 \fIstruct dsp56k_host_flags\fP へのポインタでなければならない。 +この構造体のメンバー \fIdir\fP のビット 0 または 1 が設定されると、 +メンバー \fIout\fP の対応するビットの値がホストフラグに書き込まれる。 +すべてのホストフラグの状態は、構造体のメンバー \fIstatus\fP の +下から 4 ビットとして返される。 .IP \fBDSP56K_HOST_CMD\fP -¥Û¥¹¥È¥³¥Þ¥ó¥É¤òÁ÷¿®¤¹¤ë¡£ -Á÷¿®¤Ç¤­¤ëÃÍ¤Ï 0 ¡Á 31 ¤ÎÈϰϤǡ¢DSP56001 ¤ÇÆ°ºî¤·¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤Æ -½èÍý¤µ¤ì¤ë¥æ¡¼¥¶¡¼ÄêµÁ¥³¥Þ¥ó¥É¤Ç¤¢¤ë¡£ -.SH ¥Õ¥¡¥¤¥ë +ホストコマンドを送信する。 +送信できる値は 0 〜 31 の範囲で、DSP56001 で動作しているプログラムによって +処理されるユーザー定義コマンドである。 +.SH ファイル /dev/dsp56k -.\" .SH Ãø¼Ô +.\" .SH 著者 .\" Fredrik Noring , lars brinkhoff , .\" Tomas Berndtsson . -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .IR linux/include/asm-m68k/dsp56k.h , .IR linux/drivers/char/dsp56k.c , .IR http://dsp56k.nocrew.org/ , diff --git a/release/man4/fd.4 b/release/man4/fd.4 index 58274cd0..9ae89c40 100644 --- a/release/man4/fd.4 +++ b/release/man4/fd.4 @@ -29,60 +29,60 @@ .\" Translated Sun Jan 11 03:25:38 JST 1998 .\" by ISHIKAWA Mutsumi .\" -.\" WORD: floppy disk ¥Õ¥í¥Ã¥Ô¡¼¥Ç¥£¥¹¥¯ -.\" WORD: double density ÇÜÌ©ÅÙ -.\" WORD: high density ¹âÌ©ÅÙ -.\" WORD: extra density ³Èĥ̩ÅÙ -.\" WORD: interleaved format ¥¤¥ó¥¿¡¼¥ê¡¼¥Ö¥É¥Õ¥©¡¼¥Þ¥Ã¥È -.\" WORD: media ¥á¥Ç¥£¥¢ -.\" WORD: geometry ¥¸¥ª¥á¥È¥ê -.\" WORD: buffer cache ¥Ð¥Ã¥Õ¥¡¥­¥ã¥Ã¥·¥å -.\" WORD: threshold ïçÃÍ -.\" WORD: clear ¥¯¥ê¥¢¡¼ +.\" WORD: floppy disk フロッピーディスク +.\" WORD: double density 倍密度 +.\" WORD: high density 高密度 +.\" WORD: extra density 拡張密度 +.\" WORD: interleaved format インターリーブドフォーマット +.\" WORD: media メディア +.\" WORD: geometry ジオメトリ +.\" WORD: buffer cache バッファキャッシュ +.\" WORD: threshold 閾値 +.\" WORD: clear クリアー .\" .TH FD 4 2010-08-29 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -fd \- ¥Õ¥í¥Ã¥Ô¡¼¥Ç¥£¥¹¥¯(floppy disk)¥Ç¥Ð¥¤¥¹ -.SH ÀßÄê -¥Õ¥í¥Ã¥Ô¡¼¥É¥é¥¤¥Ö¤Ï¥á¥¸¥ã¡¼¥Ê¥ó¥Ð¡¼ 2 ¤ò»ý¤Ä¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Ç¤¢¤ë¡£ -°ìÈÌŪ¤Ë¤Ï¡¢¤³¤Î¥Ç¥Ð¥¤¥¹¤Î¥ª¡¼¥Ê¡¼¤Ï +.SH 名前 +fd \- フロッピーディスク(floppy disk)デバイス +.SH 設定 +フロッピードライブはメジャーナンバー 2 を持つブロックデバイスである。 +一般的には、このデバイスのオーナーは .I root.floppy -(¥ª¡¼¥Ê¡¼ root¡¢¥°¥ë¡¼¥× floppy) ¤Ç¡¢ -¥â¡¼¥É 0660 (¥°¥ë¡¼¥×¤Î¹½À®°÷¤Ç¤¢¤ë¤³¤È¤Ë¤è¤Ã¤Æ¥¢¥¯¥»¥¹¥Á¥§¥Ã¥¯¤¬¹Ô¤ï¤ì¤ë)¡¢ -¤Þ¤¿¤Ï¡¢¥â¡¼¥É 0666 (ï¤Ç¤â¥¢¥¯¥»¥¹¤Ç¤­¤ë) ¤Ç¤¢¤ë¡£ -¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼¤Ï¥Ç¥Ð¥¤¥¹¤Î¥¿¥¤¥×¡¢¥É¥é¥¤¥Ö¤ÎÈֹ桢 -¥³¥ó¥È¥í¡¼¥é¡¼¤ÎÈÖ¹æ¤òÉä¹æ²½¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£¤½¤ì¤¾¤ì¤Î¥Ç¥Ð¥¤¥¹¥¿¥¤¥× -(¤³¤ì¤Ï¡¢Ì©ÅÙ (density) ¤È¥È¥é¥Ã¥¯¥«¥¦¥ó¥È (track count) ¤ÎÁȹ礻¤Ç¤¢¤ë) -¤Ï¡¢¥Ù¡¼¥¹¤È¤Ê¤ë¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼¤ò»ý¤Ã¤Æ¤¤¤ë¡£¤³¤Î¥Ù¡¼¥¹¥Ê¥ó¥Ð¡¼¤Ë¤½¤Î -¥³¥ó¥È¥í¡¼¥é¡¼¾å¤Î¥É¥é¥¤¥Ö¥Ê¥ó¥Ð¡¼¤ò²Ã¤¨¤ë¡£¤â¤·¡¢¤½¤Î¥É¥é¥¤¥Ö¤¬ 2 ÈÖÌܤΠ-¥³¥ó¥È¥í¡¼¥é¡¼¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¤Ê¤é¡¢¤µ¤é¤Ë 128 ¤ò²Ã¤¨¤ë¡£¼¡¤Î¥Ç¥Ð¥¤¥¹ -¥Æ¡¼¥Ö¥ë¤Ç¤Ï¡¢ \fIn\fP ¤Ï¥É¥é¥¤¥ÖÈÖ¹æ¤òɽ¤¹¡£ +(オーナー root、グループ floppy) で、 +モード 0660 (グループの構成員であることによってアクセスチェックが行われる)、 +または、モード 0666 (誰でもアクセスできる) である。 +マイナーナンバーはデバイスのタイプ、ドライブの番号、 +コントローラーの番号を符号化したものである。それぞれのデバイスタイプ +(これは、密度 (density) とトラックカウント (track count) の組合せである) +は、ベースとなるマイナーナンバーを持っている。このベースナンバーにその +コントローラー上のドライブナンバーを加える。もし、そのドライブが 2 番目の +コントローラーに接続されているなら、さらに 128 を加える。次のデバイス +テーブルでは、 \fIn\fP はドライブ番号を表す。 .PP -\fB·Ù¹ð: ¥É¥é¥¤¥Ö¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤è¤ê¤â¿¤¯¤Î¥È¥é¥Ã¥¯¤ò»ý¤Ä¤è¤¦¤Ë -¥Õ¥©¡¼¥Þ¥Ã¥È¤·¤¿¾ì¹ç¡¢¥É¥é¥¤¥Ö¤Ëµ¡³£Åª¤Ê¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¤³¤È¤Ë¤Ê¤ë -¤«¤â¤·¤ì¤Ê¤¤¡£\fP -Ä̾ï¤Î 40/80 ¤è¤ê¤â¿¤¯¤Î¥È¥é¥Ã¥¯¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò -°ìÅٻ¤À¤±¤Ç¤Ï¥É¥é¥¤¥Ö¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¤³¤È¤Ï¤Ê¤¤¤Ï¤º¤À¤¬¡¢ -¥À¥á¡¼¥¸¤òÍ¿¤¨¤Ê¤¤¤È¤¤¤¦ÊݾڤϤʤ¤¡£ -³Î¿®¤¬¤Ê¤¤¾ì¹ç¤Ï¡¢¤½¤Î¤è¤¦¤Ê»È¤¤Êý¤¬¹Ô¤ï¤ì¤Ê¤¤¤è¤¦¤Ë¡¢ -¤½¤¦¤·¤¿¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥É¥é¥¤¥Ö¡¦¥¨¥ó¥È¥ê¤òºîÀ®¤·¤Ê¤¤¤³¤È¡£ +\fB警告: ドライブがサポートしているよりも多くのトラックを持つように +フォーマットした場合、ドライブに機械的なダメージを与えることになる +かもしれない。\fP +通常の 40/80 よりも多くのトラックがサポートされているかどうかを +一度試すだけではドライブにダメージを与えることはないはずだが、 +ダメージを与えないという保証はない。 +確信がない場合は、そのような使い方が行われないように、 +そうしたフォーマットのドライブ・エントリを作成しないこと。 .PP -[ÌõÃí] -°Ê²¼¤Îɽ¤ËÍѤ¤¤é¤ì¤ëÍѸì¤Ïɽ¤ÎÀ°·Á¤Î´Ø·¸¤«¤é -(°ì¹Ô¤Ë¤¦¤Þ¤¯Ç¼¤á¤ë»ö¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¤¿¤á) -¤«¤é¸¶Ê¸¤Î¤Þ¤Þ¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤È¤ÎÂбþ¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ +[訳注] +以下の表に用いられる用語は表の整形の関係から +(一行にうまく納める事ができなかったため) +から原文のままとなっています。日本語との対応は以下の通りです。 .TS l l. -Name ̾Á° -Capac. ÍÆÎÌ -Cyl. ¥·¥ê¥ó¥À¿ô -Sect. ¥»¥¯¥¿¡¼¿ô -Heads. ¥Ø¥Ã¥À¿ô -Base minor # ¥Ù¡¼¥¹¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼ +Name 名前 +Capac. 容量 +Cyl. シリンダ数 +Sect. セクター数 +Heads. ヘッダ数 +Base minor # ベースマイナーナンバー .TE -¥á¥Ç¥£¥¢¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ÈÍÆÎ̤ò¼«Æ°Åª¤Ë¸¡½Ð¤¹¤ë -¥É¥é¥¤¥ÖÈó°Í¸¤Î¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë: +メディアのフォーマットと容量を自動的に検出する +ドライブ非依存のデバイスファイル: .TS l l. Name Base minor # @@ -90,7 +90,7 @@ _ \fBfd\fP\fIn\fP 0 .TE .PP -5.25 ¥¤¥ó¥ÁÇÜÌ©ÅÙ(double density)¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë: +5.25 インチ倍密度(double density)デバイスファイル: .TS lw(1i) l l l l l. Name Capac. Cyl. Sect. Heads Base minor # @@ -98,7 +98,7 @@ _ \fBfd\fP\fIn\fP\fBd360\fP 360K 40 9 2 4 .TE .PP -5.25 ¥¤¥ó¥Á¹âÌ©ÅÙ(high density)¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë: +5.25 インチ高密度(high density)デバイスファイル: .TS lw(1i) l l l l l. Name Capac. Cyl. Sect. Heads Base minor # @@ -115,7 +115,7 @@ _ \fBfd\fP\fIn\fP\fBh1600\fP 1600K 80 20 2 92 .TE .PP -3.5 ¥¤¥ó¥ÁÇÜÌ©ÅÙ(double density)¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë: +3.5 インチ倍密度(double density)デバイスファイル: .TS lw(1i) l l l l l. Name Capac. Cyl. Sect. Heads Base minor # @@ -127,7 +127,7 @@ _ \fBfd\fP\fIn\fP\fBD1120\fP 1120K 80 14 2 88 .TE .PP -3.5 ¥¤¥ó¥Á¹âÌ©ÅÙ(high density)¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë: +3.5 インチ高密度(high density)デバイスファイル: .TS lw(1i) l l l l l. Name Capac. Cyl. Sect. Heads Base minor # @@ -146,7 +146,7 @@ _ \fBfd\fP\fIn\fP\fBH1920\fP 1920K 80 24 2 100 .TE .PP -3.5 ¥¤¥ó¥Á³Èĥ̩ÅÙ(extra density)¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë: +3.5 インチ拡張密度(extra density)デバイスファイル: .TS lw(1i) l l l l l. Name Capac. Cyl. Sect. Heads Base minor # @@ -157,87 +157,87 @@ _ \fBfd\fP\fIn\fP\fBE3520\fP 3520K 80 44 2 108 \fBfd\fP\fIn\fP\fBE3840\fP 3840K 80 48 2 112 .TE -.SH ÀâÌÀ -\fBfd\fP ¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤Ï¥Õ¥í¥Ã¥Ô¡¼¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ö¤Ë¥í¡¼¥â¡¼¥É -(raw mode)¤Ç -¥¢¥¯¥»¥¹¤¹¤ë¡£\fBfd\fP ¤Ç¤Ï¡¢¼¡¤Î +.SH 説明 +\fBfd\fP スペシャルファイルはフロッピーディスクドライブにローモード +(raw mode)で +アクセスする。\fBfd\fP では、次の .BR ioctl (2) -¥³¡¼¥ë¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +コールがサポートされている。 .IP \fBFDCLRPRM\fP -¥É¥é¥¤¥Ö¤Î¥á¥Ç¥£¥¢¾ðÊó(¥É¥é¥¤¥ÖÆâ¤Î¥Ç¥£¥¹¥¯¤Î¥¸¥ª¥á¥È¥ê¾ðÊó)¤ò¥¯¥ê¥¢¤¹ -¤ë¡£ +ドライブのメディア情報(ドライブ内のディスクのジオメトリ情報)をクリアす +る。 .IP \fBFDSETPRM\fP -¥É¥é¥¤¥Ö¤Î¥á¥Ç¥£¥¢¾ðÊó¤ò¥»¥Ã¥È¤¹¤ë¡£¥á¥Ç¥£¥¢¾ðÊó¤Ï¥á¥Ç¥£¥¢¤¬¸ò´¹¤µ¤ì¤¿ -»þ¡¢¼º¤ï¤ì¤ë¡£ +ドライブのメディア情報をセットする。メディア情報はメディアが交換された +時、失われる。 .IP \fBFDDEFPRM\fP -¥É¥é¥¤¥Ö¤Î¥á¥Ç¥£¥¢¾ðÊó(¥É¥é¥¤¥ÖÆâ¤Î¥Ç¥£¥¹¥¯¤Î¥¸¥ª¥á¥È¥ê¾ðÊó)¤ò¥»¥Ã¥È¤¹ -¤ë¡£¥á¥Ç¥£¥¢¾ðÊó¤Ï¥á¥Ç¥£¥¢¤¬¸ò´¹¤µ¤ì¤¿»þ¤Ç¤â¼º¤ï¤ì¤Ê¤¤¡£¤³¤ì¤Ï(¥á¥Ç¥£ -¥¢¾ðÊó¤Î)¼«Æ°¸¡½Ð¤ò̵¸ú¤Ë¤¹¤ë¡£¼«Æ°¸¡½Ð¤òºÆ¤ÓÍ­¸ú¤Ë¤¹¤ë¤¿¤á¤Ë¡¢ -\fBFDCLRPRM\fP ¤òȯ¹Ô¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ドライブのメディア情報(ドライブ内のディスクのジオメトリ情報)をセットす +る。メディア情報はメディアが交換された時でも失われない。これは(メディ +ア情報の)自動検出を無効にする。自動検出を再び有効にするために、 +\fBFDCLRPRM\fP を発行しなければならない。 .IP \fBFDGETDRVTYP\fP -¥É¥é¥¤¥Ö¤Î¥¿¥¤¥×(̾Á°°ú¿ô)¤òÊÖ¤¹¡£¤½¤ì¤¾¤ì¤Î¥É¥é¥¤¥Ö¥¿¥¤¥×¤ËŬ¹ç¤¹¤ë¤è -¤¦¤Ë¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¹Ô¤¦¤¿¤á¡¢\fBFDGETDRVTYP\fP ¤Ï¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¥µ¥Ý¡¼¥È -¤¹¤ëºÇ¤â¸Å¤¤¥É¥é¥¤¥Ö¥¿¥¤¥×¤Î¤¿¤á¤ËŬÀÚ¤Ê̾Á°¤òÊÖ¤¹¡£ +ドライブのタイプ(名前引数)を返す。それぞれのドライブタイプに適合するよ +うにフォーマットを行うため、\fBFDGETDRVTYP\fP はフォーマットをサポート +する最も古いドライブタイプのために適切な名前を返す。 .IP \fBFDFLUSH\fP -Í¿¤¨¤é¤ì¤¿¥É¥é¥¤¥Ö¤Î¥Ð¥Ã¥Õ¥¡¥­¥ã¥Ã¥·¥å¤ò̵¸ú¤Ë¤¹¤ë¡£ +与えられたドライブのバッファキャッシュを無効にする。 .IP \fBFDSETMAXERRS\fP -¥¨¥é¡¼¤ÎÊó¹ð¡¢Áàºî¤ÎÃæ»ß¡¢ºÆ»î¹Ô¡¢¥ê¥»¥Ã¥È¡¢¥»¥¯¥¿¡¼Ëè¤ÎÆɤ߹þ¤ß¤Î¤¿¤á -¤Î¥¨¥é¡¼ïçÃͤò¥»¥Ã¥È¤¹¤ë¡£ +エラーの報告、操作の中止、再試行、リセット、セクター毎の読み込みのため +のエラー閾値をセットする。 .IP \fBFDGETMAXERRS\fP -¸½ºß¤Î¥¨¥é¡¼ïçÃͤòÆÀ¤ë¡£ +現在のエラー閾値を得る。 .IP \fBFDGETDRVTYP\fP -¥É¥é¥¤¥Ö¤ÎÆâÉô̾¤òÆÀ¤ë¡£ +ドライブの内部名を得る。 .IP \fBFDWERRORCLR\fP -½ñ¤­¹þ¤ß¥¨¥é¡¼¤ÎÅý·×¤ò¥¯¥ê¥¢¡¼¤¹¤ë¡£ +書き込みエラーの統計をクリアーする。 .IP \fBFDWERRORGET\fP -½ñ¤­¹þ¤ß¥¨¥é¡¼¤ÎÅý·×¤òÆɤࡣÅý·×¤Ï¡¢½ñ¤­¹þ¤ß¥¨¥é¡¼¤Î¹ç·×¡¢ºÇ½é¤Î½ñ¤­¹þ -¤ß¥¨¥é¡¼¤Ï¤É¤Î¥Ç¥£¥¹¥¯¤Î¤É¤³¤Çµ¯¤³¤Ã¤¿¤«¡¢¤½¤·¤Æ¡¢ºÇ¸å¤Î½ñ¤­¹þ¤ß¥¨¥é¡¼ -¤¬¤É¤Î¥Ç¥£¥¹¥¯¤Î¤É¤³¤Çµ¯¤³¤Ã¤¿¤«¤È¤¤¤¦¾ðÊó¤ò´Þ¤ó¤Ç¤¤¤ë¡£¥Ç¥£¥¹¥¯¤Ï¥Ç¥£ -¥¹¥¯¤Î¸ò´¹¤´¤È¤ËÁý¤¨¤ë¥¸¥§¥Í¥ì¡¼¥·¥ç¥óÈÖ¹æ¤Ë¤è¤Ã¤Æ¼±Ê̤µ¤ì¤ë¡£ +書き込みエラーの統計を読む。統計は、書き込みエラーの合計、最初の書き込 +みエラーはどのディスクのどこで起こったか、そして、最後の書き込みエラー +がどのディスクのどこで起こったかという情報を含んでいる。ディスクはディ +スクの交換ごとに増えるジェネレーション番号によって識別される。 .IP \fBFDTWADDLE\fP -¿ô¥ß¥êÉäδ֥ɥ饤¥Ö¤Î¥â¡¼¥¿¡¼¤Î¥¹¥¤¥Ã¥Á¤òÀڤ롣¤³¤ì¤Ï¥Ç¥£¥¹¥¯¤Î¥»¥¯¥¿¡¼ -Ʊ»Î¤¬Àܶᤷ¤¹¤®¤Æ¤¤¤ë¥Ç¥£¥¹¥¯¤Î¥¢¥¯¥»¥¹¤Î¤¿¤á¤ËɬÍפǤ¢¤í¤¦¡£ +数ミリ秒の間ドライブのモーターのスイッチを切る。これはディスクのセクター +同士が接近しすぎているディスクのアクセスのために必要であろう。 .IP \fBFDSETDRVPRM\fP -¥É¥é¥¤¥Ö¤ÎÍÍ¡¹¤Ê¥Ñ¥é¥á¡¼¥¿¤ò¥»¥Ã¥È¤¹¤ë¡£ +ドライブの様々なパラメータをセットする。 .IP \fBFDGETDRVPRM\fP -(\fBFDSETDRVPRM\fP ¤ò»È¤Ã¤Æ¥»¥Ã¥È¤·¤¿)¥Ñ¥é¥á¡¼¥¿¤òÆɤߤÀ¤¹¡£ +(\fBFDSETDRVPRM\fP を使ってセットした)パラメータを読みだす。 .IP \fBFDGETDRVSTAT\fP -¥­¥ã¥Ã¥·¥å¤µ¤ì¤Æ¤¤¤ë¥É¥é¥¤¥Ö¤Î¾õÂÖ(¥Ç¥£¥¹¥¯¤Î¸ò´¹¡¢¥é¥¤¥È¥×¥í¥Æ¥¯¥È¤Ê -¤É)¤òÆÀ¤ë¡£ +キャッシュされているドライブの状態(ディスクの交換、ライトプロテクトな +ど)を得る。 .IP \fBFDPOLLDRVSTAT\fP -¥É¥é¥¤¥Ö¤ò¥Ý¡¼¥ê¥ó¥°¤·¤Æ¡¢¤½¤Î¾õÂÖ¤òÊÖ¤¹¡£ +ドライブをポーリングして、その状態を返す。 .IP \fBFDGETFDCSTAT\fP -¥Õ¥í¥Ã¥Ô¡¼¥³¥ó¥È¥í¡¼¥é¡¼¤Î¾õÂÖ¤òÆÀ¤ë¡£ +フロッピーコントローラーの状態を得る。 .IP \fBFDRESET\fP -¥Õ¥í¥Ã¥Ô¡¼¥³¥ó¥È¥í¡¼¥é¡¼¤ò¿®Íê¤Ç¤­¤ë¾õÂ֤˥ꥻ¥Ã¥È¤¹¤ë¡£ +フロッピーコントローラーを信頼できる状態にリセットする。 .IP \fBFDRAWCMD\fP -¥Õ¥í¥Ã¥Ô¡¼¥³¥ó¥È¥í¡¼¥é¡¼¤ËÄã¥ì¥Ù¥ë¤Î¥³¥Þ¥ó¥É(raw command)¤òÁ÷¤ë¡£ +フロッピーコントローラーに低レベルのコマンド(raw command)を送る。 .PP -¤è¤êÀµ³Î¤Ê¾ðÊó¤Î¤¿¤á¤Ë¤Ï¡¢¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸ +より正確な情報のためには、マニュアルページ .BR floppycontrol (1) -¤À¤±¤Ç¤Ê¤¯¡¢¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë \fI\fP ¤È -\fI\fP ¤â»²¾È¤Î¤³¤È¡£ -.SH ¥Õ¥¡¥¤¥ë +だけでなく、インクルードファイル \fI\fP と +\fI\fP も参照のこと。 +.SH ファイル /dev/fd* -.SH Ãí°Õ -ÍÍ¡¹¤Ê¥Ç¥£¥¹¥¯¤Î¥¿¥¤¥×¤ÇÍÍ¡¹¤Ê¼ïÎà¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ÎÆɤ߽ñ¤­¤¬µö¤µ¤ì¤Æ¤¤¤ë¡£ -¤·¤«¤·¡¢¾®¤µ¤¹¤®¤ë¥»¥¯¥¿¡¼´Ö¥®¥ã¥Ã¥×¤Ç¥Õ¥©¡¼¥Þ¥Ã¥È¤µ¤ì¤¿¥Õ¥í¥Ã¥Ô¡¼¤Ç¤Ï¡¢ -¥È¥é¥Ã¥¯Á´ÂΤΥ¢¥¯¥»¥¹¤Ë¿ôÉÃɬÍפˤʤ뤿¤á¡¢À­Ç½¤¬Äã²¼¤¹¤ë¤³¤È¤À¤í¤¦¡£ -¤³¤ì¤òËɤ°¤¿¤á¤Ë¤Ï¡¢¥¤¥ó¥¿¡¼¥ê¡¼¥Ö¥É¡¦¥Õ¥©¡¼¥Þ¥Ã¥È -(interleaved format) ¤òÍѤ¤¤ì¤Ð¤è¤¤¡£ +.SH 注意 +様々なディスクのタイプで様々な種類のフォーマットの読み書きが許されている。 +しかし、小さすぎるセクター間ギャップでフォーマットされたフロッピーでは、 +トラック全体のアクセスに数秒必要になるため、性能が低下することだろう。 +これを防ぐためには、インターリーブド・フォーマット +(interleaved format) を用いればよい。 -Apple II ¤ä Macintosh ¥³¥ó¥Ô¥å¡¼¥¿¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë¡¢ -GCR (group code recording) ¤ò»È¤Ã¤Æ¥Õ¥©¡¼¥Þ¥Ã¥È¤µ¤ì¤¿¥Õ¥í¥Ã¥Ô¡¼ -(800k ¥Ç¥£¥¹¥¯) ¤òÆɤळ¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +Apple II や Macintosh コンピュータで使用されている、 +GCR (group code recording) を使ってフォーマットされたフロッピー +(800k ディスク) を読むことはできない。 -¥Ï¡¼¥É¥»¥¯¥¿¡¼·¿¤Î¥Õ¥í¥Ã¥Ô¡¼¤ÎÆɤ߹þ¤ß¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤ -(¥Ï¡¼¥É¥»¥¯¥¿¡¼·¿¤Î¥Õ¥í¥Ã¥Ô¡¼¤Ç¤Ï¡¢¥»¥¯¥¿¡¼Ëè¤Ë¥Û¡¼¥ë (hole) ¤¬°ì¤Ä¤¢¤ê¡¢ -¾¯¤·¤º¤ì¤¿°ÌÃ֤˥¤¥ó¥Ç¥Ã¥¯¥¹¥Û¡¼¥ë¤¬Â¸ºß¤¹¤ë)¡£ -¤³¤ì¤Ï¡¢ÀΤΠ8 ¥¤¥ó¥Á¥Õ¥í¥Ã¥Ô¡¼¤Ç°ìÈÌŪ¤Ë»È¤ï¤ì¤Æ¤¤¤¿Êý¼°¤Ç¤¢¤ë¡£ -.\" .SH Ãø¼Ô +ハードセクター型のフロッピーの読み込みはサポートされていない +(ハードセクター型のフロッピーでは、セクター毎にホール (hole) が一つあり、 +少しずれた位置にインデックスホールが存在する)。 +これは、昔の 8 インチフロッピーで一般的に使われていた方式である。 +.\" .SH 著者 .\" Alain Knaff (Alain.Knaff@imag.fr), David Niemi .\" (niemidc@clark.net), Bill Broadhurst (bbroad@netcom.com). -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chown (1), .BR floppycontrol (1), .BR getfdprm (1), @@ -245,5 +245,5 @@ GCR (group code recording) .BR superformat (1), .BR mount (8), .BR setfdprm (8) -.\" .SH ËÝÌõ¼Ô -.\" ÀÐÀî ËÓ +.\" .SH 翻訳者 +.\" 石川 睦 diff --git a/release/man4/full.4 b/release/man4/full.4 index a25aea85..1e881f7c 100644 --- a/release/man4/full.4 +++ b/release/man4/full.4 @@ -32,32 +32,32 @@ .\" Updated 2006-07-20, Akihiro MOTOKI , LDP v2.34 .\" .TH FULL 4 2007-11-24 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -full \- ¤¤¤Ä¤â full ¤Ç¤¢¤ë¥Ç¥Ð¥¤¥¹ -.SH ÀßÄê -¥·¥¹¥Æ¥à¤ËºîÀ®ºÑ¤ß¤Î \fI/dev/full\fP ¤¬¤Ê¤¤¾ì¹ç¡¢ -¼¡¤Î¥³¥Þ¥ó¥É¤Ë¤è¤êºîÀ®¤Ç¤­¤ë¡£ +.SH 名前 +full \- いつも full であるデバイス +.SH 設定 +システムに作成済みの \fI/dev/full\fP がない場合、 +次のコマンドにより作成できる。 .nf mknod \-m 666 /dev/full c 1 7 chown root:root /dev/full .fi -.SH ÀâÌÀ -\fI/dev/full\fP ¤Ï¡¢¥á¥¸¥ã¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ 1¡¢ -¥Þ¥¤¥Ê¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ 7 ¤Î¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ +.SH 説明 +\fI/dev/full\fP は、メジャーデバイス番号 1、 +マイナーデバイス番号 7 のファイルである。 .LP -\fI/dev/full\fP ¥Ç¥Ð¥¤¥¹¤Ø¤Î½ñ¤­¹þ¤ß¤Ï¡¢ +\fI/dev/full\fP デバイスへの書き込みは、 .B ENOSPC -¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë¡£ -¤³¤ÎÆ°ºî¤ò»È¤Ã¤Æ¡¢¥×¥í¥°¥é¥à¤¬¥Ç¥£¥¹¥¯¥Õ¥ë¤Î¥¨¥é¡¼¤ò¤É¤Î¤è¤¦¤Ë -½èÍý¤¹¤ë¤«¤ò¥Æ¥¹¥È¤Ç¤­¤ë¡£ +エラーで失敗する。 +この動作を使って、プログラムがディスクフルのエラーをどのように +処理するかをテストできる。 -\fI/dev/full\fP ¥Ç¥Ð¥¤¥¹¤«¤é¤ÎÆɤ߽Ф·¤Ç¤Ï¡¢\\0 ʸ»ú(¥Ì¥ëʸ»ú)¤¬ÊÖ¤µ¤ì¤ë¡£ +\fI/dev/full\fP デバイスからの読み出しでは、\\0 文字(ヌル文字)が返される。 -\fI/dev/full\fP ¤Î¥·¡¼¥¯ (seek) ¤Ï¾ï¤ËÀ®¸ù¤¹¤ë¡£ -.SH ¥Õ¥¡¥¤¥ë +\fI/dev/full\fP のシーク (seek) は常に成功する。 +.SH ファイル /dev/full -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mknod (1), .BR null (4), .BR zero (4) diff --git a/release/man4/hd.4 b/release/man4/hd.4 index 87ba2542..499e851d 100644 --- a/release/man4/hd.4 +++ b/release/man4/hd.4 @@ -33,61 +33,61 @@ .\" Japanese Version Last Modified Thu Feb 5 17:36:37 JST 1998 .\" by ISHIKAWA Mutsumi .\" -.\" WORD: hard disk drive ¥Ï¡¼¥É¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ö -.\" WORD: block device ¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹ -.\" WORD: primary ¥×¥é¥¤¥Þ¥ê -.\" WORD: controller ¥³¥ó¥È¥í¡¼¥é -.\" WORD: master drive ¥Þ¥¹¥¿¡¼¥É¥é¥¤¥Ö -.\" WORD: slave drive ¥¹¥ì¡¼¥Ö¥É¥é¥¤¥Ö -.\" WORD: pertition ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó -.\" WORD: logical partition ÏÀÍý¥Ñ¡¼¥Æ¥£¥·¥ç¥ó -.\" WORD: pertitioning ¥Ñ¡¼¥Æ¥£¥·¥ç¥Ë¥ó¥° -.\" WORD: BSD-disklabel BSD ¥Ç¥£¥¹¥¯¥é¥Ù¥ë +.\" WORD: hard disk drive ハードディスクドライブ +.\" WORD: block device ブロックデバイス +.\" WORD: primary プライマリ +.\" WORD: controller コントローラ +.\" WORD: master drive マスタードライブ +.\" WORD: slave drive スレーブドライブ +.\" WORD: pertition パーティション +.\" WORD: logical partition 論理パーティション +.\" WORD: pertitioning パーティショニング +.\" WORD: BSD-disklabel BSD ディスクラベル .\" .TH HD 4 1992-12-17 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -hd \- MFM/IDE ¥Ï¡¼¥É¥Ç¥£¥¹¥¯¥Ç¥Ð¥¤¥¹ -.SH ÀâÌÀ -\fBhd*\fP ¥Ç¥Ð¥¤¥¹¤Ï MFM/IDE ¥Ï¡¼¥É¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ö¤Ë¥í¡¼¥â¡¼¥É (raw mode) -¤Ç¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Î¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹ (block device) ¤Ç¤¢¤ë¡£¥×¥é¥¤¥Þ¥ê -(primary) IDE ¥³¥ó¥È¥í¡¼¥é (¥á¥¸¥ã¡¼¥Ê¥ó¥Ð¡¼ 3) ¤Î ¥Þ¥¹¥¿¡¼¥É¥é¥¤¥Ö -(mater drive) ¤Ï \fBhda\fR¡¢¥¹¥ì¡¼¥Ö¥É¥é¥¤¥Ö (slave drive) ¤Ï \fBhdb\fR -¤Ç¤¢¤ë¡£¤Þ¤¿¡¢¥»¥«¥ó¥É¥³¥ó¥È¥í¡¼¥é (¥á¥¸¥ã¡¼¥Ê¥ó¥Ð¡¼ 22) ¤Î¥Þ¥¹¥¿¡¼ -¥É¥é¥¤¥Ö¤Ï \fBhdc\fR ¥¹¥ì¡¼¥Ö¤Ï \fBhdd\fR ¤Ç¤¢¤ë¡£ +.SH 名前 +hd \- MFM/IDE ハードディスクデバイス +.SH 説明 +\fBhd*\fP デバイスは MFM/IDE ハードディスクドライブにローモード (raw mode) +でアクセスするためのブロックデバイス (block device) である。プライマリ +(primary) IDE コントローラ (メジャーナンバー 3) の マスタードライブ +(mater drive) は \fBhda\fR、スレーブドライブ (slave drive) は \fBhdb\fR +である。また、セカンドコントローラ (メジャーナンバー 22) のマスター +ドライブは \fBhdc\fR スレーブは \fBhdd\fR である。 .LP -°ìÈÌŪ¤Ê IDE ¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Î̾Á°¤Ï +一般的な IDE ブロックデバイスの名前は .BI hd X\c -¤Þ¤¿¤Ï¡¢ +または、 .BI hd XP\c -¤È¤¤¤¦·ÁÂÖ¤ò¤È¤ë¡£¤³¤Î¡¢ +という形態をとる。この、 .I X -¤ÎÉôʬ¤ÏʪÍýŪ¤Ê¥É¥é¥¤¥Ö¤òɽ¤¹Ê¸»ú¤Ç¡¢ +の部分は物理的なドライブを表す文字で、 .I P -¤ÎÉôʬ¤Ï¤½¤ÎʪÍýŪ¤Ê¥É¥é¥¤¥Ö¾å¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó (partition) ¤òɽ¤¹¿ô»ú¤Ç -¤¢¤ë¡£¤³¤ÎºÇ½é¤Î·Á¼° +の部分はその物理的なドライブ上のパーティション (partition) を表す数字で +ある。この最初の形式 .BI hd X, -¤Ï¥É¥é¥¤¥ÖÁ´ÂΤò¼¨¤¹¤Î¤Ë»È¤ï¤ì¤ë¡£ -¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Ê¥ó¥Ð¡¼¤Ïȯ¸«¤µ¤ì¤¿¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë½ç¤Ë³ä¤êÉÕ¤±¤é¤ì¤ë¡£ -¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Ê¥ó¥Ð¡¼¤¬³ä¤êÉÕ¤±¤é¤ì¤ë¤Î¤Ï¡¢¶õ¤Ç¤Ê¤¯ (nonempty) ¤«¤Ä -³ÈÄ¥¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ç¤Ê¤¤ (nonextended) ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¤ß¤Ç¤¢¤ë¡£ -¤³¤Î¤¦¤Á¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Ê¥ó¥Ð¡¼ 1 ¤«¤é 4 ¤Ï¤½¤ì¤¬»È¤ï¤ì¤Æ¤¤¤Ê¤¯¤Æ¤â¡¢ -¤Þ¤¿³ÈÄ¥¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤À¤È¤·¤Æ¤â MBR ¤Ëµ­½Ò¤µ¤ì¤ë»Í¤Ä¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó -(¤¤¤ï¤æ¤ë¡¢¥×¥é¥Þ¥ê'¥Ñ¡¼¥Æ¥£¥·¥ç¥ó) ¤ËÍ¿¤¨¤é¤ì¤ë¡£ -½¾¤Ã¤Æ¡¢ºÇ½é¤ÎÏÀÍý¥Ñ¡¼¥Æ¥£¥·¥ç¥ó (logical pertition) ¤Ï¡¢ +はドライブ全体を示すのに使われる。 +パーティションナンバーは発見されたパーティションに順に割り付けられる。 +パーティションナンバーが割り付けられるのは、空でなく (nonempty) かつ +拡張パーティションでない (nonextended) パーティションのみである。 +このうち、パーティションナンバー 1 から 4 はそれが使われていなくても、 +また拡張パーティションだとしても MBR に記述される四つのパーティション +(いわゆる、プラマリ'パーティション) に与えられる。 +従って、最初の論理パーティション (logical pertition) は、 .BI hd X 5\c -¤È¤Ê¤ë¤À¤í¤¦¡£ -(IDE ¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤Ç¤Ï) DOS ¥¿¥¤¥×¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥Ë¥ó¥° (partitioning) -¤È BSD ¥Ç¥£¥¹¥¯¥é¥Ù¥ë (BSD-disklabel) ¤Ë¤è¤ë¥Ñ¡¼¥Æ¥£¥·¥ç¥Ë¥ó¥°¤ÎξÊý¤¬ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£¤Þ¤¿¡¢IDE ¥Ç¥£¥¹¥¯¾å¤ËºÇ¹â 63 ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò -ºîÀ®¤¹¤ë»ö¤¬¤Ç¤­¤ë¡£ +となるだろう。 +(IDE ハードディスクでは) DOS タイプのパーティショニング (partitioning) +と BSD ディスクラベル (BSD-disklabel) によるパーティショニングの両方が +サポートされている。また、IDE ディスク上に最高 63 のパーティションを +作成する事ができる。 .LP -Î㤨¤Ð¡¢ +例えば、 .I /dev/hda -¤Ï¥·¥¹¥Æ¥à¤ÎºÇ½é¤Î IDE ¥É¥é¥¤¥ÖÁ´ÂΤò»²¾È¤¹¤ë¡£¤½¤·¤Æ¡¢ +はシステムの最初の IDE ドライブ全体を参照する。そして、 .I /dev/hdb3 -¤Ï¥»¥«¥ó¥É¥É¥é¥¤¥Ö¤Î»°¤Ä¤á¤Î DOS `¥×¥é¥¤¥Þ¥ê'¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò»²¾È¤¹¤ë¡£ +はセカンドドライブの三つめの DOS `プライマリ'パーティションを参照する。 .LP -¤³¤ì¤é¤Î¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë (device file) ¤Ïŵ·¿Åª¤Ë¤Ï¼¡¤Î¤è¤¦¤Ë¤·¤Æºî¤é¤ì¤ë¡£ +これらのデバイスファイル (device file) は典型的には次のようにして作られる。 .RS .sp mknod \-m 660 /dev/hda b 3 0 @@ -112,9 +112,9 @@ mknod \-m 660 /dev/hdb8 b 3 72 .br chown root:disk /dev/hd* .RE -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル /dev/hd* -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chown (1), .BR mknod (1), .BR sd (4) diff --git a/release/man4/initrd.4 b/release/man4/initrd.4 index a2f06c79..3af9c9c1 100644 --- a/release/man4/initrd.4 +++ b/release/man4/initrd.4 @@ -39,20 +39,20 @@ .\" Updated & Modified 2005-10-08, Akihiro MOTOKI .\" .TH INITRD 4 2010-09-04 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -initrd \- ¥Ö¡¼¥È¥í¡¼¥À¤Ë¤è¤Ã¤Æ½é´ü²½¤µ¤ì¤¿ RAM ¥Ç¥£¥¹¥¯ -.SH ÀßÄê +.SH 名前 +initrd \- ブートローダによって初期化された RAM ディスク +.SH 設定 .I /dev/initrd -¤Ï¡¢¥á¥¸¥ã¡¼ÈÖ¹æ 1¡¢¥Þ¥¤¥Ê¡¼ÈÖ¹æ 250 ¤¬³ä¤êÅö¤Æ¤é¤ì¤¿ -Æɤ߹þ¤ßÀìÍѤΥ֥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Ç¤¢¤ë¡£ -ÉáÄÌ¡¢ +は、メジャー番号 1、マイナー番号 250 が割り当てられた +読み込み専用のブロックデバイスである。 +普通、 .I /dev/initrd -¤Î½êÍ­¼Ô¤Ï +の所有者は .I root.disk -¤Ç¤¢¤ê¡¢¥â¡¼¥É¤Ï 400 (root ¤Î¤ß¤¬Æɤ߽Ф·²Äǽ) ¤Ç¤¢¤ë¡£ -¤â¤·¡¢Linux ¥·¥¹¥Æ¥à¤ËºîÀ®ºÑ¤Î +であり、モードは 400 (root のみが読み出し可能) である。 +もし、Linux システムに作成済の .I /dev/initrd -¥Õ¥¡¥¤¥ë¤¬¤Ê¤«¤Ã¤¿¾ì¹ç¡¢°Ê²¼¤Î¥³¥Þ¥ó¥É¤ÇºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë: +ファイルがなかった場合、以下のコマンドで作成することができる: .nf \fB mknod \-m 400 /dev/initrd b 1 250 @@ -60,252 +60,252 @@ initrd \- \fP .fi .PP -¤Þ¤¿¡¢ +また、 .I /dev/initrd -¤ò»ÈÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢ -"RAM disk" ¤È "Initial RAM disk" ¤ÎξÊý¤Îµ¡Ç½¤¬ -Linux ¥«¡¼¥Í¥ë¤ËľÀÜÁȤ߹þ¤Þ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(Î㤨¤Ð¡¢¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤ÎÀßÄê¤Ç +を使用するためには、 +"RAM disk" と "Initial RAM disk" の両方の機能が +Linux カーネルに直接組み込まれていなければならない +(例えば、カーネルのコンパイル時の設定で .B CONFIG_BLK_DEV_RAM=y -¤«¤Ä +かつ .B CONFIG_BLK_DEV_INITRD=y -¤È¤¹¤ë)¡£ +とする)。 .I /dev/initrd -¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ë¤Ï¡¢RAM ¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ð¤ò¥â¥¸¥å¡¼¥ë¤È¤·¤Æ -¥í¡¼¥É¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +を使用する場合には、RAM ディスクドライバをモジュールとして +ロードすることはできない。 .\" .\" .\" -.SH ÀâÌÀ +.SH 説明 .I /dev/initrd -¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤ÏÆɤ߹þ¤ßÀìÍѤΥ֥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Ç¤¢¤ë¡£ -¤³¤Î¥Ç¥Ð¥¤¥¹¤Ï¥«¡¼¥Í¥ë¤¬µ¯Æ°¤µ¤ì¤ëÁ°¤Ë¥Ö¡¼¥È¥í¡¼¥À (boot loader) -¤Ë¤è¤Ã¤Æ½é´ü²½ (Î㤨¤Ð¡¢¥í¡¼¥É) ¤µ¤ì¤ë RAM ¥Ç¥£¥¹¥¯¤Ç¤¢¤ë¡£ -¤½¤Î¸å¡¢¥«¡¼¥Í¥ë¤Ï +スペシャルファイルは読み込み専用のブロックデバイスである。 +このデバイスはカーネルが起動される前にブートローダ (boot loader) +によって初期化 (例えば、ロード) される RAM ディスクである。 +その後、カーネルは .I /dev/initrd -¤ÎÆâÍƤòÆóÃʳ¬¤Î¥·¥¹¥Æ¥àµ¯Æ° (two-phase system boot-up) -¤ÇÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +の内容を二段階のシステム起動 (two-phase system boot-up) +で利用することができる。 .PP -ºÇ½é¤Î¥Ö¡¼¥È¥¢¥Ã¥×Ãʳ¬ (first boot-up phase) ¤Ç¤Ï¡¢¥«¡¼¥Í¥ë¤Ï -(Î㤨¤Ð¡¢¥Ö¡¼¥È¥í¡¼¥À¤Ë¤è¤Ã¤Æ½é´ü²½¤µ¤ì¤¿ RAM disk ¤Ç¤¢¤ë) +最初のブートアップ段階 (first boot-up phase) では、カーネルは +(例えば、ブートローダによって初期化された RAM disk である) .I /dev/initrd -¤ÎÆâÍƤò½é´ü¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à (root file-system) ¤È¤·¤Æ¥Þ¥¦¥ó¥È -¤·¤Æµ¯Æ°¤¹¤ë¡£ -ÂèÆóÃʳ¬¤Ç¤Ï½é´ü¥ë¡¼¥È¥Ç¥Ð¥¤¥¹¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤â¤Î¤«¤é¡¢ÄɲäΥɥ饤 -¥Ð¤ä¤½¤Î¾¤Î¥â¥¸¥å¡¼¥ë¤¬¥í¡¼¥É¤µ¤ì¤ë¡£ -ÄɲäΥ⥸¥å¡¼¥ë¤¬¥í¡¼¥É¤µ¤ì¤¿¸å¡¢¿·¤·¤¤¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -(¤¹¤Ê¤ï¤Á¡¢Ä̾ï»þ¤Î¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à) -¤¬Ê̤ΥǥХ¤¥¹¤«¤é¥Þ¥¦¥ó¥È¤µ¤ì¤ë¡£ +の内容を初期ルートファイルシステム (root file-system) としてマウント +して起動する。 +第二段階では初期ルートデバイスに含まれているものから、追加のドライ +バやその他のモジュールがロードされる。 +追加のモジュールがロードされた後、新しいルートファイルシステム +(すなわち、通常時のルートファイルシステム) +が別のデバイスからマウントされる。 .\" .\" .\" -.SS ¥Ö¡¼¥È¥¢¥Ã¥×ºî¶È +.SS ブートアップ作業 .B initrd -¤òÍøÍѤ·¤¿»þ¤Ï¡¢¥·¥¹¥Æ¥à¤Ï¼¡¤Î¤è¤¦¤Ë¥Ö¡¼¥È¤¹¤ë: +を利用した時は、システムは次のようにブートする: .IP 1. 3 -¥Ö¡¼¥È¥í¡¼¥À¤Ï¥«¡¼¥Í¥ë¥×¥í¥°¥é¥à¤È +ブートローダはカーネルプログラムと .I /dev/initrd -¤ÎÆâÍƤò¥á¥â¥ê¤Ë¥í¡¼¥É¤¹¤ë¡£ +の内容をメモリにロードする。 .IP 2. -¥«¡¼¥Í¥ëµ¯Æ°»þ¡¢¥«¡¼¥Í¥ë¤Ï +カーネル起動時、カーネルは .I /dev/initrd -¥Ç¥Ð¥¤¥¹¤ÎÆâÍƤòŸ³« (uncompress) ¤·¡¢ +デバイスの内容を展開 (uncompress) し、 .I /dev/ram0 -¤Ë¥³¥Ô¡¼¤¹¤ë¡£¤µ¤é¤Ë¡¢ +にコピーする。さらに、 .I /dev/initrd -¤Î»È¤Ã¤Æ¤¤¤¿¥á¥â¥ê¤ò²òÊü¤¹¤ë¡£ +の使っていたメモリを解放する。 .IP 3. -¥«¡¼¥Í¥ë¤Ï +カーネルは .I /dev/ram0 -¥Ç¥Ð¥¤¥¹¤ò½é´ü¤Î¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤È¤·¤ÆÆɤ߽ñ¤­²Äǽ¤Ê·Á¼°¤Ç¥Þ¥¦¥ó -¥È¤¹¤ë¡£ +デバイスを初期のルートファイルシステムとして読み書き可能な形式でマウン +トする。 .IP 4. -»Ø¼¨¤µ¤ì¤¿¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬½é´ü¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -(Î㤨¤Ð +指示されたルートファイルシステムが初期ルートファイルシステム +(例えば .IR /dev/ram0 ) -¤ÈƱ°ì¤Î¾ì¹ç¤Ï¡¢¥«¡¼¥Í¥ë¤ÏÉáÄ̤Υ֡¼¥È¥·¡¼¥±¥ó¥¹¤Î¤¿¤á¤ÎºÇ¸å¤Î¥¹¥Æ¥Ã¥×¤ò -¾Êά¤¹¤ë¡£ +と同一の場合は、カーネルは普通のブートシーケンスのための最後のステップを +省略する。 .IP 5. .I /linuxrc -¤È¤¤¤¦¼Â¹Ô²Äǽ¤Ê¥Õ¥¡¥¤¥ë¤¬½é´ü¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ì¤Ð¡¢ +という実行可能なファイルが初期ルートファイルシステムに存在すれば、 .I /linuxrc -¤ò UID 0 (¤¹¤Ê¤ï¤Á¡¢root) ¤Î¸¢¸Â¤Ç¼Â¹Ô¤¹¤ë¡£ +を UID 0 (すなわち、root) の権限で実行する。 .RI ( /linuxrc -¥Õ¥¡¥¤¥ë¤Ï¼Â¹Ô²Äǽ¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ファイルは実行可能パーミッションが与えられていなければならない。 .I /linuxrc -¤ÏÀµÅö¤Ê¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ç¤¢¤ì¤Ð¤è¤¯¡¢¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤Ç¤â¹½¤ï¤Ê¤¤¡£) +は正当な実行ファイルであればよく、シェルスクリプトでも構わない。) .IP 6. .I /linuxrc -¤¬¼Â¹Ô¤µ¤ì¤Ê¤¤¡¢¤Þ¤¿¤Ï¡¢ +が実行されない、または、 .I /linuxrc -¤Î¼Â¹Ô¤¬½ªÎ»¤·¤¿»þ¤Ï¡¢Ä̾ï»þ¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¥Þ¥¦¥ó¥È¤µ¤ì¤ë¡£ +の実行が終了した時は、通常時ルートファイルシステムがマウントされる。 .RI ( /linuxrc -¤ò½ªÎ»¤·¤¿»þ¡¢²¿¤é¤«¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬½é´ü¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ë -¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Î¥«¡¼¥Í¥ë¤ÎÆ°ºî¤Ï -\fB·è¤á¤é¤ì¤Æ¤¤¤Ê¤¤ (ÉÔÄê¤Ç¤¢¤ë)\fR¡£ -¸½ºß¤Î¥«¡¼¥Í¥ë¤¬¤É¤Î¤è¤¦¤ËÆ°ºî¤¹¤ë¤«¤Ï¡¢ -¡ÖÃí°Õ¡×¤Î¥»¥¯¥·¥ç¥ó¤ò»²¾È¤Î¤³¤È¡£) +を終了した時、何らかのファイルシステムが初期ルートファイルシステム上に +マウントされている場合のカーネルの動作は +\fB決められていない (不定である)\fR。 +現在のカーネルがどのように動作するかは、 +「注意」のセクションを参照のこと。) .IP 7. -Ä̾ï»þ¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë -¥Ç¥£¥ì¥¯¥È¥ê +通常時ルートファイルシステムに +ディレクトリ .I /initrd -¤¬¤¢¤ì¤Ð¡¢ +があれば、 .I /dev/ram0 -¥Ç¥Ð¥¤¥¹¤Ï +デバイスは .I / -¤«¤é +から .I /initrd -¤Ë°ÜÆ°¤µ¤ì¤ë¡£ +に移動される。 .I /initrd -¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¡¢ +ディレクトリが存在しない場合は、 .I /dev/ram0 -¤Ï¥¢¥ó¥Þ¥¦¥ó¥È¤µ¤ì¤ë¡£ +はアンマウントされる。 .RI ( / -¤¬ +が .I /initrd -¤Ë°ÜÆ°¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ +に移動された場合には、 .I /dev/ram0 -¤Ï¥¢¥ó¥Þ¥¦¥ó¥È¤µ¤ì¤º¡¢¤½¤Î·ë²Ì¡¢ +はアンマウントされず、その結果、 .I /dev/ram0 -¤ÇÁö¤ê»Ï¤á¤¿¥×¥í¥»¥¹¤Ï¤½¤Î¤Þ¤Þ»Ä¤ë»ö¤¬¤Ç¤­¤ë¡£ -¤â¤·¡¢ +で走り始めたプロセスはそのまま残る事ができる。 +もし、 .I /initrd -¥Ç¥£¥ì¥¯¥È¥ê¤¬Ä̾ï»þ¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¸ºß¤»¤º¡¢ +ディレクトリが通常時ルートファイルシステムに存在せず、 .I /linuxrc -¤¬½ªÎ»¤·¤¿»þ¤Ë +が終了した時に .I /dev/ram0 -¾å¤Ç¼Â¹Ô¤µ¤ì¤¿¡¢¤Ê¤ó¤é¤«¤Î¥×¥í¥»¥¹¤¬Áö¤ê³¤±¤Æ¤¤¤¿¾ì¹ç¤Î -¥«¡¼¥Í¥ë¤ÎÆ°ºî¤Ï -.BR "·è¤á¤é¤ì¤Æ¤¤¤Ê¤¤ (ÉÔÄê¤Ç¤¢¤ë)" ¡£ -¸½ºß¤Î¥«¡¼¥Í¥ë¤¬¡¢¤³¤Î»þ¤É¤Î¤è¤¦¤ÊÆ°ºî¤ò¤¹¤ë¤«¤Ë¤Ä¤¤¤Æ¤Ï¡¢ -¡ÖÃí°Õ¡×¤ò»²¾È¤Î¤³¤È¡£) +上で実行された、なんらかのプロセスが走り続けていた場合の +カーネルの動作は +.BR "決められていない (不定である)" 。 +現在のカーネルが、この時どのような動作をするかについては、 +「注意」を参照のこと。) .IP 8. -ÉáÄ̤Υ֡¼¥È¥·¡¼¥±¥ó¥¹ (Î㤨¤Ð¡¢ +普通のブートシーケンス (例えば、 .I /sbin/init -¤Îµ¯Æ°) ¤¬Ä̾ï»þ¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ç¹Ô¤ï¤ì¤ë¡£ +の起動) が通常時ルートファイルシステム上で行われる。 .\" .\" .\" -.SS ¥ª¥×¥·¥ç¥ó +.SS オプション .B initrd -¤òÍѤ¤¤ë¾ì¹ç¤Ë¡¢¥«¡¼¥Í¥ë¤Î¥Ö¡¼¥È¥¢¥Ã¥×Áàºî¤Ë±Æ¶Á¤òÍ¿¤¨¤ë -¥Ö¡¼¥È¥í¡¼¥À¡¦¥ª¥×¥·¥ç¥ó¤Ï¼¡¤Î¤è¤¦¤Ê¤â¤Î¤¬¤¢¤ë¡¢ +を用いる場合に、カーネルのブートアップ操作に影響を与える +ブートローダ・オプションは次のようなものがある、 .TP .BI initrd= "filename" .I /dev/initrd -¤ÎÆâÍƤȤ·¤Æ¥í¡¼¥É¤¹¤ë¥Õ¥¡¥¤¥ë¤ò»ØÄꤹ¤ë¡£ +の内容としてロードするファイルを指定する。 .B LOADLIN -¤Ç¤Ï¡¢¤³¤ì¤Ï¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë¡£ +では、これはコマンドラインオプションである。 .B LILO -¤Ç¤Ï¡¢ +では、 .B LILO -¤ÎÀßÄê¥Õ¥¡¥¤¥ë +の設定ファイル .I /etc/lilo.config -Æâ¤Ç¥³¥Þ¥ó¥É¤È¤·¤Æ»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤵ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ï¡¢Â¿¤¯¤Î¾ì¹ç gzip °µ½Ì¤µ¤ì¤¿ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¤¥á¡¼¥¸¤Ç¤¢¤ë¡£ +内でコマンドとして使用しなければならない。 +このオプションで指定されるファイルは、多くの場合 gzip 圧縮された +ファイルシステムイメージである。 .TP .B noinitrd -¤³¤Îµ¯Æ°¥ª¥×¥·¥ç¥ó¤ÏÆóÃʳ¬¤Îµ¯Æ°Áàºî¤ò̵¸ú¤Ë¤¹¤ë¡£ -¥«¡¼¥Í¥ë¤Ï +この起動オプションは二段階の起動操作を無効にする。 +カーネルは .I /dev/initrd -¤¬½é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤ÈƱÍͤΡ¢Ä̾ï¤Î¥Ö¡¼¥È¥¢¥Ã¥×Æ°ºî¤ò¹Ô¤¦¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤È¡¢¥Ö¡¼¥È¥í¡¼¥À¤Ë¤è¤Ã¤Æ¥á¥â¥ê¾å¤Ë¥í¡¼¥É¤µ¤ì¤¿ +が初期化されていない場合と同様の、通常のブートアップ動作を行う。 +このオプションを用いると、ブートローダによってメモリ上にロードされた .I /dev/initrd -¤ÎÆâÍƤϤ½¤Î¤Þ¤ÞÊݸ¤µ¤ì¤ë¡£ -¤Ä¤Þ¤ê¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢ +の内容はそのまま保存される。 +つまり、このオプションを用いることによって、 .I /dev/initrd -¤ÎÆâÍƤò (¥Ö¡¼¥È°Ê³°¤ÎÌÜŪ¤Ë) ÍøÍѤ¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¡£¤Þ¤¿¡¢¤½¤ÎÆâÍÆ¤Ï -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¤¥á¡¼¥¸¤Ë¸ÂÄꤵ¤ì¤Ê¤¤¡£ -¤·¤«¤·¡¢ +の内容を (ブート以外の目的に) 利用することが可能になる。また、その内容は +ファイルシステムイメージに限定されない。 +しかし、 .I /dev/initrd -¥Ç¥Ð¥¤¥¹¤ÏÆɤߤÀ¤·¤Î¤ß²Äǽ¤Ç¤¢¤ê¡¢¥·¥¹¥Æ¥à¤Îµ¯Æ°¸å 1 ÅÙ¤·¤«Æɤ߽Ф¹»ö -¤¬¤Ç¤­¤Ê¤¤¡£ +デバイスは読みだしのみ可能であり、システムの起動後 1 度しか読み出す事 +ができない。 .TP .BI root= "device-name" -Ä̾ï»þ¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤È¤·¤Æ»È¤ï¤ì¤ë¥Ç¥Ð¥¤¥¹¤ò»ØÄꤹ¤ë¡£ +通常時ルートファイルシステムとして使われるデバイスを指定する。 .B LOADLIN -¤Ç¤Ï¡¢¤³¤ì¤Ï¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë¡£ +では、これはコマンドラインオプションである。 .B LILO -¤Ç¤Ï¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¡¢¤Þ¤¿¤Ï¡¢ +ではコマンドラインオプション、または、 .B LILO -¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë +の設定ファイルである .I /etc/lilo.config -¤Î¥ª¥×¥·¥ç¥ó¥é¥¤¥ó¤È¤·¤Æ»ÈÍѤ¹¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤵ¤ì¤ë¥Ç¥Ð¥¤¥¹¤Ï¡¢Å¬Àڤʥ롼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤È¤· -¤Æ¥Þ¥¦¥ó¥È²Äǽ¤Ê¥Ç¥Ð¥¤¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +のオプションラインとして使用する。 +このオプションで指定されるデバイスは、適切なルートファイルシステムとし +てマウント可能なデバイスでなければならない。 .\" .\" .\" -.SS Ä̾ï»þ¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÊѹ¹ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥«¡¼¥Í¥ë¤ÎÀßÄê -(Î㤨¤Ð¡¢ +.SS 通常時ルートファイルシステムの変更 +デフォルトでは、カーネルの設定 +(例えば、 .BR rdev (8) -¤òÍѤ¤¤Æ¥«¡¼¥Í¥ë¥Õ¥¡¥¤¥ëÆâ¤Ë¥»¥Ã¥È¤µ¤ì¤¿¤â¤Î¡¢¤Þ¤¿¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¥«¡¼ -¥Í¥ë¥Õ¥¡¥¤¥ëÆâ¤ËËä¤á¹þ¤Þ¤ì¤¿¤â¤Î)¡¢ -¤Þ¤¿¤Ï¡¢¥Ö¡¼¥È¥í¡¼¥À¤Î¥ª¥×¥·¥ç¥óÀßÄê¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿¤â¤Î¤¬Ä̾ï»þ¥ë¡¼ -¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤È¤·¤Æ»È¤ï¤ì¤ë¡£ -NFS ¥Þ¥¦¥ó¥È¤µ¤ì¤¿Ä̾ï»þ¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òÍøÍѤ¹¤ë¾ì¹ç¡¢ +を用いてカーネルファイル内にセットされたもの、または、コンパイル時にカー +ネルファイル内に埋め込まれたもの)、 +または、ブートローダのオプション設定によって指定されたものが通常時ルー +トファイルシステムとして使われる。 +NFS マウントされた通常時ルートファイルシステムを利用する場合、 .B nfs_root_name -¤È +と .B nfs_root_addrs -¥Ö¡¼¥È¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ NFS ¤ÎÀßÄê¤òÍ¿¤¨¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -NFS ¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥ë¡¼¥È (¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à) ¤Ë¤Ä¤¤¤Æ¤Î -¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï¡¢¥«¡¼¥Í¥ë¤Î¥É¥­¥å¥á¥ó¥È¥Õ¥¡¥¤¥ë +ブートオプションを使って NFS の設定を与えなければならない。 +NFS マウントされたルート (ファイルシステム) についての +より詳しい情報は、カーネルのドキュメントファイル .B Documentation/filesystems/nfsroot.txt -¤ò»²¾È¤Î¤³¤È¡£ -¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÀßÄê¤Ë¤Ä¤¤¤Æ¤Î¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï¡¢ +を参照のこと。 +ルートファイルシステムの設定についてのより詳しい情報は、 .B LILO -¤È +と .B LOADLIN -¤Î¥É¥­¥å¥á¥ó¥È¤â»²¾È¤Î¤³¤È¡£ +のドキュメントも参照のこと。 .PP -¤Þ¤¿¡¢ +また、 .I /linuxrc -¤òÍѤ¤¤ë»ö¤Ë¤è¤Ã¤Æ¤âÄ̾ï»þ¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥Ç¥Ð¥¤¥¹¤òÊѹ¹¤¹¤ë¤³¤È -¤¬¤Ç¤­¤ë¡£ +を用いる事によっても通常時ルートファイルシステムデバイスを変更すること +ができる。 .I /linuxrc -¤òÍѤ¤¤Æ¡¢Ä̾ï»þ¥ë¡¼¥È¥Ç¥Ð¥¤¥¹¤òÊѹ¹¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ +を用いて、通常時ルートデバイスを変更するためには、 .I /proc -¤¬¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +がマウントされていなければならない。 .I /proc -¤ò¥Þ¥¦¥ó¥È¤·¤¿¸å¤Ç¡¢ +をマウントした後で、 .I /linuxrc -¤Ï proc ¥Õ¥¡¥¤¥ë +は proc ファイル .IR /proc/sys/kernel/real-root-dev , .IR /proc/sys/kernel/nfs-root-name , .I /proc/sys/kernel/nfs-root-addrs -¤Ë½ñ¤­¹þ¤ß¤ò¹Ô¤¤¡¢Ä̾ï»þ¥ë¡¼¥È¥Ç¥Ð¥¤¥¹¤òÊѹ¹¤¹¤ë¡£ -(NFS ¤Ç¤Ï¤Ê¤¤) ʪÍýŪ¤Ê¥ë¡¼¥È¥Ç¥Ð¥¤¥¹¤Î¾ì¹ç¡¢ +に書き込みを行い、通常時ルートデバイスを変更する。 +(NFS ではない) 物理的なルートデバイスの場合、 .I /linuxrc -¤¬¿·¤·¤¤¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤ò +が新しいルートファイルシステムのデバイス番号を .I /proc/sys/kernel/real-root-dev -¤Ë½ñ¤­¹þ¤à¤³¤È¤Ç¡¢¥ë¡¼¥È¥Ç¥Ð¥¤¥¹¤¬Êѹ¹¤µ¤ì¤ë¡£ -NFS ¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¾ì¹ç¡¢ +に書き込むことで、ルートデバイスが変更される。 +NFS ルートファイルシステムの場合、 .I /linuxrc -¤¬ NFS ¤ÎÀßÄê¤ò +が NFS の設定を .I /proc/sys/kernel/nfs-root-name -¤È +と .I /proc/sys/kernel/nfs-root-addrs -¤Ë½ñ¤­¹þ¤ß¡¢¤½¤ì¤«¤é +に書き込み、それから .I /proc/sys/kernel/real-root-dev -¤Ë (µ¿»÷ NFS ¥Ç¥Ð¥¤¥¹¥Ê¥ó¥Ð¡¼¤Ç¤¢¤ë) 0xff ¤ò½ñ¤­¹þ¤à¤³¤È¤Ç¡¢ -¥ë¡¼¥È¥Ç¥Ð¥¤¥¹¤¬Êѹ¹¤µ¤ì¤ë¡£ -Î㤨¤Ð¡¢¼¡¤Î¥·¥§¥ë¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ë¤è¤ê¡¢Ä̾ï»þ¥ë¡¼¥È¥Ç¥Ð¥¤¥¹¤ò +に (疑似 NFS デバイスナンバーである) 0xff を書き込むことで、 +ルートデバイスが変更される。 +例えば、次のシェルコマンドラインにより、通常時ルートデバイスを .I /dev/hdb1 -¤ËÊѹ¹¤Ç¤­¤ë¤À¤í¤¦: +に変更できるだろう: .nf echo 0x365 >/proc/sys/kernel/real-root-dev .fi -¤Þ¤¿¡¢NFS ¤Î¾ì¹ç¡¢¼¡¤Î¤è¤¦¤Ê¥·¥§¥ë¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ë¤è¤ê¡¢ -193.8.232.2 ¤È¤¤¤¦ IP ¥¢¥É¥ì¥¹¤ò»ý¤Ä "idefix" ¤È¤¤¤¦Ì¾Á°¤Î -¥·¥¹¥Æ¥à¤Î¡¢Ä̾ï»þ¥ë¡¼¥È¥Ç¥Ð¥¤¥¹¤È¤·¤Æ¡¢ -¥í¡¼¥«¥ë¥Í¥Ã¥È¥ï¡¼¥¯¤Î 193.8.232.2 ¤È¤¤¤¦ IP ¥¢¥É¥ì¥¹¤ò»ý¤Ä NFS ¥µ¡¼¥Ð¤Î -NFS ¥Ç¥£¥ì¥¯¥È¥ê +また、NFS の場合、次のようなシェルコマンドラインにより、 +193.8.232.2 という IP アドレスを持つ "idefix" という名前の +システムの、通常時ルートデバイスとして、 +ローカルネットワークの 193.8.232.2 という IP アドレスを持つ NFS サーバの +NFS ディレクトリ .I /var/nfsroot -¤ò¥Þ¥¦¥ó¥È¤¹¤ë¤è¤¦¤ËÊѹ¹¤Ç¤­¤ë: +をマウントするように変更できる: .nf echo /var/nfsroot >/proc/sys/kernel/nfs-root-name @@ -314,128 +314,128 @@ NFS echo 255 >/proc/sys/kernel/real-root-dev .fi -.BR Ãí°Õ : -¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òÊѹ¹¤¹¤ë¤¿¤á¤Ë +.BR 注意 : +ルートファイルシステムを変更するために .I /proc/sys/kernel/real-root-dev -¤ò»È¤¦¤Î¤Ï°ÊÁ°¤ÎÊýË¡¤Ç¤¢¤ë¡£ -¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òÊѹ¹¤¹¤ë¿·¤·¤¤ÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï¡¢ -¥«¡¼¥Í¥ë¥½¡¼¥¹¤Ë´Þ¤Þ¤ì¤ë +を使うのは以前の方法である。 +ルートファイルシステムを変更する新しい方法についての情報は、 +カーネルソースに含まれる .I Documentation/initrd.txt -¥Õ¥¡¥¤¥ë¤ä¡¢ +ファイルや、 .BR pivot_root (2) -¤ä +や .BR pivot_root (8) -¤ò»²¾È¤·¤Æ¤Û¤·¤¤¡£ -.\" FIXME ¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç pivot_root ¤Î»ÅÁȤߤòÀâÌÀ¤¹¤ëɬÍפ¬¤¢¤ë¡£ +を参照してほしい。 +.\" FIXME マニュアルページで pivot_root の仕組みを説明する必要がある。 .\" .\" .\" -.SS »È¤¤Êý +.SS 使い方 .B initrd -¤¬¼ÂÁõ¤µ¤ì¤¿¼ç¤ÊÌÜŪ¤Ï¡¢¥·¥¹¥Æ¥à¥¤¥ó¥¹¥È¡¼¥ë»þ¤Ë¡¢¥â¥¸¥å¡¼¥ë²½¤µ¤ì¤¿¥«¡¼ -¥Í¥ë¤ÎÀßÄê¤ò²Äǽ¤Ë¤¹¤ë¤³¤È¤Ç¤¢¤Ã¤¿¡£ +が実装された主な目的は、システムインストール時に、モジュール化されたカー +ネルの設定を可能にすることであった。 .PP -¼¡¤Î¤è¤¦¤Êή¤ì¤Î¥·¥¹¥Æ¥à¥¤¥ó¥¹¥È¡¼¥ë¤¬²Äǽ¤Ë¤Ê¤ë: +次のような流れのシステムインストールが可能になる: .IP 1. 3 -¥í¡¼¥À¥×¥í¥°¥é¥à¤Ï¡¢¥Õ¥í¥Ã¥Ô¡¼¤ä¤½¤Î¾¤Î¥á¥Ç¥£¥¢¤«¤é¡¢ -ºÇ¾®¸Â¤Î¥«¡¼¥Í¥ë (Î㤨¤Ð¡¢ +ローダプログラムは、フロッピーやその他のメディアから、 +最小限のカーネル (例えば、 .IR /dev/ram , .IR /dev/initrd , -ext2 ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¤ß¤Î¥µ¥Ý¡¼¥È¤·¤¿¥«¡¼¥Í¥ë) ¤ò¥Ö¡¼¥È¤·¡¢ -gzip °µ½Ì¤µ¤ì¤¿½é´ü¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¤¥á¡¼¥¸¤ò +ext2 ファイルシステムのみのサポートしたカーネル) をブートし、 +gzip 圧縮された初期ファイルシステムイメージを .I /dev/initrd -¤Ë¥í¡¼¥É¤¹¤ë¡£ +にロードする。 .IP 2. -¼Â¹Ô¥Õ¥¡¥¤¥ë +実行ファイル .I /linuxrc -¤Ï¡¢(1) Ä̾ï»þ¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Þ¥¦¥ó¥È¤Ë²¿¤¬É¬Íפ« -(¤¹¤Ê¤ï¤Á¡¢¥Ç¥Ð¥¤¥¹¥¿¥¤¥×¡¢¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à)¡¢ -(2) ÇÛÉÛ¥á¥Ç¥£¥¢¤Ë²¿¤¬É¬Íפ« (Î㤨¤Ð¡¢CD-ROM, ¥Í¥Ã¥È¥ï¡¼¥¯¡¢¥Æ¡¼¥×¤Ê¤É) -¤ò·èÄꤹ¤ë¡£·èÄê¤Ï¡¢¥æ¡¼¥¶¤Ø¤ÎÌ䤤¹ç¤ï¤»¡¢¼«Æ°¸¡½Ð¡¢¤¢¤ë¤¤¤Ï¤½¤Îξ¼Ô¤Î -ÊýË¡¤òÁȤ߹ç¤ï¤»¤Æ¹Ô¤ï¤ì¤ë¡£ +は、(1) 通常時ルートファイルシステムのマウントに何が必要か +(すなわち、デバイスタイプ、デバイスドライバ、ファイルシステム)、 +(2) 配布メディアに何が必要か (例えば、CD-ROM, ネットワーク、テープなど) +を決定する。決定は、ユーザへの問い合わせ、自動検出、あるいはその両者の +方法を組み合わせて行われる。 .IP 3. -¼Â¹Ô¥Õ¥¡¥¤¥ë +実行ファイル .I /linuxrc -¤Ï¡¢½é´ü¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤«¤éɬÍפʥ⥸¥å¡¼¥ë¤ò¥í¡¼¥É¤¹¤ë¡£ +は、初期ルートファイルシステムから必要なモジュールをロードする。 .IP 4. -¼Â¹Ô¥Õ¥¡¥¤¥ë +実行ファイル .I /linuxrc -¤Ï¡¢¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òºîÀ®¤·¡¢ÇÛÃÖ¤¹¤ë (¤³¤ÎÃʳ¬¤Ç¤Ï¡¢Ä̾ï»þ¥ë¡¼ -¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï´°Á´¤Ê¥·¥¹¥Æ¥à¤Ç¤¢¤ëɬÍפϤʤ¤)¡£ +は、ルートファイルシステムを作成し、配置する (この段階では、通常時ルー +トファイルシステムは完全なシステムである必要はない)。 .IP 5. -¼Â¹Ô¥Õ¥¡¥¤¥ë +実行ファイル .I /linuxrc -¤Ï¡¢ +は、 .I /proc/sys/kernel/real-root-dev -¤òÀßÄꤷ¡¢ -.IR /proc "¡¢" -¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ëÄ̾ï»þ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àµÚ¤Ó¤½¤Î¾¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -¤ò¥¢¥ó¥Þ¥¦¥ó¥È¤·¡¢ -¼Â¹Ô¤ò½ªÎ»¤¹¤ë¡£ +を設定し、 +.IR /proc "、" +マウントされている通常時ファイルシステム及びその他のファイルシステム +をアンマウントし、 +実行を終了する。 .IP 6. -¼¡¤Ë¡¢¥«¡¼¥Í¥ë¤Ï¡¢Ä̾ï»þ¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥Þ¥¦¥ó¥È¤¹¤ë¡£ +次に、カーネルは、通常時ルートファイルシステムをマウントする。 .IP 7. -¤³¤ÎÃʳ¬¤Ç¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÏÁ´¤¯Êѹ¹¤¬¹Ô¤ï¤ì¤Æ¤¤¤Ê¤¤¾õÂ֤ǡ¢ -¥¢¥¯¥»¥¹¤Ç¤­¤ë¾õÂ֤ˤʤ롣 -¤Þ¤¿¡¢¥Ö¡¼¥È¥í¡¼¥À¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +この段階で、ファイルシステムは全く変更が行われていない状態で、 +アクセスできる状態になる。 +また、ブートローダをインストールすることができる。 .IP 8. -¥Ö¡¼¥È¥í¡¼¥À¤òÀßÄꤷ¡¢¥·¥¹¥Æ¥àµ¯Æ°»þ¤Ë»ÈÍѤµ¤ì¤ë¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¤Î¥»¥Ã -¥È¤ò´Þ¤ó¤À¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò +ブートローダを設定し、システム起動時に使用されるカーネルモジュールのセッ +トを含んだファイルシステムを .I /dev/initrd -¤Ë¥í¡¼¥É¤¹¤ë (Î㤨¤Ð¡¢ +にロードする (例えば、 .I /dev/ram0 -¥Ç¥Ð¥¤¥¹¤ÎÆâÍƤò½¤Àµ¤·¡¢¥¢¥ó¥Þ¥¦¥ó¥È¤¹¤ë¡£ºÇ¸å¤Ë¡¢ +デバイスの内容を修正し、アンマウントする。最後に、 .I /dev/ram0 -¤Î¥¤¥á¡¼¥¸¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤¹)¡£ +のイメージをファイルに書き出す)。 .IP 9. -¤³¤ì¤Ç¡¢¥·¥¹¥Æ¥à¤¬¥Ö¡¼¥È²Äǽ¤Ë¤Ê¤ë¡£¤³¤Î¸å¡¢¤µ¤é¤Ë¤½¤Î¾¤Î¥¤¥ó¥¹¥È¡¼¥ë -¤Îºî¶È¤ò¼Â¹Ô¤Ç¤­¤ë¡£ +これで、システムがブート可能になる。この後、さらにその他のインストール +の作業を実行できる。 .PP -¾åµ­¤ÎÆ°ºî¤Ç¤Î +上記の動作での .I /dev/initrd -¤ÎÌò³ä¤Î¥­¡¼¥Ý¥¤¥ó¥È¤Ï¡¢½é´ü¥«¡¼¥Í¥ë¤ÎÁªÂò¤äÂ礭¤Ê¥¸¥§¥Í¥ê¥Ã¥¯¥«¡¼¥Í¥ë¡¢ -¥«¡¼¥Í¥ë¤ÎºÆ¹½Ãۤʤ·¤Ë¡¢Ä̾ï¤Î¥·¥¹¥Æ¥àÁàºî¤ÇºÆÍøÍѲÄǽ¤ÊÀßÄê¥Ç¡¼¥¿¤òÍø -ÍѤ¹¤ë¤³¤È¤Ë¤¢¤ë¡£ +の役割のキーポイントは、初期カーネルの選択や大きなジェネリックカーネル、 +カーネルの再構築なしに、通常のシステム操作で再利用可能な設定データを利 +用することにある。 .PP -2 ÈÖÌܤΥ±¡¼¥¹¤Ï¡¢°ì¤Ä¤Î´ÉÍý¾å¤Î¥Í¥Ã¥È¥ï¡¼¥¯¤Ë¤ª¤¤¤Æ¡¢°Û¤Ê¤ëÀßÄê¤Î¥Ï¡¼ -¥É¥¦¥§¥¢¤Î¥·¥¹¥Æ¥à¾å¤Ç Linux ¤òÆ°ºî¤µ¤»¤ë¤¿¤á¤Î¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤¦¾ì¹ç -¤Ç¤¢¤ë¡£ -¤³¤Î¤è¤¦¤Ê¥±¡¼¥¹¤Î¾ì¹ç¡¢¤´¤¯¾®¿ô¤Î¥«¡¼¥Í¥ë¤Î¥»¥Ã¥È (ÍýÁÛŪ¤Ë¤Ï¤¿¤Ã¤¿°ì -¤Ä¤Î¥«¡¼¥Í¥ë) ¤Î¤ß¤òÍøÍѤ·¡¢¥·¥¹¥Æ¥à¸ÇÍ­¤ÎÀßÄê¾ðÊó¤Ï²Äǽ¤Ê¸Â¤ê¾®¤µ¤¯¤¹ -¤ë¤³¤È¤¬Ë¾¤Þ¤·¤¤¤Ç¤¢¤í¤¦¡£ -¤³¤Î¾ì¹ç¡¢Á´¤Æ¤ÎɬÍפʥ⥸¥å¡¼¥ë¤¬Æþ¤Ã¤¿¶¦ÄÌ¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¡£ -¤½¤·¤Æ¡¢ +2 番目のケースは、一つの管理上のネットワークにおいて、異なる設定のハー +ドウェアのシステム上で Linux を動作させるためのインストールを行う場合 +である。 +このようなケースの場合、ごく小数のカーネルのセット (理想的にはたった一 +つのカーネル) のみを利用し、システム固有の設定情報は可能な限り小さくす +ることが望ましいであろう。 +この場合、全ての必要なモジュールが入った共通ファイルを作成する。 +そして、 .I /linuxrc -¥Õ¥¡¥¤¥ë¡¢¤Þ¤¿¤Ï¡¢ +ファイル、または、 .I /linuxrc -¤«¤é¼Â¹Ô¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Î¤ß¤ò°Û¤Ê¤Ã¤¿¤â¤Î¤Ë¤·¤Æ¤ª¤¯¡£ +から実行されるファイルのみを異なったものにしておく。 .PP -3 ÈÖÌܤΥ±¡¼¥¹¤Ï¡¢¤è¤êÊØÍø¤ÊÉüµìÍѥǥ£¥¹¥¯¤òºî¤ë¾ì¹ç¤Ç¤¢¤ë¡£ -¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î°ÌÃ֤Ȥ¤¤Ã¤¿¾ðÊó¤Ï -¥Ö¡¼¥È»þ¤ËɬÍפʤ¤¤¿¤á¡¢ +3 番目のケースは、より便利な復旧用ディスクを作る場合である。 +ルートファイルシステムのパーティションの位置といった情報は +ブート時に必要ないため、 .I /dev/initrd -¤«¤é¥í¡¼¥É¤µ¤ì¤¿¥·¥¹¥Æ¥à¤Ï¡¢ -ɬÍפÊÀµ¾ïÀ­¥Á¥§¥Ã¥¯¤ò¹Ô¤Ã¤¿¸å¤Ç¡¢¥æ¡¼¥¶¤Ø¤ÎÌ䤤¹ç¤ï¤»¤ä¼«Æ°¸¡½Ð -(¤â¤·¤¯¤Ï¤½¤ÎξÊý) ¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +からロードされたシステムは、 +必要な正常性チェックを行った後で、ユーザへの問い合わせや自動検出 +(もしくはその両方) を行うことができるようになる。 .PP -(¾¤Ë¤â¤¿¤¯¤µ¤óÎ㤬¤¢¤ë¤À¤í¤¦¤¬) ºÇ¸å¤ÎÎã¤È¤·¤Æ¤Ï¡¢ +(他にもたくさん例があるだろうが) 最後の例としては、 .B initrd -¤òÍøÍѤ¹¤ë¤È¡¢CD-ROM ¾å¤Î Linux ¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤ò -¤è¤ê´Êñ¤Ë CD-ROM ¤«¤é¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤À¤í¤¦¡£ -¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ï¡¢ +を利用すると、CD-ROM 上の Linux ディストリビューションを +より簡単に CD-ROM からインストールすることができるだろう。 +ディストリビューションは、 .B LOADLIN -¤ò»È¤Ã¤Æ¡¢¥Õ¥í¥Ã¥Ô¡¼¤òÁ´¤¯ÍøÍѤ»¤º¤Ë CD-ROM ¤«¤é +を使って、フロッピーを全く利用せずに CD-ROM から .I /dev/initrd -¤òľÀÜ¥í¡¼¥É¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤Þ¤¿¡¢ +を直接ロードすることができる。 +また、 .B LILO -¥Ö¡¼¥È¥Õ¥í¥Ã¥Ô¡¼¤ò»È¤Ã¤Æ¥Ö¡¼¥È¤ò¹Ô¤¤¡¢ +ブートフロッピーを使ってブートを行い、 .I /dev/initrd -¤òÄ̤·¤Æ CD-ROM ¤«¤é¤è¤êÂ礭¤Ê RAM ¥Ç¥£¥¹¥¯¤òµ¯Æ°¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +を通して CD-ROM からより大きな RAM ディスクを起動することもできる。 .\" .\" .\" -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .I /dev/initrd .br .I /dev/ram0 @@ -446,54 +446,54 @@ gzip .\" .\" .\" -.SH Ãí°Õ +.SH 注意 .IP 1. 3 -¸½ºß¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +現在のカーネルでは、 .I /dev/ram0 -¤¬ +が .I / -¤«¤é +から .I /initrd -¤Ë°ÜÆ°¤µ¤ì¤¿ºÝ¤Ë¡¢°ÜÆ°»þ¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï¡¢ -¤½¤Î¸å¤â·Ñ³Ū¤Ë¥¢¥¯¥»¥¹²Äǽ¤Ç¤¢¤ë¡£¤·¤«¤·¡¢ +に移動された際に、移動時にマウントされていたファイルシステムは、 +その後も継続的にアクセス可能である。しかし、 .I /proc/mounts -¤Î¥¨¥ó¥È¥ê¤Ï¹¹¿·¤µ¤ì¤Ê¤¤¡£ +のエントリは更新されない。 .IP 2. -¸½ºß¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê +現在のカーネルでは、ディレクトリ .I /initrd -¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢ +が存在しない場合、 .I /dev/ram0 -¤ò²¿¤é¤«¤Î¥×¥í¥»¥¹¤¬ÍøÍѤ·¤Æ¤¤¤¿¤ê¡¢²¿¤é¤«¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ +を何らかのプロセスが利用していたり、何らかのファイルシステムが .I /dev/ram0 -¾å¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢ +上にマウントされていると、 .I /dev/ram0 -¤Ï´°Á´¤Ë¤Ï¥¢¥ó¥Þ¥¦¥ó¥È¡Ö¤µ¤ì¤Ê¤¤¡×¡£ +は完全にはアンマウント「されない」。 .I /dev/ram0 -¤¬¡¢´°Á´¤Ë¥¢¥ó¥Þ¥¦¥ó¥È¡Ö¤µ¤ì¤Ê¤±¤ì¤Ð¡×¡¢ +が、完全にアンマウント「されなければ」、 .I /dev/ram0 -¤Ï¥á¥â¥ê¾å¤Ë»Ä¤Ã¤Æ¤·¤Þ¤¦¤Ï¤º¤Ç¤¢¤ë¡£ +はメモリ上に残ってしまうはずである。 .IP 3. .I /dev/initrd -¤ÎÍøÍѼԤϡ¢¾åµ­¤ÎÃí°Õ»ö¹à¤Ç½Ò¤Ù¤¿Æ°ºî¤Ë°Í¸¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤ÎÆ°ºî¤Ï Linux ¥«¡¼¥Í¥ë¤Î¾­Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤ÏÊѹ¹¤µ¤ì¤ë -¤«¤â¤·¤ì¤Ê¤¤¤«¤é¤À¡£ +の利用者は、上記の注意事項で述べた動作に依存しないようにすべきである。 +これらの動作は Linux カーネルの将来のバージョンでは変更される +かもしれないからだ。 .\" .\" .\" -.\" .SH Ãø¼Ô +.\" .SH 著者 .\" .BR initrd -.\" ¥Ç¥Ð¥¤¥¹¤Î¤¿¤á¤Î¥«¡¼¥Í¥ë¥³¡¼¥É¤Ï Werner Almesberger -.\" ¤È Hans Lermen ¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤¿¡£ +.\" デバイスのためのカーネルコードは Werner Almesberger +.\" と Hans Lermen によって書かれた。 .\" .BR initrd -.\" ¤Î¤¿¤á¤Î¥³¡¼¥É¤Ï¡¢³«È¯¼Ô¸þ¤±¥Ð¡¼¥¸¥ç¥ó¤Î 1.3.73 ¤Ç -.\" ¥á¥¤¥ó¤Î Linux ¥«¡¼¥Í¥ë¤ËÁȤ߹þ¤Þ¤ì¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +.\" のためのコードは、開発者向けバージョンの 1.3.73 で +.\" メインの Linux カーネルに組み込まれた。 +.SH 関連項目 .BR chown (1), .BR mknod (1), .BR ram (4), .BR freeramdisk (8), .BR rdev (8) -¥«¡¼¥Í¥ë¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¤Ë´Þ¤Þ¤ì¤ë¥É¥­¥å¥á¥ó¥È¥Õ¥¡¥¤¥ë -.IR initrd.txt "¡¢" -LILO ¤Î¥É¥­¥å¥á¥ó¥È¡¢LOADLIN ¤Î¥É¥­¥å¥á¥ó¥È¡¢SYSLINUX ¤Î¥É¥­¥å¥á¥ó¥È¡£ +カーネルソースパッケージに含まれるドキュメントファイル +.IR initrd.txt "、" +LILO のドキュメント、LOADLIN のドキュメント、SYSLINUX のドキュメント。 diff --git a/release/man4/intro.4 b/release/man4/intro.4 index 83e17385..f3337477 100644 --- a/release/man4/intro.4 +++ b/release/man4/intro.4 @@ -31,18 +31,18 @@ .\" Modified Sun Jan 11 03:39:10 JST 1998 .\" by ISHIKAWA Mutsumi .\" -.\" WORD: introduction ½øʸ +.\" WORD: introduction 序文 .TH INTRO 4 2007-10-23 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -intro \- ¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤Ë´Ø¤¹¤ë½øʸ -.SH ÀâÌÀ -¥Þ¥Ë¥å¥¢¥ë¤Î 4 ¾Ï¤Ï¡¢¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë (¥Ç¥Ð¥¤¥¹) ¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤ë¡£ -.SH ¥Õ¥¡¥¤¥ë -/dev/* \(em ¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë -.SH È÷¹Í -.SS Ãø¼Ô¤ÈÃøºî¸¢ -Ãø¼Ô¤ª¤è¤Ó copyright ¤Î¾ò·ï¤Ë¤Ä¤¤¤Æ¤Ï³Æ¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¥½¡¼¥¹¤Î -¥Ø¥Ã¥ÀÉôʬ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¾ò·ï¤Ï¤½¤ì¤¾¤ì¤Î¥Ú¡¼¥¸¤´¤È¤Ë°Û¤Ê¤Ã -¤Æ¤¤¤ë¤³¤È¤Ë¤´Ãí°Õ´ê¤¤¤Þ¤¹¡£ -.SH ´ØÏ¢¹àÌÜ +.SH 名前 +intro \- スペシャルファイルに関する序文 +.SH 説明 +マニュアルの 4 章は、スペシャルファイル (デバイス) について説明している。 +.SH ファイル +/dev/* \(em デバイスファイル +.SH 備考 +.SS 著者と著作権 +著者および copyright の条件については各マニュアルページのソースの +ヘッダ部分を参照してください。条件はそれぞれのページごとに異なっ +ていることにご注意願います。 +.SH 関連項目 .BR standards (7) diff --git a/release/man4/lp.4 b/release/man4/lp.4 index c0c339c4..cee933f0 100644 --- a/release/man4/lp.4 +++ b/release/man4/lp.4 @@ -34,109 +34,109 @@ .\" Japanese Version Last Modified Sun Jan 11 03:42:56 JST 1998 .\" by ISHIKAWA Mutsumi .\" -.\" WORD: printer ¥×¥ê¥ó¥¿¡¼ -.\" WORD: parallel ¥Ñ¥é¥ì¥ë -.\" WORD: polling ¥Ý¡¼¥ê¥ó¥° -.\" WORD: interrupt ³ä¤ê¹þ¤ß -.\" WORD: dot matrix printer ¥É¥Ã¥È¥Þ¥È¥ê¥¯¥¹¥×¥ê¥ó¥¿¡¼ -.\" WORD: default ¥Ç¥Õ¥©¥ë¥È -.\" WORD: modularize ¥â¥¸¥å¡¼¥ë²½ -.\" WORD: driver ¥É¥é¥¤¥Ð -.\" WORD: buffer ¥Ð¥Ã¥Õ¥¡ +.\" WORD: printer プリンター +.\" WORD: parallel パラレル +.\" WORD: polling ポーリング +.\" WORD: interrupt 割り込み +.\" WORD: dot matrix printer ドットマトリクスプリンター +.\" WORD: default デフォルト +.\" WORD: modularize モジュール化 +.\" WORD: driver ドライバ +.\" WORD: buffer バッファ .\" .TH LP 4 1995-01-15 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -lp \- ¥é¥¤¥ó¥×¥ê¥ó¥¿¡¼¥Ç¥Ð¥¤¥¹ -.SH ½ñ¼° +.SH 名前 +lp \- ラインプリンターデバイス +.SH 書式 .B #include -.SH ÀßÄê -\fBlp\fP[0\(en2] ¤Ï¥Ñ¥é¥ì¥ë¥×¥ê¥ó¥¿¡¼¤Î¤¿¤á¤Î¥­¥ã¥é¥¯¥¿¥Ç¥Ð¥¤¥¹¤Ç¥á¥¸¥ã¡¼ -¥Ê¥ó¥Ð¡¼ 6 ¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼ 0\(en2 ¤ò»ý¤Ä¡£¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼¤Ï¡¢¥Ù¡¼¥¹ -¥¢¥É¥ì¥¹ 0x03bc, 0x0378, 0x0278 ¤Î¤½¤ì¤¾¤ì¤Î¥×¥ê¥ó¥¿¡¼¥Ý¡¼¥È¤ËÂбþ¤¹¤ë -Ä̾¤³¤Î¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë¤Ï¥â¡¼¥É 220 ¥ª¡¼¥Ê¡¼ root ¥°¥ë¡¼¥× lp ¤È¤Ê¤Ã -¤Æ¤¤¤ë¡£¥×¥ê¥ó¥¿¡¼¥Ý¡¼¥È¤Ï¥Ý¡¼¥ê¥ó¥°(polling)¤Þ¤¿¤Ï³ä¤ê¹þ¤ß -(interrupts) ¤Î¤É¤Á¤é¤òÍѤ¤¤Æ¤âÍøÍѤǤ­¤ë¡£³ä¤ê¹þ¤ß¤ÎÍøÍѤϡ¢¹âÉé²Ù¤¬ -ͽÁÛ¤µ¤ì¤ë»þ¡¢Î㤨¤Ð¥ì¡¼¥¶¡¼¥×¥ê¥ó¥¿¡¼¤ò¥×¥ê¥ó¥¿¥Ý¡¼¥È¤ËÀܳ¤¹¤ë¾ì¹ç¤Ê -¤É¤Ë¿ä¾©¤µ¤ì¤ë¡£ÉáÄ̤Υɥåȥޥȥꥯ¥¹¥×¥ê¥ó¥¿¡¼¤Ç¤Ï¡¢¥Ý¡¼¥ê¥ó¥°¤ÎÍøÍÑ -¤ÇÄ̾ï¤Ï½½Ê¬¤Ç¤¢¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥Ý¡¼¥ê¥ó¥°¤òÍøÍѤ¹¤ë¡£ -.SH ÀâÌÀ -¼¡¤Î +.SH 設定 +\fBlp\fP[0\(en2] はパラレルプリンターのためのキャラクタデバイスでメジャー +ナンバー 6 マイナーナンバー 0\(en2 を持つ。マイナーナンバーは、ベース +アドレス 0x03bc, 0x0378, 0x0278 のそれぞれのプリンターポートに対応する +通常、このデバイスファイルはモード 220 オーナー root グループ lp となっ +ている。プリンターポートはポーリング(polling)または割り込み +(interrupts) のどちらを用いても利用できる。割り込みの利用は、高負荷が +予想される時、例えばレーザープリンターをプリンタポートに接続する場合な +どに推奨される。普通のドットマトリクスプリンターでは、ポーリングの利用 +で通常は十分である。デフォルトではポーリングを利用する。 +.SH 説明 +次の .BR ioctl (2) -¥³¡¼¥ë¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +コールがサポートされている。 .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPTIME, int \fP\fIarg\fP\fB)\fP" -¥×¥ê¥ó¥¿¡¼¤Î¥Ð¥Ã¥Õ¥¡( buffer ) ¤¬¤¤¤Ã¤Ñ¤¤¤Ë¤Ê¤Ã¤¿»þ¡¢¥É¥é¥¤¥Ð¤¬¥×¥ê¥ó¥¿¡¼ -¤òºÆ¥Á¥§¥Ã¥¯¤¹¤ë¤Þ¤Ç¤ËµÙ»ß¤¹¤ë»þ´Ö¤ò \fIarg\fP ¤È¤¹¤ë¡£¹â®¤Ê¥×¥ê¥ó¥¿¡¼ -¤Î»þ¤Ï¤³¤ì¤ò¸º¤é¤·¡¢ÃÙ¤¤¥×¥ê¥ó¥¿¡¼¤Î»þ¤Ë¤ÏÁý¤ä¤¹¡£Ã±°Ì¤Ï1ÉäÎ100ʬ¤Î1 -¤Ç¡¢¥Ç¥Õ¥©¥ë¥È¤Î2¤Ï0.02Éäˤ¢¤¿¤ë¡£¥Ý¡¼¥ê¥ó¥°¥É¥é¥¤¥Ð( polling driver -)¤Î¤ß¤Ë±Æ¶Á¤¹¤ë¡£ +プリンターのバッファ( buffer ) がいっぱいになった時、ドライバがプリンター +を再チェックするまでに休止する時間を \fIarg\fP とする。高速なプリンター +の時はこれを減らし、遅いプリンターの時には増やす。単位は1秒の100分の1 +で、デフォルトの2は0.02秒にあたる。ポーリングドライバ( polling driver +)のみに影響する。 .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPCHAR, int \fP\fIarg\fP\fB)\fP" -¥Ý¡¼¥ê¥ó¥°¥É¥é¥¤¥Ð¤¬¥×¥ê¥ó¥¿¡¼¤Îʸ»ú¼õ¼è¤ê½àÈ÷¤¬¤Ç¤­¤ë¤Î¤òÂÔ -¤Ä¥Ó¥¸¡¼¥¦¥¨¥¤¥È(busy-wait)¤Î²ó¿ô¤ÎºÇÂçÃͤò \fIarg\fP¤È¤¹¤ë¡£ -¤â¤·°õºþ¤¬ÃÙ¤¹¤®¤ë»þ¤Ï¤³¤ì¤òÁý¤ä¤·¡¢¥·¥¹¥Æ¥à¤¬ÃÙ¤¯¤Ê¤ê¤¹¤®¤ë»þ¤Ë¤Ï -¸º¤é¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ï 1000 ¤Ç¤¢¤ë¡£¥Ý¡¼¥ê¥ó¥°¥É¥é¥¤¥Ð¤Î¤ß¤Ë±Æ¶Á¤¹¤ë¡£ +ポーリングドライバがプリンターの文字受取り準備ができるのを待 +つビジーウエイト(busy-wait)の回数の最大値を \fIarg\fPとする。 +もし印刷が遅すぎる時はこれを増やし、システムが遅くなりすぎる時には +減らす。デフォルトは 1000 である。ポーリングドライバのみに影響する。 .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPABORT, int \fP\fIarg\fP\fB)\fP" -¤â¤·¡¢\fIarg\fP ¤¬ 0 ¤Ê¤é¡¢¥×¥ê¥ó¥¿¡¼¥É¥é¥¤¥Ð¤Ï¥¨¥é¡¼¤Ë¤Ä¤¤¤ÆºÆ»î¹Ô -¤ò¹Ô¤¦¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤ÏÃæ»ß¤¹¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ï 0 ¤Ç¤¢¤ë¡£ +もし、\fIarg\fP が 0 なら、プリンタードライバはエラーについて再試行 +を行う。それ以外の場合は中止する。デフォルトは 0 である。 .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPABORTOPEN, int \fP\fIarg\fP\fB)\fP" -¤â¤·¡¢\fIarg\fP ¤¬ 0 ¤Ê¤é +もし、\fIarg\fP が 0 なら .BR open (2) -¤Î·ë²Ì¤¬¥¨¥é¡¼¤Î¾ì¹ç¡¢Æ°ºî¤¬Ãæ»ß¤µ¤ì¤ë¡£¤½¤ì°Ê³°¤Ê¤é¥¨¥é¡¼¤Ï̵ -»ë¤µ¤ì¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥¨¥é¡¼¤Ï̵»ë¤µ¤ì¤ë¡£ +の結果がエラーの場合、動作が中止される。それ以外ならエラーは無 +視される。デフォルトではエラーは無視される。 .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPCAREFUL, int \fP\fIarg\fP\fB)\fP" -\fIarg\fP¤¬0¤Î¤È¤­¤Ë¤Ï¡¢¤¹¤Ù¤Æ¤Î½ñ¤­½Ð¤·¤Î»þ¤Ë¡¢»æÀڤ졢¥ª¥Õ¥é¥¤¥ó¡¢¥¨ -¥é¡¼¤Î¥·¥°¥Ê¥ë¤¬µ¶(false)¤Ç¤¢¤ë¤³¤È¤¬É¬ÍפȤµ¤ì¤ë¤¬¡¢0 °Ê³°¤Ê¤é¤³¤ì -¤é¤Î¥·¥°¥Ê¥ë¤Ï̵»ë¤µ¤ì¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤â¤³¤ì¤é¤Î¥·¥°¥Ê¥ë¤Ï̵»ë¤µ¤ì¤ë¡£ +\fIarg\fPが0のときには、すべての書き出しの時に、紙切れ、オフライン、エ +ラーのシグナルが偽(false)であることが必要とされるが、0 以外ならこれ +らのシグナルは無視される。デフォルトでもこれらのシグナルは無視される。 .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPWAIT, int \fP\fIarg\fP\fB)\fP" -¥×¥ê¥ó¥¿¡¼¤¬Á÷¤é¤ì¤¿Ê¸»ú¤ò¼õ¤±¼è¤ë¤Î¤òÂԤĤ¿¤á¡¢¥É¥é¥¤¥Ð¤¬Ê¸»ú¤òÁ÷¤Ã -¤Æ¤«¤é¥¹¥È¥í¡¼¥Ö(strobe)¤¹¤ë¤Þ¤Ç¤ÎÂÔ¤Á¤Î·«¤êÊÖ¤·¤Î²ó¿ô¤È¡¢¥¹¥È¥í¡¼¥Ö -¤òºÆ¤Ó¥ª¥Õ¤Ë¤¹¤ë¤Þ¤Ç¤ÎÂÔ¤Á¤Î·«¤êÊÖ¤·¤Î²ó¿ô¤ò \fIarg\fP¤ËÀßÄê -¤¹¤ë¡£»ÅÍͤˤè¤ì¤Ð¤³¤Î»þ´Ö¤Ï 0.5 ¥Þ¥¤¥¯¥íÉäȤ¹¤ë¤Ù¤­¤À¤¬¡¢·Ð¸³¤Ë¤è¤ì¤Ð -¤³¤Î¥³¡¼¥É¤Ë¤è¤Ã¤ÆÀ¸¤¸¤ëÃÙ¤ì¤Ç½½Ê¬¤Ç¤¢¤ë¡£¤½¤Î¤¿¤á¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï 0 ¤Ç -¤¢¤ë¡£¤³¤ì¤Ï¡¢¥Ý¡¼¥ê¥ó¥°¤È³ä¤ê¹þ¤ß¥É¥é¥¤¥Ð¤ÎξÊý¤Ç»È¤ï¤ì¤ë¡£ +プリンターが送られた文字を受け取るのを待つため、ドライバが文字を送っ +てからストローブ(strobe)するまでの待ちの繰り返しの回数と、ストローブ +を再びオフにするまでの待ちの繰り返しの回数を \fIarg\fPに設定 +する。仕様によればこの時間は 0.5 マイクロ秒とするべきだが、経験によれば +このコードによって生じる遅れで十分である。そのため、デフォルトでは 0 で +ある。これは、ポーリングと割り込みドライバの両方で使われる。 .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPSETIRQ, int \fP\fIarg\fP\fB)\fP" -¤³¤Î +この .BR ioctl (2) -¤ò»È¤¦¤Ë¤Ï¡¢¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Î¸¢¸Â¤¬É¬ÍפǤ¢¤ë¡£¿·¤·¤¤IRQ¤ò¼¨¤¹ +を使うには、スーパーユーザの権限が必要である。新しいIRQを示す .I int -¤ò°ú¿ô¤È¤·¤Æ¤È¤ë¡£¤Þ¤¿¡¢ÉûºîÍѤȤ·¤Æ¥×¥ê¥ó¥¿¡¼¤Ï¥ê¥»¥Ã¥È¤µ¤ì¤ë¡£ -\fIarg\fP¤¬0¤Î»þ¤Þ¤¿¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ç¤Ï¡¢¥Ý¡¼¥ê¥ó¥°¥É¥é¥¤¥Ð¡¼¤¬»È¤ï -¤ì¤ë¡£ +を引数としてとる。また、副作用としてプリンターはリセットされる。 +\fIarg\fPが0の時またはデフォルトの動作では、ポーリングドライバーが使わ +れる。 .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPGETIRQ, int *\fP\fIarg\fP\fB)\fP" -¸½ºß»È¤ï¤ì¤Æ¤¤¤ëIRQ¤ò\fIarg\fP¤Ë¤¤¤ì¤ë¡£ +現在使われているIRQを\fIarg\fPにいれる。 .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPGETSTATUS, int *\fP\fIarg\fP\fB)\fP" -¥¹¥Æ¡¼¥¿¥¹¥Ý¡¼¥È¤ÎÃͤò\fIarg\fP¤Ë¼ý¤á¤ë¡£³Æ¥Ó¥Ã¥È¤Ë¤Ï¼¡¤Î¤è¤¦¤Ê°ÕÌ£¤¬ -¤¢¤ë¡§ +ステータスポートの値を\fIarg\fPに収める。各ビットには次のような意味が +ある: .TS l l. -LP_PBUSY ¥Ó¥¸¡¼¿®¹æ¤Îȿž¡¢¥Ï¥¤¤¬¥¢¥¯¥Æ¥£¥Ö -LP_PACK ¥¢¥¯¥Î¥ê¥Ã¥¸¿®¹æ¡¢¥í¡¼¤¬¥¢¥¯¥Æ¥£¥Ö -LP_POUTPA »æÀڤ쿮¹æ¡¢¥Ï¥¤¤¬¥¢¥¯¥Æ¥£¥Ö -LP_PSELECD ÁªÂò¿®¹æ¡¢¥Ï¥¤¤¬¥¢¥¯¥Æ¥£¥Ö -LP_PERRORP ¥¨¥é¡¼¿®¹æ¡¢¥í¡¼¤¬¥¢¥¯¥Æ¥£¥Ö +LP_PBUSY ビジー信号の反転、ハイがアクティブ +LP_PACK アクノリッジ信号、ローがアクティブ +LP_POUTPA 紙切れ信号、ハイがアクティブ +LP_PSELECD 選択信号、ハイがアクティブ +LP_PERRORP エラー信号、ローがアクティブ .TE .sp -¿®¹æ¤Î°ÕÌ£¤Ë¤Ä¤¤¤Æ¤Ï³Æ¼«¤Î¥×¥ê¥ó¥¿¡¼¤Î¥Þ¥Ë¥å¥¢¥ë¤ò»²¾È¤Î¤³¤È¡£¥×¥ê¥ó¥¿¡¼ -¤Ë¤è¤Ã¤Æ¤Ïµ­ºÜ¤Î¤Ê¤¤¥Ó¥Ã¥È¤â¥»¥Ã¥È¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¤Î¤Ç¡¢Ãí°Õ¤Î¤³¤È¡£ +信号の意味については各自のプリンターのマニュアルを参照のこと。プリンター +によっては記載のないビットもセットされるかもしれないので、注意のこと。 .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPRESET)\fP" -¥×¥ê¥ó¥¿¡¼¤ò¥ê¥»¥Ã¥È¤¹¤ë¡£°ú¿ô¤Ï¤È¤é¤Ê¤¤¡£ -.SH ¥Õ¥¡¥¤¥ë +プリンターをリセットする。引数はとらない。 +.SH ファイル /dev/lp* -.\" .SH Ãø¼Ô -.\" ¥×¥ê¥ó¥¿¡¼¥É¥é¥¤¥Ð¤Ï½é¤á¤Ï Jim Weigand ¤È Linus Torvalds ¤Ë¤è¤Ã¤Æ½ñ -.\" ¤«¤ì¡¢¤µ¤é¤Ë Michael K.\& Johnson ¤Ë¤è¤Ã¤Æ²þÎɤµ¤ì¤¿¡£³ä¤ê¹þ¤ß¤Î¥³¡¼¥É -.\" ¤Ï Nigel Gamble ¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤¿¡£¤Þ¤¿¡¢Alan Cox ¤Ï¥É¥é¥¤¥Ð¤ò¥â¥¸¥å¡¼ -.\" ¥ë²½¤·¤¿¡£ -.\" LPCAREFUL, LPABORT, LPGETSTATUS ¤Ï Chris Metcalf ¤Ë¤è¤Ã¤Æ²Ã¤¨¤é¤ì¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +.\" .SH 著者 +.\" プリンタードライバは初めは Jim Weigand と Linus Torvalds によって書 +.\" かれ、さらに Michael K.\& Johnson によって改良された。割り込みのコード +.\" は Nigel Gamble によって書かれた。また、Alan Cox はドライバをモジュー +.\" ル化した。 +.\" LPCAREFUL, LPABORT, LPGETSTATUS は Chris Metcalf によって加えられた。 +.SH 関連項目 .BR chmod (1), .BR chown (1), .BR mknod (1), .BR lpcntl (8), .BR tunelp (8) -.\" .SH ËÝÌõ¼Ô -.\" ÀÐÀî ËÓ , -.\" ¹â¶¶ ËÓ»Ê -.SH ËÝÌõ¼ÔÃí -¥«¡¼¥Í¥ë 2.1.x ¤Ç¤Ï¥Ñ¥é¥ì¥ë¥Ý¡¼¥È¤Þ¤ï¤ê¤¬ÂçÉý¤Ë½ñ¤­Ä¾¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¥«¡¼¥Í¥ë 2.1.x ¤Î¥Ñ¥é¥ì¥ë¥Ý¡¼¥È¥É¥é¥¤¥Ð¤Ë¤Ï¡¢ -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤ÎÆâÍƤϤ½¤Î¤Þ¤ÞŬÍѤǤ­¤Þ¤»¤ó¡£ +.\" .SH 翻訳者 +.\" 石川 睦 , +.\" 高橋 睦司 +.SH 翻訳者注 +カーネル 2.1.x ではパラレルポートまわりが大幅に書き直されています。 +したがって、カーネル 2.1.x のパラレルポートドライバには、 +このマニュアルの内容はそのまま適用できません。 diff --git a/release/man4/mem.4 b/release/man4/mem.4 index 3947b7d2..fc196969 100644 --- a/release/man4/mem.4 +++ b/release/man4/mem.4 @@ -29,35 +29,35 @@ .\" Japanese Version Last Modified Sun Jan 11 03:52:01 1998 .\" by ISHIKAWA Mutsumi .\" -.\" WORD: system memory ¥·¥¹¥Æ¥à¥á¥â¥ê -.\" WORD: kernel memory ¥«¡¼¥Í¥ë¥á¥â¥ê -.\" WORD: system ports ¥·¥¹¥Æ¥à¥Ý¡¼¥È -.\" WORD: character device file ¥­¥ã¥é¥¯¥¿¡¼¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë -.\" WORD: patch ¥Ñ¥Ã¥Á -.\" WORD: byte address ¥Ð¥¤¥È¥¢¥É¥ì¥¹ -.\" WORD: physical memory address ʪÍý¥á¥â¥ê¥¢¥É¥ì¥¹ -.\" WORD: read-only Æɤ߹þ¤ßÀìÍÑ -.\" WORD: write-only ½ñ¤­¹þ¤ßÀìÍÑ -.\" WORD: kernel ¥«¡¼¥Í¥ë -.\" WORD: virtual memory ²¾ÁÛ¥á¥â¥ê -.\" WORD: I/O ports IO ¥Ý¡¼¥È +.\" WORD: system memory システムメモリ +.\" WORD: kernel memory カーネルメモリ +.\" WORD: system ports システムポート +.\" WORD: character device file キャラクターデバイスファイル +.\" WORD: patch パッチ +.\" WORD: byte address バイトアドレス +.\" WORD: physical memory address 物理メモリアドレス +.\" WORD: read-only 読み込み専用 +.\" WORD: write-only 書き込み専用 +.\" WORD: kernel カーネル +.\" WORD: virtual memory 仮想メモリ +.\" WORD: I/O ports IO ポート .TH MEM 4 1992-11-21 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -mem, kmem, port \- ¥·¥¹¥Æ¥à¥á¥â¥ê(system memory)¡¢¥«¡¼¥Í¥ë¥á¥â¥ê -(kernel memory)¡¢¥·¥¹¥Æ¥à¥Ý¡¼¥È(sysmem ports) -.SH ÀâÌÀ -\fBmem\fP ¤Ï¥³¥ó¥Ô¥å¡¼¥¿¤Î¥á¥¤¥ó¥á¥â¥ê¥¤¥á¡¼¥¸¤Î¥­¥ã¥é¥¯¥¿¡¼¥Ç¥Ð¥¤¥¹¥Õ¥¡ -¥¤¥ë(character device file)¤Ç¤¢¤ë¡£¤³¤Î¥Ç¥Ð¥¤¥¹¤Ï¡¢Î㤨¤Ð¡¢¥·¥¹¥Æ¥à¤ò -¸¡ºº¤¹¤ë¤¿¤á(¤Þ¤¿¡¢¥Ñ¥Ã¥Á(patch)¤ò¤¢¤Æ¤ë¤¿¤á)¤Ë»È¤ï¤ì¤ë¤À¤í¤¦¡£ +.SH 名前 +mem, kmem, port \- システムメモリ(system memory)、カーネルメモリ +(kernel memory)、システムポート(sysmem ports) +.SH 説明 +\fBmem\fP はコンピュータのメインメモリイメージのキャラクターデバイスファ +イル(character device file)である。このデバイスは、例えば、システムを +検査するため(また、パッチ(patch)をあてるため)に使われるだろう。 .LP .B mem -¤Î¥Ð¥¤¥È¥¢¥É¥ì¥¹(byte address)¤Ï ʪÍý¥á¥â¥ê¥¢¥É¥ì¥¹¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ -¸ºß¤·¤Æ¤¤¤Ê¤¤¾ì½ê¤Ø¤Î»²¾È¤Ï¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ +のバイトアドレス(byte address)は 物理メモリアドレスとして解釈される。 +存在していない場所への参照はエラーが返される。 .LP -Æɤ߹þ¤ßÀìÍÑ(read-only)¤¢¤ë¤¤¤Ï½ñ¤­¹þ¤ßÀìÍÑ(write-only)¤Î¥Ó¥Ã¥È¤Ø¤Î¸¡ -ºº¤¢¤ë¤¤¤Ï¥Ñ¥Ã¥ÁÅö¤Æ¤Ïͽ´ü¤»¤Ì·ë²Ì¤ò¤â¤¿¤é¤¹¤³¤È¤¬¤¢¤ë¡£ +読み込み専用(read-only)あるいは書き込み専用(write-only)のビットへの検 +査あるいはパッチ当ては予期せぬ結果をもたらすことがある。 .LP -¤³¤Î¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë¤Ïŵ·¿Åª¤Ë¤Ï¼¡¤Î¤è¤¦¤Ë¤·¤Æºî¤é¤ì¤ë¡£: +このデバイスファイルは典型的には次のようにして作られる。: .RS .sp mknod \-m 660 /dev/mem c 1 1 @@ -66,13 +66,13 @@ chown root:kmem /dev/mem .RE .LP .B kmem -¥Õ¥¡¥¤¥ë¤Ï +ファイルは .B mem -¤ÈƱ¤¸¤À¤¬¡¢ -ʪÍý¥á¥â¥ê¤Ø¤Î¥¢¥¯¥»¥¹¤Ç¤Ï¤Ê¤¯¡¢¥«¡¼¥Í¥ë(kernel)¤Î²¾ÁÛ -¥á¥â¥ê(virtual memory)¤Ø¤Î¥¢¥¯¥»¥¹¤Ç¤¢¤ëÅÀ¤¬°Û¤Ê¤ë¡£ +と同じだが、 +物理メモリへのアクセスではなく、カーネル(kernel)の仮想 +メモリ(virtual memory)へのアクセスである点が異なる。 .LP -¤³¤Î¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë¤Ïŵ·¿Åª¤Ë¤Ï¼¡¤Î¤è¤¦¤Ë¤·¤Æºî¤é¤ì¤ë¡£: +このデバイスファイルは典型的には次のようにして作られる。: .RS .sp mknod \-m 640 /dev/kmem c 1 2 @@ -80,26 +80,26 @@ mknod \-m 640 /dev/kmem c 1 2 chown root:kmem /dev/kmem .RE .LP -\fBport\fP ¤Ï +\fBport\fP は .B mem -¤Ë»÷¤Æ¤¤¤ë¤¬ I/O ¥Ý¡¼¥È(I/O ports)¤Ø¤Î¥¢¥¯¥»¥¹¤¬¹Ô¤ï¤ì¤ë¡£ +に似ているが I/O ポート(I/O ports)へのアクセスが行われる。 .LP -¤³¤Î¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë¤Ïŵ·¿Åª¤Ë¤Ï¼¡¤Î¤è¤¦¤Ëºî¤é¤ì¤ë¡£: +このデバイスファイルは典型的には次のように作られる。: .RS .sp mknod \-m 660 /dev/port c 1 4 .br chown root:mem /dev/port .RE -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .I /dev/mem .br .I /dev/kmem .br .I /dev/port -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chown (1), .BR mknod (1), .BR ioperm (2) -.\" .SH ËÝÌõ¼Ô -.\" ÀÐÀî ËÓ +.\" .SH 翻訳者 +.\" 石川 睦 diff --git a/release/man4/mouse.4 b/release/man4/mouse.4 index 2fbcc7bf..1647cccd 100644 --- a/release/man4/mouse.4 +++ b/release/man4/mouse.4 @@ -34,24 +34,24 @@ .\" by ISHIKAWA Mutsumi .\" Updated & Modefied Sat Feb 27 1999 by Shouichi Saito .\" -.\" WORD: serial mouse ¥·¥ê¥¢¥ë¥Þ¥¦¥¹ -.\" WORD: interface ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ +.\" WORD: serial mouse シリアルマウス +.\" WORD: interface インターフェース .\" WORD: RS232/V24 RS232/V24 -.\" WORD: dialout line ¥À¥¤¥¢¥ë¥¢¥¦¥È¥é¥¤¥ó -.\" WORD: pinout ¥Ô¥óÇÛÎó -.\" WORD: Microsoft-compatible ¥Þ¥¤¥¯¥í¥½¥Õ¥È¸ß´¹ +.\" WORD: dialout line ダイアルアウトライン +.\" WORD: pinout ピン配列 +.\" WORD: Microsoft-compatible マイクロソフト互換 .\" .TH MOUSE 4 1996-02-10 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -mouse \- ¥·¥ê¥¢¥ë¥Þ¥¦¥¹¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ -.SH ÀßÄê -¥·¥ê¥¢¥ë¥Þ¥¦¥¹¤Ï RS232/V24 ¥À¥¤¥¢¥ë¥¢¥¦¥È¥é¥¤¥ó¤ËÀܳ¤µ¤ì¤ë¡£ -RS232/V24 ¥À¥¤¥¢¥ë¥¢¥¦¥È¥é¥¤¥ó ¤Ë¤Ä¤¤¤Æ¤Ï +.SH 名前 +mouse \- シリアルマウスインターフェース +.SH 設定 +シリアルマウスは RS232/V24 ダイアルアウトラインに接続される。 +RS232/V24 ダイアルアウトライン については .BR ttyS (4) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ÀâÌÀ -.SS ³µÀâ -¥·¥ê¥¢¥ë¥Þ¥¦¥¹¤Ç»È¤ï¤ì¤ëÉáÄ̤Π9 ¥Ô¥ó¥×¥é¥°¤Î¥Ô¥óÇÛÎó¤Ï°Ê²¼¤Ç¤¢¤ë: +を参照のこと。 +.SH 説明 +.SS 概説 +シリアルマウスで使われる普通の 9 ピンプラグのピン配列は以下である: .TS center; r c l. @@ -63,17 +63,17 @@ pin name used for 5 GND Ground .TE -¤³¤ì¤Ï»ÅÍͽñ¤Ç¤¢¤ê¡¢¼ÂºÝ¤Ï¤Û¤È¤ó¤É¤Î¥Þ¥¦¥¹¤Ç¤Ï 9 V ¤Ç½½Ê¬¤Ç¤¢¤ë¡£ +これは仕様書であり、実際はほとんどのマウスでは 9 V で十分である。 .PP -¥Þ¥¦¥¹¥É¥é¥¤¥Ð¤Ï RTS ¤ò¥í¡¼(low)¤ËÍ¡¢ºÆ¤Ó¾å¤²¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¥Þ¥¦¥¹¤òǧ¼±¤Ç¤­ -¤ë¡£¤ª¤è¤½ 14 ms ¸å¡¢¥Þ¥¦¥¹¤Ï¥Ç¡¼¥¿¥é¥¤¥ó¾å¤Ë 0x4D (\(aqM\(aq) ¤òÁ÷¤ë¤À¤í¤¦¡£¤µ¤é -¤Ë 63ms ¤¢¤È¡¢¥Þ¥¤¥¯¥í¥½¥Õ¥È¸ß´¹ 3¥Ü¥¿¥ó¥Þ¥¦¥¹¤Ï 0x33 (\(aq3\(aq) ¤òÁ÷¤ë¡£ +マウスドライバは RTS をロー(low)に落し、再び上げることによって、マウスを認識でき +る。およそ 14 ms 後、マウスはデータライン上に 0x4D (\(aqM\(aq) を送るだろう。さら +に 63ms あと、マイクロソフト互換 3ボタンマウスは 0x33 (\(aq3\(aq) を送る。 .PP -¥Þ¥¦¥¹¤ÎÁêÂÐŪ¤Ê°ÜÆ°¤Ï¡¢\fIdx\fP(Àµ¤¬±¦)¤È\fIdy\fP(Àµ¤¬²¼)¤È¤·¤ÆÅÁ¤¨¤é¤ì¤ë¡£ -³Æ¼ï¤Î¥Þ¥¦¥¹¤Ï°Û¤Ê¤Ã¤¿¥¹¥Ô¡¼¥É¤ÇÁàºî¤Ç¤­¤ë¡£¥¹¥Ô¡¼¥É¤òÁªÂò¤¹¤ë¤Ë¤Ï¡¢ -²¼¤Îɽ¤Î£²Ê¸»ú¤òÁ÷¤Ã¤Æ¤«¤é 0.1 ÉÃÂԤĤ³¤È¤Ç¡¢9600, 4800, 2400, 1200 -bit/s ¤ò½ç¤ËÁª¤Ù¤ë¡£ -°Ê²¼¤Îɽ¤Ç¤ÏÁªÂò²Äǽ¤Ê¥¹¥Ô¡¼¥É¤È¤½¤ì¤òÁªÂò¤¹¤ë¤¿¤á¤Îʸ»úÎó¤ò¼¨¤·¤Æ¤¤¤ë¡£ +マウスの相対的な移動は、\fIdx\fP(正が右)と\fIdy\fP(正が下)として伝えられる。 +各種のマウスは異なったスピードで操作できる。スピードを選択するには、 +下の表の2文字を送ってから 0.1 秒待つことで、9600, 4800, 2400, 1200 +bit/s を順に選べる。 +以下の表では選択可能なスピードとそれを選択するための文字列を示している。 .TS center; l l. @@ -84,14 +84,14 @@ bit/s string 1200 *n .TE -¥Ç¡¼¥¿¥Ñ¥±¥Ã¥È¤ÎÂè 1 ¥Ð¥¤¥È¤ÏƱ´ü¤ò¤È¤ë¤Î¤ËÍøÍѤǤ­¤ë¡£ -.SS "¥Þ¥¤¥¯¥í¥½¥Õ¥È ¥×¥í¥È¥³¥ë(Microsoft Protocol)" -\fB¥Þ¥¤¥¯¥í¥½¥Õ¥È\fP¥×¥í¥È¥³¥ë¤Ï¡¢1200 bits/sec ¤Î¥¹¥Ô¡¼¥É¤Ç¡¢1 ¥¹ -¥¿¡¼¥È¥Ó¥Ã¥È(1 start bit)¡¢7 ¥Ç¡¼¥¿¥Ó¥Ã¥È(7 data bits)¡¢¥Ñ¥ê¥Æ¥£¤Ê -¤·¡¢1 ¥¹¥È¥Ã¥×¥Ó¥Ã¥È(1 stop bit)¤Ç¤¢¤ë¡£ -¥Ç¡¼¥¿¤Ï RxD ¤Ë 3 ¥Ð¥¤¥È¤Î¥Ñ¥±¥Ã¥È¤È¤·¤ÆÁ÷¤é¤ì¤ë¡£\fIdx\fP ¤È \fIdy\fP -¤ÎÆ°¤­¤Ï 2 ¤ÎÊä¿ôɽ¼¨¤ÇÁ÷¤é¤ì¡¢º¸(±¦)¤Î¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤¿»þ¤Ë¤Ï \fIlb\fP -(\fIrb\fP)¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +データパケットの第 1 バイトは同期をとるのに利用できる。 +.SS "マイクロソフト プロトコル(Microsoft Protocol)" +\fBマイクロソフト\fPプロトコルは、1200 bits/sec のスピードで、1 ス +タートビット(1 start bit)、7 データビット(7 data bits)、パリティな +し、1 ストップビット(1 stop bit)である。 +データは RxD に 3 バイトのパケットとして送られる。\fIdx\fP と \fIdy\fP +の動きは 2 の補数表示で送られ、左(右)のボタンが押された時には \fIlb\fP +(\fIrb\fP)がセットされる。 .TS center; r c c c c c c c. @@ -100,26 +100,26 @@ byte d6 d5 d4 d3 d2 d1 d0 2 0 dx5 dx4 dx3 dx2 dx1 dx0 3 0 dy5 dy4 dy3 dy2 dy1 dy0 .TE -.SS "3¤Ä¥Ü¥¿¥ó ¥Þ¥¤¥¯¥í¥½¥Õ¥È ¥×¥í¥È¥³¥ë(3-button Microsoft protocol)" -ËÜÍè¤Î¥Þ¥¤¥¯¥í¥½¥Õ¥È¥Þ¥¦¥¹¤Ï 2 ¤Ä¤Î¥Ü¥¿¥ó¤·¤«»ý¤¿¤Ê¤¤¡£¤·¤«¤·¡¢3 ¤Ä¥Ü¥¿¥ó -¤Î¥Þ¥¦¥¹¤Ç¥Þ¥¤¥¯¥í¥½¥Õ¥È¥×¥í¥È¥³¥ë¤Îʪ¤â¸ºß¤¹¤ë¡£¿¿Ãæ¤Î¥Ü¥¿¥ó¤ò²¡¤¹¡¢ -¤Þ¤¿¤ÏÊü¤¹¤È¤¤¤¦¤³¤È¤Ï¡¢Æ°¤­¥¼¥í¤Ç¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¤¤¤¦¥Ñ¥±¥Ã¥È -¤òÁ÷¤ë¤³¤È¤ÇÅÁ¤¨¤é¤ì¤ë¡£(½¾¤Ã¤Æ¾¤ÎÆó¤Ä¤Î¥Ü¥¿¥ó¤È°ã¤¤¡¢¿¿Ãæ¤Î¥Ü¥¿ -¥ó¤Î¥¹¥Æ¡¼¥¿¥¹¤Ï¡¢¤½¤ì¤¾¤ì¤Î¥Ñ¥±¥Ã¥È¤«¤é¤ÏÅÁ¤ï¤Ã¤ÆÍè¤Ê¤¤¡£) -.SS "¥í¥¸¥Æ¥Ã¥¯ ¥×¥í¥È¥³¥ë(Logitech protocol)" -¥í¥¸¥Æ¥Ã¥¯ ¥·¥ê¥¢¥ë 3¤Ä¥Ü¥¿¥ó¥Þ¥¦¥¹¤Ï¡¢¥Þ¥¤¥¯¥í¥½¥Õ¥È ¥×¥í¥È¥³¥ë¤È¤Ï -°Û¤Ê¤Ã¤¿³ÈÄ¥¤ò¤·¤Æ¤¤¤ë¡£:¿¿Ãæ¤Î¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤Æ¤Ê¤¤¤È¡¢¾åµ­ 3¥Ð¥¤¥È¤Î -¥Ñ¥±¥Ã¥È¤¬Á÷¤é¤ì¤ë¡£¿¿Ãæ¤Î¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤Æ¤¤¤ë¤È¡¢4¥Ð¥¤¥È¤Î¥Ñ¥±¥Ã¥È¤¬ -Á÷¤é¤ì¤ë¡£Â裴¥Ð¥¤¥È¤Ï 0x20 ¤ÎÃͤò»ý¤Ã¤Æ¤¤¤ë(¤¢¤ë¤¤¤Ï¡¢¾¯¤Ê¤¯¤È¤â 0x20 -¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë)¡£ ⤷¡¢Â¾¤Î¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤Æ¤¤¤Ê¤¤¾õÂ֤ǡ¢ -¿¿Ãæ¤Î¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤ë¤È¡¢0,0,0,0x20 ¤ÈÅÁ¤¨¤é¤ì¤ë¡£ -.SS "¥Þ¥¦¥¹¥·¥¹¥Æ¥à¥º ¥×¥í¥È¥³¥ë(Mousesystems protocol)" -\fB¥Þ¥¦¥¹¥·¥¹¥Æ¥à¥º\fP¥×¥í¥È¥³¥ë¤Ï¡¢1200 bits/sec¤Ç¡¢1 ¥¹¥¿¡¼¥È¥Ó¥Ã¥È¡¢ -8 ¥Ç¡¼¥¿¥Ó¥Ã¥È¡¢¥Ñ¥ê¥Æ¥£¤Ê¤·¡¢2 ¥¹¥È¥Ã¥×¥Ó¥Ã¥È¤Ç¤¢¤ë¡£ -¥Ç¡¼¥¿¤Ï¡¢RxD ¤Ë 5 ¥Ð¥¤¥È¤Î¥Ñ¥±¥Ã¥È¤È¤·¤ÆÁ÷¤é¤ì¤ë¡£\fIdx\fP ¤Ï 2 ¤Ä¤Î -2 ¤ÎÊä¿ô¤ÎϤȤ·¤ÆÁ÷¤é¤ì¡¢\fIdy\fP ¤Ï 2 ¤Ä¤Î 2 ¤ÎÊä¿ô¤ÎϤÎÈÝÄê -¤È¤·¤ÆÁ÷¤é¤ì¤ë¡£º¸(Ãæ¡¢±¦)¤Î¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤¿»þ¤Ë¤Ï\fIlb\fP -(\fImb\fP, \fIrb\fP) ¤¬¥¯¥ê¥¢¤µ¤ì¤ë¡£ +.SS "3つボタン マイクロソフト プロトコル(3-button Microsoft protocol)" +本来のマイクロソフトマウスは 2 つのボタンしか持たない。しかし、3 つボタン +のマウスでマイクロソフトプロトコルの物も存在する。真中のボタンを押す、 +または放すということは、動きゼロでボタンが押されていないというパケット +を送ることで伝えられる。(従って他の二つのボタンと違い、真中のボタ +ンのステータスは、それぞれのパケットからは伝わって来ない。) +.SS "ロジテック プロトコル(Logitech protocol)" +ロジテック シリアル 3つボタンマウスは、マイクロソフト プロトコルとは +異なった拡張をしている。:真中のボタンが押されてないと、上記 3バイトの +パケットが送られる。真中のボタンが押されていると、4バイトのパケットが +送られる。第4バイトは 0x20 の値を持っている(あるいは、少なくとも 0x20 +ビットがセットされている)。 但し、他のボタンが押されていない状態で、 +真中のボタンが押されると、0,0,0,0x20 と伝えられる。 +.SS "マウスシステムズ プロトコル(Mousesystems protocol)" +\fBマウスシステムズ\fPプロトコルは、1200 bits/secで、1 スタートビット、 +8 データビット、パリティなし、2 ストップビットである。 +データは、RxD に 5 バイトのパケットとして送られる。\fIdx\fP は 2 つの +2 の補数の和として送られ、\fIdy\fP は 2 つの 2 の補数の和の否定 +として送られる。左(中、右)のボタンが押された時には\fIlb\fP +(\fImb\fP, \fIrb\fP) がクリアされる。 .TS center; r c c c c c c c c. @@ -131,16 +131,16 @@ byte d7 d6 d5 d4 d3 d2 d1 d0 5 0 dyb6 dyb5 dyb4 dyb3 dyb2 dyb1 dyb0 .TE -Âè 4,5 ¥Ð¥¤¥È¤Ë¤Ï¡¢Âè 2,3 ¥Ð¥¤¥È¤¬Á÷¤é¤ì¤¿¤¢¤ÈÀ¸¤¸¤¿Êѹ¹¤¬µ­½Ò¤µ¤ì¤ë¡£ -.SS "¥µ¥ó ¥×¥í¥È¥³¥ë(Sun protocol)" -\fB¥µ¥ó\fP ¥×¥í¥È¥³¥ë¤Ï¡¢¾åµ­¤Î 5 ¥Ð¥¤¥È ¥Þ¥¦¥¹¥·¥¹¥Æ¥à¥×¥í¥È¥³¥ë¤Î 3 -¥Ð¥¤¥ÈÈǤǤ¹¡£¸å¤Î 2 ¥Ð¥¤¥È¤ÏÁ÷¤é¤ì¤Þ¤»¤ó¡£ -.SS "MM ¥×¥í¥È¥³¥ë(MM protocol)" -\fBMM\fP ¥×¥í¥È¥³¥ë¤Ï 1200 bits/sec ¤Ç 1 ¥¹¥¿¡¼¥È¥Ó¥Ã¥È¡¢8 ¥Ç¡¼¥¿¥Ó¥Ã -¥È¡¢´ñ¿ô¥Ñ¥ê¥Æ¥£¡¢ 1 ¥¹¥È¥Ã¥×¥Ó¥Ã¥È¤ò»È¤¦¡£¥Ç¡¼¥¿¤Ï RxD ¤Ë 3 ¥Ð¥¤¥È¤Î¥Ñ -¥±¥Ã¥È¤È¤·¤ÆÁ÷¤é¤ì¤ë¡£\fIdx\fP ¤È \fIdy\fP ¤Ï°ì¤Ä¤ÎÉä¹æ¤Ä¤­¤ÎÃͤȤ·¤Æ -Á÷¤é¤ì¡¢¥µ¥¤¥ó¥Ó¥Ã¥È¤ÏÉé¤ÎÃͤòɽ¤¹¡£º¸(Ãæ¡¢±¦)¤Î¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤¿»þ¤Ë¤Ï -\fIlb\fP (\fImb\fP, \fIrb\fP)¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +第 4,5 バイトには、第 2,3 バイトが送られたあと生じた変更が記述される。 +.SS "サン プロトコル(Sun protocol)" +\fBサン\fP プロトコルは、上記の 5 バイト マウスシステムプロトコルの 3 +バイト版です。後の 2 バイトは送られません。 +.SS "MM プロトコル(MM protocol)" +\fBMM\fP プロトコルは 1200 bits/sec で 1 スタートビット、8 データビッ +ト、奇数パリティ、 1 ストップビットを使う。データは RxD に 3 バイトのパ +ケットとして送られる。\fIdx\fP と \fIdy\fP は一つの符号つきの値として +送られ、サインビットは負の値を表す。左(中、右)のボタンが押された時には +\fIlb\fP (\fImb\fP, \fIrb\fP)がセットされる。 .TS center; r c c c c c c c c. @@ -149,10 +149,10 @@ byte d7 d6 d5 d4 d3 d2 d1 d0 2 0 dx6 dx5 dx4 dx3 dx2 dx1 dx0 3 0 dy6 dy5 dy4 dy3 dy2 dy1 dy0 .TE -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .TP .I /dev/mouse -°ìÈÌŪ¤Ë¥Þ¥¦¥¹¥Ç¥Ð¥¤¥¹¤ò¤µ¤¹¤Î¤Ë»È¤ï¤ì¤ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯ -.SH ´ØÏ¢¹àÌÜ +一般的にマウスデバイスをさすのに使われるシンボリックリンク +.SH 関連項目 .BR ttyS (4), .BR gpm (8) diff --git a/release/man4/null.4 b/release/man4/null.4 index 129b1619..0d606d22 100644 --- a/release/man4/null.4 +++ b/release/man4/null.4 @@ -31,24 +31,24 @@ .\" Japanese Version Last Modified Sun Jan 11 04:04:34 JST 1998 .\" by ISHIKAWA Mutsumi .\" -.\" WORD: special file ¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë +.\" WORD: special file スペシャルファイル .\" WORD: end of file end of file -.\" WORD: \0 character \0 ʸ»ú(null ʸ»ú) -.\" WORD: device ¥Ç¥Ð¥¤¥¹ +.\" WORD: \0 character \0 文字(null 文字) +.\" WORD: device デバイス .\" .TH NULL 4 1992-11-21 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -null, zero \- ¥Ç¡¼¥¿¤ÎÁݤ­¤À¤á -.SH ÀâÌÀ -\fBnull\fP ¤Þ¤¿¤Ï \fBzero\fP ¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë(special file)¤Ë -½ñ¤«¤ì¤¿¥Ç¡¼¥¿¤Ï¼Î¤Æ¤é¤ì¤ë¡£ +.SH 名前 +null, zero \- データの掃きだめ +.SH 説明 +\fBnull\fP または \fBzero\fP スペシャルファイル(special file)に +書かれたデータは捨てられる。 .PP -\fBnull\fP ¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤òÆɤà¤È¾ï¤Ë end of file ¤¬ÊÖ¤µ¤ì (¤Ä¤Þ¤ê¡¢ +\fBnull\fP スペシャルファイルを読むと常に end of file が返され (つまり、 .BR read (2) -¤Ï 0 ¤òÊÖ¤¹)¡¢ÂоÈŪ -¤Ë \fBzero\fP ¤òÆɤà¤È¾ï¤Ë¥Ð¥¤¥È¿ô 0 (\e0 ʸ»ú) ¤¬ÊÖ¤µ¤ì¤ë¡£ +は 0 を返す)、対照的 +に \fBzero\fP を読むと常にバイト数 0 (\e0 文字) が返される。 .LP -\fBnull\fP ¤È \fBzero\fP ¤Ï°ìÈÌŪ¤Ë¼¡¤Î¤è¤¦¤Ë¤·¤Æºî¤é¤ì¤ë: +\fBnull\fP と \fBzero\fP は一般的に次のようにして作られる: .RS .sp mknod \-m 666 /dev/null c 1 3 @@ -57,16 +57,16 @@ mknod \-m 666 /dev/zero c 1 5 .br chown root:root /dev/null /dev/zero .RE -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .I /dev/null .br .I /dev/zero -.SH Ãí°Õ -¤³¤ì¤é¤Î¥Ç¥Ð¥¤¥¹¤¬Á´¤Æ¤Î¥æ¡¼¥¶¤ËÂФ·¤ÆÆɤ߽ñ¤­²Äǽ¤Ç¤Ê¤¤¾ì¹ç¡¢ -¿¤¯¤Î¥×¥í¥°¥é¥à¤ÎÆ°ºî¤¬¤ª¤«¤·¤¯¤Ê¤ë¤À¤í¤¦¡£ -.SH ´ØÏ¢¹àÌÜ +.SH 注意 +これらのデバイスが全てのユーザに対して読み書き可能でない場合、 +多くのプログラムの動作がおかしくなるだろう。 +.SH 関連項目 .BR chown (1), .BR mknod (1), .BR full (4) -.\" .SH ËÝÌõ¼Ô -.\" ÀÐÀî ËÓ +.\" .SH 翻訳者 +.\" 石川 睦 diff --git a/release/man4/pts.4 b/release/man4/pts.4 index 8d4db341..668ab74b 100644 --- a/release/man4/pts.4 +++ b/release/man4/pts.4 @@ -8,79 +8,79 @@ .\" Translated Tue Jul 8 00:28:17 JST 2003 .\" by Akihiro MOTOKI .\" -.\"WORD: pseudoterminal µ¼»÷üËö -.\"WORD: pts µ¼»÷üËö +.\"WORD: pseudoterminal 擬似端末 +.\"WORD: pts 擬似端末 .\" .TH PTS 4 2002-10-09 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -ptmx, pts \- µ¼»÷üËö¤Î¥Þ¥¹¥¿¤È¥¹¥ì¡¼¥Ö -.SH ÀâÌÀ -¥Õ¥¡¥¤¥ë \fI/dev/ptmx\fP ¤Ï¡¢¥á¥¸¥ã¡¼¥Ê¥ó¥Ð¡¼ (major number) 5¡¢ -¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼ (minor number) 2 ¤ò»ý¤Ä¥­¥ã¥é¥¯¥¿¡¦¥Õ¥¡¥¤¥ë¤Ç¤¢¤ê¡¢ -Ä̾¥â¡¼¥É¤Ï 0666 ¤Ç¡¢½êÍ­¼Ô.¥°¥ë¡¼¥×¤Ï root.root ¤Ç¤¢¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢µ¼»÷üËö (pseudoterminal) ¤Î¥Þ¥¹¥¿¤È¥¹¥ì¡¼¥Ö¤Î -¥Ú¥¢¤òºîÀ®¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ +.SH 名前 +ptmx, pts \- 擬似端末のマスタとスレーブ +.SH 説明 +ファイル \fI/dev/ptmx\fP は、メジャーナンバー (major number) 5、 +マイナーナンバー (minor number) 2 を持つキャラクタ・ファイルであり、 +通常、モードは 0666 で、所有者.グループは root.root である。 +このファイルは、擬似端末 (pseudoterminal) のマスタとスレーブの +ペアを作成するために使用される。 .PP -¥×¥í¥»¥¹¤¬ \fI/dev/ptmx\fP ¤ò¥ª¡¼¥×¥ó¤¹¤ë¤È¡¢¤½¤Î¥×¥í¥»¥¹¤Ë¤Ï -µ¼»÷üËö¥Þ¥¹¥¿ (pseudoterminal master; PTM) ¤Ø¤Î¥Õ¥¡¥¤¥ë¡¦ -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÊÖ¤µ¤ì¡¢ +プロセスが \fI/dev/ptmx\fP をオープンすると、そのプロセスには +擬似端末マスタ (pseudoterminal master; PTM) へのファイル・ +ディスクリプタが返され、 .I /dev/pts -¥Ç¥£¥ì¥¯¥È¥ê¤Ëµ¼»÷üËö¥¹¥ì¡¼¥Ö (pseudoterminal slave; PTS) -¥Ç¥Ð¥¤¥¹¤¬ºîÀ®¤µ¤ì¤ë¡£ -\fI/dev/ptmx\fP ¤ò¥ª¡¼¥×¥ó¤·¤ÆÆÀ¤é¤ì¤ë¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï -¤½¤ì¤¾¤ìÆÈΩ¤Î PTM ¤Ç¤¢¤ê¡¢Âбþ¤¹¤ë PTS ¤ò³Æ¡¹»ý¤Ä¡£ -PTS ¤Î¥Ñ¥¹Ì¾¤Ï¡¢PTM ¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò +ディレクトリに擬似端末スレーブ (pseudoterminal slave; PTS) +デバイスが作成される。 +\fI/dev/ptmx\fP をオープンして得られるファイル・ディスクリプタは +それぞれ独立の PTM であり、対応する PTS を各々持つ。 +PTS のパス名は、PTM のファイル・ディスクリプタを .BR ptsname (3) -¤ËÅϤ¹¤ÈÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ +に渡すと知ることができる。 .PP -µ¼»÷üËö¥¹¥ì¡¼¥Ö¤ò¥ª¡¼¥×¥ó¤¹¤ëÁ°¤Ë¡¢É¬¤º¡¢¥Þ¥¹¥¿¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò -°ú¤­¿ô¤È¤·¤Æ +擬似端末スレーブをオープンする前に、必ず、マスタのファイル・ディスクリプタを +引き数として .BR grantpt (3) -¤È +と .BR unlockpt (3) -¤ò¸Æ¤Ó½Ð¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を呼び出さなければならない。 .PP -µ¼»÷üËö¤Î¥Þ¥¹¥¿¤È¥¹¥ì¡¼¥Ö¤ÎξÊý¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¸å¤Ï¡¢¥¹¥ì¡¼¥Ö¤Ï¡¢ -¥×¥í¥»¥¹¤ËÂФ·¤Æ¡¢¼ÂüËö (real terminal) ¤ÈÁ´¤¯Æ±¤¸¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤¹¤ë¡£ +擬似端末のマスタとスレーブの両方がオープンされた後は、スレーブは、 +プロセスに対して、実端末 (real terminal) と全く同じインタフェースを提供する。 .PP -¥¹¥ì¡¼¥Ö¤Ë½ñ¤«¤ì¤¿¥Ç¡¼¥¿¤Ï¥Þ¥¹¥¿¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ¹¤ëÆþÎϤȤ·¤Æ°·¤ï¤ì¡¢ -¥Þ¥¹¥¿¤Ë½ñ¤«¤ì¤¿¥Ç¡¼¥¿¤Ï¥¹¥ì¡¼¥Ö¤ËÂФ¹¤ëÆþÎϤȤ·¤Æ°·¤ï¤ì¤ë¡£ +スレーブに書かれたデータはマスタ・ディスクリプタに対する入力として扱われ、 +マスタに書かれたデータはスレーブに対する入力として扱われる。 .PP -¼ÂÎã¤ò¤¢¤²¤ë¤È¡¢µ¼»÷üËö¤Ï +実例をあげると、擬似端末は .BR xterm (1) -¤Î¤è¤¦¤ÊüËö¥¨¥ß¥å¥ì¡¼¥¿¤ò¼ÂÁõ¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ -üËö¥¨¥ß¥å¥ì¡¼¥¿¤Ç¤Ï¡¢µ¼»÷üËö¤Î¥Þ¥¹¥¿¤«¤éÆɤ߹þ¤Þ¤ì¤¿¥Ç¡¼¥¿¤Ï¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤È¤Ã¤Æ¼ÂüËö¤Î¥Ç¡¼¥¿¤ÈÁ´¤¯Æ±¤¸¤â¤Î¤Î¤è¤¦¤Ë¸«¤¨¤ë¡£ -¤Þ¤¿¡¢ +のような端末エミュレータを実装するのに使用されている。 +端末エミュレータでは、擬似端末のマスタから読み込まれたデータは、 +アプリケーションにとって実端末のデータと全く同じもののように見える。 +また、 .BR sshd (8) -¤Î¤è¤¦¤Ê¥ê¥â¡¼¥È¡¦¥í¥°¥¤¥óÍÑ¤Î¥×¥í¥°¥é¥à¤Î¼ÂÁõ¤Ç¤Ï¡¢ -µ¼»÷üËö¥Þ¥¹¥¿¤«¤éÆɤ߹þ¤Þ¤ì¤¿¥Ç¡¼¥¿¤Ï¡¢¥Í¥Ã¥È¥ï¡¼¥¯¤ò·Ðͳ¤·¤Æ¡¢ -üËö¤äüËö¥¨¥ß¥å¥ì¡¼¥¿¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¥¯¥é¥¤¥¢¥ó¥È¡¦¥×¥í¥°¥é¥à¤ËÁ÷¿®¤µ¤ì¤ë¡£ +のようなリモート・ログイン用のプログラムの実装では、 +擬似端末マスタから読み込まれたデータは、ネットワークを経由して、 +端末や端末エミュレータに接続されているクライアント・プログラムに送信される。 .PP -µ¼»÷üËö¤Ï¡¢ +擬似端末は、 .RB ( su (1) -¤ä +や .BR passwd (1) -¤Î¤è¤¦¤Ê) Ä̾ï¤Ï¥Ñ¥¤¥×¤«¤é¤ÎÆþÎϤòµñÈݤ¹¤ë¥×¥í¥°¥é¥à¤Ë¡¢ -ÆþÎϤòÁ÷¿®¤¹¤ë¤¿¤á¤Ë¤â»ÈÍѤǤ­¤ë¡£ -.SH ¥Õ¥¡¥¤¥ë +のような) 通常はパイプからの入力を拒否するプログラムに、 +入力を送信するためにも使用できる。 +.SH ファイル .IR /dev/ptmx , .I /dev/pts/* -.SH È÷¹Í -(UNIX 98 pseudoterminal naming ¤È¸Æ¤Ð¤ì¤ë) -¾åµ­¤Îµ¡Ç½¤Î Linux ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï¡¢Ä̾ï +.SH 備考 +(UNIX 98 pseudoterminal naming と呼ばれる) +上記の機能の Linux でのサポートは、通常 .I /dev/pts -¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤ë¤Ï¤º¤Î +にマウントされるはずの .I devpts -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òÄ̤·¤Æ¼Â¸½¤µ¤ì¤Æ¤¤¤ë¡¢ +ファイルシステムを通して実現されている、 .LP -¤³¤Î UNIX 98 ¥¹¥­¡¼¥à¤¬Æ³Æþ¤µ¤ì¤ëÁ°¤Ï¡¢¥Þ¥¹¥¿µ¼»÷üËö¤Ï +この UNIX 98 スキームが導入される前は、マスタ擬似端末は .IR /dev/ptyp0 ", ..." -¡¢¥¹¥ì¡¼¥Öµ¼»÷üËö¤Ï +、スレーブ擬似端末は .IR /dev/ttyp0 ", ..." -¤È¸Æ¤Ð¤ì¤Æ¤ª¤ê¡¢¤¢¤é¤«¤¸¤á¤¿¤¯¤µ¤ó¤Î¥Ç¥Ð¥¤¥¹¡¦¥Î¡¼¥É¤ò³ä¤êÅö¤Æ¤Æ -¤ª¤¯É¬Íפ¬¤¢¤Ã¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +と呼ばれており、あらかじめたくさんのデバイス・ノードを割り当てて +おく必要があった。 +.SH 関連項目 .BR getpt (3), .BR grantpt (3), .BR ptsname (3), diff --git a/release/man4/ram.4 b/release/man4/ram.4 index 967ca41c..fe3aa0c0 100644 --- a/release/man4/ram.4 +++ b/release/man4/ram.4 @@ -30,28 +30,28 @@ .\" Japanese Version Last Modified Sun Jan 11 03:55:54 1998 .\" by ISHIKAWA Mutsumi .\" -.\" WORD: ram disk ¥é¥à¥Ç¥£¥¹¥¯ -.\" WORD: raw mode ¥í¡¼¥â¡¼¥É -.\" WORD: block device ¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹ +.\" WORD: ram disk ラムディスク +.\" WORD: raw mode ローモード +.\" WORD: block device ブロックデバイス .TH RAM 4 1992-11-21 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -ram \- RAM ¥Ç¥£¥¹¥¯¥Ç¥Ð¥¤¥¹ -.SH ÀâÌÀ -\fIram\fP ¥Ç¥Ð¥¤¥¹¤Ï RAM ¥Ç¥£¥¹¥¯¤Ë¥í¡¼¥â¡¼¥É (raw mode) ¤Ç¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Î -¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹ (block device) ¤Ç¤¢¤ë¡£ +.SH 名前 +ram \- RAM ディスクデバイス +.SH 説明 +\fIram\fP デバイスは RAM ディスクにローモード (raw mode) でアクセスするための +ブロックデバイス (block device) である。 .LP -ŵ·¿Åª¤Ë¤Ï¼¡¤Î¤è¤¦¤Ë¤·¤Æºî¤é¤ì¤ë¡£: +典型的には次のようにして作られる。: .RS .sp mknod \-m 660 /dev/ram b 1 1 .br chown root:disk /dev/ram .RE -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル /dev/ram -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chown (1), .BR mknod (1), .BR mount (8) -.\" .SH ËÝÌõ¼Ô -.\" ÀÐÀî ËÓ +.\" .SH 翻訳者 +.\" 石川 睦 diff --git a/release/man4/random.4 b/release/man4/random.4 index a948ee28..e5828686 100644 --- a/release/man4/random.4 +++ b/release/man4/random.4 @@ -26,97 +26,97 @@ .\" Updated & Modified Fri Apr 22 03:44:01 JST 2005 by Yuichi SATO .\" Updated 2008-08-13, Akihiro MOTOKI , LDP v3.05 .\" -.\"WORD: random generator Íð¿ô¥¸¥§¥Í¥ì¡¼¥¿ +.\"WORD: random generator 乱数ジェネレータ .\" .TH RANDOM 4 2010-08-29 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -random, urandom \- ¥«¡¼¥Í¥ëÍð¿ô¥½¡¼¥¹¥Ç¥Ð¥¤¥¹ -.SH ÀâÌÀ -(Linux 1.3.30 ¤«¤éÄ󶡤µ¤ì¤Æ¤¤¤ë) \fI/dev/random\fP ¡¢ -\fI/dev/urandom\fP ¥­¥ã¥é¥¯¥¿¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤Ï -¥«¡¼¥Í¥ëÍð¿ô¥¸¥§¥Í¥ì¡¼¥¿¤Ø¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤¹¤ë¡£ -\fI/dev/random\fP ¥Õ¥¡¥¤¥ë¤Ï¥á¥¸¥ã¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ 1 -¥Þ¥¤¥Ê¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ 8 ¤Ç¤¢¤ë¡£ -\fI/dev/urandom\fP ¤Ï¥á¥¸¥ã¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ 1 -¥Þ¥¤¥Ê¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ 9 ¤Ç¤¢¤ë¡£ +.SH 名前 +random, urandom \- カーネル乱数ソースデバイス +.SH 説明 +(Linux 1.3.30 から提供されている) \fI/dev/random\fP 、 +\fI/dev/urandom\fP キャラクタスペシャルファイルは +カーネル乱数ジェネレータへのインタフェースを提供する。 +\fI/dev/random\fP ファイルはメジャーデバイス番号 1 +マイナーデバイス番号 8 である。 +\fI/dev/urandom\fP はメジャーデバイス番号 1 +マイナーデバイス番号 9 である。 .LP -Íð¿ô¥¸¥§¥Í¥ì¡¼¥¿¤Ï¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤ä¤½¤Î¾¤Î¸»¤«¤é¤Î´Ä¶­¥Î¥¤¥º¤ò -¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤Ø½¸¤á¤ë¡£ -¤Þ¤¿¡¢¥¸¥§¥Í¥ì¡¼¥¿¤Ï¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ëÆâ¤Î¥Î¥¤¥º¤Î¥Ó¥Ã¥È¿ô¤Î¿äÄêÃͤò -ÊÝ»ý¤¹¤ë¡£ -¤³¤Î¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤«¤éÍð¿ô¤¬À¸À®¤µ¤ì¤ë¡£ +乱数ジェネレータはデバイスドライバやその他の源からの環境ノイズを +エントロピー・プールへ集める。 +また、ジェネレータはエントロピー・プール内のノイズのビット数の推定値を +保持する。 +このエントロピー・プールから乱数が生成される。 .LP -Æɤ߹þ¤ß¤¬¹Ô¤ï¤ì¤ë¤È¡¢ +読み込みが行われると、 \fI/dev/random\fP -¥Ç¥Ð¥¤¥¹¤Ï¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤Î¥Î¥¤¥º¥Ó¥Ã¥È¤Î¿ô¤Î¿äÄêÃͤΤ¦¤Á¡¢ -¥é¥ó¥À¥à¥Ð¥¤¥È¤Î¤ß¤òÊÖ¤¹¡£ -\fI/dev/random\fP ¤Ï¥ï¥ó¥¿¥¤¥à¥Ñ¥Ã¥É (one-time pad) ¤ä¸°¤ÎÀ¸À®¤Î¤è¤¦¤Ê -Èó¾ï¤Ë¹â¤¤ÉʼÁ¤ò»ý¤Ã¤¿Ìµºî°ÙÀ­¤¬É¬ÍפˤʤëÍÑÅӤ˸þ¤¤¤Æ¤¤¤ë¤À¤í¤¦¡£ -¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤¬¶õ¤Î»þ¤Ï¡¢\fI/dev/random\fP ¤«¤é¤ÎÆɤ߽Ф·¤Ï¡¢ -¹¹¤Ê¤ë´Ä¶­¥Î¥¤¥º¤¬ÆÀ¤é¤ì¤ë¤Þ¤Ç¡¢¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¡£ +デバイスはエントロピー・プールのノイズビットの数の推定値のうち、 +ランダムバイトのみを返す。 +\fI/dev/random\fP はワンタイムパッド (one-time pad) や鍵の生成のような +非常に高い品質を持った無作為性が必要になる用途に向いているだろう。 +エントロピー・プールが空の時は、\fI/dev/random\fP からの読み出しは、 +更なる環境ノイズが得られるまで、ブロックされる。 .LP -\fI/dev/urandom\fP ¥Ç¥Ð¥¤¥¹¤«¤éÆɤ߽Ф·¤Ç¤Ï¡¢ -¥¨¥ó¥È¥í¥Ô¡¼¤¬¤è¤ê¹â¤¯¤Ê¤ë¤Î¤òÂԤĤ¿¤á¤Î¥Ö¥í¥Ã¥¯¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ -¤½¤Î·ë²Ì¡¢¤â¤·¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤Ë½½Ê¬¤Ê¥¨¥ó¥È¥í¥Ô¡¼¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢ -ÊÖ¤êÃͤϤ³¤Î¥É¥é¥¤¥Ð¤Ç»È¤ï¤ì¤Æ¤¤¤ë¥¢¥ë¥´¥ê¥º¥à¤Ë´ð¤Å¤¯°Å¹æ¹¶·â¤ËÂФ·¤Æ¡¢ -ÏÀÍýŪ¤Ë¤Ï¼å¤¯¤Ê¤ë¤³¤È¤Ë¤Ê¤ë¡£ -¤³¤Î¹¶·â¤ò¤É¤Î¤è¤¦¤Ë¹Ô¤¦¤«¤È¤¤¤¦»ö¤Ë¤Ä¤¤¤Æ¤Ï¡¢¸½ºß¸¦µæÏÀʸ¤Ê¤É¤Î -·Á¤ÇÆþ¼ê¤Ç¤­¤ë»ñÎÁ¤Ï¤Ê¤¤¡¢¤·¤«¤·¡¢¤½¤Î¤è¤¦¤Ê¹¶·â¤ÏÏÀÍýŪ¤Ë¸ºß²Äǽ¤Ç¤¢¤ë¡£ -¤â¤·¡¢¤³¤Î»ö¤¬¿´Çۤʤ顢(\fI/dev/urandom\fP ¤Ç¤Ï¤Ê¤¯) -\fI/dev/random\fP ¤òÍøÍѤ¹¤ì¤Ð¤¤¤¤¡£ -.SS »È¤¤Êý +\fI/dev/urandom\fP デバイスから読み出しでは、 +エントロピーがより高くなるのを待つためのブロックは行われない。 +その結果、もしエントロピー・プールに十分なエントロピーが存在しない場合、 +返り値はこのドライバで使われているアルゴリズムに基づく暗号攻撃に対して、 +論理的には弱くなることになる。 +この攻撃をどのように行うかという事については、現在研究論文などの +形で入手できる資料はない、しかし、そのような攻撃は論理的に存在可能である。 +もし、この事が心配なら、(\fI/dev/urandom\fP ではなく) +\fI/dev/random\fP を利用すればいい。 +.SS 使い方 .I /dev/random -¤È +と .I /dev/urandom -¤Î¤É¤Á¤é¤ò»È¤¦¤Ù¤­¤«Ì¤ä¿¾ì¹ç¡¢¤¿¤¤¤Æ¤¤¤Ï +のどちらを使うべきか迷った場合、たいていは .I /dev/urandom -¤ÎÊý¤ò»È¤¤¤¿¤¤¤È»×¤Ã¤Æ¤¤¤ë¤Ï¤º¤À¤í¤¦¡£ -°ìÈ̤ˡ¢Ä¹´ü¤ËÅϤäƻȤï¤ì¤ë GPG/SSL/SSH ¤Î¥­¡¼°Ê³°¤ÎÁ´¤Æ¤Î¤â¤Î¤Ë +の方を使いたいと思っているはずだろう。 +一般に、長期に渡って使われる GPG/SSL/SSH のキー以外の全てのものに .I /dev/urandom -¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +を使用すべきである。 -²¼µ­¤Ç¿ä¾©¤·¤Æ¤¤¤ë¤è¤¦¤ËºÆµ¯Æ°¤ÎÁ°¸å¤ÇÍð¿ô¼ï¥Õ¥¡¥¤¥ë¤¬Êݸ¤µ¤ì¤ë¾ì¹ç -(Á´¤Æ¤Î¼ç¤Ê Linux ¤Î¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ï¾¯¤Ê¤¯¤È¤â 2000 ǯ°Ê¹ß¤Ï -Íð¿ô¼ï¤òÊݸ¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë)¡¢µ¯Æ°¥·¡¼¥±¥ó¥¹¤Ë¤ª¤¤¤ÆÍð¿ô¼ï¤¬ -ºÆ¥í¡¼¥É¤µ¤ì¤¿Ä¾¸å¤«¤é¡¢¤½¤Î½ÐÎÏ¤Ï¥í¡¼¥«¥ë¤Î¥ë¡¼¥È¥¢¥¯¥»¥¹¤¬¤Ç¤­¤Ê¤¤ -¹¶·â¼Ô¤ËÂФ·¤Æ°Å¹æŪ¤Ë°ÂÁ´¤Ê¤â¤Î¤È¤Ê¤ê¡¢¥Í¥Ã¥È¥ï¡¼¥¯°Å¹æ²½¤Î¥»¥Ã¥·¥ç¥ó¥­¡¼ -¤È¤·¤Æ»È¤¦¤Ë¤Ï´°Á´¤ËºÇŬ¤Ê¤â¤Î¤È¤Ê¤ë¡£ +下記で推奨しているように再起動の前後で乱数種ファイルが保存される場合 +(全ての主な Linux のディストリビューションは少なくとも 2000 年以降は +乱数種を保存するようになっている)、起動シーケンスにおいて乱数種が +再ロードされた直後から、その出力はローカルのルートアクセスができない +攻撃者に対して暗号的に安全なものとなり、ネットワーク暗号化のセッションキー +として使うには完全に最適なものとなる。 .I /dev/random -¤«¤é¤ÎÆɤ߽Ф·¤ÏÄä»ß (block) ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç¡¢¥æ¡¼¥¶¤ÏÉáÄÌ -¤³¤Î¥Õ¥¡¥¤¥ë¤òÈóÄä»ß (nonblocking) ¥â¡¼¥É¤Ç³«¤³¤¦¤È¤· -(¤â¤·¤¯¤Ï¥¿¥¤¥à¥¢¥¦¥È¤ò»ØÄꤷ¤ÆÆɤ߽Ф·¤ò¼Â¹Ô¤·)¡¢´õ˾¤¹¤ë¥ì¥Ù¥ë¤Î -¥¨¥ó¥È¥í¥Ô¡¼¤Ï¤¹¤°¤Ë¤ÏÍøÍѤǤ­¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢²¿¤é¤«¤ÎÄÌÃΤò¹Ô¤¦¤³¤È¤À¤í¤¦¡£ +からの読み出しは停止 (block) する可能性があるので、ユーザは普通 +このファイルを非停止 (nonblocking) モードで開こうとし +(もしくはタイムアウトを指定して読み出しを実行し)、希望するレベルの +エントロピーはすぐには利用できない場合には、何らかの通知を行うことだろう。 -¥«¡¼¥Í¥ë¤ÎÍð¿ô¥¸¥§¥Í¥ì¡¼¥¿¤Ï¡¢°Å¹æµ¿»÷Íð¿ô¥¸¥§¥Í¥ì¡¼¥¿ (Cryptographic -pseudo-random number generator; CPRNG) ¤Î¼ï¤È¤·¤Æ»ÈÍѤǤ­¤ë -¹âÉʼÁ¤ÊÍð¿ô¼ï¤ÎºàÎÁ¤ò¾¯¤·À¸À®¤¹¤ë¤¿¤á¤ËÀ߷פµ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï®Å٤ǤϤʤ¯°ÂÁ´À­¤ò½Å»ë¤·¤ÆÀ߷פµ¤ì¤Æ¤ª¤ê¡¢ -¥é¥ó¥À¥à¤Ê¥Ç¡¼¥¿¤òÂçÎ̤ËÀ¸À®¤¹¤ë¤Î¤Ë¤ÏÁ´¤¯¤â¤Ã¤ÆŬ¤·¤Æ¤¤¤Ê¤¤¡£ -¥æ¡¼¥¶¤Ï +カーネルの乱数ジェネレータは、暗号疑似乱数ジェネレータ (Cryptographic +pseudo-random number generator; CPRNG) の種として使用できる +高品質な乱数種の材料を少し生成するために設計されている。 +これは速度ではなく安全性を重視して設計されており、 +ランダムなデータを大量に生成するのには全くもって適していない。 +ユーザは .I /dev/urandom -(¤È +(と .IR /dev/random ) -¤«¤éÆɤ߽Ф¹Íð¿ô¼ï¤ÎºàÎÁ¤ÎÎ̤ò¤Ç¤­¤ë¤À¤±ÀáÌ󤹤٤­¤Ç¤¢¤ë¡£ -¤³¤Î¥Ç¥Ð¥¤¥¹¤«¤éÉÔɬÍפËÂçÎ̤Υǡ¼¥¿¤òÆɤ߽Ф¹¤È¡¢¤³¤Î¥Ç¥Ð¥¤¥¹¤ò»È¤¦ -¾¤Î¥æ¡¼¥¶¤Ë¥Þ¥¤¥Ê¥¹¤Î±Æ¶Á¤òÍ¿¤¨¤Æ¤·¤Þ¤¦¤À¤í¤¦¡£ +から読み出す乱数種の材料の量をできるだけ節約すべきである。 +このデバイスから不必要に大量のデータを読み出すと、このデバイスを使う +他のユーザにマイナスの影響を与えてしまうだろう。 -°Å¹æ¸°¤òÀ¸À®¤¹¤ë¤Î¤ËɬÍפÊÍð¿ô¼ï¤ÎºàÎÁ¤ÎÎ̤ϡ¢¸°¤Î¼Â¸ú¥µ¥¤¥º¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -Î㤨¤Ð¡¢3072 ¥Ó¥Ã¥È¤Î RSA ¤ª¤è¤Ó Diffie-Hellman ¤ÎÈëÌ©¸°¤Î¼Â¸ú¥µ¥¤¥º¤Ï -128 ¥Ó¥Ã¥È (¤³¤ÎÈëÌ©¸°¤òÇˤë¤Ë¤Ï 2^128 ²ó¤ÎÁàºî¤¬É¬ÍפȤ¤¤¦¤³¤È) ¤Ç¤¢¤ê¡¢ -¤½¤Î¤¿¤á¸°À¸À®´ï¤¬ +暗号鍵を生成するのに必要な乱数種の材料の量は、鍵の実効サイズと同じである。 +例えば、3072 ビットの RSA および Diffie-Hellman の秘密鍵の実効サイズは +128 ビット (この秘密鍵を破るには 2^128 回の操作が必要ということ) であり、 +そのため鍵生成器が .I /dev/random -¤«¤éÆɤ߽Ф¹É¬Íפ¬¤¢¤ëÍð¿ô¼ï¤ÎºàÎÁ¤ÎÎÌ¤Ï 128 ¥Ó¥Ã¥È (16 ¥Ð¥¤¥È) ¤À¤±¤Ç¤¢¤ë¡£ +から読み出す必要がある乱数種の材料の量は 128 ビット (16 バイト) だけである。 -CPRNG ¥¢¥ë¥´¥ê¥º¥à¤Î·ç´Ù¤ËÂФ¹¤ëÊݸî¤È¤·¤Æ¡¢¤³¤ÎºÇ¾®ÃͤËÂФ·¤Æ¤¤¤¯¤é¤«¤Î -°ÂÁ´¾å¤Î¥Þ¡¼¥¸¥ó¤ò¼è¤ë¤Î¤Ï¤â¤Ã¤È¤â¤À¤¬¡¢¸½ºßÍøÍѲÄǽ¤Ê°Å¹æ¥×¥ê¥ß¥Æ¥£¥Ö¤Ç -256 ¥Ó¥Ã¥È¤è¤ê¿¤¯¤Î°ÂÁ´¤ÊÍð¿ô¤òɬÍפȤ¹¤ë¤è¤¦¤Ê¤â¤Î¤Ï¤Ê¤¤¡£ -µ¯Æ°¤¹¤ëÅ٤ˡ¢¤â¤·¤¯¤ÏÍð¿ô¼ï¤òÊѹ¹¤¹¤ëÂÅÅö¤Ê´Ö³Ö (1 ʬ¤è¤êû¤¯¤Ê¤ë¤³¤È¤Ï¤Ê¤¤) -¤ÎÅ٤ˡ¢¥«¡¼¥Í¥ë¤ÎÍð¿ô¥×¡¼¥ë¤«¤é 256 ¥Ó¥Ã¥È (32 ¥Ð¥¤¥È) ¤è¤ê¤¿¤¯¤µ¤óÆɤ߽Ф¹ -¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¥×¥í¥°¥é¥à¤Î°Å¹æ½èÍý¤¬¤¦¤Þ¤¯¼ÂÁõ¤µ¤ì¤Æ¡Ö¤¤¤Ê¤¤¡×²ÄǽÀ­¤¬ -¤¢¤ë¤È¹Í¤¨¤ë¤Ù¤­¤Ç¤¢¤í¤¦¡£ -.SS ÀßÄê -¥·¥¹¥Æ¥à¤Ë¤¢¤é¤«¤¸¤áºîÀ®¤µ¤ì¤¿ \fI/dev/random\fP ¤È -\fI/dev/urandom\fP ¤¬Â¸ºß¤·¤Ê¤¤¤Ê¤é¡¢¼¡¤Î¤è¤¦¤Ê¥³¥Þ¥ó¥É¤ÇºîÀ®¤Ç¤­¤ë¡£ +CPRNG アルゴリズムの欠陥に対する保護として、この最小値に対していくらかの +安全上のマージンを取るのはもっともだが、現在利用可能な暗号プリミティブで +256 ビットより多くの安全な乱数を必要とするようなものはない。 +起動する度に、もしくは乱数種を変更する妥当な間隔 (1 分より短くなることはない) +の度に、カーネルの乱数プールから 256 ビット (32 バイト) よりたくさん読み出す +ような場合には、そのプログラムの暗号処理がうまく実装されて「いない」可能性が +あると考えるべきであろう。 +.SS 設定 +システムにあらかじめ作成された \fI/dev/random\fP と +\fI/dev/urandom\fP が存在しないなら、次のようなコマンドで作成できる。 .nf mknod \-m 644 /dev/random c 1 8 @@ -124,20 +124,20 @@ CPRNG chown root:root /dev/random /dev/urandom .fi -¥ª¥Ú¥ì¡¼¥¿¤ÎÁàºî¤Ê¤·¤Ë Linux ¥·¥¹¥Æ¥à¤¬µ¯Æ°¤·¤¿Ä¾¸å¤Ï¡¢ -¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤Ï°Õ³°À­¤Î˳¤·¤¤¶Ñ°ì¤Ê¾õÂ֤ˤ¢¤ë¤À¤í¤¦¡£ -¤³¤ì¤Ë¤è¤ê¡¢¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤Î¼ÂºÝ¤Î¥Î¥¤¥ºÎ̤Ïɾ²ÁÃͤè¤ê¾¯¤Ê¤¯¤Ê¤ë¡£ -¤³¤Î¸ú²Ì¤òÂǤÁ¾Ã¤¹¤¿¤á¤Ë¡¢¥·¥ã¥Ã¥È¥À¥¦¥ó¤«¤é (¼¡¤Î) µ¯Æ°»þ¤Þ¤Ç»ý¤Á±Û¤·¤¿ -¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤Î¾ðÊ󤬽õ¤±¤Ë¤Ê¤ë¡£ -¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤ò»ý¤Á±Û¤¹¤¿¤á¤Ë¤Ï¡¢ -Linux ¥·¥¹¥Æ¥à¤Îµ¯Æ°»þ¤Ë¼Â¹Ô¤µ¤ì¤ëŬÀڤʥ¹¥¯¥ê¥×¥È¤Ë¡¢ -°Ê²¼¤Î¹Ô¤òÄɲ乤ì¤Ð¤è¤¤: +オペレータの操作なしに Linux システムが起動した直後は、 +エントロピー・プールは意外性の乏しい均一な状態にあるだろう。 +これにより、エントロピー・プールの実際のノイズ量は評価値より少なくなる。 +この効果を打ち消すために、シャットダウンから (次の) 起動時まで持ち越した +エントロピー・プールの情報が助けになる。 +エントロピー・プールを持ち越すためには、 +Linux システムの起動時に実行される適切なスクリプトに、 +以下の行を追加すればよい: .nf echo "Initializing random number generator..." random_seed=/var/run/random-seed - # Íð¿ô¼ï¤òº£²ó¤Î¥¹¥¿¡¼¥È¥¢¥Ã¥×¤«¤é¼¡²ó¤Î¥¹¥¿¡¼¥È¥¢¥Ã¥×¤Þ¤Ç»ý¤Á±Û¤¹¡£ - # ¥í¡¼¥É¤ò¹Ô¤¤¡¢¤½¤Î¸å¡¢Á´¤Æ¤Î¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤òÊݸ¤¹¤ë¡£ + # 乱数種を今回のスタートアップから次回のスタートアップまで持ち越す。 + # ロードを行い、その後、全てのエントロピー・プールを保存する。 if [ \-f $random_seed ]; then cat $random_seed >/dev/urandom else @@ -149,12 +149,12 @@ Linux dd if=/dev/urandom of=$random_seed count=1 bs=$bytes .fi -¤Þ¤¿¡¢Linux ¥·¥¹¥Æ¥à¤Î¥·¥ã¥Ã¥È¥À¥¦¥ó»þ¤Ë¼Â¹Ô¤µ¤ì¤ëŬÀڤʥ¹¥¯¥ê¥×¥È¤Ë¡¢ -°Ê²¼¤Î¹Ô¤òÄɲ乤ì¤Ð¤è¤¤: +また、Linux システムのシャットダウン時に実行される適切なスクリプトに、 +以下の行を追加すればよい: .nf - # Íð¿ô¼ï¤òº£²ó¤Î¥·¥ã¥Ã¥È¥À¥¦¥ó¤«¤é¼¡²ó¤Î¥¹¥¿¡¼¥È¥¢¥Ã¥×¤Þ¤Ç»ý¤Á±Û¤¹¡£ - # Á´¤Æ¤Î¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤òÊݸ¤¹¤ë¡£ + # 乱数種を今回のシャットダウンから次回のスタートアップまで持ち越す。 + # 全てのエントロピー・プールを保存する。 echo "Saving random seed..." random_seed=/var/run/random-seed touch $random_seed @@ -163,72 +163,72 @@ Linux [ \-r $poolfile ] && bytes=\`cat $poolfile\` || bytes=512 dd if=/dev/urandom of=$random_seed count=1 bs=$bytes .fi -.SS "/proc ¥¤¥ó¥¿¥Õ¥§¡¼¥¹" -¥Ç¥£¥ì¥¯¥È¥ê +.SS "/proc インタフェース" +ディレクトリ .I /proc/sys/kernel/random -¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë (2.3.16 ¤«¤é¸ºß¤¹¤ë) ¤Ï¡¢ +にあるファイル (2.3.16 から存在する) は、 .I /dev/random -¥Ç¥Ð¥¤¥¹¤Ø¤Î¤½¤Î¾¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤¹¤ë¡£ +デバイスへのその他のインタフェースを提供する。 .LP -Æɤ߹þ¤ßÀìÍѤΥե¡¥¤¥ë +読み込み専用のファイル .I entropy_avail -¤Ï»ÈÍѲÄǽ¤Ê¥¨¥ó¥È¥í¥Ô¡¼¤òɽ¤¹¡£ -Ä̾¤³¤ì¤Ï 4096 (¥Ó¥Ã¥È) ¤Ë¤Ê¤ê¡¢¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤¬ËþÇդξõÂ֤Ǥ¢¤ë¡£ +は使用可能なエントロピーを表す。 +通常、これは 4096 (ビット) になり、エントロピー・プールが満杯の状態である。 .LP -¥Õ¥¡¥¤¥ë +ファイル .I poolsize -¤Ï¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤Î¥µ¥¤¥º¤òɽ¤¹¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Î°ÕÌ£¤Ï¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤ê°Û¤Ê¤ë¡£ +はエントロピー・プールのサイズを表す。 +このファイルの意味はカーネルバージョンにより異なる。 .RS .TP 12 Linux 2.4: -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤Î¥µ¥¤¥º¤ò¡Ö¥Ð¥¤¥È¡×ñ°Ì¤Çµ¬Äꤹ¤ë¡£ -Ä̾¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÃÍ¤Ï 512 ¤Ë¤Ê¤ë¤¬¡¢½ñ¤­¹þ¤ß²Äǽ¤Ç¤¢¤ê¡¢ -¥¢¥ë¥´¥ê¥º¥à¤ÇÍøÍѲÄǽ¤ÊǤ°Õ¤ÎÃͤËÊѹ¹¤Ç¤­¤ë¡£ -ÁªÂò²Äǽ¤ÊÃÍ¤Ï 32, 64, 128, 256, 512, 1024, 2048 ¤Ç¤¢¤ë¡£ +このファイルはエントロピー・プールのサイズを「バイト」単位で規定する。 +通常、このファイルの値は 512 になるが、書き込み可能であり、 +アルゴリズムで利用可能な任意の値に変更できる。 +選択可能な値は 32, 64, 128, 256, 512, 1024, 2048 である。 .TP Linux 2.6: -¤³¤Î¥Õ¥¡¥¤¥ë¤ÏÆɤ߽Ф·ÀìÍѤǤ¢¤ê¡¢ -¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤Î¥µ¥¤¥º¤ò¡Ö¥Ó¥Ã¥È¡×ñ°Ì¤Çµ¬Äꤹ¤ë¡£ -ÃÍ¤Ï 4096 ¤Ç¤¢¤ë¡£ +このファイルは読み出し専用であり、 +エントロピー・プールのサイズを「ビット」単位で規定する。 +値は 4096 である。 .RE .LP -¥Õ¥¡¥¤¥ë +ファイル .I read_wakeup_threshold -¤Ï +は .I /dev/random -¤«¤é¤Î¥¨¥ó¥È¥í¥Ô¡¼¤òÂԤäƵٻߤ·¤Æ¤¤¤ë¥×¥í¥»¥¹¤òµ¯¤³¤¹¤Î¤ËɬÍ×¤Ê -¥¨¥ó¥È¥í¥Ô¡¼¤Î¥Ó¥Ã¥È¿ô¤òÊÝ»ý¤·¤Æ¤¤¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 64 ¤Ç¤¢¤ë¡£ -¥Õ¥¡¥¤¥ë +からのエントロピーを待って休止しているプロセスを起こすのに必要な +エントロピーのビット数を保持している。 +デフォルトは 64 である。 +ファイル .I write_wakeup_threshold -¤Ï¥¨¥ó¥È¥í¥Ô¡¼¤Î¥Ó¥Ã¥È¿ô¤òÊÝ»ý¤·¤Æ¤ª¤ê¡¢¤³¤ÎÃͰʲ¼¤Ë¤Ê¤Ã¤¿¤é +はエントロピーのビット数を保持しており、この値以下になったら .I /dev/random -¤Ø¤Î½ñ¤­¹þ¤ß¥¢¥¯¥»¥¹¤Î¤¿¤á¤Ë +への書き込みアクセスのために .BR select (2) -¤Þ¤¿¤Ï +または .BR poll (2) -¤ò¼Â¹Ô¤¹¤ë¥×¥í¥»¥¹¤òµ¯¤³¤¹¡£ -¤³¤ÎÃͤϥե¡¥¤¥ë¤Ë½ñ¤­¹þ¤ß¤ò¹Ô¤¦¤³¤È¤Ë¤è¤Ã¤ÆÊѹ¹¤Ç¤­¤ë¡£ +を実行するプロセスを起こす。 +この値はファイルに書き込みを行うことによって変更できる。 .LP -Æɤ߹þ¤ßÀìÍѤΥե¡¥¤¥ë +読み込み専用のファイル .I uuid -¤È +と .I boot_id -¤Ï 6fd5a44b-35f4-4ad4-a9b9-6b9be13e1fe9 ¤Î¤è¤¦¤Ê -¥é¥ó¥À¥à¤Êʸ»úÎó¤òÊÝ»ý¤·¤Æ¤¤¤ë¡£ -Á°¼Ô¤ÏÆɤ߹þ¤ß¤ÎÅ٤˿·¤¿¤ËÀ¸À®¤µ¤ì¡¢ -¸å¼Ô¤Ï 1 ÅÙ¤À¤±À¸À®¤µ¤ì¤ë¡£ -.SH ¥Õ¥¡¥¤¥ë +は 6fd5a44b-35f4-4ad4-a9b9-6b9be13e1fe9 のような +ランダムな文字列を保持している。 +前者は読み込みの度に新たに生成され、 +後者は 1 度だけ生成される。 +.SH ファイル /dev/random .br /dev/urandom -.\" .SH Ãø¼Ô -.\" ¥«¡¼¥Í¥ë¡¦¥é¥ó¥À¥à¥Ê¥ó¥Ð¡¼¡¦¥¸¥§¥Í¥ì¡¼¥¿¤Ï Theodora Ts'o -.\" (tytso@athena.mit.edu) ¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +.\" .SH 著者 +.\" カーネル・ランダムナンバー・ジェネレータは Theodora Ts'o +.\" (tytso@athena.mit.edu) によって書かれた。 +.SH 関連項目 mknod (1) .br RFC\ 1750, "Randomness Recommendations for Security" -.\" .SH ËÝÌõ¼Ô -.\" ÀÐÀî ËÓ +.\" .SH 翻訳者 +.\" 石川 睦 diff --git a/release/man4/rtc.4 b/release/man4/rtc.4 index fda22869..26306e7c 100644 --- a/release/man4/rtc.4 +++ b/release/man4/rtc.4 @@ -32,105 +32,105 @@ .\" Updated & Modified 2007-01-08 by Yuichi SATO. LDP v2.43 .\" .TH RTC 4 2010-02-25 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -rtc \- ¥ê¥¢¥ë¥¿¥¤¥à¥¯¥í¥Ã¥¯ -.SH ½ñ¼° +.SH 名前 +rtc \- リアルタイムクロック +.SH 書式 #include .sp .BI "int ioctl(" fd ", RTC_" request ", " param ");" -.SH ÀâÌÀ -¤³¤ì¤Ï¥ê¥¢¥ë¥¿¥¤¥à¥¯¥í¥Ã¥¯ (RTC) ¤Î¥É¥é¥¤¥Ð¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ç¤¢¤ë¡£ +.SH 説明 +これはリアルタイムクロック (RTC) のドライバのインタフェースである。 -¿¤¯¤Î¥³¥ó¥Ô¥å¡¼¥¿¤Ï¡¢¸½ºß¤Î¡ÖÊÉ»þ·×¡×»þ¹ï ("wall clock" time) ¤òµ­Ï¿¤¹¤ë¡¢ -¥Ï¡¼¥É¥¦¥§¥¢¥¯¥í¥Ã¥¯¤ò 1 ¸Ä°Ê¾å»ý¤Ã¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Ï¡Ö¥ê¥¢¥ë¥¿¥¤¥à¥¯¥í¥Ã¥¯¡×(RTC) ¤È¸Æ¤Ð¤ì¤ë¡£ -¤³¤ì¤é¤Î»þ·×¤Î¤¦¤Á 1 ¤Ä¤Ï¡¢Ä̾ï¤ÏÅÅÃӤǥХ寥¢¥Ã¥×¤·¤Æ¶îÆ°¤µ¤ì¤ë¤Î¤Ç¡¢ -¥³¥ó¥Ô¥å¡¼¥¿¤Î¥¹¥¤¥Ã¥Á¤òÀڤäƤ⡢»þ¹ï¤òÊÝ»ý¤Ç¤­¤ë¡£ -¿¤¯¤Î¾ì¹ç¡¢RTC ¤Ï¥¢¥é¡¼¥à¤ä¤½¤Î¾¤Î³ä¤ê¹þ¤ß¤Îµ¡Ç½¤òÄ󶡤¹¤ë¡£ +多くのコンピュータは、現在の「壁時計」時刻 ("wall clock" time) を記録する、 +ハードウェアクロックを 1 個以上持っている。 +これらは「リアルタイムクロック」(RTC) と呼ばれる。 +これらの時計のうち 1 つは、通常は電池でバックアップして駆動されるので、 +コンピュータのスイッチを切っても、時刻を保持できる。 +多くの場合、RTC はアラームやその他の割り込みの機能を提供する。 -Á´¤Æ¤Î i386 PC ¤È ACPI ¥Ù¡¼¥¹¤Î¥·¥¹¥Æ¥à¤Ë¤Ï RTC ¤¬¤¢¤ë¡£ -¤³¤Î RTC ¤Ï¡¢¸µ¡¹¤Î PC/AT ¤Ë¸ºß¤·¤¿ -Motorola MC146818 ¥Á¥Ã¥×¤È¸ß´¹À­¤¬¤¢¤ë¡£ -¤³¤Î¤è¤¦¤Ê RTC ¤Ï¡¢º£Æü¤Ç¤Ï¥Þ¥¶¡¼¥Ü¡¼¥É¤Î -¥Á¥Ã¥×¥»¥Ã¥È (¥µ¥¦¥¹¥Ö¥ê¥Ã¥¸) Æâ¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤³¤È¤¬Â¿¤¯¡¢ -¸ò´¹²Äǽ¤Ê¹Å²ß¤¯¤é¤¤¤ÎÂ礭¤µ¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×ÅÅÃÓ¤ò»È¤Ã¤Æ¤¤¤ë¡£ +全ての i386 PC と ACPI ベースのシステムには RTC がある。 +この RTC は、元々の PC/AT に存在した +Motorola MC146818 チップと互換性がある。 +このような RTC は、今日ではマザーボードの +チップセット (サウスブリッジ) 内で実装されていることが多く、 +交換可能な硬貨くらいの大きさのバックアップ電池を使っている。 -¥·¥¹¥Æ¥à¥ª¥ó¥Á¥Ã¥× (system-on-chip) ¥×¥í¥»¥Ã¥µ¤ò»È¤Ã¤Æºî¤é¤ì¤¿ -ÁȤ߹þ¤ß¥·¥¹¥Æ¥à¤È¤¤¤Ã¤¿¡¢PC °Ê³°¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢Ê̤ʼÂÁõ¤òÍѤ¤¤Æ¤¤¤ë¡£ -¤³¤Î¤è¤¦¤Ê¥·¥¹¥Æ¥à¤Ç¤Ï¡¢PC/AT ¤Î RTC ¤ÈƱ¤¸µ¡Ç½¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤¬Â¿¤¤¡£ +システムオンチップ (system-on-chip) プロセッサを使って作られた +組み込みシステムといった、PC 以外のシステムでは、別な実装を用いている。 +このようなシステムでは、PC/AT の RTC と同じ機能を提供していない場合が多い。 -.SS RTC ¤È¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤Î°ã¤¤ -RTC ¤ò¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤Èº®Æ±¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤Ï¡¢¥«¡¼¥Í¥ë¤Ë´ÉÍý¤µ¤ì¤ë¥½¥Õ¥È¥¦¥§¥¢¥¯¥í¥Ã¥¯¤Ç¤¢¤ê¡¢ -¥Õ¥¡¥¤¥ë¤Ë¤è¤ë¥¿¥¤¥à¥¹¥¿¥ó¥×ÀßÄê¤Ê¤É¤È¤È¤â¤Ë¡¢ +.SS RTC とシステムクロックの違い +RTC をシステムクロックと混同すべきではない。 +システムクロックは、カーネルに管理されるソフトウェアクロックであり、 +ファイルによるタイムスタンプ設定などとともに、 .BR gettimeofday (2) -¤ä +や .BR time (2) -¤ò¼ÂÁõ¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ -¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤Ï¡¢POSIX ¤Ë¤ª¤±¤ëµª¸µ -(Epoch; 1970-01-01 00:00:00 +0000 (UTC)) ¤«¤é¤ÎÉäȥߥêÉäòɽ¤¹¡£ -1 ¤Ä¤Î°ìÈÌŪ¤Ê¼ÂÁõ¤Ç¤Ï¥¿¥¤¥Þ¡¼³ä¤ê¹þ¤ß¤ò¡¢"jiffy" Ëè¤Ë 1 ²ó¡¢ -100, 250, 1000 Hz ¤È¤¤¤¦¼þÇÈ¿ô¤Ç¥«¥¦¥ó¥È¤¹¤ë¡£ +を実装するのに使用されている。 +システムクロックは、POSIX における紀元 +(Epoch; 1970-01-01 00:00:00 +0000 (UTC)) からの秒とミリ秒を表す。 +1 つの一般的な実装ではタイマー割り込みを、"jiffy" 毎に 1 回、 +100, 250, 1000 Hz という周波数でカウントする。 -RTC ¤È¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤Î½ÅÍפʰ㤤¤Ï¡¢ -RTC ¤Ï¥·¥¹¥Æ¥à¤¬ÄãÅÅÎϾõÂÖ (¡Ö¥ª¥Õ¡×¤Î¾ì¹ç¤â´Þ¤à) ¤Ç¤âÆ°ºî¤¹¤ë¤Î¤ËÂФ·¡¢ -¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤ÏÆ°ºî¤·¤Ê¤¤ÅÀ¤Ç¤¢¤ë¡£ -¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤Ï¡¢½é´ü²½¤¬¹Ô¤ï¤ì¤ë¤Þ¤Ç¤Ï¡¢ -POSIX µª¸µ¤«¤é¤Ç¤Ï¤Ê¤¯¥·¥¹¥Æ¥à¤Î¥Ö¡¼¥È»þ¤«¤é¤Î»þ¹ï¤·¤«ÊÖ¤»¤Ê¤¤¡£ -¤½¤Î¤¿¤á¡¢¥Ö¡¼¥È»þ¤ä¥·¥¹¥Æ¥à¤ÎÄãÅÅÎϾõÂÖ¤«¤é¤ÎÉüµ¢ (resume) ¸å¤Ë¤Ï¡¢ -¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤Ï RTC ¤ò»È¤Ã¤Æ¸½ºß¤ÎÊÉ»þ·×»þ¹ï¤ËÀßÄꤵ¤ì¤ë¾ì¹ç¤¬Â¿¤¤¡£ -RTC ¤ò»ý¤¿¤Ê¤¤¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -¾¤Î»þ·×¤ò»È¤Ã¤Æ¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤òÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¡¢ -¥Í¥Ã¥È¥ï¡¼¥¯¤Ë¥¢¥¯¥»¥¹¤·¤¿¤ê¡¢(»þ¹ï) ¥Ç¡¼¥¿¤ò¼êÆ°¤ÇÆþÎϤ·¤¿¤ê¤¹¤ë¤À¤í¤¦¡£ -.SS RTC ¤Îµ¡Ç½ -RTC ¤Ï +RTC とシステムクロックの重要な違いは、 +RTC はシステムが低電力状態 (「オフ」の場合も含む) でも動作するのに対し、 +システムクロックは動作しない点である。 +システムクロックは、初期化が行われるまでは、 +POSIX 紀元からではなくシステムのブート時からの時刻しか返せない。 +そのため、ブート時やシステムの低電力状態からの復帰 (resume) 後には、 +システムクロックは RTC を使って現在の壁時計時刻に設定される場合が多い。 +RTC を持たないシステムでは、 +他の時計を使ってシステムクロックを設定する必要があり、 +ネットワークにアクセスしたり、(時刻) データを手動で入力したりするだろう。 +.SS RTC の機能 +RTC は .BR hwclock (8) -¤Þ¤¿¤Ï²¼µ­¤Î ioctl ¥ê¥¯¥¨¥¹¥È¤ÇÆɤ߽ñ¤­¤¬¤Ç¤­¤ë¡£ +または下記の ioctl リクエストで読み書きができる。 -ÆüÉդȻþ´Ö¤ò¥«¥¦¥ó¥È¤¹¤ë¤Î¤Ë²Ã¤¨¤Æ¡¢ -¿¤¯¤Î RTC ¤Ï°Ê²¼¤Î¤è¤¦¤Ë³ä¤ê¹þ¤ß¤òȯÀ¸¤Ç¤­¤ë¡£ +日付と時間をカウントするのに加えて、 +多くの RTC は以下のように割り込みを発生できる。 .IP * 3 -¥¯¥í¥Ã¥¯¤Î¹¹¿·Ëè (¤Ä¤Þ¤ê 1 ÉÃËè)¡£ +クロックの更新毎 (つまり 1 秒毎)。 .IP * -2 Hz ¤«¤é 8192 Hz ¤Þ¤Ç¤Î 2 ¤Î¾è¿ô¤Î¼þÇÈ¿ô¤Ç¡¢Äê´üŪ¤Ê´Ö³Ö¡£ +2 Hz から 8192 Hz までの 2 の乗数の周波数で、定期的な間隔。 .IP * -Á°¤â¤Ã¤Æ»ØÄꤷ¤¿¥¢¥é¡¼¥à»þ¹ï¤Ë㤷¤¿»þ¡£ +前もって指定したアラーム時刻に達した時。 .PP -¤³¤ì¤é¤Î³ä¤ê¹þ¤ß¸µ¤Ï¡¢¸ÄÊ̤ËÍ­¸ú¤Ë¤·¤¿¤ê̵¸ú¤Ë¤·¤¿¤ê¤Ç¤­¤ë¡£ -¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥¢¥é¡¼¥à³ä¤ê¹þ¤ß¤ò¥·¥¹¥Æ¥à¤Î -¥¦¥§¥¤¥¯¥¢¥Ã¥×¥¤¥Ù¥ó¥È¤È¤·¤ÆÀßÄê¤Ç¤­¤ë¡£ -¤³¤Î¥¤¥Ù¥ó¥È¤Ï¡¢RAM ¤Ø¤Î¥µ¥¹¥Ú¥ó¥É (STR, ACPI ¥·¥¹¥Æ¥à¤Ç S3 ¤È¸Æ¤Ð¤ì¤ë) ¤ä -¥Ï¥¤¥Ð¡¼¥Í¡¼¥·¥ç¥ó (ACPI ¥·¥¹¥Æ¥à¤Ç S4 ¤È¸Æ¤Ð¤ì¤ë) ¤È¤¤¤Ã¤¿ÄãÅÅÎϾõÂ֤䡢 -¡Ö¥ª¥Õ¡×(ACPI ¥·¥¹¥Æ¥à¤Ç S5 ¤È¸Æ¤Ð¤ì¤ë) ¤«¤é¤Ç¤â¡¢¥·¥¹¥Æ¥à¤òÉüµ¢¤Ç¤­¤ë¡£ -ÅÅÃӤǥХ寥¢¥Ã¥×¤µ¤ì¤¿ RTC ¤¬³ä¤ê¹þ¤ß¤òȯÀ¸¤Ç¤­¤ë¥·¥¹¥Æ¥à¤È¡¢ -¤Ç¤­¤Ê¤¤¥·¥¹¥Æ¥à¤¬¤¢¤ë¡£ +これらの割り込み元は、個別に有効にしたり無効にしたりできる。 +多くのシステムでは、アラーム割り込みをシステムの +ウェイクアップイベントとして設定できる。 +このイベントは、RAM へのサスペンド (STR, ACPI システムで S3 と呼ばれる) や +ハイバーネーション (ACPI システムで S4 と呼ばれる) といった低電力状態や、 +「オフ」(ACPI システムで S5 と呼ばれる) からでも、システムを復帰できる。 +電池でバックアップされた RTC が割り込みを発生できるシステムと、 +できないシステムがある。 .I /dev/rtc -(¤Þ¤¿¤Ï +(または .IR /dev/rtc0 , .I /dev/rtc1 -¤Ê¤É¤Î) -¥Ç¥Ð¥¤¥¹¤Ï (¥¯¥í¡¼¥º¤µ¤ì¤ë¤Þ¤Ç) 1 ²ó¤·¤«¥ª¡¼¥×¥ó¤¹¤ë¤³¤È¤¬¤Ç¤­¤º¡¢ -Æɤ߹þ¤ßÀìÍѤǤ¢¤ë¡£ +などの) +デバイスは (クローズされるまで) 1 回しかオープンすることができず、 +読み込み専用である。 .BR read (2) -¤È +と .BR select (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¡¢ -RTC ¤«¤é¤Î³ä¤ê¹þ¤ß¤ò¼õ¤±¼è¤ë¤Þ¤ÇÄä»ß (block) ¤µ¤ì¤ë¡£ -³ä¤ê¹þ¤ß¤Î¸å¡¢¥×¥í¥»¥¹¤Ï long ·¿À°¿ô¤òÆɤ߽Ф¹¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ÎÀ°¿ô¤ÎºÇ²¼°Ì¥Ð¥¤¥È¤ÏȯÀ¸¤·¤¿³ä¤ê¹þ¤ß¤Î¼ïÊ̤ò -¥³¡¼¥É²½¤·¤¿¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ê¡¢ -»Ä¤ê¤Î 3 ¥Ð¥¤¥È¤ÏºÇ¸å¤Î +を呼び出したプロセスは、 +RTC からの割り込みを受け取るまで停止 (block) される。 +割り込みの後、プロセスは long 型整数を読み出すことができる。 +この整数の最下位バイトは発生した割り込みの種別を +コード化したビットマスクであり、 +残りの 3 バイトは最後の .BR read (2) -°Ê¹ß¤ËȯÀ¸¤·¤¿³ä¤ê¹þ¤ß¤Î²ó¿ô¤Ç¤¢¤ë¡£ -.SS ioctl(2) ¥¤¥ó¥¿¥Õ¥§¡¼¥¹ -°Ê²¼¤Î +以降に発生した割り込みの回数である。 +.SS ioctl(2) インタフェース +以下の .BR ioctl (2) -¥ê¥¯¥¨¥¹¥È¤¬ RTC ¥Ç¥Ð¥¤¥¹¤ÎÀܳ¤µ¤ì¤¿ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +リクエストが RTC デバイスの接続された +ファイルディスクリプタに対して定義されている: .TP .B RTC_RD_TIME -RTC ¤Î»þ¹ï¤ò°Ê²¼¤Î¹½Â¤ÂΤÇÊÖ¤¹: +RTC の時刻を以下の構造体で返す: .IP .in +4n .nf @@ -141,111 +141,111 @@ struct rtc_time { int tm_mday; int tm_mon; int tm_year; - int tm_wday; /* ̤»ÈÍÑ */ - int tm_yday; /* ̤»ÈÍÑ */ - int tm_isdst; /* ̤»ÈÍÑ */ + int tm_wday; /* 未使用 */ + int tm_yday; /* 未使用 */ + int tm_isdst; /* 未使用 */ }; .fi .in .IP -¤³¤Î¹½Â¤ÂΤΥե£¡¼¥ë¥É¤Ï +この構造体のフィールドは .BR gmtime (3) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë +で説明されている .I tm -¹½Â¤ÂΤΥե£¡¼¥ë¥É¤ÈƱ¤¸°ÕÌ£¤ÇƱ¤¸ÈϰϤǤ¢¤ë¡£ -¤³¤Î¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ò +構造体のフィールドと同じ意味で同じ範囲である。 +この構造体へのポインタを .BR ioctl (2) -¤ÎÂè 3 °ú¤­¿ô¤È¤·¤ÆÅϤ¹¡£ +の第 3 引き数として渡す。 .TP .B RTC_SET_TIME .BR ioctl (2) -¤ÎÂè 3 °ú¤­¿ô¤¬»Ø¤¹ +の第 3 引き数が指す .I rtc_time -¹½Â¤ÂΤÎÃͤò RTC »þ¹ï¤ËÀßÄꤹ¤ë¡£ -RTC »þ¹ï¤ÎÀßÄꤹ¤ë¾ì¹ç¡¢¥×¥í¥»¥¹¤ÏÆø¢ -(¤Ä¤Þ¤ê +構造体の値を RTC 時刻に設定する。 +RTC 時刻の設定する場合、プロセスは特権 +(つまり .B CAP_SYS_TIME -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ケーパビリティ) を持たなければならない。 .TP .BR RTC_ALM_READ ", " RTC_ALM_SET -¥¢¥é¡¼¥à¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë RTC ¤ËÂФ·¤Æ¡¢ -¥¢¥é¡¼¥à»þ¹ï¤ÎÆɤ߹þ¤ß¤ÈÀßÄê¤ò¹Ô¤¦¡£ -¥¢¥é¡¼¥à³ä¤ê¹þ¤ß¤Ï¡¢ +アラームがサポートされている RTC に対して、 +アラーム時刻の読み込みと設定を行う。 +アラーム割り込みは、 .BR RTC_AIE_ON ", " RTC_AIE_OFF -¤ò»È¤Ã¤Æ¡¢¤³¤ì¤È¤ÏÊ̤ËÍ­¸ú¤Þ¤¿¤Ï̵¸ú¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -\fBioctl\fP(2) ¤ÎÂè 3 °ú¤­¿ô¤Ï¡¢ +を使って、これとは別に有効または無効にしなければならない。 +\fBioctl\fP(2) の第 3 引き数は、 .I rtc_time -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤Î¹½Â¤ÂΤΠ+構造体へのポインタでなければならない。 +この構造体の .IR tm_sec , .IR tm_min , .I tm_hour -¥Õ¥£¡¼¥ë¥É¤Î¤ß¤¬»ÈÍѤµ¤ì¤ë¡£ +フィールドのみが使用される。 .TP .BR RTC_IRQP_READ ", " RTC_IRQP_SET -¼þ´üŪ¤Ê³ä¤ê¹þ¤ß¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë RTC ¤ËÂФ·¤Æ¡¢ -¼þ´üŪ¤Ê³ä¤ê¹þ¤ß¤Î¼þÇÈ¿ô¤ÎÆɤ߹þ¤ß¤ÈÀßÄê¤ò¹Ô¤¦¡£ -¼þ´üŪ¤Ê³ä¤ê¹þ¤ß¤Ï¡¢ +周期的な割り込みがサポートされている RTC に対して、 +周期的な割り込みの周波数の読み込みと設定を行う。 +周期的な割り込みは、 .BR RTC_PIE_ON ", " RTC_PIE_OFF -¤ò»È¤Ã¤Æ¡¢¤³¤ì¤È¤ÏÊ̤ËÍ­¸ú¤Þ¤¿¤Ï̵¸ú¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -\fBioctl\fP(2) ¤ÎÂè 3 °ú¤­¿ô¤Ï¡¢¤½¤ì¤¾¤ì +を使って、これとは別に有効または無効にしなければならない。 +\fBioctl\fP(2) の第 3 引き数は、それぞれ .I "unsigned long\ *" -¤È +と .I "unsigned long" -¤Ç¤¢¤ë¡£ -¤³¤ÎÃÍ¤Ï 1 ÉÃÅö¤¿¤ê¤Î³ä¤ê¹þ¤ß¤Î²ó¿ô¤Ç¤¢¤ë¡£ -»ØÄê²Äǽ¤Ê¼þÇÈ¿ô¤Ï¡¢2 ¤Î¾è¿ô¤Ç 2 ¤«¤é 8192 ¤ÎÈϰϤǤ¢¤ë¡£ -Æø¢¥×¥í¥»¥¹ (¤Ä¤Þ¤ê +である。 +この値は 1 秒当たりの割り込みの回数である。 +指定可能な周波数は、2 の乗数で 2 から 8192 の範囲である。 +特権プロセス (つまり .B CAP_SYS_RESOURCE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹) ¤Î¤ß¤¬¡¢ +ケーパビリティを持つプロセス) のみが、 .I /proc/sys/dev/rtc/max-user-freq -¤Ë½ñ¤«¤ì¤¿¾åµ­¤Î¼þÇÈ¿ô¤òÀßÄê¤Ç¤­¤ë¡£ -(¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç 64 ¤È¤¤¤¦Ãͤ¬½ñ¤«¤ì¤Æ¤¤¤ë)¡£ +に書かれた上記の周波数を設定できる。 +(このファイルにはデフォルトで 64 という値が書かれている)。 .TP .BR RTC_AIE_ON ", " RTC_AIE_OFF -¥¢¥é¡¼¥à¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë RTC ¤ËÂФ·¤Æ¡¢ -¥¢¥é¡¼¥à³ä¤ê¹þ¤ß¤òÍ­¸ú¤Þ¤¿¤Ï̵¸ú¤Ë¤¹¤ë¡£ -\fBioctl\fP(2) ¤ÎÂè 3 °ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ +アラームがサポートされている RTC に対して、 +アラーム割り込みを有効または無効にする。 +\fBioctl\fP(2) の第 3 引き数は無視される。 .TP .BR RTC_UIE_ON ", " RTC_UIE_OFF -1 ÉÃËè¤Î³ä¤ê¹þ¤ß¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë RTC ¤ËÂФ·¤Æ¡¢ -¥¯¥í¥Ã¥¯¹¹¿·Ëè¤Î³ä¤ê¹þ¤ß¤òÍ­¸ú¤Þ¤¿¤Ï̵¸ú¤Ë¤¹¤ë¡£ -\fBioctl\fP(2) ¤ÎÂè 3 °ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ +1 秒毎の割り込みがサポートされている RTC に対して、 +クロック更新毎の割り込みを有効または無効にする。 +\fBioctl\fP(2) の第 3 引き数は無視される。 .TP .BR RTC_PIE_ON ", " RTC_PIE_OFF -¼þ´üŪ¤Ê³ä¤ê¹þ¤ß¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë RTC ¤ËÂФ·¤Æ¡¢ -¼þ´üŪ¤Ê³ä¤ê¹þ¤ß¤òÍ­¸ú¤Þ¤¿¤Ï̵¸ú¤Ë¤¹¤ë¡£ -\fBioctl\fP(2) ¤ÎÂè 3 °ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ -Æø¢¥×¥í¥»¥¹ (¤Ä¤Þ¤ê +周期的な割り込みがサポートされている RTC に対して、 +周期的な割り込みを有効または無効にする。 +\fBioctl\fP(2) の第 3 引き数は無視される。 +特権プロセス (つまり .B CAP_SYS_RESOURCE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹) ¤Î¤ß¤¬¡¢ -¤½¤Î»þÅÀ¤Ç +ケーパビリティを持つプロセス) のみが、 +その時点で .I /proc/sys/dev/rtc/max-user-freq -¤Ë¼þ´ü¤¬¾åµ­¤ÎÃͤ˻ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢ -¼þ´üŪ¤Ê³ä¤ê¹þ¤ß¤òÍ­¸ú¤Ë¤Ç¤­¤ë¡£ +に周期が上記の値に指定されている場合に、 +周期的な割り込みを有効にできる。 .TP .BR RTC_EPOCH_READ ", " RTC_EPOCH_SET -¿¤¯¤Î RTC ¤Ïǯ¤ò 8 ¥Ó¥Ã¥È¤Î¥ì¥¸¥¹¥¿¤Ë¥³¡¼¥É²½¤¹¤ë¡£ -ǯ¤Ï 8 ¥Ó¥Ã¥È¤Î¥Ð¥¤¥Ê¥ê¿ô¤Þ¤¿¤Ï BCD ¿ô¤ËÊÑ´¹¤µ¤ì¤ë¡£ -¤É¤Á¤é¤Î¾ì¹ç¤Ç¤â¡¢¤½¤Î¿ôÃÍ¤Ï RTC ¤Îµª¸µ¤«¤éÁêÂÐÃͤËÊÑ´¹¤µ¤ì¤ë¡£ -¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï RTC ¤Îµª¸µ¤Ï 1900 ¤Ë½é´ü²½¤µ¤ì¤ë¤¬¡¢ -Alpha ¤È MIPS ¤Ç¤Ï¡¢RTC ¥ì¥¸¥¹¥¿¤Îǯ¤ÎÃͤ˱þ¤¸¤Æ¡¢ -1952, 1980, 2000 ¤Î²¿¤ì¤«¤Ë½é´ü²½¤µ¤ì¤ë¡£ -¤³¤ì¤é¤ÎÁàºî¤Ç¤½¤ì¤¾¤ì RTC ¤Îµª¸µ¤ÎÆɤ߹þ¤ß¤ÈÀßÄ꤬²Äǽ¤Ê RTC ¤â¤¢¤ë¡£ -\fBioctl\fP(2) ¤ÎÂè 3 °ú¤­¿ô¤Ï¡¢¤½¤ì¤¾¤ì +多くの RTC は年を 8 ビットのレジスタにコード化する。 +年は 8 ビットのバイナリ数または BCD 数に変換される。 +どちらの場合でも、その数値は RTC の紀元から相対値に変換される。 +多くのシステムでは RTC の紀元は 1900 に初期化されるが、 +Alpha と MIPS では、RTC レジスタの年の値に応じて、 +1952, 1980, 2000 の何れかに初期化される。 +これらの操作でそれぞれ RTC の紀元の読み込みと設定が可能な RTC もある。 +\fBioctl\fP(2) の第 3 引き数は、それぞれ .I "unsigned long\ *" -¤È +と .I "unsigned long" -¤Ç¤¢¤ë¡£ -ÊÖ¤µ¤ì¤ëÃÍ (¤Þ¤¿¤Ï»ØÄꤵ¤ì¤ëÃÍ) ¤Ïµª¸µ¤Ç¤¢¤ë¡£ -RTC ¤Îµª¸µ¤òÀßÄꤹ¤ë¾ì¹ç¡¢¥×¥í¥»¥¹¤ÏÆø¢ (¤Ä¤Þ¤ê +である。 +返される値 (または指定される値) は紀元である。 +RTC の紀元を設定する場合、プロセスは特権 (つまり .B CAP_SYS_TIME -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ケーパビリティ) を持たなければならない。 .TP .BR RTC_WKALM_RD ", " RTC_WKALM_SET -RTC ¤ÎÃæ¤Ë¤Ï¤è¤ê¶¯ÎϤʥ¢¥é¡¼¥à¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤â¤Î¤â¤¢¤ê¡¢ -¤³¤ì¤é¤Î ioctl ¤ò»È¤¦¤³¤È¤Ç¡¢°Ê²¼¤Î¤è¤¦¤Ê¹½Â¤ÂÎ¤Ç -RTC ¤Î¥¢¥é¡¼¥à»þ¹ï¤ò (¤½¤ì¤¾¤ì) Æɤ߽ñ¤­¤Ç¤­¤ë: +RTC の中にはより強力なアラームインタフェースをサポートするものもあり、 +これらの ioctl を使うことで、以下のような構造体で +RTC のアラーム時刻を (それぞれ) 読み書きできる: .PP .RS .in +4n @@ -260,68 +260,68 @@ struct rtc_wkalrm { .RE .IP .I enabled -¥Õ¥é¥°¤Ï¥¢¥é¡¼¥à³ä¤ê¹þ¤ß¤òÍ­¸ú¤Þ¤¿¤Ï̵¸ú¤·¤¿¤ê¡¢ -¸½ºß¤Î¾õÂÖ¤òÆɤ߹þ¤à¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥é¥°¤ò»È¤¦¾ì¹ç¡¢ -.BR RTC_AIE_ON " ¤È " RTC_AIE_OFF -¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£ +フラグはアラーム割り込みを有効または無効したり、 +現在の状態を読み込むのに使用される。 +これらのフラグを使う場合、 +.BR RTC_AIE_ON " と " RTC_AIE_OFF +は使用されない。 .I pending -¥Õ¥é¥°¤Ï +フラグは .B RTC_WKALM_RD -¤Ç»ÈÍѤµ¤ì¡¢½èÍýÂÔ¤Á¤Î³ä¤ê¹þ¤ß¤òɽ¼¨¤¹¤ë -(EFI ¥Õ¥¡¡¼¥à¥¦¥§¥¢¤Ç´ÉÍý¤µ¤ì¤ë RTC ¤ÈÄÌ¿®¤¹¤ë¤È¤­°Ê³°¡¢ -Linux ¤Ç¤Ï¤Û¤È¤ó¤ÉÌò¤ËΩ¤¿¤Ê¤¤)¡£ +で使用され、処理待ちの割り込みを表示する +(EFI ファームウェアで管理される RTC と通信するとき以外、 +Linux ではほとんど役に立たない)。 .I time -¥Õ¥£¡¼¥ë¥É¤Ï +フィールドは .B RTC_ALM_READ -¤ä +や .B RTC_ALM_SET -¤Î¾ì¹ç¤ÈƱ¤¸¤è¤¦¤Ë»ÈÍѤµ¤ì¤ë¤¬¡¢ +の場合と同じように使用されるが、 .IR tm_mday , .IR tm_mon , .I tm_year -¥Õ¥£¡¼¥ë¥É¤âÍ­¸ú¤Ç¤¢¤ë¤È¤¤¤¦ÅÀ¤¬°Û¤Ê¤ë¡£ -¤³¤Î¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ò +フィールドも有効であるという点が異なる。 +この構造体へのポインタを .BR ioctl (2) -¤ÎÂè 3 °ú¤­¿ô¤È¤·¤ÆÅϤµ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ¥Õ¥¡¥¤¥ë +の第 3 引き数として渡さなければならない。 +.SH ファイル .IR /dev/rtc ", " .IR /dev/rtc0 ", " .I /dev/rtc1 -¤Ê¤É: -RTC Æü쥭¥ã¥é¥¯¥¿¡¼¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë +など: +RTC 特殊キャラクターデバイスファイル .IR /proc/driver/rtc : -(1 ¤ÄÌܤÎ) RTC ¤Î¾õÂÖ -.SH Ãí°Õ -¥«¡¼¥Í¥ë¤Î¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤ò +(1 つ目の) RTC の状態 +.SH 注意 +カーネルのシステムクロックを .BR adjtimex (2) -¤ò»È¤Ã¤Æ³°Éô»²¾È¤ÇƱ´ü¤µ¤»¤ë¾ì¹ç¡¢ +を使って外部参照で同期させる場合、 .BR adjtimex (2) -¤Ï»ØÄꤵ¤ì¤¿ RTC ¤ò 11 ʬËè¤ËÄê´üŪ¤Ë¹¹¿·¤¹¤ë¡£ -¤³¤ì¤ò¹Ô¤¦¤¿¤á¥«¡¼¥Í¥ë¤Ï¼þ´üŪ¤Ê³ä¤ê¹þ¤ß¤òû´ü´Ö̵¸ú¤Ë¤¹¤ëɬÍפ¬¤¢¤ë¡£ -¤³¤ì¤Ï RTC ¤ò»È¤¦¥×¥í¥°¥é¥à¤Ë±Æ¶Á¤òÍ¿¤¨¤ë¡£ +は指定された RTC を 11 分毎に定期的に更新する。 +これを行うためカーネルは周期的な割り込みを短期間無効にする必要がある。 +これは RTC を使うプログラムに影響を与える。 -RTC ¤Îµª¸µ¤Ï¡¢¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤Ç¤Î¤ß»ÈÍѤµ¤ì¤ë -POSIX ¤Îµª¸µ¤È¤Ï²¿¤Î´Ø·¸¤â¤Ê¤¤¡£ +RTC の紀元は、システムクロックでのみ使用される +POSIX の紀元とは何の関係もない。 -RTC ¤Îµª¸µ¤Èǯ¤Î¥ì¥¸¥¹¥¿¤Ë´ð¤Å¤¯Ç¯¤¬ 1970 ̤Ëþ¤Ç¤¢¤ë¾ì¹ç¡¢ -100 ǯ¸å¡¢¤Ä¤Þ¤ê 2000 ¤«¤é 2069 ¤Ç¤¢¤ë¤È²¾Äꤵ¤ì¤ë¡£ +RTC の紀元と年のレジスタに基づく年が 1970 未満である場合、 +100 年後、つまり 2000 から 2069 であると仮定される。 -RTC ¤ÎÃæ¤Ë¤Ï¥¢¥é¡¼¥à¥Õ¥£¡¼¥ë¥É¤Ë -¡Ö¥ï¥¤¥ë¥É¥«¡¼¥É¡×¤ÎÃͤò¥µ¥Ý¡¼¥È¤¹¤ë¤â¤Î¤â¤¢¤ê¡¢ -Ëè»þ 15 ʬ¤ä³Æ·î¤Î½éÆü¤Ê¤É¡¢Äê´üŪ¤Ê¥¢¥é¡¼¥à¤ò¹Ô¤¦¥·¥Ê¥ê¥ª¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ -¤³¤Î¤è¤¦¤Ê»È¤¤Êý¤Ï°Ü¿¢À­¤¬¤Ê¤¤¡£ -°Ü¿¢À­¤Î¹â¤¤¥æ¡¼¥¶¶õ´Ö¥³¡¼¥É¤Ç¤Ï¡¢Ã±ÆȤΥ¢¥é¡¼¥à³ä¤ê¹þ¤ß¤À¤±¤òÁÛÄꤷ¡¢ -³ä¤ê¹þ¤ß¤Î¼õ¿®¸å¤Ë¥¢¥é¡¼¥à¤ò̵¸ú¤Þ¤¿¤ÏºÆ½é´ü²½¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +RTC の中にはアラームフィールドに +「ワイルドカード」の値をサポートするものもあり、 +毎時 15 分や各月の初日など、定期的なアラームを行うシナリオをサポートする。 +このような使い方は移植性がない。 +移植性の高いユーザ空間コードでは、単独のアラーム割り込みだけを想定し、 +割り込みの受信後にアラームを無効または再初期化すべきである。 -°Ê²¼¤Îµ¡Ç½¤ò¥µ¥Ý¡¼¥È¤¹¤ë RTC ¤â¤¢¤ë¡£ -1 ÉäÎʬ¿ô¤Ç¤Ï¤Ê¤¯¡¢1 ÉäÎÇÜ¿ô¤ò¼þ´ü¤È¤¹¤ë¼þ´üŪ¤Ê³ä¤ê¹þ¤ß¡£ -Ê£¿ô¤Î¥¢¥é¡¼¥à¡£ -¥×¥í¥°¥é¥à²Äǽ¤Ê½ÐÎÏ¥¯¥í¥Ã¥¯¥·¥°¥Ê¥ë¡£ -ÉÔ´øȯÀ­ (nonvolatile) ¥á¥â¥ê¡£ -¤³¤Î API ¤Ç¸½ºßÄ󶡤·¤Æ¤¤¤Ê¤¤¡¢¤½¤Î¾¤Î¥Ï¡¼¥É¥¦¥§¥¢µ¡Ç½¡£ -.SH ´ØÏ¢¹àÌÜ +以下の機能をサポートする RTC もある。 +1 秒の分数ではなく、1 秒の倍数を周期とする周期的な割り込み。 +複数のアラーム。 +プログラム可能な出力クロックシグナル。 +不揮発性 (nonvolatile) メモリ。 +この API で現在提供していない、その他のハードウェア機能。 +.SH 関連項目 .BR date (1), .BR adjtimex (2), .BR gettimeofday (2), diff --git a/release/man4/sd.4 b/release/man4/sd.4 index b3689638..1d2deca2 100644 --- a/release/man4/sd.4 +++ b/release/man4/sd.4 @@ -26,67 +26,67 @@ .\" Translated 1997-02-06, ISHIKAWA Mutsumi .\" Updated 2005-11-19, Akihiro MOTOKI .\" -.\" WORD: pointer ¥Ý¥¤¥ó¥¿ -.\" WORD: structure ¹½Â¤ÂÎ -.\" WORD: geometry ¥¸¥ª¥á¥È¥ê -.\" WORD: sector ¥»¥¯¥¿ -.\" WORD: implement ¼ÂÁõ -.\" WORD: raw device ¥í¡¼¥Ç¥Ð¥¤¥¹ +.\" WORD: pointer ポインタ +.\" WORD: structure 構造体 +.\" WORD: geometry ジオメトリ +.\" WORD: sector セクタ +.\" WORD: implement 実装 +.\" WORD: raw device ローデバイス .\" .TH SD 4 1992-12-17 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sd \- SCSI ¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ö¤Î¤¿¤á¤Î¥É¥é¥¤¥Ð -.SH ½ñ¼° +.SH 名前 +sd \- SCSI ディスクドライブのためのドライバ +.SH 書式 .nf .BR "#include " "/* for HDIO_GETGEO */" .BR "#include " "/* for BLKGETSIZE and BLKRRPART */" .fi -.SH ÀßÄê -¤³¤Î¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹ (block device) ¤Î̾Á°¤Ï¡¢¼¡¤Î¤è¤¦¤Ê·Á¼°¤ò¤È¤ë: +.SH 設定 +このブロックデバイス (block device) の名前は、次のような形式をとる: .BI sd lp, -¤³¤Î¤¦¤Á¡¢ +このうち、 .I l -¤ÏʪÍý¥É¥é¥¤¥Ö¤ò°ÕÌ£¤¹¤ëʸ»ú¤Ç¤¢¤ê¡¢ +は物理ドライブを意味する文字であり、 .I p -¤Ï¤½¤ÎʪÍý¥É¥é¥¤¥Ö¾å¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó (partition) ¤ò°ÕÌ£¤¹¤ë¿ô»ú¤Ç¤¢¤ë¡£ -¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Ê¥ó¥Ð¡¼ +はその物理ドライブ上のパーティション (partition) を意味する数字である。 +パーティションナンバー .I p -¤¬¤Ê¤¤¾ì¹ç¤Ï¡¢¤½¤Î¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë¤Ï¥É¥é¥¤¥ÖÁ´ÂΤò¤µ¤¹¡£ +がない場合は、そのデバイスファイルはドライブ全体をさす。 -SCSI ¥Ç¥£¥¹¥¯¤Ï¥á¥¸¥ã¡¼¥Ê¥ó¥Ð¡¼ 8 ¤ò»ý¤Á¡¢¼¡¤Î¤è¤¦¤Ê·Á¼°¤Î¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼ -¤ò»ý¤Ä¡£(16 * -.IR drive_number ") + " partition_number ¡¢ -¤³¤Î +SCSI ディスクはメジャーナンバー 8 を持ち、次のような形式のマイナーナンバー +を持つ。(16 * +.IR drive_number ") + " partition_number 、 +この .I drive_number -¤Ï¸¡½Ð¤µ¤ì¤¿ÊªÍý¥É¥é¥¤¥Ö¤ÎÈÖ¹æ¤Ç¤¢¤ê¡¢ +は検出された物理ドライブの番号であり、 .I partition_number -¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ë: +は次のようになる: .sp -¥Ñ¡¼¥Æ¥£¥·¥ç¥ó 0 ¤Ï¥É¥é¥¤¥ÖÁ´ÂÎ +パーティション 0 はドライブ全体 .br -¥Ñ¡¼¥Æ¥£¥·¥ç¥ó 1 ¡Á 4 ¤Ï DOS ¤Î "´ðËÜ (primary)" ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó +パーティション 1 〜 4 は DOS の "基本 (primary)" パーティション .br -¥Ñ¡¼¥Æ¥£¥·¥ç¥ó 5 ¡Á 8 ¤Ï DOS ¤Î "³ÈÄ¥ (extended)" (¤Þ¤¿¤Ï¡¢"ÏÀÍý -(logical)") ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡£ +パーティション 5 〜 8 は DOS の "拡張 (extended)" (または、"論理 +(logical)") パーティション。 -Î㤨¤Ð¡¢ +例えば、 .I /dev/sda -¤Ï¥á¥¸¥ã¡¼¥Ê¥ó¥Ð¡¼ 8 ¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼ 0 ¤ò»ý¤Á¡¢¥·¥¹¥Æ¥à¤ÎºÇ½é¤Î SCSI -¥É¥é¥¤¥ÖÁ´ÂΤò»²¾È¤¹¤ë¡£¤½¤·¤Æ¡¢ +はメジャーナンバー 8 マイナーナンバー 0 を持ち、システムの最初の SCSI +ドライブ全体を参照する。そして、 .I /dev/sdb3 -¤Ï¥á¥¸¥ã¡¼¥Ê¥ó¥Ð¡¼ 8 ¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼ 19 ¤ò»ý¤Á¡¢¥·¥¹¥Æ¥à¤ÎÆó¤ÄÌܤΠ-SCSI ¥É¥é¥¤¥Ö¤Î»°ÈÖÌܤΠDOS "´ðËÜ" ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò»²¾È¤¹¤ë¡£ +はメジャーナンバー 8 マイナーナンバー 19 を持ち、システムの二つ目の +SCSI ドライブの三番目の DOS "基本" パーティションを参照する。 -¸½ºß¤Ï¡¢¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤À¤±¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¡£¥í¡¼¡¦¥Ç¥Ð¥¤¥¹ (raw device) -¤Ï¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ÀâÌÀ -¼¡¤Î +現在は、ブロックデバイスだけが提供されている。ロー・デバイス (raw device) +はまだ実装されていない。 +.SH 説明 +次の .I ioctl -¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë: +が提供されている: .TP .B HDIO_GETGEO .RS -¼¡¤Î¤è¤¦¤Ê¹½Â¤ÂΤòÍѤ¤¤Æ BIOS ¤Î¥Ç¥£¥¹¥¯¥Ñ¥é¥á¡¼¥¿¤òÊÖ¤¹: +次のような構造体を用いて BIOS のディスクパラメータを返す: .in +4n .nf @@ -99,49 +99,49 @@ struct hd_geometry { .fi .in -¤³¤Î¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤¬ +この構造体へのポインタが .BR ioctl (2) -¤Ø¤Î¥Ñ¥é¥á¡¼¥¿¤È¤·¤ÆÅϤµ¤ì¤ë¡£ +へのパラメータとして渡される。 -¤³¤Î¥Ñ¥é¥á¡¼¥¿¤ËÆþ¤ì¤é¤ì¤ÆÊÖ¤µ¤ì¤ë¾ðÊó¤Ï¡¢ -.I "DOS ¤Ë¤è¤Ã¤ÆÍý²ò¤µ¤ì¤ë¤è¤¦¤Ê" -¥É¥é¥¤¥Ö¤Î¥¸¥ª¥á¥È¥ê¤Ç¤¢¤ë¡£ -¤³¤Î¥¸¥ª¥á¥È¥ê¤Ï¡¢¥É¥é¥¤¥Ö¤ÎʪÍýŪ¤Ê¥¸¥ª¥á¥È¥ê -.I ¤Ç¤Ï¤Ê¤¤¡£ -¤³¤Î¾ðÊó¤Ï¥É¥é¥¤¥Ö¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤òºîÀ®¤¹¤ë»þ¤ËÍѤ¤¤é¤ì¤ë¡¢ -¤Þ¤¿¡¢ +このパラメータに入れられて返される情報は、 +.I "DOS によって理解されるような" +ドライブのジオメトリである。 +このジオメトリは、ドライブの物理的なジオメトリ +.I ではない。 +この情報はドライブのパーティションテーブルを作成する時に用いられる、 +また、 .BR fdisk (1), .BR efdisk (1), .BR lilo (1) -¤ÎŬÀÚ¤ÊÁàºî¤ËɬÍפǤ¢¤ë¡£ -¤â¤·¡¢¥¸¥ª¥á¥È¥ê¤Î¾ðÊó¤¬ÆÀ¤é¤ì¤Ê¤±¤ì¤Ð¡¢¤½¤ì¤¾¤ì¤ÎÃÍÁ´¤Æ¤Ë¥¼¥í¤¬Æþ¤ì -¤é¤ì¤ÆÊÖ¤µ¤ì¤ë¡£ +の適切な操作に必要である。 +もし、ジオメトリの情報が得られなければ、それぞれの値全てにゼロが入れ +られて返される。 .RE .TP .B BLKGETSIZE -¥»¥¯¥¿¤Î¿ô¤Çɽ¤·¤¿¥Ç¥Ð¥¤¥¹¤Î¥µ¥¤¥º¤¬ÊÖ¤µ¤ì¤ë¡£ +セクタの数で表したデバイスのサイズが返される。 .BR ioctl (2) -¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¡¢ +のパラメータは、 .I long -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +へのポインタでなければならない。 .TP .B BLKRRPART -¶¯À©Åª¤Ë¡¢SCSI ¥Ç¥£¥¹¥¯¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤ÎºÆÆɤ߹þ¤ß¤ò¹Ô¤¦¡£ -¥Ñ¥é¥á¡¼¥¿¤ÏɬÍפʤ¤¡£ +強制的に、SCSI ディスクのパーティションテーブルの再読み込みを行う。 +パラメータは必要ない。 .BR scsi (4) -¤Î +の .BR ioctl (2) -Áàºî¤âƱÍͤ˥µ¥Ý¡¼¥È¤µ¤ì¤ë¡£ +操作も同様にサポートされる。 .BR ioctl (2) -¤Î¥Ñ¥é¥á¡¼¥¿¤¬É¬Íפǡ¢¤½¤ì¤¬ NULL ¤Ê¤é¤Ð¡¢ +のパラメータが必要で、それが NULL ならば、 .BR ioctl (2) -¤Ï¥¨¥é¡¼ +はエラー .B EINVAL -¤Ç¼ºÇÔ¤¹¤ë¡£ -.SH ¥Õ¥¡¥¤¥ë -/dev/sd[a\-h]: ¥É¥é¥¤¥ÖÁ´ÂÎ +で失敗する。 +.SH ファイル +/dev/sd[a\-h]: ドライブ全体 .br -/dev/sd[a\-h][0\-8]: ¸Ä¡¹¤Î¥Ö¥í¥Ã¥¯¥Ñ¡¼¥Æ¥£¥·¥ç¥ó -.\" .SH ´ØÏ¢¹àÌÜ +/dev/sd[a\-h][0\-8]: 個々のブロックパーティション +.\" .SH 関連項目 .\" .BR scsi (4) diff --git a/release/man4/sk98lin.4 b/release/man4/sk98lin.4 index 0617e849..dc7a87ec 100644 --- a/release/man4/sk98lin.4 +++ b/release/man4/sk98lin.4 @@ -27,13 +27,13 @@ .\" Translated 2004-10-09, Yuichi SATO .\" Modified 2007-06-05, Akihiro MOTOKI , LDP v2.51 .\" -.\"WORD: autonegotiation ¼«Æ°ÀßÄê -.\"WORD: interrupt moderation ³ä¤ê¹þ¤ßÄ´Ää +.\"WORD: autonegotiation 自動設定 +.\"WORD: interrupt moderation 割り込み調停 .\" .TH SK98LIN 4 2007-11-25 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sk98lin \- Marvell/SysKonnect ¥®¥¬¥Ó¥Ã¥È¥¤¡¼¥µ¥Í¥Ã¥È¥É¥é¥¤¥Ð v6.21 -.SH ½ñ¼° +.SH 名前 +sk98lin \- Marvell/SysKonnect ギガビットイーサネットドライバ v6.21 +.SH 書式 .B insmod sk98lin.o .RB [ Speed_A=\c .IR i,j,... ] @@ -65,100 +65,100 @@ sk98lin \- Marvell/SysKonnect .IR i,j,... ] .RB [ RlmtMode=\c .IR i,j,... ] -.SH ÀâÌÀ +.SH 説明 .ad l .hy 0 .B sk98lin -¤Ï Marvell ¤È SysKonnect ¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥À¥×¥¿¥«¡¼¥É¤Î -¥®¥¬¥Ó¥Ã¥È¥¤¡¼¥µ¥Í¥Ã¥È¥É¥é¥¤¥Ð¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï SysKonnect SK-98xx/SK-95xx ¸ß´¹¤Î¥®¥¬¥Ó¥Ã¥È¥¤¡¼¥µ¥Í¥Ã¥È¥¢¥À¥×¥¿¤È -Yukon ¸ß´¹¤Î¥Á¥Ã¥×¥»¥Ã¥È¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ - -insmod ¤ò»È¤Ã¤Æ¥É¥é¥¤¥Ð¤ò¥í¡¼¥É¤¹¤ëºÝ¡¢ -¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥À¥×¥¿¥«¡¼¥É¤Î¥Ñ¥é¥á¡¼¥¿¤ò -¥³¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿¥³¥Þ¥ó¥É¤ÎÎó¤È¤·¤Æ»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -2 ¤Ä¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥À¥×¥¿¤¬¼è¤êÉÕ¤±¤é¤ì¤Æ¤¤¤ë»þ¤Ë¡¢ -Î㤨¤Ð¡¢1 ¤ÄÌܤΥ¢¥À¥×¥¿¤Î¥Ý¡¼¥È A ¤Î¼«Æ°¥Í¥´¥·¥¨¡¼¥·¥ç¥ó¤Ï ON ¤Ë¤¹¤ë¤¬¡¢ -2 ¤ÄÌܤΥ¢¥À¥×¥¿¤Î¥Ý¡¼¥È A ¤Ï OFF ¤Ë¤¹¤ë¾ì¹ç¤Ï¡¢ -°Ê²¼¤Î¤è¤¦¤ËÆþÎϤ¹¤ì¤Ð¤è¤¤: +は Marvell と SysKonnect のネットワークアダプタカードの +ギガビットイーサネットドライバである。 +これは SysKonnect SK-98xx/SK-95xx 互換のギガビットイーサネットアダプタと +Yukon 互換のチップセットをサポートしている。 + +insmod を使ってドライバをロードする際、 +ネットワークアダプタカードのパラメータを +コンマで区切られたコマンドの列として指定することができる。 +2 つのネットワークアダプタが取り付けられている時に、 +例えば、1 つ目のアダプタのポート A の自動ネゴシエーションは ON にするが、 +2 つ目のアダプタのポート A は OFF にする場合は、 +以下のように入力すればよい: insmod sk98lin.o AutoNeg_A=On,Off .B sk98lin -¤¬ 1 ¤Ä°Ê¾å¤Î¥¢¥À¥×¥¿¥«¡¼¥É¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤Æ¡¢ -¤«¤Ä +が 1 つ以上のアダプタカードに関連づけられていて、 +かつ .I /proc -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¥·¥¹¥Æ¥à¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¼è¤êÉÕ¤±¤é¤ì¤Æ¤¤¤ë¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥À¥×¥¿¥«¡¼¥É¤ÎÁ´¤Æ¤Î¥Ý¡¼¥È¤Ë¤Ä¤¤¤Æ¡¢ -(¥Ý¡¼¥Èñ°Ì¤Ë) ÀìÍѤÎÅý·×¥Õ¥¡¥¤¥ë¤¬¥Õ¥©¥ë¥À +ファイルシステムがシステムにマウントされている場合、 +取り付けられているネットワークアダプタカードの全てのポートについて、 +(ポート単位に) 専用の統計ファイルがフォルダ .I /proc/net/sk98lin -¤Ëºî¤é¤ì¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï +に作られる。 +これらのファイルは .I eth[x] -¤È¤¤¤¦Ì¾Á°¤Ç¤¢¤ê¡¢ +という名前であり、 .I x -¤Ï¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÎÈÖ¹æ¤Ç¤¢¤ë¡£ -¤³¤ÎÈÖ¹æ¤Ï¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¥Ý¡¼¥ÈËè¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¤â¤Î¤Ç¤¢¤ë¡£ +はインタフェースの番号である。 +この番号はシステムによってポート毎に割り当てられたものである。 -¥í¡¼¥É¤¬´°Î»¤¹¤ë¤È¡¢ +ロードが完了すると、 .BR ifconfig (8) -¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¡¢³Æ +コマンドを使って、各 .I eth[x] -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë´õ˾¤¹¤ë IP ¥¢¥É¥ì¥¹¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤Ë¤è¤ê¥¢¥À¥×¥¿¤¬¥¤¡¼¥µ¥Í¥Ã¥È¤ËÀܳ¤µ¤ì¡¢ -¥³¥ó¥½¡¼¥ë¤Ë¾õÂÖ¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤ë¡£ -¤³¤Î¥á¥Ã¥»¡¼¥¸¤Ç¤Ï¡¢ -"ethx: network connection up using port y" ¤Î¸å¤Ë -ÀßÄꤵ¤ì¤¿¤ê¸¡½Ð¤µ¤ì¤¿Àܳ¥Ñ¥é¥á¡¼¥¿¤¬É½¼¨¤µ¤ì¤ë¡£ +インタフェースに希望する IP アドレスを割り当てることができる。 +これによりアダプタがイーサネットに接続され、 +コンソールに状態メッセージが表示される。 +このメッセージでは、 +"ethx: network connection up using port y" の後に +設定されたり検出された接続パラメータが表示される。 .B sk98lin -¤Ï¥é¡¼¥¸¥Õ¥ì¡¼¥à (¥¸¥ã¥ó¥Ü¥Õ¥ì¡¼¥à¤È¤â¸Æ¤Ð¤ì¤ë) ¤â¥µ¥Ý¡¼¥È¤¹¤ë¡£ -¥¸¥ã¥ó¥Ü¥Õ¥ì¡¼¥à¤ò»È¤¦¤È¡¢ÂçÎ̤Υǡ¼¥¿¤òžÁ÷¤¹¤ëºÝ¤Ë¡¢ -¥¹¥ë¡¼¥×¥Ã¥È¤òÂçÉý¤Ë¸þ¾å¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥é¡¼¥¸¥Õ¥ì¡¼¥à¤òÍ­¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢ -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î MTU (maximum transfer unit, ºÇÂçžÁ÷ñ°Ì) ¥µ¥¤¥º¤ò -Â礭¤ÊÃͤËÀßÄꤹ¤ì¤Ð¤è¤¤¡£ -¥Ç¥Õ¥©¥ë¥È¤Î MTU ¥µ¥¤¥º¤Ï 1500 ¤Ç¤¢¤ê¡¢ -ºÇÂç¤Ç 9000 (¥Ð¥¤¥È) ¤Þ¤ÇÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -MTU ¥µ¥¤¥º¤òÀßÄꤹ¤ë¤Î¤Ï¡¢ -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë IP ¥¢¥É¥ì¥¹¤ò³ä¤êÅö¤Æ¤ë¤È¤­¤Ë¤â¤Ç¤­¤ë¤·¡¢¸å¤«¤é +はラージフレーム (ジャンボフレームとも呼ばれる) もサポートする。 +ジャンボフレームを使うと、大量のデータを転送する際に、 +スループットを大幅に向上させることができる。 +ラージフレームを有効にするには、 +インタフェースの MTU (maximum transfer unit, 最大転送単位) サイズを +大きな値に設定すればよい。 +デフォルトの MTU サイズは 1500 であり、 +最大で 9000 (バイト) まで設定することができる。 +MTU サイズを設定するのは、 +インタフェースに IP アドレスを割り当てるときにもできるし、後から .BR ifconfig (8) -¥³¥Þ¥ó¥É¤Ë mtu °ú¤­¿ô¤ò»ØÄꤹ¤ë¤³¤È¤ÇÀßÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -Î㤨¤Ð¡¢eth0 ¤Ë IP ¥¢¥É¥ì¥¹¤È¥é¡¼¥¸¥Õ¥ì¡¼¥à MTU ¥µ¥¤¥º¤ò -³ä¤êÅö¤Æ¤¿¤¤¾ì¹ç¡¢°Ê²¼¤Î 2 ¤Ä¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ì¤Ð¤è¤¤: +コマンドに mtu 引き数を指定することで設定することもできる。 +例えば、eth0 に IP アドレスとラージフレーム MTU サイズを +割り当てたい場合、以下の 2 つのコマンドを実行すればよい: ifconfig eth0 10.1.1.1 ifconfig eth0 mtu 9000 -¤³¤ì¤é¤Î 2 ¤Ä¤Î¥³¥Þ¥ó¥É¤Ï 1 ¤Ä¤Ë¤Þ¤È¤á¤ë¤³¤È¤â¤Ç¤­¤ë: +これらの 2 つのコマンドは 1 つにまとめることもできる: ifconfig eth0 10.1.1.1 mtu 9000 -¥é¡¼¥¸¥Õ¥ì¡¼¥à¤ò»ÈÍѤǤ­¤ë¤Î¤Ï¡¢¥Í¥Ã¥È¥ï¡¼¥¯´Ä¶­Á´ÂÎ¤Ç -¥é¡¼¥¸¥Õ¥ì¡¼¥à¤Î»ÈÍѤ¬Ç§¤á¤é¤ì¤Æ¤¤¤ë¾ì¹ç¤Î¤ß¤Ç¤¢¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¤Ä¤Þ¤ê¡¢¥¤¡¼¥µ¥Í¥Ã¥È¤Ç»È¤ï¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¥¹¥¤¥Ã¥Á¤Ç¤â -¥é¡¼¥¸¥Õ¥ì¡¼¥à¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¿¤¯¤Î¥¹¥¤¥Ã¥Á¤¬¥é¡¼¥¸¥Õ¥ì¡¼¥à¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤Ï¤¤¤ë¤¬¡¢ -ÀßÄê¤ò¹Ô¤¦É¬Íפ¬¤¢¤ë¡£ -¿¤¯¤Î¾ì¹ç¡¢¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¤Ç¤Ïɸ½à¥Õ¥ì¡¼¥à -(1500 ¥Ð¥¤¥È¤Î MTU ¥µ¥¤¥º) ¤À¤±¤·¤«¥µ¥Ý¡¼¥È¤·¤Ê¤¤¡£ -¥Í¥Ã¥È¥ï¡¼¥¯Æâ¤Î¥¹¥¤¥Ã¥Á¤Ë²Ã¤¨¡¢ -»ÈÍѤµ¤ì¤ëÁ´¤Æ¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥À¥×¥¿¤Ç¤â -¥¸¥ã¥ó¥Ü¥Õ¥ì¡¼¥à¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥¢¥À¥×¥¿¤¬¥é¡¼¥¸¥Õ¥ì¡¼¥à¤ò¼õ¤±¼è¤ë¤è¤¦¤ËÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -¥¢¥À¥×¥¿¤Ï¤½¤Î¥Õ¥ì¡¼¥à¤òñ½ã¤Ë¼Î¤Æ¤Æ¤·¤Þ¤¦¡£ - -ɸ½à¤Î¥¤¡¼¥µ¥Í¥Ã¥È¥Õ¥ì¡¼¥à¥µ¥¤¥º¤ËÌ᤹¤Î¤Ï¡¢ºÆ¤Ó +ラージフレームを使用できるのは、ネットワーク環境全体で +ラージフレームの使用が認められている場合のみである点に注意すること。 +つまり、イーサネットで使われている全てのスイッチでも +ラージフレームがサポートされていなければならない。 +多くのスイッチがラージフレームをサポートしてはいるが、 +設定を行う必要がある。 +多くの場合、デフォルトの設定では標準フレーム +(1500 バイトの MTU サイズ) だけしかサポートしない。 +ネットワーク内のスイッチに加え、 +使用される全てのネットワークアダプタでも +ジャンボフレームが有効になっていなければならない。 +アダプタがラージフレームを受け取るように設定されていない場合、 +アダプタはそのフレームを単純に捨ててしまう。 + +標準のイーサネットフレームサイズに戻すのは、再び .BR ifconfig (8) -¥³¥Þ¥ó¥É¤ò»È¤¨¤Ð¤è¤¤: +コマンドを使えばよい: ifconfig eth0 mtu 1500 -Linux ¤Î Marvell/SysKonnect ¥®¥¬¥Ó¥Ã¥È¥¤¡¼¥µ¥Í¥Ã¥È¥É¥é¥¤¥Ð¤Ï¡¢ -IEEE µ¬³Ê 802.1, 802.1q, 802.3ad ¤Ë½àµò¤¹¤ë -VLAN ¤È Link Aggregation ¤ËÂбþ¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Îµ¡Ç½¤Ï¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ë¤¢¤ë¥ª¡¼¥×¥ó¥½¡¼¥¹¥â¥¸¥å¡¼¥ë¤ò -¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¸å¤Ç¤Î¤ßÍøÍѲÄǽ¤Ç¤¢¤ë: +Linux の Marvell/SysKonnect ギガビットイーサネットドライバは、 +IEEE 規格 802.1, 802.1q, 802.3ad に準拠する +VLAN と Link Aggregation に対応している。 +これらの機能は、インターネットにあるオープンソースモジュールを +インストールした後でのみ利用可能である: .IR VLAN \c : http://www.candelatech.com/~greear/vlan.html @@ -168,233 +168,233 @@ VLAN : http://www.st.rim.or.jp/~yumo .br -Marvell/SysKonnect ¤Ï¡¢¤³¤ì¤é¤Î¥ª¡¼¥×¥ó¥½¡¼¥¹¥â¥¸¥å¡¼¥ë¤ËÂФ¹¤ë¥µ¥Ý¡¼¥È¤Ï -¹Ô¤Ã¤Æ¤ª¤é¤º¡¢¤³¤ì¤é¤ò»È¤Ã¤¿¾ì¹ç¤ËÀ¸¤¸¤ë¤¤¤«¤Ê¤ë¼ºÇÔ¤äÌäÂê¤Ë¤Ä¤¤¤Æ¤â -ÀÕǤ¤òÉé¤ï¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -.SS °ú¤­¿ô +Marvell/SysKonnect は、これらのオープンソースモジュールに対するサポートは +行っておらず、これらを使った場合に生じるいかなる失敗や問題についても +責任を負わない点に注意すること。 +.SS 引き数 .TP .BI Speed_A= i,j,... -¤³¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¥¢¥À¥×¥¿¥«¡¼¥É¤Î¥Ý¡¼¥È A ¤¬¥µ¥Ý¡¼¥È¤¹¤ë¥ê¥ó¥¯Â®ÅÙ¤ò -ÀßÄꤹ¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£¤³¤ì¤Ï Yukon copper ¥¢¥À¥×¥¿¤Ç¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£ -»ÈÍѲÄǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ê: +このパラメータはアダプタカードのポート A がサポートするリンク速度を +設定するのに使われる。これは Yukon copper アダプタでのみ有効である。 +使用可能な値は以下の通り: .IR 10 , .IR 100 , .IR 1000 , -.IR Auto ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +.IR Auto 。 +デフォルトは .I Auto -¤Ç¤¢¤ë¡£ -Ä̾¥ê¥ó¥¯Â®Å٤ϥê¥ó¥¯¤Î³ÎΩ»þ¤Ë 2 ¤Ä¤Î¥Ý¡¼¥È¤Î´Ö¤Ç¼«Æ°ÀßÄꤵ¤ì¤ë¡£ -¤³¤ì¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¡¢¥Ý¡¼¥È¤Ï¤³¤Î°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿ÀßÄê¤Ë¤Ê¤ë¡£ +である。 +通常、リンク速度はリンクの確立時に 2 つのポートの間で自動設定される。 +これに失敗した場合、ポートはこの引き数で指定された設定になる。 .TP .BI Speed_B= i,j,... -¤³¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¥¢¥À¥×¥¿¥«¡¼¥É¤Î¥Ý¡¼¥È B ¤¬¥µ¥Ý¡¼¥È¤¹¤ë¥ê¥ó¥¯Â®ÅÙ¤ò -ÀßÄꤹ¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£¤³¤ì¤Ï Yukon copper ¥¢¥À¥×¥¿¤Ç¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£ -»ÈÍѲÄǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ê: +このパラメータはアダプタカードのポート B がサポートするリンク速度を +設定するのに使われる。これは Yukon copper アダプタでのみ有効である。 +使用可能な値は以下の通り: .IR 10 , .IR 100 , .IR 1000 , -.IR Auto ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +.IR Auto 。 +デフォルトは .I Auto -¤Ç¤¢¤ë¡£ -Ä̾¥ê¥ó¥¯Â®Å٤ϥê¥ó¥¯¤Î³ÎΩ»þ¤Ë 2 ¤Ä¤Î¥Ý¡¼¥È¤Î´Ö¤Ç¼«Æ°ÀßÄꤵ¤ì¤ë¡£ -¤³¤ì¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¡¢¥Ý¡¼¥È¤Ï¤³¤Î°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿ÀßÄê¤Ë¤Ê¤ë¡£ +である。 +通常、リンク速度はリンクの確立時に 2 つのポートの間で自動設定される。 +これに失敗した場合、ポートはこの引き数で指定された設定になる。 .TP .BI AutoNeg_A= i,j,... -¥¢¥À¥×¥¿¥«¡¼¥É¤Î¥Ý¡¼¥È A ¤Î¼«Æ°ÀßÄê (autonegotiation) ¤Î»ÈÍѤò -Í­¸ú¤Þ¤¿¤Ï̵¸ú¤Ë¤¹¤ë¡£»ÈÍѲÄǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ê: +アダプタカードのポート A の自動設定 (autonegotiation) の使用を +有効または無効にする。使用可能な値は以下の通り: .IR On , .IR Off , -.IR Sense ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +.IR Sense 。 +デフォルトは .I On -¤Ç¤¢¤ë¡£ +である。 .I Sense -¥â¡¼¥É¤Ï¥ê¥ó¥¯¥Ñ¡¼¥È¥Ê¤¬¼«Æ°ÀßÄê¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤«Èݤ«¤ò -¼«Æ°Åª¤Ë¸¡ÃΤ¹¤ë¡£ +モードはリンクパートナが自動設定をサポートしているか否かを +自動的に検知する。 .TP .BI AutoNeg_B= i,j,... -¥¢¥À¥×¥¿¥«¡¼¥É¤Î¥Ý¡¼¥È B ¤Î¼«Æ°ÀßÄê (autonegotiation) ¤Î»ÈÍѤò -Í­¸ú¤Þ¤¿¤Ï̵¸ú¤Ë¤¹¤ë¡£»ÈÍѲÄǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ê: +アダプタカードのポート B の自動設定 (autonegotiation) の使用を +有効または無効にする。使用可能な値は以下の通り: .IR On , .IR Off , -.IR Sense ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +.IR Sense 。 +デフォルトは .I On -¤Ç¤¢¤ë¡£ +である。 .I Sense -¥â¡¼¥É¤Ï¥ê¥ó¥¯¥Ñ¡¼¥È¥Ê¤¬¼«Æ°ÀßÄê¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤«Èݤ«¤ò -¼«Æ°Åª¤Ë¸¡ÃΤ¹¤ë¡£ +モードはリンクパートナが自動設定をサポートしているか否かを +自動的に検知する。 .TP .BI DupCap_A= i,j,... -¤³¤Î°ú¤­¿ô¤Ï¥¢¥À¥×¥¿¥«¡¼¥É¤Î¥Ý¡¼¥È A ¤Ç»È¤¦Æó½ÅÄÌ¿® (duplex) ¥â¡¼¥É¤ò¼¨¤¹¡£ -»ÈÍѲÄǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ê: +この引き数はアダプタカードのポート A で使う二重通信 (duplex) モードを示す。 +使用可能な値は以下の通り: .IR Half , .IR Full , -.IR Both ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +.IR Both 。 +デフォルトは .I Both -¤Ç¤¢¤ë¡£ -¤³¤Î°ú¤­¿ô¤Ï¥Ý¡¼¥È A ¤Î AutoNeg_A ¤¬ +である。 +この引き数はポート A の AutoNeg_A が .I Sense -¤ËÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£ -AutoNeg_A ¤¬ +に設定されていない場合にのみ有効である。 +AutoNeg_A が .I On -¤Î¾ì¹ç¡¢DupCap_A ¤Î 3 ¤Ä¤ÎÃÍ +の場合、DupCap_A の 3 つの値 .RI ( Half , .IR Full , .IR Both ) -¤Î¤¦¤Á¤É¤ì¤Ç¤â»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -AutoNeg_A ¤¬ +のうちどれでも指定することができる。 +AutoNeg_A が .I Off -¤Î¾ì¹ç¡¢DupCap_A ¤ÎÃÍ +の場合、DupCap_A の値 .I Full -¤È +と .I Half -¤Î¤ß¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î DupCap_A °ú¤­¿ô¤Ï¡¢¥ê¥ó¥¯¥Ñ¡¼¥È¥Ê¤¬Á´¤Æ¤ÎÆó½ÅÄÌ¿®¤ÎÁȤ߹ç¤ï¤»¤ò -¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤ËÌò¤ËΩ¤Ä¡£ +のみを指定することができる。 +この DupCap_A 引き数は、リンクパートナが全ての二重通信の組み合わせを +サポートしていない場合に役に立つ。 .TP .BI DupCap_B= i,j,... -¤³¤Î°ú¤­¿ô¤Ï¥¢¥À¥×¥¿¥«¡¼¥É¤Î¥Ý¡¼¥È B ¤Ç»È¤¦Æó½ÅÄÌ¿®¥â¡¼¥É¤ò¼¨¤¹¡£ -»ÈÍѲÄǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ê: +この引き数はアダプタカードのポート B で使う二重通信モードを示す。 +使用可能な値は以下の通り: .IR Half , .IR Full , -.IR Both ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +.IR Both 。 +デフォルトは .I Both -¤Ç¤¢¤ë¡£ -¤³¤Î°ú¤­¿ô¤Ï¥Ý¡¼¥È B ¤Î AutoNeg_B ¤¬ +である。 +この引き数はポート B の AutoNeg_B が .I Sense -¤ËÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£ -AutoNeg_B ¤¬ +に設定されていない場合にのみ有効である。 +AutoNeg_B が .I On -¤Î¾ì¹ç¡¢DupCap_B ¤Î 3 ¤Ä¤ÎÃÍ +の場合、DupCap_B の 3 つの値 .RI ( Half , .IR Full , .IR Both ) -¤Î¤¦¤Á¤É¤ì¤Ç¤â»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -AutoNeg_B ¤¬ +のうちどれでも指定することができる。 +AutoNeg_B が .I Off -¤Î¾ì¹ç¡¢DupCap_B ¤ÎÃÍ +の場合、DupCap_B の値 .I Full -¤È +と .I Half -¤Î¤ß¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î DupCap_B °ú¤­¿ô¤Ï¡¢¥ê¥ó¥¯¥Ñ¡¼¥È¥Ê¤¬Á´¤Æ¤ÎÆó½ÅÄÌ¿®¤ÎÁȤ߹ç¤ï¤»¤ò -¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤ËÌò¤ËΩ¤Ä¡£ +のみを指定することができる。 +この DupCap_B 引き数は、リンクパートナが全ての二重通信の組み合わせを +サポートしていない場合に役に立つ。 .TP .BI FlowCtrl_A= i,j,... -¤³¤Î°ú¤­¿ô¤Ï¼«Æ°ÀßÄê»þ¤Ë¥Ý¡¼¥È¤¬Âиþ¤ËÅÁ¤¨¤ë -¥Õ¥í¡¼À©¸æµ¡Ç½¤òÀßÄꤹ¤ë¡£ -»ÈÍѲÄǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ê: +この引き数は自動設定時にポートが対向に伝える +フロー制御機能を設定する。 +使用可能な値は以下の通り: .IR Sym , .IR SymOrRem , .IR LocSend , -.IR None ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +.IR None 。 +デフォルトは .I SymOrRem -¤Ç¤¢¤ë¡£ -¤½¤ì¤¾¤ì¤Î¥â¡¼¥É¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤Ê°ÕÌ£¤¬¤¢¤ë: +である。 +それぞれのモードには以下のような意味がある: .br .I Sym = Symmetric - ¥ê¥ó¥¯¥Ñ¡¼¥È¥Ê¤ÎÁÐÊý¤¬ PAUSE ¥Õ¥ì¡¼¥à¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ + リンクパートナの双方が PAUSE フレームを送ることができる。 .br .I SymOrRem = SymmetricOrRemote - ¥ê¥ó¥¯¥Ñ¡¼¥È¥Ê¤ÎÁÐÊý¤Þ¤¿¤Ï¥ê¥â¡¼¥È¥Ñ¡¼¥È¥Ê¤Î¤ß¤¬ -PAUSE ¥Õ¥ì¡¼¥à¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ + リンクパートナの双方またはリモートパートナのみが +PAUSE フレームを送ることができる。 .br .I LocSend = LocalSend - ¥í¡¼¥«¥ë¥ê¥ó¥¯¥Ñ¡¼¥È¥Ê¤Î¤ß¤¬ PAUSE ¥Õ¥ì¡¼¥à¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ + ローカルリンクパートナのみが PAUSE フレームを送ることができる。 .br .I None = None - ¥ê¥ó¥¯¥Ñ¡¼¥È¥Ê¤Î¤É¤Á¤é¤â PAUSE ¥Õ¥ì¡¼¥à¤òÁ÷¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ + リンクパートナのどちらも PAUSE フレームを送ることはできない。 -¤³¤Î¥Ñ¥é¥á¡¼¥¿¤Ï AutoNeg_A ¤¬ +このパラメータは AutoNeg_A が .I Off -¤Î¾ì¹ç¤Ë¤Ï̵»ë¤µ¤ì¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +の場合には無視される点に注意すること。 .TP .BI FlowCtrl_B= i,j,... -¤³¤Î°ú¤­¿ô¤Ï¼«Æ°ÀßÄê»þ¤Ë¥Ý¡¼¥È¤¬Âиþ¤ËÅÁ¤¨¤ë -¥Õ¥í¡¼À©¸æµ¡Ç½¤òÀßÄꤹ¤ë¡£ -»ÈÍѲÄǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ê: +この引き数は自動設定時にポートが対向に伝える +フロー制御機能を設定する。 +使用可能な値は以下の通り: .IR Sym , .IR SymOrRem , .IR LocSend , -.IR None ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +.IR None 。 +デフォルトは .I SymOrRem -¤Ç¤¢¤ë¡£ -¤½¤ì¤¾¤ì¤Î¥â¡¼¥É¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤Ê°ÕÌ£¤¬¤¢¤ë: +である。 +それぞれのモードには以下のような意味がある: .I Sym = Symmetric - ¥ê¥ó¥¯¥Ñ¡¼¥È¥Ê¤ÎÁÐÊý¤¬ PAUSE ¥Õ¥ì¡¼¥à¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ + リンクパートナの双方が PAUSE フレームを送ることができる。 .br .I SymOrRem = SymmetricOrRemote - ¥ê¥ó¥¯¥Ñ¡¼¥È¥Ê¤ÎÁÐÊý¤Þ¤¿¤Ï¥ê¥â¡¼¥È¥Ñ¡¼¥È¥Ê¤Î¤ß¤¬ -PAUSE ¥Õ¥ì¡¼¥à¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ + リンクパートナの双方またはリモートパートナのみが +PAUSE フレームを送ることができる。 .br .I LocSend = LocalSend - ¥í¡¼¥«¥ë¥ê¥ó¥¯¥Ñ¡¼¥È¥Ê¤Î¤ß¤¬ PAUSE ¥Õ¥ì¡¼¥à¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ + ローカルリンクパートナのみが PAUSE フレームを送ることができる。 .br .I None = None - ¥ê¥ó¥¯¥Ñ¡¼¥È¥Ê¤Î¤É¤Á¤é¤â PAUSE ¥Õ¥ì¡¼¥à¤òÁ÷¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ + リンクパートナのどちらも PAUSE フレームを送ることはできない。 .br -¤³¤Î¥Ñ¥é¥á¡¼¥¿¤Ï AutoNeg_B ¤¬ +このパラメータは AutoNeg_B が .I Off -¤Î¾ì¹ç¤Ë¤Ï̵»ë¤µ¤ì¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +の場合には無視される点に注意すること。 .TP .BI Role_A= i,j,... -¤³¤Î°ú¤­¿ô¤Ï 1000Base-T ¥¢¥À¥×¥¿¥«¡¼¥É¤Ç¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£ -2 ¤Ä¤Î 1000Base-T ¥Ý¡¼¥È¤¬ÄÌ¿®¤¹¤ë¾ì¹ç¡¢ -ÊÒÊý¤¬ (¥¿¥¤¥ß¥ó¥°¾ðÊó¤òÄ󶡤¹¤ë) ¥Þ¥¹¥¿¤ÎÌò³ä¤ò¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -¤â¤¦ÊÒÊý¤¬¥¹¥ì¡¼¥Ö¤Ë¤Ê¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -»ÈÍѲÄǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ê: +この引き数は 1000Base-T アダプタカードでのみ有効である。 +2 つの 1000Base-T ポートが通信する場合、 +片方が (タイミング情報を提供する) マスタの役割をしなければならず、 +もう片方がスレーブにならなければならない。 +使用可能な値は以下の通り: .IR Auto , .IR Master , -.IR Slave ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +.IR Slave 。 +デフォルトは .I Auto -¤Ç¤¢¤ë¡£ -Ä̾¥Ý¡¼¥È¤ÎÌò³ä¤Ï 2 ¤Ä¤Î¥Ý¡¼¥È¤Ç¥ê¥ó¥¯¤ò³ÎΩ¤¹¤ë¤È¤­¤Ë¼«Æ°ÀßÄꤵ¤ì¤ë¡£ -¼«Æ°ÀßÄê¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¡¢ -¥¢¥À¥×¥¿¥«¡¼¥É¤Î¥Ý¡¼¥È A ¤Ï¤³¤Î°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿ÀßÄê¤Ë¤Ê¤ë¡£ +である。 +通常、ポートの役割は 2 つのポートでリンクを確立するときに自動設定される。 +自動設定に失敗した場合、 +アダプタカードのポート A はこの引き数で指定された設定になる。 .TP .BI Role_B= i,j,... -¤³¤Î°ú¤­¿ô¤Ï 1000Base-T ¥¢¥À¥×¥¿¥«¡¼¥É¤Ç¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£ -2 ¤Ä¤Î 1000Base-T ¥Ý¡¼¥È¤¬ÄÌ¿®¤¹¤ë¾ì¹ç¡¢ -ÊÒÊý¤¬ (¥¿¥¤¥ß¥ó¥°¾ðÊó¤òÄ󶡤¹¤ë) ¥Þ¥¹¥¿¤ÎÌò³ä¤ò¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -¤â¤¦ÊÒÊý¤¬¥¹¥ì¡¼¥Ö¤Ë¤Ê¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -»ÈÍѲÄǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ê: +この引き数は 1000Base-T アダプタカードでのみ有効である。 +2 つの 1000Base-T ポートが通信する場合、 +片方が (タイミング情報を提供する) マスタの役割をしなければならず、 +もう片方がスレーブにならなければならない。 +使用可能な値は以下の通り: .IR Auto , .IR Master , -.IR Slave ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +.IR Slave 。 +デフォルトは .I Auto -¤Ç¤¢¤ë¡£ -Ä̾¥Ý¡¼¥È¤ÎÌò³ä¤Ï 2 ¤Ä¤Î¥Ý¡¼¥È¤Ç¥ê¥ó¥¯¤ò³ÎΩ¤¹¤ë¤È¤­¤Ë¼«Æ°ÀßÄꤵ¤ì¤ë¡£ -¼«Æ°ÀßÄê¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¡¢ -¥¢¥À¥×¥¿¥«¡¼¥É¤Î¥Ý¡¼¥È B ¤Ï¤³¤Î°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿ÀßÄê¤Ë¤Ê¤ë¡£ +である。 +通常、ポートの役割は 2 つのポートでリンクを確立するときに自動設定される。 +自動設定に失敗した場合、 +アダプタカードのポート B はこの引き数で指定された設定になる。 .TP .BI ConType= i,j,... -¤³¤Î°ú¤­¿ô¤Ï¡¢¥Ý¡¼¥ÈËè¤Ë»ØÄꤹ¤ë¡¢Á´Éô¤Ç 5 ¸Ä¤Î°ú¤­¿ô¤ÎÁȤ߹ç¤ï¤»¤ò¡¢ -1 ¤Ä¤Î°ú¤­¿ô¤Ë¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤ì¤Ë¤è¤ê¥¢¥À¥×¥¿¥«¡¼¥É¤Î 2 ¤Ä¤Î¥Ý¡¼¥È¤ÎÀßÄê¤ò´Êά²½¤Ç¤­¤ë¡£ -¤³¤ÎÊÑ¿ô¤Î¤½¤ì¤¾¤ì¤ÎÃͤϡ¢ -¥Ý¡¼¥È°ú¤­¿ô¤ÎºÇ¤â°ÕÌ£¤Î¤¢¤ëÁȤ߹ç¤ï¤»¤òÈ¿±Ç¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -»ÈÍѲÄǽ¤ÊÃͤȤ½¤ì¤ËÂбþ¤¹¤ë¥Ý¡¼¥ÈËè¤Î¥Ñ¥é¥á¡¼¥¿¤ÎÁȤ߹ç¤ï¤»¤Ï¡¢ -°Ê²¼¤ÎÄ̤ê: +この引き数は、ポート毎に指定する、全部で 5 個の引き数の組み合わせを、 +1 つの引き数にしたものである。 +これによりアダプタカードの 2 つのポートの設定を簡略化できる。 +この変数のそれぞれの値は、 +ポート引き数の最も意味のある組み合わせを反映したものである。 +使用可能な値とそれに対応するポート毎のパラメータの組み合わせは、 +以下の通り: .nf ConType | DupCap AutoNeg FlowCtrl Role Speed @@ -410,189 +410,189 @@ ConType | DupCap AutoNeg FlowCtrl Role Speed \fI10HD\fP | Half Off None Auto 10 .fi -¤½¤Î¾¤Î¥Ý¡¼¥È°ú¤­¿ô¤ò +その他のポート引き数を .I ConType -°ú¤­¿ô¤ÈÁȤ߹ç¤ï¤»¤Æ»ØÄꤹ¤ë¤È¡¢¤½¤ì¤é¤ÎÀßÄê¤ò·ë¹ç¤·¤¿ÀßÄê¤È¤Ê¤ë¡£ -¤³¤ì¤Ï¡¢¥Ý¡¼¥ÈËè¤Î°ú¤­¿ô (Î㤨¤Ð +引き数と組み合わせて指定すると、それらの設定を結合した設定となる。 +これは、ポート毎の引き数 (例えば .IR Speed_A ) -¤ÎÊý¤¬ÁȤ߹ç¤ï¤»ÊÑ¿ô +の方が組み合わせ変数 .I ConType -¤è¤êÍ¥Àè½ç°Ì¤¬¹â¤¤¤¿¤á¤Ç¤¢¤ë¡£ +より優先順位が高いためである。 .TP .BI Moderation= i,j,... -³ä¤ê¹þ¤ßÄ´Ää (interrupt moderation) ¤Ï¡¢¥É¥é¥¤¥Ð¤¬½èÍý¤ò³«»Ï¤·¤Ê¤±¤ì¤Ð -¤Ê¤é¤Ê¤¤³ä¤ê¹þ¤ß²ó¿ô¤ÎºÇÂçÃͤòÀßÄꤹ¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ -¤Ä¤Þ¤ê¡¢¥É¥é¥¤¥Ð¤¬½èÍý¤ò¹Ô¤¦¤Þ¤Ç¡¢1²ó°Ê¾å¤Î³ä¤ê¹þ¤ß -(Á÷¿®¤Þ¤¿¤Ï¼õ¿®¥Ñ¥±¥Ã¥È¤¬½èÍý¤µ¤ì¤ë¤³¤È) ¤¬¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤ë¡£ -¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤¿³ä¤ê¹þ¤ß¤¬¤¤¤Ä½èÍý¤µ¤ì¤ë¤«¤Ï¡¢ -°Ê²¼¤ÇÀâÌÀ¤¹¤ë +割り込み調停 (interrupt moderation) は、ドライバが処理を開始しなければ +ならない割り込み回数の最大値を設定するために使用される。 +つまり、ドライバが処理を行うまで、1回以上の割り込み +(送信または受信パケットが処理されること) がキューに入れられる。 +キューに入れられた割り込みがいつ処理されるかは、 +以下で説明する .I IntsPerSec -°ú¤­¿ô¤Ç·èÄꤵ¤ì¤ë¡£ -»ÈÍѲÄǽ¤ÊÄ´Ää¥â¡¼¥É¤Ï°Ê²¼¤ÎÄ̤ê: +引き数で決定される。 +使用可能な調停モードは以下の通り: .IR None , .IR Static , -.IR Dynamic ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +.IR Dynamic 。 +デフォルトは .I None -¤Ç¤¢¤ë¡£ -¤½¤ì¤¾¤ì¤Î¥â¡¼¥É¤Ï°Ê²¼¤Î°ÕÌ£¤ò»ý¤Ä: +である。 +それぞれのモードは以下の意味を持つ: .I None -¥¢¥À¥×¥¿¥«¡¼¥É¤ËÂФ·¤Æ³ä¤ê¹þ¤ßÄ´Ää¤òŬÍѤ·¤Ê¤¤¡£ -¤è¤Ã¤ÆÁ÷¿®¤Þ¤¿¤Ï¼õ¿®³ä¤ê¹þ¤ß¤Ï¡¢ -¥¢¥À¥×¥¿¥«¡¼¥É¤Î³ä¤ê¹þ¤ßÀþ¤Ë¸½¤ì¤ë¤Èľ¤°¤Ë½èÍý¤µ¤ì¤ë¡£ +アダプタカードに対して割り込み調停を適用しない。 +よって送信または受信割り込みは、 +アダプタカードの割り込み線に現れると直ぐに処理される。 .br .I Static -¥¢¥À¥×¥¿¥«¡¼¥É¤ËÂФ·¤Æ³ä¤ê¹þ¤ßÄ´Ä䤬ŬÍѤµ¤ì¤ë¡£ -Á´¤Æ¤ÎÁ÷¿®¤Þ¤¿¤Ï¼õ¿®³ä¤ê¹þ¤ß¤Ï¡¢Ä´Ää´Ö³Ö¤¬´°Á´¤Ë½ª¤ï¤ë¤Þ¤Ç -¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤ë¡£ -¤³¤ÎÄ´Ää´Ö³Ö¤¬½ª¤ï¤ë¤È¡¢¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤¿Á´¤Æ¤Î³ä¤ê¹þ¤ß¤Ï¡¢ -1¸Ä¤ÎÂ礭¤Ê²ô¤È¤·¤ÆÃÙ±ä¤Ê¤¯½èÍý¤µ¤ì¤ë¡£ +アダプタカードに対して割り込み調停が適用される。 +全ての送信または受信割り込みは、調停間隔が完全に終わるまで +キューに入れられる。 +この調停間隔が終わると、キューに入れられた全ての割り込みは、 +1個の大きな塊として遅延なく処理される。 .I Static -¤È¤¤¤¦ÍѸì¤Ï¡¢¤¢¤ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë¸½ºß¤É¤ì¤À¤±¤Î -¥Í¥Ã¥È¥ï¡¼¥¯Éé²Ù¤¬¤«¤«¤Ã¤Æ¤¤¤ë¤«¤Ë´Ø¤ï¤é¤º¡¢ -³ä¤ê¹þ¤ßÄ´Ä䤬¾ï¤ËÍ­¸ú¤Ë¤Ê¤ë¤³¤È¤òɽ¤·¤Æ¤¤¤ë¡£ -¤µ¤é¤Ë¡¢Ä´Ää´Ö³Ö¤Î»þ´Ö¤Ï¸ÇÄê¤Ç¡¢¥É¥é¥¤¥Ð¤¬Æ°ºî¤·¤Æ¤¤¤ë´Ö¤ÏÊѲ½¤·¤Ê¤¤¡£ +という用語は、あるインタフェースに現在どれだけの +ネットワーク負荷がかかっているかに関わらず、 +割り込み調停が常に有効になることを表している。 +さらに、調停間隔の時間は固定で、ドライバが動作している間は変化しない。 .br .I Dynamic -¥·¥¹¥Æ¥à¤ÎÉé²Ù¤Ë±þ¤¸¤Æ¡¢¥¢¥À¥×¥¿¥«¡¼¥É¤ËÂФ·¤Æ³ä¤ê¹þ¤ßÄ´Ä䤬ŬÍѤµ¤ì¤ë¡£ -¥É¥é¥¤¥Ð¤¬¥·¥¹¥Æ¥à¤ÎÉé²Ù¤¬¹â¤¹¤®¤ë¤È¸¡½Ð¤·¤¿¾ì¹ç¡¢ -³ä¤ê¹þ¤ßÄ´Ää¤òÍ­¸ú¤Ë¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢ -²á¾ê¤Ê¥Í¥Ã¥È¥ï¡¼¥¯Éé²Ù¤«¤é¥·¥¹¥Æ¥à¤òÊݸ¤è¤¦¤È¤¹¤ë¡£ -\(em¤½¤Î¸å¤Ë\(emCPU ÍøÍÑΨ¤¬ºÆ¤Ó²¼¤¬¤Ã¤¿¾ì¹ç -(¤Þ¤¿¤Ï¥Í¥Ã¥È¥ï¡¼¥¯Éé²Ù¤¬¶Ë¤ï¤º¤«¤Ë¤Ê¤Ã¤¿¾ì¹ç)¡¢ -³ä¤ê¹þ¤ßÄ´Ää¤Ï¼«Æ°Åª¤Ë̵¸ú¤Ë¤µ¤ì¤ë¡£ - -¥É¥é¥¤¥Ð¤¬°·¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î¤¦¤Á -¥Í¥Ã¥È¥ï¡¼¥¯Éé²Ù¤¬¹â¤¤¤â¤Î¤¬ 1 ¤Ä°Ê¾å¤¢¤ê¡¢ -\(em¤½¤Î·ë²Ì\(emCPU ÍøÍÑΨ¤¬¹â¤¯¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -³ä¤ê¹þ¤ßÄ´Ää¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£ -¥Í¥Ã¥È¥ï¡¼¥¯Éé²Ù¤¬¹â¤¤¾õ¶·¤ÇÄ´Ä䤬ŬÍѤµ¤ì¤ë¤È¡¢ -ÃÙ¤¤¥³¥ó¥Ô¥å¡¼¥¿¤Ç¤Ï CPU Éé²Ù¤¬ 20-30% ºï¸º¤µ¤ì¤ë¤À¤í¤¦¡£ - -³ä¤ê¹þ¤ßÄ´Ää¤ò»È¤¦¤³¤È¤Î·çÅÀ¤È¤·¤Æ¡¢ -±ýÉüÃÙ±ä»þ´Ö (round-trip-time, RTT) ¤ÎÁý²Ã¤¬¤¢¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¤³¤ì¤Ï¡¢³ä¤ê¹þ¤ß¤¬¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¡¢¤Þ¤È¤á¤Æ½èÍý¤µ¤ì¤ë¤¿¤á¤Ç¤¢¤ë¡£ +システムの負荷に応じて、アダプタカードに対して割り込み調停が適用される。 +ドライバがシステムの負荷が高すぎると検出した場合、 +割り込み調停を有効にすることにより、 +過剰なネットワーク負荷からシステムを保護しようとする。 +\(emその後に\(emCPU 利用率が再び下がった場合 +(またはネットワーク負荷が極わずかになった場合)、 +割り込み調停は自動的に無効にされる。 + +ドライバが扱わなければならないインタフェースのうち +ネットワーク負荷が高いものが 1 つ以上あり、 +\(emその結果\(emCPU 利用率が高くなっている場合、 +割り込み調停を使うべきである。 +ネットワーク負荷が高い状況で調停が適用されると、 +遅いコンピュータでは CPU 負荷が 20-30% 削減されるだろう。 + +割り込み調停を使うことの欠点として、 +往復遅延時間 (round-trip-time, RTT) の増加がある点に注意すること。 +これは、割り込みがキューに入れられ、まとめて処理されるためである。 .TP .BI IntsPerSec= i,j,... -¤³¤Î°ú¤­¿ô¤Ï³ä¤ê¹þ¤ßÄ´Ää¤Î´Ö³Ö¤ò·èÄꤹ¤ë¡£ -ÀÅŪ (static) ³ä¤ê¹þ¤ßÄ´Ä䤬»È¤ï¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ +この引き数は割り込み調停の間隔を決定する。 +静的 (static) 割り込み調停が使われている場合、 .I IntsPerSec -°ú¤­¿ô¤ÎÃͤ¬ 2000 ¤Ç¤¢¤ì¤Ð¡¢³ä¤ê¹þ¤ßÄ´Ää¤Î´Ö³Ö¤Ï 500 ¥ß¥êÉäˤʤ롣 -¤³¤Î°ú¤­¿ô¤ËÀßÄê²Äǽ¤ÊÃÍ¤Ï 30...40000 ¤ÎÈϰϤǡ¢ -¤³¤ì¤Ï 1 ÉÃËè¤Î³ä¤ê¹þ¤ß²ó¿ô¤Ç¤¢¤ë¡£ -¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 2000 ¤Ç¤¢¤ë¡£ - -¤³¤Î°ú¤­¿ô¤ÏÀÅŪ (static) ¤Þ¤¿¤ÏưŪ (dynamic) ³ä¤ê¹þ¤ßÄ´Ä䤬 -Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¤­¤Ë¤Î¤ß»ÈÍѤµ¤ì¤ë¡£ -¤³¤Î°ú¤­¿ô¤Ï³ä¤ê¹þ¤ßÄ´Ä䤬ŬÍѤµ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï̵»ë¤µ¤ì¤ë¡£ - -Ä´Ää´Ö³Ö¤Î´ü´Ö¤ÏÃí°Õ¤·¤ÆÁª¤Ö¤³¤È¡£ -°ì¸«¤·¤¿¤È¤³¤í¤Ç¤Ï¡¢¤È¤Æ¤âŤ¤´ü´Ö (Î㤨¤Ð 1 ÉÃ´Ö¤Ë 100 ²ó¤À¤±¤Î³ä¤ê¹þ¤ß) ¤ò -Áª¤Ö¤³¤È¤Ë°ÕÌ£¤¬¤¢¤ë¤è¤¦¤Ë¸«¤¨¤ë¤«¤â¤·¤ì¤Ê¤¤¤¬¡¢¤½¤¦¤¹¤ë¤È -¥Ñ¥±¥Ã¥È½èÍý¤ÎÃٱ䤬·ã¤·¤¯Áý²Ã¤¹¤ë¡£ -°ìÊý¤Ç¡¢¤È¤Æ¤âû¤¤Ä´Ää»þ´Ö¤òÁª¤Ö¤È¡¢³ä¤ê¹þ¤ßÄ´Ää¤ò»È¤¦°ÕÌ£¤¬¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¡£ +引き数の値が 2000 であれば、割り込み調停の間隔は 500 ミリ秒になる。 +この引き数に設定可能な値は 30...40000 の範囲で、 +これは 1 秒毎の割り込み回数である。 +デフォルト値は 2000 である。 + +この引き数は静的 (static) または動的 (dynamic) 割り込み調停が +有効になっているときにのみ使用される。 +この引き数は割り込み調停が適用されていない場合には無視される。 + +調停間隔の期間は注意して選ぶこと。 +一見したところでは、とても長い期間 (例えば 1 秒間に 100 回だけの割り込み) を +選ぶことに意味があるように見えるかもしれないが、そうすると +パケット処理の遅延が激しく増加する。 +一方で、とても短い調停時間を選ぶと、割り込み調停を使う意味がなくなってしまう。 .TP .BI PrefPort= i,j,... -¤³¤Î°ú¤­¿ô¤Ï (2 ¥Ý¡¼¥È¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥À¥×¥¿¤Ç) -Í¥Àè (preferred) ¥Ý¡¼¥È¤ò A ¤Þ¤¿¤Ï B ¤Î¤É¤Á¤é¤Ë¤¹¤ë¤«¤ò»ØÄꤹ¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£ -Í¥Àè¥Ý¡¼¥È¤È¤Ï¡¢A ¤È B ¤ÎξÊý¤Î¥Ý¡¼¥È¤¬´°Á´¤Ëµ¡Ç½¤·¤Æ¤¤¤ë¤È¸¡ÃΤµ¤ì¤¿¾ì¹ç¤Ë -»ÈÍѤµ¤ì¤ë¥Ý¡¼¥È¤Ç¤¢¤ë¡£ -»ÈÍѲÄǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ê: +この引き数は (2 ポートのネットワークアダプタで) +優先 (preferred) ポートを A または B のどちらにするかを指定するのに使われる。 +優先ポートとは、A と B の両方のポートが完全に機能していると検知された場合に +使用されるポートである。 +使用可能な値は以下の通り: .I A -¤Þ¤¿¤Ï -.IR B ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +または +.IR B 。 +デフォルトは .I A -¤Ç¤¢¤ë¡£ +である。 .TP .BI RlmtMode= i,j,... -RLMT ¤Ï¥Ý¡¼¥È¤Î¾õÂÖ¤ò´Æ»ë¤¹¤ë¡£ -¥¢¥¯¥Æ¥£¥Ö¤Ê¥Ý¡¼¥È¤Î¥ê¥ó¥¯¤¬Íî¤Á¤¿¾ì¹ç¡¢ -RLMT ¤Ï¨»þ¤ËÂÔµ¡¤·¤Æ¤¤¤ë¥ê¥ó¥¯¤ËÀÚ¤êÂؤ¨¤ë¡£ -¾¯¤Ê¤¯¤È¤â 1 ¤Ä¤Î¡ÖʪÍýŪ¡×¥ê¥ó¥¯¤¬µ¯Æ°¤¹¤ë¤Þ¤Ç¤Ï¡¢²¾ÁÛ¥ê¥ó¥¯¤¬°Ý»ý¤µ¤ì¤ë¡£ -¤³¤Î°ú¤­¿ô¤Ï RLMT ¤¬Î¾Êý¤Î¥Ý¡¼¥È¤ò¤É¤Î¤è¤¦¤Ë´Æ»ë¤¹¤ë¤«¤ò·è¤á¤ë¡£ -»ÈÍѲÄǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ê: +RLMT はポートの状態を監視する。 +アクティブなポートのリンクが落ちた場合、 +RLMT は即時に待機しているリンクに切り替える。 +少なくとも 1 つの「物理的」リンクが起動するまでは、仮想リンクが維持される。 +この引き数は RLMT が両方のポートをどのように監視するかを決める。 +使用可能な値は以下の通り: .IR CheckLinkState , .IR CheckLocalPort , .IR CheckSeg , -.IR DualNet ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +.IR DualNet 。 +デフォルトは .I CheckLinkState -¤Ç¤¢¤ë¡£ -³Æ¥â¡¼¥É¤Ï°Ê²¼¤Î¤è¤¦¤Ê°ÕÌ£¤ò»ý¤Ä¡£ +である。 +各モードは以下のような意味を持つ。 .I CheckLinkState -¥ê¥ó¥¯¾õÂ֤ΥÁ¥§¥Ã¥¯¤Î¤ß: -RLMT ¤Ï¡¢³Æ¥Ý¡¼¥È¤Ë¤Ä¤¤¤Æ¥¢¥À¥×¥¿¥Ï¡¼¥É¥¦¥§¥¢¤¬Êó¹ð¤¹¤ë¥ê¥ó¥¯¾õÂÖ¤ò»È¤¤¡¢ -¤½¤Î¥Ý¡¼¥È¤¬Á´¤Æ¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥È¥é¥Õ¥£¥Ã¥¯¤òÁ÷¼õ¿®¤¹¤ë¤Î¤Ë»ÈÍѲÄǽ¤«¤ò -·èÄꤹ¤ë¡£ +リンク状態のチェックのみ: +RLMT は、各ポートについてアダプタハードウェアが報告するリンク状態を使い、 +そのポートが全てのネットワークトラフィックを送受信するのに使用可能かを +決定する。 .br .I CheckLocalPort -¤³¤Î¥â¡¼¥É¤Ç¤Ï¡¢RLMT ¤Ï¥¢¥À¥×¥¿¥«¡¼¥É¤Î 2 ¤Ä¤Î¥Ý¡¼¥È¤Î´Ö¤Ç -Äê´üŪ¤Ë¥Ñ¥±¥Ã¥È¤ò¸ò´¹¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢ -2 ¤Ä¤Î¥Ý¡¼¥È¤Î´Ö¤Î¥Í¥Ã¥È¥ï¡¼¥¯·ÐÏ©¤ò´Æ»ë¤¹¤ë¡£ -¤³¤Î¥â¡¼¥É¤Ç¤Ï 2 ¤Ä¤Î¥Ý¡¼¥È¤¬¸ß¤¤¤Ë¡Ö¸«¤¨¤ë¡×¤è¤¦¤Ê -¥Í¥Ã¥È¥ï¡¼¥¯ÀßÄ꤬ɬÍפǤ¢¤ë -(¤Ä¤Þ¤ê¡¢¥Ý¡¼¥È´Ö¤Ë¥ë¡¼¥¿¤¬¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤)¡£ +このモードでは、RLMT はアダプタカードの 2 つのポートの間で +定期的にパケットを交換することにより、 +2 つのポートの間のネットワーク経路を監視する。 +このモードでは 2 つのポートが互いに「見える」ような +ネットワーク設定が必要である +(つまり、ポート間にルータがあってはならない)。 .br .I CheckSeg -¥í¡¼¥«¥ë¥Ý¡¼¥È¤È¥»¥°¥á¥ó¥È¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ -¤³¤Î¥â¡¼¥É¤Ï CheckLocalPort ¥â¡¼¥É¤ÈƱ¤¸µ¡Ç½¤òÄ󶡤·¡¢ -¹¹¤Ë¥Ý¡¼¥È´Ö¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥»¥°¥á¥ó¥È¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ -¤è¤Ã¤Æ¡¢¤³¤Î¥â¡¼¥É¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¾å¤Ë -¥¹¥Ñ¥Ë¥ó¥°¥Ä¥ê¡¼¥×¥í¥È¥³¥ë (Spanning Tree protocol) ¤ò -»È¤¦¤è¤¦¤ËÀßÄꤵ¤ì¤¿¥®¥¬¥Ó¥Ã¥È¥¤¡¼¥µ¥Í¥Ã¥È¥¹¥¤¥Ã¥Á¤¬ -ÀßÃÖ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Î¤ß»ÈÍѤǤ­¤ë¡£ +ローカルポートとセグメントをチェックする。 +このモードは CheckLocalPort モードと同じ機能を提供し、 +更にポート間のネットワークセグメントをチェックする。 +よって、このモードはネットワーク上に +スパニングツリープロトコル (Spanning Tree protocol) を +使うように設定されたギガビットイーサネットスイッチが +設置されている場合にのみ使用できる。 .br .I DualNet -¤³¤Î¥â¡¼¥É¤Ç¤Ï¡¢¥Ý¡¼¥È A ¤È B ¤¬ÊÌ¡¹¤Î¥Ç¥Ð¥¤¥¹¤È¤·¤Æ»ÈÍѤµ¤ì¤ë¡£ -2 ¥Ý¡¼¥È¤Î¥¢¥À¥×¥¿¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢¥Ý¡¼¥È A ¤ò +このモードでは、ポート A と B が別々のデバイスとして使用される。 +2 ポートのアダプタを持っている場合、ポート A を .I eth[x] -¤Ë¡¢¥Ý¡¼¥È B ¤ò +に、ポート B を .I eth[x+1] -¤ËÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -2 ¤Ä¤Î¥Ý¡¼¥È¤ÏÊÌ¡¹¤Î IP ¥¢¥É¥ì¥¹¤òÉÕ¤±¤ÆÆÈΩ¤Ë»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -Í¥Àè¥Ý¡¼¥È¤ÎÀßÄê¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£ -RLMT ¤Ï̵¸ú¤Ë¤µ¤ì¤ë¡£ +に設定することができる。 +2 つのポートは別々の IP アドレスを付けて独立に使用することができる。 +優先ポートの設定は使用されない。 +RLMT は無効にされる。 -RLMT ¥â¡¼¥É +RLMT モード .I CheckLocalPort -¤È +と .I CheckLinkState -¤Ï¡¢1 ¤Ä¤Î¥¢¥À¥×¥¿¾å¤Î¥Ý¡¼¥È´Ö¤Ç¥Í¥Ã¥È¥ï¡¼¥¯·ÐÏ©¤¬¤¢¤ë¤è¤¦¤ÊÀßÄê¤Ç -Æ°ºî¤¹¤ë¤è¤¦¤ËÀ߷פµ¤ì¤Æ¤¤¤ë¡£ -¤µ¤é¤Ë¡¢¤³¤Î¥â¡¼¥É¤Ï¥¢¥À¥×¥¿Æ±»Î¤¬Ä¾·ë (back-to-back) ¤Ç -Àܳ¤µ¤ì¤Æ¤¤¤ë¾õÂÖ¤ÇÆ°ºî¤¹¤ë¤è¤¦¤Ë¤ÏÀ߷פµ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ¥Õ¥¡¥¤¥ë +は、1 つのアダプタ上のポート間でネットワーク経路があるような設定で +動作するように設計されている。 +さらに、このモードはアダプタ同士が直結 (back-to-back) で +接続されている状態で動作するようには設計されていない。 +.SH ファイル .TP .I /proc/net/sk98lin/eth[x] .br -¥¢¥À¥×¥¿¥«¡¼¥É¤ÎÆÃÄê¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÎÅý·×¥Õ¥¡¥¤¥ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¥¢¥À¥×¥¿¥«¡¼¥É¤Î°ìÈÌŪ¤Ê¾ðÊó¤È¡¢ -Á´¤Æ¤ÎÁ÷¿®¡¦¼õ¿®¥«¥¦¥ó¥¿¤Î¾ÜºÙ¤Ê°ìÍ÷¤¬´Þ¤Þ¤ì¤ë¡£ +アダプタカードの特定のインタフェースの統計ファイル。 +このファイルには、アダプタカードの一般的な情報と、 +全ての送信・受信カウンタの詳細な一覧が含まれる。 .TP .I /usr/src/linux/Documentation/networking/sk98lin.txt .br .I sk98lin -¥É¥é¥¤¥Ð¤Î +ドライバの .I README -¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ -¤³¤ì¤Ë¤Ï¾ÜºÙ¤Ê¥¤¥ó¥¹¥È¡¼¥ë HOWTO ¤¬´Þ¤Þ¤ì¤Æ¤ª¤ê¡¢ -¥É¥é¥¤¥Ð¤ÎÁ´¤Æ¤Î°ú¤­¿ô¤¬µ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -¤Þ¤¿°ìÈÌŪ¤ÊÌäÂê¤È¤½¤Î²ò·èË¡¤Ë¤Ä¤¤¤Æ¤â½ñ¤«¤ì¤Æ¤¤¤ë¡£ -.SH ¥Ð¥° -¥Ð¥°¤Ï linux@syskonnect.de ¤ËÊó¹ð¤·¤Æ¤Û¤·¤¤¡£ -.\" .SH Ãø¼Ô +ファイルである。 +これには詳細なインストール HOWTO が含まれており、 +ドライバの全ての引き数が記述されている。 +また一般的な問題とその解決法についても書かれている。 +.SH バグ +バグは linux@syskonnect.de に報告してほしい。 +.\" .SH 著者 .\" Ralph Roesler \(em rroesler@syskonnect.de .\" .br .\" Mirko Lindner \(em mlindner@syskonnect.de -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR insmod (8), .BR ifconfig (8), .BR modprobe (8) diff --git a/release/man4/st.4 b/release/man4/st.4 index 1b916e36..6dac3a77 100644 --- a/release/man4/st.4 +++ b/release/man4/st.4 @@ -1,5 +1,5 @@ .\" Copyright 1995 Robert K. Nichols (Robert.K.Nichols@att.com) -.\" Copyright 1999-2005 Kai M¥Æ¡¢kisara (Kai.Makisara@kolumbus.fi) +.\" Copyright 1999-2005 Kai Mテ、kisara (Kai.Makisara@kolumbus.fi) .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are @@ -29,9 +29,9 @@ .\" Updated Sun Apr 24 2005 by NAKANO Takeo .sp @@ -40,48 +40,48 @@ st \- SCSI .BI "int ioctl(int " fd ", MTIOCGET, (struct mtget *)" mt_status ); .BI "int ioctl(int " fd ", MTIOCPOS, (struct mtpos *)" mt_pos ); .fi -.SH ÀâÌÀ +.SH 説明 .B st -¥É¥é¥¤¥Ð¡¼¤ÏÍÍ¡¹¤Ê SCSI ¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤òÄ󶡤¹¤ë¡£ -¸½ºß¤Ç¤Ï¡¢¥É¥é¥¤¥Ð¡¼¤Ï¸¡½Ð¤µ¤ì¤¿Á´¤Æ¤Î -\(lq¥·¡¼¥±¥ó¥·¥ã¥ë¥¢¥¯¥»¥¹ (sequential-access) \(rq ¥¿¥¤¥×¤Î¥Ç¥Ð¥¤¥¹¤Ø¤Î -À©¸æ¤ò¹Ô¤¦¡£ +ドライバーは様々な SCSI テープデバイスのインターフェイスを提供する。 +現在では、ドライバーは検出された全ての +\(lqシーケンシャルアクセス (sequential-access) \(rq タイプのデバイスへの +制御を行う。 .B st -¥É¥é¥¤¥Ð¡¼¤Ï¥á¥¸¥ã¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ 9 ¤òÍѤ¤¤ë¡£ +ドライバーはメジャーデバイス番号 9 を用いる。 .PP -¤½¤ì¤¾¤ì¤Î¥Ç¥Ð¥¤¥¹¤Ï 8 ¤Ä¤Î¥Þ¥¤¥Ê¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤ò»È¤¦¡£ -¥Þ¥¤¥Ê¡¼ÈÖ¹æ¤ÎÄã°Ì¦¤Î 5 ¥Ó¥Ã¥È¤Ï¡¢¸¡½Ð¤µ¤ì¤¿½ç¤Ë³ä¤êÅö¤Æ¤é¤ì¤ë¡£ -¥«¡¼¥Í¥ë 2.6 ¤Ç¤Ï¡¢ -Äã°Ì¦ 8 ¥Ó¥Ã¥È¤è¤ê¤â¾å°Ì¤Ë¤¢¤ë¥Ó¥Ã¥È·²¤¬¤³¤Î 5 ¥Ó¥Ã¥È¤ËÏ¢·ë (concatenate) -¤µ¤ì¡¢¥Æ¡¼¥ÖÈÖ¹æ¤È¤Ê¤ë¡£ -¥Þ¥¤¥Ê¡¼ÈÖ¹æ¤Ï¡¢¤½¤ì¤¾¤ì 4 ¤Ä¤Î¿ô»ú¤«¤é¤Ê¤ëÆó¤Ä¤Î¥»¥Ã¥È¤Ë -¥°¥ë¡¼¥×ʬ¤±¤µ¤ì¤ë¡£ -´ðËÜ (¼«Æ°´¬¤­Ìᤷ) ¥Ç¥Ð¥¤¥¹ÈÖ¹æ -.IR n ¡¢ -¤ª¤è¤Ó \(lqÈ󴬤­Ìᤷ (no-rewind) \(rq ¥Ç¥Ð¥¤¥¹ÈÖ¹æ +それぞれのデバイスは 8 つのマイナーデバイス番号を使う。 +マイナー番号の低位側の 5 ビットは、検出された順に割り当てられる。 +カーネル 2.6 では、 +低位側 8 ビットよりも上位にあるビット群がこの 5 ビットに連結 (concatenate) +され、テーブ番号となる。 +マイナー番号は、それぞれ 4 つの数字からなる二つのセットに +グループ分けされる。 +基本 (自動巻き戻し) デバイス番号 +.IR n 、 +および \(lq非巻き戻し (no-rewind) \(rq デバイス番号 .RI ( n " + 128)." -¤Ç¤¢¤ë¡£ -´ðËܥǥХ¤¥¹ÈÖ¹æ¤òÍѤ¤¤Æ¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Ç¥Ð¥¤¥¹¤Ë¤Ï¡¢ -¥¯¥í¡¼¥º¤¹¤ë»þ¤Ë +である。 +基本デバイス番号を用いてオープンされたデバイスには、 +クローズする時に .B REWIND -¥³¥Þ¥ó¥É¤¬Á÷¤é¤ì¤ë¡£ -\(lqÈ󴬤­Ìᤷ\(rq ¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤òÍѤ¤¤Æ¥ª¡¼¥×¥ó¤µ¤ì¤¿¾ì¹ç¤Ï -\s-1REWIND\s+1 ¥³¥Þ¥ó¥É¤ÏÁ÷¤é¤ì¤Ê¤¤ -(¼«Æ°´¬¤­Ìᤷ¥Ç¥Ð¥¤¥¹¤ò¥Æ¡¼¥×¤Î°ÌÃÖ·è¤á¤Ë (Î㤨¤Ð mt ¤Ç) ÍѤ¤¤Æ¤â¡¢ -˾¤à·ë²Ì¤ÏÆÀ¤é¤ì¤Ê¤¤¡£¥Æ¡¼¥×¤Ï mt ¥³¥Þ¥ó¥É¤Î¸å¤Ç´¬¤­Ìᤵ¤ì¡¢ -¼¡¤Î¥³¥Þ¥ó¥É¤Ï¥Æ¡¼¥×¤ÎÀèƬ¤«¤é»Ï¤Þ¤Ã¤Æ¤·¤Þ¤¦)¡£ +コマンドが送られる。 +\(lq非巻き戻し\(rq デバイス番号を用いてオープンされた場合は +\s-1REWIND\s+1 コマンドは送られない +(自動巻き戻しデバイスをテープの位置決めに (例えば mt で) 用いても、 +望む結果は得られない。テープは mt コマンドの後で巻き戻され、 +次のコマンドはテープの先頭から始まってしまう)。 .PP -¤½¤ì¤¾¤ì¤Î¥°¥ë¡¼¥×¤Ç¡¢°Û¤Ê¤Ã¤¿ÆÃÀ­ (¥Ö¥í¥Ã¥¯¥µ¥¤¥º¡¦°µ½Ì¡¦ -Ì©Å٤ʤÉ) ¤Î¥Ç¥Ð¥¤¥¹¤òÄêµÁ¤¹¤ë¤¿¤á¤Ë 4 ¤Ä¤Î¥Þ¥¤¥Ê¡¼Èֹ椬ÍøÍѤǤ­¤ë¡£ -¥·¥¹¥Æ¥à¤¬µ¯Æ°¤·¤¿¤È¤­¤Ë¤Ï¡¢ºÇ½é¤Î¥Ç¥Ð¥¤¥¹¤À¤±¤¬»È¤¨¤ë¡£ -¾¤Î 3 ¤Ä¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÆÃÀ­¤¬ÄêµÁ¤µ¤ì¤Æ½é¤á¤Æ»È¤¨¤ë¤è¤¦¤Ë¤Ê¤ë (¸å½Ò)¡£ -(¥³¥ó¥Ñ¥¤¥ë»þ¤ÎÄê¿ô¤òÊѹ¹¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¥Æ¡¼¥×¥É¥é¥¤¥Ö¤ÎºÇÂç¿ô¤È¡¢ -¤½¤ì¤¾¤ì¤Î¥É¥é¥¤¥Ö¤Ë³ä¤êÅö¤Æ¤é¤ì¤ë¥Þ¥¤¥Ê¡¼ÈÖ¹æ¤Î¸Ä¿ô¤È¤òÄ´À°¤Ç¤­¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Î³ä¤êÅö¤Æ¤Ç¤Ï 32 Âæ¤Þ¤Ç¤Î¥Æ¡¼¥×¥É¥é¥¤¥Ö¤òÀ©¸æ¤Ç¤­¤ë¡£ -Î㤨¤Ð 64 Âæ¤Þ¤Ç¤Î¥Æ¡¼¥×¥É¥é¥¤¥Ö¤ò¡¢°Û¤Ê¤Ã¤¿¥ª¥×¥·¥ç¥ó¤ò»ý¤Ä -Æó¤Ä¤Î¥Þ¥¤¥Ê¡¼ÈÖ¹æ¤ÇÀ©¸æ¤¹¤ë¤è¤¦¤Ë¤â¤Ç¤­¤ë¡£) +それぞれのグループで、異なった特性 (ブロックサイズ・圧縮・ +密度など) のデバイスを定義するために 4 つのマイナー番号が利用できる。 +システムが起動したときには、最初のデバイスだけが使える。 +他の 3 つはデフォルトの特性が定義されて初めて使えるようになる (後述)。 +(コンパイル時の定数を変更することによって、テープドライブの最大数と、 +それぞれのドライブに割り当てられるマイナー番号の個数とを調整できる。 +デフォルトの割り当てでは 32 台までのテープドライブを制御できる。 +例えば 64 台までのテープドライブを、異なったオプションを持つ +二つのマイナー番号で制御するようにもできる。) .PP -¥Ç¥Ð¥¤¥¹¤ÏÉáÄ̼¡¤Î¤è¤¦¤Ëºî¤é¤ì¤ë: +デバイスは普通次のように作られる: .in +4n .nf @@ -96,141 +96,141 @@ mknod \-m 666 /dev/nst0a c 9 224 .fi .in .PP -¤³¤ì¤é¤Ë¤ÏÂбþ¤¹¤ë¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Ï¸ºß¤·¤Ê¤¤¡£ +これらには対応するブロックデバイスは存在しない。 .PP -¥É¥é¥¤¥Ð¤ÏÆâÉô¥Ð¥Ã¥Õ¥¡¤ò»È¤¤¡¢¤½¤ÎÂ礭¤µ¤Ï¾¯¤Ê¤¯¤È¤â¥Æ¡¼¥×¤Î -1 ¥Ö¥í¥Ã¥¯¤òÊÝ»ý¤Ç¤­¤ë¤è¤¦¤Ë¼è¤é¤ì¤ë¡£ 2.1.121 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -¥Ð¥Ã¥Õ¥¡¤ÏϢ³¤¹¤ë°ì¤Ä¤Î¥Ö¥í¥Ã¥¯¤È¤·¤Æ³ä¤êÅö¤Æ¤é¤ì¤ë¡£¤³¤ÎÊýË¡¤À¤È¡¢ -¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ÎºÇÂçÃͤϥ«¡¼¥Í¥ë¤Î³ä¤êÅö¤Æ²Äǽ¤ÊϢ³¥á¥â¥ê¥Ö¥í¥Ã¥¯¤Ë -À©¸Â¤µ¤ì¤ë¡£¤³¤ÎÀ©¸Â¤Ï 32 ¥Ó¥Ã¥È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï 128 kB¡¢ -64 ¥Ó¥Ã¥È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï 256 kB ¤Ç¤¢¤ë¡£¤³¤ì°Ê¹ß¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -¥É¥é¥¤¥Ð¤ÏɬÍפ˱þ¤¸¤Æ¤¤¤¯¤Ä¤«¤Ë¤ï¤«¤ì¤¿¥Ð¥Ã¥Õ¥¡¤ò³ä¤êÅö¤Æ¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï 16 ¸Ä¤Þ¤Ç¤ÎÉôʬ¤Ëʬ³ä¤Ç¤­¤ë¡£¤¹¤Ê¤ï¤Á -¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ÎºÇÂçÃͤÏÈó¾ï¤ËÂ礭¤¤ (128 kB ¤Î¥Ö¥í¥Ã¥¯ 16 ¸Ä¤Î -³ä¤êÅö¤Æ¤ËÀ®¸ù¤¹¤ì¤Ð 2 MB ¤È¤Ê¤ë)¡£ +ドライバは内部バッファを使い、その大きさは少なくともテープの +1 ブロックを保持できるように取られる。 2.1.121 以前のカーネルでは、 +バッファは連続する一つのブロックとして割り当てられる。この方法だと、 +ブロックサイズの最大値はカーネルの割り当て可能な連続メモリブロックに +制限される。この制限は 32 ビットアーキテクチャでは 128 kB、 +64 ビットアーキテクチャでは 256 kB である。これ以降のカーネルでは、 +ドライバは必要に応じていくつかにわかれたバッファを割り当てる。 +デフォルトでは 16 個までの部分に分割できる。すなわち +ブロックサイズの最大値は非常に大きい (128 kB のブロック 16 個の +割り当てに成功すれば 2 MB となる)。 .PP -¥É¥é¥¤¥Ð¤ÎÆâÉô¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤Ï¥³¥ó¥Ñ¥¤¥ë»þ¤ÎÄê¿ô¤ÇÄêµÁ¤µ¤ì¤ë¡£ -¤³¤ì¤Ï¥«¡¼¥Í¥ë¤Îµ¯Æ°»þ¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤Æ¾å½ñ¤­²Äǽ¤Ç¤¢¤ë¡£ -¤µ¤é¤Ë¥É¥é¥¤¥Ð¤Ï¼Â¹Ô»þ¤Ë¤â¡¢É¬Íפ˱þ¤¸¤Æ¤è¤êÂ礭¤Ê°ì»þ¥Ð¥Ã¥Õ¥¡¤ò -³ä¤êÅö¤Æ¤è¤¦¤È¤¹¤ë¡£¤·¤«¤·¼Â¹Ô»þ¤ËÂ礭¤ÊϢ³¥á¥â¥ê¥Ö¥í¥Ã¥¯¤ò -³ä¤êÅö¤Æ¤è¤¦¤È¤¹¤ë¤È¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ë¤Î¤Ç¡¢ 2.1.121 -°ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢Æ°Åª¤Ê¥Ð¥Ã¥Õ¥¡³ä¤êÅö¤Æ¤Ï¤¢¤Þ¤ê¤¢¤Æ¤Ë¤·¤Ê¤¤¤Û¤¦¤¬Îɤ¤ -(¤³¤ì¤Ï kerneld ¤ä kmod ¤Ë¤è¤ë¥É¥é¥¤¥Ð¤Î¥Ç¥Þ¥ó¥É¥í¡¼¥É¤Ë´Ø¤·¤Æ¤âÅö¤Æ¤Ï¤Þ¤ë)¡£ +ドライバの内部バッファのサイズはコンパイル時の定数で定義される。 +これはカーネルの起動時オプションによって上書き可能である。 +さらにドライバは実行時にも、必要に応じてより大きな一時バッファを +割り当てようとする。しかし実行時に大きな連続メモリブロックを +割り当てようとすると失敗することがあるので、 2.1.121 +以前のカーネルでは、動的なバッファ割り当てはあまりあてにしないほうが良い +(これは kerneld や kmod によるドライバのデマンドロードに関しても当てはまる)。 .PP -¥É¥é¥¤¥Ð¤Ï¥É¥é¥¤¥Ö¤Î¥á¡¼¥«¤ä¥â¥Ç¥ë¤òÆÃÄꤷ¤Æ¥µ¥Ý¡¼¥È¤¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -¥·¥¹¥Æ¥à¤¬µ¯Æ°¤¹¤ë¤È¡¢¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¤Î¥ª¥×¥·¥ç¥ó¤¬¥É¥é¥¤¥Ö¤Î -¥Õ¥¡¡¼¥à¥¦¥§¥¢¤Ë¤è¤Ã¤ÆÄêµÁ¤µ¤ì¤ë¡£Î㤨¤Ð¡¢ -¥É¥é¥¤¥Ö¤Î¥Õ¥¡¡¼¥à¥¦¥§¥¢¤¬¸ÇÄêĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤òÁªÂò¤¹¤ì¤Ð¡¢ -¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¤Ï¸ÇÄêĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤ò»È¤¦¤³¤È¤Ë¤Ê¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +ドライバはドライブのメーカやモデルを特定してサポートするわけではない。 +システムが起動すると、テープデバイスのオプションがドライブの +ファームウェアによって定義される。例えば、 +ドライブのファームウェアが固定長ブロックモードを選択すれば、 +テープデバイスは固定長ブロックモードを使うことになる。このオプションは .BR ioctl (2) -¥³¡¼¥ë¤òÌÀ¼¨Åª¤Ë»È¤¨¤ÐÊѹ¹¤Ç¤­¡¢ -¤½¤ÎÊѹ¹¤Ï¥Ç¥Ð¥¤¥¹¤¬¥¯¥í¡¼¥º¤µ¤ì¤ÆºÆ¤Ó¥ª¡¼¥×¥ó¤µ¤ì¤¿¤È¤­¤â»Ä¤ë¡£ -.\"nakano: µÕ¤«¡© -¥ª¥×¥·¥ç¥ó¤ÎÀßÄê¤Ï¡¢ -¼«Æ°´¬¤­Ìᤷ¥Ç¥Ð¥¤¥¹¤ÈÈ󴬤­Ìᤷ¥Ç¥Ð¥¤¥¹¤ÎξÊý¤Ë±Æ¶Á¤¹¤ë¡£ +コールを明示的に使えば変更でき、 +その変更はデバイスがクローズされて再びオープンされたときも残る。 +.\"nakano: 逆か? +オプションの設定は、 +自動巻き戻しデバイスと非巻き戻しデバイスの両方に影響する。 .PP -4 ¤Ä¤Î¥µ¥Ö¥°¥ë¡¼¥×¤½¤ì¤¾¤ì¤Î¥Ç¥Ð¥¤¥¹¤ËÂФ·¤Æ°Û¤Ê¤ë¥ª¥×¥·¥ç¥ó¤ò -Í¿¤¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Ð¥¤¥¹¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¤È¤­¤Ë -¸úÎϤòȯ´ø¤¹¤ë¡£Î㤨¤Ð¡¢¥·¥¹¥Æ¥à´ÉÍý¼Ô¤Ï¤¢¤ë¥Ç¥Ð¥¤¥¹¤ò -ŬÅö¤Ê¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤Î¸ÇÄêĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤Ç½ñ¤­¹þ¤à¤è¤¦¤ËÄêµÁ¤·¡¢ -Ê̤ΥǥХ¤¥¹¤ò²ÄÊÑĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤Ç½ñ¤­¹þ¤à¤è¤¦¤Ë¤Ç¤­¤ë (¥É¥é¥¤¥Ö¤¬ -ξÊý¤Î¥â¡¼¥É¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ì¤Ð)¡£ +4 つのサブグループそれぞれのデバイスに対して異なるオプションを +与えることができる。オプションはデバイスがオープンされたときに +効力を発揮する。例えば、システム管理者はあるデバイスを +適当なブロックサイズの固定長ブロックモードで書き込むように定義し、 +別のデバイスを可変長ブロックモードで書き込むようにできる (ドライブが +両方のモードをサポートしていれば)。 .PP -¤³¤Î¥É¥é¥¤¥Ð¤Ï¡¢ -.B ¥Æ¡¼¥×¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó -¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë (¥É¥é¥¤¥Ö¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç)¡£ -(¥Æ¡¼¥×¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï¥Ç¥£¥¹¥¯¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤È¤Ï¤Ê¤ó¤Î´Ø·¸¤â¤Ê¤¤¡£ -¥Ñ¡¼¥Æ¥£¥·¥ç¥ó²½¤µ¤ì¤¿¥Æ¡¼¥×¤Ï¡¢°ì¤Ä¤Î¥á¥Ç¥£¥¢¤ËÊ£¿ô¤ÎÏÀÍý¥Æ¡¼¥×¤¬ -¸ºß¤¹¤ë¤«¤Î¤è¤¦¤Ë¸«¤¨¤ë¡£) -¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¥µ¥Ý¡¼¥È¤Ï +このドライバは、 +.B テープのパーティション +をサポートしている (ドライブがサポートしている場合)。 +(テープのパーティションはディスクパーティションとはなんの関係もない。 +パーティション化されたテープは、一つのメディアに複数の論理テープが +存在するかのように見える。) +パーティションのサポートは .BR ioctl (2) -¤Ë¤è¤Ã¤ÆÍ­¸ú¤Ë¤Ç¤­¤ë¡£ -¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬Êѹ¹¤µ¤ì¤ë¤È¡¢ -¥Æ¡¼¥×¤Î°ÌÃ֤Ϥ½¤ì¤¾¤ì¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥óÆâÉô¤ÇÊݸ¤µ¤ì¤ë¡£ -¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎÁªÂò¤Ï +によって有効にできる。 +パーティションが変更されると、 +テープの位置はそれぞれのパーティション内部で保存される。 +パーティションの選択は .BR ioctl (2) -¤Ç¹Ô¤¦¡£ -¤½¤ì°Ê¹ß¤Î¥Æ¡¼¥×Áàºî¤ÎÂоݤϡ¢¤½¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¤Ê¤ë¡£ -¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎÀÚ¤êÂؤ¨¤Ï¡¢¼¡¤Î¥Æ¡¼¥×Áàºî¤ÈƱ»þ¤Ë¹Ô¤ï¤ì¡¢ -ÉÔɬÍפʥơ¼¥×°ÜÆ°¤ò¤·¤Ê¤¯¤Æ¤¹¤à¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -°ì¤Ä¤Î¥Æ¡¼¥×¤Ë¤ª¤±¤ë¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎºÇÂç¿ô¤Ï -¥³¥ó¥Ñ¥¤¥ë»þ¤ÎÄê¿ô¤Ë¤è¤Ã¤ÆÄêµÁ¤µ¤ì¤ë (Ä̾ï¤Ï 4)¡£ -¥É¥é¥¤¥Ð¤Ë¤Ï¡¢¥Æ¡¼¥×¤Î 1 ¤Ä¤Þ¤¿¤Ï -2 ¤Ä¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤­¤ë¤è¤¦¤Ê +で行う。 +それ以降のテープ操作の対象は、そのパーティションになる。 +パーティションの切り替えは、次のテープ操作と同時に行われ、 +不必要なテープ移動をしなくてすむようになっている。 +一つのテープにおけるパーティションの最大数は +コンパイル時の定数によって定義される (通常は 4)。 +ドライバには、テープの 1 つまたは +2 つのパーティションをフォーマットできるような .BR ioctl (2) -¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¡£ +が用意されている。 .PP -Ä̾¥·¥¹¥Æ¥à¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¤ËÂФ¹¤ë¥Ï¡¼¥É¥ê¥ó¥¯ -¤Þ¤¿¤Ï¥½¥Õ¥È¥ê¥ó¥¯¤È¤·¤Æ¡¢¥Ç¥Ð¥¤¥¹ +通常、システムのデフォルトのテープデバイスに対するハードリンク +またはソフトリンクとして、デバイス .I /dev/tape -¤¬ºîÀ®¤µ¤ì¤ë¡£ +が作成される。 .PP -¥«¡¼¥Í¥ë 2.6.2 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¥É¥é¥¤¥Ð¤Ï sysfs ¥Ç¥£¥ì¥¯¥È¥ê +カーネル 2.6.2 以降では、このドライバは sysfs ディレクトリ .I /sys/class/scsi_tape -¤Ë¡¢¥¢¥¿¥Ã¥Á¤·¤¿¥Ç¥Ð¥¤¥¹¤È¤½¤Î¥Ç¥Ð¥¤¥¹¤Ë³äÅö¤Æ¤¿¥Ñ¥é¥á¡¼¥¿¤ò¥¨¥¯¥¹¥Ý¡¼¥È¤¹¤ë¡£ -.SS ¥Ç¡¼¥¿Å¾Á÷ -¤³¤Î¥É¥é¥¤¥Ð¤Ï¸ÇÄêĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤È²ÄÊÑĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤Î -ξÊý¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë (¥É¥é¥¤¥Ö¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ì¤Ð)¡£ -¸ÇÄêĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤Ç¤Ï¡¢¥É¥é¥¤¥Ö¤Ï·è¤Þ¤Ã¤¿¥µ¥¤¥º¤Î¥Ö¥í¥Ã¥¯¤ò -(Ê£¿ô¸Ä) ½ñ¤­¹þ¤à¡£¤³¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤Ï -write ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥Ð¥¤¥È¿ô¤Ë¤è¤é¤Ê¤¤¡£ -²ÄÊÑĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤Ç¤Ï¡¢ -write ¥³¡¼¥ë¤´¤È¤Ë°ì¤Ä¤Î¥Æ¡¼¥×¥Ö¥í¥Ã¥¯¤Ë½ñ¤­¹þ¤ß¤¬¹Ô¤ï¤ì¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¥Ð¥¤¥È¿ô¤¬Âбþ¤¹¤ë¥Æ¡¼¥×¥Ö¥í¥Ã¥¯¤Î¥µ¥¤¥º¤ò·è¤á¤ë¡£ -¥Æ¡¼¥×¾å¤Î¥Ö¥í¥Ã¥¯¤Ë¤Ï¡¢½ñ¤­¹þ¤ß¥â¡¼¥É¤Î¾ðÊó¤Ï°ìÀÚ´Þ¤Þ¤ì¤Ê¤¤¡£ -Æɤ߹þ¤ß¤Î¤È¤­¤Ë½ÅÍפʤ³¤È¤Ï¡¢¥Æ¡¼¥×¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ò¼õ¤±Æþ¤ì¤ë -¥³¥Þ¥ó¥É¤ò»È¤¦¤«¤É¤¦¤«¤À¤±¤Ç¤¢¤ë¡£ +に、アタッチしたデバイスとそのデバイスに割当てたパラメータをエクスポートする。 +.SS データ転送 +このドライバは固定長ブロックモードと可変長ブロックモードの +両方をサポートしている (ドライブがサポートしていれば)。 +固定長ブロックモードでは、ドライブは決まったサイズのブロックを +(複数個) 書き込む。このブロックサイズは +write システムコールのバイト数によらない。 +可変長ブロックモードでは、 +write コールごとに一つのテープブロックに書き込みが行われる。 +したがってバイト数が対応するテープブロックのサイズを決める。 +テープ上のブロックには、書き込みモードの情報は一切含まれない。 +読み込みのときに重要なことは、テープのブロックサイズを受け入れる +コマンドを使うかどうかだけである。 .PP -²ÄÊÑĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤Ç¤Ï¡¢Æɤ߹þ¤ß¥Ð¥¤¥È¿ô¤Ï¥Æ¡¼¥×¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤È -ɬ¤º¤·¤â°ìÃפ·¤Æ¤¤¤Ê¤¯¤Æ¤âÎɤ¤¡£¥Ð¥¤¥È¿ô¤¬¥Æ¡¼¥×¤Î¼¡¤Î¥Ö¥í¥Ã¥¯¤è¤ê¤â -Â礭¤±¤ì¤Ð¡¢¥É¥é¥¤¥Ð¤Ï¤½¤Î¥Ç¡¼¥¿¤òÊÖ¤·¡¢´Ø¿ô¤Ï¼ÂºÝ¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤òÊÖ¤¹¡£ -¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤¬¥Ð¥¤¥È¿ô¤è¤ê¤âÂ礭¤±¤ì¤Ð¡¢Í׵ᤵ¤ì¤¿Ê¬¤Î¥Ç¡¼¥¿¤¬ -¥Ö¥í¥Ã¥¯¤ÎÀèƬ¤«¤éÆɤ߹þ¤Þ¤ì¤ÆÊÖ¤µ¤ì¡¢¥Ö¥í¥Ã¥¯¤Î»Ä¤ê¤ÏÇË´þ¤µ¤ì¤ë¡£ +可変長ブロックモードでは、読み込みバイト数はテープのブロックサイズと +必ずしも一致していなくても良い。バイト数がテープの次のブロックよりも +大きければ、ドライバはそのデータを返し、関数は実際のブロックサイズを返す。 +ブロックサイズがバイト数よりも大きければ、要求された分のデータが +ブロックの先頭から読み込まれて返され、ブロックの残りは破棄される。 .PP -¸ÇÄêĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤Ç¤Ï¡¢¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ì¤Ð -Æɤ߹þ¤ß¥Ð¥¤¥È¿ô¤ÏǤ°Õ¤ÎÂ礭¤µ¤Ç¤è¤¤¡£¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤¬Ìµ¸ú¤Î¾ì¹ç¤Ï¡¢ -¥Æ¡¼¥×¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ÎÀ°¿ôÇܤǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ 2.1.121 °ÊÁ°¤Î -¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤¬Í­¸ú¤Ê¾ì¹ç¤Ë¤Ï -Ǥ°Õ¤Î¥Ð¥¤¥È¿ô¤Î½ñ¤­¹þ¤ß¤¬¤Ç¤­¤ë¡£¤½¤Î¾¤Î¾ì¹ç¤¹¤Ù¤Æ -(2.1.121 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¥Ð¥Ã¥Õ¥¡¤¬Ìµ¸ú¤Ê¾ì¹ç¤È¡¢¿·¤·¤¤¥«¡¼¥Í¥ë¤Î¾ì¹ç) -¤Ç¤Ï¡¢½ñ¤­¹þ¤ß¥Ð¥¤¥È¿ô¤Ï¥Æ¡¼¥×¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ÎÀ°¿ôÇܤǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +固定長ブロックモードでは、バッファリングが有効になっていれば +読み込みバイト数は任意の大きさでよい。バッファリングが無効の場合は、 +テープのブロックサイズの整数倍でなければならない。 2.1.121 以前の +カーネルでは、バッファリングが有効な場合には +任意のバイト数の書き込みができる。その他の場合すべて +(2.1.121 以前のカーネルでバッファが無効な場合と、新しいカーネルの場合) +では、書き込みバイト数はテープブロックサイズの整数倍でなければならない。 .PP -2.6 ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¤³¤Î¥É¥é¥¤¥Ð¤Ï¥æ¡¼¥¶¥Ð¥Ã¥Õ¥¡¤È¥Ç¥Ð¥¤¥¹´Ö¤Ç¡¢ -¥Ç¡¼¥¿¤ÎľÀÜžÁ÷ (direct transfer) ¤ò»î¤ß¤ë¡£ -¤³¤ì¤¬ÉÔ²Äǽ¤Ê¾ì¹ç¤Ï¡¢¥É¥é¥¤¥Ð¤ÎÆâÉô¥Ð¥Ã¥Õ¥¡¤òÍѤ¤¤ë¡£ -ľÀÜžÁ÷¤¬¤Ç¤­¤Ê¤¤Íýͳ¤È¤·¤Æ¤Ï¡¢¥æ¡¼¥¶¥Ð¥Ã¥Õ¥¡¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤¬Å¬ÀڤǤʤ¤ -(¥Ç¥Õ¥©¥ë¥È¤Ï 512 ¥Ð¥¤¥È¤À¤¬ HBA ¥É¥é¥¤¥Ð¤Ë¤è¤Ã¤ÆÊѹ¹¤µ¤ì¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ë)¡¢ -¥æ¡¼¥¶¥Ð¥Ã¥Õ¥¡¤Î¥Ú¡¼¥¸¤Î¤É¤ì¤«¤¬ SCSI ¥¢¥À¥×¥¿¤«¤é¸«¤¨¤Ê¤¤¡¢ -¤Ê¤É¤¬¹Í¤¨¤é¤ì¤ë¡£ +2.6 カーネルでは、このドライバはユーザバッファとデバイス間で、 +データの直接転送 (direct transfer) を試みる。 +これが不可能な場合は、ドライバの内部バッファを用いる。 +直接転送ができない理由としては、ユーザバッファのアラインメントが適切でない +(デフォルトは 512 バイトだが HBA ドライバによって変更されている可能性がある)、 +ユーザバッファのページのどれかが SCSI アダプタから見えない、 +などが考えられる。 .PP -¥Æ¡¼¥×¤ò¥¯¥í¡¼¥º¤¹¤ëľÁ°¤Î¥Æ¡¼¥×ÁàºîÌ¿Î᤬½ñ¤­¹þ¤ß¤Ç¤¢¤ì¤Ð¡¢ -¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤¬¼«Æ°Åª¤Ë¥Æ¡¼¥×¤Ø½ñ¤­¹þ¤Þ¤ì¤ë¡£ +テープをクローズする直前のテープ操作命令が書き込みであれば、 +ファイルマークが自動的にテープへ書き込まれる。 .PP -Æɤ߹þ¤ß»þ¤Ë¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤Ë½Ð²ñ¤¦¤È¡¢°Ê²¼¤¬¼Â¹Ô¤µ¤ì¤ë¡£ -¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤¬¸«ÉÕ¤«¤Ã¤¿¤È¤­¤Ë¥Ð¥Ã¥Õ¥¡¤Ë¥Ç¡¼¥¿¤¬»Ä¤Ã¤Æ¤¤¤ë¤È¡¢ -¥Ð¥Ã¥Õ¥¡¤Î¥Ç¡¼¥¿¤¬ÊÖ¤µ¤ì¤ë¡£¼¡¤ÎÆɤ߹þ¤ßÁàºî¤Ï 0 ¥Ð¥¤¥È¤òÊÖ¤¹¡£ -¤½¤Î¼¡¤ÎÆɤ߹þ¤ß¤Ï¼¡¤Î¥Õ¥¡¥¤¥ë¤«¤é¤Î¥Ç¡¼¥¿¤òÊÖ¤¹¡£ -µ­Ï¿¥Ç¡¼¥¿¤ÎËöÈø¤Ï¡¢Æɤ߹þ¤ßÁàºî¤¬Æó²ó³¤±¤Æ -0 ¥Ð¥¤¥È¤òÊÖ¤·¤ÆÍè¤ë¤«¤¿¤Á¤ÇÄÌÃΤµ¤ì¤ë¡£»°²óÌܤÎÆɤ߹þ¤ß¤Ï¥¨¥é¡¼¤òÊÖ¤¹¡£ +読み込み時にファイルマークに出会うと、以下が実行される。 +ファイルマークが見付かったときにバッファにデータが残っていると、 +バッファのデータが返される。次の読み込み操作は 0 バイトを返す。 +その次の読み込みは次のファイルからのデータを返す。 +記録データの末尾は、読み込み操作が二回続けて +0 バイトを返して来るかたちで通知される。三回目の読み込みはエラーを返す。 .SS ioctl -¥É¥é¥¤¥Ð¤Ï 3 ¤Ä¤Î +ドライバは 3 つの .BR ioctl (2) -Í×µá¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ +要求をサポートしている。 .B st -¥É¥é¥¤¥Ð¤Ë¤è¤Ã¤Æǧ¼±¤µ¤ì¤Ê¤«¤Ã¤¿Í×µá¤Ï +ドライバによって認識されなかった要求は .B SCSI -¥É¥é¥¤¥Ð¤Ë¤ï¤¿¤µ¤ì¤ë¡£ -°Ê²¼¤ÎÄêµÁ¤Ï +ドライバにわたされる。 +以下の定義は .I /usr/include/linux/mtio.h -¤Ë¤è¤ë¡£ -.SS "MTIOCTOP \(em ¥Æ¡¼¥×Áàºî¤Î¼Â¹Ô" +による。 +.SS "MTIOCTOP \(em テープ操作の実行" .PP -¤³¤ÎÍ×µá¤Ï +この要求は .I "(struct mtop *)" -·¿¤Î°ú¿ô¤ò¤È¤ë¡£Á´¤Æ¤Î¥É¥é¥¤¥Ö¤¬Á´¤Æ¤ÎÁàºî¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -¥É¥é¥¤¥Ö¤¬Áàºî¤òµñÈݤ¹¤ë¤È¡¢¥É¥é¥¤¥Ð¤Ï +型の引数をとる。全てのドライブが全ての操作をサポートしているわけではない。 +ドライブが操作を拒否すると、ドライバは .B EIO -¥¨¥é¡¼¤òÊÖ¤¹¡£ +エラーを返す。 .PP .in +4n .nf @@ -242,353 +242,353 @@ struct mtop { .fi .in .PP -Ä̾ï¤Î¥Æ¡¼¥×ÍøÍѤΤ¿¤á¤Î¼§µ¤¥Æ¡¼¥×Áàºî: +通常のテープ利用のための磁気テープ操作: .TP 14 .B MTBSF .I mt_count -¸Ä¤Î¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯ (filemark) ʬ¤Î¸åÊý¥¹¥Ú¡¼¥¹ (backward space)¡£ +個のファイルマーク (filemark) 分の後方スペース (backward space)。 .TP .B MTBSFM .I mt_count -¸Ä¤Î¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯Ê¬¤Î¸åÊý¥¹¥Ú¡¼¥¹¡£ -¥Æ¡¼¥×¤Î°ÌÃÖ¤òºÇ¸å¤Î¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤Î EOT ¦¤ËÊѹ¹¤¹¤ë¡£ +個のファイルマーク分の後方スペース。 +テープの位置を最後のファイルマークの EOT 側に変更する。 .TP .B MTBSR .I mt_count -¸Ä¤Î¥ì¥³¡¼¥É (¥Æ¡¼¥×¥Ö¥í¥Ã¥¯) ʬ¤Î¸åÊý¥¹¥Ú¡¼¥¹¡£ +個のレコード (テープブロック) 分の後方スペース。 .TP .B MTBSS .I mt_count -¸Ä¤Î¥»¥Ã¥È¥Þ¡¼¥¯Ê¬¤Î¸åÊý¥¹¥Ú¡¼¥¹¡£ +個のセットマーク分の後方スペース。 .TP .B MTCOMPRESSION .I mt_count -¤¬ 0 °Ê³°¤Ê¤é¡¢¥É¥é¥¤¥Ö¤Î¥Ç¡¼¥¿°µ½Ì¤òÍ­¸ú¤Ë¤¹¤ë¡£ -0 ¤Ê¤é°µ½Ì¤ò̵¸ú¤Ë¤¹¤ë¡£¤³¤Î¥³¥Þ¥ó¥É¤Ï MODE ¥Ú¡¼¥¸ 15 ¤òÍѤ¤¤ë¡£ -¤³¤ì¤Ï¤Û¤È¤ó¤É¤Î DAT ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +が 0 以外なら、ドライブのデータ圧縮を有効にする。 +0 なら圧縮を無効にする。このコマンドは MODE ページ 15 を用いる。 +これはほとんどの DAT でサポートされている。 .TP .B MTEOM -(¥Õ¥¡¥¤¥ë¤òÄɲ乤뤿¤á¤Ë) ¥á¥Ç¥£¥¢¤Îµ­Ï¿Éôʬ¤ÎºÇ¸å¤Þ¤Ç¿Ê¤á¤ë¡£ +(ファイルを追加するために) メディアの記録部分の最後まで進める。 .TP .B MTERASE -¥Æ¡¼¥×¤ÎÆâÍƤò¾Ãµî¤¹¤ë¡£ -2.6 ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢°ú¿ô¤¬ 0 ¤Ê¤é¤Ð short erase (¥Æ¡¼¥×¤¬¶õ¤À¤È°õ¤ò¤Ä¤±¤ë) -¤ò¹Ô¤¦¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï long erase (Á´ÂΤò¾Ãµî¤¹¤ë) ¤ò¹Ô¤¦¡£ +テープの内容を消去する。 +2.6 カーネルでは、引数が 0 ならば short erase (テープが空だと印をつける) +を行う。それ以外の場合は long erase (全体を消去する) を行う。 .TP .B MTFSF .I mt_count -¸Ä¤Î¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯Ê¬¤ÎÁ°Êý¥¹¥Ú¡¼¥¹ (forward space)¡£ +個のファイルマーク分の前方スペース (forward space)。 .TP .B MTFSFM .I mt_count -¸Ä¤Î¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯Ê¬¤ÎÁ°Êý¥¹¥Ú¡¼¥¹¡£ -¥Æ¡¼¥×¤Î°ÌÃ֤ϺǸå¤Î¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤Î BOT ¦Êѹ¹¤µ¤ì¤ë¡£ +個のファイルマーク分の前方スペース。 +テープの位置は最後のファイルマークの BOT 側変更される。 .TP .B MTFSR .I mt_count -¸Ä¤Î¥ì¥³¡¼¥É (¥Æ¡¼¥×¥Ö¥í¥Ã¥¯) ʬ¤ÎÁ°Êý¥¹¥Ú¡¼¥¹¡£ +個のレコード (テープブロック) 分の前方スペース。 .TP .B MTFSS .I mt_count -¸Ä¤Î¥»¥Ã¥È¥Þ¡¼¥¯Ê¬¤ÎÁ°Êý¥¹¥Ú¡¼¥¹¡£ +個のセットマーク分の前方スペース。 .TP .B MTLOAD -SCSI ¥í¡¼¥É¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¡£ HP ¥ª¡¼¥È¥í¡¼¥À¤Ë¸Â¤Ã¤ÆÍøÍѤǤ­¤ë¡£ -.\"nakano: ¤¢¤Ã¤Æ¤ë¡© +SCSI ロードコマンドを実行する。 HP オートローダに限って利用できる。 +.\"nakano: あってる? .I mt_count -¤¬Äê¿ô +が定数 .B MT_ST_HPLOADER_OFFSET -¤È¤¢¤ë¿ôÃͤÎϤǤ¢¤ë¾ì¹ç¡¢ -¤½¤Î¿ôÃͤ¬¥É¥é¥¤¥Ö¤ËÁ÷¤é¤ì¡¢¥ª¡¼¥È¥í¡¼¥À¤ÎÀ©¸æ¤ËÍѤ¤¤é¤ì¤ë¡£ +とある数値の和である場合、 +その数値がドライブに送られ、オートローダの制御に用いられる。 .TP .B MTLOCK -¥Æ¡¼¥×¥É¥é¥¤¥Ö¤ÎÈâ¤ò¥í¥Ã¥¯¤¹¤ë¡£ +テープドライブの扉をロックする。 .TP .B MTMKPART -¥Æ¡¼¥×¤ò 1 ¤Þ¤¿¤Ï 2 ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¥Õ¥©¡¼¥Þ¥Ã¥È¤¹¤ë¡£ +テープを 1 または 2 パーティションにフォーマットする。 .I mt_count -¤¬ 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢¤³¤ì¤¬ºÇ½é¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¥µ¥¤¥º¤òÍ¿¤¨¡¢ -ÆóÈÖÌܤΥѡ¼¥Æ¥£¥·¥ç¥ó¤¬¥Æ¡¼¥×¤Î»Ä¤ê¤Ë¤Ê¤ë¡£ +が 0 でなければ、これが最初のパーティションのサイズを与え、 +二番目のパーティションがテープの残りになる。 .I mt_count -¤¬ 0 ¤Î¾ì¹ç¤Ï¡¢¥Æ¡¼¥×¤Ï°ì¤Ä¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤È¤·¤Æ¥Õ¥©¡¼¥Þ¥Ã¥È¤µ¤ì¤ë¡£ -¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¥µ¥Ý¡¼¥È¤¬Í­¸ú¤Ë¤µ¤ì¤¿ -¥É¥é¥¤¥Ö¤Ç¤Ê¤±¤ì¤Ð»È¤¨¤Ê¤¤ (°Ê²¼¤Î +が 0 の場合は、テープは一つのパーティションとしてフォーマットされる。 +このコマンドは、パーティションのサポートが有効にされた +ドライブでなければ使えない (以下の .B MT_ST_CAN_PARTITIONS -¤ò¸«¤è)¡£ +を見よ)。 .TP .B MTNOP -²¿¤âÁàºî¤ò¹Ô¤ï¤Ê¤¤¡£\(emÉû¼¡Åª¤Ê¸ú²Ì¤È¤·¤Æ¡¢¥É¥é¥¤¥Ð¡¼¤Î¥Ð¥Ã¥Õ¥¡ -¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë¡£ +何も操作を行わない。\(em副次的な効果として、ドライバーのバッファ +をフラッシュする。 .B MTIOCGET -¤ò»È¤Ã¤Æ¾õÂÖ¤òÆɤ߽Ф¹Á°¤Ë¤Ï¤³¤ÎÁàºî¤ò¹Ô¤¦¤Ù¤­¤Ç¤¢¤ë¡£ +を使って状態を読み出す前にはこの操作を行うべきである。 .TP .B MTOFFL -´¬¤­Ìᤷ (rewind) ¤ò¹Ô¤¤¡¢¥É¥é¥¤¥Ö¤ò¥ª¥Õ¥é¥¤¥ó (off line) ¤Ë¤¹¤ë¡£ +巻き戻し (rewind) を行い、ドライブをオフライン (off line) にする。 .TP .B MTRESET -¥É¥é¥¤¥Ö¤ò¥ê¥»¥Ã¥È¤¹¤ë¡£ +ドライブをリセットする。 .TP .B MTRETEN -¥Æ¡¼¥×¤ò¥ê¥Æ¥ó¥·¥ç¥ó (re-tension) ¤¹¤ë -(¥Æ¡¼¥×¤òºÇ¸å¤Þ¤Ç´¬¤¤¤¿¸å¡¢ºÇ½é¤Þ¤Ç´¬¤­Ì᤹)¡£ +テープをリテンション (re-tension) する +(テープを最後まで巻いた後、最初まで巻き戻す)。 .TP .B MTREW -´¬¤­Ìᤷ¡£ +巻き戻し。 .TP .B MTSEEK .I mt_count -¤Ç»ØÄꤵ¤ì¤¿¥Æ¡¼¥×¥Ö¥í¥Ã¥¯ÈÖ¹æ¤ò¥·¡¼¥¯¤¹¤ë¡£ -¤³¤ÎÁàºî¤¬¹Ô¤¨¤ë¤Î¤Ï¡¢ \s-1LOCATE\s+1 ¥³¥Þ¥ó¥É (¥Ç¥Ð¥¤¥¹¸ÇÍ­¤Î¥¢¥É¥ì¥¹) -¤ò¥µ¥Ý¡¼¥È¤¹¤ë SCSI-2 ¥É¥é¥¤¥Ö¤«¡¢¤¢¤ë¤¤¤Ï Tandberg -¸ß´¹¤Î SCSI-1 ¥É¥é¥¤¥Ö (Tandberg, Archive, Viper, Wangtek,¡Ä) ¤Ç¤¢¤ë¡£ -¥Ç¥Ð¥¤¥¹¸ÇÍ­¤Î¥¢¥É¥ì¥¹¤¬ÍøÍѤµ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¥Ö¥í¥Ã¥¯ÈÖ¹æ¤Ï -°ÊÁ°¤Ë \s-1MTIOCPOS\s+1 ¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤¿¤â¤Î¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +で指定されたテープブロック番号をシークする。 +この操作が行えるのは、 \s-1LOCATE\s+1 コマンド (デバイス固有のアドレス) +をサポートする SCSI-2 ドライブか、あるいは Tandberg +互換の SCSI-1 ドライブ (Tandberg, Archive, Viper, Wangtek,…) である。 +デバイス固有のアドレスが利用されている場合は、ブロック番号は +以前に \s-1MTIOCPOS\s+1 によって返されたものにすべきである。 .TP .B MTSETBLK .I mt_count -¤ÎÃͤò¥É¥é¥¤¥Ö¤Î¥Ö¥í¥Ã¥¯Ä¹ (block length) ¤È¤·¤Æ¥»¥Ã¥È¤¹¤ë¡£ -¥Ö¥í¥Ã¥¯Ä¹¤ò 0 ¤Ë¤¹¤ë¤È¥É¥é¥¤¥Ö¤Ï²ÄÊÑĹ¥Ö¥í¥Ã¥¯¥µ¥¤¥º¥â¡¼¥É¤Ë¥»¥Ã -¥È¤µ¤ì¤ë¡£ +の値をドライブのブロック長 (block length) としてセットする。 +ブロック長を 0 にするとドライブは可変長ブロックサイズモードにセッ +トされる。 .TP .B MTSETDENSITY -¥Æ¡¼¥×Ì©ÅÙ (tape density) ¤ò +テープ密度 (tape density) を .I mt_count -¤Ç¼¨¤µ¤ì¤ë¥³¡¼¥É¤ËÊѹ¹¤¹¤ë¡£¥É¥é¥¤¥Ö¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ëÌ©ÅÙ¥³¡¼¥É -¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥É¥é¥¤¥Ö¤Îʸ½ñ¤Ë½ñ¤¤¤Æ¤¢¤ë¤À¤í¤¦¡£ +で示されるコードに変更する。ドライブでサポートされている密度コード +については、ドライブの文書に書いてあるだろう。 .TP .B MTSETPART -¥¢¥¯¥Æ¥£¥Ö¤Ê¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òÂè +アクティブなパーティションを第 .I mt_count -ÈÖÌܤËÀÚ¤êÂؤ¨¤ë¡£¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï 0 ¤«¤é¿ô¤¨¤ë¡£ -¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¥µ¥Ý¡¼¥È¤¬Í­¸ú¤Ë¤µ¤ì¤¿ -¥É¥é¥¤¥Ö¤Ç¤Ê¤±¤ì¤Ð»È¤¨¤Ê¤¤ (°Ê²¼¤Î +番目に切り替える。パーティションは 0 から数える。 +このコマンドは、パーティションのサポートが有効にされた +ドライブでなければ使えない (以下の .B MT_ST_CAN_PARTITIONS -¤ò¸«¤è)¡£ +を見よ)。 .TP .B MTUNLOAD -SCSI unload ¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë (¥Æ¡¼¥×¤Î¥¤¥¸¥§¥¯¥È¤Ï¹Ô¤ï¤Ê¤¤)¡£ +SCSI unload コマンドを実行する (テープのイジェクトは行わない)。 .TP .B MTUNLOCK -¥Æ¡¼¥×¥É¥é¥¤¥Ö¤ÎÈâ¤Î¥í¥Ã¥¯¤ò²ò½ü¤¹¤ë¡£ +テープドライブの扉のロックを解除する。 .TP .B MTWEOF .I mt_count -¸Ä¤Î¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤ò½ñ¤­¹þ¤à¡£ +個のファイルマークを書き込む。 .TP .B MTWSM .I mt_count -¸Ä¤Î¥»¥Ã¥È¥Þ¡¼¥¯¤ò½ñ¤­¹þ¤à¡£ +個のセットマークを書き込む。 .PP -¥Ç¥Ð¥¤¥¹¥ª¥×¥·¥ç¥ó¤ÎÀßÄê¤Î¤¿¤á¤Î (¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ë¤è¤ë) ¼§µ¤¥Æ¡¼¥×Áàºî: +デバイスオプションの設定のための (スーパーユーザによる) 磁気テープ操作: .TP 8 .B MTSETDRVBUFFER -¤¤¤í¤¤¤í¤Ê¥É¥é¥¤¥Ö¤È¥É¥é¥¤¥Ð¡¼¤Î¥ª¥×¥·¥ç¥ó¤ò +いろいろなドライブとドライバーのオプションを .I mt_count -¤Ë¥¨¥ó¥³¡¼¥É¤µ¤ì¤¿³Æ¥Ó¥Ã¥È¤Ë½¾¤Ã¤ÆÀßÄꤹ¤ë¡£ -¥ª¥×¥·¥ç¥ó¤Ë¤Ï¡¢¥É¥é¥¤¥Ö¤Î¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¥â¡¼¥É¡¢ -¥Ö¡¼¥ëÃͤΥɥ饤¥Ð¥ª¥×¥·¥ç¥ó¤Î½¸¹ç¡¢ -¥Ð¥Ã¥Õ¥¡¤Î½ñ¤­¹þ¤ßïçÃÍ (¥Ç¥Õ¥©¥ë¥È¤Ï¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ÈÌ©ÅÙ)¡¢ -¥¿¥¤¥à¥¢¥¦¥ÈÃͤ¬´Þ¤Þ¤ì¤ë (¥«¡¼¥Í¥ë 2.1 °Ê¹ß)¡£ -°ì²ó¤ÎÁàºî¤ÇÊѤ¨¤é¤ì¤ë¤Î¤Ï¡¢¾åµ­¤Î¥ê¥¹¥È¤Î¤É¤ì¤«°ì¤Ä¤À¤±¤Ç¤¢¤ë -(Ê£¿ô¤Î¥Ö¡¼¥ëÃͤϤޤȤá¤Æ°ì¤Ä¤È´ªÄꤵ¤ì¤ë)¡£ +にエンコードされた各ビットに従って設定する。 +オプションには、ドライブのバッファリングモード、 +ブール値のドライバオプションの集合、 +バッファの書き込み閾値 (デフォルトはブロックサイズと密度)、 +タイムアウト値が含まれる (カーネル 2.1 以降)。 +一回の操作で変えられるのは、上記のリストのどれか一つだけである +(複数のブール値はまとめて一つと勘定される)。 .IP -¹â°Ì¤Î4¥Ó¥Ã¥È¤¬¥¼¥í¤Ç¤¢¤ëÃͤϡ¢ -¥É¥é¥¤¥Ö¤Î¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¥â¡¼¥É¤ÎÀßÄê¤Ë»È¤ï¤ì¤ë¡£ -¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¥â¡¼¥É¤Ï°Ê²¼¤ÎÄ̤ê: +高位の4ビットがゼロである値は、 +ドライブのバッファリングモードの設定に使われる。 +バッファリングモードは以下の通り: .RS 12 .IP 0 4 -¥É¥é¥¤¥Ö¤Ï¥é¥¤¥È¥³¥Þ¥ó¥É¤ËÂФ·¡¢ -¥Ç¡¼¥¿¥Ö¥í¥Ã¥¯¤¬¼ÂºÝ¤ËÇÞÂΤ˽ñ¤­¹þ¤Þ¤ì¤ë¤Þ¤Ç +ドライブはライトコマンドに対し、 +データブロックが実際に媒体に書き込まれるまで .B GOOD -¤Î¥¹¥Æ¡¼¥¿¥¹¤òÊÖ¤µ¤Ê¤¤¡£ +のステータスを返さない。 .IP 1 -¥É¥é¥¤¥Ö¤Ï¥é¥¤¥È¥³¥Þ¥ó¥É¤ËÂФ·¡¢ -¤¹¤Ù¤Æ¤Î¥Ç¡¼¥¿¤¬¥É¥é¥¤¥Ö¤ÎÆâÉô¥Ð¥Ã¥Õ¥¡¤ËžÁ÷¤µ¤ì¤ë¤È¤¹¤°¤Ë¡¢ +ドライブはライトコマンドに対し、 +すべてのデータがドライブの内部バッファに転送されるとすぐに、 .B GOOD -¤Î¥¹¥Æ¡¼¥¿¥¹¤òÊÖ¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +のステータスを返すことができる。 .IP 2 -¥é¥¤¥È¥³¥Þ¥ó¥É¤ËÂФ·¡¢°Ê²¼¤Î 2 ¤Ä¤Î¾ò·ï¤¬¤½¤í¤Ã¤¿¾ì¹ç¡¢ -¥É¥é¥¤¥Ö¤Ï¤¹¤°¤Ë +ライトコマンドに対し、以下の 2 つの条件がそろった場合、 +ドライブはすぐに .B GOOD -¥¹¥Æ¡¼¥¿¥¹¤òÊÖ¤¹»ö¤¬¤Ç¤­¤ë¡£ -(a) ¤¹¤Ù¤Æ¤Î¥Ç¡¼¥¿¤¬¥É¥é¥¤¥Ö¤ÎÆâÉô¥Ð¥Ã¥Õ¥¡¤ËžÁ÷¤µ¤ì¤¿¡£ -(b) ÊÌ¡¹¤Î¥¤¥Ë¥·¥¨¡¼¥¿¡¼¤«¤éÍ褿¥Ð¥Ã¥Õ¥¡¥Ç¡¼¥¿¤¬¡¢ -¤¹¤Ù¤ÆÇÞÂΤØÌäÂê¤Ê¤¯½ñ¤­¹þ¤Þ¤ì¤¿¡£ +ステータスを返す事ができる。 +(a) すべてのデータがドライブの内部バッファに転送された。 +(b) 別々のイニシエーターから来たバッファデータが、 +すべて媒体へ問題なく書き込まれた。 .RE .IP -½ñ¤­¹þ¤ßïçÃͤòÀ©¸æ¤¹¤ë¤Ë¤Ï¡¢ +書き込み閾値を制御するには、 .I mt_count -¤Ë¤Ï¡¢Äê¿ô +には、定数 .B MT_ST_WRITE_THRESHOLD -¤È¥Ö¥í¥Ã¥¯¥«¥¦¥ó¥È¤Î¥Ó¥Ã¥ÈËè¤Î OR ¤ò¤È¤Ã¤¿Ãͤò -²¼°Ì¤Î 28¥Ó¥Ã¥È¤Ë´Þ¤Þ¤Í¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤Î¥Ö¥í¥Ã¥¯¥«¥¦¥ó¥È¤Ï 1024 ¥Ð¥¤¥È¥Ö¥í¥Ã¥¯¤òñ°Ì¤È¤·¤¿¤â¤Î¤Ç¡¢ -¥Æ¡¼¥×¤ÎʪÍý¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤òñ°Ì¤È¤·¤¿¤â¤Î¤Ç¤Ï¤Ê¤¤¡£ -¤Þ¤¿¡¢ïçÃͤϥɥ饤¥Ð¤ÎÆâÉô¥Ð¥Ã¥Õ¥¡ (¾åµ­¤ÎÀâÌÀ»²¾È) -¤Î¥µ¥¤¥º¤ò±Û¤¨¤ë»ö¤Ï¤Ç¤­¤Ê¤¤¡£ +とブロックカウントのビット毎の OR をとった値を +下位の 28ビットに含まねばならない。 +このブロックカウントは 1024 バイトブロックを単位としたもので、 +テープの物理ブロックサイズを単位としたものではない。 +また、閾値はドライバの内部バッファ (上記の説明参照) +のサイズを越える事はできない。 .IP -¥Ö¡¼¥ëÃͤΥե饰¤òÀßÄꡦ²ò½ü¤¹¤ë¤Ë¤Ï¡¢ +ブール値のフラグを設定・解除するには、 .I mt_count -¤ÎÃÍ¤Ï +の値は .BR MT_ST_BOOLEANS , .BR MT_ST_SETBOOLEANS , .BR MT_ST_CLEARBOOLEANS , .BR MT_ST_DEFBOOLEANS -¤Î¤¤¤º¤ì¤«°ì¤Ä¤ÎÃͤˡ¢°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤ÎǤ°Õ¤ÎÁȤ߹ç¤ï¤»¤ËÂФ·¤Æ -¥Ó¥Ã¥ÈËè¤Î OR ¤ò¼è¤Ã¤¿¤â¤Î¤ò»ØÄꤹ¤ë¡£ -.BR MT_ST_BOOLEANS ¤òÍѤ¤¤ë¤È¡¢ -¥ª¥×¥·¥ç¥ó¤òÂбþ¤¹¤ë¥Ó¥Ã¥È¤ËÂФ·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ëÃͤËÀßÄê¤Ç¤­¤ë¡£ -.BR MT_ST_SETBOOLEANS ¤òÍѤ¤¤ë¤È¡¢ -¥ª¥×¥·¥ç¥ó¤ÏÁªÂòŪ¤ËÀßÄꤵ¤ì¡¢ -.BR MT_ST_DEFBOOLEANS ¤òÍѤ¤¤ë¤È -ÁªÂòŪ¤Ë²ò½ü¤µ¤ì¤ë¡£ +のいずれか一つの値に、以下のオプションの任意の組み合わせに対して +ビット毎の OR を取ったものを指定する。 +.BR MT_ST_BOOLEANS を用いると、 +オプションを対応するビットに対して定義されている値に設定できる。 +.BR MT_ST_SETBOOLEANS を用いると、 +オプションは選択的に設定され、 +.BR MT_ST_DEFBOOLEANS を用いると +選択的に解除される。 .IP "" -¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥ª¥×¥·¥ç¥ó¤Ï +テープデバイスのデフォルトのオプションは .B MT_ST_DEFBOOLEANS -¤Ë¤è¤Ã¤ÆÀßÄꤵ¤ì¤ë¡£ -¥¢¥¯¥Æ¥£¥Ö¤Ç¤Ê¤¤¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹ (Îã: ¥Þ¥¤¥Ê¡¼ÈÖ¹æ ¤¬ 32 ¤ä 160 ¤Î¥Ç¥Ð¥¤¥¹) -¤Ï¡¢¤½¤ì¤é¤ËÂФ¹¤ë¥Ç¥Õ¥©¥ë¥È¤Î¥ª¥×¥·¥ç¥ó¤¬ºÇ½é¤ËÄêµÁ¤µ¤ì¤¿¤È¤­¤Ë -¥¢¥¯¥Æ¥£¥Ö¤Ë¤Ê¤ë¡£¥¢¥¯¥Æ¥£¥Ö¤Ë¤µ¤ì¤¿¥Ç¥Ð¥¤¥¹¤Ï¡¢ -µ¯Æ°»þ¤Ë¥¢¥¯¥Æ¥£¥Ö¤Ë¤µ¤ì¤¿¥Ç¥Ð¥¤¥¹¤«¤é¡¢ -ÌÀ¼¨Åª¤Ë»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¥ª¥×¥·¥ç¥ó¤ò·Ñ¾µ¤¹¤ë¡£ +によって設定される。 +アクティブでないテープデバイス (例: マイナー番号 が 32 や 160 のデバイス) +は、それらに対するデフォルトのオプションが最初に定義されたときに +アクティブになる。アクティブにされたデバイスは、 +起動時にアクティブにされたデバイスから、 +明示的に指定されなかったオプションを継承する。 .IP "" -¥Ö¡¼¥ëÃͤΥª¥×¥·¥ç¥ó¤Ï°Ê²¼¤ÎÄ̤ê: +ブール値のオプションは以下の通り: .RS .TP -.BR MT_ST_BUFFER_WRITES " (¥Ç¥Õ¥©¥ë¥È: ¿¿)" -¸ÇÄêĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤Ë¤ª¤±¤ë¤¹¤Ù¤Æ¤Î½ñ¤­¹þ¤ßÁàºî¤ò¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤¹¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬µ¶¤Ç¤¢¤ê¡¢¤«¤Ä¥É¥é¥¤¥Ö¤¬¸ÇÄêĹ¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤Î»þ¤Ï¡¢ -¤¹¤Ù¤Æ¤Î½ñ¤­¹þ¤ßÁàºî¤Ï¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ÎÇÜ¿ô¤ÎÂ礭¤µ¤Ç¹Ô¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¿®ÍêÀ­¤Î¤¢¤ë¥Þ¥ë¥Á¥Ü¥ê¥å¡¼¥à¥¢¡¼¥«¥¤¥Ö¤ò½ñ¤­¹þ¤à¤¿¤á¤Ë¤Ï¡¢ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ïµ¶¤ËÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.TP -.BR MT_ST_ASYNC_WRITES " (¥Ç¥Õ¥©¥ë¥È: ¿¿)" -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬¿¿¤Î»þ¤Ë¤Ï¡¢¥Ç¡¼¥¿¤¬¥É¥é¥¤¥Ð¤Î¥Ð¥Ã¥Õ¥¡¤Ë¼ý¤Þ¤ë»þ¤Ë¤Ï -¥Ç¡¼¥¿¤¬¥É¥é¥¤¥Ö¤ËžÁ÷¤µ¤ì¤ë¤Î¤òÂÔ¤¿¤º¤Ë¡¢¤¹¤°¤Ë½ñ¤­¹þ¤ßÁàºî¤¬Ê֤äÆÍè¤ë¡£ -¥Ð¥Ã¥Õ¥¡¤¬¤É¤Î¤¯¤é¤¤¶õ¤¤¤¿¤é¼¡¤Î SCSI write ¥³¥Þ¥ó¥É¤òȯ¹Ô¤Ç¤­¤ë¤«¤Ï¡¢ -½ñ¤­¹þ¤ßïçÃͤˤè¤Ã¤Æ·è¤Þ¤ë¡£ -¥É¥é¥¤¥Ö¤¬ÊÖ¤¹¤¹¤Ù¤Æ¤Î¥¨¥é¡¼¤Ï¡¢¼¡¤ÎÁàºî¤Þ¤ÇÊݸ¤µ¤ì¤ë¡£ -¿®ÍêÀ­¤Î¤¢¤ë¥Þ¥ë¥Á¥Ü¥ê¥å¡¼¥à¥¢¡¼¥«¥¤¥Ö¤ò½ñ¤­¹þ¤à¤¿¤á¤Ë¤Ï¡¢ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ïµ¶¤ËÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.TP -.BR MT_ST_READ_AHEAD " (¥Ç¥Õ¥©¥ë¥È: ¿¿)" -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢ -¥É¥é¥¤¥Ð¤Ï¸ÇÄêĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤ÇÆɤ߹þ¤ß¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤ÈÀèÆɤߤò¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬µ¶¤Ç¤¢¤ê¡¢¤«¤Ä¥É¥é¥¤¥Ö¤¬¸ÇÄêĹ¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤Î»þ¤Ï¡¢ -¤¹¤Ù¤Æ¤ÎÆɤ߹þ¤ßÁàºî¤Ï¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ÎÇÜ¿ô¤ÎÂ礭¤µ¤Ç¹Ô¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.TP -.BR MT_ST_TWO_FM " (¥Ç¥Õ¥©¥ë¥È: µ¶)" -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Õ¥¡¥¤¥ë¤¬¥¯¥í¡¼¥º¤µ¤ì¤¿»þ¤Î¥É¥é¥¤¥Ð¡¼¤Î¿¶Éñ¤¤¤òÊѹ¹¤¹¤ë¡£ -°ì¤Ä¤Î¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤ò½ñ¤­¹þ¤à¤Î¤¬Ä̾ï¤ÎÆ°ºî¤Ç¤¢¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬¿¿¤Î»þ¤Ë¤Ï¡¢ -¥É¥é¥¤¥Ð¡¼¤Ï 2 ¤Ä¤Î¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤ò½ñ¤­¹þ¤ó¤Ç¡¢ -2 ¤Ä¤á¤Î¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤Î¤È¤³¤í¤ËÌá¤ë¡£ +.BR MT_ST_BUFFER_WRITES " (デフォルト: 真)" +固定長ブロックモードにおけるすべての書き込み操作をバッファリングする。 +このオプションが偽であり、かつドライブが固定長ブロックサイズの時は、 +すべての書き込み操作はブロックサイズの倍数の大きさで行わなければならない。 +信頼性のあるマルチボリュームアーカイブを書き込むためには、 +このオプションは偽に設定されていなければならない。 +.TP +.BR MT_ST_ASYNC_WRITES " (デフォルト: 真)" +このオプションが真の時には、データがドライバのバッファに収まる時には +データがドライブに転送されるのを待たずに、すぐに書き込み操作が返って来る。 +バッファがどのくらい空いたら次の SCSI write コマンドを発行できるかは、 +書き込み閾値によって決まる。 +ドライブが返すすべてのエラーは、次の操作まで保存される。 +信頼性のあるマルチボリュームアーカイブを書き込むためには、 +このオプションは偽に設定されていなければならない。 +.TP +.BR MT_ST_READ_AHEAD " (デフォルト: 真)" +このオプションを指定すると、 +ドライバは固定長ブロックモードで読み込みバッファリングと先読みをするようになる。 +このオプションが偽であり、かつドライブが固定長ブロックサイズの時は、 +すべての読み込み操作はブロックサイズの倍数の大きさで行わなければならない。 +.TP +.BR MT_ST_TWO_FM " (デフォルト: 偽)" +このオプションはファイルがクローズされた時のドライバーの振舞いを変更する。 +一つのファイルマークを書き込むのが通常の動作である。 +このオプションが真の時には、 +ドライバーは 2 つのファイルマークを書き込んで、 +2 つめのファイルマークのところに戻る。 .IP -Ãí°Õ¡§ -QIC¥Æ¡¼¥×¥É¥é¥¤¥Ö¤Ï¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤Ë¾å½ñ¤­¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¤Î¤Ç¡¢ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¿¿¤Ë¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -¤³¤ì¤é¤Î¥É¥é¥¤¥Ö¤Ïµ­Ï¿¥Ç¡¼¥¿¤ÎËöÈø¤Î¸¡ÃΤˡ¢ -¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤¬ 2¤Ä³¤±¤Æ¤¢¤ë¤«¤Ç¤Ï¤Ê¤¯¡¢ -¥Ö¥é¥ó¥¯¥Æ¡¼¥×¤«¤É¤¦¤«¤Î¥Æ¥¹¥È¤òÍѤ¤¤ë¡£ -¸½ºß¤Î¾¤Î¤Û¤È¤ó¤É¤Î¥É¥é¥¤¥Ö¤â¡¢µ­Ï¿¥Ç¡¼¥¿¤ÎËöÈø¤ò¸¡ÃΤ¹¤ë¡£ -2 ¤Ä¤Î¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤¬É¬Íפˤʤë¤Î¤Ï¡¢ -¾¤Î¥·¥¹¥Æ¥à¤È¥Æ¡¼¥×¤ò¤ä¤ê¤È¤ê¤¹¤ë¾ì¹ç¤Ç¤¢¤ë¡£ -.TP -.BR MT_ST_DEBUGGING " (¥Ç¥Õ¥©¥ë¥È: µ¶)" -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¿¿¤Ë¤¹¤ë¤È¡¢ -¥É¥é¥¤¥Ð¤Ï¤¤¤í¤¤¤í¤Ê¥Ç¥Ð¥Ã¥°ÍÑ¥á¥Ã¥»¡¼¥¸¤ò½Ð¤¹¤è¤¦¤Ë¤Ê¤ë +注意: +QICテープドライブはファイルマークに上書きすることができないので、 +このオプションを真にしてはならない。 +これらのドライブは記録データの末尾の検知に、 +ファイルマークが 2つ続けてあるかではなく、 +ブランクテープかどうかのテストを用いる。 +現在の他のほとんどのドライブも、記録データの末尾を検知する。 +2 つのファイルマークが必要になるのは、 +他のシステムとテープをやりとりする場合である。 +.TP +.BR MT_ST_DEBUGGING " (デフォルト: 偽)" +このオプションを真にすると、 +ドライバはいろいろなデバッグ用メッセージを出すようになる .RB ( DEBUG -¤òÈó¥¼¥í¤ËÄêµÁ¤·¤Æ¥É¥é¥¤¥Ð¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¤¤ë»þ¤Î¤ßÍ­¸ú)¡£ +を非ゼロに定義してドライバをコンパイルしている時のみ有効)。 .TP -.BR MT_ST_FAST_EOM " (¥Ç¥Õ¥©¥ë¥È: µ¶)" -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¿¿¤Ë¤¹¤ë¤È¡¢ +.BR MT_ST_FAST_EOM " (デフォルト: 偽)" +このオプションを真にすると、 .B MTEOM -Áàºî¤¬Ä¾Àܥɥ饤¥Ö¤ËÁ÷¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -Áàºî¤¬Á᤯¤Ê¤ë¤Ï¤º¤À¤¬¡¢ -¥É¥é¥¤¥Ð¤¬¸½ºß¤Î¥Õ¥¡¥¤¥ëÈÖ¹æ¤ò¸«¼º¤¦¤³¤È¤Ë¤Ê¤ë -(¤³¤ì¤ÏÄ̾ï¤Ê¤é +操作が直接ドライブに送られるようになる。 +操作が早くなるはずだが、 +ドライバが現在のファイル番号を見失うことになる +(これは通常なら .B MTIOCGET -¥ê¥¯¥¨¥¹¥È¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë)¡£ +リクエストによって返される)。 .B MT_ST_FAST_EOM -¤¬µ¶¤Î»þ¤Ë¤Ï¡¢¥É¥é¥¤¥Ð¤Ï +が偽の時には、ドライバは .B MTEOM -¥ê¥¯¥¨¥¹¥È¤Ë±þ¤¨¤ë¤È¤­¡¢Á°Êý¤Ë¥Õ¥¡¥¤¥ë¤ò°ì¤Ä°ì¤Ä¿Ê¤á¤Æ¤¤¤¯¡£ -.TP -.BR MT_ST_AUTO_LOCK " (¥Ç¥Õ¥©¥ë¥È: µ¶)" -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬¿¿¤Î»þ¤Ë¤Ï¡¢ -¥Ç¥Ð¥¤¥¹¤¬¥ª¡¼¥×¥ó¤µ¤ì¤ë¤È¥É¥é¥¤¥Ö¤ÎÈ⤬¥í¥Ã¥¯¤µ¤ì¡¢ -¥¯¥í¡¼¥º¤µ¤ì¤ë¤È¥¢¥ó¥í¥Ã¥¯¤µ¤ì¤ë¡£ -.TP -.BR MT_ST_DEF_WRITES " (¥Ç¥Õ¥©¥ë¥È: µ¶)" -¥Æ¡¼¥×¥ª¥×¥·¥ç¥ó (¥Ö¥í¥Ã¥¯¥µ¥¤¥º¡¢¥â¡¼¥É¡¢°µ½Ì¤Ê¤É) -¤¬¤¢¤ë¥É¥é¥¤¥Ö¤Ë¥ê¥ó¥¯¤µ¤ì¤¿¥Ç¥Ð¥¤¥¹¤ÇÊѹ¹¤µ¤ì¤ë¤È¡¢ -¤½¤ÎƱ¤¸¥É¥é¥¤¥Ö¤Ë¥ê¥ó¥¯¤µ¤ì¤¿Â¾¤Î¥Ç¥Ð¥¤¥¹¤Ç¤âÊѹ¹¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë -(¤½¤Î¥Ç¥Ð¥¤¥¹¤ÎÄêµÁ¤Ë¤è¤ë)¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ -¥É¥é¥¤¥Ð¤Ë¤è¤ëÊѹ¹¤ò¤¤¤Ä SCSI ¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤ÆÈ¿±Ç¤µ¤»¤ë¤«¤È¡¢ -¥É¥é¥¤¥Ö¤Î¼«Æ°¸¡Ãε¡Ç½¤¬¤¤¤Ä¿®Íꤷ¤ÆÎɤ¤¤Î¤«¤òÄêµÁ¤¹¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤òµ¶¤Ë¤·¤Æ¤ª¤¯¤È¡¢ -¥Ç¥Ð¥¤¥¹¤ÎÊѹ¹¤¬¤¢¤ë¤È¥É¥é¥¤¥Ð¤Ï¤¹¤°¤Ë SCSI ¥³¥Þ¥ó¥É¤òÁ÷¤ë¡£ -¿¿¤Ë¤·¤Æ¤ª¤¯¤È¡¢ SCSI ¥³¥Þ¥ó¥É¤Ï½ñ¤­¹þ¤ß¤¬Í׵ᤵ¤ì¤ë¤Þ¤ÇÁ÷¤é¤ì¤Ê¤¤¡£ -¸å¼Ô¤Î¾ì¹ç¤Ï¡¢Æɤ߹þ¤ß¤ÎºÝ¤Ë¥É¥é¥¤¥Ö¤Î¥Õ¥¡¡¼¥à¥¦¥§¥¢¤Ë¤è¤Ã¤Æ -¥Æ¡¼¥×¹½Â¤¤Î¸¡ÃΤ¬¹Ô¤¨¤ë¡£¤Þ¤¿ SCSI ¥³¥Þ¥ó¥É¤Ï¡¢ -¥Æ¡¼¥×¤¬Àµ¤·¤¤»ØÄê¤Ë±è¤Ã¤Æ½ñ¤­¹þ¤Þ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Î -³Îǧ¤Î¤¿¤á¤À¤±¤ËÍѤ¤¤é¤ì¤ë¡£ -.TP -.BR MT_ST_CAN_BSR " (¥Ç¥Õ¥©¥ë¥È: µ¶)" -ÀèÆɤߤò»È¤¦¤È¡¢¥Æ¡¼¥×¤ò¥¯¥í¡¼¥º¤¹¤ë¤È¤­¤Ë¡¢ -¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï¥Æ¡¼¥×¤òÀµ¤·¤¤°ÌÃ֤˵ÕÌᤷ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤¬¤¢¤ë¡£ -¤³¤ì¤Ë¤Ï¡¢¥ì¥³¡¼¥É¤ò±Û¤¨¤ÆµÕÌᤷ¤¹¤ë SCSI ¥³¥Þ¥ó¥É¤¬ÍѤ¤¤é¤ì¤ë¡£ -¸Å¤¤¥É¥é¥¤¥Ö¤Ç¤Ï¡¢¤³¤Î¥³¥Þ¥ó¥É½èÍý¤Î¿®ÍêÀ­¤¬Ä㤤¤³¤È¤¬¤¢¤ë¤¬¡¢ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢ -¥É¥é¥¤¥Ð¤Ë¤³¤Î¥³¥Þ¥ó¥É¤ÎÍøÍѤò¶Ø»ß¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -ÀèÆɤߤȸÇÄêĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤òÍѤ¤¤Æ¤¤¤ë¤È¡¢ºÇ½ªÅª¤Ê·ë²Ì¤È¤·¤Æ¡¢ -¥Ç¥Ð¥¤¥¹¤Î¥¯¥í¡¼¥º»þ¤Ë¥Æ¡¼¥×¤¬Àµ¤·¤¤°ÌÃ֤ˤʤé¤Ê¤¤¤³¤È¤¬¤¢¤ë¡£ -.\"nakano ¤½¤¦¤«¡© -2.6 ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢SCSI-3 ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥É¥é¥¤¥Ö¤ËÂФ·¤Æ¡¢ -¤³¤ÎÃͤΥǥե©¥ë¥È¤Ï¿¿¤È¤Ê¤ë¡£ -.TP -.BR MT_ST_NO_BLKLIMS " (¥Ç¥Õ¥©¥ë¥È: µ¶)" -¥É¥é¥¤¥Ö¤Ë¤è¤Ã¤Æ¤Ï +リクエストに応えるとき、前方にファイルを一つ一つ進めていく。 +.TP +.BR MT_ST_AUTO_LOCK " (デフォルト: 偽)" +このオプションが真の時には、 +デバイスがオープンされるとドライブの扉がロックされ、 +クローズされるとアンロックされる。 +.TP +.BR MT_ST_DEF_WRITES " (デフォルト: 偽)" +テープオプション (ブロックサイズ、モード、圧縮など) +があるドライブにリンクされたデバイスで変更されると、 +その同じドライブにリンクされた他のデバイスでも変更されることがある +(そのデバイスの定義による)。このオプションは、 +ドライバによる変更をいつ SCSI コマンドによって反映させるかと、 +ドライブの自動検知機能がいつ信頼して良いのかを定義する。 +このオプションを偽にしておくと、 +デバイスの変更があるとドライバはすぐに SCSI コマンドを送る。 +真にしておくと、 SCSI コマンドは書き込みが要求されるまで送られない。 +後者の場合は、読み込みの際にドライブのファームウェアによって +テープ構造の検知が行える。また SCSI コマンドは、 +テープが正しい指定に沿って書き込まれているかどうかの +確認のためだけに用いられる。 +.TP +.BR MT_ST_CAN_BSR " (デフォルト: 偽)" +先読みを使うと、テープをクローズするときに、 +場合によってはテープを正しい位置に逆戻ししなければならないことがある。 +これには、レコードを越えて逆戻しする SCSI コマンドが用いられる。 +古いドライブでは、このコマンド処理の信頼性が低いことがあるが、 +このオプションを指定すると、 +ドライバにこのコマンドの利用を禁止することができる。 +先読みと固定長ブロックモードを用いていると、最終的な結果として、 +デバイスのクローズ時にテープが正しい位置にならないことがある。 +.\"nakano そうか? +2.6 カーネルでは、SCSI-3 をサポートしているドライブに対して、 +この値のデフォルトは真となる。 +.TP +.BR MT_ST_NO_BLKLIMS " (デフォルト: 偽)" +ドライブによっては .B READ BLOCK LIMITS SCSI -¥³¥Þ¥ó¥É¤ò¼õ¤±¤Ä¤±¤Ê¤¤¤³¤È¤¬¤¢¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤È¡¢¥É¥é¥¤¥Ð¤Ï¤³¤Î¥³¥Þ¥ó¥É¤òÍѤ¤¤Ê¤¤¡£ -·çÅÀ¤Ï¡¢»ØÄꤷ¤¿¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤¬¥É¥é¥¤¥Ö¤Ë¼õÍý¤µ¤ì¤Æ¤·¤Þ¤¦¤È¡¢ -¥É¥é¥¤¥Ð¤Î¥³¥Þ¥ó¥ÉÁ÷¿®Á°¥Á¥§¥Ã¥¯¤¬¤Ç¤­¤Ê¤¯¤Ê¤ëÅÀ¤Ç¤¢¤ë¡£ -.TP -.BR MT_ST_CAN_PARTITIONS " (¥Ç¥Õ¥©¥ë¥È: µ¶)" -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢°ì¤Ä¤Î¥Æ¡¼¥×¤ËÊ£¿ô¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òÃÖ¤¯¤³¤È¤ò -¥µ¥Ý¡¼¥È¤¹¤ë¤«¤É¤¦¤«¤ò·è¤á¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥É¥é¥¤¥Ö¤Ë¥ê¥ó¥¯¤µ¤ì¤¿Á´¤Æ¤Î¥Ç¥Ð¥¤¥¹¤ËŬÍѤµ¤ì¤ë¡£ -.TP -.TP MT_ST_SCSI2LOGICAL " (¥Ç¥Õ¥©¥ë¥È: µ¶)" -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ -seek ¤ª¤è¤Ó tell Áàºî (ξ¼Ô¤È¤â -.BR MTSEEK ¡¦ MTIOCPOS -¥³¥Þ¥ó¥É¤òȼ¤¤¡¢¥Æ¡¼¥×°ÌÃÖ¤òÊѹ¹¤¹¤ë¤È¤­) ¤ÎºÝ¤Ë¡¢ -SCSI-2 ¤Îɸ½à¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëÏÀÍý¥Ö¥í¥Ã¥¯¥¢¥É¥ì¥¹¤òÍѤ¤¤ë¤«¤É¤¦¤«¤ò -¥É¥é¥¤¥Ð¤ËÅÁ¤¨¤ë¡£ -.\"nakano both with ¤ÎÉôʬ²ø¤·¤¤¡£ -µ¶¤À¤È¥Ç¥Ð¥¤¥¹¸ÇÍ­¤Î¥¢¥É¥ì¥¹¤¬ÍѤ¤¤é¤ì¤ë¡£ -¥É¥é¥¤¥Ö¤¬ÏÀÍý¥¢¥É¥ì¥¹¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤È¤­¤Ï¡¢ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¥»¥Ã¥È¤¹¤ë¤³¤È¤ò¶¯¤¯´«¤á¤ë¡£ -¤³¤Î¥â¡¼¥É¤Ç¤Ï¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤â¥«¥¦¥ó¥È¤¹¤ë¤«¤é¤Ç¤¢¤ë¡£ -ÏÀÍý¥Ö¥í¥Ã¥¯¥¢¥É¥ì¥¹¤·¤«¥µ¥Ý¡¼¥È¤·¤Ê¤¤¥É¥é¥¤¥Ö¤â¤¤¤¯¤Ä¤«Â¸ºß¤·¤Æ¤¤¤ë¡£ -.TP -.BR MT_ST_SYSV " (¥Ç¥Õ¥©¥ë¥È: µ¶)" -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬¿¿¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¤Ï -SystemV ¤Î¥ë¡¼¥ë¤òÍѤ¤¤ë¡£µ¶¤À¤È BSD ¤Î¥ë¡¼¥ë¤òÍѤ¤¤ë¡£ -.\"nakano: semantics ¢ª ¥ë¡¼¥ë ¤Ï¤Á¤È°ã¤¦¤«¡© -¤³¤ì¤é¤Î¥ë¡¼¥ë´Ö¤ÎºÇ¤âÂ礭¤Ê°ã¤¤¤Ï¡¢Æɤ߹þ¤ß¤ò¹Ô¤Ã¤Æ¤¤¤¿ -¥Ç¥Ð¥¤¥¹¤¬¥¯¥í¡¼¥º¤µ¤ì¤¿¤È¤­¤Î¿¶Éñ¤¤¤Ç¤¢¤ë¡£ -System V ¤Î¥ë¡¼¥ë¤Ç¤Ï¡¢¥Æ¡¼¥×¤Ï¼¡¤Î¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤ò±Û¤¨¤Æ°ÜÆ°¤¹¤ë -(¥Ç¥Ð¥¤¥¹¤ÎÍøÍÑ»þ¤Ë¤³¤ì¤¬¹Ô¤ï¤ì¤Ê¤«¤Ã¤¿¾ì¹ç)¡£ -BSD ¤Î¥ë¡¼¥ë¤Ç¤Ï¥Æ¡¼¥×°ÌÃÖ¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ -.TP -.BR MT_NO_WAIT " (¥Ç¥Õ¥©¥ë¥È: µ¶)" -¨»þ¥â¡¼¥É (immediate mode; ¥³¥Þ¥ó¥É¤Î½ªÎ»¤òÂÔ¤¿¤Ê¤¤) -¤ò¡¢¤¢¤ë¼ï¤Î¥³¥Þ¥ó¥É (rewind ¤Ê¤É) ¤ËÂФ·¤ÆÍ­¸ú¤Ë¤¹¤ë¡£ +コマンドを受けつけないことがある。 +このオプションを用いると、ドライバはこのコマンドを用いない。 +欠点は、指定したブロックサイズがドライブに受理されてしまうと、 +ドライバのコマンド送信前チェックができなくなる点である。 +.TP +.BR MT_ST_CAN_PARTITIONS " (デフォルト: 偽)" +このオプションは、一つのテープに複数パーティションを置くことを +サポートするかどうかを決める。 +このオプションはドライブにリンクされた全てのデバイスに適用される。 +.TP +.TP MT_ST_SCSI2LOGICAL " (デフォルト: 偽)" +このオプションは、 +seek および tell 操作 (両者とも +.BR MTSEEK ・ MTIOCPOS +コマンドを伴い、テープ位置を変更するとき) の際に、 +SCSI-2 の標準で定義されている論理ブロックアドレスを用いるかどうかを +ドライバに伝える。 +.\"nakano both with の部分怪しい。 +偽だとデバイス固有のアドレスが用いられる。 +ドライブが論理アドレスをサポートしているときは、 +このオプションをセットすることを強く勧める。 +このモードではファイルマークもカウントするからである。 +論理ブロックアドレスしかサポートしないドライブもいくつか存在している。 +.TP +.BR MT_ST_SYSV " (デフォルト: 偽)" +このオプションが真になっていると、テープデバイスは +SystemV のルールを用いる。偽だと BSD のルールを用いる。 +.\"nakano: semantics → ルール はちと違うか? +これらのルール間の最も大きな違いは、読み込みを行っていた +デバイスがクローズされたときの振舞いである。 +System V のルールでは、テープは次のファイルマークを越えて移動する +(デバイスの利用時にこれが行われなかった場合)。 +BSD のルールではテープ位置は変更されない。 +.TP +.BR MT_NO_WAIT " (デフォルト: 偽)" +即時モード (immediate mode; コマンドの終了を待たない) +を、ある種のコマンド (rewind など) に対して有効にする。 .PP -Îã: +例: .in +4n .nf @@ -601,50 +601,50 @@ ioctl(fd, MTIOCTOP, mt_cmd); .in .RE .IP "" -¥Ç¥Ð¥¤¥¹¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤Ï +デバイスのデフォルトのブロックサイズは .B MT_ST_DEF_BLKSIZE -¤Ë¤è¤Ã¤ÆÀßÄê¤Ç¤­¡¢¥Ç¥Õ¥©¥ë¥È¤ÎÌ©ÅÙ¥³¡¼¥É¤Ï +によって設定でき、デフォルトの密度コードは .B MT_ST_DEFDENSITY -¤Ë¤è¤Ã¤ÆÀßÄê¤Ç¤­¤ë¡£ -¤³¤ì¤é¤Î¥Ñ¥é¥á¡¼¥¿¤ÎÃͤÏÁàºî¥³¡¼¥É¤È OR ¤·¤ÆÍ¿¤¨¤ë¡£ +によって設定できる。 +これらのパラメータの値は操作コードと OR して与える。 .IP "" -2.1.x °Ê¹ß¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¥¿¥¤¥à¥¢¥¦¥ÈÃͤÎÀßÄê¤Ï¡¢ -¥µ¥Ö¥³¥Þ¥ó¥É +2.1.x 以降のカーネルでは、タイムアウト値の設定は、 +サブコマンド .B MT_ST_SET_TIMEOUT -¤ËÉÃñ°Ì¤Î¥¿¥¤¥à¥¢¥¦¥ÈÃͤò -OR ¤·¤ÆÍ¿¤¨¤ë¤³¤È¤Ë¤è¤Ã¤Æ¹Ô¤¨¤ë¡£ long ¥¿¥¤¥à¥¢¥¦¥È -(´¬¤­Ìᤷ¤Ê¤É¡¢Ä¹¤¤»þ´Ö¤¬¤«¤«¤ë¥³¥Þ¥ó¥É¤ËÂФ·¤ÆÍѤ¤¤é¤ì¤ë) ¤Ï +に秒単位のタイムアウト値を +OR して与えることによって行える。 long タイムアウト +(巻き戻しなど、長い時間がかかるコマンドに対して用いられる) は .B MT_ST_SET_LONG_TIMEOUT -¤ÇÀßÄê¤Ç¤­¤ë¡£ -¥«¡¼¥Í¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤ÏÈó¾ï¤ËŤ¯¡¢¤É¤Î¥É¥é¥¤¥Ö¤Ç¤â -À®¸ù¤·¤Æ¤¤¤ë¥³¥Þ¥ó¥É¤¬·è¤·¤Æ¥¿¥¤¥à¥¢¥¦¥È¤·¤Ê¤¤¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¥É¥é¥¤¥Ð¤Ï¥¿¥¤¥à¥¢¥¦¥È¤òÂԤäƤ¤¤ë¤À¤±¤Ê¤Î¤Ë¡¢ -»É¤µ¤Ã¤¿ (stuck ¤·¤¿) ¤è¤¦¤Ë¸«¤¨¤ë¤³¤È¤¬¤¢¤ë¡£¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤ò»È¤¨¤Ð¡¢ -ÆÃÄê¤Î¥É¥é¥¤¥Ö¤ËÂФ·¤Æ¤â¤¦¾¯¤·¼ÂºÝŪ¤ÊÃͤËÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -°ì¤Ä¤Î¥Ç¥Ð¥¤¥¹¤ËÀßÄꤷ¤¿¥¿¥¤¥à¥¢¥¦¥ÈÃͤϡ¢ -¤½¤ì¤ÈƱ¤¸¥É¥é¥¤¥Ö¤Ë¥ê¥ó¥¯¤·¤¿Á´¤Æ¤Î¥Ç¥Ð¥¤¥¹¤ËŬÍѤµ¤ì¤ë¡£ +で設定できる。 +カーネルのデフォルトは非常に長く、どのドライブでも +成功しているコマンドが決してタイムアウトしないようになっている。 +したがって、ドライバはタイムアウトを待っているだけなのに、 +刺さった (stuck した) ように見えることがある。これらのコマンドを使えば、 +特定のドライブに対してもう少し実際的な値に設定することができる。 +一つのデバイスに設定したタイムアウト値は、 +それと同じドライブにリンクした全てのデバイスに適用される。 .IP "" -2.4.19 ¤ª¤è¤Ó 2.5.43 °Ê¹ß¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -¤³¤Î¥É¥é¥¤¥Ð¤Ï¥É¥é¥¤¥Ö¤Î¥¯¥ê¡¼¥Ë¥ó¥°¤¬É¬Íפ«¤É¤¦¤«¤ò¼¨¤¹ -¾õÂ֥ӥåȤò¥µ¥Ý¡¼¥È¤¹¤ë¡£ -¥É¥é¥¤¥Ö¤¬¥¯¥ê¡¼¥Ë¥ó¥°¾ðÊó¤òÊÖ¤µ¤»¤ë¤«¤É¤¦¤«¤Ï¡¢ +2.4.19 および 2.5.43 以降のカーネルでは、 +このドライバはドライブのクリーニングが必要かどうかを示す +状態ビットをサポートする。 +ドライブがクリーニング情報を返させるかどうかは、 .B MT_ST_SEL_CLN -¥µ¥Ö¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤ÆÀßÄê¤Ç¤­¤ë¡£ -¤³¤ÎÃͤ¬ 0 ¤À¤È¡¢¥¯¥ê¡¼¥Ë¥ó¥°¥Ó¥Ã¥È¤Ï¾ï¤Ë 0 ¤È¤Ê¤ë¡£ -Ãͤò 1 ¤Ë¤¹¤ë¤È¡¢SCSI-3 ɸ½à¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë -TapeAlert ¥Ç¡¼¥¿¤¬ÍѤ¤¤é¤ì¤ë (¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤) -ÃͤȤ·¤Æ¤Ï 2 ¤«¤é 17 ¤¬Í½Ì󤵤ì¤Æ¤¤¤ë¡£ -Äã°Ì¦¤Î 8 ¥Ó¥Ã¥È¤¬ 18 °Ê¾å¤À¤È¡¢³ÈÄ¥¾õÂ֥ǡ¼¥¿ (extended sense data) -¤¬ÍѤ¤¤é¤ì¤ë¡£Âè 9-16 ¥Ó¥Ã¥È¤ÏÃíÌܤ¹¤Ù¤­¥Ó¥Ã¥È¤òÁªÂò¤¹¤ë¤¿¤á¤Î¥Þ¥¹¥¯¤ò»ØÄꤷ¡¢ -Âè 17-23 ¥Ó¥Ã¥È¤Ïõ¤¹¤Ù¤­¥Ó¥Ã¥È¥Ñ¥¿¡¼¥ó¤ò»ØÄꤹ¤ë¡£ -¤³¤Î¥Ó¥Ã¥È¥Ñ¥¿¡¼¥ó¤¬ 0 ¤Î¤È¤­¤Ï¡¢ -¥Þ¥¹¥¯²¼¤Î¥Ó¥Ã¥È (·²) ¤¬¥¯¥ê¡¼¥Ë¥ó¥°Í×µá¤ò¼¨¤¹¡£¥Ñ¥¿¡¼¥ó¤¬ 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢ -¤³¤Î¥Ñ¥¿¡¼¥ó¤¬¥Þ¥¹¥¯¸å¤Î¾õÂ֥ǡ¼¥¿¥Ð¥¤¥È¤Ë¥Þ¥Ã¥Á¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SS "MTIOCGET \(em ¥¹¥Æ¡¼¥¿¥¹¤Î¼èÆÀ" +サブコマンドによって設定できる。 +この値が 0 だと、クリーニングビットは常に 0 となる。 +値を 1 にすると、SCSI-3 標準で規定されている +TapeAlert データが用いられる (まだ実装されていない) +値としては 2 から 17 が予約されている。 +低位側の 8 ビットが 18 以上だと、拡張状態データ (extended sense data) +が用いられる。第 9-16 ビットは注目すべきビットを選択するためのマスクを指定し、 +第 17-23 ビットは探すべきビットパターンを指定する。 +このビットパターンが 0 のときは、 +マスク下のビット (群) がクリーニング要求を示す。パターンが 0 でなければ、 +このパターンがマスク後の状態データバイトにマッチしなければならない。 +.SS "MTIOCGET \(em ステータスの取得" .PP -¤³¤Î¥ê¥¯¥¨¥¹¥È¤Ï +このリクエストは .IR "(struct mtget *)" -¤È¤¤¤¦·¿¤Î°ú¿ô¤ò¤È¤ë¡£ +という型の引数をとる。 .PP .in +4n .nf @@ -663,124 +663,124 @@ struct mtget { .fi .in .IP \fImt_type\fP 11 -¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëÃæ¤Ë¤Ï¿¤¯¤Î +ヘッダファイル中には多くの .I mt_type -¤ÎÃͤ¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢¸½¹Ô¤Î¥É¥é¥¤¥Ð¤ÏÈÆÍѤΥ¿¥¤¥×¤Ç¤¢¤ë +の値が定義されているが、現行のドライバは汎用のタイプである .B MT_ISSCSI1 -(ÈÆÍÑ SCSI-1 ¥Æ¡¼¥×) ¤ª¤è¤Ó +(汎用 SCSI-1 テープ) および .B MT_ISSCSI2 -(ÈÆÍÑ SCSI-2 ¥Æ¡¼¥×) ¤Î¤ß¤òÊÖ¤¹¡£ +(汎用 SCSI-2 テープ) のみを返す。 .IP \fImt_resid\fP -¸½ºß¤Î¥Æ¡¼¥×°ÌÃÖÈֹ档 +現在のテープ位置番号。 .IP \fImt_dsreg\fP -¥É¥é¥¤¥Ö¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ÈÌ©Å٤θ½ºß¤ÎÀßÄê¤òÊó¹ð¤¹¤ë -(²¼°Ì 24 ¥Ó¥Ã¥È¤¬¥Ö¥í¥Ã¥¯¥µ¥¤¥º¡¢¾å°Ì 8 ¥Ó¥Ã¥È¤¬Ì©ÅÙ)¡£ -¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢ +ドライブのブロックサイズと密度の現在の設定を報告する +(下位 24 ビットがブロックサイズ、上位 8 ビットが密度)。 +これらのフィールドは、 .BR MT_ST_BLKSIZE_SHIFT , .BR MT_ST_BLKSIZE_MASK , .BR MT_ST_DENSITY_SHIFT , .BR MT_ST_DENSITY_MASK -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で定義されている。 .IP \fImt_gstat\fP -ÈÆÍѤΠ(¥Ç¥Ð¥¤¥¹¤Ë°Í¸¤·¤Ê¤¤) ¥¹¥Æ¡¼¥¿¥¹¤òÊó¹ð¤¹¤ë¡£ -¤³¤ì¤é¤Î¥¹¥Æ¡¼¥¿¥¹¥Ó¥Ã¥È¤ò¥Æ¥¹¥È¤¹¤ë¤¿¤á¤Î¥Þ¥¯¥í¤¬ -¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +汎用の (デバイスに依存しない) ステータスを報告する。 +これらのステータスビットをテストするためのマクロが +ヘッダファイルで定義されている。 .RS .HP 4 \fBGMT_EOF\fP(\fIx\fP): -¥Æ¡¼¥×¤Ï¥Õ¥¡¥¤¥ë¥Þ¡¼¥¯¤Îľ¸å¤Ë°ÌÃÖ¤·¤Æ¤¤¤ë¡£ +テープはファイルマークの直後に位置している。 .RB ( MTSEEK -Áàºî¤Î¸å¤Ç¤Ï¾ï¤Ëµ¶) +操作の後では常に偽) .HP \fBGMT_BOT\fP(\fIx\fP): -¥Æ¡¼¥×¤ÏºÇ½é¤Î¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤Ë°ÌÃÖ¤·¤Æ¤¤¤ë¡£ +テープは最初のファイルの先頭に位置している。 .RB ( MTSEEK -Áàºî¤Î¸å¤Ç¤Ï¾ï¤Ëµ¶) +操作の後では常に偽) .HP \fBGMT_EOT\fP(\fIx\fP): -¥Æ¡¼¥×Áàºî¤Ï¥Æ¡¼¥×¤ÎʪÍýŪ¤Ê½ªÅÀ¤Ë㤷¤¿¡£ +テープ操作はテープの物理的な終点に達した。 .HP \s-1GMT_SM(\s+1\fIx\fP\s-1)\s+1: -¥Æ¡¼¥×¤Ï¸½ºß¥»¥Ã¥È¥Þ¡¼¥¯¤Ë°ÌÃÖ¤·¤Æ¤¤¤ë¡£ +テープは現在セットマークに位置している。 .RB ( MTSEEK -Áàºî¤Î¸å¤Ç¤Ï¾ï¤Ëµ¶) +操作の後では常に偽) .HP \fBGMT_EOD\fP(\fIx\fP): -¥Æ¡¼¥×¤Ïµ­Ï¿¥Ç¡¼¥¿¤ÎËöÈø¤Ë°ÌÃÖ¤·¤Æ¤¤¤ë¡£ +テープは記録データの末尾に位置している。 .HP \fBGMT_WR_PROT\fP(\fIx\fP): -¥É¥é¥¤¥Ö¤Ï¥é¥¤¥È¥×¥í¥Æ¥¯¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï¥É¥é¥¤¥Ö¤Ë¤è¤Ã¤Æ¤Ï¡¢ -¥É¥é¥¤¥Ö¤¬¸½ºß¤Î¥á¥Ç¥£¥¢¥¿¥¤¥×¤Ø¤Î½ñ¤­¹þ¤ß¤ò -¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤»ö¤ò°ÕÌ£¤¹¤ë¾ì¹ç¤â¤¢¤ë¡£ +ドライブはライトプロテクトされている。 +これはドライブによっては、 +ドライブが現在のメディアタイプへの書き込みを +サポートしていない事を意味する場合もある。 .HP \fBGMT_ONLINE\fP(\fIx\fP): -¤â¤Ã¤È¤âºÇ¶á¤Î +もっとも最近の .BR open (2) -¤¬¡¢¥Æ¡¼¥×¤¬Æþ¤Ã¤Æ¤¤¤ÆÁàºî¤Î½àÈ÷¤¬¤Ç¤­¤Æ¤¤¤ë¥É¥é¥¤¥Ö¤ò¸¡ÃΤ·¤¿¡£ +が、テープが入っていて操作の準備ができているドライブを検知した。 .HP \fBGMT_D_6250\fP(\fIx\fP), \fBGMT_D_1600\fP(\fIx\fP), \fBGMT_D_800\fP(\fIx\fP): -¤³¤Î¡ÖÈÆÍѡפΥ¹¥Æ¡¼¥¿¥¹¾ðÊó¤Ï¡¢ -9-¥È¥é¥Ã¥¯ \(12" ¥Æ¡¼¥×¥É¥é¥¤¥Ö¤Î¾ì¹ç¤Ë¤Î¤ß¡¢ -¸½ºß¤ÎÌ©ÅÙ¤ÎÀßÄê¤òÊó¹ð¤¹¤ë¡£ +この「汎用」のステータス情報は、 +9-トラック \(12" テープドライブの場合にのみ、 +現在の密度の設定を報告する。 .HP \fBGMT_DR_OPEN\fP(\fIx\fP): -¥É¥é¥¤¥Ö¤Ë¥Æ¡¼¥×¤¬Æþ¤Ã¤Æ¤¤¤Ê¤¤¡£ +ドライブにテープが入っていない。 .HP \fBGMT_IM_REP_EN\fP(\fIx\fP): -¨»þÊó¹ð¥â¡¼¥É¡£ write ¥³¡¼¥ë¤¬Ìá¤Ã¤¿¤È¤­¡¢ -¥Æ¡¼¥×¤ËÂФ·¤ÆʪÍýŪ¤Ê½ñ¤­¹þ¤ß¤¬¹Ô¤ï¤ì¤¿¤«¤É¤¦¤«¤òÊݾڤǤ­¤Ê¤¤¾ì¹ç¤Ë¡¢ -¤³¤Î¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£¥É¥é¥¤¥Ð¤¬¥Ç¡¼¥¿¤ò¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤»¤º¡¢ -¥É¥é¥¤¥Ö¤â¥Ç¡¼¥¿¤ò¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤·¤Ê¤¤¾ì¹ç¤Ë¸Â¤Ã¤Æ¡¢ -¤³¤ÎÃÍ¤Ï 0 ¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ +即時報告モード。 write コールが戻ったとき、 +テープに対して物理的な書き込みが行われたかどうかを保証できない場合に、 +このビットがセットされる。ドライバがデータをバッファリングせず、 +ドライブもデータをバッファリングしない場合に限って、 +この値は 0 にセットされる。 .HP \fBGMT_CLN\fP(\fIx\fP): -¥É¥é¥¤¥Ö¤¬¥¯¥ê¡¼¥Ë¥ó¥°¤òÍ׵ᤷ¤Æ¤¤¤ë¡£ -¥«¡¼¥Í¥ë 2.4.19 ¤ª¤è¤Ó 2.5.43 °Ê¹ß¤Ç¼ÂÁõ¤µ¤ì¤¿¡£ +ドライブがクリーニングを要求している。 +カーネル 2.4.19 および 2.5.43 以降で実装された。 .RE .IP \fImt_erreg\fP .I mt_erreg -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥Õ¥£¡¼¥ë¥É¤Ï°ì¤Ä¤À¤±¤Ç¡¢ -²¼°Ì¤Î 16 ¥Ó¥Ã¥È¤¬¥¨¥é¡¼¤ò¥ê¥«¥Ð¡¼¤·¤¿²ó¿ô¤Ç¤¢¤ë +で定義されているフィールドは一つだけで、 +下位の 16 ビットがエラーをリカバーした回数である .RB ( MT_ST_SOFTERR_SHIFT -¤È +と .B MT_ST_SOFTERR_MASK -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ -¥É¥é¥¤¥Ö¤ÎÊó¹ð¤¹¤ë¥¨¥é¡¼¥ê¥«¥Ð¡¼¿ô¤ÈÌ·½â¤¹¤ë¤³¤È¤¬¤¢¤ë¤Î¤Ç¡¢ -¤³¤Î¿ô¤Ï¤Û¤È¤ó¤É¤Î¾ì¹ç°Ý»ý¤µ¤ì¤Ê¤¤ -(¤Û¤È¤ó¤É¤Î¥É¥é¥¤¥Ö¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥½¥Õ¥È¥¨¥é¡¼¤òÊó¹ð¤·¤Ê¤¤¡£ -¤·¤«¤·¤³¤ì¤Ï SCSI MODE SELECT ¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤ÆÊѹ¹¤Ç¤­¤ë)¡£ +で定義されている)。 +ドライブの報告するエラーリカバー数と矛盾することがあるので、 +この数はほとんどの場合維持されない +(ほとんどのドライブでは、デフォルトではソフトエラーを報告しない。 +しかしこれは SCSI MODE SELECT コマンドによって変更できる)。 .IP \fImt_fileno\fP -(¥¼¥í¤«¤é¿ô¤¨¤¿) ¸½ºß¤Î¥Õ¥¡¥¤¥ëÈÖ¹æ¤òÊó¹ð¤¹¤ë¡£ -¥Õ¥¡¥¤¥ëÈֹ椬¤ï¤«¤é¤Ê¤¤»þ (Î㤨¤Ð +(ゼロから数えた) 現在のファイル番号を報告する。 +ファイル番号がわからない時 (例えば .B MTBSS -¤ä +や .B MTSEEK -¤Î¸å¤Ê¤É) ¤Ë¤Ï \-1 ¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ +の後など) には \-1 にセットされる。 .IP \fImt_blkno\fP -¸½ºß¤Î¥Õ¥¡¥¤¥ëÃæ¤Î(¥¼¥í¤«¤é¿ô¤¨¤¿)¥Ö¥í¥Ã¥¯ÈÖ¹æ¤òÊó¹ð¤¹¤ë¡£ -¥Ö¥í¥Ã¥¯Èֹ椬¤ï¤«¤é¤Ê¤¤»þ (Î㤨¤Ð +現在のファイル中の(ゼロから数えた)ブロック番号を報告する。 +ブロック番号がわからない時 (例えば .BR MTBSF , .BR MTBSS , .BR MTSEEK -¤Î¸å¤Ê¤É) ¤Ë¤Ï \-1 ¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ +の後など) には \-1 にセットされる。 .PD -.SS "MTIOCPOS \(em ¥Æ¡¼¥×°ÌÃ֤μèÆÀ" +.SS "MTIOCPOS \(em テープ位置の取得" .PP -¤³¤Î¥ê¥¯¥¨¥¹¥È¤Ï +このリクエストは .I "(struct mtpos *)" -·¿¤Î°ú¿ô¤ò¤È¤ê¡¢¥É¥é¥¤¥Ö¤¬ÊÝ»ý¤·¤Æ¤¤¤ë¸½ºß¤Î¥Æ¡¼¥×¥Ö¥í¥Ã¥¯ÈÖ¹æ¤òÊó¹ð¤¹¤ë¡£ -¤³¤ì¤Ï¡¢ +型の引数をとり、ドライブが保持している現在のテープブロック番号を報告する。 +これは、 .B MTIOCGET -¤Ë¤è¤êÊÖ¤µ¤ì¤ë +により返される .I mt_blkno -¤ÈƱ¤¸¤Ç¤Ï¤Ê¤¤¡£ -¥É¥é¥¤¥Ö¤Ï +と同じではない。 +ドライブは .B "READ POSITION" -¥³¥Þ¥ó¥É (¥Ç¥Ð¥¤¥¹¸ÇÍ­¥¢¥É¥ì¥¹) -¤ò¥µ¥Ý¡¼¥È¤¹¤ë SCSI-2¥É¥é¥¤¥Ö¤«¡¢ -Tandberg ¸ß´¹¤Î SCSI-1 ¥É¥é¥¤¥Ö -(Tandberg, Archive, Viper, Wangtek, ... ) ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +コマンド (デバイス固有アドレス) +をサポートする SCSI-2ドライブか、 +Tandberg 互換の SCSI-1 ドライブ +(Tandberg, Archive, Viper, Wangtek, ... ) でなければならない。 .PP .in +4n .nf @@ -790,115 +790,115 @@ struct mtpos { }; .fi .in -.SH ÊÖ¤êÃÍ +.SH 返り値 .TP 14 .TP .B EACCES -½ñ¤­¹þ¤ßÊݸ¤ì¤Æ¤¤¤ë¥Æ¡¼¥×¤Ë½ñ¤­¹þ¤ß¤Þ¤¿¤Ï¾Ãµî¤ò¹Ô¤ª¤¦¤È¤·¤¿¡£ -(¤³¤Î¥¨¥é¡¼¤Ï +書き込み保護されているテープに書き込みまたは消去を行おうとした。 +(このエラーは .BR open (2) -Ãæ¤Ë¤Ï¸¡ÃΤµ¤ì¤Ê¤¤¡£) +中には検知されない。) .TP .B EBUSY -¥Ç¥Ð¥¤¥¹¤¬¤¹¤Ç¤Ë»È¤ï¤ì¤Æ¤¤¤ë¤«¡¢ -¥É¥é¥¤¥Ð¤¬¥Ð¥Ã¥Õ¥¡¤ò³äÅö¤Æ¤é¤ì¤Ê¤«¤Ã¤¿¡£ +デバイスがすでに使われているか、 +ドライバがバッファを割当てられなかった。 .TP .B EFAULT -¥³¥Þ¥ó¥É¤Î°ú¿ô¤¬¡¢ -¸Æ¤Ó¤À¤·¥×¥í¥»¥¹¤Ë°¤·¤Æ¤¤¤Ê¤¤¥á¥â¥ê°ÌÃÖ¤ò»Ø¤·¤Æ¤¤¤ë¡£ +コマンドの引数が、 +呼びだしプロセスに属していないメモリ位置を指している。 .TP .B EINVAL .BR ioctl (2) -¤Î°ú¿ô¤¬ÉÔÀµ¤Ç¤¢¤ë¤«¡¢Í׵ᤷ¤¿¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤¬ÉÔÀµ¡£ +の引数が不正であるか、要求したブロックサイズが不正。 .TP .B EIO 14 -Í׵ᤵ¤ì¤¿Áàºî¤¬ºÇ¸å¤Þ¤Ç¹Ô¤¨¤Ê¤«¤Ã¤¿¡£ +要求された操作が最後まで行えなかった。 .TP .B ENOMEM .BR read (2) -¤Î¥Ð¥¤¥È¿ô¤¬¡¢¥Æ¡¼¥×¤Ë¤¢¤ë¼¡¤ÎʪÍý¥Ö¥í¥Ã¥¯¤è¤ê¾®¤µ¤¤ -(2.2.18 ¤ª¤è¤Ó 2.4.0-test6 °ÊÁ°¤Ç¤Ï¡¢ÌۤäÆ;ʬ¤Î¥Ð¥¤¥È¤ò̵»ë¤·¤Æ¤¤¤¿)¡£ +のバイト数が、テープにある次の物理ブロックより小さい +(2.2.18 および 2.4.0-test6 以前では、黙って余分のバイトを無視していた)。 .TP .B ENOSPC -¥á¥Ç¥£¥¢¤Î½ªÅÀ¤Ë㤷¤¿¤¿¤á¡¢½ñ¤­¹þ¤ßÁàºî¤¬´°Î»¤·¤Ê¤«¤Ã¤¿¡£ +メディアの終点に達したため、書き込み操作が完了しなかった。 .TP .B ENOSYS -ÉÔÌÀ¤Ê -.BR ioctl (2)¡£ +不明な +.BR ioctl (2)。 .TP .B ENXIO -¥ª¡¼¥×¥ó¤¹¤ë»þ¤Ë¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¤¬Â¸ºß¤·¤Ê¤«¤Ã¤¿¡£ +オープンする時にテープデバイスが存在しなかった。 .TP .B EOVERFLOW -¥É¥é¥¤¥Ð¤ÎÆâÉô¥Ð¥Ã¥Õ¥¡¤è¤êÂ礭¤¤¥µ¥¤¥º¤Î²ÄÊÑĹ¥Ö¥í¥Ã¥¯¤ò -Æɤ߽ñ¤­¤·¤è¤¦¤È¤·¤¿¡£ +ドライバの内部バッファより大きいサイズの可変長ブロックを +読み書きしようとした。 .TP .B EROFS -¥É¥é¥¤¥Ö¤ËÆþ¤Ã¤Æ¤¤¤ë¥Æ¡¼¥×¤¬¥é¥¤¥È¥×¥í¥Æ¥¯¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢ +ドライブに入っているテープがライトプロテクトされている場合に、 .B O_WRONLY -¤Þ¤¿¤Ï +または .B O_RDWR -¤Ç open ¤ò¹Ô¤ª¤¦¤È¤·¤¿¡£ -.SH ¥Õ¥¡¥¤¥ë +で open を行おうとした。 +.SH ファイル .TP 12 .I /dev/st* -¼«Æ°´¬¤­Ìᤷ¤Î SCSI ¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¡£ +自動巻き戻しの SCSI テープデバイス。 .TP 12 .I /dev/nst* -´¬¤­Ìᤷ¤ò¤·¤Ê¤¤ SCSI ¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¡£ -.\" .SH Ãø¼Ô -.\" ¤³¤Î¥É¥é¥¤¥Ð¤Ï -.\" Dwayne Forsyth ¤Î½ñ¤¤¤¿¥É¥é¥¤¥Ð¤ò¤â¤È¤Ë¤·¤Æ -.\" Kai M\(:akisara (Kai.Makisara@metla.fi) ¤¬½ñ¤¤¤¿¡£ -.\" ¾¤Ë¤â²¿¿Í¤«¤Î¿Í¡¹¤¬¤³¤Î¥É¥é¥¤¥Ð¤Ë¹×¸¥¤·¤Æ¤­¤¿¡£ -.SH Ãí°Õ +巻き戻しをしない SCSI テープデバイス。 +.\" .SH 著者 +.\" このドライバは +.\" Dwayne Forsyth の書いたドライバをもとにして +.\" Kai M\(:akisara (Kai.Makisara@metla.fi) が書いた。 +.\" 他にも何人かの人々がこのドライバに貢献してきた。 +.SH 注意 .IP 1. 4 -°Û¤Ê¤ë¥·¥¹¥Æ¥à¤Ç¥Ç¡¼¥¿¤òÁê¸ß¤Ë¤ä¤ê¤È¤ê¤¹¤ë¾ì¹ç¡¢ -ξÊý¤Î¥·¥¹¥Æ¥à¤ÇʪÍýŪ¤Ê¥Æ¡¼¥×¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ò°ìÃפµ¤»¤ëɬÍפ¬¤¢¤ë¡£ -µ¯Æ°Ä¾¸å¤Î¥É¥é¥¤¥Ö¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¡¢Âç¿¿ô¤Î OS ¤¬¤½¤Î¥Ç¥Ð¥¤¥¹¤ËÂФ·¤Æ -ÍѤ¤¤Æ¤¤¤ëÃͤȰۤʤäƤ¤¤ë¤³¤È¤â¤è¤¯¤¢¤ë¡£Â¿¤¯¤Î¥·¥¹¥Æ¥à¤Ï¡¢ -¥É¥é¥¤¥Ö¤¬Âбþ¤·¤Æ¤¤¤ì¤Ð²ÄÊÑĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤òÍѤ¤¤ë¡£ DAT¡¢ -8mm ¥Ø¥ê¥«¥ë¥¹¥­¥ã¥ó¥É¥é¥¤¥Ö¡¢ DLT ¤Ê¤É¤ÎºÇ¶á¤Î¥É¥é¥¤¥Ö¤Î -¤Û¤È¤ó¤É¤Ï²ÄÊÑĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤ËÂбþ¤·¤Æ¤¤¤ë¤«¤é¡£ -¤³¤ì¤é¤Î¥É¥é¥¤¥Ö¤Ï (¾¯¤Ê¤¯¤È¤â¾¤Î¥·¥¹¥Æ¥à¤È¤Î¥Ç¡¼¥¿¸ò´¹¤¬ -¤¢¤ë¾ì¹ç¤Ï)¡¢ Linux ¤Ç¤â²ÄÊÑĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤Ç»È¤¦¤Û¤¦¤¬ -Îɤ¤¤«¤â¤·¤ì¤Ê¤¤ (¤Ä¤Þ¤ê¥·¥¹¥Æ¥à¤Îµ¯Æ°»þ¤Î¥â¡¼¥ÉÀßÄê¤Ë +異なるシステムでデータを相互にやりとりする場合、 +両方のシステムで物理的なテープブロックサイズを一致させる必要がある。 +起動直後のドライブのパラメータは、大多数の OS がそのデバイスに対して +用いている値と異なっていることもよくある。多くのシステムは、 +ドライブが対応していれば可変長ブロックモードを用いる。 DAT、 +8mm ヘリカルスキャンドライブ、 DLT などの最近のドライブの +ほとんどは可変長ブロックモードに対応しているから。 +これらのドライブは (少なくとも他のシステムとのデータ交換が +ある場合は)、 Linux でも可変長ブロックモードで使うほうが +良いかもしれない (つまりシステムの起動時のモード設定に .B MTSETBLK -¤Þ¤¿¤Ï +または .B MTSETDEFBLK -¤òÍѤ¤¤ë)¡£ -·çÅÀ¤È¤·¤Æ¤Ï¡¢Èæ³ÓŪÂ礭¤Ê¥Æ¡¼¥×¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤òÍѤ¤¤Ê¤±¤ì¤Ð¡¢ -SCSI ¥Ð¥¹¾å¤ÇËþ­¤Î¤¤¤¯Å¾Á÷®ÅÙ¤¬ÆÀ¤é¤ì¤Ê¤¤¤³¤È¤Ç¤¢¤ë¡£ +を用いる)。 +欠点としては、比較的大きなテープブロックサイズを用いなければ、 +SCSI バス上で満足のいく転送速度が得られないことである。 .IP 2. -¿¤¯¤Î¥×¥í¥°¥é¥à +多くのプログラム .RB ( tar (1) -¤Ê¤É) ¤Ç¤Ï¡¢ -¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤é¥æ¡¼¥¶¤¬¥Ö¥í¥Ã¥¯´ØÏ¢¤ÎÃͤò»ØÄê¤Ç¤­¤ë¡£ -¤³¤ÎÃͤˤè¤Ã¤Æ¥Æ¡¼¥×¾å¤ÎʪÍýŪ¤Ê¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ò·èÄê¤Ç¤­¤ë¤Î¤Ï¡¢ -²ÄÊÑĹ¥Ö¥í¥Ã¥¯¥â¡¼¥É¤Ë¸Â¤é¤ì¤ë¤³¤È¤ËÃí°Õ¡£ +など) では、 +コマンドラインからユーザがブロック関連の値を指定できる。 +この値によってテープ上の物理的なブロックサイズを決定できるのは、 +可変長ブロックモードに限られることに注意。 .IP 3. -SCSI ¥Æ¡¼¥×¥É¥é¥¤¥Ö¤òÍѤ¤¤ë¤Ë¤Ï¡¢´ðËܤΠSCSI ¥É¥é¥¤¥Ð¡¢ -SCSI ¥¢¥À¥×¥¿¤Î¥É¥é¥¤¥Ð¡¢ SCSI ¥Æ¡¼¥×¥É¥é¥¤¥Ð¤Î¤¹¤Ù¤Æ¤¬ -¥«¡¼¥Í¥ë¤ËÁȤ߹þ¤Þ¤ì¤Æ¤¤¤ë¤«¡¢¤¢¤ë¤¤¤Ï¥â¥¸¥å¡¼¥ë¤È¤·¤Æ¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë -ɬÍפ¬¤¢¤ë¡£ SCSI ¥Æ¡¼¥×¥É¥é¥¤¥Ð¤¬¤Ê¤¤¤È¡¢ -¥É¥é¥¤¥Ö¤Ïǧ¼±¤µ¤ì¤ë¤¬¡¢ -¤³¤Î¥Ú¡¼¥¸¤Çµ­½Ò¤µ¤ì¤Æ¤¤¤ë¥Æ¡¼¥×¤Î¥µ¥Ý¡¼¥È¤ÏÍøÍѤǤ­¤Ê¤¤¡£ +SCSI テープドライブを用いるには、基本の SCSI ドライバ、 +SCSI アダプタのドライバ、 SCSI テープドライバのすべてが +カーネルに組み込まれているか、あるいはモジュールとしてロードされている +必要がある。 SCSI テープドライバがないと、 +ドライブは認識されるが、 +このページで記述されているテープのサポートは利用できない。 .IP 4. -¥É¥é¥¤¥Ð¤Ï¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò¥³¥ó¥½¡¼¥ë¤È¥í¥°¤È¤Ë½ñ¤­½Ð¤¹¡£ -¥«¡¼¥Í¥ëÀßÄê¤Ç verbose SCSI messages ¤¬Í­¸ú¤Ë¤µ¤ì¤Æ¤¤¤ë¤È¡¢ -SENSE ¥³¡¼¥É¤¬¼«Æ°Åª¤Ë¥Æ¥­¥¹¥È¤ËÊÑ´¹¤µ¤ì¤Æ¡¢ -¤¤¤¯¤Ä¤«¤Î¥á¥Ã¥»¡¼¥¸¤Ë½ñ¤­¤À¤µ¤ì¤ë¡£ +ドライバはエラーメッセージをコンソールとログとに書き出す。 +カーネル設定で verbose SCSI messages が有効にされていると、 +SENSE コードが自動的にテキストに変換されて、 +いくつかのメッセージに書きだされる。 .IP 5. -¤³¤Î¥É¥é¥¤¥Ð¤ÎÆâÉô¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤Ï¡¢¸ÇÄê¥Ö¥í¥Ã¥¯¥â¡¼¥É¤Ê¤é +このドライバの内部バッファリングは、固定ブロックモードなら .BR read (2) -¤ä +や .BR write (2) -¤Î¥Ð¥¤¥È¿ô¤¬¾®¤µ¤¯¤Æ¤âÎɤ¤¥¹¥ë¡¼¥×¥Ã¥È¤ò½Ð¤¹¡£ -ľÀÜžÁ÷¤Ç¤Ï¤³¤ì¤ÏÉÔ²Äǽ¤Ê¤Î¤Ç¡¢2.6 ¥«¡¼¥Í¥ë¤Ë°Ü¹Ô¤·¤¿¤È¤­¤Ë¶Ã¤¯¤«¤â¤·¤ì¤Ê¤¤¡£ -²ò·èË¡¤È¤·¤Æ¤Ï¡¢¥½¥Õ¥È¥¦¥§¥¢¤Ë¤è¤êÂ礭¤ÊžÁ÷¤ò¹Ô¤¦¤è¤¦ÅÁ¤¨¤ë -(¤¿¤¤¤Æ¤¤¤Ï¤è¤êÂ礭¤Ê¥Ö¥í¥Ã¥¯¤ò»È¤ï¤»¤ë) ¤³¤È¤Ç¤¢¤ë¡£ -¤³¤ì¤¬ÉÔ²Äǽ¤Ê¤é¡¢Ä¾ÀÜžÁ÷¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -.\" .SH Ãøºî¸¢ +のバイト数が小さくても良いスループットを出す。 +直接転送ではこれは不可能なので、2.6 カーネルに移行したときに驚くかもしれない。 +解決法としては、ソフトウェアにより大きな転送を行うよう伝える +(たいていはより大きなブロックを使わせる) ことである。 +これが不可能なら、直接転送を無効にすることもできる。 +.\" .SH 著作権 .\" Copyright \(co 1995 Robert K. Nichols. .\" .br .\" Copyright \(co 1999-2005 Kai M\(:akisara. @@ -907,13 +907,13 @@ SENSE .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" Additional permissions are contained in the header of the source file. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR mt (1) .PP -¥«¡¼¥Í¥ë¥½¡¼¥¹¤Î +カーネルソースの .I drivers/scsi/README.st -¤ä +や .I Documentation/scsi/st.txt -(¥«¡¼¥Í¥ë 2.6 °Ê¹ß) ¤Î³Æ¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢ -¥É¥é¥¤¥Ð¤Ë´Ø¤¹¤ë¤è¤ê¿·¤·¤¤¾ðÊó¤ä¡¢ -¤½¤ÎÀßÄê²Äǽ¤ÊÈϰϤ˴ؤ¹¤ëÆâÍƤ¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +(カーネル 2.6 以降) の各ファイルには、 +ドライバに関するより新しい情報や、 +その設定可能な範囲に関する内容が含まれている。 diff --git a/release/man4/tty.4 b/release/man4/tty.4 index 43021f0c..c517c8b9 100644 --- a/release/man4/tty.4 +++ b/release/man4/tty.4 @@ -33,50 +33,50 @@ .\" Updated Fri Aug 16 00:04:53 JST 2002 .\" by Akihiro MOTOKI .\" -.\" WORD: terminal üËö -.\" WORD: process ¥×¥í¥»¥¹ -.\" WORD: controlling terminal À©¸æüËö -.\" WORD: file descriptor ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +.\" WORD: terminal 端末 +.\" WORD: process プロセス +.\" WORD: controlling terminal 制御端末 +.\" WORD: file descriptor ファイルディスクリプタ .\" .TH TTY 4 2003-04-07 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -tty \- À©¸æüËö -.SH ÀâÌÀ -\fI/dev/tty\fP ¥Õ¥¡¥¤¥ë¤Ï¡¢¥á¥¸¥ã¡¼ÈÖ¹æ 5¡¢¥Þ¥¤¥Ê¡¼ÈÖ¹æ 0 ¤Î¥­¥ã¥é¥¯¥¿¡¼ -¥Ç¥Ð¥¤¥¹¤Ç¤¢¤ë¡£Ä̾¤½¤Î¥â¡¼¥É¤Ï 0666¡¢¥ª¡¼¥Ê.¥°¥ë¡¼¥×¤Ï root.tty ¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ -¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤¬Â¸ºß¤¹¤ë¾ì¹ç¡¢¤³¤Î¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë¤Ï¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤È -Ʊ¤¸¤â¤Î¤òɽ¤¹¡£ +.SH 名前 +tty \- 制御端末 +.SH 説明 +\fI/dev/tty\fP ファイルは、メジャー番号 5、マイナー番号 0 のキャラクター +デバイスである。通常、そのモードは 0666、オーナ.グループは root.tty となっている。 +プロセスの制御端末が存在する場合、このデバイスファイルはプロセスの制御端末と +同じものを表す。 .LP -\fBtty\fP ¤¬»²¾È¤·¤Æ¤¤¤ë¥Ç¥Ð¥¤¥¹¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë +\fBtty\fP が参照しているデバイスがサポートしている .BR ioctl (2) -Í×µá¤Ë -²Ã¤¨¤Æ¡¢ +要求に +加えて、 .BR ioctl (2) -Í×µá \fBTIOCNOTTY\fP ¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +要求 \fBTIOCNOTTY\fP がサポートされている。 .SS TIOCNOTTY -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ò¤½¤ÎÀ©¸æüËö¤«¤éÀÚ¤êÎ¥¤¹¡£ +呼び出し元のプロセスをその制御端末から切り離す。 .sp -¤½¤Î¥×¥í¥»¥¹¤¬¥»¥Ã¥·¥ç¥ó¡¦¥ê¡¼¥À¡¼ (session leader) ¤Î¾ì¹ç¡¢ -¥·¥°¥Ê¥ë +そのプロセスがセッション・リーダー (session leader) の場合、 +シグナル .B SIGHUP -¤È +と .B SIGCONT -¤¬¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¡¦¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤ËÁ÷¤é¤ì¡¢ -¥«¥ì¥ó¥È¡¦¥»¥Ã¥·¥ç¥ó¤Ë°¤¹Á´¤Æ¤Î¥×¥í¥»¥¹¤Ë¤Ä¤¤¤Æ³Æ¡¹¤ÎÀ©¸æüËö¤¬ÀÚ¤êÎ¥¤µ¤ì¤ë¡£ +がフォアグラウンド・プロセス・グループに送られ、 +カレント・セッションに属す全てのプロセスについて各々の制御端末が切り離される。 .sp -¤³¤Î +この .BR ioctl (2) -¸Æ¤Ó½Ð¤·¤Ï \fI/dev/tty\fP ¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¡¦ -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤Î¤ßºîÍѤ¹¤ë¡£¤³¤Îµ¡Ç½¤Ï¡¢¥æ¡¼¥¶¤Ë¤è¤Ã¤ÆüËö¤«¤é -µ¯Æ°¤µ¤ì¤¿¥Ç¡¼¥â¥ó¥×¥í¥»¥¹¤Ë¤è¤ê»ÈÍѤµ¤ì¤ë¡£ -¤½¤Î¥×¥í¥»¥¹¤Ï \fI/dev/tty\fP ¤ò¥ª¡¼¥×¥ó¤·¤è¤¦¤È»î¤ß¤ë¡£ -¥ª¡¼¥×¥ó¤ËÀ®¸ù¤¹¤ë¤È¡¢¤½¤Î¥×¥í¥»¥¹¤Ï \fBTIOCNOTTY\fP ¤ò»È¤Ã¤Æ -¼«Ê¬¼«¿È¤òüËö¤«¤éÀÚ¤êÎ¥¤¹¡£¥ª¡¼¥×¥ó¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¡¢¤½¤Î¥×¥í¥»¥¹¤¬ -üËö¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤Æ¤¤¤Ê¤¤¤Î¤ÏÌÀ¤é¤«¤Ç¤¢¤ê¡¢¼«¿È¤òüËö¤«¤éÀÚ¤êÎ¥¤¹ -ɬÍפϤʤ¤¡£ -.SH ¥Õ¥¡¥¤¥ë +呼び出しは \fI/dev/tty\fP に結びつけられたファイル・ +ディスクリプタにのみ作用する。この機能は、ユーザによって端末から +起動されたデーモンプロセスにより使用される。 +そのプロセスは \fI/dev/tty\fP をオープンしようと試みる。 +オープンに成功すると、そのプロセスは \fBTIOCNOTTY\fP を使って +自分自身を端末から切り離す。オープンに失敗した場合、そのプロセスが +端末に結びつけられていないのは明らかであり、自身を端末から切り離す +必要はない。 +.SH ファイル /dev/tty -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chown (1), .BR mknod (1), .BR ioctl (2), diff --git a/release/man4/ttyS.4 b/release/man4/ttyS.4 index a8b61a8f..a2ea4040 100644 --- a/release/man4/ttyS.4 +++ b/release/man4/ttyS.4 @@ -31,15 +31,15 @@ .\" Japanese Version Last Modified Thu Feb 5 17:27:58 JST 1998 .\" by ISHIKAWA Mutsumi .\" -.\" WORD: serial ¥·¥ê¥¢¥ë +.\" WORD: serial シリアル .TH TTYS 4 1992-12-19 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -ttyS \- ¥·¥ê¥¢¥ë¥¿¡¼¥ß¥Ê¥ë¥é¥¤¥ó(serial terminal lines) -.SH ÀâÌÀ -\fBttyS[0\-3]\fP ¤Ï¥·¥ê¥¢¥ë¥¿¡¼¥ß¥Ê¥ë¥é¥¤¥ó¤Î¤¿¤á¤Î¥­¥ã¥é¥¯¥¿¡¼¥Ç¥Ð¥¤¥¹ -(character device)¤Ç¤¢¤ë¡£ +.SH 名前 +ttyS \- シリアルターミナルライン(serial terminal lines) +.SH 説明 +\fBttyS[0\-3]\fP はシリアルターミナルラインのためのキャラクターデバイス +(character device)である。 .LP -ŵ·¿Åª¤Ë¤Ï¼¡¤Î¤è¤¦¤Ë¤·¤Æºî¤é¤ì¤ë¡£: +典型的には次のようにして作られる。: .RS .sp mknod \-m 660 /dev/ttyS0 c 4 64 # base address 0x3f8 @@ -52,14 +52,14 @@ mknod \-m 660 /dev/ttyS3 c 4 67 # base address 0x2e8 .br chown root:tty /dev/ttyS[0\-3] .RE -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル /dev/ttyS[0\-3] -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chown (1), .BR mknod (1), .BR tty (4), .BR agetty (8), .BR mingetty (8), .BR setserial (8) -.\" .SH ËÝÌõ¼Ô -.\" ÀÐÀî ËÓ +.\" .SH 翻訳者 +.\" 石川 睦 diff --git a/release/man4/tty_ioctl.4 b/release/man4/tty_ioctl.4 index bafbf6a7..988004a4 100644 --- a/release/man4/tty_ioctl.4 +++ b/release/man4/tty_ioctl.4 @@ -8,64 +8,64 @@ .\" by Yuichi SATO .\" .TH TTY_IOCTL 4 2008-10-29 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -tty_ioctl \- üËö¤È¥·¥ê¥¢¥ë¥é¥¤¥ó¤Î ioctl (Æþ½ÐÎÏÀ©¸æ) -.SH ½ñ¼° +.SH 名前 +tty_ioctl \- 端末とシリアルラインの ioctl (入出力制御) +.SH 書式 .B "#include " .sp .BI "int ioctl(int " fd ", int " cmd ", ...);" -.SH ÀâÌÀ -üËö¤È¥·¥ê¥¢¥ë¥Ý¡¼¥È¤Ë¤Ä¤¤¤Æ¤Î +.SH 説明 +端末とシリアルポートについての .BR ioctl (2) -¥³¡¼¥ë¤Ï¡¢Â¿¤¯¤Î¥³¥Þ¥ó¥É°ú¤­¿ô¤ò¼õ¤±ÉÕ¤±¤ë¡£ -¿¤¯¤¬¤¤¤í¤¤¤í¤Ê·¿¤Î 3 ÈÖÌܤΰú¤­¿ô¤òɬÍפȤ¹¤ë¡£ -¤³¤³¤Ç¤Ï \fIargp\fP ¤Þ¤¿¤Ï \fIarg\fP ¤È¸Æ¤Ö¡£ +コールは、多くのコマンド引き数を受け付ける。 +多くがいろいろな型の 3 番目の引き数を必要とする。 +ここでは \fIargp\fP または \fIarg\fP と呼ぶ。 .LP .I ioctl -¤ò»ÈÍѤ¹¤ë¤È°Ü¿¢À­¤Î¤Ê¤¤¥×¥í¥°¥é¥à¤Ë¤Ê¤ë¡£ -²Äǽ¤Ê¾ì¹ç¤Ï¡¢ +を使用すると移植性のないプログラムになる。 +可能な場合は、 .BR termios (3) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë POSIX ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò»È¤¦¤³¤È¡£ -.SS üËö°À­¤Î¼èÆÀ¤ÈÀßÄê +に記述されている POSIX インタフェースを使うこと。 +.SS 端末属性の取得と設定 .TP .BI "TCGETS struct termios *" argp .I "tcgetattr(fd, argp)" -¤ÈƱ¤¸¡£ +と同じ。 .br -¸½ºß¤Î¥·¥ê¥¢¥ë¥Ý¡¼¥È¤ÎÀßÄê¤ò¼èÆÀ¤¹¤ë¡£ +現在のシリアルポートの設定を取得する。 .TP .BI "TCSETS const struct termios *" argp .I "tcsetattr(fd, TCSANOW, argp)" -¤ÈƱ¤¸¡£ +と同じ。 .br -¸½ºß¤Î¥·¥ê¥¢¥ë¥Ý¡¼¥È¤ÎÀßÄê¤òÊѹ¹¤¹¤ë¡£ +現在のシリアルポートの設定を変更する。 .TP .BI "TCSETSW const struct termios *" argp .I "tcsetattr(fd, TCSADRAIN, argp)" -¤ÈƱ¤¸¡£ +と同じ。 .br -ÇӽР(drain) ¤ò¹Ô¤¦¤¿¤á¤Î½ÐÎϥХåե¡¤Î»ÈÍѤòµö²Ä¤·¡¢ -¸½ºß¤Î¥·¥ê¥¢¥ë¥Ý¡¼¥È¤ÎÀßÄê¤òÊѹ¹¤¹¤ë¡£ +排出 (drain) を行うための出力バッファの使用を許可し、 +現在のシリアルポートの設定を変更する。 .TP .BI "TCSETSF const struct termios *" argp .I "tcsetattr(fd, TCSAFLUSH, argp)" -¤ÈƱ¤¸¡£ +と同じ。 .br -ÇӽР(drain) ¤ò¹Ô¤¦¤¿¤á¤Î½ÐÎϥХåե¡¤Î»ÈÍѤòµö²Ä¤·¡¢ -½èÍý¤·¤Æ¤¤¤Ê¤¤ÆþÎϤòÇË´þ¤·¤Æ¡¢ -¸½ºß¤Î¥·¥ê¥¢¥ë¥Ý¡¼¥È¤ÎÀßÄê¤òÊѹ¹¤¹¤ë¡£ +排出 (drain) を行うための出力バッファの使用を許可し、 +処理していない入力を破棄して、 +現在のシリアルポートの設定を変更する。 .LP -°Ê²¼¤Î 4 ¤Ä¤Î ioctl ¤Ï +以下の 4 つの ioctl は .BR TCGETS , .BR TCSETS , .BR TCSETSW , .B TCSETSF -¤È»÷¤Æ¤¤¤ë¡£ -¤¿¤À¤·¡¢ +と似ている。 +ただし、 .I "struct termios *" -¤ÎÂå¤ï¤ê¤Ë +の代わりに .I "struct termio *" -¤ò¼è¤ë¡£ +を取る。 .TP .BI "TCGETA struct termio *" argp .TP @@ -74,307 +74,307 @@ tty_ioctl \- ü .BI "TCSETAW const struct termio *" argp .TP .BI "TCSETAF const struct termio *" argp -.SS "termios ¹½Â¤ÂΤΥí¥Ã¥¯" -üËö¤Î +.SS "termios 構造体のロック" +端末の .I termios -¹½Â¤ÂΤϥí¥Ã¥¯¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£ -¤³¤Î¥í¥Ã¥¯¼«ÂÎ¤Ï +構造体はロックすることが可能である。 +このロック自体は .I termios -¹½Â¤ÂΤǤ¢¤ê¡¢ -0 ¤Ç¤Ê¤¤¥Ó¥Ã¥È¤Þ¤¿¤Ï¥Õ¥£¡¼¥ë¥É¤Ï¥í¥Ã¥¯¤µ¤ì¤¿Ãͤò¼¨¤¹¡£ +構造体であり、 +0 でないビットまたはフィールドはロックされた値を示す。 .TP .BI "TIOCGLCKTRMIOS struct termios *" argp -üËö¤Î +端末の .I termios -¹½Â¤ÂΤΥí¥Ã¥¯¾õÂÖ¤ò¼èÆÀ¤¹¤ë¡£ +構造体のロック状態を取得する。 .TP .BI "TIOCSLCKTRMIOS const struct termios *" argp -üËö¤Î +端末の .I termios -¹½Â¤ÂΤΥí¥Ã¥¯¾õÂÖ¤òÀßÄꤹ¤ë¡£ -root ¤Î¤ß (¤è¤êÀµ³Î¤Ë¤Ï¡¢ +構造体のロック状態を設定する。 +root のみ (より正確には、 .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹) ¤¬¤³¤ì¤ò¼Â¹Ô¤Ç¤­¤ë¡£ -.SS ¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤Î¼èÆÀ¤ÈÀßÄê -¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤Ï¥«¡¼¥Í¥ëÆâ¤ËÊÝ»ý¤µ¤ì¤ë¤¬¡¢ -¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤Ê¤¤ -(²¾ÁÛ¥³¥ó¥½¡¼¥ë¤Î¾ì¹ç¤ÏÎã³°¤Ç¤¢¤ê¡¢¿·¤·¤¤¥Õ¥©¥ó¥È¤òÆɤ߹þ¤ó¤À¾ì¹ç¤Ê¤É¡¢ -²¾ÁÛüËö¤Î¥µ¥¤¥º¤¬Êѹ¹¤µ¤ì¤¿¾ì¹ç¡¢¥«¡¼¥Í¥ë¤Ï¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤ò¹¹¿·¤¹¤ë)¡£ +ケーパビリティを持つプロセス) がこれを実行できる。 +.SS ウィンドウサイズの取得と設定 +ウィンドウサイズはカーネル内に保持されるが、 +カーネルによって使用されない +(仮想コンソールの場合は例外であり、新しいフォントを読み込んだ場合など、 +仮想端末のサイズが変更された場合、カーネルはウィンドウサイズを更新する)。 -°Ê²¼¤ÎÄê¿ô¤È¹½Â¤ÂÎ¤Ï +以下の定数と構造体は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で定義されている。 .TP .BI "TIOCGWINSZ struct winsize *" argp -¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤ò¼èÆÀ¤¹¤ë¡£ +ウィンドウサイズを取得する。 .TP .BI "TIOCSWINSZ const struct winsize *" argp -¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤òÀßÄꤹ¤ë¡£ +ウィンドウサイズを設定する。 .LP -¤³¤ì¤é¤Î ioctl ¤Ç»ÈÍѤµ¤ì¤ë¹½Â¤ÂΤϡ¢°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë¡£ +これらの ioctl で使用される構造体は、以下のように定義される。 .in +4n .nf struct winsize { unsigned short ws_row; unsigned short ws_col; - unsigned short ws_xpixel; /* ̤»ÈÍÑ */ - unsigned short ws_ypixel; /* ̤»ÈÍÑ */ + unsigned short ws_xpixel; /* 未使用 */ + unsigned short ws_ypixel; /* 未使用 */ }; .fi .in -¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤¬Êѹ¹¤µ¤ì¤¿¾ì¹ç¡¢ -¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë +ウィンドウサイズが変更された場合、 +フォアグラウンドプロセスグループに .B SIGWINCH -¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£ -.SS "break ¤ÎÁ÷¿®" +シグナルが送られる。 +.SS "break の送信" .TP .BI "TCSBRK int " arg .I "tcsendbreak(fd, arg)" -¤ÈƱ¤¸¡£ +と同じ。 .br -üËö¤¬ÈóƱ´ü¥·¥ê¥¢¥ë¥Ç¡¼¥¿Å¾Á÷¤ò»ÈÍѤ·¤Æ¤ª¤ê¡¢ +端末が非同期シリアルデータ転送を使用しており、 .I arg -¤¬ 0 ¤Î¾ì¹ç¡¢0.25 ¤«¤é 0.5 ÉÃ¤Î´Ö¤Ë -break (0 ¤Î¥Ó¥Ã¥ÈÎó¤Î¥¹¥È¥ê¡¼¥à) ¤¬Á÷¿®¤µ¤ì¤ë¡£ -üËö¤¬ÈóƱ´ü¥·¥ê¥¢¥ë¥Ç¡¼¥¿Å¾Á÷¤ò»ÈÍѤ·¤Æ¤¤¤ë¾ì¹ç¡¢ -break ¤¬Á÷¿®¤µ¤ì¤ë¤«¡¢¤³¤Î´Ø¿ô¤Ï²¿¤â¤»¤º¤ËÊ֤롣 +が 0 の場合、0.25 から 0.5 秒の間に +break (0 のビット列のストリーム) が送信される。 +端末が非同期シリアルデータ転送を使用している場合、 +break が送信されるか、この関数は何もせずに返る。 .I arg -¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢²¿¤¬µ¯¤³¤ë¤«Ê¬¤«¤é¤Ê¤¤¡£ +が 0 以外の場合、何が起こるか分からない。 -(SVr4, UnixWare, Solaris, Linux ¤Ï¡¢ +(SVr4, UnixWare, Solaris, Linux は、 .I "tcsendbreak(fd,arg)" -¤Î +の .I arg -¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢ +が 0 以外の場合、 .I "tcdrain(fd)" -¤Î¤è¤¦¤Ë°·¤¦¡£ -SunOS ¤Ï +のように扱う。 +SunOS は .I arg -¤òÇÜ¿ô¤È¤·¤Æ°·¤¤¡¢¥Ó¥Ã¥È¤Î¥¹¥È¥ê¡¼¥à¤ò +を倍数として扱い、ビットのストリームを .I arg -²óÁ÷¿®¤¹¤ë¡£ +回送信する。 .I arg -¤¬ 0 ¤Î¾ì¹ç¤âƱ¤¸¡£ -DG/UX ¤È AIX ¤Ï¡¢(0 °Ê³°¤Î¾ì¹ç) +が 0 の場合も同じ。 +DG/UX と AIX は、(0 以外の場合) .I arg -¤ò¥ß¥êÉÃñ°Ì¤Î»þ´Ö´Ö³Ö¤È¤·¤Æ°·¤¦¡£ -HP-UX ¤Ï +をミリ秒単位の時間間隔として扱う。 +HP-UX は .I arg -¤ò̵»ë¤¹¤ë¡£) +を無視する。) .TP .BI "TCSBRKP int " arg -¤¤¤ï¤æ¤ë¡ÖPOSIX ÈǡפΠ+いわゆる「POSIX 版」の .B TCSBRK -¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï 0 °Ê³°¤Î +である。 +これは 0 以外の .I arg -¤ò 1/10 ÉÃñ°Ì¤Î»þ´Ö´Ö³Ö¤È¤·¤Æ°·¤¦¡£ -¤Þ¤¿¥É¥é¥¤¥Ð¤¬ break ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢²¿¤â¤·¤Ê¤¤¡£ +を 1/10 秒単位の時間間隔として扱う。 +またドライバが break をサポートしていない場合は、何もしない。 .TP .B "TIOCSBRK void" -break ¤ò¥ª¥ó¤Ë¤¹¤ë¡£ -¤Ä¤Þ¤ê 0 ¤Î¥Ó¥Ã¥ÈÎó¤ÎÁ÷¿®¤ò³«»Ï¤¹¤ë¡£ +break をオンにする。 +つまり 0 のビット列の送信を開始する。 .TP .B "TIOCCBRK void" -break ¤ò¥ª¥Õ¤Ë¤¹¤ë¡£ -¤Ä¤Þ¤ê 0 ¤Î¥Ó¥Ã¥ÈÎó¤ÎÁ÷¿®¤òÄä»ß¤¹¤ë¡£ -.SS ¥½¥Õ¥È¥¦¥§¥¢¥Õ¥í¡¼À©¸æ +break をオフにする。 +つまり 0 のビット列の送信を停止する。 +.SS ソフトウェアフロー制御 .TP .BI "TCXONC int " arg .I "tcflow(fd, arg)" -¤ÈƱ¤¸¡£ +と同じ。 .br .BR tcflow (3) -¤Î°ú¤­¿ô +の引き数 .BR TCOOFF , .BR TCOON , .BR TCIOFF , .B TCION -¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SS "¥Ð¥Ã¥Õ¥¡¤Î¥«¥¦¥ó¥È¤È½ñ¤­½Ð¤· (flush)" +を参照すること。 +.SS "バッファのカウントと書き出し (flush)" .TP .BI "FIONREAD int *" argp -ÆþÎϥХåե¡¤Ë¤¢¤ë¥Ð¥¤¥È¿ô¤ò¼èÆÀ¤¹¤ë¡£ +入力バッファにあるバイト数を取得する。 .TP .BI "TIOCINQ int *" argp .B FIONREAD -¤ÈƱ¤¸¡£ +と同じ。 .TP .BI "TIOCOUTQ int *" argp -½ÐÎϥХåե¡¤Ë¤¢¤ë¥Ð¥¤¥È¿ô¤ò¼èÆÀ¤¹¤ë¡£ +出力バッファにあるバイト数を取得する。 .TP .BI "TCFLSH int " arg .I "tcflush(fd, arg)" -¤ÈƱ¤¸¡£ +と同じ。 .br .BR tcflush (3) -¤Î°ú¤­¿ô +の引き数 .BR TCIFLUSH , .BR TCOFLUSH , .B TCIOFLUSH -¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SS ÆþÎϤε¶Áõ +を参照すること。 +.SS 入力の偽装 .TP .BI "TIOCSTI const char *" argp -»ØÄꤵ¤ì¤¿¥Ð¥¤¥È¤òÆþÎÏ¥­¥å¡¼¤ËÁÞÆþ¤¹¤ë¡£ -.SS ¥³¥ó¥½¡¼¥ë½ÐÎϤΥê¥À¥¤¥ì¥¯¥È +指定されたバイトを入力キューに挿入する。 +.SS コンソール出力のリダイレクト .TP .B "TIOCCONS void" .I /dev/console -¤Þ¤¿¤Ï +または .I /dev/tty0 -¤ËÁ÷¤é¤ì¤ë½ÐÎϤò¡¢»ØÄꤵ¤ì¤¿Ã¼Ëö¥ê¥À¥¤¥ì¥¯¥È¤¹¤ë¡£ -»ØÄꤵ¤ì¤¿Ã¼Ëö¤¬µ¿»÷üËö (pseudoterminal) ¤Î¥Þ¥¹¥¿¤Î¾ì¹ç¡¢ -½ÐÎϤϥ¹¥ì¡¼¥Ö¤ËÁ÷¤é¤ì¤ë¡£ -¥Ð¡¼¥¸¥ç¥ó 2.6.10 ¤è¤êÁ°¤Î Linux ¤Ç¤Ï¡¢½ÐÎϤ¬¤Þ¤À¥ê¥À¥¤¥ì¥¯¥È¤µ¤ì¤Æ -¤¤¤Ê¤±¤ì¤Ð¡¢Ã¯¤Ç¤â¥ê¥À¥¤¥ì¥¯¥È¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¥Ð¡¼¥¸¥ç¥ó 2.6.10 °Ê¹ß¤Ç¤Ï¡¢root +に送られる出力を、指定された端末リダイレクトする。 +指定された端末が疑似端末 (pseudoterminal) のマスタの場合、 +出力はスレーブに送られる。 +バージョン 2.6.10 より前の Linux では、出力がまだリダイレクトされて +いなければ、誰でもリダイレクトを行うことができる。 +バージョン 2.6.10 以降では、root .RB ( CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹) ¤À¤±¤¬¥ê¥À¥¤¥ì¥¯¥È¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -½ÐÎϤ¬¤¹¤Ç¤Ë¥ê¥À¥¤¥ì¥¯¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï +ケーパビリティを持つプロセス) だけがリダイレクトを行うことができる。 +出力がすでにリダイレクトされている場合は .B EBUSY -¤¬ÊÖ¤µ¤ì¤ë¤¬¡¢ +が返されるが、 .I /dev/console -¤« +か .I /dev/tty0 -¤ò»Ø¤·¤Æ¤¤¤ë +を指している .I fd -¤ËÂФ·¤Æ¤³¤Î ioctl ¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç¡¢¥ê¥À¥¤¥ì¥¯¥È¤ò»ß¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.SS "üËö¤ÎÀ©¸æ" +に対してこの ioctl を使用することで、リダイレクトを止めることができる。 +.SS "端末の制御" .TP .BI "TIOCSCTTY int " arg -»ØÄꤵ¤ì¤¿Ã¼Ëö¤ò¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤Ë¤¹¤ë¡£ -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Ï¥»¥Ã¥·¥ç¥ó¥ê¡¼¥À¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -¤«¤Ä´û¤ËÀ©¸æüËö¤ò»ý¤Ã¤Æ¤¤¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -¤³¤ÎüËö¤¬´û¤Ë¾¤Î¥»¥Ã¥·¥ç¥ó¥°¥ë¡¼¥×¤ÎÀ©¸æüËö¤Ç¤¢¤ë¾ì¹ç¡¢ -ioctl ¤Ï +指定された端末を呼び出し元のプロセスの制御端末にする。 +呼び出し元のプロセスはセッションリーダでなければならず、 +かつ既に制御端末を持っていてはならない。 +この端末が既に他のセッショングループの制御端末である場合、 +ioctl は .B EPERM -¤Ç¼ºÇÔ¤¹¤ë¡£¤¿¤À¤·¸Æ¤Ó½Ð¤·¤¿¥æ¡¼¥¶¤¬ root ¤Ç -(¤è¤êÀµ³Î¤Ë¤Ï +で失敗する。ただし呼び出したユーザが root で +(より正確には .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤Æ)¡¢¤«¤Ä +ケーパビリティを持っていて)、かつ .I arg -¤¬ 1 ¤Ç¤¢¤ë¾ì¹ç¤ò½ü¤¯¡£ -¤³¤Î¾ì¹ç¡¢Ã¼Ëö¤ÏÅð¤Þ¤ì (stolen)¡¢ -¤³¤ÎüËö¤òÀ©¸æüËö¤È¤·¤Æ¤¤¤¿Á´¤Æ¤Î¥×¥í¥»¥¹¤ÏüËö¤ò¼º¤¦¡£ +が 1 である場合を除く。 +この場合、端末は盗まれ (stolen)、 +この端末を制御端末としていた全てのプロセスは端末を失う。 .TP .B TIOCNOTTY void -»ØÄꤵ¤ì¤¿Ã¼Ëö¤¬¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤Ç¤¢¤ë¾ì¹ç¡¢ -¤³¤ÎÀ©¸æüËö¤òÊü´þ¤¹¤ë¡£ -¥×¥í¥»¥¹¤¬¥»¥Ã¥·¥ç¥ó¥ê¡¼¥À¤Î¾ì¹ç¡¢ -¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë +指定された端末が呼び出し元のプロセスの制御端末である場合、 +この制御端末を放棄する。 +プロセスがセッションリーダの場合、 +フォアグラウンドプロセスグループに .B SIGHUP -¤È +と .B SIGCONT -¤òÁ÷¤ê¡¢¥«¥ì¥ó¥È¥»¥Ã¥·¥ç¥ó¤ÎÁ´¤Æ¤Î¥×¥í¥»¥¹¤ÏÀ©¸æüËö¤ò¼º¤¦¡£ -.SS "¥°¥ë¡¼¥× ID ¤È¥»¥Ã¥·¥ç¥ó ID ¤Î½èÍý" +を送り、カレントセッションの全てのプロセスは制御端末を失う。 +.SS "グループ ID とセッション ID の処理" .TP .BI "TIOCGPGRP pid_t *" argp -À®¸ù¤·¤¿¾ì¹ç¡¢ +成功した場合、 .I "*argp = tcgetpgrp(fd)" -¤ÈƱ¤¸¡£ +と同じ。 .br -¤³¤ÎüËö¾å¤Î¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤ò¼èÆÀ¤¹¤ë¡£ +この端末上のフォアグラウンドプロセスのプロセスグループ ID を取得する。 .TP .BI "TIOCSPGRP const pid_t *" argp .I "tcsetpgrp(fd, *argp)" -¤ÈƱ¤¸¡£ +と同じ。 .br -¤³¤ÎüËö¤Î¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¥×¥í¥»¥¹¤Î¥°¥ë¡¼¥× ID ¤òÀßÄꤹ¤ë¡£ +この端末のフォアグラウンドプロセスのグループ ID を設定する。 .TP .BI "TIOCGSID pid_t *" argp -»ØÄꤵ¤ì¤¿Ã¼Ëö¤Î¥»¥Ã¥·¥ç¥ó ID ¤ò¼èÆÀ¤¹¤ë¡£ -üËö¤¬¥Þ¥¹¥¿µ¿»÷üËö¤Þ¤¿¤ÏÀ©¸æüËö¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢ +指定された端末のセッション ID を取得する。 +端末がマスタ疑似端末または制御端末でない場合は、 .B ENOTTY -¤Ç¼ºÇÔ¤¹¤ë¡£ -´ñ̯¤À¡£ -.SS ÇÓ¾¥â¡¼¥É +で失敗する。 +奇妙だ。 +.SS 排他モード .TP .B "TIOCEXCL void" -üËö¤òÇÓ¾¥â¡¼¥É¤Ë¤¹¤ë¡£ -üËö¤ËÂФ·¤Æ¡¢¤³¤ì°Ê¹ß¤Î +端末を排他モードにする。 +端末に対して、これ以降の .BR open (2) -Áàºî¤ò¶Ø»ß¤¹¤ë¡£ -(root °Ê³°¤Î¾ì¹ç¡¢¤Ä¤Þ¤ê +操作を禁止する。 +(root 以外の場合、つまり .B CAP_SYS_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤¥×¥í¥»¥¹¤Î¾ì¹ç¡¢¤³¤ì°Ê¹ß¤Î +ケーパビリティを持たないプロセスの場合、これ以降の .BR open (2) -¤Ï +は .B EBUSY -¤Ç¼ºÇÔ¤¹¤ë¡£) +で失敗する。) .TP .B "TIOCNXCL void" -ÇÓ¾¥â¡¼¥É¤ò̵¸ú¤Ë¤¹¤ë¡£ -.SS "¥é¥¤¥óÀ©¸æ (line discipline)" +排他モードを無効にする。 +.SS "ライン制御 (line discipline)" .TP .BI "TIOCGETD int *" argp -üËö¤Î¥é¥¤¥óÀ©¸æ¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë¡£ +端末のライン制御の情報を取得する。 .TP .BI "TIOCSETD const int *" argp -üËö¤Î¥é¥¤¥óÀ©¸æ¤Î¾ðÊó¤òÀßÄꤹ¤ë¡£ -.SS "µ¿»÷üËö¤Î ioctl" +端末のライン制御の情報を設定する。 +.SS "疑似端末の ioctl" .TP .BI "TIOCPKT const int *" argp -¥Ñ¥±¥Ã¥È¥â¡¼¥É¤òÍ­¸ú +パケットモードを有効 .RI (* argp -¤¬ 0 °Ê³°¤Î¾ì¹ç) ¤Þ¤¿¤Ï̵¸ú¤Ë¤¹¤ë¡£ -µ¿»÷üËö¤Î¥Þ¥¹¥¿Â¦¤Ë¤Î¤ßŬÍѤǤ­¤ë (¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï +が 0 以外の場合) または無効にする。 +疑似端末のマスタ側にのみ適用できる (それ以外の場合は .B ENOTTY -¤òÊÖ¤¹)¡£ -¥Ñ¥±¥Ã¥È¥â¡¼¥É¤Ç¤Ï¡¢¤½¤Î¸å¤Ë¼Â¹Ô¤µ¤ì¤ë +を返す)。 +パケットモードでは、その後に実行される .BR read (2) -¤Ï¡¢Ãͤ¬ 0 °Ê³°¤Î 1 ¤Ä¤ÎÀ©¸æ¥Ð¥¤¥È¤ò´Þ¤à¥Ñ¥±¥Ã¥È¤«¡¢ -Ãͤ¬ 0 ¤Î 1 ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Ëµ¿»÷üËö¤Î¥¹¥ì¡¼¥Ö¦¤Ç½ñ¤­¹þ¤Þ¤ì¤¿ -¥Ç¡¼¥¿¤¬Â³¤¯¥Ñ¥±¥Ã¥È¤òÊÖ¤¹¡£ -ºÇ½é¤Î¥Ð¥¤¥È¤¬ +は、値が 0 以外の 1 つの制御バイトを含むパケットか、 +値が 0 の 1 バイト (\(aq\\0\(aq) に疑似端末のスレーブ側で書き込まれた +データが続くパケットを返す。 +最初のバイトが .B TIOCPKT_DATA -(0) ¤Ç¤Ê¤¤¾ì¹ç¡¢°Ê²¼¤Î¥Ó¥Ã¥È¤Î 1 ¤Ä°Ê¾å¤ò OR ¤·¤¿¤â¤Î¤Ç¤¢¤ë: +(0) でない場合、以下のビットの 1 つ以上を OR したものである: .nf -TIOCPKT_FLUSHREAD üËö¤ÎÆɤ߹þ¤ß¥­¥å¡¼¤¬¥Õ¥é¥Ã¥·¥å (flush) ¤µ¤ì¤ë¡£ -TIOCPKT_FLUSHWRITE üËö¤Î½ñ¤­½Ð¤·¥­¥å¡¼¤¬¥Õ¥é¥Ã¥·¥å¤µ¤ì¤ë¡£ -TIOCPKT_STOP üËö¤Ø¤Î½ÐÎϤ¬Ää»ß¤µ¤ì¤ë¡£ -TIOCPKT_START üËö¤Ø¤Î½ÐÎϤ¬ºÆ³«¤µ¤ì¤ë¡£ -TIOCPKT_DOSTOP ³«»Ïʸ»ú¤È½ªÎ»Ê¸»ú¤¬ \fB^S\fP/\fB^Q\fP ¤Ç¤¢¤ë¡£ -TIOCPKT_NOSTOP ³«»Ïʸ»ú¤È½ªÎ»Ê¸»ú¤¬ \fB^S\fP/\fB^Q\fP ¤Ç¤Ê¤¤¡£ +TIOCPKT_FLUSHREAD 端末の読み込みキューがフラッシュ (flush) される。 +TIOCPKT_FLUSHWRITE 端末の書き出しキューがフラッシュされる。 +TIOCPKT_STOP 端末への出力が停止される。 +TIOCPKT_START 端末への出力が再開される。 +TIOCPKT_DOSTOP 開始文字と終了文字が \fB^S\fP/\fB^Q\fP である。 +TIOCPKT_NOSTOP 開始文字と終了文字が \fB^S\fP/\fB^Q\fP でない。 .fi -¤³¤Î¥â¡¼¥É¤¬»È¤ï¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -À©¸æ¾õÂÖ¾ðÊó¤Î¸ºß¤¬¥Þ¥¹¥¿Â¦¤«¤éÆɤ߹þ¤á¤ë¤«¤Ï¡¢ -Î㳰Ū¤Ê¾ò·ï¤Ç +このモードが使われている場合、 +制御状態情報の存在がマスタ側から読み込めるかは、 +例外的な条件で .BR select (2) -¤ò»È¤¦¤³¤È¤Ë¤è¤êÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ +を使うことにより知ることができる。 -¤³¤Î¥â¡¼¥É¤Ï +このモードは .BR rlogin (1) -¤È +と .BR rlogind (8) -¤Ç»È¤ï¤ì¡¢¥ê¥â¡¼¥È¥¨¥³¡¼¤Î¥ê¥â¡¼¥È¥í¥°¥¤¥ó¤È -¥í¡¼¥«¥ë¤Ç¤Î \fB^S\fP/\fB^Q\fP ¥Õ¥í¡¼À©¸æ¤Î¥ê¥â¡¼¥È¥í¥°¥¤¥ó¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¡£ +で使われ、リモートエコーのリモートログインと +ローカルでの \fB^S\fP/\fB^Q\fP フロー制御のリモートログインを実装している。 -BSD ¤Î ioctl ¤Ç¤¢¤ë +BSD の ioctl である .BR TIOCSTOP , .BR TIOCSTART , .BR TIOCUCNTL , .B TIOCREMOTE -¤Ï¡¢Linux ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SS ¥â¥Ç¥àÀ©¸æ +は、Linux では実装されていない。 +.SS モデム制御 .TP .BI "TIOCMGET int *" argp -¥â¥Ç¥à¥Ó¥Ã¥ÈÎó¤Î¾õÂÖ¤ò¼èÆÀ¤¹¤ë¡£ +モデムビット列の状態を取得する。 .TP .BI "TIOCMSET const int *" argp -¥â¥Ç¥à¥Ó¥Ã¥ÈÎó¤Î¾õÂÖ¤òÀßÄꤹ¤ë¡£ +モデムビット列の状態を設定する。 .TP .BI "TIOCMBIC const int *" argp -»ØÄꤵ¤ì¤¿¥â¥Ç¥à¥Ó¥Ã¥ÈÎó¤ò¥¯¥ê¥¢¤¹¤ë¡£ +指定されたモデムビット列をクリアする。 .TP .BI "TIOCMBIS const int *" argp -»ØÄꤵ¤ì¤¿¥â¥Ç¥à¥Ó¥Ã¥ÈÎó¤òÀßÄꤹ¤ë¡£ +指定されたモデムビット列を設定する。 .LP -¤³¤ì¤é¤Î 4 ¤Ä¤Î ioctl ¤Ç»È¤ï¤ì¤ë¥Ó¥Ã¥È¤Ï°Ê²¼¤ÎÄ̤ê: +これらの 4 つの ioctl で使われるビットは以下の通り: .nf TIOCM_LE DSR (data set ready/line enable) @@ -384,87 +384,87 @@ TIOCM_ST Secondary TXD (transmit) TIOCM_SR Secondary RXD (receive) TIOCM_CTS CTS (clear to send) TIOCM_CAR DCD (data carrier detect) -TIOCM_CD TIOCM_CAR ¤ò»²¾È¡£ +TIOCM_CD TIOCM_CAR を参照。 TIOCM_RNG RNG (ring) -TIOCM_RI TIOCM_RNG ¤ò»²¾È¡£ +TIOCM_RI TIOCM_RNG を参照。 TIOCM_DSR DSR (data set ready) .fi -.SS "²óÀþ¤ò¥í¡¼¥«¥ë¤È¤·¤Æ¥Þ¡¼¥¯¤¹¤ë" +.SS "回線をローカルとしてマークする" .TP .BI "TIOCGSOFTCAR int *" argp -("¥½¥Õ¥È¥¦¥§¥¢¥­¥ã¥ê¥¢¥Õ¥é¥°¤Î¼èÆÀ") +("ソフトウェアキャリアフラグの取得") .I termios -¹½Â¤ÂΤΠc_cflag ¥Õ¥£¡¼¥ë¥É¤Î +構造体の c_cflag フィールドの .B CLOCAL -¥Õ¥é¥°¤Î¾õÂÖ¤ò¼èÆÀ¤¹¤ë¡£ +フラグの状態を取得する。 .TP .BI "TIOCSSOFTCAR const int *" argp -("¥½¥Õ¥È¥¦¥§¥¢¥­¥ã¥ê¥¢¥Õ¥é¥°¤ÎÀßÄê") +("ソフトウェアキャリアフラグの設定") .RI * argp -¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢ +が 0 以外の場合、 .I termios -¹½Â¤ÂΤΠ+構造体の .B CLOCAL -¥Õ¥é¥°¤òÀßÄꤹ¤ë¡£ -0 ¤Î¾ì¹ç¤Ï¥¯¥ê¥¢¤¹¤ë¡£ +フラグを設定する。 +0 の場合はクリアする。 .LP -¥é¥¤¥ó¤Î +ラインの .B CLOCAL -¥Õ¥é¥°¤¬¥ª¥Õ¤Î¾ì¹ç¡¢ -¥Ï¡¼¥É¥¦¥§¥¢¥­¥ã¥ê¥¢¸¡½Ð (hardware carrier detect, DCD) ¥·¥°¥Ê¥ë¤¬½ÅÍפǤ¢¤ê¡¢ +フラグがオフの場合、 +ハードウェアキャリア検出 (hardware carrier detect, DCD) シグナルが重要であり、 .B O_NONBLOCK -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Ê¤¤¸Â¤ê¡¢Âбþ¤¹¤ëüËö¤Î +フラグが指定されない限り、対応する端末の .BR open (2) -¤Ï DCD ¤¬¼¨¤µ¤ì¤ë¤Þ¤Ç¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¡£ +は DCD が示されるまでブロックされる。 .B CLOCAL -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¥é¥¤¥ó¤Ï¾ï¤Ë DCD ¤¬¼¨¤µ¤ì¤Æ¤¤¤ë¤«¤Î¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ -¥½¥Õ¥È¥¦¥§¥¢¥­¥ã¥ê¥¢¥Õ¥é¥°¤Ï¡¢¥í¡¼¥«¥ë¥Ç¥Ð¥¤¥¹¤Ç¤ÏÄ̾ï¤Ï¥ª¥ó¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢ -¥â¥Ç¥à¤Î¥é¥¤¥ó¤Ç¤Ï¥ª¥Õ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -.SS "Linux ¸ÇÍ­¤Î ioctl" +が設定されている場合、 +ラインは常に DCD が示されているかのように動作する。 +ソフトウェアキャリアフラグは、ローカルデバイスでは通常はオンになっており、 +モデムのラインではオフになっている。 +.SS "Linux 固有の ioctl" .B TIOCLINUX -ioctl ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +ioctl については、 .BR console_ioctl (4) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SS ¥«¡¼¥Í¥ë¥Ç¥Ð¥Ã¥®¥ó¥° +を参照すること。 +.SS カーネルデバッギング .B "#include " .TP .BI "TIOCTTYGSTRUCT struct tty_struct *" argp .I fd -¤ËÂбþ¤¹¤ë +に対応する .I tty_struct -¤ò¼èÆÀ¤¹¤ë¡£ -.\" .SS "¥·¥ê¥¢¥ë¾ðÊó" +を取得する。 +.\" .SS "シリアル情報" .\" .BR "#include " .\" .sp .\" .TP .\" .BI "TIOCGSERIAL struct serial_struct *" argp -.\" ¥·¥ê¥¢¥ë¾ðÊó¤ò¼èÆÀ¤¹¤ë¡£ +.\" シリアル情報を取得する。 .\" .TP .\" .BI "TIOCSSERIAL const struct serial_struct *" argp -.\" ¥·¥ê¥¢¥ë¾ðÊó¤òÀßÄꤹ¤ë¡£ -.SH ÊÖ¤êÃÍ +.\" シリアル情報を設定する。 +.SH 返り値 .BR ioctl (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢ +システムコールは、成功した場合は 0 を返す。 +エラーの場合は \-1 を返し、 .I errno -¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ +を適切に設定する。 +.SH エラー .TP .B EINVAL -ÉÔÀµ¤Ê¥³¥Þ¥ó¥É°ú¤­¿ô¤Ç¤¢¤ë¡£ +不正なコマンド引き数である。 .TP .B ENOIOCTLCMD -ÉÔÌÀ¤Ê¥³¥Þ¥ó¥É¤Ç¤¢¤ë¡£ +不明なコマンドである。 .TP .B ENOTTY .I fd -¤¬ÉÔŬÀڤǤ¢¤ë¡£ +が不適切である。 .TP .B EPERM -¸¢¸Â¤¬ÉÔ­¤·¤Æ¤¤¤ë¡£ -.SH Îã -¥·¥ê¥¢¥ë¥Ý¡¼¥È¤Î DTR ¤Î¾õÂÖ¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ +権限が不足している。 +.SH 例 +シリアルポートの DTR の状態をチェックする。 .nf #include @@ -479,13 +479,13 @@ main(void) fd = open("/dev/ttyS0", O_RDONLY); ioctl(fd, TIOCMGET, &serial); if (serial & TIOCM_DTR) - puts("TIOCM_DTR ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£"); + puts("TIOCM_DTR が設定されていない。"); else - puts("TIOCM_DTR ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¡£"); + puts("TIOCM_DTR が設定されている。"); close(fd); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ioctl (2), .BR termios (3), .BR console_ioctl (4), @@ -495,7 +495,7 @@ main(void) .\" FIONCLEX void .\" FIOCLEX void .\" FIOASYNC const int * -.\" serial.c ¤è¤ê: +.\" serial.c より: .\" TIOCSERCONFIG void .\" TIOCSERGWILD int * .\" TIOCSERSWILD const int * @@ -503,4 +503,4 @@ main(void) .\" TIOCSERGETLSR int * .\" TIOCSERGETMULTI struct serial_multiport_struct * .\" TIOCSERSETMULTI const struct serial_multiport_struct * -.\" TIOCGSERIAL, TIOCSSERIAL (¾åµ­¤ò»²¾È) +.\" TIOCGSERIAL, TIOCSSERIAL (上記を参照) diff --git a/release/man4/vcs.4 b/release/man4/vcs.4 index 319b3158..e26337c4 100644 --- a/release/man4/vcs.4 +++ b/release/man4/vcs.4 @@ -36,56 +36,56 @@ .\" by Yuichi SATO .\" Updated 2008-02-12, Akihiro MOTOKI , LDP v2.77 .\" -.\" WORD: virtual console ²¾ÁÛ¥³¥ó¥½¡¼¥ë -.\" WORD: memory ¥á¥â¥ê -.\" WORD: permission ¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó -.\" WORD: prefix ¥×¥ì¥Õ¥£¥Ã¥¯¥¹ -.\" WORD: screen ¥¹¥¯¥ê¡¼¥ó -.\" WORD: cursor ¥«¡¼¥½¥ë -.\" WORD: Braille ¥Ö¥é¥¤¥æÅÀ»ú +.\" WORD: virtual console 仮想コンソール +.\" WORD: memory メモリ +.\" WORD: permission パーミッション +.\" WORD: prefix プレフィックス +.\" WORD: screen スクリーン +.\" WORD: cursor カーソル +.\" WORD: Braille ブライユ点字 .\" .TH VCS 4 2007-12-17 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -vcs, vcsa \- ²¾ÁÛ¥³¥ó¥½¡¼¥ë¥á¥â¥ê (virtual console memory) -.SH ÀâÌÀ -\fI/dev/vcs0\fP ¤Ï¥á¥¸¥ã¡¼¥Ê¥ó¥Ð¡¼ (major number) 7¡¢¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼ -(minor number) 0 ¤Î¥­¥ã¥é¥¯¥¿¡¼¥Ç¥Ð¥¤¥¹ (character device) ¤Ç¡¢ -Ä̾¤½¤Î¥â¡¼¥É¤Ï 0644¡¢¥ª¡¼¥Ê¤Ï root.tty ¤Ç¤¢¤ë¡£ -¤³¤Î¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë (device file) ¤Ï -¸½ºßɽ¼¨¤µ¤ì¤Æ¤¤¤ë²¾ÁÛ¥³¥ó¥½¡¼¥ëüËö¤Î¥á¥â¥ê¤ò»²¾È¤¹¤ë¡£ +.SH 名前 +vcs, vcsa \- 仮想コンソールメモリ (virtual console memory) +.SH 説明 +\fI/dev/vcs0\fP はメジャーナンバー (major number) 7、マイナーナンバー +(minor number) 0 のキャラクターデバイス (character device) で、 +通常、そのモードは 0644、オーナは root.tty である。 +このデバイスファイル (device file) は +現在表示されている仮想コンソール端末のメモリを参照する。 .LP -\fB/dev/vcs[1\-63]\fP ¤Ï²¾ÁÛ¥³¥ó¥½¡¼¥ëüËö¤Î¤¿¤á¤Î -¥­¥ã¥é¥¯¥¿¡¼¥Ç¥Ð¥¤¥¹¤Ç¡¢¥á¥¸¥ã¡¼¥Ê¥ó¥Ð¡¼¤¬ 7¡¢¥Þ¥¤¥Ê¡¼¥Ê¥ó¥Ð¡¼¤¬ 1 ¤«¤é 63¡¢ -Ä̾ï¤Ï¥â¡¼¥É¤¬ 0644¡¢¥ª¡¼¥Ê¡¼¤¬ root.tty ¤Ç¤¢¤ë¡£ -\fB/dev/vcsa[0\-63]\fP ¤Ï \fB/dev/vcs[1\-63]\fP ¤ÈƱÍͤǤ¢¤ë¤¬¡¢ -°À­¤ò³ÊǼ¤¹¤ë¤Î¤Ë (¥Û¥¹¥È¥Ð¥¤¥È¥ª¡¼¥À¤Î) +\fB/dev/vcs[1\-63]\fP は仮想コンソール端末のための +キャラクターデバイスで、メジャーナンバーが 7、マイナーナンバーが 1 から 63、 +通常はモードが 0644、オーナーが root.tty である。 +\fB/dev/vcsa[0\-63]\fP は \fB/dev/vcs[1\-63]\fP と同様であるが、 +属性を格納するのに (ホストバイトオーダの) .I "unsigned short" -¤ò»ÈÍѤ·¤Æ¤¤¤ëÅÀ¡¢¥¹¥¯¥ê¡¼¥ó¤Î¥µ¥¤¥º¡¦¥«¡¼¥½¥ë¤Î°ÌÃÖ¤òɽ¤¹ -4 ¥Ð¥¤¥È¤Î¾ðÊó +を使用している点、スクリーンのサイズ・カーソルの位置を表す +4 バイトの情報 \fIlines\fP, \fIcolumns\fP, \fIx\fP, \fIy\fP -(\fIx\fP =\fIy\fP = 0 ¤¬²èÌ̤κ¸¾å) ¤¬ÀèƬ¤Ë¤¢¤ëÅÀ¤¬°Û¤Ê¤ë¡£ +(\fIx\fP =\fIy\fP = 0 が画面の左上) が先頭にある点が異なる。 -512 ʸ»ú¤«¤éÀ®¤ë¥Õ¥©¥ó¥È¤ò¥í¡¼¥É¤·¤¿¾ì¹ç¡¢ -9 ¥Ó¥Ã¥ÈÌܤξðÊó¤Ï \fI/dev/tty[1\-63]\fP ¤ËÂФ·¤Æ +512 文字から成るフォントをロードした場合、 +9 ビット目の情報は \fI/dev/tty[1\-63]\fP に対して .BR ioctl (2) -\fBVT_GETHIFONTMASK\fP Áàºî¤ò¹Ô¤¦¤³¤È¤Ç¼èÆÀ¤Ç¤­¤ë -(\fBVT_GETHIFONTMASK\fP Áàºî¤Ï¥«¡¼¥Í¥ë 2.6.18 °Ê¹ß¤Î Linux ¤Ç -ÍøÍѲÄǽ¤Ç¤¢¤ë)¡£ -ÃÍ¤Ï +\fBVT_GETHIFONTMASK\fP 操作を行うことで取得できる +(\fBVT_GETHIFONTMASK\fP 操作はカーネル 2.6.18 以降の Linux で +利用可能である)。 +値は .BR ioctl (2) -¤Î 3 ÈÖÌܤΰú¤­¿ô¤¬»Ø¤¹ +の 3 番目の引き数が指す .I "unsigned short" -¤Ë³ÊǼ¤µ¤ì¤ÆÊÖ¤µ¤ì¤ë¡£ +に格納されて返される。 .PP -¤³¤ì¤é¤Î¥Ç¥Ð¥¤¥¹¤Ï +これらのデバイスは .BR console (4) -¤Î screendump +の screendump .BR ioctl (2) -¤òÂåÂؤȤʤ롣 -½¾¤Ã¤Æ¡¢¥·¥¹¥Æ¥à´ÉÍý¼Ô¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó -(filesystem permission) ¤ò»È¤Ã¤Æ¥¢¥¯¥»¥¹¤ò¥³¥ó¥È¥í¡¼¥ë¤Ç¤­¤ë¡£ +を代替となる。 +従って、システム管理者はファイルシステムパーミッション +(filesystem permission) を使ってアクセスをコントロールできる。 .PP -ºÇ½é¤Î 8 ¤Ä¤Î²¾ÁÛüËö¤Î¤¿¤á¤Î¥Ç¥Ð¥¤¥¹¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤·¤Æºî¤ë»ö¤¬¤Ç¤­¤ë: +最初の 8 つの仮想端末のためのデバイスは、次のようにして作る事ができる: .nf for x in 0 1 2 3 4 5 6 7 8; do @@ -96,29 +96,29 @@ vcs, vcsa \- .fi .BR ioctl (2) -¤Ë¤è¤ëÍ×µá¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Ê¤¤¡£ -.SH ¥Õ¥¡¥¤¥ë +による要求はサポートされない。 +.SH ファイル /dev/vcs[0\-63] .br /dev/vcsa[0\-63] -.\" .SH Ãø¼Ô +.\" .SH 著者 .\" Andries Brouwer -.SH ¥Ð¡¼¥¸¥ç¥ó -Linux ¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó 1.1.92 ¤ÇƳÆþ¤µ¤ì¤¿¡£ -.SH Îã -vt3 ¤Î¥¹¥¯¥ê¡¼¥ó¥À¥ó¥×¤ò¼Â¹Ô¤¹¤ë¤Ë¤Ï¡¢Ã¼Ëö¤ò vt1 ¤ËÀÚÂؤ¨¤Æ -\fIcat /dev/vcs3 >foo\fP ¤È¥¿¥¤¥×¤¹¤ì¤Ð¤è¤¤¡£ -µ¤¤òÉÕ¤±¤ÆÍߤ·¤¤¤Î¤Ï¡¢¤³¤Î½ÐÎϤϲþ¹Ôʸ»ú (newline character) ¤ò -´Þ¤ó¤Ç¤¤¤Ê¤¤¤È¤¤¤¦»ö¤Ç¤¢¤ë¡£ -½¾¤Ã¤Æ¡¢\fIfold \-w 81 /dev/vcs3 | lpr\fP ¤ä -(¤¾¤Ã¤È¤¹¤ë¤¬) \fIsetterm \-dump 3 \-file /proc/self/fd/1\fP ¤Î¤è¤¦¤Ê -²¿¤é¤«¤Î½èÍý¤¬É¬Íפˤʤ뤫¤â¤·¤ì¤Ê¤¤¡£ +.SH バージョン +Linux カーネルバージョン 1.1.92 で導入された。 +.SH 例 +vt3 のスクリーンダンプを実行するには、端末を vt1 に切替えて +\fIcat /dev/vcs3 >foo\fP とタイプすればよい。 +気を付けて欲しいのは、この出力は改行文字 (newline character) を +含んでいないという事である。 +従って、\fIfold \-w 81 /dev/vcs3 | lpr\fP や +(ぞっとするが) \fIsetterm \-dump 3 \-file /proc/self/fd/1\fP のような +何らかの処理が必要になるかもしれない。 .LP -\fI/dev/vcsa0\fP ¥Ç¥Ð¥¤¥¹¤ò»È¤¦¤³¤È¤Ç¡¢ -¥Ö¥é¥¤¥æÅÀ»ú¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +\fI/dev/vcsa0\fP デバイスを使うことで、 +ブライユ点字をサポートすることができる。 -°Ê²¼¤Î¥×¥í¥°¥é¥à¤ÏÆó¤ÄÌܤβ¾ÁÛ¥³¥ó¥½¡¼¥ë¤Î¥«¡¼¥½¥ë°ÌÃ֤Υ¹¥¯¥ê¡¼¥ó°À­¤Èʸ»ú -¤òɽ¼¨¤·¤¿¸å¡¢¥«¡¼¥½¥ë°ÌÃÖ¤ÎÇØ·Ê¿§¤òÊѹ¹¤¹¤ë : +以下のプログラムは二つ目の仮想コンソールのカーソル位置のスクリーン属性と文字 +を表示した後、カーソル位置の背景色を変更する : .nf #include @@ -168,7 +168,7 @@ main(void) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR console (4), .BR tty (4), .BR ttyS (4), diff --git a/release/man4/wavelan.4 b/release/man4/wavelan.4 index 9afd490a..e002571c 100644 --- a/release/man4/wavelan.4 +++ b/release/man4/wavelan.4 @@ -16,121 +16,121 @@ .\" Japanese Version Last Modified Tue Feb 10 15:21:08 JST 1998 .\" by ISHIKAWA Mutsumi .\" -.\" WORD: wireless ethernet ¥ï¥¤¥¢¥ì¥¹¥¤¡¼¥µ¥Í¥Ã¥È +.\" WORD: wireless ethernet ワイアレスイーサネット .\" .TH WAVELAN 4 1996-10-22 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -wavelan \- AT&T GIS WaveLAN ISA ¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð -.SH ½ñ¼° +.SH 名前 +wavelan \- AT&T GIS WaveLAN ISA デバイスドライバ +.SH 書式 .BI "insmod wavelan_cs.o [io=" B,B.. "] [ irq=" I,I.. "] [name=" N,N.. ] -.SH ÀâÌÀ +.SH 説明 .I wavelan -¤Ï¡¢NCR / AT&T / Lucent ¤Î +は、NCR / AT&T / Lucent の .B WaveLan ISA -¤È Digital(DEC) ¤Î +と Digital(DEC) の .B RoamAbout DS -¤È¤¤¤¦¥ï¥¤¥¢¥ì¥¹¡¦¥¤¡¼¥µ¥Í¥Ã¥È (wireless ethernet) ¥¢¥À¥×¥¿¤Î¤¿¤á¤Î -¥í¡¼¥ì¥Ù¥ë¡¦¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ç¤¢¤ë¡£¤³¤Î¥É¥é¥¤¥Ð¤Ï¥â¥¸¥å¡¼¥ë¤È¤·¤Æ¤â¡¢¤Þ¤¿¡¢ -¥«¡¼¥Í¥ë¤ËÁȤ߹þ¤ó¤À·Á¤Ç¤âÍøÍѤǤ­¤ë¡£¤Þ¤¿¡¢¤É¤Á¤é¤Î¾ì¹ç¤Ç¤â¡¢Ê£¿ô¥«¡¼¥É -(ºÇÂç 4 Ëç¤Þ¤Ç) ¤ò¥µ¥Ý¡¼¥È¤·¡¢ÌÀ¼¨Åª¤Ë¥Ç¥Ð¥¤¥¹¤Î̾Á°¤ò»ØÄꤷ¤Ê¤¤¸Â¤ê -(¤³¤ì¤Ë´Ø¤·¤Æ¤Ï¡¢²¼¤ò¸«¤è)¡¢È¯¸«¤µ¤ì¤¿¤½¤ì¤¾¤ì¤Î¥«¡¼¥É¤Ë¤Ï¡¢ÍøÍѲÄǽ¤Ê -¼¡¤Î¥¤¡¼¥µ¥Í¥Ã¥È¥Ç¥Ð¥¤¥¹(eth0..eth#)¤¬³ä¤êÅö¤Æ¤é¤ì¤ë¡£¤³¤Î¥Ç¥Ð¥¤¥¹Ì¾¤Ï -MAC ¥¢¥É¥ì¥¹¡¢NWID¡¢¥«¡¼¥É¤Ë¤è¤Ã¤ÆÍøÍѤµ¤ì¤ë¼þÇÈ¿ô¤È¤È¤â¤Ë -¥«¡¼¥Í¥ë¥í¥°¥Õ¥¡¥¤¥ë¤ËÊó¹ð¤µ¤ì¤ë¡£ -.SS °ú¿ô -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤Ï¡¢¥â¥¸¥å¡¼¥ë¤È¤·¤Æ»ÈÍѤ¹¤ë¾ì¹ç -¤ËŬÍѤµ¤ì¡¢ +というワイアレス・イーサネット (wireless ethernet) アダプタのための +ローレベル・デバイスドライバである。このドライバはモジュールとしても、また、 +カーネルに組み込んだ形でも利用できる。また、どちらの場合でも、複数カード +(最大 4 枚まで) をサポートし、明示的にデバイスの名前を指定しない限り +(これに関しては、下を見よ)、発見されたそれぞれのカードには、利用可能な +次のイーサネットデバイス(eth0..eth#)が割り当てられる。このデバイス名は +MAC アドレス、NWID、カードによって利用される周波数とともに +カーネルログファイルに報告される。 +.SS 引数 +このセクションのパラメーターは、モジュールとして使用する場合 +に適用され、 .BR insmod (8) -¤Î¥³¥Þ¥ó¥É¡¦¥é¥¤¥ó°ú¤­¿ô¤È¤·¤ÆÍѤ¤¤ë¡£ -¥«¡¼¥Í¥ë¤Ë¥É¥é¥¤¥Ð¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ +のコマンド・ライン引き数として用いる。 +カーネルにドライバが含まれている場合は、 .I ether=IRQ,IO,NAME -¤È¤¤¤¦·Á¼°¤Î¥Ñ¥é¥á¡¼¥¿¤ò¥«¡¼¥Í¥ë¡¦¥³¥Þ¥ó¥É¥é¥¤¥ó¤ËÅϤ¹¡£ +という形式のパラメータをカーネル・コマンドラインに渡す。 .TP .B io -wavelan ¥«¡¼¥É¤ò¸¡½Ð¤¹¤ë»þ¤Ë¤É¤³¤Î¥Ù¡¼¥¹¥¢¥É¥ì¥¹¤ò¥µ¡¼¥Á¤¹¤ë¤«¤È¤¤¤¦ -¥ê¥¹¥È¤ò»ØÄꤹ¤ë (¥«¡¼¥É¤¬ÍøÍѤ¹¤ë¥Ù¡¼¥¹¥¢¥É¥ì¥¹¤Ï¥«¡¼¥É¤Î¥Ç¥£¥Ã¥× -¥¹¥¤¥Ã¥Á¤ÇÀßÄꤹ¤ë)¡£¤â¤· io ¥¢¥É¥ì¥¹¤¬»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¥É¥é¥¤¥Ð¤Ï 0x390 ¤È -0x3E0 ¤ò¥¹¥­¥ã¥ó¤¹¤ë(¤³¤Î¥¢¥É¥ì¥¹¤Ï¾¤Î¥Ï¡¼¥É¤È¾×Æͤ¹¤ë¤³¤È¤â¹Í¤¨¤é¤ì¤ë)¡£ +wavelan カードを検出する時にどこのベースアドレスをサーチするかという +リストを指定する (カードが利用するベースアドレスはカードのディップ +スイッチで設定する)。もし io アドレスが指定されなければドライバは 0x390 と +0x3E0 をスキャンする(このアドレスは他のハードと衝突することも考えられる)。 .TP .B irq -¤½¤ì¤¾¤ì¤Î wavelan ¥«¡¼¥É¤¬ÍøÍѤ¹¤ë irq ¤Î¥ê¥¹¥È¤ò¥»¥Ã¥È¤¹¤ë (¤³¤ÎÃÍ¤Ï -¾­ÍèŪ¤ÊÍøÍѤΤ¿¤á¤Ë¥Ñ¡¼¥Þ¥Í¥ó¥È¡¦¥¹¥È¥ì¡¼¥¸¤ËÊݸ¤µ¤ì¤ë)¡£ +それぞれの wavelan カードが利用する irq のリストをセットする (この値は +将来的な利用のためにパーマネント・ストレージに保存される)。 .TP .B name -¤½¤ì¤¾¤ì¤Î wavelan ¥«¡¼¥É¥Ç¥Ð¥¤¥¹¤Ë +それぞれの wavelan カードデバイスに .RB ( ifconfig (8) -¤¬ÍøÍѤ¹¤ë)̾Á°¤Î¥ê¥¹¥È¤ò¥»¥Ã¥È¤¹¤ë¡£ -.SS "¥ï¥¤¥¢¥ì¥¹³ÈÄ¥ (Wireless Extentions)" -¥ï¥¤¥¢¥ì¥¹³ÈÄ¥¤ÎÁàºî¤Ë¤Ï +が利用する)名前のリストをセットする。 +.SS "ワイアレス拡張 (Wireless Extentions)" +ワイアレス拡張の操作には .BR iwconfig (8) -¤ò»È¤¦¡£ -.SS NWID (or ¥É¥á¥¤¥ó) -¥Í¥Ã¥È¥ï¡¼¥¯ ID¤ò +を使う。 +.SS NWID (or ドメイン) +ネットワーク IDを .RI [ 0 -¤«¤é +から .IR FFFF ] -¤ËÀßÄꤹ¤ë¤«¡¢ +に設定するか、 .RI [ off ] -¤½¤ÎÍøÍѤò̵¸ú¤Ë¤¹¤ë¡£ -NWID ¤Ï¥«¡¼¥É¤Î¥Ñ¡¼¥Þ¥Í¥ó¥È¡¦¥¹¥È¥ì¡¼¥¸¥¨¥ê¥¢ (Permanent Strage Area) ¤Ë -³ÊǼ¤µ¤ì¤ë¤Î¤Ç¡¢NWID ¤Ï¥É¥é¥¤¥Ð¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤¿¤Ó¤ËÍøÍѤǤ­¤ë¡£ -.SS ¼þÇÈ¿ô¤È¥Á¥ã¥Í¥ë -2.4GHz 2.00 ¥Ï¡¼¥É¥¦¥§¥¢¤Ç¤Ï¡¢10 ¤ÎÄêµÁºÑ¤ß¤Î¥Á¥ã¥Í¥ë +その利用を無効にする。 +NWID はカードのパーマネント・ストレージエリア (Permanent Strage Area) に +格納されるので、NWID はドライバが呼び出されるたびに利用できる。 +.SS 周波数とチャネル +2.4GHz 2.00 ハードウェアでは、10 の定義済みのチャネル .RI ( 2.412 .I 2.422, 2.425, 2.4305, 2.432, 2.442, 2.452, 2.460, 2.462 .IR 2.484 ) -¤Î¤¦¤Á¤Î°ì¤Ä¤ò»ØÄꤹ¤ë¤«¡¢¤½¤ÎÃͤòľÀÜ»ØÄꤹ¤ë¤³¤È¤Ë¤è¤Ã¤Æ¼þÇÈ¿ô¤òÀßÄê -¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¼þÇÈ¿ô¤Ïľ¸å¤ËÊѹ¹¤µ¤ì¡¢¤Þ¤¿¡¢¤½¤ÎÊѹ¹¤Ï¹±µ×Ū¤Ç¤¢¤ë¡£ -¤É¤Î¼þÇÈ¿ô¤¬ÍøÍѤǤ­¤ë¤«¤È¤¤¤¦¤³¤È¤Ï¡¢(¤½¤Î¹ñ¤Î) ˡΧ¤Ë°Í¸¤¹¤ë¡Ä -.SS Åý·×¥¹¥Ñ¥¤ (Statics spy) -(8 ¤Ä¤Þ¤Ç¤Î) MAC ¥¢¥É¥ì¥¹¤Î¥ê¥¹¥È¤ò¥É¥é¥¤¥Ð¤ËÀßÄꤷ¤Æ¡¢ -¤½¤ì¤¾¤ì¤Î¥ê¥ó¥¯¤ÎÉʼÁ¤òÆÀ¤ë +のうちの一つを指定するか、その値を直接指定することによって周波数を設定 +することができる。 +周波数は直後に変更され、また、その変更は恒久的である。 +どの周波数が利用できるかということは、(その国の) 法律に依存する… +.SS 統計スパイ (Statics spy) +(8 つまでの) MAC アドレスのリストをドライバに設定して、 +それぞれのリンクの品質を得る .RB ( iwspy (8) -¤ò»²¾È)¡£ +を参照)。 .SS /proc/net/wireless .I status -¤Ï¥â¥Ç¥à¤«¤éÊó¹ð¤µ¤ì¤¿¥¹¥Æ¡¼¥¿¥¹¤Ç¤¢¤ë¡£ +はモデムから報告されたステータスである。 .I link quality -¤ÏÄÌ¿®Ãæ¤Î(ľÀܳȻ¶¥¹¥Ú¥¯¥È¥é¥àÄÌ¿®Êý¼°¤Ë¤ª¤±¤ë)ÊÑÄ´¤ÎÉʼÁ¤òÊó¹ð¤¹¤ë -[ºÇÂç = 16]¡£ +は通信中の(直接拡散スペクトラム通信方式における)変調の品質を報告する +[最大 = 16]。 .I Level -¤È +と .I Noise -¤Ï¿®¹æ¥ì¥Ù¥ë¤È¥Î¥¤¥º¤Î¥ì¥Ù¥ë¤ò»²¾È¤¹¤ë [ºÇÂç = 64]¡£ -.I °Å¹æ²½¤µ¤ì¤Æ¤¤¤ÆÇÑ´þ¤µ¤ì¤¿¥Ñ¥±¥Ã¥È(crypt discarded packet) -¤È -.I ¤½¤ì°Ê³°¤ÎÇÑ´þ¤µ¤ì¤¿¥Ñ¥±¥Ã¥È(misc discarded packet) -¤Î¥«¥¦¥ó¥¿¡¼¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SS "¥É¥é¥¤¥Ð¸ÇÍ­¤ÎIOCTL (Private Ioctl)" +は信号レベルとノイズのレベルを参照する [最大 = 64]。 +.I 暗号化されていて廃棄されたパケット(crypt discarded packet) +と +.I それ以外の廃棄されたパケット(misc discarded packet) +のカウンターは実装されていない。 +.SS "ドライバ固有のIOCTL (Private Ioctl)" .BR iwpriv (8) -¤ò¥É¥é¥¤¥Ð¸ÇÍ­¤Î ioctl ¤ÎÁàºî¤Î¤¿¤á¤ËÍøÍѤǤ­¤ë¡£ -.SS ÉʼÁ¤È¥ì¥Ù¥ë¤ÎïçÃÍ (Quality and Level threshold) -¥â¥Ç¥à¤Ç»È¤ï¤ì¤ëÉʼÁ¤È¥ì¥Ù¥ë¤ÎïçÃÍ (¤½¤Î¥ì¥Ù¥ë¤ò²¼²ó¤Ã¤¿¥Ñ¥±¥Ã¥È¤Ï -ÇË´þ¤µ¤ì¤ë) ¤òÄêµÁ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.SS ¥Ò¥¹¥È¥°¥é¥à (Histogram) -¤³¤Îµ¡Ç½¤Ë¤è¤ê¡¢ -¥·¥°¥Ê¥ë¥ì¥Ù¥ë¶è´Ö¤Î¿ô¤ÎÀßÄê¤È¡¢ÀßÄꤷ¤¿¤½¤ì¤¾¤ì¤Î¶è´Ö¤Ç¤Î -¼õ¿®¥Ñ¥±¥Ã¥È¿ô¤ò¥«¥¦¥ó¥È¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ÎʬÉۤϥ·¥°¥Ê¥ë¥ì¥Ù¥ë¤ÎºÇÉÎÃÍɸ½àÊк¹¤Î·×»»¤ËÌòΩ¤Ä¤À¤í¤¦¡£ -.SS ÆÃÄê¤Î¥É¥é¥¤¥Ð¤Ç¤ÎÃí°Õ -¤³¤Î¥É¥é¥¤¥Ð¤Ï¤¤¤¯¤Ä¤«¤Î -.B NCR/AT&T/Lucent ¤Ç¤Ï¤Ê¤¤ -Wavelan ¥«¡¼¥É¤Î¸¡½Ð¤Ë¼ºÇÔ¤¹¤ë¤À¤í¤¦¡£ -¤³¤ì¤¬¤¢¤Ê¤¿¤Î»ý¤Ã¤Æ¤¤¤ë¥«¡¼¥É¤Çµ¯¤³¤Ã¤¿¾ì¹ç -¡¢¤½¤Î¥«¡¼¥É¤Î¸¡½Ð½èÍý¤ò¤É¤Î¤è¤¦¤Ë²Ã¤¨¤ì¤Ð¤¤¤¤¤«¤È -¤¤¤¦¤³¤È¤Ë¤Ä¤¤¤Æ¥½¡¼¥¹¥³¡¼¥É¤ò³Îǧ¤¹¤ëɬÍפ¬¤¢¤ë¡£ +をドライバ固有の ioctl の操作のために利用できる。 +.SS 品質とレベルの閾値 (Quality and Level threshold) +モデムで使われる品質とレベルの閾値 (そのレベルを下回ったパケットは +破棄される) を定義することができる。 +.SS ヒストグラム (Histogram) +この機能により、 +シグナルレベル区間の数の設定と、設定したそれぞれの区間での +受信パケット数をカウントすることができる。 +この分布はシグナルレベルの最瀕値標準偏差の計算に役立つだろう。 +.SS 特定のドライバでの注意 +このドライバはいくつかの +.B NCR/AT&T/Lucent ではない +Wavelan カードの検出に失敗するだろう。 +これがあなたの持っているカードで起こった場合 +、そのカードの検出処理をどのように加えればいいかと +いうことについてソースコードを確認する必要がある。 .PP -¤³¤³¤Þ¤Ç¤Ç½Ò¤Ù¤Æ¤­¤¿µ¡Ç½¤Î¤¦¤Á¤Î¤¤¤¯¤Ä¤«¤Ï¡¢ÁªÂò²Äǽ¤Ç¤¢¤ë¡£ -¥É¥é¥¤¥Ð¤ÎÀèƬÉôʬ¤Î¥Õ¥é¥°¤òÊѹ¹¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Ê¤ª¤¹¤³¤È¤Ë¤è¤Ã¤Æ¡¢ -¤½¤Îµ¡Ç½¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¢¤ë¡£ -.\" .SH Ãø¼Ô +ここまでで述べてきた機能のうちのいくつかは、選択可能である。 +ドライバの先頭部分のフラグを変更してコンパイルしなおすことによって、 +その機能を無効にすることも可能である。 +.\" .SH 著者 .\" Bruce Janson \(em bruce@cs.usyd.edu.au .\" .br .\" Jean Tourrilhes \(em jt@hplb.hpl.hp.com .\" .br -.\" (¤ª¤è¤Ó¡¢¤½¤Î¾¤Î¿Íã; ¾ÜºÙ¤Ï¥½¡¼¥¹¥³¡¼¥É¤ò»²¾È¤Î¤³¤È) -.SH ´ØÏ¢¹àÌÜ +.\" (および、その他の人達; 詳細はソースコードを参照のこと) +.SH 関連項目 .BR wavelan_cs (4), .BR ifconfig (8), .BR insmod (8), diff --git a/release/man5/acct.5 b/release/man5/acct.5 index 4f5c3dca..08ec5b84 100644 --- a/release/man5/acct.5 +++ b/release/man5/acct.5 @@ -24,30 +24,30 @@ .\" all rights reserved. .\" Translated 2008-08-10, Akihiro MOTOKI , LDP v3.05 .\" -.\"WORD: accounting ¥¢¥«¥¦¥ó¥Æ¥£¥ó¥° +.\"WORD: accounting アカウンティング .\" .TH ACCT 5 2008-06-15 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -acct \- ¥×¥í¥»¥¹¡¦¥¢¥«¥¦¥ó¥Æ¥£¥ó¥°¡¦¥Õ¥¡¥¤¥ë -.SH ½ñ¼° +.SH 名前 +acct \- プロセス・アカウンティング・ファイル +.SH 書式 .B #include -.SH ÀâÌÀ -¥«¡¼¥Í¥ë¤¬¥×¥í¥»¥¹¡¦¥¢¥«¥¦¥ó¥Æ¥£¥ó¥°¤Î¥ª¥×¥·¥ç¥ó +.SH 説明 +カーネルがプロセス・アカウンティングのオプション .RB ( CONFIG_BSD_PROCESS_ACCT ) -¤òÍ­¸ú¤Ë¤·¤ÆºîÀ®¤µ¤ì¤Æ¤¤¤ë¤È¡¢°Ê²¼¤Î¤è¤¦¤Ë +を有効にして作成されていると、以下のように .BR acct (2) -¤ò¸Æ¤Ó½Ð¤¹¤È¥×¥í¥»¥¹¡¦¥¢¥«¥¦¥ó¥Æ¥£¥ó¥°¤¬³«»Ï¤µ¤ì¤ë¡£ +を呼び出すとプロセス・アカウンティングが開始される。 .in +4n acct("/var/log/pacct"); .in -¥×¥í¥»¥¹¡¦¥¢¥«¥¦¥ó¥Æ¥£¥ó¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢¥«¡¼¥Í¥ë¤Ï -¥·¥¹¥Æ¥à¾å¤Î³Æ¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤¿¤Ó¤Ë¥¢¥«¥¦¥ó¥Æ¥£¥ó¥°¥Õ¥¡¥¤¥ë¤Ë -¥ì¥³¡¼¥É¤ò½ñ¤­¹þ¤à¡£ -¤³¤Î¥ì¥³¡¼¥É¤Ï¡¢½ªÎ»¤·¤¿¥×¥í¥»¥¹¤Ë´Ø¤¹¤ë¾ðÊó¤òÊÝ»ý¤¹¤ë¤â¤Î¤Ç¡¢ +プロセス・アカウンティングが有効になっていると、カーネルは +システム上の各プロセスが終了するたびにアカウンティングファイルに +レコードを書き込む。 +このレコードは、終了したプロセスに関する情報を保持するもので、 .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で以下のように定義されている。 .in +4n .nf @@ -88,43 +88,43 @@ enum { /* Bits that may be set in ac_flag field */ .fi .in .PP -¥Ç¡¼¥¿·¿ +データ型 .I comp_t -¤ÏÉâÆ°¾®¿ôÅÀÃͤǡ¢3 ¥Ó¥Ã¥ÈÉý¤Î´ð¿ô¤¬ 8 ¤Î»Ø¿ôÉô¤È 13 ¥Ó¥Ã¥ÈÉý¤Î²¾¿ôÉô¤«¤é -¹½À®¤µ¤ì¤ë¡£ +は浮動小数点値で、3 ビット幅の基数が 8 の指数部と 13 ビット幅の仮数部から +構成される。 .I comp_t -·¿¤ÎÃÍ +型の値 .I c -¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ (long ·¿¤Î) À°¿ô¤ËÊÑ´¹¤Ç¤­¤ë¡£ +は以下のようにして (long 型の) 整数に変換できる。 .nf v = (c & 0x1fff) << (((c >> 13) & 0x7) * 3); .fi .PP -¥Õ¥£¡¼¥ë¥É +フィールド .IR ac_utime , .IR ac_stime , .I ac_etime -¤Ï "clock ticks" ñ°Ì¤Ç·×¬¤·¤¿»þ´Ö¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤ÎÃͤò +は "clock ticks" 単位で計測した時間である。 +これらの値を .I sysconf(_SC_CLK_TCK) -¤Ç³ä¤ë¤È¡¢ÉäËÊÑ´¹¤Ç¤­¤ë¡£ -.SS ¥Ð¡¼¥¸¥ç¥ó 3 ¤Î¥¢¥«¥¦¥ó¥Æ¥£¥ó¥°¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È -¥«¡¼¥Í¥ë 2.6.8 °Ê¹ß¤Ç¤Ï¡¢ -Ê̤ΥС¼¥¸¥ç¥ó¤Î¥¢¥«¥¦¥ó¥Æ¥£¥ó¥°¥Õ¥¡¥¤¥ë¤òÀ¸À®¤¹¤ë¤³¤È¤¬¤Ç¤­¡¢ -¤³¤ì¤ò»È¤¦¤Ë¤Ï¥«¡¼¥Í¥ë¹½ÃÛ»þ¤Ë +で割ると、秒に変換できる。 +.SS バージョン 3 のアカウンティングファイルのフォーマット +カーネル 2.6.8 以降では、 +別のバージョンのアカウンティングファイルを生成することができ、 +これを使うにはカーネル構築時に .B CONFIG_BSD_PROCESS_ACCT_V3 -¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬ÀßÄꤵ¤ì¤ë¤È¡¢¥¢¥«¥¦¥ó¥Æ¥£¥ó¥°¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤Þ¤ì¤ë -¥ì¥³¡¼¥É¤Ë¥Õ¥£¡¼¥ë¥É¤¬Äɲ䵤ì¤ë¡£ -¤Þ¤¿¡¢¥Õ¥£¡¼¥ë¥É +オプションが有効になっている必要がある。 +このオプションが設定されると、アカウンティングファイルに書き込まれる +レコードにフィールドが追加される。 +また、フィールド .I c_uid -¤È +と .I ac_gid -¤ÎÉý¤¬ 16 ¥Ó¥Ã¥È¤«¤é 32 ¥Ó¥Ã¥È¤Ë³ÈÄ¥¤µ¤ì¤ë -(¤³¤ì¤Ï Linux 2.4 °Ê¹ß¤Ç UID ¤È GID ¤Î¥µ¥¤¥º¤¬Áý¤¨¤Æ¤¤¤ë¤Î¤Ë -Âбþ¤·¤¿¤â¤Î¤Ç¤¢¤ë)¡£ -¤³¤Î¥ì¥³¡¼¥É¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +の幅が 16 ビットから 32 ビットに拡張される +(これは Linux 2.4 以降で UID と GID のサイズが増えているのに +対応したものである)。 +このレコードは以下のように定義されている。 .in +4n .nf @@ -153,28 +153,28 @@ struct acct_v3 { .fi .in -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .I acct_v3 -¹½Â¤ÂΤϥС¼¥¸¥ç¥ó 2.6 °Ê¹ß¤Î glibc ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ½àµò -¥×¥í¥»¥¹¥¢¥«¥¦¥ó¥Æ¥£¥ó¥°¤Ï BSD ͳÍè¤Ç¤¢¤ë¡£ -¤³¤Îµ¡Ç½¤Ï¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¤¬¡¢É¸½à²½¤µ¤ì¤Æ¤ª¤é¤º¡¢ -¤½¤Î¾ÜºÙ¤Ï¥·¥¹¥Æ¥à¤Ë¤è¤ê¤¤¤¯¤é¤«°Û¤Ê¤ë¡£ -.SH Ãí°Õ -¥¢¥«¥¦¥ó¥Æ¥£¥ó¥°¥Õ¥¡¥¤¥ë¤Î¥ì¥³¡¼¥É¤Ï¡¢¥×¥í¥»¥¹¤Î½ªÎ»»þ¹ï¤Î½ç½ø¤È¤Ê¤ë¡£ +構造体はバージョン 2.6 以降の glibc で定義されている。 +.SH 準拠 +プロセスアカウンティングは BSD 由来である。 +この機能はほとんどのシステムに存在するが、標準化されておらず、 +その詳細はシステムによりいくらか異なる。 +.SH 注意 +アカウンティングファイルのレコードは、プロセスの終了時刻の順序となる。 -¥Ð¡¼¥¸¥ç¥ó 2.6.9 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -NPTL ¥¹¥ì¥Ã¥É¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤ÆºîÀ®¤µ¤ì¤¿¥¹¥ì¥Ã¥É¤Ç¤Ï -¥¹¥ì¥Ã¥ÉËè¤ËÊÌ¡¹¤Î¥¢¥«¥¦¥ó¥Æ¥£¥ó¥°¥ì¥³¡¼¥É¤¬½ñ¤­¹þ¤Þ¤ì¤Æ¤¤¤¿¡£ -Linux 2.6.10 °Ê¹ß¤Ç¤Ï¡¢¥×¥í¥»¥¹Æâ¤ÎºÇ¸å¤Î¥¹¥ì¥Ã¥É¤¬½ªÎ»¤¹¤ë¤È¡¢ -¥×¥í¥»¥¹Á´ÂΤˤĤ¤¤Æ¤Î¥¢¥«¥¦¥ó¥Æ¥£¥ó¥°¥ì¥³¡¼¥É¤¬°ì¤Ä¤À¤±½ñ¤­¹þ¤Þ¤ì¤ë¡£ +バージョン 2.6.9 以前のカーネルでは、 +NPTL スレッドライブラリを使って作成されたスレッドでは +スレッド毎に別々のアカウンティングレコードが書き込まれていた。 +Linux 2.6.10 以降では、プロセス内の最後のスレッドが終了すると、 +プロセス全体についてのアカウンティングレコードが一つだけ書き込まれる。 .I proc/sys/kernel/acct -¥Õ¥¡¥¤¥ë +ファイル .RB ( proc (5) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë) ¤Ï¡¢¥Ç¥£¥¹¥¯ÍÆÎ̤λĤ꤬¾¯¤Ê¤¯¤Ê¤Ã¤¿ºÝ¤Î -¥×¥í¥»¥¹¡¦¥¢¥«¥¦¥ó¥Æ¥£¥ó¥°¤ÎÆ°ºî¤òÀ©¸æ¤¹¤ëÀßÄê¤òÊÝ»ý¤·¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +で説明されている) は、ディスク容量の残りが少なくなった際の +プロセス・アカウンティングの動作を制御する設定を保持している。 +.SH 関連項目 .BR lastcomm (1), .BR acct (2), .BR accton (8), diff --git a/release/man5/charmap.5 b/release/man5/charmap.5 index df206f7e..df863a80 100644 --- a/release/man5/charmap.5 +++ b/release/man5/charmap.5 @@ -25,98 +25,98 @@ .\" Updated Wed Jan 9 JST 2001 by Kentaro Shirakata .\" .TH CHARMAP 5 1994-11-28 "" "Linux User Manual" -.SH ̾Á° -charmap \- ʸ»úÉä¹æ²½¤òÄêµÁ¤¹¤ë¤¿¤á¤Îʸ»ú¥·¥ó¥Ü¥ë -.SH ½ñ¼° -ʸ»ú½¸¹çµ­½Ò (charmap) ¤Ï»ÈÍѤǤ­¤ëʸ»ú½¸¹ç¤È¤½¤ÎÉä¹æ²½¤òÄêµÁ¤¹¤ë¡£ -¥µ¥Ý¡¼¥È¤µ¤ì¤ëÁ´¤Æ¤Îʸ»ú½¸¹ç¤ÏÂÅÅö¤Ê¥µ¥Ö¥»¥Ã¥È¤È¤·¤Æ -.B "¶¦ÄÌʸ»ú½¸¹ç (portable character set)" -¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.\" °Ê²¼¤Ï¤â¤Ï¤äÀµ¤·¤¯¤Ê¤¤: -.\" ¶¦ÄÌʸ»ú½¸¹ç¤Ï»²¾ÈÍÑ¤Ë +.SH 名前 +charmap \- 文字符号化を定義するための文字シンボル +.SH 書式 +文字集合記述 (charmap) は使用できる文字集合とその符号化を定義する。 +サポートされる全ての文字集合は妥当なサブセットとして +.B "共通文字集合 (portable character set)" +を持たなければならない。 +.\" 以下はもはや正しくない: +.\" 共通文字集合は参照用に .\" .I /usr/lib/nls/charmap/POSIX .\" .I /usr/share/i18n/charmap/POSIX -.\" ¥Õ¥¡¥¤¥ë¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -.SS ʸˡ -charmap ¥Õ¥¡¥¤¥ë¤Ï°Ê²¼¤Î¥­¡¼¥ï¡¼¥É¤«¤é¤Ê¤ë¥Ø¥Ã¥À¡¼¤Ç»Ï¤Þ¤ë: +.\" ファイルに定義されている。 +.SS 文法 +charmap ファイルは以下のキーワードからなるヘッダーで始まる: .TP .I -¤Ï¥³¡¼¥É¥»¥Ã¥È¤Î̾Á°¤ò»ØÄꤹ¤ë¡£ +はコードセットの名前を指定する。 .TP .I -¤ÏÊ£¿ô¥Ð¥¤¥Èʸ»ú¤Î°ìʸ»ú¤¢¤¿¤ê¤ÎºÇÂç¥Ð¥¤¥È¿ô¤ò»ØÄꤹ¤ë¡£ -Ê£¿ô¥Ð¥¤¥Èʸ»ú¤Ï¸½ºß¤Î¤È¤³¤í¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£¥Ç¥Õ¥©¥ë¥È¤Ï 1 ¤Ç¤¢¤ë¡£ +は複数バイト文字の一文字あたりの最大バイト数を指定する。 +複数バイト文字は現在のところサポートされていない。デフォルトは 1 である。 .TP .I -¤Ï°ìʸ»ú¤¢¤¿¤ê¤ÎºÇÄã¥Ð¥¤¥È¿ô¤ò»ØÄꤹ¤ë¡£¤³¤ÎÃÍ¤Ï +は一文字あたりの最低バイト数を指定する。この値は .B mb_cur_max -°Ê²¼¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤â¤·»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¥Ç¥Õ¥©¥ë¥È¤Ï +以下でなければならない。 +もし指定されなければデフォルトは .B mb_cur_max -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ +と同じである。 .TP .I -¥Õ¥¡¥¤¥ë¤Î»Ä¤ê¤ÎÉôʬ¤Ç¥¨¥¹¥±¡¼¥×¡¦¥­¥ã¥é¥¯¥¿¡¼¤È¤·¤Æ»ÈÍѤ¹¤ëʸ»ú -¤ò»ØÄꤹ¤ë¡£¤³¤ì¤ÇÆüì¤Ê°ÕÌ£¤Ë²ò¼á¤µ¤ì¤ëʸ»ú¤ò¥¨¥¹¥±¡¼¥×¤¹¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å +ファイルの残りの部分でエスケープ・キャラクターとして使用する文字 +を指定する。これで特殊な意味に解釈される文字をエスケープする。 +デフォルトはバックスラッシュ .RB ( \e ) -¤Ç¤¢¤ë¡£ +である。 .TP .I -¤Ï¥Õ¥¡¥¤¥ë¤Î»Ä¤ê¤ÎÉôʬ¤Ç¥³¥á¥ó¥È¡¦¥­¥ã¥é¥¯¥¿¡¼¤È¤·¤Æ»ÈÍѤ¹¤ëʸ»ú -¤ò»ØÄꤹ¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥·¥ã¡¼¥× +はファイルの残りの部分でコメント・キャラクターとして使用する文字 +を指定する。デフォルトではシャープ .RB ( # ) -¤Ç¤¢¤ë¡£ +である。 .PP -charmap ¤ÎÄêµÁ¤½¤Î¤â¤Î¤ÏÂè°ì¥«¥é¥à¤Ë¥­¡¼¥ï¡¼¥É +charmap の定義そのものは第一カラムにキーワード .B CHARMAP -¤òÃÖ¤¯¤³¤È¤Ç»Ï¤á¤ë¡£ +を置くことで始める。 -°Ê²¼¤Î¹Ô¤Ïʸ»ú¤ÎÉä¹æ²½¤òÄêµÁ¤¹¤ë¤¿¤á¤ÎÆó¤Ä¤ÎÊýË¡¤Ç¤¢¤ë: +以下の行は文字の符号化を定義するための二つの方法である: .TP .I -¤³¤ì¤Ï°ì¤Ä¤Îʸ»ú¤È¤½¤ÎÉä¹æ²½¤òÄêµÁ¤¹¤ë¡£ +これは一つの文字とその符号化を定義する。 .TP .I ... -¤³¤Î·Á¼°¤ÏÊ£¿ô¤Îʸ»ú¤òÄêµÁ¤¹¤ë¡£¤³¤ì¤ÏÊ£¿ô¥Ð¥¤¥Èʸ»ú (¸½ºß¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤) -¤Î¤ß¤ÇÍ­ÍѤǤ¢¤ë¡£ +この形式は複数の文字を定義する。これは複数バイト文字 (現在は実装されていない) +のみで有用である。 .PP -charmap ¤ÎÄêµÁ¤ÎºÇ¸å¤Î¹Ô¤Ï +charmap の定義の最後の行は .B END CHARMAP -¤òÃÖ¤¯¡£ -.SS ¥·¥ó¥Ü¥ë̾ -ʸ»ú¤Î -.B ¥·¥ó¥Ü¥ë̾ (symbolic name) -¤Ï -.B ¶¦ÄÌʸ»ú½¸¹ç(portable character set) -¤Îʸ»ú¤Î¤ß¤ò´Þ¤ó¤Ç¤¤¤ë¡£ -¤³¤Î̾Á°¤Ï¤«¤®¤«¤Ã¤³ < > ¤Ç¶´¤à¡£ +を置く。 +.SS シンボル名 +文字の +.B シンボル名 (symbolic name) +は +.B 共通文字集合(portable character set) +の文字のみを含んでいる。 +この名前はかぎかっこ < > で挟む。 .B -¤Ë³¤¯Ê¸»ú¤Ï¤½¤ì¼«¿È¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£Î㤨¤Ð +に続く文字はそれ自身として解釈される。例えば .B "<\e\e\e>>" -¤Î¤è¤¦¤Êʸ»úÎó¤Ï +のような文字列は .B "\e>" -¤È¤¤¤¦¥·¥ó¥Ü¥ë̾¤ò¤«¤®¤«¤Ã¤³¤Ç¶¹¤ó¤Çɽ¸½¤·¤Æ¤¤¤ë¡£ -.SS ʸ»úÉä¹æ²½ -Éä¹æ²½¤Ï°Ê²¼¤Î»°¤Ä¤Î·Á¼°¤Î¤É¤ì¤«¤Çɽ¤¹: +というシンボル名をかぎかっこで狭んで表現している。 +.SS 文字符号化 +符号化は以下の三つの形式のどれかで表す: .TP -.I d<¿ô»ú> -¤Ï 10 ¿Ê¤Î¿ôÃͤòɽ¤¹¡£ +.I d<数字> +は 10 進の数値を表す。 .TP -.I x<¿ô»ú> -¤Ï 16 ¿Ê¤Î¿ôÃͤòɽ¤¹¡£ +.I x<数字> +は 16 進の数値を表す。 .TP -.I <¿ô»ú> -¤Ï 8 ¿Ê¤Î¿ôÃͤòɽ¤¹¡£ +.I <数字> +は 8 進の数値を表す。 .\" FIXME comments .\" FIXME char ... char -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .I /usr/share/i18n/charmaps/* -.\" .SH Ãø¼Ô +.\" .SH 著者 .\" Jochen Hein (jochen.hein@delphi.central.de) -.SH ½àµò +.SH 準拠 POSIX.2. -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR locale (1), .BR localedef (1), .BR localeconv (3), diff --git a/release/man5/core.5 b/release/man5/core.5 index 7d5e242b..6075e779 100644 --- a/release/man5/core.5 +++ b/release/man5/core.5 @@ -28,245 +28,245 @@ .\" Updated 2008-09-19, Akihiro MOTOKI, LDP v3.08 .\" .TH CORE 5 2010-11-15 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -core \- ¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë -.SH ÀâÌÀ -¤¢¤ë¼ï¤Î¥·¥°¥Ê¥ë¤ò¼õ¤±¤¿¾ì¹ç¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥¢¥¯¥·¥ç¥ó¤Ï¡¢ -¥×¥í¥»¥¹¤ò½ªÎ»¤· (terminate)¡¢ -.I "¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë (core dump file)" -¤òÀ¸À®¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤Ï¡¢¥Ç¥£¥¹¥¯¾å¤ËÀ¸À®¤µ¤ì¤ë -½ªÎ»»þ¤Î¥×¥í¥»¥¹¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤òÆâÍƤȤ¹¤ë¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ -¤³¤Î¥¤¥á¡¼¥¸¤ò¥Ç¥Ð¥Ã¥¬ (Î㤨¤Ð +.SH 名前 +core \- コアダンプファイル +.SH 説明 +ある種のシグナルを受けた場合のデフォルトのアクションは、 +プロセスを終了し (terminate)、 +.I "コアダンプファイル (core dump file)" +を生成することである。コアダンプファイルは、ディスク上に生成される +終了時のプロセスのメモリイメージを内容とするファイルである。 +このイメージをデバッガ (例えば .BR gdb (1)) -¤ËÆɤ߹þ¤ó¤Ç¡¢ -¥×¥í¥°¥é¥à¤¬½ªÎ»¤·¤¿»þÅÀ¤Î¥×¥í¥°¥é¥à¤Î¾õÂÖ¤ò¸¡ºº¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤É¤Î¥·¥°¥Ê¥ë¤ò¼õ¤±¤¿¤È¤­¤Ë¥×¥í¥»¥¹¤¬¥³¥¢¥À¥ó¥×¤òÀ¸À®¤¹¤ë¤«¤Î¥ê¥¹¥È¤Ï +に読み込んで、 +プログラムが終了した時点のプログラムの状態を検査することができる。 +どのシグナルを受けたときにプロセスがコアダンプを生成するかのリストは .BR signal (7) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ +に書かれている。 -¥×¥í¥»¥¹¤Ï¥½¥Õ¥È¡¦¥ê¥½¡¼¥¹À©¸Â +プロセスはソフト・リソース制限 .B RLIMIT_CORE -¤òÀßÄꤹ¤ë¤³¤È¤Ç¡¢¡Ö¥³¥¢¥À¥ó¥×¡×¥·¥°¥Ê¥ë¤ò¼õ¿®¤·¤¿ºÝ¤ËÀ¸À®¤µ¤ì¤ë -¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤Ë¾å¸Â¤ò²Ý¤¹¤³¤È¤¬¤Ç¤­¤ë¡£¾ÜºÙ¤Ï +を設定することで、「コアダンプ」シグナルを受信した際に生成される +コアダンプファイルのサイズに上限を課すことができる。詳細は .BR getrlimit (2) -¤ò»²¾È¡£ +を参照。 -¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤¬À¸À®¤µ¤ì¤Ê¤¤¾õ¶·¤¬¤¤¤¯¤Ä¤«¤¢¤ë: +コアダンプファイルが生成されない状況がいくつかある: .IP * 3 -¥×¥í¥»¥¹¤¬¥³¥¢¥Õ¥¡¥¤¥ë¤ò½ñ¤­¹þ¤àµö²Ä¤ò»ý¤¿¤Ê¤¤¾ì¹ç -(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥³¥¢¥Õ¥¡¥¤¥ë¤Ï +プロセスがコアファイルを書き込む許可を持たない場合 +(デフォルトでは、コアファイルは .I core -¤È¤¤¤¦Ì¾Á°¤Ç¡¢¥«¥ì¥ó¥È¡¦¥ï¡¼¥­¥ó¥°¡¦¥Ç¥£¥ì¥¯¥È¥ê¤ËÀ¸À®¤µ¤ì¤ë¡£ -̿̾µ¬Â§¤Î¾ÜºÙ¤Ï²¼µ­¤ò»²¾È)¡£ -¥³¥¢¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤è¤¦¤È¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê¤¬½ñ¤­¹þ¤ß²Äǽ¤Ç¤Ê¤¤¾ì¹ç¡¢ -¤â¤·¤¯¤ÏƱ¤¸Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤¬½ñ¤­¹þ¤ß²Äǽ¤Ç¤â -Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤â¤Ê¤¤¾ì¹ç (Î㤨¤Ð¡¢¥Ç¥£¥ì¥¯¥È¥ê¤ä¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯)¡¢ -¥³¥¢¥Õ¥¡¥¤¥ë¤ÎÀ¸À®¤Ï¼ºÇÔ¤¹¤ë¡£ +という名前で、カレント・ワーキング・ディレクトリに生成される。 +命名規則の詳細は下記を参照)。 +コアファイルを生成しようとしたディレクトリが書き込み可能でない場合、 +もしくは同じ名前のファイルが存在し、そのファイルが書き込み可能でも +通常のファイルでもない場合 (例えば、ディレクトリやシンボリックリンク)、 +コアファイルの生成は失敗する。 .IP * -¥³¥¢¥À¥ó¥×¤Ë»È¤ª¤¦¤È¤·¤¿¤Î¤ÈƱ¤¸Ì¾Á°¤Î (½ñ¤­¹þ¤ß²Äǽ¤Ê¡¢Ä̾ï¤Î) ¥Õ¥¡¥¤¥ë¤¬ -¤¹¤Ç¤Ë¸ºß¤·¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥Ï¡¼¥É¥ê¥ó¥¯¤¬ 2¸Ä°Ê¾å¤¢¤ë¾ì¹ç¡£ +コアダンプに使おうとしたのと同じ名前の (書き込み可能な、通常の) ファイルが +すでに存在し、そのファイルに対するハードリンクが 2個以上ある場合。 .IP * -¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤è¤¦¤È¤·¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¥Õ¥ë¤Ç¤¢¤ë¤«¡¢ -inode ¤¬Á´¤Æ»ÈÍѤµ¤ì¤Æ¤¤¤ë¤«¡¢Æɤ߹þ¤ßÀìÍѤǥޥ¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡£ -¤Þ¤¿¤Ï¡¢¤½¤Î¥æ¡¼¥¶¤Î¥Ç¥£¥¹¥¯»ÈÍÑÎ̤¬¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î -¥¯¥ª¡¼¥¿ (quota) ¤Ë㤷¤Æ¤¤¤ë¡£ +コアダンプファイルを生成しようとしたファイルシステムがフルであるか、 +inode が全て使用されているか、読み込み専用でマウントされている場合。 +または、そのユーザのディスク使用量がそのファイルシステムの +クオータ (quota) に達している。 .IP * -¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤è¤¦¤È¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¡£ +コアダンプファイルを生成しようとしたディレクトリが存在しない場合。 .IP * -¥×¥í¥»¥¹Ëè¤Î¥ê¥½¡¼¥¹À©¸Â +プロセス毎のリソース制限 .B RLIMIT_CORE -(¥³¥¢¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º) ¤« +(コアファイルのサイズ) か .B RLIMIT_FSIZE -(¥Õ¥¡¥¤¥ë¥µ¥¤¥º) ¤¬ 0 ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡£ +(ファイルサイズ) が 0 に設定されている場合。 .BR getrlimit (2) -¤ä¥·¥§¥ë¤Î +やシェルの .I ulimit -¥³¥Þ¥ó¥É¤Î¥É¥­¥å¥á¥ó¥È +コマンドのドキュメント .RB ( csh (1) -¤Î +の .IR limit ) -¤ò»²¾È¡£ +を参照。 .IP * -¥×¥í¥»¥¹¤¬¼Â¹Ô¤·¤¿¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤ÎÆɤ߽Ф·µö²Ä¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¡£ +プロセスが実行したバイナリファイルの読み出し許可が有効になっていない場合。 .IP * -¥×¥í¥»¥¹¤¬¼Â¹Ô¤·¤Æ¤¤¤ë set-user-ID (set-group-ID) ¥×¥í¥°¥é¥à¤Î½êÍ­¼Ô¤Î -¥æ¡¼¥¶ (¥°¥ë¡¼¥×) ¤¬¡¢¥×¥í¥»¥¹¤Î¼Â UID (¼Â GID) ¤È°Û¤Ê¤ë¾ì¹ç -(⤷¡¢ +プロセスが実行している set-user-ID (set-group-ID) プログラムの所有者の +ユーザ (グループ) が、プロセスの実 UID (実 GID) と異なる場合 +(但し、 .BR prctl (2) .B PR_SET_DUMPABLE -Áàºî¤ÎÀâÌÀ¤È¡¢ +操作の説明と、 .BR proc (5) -¤Î +の .I /proc/sys/fs/suid_dumpable -¥Õ¥¡¥¤¥ë¤ÎÀâÌÀ¤â»²¾È¤Î¤³¤È)¡£ +ファイルの説明も参照のこと)。 .\" FIXME . Perhaps relocate discussion of /proc/sys/fs/suid_dumpable .\" and PR_SET_DUMPABLE to this page? -.SS ¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤Î̾Á° -.\" motoki XXX Ʊ¤¸ÆâÍƤ¬½ÅÊ£¤·¤Æ½ñ¤«¤ì¤Æ¤¤¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤Î̾Á°¤Ï +.SS コアダンプファイルの名前 +.\" motoki XXX 同じ内容が重複して書かれている。 +デフォルトでは、コアダンプファイルの名前は .I core -¤È¤Ê¤ë¤¬¡¢¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤Î̾Á°¤ò·è¤á¤ë¤Î¤Ë»È¤ï¤ì¤ë¥Æ¥ó¥×¥ì¡¼¥È¤ò +となるが、コアダンプファイルの名前を決めるのに使われるテンプレートを .I /proc/sys/kernel/core_pattern -¥Õ¥¡¥¤¥ë¤ËÄêµÁ¤¹¤ë¤³¤È¤Ç¡¢¥Õ¥¡¥¤¥ë̾¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë +ファイルに定義することで、ファイル名を変更することができる .RI ( /proc/sys/kernel/core_pattern -¤Ï Linux 2.6 ¤ª¤è¤Ó 2.4.21 °Ê¹ß¤ÇÍøÍѤǤ­¤ë)¡£ -¥Æ¥ó¥×¥ì¡¼¥È¤Ë¤Ï % »Ø¼¨»Ò (specifier) ¤òÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤Ï¥³¥¢¥Õ¥¡¥¤¥ë¤¬À¸À®¤µ¤ì¤ëºÝ¤Ë¡¢°Ê²¼¤ÎÃͤËÃÖ¤­´¹¤¨¤é¤ì¤ë¡£ +は Linux 2.6 および 2.4.21 以降で利用できる)。 +テンプレートには % 指示子 (specifier) を入れることができる。 +これはコアファイルが生成される際に、以下の値に置き換えられる。 .PP .RS 4 .PD 0 .TP 4 %% -1 ¤Ä¤Î % ʸ»ú +1 つの % 文字 .TP %p -¥À¥ó¥×¤µ¤ì¤¿¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ID (PID) +ダンプされたプロセスのプロセスID (PID) .TP %u -¥À¥ó¥×¤µ¤ì¤¿¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶ ID (real UID) +ダンプされたプロセスの実ユーザ ID (real UID) .TP %g -¥À¥ó¥×¤µ¤ì¤¿¥×¥í¥»¥¹¤Î¼Â¥°¥ë¡¼¥× ID (real GID) +ダンプされたプロセスの実グループ ID (real GID) .TP %s -¥À¥ó¥×¤ò°ú¤­µ¯¤³¤·¤¿¥·¥°¥Ê¥ë¤ÎÈÖ¹æ +ダンプを引き起こしたシグナルの番号 .TP %t -¥À¥ó¥×»þ¹ï¡¢µª¸µ (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) -¤«¤é¤ÎÉÿô¡£ +ダンプ時刻、紀元 (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) +からの秒数。 .TP %h -¥Û¥¹¥È̾ (\fBuname\fP(2) ¤ÇÊÖ¤µ¤ì¤ë \fInodename\fP ¤ÈƱ¤¸) +ホスト名 (\fBuname\fP(2) で返される \fInodename\fP と同じ) .TP %e -¼Â¹Ô¥Õ¥¡¥¤¥ë̾ (¥Ñ¥¹Ì¾¤Î¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤Ï´Þ¤Þ¤ì¤Ê¤¤) +実行ファイル名 (パス名のプレフィックスは含まれない) .TP %c -¥¯¥é¥Ã¥·¥å¤·¤¿¥×¥í¥»¥¹¤Î¥³¥¢¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤Ë´Ø¤¹¤ë¥½¥Õ¥È¥ê¥½¡¼¥¹¾å¸Â -(Linux 2.6.24 °Ê¹ß) +クラッシュしたプロセスのコアファイルのサイズに関するソフトリソース上限 +(Linux 2.6.24 以降) .PD .RE .PP -¥Æ¥ó¥×¥ì¡¼¥È¤ÎËöÈø¤Ë 1 ¸Ä¤À¤± % ¤¬¤¢¤ë¾ì¹ç¡¢ -¤½¤Î % ¤Ï¥³¥¢¥Õ¥¡¥¤¥ë̾¤Ë¤Ï´Þ¤á¤é¤ì¤Ê¤¤¡£¤Þ¤¿¡¢¾å¤ÇÎóµó¤µ¤ì¤Æ -¤¤¤Ê¤¤ % ¤Èʸ»ú¤ÎÁȤ߹ç¤ï¤»¤¬¤¢¤Ã¤¿¾ì¹ç¤âƱÍͤǤ¢¤ë¡£ -¥Æ¥ó¥×¥ì¡¼¥È¤Ë¤ª¤±¤ë¾¤Îʸ»ú¤Ï¡¢ -¥³¥¢¥Õ¥¡¥¤¥ë̾¤È¤·¤Æ¤½¤Î¤Þ¤Þ»È¤ï¤ì¤ë¡£ -¥Æ¥ó¥×¥ì¡¼¥È¤Ë¤Ï \(aq/\(aq ʸ»ú¤òÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¡¢ -¥Ç¥£¥ì¥¯¥È¥ê̾¤Î¶èÀÚ¤êʸ»ú¤È²ò¼á¤µ¤ì¤ë¡£ -·ë²Ì¤È¤·¤ÆÀ¸À®¤µ¤ì¤ë¥³¥¢¥Õ¥¡¥¤¥ë̾¤ÎºÇÂ祵¥¤¥º¤Ï 128 ¥Ð¥¤¥È¤Ç¤¢¤ë -(2.6.19 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï 64 ¥Ð¥¤¥È)¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï "core" ¤Ç¤¢¤ë¡£ -°ÊÁ°¤Î¤â¤Î¤È¤Î¸ß´¹À­¤Î¤¿¤á¡¢ +テンプレートの末尾に 1 個だけ % がある場合、 +その % はコアファイル名には含められない。また、上で列挙されて +いない % と文字の組み合わせがあった場合も同様である。 +テンプレートにおける他の文字は、 +コアファイル名としてそのまま使われる。 +テンプレートには \(aq/\(aq 文字を入れることができ、 +ディレクトリ名の区切り文字と解釈される。 +結果として生成されるコアファイル名の最大サイズは 128 バイトである +(2.6.19 より前のカーネルでは 64 バイト)。 +このファイルのデフォルト値は "core" である。 +以前のものとの互換性のため、 .I /proc/sys/kernel/core_pattern -¤Ë "%p" ¤¬´Þ¤Þ¤ì¤º¡¢ -¤«¤Ä +に "%p" が含まれず、 +かつ .I /proc/sys/kernel/core_uses_pid -(²¼µ­»²¾È) ¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢.PID ¤¬¥³¥¢¥Õ¥¡¥¤¥ë̾¤ËÄɲ䵤ì¤ë¡£ +(下記参照) が 0 でない場合は、.PID がコアファイル名に追加される。 -¥Ð¡¼¥¸¥ç¥ó 2.4 °Ê¹ß¤Î Linux ¤Ç¤Ï -¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤Î̾Á°¤òÀ©¸æ¤¹¤ë¸¶»ÏŪ¤ÊÊýË¡¤âÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +バージョン 2.4 以降の Linux では +コアダンプファイルの名前を制御する原始的な方法も提供されている。 .I /proc/sys/kernel/core_uses_pid -¥Õ¥¡¥¤¥ë¤ËÃÍ 0 ¤¬½ñ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤Ïñ½ã¤Ë +ファイルに値 0 が書かれている場合、コアダンプファイルは単純に .I core -¤È¤¤¤¦Ì¾Á°¤Ë¤Ê¤ë¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ë 0 °Ê³°¤ÎÃͤ¬½ñ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤Ï +という名前になる。このファイルに 0 以外の値が書かれている場合、 +コアダンプファイルは .I core.PID -¤È¤¤¤¦·Á¼°¤Î̾Á°¤Ë¤Ê¤ê¡¢¥Õ¥¡¥¤¥ë̾¤Ë¥×¥í¥»¥¹ ID ¤¬´Þ¤Þ¤ì¤ë¡£ -.SS ¥³¥¢¥À¥ó¥×¤Î¥×¥í¥°¥é¥à¤Ø¤Î¥Ñ¥¤¥× -¥«¡¼¥Í¥ë 2.6.19 °Ê¹ß¤Ç¤Ï¡¢Linux ¤Ï +という形式の名前になり、ファイル名にプロセス ID が含まれる。 +.SS コアダンプのプログラムへのパイプ +カーネル 2.6.19 以降では、Linux は .I /proc/sys/kernel/core_pattern -¥Õ¥¡¥¤¥ë¤ÎÊ̤ι½Ê¸¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤ÎºÇ½é¤Îʸ»ú¤¬¥Ñ¥¤¥×µ­¹æ (\fB|\fP) ¤Ç¤¢¤ì¤Ð¡¢ -¤½¤Î¹Ô¤Î»Ä¤ê¤ÎÉôʬ¤Ï¼Â¹Ô¤¹¤ë¥×¥í¥°¥é¥à¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ -¥³¥¢¥À¥ó¥×¤Ï¡¢¥Ç¥£¥¹¥¯¾å¤Î¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ -¥×¥í¥°¥é¥à¤Îɸ½àÆþÎϤȤ·¤ÆÅϤµ¤ì¤ë¡£ -°Ê²¼¤ÎÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +ファイルの別の構文をサポートしている。 +このファイルの最初の文字がパイプ記号 (\fB|\fP) であれば、 +その行の残りの部分は実行するプログラムとして解釈される。 +コアダンプは、ディスク上のファイルに書き込まれるのではなく、 +プログラムの標準入力として渡される。 +以下の点に注意すること。 .IP * 3 -¥×¥í¥°¥é¥à¤ÏÀäÂХѥ¹Ì¾ (¤â¤·¤¯¤Ï¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê \fI/\fP ¤«¤é¤Î -ÁêÂХѥ¹Ì¾) ¤Ç»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤Þ¤¿¡¢'|' ʸ»ú¤Îľ¸å¤«¤é»Ï¤á¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +プログラムは絶対パス名 (もしくはルートディレクトリ \fI/\fP からの +相対パス名) で指定されなければならない。 +また、'|' 文字の直後から始めなければならない。 .IP * -¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤ËÀ¸À®¤µ¤ì¤ë¥×¥í¥»¥¹¤Ï¡¢ -¥æ¡¼¥¶¡¢¥°¥ë¡¼¥×¤È¤â +プログラムを実行するために生成されるプロセスは、 +ユーザ、グループとも .I root -¤È¤·¤Æ¼Â¹Ô¤µ¤ì¤ë¡£ +として実行される。 .IP * -¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤ò¥×¥í¥°¥é¥à¤ËÍ¿¤¨¤ë¤³¤È¤¬¤Ç¤­ (¥«¡¼¥Í¥ë 2.6.24 °Ê¹ß)¡¢ -°ú¤­¿ô¤Ï¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹¤Ç¶èÀÚ¤ë -(1¹Ô¤ÎºÇÂçĹ¤Ï 128 ¥Ð¥¤¥È¤¬¾å¸Â¤Ç¤¢¤ë)¡£ +コマンドライン引き数をプログラムに与えることができ (カーネル 2.6.24 以降)、 +引き数はホワイトスペースで区切る +(1行の最大長は 128 バイトが上限である)。 .IP * -¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ë¤Ï¡¢¾åµ­¤Î¥ê¥¹¥È¤Ë¤¢¤ë % »Ø¼¨»Ò¤ò´Þ¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -Î㤨¤Ð¡¢¥À¥ó¥×¤µ¤ì¤ë¥×¥í¥»¥¹¤Î PID ¤òÅϤ¹¤Ë¤Ï¡¢ -°ú¤­¿ô¤Ë +コマンドライン引き数には、上記のリストにある % 指示子を含めることができる。 +例えば、ダンプされるプロセスの PID を渡すには、 +引き数に .I %p -¤ò»ØÄꤹ¤ë¡£ -.SS ¤É¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò¥³¥¢¥À¥ó¥×¤Ë½ñ¤­¹þ¤à¤«¤òÀ©¸æ¤¹¤ë -¥«¡¼¥Í¥ë 2.6.23 °Ê¹ß¤Ç¤Ï¡¢Linux ¸ÇÍ­¤Î¥Õ¥¡¥¤¥ë +を指定する。 +.SS どのマッピングをコアダンプに書き込むかを制御する +カーネル 2.6.23 以降では、Linux 固有のファイル .I /proc/PID/coredump_filter -¤ò»È¤Ã¤Æ¡¢Âбþ¤¹¤ë¥×¥í¥»¥¹ ID ¤ò»ý¤Ä¥×¥í¥»¥¹¤ËÂФ·¤Æ¥³¥¢¥À¥ó¥×¤¬¹Ô¤ï¤ì¤ë -ºÝ¤Ë¡¢¤É¤Î¥á¥â¥ê¥»¥°¥á¥ó¥È¤ò¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤à¤«¤òÀ©¸æ¤Ç¤­¤ë¡£ +を使って、対応するプロセス ID を持つプロセスに対してコアダンプが行われる +際に、どのメモリセグメントをコアダンプファイルに書き込むかを制御できる。 -¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÃͤϥá¥â¥ê¥Þ¥Ã¥Ô¥ó¥°¼ïÊÌ +このファイルの値はメモリマッピング種別 .RB ( mmap (2) -»²¾È) ¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ë¡£ -¥Þ¥¹¥¯Æâ¤Î¤¢¤ë¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢¤½¤Î¥Ó¥Ã¥È¤ËÂбþ¤¹¤ë¼ïÊ̤Π-¥á¥â¥ê¥Þ¥Ã¥Ô¥ó¥°¤¬¥À¥ó¥×¤µ¤ì¤ë¡£¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤â¤Î¤Ï¥À¥ó¥×¤µ¤ì¤Ê¤¤¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Î³Æ¥Ó¥Ã¥È¤Ï°Ê²¼¤Î°ÕÌ£¤ò»ý¤Ä¡£ +参照) のビットマスクである。 +マスク内のあるビットがセットされると、そのビットに対応する種別の +メモリマッピングがダンプされる。セットされていないものはダンプされない。 +このファイルの各ビットは以下の意味を持つ。 .PP .PD 0 .RS 4 .TP bit 0 -̵̾¤Î¥×¥é¥¤¥Ù¡¼¥È¥Þ¥Ã¥Ô¥ó¥° (anonymous private mappings) ¤ò¥À¥ó¥×¤¹¤ë¡£ +無名のプライベートマッピング (anonymous private mappings) をダンプする。 .TP bit 1 -̵̾¤Î¶¦Í­¥Þ¥Ã¥Ô¥ó¥° (anonymous shared mappings) ¤ò¥À¥ó¥×¤¹¤ë¡£ +無名の共有マッピング (anonymous shared mappings) をダンプする。 .TP bit 2 -¥Õ¥¡¥¤¥ë¤È´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥×¥é¥¤¥Ù¡¼¥È¥Þ¥Ã¥Ô¥ó¥° -(file-backed private mappings) ¤ò¥À¥ó¥×¤¹¤ë¡£ +ファイルと関連付けられたプライベートマッピング +(file-backed private mappings) をダンプする。 .TP bit 3 -¥Õ¥¡¥¤¥ë¤È´ØÏ¢ÉÕ¤±¤é¤ì¤¿¶¦Í­¥Þ¥Ã¥Ô¥ó¥° -(file-backed shared mappings) ¤ò¥À¥ó¥×¤¹¤ë¡£ +ファイルと関連付けられた共有マッピング +(file-backed shared mappings) をダンプする。 .\" file-backed shared mappings of course also update the underlying .\" mapped file. .TP -bit 4 (Linux 2.6.24 °Ê¹ß) -ELF ¥Ø¥Ã¥À¤ò¥À¥ó¥×¤¹¤ë¡£ +bit 4 (Linux 2.6.24 以降) +ELF ヘッダをダンプする。 .TP -bit 5 (Linux 2.6.28 °Ê¹ß) -¥×¥é¥¤¥Ù¡¼¥È¤Ê¥Ò¥å¡¼¥¸¥Ú¡¼¥¸ (private huge page) ¤ò¥À¥ó¥×¤¹¤ë¡£ +bit 5 (Linux 2.6.28 以降) +プライベートなヒュージページ (private huge page) をダンプする。 .TP -bit 6 (Linux 2.6.28 °Ê¹ß) -¶¦Í­¤µ¤ì¤¿¥Ò¥å¡¼¥¸¥Ú¡¼¥¸ (shared huge page) ¤ò¥À¥ó¥×¤¹¤ë¡£ +bit 6 (Linux 2.6.28 以降) +共有されたヒュージページ (shared huge page) をダンプする。 .RE .PD .PP -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥Ó¥Ã¥È 0, 1, 4, 5 ¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ -(¥Ó¥Ã¥È 4 ¤¬¥»¥Ã¥È¤µ¤ì¤ë¤Î¤Ï¡¢¥«¡¼¥Í¥ë¤¬ÀßÄꥪ¥×¥·¥ç¥ó +デフォルトでは、ビット 0, 1, 4, 5 がセットされる。 +(ビット 4 がセットされるのは、カーネルが設定オプション .B CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS -¤òÍ­¸ú¤Ë¤·¤ÆºîÀ®¤µ¤ì¤¿¾ì¹ç¤Ç¤¢¤ë)¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÃÍ¤Ï 16 ¿Ê·Á¼°¤Çɽ¼¨¤µ¤ì¤ë -(¤·¤¿¤¬¤Ã¤Æ¡¢¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 33 ¤Èɽ¼¨¤µ¤ì¤ë)¡£ +を有効にして作成された場合である)。 +このファイルの値は 16 進形式で表示される +(したがって、デフォルト値は 33 と表示される)。 .I coredump_filter -¤ÎÃͤ˴ؤï¤é¤º¡¢¥Õ¥ì¡¼¥à¥Ð¥Ã¥Õ¥¡¤Ê¤É¤Î memory-mapped I/O ¤Ë´Ø¤¹¤ë -¥Ú¡¼¥¸¤Ï·è¤·¤Æ¥À¥ó¥×¤µ¤ì¤º¡¢²¾ÁÛ DSO ¥Ú¡¼¥¸¤Ï¾ï¤Ë¥À¥ó¥×¤µ¤ì¤ë¡£ +の値に関わらず、フレームバッファなどの memory-mapped I/O に関する +ページは決してダンプされず、仮想 DSO ページは常にダンプされる。 .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤ë»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤Î +で作成される子プロセスは親プロセスの .I coredump_filter -¤ÎÃͤò·Ñ¾µ¤¹¤ë¡£ +の値を継承する。 .BR execve (2) -¤ÎÁ°¸å¤Ç +の前後で .I coredump_filter -¤ÎÃͤÏÊÝ»ý¤µ¤ì¤ë¡£ +の値は保持される。 -Îã¤Î¤è¤¦¤Ë¡¢¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ëÁ°¤Ë¿Æ¥·¥§¥ë¤Î +例のように、プログラムを実行する前に親シェルの .I coredump_filter -¤òÀßÄꤷ¤Æ¤ª¤¯¤ÈÌòΩ¤Ä¤³¤È¤¬¤¢¤ë¡£ +を設定しておくと役立つことがある。 .in +4n .nf @@ -275,30 +275,30 @@ bit 6 (Linux 2.6.28 .fi .in .PP -¤³¤Î¥Õ¥¡¥¤¥ë¤¬Ä󶡤µ¤ì¤ë¤Î¤Ï¡¢¥«¡¼¥Í¥ë¤¬ÀßÄꥪ¥×¥·¥ç¥ó +このファイルが提供されるのは、カーネルが設定オプション .B CONFIG_ELF_CORE -¤òÍ­¸ú¤Ë¤·¤ÆºîÀ®¤µ¤ì¤¿¾ì¹ç¤À¤±¤Ç¤¢¤ë¡£ -.SH È÷¹Í +を有効にして作成された場合だけである。 +.SH 備考 .BR gdb (1) -¤Î +の .I gcore -¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¤È¡¢¼Â¹ÔÃæ¤Î¥×¥í¥»¥¹¤Î¥³¥¢¥À¥ó¥×¤ò¼èÆÀ¤Ç¤­¤ë¡£ +コマンドを使用すると、実行中のプロセスのコアダンプを取得できる。 -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥×¥í¥»¥¹ -(¤è¤êÀµ³Î¤Ë¤Ï¡¢ +マルチスレッドプロセス +(より正確には、 .BR clone (2) -¤Î +の .B CLONE_VM -¤ÇÀ¸À®¤µ¤ì¤¿ÊÌ¥×¥í¥»¥¹¤È¥á¥â¥ê¤ò¶¦Í­¤·¤Æ¤¤¤ë¥×¥í¥»¥¹) -¤¬¥³¥¢¥À¥ó¥×¤òÀ¸À®¤¹¤ë¾ì¹ç¡¢ -¥³¥¢¥Õ¥¡¥¤¥ë̾¤Ë¥×¥í¥»¥¹ ID ¤¬É¬¤ºÉղ䵤ì¤ë¡£ -¤¿¤À¤·¡¢ +で生成された別プロセスとメモリを共有しているプロセス) +がコアダンプを生成する場合、 +コアファイル名にプロセス ID が必ず付加される。 +ただし、 .I /proc/sys/kernel/core_pattern -¤Î %p »ØÄê¤Ë¤è¤ê¥³¥¢¥Õ¥¡¥¤¥ë̾¤Î¤É¤³¤«Â¾¤Î¾ì½ê¤Ë¥×¥í¥»¥¹ ID ¤¬ -¤¹¤Ç¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¥×¥í¥»¥¹ ID ¤¬ËöÈø¤ËÉղ䵤ì¤Ê¤¤¡£ -(¤³¤Îµ¡Ç½¤¬¤Þ¤ºÌò¤ËΩ¤Ä¤Î¤Ï LinuxThreads ¼ÂÁõ¤òÍøÍѤ·¤Æ¤¤¤ë¾ì¹ç¤Ç¤¢¤ë¡£ -LinuxThreads ¼ÂÁõ¤Ç¤Ï¡¢¥×¥í¥»¥¹Æâ¤Î¸Ä¡¹¤Î¥¹¥ì¥Ã¥É¤Ï°Û¤Ê¤ë¥×¥í¥»¥¹ ID -¤ò»ý¤Ä¡£) +の %p 指定によりコアファイル名のどこか他の場所にプロセス ID が +すでに含まれている場合は、プロセス ID が末尾に付加されない。 +(この機能がまず役に立つのは LinuxThreads 実装を利用している場合である。 +LinuxThreads 実装では、プロセス内の個々のスレッドは異なるプロセス ID +を持つ。) .\" Always including the PID in the name of the core file made .\" sense for LinuxThreads, where each thread had a unique PID, .\" but doesn't seem to serve any purpose with NPTL, where all the @@ -307,14 +307,14 @@ LinuxThreads .\" LinuxThreads continue appending the PID (the kernel has no easy .\" way of telling which threading implementation the userspace .\" application is using). -- mtk, April 2006 -.SH Îã -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï +.SH 例 +以下のプログラムは .I /proc/sys/kernel/core_pattern -¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¤¥×¹½Ê¸¤Î»ÈÍÑÎã¤ò¼¨¤·¤Æ¤¤¤ë¡£ -°Ê²¼¤Î¥·¥§¥ë¤Î¥»¥Ã¥·¥ç¥ó¤Ï¤³¤Î¥×¥í¥°¥é¥à¤Î»ÈÍÑÎã¤ò¼¨¤¹¤â¤Î¤Ç¤¢¤ë -(¥³¥ó¥Ñ¥¤¥ë¤·¤Æ +ファイルのパイプ構文の使用例を示している。 +以下のシェルのセッションはこのプログラムの使用例を示すものである +(コンパイルして .I core_pattern_pipe_test -¤È¤¤¤¦Ì¾Á°¤Î¼Â¹Ô¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤Æ¤¤¤ë)¡£ +という名前の実行ファイルを作成している)。 .PP .in +4n .nf @@ -338,7 +338,7 @@ argc[4]= Total bytes in core dump: 282624 .fi .in -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf /* core_pattern_pipe_test.c */ @@ -391,7 +391,7 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR bash (1), .BR gdb (1), .BR getrlimit (2), diff --git a/release/man5/dir_colors.5 b/release/man5/dir_colors.5 index 234c3fe0..a7afbf0e 100644 --- a/release/man5/dir_colors.5 +++ b/release/man5/dir_colors.5 @@ -16,339 +16,339 @@ .\" by Yuichi SATO .\" Updated & Modified Sat Jan 5 22:25:30 JST 2002 by Yuichi SATO .\" -.\"WORD: configuration ÀßÄê -.\"WORD: terminal üËö -.\"WORD: orphan ¸ÉΩ -.\"WORD: caret ¥­¥ã¥ì¥Ã¥È +.\"WORD: configuration 設定 +.\"WORD: terminal 端末 +.\"WORD: orphan 孤立 +.\"WORD: caret キャレット .\" .TH DIR_COLORS 5 2001-12-26 "GNU" "Linux User Manual" -.SH ̾Á° -dir_colors \- dircolors(1) ¤ÎÀßÄê¥Õ¥¡¥¤¥ë -.SH ÀâÌÀ -¥×¥í¥°¥é¥à +.SH 名前 +dir_colors \- dircolors(1) の設定ファイル +.SH 説明 +プログラム .BR ls (1) -¤Ï¡¢´Ä¶­ÊÑ¿ô +は、環境変数 .B LS_COLORS -¤ò»È¤¤¡¢¥Õ¥¡¥¤¥ë̾¤ò²¿¿§¤Çɽ¼¨¤¹¤ë¤«¤ò·èÄꤹ¤ë¡£ -¤³¤Î´Ä¶­ÊÑ¿ô¤Ï¡¢Ä̾ï +を使い、ファイル名を何色で表示するかを決定する。 +この環境変数は、通常 .RS eval \`dircolors some_path/dir_colors\` .RE -¤Î¤è¤¦¤Ê¥³¥Þ¥ó¥É¤ÇÀßÄꤵ¤ì¤ë¡£ -¤³¤Î¥³¥Þ¥ó¥É¤Ï +のようなコマンドで設定される。 +このコマンドは .I /etc/profile -¤ä +や .I /etc/csh.cshrc -¤È¤¤¤Ã¤¿¥·¥¹¥Æ¥à¤Î¥·¥§¥ë½é´ü²½¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë¡£ +といったシステムのシェル初期化ファイルにある。 .RB ( dircolors (1) -¤ò»²¾È¤¹¤ë¤³¤È¡£) -Ä̾¤³¤³¤Ç»È¤ï¤ì¤ë¥Õ¥¡¥¤¥ë¤Ï +を参照すること。) +通常、ここで使われるファイルは .I /etc/DIR_COLORS -¤Ç¤¢¤ë¤¬¡¢¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤Î +であるが、ホームディレクトリの .I .dir_colors -¥Õ¥¡¥¤¥ë¤Ç¾å½ñ¤­¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +ファイルで上書きすることができる。 .PP -ÀßÄê¥Õ¥¡¥¤¥ë¤Ï 1 ¹ÔËè¤Ë½ñ¤«¤ì¤¿¥¹¥Æ¡¼¥È¥á¥ó¥È¤Ç¹½À®¤µ¤ì¤ë¡£ -¥Ï¥Ã¥·¥å¥Þ¡¼¥¯ (#) ¤¬¹Ô¤Î»Ï¤á¤Ë¤¢¤ë¾ì¹ç¤ä¡¢ -¥Ï¥Ã¥·¥å¥Þ¡¼¥¯¤ÎÁ°¤Ë¾¯¤Ê¤¯¤È¤â 1 ¤Ä¤Î¶õÇò¤¬¤¢¤ë¾ì¹ç¡¢ -¥Ï¥Ã¥·¥å¥Þ¡¼¥¯¤Î¸å¤í¤Ï¥³¥á¥ó¥È¤È¤·¤Æ°·¤ï¤ì¤ë¡£ -¶õ¹Ô¤Ï̵»ë¤µ¤ì¤ë¡£ +設定ファイルは 1 行毎に書かれたステートメントで構成される。 +ハッシュマーク (#) が行の始めにある場合や、 +ハッシュマークの前に少なくとも 1 つの空白がある場合、 +ハッシュマークの後ろはコメントとして扱われる。 +空行は無視される。 .PP -¤³¤Î¥Õ¥¡¥¤¥ë¤Î -.I ¥°¥í¡¼¥Ð¥ë -¥»¥¯¥·¥ç¥ó¤Ï¡¢ -ºÇ½é¤Î +このファイルの +.I グローバル +セクションは、 +最初の .B TERM -¥¹¥Æ¡¼¥È¥á¥ó¥È¤è¤êÁ°¤Ë¤¢¤ëǤ°Õ¤Î¥¹¥Æ¡¼¥È¥á¥ó¥È¤«¤é¤Ê¤ë¡£ -¥°¥í¡¼¥Ð¥ë¥»¥¯¥·¥ç¥ó¤Ë¤¢¤ë¥¹¥Æ¡¼¥È¥á¥ó¥È¤Ï¡¢ -¤¹¤Ù¤Æ¤ÎüËö¥¿¥¤¥×¤Ë¤Ä¤¤¤ÆÍ­¸ú¤Ç¤¢¤ë¤È¤ß¤Ê¤µ¤ì¤ë¡£ -¥°¥í¡¼¥Ð¥ë¥»¥¯¥·¥ç¥ó¤Î¼¡¤Ë¤Ï¡¢ -.I üËö¸ÇÍ­ -¥»¥¯¥·¥ç¥ó¤¬Â³¤¯¡£ -³ÆüËö¸ÇÍ­¥»¥¯¥·¥ç¥ó¤ÎÀèƬ¤Ë¤Ï¡¢1 ¤Ä°Ê¾å¤Î +ステートメントより前にある任意のステートメントからなる。 +グローバルセクションにあるステートメントは、 +すべての端末タイプについて有効であるとみなされる。 +グローバルセクションの次には、 +.I 端末固有 +セクションが続く。 +各端末固有セクションの先頭には、1 つ以上の .B TERM -¥¹¥Æ¡¼¥È¥á¥ó¥È¤¬ÃÖ¤«¤ì¤ë¡£ +ステートメントが置かれる。 .B TERM -¥¹¥Æ¡¼¥È¥á¥ó¥È¤Ï¡¢¤½¤Î¸å¤Ë³¤¯Àë¸À¤¬Å¬ÍѤµ¤ì¤ë (´Ä¶­ÊÑ¿ô +ステートメントは、その後に続く宣言が適用される (環境変数 .B TERM -¤ÇÍ¿¤¨¤é¤ì¤ë) üËö¥¿¥¤¥×¤ò»ØÄꤹ¤ë¡£ -¥°¥í¡¼¥Ð¥ëÀë¸À¤ò¤½¤Î¸å¤Ë³¤¯Ã¼Ëö¸ÇÍ­¤ÎÀë¸À¤Ç¾å½ñ¤­¤¹¤ë¤³¤È¤¬¾ï¤Ë²Äǽ¤Ç¤¢¤ë¡£ +で与えられる) 端末タイプを指定する。 +グローバル宣言をその後に続く端末固有の宣言で上書きすることが常に可能である。 .PP -¼¡¤Î¥¹¥Æ¡¼¥È¥á¥ó¥È¤¬Ç§¼±¤µ¤ì¤ë¡£Âçʸ»ú¤È¾®Ê¸»ú¤Ï¶èÊ̤µ¤ì¤Ê¤¤¡£ +次のステートメントが認識される。大文字と小文字は区別されない。 .TP .B TERM \fIterminal-type\fR -üËö¸ÇÍ­¥»¥¯¥·¥ç¥ó¤ò³«»Ï¤·¡¢¤É¤ÎüËö¤ËŬÍѤ¹¤ë¤«¤ò»ØÄꤹ¤ë¡£ -Ê£¿ô¤ÎüËö¥¿¥¤¥×¤ËŬÍѤ¹¤ë¤¿¤á¡¢Ê£¿ô¤Î +端末固有セクションを開始し、どの端末に適用するかを指定する。 +複数の端末タイプに適用するため、複数の .B TERM -¥¹¥Æ¡¼¥È¥á¥ó¥È¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +ステートメントを使うことができる。 .TP .B COLOR yes|all|no|none|tty -(Slackware ¤Î¤ß; GNU +(Slackware のみ; GNU .BR dircolors (1) -¤Ç¤Ï̵»ë¤µ¤ì¤ë¡£) -¥«¥é¡¼É½¼¨¤ò¾ï¤ËÍ­¸ú¤Ë¤¹¤ë¤Î¤« (\fIyes\fR ¤Þ¤¿¤Ï \fIall\fR)¡¢ -¾ï¤Ë̵¸ú¤Ë¤¹¤ë¤Î¤« (\fIno\fR ¤Þ¤¿¤Ï \fInone\fR)¡¢ -½ÐÎÏÀ褬üËö¤Î¾ì¹ç¤Ë¤Î¤ßÍ­¸ú¤Ë¤¹¤ë¤Î¤« (\fItty\fR) ¤ò»ØÄꤹ¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï \fIno\fR ¤Ç¤¢¤ë¡£ +では無視される。) +カラー表示を常に有効にするのか (\fIyes\fR または \fIall\fR)、 +常に無効にするのか (\fIno\fR または \fInone\fR)、 +出力先が端末の場合にのみ有効にするのか (\fItty\fR) を指定する。 +デフォルトは \fIno\fR である。 .TP .B EIGHTBIT yes|no -(Slackware ¤Î¤ß; GNU +(Slackware のみ; GNU .BR dircolors (1) -¤Ç¤Ï̵»ë¤µ¤ì¤ë¡£) -¥Ç¥Õ¥©¥ë¥È¤Ç 8 ¥Ó¥Ã¥È¤Î ISO 8859 ʸ»ú¤òÍ­¸ú¤Ë¤¹¤ë¤«¤ò»ØÄꤹ¤ë¡£ -¸ß´¹À­¤Î¤¿¤á¡¢1 ¤Ç \fIyes\fR ¤ò¡¢0 ¤Ç \fIno\fR ¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï \fIno\fR ¤Ç¤¢¤ë¡£ +では無視される。) +デフォルトで 8 ビットの ISO 8859 文字を有効にするかを指定する。 +互換性のため、1 で \fIyes\fR を、0 で \fIno\fR を指定することができる。 +デフォルトは \fIno\fR である。 .TP .B OPTIONS \fIoptions\fR -(Slackware ¤Î¤ß; GNU +(Slackware のみ; GNU .BR dircolors (1) -¤Ç¤Ï̵»ë¤µ¤ì¤ë¡£) -¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤ò¥Ç¥Õ¥©¥ë¥È¤Î +では無視される。) +コマンドラインオプションをデフォルトの .B ls -¥³¥Þ¥ó¥É¥é¥¤¥ó¤ËÄɲ乤롣 -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ë¤Ï¡¢¤¹¤Ù¤Æ¤ÎÍ­¸ú¤Ê +コマンドラインに追加する。 +このオプションには、すべての有効な .B ls -¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤ò»ØÄê¤Ç¤­¤ë¡£ -¥ª¥×¥·¥ç¥ó¤ÎÁ°¤Ë¤Ï¥Þ¥¤¥Ê¥¹µ­¹æ¤òÃÖ¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +のコマンドラインオプションを指定できる。 +オプションの前にはマイナス記号を置かなければならない。 .B dircolors -¤¬¥ª¥×¥·¥ç¥ó¤ÎÍ­¸úÀ­¤ò¸¡¾Ú¤·¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +がオプションの有効性を検証しない点に注意すること。 .TP .B NORMAL \fIcolor-sequence\fR -(¥Õ¥¡¥¤¥ë̾¤Ç¤Ê¤¤) Ä̾ï¤Î¥Æ¥­¥¹¥È¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ +(ファイル名でない) 通常のテキストに使われる色を指定する。 .TP .B FILE \fIcolor-sequence\fR -Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ +通常のファイルに使われる色を指定する。 .TP .B DIR \fIcolor-sequence\fR -¥Ç¥£¥ì¥¯¥È¥ê¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ +ディレクトリに使われる色を指定する。 .TP .B LINK \fIcolor-sequence\fR -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ +シンボリックリンクに使われる色を指定する。 .TP .B ORPHAN \fIcolor-sequence\fR -¸ÉΩ¤·¤¿ (¸ºß¤·¤Ê¤¤¥Õ¥¡¥¤¥ë¤ò»Ø¤·¤Æ¤¤¤ë) -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ -»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢ +孤立した (存在しないファイルを指している) +シンボリックリンクに使われる色を指定する。 +指定されない場合、 .B ls -¤Ï +は .B LINK -¤Î¿§¤òÂå¤ï¤ê¤Ë»È¤¦¡£ +の色を代わりに使う。 .TP .B MISSING \fIcolor-sequence\fR -¹ÔÊýÉÔÌÀ¤Î¥Õ¥¡¥¤¥ë (¸ºß¤·¤Ê¤¤¤Ë¤â¤«¤«¤ï¤é¤º -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬»Ø¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë) ¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ -»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢ +行方不明のファイル (存在しないにもかかわらず +シンボリックリンクが指しているファイル) に使われる色を指定する。 +指定されない場合、 .B ls -¤Ï +は .B FILE -¤Î¿§¤òÂå¤ï¤ê¤Ë»È¤¦¡£ +の色を代わりに使う。 .TP .B FIFO \fIcolor-sequence\fR -FIFO (̾Á°ÉÕ¤­¥Ñ¥¤¥×) ¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ +FIFO (名前付きパイプ) に使われる色を指定する。 .TP .B SOCK \fIcolor-sequence\fR -¥½¥±¥Ã¥È¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ +ソケットに使われる色を指定する。 .TP .B DOOR \fIcolor-sequence\fR -(fileutils 4.1 °Ê¹ß¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤ë) -door (Solaris 2.5 °Ê¹ß) ¤Ç»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ +(fileutils 4.1 以降でサポートされる) +door (Solaris 2.5 以降) で使われる色を指定する。 .TP .B BLK \fIcolor-sequence\fR -¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ +ブロックデバイススペシャルファイルに使われる色を指定する。 .TP .B CHR \fIcolor-sequence\fR -¥­¥ã¥é¥¯¥¿¡¼¥Ç¥Ð¥¤¥¹¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ +キャラクターデバイススペシャルファイルに使われる色を指定する。 .TP .B EXEC \fIcolor-sequence\fR -¼Â¹Ô°À­¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Ë»È¤ï¤ì¤ë¿§¤òÀßÄꤹ¤ë¡£ +実行属性が設定されているファイルに使われる色を設定する。 .TP .B LEFTCODE \fIcolor-sequence\fR -ISO\ 6429 üËö (²¼µ­»²¾È) °Ê³°¤Ç +ISO\ 6429 端末 (下記参照) 以外で .I "left code" -¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ +に使われる色を指定する。 .TP .B RIGHTCODE \fIcolor-sequence\fR -ISO\ 6429 üËö (²¼µ­»²¾È) °Ê³°¤Ç +ISO\ 6429 端末 (下記参照) 以外で .I "right code" -¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ +に使われる色を指定する。 .TP .B ENDCODE \fIcolor-sequence\fR -ISO\ 6429 üËö (²¼µ­»²¾È) °Ê³°¤Ç +ISO\ 6429 端末 (下記参照) 以外で .I "end code" -¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ +に使われる色を指定する。 .TP \fB*\fIextension\fR \fIcolor-sequence\fR -\fIextension\fR ¤Ç½ª¤ë¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ +\fIextension\fR で終るすべてのファイルに使われる色を指定する。 .TP \fB .\fIextension\fR \fIcolor-sequence\fR -\fB*\fR.\fIextension\fR ¤ÈƱ¤¸¡£ -\fIextension\fR ¤Ç½ª¤ë¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤Ë»È¤ï¤ì¤ë¿§¤ò»ØÄꤹ¤ë¡£ -¥Ô¥ê¥ª¥É¤Ï³ÈÄ¥»Ò¤Ë´Þ¤Þ¤ì¡¢ +\fB*\fR.\fIextension\fR と同じ。 +\fIextension\fR で終るすべてのファイルに使われる色を指定する。 +ピリオドは拡張子に含まれ、 .B emacs -¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë +のバックアップファイル .B ~ -¤Î¤è¤¦¤Ê¥Ô¥ê¥ª¥É¤Ç»Ï¤Þ¤é¤Ê¤¤³ÈÄ¥»Ò¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¤³¤Î·Á¼°¤Ï¸Å¤¤¤â¤Î¤È¹Í¤¨¤é¤ì¤Æ¤¤¤ë¡£ -.SS "ISO 6429 (ANSI) ¥«¥é¡¼¥·¡¼¥±¥ó¥¹" -ºÇ¶á¤Î¥«¥é¡¼É½¼¨²Äǽ¤Ê ASCII üËö¤ÎÂçÉôʬ¤Ï¡¢ -ISO 6429 (ANSI) ¥«¥é¡¼¥·¡¼¥±¥ó¥¹¤òÍѤ¤¤ë¡£ +のようなピリオドで始まらない拡張子を指定することができない点に注意すること。 +この形式は古いものと考えられている。 +.SS "ISO 6429 (ANSI) カラーシーケンス" +最近のカラー表示可能な ASCII 端末の大部分は、 +ISO 6429 (ANSI) カラーシーケンスを用いる。 .B xterm -¤ä¹­¤¯»È¤ï¤ì¤Æ¤¤¤ë DEC VT100 ¥¯¥í¡¼¥ó¤ò´Þ¤à -¥«¥é¡¼É½¼¨¤Ç¤­¤Ê¤¤°ìÈÌŪ¤ÊüËö¤Î¿¤¯¤Ï¡¢ -ISO 6429 ¥«¥é¡¼¥³¡¼¥É¤òǧ¼±¤·¡¢½ÐÎϤ«¤é¼Â³²¤Ê¤¯ºï½ü¤¹¤ë¤«¡¢¥¨¥ß¥å¥ì¡¼¥È¤¹¤ë¡£ +や広く使われている DEC VT100 クローンを含む +カラー表示できない一般的な端末の多くは、 +ISO 6429 カラーコードを認識し、出力から実害なく削除するか、エミュレートする。 .B ls -¤Ï¡¢¥«¥é¡¼É½¼¨¤¬Í­¸ú¤Ç¤¢¤ë¤³¤È¤ò²¾Äꤷ¡¢ISO 6429 ¥³¡¼¥É¤ò¥Ç¥Õ¥©¥ë¥È¤Ç»È¤¦¡£ +は、カラー表示が有効であることを仮定し、ISO 6429 コードをデフォルトで使う。 -ISO 6429 ¥«¥é¡¼¥·¡¼¥±¥ó¥¹¤Ï¡¢¥»¥ß¥³¥í¥ó¤Ç¶èÀÚ¤é¤ì¤¿¿ô»ú¤Î¥·¡¼¥±¥ó¥¹¤Çºî¤é¤ì¤ë¡£ -ºÇ¤â°ìÈÌŪ¤Ê¥³¡¼¥É¤ò¼¨¤¹¡£ +ISO 6429 カラーシーケンスは、セミコロンで区切られた数字のシーケンスで作られる。 +最も一般的なコードを示す。 .sp .RS +.2i .ta 1.0i .nf - 0 ¥Ç¥Õ¥©¥ë¥È¥«¥é¡¼¤òÊݸ - 1 ÌÀ¤ë¤¤¿§ - 4 ¥¢¥ó¥À¡¼¥é¥¤¥ó¤µ¤ì¤¿¥Æ¥­¥¹¥È - 5 ¥Õ¥é¥Ã¥·¥å¤¹¤ë¥Æ¥­¥¹¥È -30 Á°·Ê¿§¡§¹õ -31 Á°·Ê¿§¡§ÀÖ -32 Á°·Ê¿§¡§ÎÐ -33 Á°·Ê¿§¡§²« (¤â¤·¤¯¤ÏÃã) -34 Á°·Ê¿§¡§ÀÄ -35 Á°·Ê¿§¡§»ç -36 Á°·Ê¿§¡§¥·¥¢¥ó -37 Á°·Ê¿§¡§Çò (¤â¤·¤¯¤Ï³¥) -40 ÇØ·Ê¿§¡§¹õ -41 ÇØ·Ê¿§¡§ÀÖ -42 ÇØ·Ê¿§¡§ÎÐ -43 ÇØ·Ê¿§¡§²« (¤â¤·¤¯¤ÏÃã) -44 ÇØ·Ê¿§¡§ÀÄ -45 ÇØ·Ê¿§¡§»ç -46 ÇØ·Ê¿§¡§¥·¥¢¥ó -47 ÇØ·Ê¿§¡§Çò (¤â¤·¤¯¤Ï³¥) + 0 デフォルトカラーを保存 + 1 明るい色 + 4 アンダーラインされたテキスト + 5 フラッシュするテキスト +30 前景色:黒 +31 前景色:赤 +32 前景色:緑 +33 前景色:黄 (もしくは茶) +34 前景色:青 +35 前景色:紫 +36 前景色:シアン +37 前景色:白 (もしくは灰) +40 背景色:黒 +41 背景色:赤 +42 背景色:緑 +43 背景色:黄 (もしくは茶) +44 背景色:青 +45 背景色:紫 +46 背景色:シアン +47 背景色:白 (もしくは灰) .fi .RE .sp -¥·¥¹¥Æ¥à¤Èɽ¼¨¥Ç¥Ð¥¤¥¹¤Ë¤è¤Ã¤Æ¤Ï¡¢Æ°ºî¤·¤Ê¤¤¥³¥Þ¥ó¥É¤â¤¢¤ë¡£ +システムと表示デバイスによっては、動作しないコマンドもある。 .PP .B ls -¤Ï°Ê²¼¤ò¥Ç¥Õ¥©¥ë¥È¤È¤·¤Æ»È¤¦¡£ +は以下をデフォルトとして使う。 .sp .RS +.2i .ta 1.0i 2.5i .nf -\fBNORMAL\fR 0 (¥Õ¥¡¥¤¥ë̾¤Ç¤Ê¤¤) Ä̾ï¤Î¥Æ¥­¥¹¥È -\fBFILE\fR 0 Ä̾ï¤Î¥Õ¥¡¥¤¥ë -\fBDIR\fR 32 ¥Ç¥£¥ì¥¯¥È¥ê -\fBLINK\fR 36 ¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯ -\fBORPHAN\fR ̤ÄêµÁ ¸ÉΩ¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯ -\fBMISSING\fR ̤ÄêµÁ ¹ÔÊýÉÔÌÀ¤Î¥Õ¥¡¥¤¥ë -\fBFIFO\fR 31 ̾Á°ÉÕ¤­¥Ñ¥¤¥× (FIFO) -\fBSOCK\fR 33 ¥½¥±¥Ã¥È -\fBBLK\fR 44;37 ¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹ -\fBCHR\fR 44;37 ¥­¥ã¥é¥¯¥¿¡¼¥Ç¥Ð¥¤¥¹ -\fBEXEC\fR 35 ¼Â¹Ô¥Õ¥¡¥¤¥ë +\fBNORMAL\fR 0 (ファイル名でない) 通常のテキスト +\fBFILE\fR 0 通常のファイル +\fBDIR\fR 32 ディレクトリ +\fBLINK\fR 36 シンボリックリンク +\fBORPHAN\fR 未定義 孤立したシンボリックリンク +\fBMISSING\fR 未定義 行方不明のファイル +\fBFIFO\fR 31 名前付きパイプ (FIFO) +\fBSOCK\fR 33 ソケット +\fBBLK\fR 44;37 ブロックデバイス +\fBCHR\fR 44;37 キャラクターデバイス +\fBEXEC\fR 35 実行ファイル .fi .RE .sp -¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¤ò´°Á´¤Ëǧ¼±¤Ç¤­¤Ê¤¤Ã¼Ëö¥×¥í¥°¥é¥à¤â¾¯¿ô¸ºß¤¹¤ë¡£ -¥Ç¥£¥ì¥¯¥È¥ê¤ò¥ê¥¹¥È¤·¤¿¸å¤Ë¤¹¤Ù¤Æ¤Î¥Æ¥­¥¹¥È¤¬¥«¥é¡¼É½¼¨¤µ¤ì¤¿¤Ê¤é¡¢ +デフォルトの設定を完全に認識できない端末プログラムも少数存在する。 +ディレクトリをリストした後にすべてのテキストがカラー表示されたなら、 .B NORMAL -¤È +と .B FILE -¤Î¥³¡¼¥É¤òÄ̾ï¤ÎÁ°·Ê¿§¤ÈÇØ·Ê¿§¤Î¤¿¤á¤Î¿ôÃÍ¥³¡¼¥É¤ËÊѹ¹¤¹¤ë¤³¤È¡£ -.SS "¤½¤Î¾¤ÎüËö¥¿¥¤¥× (¹âÅÙ¤ÊÀßÄê)" -¥«¥é¡¼É½¼¨²Äǽ (¤Þ¤¿¤Ï¥Ï¥¤¥é¥¤¥Èɽ¼¨²Äǽ) ¤À¤¬¡¢ -°Û¤Ê¤ë¥³¡¼¥É¥»¥Ã¥È¤ò»È¤¦Ã¼Ëö (¤¢¤ë¤¤¤Ï¥×¥ê¥ó¥¿¡¼!) ¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ç¤â¡¢ -¤½¤ì¤ËŬ¤·¤¿ÀßÄê¤òºî¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤½¤Î¤¿¤á¤Ë¤Ï¡¢ +のコードを通常の前景色と背景色のための数値コードに変更すること。 +.SS "その他の端末タイプ (高度な設定)" +カラー表示可能 (またはハイライト表示可能) だが、 +異なるコードセットを使う端末 (あるいはプリンター!) を持っている場合でも、 +それに適した設定を作ることができる。 +そのためには、 .BR LEFTCODE , .BR RIGHTCODE , .B ENDCODE -ÄêµÁ¤ò»È¤¦É¬Íפ¬¤¢¤ë¡£ +定義を使う必要がある。 .PP -¥Õ¥¡¥¤¥ë̾¤ò½ÐÎϤ¹¤ë¾ì¹ç¡¢ +ファイル名を出力する場合、 .B ls -¤Ï " +は " .B LEFTCODE .I typecode .B RIGHTCODE .I filename .B ENDCODE -" ¤È¤¤¤¦½ÐÎÏ¥·¡¼¥±¥ó¥¹¤òÀ¸À®¤¹¤ë¡£ -¤³¤³¤Ç¡¢ +" という出力シーケンスを生成する。 +ここで、 .I typecode -¤Ï¥Õ¥¡¥¤¥ë¤Î¥¿¥¤¥×¤ä̾Á°¤Ë°Í¸¤·¤¿¥«¥é¡¼¥·¡¼¥±¥ó¥¹¤Ç¤¢¤ë¡£ +はファイルのタイプや名前に依存したカラーシーケンスである。 .B ENDCODE -¤¬Ì¤ÄêµÁ¤Î¾ì¹ç¡¢¥·¡¼¥±¥ó¥¹ +が未定義の場合、シーケンス .B "LEFTCODE NORMAL RIGHTCODE" -¤¬Âå¤ï¤ê¤Ë»È¤ï¤ì¤ë¡£ -leftcode ¤È rightcode ¤ÎÌÜŪ¤Ï¡¢Ã±¤ËɬÍפÊÂǤÁ¹þ¤à²ó¿ô¤ò¸º¤é¤¹ -(¤µ¤é¤Ë¡¢¸«¶ì¤·¤¤¥¨¥¹¥±¡¼¥×¥³¡¼¥É¤ò¥æ¡¼¥¶¡¼¤Ë±£¤¹) ¤³¤È¤Ë¤¢¤ë¡£ -¥·¡¼¥±¥ó¥¹¤¬¤½¤ÎüËö¤Ë¤È¤Ã¤ÆŬÀڤǤʤ¤¾ì¹ç¡¢ -¹ÔÆâ¤Î¤½¤ì¤¾¤ì¤Î¥­¡¼¥ï¡¼¥É¼«¿È¤ò»ØÄꤷ¤Æºï½ü¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +が代わりに使われる。 +leftcode と rightcode の目的は、単に必要な打ち込む回数を減らす +(さらに、見苦しいエスケープコードをユーザーに隠す) ことにある。 +シーケンスがその端末にとって適切でない場合、 +行内のそれぞれのキーワード自身を指定して削除することができる。 .PP -.B Ãí°Õ¡§ +.B 注意: .B ENDCODE -¤¬ÀßÄê¥Õ¥¡¥¤¥ë¤Î¥°¥í¡¼¥Ð¥ë¥»¥¯¥·¥ç¥ó¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¤ÎüËö¸ÇÍ­¥»¥¯¥·¥ç¥ó¤Ç̤ÄêµÁ¤Ë¤¹¤ë¤³¤È¤Ï -.IR ¤Ç¤­¤Ê¤¤ ¡£ -¤³¤ì¤Ï¡¢ +が設定ファイルのグローバルセクションで定義されている場合、 +ファイルの端末固有セクションで未定義にすることは +.IR できない 。 +これは、 .B NORMAL -¤ÎÄêµÁ¤¬²¿¤â±Æ¶Á¤òµÚ¤Ü¤µ¤Ê¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -¤·¤«¤·¡¢°Û¤Ê¤Ã¤¿ +の定義が何も影響を及ぼさないことを意味する。 +しかし、異なった .B ENDCODE -¤ò»ØÄꤹ¤ë¤³¤È¤ÇƱ¤¸¸ú²Ì¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.SS ¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ -¥«¥é¡¼¥·¡¼¥±¥ó¥¹¤ä¥Õ¥¡¥¤¥ë̾¤Î³ÈÄ¥»Ò¤ÇÀ©¸æʸ»ú¤ä¥Ö¥é¥ó¥¯Ê¸»ú¤ò»ØÄꤹ¤ë¤¿¤á¤Ë¡¢ -C ¸À¸ì¥¹¥¿¥¤¥ë¤Î \e ¥¨¥¹¥±¡¼¥×ɽµ­¤È +を指定することで同じ効果を得ることができる。 +.SS エスケープシーケンス +カラーシーケンスやファイル名の拡張子で制御文字やブランク文字を指定するために、 +C 言語スタイルの \e エスケープ表記と .B stty -¥¹¥¿¥¤¥ë¤Î ^ ɽµ­¤ÎξÊý¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -C ¸À¸ì¥¹¥¿¥¤¥ë¤Îɽµ­¤Ë¤Ï°Ê²¼¤Îʸ»ú¤¬´Þ¤Þ¤ì¤ë¡£ +スタイルの ^ 表記の両方を使うことができる。 +C 言語スタイルの表記には以下の文字が含まれる。 .sp .RS +.2i .ta 1.0i .nf -\fB\ea\fR ¥Ù¥ë (ASCII 7) -\fB\eb\fR ¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹ (ASCII 8) -\fB\ee\fR ¥¨¥¹¥±¡¼¥× (ASCII 27) -\fB\ef\fR ¥Õ¥©¡¼¥à¥Õ¥£¡¼¥É (ASCII 12) -\fB\en\fR ²þ¹Ô (ASCII 10) -\fB\er\fR ¥­¥ã¥ê¥Ã¥¸¥ê¥¿¡¼¥ó (ASCII 13) -\fB\et\fR ¥¿¥Ö (ASCII 9) -\fB\ev\fR ¿âľ¥¿¥Ö (ASCII 11) -\fB\e?\fR ¥Ç¥ê¡¼¥È (ASCII 127) -\fB\e\fInnn\fR (8 ¿Ê¿ôɽµ­¤Î) Ǥ°Õ¤Îʸ»ú -\fB\ex\fInnn\fR (16 ¿Ê¿ôɽµ­¤Î) Ǥ°Õ¤Îʸ»ú -\fB\e_\fR ¥¹¥Ú¡¼¥¹ -\fB\e\e\fR ¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å (\e) -\fB\e^\fR ¥­¥ã¥ì¥Ã¥È (^) -\fB\e#\fR ¥Ï¥Ã¥·¥å¥Þ¡¼¥¯ (#) +\fB\ea\fR ベル (ASCII 7) +\fB\eb\fR バックスペース (ASCII 8) +\fB\ee\fR エスケープ (ASCII 27) +\fB\ef\fR フォームフィード (ASCII 12) +\fB\en\fR 改行 (ASCII 10) +\fB\er\fR キャリッジリターン (ASCII 13) +\fB\et\fR タブ (ASCII 9) +\fB\ev\fR 垂直タブ (ASCII 11) +\fB\e?\fR デリート (ASCII 127) +\fB\e\fInnn\fR (8 進数表記の) 任意の文字 +\fB\ex\fInnn\fR (16 進数表記の) 任意の文字 +\fB\e_\fR スペース +\fB\e\e\fR バックスラッシュ (\e) +\fB\e^\fR キャレット (^) +\fB\e#\fR ハッシュマーク (#) .fi .RE .sp -¥Ï¥Ã¥·¥å¥Þ¡¼¥¯¤ò»Ï¤á¤Îʸ»ú¤È¤·¤ÆÆþÎϤ¹¤ë¤È¤­¤ÈƱÍͤˡ¢ -¥¹¥Ú¡¼¥¹¡¦¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¡¦¥­¥ã¥ì¥Ã¥È¡¦À©¸æʸ»ú¤òʸ»úÎó¤ÎǤ°Õ¤ÎÉôʬ¤Ë -ÆþÎϤ¹¤ë¤¿¤á¤Ë¤Ï¡¢¥¨¥¹¥±¡¼¥×¤¬É¬ÍפǤ¢¤ë¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -.SH ¥Õ¥¡¥¤¥ë +ハッシュマークを始めの文字として入力するときと同様に、 +スペース・バックスラッシュ・キャレット・制御文字を文字列の任意の部分に +入力するためには、エスケープが必要であることに注意すること。 +.SH ファイル .TP .I /etc/DIR_COLORS -¥·¥¹¥Æ¥àÁ´ÂΤÎÀßÄê¥Õ¥¡¥¤¥ë¡£ +システム全体の設定ファイル。 .TP .I ~/.dir_colors -¥æ¡¼¥¶¡¼Ëè¤ÎÀßÄê¥Õ¥¡¥¤¥ë¡£ -.SH Ãí°Õ -¤³¤Î¥Ú¡¼¥¸¤Ï fileutils-4.1 ¥Ñ¥Ã¥±¡¼¥¸¤Ç»È¤ï¤ì¤Æ¤¤¤ë +ユーザー毎の設定ファイル。 +.SH 注意 +このページは fileutils-4.1 パッケージで使われている .B dir_colors -¤Î¥Õ¥¡¥¤¥ë·Á¼°¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤ë¡£ -¤½¤Î¾¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¾¯¤·°ã¤¤¤¬¤¢¤ë¤«¤âÃΤì¤Ê¤¤¡£ +のファイル形式について説明している。 +その他のバージョンでは少し違いがあるかも知れない。 .PP -ISO 6429 üËö¤Ç»È¤ï¤ì¤ë +ISO 6429 端末で使われる .B LEFTCODE -¤È +と .B RIGHTCODE -¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÄêµÁ¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +のデフォルトの定義は、次のようになっている。 .sp .RS +.2i .ta 1.0i @@ -359,8 +359,8 @@ ISO 6429 ü .RE .sp .B ENDCODE -¤Î¥Ç¥Õ¥©¥ë¥È¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +のデフォルトは定義されていない。 +.SH 関連項目 .BR dircolors (1), .BR ls (1), .BR stty (1), diff --git a/release/man5/elf.5 b/release/man5/elf.5 index fe6e6242..84b6dd92 100644 --- a/release/man5/elf.5 +++ b/release/man5/elf.5 @@ -36,113 +36,113 @@ .\" Updated 2008-02-12, Akihiro MOTOKI , LDP v2.77 .\" .TH ELF 5 2007-12-28 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -elf \- ¼Â¹Ô²Äǽ¥ê¥ó¥¯¥Õ¥©¡¼¥Þ¥Ã¥È (ELF) ¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È -.SH ½ñ¼° +.SH 名前 +elf \- 実行可能リンクフォーマット (ELF) ファイルのフォーマット +.SH 書式 .nf .\" .B #include .B #include .fi -.SH ÀâÌÀ -¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë +.SH 説明 +ヘッダファイル .I -¤Ï ELF ¼Â¹Ô²Äǽ¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤òÄêµÁ¤¹¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤È¤·¤Æ¤Ï¡¢Ä̾ï¤Î¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¡¦ -ºÆÇÛÃÖ²Äǽ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¡¦¥³¥¢¥Õ¥¡¥¤¥ë¡¦¶¦Í­¥é¥¤¥Ö¥é¥ê¤¬¤¢¤ë¡£ +は ELF 実行可能バイナリファイルのフォーマットを定義する。 +これらのファイルとしては、通常の実行可能ファイル・ +再配置可能オブジェクトファイル・コアファイル・共有ライブラリがある。 .PP -ELF ¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»È¤¦¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤Ï¡¢ -ELF ¥Ø¥Ã¥À¤Î¸å¤Ë¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Þ¤¿¤Ï -¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë (¤Þ¤¿¤Ï¤½¤ÎξÊý) ¤¬Â³¤¯¹½À®¤Ç¤¢¤ë¡£ -ELF ¥Ø¥Ã¥À¤Ï¾ï¤Ë¥Õ¥¡¥¤¥ë¤Î¥ª¥Õ¥»¥Ã¥È 0 ¤Ë¤¢¤ë¡£ -¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤È¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Î -¥Õ¥¡¥¤¥ëÆâ¤Ç¤Î¥ª¥Õ¥»¥Ã¥È¤Ï¡¢ELF ¥Ø¥Ã¥À¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î 2 ¤Ä¤Î¥Æ¡¼¥Ö¥ë¤Ï¥Õ¥¡¥¤¥ë¤Î»Ä¤ê¤ÎÉôʬ¤Î¾ÜºÙ¤òµ­½Ò¤¹¤ë¡£ +ELF ファイルフォーマットを使う実行可能ファイルは、 +ELF ヘッダの後にプログラムヘッダテーブルまたは +セクションヘッダテーブル (またはその両方) が続く構成である。 +ELF ヘッダは常にファイルのオフセット 0 にある。 +プログラムヘッダテーブルとセクションヘッダテーブルの +ファイル内でのオフセットは、ELF ヘッダに定義されている。 +この 2 つのテーブルはファイルの残りの部分の詳細を記述する。 .PP -.\" ¥Í¥¤¥Æ¥£¥Ö¤Ê¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î ELF ¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤ò½èÍý¤·¤¿¤¤ -.\" ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢¥½¡¼¥¹¥³¡¼¥É¤Ë +.\" ネイティブなアーキテクチャの ELF バイナリファイルを処理したい +.\" アプリケーションは、ソースコードに .\" .I -.\" ¤ò´Þ¤á¤ë¤À¤±¤Ç¤è¤¤¡£ -.\" ¤³¤ì¤é¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢¥¸¥§¥Í¥ê¥Ã¥¯Ì¾ +.\" を含めるだけでよい。 +.\" これらのアプリケーションは、ジェネリック名 .\" all the types and structures by their generic names .\" "Elf_xxx" -.\" ¤Ë¤è¤Ã¤ÆÁ´¤Æ¤Î·¿¤È¹½Â¤ÂΤò»²¾È¤·¤¿¤ê¡¢ +.\" によって全ての型と構造体を参照したり、 .\" "ELF_xxx" -.\" ¤Ë¤è¤Ã¤Æ¥Þ¥¯¥í¤ò»²¾È¤·¤¿¤ê¤¹¤ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -.\" ¤³¤Î¤è¤¦¤Ë¤·¤Æ½ñ¤«¤ì¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢ -.\" ¥Û¥¹¥È¤¬ 32 ¥Ó¥Ã¥È¤« 64 ¥Ó¥Ã¥È¤«¤Ë´Ø¤ï¤é¤º¡¢ -.\" ¤É¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¾å¤Ç¤â¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤ë¡£ +.\" によってマクロを参照したりするすべきである。 +.\" このようにして書かれたアプリケーションは、 +.\" ホストが 32 ビットか 64 ビットかに関わらず、 +.\" どのアーキテクチャ上でもコンパイルできる。 .\" .PP -.\" ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬Ì¤ÃΤΥ¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î ELF ¥Õ¥¡¥¤¥ë¤ò -.\" ½èÍý¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¡¢¤½¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÏÌÀ¼¨Åª¤Ë +.\" アプリケーションが未知のアーキテクチャの ELF ファイルを +.\" 処理する必要がある場合、そのアプリケーションは明示的に .\" "Elf32_xxx" -.\" ¤Þ¤¿¤Ï +.\" または .\" "Elf64_xxx" -.\" ¤È¤¤¤¦·¿Ì¾¤È¹½Â¤ÂÎ̾¤ò»È¤¦É¬Íפ¬¤¢¤ë¡£ -.\" ƱÍͤˡ¢¥Þ¥¯¥í¤Ï +.\" という型名と構造体名を使う必要がある。 +.\" 同様に、マクロは .\" "ELF32_xxx" -.\" ¤Þ¤¿¤Ï +.\" または .\" "ELF64_xxx" -.\" ¤Ç¼±Ê̤µ¤ì¤ëɬÍפ¬¤¢¤ë¡£ +.\" で識別される必要がある。 .\" .PP -¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ï¾åµ­¤Î¥Ø¥Ã¥À¤ò C ¸À¸ì¤Î¹½Â¤ÂΤǵ­½Ò¤·¡¢ -¤Þ¤¿Æ°Åª¥»¥¯¥·¥ç¥ó¡¦ºÆÇÛÃÖ²Äǽ¥»¥¯¥·¥ç¥ó¡¦¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤Î¹½Â¤ÂΤâ -´Þ¤ó¤Ç¤¤¤ë¡£ +このヘッダファイルは上記のヘッダを C 言語の構造体で記述し、 +また動的セクション・再配置可能セクション・シンボルテーブルの構造体も +含んでいる。 .PP -°Ê²¼¤Î·¿¤Ï N ¥Ó¥Ã¥È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç»È¤ï¤ì¤ë (N=32,64 ¤Ç¤¢¤ê +以下の型は N ビットアーキテクチャで使われる (N=32,64 であり .I ElfN -¤Ï +は .I Elf32 -¤Þ¤¿¤Ï +または .I Elf64 -¤òɽ¤·¡¢ +を表し、 .I uintN_t -¤Ï +は .I uint32_t -¤Þ¤¿¤Ï +または .I uint64_t -¤òɽ¤¹): +を表す): .in +4n .nf -ElfN_Addr Éä¹æ¤Ê¤·¤Î¥×¥í¥°¥é¥à¥¢¥É¥ì¥¹, uintN_t -ElfN_Off Éä¹æ¤Ê¤·¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È, uintN_t -ElfN_Section Éä¹æ¤Ê¤·¤Î¥»¥¯¥·¥ç¥ó¥¤¥ó¥Ç¥Ã¥¯¥¹, uint16_t -ElfN_Versym Éä¹æ¤Ê¤·¤Î¥Ð¡¼¥¸¥ç¥ó¥·¥ó¥Ü¥ë¾ðÊó, uint16_t +ElfN_Addr 符号なしのプログラムアドレス, uintN_t +ElfN_Off 符号なしのファイルオフセット, uintN_t +ElfN_Section 符号なしのセクションインデックス, uint16_t +ElfN_Versym 符号なしのバージョンシンボル情報, uint16_t Elf_Byte unsigned char ElfN_Half uint16_t ElfN_Sword int32_t ElfN_Word uint32_t ElfN_Sxword int64_t ElfN_Xword uint64_t -.\" Elf32_Size Éä¹æ¤Ê¤·¤Î¥ª¥Ö¥¸¥§¥¯¥È¥µ¥¤¥º +.\" Elf32_Size 符号なしのオブジェクトサイズ .fi .in .PP -(Ãí°Õ: *BSD ¤Ç¤ÎÍѸì¤Ï¾¯¤·°Û¤Ê¤ë¡£ +(注意: *BSD での用語は少し異なる。 .I Elf64_Half -¤Ï +は .I Elf32_Half -¤Î 2 ÇܤǤ¢¤ê¡¢ +の 2 倍であり、 .I Elf64Quarter -¤¬ +が .I uint16_t -¤ËÍѤ¤¤é¤ì¤ë¡£ -º®Íð¤òÈò¤±¤ë¤¿¤á¡¢°Ê²¼¤Ç¤Ï¡¢¤³¤ì¤é¤Î·¿¤Ï¥µ¥¤¥º¤¬¼«ÌÀ¤Ê·¿¤ËÃÖ¤­´¹¤¨¤Æ¤¢¤ë¡£) +に用いられる。 +混乱を避けるため、以下では、これらの型はサイズが自明な型に置き換えてある。) .PP -¤³¤Î¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤¬ÄêµÁ¤¹¤ëÁ´¤Æ¤Î¥Ç¡¼¥¿¹½Â¤ÂΤϡ¢ -´ØÏ¢¤¹¤ë¥¯¥é¥¹¤Î -"¼«Á³¤Ê" -¥µ¥¤¥º¤ÈÇÛÃ֤λؿˤ˽¾¤¦¡£ -ɬÍפʾì¹ç¡¢¥Ç¡¼¥¿¹½Â¤ÂΤǤÏÌÀ¼¨Åª¤Ê¥Ñ¥Ç¥£¥ó¥° (padding, µÍ¤á¹þ¤ß) -¤¬¹Ô¤Ê¤ï¤ì¤ë¡£¤³¤ì¤Ï 4 ¥Ð¥¤¥È¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ¹¤ë -4 ¥Ð¥¤¥ÈÇÛÃÖ¤òÊݾڤ¹¤ë¤¿¤á¤ä¡¢ -¹½Â¤ÂΤΥµ¥¤¥º¤ò 4 ¤ÎÇÜ¿ô¤Ë¤¹¤ë¤¿¤á¤Ê¤É¤Ç¤¢¤ë¡£ +このファイルフォーマットが定義する全てのデータ構造体は、 +関連するクラスの +"自然な" +サイズと配置の指針に従う。 +必要な場合、データ構造体では明示的なパディング (padding, 詰め込み) +が行なわれる。これは 4 バイトオブジェクトに対する +4 バイト配置を保証するためや、 +構造体のサイズを 4 の倍数にするためなどである。 .PP -ELF ¥Ø¥Ã¥À¤Ï·¿ +ELF ヘッダは型 .I Elf32_Ehdr -¤Þ¤¿¤Ï +または .I Elf64_Ehdr -¤Çµ­½Ò¤µ¤ì¤ë: +で記述される: .in +4n .nf @@ -167,112 +167,112 @@ typedef struct { .fi .in .PP -¥Õ¥£¡¼¥ë¥É¤Ï°Ê²¼¤Î°ÕÌ£¤ò»ý¤Ä: +フィールドは以下の意味を持つ: .\" .Bl -tag -width "e_phentsize" .TP 12 .IR e_ident -¤³¤Î¥Ð¥¤¥ÈÇÛÎó¤Ï¡¢¥×¥í¥»¥Ã¥µ¤ä¥Õ¥¡¥¤¥ë¤Î¾¤ÎÉôʬ¤Ë¤Ï°Í¸¤»¤º¤Ë¡¢ -¥Õ¥¡¥¤¥ë¤ò²ò¼á (interpret) ¤¹¤ë¤¿¤á¤Ë»ØÄꤵ¤ì¤ë¡£ -¤³¤ÎÇÛÎóÆâ¤Î¤¹¤Ù¤Æ¤Î¤â¤Î¤Ï¡¢ÀÜƬ¼­ +このバイト配列は、プロセッサやファイルの他の部分には依存せずに、 +ファイルを解釈 (interpret) するために指定される。 +この配列内のすべてのものは、接頭辞 .BR EI_ -¤Ç»Ï¤Þ¤ë¥Þ¥¯¥í¤Î̾Á°¤¬ÉÕ¤­¡¢ÀÜƬ¼­ +で始まるマクロの名前が付き、接頭辞 .BR ELF -¤Ç»Ï¤Þ¤ëÃͤò»ý¤Ä¡£ -°Ê²¼¤Î¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +で始まる値を持つ。 +以下のマクロが定義されている: .RS 12 .\" .Bl -tag -width "EI_VERSION" \" EI_ABIVERSION .TP 12 .BR EI_MAG0 -¥Þ¥¸¥Ã¥¯¥Ê¥ó¥Ð¡¼¤ÎÂè 1 ¥Ð¥¤¥È¡£ +マジックナンバーの第 1 バイト。 .BR ELFMAG0 -¤ÇËä¤á¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +で埋めなければならない。 (0: 0x7f) .TP .BR EI_MAG1 -¥Þ¥¸¥Ã¥¯¥Ê¥ó¥Ð¡¼¤ÎÂè 2 ¥Ð¥¤¥È¡£ +マジックナンバーの第 2 バイト。 .BR ELFMAG1 -¤ÇËä¤á¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +で埋めなければならない。 (1: \(aqE\(aq) .TP .BR EI_MAG2 -¥Þ¥¸¥Ã¥¯¥Ê¥ó¥Ð¡¼¤ÎÂè 3 ¥Ð¥¤¥È¡£ +マジックナンバーの第 3 バイト。 .BR ELFMAG2 -¤ÇËä¤á¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +で埋めなければならない。 (2: \(aqL\(aq) .TP .BR EI_MAG3 -¥Þ¥¸¥Ã¥¯¥Ê¥ó¥Ð¡¼¤ÎÂè 4 ¥Ð¥¤¥È¡£ +マジックナンバーの第 4 バイト。 .BR ELFMAG3 -¤ÇËä¤á¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +で埋めなければならない。 (3: \(aqF\(aq) .TP .BR EI_CLASS -Âè 5 ¥Ð¥¤¥È¤Ï¡¢¤³¤Î¥Ð¥¤¥Ê¥ê¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ò¼¨¤¹: +第 5 バイトは、このバイナリのアーキテクチャを示す: .RS 12 .\" .Bl -tag -width "ELFCLASSNONE" -compact .TP 14 .PD 0 .BR ELFCLASSNONE -¤³¤Î¥¯¥é¥¹¤ÏÉÔÀµ¤Ç¤¢¤ë¡£ +このクラスは不正である。 .TP .BR ELFCLASS32 -32 ¥Ó¥Ã¥È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤òÄêµÁ¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¤È²¾ÁÛ¥¢¥É¥ì¥¹¶õ´Ö¤¬ 4 ¥®¥¬¥Ð¥¤¥È¤Þ¤Ç¤Î¥Þ¥·¥ó¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ +32 ビットアーキテクチャを定義する。 +ファイルと仮想アドレス空間が 4 ギガバイトまでのマシンをサポートする。 .TP .BR ELFCLASS64 -64 ¥Ó¥Ã¥È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤òÄêµÁ¤¹¤ë¡£ +64 ビットアーキテクチャを定義する。 .PD .RE .\" .El .TP .BR EI_DATA -Âè 6 ¥Ð¥¤¥È¤Ï¥Õ¥¡¥¤¥ëÆâ¤Î¥×¥í¥»¥Ã¥µ¸ÇÍ­¥Ç¡¼¥¿¤Î -¥Ç¡¼¥¿¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ò»ØÄꤹ¤ë¡£ -¸½ºß¤Î¤È¤³¤í°Ê²¼¤Î¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë: +第 6 バイトはファイル内のプロセッサ固有データの +データエンコーディングを指定する。 +現在のところ以下のエンコーディングがサポートされている: .\" .Bl -tag -width "ELFDATA2LSB" -compact .RS 12 .TP 14 .PD 0 .BR ELFDATANONE -ÉÔÌÀ¤Ê¥Ç¡¼¥¿¥Õ¥©¡¼¥Þ¥Ã¥È¡£ +不明なデータフォーマット。 .TP .BR ELFDATA2LSB -2 ¤ÎÊä¿ô¡¢¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¡£ +2 の補数、リトルエンディアン。 .TP .BR ELFDATA2MSB -2 ¤ÎÊä¿ô¡¢¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¡£ +2 の補数、ビッグエンディアン。 .PD .RE .\" .El .TP .PD 0 .BR EI_VERSION -ELF »ÅÍͤΥС¼¥¸¥ç¥óÈÖ¹æ: +ELF 仕様のバージョン番号: .\" .Bl -tag -width "EV_CURRENT" -compact .RS 12 .TP 14 .BR EV_NONE -ÉÔÀµ¤Ê¥Ð¡¼¥¸¥ç¥ó¡£ +不正なバージョン。 .TP .BR EV_CURRENT -¸½ºß¤Î¥Ð¡¼¥¸¥ç¥ó¡£ +現在のバージョン。 .PD .RE .\".El .TP .BR EI_OSABI -¤³¤Î¥Ð¥¤¥È¤Ï¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¿¡¼¥²¥Ã¥È¤È¤Ê¤ë -¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤È ABI ¤ò¼¨¤¹¡£ -¾¤Î ELF ¹½Â¤ÂΤΥե£¡¼¥ë¥É¤Ë¤Ï¡¢ -¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¸ÇÍ­¤Î°ÕÌ£¤ò»ý¤Ä¥Õ¥é¥°¤äÃͤò»ý¤Ä¤â¤Î¤â¤¢¤ë; -¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Î²ò¼á¤Ï¡¢¤³¤Î¥Ð¥¤¥È¤ÎÃͤˤè¤Ã¤Æ·èÄꤵ¤ì¤ë¡£ -Î㤨¤Ð: +このバイトはオブジェクトのターゲットとなる +オペレーティングシステムと ABI を示す。 +他の ELF 構造体のフィールドには、 +プラットフォーム固有の意味を持つフラグや値を持つものもある; +これらのフィールドの解釈は、このバイトの値によって決定される。 +例えば: .\" .Bl -tag -width "ELFOSABI_STANDALONE" -compact .RS 12 .TP 20 .PD 0 .BR ELFOSABI_NONE -ELFOSABI_SYSV ¤ÈƱ¤¸¡£ +ELFOSABI_SYSV と同じ。 .\" 0 .TP .BR ELFOSABI_SYSV @@ -325,74 +325,74 @@ TRU64 UNIX ABI. .\" 12 .TP .BR ELFOSABI_ARM -ARM ¥¢¡¼¥­¥Æ¥¯¥Á¥ã ABI. +ARM アーキテクチャ ABI. .\" 97 .TP .BR ELFOSABI_STANDALONE -¥¹¥¿¥ó¥É¥¢¥í¥ó (ÁȤ߹þ¤ß) ABI. +スタンドアロン (組み込み) ABI. .\" 255 .\" .El .PD .RE .TP .BR EI_ABIVERSION -¤³¤Î¥Ð¥¤¥È¤Ï¥ª¥Ö¥¸¥§¥¯¥È¤¬¥¿¡¼¥²¥Ã¥È¤È¤·¤Æ¤¤¤ë ABI ¤Î¥Ð¡¼¥¸¥ç¥ó¤ò¼¨¤¹¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¸ß´¹À­¤Î¤Ê¤¤ ABI ¤Î¥Ð¡¼¥¸¥ç¥ó¤ò¶èÊ̤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ -¤³¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤Î²ò¼á¤Ï¡¢ +このバイトはオブジェクトがターゲットとしている ABI のバージョンを示す。 +このフィールドは互換性のない ABI のバージョンを区別するために使われる。 +このバージョン番号の解釈は、 .B EI_OSABI -¥Õ¥£¡¼¥ë¥É¤Ç¼±Ê̤µ¤ì¤ë ABI ¤Ë°Í¸¤¹¤ë¡£ -¤³¤Î»ÅÍͤ˽àµò¤¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢ÃÍ 0 ¤ò»È¤¦¡£ +フィールドで識別される ABI に依存する。 +この仕様に準拠するアプリケーションは、値 0 を使う。 .TP .BR EI_PAD -¥Ñ¥Ç¥£¥ó¥°¤Î³«»Ï¡£ -¤³¤ì¤é¤Î¥Ð¥¤¥È¤ÏͽÌ󤵤ì¤Æ¤ª¤ê¡¢0 ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤òÆɤ߹þ¤à¥×¥í¥°¥é¥à¤Ï¡¢¤³¤ì¤é¤Î¥Ð¥¤¥È¤ò̵»ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¸½ºß»È¤ï¤ì¤Æ¤¤¤Ê¤¤¥Ð¥¤¥È¤Ë°ÕÌ£¤¬Í¿¤¨¤é¤ì¤ë¾ì¹ç¡¢ +パディングの開始。 +これらのバイトは予約されており、0 に設定されている。 +これらを読み込むプログラムは、これらのバイトを無視すべきである。 +現在使われていないバイトに意味が与えられる場合、 .B EI_PAD -¤ÎÃͤϾ­ÍèÊѹ¹¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +の値は将来変更されるかもしれない。 .TP .BR EI_BRAND -¥¢¡¼¥­¥Æ¥¯¥Á¥ã ID ¤Î³«»Ï¡£ +アーキテクチャ ID の開始。 .TP .BR EI_NIDENT .I e_ident -ÇÛÎó¤Î¥µ¥¤¥º¡£ +配列のサイズ。 .\" .El .RE .TP .IR e_type -¤³¤Î¹½Â¤ÂΤΥá¥ó¥Ð¤Ï¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤ò¼¨¤¹: +この構造体のメンバはオブジェクトファイルタイプを示す: .RS 12 .\" .Bl -tag -width "ET_NONE" -compact .TP 12 .PD 0 .BR ET_NONE -ÉÔÌÀ¤Ê¥¿¥¤¥×¡£ +不明なタイプ。 .TP .BR ET_REL -ºÆÇÛÃÖ²Äǽ¥Õ¥¡¥¤¥ë¡£ +再配置可能ファイル。 .TP .BR ET_EXEC -¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¡£ +実行可能ファイル。 .TP .BR ET_DYN -¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¡£ +共有オブジェクト。 .TP .BR ET_CORE -¥³¥¢¥Õ¥¡¥¤¥ë¡£ +コアファイル。 .PD .RE .\" .El .TP .IR e_machine -¤³¤Î¥á¥ó¥Ð¤Ï¸Ä¡¹¤Î¥Õ¥¡¥¤¥ë¤ËɬÍפȤµ¤ì¤ë¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ò»ØÄꤹ¤ë¡£ -Îã: +このメンバは個々のファイルに必要とされるアーキテクチャを指定する。 +例: .RS 12 .\" .Bl -tag -width "EM_MIPS_RS4_BE" -compact .TP 12 .PD 0 .BR EM_NONE -ÉÔÌÀ¤Ê¥Þ¥·¥ó¡£ +不明なマシン。 .\" 0 .TP .BR EM_M32 @@ -423,14 +423,14 @@ Intel 80860. .\" 7 .TP .BR EM_MIPS -MIPS RS3000 (¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤Î¤ß)¡£ +MIPS RS3000 (ビッグエンディアンのみ)。 .\" 8 .\" EM_S370 .\" 9 .\" .It Dv EM_MIPS_RS4_BE -.\" MIPS RS4000 (¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤Î¤ß)¡£Èó¿ä¾©¡£ +.\" MIPS RS4000 (ビッグエンディアンのみ)。非推奨。 .\" 10 -.\" EM_MIPS_RS3_LE (MIPS R3000 ¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó)¡£ +.\" EM_MIPS_RS3_LE (MIPS R3000 リトルエンディアン)。 .\" 10 .TP .BR EM_PARISC @@ -438,7 +438,7 @@ HP/PA. .\" 15 .TP .BR EM_SPARC32PLUS -³Èĥ̿Î᥻¥Ã¥ÈÉÕ¤­ SPARC¡£ +拡張命令セット付き SPARC。 .\" 18 .TP .BR EM_PPC @@ -481,162 +481,162 @@ DEC Vax. .\" .It Dv EM_ALPHA .\" Compaq [DEC] Alpha. .\" .It Dv EM_ALPHA_EXP -.\" ³Èĥ̿Î᥻¥Ã¥ÈÉÕ¤­ Compaq [DEC] Alpha¡£ +.\" 拡張命令セット付き Compaq [DEC] Alpha。 .PD .RE .\" .El .TP .IR e_version -¤³¤Î¥á¥ó¥Ð¤Ï¥Õ¥¡¥¤¥ë¥Ð¡¼¥¸¥ç¥ó¤ò¼¨¤¹: +このメンバはファイルバージョンを示す: .\" .Bl -tag -width "EV_CURRENT" -compact .RS 12 .TP 12 .PD 0 .BR EV_NONE -ÉÔÀµ¤Ê¥Ð¡¼¥¸¥ç¥ó¡£ +不正なバージョン。 .TP .BR EV_CURRENT -¸½ºß¤Î¥Ð¡¼¥¸¥ç¥ó¡£ +現在のバージョン。 .\" .El .PD .RE .TP .IR e_entry -¤³¤Î¥á¥ó¥Ð¤Ï¡¢¥·¥¹¥Æ¥à¤¬ºÇ½é¤ËÀ©¸æ¤òÅϤ¹¡¢ -¤Ä¤Þ¤ê¥×¥í¥»¥¹¤ò³«»Ï¤¹¤ë²¾ÁÛ¥¢¥É¥ì¥¹¤ò»ØÄꤹ¤ë¡£ -¥Õ¥¡¥¤¥ë¤Ë¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È¤¬´ØÏ¢ÉÕ¤±¤é¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -¤³¤Î¥á¥ó¥Ð¤Ë¤Ï 0 ¤¬Æþ¤ë¡£ +このメンバは、システムが最初に制御を渡す、 +つまりプロセスを開始する仮想アドレスを指定する。 +ファイルにエントリポイントが関連付けられていない場合、 +このメンバには 0 が入る。 .TP .IR e_phoff -¤³¤Î¥á¥ó¥Ð¤Ï¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Î -¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È (¥Ð¥¤¥Èñ°Ì) ¤òÊÝ»ý¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¤Ë¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤¬¤Ê¤¤¾ì¹ç¡¢ -¤³¤Î¥á¥ó¥Ð¤Ë¤Ï 0 ¤¬Æþ¤ë¡£ +このメンバはプログラムヘッダテーブルの +ファイルオフセット (バイト単位) を保持する。 +ファイルにプログラムヘッダテーブルがない場合、 +このメンバには 0 が入る。 .TP .IR e_shoff -¤³¤Î¥á¥ó¥Ð¤Ï¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Î -¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È (¥Ð¥¤¥Èñ°Ì) ¤òÊÝ»ý¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¤Ë¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤¬¤Ê¤¤¾ì¹ç¡¢ -¤³¤Î¥á¥ó¥Ð¤Ë¤Ï 0 ¤¬Æþ¤ë¡£ +このメンバはセクションヘッダテーブルの +ファイルオフセット (バイト単位) を保持する。 +ファイルにセクションヘッダテーブルがない場合、 +このメンバには 0 が入る。 .TP .IR e_flags -¤³¤Î¥á¥ó¥Ð¤Ï¥Õ¥¡¥¤¥ë¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î¥Õ¥é¥°¤òÊÝ»ý¤¹¤ë¡£ -¥Õ¥é¥°¤Î̾Á°¤Ï EF_`machine_flag' ¤È¤¤¤¦·Á¼°¤Ç¤¢¤ë¡£ -¸½ºß¤Î¤È¤³¤í¥Õ¥é¥°¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +このメンバはファイルに関連付けられたプロセッサ固有のフラグを保持する。 +フラグの名前は EF_`machine_flag' という形式である。 +現在のところフラグは定義されていない。 .TP .IR e_ehsize -¤³¤Î¥á¥ó¥Ð¤Ï ELF ¥Ø¥Ã¥À¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤òÊÝ»ý¤¹¤ë¡£ +このメンバは ELF ヘッダサイズ (バイト単位) を保持する。 .TP .IR e_phentsize -¤³¤Î¥á¥ó¥Ð¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤Î¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Î -1 ¥¨¥ó¥È¥ê¤¢¤¿¤ê¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤òÊÝ»ý¤¹¤ë; -Á´¤Æ¤Î¥¨¥ó¥È¥ê¤ÏƱ¤¸¥µ¥¤¥º¤Ç¤¢¤ë¡£ +このメンバはこのファイルのプログラムヘッダテーブルの +1 エントリあたりのサイズ (バイト単位) を保持する; +全てのエントリは同じサイズである。 .TP .IR e_phnum -¤³¤Î¥á¥ó¥Ð¤Ï¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Ë¤¢¤ë¥¨¥ó¥È¥ê¤Î¿ô¤òÊÝ»ý¤¹¤ë¡£ -¤è¤Ã¤Æ +このメンバはプログラムヘッダテーブルにあるエントリの数を保持する。 +よって .IR e_phentsize -¤È +と .IR e_phnum -¤ÎÀѤ¬¥Æ¡¼¥Ö¥ë¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤Ë¤Ê¤ë¡£ -¥Õ¥¡¥¤¥ë¤Ë¥×¥í¥°¥é¥à¥Ø¥Ã¥À¤¬¤Ê¤¤¾ì¹ç¡¢ +の積がテーブルサイズ (バイト単位) になる。 +ファイルにプログラムヘッダがない場合、 .IR e_phnum -¤ÏÃÍ 0 ¤òÊÝ»ý¤¹¤ë¡£ +は値 0 を保持する。 .TP .IR e_shentsize -¤³¤Î¥á¥ó¥Ð¤Ï¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤òÊÝ»ý¤¹¤ë¡£ -¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¤Ï¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Î 1 ¤Ä¤Î¥¨¥ó¥È¥ê¤Ç¤¢¤ë; -Á´¤Æ¤Î¥¨¥ó¥È¥ê¤ÏƱ¤¸¥µ¥¤¥º¤Ç¤¢¤ë¡£ +このメンバはセクションヘッダのサイズ (バイト単位) を保持する。 +セクションヘッダはセクションヘッダテーブルの 1 つのエントリである; +全てのエントリは同じサイズである。 .TP .IR e_shnum -¤³¤Î¥á¥ó¥Ð¤Ï¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Ë¤¢¤ë¥¨¥ó¥È¥ê¤Î¿ô¤òÊÝ»ý¤¹¤ë¡£ -¤è¤Ã¤Æ +このメンバはセクションヘッダテーブルにあるエントリの数を保持する。 +よって .IR e_shentsize -¤È +と .IR e_shnum -¤ÎÀѤϥ»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤Ë¤Ê¤ë¡£ -¥Õ¥¡¥¤¥ë¤Ë¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤¬¤Ê¤¤¾ì¹ç¡¢ +の積はセクションヘッダテーブルのサイズ (バイト単位) になる。 +ファイルにセクションヘッダテーブルがない場合、 .IR e_shnum -¤ÏÃÍ 0 ¤òÊÝ»ý¤¹¤ë¡£ +は値 0 を保持する。 .TP .IR e_shstrndx -¤³¤Î¥á¥ó¥Ð¤Ï¥»¥¯¥·¥ç¥ó̾ʸ»úÎó¥Æ¡¼¥Ö¥ë¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥¨¥ó¥È¥ê¤Î -¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÊÝ»ý¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¤Ë¥»¥¯¥·¥ç¥ó̾ʸ»úÎó¥Æ¡¼¥Ö¥ë¤¬¤Ê¤¤¾ì¹ç¡¢ -¤³¤Î¥á¥ó¥Ð¤ÏÃÍ +このメンバはセクション名文字列テーブルに関連付けられたエントリの +セクションヘッダテーブルインデックスを保持する。 +ファイルにセクション名文字列テーブルがない場合、 +このメンバは値 .BR SHN_UNDEF -¤òÊÝ»ý¤¹¤ë¡£ +を保持する。 .BR SHN_UNDEF . .RS 12 .\" .Bl -tag -width "SHN_LORESERVE" .TP 14 .BR SHN_UNDEF -¤³¤ÎÃͤÏ̤ÄêµÁ¡¦Â¸ºß¤·¤Ê¤¤¡¦Ìµ´Ø·¸¤½¤Î¾¡¢ -°ÕÌ£¤Î¤Ê¤¤¥»¥¯¥·¥ç¥ó¤Î»²¾È¤Ç¤¢¤ë¤³¤È¤òɽ¤¹¡£ -Î㤨¤Ð¡¢¥»¥¯¥·¥ç¥óÈÖ¹æ +この値は未定義・存在しない・無関係その他、 +意味のないセクションの参照であることを表す。 +例えば、セクション番号 .BR SHN_UNDEF -¤Ë´ØÏ¢¤Å¤±¤Æ¡ÖÄêµÁ¡×¤µ¤ì¤¿¥·¥ó¥Ü¥ë¤Ï¡¢¡Ö̤ÄêµÁ¡×¤Ê¥·¥ó¥Ü¥ë¤Ç¤¢¤ë¡£ -.\"nakano ¤³¤³¤Î "defined" ¤ÏÄ̾ï¤Îʸ¤Î°ìÉô¤Ç¤Ï¡© +に関連づけて「定義」されたシンボルは、「未定義」なシンボルである。 +.\"nakano ここの "defined" は通常の文の一部では? .TP .BR SHN_LORESERVE -¤³¤ÎÃͤÏͽÌóºÑ¤ß¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹ÈϰϤβ¼¸Â¤ò»ØÄꤹ¤ë¡£ +この値は予約済みのインデックス範囲の下限を指定する。 .TP .BR SHN_LOPROC -¤³¤ÎÃͰʾå¤Ç +この値以上で .BR SHN_HIPROC -°Ê²¼¤ÎÃͤϡ¢¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ +以下の値は、プロセッサ固有の意味に予約されている。 .TP .BR SHN_HIPROC -¤³¤ÎÃͰʲ¼¤Ç +この値以下で .BR SHN_LOPROC -°Ê¾å¤ÎÃͤϡ¢¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ -.\"sato: SHN_{HI,LO}PROC ¤ÎÀâÌÀ¤Ï¡¢¸¶Ê¸¤Î´Ö°ã¤¤¤é¤·¤¤¡£ +以上の値は、プロセッサ固有の意味に予約されている。 +.\"sato: SHN_{HI,LO}PROC の説明は、原文の間違いらしい。 .TP .BR SHN_ABS -¤³¤ÎÃͤÏÂбþ¤¹¤ë»²¾È¤ÎÀäÂÐÃͤò»ØÄꤹ¤ë¡£ -Î㤨¤Ð¡¢¥»¥¯¥·¥ç¥óÈÖ¹æ +この値は対応する参照の絶対値を指定する。 +例えば、セクション番号 .BR SHN_ABS -¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥·¥ó¥Ü¥ë¤ÏÀäÂÐÃͤòÊÝ»ý¤·¡¢ºÆÇÛÃ֤˱ƶÁ¤µ¤ì¤Ê¤¤¡£ +に関連づけられたシンボルは絶対値を保持し、再配置に影響されない。 .TP .BR SHN_COMMON -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ë´ØÏ¢¤·¤ÆÄêµÁ¤µ¤ì¤¿¥·¥ó¥Ü¥ë¤Ï¡¢ -Fortran ¤Î COMMON ¤ä C ¤Î̤³ä¤êÅö¤Æ external ÊÑ¿ô¤Î¤è¤¦¤Ê¡¢ -¶¦ÄÌ¥·¥ó¥Ü¥ë¤Ç¤¢¤ë¡£ +このセクションに関連して定義されたシンボルは、 +Fortran の COMMON や C の未割り当て external 変数のような、 +共通シンボルである。 .TP .BR SHN_HIRESERVE -¤³¤ÎÃͤÏͽÌ󤵤줿¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÎÈϰϤξå¸Â¤ò»ØÄꤹ¤ë¡£ +この値は予約されたインデックスの範囲の上限を指定する。 .BR SHN_LORESERVE -¤È +と .BR SHN_HIRESERVE -¤Ï´Þ¤Þ¤ì¤ë¡£ -¤³¤ÎÃͤϥ»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤ò»²¾È¤·¤Ê¤¤¡£ -¤Ä¤Þ¤ê¡¢¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Ï -ͽÌ󤵤줿¥¤¥ó¥Ç¥Ã¥¯¥¹¤Î¥¨¥ó¥È¥ê¤ò -.I ´Þ¤Þ¤Ê¤¤ ¡£ +は含まれる。 +この値はセクションヘッダテーブルを参照しない。 +つまり、セクションヘッダテーブルは +予約されたインデックスのエントリを +.I 含まない 。 .RE .\" .El .\" .El .PP -¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Ï¡¢ -¥·¥¹¥Æ¥à¤Ë¤è¤ë¥×¥í¥°¥é¥à¼Â¹Ô½àÈ÷¤ËɬÍפʡ¢ -¥»¥°¥á¥ó¥ÈÅù¤Î¾ðÊó¤òµ­½Ò¤¹¤ë¹½Â¤ÂΤÎÇÛÎó¤Ç¤¢¤ë¡£ -¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î -.IR ¥»¥°¥á¥ó¥È -¤Ë¤Ï 1 ¤Ä°Ê¾å¤Î -.IR ¥»¥¯¥·¥ç¥ó -¤¬´Þ¤Þ¤ì¤ë¡£ -¥×¥í¥°¥é¥à¥Ø¥Ã¥À¤Ï¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤È¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ç¤Î¤ß°ÕÌ£¤ò»ý¤Ä¡£ -¥Õ¥¡¥¤¥ë¤Ï¼«¿È¤Î¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥µ¥¤¥º¤ò ELF ¥Ø¥Ã¥À¤Î +実行可能ファイルまたは共有オブジェクトファイルのプログラムヘッダテーブルは、 +システムによるプログラム実行準備に必要な、 +セグメント等の情報を記述する構造体の配列である。 +オブジェクトファイルの +.IR セグメント +には 1 つ以上の +.IR セクション +が含まれる。 +プログラムヘッダは実行可能ファイルと共有オブジェクトファイルでのみ意味を持つ。 +ファイルは自身のプログラムヘッダサイズを ELF ヘッダの .IR e_phentsize -¥á¥ó¥Ð¤È +メンバと .IR e_phnum -¥á¥ó¥Ð¤Ç»ØÄꤹ¤ë¡£ -ELF ¥×¥í¥°¥é¥à¥Ø¥Ã¥À¤Ï +メンバで指定する。 +ELF プログラムヘッダは .I Elf32_Phdr -·¿¤Þ¤¿¤Ï +型または .I Elf64_Phdr -·¿¤Çµ­½Ò¤µ¤ì¤ë -(¤É¤Á¤é¤Ë¤Ê¤ë¤«¤Ï¥¢¡¼¥­¥Æ¥¯¥Á¥ã°Í¸): +型で記述される +(どちらになるかはアーキテクチャ依存): .in +4n .nf @@ -668,228 +668,228 @@ typedef struct { .fi .in .PP -32 ¥Ó¥Ã¥È¤È 64 ¥Ó¥Ã¥È¤Î¥×¥í¥°¥é¥à¥Ø¥Ã¥À¤Î¼ç¤Ê°ã¤¤¤Ï¡¢¹½Â¤ÂΤˤª¤±¤ë +32 ビットと 64 ビットのプログラムヘッダの主な違いは、構造体における .IR p_flags -¥á¥ó¥Ð¤Î°ÌÃ֤ˤ¢¤ë¡£ +メンバの位置にある。 .\" .Bl -tag -width "p_offset" .TP 12 .IR p_type -Phdr ¹½Â¤ÂΤΤ³¤Î¥á¥ó¥Ð¤Ï¡¢ -¤³¤ÎÇÛÎóÍ×ÁǤ¬¤É¤Î¤è¤¦¤Ê¼ïÎà¤Î¥»¥°¥á¥ó¥È¤òµ­½Ò¤·¤Æ¤¤¤ë¤«¡¢ -¤Þ¤¿¤Ï¤³¤ÎÇÛÎóÍ×ÁǤξðÊó¤ò¤É¤Î¤è¤¦¤Ë²ò¼á¤¹¤ë¤«¡¢¤òɽ¤¹¡£ +Phdr 構造体のこのメンバは、 +この配列要素がどのような種類のセグメントを記述しているか、 +またはこの配列要素の情報をどのように解釈するか、を表す。 .\" .Bl -tag -width "PT_DYNAMIC" .RS 12 .TP 12 .BR PT_NULL -¤³¤ÎÇÛÎóÍ×ÁǤϻÈÍѤµ¤ì¤Æ¤ª¤é¤º¡¢¤½¤Î¾¤Î¥á¥ó¥Ð¤ÎÃͤÏ̤ÄêµÁ¤Ç¤¢¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢¤³¤Î¥×¥í¥°¥é¥à¥Ø¥Ã¥À¤Î¥¨¥ó¥È¥ê¤Ï̵»ë¤µ¤ì¤ë¡£ +この配列要素は使用されておらず、その他のメンバの値は未定義である。 +これにより、このプログラムヘッダのエントリは無視される。 .TP .BR PT_LOAD -¤³¤ÎÇÛÎóÍ×ÁÇ¤Ï +この配列要素は .IR p_filesz -¤È +と .IR p_memsz -¤Çµ­½Ò¤µ¤ì¤ë¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¤ò»ØÄꤹ¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤«¤é¤Î¥Ð¥¤¥È¥Ç¡¼¥¿¤¬¡¢¤³¤Î¥á¥â¥ê¥»¥°¥á¥ó¥È¤ÎÀèƬ¤«¤é¥Þ¥Ã¥×¤µ¤ì¤ë¡£ -¥»¥°¥á¥ó¥È¤Î¥á¥â¥ê¥µ¥¤¥º +で記述されるロード可能セグメントを指定する。 +このファイルからのバイトデータが、このメモリセグメントの先頭からマップされる。 +セグメントのメモリサイズ .IR Sy p_memsz -¤¬¥Õ¥¡¥¤¥ë¥µ¥¤¥º +がファイルサイズ .IR Sy p_filesz -¤è¤êÂ礭¤¤¾ì¹ç¡¢ -¡Ö;¤Ã¤¿¡×¥Ð¥¤¥È¤ÏÃÍ 0 ¤È¤Ê¤ê¡¢ -¤½¤Î¥»¥°¥á¥ó¥È½é´ü²½¥Ç¡¼¥¿¤Î¸å¤í¤ËÃÖ¤«¤ì¤ë¤ÈÄê¤á¤é¤ì¤Æ¤¤¤ë¡£ -¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤Ï¥á¥â¥ê¥µ¥¤¥º¤è¤êÂ礭¤¯¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ -¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Î¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¥¨¥ó¥È¥ê¤Ï¡¢ +より大きい場合、 +「余った」バイトは値 0 となり、 +そのセグメント初期化データの後ろに置かれると定められている。 +ファイルサイズはメモリサイズより大きくてはいけない。 +プログラムヘッダテーブルのロード可能セグメントエントリは、 .IR p_vaddr -¥á¥ó¥Ð¤Î¾º½ç¤Ë¥½¡¼¥È¤µ¤ì¤Æ½Ð¸½¤¹¤ë¡£ +メンバの昇順にソートされて出現する。 .TP .BR PT_DYNAMIC -¤³¤ÎÇÛÎóÍ×ÁǤÏưŪ¥ê¥ó¥¯¾ðÊó¤ò»ØÄꤹ¤ë¡£ +この配列要素は動的リンク情報を指定する。 .TP .BR PT_INTERP -¤³¤ÎÇÛÎóÍ×ÁǤϡ¢¥¤¥ó¥¿¥×¥ê¥¿¤È¤·¤Æµ¯Æ°¤µ¤ì¤ë¥Ñ¥¹Ì¾ (NULL ʸ»ú½ªÃ¼) -¤Î°ÌÃ֤ȥµ¥¤¥º¤ò»ØÄꤹ¤ë¡£ -¤³¤Î¥»¥°¥á¥ó¥È·¿¤Ï (¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤â¤¢¤ë¤«¤âÃΤì¤Ê¤¤¤¬) -¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤Ç¤Î¤ß°ÕÌ£¤ò»ý¤Ä¡£ -¤¿¤À¤·¡¢¤³¤Î¥»¥°¥á¥ó¥È·¿¤Ï 1 ¤Ä¤Î¥Õ¥¡¥¤¥ë¤Ë 2 ²ó°Ê¾å½Ð¸½¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -¤â¤·Â¸ºß¤¹¤ë¾ì¹ç¡¢¤³¤Î¥»¥°¥á¥ó¥È·¿¤Ï -Á´¤Æ¤Î¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¥¨¥ó¥È¥ê¤è¤êÁ°¤Ë¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +この配列要素は、インタプリタとして起動されるパス名 (NULL 文字終端) +の位置とサイズを指定する。 +このセグメント型は (共有オブジェクトにもあるかも知れないが) +実行可能ファイルでのみ意味を持つ。 +ただし、このセグメント型は 1 つのファイルに 2 回以上出現してはならない。 +もし存在する場合、このセグメント型は +全てのロード可能セグメントエントリより前になければならない。 .TP .BR PT_NOTE -¤³¤ÎÇÛÎóÍ×ÁǤÏÊä­¾ðÊó (auxiliary information) ¤Î°ÌÃ֤ȥµ¥¤¥º¤ò»ØÄꤹ¤ë¡£ +この配列要素は補足情報 (auxiliary information) の位置とサイズを指定する。 .TP .BR PT_SHLIB -¤³¤Î¥»¥°¥á¥ó¥È·¿¤ÏͽÌ󤵤ì¤Æ¤¤¤ë¤¬¡¢°ÕÌ£¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤³¤Î·¿¤ÎÇÛÎóÍ×ÁǤòÊÝ»ý¤¹¤ë¥×¥í¥°¥é¥à¤Ï ABI ¤Ë½àµò¤·¤Ê¤¤¡£ +このセグメント型は予約されているが、意味は指定されていない。 +この型の配列要素を保持するプログラムは ABI に準拠しない。 .TP .BR PT_PHDR -¤³¤ÎÇÛÎóÍ×ÁǤϡ¢¤â¤·Â¸ºß¤·¤Æ¤¤¤ë¤Ê¤é¤Ð¡¢ -¥Õ¥¡¥¤¥ë¤ª¤è¤Ó¥×¥í¥°¥é¥à¤Î¥á¥â¥ê¥¤¥á¡¼¥¸ÁÐÊý¤Ë¤ª¤±¤ë -¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¼«¿È¤Î°ÌÃ֤ȥµ¥¤¥º¤ò»ØÄꤹ¤ë¡£ -¤³¤Î¥»¥°¥á¥ó¥È·¿¤Ï 1 ¤Ä¤Î¥Õ¥¡¥¤¥ë¤Ë 2 ²ó°Ê¾å½Ð¸½¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -¤µ¤é¤Ë¡¢¤³¤Î¥»¥°¥á¥ó¥È·¿¤¬Â¸ºß¤·¤Æ¤â¤è¤¤¤Î¤Ï¡¢¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤¬ -¥×¥í¥°¥é¥à¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤Î°ìÉô¤Ç¤¢¤ë¾ì¹ç¤Î¤ß¤Ç¤¢¤ë¡£ -¤â¤·Â¸ºß¤¹¤ë¾ì¹ç¡¢¤³¤ì¤ÏÁ´¤Æ¤Î¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¥¨¥ó¥È¥ê¤è¤ê -Á°¤Ë¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +この配列要素は、もし存在しているならば、 +ファイルおよびプログラムのメモリイメージ双方における +プログラムヘッダテーブル自身の位置とサイズを指定する。 +このセグメント型は 1 つのファイルに 2 回以上出現してはならない。 +さらに、このセグメント型が存在してもよいのは、プログラムヘッダテーブルが +プログラムのメモリイメージの一部である場合のみである。 +もし存在する場合、これは全てのロード可能セグメントエントリより +前になければならない。 .TP .BR PT_LOPROC -¤³¤ÎÃͰʾå¤Ç +この値以上で .BR PT_HIPROC -°Ê²¼¤ÎÃÍ¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ +以下の値はプロセッサ固有の意味に予約されている。 .TP .BR PT_HIPROC -¤³¤ÎÃͰʲ¼¤Ç +この値以下で .BR PT_LOPROC -°Ê¾å¤ÎÃÍ¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ -.\"sato: PT_{HI,LO}PROC ¤ÎÀâÌÀ¤Ï¡¢¸¶Ê¸¤Î´Ö°ã¤¤¤é¤·¤¤¡£ +以上の値はプロセッサ固有の意味に予約されている。 +.\"sato: PT_{HI,LO}PROC の説明は、原文の間違いらしい。 .TP .BR PT_GNU_STACK -GNU ³ÈÄ¥¤Ç¤¢¤ê¡¢Linux ¥«¡¼¥Í¥ë¤¬ +GNU 拡張であり、Linux カーネルが .I p_flags -¤Î¥á¥ó¥Ð¡¼¤Ë¥»¥Ã¥È¤µ¤ì¤¿¥Õ¥é¥°·Ðͳ¤Ç¥¹¥¿¥Ã¥¯¤Î¾õÂÖ¤òÀ©¸æ¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£ +のメンバーにセットされたフラグ経由でスタックの状態を制御するために使用する。 .\" .El .RE .TP .IR p_offset -¤³¤Î¥á¥ó¥Ð¤Ï¡¢¥»¥°¥á¥ó¥È¤ÎÀèƬ¥Ð¥¤¥È¤¬¤¢¤ë -(¥Õ¥¡¥¤¥ëÀèƬ¤«¤é¤Î) ¥ª¥Õ¥»¥Ã¥È¤òÊÝ»ý¤¹¤ë¡£ +このメンバは、セグメントの先頭バイトがある +(ファイル先頭からの) オフセットを保持する。 .TP .IR p_vaddr -¤³¤Î¥á¥ó¥Ð¤Ï¡¢¥»¥°¥á¥ó¥È¤ÎÀèƬ¥Ð¥¤¥È¤¬¤¢¤ë -¥á¥â¥ê¤Î²¾ÁÛ¥¢¥É¥ì¥¹¤òÊÝ»ý¤¹¤ë¡£ +このメンバは、セグメントの先頭バイトがある +メモリの仮想アドレスを保持する。 .TP .IR p_paddr -ʪÍý¥¢¥É¥ì¥¹¤¬°ÕÌ£¤ò¤â¤Ä¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -¤³¤Î¥á¥ó¥Ð¤Ï¥»¥°¥á¥ó¥È¤ÎʪÍý¥¢¥É¥ì¥¹¤È¤·¤ÆͽÌ󤵤ì¤Æ¤¤¤ë¡£ -BSD ¤Ç¤Ï¤³¤Î¥á¥ó¥Ð¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£0 ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +物理アドレスが意味をもつシステムでは、 +このメンバはセグメントの物理アドレスとして予約されている。 +BSD ではこのメンバは使用されない。0 でなければならない。 .TP .IR p_filesz -¤³¤Î¥á¥ó¥Ð¤Ï¥»¥°¥á¥ó¥È¤Î¥Õ¥¡¥¤¥ë¥¤¥á¡¼¥¸¤Î¥Ð¥¤¥È¿ô¤òÊÝ»ý¤¹¤ë¡£ -¤³¤ì¤Ï 0 ¤Ç¤â¤è¤¤¡£ +このメンバはセグメントのファイルイメージのバイト数を保持する。 +これは 0 でもよい。 .TP .IR p_memsz -¤³¤Î¥á¥ó¥Ð¤Ï¥»¥°¥á¥ó¥È¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤Î¥Ð¥¤¥È¿ô¤òÊÝ»ý¤¹¤ë¡£ -¤³¤ì¤Ï 0 ¤Ç¤â¤è¤¤¡£ +このメンバはセグメントのメモリイメージのバイト数を保持する。 +これは 0 でもよい。 .TP .IR p_flags -¤³¤Î¥á¥ó¥Ð¤Ï¥»¥°¥á¥ó¥È¤Ë´ØÏ¢¤¹¤ë¥Õ¥é¥°¤Î¥Ó¥Ã¥È¥Þ¥Ã¥×¤òÊÝ»ý¤¹¤ë: +このメンバはセグメントに関連するフラグのビットマップを保持する: .\" .Bl -tag -width "PF_X" -compact .RS 12 .TP .PD 0 .BR PF_X -¼Â¹Ô²Äǽ¥»¥°¥á¥ó¥È¡£ +実行可能セグメント。 .TP .BR PF_W -½ñ¤­¹þ¤ß²Äǽ¥»¥°¥á¥ó¥È. +書き込み可能セグメント. .TP .BR PF_R -Æɤ߹þ¤ß²Äǽ¥»¥°¥á¥ó¥È¡£ +読み込み可能セグメント。 .PD .RE .\" .El .IP -¥Æ¥­¥¹¥È¥»¥°¥á¥ó¥È¤Ï°ìÈ̤˥ե饰 +テキストセグメントは一般にフラグ .BR PF_X -¤È +と .BR PF_R -¤ò»ý¤Ä¡£ -¥Ç¡¼¥¿¥»¥°¥á¥ó¥È¤Ï°ìÈÌ¤Ë +を持つ。 +データセグメントは一般に .BR PF_X , .BR PF_W , .BR PF_R -¤ò»ý¤Ä¡£ +を持つ。 .TP .IR p_align -¤³¤Î¥á¥ó¥Ð¤Ï¡¢¥»¥°¥á¥ó¥È¤¬¥á¥â¥ê¤ª¤è¤Ó¥Õ¥¡¥¤¥ë¤Ë¤ª¤¤¤ÆÇÛÃÖ (align) -¤µ¤ì¤ëÃͤòÊÝ»ý¤¹¤ë¡£ -.\"nakano align ¤ÎÄêÌõ¤Ï¤¢¤ê¤Þ¤·¤¿¤Ã¤±¡© -¥í¡¼¥É²Äǽ¥×¥í¥»¥¹¥»¥°¥á¥ó¥È¤Ï¡¢¥Ú¡¼¥¸¥µ¥¤¥º¤òË¡¤È¤·¤Æ +このメンバは、セグメントがメモリおよびファイルにおいて配置 (align) +される値を保持する。 +.\"nakano align の定訳はありましたっけ? +ロード可能プロセスセグメントは、ページサイズを法として .IR p_vaddr -¤È +と .IR p_offset -¤È¹çƱ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(ÌõÃí:¡Öp_vaddr mod ¥Ú¡¼¥¸¥µ¥¤¥º = p_offset mod ¥Ú¡¼¥¸¥µ¥¤¥º¡× -¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£¡£ -.\"nakano ¤³¤¦¤¤¤¦¾ì¹ç¤ÏÉáÄÌ congruent "with" ¤À¤±¤É¡Ä -0 ¤È 1 ¤È¤¤¤¦ÃͤÏÇÛÃÖ¤¬É¬Íפʤ¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢ +と合同でなければならない +(訳注:「p_vaddr mod ページサイズ = p_offset mod ページサイズ」 +でなければならない)。。 +.\"nakano こういう場合は普通 congruent "with" だけど… +0 と 1 という値は配置が必要ないことを意味する。 +それ以外の場合、 .IR p_align -¤ÏÀµ¤Ç 2 ¤ÎÀ°¿ô¾è¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ +は正で 2 の整数乗でなければならず、 .IR p_vaddr -¤Ï +は .IR p_align -¤òË¡¤È¤·¤Æ +を法として .IR p_offset -¤È¹çƱ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(ÌõÃí:¡Öp_vaddr mod p_align = p_offset mod p_align¡×¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£ +と合同でなければならない +(訳注:「p_vaddr mod p_align = p_offset mod p_align」でなければならない)。 .\" .El .PP -¥Õ¥¡¥¤¥ë¤Î¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Ë¤Ï¡¢ -Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¥»¥¯¥·¥ç¥ó¤Î¾ì½ê¤¬µ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Ï +ファイルのセクションヘッダテーブルには、 +全てのファイルセクションの場所が記述されている。 +セクションヘッダテーブルは .I Elf32_Shdr -¹½Â¤ÂΤޤ¿¤Ï +構造体または .I Elf64_Shdr -¹½Â¤ÂΤÎÇÛÎó¤Ç¤¢¤ë¡£ -ELF ¥Ø¥Ã¥À¤Î +構造体の配列である。 +ELF ヘッダの .IR e_shoff -¥á¥ó¥Ð¤Ï¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤«¤é -¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Ø¤Î¥Ð¥¤¥È¥ª¥Õ¥»¥Ã¥È¤Ç¤¢¤ë¡£ +メンバはファイルの先頭から +セクションヘッダテーブルへのバイトオフセットである。 .IR e_shnum -¤Ï¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Ë´Þ¤Þ¤ì¤ë¥¨¥ó¥È¥ê¤Î¿ô¤òÊÝ»ý¤¹¤ë¡£ +はセクションヘッダテーブルに含まれるエントリの数を保持する。 .IR e_shentsize -¤Ï³Æ¥¨¥ó¥È¥ê¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤òÊÝ»ý¤¹¤ë¡£ +は各エントリのサイズ (バイト単位) を保持する。 .PP -¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¡¢¤³¤ÎÇÛÎó¤ÎÍ×ÁǤò»ØÄꤹ¤ë¡£ -¤¤¤¯¤Ä¤«¤Î¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÏͽÌ󤵤ì¤Æ¤¤¤ë¡£ -¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ï¡¢¤³¤ì¤é¤ÎÆÃÊ̤ʥ¤¥ó¥Ç¥Ã¥¯¥¹¤ËÂбþ¤¹¤ë -¥»¥¯¥·¥ç¥ó¤ò»ý¤¿¤Ê¤¤: +セクションヘッダテーブルインデックスは、この配列の要素を指定する。 +いくつかのセクションヘッダテーブルインデックスは予約されている。 +オブジェクトファイルは、これらの特別なインデックスに対応する +セクションを持たない: .\" .Bl -tag -width "SHN_LORESERVE" .TP 14 .BR SHN_UNDEF -¤³¤ÎÃͤÏ̤ÄêµÁ¡¦ÉÔÌÀ¡¦Ìµ´Ø·¸¡¦Ìµ°ÕÌ£¤Ê¥»¥¯¥·¥ç¥ó»²¾È¤Î°õ¤È¤Ê¤ë¡£ +この値は未定義・不明・無関係・無意味なセクション参照の印となる。 .TP .BR SHN_LORESERVE -¤³¤ÎÃͤÏͽÌóºÑ¤ß¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹Îΰè¤Î²¼¸Â¤ò»ØÄꤹ¤ë¡£ +この値は予約済みのインデックス領域の下限を指定する。 .TP .BR SHN_LOPROC -¤³¤ÎÃͰʾå¤Ç +この値以上で .BR SHN_HIPROC -°Ê²¼¤ÎÃÍ¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ +以下の値はプロセッサ固有の意味に予約されている。 .TP .BR SHN_HIPROC -¤³¤ÎÃͰʲ¼¤Ç +この値以下で .BR SHN_HIPROC -°Ê¾å¤ÎÃÍ¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ -.\"sato: SHN_{HI,LO}PROC ¤ÎÀâÌÀ¤Ï¡¢¸¶Ê¸¤Î´Ö°ã¤¤¤é¤·¤¤¡£ +以上の値はプロセッサ固有の意味に予約されている。 +.\"sato: SHN_{HI,LO}PROC の説明は、原文の間違いらしい。 .TP .BR SHN_ABS -¤³¤ÎÃͤÏÂбþ¤¹¤ë»²¾È¤ÎÀäÂÐÃͤò»ØÄꤹ¤ë¡£ -Î㤨¤Ð¡¢¥»¥¯¥·¥ç¥óÈÖ¹æ +この値は対応する参照の絶対値を指定する。 +例えば、セクション番号 .BR SHN_ABS -¤Ë´ØÏ¢¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥·¥ó¥Ü¥ë¤Ï¡¢ -ÀäÂÐÃͤòÊÝ»ý¤·¤Æ¤¤¤ë¤Î¤Ç¡¢ºÆÇÛÃ֤˱ƶÁ¤µ¤ì¤Ê¤¤¡£ -.\"nakano "relative to" ¤¬¤Á¤ç¤Ã¤ÈÌõ¤·¤Ë¤¯¤¤¡£ -.\"nakano Íפ¹¤ë¤Ë SHN_ABS ¤Î¥»¥¯¥·¥ç¥ó¤Ë¤ÏÀäÂÐÃͤ¬ store ¤µ¤ì¤ë¡¢ -.\"nakano ¸å½Ò¤Î SHN_COMMON ¤Ë¤Ï global ÊÑ¿ô¤¬ store ¤µ¤ì¤ë¡¢ -.\"nakano ¤È¤¤¤¦¤³¤È¤Ê¤Î¤Ç¤·¤ç¤¦¤¬¡£ +に関連して定義されているシンボルは、 +絶対値を保持しているので、再配置に影響されない。 +.\"nakano "relative to" がちょっと訳しにくい。 +.\"nakano 要するに SHN_ABS のセクションには絶対値が store される、 +.\"nakano 後述の SHN_COMMON には global 変数が store される、 +.\"nakano ということなのでしょうが。 .TP .BR SHN_COMMON -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ë´ØÏ¢¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥·¥ó¥Ü¥ë¤Ï¡¢ -FORTRAN ¤Î COMMON ¤ä C ¤Î̤³ä¤êÅö¤Æ³°ÉôÊÑ¿ô¤Î¤è¤¦¤Ê¶¦ÄÌ¥·¥ó¥Ü¥ë¤Ç¤¢¤ë¡£ +このセクションに関連して定義されているシンボルは、 +FORTRAN の COMMON や C の未割り当て外部変数のような共通シンボルである。 .TP .BR SHN_HIRESERVE -¤³¤ÎÃͤÏͽÌóºÑ¤ß¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹Îΰè¤Î¾å¸Â¤ò»ØÄꤹ¤ë¡£ -¥·¥¹¥Æ¥à¤Ï +この値は予約済みのインデックス領域の上限を指定する。 +システムは .BR SHN_LORESERVE -¤È +と .BR SHN_HIRESERVE -¤ò´Þ¤àÈϰϤòͽÌ󤹤롣 -¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤ÏͽÌ󤵤줿¥¤¥ó¥Ç¥Ã¥¯¥¹¤ËÂбþ¤¹¤ë¥¨¥ó¥È¥ê¤ò»ý¤¿¤Ê¤¤¡£ +を含む範囲を予約する。 +セクションヘッダテーブルは予約されたインデックスに対応するエントリを持たない。 .\" .El .PP -¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¤Ï°Ê²¼¤Î¹½Â¤ÂΤò»ý¤Ä: +セクションヘッダは以下の構造体を持つ: .in +4n .nf @@ -925,559 +925,559 @@ typedef struct { .fi .in .PP -32 ¥Ó¥Ã¥È¤È 64 ¥Ó¥Ã¥È¤Î¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¤Ë¤Ï¼ÂºÝ¤Î°ã¤¤¤Ï¤Ê¤¤¡£ +32 ビットと 64 ビットのセクションヘッダには実際の違いはない。 .\" .Bl -tag -width "sh_addralign" .TP 10 .IR sh_name -¤³¤Î¥á¥ó¥Ð¤Ï¥»¥¯¥·¥ç¥ó̾¤òÄê¤á¤ë¡£ -¤³¤ÎÃͤϥ»¥¯¥·¥ç¥ó¥Ø¥Ã¥Àʸ»úÎó¥Æ¡¼¥Ö¥ë¥»¥¯¥·¥ç¥ó¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤¢¤ê¡¢ -NULL ʸ»ú¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Î¾ì½ê¤ò¼¨¤¹¡£ +このメンバはセクション名を定める。 +この値はセクションヘッダ文字列テーブルセクションのインデックスであり、 +NULL 文字で終端された文字列の場所を示す。 .TP .IR sh_type -¤³¤Î¥á¥ó¥Ð¤Ï¥»¥¯¥·¥ç¥ó¤ÎÆâÍƤȰÕÌ£¤¬´Þ¤Þ¤ì¤ë¥«¥Æ¥´¥ê¤ò¼¨¤¹¡£ +このメンバはセクションの内容と意味が含まれるカテゴリを示す。 .\" .Bl -tag -width "SHT_PROGBITS" .RS 10 .TP 15 .BR SHT_NULL -¤³¤ÎÃͤϥ»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¤¬ÉÔ³èÀ­¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ -¤³¤ì¤Ï´ØÏ¢¤¹¤ë¥»¥¯¥·¥ç¥ó¤ò»ý¤¿¤Ê¤¤¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¤Î¾¤Î¥á¥ó¥Ð¤Ï¡¢Ì¤ÄêµÁ¤ÎÃͤò»ý¤Ä¡£ +この値はセクションヘッダが不活性であることを示す。 +これは関連するセクションを持たない。 +このセクションヘッダの他のメンバは、未定義の値を持つ。 .TP .BR SHT_PROGBITS -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥°¥é¥à¤Ë¤è¤êÄêµÁ¤µ¤ì¤ë¾ðÊó¤òÊÝ»ý¤¹¤ë¡£ -¤³¤Î¾ðÊó¤Î·Á¼°¤È°ÕÌ£¤Ï¡¢¤Ò¤È¤¨¤Ë¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤Æ·èÄꤵ¤ì¤ë¡£ +このセクションはプログラムにより定義される情報を保持する。 +この情報の形式と意味は、ひとえにプログラムによって決定される。 .TP .BR SHT_SYMTAB -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£ -°ìÈÌ¤Ë¤Ï +このセクションはシンボルテーブルを保持する。 +一般には .BR SHT_SYMTAB -¤Ï¥ê¥ó¥¯ÊÔ½¸¤Î¤¿¤á¤Î¥·¥ó¥Ü¥ë¤òÄ󶡤¹¤ë¤¬¡¢ -ưŪ¥ê¥ó¥¯¤Ë¤â»È¤ï¤ì¤ë¡£ -´°Á´¤Ê¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤È¤·¤Æ¡¢Æ°Åª¥ê¥ó¥¯¤Ë¤ÏÉÔÍ×¤Ê -¿¤¯¤Î¥·¥ó¥Ü¥ë¤òÊÝ»ý¤Ç¤­¤ë¡£ -¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤â +はリンク編集のためのシンボルを提供するが、 +動的リンクにも使われる。 +完全なシンボルテーブルとして、動的リンクには不要な +多くのシンボルを保持できる。 +オブジェクトファイルも .BR SHT_DYNSYM -¥»¥¯¥·¥ç¥ó¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ +セクションを持つことができる。 .TP .BR SHT_STRTAB -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ïʸ»úÎó¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£ -¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ÏÊ£¿ô¤Îʸ»úÎó¥Æ¡¼¥Ö¥ë¥»¥¯¥·¥ç¥ó¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ +このセクションは文字列テーブルを保持する。 +オブジェクトファイルは複数の文字列テーブルセクションを持つことができる。 .TP .BR SHT_RELA -¤³¤Î¥»¥¯¥·¥ç¥ó¤ÏÌÀ¼¨Åª¤Ê²Ã¿ô (addend) ¤ò»ý¤ÄºÆÇÛÃÖ¥¨¥ó¥È¥ê¤òÊÝ»ý¤¹¤ë¡£ -ºÆÇÛÃÖ¥¨¥ó¥È¥ê¤Î·¿¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î 32 ¥Ó¥Ã¥È¥¯¥é¥¹¤Ç¤Ï +このセクションは明示的な加数 (addend) を持つ再配置エントリを保持する。 +再配置エントリの型は、オブジェクトファイルの 32 ビットクラスでは .IR Elf32_Rela -¤Ç¤¢¤ë¡£ -¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ÏÊ£¿ô¤ÎºÆÇÛÃÖ¥»¥¯¥·¥ç¥ó¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ +である。 +オブジェクトファイルは複数の再配置セクションを持つことができる。 .TP .BR SHT_HASH -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥·¥ó¥Ü¥ë¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£ -ưŪ¥ê¥ó¥¯¤µ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢ -¥·¥ó¥Ü¥ë¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤ò´Þ¤ó¤Ç¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ï 1 ¤Ä¤Î¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Î¤ß¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ +このセクションはシンボルハッシュテーブルを保持する。 +動的リンクされるオブジェクトは、 +シンボルハッシュテーブルを含んでいなければならない。 +オブジェクトファイルは 1 つのハッシュテーブルのみを持つことができる。 .TP .BR SHT_DYNAMIC -¤³¤Î¥»¥¯¥·¥ç¥ó¤ÏưŪ¥ê¥ó¥¯¤Î¾ðÊó¤òÊÝ»ý¤¹¤ë¡£ -¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ï 1 ¤Ä¤ÎưŪ¥»¥¯¥·¥ç¥ó¤Î¤ß¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ +このセクションは動的リンクの情報を保持する。 +オブジェクトファイルは 1 つの動的セクションのみを持つことができる。 .TP .BR SHT_NOTE -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥Õ¥¡¥¤¥ë¤Ë²¿¤é¤«¤Î°õ¤òÉÕ¤±¤ë¾ðÊó¤òÊÝ»ý¤¹¤ë¡£ +このセクションはファイルに何らかの印を付ける情報を保持する。 .TP .BR SHT_NOBITS -¤³¤Î¥¿¥¤¥×¤Î¥»¥¯¥·¥ç¥ó¤Ï¥Õ¥¡¥¤¥ë¤ÎÎΰè¤ò»È¤ï¤Ê¤¤¤È¤¤¤¦°Ê³°¤Ï¡¢ +このタイプのセクションはファイルの領域を使わないという以外は、 .BR SHT_PROGBITS -¤È»÷¤Æ¤¤¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï 1 ¥Ð¥¤¥È¤â´Þ¤Þ¤Ê¤¤¤¬¡¢ +と似ている。 +このセクションは 1 バイトも含まないが、 .IR sh_offset -¥á¥ó¥Ð¤Ï³µÇ°Åª¤Ê¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤ò»ý¤Ä¡£ +メンバは概念的なファイルオフセットを持つ。 .TP .BR SHT_REL -¤³¤Î¥»¥¯¥·¥ç¥ó¤ÏÌÀ¼¨Åª¤Ê²Ã¿ô¤ò»ý¤¿¤Ê¤¤ºÆÇÛÃÖ¥ª¥Õ¥»¥Ã¥È¤òÊÝ»ý¤¹¤ë¡£ -ºÆÇÛÃÖ¥ª¥Õ¥»¥Ã¥È¤Î·¿¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î 32 ¥Ó¥Ã¥È¥¯¥é¥¹¤Ç¤Ï +このセクションは明示的な加数を持たない再配置オフセットを保持する。 +再配置オフセットの型は、オブジェクトファイルの 32 ビットクラスでは .IR Elf32_Rel -¤Ç¤¢¤ë¡£ -¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ÏÊ£¿ô¤ÎºÆÇÛÃÖ¥»¥¯¥·¥ç¥ó¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ +である。 +オブジェクトファイルは複数の再配置セクションを持つことができる。 .TP .BR SHT_SHLIB -¤³¤Î¥»¥¯¥·¥ç¥ó¤ÏͽÌ󤵤ì¤Æ¤¤¤ë¤¬¡¢°ÕÌ£¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +このセクションは予約されているが、意味は指定されていない。 .TP .BR SHT_DYNSYM -¤³¤Î¥»¥¯¥·¥ç¥ó¤ÏưŪ¥ê¥ó¥¯¥·¥ó¥Ü¥ë¤ÎºÇ¾®¥»¥Ã¥È¤òÊÝ»ý¤¹¤ë¡£ -¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ï +このセクションは動的リンクシンボルの最小セットを保持する。 +オブジェクトファイルは .BR SHT_SYMTAB -¥»¥¯¥·¥ç¥ó¤â´Þ¤à¤³¤È¤¬¤Ç¤­¤ë¡£ +セクションも含むことができる。 .TP .BR SHT_LOPROC -¤³¤ÎÃͰʾå¤Ç +この値以上で .BR SHT_HIPROC -°Ê²¼¤ÎÈÏ°Ï¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ +以下の範囲はプロセッサ固有の意味に予約されている。 .TP .BR SHT_HIPROC -¤³¤ÎÃͰʲ¼¤Ç +この値以下で .BR SHT_LOPROC -°Ê¾å¤ÎÈÏ°Ï¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ +以上の範囲はプロセッサ固有の意味に予約されている。 .TP .BR SHT_LOUSER -¤³¤ÎÃͤϥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤Î¤¿¤á¤ËͽÌ󤵤ì¤ë -¥¤¥ó¥Ç¥Ã¥¯¥¹ÈϰϤβ¼¸Â¤ò»ØÄꤹ¤ë¡£ +この値はアプリケーションプログラムのために予約される +インデックス範囲の下限を指定する。 .TP .BR SHT_HIUSER -¤³¤ÎÃͤϥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤Î¤¿¤á¤ËͽÌ󤵤ì¤ë -¥¤¥ó¥Ç¥Ã¥¯¥¹ÈϰϤξå¸Â¤ò»ØÄꤹ¤ë¡£ +この値はアプリケーションプログラムのために予約される +インデックス範囲の上限を指定する。 .BR SHT_LOUSER -¤«¤é +から .BR SHT_HIUSER -¤Î´Ö¤Î¥»¥¯¥·¥ç¥ó¥¿¥¤¥×¤Ï¡¢ -¸½ºß¤Þ¤¿¤Ï¾­Íè¤Î¥·¥¹¥Æ¥àÄêµÁ¥»¥¯¥·¥ç¥ó¥¿¥¤¥×¤È¾×Æͤ¹¤ë¤³¤È¤Ê¤¯¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +の間のセクションタイプは、 +現在または将来のシステム定義セクションタイプと衝突することなく、 +アプリケーションで使用することができる。 .\" .El .RE .TP .IR sh_flags -ÍÍ¡¹¤Ê°À­¤òµ­½Ò¤¹¤ë¤¿¤á¤Î 1 ¥Ó¥Ã¥È¤Î¥Õ¥é¥°¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥»¥¯¥·¥ç¥ó¡£ -¥Õ¥é¥°¥Ó¥Ã¥È¤¬ +様々な属性を記述するための 1 ビットのフラグをサポートするセクション。 +フラグビットが .IR sh_flags -¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¤½¤Î¥»¥¯¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Î°À­¤Ï -"¥ª¥ó" -¤Ë¤Ê¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢Â°À­¤¬ -"¥ª¥Õ" -¤Ç¤¢¤ë¤«Â°À­¤¬Å¬ÍѤµ¤ì¤Ê¤¤¡£ -̤ÄêµÁ¤Î°À­¤Ï 0 ¤ËÀßÄꤵ¤ì¤ë¡£ +に設定された場合、そのセクションについての属性は +"オン" +になる。 +それ以外の場合、属性が +"オフ" +であるか属性が適用されない。 +未定義の属性は 0 に設定される。 .\" .Bl -tag -width "SHF_EXECINSTR" -compact .RS 10 .TP 15 .BR SHF_WRITE -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥»¥¹¼Â¹ÔÃæ¤Ë½ñ¤­¹þ¤ß²Äǽ¤Ê¥Ç¡¼¥¿¤ò´Þ¤à¡£ +このセクションはプロセス実行中に書き込み可能なデータを含む。 .TP .BR SHF_ALLOC -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥»¥¹¼Â¹ÔÃæ¤Ë¥á¥â¥ê¤ò»ÈÍѤ¹¤ë¡£ -À©¸æ¥»¥¯¥·¥ç¥ó¤ÎÃæ¤Ë¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤Ë¤Ï -¸ºß¤·¤Ê¤¤¤â¤Î¤â¤¢¤ë¡£ -¤½¤¦¤·¤¿¥»¥¯¥·¥ç¥ó¤Î¾ì¹ç¡¢¤³¤Î°À­¤Ï¥ª¥Õ¤Ç¤¢¤ë¡£ +このセクションはプロセス実行中にメモリを使用する。 +制御セクションの中には、オブジェクトファイルのメモリイメージには +存在しないものもある。 +そうしたセクションの場合、この属性はオフである。 .TP .BR SHF_EXECINSTR -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¼Â¹Ô²Äǽ¤Ê¥Þ¥·¥óÌ¿Îá¤ò´Þ¤à¡£ +このセクションは実行可能なマシン命令を含む。 .TP .BR SHF_MASKPROC -¤³¤Î¥Þ¥¹¥¯¤Ë´Þ¤Þ¤ì¤ëÁ´¤Æ¤Î¥Ó¥Ã¥È¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ +このマスクに含まれる全てのビットはプロセッサ固有の意味に予約されている。 .RE .\" .El .TP .IR sh_addr -¤³¤Î¥»¥¯¥·¥ç¥ó¤¬¥×¥í¥»¥¹¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤Ë¤¢¤ë¾ì¹ç¡¢ -¤³¤Î¥á¥ó¥Ð¤Ï¥»¥¯¥·¥ç¥ó¤ÎºÇ½é¤Î¥Ð¥¤¥È¤¬Â¸ºß¤¹¤ë¥¢¥É¥ì¥¹¤òÊÝ»ý¤¹¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¤³¤Î¥á¥ó¥Ð¤Ï 0 ¤Ç¤¢¤ë¡£ +このセクションがプロセスのメモリイメージにある場合、 +このメンバはセクションの最初のバイトが存在するアドレスを保持する。 +それ以外の場合、このメンバは 0 である。 .TP .IR sh_offset -¤³¤Î¥á¥ó¥Ð¤ÎÃͤϡ¢¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤«¤é¥»¥¯¥·¥ç¥ó¤ÎºÇ½é¤Î¥Ð¥¤¥È¤Ø¤Î -¥Ð¥¤¥È¥ª¥Õ¥»¥Ã¥È¤òÊÝ»ý¤¹¤ë¡£ -¥»¥¯¥·¥ç¥ó¥¿¥¤¥× +このメンバの値は、ファイルの先頭からセクションの最初のバイトへの +バイトオフセットを保持する。 +セクションタイプ .BR SHT_NOBITS -¤Ï¥Õ¥¡¥¤¥ë¤ÎÎΰè¤òÁ´¤¯»ÈÍѤ»¤º¡¢¤³¤Î¥¿¥¤¥×¤Î +はファイルの領域を全く使用せず、このタイプの .IR sh_offset -¥á¥ó¥Ð¤Ï¥Õ¥¡¥¤¥ë¤Î³µÇ°Åª¤Ê°ÌÃÖ¤ò¼¨¤¹¡£ -.\"nakano conceptual placement ¤È¤Ï¡© +メンバはファイルの概念的な位置を示す。 +.\"nakano conceptual placement とは? .TP .IR sh_size -¤³¤Î¥á¥ó¥Ð¤Ï¥»¥¯¥·¥ç¥ó¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤òÊÝ»ý¤¹¤ë¡£ -¥»¥¯¥·¥ç¥ó¥¿¥¤¥×¤¬ +このメンバはセクションのサイズ (バイト単位) を保持する。 +セクションタイプが .BR SHT_NOBITS -¤Ç¤Ê¤¤¸Â¤ê¡¢¤½¤Î¥»¥¯¥·¥ç¥ó¤Ï¥Õ¥¡¥¤¥ëÃæ¤Î +でない限り、そのセクションはファイル中の .IR sh_size -¥Ð¥¤¥È¤ò»ÈÍѤ¹¤ë¡£ -¥¿¥¤¥×¤¬ +バイトを使用する。 +タイプが .BR SHT_NOBITS -¤Î¥»¥¯¥·¥ç¥ó¤Ï¥µ¥¤¥º¤¬ 0 ¤Ç¤Ê¤¤¤¬¡¢¥Õ¥¡¥¤¥ë¤ÎÎΰè¤ò»ÈÍѤ·¤Ê¤¤¡£ +のセクションはサイズが 0 でないが、ファイルの領域を使用しない。 .TP .IR sh_link -¤³¤Î¥á¥ó¥Ð¤Ï¡¢¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¥¤¥ó¥Ç¥Ã¥¯¥¹¥ê¥ó¥¯¤òÊÝ»ý¤¹¤ë¡£ -¤³¤Î²ò¼á¤Ï¥»¥¯¥·¥ç¥ó¥¿¥¤¥×¤Ë°Í¸¤¹¤ë¡£ +このメンバは、セクションヘッダテーブルインデックスリンクを保持する。 +この解釈はセクションタイプに依存する。 .TP .IR sh_info -¤³¤Î¥á¥ó¥Ð¤ÏÄɲþðÊó¤òÊÝ»ý¤¹¤ë¡£ -¤³¤Î²ò¼á¤Ï¥»¥¯¥·¥ç¥ó¥¿¥¤¥×¤Ë°Í¸¤¹¤ë¡£ +このメンバは追加情報を保持する。 +この解釈はセクションタイプに依存する。 .TP .IR sh_addralign -¥¢¥É¥ì¥¹ÇÛÃÖ¤ËÀ©Ì󤬤¢¤ë¥»¥¯¥·¥ç¥ó¤â¤¢¤ë¡£ -¥»¥¯¥·¥ç¥ó¤¬ÇÜŸì (doubleword) ¤òÊÝ»ý¤¹¤ë¾ì¹ç¡¢ -¥·¥¹¥Æ¥à¤ÏÁ´¤Æ¤Î¥»¥¯¥·¥ç¥ó¤Ë¤Ä¤¤¤ÆÇÜŸì¤ÎÇÛÃÖ¤òÊݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤Ä¤Þ¤ê¡¢ +アドレス配置に制約があるセクションもある。 +セクションが倍長語 (doubleword) を保持する場合、 +システムは全てのセクションについて倍長語の配置を保証しなければならない。 +つまり、 .IR sh_addr -¤ÎÃÍ¤Ï +の値は .IR sh_addralign -¤ÎÃͤòË¡¤È¤·¤Æ 0 ¤È¹çƱ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(ÌõÃí:¡Ösh_addr mod sh_addralign = 0 ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£ -2 ¤Î 0 ¾è¤ÈÀµ¤ÎÀ°¿ô¾è¤Î¤ß¤¬µö²Ä¤µ¤ì¤ë¡£ -0 ¤Þ¤¿¤Ï 1 ¤Ï¥»¥¯¥·¥ç¥ó¤ÎÇÛÃÖ¤ËÀ©Ì󤬤ʤ¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +の値を法として 0 と合同でなければならない +(訳注:「sh_addr mod sh_addralign = 0 でなければならない)。 +2 の 0 乗と正の整数乗のみが許可される。 +0 または 1 はセクションの配置に制約がないことを意味する。 .TP .IR sh_entsize -¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤Î¤è¤¦¤Ê¸ÇÄꥵ¥¤¥º¥¨¥ó¥È¥ê¤Î¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë -¥»¥¯¥·¥ç¥ó¤â¤¢¤ë¡£ -¤³¤Î¤è¤¦¤Ê¥»¥¯¥·¥ç¥ó¤Ç¤Ï¡¢ -¤³¤Î¥á¥ó¥Ð¤Ï³Æ¥¨¥ó¥È¥ê¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤òɽ¤¹¡£ -¤³¤Î¥á¥ó¥Ð¤¬ 0 ¤Î¾ì¹ç¡¢ -¤½¤Î¥»¥¯¥·¥ç¥ó¤Ï¸ÇÄꥵ¥¤¥º¥¨¥ó¥È¥ê¤Î¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤·¤Ê¤¤¡£ +シンボルテーブルのような固定サイズエントリのテーブルを保持する +セクションもある。 +このようなセクションでは、 +このメンバは各エントリのサイズ (バイト単位) を表す。 +このメンバが 0 の場合、 +そのセクションは固定サイズエントリのテーブルを保持しない。 .\" .El .PP -¤µ¤Þ¤¶¤Þ¤Ê¥»¥¯¥·¥ç¥ó¤Ë¥×¥í¥°¥é¥à¾ðÊó¡¦À©¸æ¾ðÊó¤¬ÊÝ»ý¤µ¤ì¤ë: +さまざまなセクションにプログラム情報・制御情報が保持される: .\" .Bl -tag -width ".shstrtab" .TP 10 .IR .bss -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥°¥é¥à¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤ËÇÛÃÖ¤µ¤ì¤ë -Èó½é´ü²½¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¡£ -ÄêµÁ¾å¡¢¥·¥¹¥Æ¥à¤Ï¥×¥í¥°¥é¥à¤Î¼Â¹Ô³«»Ï»þ¤Ë¡¢¥Ç¡¼¥¿¤ò 0 ¤Ç½é´ü²½¤¹¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションはプログラムのメモリイメージに配置される +非初期化データを保持する。 +定義上、システムはプログラムの実行開始時に、データを 0 で初期化する。 +このセクションのタイプは .BR SHT_NOBITS -¤Ç¤¢¤ë¡£ -°À­¥¿¥¤¥×¤Ï +である。 +属性タイプは .BR SHF_ALLOC -¤È +と .BR SHF_WRITE -¤Ç¤¢¤ë¡£ +である。 .TP .IR .comment -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥Ð¡¼¥¸¥ç¥óÀ©¸æ¾ðÊó¤òÊÝ»ý¤¹¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションはバージョン制御情報を保持する。 +このセクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ -°À­¥¿¥¤¥×¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£ +である。 +属性タイプは使用されない。 .TP .IR .ctors -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï C++ ¥³¥ó¥¹¥È¥é¥¯¥¿´Ø¿ô¤Ø¤Î½é´ü²½¤µ¤ì¤¿¥Ý¥¤¥ó¥¿¤òÊÝ»ý¤¹¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションは C++ コンストラクタ関数への初期化されたポインタを保持する。 +このセクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ -°À­¥¿¥¤¥×¤Ï +である。 +属性タイプは .BR SHF_ALLOC -¤È +と .BR SHF_WRITE -¤Ç¤¢¤ë¡£ +である。 .TP .IR .data -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥°¥é¥à¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤ËÇÛÃÖ¤µ¤ì¤ë -½é´ü²½ºÑ¤ß¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションはプログラムのメモリイメージに配置される +初期化済みデータを保持する。 +このセクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ -°À­¥¿¥¤¥×¤Ï +である。 +属性タイプは .BR SHF_ALLOC -¤È +と .BR SHF_WRITE -¤Ç¤¢¤ë¡£ +である。 .TP .IR .data1 -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥°¥é¥à¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤ËÇÛÃÖ¤µ¤ì¤ë -½é´ü²½ºÑ¤ß¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションはプログラムのメモリイメージに配置される +初期化済みデータを保持する。 +このセクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ -°À­¥¿¥¤¥×¤Ï +である。 +属性タイプは .BR SHF_ALLOC -¤È +と .BR SHF_WRITE -¤Ç¤¢¤ë¡£ +である。 .TP .IR .debug -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥·¥ó¥Ü¥ê¥Ã¥¯¥Ç¥Ð¥Ã¥°ÍѤξðÊó¤òÊÝ»ý¤¹¤ë¡£ -¤½¤ÎÆâÍƤϻØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションはシンボリックデバッグ用の情報を保持する。 +その内容は指定されていない。 +このセクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ -°À­¥¿¥¤¥×¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£ +である。 +属性タイプは使用されない。 .TP .IR .dtors -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï C++ ¥Ç¥¹¥È¥é¥¯¥¿´Ø¿ô¤Ø¤Î½é´ü²½¤µ¤ì¤¿¥Ý¥¤¥ó¥¿¤òÊÝ»ý¤¹¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションは C++ デストラクタ関数への初期化されたポインタを保持する。 +このセクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ -°À­¥¿¥¤¥×¤Ï +である。 +属性タイプは .BR SHF_ALLOC -¤È +と .BR SHF_WRITE -¤Ç¤¢¤ë¡£ +である。 .TP .IR .dynamic -¤³¤Î¥»¥¯¥·¥ç¥ó¤ÏưŪ¥ê¥ó¥¯¾ðÊó¤òÊÝ»ý¤¹¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î°À­¤Ï +このセクションは動的リンク情報を保持する。 +このセクションの属性は .BR SHF_ALLOC -¥Ó¥Ã¥È¤ò´Þ¤à¡£ +ビットを含む。 .BR SHF_WRITE -¥Ó¥Ã¥È¤¬ÀßÄꤵ¤ì¤ë¤«Èݤ«¤Ï¥×¥í¥»¥Ã¥µ¤Ë¤è¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +ビットが設定されるか否かはプロセッサによる。 +このセクションのタイプは .BR SHT_DYNAMIC -¤Ç¤¢¤ë¡£ -¾åµ­¤Î°À­¤ò»²¾È¤¹¤ë¤³¤È¡£ +である。 +上記の属性を参照すること。 .TP .IR .dynstr -¤³¤Î¥»¥¯¥·¥ç¥ó¤ÏưŪ¥ê¥ó¥¯¤ËɬÍפÊʸ»úÎó¤òÊÝ»ý¤¹¤ë¡£ -ºÇ¤â°ìÈÌŪ¤Ë¤Ï¡¢¤³¤Îʸ»úÎó¤Ï¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤È -´ØÏ¢¤Å¤±¤é¤ì¤¿Ì¾Á°¤òɽ¤¹¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションは動的リンクに必要な文字列を保持する。 +最も一般的には、この文字列はシンボルテーブルエントリと +関連づけられた名前を表す。 +このセクションのタイプは .BR SHT_STRTAB -¤Ç¤¢¤ë¡£ -»ÈÍѤµ¤ì¤ë°À­¥¿¥¤¥×¤Ï +である。 +使用される属性タイプは .BR SHF_ALLOC -¤Ç¤¢¤ë¡£ +である。 .TP .IR .dynsym -¤³¤Î¥»¥¯¥·¥ç¥ó¤ÏưŪ¥ê¥ó¥¯¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションは動的リンクシンボルテーブルを保持する。 +このセクションのタイプは .BR SHT_DYNSYM -¤Ç¤¢¤ë¡£ -»ÈÍѤµ¤ì¤ë°À­¥¿¥¤¥×¤Ï +である。 +使用される属性タイプは .BR SHF_ALLOC -¤Ç¤¢¤ë¡£ +である。 .TP .IR .fini -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥»¥¹½ªÎ»¥³¡¼¥É¤ËÃÖ¤«¤ì¤ë¼Â¹Ô²Äǽ̿Îá¤òÊÝ»ý¤¹¤ë¡£ -¥×¥í¥»¥¹¤¬Àµ¾ï¤Ë½ªÎ»¤·¤¿¾ì¹ç¡¢¥·¥¹¥Æ¥à¤Ï¤³¤Î¥»¥¯¥·¥ç¥ó¤Ë¤¢¤ë -¥³¡¼¥É¤òÇÛÃÖ¤·¤Æ¼Â¹Ô¤¹¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションはプロセス終了コードに置かれる実行可能命令を保持する。 +プロセスが正常に終了した場合、システムはこのセクションにある +コードを配置して実行する。 +このセクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ -»ÈÍѤµ¤ì¤ë°À­¥¿¥¤¥×¤Ï +である。 +使用される属性タイプは .BR SHF_ALLOC -¤È +と .BR SHF_EXECINSTR -¤Ç¤¢¤ë¡£ +である。 .TP .IR .gnu.version -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥Ð¡¼¥¸¥ç¥ó¡¦¥·¥ó¥Ü¥ë¡¦¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£ -¤½¤ÎÆâÍÆ¤Ï +このセクションはバージョン・シンボル・テーブルを保持する。 +その内容は .I ElfN_Half -Í×ÁǤÎÇÛÎó¤Ç¤¢¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +要素の配列である。 +このセクションのタイプは .B SHT_GNU_versym -¤Ç¤¢¤ë¡£ -»ÈÍѤµ¤ì¤ë°À­¥¿¥¤¥×¤Ï +である。 +使用される属性タイプは .B SHF_ALLOC -¤Ç¤¢¤ë¡£ +である。 .TP .IR .gnu.version_d -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥Ð¡¼¥¸¥ç¥ó¥·¥ó¥Ü¥ë¤ÎÄêµÁ¤òÊÝ»ý¤¹¤ë¡£ -¤½¤ÎÆâÍÆ¤Ï +このセクションはバージョンシンボルの定義を保持する。 +その内容は .I ElfN_Verdef -¹½Â¤ÂΤΥơ¼¥Ö¥ë¤Ç¤¢¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +構造体のテーブルである。 +このセクションのタイプは .B SHT_GNU_verdef -¤Ç¤¢¤ë¡£ -»ÈÍѤµ¤ì¤ë°À­¥¿¥¤¥×¤Ï +である。 +使用される属性タイプは .B SHF_ALLOC -¤Ç¤¢¤ë¡£ +である。 .TP .IR .gnu.version_r -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥Ð¡¼¥¸¥ç¥ó¥·¥ó¥Ü¥ë¤¬É¬ÍפȤ¹¤ëÍ×ÁǤòÊÝ»ý¤¹¤ë¡£ -¤½¤ÎÆâÍÆ¤Ï +このセクションはバージョンシンボルが必要とする要素を保持する。 +その内容は .I ElfN_Verneed -¹½Â¤ÂΤΥơ¼¥Ö¥ë¤Ç¤¢¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +構造体のテーブルである。 +このセクションのタイプは .B SHT_GNU_versym -¤Ç¤¢¤ë¡£ -»ÈÍѤµ¤ì¤ë°À­¥¿¥¤¥×¤Ï +である。 +使用される属性タイプは .B shf_alloc -¤Ç¤¢¤ë¡£ +である。 .TP .IR .got -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥°¥í¡¼¥Ð¥ë¥ª¥Õ¥»¥Ã¥È¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションはグローバルオフセットテーブルを保持する。 +このセクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ -°À­¤Ï¥×¥í¥»¥Ã¥µËè¤Ë°Û¤Ê¤ë¡£ +である。 +属性はプロセッサ毎に異なる。 .TP .IR .hash -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥·¥ó¥Ü¥ë¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£ -¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションはシンボルハッシュテーブルを保持する。 +セクションのタイプは .BR SHT_HASH -¤Ç¤¢¤ë¡£ -»ÈÍѤµ¤ì¤ë°À­¤Ï +である。 +使用される属性は .BR SHF_ALLOC -¤Ç¤¢¤ë¡£ +である。 .TP .IR .init -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥»¥¹½é´ü²½¥³¡¼¥É¤ËÇÛÃÖ¤µ¤ì¤ë¼Â¹Ô²Äǽ̿Îá¤òÊÝ»ý¤¹¤ë¡£ -¥×¥í¥°¥é¥à¤¬¼Â¹Ô¤ò³«»Ï¤¹¤ë¤È¡¢ -¥·¥¹¥Æ¥à¤Ï¥á¥¤¥ó¥×¥í¥°¥é¥à¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¡¢ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ë¤¢¤ë¥³¡¼¥É¤òÇÛÃÖ¤·¤Æ¼Â¹Ô¤¹¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¤Î¥¿¥¤¥×¤Ï +このセクションはプロセス初期化コードに配置される実行可能命令を保持する。 +プログラムが実行を開始すると、 +システムはメインプログラムエントリポイントを呼び出す前に、 +このセクションにあるコードを配置して実行する。 +このセクションはのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ -»ÈÍѤµ¤ì¤ë°À­¤Ï +である。 +使用される属性は .BR SHF_ALLOC -¤È +と .BR SHF_EXECINSTR -¤Ç¤¢¤ë¡£ +である。 .TP .IR .interp -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥°¥é¥à¥¤¥ó¥¿¥×¥ê¥¿¤Î¥Ñ¥¹Ì¾¤òÊÝ»ý¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¤Ë¤³¤Î¥»¥¯¥·¥ç¥ó¤ò´Þ¤à¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¤¬¤¢¤ë¾ì¹ç¡¢ -¤½¤Î¥»¥¯¥·¥ç¥ó¤Î°À­¤Ë¤Ï +このセクションはプログラムインタプリタのパス名を保持する。 +ファイルにこのセクションを含むロード可能セグメントがある場合、 +そのセクションの属性には .BR SHF_ALLOC -¥Ó¥Ã¥È¤¬´Þ¤Þ¤ì¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤³¤Î¥Ó¥Ã¥È¤Ï¥ª¥Õ¤Ë¤Ê¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +ビットが含まれる。 +それ以外の場合このビットはオフになる。 +このセクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ +である。 .TP .IR .line -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥·¥ó¥Ü¥ê¥Ã¥¯¥Ç¥Ð¥Ã¥°¤Î¤¿¤á¤Î¹ÔÈÖ¹æ¾ðÊó¤òÊÝ»ý¤¹¤ë¡£ -¤³¤³¤Ë¤Ï¥×¥í¥°¥é¥à¥½¡¼¥¹¥³¡¼¥É¤È¥Þ¥·¥ó¥³¡¼¥É¤ÎÂбþ´Ø·¸¤¬µ­½Ò¤µ¤ì¤ë¡£ -ÆâÍƤϻØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションはシンボリックデバッグのための行番号情報を保持する。 +ここにはプログラムソースコードとマシンコードの対応関係が記述される。 +内容は指定されていない。 +このセクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ -°À­¥¿¥¤¥×¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£ +である。 +属性タイプは使用されない。 .TP .IR .note -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï°Ê²¼¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë +このセクションは以下に記述されている "Note Section" -·Á¼°¤Ç¾ðÊó¤òÊÝ»ý¤¹¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +形式で情報を保持する。 +このセクションのタイプは .BR SHT_NOTE -¤Ç¤¢¤ë¡£ -°À­¥¿¥¤¥×¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£ -Ä̾ï +である。 +属性タイプは使用されない。 +通常 OpenBSD -¥Í¥¤¥Æ¥£¥Ö¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤Ï¼«¿È¤ò¼±Ê̤¹¤ë¤¿¤á¤Ë +ネイティブ実行可能ファイルは自身を識別するために .IR .note.openbsd.ident -¥»¥¯¥·¥ç¥ó¤ò»ý¤Ä¡£ -¤³¤ì¤Ë¤è¤ê¥«¡¼¥Í¥ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥É¤¹¤ëºÝ¤Ë -¸ß´¹ ELF ¥Ð¥¤¥Ê¥ê¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¥Æ¥¹¥È¤ò²óÈò¤Ç¤­¤ë¡£ +セクションを持つ。 +これによりカーネルは、ファイルをロードする際に +互換 ELF バイナリエミュレーションテストを回避できる。 .TP .IR .note.GNU-stack -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï Linux ¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ç -¥¹¥¿¥Ã¥¯Â°À­¤òÀë¸À¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ -¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションは Linux のオブジェクトファイルで +スタック属性を宣言するのに使用される。 +セクションのタイプは .B SHT_PROGBITS -¤Ç¤¢¤ë¡£»ÈÍѤµ¤ì¤ë°À­¤Ï +である。使用される属性は .B SHF_EXECINSTR -¤À¤±¤Ç¤¢¤ë¡£¤³¤Î°À­¤Ï GNU ¥ê¥ó¥«¤ËÂФ·¤Æ -¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤¬¼Â¹Ô²Äǽ¤Ê¥¹¥¿¥Ã¥¯ (executable stack) ¤òɬÍפȤ¹¤ë -¼¨¤¹¤â¤Î¤Ç¤¢¤ë¡£ +だけである。この属性は GNU リンカに対して +オブジェクトファイルが実行可能なスタック (executable stack) を必要とする +示すものである。 .TP .IR .plt -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¼ê³¤­ (procedure) ¥ê¥ó¥¯¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションは手続き (procedure) リンクテーブルを保持する。 +このセクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ -°À­¤Ï¥×¥í¥»¥Ã¥µËè¤Ë°Û¤Ê¤ë¡£ +である。 +属性はプロセッサ毎に異なる。 .TP .IR .relNAME -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï°Ê²¼¤Ëµ­½Ò¤µ¤ì¤ëºÆÇÛÃÖ¾ðÊó¤òÊÝ»ý¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¤¬ºÆÇÛÃÖ¤ò´Þ¤à¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î°À­¤Ï +このセクションは以下に記述される再配置情報を保持する。 +ファイルが再配置を含むロード可能セグメントを持っている場合、 +このセクションの属性は .BR SHF_ALLOC -¥Ó¥Ã¥È¤ò´Þ¤à¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¤½¤Î¥Ó¥Ã¥È¤Ï¥ª¥Õ¤Ç¤¢¤ë¡£ -´·Îã¤È¤·¤Æ¡¢ +ビットを含む。 +それ以外の場合、そのビットはオフである。 +慣例として、 "NAME" -¤ÏºÆÇÛÃÖ¤¬Å¬ÍѤµ¤ì¤ë¥»¥¯¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤ë¡£ -¤è¤Ã¤Æ +は再配置が適用されるセクションが指定される。 +よって .BR .text -¤Ë¤Ä¤¤¤Æ¤ÎºÆÇÛÃÖ¥»¥¯¥·¥ç¥ó¤Ï¡¢Ä̾ï¤Ï +についての再配置セクションは、通常は .BR .rel.text -¤È¤¤¤¦Ì¾Á°¤ò»ý¤Ä¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +という名前を持つ。 +このセクションのタイプは .BR SHT_REL -¤Ç¤¢¤ë¡£ +である。 .TP .IR .relaNAME -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï°Ê²¼¤Ëµ­½Ò¤µ¤ì¤ëºÆÇÛÃÖ¾ðÊó¤òÊÝ»ý¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¤¬ºÆÇÛÃÖ¤ò´Þ¤à¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î°À­¤Ï +このセクションは以下に記述される再配置情報を保持する。 +ファイルが再配置を含むロード可能セグメントを持っている場合、 +このセクションの属性は .BR SHF_ALLOC -¥Ó¥Ã¥È¤ò´Þ¤à¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¤½¤Î¥Ó¥Ã¥È¤Ï¥ª¥Õ¤Ç¤¢¤ë¡£ -´·Îã¤È¤·¤Æ¡¢ +ビットを含む。 +それ以外の場合、そのビットはオフである。 +慣例として、 "NAME" -¤ÏºÆÇÛÃÖ¤¬Å¬ÍѤµ¤ì¤ë¥»¥¯¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤ë¡£ -¤è¤Ã¤Æ +は再配置が適用されるセクションが指定される。 +よって .BR .text -¤Ë¤Ä¤¤¤Æ¤ÎºÆÇÛÃÖ¥»¥¯¥·¥ç¥ó¤Ï¡¢Ä̾ï¤Ï +についての再配置セクションは、通常は .BR .rela.text -¤È¤¤¤¦Ì¾Á°¤ò»ý¤Ä¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +という名前を持つ。 +このセクションのタイプは .BR SHT_RELA -¤Ç¤¢¤ë¡£ +である。 .TP .IR .rodata -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥ê¡¼¥É¥ª¥ó¥ê¡¼¤Î¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¡£ -¤³¤Î¥Ç¡¼¥¿¤Ï¥×¥í¥»¥¹¥¤¥á¡¼¥¸¤Ë¤ª¤±¤ë½ñ¤­¹þ¤ßÉÔ²Äǽ¤Ê¥»¥°¥á¥ó¥È¤ËÃÖ¤«¤ì¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションはリードオンリーのデータを保持する。 +このデータはプロセスイメージにおける書き込み不可能なセグメントに置かれる。 +このセクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ -»ÈÍѤµ¤ì¤ë°À­¤Ï +である。 +使用される属性は .BR SHF_ALLOC -¤Ç¤¢¤ë¡£ +である。 .TP .IR .rodata1 -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥ê¡¼¥É¥ª¥ó¥ê¡¼¤Î¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¡£ -¤³¤Î¥Ç¡¼¥¿¤Ï¥×¥í¥»¥¹¥¤¥á¡¼¥¸¤Ë¤ª¤±¤ë½ñ¤­¹þ¤ßÉÔ²Äǽ¤Ê¥»¥°¥á¥ó¥È¤ËÃÖ¤«¤ì¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションはリードオンリーのデータを保持する。 +このデータはプロセスイメージにおける書き込み不可能なセグメントに置かれる。 +このセクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ -»ÈÍѤµ¤ì¤ë°À­¤Ï +である。 +使用される属性は .BR SHF_ALLOC -¤Ç¤¢¤ë¡£ +である。 .TP .IR .shstrtab -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥»¥¯¥·¥ç¥ó̾¤òÊÝ»ý¤¹¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションはセクション名を保持する。 +このセクションのタイプは .BR SHT_STRTAB -¤Ç¤¢¤ë¡£ -°À­¥¿¥¤¥×¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£ +である。 +属性タイプは使用されない。 .TP .IR .strtab -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ïʸ»úÎó¤òÊÝ»ý¤¹¤ë¡£ -ºÇ¤â°ìÈÌŪ¤Ê¤Î¤Ï¡¢¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿ -̾Á°¤òɽ¤¹Ê¸»úÎó¤Ç¤¢¤ë¡£ -¥Õ¥¡¥¤¥ë¤¬¥·¥ó¥Ü¥ëʸ»úÎó¥Æ¡¼¥Ö¥ë¤ò´Þ¤à¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¤ò»ý¤Ä¾ì¹ç¡¢ -¥»¥¯¥·¥ç¥ó¤Î°À­¤Ï +このセクションは文字列を保持する。 +最も一般的なのは、シンボルテーブルエントリに関連づけられた +名前を表す文字列である。 +ファイルがシンボル文字列テーブルを含むロード可能セグメントを持つ場合、 +セクションの属性は .BR SHF_ALLOC -¥Ó¥Ã¥È¤ò´Þ¤à¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¤½¤Î¥Ó¥Ã¥È¤Ï¥ª¥Õ¤Ç¤¢¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +ビットを含む。 +それ以外の場合、そのビットはオフである。 +このセクションのタイプは .BR SHT_STRTAB -¤Ç¤¢¤ë¡£ +である。 .TP .IR .symtab -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¤¬¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤ò´Þ¤à¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¤ò»ý¤Ä¾ì¹ç¡¢ -¥»¥¯¥·¥ç¥ó¤Î°À­¤Ï +このセクションはシンボルテーブルを保持する。 +ファイルがシンボルテーブルを含むロード可能セグメントを持つ場合、 +セクションの属性は .BR SHF_ALLOC -¥Ó¥Ã¥È¤ò´Þ¤à¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¥Ó¥Ã¥È¤Ï¥ª¥Õ¤Ç¤¢¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +ビットを含む。 +それ以外の場合、ビットはオフである。 +このセクションのタイプは .BR SHT_SYMTAB -¤Ç¤¢¤ë¡£ +である。 .TP .IR .text -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥°¥é¥à¤Î -"¥Æ¥­¥¹¥È" -¤Þ¤¿¤Ï¼Â¹Ô²Äǽ̿Îá¤òÊÝ»ý¤¹¤ë¡£ -¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï +このセクションはプログラムの +"テキスト" +または実行可能命令を保持する。 +セクションのタイプは .BR SHT_PROGBITS -¤Ç¤¢¤ë¡£ -»ÈÍѤµ¤ì¤ë°À­¤Ï +である。 +使用される属性は .BR SHF_ALLOC -¤È +と .BR SHF_EXECINSTR -¤Ç¤¢¤ë¡£ +である。 .\" .El .PP -ʸ»úÎó¥Æ¡¼¥Ö¥ë¥»¥¯¥·¥ç¥ó¤Ï NULL ʸ»ú¤Ç½ªÃ¼¤µ¤ì¤¿¥­¥ã¥é¥¯¥¿ÇÛÎó -(Ä̾ïʸ»úÎó¤È¸Æ¤Ð¤ì¤ë¤â¤Î) ¤òÊÝ»ý¤¹¤ë¡£ -¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ï¤³¤ì¤é¤Îʸ»úÎó¤ò -¥·¥ó¥Ü¥ë̾¤È¥»¥¯¥·¥ç¥ó̾¤òɽ¤¹¤¿¤á¤Ë»È¤¦¡£ -ʸ»úÎó¤Ï¡¢Ê¸»úÎó¥Æ¡¼¥Ö¥ë¥»¥¯¥·¥ç¥ó¤Ø¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤È¤·¤Æ»²¾È¤µ¤ì¤ë¡£ -¥¤¥ó¥Ç¥Ã¥¯¥¹ 0 ¤ÎºÇ½é¤Î¥Ð¥¤¥È¤Ï¡¢NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤ò -ÊÝ»ý¤¹¤ë¤ÈÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -ƱÍͤËʸ»úÎó¥Æ¡¼¥Ö¥ë¤ÎºÇ¸å¤Î¥Ð¥¤¥È¤â NULL ʸ»ú¤òÊÝ»ý¤¹¤ë¤ÈÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤ÏÁ´¤Æ¤Îʸ»úÎó¤¬ NULL ¥Ð¥¤¥È¤Ç½ªÃ¼¤µ¤ì¤Æ¤¤¤ë¤³¤È¤òÊݾڤ¹¤ë¤¿¤á¤Ç¤¢¤ë¡£ +文字列テーブルセクションは NULL 文字で終端されたキャラクタ配列 +(通常文字列と呼ばれるもの) を保持する。 +オブジェクトファイルはこれらの文字列を +シンボル名とセクション名を表すために使う。 +文字列は、文字列テーブルセクションへのインデックスとして参照される。 +インデックス 0 の最初のバイトは、NULL バイト (\(aq\\0\(aq) を +保持すると定義されている。 +同様に文字列テーブルの最後のバイトも NULL 文字を保持すると定義されている。 +これは全ての文字列が NULL バイトで終端されていることを保証するためである。 .PP -¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤Ï¡¢ -¥×¥í¥°¥é¥à¤Î¥·¥ó¥Ü¥ëÄêµÁ¤È»²¾È¤òÇÛÃÖ¤Þ¤¿¤ÏºÆÇÛÃÖ¤¹¤ë¤Î¤Ë -ɬÍפʾðÊó¤òÊÝ»ý¤¹¤ë¡£ +オブジェクトファイルのシンボルテーブルは、 +プログラムのシンボル定義と参照を配置または再配置するのに +必要な情報を保持する。 .in +4n .nf @@ -1505,158 +1505,158 @@ typedef struct { .fi .in .PP -32 ¥Ó¥Ã¥ÈÈÇ¤È 64 ¥Ó¥Ã¥ÈÈǤÏƱ¤¸¥á¥ó¥Ð¤ò»ý¤Á¡¢Ã±¤Ë½çÈÖ¤¬°Û¤Ê¤ë¤À¤±¤Ç¤¢¤ë¡£ +32 ビット版と 64 ビット版は同じメンバを持ち、単に順番が異なるだけである。 .\" .Bl -tag -width "st_value" .TP 10 .IR st_name -¤³¤Î¥á¥ó¥Ð¤Ï¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î¥·¥ó¥Ü¥ëʸ»úÎó¥Æ¡¼¥Ö¥ë¤Î -¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÊÝ»ý¤¹¤ë¡£ -¥·¥ó¥Ü¥ëʸ»úÎó¥Æ¡¼¥Ö¥ë¤Ï¥·¥ó¥Ü¥ë̾¤Îʸ»úɽ¸½¤òÊÝ»ý¤¹¤ë¡£ -¤³¤ÎÃͤ¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¡¢¥·¥ó¥Ü¥ë̾¤òÆÀ¤ë¤¿¤á¤Îʸ»ú¥Æ¡¼¥Ö¥ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤òɽ¤¹¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤Ï̾Á°¤ò»ý¤¿¤Ê¤¤¡£ +このメンバはオブジェクトファイルのシンボル文字列テーブルの +インデックスを保持する。 +シンボル文字列テーブルはシンボル名の文字表現を保持する。 +この値が 0 でない場合、シンボル名を得るための文字テーブルインデックスを表す。 +それ以外の場合、シンボルテーブルは名前を持たない。 .TP .IR st_value -¤³¤Î¥á¥ó¥Ð¤Ï´ØÏ¢¤Å¤±¤é¤ì¤¿¥·¥ó¥Ü¥ë¤ÎÃͤòɽ¤¹¡£ +このメンバは関連づけられたシンボルの値を表す。 .TP .IR st_size -¿¤¯¤Î¥·¥ó¥Ü¥ë¤Ë¤Ï¤½¤ì¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥µ¥¤¥º¤¬¤¢¤ë¡£ -¥·¥ó¥Ü¥ë¤¬¥µ¥¤¥º¤ò»ý¤¿¤Ê¤¤¾ì¹ç¡¢¤Þ¤¿¤Ï¥µ¥¤¥º¤¬ÉÔÌÀ¤Ê¾ì¹ç¡¢ -¤³¤Î¥á¥ó¥Ð¤Ï 0 ¤Ç¤¢¤ë¡£ +多くのシンボルにはそれに関連づけられたサイズがある。 +シンボルがサイズを持たない場合、またはサイズが不明な場合、 +このメンバは 0 である。 .TP .IR st_info -¤³¤Î¥á¥ó¥Ð¤Ï¥·¥ó¥Ü¥ë¤Î¥¿¥¤¥×¤È¥Ð¥¤¥ó¥Ç¥£¥ó¥° (binding) °À­¤ò»ØÄꤹ¤ë: +このメンバはシンボルのタイプとバインディング (binding) 属性を指定する: .RS 10 .TP 12 .BR STT_NOTYPE -¥·¥ó¥Ü¥ë¤Î¥¿¥¤¥×¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +シンボルのタイプが定義されていない。 .TP .BR STT_OBJECT -¥·¥ó¥Ü¥ë¤Ï¥Ç¡¼¥¿¥ª¥Ö¥¸¥§¥¯¥È¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ë¡£ +シンボルはデータオブジェクトに関連づけられている。 .TP .BR STT_FUNC -¥·¥ó¥Ü¥ë¤Ï´Ø¿ô¤Þ¤¿¤Ï¤½¤Î¾¤Î¼Â¹Ô¥³¡¼¥É¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ë¡£ +シンボルは関数またはその他の実行コードに関連づけられている。 .TP .BR STT_SECTION -¥·¥ó¥Ü¥ë¤Ï¥»¥¯¥·¥ç¥ó¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥¿¥¤¥×¤Î¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤Ï¡¢ -¼ç¤È¤·¤ÆºÆÇÛÃ֤Τ¿¤á¤Ë¸ºß¤·¡¢Ä̾ï¤Ï +シンボルはセクションに関連づけられている。 +このタイプのシンボルテーブルエントリは、 +主として再配置のために存在し、通常は .BR STB_LOCAL -¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤ò»ý¤Ä¡£ +バインディングを持つ。 .TP .BR STT_FILE -´·Îã¤È¤·¤Æ¡¢¥·¥ó¥Ü¥ë¤Î̾Á°¤Ï -¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Î̾Á°¤ò»ØÄꤹ¤ë¡£ -¥Õ¥¡¥¤¥ë¥·¥ó¥Ü¥ë¤Ï +慣例として、シンボルの名前は +オブジェクトファイルに関連づけられたソースファイルの名前を指定する。 +ファイルシンボルは .BR STB_LOCAL -¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤ò»ý¤Á¡¢¤½¤Î¥»¥¯¥·¥ç¥ó¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï +バインディングを持ち、そのセクションインデックスは .BR SHN_ABS -¤Ç¤¢¤ë¡£ -¥Õ¥¡¥¤¥ë¥·¥ó¥Ü¥ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤Ë¾¤Î +である。 +ファイルシンボルは、ファイルに他の .BR STB_LOCAL -¥·¥ó¥Ü¥ë¤¬¤¢¤ë¾ì¹ç¤Ï¡¢¤½¤ì¤è¤ê¤âÀè¤ËÍè¤ë¡£ +シンボルがある場合は、それよりも先に来る。 .TP .BR STT_LOPROC -¤³¤ÎÃͰʾå¤Ç +この値以上で .BR STT_HIPROC -°Ê²¼¤ÎÈÏ°Ï¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ +以下の範囲はプロセッサ固有の意味に予約されている。 .TP .BR STT_HIPROC -¤³¤ÎÃͰʲ¼¤Ç +この値以下で .BR STT_LOPROC -°Ê¾å¤ÎÈÏ°Ï¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ +以上の範囲はプロセッサ固有の意味に予約されている。 .\" .El .\" .Bl -tag -width "STB_GLOBAL" .TP .BR STB_LOCAL -¶É½êŪ¥·¥ó¥Ü¥ë¤Ï¤½¤ÎÄêµÁ¤ò´Þ¤à¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î³°¤«¤é¤Ï¸«¤¨¤Ê¤¤¡£ -Ʊ¤¸Ì¾Á°¤Î¶É½êŪ¥·¥ó¥Ü¥ë¤Ï¡¢¤ª¸ß¤¤¤Ë±Æ¶Á¤ò¼õ¤±¤ë¤³¤È¤Ê¤¯¡¢ -Ê£¿ô¤Î¥Õ¥¡¥¤¥ë¤Ë¸ºß¤Ç¤­¤ë¡£ +局所的シンボルはその定義を含むオブジェクトファイルの外からは見えない。 +同じ名前の局所的シンボルは、お互いに影響を受けることなく、 +複数のファイルに存在できる。 .TP .BR STB_GLOBAL -Âç°èŪ¥·¥ó¥Ü¥ë¤Ï·ë¤Ó¤Ä¤±¤é¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤«¤é¸«¤¨¤ë¡£ -1 ¤Ä¤Î¥Õ¥¡¥¤¥ë¤ÇÂç°èŪ¥·¥ó¥Ü¥ë¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤¿¤é¡¢ -¾¤Î¥Õ¥¡¥¤¥ë¤Ç¤ÏƱ¤¸¥·¥ó¥Ü¥ë¤Ø¤Î»²¾È¤Ï̤ÄêµÁ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +大域的シンボルは結びつけられている全てのオブジェクトファイルから見える。 +1 つのファイルで大域的シンボルが定義されていたら、 +他のファイルでは同じシンボルへの参照は未定義でなければならない。 .TP .BR STB_WEAK -¼å¥·¥ó¥Ü¥ë¤ÏÂç°èŪ¥·¥ó¥Ü¥ë¤Ë»÷¤Æ¤¤¤ë¤¬¡¢¤½¤ÎÄêµÁ¤ÏÍ¥ÀèÅÙ¤¬Ä㤤¡£ +弱シンボルは大域的シンボルに似ているが、その定義は優先度が低い。 .TP .BR STB_LOPROC -¤³¤ÎÃͰʾå¤Ç +この値以上で .BR STB_HIPROC -°Ê²¼¤ÎÈÏ°Ï¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ +以下の範囲はプロセッサ固有の意味に予約されている。 .TP .BR STB_HIPROC -¤³¤ÎÃͰʲ¼¤Ç +この値以下で .BR STB_LOPROC -°Ê¾å¤ÎÈÏ°Ï¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ +以上の範囲はプロセッサ固有の意味に予約されている。 .IP -¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤È¥¿¥¤¥×¥Õ¥£¡¼¥ë¥É¤ò -¥Ñ¥Ã¥¯¤·¤¿¤ê¥¢¥ó¥Ñ¥Ã¥¯¤·¤¿¤ê¤¹¤ë¥Þ¥¯¥í¤¬¤¢¤ë: +バインディングとタイプフィールドを +パックしたりアンパックしたりするマクロがある: .IP .BR ELF32_ST_BIND (info) -¤Þ¤¿¤Ï +または .BR ELF64_ST_BIND (info) .I st_info -¤ÎÃͤ«¤é¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤ò¼è¤ê½Ð¤¹¡£ +の値からバインディングを取り出す。 .IP .BR ELF32_ST_TYPE (info) -¤Þ¤¿¤Ï +または .BR ELF64_ST_TYPE (info) .br .I st_info -¤ÎÃͤ«¤é¥¿¥¤¥×¤ò¼è¤ê½Ð¤¹¡£ +の値からタイプを取り出す。 .IP .BR ELF32_ST_INFO "(bind, type)" -¤Þ¤¿¤Ï +または .BR ELF64_ST_INFO "(bind, type)" .br -¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤È¥¿¥¤¥×¤ò +バインディングとタイプを .I st_info -¤ÎÃͤËÊÑ´¹¤¹¤ë¡£ +の値に変換する。 .RE .\" .El .TP .IR st_other -¤³¤Î¥á¥ó¥Ð¤Ï¥·¥ó¥Ü¥ë¤Î visibility (¸«¤¨¤ëÈÏ°Ï) ¤òµ¬Äꤹ¤ë¡£ +このメンバはシンボルの visibility (見える範囲) を規定する。 .\" .Bl -tag -width "STV_PROTECTED" .RS 10 .TP 16 .PD 0 .BR STV_DEFAULT -¥Ç¥Õ¥©¥ë¥È¤Î¥·¥ó¥Ü¥ë visibility ¥ë¡¼¥ë¡£ +デフォルトのシンボル visibility ルール。 .TP .BR STV_INTERNAL -¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î±£¤·¥¯¥é¥¹¡£ +プロセッサ固有の隠しクラス。 .TP .BR STV_HIDDEN -¥·¥ó¥Ü¥ë¤Ï¾¤Î¥â¥¸¥å¡¼¥ë¤«¤é¤ÏÍøÍѤǤ­¤Ê¤¤¡£ +シンボルは他のモジュールからは利用できない。 .TP .BR STV_PROTECTED -²£¼è¤ê¤Ç¤­¤º (not preemptible)¡¢¸ø³«¤µ¤ì¤Ê¤¤¡£ +横取りできず (not preemptible)、公開されない。 .PD .PP -visibility ¼ïÊ̤òÃê½Ð¤¹¤ë¤¿¤á¤Î¥Þ¥¯¥í¤¬¤¢¤ë¡£ +visibility 種別を抽出するためのマクロがある。 .PP .BR ELF32_ST_VISIBILITY (other) -¤Þ¤¿¤Ï +または .BR ELF64_ST_VISIBILITY (other) .RE .\" .El .TP .IR st_shndx -³Æ¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¥»¥¯¥·¥ç¥ó¤Ë´ØÏ¢¤·¤Æ -"ÄêµÁ¤µ¤ì¤Æ¤¤¤ë"¡£ -¤³¤Î¥á¥ó¥Ð¤Ï´ØÏ¢¤¹¤ë¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÊÝ»ý¤¹¤ë¡£ +各シンボルテーブルエントリは、いくつかのセクションに関連して +"定義されている"。 +このメンバは関連するセクションヘッダテーブルインデックスを保持する。 .\" .El .PP -ºÆÇÛÃ֤ϥ·¥ó¥Ü¥ë»²¾È¤È¥·¥ó¥Ü¥ëÄêµÁ¤ò·ë¹ç¤¹¤ë¥×¥í¥»¥¹¤Ç¤¢¤ë¡£ -ºÆÇÛÃÖ²Äǽ¥Õ¥¡¥¤¥ë¤Ï¥»¥¯¥·¥ç¥ó¤ÎÆâÍƤò¤É¤Î¤è¤¦¤Ë½¤Àµ¤¹¤ë¤«¤Ë´Ø¤¹¤ë -¾ðÊó¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ì¤Ë¤è¤ê¡¢¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤È¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ï -¥×¥í¥»¥¹¤Î¥×¥í¥°¥é¥à¥¤¥á¡¼¥¸¤Ë¤Ä¤¤¤Æ¤ÎÀµ¤·¤¤¾ðÊó¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ -ºÆÇÛÃÖ¥¨¥ó¥È¥ê¤Ï°Ê²¼¤Î¤è¤¦¤Ê¥Ç¡¼¥¿¤Ç¤¢¤ë¡£ +再配置はシンボル参照とシンボル定義を結合するプロセスである。 +再配置可能ファイルはセクションの内容をどのように修正するかに関する +情報を持たなければならない。 +これにより、実行可能ファイルと共有オブジェクトファイルは +プロセスのプログラムイメージについての正しい情報を持つことができる。 +再配置エントリは以下のようなデータである。 .PP -²Ã¿ô¤òɬÍפȤ·¤Ê¤¤ºÆÇÛÃÖ¹½Â¤ÂΡ£ +加数を必要としない再配置構造体。 .in +4n .nf @@ -1676,7 +1676,7 @@ typedef struct { .fi .in .PP -²Ã¿ô¤òɬÍפȤ¹¤ëºÆÇÛÃÖ¹½Â¤ÂΡ£ +加数を必要とする再配置構造体。 .in +4n .nf @@ -1700,34 +1700,34 @@ typedef struct { .\" .Bl -tag -width "r_offset" .TP 12 .IR r_offset -¤³¤Î¥á¥ó¥Ð¤ÏºÆÇÛÃÖÆ°ºî¤¬Å¬ÍѤµ¤ì¤ë°ÌÃÖ¤òÍ¿¤¨¤ë¡£ -ºÆÇÛÃÖ²Äǽ¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¡¢¤³¤ÎÃͤϥ»¥¯¥·¥ç¥ó¤ÎÀèƬ¤«¤é -ºÆÇÛÃ֤DZƶÁ¤ò¼õ¤±¤ë³ÊǼñ°Ì (storage unit) ¤Þ¤Ç¤Î¥Ð¥¤¥È¥ª¥Õ¥»¥Ã¥È¤Ç¤¢¤ë¡£ -¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ì¹ç¡¢ -¤³¤ÎÃͤϺÆÇÛÃ֤DZƶÁ¤ò¼õ¤±¤ë³ÊǼñ°Ì¤Î²¾ÁÛ¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +このメンバは再配置動作が適用される位置を与える。 +再配置可能ファイルの場合、この値はセクションの先頭から +再配置で影響を受ける格納単位 (storage unit) までのバイトオフセットである。 +実行可能ファイルまたは共有オブジェクトの場合、 +この値は再配置で影響を受ける格納単位の仮想アドレスである。 .TP .IR r_info -¤³¤Î¥á¥ó¥Ð¤Ï¡¢ºÆÇÛÃÖ¤¬¹Ô¤ï¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤È¡¢ -ŬÍѤµ¤ì¤ëºÆÇÛÃ֤Υ¿¥¤¥×¤ÎξÊý¤òÍ¿¤¨¤ë¡£ -ºÆÇÛÃÖ¥¿¥¤¥×¤Ï¥×¥í¥»¥Ã¥µËè¤Ë°Û¤Ê¤ë¡£ -¥Æ¥­¥¹¥È¤¬ºÆÇÛÃÖ¥¨¥ó¥È¥ê¤ÎºÆÇÛÃÖ¥¿¥¤¥× -¤Þ¤¿¤Ï¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -¤½¤ì¤¾¤ì¥¨¥ó¥È¥ê¤Î +このメンバは、再配置が行われなければならないシンボルテーブルインデックスと、 +適用される再配置のタイプの両方を与える。 +再配置タイプはプロセッサ毎に異なる。 +テキストが再配置エントリの再配置タイプ +またはシンボルテーブルインデックスを参照している場合、 +それぞれエントリの .IR r_info -¥á¥ó¥Ð¤ËÂФ·¤Æ¡¢¤½¤ì¤¾¤ì +メンバに対して、それぞれ .BR ELF_[32|64]_R_TYPE -¤È +と .BR ELF[32|64]_R_SYM -¤òŬÍѤ·¤¿·ë²Ì¤ò°ÕÌ£¤¹¤ë¡£ +を適用した結果を意味する。 .TP .IR r_addend -¤³¤Î¥á¥ó¥Ð¤ÏÄê¿ô¤Î²Ã¿ô¤ò»ØÄꤹ¤ë¡£ -¤³¤Î²Ã¿ô¤ÏºÆÇÛÃÖ²Äǽ¥Õ¥£¡¼¥ë¥É¤Ë³ÊǼ¤µ¤ì¤ëÃͤò·×»»¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ +このメンバは定数の加数を指定する。 +この加数は再配置可能フィールドに格納される値を計算するために使われる。 .\" .El .PP -\&.dynamic ¥»¥¯¥·¥ç¥ó¤Ï¡¢´ØÏ¢¤¹¤ëưŪ¥ê¥ó¥¯¾ðÊó¤òÊÝ»ý¤·¤Æ¤¤¤ë -°ìÏ¢¤Î¹½Â¤ÂΤòÊÝ»ý¤¹¤ë¡£ -d_tag ¥á¥ó¥Ð¤Ï d_un ¤Î²ò¼á¤òÀ©¸æ¤¹¤ë¡£ +\&.dynamic セクションは、関連する動的リンク情報を保持している +一連の構造体を保持する。 +d_tag メンバは d_un の解釈を制御する。 .in +4n .nf @@ -1757,135 +1757,135 @@ extern Elf64_Dyn _DYNAMIC[]; .\" .Bl -tag -width "d_tag" .TP 10 .IR d_tag -¤³¤Î¥á¥ó¥Ð¤Ï°Ê²¼¤ÎÃͤò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë: +このメンバは以下の値を持つことができる: .\" .Bl -tag -width "DT_SYMBOLIC" .RS 10 .TP 12 .BR DT_NULL -ưŪ¥»¥¯¥·¥ç¥ó¤Î½ª¤ê¤Î¥Þ¡¼¥¯ +動的セクションの終りのマーク .TP .BR DT_NEEDED -ɬÍפʥ饤¥Ö¥é¥ê¤Î̾Á°¤Ø¤Îʸ»úÎó¥Æ¡¼¥Ö¥ë¥ª¥Õ¥»¥Ã¥È +必要なライブラリの名前への文字列テーブルオフセット .TP .BR DT_PLTRELSZ -PLT ºÆÇÛÃÖ (reloc) ¥Æ¡¼¥Ö¥ë¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) +PLT 再配置 (reloc) テーブルのサイズ (バイト単位) .TP .BR DT_PLTGOT -PLT ¤È GOT (¤Þ¤¿¤Ï²¿¤ì¤«°ìÊý) ¤Î¥¢¥É¥ì¥¹ +PLT と GOT (または何れか一方) のアドレス .TP .BR DT_HASH -¥·¥ó¥Ü¥ë¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Î¥¢¥É¥ì¥¹ +シンボルハッシュテーブルのアドレス .TP .BR DT_STRTAB -ʸ»úÎó¥Æ¡¼¥Ö¥ë¤Î¥¢¥É¥ì¥¹ +文字列テーブルのアドレス .TP .BR DT_SYMTAB -¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤Î¥¢¥É¥ì¥¹ +シンボルテーブルのアドレス .TP .BR DT_RELA -Rela ºÆÇÛÃ֥ơ¼¥Ö¥ë¤Î¥¢¥É¥ì¥¹ +Rela 再配置テーブルのアドレス .TP .BR DT_RELASZ -Rela ¥Æ¡¼¥Ö¥ë¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) +Rela テーブルのサイズ (バイト単位) .TP .BR DT_RELAENT -Rela ¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) +Rela テーブルエントリのサイズ (バイト単位) .TP .BR DT_STRSZ -ʸ»úÎó¥Æ¡¼¥Ö¥ë¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) +文字列テーブルのサイズ (バイト単位) .TP .BR DT_SYMENT -¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) +シンボルテーブルエントリのサイズ (バイト単位) .TP .BR DT_INIT -½é´ü²½´Ø¿ô¤Î¥¢¥É¥ì¥¹ +初期化関数のアドレス .TP .BR DT_FINI -½ªÎ»´Ø¿ô¤Î¥¢¥É¥ì¥¹ +終了関数のアドレス .TP .BR DT_SONAME -¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Î̾Á°¤Ø¤Îʸ»úÎó¥Æ¡¼¥Ö¥ë¥ª¥Õ¥»¥Ã¥È +共有オブジェクトの名前への文字列テーブルオフセット .TP .BR DT_RPATH -¥é¥¤¥Ö¥é¥ê¸¡º÷¥Ñ¥¹¤Ø¤Îʸ»úÎó¥Æ¡¼¥Ö¥ë¥ª¥Õ¥»¥Ã¥È (¿ä¾©¤µ¤ì¤Ê¤¤) +ライブラリ検索パスへの文字列テーブルオフセット (推奨されない) .TP .BR DT_SYMBOLIC -¥ê¥ó¥«¤¬¥·¥ó¥Ü¥ë¤Î¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤è¤êÁ°¤Ë -¤³¤Î¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤ò¸¡º÷¤·¤¿¾ì¹ç¤Ï¡¢·Ù¹ð¤ò½Ð¤¹¡£ +リンカがシンボルの実行可能ファイルより前に +この共有オブジェクトを検索した場合は、警告を出す。 .TP .BR DT_REL -Rel ºÆÇÛÃ֥ơ¼¥Ö¥ë¤Î¥¢¥É¥ì¥¹ +Rel 再配置テーブルのアドレス .TP .BR DT_RELSZ -Rel ¥Æ¡¼¥Ö¥ë¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) +Rel テーブルのサイズ (バイト単位) .TP .BR DT_RELENT -Rel ¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) +Rel テーブルエントリのサイズ (バイト単位) .TP .BR DT_PLTREL -PLT ¤¬»²¾È¤¹¤ëºÆÇÛÃ֥ơ¼¥Ö¥ë¤Î¥¿¥¤¥× (Rela ¤Þ¤¿¤Ï Rel) +PLT が参照する再配置テーブルのタイプ (Rela または Rel) .TP .BR DT_DEBUG -¥Ç¥Ð¥Ã¥°¤Î¤¿¤á¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ÆâÍƤÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +デバッグのために使用されている。内容は定義されていない。 .TP .BR DT_TEXTREL -¤³¤ì¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -½ñ¤­¹þ¤ßÉԲĤΥ»¥°¥á¥ó¥È¤Ë¤ÏºÆÇÛÃÖ¤ÏŬÍѤµ¤ì¤Ê¤¤¡£ +これが指定されていない場合、 +書き込み不可のセグメントには再配置は適用されない。 .TP .BR DT_JMPREL -PLT ÀìÍѤκÆÇÛÃÖ¥¨¥ó¥È¥ê¤Î¥¢¥É¥ì¥¹ +PLT 専用の再配置エントリのアドレス .TP .BR DT_BIND_NOW -¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤ËÀ©¸æ¤ò¾ù¤ëÁ°¤Ë¡¢ -Á´¤Æ¤ÎºÆÇÛÃÖ¤ò½èÍý¤¹¤ë¤è¤¦¤ËưŪ¥ê¥ó¥«¤Ë»Ø¼¨¤¹¤ë¡£ +実行可能ファイルに制御を譲る前に、 +全ての再配置を処理するように動的リンカに指示する。 .TP .BR DT_RUNPATH -¥é¥¤¥Ö¥é¥ê¸¡º÷¥Ñ¥¹¤Ø¤Îʸ»úÎó¥Æ¡¼¥Ö¥ë¥ª¥Õ¥»¥Ã¥È +ライブラリ検索パスへの文字列テーブルオフセット .TP .BR DT_LOPROC -¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤Î³«»Ï +プロセッサ固有の意味の開始 .TP .BR DT_HIPROC -¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤Î½ªÎ» +プロセッサ固有の意味の終了 .RE .\" .El .TP .IR d_val -¤³¤Î¥á¥ó¥Ð¤ÏÍÍ¡¹¤Ê°ÕÌ£¤Ë²ò¼á¤µ¤ì¤ëÀ°¿ôÃͤǤ¢¤ë¡£ +このメンバは様々な意味に解釈される整数値である。 .TP .IR d_ptr -¤³¤Î¥á¥ó¥Ð¤Ï¥×¥í¥°¥é¥à¤Î²¾ÁÛ¥¢¥É¥ì¥¹¤òɽ¤¹¡£ -¤³¤ì¤é¤Î¥¢¥É¥ì¥¹¤ò²ò¼á¤¹¤ëºÝ¤Ë¡¢ -¼ÂºÝ¤Î¥¢¥É¥ì¥¹¤Ï¸µ¡¹¤Î¥Õ¥¡¥¤¥ë¤ÎÃÍ¤È -¥á¥â¥ê¤Î´ðÄ쥢¥É¥ì¥¹¤«¤é·×»»¤µ¤ì¤ë¡£ -¥Õ¥¡¥¤¥ë¤Ë¤Ï¤³¤ì¤é¤Î¥¢¥É¥ì¥¹¤ò½¤Àµ¤¹¤ë¤¿¤á¤Î -ºÆÇÛÃÖ¥¨¥ó¥È¥ê¤ò´Þ¤á¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +このメンバはプログラムの仮想アドレスを表す。 +これらのアドレスを解釈する際に、 +実際のアドレスは元々のファイルの値と +メモリの基底アドレスから計算される。 +ファイルにはこれらのアドレスを修正するための +再配置エントリを含めてはならない。 .TP .IR _DYNAMIC -\&.dynamic ¥»¥¯¥·¥ç¥ó¤Ë¤¢¤ëÁ´¤Æ¤ÎưŪ¹½Â¤ÂΤò´Þ¤àÇÛÎó¡£ -¤³¤ì¤Ï¼«Æ°Åª¤Ë¥ê¥ó¥«¤ËÅϤµ¤ì¤ë¡£ +\&.dynamic セクションにある全ての動的構造体を含む配列。 +これは自動的にリンカに渡される。 .\" .El -.SH È÷¹Í +.SH 備考 .\" OpenBSD -.\" ELF ¤Î¥µ¥Ý¡¼¥È¤Ï +.\" ELF のサポートは .\" OpenBSD 1.2 -.\" ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.\" ¤·¤«¤·¡¢¤³¤ì¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤ÎÁ´¤Æ¤¬ -.\" ¥Í¥¤¥Æ¥£¥Ö¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤È¤·¤Æ»È¤Ã¤Æ¤¤¤¿Ìõ¤Ç¤Ï¤Ê¤¤¡£ -ELF ¤Ï System V ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -ELF ¼«ÂÎ¤Ï +.\" で初めて登場した。 +.\" しかし、これをサポートするプラットフォームの全てが +.\" ネイティブバイナリファイルフォーマットとして使っていた訳ではない。 +ELF は System V で初めて登場した。 +ELF 自体は System V -¤Ç½é¤á¤ÆÅо줷¤¿¡£ -ELF ¥Õ¥©¡¼¥Þ¥Ã¥È¤ÏºÎÂò¤µ¤ì¤¿É¸½à¤Ç¤¢¤ë¡£ -.\" .SH Ãø¼Ô -.\" ¤³¤Î man ¥Ú¡¼¥¸¤Î¸µ¡¹¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢BSDi ¤Î +で初めて登場した。 +ELF フォーマットは採択された標準である。 +.\" .SH 著者 +.\" この man ページの元々のバージョンは、BSDi の .\" .Bsx .\" .Nm elf -.\" man ¥Ú¡¼¥¸¤Ë»É·ã¤ò¼õ¤±¤Æ +.\" man ページに刺激を受けて .\" .An Jeroen Ruigrok van der Werven .\" .Aq asmodai@FreeBSD.org -.\" ¤¬½ñ¤¤¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +.\" が書いた。 +.SH 関連項目 .BR as (1), .BR gdb (1), .BR ld (1), diff --git a/release/man5/filesystems.5 b/release/man5/filesystems.5 index 57f32543..ff7c592a 100644 --- a/release/man5/filesystems.5 +++ b/release/man5/filesystems.5 @@ -30,173 +30,173 @@ .\" by Yuichi SATO .\" Updated Fri Dec 21 JST 2001 by Kentaro Shirakata .\" -.\"WORD: extended file system ³ÈÄ¥¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -.\"WORD: second extended file system ÂèÆó³ÈÄ¥¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -.\"WORD: RAM disk RAM¥Ç¥£¥¹¥¯ -.\"WORD: High Sierra ¥Ï¥¤¥·¥§¥é -.\"WORD: Rock Ridge ¥í¥Ã¥¯¥ê¥Ã¥¸ +.\"WORD: extended file system 拡張ファイルシステム +.\"WORD: second extended file system 第二拡張ファイルシステム +.\"WORD: RAM disk RAMディスク +.\"WORD: High Sierra ハイシェラ +.\"WORD: Rock Ridge ロックリッジ .\" .TH FILESYSTEMS 5 2007-12-14 "Linux" "Linux Programmer's Manual" .nh -.SH ̾Á° -filesystems \- Linux ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à: minix, ext, ext2, ext3, Reiserfs, +.SH 名前 +filesystems \- Linux のファイルシステム: minix, ext, ext2, ext3, Reiserfs, XFS, JFS, xia, msdos, umsdos, vfat, proc, nfs, iso9660, hpfs, sysv, smb, ncpfs -.SH ÀâÌÀ +.SH 説明 .B proc -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬´·½¬¤É¤ª¤ê¤Ë +ファイルシステムが慣習どおりに .I /proc -¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¸½ºß¤Î¥«¡¼¥Í¥ë¤¬¤É¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤« -ÃΤ뤿¤á¤Ë¤Ï¥Õ¥¡¥¤¥ë +にマウントされている場合、 +現在のカーネルがどのファイルシステムをサポートしているか +知るためにはファイル .I /proc/filesystems -¤ò¸«¤ì¤Ð¤è¤¤¡£ -ɬÍפʥե¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¸½ºß¤Î¥«¡¼¥Í¥ë¤Ë¥µ¥Ý¡¼¥È¤µ¤ì¤Æ -¤¤¤Ê¤¤¾ì¹ç¡¢Å¬Àڤʥ⥸¥å¡¼¥ë¤òÁȤ߹þ¤à¤«¡¢¤½¤ì¤â¤À¤á¤Ê¤é¤Ð -¥«¡¼¥Í¥ë¤òºÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¡£ +を見ればよい。 +必要なファイルシステムが現在のカーネルにサポートされて +いない場合、適切なモジュールを組み込むか、それもだめならば +カーネルを再コンパイルすること。 -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò»È¤¦¤¿¤á¤Ë¤Ï¡¢ -.I ¥Þ¥¦¥ó¥È -¤¹¤ëɬÍפ¬¤¢¤ë¡£ +ファイルシステムを使うためには、 +.I マウント +する必要がある。 .BR mount (8) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 -°Ê²¼¤ÏÍøÍѲÄǽ¤Ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¤¦¤Á¡¢¤¤¤¯¤Ä¤«¤Î´Êñ¤ÊÀâÌÀ¤Ç¤¢¤ë¡£ +以下は利用可能なファイルシステムのうち、いくつかの簡単な説明である。 .TP 10 .B "minix" -Minix ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¡£ -Linux ¤ÇÆ°¤¤¤¿ºÇ½é¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤â¤¢¤ë¡£¤³¤ì¤Ë¤Ï¤¤¤¯¤Ä¤«·çÅÀ¤¬¤¢¤ë¡£ -¤Þ¤º¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¥µ¥¤¥º¤¬ºÇÂç 64MB ¤Ç¤¢¤ë¤³¤È¡£Â¾¤Ë¤â¡¢Ã»¤¤¥Õ¥¡¥¤¥ë̾ -¤·¤«»È¤¨¤Ê¤¤¡¢¥¿¥¤¥à¥¹¥¿¥ó¥×¤¬°ì¤Ä¤À¤±¤Ç¤¢¤ë¡¢¤Ê¤É¤Ê¤É¡£ -¥Õ¥í¥Ã¥Ô¡¼¤ä RAM ¥Ç¥£¥¹¥¯¤ËÊØÍø¤Ê¤Î¤Ç¤Þ¤À»Ä¤Ã¤Æ¤¤¤ë¡£ +Minix オペレーティングシステムのファイルシステム。 +Linux で動いた最初のファイルシステムでもある。これにはいくつか欠点がある。 +まず、パーティションのサイズが最大 64MB であること。他にも、短いファイル名 +しか使えない、タイムスタンプが一つだけである、などなど。 +フロッピーや RAM ディスクに便利なのでまだ残っている。 .TP .B ext .B minix -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¼ê¤Î¹þ¤ó¤À³ÈÄ¥¤Ç¤¢¤ë¡£¤³¤ì¤ÏÂèÆó³ÈÄ¥¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à +ファイルシステムの手の込んだ拡張である。これは第二拡張ファイルシステム (second extended file system : .BR ext2 ) -¤Ë´°Á´¤Ë¤È¤Ã¤ÆÂå¤ï¤é¤ì¡¢¥«¡¼¥Í¥ë 2.1.21 ¤Ç¼è¤ê½ü¤«¤ì¤¿¡£ +に完全にとって代わられ、カーネル 2.1.21 で取り除かれた。 .TP .B ext2 -Linux ¤Î¹âÀ­Ç½¤Ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£¤³¤ì¤Ï¸ÇÄê¥Ç¥£¥¹¥¯¤À¤±¤Ç¤Ï¤Ê¤¯ -¥ê¥à¡¼¥Ð¥Ö¥ë¥Ç¥£¥¹¥¯¤Ë¤â¤è¤¯»È¤ï¤ì¤ë¡£ -³ÈÄ¥¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à +Linux の高性能なファイルシステムである。これは固定ディスクだけではなく +リムーバブルディスクにもよく使われる。 +拡張ファイルシステム .RB ( ext ) -¤ÎȯŸ¤È¤·¤ÆÂèÆó³ÈÄ¥¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à +の発展として第二拡張ファイルシステム .RB ( ext2 ) -¤¬À߷פµ¤ì¤¿¡£¤³¤Î +が設計された。この .B ext2 -¤Ï Linux ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÃæ¤Ç (¥¹¥Ô¡¼¥É¤ª¤è¤Ó CPU ¤Î»ÈÍÑÎ̤ÎÌ̤Ç) ºÇ¤â -¤è¤¤¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤òȯ´ø¤¹¤ë¡£ +は Linux のファイルシステムの中で (スピードおよび CPU の使用量の面で) 最も +よいパフォーマンスを発揮する。 .TP .B ext3 -ext2 ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¥¸¥ã¡¼¥Ê¥ëµ¡Ç½¤ò¤Ä¤±¤¿¤â¤Î¤Ç¤¢¤ë¡£ -ext2 ¤È ext3 ¤Ï´Êñ¤Ë¹Ô¤­¤ÄÌá¤ê¤Ä¤Ç¤­¤ë¡£ +ext2 ファイルシステムにジャーナル機能をつけたものである。 +ext2 と ext3 は簡単に行きつ戻りつできる。 .TP .B Reiserfs -Hans Reiser ¤Ë¤è¤Ã¤ÆÀ߷פµ¤ì¤¿¥¸¥ã¡¼¥Ê¥ê¥ó¥°¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë 2.4.1 ¤Ç Linux ¤ËÅý¹ç¤µ¤ì¤¿¡£ +Hans Reiser によって設計されたジャーナリングファイルシステムである。 +カーネル 2.4.1 で Linux に統合された。 .TP .B XFS -SGI ¤Ë¤è¤ê³«È¯¤µ¤ì¤¿¥¸¥ã¡¼¥Ê¥ê¥ó¥°¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë 2.4.20 ¤Ç Linux ¤ËÅý¹ç¤µ¤ì¤¿¡£ +SGI により開発されたジャーナリングファイルシステムである。 +カーネル 2.4.20 で Linux に統合された。 .TP .B JFS -IBM ¤Ë¤è¤ê³«È¯¤µ¤ì¤¿¥¸¥ã¡¼¥Ê¥ê¥ó¥°¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë 2.4.24 ¤Ç Linux ¤ËÅý¹ç¤µ¤ì¤¿¡£ +IBM により開発されたジャーナリングファイルシステムである。 +カーネル 2.4.24 で Linux に統合された。 .TP .B xiafs -¤Ï Minix ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î³ÈÄ¥¤Ç¡¢¤è¤ê°ÂÄꤷ°ÂÁ´¤Ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤È¤·¤Æ -À߷ס¢¼ÂÁõ¤µ¤ì¤¿¡£¤³¤ì¤Ï¡¢¤¤¤é¤Ê¤¤Ê£»¨¤µ¤ÏÈò¤±¤Ä¤ÄɬÍפʴðËÜŪµ¡Ç½¤ò -È÷¤¨¤Æ¤¤¤ë¡£ +は Minix ファイルシステムの拡張で、より安定し安全なファイルシステムとして +設計、実装された。これは、いらない複雑さは避けつつ必要な基本的機能を +備えている。 .B xia -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï¡¢¤â¤Ï¤ä³«È¯¤â¥á¥ó¥Æ¥Ê¥ó¥¹¤â¹Ô¤ï¤ì¤Æ¤¤¤Ê¤¤¡£ -¥«¡¼¥Í¥ë 2.1.21 ¤Ç¼è¤ê½ü¤«¤ì¤¿¡£ +ファイルシステムは、もはや開発もメンテナンスも行われていない。 +カーネル 2.1.21 で取り除かれた。 .TP .B msdos -¤Ï DOS ¤ä Windows¡¢¤¤¤¯¤é¤«¤Î OS/2 ¥³¥ó¥Ô¥å¡¼¥¿¤¬»È¤Ã¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë -¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£ -¤³¤Î +は DOS や Windows、いくらかの OS/2 コンピュータが使っているファイル +システムである。 +この .B msdos -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Ï¡Ö8 ʸ»ú¤Î̾Á°¡Ü¥Ô¥ê¥ª¥É¡Ü3 ʸ»ú¤Î³ÈÄ¥»Ò¡×¤è¤ê -Ť¤¥Õ¥¡¥¤¥ë̾¤Ï¤Ä¤±¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +ファイルシステムでは「8 文字の名前+ピリオド+3 文字の拡張子」より +長いファイル名はつけることができない。 .TP .B umsdos -¤Ï DOS ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò³ÈÄ¥¤·¤¿ Linux ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï DOS ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¤â¤È¤Ç¡¢Ä¹¤¤¥Õ¥¡¥¤¥ë̾¤ä UID/GID¡¢POSIX ·Á¼°¤Î -¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¡¢(¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë¤ä̾Á°ÉÕ¤­¥Ñ¥¤¥×¤Ê¤É¤Î) Æüì¥Õ¥¡¥¤¥ë¤ò -»È¤¨¤ë¤è¤¦¤Ë¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£DOS ¤È¤Î¸ß´¹À­¤¬¤¢¤ë¡£ +は DOS ファイルシステムを拡張した Linux のファイルシステムである。 +これは DOS ファイルシステムのもとで、長いファイル名や UID/GID、POSIX 形式の +パーミッション、(デバイスファイルや名前付きパイプなどの) 特殊ファイルを +使えるようにしたものである。DOS との互換性がある。 .TP .B vfat -¤Ï Microsoft Windows95 ¤È Windows NT ¤¬»È¤¦ DOS ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î³ÈÄ¥¤Ç¤¢¤ë¡£ -Ť¤¥Õ¥¡¥¤¥ë̾¤¬»È¤¨¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +は Microsoft Windows95 と Windows NT が使う DOS ファイルシステムの拡張である。 +長いファイル名が使えるようになっている。 .TP .B proc -¤Ï¥«¡¼¥Í¥ë¥Ç¡¼¥¿¹½Â¤¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤È¤Ê¤ëµ¿»÷¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï +はカーネルデータ構造へのインターフェイスとなる疑似ファイルシステムである。 +これは .I /dev/kmem -¤òÆɤó¤Ç²ò¼á¤¹¤ë¤³¤È¤ÎÂå¤ï¤ê¤È¤·¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Õ¥¡¥¤¥ë¤Ï¥Ç¥£¥¹¥¯¥¹¥Ú¡¼¥¹¤ò»ÈÍѤ·¤Ê¤¤¡£ +を読んで解釈することの代わりとして使うことができる。 +このファイルシステムのファイルはディスクスペースを使用しない。 .BR proc (5) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .TP .B iso9660 -¤Ï ISO 9660 ɸ½à¤Ë±è¤Ã¤¿ CD-ROM ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£ +は ISO 9660 標準に沿った CD-ROM のファイルシステムである。 .RS .TP .B "High Sierra" -Linux ¤Ï¥Ï¥¤¥·¥§¥é (High Sierra) ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£¤³¤ì¤Ï ISO 9660 ɸ½à¤¬ -·è¤Þ¤ë¤è¤êÁ°¤Ë»È¤ï¤ì¤Æ¤¤¤¿ CD-ROM ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£Linux ¤Î +Linux はハイシェラ (High Sierra) をサポートしている。これは ISO 9660 標準が +決まるより前に使われていた CD-ROM ファイルシステムである。Linux の .B iso9660 -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥µ¥Ý¡¼¥È¤¬¥Ï¥¤¥·¥§¥é¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¼«Æ°¤Ç -ǧ¼±¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +ファイルシステムサポートがハイシェラファイルシステムを自動で +認識することができる。 .TP .B "Rock Ridge" -Linux ¤Ï¥í¥Ã¥¯¥ê¥Ã¥¸ (Rock Ridge) ÊÑ´¹¥×¥í¥È¥³¥ë¤Çµ¬Äꤵ¤ì¤¿ -¥·¥¹¥Æ¥à»ÈÍѶ¦Í­¥×¥í¥È¥³¥ë¤â¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£¤³¤ì¤Ï UNIX ¥Û -¥¹¥È¤Î¥Õ¥¡¥¤¥ë¤ò +Linux はロックリッジ (Rock Ridge) 変換プロトコルで規定された +システム使用共有プロトコルもサポートしている。これは UNIX ホ +ストのファイルを .B iso9660 -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤è¤ê¾Ü¤·¤¯µ­½Ò¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¡¢ -Ť¤¥Õ¥¡¥¤¥ë̾¤ä UID/GID¡¢POSIX ·Á¼°¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¡¢¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë -¤Ê¤É¤Î¾ðÊó¤òÄ󶡤¹¤ë¡£Linux ¤Î +ファイルシステムでより詳しく記述するために使用され、 +長いファイル名や UID/GID、POSIX 形式のパーミッション、デバイスファイル +などの情報を提供する。Linux の .B iso9660 -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥µ¥Ý¡¼¥È¤¬¥í¥Ã¥¯¥ê¥Ã¥¸¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¼«Æ°¤Ç -ǧ¼±¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +ファイルシステムサポートがロックリッジファイルシステムを自動で +認識することができる。 .RE .TP .B hpfs -¤Ï OS/2 ¤Ç»È¤ï¤ì¤ë¹âÀ­Ç½¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à(High Performance Filesystem)¤Ç¤¢¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï¥É¥­¥å¥á¥ó¥È¤¬Æþ¼ê¤Ç¤­¤Ê¤¤¤¿¤á¡¢ -Linux ¤Ç¤ÏÆɤ߹þ¤ßÀìÍÑ (Read-only) ¤Ç¤·¤«»ÈÍѤǤ­¤Ê¤¤¡£ +は OS/2 で使われる高性能ファイルシステム(High Performance Filesystem)である。 +このファイルシステムはドキュメントが入手できないため、 +Linux では読み込み専用 (Read-only) でしか使用できない。 .TP .B sysv -¤Ï SystemV/Coherent ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î Linux ¤Ç¤Î¼ÂÁõ¤Ç¤¢¤ë¡£ -Xenix, SystemV/386, Coherent ³Æ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +は SystemV/Coherent ファイルシステムの Linux での実装である。 +Xenix, SystemV/386, Coherent 各ファイルシステムを使うことができる。 .TP .B nfs -¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£ -Î¥¤ì¤¿¥³¥ó¥Ô¥å¡¼¥¿¤Î¥Ç¥£¥¹¥¯¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +はネットワークファイルシステムである。 +離れたコンピュータのディスクを使うことができる。 .TP .B smb -¤Ï SMB ¥×¥í¥È¥³¥ë¤ò¥µ¥Ý¡¼¥È¤·¤¿¥Í¥Ã¥È¥ï¡¼¥¯¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£ -Windows for Workgroups, Windows NT, Lan Manager ¤¬»È¤Ã¤Æ¤¤¤ë¡£ +は SMB プロトコルをサポートしたネットワークファイルシステムである。 +Windows for Workgroups, Windows NT, Lan Manager が使っている。 .sp .B smb -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò»È¤¦¤¿¤á¤Ë¤Ï ksmbfs ¥Ñ¥Ã¥±¡¼¥¸¤Ë´Þ¤Þ¤ì¤ë -Æüì¤Ê¥Þ¥¦¥ó¥È¥×¥í¥°¥é¥à¤¬É¬ÍפǤ¢¤ë¡£ -ksmbfs ¤Ï +ファイルシステムを使うためには ksmbfs パッケージに含まれる +特殊なマウントプログラムが必要である。 +ksmbfs は .I ftp://sunsite.unc.edu/pub/Linux/system/Filesystems/smbfs -¤Ë¤¢¤ë¡£ +にある。 .TP .B ncpfs -¤Ï NCP ¥×¥í¥È¥³¥ë¤ò¥µ¥Ý¡¼¥È¤·¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£Novell NetWare ¤¬ -»È¤Ã¤Æ¤¤¤ë¡£ +は NCP プロトコルをサポートしたファイルシステムである。Novell NetWare が +使っている。 .sp .B ncpfs -¤ò»È¤¦¤¿¤á¤Ë¤Ï +を使うためには .I ftp://linux01.gwdg.de/pub/ncpfs -¤Ë¤¢¤ëÆüì¤Ê¥×¥í¥°¥é¥à¤¬É¬ÍפǤ¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +にある特殊なプログラムが必要である。 +.SH 関連項目 .BR proc (5), .BR fsck (8), .BR mkfs (8), diff --git a/release/man5/ftpusers.5 b/release/man5/ftpusers.5 index f1fd6125..ded173b4 100644 --- a/release/man5/ftpusers.5 +++ b/release/man5/ftpusers.5 @@ -19,34 +19,34 @@ .\" Translated Fri 16 Feb 2001 by NAKANO Takeo .\" .TH FTPUSERS 5 2000-08-27 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -ftpusers \- FTP ¥Ç¡¼¥â¥ó·Ðͳ¤Ç¤Î¥í¥°¥¤¥ó¤òµö¤µ¤Ê¤¤¥æ¡¼¥¶¡¼¤Î¥ê¥¹¥È -.SH ÀâÌÀ +.SH 名前 +ftpusers \- FTP デーモン経由でのログインを許さないユーザーのリスト +.SH 説明 .B ftpusers -¤Ï¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Ç¡¢File Transfer Protocol (FTP) ¥µ¡¼¥Ð¡¼¥Ç¡¼¥â¥ó -¤òÍøÍѤ·¤Æ¤Î¥í¥°¥¤¥ó¤òµö¤µ¤Ê¤¤¥æ¡¼¥¶¡¼¤ò¥ê¥¹¥È¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ïñ¤Ë¥·¥¹¥Æ¥à´ÉÍý¤Î¤¿¤á¤À¤±¤Ç¤Ê¤¯¡¢ -TCP/IP ¥Í¥Ã¥È¥ï¡¼¥¯´Ä¶­¤Ç¤Î¥»¥­¥å¥ê¥Æ¥£¤ò¸þ¾å¤µ¤»¤ë¤Î¤Ë¤âÍøÍѤǤ­¤ë¡£ -Ä̾ï¤Ï¡¢ftp ¤òÍѤ¤¤¿ºî¶È¤ò¹Ô¤ï¤Ê¤¤¥æ¡¼¥¶¡¼¤ä¡¢ -FTP ¥µ¡¼¥Ð¡¼¥Ç¡¼¥â¥ó·Ðͳ¤Ç¤Î¥í¥°¥¤¥ó¤òµö¤¹¤Ë¤Ï -¸¢¸Â¤¬Â礭¤¹¤®¤ë¥æ¡¼¥¶¡¼¤ò¥ê¥¹¥È¤·¤Æ¤ª¤¯¡£ -¤³¤Î¤è¤¦¤Ê¥æ¡¼¥¶¡¼¤Ë¤Ï¡¢Î㤨¤Ð root, daemon, bin, uucp, news ¤Ê¤É¤¬´Þ¤Þ¤ì¤ë¡£ -¤ª»È¤¤¤Î FTP ¥µ¡¼¥Ð¡¼¥Ç¡¼¥â¥ó¤¬ +はテキストファイルで、File Transfer Protocol (FTP) サーバーデーモン +を利用してのログインを許さないユーザーをリストしたものである。 +このファイルは単にシステム管理のためだけでなく、 +TCP/IP ネットワーク環境でのセキュリティを向上させるのにも利用できる。 +通常は、ftp を用いた作業を行わないユーザーや、 +FTP サーバーデーモン経由でのログインを許すには +権限が大きすぎるユーザーをリストしておく。 +このようなユーザーには、例えば root, daemon, bin, uucp, news などが含まれる。 +お使いの FTP サーバーデーモンが .B ftpusers -¤òÍѤ¤¤Ê¤¤¾ì¹ç¤Ï¡¢¤½¤Î¥Ç¡¼¥â¥ó¤Î¥É¥­¥å¥á¥ó¥È¤òÆɤó¤Ç¡¢ -ÆÃÄê¤Î¥æ¡¼¥¶¡¼¤Î¥¢¥¯¥»¥¹¤ò¥Ö¥í¥Ã¥¯¤¹¤ë¤ä¤êÊý¤ò³Ø¤ó¤Ç¤ª¤¯¤³¤È¤ò¤¹¤¹¤á¤ë¡£ -Washington University FTP ¥µ¡¼¥Ð¡¼¥Ç¡¼¥â¥ó (wuftpd) ¤È -Professional FTP ¥Ç¡¼¥â¥ó (proftpd) ¤È¤Ï¡¢ +を用いない場合は、そのデーモンのドキュメントを読んで、 +特定のユーザーのアクセスをブロックするやり方を学んでおくことをすすめる。 +Washington University FTP サーバーデーモン (wuftpd) と +Professional FTP デーモン (proftpd) とは、 .B ftpusers -¤òÍøÍѤ¹¤ë¤³¤È¤¬¤ï¤«¤Ã¤Æ¤¤¤ë¡£ -.SS ¥Õ¥©¡¼¥Þ¥Ã¥È +を利用することがわかっている。 +.SS フォーマット .B ftpusers -¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ÏÈó¾ï¤Ëñ½ã¤Ç¤¢¤ê¡¢ -¥¢¥«¥¦¥ó¥È̾ (¤Þ¤¿¤Ï¥æ¡¼¥¶¡¼Ì¾) ¤ò³Æ¹Ô¤Ë½ñ¤¯¤À¤±¤Ç¤¢¤ë¡£ -# ¤Ç»Ï¤Þ¤ë¹Ô¤Ï̵»ë¤µ¤ì¤ë¡£ -.SH ¥Õ¥¡¥¤¥ë +のフォーマットは非常に単純であり、 +アカウント名 (またはユーザー名) を各行に書くだけである。 +# で始まる行は無視される。 +.SH ファイル .I /etc/ftpusers -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR passwd (5), .BR proftpd (8), .BR wuftpd (8) diff --git a/release/man5/group.5 b/release/man5/group.5 index 3a26fffb..e7c4e50a 100644 --- a/release/man5/group.5 +++ b/release/man5/group.5 @@ -29,36 +29,36 @@ .\" Modified 2005-02-20, Akihiro MOTOKI .\" .TH GROUP 5 2009-10-17 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -group \- ¥æ¡¼¥¶¡¼¥°¥ë¡¼¥×¤Î¥Õ¥¡¥¤¥ë -.SH ÀâÌÀ -\fI/etc/group\fP ¤Ï¡¢¤½¤Î¥·¥¹¥Æ¥à¤Î¥°¥ë¡¼¥×¤òÄêµÁ¤¹¤ë¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ -1 ¹Ô¤Ë 1 ¥¨¥ó¥È¥ê¤Ç¡¢³Æ¹Ô¤Î·Á¼°¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¢¤ë¡£ +.SH 名前 +group \- ユーザーグループのファイル +.SH 説明 +\fI/etc/group\fP は、そのシステムのグループを定義するテキストファイルである。 +1 行に 1 エントリで、各行の形式は以下のとおりである。 .sp .RS group_name:password:GID:user_list .RE .sp -¥Õ¥£¡¼¥ë¥É¤ÎÀâÌÀ: +フィールドの説明: .IP group_name -¥°¥ë¡¼¥×¤Î̾Á°¡£ +グループの名前。 .IP password -(°Å¹æ²½¤µ¤ì¤¿) ¥Ñ¥¹¥ï¡¼¥É¡£¤³¤Î¥Õ¥£¡¼¥ë¥É¤¬¶õ¤Ê¤é¥Ñ¥¹¥ï¡¼¥É¤ÏɬÍפʤ¤¡£ +(暗号化された) パスワード。このフィールドが空ならパスワードは必要ない。 .IP GID -¥°¥ë¡¼¥×ID¤Î¿ôÃÍ¡£ +グループIDの数値。 .IP user_list -¤³¤Î¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð¡¼¤Î¥æ¡¼¥¶¡¼Ì¾¤Î¥ê¥¹¥È¡£ -¥æ¡¼¥¶¡¼Ì¾¤Ï¥³¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤ë¡£ -.SH ¥Õ¥¡¥¤¥ë +このグループのメンバーのユーザー名のリスト。 +ユーザー名はコンマで区切られる。 +.SH ファイル /etc/group -.SH ¥Ð¥° -4.2BSD ¤Î +.SH バグ +4.2BSD の .BR initgroups (3) -¤Ë¤Ï¼¡¤Î¤è¤¦¤Ë½ñ¤«¤ì¤Æ¤¤¤ë: -ï¤â +には次のように書かれている: +誰も .I /etc/group -¤òºÇ¿·¤Î¾õÂÖ¤ËÊݤäƤϤ¤¤Ê¤¤¤è¤¦¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を最新の状態に保ってはいないようである。 +.SH 関連項目 .BR login (1), .BR newgrp (1), .BR getgrent (3), diff --git a/release/man5/host.conf.5 b/release/man5/host.conf.5 index e272a620..4c39e1eb 100644 --- a/release/man5/host.conf.5 +++ b/release/man5/host.conf.5 @@ -31,189 +31,189 @@ .\" Updated & Modified Sun Sep 7 17:51:03 JST 2003 .\" by Yuichi SATO .\" -.\"WORD: method Êý¼° -.\"WORD: trim ¼è¤êµî¤ë -.\"WORD: spoofing µ¶Áõ +.\"WORD: method 方式 +.\"WORD: trim 取り去る +.\"WORD: spoofing 偽装 .\" .TH HOST.CONF 5 2003-08-23 "Linux" "Linux System Administration" -.SH ̾Á° -host.conf \- ¥ì¥¾¥ë¥ÐÀßÄê¥Õ¥¡¥¤¥ë -.SH ÀâÌÀ -¥Õ¥¡¥¤¥ë +.SH 名前 +host.conf \- レゾルバ設定ファイル +.SH 説明 +ファイル .I /etc/host.conf -¤Ë¤Ï¡¢¥ì¥¾¥ë¥Ð¥é¥¤¥Ö¥é¥ê¤Î¾ÜºÙ¤ÊÀßÄê¾ðÊ󤬴ޤޤì¤Æ¤¤¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢1 ¹ÔËè¤Ë 1 ¤Ä¤ÎÀßÄꥭ¡¼¥ï¡¼¥É¤È -¤½¤ì¤Ë³¤¯Å¬ÀÚ¤ÊÀßÄê¾ðÊ󤬤ʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -ǧ¼±¤µ¤ì¤ë¥­¡¼¥ï¡¼¥É¤Ï +には、レゾルバライブラリの詳細な設定情報が含まれている。 +このファイルには、1 行毎に 1 つの設定キーワードと +それに続く適切な設定情報がなければならない。 +認識されるキーワードは .IR order ", " trim ", " multi ", " nospoof ", " spoof ", " reorder -¤Ç¤¢¤ë¡£ -³Æ¥­¡¼¥ï¡¼¥É¤ò¡¢°Ê²¼¤ÇÀâÌÀ¤¹¤ë¡£ +である。 +各キーワードを、以下で説明する。 .TP .I order -¤³¤Î¥­¡¼¥ï¡¼¥É¤Ï¡¢¥Û¥¹¥È¤Î¥ë¥Ã¥¯¥¢¥Ã¥×Êý¼°¤ò»ØÄꤹ¤ë¡£ -¤³¤Î¥­¡¼¥ï¡¼¥É¤Î¸å¤Ë¤Ï¡¢¥³¥ó¥Þ¤Çʬ¤±¤¿ -1 ¤Ä°Ê¾å¤Î¥ë¥Ã¥¯¥¢¥Ã¥×Êý¼°¤¬Â³¤«¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -»ÈÍѲÄǽ¤ÊÊý¼°¤Ï +このキーワードは、ホストのルックアップ方式を指定する。 +このキーワードの後には、コンマで分けた +1 つ以上のルックアップ方式が続かなくてはならない。 +使用可能な方式は .IR bind ", " hosts ", " nis -¤Ç¤¢¤ë¡£ +である。 .TP .I trim -¤³¤Î¥­¡¼¥ï¡¼¥É¤Ï¡¢2 ²ó°Ê¾å¥ê¥¹¥È¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -Ëè²ó¡¢¤³¤Î¥­¡¼¥ï¡¼¥É¤Î¸å¤Ë¤Ï¡¢ -¥É¥Ã¥È¤Ç¤Ï¤¸¤Þ¤ë 1 ¤Ä°Ê¾å¤Î¥É¥á¥¤¥ó̾¤Î¥ê¥¹¥È¤ò³¤±¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥É¥á¥¤¥ó̾¤Ï¥³¥í¥ó (\(aq:\(aq)¡¢¥»¥ß¥³¥í¥ó (\(aq;\(aq)¡¢¥³¥ó¥Þ (\(aq,\(aq) -¤Ç¶èÀڤ롣 -¤³¤Î¥­¡¼¥ï¡¼¥É¤¬ÀßÄꤵ¤ì¤ë¤È¡¢resolv+ ¥é¥¤¥Ö¥é¥ê¤Ï DNS ¤Ç¥ì¥¾¥ë¥Ö¤µ¤ì¤¿ -¤¹¤Ù¤Æ¤Î¥Û¥¹¥È̾¤Î¸å¤í¤«¤éÍ¿¤¨¤é¤ì¤¿¥É¥á¥¤¥ó̾¤ò¼«Æ°Åª¤Ë¼è¤êµî¤ë¡£ -¤³¤Î¥­¡¼¥ï¡¼¥É¤Ï¥í¡¼¥«¥ë¤Ê¥Û¥¹¥È¤È¥É¥á¥¤¥ó¤Ç»ÈÍѤ¹¤ë¤³¤È¤ò°Õ¿Þ¤·¤Æ¤¤¤ë¡£ -(´ØÏ¢¤·¤¿Ãí°Õ : NIS ¤Þ¤¿¤Ï hosts ¥Õ¥¡¥¤¥ë¤Ç½¸¤á¤é¤ì¤¿¥Û¥¹¥È̾¤Ë -trim ¤Ï±Æ¶Á¤·¤Ê¤¤¡£ -hosts ¥Õ¥¡¥¤¥ë¤Î³Æ¥¨¥ó¥È¥ê¤ÎºÇ½é¤Î¥Û¥¹¥È̾¤ò¡¢ -´°Á´¤Ê¥É¥á¥¤¥ó̾ÉÕ¤­¤Î¤â¤Î¤Ë¤¹¤ë¤«¤·¤Ê¤¤¤«¤Ï¡¢ -¥Û¥¹¥È¤´¤È¤Î¥¤¥ó¥¹¥È¡¼¥ë¥Ý¥ê¥·¡¼¤Ë¤¢¤ï¤»¤Æ -ŬÀÚ¤ËÁªÂò¤¹¤ëɬÍפ¬¤¢¤ë¡£Ãí°Õ¤¹¤ë¤³¤È¡£) +このキーワードは、2 回以上リストすることができる。 +毎回、このキーワードの後には、 +ドットではじまる 1 つ以上のドメイン名のリストを続けなければならない。 +ドメイン名はコロン (\(aq:\(aq)、セミコロン (\(aq;\(aq)、コンマ (\(aq,\(aq) +で区切る。 +このキーワードが設定されると、resolv+ ライブラリは DNS でレゾルブされた +すべてのホスト名の後ろから与えられたドメイン名を自動的に取り去る。 +このキーワードはローカルなホストとドメインで使用することを意図している。 +(関連した注意 : NIS または hosts ファイルで集められたホスト名に +trim は影響しない。 +hosts ファイルの各エントリの最初のホスト名を、 +完全なドメイン名付きのものにするかしないかは、 +ホストごとのインストールポリシーにあわせて +適切に選択する必要がある。注意すること。) .TP .I multi -Í­¸ú¤ÊÃÍ¤Ï -.IR on " ¤È " off -¤Ç¤¢¤ë¡£ +有効な値は +.IR on " と " off +である。 .I on -¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ºÇ½é¤Î¥¨¥ó¥È¥ê¤Î¤ß¤òÎã³°¤È¤·¤Æ¡¢ -resolv+ ¥é¥¤¥Ö¥é¥ê¤Ï +に設定された場合、最初のエントリのみを例外として、 +resolv+ ライブラリは .I /etc/hosts -¥Õ¥¡¥¤¥ë¤Ë¸½¤ì¤ë¥Û¥¹¥È¤ËÂФ·¤ÆÁ´¤Æ¤ÎÍ­¸ú¤Ê¥¢¥É¥ì¥¹¤òÊÖ¤½¤¦¤È¤¹¤ë¡£ -Â礭¤Ê hosts ¥Õ¥¡¥¤¥ë¤ò»ý¤Ä¥µ¥¤¥È¤Ç¤Ï¡¢ -¤³¤ÎÀßÄê¤ÏÈó¾ï¤ÊÀ­Ç½¤ÎÄã²¼¤ò¾·¤¯¤Î¤Ç¡¢ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï +ファイルに現れるホストに対して全ての有効なアドレスを返そうとする。 +大きな hosts ファイルを持つサイトでは、 +この設定は非常な性能の低下を招くので、 +デフォルトでは .I off -¤Ç¤¢¤ë¡£ +である。 .TP .I nospoof -Í­¸ú¤ÊÃÍ¤Ï -.IR on " ¤È " off -¤Ç¤¢¤ë¡£ +有効な値は +.IR on " と " off +である。 .I on -¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢resolv+ ¥é¥¤¥Ö¥é¥ê¤Ï -.BR rlogin " ¤È " rsh -¤Î¥»¥­¥å¥ê¥Æ¥£¤ò¸þ¾å¤µ¤»¤ë¤¿¤á¥Û¥¹¥È̾¤Îµ¶Áõ¤òËɻߤ·¤è¤¦¤È¤¹¤ë¡£ -¤³¤ì¤Ï¡¢¡Ö¥Û¥¹¥È¥¢¥É¥ì¥¹¤Î¥ë¥Ã¥¯¥¢¥Ã¥×¤ò¹Ô¤Ã¤¿¸å¡¢ -resolv+ ¤Ï¤½¤Î¥¢¥É¥ì¥¹¤ËÂФ·¤Æ¥Û¥¹¥È̾¤Î¥ë¥Ã¥¯¥¢¥Ã¥×¤ò¹Ô¤¤¡¢ -¤â¤· 2 ¤Ä¤Î¥Û¥¹¥È̾¤¬°ìÃפ·¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢¥¯¥¨¥ê¡¼¤Ï¼ºÇÔ¤¹¤ë¡£¡× -¤È¤¤¤¦¤è¤¦¤ËÆ°ºî¤¹¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÃÍ¤Ï +に設定された場合、resolv+ ライブラリは +.BR rlogin " と " rsh +のセキュリティを向上させるためホスト名の偽装を防止しようとする。 +これは、「ホストアドレスのルックアップを行った後、 +resolv+ はそのアドレスに対してホスト名のルックアップを行い、 +もし 2 つのホスト名が一致しなかった場合は、クエリーは失敗する。」 +というように動作する。 +デフォルトの値は .I off -¤Ç¤¢¤ë¡£ +である。 .TP .I spoofalert -Í­¸ú¤ÊÃÍ¤Ï -.IR on " ¤È " off -¤Ç¤¢¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬ +有効な値は +.IR on " と " off +である。 +このオプションが .I on -¤ËÀßÄꤵ¤ì¤Æ¤¤¤Æ¡¢ +に設定されていて、 .I nospoof -¥ª¥×¥·¥ç¥ó¤â (on ¤Ë) ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -resolv+ ¤Ï syslog µ¡Ç½¤òÄ̤¸¤Æ¥¨¥é¡¼¤Ë´Ø¤¹¤ë·Ù¹ð¤Î¥í¥°¤ò¤È¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÃÍ¤Ï +オプションも (on に) 設定されている場合、 +resolv+ は syslog 機能を通じてエラーに関する警告のログをとる。 +デフォルトの値は .I off -¤Ç¤¢¤ë¡£ +である。 .TP .I spoof -Í­¸ú¤ÊÃÍ¤Ï +有効な値は .IR off ", " nowarn ", " warn -¤Ç¤¢¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò +である。 +このオプションを .I off -¤ËÀßÄꤹ¤ë¤È¡¢µ¶Áõ¤µ¤ì¤¿¥¢¥É¥ì¥¹¤òµö²Ä¤·¤Æ¡¢ -syslog µ¡Ç½¤òÄ̤¸¤¿·Ù¹ð¤òȯ¤·¤Ê¤¤¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò +に設定すると、偽装されたアドレスを許可して、 +syslog 機能を通じた警告を発しない。 +このオプションを .I warn -¤ËÀßÄꤹ¤ë¤È¡¢resolv+ ¤Ï¥»¥­¥å¥ê¥Æ¥£¤ò¹â¤á¤ë¤¿¤á¤Ë¥Û¥¹¥È̾¤Îµ¶Áõ¤òËɻߤ·¡¢ -syslog µ¡Ç½¤òÄ̤¸¤Æ¥¨¥é¡¼¤Ë´Ø¤¹¤ë·Ù¹ð¤Î¥í¥°¤ò¤È¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò +に設定すると、resolv+ はセキュリティを高めるためにホスト名の偽装を防止し、 +syslog 機能を通じてエラーに関する警告のログをとる。 +このオプションを .I nowarn -¤ËÀßÄꤹ¤ë¤È¡¢resolv+ ¤Ï¥»¥­¥å¥ê¥Æ¥£¤ò¹â¤á¤ë¤¿¤á¤Ë¥Û¥¹¥È̾¤Îµ¶Áõ¤òËɻߤ¹¤ë¤¬¡¢ -syslog µ¡Ç½¤òÄ̤¸¤¿·Ù¹ð¤Ïȯ¤·¤Ê¤¤¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò²¿¤âÀßÄꤷ¤Ê¤¤¾ì¹ç¤Ï¡¢ +に設定すると、resolv+ はセキュリティを高めるためにホスト名の偽装を防止するが、 +syslog 機能を通じた警告は発しない。 +このオプションを何も設定しない場合は、 .I nowarn -¤òÀßÄꤷ¤¿¤Î¤ÈƱ¤¸¤Ë¤Ê¤ë¡£ +を設定したのと同じになる。 .TP .I reorder -Í­¸ú¤ÊÃÍ¤Ï -.IR on " ¤È " off -¤Ç¤¢¤ë¡£ +有効な値は +.IR on " と " off +である。 .I on -¤ËÀßÄꤵ¤ì¤ë¤È¡¢ +に設定されると、 .B gethostbyname (3) -¤¬¼Â¹Ô¤µ¤ì¤ë¤È¤­¡¢resolv+ ¥é¥¤¥Ö¥é¥ê¤Ï¡¢¥í¡¼¥«¥ë¤Ê -(¤Ä¤Þ¤ê¡¢Æ±¤¸¥µ¥Ö¥Í¥Ã¥È¤Ë¤¢¤ë) ¥¢¥É¥ì¥¹¤¬ºÇ½é¤Ë¥ê¥¹¥È¤µ¤ì¤ë¤è¤¦¤Ë -¥Û¥¹¥È¥¢¥É¥ì¥¹¤òʤÙÊѤ¨¤ë¡£ -¤¹¤Ù¤Æ¤Î¥ë¥Ã¥¯¥¢¥Ã¥×Êý¼°¤ËÂФ·¤ÆʤÙÊѤ¨¤¬¹Ô¤ï¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÃͤϡ¢ +が実行されるとき、resolv+ ライブラリは、ローカルな +(つまり、同じサブネットにある) アドレスが最初にリストされるように +ホストアドレスを並べ変える。 +すべてのルックアップ方式に対して並べ変えが行われる。 +デフォルトの値は、 .I off -¤Ç¤¢¤ë¡£ -.SH ´Ä¶­ÊÑ¿ô +である。 +.SH 環境変数 .I /etc/host.conf -¤ÇÀßÄꤵ¤ì¤Æ¤¤¤ëÆ°ºî¤ò¡¢¥æ¡¼¥¶¤¬¾å½ñ¤­¤Ç¤­¤ë 6 ¤Ä¤Î´Ä¶­ÊÑ¿ô¤¬¤¢¤ë¡£ +で設定されている動作を、ユーザが上書きできる 6 つの環境変数がある。 .TP .B RESOLV_HOST_CONF -¤³¤ÎÊÑ¿ô¤òÀßÄꤹ¤ë¤È¡¢ +この変数を設定すると、 .I /etc/host.conf -¤ÎÂå¤ê¤ËÆɤ߹þ¤à¥Õ¥¡¥¤¥ë¤òÀßÄê¤Ç¤­¤ë¡£ +の代りに読み込むファイルを設定できる。 .TP .B RESOLV_SERV_ORDER .I order -¥³¥Þ¥ó¥É¤ò¾å½ñ¤­¤¹¤ë¡£ +コマンドを上書きする。 .TP .B RESOLV_SPOOF_CHECK .I spoof -¥³¥Þ¥ó¥É¤ò²òÀϤ¹¤ë¤Î¤ÈƱ¤¸Êý¼°¤Ç¡¢ +コマンドを解析するのと同じ方式で、 .IR nospoof ", " spoofalert ", " spoof -¥³¥Þ¥ó¥É¤ò¾å½ñ¤­¤Ç¤­¤ë¡£ -Í­¸ú¤ÊÃÍ¤Ï +コマンドを上書きできる。 +有効な値は .IR off ", " nowarn ", " warn -¤Ç¤¢¤ë¡£ +である。 .TP .B RESOLV_MULTI .I multi -¥³¥Þ¥ó¥É¤ò¾å½ñ¤­¤¹¤ë¡£ +コマンドを上書きする。 .TP .B RESOLV_REORDER .I reorder -¥³¥Þ¥ó¥É¤ò¾å½ñ¤­¤¹¤ë¡£ +コマンドを上書きする。 .TP .B RESOLV_ADD_TRIM_DOMAINS -¥³¥í¥ó (\(aq:\(aq)¡¢¥»¥ß¥³¥í¥ó (\(aq;\(aq)¡¢¥³¥ó¥Þ (\(aq,\(aq) ¤Ç¶èÀڤä¿ -¥É¥Ã¥È (\(aq.\(aq) ¤Ç»Ï¤Þ¤ë¥É¥á¥¤¥ó̾¤Î¥ê¥¹¥È¡£ -¥Û¥¹¥È̾¤«¤é¼è¤êµî¤ë¥É¥á¥¤¥ó̾¤Î¥ê¥¹¥È¤ËÄɲ乤롣 +コロン (\(aq:\(aq)、セミコロン (\(aq;\(aq)、コンマ (\(aq,\(aq) で区切った +ドット (\(aq.\(aq) で始まるドメイン名のリスト。 +ホスト名から取り去るドメイン名のリストに追加する。 .TP .B RESOLV_OVERRIDE_TRIM_DOMAINS -¥³¥í¥ó (\(aq:\(aq)¡¢¥»¥ß¥³¥í¥ó (\(aq;\(aq)¡¢¥³¥ó¥Þ (\(aq,\(aq) ¤Ç¶èÀڤä¿ -¥É¥Ã¥È (\(aq.\(aq) ¤Ç»Ï¤Þ¤ë¥É¥á¥¤¥ó̾¤Î¥ê¥¹¥È¡£ -¥Û¥¹¥È̾¤«¤é¼è¤êµî¤ë¥É¥á¥¤¥ó̾¤Î¥ê¥¹¥È¤ò¾å½ñ¤­¤¹¤ë¡£ +コロン (\(aq:\(aq)、セミコロン (\(aq;\(aq)、コンマ (\(aq,\(aq) で区切った +ドット (\(aq.\(aq) で始まるドメイン名のリスト。 +ホスト名から取り去るドメイン名のリストを上書きする。 .I trim -¥³¥Þ¥ó¥É¤ò¾å½ñ¤­¤¹¤ë¡£ -.SH ¥Õ¥¡¥¤¥ë +コマンドを上書きする。 +.SH ファイル .TP .I /etc/host.conf -¥ê¥¾¥ë¥ÐÀßÄê¥Õ¥¡¥¤¥ë +リゾルバ設定ファイル .TP .I /etc/resolv.conf -¥ê¥¾¥ë¥ÐÀßÄê¥Õ¥¡¥¤¥ë +リゾルバ設定ファイル .TP .I /etc/hosts -¥í¡¼¥«¥ë¤Î hosts ¥Ç¡¼¥¿¥Ù¡¼¥¹ -.SH Ãí°Õ -¸µ¡¹¤Î¼ÂÁõ¤ËÈæ¤Ù¤Æ°Ê²¼¤Î¤è¤¦¤Ê°ã¤¤¤¬¤¢¤ë¡£ -¿·¤·¤¤¥³¥Þ¥ó¥É +ローカルの hosts データベース +.SH 注意 +元々の実装に比べて以下のような違いがある。 +新しいコマンド .I spoof -¤È¿·¤·¤¤´Ä¶­ÊÑ¿ô +と新しい環境変数 .B RESOLV_SPOOF_CHECK -¤Ï¡¢°ú¤­¿ô +は、引き数 .IR off ", " nowarn ", " warn -¤ò¤È¤ë¡£ -¥³¥á¥ó¥È¤Ï¹ÔƬ¤À¤±¤Ç¤Ï¤Ê¤¯¡¢¤É¤³¤Ë½ñ¤¤¤Æ¤â¤è¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +をとる。 +コメントは行頭だけではなく、どこに書いてもよい。 +.SH 関連項目 .BR gethostbyname (3), .BR hostname (7), .BR named (8), diff --git a/release/man5/hosts.5 b/release/man5/hosts.5 index 207be0b8..d8137708 100644 --- a/release/man5/hosts.5 +++ b/release/man5/hosts.5 @@ -31,83 +31,83 @@ .\" Updated & Modified Sat Aug 31 05:49:00 JST 2002 by Yuichi SATO .\" .TH HOSTS 5 2002-06-16 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -hosts \- ¥Û¥¹¥È̾¤ÎÀÅŪ¤Ê¥ë¥Ã¥¯¥¢¥Ã¥×¥Æ¡¼¥Ö¥ë -.SH ½ñ¼° +.SH 名前 +hosts \- ホスト名の静的なルックアップテーブル +.SH 書式 .B /etc/hosts -.SH ÀâÌÀ -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï¡¢ +.SH 説明 +このマニュアルページは、 .I /etc/hosts -¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¤Ä¤¤¤Æµ­½Ò¤·¤Æ¤¤¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï´Êñ¤Ê¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Ç¡¢1 ¹Ô¤Ë 1 ¤Ä¤Î IP ¥¢¥É¥ì¥¹¤¬¤¢¤ê¡¢ -IP ¥¢¥É¥ì¥¹¤È¥Û¥¹¥È̾¤ò´ØÏ¢¤Å¤±¤Æ¤¤¤ë¡£ -³Æ¥Û¥¹¥È¤Ë¤Ä¤¤¤Æ¡¢¼¡¤Î¤è¤¦¤Ê¾ðÊó¤¬ 1 ¹Ô¤ÇÍ¿¤¨¤é¤ì¤ë¡£ +ファイルのフォーマットについて記述している。 +このファイルは簡単なテキストファイルで、1 行に 1 つの IP アドレスがあり、 +IP アドレスとホスト名を関連づけている。 +各ホストについて、次のような情報が 1 行で与えられる。 .RS .PP -IP¥¢¥É¥ì¥¹ Àµ¼°¤Ê¥Û¥¹¥È̾ [¥¨¥¤¥ê¥¢¥¹...] +IPアドレス 正式なホスト名 [エイリアス...] .RE .PP -¥¨¥ó¥È¥ê¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢¶õÇò¤Þ¤¿¤Ï¥¿¥Ö (Ê£¿ô¤Ç¤â²Ä) ¤Ç¶èÀÚ¤é¤ì¤ë¡£ -"#" ʸ»ú¤«¤é¹ÔËö¤Þ¤Ç¤Î¥Æ¥­¥¹¥È¤Ï¥³¥á¥ó¥È¤È¤·¤Æ̵»ë¤µ¤ì¤ë¡£ -¥Û¥¹¥È̾¤Ï±Ñ¿ô»ú¡¦¥Þ¥¤¥Ê¥¹µ­¹æ ("\-")¡¦¥Ô¥ê¥ª¥É (".") ¤ò´Þ¤à¤³¤È¤¬¤Ç¤­¤ë¡£ -¥Û¥¹¥È̾¤Ï±Ñʸ»ú (alphabetic character) ¤Ç»Ï¤Þ¤Ã¤Æ¡¢ -±Ñ¿ô»ú (alphanumeric characte) ¤Ç½ª¤ï¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥¨¥¤¥ê¥¢¥¹¤Ï¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ê¡¢Ì¾Á°¤ÎÊѹ¹¡¢Ê̤Υ¹¥Ú¥ë¡¢ -û¤¤¥Û¥¹¥È̾¡¢°ìÈÌŪ¤Ë»È¤ï¤ì¤ë¥Û¥¹¥È̾ (Î㤨¤Ð +エントリのフィールドは、空白またはタブ (複数でも可) で区切られる。 +"#" 文字から行末までのテキストはコメントとして無視される。 +ホスト名は英数字・マイナス記号 ("\-")・ピリオド (".") を含むことができる。 +ホスト名は英文字 (alphabetic character) で始まって、 +英数字 (alphanumeric characte) で終わらなければならない。 +エイリアスはオプションであり、名前の変更、別のスペル、 +短いホスト名、一般的に使われるホスト名 (例えば .IR localhost ) -¤Ê¤É¤Î¤¿¤á¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¡£ +などのために用意されている。 .PP -Berkeley Internet Name Domain (BIND) ¥µ¡¼¥Ð¤Ï¡¢ -UNIX ¥·¥¹¥Æ¥à¤Î¤¿¤á¤Î¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥Í¡¼¥à¥µ¡¼¥Ð¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï¡¢ +Berkeley Internet Name Domain (BIND) サーバは、 +UNIX システムのためのインターネットネームサーバを実装している。 +これは、 .I /etc/hosts -¥Õ¥¡¥¤¥ë¤ä¥Û¥¹¥È̾¥ë¥Ã¥¯¥¢¥Ã¥×¤ò³ÈÄ¥¤·¤¿¤êÃÖ¤­´¹¤¨¤¿¤ê¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤ì¤Ë¤è¤ê³Æ¥Û¥¹¥È¤Ï +ファイルやホスト名ルックアップを拡張したり置き換えたりするものである。 +これにより各ホストは .I /etc/hosts -¤òºÇ¿·¤«¤Ä´°Á´¤ËÊݤ¿¤Ê¤¯¤Æ¤â¤è¤¯¤Ê¤ë¡£ +を最新かつ完全に保たなくてもよくなる。 .PP -¥Û¥¹¥È¥Æ¡¼¥Ö¥ë¤Ï¡¢DNS ¤Ë¤È¤Ã¤ÆÂå¤ï¤é¤ì¤¿¤Ë¤â¤«¤«¤ï¤é¤º¡¢ -¸½ºß¤Î¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¼¡¤Î¤è¤¦¤ÊÍÑÅӤǹ­¤¯»È¤ï¤ì¤Æ¤¤¤ë¡£ +ホストテーブルは、DNS にとって代わられたにもかかわらず、 +現在のシステムにおいて次のような用途で広く使われている。 .TP -.B ¥Ö¡¼¥È»þ -ÂçÉôʬ¤Î¥·¥¹¥Æ¥à¤Ï¡¢¥í¡¼¥«¥ë¥Í¥Ã¥È¥ï¡¼¥¯¤Ë¤ª¤¤¤Æ½ÅÍפʥۥ¹¥È¤Î -̾Á°¤È¥¢¥É¥ì¥¹¤¬´Þ¤Þ¤ì¤¿¾®¤µ¤Ê¥Û¥¹¥È¥Æ¡¼¥Ö¥ë¤ò»ý¤Ã¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï¡¢¥·¥¹¥Æ¥à¤Î¥Ö¡¼¥È»þ¤Ê¤É¤Î DNS ¤¬²ÔƯ¤·¤Æ¤¤¤Ê¤¤¤È¤­¤ËÌòΩ¤Ä¡£ +.B ブート時 +大部分のシステムは、ローカルネットワークにおいて重要なホストの +名前とアドレスが含まれた小さなホストテーブルを持っている。 +これは、システムのブート時などの DNS が稼働していないときに役立つ。 .TP .B NIS -NIS ¤ò»ÈÍѤ·¤Æ¤¤¤ë¥µ¥¤¥È¤Ï¡¢¥Û¥¹¥È¥Æ¡¼¥Ö¥ë¤ò -NIS ¥Û¥¹¥È¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÆþÎϤȤ·¤ÆÍѤ¤¤ë¡£ -NIS ¤ò DNS ¤È¶¦¤Ë»ÈÍѤǤ­¤ë¤Ë¤â¤«¤«¤ï¤é¤º¡¢ -ÂçÉôʬ¤Î NIS ¥µ¥¤¥È¤Ï̤¤À¤Ë¡¢ -Á´¤Æ¤Î¥í¡¼¥«¥ë¥Û¥¹¥È¤Î¥¨¥ó¥È¥ê¤ò¤â¤Ä¥Û¥¹¥È¥Æ¡¼¥Ö¥ë¤ò -¥Ð¥Ã¥¯¥¢¥Ã¥×¤È¤·¤Æ»ÈÍѤ·¤Æ¤¤¤ë¡£ +NIS を使用しているサイトは、ホストテーブルを +NIS ホストデータベースの入力として用いる。 +NIS を DNS と共に使用できるにもかかわらず、 +大部分の NIS サイトは未だに、 +全てのローカルホストのエントリをもつホストテーブルを +バックアップとして使用している。 .TP -.B ³ÖÀ䤵¤ì¤¿¥Î¡¼¥É -¥Í¥Ã¥È¥ï¡¼¥¯¤«¤é³ÖÀ䤵¤ì¤¿Èó¾ï¤Ë¾®¤µ¤Ê¥µ¥¤¥È¤Ï¡¢ -DNS ¤ÎÂå¤ï¤ê¤Ë¥Û¥¹¥È¥Æ¡¼¥Ö¥ë¤ò»ÈÍѤ·¤Æ¤¤¤ë¡£ -¥í¡¼¥«¥ë¾ðÊ󤬵©¤Ë¤·¤«Êѹ¹¤µ¤ì¤º¡¢ -¥Í¥Ã¥È¥ï¡¼¥¯¤¬¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤ÈÀܳ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -DNS ¤Ë¤½¤ì¤Û¤É¤ÎÍøÅÀ¤Ï¤Ê¤¤¡£ -.SH ¥Õ¥¡¥¤¥ë +.B 隔絶されたノード +ネットワークから隔絶された非常に小さなサイトは、 +DNS の代わりにホストテーブルを使用している。 +ローカル情報が稀にしか変更されず、 +ネットワークがインターネットと接続されていない場合、 +DNS にそれほどの利点はない。 +.SH ファイル .I /etc/hosts -.SH Ãí°Õ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ø¤ÎÊѹ¹¤ÏÄ̾魯¤°¤ËÈ¿±Ç¤µ¤ì¤ë¡£Ã¢¤·¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó -¤Ë¤è¤ê¥Õ¥¡¥¤¥ë¤ÎÆâÍƤ¬¥­¥ã¥Ã¥·¥å¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¤³¤Î¸Â¤ê¤Ç¤Ï¤Ê¤¤¡£ -.SS Îò»ËŪ¤Ê·Ð°Þ -¥Û¥¹¥È¥Æ¡¼¥Ö¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¤½¤Î¸åÊѹ¹¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -¸µ¡¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï RFC\ 952 ¤Ë¤Ïµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ +.SH 注意 +このファイルへの変更は通常すぐに反映される。但し、アプリケーション +によりファイルの内容がキャッシュされている場合はこの限りではない。 +.SS 歴史的な経緯 +ホストテーブルのフォーマットはその後変更されているが、 +元々のフォーマットは RFC\ 952 には記載されている。 -DNS ¤ÎÅоì°ÊÁ°¡¢¥Û¥¹¥È¥Æ¡¼¥Ö¥ë¤Ï¡¢¶î¤±½Ð¤·¤¿¤Ð¤«¤ê¤Î¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ë¤ª¤±¤ë -¥Û¥¹¥È̾²ò·è¤ÎÍ£°ì¤ÎÊýË¡¤Ç¤¢¤Ã¤¿¡£ -¼ÂºÝ¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ï Network Information Control Center (NIC) ¤Ë¤è¤Ã¤Æ -´ÉÍý¤µ¤ì¤ë¸ø¼°¥Û¥¹¥È¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤¿¡£ -¤·¤«¤·¡¢Èó¸ø¼°¤Ê¥¨¥¤¥ê¥¢¥¹¤äÉÔÌÀ¤Ê¥Û¥¹¥È¤ò°·¤¨¤ë¤è¤¦¤Ë¡¢ -ºÇ¿·¤ËÊݤĤ¿¤á¤Î¥í¡¼¥«¥ë¤ÊÊѹ¹¤¬ÉÑÈˤËɬÍפȤµ¤ì¤¿¡£ -NIC ¤Ï´û¤Ë hosts.txt ¤ò´ÉÍý¤·¤Æ¤¤¤Ê¤¤¤¬¡¢ -¤³¤ì¤ò½ñ¤¤¤Æ¤¤¤ë (2000 ǯº¢¤Î) »þÅÀ¤ÇÄ´¤Ù¤Æ¤ß¤ë¤È¡¢ -WWW ¾å¤ËÎò»ËŪ¤Ê hosts.txt ¤¬Â¸ºß¤¹¤ë¡£ -92, 94, 95 ǯ¤Î¤â¤Î¤¬¸«¤Ä¤«¤Ã¤¿¡£ -.SH Îã +DNS の登場以前、ホストテーブルは、駆け出したばかりのインターネットにおける +ホスト名解決の唯一の方法であった。 +実際、このファイルは Network Information Control Center (NIC) によって +管理される公式ホストデータベースから作成することができた。 +しかし、非公式なエイリアスや不明なホストを扱えるように、 +最新に保つためのローカルな変更が頻繁に必要とされた。 +NIC は既に hosts.txt を管理していないが、 +これを書いている (2000 年頃の) 時点で調べてみると、 +WWW 上に歴史的な hosts.txt が存在する。 +92, 94, 95 年のものが見つかった。 +.SH 例 .nf 127.0.0.1 localhost 192.168.1.10 foo.mydomain.org foo @@ -115,13 +115,13 @@ WWW 146.82.138.7 master.debian.org master 209.237.226.90 www.opensource.org .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR hostname (1), .BR resolver (3), .BR resolver (5), .BR hostname (7), .BR named (8), Internet RFC\ 952 -.\" .SH Ãø¼Ô -.\" ¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï¡¢Debian GNU/Linux ¥·¥¹¥Æ¥à¤Î¤¿¤á¤Ë -.\" Manoj Srivastava ¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤¿¡£ +.\" .SH 著者 +.\" このマニュアルページは、Debian GNU/Linux システムのために +.\" Manoj Srivastava によって書かれた。 diff --git a/release/man5/hosts.equiv.5 b/release/man5/hosts.equiv.5 index 9ab1895a..62065384 100644 --- a/release/man5/hosts.equiv.5 +++ b/release/man5/hosts.equiv.5 @@ -6,66 +6,66 @@ .\" Modified 2005-02-20, Akihiro MOTOKI .\" .TH HOSTS.EQUIV 5 2003-08-24 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -/etc/hosts.equiv \- ¡Ö¿®Íꤵ¤ì¤¿¡×\fBr\fP ¥³¥Þ¥ó¥É¤Ë¤è¤ë¥·¥¹¥Æ¥à¤Ø¤Î -¥¢¥¯¥»¥¹¤òµö²Ä¤¹¤ë¥Û¥¹¥È¤ª¤è¤Ó¥æ¡¼¥¶¤Î¥ê¥¹¥È -.SH ÀâÌÀ +.SH 名前 +/etc/hosts.equiv \- 「信頼された」\fBr\fP コマンドによるシステムへの +アクセスを許可するホストおよびユーザのリスト +.SH 説明 .B hosts.equiv -¥Õ¥¡¥¤¥ë¤Ï \fBr\fP-¥³¥Þ¥ó¥É +ファイルは \fBr\fP-コマンド .RB ( rlogin ", " rsh ", " rcp -¤Ê¤É) ¤Ë¤è¤ë¥Ñ¥¹¥ï¡¼¥É¤Ê¤·¤Ç¤ÎÍøÍѤò -µö²Ä/µñÈݤ¹¤ë¥Û¥¹¥È/¥æ¡¼¥¶¤òÀßÄꤹ¤ë¡£ +など) によるパスワードなしでの利用を +許可/拒否するホスト/ユーザを設定する。 .PP -¤³¤Î¥Õ¥¡¥¤¥ë¤Ç¤Ï°Ê²¼¤Î½ñ¼°¤òÍѤ¤¤ë¡£ +このファイルでは以下の書式を用いる。 .TP \fI[ + | \- ]\fP \fI[hostname]\fP \fI[username]\fP .PP .I hostname -¤Ï¡¢¥í¡¼¥«¥ë¥Û¥¹¥È¤ÈÏÀÍýŪ¤ËÅù²Á¤Ê¥Û¥¹¥È¤Î̾Á°¤Ç¤¢¤ë¡£ -¤½¤Î¥Û¥¹¥È¤Ë¥í¥°¥¤¥ó¤·¤Æ¤¤¤ë¥æ¡¼¥¶¤Ï¡¢¥Ñ¥¹¥ï¡¼¥É¤Ê¤·¤Ç -¥í¡¼¥«¥ë¥Û¥¹¥È¤ÎƱ¤¸Ì¾Á°¤Î¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¤Ë¥¢¥«¥¦¥ó¥È¤Ç¤­¤ë¡£ +は、ローカルホストと論理的に等価なホストの名前である。 +そのホストにログインしているユーザは、パスワードなしで +ローカルホストの同じ名前のユーザアカウントにアカウントできる。 .I hostname -¤ÎÁ°¤Ë¤Ï¥×¥é¥¹µ­¹æ (+) ¤òÃÖ¤¤¤Æ¤â¤è¤¤¡£¥×¥é¥¹µ­¹æ¤¬Ã±ÆȤÇÃÖ¤«¤ì¤¿¾ì¹ç¤Ï¡¢ -¤³¤Î¥·¥¹¥Æ¥à¤Ø¤Î¥¢¥¯¥»¥¹¤ò¤¢¤é¤æ¤ë¥Û¥¹¥È¤ËÂФ·¤Æµö²Ä¤·¤¿¤³¤È¤Ë¤Ê¤ë¡£ -¥¢¥¯¥»¥¹¤òÌÀ¼¨Åª¤ËµñÈݤ¹¤ë¤Ë¤Ï¡¢ +の前にはプラス記号 (+) を置いてもよい。プラス記号が単独で置かれた場合は、 +このシステムへのアクセスをあらゆるホストに対して許可したことになる。 +アクセスを明示的に拒否するには、 .I hostname -¤ÎÁ°¤Ë¥Þ¥¤¥Ê¥¹µ­¹æ (\-) ¤òÉÕ¤±¤ë¡£¤½¤Î¥Û¥¹¥È¤«¤é¤Î¥æ¡¼¥¶¤Ï -¾ï¤Ë¥Ñ¥¹¥ï¡¼¥É¤òÍ׵ᤵ¤ì¤ë¡£¥»¥­¥å¥ê¥Æ¥£¾å¡¢¥Û¥¹¥È̾¤Ï -û¤¤Ì¾Á°¤Ç¤Ï¤Ê¤¯¾ï¤Ë FQDN ¤ò»È¤Ã¤Æ»ØÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£ +の前にマイナス記号 (\-) を付ける。そのホストからのユーザは +常にパスワードを要求される。セキュリティ上、ホスト名は +短い名前ではなく常に FQDN を使って指定すべきである。 .PP .I username -¥¨¥ó¥È¥ê¤Ï¡¢ÆÃÄê¤Î¥æ¡¼¥¶¤ËÂФ·¤Æ¡¢ (root °Ê³°¤Î) ¤¢¤é¤æ¤ë¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È -¤Ø¤Î¥¢¥¯¥»¥¹¤ò¥Ñ¥¹¥ï¡¼¥É¤Ê¤·¤Çµö²Ä¤¹¤ë¡£¤¹¤Ê¤ï¤Á¡¢¤½¤Î¥æ¡¼¥¶¤ÏƱ¤¸Ì¾Á°¤Î -¥¢¥«¥¦¥ó¥È°Ê³°¤Ë¤â¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ +エントリは、特定のユーザに対して、 (root 以外の) あらゆるユーザアカウント +へのアクセスをパスワードなしで許可する。すなわち、そのユーザは同じ名前の +アカウント以外にもアクセスできる。 .I username -¤ÎÁ°¤Ë¤Ï¥×¥é¥¹µ­¹æ (+) ¤òÃÖ¤¤¤Æ¤â¤è¤¤¡£ -ÆÃÄê¤Î¥æ¡¼¥¶¤«¤é¤Î¥¢¥¯¥»¥¹¤òÌÀ¼¨Åª¤ËµñÈݤ¹¤ë¤Ë¤Ï¡¢ +の前にはプラス記号 (+) を置いてもよい。 +特定のユーザからのアクセスを明示的に拒否するには、 .I username -¤ÎÁ°¤Ë¥Þ¥¤¥Ê¥¹µ­¹æ (\-) ¤òÉÕ¤±¤ë¡£¤³¤¦¤¹¤ë¤È¡¢ -¥Û¥¹¥È¤Î¥¨¥ó¥È¥ê¤¬¤Ê¤ó¤È¸À¤ª¤¦¤È¤â¡¢¤½¤Î¥æ¡¼¥¶¤Ï¿®Íꤵ¤ì¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¡£ +の前にマイナス記号 (\-) を付ける。こうすると、 +ホストのエントリがなんと言おうとも、そのユーザは信頼されないことになる。 .PP -netgroup ¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¡¢¤½¤Î¾ì¹ç¤Ï @ µ­¹æ¤òÁ°¤Ë¤Ä¤±¤ë¡£ +netgroup を指定することもでき、その場合は @ 記号を前につける。 .PP -¥×¥é¥¹µ­¹æ (+) ¤òÍøÍѤ¹¤ëºÝ¤Ë¤Ï¤¯¤ì¤°¤ì¤âÃí°Õ¤¹¤ë¤³¤È¡£ -ñ½ã¤Ê¥ß¥¹¥¿¥¤¥×¤Ç¡¢Ã±ÆȤΥץ饹µ­¹æ¤òÃÖ¤¤¤Æ¤·¤Þ¤¦¤³¤È¤¬¤¢¤ë¡£ -ñÆȤΥץ饹µ­¹æ¤Ï¡Ö¤¹¤Ù¤Æ¤Î¥Û¥¹¥È¡×¤òɽ¤¹¥ï¥¤¥ë¥É¥«¡¼¥É¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦! -.SH ¥Õ¥¡¥¤¥ë +プラス記号 (+) を利用する際にはくれぐれも注意すること。 +単純なミスタイプで、単独のプラス記号を置いてしまうことがある。 +単独のプラス記号は「すべてのホスト」を表すワイルドカードになってしまう! +.SH ファイル .I /etc/hosts.equiv -.SH Ãí°Õ -¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÆâÍƤ¬¸úÎϤò»ý¤Ä¤Î¤Ï¡¢ -¤³¤Î¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤¬ root ¤Ç¡¢ -¤«¤Ä¤½¤ì°Ê³°¤Ë½ñ¤­¹þ¤ß¸¢¸Â¤¬¤Ê¤¤¾ì¹ç¤Ë¸ÂÄꤵ¤ì¤Æ¤¤¤ë¤³¤È¤â¤¢¤ë¡£ -¤Þ¤¿¡¢Èó¾ï¤ËÀ©¸Â¤¬¤­¤Ä¤¤¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¾¤Î -¥Ï¡¼¥É¥ê¥ó¥¯¤¬¤Ê¤¤¤³¤È¤¬Í׵ᤵ¤ì¤ë¾ì¹ç¤â¤¢¤ë¡£ +.SH 注意 +システムによっては、このファイルの内容が効力を持つのは、 +このファイルの所有者が root で、 +かつそれ以外に書き込み権限がない場合に限定されていることもある。 +また、非常に制限がきついシステムでは、このファイルに対する他の +ハードリンクがないことが要求される場合もある。 .PP -ºÇ¶á¤Î¥·¥¹¥Æ¥à¤Ç¤Ï Pluggable Authentication Modules library (PAM) ¤¬ -»È¤ï¤ì¤Æ¤¤¤ë¡£PAM ¤Ç¤Ï¡¢Ã±ÆȤΥץ饹µ­¹æ¤¬¡Ö¤¹¤Ù¤Æ¤Î¥Û¥¹¥È¡×¤òɽ¤¹ -¥ï¥¤¥ë¥É¥«¡¼¥É¤È¤·¤Æ°·¤ï¤ì¤ë¤Î¤Ï¡¢ÆÃÄê¤Î¥µ¡¼¥Ó¥¹ (Î㤨¤Ð +最近のシステムでは Pluggable Authentication Modules library (PAM) が +使われている。PAM では、単独のプラス記号が「すべてのホスト」を表す +ワイルドカードとして扱われるのは、特定のサービス (例えば .BR rlogin ) -ÍѤΠPAM ¥Õ¥¡¥¤¥ë¤Ç auth ¹Ô¤Ë¥­¡¼¥ï¡¼¥É +用の PAM ファイルで auth 行にキーワード .I promiscuous -¤¬Äɲ䵤ì¤Æ¤¤¤ë¾ì¹ç¤Î¤ß¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +が追加されている場合のみである。 +.SH 関連項目 .BR rhosts (5), .BR rlogind (8), .BR rshd (8) diff --git a/release/man5/intro.5 b/release/man5/intro.5 index d9a268e3..6120eb7f 100644 --- a/release/man5/intro.5 +++ b/release/man5/intro.5 @@ -28,14 +28,14 @@ .\" Translated Tue 13 Oct 1998 by NAKANO Takeo .\" .TH INTRO 5 2007-10-23 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -intro \- ¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¾Ò²ð -.SH ÀâÌÀ -¥Þ¥Ë¥å¥¢¥ë¤Î 5 ¾Ï¤Ï¡¢³Æ¼ï¤Î¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¡¢¥×¥í¥È¥³¥ë¡¢ -(¤â¤·¤¢¤ì¤Ð) Âбþ¤¹¤ë C ¤Î¹½Â¤ÂΤˤĤ¤¤Æµ­ºÜ¤·¤Æ¤¤¤ë¡£ -.SH È÷¹Í -.SS Ãø¼Ô¤ÈÃøºî¸¢ -Ãøºî¼Ô¤È¸¢Íø¾ò·ï¤Ë´Ø¤·¤Æ¤Ï¡¢¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¥½¡¼¥¹¤Î¥Ø¥Ã¥À¤ò¸«¤è¡£ -¤³¤ì¤é¤Ï¥Ú¡¼¥¸¤´¤È¤Ë°Û¤Ê¤ë¾ì¹ç¤¬¤¢¤ë¤Î¤ÇÃí°Õ¤¹¤ë¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +.SH 名前 +intro \- ファイルフォーマットの紹介 +.SH 説明 +マニュアルの 5 章は、各種のファイルフォーマット、プロトコル、 +(もしあれば) 対応する C の構造体について記載している。 +.SH 備考 +.SS 著者と著作権 +著作者と権利条件に関しては、マニュアルページのソースのヘッダを見よ。 +これらはページごとに異なる場合があるので注意すること。 +.SH 関連項目 .BR standards (7) diff --git a/release/man5/issue.5 b/release/man5/issue.5 index e41a4127..76006733 100644 --- a/release/man5/issue.5 +++ b/release/man5/issue.5 @@ -30,19 +30,19 @@ .\" Modified Sat 25 Jul 1998 by NAKANO Takeo .\" .TH ISSUE 5 1993-07-24 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -issue \- ¥í¥°¥¤¥óÁ°¤Ëɽ¼¨¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¤È¥·¥¹¥Æ¥à¾ðÊó¤Î¥Õ¥¡¥¤¥ë -.SH ÀâÌÀ -\fI/etc/issue\fP¥Õ¥¡¥¤¥ë¤Ï¡¢¥í¥°¥¤¥ó¥×¥í¥ó¥×¥È¤ËÀè¤À¤Ã¤Æɽ¼¨¤µ¤ì¤ë¡¢ -¥á¥Ã¥»¡¼¥¸¤ä¥·¥¹¥Æ¥à¤Î¾ðÊ󤬽ñ¤«¤ì¤¿¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ -¥·¥¹¥Æ¥à¤ÇºÎÍѤµ¤ì¤Æ¤¤¤ë -.BR getty ·Ï¤Î -¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤Æ¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï \fB@\fP\fIchar\fP ¤ä \fB\e\fP\fIchar\fP ¤Ê¤É¤Î -¥·¡¼¥±¥ó¥¹¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤³¤È¤â¤¢¤ë¡£ -.SH ¥Õ¥¡¥¤¥ë +.SH 名前 +issue \- ログイン前に表示されるメッセージとシステム情報のファイル +.SH 説明 +\fI/etc/issue\fPファイルは、ログインプロンプトに先だって表示される、 +メッセージやシステムの情報が書かれたテキストファイルである。 +システムで採用されている +.BR getty 系の +プログラムによってサポートされている場合、 +このファイルには \fB@\fP\fIchar\fP や \fB\e\fP\fIchar\fP などの +シーケンスが含まれていることもある。 +.SH ファイル /etc/issue -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR motd (5), .BR agetty (8), .BR mingetty (8) diff --git a/release/man5/locale.5 b/release/man5/locale.5 index a8895cbd..437f5376 100644 --- a/release/man5/locale.5 +++ b/release/man5/locale.5 @@ -29,108 +29,108 @@ .\" Updated 2008-08-11, Akihiro MOTOKI, LDP v3.05 .\" .TH LOCALE 5 2008-06-17 "Linux" "Linux User Manual" -.SH ̾Á° -locale \- ¥í¥±¡¼¥ëÄêµÁ¥Õ¥¡¥¤¥ë -.SH ÀâÌÀ -.B "¥í¥±¡¼¥ë (locale)" -ÄêµÁ¥Õ¥¡¥¤¥ë¤Ï +.SH 名前 +locale \- ロケール定義ファイル +.SH 説明 +.B "ロケール (locale)" +定義ファイルは .BR localedef (1) -¥³¥Þ¥ó¥É¤¬¥Ð¥¤¥Ê¥ê¤Î¥í¥±¡¼¥ë¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÊÑ´¹¤¹¤ë¤Î¤Ë -ɬÍפÊÁ´¤Æ¤Î¾ðÊó¤ò´Þ¤ó¤Ç¤¤¤ë¡£ +コマンドがバイナリのロケール・データベースに変換するのに +必要な全ての情報を含んでいる。 -ÄêµÁ¥Õ¥¡¥¤¥ë¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¥»¥¯¥·¥ç¥ó¤«¤é¹½À®¤µ¤ì¤Æ¤ª¤ê¡¢³Æ¥»¥¯¥·¥ç¥ó -¤Ë¤Ï¥í¥±¡¼¥ë¤Î¥«¥Æ¥´¥ê¤¬¾ÜºÙ¤Ëµ­½Ò¤µ¤ì¤ë¡£ +定義ファイルは、いくつかのセクションから構成されており、各セクション +にはロケールのカテゴリが詳細に記述される。 -.SS ʸˡ -¥í¥±¡¼¥ëÄêµÁ¥Õ¥¡¥¤¥ë¤Ï°Ê²¼¤Î¥­¡¼¥ï¡¼¥É¤«¤é¹½À®¤µ¤ì¤ë¥Ø¥Ã¥À¡¼¤Ç»Ï¤Þ¤ë: +.SS 文法 +ロケール定義ファイルは以下のキーワードから構成されるヘッダーで始まる: .TP .I -¥Õ¥¡¥¤¥ë¤Î»Ä¤ê¤ÎÉôʬ¤Ç¥¨¥¹¥±¡¼¥×¡¦¥­¥ã¥é¥¯¥¿¡¼¤È¤·¤Æ»ÈÍѤ¹¤ëʸ»ú¤ò -»ØÄꤹ¤ë¡£¤³¤ì¤ÏÆüì¤Ê°ÕÌ£¤Ë²ò¼á¤µ¤ì¤ëʸ»ú¤ò¥¨¥¹¥±¡¼¥×¤¹¤ë¤Î¤Ë»ÈÍѤ¹¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å (\\) ¤Ç¤¢¤ë¡£ +ファイルの残りの部分でエスケープ・キャラクターとして使用する文字を +指定する。これは特殊な意味に解釈される文字をエスケープするのに使用する。 +デフォルトはバックスラッシュ (\\) である。 .TP .I -¥Õ¥¡¥¤¥ë¤Î»Ä¤ê¤ÎÉôʬ¤Ç¥³¥á¥ó¥È¡¦¥­¥ã¥é¥¯¥¿¡¼¤È¤·¤Æ»ÈÍѤ¹¤ëʸ»ú -¤ò»ØÄꤹ¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥·¥ã¡¼¥× (#) ¤Ç¤¢¤ë¡£ +ファイルの残りの部分でコメント・キャラクターとして使用する文字 +を指定する。デフォルトではシャープ (#) である。 .PP -¥í¥±¡¼¥ë¤ÎÄêµÁ¤Ï¥í¥±¡¼¥ë¤Î¥«¥Æ¥´¥êËè¤ÎÄêµÁ¤ò¹Ô¤¦Éôʬ¤«¤é¹½À®¤µ¤ì¤ë¡£ -³ÆÉôʬ¤Ï¡¢ÄêµÁºÑ¤ß¤Î¾¤Î¥í¥±¡¼¥ë¤Î¥³¥Ô¡¼¤ò¸µ¤ËÄêµÁ¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¤·¡¢ -ºÇ½é¤«¤éÄêµÁ¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£¥«¥Æ¥´¥ê¤ò¥³¥Ô¡¼¤¹¤ë¾ì¹ç¡¢ÄêµÁ¤ÎÃæ¤Ë +ロケールの定義はロケールのカテゴリ毎の定義を行う部分から構成される。 +各部分は、定義済みの他のロケールのコピーを元に定義することもできるし、 +最初から定義することもできる。カテゴリをコピーする場合、定義の中に .B copy -¤È¤¤¤¦¥­¡¼¥ï¡¼¥É¤Ë³¤±¤Æ¥³¥Ô¡¼¤¹¤ë¥í¥±¡¼¥ë¤Î̾Á°¤ò½ñ¤¯¡£ +というキーワードに続けてコピーするロケールの名前を書く。 .\" FIXME glibc 2.2.2 added new nonstandard locale categories: .\" LC_ADDRESS, LC_IDENTIFICATION, LC_MEASUREMENT, LC_NAME, .\" LC_PAPER, LC_TELEPHONE. .SS LC_CTYPE .B LC_CTYPE -¥«¥Æ¥´¥ê¤ÎÄêµÁ¤ÏºÇ½é¤Î¥«¥é¥à¤Ë +カテゴリの定義は最初のカラムに .I LC_CTYPE -¤È¤¤¤¦Ê¸»úÎó¤òÃÖ¤¯¤³¤È¤Ç»Ï¤á¤ë¡£ +という文字列を置くことで始める。 -¤³¤³¤Ç¤Ï°Ê²¼¤Î¥­¡¼¥ï¡¼¥É¤¬»ÈÍѤǤ­¤ë: +ここでは以下のキーワードが使用できる: .TP .I upper -Âçʸ»ú (uppercase letter) ¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£ +大文字 (uppercase letter) のリストを指定する。 .B A -¤«¤é +から .B Z -¤Þ¤Ç¤Îʸ»ú¤Ï¼«Æ°Åª¤Ë´Þ¤Þ¤ì¤ë¡£ +までの文字は自動的に含まれる。 .BR cntrl , .BR digit , .BR punct , .B space -¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +に指定された文字を指定することはできない。 .TP .I lower -¾®Ê¸»ú (lowercase letter) ¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£ +小文字 (lowercase letter) のリストを指定する。 .B a -¤«¤é +から .B z -¤Þ¤Ç¤Îʸ»ú¤Ï¼«Æ°Åª¤Ë´Þ¤Þ¤ì¤ë¡£ +までの文字は自動的に含まれる。 .BR cntrl , .BR digit , .BR punct , .B space -¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +に指定された文字を指定することはできない。 .TP .I alpha -¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Îʸ»ú¤ò»ØÄꤹ¤ë¡£ +アルファベットの文字を指定する。 .B upper -¤È +と .B lower -¤ò»ØÄꤷ¤¿Á´¤Æ¤Îʸ»ú¤Ï¼«Æ°Åª¤Ë´Þ¤Þ¤ì¤ë¡£ +を指定した全ての文字は自動的に含まれる。 .BR cntrl , .BR digit , .BR punct , .B space -¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +に指定された文字を指定することはできない。 .TP .I digit -¿ô»ú¤È¤·¤Æ»ÈÍѤµ¤ì¤ëʸ»ú¤ò»ØÄꤹ¤ë¡£¿ô»ú¤È¤·¤Æ¤Ï +数字として使用される文字を指定する。数字としては .B 0 -¤«¤é +から .B 9 -¤Î¤ß¤¬»ÈÍѤǤ­¤ë¡£¤³¤ì¤é¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +のみが使用できる。これらはデフォルトで含まれている。 .TP .I space -¶õÇò¤È¤·¤Æ»ÈÍѤ¹¤ëʸ»ú¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£ +空白として使用する文字のリストを指定する。 .BR upper , .BR lower , .BR alpha , .BR digit , .BR graph , .B xdigit -¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +に指定された文字を指定することはできない。 .BR , .BR , .BR , .BR , .BR , .B -¤Ï¼«Æ°Åª¤Ë´Þ¤Þ¤ì¤ë¡£ +は自動的に含まれる。 .TP .I cntrl -¥³¥ó¥È¥í¡¼¥ë¡¦¥­¥ã¥é¥¯¥¿¡¼¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£ +コントロール・キャラクターのリストを指定する。 .BR upper , .BR lower , .BR alpha , @@ -139,10 +139,10 @@ locale \- .BR graph , .BR print , .B xdigit -¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +に指定された文字を指定することはできない。 .TP .I punct -¶çÆÉÅÀʸ»ú¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£ +句読点文字のリストを指定する。 .BR upper , .BR lower , .BR alpha , @@ -150,25 +150,25 @@ locale \- .BR cntrl , .BR xdigit , .B -¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +に指定された文字を指定することはできない。 .TP .I graph -ɽ¼¨²Äǽʸ»ú¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë¤¬¡¢ +表示可能文字のリストを指定するが、 .B -ʸ»ú¤Ï´Þ¤Þ¤Ê¤¤¡£ +文字は含まない。 .BR upper , .BR lower , .BR alpha , .BR digit , .BR xdigit , .B punct -¤ò»ØÄꤷ¤¿Ê¸»ú¤Ï¼«Æ°Åª¤Ë´Þ¤Þ¤ì¤ë¡£ +を指定した文字は自動的に含まれる。 .B cntrl -¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +に指定された文字を指定することはできない。 .TP .I print .B -ʸ»ú¤ò´Þ¤á¤¿É½¼¨²Äǽʸ»ú¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£ +文字を含めた表示可能文字のリストを指定する。 .BR upper , .BR lower , .BR alpha , @@ -176,389 +176,389 @@ locale \- .BR xdigit , .BR punct , .B -¤Ë»ØÄꤷ¤¿Ê¸»ú¤Ï¼«Æ°Åª¤Ë´Þ¤Þ¤ì¤ë¡£ +に指定した文字は自動的に含まれる。 .B cntrl -¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +に指定された文字を指定することはできない。 .TP .I xdigit -16 ¿Ê¿ô¤È¤·¤Æ»ÈÍѤ¹¤ëʸ»ú¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£10 ¿Ê¤Î¿ô»ú¤Ë²Ã¤¨¤Æ¡¢ -6 ʸ»ú¤ò¾º½ç¤Ç³¤±¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï°Ê²¼¤Îʸ»ú¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë: +16 進数として使用する文字のリストを指定する。10 進の数字に加えて、 +6 文字を昇順で続ける。デフォルトでは以下の文字が含まれている: .B 0 -¤«¤é -.BR 9 ¡¢ +から +.BR 9 、 .B a -¤«¤é -.BR f ¡¢ +から +.BR f 、 .B A -¤«¤é -.BR F ¡£ +から +.BR F 。 .TP .I blank -.B "̵ÃÏ (blank)" -¤ËʬÎव¤ì¤ëʸ»ú¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£ +.B "無地 (blank)" +に分類される文字のリストを指定する。 .B -¤È +と .B -¤Ï¼«Æ°Åª¤Ë´Þ¤Þ¤ì¤ë¡£ +は自動的に含まれる。 .TP .I toupper -¾®Ê¸»ú¤«¤éÂçʸ»ú¤Ø¤ÎÂбþ¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£³ÆÂбþ¤Ï¾®Ê¸»ú¤ÈÂçʸ»ú¤Î¥Ú¥¢¤ò +小文字から大文字への対応リストを指定する。各対応は小文字と大文字のペアを .B , -¤Ç¶èÀڤäƳç¸Ì¤Ç³ç¤Ã¤Æ»ØÄꤹ¤ë¡£ -¥ê¥¹¥È¤Î³Æ¥á¥ó¥Ð¡¼¤Ï¥»¥ß¥³¥í¥ó¤Ç¶èÀڤ롣 +で区切って括弧で括って指定する。 +リストの各メンバーはセミコロンで区切る。 .TP .I tolower -Âçʸ»ú¤«¤é¾®Ê¸»ú¤Ø¤ÎÂбþ¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£tolower ¤È¤¤¤¦ -¥­¡¼¥ï¡¼¥É¤¬Ìµ¤¤¾ì¹ç¤Ë¤Ï toupper ¤òµÕ¤Ë¤·¤¿¤â¤Î¤¬»ÈÍѤµ¤ì¤ë¡£ +大文字から小文字への対応リストを指定する。tolower という +キーワードが無い場合には toupper を逆にしたものが使用される。 .PP .B LC_CTYPE -¤ÎÄêµÁ¤Ï +の定義は .I "END LC_CYTPE" -¤È¤¤¤¦Ê¸»úÎó¤Ç½ªÎ»¤¹¤ë¡£ +という文字列で終了する。 .SS LC_COLLATE .B LC_COLLATE -¥«¥Æ¥´¥ê¤ÏÀ°Îó½ç½ø¤òÄêµÁ¤·¤Æ¤¤¤ë¡£libc ¤Ë¤è¤ëÀ©¸Â¤Î¤¿¤á -POSIX ¥ª¥×¥·¥ç¥ó¤ÎÁ´¤Æ¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ +カテゴリは整列順序を定義している。libc による制限のため +POSIX オプションの全てが実装されているわけではない。 -¤³¤Î¥«¥Æ¥´¥ê¤ÎÄêµÁ¤ÏºÇ½é¤Î¥«¥é¥à¤Ë +このカテゴリの定義は最初のカラムに .B LC_COLLATE -¤òÃÖ¤¯¤³¤È¤Ç»Ï¤á¤ë¡£ +を置くことで始める。 -¤³¤³¤Ç¤Ï°Ê²¼¤Î¥­¡¼¥ï¡¼¥É¤¬»ÈÍѤǤ­¤ë: +ここでは以下のキーワードが使用できる: .TP .I collating-element .TP .I collating-symbol .PP -½ç½ø¤ÎÄêµÁ¤Ï°Ê²¼¤Î¹Ô¤Ç»Ï¤á¤ë: +順序の定義は以下の行で始める: .TP .I order_start .PP -¤³¤ì¤Ë +これに .BR forward , .BR backward , .B position -¤Î¤¤¤º¤ì¤«¤Î¥­¡¼¥ï¡¼¥É¤¬Â³¤¯¡£ -½ç½ø¤òµ­½Ò¤¹¤ë¹Ô¤¬Â³¤­¡¢°Ê²¼¤Î¥­¡¼¥ï¡¼¥É¤Ç½ª¤ë: +のいずれかのキーワードが続く。 +順序を記述する行が続き、以下のキーワードで終る: .TP .I order_end .PP -¤è¤ê¾Ü¤·¤¯¤Ï +より詳しくは .I /usr/lib/nls/src -¤Ë¤¢¤ë¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤ò»²¾È¤Î¤³¤È¡£ÆÃ¤Ë +にあるソース・ファイルを参照のこと。特に .B POSIX -¤ÎÎã¡¢ +の例、 .B Example -¤È +と .B Example2 -¤ò¸«¤ë¤È¤è¤¤¡£ +を見るとよい。 .PP .B LC_COLLATE -ÄêµÁ¤Ï +定義は .I "END LC_COLLATE" -¤È¤¤¤¦Ê¸»úÎó¤Ç½ªÎ»¤¹¤ë¡£ +という文字列で終了する。 .SS LC_MONETARY .B LC_MONETARY -¤ÎÄêµÁ¤ÏºÇ½é¤Î¥«¥é¥à¤Ë +の定義は最初のカラムに .B LC_MONETARY -¤òÃÖ¤¯¤³¤È¤Ç»Ï¤á¤ë¡£ +を置くことで始める。 -¤³¤³¤Ç¤Ï°Ê²¼¤Î¥­¡¼¥ï¡¼¥É¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë: +ここでは以下のキーワードを使うことができる: .TP .I int_curr_symbol -¹ñºÝÄ̲ߵ­¹æ¤ò»ØÄꤹ¤ë¡£¤³¤ì¤Ï ISO 4217 µ¬³Ê¤ËÄêµÁ¤µ¤ì¤¿¹ñºÝÄÌ²ß -µ­¹æ (3 ʸ»ú) ¤Ë¶èÀÚ¤êʸ»ú¤ò³¤±¤¿ 4 ʸ»ú¤Ç¤¢¤ëɬÍפ¬¤¢¤ë¡£ +国際通貨記号を指定する。これは ISO 4217 規格に定義された国際通貨 +記号 (3 文字) に区切り文字を続けた 4 文字である必要がある。 .TP .I currency_symbol -ÃÏ°èŪ¤ÊÄ̲ߵ­¹æ¤ò»ØÄꤹ¤ë¡£ +地域的な通貨記号を指定する。 .TP .I mon_decimal_point -¶â³Û¤ò¥Õ¥©¡¼¥Þ¥Ã¥È¤¹¤ëºÝ¤Î¾®¿ôÅÀ¤Ë»ÈÍѤ¹¤ëʸ»úÎó¤ò»ØÄꤹ¤ë¡£ +金額をフォーマットする際の小数点に使用する文字列を指定する。 .TP .I mon_thousands_sep -¶â³Û¤ò¥Õ¥©¡¼¥Þ¥Ã¥È¤¹¤ëºÝ¤Ë·å¤Î¶èÀÚ¤ê¤Ë»ÈÍѤ¹¤ëʸ»úÎó¤ò»ØÄꤹ¤ë¡£ +金額をフォーマットする際に桁の区切りに使用する文字列を指定する。 .TP .I mon_grouping -¿ô»ú¤ò¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¤¹¤ëºÝ¤Ë²¿·å¤´¤È¤Ë¶èÀڤ뤫¤ò»ØÄꤹ¤ë¡£ +数字をフォーマットをする際に何桁ごとに区切るかを指定する。 .TP .I positive_sign -¿ôÃͤˤª¤¤¤ÆÀµ¤ÎÉä¹æ¤Ë»ÈÍѤ¹¤ëʸ»úÎó¤ò»ØÄꤹ¤ë¡£ +数値において正の符号に使用する文字列を指定する。 .TP .I negative_sign -¿ôÃͤˤª¤¤¤ÆÉé¤ÎÉä¹æ¤Ë»ÈÍѤ¹¤ëʸ»úÎó¤ò»ØÄꤹ¤ë¡£ +数値において負の符号に使用する文字列を指定する。 .TP .I int_frac_digits .B int_curr_symbol -¤Ç¥Õ¥©¡¼¥Þ¥Ã¥È¤¹¤ë»þ¤Ë»ÈÍѤ¹¤Ù¤­Ã¼¿ô¤Î·å¿ô¤ò»ØÄꤹ¤ë¡£ +でフォーマットする時に使用すべき端数の桁数を指定する。 .TP .I frac_digits .B currency_symbol -¤Ç¥Õ¥©¡¼¥Þ¥Ã¥È¤¹¤ëºÝ¤Ë»ÈÍѤ¹¤Ù¤­Ã¼¿ô¤Î·å¿ô¤ò»ØÄꤹ¤ë¡£ +でフォーマットする際に使用すべき端数の桁数を指定する。 .TP .I p_cs_precedes .I currency_symbol -¤Þ¤¿¤Ï +または .I int_curr_symbol -¤ò¥Õ¥©¡¼¥Þ¥Ã¥È¤·¤¿¶â³Û¤ÎÁ°¤ËÉÕ¤±¤ë¾ì¹ç¤Ë¤Ï +をフォーマットした金額の前に付ける場合には .B 1 -¤ò¡¢¸å¤í¤ËÉÕ¤±¤ë¾ì¹ç¤Ë¤Ï +を、後ろに付ける場合には .B 0 -¤ò»ØÄꤹ¤ë¡£ +を指定する。 .TP .I p_sep_by_space -°Ê²¼¤ÎÀ°¿ô¤Î¤¤¤º¤ì¤«¤ò»ØÄꤹ¤ë¡£ +以下の整数のいずれかを指定する。 .RS .TP .B 0 -µ­¹æ¤È¿ôÃͤδ֤˶õÇò¤òÆþ¤ì¤Ê¤¤¡£ +記号と数値の間に空白を入れない。 .TP .B 1 -µ­¹æ¤È¿ôÃͤδ֤˶õÇò¤òÆþ¤ì¤ë¡£ +記号と数値の間に空白を入れる。 .TP .B 2 -µ­¹æ¤È¿ôÃͤ¬ÎÙÀܤ·¤Æ¤¤¤ì¤Ð´Ö¤Ë¶õÇò¤òÆþ¤ì¤ë¡£ +記号と数値が隣接していれば間に空白を入れる。 .RE .TP .I n_cs_precedes .RS .TP .B 0 -- µ­¹æ¤Ï¿ôÃͤθå¤Ë¤ª¤¯¡£ +- 記号は数値の後におく。 .TP .B 1 -- µ­¹æ¤Ï¿ôÃͤÎÁ°¤Ë¤ª¤¯¡£ +- 記号は数値の前におく。 .RE .TP .I n_sep_by_space -°Ê²¼¤ÎÀ°¿ô¤Î¤¤¤º¤ì¤«¤ò»ØÄꤹ¤ë¡£ +以下の整数のいずれかを指定する。 .RS .TP .B 0 .I currency_symbol -¤Þ¤¿¤Ï +または .I int_curr_symbol -¤ÈÉé¤Î¶â³Û¤È¤Î´Ö¤Ë¶õÇò¤òÆþ¤ì¤Ê¤¤¡£ +と負の金額との間に空白を入れない。 .TP .B 1 -Éé¤Î¿ôÃͤȵ­¹æ¤Î´Ö¤Ë¶õÇò¤òÆþ¤ì¤ë¡£ +負の数値と記号の間に空白を入れる。 .TP .B 2 -ÎÙÀܤ·¤Æ¤¤¤¿¾ì¹ç¤Ë¤Î¤ß¶õÇò¤òÆþ¤ì¤ë¡£ +隣接していた場合にのみ空白を入れる。 .RE .TP .I p_sign_posn .RS .TP .B 0 -ÃÍ¤È +値と .I currency_symbol -¤Þ¤¿¤Ï +または .I int_curr_symbol -¤ò³ç¸Ì¤Ç³ç¤ë¡£ +を括弧で括る。 .TP .B 1 -Éä¹æ¤òÃÍ¤È +符号を値と .I currency_symbol -¤Þ¤¿¤Ï +または .I int_curr_symbol -¤ÎÁ°¤ËÃÖ¤¯¡£ +の前に置く。 .TP .B 2 -Éä¹æ¤òÃÍ¤È +符号を値と .I currency_symbol -¤Þ¤¿¤Ï +または .I int_curr_symbol -¤Î¸å¤ËÃÖ¤¯¡£ +の後に置く。 .TP .B 3 -Éä¹æ¤ò +符号を .I currency_symbol -¤Þ¤¿¤Ï +または .I int_curr_symbol -¤ÎÁ°¤ËÃÖ¤¯¡£ +の前に置く。 .TP .B 4 -Éä¹æ¤ò +符号を .I currency_symbol -¤Þ¤¿¤Ï +または .I int_curr_symbol -¤Î¸å¤ËÃÖ¤¯¡£ +の後に置く。 .RE .TP .I n_sign_posn .RS .TP .B 0 -ÃÍ¤È +値と .I currency_symbol -¤Þ¤¿¤Ï +または .I int_curr_symbol -¤ò³ç¸Ì¤Ç³ç¤ë¡£ +を括弧で括る。 .TP .B 1 -Éä¹æ¤òÃÍ¤È +符号を値と .I currency_symbol -¤Þ¤¿¤Ï +または .I int_curr_symbol -¤ÎÁ°¤ËÃÖ¤¯¡£ +の前に置く。 .TP .B 2 -Éä¹æ¤òÃÍ¤È +符号を値と .I currency_symbol -¤Þ¤¿¤Ï +または .I int_curr_symbol -¤Î¸å¤ËÃÖ¤¯¡£ +の後に置く。 .TP .B 3 -Éä¹æ¤ò +符号を .I currency_symbol -¤Þ¤¿¤Ï +または .I int_curr_symbol -¤ÎÁ°¤ËÃÖ¤¯¡£ +の前に置く。 .TP .B 4 -Éä¹æ¤ò +符号を .I currency_symbol -¤Þ¤¿¤Ï +または .I int_curr_symbol -¤Î¸å¤ËÃÖ¤¯¡£ +の後に置く。 .RE .PP .B LC_MONETARY -¤ÎÄêµÁ¤Ï +の定義は .I "END LC_MONETARY" -¤È¤¤¤¦Ê¸»úÎó¤Ç½ªÎ»¤¹¤ë¡£ +という文字列で終了する。 .SS LC_NUMERIC -¤³¤Î¥«¥Æ¥´¥ê¤ÎÄêµÁ¤ÏºÇ½é¤Î¥«¥é¥à¤Ë +このカテゴリの定義は最初のカラムに .B LC_NUMERIC -¤È¤¤¤¦Ê¸»úÎó¤òÃÖ¤¯¤³¤È¤Ç»Ï¤á¤ë¡£ +という文字列を置くことで始める。 -¤³¤³¤Ç¤Ï°Ê²¼¤Î¥­¡¼¥ï¡¼¥É¤ò»ÈÍѤǤ­¤ë: +ここでは以下のキーワードを使用できる: .TP .I decimal_point -¿ôÃͤò¥Õ¥©¡¼¥Þ¥Ã¥È¤¹¤ëºÝ¤Ë¾®¿ôÅÀ¤Ë»ÈÍѤ¹¤ëʸ»úÎó¤ò»ØÄꤹ¤ë¡£ +数値をフォーマットする際に小数点に使用する文字列を指定する。 .TP .I thousands_sep -¿ôÃͤò¥Õ¥©¡¼¥Þ¥Ã¥È¤¹¤ëºÝ¤Ë·å¤Î¶èÀÚ¤ê¤Ë»ÈÍѤ¹¤ëʸ»úÎó¤ò»ØÄꤹ¤ë¡£ +数値をフォーマットする際に桁の区切りに使用する文字列を指定する。 .TP .I grouping -¿ôÃͤò¥Õ¥©¡¼¥Þ¥Ã¥È¤¹¤ëºÝ¤Ë²¿·å¤´¤È¤Ë¶èÀڤ뤫¤òʸ»úÎó¤Ç»ØÄꤹ¤ë¡£ +数値をフォーマットする際に何桁ごとに区切るかを文字列で指定する。 .PP The .B LC_NUMERIC -¤ÎÄêµÁ¤Ï +の定義は .I "END LC_NUMERIC" -¤È¤¤¤¦Ê¸»úÎó¤Ç½ªÎ»¤¹¤ë¡£ +という文字列で終了する。 .SS LC_TIME -¤³¤Î¥«¥Æ¥´¥ê¤ÎÄêµÁ¤ÏºÇ½é¤Î¥«¥é¥à¤Ë +このカテゴリの定義は最初のカラムに .B LC_TIME -¤È¤¤¤¦Ê¸»úÎó¤òÃÖ¤¯¤³¤È¤Ç»Ï¤á¤ë¡£ +という文字列を置くことで始める。 -¤³¤³¤Ç¤Ï°Ê²¼¤Î¥­¡¼¥ï¡¼¥É¤¬»ÈÍѤǤ­¤ë: +ここでは以下のキーワードが使用できる: .TP .I abday -ÍËÆü¤Î̾Á°¤Î¾Êά·Á¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£ -¥ê¥¹¥È¤Ï +曜日の名前の省略形のリストを指定する。 +リストは .I week -¤Ç»ØÄꤵ¤ì¤¿½µ¤Î³«»ÏÍËÆü (¥Ç¥Õ¥©¥ë¥È¤Ç¤ÏÆüÍËÆü) ¤«¤é»Ï¤á¤ë¡£ +で指定された週の開始曜日 (デフォルトでは日曜日) から始める。 .TP .I day -ÍËÆü¤Î̾Á°¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£ -¥ê¥¹¥È¤Ï +曜日の名前のリストを指定する。 +リストは .I week -¤Ç»ØÄꤵ¤ì¤¿½µ¤Î³«»ÏÍËÆü (¥Ç¥Õ¥©¥ë¥È¤Ç¤ÏÆüÍËÆü) ¤«¤é»Ï¤á¤ë¡£ +で指定された週の開始曜日 (デフォルトでは日曜日) から始める。 .TP .I abmon -·î¤Î̾Á°¤Î¾Êά·Á¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£ +月の名前の省略形のリストを指定する。 .TP .I mon -·î¤Î̾Á°¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£ +月の名前のリストを指定する。 .TP .I am_pm -¤½¤ì¤¾¤ì -.B "¸áÁ° (am)" -¤È -.B "¸á¸å (pm)" -¤ËÂбþ¤¹¤ëʸ»úÎó¤ò»ØÄꤹ¤ë¡£ +それぞれ +.B "午前 (am)" +と +.B "午後 (pm)" +に対応する文字列を指定する。 .TP .I d_t_fmt -ŬÀÚ¤ÊÆüÉÕ¤± (date) ¤È»þ¹ï (time) ¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»ØÄꤹ¤ë¡£ +適切な日付け (date) と時刻 (time) のフォーマットを指定する。 .TP .I d_fmt -ŬÀÚ¤ÊÆüÉÕ¤± (date) ¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»ØÄꤹ¤ë¡£ +適切な日付け (date) のフォーマットを指定する。 .TP .I t_fmt -ŬÀڤʻþ¹ï (time) ¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»ØÄꤹ¤ë¡£ +適切な時刻 (time) のフォーマットを指定する。 .TP .I t_fmt_ampm -12 »þ´ÖÊý¼°¤ò»ÈÍѤ·¤¿»þ¹ï¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»ØÄꤹ¤ë¡£ +12 時間方式を使用した時刻のフォーマットを指定する。 .TP .I week -3 ¤Ä¤ÎÃͤ«¤é¤Ê¤ë¥ê¥¹¥È¤ò»ØÄꤹ¤ë¡£ -¥ê¥¹¥È¤Ï¡¢°ì½µ´Ö¤ÎÆü¿ô (¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï 7)¡¢ -½µ¤Î³«»ÏÍËÆü (¥Ç¥Õ¥©¥ë¥È¤Ç¤ÏÆüÍˤËÂбþ)¡¢ -°ìǯ¤ÎºÇ½é¤Î½µ¤ÎºÇ¾®¤ÎŤµ (¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï 4) ¤«¤é¹½À®¤µ¤ì¤ë¡£ -½µ¤Î³«»ÏÍËÆü¤Ë¤Ä¤¤¤Æ¤Ï¡¢½µ¤Î³«»ÏÆü¤¬ÆüÍËÆü¤Î¾ì¹ç¤Ë¤Ï +3 つの値からなるリストを指定する。 +リストは、一週間の日数 (デフォルトでは 7)、 +週の開始曜日 (デフォルトでは日曜に対応)、 +一年の最初の週の最小の長さ (デフォルトでは 4) から構成される。 +週の開始曜日については、週の開始日が日曜日の場合には .B 19971130 -¤ò¡¢·îÍËÆü¤Î¾ì¹ç¤Ë¤Ï +を、月曜日の場合には .B 19971201 -¤ò»ÈÍѤ¹¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢ +を使用する。したがって、 .I day -¥ê¥¹¥È¤ÎºÇ½é¤ÎÆü¤È¤·¤Æ¡¢ +リストの最初の日として、 .B 19971130 -¤ò»È¤¦¹ñ¤Ç¤Ï¤½¤ÎÃÏ°è¤ÎÆüÍËÆü¤Î̾Á°¤ò¡¢ +を使う国ではその地域の日曜日の名前を、 .B 19971201 -¤ò»È¤¦¹ñ¤Ç¤Ï¤½¤ÎÃÏ°è¤Î·îÍËÆü¤Î̾Á°¤òÀßÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£ +を使う国ではその地域の月曜日の名前を設定すべきである。 .TP -.IR first_weekday " (glibc 2.2 °Ê¹ß)" -¥«¥ì¥ó¥À¡¼¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÇºÇ½é¤Ëɽ¼¨¤¹¤ëÍËÆü¤Î +.IR first_weekday " (glibc 2.2 以降)" +カレンダーアプリケーションで最初に表示する曜日の .I day -¥ê¥¹¥È¤Ë¤ª¤±¤ëÈֹ档 -¥Ç¥Õ¥©¥ë¥ÈÃͤΠ1 ¤ÏÆüÍËÆü¤«·îÍËÆü¤ËÂбþ¤¹¤ë¡£ -¤É¤Á¤é¤ËÂбþ¤¹¤ë¤«¤Ï +リストにおける番号。 +デフォルト値の 1 は日曜日か月曜日に対応する。 +どちらに対応するかは .I week -¥ê¥¹¥È¤ÎÆóÈÖÌܤιàÌܤÎÃͤǷè¤Þ¤ë¡£ +リストの二番目の項目の値で決まる。 .TP -.IR first_workday " (glibc 2.2 °Ê¹ß)" -ºÇ½é¤Î½¢¶ÈÆü¤ò¼¨¤¹ +.IR first_workday " (glibc 2.2 以降)" +最初の就業日を示す .I day -¥ê¥¹¥È¤Ë¤ª¤±¤ëÍËÆü¤ÎÈֹ档 +リストにおける曜日の番号。 .PP .B LC_TIME -¤ÎÄêµÁ¤Ï +の定義は .I "END LC_TIME" -¤È¤¤¤¦Ê¸»úÎó¤Ç½ªÎ»¤¹¤ë¡£ +という文字列で終了する。 .SS LC_MESSAGES -¤³¤Î¥«¥Æ¥´¥ê¤ÎÄêµÁ¤ÏºÇ½é¤Î¥«¥é¥à¤Ë +このカテゴリの定義は最初のカラムに .B LC_MESSAGES -¤È¤¤¤¦Ê¸»úÎó¤òÃÖ¤¯¤³¤È¤Ç»Ï¤á¤ë¡£ +という文字列を置くことで始める。 -¤³¤³¤Ç¤Ï°Ê²¼¤Î¥­¡¼¥ï¡¼¥É¤¬»ÈÍѤǤ­¤ë: +ここでは以下のキーワードが使用できる: .TP .I yesexpr -¡Ö¤Ï¤¤ (yes)¡×¤ò°ÕÌ£¤¹¤ëÀµµ¬É½¸½¤ò»ØÄꤹ¤ë¡£ +「はい (yes)」を意味する正規表現を指定する。 .TP .I noexpr -¡Ö¤¤¤¤¤¨ (no)¡×¤ò°ÕÌ£¤¹¤ëÀµµ¬É½¸½¤ò»ØÄꤹ¤ë¡£ +「いいえ (no)」を意味する正規表現を指定する。 .PP .B LC_MESSAGES -¤ÎÄêµÁ¤Ï +の定義は .I "END LC_MESSAGES" -¤È¤¤¤¦Ê¸»úÎó¤Ç½ªÎ»¤¹¤ë¡£ +という文字列で終了する。 -¤è¤ê¾Ü¤·¤¯¤Ï POSIX.2 µ¬³Ê¤ò»²¾È¤Î¤³¤È¡£ -.SH ¥Õ¥¡¥¤¥ë +より詳しくは POSIX.2 規格を参照のこと。 +.SH ファイル /usr/lib/locale/ -\(em ¸½ºß¤Î¥í¥±¡¼¥ëÀßÄê¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹ +\(em 現在のロケール設定のデータベース .br -/usr/lib/nls/charmap/* \(em ʸ»úÄêµÁ¥Õ¥¡¥¤¥ë -.SH ½àµò +/usr/lib/nls/charmap/* \(em 文字定義ファイル +.SH 準拠 POSIX.2, ISO/IEC 14652. -.SH ¥Ð¥° -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Ï´°Á´¤Ç¤Ï¤Ê¤¤¡£ -.\" .SH Ãø¼Ô +.SH バグ +このマニュアルは完全ではない。 +.\" .SH 著者 .\" Jochen Hein (Hein@Student.TU-Clausthal.de) -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR locale (1), .BR localedef (1) .BR localeconv (3), diff --git a/release/man5/motd.5 b/release/man5/motd.5 index 36208628..4e06ea1f 100644 --- a/release/man5/motd.5 +++ b/release/man5/motd.5 @@ -28,19 +28,19 @@ .\" Translated Wed Feb 4 1998 by Hiroaki Nagoya .\" .TH MOTD 5 1992-12-29 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -motd \- º£Æü¤Î¤ªÃΤ餻(message of the day) -.SH ÀâÌÀ -\fI/etc/motd\fP ¤ÎÆâÍÆ¤Ï +.SH 名前 +motd \- 今日のお知らせ(message of the day) +.SH 説明 +\fI/etc/motd\fP の内容は .BR login (1) -¤Ë¤è¤Ã¤Æ¥í¥°¥¤¥ó¤¬À®¸ù¤·¤¿¤¢¤È¤Ç¡¢¥í¥°¥¤¥ó¥·¥§¥ë¤¬µ¯Æ°¤µ¤ì¤ëÁ°¤Ë -ɽ¼¨¤µ¤ì¤ë¡£ +によってログインが成功したあとで、ログインシェルが起動される前に +表示される。 -ά¸ì "motd" ¤Ï "message of the day" ¤ò¤¢¤é¤ï¤·¤Æ¤¤¤Æ¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ÏÅÁÅýŪ -¤Ë¤½¤Î̾¤Î¤È¤ª¤ê¤Ë»È¤ï¤ì¤Æ¤¤¤ë -(¤¹¤Ù¤Æ¤Î¥æ¡¼¥¶¡¼¤Ë¥á¥¤¥ë¤òÁ÷¤ë¤è¤ê¤â¾¯¤Ê¤¤¥Ç¥£¥¹¥¯ÍÆÎ̤·¤«É¬ÍפȤ·¤Ê¤¤)¡£ -.SH ¥Õ¥¡¥¤¥ë +略語 "motd" は "message of the day" をあらわしていて、このファイルは伝統的 +にその名のとおりに使われている +(すべてのユーザーにメイルを送るよりも少ないディスク容量しか必要としない)。 +.SH ファイル /etc/motd -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR login (1), .BR issue (5) diff --git a/release/man5/nologin.5 b/release/man5/nologin.5 index 708802ac..bd511725 100644 --- a/release/man5/nologin.5 +++ b/release/man5/nologin.5 @@ -30,15 +30,15 @@ .\" by Ueyama Rui .\" .TH NOLOGIN 5 1992-12-29 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -nologin \- ÈóÆø¢¥æ¡¼¥¶¤Î¥í¥°¥¤¥ó¤ò¶Ø»ß¤¹¤ë -.SH ÀâÌÀ -\fI/etc/nologin\fP ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¤È +.SH 名前 +nologin \- 非特権ユーザのログインを禁止する +.SH 説明 +\fI/etc/nologin\fP というファイルがあると .BR login (1) -¤Ï¥ë¡¼¥È¤Î¤ß¤Ë¥¢¥¯¥»¥¹¤òµö²Ä¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£Â¾¤Î¥æ¡¼¥¶¡¼¤¬¥í¥°¥¤¥ó¤·¤è¤¦¤È -¤·¤Æ¤âµñÈݤ·¡¢¤½¤Î¤È¤­¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÆâÍƤòɽ¼¨¤¹¤ë¡£ -.SH ¥Õ¥¡¥¤¥ë +はルートのみにアクセスを許可するようになる。他のユーザーがログインしようと +しても拒否し、そのときこのファイルの内容を表示する。 +.SH ファイル /etc/nologin -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR login (1), .BR shutdown (8) diff --git a/release/man5/nscd.conf.5 b/release/man5/nscd.conf.5 index 18519ad0..e95143c3 100644 --- a/release/man5/nscd.conf.5 +++ b/release/man5/nscd.conf.5 @@ -23,156 +23,156 @@ .\" Updated 2006-07-19, Akihiro MOTOKI , LDP v2.36 .\" .TH NSCD.CONF 5 1999-10-01 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -/etc/nscd.conf \- ¥Í¡¼¥à¥µ¡¼¥Ó¥¹¥­¥ã¥Ã¥·¥å¥Ç¡¼¥â¥ó¤ÎÀßÄê¥Õ¥¡¥¤¥ë -.SH ÀâÌÀ +.SH 名前 +/etc/nscd.conf \- ネームサービスキャッシュデーモンの設定ファイル +.SH 説明 .BR nscd (8) -¤Ïµ¯Æ°»þ¤Ë¥Õ¥¡¥¤¥ë +は起動時にファイル .I /etc/nscd.conf -¤òÆɤ߹þ¤à¡£ -³Æ¹Ô¤Ë¤Ï¡Ö°À­¡¦Ã͡פޤ¿¤Ï¡Ö°À­¡¦¥µ¡¼¥Ó¥¹¡¦Ã͡פò»ØÄꤹ¤ë¡£ -¥Õ¥£¡¼¥ë¥É¤Ï¥¹¥Ú¡¼¥¹Ê¸»ú¤Þ¤¿¤Ï¥¿¥Öʸ»ú¤Ç¶èÀÚ¤é¤ì¤ë¡£ -\(aq#\(aq (¥Ê¥ó¥Ð¡¼µ­¹æ) ¤Ï¥³¥á¥ó¥È¤Î»Ï¤Þ¤ê¤òɽ¤¹¡£ -¤³¤Îµ­¹æ¤«¤é¹ÔËö¤Þ¤Ç¤Ï nscd ¤Ë¤è¤Ã¤Æ²ò¼á¤µ¤ì¤Ê¤¤¡£ -»ØÄê²Äǽ¤Ê¥µ¡¼¥Ó¥¹¤Ï \fIpasswd\fP, \fIgroup\fP, \fIhosts\fP ¤Ç¤¢¤ë¡£ +を読み込む。 +各行には「属性・値」または「属性・サービス・値」を指定する。 +フィールドはスペース文字またはタブ文字で区切られる。 +\(aq#\(aq (ナンバー記号) はコメントの始まりを表す。 +この記号から行末までは nscd によって解釈されない。 +指定可能なサービスは \fIpasswd\fP, \fIgroup\fP, \fIhosts\fP である。 .B logfile .I debug-file-name .RS -¥Ç¥Ð¥Ã¥°¾ðÊ󤬽ñ¤­¹þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¤Î̾Á°¤ò»ØÄꤹ¤ë¡£ +デバッグ情報が書き込まれるファイルの名前を指定する。 .RE .B debug-level .I value .RS -´õ˾¤¹¤ë¥Ç¥Ð¥Ã¥°¥ì¥Ù¥ë¤òÀßÄꤹ¤ë¡£ +希望するデバッグレベルを設定する。 .RE .B threads .I number .RS -¥¹¥ì¥Ã¥É¤ò¤¤¤¯¤Äµ¯Æ°¤·¤Æ¥ê¥¯¥¨¥¹¥È¤òÂԤĤΤ«¤ò»ØÄꤹ¤ë¡£ -¾¯¤Ê¤¯¤È¤â 5 ¤Ä¤Î¥¹¥ì¥Ã¥É¤¬¾ï¤ËºîÀ®¤µ¤ì¤ë¡£ +スレッドをいくつ起動してリクエストを待つのかを指定する。 +少なくとも 5 つのスレッドが常に作成される。 .RE .B server-user .I user .RS -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬ÀßÄꤵ¤ì¤ë¤È¡¢ -nscd ¤Ï root ¤Ç¤Ï¤Ê¤¯¡¢¤³¤Î user ¤È¤·¤Æ¼Â¹Ô¤µ¤ì¤ë¡£ -(\-S ¥Ñ¥é¥á¡¼¥¿¤Ë¤è¤ê) ³Æ¥æ¡¼¥¶¡¼Ëè¤ËÊÌ¡¹¤Î¥­¥ã¥Ã¥·¥å¤¬»È¤ï¤ì¤ë¾ì¹ç¡¢ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵»ë¤µ¤ì¤ë¡£ +このオプションが設定されると、 +nscd は root ではなく、この user として実行される。 +(\-S パラメータにより) 各ユーザー毎に別々のキャッシュが使われる場合、 +このオプションは無視される。 .RE .B enable-cache .I service .I .RS -»ØÄꤷ¤¿ +指定した .I service -¤Î¥­¥ã¥Ã¥·¥å¤òÍ­¸ú¤Þ¤¿¤Ï̵¸ú¤Ë¤¹¤ë¡£ +のキャッシュを有効または無効にする。 .RE .B positive-time-to-live .I service .I value .RS -»ØÄꤷ¤¿ +指定した .I service -¤Î¥­¥ã¥Ã¥·¥å¤Ë¤¢¤ë¥Ý¥¸¥Æ¥£¥Ö¥¨¥ó¥È¥ê (À®¸ù¤·¤¿Ì䤤¹ç¤ï¤») ¤Î -TTL (time-to-live) ¤òÀßÄꤹ¤ë¡£ +のキャッシュにあるポジティブエントリ (成功した問い合わせ) の +TTL (time-to-live) を設定する。 .I value -¤Îñ°Ì¤ÏÉäǤ¢¤ë¡£ -ÃͤòÂ礭¤¯¤¹¤ë¤È¡¢¥Ò¥Ã¥ÈΨ¤¬¹â¤¯¤Ê¤êÊ¿¶Ñ±þÅú»þ´Ö¤òû¤¯¤Ç¤­¤ë¤¬¡¢ -¥­¥ã¥Ã¥·¥å¤Î¥³¥Ò¡¼¥ì¥ó¥¹ (coherence, -¥­¥ã¥Ã¥·¥å¤¬¼ÂºÝ¤Î¥Ç¡¼¥¿¤È°ìÃפ·¤Æ¤¤¤ë¤³¤È) ¤ËÌäÂ꤬À¸¤¸¤ë¡£ +の単位は秒である。 +値を大きくすると、ヒット率が高くなり平均応答時間を短くできるが、 +キャッシュのコヒーレンス (coherence, +キャッシュが実際のデータと一致していること) に問題が生じる。 .RE .B negative-time-to-live .I service .I value .RS -»ØÄꤷ¤¿ +指定した .I service -¤Î¥­¥ã¥Ã¥·¥å¤Ë¤¢¤ë¥Í¥¬¥Æ¥£¥Ö¥¨¥ó¥È¥ê (¼ºÇÔ¤·¤¿Ì䤤¹ç¤ï¤») ¤Î -TTL (time-to-live) ¤òÀßÄꤹ¤ë¡£ +のキャッシュにあるネガティブエントリ (失敗した問い合わせ) の +TTL (time-to-live) を設定する。 .I value -¤Îñ°Ì¤ÏÉäǤ¢¤ë¡£ -¥·¥¹¥Æ¥à¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤Ê¤¤ UID (¥æ¡¼¥¶¡¼ID) ¤Ç½êÍ­¤µ¤ì¤ë¥Õ¥¡¥¤¥ë -(¤¿¤È¤¨¤Ð root ¤Ç tar ¤òŸ³«¤·¤¿ linux ¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹) ¤¬¾¯¤Ê¤¤¤È¡¢ -¸²Ãø¤ÊÀ­Ç½¤Î¸þ¾å¤¬¸«¤é¤ì¤ë¡£ -¥­¥ã¥Ã¥·¥å¤Î¥³¥Ò¡¼¥ì¥ó¥¹ÌäÂê¤ò¾¯¤Ê¤¯¤¹¤ë¤¿¤á¤Ë¾®¤µ¤ÊÃͤˤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +の単位は秒である。 +システムデータベースにない UID (ユーザーID) で所有されるファイル +(たとえば root で tar を展開した linux カーネルのソース) が少ないと、 +顕著な性能の向上が見られる。 +キャッシュのコヒーレンス問題を少なくするために小さな値にすべきである。 .RE .B suggested-size .I service .I value .RS -ÆâÉô¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤ÎÂ礭¤µ¤ò»ØÄꤹ¤ë¡£ -¸úΨ¤òºÇŬ¤Ë¤¹¤ë¤¿¤á¤Ë +内部ハッシュテーブルの大きさを指定する。 +効率を最適にするために .I value -¤ÏÁÇ¿ô¤Ë¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£ +は素数にしておくべきである。 .RE .B check-files .I service .I .RS -»ØÄꤷ¤¿ +指定した .I service -¤Ë´ØÏ¢¤¹¤ë¥Õ¥¡¥¤¥ë¤ÎÊѹ¹¤Î¥Á¥§¥Ã¥¯¤òÍ­¸ú¤Þ¤¿¤Ï̵¸ú¤Ë¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¤Ï +に関連するファイルの変更のチェックを有効または無効にする。 +ファイルは .IR /etc/passwd , .IR /etc/group , .I /etc/hosts -¤Ç¤¢¤ë¡£ +である。 .RE .B max-threads .I threads .RS -³«»Ï¤¹¤ë¥¹¥ì¥Ã¥É¤ÎºÇÂç¿ô¤ò»ØÄꤹ¤ë¡£ +開始するスレッドの最大数を指定する。 .RE .B stat-user .I username .RS -Åý·×¾ðÊó¤Î»²¾È¤òµö²Ä¤¹¤ë¥æ¡¼¥¶¤ò»ØÄꤹ¤ë¡£ +統計情報の参照を許可するユーザを指定する。 .RE .B reload-count unlimited | .I number .RS -¥­¥ã¥Ã¥·¥å¤µ¤ì¤¿¥¨¥ó¥È¥ê¤¬»ÈÍѤµ¤ì¤Ê¤«¤Ã¤¿¤È¤­¤Ë¡¢ -ºï½ü¤µ¤ì¤ëÁ°¤Ë²¿²ó¥ê¥í¡¼¥É¤µ¤ì¤ë¤«¤òÀßÄꤹ¤ë¡£ +キャッシュされたエントリが使用されなかったときに、 +削除される前に何回リロードされるかを設定する。 .RE .B paranoia .I .RS -¥Ñ¥é¥Î¥¤¥¢¥â¡¼¥É¤òÍ­¸ú¤Ë¤¹¤ë¡£ -¥Ñ¥é¥Î¥¤¥¢¥â¡¼¥É¤Ç¤Ï nscd ¤òÄê´üŪ¤ËºÆµ¯Æ°¤¹¤ë¡£ +パラノイアモードを有効にする。 +パラノイアモードでは nscd を定期的に再起動する。 .RE .B restart-interval .I time .RS -¥Ñ¥é¥Î¥¤¥¢¥â¡¼¥É¤¬Í­¸ú¤ÇÄê´üŪ¤ËºÆµ¯Æ°¤¹¤ë¾ì¹ç¤Î¡¢ -ºÆµ¯Æ°´Ö³Ö¤ò +パラノイアモードが有効で定期的に再起動する場合の、 +再起動間隔を .I time -ÉäËÀßÄꤹ¤ë¡£ +秒に設定する。 .RE .B persistent .I service .I .RS -¥µ¡¼¥Ð¤ÎºÆµ¯Æ°¤ÎÁ°¸å¤Ç +サーバの再起動の前後で .I service -¤Î¥­¥ã¥Ã¥·¥åÆâÍƤòÊÝ»ý¤¹¤ë¡£ +のキャッシュ内容を保持する。 .B paranoia -¥â¡¼¥É¤¬Í­¸ú¤Î¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£ +モードが有効の場合に便利である。 .RE .B shared @@ -180,12 +180,12 @@ unlimited | .I .RS .I service -¤Î nscd ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥á¥â¥ê¡¦¥Þ¥Ã¥Ô¥ó¥°¤ò¥¯¥é¥¤¥¢¥ó¥È´Ö¤Ç¶¦Í­¤¹¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢¸¡º÷¤ò¼Â¹Ô¤¹¤ëÅ٤˥½¥±¥Ã¥È·Ðͳ¤Ç¥Ç¡¼¥â¥ó¤ËÌ䤤¹ç¤ï¤»¤ò -¹Ô¤ï¤º¤Ë¡¢Ä¾Àܥǡ¼¥¿¥Ù¡¼¥¹¤ò¸¡º÷¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +の nscd データベースのメモリ・マッピングをクライアント間で共有する。 +これにより、検索を実行する度にソケット経由でデーモンに問い合わせを +行わずに、直接データベースを検索できるようになる。 .RE -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR nscd (8) -.\" .SH Ãø¼Ô +.\" .SH 著者 .\" .B nscd -.\" ¤Ï Thorsten Kukuk ¤È Ulrich Drepper ¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤¿¡£ +.\" は Thorsten Kukuk と Ulrich Drepper によって書かれた。 diff --git a/release/man5/nsswitch.conf.5 b/release/man5/nsswitch.conf.5 index cae55225..a8d1ddfe 100644 --- a/release/man5/nsswitch.conf.5 +++ b/release/man5/nsswitch.conf.5 @@ -30,89 +30,89 @@ .\" by NAKANO Takeo .\" Updated Fri Oct 12 JST 2001 by Akihiro MOTOKI .\" -.\" WORD: lookup ±ÜÍ÷(¤¹¤ë) +.\" WORD: lookup 閲覧(する) .\" .TH NSSWITCH.CONF 5 1999-01-17 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -nsswitch.conf \- ¥·¥¹¥Æ¥à¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¥Í¡¼¥à¥µ¡¼¥Ó¥¹¥¹¥¤¥Ã¥Á¤ÎÀßÄê¥Õ¥¡¥¤¥ë -.SH ÀâÌÀ -C ¥é¥¤¥Ö¥é¥ê¤Îµ¡Ç½¤ÎÃæ¤Ë¤Ï¡¢¥í¡¼¥«¥ë¤Ê´Ä¶­¤ÇÀµ¤·¤¯Æ°ºî¤µ¤»¤ë¤Ë¤ÏÀßÄ꤬ -ɬÍפʤâ¤Î¤¬Â¿¿ô¸ºß¤¹¤ë¡£ÅÁÅýŪ¤Ë¤³¤ì¤Ï¥Õ¥¡¥¤¥ë (Î㤨¤Ð \fI/etc/passwd\fP) ¤ò -ÍѤ¤¤ë¤³¤È¤Ç¼Â¸½¤µ¤ì¤Æ¤­¤¿¡£¤·¤«¤·Â¾¤Î¥Í¡¼¥à¥µ¡¼¥Ó¥¹ (Network -Information Service (NIS) ¤ä Domain Name Service (DNS)) ¤¬°ìÈÌŪ¤Ë¤Ê¤ê¡¢ -¤³¤ì¤é¤¬ C ¥é¥¤¥Ö¥é¥ê¤Ë¼è¤ê¹þ¤Þ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Ã¤¿¡£¤¿¤À¤·Ä̾¸¡ -º÷¤Î½ç½ø¤Ï¸ÇÄꤵ¤ì¤Æ¤¤¤¿¡£ +.SH 名前 +nsswitch.conf \- システムデータベースとネームサービススイッチの設定ファイル +.SH 説明 +C ライブラリの機能の中には、ローカルな環境で正しく動作させるには設定が +必要なものが多数存在する。伝統的にこれはファイル (例えば \fI/etc/passwd\fP) を +用いることで実現されてきた。しかし他のネームサービス (Network +Information Service (NIS) や Domain Name Service (DNS)) が一般的になり、 +これらが C ライブラリに取り込まれるようになっていった。ただし通常、検 +索の順序は固定されていた。 .LP -NYS ¤ò¥µ¥Ý¡¼¥È¤·¤¿ Linux libc5 ¤ä GNU C Linrary 2.x (libc.so.6) ¤Ç¤Ï¡¢ -¤³¤ÎÌäÂê¤Ï¤è¤ê¸«Ä̤·Îɤ¯²ò·è¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¤³¤ì¤é¤Ï Sun -Microsystems ¤¬ Solaris 2 ¤Î C ¥é¥¤¥Ö¥é¥ê¤ÇÍѤ¤¤¿ÊýË¡¤Ë¤Ê¤é¤Ã¤Æ¤¤¤ë¡£ -°Ê²¼¤Ç¤Ï¤³¤Î»ÅÁȤߤò "Name Service Switch" (NSS) ¤È¸Æ¤Ö¡£¥Ç¡¼¥¿¥Ù¡¼¥¹ -¤Î¾ðÊ󸻤ȡ¢¤½¤ì¤é¤ò±ÜÍ÷¤¹¤ë½ç½ø¤ò»ØÄꤷ¤¿¤Î¤¬ +NYS をサポートした Linux libc5 や GNU C Linrary 2.x (libc.so.6) では、 +この問題はより見通し良く解決できるようになっている。これらは Sun +Microsystems が Solaris 2 の C ライブラリで用いた方法にならっている。 +以下ではこの仕組みを "Name Service Switch" (NSS) と呼ぶ。データベース +の情報源と、それらを閲覧する順序を指定したのが .I /etc/nsswitch.conf -¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ +ファイルである。 .LP -NSS(¥Í¡¼¥à¥µ¡¼¥Ó¥¹¥¹¥£¥Ã¥Á) ¤Ç¤Ï°Ê²¼¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò°·¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +NSS(ネームサービススィッチ) では以下のデータベースを扱うことができる。 .TP .B aliases .BR sendmail (8) -¤ÇÍѤ¤¤é¤ì¤ë¥á¡¼¥ë¥¨¥¤¥ê¥¢¥¹¡£ -¸½ºß¤Ï̵»ë¤µ¤ì¤ë¡£ +で用いられるメールエイリアス。 +現在は無視される。 .TP .B ethers -¥¤¡¼¥µ¡¼¥Í¥Ã¥ÈÈֹ档 +イーサーネット番号。 .TP .B group -¥æ¡¼¥¶¡¼¤Î¥°¥ë¡¼¥×¡£ +ユーザーのグループ。 .BR getgrent (3) -´Ø¿ô¤Ë¤è¤Ã¤ÆÍѤ¤¤é¤ì¤ë¡£ +関数によって用いられる。 .TP .B hosts -¥Û¥¹¥È̾¤È¥Û¥¹¥ÈÈֹ档 +ホスト名とホスト番号。 .BR gethostbyname (3) -¤Ê¤É¤Î´Ø¿ô¤Ë¤è¤Ã¤ÆÍѤ¤¤é¤ì¤ë¡£ +などの関数によって用いられる。 .TP .B netgroup -¥Í¥Ã¥È¥ï¡¼¥¯¥ï¥¤¥É¤ËÍѤ¤¤é¤ì¤ë¥Û¥¹¥È¤ä¥æ¡¼¥¶¡¼¤Î¥ê¥¹¥È¡£¥¢¥¯¥»¥¹À©¸Â¤Ë -ÍøÍѤµ¤ì¤ë¡£ glibc 2.1 °ÊÁ°¤Î C ¥é¥¤¥Ö¥é¥ê¤Ï¡¢ NIS ¾å¤Ç¤À¤± -netgroup ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ +ネットワークワイドに用いられるホストやユーザーのリスト。アクセス制限に +利用される。 glibc 2.1 以前の C ライブラリは、 NIS 上でだけ +netgroup をサポートしている。 .TP .B networks -¥Í¥Ã¥È¥ï¡¼¥¯Ì¾¤ÈÈֹ档 +ネットワーク名と番号。 .BR getnetent (3) -´Ø¿ô¤Ë¤è¤Ã¤ÆÍѤ¤¤é¤ì¤ë¡£ +関数によって用いられる。 .TP .B passwd -¥æ¡¼¥¶¡¼¥Ñ¥¹¥ï¡¼¥É¡£ +ユーザーパスワード。 .BR getpwent (3) -´Ø¿ô¤Ë¤è¤Ã¤ÆÍѤ¤¤é¤ì¤ë¡£ +関数によって用いられる。 .TP .B protocols -¥Í¥Ã¥È¥ï¡¼¥¯¥×¥í¥È¥³¥ë¡£ +ネットワークプロトコル。 .BR getprotoent (3) -´Ø¿ô¤Ë¤è¤Ã¤ÆÍѤ¤¤é¤ì¤ë¡£ +関数によって用いられる。 .TP .B publickey -NIS+ ¤È NFS ¤Ë¤è¤Ã¤ÆÍѤ¤¤é¤ì¤ë secure_rpc ¤Î¸ø³«¸°¤ÈÈëÌ©¸°¡£ +NIS+ と NFS によって用いられる secure_rpc の公開鍵と秘密鍵。 .TP .B rpc -¥ê¥â¡¼¥È¥×¥í¥·¥¸¥ã¡¼¥³¡¼¥ë (remote procedure call) ¤Î̾Á°¤ÈÈֹ档 +リモートプロシジャーコール (remote procedure call) の名前と番号。 .BR getrpcbyname (3) -¤Ê¤É¤Î´Ø¿ô¤Ë¤è¤Ã¤ÆÍѤ¤¤é¤ì¤ë¡£ +などの関数によって用いられる。 .TP .B services -¥Í¥Ã¥È¥ï¡¼¥¯¥µ¡¼¥Ó¥¹¡£ +ネットワークサービス。 .BR getservent (3) -´Ø¿ô¤Ë¤è¤Ã¤ÆÍѤ¤¤é¤ì¤ë¡£ +関数によって用いられる。 .TP .B shadow -¥·¥ã¥É¥¦¥æ¡¼¥¶¡¼¥Ñ¥¹¥ï¡¼¥É¡£ +シャドウユーザーパスワード。 .BR getspnam (3) -¤Ë¤è¤Ã¤ÆÍѤ¤¤é¤ì¤ë¡£ +によって用いられる。 .LP .I /etc/nsswitch.conf -¥Õ¥¡¥¤¥ë¤Î°ìÎã¤ò°Ê²¼¤Ë¼¨¤¹ (¤³¤³¤Ë¼¨¤¹ÆâÍÆ¤Ï +ファイルの一例を以下に示す (ここに示す内容は .I /etc/nsswitch.conf -¥Õ¥¡¥¤¥ë¤¬¤Ê¤¤¾ì¹ç¤Î¥Ç¥Õ¥©¥ë¥È¤ÈƱ¤¸¤Ç¤¢¤ë)¡£ +ファイルがない場合のデフォルトと同じである)。 .sp 1n .PD 0 .TP 16 @@ -145,42 +145,42 @@ services: nis [NOTFOUND=return] files .PD .LP -ºÇ½é¤Î¥«¥é¥à¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹Ì¾¤Ç¤¢¤ë¡£ -¹Ô¤Î»Ä¤ê¤Ç¤Ï±ÜÍ÷¥×¥í¥»¥¹¤ÎÆ°ºî¤ò»ØÄꤷ¤Æ¤¤¤ë¡£ -¤½¤ì¤¾¤ì¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÂФ·¤Æ¡¢±ÜÍ÷ÊýË¡¤ÏÆÈΩ¤ËÀßÄê¤Ç¤­¤ë¡£ +最初のカラムはデータベース名である。 +行の残りでは閲覧プロセスの動作を指定している。 +それぞれのデータベースに対して、閲覧方法は独立に設定できる。 .LP -³Æ¡¹¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÀßÄê¤Ë¤Ï°Ê²¼¤Î 2 ¼ïÎà¤ÎÆâÍƤò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +各々のデータベースの設定には以下の 2 種類の内容を指定することができる。 .PD 0 .TP -* ¥µ¡¼¥Ó¥¹¤Î»ØÄê¡£ `files', `db', `nis' ¤Ê¤É¡£ +* サービスの指定。 `files', `db', `nis' など。 .TP -* ±ÜÍ÷·ë²Ì¤ËÂФ¹¤ë¥ê¥¢¥¯¥·¥ç¥ó¡£ `[NOTFOUND=return]' ¤Ê¤É¡£ +* 閲覧結果に対するリアクション。 `[NOTFOUND=return]' など。 .PD .LP -NYS µ¡Ç½¤òÁȤ߹þ¤ó¤À libc5 ¤Ç¤Ï¡¢»ØÄê¤Ç¤­¤ë¥µ¡¼¥Ó¥¹¤Ï `files'¡¢ `nis'¡¢ -`nisplus' ¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¡£ hosts ¤ËÂФ·¤Æ¤Ï `dns' ¤â»ØÄê¤Ç¤­¤ë¡£¤Þ¤¿ -passwd ¤È group ¤ËÂФ·¤Æ¤Ï `compat' ¤â»ØÄê¤Ç¤­¤ë¡£ shadow ¤Ë¤Ï -`compat' ¤Î»ØÄê¤Ï¤Ç¤­¤Ê¤¤¡£ +NYS 機能を組み込んだ libc5 では、指定できるサービスは `files'、 `nis'、 +`nisplus' のいずれかである。 hosts に対しては `dns' も指定できる。また +passwd と group に対しては `compat' も指定できる。 shadow には +`compat' の指定はできない。 .LP -glibc ¤Ç¤Ï¡¢ÍøÍѤ·¤è¤¦¤È¤¹¤ë¥µ¡¼¥Ó¥¹ SERVICE ¤½¤ì¤¾¤ì¤ËÂФ· -¤Æ +glibc では、利用しようとするサービス SERVICE それぞれに対し +て .BI /lib/libnss_SERVICE.so. X -¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬É¬Íפˤʤ롣ɸ½àŪ¤Ê¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤Ï `files'¡¢ `db'¡¢ -`nis'¡¢ `nisplus' ¤¬ÍøÍѤǤ­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤¬Â¿¤¤¡£ hosts ¤ËÂÐ -¤·¤Æ¤Ï `dns' ¤â»ØÄê¤Ç¤­¡¢ passwd¡¢ group¡¢ shadow ¤ËÂФ·¤Æ¤Ï `compat' -¤â»ØÄê¤Ç¤­¤ë¡£ -¤³¤ì¤é¤Î¥µ¡¼¥Ó¥¹¤Ï libc5+NYS ¤Î´Ä¶­¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤¡£ -¥Ð¡¼¥¸¥ç¥óÈÖ¹æ +というファイルが必要になる。標準的なインストールでは `files'、 `db'、 +`nis'、 `nisplus' が利用できるようになっていることが多い。 hosts に対 +しては `dns' も指定でき、 passwd、 group、 shadow に対しては `compat' +も指定できる。 +これらのサービスは libc5+NYS の環境では利用できない。 +バージョン番号 .I X -¤Ï¡¢ glibc 2.0 ÍѤʤé 1¡¢ glibc 2.1 ÍѤʤé 2 ¤Ç¤¢¤ë¡£ +は、 glibc 2.0 用なら 1、 glibc 2.1 用なら 2 である。 .LP -Æó¤Ä¤á¤Î»ØÄêÊýË¡¤Ï±ÜÍ÷¥×¥í¥»¥¹¤ò¤è¤ê¾ÜºÙ¤ËÀ©¸æ¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£¥¢ -¥¯¥·¥ç¥ó»ØÄê (action item) ¤Ï¥µ¡¼¥Ó¥¹Ì¾¤Î´Ö¤Ë¡¢³Ñ¤«¤Ã¤³ [] ¤Ç³ç¤é¤ì¤Æ -µ­½Ò¤µ¤ì¤ë¡£°ìÈÌŪ¤Ê½ñ¼°¤Ï°Ê²¼¤ÎÄ̤ꡣ +二つめの指定方法は閲覧プロセスをより詳細に制御するためのものである。ア +クション指定 (action item) はサービス名の間に、角かっこ [] で括られて +記述される。一般的な書式は以下の通り。 .LP `[' ( `!'? STATUS `=' ACTION )+ `]' .LP -¤³¤³¤Ç¤½¤ì¤¾¤ì +ここでそれぞれ .sp 1n .PD 0 .TP @@ -188,87 +188,87 @@ STATUS => success | notfound | unavail | tryagain .TP ACTION => return | continue .PD -¤Ç¤¢¤ë¡£ +である。 .LP -¥­¡¼¥ï¡¼¥É¤ÎÂçʸ»ú¾®Ê¸»ú¤Ï¶èÊ̤µ¤ì¤Ê¤¤¡£ STATUS ¤ÎÃͤÏÆÃÄê¤Îµ¡Ç½¤ËÂФ· -¤Æ±ÜÍ÷¤ò¹Ô¤Ã¤¿·ë²Ì¤Ç¤¢¤ë¡£¤½¤ì¤¾¤ì¤Î°ÕÌ£¤Ï°Ê²¼¤ÎÄ̤ꡣ +キーワードの大文字小文字は区別されない。 STATUS の値は特定の機能に対し +て閲覧を行った結果である。それぞれの意味は以下の通り。 .TP .B success -¥¨¥é¡¼¤Ïµ¯¤³¤é¤º¡¢É¬Íפʥ¨¥ó¥È¥ê¤¬ÊÖ¤µ¤ì¤¿¡£¤³¤Î·ë²Ì¤ËÂФ¹¤ë¥Ç¥Õ¥©¥ë¥È -¤Î¥¢¥¯¥·¥ç¥ó¤Ï `return' ¤Ç¤¢¤ë¡£ +エラーは起こらず、必要なエントリが返された。この結果に対するデフォルト +のアクションは `return' である。 .TP .B notfound -±ÜÍ÷¥×¥í¥»¥¹¤ÏÀ®¸ù¤·¤¿¤¬¡¢É¬ÍפÊÃͤ¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£¥Ç¥Õ¥©¥ë¥È¤Î -¥¢¥¯¥·¥ç¥ó¤Ï `continue'¡£ +閲覧プロセスは成功したが、必要な値が見つからなかった。デフォルトの +アクションは `continue'。 .TP .B unavail -¥µ¡¼¥Ó¥¹¤¬¡Ê±Ê³Ū¤Ë¡ËÍøÍѤǤ­¤Ê¤¤¡£É¬Íפʥե¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡¢DNS ¤Î -¾ì¹ç¤Ë¤Ï¥µ¡¼¥Ð¤ËÂФ¹¤ëÌ䤤¹ç¤ï¤»¤¬µö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤¡¢¤Ê¤É¤¬¤¢¤ê¤¦¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Î¥¢¥¯¥·¥ç¥ó¤Ï `continue'¡£ +サービスが(永続的に)利用できない。必要なファイルが存在しない、DNS の +場合にはサーバに対する問い合わせが許可されていない、などがありうる。 +デフォルトのアクションは `continue'。 .TP .B tryagain -¥µ¡¼¥Ó¥¹¤¬°ì»þŪ¤ËÍøÍѤǤ­¤Ê¤¤¡£¥Õ¥¡¥¤¥ë¤¬¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¡¢¥µ¡¼¥Ð¤ÎÀÜ -³¿ô¤¬¥ê¥ß¥Ã¥È¤ò±Û¤¨¤Æ¤¤¤Æ¸½ºßÍøÍѤǤ­¤Ê¤¤¡¢¤Ê¤É¤¬¹Í¤¨¤é¤ì¤ë¡£¥Ç¥Õ¥©¥ë -¥È¤Î¥¢¥¯¥·¥ç¥ó¤Ï `continue'¡£ -.SS +/\- ½ñ¼°¤È¤Î´Ø·¸ (compat ¥â¡¼¥É) -NYS µ¡Ç½¤òÁȤ߹þ¤ó¤Ç¤¤¤Ê¤¤ libc5 ¤Ï¡¢¥Í¡¼¥à¥µ¡¼¥Ó¥¹¥¹¥¤¥Ã¥Á¤Îµ¡Ç½¤ò»ý¤Ã -¤Æ¤¤¤Ê¤¤¡£¤·¤«¤·¤¢¤ëÄøÅ٤Υݥꥷ¡¼À©¸æ¤Ï¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +サービスが一時的に利用できない。ファイルがロックされている、サーバの接 +続数がリミットを越えていて現在利用できない、などが考えられる。デフォル +トのアクションは `continue'。 +.SS +/\- 書式との関係 (compat モード) +NYS 機能を組み込んでいない libc5 は、ネームサービススイッチの機能を持っ +ていない。しかしある程度のポリシー制御は行うことができる。 .I /etc/passwd -¤Ç¤Ï +user ¤ä +@netgroup (NIS ¤Î passwd ¥Þ¥Ã¥×¤«¤é»ØÄꤷ¤¿¥æ¡¼¥¶¤ò¼è¤ê¹þ -¤à)¡¢ \-user ¤ä \-@netgroup (»ØÄꤷ¤¿¥æ¡¼¥¶¤ò½ü³°¤¹¤ë)¡¢ + (NIS ¤Î -passwd ¥Þ¥Ã¥×¤«¤é¡¢½ü³°¤µ¤ì¤¿¥æ¡¼¥¶°Ê³°¤ÎÁ´¤Æ¤Î¥¨¥ó¥È¥ê¤ò¼è¤ê¹þ¤à) ¤Ê -¤É¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤Û¤È¤ó¤É¤Î¾ì¹ç¤Ï +では +user や +@netgroup (NIS の passwd マップから指定したユーザを取り込 +む)、 \-user や \-@netgroup (指定したユーザを除外する)、 + (NIS の +passwd マップから、除外されたユーザ以外の全てのエントリを取り込む) な +どを指定することができる。 +ほとんどの場合は .I /etc/passwd -¤ÎºÇ¸å¤Ë + ¤òÉÕ¤±¤Æ NIS ¤Î¤¹¤Ù¤Æ¤ò¼è¤ê¹þ¤ó¤Ç¤¤¤ë¤À¤±¤Ê¤Î¤Ç¡¢ -¥Í¡¼¥à¥µ¡¼¥Ó¥¹¥¹¥¤¥Ã¥Á¤òÍѤ¤¤Æ -(`passwd: files nis') ¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¤è¤ê¹â®¤ÊÆ°ºî¤¬´üÂԤǤ­¡¢ -¤Þ¤¿ +の最後に + を付けて NIS のすべてを取り込んでいるだけなので、 +ネームサービススイッチを用いて +(`passwd: files nis') のようにすればより高速な動作が期待でき、 +また .IR /etc/passwd ", " /etc/group ", " /etc/shadow -¤Ë + ¤À¤±¤Î¥¨¥ó¥È¥ê¤ò½ñ¤«¤Ê¤¯¤Æ¤¹¤à¡£ -¤è¤êºÙ¤«¤ÊÀ©¸æ¤ò¹Ô¤¤¤¿¤¤¾ì¹ç¤Ï¡¢ NSS ¤Î `compat' ¥µ¡¼¥Ó¥¹¤òÍѤ¤¤ì¤Ð -+/\- ½ñ¼°¤ò¥Õ¥ë¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥½¡¼¥¹¤Ï `nis' ¤Ë¤Ê¤Ã -¤Æ¤¤¤ë¤¬¡¢¤³¤ì¤Ïµ¼»÷¥Ç¡¼¥¿¥Ù¡¼¥¹ +に + だけのエントリを書かなくてすむ。 +より細かな制御を行いたい場合は、 NSS の `compat' サービスを用いれば ++/\- 書式をフルに用いることができる。デフォルトではソースは `nis' になっ +ているが、これは擬似データベース .BR passwd_compat , group_compat , shadow_compat -¤Ê¤É¤Ë `nisplus' ¤ò»ØÄꤹ¤ë¤³¤È¤Ç¾å½ñ¤­¤Ç¤­¤ë¡£ -¤³¤ì¤é¤Îµ¼»÷¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ï GNU C ¥é¥¤¥Ö¥é¥ê¤Ç¤·¤«ÍøÍѤǤ­¤Ê¤¤¡£ -.SH ¥Õ¥¡¥¤¥ë -SERVICE ¤È¤¤¤¦Ì¾Á°¤Î¥µ¡¼¥Ó¥¹¤Ï libnss_SERVICE.so.1 ¤È¤¤¤¦Ì¾Á°¤Î¶¦Í­¥ª -¥Ö¥¸¥§¥¯¥È¥é¥¤¥Ö¥é¥ê¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£¤³¤ì¤Ï /lib ¤ËÃÖ¤«¤ì¤ë¡£ +などに `nisplus' を指定することで上書きできる。 +これらの擬似データベースは GNU C ライブラリでしか利用できない。 +.SH ファイル +SERVICE という名前のサービスは libnss_SERVICE.so.1 という名前の共有オ +ブジェクトライブラリで実装されている。これは /lib に置かれる。 .TP 25 .PD 0 .I /etc/nsswitch.conf -ÀßÄê¥Õ¥¡¥¤¥ë¡£ +設定ファイル。 .TP .BI /lib/libnss_compat.so. X -glibc2 ¤ËÂФ·¤Æ `compat' ¥½¡¼¥¹¤ò¼ÂÁõ¤·¤¿¤â¤Î¡£ +glibc2 に対して `compat' ソースを実装したもの。 .TP .BI /lib/libnss_db.so. X -glibc2 ¤ËÂФ·¤Æ `db' ¥½¡¼¥¹¤ò¼ÂÁõ¤·¤¿¤â¤Î¡£ +glibc2 に対して `db' ソースを実装したもの。 .TP .BI /lib/libnss_dns.so. X -glibc2 ¤ËÂФ·¤Æ `dns' ¥½¡¼¥¹¤ò¼ÂÁõ¤·¤¿¤â¤Î¡£ +glibc2 に対して `dns' ソースを実装したもの。 .TP .BI /lib/libnss_files.so. X -glibc2 ¤ËÂФ·¤Æ `files' ¥½¡¼¥¹¤ò¼ÂÁõ¤·¤¿¤â¤Î¡£ +glibc2 に対して `files' ソースを実装したもの。 .TP .BI /lib/libnss_hesoid.so. X -glibc2 ¤ËÂФ·¤Æ `hesoid' ¥½¡¼¥¹¤ò¼ÂÁõ¤·¤¿¤â¤Î¡£ +glibc2 に対して `hesoid' ソースを実装したもの。 .TP .BI /lib/libnss_nis.so. X -glibc2 ¤ËÂФ·¤Æ `nis' ¥½¡¼¥¹¤ò¼ÂÁõ¤·¤¿¤â¤Î¡£ +glibc2 に対して `nis' ソースを実装したもの。 .TP .BI /lib/libnss_nisplus.so. X -glibc2 ¤ËÂФ·¤Æ `nisplus' ¥½¡¼¥¹¤ò¼ÂÁõ¤·¤¿¤â¤Î¡£ +glibc2 に対して `nisplus' ソースを実装したもの。 .TP .I /lib/libnss_nisplus.so.2 -glibc 2.1 ¤ËÂФ·¤Æ `nisplus' ¥½¡¼¥¹¤ò¼ÂÁõ¤·¤¿¤â¤Î¡£ +glibc 2.1 に対して `nisplus' ソースを実装したもの。 .PD -.SH Ãí°Õ +.SH 注意 .I nsswitch.conf -¤òÍøÍѤ¹¤ë¤½¤ì¤¾¤ì¤Î¥×¥í¥»¥¹¤Ç¤Ï¡¢¥Õ¥¡¥¤¥ë¤Ï°ìÅÙ¤·¤«Æɤ߹þ¤Þ¤ì¤Ê¤¤¡£ -¤â¤· nsswitch.conf ¤¬¤¢¤È¤Ç½ñ¤­´¹¤¨¤é¤ì¤Æ¤â¡¢ -¤½¤Î¥×¥í¥»¥¹¤Ï¸Å¤¤ÀßÄê¤Î¤Þ¤Þ¤ÇÆ°ºî¤ò·Ñ³¤¹¤ë¡£ +を利用するそれぞれのプロセスでは、ファイルは一度しか読み込まれない。 +もし nsswitch.conf があとで書き換えられても、 +そのプロセスは古い設定のままで動作を継続する。 .LP -Solaris ¤Ç¤Ï NSS ¥µ¡¼¥Ó¥¹¤òÍѤ¤¤¿¥×¥í¥°¥é¥à¤ò¥¹¥¿¥Æ¥£¥Ã¥¯¤Ë¥ê¥ó¥¯¤¹¤ë -¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ Linux ¤Ç¤ÏÌäÂê¤Ê¤¯¥¹¥¿¥Æ¥£¥Ã¥¯¥ê¥ó¥¯¤Ç¤­¤ë¡£ +Solaris では NSS サービスを用いたプログラムをスタティックにリンクする +ことはできない。 Linux では問題なくスタティックリンクできる。 diff --git a/release/man5/passwd.5 b/release/man5/passwd.5 index 0833f9d9..2093e579 100644 --- a/release/man5/passwd.5 +++ b/release/man5/passwd.5 @@ -34,118 +34,118 @@ .\" Updated 2006-07-19, Akihiro MOTOKI , LDP v2.36 .\" .TH PASSWD 5 1998-01-05 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -passwd \- ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë -.SH ÀâÌÀ +.SH 名前 +passwd \- パスワードファイル +.SH 説明 .B passwd -¥Õ¥¡¥¤¥ë¤Ï¡¢¤½¤Î¥·¥¹¥Æ¥à¤Î¥¢¥«¥¦¥ó¥È¥ê¥¹¥È¤òÊÝ»ý¤¹¤ë¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ -¥¢¥«¥¦¥ó¥ÈËè¤Ë¡¢¥æ¡¼¥¶¡¼ ID¡¢¥°¥ë¡¼¥× ID¡¢¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¡¢ -»ÈÍѤ¹¤ë shell ¥³¥Þ¥ó¥É¤Î¼ïÎà¡¢Åù¤ÎÍ­ÍѤʾðÊó¤òÄ󶡤·¤Æ¤¤¤ë¡£ -¤Þ¤¿¡¢³Æ¥¢¥«¥¦¥ó¥È¤Î°Å¹æ²½¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤òÊÝ»ý¤¹¤ë¾ì¹ç¤â¤¢¤ë¡£ -¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹µö²Ä¤Ï¡¢Á´¥æ¡¼¥¶¡¼¤Ë -Æɤ߽Ф·¤Îµö²Ä¤òÍ¿¤¨ +ファイルは、そのシステムのアカウントリストを保持するテキストファイルである。 +アカウント毎に、ユーザー ID、グループ ID、ホームディレクトリ、 +使用する shell コマンドの種類、等の有用な情報を提供している。 +また、各アカウントの暗号化されたパスワードを保持する場合もある。 +パスワードファイルのアクセス許可は、全ユーザーに +読み出しの許可を与え .RI ( ls (1) -Åù¤Î¿¤¯¤Î¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ç¤Ï¥æ¡¼¥¶¡¼ ID ¤ò¥æ¡¼¥¶¡¼Ì¾¤Ë -Âбþ¤µ¤»¤ë¤Î¤Ë +等の多くのユーティリティではユーザー ID をユーザー名に +対応させるのに .B passwd -¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ¹¤ë)¡¢ -½ñ¤­¹þ¤ßµö²Ä¤Ï¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¤Ë¤Î¤ßÍ¿¤¨¤ë¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +ファイルを使用する)、 +書き込み許可はスーパーユーザーにのみ与えるようにすべきである。 .PP -¸Å¤­Îɤ­»þÂå¤Ë¤Ï¡¢¤³¤ÎÁ´¥æ¡¼¥¶¡¼¤ËÂФ¹¤ëÆɤ߼è¤êµö²Ä¤Ï -ÆÃÊ̤ÊÌäÂê¤òµ¯¤³¤µ¤Ê¤«¤Ã¤¿¡£Ã¯¤Ç¤â°Å¹æ²½¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤ò -Æɤळ¤È¤¬½ÐÍ褿¤¬¡¢¾å¼ê¤ËÁª¤Ð¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤òÇˤë¤Î¤Ë¤Ï -Åö»þ¤Î¥Ï¡¼¥É¥¦¥§¥¢¤Î®Å٤Ϥ¢¤Þ¤ê¤ËÃÙ¤«¤Ã¤¿¤·¡¢¤½¤ì¤Ë²Ã¤¨¤Æ -ͧ¹¥Åª¤Ê¥æ¡¼¥¶¡¼¼Ò²ñ¤Ç¤¢¤ë¤³¤È¤ò´ðËÜŪ¤ÊÁ°Äó¤È¤·¤Æ¤¤¤¿¡£ -ºÇ¶á¤Ç¤Ï¿¤¯¤Î¿Í¤¬¡¢²¿¤é¤«¤Î¥Ð¡¼¥¸¥ç¥ó¤Î shadow password suite -(¥·¥ã¥É¥¦¡¦¥Ñ¥¹¥ï¡¼¥Éµ¡Ç½¤ò¼Â¸½¤¹¤ë¤¿¤á¤Î¥×¥í¥°¥é¥à·²) -¤òÆ°¤«¤·¤Æ¤¤¤ë¡£¤½¤Î¾ì¹ç +古き良き時代には、この全ユーザーに対する読み取り許可は +特別な問題を起こさなかった。誰でも暗号化されたパスワードを +読むことが出来たが、上手に選ばれたパスワードを破るのには +当時のハードウェアの速度はあまりに遅かったし、それに加えて +友好的なユーザー社会であることを基本的な前提としていた。 +最近では多くの人が、何らかのバージョンの shadow password suite +(シャドウ・パスワード機能を実現するためのプログラム群) +を動かしている。その場合 .I /etc/passwd -¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹¥ï¡¼¥ÉÍó¤Ë¤Ï¡¢°Å¹æ²½¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤ÎÂå¤ï¤ê¤Ë -¥¢¥¹¥¿¥ê¥¹¥¯ (*) ¤¬ÀßÄꤵ¤ì¤ë¡£°Å¹æ²½¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤Ï +ファイルのパスワード欄には、暗号化されたパスワードの代わりに +アスタリスク (*) が設定される。暗号化されたパスワードは .I /etc/shadow -¥Õ¥¡¥¤¥ë¤ËÊÝ»ý¤µ¤ì¤ë¡£ +ファイルに保持される。 .I /etc/shadow -¥Õ¥¡¥¤¥ë¤Ï¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¤À¤±¤¬Æɤ߽Ф¹¤³¤È¤¬¤Ç¤­¤ë¡£ +ファイルはスーパーユーザーだけが読み出すことができる。 .PP -shadow password ¤¬»È¤ï¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Ë¤Ï¤è¤é¤º¡¢Â¿¤¯¤Î¥·¥¹¥Æ¥à -´ÉÍý¼Ô¤Ï¡¢°Å¹æ²½¥Ñ¥¹¥ï¡¼¥ÉÍó¤Ë¥¢¥¹¥¿¥ê¥¹¥¯¤òÀßÄꤹ¤ë¤³¤È¤Ç¡¢ -¤½¤Î¥æ¡¼¥¶¡¼¤¬¥Ñ¥¹¥ï¡¼¥É¤Ç¤Îǧ¾Ú¤¬¼õ¤±¤é¤ì¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¤¤ë -(²¼µ­¤Î¡ÖÃí°Õ¡×¤Î¹à¤ò»²¾È)¡£ +shadow password が使われているかどうかにはよらず、多くのシステム +管理者は、暗号化パスワード欄にアスタリスクを設定することで、 +そのユーザーがパスワードでの認証が受けられないようにしている +(下記の「注意」の項を参照)。 .PP -¿·¤·¤¤¥æ¡¼¥¶¡¼¤òÅÐÏ¿¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢¥Ñ¥¹¥ï¡¼¥ÉÍó¤Ë¥¢¥¹¥¿¥ê¥¹¥¯¤òÀßÄꤷ¤Æ¤ª¤­ +新しいユーザーを登録する場合には、パスワード欄にアスタリスクを設定しておき .BR passwd (1) -¥³¥Þ¥ó¥É¤Ë¤è¤êÀßÄê¤ò¹Ô¤¦¤è¤¦¤Ë¤¹¤ë¡£ +コマンドにより設定を行うようにする。 .PP -¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Ï 1 ¹Ô¤´¤È¤Ë 1 ¥¨¥ó¥È¥ê¤ò»ý¤Á¡¢ -³Æ¹Ô¤Î½ñ¼°¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë: +パスワードファイルは 1 行ごとに 1 エントリを持ち、 +各行の書式は以下の通りである: .sp .RS account:password:UID:GID:GECOS:directory:shell .RE .sp -³ÆÍó¤ÎÀâÌÀ: +各欄の説明: .RS .TP 1.0in .I account -¤½¤Î¥·¥¹¥Æ¥à¤Ç¤Î¥æ¡¼¥¶¡¼Ì¾¡£Âçʸ»ú¤ò´Þ¤Þ¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£ +そのシステムでのユーザー名。大文字を含まないようにする。 .TP .I password -¥æ¡¼¥¶¡¼¤Î°Å¹æ²½¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¡¢¥¢¥¹¥¿¥ê¥¹¥¯¡¢¤Þ¤¿¤Ïʸ»ú \(aqx\(aq -(\(aqx\(aq ¤ÎÀâÌÀ¤Ë¤Ä¤¤¤Æ¤Ï +ユーザーの暗号化されたパスワード、アスタリスク、または文字 \(aqx\(aq +(\(aqx\(aq の説明については .BR pwconv (8) -¤ò»²¾È)¡£ +を参照)。 .TP .I UID -¥æ¡¼¥¶¡¼ ID Èֹ档 +ユーザー ID 番号。 .TP .I GID -¥æ¡¼¥¶¡¼¤¬Â°¤¹¤ë¥×¥é¥¤¥Þ¥ê¥°¥ë¡¼¥× ID Èֹ档 +ユーザーが属するプライマリグループ ID 番号。 .TP .I GECOS -ËÜÍó¤Ï¾Êά²Äǽ¤Ç¡¢¾ðÊóÄ󶡤ÎÌÜŪ¤Î¤ß¤Ë»È¤ï¤ì¤ë¡£ -¥æ¡¼¥¶¡¼¤Î¥Õ¥ë¥Í¡¼¥à¤òÀßÄꤹ¤ë¤³¤È¤¬Â¿¤¤¡£GECOS ¤Ï General Electric -Comprehensive Operating System ¤ò°ÕÌ£¤·¤Æ¤ª¤ê¡¢GE ¼Ò¤ÎÂ絬ÌÏ¥·¥¹¥Æ¥àÉôÌç -¤¬ Honeywell ¼Ò¤ËÇäµÑ¤µ¤ì¤¿ºÝ¤Ë GCOS ¤Ø¤ÈÊѹ¹¤µ¤ì¤¿¡£Dennis Ritchie »á¤Ï -¼¡¤Î¤è¤¦¤Ë¸À¤Ã¤Æ¤¤¤ë:¡Ö»þ¡¹¥×¥ê¥ó¥¿½ÐÎϤ䡢 -¥Ð¥Ã¥Á¥¸¥ç¥Ö¤ò GCOS ¥Þ¥·¥ó¤ËÁ÷¤Ã¤¿¤ê¤¹¤ë¤¬¡¢ -¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Î gcos Íó¤Ï $IDENT ¥«¡¼¥ÉÍѤξðÊó¤ò -±£¤·¤Æ¤ª¤¯¤¿¤á¤Î¾ì½ê¤Ê¤ó¤À¡£¤Þ¤ë¤Ã¤­¤ê¥¨¥ì¥¬¥ó¥È¤¸¤ã¤Ê¤¤¡£¡× +本欄は省略可能で、情報提供の目的のみに使われる。 +ユーザーのフルネームを設定することが多い。GECOS は General Electric +Comprehensive Operating System を意味しており、GE 社の大規模システム部門 +が Honeywell 社に売却された際に GCOS へと変更された。Dennis Ritchie 氏は +次のように言っている:「時々プリンタ出力や、 +バッチジョブを GCOS マシンに送ったりするが、 +パスワードファイルの gcos 欄は $IDENT カード用の情報を +隠しておくための場所なんだ。まるっきりエレガントじゃない。」 .TP .I directory -¥æ¡¼¥¶¡¼¤Î +ユーザーの .B $HOME -¥Ç¥£¥ì¥¯¥È¥ê¡£ +ディレクトリ。 .TP .I shell -¥í¥°¥¤¥ó»þ¤ËÆ°¤¯¥×¥í¥°¥é¥à̾ (¶õÍó¤Î¾ì¹ç +ログイン時に動くプログラム名 (空欄の場合 .I /bin/sh -¤¬»È¤ï¤ì¤ë)¡£ -¸ºß¤·¤Ê¤¤¼Â¹Ô¥×¥í¥°¥é¥à¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ +が使われる)。 +存在しない実行プログラムが設定された場合、 .BR login (1) -¤Ë¤è¤ë¥·¥¹¥Æ¥à¤Ø¤Î¥í¥°¥¤¥ó¤Ï¤Ç¤­¤Ê¤¯¤Ê¤ë¡£ +によるシステムへのログインはできなくなる。 .RE -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .I /etc/passwd -.SH Ãí°Õ -¥æ¡¼¥¶¡¼¥°¥ë¡¼¥×¤òºî¤ê¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢Æ±¤¸¥°¥ë¡¼¥×¤Ë°¤¹¤ë -¥æ¡¼¥¶¡¼¤Î GID ¤ÏƱ¤¸ÃͤȤ·¡¢¤½¤Î GID ¤ò \fI/etc/group\fP ¤ÎÃæ¤Ë -ÄêµÁ¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¡£¤½¤¦¤·¤Ê¤¤¤È¥°¥ë¡¼¥×¤òºî¤Ã¤¿¤³¤È¤Ë¤Ï¤Ê¤é¤Ê¤¤¡£ +.SH 注意 +ユーザーグループを作りたい場合には、同じグループに属する +ユーザーの GID は同じ値とし、その GID を \fI/etc/group\fP の中に +定義しておく必要がある。そうしないとグループを作ったことにはならない。 .PP -°Å¹æ²½¥Ñ¥¹¥ï¡¼¥É¤È¤·¤Æ¥¢¥¹¥¿¥ê¥¹¥¯¤òÀßÄꤹ¤ë¤È¡¢ +暗号化パスワードとしてアスタリスクを設定すると、 .BR login (1) -¤ò»È¤Ã¤Æ¤Î¥í¥°¥¤¥ó¤¬¤Ç¤­¤Ê¤¯¤Ê¤ë¤¬¡¢ +を使ってのログインができなくなるが、 .BR rlogin (1) -¤Ç¤Ï¤Þ¤À¥í¥°¥¤¥ó¤¬¤Ç¤­¤ë¤·¡¢ +ではまだログインができるし、 .BR rsh (1), .BR cron (8), .BR at (1) -¤ä¥á¥¤¥ë¤Î¥Õ¥£¥ë¥¿Åù¤ò»È¤¤¡¢¸½Â¸¤¹¤ë¥×¥í¥»¥¹¤ò -¼Â¹Ô¤µ¤»¤¿¤ê¡¢¿·¤¿¤Ê¥×¥í¥»¥¹¤òµ¯Æ°¤·¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -»ÈÍѤ¹¤ë shell ¤ÎÍó¤ò¡¢Ã±¤ËÊѹ¹¤¹¤ë¤³¤È¤Ç¥¢¥«¥¦¥ó¥È¤ò -»È¤¨¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤Î¤âƱÍͤηë²Ì¤È¤Ê¤ë¡£¤½¤Î¾ì¹ç¤Ë¤Ï¤µ¤é¤Ë +やメイルのフィルタ等を使い、現存するプロセスを +実行させたり、新たなプロセスを起動したりすることができる。 +使用する shell の欄を、単に変更することでアカウントを +使えないようにするのも同様の結果となる。その場合にはさらに .BR su (1) -¤âÍ­¸ú¤Ê¤Þ¤Þ»Ä¤Ã¤Æ¤·¤Þ¤¦¡£ -.SH ´ØÏ¢¹àÌÜ +も有効なまま残ってしまう。 +.SH 関連項目 .BR login (1), .BR passwd (1), .BR su (1), diff --git a/release/man5/proc.5 b/release/man5/proc.5 index 6da1ee7b..4c1856c6 100644 --- a/release/man5/proc.5 +++ b/release/man5/proc.5 @@ -90,45 +90,45 @@ .\" Updated 2009-03-03, Akihiro MOTOKI, LDP v3.19 .\" Updated 2009-03-13, Akihiro MOTOKI, LDP v3.20 .\" -.\"WORD: pseudo-filesystem µ¼»÷¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -.\"WORD: major ¥á¥¸¥ã¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ -.\"WORD: minor ¥Þ¥¤¥Ê¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ -.\"WORD: inode i¥Î¡¼¥ÉÈÖ¹æ -.\"WORD: executable ¼Â¹Ô·Á¼° -.\"WORD: file descriptor ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD: swap in/out ¥¹¥ï¥Ã¥×¥¤¥ó/¥¢¥¦¥È -.\"WORD: page in/out ¥Ú¡¼¥¸¥¤¥ó/¥¢¥¦¥È -.\"WORD: minor/major fault ¥Þ¥¤¥Ê¡¼/¥á¥¸¥ã¡¼¥Õ¥©¡¼¥ë¥È -.\"WORD: demand-loaded in Í×µá»þ¥í¡¼¥É¥¤¥ó -.\"WORD: channels ¥Á¥ã¥Í¥ë -.\"WORD: core file ¥³¥¢¥Õ¥¡¥¤¥ë -.\"WORD: loadable module ¥í¡¼¥À¥Ö¥ë¥â¥¸¥å¡¼¥ë -.\"WORD: hotplugged ³èÀþÁÞÈ´ -.\"WORD: context switches ¥³¥ó¥Æ¥¯¥¹¥È¡¦¥¹¥¤¥Ã¥Á +.\"WORD: pseudo-filesystem 擬似ファイルシステム +.\"WORD: major メジャーデバイス番号 +.\"WORD: minor マイナーデバイス番号 +.\"WORD: inode iノード番号 +.\"WORD: executable 実行形式 +.\"WORD: file descriptor ファイルディスクリプタ +.\"WORD: swap in/out スワップイン/アウト +.\"WORD: page in/out ページイン/アウト +.\"WORD: minor/major fault マイナー/メジャーフォールト +.\"WORD: demand-loaded in 要求時ロードイン +.\"WORD: channels チャネル +.\"WORD: core file コアファイル +.\"WORD: loadable module ローダブルモジュール +.\"WORD: hotplugged 活線挿抜 +.\"WORD: context switches コンテクスト・スイッチ .\" .TH PROC 5 2009-09-30 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -proc \- ¥×¥í¥»¥¹¤Î¾ðÊó¤ò´Þ¤àµ¼»÷¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -.SH ÀâÌÀ +.SH 名前 +proc \- プロセスの情報を含む擬似ファイルシステム +.SH 説明 .I proc -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ïµ¼»÷Ū¤Ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤ê¡¢ -¥«¡¼¥Í¥ëÆâ¤Î¥Ç¡¼¥¿¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤È¤·¤Æ»ÈÍѤµ¤ì¤ë¡£ -°ìÈÌŪ¤Ë¤Ï +ファイルシステムは擬似的なファイルシステムであり、 +カーネル内のデータへのインターフェースとして使用される。 +一般的には .I /proc -¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤ë¡£ -ÂçÉôʬ¤Î¥Õ¥¡¥¤¥ë¤ÏÆɤ߽Ф·ÀìÍÑ (read-only) ¤Ç¤¢¤ë¤¬¡¢ -¤¤¤¯¤Ä¤«¤Î¥Õ¥¡¥¤¥ë¤Ï½ñ¤­¹þ¤ß²Äǽ¤Ç¤¢¤ê¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤á¤Ð¥«¡¼¥Í¥ë¤ÎÆâÉôÊÑ¿ô¤òÊѹ¹¤Ç¤­¤ë¡£ +にマウントされる。 +大部分のファイルは読み出し専用 (read-only) であるが、 +いくつかのファイルは書き込み可能であり、 +そのファイルに書き込めばカーネルの内部変数を変更できる。 .LP -°Ê²¼¤Ï +以下は .I /proc -³¬ÁؤδÊñ¤Ê¤¢¤é¤Þ¤·¤Ç¤¢¤ë¡£ +階層の簡単なあらましである。 .PD 1 .TP .I /proc/[pid] -¼Â¹ÔÃæ¤Î¥×¥í¥»¥¹¤Ë¤Ä¤¤¤Æ¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¡£ -¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê̾¤Ï (¤½¤Î¥×¥í¥»¥¹¤Î) ¥×¥í¥»¥¹ ID ¤Ç¤¢¤ë¡£ -³Æ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢°Ê²¼¤Îµ¼»÷¥Õ¥¡¥¤¥ë¤È¥Ç¥£¥ì¥¯¥È¥ê¤ò´Þ¤à¡£ +実行中のプロセスについてのサブディレクトリ。 +サブディレクトリ名は (そのプロセスの) プロセス ID である。 +各サブディレクトリは、以下の擬似ファイルとディレクトリを含む。 .\" FIXME Describe /proc/[pid]/attr and .\" /proc/[pid]/task/[tid]/attr .\" This is a directory @@ -136,11 +136,11 @@ proc \- .\" CONFIG_SECURITY .\" .TP -.IR /proc/[number]/auxv " (¥«¡¼¥Í¥ë 2.6.0-test7 °Ê¹ß)" -¼Â¹Ô»þ¤Ë¥×¥í¥»¥¹¤ËÅϤµ¤ì¤¿ ELF ¥¤¥ó¥¿¥×¥ê¥¿¾ðÊ󤬳ÊǼ¤µ¤ì¤Æ¤¤¤ë¡£ -¸Ä¡¹¤Î¥¨¥ó¥È¥ê¤Ï¡¢\fIunsigned long\fP ·¿¤Î ID 1 ¸Ä¤Ë -\fIunsigned long\fP ·¿¤ÎÃÍ 1 ¸Ä¤¬Â³¤¯¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤¢¤ë¡£ -ºÇ¸å¤Î¥¨¥ó¥È¥ê¤Ë¤Ï 0 ¤¬ 2 ¸ÄÆþ¤Ã¤Æ¤¤¤ë¡£ +.IR /proc/[number]/auxv " (カーネル 2.6.0-test7 以降)" +実行時にプロセスに渡された ELF インタプリタ情報が格納されている。 +個々のエントリは、\fIunsigned long\fP 型の ID 1 個に +\fIunsigned long\fP 型の値 1 個が続くフォーマットである。 +最後のエントリには 0 が 2 個入っている。 .\" FIXME Describe /proc/[pid]/cgroup and .\" /proc/[pid]/task/[tid]/cgroup .\" Info in Documentation/cgroups.txt @@ -154,28 +154,28 @@ proc \- .\" CONFIG_PROC_PAGE_MONITOR .TP .I /proc/[pid]/cmdline -¥×¥í¥»¥¹¤Î´°Á´¤Ê¥³¥Þ¥ó¥É¹Ô¤òÊÝ»ý¤¹¤ë¡£ -¤¿¤À¤·¡¢¤½¤Î¥×¥í¥»¥¹¤¬¥¾¥ó¥Ó¥×¥í¥»¥¹¤Î¾ì¹ç¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¶õ¤È¤Ê¤ë¡£ -.\" Linux 2.3.26 ¤Ç¤Ï¡¢¥×¥í¥»¥¹¤¬¥¹¥ï¥Ã¥×¥¢¥¦¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤â¡¢ -.\" ¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¶õ¤È¤Ê¤Ã¤Æ¤¤¤¿¡£ -¤Ä¤Þ¤ê¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤òÆɤ߽Ф·¤Æ¤â°ìʸ»ú¤âÊÖ¤é¤Ê¤¤¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ç¤Ï¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤¬¡¢ -¥Ì¥ëʸ»ú¤Ç¶èÀÚ¤é¤ì¤¿Ê¸»úÎó¤È¤·¤Æ½ñ¤«¤ì¤Æ¤ª¤ê¡¢ -ºÇ¸å¤Îʸ»úÎó¤Î¸å¤Ë¥Ì¥ë¥Ð¥¤¥È (\(aq\\0\(aq) ¤¬°ì¤ÄÃÖ¤«¤ì¤ë¡£ -.TP -.IR /proc/[pid]/coredump_filter " (kernel 2.6.23 °Ê¹ß)" +プロセスの完全なコマンド行を保持する。 +ただし、そのプロセスがゾンビプロセスの場合は、このファイルは空となる。 +.\" Linux 2.3.26 では、プロセスがスワップアウトされている場合も、 +.\" このファイルは空となっていた。 +つまり、このファイルを読み出しても一文字も返らない。 +このファイルではコマンドライン引き数が、 +ヌル文字で区切られた文字列として書かれており、 +最後の文字列の後にヌルバイト (\(aq\\0\(aq) が一つ置かれる。 +.TP +.IR /proc/[pid]/coredump_filter " (kernel 2.6.23 以降)" .BR core (5) -»²¾È¡£ +参照。 .TP -.IR /proc/[pid]/cpuset " (kernel 2.6.12 °Ê¹ß)" +.IR /proc/[pid]/cpuset " (kernel 2.6.12 以降)" .\" and/proc/[pid]/task/[tid]/cpuset .BR cpuset (7) -»²¾È¡£ +参照。 .TP .I /proc/[pid]/cwd -¥×¥í¥»¥¹¤Î¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤Ø¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¡£ -Î㤨¤Ð¡¢¥×¥í¥»¥¹ 20 ¤Î¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤ò¸«¤Ä¤±¤ë¤¿¤á¤Ë¤Ï¡¢ -¼¡¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¤è¤¤¡£ +プロセスのカレントワーキングディレクトリへのシンボリックリンク。 +例えば、プロセス 20 のカレントワーキングディレクトリを見つけるためには、 +次のようにすればよい。 .in +4n .nf @@ -184,26 +184,26 @@ proc \- .in .I pwd -¥³¥Þ¥ó¥É¤Ï¥·¥§¥ë¤ÎÆâÉô¥³¥Þ¥ó¥É¤Î¤³¤È¤¬¤è¤¯¤¢¤ê¡¢ -¤¦¤Þ¤¯Æ°ºî¤·¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ +コマンドはシェルの内部コマンドのことがよくあり、 +うまく動作しないかもしれない。 .BR bash (1) -¤Ç¤Ï +では .I "pwd \-P" -¤ò»È¤Ã¤Æ¤â¤è¤¤¡£ +を使ってもよい。 -.\" °Ê²¼¤ÎÆâÍÆ¤Ï ¥«¡¼¥Í¥ë 2.6.13 ¤Ç¤Ï¤Þ¤ÀÀµ¤·¤¤¡£ -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥×¥í¥»¥¹¤Ç¤Ï¡¢¥á¥¤¥ó¥¹¥ì¥Ã¥É¤¬¤¹¤Ç¤Ë½ªÎ»¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -¤³¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ÎÆâÍƤϻ²¾È¤Ç¤­¤Ê¤¤ -(¥¹¥ì¥Ã¥É¤Î½ªÎ»¤ÏÄ̾ï +.\" 以下の内容は カーネル 2.6.13 ではまだ正しい。 +マルチスレッドプロセスでは、メインスレッドがすでに終了している場合、 +このシンボリックリンクの内容は参照できない +(スレッドの終了は通常 .BR pthread_exit (3) -¤ò¸Æ¤Ó½Ð¤·¤Ë¤è¤ê¹Ô¤ï¤ì¤ë)¡£ +を呼び出しにより行われる)。 .TP .I /proc/[pid]/environ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥×¥í¥»¥¹¤Î´Ä¶­ÊÑ¿ô¤ò´Þ¤ó¤Ç¤¤¤ë¡£ -³Æ¥¨¥ó¥È¥ê¤Ï NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Ç¶èÀÚ¤é¤ì¤Æ¤¤¤Æ¡¢ -ËöÈø¤Ë NULL ¥Ð¥¤¥È¤¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¥×¥í¥»¥¹ 1 ¤Î´Ä¶­ÊÑ¿ô¤òɽ¼¨¤¹¤ë¤¿¤á¤Ë¤Ï -¼¡¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¤è¤¤¡£ +このファイルはプロセスの環境変数を含んでいる。 +各エントリは NULL バイト (\(aq\\0\(aq) で区切られていて、 +末尾に NULL バイトがあるかもしれない。 +したがって、プロセス 1 の環境変数を表示するためには +次のようにすればよい。 .in +4n .nf @@ -214,66 +214,66 @@ proc \- .in .TP .I /proc/[pid]/exe -Linux 2.2 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¡¢ -¼Â¹Ô²Äǽ¥³¥Þ¥ó¥É¤Î¼ÂºÝ¤Î¥Ñ¥¹Ì¾¤ò³ÊǼ¤·¤Æ¤¤¤ë¡£ -¤³¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ÏÄ̾ï¤Î¤è¤¦¤Ëé¤ë¤³¤È¤¬¤Ç¤­¤ë; -¤³¤ì¤ò¥ª¡¼¥×¥ó¤¹¤ë¤È¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤¬¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£ -(¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç) +Linux 2.2 以降では、このファイルはシンボリックリンクで、 +実行可能コマンドの実際のパス名を格納している。 +このシンボリックリンクは通常のように辿ることができる; +これをオープンすると実行可能ファイルがオープンされる。 +(コマンドラインで) .I /proc/[pid]/exe -¤ÈÆþÎϤ¹¤ë¤È¡¢¥×¥í¥»¥¹ÈÖ¹æ [pid] ¤Ç¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë -¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤ò¤â¤¦°ì¤Ä¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.\" °Ê²¼¤ÎÆâÍÆ¤Ï ¥«¡¼¥Í¥ë 2.6.13 ¤Ç¤Ï¤Þ¤ÀÀµ¤·¤¤¡£ -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥×¥í¥»¥¹¤Ç¤Ï¡¢¥á¥¤¥ó¥¹¥ì¥Ã¥É¤¬¤¹¤Ç¤Ë½ªÎ»¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -¤³¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ÎÆâÍƤϻ²¾È¤Ç¤­¤Ê¤¤ -(¥¹¥ì¥Ã¥É¤Î½ªÎ»¤ÏÄ̾ï +と入力すると、プロセス番号 [pid] で実行されている +実行可能ファイルをもう一つ実行することができる。 +.\" 以下の内容は カーネル 2.6.13 ではまだ正しい。 +マルチスレッドプロセスでは、メインスレッドがすでに終了している場合、 +このシンボリックリンクの内容は参照できない +(スレッドの終了は通常 .BR pthread_exit (3) -¤ò¸Æ¤Ó½Ð¤·¤Ë¤è¤ê¹Ô¤ï¤ì¤ë)¡£ +を呼び出しにより行われる)。 -Linux 2.0 °ÊÁ°¤Ç¤Ï¡¢ +Linux 2.0 以前では、 .I /proc/[pid]/exe -¤Ï¼Â¹Ô¤µ¤ì¤¿¥Ð¥¤¥Ê¥ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¤è¤¦¤Ë¸«¤¨¤ë¡£ -Linux 2.0 °ÊÁ°¤Ç¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ +は実行されたバイナリへのポインタで、シンボリックリンクのように見える。 +Linux 2.0 以前では、このファイルに対して .BR readlink (2) -¤ò¼Â¹Ô¤¹¤ë¤È¡¢ +を実行すると、 - [¥Ç¥Ð¥¤¥¹ÈÖ¹æ]:i¥Î¡¼¥ÉÈÖ¹æ + [デバイス番号]:iノード番号 -¤È¤¤¤¦¥Õ¥©¡¼¥Þ¥Ã¥È¤Îʸ»úÎó¤¬Ê֤롣 +というフォーマットの文字列が返る。 -¤¿¤È¤¨¤Ð¡¢[0301]:1502 ¤Ï¥á¥¸¥ã¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ 03 (IDE, MFM ¤Ê¤É¤Î¥É¥é¥¤¥Ö) -¥Þ¥¤¥Ê¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ 01 (ºÇ½é¤Î¥É¥é¥¤¥Ö¤ÎºÇ½é¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó) ¤Î -¥Ç¥Ð¥¤¥¹¾å¤Î i¥Î¡¼¥ÉÈÖ¹æ 1502 ¤Ç¤¢¤ë¡£ +たとえば、[0301]:1502 はメジャーデバイス番号 03 (IDE, MFM などのドライブ) +マイナーデバイス番号 01 (最初のドライブの最初のパーティション) の +デバイス上の iノード番号 1502 である。 .I \-inum -¥ª¥×¥·¥ç¥ó¤ò¤Ä¤±¤Æ +オプションをつけて .BR find (1) -¤ò»È¤¦¤È¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Î½êºß¤òõ¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +を使うと、このファイルの所在を探すことができる。 .TP .I /proc/[pid]/fd -¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤·¤¿¥Õ¥¡¥¤¥ë³Æ¡¹¤ËÂФ¹¤ë¥¨¥ó¥È¥ê¤ò´Þ¤à¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¡£ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥Õ¥¡¥¤¥ë̾¤Ç¡¢ -¼ÂºÝ¤Î¥Õ¥¡¥¤¥ë¤Ø¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ 0 ¤Ïɸ½àÆþÎÏ¡¢1 ¤Ïɸ½à½ÐÎÏ¡¢2 ¤Ïɸ½à¥¨¥é¡¼½ÐÎÏ¡¢¤Ê¤É¤È¤Ê¤ë¡£ - -.\" °Ê²¼¤ÎÆâÍÆ¤Ï ¥«¡¼¥Í¥ë 2.6.13 ¤Ç¤Ï¤Þ¤ÀÀµ¤·¤¤¡£ -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥×¥í¥»¥¹¤Ç¤Ï¡¢¥á¥¤¥ó¥¹¥ì¥Ã¥É¤¬¤¹¤Ç¤Ë½ªÎ»¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ÎÆâÍƤϻ²¾È¤Ç¤­¤Ê¤¤ -(¥¹¥ì¥Ã¥É¤Î½ªÎ»¤ÏÄ̾ï +プロセスがオープンしたファイル各々に対するエントリを含むサブディレクトリ。 +ファイルディスクリプタがファイル名で、 +実際のファイルへのシンボリックリンクになっている。 +したがって 0 は標準入力、1 は標準出力、2 は標準エラー出力、などとなる。 + +.\" 以下の内容は カーネル 2.6.13 ではまだ正しい。 +マルチスレッドプロセスでは、メインスレッドがすでに終了している場合、 +このディレクトリの内容は参照できない +(スレッドの終了は通常 .BR pthread_exit (3) -¤ò¸Æ¤Ó½Ð¤·¤Ë¤è¤ê¹Ô¤ï¤ì¤ë)¡£ +を呼び出しにより行われる)。 -¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤È¤·¤Æ¥Õ¥¡¥¤¥ë̾¤ò¼õ¤±¼è¤ë¤¬¡¢°ú¤­¿ô¤¬ -ÅϤµ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ëɸ½àÆþÎϤ«¤éÆþÎϤò¼õ¤±¼è¤é¤Ê¤¤¤è¤¦¤Ê¥×¥í¥°¥é¥à¤ä¡¢ -¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤È¤·¤Æ½ñ¤­¹þ¤ß¥Õ¥¡¥¤¥ë¤ò¼õ¤±¼è¤ë¤¬¡¢°ú¤­¿ô¤¬ -ÅϤµ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ëɸ½à½ÐÎϤ˽ÐÎϤò¹Ô¤ï¤Ê¤¤¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ç¤¢¤Ã¤Æ¤â¡¢ +コマンドライン引き数としてファイル名を受け取るが、引き数が +渡されなかった場合に標準入力から入力を受け取らないようなプログラムや、 +コマンドライン引き数として書き込みファイルを受け取るが、引き数が +渡されなかった場合に標準出力に出力を行わないようなプログラムであっても、 .I /proc/[pid]/fd -¤ò»È¤¦¤³¤È¤Çɸ½àÆþÎϤäɸ½à½ÐÎϤò»ÈÍѤǤ­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -Î㤨¤Ð¡¢ +を使うことで標準入力や標準出力を使用できるようになる。 +例えば、 .I \-i -¤òÆþÎÏ¥Õ¥¡¥¤¥ë¤ò»ØÄꤹ¤ë¥Õ¥é¥°¡¢ +を入力ファイルを指定するフラグ、 .I \-o -¤ò½ÐÎÏ¥Õ¥¡¥¤¥ë¤ò»ØÄꤹ¤ë¥Õ¥é¥°¤È²¾Äꤹ¤ë¤È¡¢°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò -¼Â¹Ô¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢¥Õ¥£¥ë¥¿¤È¤·¤ÆÆ°ºî¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を出力ファイルを指定するフラグと仮定すると、以下のコマンドを +実行することにより、フィルタとして動作させることができる。 .in +4n .nf @@ -281,32 +281,32 @@ Linux 2.0 .fi .in -.\" »ä¤Î¥Æ¥¹¥È¤Ç¤Ï¡¢°Ê²¼¤ÏÀµ¤·¤¯¤Ê¤«¤Ã¤¿ (MTK): -.\" ¤¿¤À¤· fd ¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¤Ï¥·¡¼¥¯ (seek) ¤Ç¤­¤Ê¤¤¤Î¤Ç¡¢ -.\" ¤³¤ÎÊýË¡¤Ï¥Õ¥¡¥¤¥ë¤ò¥·¡¼¥¯¤¹¤ë¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¤¦¤Þ¤¯Æ¯¤«¤Ê¤¤¡£ +.\" 私のテストでは、以下は正しくなかった (MTK): +.\" ただし fd ディレクトリ内のファイルはシーク (seek) できないので、 +.\" この方法はファイルをシークするようなプログラムではうまく働かない。 .I /proc/self/fd/N -¤Ï¡¢¤¢¤ë¼ï¤Î Unix ¤ä Unix É÷¤Î¥·¥¹¥Æ¥à¤Ë¤¢¤ë +は、ある種の Unix や Unix 風のシステムにある .I /dev/fd/N -¤È¤À¤¤¤¿¤¤Æ±¤¸¤Ç¤¢¤ë¡£ -»ö¼Â Linux ¤Î¤¿¤¤¤Æ¤¤¤Î MAKEDEV ¥¹¥¯¥ê¥×¥È¤Ï¡¢ +とだいたい同じである。 +事実 Linux のたいていの MAKEDEV スクリプトは、 .I /dev/fd -¤ò +を .I /proc/self/fd -¤Ø¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ë¤·¤Æ¤¤¤ë¡£ +へのシンボリックリンクにしている。 -¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯ +ほとんどのシステムでは、シンボリックリンク .IR /dev/stdin , .IR /dev/stdout , .IR /dev/stderr -¤¬Ä󶡤µ¤ì¤Æ¤ª¤ê¡¢¤½¤ì¤¾¤ì +が提供されており、それぞれ .I /proc/self/fd -Æâ¤Î¥Õ¥¡¥¤¥ë +内のファイル .IR 0 , .IR 1 , .IR 2 -¤Ë¥ê¥ó¥¯¤µ¤ì¤Æ¤¤¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¾å½Ò¤Î¥µ¥ó¥×¥ë¥³¥Þ¥ó¥É¤Ï¼¡¤Î¤è¤¦¤Ë¤â½ñ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£ +にリンクされている。 +したがって、上述のサンプルコマンドは次のようにも書くことができる。 .in +4n .nf @@ -317,11 +317,11 @@ Linux 2.0 .\" Added in 2.6.11; updating requires CAP_AUDIT_CONTROL .\" CONFIG_AUDITSYSCALL .TP -.IR /proc/[pid]/fdinfo/ " (kernel 2.6.22 °Ê¹ß)" -¤³¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ëËè¤Î -¥¨¥ó¥È¥ê¤¬Æþ¤Ã¤Æ¤ª¤ê¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥Õ¥¡¥¤¥ë̾¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ -³Æ¥Õ¥¡¥¤¥ë¤ÎÆâÍƤòÆɤ߽Ф¹¤³¤È¤Ç¡¢Âбþ¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë´Ø¤¹¤ë -¾ðÊó¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£°Ê²¼¤ËÎã¤ò¼¨¤¹¡£ +.IR /proc/[pid]/fdinfo/ " (kernel 2.6.22 以降)" +このサブディレクトリには、そのプロセスがオープンしているファイル毎の +エントリが入っており、ファイルディスクリプタがファイル名となっている。 +各ファイルの内容を読み出すことで、対応するファイルディスクリプタに関する +情報を得ることができる。以下に例を示す。 .in +4n .nf @@ -332,29 +332,29 @@ flags: 01002002 .in .I pos -¥Õ¥£¡¼¥ë¥É¤Ï 10 ¿Ê¿ô¤Ç¡¢¸½ºß¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤ò¼¨¤¹¡£ +フィールドは 10 進数で、現在のファイルオフセットを示す。 .I flags -¥Õ¥£¡¼¥ë¥É¤Ï 8 ¿Ê¿ô¤Ç¡¢ -¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹¥â¡¼¥É¤È¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤ò¼¨¤¹ +フィールドは 8 進数で、 +ファイルのアクセスモードとファイル状態フラグを示す .RB ( open (2) -»²¾È)¡£ +参照)。 -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¥×¥í¥»¥¹¤Î½êÍ­¼Ô¤À¤±¤¬Æɤ߽Ф¹¤³¤È¤¬¤Ç¤­¤ë¡£ +このディレクトリのファイルは、プロセスの所有者だけが読み出すことができる。 .\" FIXME document /proc/[pid]/io .\" .TP .\" .IR /proc/[pid]/io " (since kernel 2.6.20)" .TP -.IR /proc/[pid]/limits " (kernel 2.6.24 °Ê¹ß)" -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤Î³Æ¥ê¥½¡¼¥¹À©¸Â¤Ë¤Ä¤¤¤Æ¡¢ -¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¡¢¥Ï¡¼¥É¡¦¥ê¥ß¥Ã¥È¡¢·×–°Ì¤òɽ¼¨¤¹¤ë +.IR /proc/[pid]/limits " (kernel 2.6.24 以降)" +このファイルは、そのプロセスの各リソース制限について、 +ソフト・リミット、ハード・リミット、計測単位を表示する .RB ( getrlimit (2) -»²¾È)¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¥×¥í¥»¥¹¤Î¼Â UID ¤ò»ý¤Ä¤â¤Î¤À¤±¤¬Æɤ߽Ф¹¤³¤È¤¬¤Ç¤­¤ë¡£ +参照)。 +このファイルは、プロセスの実 UID を持つものだけが読み出すことができる。 .TP .I /proc/[pid]/maps -¸½ºß¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤ë¥á¥â¥êÎΰè¤È¤½¤Î¥¢¥¯¥»¥¹¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ò´Þ¤à¡£ +現在マップされているメモリ領域とそのアクセスパーミッションを含む。 -¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï°Ê²¼¤Î¤È¤ª¤ê: +フォーマットは以下のとおり: .nf .ft CW @@ -371,8 +371,8 @@ bffff000-c0000000 rwxp 00000000 00:00 0 .ft .fi -¤³¤³¤Ç "address" ¤Ï¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ç¤½¤Î¥á¥â¥êÎΰ褬Àê¤á¤Æ¤¤¤ë -¥¢¥É¥ì¥¹¤Ç¡¢"perms" ¤Ï¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Î¥»¥Ã¥È¤Ç¤¢¤ë¡£ +ここで "address" はプロセスのアドレス空間でそのメモリ領域が占めている +アドレスで、"perms" はパーミッションのセットである。 .nf .in +5 @@ -384,25 +384,25 @@ p = private (copy on write) .fi .in -\&"offset" ¤Ï¥Õ¥¡¥¤¥ë (¤Ê¤É¤Î) Ãæ¤Ç¤Î¥ª¥Õ¥»¥Ã¥È¡¢ -\&"dev" ¤Ï¥Ç¥Ð¥¤¥¹ (¥á¥¸¥ã¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ:¥Þ¥¤¥Ê¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ)¡¢ -\&"inode" ¤Ï¤½¤Î¥Ç¥Ð¥¤¥¹¤Î i ¥Î¡¼¥ÉÈÖ¹æ¤Ç¤¢¤ë¡£ -¤³¤ì¤¬ 0 ¤Î¤È¤­¤Ï¡¢bss (½é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ç¡¼¥¿Îΰè) ¤Î¾ì¹ç¤Î¤è¤¦¤Ë -¤³¤Î¥á¥â¥êÎΰè¤Ë¤Ï¤É¤Î i ¥Î¡¼¥É¤â³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò°ÕÌ£¤·¤Æ¤¤¤ë¡£ +\&"offset" はファイル (などの) 中でのオフセット、 +\&"dev" はデバイス (メジャーデバイス番号:マイナーデバイス番号)、 +\&"inode" はそのデバイスの i ノード番号である。 +これが 0 のときは、bss (初期化されていないデータ領域) の場合のように +このメモリ領域にはどの i ノードも割り当てられていないことを意味している。 -Linux 2.0 ¤Ç¤Ï¥Ñ¥¹Ì¾¤ò½ñ¤¤¤¿¥Õ¥£¡¼¥ë¥É¤¬¤Ê¤¤¡£ +Linux 2.0 ではパス名を書いたフィールドがない。 .TP .I /proc/[pid]/mem -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢ +このファイルは、 .BR open (2), .BR read (2), .BR lseek (2) -¤òÄ̤·¤Æ¡¢¥×¥í¥»¥¹¤Î¥á¥â¥ê¤Î¥Ú¡¼¥¸¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ +を通して、プロセスのメモリのページにアクセスするために使われる。 .TP -.IR /proc/[pid]/mountinfo " (Linux 2.6.26 °Ê¹ß)" +.IR /proc/[pid]/mountinfo " (Linux 2.6.26 以降)" .\" This info adapted from Documentation/filesystems/proc.txt -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ -°Ê²¼¤Î¤è¤¦¤Ê·Á¼°¤Î¹Ô¤«¤é¹½À®¤µ¤ì¤ë¡£ +このファイルには、マウントポイントについての情報が入っている。 +以下のような形式の行から構成される。 .nf .ft CW @@ -411,200 +411,200 @@ Linux 2.0 .ft .fi .IP -³ç¸ÌÉÕ¤­¤Î¿ô»ú¤Ï¡¢°Ê²¼¤ÎÀâÌÀ¤Î¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ +括弧付きの数字は、以下の説明のためのものである。 .RS 7 .TP 5 (1) -¥Þ¥¦¥ó¥È ID: ¥Þ¥¦¥ó¥È¤Î°ì°Õ¤Ê¼±ÊÌ»Ò +マウント ID: マウントの一意な識別子 .RB ( umount (2) -¤Î¸å¤ÏºÆÍøÍѤµ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤)¡£ +の後は再利用されるかもしれない)。 .TP (2) -parent ID: ¿Æ¥Þ¥¦¥ó¥È¤Î ID -(¥Þ¥¦¥ó¥È¥Ä¥ê¡¼¤ÎºÇ¾å°Ì¤Î¾ì¹ç¤Ï¼«Ê¬¼«¿È¤Î ID ¤È¤Ê¤ë)¡£ +parent ID: 親マウントの ID +(マウントツリーの最上位の場合は自分自身の ID となる)。 .TP (3) -major:minor: ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î¥Õ¥¡¥¤¥ë¤Î +major:minor: ファイルシステム上のファイルの .I st_dev -¤ÎÃÍ +の値 .RB ( stat (2) -»²¾È)¡£ +参照)。 .TP (4) -¥ë¡¼¥È: ¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÆâ¤Î¥Þ¥¦¥ó¥È¤Î¥ë¡¼¥È¡£ +ルート: そのファイルシステム内のマウントのルート。 .TP (5) -¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È: ¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Î¤½¤Î¥×¥í¥»¥¹¤Î¥ë¡¼¥È¤«¤é¤ÎÁêÂХѥ¹¡£ +マウントポイント: マウントポイントのそのプロセスのルートからの相対パス。 .TP (6) -¥Þ¥¦¥ó¥È¥ª¥×¥·¥ç¥ó: ³Æ¥Þ¥¦¥ó¥È¤Î¥ª¥×¥·¥ç¥ó¡£ +マウントオプション: 各マウントのオプション。 .TP (7) -¥ª¥×¥·¥ç¥ó¥Õ¥£¡¼¥ë¥É: "tag[:value]" ·Á¼°¤Î¥Õ¥£¡¼¥ë¥É¤¬ 0 ¸Ä°Ê¾åʤ֡£ +オプションフィールド: "tag[:value]" 形式のフィールドが 0 個以上並ぶ。 .TP (8) -¥»¥Ñ¥ì¡¼¥¿: ¥ª¥×¥·¥ç¥ó¥Õ¥£¡¼¥ë¥É¤Î½ª¤ï¤ê¤ò¼¨¤¹¡£ +セパレータ: オプションフィールドの終わりを示す。 .TP (9) -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¼ïÊÌ: ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î̾Á°¡£ -"type[.subtype]" ¤È¤¤¤¦·Á¼°¤È¤Ê¤ë¡£ +ファイルシステム種別: ファイルシステムの名前。 +"type[.subtype]" という形式となる。 .TP (10) -¥Þ¥¦¥ó¥È¸µ: ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¸ÇÍ­¤Î¾ðÊ󡣤ʤ¤¾ì¹ç¤Ï "none" ¤È¤Ê¤ë¡£ +マウント元: ファイルシステム固有の情報。ない場合は "none" となる。 .TP (11) -super options: ¥¹¡¼¥Ñ¡¼¥Ö¥í¥Ã¥¯Ã±°Ì¤Î¥ª¥×¥·¥ç¥ó¡£ +super options: スーパーブロック単位のオプション。 .RE .IP -²ò¼á¤¹¤ë¦¤Ïǧ¼±¤Ç¤­¤Ê¤¤¥ª¥×¥·¥ç¥ó¥Õ¥£¡¼¥ë¥É¤ÏÁ´¤Æ̵»ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¸½ºß¤Î¤È¤³¤í¡¢¥ª¥×¥·¥ç¥ó¥Õ¥£¡¼¥ë¥É¤È¤·¤Æ¤Ï°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤¬¤¢¤ë¡£ +解釈する側は認識できないオプションフィールドは全て無視すべきである。 +現在のところ、オプションフィールドとしては以下のようなものがある。 .RS 12 .TP 18 shared:X -¥Þ¥¦¥ó¥È¤Ï¥Ô¥¢¥°¥ë¡¼¥× (peer group) X ¤Ç¶¦Í­¤µ¤ì¤Æ¤¤¤ë¡£ +マウントはピアグループ (peer group) X で共有されている。 .TP master:X -¥Þ¥¦¥ó¥È¤Ï¥Ô¥¢¥°¥ë¡¼¥× (peer group) X ¤Î¥¹¥ì¡¼¥Ö¤Ç¤¢¤ë¡£ +マウントはピアグループ (peer group) X のスレーブである。 .TP propagate_from:X -¥Þ¥¦¥ó¥È¤Ï¥¹¥ì¡¼¥Ö¤Ç¤¢¤ê¡¢¥Ô¥¢¥°¥ë¡¼¥× X (*) ¤«¤é -mount propagation ¤ò¼õ¿®¤¹¤ë¡£ +マウントはスレーブであり、ピアグループ X (*) から +mount propagation を受信する。 .TP unbindable -¥Þ¥¦¥ó¥È¤Ï unbind ¤Ç¤­¤Ê¤¤¡£ +マウントは unbind できない。 .RE .IP -(*) X ¤Ï¡¢¥×¥í¥»¥¹¤Î root ¤Çľ¶á¤Î dominant peer group ¤Ç¤¢¤ë¡£ -X ¤¬¥Þ¥¦¥ó¥È¤ÎľÀܤΥޥ¹¥¿¡¼¤Ç¤¢¤ë¾ì¹ç¤ä¡¢ -Ʊ¤¸ root ¤Ë dominant peer group ¤¬¤Ê¤¤¾ì¹ç¤Ï¡¢ -"master:X" ¥Õ¥£¡¼¥ë¥É¤À¤±¤¬Â¸ºß¤·¡¢ -"propagate_from:X" ¥Õ¥£¡¼¥ë¥É¤Ï¸ºß¤·¤Ê¤¤¡£ +(*) X は、プロセスの root で直近の dominant peer group である。 +X がマウントの直接のマスターである場合や、 +同じ root に dominant peer group がない場合は、 +"master:X" フィールドだけが存在し、 +"propagate_from:X" フィールドは存在しない。 -mount propagation ¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥«¡¼¥Í¥ë¥½¡¼¥¹¥Ä¥ê¡¼Æâ¤Î +mount propagation の詳細については、カーネルソースツリー内の .I Documentation/filesystems/sharedsubtree.txt -¤ò»²¾È¡£ +を参照。 .TP -.IR /proc/[pid]/mounts " (Linux 2.4.19 °Ê¹ß)" -¤½¤Î¥×¥í¥»¥¹¤Î¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤Ë¸½ºß¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë -Á´¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥ê¥¹¥È¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï +.IR /proc/[pid]/mounts " (Linux 2.4.19 以降)" +そのプロセスのマウント名前空間に現在マウントされている +全ファイルシステムのリスト。 +このファイルのフォーマットは .BR fstab (5) -¤ËºÜ¤Ã¤Æ¤¤¤ë¡£ -¥«¡¼¥Í¥ë 2.6.15 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ò´Æ»ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë (pollable)¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤òÆɤ߽Ф·ÍѤ˥ª¡¼¥×¥ó¤·¤¿¸å¤Ç¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ËÊѹ¹¤¬¤¢¤ë¤È -(¤Ä¤Þ¤ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Þ¥¦¥ó¥È¤ä¥¢¥ó¥Þ¥¦¥ó¥È¤¬¤¢¤ë¤È)¡¢ +に載っている。 +カーネル 2.6.15 以降では、このファイルを監視することができる (pollable)。 +このファイルを読み出し用にオープンした後で、このファイルに変更があると +(つまりファイルシステムのマウントやアンマウントがあると)、 .BR select (2) -¤Ç¤Ï¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÆɤ߽Ф·²Äǽ¤È¤Ê¤ê¡¢ +ではそのファイルディスクリプタは読み出し可能となり、 .BR poll (2) -¤È +と .BR epoll_wait (2) -¤Ç¤Ï¤½¤Î¥Õ¥¡¥¤¥ë¤Ï¥¨¥é¡¼¾õÂ֤Ȥ·¤ÆÄÌÃΤµ¤ì¤ë¡£ +ではそのファイルはエラー状態として通知される。 .TP -.IR /proc/[pid]/mountstats " (Linux 2.6.17 °Ê¹ß)" -¤³¤Î¥Õ¥¡¥¤¥ë¤òÄ̤¸¤Æ¡¢¤½¤Î¥×¥í¥»¥¹¤Î̾Á°¶õ´ÖÆâ¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ë´Ø¤¹¤ë -³Æ¼ï¾ðÊó (Åý·×¡¢ÀßÄê¾ðÊó) ¤ò»²¾È¤Ç¤­¤ë¡£ -¥Õ¥¡¥¤¥ë¤Î³Æ¹Ô¤Ï°Ê²¼¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤¢¤ë¡£ +.IR /proc/[pid]/mountstats " (Linux 2.6.17 以降)" +このファイルを通じて、そのプロセスの名前空間内のマウントポイントに関する +各種情報 (統計、設定情報) を参照できる。 +ファイルの各行は以下のフォーマットである。 .nf device /dev/sda7 mounted on /home with fstype ext3 [statistics] ( 1 ) ( 2 ) (3 ) (4) .fi .IP -³Æ¹Ô¤Î¥Õ¥£¡¼¥ë¥É¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +各行のフィールドは以下の通りである。 .RS 7 .TP 5 (1) -¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¥Ç¥Ð¥¤¥¹Ì¾ -(Âбþ¤¹¤ë¥Ç¥Ð¥¤¥¹¤¬¤Ê¤¤¾ì¹ç¤Ï "nodevice" ¤È¤Ê¤ë)¡£ +マウントされているデバイス名 +(対応するデバイスがない場合は "nodevice" となる)。 .TP (2) -¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥Ä¥ê¡¼¤Ë¤ª¤±¤ë¥Ñ¥¹Ì¾¡£ +マウントポイントのファイルシステムツリーにおけるパス名。 .TP (3) -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¼ïÊÌ¡£ +ファイルシステム種別。 .TP (4) -ÄɲäÎÅý·×¤äÀßÄê¾ðÊó¡£ -¸½ºß¤Î¤È¤³¤í (Linux 2.6.26 »þÅÀ¤Ç¤Ï)¡¢ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ç¾ðÊó¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¤Î¤Ï NFS ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤À¤±¤Ç¤¢¤ë¡£ +追加の統計や設定情報。 +現在のところ (Linux 2.6.26 時点では)、 +このフィールドで情報が提供されているのは NFS ファイルシステムだけである。 .RE .IP -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥×¥í¥»¥¹¤Î½êÍ­¼Ô¤À¤±¤¬Æɤ߽Ф¹¤³¤È¤¬¤Ç¤­¤ë¡£ +このファイルはプロセスの所有者だけが読み出すことができる。 .TP -.IR /proc/[pid]/numa_maps " (Linux 2.6.14 °Ê¹ß)" +.IR /proc/[pid]/numa_maps " (Linux 2.6.14 以降)" .BR numa (7) -¤ò»²¾È¡£ +を参照。 .TP -.IR /proc/[pid]/oom_adj " (Linux 2.6.11 °Ê¹ß)" -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¥á¥â¥êÉÔ­ (OOM) ¤Î¾õ¶·²¼¤Ç -¤É¤Î¥×¥í¥»¥¹¤ò»¦¤¹¤Ù¤­¤«¤òÁªÂò¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¥¹¥³¥¢¤ò -Ä´À°¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ -¥«¡¼¥Í¥ë¤Ï¡¢¥×¥í¥»¥¹¤Î +.IR /proc/[pid]/oom_adj " (Linux 2.6.11 以降)" +このファイルは、メモリ不足 (OOM) の状況下で +どのプロセスを殺すべきかを選択するのに使用されるスコアを +調整するのに使用される。 +カーネルは、プロセスの .I oom_score -ÃͤΥӥåȥ·¥Õ¥ÈÁàºî¤Ë¡¢¤³¤ÎÃͤò»ÈÍѤ¹¤ë¡£ -¤³¤ÎÃͤȤ·¤ÆÍ­¸ú¤ÊÃÍ¤Ï \-16 ¤«¤é +15 ¤Þ¤Ç¤È¡¢ -ÆÃÊ̤ʰÕÌ£¤ò»ý¤Ä \-17 ¤Ç¤¢¤ë¡£ -\-17 ¤Ï¤½¤Î¥×¥í¥»¥¹¤ËÂФ¹¤ë OOM-killing ¤ò´°Á´¤Ë̵¸ú¤Ë¤¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -Àµ¤ÎÃͤۤɡ¢¤½¤Î¥×¥í¥»¥¹¤¬ OOM-killer ¤Ë¤è¤ê»¦¤µ¤ì¤ë²ÄǽÀ­¤¬¹â¤¯¤Ê¤ê¡¢ -Éé¤ÎÃͤۤɲÄǽÀ­¤¬Ä㤯¤Ê¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 0 ¤Ç¤¢¤ë¡£ -¿·¤·¤¤¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤Î +値のビットシフト操作に、この値を使用する。 +この値として有効な値は \-16 から +15 までと、 +特別な意味を持つ \-17 である。 +\-17 はそのプロセスに対する OOM-killing を完全に無効にすることを意味する。 +正の値ほど、そのプロセスが OOM-killer により殺される可能性が高くなり、 +負の値ほど可能性が低くなる。 +このファイルのデフォルト値は 0 である。 +新しいプロセスは親プロセスの .I oom_adj -¤ÎÀßÄê¤ò·Ñ¾µ¤¹¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤òÊѹ¹¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¥×¥í¥»¥¹¤ÏÆø¢ +の設定を継承する。 +このファイルを変更するためには、プロセスは特権 .RB ( CAP_SYS_RESOURCE ) -¤ò»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を持っていなければならない。 .TP -.IR /proc/[pid]/oom_score " (Linux 2.6.11 °Ê¹ß)" +.IR /proc/[pid]/oom_score " (Linux 2.6.11 以降)" .\" See mm/oom_kill.c::badness() in the 2.6.25 sources -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢OOM-killer ¤Î¥×¥í¥»¥¹ÁªÂòÍѤȤ·¤Æ¡¢¥«¡¼¥Í¥ë¤¬ -¤³¤Î¥×¥í¥»¥¹¤ËÂФ·¤ÆÍ¿¤¨¤¿¸½ºß¤Î¥¹¥³¥¢¤òɽ¼¨¤¹¤ë¡£ -¹â¤¤¥¹¥³¥¢¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤¬ OOM-killer ¤Ë¤è¤êÁªÂò¤µ¤ì¤ë -²ÄǽÀ­¤¬¹â¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -¤³¤Î¥¹¥³¥¢¤Î´ðËܤϤ½¤Î¥×¥í¥»¥¹¤¬»ÈÍѤ·¤Æ¤¤¤ë¥á¥â¥êÎ̤Ǥ¢¤ê¡¢ -°Ê²¼¤ÎÍ×°ø¤Ë¤è¤ê²Ã»» (+) ¸º»» (\-) ¤¬¹Ô¤ï¤ì¤ë¡£ +このファイルは、OOM-killer のプロセス選択用として、カーネルが +このプロセスに対して与えた現在のスコアを表示する。 +高いスコアは、そのプロセスが OOM-killer により選択される +可能性が高いことを意味する。 +このスコアの基本はそのプロセスが使用しているメモリ量であり、 +以下の要因により加算 (+) 減算 (\-) が行われる。 .\" See mm/oom_kill.c::badness() in the 2.6.25 sources .RS .IP * 2 -¤½¤Î¥×¥í¥»¥¹¤¬Â¿¤¯¤Î»Ò¥×¥í¥»¥¹¤ò +そのプロセスが多くの子プロセスを .BR fork (2) -¤ò»È¤Ã¤ÆºîÀ®¤·¤Æ¤¤¤ë¤« (+)¡£ +を使って作成しているか (+)。 .IP * -¤½¤Î¥×¥í¥»¥¹¤¬Ä¹»þ´Ö¼Â¹Ô¤µ¤ì¤ÆÍ褿¤«¡¢¤â¤·¤¯¤Ï -¿¤¯¤Î CPU »þ´Ö¤ò»ÈÍѤ·¤Æ¤¤¤ë¤« (\-)¡£ +そのプロセスが長時間実行されて来たか、もしくは +多くの CPU 時間を使用しているか (\-)。 .IP * -¤½¤Î¥×¥í¥»¥¹¤¬Ä㤤 nice ÃÍ (> 0) ¤ò»ý¤Ã¤Æ¤¤¤ë¤« (+)¡£ +そのプロセスが低い nice 値 (> 0) を持っているか (+)。 .IP * -¤½¤Î¥×¥í¥»¥¹¤¬Æø¢¤ò»ý¤Ã¤Æ¤¤¤ë¤« (\-)¡£ -.\" ¤è¤êÀµ³Î¤Ë¤Ï¡¢CAP_SYS_ADMIN ¤« CAP_SYS_RESOURCE ¤ò»ý¤Ã¤Æ¤¤¤ë¤«¡£ +そのプロセスが特権を持っているか (\-)。 +.\" より正確には、CAP_SYS_ADMIN か CAP_SYS_RESOURCE を持っているか。 .IP * -¤½¤Î¥×¥í¥»¥¹¤¬ direct hardware access ¤ò¹Ô¤Ã¤Æ¤¤¤ë¤« (\-)¡£ -.\" ¤è¤êÀµ³Î¤Ë¤Ï¡¢CAP_SYS_RAWIO ¤ò»ý¤Ã¤Æ¤¤¤ë¤«¡£ +そのプロセスが direct hardware access を行っているか (\-)。 +.\" より正確には、CAP_SYS_RAWIO を持っているか。 .RE .IP .I oom_score -¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤Î +は、そのプロセスの .I oom_adj -ÀßÄê¤Çµ¬Äꤵ¤ì¤ë¥Ó¥Ã¥È¥·¥Õ¥ÈÄ´À°¤Ë¤â±Æ¶Á¤òÍ¿¤¨¤ë¡£ +設定で規定されるビットシフト調整にも影響を与える。 .\" FIXME Describe /proc/[pid]/pagemap .\" Added in 2.6.25 .\" CONFIG_PROC_PAGE_MONITOR .TP .I /proc/[pid]/root -Unix ¤È Linux ¤Ç¤Ï¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥ë¡¼¥È (/) ¤ò¥×¥í¥»¥¹¤´¤È¤ËÊÌ¡¹¤Ë¤Ç¤­¤ë¡£ -¤³¤ì¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë +Unix と Linux では、 +ファイルシステムのルート (/) をプロセスごとに別々にできる。 +これはシステムコール .BR chroot (2) -¤Ë¤è¤Ã¤ÆÀßÄꤹ¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥×¥í¥»¥¹¤Î¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤ò»Ø¤¹¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¡¢ -exe ¤ä fd/* ¤Ê¤É¤ÈƱ¤¸¤è¤¦¤ÊÆ°ºî¤ò¤¹¤ë¡£ - -.\" °Ê²¼¤ÎÆâÍÆ¤Ï ¥«¡¼¥Í¥ë 2.6.13 ¤Ç¤Ï¤Þ¤ÀÀµ¤·¤¤¡£ -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥×¥í¥»¥¹¤Ç¤Ï¡¢¥á¥¤¥ó¥¹¥ì¥Ã¥É¤¬¤¹¤Ç¤Ë½ªÎ»¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -¤³¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ÎÆâÍƤϻ²¾È¤Ç¤­¤Ê¤¤ -(¥¹¥ì¥Ã¥É¤Î½ªÎ»¤ÏÄ̾ï +によって設定する。 +このファイルはプロセスのルートディレクトリを指すシンボリックリンクで、 +exe や fd/* などと同じような動作をする。 + +.\" 以下の内容は カーネル 2.6.13 ではまだ正しい。 +マルチスレッドプロセスでは、メインスレッドがすでに終了している場合、 +このシンボリックリンクの内容は参照できない +(スレッドの終了は通常 .BR pthread_exit (3) -¤ò¸Æ¤Ó½Ð¤·¤Ë¤è¤ê¹Ô¤ï¤ì¤ë)¡£ +を呼び出しにより行われる)。 .\" FIXME Describe /proc/[pid]/seccomp .\" Added in 2.6.12 .\" FIXME Describe /proc/[pid]/sessionid @@ -620,10 +620,10 @@ exe .\" Added in 2.6.9 .\" CONFIG_SCHEDSTATS .TP -.IR /proc/[pid]/smaps " (Linux 2.6.14 °Ê¹ß)" +.IR /proc/[pid]/smaps " (Linux 2.6.14 以降)" .\" CONFIG_PROC_PAGE_MONITOR -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤Î³Æ¥Þ¥Ã¥Ô¥ó¥°¤Î¥á¥â¥ê¾ÃÈñÎ̤òɽ¼¨¤¹¤ë¡£ -¥Þ¥Ã¥Ô¥ó¥°¤Î¤½¤ì¤¾¤ì¤Ë¤Ä¤¤¤Æ¡¢°Ê²¼¤Î¤è¤¦¤ÊÆâÍƤ¬É½¼¨¤µ¤ì¤ë¡£ +このファイルは、そのプロセスの各マッピングのメモリ消費量を表示する。 +マッピングのそれぞれについて、以下のような内容が表示される。 .in +4n .nf @@ -637,328 +637,328 @@ Private_Dirty: 0 kB .fi .in -ºÇ½é¤Î¹Ô¤Ë¤Ï¡¢ +最初の行には、 .I /proc/[pid]/maps -¤Çɽ¼¨¤µ¤ì¤ë¥Þ¥Ã¥Ô¥ó¥°¤ÈƱ¤¸¾ðÊó¤¬É½¼¨¤µ¤ì¤ë¡£ -»Ä¤ê¤Î¹Ô¤Ë¤Ï¡¢¥Þ¥Ã¥Ô¥ó¥°¤Î¥µ¥¤¥º¡¢¸½ºß RAM ¾å¤Ë¸ºß¤¹¤ë¥Þ¥Ã¥Ô¥ó¥°¤ÎÎÌ¡¢ -¥Þ¥Ã¥Ô¥ó¥°Æâ¤Î¶¦Í­¥Ú¡¼¥¸¤Î¤¦¤Á¥¯¥ê¡¼¥ó¤Ê¥Ú¡¼¥¸¿ô¡¢¥À¡¼¥Æ¥£¤Ê¥Ú¡¼¥¸¿ô¡¢ -¥Þ¥Ã¥Ô¥ó¥°Æâ¤Î¥×¥é¥¤¥Ù¡¼¥È¥Ú¡¼¥¸¤Î¤¦¤Á¥¯¥ê¡¼¥ó¤Ê¥Ú¡¼¥¸¿ô¡¢ -¥À¡¼¥Æ¥£¤Ê¥Ú¡¼¥¸¿ô¡¢¤ò¼¨¤¹¡£ +で表示されるマッピングと同じ情報が表示される。 +残りの行には、マッピングのサイズ、現在 RAM 上に存在するマッピングの量、 +マッピング内の共有ページのうちクリーンなページ数、ダーティなページ数、 +マッピング内のプライベートページのうちクリーンなページ数、 +ダーティなページ数、を示す。 -¤³¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¤Î¤Ï¡¢¥«¡¼¥Í¥ë¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¡¦¥ª¥×¥·¥ç¥ó +このファイルが存在するのは、カーネルのコンフィギュレーション・オプション .B CONFIG_MMU -¤òÍ­¸ú¤Ë¤·¤¿¾ì¹ç¤À¤±¤Ç¤¢¤ë¡£ +を有効にした場合だけである。 .TP .I /proc/[pid]/stat -¥×¥í¥»¥¹¤Î¾õÂ֤ˤĤ¤¤Æ¤Î¾ðÊó¡£ -¤³¤ì¤Ï +プロセスの状態についての情報。 +これは .BR ps (1) -¤Ç»È¤ï¤ì¡¢ +で使われ、 .I /usr/src/linux/fs/proc/array.c -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で定義されている。 -³Æ¥Õ¥£¡¼¥ë¥É¤ò½çÈ֤ˡ¢ +各フィールドを順番に、 .BR scanf (3) -¤Î¥Õ¥©¡¼¥Þ¥Ã¥È»ØÄê»ÒÉÕ¤­¤Ç°Ê²¼¤Ë¼¨¤¹¡£ +のフォーマット指定子付きで以下に示す。 .RS .TP 12 \fIpid\fP %d -¥×¥í¥»¥¹ ID¡£ +プロセス ID。 .TP \fIcomm\fP %s -³ç¸Ì¤Ç¤¯¤¯¤é¤ì¤¿¼Â¹Ô·Á¼°¤Î¥Õ¥¡¥¤¥ë̾¡£ -¼Â¹Ô·Á¼°¤¬¥¹¥ï¥Ã¥×¥¢¥¦¥È¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Ë¤è¤é¤º¡¢¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +括弧でくくられた実行形式のファイル名。 +実行形式がスワップアウトされているかどうかによらず、見ることができる。 .TP \fIstate\fP %c -"RSDZTW" ¤Î¤É¤ì¤« 1 ʸ»ú¡£ -R ¤Ï¼Â¹ÔÃæ (running)¡¢ -S ¤Ï³ä¤ê¹þ¤ß²Äǽ¤ÊµÙ̲¾õÂÖ (sleeping in an interruptible wait)¡¢ -D ¤Ï³ä¤ê¹þ¤ßÉÔ²Äǽ¤Ê¥Ç¥£¥¹¥¯¥¹¥ê¡¼¥×¤ÎÂÔµ¡¾õÂÖ -(waiting in uninterruptible disk sleep)¡¢ -Z ¤Ï¥¾¥ó¥Ó¾õÂÖ (zombie)¡¢ -T ¤Ï¥È¥ì¡¼¥¹¤µ¤ì¤Æ¤¤¤ë (traced) ¤« -(¥·¥°¥Ê¥ë¤Ë¤è¤ê) Ää»ß¤·¤Æ¤¤¤ë¾õÂÖ (stopped)¡¢ -W ¤Ï¥Ú¡¼¥¸¥ó¥°Ãæ (paging) ¤òɽ¤·¤Æ¤¤¤ë¡£ +"RSDZTW" のどれか 1 文字。 +R は実行中 (running)、 +S は割り込み可能な休眠状態 (sleeping in an interruptible wait)、 +D は割り込み不可能なディスクスリープの待機状態 +(waiting in uninterruptible disk sleep)、 +Z はゾンビ状態 (zombie)、 +T はトレースされている (traced) か +(シグナルにより) 停止している状態 (stopped)、 +W はページング中 (paging) を表している。 .TP \fIppid\fP %d -¿Æ¥×¥í¥»¥¹¤Î PID¡£ +親プロセスの PID。 .TP \fIpgrp\fP %d -¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥× ID¡£ +プロセスのプロセスグループ ID。 .TP \fIsession\fP %d -¥×¥í¥»¥¹¤Î¥»¥Ã¥·¥ç¥ó ID¡£ +プロセスのセッション ID。 .TP \fItty_nr\fP %d -¥×¥í¥»¥¹¤ÎÀ©¸æüËö -(¥Þ¥¤¥Ê¡¼¡¦¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤Ï¥Ó¥Ã¥È 31¡Á20 ¤È 7¡Á0 ¤Ë¤Þ¤¿¤¬¤Ã¤Æ³ÊǼ¤µ¤ì¡¢ -¥á¥¸¥ã¡¼¡¦¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤Ï¥Ó¥Ã¥È 15¡Á8 ¤Ë³ÊǼ¤µ¤ì¤ë)¡£ +プロセスの制御端末 +(マイナー・デバイス番号はビット 31〜20 と 7〜0 にまたがって格納され、 +メジャー・デバイス番号はビット 15〜8 に格納される)。 .TP \fItpgid\fP %d -.\" ¤³¤Î¥Õ¥£¡¼¥ë¥É¤«¤é wchan ¤Þ¤Ç¤Ï 0.99.1 ¤ÇÄɲ䵤줿¡£ -¥×¥í¥»¥¹¤ÎÀ©¸æüËö¤Î¥Õ¥©¥¢¥°¥é¥ó¥É¡¦¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Î ID¡£ +.\" このフィールドから wchan までは 0.99.1 で追加された。 +プロセスの制御端末のフォアグランド・プロセス・グループの ID。 .TP -\fIflags\fP %u (Linux 2.6.22 ¤è¤êÁ°¤Ï %lu) -¥×¥í¥»¥¹¤Î¥«¡¼¥Í¥ë¥Õ¥é¥°¥ï¡¼¥É¡£ -¥Ó¥Ã¥È¤Î°ÕÌ£¤Ï¡¢ +\fIflags\fP %u (Linux 2.6.22 より前は %lu) +プロセスのカーネルフラグワード。 +ビットの意味は、 .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë PF_* ¤ò»²¾È¤¹¤ë¤³¤È¡£ -¾ÜºÙ¤Ï¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë°Í¸¤¹¤ë¡£ +で定義されている PF_* を参照すること。 +詳細はカーネルのバージョンに依存する。 .TP \fIminflt\fP %lu -¥×¥í¥»¥¹¤¬°ú¤­µ¯¤³¤·¤¿¥Þ¥¤¥Ê¡¼¥Õ¥©¡¼¥ë¥È (minor fault¡¢¥Ç¥£¥¹¥¯¤«¤é -¥á¥â¥ê¥Ú¡¼¥¸¤Ø¤Î¥í¡¼¥É¤òɬÍפȤ·¤Ê¤¤¥Õ¥©¡¼¥ë¥È) ¤Î²ó¿ô¡£ +プロセスが引き起こしたマイナーフォールト (minor fault、ディスクから +メモリページへのロードを必要としないフォールト) の回数。 .TP .\" field 11 \fIcminflt\fP %lu -(¤½¤Î¥×¥í¥»¥¹¤¬½ªÎ»¤òÂԤäƤ¤¤ë) -»Ò¥×¥í¥»¥¹¤¬°ú¤­µ¯¤³¤·¤¿¥Þ¥¤¥Ê¡¼¥Õ¥©¡¼¥ë¥È¤Î²ó¿ô¡£ +(そのプロセスが終了を待っている) +子プロセスが引き起こしたマイナーフォールトの回数。 .TP \fImajflt\fP %lu -¥×¥í¥»¥¹¤¬°ú¤­µ¯¤³¤·¤¿¥á¥¸¥ã¡¼¥Õ¥©¡¼¥ë¥È (major fault¡¢¥Ç¥£¥¹¥¯¤«¤é -¥á¥â¥ê¥Ú¡¼¥¸¤Ø¤Î¥í¡¼¥É¤òɬÍפȤ¹¤ë¥Õ¥©¡¼¥ë¥È) ¤Î²ó¿ô¡£ +プロセスが引き起こしたメジャーフォールト (major fault、ディスクから +メモリページへのロードを必要とするフォールト) の回数。 .TP \fIcmajflt\fP %lu -(¤½¤Î¥×¥í¥»¥¹¤¬½ªÎ»¤òÂԤäƤ¤¤ë) -»Ò¥×¥í¥»¥¹¤¬°ú¤­µ¯¤³¤·¤¿¥á¥¸¥ã¡¼¥Õ¥©¡¼¥ë¥È¤Î²ó¿ô¡£ +(そのプロセスが終了を待っている) +子プロセスが引き起こしたメジャーフォールトの回数。 .TP \fIutime\fP %lu -¤³¤Î¥×¥í¥»¥¹¤¬¥æ¡¼¥¶¡¼¥â¡¼¥É¤Ç¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤¿»þ´Ö¤Î¹ç·×¡£ -clock tick ñ°Ì¤Ç·×¬¤µ¤ì¤ë +このプロセスがユーザーモードでスケジューリングされた時間の合計。 +clock tick 単位で計測される .RI ( sysconf(_SC_CLK_TCK) -¤Ç³ä¤Ã¤¿Ãͤ¬É½¼¨¤µ¤ì¤ë)¡£ -¤³¤ÎÃͤˤϥ²¥¹¥È»þ´Ö \fIguest_time\fP (²¾ÁÛ CPU ¤Î¼Â¹Ô¤Ë¾ÃÈñ¤µ¤ì¤¿»þ´Ö) -¤â´Þ¤Þ¤ì¤ë¡£¤³¤ì¤Ï¡¢¥²¥¹¥È»þ´Ö¤Î¥Õ¥£¡¼¥ë¥É¤òǧ¼±¤·¤Ê¤¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó -¤Ë¤ª¤¤¤Æ¡¢¥²¥¹¥È»þ´Öʬ¤ò·×»»¤ËÆþ¤ì»¤Í¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ç¤¢¤ë¡£ +で割った値が表示される)。 +この値にはゲスト時間 \fIguest_time\fP (仮想 CPU の実行に消費された時間) +も含まれる。これは、ゲスト時間のフィールドを認識しないアプリケーション +において、ゲスト時間分を計算に入れ損ねないようにするためである。 .TP \fIstime\fP %lu -¥×¥í¥»¥¹¤Î¥«¡¼¥Í¥ë¥â¡¼¥É¤Ç¤Î¼Â¹Ô»þ´Ö (ñ°Ì jiffies)¡£ -¤³¤Î¥×¥í¥»¥¹¤¬¥«¡¼¥Í¥ë¥â¡¼¥É¤Ç¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤¿»þ´Ö¤Î¹ç·×¡£ -clock tick ñ°Ì¤Ç·×¬¤µ¤ì¤ë +プロセスのカーネルモードでの実行時間 (単位 jiffies)。 +このプロセスがカーネルモードでスケジューリングされた時間の合計。 +clock tick 単位で計測される .RI ( sysconf(_SC_CLK_TCK) -¤Ç³ä¤Ã¤¿Ãͤ¬É½¼¨¤µ¤ì¤ë)¡£ +で割った値が表示される)。 .TP \fIcutime\fP %ld -¤³¤Î¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Ç¡¢½ªÎ»ÂÔ¤Á (waited-for) ¤Î¥×¥í¥»¥¹¤¬¡¢ -¥æ¡¼¥¶¥â¡¼¥É¤Ç¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤¿»þ´Ö¤Î¹ç·×¡£ -clock tick ñ°Ì¤Ç·×¬¤µ¤ì¤ë +このプロセスの子プロセスで、終了待ち (waited-for) のプロセスが、 +ユーザモードでスケジューリングされた時間の合計。 +clock tick 単位で計測される .RI ( sysconf(_SC_CLK_TCK) -¤Ç³ä¤Ã¤¿Ãͤ¬É½¼¨¤µ¤ì¤ë)¡£ +で割った値が表示される)。 .RB ( times (2) -¤â»²¾È¤¹¤ë¤³¤È¡£) -¤³¤ÎÃͤˤϥ²¥¹¥È»þ´Ö \fIcguest_time\fP -(²¾ÁÛ CPU ¤ò¼Â¹Ô¤¹¤ë¤Î¤Ë¾ÃÈñ¤·¤¿»þ´Ö¡¢²¼µ­»²¾È) ¤â´Þ¤Þ¤ì¤ë¡£ +も参照すること。) +この値にはゲスト時間 \fIcguest_time\fP +(仮想 CPU を実行するのに消費した時間、下記参照) も含まれる。 .TP \fIcstime\fP %ld -¤³¤Î¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Ç¡¢½ªÎ»ÂÔ¤Á (waited-for) ¤Î¥×¥í¥»¥¹¤¬¡¢ -¥«¡¼¥Í¥ë¥â¡¼¥É¤Ç¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤¿»þ´Ö¤Î¹ç·×¡£ -clock tick ñ°Ì¤Ç·×¬¤µ¤ì¤ë +このプロセスの子プロセスで、終了待ち (waited-for) のプロセスが、 +カーネルモードでスケジューリングされた時間の合計。 +clock tick 単位で計測される .RI ( sysconf(_SC_CLK_TCK) -¤Ç³ä¤Ã¤¿Ãͤ¬É½¼¨¤µ¤ì¤ë)¡£ +で割った値が表示される)。 .TP \fIpriority\fP %ld -(Linux 2.6 ¤Î¾ì¹ç¤ÎÀâÌÀ) -¥ê¥¢¥ë¥¿¥¤¥à¡¦¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥Ý¥ê¥·¡¼ -(²¼µ­¤Î +(Linux 2.6 の場合の説明) +リアルタイム・スケジューリングポリシー +(下記の .I policy ; .BR sched_setscheduler (2) -»²¾È) ¤ÇÆ°ºî¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Ç¤Ï¡¢ -¤³¤ÎÃͤϥ¹¥±¥¸¥å¡¼¥ê¥ó¥°Í¥ÀèÅÙ¤òȿž¤·¤¿ÃÍ (¥¹¥±¥¸¥å¡¼¥ê¥ó¥°Í¥ÀèÅÙ¤ò -¥Þ¥¤¥Ê¥¹¤Ë¤·¤¿ÃÍ) ¤È¤Ê¤ë¡£ÃÍ¤Ï \-2 ¤«¤é \-100 ¤Þ¤Ç¤ÎÈϰϤοôÃͤǡ¢ -¤½¤ì¤¾¤ì¥ê¥¢¥ë¥¿¥¤¥àÍ¥ÀèÅ٤Π1 ¤«¤é 9 ¤ËÂбþ¤¹¤ë¡£ -¥ê¥¢¥ë¥¿¥¤¥à°Ê³°¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥Ý¥ê¥·¡¼¤ÇÆ°ºî¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Ç¤Ï¡¢ -¤³¤ÎÃͤϥ«¡¼¥Í¥ëÆâ¤Ç´ÉÍý¤µ¤ì¤Æ¤¤¤ë nice Ãͤ½¤Î¤â¤Î +参照) で動作しているプロセスでは、 +この値はスケジューリング優先度を反転した値 (スケジューリング優先度を +マイナスにした値) となる。値は \-2 から \-100 までの範囲の数値で、 +それぞれリアルタイム優先度の 1 から 9 に対応する。 +リアルタイム以外のスケジューリングポリシーで動作しているプロセスでは、 +この値はカーネル内で管理されている nice 値そのもの .RB ( setpriority (2)) -¤È¤Ê¤ë¡£ -¥«¡¼¥Í¥ë¤Ï nice Ãͤò 0 (¹â) ¤«¤é 39 (Äã) ¤ÎÈϰϤÎÃͤȤ·¤ÆÊÝ»ý¤·¤Æ¤ª¤ê¡¢ -¤½¤ì¤¾¤ì¥æ¡¼¥¶¤Ë¸«¤¨¤ë nice ÃͤΠ\-20 ¤«¤é 19 ¤ËÂбþ¤¹¤ë¡£ +となる。 +カーネルは nice 値を 0 (高) から 39 (低) の範囲の値として保持しており、 +それぞれユーザに見える nice 値の \-20 から 19 に対応する。 -Linux 2.6 ¤è¤êÁ°¤Ç¤Ï¡¢¤³¤Î¥×¥í¥»¥¹¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥¹¥±¥¸¥å¡¼¥ê¥ó¥° -½Å¤ß¤òÊÑ´¹¤·¤¿Ãͤ¬É½¼¨¤µ¤ì¤Æ¤¤¤¿¡£ +Linux 2.6 より前では、このプロセスに割り当てられたスケジューリング +重みを変換した値が表示されていた。 .\" And back in kernel 1.2 days things were different again. .TP \fInice\fP %ld -nice ÃÍ +nice 値 .RB ( setpriority (2) -»²¾È)¡£ -19 (ºÇÄãÍ¥Àè) ¤«¤é \-20 (ºÇ¹âÍ¥Àè) ¤ÎÈϰϤÎÃͤǤ¢¤ë¡£ +参照)。 +19 (最低優先) から \-20 (最高優先) の範囲の値である。 .\" Back in kernel 1.2 days things were different. .TP .\" .TP .\" \fIcounter\fP %ld -.\" ¤³¤Î¥×¥í¥»¥¹¤¬¸½ºß¼Â¹ÔÃæ¤Ç¤¢¤ë¾ì¹ç¡¢ -.\" ¼¡¤Î¥¿¥¤¥à¥¹¥é¥¤¥¹¤Ë¤ª¤±¤ë¸½»þÅÀ¤Ç¤Î¥×¥í¥»¥¹¤ÎºÇÂç»ÈÍÑ»þ´Ö (ñ°Ì jiffies)¡¢ -.\" ¤Þ¤¿¤Ï¸½ºß¤Î¥¿¥¤¥à¥¹¥é¥¤¥¹¤Ë¤ª¤±¤ë»Ä¤ê»þ´Ö¤òɽ¤¹¡£ +.\" このプロセスが現在実行中である場合、 +.\" 次のタイムスライスにおける現時点でのプロセスの最大使用時間 (単位 jiffies)、 +.\" または現在のタイムスライスにおける残り時間を表す。 .\" .TP .\" \fItimeout\fP %u -.\" ¥×¥í¥»¥¹¤Î¼¡¤Î¥¿¥¤¥à¥¢¥¦¥È»þ´Ö(ñ°Ì jiffies)¡£ +.\" プロセスの次のタイムアウト時間(単位 jiffies)。 \fInum_threads\fP %ld -¤³¤Î¥×¥í¥»¥¹¤Î¥¹¥ì¥Ã¥É¿ô (Linux 2.6 °Ê¹ß)¡£ -¥«¡¼¥Í¥ë 2.6 ¤è¤êÁ°¤Ç¤Ï¡¢¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ïºï½ü¤µ¤ì¤¿¥Õ¥£¡¼¥ë¥É¤Î -¾ì½êËä¤á¤È¤·¤Æ 0 ¤Ë¥Ï¡¼¥É¥³¡¼¥É¤µ¤ì¤Æ¤¤¤¿¡£ +このプロセスのスレッド数 (Linux 2.6 以降)。 +カーネル 2.6 より前では、このフィールドは削除されたフィールドの +場所埋めとして 0 にハードコードされていた。 .TP .\" field 21 \fIitrealvalue\fP %ld -¥¤¥ó¥¿¡¼¥Ð¥ë¥¿¥¤¥Þ¤Ë¤è¤Ã¤Æ¡¢¼¡¤Ë +インターバルタイマによって、次に .B SIGALRM -¤¬¥×¥í¥»¥¹¤ØÁ÷¤é¤ì¤ë¤Þ¤Ç¤Î»þ´Ö (ñ°Ì jiffies)¡£ -¥«¡¼¥Í¥ë 2.6.17 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¥á¥ó¥Æ¥Ê¥ó¥¹¤µ¤ì¤Ê¤¯¤Ê¤ê¡¢ -0 ¤Ë¥Ï¡¼¥É¥³¡¼¥É¤µ¤ì¤Æ¤¤¤ë¡£ +がプロセスへ送られるまでの時間 (単位 jiffies)。 +カーネル 2.6.17 以降では、このフィールドはメンテナンスされなくなり、 +0 にハードコードされている。 .TP -\fIstarttime\fP %llu (Linux 2.6 ¤è¤êÁ°¤Ï %lu) -¥×¥í¥»¥¹¤Îµ¯Æ°»þ¹ï¡£¥·¥¹¥Æ¥à¤¬µ¯Æ°¤·¤¿»þ¹ï¤¬µ¯ÅÀ (ñ°Ì jiffies)¡£ +\fIstarttime\fP %llu (Linux 2.6 より前は %lu) +プロセスの起動時刻。システムが起動した時刻が起点 (単位 jiffies)。 .TP \fIvsize\fP %lu -²¾ÁÛ¥á¥â¥ê¤Î¥µ¥¤¥º¡£Ã±°Ì¤Ï¥Ð¥¤¥È¡£ +仮想メモリのサイズ。単位はバイト。 .TP \fIrss\fP %ld -Resident Set Size¡£¥×¥í¥»¥¹¤¬»ý¤Ã¤Æ¤¤¤ë¼Â¥á¥â¥ê¾å¤Î¥Ú¡¼¥¸¿ô¡£ -¤³¤ì¤Ï¤Á¤ç¤¦¤É¥Æ¥­¥¹¥È¡¢¥Ç¡¼¥¿¡¢¥¹¥¿¥Ã¥¯¶õ´Ö¤Ë»È¤ï¤ì¤Æ¤¤¤ë¥Ú¡¼¥¸¿ô¤Ç¤¢¤ë¡£ -¥Ç¥Þ¥ó¥É¥í¡¼¥É¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ú¡¼¥¸¤ä -¥¹¥ï¥Ã¥×¥¢¥¦¥È¤µ¤ì¤¿¥Ú¡¼¥¸¤Î¿ô¤Ï´Þ¤ó¤Ç¤¤¤Ê¤¤¡£ +Resident Set Size。プロセスが持っている実メモリ上のページ数。 +これはちょうどテキスト、データ、スタック空間に使われているページ数である。 +デマンドロードされていないページや +スワップアウトされたページの数は含んでいない。 .TP \fIrsslim\fP %lu -¤³¤Î¥×¥í¥»¥¹¤Î rss ¤Î¸½ºß¤Î¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È (¥Ð¥¤¥Èñ°Ì)¡£ +このプロセスの rss の現在のソフト・リミット (バイト単位)。 .BR getpriority (2) -¤Î +の .B RLIMIT_RSS -¤ÎÀâÌÀ¤ò»²¾È¡£ +の説明を参照。 .TP \fIstartcode\fP %lu -¥×¥í¥°¥é¥à¥Æ¥­¥¹¥È¤¬¼Â¹Ô²Äǽ¤Ç¤¢¤ë¤è¤¦¤ÊÎΰè¤ÎÀèƬ¥¢¥É¥ì¥¹¡£ +プログラムテキストが実行可能であるような領域の先頭アドレス。 .TP \fIendcode\fP %lu -¥×¥í¥°¥é¥à¥Æ¥­¥¹¥È¤¬¼Â¹Ô²Äǽ¤Ç¤¢¤ë¤è¤¦¤ÊÎΰè¤ÎËöÈø¥¢¥É¥ì¥¹¡£ +プログラムテキストが実行可能であるような領域の末尾アドレス。 .TP \fIstartstack\fP %lu -¥¹¥¿¥Ã¥¯¤Î³«»Ï¥¢¥É¥ì¥¹ (¤¹¤Ê¤ï¤Á¡¢¥¹¥¿¥Ã¥¯¤ÎÄì)¡£ +スタックの開始アドレス (すなわち、スタックの底)。 .TP \fIkstkesp\fP %lu -¸½ºß¤Î ESP (¥¹¥¿¥Ã¥¯¥Ý¥¤¥ó¥¿) ¤ÎÃÍ¡£ -¥×¥í¥»¥¹¤Î¥«¡¼¥Í¥ë¥¹¥¿¥Ã¥¯¥Ú¡¼¥¸¤Ë¤¢¤ë¡£ +現在の ESP (スタックポインタ) の値。 +プロセスのカーネルスタックページにある。 .TP \fIkstkeip\fP %lu -¸½ºß¤Î EIP (¥¤¥ó¥¹¥È¥é¥¯¥·¥ç¥ó¥Ý¥¤¥ó¥¿) ¤ÎÃÍ¡£ +現在の EIP (インストラクションポインタ) の値。 .TP .\" field 31 \fIsignal\fP %lu -½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë¤Î¥Ó¥Ã¥È¥Þ¥Ã¥×¡£ -10 ¿Ê¿ô¤Çɽ¼¨¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¡£ -¥ê¥¢¥ë¥¿¥¤¥à¡¦¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤Ïɽ¼¨¤µ¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ -Âå¤ï¤ê¤Ë +処理待ちのシグナルのビットマップ。 +10 進数で表示される。 +このフィールドは廃止予定である。 +リアルタイム・シグナルに関する情報は表示されないからである。 +代わりに .I /proc/[pid]/status -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .TP \fIblocked\fP %lu -¥Ö¥í¥Ã¥¯¤µ¤ì¤¿ (blocked) ¥·¥°¥Ê¥ë¤Î¥Ó¥Ã¥È¥Þ¥Ã¥×¡£ -10 ¿Ê¿ô¤Çɽ¼¨¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¡£ -¥ê¥¢¥ë¥¿¥¤¥à¡¦¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤Ïɽ¼¨¤µ¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ -Âå¤ï¤ê¤Ë +ブロックされた (blocked) シグナルのビットマップ。 +10 進数で表示される。 +このフィールドは廃止予定である。 +リアルタイム・シグナルに関する情報は表示されないからである。 +代わりに .I /proc/[pid]/status -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .TP \fIsigignore\fP %lu -̵»ë¤µ¤ì¤¿ (ignored) ¥·¥°¥Ê¥ë¤Î¥Ó¥Ã¥È¥Þ¥Ã¥×¡£ -10 ¿Ê¿ô¤Çɽ¼¨¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¡£ -¥ê¥¢¥ë¥¿¥¤¥à¡¦¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤Ïɽ¼¨¤µ¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ -Âå¤ï¤ê¤Ë +無視された (ignored) シグナルのビットマップ。 +10 進数で表示される。 +このフィールドは廃止予定である。 +リアルタイム・シグナルに関する情報は表示されないからである。 +代わりに .I /proc/[pid]/status -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .TP \fIsigcatch\fP %lu -Ê᪤µ¤ì¤¿ (caught) ¥·¥°¥Ê¥ë¤Î¥Ó¥Ã¥È¥Þ¥Ã¥×¡£ -10 ¿Ê¿ô¤Çɽ¼¨¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¡£ -¥ê¥¢¥ë¥¿¥¤¥à¡¦¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤Ïɽ¼¨¤µ¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ -Âå¤ï¤ê¤Ë +捕捉された (caught) シグナルのビットマップ。 +10 進数で表示される。 +このフィールドは廃止予定である。 +リアルタイム・シグナルに関する情報は表示されないからである。 +代わりに .I /proc/[pid]/status -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .TP \fIwchan\fP %lu -¥×¥í¥»¥¹¤¬ÂԤäƤ¤¤ë¡Ö¥Á¥ã¥Í¥ë¡×¡£ -¤³¤ì¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ê¡¢Ê¸»ú̾¤¬É¬Íפʤé¤Ð -(¥¢¥É¥ì¥¹¤È¥·¥¹¥Æ¥à¥³¡¼¥ë̾¤È¤Î) Âбþɽ¤«¤é¸«¤Ä¤±¤é¤ì¤ë -(¤â¤· +プロセスが待っている「チャネル」。 +これはシステムコールのアドレスであり、文字名が必要ならば +(アドレスとシステムコール名との) 対応表から見つけられる +(もし .I /etc/psdatabase -[ÌõÃí: ¤³¤Î¥Õ¥¡¥¤¥ë̾¤Ï¥Ñ¥Ã¥±¡¼¥¸¤Ë¤è¤ë] ¤ò¹¹¿·¤·¤Æ¤¤¤ë¤Ê¤é¤Ð¡¢ -\fIps \-l\fP ¤·¤Æ WCHAN ¥Õ¥£¡¼¥ë¥É¤ò¸«¤è)¡£ +[訳注: このファイル名はパッケージによる] を更新しているならば、 +\fIps \-l\fP して WCHAN フィールドを見よ)。 .TP \fInswap\fP %lu .\" nswap was added in 2.0 -¥¹¥ï¥Ã¥×¤µ¤ì¤¿¥Ú¡¼¥¸¿ô (¥á¥ó¥Æ¥Ê¥ó¥¹¤µ¤ì¤Æ¤¤¤Ê¤¤)¡£ +スワップされたページ数 (メンテナンスされていない)。 .TP \fIcnswap\fP %lu .\" cnswap was added in 2.0 -»Ò¥×¥í¥»¥¹¤Î \fInswap\fP ¤ÎÎß·× (¥á¥ó¥Æ¥Ê¥ó¥¹¤µ¤ì¤Æ¤¤¤Ê¤¤)¡£ +子プロセスの \fInswap\fP の累計 (メンテナンスされていない)。 .TP -\fIexit_signal\fP %d (Linux 2.1.22 °Ê¹ß) -¥×¥í¥»¥¹¤¬»à¤ó¤À¤È¤­¤Ë¿Æ¥×¥í¥»¥¹¤ËÁ÷¤é¤ì¤ë¥·¥°¥Ê¥ë¡£ +\fIexit_signal\fP %d (Linux 2.1.22 以降) +プロセスが死んだときに親プロセスに送られるシグナル。 .TP -\fIprocessor\fP %d (Linux 2.2.8 °Ê¹ß) -¤³¤Î¥×¥í¥»¥¹¤òºÇ¸å¤Ë¼Â¹Ô¤·¤¿ CPU ¤ÎÈֹ档 +\fIprocessor\fP %d (Linux 2.2.8 以降) +このプロセスを最後に実行した CPU の番号。 .TP -\fIrt_priority\fP %u (Linux 2.5.19 °Ê¹ß; Linux 2.6.22 ¤è¤êÁ°¤Ï %lu) -¥ê¥¢¥ë¥¿¥¤¥à¡¦¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ÎÍ¥ÀèÅÙ¡£ -¥ê¥¢¥ë¥¿¥¤¥à¡¦¥Ý¥ê¥·¡¼¤Î¸µ¤Ç¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤ë¥×¥í¥»¥¹¤Ç¤Ï -1 ¤«¤é 99 ¤ÎÈϰϤÎÃͤȤʤꡢ -¥ê¥¢¥ë¥¿¥¤¥à°Ê³°¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥Ý¥ê¥·¡¼¤Î¥×¥í¥»¥¹¤Ç¤Ï 0 ¤È¤Ê¤ë +\fIrt_priority\fP %u (Linux 2.5.19 以降; Linux 2.6.22 より前は %lu) +リアルタイム・スケジューリングの優先度。 +リアルタイム・ポリシーの元でスケジューリングされるプロセスでは +1 から 99 の範囲の値となり、 +リアルタイム以外のスケジューリングポリシーのプロセスでは 0 となる .RB ( sched_setscheduler (2) -»²¾È)¡£ +参照)。 .TP .\" field 41 -\fIpolicy\fP %u (Linux 2.5.19 °Ê¹ß; Linux 2.6.22 ¤è¤êÁ°¤Ï %lu) -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ý¥ê¥·¡¼ +\fIpolicy\fP %u (Linux 2.5.19 以降; Linux 2.6.22 より前は %lu) +スケジューリング・ポリシー .RB ( sched_setscheduler (2) -»²¾È)¡£ -Ãͤϡ¢ +参照)。 +値は、 .I linux/sched.h -¤Î SCHED_* Äê¿ô¤ò»È¤Ã¤Æ¥Ç¥³¡¼¥É¤¹¤ì¤Ð¤è¤¤¡£ +の SCHED_* 定数を使ってデコードすればよい。 .TP -\fIdelayacct_blkio_ticks\fP %llu (Linux 2.6.18 °Ê¹ß) -(clock tick (100ʬ¤Î1ÉÃ) ñ°Ì¤Ç¤Î) ¥Ö¥í¥Ã¥¯ I/O ¤ÎÁíÃÙ±äÎÌ¡£ +\fIdelayacct_blkio_ticks\fP %llu (Linux 2.6.18 以降) +(clock tick (100分の1秒) 単位での) ブロック I/O の総遅延量。 .TP -\fIguest_time\fP %lu (Linux 2.6.24 °Ê¹ß) -¥×¥í¥»¥¹¤Î¥²¥¹¥È»þ´Ö (¥²¥¹¥È OS ¤Î²¾ÁÛ CPU ¤ò¼Â¹Ô¤¹¤ë¤Î¤Ë¾ÃÈñ¤µ¤ì¤¿»þ´Ö)¡£ -clock tick ñ°Ì¤Ç·×¬¤µ¤ì¤ë +\fIguest_time\fP %lu (Linux 2.6.24 以降) +プロセスのゲスト時間 (ゲスト OS の仮想 CPU を実行するのに消費された時間)。 +clock tick 単位で計測される .RI ( sysconf(_SC_CLK_TCK) -¤Ç³ä¤Ã¤¿Ãͤ¬É½¼¨¤µ¤ì¤ë)¡£ +で割った値が表示される)。 .TP -\fIcguest_time\fP %ld (Linux 2.6.24 °Ê¹ß) -¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Î¥²¥¹¥È»þ´Ö¡£ -clock tick ñ°Ì¤Ç·×¬¤µ¤ì¤ë +\fIcguest_time\fP %ld (Linux 2.6.24 以降) +プロセスの子プロセスのゲスト時間。 +clock tick 単位で計測される .RI ( sysconf(_SC_CLK_TCK) -¤Ç³ä¤Ã¤¿Ãͤ¬É½¼¨¤µ¤ì¤ë)¡£ +で割った値が表示される)。 .RE .TP .I /proc/[pid]/statm -(¥Ú¡¼¥¸Ã±°Ì¤Ç·×¬¤·¤¿) ¥á¥â¥ê»ÈÍÑÎ̤ˤĤ¤¤Æ¤Î¾ðÊó¤òÄ󶡤¹¤ë¡£ -³ÆÎó¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +(ページ単位で計測した) メモリ使用量についての情報を提供する。 +各列は以下の通りである。 .in +4n .nf -size ¥×¥í¥°¥é¥à¥µ¥¤¥º¤ÎÁí·× - (\fI/proc/[pid]/status\fP ¤Î VmSize ¤ÈƱ¤¸) -resident ¼Â¥á¥â¥ê¾å¤Ë¸ºß¤¹¤ë¥Ú¡¼¥¸ - (\fI/proc/[pid]/status\fP ¤Î VmRSS ¤ÈƱ¤¸) -share ¶¦Í­¥Ú¡¼¥¸ (¶¦Í­¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¤Æ¤¤¤ë¥Ú¡¼¥¸) -text ¥Æ¥­¥¹¥È (¥³¡¼¥É) -.\" (libs ¤Ï´Þ¤Þ¤ì¤Ê¤¤; ¤ª¤«¤·¤Ê¤³¤È¤Ë¡¢data ¥»¥°¥á¥ó¥È¤Ï´Þ¤Þ¤ì¤ë) -lib ¥é¥¤¥Ö¥é¥ê (Linux 2.6 ¤Ç¤Ï̤»ÈÍÑ) -data ¥Ç¡¼¥¿ + ¥¹¥¿¥Ã¥¯ -.\" (libs ¤ò´Þ¤à; ¤ª¤«¤·¤Ê¤³¤È¤Ë¡¢library text ¤â´Þ¤Þ¤ì¤ë) -dt ¥À¡¼¥Æ¥£¥Ú¡¼¥¸ (Linux 2.6 ¤Ç¤Ï̤»ÈÍÑ) +size プログラムサイズの総計 + (\fI/proc/[pid]/status\fP の VmSize と同じ) +resident 実メモリ上に存在するページ + (\fI/proc/[pid]/status\fP の VmRSS と同じ) +share 共有ページ (共有マッピングされているページ) +text テキスト (コード) +.\" (libs は含まれない; おかしなことに、data セグメントは含まれる) +lib ライブラリ (Linux 2.6 では未使用) +data データ + スタック +.\" (libs を含む; おかしなことに、library text も含まれる) +dt ダーティページ (Linux 2.6 では未使用) .fi .in .TP .I /proc/[pid]/status .I /proc/[pid]/stat -¤È +と .I /proc/[pid]/statm -¤Ë¤¢¤ë¿¤¯¤Î¾ðÊó¤ò¡¢¿Í´Ö¤¬²òÀϤ·¤ä¤¹¤¤·Á¼°¤ÇÄ󶡤¹¤ë¡£ -°Ê²¼¤ËÎã¤ò¼¨¤¹¡£ +にある多くの情報を、人間が解析しやすい形式で提供する。 +以下に例を示す。 .in +4n .nf @@ -1003,218 +1003,218 @@ nonvoluntary_ctxt_switches: 545 .fi .in .IP -¥Õ¥£¡¼¥ë¥É¤Î¾ÜºÙ¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +フィールドの詳細は以下の通りである。 .RS .IP * 2 .IR Name : -¤³¤Î¥×¥í¥»¥¹¤Ë¤è¤ê¼Â¹Ô¤µ¤ì¤¿¥³¥Þ¥ó¥É¡£ +このプロセスにより実行されたコマンド。 .IP * .IR State : -¥×¥í¥»¥¹¤Î¸½ºß¤Î¾õÂÖ¡£ -"R (running; ¼Â¹ÔÃæ)", -"S (sleeping; µÙ̲¾õÂÖ)", -"D (disk sleep; ¥Ç¥£¥¹¥¯ÂÔ¤Á¤ÎµÙ̲¾õÂÖ)", -"T (stopped; Ää»ß¾õÂÖ)", -"T (tracing stop; ¥È¥ì¡¼¥¹¤Ë¤è¤ëÄä»ß)", -"Z (zombie; ¥¾¥ó¥Ó¾õÂÖ)", -"X (dead; »àË´)" -¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¡£ +プロセスの現在の状態。 +"R (running; 実行中)", +"S (sleeping; 休眠状態)", +"D (disk sleep; ディスク待ちの休眠状態)", +"T (stopped; 停止状態)", +"T (tracing stop; トレースによる停止)", +"Z (zombie; ゾンビ状態)", +"X (dead; 死亡)" +のいずれかである。 .IP * .IR Tgid : -¥¹¥ì¥Ã¥É¥°¥ë¡¼¥× ID (¤¹¤Ê¤ï¤Á¡¢¥×¥í¥»¥¹ ID)¡£ +スレッドグループ ID (すなわち、プロセス ID)。 .IP * .IR Pid : -¥¹¥ì¥Ã¥É ID +スレッド ID .RB ( gettid (2) -»²¾È)¡£ +参照)。 .IP * .IR TracerPid : -¤³¤Î¥×¥í¥»¥¹¤ò¥È¥ì¡¼¥¹¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î PID -(¥È¥ì¡¼¥¹¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï 0)¡£ +このプロセスをトレースしているプロセスの PID +(トレースされていない場合は 0)。 .IP * .IR Uid ", " Gid : -¼Â UID/GID¡¢¼Â¸ú UID/GID¡¢Êݸ set-UID/GID¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID/GID¡£ +実 UID/GID、実効 UID/GID、保存 set-UID/GID、ファイルシステム UID/GID。 .IP * .IR FDSize : -¸½ºß³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¥¹¥í¥Ã¥È¿ô¡£ +現在割り当てられているファイルディスクリプタのスロット数。 .IP * .IR Groups : -Êä½õ¥°¥ë¡¼¥×¤Î¥ê¥¹¥È¡£ +補助グループのリスト。 .IP * .IR VmPeak : -²¾ÁÛ¥á¥â¥ê¥µ¥¤¥º¤Î¥Ô¡¼¥¯ÃÍ¡£ +仮想メモリサイズのピーク値。 .IP * .IR VmSize : -²¾ÁÛ¥á¥â¥ê¥µ¥¤¥º¡£ +仮想メモリサイズ。 .IP * .IR VmLck : -¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¥á¥â¥ê¥µ¥¤¥º +ロックされているメモリサイズ .RB ( mlock (3) -»²¾È)¡£ +参照)。 .IP * .IR VmHWM : -¼Â¥á¥â¥ê¾å¤Ë¸ºß¤¹¤ë¥Ú¡¼¥¸¥µ¥¤¥º (resident set size) -¤Î¥Ô¡¼¥¯ÃÍ ("high water mark")¡£ +実メモリ上に存在するページサイズ (resident set size) +のピーク値 ("high water mark")。 .IP * .IR VmRSS : -¼Â¥á¥â¥ê¾å¤Ë¸ºß¤¹¤ë¥Ú¡¼¥¸¥µ¥¤¥º¡£ +実メモリ上に存在するページサイズ。 .IP * .IR VmData ", " VmStk ", " VmExe : -¥Ç¡¼¥¿¡¢¥¹¥¿¥Ã¥¯¡¢¥Æ¥­¥¹¥È¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º¡£ +データ、スタック、テキストセグメントのサイズ。 .IP * .IR VmLib : -¶¦Í­¥é¥¤¥Ö¥é¥ê¡¦¥³¡¼¥É¤Î¥µ¥¤¥º¡£ +共有ライブラリ・コードのサイズ。 .IP * .IR VmPTE : -¥Ú¡¼¥¸¡¦¥Æ¡¼¥Ö¥ë¡¦¥¨¥ó¥È¥ê¤Î¥µ¥¤¥º (Linux 2.6.10 °Ê¹ß)¡£ +ページ・テーブル・エントリのサイズ (Linux 2.6.10 以降)。 .IP * .IR Threads : -¤³¤Î¥¹¥ì¥Ã¥É¤¬Â°¤¹¤ë¥×¥í¥»¥¹¤Î¥¹¥ì¥Ã¥É¿ô¡£ +このスレッドが属するプロセスのスレッド数。 .IP * .IR SigPnd ", " ShdPnd : -¥¹¥ì¥Ã¥É°¸¤ª¤è¤Ó¥×¥í¥»¥¹Á´Âΰ¸¤Î½èÍýÂÔ¤Á¥·¥°¥Ê¥ë¤Î¿ô +スレッド宛およびプロセス全体宛の処理待ちシグナルの数 .RB ( pthreads (7), .BR signal (7) -»²¾È)¡£ +参照)。 .IP * .IR SigBlk ", " SigIgn ", " SigCgt : -¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¥·¥°¥Ê¥ë¡¢Ìµ»ë¤µ¤ì¤ë¥·¥°¥Ê¥ë¡¢ÊáªÂÔ¤Á¤Î¥·¥°¥Ê¥ë¤ò -¼¨¤¹¥Þ¥¹¥¯ÃÍ -.RB ( signal (7))¡£ +ブロックされるシグナル、無視されるシグナル、捕捉待ちのシグナルを +示すマスク値 +.RB ( signal (7))。 .IP * .IR CapInh ", " CapPrm ", " CapEff : -·Ñ¾µ²Äǽ (inheritable)¡¢µö²Ä (permitted)¡¢¼Â¸ú (effective) -¤Î³Æ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÇÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¥Þ¥¹¥¯ÃÍ +継承可能 (inheritable)、許可 (permitted)、実効 (effective) +の各ケーパビリティセットで有効になっているケーパビリティのマスク値 .RB ( capabilities (7) -»²¾È)¡£ +参照)。 .IP * .IR CapBnd : -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È -(¥«¡¼¥Í¥ë 2.6.26 °Ê¹ß¡¢ +ケーパビリティ・バウンディングセット +(カーネル 2.6.26 以降、 .BR capabilities (7) -»²¾È)¡£ +参照)。 .IP * .IR Cpus_allowed : -¤³¤Î¥×¥í¥»¥¹¤¬¼Â¹Ô¤òµö²Ä¤µ¤ì¤Æ¤¤¤ë CPU ¤Î¥Þ¥¹¥¯ÃÍ -(Linux 2.6.24 °Ê¹ß¡¢ +このプロセスが実行を許可されている CPU のマスク値 +(Linux 2.6.24 以降、 .BR cpuset (7) -»²¾È)¡£ +参照)。 .IP * .IR Cpus_allowed_list : -Á°¹à¤ÈƱ¤¸¤À¤¬¡¢¡Ö¥ê¥¹¥È·Á¼°¡×¤Ç¤Îɽ¼¨ -(Linux 2.6.26 °Ê¹ß¡¢ +前項と同じだが、「リスト形式」での表示 +(Linux 2.6.26 以降、 .BR cpuset (7) -»²¾È)¡£ +参照)。 .IP * .IR Mems_allowed : -¤³¤Î¥×¥í¥»¥¹¤¬»ÈÍѤǤ­¤ë¥á¥â¥ê¥Î¡¼¥É¤Î¥Þ¥¹¥¯ÃÍ -(Linux 2.6.24 °Ê¹ß¡¢ +このプロセスが使用できるメモリノードのマスク値 +(Linux 2.6.24 以降、 .BR cpuset (7) -»²¾È)¡£ +参照)。 .IP * .IR Mems_allowed_list : -Á°¹à¤ÈƱ¤¸¤À¤¬¡¢¡Ö¥ê¥¹¥È·Á¼°¡×¤Ç¤Îɽ¼¨ -(Linux 2.6.26 °Ê¹ß¡¢ +前項と同じだが、「リスト形式」での表示 +(Linux 2.6.26 以降、 .BR cpuset (7) -»²¾È)¡£ +参照)。 .IP * .IR voluntary_context_switches ", " nonvoluntary_context_switches : -¼«È¯Åª/Èó¼«È¯Åª¤Ê¥³¥ó¥Æ¥­¥¹¥È¥¹¥¤¥Ã¥Á¤Î²ó¿ô -(Linux 2.6.23 °Ê¹ß)¡£ +自発的/非自発的なコンテキストスイッチの回数 +(Linux 2.6.23 以降)。 .RE .TP -.IR /proc/[pid]/task " (Linux 2.6.0-test6 °Ê¹ß)" -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤Î¥¹¥ì¥Ã¥É¾ðÊó¤ò´Þ¤à -¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤¬ 1 ¥¹¥ì¥Ã¥É¤Ë¤Ä¤­ 1 ¤ÄÃÖ¤«¤ì¤ë¡£ -³Æ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Î̾Á°¤Ï¥¹¥ì¥Ã¥É¤Î¥¹¥ì¥Ã¥É ID +.IR /proc/[pid]/task " (Linux 2.6.0-test6 以降)" +このディレクトリには、そのプロセスのスレッド情報を含む +サブディレクトリが 1 スレッドにつき 1 つ置かれる。 +各サブディレクトリの名前はスレッドのスレッド ID .RI ( [tid] ) -¤ò¼¨¤¹¿ô»ú¤Ç¤¢¤ë +を示す数字である .BR ( gettid (2) -¤ò»²¾È)¡£ -¤³¤ì¤é¤Î³Æ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢ +を参照)。 +これらの各サブディレクトリには、 .I /proc/[pid] -¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤ÈƱ¤¸Ì¾Á°¤ÈÆâÍƤΥե¡¥¤¥ë·²¤¬¤¢¤ë¡£ -¤¹¤Ù¤Æ¤Î¥¹¥ì¥Ã¥É¤Ç¶¦Í­¤µ¤ì¤ë°À­¤Î¾ì¹ç¡¢ +ディレクトリ以下と同じ名前と内容のファイル群がある。 +すべてのスレッドで共有される属性の場合、 .I task/[tid] -¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Î³Æ¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¤Ï -¿Æ¥Ç¥£¥ì¥¯¥È¥ê +サブディレクトリ以下の各ファイルの内容は +親ディレクトリ .I /proc/[pid] -¤ÎÂбþ¤¹¤ë¥Õ¥¡¥¤¥ë¤ÈƱ¤¸¤Ë¤Ê¤ë¤³¤È¤À¤í¤¦ -(Î㤨¤Ð¡¢¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¡¦¥×¥í¥»¥¹¤Ç¤Ï¥Õ¥¡¥¤¥ë +の対応するファイルと同じになることだろう +(例えば、マルチスレッド・プロセスではファイル .I task/[tid]/cwd -¤Ï¤¤¤º¤ì¤â¿Æ¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î +はいずれも親ディレクトリ内の .I /proc/[pid]/cwd -¤ÈƱ¤¸Ãͤò»ý¤Ä¤³¤È¤Ë¤Ê¤ë¡£¤Ê¤¼¤Ê¤é¡¢°ì¤Ä¤Î¥×¥í¥»¥¹¤Ë°¤¹¤¹¤Ù¤Æ¤Î -¥¹¥ì¥Ã¥É¤Ïºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤ò¶¦Í­¤¹¤ë¤«¤é¤Ç¤¢¤ë)¡£ -¥¹¥ì¥Ã¥ÉËè¤ËÆÈΩ¤Ê°À­¤Î¾ì¹ç¡¢ +と同じ値を持つことになる。なぜなら、一つのプロセスに属すすべての +スレッドは作業ディレクトリを共有するからである)。 +スレッド毎に独立な属性の場合、 .I task/[tid] -¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Î³Æ¥Õ¥¡¥¤¥ë¤Ï°Û¤Ê¤ëÃͤò»ý¤Ä¤³¤È¤¬¤¢¤ë -(Î㤨¤Ð¡¢¥Õ¥¡¥¤¥ë +サブディレクトリ以下の各ファイルは異なる値を持つことがある +(例えば、ファイル .I task/[tid]/status -¤Ï¥¹¥ì¥Ã¥ÉËè¤Ë°Û¤Ê¤ëÃͤò»ý¤Ä²ÄǽÀ­¤¬¤¢¤ë)¡£ +はスレッド毎に異なる値を持つ可能性がある)。 -.\" °Ê²¼¤ÎÆâÍÆ¤Ï ¥«¡¼¥Í¥ë 2.6.13 ¤Ç¤Ï¤Þ¤ÀÀµ¤·¤¤¡£ -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥×¥í¥»¥¹¤Ç¤Ï¡¢¥á¥¤¥ó¥¹¥ì¥Ã¥É¤¬¤¹¤Ç¤Ë½ªÎ»¤·¤Æ¤¤¤ë¾ì¹ç¡¢ +.\" 以下の内容は カーネル 2.6.13 ではまだ正しい。 +マルチスレッドプロセスでは、メインスレッドがすでに終了している場合、 .I /proc/[pid]/task -¥Ç¥£¥ì¥¯¥È¥ê¤ÎÆâÍƤϻ²¾È¤Ç¤­¤Ê¤¤ -(¥¹¥ì¥Ã¥É¤Î½ªÎ»¤ÏÄ̾ï +ディレクトリの内容は参照できない +(スレッドの終了は通常 .BR pthread_exit (3) -¤ò¸Æ¤Ó½Ð¤·¤Ë¤è¤ê¹Ô¤ï¤ì¤ë)¡£ +を呼び出しにより行われる)。 .TP .I /proc/apm -Advanced Power Management ¤Î¥Ð¡¼¥¸¥ç¥ó¤È¥Ð¥Ã¥Æ¥ê¾ðÊó¡£ -¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +Advanced Power Management のバージョンとバッテリ情報。 +カーネルのコンパイル時に .B CONFIG_APM -¤òÄêµÁ¤·¤¿¤È¤­¤Ë¸ºß¤¹¤ë¡£ +を定義したときに存在する。 .TP .I /proc/bus -¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë³Æ¥Ð¥¹ÍѤ˥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤¬¤¢¤ë¡£ +インストールされている各バス用にサブディレクトリがある。 .TP .I /proc/bus/pccard -PCMCIA ¥Ç¥Ð¥¤¥¹¤Î¾ðÊ󤬽ñ¤«¤ì¤ë¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¡£ -¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +PCMCIA デバイスの情報が書かれるサブディレクトリ。 +カーネルのコンパイル時に .B CONFIG_PCMCIA -¤òÄêµÁ¤·¤¿¤È¤­¤Ë¸ºß¤¹¤ë¡£ +を定義したときに存在する。 .TP .I /proc/bus/pccard/drivers .TP .I /proc/bus/pci -¤¤¤¯¤Ä¤«¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤¬¤¢¤ê¡¢ -PCI ¥Ð¥¹¡¦¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ç¥Ð¥¤¥¹¡¦ -¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Î¾ðÊ󤬽ñ¤«¤ì¤¿²¾ÁÛ¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Î¤¦¤Á¤¤¤¯¤Ä¤«¤Ï ASCII ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤Ï¤Ê¤¤¡£ +いくつかのサブディレクトリがあり、 +PCI バス・インストールされているデバイス・ +デバイスドライバの情報が書かれた仮想ファイルがある。 +これらのファイルのうちいくつかは ASCII フォーマットではない。 .TP .I /proc/bus/pci/devices -PCI ¥Ç¥Ð¥¤¥¹¤Î¾ðÊó¡£ +PCI デバイスの情報。 .BR lspci (8) -¤ä +や .BR setpci (8) -¤Ç¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +でアクセスすることができる。 .TP .I /proc/cmdline -¥Ö¡¼¥È»þ¤Ë Linux ¥«¡¼¥Í¥ë¤ËÅϤµ¤ì¤¿°ú¤­¿ô¡£ -°ú¤­¿ô¤Î¼õ¤±ÅϤ·¤Ï¡¢¤¿¤¤¤Æ¤¤ +ブート時に Linux カーネルに渡された引き数。 +引き数の受け渡しは、たいてい .BR lilo (8) -¤ä +や .BR grub (8) -¤È¤¤¤Ã¤¿¥Ö¡¼¥È¥Þ¥Í¡¼¥¸¥ã¤ò»È¤Ã¤Æ¹Ô¤ï¤ì¤ë¡£ +といったブートマネージャを使って行われる。 .TP -.IR /proc/config.gz " (Linux 2.6 °Ê¹ß)" -¤³¤Î¥Õ¥¡¥¤¥ë¤Ç¤Ï¡¢¸½ºß¼Â¹ÔÃæ¤Î¥«¡¼¥Í¥ë¤Î¹½ÃÛ»þ¤Ë»ÈÍѤµ¤ì¤¿ -ÀßÄꥪ¥×¥·¥ç¥ó¤ò»²¾È¤Ç¤­¤ë¡£ -½ñ¼°¤Ï¡¢ +.IR /proc/config.gz " (Linux 2.6 以降)" +このファイルでは、現在実行中のカーネルの構築時に使用された +設定オプションを参照できる。 +書式は、 .RI ( "make xconfig" , .IR "make config" -¤Ê¤É¤ò»È¤Ã¤Æ) ¥«¡¼¥Í¥ë¤ÎÀßÄê¤òÊѹ¹¤·¤¿ºÝ¤ËÀ¸À®¤µ¤ì¤ë +などを使って) カーネルの設定を変更した際に生成される .I .config -¥Õ¥¡¥¤¥ë¤Î¤â¤Î¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -¥Õ¥¡¥¤¥ë¤ÎÆâÍƤϰµ½Ì¤µ¤ì¤Æ¤ª¤ê¡¢ +ファイルのものと同じである。 +ファイルの内容は圧縮されており、 .BR zcat (1), .BR zgrep (1) -¤Ê¤É¤ò»È¤¦¤È¡¢É½¼¨¤ä¸¡º÷¤¬¤Ç¤­¤ë¡£ -¥Õ¥¡¥¤¥ë¤¬Êѹ¹¤µ¤ì¤Æ¤¤¤Ê¤¤¸Â¤ê¡¢ +などを使うと、表示や検索ができる。 +ファイルが変更されていない限り、 .I /proc/config.gz -¤ÎÆâÍƤϼ¡¤Î¥³¥Þ¥ó¥É¤ÇÆÀ¤é¤ì¤ëÆâÍƤÈƱ¤¸¤Ç¤¢¤ë¡£ +の内容は次のコマンドで得られる内容と同じである。 .in +4n .nf @@ -1223,217 +1223,217 @@ cat /lib/modules/$(uname -r)/build/.config .in .IP .I /proc/config.gz -¤¬Ä󶡤µ¤ì¤ë¤Î¤Ï¡¢¥«¡¼¥Í¥ë¤ÎÀßÄê¤Ç +が提供されるのは、カーネルの設定で .B CONFIG_IKCONFIG_PROC -¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Î¤ß¤Ç¤¢¤ë¡£ +が有効になっている場合のみである。 .TP .I /proc/cpuinfo -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢CPU ¤ª¤è¤Ó¥·¥¹¥Æ¥à¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë°Í¸¤¹¤ë¹àÌܤò -½¸¤á¤¿¤â¤Î¤Ç¡¢¥ê¥¹¥È¤ÎÆâÍƤϥµ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥¢¡¼¥­¥Æ¥¯¥Á¥ãËè¤Ë°Û¤Ê¤ë¡£ -2 ¤Ä¤À¤±¶¦Ä̤ιàÌܤ¬¤¢¤ë¡£ -\fIprocessor\fP ¤Ï¥×¥í¥»¥Ã¥µÈÖ¹æ¤Ç¡¢ -\fIbogomips\fP ¤Ï¥«¡¼¥Í¥ë¤Î½é´ü²½»þ¤Ë·×»»¤µ¤ì¤ë¥·¥¹¥Æ¥àÄê¿ô¤Ç¤¢¤ë¡£ -SMP ¥Þ¥·¥ó¤Ç¤Ï³Æ CPU ¤Ë¤Ä¤¤¤Æ¤Î¾ðÊ󤬽ñ¤«¤ì¤Æ¤¤¤ë¡£ +このファイルは、CPU およびシステムアーキテクチャに依存する項目を +集めたもので、リストの内容はサポートされているアーキテクチャ毎に異なる。 +2 つだけ共通の項目がある。 +\fIprocessor\fP はプロセッサ番号で、 +\fIbogomips\fP はカーネルの初期化時に計算されるシステム定数である。 +SMP マシンでは各 CPU についての情報が書かれている。 .TP .I /proc/devices -¥á¥¸¥ã¡¼¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤È¥Ç¥Ð¥¤¥¹¥°¥ë¡¼¥×¤Î¥Æ¥­¥¹¥È·Á¼°¤Î¥ê¥¹¥È¡£ -MAKEDEV ¥¹¥¯¥ê¥×¥È¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤ò»È¤Ã¤Æ¡¢ -¥«¡¼¥Í¥ë¤È¤ÎÀ°¹çÀ­¤òÊݤĤ³¤È¤¬¤Ç¤­¤ë¡£ +メジャーデバイス番号とデバイスグループのテキスト形式のリスト。 +MAKEDEV スクリプトはこのファイルを使って、 +カーネルとの整合性を保つことができる。 .TP -.IR /proc/diskstats " (Linux 2.5.69 °Ê¹ß)" -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï³Æ¥Ç¥£¥¹¥¯¥Ç¥Ð¥¤¥¹¤Î¥Ç¥£¥¹¥¯ I/O Åý·×¾ðÊ󤬽ñ¤«¤ì¤Æ¤¤¤ë¡£ -¹¹¤Ë¾Ü¤·¤¤¾ðÊó¤Ï¡¢¥«¡¼¥Í¥ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë +.IR /proc/diskstats " (Linux 2.5.69 以降)" +このファイルには各ディスクデバイスのディスク I/O 統計情報が書かれている。 +更に詳しい情報は、カーネルソースファイル .I Documentation/iostats.txt -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .TP .I /proc/dma -ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë \fIISA\fP DMA (direct memory access) ¥Á¥ã¥Í¥ë¤Î¥ê¥¹¥È¡£ +登録されている \fIISA\fP DMA (direct memory access) チャネルのリスト。 .TP .I /proc/driver -¶õ¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¡£ +空のサブディレクトリ。 .TP .I /proc/execdomains -¼Â¹Ô¥É¥á¥¤¥ó¤Î¥ê¥¹¥È (ABI ¥Ñ¡¼¥½¥Ê¥ê¥Æ¥£)¡£ +実行ドメインのリスト (ABI パーソナリティ)。 .TP .I /proc/fb -¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +カーネルのコンパイル時に .B CONFIG_FB -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥Õ¥ì¡¼¥à¥Ð¥Ã¥Õ¥¡¤Î¾ðÊ󤬽ñ¤«¤ì¤ë¡£ +が定義されている場合、フレームバッファの情報が書かれる。 .TP .I /proc/filesystems -¥«¡¼¥Í¥ë¤¬Âбþ¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Æ¥­¥¹¥È·Á¼°¤Î¥ê¥¹¥È¡£ -¥«¡¼¥Í¥ë¤ËÁȤ߹þ¤Þ¤ì¤Æ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤È¡¢ -¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¤¬¸½ºß¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬Îóµó¤µ¤ì¤ë +カーネルが対応しているファイルシステムのテキスト形式のリスト。 +カーネルに組み込まれてコンパイルされたファイルシステムと、 +カーネルモジュールが現在ロードされているファイルシステムが列挙される .RB ( filesystems (5) -»²¾È)¡£ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë "nodev" ¤È¤¤¤¦°õ¤¬ÉÕ¤¤¤Æ¤¤¤ë¾ì¹ç¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¥Þ¥¦¥ó¥È¤¹¤ë¤¿¤á¤Î¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤ò -ɬÍפȤ·¤Ê¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë (Î㤨¤Ð¡¢ -²¾ÁÛ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¡¢¥Í¥Ã¥È¥ï¡¼¥¯¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ê¤É)¡£ - -¤Á¤Ê¤ß¤Ë¡¢¥Þ¥¦¥ó¥È»þ¤Ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬»ØÄꤵ¤ì¤º¡¢ -¤É¤¦¤ä¤Ã¤Æ¤â¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¼ïÎà¤òȽÄê¤Ç¤­¤Ê¤«¤Ã¤¿ºÝ¤Ë¡¢ -¤³¤Î¥Õ¥¡¥¤¥ë¤ò +参照)。 +ファイルシステムに "nodev" という印が付いている場合、 +そのファイルシステムがマウントするためのブロックデバイスを +必要としないことを意味する (例えば、 +仮想ファイルシステム、ネットワークファイルシステムなど)。 + +ちなみに、マウント時にファイルシステムが指定されず、 +どうやってもファイルシステムの種類を判定できなかった際に、 +このファイルを .BR mount (8) -¤¬»ÈÍѤ¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤½¤Î¾ì¹ç¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ë´Þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬»î¤µ¤ì¤ë -(¤¿¤À¤·¡¢"nodev" ¤Î°õ¤¬¤Ä¤¤¤¿¤â¤Î¤Ï½ü¤¯)¡£ +が使用するかもしれない。 +その場合、このファイルに含まれるファイルシステムが試される +(ただし、"nodev" の印がついたものは除く)。 .TP .I /proc/fs -¶õ¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¡£ +空のサブディレクトリ。 .TP .I /proc/ide -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï IDE ¥Ð¥¹¤ò¤â¤Ä¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¡£ -³Æ IDE ¥Á¥ã¥Í¥ë¤È¤½¤ì¤Ë¼è¤êÉÕ¤±¤é¤ì¤Æ¤¤¤ë³Æ¥Ç¥Ð¥¤¥¹¤´¤È¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤¬¤¢¤ê¡¢ -°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +このディレクトリは IDE バスをもつシステムに存在する。 +各 IDE チャネルとそれに取り付けられている各デバイスごとにディレクトリがあり、 +以下のファイルが含まれている。 .in +4n .nf -cache ¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º (KB) -capacity ¥»¥¯¥¿¿ô -driver ¥É¥é¥¤¥Ð¤Î¥Ð¡¼¥¸¥ç¥ó -geometry ʪÍý¥¸¥ª¥á¥È¥ê¤ÈÏÀÍý¥¸¥ª¥á¥È¥ê -identify 16 ¿Ê¿ôɽµ­ -media ¥á¥Ç¥£¥¢¤Î¥¿¥¤¥× -model À½Â¤¼Ô¤Î¥â¥Ç¥ëÈÖ¹æ -settings ¥É¥é¥¤¥Ö¤ÎÀßÄê -smart_thresholds 16 ¿Ê¿ôɽµ­ -smart_values 16 ¿Ê¿ôɽµ­ +cache バッファサイズ (KB) +capacity セクタ数 +driver ドライバのバージョン +geometry 物理ジオメトリと論理ジオメトリ +identify 16 進数表記 +media メディアのタイプ +model 製造者のモデル番号 +settings ドライブの設定 +smart_thresholds 16 進数表記 +smart_values 16 進数表記 .fi .in .BR hdparm (8) -¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ï¡¢Ê¬¤«¤ê¤ä¤¹¤¤·Á¼°¤Ç -¤³¤Î¾ðÊó¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Î¼êÃʤòÄ󶡤¹¤ë¡£ +ユーティリティは、分かりやすい形式で +この情報にアクセスするための手段を提供する。 .TP .I /proc/interrupts -IO ¥Ç¥Ð¥¤¥¹Ëè¤Î CPU Ê̤γä¤ê¹þ¤ß²ó¿ô¤Îµ­Ï¿¤Ë»È¤ï¤ì¤ë¡£ -Linux 2.6.24 °Ê¹ß¡¢¾¯¤Ê¤¯¤È¤â i386 ¤È x86_64 ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢ -(¥Ç¥Ð¥¤¥¹¤È´ØÏ¢¤¬¤Ê¤¤) ¥·¥¹¥Æ¥àÆâÉô¤Î³ä¤ê¹þ¤ß¤Ë¤Ä¤¤¤Æ¤âµ­Ï¿¤µ¤ì¤ë¡£ -¥·¥¹¥Æ¥àÆâÉô¤Î³ä¤ê¹þ¤ß¤Ë¤Ï¡¢NMI (nonmaskable interrupt), -LOC (local timer interrupt) ¤ä¡¢SMP ¥·¥¹¥Æ¥à¤Ç¤Ï TLB (TLB flush interrupt), +IO デバイス毎の CPU 別の割り込み回数の記録に使われる。 +Linux 2.6.24 以降、少なくとも i386 と x86_64 アーキテクチャでは、 +(デバイスと関連がない) システム内部の割り込みについても記録される。 +システム内部の割り込みには、NMI (nonmaskable interrupt), +LOC (local timer interrupt) や、SMP システムでは TLB (TLB flush interrupt), RES (rescheduling interrupt), CAL (remote function call interrupt) -¤Ê¤É¤¬¤¢¤ë¡£ -´Êñ¤ËÆɤळ¤È¤Î¤Ç¤­¤ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¡¢ASCII ¤Çɽµ­¤µ¤ì¤Æ¤¤¤ë¡£ +などがある。 +簡単に読むことのできるフォーマットで、ASCII で表記されている。 .TP .I /proc/iomem -Linux 2.4 ¤Ë¤ª¤±¤ë I/O ¥á¥â¥ê¥Þ¥Ã¥×¡£ +Linux 2.4 における I/O メモリマップ。 .TP .I /proc/ioports -¸½ºßÅÐÏ¿¤µ¤ì»È¤ï¤ì¤Æ¤¤¤ë I/O ¥Ý¡¼¥ÈÎΰè¤Î¥ê¥¹¥È¡£ +現在登録され使われている I/O ポート領域のリスト。 .TP -.IR /proc/kallsyms " (Linux 2.5.71 °Ê¹ß)" -¥«¡¼¥Í¥ë¤Î³°Éô¥·¥ó¥Ü¥ëÄêµÁ¤òÊÝ»ý¤¹¤ë¡£ +.IR /proc/kallsyms " (Linux 2.5.71 以降)" +カーネルの外部シンボル定義を保持する。 .BR modules (X) -´Ø·¸¤Î¥Ä¡¼¥ë¤¬¥í¡¼¥À¥Ö¥ë¥â¥¸¥å¡¼¥ë¤òưŪ¤Ë¥ê¥ó¥¯¤·¤¿¤ê -¥Ð¥¤¥ó¥É (bind) ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£ -Linux 2.5.47 °ÊÁ°¤Ç¤Ï¡¢Èù̯¤Ë°Û¤Ê¤ë½ñ¼°¤Î»÷¤¿¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¤¬ +関係のツールがローダブルモジュールを動的にリンクしたり +バインド (bind) するのに使われる。 +Linux 2.5.47 以前では、微妙に異なる書式の似たようなファイルが .I ksyms -¤È¤¤¤¦Ì¾Á°¤Ç¤¢¤Ã¤¿¡£ +という名前であった。 .TP .I /proc/kcore -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥·¥¹¥Æ¥à¤ÎʪÍý¥á¥â¥ê¤òɽ¸½¤·¤Æ¤ª¤ê¡¢ -ELF ¥³¥¢¥Õ¥¡¥¤¥ë·Á¼° (core file format) ¤ÇÊÝ»ý¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Îµ¼»÷¥Õ¥¡¥¤¥ë¤È strip ¤µ¤ì¤Æ¤¤¤Ê¤¤¥«¡¼¥Í¥ë¤Î¥Ð¥¤¥Ê¥ê +このファイルはシステムの物理メモリを表現しており、 +ELF コアファイル形式 (core file format) で保持されている。 +この擬似ファイルと strip されていないカーネルのバイナリ .RI ( /usr/src/linux/vmlinux ) -[ÌõÃí: ¥Ñ¥Ã¥±¡¼¥¸¤Ë°Í¸¤¹¤ë]) ¤¬¤¢¤ì¤Ð¡¢ -GDB ¤Ï¥«¡¼¥Í¥ëÆâ¤ÎǤ°Õ¤Î¥Ç¡¼¥¿¹½Â¤¤Î¸½ºß¤Î¾õÂÖ¤òÄ´¤Ù¤é¤ì¤ë¡£ +[訳注: パッケージに依存する]) があれば、 +GDB はカーネル内の任意のデータ構造の現在の状態を調べられる。 -¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÂ礭¤µ¤ÏʪÍý¥á¥â¥ê (RAM) ¤Î¥µ¥¤¥º¤Ë 4KB ¤ò²Ã¤¨¤¿ÃͤǤ¢¤ë¡£ +このファイルの大きさは物理メモリ (RAM) のサイズに 4KB を加えた値である。 .TP .I /proc/kmsg -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï +このファイルは .BR syslog (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¥«¡¼¥Í¥ë¥á¥Ã¥»¡¼¥¸¤òÆɤ߽Ф¹Âå¤ê¤Ë»È¤¨¤ë¡£ -¥×¥í¥»¥¹¤¬¤³¤Î¥Õ¥¡¥¤¥ë¤òÆɤि¤á¤Ë¤Ï¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¸¢¸Â¤¬É¬ÍפǤ¢¤ê¡¢ -¥Õ¥¡¥¤¥ë¤òÆɤ߽Ф¹¤Î¤Ï 1 ¤Ä¤Î¥×¥í¥»¥¹¤Î¤ß¤Ë¸Â¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë¥á¥Ã¥»¡¼¥¸¤òµ­Ï¿¤¹¤ë¤¿¤á¤Ë¡¢ +システムコールでカーネルメッセージを読み出す代りに使える。 +プロセスがこのファイルを読むためにはスーパーユーザー権限が必要であり、 +ファイルを読み出すのは 1 つのプロセスのみに限るべきである。 +カーネルメッセージを記録するために、 .BR syslog (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Îµ¡Ç½¤ò»È¤¦ syslog ¥×¥í¥»¥¹¤¬²ÔƯ¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -¤³¤Î¥Õ¥¡¥¤¥ë¤òÆɤ߽Ф¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +システムコールの機能を使う syslog プロセスが稼働している場合、 +このファイルを読み出すべきではない。 -¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÃæ¤Î¾ðÊó¤Ï +このファイルの中の情報は .BR dmesg (1) -¤Ë¤è¤Ã¤Æɽ¼¨¤µ¤ì¤ë¡£ +によって表示される。 .TP .IR /proc/ksyms " (Linux 1.1.23-2.5.47)" .I /proc/kallsyms -¤ò»²¾È¡£ +を参照。 .TP .I /proc/loadavg -¤³¤Î¥Õ¥¡¥¤¥ë¤ÎºÇ½é¤Î 3 ¤Ä¤Î¥Õ¥£¡¼¥ë¥É¤Ï¥í¡¼¥É¥¢¥Ù¥ì¡¼¥¸¤Î¿ôÃͤǡ¢ -1, 5, 15 ʬ¤¢¤¿¤ê¤Î¼Â¹Ô¥­¥å¡¼Æâ (state R) ¤Þ¤¿¤Ï -¥Ç¥£¥¹¥¯ I/O ÂÔ¤Á (state D) ¤Î¥¸¥ç¥Ö¿ô¤òÍ¿¤¨¤ë¡£ -¤³¤ì¤Ï +このファイルの最初の 3 つのフィールドはロードアベレージの数値で、 +1, 5, 15 分あたりの実行キュー内 (state R) または +ディスク I/O 待ち (state D) のジョブ数を与える。 +これは .BR uptime (1) -¤Ê¤É¤Î¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤ÆÆÀ¤é¤ì¤ëÃͤÈƱ¤¸¤Ç¤¢¤ë¡£ -4 ÈÖÌܤΥե£¡¼¥ë¥É¤Ï¥¹¥é¥Ã¥·¥å (/) ¤Ç¶èÀÚ¤é¤ì¤¿ 2 ¤Ä¤Î¿ôÃͤ«¤é¹½À®¤µ¤ì¤ë¡£ -¤³¤Î¿ôÃͤΤ¦¤ÁºÇ½é¤Î¤â¤Î¤Ï¡¢¸½ºß¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë -¥«¡¼¥Í¥ë¥¹¥±¥¸¥å¡¼¥ë¥¨¥ó¥Æ¥£¥Æ¥£ (¥×¥í¥»¥¹¡¢¥¹¥ì¥Ã¥É) ¤Î¿ô¤Ç¤¢¤ë¡£ -¤³¤Î¿ôÃÍ¤Ï CPU ¤Î¿ô°Ê²¼¤Ë¤Ê¤ë¡£ -¥¹¥é¥Ã¥·¥å¤Î¸å¤Î¿ôÃͤϡ¢¸½ºß¥·¥¹¥Æ¥à¾å¤Ë¸ºß¤¹¤ë -¥«¡¼¥Í¥ë¥¹¥±¥¸¥å¡¼¥ë¥¨¥ó¥Æ¥£¥Æ¥£¤Î¿ô¤Ç¤¢¤ë¡£ -5 ÈÖÌܤΥե£¡¼¥ë¥É¤Ï¥·¥¹¥Æ¥à¾å¤ËºÇ¤âºÇ¶áÀ¸À®¤µ¤ì¤¿¥×¥í¥»¥¹¤Î PID ¤Ç¤¢¤ë¡£ +などのプログラムによって得られる値と同じである。 +4 番目のフィールドはスラッシュ (/) で区切られた 2 つの数値から構成される。 +この数値のうち最初のものは、現在実行されている +カーネルスケジュールエンティティ (プロセス、スレッド) の数である。 +この数値は CPU の数以下になる。 +スラッシュの後の数値は、現在システム上に存在する +カーネルスケジュールエンティティの数である。 +5 番目のフィールドはシステム上に最も最近生成されたプロセスの PID である。 .TP .I /proc/locks -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¸½ºß¤Î¥Õ¥¡¥¤¥ë¥í¥Ã¥¯ -.RB ( flock "(2) ¤È " fcntl (2)) -¤È¥ê¡¼¥¹ +このファイルは現在のファイルロック +.RB ( flock "(2) と " fcntl (2)) +とリース .RB ( fcntl (2)) -¤òɽ¼¨¤¹¤ë¡£ +を表示する。 .TP -.IR /proc/malloc " (Linux 2.2 °ÊÁ°¤Î¤ß)" +.IR /proc/malloc " (Linux 2.2 以前のみ)" .\" It looks like this only ever did something back in 1.0 days -¥³¥ó¥Ñ¥¤¥ë¤Î¤È¤­¤Ë +コンパイルのときに .B CONFIGDEBUGMALLOC -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Î¤ß¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¸ºß¤¹¤ë¡£ +が定義されているときのみ、このファイルは存在する。 .TP .I /proc/meminfo -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥·¥¹¥Æ¥à¾å¤Î¥á¥â¥ê»ÈÍÑÎ̤˴ؤ¹¤ëÅý·×¾ðÊó¤òɽ¼¨¤¹¤ë¡£ +このファイルはシステム上のメモリ使用量に関する統計情報を表示する。 .BR free (1) -¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¡¢ -¥·¥¹¥Æ¥à¤Î̤»ÈÍѤª¤è¤Ó»ÈÍÑÃæ¤Î¥á¥â¥êÎÌ (ʪÍý¥á¥â¥ê¤È¥¹¥ï¥Ã¥×) ¤È¡¢ -¥«¡¼¥Í¥ë¤Ë»È¤ï¤ì¤Æ¤¤¤ë¶¦Í­¥á¥â¥ê¤È¥Ð¥Ã¥Õ¥¡¤Î¾ðÊó¤òÊó¹ð¤¹¤ë¡£ +は、このファイルを参照し、 +システムの未使用および使用中のメモリ量 (物理メモリとスワップ) と、 +カーネルに使われている共有メモリとバッファの情報を報告する。 .TP .I /proc/modules -¸½ºß¥·¥¹¥Æ¥à¤Ë¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë¥â¥¸¥å¡¼¥ë¤Î¥Æ¥­¥¹¥È·Á¼°¤Î¥ê¥¹¥È¡£ +現在システムにロードされているモジュールのテキスト形式のリスト。 .BR lsmod (8) -¤â»²¾È¡£ +も参照。 .TP .I /proc/mounts -¥«¡¼¥Í¥ë 2.4.19 ¤è¤êÁ°¤Ç¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¸½ºß¥·¥¹¥Æ¥à¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë -Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥ê¥¹¥È¤Ç¤¢¤Ã¤¿¡£ -Linux 2.4.19 ¤Ç¥×¥í¥»¥¹Ã±°Ì¤Î¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤¬Æ³Æþ¤µ¤ì¤¿¤³¤È¤Ëȼ¤¤¡¢ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï +カーネル 2.4.19 より前では、このファイルは現在システムにマウントされている +全てのファイルシステムのリストであった。 +Linux 2.4.19 でプロセス単位のマウント名前空間が導入されたことに伴い、 +このファイルは .I /proc/self/mounts -¤Ø¤Î¥ê¥ó¥¯¤È¤Ê¤Ã¤¿¡£ +へのリンクとなった。 .I /proc/self/mounts -¤Ï¤½¤Î¥×¥í¥»¥¹¼«¿È¤Î¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Î¥ê¥¹¥È¤Ç¤¢¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï +はそのプロセス自身のマウント名前空間のマウントポイントのリストである。 +このファイルのフォーマットは .BR fstab (5) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +に記述されている。 .TP .I /proc/mtrr -Memory Type Range Registers¡£ -¾ÜºÙ¤Ï¡¢¥«¡¼¥Í¥ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë +Memory Type Range Registers。 +詳細は、カーネルソースファイル .I Documentation/mtrr.txt -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .TP .I /proc/net -¤µ¤Þ¤¶¤Þ¤Ê¥Í¥Ã¥È¥ï¡¼¥¯¤Ë¤Ä¤¤¤Æ¤Îµ¼»÷¥Õ¥¡¥¤¥ë¤Ç¡¢ -¤½¤ì¤¾¤ì¤¬¥Í¥Ã¥È¥ï¡¼¥¯ÁؤγƼï¤Î¾õÂÖ¤òÍ¿¤¨¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¤Ï ASCII ·Á¼°¤Ê¤Î¤Ç¡¢ +さまざまなネットワークについての擬似ファイルで、 +それぞれがネットワーク層の各種の状態を与える。 +これらのファイルの内容は ASCII 形式なので、 .BR cat (1) -¤ÇÆɤ߽Ф»¤ë¡£ -¤È¤Ï¤¤¤¨´ðËÜ¥³¥Þ¥ó¥É¤Î +で読み出せる。 +とはいえ基本コマンドの .BR netstat (8) -¤Ï¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ÎÆâÍƤΤè¤ê¤¹¤Ã¤­¤ê¤È¤·¤¿É½¼¨¤òÄ󶡤¹¤ë¡£ +はこれらのファイルの内容のよりすっきりとした表示を提供する。 .TP .I /proc/net/arp -¥¢¥É¥ì¥¹²ò·è¤Ë»È¤ï¤ì¤ë¥«¡¼¥Í¥ë¤Î ARP ¥Æ¡¼¥Ö¥ë¤Î -ASCII ²ÄÆɤʥÀ¥ó¥×¤òÊÝ»ý¤·¤Æ¤¤¤ë¡£ -ưŪ·ë¹ç¤µ¤ì¤¿¤â¤Î¤È¸ÇÄê (preprogrammed) ¤ÎξÊý¤Î -APP ¥¨¥ó¥È¥ê¤ò¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï°Ê²¼¤Î¤È¤ª¤ê: +アドレス解決に使われるカーネルの ARP テーブルの +ASCII 可読なダンプを保持している。 +動的結合されたものと固定 (preprogrammed) の両方の +APP エントリを見ることができる。フォーマットは以下のとおり: .nf .ft CW @@ -1445,22 +1445,22 @@ IP address HW type Flags HW address Mask Device .fi .in -¤³¤³¤Ç IP address ¤Ï¥Þ¥·¥ó¤Î IPv4 ¥¢¥É¥ì¥¹¡¢ -HW type ¤Ï¤½¤Î¥¢¥É¥ì¥¹¤Î RFC\ 826 ¤ÇÄê¤á¤é¤ì¤Æ¤¤¤ë¥Ï¡¼¥É¥¦¥§¥¢¤Î·Á¼°¡¢ -Flags ¤Ï ARP ¹½Â¤ÂÎ +ここで IP address はマシンの IPv4 アドレス、 +HW type はそのアドレスの RFC\ 826 で定められているハードウェアの形式、 +Flags は ARP 構造体 .RI ( /usr/include/linux/if_arp.h -Æâ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë) ¤ÎÆâÉô¥Õ¥é¥°¡¢ -HW address ¤Ï¤½¤Î IP ¥¢¥É¥ì¥¹¤Ë¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤ë¥Ç¡¼¥¿¥ê¥ó¥¯ÁؤΥ¢¥É¥ì¥¹ -(¤â¤·¤ï¤«¤Ã¤Æ¤¤¤ì¤Ð) ¤Ç¤¢¤ë¡£ +内で定義されている) の内部フラグ、 +HW address はその IP アドレスにマップされているデータリンク層のアドレス +(もしわかっていれば) である。 .TP .I /proc/net/dev -µ¼»÷¥Õ¥¡¥¤¥ë dev ¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¤Î¾õÂÖ¾ðÊó¤ò´Þ¤ó¤Ç¤¤¤ë¡£ -¤³¤ì¤ÏÁ÷¼õ¿®¤·¤¿¥Ñ¥±¥Ã¥È¿ô¡¢¥¨¥é¡¼¤È¥³¥ê¥¸¥ç¥ó (collision) ¤Î²ó¿ô¡¢ -¤½¤Î¾¤Î´ðËÜŪ¤ÊÅý·×¤òÍ¿¤¨¤ë¡£ -¤³¤ì¤é¤Ï +擬似ファイル dev はネットワークデバイスの状態情報を含んでいる。 +これは送受信したパケット数、エラーとコリジョン (collision) の回数、 +その他の基本的な統計を与える。 +これらは .BR ifconfig (8) -¤¬¥Ç¥Ð¥¤¥¹¤Î¾õÂÖ¤òÊó¹ð¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£ -¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï°Ê²¼¤Î¤È¤ª¤ê: +がデバイスの状態を報告するのに使われる。 +フォーマットは以下のとおり: .nf .ft CW @@ -1476,14 +1476,14 @@ Inter-| Receive | Transmit .fi .\" .TP .\" .I /proc/net/ipx -.\" ¾ðÊó¤Ê¤·¡£ +.\" 情報なし。 .\" .TP .\" .I /proc/net/ipx_route -.\" ¾ðÊó¤Ê¤·¡£ +.\" 情報なし。 .TP .I /proc/net/dev_mcast .I /usr/src/linux/net/core/dev_mcast.c -¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢°Ê²¼¤Î·Á¼°¤Ç¤¢¤ë¡£ +で定義されており、以下の形式である。 .nf .in +5 indx interface_name dmi_u dmi_g dmi_address @@ -1494,68 +1494,68 @@ indx interface_name dmi_u dmi_g dmi_address .fi .TP .I /proc/net/igmp -Internet Group Management Protocol (¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥°¥ë¡¼¥×´ÉÍý¥×¥í¥È¥³¥ë)¡£ +Internet Group Management Protocol (インターネットグループ管理プロトコル)。 .I /usr/src/linux/net/core/igmp.c -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で定義されている。 .TP .I /proc/net/rarp -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï +このファイルは .I arp -¤ÈƱ¤¸¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç -µÕ¥¢¥É¥ì¥¹²ò·è¥µ¡¼¥Ó¥¹ (reverse address lookup services) +と同じフォーマットで +逆アドレス解決サービス (reverse address lookup services) .BR rarp (8) -¤ËÄ󶡤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¸½ºß¤ÎµÕ¥Þ¥Ã¥×¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÆâÍƤò´Þ¤ó¤Ç¤¤¤ë¡£ -RARP ¤¬¥«¡¼¥Í¥ë¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¤ËÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¸ºß¤·¤Ê¤¤¡£ +に提供するために使われる現在の逆マップデータベースの内容を含んでいる。 +RARP がカーネルコンフィグレーションに設定されていなければ、 +このファイルは存在しない。 .TP .I /proc/net/raw -RAW ¥½¥±¥Ã¥È¥Æ¡¼¥Ö¥ë¤Î¥À¥ó¥×¤òÊÝ»ý¤·¤Æ¤¤¤ë¡£ -¤Û¤È¤ó¤É¤Î¾ðÊó¤Ï¥Ç¥Ð¥Ã¥°°Ê³°¤Ç¤Ï»È¤ï¤ì¤Ê¤¤¡£ -\&"sl" ¤ÎÃͤϥ½¥±¥Ã¥È¤Î¥«¡¼¥Í¥ë¥Ï¥Ã¥·¥å¥¹¥í¥Ã¥È¡¢ -\&"local_address" ¤Ï¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤È¥×¥í¥È¥³¥ëÈÖ¹æ¤Î¥Ú¥¢ -[Ìõ¼ÔÄɲÃ: "rem_address" ¤Ï¥ê¥â¡¼¥È¥¢¥É¥ì¥¹¤È¥×¥í¥È¥³¥ëÈÖ¹æ¤Î¥Ú¥¢]¡£ -\&"st" ¤Ï¥½¥±¥Ã¥È¤ÎÆâÉô¾õÂÖ¡£ -\&"tx_queue" ¤È "rx_queue" ¤Ï¥«¡¼¥Í¥ë¥á¥â¥ê¤ò¾ÃÈñ¤·¤Æ¤¤¤ë -Á÷¿®/¼õ¿®¥Ç¡¼¥¿¥­¥å¡¼¤Î¥µ¥¤¥º¡£ -\&"tr" ¤È "tm\->when" ¤È "rexmits" ¥Õ¥£¡¼¥ë¥É¤Ï RAW ¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤Ê¤¤¡£ -\&"uid" ¥Õ¥£¡¼¥ë¥É¤Ï¥½¥±¥Ã¥ÈÀ¸À®¼Ô¤Î¼Â¸ú UID ¤òÊÝ»ý¤·¤Æ¤¤¤ë¡£ +RAW ソケットテーブルのダンプを保持している。 +ほとんどの情報はデバッグ以外では使われない。 +\&"sl" の値はソケットのカーネルハッシュスロット、 +\&"local_address" はローカルアドレスとプロトコル番号のペア +[訳者追加: "rem_address" はリモートアドレスとプロトコル番号のペア]。 +\&"st" はソケットの内部状態。 +\&"tx_queue" と "rx_queue" はカーネルメモリを消費している +送信/受信データキューのサイズ。 +\&"tr" と "tm\->when" と "rexmits" フィールドは RAW では使われていない。 +\&"uid" フィールドはソケット生成者の実効 UID を保持している。 .\" .TP .\" .I /proc/net/route -.\" ¾ðÊó¤Ê¤·¡£ +.\" 情報なし。 .\" .BR route (8) -.\" (¤Î½ÐÎÏ) ¤Î¤è¤¦¤Ë¸«¤¨¤ë¡£ +.\" (の出力) のように見える。 .TP .I /proc/net/snmp -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï SNMP ¥¨¡¼¥¸¥§¥ó¥È¤¬É¬ÍפȤ¹¤ë -IP, ICMP, TCP, UDP ´ÉÍý¾ðÊó¤ò ASCII ¥Ç¡¼¥¿¤È¤·¤ÆÊÝ»ý¤·¤Æ¤¤¤ë¡£ +このファイルは SNMP エージェントが必要とする +IP, ICMP, TCP, UDP 管理情報を ASCII データとして保持している。 .TP .I /proc/net/tcp -TCP ¥½¥±¥Ã¥È¥Æ¡¼¥Ö¥ë¤Î¥À¥ó¥×¤òÊÝ»ý¤·¤Æ¤¤¤ë¡£ -ÂçÉôʬ¤Î¾ðÊó¤Ï¥Ç¥Ð¥Ã¥°°Ê³°¤Ë¤Ï»È¤ï¤ì¤Ê¤¤¡£ -sl ¤Ï¥½¥±¥Ã¥È¤Î¥«¡¼¥Í¥ë¥Ï¥Ã¥·¥å¥¹¥í¥Ã¥È¤ÎÃÍ¡¢ -\&"local_address" ¤Ï¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤È¥Ý¡¼¥ÈÈÖ¹æ¤Î¥Ú¥¢¤Ç¤¢¤ë¡£ -(¥½¥±¥Ã¥È¤¬Àܳ¤·¤Æ¤¤¤ë¾ì¹ç¤Ï) -\&"rem_address" ¤Ï¥ê¥â¡¼¥È¥¢¥É¥ì¥¹¤È¥Ý¡¼¥ÈÈÖ¹æ¤ÎÂФǤ¢¤ë¡£ -\&"st" ¤Ï¥½¥±¥Ã¥È¤ÎÆâÉô¾õÂ֤Ǥ¢¤ë¡£ -\&"tx_queue" ¤È "rx_queue" ¤Ï¥«¡¼¥Í¥ë¥á¥â¥ê¤ò¾ÃÈñ¤·¤Æ¤¤¤ë -Á÷¿®/¼õ¿®¥Ç¡¼¥¿¥­¥å¡¼¤Î¥µ¥¤¥º¡£ -\&"tr" ¤È "tm\->when" ¤È "rexmits" ¥Õ¥£¡¼¥ë¥É¤Ï¥½¥±¥Ã¥È¾õÂ֤Υ«¡¼¥Í¥ë -ÆâÉô¾ðÊó¤òÊÝ»ý¤·¤Æ¤¤¤ë¤¬¡¢¤³¤ì¤é¤Ï¥Ç¥Ð¥Ã¥°¤Î¤È¤­¤Ë¤·¤«Ìò¤ËΩ¤¿¤Ê¤¤¡£ -\&"uid" ¥Õ¥£¡¼¥ë¥É¤Ï¥½¥±¥Ã¥ÈÀ¸À®¼Ô¤Î¼Â¸ú UID ¤òÊÝ»ý¤·¤Æ¤¤¤ë¡£ +TCP ソケットテーブルのダンプを保持している。 +大部分の情報はデバッグ以外には使われない。 +sl はソケットのカーネルハッシュスロットの値、 +\&"local_address" はローカルアドレスとポート番号のペアである。 +(ソケットが接続している場合は) +\&"rem_address" はリモートアドレスとポート番号の対である。 +\&"st" はソケットの内部状態である。 +\&"tx_queue" と "rx_queue" はカーネルメモリを消費している +送信/受信データキューのサイズ。 +\&"tr" と "tm\->when" と "rexmits" フィールドはソケット状態のカーネル +内部情報を保持しているが、これらはデバッグのときにしか役に立たない。 +\&"uid" フィールドはソケット生成者の実効 UID を保持している。 .TP .I /proc/net/udp -UDP ¥½¥±¥Ã¥È¥Æ¡¼¥Ö¥ë¤Î¥À¥ó¥×¤òÊÝ»ý¤·¤Æ¤¤¤ë¡£ -ÂçÉôʬ¤Î¾ðÊó¤Ï¥Ç¥Ð¥Ã¥°°Ê³°¤Ë¤Ï»È¤ï¤ì¤Ê¤¤¡£ -sl ¤Ï¥½¥±¥Ã¥È¤Î¥«¡¼¥Í¥ë¥Ï¥Ã¥·¥å¥¹¥í¥Ã¥È¤ÎÃÍ¡¢ -"local_address" ¤Ï¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤È¥Ý¡¼¥ÈÈÖ¹æ¤Î¥Ú¥¢¤Ç¤¢¤ë¡£ -(¥½¥±¥Ã¥È¤¬Àܳ¤·¤Æ¤¤¤ë¾ì¹ç¤Ï) -"rem_address" ¤Ï¥ê¥â¡¼¥È¥¢¥É¥ì¥¹¤È¥Ý¡¼¥ÈÈÖ¹æ¤Î¥Ú¥¢¤Ç¤¢¤ë¡£ -"st" ¤Ï¥½¥±¥Ã¥È¤ÎÆâÉô¾õÂ֤Ǥ¢¤ë¡£ -"tx_queue" ¤È "rx_queue" ¤Ï¥«¡¼¥Í¥ë¥á¥â¥ê¤ò¾ÃÈñ¤·¤Æ¤¤¤ë -Á÷¿®/¼õ¿®¥Ç¡¼¥¿¥­¥å¡¼¤Î¥µ¥¤¥º¡£ -"tr" ¤È "tm\->when" ¤È "rexmits" ¥Õ¥£¡¼¥ë¥É¤Ï UDP ¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤Ê¤¤¡£ -"uid" ¥Õ¥£¡¼¥ë¥É¤Ï¥½¥±¥Ã¥ÈÀ¸À®¼Ô¤Î¼Â¸ú UID ¤òÊÝ»ý¤·¤Æ¤¤¤ë¡£ -¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï°Ê²¼¤Î¤È¤ª¤ê: +UDP ソケットテーブルのダンプを保持している。 +大部分の情報はデバッグ以外には使われない。 +sl はソケットのカーネルハッシュスロットの値、 +"local_address" はローカルアドレスとポート番号のペアである。 +(ソケットが接続している場合は) +"rem_address" はリモートアドレスとポート番号のペアである。 +"st" はソケットの内部状態である。 +"tx_queue" と "rx_queue" はカーネルメモリを消費している +送信/受信データキューのサイズ。 +"tr" と "tm\->when" と "rexmits" フィールドは UDP では使われていない。 +"uid" フィールドはソケット生成者の実効 UID を保持している。 +フォーマットは以下のとおり: .nf .ft CW @@ -1569,8 +1569,8 @@ sl local_address rem_address st tx_queue rx_queue tr rexmits tm\->when uid .fi .TP .I /proc/net/unix -Unix ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤Î¥ê¥¹¥È¡£ -¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï°Ê²¼¤Î¤È¤ª¤ê: +Unix ドメインソケットのリスト。 +フォーマットは以下のとおり: .nf .sp .5 .ft CW @@ -1581,36 +1581,36 @@ Num RefCount Protocol Flags Type St Path .sp .5 .fi -¤³¤³¤Ç¡¢Num ¤Ï¥«¡¼¥Í¥ë¤Î¥Æ¡¼¥Ö¥ë¥¹¥í¥Ã¥È¿ô¡¢ -RefCount ¤Ï¥½¥±¥Ã¥È¤ò»ÈÍѤ·¤Æ¤¤¤ë¥æ¡¼¥¶¡¼¿ô¡¢ -Protocol ¤Ï¤¤¤Þ¤Î¤È¤³¤í¤¤¤Ä¤â 0 ¤Ç¡¢Flags ¤Ï¥½¥±¥Ã¥È¤Î¾õÂÖ¤òÊÝ»ý¤·¤Æ¤¤¤ë -¥«¡¼¥Í¥ëÆâÉô¤Î¥Õ¥é¥°¤Ç¤¢¤ë¡£ -Type ¤Ï¤¤¤Þ¤Î¤È¤³¤í¤¤¤Ä¤â 1 -(UNIX ¥É¥á¥¤¥ó¤Î¥Ç¡¼¥¿¥°¥é¥à¥½¥±¥Ã¥È¤Ï¡¢¸½ºß¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤ -[ÌõÃí: 2.0.34 ¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤À])¡£ -St ¤Ï¥½¥±¥Ã¥È¤ÎÆâÉô¾õÂ֤ǡ¢Path ¤Ï (¤â¤·¤¢¤ì¤Ð) ¥½¥±¥Ã¥È¤Î¥Ñ¥¹Ì¾¤Ç¤¢¤ë¡£ +ここで、Num はカーネルのテーブルスロット数、 +RefCount はソケットを使用しているユーザー数、 +Protocol はいまのところいつも 0 で、Flags はソケットの状態を保持している +カーネル内部のフラグである。 +Type はいまのところいつも 1 +(UNIX ドメインのデータグラムソケットは、現在のカーネルではサポートされていない +[訳注: 2.0.34 ではサポートされているようだ])。 +St はソケットの内部状態で、Path は (もしあれば) ソケットのパス名である。 .TP .I /proc/partitions -³Æ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¥á¥¸¥ã¡¼ÈÖ¹æ¤È¥Þ¥¤¥Ê¡¼Èֹ椬½ñ¤«¤ì¤Æ¤¤¤ë¡£ -¤µ¤é¤Ë¡¢¥Ö¥í¥Ã¥¯¿ô¤È¥Ñ¡¼¥Æ¥£¥·¥ç¥ó̾¤â½ñ¤«¤ì¤Æ¤¤¤ë¡£ +各パーティションのメジャー番号とマイナー番号が書かれている。 +さらに、ブロック数とパーティション名も書かれている。 .TP .I /proc/pci -¥«¡¼¥Í¥ë¤Î½é´ü²½»þ¤Ë¸«¤Ä¤«¤Ã¤¿¤¹¤Ù¤Æ¤Î PCI ¥Ç¥Ð¥¤¥¹¤Î¥ê¥¹¥È¤È -¤½¤ÎÀßÄê¡£ +カーネルの初期化時に見つかったすべての PCI デバイスのリストと +その設定。 -¤³¤Î¥Õ¥¡¥¤¥ë¤ÏÈó¿ä¾©¤Ç¤¢¤ê¡¢¿·¤·¤¤ PCI ÍѤΠ+このファイルは非推奨であり、新しい PCI 用の .I /proc -¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹ +インターフェイス .RI ( /proc/bus/pci ) -¤ò»È¤¦¤³¤È¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï Linux 2.2 ¤Ç¥ª¥×¥·¥ç¥ó¤Ë¤Ê¤Ã¤¿ (¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +を使うこと。 +このファイルは Linux 2.2 でオプションになった (カーネルのコンパイル時に .B CONFIG_PCI_OLD_PROC -¤ò¥»¥Ã¥È¤¹¤ë¤ÈÍøÍѲÄǽ¤Ç¤¢¤Ã¤¿)¡£ -Linux 2.4 ¤ÇºÆ¤Ó¥ª¥×¥·¥ç¥ó¤Ê¤·¤ÇÍ­¸ú¤ËÌá¤Ã¤¿¡£ -¤µ¤é¤Ë¡¢Linux 2.6 ¤ÇÈó¿ä¾©¤È¤Ê¤ê +をセットすると利用可能であった)。 +Linux 2.4 で再びオプションなしで有効に戻った。 +さらに、Linux 2.6 で非推奨となり .RB ( CONFIG_PCI_LEGACY_PROC -¤ò¥»¥Ã¥È¤¹¤ë¤È¤Þ¤ÀÍøÍѲÄǽ¤Ç¤¢¤Ã¤¿)¡¢ -ºÇ½ªÅª¤Ë Linux 2.6.17 °Ê¹ß¤Ç´°Á´¤Ëºï½ü¤µ¤ì¤¿¡£ +をセットするとまだ利用可能であった)、 +最終的に Linux 2.6.17 以降で完全に削除された。 .\" FIXME /proc/sched_debug .\" .TP .\" .IR /proc/sched_debug " (since Linux 2.6.23)" @@ -1618,23 +1618,23 @@ Linux 2.4 .TP .I /proc/scsi .I scsi -Ãæ´Ö¥ì¥Ù¥ëµ¼»÷¥Õ¥¡¥¤¥ë¤È¤¤¤¯¤Ä¤«¤Î SCSI Äã¥ì¥Ù¥ë¥É¥é¥¤¥Ð¤Î -¥Ç¥£¥ì¥¯¥È¥ê¤ò´Þ¤à¥Ç¥£¥ì¥¯¥È¥ê¡£ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï ASCII ¤Çɽ¸½¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç +中間レベル擬似ファイルといくつかの SCSI 低レベルドライバの +ディレクトリを含むディレクトリ。 +これらのファイルは ASCII で表現されているので .BR cat (1) -¤ÇÆɤá¤ë¡£ +で読める。 -¤¤¤¯¤Ä¤«¤Î¥Õ¥¡¥¤¥ë¤Ï½ñ¤­¹þ¤ß²Äǽ¤Ç¡¢¥µ¥Ö¥·¥¹¥Æ¥à¤ÎÀßÄê¤òÊѹ¹¤·¤¿¤ê¡¢ -ÆÃÄê¤Îµ¡Ç½¤ò¥ª¥ó/¥ª¥Õ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +いくつかのファイルは書き込み可能で、サブシステムの設定を変更したり、 +特定の機能をオン/オフすることができる。 .TP .I /proc/scsi/scsi -¥«¡¼¥Í¥ë¤¬ÃΤäƤ¤¤ë¤¹¤Ù¤Æ¤Î SCSI ¥Ç¥Ð¥¤¥¹¤Î¥ê¥¹¥È¡£ -¤³¤Î¥ê¥¹¥È¤Ïµ¯Æ°»þ¤Ë (¥³¥ó¥½¡¼¥ë¤Ç) ¸«¤é¤ì¤ë¤â¤Î¤È¤Û¤ÜƱ¤¸¤Ç¤¢¤ë¡£ -scsi ¤Ï¸½ºß¤Î¤È¤³¤í \fIadd-single-device\fP ¥³¥Þ¥ó¥É¤Î¤ß¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤Ë¤è¤ê¥ë¡¼¥È (root) ¤Ï´ûÃΤΥǥХ¤¥¹¥ê¥¹¥È¤Ø³èÀþÁÞÈ´ (hotplugged) -¥Ç¥Ð¥¤¥¹¤ò²Ã¤¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +カーネルが知っているすべての SCSI デバイスのリスト。 +このリストは起動時に (コンソールで) 見られるものとほぼ同じである。 +scsi は現在のところ \fIadd-single-device\fP コマンドのみをサポートしている。 +これによりルート (root) は既知のデバイスリストへ活線挿抜 (hotplugged) +デバイスを加えることができる。 -¼¡¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤È¡¢ +次のコマンドを実行すると、 .in +4n .nf @@ -1642,51 +1642,51 @@ echo \(aqscsi add-single-device 1 0 5 0\(aq > /proc/scsi/scsi .fi .in -¥Û¥¹¥È¥¢¥À¥×¥¿ scsi1 ¤Ï SCSI ¥Á¥ã¥Í¥ë 0 ¤Ç -ID 5 LUN 0 ¤Î¥Ç¥Ð¥¤¥¹¤òõ¤¹¡£ -¤â¤·¤³¤Î¥¢¥É¥ì¥¹¤Ë´ûÃΤΥǥХ¤¥¹¤¬¤¢¤ë¤«¡¢ -ÉÔÀµ¤Ê¥¢¥É¥ì¥¹¤Ç¤¢¤Ã¤¿¤Ê¤é¤Ð¥¨¥é¡¼¤¬Ê֤롣 +ホストアダプタ scsi1 は SCSI チャネル 0 で +ID 5 LUN 0 のデバイスを探す。 +もしこのアドレスに既知のデバイスがあるか、 +不正なアドレスであったならばエラーが返る。 .TP .I /proc/scsi/[drivername] -¤¤¤Þ¤Î¤È¤³¤í \fI[drivername]\fP ¤Ï NCR53c7xx, aha152x, aha1542, aha1740, +いまのところ \fI[drivername]\fP は NCR53c7xx, aha152x, aha1542, aha1740, aic7xxx, buslogic, eata_dma, eata_pio, fdomain, in2000, pas16, qlogic, scsi_debug, seagate, t128, u15-24f, ultrastore, wd7000 -¤Î¤É¤ì¤«¤Ç¤¢¤ë¡£ -¾¯¤Ê¤¯¤È¤â 1 ¤Ä¤Î SCSI ¥Û¥¹¥È¥Ð¥¹¥¢¥À¥×¥¿ (HBA) ¤Ë -¥É¥é¥¤¥Ð¤¬³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¤È¡¢¤½¤Î¥É¥é¥¤¥Ð¤ËÂбþ¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê¤¬¸½¤ì¤ë¡£ -¤½¤ì¤¾¤ì¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢ -ÅÐÏ¿¤µ¤ì¤¿¥Û¥¹¥È¥¢¥À¥×¥¿¤ËÂбþ¤·¤Æ¥Õ¥¡¥¤¥ë¤¬ºî¤é¤ì¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Î̾Á°¤Ï¡¢¥·¥¹¥Æ¥à¤Î½é´ü²½¤ÎºÝ¤Ë -¥Û¥¹¥È¥¢¥À¥×¥¿¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿ÈÖ¹æ¤Ë¤Ê¤ë¡£ - -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤òÆɤá¤Ð¥É¥é¥¤¥Ð¤È¥Û¥¹¥È¥¢¥À¥×¥¿¤ÎÀßÄê¤ä -Åý·×¤Ê¤É¤ò¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ - -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤­¹þ¤ß¤Ï¥Û¥¹¥È¥¢¥À¥×¥¿¤´¤È¤Ë°Û¤Ê¤ëÆ°ºî¤ò°ú¤­µ¯¤³¤¹¡£ -¤¿¤È¤¨¤Ð \fIlatency\fP ¤È \fInolatency\fP ¥³¥Þ¥ó¥É¤òÍѤ¤¤ë¤È¡¢ -¥ë¡¼¥È (root¡¢¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼) ¤Ï eata_dma ¥É¥é¥¤¥Ð¤Î±£¤·Â¬Äꥳ¡¼¥É¤Î -¥ª¥ó/¥ª¥Õ¤òÀÚ¤êÂؤ¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤Þ¤¿ \fI lockup\fP ¤È \fIunlock\fP ¥³¥Þ¥ó¥É¤òÍѤ¤¤ë¤È¡¢¥ë¡¼¥È¤Ï -scsi_debug ¥É¥é¥¤¥Ð¤¬¥·¥ß¥å¥ì¡¼¥È¤¹¤ë¥Ð¥¹¥í¥Ã¥¯¥¢¥Ã¥× (bus lockup) ¤ò -À©¸æ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +のどれかである。 +少なくとも 1 つの SCSI ホストバスアダプタ (HBA) に +ドライバが割り当てられていると、そのドライバに対応したディレクトリが現れる。 +それぞれのディレクトリには、 +登録されたホストアダプタに対応してファイルが作られる。 +このファイルの名前は、システムの初期化の際に +ホストアダプタに割り当てられた番号になる。 + +これらのファイルを読めばドライバとホストアダプタの設定や +統計などを見ることができる。 + +これらのファイルへの書き込みはホストアダプタごとに異なる動作を引き起こす。 +たとえば \fIlatency\fP と \fInolatency\fP コマンドを用いると、 +ルート (root、スーパーユーザー) は eata_dma ドライバの隠し測定コードの +オン/オフを切り替えることができる。 +また \fI lockup\fP と \fIunlock\fP コマンドを用いると、ルートは +scsi_debug ドライバがシミュレートするバスロックアップ (bus lockup) を +制御することができる。 .TP .I /proc/self -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¥×¥í¥»¥¹¤Ë (¥×¥í¥»¥¹¼«¿È¤Î) +このディレクトリはプロセスに (プロセス自身の) .I /proc -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ø¤Î¥¢¥¯¥»¥¹¤ò»²¾È¤µ¤»¤ë¡£ -¤³¤ì¤Ï +ファイルシステムへのアクセスを参照させる。 +これは .I /proc -Æâ¤Î (¤³¤Î¥×¥í¥»¥¹¤Î) ¥×¥í¥»¥¹ ID ¤¬Ì¾Á°¤È¤Ê¤Ã¤Æ¤¤¤ë -¥Ç¥£¥ì¥¯¥È¥ê¤ÈÁ´¤¯Æ±°ì¤Ç¤¢¤ë¡£ +内の (このプロセスの) プロセス ID が名前となっている +ディレクトリと全く同一である。 .TP .I /proc/slabinfo -Linux 2.6.16 °Ê¹ß¤Ç¤Ï¡¢ -¥«¡¼¥Í¥ëÀßÄꥪ¥×¥·¥ç¥ó +Linux 2.6.16 以降では、 +カーネル設定オプション .B CONFIG_SLAB -¤¬Í­¸ú¤Î¾ì¹ç¤Ë¤Î¤ß¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¸ºß¤¹¤ë¡£ -¥«¡¼¥Í¥ë¥­¥ã¥Ã¥·¥å¤Î¾ðÊó¡£ +が有効の場合にのみ、このファイルは存在する。 +カーネルキャッシュの情報。 .I /proc/slabinfo -¤Î¥Õ¥£¡¼¥ë¥É¤Ï°Ê²¼¤Î¤È¤ª¤ê¡£ +のフィールドは以下のとおり。 .in +4n .nf @@ -1700,129 +1700,129 @@ num-pages-per-slab .fi .in -¾ÜºÙ¤Ï +詳細は .BR slabinfo (5) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .TP .I /proc/stat -¥«¡¼¥Í¥ë/¥·¥¹¥Æ¥à¤ÎÅý·×¡£ -¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¡£ -¶¦ÄÌ¥¨¥ó¥È¥ê¤Ë¤Ï°Ê²¼¤Î¤â¤Î¤¬´Þ¤Þ¤ì¤ë¡£ +カーネル/システムの統計。 +アーキテクチャによって異なる。 +共通エントリには以下のものが含まれる。 .RS .TP \fIcpu 3357 0 4313 1362393\fP -¥æ¡¼¥¶¡¼¥â¡¼¥É¡¢ -Ä㤤ͥÀèÅÙ (nice) ¤Ç¤Î¥æ¡¼¥¶¡¼¥â¡¼¥É¡¢ -¥·¥¹¥Æ¥à¥â¡¼¥É¡¢ -¥¿¥¹¥¯ÂÔ¤Á (idle task)¡¢ -¤Ç¤½¤ì¤¾¤ì¥·¥¹¥Æ¥à¤¬¾ÃÈñ¤·¤¿»þ´Ö¤ò -USER_HZ ¤òñ°Ì¤È¤·¤Æ·×¬¤·¤¿ÀÑ»»ÃÍ¡£ -(¤Û¤È¤ó¤É¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï USER_HZ ¤Ï 1/100 ÉäǤ¢¤ë¡£ -Àµ¤·¤¤ÃÍ¤Ï +ユーザーモード、 +低い優先度 (nice) でのユーザーモード、 +システムモード、 +タスク待ち (idle task)、 +でそれぞれシステムが消費した時間を +USER_HZ を単位として計測した積算値。 +(ほとんどのアーキテクチャでは USER_HZ は 1/100 秒である。 +正しい値は .I sysconf(_SC_CLK_TCK) -¤ò»È¤Ã¤Æ¼èÆÀ¤Ç¤­¤ë¡£) -.\" Alpha ¤È ia64 ¤Ç¤Ï 1024 ¤Ç¤¢¤ë¡£ -.\" FIXME: ¼ÂºÝ¤Ë¤Ï¡¢/proc/stat ¤Î 'cpu' ¥Õ¥£¡¼¥ë¥É¤Ë¤Ä¤¤¤Æ¤Î°Ê²¼¤Î¾ðÊó¤Ï -.\" Àµ¤·¤¤¤È¤Ï¸À¤¨¤Ê¤¤¤è¤¦¤Ç¤¢¤ë (¾¯¤Ê¤¯¤È¤â 2.6.12 ¤Ç¤Ï)¡£ -ºÇ¸å¤ÎÃÍ (¥¿¥¹¥¯ÂÔ¤Á) ¤Ïµ¿»÷¥Õ¥¡¥¤¥ë uptime ¤Î 2ÈÖÌܤΥ¨¥ó¥È¥ê¤ÎÃͤò -USER_HZ Çܤ·¤¿¤â¤Î¤Ç¤¢¤ë¡£ - -Linux 2.6 ¤Ç¤Ï¡¢¤³¤Î¹Ô¤Ë 3¤Ä¤ÎÍó¤¬Äɲ䵤ì¤Æ¤¤¤ë: +を使って取得できる。) +.\" Alpha と ia64 では 1024 である。 +.\" FIXME: 実際には、/proc/stat の 'cpu' フィールドについての以下の情報は +.\" 正しいとは言えないようである (少なくとも 2.6.12 では)。 +最後の値 (タスク待ち) は疑似ファイル uptime の 2番目のエントリの値を +USER_HZ 倍したものである。 + +Linux 2.6 では、この行に 3つの欄が追加されている: .I iowait -(I/O ¤Î´°Î»¤òÂԤäƤ¤¤¿»þ´Ö; 2.5.41 °Ê¹ß); +(I/O の完了を待っていた時間; 2.5.41 以降); .I irq -(³ä¤ê¹þ¤ß½èÍý¤ò¹Ô¤Ã¤¿»þ´Ö; 2.6.0-test4 °Ê¹ß); +(割り込み処理を行った時間; 2.6.0-test4 以降); .I softirq -(¥½¥Õ¥È³ä¤ê¹þ¤ß¤Î½èÍý¤ò¹Ô¤Ã¤¿»þ´Ö; 2.6.0-test4 °Ê¹ß)¡£ +(ソフト割り込みの処理を行った時間; 2.6.0-test4 以降)。 -Linux 2.6.11 °Ê¹ß¤Ç¤Ï¡¢8 ¸ÄÌܤÎÍó¤È¤·¤Æ +Linux 2.6.11 以降では、8 個目の欄として .I steal -(Åð¤Þ¤ì¤¿»þ´Ö; stolen time) ¤¬Â¸ºß¤¹¤ë¡£ -¤³¤ì¤Ï¡¢²¾ÁÛ²½´Ä¶­¤Ç¤ÎÆ°ºî»þ¤Ë¾¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ë¤è¤ê -¾ÃÈñ¤µ¤ì¤¿»þ´Ö¤Ç¤¢¤ë¡£ +(盗まれた時間; stolen time) が存在する。 +これは、仮想化環境での動作時に他のオペレーティングシステムにより +消費された時間である。 -Linux 2.6.24 °Ê¹ß¤Ç¤Ï¡¢9 ¸ÄÌܤÎÍó¤È¤·¤Æ¡¢ +Linux 2.6.24 以降では、9 個目の欄として、 .I guest -¤¬¤¢¤ë¡£¤³¤ì¤Ï¡¢ -Linux ¥«¡¼¥Í¥ë¤ÎÀ©¸æ²¼¤Î¥²¥¹¥È¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Î²¾ÁÛ CPU ¤Î -¼Â¹Ô¤Ë¾ÃÈñ¤µ¤ì¤¿»þ´Ö¤Ç¤¢¤ë¡£ +がある。これは、 +Linux カーネルの制御下のゲストオペレーティングシステムの仮想 CPU の +実行に消費された時間である。 .\" See Changelog entry for 5e84cfde51cf303d368fcb48f22059f37b3872de .TP \fIpage 5741 1808\fP -¥·¥¹¥Æ¥à¤¬ (¥Ç¥£¥¹¥¯¤«¤é) ¥Ú¡¼¥¸¥¤¥ó/¥Ú¡¼¥¸¥¢¥¦¥È¤·¤¿¥Ú¡¼¥¸¿ô¡£ +システムが (ディスクから) ページイン/ページアウトしたページ数。 .TP \fIswap 1 0\fP -¥¹¥ï¥Ã¥×¥¤¥ó/¥¹¥ï¥Ã¥×¥¢¥¦¥È¤µ¤ì¤¿¥Ú¡¼¥¸¿ô¡£ +スワップイン/スワップアウトされたページ数。 .TP -.\" FIXME °Ê²¼¤ÎÀâÌÀ¤Ï¡¢¥«¡¼¥Í¥ë 2.6 ¤Î /proc/stat 'intr' ¥Õ¥£¡¼¥ë¥É¤Î -.\" ´°Á´¤ÊÀâÌÀ¤Ç¤Ï¤Ê¤¤¡£½ñ¤«¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤¬¤¢¤ë¡£ +.\" FIXME 以下の説明は、カーネル 2.6 の /proc/stat 'intr' フィールドの +.\" 完全な説明ではない。書かれていないことがある。 \fIintr 1462898\fP -¤³¤Î¹Ô¤Ï¥·¥¹¥Æ¥àµ¯Æ°»þ°Ê¹ß¤Ë½èÍý¤µ¤ì¤¿³ä¤ê¹þ¤ß¤Î²ó¿ô¤ò¼¨¤¹¡£ -ºÇ½é¤ÎÍó¤Ï½èÍý¤µ¤ì¤¿³ä¤ê¹þ¤ßÁ´¤Æ¤Î¹ç·×¤Ç¤¢¤ê¡¢¤½¤ì°Ê¹ß¤ÎÍó¤Ï -¸Ä¡¹¤Î³ä¤ê¹þ¤ß¤Ë¤Ä¤¤¤Æ¤Î¹ç·×¿ô¤Ç¤¢¤ë¡£ +この行はシステム起動時以降に処理された割り込みの回数を示す。 +最初の欄は処理された割り込み全ての合計であり、それ以降の欄は +個々の割り込みについての合計数である。 .TP \fIdisk_io: (2,0):(31,30,5764,1,2) (3,0):\fP... -(¥á¥¸¥ã¡¼ÈÖ¹æ, ¥Ç¥£¥¹¥¯¥¤¥ó¥Ç¥Ã¥¯¥¹ÈÖ¹æ):(¾ðÊó¤Ê¤· (noinfo), Æɤ߹þ¤ß²ó¿ô, -Æɤ߹þ¤ß¥Ö¥í¥Ã¥¯¿ô, ½ñ¤­½Ð¤·²ó¿ô, ½ñ¤­½Ð¤·¥Ö¥í¥Ã¥¯¿ô) +(メジャー番号, ディスクインデックス番号):(情報なし (noinfo), 読み込み回数, +読み込みブロック数, 書き出し回数, 書き出しブロック数) .br -(Linux 2.4 ¤Î¤ß) +(Linux 2.4 のみ) .TP \fIctxt 115315\fP -¥³¥ó¥Æ¥¯¥¹¥È¡¦¥¹¥¤¥Ã¥Á¤Î±ä¤Ù²ó¿ô¡£ +コンテクスト・スイッチの延べ回数。 .TP \fIbtime 769041601\fP -µ¯Æ°»þ¹ï¡¢µª¸µ (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) ¤«¤é¤ÎÉÿô¡£ +起動時刻、紀元 (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) からの秒数。 .TP \fIprocesses 86031\fP -¥·¥¹¥Æ¥àµ¯Æ°»þ¤«¤é¤Î±ä¤Ù¥Õ¥©¡¼¥¯ (fork) ¿ô¡£ +システム起動時からの延べフォーク (fork) 数。 .TP \fIprocs_running 6\fP -¼Â¹ÔÃæ¾õÂÖ¤Î¥×¥í¥»¥¹¿ô (Linux 2.5.45 °Ê¹ß)¡£ +実行中状態のプロセス数 (Linux 2.5.45 以降)。 .TP \fIprocs_blocked 2\fP -I/O ´°Î»ÂÔ¤Á¤ÇÄä»ß (blocked) ¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¿ô -(Linux 2.5.45 °Ê¹ß)¡£ +I/O 完了待ちで停止 (blocked) しているプロセス数 +(Linux 2.5.45 以降)。 .RE .TP .I /proc/swaps -»ÈÍÑÃæ¤Î¥¹¥ï¥Ã¥×Îΰ衣 +使用中のスワップ領域。 .BR swapon (8) -¤â»²¾È¤¹¤ë¤³¤È¡£ +も参照すること。 .TP .I /proc/sys -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê (1.3.57 °Ê¹ß¤Ë¸ºß) ¤Ï¥«¡¼¥Í¥ëÊÑ¿ô¤ËÂбþ¤¹¤ë¤¤¤¯¤Ä¤«¤Î -¥Õ¥¡¥¤¥ë¤È¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ò´Þ¤à¡£ -¤³¤ì¤é¤ÎÊÑ¿ô¤ÏÆɤ߽Ф·²Äǽ¤Ç¤¢¤ë¡£ -¤Þ¤¿¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï \fI/proc\fP ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ä¡¢ -(Èó¿ä¾©¤Î) ¥·¥¹¥Æ¥à¥³¡¼¥ë +このディレクトリ (1.3.57 以降に存在) はカーネル変数に対応するいくつかの +ファイルとサブディレクトリを含む。 +これらの変数は読み出し可能である。 +また場合によっては \fI/proc\fP ファイルシステムや、 +(非推奨の) システムコール .BR sysctl (2) -¤òÍѤ¤¤Æ½ñ¤­´¹¤¨¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¤¤¤Þ¤Î¤È¤³¤í +を用いて書き換えることもできる。 +いまのところ .IR abi ", " debug ", " dev ", " fs ", " kernel ", " net ", " proc ", " .IR rxrpc ", " sunrpc ", " vm -¤È¤¤¤¦¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤¬¤¢¤Ã¤Æ¡¢ -¤½¤ì¤¾¤ì¤¬¥Õ¥¡¥¤¥ë¤È¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ò´Þ¤ó¤Ç¤¤¤ë¡£ +というサブディレクトリがあって、 +それぞれがファイルとサブディレクトリを含んでいる。 .TP -.IR /proc/sys/abi " (Linux 2.4.10 °Ê¹ß)" -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥Ð¥¤¥Ê¥ê¾ðÊó¤¬Æþ¤Ã¤¿¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤ë¡£ -.\" ¤³¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ -¹¹¤Ë¾Ü¤·¤¤¾ðÊó¤Ï¡¢¥«¡¼¥Í¥ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë +.IR /proc/sys/abi " (Linux 2.4.10 以降)" +このディレクトリにはアプリケーションのバイナリ情報が入ったファイルが置かれる。 +.\" このファイルが存在しないシステムもある。 +更に詳しい情報は、カーネルソースファイル .I Documentation/sysctl/abi.txt -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .TP .I /proc/sys/debug -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¶õ¤Î¾ì¹ç¤â¤¢¤ë¡£ +このディレクトリは空の場合もある。 .TP .I /proc/sys/dev -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¥Ç¥Ð¥¤¥¹ÆÃÍ­¤Î¾ðÊó (¤¿¤È¤¨¤Ð +このディレクトリにはデバイス特有の情報 (たとえば .IR dev/cdrom/info ) -¤¬´Þ¤Þ¤ì¤ë¡£ -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤¬¶õ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ +が含まれる。 +このディレクトリが空になっているシステムもある。 .TP .I /proc/sys/fs -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê +このディレクトリには、サブディレクトリ .IR binfmt_misc ", " epoll ", " inotify ", " mqueue -¤È°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤¬¤¢¤ë: +と以下のファイルがある: .IR dentry-state ", " dir-notify-enable ", " dquot-nr ", " file-max ", " .IR file-nr ", " inode-max ", " inode-nr ", " inode-state ", " .IR lease-break-time ", " leases-enable ", " @@ -1831,77 +1831,77 @@ I/O .IR super-max ", " super-nr . .TP .I /proc/sys/fs/binfmt_misc -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¤Î¥É¥­¥å¥á¥ó¥È¤Ï¡¢ -¥«¡¼¥Í¥ë¥½¡¼¥¹¤Î +このディレクトリ以下のファイルについてのドキュメントは、 +カーネルソースの .I Documentation/binfmt_misc.txt -¤Ë¤¢¤ë¡£ -.TP -.IR /proc/sys/fs/dentry-state " (Linux 2.2 °Ê¹ß)" -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¥­¥ã¥Ã¥·¥å (dcache) ¤Î¾õÂ֤˴ؤ¹¤ë¾ðÊó¤¬ -Æþ¤Ã¤Æ¤¤¤ë¡£¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢ -.IR nr_dentry ", " nr_unused ", " age_limit " (ÉÃñ°Ì¤Î age), " want_pages -(¥·¥¹¥Æ¥à¤¬¥ê¥¯¥¨¥¹¥È¤·¤¿¥Ú¡¼¥¸¿ô), ¥À¥ß¡¼¤Î 2 ¤Ä¤ÎÃÍ¡¢ -¤È¤¤¤¦ 6 ¤Ä¤Î¿ô»ú¤¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ +にある。 +.TP +.IR /proc/sys/fs/dentry-state " (Linux 2.2 以降)" +このファイルには、ディレクトリキャッシュ (dcache) の状態に関する情報が +入っている。ファイルには、 +.IR nr_dentry ", " nr_unused ", " age_limit " (秒単位の age), " want_pages +(システムがリクエストしたページ数), ダミーの 2 つの値、 +という 6 つの数字が書かれている。 .RS .IP * 2 .I nr_dentry -¤Ï³ä¤êÅö¤Æ¤é¤ì¤¿ dentry (dcache ¥¨¥ó¥È¥ê) ¤Î¿ô¤Ç¤¢¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï Linux 2.2 ¤Ç¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£ +は割り当てられた dentry (dcache エントリ) の数である。 +このフィールドは Linux 2.2 では使用されない。 .IP * .I nr_unused -¤Ï̤»ÈÍѤΠdentry ¿ô¤Ç¤¢¤ë¡£ +は未使用の dentry 数である。 .IP * .I age_limit -¤Ï¡¢¥á¥â¥ê¤¬ÉÔ­¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¼¡¤Ë dcache entry ¤òºÆÍ×µá¤Ç¤­¤ë¤è¤¦¤Ë -¤Ê¤ë¤Þ¤Ç¤Î»Ä¤ê»þ´Ö (Éÿô) ¤Ç¤¢¤ë¡£ +は、メモリが不足している場合に次に dcache entry を再要求できるように +なるまでの残り時間 (秒数) である。 .IP * .\" looks like this is unused in kernels 2.2 to 2.6 .I want_pages -¤Ï¡¢¥«¡¼¥Í¥ë¤¬ shrink_dcache_pages() ¤ò¸Æ¤Ó½Ð¤·¤¿¤¬ -dcache ¤¬¤Þ¤À½Ì¾®¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¡¢0 °Ê³°¤ÎÃͤȤʤ롣 +は、カーネルが shrink_dcache_pages() を呼び出したが +dcache がまだ縮小されていない場合に、0 以外の値となる。 .RE .TP .I /proc/sys/fs/dir-notify-enable -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï +このファイルは .BR fcntl (2) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë +に記述されている .I dnotify -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò¥·¥¹¥Æ¥àÁ´ÂΤÇ̵¸ú¤Ë¤·¤¿¤êÍ­¸ú¤Ë¤·¤¿¤ê¤¹¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤ËÃÍ 0 ¤¬½ñ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬Ìµ¸ú¤Ë¤Ê¤ê¡¢ -ÃÍ 1 ¤Î¾ì¹ç¤ÏÍ­¸ú¤Ë¤Ê¤ë¡£ +インターフェースをシステム全体で無効にしたり有効にしたりする。 +このファイルに値 0 が書かれている場合はインターフェースが無効になり、 +値 1 の場合は有効になる。 .TP .I /proc/sys/fs/dquot-max -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¥­¥ã¥Ã¥·¥å¤µ¤ì¤ë¥Ç¥£¥¹¥¯ quota ¥¨¥ó¥È¥ê¤ÎºÇÂç¿ô¤¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ -(2.4 ·Ï¤Î) ¥·¥¹¥Æ¥à¤ÎÃæ¤Ë¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¤â¤Î¤â¤¢¤ë¡£ -¥­¥ã¥Ã¥·¥å¤µ¤ì¤ë¥Ç¥£¥¹¥¯ quota ¥¨¥ó¥È¥ê¤Î¶õ¤­¤¬Èó¾ï¤Ë¾¯¤Ê¤¯¡¢ -¤È¤Æ¤â¿¤¯¤Î¥·¥¹¥Æ¥à¥æ¡¼¥¶¡¼¤¬Æ±»þ¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢ -¤³¤ÎÀ©¸Â¤ò¾å¤²¤ë¤È¤¤¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ +このファイルにはキャッシュされるディスク quota エントリの最大数が書かれている。 +(2.4 系の) システムの中には、このファイルが存在しないものもある。 +キャッシュされるディスク quota エントリの空きが非常に少なく、 +とても多くのシステムユーザーが同時に存在する場合、 +この制限を上げるといいかもしれない。 .TP .I /proc/sys/fs/dquot-nr -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¥Ç¥£¥¹¥¯ quota ¤Î¥¨¥ó¥È¥ê¿ô¤È¡¢ -¶õ¤¤¤Æ¤¤¤ë¥Ç¥£¥¹¥¯ quota ¤Î¥¨¥ó¥È¥ê¿ô¤¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ +このファイルには割り当てられているディスク quota のエントリ数と、 +空いているディスク quota のエントリ数が書かれている。 .TP -.IR /proc/sys/fs/epoll " (Linux 2.6.28 °Ê¹ß)" -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢¥Õ¥¡¥¤¥ë +.IR /proc/sys/fs/epoll " (Linux 2.6.28 以降)" +このディレクトリには、ファイル .I max_user_watches -¤¬¤¢¤ë¡£ -¤³¤ì¤é¤Ï¡¢ +がある。 +これらは、 .I epoll -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¬¾ÃÈñ¤¹¤ë¥«¡¼¥Í¥ë¥á¥â¥êÎ̤òÀ©¸Â¤¹¤ë¤Î¤Ë»ÈÍѤǤ­¤ë¡£ -¾ÜºÙ¤Ï +インタフェースが消費するカーネルメモリ量を制限するのに使用できる。 +詳細は .BR epoll (7) -¤ò»²¾È¡£ +を参照。 .TP .I /proc/sys/fs/file-max -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥·¥¹¥Æ¥àÁ´ÂÎ¤Ç¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤Ç¤­¤ë -¥Õ¥¡¥¤¥ë¿ô¤Î¾å¸Â¤òÄêµÁ¤¹¤ë¡£ -(³Æ¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¿ô¤Î¾å¸Â¤ò +このファイルはシステム全体でプロセスがオープンできる +ファイル数の上限を定義する。 +(各プロセスがオープンできるファイル数の上限を .B RLIMIT_NOFILE -¤Ë¤è¤Ã¤ÆÀßÄꤹ¤ë +によって設定する .BR setrlimit (2) -¤â»²¾È¤¹¤ë¤³¤È¡£) -¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤ò»È¤¤²Ì¤¿¤·¤ÆÂçÎ̤˥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬½Ð¤ë¾ì¹ç¤Ï¡¢ -°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ¤³¤ÎÃͤòÁý²Ã¤µ¤»¤Æ¤ß¤è: +も参照すること。) +ファイルハンドルを使い果たして大量にエラーメッセージが出る場合は、 +以下のようにしてこの値を増加させてみよ: .br .br @@ -1912,228 +1912,228 @@ echo 100000 > /proc/sys/fs/file-max .ft .I file-max -¤Ë½ñ¤«¤ì¤Æ¤¤¤ëÃͤϡ¢¥«¡¼¥Í¥ëÄê¿ô +に書かれている値は、カーネル定数 .B NR_OPEN -¤ËÀ©¸Â¤µ¤ì¤ë¡£ +に制限される。 .I /proc/sys/fs/file-max -¤òÁý¤ä¤·¤¿¾ì¹ç¤Ï¡¢ +を増やした場合は、 .I /proc/sys/fs/inode-max -¤ò¿·¤·¤¤ +を新しい .I /proc/sys/fs/file-max -¤ÎÃͤΠ3-4 ÇܤËÁý¤ä¤·¤Æ¤ª¤¯¤³¤È¡£ -¤³¤¦¤·¤Ê¤¤¤È inode ¤ò»È¤¤²Ì¤¿¤·¤Æ¤·¤Þ¤¦¤À¤í¤¦¡£ +の値の 3-4 倍に増やしておくこと。 +こうしないと inode を使い果たしてしまうだろう。 .TP .I /proc/sys/fs/file-nr -(¤³¤Î¥Õ¥¡¥¤¥ë¤ÏÆɤ߽Ф·ÀìÍѤÇ) Æɤ߽Ф¹¤È -¸½ºß¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Î¿ô¤¬ÆÀ¤é¤ì¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¿ô¡¦ -¶õ¤¤¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¿ô¡¦¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¿ô¤ÎºÇÂçÃÍ¡¢ -¤È¤¤¤¦ 3 ¤Ä¤Î¿ôÃͤ¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ -¥«¡¼¥Í¥ë¤Ï¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤òưŪ¤Ë³ä¤êÅö¤Æ¤ë¤¬¡¢ -¤½¤ì¤òºÆ¤Ó²òÊü¤·¤Ê¤¤¡£ -³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¿ô¤¬ºÇÂçÃͤ˶á¤Å¤¤¤¿¾ì¹ç¤Ï¡¢ -ºÇÂçÃͤòÂ礭¤¯¤¹¤ë¤³¤È¤ò¹Íθ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¶õ¤¤¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¿ô¤¬Â¿¤¤¾ì¹ç¤Ï¡¢ -¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤Î»ÈÍѤΥԡ¼¥¯¤ò·Ð¸³¤·¤¿¤³¤È¤¬¤¢¤ê¡¢ -ºÇÂçÃͤòÂ礭¤¯¤¹¤ëɬÍפϤʤ¤¤À¤í¤¦¡£ +(このファイルは読み出し専用で) 読み出すと +現在オープンされているファイルの数が得られる。 +このファイルには、割り当てられているファイルハンドル数・ +空いているファイルハンドル数・ファイルハンドル数の最大値、 +という 3 つの数値が書かれている。 +カーネルはファイルハンドルを動的に割り当てるが、 +それを再び解放しない。 +割り当てられているファイル数が最大値に近づいた場合は、 +最大値を大きくすることを考慮すべきである。 +空いているファイルハンドル数が多い場合は、 +ファイルハンドルの使用のピークを経験したことがあり、 +最大値を大きくする必要はないだろう。 .TP .I /proc/sys/fs/inode-max -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¥á¥â¥êÆâ inode ¤ÎºÇÂçÃͤ¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ -(2.4 ·Ï¤Î) ¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤ÎÃÍ¤Ï +このファイルには、メモリ内 inode の最大値が書かれている。 +(2.4 系の) システムによっては、このファイルが存在しないかもしれない。 +この値は .I file-max -¤ÎÃͤΠ3-4 Çܤˤ¹¤Ù¤­¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï \fIstdin\fP, \fIstdout\fP, ¥Í¥Ã¥È¥ï¡¼¥¯¥½¥±¥Ã¥È¤ò°·¤¦¤Ë¤â -inode ¤¬É¬Íפʤ¿¤á¤Ç¤¢¤ë¡£ -Æü¾ïŪ¤Ë inode ¤ò»È¤¤²Ì¤¿¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤³¤ÎÃͤòÁý¤ä¤¹É¬Íפ¬¤¢¤ë¡£ +の値の 3-4 倍にすべきである。 +これは \fIstdin\fP, \fIstdout\fP, ネットワークソケットを扱うにも +inode が必要なためである。 +日常的に inode を使い果たしている場合は、この値を増やす必要がある。 .TP .I /proc/sys/fs/inode-nr -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢ +このファイルには、 .I inode-state -¤ÎºÇ½é¤Î 2 ¤Ä¤ÎÃͤ¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ +の最初の 2 つの値が書かれている。 .TP .I /proc/sys/fs/inode-state -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï 7 ¸Ä¤ÎÃͤ¬½ñ¤«¤ì¤Æ¤¤¤ë: +このファイルには 7 個の値が書かれている: .IR nr_inodes, .IR nr_free_inodes , .IR preshrink -¤È 4 ¤Ä¤Î¥À¥ß¡¼¤ÎÃͤǤ¢¤ë¡£ +と 4 つのダミーの値である。 .I nr_inodes -¤Ï¥·¥¹¥Æ¥à¤¬³ÎÊݤ¹¤ë inode ¤Î¿ô¤Ç¤¢¤ë¡£ -Linux ¤Ï 1 ÅÙ¤Ë 1 ¥Ú¡¼¥¸Ê¬¤¤¤Ã¤Ñ¤¤¤Ë nr_inode ¤ò³ÎÊݤ¹¤ë¤Î¤Ç¡¢¤³¤ÎÃͤ¬ +はシステムが確保する inode の数である。 +Linux は 1 度に 1 ページ分いっぱいに nr_inode を確保するので、この値が .I inode-max -¤è¤ê´öʬÂ礭¤¯¤Ê¤ë¤³¤È¤â¤¢¤ë¡£ +より幾分大きくなることもある。 .I nr_free_inodes -¤Ï¶õ¤¤¤Æ¤¤¤ë inode ¤Î¿ô¤òɽ¤¹¡£ +は空いている inode の数を表す。 .IR nr_inodes " > " inode-max -¤Î¾ì¹ç¡¢ +の場合、 .I preshrink -¤Ï 0 °Ê³°¤ÎÃͤˤʤ롣 -¤³¤Î¾ì¹ç¥·¥¹¥Æ¥à¤Ï inode ¤ò¤µ¤é¤Ë³ÎÊݤ¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ -inode ¥ê¥¹¥È¤òÀÚ¤êµÍ¤á¤ëɬÍפ¬¤¢¤ë¡£ +は 0 以外の値になる。 +この場合システムは inode をさらに確保するのではなく、 +inode リストを切り詰める必要がある。 .TP -.IR /proc/sys/fs/inotify " (Linux 2.6.13 °Ê¹ß)" -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢¥Õ¥¡¥¤¥ë +.IR /proc/sys/fs/inotify " (Linux 2.6.13 以降)" +このディレクトリには、ファイル .IR max_queued_events ", " max_user_instances ", and " max_user_watches -¤¬¤¢¤ë¡£¤³¤ì¤é¤Ï¡¢ +がある。これらは、 .I inotify -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¬¾ÃÈñ¤¹¤ë¥«¡¼¥Í¥ë¥á¥â¥êÎ̤òÀ©¸Â¤¹¤ë¤Î¤ËÍøÍѤǤ­¤ë¡£ -¾ÜºÙ¤Ï +インタフェースが消費するカーネルメモリ量を制限するのに利用できる。 +詳細は .BR inotify (7) -¤ò»²¾È¡£ +を参照。 .TP .I /proc/sys/fs/lease-break-time -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤òÊÝ»ý¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤ËÂФ·¤Æ -¥«¡¼¥Í¥ë¤¬¥·¥°¥Ê¥ë¤òÁ÷¤ê¡¢ -¾¤Î¥×¥í¥»¥¹¤¬¤½¤Î¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¤Î¤òÂԤäƤ¤¤ë¤³¤È¤òÄÌÃΤ·¤Æ¤«¤é¡¢ -¤½¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ¥«¡¼¥Í¥ë¤¬¥Õ¥¡¥¤¥ë¤Î¥ê¡¼¥¹ (lease, Âߤ·½Ð¤·) +このファイルは、ファイルを保持しているプロセスに対して +カーネルがシグナルを送り、 +他のプロセスがそのファイルをオープンするのを待っていることを通知してから、 +そのプロセスに対してカーネルがファイルのリース (lease, 貸し出し) .RB ( fcntl (2) -¤ò»²¾È) ¤òµö¤¹Í±Í½´ü´Ö¤ò»ØÄꤹ¤ë¡£ -¥ê¡¼¥¹¥Û¥ë¥À (lease holder: ¥Õ¥¡¥¤¥ë¤ÎÂߤ·½Ð¤·¤ò¼õ¤±¤Æ¤¤¤ë¥×¥í¥»¥¹) ¤¬ -ͱͽ´ü´ÖÃæ¤Ë¥ê¡¼¥¹¤òºï½ü¤¹¤ë¤«³¬µé¤òÄ㤯¤·¤Ê¤¤¾ì¹ç¡¢ -¥«¡¼¥Í¥ë¤Ï¥Õ¥¡¥¤¥ë¤Î¥ê¡¼¥¹¤ò¶¯À©Åª¤Ë»ß¤á¤ë¡£ +を参照) を許す猶予期間を指定する。 +リースホルダ (lease holder: ファイルの貸し出しを受けているプロセス) が +猶予期間中にリースを削除するか階級を低くしない場合、 +カーネルはファイルのリースを強制的に止める。 .TP .I /proc/sys/fs/leases-enable -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥·¥¹¥Æ¥àÁ´ÂΤǤΥե¡¥¤¥ë¥ê¡¼¥¹ +このファイルはシステム全体でのファイルリース .RB ( fcntl (2) -¤ò»²¾È) ¤òÍ­¸ú¤Þ¤¿¤Ï̵¸ú¤Ë¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¤ËÃÍ 0 ¤¬½ñ¤­¹þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥ê¡¼¥¹¤Ï̵¸ú¤Ç¤¢¤ë¡£ -0 °Ê³°¤Î¾ì¹ç¤Ë¤Ï¥ê¡¼¥¹¤ÏÍ­¸ú¤Ç¤¢¤ë¡£ +を参照) を有効または無効にする。 +ファイルに値 0 が書き込まれている場合、リースは無効である。 +0 以外の場合にはリースは有効である。 .TP -.IR /proc/sys/fs/mqueue " (Linux 2.6.6 °Ê¹ß)" -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¥Õ¥¡¥¤¥ë +.IR /proc/sys/fs/mqueue " (Linux 2.6.6 以降)" +このディレクトリにはファイル .IR msg_max ", " msgsize_max ", and " queues_max -¤¬¤¢¤ë¡£¤³¤ì¤é¤Ï POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ç»ÈÍѤµ¤ì¤ë¥ê¥½¡¼¥¹¤Î -À©¸æ¤ò¹Ô¤¦¡£ -¾ÜºÙ¤Ï +がある。これらは POSIX メッセージキューで使用されるリソースの +制御を行う。 +詳細は .BR mq_overview (7) -¤ò»²¾È¡£ -.TP -.IR /proc/sys/fs/overflowgid " ¤È " /proc/sys/fs/overflowuid -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ë¤è¤ê¡¢¥æ¡¼¥¶¡¼¤Ï¸ÇÄê UID ¤È¸ÇÄê GID ¤ÎÃͤòÊѹ¹¤Ç¤­¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 65534 ¤Ç¤¢¤ë¡£ -Linux ¤Î UID ¤È GID ¤Ï 32 ¥Ó¥Ã¥È¤Ç¤¢¤ë¤¬¡¢ -16 ¥Ó¥Ã¥È¤Î UID ¤È GID ¤·¤«¥µ¥Ý¡¼¥È¤·¤Ê¤¤¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ -¤³¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬½ñ¤­¹þ¤ß¤òµö²Ä¤·¤Æ¥Þ¥¦¥ó¥È¤µ¤ì¤¿¾ì¹ç¡¢ -65535 ¤òĶ¤¨¤ë UID ¤È GID ¤Ï¡¢ -¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤Þ¤ì¤ëÁ°¤Ë¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÃͤËÊÑ´¹¤µ¤ì¤ë¡£ -.TP -.IR /proc/sys/fs/suid_dumpable " (Linux 2.6.13 °Ê¹ß)" -.\" °Ê²¼¤Ï Documentation/sysctl/kernel.txt ¤ÎÆâÍƤ˴𤤤Ƥ¤¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÃͤˤè¤ê¡¢set-user-ID ¤µ¤ì¤¿¥Ð¥¤¥Ê¥ê¤ä¡¢ -Êݸ¤«¤«¤Ã¤¿ (protected) ¥Ð¥¤¥Ê¥ê / tainted ¤Ê (±øÀ÷¤µ¤ì¤¿; -¥é¥¤¥»¥ó¥¹¤¬¥«¡¼¥Í¥ë¤ÈŬ¹ç¤·¤Ê¤¤) ¥Ð¥¤¥Ê¥ê¤ËÂФ·¤Æ¡¢¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤ò -À¸À®¤¹¤ë¤«¤É¤¦¤«¤¬·èÄꤵ¤ì¤ë¡£ -°Ê²¼¤Î 3¤Ä¤ÎÃͤò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë: +を参照。 +.TP +.IR /proc/sys/fs/overflowgid " と " /proc/sys/fs/overflowuid +これらのファイルにより、ユーザーは固定 UID と固定 GID の値を変更できる。 +デフォルトは 65534 である。 +Linux の UID と GID は 32 ビットであるが、 +16 ビットの UID と GID しかサポートしないファイルシステムもある。 +このようなファイルシステムが書き込みを許可してマウントされた場合、 +65535 を超える UID と GID は、 +ディスクに書き込まれる前にオーバーフロー値に変換される。 +.TP +.IR /proc/sys/fs/suid_dumpable " (Linux 2.6.13 以降)" +.\" 以下は Documentation/sysctl/kernel.txt の内容に基いている。 +このファイルの値により、set-user-ID されたバイナリや、 +保護がかかった (protected) バイナリ / tainted な (汚染された; +ライセンスがカーネルと適合しない) バイナリに対して、コアダンプファイルを +生成するかどうかが決定される。 +以下の 3つの値を指定することができる: .sp \fI0\ (default)\fP -¤³¤ÎÃͤò»ØÄꤹ¤ë¤È¡¢°ÊÁ°¤ÈƱ¤¸ (Linux 2.6.13 ¤è¤êÁ°¤Î) Æ°ºî¤ò¤¹¤ë¡£ +この値を指定すると、以前と同じ (Linux 2.6.13 より前の) 動作をする。 .RB ( seteuid (2), .BR setgid (2) -¤Ê¤É¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤ä¡¢set-user-ID ¤ä set-group-ID ¤µ¤ì¤¿¥×¥í¥°¥é¥à¤ò -¼Â¹Ô¤¹¤ë¤³¤È¤Ç) »ñ³Ê¾ðÊó (credentials) ¤¬Êѹ¹¤µ¤ì¤Æ¤¤¤ë¥×¥í¥»¥¹¤ä¡¢ -¥×¥í¥»¥¹¤Î¼Â¹Ô¥Ð¥¤¥Ê¥ê¤ÎÆɤ߽Ф·µö²Ä¤¬¤Ê¤¤¥×¥í¥»¥¹¤ËÂФ·¤Æ¡¢ -¥³¥¢¥À¥ó¥×¤òÀ¸À®¤·¤Ê¤¤¡£ +などを呼び出すことや、set-user-ID や set-group-ID されたプログラムを +実行することで) 資格情報 (credentials) が変更されているプロセスや、 +プロセスの実行バイナリの読み出し許可がないプロセスに対して、 +コアダンプを生成しない。 .sp \fI1\ ("debug")\fP -¤¹¤Ù¤Æ¤Î¥×¥í¥»¥¹¤Ç¡¢²Äǽ¤Ç¤¢¤ì¤Ð¥³¥¢¥À¥ó¥×¤ò¹Ô¤¦¡£ -¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤Ï¡¢¥À¥ó¥×¤ò¹Ô¤¦¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID -¤È¤Ê¤ê¡¢¥»¥­¥å¥ê¥Æ¥£¾å¤Î¹Íθ¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ -¤³¤ÎÃͤϡ¢¥·¥¹¥Æ¥à¥Ç¥Ð¥Ã¥°¤Î¾ìÌ̤À¤±¤òÁÛÄꤷ¤ÆÀߤ±¤é¤ì¤Æ¤¤¤ë¡£ -ptrace ¤Î¥Á¥§¥Ã¥¯¤â¹Ô¤ï¤ì¤Ê¤¤¡£ +すべてのプロセスで、可能であればコアダンプを行う。 +コアダンプファイルの所有者は、ダンプを行うプロセスのファイルシステム UID +となり、セキュリティ上の考慮は行われない。 +この値は、システムデバッグの場面だけを想定して設けられている。 +ptrace のチェックも行われない。 .sp \fI2\ ("suidsafe")\fP -Ä̾ï¤Ï¥À¥ó¥×¤µ¤ì¤Ê¤¤¤è¤¦¤Ê¥Ð¥¤¥Ê¥ê (¾åµ­¤Î "0" »²¾È) ¤ò -root ¤À¤±¤¬Æɤ߽Ф·²Äǽ¤Ê·Á¤Ç¥À¥ó¥×¤¹¤ë¡£ -¤³¤Î¾ì¹ç¡¢¥æ¡¼¥¶¤Ï¤½¤Î¥³¥¢¥À¥ó¥×¥Õ¥¡¥¤¥ë¤òºï½ü¤¹¤ë¤³¤È¤Ï¤Ç¤­¤ë¤¬¡¢ -Æɤळ¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÍýͳ¤«¤é¡¢¤³¤Î¥â¡¼¥É¤Î¥³¥¢¥À¥ó¥×¤Ç¤Ï¡¢ -´û¸¤Î¥À¥ó¥×¥Õ¥¡¥¤¥ë¤ä¾¤Î¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤­¤¹¤ë¤³¤È¤Ï¤Ê¤¤¡£ -¤³¤Î¥â¡¼¥É¤Ï¡¢´ÉÍý¼Ô¤¬Ä̾ï¤Î´Ä¶­¤ÇÌäÂê¤ò²òÀϤ·¤è¤¦¤È¤¹¤ëºÝ¤Ë -Ŭ¤·¤Æ¤¤¤ë¡£ -.TP -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥¹¡¼¥Ñ¥Ö¥í¥Ã¥¯¤ÎÃͤòÀ©¸æ¤¹¤ë¡£ -¤³¤ÎÃͤϥ«¡¼¥Í¥ë¤¬¥Þ¥¦¥ó¥È¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎºÇÂçÃͤˤʤ롣 -¸½ºß¡¢ +通常はダンプされないようなバイナリ (上記の "0" 参照) を +root だけが読み出し可能な形でダンプする。 +この場合、ユーザはそのコアダンプファイルを削除することはできるが、 +読むことはできない。 +セキュリティ上の理由から、このモードのコアダンプでは、 +既存のダンプファイルや他のファイルを上書きすることはない。 +このモードは、管理者が通常の環境で問題を解析しようとする際に +適している。 +.TP +このファイルはスーパブロックの値を制御する。 +この値はカーネルがマウントできるファイルシステムの最大値になる。 +現在、 .I super-max -¤Çµö²Ä¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¿ô°Ê¾å¤Ë -¥Þ¥¦¥ó¥È¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ï¡¢¤³¤ÎÃͤòÁý²Ã¤µ¤»¤ë¤À¤±¤Ç¤è¤¤¡£ +で許可されているファイルシステム数以上に +マウントする必要がある場合は、この値を増加させるだけでよい。 .TP .I /proc/sys/fs/super-nr -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¸½ºß¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¿ô¤¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ +このファイルには現在マウントされているファイルシステム数が書かれている。 .TP .I /proc/sys/kernel -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢°Ê²¼¤ÇÀâÌÀ¤¹¤ëÍÍ¡¹¤Ê¥«¡¼¥Í¥ë¥Ñ¥é¥á¡¼¥¿¤ò -À©¸æ¤¹¤ë¤¿¤á¤Î¥Õ¥¡¥¤¥ë¤¬ÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë¡£ +このディレクトリには、以下で説明する様々なカーネルパラメータを +制御するためのファイルが配置されている。 .TP .I /proc/sys/kernel/acct -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï 3 ¤Ä¤ÎÃͤ¬´Þ¤Þ¤ì¤Æ¤¤¤ë: +このファイルには 3 つの値が含まれている: .IR highwater , .IR lowwater , .IR frequency -¤Ç¤¢¤ë¡£ -BSD-style process accounting ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -¤³¤ì¤é 3 ¤Ä¤ÎÃͤ¬Æ°ºî¤òÀ©¸æ¤¹¤ë¡£ -¥í¥°¥Õ¥¡¥¤¥ë¤Î¤¢¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¶õ¤­Îΰ褬 +である。 +BSD-style process accounting が有効になっている場合、 +これら 3 つの値が動作を制御する。 +ログファイルのあるファイルシステムの空き領域が .I lowwater -¥Ñ¡¼¥»¥ó¥È°Ê²¼¤Ë¤Ê¤Ã¤¿¾ì¹ç¤Ï¡¢¥í¥°µ­Ï¿¤ò°ì»þÄä»ß¤¹¤ë¡£ -¶õ¤­Îΰ褬 +パーセント以下になった場合は、ログ記録を一時停止する。 +空き領域が .I highwater -¥Ñ¡¼¥»¥ó¥È°Ê¾å¤Ë¤Ê¤Ã¤¿¾ì¹ç¤Ë¡¢¥í¥°µ­Ï¿¤òºÆ³«¤¹¤ë¡£ +パーセント以上になった場合に、ログ記録を再開する。 .I frequency -¤Ï¥«¡¼¥Í¥ë¤¬¶õ¤­Îΰè¤Î¥Á¥§¥Ã¥¯¤ò¤¹¤ëÉÑÅ٤Ǥ¢¤ë (ñ°Ì¤ÏÉÃ)¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÃͤϡ¢4, 2, 30 ¤Ç¤¢¤ë¡£ -¤Ä¤Þ¤ê¡¢¶õ¤­Îΰ褬 2% °Ê²¼¤Ë¤Ê¤ë¤È¥í¥°µ­Ï¿¤ò°ì»þÄä»ß¤·¡¢ -¶õ¤­Îΰ褬 4% °Ê¾å¤È¤Ê¤Ã¤¿¤È¤­¤ËºÆ³«¤¹¤ë¡£ -¶õ¤­Îΰè¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï 30 ÉôÖÍ­¸ú¤Ç¤¢¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +はカーネルが空き領域のチェックをする頻度である (単位は秒)。 +デフォルトの値は、4, 2, 30 である。 +つまり、空き領域が 2% 以下になるとログ記録を一時停止し、 +空き領域が 4% 以上となったときに再開する。 +空き領域についての情報は 30 秒間有効である点に注意すること。 .TP -.IR /proc/sys/kernel/cap-bound " (Linux 2.2 to 2.6.24 °Ê¹ß)" +.IR /proc/sys/kernel/cap-bound " (Linux 2.2 to 2.6.24 以降)" .I /proc/sys/kernel/cap-bound -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¥«¡¼¥Í¥ë¤Î +このファイルにはカーネルの .I "capability bounding set" -(Éä¹æÉÕ¤­ 10 ¿Ê¿ôɽ¸½) ¤ÎÃͤ¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ +(符号付き 10 進数表現) の値が書かれている。 .BR execve (2) -Ãæ¤Ï¡¢¤³¤Î¥»¥Ã¥È¤È¥×¥í¥»¥¹¤Ëµö²Ä¤µ¤ì¤Æ¤¤¤ë¸¢¸Â¤Î AND ¤¬¤È¤é¤ì¤ë¡£ -Linux 2.6.25 °Ê¹ß¤Ç¤Ï¡¢¥·¥¹¥Æ¥àÁ´ÂΤΥ±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï -¤Ê¤¯¤Ê¤ê¡¢¥¹¥ì¥Ã¥Éñ°Ì¤Î¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤ËÃÖ¤­´¹¤¨¤é¤ì¤¿¡£ +中は、このセットとプロセスに許可されている権限の AND がとられる。 +Linux 2.6.25 以降では、システム全体のケーパビリティバウンディングセットは +なくなり、スレッド単位のバウンディングセットに置き換えられた。 .BR capabilities (7) -¤ò»²¾È¡£ +を参照。 .TP .I /proc/sys/kernel/core_pattern .BR core (5) -»²¾È¡£ +参照。 .TP .I /proc/sys/kernel/core_uses_pid .BR core (5) -»²¾È¡£ +参照。 .TP .I /proc/sys/kernel/ctrl-alt-del -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥­¡¼¥Ü¡¼¥É¤Î Ctrl-Alt-Del ¤Î°·¤¤¤òÀ©¸æ¤¹¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤¢¤ëÃͤ¬ 0 ¤Î¾ì¹ç¡¢ -Ctrl-Alt-Del ¤¬Ê᪤µ¤ì¤ë¤È +このファイルはキーボードの Ctrl-Alt-Del の扱いを制御する。 +このファイルにある値が 0 の場合、 +Ctrl-Alt-Del が捕捉されると .BR init (8) -¥×¥í¥°¥é¥à¤ËÁ÷¤é¤ì¤Æ¡¢Àµ¤·¤¯ºÆµ¯Æ°¤µ¤ì¤ë¡£ -Ãͤ¬ 0 ¤è¤êÂ礭¤¤¾ì¹ç¡¢Vulcan Nerve Pinch (tm) ¤ËÈ¿±þ¤·¤Æ¡¢ -Linux ¤Ï¥À¡¼¥Æ¥£¥Ð¥Ã¥Õ¥¡¤òƱ´ü¤µ¤»¤ë¤³¤È¤Ê¤¯¡¢¤¹¤°¤ËºÆµ¯Æ°¤ò¹Ô¤¦¡£ -Ãí°Õ: ¥×¥í¥°¥é¥à (dosemu ¤Ê¤É) ¤Ë "raw" ¥â¡¼¥É¤Î¥­¡¼¥Ü¡¼¥É¤¬¤¢¤ë¾ì¹ç¡¢ -ctrl-alt-del ¤Ï¥«¡¼¥Í¥ë¤Î tty ¥ì¥¤¥ä¡¼¤ËÅþ㤹¤ëÁ°¤Ë -¥×¥í¥°¥é¥à¤Ë¼×ÃǤµ¤ì¡¢ -¥×¥í¥°¥é¥à¤ËÁ÷¤é¤ì¤Æ¤É¤Î¤è¤¦¤Ë°·¤¦¤«¤¬·è¤á¤é¤ì¤ë¡£ +プログラムに送られて、正しく再起動される。 +値が 0 より大きい場合、Vulcan Nerve Pinch (tm) に反応して、 +Linux はダーティバッファを同期させることなく、すぐに再起動を行う。 +注意: プログラム (dosemu など) に "raw" モードのキーボードがある場合、 +ctrl-alt-del はカーネルの tty レイヤーに到達する前に +プログラムに遮断され、 +プログラムに送られてどのように扱うかが決められる。 .TP .I /proc/sys/kernel/hotplug -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥Û¥Ã¥È¥×¥é¥°¡¦¥Ý¥ê¥·¡¼¡¦¥¨¡¼¥¸¥§¥ó¥È¤Î¥Ñ¥¹¤¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï +このファイルはホットプラグ・ポリシー・エージェントのパスが書かれている。 +このファイルのデフォルト値は .I /sbin/hotplug -¤Ç¤¢¤ë¡£ +である。 .TP -.IR /proc/sys/kernel/domainname " ¤È " /proc/sys/kernel/hostname -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¥³¥Þ¥ó¥É +.IR /proc/sys/kernel/domainname " と " /proc/sys/kernel/hostname +これらのファイルは、コマンド .BR domainname (1), .BR hostname (1) -¤ÈÁ´¤¯Æ±¤¸ÊýË¡¤Ç¡¢ -¥Þ¥·¥ó¤Î NIS/YP ¥É¥á¥¤¥ó̾¤È¥Û¥¹¥È̾¤ÎÀßÄê¤Ë»È¤¨¤ë¡£ -¤¹¤Ê¤ï¤Á +と全く同じ方法で、 +マシンの NIS/YP ドメイン名とホスト名の設定に使える。 +すなわち .in +4n .nf @@ -2142,7 +2142,7 @@ ctrl-alt-del .fi .in -¤Ï¡¢°Ê²¼¤ÈƱ¤¸¸ú²Ì¤¬¤¢¤ë¡£ +は、以下と同じ効果がある。 .in +4n .nf @@ -2151,485 +2151,485 @@ ctrl-alt-del .fi .in -Ãí°Õ: ŵ·¿Åª¤Ê darkstar.frop.org ¤È¤¤¤¦Ì¾Á°¤Ë¤Ï¡¢ -¥Û¥¹¥È̾ "darkstar" ¤È DNS (Internet Domain Name Server) -¥É¥á¥¤¥ó̾ "frop.org" ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤¬¡¢DNS ¥É¥á¥¤¥ó̾¤È -NIS (Network Information Service) ¤Þ¤¿¤Ï -YP (Yellow Pages) ¤Î¥É¥á¥¤¥ó̾¤òº®Æ±¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -°ìÈ̤ˤ³¤ì¤é 2 ¤Ä¤Î¥É¥á¥¤¥ó̾¤Ï°Û¤Ê¤ë¡£ -¾ÜºÙ¤ÊµÄÏÀ¤Ï¡¢ +注意: 典型的な darkstar.frop.org という名前には、 +ホスト名 "darkstar" と DNS (Internet Domain Name Server) +ドメイン名 "frop.org" が含まれているが、DNS ドメイン名と +NIS (Network Information Service) または +YP (Yellow Pages) のドメイン名を混同してはならない。 +一般にこれら 2 つのドメイン名は異なる。 +詳細な議論は、 .BR hostname (1) -¤Î man ¥Ú¡¼¥¸¤ò»²¾È¤¹¤ë¤³¤È¡£ +の man ページを参照すること。 .TP .I /proc/sys/kernel/htab-reclaim -(PowerPC ¤Î¤ß) ¤³¤Î¥Õ¥¡¥¤¥ë¤ò 0 °Ê³°¤ÎÃͤËÀßÄꤹ¤ë¤È¡¢ +(PowerPC のみ) このファイルを 0 以外の値に設定すると、 PowerPC htab -(¥«¡¼¥Í¥ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë +(カーネルソースファイル .I Documentation/powerpc/ppc_htab.txt -»²¾È) ¤ò¡¢¥·¥¹¥Æ¥à¤¬¥¢¥¤¥É¥ë¥ë¡¼¥×¤Ë¤Ê¤ë¤¿¤Ó¤ËÀÚ¤êµÍ¤á¤ë¡£ +参照) を、システムがアイドルループになるたびに切り詰める。 .TP .I /proc/sys/kernel/l2cr -(PowerPC ¤Î¤ß) ¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï G3 ¥×¥í¥»¥Ã¥µ¥Ü¡¼¥É¤Î -L2 ¥­¥ã¥Ã¥·¥å¤òÀ©¸æ¤¹¤ë¥Õ¥é¥°¤¬´Þ¤Þ¤ì¤ë¡£ -0 ¤Î¾ì¹ç¡¢¥­¥ã¥Ã¥·¥å¤Ï̵¸ú¤Ë¤Ê¤ë¡£ -0 °Ê³°¤Î¾ì¹ç¤ÏÍ­¸ú¤Ë¤Ê¤ë¡£ +(PowerPC のみ) このファイルには G3 プロセッサボードの +L2 キャッシュを制御するフラグが含まれる。 +0 の場合、キャッシュは無効になる。 +0 以外の場合は有効になる。 .TP .I /proc/sys/kernel/modprobe -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¥í¡¼¥À¤Ø¤Î¥Ñ¥¹¤¬´Þ¤Þ¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÃÍ¤Ï +このファイルには、カーネルモジュールローダへのパスが含まれる。 +デフォルトの値は .I /sbin/modprobe -¤Ç¤¢¤ë¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢ +である。このファイルは、 .B CONFIG_KMOD -¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤·¤Æ¥«¡¼¥Í¥ë¤¬ºîÀ®¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Î¤ß¸ºß¤¹¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥«¡¼¥Í¥ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë +オプションを有効にしてカーネルが作成されている場合にのみ存在する。 +このファイルについては、カーネルソースファイル .I Documentation/kmod.txt -(¥«¡¼¥Í¥ë 2.4 °ÊÁ°¤Î¤ß¤Ë¸ºß) ¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +(カーネル 2.4 以前のみに存在) に記述されている。 .TP .I /proc/sys/kernel/msgmax -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢System V ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ë½ñ¤­¹þ¤Þ¤ì¤ë 1 ¤Ä¤Î¥á¥Ã¥»¡¼¥¸¤Î -ºÇÂç¥Ð¥¤¥È¿ô¤ò¡¢¥·¥¹¥Æ¥àÁ´ÂΤÇÀ©¸Â¤¹¤ë¡£ +このファイルは、System V メッセージキューに書き込まれる 1 つのメッセージの +最大バイト数を、システム全体で制限する。 .TP .I /proc/sys/kernel/msgmni -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¼±Ê̻ҤκÇÂç¿ô¤ò¥·¥¹¥Æ¥àÁ´ÂΤÇÀ©¸Â¤¹¤ë¡£ -(¤³¤Î¥Õ¥¡¥¤¥ë¤Ï Linux 2.4 °Ê¹ß¤Ë¤·¤«Â¸ºß¤·¤Ê¤¤)¡£ +このファイルはメッセージキュー識別子の最大数をシステム全体で制限する。 +(このファイルは Linux 2.4 以降にしか存在しない)。 .TP .I /proc/sys/kernel/msgmnb -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢ +このファイルは、 .I msg_qbytes -¤ÎÀßÄê¤ò½é´ü²½¤¹¤ë¥·¥¹¥Æ¥àÁ´ÂΤΥѥé¥á¡¼¥¿¤Ç¤¢¤ë¡£ +の設定を初期化するシステム全体のパラメータである。 .I msg_qbytes -¤Ï°Ê¹ß¤ÇºîÀ®¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ç»È¤ï¤ì¤ë¡£ +は以降で作成されるメッセージキューで使われる。 .I msg_qbytes -ÀßÄê¤Ç¤Ï¡¢¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ë½ñ¤­¹þ¤Þ¤ì¤ëºÇÂç¥Ð¥¤¥È¿ô¤ò»ØÄꤹ¤ë¡£ +設定では、メッセージキューに書き込まれる最大バイト数を指定する。 .TP -.IR /proc/sys/kernel/ostype " ¤È " /proc/sys/kernel/osrelease -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ïʸ»úÎó +.IR /proc/sys/kernel/ostype " と " /proc/sys/kernel/osrelease +これらのファイルは文字列 .I /proc/version -¤Î³ÆÉôʬ¤òÍ¿¤¨¤ë¡£ +の各部分を与える。 .TP -.IR /proc/sys/kernel/overflowgid " ¤È " /proc/sys/kernel/overflowuid -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï +.IR /proc/sys/kernel/overflowgid " と " /proc/sys/kernel/overflowuid +これらのファイルは .I /proc/sys/fs/overflowgid -¤È +と .I /proc/sys/fs/overflowuid -¤òÊ£À½¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +を複製したものである。 .TP .I /proc/sys/kernel/panic -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥«¡¼¥Í¥ëÊÑ¿ô +このファイルはカーネル変数 .I panic_timeout -¤Ø¤ÎÆɤ߽Ф·¤È½ñ¤­¹þ¤ß¤Î¥¢¥¯¥»¥¹¤òÍ¿¤¨¤ë¡£ -¤³¤ÎÃͤ¬ 0 ¤Ê¤é¤Ð¡¢¥Ñ¥Ë¥Ã¥¯»þ¤Ë¥«¡¼¥Í¥ë¤Ï (̵¸Â) ¥ë¡¼¥×¤ËÆþ¤ë¡£ -0 ¤Ç¤Ê¤±¤ì¤Ð¡¢¤½¤ÎÉÿô¤À¤±ÂԤäƤ«¤é¼«Æ°Åª¤ËºÆµ¯Æ°¤¹¤ë¡£ -¥½¥Õ¥È¥¦¥§¥¢ watchdog ¥É¥é¥¤¥Ð¤ò»È¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -¿ä¾©¤µ¤ì¤ëÀßÄê¤Ï 60 ¤Ç¤¢¤ë¡£ -.TP -.IR /proc/sys/kernel/panic_on_oops " (Linux 2.5.68 °Ê¹ß)" -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢oops ¤ä BUG ¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Î¥«¡¼¥Í¥ë¤ÎÆ°ºî¤òÀ©¸æ¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¤Ë 0 ¤¬½ñ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥·¥¹¥Æ¥à¤ÏÁàºî¤ò³¹Ô¤·¤è¤¦¤È¤¹¤ë¡£ -1 ¤¬½ñ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥·¥¹¥Æ¥à¤Ï -(klogd ¤¬ oops ½ÐÎϤòµ­Ï¿¤¹¤ë»þ´Ö¤òÍ¿¤¨¤ë¤¿¤á¤Ë) ¿ôÉôÖÃٱ䤷¤¿¸å¡¢ -panic ¤òµ¯¤³¤¹¡£ +への読み出しと書き込みのアクセスを与える。 +この値が 0 ならば、パニック時にカーネルは (無限) ループに入る。 +0 でなければ、その秒数だけ待ってから自動的に再起動する。 +ソフトウェア watchdog ドライバを使っている場合、 +推奨される設定は 60 である。 +.TP +.IR /proc/sys/kernel/panic_on_oops " (Linux 2.5.68 以降)" +このファイルは、oops や BUG が起こった場合のカーネルの動作を制御する。 +ファイルに 0 が書かれている場合、システムは操作を続行しようとする。 +1 が書かれている場合、システムは +(klogd が oops 出力を記録する時間を与えるために) 数秒間遅延した後、 +panic を起こす。 .I /proc/sys/kernel/panic -¥Õ¥¡¥¤¥ë¤â 0 ¤Ç¤Ê¤¤¾ì¹ç¡¢¥Þ¥·¥ó¤ÏºÆµ¯Æ°¤µ¤ì¤ë¡£ -.TP -.IR /proc/sys/kernel/pid_max " (Linux 2.5.34 °Ê¹ß)" -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢PID ¤ò¤¤¤¯¤Ä¤Ç½ªÎ»¤Ë¤¹¤ë¤«¤ò»ØÄꤹ¤ë -(¤¹¤Ê¤ï¤Á¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÃͤϺÇÂç PID ¤è¤ê 1 Â礭¤¤)¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 32768 ¤Ç¤¢¤ê¡¢ -¤½¤Î¾ì¹ç¤Ë¤Ï°ÊÁ°¤Î¥«¡¼¥Í¥ë¤ÈƱ¤¸ PID ¤ÎÈϰϤˤʤ롣 -32¥Ó¥Ã¥È¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï¡¢ +ファイルも 0 でない場合、マシンは再起動される。 +.TP +.IR /proc/sys/kernel/pid_max " (Linux 2.5.34 以降)" +このファイルは、PID をいくつで終了にするかを指定する +(すなわち、このファイルの値は最大 PID より 1 大きい)。 +このファイルのデフォルト値は 32768 であり、 +その場合には以前のカーネルと同じ PID の範囲になる。 +32ビットのプラットフォームでは、 .I pid_max -¤ÎºÇÂçÃÍ¤Ï 32768 ¤Ç¤¢¤ë¡£ -64¥Ó¥Ã¥È¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï¡¢ +の最大値は 32768 である。 +64ビットのプラットフォームでは、 2^22 .RB ( PID_MAX_LIMIT , -Ìó 4,000,000) ¤Þ¤Ç¤ÎǤ°Õ¤ÎÃͤòÀßÄê¤Ç¤­¤ë¡£ +約 4,000,000) までの任意の値を設定できる。 .\" Prior to 2.6.10, pid_max could also be raised above 32768 on 32-bit .\" platforms, but this broke /proc/[pid] .\" See http://marc.theaimsgroup.com/?l=linux-kernel&m=109513010926152&w=2 .TP -.IR /proc/sys/kernel/powersave-nap " (PowerPC ¤Î¤ß)" -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¥Õ¥é¥°¤¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ -¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤ë¤È¡¢Linux-PPC ¤Ï -¾ÊÅÅÎϤΠ"nap" ¥â¡¼¥É¤ò»È¤¦¡£ -ÀßÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢"doze" ¥â¡¼¥É¤¬»È¤ï¤ì¤ë¡£ +.IR /proc/sys/kernel/powersave-nap " (PowerPC のみ)" +このファイルにはフラグが書かれている。 +フラグが設定されると、Linux-PPC は +省電力の "nap" モードを使う。 +設定されない場合は、"doze" モードが使われる。 .TP .I /proc/sys/kernel/printk -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë 4 ¤Ä¤ÎÃͤϡ¢ +このファイルにある 4 つの値は、 .IR console_loglevel , .IR default_message_loglevel , .IR minimum_console_loglevel , .IR default_console_loglevel -¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤ÎÃͤϥ¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤¿¤êµ­Ï¿¤·¤¿¤ê¤¹¤ë +である。 +これらの値はエラーメッセージを表示したり記録したりする .I printk() -¤ÎÆ°ºî¤Ë±Æ¶Á¤¹¤ë¡£ -³Æ loglevel ¤Î¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +の動作に影響する。 +各 loglevel の情報については、 .BR syslog (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -Í¥ÀèÅÙ¤¬ +を参照すること。 +優先度が .I console_loglevel -°Ê¾å¤Î¥á¥Ã¥»¡¼¥¸¤Ï¡¢¥³¥ó¥½¡¼¥ë¤Ëɽ¼¨¤µ¤ì¤ë¡£ -Í¥ÀèÅÙ¤¬ÌÀ¼¨¤µ¤ì¤Æ¤¤¤Ê¤¤¥á¥Ã¥»¡¼¥¸¤Ï¡¢Í¥ÀèÅÙ¤¬ +以上のメッセージは、コンソールに表示される。 +優先度が明示されていないメッセージは、優先度が .I default_message_level -¤Î¤È¤­¤Ëɽ¼¨¤µ¤ì¤ë¡£ +のときに表示される。 .I minimum_console_loglevel -¤Ï +は .I console_loglevel -¤ËÀßÄê¤Ç¤­¤ëºÇ¾® (ºÇ¹â) ¤ÎÃͤǤ¢¤ë¡£ +に設定できる最小 (最高) の値である。 .I default_console_loglevel -¤Ï +は .I console_loglevel -¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÃͤǤ¢¤ë¡£ +のデフォルトの値である。 .TP -.IR /proc/sys/kernel/pty " (Linux 2.6.4 °Ê¹ß)" -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢Unix 98 µ¿»÷üËö +.IR /proc/sys/kernel/pty " (Linux 2.6.4 以降)" +このディレクトリは、Unix 98 疑似端末 .RB ( pts (4) -¤ò»²¾È) ¤Î¿ô¤Ë´ØÏ¢¤¹¤ë 2 ¤Ä¤Î¥Õ¥¡¥¤¥ë¤ò´Þ¤à¡£ +を参照) の数に関連する 2 つのファイルを含む。 .TP .I /proc/sys/kernel/pty/max -¤³¤Î¥Õ¥¡¥¤¥ë¤Ïµ¿»÷üËö¤ÎºÇÂç¿ô¤òÄêµÁ¤¹¤ë¡£ +このファイルは疑似端末の最大数を定義する。 .TP .I /proc/sys/kernel/pty/nr -¤³¤ÎÆɤ߽Ф·ÀìÍѤΥե¡¥¤¥ë¤Ï¡¢¸½ºß¤¤¤¯¤Ä¤Îµ¿»÷üËö¤¬»È¤ï¤ì¤Æ¤¤¤ë¤«¤òɽ¤¹¡£ +この読み出し専用のファイルは、現在いくつの疑似端末が使われているかを表す。 .TP .I /proc/sys/kernel/random -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢¥Õ¥¡¥¤¥ë +このディレクトリは、ファイル .I /dev/random -¤ÎÁàºî¤òÀ©¸æ¤¹¤ëÍÍ¡¹¤Ê¥Ñ¥é¥á¡¼¥¿¤¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ -¾ÜºÙ¤Ï +の操作を制御する様々なパラメータが書かれている。 +詳細は .BR random (4) -¤ò»²¾È¡£ +を参照。 .TP .I /proc/sys/kernel/real-root-dev -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥«¡¼¥Í¥ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë +このファイルはカーネルソースファイル .I Documentation/initrd.txt -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +に記述されている。 .TP -.IR /proc/sys/kernel/reboot-cmd " (Sparc ¤Î¤ß) " -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï SPARC ROM/Flash ¥Ö¡¼¥È¥í¡¼¥À¤Ë°ú¤­¿ô¤òÅϤ¹ÊýË¡¤ò -Ä󶡤·¤Æ¤¤¤ë¤è¤¦¤Ë»×¤ï¤ì¤ë¡£ -ºÆµ¯Æ°¸å¤Ë²¿¤ò¤¹¤ë¤«¤ò»ØÄꤷ¤Æ¤¤¤ë¤Î¤À¤í¤¦¤«¡© +.IR /proc/sys/kernel/reboot-cmd " (Sparc のみ) " +このファイルは SPARC ROM/Flash ブートローダに引き数を渡す方法を +提供しているように思われる。 +再起動後に何をするかを指定しているのだろうか? .TP .I /proc/sys/kernel/rtsig-max -(2.6.7 ¤Þ¤Ç¤Î¥«¡¼¥Í¥ë¤Ë¤Î¤ß¸ºß¤¹¤ë¡£ +(2.6.7 までのカーネルにのみ存在する。 .BR setrlimit (2) -¤ò»²¾È¤¹¤ë¤³¤È) -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥·¥¹¥Æ¥à¤Çȯ¹Ô¤µ¤ì¤ë POSIX real-time (queued) signal ¤Î -ºÇÂç¿ô¤òÄ´À°¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ +を参照すること) +このファイルはシステムで発行される POSIX real-time (queued) signal の +最大数を調整するのに使用される。 .TP .I /proc/sys/kernel/rtsig-nr -(2.6.7 ¤Þ¤Ç¤Î¥«¡¼¥Í¥ë¤Ë¤Î¤ß¸ºß¤¹¤ë) -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¸½ºß¥­¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ë POSIX real-time signal ¤Î¿ô¤òɽ¤¹¡£ +(2.6.7 までのカーネルにのみ存在する) +このファイルは現在キューに入っている POSIX real-time signal の数を表す。 .TP -.IR /proc/sys/kernel/sem " (Linux 2.4 °Ê¹ß)" -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï System V IPC ¥»¥Þ¥Õ¥©¤òÀ©¸Â¤¹¤ë 4 ¤Ä¤ÎÃͤ¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Ï¼¡¤Î½çÈÖ¤Ëʤó¤Ç¤¤¤ë: +.IR /proc/sys/kernel/sem " (Linux 2.4 以降)" +このファイルには System V IPC セマフォを制限する 4 つの値が書かれている。 +これらのフィールドは次の順番に並んでいる: .RS .IP SEMMSL 8 -¥»¥Þ¥Õ¥©½¸¹ç¤´¤È¤Î¥»¥Þ¥Õ¥©¿ô¤ÎºÇÂçÃÍ¡£ +セマフォ集合ごとのセマフォ数の最大値。 .IP SEMMNS 8 -¥·¥¹¥Æ¥àÁ´ÂΤǤΡ¢Á´¤Æ¤Î¥»¥Þ¥Õ¥©½¸¹ç¤Ë¤ª¤±¤ë¥»¥Þ¥Õ¥©¿ô¤ÎÀ©¸Â¡£ +システム全体での、全てのセマフォ集合におけるセマフォ数の制限。 .IP SEMOPM 8 .BR semop (2) -¥³¡¼¥ë¤Ë»ØÄꤵ¤ì¤ë¥ª¥Ú¥ì¡¼¥·¥ç¥ó¿ô¤ÎºÇÂçÃÍ¡£ +コールに指定されるオペレーション数の最大値。 .IP SEMMNI 8 -¥·¥¹¥Æ¥àÁ´ÂΤǤΥ»¥Þ¥Õ¥©¼±Ê̻ҤκÇÂçÃÍ¡£ +システム全体でのセマフォ識別子の最大値。 .RE .TP .I /proc/sys/kernel/sg-big-buff -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢ÈÆÍÑ SCSI ¥Ç¥Ð¥¤¥¹ (sg) ¤Î¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤ÎºÇÂçÃͤòɽ¤¹¡£ -º£¤Ï¤³¤ì¤òÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¤¬¡¢ -¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +このファイルは、汎用 SCSI デバイス (sg) のバッファサイズの最大値を表す。 +今はこれを変更することはできないが、 +コンパイル時に .I include/scsi/sg.h -¤òÊÔ½¸¤·¤Æ +を編集して .B SG_BIG_BUFF -¤ÎÃͤòÊѤ¨¤ì¤ÐÊѹ¹¤Ç¤­¤ë¡£ -¤¿¤À¤·¡¢¤³¤ÎÃͤòÊѹ¹¤¹¤ëÍýͳ¤Ï¤Ê¤¤¤À¤í¤¦¡£ +の値を変えれば変更できる。 +ただし、この値を変更する理由はないだろう。 .TP .I /proc/sys/kernel/shmall -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï System V ¶¦Í­¥á¥â¥ê¤ÎÁí¥Ú¡¼¥¸¿ô¤Î -¥·¥¹¥Æ¥àÁ´ÂΤǤÎÀ©¸Â¤¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ +このファイルには System V 共有メモリの総ページ数の +システム全体での制限が書かれている。 .TP .I /proc/sys/kernel/shmmax -¤³¤Î¥Õ¥¡¥¤¥ë¤òÄ̤¸¤Æ¡¢(System V IPC) ¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤òºîÀ®¤¹¤ë¤È¤­¤Î -ºÇÂ祵¥¤¥º¤Î¼Â¹Ô»þ¾å¸Â (run-time limit) ¤ò¼èÆÀ¤Þ¤¿¤ÏÀßÄê¤Ç¤­¤ë¡£ -¸½ºß¤Ï 1GB ¤Þ¤Ç¤Î¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤¬ -¥«¡¼¥Í¥ë¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ÎÃͤΥǥե©¥ë¥È¤Ï +このファイルを通じて、(System V IPC) 共有メモリセグメントを作成するときの +最大サイズの実行時上限 (run-time limit) を取得または設定できる。 +現在は 1GB までの共有メモリセグメントが +カーネルでサポートされている。 +この値のデフォルトは .B SHMMAX -¤Ç¤¢¤ë¡£ +である。 .TP .I /proc/sys/kernel/shmmni -(Linux 2.4 °Ê¹ß¤Ç»ÈÍѲÄǽ) -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¥·¥¹¥Æ¥àÁ´ÂΤǺîÀ®²Äǽ¤Ê -System V ¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¿ô¤ò»ØÄꤹ¤ë¡£ +(Linux 2.4 以降で使用可能) +このファイルは、システム全体で作成可能な +System V 共有メモリセグメント数を指定する。 .TP .I /proc/sys/kernel/sysrq -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢SysRq ¥­¡¼¤Ë¤è¤êµ¯Æ°¤¬µö²Ä¤µ¤ì¤Æ¤¤¤ë´Ø¿ô·²¤òÀ©¸æ¤¹¤ë -¤â¤Î¤Ç¤¢¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¤Ï 1 ¤Ç¤¢¤ê¡¢ -¤³¤ì¤Ïµ¯¤³¤êÆÀ¤ëÁ´¤Æ¤Î SysRq ¥ê¥¯¥¨¥¹¥È¤¬µö²Ä¤µ¤ì¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë -(¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢SysRq ¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢ -¼Â¹Ô»þ¤ËÌÀ¼¨Åª¤ËÍ­¸ú¤Ë¤¹¤ëɬÍפ¬¤¢¤Ã¤¿¤¬¡¢º£¤Ï¤½¤¦¤Ç¤Ï¤Ê¤¤)¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ç»ØÄê²Äǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ꡣ - - 0 - sysrq ¤ò´°Á´¤Ë̵¸ú¤Ë¤¹¤ë - 1 - sysrq ¤ÎÁ´¤Æ¤Î´Ø¿ô¤òÍ­¸ú¤Ë¤¹¤ë - >1 - µö²Ä¤¹¤ë sysrq ´Ø¿ô¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¡£ÆâÌõ¤Ï°Ê²¼¤ÎÄ̤ꡣ - 2 - ¥³¥ó¥½¡¼¥ë¤Î¥í¥°¡¦¥ì¥Ù¥ë¤ÎÀ©¸æ¤òÍ­¸ú¤Ë¤¹¤ë - 4 - ¥­¡¼¥Ü¡¼¥É¤ÎÀ©¸æ¤òÍ­¸ú¤Ë¤¹¤ë (SAK, unraw) - 8 - ¥×¥í¥»¥¹¤Ê¤É¤Î¥Ç¥Ð¥Ã¥°¡¦¥À¥ó¥×¤òÍ­¸ú¤Ë¤¹¤ë - 16 - sync ¥³¥Þ¥ó¥É¤òÍ­¸ú¤Ë¤¹¤ë - 32 - Æɤ߽Ф·ÀìÍѤǤκƥޥ¦¥ó¥È¤òÍ­¸ú¤Ë¤¹¤ë - 64 - ¥×¥í¥»¥¹¤Ø¤Î¥·¥°¥Ê¥ëȯ¹Ô¤òÍ­¸ú¤Ë¤¹¤ë (term, kill, oom-kill) - 128 - ¥ê¥Ö¡¼¥È/ÅŸ»¥ª¥Õ¤òµö²Ä¤¹¤ë - 256 - Á´¤Æ¤Î¥ê¥¢¥ë¥¿¥¤¥à¡¦¥¿¥¹¥¯¤Î nice ÃͤÎÊѹ¹¤òµö²Ä¤¹¤ë - -¥«¡¼¥Í¥ëÀßÄꥪ¥×¥·¥ç¥ó +このファイルは、SysRq キーにより起動が許可されている関数群を制御する +ものである。デフォルトでは、ファイルの内容は 1 であり、 +これは起こり得る全ての SysRq リクエストが許可されることを意味する +(古いバージョンのカーネルでは、SysRq はデフォルトでは無効になっており、 +実行時に明示的に有効にする必要があったが、今はそうではない)。 +このファイルで指定可能な値は以下の通り。 + + 0 - sysrq を完全に無効にする + 1 - sysrq の全ての関数を有効にする + >1 - 許可する sysrq 関数のビットマスク。内訳は以下の通り。 + 2 - コンソールのログ・レベルの制御を有効にする + 4 - キーボードの制御を有効にする (SAK, unraw) + 8 - プロセスなどのデバッグ・ダンプを有効にする + 16 - sync コマンドを有効にする + 32 - 読み出し専用での再マウントを有効にする + 64 - プロセスへのシグナル発行を有効にする (term, kill, oom-kill) + 128 - リブート/電源オフを許可する + 256 - 全てのリアルタイム・タスクの nice 値の変更を許可する + +カーネル設定オプション .B CONFIG_MAGIC_SYSRQ -¤¬Í­¸ú¤Ê¾ì¹ç¤Î¤ß¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¸ºß¤¹¤ë¡£ -¾ÜºÙ¤Ï¡¢¥«¡¼¥Í¥ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë +が有効な場合のみ、このファイルは存在する。 +詳細は、カーネルソースファイル .I Documentation/sysrq.txt -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .TP .I /proc/sys/kernel/version -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Êʸ»úÎ󤬽ñ¤«¤ì¤Æ¤¤¤ë: +このファイルには、以下のような文字列が書かれている: #5 Wed Feb 25 21:49:24 MET 1998 -\&"#5" ¤Ï¤³¤Î¥½¡¼¥¹¤Ç¹½ÃÛ¤µ¤ì¤¿ 5 ÈÖÌܤΥ«¡¼¥Í¥ë¤Ç¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -¤½¤Î¸å¤Ë¤¢¤ëÆüÉդϥ«¡¼¥Í¥ë¤¬¹½ÃÛ¤µ¤ì¤¿»þ¹ï¤òɽ¤¹¡£ +\&"#5" はこのソースで構築された 5 番目のカーネルであることを意味する。 +その後にある日付はカーネルが構築された時刻を表す。 .TP -.IR /proc/sys/kernel/threads-max " (Linux 2.3.11 °Ê¹ß)" -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¥·¥¹¥Æ¥àÁ´ÂΤǺîÀ®²Äǽ¤Ê¥¹¥ì¥Ã¥É¿ô -(¥¿¥¹¥¯¿ô) ¤Î¾å¸Â¤ò»ØÄꤹ¤ë¡£ +.IR /proc/sys/kernel/threads-max " (Linux 2.3.11 以降)" +このファイルは、システム全体で作成可能なスレッド数 +(タスク数) の上限を指定する。 .TP -.IR /proc/sys/kernel/zero-paged " (PowerPC ¤Î¤ß) " -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥Õ¥é¥°¤ò´Þ¤à¡£ -(0 °Ê³°¤ÎÃͤÇ) Í­¸ú¤µ¤ì¤¿¾ì¹ç¡¢Linux-PPC ¤Ï¥¢¥¤¥É¥ë¥ë¡¼¥×¤Ç -pre-zero page ¤ò¹Ô¤¦¤Î¤Ç¡¢get_free_pages ¤Î®ÅÙ¤¬¸þ¾å¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +.IR /proc/sys/kernel/zero-paged " (PowerPC のみ) " +このファイルはフラグを含む。 +(0 以外の値で) 有効された場合、Linux-PPC はアイドルループで +pre-zero page を行うので、get_free_pages の速度が向上する可能性がある。 .TP .I /proc/sys/net -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¥Í¥Ã¥È¥ï¡¼¥¯´Ø·¸¤Î¾ðÊó¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤Î¤¤¤¯¤Ä¤«¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +このディレクトリにはネットワーク関係の情報が入っている。 +このディレクトリにあるファイルのいくつかについては、 .BR tcp (7) -¤ä +や .BR ip (7) -¤ËÀâÌÀ¤¬¤¢¤ë¡£ +に説明がある。 .TP .I /proc/sys/net/core/somaxconn -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï +このファイルは .BR listen (2) -¤Î +の .I backlog -°ú¤­¿ô¤Î¾å¸ÂÃͤòµ¬Äꤹ¤ë¡£ -¾ÜºÙ¤Ï +引き数の上限値を規定する。 +詳細は .BR listen (2) -¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¡£ +のマニュアルページを参照。 .TP .I /proc/sys/proc -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¤¿¤Ö¤ó¶õ¤Ç¤¢¤ë¡£ +このディレクトリはたぶん空である。 .TP .I /proc/sys/sunrpc -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à (NFS) ¤Ø¤Î -Sun remote procedure call (±ó³Ö¼ê³¤­¸Æ¤Ó½Ð¤·) ¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ -¤³¤ì¤¬Â¸ºß¤·¤Ê¤¤¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ +このディレクトリはネットワークファイルシステム (NFS) への +Sun remote procedure call (遠隔手続き呼び出し) をサポートする。 +これが存在しないシステムもある。 .TP .I /proc/sys/vm -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¥á¥â¥ê´ÉÍý¤ÎÄ´À°¡¢¥Ð¥Ã¥Õ¥¡¤ä¥­¥ã¥Ã¥·¥å´ÉÍý¤Î¤¿¤á¤Î -¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¡£ +このディレクトリにはメモリ管理の調整、バッファやキャッシュ管理のための +ファイルがある。 .TP -.IR /proc/sys/vm/drop_caches " (Linux 2.6.16 °Ê¹ß)" -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤ß¤ò¹Ô¤¦¤³¤È¤Ç¡¢¥¯¥ê¡¼¥ó¤Ê¥­¥ã¥Ã¥·¥å¡¢dentry¡¢ -inode ¤ò¥á¥â¥ê¾å¤«¤é³°¤·¡¢¤½¤Î¥á¥â¥ê¤ò²òÊü¤¹¤ë¡£ +.IR /proc/sys/vm/drop_caches " (Linux 2.6.16 以降)" +このファイルに書き込みを行うことで、クリーンなキャッシュ、dentry、 +inode をメモリ上から外し、そのメモリを解放する。 -¥Ú¡¼¥¸¥­¥ã¥Ã¥·¥å¤ò²òÊü¤¹¤ë¤Ë¤Ï¡¢ +ページキャッシュを解放するには、 .I "echo 1 > /proc/sys/vm/drop_caches" -¤È¤¹¤ë¡£ dentry¡¢inode ¤ò²òÊü¤¹¤ë¤Ë¤Ï¡¢ +とする。 dentry、inode を解放するには、 .I "echo 2 > /proc/sys/vm/drop_caches" -¤È¤¹¤ë¡£¥Ú¡¼¥¸¥­¥ã¥Ã¥·¥å¡¢dentry¡¢inode ¤ò²òÊü¤¹¤ë¤Ë¤Ï¡¢ +とする。ページキャッシュ、dentry、inode を解放するには、 .IR "echo 3 > /proc/sys/vm/drop_caches" -¤È¤¹¤ë¡£ +とする。 -¤³¤ÎÁàºî¤ÏÈóÇ˲õŪ¤ÊÁàºî¤Ç¡¢¥À¡¼¥Æ¥£¤Ê (dirty) ¥ª¥Ö¥¸¥§¥¯¥È¤Ï -²òÊü¤µ¤ì¤Ê¤¤¤Î¤Ç¡¢¤³¤ÎÁàºî¤ò¹Ô¤¦ºÝ¤ÏºÇ½é¤Ë +この操作は非破壊的な操作で、ダーティな (dirty) オブジェクトは +解放されないので、この操作を行う際は最初に .BR sync (8) -¤ò¼Â¹Ô¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£ +を実行しておくべきである。 .TP .IR /proc/sys/vm/swappiness .\" The following is from Documentation/sysctl/vm.txt -¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÃͤˤè¤ê¡¢¥«¡¼¥Í¥ë¤¬¤É¤ÎÄøÅٷ㤷¤¯¥á¥â¥ê¥Ú¡¼¥¸¤Î -¥¹¥ï¥Ã¥×¤ò¹Ô¤¦¤«¤¬À©¸æ¤µ¤ì¤ë¡£ -Â礭¤ÊÃͤۤɥ¹¥ï¥Ã¥×¤¬·ã¤·¤¯¤Ê¤ê¡¢¾®¤µ¤¤Ãͤۤɷ㤷¤¯¤Ê¤¯¤Ê¤ë¡£ -¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 60 ¤Ç¤¢¤ë¡£ -.TP -.IR /proc/sys/vm/legacy_va_layout " (Linux 2.6.9 °Ê¹ß)" -.\" °Ê²¼¤Îµ­½Ò¤Ï Documentation/filesystems/proc.txt ¤«¤é¤Î°úÍѤǤ¢¤ë¡£ -0 °Ê³°¤Î¾ì¹ç¡¢¿·¤·¤¤ 32¥Ó¥Ã¥È¥á¥â¥ê¥Þ¥Ã¥Ô¥ó¥°ÇÛÃÖ¤¬Ìµ¸ú¤Ë¤Ê¤ê¡¢ -¥«¡¼¥Í¥ë¤ÏÁ´¤Æ¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ½¾Íè¤Î (¥«¡¼¥Í¥ë 2.4 ¤Î) ÇÛÃÖÊýË¡¤ò -»ÈÍѤ¹¤ë¡£ -.TP -.IR /proc/sys/vm/oom_dump_tasks " (Linux 2.6.25 °Ê¹ß)" +このファイルの値により、カーネルがどの程度激しくメモリページの +スワップを行うかが制御される。 +大きな値ほどスワップが激しくなり、小さい値ほど激しくなくなる。 +デフォルト値は 60 である。 +.TP +.IR /proc/sys/vm/legacy_va_layout " (Linux 2.6.9 以降)" +.\" 以下の記述は Documentation/filesystems/proc.txt からの引用である。 +0 以外の場合、新しい 32ビットメモリマッピング配置が無効になり、 +カーネルは全てのプロセスに対して従来の (カーネル 2.4 の) 配置方法を +使用する。 +.TP +.IR /proc/sys/vm/oom_dump_tasks " (Linux 2.6.25 以降)" .\" The following is from Documentation/sysctl/vm.txt -¥«¡¼¥Í¥ë¤¬ OOM-killing ¤ò¼Â¹Ô¤¹¤ëºÝ¤Ë¡¢¥·¥¹¥Æ¥àÁ´ÂΤΥ¿¥¹¥¯¡¦¥À¥ó¥× -(¥«¡¼¥Í¥ë¥¹¥ì¥Ã¥É¤ò½ü¤¯) ¤òÀ¸À®¤¹¤ë¤«¤òÀ©¸æ¤¹¤ë¡£ -¥À¥ó¥×¤Ë¤Ï¡¢¥¿¥¹¥¯ (¥¹¥ì¥Ã¥É¡¢¥×¥í¥»¥¹) Ëè¤Ë°Ê²¼¤Î¾ðÊ󤬽ÐÎϤµ¤ì¤ë: -¥¹¥ì¥Ã¥É ID¡¢¼Â¥æ¡¼¥¶ ID¡¢¥¹¥ì¥Ã¥É¥°¥ë¡¼¥× ID (¥×¥í¥»¥¹ ID)¡¢ -²¾ÁÛ¥á¥â¥ê¥µ¥¤¥º¡¢Resident Set Size (¼Â¥á¥â¥ê¾å¤Ë¸ºß¤¹¤ë¥Ú¡¼¥¸¥µ¥¤¥º)¡¢ -¥¿¥¹¥¯¤¬¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤¿ CPU¡¢ -oom_adj ¥¹¥³¥¢ +カーネルが OOM-killing を実行する際に、システム全体のタスク・ダンプ +(カーネルスレッドを除く) を生成するかを制御する。 +ダンプには、タスク (スレッド、プロセス) 毎に以下の情報が出力される: +スレッド ID、実ユーザ ID、スレッドグループ ID (プロセス ID)、 +仮想メモリサイズ、Resident Set Size (実メモリ上に存在するページサイズ)、 +タスクがスケジューリングされた CPU、 +oom_adj スコア .RI ( /proc/[pid]/oom_adj -¤ÎÀâÌÀ¤ò»²¾È)¡¢¥³¥Þ¥ó¥É̾¡£ -¤³¤Î¥À¥ó¥×¾ðÊó¤Ï¡¢¤Ê¤¼ OOM-killer ¤¬µ¯Æ°¤µ¤ì¤¿¤«¤òÃΤꡢ -¤½¤Î¸¶°ø¤È¤Ê¤Ã¤¿¤Ê¤é¤º¼Ô¤Î¥¿¥¹¥¯¤òÆÃÄꤹ¤ë¤Î¤ËÌò¤ËΩ¤Ä¡£ +の説明を参照)、コマンド名。 +このダンプ情報は、なぜ OOM-killer が起動されたかを知り、 +その原因となったならず者のタスクを特定するのに役に立つ。 -¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÆâÍƤ¬ÃÍ 0 ¤Î¾ì¹ç¡¢¥À¥ó¥×¾ðÊó¤Î½ÐÎϤϹԤï¤ì¤Ê¤¤¡£ -¥¿¥¹¥¯¤¬²¿Àé¤â¤¢¤ëÈó¾ï¤ËµðÂç¤Ê¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -³Æ¡¹¤Î¥¿¥¹¥¯¤Ë¤Ä¤¤¤Æ¥á¥â¥ê¾õÂÖ¤ò¥À¥ó¥×¤¹¤ë¤Î¤ÏŬÀڤǤʤ¤¤«¤â¤·¤ì¤Ê¤¤¡£ -¤½¤Î¤è¤¦¤Ê¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥À¥ó¥×¾ðÊó¤¬É¬ÍפǤâ¤Ê¤¤¤È¤­¤Ë -¥á¥â¥êÉÔ­ (OOM) ¤Î¾õ¶·¤ÇÀ­Ç½Ì̤ÎÉÔÍø±×¤¬µ¯¤³¤é¤Ê¤¤¤è¤¦¤Ë¤¹¤Ù¤­¤À¤í¤¦¡£ +このファイルの内容が値 0 の場合、ダンプ情報の出力は行われない。 +タスクが何千もある非常に巨大なシステムでは、 +各々のタスクについてメモリ状態をダンプするのは適切でないかもしれない。 +そのようなシステムでは、ダンプ情報が必要でもないときに +メモリ不足 (OOM) の状況で性能面の不利益が起こらないようにすべきだろう。 -¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÆâÍƤ¬ 0 °Ê³°¤Î¾ì¹ç¡¢ -OOM-killer ¤¬¼ÂºÝ¤Ë¥á¥â¥ê¤òÀêÍ­¤·¤¿¥¿¥¹¥¯¤ò kill ¤¹¤ëÅÙ¤Ë -¥À¥ó¥×¾ðÊ󤬽ÐÎϤµ¤ì¤ë¡£ +このファイルの内容が 0 以外の場合、 +OOM-killer が実際にメモリを占有したタスクを kill する度に +ダンプ情報が出力される。 -¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 0 ¤Ç¤¢¤ë¡£ +デフォルト値は 0 である。 .TP -.IR /proc/sys/vm/oom_kill_allocating_task " (Linux 2.6.24 °Ê¹ß)" +.IR /proc/sys/vm/oom_kill_allocating_task " (Linux 2.6.24 以降)" .\" The following is from Documentation/sysctl/vm.txt -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¥á¥â¥êÉÔ­ (OOM) ¤Î¾õ¶·¤¬µ¯¤³¤Ã¤¿ºÝ¤Ë¡¢ -¥á¥â¥êÉÔ­¤Î¤­¤Ã¤«¤±¤È¤Ê¤Ã¤¿¥¿¥¹¥¯¤ò kill ¤¹¤ë¤«¤É¤¦¤«¤òÀ©¸æ¤¹¤ë¡£ +このファイルは、メモリ不足 (OOM) の状況が起こった際に、 +メモリ不足のきっかけとなったタスクを kill するかどうかを制御する。 -¤³¤Î¥Õ¥¡¥¤¥ë¤¬ 0 ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ -OOM-killer ¤Ï¥¿¥¹¥¯¥ê¥¹¥ÈÁ´ÂΤò¥¹¥­¥ã¥ó¤·¡¢·Ð¸³Â§¤Ë´ð¤Å¤­ -kill ¤¹¤ë¥¿¥¹¥¯¤òÁªÂò¤¹¤ë¡£ -Ä̾ï¤Ï¡¢kill ¤·¤¿¾ì¹ç¤Ë¿¤¯¤Î¥á¥â¥ê¤¬²òÊü¤Ç¤­¤ë¡¢ -¤Ê¤é¤º¼Ô¤Î¥á¥â¥êÀêÍ­¥¿¥¹¥¯¤¬ÁªÂò¤µ¤ì¤ë¡£ +このファイルが 0 に設定された場合、 +OOM-killer はタスクリスト全体をスキャンし、経験則に基づき +kill するタスクを選択する。 +通常は、kill した場合に多くのメモリが解放できる、 +ならず者のメモリ占有タスクが選択される。 -¤³¤Î¥Õ¥¡¥¤¥ë¤¬ 0 °Ê³°¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢ -OOM-killer ¤Ï¥á¥â¥êÉÔ­¤Î¾õ¶·¤¬È¯À¸¤¹¤ë¤­¤Ã¤«¤±¤È¤Ê¤Ã¤¿¥¿¥¹¥¯¤ò -ñ½ã¤Ë kill ¤¹¤ë¤À¤±¤Ç¤¢¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢¤¿¤¤¤Æ¤¤¤Ï½Å¤¤½èÍý¤È¤Ê¤ë¥¿¥¹¥¯¥ê¥¹¥È¤Î¥¹¥­¥ã¥ó¤ò²óÈò¤Ç¤­¤ë¡£ +このファイルが 0 以外に設定された場合、 +OOM-killer はメモリ不足の状況が発生するきっかけとなったタスクを +単純に kill するだけである。 +これにより、たいていは重い処理となるタスクリストのスキャンを回避できる。 .I /proc/sys/vm/panic_on_oom -¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢ +が 0 以外の場合、 .I /proc/sys/vm/oom_kill_allocating_task -¤Ë¤É¤Î¤è¤¦¤ÊÃͤ¬Æþ¤Ã¤Æ¤¤¤¿¤È¤·¤Æ¤â¡¢ +にどのような値が入っていたとしても、 .I /proc/sys/vm/panic_on_oom -¤ÎÊý¤¬Í¥À褵¤ì¤ë¡£ +の方が優先される。 -¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 0 ¤Ç¤¢¤ë¡£ +デフォルト値は 0 である。 .TP .I /proc/sys/vm/overcommit_memory -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¥«¡¼¥Í¥ë²¾ÁÛ¥á¥â¥ê¤Î¥¢¥«¥¦¥ó¥È¥â¡¼¥É¤¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ -Ãͤϰʲ¼¤ÎÄ̤ê: +このファイルにはカーネル仮想メモリのアカウントモードが書かれている。 +値は以下の通り: .RS .IP -0: ȯ¸«Åª¤Ê¥ª¡¼¥Ð¡¼¥³¥ß¥Ã¥È (heuristic overcommit) (¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë) +0: 発見的なオーバーコミット (heuristic overcommit) (これがデフォルトである) .br -1: ¾ï¤Ë¥ª¡¼¥Ð¡¼¥³¥ß¥Ã¥È¤·¡¢¥Á¥§¥Ã¥¯¤·¤Ê¤¤¡£ +1: 常にオーバーコミットし、チェックしない。 .br -2: ¾ï¤Ë¥Á¥§¥Ã¥¯¤·¡¢¥ª¡¼¥Ð¡¼¥³¥ß¥Ã¥È¤·¤Ê¤¤¡£ +2: 常にチェックし、オーバーコミットしない。 .RE .IP -¥â¡¼¥É 0 ¤Ç¤Ï¡¢ +モード 0 では、 .B MAP_NORESERVE -¤òÀßÄꤷ¤Æ¸Æ¤Ó½Ð¤µ¤ì¤¿ +を設定して呼び出された .BR mmap (2) -¤Ï¥Á¥§¥Ã¥¯¤µ¤ì¤Ê¤¤¡£ -¤Þ¤¿¥Ç¥Õ¥©¥ë¥È¤Î¥Á¥§¥Ã¥¯¤Ï¤È¤Æ¤âÀȼå¤Ç¡¢ -¥×¥í¥»¥¹¤ò "OOM-kill" ¤·¤Æ¤·¤Þ¤¦¥ê¥¹¥¯¤ò°ú¤­µ¯¤³¤¹¡£ -Linux 2.4 ¤Ç¤Ï 0 °Ê³°¤ÎÃͤϥ⡼¥É 1 ¤ò°ÕÌ£¤¹¤ë¡£ -(Linux 2.6 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ê) ¥â¡¼¥É 2 ¤Ç¤Ï¡¢ -¥·¥¹¥Æ¥à¾å¤Î²¾ÁÛ¥¢¥É¥ì¥¹¶õ´Ö¤Î¹ç·×¤¬ (SS + RAM*(r/100)) ¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤³¤Ç¡¢SS ¤Ï¥¹¥ï¥Ã¥×¶õ´Ö¤Î¥µ¥¤¥º¡¢ -RAM ¤ÏʪÍý¥á¥â¥ê¤Î¥µ¥¤¥º¡¢r ¤Ï¥Õ¥¡¥¤¥ë +はチェックされない。 +またデフォルトのチェックはとても脆弱で、 +プロセスを "OOM-kill" してしまうリスクを引き起こす。 +Linux 2.4 では 0 以外の値はモード 1 を意味する。 +(Linux 2.6 以降で利用可能な) モード 2 では、 +システム上の仮想アドレス空間の合計が (SS + RAM*(r/100)) に制限されている。 +ここで、SS はスワップ空間のサイズ、 +RAM は物理メモリのサイズ、r はファイル .I /proc/sys/vm/overcommit_ratio -¤ÎÆâÍƤǤ¢¤ë¡£ +の内容である。 .TP .I /proc/sys/vm/overcommit_ratio .I /proc/sys/vm/overcommit_memory -¤ÎÀâÌÀ¤ò»²¾È¤¹¤ë¤³¤È¡£ +の説明を参照すること。 .TP -.IR /proc/sys/vm/panic_on_oom " (Linux 2.6.18 °Ê¹ß)" +.IR /proc/sys/vm/panic_on_oom " (Linux 2.6.18 以降)" .\" The following is adapted from Documentation/sysctl/vm.txt -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¥á¥â¥êÉÔ­»þ¤Ë¥«¡¼¥Í¥ë¥Ñ¥Ë¥Ã¥¯¤ò -µ¯¤³¤¹¤«µ¯¤³¤µ¤Ê¤¤¤«¤òÀ©¸æ¤¹¤ë¡£ - -¤³¤Î¥Õ¥¡¥¤¥ë¤ËÃÍ 0 ¤òÀßÄꤹ¤ë¤È¡¢ -¥«¡¼¥Í¥ë¤Î OOM-killer ¤¬¤Ê¤é¤º¼Ô¤Î¥×¥í¥»¥¹¤ò kill ¤¹¤ë¡£ -ÉáÄ̤ϡ¢OOM-killer ¤¬¤Ê¤é¤º¼Ô¤Î¥×¥í¥»¥¹¤ò kill ¤¹¤ë¤³¤È¤¬¤Ç¤­¡¢ -¥·¥¹¥Æ¥à¤Ï²¿¤È¤«Æ°¤­Â³¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ - -¤³¤Î¥Õ¥¡¥¤¥ë¤ËÃÍ 1 ¤òÀßÄꤹ¤ë¤È¡¢ -¥á¥â¥êÉÔ­¤Î¾õ¶·¤¬È¯À¸¤¹¤ë¤È¡¢¥«¡¼¥Í¥ë¤ÏÉáÄ̤ϥѥ˥寤¹¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢¥×¥í¥»¥¹¤¬ -¥á¥â¥ê¥Ý¥ê¥·¡¼ +このファイルは、メモリ不足時にカーネルパニックを +起こすか起こさないかを制御する。 + +このファイルに値 0 を設定すると、 +カーネルの OOM-killer がならず者のプロセスを kill する。 +普通は、OOM-killer がならず者のプロセスを kill することができ、 +システムは何とか動き続けることができる。 + +このファイルに値 1 を設定すると、 +メモリ不足の状況が発生すると、カーネルは普通はパニックする。 +しかしながら、プロセスが +メモリポリシー .RB ( mbind (2) -¤Î +の .BR MPOL_BIND ) -¤ä cpusets +や cpusets .RB ( cpuset (7)) -¤ò»È¤Ã¤ÆÆÃÄê¤Î¥Î¡¼¥É¤Ø¤Î¥á¥â¥ê³ä¤êÅö¤Æ¤òÀ©¸Â¤·¤Æ¤¤¤Æ¡¢ -¤½¤ì¤é¤Î¥Î¡¼¥É¤Ç¥á¥â¥ê¸Ï³é¾õÂ֤˻ê¤Ã¤¿¾ì¹ç¤Ï¡¢ -°ì¤Ä¤Î¥×¥í¥»¥¹¤¬ OOM-killer ¤Ë¤è¤ê kill ¤µ¤ì¤ë¤À¤±¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤Î¾ì¹ç¤Ë¤Ï¡¢¥«¡¼¥Í¥ë¥Ñ¥Ë¥Ã¥¯¤ÏȯÀ¸¤·¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¡¢Â¾¤Î¥Î¡¼¥É¤Î¥á¥â¥ê¤Ë¤Ï¶õ¤­¤¬¤¢¤ë¤«¤â¤·¤ì¤º¡¢ -¤·¤¿¤¬¤Ã¤Æ¡¢¥·¥¹¥Æ¥àÁ´ÂΤȤ·¤Æ¤Ï¥á¥â¥êÉÔ­¤Î¾õ¶·¤Ë¤Þ¤À㤷¤Æ¤¤¤Ê¤¤¤«¤â -¤·¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ - -¤³¤Î¥Õ¥¡¥¤¥ë¤ËÃÍ 2 ¤òÀßÄꤹ¤ë¤È¡¢ -¥á¥â¥êÉÔ­¤Î¾õ¶·¤¬È¯À¸¤¹¤ë¤È¥«¡¼¥Í¥ë¤Ï¾ï¤Ë¥Ñ¥Ë¥Ã¥¯¤òµ¯¤³¤¹¡£ - -¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 0 ¤Ç¤¢¤ë¡£ -1 ¤È 2 ¤Ï¥¯¥é¥¹¥¿¥ê¥ó¥°¤Î¥Õ¥§¥¤¥ë¥ª¡¼¥Ð¡¼ÍѤǤ¢¤ë¡£ -¥Õ¥§¥¤¥ë¥ª¡¼¥Ð¡¼¤ÎÊý¿Ë¤Ë±þ¤¸¤Æ¤É¤Á¤é¤«¤ÎÃͤòÁªÂò¤¹¤ë¤³¤È¡£ -.TP -.IR /proc/sysrq-trigger " (Linux 2.4.21 °Ê¹ß)" -¤³¤Î¥Õ¥¡¥¤¥ë¤Ëʸ»ú character ¤ò½ñ¤­¹þ¤à¤È¡¢ -¥­¡¼¥Ü¡¼¥É¤«¤é ALT-SysRq- ¤òÆþÎϤ·¤¿¾ì¹ç¤È -Ʊ¤¸ SysRq ´Ø¿ô¤¬µ¯Æ°¤µ¤ì¤ë +を使って特定のノードへのメモリ割り当てを制限していて、 +それらのノードでメモリ枯渇状態に至った場合は、 +一つのプロセスが OOM-killer により kill されるだけかもしれない。 +この場合には、カーネルパニックは発生しない。 +なぜなら、他のノードのメモリには空きがあるかもしれず、 +したがって、システム全体としてはメモリ不足の状況にまだ達していないかも +しれないからである。 + +このファイルに値 2 を設定すると、 +メモリ不足の状況が発生するとカーネルは常にパニックを起こす。 + +デフォルト値は 0 である。 +1 と 2 はクラスタリングのフェイルオーバー用である。 +フェイルオーバーの方針に応じてどちらかの値を選択すること。 +.TP +.IR /proc/sysrq-trigger " (Linux 2.4.21 以降)" +このファイルに文字 character を書き込むと、 +キーボードから ALT-SysRq- を入力した場合と +同じ SysRq 関数が起動される .RI ( /proc/sys/kernel/sysrq -¤ÎÀâÌÀ¤ò»²¾È)¡£ -Ä̾¤³¤Î¥Õ¥¡¥¤¥ë¤Ø½ñ¤­¹þ¤ß¤¬¤Ç¤­¤ë¤Î¤Ï +の説明を参照)。 +通常、このファイルへ書き込みができるのは .I root -¤À¤±¤Ç¤¢¤ë¡£¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥«¡¼¥Í¥ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Î +だけである。詳細については、カーネルソースファイルの .I Documentation/sysrq.txt -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .TP .I /proc/sysvipc -µ¿»÷¥Õ¥¡¥¤¥ë +疑似ファイル .IR msg ", " sem ", " shm -¤ò´Þ¤à¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¡£ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¸½ºß¥·¥¹¥Æ¥à¾å¤Ë¸ºß¤¹¤ë -System V ¥×¥í¥»¥¹´ÖÄÌ¿® (Interprocess Communication, IPC) ¥ª¥Ö¥¸¥§¥¯¥È -(¤½¤ì¤¾¤ì: ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¡¢¥»¥Þ¥Õ¥©¡¢¶¦Í­¥á¥â¥ê) -¤Î¥ê¥¹¥È¤Ç¤¢¤ê¡¢ +を含むサブディレクトリ。 +これらのファイルは、現在システム上に存在する +System V プロセス間通信 (Interprocess Communication, IPC) オブジェクト +(それぞれ: メッセージキュー、セマフォ、共有メモリ) +のリストであり、 .BR ipcs (1) -¤Ç¼èÆÀ¤Ç¤­¤ë¾ðÊó¤ÈƱ¤¸¤â¤Î¤òÄ󶡤¹¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¥Ø¥Ã¥À¤¬¤¢¤ê¡¢Íý²ò¤·¤ä¤¹¤¤¤è¤¦¤Ë -(1 ¹Ô¤Ë¤Ä¤­ 1 ¸Ä¤Î IPC ¥ª¥Ö¥¸¥§¥¯¥È¤Î·Á¼°¤Ç) ¥Õ¥©¡¼¥Þ¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¡£ +で取得できる情報と同じものを提供する。 +これらのファイルにはヘッダがあり、理解しやすいように +(1 行につき 1 個の IPC オブジェクトの形式で) フォーマットされている。 .BR svipc (7) -¤Ë¤Ï¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤«¤éʬ¤«¤ë¾ðÊó¤Î¾ÜºÙ¤ÊÇطʤ¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ +にはこれらのファイルから分かる情報の詳細な背景が書かれている。 .TP .I /proc/tty -µ¿»÷¥Õ¥¡¥¤¥ë¤ò´Þ¤à¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¡£ -tty ¥É¥é¥¤¥Ð¤È¥é¥¤¥óÀßÄê (line discipline) ¤Î½ñ¤«¤ì¤¿ -¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤â´Þ¤Þ¤ì¤ë¡£ +疑似ファイルを含むサブディレクトリ。 +tty ドライバとライン設定 (line discipline) の書かれた +サブディレクトリも含まれる。 .TP .I /proc/uptime -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï -¥·¥¹¥Æ¥àµ¯Æ°»þ¤«¤é·Ð²á¤·¤¿»þ´Ö (ÉÃ) ¤È -¥¢¥¤¥É¥ë (idle) ¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤¬¾ÃÈñ¤·¤¿»þ´Ö (ÉÃ) ¤Î 2 ¤Ä¤Î¿ô¤ò´Þ¤à¡£ +このファイルは +システム起動時から経過した時間 (秒) と +アイドル (idle) しているプロセスが消費した時間 (秒) の 2 つの数を含む。 .TP .I /proc/version -¸½ºß²ÔƯ¤·¤Æ¤¤¤ë¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¼±Ê̻ҤǤ¢¤ëʸ»úÎó¡£ -¤³¤ì¤Ë¤Ï +現在稼働しているカーネルのバージョン識別子である文字列。 +これには .IR /proc/sys/ostype , .IR /proc/sys/osrelease , .I /proc/sys/version -¤ÎÆâÍƤ¬´Þ¤Þ¤ì¤ë¡£ -¤¿¤È¤¨¤Ð¤³¤Î¤è¤¦¤Ë: +の内容が含まれる。 +たとえばこのように: .nf .in -2 .ft CW @@ -2646,26 +2646,26 @@ Linux version 1.0.9 (quinlan@phaze) #1 Sat May 14 01:51:54 EDT 1994 .\" .IR /proc/timer_stats " (since Linux 2.6.21)" .\" See the 2.6.21 Change log .TP -.IR /proc/vmstat " (Linux 2.6 °Ê¹ß)" -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï²¾ÁÛ¥á¥â¥ê¤ÎÍÍ¡¹¤ÊÅý·×¾ðÊó¤òɽ¼¨¤¹¤ë¡£ -.TP -.IR /proc/zoneinfo " (Linux 2.6.13 °Ê¹ß)" -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥á¥â¥ê¤Î¥¾¡¼¥ó (memory zone) ¤Ë´Ø¤¹¤ë¾ðÊó¤òɽ¼¨¤¹¤ë¡£ -²¾ÁÛ¥á¥â¥ê¤Î¿¶Éñ¤¤¤òʬÀϤ¹¤ë¤Î¤ËÌòΩ¤Ä¡£ -.\" FIXME -- /proc/zoneinfo ¤Ë¤Ä¤¤¤Æ¤â¤Ã¤ÈÀâÌÀ¤¬É¬ÍפÀ -.SH Ãí°Õ -¤Û¤È¤ó¤É¤Îʸ»úÎó (¤¿¤È¤¨¤Ð´Ä¶­ÊÑ¿ô¤ä¥³¥Þ¥ó¥É¹Ô) ¤ÏÆâÉôɽ¸½¤Î¤Þ¤Þ¤Ê¤Î¤Ç¡¢ -³Æ¥Õ¥£¡¼¥ë¥É¤Ï NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤Ç¶èÀÚ¤é¤ì¤Æ¤¤¤ë¡£ -¤À¤«¤é¡¢\fIod \-c\fP ¤ä \fItr "\\000" "\\n"\fP ¤ò»È¤¨¤Ð¡¢ -¤½¤ì¤é¤Ï¤è¤êÆɤߤ䤹¤¯¤Ê¤ë¡£ -¤Þ¤¿ \fIecho \`cat \`\fP ¤Ç¤â¤è¤¤¡£ - -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤ÏÉÔ´°Á´¤Ç¤¢¤ê¡¢¤¿¤Ö¤óÉÔÀµ³Î¤Ç¡¢¤·¤Ð¤·¤Ð¹¹¿·¤µ¤ì¤ëɬÍפ¬¤¢¤ë¡£ -.\" .SH ¼Õ¼­ -.\" /proc/sys/fs ¤È /proc/sys/kernel ¤Î»ñÎÁ¤Ï¡¢ -.\" Rik van Riel ¤¬½ñ¤¤¤¿¥«¡¼¥Í¥ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Î¥É¥­¥å¥á¥ó¥È¤Ë -.\" Ì©Àܤ˴ð¤Å¤¤¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +.IR /proc/vmstat " (Linux 2.6 以降)" +このファイルは仮想メモリの様々な統計情報を表示する。 +.TP +.IR /proc/zoneinfo " (Linux 2.6.13 以降)" +このファイルはメモリのゾーン (memory zone) に関する情報を表示する。 +仮想メモリの振舞いを分析するのに役立つ。 +.\" FIXME -- /proc/zoneinfo についてもっと説明が必要だ +.SH 注意 +ほとんどの文字列 (たとえば環境変数やコマンド行) は内部表現のままなので、 +各フィールドは NULL バイト (\(aq\\0\(aq) で区切られている。 +だから、\fIod \-c\fP や \fItr "\\000" "\\n"\fP を使えば、 +それらはより読みやすくなる。 +また \fIecho \`cat \`\fP でもよい。 + +このマニュアルは不完全であり、たぶん不正確で、しばしば更新される必要がある。 +.\" .SH 謝辞 +.\" /proc/sys/fs と /proc/sys/kernel の資料は、 +.\" Rik van Riel が書いたカーネルソースファイルのドキュメントに +.\" 密接に基づいている。 +.SH 関連項目 .BR cat (1), .BR dmesg (1), .BR find (1), @@ -2691,6 +2691,6 @@ Linux version 1.0.9 (quinlan@phaze) #1 Sat May 14 01:51:54 EDT 1994 .BR procinfo (8), .BR route (8) .br -¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë: +カーネルのソースファイル: .IR Documentation/filesystems/proc.txt , .IR Documentation/sysctl/vm.txt diff --git a/release/man5/protocols.5 b/release/man5/protocols.5 index 60efe939..4e224998 100644 --- a/release/man5/protocols.5 +++ b/release/man5/protocols.5 @@ -30,53 +30,53 @@ .\" Updated Tue Oct 16 2001 by Kentaro Shirakata .\" .TH PROTOCOLS 5 2008-09-23 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -protocols \- ¥×¥í¥È¥³¥ëÄêµÁ¥Õ¥¡¥¤¥ë -.SH ÀâÌÀ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï ASCII ¥Õ¥¡¥¤¥ë¤Ç¡¢TCP/IP ¥µ¥Ö¥·¥¹¥Æ¥à¤«¤éÍøÍѤǤ­¤ë -¤¤¤í¤¤¤í¤Ê DARPA ¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥×¥í¥È¥³¥ë¤òµ­½Ò¤·¤Æ¤¤¤ë¡£ -ARPA ´ØÏ¢¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ëÆâ¤Î¿ôÃͤò»È¤¦¤Ù¤­¤Ç¤Ï¤Ê¤¤¤·¡¢ -ñ¤Ë¿ä¬¤·¤¿Ãͤò»È¤¦¤Î¤Ï¤µ¤é¤ËÎɤ¯¤Ê¤¤¡£ -Âå¤ï¤ê¤Ë¤³¤Î¥Õ¥¡¥¤¥ë¤ËÌ䤤¹ç¤ï¤»¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î¿ôÃÍ¤Ï IP ¥Ø¥Ã¥À¤Î¥×¥í¥È¥³¥ë¥Õ¥£¡¼¥ë¥É¤Ë¸½¤ì¤ë¡£ +.SH 名前 +protocols \- プロトコル定義ファイル +.SH 説明 +このファイルは ASCII ファイルで、TCP/IP サブシステムから利用できる +いろいろな DARPA インターネットプロトコルを記述している。 +ARPA 関連のインクルードファイル内の数値を使うべきではないし、 +単に推測した値を使うのはさらに良くない。 +代わりにこのファイルに問い合わせるべきである。 +これらの数値は IP ヘッダのプロトコルフィールドに現れる。 -¤³¤Î¥Õ¥¡¥¤¥ë¤ÏÊѹ¹¤·¤Ê¤¤¤³¤È¡£Êѹ¹¤¹¤ë¤È IP ¥Ñ¥Ã¥±¡¼¥¸¤¬ÉÔÀµ¤Ë¤Ê¤ë¡£ -¥×¥í¥È¥³¥ëÈÖ¹æ¤È¥×¥í¥È¥³¥ë̾¤Ï -IANA (Internet Assigned Numbers Authority) ¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤ë¡£ -.\" DDN Network Information Center ¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤ë¡£ +このファイルは変更しないこと。変更すると IP パッケージが不正になる。 +プロトコル番号とプロトコル名は +IANA (Internet Assigned Numbers Authority) によって指定される。 +.\" DDN Network Information Center によって指定される。 -¤½¤ì¤¾¤ì¤Î¹Ô¤Ï¼¡¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤¢¤ë¡£ +それぞれの行は次のフォーマットである。 .RS .I protocol number aliases ... .RE -³Æ¥Õ¥£¡¼¥ë¥É¤Ï¶õÇò¤«¥¿¥Ö¤Ç¶èÀÚ¤é¤ì¤Æ¤¤¤Æ¡¢¶õ¹Ô¤Ï̵»ë¤µ¤ì¤ë¡£ -¹Ô¤Ë¥Ï¥Ã¥·¥åµ­¹æ(#)¤¬´Þ¤Þ¤ì¤ë¾ì¹ç¡¢ -¥Ï¥Ã¥·¥åµ­¹æ¤ò´Þ¤à¤½¤Î¹Ô¤Î»Ä¤ê¤Ï̵»ë¤µ¤ì¤ë¡£ +各フィールドは空白かタブで区切られていて、空行は無視される。 +行にハッシュ記号(#)が含まれる場合、 +ハッシュ記号を含むその行の残りは無視される。 -¥Õ¥£¡¼¥ë¥É¤ÎÀâÌÀ¤Ï°Ê²¼¤Î¤È¤ª¤ê¡£ +フィールドの説明は以下のとおり。 .TP .I protocol -¥×¥í¥È¥³¥ë¤Î¸Çͭ̾¡£¤¿¤È¤¨¤Ð +プロトコルの固有名。たとえば .IR ip , .IR tcp , .IR udp -¤Ê¤É¡£ +など。 .TP .I number -¥×¥í¥È¥³¥ë¤Î¸ø¼°Èֹ桢IP ¥Ø¥Ã¥À¤Ë¸½¤ì¤ë¡£ +プロトコルの公式番号、IP ヘッダに現れる。 .TP .I aliases -¥×¥í¥È¥³¥ë¤ÎÊÌ̾¡¢¥ª¥×¥·¥ç¥ó¡£ +プロトコルの別名、オプション。 .LP -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï Yellow Pages/NIS ¤ä BIND/Hesoid ¤Ê¤É¤Î¥Í¥Ã¥È¥ï¡¼¥¯¾å¤Î -̾Á°ÉÕ¤±¥µ¡¼¥Ó¥¹¤Ë¤è¤Ã¤Æ¥Í¥Ã¥È¥ï¡¼¥¯¾å¤ÇÇÛÉÛ¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -.SH ¥Õ¥¡¥¤¥ë +このファイルは Yellow Pages/NIS や BIND/Hesoid などのネットワーク上の +名前付けサービスによってネットワーク上で配布されているかもしれない。 +.SH ファイル .TP .I /etc/protocols -¥×¥í¥È¥³¥ëÄêµÁ¥Õ¥¡¥¤¥ë¡£ -.SH ´ØÏ¢¹àÌÜ +プロトコル定義ファイル。 +.SH 関連項目 .BR getprotoent (3) http://www.iana.org/assignments/protocol-numbers diff --git a/release/man5/resolv.conf.5 b/release/man5/resolv.conf.5 index d7771e1f..490558fb 100644 --- a/release/man5/resolv.conf.5 +++ b/release/man5/resolv.conf.5 @@ -24,102 +24,102 @@ .\" Updated & Modified 2005-01-22, Yuichi SATO .\" Updated 2010-04-18, Akihiro MOTOKI , LDP v3.24 .\" -.\"WORD: resolver ¥ì¥¾¥ë¥Ð -.\"WORD: query Ì䤤¹ç¤ï¤» +.\"WORD: resolver レゾルバ +.\"WORD: query 問い合わせ .\" .TH RESOLV.CONF 5 2009-03-01 "" "Linux Programmer's Manual" .UC 4 -.SH ̾Á° -resolv.conf \- ¥ì¥¾¥ë¥ÐÀßÄê¥Õ¥¡¥¤¥ë -.SH ½ñ¼° +.SH 名前 +resolv.conf \- レゾルバ設定ファイル +.SH 書式 .B /etc/resolv.conf -.SH ÀâÌÀ +.SH 説明 .I resolver -¤Ï¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Î¥É¥á¥¤¥ó¥Í¡¼¥à¥·¥¹¥Æ¥à (DNS) ¤Ø¤Î¥¢¥¯¥»¥¹¤òÄ󶡤¹¤ë -C ¥é¥¤¥Ö¥é¥ê¤Î¥ë¡¼¥Á¥ó·²¤Ç¤¢¤ë¡£ -¥ì¥¾¥ë¥ÐÀßÄê¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¥ì¥¾¥ë¥Ð¥ë¡¼¥Á¥ó¤¬¥×¥í¥»¥¹¤Ë¤è¤Ã¤ÆºÇ½é¤Ë -µ¯Æ°¤µ¤ì¤¿¤È¤­¤ËÆɤ߹þ¤Þ¤ì¤ë¾ðÊ󤬳ÊǼ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¿Í´Ö¤Ë²ÄÆɤʤ褦¤ËÀ߷פµ¤ì¤Æ¤¤¤ë¡£ -¥­¡¼¥ï¡¼¥É¤ÈÃͤΥꥹ¥È¤¬´Þ¤Þ¤ì¡¢¤¤¤í¤¤¤í¤Ê¥¿¥¤¥×¤Î¥ì¥¾¥ë¥Ð¾ðÊó¤òÄ󶡤¹¤ë¡£ +は、インターネットのドメインネームシステム (DNS) へのアクセスを提供する +C ライブラリのルーチン群である。 +レゾルバ設定ファイルには、レゾルバルーチンがプロセスによって最初に +起動されたときに読み込まれる情報が格納されている。 +このファイルは人間に可読なように設計されている。 +キーワードと値のリストが含まれ、いろいろなタイプのレゾルバ情報を提供する。 .LP -ÉáÄ̤ËÀßÄꤵ¤ì¤¿¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ÏɬÍפʤ¤¡£ -Ì䤤¹ç¤ï¤»¤ò¤µ¤ì¤ëÍ£°ì¤Î¥Í¡¼¥à¥µ¡¼¥Ð¤Ï¥í¡¼¥«¥ë¥Þ¥·¥ó¾å¤Ë¤¢¤ë¡£ -¥É¥á¥¤¥ó̾¤Ï¥Û¥¹¥È̾¤«¤é·èÄꤵ¤ì¡¢ -¥É¥á¥¤¥ó¤Î¸¡º÷¥Ñ¥¹¤Ï¥É¥á¥¤¥ó̾¤«¤éºîÀ®¤µ¤ì¤ë¡£ +普通に設定されたシステムでは、このファイルは必要ない。 +問い合わせをされる唯一のネームサーバはローカルマシン上にある。 +ドメイン名はホスト名から決定され、 +ドメインの検索パスはドメイン名から作成される。 .LP -¤³¤Î¾õÂÖ¤òÊѹ¹¤¹¤ë¤¿¤á¤ÎÀßÄꥪ¥×¥·¥ç¥ó¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤¬¤¢¤ë¡£ +この状態を変更するための設定オプションには、以下のようなものがある。 .TP -\fBnameserver\fP ¥Í¡¼¥à¥µ¡¼¥Ð¤Î IP ¥¢¥É¥ì¥¹ -¥ì¥¾¥ë¥Ð¤¬Ì䤤¹ç¤ï¤»¤ò¤¹¤ë¥Í¡¼¥à¥µ¡¼¥Ð¤Î -(¥É¥Ã¥Èɽµ­¤Î) ¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥¢¥É¥ì¥¹¡£ -¤³¤Î¥­¡¼¥ï¡¼¥É 1 ¤Ä¤´¤È¤Ë 1 Âæ¤Å¤Ä¡¢ +\fBnameserver\fP ネームサーバの IP アドレス +レゾルバが問い合わせをするネームサーバの +(ドット表記の) インターネットアドレス。 +このキーワード 1 つごとに 1 台づつ、 .B MAXNS -Âæ (¸½¾õ¤Ç¤Ï 3 Âæ¡¢\fI\fP ¤ò»²¾È) ¤Þ¤Ç¤Î¥Í¡¼¥à¥µ¡¼¥Ð¤ò¥ê¥¹¥È¤Ç¤­¤ë¡£ -Ê£¿ô¤Î¥µ¡¼¥Ð¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¥ì¥¾¥ë¥Ð¥é¥¤¥Ö¥é¥ê¤Ï -¥ê¥¹¥È¤µ¤ì¤¿½ç¤ËÌ䤤¹ç¤ï¤»¤ò¹Ô¤¦¡£ -\fBnameserver\fP ¥¨¥ó¥È¥ê¤¬¤Ê¤¤¾ì¹ç¡¢ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥í¡¼¥«¥ë¥Þ¥·¥ó¾å¤Î¥Í¡¼¥à¥µ¡¼¥Ð¤¬»È¤ï¤ì¤ë¡£ -(¤³¤³¤Ç»È¤ï¤ì¤ë¥¢¥ë¥´¥ê¥º¥à¤Ï°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¡£ -¤Ï¤¸¤á¤Ë¥Í¡¼¥à¥µ¡¼¥Ð¤ËÌ䤤¹ç¤ï¤»¤ò»î¤ß¤ë¡£ -¤³¤ÎÌ䤤¹ç¤ï¤»¤¬¥¿¥¤¥à¥¢¥¦¥È¤Ë¤Ê¤Ã¤¿¾ì¹ç¡¢ -¼¡¤Î¥Í¡¼¥à¥µ¡¼¥Ð¤ËÌ䤤¹ç¤ï¤»¤ò»î¤ß¤ë¡£ -¤³¤ì¤ò¥Í¡¼¥à¥µ¡¼¥Ð¤¬¤Ê¤¯¤Ê¤ë¤Þ¤Ç³¤±¤ë¡£ -¤½¤ì¤Ç¤â±þÅú¤¬¤Ê¤¤¾ì¹ç¤Ï¡¢¥ê¥È¥é¥¤ºÇÂç²ó¿ô¤Ë㤹¤ë¤Þ¤Ç -Á´¤Æ¤Î¥Í¡¼¥à¥µ¡¼¥Ð¤ËÌ䤤¹ç¤ï¤»¤ò·«¤êÊÖ¤¹¡£) +台 (現状では 3 台、\fI\fP を参照) までのネームサーバをリストできる。 +複数のサーバが指定された場合、レゾルバライブラリは +リストされた順に問い合わせを行う。 +\fBnameserver\fP エントリがない場合、 +デフォルトではローカルマシン上のネームサーバが使われる。 +(ここで使われるアルゴリズムは以下のようなものである。 +はじめにネームサーバに問い合わせを試みる。 +この問い合わせがタイムアウトになった場合、 +次のネームサーバに問い合わせを試みる。 +これをネームサーバがなくなるまで続ける。 +それでも応答がない場合は、リトライ最大回数に達するまで +全てのネームサーバに問い合わせを繰り返す。) .TP -\fBdomain\fP ¥í¡¼¥«¥ë¥É¥á¥¤¥ó̾ -¤³¤Î¥É¥á¥¤¥ó¤Ë¤¢¤ë̾Á°¤ÎÌ䤤¹ç¤ï¤»¤Î¤Û¤È¤ó¤É¤Ë¡¢ -¤³¤Î¥í¡¼¥«¥ë¥É¥á¥¤¥ó¤Ë¤ª¤±¤ëû¤¤Ì¾Á°¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -\fBdomain\fP ¥¨¥ó¥È¥ê¤¬¤Ê¤¤¾ì¹ç¡¢¥É¥á¥¤¥ó̾¤Ï +\fBdomain\fP ローカルドメイン名 +このドメインにある名前の問い合わせのほとんどに、 +このローカルドメインにおける短い名前を使用することができる。 +\fBdomain\fP エントリがない場合、ドメイン名は .BR gethostname (2) -¤ÇÊÖ¤µ¤ì¤ë¥í¡¼¥«¥ë¥Û¥¹¥È̾¤«¤é·èÄꤵ¤ì¡¢ -ºÇ½é¤Î \(aq.\(aq °Ê¹ß¤ÎÁ´¤Æ¤ÎÉôʬ¤¬¥É¥á¥¤¥ó̾¤È¤µ¤ì¤ë¡£ -¤³¤Î¥Û¥¹¥È̾¤Ë¤â¥É¥á¥¤¥óÉô¤ò´Þ¤ó¤Ç¤¤¤Ê¤¤¾ì¹ç¡¢¥ë¡¼¥È¥É¥á¥¤¥ó¤¬²¾Äꤵ¤ì¤ë¡£ +で返されるローカルホスト名から決定され、 +最初の \(aq.\(aq 以降の全ての部分がドメイン名とされる。 +このホスト名にもドメイン部を含んでいない場合、ルートドメインが仮定される。 .TP -\fBsearch\fP ¥Û¥¹¥È̾¥ë¥Ã¥¯¥¢¥Ã¥×¤Î¤¿¤á¤Î¸¡º÷¥ê¥¹¥È -¸¡º÷¥ê¥¹¥È¤ÏÄ̾ï¥í¡¼¥«¥ë¥É¥á¥¤¥ó̾¤«¤é·èÄꤵ¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¸¡º÷¥ê¥¹¥È¤Ï¥í¡¼¥«¥ë¥É¥á¥¤¥ó̾¤Î¤ß¤Ç¤¢¤ë¡£ -¤³¤ì¤òÊѹ¹¤¹¤ë¤Ë¤Ï¡¢\fIsearch\fP ¥­¡¼¥ï¡¼¥É¤Î¸å¤Ë -´õ˾¤¹¤ë¥É¥á¥¤¥ó¸¡º÷¥Ñ¥¹¤ò¥¹¥Ú¡¼¥¹¤Þ¤¿¤Ï¥¿¥Ö¤Ç¶èÀڤäƥꥹ¥È¤¹¤ì¤Ð¤è¤¤¡£ -¥É¥Ã¥È¤Î¿ô¤¬ +\fBsearch\fP ホスト名ルックアップのための検索リスト +検索リストは通常ローカルドメイン名から決定される。 +デフォルトでは、検索リストはローカルドメイン名のみである。 +これを変更するには、\fIsearch\fP キーワードの後に +希望するドメイン検索パスをスペースまたはタブで区切ってリストすればよい。 +ドットの数が .I ndots -(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï 1) ¤è¤ê¾¯¤Ê¤¤¥ì¥¾¥ë¥Ð¤ÎÌ䤤¹ç¤ï¤»¤Ï¡¢ -°ìÃפ¹¤ë¤â¤Î¤¬¸«¤Ä¤«¤ë¤Þ¤Ç¸¡º÷¥Ñ¥¹¤Î³ÆÍ×ÁǤò½ç¤Ë»È¤Ã¤Æ»î¤¹¡£ -Ê£¿ô¤Î¥µ¥Ö¥É¥á¥¤¥ó¤ò»ý¤Ä´Ä¶­¤Ç¤Ï¡¢ -Âè»°¼Ô¤Ë¤è¤ë¹¶·â (man-in-the-middle attack) ¤È -¥ë¡¼¥È DNS ¥µ¡¼¥Ð¤Ø¤ÎÉÔɬÍפʥȥé¥Õ¥£¥Ã¥¯¤òÈò¤±¤ë¤¿¤á¤Ë¡¢ -°Ê²¼¤Î +(デフォルトでは 1) より少ないレゾルバの問い合わせは、 +一致するものが見つかるまで検索パスの各要素を順に使って試す。 +複数のサブドメインを持つ環境では、 +第三者による攻撃 (man-in-the-middle attack) と +ルート DNS サーバへの不必要なトラフィックを避けるために、 +以下の .BI "options ndots:" n -¤òÆɤó¤Ç¤Û¤·¤¤¡£ -.\" resolv.conv ¤Ë +を読んでほしい。 +.\" resolv.conv に .\" search subdomain.domain.tld domain.tld -.\" °Ê²¼¤Î¤è¤¦¤Ê¹Ô¤¬¤¢¤ë¾ì¹ç¤Ë¡¢¤¿¤È¤¨¤Ð +.\" 以下のような行がある場合に、たとえば .\" ping host.anothersubdomain -.\" ¤Ë¤è¤ë¥Û¥¹¥È¤Î¸¡º÷¤¬¹Ô¤ï¤ì¤ë¤È¡¢ +.\" によるホストの検索が行われると、 .\" host.anothersubdomain. .\" host.anothersubdomain.subdomain.domain.tld. .\" host.anothersubdomain.domain.tld. -.\" ¤ËÂФ·¤Æ DNS ¥ê¥¯¥¨¥¹¥È¤¬Á÷¤é¤ë¡£ -.\" ¤³¤ì¤Ë¤è¤Ã¤Æ¡¢¥ë¡¼¥È DNS ¥µ¡¼¥Ð¤ËÂФ·¤Æ -.\" ÉÔɬÍפʥȥé¥Õ¥£¥Ã¥¯¤ò°ú¤­µ¯¤³¤¹¤À¤±¤Ç¤Ê¤¯¡¢ -.\" ³°Éô¤Ë¾ðÊó¤ò¤Ð¤é¤Þ¤¤¤Æ¤·¤Þ¤¦¤¿¤á¤Ë¡¢Âè»°¼Ô¤Ë¤è¤ë¹¶·â¤¬²Äǽ¤Ë¤Ê¤ë¡£ -¤³¤Î¥×¥í¥»¥¹¤ÏÃÙ¤¯¡¢¥ê¥¹¥È¤µ¤ì¤¿¥É¥á¥¤¥ó¤¬¥í¡¼¥«¥ë¤Î¤â¤Î¤Ç¤Ê¤¤¾ì¹ç¡¢ -¿Âç¤Ê¥Í¥Ã¥È¥ï¡¼¥¯¥È¥é¥Õ¥£¥Ã¥¯¤òȯÀ¸¤µ¤»¤ë¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¤µ¤é¤Ë¡¢¤³¤ì¤é¤Î¥É¥á¥¤¥ó¤Î¤¤¤º¤ì¤«¤Ò¤È¤Ä¤Ë¤Ç¤âŬÀڤʥµ¡¼¥Ð¤¬¤Ê¤¤¾ì¹ç¡¢ -Ì䤤¹ç¤ï¤»¤¬¥¿¥¤¥à¥¢¥¦¥È¤Ë¤Ê¤ëÅÀ¤Ë¤âÃí°Õ¤¹¤ë¤³¤È¡£ +.\" に対して DNS リクエストが送らる。 +.\" これによって、ルート DNS サーバに対して +.\" 不必要なトラフィックを引き起こすだけでなく、 +.\" 外部に情報をばらまいてしまうために、第三者による攻撃が可能になる。 +このプロセスは遅く、リストされたドメインがローカルのものでない場合、 +多大なネットワークトラフィックを発生させることに注意すること。 +さらに、これらのドメインのいずれかひとつにでも適切なサーバがない場合、 +問い合わせがタイムアウトになる点にも注意すること。 .IP -¸½¾õ¤Ç¤Ï¡¢¸¡º÷¥ê¥¹¥È¤Ï 6 ¥É¥á¥¤¥ó¡¦·× 256 ʸ»ú¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë¡£ +現状では、検索リストは 6 ドメイン・計 256 文字に制限されている。 .TP \fBsortlist\fP -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¡¢ +このオプションを使うと、 .BR gethostbyname (3) -¤ÇÊÖ¤µ¤ì¤ë¥¢¥É¥ì¥¹¤ò¥½¡¼¥È¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -sortlist ¤Ï IP ¥¢¥É¥ì¥¹¤È¥Í¥Ã¥È¥Þ¥¹¥¯¤Î¥Ú¥¢¤Ç»ØÄꤵ¤ì¤ë¡£ -¥Í¥Ã¥È¥Þ¥¹¥¯¤Ï¾Êά²Äǽ¤Ç¤¢¤ê¡¢ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥Í¥Ã¥È¤ËÂФ¹¤ë¥Ç¥Õ¥©¥ë¥È¤Î¥Í¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ë¡£ -IP ¥¢¥É¥ì¥¹¤È¥ª¥×¥·¥ç¥ó¤Î¥Í¥Ã¥È¥Þ¥¹¥¯¤Î¥Ú¥¢¤Ï¥¹¥é¥Ã¥·¥å¤Ç¶èÀڤ롣 -ºÇÂç 10 ÁȤΥڥ¢¤ò»ØÄê¤Ç¤­¤ë¡£ -°Ê²¼¤ËÎã¤ò¼¨¤¹¡£ +で返されるアドレスをソートさせることができる。 +sortlist は IP アドレスとネットマスクのペアで指定される。 +ネットマスクは省略可能であり、 +デフォルトではネットに対するデフォルトのネットマスクである。 +IP アドレスとオプションのネットマスクのペアはスラッシュで区切る。 +最大 10 組のペアを指定できる。 +以下に例を示す。 .in +4n sortlist 130.155.160.0/255.255.240.0 130.155.0.0 @@ -127,144 +127,144 @@ sortlist 130.155.160.0/255.255.240.0 130.155.0.0 .br .TP \fBoptions\fP -options ¤Ë¤è¤ê¡¢¥ì¥¾¥ë¥Ð¤ÎÆâÉôÊÑ¿ô¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -½ñ¼°¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +options により、レゾルバの内部変数を変更することができる。 +書式は以下の通りである。 .RS .IP \fBoptions\fP \fIoption\fP \fI...\fP .LP -¤³¤³¤Ç \fIoption\fP ¤Ï¼¡¤Î¤¦¤Á¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¡£ +ここで \fIoption\fP は次のうちのいずれかである。 .TP \fBdebug\fP .\" Since glibc 2.2? .I _res.options -¤Ë +に .B RES_DEBUG -¤òÀßÄꤹ¤ë¡£ +を設定する。 .TP .BI ndots: n .\" Since glibc 2.2 -¡Ö\fIºÇ½é¤Î´°Á´¤Ê̾Á°¤Ç¤ÎÌ䤤¹ç¤ï¤»\fP¤¬¼Â¹Ô¤µ¤ì¤ëÁ°¤Ë¡¢ +「\fI最初の完全な名前での問い合わせ\fPが実行される前に、 .BR res_query (3) .RB ( resolver (3) -¤ò»²¾È) ¤ËÍ¿¤¨¤é¤ì¤ë̾Á°¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤Ù¤­¥É¥Ã¥È¤Î¿ô¤ÎïçÃ͡פòÀßÄꤹ¤ë¡£ -\fIn\fP ¤Î¥Ç¥Õ¥©¥ë¥È¤Ï 1 ¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï¡¢Ì¾Á°¤Ë¥É¥Ã¥È¤¬¤¢¤ë¾ì¹ç¡¢\fIsearch list\fP ¤ÎÍ×ÁǤ¬Éղ䵤ì¤ëÁ°¤Ë¡¢ -¤½¤Î̾Á°¤¬´°Á´¤Ê̾Á°¤È¤·¤ÆºÇ½é¤Ë»î¤µ¤ì¤ë¤È¤¤¤¦¤³¤È¤ò°ÕÌ£¤·¤Æ¤¤¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ÎÃͤξå¸Â¤Ï 15 ¤Ç¤¢¤ê¡¢ÌۤäƤ³¤ÎÃͤޤÇÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ +を参照) に与えられる名前に含まれているべきドットの数の閾値」を設定する。 +\fIn\fP のデフォルトは 1 である。 +これは、名前にドットがある場合、\fIsearch list\fP の要素が付加される前に、 +その名前が完全な名前として最初に試されるということを意味している。 +このオプションの値の上限は 15 であり、黙ってこの値まで切り詰められる。 .TP .BI timeout: n .\" Since glibc 2.2 -¡Ö¥ì¥¾¥ë¥Ð¤¬Â¾¤Î¥Í¡¼¥à¥µ¡¼¥Ð¤ÇÌ䤤¹ç¤ï¤»¤ò¥ê¥È¥é¥¤¤¹¤ëÁ°¤Ë¡¢ -¥ê¥â¡¼¥È¥Í¡¼¥à¥µ¡¼¥Ð¤«¤é¤Î±þÅú¤òÂԤĻþ´Ö¡×¤òÀßÄꤹ¤ë¡£ -ñ°Ì¤ÏÉäǡ¢¥Ç¥Õ¥©¥ë¥È¤Ï +「レゾルバが他のネームサーバで問い合わせをリトライする前に、 +リモートネームサーバからの応答を待つ時間」を設定する。 +単位は秒で、デフォルトは .B RES_TIMEOUT -¤Ç¤¢¤ë -(¸½¾õ¤Ç¤Ï 5 Éá¢\fI\fP ¤ò»²¾È)¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ÎÃͤξå¸Â¤Ï 30 ¤Ç¤¢¤ê¡¢ÌۤäƤ³¤ÎÃͤޤÇÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ +である +(現状では 5 秒、\fI\fP を参照)。 +このオプションの値の上限は 30 であり、黙ってこの値まで切り詰められる。 .TP .BI attempts: n -¡Ö¥ì¥¾¥ë¥Ð¤¬Äü¤á¤Æ¸Æ¤Ó½Ð¤·¸µ¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¥¨¥é¡¼¤òÊÖ¤¹¤Þ¤Ç¤Ë¡¢ -¥Í¡¼¥à¥µ¡¼¥Ð¤ËÌ䤤¹ç¤ï¤»¤ò¹Ô¤¦²ó¿ô¡×¤òÀßÄꤹ¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï +「レゾルバが諦めて呼び出し元のアプリケーションにエラーを返すまでに、 +ネームサーバに問い合わせを行う回数」を設定する。 +デフォルトは .B RES_DFLRETRY -²ó¤Ç¤¢¤ë -(¸½¾õ¤Ç¤Ï 2 ²ó¡¢\fI\fP ¤ò»²¾È)¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ÎÃͤξå¸Â¤Ï 5 ¤Ç¤¢¤ê¡¢ÌۤäƤ³¤ÎÃͤޤÇÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ +回である +(現状では 2 回、\fI\fP を参照)。 +このオプションの値の上限は 5 であり、黙ってこの値まで切り詰められる。 .TP .B rotate .\" Since glibc 2.2 .I _res.options -¤Ë RES_ROTATE ¤òÀßÄꤹ¤ë¡£ -¥ê¥¹¥È¤µ¤ì¤Æ¤¤¤ë¥Í¡¼¥à¥µ¡¼¥Ð¤«¤éÁª¤Ö¤È¤­¤Ë¡¢ -¥é¥¦¥ó¥É¥í¥Ó¥ó (round robin) ÁªÂò¤ò¹Ô¤ï¤»¤ë¡£ -¥ê¥¹¥È¤µ¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¥µ¡¼¥Ð¤ÇÌ䤤¹ç¤ï¤»¤ÎÉé²Ù¤òʬ»¶¤¹¤ë¸ú²Ì¤¬¤¢¤ê¡¢ -ºÇ½é¤Ë¥ê¥¹¥È¤µ¤ì¤¿¥µ¡¼¥Ð¤ËÁ´¤Æ¤Î¥¯¥é¥¤¥¢¥ó¥È¤¬ -Ëè²óºÇ½é¤ËÌ䤤¹ç¤ï¤»¤ò¹Ô¤¦¤ï¤±¤Ç¤Ï¤Ê¤¯¤Ê¤ë¡£ +に RES_ROTATE を設定する。 +リストされているネームサーバから選ぶときに、 +ラウンドロビン (round robin) 選択を行わせる。 +リストされている全てのサーバで問い合わせの負荷を分散する効果があり、 +最初にリストされたサーバに全てのクライアントが +毎回最初に問い合わせを行うわけではなくなる。 .TP .B no-check-names .\" Since glibc 2.2 .I _res.options -¤Ë +に .B RES_NOCHECKNAME -¤òÀßÄꤹ¤ë¡£ -Æþ¤Ã¤Æ¤¯¤ë¥Û¥¹¥È̾¤È¥á¡¼¥ë¥¢¥É¥ì¥¹¤Ë¡¢ -¥¢¥ó¥À¡¼¥¹¥³¥¢ (_)¡¦ASCII °Ê³°¤Îʸ»ú¡¦À©¸æʸ»ú¤È¤¤¤Ã¤¿ -ÉÔÀµ¤Êʸ»ú¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¤«¤òÄ´¤Ù¤ë -ºÇ¶á¤Î BIND ¤Î¥Á¥§¥Ã¥¯¤ò̵¸ú¤Ë¤¹¤ë¡£ +を設定する。 +入ってくるホスト名とメールアドレスに、 +アンダースコア (_)・ASCII 以外の文字・制御文字といった +不正な文字が含まれていないかを調べる +最近の BIND のチェックを無効にする。 .TP .B inet6 .\" Since glibc 2.2 .I _res.options -¤Ë +に .B RES_USE_INET6 -¤òÀßÄꤹ¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤¬ÀßÄꤵ¤ì¤ë¤È¡¢ +を設定する。このオプションが設定されると、 .BR gethostbyname (3) -´Ø¿ô¤ÎÆâÉô¤Ç A ¥ì¥³¡¼¥É¤ÎÌ䤤¹ç¤ï¤»¤ò¹Ô¤¦Á°¤Ë -AAAA ¥ì¥³¡¼¥É¤ÎÌ䤤¹ç¤ï¤»¤ò¹Ô¤¦¤è¤¦¤Ë¤Ê¤ë¡£ -¤Þ¤¿¡¢AAAA ¥ì¥³¡¼¥É¤Ï¸«¤Ä¤«¤é¤Ê¤¤¤¬ A ¥ì¥³¡¼¥É¥»¥Ã¥È¤¬Â¸ºß¤¹¤ë¾ì¹ç¤Ë¡¢ -IPv4 ¤Î±þÅú¤ò IPv6¡Ö¥È¥ó¥Í¥ë·Á¼°¡×¤Ë¥Þ¥Ã¥×¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +関数の内部で A レコードの問い合わせを行う前に +AAAA レコードの問い合わせを行うようになる。 +また、AAAA レコードは見つからないが A レコードセットが存在する場合に、 +IPv4 の応答を IPv6「トンネル形式」にマップするようになる。 .TP -.BR ip6-bytestring " (glibc 2.3.4 °Ê¹ß)" +.BR ip6-bytestring " (glibc 2.3.4 以降)" .I _res.options -¤Ë +に .B RES_USE_BSTRING -¤òÀßÄꤹ¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤¬ÀßÄꤵ¤ì¤ë¤È¡¢IPv6 ¥¢¥É¥ì¥¹¤ÎµÕ°ú¤­¤Ç -RFC\ 2673 ¤Çµ¬Äꤵ¤ì¤¿ bit-label ·Á¼°¤¬»ÈÍѤµ¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬ÀßÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢nibble ·Á¼°¤¬»ÈÍѤµ¤ì¤ë¡£ +を設定する。このオプションが設定されると、IPv6 アドレスの逆引きで +RFC\ 2673 で規定された bit-label 形式が使用されるようになる。 +このオプションが設定されない場合、nibble 形式が使用される。 .TP -.BR ip6-dotint / no-ip6-dotint " (glibc 2.3.4 °Ê¹ß)" +.BR ip6-dotint / no-ip6-dotint " (glibc 2.3.4 以降)" .I _res.options -¤Ø¤Î +への .B RES_NOIP6DOTINT -¤Î¥»¥Ã¥È/¥¯¥ê¥¢¤ò¹Ô¤¦¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬¥¯¥ê¥¢¤µ¤ì¤ë¤È -.RB ( ip6-dotint )¡¢ -IPv6 ¥¢¥É¥ì¥¹¤ÎµÕ°ú¤­¤¬ (Èó¿ä¾©¤Î) +のセット/クリアを行う。 +このオプションがクリアされると +.RB ( ip6-dotint )、 +IPv6 アドレスの逆引きが (非推奨の) .I ip6.int -¥¾¡¼¥ó¤Ç¹Ô¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¡¢ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬¥»¥Ã¥È¤µ¤ì¤ë¤È -.RB ( no-ip6-dotint )¡¢ -IPv6 ¥¢¥É¥ì¥¹¤ÎµÕ°ú¤­¤¬¥Ç¥Õ¥©¥ë¥È¤Î +ゾーンで行われるようになり、 +このオプションがセットされると +.RB ( no-ip6-dotint )、 +IPv6 アドレスの逆引きがデフォルトの .I ip6.arpa -¥¾¡¼¥ó¤Ç¹Ô¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¥»¥Ã¥È¤µ¤ì¤ë¡£ +ゾーンで行われるようになる。 +このオプションはデフォルトでセットされる。 .TP -.BR edns0 " (glibc 2.6 °Ê¹ß)" +.BR edns0 " (glibc 2.6 以降)" .I _res.options -¤Ë +に .B RES_USE_EDNSO -¤ò¥»¥Ã¥È¤¹¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢RFC\ 2671 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë -DNS ³ÈÄ¥¤Î¥µ¥Ý¡¼¥È¤¬Í­¸ú¤Ë¤Ê¤ë¡£ +をセットする。これにより、RFC\ 2671 で規定されている +DNS 拡張のサポートが有効になる。 .RE .LP -\fIdomain\fP ¤È \fIsearch\fP ¥­¡¼¥ï¡¼¥É¤Ï¡¢¸ß¤¤¤ËÇÓ¾Ū¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î¥­¡¼¥ï¡¼¥É¤¬ 2 ¤Ä°Ê¾åµ­½Ò¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -ºÇ¸å¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤¬Í­¸ú¤Ë¤Ê¤ë¡£ +\fIdomain\fP と \fIsearch\fP キーワードは、互いに排他的である。 +これらのキーワードが 2 つ以上記述されている場合、 +最後に記述されているものが有効になる。 .LP -¥·¥¹¥Æ¥à¤Î \fIresolv.conf\fP ¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë \fIsearch\fP ¥­¡¼¥ï¡¼¥É¤Ï¡¢ -¥¹¥Ú¡¼¥¹¤Ç¶èÀڤ俸¡º÷¥É¥á¥¤¥ó¤Î¥ê¥¹¥È¤ò -´Ä¶­ÊÑ¿ô +システムの \fIresolv.conf\fP ファイルにある \fIsearch\fP キーワードは、 +スペースで区切った検索ドメインのリストを +環境変数 .B LOCALDOMAIN -¤ËÀßÄꤹ¤ë¤³¤È¤Ë¤è¤ê¡¢³Æ¥×¥í¥»¥¹Ëè¤Ë¾å½ñ¤­¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +に設定することにより、各プロセス毎に上書きすることができる。 .LP -¥·¥¹¥Æ¥à¤Î \fIresolv.conf\fP ¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë \fIoptions\fP ¥­¡¼¥ï¡¼¥É¤Ï¡¢ -¾å¤Î \fBoptions\fP ¥»¥¯¥·¥ç¥ó¤ÇÀâÌÀ¤·¤¿¤è¤¦¤Ë¡¢ -¥¹¥Ú¡¼¥¹¤Ç¶èÀڤ俥쥾¥ë¥Ð¥ª¥×¥·¥ç¥ó¤Î¥ê¥¹¥È¤ò -´Ä¶­ÊÑ¿ô +システムの \fIresolv.conf\fP ファイルにある \fIoptions\fP キーワードは、 +上の \fBoptions\fP セクションで説明したように、 +スペースで区切ったレゾルバオプションのリストを +環境変数 .B RES_OPTIONS -¤ËÀßÄꤹ¤ë¤³¤È¤Ë¤è¤ê¡¢³Æ¥×¥í¥»¥¹Ëè¤Ë½¤Àµ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +に設定することにより、各プロセス毎に修正することができる。 .LP -¥­¡¼¥ï¡¼¥É¤ÈÃͤÏƱ¤¸¹Ô¤Ë½ñ¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤Þ¤¿¡¢(\fBnameserver\fP ¤Î¤è¤¦¤Ê) ¥­¡¼¥ï¡¼¥É¤¬¹Ô¤ÎÀèƬ¤Ë¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Ãͤϥ­¡¼¥ï¡¼¥É¤Î¸å¤Ë¥¹¥Ú¡¼¥¹¤Ç¶èÀڤäƳ¤±¤ë¡£ -.SH ¥Õ¥¡¥¤¥ë +キーワードと値は同じ行に書かなければならない。 +また、(\fBnameserver\fP のような) キーワードが行の先頭になければならない。 +値はキーワードの後にスペースで区切って続ける。 +.SH ファイル .IR /etc/resolv.conf , .I -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR gethostbyname (3), .BR resolver (3), .BR hostname (7), .BR named (8) .br -BIND ¤Î¥Í¡¼¥à¥µ¡¼¥Ð¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥¬¥¤¥É +BIND のネームサーバオペレーションガイド diff --git a/release/man5/rpc.5 b/release/man5/rpc.5 index 03e091d3..e4da9e6d 100644 --- a/release/man5/rpc.5 +++ b/release/man5/rpc.5 @@ -9,32 +9,32 @@ .\" Updated Sat Dec 22 JST 2001 by Kentaro Shirakata .\" .TH RPC 5 1985-09-26 "" "Linux Programmer's Manual" -.SH ̾Á° -rpc \- RPC ¥×¥í¥°¥é¥àÈÖ¹æ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹ -.SH ½ñ¼° +.SH 名前 +rpc \- RPC プログラム番号のデータベース +.SH 書式 .B /etc/rpc -.SH ÀâÌÀ +.SH 説明 .I rpc -¥Õ¥¡¥¤¥ë¤Ë¤Ï RPC ¥×¥í¥°¥é¥àÈÖ¹æ¤ÎÂå¤ï¤ê¤Ë»È¤¦¤³¤È¤Î¤Ç¤­¤ë -¥æ¡¼¥¶¡¼¤Ë²ÄÆɤÊ̾Á°¤¬Æþ¤Ã¤Æ¤¤¤ë¡£¤½¤ì¤¾¤ì¤Î¹Ô¤Ï°Ê²¼¤Î¾ðÊó¤ò´Þ¤à¡£ +ファイルには RPC プログラム番号の代わりに使うことのできる +ユーザーに可読な名前が入っている。それぞれの行は以下の情報を含む。 .HP 10 -RPC ¥×¥í¥°¥é¥à¤Î¥µ¡¼¥Ð¤Î̾Á° +RPC プログラムのサーバの名前 .br .ns .HP 10 -RPC ¥×¥í¥°¥é¥àÈÖ¹æ +RPC プログラム番号 .br .ns .HP 10 -ÊÌ̾ +別名 .LP -¤½¤ì¤¾¤ì¤Î¹àÌܤÏǤ°Õ¤Î¸Ä¿ô¤Î¶õÇò¡¦¥¿¥Ö (º®ºß²Ä) ¤Ë¤è¤Ã¤Æ¶èÀÚ¤é¤ì¤ë¡£ -ÀèƬ¤Ë \(aq#\(aq ¤Î¤¢¤ë¹Ô¤Ï¥³¥á¥ó¥È¤Ç¤¢¤ë¡£ -\(aq#\(aq ¤«¤é¤½¤Î¹Ô¤Î½ªÎ»¤Þ¤Ç¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ò¥µ¡¼¥Á¤¹¤ë¥ë¡¼¥Á¥ó¤Ë¤è¤Ã¤Æ -²ò¼á¤µ¤ì¤Ê¤¯¤Ê¤ë¡£ +それぞれの項目は任意の個数の空白・タブ (混在可) によって区切られる。 +先頭に \(aq#\(aq のある行はコメントである。 +\(aq#\(aq からその行の終了までは、このファイルをサーチするルーチンによって +解釈されなくなる。 .LP -°Ê²¼¤Ë¡¢ Sun RPC ¤Î¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¤«¤é¤È¤Ã¤Æ¤­¤¿ -\fI/etc/rpc\fP ¥Õ¥¡¥¤¥ë¤ÎÎã¤ò¼¨¤¹¡£ +以下に、 Sun RPC のソースパッケージからとってきた +\fI/etc/rpc\fP ファイルの例を示す。 .nf .ta 1.5i +0.5i +1.0i +1.0i # @@ -72,9 +72,9 @@ nsed 100038 nsemntd 100039 .fi .DT -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .TP .I /etc/rpc -RPC ¥×¥í¥°¥é¥àÈÖ¹æ¥Ç¡¼¥¿¥Ù¡¼¥¹ -.SH ´ØÏ¢¹àÌÜ +RPC プログラム番号データベース +.SH 関連項目 .BR getrpcent (3) diff --git a/release/man5/securetty.5 b/release/man5/securetty.5 index f578258d..d1b3f205 100644 --- a/release/man5/securetty.5 +++ b/release/man5/securetty.5 @@ -27,22 +27,22 @@ .\" Translated Wed Feb 4 1998 by Hiroaki Nagoya .\" .TH SECURETTY 5 1992-12-29 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -securetty \- root ¤¬¥í¥°¥¤¥ó¤Ç¤­¤ëüËö¥ê¥¹¥È¤Î¥Õ¥¡¥¤¥ë -.SH ÀâÌÀ +.SH 名前 +securetty \- root がログインできる端末リストのファイル +.SH 説明 .I /etc/securetty -¥Õ¥¡¥¤¥ë¤Ï (¤¤¤¯¤Ä¤«¤Î¥Ð¡¼¥¸¥ç¥ó¤Î) +ファイルは (いくつかのバージョンの) .BR login (1) -¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤ë¡£ -root ¤Î¥í¥°¥¤¥ó¤¬µö²Ä¤µ¤ì¤Æ¤¤¤ëüËö¤Î¥Ç¥Ð¥¤¥¹Ì¾¤¬£±¹Ô¤Ë -¤Ò¤È¤Ä¤º¤Ä½ñ¤«¤ì¤Æ¤¤¤ë (ÀèƬ¤Î +によって使用される。 +root のログインが許可されている端末のデバイス名が1行に +ひとつずつ書かれている (先頭の .I /dev/ -¤Ï¾Êά¤¹¤ë)¡£ -shadow login suite ¤ò»ÈÍѤ·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ +は省略する)。 +shadow login suite を使用している場合は、 .BR login.defs (5) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ¥Õ¥¡¥¤¥ë +を参照すること。 +.SH ファイル .I /etc/securetty -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR login (1), .BR login.defs (5) diff --git a/release/man5/services.5 b/release/man5/services.5 index 3b1823d2..fa62ce22 100644 --- a/release/man5/services.5 +++ b/release/man5/services.5 @@ -37,129 +37,129 @@ .\" by MOTOKI Akihiro .\" .TH SERVICES 5 2010-05-22 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -services \- ¥¤¥ó¥¿¡¼¥Í¥Ã¥È ¥Í¥Ã¥È¥ï¡¼¥¯¥µ¡¼¥Ó¥¹ ¥ê¥¹¥È -.SH ÀâÌÀ +.SH 名前 +services \- インターネット ネットワークサービス リスト +.SH 説明 .B services -¤Ï¡¢¿Í¤¬Ê¬¤«¤ê¤ä¤¹¤¤·Á¤Î¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥µ¡¼¥Ó¥¹¤Î̾Á°¤È¡¢ -¤½¤ì¤é¤Î¥µ¡¼¥Ó¥¹¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥Ý¡¼¥ÈÈÖ¹æ¤ä -¥×¥í¥È¥³¥ë¼ïÊ̤ÎÂбþ´Ø·¸¤¬½ñ¤«¤ì¤Æ¤¤¤ë¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ -¥Í¥Ã¥È¥ï¡¼¥¯¾å¤ÇÆ°ºî¤¹¤ë¥×¥í¥°¥é¥à¤Ï¤¹¤Ù¤Æ¡¢ -¤½¤Î¥µ¡¼¥Ó¥¹¤ËÂбþ¤¹¤ë¥Ý¡¼¥ÈÈÖ¹æ (¤È¥×¥í¥È¥³¥ë) ¤òÆÀ¤ë¤¿¤á¤Ë¡¢ -¤³¤Î¥Õ¥¡¥¤¥ë¤òÄ´¤Ù¤ëɬÍפ¬¤¢¤ë¡£ -C ¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ç¤¢¤ë +は、人が分かりやすい形のインターネットサービスの名前と、 +それらのサービスに割り当てられたポート番号や +プロトコル種別の対応関係が書かれているテキストファイルである。 +ネットワーク上で動作するプログラムはすべて、 +そのサービスに対応するポート番号 (とプロトコル) を得るために、 +このファイルを調べる必要がある。 +C ライブラリ関数である .BR getservent (3), .BR getservbyname (3), .BR getservbyport (3), .BR setservent (3), .BR endservent (3) -¤òÍøÍѤ¹¤ë¤³¤È¤Ç¡¢¥×¥í¥°¥é¥à¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤òÄ´¤Ù¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を利用することで、プログラムはこのファイルを調べることができる。 -¥Ý¡¼¥ÈÈÖ¹æ¤Ï¡¢IANA (Internet Assigned Numbers Authority) ¤Ë¤è¤Ã¤Æ -³ä¤êÅö¤Æ¤é¤ì¤Æ¤ª¤ê¡¢¸½ºß¤Ï¥Ý¡¼¥ÈÈÖ¹æ¤ò³ä¤êÅö¤Æ¤ëºÝ¤Ë -TCP ¤È UDP ¤ÎξÊý¤Î¥×¥í¥È¥³¥ë¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤½¤Î¤¿¤á¡¢¤Û¤È¤ó¤É¤Î¥µ¡¼¥Ó¥¹¤ËÂФ·¤Æ¡¢ -¤¿¤È¤¨ TCP ¤À¤±¤Î¥µ¡¼¥Ó¥¹¤Î¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢Âбþ¤¹¤ë¹àÌܤ¬Æó¤Ä¤¢¤ë¤³¤È¤Ë¤Ê¤ë¡£ +ポート番号は、IANA (Internet Assigned Numbers Authority) によって +割り当てられており、現在はポート番号を割り当てる際に +TCP と UDP の両方のプロトコルを割り当てることになっている。 +そのため、ほとんどのサービスに対して、 +たとえ TCP だけのサービスの場合であっても、対応する項目が二つあることになる。 -1024 ¤è¤ê¾®¤µ¤¤¥Ý¡¼¥ÈÈÖ¹æ (¤¤¤ï¤æ¤ë "low numbered" ¥Ý¡¼¥È) ¤Ï -´ÉÍý¼Ô (root) ¸¢¸Â¤Ë¤è¤Ã¤Æ¤Î¤ß»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë +1024 より小さいポート番号 (いわゆる "low numbered" ポート) は +管理者 (root) 権限によってのみ使用することができる .RB ( bind (2), .BR tcp (7), .BR udp (7) -»²¾È)¡£ -¤³¤ì¤Ï¡¢¤³¤ì¤é¤Î¥Ý¡¼¥È¤ËÀܳ¤¹¤ë¥¯¥é¥¤¥¢¥ó¥È¤ËÂФ·¤Æ¡¢ -¤½¤Î¥Ý¡¼¥È¤ÇÆ°¤¤¤Æ¤¤¤ë¥µ¡¼¥Ó¥¹¤¬É¸½àŪ¤Ê¼ÂÁõ¤Ç¤¢¤ê¡¢ -¤½¤Î·×»»µ¡¤Î¥æ¡¼¥¶¡¼¤¬Æ°¤«¤·¤Æ¤¤¤ë -ÉÔÀµ¤Ê¥µ¡¼¥Ó¥¹¤Ç¤Ï¤Ê¤¤¤³¤È¤òÊݾڤ¹¤ë¤¿¤á¤Ç¤¢¤ë¡£ -IANA ¤ËÌÀµ­¤µ¤ì¤Æ¤¤¤ë¤è¤¯»ÈÍѤµ¤ì¤ë¥Ý¡¼¥ÈÈÖ¹æ¤Ï¡¢ -Ä̾盧¤Î¤è¤¦¤Ê´ÉÍý¼Ô¤À¤±¤¬»ÈÍѤǤ­¤ëÈϰϤËÇÛÃÖ¤µ¤ì¤ë¡£ +参照)。 +これは、これらのポートに接続するクライアントに対して、 +そのポートで動いているサービスが標準的な実装であり、 +その計算機のユーザーが動かしている +不正なサービスではないことを保証するためである。 +IANA に明記されているよく使用されるポート番号は、 +通常このような管理者だけが使用できる範囲に配置される。 .B services -¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë¥µ¡¼¥Ó¥¹¤ËÂФ¹¤ë¹àÌܤ¬¤¢¤Ã¤Æ¤â¡¢É¬¤º¤·¤â¤½¤Î¥µ¡¼¥Ó¥¹¤¬¸½ -ºß¤½¤Î·×»»µ¡¤ÇÆ°¤¤¤Æ¤¤¤ëÌõ¤Ç¤Ï¤Ê¤¤¡£ÍøÍѲÄǽ¤Ê¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥µ¡¼¥Ó¥¹¤ÎÀßÄê¤Ë -¤Ä¤¤¤Æ¤Ï +ファイルにあるサービスに対する項目があっても、必ずしもそのサービスが現 +在その計算機で動いている訳ではない。利用可能なインターネットサービスの設定に +ついては .BR inetd.conf (5) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£¤¿¤À¤·¡¢¤¹¤Ù¤Æ¤Î¥µ¡¼¥Ó¥¹¤¬ +に記述されている。ただし、すべてのサービスが .BR inetd (8) -¤Ë¤è¤Ã¤Æµ¯Æ°¤µ¤ì¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢ +によって起動されるわけではないので、 .BR inetd.conf (5) -¤Ë¤Ï½ñ¤«¤ì¤Æ¤¤¤Ê¤¤¥µ¡¼¥Ó¥¹¤â¤¢¤ë¤³¤È¤ËÃí°Õ¤¹¤ëɬÍפ¬¤¢¤ë¡£ -Æäˡ¢¥Í¥Ã¥È¥Ë¥å¡¼¥¹ (NNTP) ¤ä ¥á¡¼¥ë (SMTP) ¤Î¥µ¡¼¥Ð¡¼¤Ï¡¢¥·¥¹¥Æ¥àµ¯Æ°»þ¤Î -¥¹¥¯¥ê¥×¥È¤«¤éµ¯Æ°¤µ¤ì¤ë¤³¤È¤¬Â¿¤¤¡£ +には書かれていないサービスもあることに注意する必要がある。 +特に、ネットニュース (NNTP) や メール (SMTP) のサーバーは、システム起動時の +スクリプトから起動されることが多い。 .B services -¥Õ¥¡¥¤¥ë¤Î¾ì½ê¤Ï¡¢ +ファイルの場所は、 .I -Ãæ¤Î +中の .B _PATH_SERVICES -¤Ë¤è¤Ã¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ÎÃͤÏÄ̾ï +によって定義されている。 +この値は通常 .I /etc/services -¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¡£ +に設定されている。 - 1 ¹Ô¤Ë¤Ä¤­ 1 ¥µ¡¼¥Ó¥¹¤¬µ­½Ò¤µ¤ì¤Æ¤ª¤ê¡¢¤½¤Î·Á¼°¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ + 1 行につき 1 サービスが記述されており、その形式は以下の通りである。 .IP \f2service-name\ \ \ port\f3/\f2protocol\ \ \ \f1[\f2aliases ...\f1] .TP .TP 10 .I service-name -¥µ¡¼¥Ó¥¹¤òɽ¤¹Ê¬¤«¤ê¤ä¤¹¤¤Ì¾Á°¤Ç¤¢¤ê¡¢¸¡º÷¤ÎºÝ¤Ë¤â»ÈÍѤµ¤ì¤ë¡£ -Âçʸ»ú¤È¾®Ê¸»ú¤Ï¶èÊ̤µ¤ì¤ë¡£ -¥¯¥é¥¤¥¢¥ó¥È¥×¥í¥°¥é¥à¤Ï +サービスを表す分かりやすい名前であり、検索の際にも使用される。 +大文字と小文字は区別される。 +クライアントプログラムは .I service-name -¤Ë¤Á¤Ê¤ó¤Ç̾ÉÕ¤±¤é¤ì¤ë¤³¤È¤¬Â¿¤¤¡£ +にちなんで名付けられることが多い。 .TP .I port -¥µ¡¼¥Ó¥¹¤ËÂФ·¤Æ»ÈÍѤµ¤ì¤ë¥Ý¡¼¥ÈÈֹ档10 ¿Ê¿ô¤Ç»ØÄꤹ¤ë¡£ +サービスに対して使用されるポート番号。10 進数で指定する。 .TP .I protocol -»ÈÍѤµ¤ì¤ë¥×¥í¥È¥³¥ë¤Î¼ïÎà¡£¤³¤ÎÍó¤Ï¡¢ +使用されるプロトコルの種類。この欄は、 .BR protocols (5) -¥Õ¥¡¥¤¥ë¤ÎÃæ¤Î¹àÌܤȰìÃפ·¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ -Ä̾ï»ÈÍѤµ¤ì¤ëÃͤϡ¢ +ファイルの中の項目と一致している必要がある。 +通常使用される値は、 .B tcp -¤È +と .B udp -¤Ç¤¢¤ë¡£ +である。 .TP .I aliases -¥µ¡¼¥Ó¥¹¤ËÂФ¹¤ëÊÌ̾¤Î¥ê¥¹¥È (¶èÀڤϥ¹¥Ú¡¼¥¹¤Þ¤¿¤Ï¥¿¥Ö) ¤Ç¡¢¤³¤ÎÍó¤Ï -ɬÍפˤʤé¤Ð½ñ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£ -¤Þ¤¿¡¢ÊÌ̾¤ÏÂçʸ»ú¤È¾®Ê¸»ú¤Ï¶èÊ̤µ¤ì¤ë¡£ +サービスに対する別名のリスト (区切はスペースまたはタブ) で、この欄は +必要にならば書くことができる。 +また、別名は大文字と小文字は区別される。 .PP -¤½¤ì¤¾¤ì¤ÎÍó¤Î¶èÀÚ¤ê¤Ë¤Ï¡¢¥¹¥Ú¡¼¥¹¤Þ¤¿¤Ï¥¿¥Ö¤¬»ÈÍѤµ¤ì¤ë¡£ +それぞれの欄の区切りには、スペースまたはタブが使用される。 -¥³¥á¥ó¥È¤Ï¥·¥ã¡¼¥× (#) ¤Ç»Ï¤Þ¤ê¡¢¤½¤Î¹Ô¤Î½ª¤ï¤ê¤Þ¤Ç¤¬¥³¥á¥ó¥È¤È¤ß¤Ê¤µ¤ì¤ë¡£ -¶õ¹Ô¤ÏÈô¤Ð¤µ¤ì¤ë¡£ +コメントはシャープ (#) で始まり、その行の終わりまでがコメントとみなされる。 +空行は飛ばされる。 -¹Ô¤Î»Ï¤á¤Î¥¹¥Ú¡¼¥¹¤Ï̵»ë¤µ¤ì¤Ê¤¤¤Î¤Ç¡¢ +行の始めのスペースは無視されないので、 .I service-name -¤Ï¡¢¹ÔƬ¤«¤é½ñ¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +は、行頭から書かなければならない。 .I service-names -¤Ï¡¢¥¹¥Ú¡¼¥¹¤È¥¿¥Ö°Ê³°¤Î°õ»ú²Äǽ¤Êʸ»ú¤Ê¤é²¿¤Ç¤â¤è¤¤¤¬¡¢¤·¤«¤·¤Ê¤¬¤é -¸ß´¹À­¤ÎÌäÂê¤ò¾¯¤Ê¤¯¤¹¤ë¤è¤¦¤Êʸ»ú¤òÁªÂò¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -Î㤨¤Ð¡¢a\-z ¡¢0\-9 ¡¢¥Ï¥¤¥Õ¥©¥ó (\-) ¤ò»ÈÍѤ¹¤ë¤Î¤¬ÌµÆñ¤È»×¤ï¤ì¤ë¡£ +は、スペースとタブ以外の印字可能な文字なら何でもよいが、しかしながら +互換性の問題を少なくするような文字を選択すべきである。 +例えば、a\-z 、0\-9 、ハイフォン (\-) を使用するのが無難と思われる。 -»ØÄꤵ¤ì¤¿·Á¼°¤Ë¹ç¤ï¤Ê¤¤¹Ô¤Ï¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤ (¸½ºß¤Ï¡¢¤½¤Î¤è¤¦¤Ê¹Ô¤Ï +指定された形式に合わない行はあってはならない (現在は、そのような行は .BR getservent (3), .BR getservbyname (3), .BR getservbyport (3) -¤Ë¤è¤Ã¤Æ̵»ë¤µ¤ì¤ë¡£¤·¤«¤·¡¢¤½¤Î¾ì¹ç¤ÎµóÆ°¤Ï¿®Íê¤Ç¤­¤Ê¤¤)¡£ +によって無視される。しかし、その場合の挙動は信頼できない)。 .\" The following is not true as at glibc 2.8 (a line with a comma is .\" ignored by getservent()); it's not clear if/when it was ever true. -.\" ¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤È¤ÎÀ°¹çÀ­¤ÎÌäÂ꤫¤é¡¢¼ÂºÝ¤Ë¤Ï +.\" 古いバージョンとの整合性の問題から、実際には .\" .I port -.\" ÈÖ¹æ¤È +.\" 番号と .\" .I protocol -.\" ¤Î´Ö¤Î¥¹¥é¥Ã¥·¥å (/) ¤Ï¡¢¥¹¥é¥Ã¥·¥å¤«¥³¥ó¥Þ (,) ¤Î¤É¤Á¤é¤Ç¤â¹½¤ï¤Ê¤¤¡£ -.\" ¤·¤«¤·¤Ê¤¬¤é¡¢º£¤Ê¤ª¥³¥ó¥Þ¤ò»ÈÍѤ¹¤ë¤Î¤Ï˾¤Þ¤·¤¤¤³¤È¤Ç¤Ï¤Ê¤¤¡£ +.\" の間のスラッシュ (/) は、スラッシュかコンマ (,) のどちらでも構わない。 +.\" しかしながら、今なおコンマを使用するのは望ましいことではない。 .\" -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢Yellow Pages/NIS ¤ä BIND/Hesiod ¤Î¤è¤¦¤Ê¥Í¥Ã¥È¥ï¡¼¥¯¾å¤Î̾Á° -¥µ¡¼¥Ó¥¹¤òÍѤ¤¤Æ¡¢¥Í¥Ã¥È¥ï¡¼¥¯¤òÄ̤¸¤ÆÇÛÉÛ¤µ¤ì¤ë²ÄǽÀ­¤â¤¢¤ë¡£ +このファイルは、Yellow Pages/NIS や BIND/Hesiod のようなネットワーク上の名前 +サービスを用いて、ネットワークを通じて配布される可能性もある。 .B services -¥Õ¥¡¥¤¥ë¤Î¸«Ëܤò°Ê²¼¤Ë¼¨¤¹¡£ +ファイルの見本を以下に示す。 .RS .nf .sp @@ -175,29 +175,29 @@ ftp 21/tcp telnet 23/tcp .fi .RE -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .TP .I /etc/services -¥¤¥ó¥¿¡¼¥Í¥Ã¥È ¥Í¥Ã¥È¥ï¡¼¥¯¥µ¡¼¥Ó¥¹¤Î¥ê¥¹¥È +インターネット ネットワークサービスのリスト .TP .I .B _PATH_SERVICES -¤ÎÄêµÁ -.\" .SH ¥Ð¥° +の定義 +.\" .SH バグ .\" It's not clear when/if the following was ever true; .\" it isn't true for glibc 2.8: .\" .BR getservent (3) -.\" ¤Î¥³¡¼¥É¤Î½ñ¤­Êý¤ÎÌäÂê¤Ç¡¢35 ¸Ä¤Þ¤Ç¤·¤«ÊÌ̾¤òÉÕ¤±¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +.\" のコードの書き方の問題で、35 個までしか別名を付けることができない。 .\" .\" It's not clear when/if the following was ever true; .\" it isn't true for glibc 2.8: .\" .B BUFSIZ -.\" (¸½ºß¤Ï 1024) ʸ»ú¤è¤êŤ¤¹Ô¤Ï¡¢ +.\" (現在は 1024) 文字より長い行は、 .\" .BR getservent (3), .\" .BR getservbyname (3), .\" .BR getservbyport (3) -.\" ¤Ë¤è¤ê̵»ë¤µ¤ì¤ë¡£¤µ¤é¤Ë¡¢¤³¤Î¤³¤È¤Ï¼¡¤Î¹Ô¤¬Àµ¤·¤¯²ò¼á¤µ¤ì¤Ê¤¤¸¶°ø¤È¤Ê¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +.\" により無視される。さらに、このことは次の行が正しく解釈されない原因となる。 +.SH 関連項目 .BR listen (2), .BR endservent (3), .BR getservbyname (3), @@ -208,4 +208,4 @@ telnet 23/tcp .BR protocols (5), .BR inetd (8) -¥Ý¡¼¥ÈÈÖ¹æ¤Î³ä¤êÅö¤Æ¤òÄê¤á¤Æ¤¤¤ë RFC (ºÇ¿·ÈÇ¤Ï RFC\ 1700¡¢ÊÌ̾ STD0002) +ポート番号の割り当てを定めている RFC (最新版は RFC\ 1700、別名 STD0002) diff --git a/release/man5/shells.5 b/release/man5/shells.5 index 49ffed8c..7dbbe9c9 100644 --- a/release/man5/shells.5 +++ b/release/man5/shells.5 @@ -32,33 +32,33 @@ .\" Updated Mon 11 Dec 2000 by NAKANO Takeo .\" .TH SHELLS 5 1993-11-21 "" "Linux Programmer's Manual" -.SH ̾Á° -shells \- ¥í¥°¥¤¥ó¥·¥§¥ë¤È¤·¤ÆÍ­¸ú¤Ê¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹Ì¾ -.SH ÀâÌÀ +.SH 名前 +shells \- ログインシェルとして有効なファイルのパス名 +.SH 説明 .I /etc/shells -¤Ï¥í¥°¥¤¥ó¥·¥§¥ë¤È¤·¤ÆÍ­¸ú¤Ê¥Õ¥¡¥¤¥ë¤Î¥Õ¥ë¥Ñ¥¹¤¬½ñ¤«¤ì¤¿ -¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ +はログインシェルとして有効なファイルのフルパスが書かれた +テキストファイルである。 .BR chsh (1) -¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¡£ -¾¤Î¥×¥í¥°¥é¥à¤â¤³¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤Ç¤­¤ë¡£ +はこのファイルを参照する。 +他のプログラムもこのファイルを参照できる。 .PP -Ãí°Õ¤·¤ÆÍߤ·¤¤¤Î¤À¤¬¡¢¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤Æ¤Ï¡¢ -¥æ¡¼¥¶¡¼¤¬Ä̾ï¤Î¥æ¡¼¥¶¡¼¤«¤É¤¦¤«¤òȽÃǤ¹¤ëºÝ¤Ë¡¢ -¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÆâÍƤò»²¹Í¤Ë¤¹¤ë¤³¤È¤¬¤¢¤ë¡£ -Î㤨¤Ð ftp ¥Ç¡¼¥â¥ó¤Ï¡¢ -¥í¥°¥¤¥ó¥·¥§¥ë¤¬¤³¤Î¥Õ¥¡¥¤¥ë¤Ë½ñ¤«¤ì¤Æ¤¤¤Ê¤¤ -¥æ¡¼¥¶¡¼¤«¤é¤Î¥¢¥¯¥»¥¹¤òµö¤µ¤Ê¤¤¤Î¤¬°ÊÁ°¤«¤é°ìÈÌŪ¤Ç¤¢¤ë¡£ -.SH ¥Õ¥¡¥¤¥ë +注意して欲しいのだが、プログラムによっては、 +ユーザーが通常のユーザーかどうかを判断する際に、 +このファイルの内容を参考にすることがある。 +例えば ftp デーモンは、 +ログインシェルがこのファイルに書かれていない +ユーザーからのアクセスを許さないのが以前から一般的である。 +.SH ファイル .I /etc/shells -.SH Îã +.SH 例 .I /etc/shells -¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤Ê¥Ñ¥¹¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤À¤í¤¦¡£ +には以下のようなパスが含まれているだろう。 .sp .RS .I /bin/sh .br .I /bin/csh .RE -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR chsh (1), .BR getusershell (3) diff --git a/release/man5/slabinfo.5 b/release/man5/slabinfo.5 index ed16386d..530e904f 100644 --- a/release/man5/slabinfo.5 +++ b/release/man5/slabinfo.5 @@ -24,16 +24,16 @@ .\" Translated Thu Aug 16 2001 by NAKANO Takeo .\" .TH SLABINFO 5 2007-09-30 "" "Linux Programmer's Manual" -.SH ̾Á° -/proc/slabinfo \- ¥«¡¼¥Í¥ë slab ¥¢¥í¥±¡¼¥¿¤ÎÅý·× -.SH ½ñ¼° +.SH 名前 +/proc/slabinfo \- カーネル slab アロケータの統計 +.SH 書式 .B cat /proc/slabinfo -.SH ÀâÌÀ -Linux ¥«¡¼¥Í¥ë¤ÎÆâÉô¤ÇÎɤ¯ÍøÍѤµ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È -(¥Ð¥Ã¥Õ¥¡¥Ø¥Ã¥É¡¢i-¥Î¡¼¥É¡¢¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤Ê¤É) -¤Ï¡¢¤½¤ì¤¾¤ì¼«Ê¬ÍѤΥ­¥ã¥Ã¥·¥å¤òÈ÷¤¨¤Æ¤¤¤ë¡£¥Õ¥¡¥¤¥ë +.SH 説明 +Linux カーネルの内部で良く利用されるオブジェクト +(バッファヘッド、i-ノード、ディレクトリ・エントリなど) +は、それぞれ自分用のキャッシュを備えている。ファイル .I /proc/slabinfo -¤Ï¤³¤ì¤é¤ÎÅý·×¤òÍ¿¤¨¤ë¡£Îã¤ò¼¨¤¹¡£ +はこれらの統計を与える。例を示す。 .LP .in +4n .nf @@ -54,71 +54,71 @@ size-4096 41 73 4096 41 73 1 .fi .in .LP -¤½¤ì¤¾¤ì¤Î slab ¥­¥ã¥Ã¥·¥å¤´¤È¤Ë¡¢¥­¥ã¥Ã¥·¥å¤Î̾Á°¡¢ -¸½ºß¥¢¥¯¥Æ¥£¥Ö¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤Î¿ô¡¢ÍøÍѲÄǽ¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤ÎÁí¿ô¡¢ -³Æ¥ª¥Ö¥¸¥§¥¯¥È¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì)¡¢¾¯¤Ê¤¯¤È¤â°ì¤Ä¤Î¥¢¥¯¥Æ¥£¥Ö¤Ê -¥ª¥Ö¥¸¥§¥¯¥È¤òÍ­¤¹¤ë¥Ú¡¼¥¸¤Î¿ô¡¢¥¢¥í¥±¡¼¥È¤µ¤ì¤¿¥Ú¡¼¥¸¤ÎÁí¿ô¡¢ -slab ¤¢¤¿¤ê¤Î¥Ú¡¼¥¸¿ô¡¢¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤ë¡£ +それぞれの slab キャッシュごとに、キャッシュの名前、 +現在アクティブなオブジェクトの数、利用可能なオブジェクトの総数、 +各オブジェクトのサイズ (バイト単位)、少なくとも一つのアクティブな +オブジェクトを有するページの数、アロケートされたページの総数、 +slab あたりのページ数、が与えられている。 -¤Ê¤ª¡¢ -¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤È slab ¥­¥ã¥Ã¥·¥å¤Î¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤È¤Ë¤è¤ê¡¢ -¥ª¥Ö¥¸¥§¥¯¥È¤ÏÄ̾ï¥Ú¡¼¥¸¤ÎÆâÉô¤Ë¤­¤Ã¤Á¤ê¤È¤Ï¼ý¤á¤é¤ì¤Æ¤¤¤Ê¤¤¡£ -ÍøÍÑÃæ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò¤Ò¤È¤Ä¤Ç¤âÊÝ»ý¤·¤Æ¤¤¤ë¥Ú¡¼¥¸¤Ï¡¢ -ÍøÍÑÃæ¤Ç¤¢¤ë¤È¤ß¤Ê¤µ¤ì¡¢²òÊü¤Ç¤­¤Ê¤¤¡£ +なお、 +オブジェクトのアラインメントと slab キャッシュのオーバーヘッドとにより、 +オブジェクトは通常ページの内部にきっちりとは収められていない。 +利用中のオブジェクトをひとつでも保持しているページは、 +利用中であるとみなされ、解放できない。 -slab ¥­¥ã¥Ã¥·¥åÅý·×¤Îµ¡Ç½¤òÍ­¸ú¤Ë¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -½ÐÎϤκǽé¤Î¹Ô¤Ë "(statistics)" ¤Èɽ¼¨¤µ¤ì¡¢ 5 ¤Ä¤Î¥«¥é¥à¤¬Äɲ䵤ì¤ë¡£ -¤½¤ì¤¾¤ì¡¢¥¢¥¯¥Æ¥£¥Ö¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤Î½Ö´ÖºÇÂçÃÍ¡¢ -.\"nakano ¤Ç¤¤¤¤¤Î¤«¤Ê¤¢ > high water mark -¥ª¥Ö¥¸¥§¥¯¥È¤¬¥¢¥í¥±¡¼¥È¤µ¤ì¤¿²ó¿ô¡¢ -¥­¥ã¥Ã¥·¥å¤ÎÂ礭¤µ¤¬³ÈÄ¥¤µ¤ì¤¿ -(¿·¤·¤¤¥Ú¡¼¥¸¤¬¤³¤Î¥­¥ã¥Ã¥·¥å¤ËÄɲ䵤줿) ²ó¿ô¡¢ -¥­¥ã¥Ã¥·¥å¤ÎÂ礭¤µ¤¬½Ì¾®¤µ¤ì¤¿ -(»È¤Ã¤Æ¤¤¤Ê¤¤¥Ú¡¼¥¸¤¬¤³¤Î¥­¥ã¥Ã¥·¥å¤«¤éºï½ü¤µ¤ì¤¿) ²ó¿ô¡¢ -¿·¤¿¤Ê¥Ú¡¼¥¸¤ò¤³¤Î¥­¥ã¥Ã¥·¥å¤Ë¥¢¥í¥±¡¼¥È¤¹¤ëºÝ¤Ëµ¯¤­¤¿¥¨¥é¡¼¤Î²ó¿ô¡¢¤Ç¤¢¤ë¡£ -slab ¥­¥ã¥Ã¥·¥åÅý·×¤¬»È¤¨¤Ê¤¤¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥«¥é¥à¤Ïɽ¼¨¤µ¤ì¤Ê¤¤¡£ +slab キャッシュ統計の機能を有効にしてコンパイルされたカーネルでは、 +出力の最初の行に "(statistics)" と表示され、 5 つのカラムが追加される。 +それぞれ、アクティブなオブジェクトの瞬間最大値、 +.\"nakano でいいのかなあ > high water mark +オブジェクトがアロケートされた回数、 +キャッシュの大きさが拡張された +(新しいページがこのキャッシュに追加された) 回数、 +キャッシュの大きさが縮小された +(使っていないページがこのキャッシュから削除された) 回数、 +新たなページをこのキャッシュにアロケートする際に起きたエラーの回数、である。 +slab キャッシュ統計が使えないカーネルでは、これらのカラムは表示されない。 -SMP ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢½ÐÎϤκǽé¤Î¹Ô¤Ë "(SMP)" ¤Èɽ¼¨¤µ¤ì¡¢ -³Æ slab ¤´¤È¤Ë 2 ¤Ä¤Î¥«¥é¥à¤¬Äɲ䵤ì¤ë¡£ -¤³¤ì¤é¤Ï³Æ CPU ¤¬»ý¤Ä¥í¡¼¥«¥ë¤Ê¥­¥ã¥Ã¥·¥å (per-CPU ¥­¥ã¥Ã¥·¥å) ¤Î -slab ¥¢¥í¥±¡¼¥·¥ç¥ó¥Ý¥ê¥·¡¼¤òɽ¼¨¤¹¤ë -(per-CPU ¥­¥ã¥Ã¥·¥å¤Ï¡¢ -¥ª¥Ö¥¸¥§¥¯¥È¤ò¥­¥ã¥Ã¥·¥å¤«¤é¥¢¥í¥±¡¼¥È¤¹¤ëºÝ¤Ë -CPU ´Ö¤Ç¤ÎƱ´ü¤ò¸º¾¯¤µ¤»¤ë¤¿¤á¤ËÀߤ±¤é¤ì¤Æ¤¤¤ë)¡£ -ºÇ½é¤Î¥«¥é¥à¤Ï per-CPU À©¸Â¡¢ -¤¹¤Ê¤ï¤Á³Æ CPU ¤´¤È¤Ë¥­¥ã¥Ã¥·¥å¤Ç¤­¤ë¥ª¥Ö¥¸¥§¥¯¥È¤ÎºÇÂç¿ô¤Ç¤¢¤ë¡£ -ÆóÈÖÌܤΥ«¥é¥à¤Ï¥Ð¥Ã¥Á¥«¥¦¥ó¥È¡¢ -¤¹¤Ê¤ï¤Á per-CPU ¥­¥ã¥Ã¥·¥å¤¬¶õ¤À¤Ã¤¿¤ê°ìÇÕ¤À¤Ã¤¿¤ê¤·¤¿¾ì¹ç¤Ë¡¢ -¥°¥í¡¼¥Ð¥ë¤Ê¥­¥ã¥Ã¥·¥å¤È¼õ¤±ÅϤ·¤Ç¤­¤ë¥Õ¥ê¡¼¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤ÎºÇÂç¿ô¤Ç¤¢¤ë¡£ +SMP システムでは、出力の最初の行に "(SMP)" と表示され、 +各 slab ごとに 2 つのカラムが追加される。 +これらは各 CPU が持つローカルなキャッシュ (per-CPU キャッシュ) の +slab アロケーションポリシーを表示する +(per-CPU キャッシュは、 +オブジェクトをキャッシュからアロケートする際に +CPU 間での同期を減少させるために設けられている)。 +最初のカラムは per-CPU 制限、 +すなわち各 CPU ごとにキャッシュできるオブジェクトの最大数である。 +二番目のカラムはバッチカウント、 +すなわち per-CPU キャッシュが空だったり一杯だったりした場合に、 +グローバルなキャッシュと受け渡しできるフリーなオブジェクトの最大数である。 -slab ¥­¥ã¥Ã¥·¥åÅý·×¤È SMP ¤¬Î¾ÊýÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ -per-CPU ¥­¥ã¥Ã¥·¥å¤ÎÅý·×¤òɽ¼¨¤¹¤ë 4 ¤Ä¤Î¥«¥é¥à¤¬¤µ¤é¤ËÄɲ䵤ì¤ë¡£ -ºÇ½é¤Î 2 ¤Ä¤Ï per-CPU ¥­¥ã¥Ã¥·¥å¤Î -¥¢¥í¥±¡¼¥·¥ç¥ó¥Ò¥Ã¥È¥«¥¦¥ó¥È¤È¥¢¥í¥±¡¼¥·¥ç¥ó¥ß¥¹¥«¥¦¥ó¥È¤Ç¤¢¤ë¡£ -¤¹¤Ê¤ï¤Á¡¢¤¢¤ë¥ª¥Ö¥¸¥§¥¯¥È¤ò¥¢¥í¥±¡¼¥È¤·¤¿¤È¤­¤Ë¡¢ -¤½¤ì¤¬ per-CPU ¥­¥ã¥Ã¥·¥å¤ÎÆâÉô¤Ë ¤¢¤Ã¤¿/¤Ê¤«¤Ã¤¿ ²ó¿ô¤Ç¤¢¤ë¡£ -³¤¯ 2 ¤Ä¤Ï¡¢per-CPU ¥­¥ã¥Ã¥·¥å¤Î¥Õ¥ê¡¼¥Ò¥Ã¥È¥«¥¦¥ó¥È¤È¥ß¥¹¥«¥¦¥ó¥È¤Ç¤¢¤ë¡£ -¤¹¤Ê¤ï¤Á²òÊü¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤ò¥°¥í¡¼¥Ð¥ë¤Ê¥­¥ã¥Ã¥·¥å¤Ë¥Õ¥é¥Ã¥·¥å¤¹¤ëÁ°¤Ë¡¢ -per-CPU ¥­¥ã¥Ã¥·¥å¤ÎÀ©¸Â¤ÎÈÏ°Ï¤Ë ¼ý¤Þ¤Ã¤¿/¼ý¤Þ¤é¤Ê¤«¤Ã¤¿ ²ó¿ô¤Ç¤¢¤ë¡£ +slab キャッシュ統計と SMP が両方有効になっている場合は、 +per-CPU キャッシュの統計を表示する 4 つのカラムがさらに追加される。 +最初の 2 つは per-CPU キャッシュの +アロケーションヒットカウントとアロケーションミスカウントである。 +すなわち、あるオブジェクトをアロケートしたときに、 +それが per-CPU キャッシュの内部に あった/なかった 回数である。 +続く 2 つは、per-CPU キャッシュのフリーヒットカウントとミスカウントである。 +すなわち解放されたオブジェクトをグローバルなキャッシュにフラッシュする前に、 +per-CPU キャッシュの制限の範囲に 収まった/収まらなかった 回数である。 -SMP ¤Ë¤ª¤¤¤Æ per-CPU slab ¥­¥ã¥Ã¥·¥å¤ÎÀ©¸ÂÃͤä -¥Ð¥Ã¥Á¥«¥¦¥ó¥È¤òÊѹ¹¤¹¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¤è¤¤: +SMP において per-CPU slab キャッシュの制限値や +バッチカウントを変更するには、以下のようにすればよい: .in +4n .nf echo "\fIcache_name limit batchcount\fP" > /proc/slabinfo .fi .in -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .I -.SH ¥Ð¡¼¥¸¥ç¥ó +.SH バージョン .I /proc/slabinfo -¤Ï Linux 2.1.23 °Ê¹ß¤Ë¸ºß¤¹¤ë¡£ -SMP ¤Ë¤ª¤±¤ë CPU ¤´¤È¤Î¥­¥ã¥Ã¥·¥å¤Ï Linux 2.4.0-test3 °Ê¹ß¤Ë¸ºß¤¹¤ë¡£ -.SH Ãí°Õ -Linux 2.6.16 °Ê¹ß¤Ç¤Ï¡¢ +は Linux 2.1.23 以降に存在する。 +SMP における CPU ごとのキャッシュは Linux 2.4.0-test3 以降に存在する。 +.SH 注意 +Linux 2.6.16 以降では、 .I /proc/slabinfo -¥Õ¥¡¥¤¥ë¤Ï¡¢¥«¡¼¥Í¥ëÀßÄꥪ¥×¥·¥ç¥ó +ファイルは、カーネル設定オプション .B CONFIG_SLAB -¤òÍ­¸ú¤Ë¤·¤¿¾ì¹ç¤Î¤ß¸ºß¤¹¤ë¡£ +を有効にした場合のみ存在する。 diff --git a/release/man5/termcap.5 b/release/man5/termcap.5 index e2da2da8..551927f8 100644 --- a/release/man5/termcap.5 +++ b/release/man5/termcap.5 @@ -35,76 +35,76 @@ .\" Proofed & Modified Thu 12 Oct 2000 .\" by NAKANO Takeo .\" -.\"WORD capability µ¡Ç½ -.\"WORD formfeed ÊÇÁ÷¤ê -.\"WORD standout ¶¯Ä´ -.\"WORD carriage return Éüµ¢ -.\"WORD new line ²þ¹Ô -.\"WORD block graphic character(s) ¿Þ·Áʸ»ú(½¸¹ç) -.\"WORD alternate character set ÂåÂØʸ»ú½¸¹ç +.\"WORD capability 機能 +.\"WORD formfeed 頁送り +.\"WORD standout 強調 +.\"WORD carriage return 復帰 +.\"WORD new line 改行 +.\"WORD block graphic character(s) 図形文字(集合) +.\"WORD alternate character set 代替文字集合 .\" .TH TERMCAP 5 1996-10-21 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -termcap \- üËöµ¡Ç½¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹ -.SH ÀâÌÀ -termcap ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ï¡¢ -ʸ»úñ°Ì¤ÇÆ°ºî¤¹¤ëüËö¤ä¥×¥ê¥ó¥¿¤Îµ¡Ç½¤òµ­½Ò¤¹¤ë¤¿¤á¤Îµì¼°¤Îµ¡¹½¤Ç¤¢¤ë¡£ -¤³¤Îµ¡¹½¤Ï¸Å¤¤¥×¥í¥°¥é¥à¤òÆ°ºî¤µ¤»¤ë¤¿¤á¤À¤±¤ËÊÝ»ý¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢ -¿·¤·¤¤¥×¥í¥°¥é¥à¤Ï +.SH 名前 +termcap \- 端末機能のデータベース +.SH 説明 +termcap データベースは、 +文字単位で動作する端末やプリンタの機能を記述するための旧式の機構である。 +この機構は古いプログラムを動作させるためだけに保持されているので、 +新しいプログラムは .BR terminfo (5) -¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¤½¤ì¤Ë´ØÏ¢¤·¤¿¥é¥¤¥Ö¥é¥ê¤òÍѤ¤¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +データベースとそれに関連したライブラリを用いるべきである。 .LP .I /etc/termcap -¤Ï¡¢Â¿¤¯¤Î°Û¤Ê¤ë¼ïÎà¤ÎüËö¤Ë´Ø¤¹¤ëµ¡Ç½¤òÎóµ­¤·¤¿¥¢¥¹¥­¡¼¥Õ¥¡¥¤¥ë -(¥Ç¡¼¥¿¥Ù¡¼¥¹¥Þ¥¹¥¿¡¼) ¤Ç¤¢¤ë¡£ -¥×¥í¥°¥é¥à¤Ï termcap ¤òÆɤ߹þ¤ó¤Ç¡¢ -¼ÂºÝ¤Ë»ÈÍѤ·¤Æ¤¤¤ëüËö¤Ë¸ÄÊ̤Υ¨¥¹¥±¡¼¥×¥³¡¼¥É·²¤ò¼èÆÀ¤¹¤ë¡£ -¤³¤ì¤òÍѤ¤¤ë¤È¡¢¤½¤ÎüËö¤Î»ë³ÐŪ¤ÊÀ­¼Á¤òÀ©¸æ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë -(üËö¤Î¾¤ÎÀ­¼Á¤Ï +は、多くの異なる種類の端末に関する機能を列記したアスキーファイル +(データベースマスター) である。 +プログラムは termcap を読み込んで、 +実際に使用している端末に個別のエスケープコード群を取得する。 +これを用いると、その端末の視覚的な性質を制御することができる +(端末の他の性質は .BR stty (1) -¤ÇÀ©¸æ¤¹¤ë)¡£ -termcap ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ï¡¢´Ä¶­ÊÑ¿ô +で制御する)。 +termcap データベースは、環境変数 .B TERM -¤ÎÃͤǰú¤«¤ì¤ë¡£ +の値で引かれる。 .LP -termcap ¤Î¥¨¥ó¥È¥ê¤Ï¡¢Ã±°ì¤ÎÏÀÍý¹Ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤¿¤À¤·¡¢¹ÔËö¤Ë \(aq\\\(aq ¤òÍѤ¤¤ì¤Ð¤½¤³¤Ç¤Î²þ¹Ô¤òÍÞÀ©¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥Õ¥£¡¼¥ë¥É¤Ï \(aq:\(aq ¤Çʬ³ä¤µ¤ì¤ë¡£ -³Æ¥¨¥ó¥È¥ê¤ÎºÇ½é¤Î¥Õ¥£¡¼¥ë¥É¤Ïº¸Â¦ÀèƬ¤«¤é»Ï¤Þ¤ê¡¢ -ÆâÍƤϤ½¤ÎüËö¤Î̾Á°¤Î¥ê¥¹¥È¤Ç¤¢¤ë¡£Ì¾Á°¤Î¶èÀÚ¤ê¤Ë¤Ï \(aq|\(aq ¤¬ÍѤ¤¤é¤ì¤ë¡£ +termcap のエントリは、単一の論理行でなければならない。 +ただし、行末に \(aq\\\(aq を用いればそこでの改行を抑制することができる。 +フィールドは \(aq:\(aq で分割される。 +各エントリの最初のフィールドは左側先頭から始まり、 +内容はその端末の名前のリストである。名前の区切りには \(aq|\(aq が用いられる。 .LP -ºÇ½é¤Î¥µ¥Ö¥Õ¥£¡¼¥ë¥É¤Ï -(4.3 °ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤ÎBSD termcap ¥¨¥ó¥È¥ê¤Ç¤Ï) -2 ʸ»ú¤«¤é¤Ê¤ëû¤¤Ì¾Á°¤È¤Ê¤Ã¤Æ¤¤¤ë¡£¤³¤Îû¤¤Ì¾Á°¤Ï -Âçʸ»ú¤â¤·¤¯¤Ï¾®Ê¸»ú¤Ç¹½À®¤µ¤ì¤ë¡£4.4BSD ¤Î termcap ¥¨¥ó¥È¥ê¤Ç¤Ï¡¢ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¾Êά¤µ¤ì¤ë¡£ +最初のサブフィールドは +(4.3 以前のバージョンのBSD termcap エントリでは) +2 文字からなる短い名前となっている。この短い名前は +大文字もしくは小文字で構成される。4.4BSD の termcap エントリでは、 +このフィールドは省略される。 .LP -2 ÈÖÌÜ (ºÇ¿·¤Î 4.4BSD ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤Ï 1 ÈÖÌÜ) ¤Î¥µ¥Ö¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¡¢ -´Ä¶­ÊÑ¿ô +2 番目 (最新の 4.4BSD フォーマットでは 1 番目) のサブフィールドには、 +環境変数 .B TERM -¤ÇÍѤ¤¤é¤ì¤ë̾¾Î¤¬Æþ¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¾®Ê¸»ú¤·¤«»È¤¨¤Ê¤¤¡£ -ÁªÂò²Äǽ¤Ê¥Ï¡¼¥É¥¦¥§¥¢µ¡Ç½¤Ï¡¢¥Ï¥¤¥Õ¥ó¤ÈÀÜÈø¸ì (suffix) -¤ò̾¾Î¤Î¸å¤ËÄɲ乤뤳¤È¤Ë¤è¤Ã¤Æ¼¨¤¹É¬Íפ¬¤¢¤ë¡£°Ê²¼¤ÎÎã¤ò¸«¤è¡£ -´·½¬Åª¤ÊÀÜÈø¸ì¤Ë¤Ï¡¢w (80 ʸ»ú°Ê¾å¤ÎÉý¤¬¤¢¤ë)¡¢ -am (automatic margins: ¼«Æ°Åª¤Ê¹Ô¤ÎÀÞ¤êÊÖ¤·)¡¢ -nam (non automatic margins: ¼«Æ°Åª¤Ç¤Ê¤¤¹Ô¤ÎÀÞ¤êÊÖ¤·)¡¢ -rv (reverse video display: ȿž¥Ó¥Ç¥ªÉ½¼¨) -¤Ê¤É¤¬¤¢¤ë¡£ -3ÈÖÌܤΥµ¥Ö¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¡¢ -¤³¤Îtermcap¥¨¥ó¥È¥ê¡¼¤ËÂФ¹¤ëŤ¤ÀâÌÀŪ¤Ê̾¾Î¤¬Æþ¤ë¡£ +で用いられる名称が入る。 +このフィールドには小文字しか使えない。 +選択可能なハードウェア機能は、ハイフンと接尾語 (suffix) +を名称の後に追加することによって示す必要がある。以下の例を見よ。 +慣習的な接尾語には、w (80 文字以上の幅がある)、 +am (automatic margins: 自動的な行の折り返し)、 +nam (non automatic margins: 自動的でない行の折り返し)、 +rv (reverse video display: 反転ビデオ表示) +などがある。 +3番目のサブフィールドには、 +このtermcapエントリーに対する長い説明的な名称が入る。 .LP -¤³¤Î¸å¤Ë³¤¯¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¡¢Ã¼Ëö¤Îµ¡Ç½¤òµ­½Ò¤¹¤ë¡£ -µ¡Ç½¤òµ­½Ò¤¹¤ë¹Ô¤¬·Ñ³¤¹¤ë¾ì¹ç¤Ï¡¢ -º¸Ã¼¤«¤é1¤Ä¤Î¥¿¥Ö¤ò¤ª¤¤¤Æ¥¤¥ó¥Ç¥ó¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +この後に続くフィールドには、端末の機能を記述する。 +機能を記述する行が継続する場合は、 +左端から1つのタブをおいてインデントしなければならない。 .LP -½ç½ø¤Ë¤Ä¤¤¤Æ¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -Âçʸ»ú¾®Ê¸»ú¤Ï¶èÊ̤»¤º¤Ë¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½ç¤Ë¤Ê¤é¤Ù¡¢ -»Ï¤á¤Ï¥Ö¡¼¥ëÃͤΡ¢¼¡¤Ï¿ôÃͤΡ¢ºÇ¸å¤Ïʸ»úÎó¤Îµ¡Ç½¤ò½ñ¤¯¤³¤È¤¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£ -Ʊ¤¸¤è¤¦¤ÊƯ¤­¤ò¤¹¤ëµ¡Ç½¤Ï 1 ¹Ô¤Ë¤Þ¤È¤á¤Æ½ñ¤¯¤ÈÎɤ¤¡£ +順序については定義されていないが、 +大文字小文字は区別せずにアルファベット順にならべ、 +始めはブール値の、次は数値の、最後は文字列の機能を書くことが推奨されている。 +同じような働きをする機能は 1 行にまとめて書くと良い。 .LP .nf -Îã: +例: .sp Head line: vt|vt101|DEC VT 101 terminal in 80 character mode:\e Head line: Vt|vt101-w|DEC VT 101 terminal in (wide) 132 character mode:\e @@ -112,385 +112,385 @@ Boolean: :bs:\e Numeric: :co#80:\e String: :sr=\eE[H:\e .fi -.SS "¥Ö¡¼¥ëÃͤǻØÄꤹ¤ëµ¡Ç½" +.SS "ブール値で指定する機能" .nf -5i ¥×¥ê¥ó¥¿¤Ï¥¹¥¯¥ê¡¼¥ó¤Ë¥¨¥³¡¼¤·¤Ê¤¤ -am ¼«Æ°¥Þ¡¼¥¸¥ó¡£¼«Æ°Åª¤Ë¹Ô¤òÀÞ¤êÊÖ¤¹ -bs ¥³¥ó¥È¥í¡¼¥ë H (¥­¡¼¥³¡¼¥É 8) ¤ò¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹¤È¤·¤Æ°·¤¦ -bw º¸Ã¼¤Ç¤Î¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹¤ò¡¢¾å¤Î¹Ô¤Î±¦Ã¼¤ËÀÞ¤êÊÖ¤¹ -da ²èÌ̤ξåü¤«¤é³°¤ì¤Æ¤¤¤¿¹Ô¤òɽ¼¨¤¹¤ë (Ä̾ï¤Ï¥Þ¥ë¥Á¥Ú¡¼¥¸Ã¼Ëö¤Ç) -db ²èÌ̤β¼Ã¼¤«¤é³°¤ì¤Æ¤¤¤¿¹Ô¤òɽ¼¨¤¹¤ë (Ä̾ï¤Ï¥Þ¥ë¥Á¥Ú¡¼¥¸Ã¼Ëö¤Ç) -eo ¶õÇòʸ»ú¤Ï¥«¡¼¥½¥ë°ÌÃÖ¤ÎÁ´¤Æ¤Îʸ»ú¤ò¾Ã¤¹ -es ¥¹¥Æ¡¼¥¿¥¹¹Ô¾å¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤äÆüìʸ»ú¤ÏÍ­¸ú¤ËƯ¤¯ -gn °ìÈÌŪ¤Ê¥Ç¥Ð¥¤¥¹¤Ç¤¢¤ë -hc ¥Ï¡¼¥É¥³¥Ô¡¼Ã¼Ëö¤Ç¤¢¤ë -HC ºÇ²¼¹Ô¤Ë¤Ê¤¤¥«¡¼¥½¥ë¤Ï¸«¤Å¤é¤¤ -hs ¥¹¥Æ¡¼¥¿¥¹¹Ô¤¬¤¢¤ë -hz ¥Á¥ë¥Àʸ»ú¤¬É½¼¨¤Ç¤­¤Ê¤¤Ã¼Ëö¤Ç¤¢¤ë (Hazeltine üËö¤Î¥Ð¥°) -in ¥Û¥ï¥¤¥È¥¹¥Ú¡¼¥¹¤òËä¤á¤ë¤Î¤Ë¡¢¥¹¥Ú¡¼¥¹¤Ç¤Ï¤Ê¤¯ NULL ¥Ð¥¤¥È¤òÁÞÆþ¤¹¤ëüËö¤Ç¤¢¤ë -km üËö¤Ë¤Ï¥á¥¿¥­¡¼¤¬¤¢¤ë -mi ÁÞÆþ¥â¡¼¥É¤Ç¤â¥«¡¼¥½¥ë°ÜÆ°¤¬¤Ç¤­¤ë -ms ¶¯Ä´/²¼Àþ¥â¡¼¥É¤Ç¤â¥«¡¼¥½¥ë°ÜÆ°¤¬¤Ç¤­¤ë -NP ¥Ñ¥Ç¥£¥ó¥°Ê¸»ú¤¬¤Ê¤¤ -NR ti ¤Ï te ¤òȿž¤·¤Ê¤¤ -nx ¥Ñ¥Ç¥£¥ó¥°¤Ç¤Ï¤Ê¤¯¡¢XON/XOFF ¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -os ½Å¤ÍÂǤÁ¤¬²Äǽ¤ÊüËö¤Ç¤¢¤ë -ul ½Å¤ÍÂǤÁ¤Ï¤Ç¤­¤Ê¤¤¤¬¡¢²¼Àþɽ¼¨¤Î¤Ç¤­¤ëüËö¤Ç¤¢¤ë -xb f1 ¤Ï¥¨¥¹¥±¡¼¥×¤òÁ÷¿®¤·¡¢f2 ¤Ï \fB^C\fP ¤òÁ÷¿®¤¹¤ë (Beehive üËö¤ÎÉÔ¶ñ¹ç) -xn ²þ¹Ô/ÀÞ¤êÊÖ¤·¤ËÉÔ¶ñ¹ç¤¬¤¢¤ë -xo üËö¤Ï xon/xoff ¥×¥í¥È¥³¥ë¤òÍѤ¤¤ë -xs ¶¯Ä´Ê¸»ú¤Î¾å¤Ë½ÐÎϤµ¤ì¤¿Ê¸»ú¤Ï¶¯Ä´Ê¸»ú¤È¤·¤Æɽ¼¨¤µ¤ì¤ë -xt Ç˲õŪ¤Ê¥¿¥Ö¤ÈÃæÅÓȾü¤Ê¶¯Ä´¥â¡¼¥É (Teleray üËö¤ÎÉÔ¶ñ¹ç) +5i プリンタはスクリーンにエコーしない +am 自動マージン。自動的に行を折り返す +bs コントロール H (キーコード 8) をバックスペースとして扱う +bw 左端でのバックスペースを、上の行の右端に折り返す +da 画面の上端から外れていた行を表示する (通常はマルチページ端末で) +db 画面の下端から外れていた行を表示する (通常はマルチページ端末で) +eo 空白文字はカーソル位置の全ての文字を消す +es ステータス行上のエスケープシーケンスや特殊文字は有効に働く +gn 一般的なデバイスである +hc ハードコピー端末である +HC 最下行にないカーソルは見づらい +hs ステータス行がある +hz チルダ文字が表示できない端末である (Hazeltine 端末のバグ) +in ホワイトスペースを埋めるのに、スペースではなく NULL バイトを挿入する端末である +km 端末にはメタキーがある +mi 挿入モードでもカーソル移動ができる +ms 強調/下線モードでもカーソル移動ができる +NP パディング文字がない +NR ti は te を反転しない +nx パディングではなく、XON/XOFF を使わなければならない +os 重ね打ちが可能な端末である +ul 重ね打ちはできないが、下線表示のできる端末である +xb f1 はエスケープを送信し、f2 は \fB^C\fP を送信する (Beehive 端末の不具合) +xn 改行/折り返しに不具合がある +xo 端末は xon/xoff プロトコルを用いる +xs 強調文字の上に出力された文字は強調文字として表示される +xt 破壊的なタブと中途半端な強調モード (Teleray 端末の不具合) .fi -.SS "¿ôÃͤǻØÄꤹ¤ëµ¡Ç½" +.SS "数値で指定する機能" .nf -co üËö¤Î¹Ô¿ô -dB ¥Ï¡¼¥É¥³¥Ô¡¼Ã¼Ëö¤Ë¤ª¤¤¤Æ¡¢¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹¤ËɬÍפÊÃÙ±ä»þ´Ö (¥ß¥êÉÃñ°Ì) -dC ¥Ï¡¼¥É¥³¥Ô¡¼Ã¼Ëö¤Ë¤ª¤¤¤Æ¡¢Éüµ¢¤ËɬÍפÊÃÙ±ä»þ´Ö (¥ß¥êÉÃñ°Ì) -dF ¥Ï¡¼¥É¥³¥Ô¡¼Ã¼Ëö¤Ë¤ª¤¤¤Æ¡¢ÊÇÁ÷¤ê¤ËɬÍפÊÃÙ±ä»þ´Ö (¥ß¥êÉÃñ°Ì) -dN ¥Ï¡¼¥É¥³¥Ô¡¼Ã¼Ëö¤Ë¤ª¤¤¤Æ¡¢²þ¹Ô¤ËɬÍפÊÃÙ±ä»þ´Ö (¥ß¥êÉÃñ°Ì) -dT ¥Ï¡¼¥É¥³¥Ô¡¼Ã¼Ëö¤Ë¤ª¤¤¤Æ¡¢¥¿¥Ö¥¹¥È¥Ã¥×¤ËɬÍפÊÃÙ±ä»þ´Ö (¥ß¥êÉÃñ°Ì) -dV ¥Ï¡¼¥É¥³¥Ô¡¼Ã¼Ëö¤Ë¤ª¤¤¤Æ¡¢¿âľ¥¿¥Ö¤ËɬÍפÊÃÙ±ä»þ´Ö (¥ß¥êÉÃñ°Ì) -it ¥¿¥Ö°ÌÃÖ´Ö¤Îʸ»ú¿ô -lh ¥½¥Õ¥È¥é¥Ù¥ë¤Î¹â¤µ -lm ²èÌÌ¥á¥â¥ê¤Ë¼ýÍƤǤ­¤ë¹Ô¿ô -lw ¥½¥Õ¥È¥é¥Ù¥ë¤ÎÉý -li ¹Ô¿ô -Nl ¥½¥Õ¥È¥é¥Ù¥ë¤Î¿ô -pb ¥Ñ¥Ç¥£¥ó¥°¤¬É¬ÍפȤʤëºÇÄã¤Î¥Ü¡¼¥ì¡¼¥È -sg ¶¯Ä´É½¼¨¤ÎÉÔ¶ñ¹ç (¶¯Ä´É½¼¨¤ËÀÚÂؤ¨¤¿¤È¤­¤Ëɽ¼¨¤µ¤ì¤ë¥¹¥Ú¡¼¥¹¤Î¿ô) -ug ²¼Àþɽ¼¨¤ÎÉÔ¶ñ¹ç (¶¯Ä´É½¼¨¤ËÀÚÂؤ¨¤¿¤È¤­¤Ëɽ¼¨¤µ¤ì¤ë¥¹¥Ú¡¼¥¹¤Î¿ô) -vt ²¾ÁÛüËöÈÖ¹æ -ws ¥¹¥Æ¡¼¥¿¥¹¹Ô¤ÎÉý (²èÌÌÉý¤È°Û¤Ê¤ë¾ì¹ç) +co 端末の行数 +dB ハードコピー端末において、バックスペースに必要な遅延時間 (ミリ秒単位) +dC ハードコピー端末において、復帰に必要な遅延時間 (ミリ秒単位) +dF ハードコピー端末において、頁送りに必要な遅延時間 (ミリ秒単位) +dN ハードコピー端末において、改行に必要な遅延時間 (ミリ秒単位) +dT ハードコピー端末において、タブストップに必要な遅延時間 (ミリ秒単位) +dV ハードコピー端末において、垂直タブに必要な遅延時間 (ミリ秒単位) +it タブ位置間の文字数 +lh ソフトラベルの高さ +lm 画面メモリに収容できる行数 +lw ソフトラベルの幅 +li 行数 +Nl ソフトラベルの数 +pb パディングが必要となる最低のボーレート +sg 強調表示の不具合 (強調表示に切替えたときに表示されるスペースの数) +ug 下線表示の不具合 (強調表示に切替えたときに表示されるスペースの数) +vt 仮想端末番号 +ws ステータス行の幅 (画面幅と異なる場合) .fi -.SS "ʸ»úÎó¤Ç»ØÄꤹ¤ëµ¡Ç½" +.SS "文字列で指定する機能" .nf -!1 ¥·¥Õ¥È¾õÂ֤Πsave ¥­¡¼ -!2 ¥·¥Õ¥È¾õÂ֤Πsuspend ¥­¡¼ -!3 ¥·¥Õ¥È¾õÂ֤Πundo ¥­¡¼ -#1 ¥·¥Õ¥È¾õÂ֤Πhelp ¥­¡¼ -#2 ¥·¥Õ¥È¾õÂ֤Πhome ¥­¡¼ -#3 ¥·¥Õ¥È¾õÂ֤Πinput ¥­¡¼ -#4 ¥·¥Õ¥È¾õÂ֤κ¸¥«¡¼¥½¥ë¥­¡¼ -%0 redo ¥­¡¼ -%1 help ¥­¡¼ -%2 mark¥­¡¼ -%3 message ¥­¡¼ -%4 move ¥­¡¼ -%5 next-object ¥­¡¼ -%6 open ¥­¡¼ -%7 options ¥­¡¼ -%8 previous-object ¥­¡¼ -%9 print ¥­¡¼ -%a ¥·¥Õ¥È¾õÂ֤Πmessage ¥­¡¼ -%b ¥·¥Õ¥È¾õÂ֤Πmove ¥­¡¼ -%c ¥·¥Õ¥È¾õÂ֤Πnext ¥­¡¼ -%d ¥·¥Õ¥È¾õÂ֤Πoptions ¥­¡¼ -%e ¥·¥Õ¥È¾õÂ֤Πprevious ¥­¡¼ -%f ¥·¥Õ¥È¾õÂ֤Πprint ¥­¡¼ -%g ¥·¥Õ¥È¾õÂ֤Πredo ¥­¡¼ -%h ¥·¥Õ¥È¾õÂ֤Πreplace ¥­¡¼ -%i ¥·¥Õ¥È¾õÂ֤ᦥ«¡¼¥½¥ë¥­¡¼ -%j ¥·¥Õ¥È¾õÂ֤Πresume ¥­¡¼ -&0 ¥·¥Õ¥È¾õÂ֤Πcancel ¥­¡¼ -&1 reference ¥­¡¼ -&2 refresh ¥­¡¼ -&3 replace ¥­¡¼ -&4 restart ¥­¡¼ -&5 resume ¥­¡¼ -&6 save ¥­¡¼ -&7 suspend ¥­¡¼ -&8 undo ¥­¡¼ -&9 ¥·¥Õ¥È¾õÂ֤Πbegin ¥­¡¼ -*0 ¥·¥Õ¥È¾õÂ֤Πfind ¥­¡¼ -*1 ¥·¥Õ¥È¾õÂ֤Πcommand ¥­¡¼ -*2 ¥·¥Õ¥È¾õÂ֤Πcopy ¥­¡¼ -*3 ¥·¥Õ¥È¾õÂ֤Πcreate ¥­¡¼ -*4 ¥·¥Õ¥È¾õÂ֤Πdelete ¥­¡¼ -*5 ¥·¥Õ¥È¾õÂ֤Πdelete line ¥­¡¼ -*6 select ¥­¡¼ -*7 ¥·¥Õ¥È¾õÂ֤Πend ¥­¡¼ -*8 ¥·¥Õ¥È¾õÂ֤Πclear line ¥­¡¼ -*9 ¥·¥Õ¥È¾õÂ֤Πexit ¥­¡¼ -@0 find ¥­¡¼ -@1 begin ¥­¡¼ -@2 cancel ¥­¡¼ -@3 close ¥­¡¼ -@4 command ¥­¡¼ -@5 copy ¥­¡¼ -@6 create ¥­¡¼ -@7 end ¥­¡¼ -@8 enter/send ¥­¡¼ -@9 exit ¥­¡¼ -al 1 ¹ÔÁÞÆþ¤¹¤ë -AL %1 ¹ÔÁÞÆþ¤¹¤ë -ac ¿Þ·Áʸ»ú¤Î¥Ú¥¢¤Î½¸¹ç¡£ÂåÂØʸ»ú¥»¥Ã¥È¤Ë¥Þ¥Ã¥×¤¹¤ë¤¿¤á¤Î¤â¤Î -ae ÂåÂØʸ»ú¥»¥Ã¥È¤Î½ª¤ê -as ¿Þ·Áʸ»ú½¸¹ç¤ËÂФ¹¤ë¡¢ÂåÂØʸ»ú¥»¥Ã¥È¤Î³«»Ï -bc \fB^H\fP ¤¬¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹¤Ç¤Ê¤¤¾ì¹ç¤Î¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹ -bl (²»À¼¤Î) ¥Ù¥ë¤òÌĤ餹 -bt Á°¤Î¥¿¥Ö¥¹¥È¥Ã¥×¤Ø°ÜÆ° -cb ¹ÔƬ¤«¤é¥«¡¼¥½¥ë°ÌÃ֤ޤǤΥ¯¥ê¥¢ -cc ¥À¥ß¡¼¥³¥Þ¥ó¥Éʸ»ú -cd ²èÌ̤κǸå¤Þ¤Ç¤ò¥¯¥ê¥¢ -ce ¹Ô¤ÎºÇ¸å¤Þ¤Ç¤ò¥¯¥ê¥¢ -ch ¥«¡¼¥½¥ë¤ò¿åÊ¿Êý¸þ¤Ë¤À¤±°ÜÆ°¤·¡¢ %1 ·å¤Î°ÌÃ֤ˤ¹¤ë -cl ²èÌ̤ò¾Ãµî¤·¡¢¥«¡¼¥½¥ë¤ò¥Û¡¼¥à¥Ý¥¸¥·¥ç¥ó¤Ø -cm ²èÌ̾å¤Î %1 ¹Ô¡¢ %2 ·å¤Ø¥«¡¼¥½¥ë¤ò°ÜÆ° -CM ¥á¥â¥ê¾å¤Î %1 ¹Ô¡¢ %2 ·å¤Ø¥«¡¼¥½¥ë¤ò°ÜÆ° -cr Éüµ¢ -cs %1 ¹ÔÌܤ«¤é %2 ¹ÔÌܤޤǤÎÈϰϤò¥¹¥¯¥í¡¼¥ë¤¹¤ë -ct ¥¿¥Ö¤Î¾Ãµî -cv ¥«¡¼¥½¥ë¤ò¿âľÊý¸þ¤Ë¤À¤±°ÜÆ°¤·¡¢ %1 ¹Ô¤Î°ÌÃ֤ˤ¹¤ë -dc °ìʸ»úºï½ü¤¹¤ë -DC %1 ʸ»úºï½ü¤¹¤ë -dl °ì¹Ôºï½ü¤¹¤ë -DL %1 ¹Ôºï½ü¤¹¤ë -dm delete ¥â¡¼¥É³«»Ï -do ¥«¡¼¥½¥ë¤ò°ì¹Ô²¼¤²¤ë -DO ¥«¡¼¥½¥ë¤ò #1 ¹Ô²¼¤²¤ë -ds ¥¹¥Æ¡¼¥¿¥¹¹Ô¤ò̵¸ú¤Ë¤¹¤ë -eA ÂåÂØʸ»ú½¸¹ç¤òÍ­¸ú¤Ë¤¹¤ë -ec ¥«¡¼¥½¥ë°ÌÃÖ¤«¤é %1 ʸ»ú¾Ãµî¤¹¤ë -ed delete ¥â¡¼¥É½ªÎ» -ei intert ¥â¡¼¥É½ªÎ» -ff ¥Ï¡¼¥É¥³¥Ô¡¼Ã¼Ëö¤Ç¤ÎÊÇÁ÷¤êʸ»ú -fs ¥¹¥Æ¡¼¥¿¥¹¹Ô¤Ë°ÜÆ°¤¹¤ëÁ°¤Î°ÌÃÖ¤ØÉüµ¢¤¹¤ëʸ»ú -F1 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ f11 ¤¬Á÷½Ð¤¹¤ëʸ»úÎó -F2 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ f12 ¤¬Á÷½Ð¤¹¤ëʸ»úÎó -F3 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ f13 ¤¬Á÷½Ð¤¹¤ëʸ»úÎó +!1 シフト状態の save キー +!2 シフト状態の suspend キー +!3 シフト状態の undo キー +#1 シフト状態の help キー +#2 シフト状態の home キー +#3 シフト状態の input キー +#4 シフト状態の左カーソルキー +%0 redo キー +%1 help キー +%2 markキー +%3 message キー +%4 move キー +%5 next-object キー +%6 open キー +%7 options キー +%8 previous-object キー +%9 print キー +%a シフト状態の message キー +%b シフト状態の move キー +%c シフト状態の next キー +%d シフト状態の options キー +%e シフト状態の previous キー +%f シフト状態の print キー +%g シフト状態の redo キー +%h シフト状態の replace キー +%i シフト状態の右カーソルキー +%j シフト状態の resume キー +&0 シフト状態の cancel キー +&1 reference キー +&2 refresh キー +&3 replace キー +&4 restart キー +&5 resume キー +&6 save キー +&7 suspend キー +&8 undo キー +&9 シフト状態の begin キー +*0 シフト状態の find キー +*1 シフト状態の command キー +*2 シフト状態の copy キー +*3 シフト状態の create キー +*4 シフト状態の delete キー +*5 シフト状態の delete line キー +*6 select キー +*7 シフト状態の end キー +*8 シフト状態の clear line キー +*9 シフト状態の exit キー +@0 find キー +@1 begin キー +@2 cancel キー +@3 close キー +@4 command キー +@5 copy キー +@6 create キー +@7 end キー +@8 enter/send キー +@9 exit キー +al 1 行挿入する +AL %1 行挿入する +ac 図形文字のペアの集合。代替文字セットにマップするためのもの +ae 代替文字セットの終り +as 図形文字集合に対する、代替文字セットの開始 +bc \fB^H\fP がバックスペースでない場合のバックスペース +bl (音声の) ベルを鳴らす +bt 前のタブストップへ移動 +cb 行頭からカーソル位置までのクリア +cc ダミーコマンド文字 +cd 画面の最後までをクリア +ce 行の最後までをクリア +ch カーソルを水平方向にだけ移動し、 %1 桁の位置にする +cl 画面を消去し、カーソルをホームポジションへ +cm 画面上の %1 行、 %2 桁へカーソルを移動 +CM メモリ上の %1 行、 %2 桁へカーソルを移動 +cr 復帰 +cs %1 行目から %2 行目までの範囲をスクロールする +ct タブの消去 +cv カーソルを垂直方向にだけ移動し、 %1 行の位置にする +dc 一文字削除する +DC %1 文字削除する +dl 一行削除する +DL %1 行削除する +dm delete モード開始 +do カーソルを一行下げる +DO カーソルを #1 行下げる +ds ステータス行を無効にする +eA 代替文字集合を有効にする +ec カーソル位置から %1 文字消去する +ed delete モード終了 +ei intert モード終了 +ff ハードコピー端末での頁送り文字 +fs ステータス行に移動する前の位置へ復帰する文字 +F1 ファンクションキー f11 が送出する文字列 +F2 ファンクションキー f12 が送出する文字列 +F3 ファンクションキー f13 が送出する文字列 \&... \&... -F9 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ f19 ¤¬Á÷½Ð¤¹¤ëʸ»úÎó -FA ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ f20 ¤¬Á÷½Ð¤¹¤ëʸ»úÎó -FB ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ f21 ¤¬Á÷½Ð¤¹¤ëʸ»úÎó +F9 ファンクションキー f19 が送出する文字列 +FA ファンクションキー f20 が送出する文字列 +FB ファンクションキー f21 が送出する文字列 \&... \&... -FZ ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ f45 ¤¬Á÷½Ð¤¹¤ëʸ»úÎó -Fa ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ f46 ¤¬Á÷½Ð¤¹¤ëʸ»úÎó -Fb ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ f47 ¤¬Á÷½Ð¤¹¤ëʸ»úÎó +FZ ファンクションキー f45 が送出する文字列 +Fa ファンクションキー f46 が送出する文字列 +Fb ファンクションキー f47 が送出する文字列 \&... \&... -Fr ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ f63 ¤¬Á÷½Ð¤¹¤ëʸ»úÎó -hd ¥«¡¼¥½¥ë¤ò°ì¹Ô¤ÎȾʬ¤À¤±²¼¤Ë°ÜÆ° -ho ¥«¡¼¥½¥ë¤ò¥Û¡¼¥à¥Ý¥¸¥·¥ç¥ó¤Ë°ÜÆ° -hu ¥«¡¼¥½¥ë¤ò°ì¹Ô¤ÎȾʬ¤À¤±¾å¤Ë°ÜÆ° -i1 ¥í¥°¥¤¥ó»þ¤Î½é´ü²½Ê¸»úÎó 1 -i3 ¥í¥°¥¤¥ó»þ¤Î½é´ü²½Ê¸»úÎó 3 -is ¥í¥°¥¤¥ó»þ¤Î½é´ü²½Ê¸»úÎó 2 -ic °ìʸ»úÁÞÆþ -IC %1 ʸ»úÁÞÆþ -if ½é´ü²½¥Õ¥¡¥¤¥ë -im insert ¥â¡¼¥É³«»Ï -ip ÁÞÆþ¸å¤Î¥Ñ¥Ç¥£¥ó¥°¤ËɬÍפʻþ´Ö¤ÈÆüìʸ»ú -iP ½é´ü²½¥×¥í¥°¥é¥à -K1 ¥­¡¼¥Ñ¥Ã¥É¤Îº¸¾å¥­¡¼ -K2 ¥­¡¼¥Ñ¥Ã¥É¤ÎÃæ±û¥­¡¼ -K3 ¥­¡¼¥Ñ¥Ã¥É¤Î±¦¾å¥­¡¼ -K4 ¥­¡¼¥Ñ¥Ã¥É¤Îº¸²¼¥­¡¼ -K5 ¥­¡¼¥Ñ¥Ã¥É¤Î±¦²¼¥­¡¼ -k0 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ 0 -k1 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ 1 -k2 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ 2 -k3 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ 3 -k4 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ 4 -k5 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ 5 -k6 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ 6 -k7 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ 7 -k8 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ 8 -k9 ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ 9 -k; ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼ 10 -ka clea all tabs ¥­¡¼ -kA insert line ¥­¡¼ -kb ¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹¥­¡¼ -kB back tab ¥­¡¼ -kC clear screen ¥­¡¼ -kd ²¼¥«¡¼¥½¥ë¥­¡¼ -kD ¥«¡¼¥½¥ë°ÌÃÖ¤Îʸ»ú¤ò¾Ã¤¹¥­¡¼ -ke ¥­¡¼¥Ñ¥Ã¥É¤ò¥ª¥Õ¤Ë¤¹¤ë -kE ¹ÔËö¤Þ¤Ç¤ò¥¯¥ê¥¢¤¹¤ë¥­¡¼ -kF Á°Êý¸þ/²¼Êý¸þ¤Ø¥¹¥¯¥í¡¼¥ë¤¹¤ë¥­¡¼ -kh home ¥­¡¼ -kH cursor hown down ¥­¡¼ -kI ʸ»úÁÞÆþ¥­¡¼/insert ¥â¡¼¥É¥­¡¼ -kl º¸¥«¡¼¥½¥ë¥­¡¼ -kL ¹Ô¤òºï½ü¤¹¤ë¥­¡¼ -kM insert ¥â¡¼¥É¤ò½ªÎ»¤¹¤ë¥­¡¼ -kN ¼¡¤Î¥Ú¡¼¥¸¤Ø°ÜÆ°¤¹¤ë¥­¡¼ -kP Á°¤Î¥Ú¡¼¥¸¤Ø°ÜÆ°¤¹¤ë¥­¡¼ -kr ±¦¥«¡¼¥½¥ë¥­¡¼ -kR ¸å¤íÊý¸þ/¾åÊý¸þ¤Ë¥¹¥¯¥í¡¼¥ë¤¹¤ë¥­¡¼ -ke ¥­¡¼¥Ñ¥Ã¥É¤ò¥ª¥ó¤Ë¤¹¤ë -kS ²èÌ̺Ǹå¤Þ¤Ç¤ò¥¯¥ê¥¢¤¹¤ë¥­¡¼ -kt ¥¿¥Ö¥¯¥ê¥¢¥­¡¼ -kT ¥¿¥Ö¥¹¥È¥Ã¥×ÀßÄꥭ¡¼ -ku ¾å¥«¡¼¥½¥ë¥­¡¼ -l0 0 ÈÖÌܤΥե¡¥ó¥¯¥·¥ç¥ó¥­¡¼¤Î¥é¥Ù¥ë (f0 ¤Ç¤Ê¤¤¾ì¹ç) -l1 1 ÈÖÌܤΥե¡¥ó¥¯¥·¥ç¥ó¥­¡¼¤Î¥é¥Ù¥ë (f1 ¤Ç¤Ê¤¤¾ì¹ç) -l2 2 ÈÖÌܤΥե¡¥ó¥¯¥·¥ç¥ó¥­¡¼¤Î¥é¥Ù¥ë (f2 ¤Ç¤Ê¤¤¾ì¹ç) +Fr ファンクションキー f63 が送出する文字列 +hd カーソルを一行の半分だけ下に移動 +ho カーソルをホームポジションに移動 +hu カーソルを一行の半分だけ上に移動 +i1 ログイン時の初期化文字列 1 +i3 ログイン時の初期化文字列 3 +is ログイン時の初期化文字列 2 +ic 一文字挿入 +IC %1 文字挿入 +if 初期化ファイル +im insert モード開始 +ip 挿入後のパディングに必要な時間と特殊文字 +iP 初期化プログラム +K1 キーパッドの左上キー +K2 キーパッドの中央キー +K3 キーパッドの右上キー +K4 キーパッドの左下キー +K5 キーパッドの右下キー +k0 ファンクションキー 0 +k1 ファンクションキー 1 +k2 ファンクションキー 2 +k3 ファンクションキー 3 +k4 ファンクションキー 4 +k5 ファンクションキー 5 +k6 ファンクションキー 6 +k7 ファンクションキー 7 +k8 ファンクションキー 8 +k9 ファンクションキー 9 +k; ファンクションキー 10 +ka clea all tabs キー +kA insert line キー +kb バックスペースキー +kB back tab キー +kC clear screen キー +kd 下カーソルキー +kD カーソル位置の文字を消すキー +ke キーパッドをオフにする +kE 行末までをクリアするキー +kF 前方向/下方向へスクロールするキー +kh home キー +kH cursor hown down キー +kI 文字挿入キー/insert モードキー +kl 左カーソルキー +kL 行を削除するキー +kM insert モードを終了するキー +kN 次のページへ移動するキー +kP 前のページへ移動するキー +kr 右カーソルキー +kR 後ろ方向/上方向にスクロールするキー +ke キーパッドをオンにする +kS 画面最後までをクリアするキー +kt タブクリアキー +kT タブストップ設定キー +ku 上カーソルキー +l0 0 番目のファンクションキーのラベル (f0 でない場合) +l1 1 番目のファンクションキーのラベル (f1 でない場合) +l2 2 番目のファンクションキーのラベル (f2 でない場合) \&... \&... -la 10 ÈÖÌܤΥե¡¥ó¥¯¥·¥ç¥ó¥­¡¼¤Î¥é¥Ù¥ë (f10 ¤Ç¤Ê¤¤¾ì¹ç) -le ¥«¡¼¥½¥ë¤òº¸¤Ø°ìʸ»úʬ°ÜÆ°¤¹¤ë -ll ¥«¡¼¥½¥ë¤òº¸²¼¶ù¤Ë°ÜÆ°¤¹¤ë -LE ¥«¡¼¥½¥ë¤òº¸ %1 ʸ»úʬ°ÜÆ°¤¹¤ë -LF ¥½¥Õ¥È¥é¥Ù¥ë¤ò¥ª¥Õ¤Ë¤¹¤ë -LO ¥½¥Õ¥È¥é¥Ù¥ë¤ò¥ª¥ó¤Ë¤¹¤ë -mb ÅÀÌdz«»Ï -MC ¥½¥Õ¥È¥Þ¡¼¥¸¥ó¤ò¥¯¥ê¥¢ -md bold ¥â¡¼¥É³«»Ï -me so, us, mb, md, mr ¤Ê¤É¤Î¥â¡¼¥ÉÁ´¤Æ¤ò½ªÎ»¤¹¤ë -mh Ⱦµ±Å٥⡼¥É³«»Ï -mk ¥À¡¼¥¯¥â¡¼¥É (ʸ»ú¤Ï¸«¤¨¤Ê¤¯¤Ê¤ë) -ML º¸Â¦¤Î¥½¥Õ¥È¥Þ¡¼¥¸¥ó¤òÀßÄê -mm üËö¤ò¥á¥¿¥â¡¼¥É¤ËÀßÄꤹ¤ë -mo üËö¤ò¥á¥¿¥â¡¼¥É¤Ç¤Ê¤¯¤¹¤ë -mp °À­Êݸî¥â¡¼¥É¤ò¥ª¥ó¤Ë¤¹¤ë -mr ȿž¥â¡¼¥É³«»Ï -MR ±¦Ã¼¤Î¥½¥Õ¥È¥Þ¡¼¥¸¥ó¤òÀßÄê -nd ¥«¡¼¥½¥ë¤ò±¦¤Ë°ìʸ»úʬ°ÜÆ° -nw Éüµ¢¥³¥Þ¥ó¥É -pc ¥Ñ¥Ç¥£¥ó¥°Ê¸»ú -pf ¥×¥ê¥ó¥¿¤ò¥ª¥Õ¤Ë¤¹¤ë -pk ¥æ¡¼¥¶¤¬ÆþÎϤ·¤¿¤È¤­¤Ëʸ»úÎó %2 ¤òÁ÷½Ð¤¹¤ë¥×¥í¥°¥é¥à¥­¡¼ %1 -pl ¥í¡¼¥«¥ë¥â¡¼¥É¤Çʸ»úÎó %2 ¤ò¼Â¹Ô¤¹¤ë¥×¥í¥°¥é¥à¥­¡¼ %1 -pn ʸ»úÎó %2 ¤òɽ¼¨¤¹¤ë¤¿¤á¤Î¥×¥í¥°¥é¥à¥½¥Õ¥È¥é¥Ù¥ë %1 -po ¥×¥ê¥ó¥¿¤ò¥ª¥ó¤Ë¤¹¤ë -pO %1 (<256) ¥Ð¥¤¥È¤Î´Ö¥×¥ê¥ó¥¿¤ò¥ª¥ó¤Ë¤¹¤ë -ps ²èÌ̾å¤ÎÆâÍƤò¥×¥ê¥ó¥¿¤Ë°õºþ¤¹¤ë -px ʸ»úÎó %2 ¤ò¥³¥ó¥Ô¥å¡¼¥¿¤ËÁ÷½Ð¤¹¤ë¥×¥í¥°¥é¥à¥­¡¼ %1 -r1 üËö¤òÀµ¾ï¤Ê¥â¡¼¥É¤ËÀßÄꤹ¤ë¥ê¥»¥Ã¥Èʸ»úÎó 1 -r2 üËö¤òÀµ¾ï¤Ê¥â¡¼¥É¤ËÀßÄꤹ¤ë¥ê¥»¥Ã¥Èʸ»úÎó 2 -r3 üËö¤òÀµ¾ï¤Ê¥â¡¼¥É¤ËÀßÄꤹ¤ë¥ê¥»¥Ã¥Èʸ»úÎó 3 -RA ¼«Æ°ÀÞ¤êÊÖ¤·¤ò̵¸ú¤Ë¤¹¤ë -rc Êݸ¤·¤Æ¤ª¤¤¤¿¥«¡¼¥½¥ë°ÌÃÖ¤ËÉüµ¢¤¹¤ë -rf ¥ê¥»¥Ã¥Èʸ»úÎó¤ÎÆþ¤Ã¤¿¥Õ¥¡¥¤¥ë̾ -RF üËö¤«¤é¤ÎÆþÎÏÍ×µá -RI ¥«¡¼¥½¥ë¤ò±¦¤Ø %1 ʸ»úʬ°ÜÆ°¤¹¤ë -rp ʸ»ú %1 ¤ò %2 ²óʬ·«¤êÊÖ¤¹ -rP ÃÖ´¹¥â¡¼¥É¤Ë¤ª¤¤¤Æ¡¢Ê¸»ú¤òÁ÷½Ð¤·¤¿¸å¤Ë¹Ô¤¦¥Ñ¥Ç¥£¥ó¥° -rs ¥ê¥»¥Ã¥Èʸ»úÎó -RX XON/XOFF ¥Õ¥í¡¼À©¸æ¤ò¥ª¥Õ¤Ë¤¹¤ë -sa °À­ %1 %2 %3 %4 %5 %6 %7 %8 %9 ¤òÀßÄê -SA ¼«Æ°ÀÞ¤êÊÖ¤·¤òÍ­¸ú¤Ë¤¹¤ë -sc ¥«¡¼¥½¥ë°ÌÃÖ¤òÊݸ¤¹¤ë -se ¶¯Ä´¥â¡¼¥É½ªÎ» -sf ½çÊý¸þ¤Î 1 ¹Ô¥¹¥¯¥í¡¼¥ë -SF ½çÊý¸þ¤Î %1 ¹Ô¥¹¥¯¥í¡¼¥ë -so ¶¯Ä´¥â¡¼¥É³«»Ï -sr µÕ¥¹¥¯¥í¡¼¥ë -SR %1 ¹ÔʬµÕ¥¹¥¯¥í¡¼¥ë¤¹¤ë -st Á´¤Æ¤Î¹Ô¤Ë¤ª¤¤¤Æ¡¢¸½ºß¤Î·å°ÌÃÖ¤ò¥¿¥Ö¥¹¥È¥Ã¥×¤ËÀßÄꤹ¤ë -SX XON/XOFF ¥Õ¥í¡¼À©¸æ¤ò¥ª¥ó¤Ë¤¹¤ë -ta ¼¡¤Î¥Ï¡¼¥É¥¦¥§¥¢¥¿¥Ö°ÌÃ֤ذÜÆ° -tc ¾¤Î¥¨¥ó¥È¥ê¤«¤éüËö¤ÎÀâÌÀ¤òÆɤà¹þ¤à -te ¥«¡¼¥½¥ë°ÜÆ°¤òÍѤ¤¤ë¥×¥í¥°¥é¥à¤Î½ªÎ» -ti ¥«¡¼¥½¥ë°ÜÆ°¤òÍѤ¤¤ë¥×¥í¥°¥é¥à¤Î³«»Ï -ts ¥¹¥Æ¡¼¥¿¥¹¹Ô¤Î¥«¡¼¥½¥ë¤ò %1 ·å¤Ø°ÜÆ° -uc ¥«¡¼¥½¥ë°ÌÃÖ¤Îʸ»ú¤Ë²¼Àþ¤ò¤Ä¤±¡¢±¦¤Ë¥«¡¼¥½¥ë¤ò°ÜÆ° -ue ²¼Àþ¥â¡¼¥É½ªÎ» -up ¥«¡¼¥½¥ë¤ò 1 ¹Ôʬ¾å¤Ë°ÜÆ° -UP ¥«¡¼¥½¥ë¤ò %1 ¹Ôʬ¾å¤Ë°ÜÆ° -us ²¼Àþ¥â¡¼¥É³«»Ï -vb ¥Ó¥¸¥å¥¢¥ë¥Ù¥ë -ve ¥«¡¼¥½¥ë¤òÄ̾ï¤ÎÌÀ¤ë¤µ¤Ë¤¹¤ë -vi ¥«¡¼¥½¥ë¤ò¸«¤¨¤Ê¤¯¤¹¤ë -vs ¶¯Ä´¥«¡¼¥½¥ë -wi ¥¦¥£¥ó¥É¥¦Îΰè¤ò %1¡Á%2 ¹Ô¡¢%3¡Á%4 ·å¤ËÀßÄê -XF XOFF À©¸æʸ»ú (\fB^S\fP ¤Ç¤Ê¤¤¾ì¹ç) +la 10 番目のファンクションキーのラベル (f10 でない場合) +le カーソルを左へ一文字分移動する +ll カーソルを左下隅に移動する +LE カーソルを左 %1 文字分移動する +LF ソフトラベルをオフにする +LO ソフトラベルをオンにする +mb 点滅開始 +MC ソフトマージンをクリア +md bold モード開始 +me so, us, mb, md, mr などのモード全てを終了する +mh 半輝度モード開始 +mk ダークモード (文字は見えなくなる) +ML 左側のソフトマージンを設定 +mm 端末をメタモードに設定する +mo 端末をメタモードでなくする +mp 属性保護モードをオンにする +mr 反転モード開始 +MR 右端のソフトマージンを設定 +nd カーソルを右に一文字分移動 +nw 復帰コマンド +pc パディング文字 +pf プリンタをオフにする +pk ユーザが入力したときに文字列 %2 を送出するプログラムキー %1 +pl ローカルモードで文字列 %2 を実行するプログラムキー %1 +pn 文字列 %2 を表示するためのプログラムソフトラベル %1 +po プリンタをオンにする +pO %1 (<256) バイトの間プリンタをオンにする +ps 画面上の内容をプリンタに印刷する +px 文字列 %2 をコンピュータに送出するプログラムキー %1 +r1 端末を正常なモードに設定するリセット文字列 1 +r2 端末を正常なモードに設定するリセット文字列 2 +r3 端末を正常なモードに設定するリセット文字列 3 +RA 自動折り返しを無効にする +rc 保存しておいたカーソル位置に復帰する +rf リセット文字列の入ったファイル名 +RF 端末からの入力要求 +RI カーソルを右へ %1 文字分移動する +rp 文字 %1 を %2 回分繰り返す +rP 置換モードにおいて、文字を送出した後に行うパディング +rs リセット文字列 +RX XON/XOFF フロー制御をオフにする +sa 属性 %1 %2 %3 %4 %5 %6 %7 %8 %9 を設定 +SA 自動折り返しを有効にする +sc カーソル位置を保存する +se 強調モード終了 +sf 順方向の 1 行スクロール +SF 順方向の %1 行スクロール +so 強調モード開始 +sr 逆スクロール +SR %1 行分逆スクロールする +st 全ての行において、現在の桁位置をタブストップに設定する +SX XON/XOFF フロー制御をオンにする +ta 次のハードウェアタブ位置へ移動 +tc 他のエントリから端末の説明を読む込む +te カーソル移動を用いるプログラムの終了 +ti カーソル移動を用いるプログラムの開始 +ts ステータス行のカーソルを %1 桁へ移動 +uc カーソル位置の文字に下線をつけ、右にカーソルを移動 +ue 下線モード終了 +up カーソルを 1 行分上に移動 +UP カーソルを %1 行分上に移動 +us 下線モード開始 +vb ビジュアルベル +ve カーソルを通常の明るさにする +vi カーソルを見えなくする +vs 強調カーソル +wi ウィンドウ領域を %1〜%2 行、%3〜%4 桁に設定 +XF XOFF 制御文字 (\fB^S\fP でない場合) .fi .LP -ʸ»úÎóµ¡Ç½¤ÎÀ©¸æ¥³¡¼¥É¤òÄêµÁ¤¹¤ë¤Ë¤Ï¡¢¤¤¤¯¤Ä¤«¤ÎÊýË¡¤¬¤¢¤ë¡£ +文字列機能の制御コードを定義するには、いくつかの方法がある。 .LP -\&\(aq^\(aq, \(aq\e\(aq, \(aq%\(aq ¤ò½ü¤¯Á´¤Æ¤ÎÄ̾ï¤Îʸ»ú¤Ï¡¢¤½¤ì¼«¿È¤òɽ¤¹¡£ +\&\(aq^\(aq, \(aq\e\(aq, \(aq%\(aq を除く全ての通常の文字は、それ自身を表す。 .LP -\fB^x\fP ¤Ï Control-x ¤ò°ÕÌ£¤¹¤ë¡£ Control-A ¤Ï 10 ¿Ê¿ô¤Î 1 ¤ËÅù¤·¤¤¡£ +\fB^x\fP は Control-x を意味する。 Control-A は 10 進数の 1 に等しい。 .\"NAKANO: 1 decimal? .LP -\&\ex ¤ÏÆü쥳¡¼¥É¤È¤·¤Æ°·¤ï¤ì¤ë¡£x ¤Ë¤Ï°Ê²¼¤Îʸ»ú¤Î¤É¤ì¤«¤¬Æþ¤ë¡£ +\&\ex は特殊コードとして扱われる。x には以下の文字のどれかが入る。 .RS -E ¥¨¥¹¥±¡¼¥× (27) +E エスケープ (27) .br -n ¥é¥¤¥ó¥Õ¥£¡¼¥É (10) +n ラインフィード (10) .br -r Éüµ¢ (13) +r 復帰 (13) .br -t ¥¿¥Ö (9) +t タブ (9) .br -b ¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹ (8) +b バックスペース (8) .br -f ÊÇÁ÷¤ê (12) +f 頁送り (12) .br -0 ¥Ì¥ë¥­¥ã¥é¥¯¥¿¡£'\exxx' ¤Ï 8 ¿Ê¿ô xxx ¤Îʸ»ú¤òɽ¤¹¡£ +0 ヌルキャラクタ。'\exxx' は 8 進数 xxx の文字を表す。 .RE .IP i -¥Ñ¥é¥á¡¼¥¿¤ò 1 Áý²Ã¤µ¤»¤ë¡£ +パラメータを 1 増加させる。 .IP r -°ì¤Ä¤Î¥Ñ¥é¥á¡¼¥¿¤ò¤È¤ëµ¡Ç½ +一つのパラメータをとる機能 .IP + -¼¡¤Îʸ»ú¤ÎÃͤò¥Ñ¥é¥á¡¼¥¿¤ËÄɲä·¡¢¥Ð¥¤¥Ê¥ê¤Ç½ÐÎϤ¹¤ë +次の文字の値をパラメータに追加し、バイナリで出力する .IP 2 -¥Ñ¥é¥á¡¼¥¿¤ò 2 ·å¤Î¿ô»ú¤È¤·¤Æ ASCII ½ÐÎϤ¹¤ë (printf ¤Î %2d ¤ÈƱ¤¸°ÕÌ£) +パラメータを 2 桁の数字として ASCII 出力する (printf の %2d と同じ意味) .IP d -¥Ñ¥é¥á¡¼¥¿¤ò¿ô»ú¤È¤·¤Æ ASCII ½ÐÎϤ¹¤ë (printf ¤Î %d ¤ÈƱ¤¸°ÕÌ£) +パラメータを数字として ASCII 出力する (printf の %d と同じ意味) .IP % -\(aq%\(aq ¤òɽ¼¨¤¹¤ë +\(aq%\(aq を表示する .LP -¥Ð¥¤¥Ê¥ê½ÐÎϤò¹Ô¤¦¾ì¹ç¡¢ -ʸ»úÎ󤬽ªÃ¼¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¥Ì¥ëʸ»ú (\(aq\\0\(aq) ¤òÈò¤±¤Í¤Ð¤Ê¤é¤Ê¤¤¡£ -¥¿¥Öʸ»ú¤ò¥Ñ¥é¥á¡¼¥¿¤Î¥Ð¥¤¥Ê¥ê½ÐÎϤȤ¹¤ë¾ì¹ç¤Ï¡¢ -¥¿¥Öʸ»ú¤ÎŸ³«¤ò¥ê¥»¥Ã¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.IP Ãí°Õ: -¾åµ­¤Î¤è¤¦¤Ê¡¢¥Ñ¥é¥á¡¼¥¿¤È¤·¤Æ¤Î¥á¥¿Ê¸»ú¤ÏÀµ¤·¤¯¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤Î¤³¤È¤Ï¡¢Minix¤Î termcap ¤È -Linux ¤Î termcap ¤È¤Î´Ö¤Ë¸ß´¹À­¤¬¤Ê¤¤¤³¤È¤Ë·Ò¤¬¤Ã¤Æ¤¤¤ë¡£ -.\"NAKANO: ¤¢¤ä¤·¤¤¡£ +バイナリ出力を行う場合、 +文字列が終端されないようにヌル文字 (\(aq\\0\(aq) を避けねばならない。 +タブ文字をパラメータのバイナリ出力とする場合は、 +タブ文字の展開をリセットしなければならない。 +.IP 注意: +上記のような、パラメータとしてのメタ文字は正しくないかもしれない。 +このことは、Minixの termcap と +Linux の termcap との間に互換性がないことに繋がっている。 +.\"NAKANO: あやしい。 .LP -¿Þ·Áʸ»ú¤Ï 3 ¤Ä¤Îʸ»úÎóµ¡Ç½¤Ç»ØÄê¤Ç¤­¤ë¡£ +図形文字は 3 つの文字列機能で指定できる。 .IP as -ÂåÂØʸ»ú¥»¥Ã¥È¤Î³«»Ï +代替文字セットの開始 .IP ae -ÂåÂØʸ»ú¥»¥Ã¥È¤Î½ªÎ» +代替文字セットの終了 .IP ac -ʸ»úÎó¤Î¥Ú¥¢¤Î½¸¹ç¤ò»ØÄꤹ¤ë¡£ -ºÇ½é¤Îʸ»ú¤Ï¿Þ·Áʸ»ú¤Î̾¾Î¤Ç¡¢ -2 ÈÖÌܤÎʸ»ú¤Ï¤½¤ÎÄêµÁ¤Ç¤¢¤ë¡£ +文字列のペアの集合を指定する。 +最初の文字は図形文字の名称で、 +2 番目の文字はその定義である。 .LP -̾¾Î¤Ë¤Ï°Ê²¼¤Î¤â¤Î¤¬¤¢¤ë¡£ +名称には以下のものがある。 .sp .nf -+ ±¦Ìð°õ (>) -, º¸Ìð°õ (<) -\&. ²¼Ìð°õ (v) -0 ¤Ê¤«¤òÅɤê¤Ä¤Ö¤·¤¿»Í³Ñ (#) -I ¥é¥ó¥¿¥óµ­¹æ (#) -(ÌõÃí ¸¶Ê¸¤Ï latern ¤À¤Ã¤¿¤¬¡¢¤³¤ì¤Ï lantern ¤Î typo ¤È»×¤ï¤ì¤ë) -- ¾åÌð°õ (^) -\&' É©·Á (+) -a ¥Á¥§¥¹ÈÄ (:) -f ³ÑÅÙ (') -g ¥×¥é¥¹¥Þ¥¤¥Ê¥¹ (#) -h »Í³Ñ (#) -j ±¦²¼¶ù (+) -k ±¦¾å¶ù (+) -l º¸¾å¶ù (+) -m º¸²¼¶ù (+) -n ½½»ú (+) -o ¾å¿åÊ¿Àþ (-) -q Ãæ¿åÊ¿Àþ (-) -s ²¼¿åÊ¿Àþ (_) -t º¸ T »ú (+) -u ±¦ T »ú (+) -v ²¼ T »ú (+) -w Àµ T »ú (+) -x ¿âľÀþ (|) -~ ÃÊÍî (???) ++ 右矢印 (>) +, 左矢印 (<) +\&. 下矢印 (v) +0 なかを塗りつぶした四角 (#) +I ランタン記号 (#) +(訳注 原文は latern だったが、これは lantern の typo と思われる) +- 上矢印 (^) +\&' 菱形 (+) +a チェス板 (:) +f 角度 (') +g プラスマイナス (#) +h 四角 (#) +j 右下隅 (+) +k 右上隅 (+) +l 左上隅 (+) +m 左下隅 (+) +n 十字 (+) +o 上水平線 (-) +q 中水平線 (-) +s 下水平線 (_) +t å·¦ T 字 (+) +u 右 T 字 (+) +v 下 T 字 (+) +w æ­£ T 字 (+) +x 垂直線 (|) +~ 段落 (???) .fi .sp -³ç¸ÌÆâ¤ÎÃͤϡ¢ -»ØÄꤷ¤¿µ¡Ç½¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤ËÍѤ¤¤é¤ì¤ë¥Ç¥Õ¥©¥ë¥È¤ÎÃͤǤ¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +括弧内の値は、 +指定した機能が存在しない場合に用いられるデフォルトの値である。 +.SH 関連項目 .BR ncurses (3), .BR termcap (3), .BR terminfo (5) -.SH ¹»Àµ¼Ôµ­ -Ìõ½Ð¤Ë¤¢¤¿¤Ã¤Æ¤Ï "\fBtermcap & terminfo\fP" -(Strang, Mui, O'reilly ¶¦Ãø, ÎëÌÚÎï ´ÆÌõ, ¥¢¥¹¥­¡¼½ÐÈÇ¶É 1992) -¤ò»²¹Í¤Ë¤·¤¿¡£ -¤¿¤À¤·ËÜÆüËܸì¥Þ¥Ë¥å¥¢¥ë¤Ë¤ª¤±¤ë¸í¤ê¤Ï¹»Àµ¼Ô¤ÎÀÕǤ¤Ç¤¢¤ë¡£ +.SH 校正者記 +訳出にあたっては "\fBtermcap & terminfo\fP" +(Strang, Mui, O'reilly 共著, 鈴木麗 監訳, アスキー出版局 1992) +を参考にした。 +ただし本日本語マニュアルにおける誤りは校正者の責任である。 diff --git a/release/man5/ttytype.5 b/release/man5/ttytype.5 index c84802ea..2a8a0ef9 100644 --- a/release/man5/ttytype.5 +++ b/release/man5/ttytype.5 @@ -30,36 +30,36 @@ .\" Translated Thu Feb 10 1998 by NAKANO Takeo .\" .TH TTYTYPE 5 1993-07-24 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -ttytype \- üËö¥Ç¥Ð¥¤¥¹¡ÝüËö¥¿¥¤¥×¤Î¥Ç¥Õ¥©¥ë¥È¥Þ¥Ã¥Ô¥ó¥° -.SH ÀâÌÀ +.SH 名前 +ttytype \- 端末デバイス−端末タイプのデフォルトマッピング +.SH 説明 .I /etc/ttytype -¤Ï tty ¥é¥¤¥ó¤ò termcap/terminfo ¤ÎüËö¥¿¥¤¥×¤Î̾Á°¤È´ØÏ¢ÉÕ¤±¤ë¡£¤½¤ì -¤¾¤ì¤Î¹Ô¤Ë¤Ï¡¢¤Þ¤ºÃ¼Ëö¤Î¥¿¥¤¥×¡¢Â³¤¤¤Æ¥¹¥Ú¡¼¥¹Ê¸»ú¡¢¤µ¤é¤Ë³¤¤¤Æ tty -̾ (¥Ç¥Ð¥¤¥¹Ì¾¤«¤éÀèƬ¤Î \fI/dev/\fP ¤ò¤È¤Ã¤¿¤â¤Î) ¤¬½ñ¤«¤ì¤ë¡£ +は tty ラインを termcap/terminfo の端末タイプの名前と関連付ける。それ +ぞれの行には、まず端末のタイプ、続いてスペース文字、さらに続いて tty +名 (デバイス名から先頭の \fI/dev/\fP をとったもの) が書かれる。 -¤³¤Î´ØÏ¢ÉÕ¤±¤Ï¥×¥í¥°¥é¥à +この関連付けはプログラム .BR tset (1) -¤¬ÍøÍѤ·¡¢¥æ¡¼¥¶¡¼¤¬¸½ºß»È¤Ã¤Æ¤¤¤ëüËö¤Î +が利用し、ユーザーが現在使っている端末の .B TERM -´Ä¶­ÊÑ¿ô¤¬¡¢¥Ç¥Õ¥©¥ë¥È¤ÎüËö̾¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ +環境変数が、デフォルトの端末名にセットされる。 -¤³¤Îµ¡Ç½¤ÏÅÁÅýŪ¤Ê¥¿¥¤¥à¡¦¥·¥§¥¢¥ê¥ó¥°´Ä¶­ ( UNIX ¥ß¥Ë¥³¥ó¥Ô¥å¡¼¥¿¤Ë -¥­¥ã¥é¥¯¥¿Ã¼Ëö¤¬Ä¾·ë¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ê´Ä¶­) ¸þ¤±¤ËÀ߷פµ¤ì¤¿¡£¶áÂåŪ¤Ê -¥ï¡¼¥¯¥¹¥Æ¡¼¥·¥ç¥ó¤ä¥Ñ¡¼¥½¥Ê¥ë UNIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤Û¤È¤ó¤ÉÍøÍѤµ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ¥Õ¥¡¥¤¥ë +この機能は伝統的なタイム・シェアリング環境 ( UNIX ミニコンピュータに +キャラクタ端末が直結されているような環境) 向けに設計された。近代的な +ワークステーションやパーソナル UNIX システムでは、ほとんど利用されていない。 +.SH ファイル .TP .I /etc/ttytype -tty ÄêµÁ¥Õ¥¡¥¤¥ë¡£ -.SH Îã -ŵ·¿Åª¤Ê \fI/etc/ttytype\fP ¤Ï°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¡£ +tty 定義ファイル。 +.SH 例 +典型的な \fI/etc/ttytype\fP は以下のようなものである。 .RS .sp con80x25 tty1 .br vt320 ttys0 .RE -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR termcap (5), .BR terminfo (5), .BR agetty (8), diff --git a/release/man5/tzfile.5 b/release/man5/tzfile.5 index efa91866..b57aa7f9 100644 --- a/release/man5/tzfile.5 +++ b/release/man5/tzfile.5 @@ -5,69 +5,69 @@ .\" Japanese Version Copyright (c) 1999 NAKANO Takeo all rights reserved. .\" Translated Tue Sep 14 1999 by NAKANO Takeo .\" -.\"WORD: transition time Á«°Ü»þ´Ö -.\"WORD: local time types ¥í¡¼¥«¥ë»þ´Ö·¿ -.\"WORD: timezone abbreviatio strint ¥¿¥¤¥à¥¾¡¼¥óά¼°Ê¸»úÎó +.\"WORD: transition time 遷移時間 +.\"WORD: local time types ローカル時間型 +.\"WORD: timezone abbreviatio strint タイムゾーン略式文字列 .\" .TH TZFILE 5 1996-06-05 "" "Linux Programmer's Manual" -.SH ̾Á° -tzfile \- ¥¿¥¤¥à¥¾¡¼¥ó¤Î¾ðÊó -.SH ½ñ¼° +.SH 名前 +tzfile \- タイムゾーンの情報 +.SH 書式 .B #include -.SH ÀâÌÀ +.SH 説明 .BR tzset (3) -¤Ë¤è¤Ã¤ÆÍѤ¤¤é¤ì¤ë¥¿¥¤¥à¥¾¡¼¥ó¾ðÊó¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢ -¼±Ê̤Τ¿¤á¤Î magic ʸ»úÎó "TZif" ¤Ç»Ï¤Þ¤ê¡¢ -¾­Íè¤Î¤¿¤á¤Î 16 ¥Ð¥¤¥È¤ÎͽÌóÎΰ褬³¤­¡¢ +によって用いられるタイムゾーン情報のファイルは、 +識別のための magic 文字列 "TZif" で始まり、 +将来のための 16 バイトの予約領域が続き、 .I long -·¿¤Î 4 ¥Ð¥¤¥È¤ÎÃͤ¬ 6 ¸Ä³¤¯¡£ -¤³¤ÎÃͤϡÖɸ½à¡×¥Ð¥¤¥È¥ª¡¼¥À¡¼ (¹â°Ì¥Ð¥¤¥È¤¬Àè¤Ë½ñ¤«¤ì¤ë) -¤Çµ­½Ò¤µ¤ì¤ë¡£¤³¤ì¤é¤ÎÃͤϡ¢½ç¤Ë°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¡£ +型の 4 バイトの値が 6 個続く。 +この値は「標準」バイトオーダー (高位バイトが先に書かれる) +で記述される。これらの値は、順に以下のようなものである。 .TP .I tzh_ttisgmtcnt -¥Õ¥¡¥¤¥ë¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë UTC/local ¥¤¥ó¥¸¥±¡¼¥¿ (indicator) ¤Î¸Ä¿ô¡£ +ファイルに記述されている UTC/local インジケータ (indicator) の個数。 .TP .I tzh_ttisstdcnt -¥Õ¥¡¥¤¥ë¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë standard/wall ¥¤¥ó¥¸¥±¡¼¥¿¤Î¸Ä¿ô¡£ +ファイルに記述されている standard/wall インジケータの個数。 .TP .I tzh_leapcnt -¥Õ¥¡¥¤¥ë¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë±¼Éåǡ¼¥¿¤Î¸Ä¿ô¡£ +ファイルに記述されている閏秒データの個数。 .TP .I tzh_timecnt -¥Õ¥¡¥¤¥ë¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡ÖÁ«°Ü»þ´Ö (transition time)¡×¥Ç¡¼¥¿¤Î¸Ä¿ô¡£ +ファイルに記述されている「遷移時間 (transition time)」データの個数。 .TP .I tzh_typecnt -¥Õ¥¡¥¤¥ë¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡Ö¥í¡¼¥«¥ë»þ´Ö·¿ (local time types)¡×¥Ç¡¼¥¿¤Î¸Ä¿ô -(0 ¤Ç¤¢¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤)¡£ +ファイルに記述されている「ローカル時間型 (local time types)」データの個数 +(0 であってはいけない)。 .TP .I tzh_charcnt -¥Õ¥¡¥¤¥ë¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡Ö¥¿¥¤¥à¥¾¡¼¥óά¼°Ê¸»úÎó (timezone -abbreviation string)¡×¤Î¸Ä¿ô¡£ +ファイルに記述されている「タイムゾーン略式文字列 (timezone +abbreviation string)」の個数。 .PP -¾åµ­¤Î¥Ø¥Ã¥À¤Ë³¤¤¤Æ +上記のヘッダに続いて .I tzh_timecnt -¤È¤¤¤¦ 4 ¥Ð¥¤¥È¤Î +という 4 バイトの .I long -·¿¤ÎÃͤ¬ (Ê£¿ô¸Ä) ³¤¯¡£¾º½ç¤ÇÊݴɤµ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤ÎÃͤϡÖɸ½à¡×¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Çµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -¤½¤ì¤¾¤ì¤ÏÁ«°Ü»þ´Ö +型の値が (複数個) 続く。昇順で保管されている。 +これらの値は「標準」バイトオーダーで記述されている。 +それぞれは遷移時間 .RB ( time (2) -¤¬ÊÖ¤¹ÃÍ) ¤È¤·¤ÆÍѤ¤¤é¤ì¡¢ -¤½¤ì¤¾¤ì¤Ë¤ª¤¤¤Æ¥í¡¼¥«¥ë»þ´Ö¤Î·×»»¥ë¡¼¥ë¤¬Êѹ¹¤µ¤ì¤ë¡£ -¼¡¤ËÍè¤ë¤Î¤Ï +が返す値) として用いられ、 +それぞれにおいてローカル時間の計算ルールが変更される。 +次に来るのは .I tzh_timecnt -¤Ç¡¢¤³¤ì¤Ï +で、これは .I "unsigned char" -·¿¤Î 1 ¥Ð¥¤¥È¤ÎÃͤǤ¢¤ë (Ê£¿ô¸Ä³¤¯¤³¤È¤â¤¢¤ë)¡£ -¤³¤ÎÃͤϡ¢¥Õ¥¡¥¤¥ë¤Çµ­½Ò¤µ¤ì¤Æ¤¤¤ë°Û¤Ê¤Ã¤¿¥¿¥¤¥×¤Î¡Ö¥í¡¼¥«¥ë»þ´Ö¡×¤¬¡¢ -¤½¤ì¤¾¤ìƱ¤¸¤è¤¦¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤µ¤ì¤¿Á«°Ü»þ´Ö¤Î¤É¤ì¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ -¤¤¤ë¤«¤ò¼¨¤¹¡£ -¤³¤ì¤é¤ÎÃÍ¤Ï +型の 1 バイトの値である (複数個続くこともある)。 +この値は、ファイルで記述されている異なったタイプの「ローカル時間」が、 +それぞれ同じようにインデックスされた遷移時間のどれに関連づけられて +いるかを示す。 +これらの値は .I ttinifo -¹½Â¤ÂΤÎÇÛÎó¤ËÂФ¹¤ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤È¤·¤ÆÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ +構造体の配列に対するインデックスとして提供されている。 .I ttinfo -¹½Â¤ÂΤϥե¡¥¤¥ëÃæ¤Ç¼¡¤Î°ÌÃÖ¤ËÃÖ¤«¤ì¤ë¡£ -¤³¤Î¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë: +構造体はファイル中で次の位置に置かれる。 +この構造体は以下のように定義されている: .in +4n .sp .nf @@ -79,55 +79,55 @@ struct ttinfo { .in .fi .sp -¤½¤ì¤¾¤ì¤Î¹½Â¤ÂΤϡ¢ 4 ¥Ð¥¤¥È¤Î \fIlong\fP ·¿¤ÎÃÍ \fItt_gmtoff\fP¡¢ -1 ¥Ð¥¤¥È¤ÎÃÍ \fItt_isdst\fP, -1 ¥Ð¥¤¥È¤ÎÃÍ \fItt_abbrind\fP ¤«¤é¹½À®¤µ¤ì¤ë¡£ -.\"NAKANO int ¤Ê¤Î¤Ë 4 ¥Ð¥¤¥È¤Ê¤Î¡© -¤½¤ì¤¾¤ì¤Î¹½Â¤ÂΤˤª¤¤¤Æ¡¢ +それぞれの構造体は、 4 バイトの \fIlong\fP 型の値 \fItt_gmtoff\fP、 +1 バイトの値 \fItt_isdst\fP, +1 バイトの値 \fItt_abbrind\fP から構成される。 +.\"NAKANO int なのに 4 バイトなの? +それぞれの構造体において、 .I tt_gmtoff -¤Ï UTC ¤Ë²Ã¤¨¤ë¤Ù¤­Éÿô¤òÍ¿¤¨¡¢ +は UTC に加えるべき秒数を与え、 .I tt_isdst -¤Ï +は .I tm_isdst -¤ò +を .BR localtime (3) -¤Ë¥»¥Ã¥È¤¹¤Ù¤­¤«¤É¤¦¤«¤ò¼¨¤·¡¢ +にセットすべきかどうかを示し、 .I tt_abbrind -¤Ï¥Õ¥¡¥¤¥ëÃæ¤Ç \fIttinfo\fP ¹½Â¤ÂÎ (ÇÛÎó) ¤Î¤¢¤È¤ËÃÖ¤«¤ì¤ë -¥¿¥¤¥à¥¾¡¼¥óά¼°Ê¸»úÎó¤ÎÇÛÎó¤ËÂФ¹¤ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤¢¤ë¡£ +はファイル中で \fIttinfo\fP 構造体 (配列) のあとに置かれる +タイムゾーン略式文字列の配列に対するインデックスである。 .PP -¼¡¤Ë¤Ï 4 ¥Ð¥¤¥ÈÃͤΥڥ¢¤Ç¤¢¤ë +次には 4 バイト値のペアである .I tzh_leapcnt -¤¬ (Ê£¿ô¸Ä) ³¤¯¡£É¸½à¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Çµ­½Ò¤µ¤ì¤ë¡£ -¤½¤ì¤¾¤ì¤Î¥Ú¥¢¤ÎºÇ½é¤ÎÃͤϱ¼Éäε¯¤­¤¿»þ¹ï¤ò ( +が (複数個) 続く。標準バイトオーダーで記述される。 +それぞれのペアの最初の値は閏秒の起きた時刻を ( .IR time (2) -¤ÎÊÖ¤¹·Á¼°¤Ç) Í¿¤¨¡¢ÆóÈÖÌܤÎÃͤϤ½¤Î»þ¹ï¤Ë²Ã¤¨¤ë¤Ù¤­±¼Éÿô¤Î -Á´Éÿô¤òÍ¿¤¨¤ë¡£¤³¤ì¤é¤Î¥Ú¥¢¤Ï»þ¹ï¤Î¸Å¤¤½ç¤Ëµ­½Ò¤¹¤ë¡£ +の返す形式で) 与え、二番目の値はその時刻に加えるべき閏秒数の +全秒数を与える。これらのペアは時刻の古い順に記述する。 .PP -¼¡¤Ë¤Ï +次には .I tzh_ttisstdcnt -¤¬ÃÖ¤«¤ì¤ë¡£¤³¤ì¤Ï standard/wall ¥¤¥ó¥¸¥±¡¼¥¿¤Ç¡¢¤½¤ì¤¾¤ì 1 ¥Ð¥¤¥È¤Î -ÃͤòÊݴɤ¹¤ë¡£¤³¤ì¤é¤Ï¥í¡¼¥«¥ë»þ´Ö¤Î¥¿¥¤¥×¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿Á«°Ü»þ´Ö¤¬ -ɸ½à»þ¹ï (standard time) ¤ÈÊÉ»þ·×»þ¹ï (wall clock time) ¤Î -¤É¤Á¤é¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤¹¡£¤Þ¤¿¤³¤ÎÃͤϡ¢ -POSIX ¥¹¥¿¥¤¥ë¤Î¥¿¥¤¥à¥¾¡¼¥ó´Ä¶­ÊÑ¿ô¤ò½èÍý¤¹¤ë¤È¤­¤Ë -¥¿¥¤¥à¥¾¡¼¥ó¥Õ¥¡¥¤¥ë¤¬»È¤ï¤ì¤ë¤È¤­¤Ë¤âÍøÍѤµ¤ì¤ë¡£ +が置かれる。これは standard/wall インジケータで、それぞれ 1 バイトの +値を保管する。これらはローカル時間のタイプに関連づけられた遷移時間が +標準時刻 (standard time) と壁時計時刻 (wall clock time) の +どちらで指定されているかを示す。またこの値は、 +POSIX スタイルのタイムゾーン環境変数を処理するときに +タイムゾーンファイルが使われるときにも利用される。 .PP -ºÇ¸å¤Ë +最後に .I tzh_ttisgmtcnt -¤¬ÃÖ¤«¤ì¤ë¡£¤³¤ì¤Ï UTC/local ¥¤¥ó¥¸¥±¡¼¥¿¤Ç¡¢¤½¤ì¤¾¤ì 1 ¥Ð¥¤¥È¤Î -ÃͤòÊݴɤ¹¤ë¡£¤³¤ì¤é¤Ï¥í¡¼¥«¥ë»þ´Ö¤Î¥¿¥¤¥×¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿Á«°Ü»þ´Ö¤¬ -UTC ¤È¥í¡¼¥«¥ë»þ¹ï¤Î¤É¤Á¤é¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤¹¡£¤Þ¤¿¤³¤ÎÃͤϡ¢ -POSIX ¥¹¥¿¥¤¥ë¤Î¥¿¥¤¥à¥¾¡¼¥ó´Ä¶­ÊÑ¿ô¤ò½èÍý¤¹¤ë¤È¤­¤Ë -¥¿¥¤¥à¥¾¡¼¥ó¥Õ¥¡¥¤¥ë¤¬»È¤ï¤ì¤ë¤È¤­¤Ë¤âÍøÍѤµ¤ì¤ë¡£ +が置かれる。これは UTC/local インジケータで、それぞれ 1 バイトの +値を保管する。これらはローカル時間のタイプに関連づけられた遷移時間が +UTC とローカル時刻のどちらで指定されているかを示す。またこの値は、 +POSIX スタイルのタイムゾーン環境変数を処理するときに +タイムゾーンファイルが使われるときにも利用される。 .PP .I localtime -¤Ï¡¢ +は、 .I tzh_timeout -¤¬ 0 ¤Ç¤¢¤ë¤« time °ú¿ô¤¬¥Õ¥¡¥¤¥ë¤Ëµ­Ï¿¤µ¤ì¤Æ¤¤¤¿ºÇ½é¤ÎÁ«°Ü»þ¹ï -¤è¤ê¤â¾®¤µ¤¤¾ì¹ç¤Ë¤Ï¡¢ -¥Õ¥¡¥¤¥ë¤ËºÇ½é¤Ë¸½¤ì¤ëɸ½à»þ¹ï¤Î +が 0 であるか time 引数がファイルに記録されていた最初の遷移時刻 +よりも小さい場合には、 +ファイルに最初に現れる標準時刻の .I ttinfo -¹½Â¤ÂΤò»È¤¦ (¤Þ¤¿¤Ïɸ½à»þ¹ï¤Î¹½Â¤ÂΤ¬¤Ê¤¤¾ì¹ç¤Ï¡¢Ã±¤ËºÇ½é¤Î +構造体を使う (または標準時刻の構造体がない場合は、単に最初の .I ttinfo -¹½Â¤ÂΤò»È¤¦)¡£ +構造体を使う)。 diff --git a/release/man5/utmp.5 b/release/man5/utmp.5 index 834c6785..5e9a98df 100644 --- a/release/man5/utmp.5 +++ b/release/man5/utmp.5 @@ -36,36 +36,36 @@ .\" Updated 2008-08-11, Akihiro MOTOKI, LDP v3.05 .\" .TH UTMP 5 2011-09-28 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -utmp, wtmp \- ¥í¥°¥¤¥óµ­Ï¿ -.SH ½ñ¼° +.SH 名前 +utmp, wtmp \- ログイン記録 +.SH 書式 .B #include -.SH ÀâÌÀ +.SH 説明 .I utmp -¥Õ¥¡¥¤¥ë¤ò¸«¤ë¤³¤È¤Ç¡¢¸½ºß郎¥·¥¹¥Æ¥à¤ò»È¤Ã¤Æ¤¤¤ë¤«¤È¤¤¤¦¾ðÊó -¤¬ÆÀ¤é¤ì¤ë¡£¤¿¤À¤¹¤Ù¤Æ¤Î¥×¥í¥°¥é¥à¤¬ utmp ¥Õ¥¡¥¤¥ë¤ò -¹¹¿·¤·¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢¼ÂºÝ¤Ë¤Ï¤½¤ì°Ê¾å¤Î¥æ¡¼¥¶¡¼¤¬ -¥·¥¹¥Æ¥à¤ò»È¤Ã¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +ファイルを見ることで、現在誰がシステムを使っているかという情報 +が得られる。ただすべてのプログラムが utmp ファイルを +更新しているわけではないので、実際にはそれ以上のユーザーが +システムを使っている可能性がある。 .PP -.B ·Ù¹ð: -(¶ò¤«¤Ë¤â) ¿¤¯¤Î¥·¥¹¥Æ¥à¥×¥í¥°¥é¥à¤¬¤½¤ÎÀ°¹çÀ­¤Ë°Í¸¤·¤Æ¤¤¤ë¤Î¤Ç¡¢ +.B 警告: +(愚かにも) 多くのシステムプログラムがその整合性に依存しているので、 .I utmp -¥Õ¥¡¥¤¥ë¤Ï "other" ¤ËʬÎव¤ì¤ë¥æ¡¼¥¶¤ËÂФ·¤Æ -½ñ¤­¹þ¤ß²Äǽ¤Ë¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤È¥°¥ë¡¼¥×¥ª¡¼¥Ê¡¼°Ê³°¤Î¥æ¡¼¥¶¤ËÂФ·¤Æ +ファイルは "other" に分類されるユーザに対して +書き込み可能にしてはならない。 +ファイルの所有者とグループオーナー以外のユーザに対して .I utmp -¥Õ¥¡¥¤¥ë¤ò½ñ¤­¹þ¤ß²Äǽ¤Ê¾õÂ֤ˤ·¤Æ¤ª¤¯¤È¡¢ -¥·¥¹¥Æ¥à¤Î¥í¥°¥Õ¥¡¥¤¥ë¤òµ¶Â¤¤µ¤ì¤¿¤ê¡¢¥·¥¹¥Æ¥à¥Õ¥¡¥¤¥ë¤Î -²þ¤¶¤ó¤ò¼õ¤±¤ë¤È¤¤¤Ã¤¿¥ê¥¹¥¯¤òÈȤ¹¤³¤È¤Ë¤Ê¤ë¡£ +ファイルを書き込み可能な状態にしておくと、 +システムのログファイルを偽造されたり、システムファイルの +改ざんを受けるといったリスクを犯すことになる。 .PP -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï +このファイルは .I utmp -¹½Â¤ÂΤ竤êÊÖ¤·¤Ç¹½À®¤µ¤ì¤ë¡£ -¤³¤Î¹½Â¤ÂÎ¤Ï +構造体の繰り返しで構成される。 +この構造体は .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë -(¤³¤³¤Ëµ­½Ò¤·¤Æ¤¢¤ë¤Î¤Ï´ö¤Ä¤«¤ÎÂç¤Þ¤«¤ÊÄêµÁ¤Î¤ß¤Ç¡¢ -¾ÜºÙ¤Ï libc ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤êÊѤï¤ë¤³¤È¤ËÃí°Õ¤¬É¬ÍפǤ¢¤ë)¡£ +で以下のように定義されている +(ここに記述してあるのは幾つかの大まかな定義のみで、 +詳細は libc のバージョンにより変わることに注意が必要である)。 .in +4n .nf .sp @@ -108,10 +108,10 @@ struct utmp { struct exit_status ut_exit; /* Exit status of a process marked as DEAD_PROCESS; not used by Linux init(8) */ - /* ut_session ¤È ut_tv ¥Õ¥£¡¼¥ë¥É¤Ï¡¢32¥Ó¥Ã¥È¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¾ì¹ç¤È - 64¥Ó¥Ã¥È¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¾ì¹ç¤ÇƱ¤¸¥µ¥¤¥º¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ - ¤³¤¦¤¹¤ë¤³¤È¤Ç¡¢32¥Ó¥Ã¥È¤È64¥Ó¥Ã¥È¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¡¢ - ¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤È¶¦Í­¥á¥â¥ê¤ò¶¦Í­¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ */ + /* ut_session と ut_tv フィールドは、32ビットでコンパイルされた場合と + 64ビットでコンパイルされた場合で同じサイズでなければならない。 + こうすることで、32ビットと64ビットのアプリケーションで、 + データファイルと共有メモリを共有することができるようになる。 */ #if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32 int32_t ut_session; /* Session ID (\fBgetsid\fP(2)), @@ -141,186 +141,186 @@ struct utmp { .sp .fi .in -¤³¤Î¹½Â¤ÂΤ«¤é¥æ¡¼¥¶¡¼¤Î»È¤Ã¤Æ¤¤¤ëüËö¤Î¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë̾¡¢ -¥æ¡¼¥¶¡¼¤Î¥í¥°¥¤¥ó̾¡¢ +この構造体からユーザーの使っている端末のスペシャルファイル名、 +ユーザーのログイン名、 .RB ( time (2) -·Á¼°¤Ç¤Î)¥í¥°¥¤¥ó»þ¹ï¤¬¤ï¤«¤ë¡£Ê¸»úÎó¥Õ¥£¡¼¥ë¥É¤Ï¡¢ -¥Õ¥£¡¼¥ë¥É¤ÎŤµ¤è¤êʸ»úÎó¤¬Ã»¤¤¾ì¹ç¤Ë¤Ï¡¢ -NULL ¥Ð¥¤¥È (\(aq\e0\(aq) ¤Ë¤è¤Ã¤Æ½ªÃ¼¤µ¤ì¤ë¡£ +形式での)ログイン時刻がわかる。文字列フィールドは、 +フィールドの長さより文字列が短い場合には、 +NULL バイト (\(aq\e0\(aq) によって終端される。 .PP -ºÇ½é¤Î¥¨¥ó¥È¥ê¤Ï +最初のエントリは .BR init (8) -¥³¥Þ¥ó¥É¤¬ +コマンドが .BR inittab (5) -¤ò½èÍý¤¹¤ë¤³¤È¤Çºî¤é¤ì¤ë¡£ -¤¢¤ë¥¨¥ó¥È¥ê¤ò½èÍý¤¹¤ëÁ°¤Ë¡¢ +を処理することで作られる。 +あるエントリを処理する前に、 .BR init (8) -¤Ï \fIut_type\fP ¤ò \fBDEAD_PROCESS\fP ¤Ë½é´ü²½¤¹¤ë¡£ -¥ì¥³¡¼¥É¤Î -\fIut_type\fP ¤¬ \fBDEAD_PROCESS\fP ¤È \fBRUN_LVL\fP ¤Î¤¤¤º¤ì¤Ç¤â¤Ê¤¯¡¢ -¤«¤Ä PID ¤¬ \fIut_pid\fP ¤Ç¤¢¤ë¥×¥í¥»¥¹¤¬¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢\fIut_user\fP, -\fIut_host\fP, \fIut_time\fP ¤ò¥Ì¥ë¥Ð¥¤¥È¤Ç¥¯¥ê¥¢¤·¤Æ½é´ü²½¤ò¹Ô¤¦¡£ -ɬÍ×¤Ê \fIut_id\fP ¤ò»ý¤Ä¶õ¤Î¥ì¥³¡¼¥É¤ò¸«¤Ä¤±¤é¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ +は \fIut_type\fP を \fBDEAD_PROCESS\fP に初期化する。 +レコードの +\fIut_type\fP が \fBDEAD_PROCESS\fP と \fBRUN_LVL\fP のいずれでもなく、 +かつ PID が \fIut_pid\fP であるプロセスがいない場合は、\fIut_user\fP, +\fIut_host\fP, \fIut_time\fP をヌルバイトでクリアして初期化を行う。 +必要な \fIut_id\fP を持つ空のレコードを見つけられなかった場合、 .BR init (8) -¤Ï¿·¤·¤¤¥ì¥³¡¼¥É¤òºî¤ë¡£inittab ¤«¤é \fIut_id\fP ¤òÀßÄꤷ¡¢ -\fIut_pid\fP ¤ª¤è¤Ó \fIut_time\fP ¤ò¸½ºßÃͤˡ¢ -\fIut_type\fP ¤ò \fBINIT_PROCESS\fP ¤ËÀßÄꤹ¤ë¡£ +は新しいレコードを作る。inittab から \fIut_id\fP を設定し、 +\fIut_pid\fP および \fIut_time\fP を現在値に、 +\fIut_type\fP を \fBINIT_PROCESS\fP に設定する。 .PP .BR mingetty (8) -(¤Þ¤¿¤Ï +(または .BR agetty (8)) -¤Ï pid ¤Ç¥¨¥ó¥È¥ê¤òÆÃÄꤷ¡¢ -\fIut_type\fP ¤ò \fBLOGIN_PROCESS\fP ¤ËÊѹ¹¤·¡¢ -\fIut_time\fP ¤ò¹¹¿·¤·¡¢\fIut_line\fP¤òÀßÄꤷ¤¿¸å¡¢Àܳ¤¬³ÎΩ¤µ¤ì¤ë¤Î¤òÂԤġ£ +は pid でエントリを特定し、 +\fIut_type\fP を \fBLOGIN_PROCESS\fP に変更し、 +\fIut_time\fP を更新し、\fIut_line\fPを設定した後、接続が確立されるのを待つ。 .BR login (1) -¤Ï¥æ¡¼¥¶¡¼Ç§¾Ú¤¬½ªÎ»¤¹¤ë¤È¡¢ -\fIut_type\fP ¤ò \fBUSER_PROCESS\fP ¤ËÊѹ¹¤·¡¢ -\fIut_time\fP ¤ò¹¹¿·¤·¡¢\fIut_host\fP ¤È \fIut_addr\fP¤òÀßÄꤹ¤ë¡£ +はユーザー認証が終了すると、 +\fIut_type\fP を \fBUSER_PROCESS\fP に変更し、 +\fIut_time\fP を更新し、\fIut_host\fP と \fIut_addr\fPを設定する。 .BR mingetty (8) -(¤Þ¤¿¤Ï +(または .BR agetty (8)) -¤È +と .BR login (1) -¤Ë¤è¤ê°Û¤Ê¤ë¤¬¡¢ -\fIut_pid\fP ¤ÎÂå¤ï¤ê¤Ë -\fIut_line\fP ¤ò»È¤Ã¤Æ¥ì¥³¡¼¥É¤ÎÆÃÄ꤬¹Ô¤ï¤ì¤ë¤³¤È¤â¤¢¤ë -(\fIut_pid\fP ¤ò»È¤¦Êý¤¬Ë¾¤Þ¤·¤¤) ¡£ +により異なるが、 +\fIut_pid\fP の代わりに +\fIut_line\fP を使ってレコードの特定が行われることもある +(\fIut_pid\fP を使う方が望ましい) 。 .PP .BR init (8) -¤Ï¥×¥í¥»¥¹¤Î½ªÎ»¤ò¸¡½Ð¤·¤¿¾ì¹ç¡¢ -\fIut_pid\fP ¤ò¥­¡¼¤È¤·¤Æ utmp ¤Î¥¨¥ó¥È¥ê¤òÆÃÄꤷ¡¢ -\fIut_type\fP ¤ò \fBDEAD_PROCESS\fP ¤ËÀßÄꤷ¡¢ -\fIut_user\fP, \fIut_host\fP, \fIut_time\fP ¤ò¥Ì¥ë¥Ð¥¤¥È¤Ç¥¯¥ê¥¢¤¹¤ë¡£ +はプロセスの終了を検出した場合、 +\fIut_pid\fP をキーとして utmp のエントリを特定し、 +\fIut_type\fP を \fBDEAD_PROCESS\fP に設定し、 +\fIut_user\fP, \fIut_host\fP, \fIut_time\fP をヌルバイトでクリアする。 .PP .BR xterm (1) -¥³¥Þ¥ó¥É¤ä¾¤ÎüËö¥¨¥ß¥å¥ì¡¼¥¿¤Ï -ľÀÜ \fBUSER_PROCESS\fP ¤Î¥ì¥³¡¼¥É¤òºî¤ê¡¢ -üËö̾¤Î¥µ¥Õ¥£¥Ã¥¯¥¹Ê¸»úÎó (\fI/dev/[pt]ty\fP ¤Ë³¤¯Ê¸»úÎó) -¤ò»È¤Ã¤Æ \fIut_id\fP ¤ÎÃͤòÀ¸À®¤¹¤ë¡£ -¤³¤Î id ¤ò»ý¤Ä¥¨¥ó¥È¥ê¤¬ \fBDEAD_PROCESS\fP ¤Ç¤¢¤Ã¤¿¾ì¹ç¤Ë¤ÏºÆÍøÍѤ·¡¢ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï¿·¤·¤¤¥¨¥ó¥È¥ê¤¬ºî¤é¤ì¤ë¡£ -²Äǽ¤Ê¾ì¹ç¤Ë¤Ï¥×¥í¥»¥¹½ªÎ»»þ¤Ë \fBDEAD_PROCESS\fP ¤ÈÀßÄꤷ¡¢ -¤µ¤é¤Ë \fIut_line\fP, \fIut_time\fP, \fIut_user\fP, \fIut_host\fP -¤ò¥Ì¥ë¥Ð¥¤¥È¤Ç¥¯¥ê¥¢¤¹¤ë¤³¤È¤¬¾©Î夵¤ì¤Æ¤¤¤ë¡£ +コマンドや他の端末エミュレータは +直接 \fBUSER_PROCESS\fP のレコードを作り、 +端末名のサフィックス文字列 (\fI/dev/[pt]ty\fP に続く文字列) +を使って \fIut_id\fP の値を生成する。 +この id を持つエントリが \fBDEAD_PROCESS\fP であった場合には再利用し、 +それ以外の場合には新しいエントリが作られる。 +可能な場合にはプロセス終了時に \fBDEAD_PROCESS\fP と設定し、 +さらに \fIut_line\fP, \fIut_time\fP, \fIut_user\fP, \fIut_host\fP +をヌルバイトでクリアすることが奨励されている。 .PP .BR telnetd (8) -¤Ï \fBLOGIN_PROCESS\fP ¤òÀßÄꤹ¤ë¤À¤±¤Ç¤è¤¯¡¢ -»Ä¤ê¤Î½èÍý¤ÏÄ̾ïÄ̤ê +は \fBLOGIN_PROCESS\fP を設定するだけでよく、 +残りの処理は通常通り .BR login (1) -¤ËǤ¤»¤ì¤Ð¤è¤¤¡£ -telnet ¤Î¥»¥Ã¥·¥ç¥ó¤¬½ªÎ»¤·¤¿¸å¡¢Á°½Ò¤Î¤è¤¦¤Ë +に任せればよい。 +telnet のセッションが終了した後、前述のように .BR telnetd (8) -¤¬ utmp ¤Î¥¨¥ó¥È¥ê¤ò½é´ü²½¤¹¤ë¡£ +が utmp のエントリを初期化する。 .PP -\fIwtmp\fP ¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¤¹¤Ù¤Æ¤Î¥í¥°¥¤¥ó¤È¥í¥°¥¢¥¦¥È¤¬µ­Ï¿¤µ¤ì¤ë¡£ -¤½¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢¥í¥°¥¢¥¦¥ÈºÑ¤ÎüËö¤Ç¥æ¡¼¥¶¡¼Ì¾¤¬¥Ì¥ë¤È¤Ê¤ë¤³¤È°Ê³°¤Ï -\fIutmp\fP ¤È¤Þ¤Ã¤¿¤¯Æ±¤¸¤Ç¤¢¤ë¡£ -¥æ¡¼¥¶¡¼Ì¾¤¬ \fBshutdown\fP ¤â¤·¤¯¤Ï \fBreboot\fP ¤Ç¤¢¤ë -üËö̾ \fB~\fP ¤Ï¥·¥¹¥Æ¥à¤ÎÄä»ß (shutdown) ¤Þ¤¿¤ÏºÆµ¯Æ° (reboot) -¤ò°ÕÌ£¤¹¤ë¡£¤Þ¤¿¤½¤ÎüËö̾¤¬ \fB|\fP ¤È \fB}\fP ¤ÎÂÐ¤Ï +\fIwtmp\fP ファイルには、すべてのログインとログアウトが記録される。 +そのフォーマットは、ログアウト済の端末でユーザー名がヌルとなること以外は +\fIutmp\fP とまったく同じである。 +ユーザー名が \fBshutdown\fP もしくは \fBreboot\fP である +端末名 \fB~\fP はシステムの停止 (shutdown) または再起動 (reboot) +を意味する。またその端末名が \fB|\fP と \fB}\fP の対は .BR date (1) -¥³¥Þ¥ó¥É¤ÇÊѹ¹¤·¤¿¿·¡¿µì¤Î¥·¥¹¥Æ¥à»þ¹ï¤òµ­Ï¿¤·¤Æ¤¤¤ë¡£ -\fIwtmp\fP ¥Õ¥¡¥¤¥ë¤Ï +コマンドで変更した新/旧のシステム時刻を記録している。 +\fIwtmp\fP ファイルは .BR login (1), .BR init (8) -¤ä¤¤¤¯¤Ä¤«¤Î¥Ð¡¼¥¸¥ç¥ó¤Î +やいくつかのバージョンの .BR getty (8) .RB ( mingetty (8) -¤Þ¤¿¤Ï +または .BR agetty (8)) -¤Ë¤è¤ê´ÉÍý¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Î¥×¥í¥°¥é¥à¤Ï¤É¤ì¤â¥Õ¥¡¥¤¥ë¤ò¿·¤¿¤ËºîÀ®¤·¤Ê¤¤¤Î¤Ç¡¢ -¥Õ¥¡¥¤¥ë¤òºï½ü¤¹¤ë¤³¤È¤Ç¾ðÊó¤Îµ­Ï¿ (record-keeping) ¤ò»ß¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.SH ¥Õ¥¡¥¤¥ë +により管理されている。 +これらのプログラムはどれもファイルを新たに作成しないので、 +ファイルを削除することで情報の記録 (record-keeping) を止めることができる。 +.SH ファイル /var/run/utmp .br /var/log/wtmp -.SH ½àµò +.SH 準拠 .PP -POSIX.1 ¤Ç¤Ï¡¢ +POSIX.1 では、 .I utmp -¹½Â¤ÂΤǤϤʤ¯¡¢ +構造体ではなく、 .I utmpx -¹½Â¤ÂΤòµ¬Äꤷ¤Æ¤¤¤ë¡£ +構造体を規定している。 .I utmpx -¹½Â¤ÂΤǵ¬Äꤵ¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢¥Õ¥£¡¼¥ë¥É +構造体で規定されているのは、フィールド .IR ut_type , .IR ut_pid , .IR ut_line , .IR ut_id , .IR ut_user , .IR ut_tv -¤Ç¤¢¤ë¡£ -POSIX.1 ¤Ç¤Ï¡¢¥Õ¥£¡¼¥ë¥É +である。 +POSIX.1 では、フィールド .I ut_line -¤È +と .I ut_user -¤ÎŤµ¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +の長さは規定されていない。 -Linux ¤Ç¤Ï¡¢ +Linux では、 .I utmpx -¹½Â¤ÂΤÎÄêµÁ¤Ï +構造体の定義は .I utmp -¹½Â¤ÂΤÈƱ¤¸¤Ç¤¢¤ë¡£ -.SS ²áµî¤Î¥·¥¹¥Æ¥à¤È¤ÎÈæ³Ó -Linux ¤Ç¤Î utmp ¤Î¥¨¥ó¥È¥ê¤Ï v7/BSD ¤ä System V ¤Î¤¤¤º¤ì¤Ë¤â½àµò¤·¤Æ¤ª¤é¤º¡¢ -¤½¤ÎξÊý¤¬º®ºß¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +構造体と同じである。 +.SS 過去のシステムとの比較 +Linux での utmp のエントリは v7/BSD や System V のいずれにも準拠しておらず、 +その両方が混在したものである。 -v7/BSD ¤Ç¤Ï¤è¤ê¾¯¤·¤Î¹àÌܤ·¤«¤Ê¤¤; -¤â¤Ã¤È¤â½ÅÍפʤ³¤È¤Ï¡¢\fIut_type\fP ¤¬Ìµ¤¤¤³¤È¤Ç¤¢¤ë¡£ -¤½¤Î¤¿¤á v7/BSD ·Ï¤Î¥×¥í¥°¥é¥à¤Ç¤Ï (¤¿¤È¤¨¤Ð) »à¤ó¤À¾õÂ֤Υ¨¥ó¥È¥ê¤ä -¥í¥°¥¤¥ó¾õÂ֤Υ¨¥ó¥È¥ê¤Þ¤Çɽ¼¨¤µ¤ì¤Æ¤·¤Þ¤¦¤³¤È¤Ë¤Ê¤Ã¤¿¡£ -¤µ¤é¤Ë¥»¥Ã¥·¥ç¥óÍѤΥ¹¥í¥Ã¥È¤ò³ä¤êÅö¤Æ¤ë¤¿¤á¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤¬¤Ê¤¤¡£ -BSD ¤ËÀßÄê¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¤Î¤Ï \fIut_id\fP ¤¬¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +v7/BSD ではより少しの項目しかない; +もっとも重要なことは、\fIut_type\fP が無いことである。 +そのため v7/BSD 系のプログラムでは (たとえば) 死んだ状態のエントリや +ログイン状態のエントリまで表示されてしまうことになった。 +さらにセッション用のスロットを割り当てるための設定ファイルがない。 +BSD に設定ファイルがあるのは \fIut_id\fP がないからである。 -Linux (System V ·Ï)¤Ç¤Ï¡¢ÀßÄê¥Õ¥¡¥¤¥ë¤òɬÍפȤ»¤º -¥»¥Ã¥·¥ç¥óÍѤΥ¹¥í¥Ã¥È¤ò³ä¤êÅö¤Æ¤ë¤Î¤Ç¡¢°ìöÀßÄê -¤µ¤ì¤Æ¤·¤Þ¤¦¤È¥ì¥³¡¼¥É¤Î \fIut_id\fP ¤Ï·è¤·¤ÆÊѹ¹¤µ¤ì¤Ê¤¤¡£ -\fIut_id\fP ¤ò¥¯¥ê¥¢¤¹¤ë¤È¶¥¹ç¾õÂ֤ˤª¤Á¤¤¤ê¡¢ -utmp ¤Î¥¨¥ó¥È¥ê¤ò²õ¤·¤¿¤ê¡¢ÀøºßŪ¤Ê¥»¥­¥å¥ê¥Æ¥£¥Û¡¼¥ë¤Ë¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¾å½Ò¤Î¥Õ¥£¡¼¥ë¥É¤ò NULL ¥Ð¥¤¥È¤ÇËä¤á¤Æ¥¯¥ê¥¢¤·¤Æ¤ª¤¯¤Î¤Ï¡¢ -System V ¤Ç¤Î¼è¤ê·è¤á¤Ç¤ÏɬÍפȤϤµ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -BSD ¤Ç¤Î¼è¤ê·è¤á¤òÁ°Äó¤È¤·¤Æ¤¤¤Æ¡¢¤«¤Ä utmp ¤ò¹¹¿·¤·¤Ê¤¤Â¿¤¯¤Î¥×¥í¥°¥é¥à¤¬ -Æ°ºî¤¹¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ç¤¢¤ë¡£ -Linux ¤Ç¤Ï¤³¤³¤Þ¤Çµ­½Ò¤·¤Æ¤­¤¿¤è¤¦¤Ë¡¢¹ÔÆâÍƤÎɽ¼¨¤Ï BSD ¤Î´·Îã¤Ë½¾¤Ã¤Æ¤¤¤ë¡£ +Linux (System V ç³»)では、設定ファイルを必要とせず +セッション用のスロットを割り当てるので、一旦設定 +されてしまうとレコードの \fIut_id\fP は決して変更されない。 +\fIut_id\fP をクリアすると競合状態におちいり、 +utmp のエントリを壊したり、潜在的なセキュリティホールになる可能性がある。 +上述のフィールドを NULL バイトで埋めてクリアしておくのは、 +System V での取り決めでは必要とはされていないが、 +BSD での取り決めを前提としていて、かつ utmp を更新しない多くのプログラムが +動作するようにするためである。 +Linux ではここまで記述してきたように、行内容の表示は BSD の慣例に従っている。 .PP .\" mtk: What is the referrent of "them" in the following sentence? -.\" System V ¤Ç¤Ï ut_type ¤òÌÜ°õ¤Ë¤·¤¿¤ê¡¢¤¿¤È¤¨¤Ð \fB"new time"\fP ¤Î¤è¤¦¤Ê -.\" ÄÌÃÎ¥á¥Ã¥»¡¼¥¸¤òµ­Ï¿¤¹¤ë¤¿¤á¤Î¤ß¤Ë»È¤Ã¤Æ¤¤¤ë¡£ -\fBUT_UNKNOWN\fP ¤Ï Linux ¤Çºî¤é¤ì¤¿¤â¤Î¤Î¤è¤¦¤Ç¤¢¤ë¡£ -System V ¤Ë¤Ï \fIut_host\fP ¤â \fIut_addr_v6\fP ¤â¸ºß¤·¤Ê¤¤¡£ -.SH Ãí°Õ +.\" System V では ut_type を目印にしたり、たとえば \fB"new time"\fP のような +.\" 通知メッセージを記録するためのみに使っている。 +\fBUT_UNKNOWN\fP は Linux で作られたもののようである。 +System V には \fIut_host\fP も \fIut_addr_v6\fP も存在しない。 +.SH 注意 .PP -¥Õ¥¡¥¤¥ë¤òºï½ü¤¹¤ë¤³¤È¤Ç utmp ¤Ø¤Îµ­Ï¿¤ò»ß¤á¤é¤ì¤ë -¾¤ÎÍÍ¡¹¤Ê¥·¥¹¥Æ¥à¤È¤Ï°ã¤¤¡¢Linux ¤Ç¤Ï utmp ¥Õ¥¡¥¤¥ë¤òɬ¤º¤ª¤¤¤Æ -¤ª¤¯É¬Íפ¬¤¢¤ë¡£ +ファイルを削除することで utmp への記録を止められる +他の様々なシステムとは違い、Linux では utmp ファイルを必ずおいて +おく必要がある。 .BR who (1) -¥³¥Þ¥ó¥É¤¬µ¡Ç½¤·¤Ê¤¤¤è¤¦¤Ë¤·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ -utmp ¥Õ¥¡¥¤¥ë¤ÎÁ´¥æ¡¼¥¶¡¼¤ËÂФ¹¤ëÆɤ߼è¤êµö²Ä¤òÀßÄꤷ¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£ +コマンドが機能しないようにしたい場合には、 +utmp ファイルの全ユーザーに対する読み取り許可を設定しないようにする。 .PP -¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¥Þ¥·¥ó¤Ë°Í¸¤¹¤ë¤Î¤Ç¡¢¥Õ¥¡¥¤¥ë¤¬ºî¤é¤ì¤¿ -¥Þ¥·¥ó¤â¤·¤¯¤ÏƱ°ì¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î¥Þ¥·¥ó¾å¤Ç¤Î¤ß½èÍý¤¹¤ë¤³¤È¤ò¿ä¾©¤¹¤ë¡£ +ファイルのフォーマットはマシンに依存するので、ファイルが作られた +マシンもしくは同一アーキテクチャのマシン上でのみ処理することを推奨する。 .PP -Ãí°Õ¤¹¤Ù¤­ÅÀ¤È¤·¤Æ¤Ï¡¢ -\fIbiarch\fP ¤Ê¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¡¢¤Ä¤Þ¤ê 32¥Ó¥Ã¥È¤È 64¥Ó¥Ã¥È¤ÎξÊý¤Î -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¼Â¹Ô¤Ç¤­¤ë¥·¥¹¥Æ¥à (x86-64, ppc64, s390x ¤Ê¤É) ¤Ç¤Ï¡¢ -\fIut_tv\fP ¤Î¥µ¥¤¥º¤Ï 32¥Ó¥Ã¥È¥â¡¼¥É¤È 64¥Ó¥Ã¥È¥â¡¼¥É¤ÇƱ¤¸¤Ç¤¢¤ë¡£ -\fIut_session\fP ¤È \fIut_time\fP ¤â¡¢Â¸ºß¤¹¤ë¾ì¹ç¤Ë¤ÏƱÍͤËƱ¤¸¥µ¥¤¥º -¤Ç¤¢¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢32¥Ó¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤È 64¥Ó¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó -¤Î´Ö¤Ç¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤È¶¦Í­¥á¥â¥ê¤ò¶¦Í­¤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¡£ -¤½¤Î¤¿¤á¤Ë¤Ï¡¢ +注意すべき点としては、 +\fIbiarch\fP なプラットフォーム、つまり 32ビットと 64ビットの両方の +アプリケーションを実行できるシステム (x86-64, ppc64, s390x など) では、 +\fIut_tv\fP のサイズは 32ビットモードと 64ビットモードで同じである。 +\fIut_session\fP と \fIut_time\fP も、存在する場合には同様に同じサイズ +である。これにより、32ビットアプリケーションと 64ビットアプリケーション +の間でデータファイルと共有メモリを共有することが可能になる。 +そのためには、 .I ut_session -¤ò +を .I int32_t -·¿¤Ë¡¢ +型に、 .I ut_tv -¤ò 2¤Ä¤Î +を 2つの .I int32_t -·¿¤Î¥Õ¥£¡¼¥ë¥É +型のフィールド .IR tv_sec , .I tv_usec -¤ò»ý¤Ä¹½Â¤ÂΤËÊѹ¹¤¹¤ì¤Ð¤è¤¤ -\fIut_tv\fP ¤Ï \fIstruct timeval\fP ¤ÈƱ¤¸¥µ¥¤¥º¤È¤Ï¸Â¤é¤Ê¤¤¤Î¤Ç¡¢ +を持つ構造体に変更すればよい +\fIut_tv\fP は \fIstruct timeval\fP と同じサイズとは限らないので、 .in +4n .nf .sp @@ -328,8 +328,8 @@ gettimeofday((struct timeval *) &ut.ut_tv, NULL); .fi .in -¤Î¤è¤¦¤Ê¸Æ¤Ó½Ð¤·¤ò¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ -°Ê²¼¤Î¤è¤¦¤Ë³Æ¥Õ¥£¡¼¥ë¥É¤òÀßÄꤹ¤ëÊýË¡¤¬¿ä¾©¤µ¤ì¤ë: +のような呼び出しをするのではなく、 +以下のように各フィールドを設定する方法が推奨される: .in +4n .nf .sp @@ -342,14 +342,14 @@ ut.ut_tv.tv_usec = tv.tv_usec; .fi .in .PP -utmp ¹½Â¤ÂÎ¤Ï libc5 ¤«¤é libc6 ¤ÇÊѹ¹¤µ¤ì¤¿¡£¤½¤Î¤¿¤áÀΤΠlibc5 ¤Î¹½Â¤ÂÎ -¤ò»È¤Ã¤¿¥×¥í¥°¥é¥à¤Ï -.IR /var/run/utmp " ¤ä " /var/log/wtmp -¥Õ¥¡¥¤¥ë¤ò²õ¤·¤Æ¤·¤Þ¤¦¡£ -.SH ¥Ð¥° -¤³¤Î man ¥Ú¡¼¥¸¤Ï libc5 ¤Ë´ð¤Å¤¤¤Æºî¤é¤ì¤Æ¤¤¤Æ¡¢ -ºÇ¿·¤Î¤â¤Î¤Ç¤Ï°ã¤Ã¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +utmp 構造体は libc5 から libc6 で変更された。そのため昔の libc5 の構造体 +を使ったプログラムは +.IR /var/run/utmp " や " /var/log/wtmp +ファイルを壊してしまう。 +.SH バグ +この man ページは libc5 に基づいて作られていて、 +最新のものでは違っているかもしれない。 +.SH 関連項目 .BR ac (1), .BR date (1), .BR last (1), diff --git a/release/man6/intro.6 b/release/man6/intro.6 index cb341f06..337f4ab6 100644 --- a/release/man6/intro.6 +++ b/release/man6/intro.6 @@ -29,12 +29,12 @@ .\" by MAEHARA Kohichi .\" .TH INTRO 6 2007-10-23 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -intro \- ¥²¡¼¥à¥×¥í¥°¥é¥à¤Î¾Ò²ð -.SH ÀâÌÀ -¥Þ¥Ë¥å¥¢¥ë¤Î 6 ¾Ï¤Ï¡¢ËÜ¥·¥¹¥Æ¥à¤ÇÍøÍѲÄǽ¤Ê¤¹¤Ù¤Æ¤Î¥²¡¼¥à¤È -³Ú¤·¤¤¾®Êª¥×¥í¥°¥é¥à¤Ë¤Ä¤¤¤Æµ­ºÜ¤·¤Æ¤¤¤ë¡£ -.SH È÷¹Í -.SS Ãø¼Ô¤ÈÃøºî¸¢ -Ãø¼Ô(ã)¤È¸¢Íø¾ò·ï¤Ë¤Ä¤¤¤Æ¤Ï¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¥½¡¼¥¹¤Î¥Ø¥Ã¥À¤ò»²¾È¤¹¤ë¤³¤È¡£ -¤¿¤À¤·¥Ú¡¼¥¸¤Ë¤è¤Ã¤Æ¤Ï°Û¤Ê¤ë¤â¤Î¤â¤¢¤ë¤³¤È¤ËÃí°Õ¤»¤è¡£ +.SH 名前 +intro \- ゲームプログラムの紹介 +.SH 説明 +マニュアルの 6 章は、本システムで利用可能なすべてのゲームと +楽しい小物プログラムについて記載している。 +.SH 備考 +.SS 著者と著作権 +著者(達)と権利条件についてはマニュアルページのソースのヘッダを参照すること。 +ただしページによっては異なるものもあることに注意せよ。 diff --git a/release/man7/arp.7 b/release/man7/arp.7 index 0b6b2a67..219204f0 100644 --- a/release/man7/arp.7 +++ b/release/man7/arp.7 @@ -12,91 +12,91 @@ .\" Updated & Modified 2001-02-16, NAKANO Takeo .\" Updated 2008-12-26, Akihiro MOTOKI, LDP v3.14 .\" -.\"WORD permanent Êݸ -.\"WORD neighbor cache entry ¶á˵¥­¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê -.\"WORD stale ¸Å¤¯¤Ê¤Ã¤¿ -.\"WORD proxy arp ÂåÍý arp -.\"WORD garbage collect (-or) ¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥È(¥³¥ì¥¯¥¿) -.\"WORD capability ¸¢¸Â -.\"WORD neighbor soliciation message ¶á˵Í×ÀÁ¥á¥Ã¥»¡¼¥¸ -.\"WORD network flooding ¥Í¥Ã¥È¥ï¡¼¥¯¡¦¥Õ¥é¥Ã¥Ç¥£¥ó¥° -.\"WORD thrashing ¥¹¥é¥Ã¥·¥ó¥° -.\"WORD connection oriented Àܳ»Ø¸þ -.\"WORD forward progress ¥Õ¥©¥ï¡¼¥É¥×¥í¥°¥ì¥¹ +.\"WORD permanent 保存 +.\"WORD neighbor cache entry 近傍キャッシュエントリ +.\"WORD stale 古くなった +.\"WORD proxy arp 代理 arp +.\"WORD garbage collect (-or) ガベージ・コレクト(コレクタ) +.\"WORD capability 権限 +.\"WORD neighbor soliciation message 近傍要請メッセージ +.\"WORD network flooding ネットワーク・フラッディング +.\"WORD thrashing スラッシング +.\"WORD connection oriented 接続指向 +.\"WORD forward progress フォワードプログレス .\" .TH ARP 7 2008-11-25 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -arp \- Linux ARP ¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë -.SH ÀâÌÀ -¤³¤Î¥«¡¼¥Í¥ë¥×¥í¥È¥³¥ë¥â¥¸¥å¡¼¥ë¤Ï¡¢ -RFC\ 826 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë Address Resolution Protocol ¤ò -¼ÂÁõ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ ARP ¤Ï¡¢¥À¥¤¥ì¥¯¥È¤ËÀܳ¤µ¤ì¤¿¥Í¥Ã¥È¥ï¡¼¥¯¾å¤Ç¡¢ -Âè 2 ÁؤΥϡ¼¥É¥¦¥§¥¢¥¢¥É¥ì¥¹¤òIPv4 ¥×¥í¥È¥³¥ë¥¢¥É¥ì¥¹¤Ë -ÊÑ´¹¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£¥æ¡¼¥¶¡¼¤ÏÀßÄê¤Î¾ì¹ç¤ò½ü¤¤¤Æ -Ä̾ïľÀܤ³¤Î¥â¥¸¥å¡¼¥ë¤Ë´Ø¤ë¤³¤È¤Ï¤Ê¤¤¡£ -¤³¤ì¤Ï¥«¡¼¥Í¥ëÆâÉô¤Î¾¤Î¥×¥í¥È¥³¥ë¤Ë¥µ¡¼¥Ó¥¹¤òÄ󶡤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +.SH 名前 +arp \- Linux ARP カーネルモジュール +.SH 説明 +このカーネルプロトコルモジュールは、 +RFC\ 826 で定義されている Address Resolution Protocol を +実装したものである。 ARP は、ダイレクトに接続されたネットワーク上で、 +第 2 層のハードウェアアドレスをIPv4 プロトコルアドレスに +変換するために用いられる。ユーザーは設定の場合を除いて +通常直接このモジュールに関ることはない。 +これはカーネル内部の他のプロトコルにサービスを提供するものである。 .PP -¥æ¡¼¥¶¡¼¥×¥í¥»¥¹¤Ï¡¢ +ユーザープロセスは、 .BR packet (7) -¥½¥±¥Ã¥È¤òÍѤ¤¤ì¤Ð ARP ¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -ARP ¥­¥ã¥Ã¥·¥å¤ò¥æ¡¼¥¶¡¼¶õ´Ö¤Ç´ÉÍý¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¤³¤ì¤Ë¤Ï +ソケットを用いれば ARP パケットを受信することができる。 +ARP キャッシュをユーザー空間で管理することもできる。 +これには .BR netlink (7) -¤òÍѤ¤¤ë¡£ ARP ¥Æ¡¼¥Ö¥ë¤âÀ©¸æ²Äǽ¤Ç¡¢¤³¤ì¤Ë¤ÏǤ°Õ¤Î +を用いる。 ARP テーブルも制御可能で、これには任意の .B AF_INET -¥½¥±¥Ã¥È¤Ë +ソケットに .BR ioctl (2) -¤òÍѤ¤¤ë¡£ +を用いる。 .PP -ARP ¥â¥¸¥å¡¼¥ë¤Ï¥Ï¡¼¥É¥¦¥§¥¢¥¢¥É¥ì¥¹¤«¤é¥×¥í¥È¥³¥ë¥¢¥É¥ì¥¹¤Ø¤Î -¥Þ¥Ã¥Ô¥ó¥°¤Î¥­¥ã¥Ã¥·¥å¤ò´ÉÍý¤¹¤ë¡£¥­¥ã¥Ã¥·¥å¤ÎÂ礭¤µ¤Ë¤ÏÀ©¸Â¤¬ -¤¢¤ë¤Î¤Ç¡¢¸Å¤¤¥¨¥ó¥È¥ê¤äÍøÍѤµ¤ì¤Ê¤¤¥¨¥ó¥È¥ê¤Ï¥¬¥Ù¡¼¥¸¥³¥ì¥¯¥È -¤µ¤ì¤ë¡£ permanent (Êݸ) ¥Þ¡¼¥¯¤¬¤Ä¤±¤é¤ì¤¿¥¨¥ó¥È¥ê¤Ï¡¢ -·è¤·¤Æ¥¬¥Ù¡¼¥¸¥³¥ì¥¯¥¿¤Ë¤è¤Ã¤Æ¾Ãµî¤µ¤ì¤Ê¤¤¡£ -ioctl ¤òÍѤ¤¤ì¤Ð¥­¥ã¥Ã¥·¥å¤òľÀÜÁàºî¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¤Þ¤¿¸å½Ò¤Î +ARP モジュールはハードウェアアドレスからプロトコルアドレスへの +マッピングのキャッシュを管理する。キャッシュの大きさには制限が +あるので、古いエントリや利用されないエントリはガベージコレクト +される。 permanent (保存) マークがつけられたエントリは、 +決してガベージコレクタによって消去されない。 +ioctl を用いればキャッシュを直接操作することもできる。 +また後述の .I /proc -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë¤è¤ê¥­¥ã¥Ã¥·¥å¤Î¿¶¤ëÉñ¤¤¤òÄ´À°¤Ç¤­¤ë¡£ +インタフェースによりキャッシュの振る舞いを調整できる。 .PP -¸ºß¤·¤Æ¤¤¤ë¥Þ¥Ã¥Ô¥ó¥°¤ËÂФ·¤Æ¡¢ -Àµ¤Î¥Õ¥£¡¼¥É¥Ð¥Ã¥¯¤¬°ìÄê»þ´Ö¤Ê¤¤ (¸å½Ò¤Î +存在しているマッピングに対して、 +正のフィードバックが一定時間ない (後述の .I /proc -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò¸«¤è) ¤È¡¢ -¶á˵¥­¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê (neighbor cache entry) ¤Ï -¸Å¤¯¤Ê¤Ã¤¿ (stale) ¤È¤ß¤Ê¤µ¤ì¤ë¡£ -Àµ¤Î¥Õ¥£¡¼¥É¥Ð¥Ã¥¯¤Ï¹â°Ì¤Î¥ì¥¤¥ä¡¼¤«¤é¤â¼èÆÀ¤Ç¤­¤ë -(Î㤨¤Ð TCP ACK ¤¬À®¸ù¤·¤¿¾ì¹ç¤Ê¤É)¡£ -¾¤Î¥×¥í¥È¥³¥ë¤Ï¡¢ +インタフェースを見よ) と、 +近傍キャッシュエントリ (neighbor cache entry) は +古くなった (stale) とみなされる。 +正のフィードバックは高位のレイヤーからも取得できる +(例えば TCP ACK が成功した場合など)。 +他のプロトコルは、 .BR sendmsg (2) -¤Ë +に .B MSG_CONFIRM -¥Õ¥é¥°¤òÍѤ¤¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢ -¥Õ¥©¥ï¡¼¥É¥×¥í¥°¥ì¥¹ (forward progress) ¤ò¥·¥°¥Ê¥ë¤Ç¤­¤ë¡£ -¥Õ¥©¥ï¡¼¥É¥×¥í¥°¥ì¥¹¤¬¤Ê¤±¤ì¤Ð¡¢ -ARP ¤ÏºÆ¤Ó¥×¥í¡¼¥Ö¤ò»î¤ß¤ë¡£ -¤Þ¤º¥í¡¼¥«¥ë¤Ê arp ¥Ç¡¼¥â¥ó¤ËÌä¹ç¤ï¤»¤ò¹Ô¤¤¡¢ -¹¹¿·¤µ¤ì¤¿ MAC ¥¢¥É¥ì¥¹¤ò¼èÆÀ¤·¤è¤¦¤È¤¹¤ë¡£ -¤³¤Î¥ê¥¯¥¨¥¹¥È¤Ë +フラグを用いることによって、 +フォワードプログレス (forward progress) をシグナルできる。 +フォワードプログレスがなければ、 +ARP は再びプローブを試みる。 +まずローカルな arp デーモンに問合わせを行い、 +更新された MAC アドレスを取得しようとする。 +このリクエストに .B app_solicit -²ó¼ºÇÔ¤¹¤ë¤È¡¢¸Å¤¤ MAC ¥¢¥É¥ì¥¹¤¬¤ï¤«¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ -unicast ¤Î¥×¥í¡¼¥Ö¤¬ +回失敗すると、古い MAC アドレスがわかっている場合は、 +unicast のプローブが .B ucaset_solicit -²óÁ÷¤é¤ì¤ë¡£¤³¤ì¤Ë¤â¼ºÇÔ¤¹¤ë¤È¡¢¿·¤·¤¤ ARP ¥ê¥¯¥¨¥¹¥È -¤ò¥Í¥Ã¥È¥ï¡¼¥¯¤Ë¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¤¹¤ë¡£ -¥ê¥¯¥¨¥¹¥È¤Ï¡¢¥Ç¡¼¥¿¤¬Á÷¿®¥­¥å¡¼¤Ë¤Ê¤±¤ì¤ÐÁ÷¤é¤ì¤Ê¤¤¡£ +回送られる。これにも失敗すると、新しい ARP リクエスト +をネットワークにブロードキャストする。 +リクエストは、データが送信キューになければ送られない。 .PP -Linux ¤Ï¡¢¤¢¤ë¥¢¥É¥ì¥¹¤Ø¤Î¥ê¥¯¥¨¥¹¥È¤ò¼õ¿®¡¦¥Õ¥©¥ï¡¼¥É¤·¡¢ -¼õ¿®¤·¤¿¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÇÂåÍý arp ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -¼«Æ°Åª¤Ë¤½¤Î¥¢¥É¥ì¥¹¤ò nonpermanent ¤ÊÂåÍý arp ¥¨¥ó¥È¥ê¤ËÄɲ乤롣 -¤½¤Î¥¿¡¼¥²¥Ã¥È¤Ë reject route ¤¬¤¢¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ -ÂåÍý arp ¥¨¥ó¥È¥ê¤Ï°ìÀÚÄɲ䵤ì¤Ê¤¤¡£ +Linux は、あるアドレスへのリクエストを受信・フォワードし、 +受信したインターフェースで代理 arp が有効になっている場合には、 +自動的にそのアドレスを nonpermanent な代理 arp エントリに追加する。 +そのターゲットに reject route があった場合には、 +代理 arp エントリは一切追加されない。 .SS ioctl -¤¹¤Ù¤Æ¤Î +すべての .B AF_INET -¥½¥±¥Ã¥È¤Ç¤Ï¡¢ 3 ¤Ä¤Î ioctl ¤¬»ÈÍѤǤ­¤ë¡£ -¤³¤ì¤é¤Ï +ソケットでは、 3 つの ioctl が使用できる。 +これらは .I struct arpreq -¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò°ú¿ô¤Ë¼è¤ë¡£ +へのポインタを引数に取る。 .in +4n .nf @@ -111,223 +111,223 @@ struct arpreq { .in .BR SIOCSARP ", " SIOCDARP ", " SIOCGARP -¤Ï¡¢¤½¤ì¤¾¤ì ARP ¥Þ¥Ã¥Ô¥ó¥°¤òÀßÄꡦºï½ü¡¦¼èÆÀ¤¹¤ë¡£ -ARP ¥Þ¥Ã¥×¤ÎÀßÄê¤Èºï½ü¤ÏÆø¢¤¬É¬ÍפÊÁàºî¤Ç¤¢¤ê¡¢ +は、それぞれ ARP マッピングを設定・削除・取得する。 +ARP マップの設定と削除は特権が必要な操作であり、 .B CAP_NET_ADMIN -¸¢¸Â¤ò»ý¤Ä¥×¥í¥»¥¹¤«¡¢¼Â¹Ô¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤Î¥×¥í¥»¥¹ -¤Ç¤Ê¤±¤ì¤Ð¼Â¹Ô¤Ç¤­¤Ê¤¤¡£ +権限を持つプロセスか、実行ユーザー ID が 0 のプロセス +でなければ実行できない。 .PP .I arp_pa -¤Ï +は .B AF_INET -¥¢¥É¥ì¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ +アドレスでなければならず、 .I arp_ha -¤Ï +は .I arp_dev -¤ÇÀßÄꤵ¤ì¤¿¥Ç¥Ð¥¤¥¹¤ÈƱ¤¸¥¿¥¤¥×¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +で設定されたデバイスと同じタイプでなければならない。 .I arp_dev -¤Ï¥Ç¥Ð¥¤¥¹¤Î̾Á°¤ò¼¨¤¹¡¢¥¼¥í¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ç¤¢¤ë¡£ +はデバイスの名前を示す、ゼロで終端された文字列である。 .RS .TS tab(:) allbox; c s l l. \fIarp_flags\fR -¥Õ¥é¥°:°ÕÌ£ -ATF_COM:»²¾È´°Î» -ATF_PERM:¥¨¥ó¥È¥ê¤ò peramanent ¤Ë¤¹¤ë -ATF_PUBL:¥¨¥ó¥È¥ê¤ò publish ¤¹¤ë -ATF_USETRAILERS:trailer ¤¬É¬Í× -ATF_NETMASK:netmask ¤òÍѤ¤¤ë -ATF_DONTPUB:²óÅú¤·¤Ê¤¤ +フラグ:意味 +ATF_COM:参照完了 +ATF_PERM:エントリを peramanent にする +ATF_PUBL:エントリを publish する +ATF_USETRAILERS:trailer が必要 +ATF_NETMASK:netmask を用いる +ATF_DONTPUB:回答しない .TE .RE .PP .B ATF_NETMASK -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ë¤Ï¡¢ +フラグがセットされているときには、 .I arp_netmask -¤¬Í­¸ú¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Linux 2.2 ¤ÏÂåÍý¥Í¥Ã¥È¥ï¡¼¥¯ ARP ¥¨¥ó¥È¥ê¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢ -¤³¤ì¤Ï 0xffffffff ¤Ë¥»¥Ã¥È¤·¤Æ¤ª¤¯¤«¡¢¤¢¤ë¤¤¤Ï -¸½Â¸¤ÎÂåÍý arp ¥¨¥ó¥È¥ê¤òºï½ü¤·¤¿¤¤¾ì¹ç¤Ë¤Ï 0 ¤Ë¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¡£ +が有効でなければならない。 +Linux 2.2 は代理ネットワーク ARP エントリをサポートしていないので、 +これは 0xffffffff にセットしておくか、あるいは +現存の代理 arp エントリを削除したい場合には 0 にしておく必要がある。 .B ATF_USETRAILERS -¤Ï obsolete ¤Ê¤Î¤Ç¡¢ÍѤ¤¤ë¤Ù¤­¤Ç¤Ê¤¤¡£ -.SS /proc ¥¤¥ó¥¿¥Õ¥§¡¼¥¹ -ARP ¤Ç¤Ï¡¢¥°¥í¡¼¥Ð¥ë¤Ê¥Ñ¥é¥á¡¼¥¿¤ä¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤´¤È¤Î¥Ñ¥é¥á¡¼¥¿¤ò +は obsolete なので、用いるべきでない。 +.SS /proc インタフェース +ARP では、グローバルなパラメータやインターフェースごとのパラメータを .I /proc -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ̤·¤ÆÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤é¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë¤Ï¡¢ +インタフェースを通して設定することができる。 +これらのインタフェースには、 .I proc/sys/net/ipv4/neigh/*/* -¥Õ¥¡¥¤¥ë¤ÎÆɤ߽ñ¤­¤Ë¤è¤ê¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ -¥·¥¹¥Æ¥à¤Ë¤¢¤ë¤½¤ì¤¾¤ì¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤Ï¡¢ -¤½¤ì¤¾¤ìÂбþ¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤¬ +ファイルの読み書きによりアクセスできる。 +システムにあるそれぞれのインターフェースには、 +それぞれ対応するディレクトリが .I /proc/sys/net/ipv4/neigh/ -°Ê²¼¤Ë¤¢¤ë¡£ -"default" ¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ·¤ÆÀßÄê¤ò¤¹¤ë¤È¡¢ -¤½¤ì°Ê¹ßÀ¸À®¤µ¤ì¤ë¥Ç¥Ð¥¤¥¹Á´¤Æ¤ËÂФ·¤Æ¤½¤ÎÀßÄ꤬ÍѤ¤¤é¤ì¤ë¡£ -Æä˻ØÄ꤬¤Ê¤±¤ì¤Ð¡¢»þ´Ö¤Ë´Ø¤ë sysctl ¤Îñ°Ì¤ÏÉäǤ¢¤ë¡£ +以下にある。 +"default" ディレクトリに対して設定をすると、 +それ以降生成されるデバイス全てに対してその設定が用いられる。 +特に指定がなければ、時間に関る sysctl の単位は秒である。 .TP -.IR anycast_delay " (Linux 2.2 °Ê¹ß)" +.IR anycast_delay " (Linux 2.2 以降)" .\" Precisely: 2.1.79 -IPv6 ¤Î¶á˵Í×ÀÁ¥á¥Ã¥»¡¼¥¸ (neighbor soliciation message) -¤Ë±þÅú¤¹¤ë¤Þ¤Ç¤ÎºÇÂçÃÙ±ä»þ´Ö (jiffy ñ°Ì)¡£ -anycast ¤Î¥µ¥Ý¡¼¥È¤Ï¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 1 Éᣠ+IPv6 の近傍要請メッセージ (neighbor soliciation message) +に応答するまでの最大遅延時間 (jiffy 単位)。 +anycast のサポートはまだ実装されていない。 +デフォルトは 1 秒。 .TP -.IR app_solicit " (Linux 2.2 °Ê¹ß)" +.IR app_solicit " (Linux 2.2 以降)" .\" Precisely: 2.1.79 -¥æ¡¼¥¶¡¼¶õ´Ö¤Î ARP ¥Ç¡¼¥â¥ó¤Ë netlink ¤òÍѤ¤¤Æõº÷¤µ¤»¤ëºÇÂç²ó¿ô¡£ -¤³¤ì¤ò±Û¤¨¤ë¤È¥Þ¥ë¥Á¥­¥ã¥¹¥È¤Ë¤è¤ëõº÷¤Ë°Ü¹Ô¤¹¤ë +ユーザー空間の ARP デーモンに netlink を用いて探索させる最大回数。 +これを越えるとマルチキャストによる探索に移行する .RI ( mcast_solicit -¤ò¸«¤è)¡£ +を見よ)。 .TP -.IR base_reachable_time " (Linux 2.2 °Ê¹ß)" +.IR base_reachable_time " (Linux 2.2 以降)" .\" Precisely: 2.1.79 -¶á˵¤Î¥Û¥¹¥È¤¬¤ß¤Ä¤«¤ë¤È¡¢¤½¤Î¥¨¥ó¥È¥ê¤Ï -.IR base_reachable_time "/2 ¤«¤é 3*" base_reachable_time /2 -¤Î´Ö¤Î¥é¥ó¥À¥à¤ÊÃͤλþ´Ö¡¢Í­¸ú¤Ç¤¢¤ë¤È¤ß¤Ê¤µ¤ì¤ë¡£ -¥¨¥ó¥È¥ê¤ÎÍ­¸úÀ­¤Ï¡¢¹â°Ì¤Î¥×¥í¥È¥³¥ë¤«¤é¥Ý¥¸¥Æ¥£¥Ö¤Ê¥Õ¥£¡¼¥É¥Ð¥Ã¥¯¤ò -¼õ¤±¼è¤ë¤È±äŤµ¤ì¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ï 30 Éᣠ-¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¸½ºß¤ÏÈó¿ä¾©¤Ç¤¢¤ê¡¢Âå¤ï¤ê¤Ë +近傍のホストがみつかると、そのエントリは +.IR base_reachable_time "/2 から 3*" base_reachable_time /2 +の間のランダムな値の時間、有効であるとみなされる。 +エントリの有効性は、高位のプロトコルからポジティブなフィードバックを +受け取ると延長される。デフォルトは 30 秒。 +このファイルは現在は非推奨であり、代わりに .I base_reachable_time_ms -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .TP -.IR base_reachable_time_ms " (Linux 2.6.12 °Ê¹ß)" +.IR base_reachable_time_ms " (Linux 2.6.12 以降)" .I base_reachable_time -¤ÈƱ¤¸¤À¤¬¡¢»þ´Ö¤ò¥ß¥êÉÃñ°Ì¤Ç¬¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 30000 ¥ß¥êÉäǤ¢¤ë¡£ +と同じだが、時間をミリ秒単位で測る。 +デフォルトは 30000 ミリ秒である。 .TP -.IR delay_first_probe_time " (Linux 2.2 °Ê¹ß)" +.IR delay_first_probe_time " (Linux 2.2 以降)" .\" Precisely: 2.1.79 -¶á˵¥Û¥¹¥È¤Î¥¨¥ó¥È¥ê¤¬¸Å¤¯¤Ê¤Ã¤¿¤ÈȽÃǤµ¤ì¤¿¸å¤Ë -ºÇ½é¤Ëõº÷¤ò¹Ô¤¦¤Þ¤Ç¤ÎÃÙ±ä»þ´Ö¡£¥Ç¥Õ¥©¥ë¥È¤Ï 5 Éᣠ+近傍ホストのエントリが古くなったと判断された後に +最初に探索を行うまでの遅延時間。デフォルトは 5 秒。 .TP -.IR gc_interval " (Linux 2.2 °Ê¹ß)" +.IR gc_interval " (Linux 2.2 以降)" .\" Precisely: 2.1.79 -¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥¿¤ò¶á˵¥Û¥¹¥È¥¨¥ó¥È¥ê¤ËÂФ·¤Æ¼Â¹Ô¤µ¤»¤ëÉÑÅÙ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 30 Éᣠ+ガベージ・コレクタを近傍ホストエントリに対して実行させる頻度。 +デフォルトは 30 秒。 .TP -.IR gc_stale_time " (Linux 2.2 °Ê¹ß)" +.IR gc_stale_time " (Linux 2.2 以降)" .\" Precisely: 2.1.79 -¸Å¤¯¤Ê¤Ã¤¿¶á˵¥Û¥¹¥È¥¨¥ó¥È¥ê¤ËÂФ·¤Æ¥Á¥§¥Ã¥¯¤ò¹Ô¤¦ÉÑÅÙ¡£ -¶á˵¥Û¥¹¥È¥¨¥ó¥È¥ê¤¬¸Å¤¯¤Ê¤Ã¤¿¤È¤ß¤Ê¤µ¤ì¤ë¤È¡¢¤½¤Î¥¨¥ó¥È¥ê¤Ë -¥Ç¡¼¥¿¤òÁ÷¤ëÁ°¤Ë¤ÏºÆÅÙ²ò·è¤¬¹Ô¤ï¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 60 Éᣠ+古くなった近傍ホストエントリに対してチェックを行う頻度。 +近傍ホストエントリが古くなったとみなされると、そのエントリに +データを送る前には再度解決が行われる。 +デフォルトは 60 秒。 .TP -.IR gc_thresh1 " (Linux 2.2 °Ê¹ß)" +.IR gc_thresh1 " (Linux 2.2 以降)" .\" Precisely: 2.1.79 -ARP ¥­¥ã¥Ã¥·¥å¤ËÊݸ¤¹¤ë¥¨¥ó¥È¥ê¿ô¤ÎºÇ¾®ÃÍ¡£ -¤³¤Î¿ô¤è¤ê¾¯¤Ê¤¤¥¨¥ó¥È¥ê¤·¤«¥­¥ã¥Ã¥·¥å¤Ë¤Ê¤±¤ì¤Ð¡¢ -¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥¿¤Ï¼Â¹Ô¤µ¤ì¤Ê¤¤¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 128¡£ +ARP キャッシュに保存するエントリ数の最小値。 +この数より少ないエントリしかキャッシュになければ、 +ガベージ・コレクタは実行されない。 +デフォルトは 128。 .TP -.IR gc_thresh2 " (Linux 2.2 °Ê¹ß)" +.IR gc_thresh2 " (Linux 2.2 以降)" .\" Precisely: 2.1.79 -ARP ¥­¥ã¥Ã¥·¥å¤ËÊݸ¤µ¤ì¤ë¥¨¥ó¥È¥ê¿ô¤Î¥½¥Õ¥È¤ÊºÇÂçÃÍ¡£ -¥­¥ã¥Ã¥·¥å¤Î¥¨¥ó¥È¥ê¤¬¤³¤Î¿ô¤ò 5 Éôֱۤ¨¤Ä¤Å¤±¤ë¤È¡¢ -¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥¿¤¬¼Â¹Ô¤µ¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 512¡£ +ARP キャッシュに保存されるエントリ数のソフトな最大値。 +キャッシュのエントリがこの数を 5 秒間越えつづけると、 +ガベージ・コレクタが実行される。 +デフォルトは 512。 .TP -.IR gc_thresh3 " (Linux 2.2 °Ê¹ß)" +.IR gc_thresh3 " (Linux 2.2 以降)" .\" Precisely: 2.1.79 -ARP ¥­¥ã¥Ã¥·¥å¤ËÊݸ¤µ¤ì¤ë¥¨¥ó¥È¥ê¿ô¤Î¥Ï¡¼¥É¤ÊºÇÂçÃÍ¡£ -¥­¥ã¥Ã¥·¥å¤Î¥¨¥ó¥È¥ê¤¬¤³¤Î¿ô¤ò±Û¤¨¤ë¤È¡¢ -¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥¿¤Ï¤¿¤À¤Á¤Ë¼Â¹Ô¤µ¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 1024¡£ +ARP キャッシュに保存されるエントリ数のハードな最大値。 +キャッシュのエントリがこの数を越えると、 +ガベージ・コレクタはただちに実行される。 +デフォルトは 1024。 .TP -.IR locktime " (Linux 2.2 °Ê¹ß)" +.IR locktime " (Linux 2.2 以降)" .\" Precisely: 2.1.79 -ARP ¥¨¥ó¥È¥ê¤ò¥­¥ã¥Ã¥·¥å¤ËÊݸ¤¹¤ë»þ´Ö¤ÎºÇ¾®ÃÍ (jiffy ñ°Ì)¡£ -²ÄǽÀ­¤Î¤¢¤ë¥Þ¥Ã¥Ô¥ó¥°¤¬°ì¤Ä°Ê¾å¤¢¤ë (¤¿¤¤¤Æ¤¤¤Ï¥Í¥Ã¥È¥ï¡¼¥¯ÀßÄê¤Î¥ß¥¹) -¾ì¹ç¤Ë¡¢ ARP ¥­¥ã¥Ã¥·¥å¤Î¥¹¥é¥Ã¥·¥ó¥°¤¬µ¯¤­¤ë¤³¤È¤òËɤ°¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 1 Éᣠ+ARP エントリをキャッシュに保存する時間の最小値 (jiffy 単位)。 +可能性のあるマッピングが一つ以上ある (たいていはネットワーク設定のミス) +場合に、 ARP キャッシュのスラッシングが起きることを防ぐ。 +デフォルトは 1 秒。 .TP -.IR mcast_solicit " (Linux 2.2 °Ê¹ß)" +.IR mcast_solicit " (Linux 2.2 以降)" .\" Precisely: 2.1.79 -¥¨¥ó¥È¥ê¤ò unreachable ¥Þ¡¼¥¯¤¹¤ëÁ°¤Ë¡¢ -¥¢¥É¥ì¥¹¤ò¥Þ¥ë¥Á¥­¥ã¥¹¥È/¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¤Ç²ò·è¤·¤è¤¦¤È¤¹¤ë -»î¹Ô²ó¿ô¤ÎºÇÂçÃÍ¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 3¡£ +エントリを unreachable マークする前に、 +アドレスをマルチキャスト/ブロードキャストで解決しようとする +試行回数の最大値。 +デフォルトは 3。 .TP -.IR proxy_delay " (Linux 2.2 °Ê¹ß)" +.IR proxy_delay " (Linux 2.2 以降)" .\" Precisely: 2.1.79 -´ûÃΤÎÂåÍý ARP ¥¢¥É¥ì¥¹¤ËÂФ·¤Æ ARP ¥ê¥¯¥¨¥¹¥È¤ò¼õ¿®¤·¤¿¾ì¹ç¤Ë¡¢ -±þÅúÁ°¤ËºÇÂç +既知の代理 ARP アドレスに対して ARP リクエストを受信した場合に、 +応答前に最大 .I proxy_delay -jiffy ¤Þ¤ÇÃٱ䤹¤ë¡£¤³¤ì¤Ï¾ì¹ç¤Ë¤è¤Ã¤ÆÀ¸¤¸¤ë -¥Í¥Ã¥È¥ï¡¼¥¯¡¦¥Õ¥é¥Ã¥Ç¥£¥ó¥° (network flooding) ¤òÈò¤±¤ë¤¿¤á¤ËÍѤ¤¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 0.8 Éᣠ+jiffy まで遅延する。これは場合によって生じる +ネットワーク・フラッディング (network flooding) を避けるために用いる。 +デフォルトは 0.8 秒。 .TP -.IR proxy_qlen " (Linux 2.2 °Ê¹ß)" +.IR proxy_qlen " (Linux 2.2 以降)" .\" Precisely: 2.1.79 -ÂåÍý ARP ¥¢¥É¥ì¥¹¤ËÂФ·¤Æ¥­¥å¡¼¥¤¥ó¥°¤Ç¤­¤ëºÇÂç¤Î¥Ñ¥±¥Ã¥È¿ô¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 64¡£ +代理 ARP アドレスに対してキューイングできる最大のパケット数。 +デフォルトは 64。 .TP -.IR retrans_time " (Linux 2.2 °Ê¹ß)" +.IR retrans_time " (Linux 2.2 以降)" .\" Precisely: 2.1.79 -¥ê¥¯¥¨¥¹¥È¤òºÆÅÙÁ÷¤ë¤Þ¤Ç¤ÎÃÙ±ä»þ´Ö (jiffy ñ°Ì)¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 1 Éᣠ-¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¸½ºß¤ÏÈó¿ä¾©¤Ç¤¢¤ê¡¢Âå¤ï¤ê¤Ë +リクエストを再度送るまでの遅延時間 (jiffy 単位)。 +デフォルトは 1 秒。 +このファイルは現在は非推奨であり、代わりに .I retrans_time_ms -¤ò»È¤¦¤³¤È¡£ +を使うこと。 .TP -.IR retrans_time_ms " (Linux 2.6.12 °Ê¹ß)" -¥ê¥¯¥¨¥¹¥È¤òºÆÅÙÁ÷¤ë¤Þ¤Ç¤ÎÃÙ±ä»þ´Ö (¥ß¥êÉÃñ°Ì)¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 1000 ¥ß¥êÉᣠ+.IR retrans_time_ms " (Linux 2.6.12 以降)" +リクエストを再度送るまでの遅延時間 (ミリ秒単位)。 +デフォルトは 1000 ミリ秒。 .TP -.IR ucast_solicit " (Linux 2.2 °Ê¹ß)" +.IR ucast_solicit " (Linux 2.2 以降)" .\" Precisely: 2.1.79 -ARP ¥Ç¡¼¥â¥ó¤Ø¤ÎÌ䤤¹ç¤ï¤»¤ò¹Ô¤¦Á°¤Ë¹Ô¤¦ unicast õº÷¤ÎºÇÂç»î¹Ô¿ô +ARP デーモンへの問い合わせを行う前に行う unicast 探索の最大試行数 .RI ( app_solicit -¤ò¸«¤è)¡£¥Ç¥Õ¥©¥ë¥È¤Ï 3¡£ +を見よ)。デフォルトは 3。 .TP -.IR unres_qlen " (Linux 2.2 °Ê¹ß)" +.IR unres_qlen " (Linux 2.2 以降)" .\" Precisely: 2.1.79 -²ò·è¤µ¤ì¤Æ¤¤¤Ê¤¤¥¢¥É¥ì¥¹¤ËÂФ·¤Æ¡¢ -¾¤Î¥Í¥Ã¥È¥ï¡¼¥¯Áؤ«¤é¥­¥å¡¼¥¤¥ó¥°¤Ç¤­¤ëºÇÂç¥Ñ¥±¥Ã¥È¿ô¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 3¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -Linux 2.0 ¤Ç¡¢ +解決されていないアドレスに対して、 +他のネットワーク層からキューイングできる最大パケット数。 +デフォルトは 3。 +.SH バージョン +Linux 2.0 で、 .I struct arpreq -¤Ë +に .I arp_dev -¥á¥ó¥Ð¡¼¤¬´Þ¤Þ¤ì¤ë¤è¤¦¤ËÊѹ¹¤¬¤¢¤Ã¤¿¡£¤Þ¤¿Æ±»þ¤Ë -ioctl ÈÖ¹æ¤âÊѹ¹¤µ¤ì¤¿¡£¸Å¤¤ ioctl ¤Ï -Linux 2.2 ¤ÇÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¯¤Ê¤Ã¤¿¡£ +メンバーが含まれるように変更があった。また同時に +ioctl 番号も変更された。古い ioctl は +Linux 2.2 で用いることができなくなった。 -¥Í¥Ã¥È¥ï¡¼¥¯¤ËÂФ¹¤ëÂåÍý arp ¥¨¥ó¥È¥ê (netmask ¤¬ 0xffffffff ¤Ç¤Ê¤¤) -¤Ï¡¢ Linux 2.2 ¤ÇÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¯¤Ê¤Ã¤¿¡£ -¤³¤ì¤Ï¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤ÆÀßÄꤵ¤ì¤ë¡¢Ê̤Υ¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤ª¤±¤ë -Åþã²Äǽ¤Ê¤¹¤Ù¤Æ¤Î¥Û¥¹¥È¤ËÂФ¹¤ë¼«Æ°ÂåÍý arp ¤Ë¤è¤Ã¤ÆÃÖ¤­´¹¤¨¤é¤ì¤¿ -(¤½¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¥Õ¥©¥ï¡¼¥Ç¥£¥ó¥°¤ÈÂåÍý arp ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç)¡£ +ネットワークに対する代理 arp エントリ (netmask が 0xffffffff でない) +は、 Linux 2.2 で用いることができなくなった。 +これはカーネルによって設定される、別のインターフェースにおける +到達可能なすべてのホストに対する自動代理 arp によって置き換えられた +(そのインターフェースでフォワーディングと代理 arp が有効になっている場合)。 .I neigh/* -¤Î³Æ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï Linux 2.2 °ÊÁ°¤Ë¤Ï¸ºß¤·¤Ê¤¤¡£ -.SH ¥Ð¥° -¤¤¤¯¤Ä¤«¤Î¥¿¥¤¥Þ¡¼ÀßÄê¤Ï jiffy ¤Ç»ØÄꤵ¤ì¤ë¤¬¡¢ -jiffy ¤Ï¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ä¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë°Í¸¤¹¤ë¡£ +の各インタフェースは Linux 2.2 以前には存在しない。 +.SH バグ +いくつかのタイマー設定は jiffy で指定されるが、 +jiffy はアーキテクチャやカーネルのバージョンに依存する。 .BR time (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -¥æ¡¼¥¶¡¼¶õ´Ö¤«¤é¥Ý¥¸¥Æ¥£¥Ö¤Ê¥Õ¥£¡¼¥É¥Ð¥Ã¥¯¤òÁ÷¤ëÊýË¡¤¬Â¸ºß¤·¤Ê¤¤¡£ -¤Ä¤Þ¤êÀܳ»Ø¸þ (connection-oriented) ¤Î¥×¥í¥È¥³¥ë¤ò¥æ¡¼¥¶¡¼¶õ´Ö¤Ç -¼ÂÁõ¤¹¤ë¤È¡¢Í¾·×¤Ê ARP ¥È¥é¥Õ¥£¥Ã¥¯¤Î¸¶°ø¤È¤Ê¤ë¡£ -¤Ê¤¼¤Ê¤é ndisc ¤ÏÄê´üŪ¤Ë MAC ¥¢¥É¥ì¥¹¤òºÆõº÷¤¹¤ë¤«¤é¤Ç¤¢¤ë¡£ -ƱÍͤÎÌäÂê¤Ï¤¤¤¯¤Ä¤«¤Î¥«¡¼¥Í¥ë¥×¥í¥È¥³¥ë (NFS over UDP ¤Ê¤É) ¤Ë¤â¸ºß¤¹¤ë¡£ +ユーザー空間からポジティブなフィードバックを送る方法が存在しない。 +つまり接続指向 (connection-oriented) のプロトコルをユーザー空間で +実装すると、余計な ARP トラフィックの原因となる。 +なぜなら ndisc は定期的に MAC アドレスを再探索するからである。 +同様の問題はいくつかのカーネルプロトコル (NFS over UDP など) にも存在する。 .PP -¤³¤Î man ¥Ú¡¼¥¸¤Ç¤Ï IPv4 ÆÃÍ­¤Îµ¡Ç½¤È -IPv4¡¦IPv6 ¤Ç¶¦Í­¤µ¤ì¤ëµ¡Ç½¤È¤¬¤´¤Ã¤Á¤ã¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +この man ページでは IPv4 特有の機能と +IPv4・IPv6 で共有される機能とがごっちゃになっている。 +.SH 関連項目 .BR capabilities (7), .BR ip (7) .PP .BR RFC\ 826 : -ARP ¤Ë´Ø¤¹¤ëÀâÌÀ +ARP に関する説明 .br .BR RFC\ 2461 : -IPv6 neighbor discovery ¤Ë´Ø¤¹¤ëÀâÌÀ¤È¡¢ -ÍøÍѤµ¤ì¤Æ¤¤¤ë´ðÁÃ¥¢¥ë¥´¥ê¥º¥à +IPv6 neighbor discovery に関する説明と、 +利用されている基礎アルゴリズム .LP -Linux 2.2 °Ê¹ß¤Î IPv4 ARP ¤Ï¡¢ -²Äǽ¤Ê¾ì¹ç¤Ï IPv6 ¤Î¥¢¥ë¥´¥ê¥º¥à¤òÍѤ¤¤ë¡£ +Linux 2.2 以降の IPv4 ARP は、 +可能な場合は IPv6 のアルゴリズムを用いる。 diff --git a/release/man7/ascii.7 b/release/man7/ascii.7 index 483d6e60..15e40dc2 100644 --- a/release/man7/ascii.7 +++ b/release/man7/ascii.7 @@ -38,17 +38,17 @@ .\" Modified 2005-02-21, Akihiro MOTOKI .\" .TH ASCII 7 2009-02-12 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -ascii \- ASCII ʸ»ú½¸¹ç¤Î 8 ¿Ê¿ô¡¢10 ¿Ê¿ô¡¢16 ¿Ê¿ô¤Ë¤è¤ëÉä¹æ²½ -.SH ÀâÌÀ -ASCII ¤Ï¡¢¾ðÊó¸ò´¹ÍÑÊƹñɸ½à¥³¡¼¥É (American Standard Code for -Information Interchange) ¤Îά¤Ç¡¢7 ¥Ó¥Ã¥È¤Î¥³¡¼¥É¤Ç¤¢¤ë¡£ -(ISO 8859-1 ¤Î¤è¤¦¤Ê) ¿¤¯¤Î 8 ¥Ó¥Ã¥È¤Î¥³¡¼¥É¤Ç¤Ï²¼È¾Ê¬¤Ë -ASCII ¤ò´Þ¤ó¤Ç¤¤¤ë¡£ASCII ¤Ï¹ñºÝŪ¤Êµ¬³Ê¤Ç¤Ï ISO 646 ¤È¤·¤ÆÃΤé¤ì¤Æ¤¤¤ë¡£ +.SH 名前 +ascii \- ASCII 文字集合の 8 進数、10 進数、16 進数による符号化 +.SH 説明 +ASCII は、情報交換用米国標準コード (American Standard Code for +Information Interchange) の略で、7 ビットのコードである。 +(ISO 8859-1 のような) 多くの 8 ビットのコードでは下半分に +ASCII を含んでいる。ASCII は国際的な規格では ISO 646 として知られている。 .LP -°Ê²¼¤Îɽ¤Ï 128 ʸ»ú¤Î ASCII ʸ»ú¤ò¤Þ¤È¤á¤¿¤â¤Î¤Ç¤¢¤ë¡£ +以下の表は 128 文字の ASCII 文字をまとめたものである。 .LP -C ¥×¥í¥°¥é¥à¤Ç¤Î \f(CW\(aq\eX\(aq\fP ¥¨¥¹¥±¡¼¥×¤âÃíµ­¤·¤Æ¤¢¤ë¡£ +C プログラムでの \f(CW\(aq\eX\(aq\fP エスケープも注記してある。 .if t \{\ .in 1i .ft CW @@ -58,37 +58,37 @@ l l l l l l l l. Oct Dec Hex Char Oct Dec Hex Char _ 000 0 00 NUL \(aq\e0\(aq 100 64 40 @ -001 1 01 SOH (¥Ø¥Ã¥À³«»Ï) 101 65 41 A -002 2 02 STX (¥Æ¥­¥¹¥È³«»Ï) 102 66 42 B -003 3 03 ETX (¥Æ¥­¥¹¥È½ªÎ») 103 67 43 C -004 4 04 EOT (žÁ÷½ªÎ») 104 68 44 D -005 5 05 ENQ (Ì䤤¹ç¤ï¤») 105 69 45 E -006 6 06 ACK (¹ÎÄê±þÅú) 106 70 46 F -007 7 07 BEL \(aq\ea\(aq (¥Ù¥ë) 107 71 47 G -010 8 08 BS \(aq\eb\(aq (¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹) 110 72 48 H -011 9 09 HT \(aq\et\(aq (¿åÊ¿¥¿¥Ö) 111 73 49 I -012 10 0A LF \(aq\en\(aq (²þ¹Ô) 112 74 4A J -013 11 0B VT \(aq\ev\(aq (¿âľ¥¿¥Ö) 113 75 4B K -014 12 0C FF \(aq\ef\(aq (²þ¥Ú¡¼¥¸) 114 76 4C L -015 13 0D CR \(aq\er\(aq (Éüµ¢) 115 77 4D M -016 14 0E SO (¥·¥Õ¥È¥¢¥¦¥È) 116 78 4E N -017 15 0F SI (¥·¥Õ¥È¥¤¥ó) 117 79 4F O -020 16 10 DLE (ÅÁÁ÷À©¸æ³ÈÄ¥) 120 80 50 P -021 17 11 DC1 (ÁõÃÖÀ©¸æ1) 121 81 51 Q -022 18 12 DC2 (ÁõÃÖÀ©¸æ2) 122 82 52 R -023 19 13 DC3 (ÁõÃÖÀ©¸æ3) 123 83 53 S -024 20 14 DC4 (ÁõÃÖÀ©¸æ4) 124 84 54 T -025 21 15 NAK (ÈÝÄê±þÅú) 125 85 55 U -026 22 16 SYN (Ʊ´ü) 126 86 56 V -027 23 17 ETB (žÁ÷¥Ö¥í¥Ã¥¯½ªÎ») 127 87 57 W -030 24 18 CAN (¥­¥ã¥ó¥»¥ë) 130 88 58 X -031 25 19 EM (¥á¥Ç¥£¥¢½ªÎ») 131 89 59 Y -032 26 1A SUB (ÃÖ´¹) 132 90 5A Z -033 27 1B ESC (¥¨¥¹¥±¡¼¥×) 133 91 5B [ -034 28 1C FS (¥Õ¥¡¥¤¥ë¶èÀÚ¤ê) 134 92 5C \e \(aq\e\e\(aq -035 29 1D GS (¥°¥ë¡¼¥×¶èÀÚ¤ê) 135 93 5D ] -036 30 1E RS (¥ì¥³¡¼¥É¶èÀÚ¤ê) 136 94 5E ^ -037 31 1F US (¥æ¥Ë¥Ã¥È¶èÀÚ¤ê) 137 95 5F \&_ +001 1 01 SOH (ヘッダ開始) 101 65 41 A +002 2 02 STX (テキスト開始) 102 66 42 B +003 3 03 ETX (テキスト終了) 103 67 43 C +004 4 04 EOT (転送終了) 104 68 44 D +005 5 05 ENQ (問い合わせ) 105 69 45 E +006 6 06 ACK (肯定応答) 106 70 46 F +007 7 07 BEL \(aq\ea\(aq (ベル) 107 71 47 G +010 8 08 BS \(aq\eb\(aq (バックスペース) 110 72 48 H +011 9 09 HT \(aq\et\(aq (水平タブ) 111 73 49 I +012 10 0A LF \(aq\en\(aq (改行) 112 74 4A J +013 11 0B VT \(aq\ev\(aq (垂直タブ) 113 75 4B K +014 12 0C FF \(aq\ef\(aq (改ページ) 114 76 4C L +015 13 0D CR \(aq\er\(aq (復帰) 115 77 4D M +016 14 0E SO (シフトアウト) 116 78 4E N +017 15 0F SI (シフトイン) 117 79 4F O +020 16 10 DLE (伝送制御拡張) 120 80 50 P +021 17 11 DC1 (装置制御1) 121 81 51 Q +022 18 12 DC2 (装置制御2) 122 82 52 R +023 19 13 DC3 (装置制御3) 123 83 53 S +024 20 14 DC4 (装置制御4) 124 84 54 T +025 21 15 NAK (否定応答) 125 85 55 U +026 22 16 SYN (同期) 126 86 56 V +027 23 17 ETB (転送ブロック終了) 127 87 57 W +030 24 18 CAN (キャンセル) 130 88 58 X +031 25 19 EM (メディア終了) 131 89 59 Y +032 26 1A SUB (置換) 132 90 5A Z +033 27 1B ESC (エスケープ) 133 91 5B [ +034 28 1C FS (ファイル区切り) 134 92 5C \e \(aq\e\e\(aq +035 29 1D GS (グループ区切り) 135 93 5D ] +036 30 1E RS (レコード区切り) 136 94 5E ^ +037 31 1F US (ユニット区切り) 137 95 5F \&_ 040 32 20 SPACE 140 96 60 \` 041 33 21 ! 141 97 61 a 042 34 22 " 142 98 62 b @@ -126,8 +126,8 @@ _ .in .ft P \} -.SS ɽ -ÊØÍø¤Ê¤Î¤Ç¡¢16¿Ê·Á¼°¤È10¿Ê·Á¼°¤Î´Ê·é¤Êɽ¤òºÜ¤»¤Æ¤ª¤¯¡£ +.SS 表 +便利なので、16進形式と10進形式の簡潔な表を載せておく。 .sp .nf .if t \{\ @@ -157,24 +157,24 @@ F: / ? O _ o DEL .ft P \} .fi -.SH È÷¹Í -.SS Îò»Ë +.SH 備考 +.SS 歴史 .B ascii -¤Î¥Þ¥Ë¥å¥¢¥ë¤Ï AT&T UNIX Version 7 ¤ÇÅо줷¤¿¡£ +のマニュアルは AT&T UNIX Version 7 で登場した。 .LP -¸Å¤¤Ã¼Ëö¤Ç¤Ï¡¢¥¢¥ó¥À¡¼¥¹¥³¥¢¤¬¥Ð¥Ã¥¯¥¢¥í¡¼ (backarrow) ¤È¸Æ¤Ð¤ì¤ë -º¸¸þ¤­¤ÎÌð°õ¤Çɽ¼¨¤µ¤ì¤ë¡¢¤Þ¤¿¥­¥ã¥ì¥Ã¥È¤¬¾å¸þ¤­¤ÎÌð°õ¤Çɽ¼¨¤µ¤ì¡¢ -½ÄËÀ (vertcal bar) ¤Ç¤Ï¿¿¤óÃæ¤Ë·ê¤¬¤¢¤ë¡£ +古い端末では、アンダースコアがバックアロー (backarrow) と呼ばれる +左向きの矢印で表示される、またキャレットが上向きの矢印で表示され、 +縦棒 (vertcal bar) では真ん中に穴がある。 .LP -Âçʸ»ú (uppercase) ¤È¾®Ê¸»ú (lowercase) ¤Ï 1 ¥Ó¥Ã¥È¤À¤±°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ -ASCII ¤Îʸ»ú 2 ¤Ï¥À¥Ö¥ë¥¯¥©¡¼¥È¤È¤Ï 1 ¥Ó¥Ã¥È¤À¤±°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤³¤ì¤Ë¤è¤Ã¤Æµ¡³£¼°¥­¡¼¥Ü¡¼¥É¤ä¥Þ¥¤¥³¥óÀ©¸æ¤Ç¤Ê¤¤ÅŻҥ­¡¼¥Ü¡¼¥É¤Ç -¥­¡¼¥³¡¼¥É²½¤¹¤ë¤³¤È¤¬´Êñ¤Ë¤Ê¤ë¡£¤Þ¤¿¡¢¸Å¤¤¥Æ¥ì¥¿¥¤¥×¤Ç¤â¤³¤Î -ÁȤ߹ç¤ï¤»¤¬»ÈÍѤµ¤ì¤Æ¤¤¤¿¡£(ÌõÃí: JIS ¥­¡¼ÇÛÎó¤â¤½¤Î°ì¼ï) +大文字 (uppercase) と小文字 (lowercase) は 1 ビットだけ異なっている。 +ASCII の文字 2 はダブルクォートとは 1 ビットだけ異なっている。 +これによって機械式キーボードやマイコン制御でない電子キーボードで +キーコード化することが簡単になる。また、古いテレタイプでもこの +組み合わせが使用されていた。(訳注: JIS キー配列もその一種) .LP -ASCII µ¬³Ê¤ÏÊƹñµ¬³Ê¶¨²ñ -(USASI : United States of America Standards Institute) ¤Ë¤è¤Ã¤Æ -1968ǯ¤Ëȯ¹Ô¤µ¤ì¤¿¡£ +ASCII 規格は米国規格協会 +(USASI : United States of America Standards Institute) によって +1968年に発行された。 .\" .\" ASA was the American Standards Association and X3 was an ASA sectional .\" committee on computers and data processing. Its name changed to @@ -187,7 +187,7 @@ ASCII .\" American National Standards Institute (ANSI) in 1969 and is the .\" U.S. member body of ISO; private and nonprofit. .\" -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR iso_8859-1 (7), .BR iso_8859-10 (7), .BR iso_8859-13 (7), diff --git a/release/man7/boot.7 b/release/man7/boot.7 index 432ceca3..d8bf6430 100644 --- a/release/man7/boot.7 +++ b/release/man7/boot.7 @@ -14,199 +14,199 @@ .\" Updated 2005-02-21, Akihiro MOTOKI .\" .TH BOOT 7 2010-09-19 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -boot-scripts \- ¥Ö¡¼¥È¥·¡¼¥±¥ó¥¹¤Î°ìÈÌŪ¤Ê²òÀâ -.SH ÀâÌÀ -ºÙ¤«¤¤¤È¤³¤í¤Ï¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¤¬¡¢Âç¤Þ¤«¤Ë¸À¤¦¤È¡¢ -¥Ö¡¼¥È¥·¡¼¥±¥ó¥¹¤Ï°Ê²¼¤ÎÃʳ¬¤Ëʬ¤±¤é¤ì¤ë: -(1) ¥Ï¡¼¥É¥¦¥§¥¢¤Î¥Ö¡¼¥È (2) OS ¥í¡¼¥À¡¼ -(3) ¥«¡¼¥Í¥ë¤Îµ¯Æ° (4) init ¤È inittab -(5) ¥Ö¡¼¥È¥¹¥¯¥ê¥×¥È -.SS ¥Ï¡¼¥É¥¦¥§¥¢¤Î¥Ö¡¼¥È -ÅŸ»ÅêÆþ¤ä¥Ï¡¼¥É¥ê¥»¥Ã¥È¤¬¹Ô¤ï¤ì¤ë¤È¡¢ -ROM (Ä̾ï¤Ï PROM) ¤ËÊݸ¤µ¤ì¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤ËÀ©¸æ¤¬ÅϤµ¤ì¤ë¡£ -PC ¤Ç¤Ï¤³¤Î¥×¥í¥°¥é¥à¤ÏÄ̾ï \fBBIOS\fR ¤È¸Æ¤Ð¤ì¤ë¡£ +.SH 名前 +boot-scripts \- ブートシーケンスの一般的な解説 +.SH 説明 +細かいところはシステムによって異なるが、大まかに言うと、 +ブートシーケンスは以下の段階に分けられる: +(1) ハードウェアのブート (2) OS ローダー +(3) カーネルの起動 (4) init と inittab +(5) ブートスクリプト +.SS ハードウェアのブート +電源投入やハードリセットが行われると、 +ROM (通常は PROM) に保存されているプログラムに制御が渡される。 +PC ではこのプログラムは通常 \fBBIOS\fR と呼ばれる。 -¤Õ¤Ä¤¦¤³¤Î¥×¥í¥°¥é¥à¤Ï¡¢¤Þ¤º¥Þ¥·¥ó¤Î´ðËÜŪ¤Ê¼«¸Ê¿ÇÃǤò¹Ô¤¤¡¢ -¤½¤·¤ÆÉÔ´øȯÀ­¥á¥â¥ê¤Ë¥¢¥¯¥»¥¹¤·¤Æ³Æ¼ï¤Î¥Ñ¥é¥á¡¼¥¿¤òÆɤ߹þ¤à¡£ -PC ¤Ç¤Ï¡¢¤³¤Î¥á¥â¥ê¤ÏÅÅÃӤˤè¤Ã¤Æ¥Ð¥Ã¥¯¥¢¥Ã¥×¤µ¤ì¤Æ¤¤¤ë CMOS ¥á¥â¥ê¤Ç¤¢¤ë¡£ -¤½¤Î¤¿¤á \fBCMOS\fR ¤È¸Æ¤Ð¤ì¤ë¤³¤È¤¬Â¿¤¤¡£ -¤·¤«¤· PC °Ê³°¤ÎÀ¤³¦¤Ç¤Ï¡¢Ä̾ï \fBnvram\fR -(nonvolatile ram) ¤È¸Æ¤Ð¤ì¤Æ¤¤¤ë¡£ +ふつうこのプログラムは、まずマシンの基本的な自己診断を行い、 +そして不揮発性メモリにアクセスして各種のパラメータを読み込む。 +PC では、このメモリは電池によってバックアップされている CMOS メモリである。 +そのため \fBCMOS\fR と呼ばれることが多い。 +しかし PC 以外の世界では、通常 \fBnvram\fR +(nonvolatile ram) と呼ばれている。 -nvram ¤ËÊݸ¤µ¤ì¤Æ¤¤¤ë¥Ñ¥é¥á¡¼¥¿¤Ï¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¡£ -¤·¤«¤·¡¢¥Ï¡¼¥É¥¦¥§¥¢¥Ö¡¼¥È¥×¥í¥°¥é¥à¤Ï¡¢¾¯¤Ê¤¯¤È¤â¡¢ -¥Ö¡¼¥È¥Ç¥Ð¥¤¥¹¤¬¤É¤ì¤Ç¤¢¤ë¤«¡¢¤â¤·¤¯¤Ï -¥Ö¡¼¥È¥Ç¥Ð¥¤¥¹¤È¤·¤Æõº÷¤¹¤ë¥Ç¥Ð¥¤¥¹¤¬¤É¤ì¤Ç¤¢¤ë¤«¤ò -ÃΤäƤ¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +nvram に保存されているパラメータはシステムによって異なる。 +しかし、ハードウェアブートプログラムは、少なくとも、 +ブートデバイスがどれであるか、もしくは +ブートデバイスとして探索するデバイスがどれであるかを +知っていなければならない。 -¥Ï¡¼¥É¥¦¥§¥¢¥Ö¡¼¥È¤Î¥·¡¼¥±¥ó¥¹¤Ï¡¢¼¡¤Ë¥Ö¡¼¥È¥Ç¥Ð¥¤¥¹¤Ë¥¢¥¯¥»¥¹¤·¡¢ -¥Ö¡¼¥È¥Ç¥Ð¥¤¥¹¤Î¤¢¤é¤«¤¸¤á·è¤Þ¤Ã¤¿¾ì½ê¤ËÃÖ¤«¤ì¤Æ¤¤¤ë -OS ¥í¡¼¥À¡¼¤ò¥í¡¼¥É¤·¡¢À©¸æ¤òÅϤ¹¡£ +ハードウェアブートのシーケンスは、次にブートデバイスにアクセスし、 +ブートデバイスのあらかじめ決まった場所に置かれている +OS ローダーをロードし、制御を渡す。 .TP -Ãí°Õ: -¤³¤³¤Ç¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥Ö¡¼¥È¤Ë¤Ä¤¤¤Æ¤Ï¿¨¤ì¤Ê¤¤¡£ -¤³¤ÎÏÃÂê¤Ë¤Ä¤¤¤ÆÄ´ºº¤·¤¿¤¤ÆɼԤϡ¢ -DHCP, TFTP, PXE, Etherboot Åù¤Ë¤Ä¤¤¤ÆÄ´¤Ù¤Æ¤ß¤ë¤È¤è¤¤¡£ -.SS OS ¥í¡¼¥À¡¼ -PC ¤Ç¤Ï¡¢OS ¥í¡¼¥À¡¼¤Ï¥Ö¡¼¥È¥Ç¥Ð¥¤¥¹¤ÎÀèƬ¥»¥¯¥¿¤ËÃÖ¤«¤ì¤ë¡£ -¤³¤ì¤Ï \fBMBR\fR (Master Boot Record) ¤È¸Æ¤Ð¤ì¤ë¡£ +注意: +ここではネットワークブートについては触れない。 +この話題について調査したい読者は、 +DHCP, TFTP, PXE, Etherboot 等について調べてみるとよい。 +.SS OS ローダー +PC では、OS ローダーはブートデバイスの先頭セクタに置かれる。 +これは \fBMBR\fR (Master Boot Record) と呼ばれる。 -ÍÍ¡¹¤ÊÀ©Ìó¤Î¤¿¤á¡¢ -¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¤ÇÂè°ì¥í¡¼¥À¡¼¤ÏÈó¾ï¤Ë´Êñ¤Êµ¡Ç½¤·¤«»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -PC °Ê³°¤Î¥·¥¹¥Æ¥à¤Ç¤â¡¢ -¥µ¥¤¥º¤ÎÀ©¸Â¤ä¥í¡¼¥À¡¼¤Îµ¡Ç½¤Ê¤É¤Ë¤¢¤ëÄøÅÙ¤ÎÀ©¸Â¤Ï¸ºß¤¹¤ë¡£ -¤·¤«¤·¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤ò´Þ¤á¤Æ 512 ¥Ð¥¤¥È¤È¤¤¤¦ -PC ¤Î MBR ¤Ç¤Ï¡¢OS ¥í¡¼¥À¡¼¤ÎÁ´µ¡Ç½¤ò¤³¤³¤Ë²¡¤·¹þ¤à¤Î¤Ï¤Þ¤ºÉÔ²Äǽ¤À¡£ +様々な制約のため、 +ほとんどのシステムで第一ローダーは非常に簡単な機能しか持っていない。 +PC 以外のシステムでも、 +サイズの制限やローダーの機能などにある程度の制限は存在する。 +しかしパーティションテーブルを含めて 512 バイトという +PC の MBR では、OS ローダーの全機能をここに押し込むのはまず不可能だ。 -¤·¤¿¤¬¤Ã¤ÆÂçÄñ¤Î OS ¤Ç¤Ï¡¢Âè°ì¥í¡¼¥À¡¼¤ÏÂèÆó¥í¡¼¥À¡¼¤ò¸Æ¤Ö¤è¤¦¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢ -¸å¼Ô¤Ï¤¢¤é¤«¤¸¤á»ØÄꤵ¤ì¤¿¥Ç¥£¥¹¥¯¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ËÃÖ¤±¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +したがって大抵の OS では、第一ローダーは第二ローダーを呼ぶようになっており、 +後者はあらかじめ指定されたディスクパーティションに置けるようになっている。 -Linux ¤Ë¤ª¤±¤ë OS ¥í¡¼¥À¡¼¤Ï¡¢¤Õ¤Ä¤¦ +Linux における OS ローダーは、ふつう .BR lilo (8) -¤« +か .BR grub (8) -¤Ç¤¢¤ë¡£Î¾¼Ô¤È¤âÂèÆó¥í¡¼¥À¡¼¤È¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤â¤Ç¤­ -(¤³¤Î¾ì¹ç DOS ¤¬¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿ MBR ¤¬¤³¤ì¤é¤ò»Ø¤¹¤è¤¦¤Ë¤¹¤ë)¡¢ -¤Þ¤¿Âè°ì¡¦ÂèÆó¥í¡¼¥À¡¼¤ÎξÊý¤È¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¸å¼Ô¤Î¾ì¹ç¸þ¤±¤Ë¡¢Î¾¼Ô¤ÏÆÃÊÌ¤Ê MBR ¥¤¥á¡¼¥¸¤òÄ󶡤·¤Æ¤¤¤ë¡£ -¤³¤ì¤Ë¤ÏÂèÆó¥í¡¼¥À¡¼¤ò¥ë¡¼¥È¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤«¤é¥í¡¼¥É¤¹¤ë¤è¤¦¤Ê -¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×¥³¡¼¥É¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +である。両者とも第二ローダーとしてインストールすることもでき +(この場合 DOS がインストールした MBR がこれらを指すようにする)、 +また第一・第二ローダーの両方としてインストールすることもできる。 +後者の場合向けに、両者は特別な MBR イメージを提供している。 +これには第二ローダーをルートパーティションからロードするような +ブートストラップコードが含まれている。 -OS ¥í¡¼¥À¡¼¤Î¼ç¤Ê»Å»ö¤Ï¡¢¥«¡¼¥Í¥ë¤Î¥Ç¥£¥¹¥¯¾å¤Î°ÌÃÖ¤òÆÃÄꤷ¡¢ -¥í¡¼¥É¤·¤Æµ¯Æ°¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£¤Û¤È¤ó¤É¤Î OS ¥í¡¼¥À¡¼¤Ï¡¢ -ÂÐÏå⡼¥É¤Ç»ÈÍѤ¹¤ë¤³¤È¤â¤Ç¤­¡¢ÄɲäΥѥé¥á¡¼¥¿¤ò¥«¡¼¥Í¥ë¤ËÅϤ·¤¿¤ê¡¢ -¥Ç¥Õ¥©¥ë¥È¤È¤ÏÊ̤Υ«¡¼¥Í¥ë¤ò»ØÄꤷ¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë -(Î㤨¤Ð¡¢ºÇ¸å¤Ë¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥«¡¼¥Í¥ë¤¬µ¡Ç½¤·¤Ê¤«¤Ã¤¿»þ¤Ë -¥Ð¥Ã¥¯¥¢¥Ã¥×¤Î¥«¡¼¥Í¥ë¤ò»ØÄꤷ¤Æµ¯Æ°¤¹¤ë¤È¤¤¤Ã¤¿¤³¤È¤¬¤Ç¤­¤ë)¡£ -.SS ¥«¡¼¥Í¥ë¤Îµ¯Æ° -¥«¡¼¥Í¥ë¤Ï¥í¡¼¥É¤µ¤ì¤ë¤È¡¢¥Ç¥Ð¥¤¥¹¤ò (¥É¥é¥¤¥Ð¤Ë¤è¤Ã¤Æ) -½é´ü²½¤·¡¢¥¹¥ï¥Ã¥Ñ¤òµ¯Æ°¤· (ºÇ¶á¤Î Linux ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -¥¹¥ï¥Ã¥Ñ¤Ï kswapd ¤È¤¤¤¦¡Ö¥«¡¼¥Í¥ë¥×¥í¥»¥¹¡×¤Ë¤Ê¤ë)¡¢ -¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à (/) ¤ò¥Þ¥¦¥ó¥È¤¹¤ë¡£ +OS ローダーの主な仕事は、カーネルのディスク上の位置を特定し、 +ロードして起動することである。ほとんどの OS ローダーは、 +対話モードで使用することもでき、追加のパラメータをカーネルに渡したり、 +デフォルトとは別のカーネルを指定したりすることができる +(例えば、最後にコンパイルしたカーネルが機能しなかった時に +バックアップのカーネルを指定して起動するといったことができる)。 +.SS カーネルの起動 +カーネルはロードされると、デバイスを (ドライバによって) +初期化し、スワッパを起動し (最近の Linux カーネルでは、 +スワッパは kswapd という「カーネルプロセス」になる)、 +ルートファイルシステム (/) をマウントする。 -¥«¡¼¥Í¥ë¤ËÅϤ¹¤³¤È¤Î¤Ç¤­¤ë¥Ñ¥é¥á¡¼¥¿¤Î¤¤¤¯¤Ä¤«¤Ï¡¢ -¤³¤ì¤é¤ÎÆ°ºî¤Ë´Ø·¸¤¹¤ë¡£ -(Î㤨¤Ð¥Ç¥Õ¥©¥ë¥È¤Î¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òÊѹ¹¤·¤¿¤ê¤Ç¤­¤ë)¡£ -Linux ¥«¡¼¥Í¥ë¥Ñ¥é¥á¡¼¥¿¤Ë´Ø¤¹¤ë¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï +カーネルに渡すことのできるパラメータのいくつかは、 +これらの動作に関係する。 +(例えばデフォルトのルートファイルシステムを変更したりできる)。 +Linux カーネルパラメータに関するより詳しい情報は .BR bootparam (7) -¤òÆɤó¤Ç¤Û¤·¤¤¡£ +を読んでほしい。 -¤³¤ì¤é¤¬ºÑ¤ó¤Ç¤Ï¤¸¤á¤Æ¡¢ -¥«¡¼¥Í¥ë¤ÏºÇ½é¤Î (¥æ¡¼¥¶¥é¥ó¥É¤Î) ¥×¥í¥»¥¹¤òÀ¸À®¤·¡¢ -ÈÖ¹æ 1 ¤òÍ¿¤¨¤ë¡£¤³¤Î¥×¥í¥»¥¹¤Ï +これらが済んではじめて、 +カーネルは最初の (ユーザランドの) プロセスを生成し、 +番号 1 を与える。このプロセスは .I /sbin/init -¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¡£ -¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ²ò¼á¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ñ¥é¥á¡¼¥¿¤Ï¤¹¤Ù¤Æ +プログラムを実行する。 +カーネルによって解釈されていないパラメータはすべて .I /sbin/init -¤ËÅϤµ¤ì¤ë¡£ -.SS init ¤È inittab -init ¤Ï¡¢µ¯Æ°¤¹¤ë¤È¤Þ¤º +に渡される。 +.SS init と inittab +init は、起動するとまず .I /etc/inittab -¤òÆɤߡ¢¤½¤Î¸å¤Î¹ÔÆ°¤Ë´Ø¤¹¤ë¾ðÊó¤òÆÀ¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï -.I ¥é¥ó¥ì¥Ù¥ë -¤Ë¤è¤Ã¤Æ¤É¤Î¤è¤¦¤ÊÆ°ºî¤ò¹Ô¤¦¤Ù¤­¤Ç¤¢¤ë¤«¤òÄêµÁ¤¹¤ë¡£ +を読み、その後の行動に関する情報を得る。 +このファイルは +.I ランレベル +によってどのような動作を行うべきであるかを定義する。 -¤³¤ì¤Ë¤è¤Ã¤Æ¥·¥¹¥Æ¥à´ÉÍý¼Ô¤Î´ÉÍý¤¬³Ú¤Ë¤Ê¤ë¡£ -³Æ\fI¥é¥ó¥ì¥Ù¥ë\fR¤ÏÄ󶡤¹¤ë¥µ¡¼¥Ó¥¹¤Î½¸¹ç¤ËÂбþ¤¹¤ë -(Î㤨¤Ð \fBS\fR ¤Ï \fI¥·¥ó¥°¥ë¥æ¡¼¥¶\fR¡¢ -\fB2\fR ¤Ç¤ÏÂçÄñ¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥µ¡¼¥Ó¥¹¤òµ¯Æ°¤¹¤ë¡¢¤Ê¤É)¡£ -¥·¥¹¥Æ¥à´ÉÍý¼Ô¤Ï¡¢ +これによってシステム管理者の管理が楽になる。 +各\fIランレベル\fRは提供するサービスの集合に対応する +(例えば \fBS\fR は \fIシングルユーザ\fR、 +\fB2\fR では大抵のネットワークサービスを起動する、など)。 +システム管理者は、 .BR init (8) -¤òÍѤ¤¤Æ¸½ºß¤Î¥é¥ó¥ì¥Ù¥ë¤òÊѹ¹¤Ç¤­¡¢ +を用いて現在のランレベルを変更でき、 .BR runlevel (8) -¤Ë¤è¤Ã¤Æ¸½ºß¤Î¥é¥ó¥ì¥Ù¥ë¤ò³Îǧ¤Ç¤­¤ë¡£ +によって現在のランレベルを確認できる。 -¤·¤«¤·¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤òÊÔ½¸¤·¤Æ¸Ä¡¹¤Î¥µ¡¼¥Ó¥¹¤ò´ÉÍý¤¹¤ë¤Î¤ÏÉÔÊؤʤΤǡ¢ -inittab ¤Ïñ¤Ë¥¹¥¯¥ê¥×¥È¤Î½¸¹ç¤ËÂФ¹¤ë¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -¼ÂºÝ¤Î¸Ä¡¹¤Î¥µ¡¼¥Ó¥¹¤Îµ¯Æ°¤äÄä»ß¤Ï¡¢¤³¤ì¤é¤Î¥¹¥¯¥ê¥×¥È¤Ç¹Ô¤¦¡£ -.SS ¥Ö¡¼¥È¥¹¥¯¥ê¥×¥È +しかし、このファイルを編集して個々のサービスを管理するのは不便なので、 +inittab は単にスクリプトの集合に対するブートストラップになっている。 +実際の個々のサービスの起動や停止は、これらのスクリプトで行う。 +.SS ブートスクリプト .TP -Ãí°Õ: -°Ê²¼¤ÎÀâÌÀ¤Ï System V Release 4 ¤ò¥Ù¡¼¥¹¤È¤·¤¿¥·¥¹¥Æ¥à¤Ë´Ø¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¸½ºß¤ÎÂçÄñ¤Î¾¦ÍÑ UNIX ¥·¥¹¥Æ¥à (Solaris, HP-UX, Irix, Tru64) ¤ä¡¢ -¥á¥¸¥ã¡¼¤Ê Linux ¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó (Red Hat, Debian, Mandriva, -SUSE, Ubuntu) ¤Ï¤³¤ì¤ò¥Ù¡¼¥¹¤Ë¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¡¢¥Ö¡¼¥È¥¹¥¯¥ê¥×¥È¤Îµ¡¹½¤¬ -¤¤¤¯¤é¤«°Û¤Ê¤ë¤³¤È¤â¤¢¤ë (Slackware Linux, FreeBSD, OpenBSD ¤Ê¤É)¡£ +注意: +以下の説明は System V Release 4 をベースとしたシステムに関するものである。 +現在の大抵の商用 UNIX システム (Solaris, HP-UX, Irix, Tru64) や、 +メジャーな Linux ディストリビューション (Red Hat, Debian, Mandriva, +SUSE, Ubuntu) はこれをベースにしたものである。 +システムによっては、ブートスクリプトの機構が +いくらか異なることもある (Slackware Linux, FreeBSD, OpenBSD など)。 .LP -´ÉÍý¤¹¤Ù¤­³Æ¥µ¡¼¥Ó¥¹ (¥á¡¼¥ë¡¢nfs ¥µ¡¼¥Ð¡¢cron ¤Ê¤É¤Ê¤É) -¤½¤ì¤¾¤ì¤ËÂФ·¤Æ¡¢¥Ö¡¼¥È¥¹¥¯¥ê¥×¥È¤¬¤Ò¤È¤Ä¤º¤ÄÆÃÄê¤Î¥Ç¥£¥ì¥¯¥È¥ê -(¤Û¤È¤ó¤É¤Î Linux ¤Ç +管理すべき各サービス (メール、nfs サーバ、cron などなど) +それぞれに対して、ブートスクリプトがひとつずつ特定のディレクトリ +(ほとんどの Linux で .IR /etc/init.d ) -¤ËÇÛÃÖ¤µ¤ì¤ë¡£¤³¤ì¤é¤Î¥¹¥¯¥ê¥×¥È¤Ï¡¢ -¤½¤ì¤¾¤ì°ú¿ô¤È¤·¤Æ¤Ò¤È¤Ä¤Îñ¸ì¤ò¼è¤ë¡£"start" ¤¬»ØÄꤵ¤ì¤ë¤È -¤½¤Î¥µ¡¼¥Ó¥¹¤òµ¯Æ°¤·¡¢"stop" ¤¬»ØÄꤵ¤ì¤ë¤È¥µ¡¼¥Ó¥¹¤òÄä»ß¤¹¤ë¡£ -¥¹¥¯¥ê¥×¥È¤Ï¾¤Î¡ÖÊØÍø¤Ê¡×°ú¿ô¤ò¼è¤Ã¤Æ¤â¤è¤¤ -(Î㤨¤Ð "restart" ¤ÇÄä»ß¡¦µ¯Æ°¤ò½çÈ֤˹Ԥ俤ꡢ"status" -¤Ç¥µ¡¼¥Ó¥¹¤Î¾õÂÖ¤òɽ¼¨¤¹¤ë¤Ê¤É)¡£ -¥¹¥¯¥ê¥×¥È¤ò°ú¿ô¤Ê¤·¤Ç¼Â¹Ô¤¹¤ë¤È¡¢ -»ØÄê¤Ç¤­¤ë°ú¿ô¤Î°ìÍ÷¤¬É½¼¨¤µ¤ì¤ë¡£ -.SS ½ç½ø¤Å¤±¥Ç¥£¥ì¥¯¥È¥ê -¤¢¤ë¥é¥ó¥ì¥Ù¥ë¤Ç¡¢ÆÃÄê¤Î¥¹¥¯¥ê¥×¥È¤ò»ØÄꤷ¤¿½ç½ø¤Ç¼Â¹Ô¤µ¤»¤ë¤¿¤á¡¢ -.I ½ç½øÉÕ¤±¥Ç¥£¥ì¥¯¥È¥ê (sequencing directory) -¤È¤¤¤¦»ÅÁȤߤ¬Â¸ºß¤¹¤ë¡£ -¤³¤ì¤é¤Ï¤Õ¤Ä¤¦ +に配置される。これらのスクリプトは、 +それぞれ引数としてひとつの単語を取る。"start" が指定されると +そのサービスを起動し、"stop" が指定されるとサービスを停止する。 +スクリプトは他の「便利な」引数を取ってもよい +(例えば "restart" で停止・起動を順番に行ったり、"status" +でサービスの状態を表示するなど)。 +スクリプトを引数なしで実行すると、 +指定できる引数の一覧が表示される。 +.SS 順序づけディレクトリ +あるランレベルで、特定のスクリプトを指定した順序で実行させるため、 +.I 順序付けディレクトリ (sequencing directory) +という仕組みが存在する。 +これらはふつう .I /etc/rc[0\-6S].d -¤Ç¤¢¤ë¡£³Æ¥Ç¥£¥ì¥¯¥È¥ê¤ÎÆâÉô¤Ë¤Ï¡¢ +である。各ディレクトリの内部には、 .I /etc/init.d -¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¤¿¥¹¥¯¥ê¥×¥È¤Ø¤Î¥ê¥ó¥¯ (¤Õ¤Ä¤¦¤Ï¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯) -¤¬ÃÖ¤«¤ì¤ë¡£ +ディレクトリに置かれたスクリプトへのリンク (ふつうはシンボリックリンク) +が置かれる。 -Âè°ì¥¹¥¯¥ê¥×¥È (Ä̾ï +第一スクリプト (通常 .IR /etc/rc ) -¤Ï +は .BR inittab (5) -¤«¤é¸Æ¤Ð¤ì¡¢ -½ç½øÉÕ¤±¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¤¿¥ê¥ó¥¯·Ðͳ¤Ç³Æ¥µ¡¼¥Ó¥¹¥¹¥¯¥ê¥×¥È¤ò¸Æ¤Ó½Ð¤¹¡£ -̾Á°¤¬ \(aqS\(aq ¤Ç¤Ï¤¸¤Þ¤ë¥ê¥ó¥¯¤Ï "start" ¤È¤¤¤¦°ú¿ô¤ò¤Ä¤±¤Æ¸Æ¤Ó½Ð¤µ¤ì -(¤¹¤Ê¤ï¤Á¥µ¡¼¥Ó¥¹¤¬µ¯Æ°¤·)¡£Ì¾Á°¤¬ \(aqK\(aq ¤Ç¤Ï¤¸¤Þ¤ë¥ê¥ó¥¯¤Ï "stop" -¤È¤¤¤¦°ú¿ô¤ò¤Ä¤±¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ë (¤¹¤Ê¤ï¤Á¥µ¡¼¥Ó¥¹¤¬Ää»ß¤¹¤ë)¡£ +から呼ばれ、 +順序付けディレクトリに置かれたリンク経由で各サービススクリプトを呼び出す。 +名前が \(aqS\(aq ではじまるリンクは "start" という引数をつけて呼び出され +(すなわちサービスが起動し)。名前が \(aqK\(aq ではじまるリンクは "stop" +という引数をつけて呼び出される (すなわちサービスが停止する)。 -Ʊ¤¸¥é¥ó¥ì¥Ù¥ë¤ÎÆâÉô¤Ç¤Îµ¯Æ°¤äÄä»ß¤Î½ç½ø¤òµ¬Äꤹ¤ë¤¿¤á¤Ë¡¢ -¥ê¥ó¥¯¤Î̾Á°¤Ë¤Ï½ç½ø¤ò¼¨¤¹¿ô»ú¤¬´Þ¤Þ¤ì¤ë¡£ -¤Þ¤¿¡¢Ì¾Á°¤ò¤ï¤«¤ê¤ä¤¹¤¯¤¹¤ë¤¿¤á¡¢ -¥ê¥ó¥¯Ì¾¤ÎËöÈø¤Ë¤ÏÂбþ¤¹¤ë¥µ¡¼¥Ó¥¹¤Î̾Á°¤¬¤Ä¤±¤é¤ì¤ë¡£ -Î㤨¤Ð¡¢ +同じランレベルの内部での起動や停止の順序を規定するために、 +リンクの名前には順序を示す数字が含まれる。 +また、名前をわかりやすくするため、 +リンク名の末尾には対応するサービスの名前がつけられる。 +例えば、 .I /etc/rc2.d/S80sendmail -¤È¤¤¤¦¥ê¥ó¥¯¤Ï¡¢sendmail ¥µ¡¼¥Ó¥¹¤ò¥é¥ó¥ì¥Ù¥ë 2 ¤Ë¤ª¤¤¤Æµ¯Æ°¤¹¤ë¡£ -¤³¤ì¤Ï¡¢ +というリンクは、sendmail サービスをランレベル 2 において起動する。 +これは、 .I /etc/rc2.d/S12syslog -¤è¤ê¤â¸å¤Ë¡¢¤Þ¤¿ +よりも後に、また .I /etc/rc2.d/S90xfs -¤è¤ê¤âÀè¤Ë¼Â¹Ô¤µ¤ì¤ë¡£ +よりも先に実行される。 -¥Ö¡¼¥È¤Î½ç½ø¤È¥é¥ó¥ì¥Ù¥ë¤ò´ÉÍý¤¹¤ë¤Ë¤Ï¡¢ -¤³¤ì¤é¤Î¥ê¥ó¥¯¤ò´ÉÍý¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤·¤«¤·Â¿¤¯¤Î Linux ¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ -¤³¤ì¤é¤Îºî¶È¤ò¼ê½õ¤±¤·¤Æ¤¯¤ì¤ë¥Ä¡¼¥ë¤¬Â¸ºß¤¹¤ë -(Î㤨¤Ð +ブートの順序とランレベルを管理するには、 +これらのリンクを管理しなければならない。 +しかし多くの Linux ディストリビューションでは、 +これらの作業を手助けしてくれるツールが存在する +(例えば .BR chkconfig (8) -¤Ê¤É)¡£ -.SS ¥Ö¡¼¥È¤ÎÀßÄê -¥Ç¡¼¥â¥ó¤Îµ¯Æ°»þ¤Ë¤Ï¡¢ -¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤ä¥Ñ¥é¥á¡¼¥¿¤ò»ØÄê¤Ç¤­¤ë¤Î¤¬ÉáÄ̤Ǥ¢¤ë¡£ -¥·¥¹¥Æ¥à´ÉÍý¼Ô¤¬¤³¤ì¤é¤Î¥Ñ¥é¥á¡¼¥¿¤òÊѹ¹¤·¤¿¤¤¤È»×¤Ã¤¿¤È¤­¤Ë¡¢ -¥Ö¡¼¥È¥¹¥¯¥ê¥×¥È¤½¤Î¤â¤Î¤òÊÔ½¸¤·¤Ê¤¯¤Æ¤â¤¹¤à¤è¤¦¡¢ -ÀßÄê¥Õ¥¡¥¤¥ë¤¬ÍѤ¤¤é¤ì¤ë¡£¤³¤ì¤é¤ÏÆÃÄê¤Î¥Ç¥£¥ì¥¯¥È¥ê -(Red Hat ¥·¥¹¥Æ¥à¤Ç¤Ï +など)。 +.SS ブートの設定 +デーモンの起動時には、 +コマンドラインオプションやパラメータを指定できるのが普通である。 +システム管理者がこれらのパラメータを変更したいと思ったときに、 +ブートスクリプトそのものを編集しなくてもすむよう、 +設定ファイルが用いられる。これらは特定のディレクトリ +(Red Hat システムでは .IR /etc/sysconfig ) -¤ËÃÖ¤«¤ì¡¢¥Ö¡¼¥È¥¹¥¯¥ê¥×¥È¤«¤é»²¾È¤µ¤ì¤ë¡£ +に置かれ、ブートスクリプトから参照される。 -¸Å¤¤ UNIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï -¥Ç¡¼¥â¥ó¤ËÍ¿¤¨¤ë¼ÂºÝ¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤¬½ñ¤«¤ì¤Æ¤¤¤¿¡£ -¤·¤«¤·ºÇ¶á¤Î Linux ¥·¥¹¥Æ¥à (¤ä HP-UX) ¤Ç¤Ï¡¢ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ïñ¤Ë¥·¥§¥ëÊÑ¿ô¤¬½ñ¤«¤ì¤Æ¤¤¤ë¤À¤±¤Ç¤¢¤ë¡£ +古い UNIX システムでは、これらのファイルには +デーモンに与える実際のコマンドラインオプションが書かれていた。 +しかし最近の Linux システム (や HP-UX) では、 +これらのファイルには単にシェル変数が書かれているだけである。 .I /etc/init.d -¤ËÃÖ¤«¤ì¤¿¥Ö¡¼¥È¥¹¥¯¥ê¥×¥È¤Ï¡¢¤³¤ì¤é¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤ò +に置かれたブートスクリプトは、これらの設定ファイルを .B source -¤·¡¢¤½¤ÎÊÑ¿ô¤ÎÃͤòÍѤ¤¤ë¡£ -.SH ¥Õ¥¡¥¤¥ë +し、その変数の値を用いる。 +.SH ファイル .IR /etc/init.d/ , .IR /etc/rc[S0\-6].d/ , .I /etc/sysconfig/ -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR inittab (5), .BR bootparam (7), .BR init (8), diff --git a/release/man7/bootparam.7 b/release/man7/bootparam.7 index 7bc1a4f2..a393d41f 100644 --- a/release/man7/bootparam.7 +++ b/release/man7/bootparam.7 @@ -35,1232 +35,1232 @@ .\" Updated 2007-05-04, Akihiro MOTOKI , LDP v2.46 .\" .TH BOOTPARAM 7 2007-12-16 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -bootparam \- Linux ¥«¡¼¥Í¥ëµ¯Æ°»þ¥Ñ¥é¥á¡¼¥¿¤Î²òÀâ -.SH ÀâÌÀ -Linux ¥«¡¼¥Í¥ë¤Ïµ¯Æ°¤¹¤ë¤È¤­¤Ë¡Ö¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¡×¤¢¤ë¤¤¤Ï -¡Öµ¯Æ°»þ¥Ñ¥é¥á¡¼¥¿¡×¤ò¼õ¤±ÉÕ¤±¤ë¡£ -¤³¤ì¤Ï°ìÈ̤ˡ¢ -¥«¡¼¥Í¥ë¤Ë¤Ï·èÄê¤Ç¤­¤Ê¤¤¥Ï¡¼¥É¥¦¥§¥¢¤Î¥Ñ¥é¥á¡¼¥¿¤ò¥«¡¼¥Í¥ë¤ËÅϤ·¤¿¤¤¾ì¹ç¤ä¡¢ -¥«¡¼¥Í¥ë¤¬¸¡½Ð¤¹¤ë¤Ç¤¢¤í¤¦Ãͤò°Õ¿ÞŪ¤Ë̵¸ú¤Ë¤·¤¿¤êÊѹ¹¤·¤¿¤ê¤¹¤ë¾ì¹ç¤ËÍѤ¤¤ë¡£ +.SH 名前 +bootparam \- Linux カーネル起動時パラメータの解説 +.SH 説明 +Linux カーネルは起動するときに「コマンドラインオプション」あるいは +「起動時パラメータ」を受け付ける。 +これは一般に、 +カーネルには決定できないハードウェアのパラメータをカーネルに渡したい場合や、 +カーネルが検出するであろう値を意図的に無効にしたり変更したりする場合に用いる。 -¥«¡¼¥Í¥ë¤¬ BIOS ¤«¤éľÀܵ¯Æ°¤µ¤ì¤ë¤È¤­ -(¤¿¤È¤¨¤Ð 'cp zImage /dev/fd0' -¤Ç¥Õ¥í¥Ã¥Ô¡¼¤Ë¥³¥Ô¡¼¤·¤¿¥«¡¼¥Í¥ë¤«¤éµ¯Æ°¤¹¤ë¤Ê¤É) ¤Ï¡¢ -¥Ñ¥é¥á¡¼¥¿¤ò»ØÄꤹ¤ëµ¡²ñ¤Ï¤Ê¤¤¡£ -¤æ¤¨¤Ë¡¢¤³¤Îµ¯Æ°»þ¥Ñ¥é¥á¡¼¥¿µ¡Ç½¤òÍøÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢ +カーネルが BIOS から直接起動されるとき +(たとえば 'cp zImage /dev/fd0' +でフロッピーにコピーしたカーネルから起動するなど) は、 +パラメータを指定する機会はない。 +ゆえに、この起動時パラメータ機能を利用するためには、 .I LILO -¤ä +や .I loadlin -¤Î¤è¤¦¤Ë¥Ñ¥é¥á¡¼¥¿¤ò»ØÄê¤Ç¤­¤ë¥½¥Õ¥È¥¦¥§¥¢¤ò»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤¤¤¯¤Ä¤«¤Î¥Ñ¥é¥á¡¼¥¿¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +のようにパラメータを指定できるソフトウェアを使用しなければならない。 +いくつかのパラメータについては、 .I rdev -¤ò»È¤Ã¤Æ¥«¡¼¥Í¥ë¥¤¥á¡¼¥¸¤½¤Î¤â¤Î¤ò½¤Àµ¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¾ÜºÙ¤Ï +を使ってカーネルイメージそのものを修正することもできる。 +詳細は .BR rdev (8) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 -Werner Almesberger ¤Ë¤è¤ë -LILO (LInux LOader) ¥×¥í¥°¥é¥à¤ÏºÇ¤â¹­¤¯»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ -LILO ¤Ï¤¤¤í¤¤¤í¤Ê¥«¡¼¥Í¥ë¤òÁªÂò¤·¤Æ¥Ö¡¼¥È¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¡¢ -ÀßÄê¾ðÊó¤ò¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤ËÊÝ»ý¤¹¤ë +Werner Almesberger による +LILO (LInux LOader) プログラムは最も広く使用されている。 +LILO はいろいろなカーネルを選択してブートさせることができ、 +設定情報をテキストファイルに保持する .RB ( lilo (8) -¤È +と .BR lilo.conf (5) -¤ò»²¾È)¡£ LILO ¤Ï DOS, OS/2, Linux, FreeBSD ¤Ê¤É¤òµ¯Æ°¤Ç¤­¡¢ -Èó¾ï¤Ë½ÀÆð¤Ç¤¢¤ë¡£ +を参照)。 LILO は DOS, OS/2, Linux, FreeBSD などを起動でき、 +非常に柔軟である。 -¤Û¤«¤Ë¤Ï +ほかには .I loadLin -¤â¤è¤¯»È¤ï¤ì¤Æ¤¤¤ë Linux ¥í¡¼¥À¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï DOS ¤Î¥×¥í¥°¥é¥à¤Ç¡¢DOS ¥×¥í¥ó¥×¥È¤«¤é -(µ¯Æ°»þ°ú¿ô¤È¤È¤â¤Ë) Linux ¥«¡¼¥Í¥ë¤òµ¯Æ°¤Ç¤­¤ë -(¤¤¤¯¤Ä¤«¤ÎÆÃÄê¤Î¥ê¥½¡¼¥¹¤¬ÍøÍѲÄǽ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£ -loadlin ¤Ï DOS ¤«¤é Linux ¤òµ¯Æ°¤µ¤»¤¿¤¤¿Í¤Ë¤¢¤Ã¤Æ¤¤¤ë¡£ +もよく使われている Linux ローダである。 +これは DOS のプログラムで、DOS プロンプトから +(起動時引数とともに) Linux カーネルを起動できる +(いくつかの特定のリソースが利用可能でなければならない)。 +loadlin は DOS から Linux を起動させたい人にあっている。 -¤Þ¤¿ loadlin ¤Ï¡¢DOS ¤Î¥É¥é¥¤¥Ð¤Ç¤¢¤ë¾õÂÖ¤Ë -ÀßÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¥Ï¡¼¥É¥¦¥§¥¢¤ò -»È¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤âÈó¾ï¤ËÊØÍø¤Ç¤¢¤ë¡£ -¤è¤¯¤¢¤ëÎã¤Ï -¡ÖSoundBlaster ¸ß´¹¡×¤Î¥µ¥¦¥ó¥É¥«¡¼¥É¤Ç¡¢ -¤³¤ì¤é¤ÎÃæ¤Ë¤Ï DOS ¤Î¥É¥é¥¤¥Ð¤ò»È¤Ã¤Æ -¤¤¤¯¤Ä¤«ÈëÌ©¤Î¥ì¥¸¥¹¥¿¤ò¤¤¤¸¤Ã¤Æ¤ä¤é¤Ê¤¤¤È¡¢ -ËÜÅö¤Î SB ¸ß´¹¥â¡¼¥É¤Ë¤Ï¤Ê¤é¤Ê¤¤¤è¤¦¤Ê¤â¤Î¤¬¤¢¤ë¡£ -¤Þ¤º¥Ï¡¼¥É¥¦¥§¥¢¤Ë¤Ä¤¤¤Æ¤­¤¿¥É¥é¥¤¥Ð¤òÁȤ߹þ¤ó¤Ç DOS ¤òµ¯Æ°¤·¡¢ -¤½¤Î¸å loadlin ¤ò»ÈÍѤ·¤Æ Linux ¥«¡¼¥Í¥ë¤òÆɤ߹þ¤á¤Ð¡¢ -¥ê¥Ö¡¼¥È¤Ë¤è¤Ã¤Æ¥«¡¼¥É¤ÎÀßÄ꤬¥ê¥»¥Ã¥È¤µ¤ì¤ë¤Î¤òËɤ²¤ë¤ï¤±¤À¡£ -.SS °ú¿ô¥ê¥¹¥È -¥«¡¼¥Í¥ë¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ï¥¹¥Ú¡¼¥¹¤Ç¶èÀÚ¤é¤ì¤¿Ê¸»úÎó -.RI ( "µ¯Æ°»þ°ú¿ô: boot arguments" ) -¤Î¥ê¥¹¥È¤«¤éÀ®¤Ã¤Æ¤¤¤ë¡£¤Û¤È¤ó¤É¤Îµ¯Æ°»þ°ú¿ô¤Ï¼¡¤Î½ñ¼°¤Ë½¾¤¦¡£ +また loadlin は、DOS のドライバである状態に +設定しなければならないハードウェアを +使っている場合にも非常に便利である。 +よくある例は +「SoundBlaster 互換」のサウンドカードで、 +これらの中には DOS のドライバを使って +いくつか秘密のレジスタをいじってやらないと、 +本当の SB 互換モードにはならないようなものがある。 +まずハードウェアについてきたドライバを組み込んで DOS を起動し、 +その後 loadlin を使用して Linux カーネルを読み込めば、 +リブートによってカードの設定がリセットされるのを防げるわけだ。 +.SS 引数リスト +カーネルのコマンドラインはスペースで区切られた文字列 +.RI ( "起動時引数: boot arguments" ) +のリストから成っている。ほとんどの起動時引数は次の書式に従う。 .IP name[=value_1][,value_2]...[,value_10] .LP -¤³¤³¤Ç 'name' ¤Ï¡¢¤½¤ì¤ËÂбþ¤¹¤ëÃͤ¬¥«¡¼¥Í¥ë¤Î¤É¤ÎÉôʬ¤ËÅϤµ¤ì¤ë¤â¤Î¤Ê¤Î¤«¤ò -¼±Ê̤¹¤ë¤¿¤á¤Î¡¢Â¾¤È½Å¤Ê¤é¤Ê¤¤¥­¡¼¥ï¡¼¥É¤Ç¤¢¤ë¡£ -½ñ¼°Ãæ¤Î 10 ¤È¤¤¤¦À©¸Â¤Ï¼ÂºÝ¤Ë¸ºß¤¹¤ë¡£ -¸½ºß¤Î¥³¡¼¥É¤Ï¡¢¥­¡¼¥ï¡¼¥É¤Ò¤È¤Ä¤¢¤¿¤ê¡¢¥³¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿¥Ñ¥é¥á¡¼¥¿¤ò -10 ¸Ä¤Þ¤Ç¤·¤«¼è¤ê°·¤¦¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ -(¤·¤«¤·¡¢»ö¾ð¤¬Èó¾ï¤ËÊ£»¨¤Ê¾ì¹ç¤Ë¤Ï¡¢Æ±¤¸¥­¡¼¥ï¡¼¥É¤òºÆÅÙÍøÍѤ·¤Æ -10 ¸Ä°Ê¾å¤Î¥Ñ¥é¥á¡¼¥¿¤òÍ¿¤¨¤ë¤³¤È¤¬¤Ç¤­¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -ÂоݤȤʤë¥Ï¡¼¥É¥¦¥§¥¢¤ÎÀßÄê´Ø¿ô¤¬¤½¤ì¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ì¤Ð¡¢¤À¤¬¡£) +ここで 'name' は、それに対応する値がカーネルのどの部分に渡されるものなのかを +識別するための、他と重ならないキーワードである。 +書式中の 10 という制限は実際に存在する。 +現在のコードは、キーワードひとつあたり、コンマで区切られたパラメータを +10 個までしか取り扱うことができない。 +(しかし、事情が非常に複雑な場合には、同じキーワードを再度利用して +10 個以上のパラメータを与えることができるかもしれない。 +対象となるハードウェアの設定関数がそれをサポートしていれば、だが。) -¥«¡¼¥Í¥ë¥³¥Þ¥ó¥É¥é¥¤¥ó¤Î°·¤¤¤Ï¤Û¤È¤ó¤É linux/init/main.c ¤¬¹Ô¤Ê¤Ã¤Æ¤¤¤ë¡£ -½é¤á¤Ë¡¢¥«¡¼¥Í¥ë¤Ï +カーネルコマンドラインの扱いはほとんど linux/init/main.c が行なっている。 +初めに、カーネルは \&'root=', 'nfsroot=', 'nfsaddrs=', 'ro', 'rw', 'debug', 'init' -¤È¤¤¤Ã¤¿ÆÃÊ̤ʰú¿ô¤¬¤¢¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ -¤³¤ì¤é¤Î°ÕÌ£¤Ë¤Ä¤¤¤Æ¤Ï¸å½Ò¤¹¤ë¡£ +といった特別な引数があるかをチェックする。 +これらの意味については後述する。 -¥«¡¼¥Í¥ë¤Ï¼¡¤ËÀßÄê´Ø¿ô¤Î¥ê¥¹¥È -(ÇÛÎó bootsetups ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë) ¤ò¥¹¥­¥ã¥ó¤·¡¢ -»ØÄꤵ¤ì¤¿°ú¿ôʸ»úÎó (Î㤨¤Ð 'foo') ¤¬ -ÆÃÄê¤Î¥Ç¥Ð¥¤¥¹¤ä¥«¡¼¥Í¥ë¤Î°ìÉô¤ËÂФ¹¤ëÀßÄê´Ø¿ô -('foo_setup()') ¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤Æ¤¤¤ë¤«¤òÄ´¤Ù¤ë¡£ -Î㤨¤Ð¥«¡¼¥Í¥ë¤Ë foo=3,4,5,6 ¤Î¤è¤¦¤Ê¥Ñ¥é¥á¡¼¥¿¤òÍ¿¤¨¤¿¤È¤¹¤ë¤È¡¢ -¥«¡¼¥Í¥ë¤ÏÇÛÎó bootsetups ¤òÄ´¤Ù¤Æ¡¢ 'foo' ¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤«Ä´¤Ù¤ë¡£ -ÅÐÏ¿¤µ¤ì¤Æ¤¤¤¿¤é¡¢'foo' ¤ËÂбþ¤¹¤ëÀßÄê´Ø¿ô ('foo_setup()') ¤ò¥³¡¼¥ë¤·¡¢ -¥«¡¼¥Í¥ë¥³¥Þ¥ó¥É¥é¥¤¥ó¤ËÍ¿¤¨¤é¤ì¤¿°ú¿ô¤Ç¤¢¤ë 3, 4, 5, 6 ¤òÀßÄê´Ø¿ô¤ËÅϤ¹¡£ +カーネルは次に設定関数のリスト +(配列 bootsetups に含まれている) をスキャンし、 +指定された引数文字列 (例えば 'foo') が +特定のデバイスやカーネルの一部に対する設定関数 +('foo_setup()') に関連付けられているかを調べる。 +例えばカーネルに foo=3,4,5,6 のようなパラメータを与えたとすると、 +カーネルは配列 bootsetups を調べて、 'foo' が登録されているか調べる。 +登録されていたら、'foo' に対応する設定関数 ('foo_setup()') をコールし、 +カーネルコマンドラインに与えられた引数である 3, 4, 5, 6 を設定関数に渡す。 -\&'foo=bar' ¤È¤¤¤¦·Á¼°¤Î°ú¿ô¤Î¤¦¤Á¡¢ -¾åµ­¤Î¤è¤¦¤ËÀßÄê´Ø¿ô¤Ë¼õ¤±Æþ¤ì¤é¤ì¤Ê¤«¤Ã¤¿¤â¤Î¤Ï¡¢ -´Ä¶­ÊÑ¿ô¤È²ò¼á¤µ¤ì¤ÆÀßÄꤵ¤ì¤ë¡£ -(¤¢¤Þ¤êÌò¤ËΩ¤¿¤Ê¤¤?) Îã¤È¤·¤Æ¤Ï¡¢'TERM=VT100' ¤¬¤¢¤ë¡£ +\&'foo=bar' という形式の引数のうち、 +上記のように設定関数に受け入れられなかったものは、 +環境変数と解釈されて設定される。 +(あまり役に立たない?) 例としては、'TERM=VT100' がある。 -¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ½èÍý¤µ¤ì¤º¡¢´Ä¶­ÊÑ¿ô¤È¤·¤Æ¤â²ò¼á¤µ¤ì¤Ê¤«¤Ã¤¿ -»Ä¤ê¤Î°ú¿ô¤Ï¡¢¥×¥í¥»¥¹ 1 ¤ËÅϤµ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ -Ä̾盧¤Î¥×¥í¥»¥¹ 1 ¤Ï +カーネルによって処理されず、環境変数としても解釈されなかった +残りの引数は、プロセス 1 に渡されることになる。 +通常このプロセス 1 は .I init -¥×¥í¥°¥é¥à¤Ç¤¢¤ë¡£ -¥×¥í¥»¥¹ 1 ¤ËÅϤµ¤ì¤ë°ú¿ô¤ÇºÇ¤âÎɤ¯»È¤ï¤ì¤ë¤Î¤Ï¡¢ -\&'single' ¤È¤¤¤¦¥­¡¼¥ï¡¼¥É¤Ç¤¢¤ë¡£ -¤³¤ì¤ò»ØÄꤹ¤ë¤È init ¤Ï¥·¥ó¥°¥ë¥æ¡¼¥¶¥â¡¼¥É¤Ç¥³¥ó¥Ô¥å¡¼¥¿¤òµ¯Æ°¤·¡¢ -Ä̾ï»È¤ï¤ì¤ë¥Ç¡¼¥â¥ó¤Ï°ìÀÚµ¯Æ°¤·¤Ê¤¤¡£ -¥·¥¹¥Æ¥à¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë init ¤¬ -¤É¤ó¤Ê°ú¿ô¤ò¼õ¤±ÉÕ¤±¤ë¤«¤Ï¡¢ -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÇÄ´¤Ù¤ë¤³¤È¡£ -.SS °ìÈÌŪ¤Ê¡¢¥Ç¥Ð¥¤¥¹¸ÇÍ­¤Ç¤Ï¤Ê¤¤µ¯Æ°»þ°ú¤­¿ô +プログラムである。 +プロセス 1 に渡される引数で最も良く使われるのは、 +\&'single' というキーワードである。 +これを指定すると init はシングルユーザモードでコンピュータを起動し、 +通常使われるデーモンは一切起動しない。 +システムにインストールされている init が +どんな引数を受け付けるかは、 +マニュアルページで調べること。 +.SS 一般的な、デバイス固有ではない起動時引き数 .TP .B "'init=...'" -¥«¡¼¥Í¥ë¤¬¼Â¹Ô¤¹¤ë½é´ü¥³¥Þ¥ó¥É¤òÀßÄꤹ¤ë¡£ -¤³¤Î»ØÄ꤬¤Ê¤µ¤ì¤Ê¤«¤Ã¤¿¤ê¡¢»ØÄꤷ¤¿¥³¥Þ¥ó¥É¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ -¥«¡¼¥Í¥ë¤Ï +カーネルが実行する初期コマンドを設定する。 +この指定がなされなかったり、指定したコマンドが見つからなかった場合には、 +カーネルは .IR /sbin/init , .IR /etc/init , .IR /bin/init , .I /bin/sh -¤Î½ç¤Ç¼Â¹Ô¤ò»î¤ß¡¢¤¹¤Ù¤Æ¤Ë¼ºÇÔ¤·¤¿¤é panic ¤òµ¯¤³¤¹¡£ +の順で実行を試み、すべてに失敗したら panic を起こす。 .TP .B "'nfsaddrs=...'" -nfs ¤Î¥Ö¡¼¥È¥¢¥É¥ì¥¹¤ò»ØÄꤷ¤¿Ê¸»úÎó¤ËÀßÄꤹ¤ë¡£ -¤³¤Î¥Ö¡¼¥È¥¢¥É¥ì¥¹¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥Ö¡¼¥È¤Î¾ì¹ç¤ËÍѤ¤¤é¤ì¤ë¡£ +nfs のブートアドレスを指定した文字列に設定する。 +このブートアドレスはネットワークブートの場合に用いられる。 .TP .B "'nfsroot=...'" -nfs ¥ë¡¼¥È¤Î̾Á°¤òÀßÄꤹ¤ë¡£ -¤³¤Îʸ»úÎó¤ÎÀèƬ¤¬ '/'¡¢','¡¢¿ô»ú¤Î¤¤¤º¤ì¤Ç¤â¤Ç¤Ê¤¤¤È¤­¤Ï¡¢ -\&'/tftpboot/' ¤¬ÀèƬ¤ËÉղ䵤ì¤ë¡£ -¤³¤Î̾Á°¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥Ö¡¼¥È¤Î¾ì¹ç¤ËÍѤ¤¤é¤ì¤ë¡£ +nfs ルートの名前を設定する。 +この文字列の先頭が '/'、','、数字のいずれでもでないときは、 +\&'/tftpboot/' が先頭に付加される。 +この名前はネットワークブートの場合に用いられる。 .TP .B "'no387'" -(¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +(カーネルのコンパイル時に .B CONFIG_BUGi386 -¤¬»ØÄꤵ¤ì¤¿¤È¤­¤Î¤ßÍ­¸ú¡£) -°ìÉô¤Î i387 ¥³¥×¥í¥»¥Ã¥µ¥Á¥Ã¥×¤Ë¤Ï¡¢ -32 ¥Ó¥Ã¥È¥×¥í¥Æ¥¯¥È¥â¡¼¥É¤Ç¤Î»ÈÍÑ»þ¤ËÀ¸¤¸¤ë¥Ð¥°¤¬¤¢¤ë¡£ -Î㤨¤Ð½é´ü¤Î ULSI-387 ¥Á¥Ã¥×¤Ï¡¢ -ÉâÆ°¾®¿ôÅÀ±é»»¤ò¹Ô¤Ê¤¦¤È³Î¼Â¤Ë¥í¥Ã¥¯¥¢¥Ã¥×¤·¤Æ¤·¤Þ¤¦¡£ -¤³¤Îµ¯Æ°»þ°ú¿ô 'no387' ¤ò»ØÄꤹ¤ë¤È¡¢ -Linux ¤Ï¥³¥×¥í¥»¥Ã¥µ¤¬¤¢¤Ã¤Æ¤â¤½¤ì¤ò̵»ë¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¤Ê¤ª¤â¤Á¤í¤ó¡¢¥«¡¼¥Í¥ë¥³¥ó¥Ñ¥¤¥ë»þ¤ËÉâÆ°¾®¿ôÅÀ±é»»¤ò¥¨¥ß¥å¥ì¡¼¥È¤¹¤ë -(kernel math emulation) »ØÄê¤ò¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤! +が指定されたときのみ有効。) +一部の i387 コプロセッサチップには、 +32 ビットプロテクトモードでの使用時に生じるバグがある。 +例えば初期の ULSI-387 チップは、 +浮動小数点演算を行なうと確実にロックアップしてしまう。 +この起動時引数 'no387' を指定すると、 +Linux はコプロセッサがあってもそれを無視するようになる。 +なおもちろん、カーネルコンパイル時に浮動小数点演算をエミュレートする +(kernel math emulation) 指定をしなければならない! .TP .B "'no-hlt'" -(¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +(カーネルのコンパイル時に .B CONFIG_BUGi386 -¤¬»ØÄꤵ¤ì¤¿¤È¤­¤Î¤ßÍ­¸ú¡£) -½é´ü¤Î i486DX-100 ¥Á¥Ã¥×¤Î°ìÉô¤Ç¤Ï 'hlt' Ì¿Îá¤ËÌäÂ꤬¤¢¤Ã¤Æ¡¢ -¤³¤ÎÌ¿Îá¤ò»È¤¦¤È¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥â¡¼¥É¤ËÀµ¤·¤¯Ìá¤Ã¤ÆÍè¤Ê¤¤¡£ -\&'no-hlt' ¤ò»ØÄꤹ¤ì¤Ð¡¢Linux ¤Ï¥¢¥¤¥É¥ê¥ó¥°»þ¤Ë CPU ¤òÄä»ß -(halt) ¤¹¤ë¤«¤ï¤ê¤Ë̵¸Â¥ë¡¼¥×¤ò¼Â¹Ô¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¤³¤ì¤Ë¤è¤Ã¤Æ¡¢¤½¤Î¤è¤¦¤Ê¥Ð¥°¤Î¤¢¤ë¥Á¥Ã¥×¤Ç¤â Linux ¤ò»ÈÍѤǤ­¤ë¡£ +が指定されたときのみ有効。) +初期の i486DX-100 チップの一部では 'hlt' 命令に問題があって、 +この命令を使うとオペレーティングモードに正しく戻って来ない。 +\&'no-hlt' を指定すれば、Linux はアイドリング時に CPU を停止 +(halt) するかわりに無限ループを実行するようになる。 +これによって、そのようなバグのあるチップでも Linux を使用できる。 .TP .B "'root=...'" -µ¯Æ°»þ¤Ë¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤È¤·¤Æ»È¤ï¤ì¤ë¥Ç¥Ð¥¤¥¹¤ò¥«¡¼¥Í¥ë¤Ë»ØÄꤹ¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï¥³¥ó¥Ñ¥¤¥ë»þ¤Ë·èÄꤵ¤ì¡¢ -Ä̾ï¤Ï¥«¡¼¥Í¥ë¤ò¹½ÃÛ¤·¤¿¥·¥¹¥Æ¥à¤Î¥ë¡¼¥È¥Ç¥Ð¥¤¥¹¤Ë¤Ê¤ë¡£ -¤³¤ÎÃͤò̵¸ú¤Ë¤·¤Æ¡¢ -Î㤨¤Ð 2 ÈÖÌܤΥեí¥Ã¥Ô¡¼¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ö¤ò¥ë¡¼¥È¥Ç¥Ð¥¤¥¹¤Ë»ØÄꤹ¤ë¾ì¹ç¤Ï¡¢ -\&'root=/dev/fd1' ¤È¤¹¤ë¡£ -(¥ë¡¼¥È¥Ç¥Ð¥¤¥¹¤Ï +起動時にルートファイルシステムとして使われるデバイスをカーネルに指定する。 +デフォルトはコンパイル時に決定され、 +通常はカーネルを構築したシステムのルートデバイスになる。 +この値を無効にして、 +例えば 2 番目のフロッピーディスクドライブをルートデバイスに指定する場合は、 +\&'root=/dev/fd1' とする。 +(ルートデバイスは .BR rdev (8) -¤òÍѤ¤¤Æ¤âÀßÄê¤Ç¤­¤ë¡£) +を用いても設定できる。) -¥ë¡¼¥È¥Ç¥Ð¥¤¥¹¤Î»ØÄê¤Ë¤Ï¥·¥ó¥Ü¥ë·Á¼°¤È¿ôÃÍ·Á¼°¤òÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥·¥ó¥Ü¥ë·Á¼°¤Î¾ì¹ç¤Ï /dev/XXYN ¤È¤¤¤¦½ñ¼°¤Ç»ØÄꤹ¤ë¡£ -XX ¤Ë¤Ï¥Ç¥Ð¥¤¥¹¥¿¥¤¥×¤ò»ØÄꤹ¤ë¡£ -Y ¤Ë¤Ï¥É¥é¥¤¥Ö¥ì¥¿¡¼¤â¤·¤¯¤Ï¥É¥é¥¤¥ÖÈֹ桢 -N ¤Ë¤Ï (¥Õ¥í¥Ã¥Ô¡¼¥Ç¥£¥¹¥¯¤ò½ü¤¯) ¥Ç¥£¥¹¥¯¤Î -¥Ñ¡¼¥Æ¥£¥·¥ç¥óÈÖ¹æ¤ò 10 ¿Ê¿ô¤Î¿ôÃͤǻØÄꤹ¤ë¡£ -(ST-506 ¸ß´¹¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤Ç¤Ï¥Ç¥Ð¥¤¥¹¥¿¥¤¥×¤¬ 'hd' ¤Ç -Y ¤ÎÈÏ°Ï¤Ï 'a' ¤«¤é 'd'¡¢ -SCSI ¥Ç¥£¥¹¥¯¤Ï 'sd' ¤Ç Y ¤Ï 'a' ¤«¤é 'e'¡¢ -Atari ACSI ¥Ç¥£¥¹¥¯¤Ï 'ad' ¤Ç Y ¤Ï 'a' ¤«¤é 'e'¡¢ -Syquest EZ135 ¥Ñ¥é¥ì¥ë¥Ý¡¼¥È¥ê¥à¡¼¥Ð¥Ö¥ë¥Ç¥£¥¹¥¯¤Ï 'ez' ¤Ç Y ¤Ï 'a' ¤Î¤ß¡¢ -XT ¥Ç¥£¥¹¥¯¤Ï 'xt' ¤Ç Y ¤Ï 'a' ¤« 'b'¡¢ -¥Õ¥í¥Ã¥Ô¡¼¥Ç¥£¥¹¥¯¤Ï 'fd' ¤Ç Y ¤Ë¤Ï¥É¥é¥¤¥ÖÈÖ¹æ¤ò»ØÄꤹ¤ë¡£ -fd0 ¤Ï DOS ¤Î 'A:'¡¢fd1 ¤Ï 'B:' ¤ËÂбþ¤·¤Æ¤¤¤ë¡£ -¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï¸ºß¤·¤Ê¤¤¤Î¤Ç N ¤Ï»ØÄꤷ¤Ê¤¤¡£) -ºÇ¿·¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢Â¾¤Ë¤â¼¡¤Î¤è¤¦¤Ê¿¤¯¤Î¥Ç¥Ð¥¤¥¹¥¿¥¤¥×¤ò»ØÄê¤Ç¤­¤ë -(¤Û¤È¤ó¤É¤Ï CD-ROM ¤À¤¬): -nfs, ram, scd, mcd, cdu535, aztcd, cm206cd, gscd, sbpcd, sonycd, bpcd¡£ -(nfs ¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥Ö¡¼¥È¤Ë¡¢ram ¤Ï RAM ¥Ç¥£¥¹¥¯¤ò»ÈÍѤ¹¤ë¾ì¹ç¤ËÍѤ¤¤ë¡£) +ルートデバイスの指定にはシンボル形式と数値形式を用いることができる。 +シンボル形式の場合は /dev/XXYN という書式で指定する。 +XX にはデバイスタイプを指定する。 +Y にはドライブレターもしくはドライブ番号、 +N には (フロッピーディスクを除く) ディスクの +パーティション番号を 10 進数の数値で指定する。 +(ST-506 互換ハードディスクではデバイスタイプが 'hd' で +Y の範囲は 'a' から 'd'、 +SCSI ディスクは 'sd' で Y は 'a' から 'e'、 +Atari ACSI ディスクは 'ad' で Y は 'a' から 'e'、 +Syquest EZ135 パラレルポートリムーバブルディスクは 'ez' で Y は 'a' のみ、 +XT ディスクは 'xt' で Y は 'a' か 'b'、 +フロッピーディスクは 'fd' で Y にはドライブ番号を指定する。 +fd0 は DOS の 'A:'、fd1 は 'B:' に対応している。 +パーティションは存在しないので N は指定しない。) +最新のカーネルでは、他にも次のような多くのデバイスタイプを指定できる +(ほとんどは CD-ROM だが): +nfs, ram, scd, mcd, cdu535, aztcd, cm206cd, gscd, sbpcd, sonycd, bpcd。 +(nfs はネットワークブートに、ram は RAM ディスクを使用する場合に用いる。) -¤Ê¤ª¡¢¤³¤ì¤é¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ç¤Î¥Ç¥Ð¥¤¥¹¤Î»ØÄêÊýË¡¤È¤ÏÁ´¤¯´Ø·¸¤Ê¤¤¡£ -\&'/dev/' ¤òÍѤ¤¤ë¤Î¤Ïñ¤Ë´·½¬¤Ë²á¤®¤Ê¤¤¡£ +なお、これらはファイルシステム上でのデバイスの指定方法とは全く関係ない。 +\&'/dev/' を用いるのは単に慣習に過ぎない。 -°·¤¤¤Ë¤¯¤¤¤·°Ü¿¢À­¤âÎɤ¯¤Ê¤¤¤¬¡¢ -¾åµ­¤Î¥Ç¥Ð¥¤¥¹¤ò major/minor ÈÖ¹æ¤Î¿ôÃͤǻØÄꤷ¤Æ¤â¤è¤¤¡£ -(Î㤨¤Ð /dev/sda3 ¤Ï major ÈÖ¹æ 8¡¢minor ÈÖ¹æ 3 ¤Ê¤Î¤Ç¡¢ -\&'root=0x803' ¤Èµ­½Ò¤Ç¤­¤ë¡£) -.TP -.B "'ro' ¤È 'rw'" -\&'ro' ¥ª¥×¥·¥ç¥ó¤Ï¡¢¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò -¡ÖÆɤ߽Ф·ÀìÍѡפǥޥ¦¥ó¥È¤¹¤ë¤è¤¦¥«¡¼¥Í¥ë¤Ë»Ø¼¨¤·¡¢ -fsck ¥×¥í¥°¥é¥à¤¬¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÌ·½â¤ò¸¡ºº¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¡ÖÆɤ߽ñ¤­²Äǽ¡×¤È¤·¤ÆºÆ¥Þ¥¦¥ó¥È¤µ¤ì¤ë -(¤Ä¤Þ¤ê 'mount \-w \-n \-o remount /') ¤Þ¤Ç¤Î´Ö¤Ï¡¢ -¤¤¤«¤Ê¤ë¥×¥í¥»¥¹¤â¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤à¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +扱いにくいし移植性も良くないが、 +上記のデバイスを major/minor 番号の数値で指定してもよい。 +(例えば /dev/sda3 は major 番号 8、minor 番号 3 なので、 +\&'root=0x803' と記述できる。) +.TP +.B "'ro' と 'rw'" +\&'ro' オプションは、ルートファイルシステムを +「読み出し専用」でマウントするようカーネルに指示し、 +fsck プログラムがファイルシステムの矛盾を検査できるようにする。 +ファイルシステムが「読み書き可能」として再マウントされる +(つまり 'mount \-w \-n \-o remount /') までの間は、 +いかなるプロセスもこのファイルシステム上のファイルに書き込むことはできない。 .RB ( mount (8) -¤â»²¾È¤»¤è¡£) +も参照せよ。) -rw ¥ª¥×¥·¥ç¥ó¤Ï¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò -¡ÖÆɤ߽ñ¤­²Äǽ¡×¤Ç¥Þ¥¦¥ó¥È¤¹¤ë¤è¤¦¥«¡¼¥Í¥ë¤Ë»Ø¼¨¤¹¤ë¡£ -¤³¤Á¤é¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£ +rw オプションはルートファイルシステムを +「読み書き可能」でマウントするようカーネルに指示する。 +こちらがデフォルトである。 -¾Êά»þ¤Î»ØÄê¤ò¡ÖÆɤ߽Ф·ÀìÍÑ¡×¤È -¡ÖÆɤ߽ñ¤­²Äǽ¡×¤È¤Î¤É¤Á¤é¤Ë¤¹¤ë¤«¤Ï¡¢ +省略時の指定を「読み出し専用」と +「読み書き可能」とのどちらにするかは、 .BR rdev (8) -¤Ë¤è¤Ã¤Æ¤âÀßÄê¤Ç¤­¤ë¡£ +によっても設定できる。 .TP .B "'reserve=...'" -¥Ç¥Ð¥¤¥¹¤Î¼«Æ°¸¡½Ð¤«¤é I/O ¥Ý¡¼¥È¤òÊݸ¤ë¤¿¤á¤ËÍѤ¤¤ë¡£ -¥³¥Þ¥ó¥É¤Î·Á¼°¤Ï°Ê²¼¤ÎÄ̤ꡣ +デバイスの自動検出から I/O ポートを保護するために用いる。 +コマンドの形式は以下の通り。 .IP .BI reserve= iobase,extent[,iobase,extent]... .sp -µ¡¼ï¤Ë¤è¤Ã¤Æ¤Ï¡¢ -¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ë¤è¤ë¥Ç¥Ð¥¤¥¹¤Î¼«Æ°¸¡½Ð¤ò¡¢ -ÆÃÄê¤ÎÈϰϤËÂФ·¤Æ¤Ï¶Ø»ß¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤¬¤¢¤ë¡£ -¥Ï¡¼¥É¥¦¥§¥¢¤¬¸¡½ÐÆ°ºî¤Ë¤è¤Ã¤Æ¿¼¹ï¤ÊÌäÂê¤ò°ú¤­µ¯¤³¤¹¾ì¹ç¤ä¡¢ -¸íǧ¼±¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¾ì¹ç¡¢ -¤Þ¤¿Ã±¤Ë¥«¡¼¥Í¥ë¤Ë¥Ï¡¼¥É¥¦¥§¥¢¤ò½é´ü²½¤µ¤»¤¿¤¯¤Ê¤¤¾ì¹ç¤Ê¤É¤¬¤¢¤ê¤¦¤ë¤À¤í¤¦¡£ +機種によっては、 +デバイスドライバによるデバイスの自動検出を、 +特定の範囲に対しては禁止しなければならないことがある。 +ハードウェアが検出動作によって深刻な問題を引き起こす場合や、 +誤認識される可能性がある場合、 +また単にカーネルにハードウェアを初期化させたくない場合などがありうるだろう。 -¤³¤Îµ¯Æ°»þ°ú¿ô reserve ¤Ï¡¢¼«Æ°¸¡½Ð¤ÎÂоݳ°¤È¤¹¤ë I/O ¥Ý¡¼¥È¤ÎÈϰϤò»ØÄꤹ¤ë¡£ -¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ï¡¢ -¾¤Îµ¯Æ°»þ°ú¿ô¤Ë¤è¤Ã¤ÆÌÀ¼¨Åª¤Ë»ØÄꤵ¤ì¤Ê¤¤¸Â¤ê¡¢ -ͽÌ󤵤줿ÈϰϤËÂФ·¤Æ¼«Æ°¸¡½ÐÆ°ºî¤ò¹Ô¤ï¤Ê¤¤¡£ +この起動時引数 reserve は、自動検出の対象外とする I/O ポートの範囲を指定する。 +デバイスドライバは、 +他の起動時引数によって明示的に指定されない限り、 +予約された範囲に対して自動検出動作を行わない。 -Î㤨¤Ð¥Ö¡¼¥È»þ¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ë +例えばブート時のコマンドラインに .IP reserve=0x300,32 blah=0x300 .IP -¤È»ØÄꤹ¤ë¤È¡¢'blah' ¤ò½ü¤¯¤¹¤Ù¤Æ¤Î¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ï -0x300 ¤«¤é 0x31f ¤ÎÈϰϤò¼«Æ°¸¡½Ð¤ÎÂоݳ°¤È¤¹¤ë¡£ +と指定すると、'blah' を除くすべてのデバイスドライバは +0x300 から 0x31f の範囲を自動検出の対象外とする。 .TP .B "'mem=...'" -ÅëºÜ¤µ¤ì¤Æ¤¤¤ë¥á¥â¥ê¤ÎÎ̤òÊÖ¤¹ BIOS ¥³¡¼¥ë¤Ï -PC ¤Î»ÅÍͤÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢¤³¤ì¤ÏºÇÂç 64MB ¤Þ¤Ç¤·¤«ÊÖ¤¹¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ -Linux ¤ÏÅëºÜ¥á¥â¥ê¤ÎÎ̤òÄ´¤Ù¤ë¤¿¤á¤Ë¡¢ -µ¯Æ°»þ¤Ë¤³¤Î BIOS ¥³¡¼¥ë¤ò»ÈÍѤ¹¤ë¡£ -¤â¤· 64MB °Ê¾å¤Î RAM ¤òÅëºÜ¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ -¤³¤Îµ¯Æ°»þ°ú¿ô¤òÍѤ¤¤Æ -¼ÂºÝ¤Î¥á¥â¥êÍÆÎ̤ò Linux ¤ËÃΤ餻¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -ÃÍ¤Ï 10 ¿Ê¿ô¤Þ¤¿¤Ï 16 ¿Ê¿ô (ÀèƬ¤Ë 0x ¤òÉÕ²Ã) ¤Î¿ôÃͤǻØÄꤷ¡¢ -1024 Çܤòɽ¤¹ 'k' ¤Þ¤¿¤Ï 1048576 Çܤòɽ¤¹ 'M' -¤òËöÈø¤ËÉղäǤ­¤ë¡£ -°Ê²¼¤Ï Linus ¤Ë¤è¤ë 'mem=' ¥Ñ¥é¥á¡¼¥¿¤Î²òÀâ¤Ç¤¢¤ë¡£ +搭載されているメモリの量を返す BIOS コールは +PC の仕様で定義されているが、これは最大 64MB までしか返すことができない。 +Linux は搭載メモリの量を調べるために、 +起動時にこの BIOS コールを使用する。 +もし 64MB 以上の RAM を搭載している場合は、 +この起動時引数を用いて +実際のメモリ容量を Linux に知らせることができる。 +値は 10 進数または 16 進数 (先頭に 0x を付加) の数値で指定し、 +1024 倍を表す 'k' または 1048576 倍を表す 'M' +を末尾に付加できる。 +以下は Linus による 'mem=' パラメータの解説である。 .in +0.5i -¥«¡¼¥Í¥ë¤Ï 'mem=xx' ¥Ñ¥é¥á¡¼¥¿¤È¤·¤Æ -¤É¤ó¤ÊÃͤò»ØÄꤷ¤Æ¤â¤½¤ì¤ò¤½¤Î¤Þ¤Þ¼õ¤±Æþ¤ì¤ë¡£ -¤À¤«¤é¤½¤ì¤¬±³¤À¤È¤ï¤«¤Ã¤¿¤é¡¢ -ÃÙ¤«¤ìÁᤫ¤ì¤Ò¤É¤¤¥¯¥é¥Ã¥·¥å¤ò¤¹¤ë¤À¤í¤¦¡£ -¥Ñ¥é¥á¡¼¥¿¤Ï¥¢¥¯¥»¥¹¤·¤¦¤ëºÇ¤â¹â°Ì¤Î RAM ¥¢¥É¥ì¥¹¤ò»Ø¼¨¤¹¤ë¡£ -¤À¤«¤éÎ㤨¤Ð 'mem=0x1000000' ¤Ã¤Æ¤¤¤¦¤Î¤Ï -16MB ¤Î¥á¥â¥ê¤¬¤¢¤ë¡¢¤È¤¤¤¦°ÕÌ£¤Ë¤Ê¤ë¡£ -96MB ¤Î¥Þ¥·¥ó¤Ê¤é 'mem=0x6000000' ¤À¡£ +カーネルは 'mem=xx' パラメータとして +どんな値を指定してもそれをそのまま受け入れる。 +だからそれが嘘だとわかったら、 +遅かれ早かれひどいクラッシュをするだろう。 +パラメータはアクセスしうる最も高位の RAM アドレスを指示する。 +だから例えば 'mem=0x1000000' っていうのは +16MB のメモリがある、という意味になる。 +96MB のマシンなら 'mem=0x6000000' だ。 -.BR "Ãí°Õ" : -¥Þ¥·¥ó¤Ë¤è¤Ã¤Æ¤Ï¥á¥â¥ê¤ÎºÇ¾å°Ì¤ÎÎΰè¤ò BIOS ¤Î¥­¥ã¥Ã¥·¥å¤ä¤é²¿¤ä¤é¤Î -¤¿¤á¤Ë»È¤Ã¤Æ¤¤¤ë¤³¤È¤¬¤¢¤ë¤«¤é¡¢ -¼ÂºÝ¤Ë¤Ï 96MB ¤ò¥Õ¥ë¤Ë¥¢¥É¥ì¥¹¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -µÕ¤Î¾ì¹ç¤â¤¢¤ë¡£ -¤¤¤¯¤Ä¤«¤Î¥Á¥Ã¥×¥»¥Ã¥È¤Ç¤Ï¡¢ -BIOS Îΰè¤ËÆþ¤Ã¤Æ¤¤¤ëʪÍý¥á¥â¥ê¤òºÇ¾å°Ì¤Î¥á¥â¥ê¤Î¤µ¤é¤Ë¾å¤Ë¥Þ¥Ã¥×¤¹¤ë¡£ -¤è¤Ã¤ÆºÇ¾å°Ì¤Î¥á¥â¥ê¤Ï¤¿¤È¤¨¤Ð 96MB + 384kB ¤Ê¤ó¤ÆÃͤˤʤ뤫¤â¤·¤ì¤Ê¤¤¡£ -linux ¤Ë¼ÂºÝ¤è¤ê¿¤¤¥á¥â¥ê¤ò¶µ¤¨¤Æ¤·¤Þ¤Ã¤¿¤È¤·¤¿¤é¡¢ -¤Þ¤º¤¤¤³¤È¤¬µ¯¤­¤ë¤À¤í¤¦¡£ -¤¹¤°¤Ë¤Ç¤Ï¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¤±¤É¡¢¤æ¤¯¤æ¤¯¤Ï³Î¼Â¤Ë¤Í¡£ +.BR "注意" : +マシンによってはメモリの最上位の領域を BIOS のキャッシュやら何やらの +ために使っていることがあるから、 +実際には 96MB をフルにアドレスすることはできないかもしれない。 +逆の場合もある。 +いくつかのチップセットでは、 +BIOS 領域に入っている物理メモリを最上位のメモリのさらに上にマップする。 +よって最上位のメモリはたとえば 96MB + 384kB なんて値になるかもしれない。 +linux に実際より多いメモリを教えてしまったとしたら、 +まずいことが起きるだろう。 +すぐにではないかもしれないけど、ゆくゆくは確実にね。 .in -¤Þ¤¿¡¢µ¯Æ°»þ°ú¿ô¤Ë 'mem=nopentium' ¤ò»ØÄꤹ¤ë¤È¡¢ -pentium ¤È¤½¤ì°Ê¹ß¤Î CPU ¤ò»È¤Ã¤¿ IA32 ¥·¥¹¥Æ¥àÍѤËÀßÄꤵ¤ì¤¿¥«¡¼¥Í¥ë¤Ç -4MB ¤Î¥Ú¡¼¥¸¥Æ¡¼¥Ö¥ë¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +また、起動時引数に 'mem=nopentium' を指定すると、 +pentium とそれ以降の CPU を使った IA32 システム用に設定されたカーネルで +4MB のページテーブルを無効にすることができる。 .TP .B "'panic=N'" -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥«¡¼¥Í¥ë¤Ï¥Ñ¥Ë¥Ã¥¯¤Î¸å¥ê¥Ö¡¼¥È¤·¤Ê¤¤¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤Æ (N ¤ò 0 ¤è¤êÂ礭¤ÊÃͤȤ¹¤ì¤Ð) -N Éøå¤Ë¥ê¥Ö¡¼¥È¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¤³¤ÎÃͤϡ¢µ¯Æ°¸å¤Ë "echo N > /proc/sys/kernel/panic" -¤È¤·¤ÆÀßÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +デフォルトでは、カーネルはパニックの後リブートしない。 +このオプションを用いて (N を 0 より大きな値とすれば) +N 秒後にリブートするようになる。 +この値は、起動後に "echo N > /proc/sys/kernel/panic" +として設定することもできる。 .TP .B "'reboot=[warm|cold][,[bios|hard]]'" -(¥«¡¼¥Í¥ë¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +(カーネルコンパイル時に .B CONFIG_BUGi386 -¤¬»ØÄꤵ¤ì¤¿¤È¤­¤Î¤ßÍ­¸ú¡£) -¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó 2.0.22 ¤«¤é¡¢ -¥ê¥Ö¡¼¥È¤Î¥Ç¥Õ¥©¥ë¥È¤Ï¥³¡¼¥ë¥É¥Ö¡¼¥È¤Ë¤Ê¤Ã¤¿¡£ -°ÊÁ°¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¥¦¥©¡¼¥à¥Ö¡¼¥È¤ò¤¹¤ë¤Ë¤Ï -\&'reboot=warm' ¤È»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -(¤¢¤ë¼ï¤Î¥Ï¡¼¥É¥¦¥§¥¢¤ò¥ê¥»¥Ã¥È¤¹¤ë¤Ë¤Ï¥³¡¼¥ë¥É¥Ö¡¼¥È¤¬É¬Íפˤʤ뤬¡¢ -¥Ç¥£¥¹¥¯¥­¥ã¥Ã¥·¥å¤Ë¤¢¤ë½ñ¤­¹þ¤ó¤Ç¤¤¤Ê¤¤¥Ç¡¼¥¿¤ÏÇ˲õ¤µ¤ì¤ë¡£ -¥¦¥©¡¼¥à¥Ö¡¼¥È¤Ç¤Ï¡¢¤è¤êÁÇÁ᤯¥ê¥Ö¡¼¥È¤Ç¤­¤ë¡£) -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥ê¥Ö¡¼¥È¤Ï 'hard' ¤Ç¹Ô¤ï¤ì¤ë¡£ -¤¹¤Ê¤ï¤Á¥ê¥»¥Ã¥È¥é¥¤¥ó¤Ë low ¤ò½ÐÎϤ¹¤ë¤è¤¦¥­¡¼¥Ü¡¼¥É¥³¥ó¥È¥í¡¼¥é¤ËÍ׵ᤷ¤Æ¡¢ -¥ê¥Ö¡¼¥È¤ò¹Ô¤¦¡£ -¤·¤«¤·°ìÉô¤Î¥Þ¥¶¡¼¥Ü¡¼¥É¤Ç¤Ï¤³¤ì¤¬¤Ç¤­¤Ê¤¤¡£ -\&'reboot=bios' ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢ -Âå¤ï¤ê¤Ë BIOS ¤ò·Ðͳ¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -.TP -.B "'nosmp'" ¤È "'maxcpus=N'" -(¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë __SMP__ ¤¬»ØÄꤵ¤ì¤¿¤È¤­¤Î¤ßÍ­¸ú¡£) -¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤Ë 'nosmp' ¤Þ¤¿¤Ï 'maxcpus=0' ¤ò»ØÄꤹ¤ë¤È¡¢ -SMP (Symmetric Multi Processing) ¤ò´°Á´¤Ë̵¸ú¤Ë¤¹¤ë¡£ -\&'maxcpus=N' ¥ª¥×¥·¥ç¥ó¤Ï¡¢ -SMP ¥â¡¼¥É¤ÇÍ­¸ú¤Ë¤¹¤ë CPU ¤ÎºÇÂç¿ô¤ò N ¤ËÀ©¸Â¤¹¤ë¡£ -.SS ¥«¡¼¥Í¥ë³«È¯¼ÔÍѤε¯Æ°»þ°ú¿ô +が指定されたときのみ有効。) +カーネルバージョン 2.0.22 から、 +リブートのデフォルトはコールドブートになった。 +以前のデフォルトであるウォームブートをするには +\&'reboot=warm' と指定しなければならない。 +(ある種のハードウェアをリセットするにはコールドブートが必要になるが、 +ディスクキャッシュにある書き込んでいないデータは破壊される。 +ウォームブートでは、より素早くリブートできる。) +デフォルトではリブートは 'hard' で行われる。 +すなわちリセットラインに low を出力するようキーボードコントローラに要求して、 +リブートを行う。 +しかし一部のマザーボードではこれができない。 +\&'reboot=bios' オプションを指定すると、 +代わりに BIOS を経由するようになる。 +.TP +.B "'nosmp'" と "'maxcpus=N'" +(カーネルのコンパイル時に __SMP__ が指定されたときのみ有効。) +コマンドラインオプションに 'nosmp' または 'maxcpus=0' を指定すると、 +SMP (Symmetric Multi Processing) を完全に無効にする。 +\&'maxcpus=N' オプションは、 +SMP モードで有効にする CPU の最大数を N に制限する。 +.SS カーネル開発者用の起動時引数 .TP .B "'debug'" -¥«¡¼¥Í¥ë¤¬½ÐÎϤ¹¤ë¥á¥Ã¥»¡¼¥¸¤Ï¥«¡¼¥Í¥ë¥í¥°¥Ç¡¼¥â¥ó klogd ¤ËÅϤµ¤ì¡¢ -¥Ç¥£¥¹¥¯¤Ëµ­Ï¿¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¥×¥é¥¤¥ª¥ê¥Æ¥£¤¬ +カーネルが出力するメッセージはカーネルログデーモン klogd に渡され、 +ディスクに記録できるようになる。 +プライオリティが .I console_loglevel -¤Î¥á¥Ã¥»¡¼¥¸¤Ï¥³¥ó¥½¡¼¥ë¤Ë¤âɽ¼¨¤µ¤ì¤ë¡£ -(¤³¤ì¤é¤Î¥ì¥Ù¥ë¤Ë¤Ä¤¤¤Æ¤Ï¡¢\fI\fP ¤ò»²¾È¡£) -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¤³¤ÎÊÑ¿ô¤Ï¡¢ -¥Ç¥Ð¥Ã¥°¥á¥Ã¥»¡¼¥¸¤è¤ê¤â½ÅÍפʤ¢¤é¤æ¤ë¥á¥Ã¥»¡¼¥¸¤òµ­Ï¿¤¹¤ë¤è¤¦ÀßÄꤵ¤ì¤Æ¤¤¤ë -(¥Ç¥Ð¥Ã¥°¥á¥Ã¥»¡¼¥¸¤Ï´Þ¤Þ¤Ê¤¤)¡£ -¤³¤Îµ¯Æ°»þ°ú¿ô¤ò»ØÄꤹ¤ë¤È¡¢ -¥«¡¼¥Í¥ë¤Ï¥×¥é¥¤¥ª¥ê¥Æ¥£¤¬ DEBUG ¤Î¥á¥Ã¥»¡¼¥¸¤â½ÐÎϤ¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +のメッセージはコンソールにも表示される。 +(これらのレベルについては、\fI\fP を参照。) +デフォルトではこの変数は、 +デバッグメッセージよりも重要なあらゆるメッセージを記録するよう設定されている +(デバッグメッセージは含まない)。 +この起動時引数を指定すると、 +カーネルはプライオリティが DEBUG のメッセージも出力するようになる。 .I console_loglevel -¤â klogd ¤Ë¥ª¥×¥·¥ç¥ó¤òÅϤ»¤Ð¼Â¹Ô»þ¤ËÀßÄê¤Ç¤­¤ë¡£ +も klogd にオプションを渡せば実行時に設定できる。 .BR klogd (8) -¤ò¸«¤è¡£ +を見よ。 .TP .B "'profile=N'" -¥«¡¼¥Í¥ë¤¬¤É¤³¤Ç CPU ¥µ¥¤¥¯¥ë¤ò¾ÃÈñ¤·¤Æ¤¤¤ë¤«Ä´¤Ù¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ -¥«¡¼¥Í¥ë¤Î¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°µ¡Ç½¤òÍ­¸ú¤Ë¤¹¤ì¤Ð¤³¤ì¤ò¼Â¸½¤Ç¤­¤ë¡£ -¥«¡¼¥Í¥ë¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤Ï¡¢ÊÑ¿ô +カーネルがどこで CPU サイクルを消費しているか調べたい場合には、 +カーネルのプロファイリング機能を有効にすればこれを実現できる。 +カーネルプロファイリングは、変数 .I prof_shift -¤ò 0 °Ê³°¤ÎÃͤ˥»¥Ã¥È¤¹¤ë¤ÈÍ­¸ú¤Ë¤Ê¤ë¡£ -¤³¤ÎÃͤϥ³¥ó¥Ñ¥¤¥ë»þ¤Ë +を 0 以外の値にセットすると有効になる。 +この値はコンパイル時に .B CONFIG_PROFILE -¤Ç»ØÄꤹ¤ë¤«¡¢ -¤³¤Î 'prifile=N' ¥ª¥×¥·¥ç¥ó¤Ç»ØÄê¤Ç¤­¤ë¡£ +で指定するか、 +この 'prifile=N' オプションで指定できる。 .I prof_shift -¤ÎÃÍ¤Ï N ¤¬»ØÄꤵ¤ì¤ì¤Ð N ¤È¤Ê¤ê¡¢N ¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï +の値は N が指定されれば N となり、N が指定されなかった場合は .B CONFIG_PROFILE_SHIFT -¤ÎÃͤ¬ÍѤ¤¤é¤ì¤ë¡£ -¤É¤Á¤é¤â»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¥Ç¥Õ¥©¥ë¥ÈÃͤΠ2 ¤¬ÍѤ¤¤é¤ì¤ë¡£ -¤³¤ÎÊÑ¿ô¤¬½ÅÍפʤΤϡ¢ -¥«¡¼¥Í¥ë¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤ÎγÅÙ¤ò·èÄꤹ¤ë¤È¤³¤í¤Ë¤¢¤ë¡£ -¤¹¤Ê¤ï¤Á¡¢³Æ¥¯¥í¥Ã¥¯¤Î³ä¹þ¤ß¤´¤È¤Ë¡¢¥·¥¹¥Æ¥à¤¬¥«¡¼¥Í¥ë¥³¡¼¥É¤ò¼Â¹Ô¤·¤Æ¤¤¤ì¤Ð¡¢ -°Ê²¼¤Î¤è¤¦¤Ë¥«¥¦¥ó¥¿¤ÎÃͤ¬¥¤¥ó¥¯¥ê¥á¥ó¥È¤µ¤ì¤ë¡£ +の値が用いられる。 +どちらも指定されなければデフォルト値の 2 が用いられる。 +この変数が重要なのは、 +カーネルプロファイリングの粒度を決定するところにある。 +すなわち、各クロックの割込みごとに、システムがカーネルコードを実行していれば、 +以下のようにカウンタの値がインクリメントされる。 .IP profile[address >> prof_shift]++; .sp -À¸¤Î¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¾ðÊó¤Ï¡¢ +生のプロファイリング情報は、 .I /proc/profile -¤«¤é¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¤¬¡¢readprofile.c -¤Î¤è¤¦¤Ê¾ðÊó¤ò²Ã¹©¤¹¤ë¥Ä¡¼¥ë¤ò»È¤Ã¤¿¤Û¤¦¤¬Îɤ¤¤À¤í¤¦¡£ +から見ることができるが、readprofile.c +のような情報を加工するツールを使ったほうが良いだろう。 .I /proc/profile -¤ËǤ°Õ¤Î¥Ç¡¼¥¿¤ò½ñ¹þ¤à¤È¡¢ -¥«¥¦¥ó¥¿¤Ï¥ê¥»¥Ã¥È¤µ¤ì¤ë¡£ +に任意のデータを書込むと、 +カウンタはリセットされる。 .TP .B "'swap=N1,N2,N3,N4,N5,N6,N7,N8'" -¥«¡¼¥Í¥ë¤Î¥¹¥ï¥Ã¥×¥¢¥ë¥´¥ê¥º¥à¤ò¥³¥ó¥È¥í¡¼¥ë¤¹¤ë -¼¡¤Î 8 ¤Ä¤Î¥Ñ¥é¥á¡¼¥¿¤ò¥»¥Ã¥È¤¹¤ë¡£ +カーネルのスワップアルゴリズムをコントロールする +次の 8 つのパラメータをセットする。 max_page_age, page_advance, page_decline, page_initial_age, age_cluster_fract, age_cluster_min, pageout_weight, bufferout_weight. -¤³¤ì¤Ï¥«¡¼¥Í¥ë¤ò¥Á¥å¡¼¥ó¤¹¤ë¿Í¤Î¤¿¤á¤Î¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë¡£ +これはカーネルをチューンする人のためのオプションである。 .TP .B "'buff=N1,N2,N3,N4,N5,N6'" -¥«¡¼¥Í¥ë¤Î¥Ð¥Ã¥Õ¥¡¥á¥â¥ê´ÉÍý¤ò¥³¥ó¥È¥í¡¼¥ë¤¹¤ë -¼¡¤Î 6 ¤Ä¤Î¥Ñ¥é¥á¡¼¥¿¤ò¥»¥Ã¥È¤¹¤ë¡£ +カーネルのバッファメモリ管理をコントロールする +次の 6 つのパラメータをセットする。 max_buff_age, buff_advance, buff_decline, buff_initial_age, bufferout_weight, buffermem_grace. -¤³¤ì¤Ï¥«¡¼¥Í¥ë¤ò¥Á¥å¡¼¥ó¤¹¤ë¿Í¤Î¤¿¤á¤Î¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë¡£ -.SS "RAM ¥Ç¥£¥¹¥¯´ØÏ¢¤Îµ¯Æ°»þ°ú¿ô" -(¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +これはカーネルをチューンする人のためのオプションである。 +.SS "RAM ディスク関連の起動時引数" +(カーネルのコンパイル時に .B CONFIG_BLK_DEV_RAM -¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤¿¤È¤­¤Î¤ßÍ­¸ú¡£) -°ìÈÌŪ¤Ë¤Ï¡¢Linux ¤Ç RAM ¥Ç¥£¥¹¥¯¤ò»ÈÍѤ¹¤ë¤Î¤Ï¤¢¤Þ¤êÎɤ¤¹Í¤¨¤Ç¤Ï¤Ê¤¤¡£ -¥·¥¹¥Æ¥à¤ËǤ¤»¤Æ¤ª¤±¤Ð¤â¤Ã¤È¸úΨŪ¤Ë¥á¥â¥ê¤ò»ÈÍѤ¹¤ë¡£ -¤·¤«¤·¥Ö¡¼¥È»þ (¤Þ¤¿¤Ï¥Ö¡¼¥È¥Õ¥í¥Ã¥Ô¡¼¤ÎºîÀ®Ãæ) ¤Ë¤Ï¡¢ -¥Õ¥í¥Ã¥Ô¡¼¤ÎÆâÍƤò RAM ¥Ç¥£¥¹¥¯¤Ë¥í¡¼¥É¤¹¤ë¤ÈÊØÍø¤«¤â¤·¤ì¤Ê¤¤¡£ -¥á¥¤¥ó¥Ç¥£¥¹¥¯¤¬¥¢¥¯¥»¥¹²Äǽ¤Ë¤Ê¤ëÁ°¤Ë¡¢ -(¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ä¥Ï¡¼¥É¥¦¥§¥¢¤Ë´Ø¤¹¤ë) -¥â¥¸¥å¡¼¥ë¤ò¤¤¤¯¤Ä¤«¥í¡¼¥É¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¥·¥¹¥Æ¥à¤â¤¢¤ë¤À¤í¤¦¡£ +オプションが指定されたときのみ有効。) +一般的には、Linux で RAM ディスクを使用するのはあまり良い考えではない。 +システムに任せておけばもっと効率的にメモリを使用する。 +しかしブート時 (またはブートフロッピーの作成中) には、 +フロッピーの内容を RAM ディスクにロードすると便利かもしれない。 +メインディスクがアクセス可能になる前に、 +(ファイルシステムやハードウェアに関する) +モジュールをいくつかロードしなければならないシステムもあるだろう。 -Linux ¤Î¥Ð¡¼¥¸¥ç¥ó 1.3.48 ¤Ë¤ª¤¤¤Æ¡¢ -RAM ¥Ç¥£¥¹¥¯¤Î¼è¤ê°·¤¤¤¬º¬Ä줫¤éÊѲ½¤·¤¿¡£ -¤½¤ì°ÊÁ°¤Þ¤Ç¤Ï¡¢¥á¥â¥ê¤ÏÀÅŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¡¢ -\&'ramdisk=N' ¥Ñ¥é¥á¡¼¥¿¤Ç¤½¤Î¥µ¥¤¥º¤ò»ØÄꤷ¤Æ¤¤¤¿¡£ -(¤³¤ÎÃͤϥ«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤ä +Linux のバージョン 1.3.48 において、 +RAM ディスクの取り扱いが根底から変化した。 +それ以前までは、メモリは静的に割り当てられ、 +\&'ramdisk=N' パラメータでそのサイズを指定していた。 +(この値はカーネルのコンパイル時や .BR rdev (8) -¤Ë¤è¤Ã¤Æ¤âÊѹ¹¤Ç¤­¤¿¡£) -¸½ºß¤Ï RAM ¥Ç¥£¥¹¥¯¤Ï¥Ð¥Ã¥Õ¥¡¥­¥ã¥Ã¥·¥å¤ò»ÈÍѤ·¤Æ¤ª¤ê¡¢ -ưŪ¤ËÀ®Ä¹¤¹¤ë¡£ -¤µ¤é¤Ë¿¤¯¤Î¾ðÊó (¤¿¤È¤¨¤Ð +によっても変更できた。) +現在は RAM ディスクはバッファキャッシュを使用しており、 +動的に成長する。 +さらに多くの情報 (たとえば .BR rdev (8) -¤¬¿·¤·¤¤ RAM ¥Ç¥£¥¹¥¯¤ÎÀßÄê¤È¤É¤Î¤è¤¦¤Ë´Ø·¸¤¹¤ë¤«) ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +が新しい RAM ディスクの設定とどのように関係するか) については、 .I /usr/src/linux/Documentation/ramdisk.txt -¤ò»²¾È¡£ +を参照。 -4 ¤Ä¤Î¥Ñ¥é¥á¡¼¥¿¤¬¤¢¤ë¡£ÏÀÍýÃͤò¤È¤ë¤â¤Î¤¬ 2 ¤Ä¡¢À°¿ôÃͤò¤È¤ë¤â¤Î¤¬ 2 ¤Ä¡£ +4 つのパラメータがある。論理値をとるものが 2 つ、整数値をとるものが 2 つ。 .TP .B "'load_ramdisk=N'" -N=1 ¤Ê¤é RAM ¥Ç¥£¥¹¥¯¤ò¥í¡¼¥É¤¹¤ë¡£N=0 ¤Ê¤é¥í¡¼¥É¤·¤Ê¤¤ (¥Ç¥Õ¥©¥ë¥È)¡£ +N=1 なら RAM ディスクをロードする。N=0 ならロードしない (デフォルト)。 .TP .B "'prompt_ramdisk=N'" -N=1 ¤Ê¤é¥Õ¥í¥Ã¥Ô¡¼ÁÞÆþ¤òÂ¥¤¹¥×¥í¥ó¥×¥È¤ò½Ð¤¹ (¥Ç¥Õ¥©¥ë¥È)¡£ -N=0 ¤Ê¤é¥×¥í¥ó¥×¥È¤ò½Ð¤µ¤Ê¤¤¡£ -(½¾¤Ã¤Æ¡¢¤³¤Î¥Ñ¥é¥á¡¼¥¿¤ò»ØÄꤹ¤ëɬÍפϤޤºÌµ¤¤¤Ç¤¢¤í¤¦¡£) +N=1 ならフロッピー挿入を促すプロンプトを出す (デフォルト)。 +N=0 ならプロンプトを出さない。 +(従って、このパラメータを指定する必要はまず無いであろう。) .TP -.BR 'ramdisk_size=N' " ¤â¤·¤¯¤Ï (¸Å¤¤·Á¼°¤Î) " 'ramdisk=N' -¥é¥à¥Ç¥£¥¹¥¯¤ÎºÇÂ祵¥¤¥º¤ò N kB (¥­¥í¥Ð¥¤¥È) ¤Ë¥»¥Ã¥È¤¹¤ë¡£ -¾Êά»þ¤Ï 4096 (4 MB)¡£ +.BR 'ramdisk_size=N' " もしくは (古い形式の) " 'ramdisk=N' +ラムディスクの最大サイズを N kB (キロバイト) にセットする。 +省略時は 4096 (4 MB)。 .TP .B "'ramdisk_start=N'" -³«»Ï¥Ö¥í¥Ã¥¯ÈÖ¹æ -(¥Õ¥í¥Ã¥Ô¡¼ÀèƬ¤«¤é¤Î¥ª¥Õ¥»¥Ã¥È¤Ç»ØÄꤷ¤¿ RAM ¥Ç¥£¥¹¥¯¤Î³«»ÏÅÀ) -¤ò N ¤Ë¥»¥Ã¥È¤¹¤ë¡£ -¤³¤ì¤Ï¥«¡¼¥Í¥ë¥¤¥á¡¼¥¸¤Î¤¢¤È¤Ë RAM ¥Ç¥£¥¹¥¯¥¤¥á¡¼¥¸¤òÃÖ¤¯¾ì¹ç¤ËɬÍפȤʤ롣 +開始ブロック番号 +(フロッピー先頭からのオフセットで指定した RAM ディスクの開始点) +を N にセットする。 +これはカーネルイメージのあとに RAM ディスクイメージを置く場合に必要となる。 .TP .B "'noinitrd'" -(¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +(カーネルのコンパイル時に .B CONFIG_BLK_DEV_RAM -¤È +と .B CONFIG_BLK_DEV_INITRD -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤È¤­¤Î¤ßÍ­¸ú¡£) -ºÇ¶á¤Ï initrd ¤ò»ÈÍѤ¹¤ë¤è¤¦¤Ë¥«¡¼¥Í¥ë¤ò¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤ë¤È¡¢ -¥Ö¡¼¥È¥×¥í¥»¥¹¤Ï¥«¡¼¥Í¥ë¤È RAM ¥Ç¥£¥¹¥¯¤ò¥í¡¼¥É¤·¡¢ -¥«¡¼¥Í¥ë¤Ï initrd ¤ò¡ÖÉáÄÌ¤Î¡× RAM ¥Ç¥£¥¹¥¯¤ËÊÑ´¹¤·¡¢ -¤³¤Î RAM ¥Ç¥£¥¹¥¯¤¬¥ë¡¼¥È¥Ç¥Ð¥¤¥¹¤È¤·¤Æ¡ÖÆɤ߽ñ¤­²Äǽ¡×¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¤ë¡£ -¼¡¤Ë /linuxrc ¤¬¼Â¹Ô¤µ¤ì¤ë¡£ -¤½¤Î¸å¡Ö¿¿¤Î¡×¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¥Þ¥¦¥ó¥È¤µ¤ì¡¢ -initrd ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï /initrd ¤Ë°Ü¤µ¤ì¤ë¡£ -ºÇ¸å¤ËÄ̾ï¤Î¥Ö¡¼¥È¥·¡¼¥±¥ó¥¹ (¶ñÂÎŪ¤Ë¤Ï /sbin/init ¤Î¸Æ¤Ó½Ð¤·) ¤¬¼Â¹Ô¤µ¤ì¤ë¡£ +が指定されているときのみ有効。) +最近は initrd を使用するようにカーネルをコンパイルできる。 +このオプションが指定されると、 +ブートプロセスはカーネルと RAM ディスクをロードし、 +カーネルは initrd を「普通の」 RAM ディスクに変換し、 +この RAM ディスクがルートデバイスとして「読み書き可能」でマウントされる。 +次に /linuxrc が実行される。 +その後「真の」ルートファイルシステムがマウントされ、 +initrd ファイルシステムは /initrd に移される。 +最後に通常のブートシーケンス (具体的には /sbin/init の呼び出し) が実行される。 -initrd ¤Ë´Ø¤¹¤ë¾ÜºÙ¤Ê²òÀâ¤Ï +initrd に関する詳細な解説は .I /usr/src/linux/Documentation/initrd.txt -¤ò»²¾È¡£ +を参照。 -\&'noinitrd' ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤È¡¢ -¥«¡¼¥Í¥ë¤Ï (initrd Æ°ºî¤ò¹Ô¤¦¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ç¤â) -¾åµ­¤ÎÆ°ºî¤ò¹Ô¤Ê¤ï¤º¡¢Âå¤ï¤ê¤Ë initrd ¤Î¥Ç¡¼¥¿¤ò +\&'noinitrd' オプションを用いると、 +カーネルは (initrd 動作を行うようにコンパイルされている場合でも) +上記の動作を行なわず、代わりに initrd のデータを .I /dev/initrd -¤Ë»Ä¤¹¡£ -(¤³¤Î¥Ç¥Ð¥¤¥¹¤Ï°ìÅÙ¤·¤«»È¤¨¤Ê¤¤¡£ -¥Ç¡¼¥¿¤Ï¡¢¤½¤Î¥Ç¡¼¥¿¤ò»È¤Ã¤¿ºÇ¸å¤Î¥×¥í¥»¥¹¤¬ +に残す。 +(このデバイスは一度しか使えない。 +データは、そのデータを使った最後のプロセスが .I /dev/initrd -¤ò¥¯¥í¡¼¥º¤¹¤ë¤È¤¹¤°¤Ë²òÊü¤µ¤ì¤ë¡£) -.SS "SCSI ¥Ç¥Ð¥¤¥¹ÍѤε¯Æ°»þ°ú¿ô" -¤³¤ÎÀá¤Ë¤ª¤±¤ëÍѸ졧 +をクローズするとすぐに解放される。) +.SS "SCSI デバイス用の起動時引数" +この節における用語: .I iobase --- SCSI ¥Û¥¹¥È¥¢¥À¥×¥¿¤¬ÀêÍ­¤¹¤ë I/O ¥Ý¡¼¥È¤ÎÀèƬ¥¢¥É¥ì¥¹¡£ -16 ¿Êɽµ­¤Ç»ØÄꤷ¡¢Ä̾ï 0x200 ¤«¤é 0x3ff ¤ÎÈϰϤ˰ÌÃÖ¤¹¤ë¡£ +-- SCSI ホストアダプタが占有する I/O ポートの先頭アドレス。 +16 進表記で指定し、通常 0x200 から 0x3ff の範囲に位置する。 .I irq --- ¥«¡¼¥É¤¬ÍøÍѤ¹¤ë¥Ï¡¼¥É¥¦¥§¥¢³ä¤ê¹þ¤ß¡£Í­¸ú¤ÊÃͤϥ«¡¼¥É¤Ë -¤è¤Ã¤Æ°Û¤Ê¤ë¤¬¡¢Ä̾ï¤Ï 5, 7, 9, 10, 11, 12, 15 ¤Ç¤¢¤ë¡£ -¤³¤ì°Ê³°¤ÎÃͤÏÄ̾IDE ¥Ï¡¼¥É¥Ç¥£¥¹¥¯¡¢¥Õ¥í¥Ã¥Ô¡¼¡¢ -¥·¥ê¥¢¥ë¥Ý¡¼¥È¤È¤¤¤Ã¤¿°ìÈÌŪ¤Ê¼þÊÕµ¡´ï¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤ë¡£ +-- カードが利用するハードウェア割り込み。有効な値はカードに +よって異なるが、通常は 5, 7, 9, 10, 11, 12, 15 である。 +これ以外の値は通常、IDE ハードディスク、フロッピー、 +シリアルポートといった一般的な周辺機器によって使用される。 .I scsi-id --- SCSI ¥Ð¥¹¾å¤Î¥Û¥¹¥È¥¢¥À¥×¥¿¤¬¼«Ê¬¼«¿È¤ò¼±Ê̤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë ID Èֹ档 -¤³¤ÎÃͤòÊѹ¹¤Ç¤­¤ë¥Û¥¹¥È¥¢¥À¥×¥¿¤â¤´¤¯´õ¤Ë¸ºß¤¹¤ë¤¬¡¢ -¤Û¤È¤ó¤É¤Ï¥¢¥À¥×¥¿ÆâÉô¤Ç¸ÇÄꤵ¤ì¤Æ¤¤¤ë¡£ -¤è¤¯»È¤ï¤ì¤ë¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 7 ¤Ç¤¢¤ë¤¬¡¢Seagate ¤â¤·¤¯¤Ï -Future Domain À½¤Î TMC-950 ¥Ü¡¼¥É¤Ç¤Ï 6 ¤¬»È¤ï¤ì¤ë¡£ +-- SCSI バス上のホストアダプタが自分自身を識別するために使用する ID 番号。 +この値を変更できるホストアダプタもごく希に存在するが、 +ほとんどはアダプタ内部で固定されている。 +よく使われるデフォルト値は 7 であるが、Seagate もしくは +Future Domain 製の TMC-950 ボードでは 6 が使われる。 .I parity --- SCSI ¥Û¥¹¥È¥¢¥À¥×¥¿¤¬¼è¤êÉÕ¤±¤é¤ì¤¿¥Ç¥Ð¥¤¥¹¤È¤ÎÄÌ¿®¤ËºÝ¤·¤Æ -¥Ñ¥ê¥Æ¥£ÃͤòɬÍפȤ¹¤ë¤«¤É¤¦¤«¡£ -1 ¤ò»ØÄꤹ¤ë¤È¥Ñ¥ê¥Æ¥£¥Á¥§¥Ã¥¯¤¬Í­¸ú¤Ë¤Ê¤ê¡¢ -0 ¤Ç¥Ñ¥ê¥Æ¥£¥Á¥§¥Ã¥¯¤¬Ìµ¸ú¤Ë¤Ê¤ë¡£ -¤·¤«¤·¡¢¤¹¤Ù¤Æ¤Î¥Ç¥Ð¥¤¥¹¤¬¤³¤Îµ¯Æ°»þ°ú¿ô¤Ë¤è¤ë¥Ñ¥ê¥Æ¥£¤ÎÁªÂò¤ò -¥µ¥Ý¡¼¥È¤¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ +-- SCSI ホストアダプタが取り付けられたデバイスとの通信に際して +パリティ値を必要とするかどうか。 +1 を指定するとパリティチェックが有効になり、 +0 でパリティチェックが無効になる。 +しかし、すべてのデバイスがこの起動時引数によるパリティの選択を +サポートするわけではない。 .TP .B "'max_scsi_luns=...'" -SCSI ¥Ç¥Ð¥¤¥¹¤ÏÊ£¿ô¤Î¡Ö¥µ¥Ö¥Ç¥Ð¥¤¥¹¡×¤ò¼«Ê¬¼«¿È¤ÎÆâÉô¤Ë»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£ -ºÇ¤â¤è¤¯¤¢¤ëÎã¤È¤·¤Æ¡¢°ì»þ¤Ë 1 Ëç°Ê¾å¤Î¥Ç¥£¥¹¥¯¤ò°·¤¦¤³¤È¤¬¤Ç¤­¤ë -(¥Á¥§¥ó¥¸¥ã¡¼µ¡Ç½ÉÕ¤Î) SCSI CD-ROM ¤¬¤¢¤ë¡£ -¤½¤ì¤¾¤ì¤Î CD ¤Ï¤½¤Î¥Ç¥Ð¥¤¥¹¤Î -¡ÖÏÀÍý¥æ¥Ë¥Ã¥ÈÈÖ¹æ (LUN)¡×¤Ë¤è¤Ã¤ÆÆÃÄꤵ¤ì¤ë¡£ -¤·¤«¤·¤Û¤È¤ó¤É¤Î¥Ç¥Ð¥¤¥¹ (Î㤨¤Ð¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤ä¥Æ¡¼¥×¥É¥é¥¤¥Ö) ¤Ï¡¢ -LUN ÈÖ¹æ 0 ¤¬³ä¤êÅö¤Æ¤é¤ì¤¿¡¢¤¿¤À¤Ò¤È¤Ä¤Î¥Ç¥Ð¥¤¥¹¤«¤é¤Ê¤ë¡£ +SCSI デバイスは複数の「サブデバイス」を自分自身の内部に持つことができる。 +最もよくある例として、一時に 1 枚以上のディスクを扱うことができる +(チェンジャー機能付の) SCSI CD-ROM がある。 +それぞれの CD はそのデバイスの +「論理ユニット番号 (LUN)」によって特定される。 +しかしほとんどのデバイス (例えばハードディスクやテープドライブ) は、 +LUN 番号 0 が割り当てられた、ただひとつのデバイスからなる。 -À߷פ¬ÉÔ½½Ê¬¤Ê SCSI ¥Ç¥Ð¥¤¥¹¤Ç¤Ï 0 °Ê³°¤Î LUN ÈÖ¹æ¤Ø¤Î¼«Æ°¸¡½Ð¤ò -°·¤¨¤Ê¤¤¤³¤È¤¬¤¢¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +設計が不十分な SCSI デバイスでは 0 以外の LUN 番号への自動検出を +扱えないことがある。 +したがって、コンパイル時に .B CONFIG_SCSI_MULTI_LUN -¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¡¢ -ºÇ¶á¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï LUN ÈÖ¹æ 0 ¤Î¤ß¤ò¸¡½Ð¤¹¤ë¡£ +オプションが指定されていないと、 +最近のカーネルではデフォルトでは LUN 番号 0 のみを検出する。 -µ¯Æ°»þ¤ËÄ´¤Ù¤ë LUN ÈÖ¹æ¤ò»ØÄꤹ¤ë¾ì¹ç¡¢µ¯Æ°»þ°ú¿ô¤È¤·¤Æ -\&'max_scsi_luns=n' ¤ò»ØÄꤹ¤ë¡£n ¤Ï 1 ¤«¤é 8 ¤Î´Ö¤Ç»ØÄꤹ¤ë¡£ -n=1 °Ê¾å¤ÎÃͤò»ÈÍѤ·¤Ê¤¤¤è¤¦¤Ë¤¹¤ì¤Ð¡¢ -¤³¤Î¤è¤¦¤Ê¤¤¤«¤ì¤¿µ¡³£¤Ë¤Ò¤É¤¤Ìܤˤ¢¤ï¤µ¤ì¤º¤Ë¤¹¤à¤À¤í¤¦¡£ +起動時に調べる LUN 番号を指定する場合、起動時引数として +\&'max_scsi_luns=n' を指定する。n は 1 から 8 の間で指定する。 +n=1 以上の値を使用しないようにすれば、 +このようないかれた機械にひどい目にあわされずにすむだろう。 .TP -.B SCSI ¥Æ¡¼¥×¥É¥é¥¤¥Ö¤ÎÀßÄê -SCSI ¥Æ¡¼¥×¥É¥é¥¤¥Ð¤Îµ¯Æ°»þÀßÄê¤Î°ìÉô¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ¹Ô¤Ê¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +.B SCSI テープドライブの設定 +SCSI テープドライバの起動時設定の一部は以下のようにして行なうことができる。 .IP .BI st= buf_size[,write_threshold[,max_bufs]] .sp -ºÇ½é¤Î 2 ¤Ä¤Î¿ô»ú¤Ï kB ñ°Ì¤Ç»ØÄꤹ¤ë¡£ +最初の 2 つの数字は kB 単位で指定する。 .I buf_size -¤Î¥Ç¥Õ¥©¥ë¥È¤Ï 32kB ¤Ç¤¢¤ë¡£¾å¸Â¤Ï 16384kB ¤Þ¤Ç»ØÄê¤Ç¤­¤ë¡£ +のデフォルトは 32kB である。上限は 16384kB まで指定できる。 .I write_threshold -¤Ï¥Ç¡¼¥¿½ñ¤­½Ð¤·¤ÎïçÃͤǡ¢ -¥Ð¥Ã¥Õ¥¡¤Î¥Ç¡¼¥¿¤Î¥µ¥¤¥º¤¬¤³¤ÎÃͤò±Û¤¨¤ë¤È¥Ç¡¼¥¿¤Ï¥Æ¡¼¥×¤Ë½ñ¤­½Ð¤µ¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 30kB ¤Ç¤¢¤ë¡£ -¥Ð¥Ã¥Õ¥¡¿ô¤ÎºÇÂçÃÍ +はデータ書き出しの閾値で、 +バッファのデータのサイズがこの値を越えるとデータはテープに書き出される。 +デフォルト値は 30kB である。 +バッファ数の最大値 .RI ( max_bufs ) -¤Ï¸¡½Ð¤µ¤ì¤¿¥É¥é¥¤¥Ö¤Î¿ô¤Ë¤è¤Ã¤ÆÊѲ½¤¹¤ë¤¬¡¢¥Ç¥Õ¥©¥ë¥È¤Ï 2 ¤Ç¤¢¤ë¡£ -»ÈÍÑÎã¤ò°Ê²¼¤Ë¼¨¤¹¡£ +は検出されたドライブの数によって変化するが、デフォルトは 2 である。 +使用例を以下に示す。 .IP st=32,30,2 .IP -¾ÜºÙ¤Ï¥«¡¼¥Í¥ë¥½¡¼¥¹Æâ¤Î +詳細はカーネルソース内の .I Documentation/scsi/st.txt -(¸Å¤¤¥«¡¼¥Í¥ë¤Î¾ì¹ç¤Ï +(古いカーネルの場合は .IR drivers/scsi/README.st ) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ +に書かれている。 .TP -.B Adaptec aha151x, aha152x, aic6260, aic6360, SB16-SCSI ¤ÎÀßÄê -aha ¤Ë³¤¯ÈÖ¹æ¤Ï¥«¡¼¥É¤òɽ¤·¡¢ -aic ¤Ë³¤¯ÈÖ¹æ¤Ï¥«¡¼¥É¤ËÅëºÜ¤µ¤ì¤Æ¤¤¤ë¼ÂºÝ¤Î¥Á¥Ã¥×¤òɽ¤¹ -(Soundblaster-16 SCSI ¤â¸å¼Ô¤Ë´Þ¤Þ¤ì¤ë)¡£ +.B Adaptec aha151x, aha152x, aic6260, aic6360, SB16-SCSI の設定 +aha に続く番号はカードを表し、 +aic に続く番号はカードに搭載されている実際のチップを表す +(Soundblaster-16 SCSI も後者に含まれる)。 -SCSI ¥Û¥¹¥È¤Î¸¡½Ð¥³¡¼¥É¤Ï¡¢ -¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë BIOS ¤òõ¤¹¡£ -¸«¤Ä¤«¤é¤Ê¤¤¤È¡¢¥«¡¼¥É¤Ï¸¡½Ð¤Ç¤­¤Ê¤¤¡£ -¤³¤Î¾ì¹ç¤Ï°Ê²¼¤Î¤è¤¦¤Ëµ¯Æ°»þ°ú¿ô¤ò»ØÄꤹ¤ë¤³¤È¤Ë¤Ê¤ë¡£ +SCSI ホストの検出コードは、 +インストールされている BIOS を探す。 +見つからないと、カードは検出できない。 +この場合は以下のように起動時引数を指定することになる。 .IP .BI aha152x= iobase[,irq[,scsi-id[,reconnect[,parity]]]] .IP -¤â¤·¥É¥é¥¤¥Ð¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¥Ç¥Ð¥Ã¥°¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¤¤¤¿¾ì¹ç¤Ï¡¢ -6 ÈÖÌܤÎÃͤǥǥХå°¥ì¥Ù¥ë¤ò»ØÄê¤Ç¤­¤ë¡£ +もしドライバのコンパイル時にデバッグオプションを指定していた場合は、 +6 番目の値でデバッグレベルを指定できる。 -¤¹¤Ù¤Æ¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¡¢¤³¤Î¥»¥¯¥·¥ç¥ó¤ÎºÇ½é¤ÇÀâÌÀ¤·¤¿Ä̤ê¤Ç¤¢¤ë¡£ +すべてのパラメータは、このセクションの最初で説明した通りである。 .I reconnect -¤Ë 0 °Ê³°¤ÎÃͤò»ØÄꤹ¤ë¤È¡¢¥Ç¥Ð¥¤¥¹¤òÀÚÃǤ·¤¿¤êÀܳ¤·¤¿¤ê¤Ç¤­¤ë¡£ -°Ê²¼¤ËÎã¤ò¼¨¤¹¡£ +に 0 以外の値を指定すると、デバイスを切断したり接続したりできる。 +以下に例を示す。 .IP aha152x=0x340,11,7,1 .IP -¥Ñ¥é¥á¡¼¥¿¤Ïɬ¤º¾åµ­¤Î½çÈ֤ɤª¤ê¤Ë»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Î㤨¤Ð¡¢¥Ñ¥ê¥Æ¥£ (parity) ¤òÀßÄꤷ¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ -iobase, irq, scsi-id, reconnect ¤âƱ»þ¤Ë»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¡£ +パラメータは必ず上記の順番どおりに指定されなければならない。 +例えば、パリティ (parity) を設定したい場合には、 +iobase, irq, scsi-id, reconnect も同時に指定する必要がある。 .TP -.B Adaptec aha154x ¤ÎÀßÄê -aha1542 ¥·¥ê¡¼¥º¤Î¥«¡¼¥É¤Ï -i82077 ¥Õ¥í¥Ã¥Ô¡¼¥Ç¥£¥¹¥¯¥³¥ó¥È¥í¡¼¥é¤ò¥Ü¡¼¥É¤ËÅëºÜ¤·¤Æ¤¤¤ë¡£ -°ìÊý aha1540 ¥·¥ê¡¼¥º¤Î¥«¡¼¥É¤ÏÅëºÜ¤·¤Æ¤¤¤Ê¤¤¡£ -¤³¤ì¤é¤Ï¶¦¤Ë¥Ð¥¹¥Þ¥¹¥¿¥«¡¼¥É¤Ç¤¢¤ê¡¢ -¾¤Î¥Ç¥Ð¥¤¥¹¤È¥Ð¥¹¤ò¶¦Í­¤¹¤ëºÝ¤Ë¡¢ -¤É¤Î¤¯¤é¤¤¡Ö¥Õ¥§¥¢¤Ë¡×¿¶¤ëÉñ¤¦¤«¤ò»ØÄꤹ¤ë¥Ñ¥é¥á¡¼¥¿¤¬¤¢¤ë¡£ -µ¯Æ°»þ°ú¿ô¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ»ØÄꤹ¤ë¡£ +.B Adaptec aha154x の設定 +aha1542 シリーズのカードは +i82077 フロッピーディスクコントローラをボードに搭載している。 +一方 aha1540 シリーズのカードは搭載していない。 +これらは共にバスマスタカードであり、 +他のデバイスとバスを共有する際に、 +どのくらい「フェアに」振る舞うかを指定するパラメータがある。 +起動時引数は以下のようにして指定する。 .IP .BI aha1542= iobase[,buson,busoff[,dmaspeed]] .IP -Í­¸ú¤Ê iobase ¤ÎÃͤϼ¡¤ÎÄ̤ꡣ -0x130, 0x134, 0x230, 0x234, 0x330, 0x334¡£ -¥¯¥í¡¼¥ó¥«¡¼¥É¤ÎÃæ¤Ë¤Ï¾¤ÎÃͤò»ØÄê¤Ç¤­¤ë¤â¤Î¤â¤¢¤ë¡£ +有効な iobase の値は次の通り。 +0x130, 0x134, 0x230, 0x234, 0x330, 0x334。 +クローンカードの中には他の値を指定できるものもある。 .IR buson ", " busoff -Ãͤϥ«¡¼¥É¤¬ISA ¥Ð¥¹¤òÀêÍ­¤¹¤ë»þ´Ö¤ò¥Þ¥¤¥¯¥íÉÃñ°Ì¤Ç»ØÄꤹ¤ë¡£ -¾Êά»þ¤Ï¤½¤ì¤¾¤ì 11us on ¤È 4us off ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢ -¾¤Î¥«¡¼¥É (Î㤨¤Ð ISA LANCE ¥¤¡¼¥µ¥Í¥Ã¥È¥«¡¼¥É) ¤â -ISA ¥Ð¥¹¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ +値はカードがISA バスを占有する時間をマイクロ秒単位で指定する。 +省略時はそれぞれ 11us on と 4us off になっているので、 +他のカード (例えば ISA LANCE イーサネットカード) も +ISA バスにアクセスできる。 .I dmaspeed -ÃÍ¤Ï DMA (Direct Memory Access) žÁ÷®ÅÙ¤ò MB/s ñ°Ì¤ÇÀßÄꤹ¤ë¡£ -¾Êά»þ¤Ï 5MB/s ¤Ç¤¢¤ë¡£¿·¤·¤¤¥ê¥Ó¥¸¥ç¥ó¤Î¥«¡¼¥É¤Ç¤Ï¡¢ -¤³¤ÎÃͤò»È¤Ã¤¿¥½¥Õ¥È¥¦¥§¥¢¤Ë¤è¤ëÀßÄ꤬¤Ç¤­¤ë¡£ -¸Å¤¤¥«¡¼¥É¤Ï¥¸¥ã¥ó¥ÑÀßÄê¤òɬÍפȤ¹¤ë¡£ -¥Þ¥¶¡¼¥Ü¡¼¥É¤¬Âбþ¤·¤Æ¤¤¤ì¤ÐºÇÂç 10MB/s ¤Þ¤Ç»ØÄê²Äǽ¤Ç¤¢¤ë¡£ -5MB/s °Ê¾å¤ÎÃͤò»È¤¦¾ì¹ç¤ÏÃí°Õ¤·¤Æ¼Â¸³¤·¤Æ¤«¤é¤Ë¤¹¤ë¤³¤È¡£ +値は DMA (Direct Memory Access) 転送速度を MB/s 単位で設定する。 +省略時は 5MB/s である。新しいリビジョンのカードでは、 +この値を使ったソフトウェアによる設定ができる。 +古いカードはジャンパ設定を必要とする。 +マザーボードが対応していれば最大 10MB/s まで指定可能である。 +5MB/s 以上の値を使う場合は注意して実験してからにすること。 .TP -.B Adaptec aha274x, aha284x, aic7xxx ¤ÎÀßÄê -¤³¤ì¤é¤Î¥Ü¡¼¥É¤Ï°Ê²¼¤Î·Á¼°¤Ç»ØÄꤹ¤ë¡£ +.B Adaptec aha274x, aha284x, aic7xxx の設定 +これらのボードは以下の形式で指定する。 .IP .BI aic7xxx= extended,no_reset .IP .I extended -Ãͤ¬ 0 °Ê³°¤Î»þ¤Ï¡¢ÂçÍÆÎ̥ǥ£¥¹¥¯ÍѤγÈÄ¥ÊÑ´¹¤¬Í­¸ú¤Ë¤Ê¤ë¡£ +値が 0 以外の時は、大容量ディスク用の拡張変換が有効になる。 .I no_reset -Ãͤò 0 °Ê³°¤ÎÃͤˤ¹¤ë¤È¡¢¥Û¥¹¥È¥¢¥À¥×¥¿¤Î¸¡½Ð»þ¤Ë¡¢ -¥É¥é¥¤¥Ð¤Ë¤è¤ë SCSI ¥Ð¥¹¤Î½é´ü²½¤ò¹Ô¤ï¤Ê¤¤¡£ -.TP -.B "AdvanSys SCSI ¥Û¥¹¥È¥¢¥À¥×¥¿¤ÎÀßÄê ('advansys=')" -AdvanSys ¥É¥é¥¤¥Ð¤Ï¥«¡¼¥É¤Î¸¡½ÐÀè¤È¤·¤Æ -4 ¤Ä¤Î I/O ¥¢¥É¥ì¥¹¤ò¼õ¤±ÉÕ¤±¤ë¡£ -EISA ¤ä PCI ¥«¡¼¥É¤Ç¤Ï¤³¤ì¤é¤ò»ØÄꤷ¤Æ¤âÁ´¤¯¸ú²Ì¤¬Ìµ¤¤¡£ -ISA µÚ¤Ó VLB ¥«¡¼¥É¤Î¸¡½Ð¤ËÂФ·¤Æ¤Î¤ßÍѤ¤¤é¤ì¤ë¡£ -¤µ¤é¤Ë¡¢¥Ç¥Ð¥Ã¥°¥ª¥×¥·¥ç¥óÉÕ¤­¤Ç¥É¥é¥¤¥Ð¤¬¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¥Ç¥Ð¥Ã¥°¾ðÊó¤Î½ÐÎÏ¥ì¥Ù¥ë¤È¤·¤Æ 0xdeb[0-f] ¥Ñ¥é¥á¡¼¥¿¤òÄɲäǤ­¤ë¡£ -0-f ¤Ë¤è¤ê¥Ç¥Ð¥Ã¥°¥á¥Ã¥»¡¼¥¸¤Î¾ðÊó¤Î¥ì¥Ù¥ë¤ò 16 Ãʳ¬¤Ç»ØÄꤹ¤ë¡£ +値を 0 以外の値にすると、ホストアダプタの検出時に、 +ドライバによる SCSI バスの初期化を行わない。 +.TP +.B "AdvanSys SCSI ホストアダプタの設定 ('advansys=')" +AdvanSys ドライバはカードの検出先として +4 つの I/O アドレスを受け付ける。 +EISA や PCI カードではこれらを指定しても全く効果が無い。 +ISA 及び VLB カードの検出に対してのみ用いられる。 +さらに、デバッグオプション付きでドライバがコンパイルされている場合、 +デバッグ情報の出力レベルとして 0xdeb[0-f] パラメータを追加できる。 +0-f によりデバッグメッセージの情報のレベルを 16 段階で指定する。 .TP .B "AM53C974" .IP .BI AM53C974= host-scsi-id,target-scsi-id,max-rate,max-offset .TP -.B BusLogic SCSI ¥Û¥¹¥È¥¢¥À¥×¥¿¤ÎÀßÄê ('BusLogic=') +.B BusLogic SCSI ホストアダプタの設定 ('BusLogic=') .IP .BI BusLogic= N1,N2,N3,N4,N5,S1,S2,... .IP -Buslogic ¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¥Ñ¥é¥á¡¼¥¿¤Ë´Ø¤¹¤ë¾ÜºÙ¤ÊµÄÏÀ¤Ï +Buslogic のコマンドラインパラメータに関する詳細な議論は .I /usr/src/linux/drivers/scsi/BusLogic.c -(Ãø¼Ô¤¬¤¤¤Þ¸«¤Æ¤¤¤ë¥«¡¼¥Í¥ë¤Ç¤Ï 4350-4497 ¹ÔÌÜ) ¤ò»²¾È¤¹¤ë¤³¤È¡£ -°Ê²¼¤Ï¤³¤ì¤òÈó¾ï¤Ë¤ª¤ª¤¶¤Ã¤Ñ¤ËÍ×Ìó¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +(著者がいま見ているカーネルでは 4350-4497 行目) を参照すること。 +以下はこれを非常におおざっぱに要約したものである。 -¥Ñ¥é¥á¡¼¥¿ N1 ¤«¤é N5 ¤Þ¤Ç¤ÏÀ°¿ô¤Ç¤¢¤ë¡£ -¥Ñ¥é¥á¡¼¥¿ S1 °Ê¹ß¤Ïʸ»úÎó¤Ç¤¢¤ë¡£ -N1 ¤Ï¥Û¥¹¥È¥¢¥À¥×¥¿¤¬Â¸ºß¤¹¤ë I/O ¥¢¥É¥ì¥¹¡£ -N2 ¤Ï¥¿¥°¥­¥å¡¼¥¤¥ó¥°¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥Ç¥Ð¥¤¥¹¤ËÂФ·¤Æ»ÈÍѤ¹¤ë¥­¥å¡¼¤Î¿¼¤µ¡£ -N3 ¤Ï¥Ð¥¹°ÂÄê»þ´Ö (BST) ¤òÉÃñ°Ì¤Ç»ØÄꤹ¤ë¡£ -¤³¤ì¤Ï¥Û¥¹¥È¥¢¥À¥×¥¿¤Î¥Ï¡¼¥É¥ê¥»¥Ã¥È¤Ë¤è¤ê SCSI ¥Ð¥¹¤ò¥ê¥»¥Ã¥È¤·¤Æ¤«¤é -SCSI ¥³¥Þ¥ó¥É¤Îȯ¹Ô¤ò³«»Ï¤¹¤ë¤Þ¤Ç¤ÎÂÔ¤Á»þ´Ö¤Ç¤¢¤ë¡£ -N4 ¤Ï¥í¡¼¥«¥ë¥ª¥×¥·¥ç¥ó (¤Ò¤È¤Ä¤Î¥Û¥¹¥È¥¢¥À¥×¥¿ÍÑ)¡£ -N5 ¤Ï¥°¥í¡¼¥Ð¥ë¥ª¥×¥·¥ç¥ó (¤¹¤Ù¤Æ¤Î¥Û¥¹¥È¥¢¥À¥×¥¿ÍÑ)¡£ +パラメータ N1 から N5 までは整数である。 +パラメータ S1 以降は文字列である。 +N1 はホストアダプタが存在する I/O アドレス。 +N2 はタグキューイングをサポートするデバイスに対して使用するキューの深さ。 +N3 はバス安定時間 (BST) を秒単位で指定する。 +これはホストアダプタのハードリセットにより SCSI バスをリセットしてから +SCSI コマンドの発行を開始するまでの待ち時間である。 +N4 はローカルオプション (ひとつのホストアダプタ用)。 +N5 はグローバルオプション (すべてのホストアダプタ用)。 -ʸ»úÎ󥪥ץ·¥ç¥ó¤Ï°Ê²¼¤ÎÆ°ºî¤òÀ©¸æ¤¹¤ë: -¥¿¥°¥­¥å¡¼¥¤¥ó¥° (TQ:Default, TQ:Enable, TQ:Disable, TQ:)¡¢ -¥¨¥é¡¼Éüµ¢ (ER:Default, ER:HardReset, ER:BusDeviceReset, -ER:None, ER:)¡¢ -¥Û¥¹¥È¥¢¥À¥×¥¿¤Î¸¡½Ð (NoProbe, NoProbeISA, NoSortPCI)¡£ +文字列オプションは以下の動作を制御する: +タグキューイング (TQ:Default, TQ:Enable, TQ:Disable, TQ:)、 +エラー復帰 (ER:Default, ER:HardReset, ER:BusDeviceReset, +ER:None, ER:)、 +ホストアダプタの検出 (NoProbe, NoProbeISA, NoSortPCI)。 .TP -.B EATA/DMA ¤ÎÀßÄê -¸¡½ÐÂоݤˤ¹¤ë I/O ¥Ý¡¼¥È¤Î¥ê¥¹¥È¤ò°Ê²¼¤Î¤è¤¦¤Ë¤·¤ÆÊѹ¹¤Ç¤­¤ë¡£ +.B EATA/DMA の設定 +検出対象にする I/O ポートのリストを以下のようにして変更できる。 .IP .BI eata= iobase,iobase,...\fP. .TP -.B Future Domain TMC-16x0 ¤ÎÀßÄê +.B Future Domain TMC-16x0 の設定 .IP .BI fdomain= iobase,irq[,adapter_id] .TP -.B Great Valley Products (GVP) SCSI ¥³¥ó¥È¥í¡¼¥é¤ÎÀßÄê +.B Great Valley Products (GVP) SCSI コントローラの設定 .IP .BI gvp11= dma_transfer_bitmask .TP -.B Future Domain À½ TMC-8xx, TMC-950 ¤ÎÀßÄê +.B Future Domain 製 TMC-8xx, TMC-950 の設定 .IP .BI tmc8xx= mem_base,irq .IP .I mem_base -¤Ë¤Ï¥«¡¼¥É¤¬»ÈÍѤ¹¤ë¥á¥â¥ê¥Þ¥Ã¥× I/O ¤ÎÎΰè¤ò»ØÄꤹ¤ë¡£Ä̾ï -¤Ï¼¡¤ÎÃͤΤɤ줫¤¬»È¤ï¤ì¤ë: 0xc8000, 0xca000, 0xcc000, -0xce000, 0xdc000, 0xde000¡£ +にはカードが使用するメモリマップ I/O の領域を指定する。通常 +は次の値のどれかが使われる: 0xc8000, 0xca000, 0xcc000, +0xce000, 0xdc000, 0xde000。 .TP -.B IN2000 ¤ÎÀßÄê +.B IN2000 の設定 .IP .BI in2000= S .IP -S ¤Ï¥³¥ó¥Þ¶èÀÚ¤ê¤Îʸ»úÎó¤Ç¡¢³Æ¹àÌÜ¤Ï keyword[:value] ·Á¼°¤Ç»ØÄꤹ¤ë¡£ -»ØÄê¤Ç¤­¤ë¥­¡¼¥ï¡¼¥É¤Ï°Ê²¼¤ÎÄ̤ꡣ -ioport:addr, noreset, nosync:x, period:ns, disconnect:x, debug:x, proc:x¡£ -¤³¤ì¤é¤Î¥Ñ¥é¥á¡¼¥¿¤Îµ¡Ç½¤Ë¤Ä¤¤¤Æ¤Ï +S はコンマ区切りの文字列で、各項目は keyword[:value] 形式で指定する。 +指定できるキーワードは以下の通り。 +ioport:addr, noreset, nosync:x, period:ns, disconnect:x, debug:x, proc:x。 +これらのパラメータの機能については .I /usr/src/linux/drivers/scsi/in2000.c -¤ò»²¾È¡£ +を参照。 .TP -.B NCR5380 ¤ª¤è¤Ó NCR53C400 ¤ÎÀßÄê -¤³¤Îµ¯Æ°»þ°ú¿ô¤Ï°Ê²¼¤Î½ñ¼°¤Ç»ØÄꤹ¤ë¡£ +.B NCR5380 および NCR53C400 の設定 +この起動時引数は以下の書式で指定する。 .IP .BI ncr5380= iobase,irq,dma .IP -¤Þ¤¿¤Ï +または .IP .BI ncr53c400= iobase,irq .IP -¥«¡¼¥É¤¬ IRQ ¤ò»ÈÍѤ·¤Ê¤¤¾ì¹ç¤Ï¡¢ -255 (0xff) ¤ò»ØÄꤹ¤ì¤Ð̵¸ú¤Ë¤Ç¤­¤ë¡£ -IRQ ¤Ë 254 ¤ò»ØÄꤹ¤ë¤È¼«Æ°¸¡½Ð¤¹¤ë¡£ -¾ÜºÙ¤Ï¥«¡¼¥Í¥ë¥½¡¼¥¹Æâ¤Î +カードが IRQ を使用しない場合は、 +255 (0xff) を指定すれば無効にできる。 +IRQ に 254 を指定すると自動検出する。 +詳細はカーネルソース内の .I Documentation/scsi/g_NCR5380.txt -(¸Å¤¤¥«¡¼¥Í¥ë¤Î¾ì¹ç¤Ï +(古いカーネルの場合は .IR drivers/scsi/README.g_NCR5380 ) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ +に書かれている。 .TP -.B NCR53C8xx ¤ÎÀßÄê +.B NCR53C8xx の設定 .IP .BI ncr53c8xx= S .IP -S ¤Ï¥³¥ó¥Þ¶èÀÚ¤ê¤Îʸ»úÎó¤Ç¡¢³Æ¹àÌÜ¤Ï keyword[:value] ·Á¼°¤Ç»ØÄꤹ¤ë¡£ -»ØÄê¤Ç¤­¤ë¥­¡¼¥ï¡¼¥É¤Ï°Ê²¼¤ÎÄ̤ꡣ +S はコンマ区切りの文字列で、各項目は keyword[:value] 形式で指定する。 +指定できるキーワードは以下の通り。 mpar (master_parity), spar (scsi_parity), disc (disconnection), specf (special_features), ultra (ultra_scsi), fsn (force_sync_nego), tags (default_tags), sync (default_sync), -verb (verbose), debug (debug), burst (burst_max)¡£ -¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Îµ¡Ç½¤Ë¤Ä¤¤¤Æ¤Ï +verb (verbose), debug (debug), burst (burst_max)。 +これらのオプションの機能については .I /usr/src/linux/drivers/scsi/README.ncr53c8xx -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .TP -.B NCR53c406a ¤ÎÀßÄê +.B NCR53c406a の設定 .IP .BI ncr53c406a= iobase[,irq[,fastpio]] .IP -³ä¤ê¹þ¤ß̵¤·¤ÇÆ°ºî¤¹¤ë¥â¡¼¥É¤Ë¤Ï irq ¤Ë 0 ¤ò»ØÄꤹ¤ë¡£ -¹â® PIO ¥â¡¼¥É¤Ï fastpio ¤Ë 1 ¤ò»ØÄꤷ¡¢Ä㮥⡼¥É¤Ï 0 ¤ò»ØÄꤹ¤ë¡£ +割り込み無しで動作するモードには irq に 0 を指定する。 +高速 PIO モードは fastpio に 1 を指定し、低速モードは 0 を指定する。 .TP -.B Pro Audio Spectrum ¤ÎÀßÄê -PAS16 ¤Ï NC5380 SCSI ¥Á¥Ã¥×¤ò»ÈÍѤ·¤Æ¤ª¤ê¡¢ -ºÇ¶á¤Î¥â¥Ç¥ë¤Ï¥¸¥ã¥ó¥Ñ¥ì¥¹¤ÎÀßÄê¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -µ¯Æ°»þ°ú¿ô¤Î½ñ¼°¤Ï°Ê²¼¤ÎÄ̤ꡣ +.B Pro Audio Spectrum の設定 +PAS16 は NC5380 SCSI チップを使用しており、 +最近のモデルはジャンパレスの設定をサポートしている。 +起動時引数の書式は以下の通り。 .IP .BI pas16= iobase,irq .IP -Í£°ì¤Î°ã¤¤¤È¤·¤Æ¡¢ -IRQ ¤Ë 255 ¤ò»ØÄꤹ¤ì¤Ð³ä¤ê¹þ¤ß¤ò»ÈÍѤ·¤Ê¤¤¤è¤¦¥É¥é¥¤¥Ð¤Ë»Ø¼¨¤Ç¤­¤ë -(¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤ÏÄã²¼¤¹¤ë)¡£ -Ä̾ï iobase ¤Ï 0x388 ¤Ç¤¢¤ë¡£ +唯一の違いとして、 +IRQ に 255 を指定すれば割り込みを使用しないようドライバに指示できる +(パフォーマンスは低下する)。 +通常 iobase は 0x388 である。 .TP -.B Seagate À½ ST-0x ¤ÎÀßÄê -¥«¡¼¥É¤¬µ¯Æ°»þ¤Ëǧ¼±¤µ¤ì¤Ê¤¤¾ì¹ç¤Ï°Ê²¼¤Î¤è¤¦¤Ê»ØÄ꤬ɬÍפˤʤë¤À¤í¤¦¡£ +.B Seagate 製 ST-0x の設定 +カードが起動時に認識されない場合は以下のような指定が必要になるだろう。 .IP .BI st0x= mem_base,irq .IP .I mem_base -¤Ë¤Ï¥«¡¼¥É¤¬»ÈÍѤ¹¤ë¥á¥â¥ê¥Þ¥Ã¥× I/O ¤ÎÎΰè¤ò»ØÄꤹ¤ë¡£ -Ä̾ï¤Ï¼¡¤Î¤É¤ì¤«: -0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000¡£ +にはカードが使用するメモリマップ I/O の領域を指定する。 +通常は次のどれか: +0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000。 TP -.B Trantor À½ T128 ¤ÎÀßÄê -¤³¤Î¥«¡¼¥É¤â NCR5380 ¥Á¥Ã¥×¤òÍøÍѤ·¤Æ¤ª¤ê¡¢ -°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤ò¼õ¤±ÉÕ¤±¤ë¡£ +.B Trantor 製 T128 の設定 +このカードも NCR5380 チップを利用しており、 +以下のオプションを受け付ける。 .IP .BI t128= mem_base,irq .IP -Í­¸ú¤Ê +有効な .I mem_base -¤ÎÃͤϼ¡¤ÎÄ̤ê¤Ç¤¢¤ë: 0xcc000, 0xc8000, 0xdc000, 0xd8000¡£ +の値は次の通りである: 0xcc000, 0xc8000, 0xdc000, 0xd8000。 .TP -.B UltraStor À½ 14F/34F ¤ÎÀßÄê -¼«Æ°¸¡½Ð¤ò»î¤ß¤ë I/O ¥Ý¡¼¥È¤Î¥ê¥¹¥È¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤·¤ÆÊѹ¹¤Ç¤­¤ë¡£ +.B UltraStor 製 14F/34F の設定 +自動検出を試みる I/O ポートのリストは以下のようにして変更できる。 .IP .BI eata= iobase,iobase,... . .TP -.B WD7000 ¤ÎÀßÄê +.B WD7000 の設定 .IP .BI wd7000= irq,dma,iobase -.SS Commodore Amiga À½ A2091/590 SCSI ¥³¥ó¥È¥í¡¼¥é¤ÎÀßÄê +.SS Commodore Amiga 製 A2091/590 SCSI コントローラの設定 .IP .BI wd33c93= S .IP -S ¤Ï¥³¥ó¥Þ¶èÀÚ¤ê¤Îʸ»úÎó¤Ç¡¢³Æ¹àÌÜ¤Ï keyword[:value] ·Á¼°¤Ç»ØÄꤹ¤ë¡£ -ǧ¼±¤µ¤ì¤ë¥ª¥×¥·¥ç¥ó¤Ï°Ê²¼¤ÎÄ̤ꡣ +S はコンマ区切りの文字列で、各項目は keyword[:value] 形式で指定する。 +認識されるオプションは以下の通り。 nosync:bitmask, nodma:x, period:ns, -disconnect:x, debug:x, clock:x, next¡£ -¾ÜºÙ¤Ï +disconnect:x, debug:x, clock:x, next。 +詳細は .I /usr/src/linux/drivers/scsi/wd33c93.c -¤ò»²¾È¤»¤è¡£ -.SS ¥Ï¡¼¥É¥Ç¥£¥¹¥¯ -.TP -.B "IDE Disk/CD-ROM ¥É¥é¥¤¥Ð¤Î¥Ñ¥é¥á¡¼¥¿" -IDE ¥É¥é¥¤¥Ð¤Ï¡¢ -¥Ç¥£¥¹¥¯¤Î¥¸¥ª¥á¥È¥ê»ØÄ꤫¤é¥Ð¥°¤Î¤¢¤ë¥³¥ó¥È¥í¡¼¥é¥Á¥Ã¥×¤Î¥µ¥Ý¡¼¥È¤Þ¤Ç¡¢ -¿ô¿¤¯¤Î¥Ñ¥é¥á¡¼¥¿¤ò¼õ¤±ÉÕ¤±¤ë¡£ -¥É¥é¥¤¥Ö¤òÆÃÄꤹ¤ë¤Ë¤Ï 'hdX=' ¤ò»È¤¦¡£ -¤³¤³¤Ç X ¤Ë¤Ï 'a' ¤«¤é 'h' ¤Îʸ»ú¤ò»ØÄꤹ¤ë¡£ +を参照せよ。 +.SS ハードディスク +.TP +.B "IDE Disk/CD-ROM ドライバのパラメータ" +IDE ドライバは、 +ディスクのジオメトリ指定からバグのあるコントローラチップのサポートまで、 +数多くのパラメータを受け付ける。 +ドライブを特定するには 'hdX=' を使う。 +ここで X には 'a' から 'h' の文字を指定する。 -¤¢¤ë¥É¥é¥¤¥Ö¤ËÆÃÍ­¤Ê¤â¤Î¤Ç¤Ï¤Ê¤¤¥ª¥×¥·¥ç¥ó¤Ï¡¢hd= ¤òÁ°¤ËÉÕ¤±¤Æ»ØÄꤹ¤ë¡£ -¥É¥é¥¤¥ÖÆÃÍ­¤Ç¤Ê¤¤¥ª¥×¥·¥ç¥ó¤ËÂФ·¤Æ¥É¥é¥¤¥Ö»ØÄê -('hdX=') ¤òÁ°ÃÖ¤·¤Æ¤âÌäÂê¤Ï¤Ê¤¤¡£ -¤½¤Î¥ª¥×¥·¥ç¥ó¤Ï´üÂÔÄ̤ꤽ¤Î¥É¥é¥¤¥Ö¤ËŬÍѤµ¤ì¤ë¡£ -.\"nakano ¤È¤¤¤¦¤Î¤¬ "as expected" ¤À¤È»×¤¦¤ó¤À¤±¤É... +あるドライブに特有なものではないオプションは、hd= を前に付けて指定する。 +ドライブ特有でないオプションに対してドライブ指定 +('hdX=') を前置しても問題はない。 +そのオプションは期待通りそのドライブに適用される。 +.\"nakano というのが "as expected" だと思うんだけど... -\&'hd=' ¤Ï¡¢(a, ..., h) ¤Î¥·¡¼¥±¥ó¥¹¤Ë¤ª¤¤¤Æ¡¢ -¤Þ¤À»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¼¡¤Î¥É¥é¥¤¥Ö¤ò»Ø¤¹¤¿¤á¤Ë¤â»È¤¨¤ë¡£ -¤³¤ì°Ê¹ß¤Ç¤Ï´Êñ¤Î¤¿¤á¤Ë 'hd=' ¤ò»È¤Ã¤ÆÀâÌÀ¤¹¤ë¡£ -¤µ¤é¤Ë¾Ü¤·¤¤¾ðÊó¤òÆÀ¤ë¤Ë¤Ï¡¢¥«¡¼¥Í¥ë¥½¡¼¥¹Æâ¤Î +\&'hd=' は、(a, ..., h) のシーケンスにおいて、 +まだ指定されていない次のドライブを指すためにも使える。 +これ以降では簡単のために 'hd=' を使って説明する。 +さらに詳しい情報を得るには、カーネルソース内の .I Documentation/ide.txt -(¸Å¤¤¥«¡¼¥Í¥ë¤Î¾ì¹ç¤Ï +(古いカーネルの場合は .IR drivers/block/README.ide ) -¤ò»²¾È¤Î¤³¤È¡£ -.TP -.B 'hd=cyls,heads,sects[,wpcom[,irq]]' ¥ª¥×¥·¥ç¥ó -¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥£¥¹¥¯¤ÎʪÍýŪ¤Ê¥¸¥ª¥á¥È¥ê¤ò»ØÄꤹ¤ë¤¿¤á¤Ë»È¤¦¡£ -ºÇ½é¤Î 3 ¤Ä¤ÎÃͰʹߤϾÊά¤Ç¤­¤ë¡£ -¥·¥ê¥ó¥À (cyls)¡¢¥Ø¥Ã¥É (heads)¡¢¥»¥¯¥¿ (sects) ¤Î³ÆÃÍ¤Ï -fdisk ¤ÇÍѤ¤¤é¤ì¤ë¤â¤Î¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -½ñ¤­¹þ¤ßÊäÀµ (wpcom) ÃÍ¤Ï IDE ¥Ç¥£¥¹¥¯¤Ç¤Ï̵»ë¤µ¤ì¤ë¡£ -IRQ Ãͤˤϡ¢¤½¤Î¥É¥é¥¤¥Ö¤¬Àܳ¤µ¤ì¤Æ¤¤¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ÍѤ¤¤ë -IRQ ¤ò»ØÄꤹ¤ë -(ËÜÍè¤Î°ÕÌ£¤Ç¤Ï¡Ö¥É¥é¥¤¥Ö¤ËÆÃÍ­¡×¤Î¥Ñ¥é¥á¡¼¥¿¤Ç¤Ï¤Ê¤¤)¡£ -.TP -.B 'hd=serialize' ¥ª¥×¥·¥ç¥ó -¥Ç¥å¥¢¥ë IDE ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¢¤ë CMD-640 ¥Á¥Ã¥×¤Ë¤ÏÀß·×¾å¤ÎÌäÂ꤬¤¢¤Ã¤Æ¡¢ -¥»¥«¥ó¥À¥ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¾å¤Î¥É¥é¥¤¥Ö¤È -¥×¥é¥¤¥Þ¥ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¾å¤Î¥É¥é¥¤¥Ö¤ò -Ʊ»þ¤Ë»ÈÍѤ¹¤ë¤È¥Ç¡¼¥¿¤¬Ç˲õ¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¤È¡¢ -¥É¥é¥¤¥Ð¤ÏξÊý¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ -Ʊ»þ¤Ë»ÈÍѤµ¤ì¤ë¤³¤È¤¬ÀäÂФˤʤ¤¤è¤¦¤Ë¤¹¤ë¡£ -.TP -.B 'hd=dtc2278' ¥ª¥×¥·¥ç¥ó -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢DTC-2278D IDE ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬»È¤ï¤ì¤Æ¤¤¤ë -¤³¤È¤ò¥É¥é¥¤¥Ð¤ËÅÁ¤¨¤ë¡£ -¤¹¤ë¤È¥É¥é¥¤¥Ð¤Ï¡¢DTC ÆÃÍ­¤Îµ¡Ç½ -(2 ÈÖÌܤΥ¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤È¹â®žÁ÷¥â¡¼¥É) -¤ò»ÈÍѲÄǽ¤Ë¤¹¤ë¤è¤¦»î¤ß¤ë¡£ -.TP -.B 'hd=noprobe' ¥ª¥×¥·¥ç¥ó -¤³¤Î¥É¥é¥¤¥Ö¤Î¼«Æ°¸¡½Ð¤ò¤·¤Ê¤¤¡£ -Î㤨¤Ð +を参照のこと。 +.TP +.B 'hd=cyls,heads,sects[,wpcom[,irq]]' オプション +これらのオプションはディスクの物理的なジオメトリを指定するために使う。 +最初の 3 つの値以降は省略できる。 +シリンダ (cyls)、ヘッド (heads)、セクタ (sects) の各値は +fdisk で用いられるものと同じである。 +書き込み補正 (wpcom) 値は IDE ディスクでは無視される。 +IRQ 値には、そのドライブが接続されているインターフェースが用いる +IRQ を指定する +(本来の意味では「ドライブに特有」のパラメータではない)。 +.TP +.B 'hd=serialize' オプション +デュアル IDE インターフェースである CMD-640 チップには設計上の問題があって、 +セカンダリインターフェース上のドライブと +プライマリインターフェース上のドライブを +同時に使用するとデータが破壊されることがある。 +このオプションを使用すると、 +ドライバは両方のインターフェースが +同時に使用されることが絶対にないようにする。 +.TP +.B 'hd=dtc2278' オプション +このオプションは、DTC-2278D IDE インターフェースが使われている +ことをドライバに伝える。 +するとドライバは、DTC 特有の機能 +(2 番目のインターフェースと高速転送モード) +を使用可能にするよう試みる。 +.TP +.B 'hd=noprobe' オプション +このドライブの自動検出をしない。 +例えば .IP hdb=noprobe hdb=1166,7,17 .IP -¤È¤¹¤ë¤È¼«Æ°¸¡½Ð¤¬Ìµ¸ú¤Ë¤Ê¤ë¡£ -¤·¤«¤·¥É¥é¥¤¥Ö¤Î¥¸¥ª¥á¥È¥ê¤ò»ØÄꤷ¤Æ¤¤¤ë¤Î¤Ç¡¢ -¤³¤Î¥É¥é¥¤¥Ö¤ÏÀµ¤·¤¤¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤È¤·¤ÆÅÐÏ¿¤µ¤ì¡¢»ÈÍѲÄǽ¤Ë¤Ê¤ë¡£ +とすると自動検出が無効になる。 +しかしドライブのジオメトリを指定しているので、 +このドライブは正しいブロックデバイスとして登録され、使用可能になる。 .TP -.B 'hd=nowerr' ¥ª¥×¥·¥ç¥ó -¥É¥é¥¤¥Ö¤Ë¤è¤Ã¤Æ¤Ï¡¢½ñ¤­¹þ¤ß¥¨¥é¡¼ +.B 'hd=nowerr' オプション +ドライブによっては、書き込みエラー .RB ( WRERR_STAT ) -¥Ó¥Ã¥È¤¬¥¯¥ê¥¢¤Ç¤­¤Ê¤¯¤Ê¤ë¤³¤È¤¬¤¢¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢ -¤³¤Î¤è¤¦¤Ê²õ¤ì¤¿¥Ç¥Ð¥¤¥¹¤ËÂФ¹¤ë²óÈòµ¡Ç½¤¬Í­¸ú¤Ë¤Ê¤ë¡£ -.TP -.B "'hd=cdrom' ¥ª¥×¥·¥ç¥ó" -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢Ä̾ï¤Î IDE ¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤ÎÂå¤ï¤ê¤Ë¡¢ -ATAPI ¸ß´¹¤Î CDROM ¤¬Â³¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò IDE ¥É¥é¥¤¥Ð¤ËÅÁ¤¨¤ë¡£ -CD-ROM ¤Ï¤¿¤¤¤Æ¤¤¼«Æ°Åª¤Ëǧ¼±¤µ¤ì¤ë¤¬¡¢ -¤¦¤Þ¤¯¹Ô¤«¤Ê¤¤¾ì¹ç¤Ë»î¤·¤Æ¤ß¤ë¤ÈÎɤ¤¡£ -.TP -.B ¥¹¥¿¥ó¥À¡¼¥É ST-506 ¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ð¤Î¥ª¥×¥·¥ç¥ó ('hd=') -¥¹¥¿¥ó¥À¡¼¥É¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ð¤Ï -IDE ¥É¥é¥¤¥Ð¤ÈƱÍͤΥ¸¥ª¥á¥È¥ê»ØÄê¤ò°ú¿ô¤Ë¤È¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤¿¤À¤·¼õ¤±ÉÕ¤±¤ëÃͤϤÁ¤ç¤¦¤É 3 ¤Ä (C/H/S) ¤Ë¸Â¤é¤ì¤ë¡£ -¤½¤ì°Ê¾å¤ÎÃͤ䤽¤ì°Ê²¼¤ÎÃͤò»ØÄꤹ¤ë¤È¡¢¥É¥é¥¤¥Ð¤ÏÌۤäƤ½¤Î»ØÄê¤ò̵»ë¤¹¤ë¡£ -¤Þ¤¿°ú¿ô¤È¤·¤Æ¼õ¤±Æþ¤ì¤é¤ì¤ë¤Î¤Ï 'hd=' ¤Î·Á¼°¤À¤±¤Ç¤¢¤ë¡£ -¤Ä¤Þ¤ê 'hda=' ¤Î¤è¤¦¤Ê»ØÄê¤Ï¤³¤³¤Ç¤ÏÀµ¤·¤¯¤Ê¤¤¡£ -½ñ¼°¤Ï¼¡¤ÎÄ̤ꡣ +ビットがクリアできなくなることがある。 +このオプションを指定すると、 +このような壊れたデバイスに対する回避機能が有効になる。 +.TP +.B "'hd=cdrom' オプション" +このオプションは、通常の IDE ハードディスクの代わりに、 +ATAPI 互換の CDROM が続されていることを IDE ドライバに伝える。 +CD-ROM はたいてい自動的に認識されるが、 +うまく行かない場合に試してみると良い。 +.TP +.B スタンダード ST-506 ディスクドライバのオプション ('hd=') +スタンダードディスクドライバは +IDE ドライバと同様のジオメトリ指定を引数にとることができる。 +ただし受け付ける値はちょうど 3 つ (C/H/S) に限られる。 +それ以上の値やそれ以下の値を指定すると、ドライバは黙ってその指定を無視する。 +また引数として受け入れられるのは 'hd=' の形式だけである。 +つまり 'hda=' のような指定はここでは正しくない。 +書式は次の通り。 .IP hd=cyls,heads,sects .IP -2 Âæ¤Î¥Ç¥£¥¹¥¯¤¬Àܳ¤µ¤ì¤Æ¤¤¾ì¹ç¤Ï¡¢ -2 ÈÖÌܤΥǥ£¥¹¥¯¤ËÂФ·¤Æ¤â¾åµ­¤Î¥¸¥ª¥á¥È¥ê¤¬ÀßÄꤵ¤ì¤ë¡£ +2 台のディスクが接続されてい場合は、 +2 番目のディスクに対しても上記のジオメトリが設定される。 .TP -.B XT ¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ð¤Î¥ª¥×¥·¥ç¥ó ('xd=') -¤³¤ì¤é¤Î¸Å¤¤ 8 bit ¥«¡¼¥É (125kB/s ¤ÎžÁ÷®ÅÙ¤·¤«¤Ê¤¤!) -¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ÉÔ¹¬¤Ê¿Í¤Î¤¿¤á¤Î¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë¡£ -¥«¡¼¥É¤¬Ç§¼±¤µ¤ì¤Ê¤¤¾ì¹ç¤Ï°Ê²¼¤Î½ñ¼°¤Çµ¯Æ°»þ°ú¿ô¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¤À¤í¤¦¡£ +.B XT ディスクドライバのオプション ('xd=') +これらの古い 8 bit カード (125kB/s の転送速度しかない!) +を使わなければならない不幸な人のためのオプションである。 +カードが認識されない場合は以下の書式で起動時引数を指定する必要があるだろう。 .IP xd=type,irq,iobase,dma_chan .IP .\" 1.1.50, 1.3.81, 1.3.99, 2.0.34, 2.1.67, 2.1.78, 2.1.127 -type Ãͤˤϥ«¡¼¥É¤Î¥á¡¼¥«¡¼¤ò»ØÄꤷ¡¢¤³¤ì¤Ï¼«Æ°¸¡ÃΤè¤êÍ¥À褵¤ì¤ë¡£ -»ØÄꤹ¤Ù¤­ type ¤ÎÃͤˤĤ¤¤Æ¤Ï¡¢»È¤Ã¤Æ¤¤¤ë¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë +type 値にはカードのメーカーを指定し、これは自動検知より優先される。 +指定すべき type の値については、使っているカーネルのソースファイル .I drivers/block/xd.c -¤òÄ´¤Ù¤Æ¤Û¤·¤¤¡£type ¤Ï¥ê¥¹¥È +を調べてほしい。type はリスト .I xd_sigs -¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¡¢Îò»Ë¤È¶¦¤ËÄɲ䵤줿¤êºï½ü¤µ¤ì¤¿¤ê¤·¤Æ¤­¤¿¡£ -¥ê¥¹¥È¤ÎÅÓÃæ¤Ç¤ÎÄɲᦺï½ü¤â¹Ô¤ï¤ì¤¿¤Î¤Ç¡¢ -¤½¤Î¾ì¹ç¤Ï¤¹¤Ù¤Æ¤Î type Èֹ椬Êѹ¹¤µ¤ì¤¿¡£ -º£Æü (Linux 2.5.0) ¤Ë¤ª¤±¤ë type ¤Ï¡¢ +のインデックスで、歴史と共に追加されたり削除されたりしてきた。 +リストの途中での追加・削除も行われたので、 +その場合はすべての type 番号が変更された。 +今日 (Linux 2.5.0) における type は、 0=generic; 1=DTC 5150cx; 2,3=DTC 5150x; 4,5=Western Digital; -6,7,8=Seagate; 9=Omti; 10=XEBEC ¤Ç¤¢¤ë¡£ -¤³¤³¤Ç¤Ï¤¤¤¯¤Ä¤«¤Î type ¤ËƱ¤¸»ØÄ꤬Ϳ¤¨¤é¤ì¤Æ¤¤¤ë¤¬¡¢ -¤½¤ì¤é¤ÏÅù²Á¤Ç¤¢¤ë¡£ +6,7,8=Seagate; 9=Omti; 10=XEBEC である。 +ここではいくつかの type に同じ指定が与えられているが、 +それらは等価である。 -0=¥Î¡¼¥Ö¥é¥ó¥É¡¢1=DTC¡¢2,3,4=Western Digital¡¢5,6,7=Seagate¡¢8=OMTI -Ʊ¤¸¥á¡¼¥«¡¼¤ËÊ£¿ô¤ÎÃͤ¬¤¢¤ë¤Î¤Ï¸¡½Ð¤Ë»ÈÍѤµ¤ì¤ë BIOS ʸ»úÎó¤Î°ã¤¤¤Ç¤¢¤ë¡£ -BIOS ʸ»úÎó¤Ï type ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£ +0=ノーブランド、1=DTC、2,3,4=Western Digital、5,6,7=Seagate、8=OMTI +同じメーカーに複数の値があるのは検出に使用される BIOS 文字列の違いである。 +BIOS 文字列は type が指定された場合には使用されない。 -xd_setup() ´Ø¿ô¤Ï°ú¿ô¤ò¥Á¥§¥Ã¥¯¤»¤º¡¢ -4 ¤Ä¤ÎÃͤ¬¤¹¤Ù¤Æ»ØÄꤵ¤ì¤ë¤³¤È¤òÁÛÄꤷ¤Æ¤¤¤ë¡£ -°ú¿ô¤ò¾Êά¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -Îã¤È¤·¤Æ¡¢BIOS ¤¬Ìµ¸ú¤Ë¤µ¤ì¤¿ (¤¢¤ë¤¤¤Ïºï½ü¤µ¤ì¤¿) -WD1002 ¥³¥ó¥È¥í¡¼¥é¤Î¾ì¹ç¤ò¼¨¤¹ -(¥Ñ¥é¥á¡¼¥¿¤Ë¤Ï XT ¥³¥ó¥È¥í¡¼¥é¤Î¡Ö¥Ç¥Õ¥©¥ë¥È¡×¤ÎÃͤò»È¤Ã¤Æ¤¤¤ë)¡£ +xd_setup() 関数は引数をチェックせず、 +4 つの値がすべて指定されることを想定している。 +引数を省略してはならない。 +例として、BIOS が無効にされた (あるいは削除された) +WD1002 コントローラの場合を示す +(パラメータには XT コントローラの「デフォルト」の値を使っている)。 .IP xd=2,5,0x320,3 .TP -.B Syquest À½ EZ* ¥ê¥à¡¼¥Ð¥Ö¥ë¥Ç¥£¥¹¥¯ +.B Syquest 製 EZ* リムーバブルディスク .IP .BI ez= iobase[,irq[,rep[,nybble]]] -.SS "IBM MCA ¥Ð¥¹¾å¤Î¥Ç¥Ð¥¤¥¹" +.SS "IBM MCA バス上のデバイス" .I /usr/src/linux/Documentation/mca.txt -¤â»²¾È¤»¤è¡£ +も参照せよ。 .TP -.B PS/2 ESDI ¥Ï¡¼¥É¥Ç¥£¥¹¥¯ -˾¤à¥¸¥ª¥á¥È¥ê¤òµ¯Æ°»þ¤Ë»ØÄê¤Ç¤­¤ë¡£ +.B PS/2 ESDI ハードディスク +望むジオメトリを起動時に指定できる。 .IP .BI ed= cyls,heads,sectors. .IP -ThinkPad-720 ¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ï°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤òÄɲ乤뤳¤È¡£ +ThinkPad-720 を使用する場合は以下のオプションを追加すること。 .IP .B tp720=1 .TP -.B IBM Microchannel SCSI ¥µ¥Ö¥·¥¹¥Æ¥à¤ÎÀßÄê +.B IBM Microchannel SCSI サブシステムの設定 .IP .BI ibmmcascsi= N .IP -N ¤Ï¥µ¥Ö¥·¥¹¥Æ¥à¤Î \fIpun\fP (SCSI ID) ¤òɽ¤¹¡£ +N はサブシステムの \fIpun\fP (SCSI ID) を表す。 .TP -.B Aztech ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ -¤³¤Î¥¿¥¤¥×¤Î¥«¡¼¥É¤Î¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +.B Aztech インターフェース +このタイプのカードの構文は以下の通り。 .IP aztcd=iobase[,magic_number] .IP -magic_number ¤Ë 0x79 ¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢ -¥É¥é¥¤¥Ð¤Ï¥Õ¥¡¡¼¥à¥¦¥§¥¢¤Î¥Ð¡¼¥¸¥ç¥ó¤¬Ê¬¤«¤é¤Ê¤¤¾ì¹ç¤Ç¤â¡¢ -¤È¤Ë¤«¤¯¼Â¹Ô¤ò»î¤ß¤ë¡£ -¤½¤Î¾¤ÎÃͤϤ¹¤Ù¤Æ̵»ë¤µ¤ì¤ë¡£ +magic_number に 0x79 をセットすると、 +ドライバはファームウェアのバージョンが分からない場合でも、 +とにかく実行を試みる。 +その他の値はすべて無視される。 .TP -.B "¥Ñ¥é¥ì¥ë¥Ý¡¼¥È CD-ROM ¥É¥é¥¤¥Ö" -½ñ¼°: +.B "パラレルポート CD-ROM ドライブ" +書式: .IP pcd.driveN=port,pro,uni,mod,slv,dly .br pcd.nice=nice .IP -¤³¤³¤Ç 'port' ¤Ï¥Ù¡¼¥¹¥¢¥É¥ì¥¹¡¢'pro' -¤Ï¥×¥í¥È¥³¥ëÈֹ桢'uni' ¤Ï¥æ¥Ë¥Ã¥È¥»¥ì¥¯¥¿ -(¥Á¥§¥¤¥ó¥Ç¥Ð¥¤¥¹ÍÑ)¡¢'mod' ¤Ï¥â¡¼¥É -(¤¢¤ë¤¤¤Ï¼«Æ°Åª¤ËºÇŬ¤Î¤â¤Î¤òÁª¤Ð¤»¤ë¤Ë¤Ï \-1)¡¢'slv' -¤Ï¥¹¥ì¡¼¥Ö¤Ë¤·¤¿¤¤¾ì¹ç¤Ë 1¡¢'dly' -¤Ï¥Ý¡¼¥È¥¢¥¯¥»¥¹¤òÃÙ¤¯¤·¤¿¤¤¾ì¹ç¤Ë¾®¤µ¤ÊÀ°¿ô¤òÍ¿¤¨¤ë¡£'nice' ¥Ñ¥é¥á¡¼¥¿¤Ï¡¢ -¥É¥é¥¤¥Ð¤Î¥¢¥¤¥É¥ë CPU »þ´Ö¤Î»È¤¤Êý¤òÀ©¸æ¤¹¤ë¡£ -¤¿¤À¤·Â®Å٤Ϥ¢¤ëÄøÅÙÄã²¼¤¹¤ë¡£ -.TP -.B Sony À½ CDU-31A ¤È CDU-33A ¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ -¤³¤Î CD-ROM ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¡¢ -Pro Audio Spectrum ¥µ¥¦¥ó¥É¥«¡¼¥É¤Î°ìÉô¤ä -¥½¥Ë¡¼¤¬¶¡µë¤¹¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥«¡¼¥É¤Ç»È¤ï¤ì¤Æ¤¤¤ë¡£ -¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +ここで 'port' はベースアドレス、'pro' +はプロトコル番号、'uni' はユニットセレクタ +(チェインデバイス用)、'mod' はモード +(あるいは自動的に最適のものを選ばせるには \-1)、'slv' +はスレーブにしたい場合に 1、'dly' +はポートアクセスを遅くしたい場合に小さな整数を与える。'nice' パラメータは、 +ドライバのアイドル CPU 時間の使い方を制御する。 +ただし速度はある程度低下する。 +.TP +.B Sony 製 CDU-31A と CDU-33A のインターフェース +この CD-ROM インターフェースは、 +Pro Audio Spectrum サウンドカードの一部や +ソニーが供給するインターフェースカードで使われている。 +構文は以下の通り。 .IP cdu31a=iobase,[irq[,is_pas_card]] .IP -IRQ ¤Ë 0 ¤ò»ØÄꤹ¤ë¤È¡¢ -¥Ï¡¼¥É¥¦¥§¥¢³ä¤ê¹þ¤ß¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò¥É¥é¥¤¥Ð¤ËÅÁ¤¨¤ë -(PAS ¥«¡¼¥É¤Ë¤Ï¤½¤Î¤è¤¦¤Ê¤â¤Î¤¬¤¢¤ë)¡£ -»ÈÍѤ¹¤ë¥«¡¼¥É¤¬³ä¤ê¹þ¤ß¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤Ê¤é¡¢ -¥É¥é¥¤¥Ð¤Ë¤è¤ë CPU ¤ÎÉé²Ù¤ò¸º¤é¤¹¤¿¤á¤Ë¤â³ä¤ê¹þ¤ß¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +IRQ に 0 を指定すると、 +ハードウェア割り込みがサポートされていないことをドライバに伝える +(PAS カードにはそのようなものがある)。 +使用するカードが割り込みをサポートしているなら、 +ドライバによる CPU の負荷を減らすためにも割り込みを使用すべきである。 .I is_pas_card -¤Ë¤Ï¡¢Pro Audio Spectrum ¥«¡¼¥É¤ò»ÈÍѤ·¤Æ¤¤¤ë¤È¤­¤Ë¤Ï 'PAS' ¤ò»ØÄꤷ¡¢ -¤½¤¦¤Ç¤Ê¤¤¤È¤­¤Ë¤Ï¤Ê¤Ë¤â»ØÄꤷ¤Ê¤¤¡£ +には、Pro Audio Spectrum カードを使用しているときには 'PAS' を指定し、 +そうでないときにはなにも指定しない。 .TP -.B Sony À½ CDU-535 ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ -¤³¤Î CD-ROM ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +.B Sony 製 CDU-535 インターフェース +この CD-ROM インターフェースの構文は以下の通り。 .IP sonycd535=iobase[,irq] .IP -IRQ ¤ÎÃͤÀ¤±¤ò»ØÄꤷ¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ -iobase Ãͤò 0 ¤È¤¹¤ì¤Ðñ¤Ê¤ë·êËä¤á¤È²ò¼á¤µ¤ì¤ë¡£ +IRQ の値だけを指定したい場合には、 +iobase 値を 0 とすれば単なる穴埋めと解釈される。 .TP -.B GoldStar ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ -¤³¤Î CD-ROM ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +.B GoldStar インターフェース +この CD-ROM インターフェースの構文は以下の通り。 .IP gscd=iobase .TP -.B ISP16 CD-ROM ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ -½ñ¼°: +.B ISP16 CD-ROM インターフェース +書式: .IP isp16=[iobase[,irq[,dma[,type]]]] .IP -(À°¿ôÃÍ 3 ¤Ä¤Èʸ»úÎó 1 ¤Ä¡£) type ¤Ë 'noisp16' ¤ò»ØÄꤹ¤ë¤È¡¢ -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÎÀßÄê¤Ï¹Ô¤Ê¤ï¤ì¤Ê¤¤¡£ -type ¤Ë¤Ï¤³¤Î¾¤Ë¤â 'Sanyo', 'Sony', 'Panasonic', 'Mitsumi' ¤¬»ØÄê¤Ç¤­¤ë¡£ +(整数値 3 つと文字列 1 つ。) type に 'noisp16' を指定すると、 +インターフェースの設定は行なわれない。 +type にはこの他にも 'Sanyo', 'Sony', 'Panasonic', 'Mitsumi' が指定できる。 .TP -.B Mitsumi ɸ½à¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ -¤³¤ÎCD-ROM ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +.B Mitsumi 標準インターフェース +このCD-ROM インターフェースの構文は以下の通り。 .IP mcd=iobase,[irq[,wait_value]] .IP .I wait_value -¤Ï¥É¥é¥¤¥Ö¤ËÌäÂ꤬¤¢¤ë¾ì¹ç¤Ë¡¢ -¥É¥é¥¤¥ÐÆâÉô¤Î¥¿¥¤¥à¥¢¥¦¥È¤Î»ØÄê¤ËÍѤ¤¤ë¡£ -¥³¥ó¥Ñ¥¤¥ë»þ¤Î #define ¤Ë¤è¤Ã¤Æ¼ÂÁõ¤µ¤ì¤ë¤«¤µ¤ì¤Ê¤¤¤«¤¬·è¤Þ¤ë¡£ -Mitsumi FX400 ¤Ï IDE/ATAPI CD-ROM ¥×¥ì¥¤¥ä¡¼¤Ç¤¢¤ê¡¢ -¤³¤Î mcd ¥É¥é¥¤¥Ð¤Ï»ÈÍѤ·¤Ê¤¤¡£ +はドライブに問題がある場合に、 +ドライバ内部のタイムアウトの指定に用いる。 +コンパイル時の #define によって実装されるかされないかが決まる。 +Mitsumi FX400 は IDE/ATAPI CD-ROM プレイヤーであり、 +この mcd ドライバは使用しない。 .TP -.B Mitsumi XA/¥Þ¥ë¥Á¥»¥Ã¥·¥ç¥ó¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ -¤³¤ì¤Ï¾åµ­¤ÈƱ¤¸¥Ï¡¼¥É¥¦¥§¥¢¤À¤¬¡¢³ÈÄ¥µ¡Ç½¤¬¤¢¤ë¡£ -¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +.B Mitsumi XA/マルチセッションインターフェース +これは上記と同じハードウェアだが、拡張機能がある。 +構文は以下の通り。 .IP mcdx=iobase[,irq] .TP -.B Optics ¥¹¥È¥ì¡¼¥¸¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ -¤³¤Î¥«¡¼¥É¤Î¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +.B Optics ストレージインターフェース +このカードの構文は以下の通り。 .IP optcd=iobase .TP -.B Phillips CM206 ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ -¤³¤Î¥«¡¼¥É¤Î¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +.B Phillips CM206 インターフェース +このカードの構文は以下の通り。 .IP cm206=[iobase][,irq] .IP -¥É¥é¥¤¥Ð¤Ï IRQ ÃͤȤ·¤Æ 3 ¤«¤é 11 ¤Þ¤Ç¡¢ -I/O ¥Ý¡¼¥È¥¢¥É¥ì¥¹¤ÎÃͤȤ·¤Æ 0x300 ¤«¤é 0x370 ¤òÁÛÄꤷ¤Æ¤¤¤ë¡£ -¤¤¤º¤ì¤«°ìÊý¡¢¤¢¤ë¤¤¤ÏξÊý¤ò»ØÄê¤Ç¤­¤ë¡£½çÈÖ¤âÌä¤ï¤Ê¤¤¡£ -\&'cm206=auto' ¤È¤¹¤ë¤³¤È¤Ë¤è¤ê¼«Æ°¸¡½Ð¤â¤Ç¤­¤ë¡£ +ドライバは IRQ 値として 3 から 11 まで、 +I/O ポートアドレスの値として 0x300 から 0x370 を想定している。 +いずれか一方、あるいは両方を指定できる。順番も問わない。 +\&'cm206=auto' とすることにより自動検出もできる。 .TP -.B Sanyo ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ -¤³¤Î¥«¡¼¥É¤Î¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +.B Sanyo インターフェース +このカードの構文は以下の通り。 .IP sjcd=iobase[,irq[,dma_channel]] .TP -.B SoundBlaster Pro ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ -¤³¤Î¥«¡¼¥É¤Î¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +.B SoundBlaster Pro インターフェース +このカードの構文は以下の通り。 .IP sbpcd=iobase,type .IP -type ÃÍ¤Ë¤Ï 'SoundBlaster', 'LaserMate', 'SPEA' ¤Î¤¦¤Á¤Ò¤È¤Ä¤ò»ØÄê¤Ç¤­¤ë -(Âçʸ»ú¾®Ê¸»ú¤¬¶èÊ̤µ¤ì¤ë)¡£ -iobase ¤Ï CD-ROM ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÎÃͤǤ¢¤ë¡£ -¥«¡¼¥É¤Î¥µ¥¦¥ó¥ÉÉô¤ÎÃͤȴְ㤨¤Ê¤¤¤³¤È¡£ -.SS "¥¤¡¼¥µ¥Í¥Ã¥È¥Ç¥Ð¥¤¥¹" -¥É¥é¥¤¥Ð¤¬°Û¤Ê¤ë¤ÈÍѤ¤¤ë¥Ñ¥é¥á¡¼¥¿¤â°Û¤Ê¤ë¤¬¡¢ -¤¹¤Ù¤Æ¤Î¥É¥é¥¤¥Ð¤Ï¡¢¾¯¤Ê¤¯¤È¤â³ä¤ê¹þ¤ßÈÖ¹æ (irq)¡¢ -I/O ¥Ý¡¼¥È¤Î¥Ù¡¼¥¹¥¢¥É¥ì¥¹ (iobase)¡¢Ì¾Á° (name) ¤ò»ý¤Ä¡£ -ºÇ¤â°ìÈÌŪ¤Ê·Á¼°¤Ï°Ê²¼¤ÎÄ̤ꡣ +type 値には 'SoundBlaster', 'LaserMate', 'SPEA' のうちひとつを指定できる +(大文字小文字が区別される)。 +iobase は CD-ROM インターフェースの値である。 +カードのサウンド部の値と間違えないこと。 +.SS "イーサネットデバイス" +ドライバが異なると用いるパラメータも異なるが、 +すべてのドライバは、少なくとも割り込み番号 (irq)、 +I/O ポートのベースアドレス (iobase)、名前 (name) を持つ。 +最も一般的な形式は以下の通り。 .IP ether=irq,iobase[,param_1[,...param_8]],name .IP -ºÇ½é¤Î¿ô»ú¤Ç¤Ê¤¤ÃͤÏ̾Á°¤È¤·¤Æ»ÈÍѤµ¤ì¤ë¡£ -param_n ¤ÎÃͤϥ«¡¼¥É (¥É¥é¥¤¥Ð) ¤´¤È¤Ë°Û¤Ê¤ë°ÕÌ£¤ò»ý¤Ä¡£ -¤è¤¯¤¢¤ëÌÜŪ¤Ï¡¢¶¦Í­¥á¥â¥ê¥¢¥É¥ì¥¹¤Î»ØÄê¡¢¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÎÁªÂò¡¢ -DMA ¥Á¥ã¥Í¥ë¤Ê¤É¤Ç¤¢¤ë¡£ +最初の数字でない値は名前として使用される。 +param_n の値はカード (ドライバ) ごとに異なる意味を持つ。 +よくある目的は、共有メモリアドレスの指定、インターフェースの選択、 +DMA チャネルなどである。 -¤³¤Î¥Ñ¥é¥á¡¼¥¿¤ÎºÇ¤â¤è¤¯¤¢¤ëÍøÍÑË¡¤Ï¡¢ -2 ÈÖÌܤΠEthernet ¥«¡¼¥É¤ò¶¯À©Åª¤Ë¸¡½Ð¤µ¤»¤ë¾ì¹ç¤Ç¤¢¤ë -(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï 1 Ë礷¤«¸¡½Ð¤·¤Ê¤¤)¡£ -¤³¤ì¤Ï´Êñ¤Ç¡¢¼¡¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¤è¤¤¡£ +このパラメータの最もよくある利用法は、 +2 番目の Ethernet カードを強制的に検出させる場合である +(デフォルトでは 1 枚しか検出しない)。 +これは簡単で、次のようにすればよい。 .IP ether=0,0,eth1 .IP -¤³¤ÎÎã¤Ç IRQ ¤È I/O ¥Ù¡¼¥¹¥¢¥É¥ì¥¹¤Ë 0 ¤ò»ØÄꤷ¤Æ¤¤¤ë¤Î¤Ï¡¢ -¥É¥é¥¤¥Ð¤Ë¼«Æ°¸¡½Ð¤ò¤¹¤ë¤è¤¦ÅÁ¤¨¤Æ¤¤¤ë¤Î¤Ç¤¢¤ë¡£ +この例で IRQ と I/O ベースアドレスに 0 を指定しているのは、 +ドライバに自動検出をするよう伝えているのである。 -Ethernet-HOWTO ¤Ç¤Ï¡¢Ê£¿ô¤Î¥«¡¼¥É¤ò»È¤¦¤ä¤êÊý¤ä¡¢ -¥«¡¼¥É¤ä¥É¥é¥¤¥Ð¤ËÆÃÍ­¤Î param_n ÃͤΰÕÌ£¤Ë¤Ä¤¤¤Æ¡¢ -¤º¤Ã¤È¾ÜºÙ¤Ë²òÀ⤵¤ì¤Æ¤¤¤ë¡£ -¶½Ì£¤ò»ý¤Ã¤¿ÆɼԤϡ¢¤³¤Îʸ½ñ¤Ë¤¢¤¿¤ê¡¢ -¼«Ê¬¤Î¥«¡¼¥É¤Ë´Ø¤·¤Æ½ñ¤«¤ì¤Æ¤¤¤ë¥»¥¯¥·¥ç¥ó¤ò»²¾È¤¹¤ë¤ÈÎɤ¤¡£ -.SS ¥Õ¥í¥Ã¥Ô¡¼¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ð -¥Õ¥í¥Ã¥Ô¡¼¥É¥é¥¤¥Ð¤Î¥ª¥×¥·¥ç¥ó¤Ï¿¿ô¤¢¤ê¡¢ -¥«¡¼¥Í¥ë¥½¡¼¥¹Æâ¤Î +Ethernet-HOWTO では、複数のカードを使うやり方や、 +カードやドライバに特有の param_n 値の意味について、 +ずっと詳細に解説されている。 +興味を持った読者は、この文書にあたり、 +自分のカードに関して書かれているセクションを参照すると良い。 +.SS フロッピーディスクドライバ +フロッピードライバのオプションは多数あり、 +カーネルソース内の .I Documentation/floppy.txt -(¸Å¤¤¥«¡¼¥Í¥ë¤Î¾ì¹ç¤Ï +(古いカーネルの場合は .IR drivers/block/README.fd ) -¤Ë¤¹¤Ù¤Æµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ -°Ê²¼¤Î¾ðÊó¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤«¤é¤È¤Ã¤¿¤â¤Î¤Ç¤¢¤ë¡£ +にすべて記載されている。 +以下の情報はこのファイルからとったものである。 .TP .B "floppy=mask,allowed_drive_mask" -»È¤Ã¤Æ¤è¤¤¥É¥é¥¤¥Ö¤Ë¤«¤±¤ë¥Ó¥Ã¥È¥Þ¥¹¥¯¤òÀßÄꤹ¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ -¥æ¥Ë¥Ã¥È 0 ¤È 1 ¤Î¥Õ¥í¥Ã¥Ô¡¼¥³¥ó¥È¥í¡¼¥é¤À¤±¤¬µö²Ä¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï¡¢É¸½à¤Ç¤Ê¤¤¥Ï¡¼¥É¥¦¥§¥¢ (Î㤨¤Ð ASUS ¤Î PCI¥Þ¥¶¡¼¥Ü¡¼¥É¤Ê¤É) -¤Ç¥æ¥Ë¥Ã¥È 2 ¤ä 3 ¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤È¡¢ -¥­¡¼¥Ü¡¼¥É¤¬¤ª¤«¤·¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤«¤é¤Ç¤¢¤ë¡£ -cmos ¥ª¥×¥·¥ç¥ó (¸å½Ò) ¤ÎƳÆþ¤Ë¤è¤Ã¤Æ¡¢ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¤¢¤Þ¤ê»È¤ï¤ì¤Ê¤¯¤Ê¤Ã¤¿¡£ +使ってよいドライブにかけるビットマスクを設定する。 +デフォルトでは、 +ユニット 0 と 1 のフロッピーコントローラだけが許可されている。 +これは、標準でないハードウェア (例えば ASUS の PCIマザーボードなど) +でユニット 2 や 3 にアクセスすると、 +キーボードがおかしくなってしまうからである。 +cmos オプション (後述) の導入によって、 +このオプションはあまり使われなくなった。 .TP .B "floppy=all_drives" -µö²Ä¤¹¤ë¥É¥é¥¤¥Ö¤ò¼¨¤¹¥Ó¥Ã¥È¥Þ¥¹¥¯¤ò¡¢¡Ö¤¹¤Ù¤Æ¤Î¥É¥é¥¤¥Ö¡×¤Ë¤¹¤ë¡£ -1 ¤Ä¤Î¥Õ¥í¥Ã¥Ô¡¼¥³¥ó¥È¥í¡¼¥é¤Ë 2 Âæ°Ê¾å¤Î¥É¥é¥¤¥Ö¤òÀܳ¤¹¤ë¾ì¹ç¤ËÍѤ¤¤ë¡£ +許可するドライブを示すビットマスクを、「すべてのドライブ」にする。 +1 つのフロッピーコントローラに 2 台以上のドライブを接続する場合に用いる。 .TP .B "floppy=asus_pci" -¥æ¥Ë¥Ã¥È 0 ¤È 1 ¤Î¤ß¤òµö²Ä¤¹¤ë¤è¤¦¥Ó¥Ã¥È¥Þ¥¹¥¯¤òÀßÄꤹ¤ë¡£ -(¥Ç¥Õ¥©¥ë¥È)¡£ +ユニット 0 と 1 のみを許可するようビットマスクを設定する。 +(デフォルト)。 .TP .B "floppy=daring" -Àµ¤·¤¯¿¶¤ëÉñ¤¦¥Õ¥í¥Ã¥Ô¡¼¥³¥ó¥È¥í¡¼¥é¤ò»È¤Ã¤Æ¤¤¤ë¤³¤È¤ò¥É¥é¥¤¥Ð¤ËÅÁ¤¨¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤ÈÆ°ºî¤Ï¤è¤ê¸úΨŪ¤«¤Ä¥¹¥à¡¼¥¹¤Ë¤Ê¤ë¤¬¡¢ -¥³¥ó¥È¥í¡¼¥é¤Ë¤è¤Ã¤Æ¤ÏÆ°ºî¤Ë¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ë¡£ -¤³¤ì¤ò»ØÄꤹ¤ë¤È¤¢¤ë¼ï¤ÎÆ°ºî¤¬¹â®¤Ë¤Ê¤ë¡£ +正しく振る舞うフロッピーコントローラを使っていることをドライバに伝える。 +このオプションを使うと動作はより効率的かつスムースになるが、 +コントローラによっては動作に失敗することがある。 +これを指定するとある種の動作が高速になる。 .TP .B "floppy=0,daring" -Ãí°Õ¤·¤Æ°·¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -¥Õ¥í¥Ã¥Ô¡¼¥³¥ó¥È¥í¡¼¥é¤Ç¤¢¤ë¤³¤È¤ò¥É¥é¥¤¥Ð¤ËÅÁ¤¨¤ë¡£ +注意して扱わなければならない +フロッピーコントローラであることをドライバに伝える。 .TP .B "floppy=one_fdc" -¥Õ¥í¥Ã¥Ô¡¼¥³¥ó¥È¥í¡¼¥é¤¬¤Ò¤È¤Ä¤·¤«¤Ê¤¤¤³¤È¤ò¥É¥é¥¤¥Ð¤ËÅÁ¤¨¤ë -(¥Ç¥Õ¥©¥ë¥È)¡£ +フロッピーコントローラがひとつしかないことをドライバに伝える +(デフォルト)。 .TP -.BR floppy=two_fdc " ¤Þ¤¿¤Ï " floppy=address,two_fdc -¥Õ¥í¥Ã¥Ô¡¼¥³¥ó¥È¥í¡¼¥é¤¬¤Õ¤¿¤Ä¤¢¤ë¤³¤È¤ò¥É¥é¥¤¥Ð¤ËÅÁ¤¨¤ë¡£ -2 ÈÖÌܤΥ³¥ó¥È¥í¡¼¥é¤Î I/O ¥¢¥É¥ì¥¹¤Ï address ¤Ç»ØÄꤹ¤ë¡£ -address ¤¬»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï 0x370 ¤¬»È¤ï¤ì¤ë¡£ +.BR floppy=two_fdc " または " floppy=address,two_fdc +フロッピーコントローラがふたつあることをドライバに伝える。 +2 番目のコントローラの I/O アドレスは address で指定する。 +address が指定されない場合は 0x370 が使われる。 .TP .B "floppy=thinkpad" -Thinkpad ¤ò»È¤Ã¤Æ¤¤¤ë¤³¤È¤ò¥Õ¥í¥Ã¥Ô¡¼¥É¥é¥¤¥Ð¤ËÅÁ¤¨¤ë¡£ -Thinkpad ¤Ï¥Ç¥£¥¹¥¯¼è½Ð¤Î¸¡½Ð¿®¹æ¤òȿž¤·¤Æ»È¤Ã¤Æ¤¤¤ë¡£ +Thinkpad を使っていることをフロッピードライバに伝える。 +Thinkpad はディスク取出の検出信号を反転して使っている。 .TP .B "floppy=0,thinkpad" -Thinkpad ¤ò»È¤Ã¤Æ¤¤¤Ê¤¤¤³¤È¤ò¥É¥é¥¤¥Ð¤ËÅÁ¤¨¤ë¡£ +Thinkpad を使っていないことをドライバに伝える。 .TP .B "floppy=drive,type,cmos" -¥É¥é¥¤¥Ö¤Î cmos ¥¿¥¤¥×¤ò type ¤ËÀßÄꤹ¤ë¡£ -¤µ¤é¤Ë¥Ó¥Ã¥È¥Þ¥¹¥¯¤òÊѹ¹¤·¡¢¤³¤Î¥É¥é¥¤¥Ö¤Î»ÈÍѤòµö²Ä¤¹¤ë¡£ -¤³¤Î»ØÄ꤬ÊØÍø¤Ê¤Î¤Ï¡¢¥Õ¥í¥Ã¥Ô¡¼¥É¥é¥¤¥Ö¤¬ 2 Âæ°Ê¾å¤¢¤ë¾ì¹ç -(ʪÍý cmos ¤Ëµ­½Ò¤Ç¤­¤ë¤Î¤Ï 2 Âæ¤Þ¤Ç) ¤ä¡¢ -BIOS ¤¬É¸½àŪ¤Ç¤Ê¤¤ CMOS ¥¿¥¤¥×¤ò»È¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ç¤¢¤ë¡£ -ºÇ½é¤Î 2 Âæ¤Î¥É¥é¥¤¥Ö¤Î CMOS ¤Ë 0 ¤ò»ØÄꤹ¤ë (¥Ç¥Õ¥©¥ë¥È) ¤È¡¢ -¥Õ¥í¥Ã¥Ô¡¼¥É¥é¥¤¥Ð¤Ï¤³¤ì¤é¤Î¥É¥é¥¤¥Ö¤ÎʪÍý cmos ¤ò»²¾È¤¹¤ë¡£ +ドライブの cmos タイプを type に設定する。 +さらにビットマスクを変更し、このドライブの使用を許可する。 +この指定が便利なのは、フロッピードライブが 2 台以上ある場合 +(物理 cmos に記述できるのは 2 台まで) や、 +BIOS が標準的でない CMOS タイプを使っている場合である。 +最初の 2 台のドライブの CMOS に 0 を指定する (デフォルト) と、 +フロッピードライバはこれらのドライブの物理 cmos を参照する。 .TP .B "floppy=unexpected_interrupts" -ͽ´ü¤·¤Ê¤¤³ä¤ê¹þ¤ß¤ò¼õ¤±¤¿»þ¤Ë·Ù¹ð¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë (¥Ç¥Õ¥©¥ë¥È)¡£ -.TP -.BR floppy=no_unexpected_interrupts " ¤Þ¤¿¤Ï " floppy=L40SX -ͽ´ü¤·¤Ê¤¤³ä¤ê¹þ¤ß¤ò¼õ¤±¤¿»þ¤Ç¤â·Ù¹ð¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Ê¤¤¡£ -¤³¤ì¤Ï IBM L40SX ¥é¥Ã¥×¥È¥Ã¥×¥³¥ó¥Ô¥å¡¼¥¿¤ò -ÆÃÄê¤Î¥Ó¥Ç¥ª¥â¡¼¥É¤Ç»ÈÍѤ¹¤ë»þ¤ËɬÍפȤʤ롣 -(¥Ó¥Ç¥ª¤È¥Õ¥í¥Ã¥Ô¡¼¤È¤Î´Ö¤Ç²¿¤é¤«¤ÎÁê¸ßºîÍѤ¬¤¢¤ë¤è¤¦¤À¡£ -ͽ´ü¤·¤Ê¤¤³ä¤ê¹þ¤ß¤ÏÀ­Ç½¤À¤±¤Ë±Æ¶Á¤·¡¢Ìµ»ë¤·¤Æ¤â°ÂÁ´¤Ç¤¢¤ë¡£) -.SS ¥µ¥¦¥ó¥É¥É¥é¥¤¥Ð -¥µ¥¦¥ó¥É¥É¥é¥¤¥Ð¤âµ¯Æ°»þ°ú¿ô¤ò¼õ¤±ÉÕ¤±¡¢ -¥³¥ó¥Ñ¥¤¥ë»þ¤Ë»ØÄꤵ¤ì¤¿ÃͤòÊѹ¹¤Ç¤­¤ë¡£ -¤³¤ì¤Ï¤ä¤äÌÌÅݤʤ¿¤á¡¢¤¢¤Þ¤ê¤ªÁ¦¤á¤Ç¤­¤Ê¤¤¡£ -¾ÜºÙ¤Ï¡¢¥«¡¼¥Í¥ë¥½¡¼¥¹Æâ¤Î +予期しない割り込みを受けた時に警告メッセージを表示する (デフォルト)。 +.TP +.BR floppy=no_unexpected_interrupts " または " floppy=L40SX +予期しない割り込みを受けた時でも警告メッセージを表示しない。 +これは IBM L40SX ラップトップコンピュータを +特定のビデオモードで使用する時に必要となる。 +(ビデオとフロッピーとの間で何らかの相互作用があるようだ。 +予期しない割り込みは性能だけに影響し、無視しても安全である。) +.SS サウンドドライバ +サウンドドライバも起動時引数を受け付け、 +コンパイル時に指定された値を変更できる。 +これはやや面倒なため、あまりお薦めできない。 +詳細は、カーネルソース内の .IR Documentation/sound/oss/README.OSS -(¸Å¤¤¥«¡¼¥Í¥ë¤Î¾ì¹ç¤Ï +(古いカーネルの場合は .IR drivers/sound/Readme.linux ) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ -°ú¿ô¤Î·Á¼°¤Ï°Ê²¼¤ÎÄ̤ꡣ +に記載されている。 +引数の形式は以下の通り。 .IP sound=device1[,device2[,device3...[,device10]]] .IP -³Æ deviceN ¤Ï¤½¤ì¤¾¤ì 0xTaaaId ¤È¤¤¤¦·Á¼°¤Ç»ØÄꤹ¤ë¡£ -³Æ¥Ð¥¤¥È¤Î°ÕÌ£¤Ï°Ê²¼¤ÎÄ̤ꡣ +各 deviceN はそれぞれ 0xTaaaId という形式で指定する。 +各バイトの意味は以下の通り。 -T \- ¥Ç¥Ð¥¤¥¹¤Î¥¿¥¤¥×: 1=FM, 2=SB, 3=PAS, 4=GUS, 5=MPU401, 6=SB16, 7=SB16-MPU401 +T \- デバイスのタイプ: 1=FM, 2=SB, 3=PAS, 4=GUS, 5=MPU401, 6=SB16, 7=SB16-MPU401 -aaa \- I/O ¥Ý¡¼¥È¥¢¥É¥ì¥¹ (16¿ÊÃÍ) +aaa \- I/O ポートアドレス (16進値) -I \- ³ä¤ê¹þ¤ßÈÖ¹æ (16 ¿ÊÃÍ¡£Îã: 10=a, 11=b, ...) +I \- 割り込み番号 (16 進値。例: 10=a, 11=b, ...) -d \- DMA ¥Á¥ã¥Í¥ë +d \- DMA チャネル -¾åµ­¤ÎÄ̤ꡢ¤«¤Ê¤ê°·¤¤¤Ë¤¯¤¤·Á¼°¤È¤Ê¤Ã¤Æ¤ª¤ê¡¢ -¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¼«Ê¬¤Ë¤¢¤Ã¤¿Ãͤò»ØÄꤹ¤ëÊý¤¬Îɤ¤¤À¤í¤¦¡£ -¤Ê¤ªµ¯Æ°»þ°ú¿ô¤È¤·¤Æ 'sound=0' ¤ò»ØÄꤹ¤ë¤È¡¢ -¥µ¥¦¥ó¥É¥É¥é¥¤¥Ð¤ò´°Á´¤Ë̵¸ú¤Ë¤¹¤ë¡£ -.SS "ISDN ¥É¥é¥¤¥Ð" +上記の通り、かなり扱いにくい形式となっており、 +コンパイル時に自分にあった値を指定する方が良いだろう。 +なお起動時引数として 'sound=0' を指定すると、 +サウンドドライバを完全に無効にする。 +.SS "ISDN ドライバ" .TP -.B ICN ISDN ¥É¥é¥¤¥Ð -¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +.B ICN ISDN ドライバ +構文は以下の通り。 .IP icn=iobase,membase,icn_id1,icn_id2 .IP -icn_id1,icn_id2 ¤Ï¥«¡¼¥É¤ò¼±Ê̤¹¤ë¤¿¤á¤Î 2 ¤Ä¤Îʸ»úÎó¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë¥á¥Ã¥»¡¼¥¸¤ÇÍѤ¤¤é¤ì¤ë¡£ +icn_id1,icn_id2 はカードを識別するための 2 つの文字列である。 +カーネルメッセージで用いられる。 .TP -.B PCBIT ISDN ¥É¥é¥¤¥Ð -¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +.B PCBIT ISDN ドライバ +構文は以下の通り。 .IP pcbit=membase1,irq1[,membase2,irq2] .IP -membaseN ¤Ï N ÈÖÌܤΥ«¡¼¥É¤Î¶¦Í­¥á¥â¥ê¤Î¥Ù¡¼¥¹¥¢¥É¥ì¥¹¤Ç¤¢¤ê¡¢ -irqN ¤Ï N ÈÖÌܤΥ«¡¼¥É¤Î³ä¤ê¹þ¤ßÀßÄê¤Ç¤¢¤ë¡£ -̵»ØÄê»þ¤Ë¤Ï IRQ = 5, membase = 0xD0000 ¤È¤Ê¤ë¡£ +membaseN は N 番目のカードの共有メモリのベースアドレスであり、 +irqN は N 番目のカードの割り込み設定である。 +無指定時には IRQ = 5, membase = 0xD0000 となる。 .TP -.B Teles ISDN ¥É¥é¥¤¥Ð -¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +.B Teles ISDN ドライバ +構文は以下の通り。 .IP teles=iobase,irq,membase,protocol,teles_id .IP -iobase ¤Ï¥«¡¼¥É¤Î I/O ¥Ý¡¼¥È¥¢¥É¥ì¥¹¡¢ -membase ¤Ï¥«¡¼¥É¤Î¶¦Í­¥á¥â¥ê¤Î¥Ù¡¼¥¹¥¢¥É¥ì¥¹¡¢ -¤½¤·¤Æ irq ¤Ï¥«¡¼¥É¤¬»ÈÍѤ¹¤ë³ä¤ê¹þ¤ß¥Á¥ã¥Í¥ë¤Ç¤¢¤ë¡£ -teles_id ¤Ï¥¢¥¹¥­¡¼Ê¸»úÎó¤Ë¤è¤ë¼±ÊÌʸ»úÎó¤Ç¤¢¤ë (¾¤È½Å¤Ê¤é¤Ê¤¤¤è¤¦¤Ë¤¹¤ë)¡£ -.SS ¥·¥ê¥¢¥ë¥Ý¡¼¥È¥É¥é¥¤¥Ð +iobase はカードの I/O ポートアドレス、 +membase はカードの共有メモリのベースアドレス、 +そして irq はカードが使用する割り込みチャネルである。 +teles_id はアスキー文字列による識別文字列である (他と重ならないようにする)。 +.SS シリアルポートドライバ .TP -.B RISCom/8 ¥Þ¥ë¥Á¥Ý¡¼¥È¥·¥ê¥¢¥ë¥É¥é¥¤¥Ð ('riscom8=') -¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +.B RISCom/8 マルチポートシリアルドライバ ('riscom8=') +構文は以下の通り。 .IP riscom=iobase1[,iobase2[,iobase3[,iobase4]]] .IP -¾ÜºÙ¤Ï +詳細は .I /usr/src/linux/Documentation/riscom8.txt -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .TP -.B DigiBoard ¥É¥é¥¤¥Ð ('digi=') -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¾ì¹ç¤Ï¡¢ -6 ¤Ä¤Á¤ç¤¦¤É¤Î¥Ñ¥é¥á¡¼¥¿¤òÍ¿¤¨¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +.B DigiBoard ドライバ ('digi=') +このオプションを使う場合は、 +6 つちょうどのパラメータを与えなければならない。 +構文は以下の通り。 .IP digi=status,type,altpin,numports,iobase,membase .IP -¥Ñ¥é¥á¡¼¥¿¤ÏÀ°¿ôÃͤ«Ê¸»úÎó¤ÇÍ¿¤¨¤ë¡£ -ʸ»úÎó¤Ç»ØÄꤹ¤ë¾ì¹ç¤Ï¡¢ -iobase ¤È membase ¤Ï 16 ¿ÊÃͤǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -À°¿ôÃͤǻØÄꤹ¤ë¾ì¹ç¤Ï¥Ñ¥é¥á¡¼¥¿¤Î¸Ä¿ô¤Ï¾¯¤Ê¤¯¤Æ¤âÎɤ¯¡¢½ç¤Ë: -status ¤³¤Î¥«¡¼¥É¤ÎÆ°ºî¤ò»ØÄꤹ¤ë (Enable(1) ¤Þ¤¿¤Ï Disable(0)), -type ¥«¡¼¥É¤Î¥¿¥¤¥× (PC/Xi(0), PC/Xe(1), PC/Xeve(2), PC/Xem(3)), -altpin ¥Ô¥óÇÛÃÖ¤òȿž¤µ¤»¤ë (Enable(1) or Disable(0)), -numports ¥«¡¼¥É¤Î¥Ý¡¼¥ÈÈÖ¹æ, -iobase ¤³¤Î¥«¡¼¥É¤Î I/O ¥Ý¡¼¥È (ʸ»úÎó»ØÄê¤Î¾ì¹ç¤Ï 16 ¿Êɽµ­), -membase ¥á¥â¥ê¥¦¥£¥ó¥É¥¦¤Î¥Ù¡¼¥¹¥¢¥É¥ì¥¹ (ʸ»úÎó»ØÄê¤Î¾ì¹ç¤Ï 16 ¿Êɽµ­)¡£ -¤·¤¿¤¬¤Ã¤Æ°Ê²¼¤Î¤Õ¤¿¤Ä¤Îµ¯Æ°»þ°ú¿ô¤ÏƱ¤¸°ÕÌ£¤ò»ý¤Ä¡£ +パラメータは整数値か文字列で与える。 +文字列で指定する場合は、 +iobase と membase は 16 進値でなければならない。 +整数値で指定する場合はパラメータの個数は少なくても良く、順に: +status このカードの動作を指定する (Enable(1) または Disable(0)), +type カードのタイプ (PC/Xi(0), PC/Xe(1), PC/Xeve(2), PC/Xem(3)), +altpin ピン配置を反転させる (Enable(1) or Disable(0)), +numports カードのポート番号, +iobase このカードの I/O ポート (文字列指定の場合は 16 進表記), +membase メモリウィンドウのベースアドレス (文字列指定の場合は 16 進表記)。 +したがって以下のふたつの起動時引数は同じ意味を持つ。 .IP digi=E,PC/Xi,D,16,200,D0000 .br digi=1,0,0,16,0x200,851968 .IP -¾ÜºÙ¤Ï +詳細は .I /usr/src/linux/Documentation/digiboard.txt -¤ò»²¾È¤»¤è¡£ +を参照せよ。 .TP -.B Baycom ¥·¥ê¥¢¥ë¡¦¥Ñ¥é¥ì¥ë ¥é¥¸¥ª¥â¥Ç¥à -¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +.B Baycom シリアル・パラレル ラジオモデム +構文は以下の通り。 .IP baycom=iobase,irq,modem .IP -¤Á¤ç¤¦¤É 3 ¤Ä¤Î¥Ñ¥é¥á¡¼¥¿¤òÍ¿¤¨¤ë¡£ -Ê£¿ô¤Î¥«¡¼¥É¤¬¤¢¤ë¾ì¹ç¤Ï¡¢'baycom=' ¥³¥Þ¥ó¥É¤âÊ£¿ôµ­½Ò¤¹¤ë¡£ -modem ¥Ñ¥é¥á¡¼¥¿¤Ïʸ»úÎó¤Ç¡¢ -ser12, ser12*, par96, par96* ¤ÎÃ椫¤é¤Ò¤È¤Ä¤òÁª¤Ö¡£ -* ¤ò¤Ä¤±¤ë¤È¥½¥Õ¥È¥¦¥§¥¢ DCD ¤ò»ÈÍѤ¹¤ë¡£ -¥â¥Ç¥à¤Î¼ïÎà¤Ë±þ¤¸¤Æ ser12 ¤« par96 ¤«¤òÁªÂò¤¹¤ë¡£ -¾ÜºÙ¤Ï¥«¡¼¥Í¥ë¥½¡¼¥¹Æâ¤Î +ちょうど 3 つのパラメータを与える。 +複数のカードがある場合は、'baycom=' コマンドも複数記述する。 +modem パラメータは文字列で、 +ser12, ser12*, par96, par96* の中からひとつを選ぶ。 +* をつけるとソフトウェア DCD を使用する。 +モデムの種類に応じて ser12 か par96 かを選択する。 +詳細はカーネルソース内の .I Documentation/networking/baycom.txt -(¸Å¤¤¥«¡¼¥Í¥ë¤Î¾ì¹ç¤Ï +(古いカーネルの場合は .IR drivers/net/README.baycom ) -¤ò»²¾È¡£ +を参照。 .TP -.B ¥µ¥¦¥ó¥É¥«¡¼¥É¥é¥¸¥ª¥â¥Ç¥à¥É¥é¥¤¥Ð -¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +.B サウンドカードラジオモデムドライバ +構文は以下の通り。 .IP soundmodem=iobase,irq,dma[,dma2[,serio[,pario]]],0,mode .IP -ºÇ¸å¤Î¥Ñ¥é¥á¡¼¥¿¤ò½ü¤¯¤¹¤Ù¤Æ¤Î¥Ñ¥é¥á¡¼¥¿¤ÏÀ°¿ô¤Ç¤¢¤ë¡£ -¥À¥ß¡¼¤Î 0 ¤¬¤¢¤ë¤Î¤Ï¡¢ÀßÄê¥×¥í¥°¥é¥à¤Î¥Ð¥°¤Î¤»¤¤¤Ç¤¢¤ë¡£ -mode ¥Ñ¥é¥á¡¼¥¿¤Ïʸ»úÎó¤Ç¡¢hw:modem ¤È¤¤¤¦½ñ¼°¤Ç»ØÄꤹ¤ë¡£ -hw ¤Ï sbc, wss, wssfdx ¤Î¤¦¤Á¤Ò¤È¤Ä¡¢ -modem ¤Ï afsk1200, fsk9600 ¤Î¤É¤Á¤é¤«¤òÁªÂò¤·¤Æµ­½Ò¤¹¤ë¡£ +最後のパラメータを除くすべてのパラメータは整数である。 +ダミーの 0 があるのは、設定プログラムのバグのせいである。 +mode パラメータは文字列で、hw:modem という書式で指定する。 +hw は sbc, wss, wssfdx のうちひとつ、 +modem は afsk1200, fsk9600 のどちらかを選択して記述する。 .\" HERE GOES (NAKANO) -.SS ¥é¥¤¥ó¥×¥ê¥ó¥¿¥É¥é¥¤¥Ð +.SS ラインプリンタドライバ .TP .B "'lp='" -½ñ¼°: +書式: .IP lp=0 .br @@ -1270,76 +1270,76 @@ lp=reset .br lp=port[,port...] .IP -¥×¥ê¥ó¥¿¥É¥é¥¤¥Ð¤Ë¤Ï¡¢¤É¤Î¥Ý¡¼¥È¤ò»È¤¦¤«¡¢ -¤É¤Î¥Ý¡¼¥È¤ò»È¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤¤«¤òÅÁ¤¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¸å¼Ô¤Ï¡¢ -ÍøÍѲÄǽ¤Ê¤¢¤é¤æ¤ë¥Ñ¥é¥ì¥ë¥Ý¡¼¥È¤ò¥×¥ê¥ó¥¿¥É¥é¥¤¥Ð¤¬Í׵ᤷ¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¡¢ -¾¤Î¥É¥é¥¤¥Ð (PLIP ¤ä PPA ¤Ê¤É) ¤«¤é -¤½¤ì¤é¤ò»È¤¨¤ë¤è¤¦¤Ë¤·¤¿¤¤¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£ +プリンタドライバには、どのポートを使うか、 +どのポートを使ってはいけないかを伝えることができる。 +後者は、 +利用可能なあらゆるパラレルポートをプリンタドライバが要求しないようにして、 +他のドライバ (PLIP や PPA など) から +それらを使えるようにしたい場合に便利である。 -°ú¿ô¤Î½ñ¼°¤Ï¡¢Ê£¿ô¤Î¥Ý¡¼¥È̾¤Ç¤¢¤ë¡£ -Î㤨¤Ð lp=none,parport0 ¤È¤¹¤ë¤È¡¢ -ºÇ½é¤Î¥Ñ¥é¥ì¥ë¥Ý¡¼¥È¤ò lp1 ¤È¤·¤Æ»È¤¤¡¢ -lp0 ¤Ï̵¸ú¤Ë¤¹¤ë¡£¥×¥ê¥ó¥¿¡¼¥É¥é¥¤¥Ð¤ò´°Á´¤Ë̵¸ú¤Ë¤¹¤ë¤Ë¤Ï -lp=0 ¤È¤¹¤ì¤Ð¤è¤¤¡£ +引数の書式は、複数のポート名である。 +例えば lp=none,parport0 とすると、 +最初のパラレルポートを lp1 として使い、 +lp0 は無効にする。プリンタードライバを完全に無効にするには +lp=0 とすればよい。 .TP -.B WDT500/501 ¥É¥é¥¤¥Ð -¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡣ +.B WDT500/501 ドライバ +構文は以下の通り。 .IP wdt=io,irq -.SS ¥Þ¥¦¥¹¥É¥é¥¤¥Ð +.SS マウスドライバ .TP .B "'bmouse=irq'" -¥Ð¥¹¥Þ¥¦¥¹¥É¥é¥¤¥Ð¤Ï¥Ñ¥é¥á¡¼¥¿¤ò¤Ò¤È¤Ä¤À¤±¤È¤ê¡¢ -¥Ï¡¼¥É¥¦¥§¥¢ IRQ ¤ò»ØÄê¤Ç¤­¤ë¡£ +バスマウスドライバはパラメータをひとつだけとり、 +ハードウェア IRQ を指定できる。 .TP .B "'msmouse=irq'" -msmouse ¥É¥é¥¤¥Ð¤Ç¤â¤³¤Î»ö¾ð¤Ï¤Þ¤Ã¤¿¤¯Æ±¤¸¤Ç¤¢¤ë¡£ +msmouse ドライバでもこの事情はまったく同じである。 .TP -.B ATARI ¥Þ¥¦¥¹¤ÎÀßÄê +.B ATARI マウスの設定 .IP atamouse=threshold[,y-threshold] .IP -¥Ñ¥é¥á¡¼¥¿¤¬¤Ò¤È¤Ä¤À¤±Í¿¤¨¤é¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ -x-threshold ¤È y-threshold ¤òξÊý¤ËÍѤ¤¤é¤ì¤ë¡£ -¤Õ¤¿¤ÄÍ¿¤¨¤é¤ì¤¿¾ì¹ç¤Ï¡¢ºÇ½é¤ÎÃͤ¬ x-threshold ¤È¤·¤ÆÍѤ¤¤é¤ì¡¢ -2 ÈÖÌܤÎÃͤ¬ y-threshold ¤È¤·¤ÆÍѤ¤¤é¤ì¤ë¡£ -ÃÍ¤Ï 1 ¤«¤é 20 ¤Þ¤Ç¤Î¿ôÃͤǻØÄꤹ¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 2¡£ -.SS ¥Ó¥Ç¥ªµ¡´ï +パラメータがひとつだけ与えられた場合には、 +x-threshold と y-threshold を両方に用いられる。 +ふたつ与えられた場合は、最初の値が x-threshold として用いられ、 +2 番目の値が y-threshold として用いられる。 +値は 1 から 20 までの数値で指定する。 +デフォルトは 2。 +.SS ビデオ機器 .TP .B "'no-scroll'" -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥³¥ó¥½¡¼¥ë¥É¥é¥¤¥Ð¤Ë¡¢ -¥Ï¡¼¥É¥¦¥§¥¢¥¹¥¯¥í¡¼¥ë¤òÍѤ¤¤Ê¤¤¤è¤¦ÅÁ¤¨¤ë -(¤³¤³¤Ç¸À¤¦¥Ï¡¼¥É¥¦¥§¥¢¥¹¥¯¥í¡¼¥ë¤È¤Ï¡¢ -¥Ó¥Ç¥ª¥á¥â¥ê¾å¤Î¥Ç¡¼¥¿¤ò°ÜÆ°¤µ¤»¤ë¤³¤È¤Ë¤è¤Ã¤Æ -¥¹¥¯¥ê¡¼¥óɽ¼¨Îΰè¤ò¥¹¥¯¥í¡¼¥ë¤µ¤»¤ë¤³¤È¤ò»Ø¤¹)¡£ -ÆÃÄê¤ÎÅÀ»ú¥Þ¥·¥ó¤Ç¤Ï¤³¤Î»ØÄ꤬ɬÍפȤʤ롣 -.\" .SH Ãø¼Ô -.\" Linus Torvalds (¾¿¿ô) -.SH ´ØÏ¢¹àÌÜ +このオプションは、コンソールドライバに、 +ハードウェアスクロールを用いないよう伝える +(ここで言うハードウェアスクロールとは、 +ビデオメモリ上のデータを移動させることによって +スクリーン表示領域をスクロールさせることを指す)。 +特定の点字マシンではこの指定が必要となる。 +.\" .SH 著者 +.\" Linus Torvalds (他多数) +.SH 関連項目 .BR lilo.conf (5), .BR klogd (8), .BR lilo (8), .BR mount (8), .BR rdev (8) -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÎÂçÉôʬ¤Ï Paul Gortmaker ¤Ë¤è¤ë -Boot Parameter HOWTO (version 1.0.1) ¤ò´ð¤Ë¤·¤Æ¤¤¤ë¡£ -¤³¤Î (¤¢¤ë¤¤¤ÏºÇ¿·¤Î) HOWTO ¤ò¤¢¤¿¤ì¤Ð¡¢ -¤µ¤é¤Ë¿¤¯¤Î¾ðÊó¤¬Æþ¼ê¤Ç¤­¤ë¤À¤í¤¦¡£ -ºÇ¿·¤Î¾ðÊó¸»¤Ï +このマニュアルページの大部分は Paul Gortmaker による +Boot Parameter HOWTO (version 1.0.1) を基にしている。 +この (あるいは最新の) HOWTO をあたれば、 +さらに多くの情報が入手できるだろう。 +最新の情報源は .I /usr/src/linux/Documentation/kernel-parameters.txt -¤Ç¤¢¤ë¡£ +である。 -(ÌõÃí) Boot Parameter HOWTO ¤Ï¸½ºß BootPrompt-HOWTO ¤È¤·¤Æ -¥á¥ó¥Æ¥Ê¥ó¥¹¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ËÙ¹¾À¿°ì¤µ¤ó¤Ë¤è¤ëÆüËܸìÈǤϡ¢ +(訳注) Boot Parameter HOWTO は現在 BootPrompt-HOWTO として +メンテナンスされています。堀江誠一さんによる日本語版は、 .UR http://www.linux.or.jp/JF/JFdocs/BootPrompt-HOWTO.html http://www.linux.or.jp/JF/JFdocs/BootPrompt-HOWTO.html .UE -¤Ë¤¢¤ê¤Þ¤¹¡£±Ñ¸ìÈÇ¥ª¥ê¥¸¥Ê¥ë¤Ï¡¢ +にあります。英語版オリジナルは、 .UR http://linuxdoc.org/HOWTO/BootPrompt-HOWTO.html http://linuxdoc.org/HOWTO/BootPrompt-HOWTO.html .UE -¤Ë¤¢¤ê¤Þ¤¹¡£ -¤¬¡¢¤¤¤º¤ì¤â May 1999 ¤Þ¤Ç¤Î¤â¤Î¤Ê¤Î¤Ç¤ä¤ä¸Å¤¤¤Ç¤¹¡£ +にあります。 +が、いずれも May 1999 までのものなのでやや古いです。 diff --git a/release/man7/capabilities.7 b/release/man7/capabilities.7 index 119c76bb..a47d344b 100644 --- a/release/man7/capabilities.7 +++ b/release/man7/capabilities.7 @@ -53,205 +53,205 @@ .\" Updated 2010-04-11, Akihiro MOTOKI, LDP v3.24 .\" .TH CAPABILITIES 7 2010-06-19 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -capabilities \- Linux ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤Î³µÍ× -.SH ÀâÌÀ -¸¢¸Â¤Î¥Á¥§¥Ã¥¯¤ò¹Ô¤¦´ÑÅÀ¤«¤é¸«¤ë¤È¡¢ÅÁÅýŪ¤Ê UNIX ¤Î¼ÂÁõ¤Ç¤Ï -¥×¥í¥»¥¹¤ÏÆó¤Ä¤Î¥«¥Æ¥´¥ê¤ËʬÎà¤Ç¤­¤ë: -.I Æø¢ -¥×¥í¥»¥¹ (¼Â¸ú¥æ¡¼¥¶ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¡£¥æ¡¼¥¶ID 0 ¤Ï -¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤ä root ¤È¸Æ¤Ð¤ì¤ë) ¤È -.I ÈóÆø¢ -¥×¥í¥»¥¹ (¼Â¸ú¥æ¡¼¥¶ID ¤¬ 0 °Ê³°¤Î¥×¥í¥»¥¹) ¤Ç¤¢¤ë¡£ -ÈóÆø¢¥×¥í¥»¥¹¤Ç¤Ï¡¢¥×¥í¥»¥¹¤Î»ñ³Ê¾ðÊó (Ä̾ï¤Ï¡¢¼Â¸úUID ¡¢¼Â¸úGID -¤ÈÄɲäΥ°¥ë¡¼¥×¥ê¥¹¥È) ¤Ë´ð¤Å¤¯¸¢¸Â¥Á¥§¥Ã¥¯¤¬¹Ô¤ï¤ì¤ë¤Î¤ËÂФ·¡¢ -Æø¢¥×¥í¥»¥¹¤Ç¤ÏÁ´¤Æ¤Î¥«¡¼¥Í¥ë¤Î¸¢¸Â¥Á¥§¥Ã¥¯¤¬¥Ð¥¤¥Ñ¥¹¤µ¤ì¤ë¡£ +.SH 名前 +capabilities \- Linux のケーパビリティ (capability) の概要 +.SH 説明 +権限のチェックを行う観点から見ると、伝統的な UNIX の実装では +プロセスは二つのカテゴリに分類できる: +.I 特権 +プロセス (実効ユーザID が 0 のプロセス。ユーザID 0 は +スーパーユーザや root と呼ばれる) と +.I 非特権 +プロセス (実効ユーザID が 0 以外のプロセス) である。 +非特権プロセスでは、プロセスの資格情報 (通常は、実効UID 、実効GID +と追加のグループリスト) に基づく権限チェックが行われるのに対し、 +特権プロセスでは全てのカーネルの権限チェックがバイパスされる。 -¥Ð¡¼¥¸¥ç¥ó 2.2 °Ê¹ß¤Î Linux ¤Ç¤Ï¡¢ -¤³¤ì¤Þ¤Ç¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ë·ë¤ÓÉÕ¤±¤é¤ì¤Æ¤­¤¿¸¢¸Â¤ò¡¢ -¤¤¤¯¤Ä¤«¤Î¥°¥ë¡¼¥×¤Ëʬ³ä¤·¤Æ¤¤¤ë¡£¤³¤ì¤é¤Î¥°¥ë¡¼¥×¤Ï -.IR ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) -¤È¸Æ¤Ð¤ì¡¢¥°¥ë¡¼¥×Ëè¤ËÆÈΩ¤ËÍ­¸ú¡¢Ìµ¸ú¤òÀßÄê¤Ç¤­¤ë¡£ -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ï¥¹¥ì¥Ã¥Éñ°Ì¤Î°À­¤Ç¤¢¤ë¡£ +バージョン 2.2 以降の Linux では、 +これまでスーパーユーザに結び付けられてきた権限を、 +いくつかのグループに分割している。これらのグループは +.IR ケーパビリティ (capability) +と呼ばれ、グループ毎に独立に有効、無効を設定できる。 +ケーパビリティはスレッド単位の属性である。 .\" -.SS ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¥ê¥¹¥È -°Ê²¼¤Î¥ê¥¹¥È¤Ï¡¢ -Linux ¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤È -³Æ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬µö²Ä¤¹¤ëÁàºî¤ÈÆ°ºî¤ò¤Þ¤È¤á¤¿¤â¤Î¤Ç¤¢¤ë¡£ +.SS ケーパビリティのリスト +以下のリストは、 +Linux で実装されているケーパビリティと +各ケーパビリティが許可する操作と動作をまとめたものである。 .TP -.BR CAP_AUDIT_CONTROL " (Linux 2.6.11 °Ê¹ß)" -¥«¡¼¥Í¥ë´Æºº (audit) ¤ÎÍ­¸ú̵¸ú¤ÎÀÚ¤êÂؤ¨¡¢ -´Æºº¤Î¥Õ¥£¥ë¥¿¡¦¥ë¡¼¥ë¤ÎÊѹ¹¡¢ -´Æºº¤Î¾õ¶·¤ä¥Õ¥£¥ë¥¿¡¦¥ë¡¼¥ë¤Î¼èÆÀ¤¬¤Ç¤­¤ë¡£ +.BR CAP_AUDIT_CONTROL " (Linux 2.6.11 以降)" +カーネル監査 (audit) の有効無効の切り替え、 +監査のフィルタ・ルールの変更、 +監査の状況やフィルタ・ルールの取得ができる。 .TP -.BR CAP_AUDIT_WRITE " (Linux 2.6.11 °Ê¹ß)" -¥«¡¼¥Í¥ë´Æºº¤Î¥í¥°¤Ë¥ì¥³¡¼¥É¤ò½ñ¤­¹þ¤à¡£ +.BR CAP_AUDIT_WRITE " (Linux 2.6.11 以降)" +カーネル監査のログにレコードを書き込む。 .TP .B CAP_CHOWN -¥Õ¥¡¥¤¥ë¤Î UID ¤ÈGID ¤òǤ°Õ¤ËÊѹ¹¤¹¤ë +ファイルの UID とGID を任意に変更する .RB ( chown (2) -»²¾È)¡£ +参照)。 .TP .B CAP_DAC_OVERRIDE -¥Õ¥¡¥¤¥ë¤ÎÆɤ߽Ф·¡¢½ñ¤­¹þ¤ß¡¢¼Â¹Ô¤Î¸¢¸Â¥Á¥§¥Ã¥¯¤ò¥Ð¥¤¥Ñ¥¹¤¹¤ë -(DAC ¤Ï "discretionary access control (Ǥ°Õ¤Î¥¢¥¯¥»¥¹À©¸æ)" ¤Îά¤Ç¤¢¤ë)¡£ +ファイルの読み出し、書き込み、実行の権限チェックをバイパスする +(DAC は "discretionary access control (任意のアクセス制御)" の略である)。 .TP .B CAP_DAC_READ_SEARCH -¥Õ¥¡¥¤¥ë¤ÎÆɤ߽Ф·¸¢¸Â¤Î¥Á¥§¥Ã¥¯¤È¥Ç¥£¥ì¥¯¥È¥ê¤ÎÆɤ߽Ф·¤È¼Â¹Ô -¤Î¸¢¸Â¥Á¥§¥Ã¥¯¤ò¥Ð¥¤¥Ñ¥¹¤¹¤ë¡£ +ファイルの読み出し権限のチェックとディレクトリの読み出しと実行 +の権限チェックをバイパスする。 .TP .B CAP_FOWNER .PD 0 .RS .IP * 2 -Ä̾¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID ¤¬¥Õ¥¡¥¤¥ë¤Î UID ¤Ë°ìÃפ¹¤ë¤³¤È¤¬ -Í׵ᤵ¤ì¤ëÁàºî (Î㤨¤Ð +通常、プロセスのファイルシステム UID がファイルの UID に一致することが +要求される操作 (例えば .BR chmod (2), .BR utime (2)) -¤Ë¤ª¤±¤ë¸¢¸Â¥Á¥§¥Ã¥¯¤ò¥Ð¥¤¥Ñ¥¹¤¹¤ë¡£ -⤷¡¢ +における権限チェックをバイパスする。 +但し、 .B CAP_DAC_OVERRIDE -¤« +か .B CAP_DAC_READ_SEARCH -¤Ë¤è¤ê¥Á¥§¥Ã¥¯¤¬¹Ô¤ï¤ì¤ëÁàºî¤Ï½ü¤¯¡£ +によりチェックが行われる操作は除く。 .IP * -Ǥ°Õ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ³ÈÄ¥¥Õ¥¡¥¤¥ë°À­¤òÀßÄꤹ¤ë +任意のファイルに対して拡張ファイル属性を設定する .RB ( chattr (1) -»²¾È)¡£ +参照)。 .IP * -Ǥ°Õ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¥¢¥¯¥»¥¹À©¸æ¥ê¥¹¥È (ACL) ¤òÀßÄꤹ¤ë¡£ +任意のファイルに対してアクセス制御リスト (ACL) を設定する。 .IP * -¥Õ¥¡¥¤¥ë¤Îºï½ü¤ÎºÝ¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¥¹¥Æ¥£¥Ã¥­¡¼¥Ó¥Ã¥È¤ò̵»ë¤¹¤ë¡£ +ファイルの削除の際にディレクトリのスティッキービットを無視する。 .IP * .BR open (2) -¤ä +や .BR fcntl (2) -¤ÇǤ°Õ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ +で任意のファイルに対して .B O_NOATIME -¤ò»ØÄꤹ¤ë¡£ +を指定する。 .RE .PD .TP .B CAP_FSETID -¥Õ¥¡¥¤¥ë¤¬Êѹ¹¤µ¤ì¤¿¤È¤­¤Ë set-user-ID ¤Èset-group-ID ¤Îµö²Ä¥Ó¥Ã¥È¤ò¥¯¥ê¥¢ -¤·¤Ê¤¤¡£¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à GID ¤ÈÄɲäΠGID ¤Î¤¤¤º¤ì¤È¤â -GID ¤¬°ìÃפ·¤Ê¤¤¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ set-group-ID ¥Ó¥Ã¥È¤òÀßÄꤹ¤ë¡£ +ファイルが変更されたときに set-user-ID とset-group-ID の許可ビットをクリア +しない。呼び出し元プロセスのファイルシステム GID と追加の GID のいずれとも +GID が一致しないファイルに対して set-group-ID ビットを設定する。 .TP .B CAP_IPC_LOCK -¥á¥â¥ê¡¼¤Î¥í¥Ã¥¯ +メモリーのロック .RB ( mlock (2), .BR mlockall (2), .BR mmap (2), .BR shmctl (2)) -¤ò¹Ô¤¦¡£ +を行う。 .TP .B CAP_IPC_OWNER -System V IPC ¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ¹¤ëÁàºî¤Ë´Ø¤·¤Æ¸¢¸Â¥Á¥§¥Ã¥¯¤ò¥Ð¥¤¥Ñ¥¹¤¹¤ë¡£ +System V IPC オブジェクトに対する操作に関して権限チェックをバイパスする。 .TP .B CAP_KILL -¥·¥°¥Ê¥ë¤òÁ÷¿®¤¹¤ëºÝ¤Ë¸¢¸Â¥Á¥§¥Ã¥¯¤ò¥Ð¥¤¥Ñ¥¹¤¹¤ë +シグナルを送信する際に権限チェックをバイパスする .RB ( kill (2) -»²¾È)¡£¤³¤ì¤Ë¤Ï +参照)。これには .BR ioctl (2) -¤Î +の .B KDSIGACCEPT -Áàºî¤Î»ÈÍѤâ´Þ¤Þ¤ì¤ë¡£ +操作の使用も含まれる。 .\" FIXME CAP_KILL also has an effect for threads + setting child .\" termination signal to other than SIGCHLD: without this .\" capability, the termination signal reverts to SIGCHLD .\" if the child does an exec(). What is the rationale .\" for this? .TP -.BR CAP_LEASE " (Linux 2.4 °Ê¹ß)" -Ǥ°Õ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ -¥Õ¥¡¥¤¥ë¥ê¡¼¥¹¤òÀßÄꤹ¤ë +.BR CAP_LEASE " (Linux 2.4 以降)" +任意のファイルに対して +ファイルリースを設定する .RB ( fcntl (2) -»²¾È)¡£ +参照)。 .TP .B CAP_LINUX_IMMUTABLE -³ÈÄ¥¥Õ¥¡¥¤¥ë°À­ +拡張ファイル属性 .B FS_APPEND_FL -¤È +と .B FS_IMMUTABLE_FL -¤òÀßÄꤹ¤ë +を設定する .RB ( chattr (1) -»²¾È)¡£ -.\" ¤³¤ì¤é¤Î°À­¤Ï ext2, ext3, Reiserfs, XFS, JFS ¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +参照)。 +.\" これらの属性は ext2, ext3, Reiserfs, XFS, JFS で利用可能である。 .TP -.BR CAP_MAC_ADMIN " (Linux 2.6.25 °Ê¹ß)" -¶¯À©¥¢¥¯¥»¥¹À©¸æ (MAC) ¤ò¾å½ñ¤­¤¹¤ë¡£ -Smack Linux Security Module (LSM) ÍѤ˼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +.BR CAP_MAC_ADMIN " (Linux 2.6.25 以降)" +強制アクセス制御 (MAC) を上書きする。 +Smack Linux Security Module (LSM) 用に実装されている。 .TP -.BR CAP_MAC_OVERRIDE " (Linux 2.6.25 °Ê¹ß)" -MAC ¤ÎÀßÄê¤ä¾õÂÖ¤òÊѹ¹¤¹¤ë¡£ -Smack LSM ÍѤ˼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +.BR CAP_MAC_OVERRIDE " (Linux 2.6.25 以降)" +MAC の設定や状態を変更する。 +Smack LSM 用に実装されている。 .TP -.BR CAP_MKNOD " (Linux 2.4 °Ê¹ß)" -(Linux 2.4 °Ê¹ß) +.BR CAP_MKNOD " (Linux 2.4 以降)" +(Linux 2.4 以降) .BR mknod (2) -¤ò»ÈÍѤ·¤Æ¥¹¥Ú¥·¥ã¥ë¡¦¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¡£ +を使用してスペシャル・ファイルを作成する。 .TP .B CAP_NET_ADMIN -³Æ¼ï¤Î¥Í¥Ã¥È¥ï¡¼¥¯´ØÏ¢¤ÎÁàºî¤ò¼Â¹Ô¤¹¤ë¡£ -(Î㤨¤Ð¡¢Æø¢¤¬É¬Íפʥ½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ë¡¢¥Þ¥ë¥Á¥­¥ã¥¹¥È¤òÍ­¸ú¤Ë¤¹¤ë¡¢ -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÀßÄꤹ¤ë¡¢¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤òÊѹ¹¤¹¤ë¤Ê¤É) +各種のネットワーク関連の操作を実行する。 +(例えば、特権が必要なソケットオプションを設定する、マルチキャストを有効にする、 +インターフェースを設定する、ルーティングテーブルを変更するなど) .TP .B CAP_NET_BIND_SERVICE -¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥É¥á¥¤¥ó¤ÎÆø¢¥Ý¡¼¥È (¥Ý¡¼¥ÈÈֹ椬 1024 ÈÖ̤Ëþ) -¤ò¥Ð¥¤¥ó¥É¤Ç¤­¤ë¡£ +インターネットドメインの特権ポート (ポート番号が 1024 番未満) +をバインドできる。 .TP .B CAP_NET_BROADCAST -(̤»ÈÍÑ) ¥½¥±¥Ã¥È¤Î¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¤È¡¢¥Þ¥ë¥Á¥­¥ã¥¹¥È¤ÎÂÔ¤Á¼õ¤±¤ò¹Ô¤¦¡£ +(未使用) ソケットのブロードキャストと、マルチキャストの待ち受けを行う。 .TP .B CAP_NET_RAW -RAW ¥½¥±¥Ã¥È¤È PACKET ¥½¥±¥Ã¥È¤ò»ÈÍѤ¹¤ë¡£ -.\" ¤Þ¤¿¡¢³Æ¼ï¤Î IP ¥ª¥×¥·¥ç¥ó¤È SO_BINDTODEVICE ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤǤ­¤ë¡£ +RAW ソケットと PACKET ソケットを使用する。 +.\" また、各種の IP オプションと SO_BINDTODEVICE ソケットオプションを使用できる。 .TP .B CAP_SETGID -¥×¥í¥»¥¹¤Î GID ¤ÈÄɲäΠGID ¥ê¥¹¥È¤ËÂФ¹¤ëǤ°Õ¤ÎÁàºî¤ò¹Ô¤¦¡£ -UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È·Ðͳ¤Ç¥½¥±¥Ã¥È¤Î»ñ³Ê¾ðÊó (credential) ¤òÅϤ¹ºÝ¤Ë -µ¶¤Î GID ¤òÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¡£ +プロセスの GID と追加の GID リストに対する任意の操作を行う。 +UNIX ドメインソケット経由でソケットの資格情報 (credential) を渡す際に +偽の GID を渡すことができる。 .TP -.BR CAP_SETFCAP " (Linux 2.6.24 °Ê¹ß)" -¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÀßÄꤹ¤ë¡£ +.BR CAP_SETFCAP " (Linux 2.6.24 以降)" +ファイルケーパビリティを設定する。 .TP .B CAP_SETPCAP -¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç: -¸Æ¤Ó½Ð¤·¸µ¤¬µö²Ä¤µ¤ì¤Æ¤¤¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë´Þ¤Þ¤ì¤ëǤ°Õ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¡¢ -¾¤Î¥×¥í¥»¥¹¤ËÉÕÍ¿¤·¤¿¤ê¡¢ºï½ü¤·¤¿¤ê¤Ç¤­¤ë¡£ -(¥«¡¼¥Í¥ë¤¬¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¡¢ +ファイルケーパビリティがサポートされていない場合: +呼び出し元が許可されているケーパビリティセットに含まれる任意のケーパビリティを、 +他のプロセスに付与したり、削除したりできる。 +(カーネルがファイルケーパビリティをサポートしている場合、 .B CAP_SETPCAP -¤Ï¤³¤ÎÌò³ä¤ò»ý¤¿¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¡¢¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥«¡¼¥Í¥ë¤Ç¤Ï +はこの役割を持たない。 +なぜなら、ファイルケーパビリティをサポートしているカーネルでは .B CAP_SETPCAP -¤ÏÁ´¤¯Ê̤ΰÕÌ£¤ò»ý¤Ä¤«¤é¤Ç¤¢¤ë¡£) +は全く別の意味を持つからである。) -¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç: -¸Æ¤Ó½Ð¤·¸µ¥¹¥ì¥Ã¥É¤Î¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤ÎǤ°Õ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò -¼«¿È¤Î·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ËÄɲäǤ­¤ë¡£ +ファイルケーパビリティがサポートされている場合: +呼び出し元スレッドのバウンディングセットの任意のケーパビリティを +自身の継承可能ケーパビリティセットに追加できる。 .RB ( prctl (2) .BR PR_CAPBSET_DROP -¤ò»È¤Ã¤Æ) -¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤«¤é¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òºï½ü¤Ç¤­¤ë¡£ +を使って) +バウンディングセットからケーパビリティを削除できる。 .I securebits -¥Õ¥é¥°¤òÊѹ¹¤Ç¤­¤ë¡£ +フラグを変更できる。 .TP .B CAP_SETUID -¥×¥í¥»¥¹¤Î UID ¤ËÂФ¹¤ëǤ°Õ¤ÎÁàºî +プロセスの UID に対する任意の操作 .RB ( setuid (2), .BR setreuid (2), .BR setresuid (2), .BR setfsuid (2)) -¤ò¹Ô¤¦¡£ -UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È·Ðͳ¤Ç¥½¥±¥Ã¥È¤Î»ñ³Ê¾ðÊó (credential) ¤òÅϤ¹ºÝ¤Ë -µ¶¤Î UID ¤òÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¡£ +を行う。 +UNIX ドメインソケット経由でソケットの資格情報 (credential) を渡す際に +偽の UID を渡すことができる。 .\" FIXME CAP_SETUID also an effect in exec(); document this. .TP .B CAP_SYS_ADMIN .PD 0 .RS .IP * 2 -°Ê²¼¤Î¥·¥¹¥Æ¥à´ÉÍýÍѤÎÁàºî¤ò¼Â¹Ô¤¹¤ë: +以下のシステム管理用の操作を実行する: .BR quotactl (2), .BR mount (2), .BR umount (2), @@ -260,300 +260,300 @@ UNIX .BR sethostname (2), .BR setdomainname (2). .IP * -Ǥ°Õ¤Î System V IPC ¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ¹¤ë +任意の System V IPC オブジェクトに対する .B IPC_SET -¤È +と .B IPC_RMID -Áàºî¤ò¼Â¹Ô¤¹¤ë¡£ +操作を実行する。 .IP * -³Èĥ°À­ +拡張属性 .I trusted -¤È +と .I security -¤ËÂФ¹¤ëÁàºî¤ò¼Â¹Ô¤¹¤ë +に対する操作を実行する .RB ( attr (5) -»²¾È)¡£ +参照)。 .IP * .BR lookup_dcookie (2) -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .IP * .BR ioprio_set (2) -¤ò»È¤Ã¤Æ I/O ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹ +を使って I/O スケジューリングクラス .BR IOPRIO_CLASS_RT , .B IOPRIO_CLASS_IDLE -¤ò³ä¤êÅö¤Æ¤ë +を割り当てる .RB ( IOPRIO_CLASS_IDLE -¤Ï Linux 2.6.25 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¤ß)¡£ +は Linux 2.6.25 より前のバージョンのみ)。 .IP * -¥½¥±¥Ã¥È¤Î»ñ³Ê¾ðÊó (credential) ¤òÅϤ¹ºÝ¤Ëµ¶¤Î UID ¤òÅϤ¹¡£ +ソケットの資格情報 (credential) を渡す際に偽の UID を渡す。 .IP * -¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë (Î㤨¤Ð +ファイルをオープンするシステムコール (例えば .BR accept (2), .BR execve (2), .BR open (2), .BR pipe (2)) -¤Ç¥·¥¹¥Æ¥àÁ´ÂΤǥª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¿ô¤Î¾å¸Â +でシステム全体でオープンできるファイル数の上限 .I /proc/sys/fs/file-max -¤òĶ²á¤¹¤ë¡£ +を超過する。 .IP * .BR clone (2) -¤È +と .BR unshare (2) -¤Ç +で .B CLONE_NEWNS -¥Õ¥é¥°¤òÍøÍѤ¹¤ë¡£ +フラグを利用する。 .IP * .BR keyctl (2) -¤Î +の .B KEYCTL_CHOWN -¤È +と .B KEYCTL_SETPERM -Áàºî¤ò¼Â¹Ô¤¹¤ë¡£ +操作を実行する。 .IP * .BR madvise (2) -¤Î +の .B MADV_HWPOISON -Áàºî¤ò¼Â¹Ô¤¹¤ë¡£ +操作を実行する。 .RE .PD .TP .B CAP_SYS_BOOT .BR reboot (2) -¤È +と .BR kexec_load (2) -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .TP .B CAP_SYS_CHROOT .BR chroot (2). -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .TP .B CAP_SYS_MODULE -¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¤Î¥í¡¼¥É¡¢¥¢¥ó¥í¡¼¥É¤ò¹Ô¤¦ +カーネルモジュールのロード、アンロードを行う .RB ( init_module (2) -¤È +と .BR delete_module (2) -¤ò»²¾È¤Î¤³¤È)¡£ -¥Ð¡¼¥¸¥ç¥ó 2.6.25 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¡¢ -¥·¥¹¥Æ¥àÁ´ÂΤΥ±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È (capability bounding set) -¤«¤é¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò³°¤¹¡£ +を参照のこと)。 +バージョン 2.6.25 より前のカーネルで、 +システム全体のケーパビリティバウンディングセット (capability bounding set) +からケーパビリティを外す。 .TP .B CAP_SYS_NICE .PD 0 .RS .IP * 2 -¥×¥í¥»¥¹¤Î nice Ãͤΰú¤­¾å¤² +プロセスの nice 値の引き上げ .RB ( nice (2), .BR setpriority (2)) -¤ä¡¢Ç¤°Õ¤Î¥×¥í¥»¥¹¤Î nice ÃͤÎÊѹ¹¤ò¹Ô¤¦¡£ +や、任意のプロセスの nice 値の変更を行う。 .IP * -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤ËÂФ¹¤ë¥ê¥¢¥ë¥¿¥¤¥à¡¦¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥Ý¥ê¥·¡¼¤È¡¢ -Ǥ°Õ¤Î¥×¥í¥»¥¹¤ËÂФ¹¤ë¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥Ý¥ê¥·¡¼¤ÈÍ¥ÀèÅÙ¤òÀßÄꤹ¤ë +呼び出し元プロセスに対するリアルタイム・スケジューリングポリシーと、 +任意のプロセスに対するスケジューリングポリシーと優先度を設定する .RB ( sched_setscheduler (2), -.BR sched_setparam (2))¡£ +.BR sched_setparam (2))。 .IP * -Ǥ°Õ¤Î¥×¥í¥»¥¹¤ËÂФ¹¤ë CPU affinity ¤òÀßÄê¤Ç¤­¤ë -.RB ( sched_setaffinity (2))¡£ +任意のプロセスに対する CPU affinity を設定できる +.RB ( sched_setaffinity (2))。 .IP * -Ǥ°Õ¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ I/O ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¯¥é¥¹¤ÈÍ¥ÀèÅÙ¤òÀßÄê¤Ç¤­¤ë -.RB ( ioprio_set (2))¡£ +任意のプロセスに対して I/O スケジューリングクラスと優先度を設定できる +.RB ( ioprio_set (2))。 .IP * .BR migrate_pages (2) -¤òǤ°Õ¤Î¥×¥í¥»¥¹¤ËŬÍѤ·¡¢¥×¥í¥»¥¹¤òǤ°Õ¤Î¥Î¡¼¥É¤Ë°ÜÆ°¤¹¤ë¡£ +を任意のプロセスに適用し、プロセスを任意のノードに移動する。 .\" FIXME CAP_SYS_NICE also has the following effect for .\" migrate_pages(2): .\" do_migrate_pages(mm, &old, &new, .\" capable(CAP_SYS_NICE) ? MPOL_MF_MOVE_ALL : MPOL_MF_MOVE); .IP * .BR move_pages (2) -¤òǤ°Õ¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ¹Ô¤¦¡£ +を任意のプロセスに対して行う。 .IP * .BR mbind (2) -¤È +と .BR move_pages (2) -¤Ç +で .B MPOL_MF_MOVE_ALL -¥Õ¥é¥°¤ò»ÈÍѤ¹¤ë¡£ +フラグを使用する。 .RE .PD .TP .B CAP_SYS_PACCT .BR acct (2) -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .TP .B CAP_SYS_PTRACE .BR ptrace (2) -¤ò»È¤Ã¤ÆǤ°Õ¤Î¥×¥í¥»¥¹¤ò¥È¥ì¡¼¥¹¤¹¤ë¡£ -Ǥ°Õ¤Î¥×¥í¥»¥¹¤Ë +を使って任意のプロセスをトレースする。 +任意のプロセスに .BR get_robust_list (2) -¤òŬÍѤ¹¤ë¡£ +を適用する。 .TP .B CAP_SYS_RAWIO -I/O ¥Ý¡¼¥ÈÁàºî¤ò¼Â¹Ô¤¹¤ë +I/O ポート操作を実行する .RB ( iopl (2) -¡¢ -.BR ioperm (2))¡£ +、 +.BR ioperm (2))。 .I /proc/kcore -¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ +にアクセスできる。 .TP .B CAP_SYS_RESOURCE .PD 0 .RS .IP * 2 -ext2 ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤ÎͽÌ󤵤ì¤Æ¤¤¤ëÎΰè¤ò»ÈÍѤ¹¤ë¡£ +ext2 ファイルシステム上の予約されている領域を使用する。 .IP * -ext3 ¤Î¥¸¥ã¡¼¥Ê¥ëµ¡Ç½¤òÀ©¸æ¤¹¤ë +ext3 のジャーナル機能を制御する .BR ioctl (2) -¤ò»ÈÍѤ¹¤ë¡£ +を使用する。 .IP * -¥Ç¥£¥¹¥¯ quota ¤Î¾å¸Â¤ò¾å½ñ¤­¤¹¤ë¡£ +ディスク quota の上限を上書きする。 .IP * -¥ê¥½¡¼¥¹¾å¸Â¤òÁý¤ä¤¹ -.RB ( setrlimit (2))¡£ +リソース上限を増やす +.RB ( setrlimit (2))。 .IP * .B RLIMIT_NPROC -¥ê¥½¡¼¥¹À©¸Â¤ò¾å½ñ¤­¤¹¤ë¡£ +リソース制限を上書きする。 .IP * -¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ë´Ø¤¹¤ë¾å¸Â +メッセージキューに関する上限 .I msg_qbytes -¤ò +を .I /proc/sys/kernel/msgmnb -¤Ë»ØÄꤵ¤ì¤Æ¤¤¤ë¾å¸Â¤è¤ê¤âÂ礭¤¯ÀßÄꤹ¤ë +に指定されている上限よりも大きく設定する .RB ( msgop (2) -¤È +と .BR msgctl (2) -»²¾È)¡£ +参照)。 .IP * .I /proc/sys/fs/pipe-max-size -¤Ë»ØÄꤵ¤ì¤Æ¤¤¤ë¾å¸Â¤òĶ¤¨¤Æ¥Ñ¥¤¥×¤ÎÍÆÎ̤òÁý¤ä¤¹¤Î¤Ë +に指定されている上限を超えてパイプの容量を増やすのに .B F_SETPIPE_SZ -¤ò»ÈÍѤ¹¤ë¡£ +を使用する。 .RE .PD .TP .B CAP_SYS_TIME -¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤òÊѹ¹¤¹¤ë +システムクロックを変更する .RB ( settimeofday (2), .BR stime (2), -.BR adjtimex (2))¡£ -¥ê¥¢¥ë¥¿¥¤¥à (¥Ï¡¼¥É¥¦¥§¥¢) ¥¯¥í¥Ã¥¯¤òÊѹ¹¤¹¤ë¡£ +.BR adjtimex (2))。 +リアルタイム (ハードウェア) クロックを変更する。 .TP .B CAP_SYS_TTY_CONFIG .BR vhangup (2) -¤ò¸Æ¤Ó½Ð¤¹¡£ +を呼び出す。 .\" -.SS ²áµî¤È¸½ºß¤Î¼ÂÁõ -´°Á´¤Ê·Á¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¼ÂÁõ¤¹¤ë¤Ë¤Ï¡¢°Ê²¼¤ÎÍ×·ï¤òËþ¤¿¤¹É¬Íפ¬¤¢¤ë¡§ +.SS 過去と現在の実装 +完全な形のケーパビリティを実装するには、以下の要件を満たす必要がある: .IP 1. 3 -Á´¤Æ¤ÎÆø¢Áàºî¤Ë¤Ä¤¤¤Æ¡¢¥«¡¼¥Í¥ë¤Ï¤½¤Î¥¹¥ì¥Ã¥É¤Î¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë -ɬÍפʥ±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¤¢¤ë¤«¤ò³Îǧ¤¹¤ë¡£ +全ての特権操作について、カーネルはそのスレッドの実効ケーパビリティセットに +必要なケーパビリティがあるかを確認する。 .IP 2. -¥«¡¼¥Í¥ë¤Ç¡¢¤¢¤ë¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤òÊѹ¹¤·¤¿¤ê¡¢ -¼èÆÀ¤·¤¿¤ê¤Ç¤­¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Ä󶡤µ¤ì¤ë¡£ +カーネルで、あるスレッドのケーパビリティセットを変更したり、 +取得したりできるシステムコールが提供される。 .IP 3. -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¡¢¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤Ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÉÕÍ¿¤Ç¤­¡¢¥Õ¥¡¥¤¥ë -¼Â¹Ô»þ¤Ë¤½¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥×¥í¥»¥¹¤¬¼èÆÀ¤Ç¤­¤ë¤è¤¦¤Êµ¡Ç½¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ +ファイルシステムが、実行可能ファイルにケーパビリティを付与でき、ファイル +実行時にそのケーパビリティをプロセスが取得できるような機能をサポートする。 .PP -¥«¡¼¥Í¥ë 2.6.24 ¤è¤êÁ°¤Ç¤Ï¡¢ºÇ½é¤Î 2¤Ä¤ÎÍ×·ï¤Î¤ß¤¬Ëþ¤¿¤µ¤ì¤Æ¤¤¤ë¡£ -¥«¡¼¥Í¥ë 2.6.24 °Ê¹ß¤Ç¤Ï¡¢3¤Ä¤ÎÍ׷魯¤Ù¤Æ¤¬Ëþ¤¿¤µ¤ì¤Æ¤¤¤ë¡£ +カーネル 2.6.24 より前では、最初の 2つの要件のみが満たされている。 +カーネル 2.6.24 以降では、3つの要件すべてが満たされている。 .\" -.SS ¥¹¥ì¥Ã¥É¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È -³Æ¥¹¥ì¥Ã¥É¤Ï°Ê²¼¤Î 3¼ïÎà¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ò»ý¤Ä¡£³Æ¡¹¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ï -¾åµ­¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ÎÁȤ߹ç¤ï¤»¤Ç¤¢¤ë (Á´¤Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬Ìµ¸ú¤Ç¤â¤è¤¤)¡£ -.TP -.IR "µö²Ä (permitted)" : -¤½¤Î¥¹¥ì¥Ã¥É¤¬»ý¤Ä¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î -¸ÂÄêŪ¤Ê¥¹¡¼¥Ñ¡¼¥»¥Ã¥È¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï¡¢¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë +.SS スレッドケーパビリティセット +各スレッドは以下の 3種類のケーパビリティセットを持つ。各々のケーパビリティセットは +上記のケーパビリティの組み合わせである (全てのケーパビリティが無効でもよい)。 +.TP +.IR "許可 (permitted)" : +そのスレッドが持つことになっている実効ケーパビリティの +限定的なスーパーセットである。 +これは、実効ケーパビリティセットに .B CAP_SETPCAP -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¥¹¥ì¥Ã¥É¤¬·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë -ÄɲòÄǽ¤Ê¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¸ÂÄêŪ¤Ê¥¹¡¼¥Ñ¡¼¥»¥Ã¥È¤Ç¤â¤¢¤ë¡£ +ケーパビリティを持っていないスレッドが継承可能ケーパビリティセットに +追加可能なケーパビリティの限定的なスーパーセットでもある。 -µö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤«¤éºï½ü¤·¤Æ¤·¤Þ¤Ã¤¿¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ï¡¢ -(set-user-ID-root ¥×¥í¥°¥é¥à¤«¡¢ -¤½¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Çµö²Ä¤·¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤ò +許可ケーパビリティセットから削除してしまったケーパビリティは、 +(set-user-ID-root プログラムか、 +そのケーパビリティをファイルケーパビリティで許可しているプログラムを .BR execve (2) -¤·¤Ê¤¤¸Â¤ê¤Ï) ¤â¤¦°ìÅÙ³ÍÆÀ¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +しない限りは) もう一度獲得することはできない。 .TP -.IR "·Ñ¾µ²Äǽ (inheritable)" : +.IR "継承可能 (inheritable)" : .BR execve (2) -¤òÁ°¸å¤ÇÊÝ»ý¤µ¤ì¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ç¤¢¤ë¡£ -¤³¤Î»ÅÁȤߤò»È¤¦¤³¤È¤Ç¡¢¤¢¤ë¥×¥í¥»¥¹¤¬ +を前後で保持されるケーパビリティセットである。 +この仕組みを使うことで、あるプロセスが .BR execve (2) -¤ò¹Ô¤¦ºÝ¤Ë¿·¤·¤¤¥×¥í¥°¥é¥à¤Îµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤È¤·¤Æ -³ä¤êÅö¤Æ¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を行う際に新しいプログラムの許可ケーパビリティセットとして +割り当てるケーパビリティを指定することができる。 .TP -.IR "¼Â¸ú (effective)" : -¥«¡¼¥Í¥ë¤¬¥¹¥ì¥Ã¥É¤Î¸¢¸Â (permission) ¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤È¤­¤Ë -»ÈÍѤ¹¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ç¤¢¤ë¡£ +.IR "実効 (effective)" : +カーネルがスレッドの権限 (permission) をチェックするときに +使用するケーパビリティセットである。 .PP .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤ë»Ò¥×¥í¥»¥¹¤Ï¡¢¿Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£ +で作成される子プロセスは、親のケーパビリティセットのコピーを継承する。 .BR execve (2) -Ãæ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î°·¤¤¤Ë¤Ä¤¤¤Æ¤Ï²¼µ­¤ò»²¾È¤Î¤³¤È¡£ +中のケーパビリティの扱いについては下記を参照のこと。 .PP .BR capset (2) -¤ò»È¤¦¤È¡¢¥×¥í¥»¥¹¤Ï¼«Ê¬¼«¿È¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È -¤òÁàºî¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë (²¼µ­»²¾È)¡£ +を使うと、プロセスは自分自身のケーパビリティセット +を操作することができる (下記参照)。 .\" -.SS ¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ -¥«¡¼¥Í¥ë 2.6.24 °Ê¹ß¤Ç¤Ï¡¢ +.SS ファイルケーパビリティ +カーネル 2.6.24 以降では、 .BR setcap (8) -¤ò»È¤Ã¤Æ¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤òÂбþÉÕ¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ï +を使って実行ファイルにケーパビリティセットを対応付けることができる。 +ファイルケーパビリティセットは .I "security.capability" -¤È¤¤¤¦Ì¾Á°¤Î³Èĥ°À­¤ËÊݸ¤µ¤ì¤ë +という名前の拡張属性に保存される .RB ( setxattr (2) -»²¾È)¡£¤³¤Î³Èĥ°À­¤Ø¤Î½ñ¤­¹þ¤ß¤Ë¤Ï +参照)。この拡張属性への書き込みには .B CAP_SETFCAP -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ -¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤È¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎξÊý¤¬ -¹Í褵¤ì¡¢ +ケーパビリティが必要である。 +ファイルケーパビリティセットとスレッドのケーパビリティセットの両方が +考慮され、 .BR execve (2) -¸å¤Î¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤¬·èÄꤵ¤ì¤ë¡£ +後のスレッドのケーパビリティセットが決定される。 -3 ¤Ä¤Î¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +3 つのファイルケーパビリティセットが定義されている。 .TP -.IR "µö²Ä (Permitted)" " (°ÊÁ°¤Î" "¶¯À© (Forced)" "):" -¥¹¥ì¥Ã¥É¤Î·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ë´Ø¤ï¤é¤º¡¢¤½¤Î¥¹¥ì¥Ã¥É¤Ë¼«Æ°Åª¤Ë -ǧ¤á¤é¤ì¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡£ +.IR "許可 (Permitted)" " (以前の" "強制 (Forced)" "):" +スレッドの継承可能ケーパビリティに関わらず、そのスレッドに自動的に +認められるケーパビリティ。 .TP -.IR "·Ñ¾µ²Äǽ (Inheritable)" " (°ÊÁ°¤Î " "µöÍÆ (Allowed)" "):" -¤³¤Î¥»¥Ã¥È¤È¡¢¥¹¥ì¥Ã¥É¤Î·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤È¤Î -ÏÀÍýÀÑ (AND) ¤¬¤È¤é¤ì¡¢ +.IR "継承可能 (Inheritable)" " (以前の " "許容 (Allowed)" "):" +このセットと、スレッドの継承可能ケーパビリティセットとの +論理積 (AND) がとられ、 .BR execve (2) -¤Î¸å¤Ë¤½¤Î¥¹¥ì¥Ã¥É¤Îµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÇÍ­¸ú¤È¤Ê¤ë -·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬·èÄꤵ¤ì¤ë¡£ +の後にそのスレッドの許可ケーパビリティセットで有効となる +継承可能ケーパビリティが決定される。 .TP -.IR "¼Â¸ú (Effective)" : -¤³¤ì¤Ï½¸¹ç¤Ç¤Ï¤Ê¤¯¡¢1 ¥Ó¥Ã¥È¤Î¾ðÊó¤Ç¤¢¤ë¡£ -¤³¤Î¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢ +.IR "実効 (Effective)" : +これは集合ではなく、1 ビットの情報である。 +このビットがセットされていると、 .BR execve (2) -¼Â¹ÔÃæ¤Ë¡¢¤½¤Î¥¹¥ì¥Ã¥É¤Î¿·¤·¤¤µö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬Á´¤Æ -¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£½¸¹ç¤Ë¤ª¤¤¤Æ¤â¥»¥Ã¥È¤µ¤ì¤ë¡£ -¤³¤Î¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ +実行中に、そのスレッドの新しい許可ケーパビリティが全て +実効ケーパビリティ集合においてもセットされる。 +このビットがセットされていない場合、 .BR execve (2) -¸å¤Ë¤Ï¿·¤·¤¤µö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¤É¤ì¤â¿·¤·¤¤¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£½¸¹ç -¤Ë¥»¥Ã¥È¤µ¤ì¤Ê¤¤¡£ +後には新しい許可ケーパビリティのどれも新しい実効ケーパビリティ集合 +にセットされない。 -¥Õ¥¡¥¤¥ë¤Î¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥Ó¥Ã¥È¤òÍ­¸ú¤Ë¤¹¤ë¤È¤¤¤¦¤Î¤Ï¡¢ +ファイルの実効ケーパビリティビットを有効にするというのは、 .BR execve (2) -¼Â¹Ô»þ¤Ë¡¢¥Õ¥¡¥¤¥ë¤Îµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤È·Ñ¾µ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ËÂбþ¤¹¤ë¤â¤Î¤¬ -¥¹¥ì¥Ã¥É¤Îµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤È¤·¤Æ¥»¥Ã¥È¤µ¤ì¤ë¤¬¡¢ -¤³¤ì¤¬¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë¤â¥»¥Ã¥È¤µ¤ì¤ë¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë -(¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ÎÊÑ´¹¥ë¡¼¥ë¤Ï²¼µ­»²¾È)¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¥Õ¥¡¥¤¥ë¤Ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò³ä¤êÅö¤Æ¤ëºÝ +実行時に、ファイルの許可ケーパビリティと継承ケーパビリティに対応するものが +スレッドの許可ケーパビリティセットとしてセットされるが、 +これが実効ケーパビリティセットにもセットされるということである +(ケーパビリティの変換ルールは下記参照)。 +したがって、ファイルにケーパビリティを割り当てる際 .RB ( setcap (8), .BR cap_set_file (3), -.BR cap_set_fd (3))¡¢ -¤¤¤º¤ì¤«¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ËÂФ·¤Æ¼Â¸ú¥Õ¥é¥°¤òÍ­¸ú¤È»ØÄꤹ¤ë¾ì¹ç¡¢ -µö²Ä¥Õ¥é¥°¤ä·Ñ¾µ²Äǽ¥Õ¥é¥°¤òÍ­¸ú¤Ë¤·¤¿Â¾¤ÎÁ´¤Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ -¤Ë¤Ä¤¤¤Æ¤â¼Â¸ú¥Õ¥é¥°¤òÍ­¸ú¤È»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +.BR cap_set_fd (3))、 +いずれかのケーパビリティに対して実効フラグを有効と指定する場合、 +許可フラグや継承可能フラグを有効にした他の全てのケーパビリティ +についても実効フラグを有効と指定しなければならない。 .\" -.SS "execve() Ãæ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ÎÊÑ´¹" +.SS "execve() 中のケーパビリティの変換" .PP .BR execve (2) -¼Â¹Ô»þ¤Ë¡¢¥«¡¼¥Í¥ë¤Ï¥×¥í¥»¥¹¤Î¿·¤·¤¤¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¼¡¤Î -¥¢¥ë¥´¥ê¥º¥à¤òÍѤ¤¤Æ·×»»¤¹¤ë¡§ +実行時に、カーネルはプロセスの新しいケーパビリティを次の +アルゴリズムを用いて計算する: .in +4n .nf @@ -562,320 +562,320 @@ P'(permitted) = (P(inheritable) & F(inheritable)) | P'(effective) = F(effective) ? P'(permitted) : 0 -P'(inheritable) = P(inheritable) [¤Ä¤Þ¤ê¡¢Êѹ¹¤µ¤ì¤Ê¤¤] +P'(inheritable) = P(inheritable) [つまり、変更されない] .fi .in -³ÆÊÑ¿ô¤Î°ÕÌ£¤Ï°Ê²¼¤ÎÄ̤ê: +各変数の意味は以下の通り: .RS 4 .IP P 10 .BR execve (2) -Á°¤Î¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÃÍ +前のスレッドのケーパビリティセットの値 .IP P' .BR execve (2) -¸å¤Î¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÃÍ +後のスレッドのケーパビリティセットの値 .IP F -¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÃÍ +ファイルケーパビリティセットの値 .IP cap_bset -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤ÎÃÍ (²¼µ­»²¾È) +ケーパビリティバウンディングセットの値 (下記参照) .RE .\" -.SS ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤È¡¢¥ë¡¼¥È¤Ë¤è¤ë¥×¥í¥°¥é¥à¤Î¼Â¹Ô +.SS ケーパビリティと、ルートによるプログラムの実行 .BR execve (2) -»þ¤Ë¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ò»È¤Ã¤Æ¡¢Á´¤Æ¤Î¸¢¸Â¤ò»ý¤Ã¤¿ +時に、ケーパビリティセットを使って、全ての権限を持った .I root -¤ò¼Â¸½¤¹¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë¡£ +を実現するには、以下のようにする。 .IP 1. 3 -set-user-ID-root ¥×¥í¥°¥é¥à¤¬¼Â¹Ô¤µ¤ì¤ë¾ì¹ç¡¢ -¤Þ¤¿¤Ï¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶ ID ¤¬ 0 (root) ¤Î¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¤Î·Ñ¾µ²Äǽ¥»¥Ã¥È¤Èµö²Ä¥»¥Ã¥È¤òÁ´¤Æ 1 -(Á´¤Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬Í­¸ú) ¤ËÄêµÁ¤¹¤ë¡£ +set-user-ID-root プログラムが実行される場合、 +またはプロセスの実ユーザ ID が 0 (root) の場合、 +ファイルの継承可能セットと許可セットを全て 1 +(全てのケーパビリティが有効) に定義する。 .IP 2. -set-user-ID-root ¥×¥í¥°¥é¥à¤¬¼Â¹Ô¤µ¤ì¤ë¾ì¹ç¡¢ -¥Õ¥¡¥¤¥ë¤Î¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥Ó¥Ã¥È¤ò 1 (enabled) ¤ËÄêµÁ¤¹¤ë¡£ +set-user-ID-root プログラムが実行される場合、 +ファイルの実効ケーパビリティビットを 1 (enabled) に定義する。 .PP -¾åµ­¤Î¥ë¡¼¥ë¤Ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ÊÑ´¹¤òŬÍѤ·¤¿·ë²Ì¤ò¤Þ¤È¤á¤ë¤È¡¢ -¥×¥í¥»¥¹¤¬ set-user-ID-root ¥×¥í¥°¥é¥à¤ò +上記のルールにケーパビリティ変換を適用した結果をまとめると、 +プロセスが set-user-ID-root プログラムを .BR execve (2) -¤¹¤ë¾ì¹ç¡¢¤Þ¤¿¤Ï¼Â¸ú UID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤¬¥×¥í¥°¥é¥à¤ò +する場合、または実効 UID が 0 のプロセスがプログラムを .BR execve (2) -¤¹¤ë¾ì¹ç¡¢µö²Ä¤È¼Â¸ú¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÁ´¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ -(Àµ³Î¤Ë¤Ï¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ë¤è¤ë¥Þ¥¹¥¯¤Ç½ü³°¤µ¤ì¤ë¤â¤Î -°Ê³°¤ÎÁ´¤Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤ò¼èÆÀ¤¹¤ë¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ -.\" ¼Â UID ¤¬ 0 ¤Ç¼Â¸ú UID ¤¬ 0 °Ê³°¤Î¥×¥í¥»¥¹¤¬ exec () ¤ò¹Ô¤¦¤È¡¢ -.\" µö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë´Þ¤Þ¤ì¤ëÁ´¤Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ -.\" ¤¬¼èÆÀ¤µ¤ì¡¢¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ï¼èÆÀ¤µ¤ì¤Ê¤¤¡£ -¤³¤ì¤Ë¤è¤ê¡¢ÅÁÅýŪ¤Ê UNIX ¥·¥¹¥Æ¥à¤ÈƱ¤¸¿¶¤ëÉñ¤¤¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -.SS ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È (capability bounding set) ¤Ï¡¢ +する場合、許可と実効のケーパビリティセットの全ケーパビリティ +(正確には、ケーパビリティバウンディングセットによるマスクで除外されるもの +以外の全てのケーパビリティ) を取得するということである。 +.\" 実 UID が 0 で実効 UID が 0 以外のプロセスが exec () を行うと、 +.\" 許可ケーパビリティセットに含まれる全てのケーパビリティ +.\" が取得され、実効ケーパビリティは取得されない。 +これにより、伝統的な UNIX システムと同じ振る舞いができるようになっている。 +.SS ケーパビリティ・バウンディングセット +ケーパビリティ・バウンディングセット (capability bounding set) は、 .BR execve (2) -»þ¤Ë³ÍÆÀ¤Ç¤­¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÀ©¸Â¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë -¥»¥­¥å¥ê¥Æ¥£µ¡¹½¤Ç¤¢¤ë¡£ -¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï°Ê²¼¤Î¤è¤¦¤Ë»ÈÍѤµ¤ì¤ë¡£ +時に獲得できるケーパビリティを制限するために使われる +セキュリティ機構である。 +バウンディングセットは以下のように使用される。 .IP * 2 .BR execve (2) -¼Â¹Ô»þ¤Ë¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤È -¥Õ¥¡¥¤¥ë¤Îµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÏÀÍýÏ (AND) ¤ò¼è¤Ã¤¿¤â¤Î¤¬¡¢ -¤½¤Î¥¹¥ì¥Ã¥É¤Îµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë³ä¤êÅö¤Æ¤é¤ì¤ë¡£ -¤Ä¤Þ¤ê¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï¡¢ -¼Â¹Ô¥Õ¥¡¥¤¥ë¤¬Ç§¤á¤Æ¤¤¤ëµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ËÂФ·¤Æ -À©¸Â¤ò²Ý¤¹Æ¯¤­¤ò¤¹¤ë¡£ +実行時に、ケーパビリティ・バウンディングセットと +ファイルの許可ケーパビリティセットの論理和 (AND) を取ったものが、 +そのスレッドの許可ケーパビリティセットに割り当てられる。 +つまり、ケーパビリティ・バウンディングセットは、 +実行ファイルが認めている許可ケーパビリティに対して +制限を課す働きをする。 .IP * -(Linux 2.6.25 °Ê¹ß) -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï¡¢¥¹¥ì¥Ã¥É¤¬ +(Linux 2.6.25 以降) +ケーパビリティ・バウンディングセットは、スレッドが .BR capset (2) -¤Ë¤è¤ê¼«¿È¤Î·Ñ¾µ²Äǽ¥»¥Ã¥È¤ËÄɲòÄǽ¤Ê¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ÎÊ콸ÃĤò -À©¸Â¤¹¤ëÌò³ä¤ò»ý¤Ä¡£ -¥¹¥ì¥Ã¥É¤Ëµö²Ä¤µ¤ì¤¿¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ç¤¢¤Ã¤Æ¤â¡¢¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ë -´Þ¤Þ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¥¹¥ì¥Ã¥É¤Ï¤½¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ï¼«¿È¤Î·Ñ¾µ²Äǽ¥»¥Ã¥È¤Ë -ÄɲäǤ­¤º¡¢¤½¤Î·ë²Ì¡¢·Ñ¾µ²Äǽ¥»¥Ã¥È¤Ë¤½¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò´Þ¤à¥Õ¥¡¥¤¥ë¤ò +により自身の継承可能セットに追加可能なケーパビリティの母集団を +制限する役割を持つ。 +スレッドに許可されたケーパビリティであっても、バウンディングセットに +含まれていなければ、スレッドはそのケーパビリティは自身の継承可能セットに +追加できず、その結果、継承可能セットにそのケーパビリティを含むファイルを .BR execve (2) -¤¹¤ë¾ì¹ç¡¢¤½¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òµö²Ä¥»¥Ã¥È¤Ë»ý¤Á³¤±¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡¢ -¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ +する場合、そのケーパビリティを許可セットに持ち続けることができない、 +ということである。 .PP -¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤¬¥Þ¥¹¥¯¤ò¹Ô¤¦¤Î¤Ï¡¢·Ñ¾µ²Äǽ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ç¤Ï¤Ê¤¯¡¢ -¥Õ¥¡¥¤¥ë¤Îµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¥Þ¥¹¥¯¤ò¹Ô¤¦ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¤¢¤ë¥¹¥ì¥Ã¥É¤Î·Ñ¾µ²Äǽ¥»¥Ã¥È¤Ë¤½¤Î¥¹¥ì¥Ã¥É¤Î¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ë -¸ºß¤·¤Ê¤¤¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¤½¤Î¥¹¥ì¥Ã¥É¤Ï¡¢ -·Ñ¾µ²Äǽ¥»¥Ã¥È¤Ë´Þ¤Þ¤ì¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢ -µö²Ä¥»¥Ã¥È¤Ë´Þ¤Þ¤ì¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤â³ÍÆÀ¤Ç¤­¤ë¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ +バウンディングセットがマスクを行うのは、継承可能ケーパビリティではなく、 +ファイルの許可ケーパビリティのマスクを行う点に注意すること。 +あるスレッドの継承可能セットにそのスレッドのバウンディングセットに +存在しないケーパビリティが含まれている場合、そのスレッドは、 +継承可能セットに含まれるケーパビリティを持つファイルを実行することにより、 +許可セットに含まれるケーパビリティも獲得できるということである。 .PP -¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤ê¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï -¥·¥¹¥Æ¥à¶¦Ä̤ΰÀ­¤Î¾ì¹ç¤È¡¢¥×¥í¥»¥¹Ã±°Ì¤Î°À­¤Î¾ì¹ç¤¬¤¢¤ë¡£ +カーネルのバージョンにより、ケーパビリティ・バウンディングセットは +システム共通の属性の場合と、プロセス単位の属性の場合がある。 .PP -.B "Linux 2.6.25 ¤è¤êÁ°¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È" +.B "Linux 2.6.25 より前のケーパビリティ・バウンディングセット" .PP -2.6.25 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï -¥·¥¹¥Æ¥à¶¦Ä̤ΰÀ­¤Ç¡¢¥·¥¹¥Æ¥à¾å¤ÎÁ´¤Æ¤Î¥¹¥ì¥Ã¥É¤ËŬÍѤµ¤ì¤ë¡£ -¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï +2.6.25 より前のカーネルでは、ケーパビリティ・バウンディングセットは +システム共通の属性で、システム上の全てのスレッドに適用される。 +バウンディングセットは .I /proc/sys/kernel/cap-bound -¥Õ¥¡¥¤¥ë·Ðͳ¤Ç»²¾È¤Ç¤­¤ë¡£ -(´Ö°ã¤¨¤ä¤¹¤¤¤¬¡¢¤³¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯·Á¼°¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¡¢ +ファイル経由で参照できる。 +(間違えやすいが、このビットマスク形式のパラメータは、 .I /proc/sys/kernel/cap-bound -¤Ç¤ÏÉä¹æÉÕ¤­¤Î½½¿Ê¿ô¤Çɽ¸½¤µ¤ì¤ë¡£) +では符号付きの十進数で表現される。) .B init -¥×¥í¥»¥¹¤À¤±¤¬¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ç -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥»¥Ã¥È¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤½¤ì°Ê³°¤Ç¤Ï¡¢¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶ (¤è¤êÀµ³Î¤Ë¤Ï¡¢ +プロセスだけがケーパビリティ・バウンディングセットで +ケーパビリティをセットすることができる。 +それ以外では、スーパーユーザ (より正確には、 .B CAP_SYS_MODULE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤¿¥×¥í¥°¥é¥à) ¤¬¡¢ -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¥¯¥ê¥¢¤¬ -¤Ç¤­¤ë¤À¤±¤Ç¤¢¤ë¡£ +ケーパビリティを持ったプログラム) が、 +ケーパビリティ・バウンディングセットのケーパビリティのクリアが +できるだけである。 -Ä̾ï¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï¡¢ +通常のシステムでは、ケーパビリティ・バウンディングセットは、 .B CAP_SETPCAP -¤¬Ìµ¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤³¤ÎÀ©¸Â¤ò¼è¤êµî¤ë¤Ë¤Ï (¼è¤êµî¤ë¤Î¤Ï´í¸±!)¡¢ +が無効になっている。 +この制限を取り去るには (取り去るのは危険!)、 .I include/linux/capability.h -Æâ¤Î +内の .B CAP_INIT_EFF_SET -¤ÎÄêµÁ¤ò½¤Àµ¤·¡¢¥«¡¼¥Í¥ë¤òºÆ¹½ÃÛ¤¹¤ëɬÍפ¬¤¢¤ë¡£ +の定義を修正し、カーネルを再構築する必要がある。 -¥·¥¹¥Æ¥à¶¦Ä̤Υ±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥Èµ¡Ç½¤Ï¡¢ -¥«¡¼¥Í¥ë 2.2.11 °Ê¹ß¤Ç Linux ¤ËÄɲ䵤줿¡£ +システム共通のケーパビリティ・バウンディングセット機能は、 +カーネル 2.2.11 以降で Linux に追加された。 .\" .PP -.B "Linux 2.6.25 °Ê¹ß¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È" +.B "Linux 2.6.25 以降のケーパビリティ・バウンディングセット" .PP -Linux 2.6.25 °Ê¹ß¤Ç¤Ï¡¢ -¡Ö¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¡×¤Ï¥¹¥ì¥Ã¥Éñ°Ì¤Î°À­¤Ç¤¢¤ë -(¥·¥¹¥Æ¥à¶¦Ä̤Υ±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï¤â¤Ï¤ä¸ºß¤·¤Ê¤¤)¡£ +Linux 2.6.25 以降では、 +「ケーパビリティ・バウンディングセット」はスレッド単位の属性である +(システム共通のケーパビリティ・バウンディングセットはもはや存在しない)。 -¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ï +バウンディングセットは .BR fork (2) -»þ¤Ë¤Ï¥¹¥ì¥Ã¥É¤Î¿Æ¥×¥í¥»¥¹¤«¤é·Ñ¾µ¤µ¤ì¡¢ +時にはスレッドの親プロセスから継承され、 .BR execve (2) -¤ÎÁ°¸å¤Ç¤ÏÊÝ»ý¤µ¤ì¤ë¡£ +の前後では保持される。 -¥¹¥ì¥Ã¥É¤¬ +スレッドが .B CAP_SETPCAP -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢¤½¤Î¥¹¥ì¥Ã¥É¤Ï +ケーパビリティを持っている場合、そのスレッドは .BR prctl (2) -¤Î +の .BR PR_CAPBSET_DROP -Áàºî¤ò»È¤Ã¤Æ¼«¿È¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤«¤é -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òºï½ü¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤¤¤Ã¤¿¤ó¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤«¤éºï½ü¤·¤Æ¤·¤Þ¤¦¤È¡¢ -¥¹¥ì¥Ã¥É¤Ï¤½¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òºÆÅÙ¥»¥Ã¥È¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +操作を使って自身のケーパビリティ・バウンディングセットから +ケーパビリティを削除することができる。 +いったんケーパビリティをバウンディングセットから削除してしまうと、 +スレッドはそのケーパビリティを再度セットすることはできない。 .BR prctl (2) -¤Î +の .B PR_CAPBSET_READ -Áàºî¤ò»È¤¦¤³¤È¤Ç¡¢¥¹¥ì¥Ã¥É¤¬¤¢¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¼«¿È¤Î¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È -¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤«¤òÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ +操作を使うことで、スレッドがあるケーパビリティが自身のバウンディングセット +に含まれているかを知ることができる。 -¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤«¤é¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Îºï½ü¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤ë¤Î¤Ï¡¢ -¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç -(CONFIG_SECURITY_FILE_CAPABILITIES) ¤À¤±¤Ç¤¢¤ë¡£ -¤³¤Î¾ì¹ç¤Ë¤Ï¡¢ (Á´¤Æ¤Î¥×¥í¥»¥¹¤ÎÀèÁĤǤ¢¤ë) +バウンディングセットからのケーパビリティの削除がサポートされるのは、 +カーネルのコンパイル時にファイルケーパビリティが有効になっている場合 +(CONFIG_SECURITY_FILE_CAPABILITIES) だけである。 +この場合には、 (全てのプロセスの先祖である) .I init -¥×¥í¥»¥¹¤Ï¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤ÇÁ´¤Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬ -¥»¥Ã¥È¤µ¤ì¤¿¾õÂ֤dz«»Ï¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ +プロセスはバウンディングセットで全てのケーパビリティが +セットされた状態で開始する。 +ファイルケーパビリティが有効になっていない場合には、 .I init -¤Ï¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤Ç +はバウンディングセットで .B CAP_SETPCAP -°Ê³°¤ÎÁ´¤Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¥»¥Ã¥È¤µ¤ì¤¿¾õÂ֤dz«»Ï¤¹¤ë¡£ -¤³¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ï¡¢ +以外の全てのケーパビリティがセットされた状態で開始する。 +このようになっているのは、 .B CAP_SETPCAP -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï -°ã¤Ã¤¿°ÕÌ£¤ò»ý¤Ä¤«¤é¤Ç¤¢¤ë¡£ +ケーパビリティがファイルケーパビリティがサポートされていない場合には +違った意味を持つからである。 -¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤«¤é¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òºï½ü¤·¤Æ¤â¡¢ -¥¹¥ì¥Ã¥É¤Î·Ñ¾µ²Äǽ¥»¥Ã¥È¤«¤é¤Ï¤½¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ïºï½ü¤µ¤ì¤Ê¤¤¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤«¤é¤Îºï½ü¤Ë¤è¤ê¡¢ -¤³¤ÎÀ褽¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥¹¥ì¥Ã¥É¤Î·Ñ¾µ²Äǽ¥»¥Ã¥È¤ËÄɲ乤뤳¤È -¤Ï¤Ç¤­¤Ê¤¯¤Ê¤ë¡£ +バウンディングセットからケーパビリティを削除しても、 +スレッドの継承可能セットからはそのケーパビリティは削除されない。 +しかしながら、バウンディングセットからの削除により、 +この先そのケーパビリティをスレッドの継承可能セットに追加すること +はできなくなる。 .\" .\" -.SS "¥æ¡¼¥¶ ID Êѹ¹¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ø¤Î±Æ¶Á" -¥æ¡¼¥¶ ID ¤¬ 0 ¤È 0 °Ê³°¤Î´Ö¤ÇÊѲ½¤¹¤ëºÝ¤Î¿¶¤ëÉñ¤¤¤ò½¾Íè¤ÈƱ¤¸¤Ë¤¹¤ë¤¿¤á¡¢ -¥¹¥ì¥Ã¥É¤Î¼Â UID¡¢¼Â¸ú UID¡¢Êݸ set-user-ID¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID ¤¬ +.SS "ユーザ ID 変更のケーパビリティへの影響" +ユーザ ID が 0 と 0 以外の間で変化する際の振る舞いを従来と同じにするため、 +スレッドの実 UID、実効 UID、保存 set-user-ID、ファイルシステム UID が .RB ( setuid (2), .BR setresuid (2) -¤Ê¤É¤ò»È¤Ã¤Æ) Êѹ¹¤µ¤ì¤¿ºÝ¤Ë¡¢¥«¡¼¥Í¥ë¤Ï¤½¤Î¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë -°Ê²¼¤ÎÊѹ¹¤ò¹Ô¤¦: +などを使って) 変更された際に、カーネルはそのスレッドのケーパビリティセットに +以下の変更を行う: .IP 1. 3 -UID ¤ÎÊѹ¹Á°¤Ë¤Ï¼Â UID¡¢¼Â¸ú UID¡¢Êݸ set-user-ID ¤Î¤¦¤Á -¾¯¤Ê¤¯¤È¤â°ì¤Ä¤¬ 0 ¤Ç¡¢Êѹ¹¸å¤Ë¼Â UID¡¢¼Â¸ú UID¡¢Êݸ set-user-ID ¤¬ -¤¹¤Ù¤Æ 0 °Ê³°¤ÎÃͤˤʤ俾ì¹ç¡¢µö²Ä¤È¼Â¸ú¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Î -Á´¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥¯¥ê¥¢¤¹¤ë¡£ +UID の変更前には実 UID、実効 UID、保存 set-user-ID のうち +少なくとも一つが 0 で、変更後に実 UID、実効 UID、保存 set-user-ID が +すべて 0 以外の値になった場合、許可と実効のケーパビリティセットの +全ケーパビリティをクリアする。 .IP 2. -¼Â¸ú UID ¤¬ 0 ¤«¤é 0 °Ê³°¤ËÊѹ¹¤µ¤ì¤¿¾ì¹ç¡¢ -¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÁ´¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¥¯¥ê¥¢¤¹¤ë¡£ +実効 UID が 0 から 0 以外に変更された場合、 +実効ケーパビリティセットの全ケーパビリティをクリアする。 .IP 3. -¼Â¸ú UID ¤¬ 0 °Ê³°¤«¤é 0 ¤ËÊѹ¹¤µ¤ì¤¿¾ì¹ç¡¢ -µö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÆâÍƤò¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ë¥³¥Ô¡¼¤¹¤ë¡£ +実効 UID が 0 以外から 0 に変更された場合、 +許可ケーパビリティセットの内容を実効ケーパビリティセットにコピーする。 .IP 4. -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID ¤¬ 0 ¤«¤é 0 °Ê³°¤ËÊѹ¹¤µ¤ì¤¿¾ì¹ç +ファイルシステム UID が 0 から 0 以外に変更された場合 .RB ( setfsuid (2) -»²¾È)¡¢¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Î°Ê²¼¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¥¯¥ê¥¢¤µ¤ì¤ë: +参照)、実効ケーパビリティセットの以下のケーパビリティがクリアされる: .BR CAP_CHOWN , .BR CAP_DAC_OVERRIDE , .BR CAP_DAC_READ_SEARCH , .BR CAP_FOWNER , .BR CAP_FSETID , .B CAP_LINUX_IMMUTABLE -(Linux 2.2.30 °Ê¹ß), +(Linux 2.2.30 以降), .BR CAP_MAC_OVERRIDE , .B CAP_MKNOD -(Linux 2.2.30 °Ê¹ß)¡£ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID ¤¬ 0 °Ê³°¤«¤é 0 ¤ËÊѹ¹¤µ¤ì¤¿¾ì¹ç¡¢ -¾åµ­¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Î¤¦¤Áµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÇÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤â¤Î¤¬ -¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÇÍ­¸ú¤Ë¤µ¤ì¤ë¡£ +(Linux 2.2.30 以降)。 +ファイルシステム UID が 0 以外から 0 に変更された場合、 +上記のケーパビリティのうち許可ケーパビリティセットで有効になっているものが +実効ケーパビリティセットで有効にされる。 .PP -³Æ¼ï UID ¤Î¤¦¤Á¾¯¤Ê¤¯¤È¤â°ì¤Ä¤¬ 0 ¤Ç¤¢¤ë¥¹¥ì¥Ã¥É¤¬¡¢ -¤½¤Î UID ¤ÎÁ´¤Æ¤¬ 0 °Ê³°¤Ë¤Ê¤Ã¤¿¤È¤­¤Ëµö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤¬ -¥¯¥ê¥¢¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¤·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ +各種 UID のうち少なくとも一つが 0 であるスレッドが、 +その UID の全てが 0 以外になったときに許可ケーパビリティセットが +クリアされないようにしたい場合には、 .BR prctl (2) -¤Î +の .B PR_SET_KEEPCAPS -Áàºî¤ò»È¤¨¤Ð¤è¤¤¡£ +操作を使えばよい。 .\" -.SS ¥×¥í¥°¥é¥à¤Ç¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤òÄ´À°¤¹¤ë -³Æ¥¹¥ì¥Ã¥É¤Ï¡¢ +.SS プログラムでケーパビリティセットを調整する +各スレッドは、 .BR capget (2) -¤ä +や .BR capset (2) -¤ò»È¤Ã¤Æ¡¢¼«¿È¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ò¼èÆÀ¤·¤¿¤êÊѹ¹¤·¤¿¤ê¤Ç¤­¤ë¡£ -¤¿¤À¤·¡¢¤³¤ì¤ò¹Ô¤¦¤Ë¤Ï¡¢ +を使って、自身のケーパビリティセットを取得したり変更したりできる。 +ただし、これを行うには、 .I libcap -¥Ñ¥Ã¥±¡¼¥¸¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë +パッケージで提供されている .BR cap_get_proc (3) -¤ä +や .BR cap_set_proc (3) -¤ò»È¤¦¤Î¤¬Ë¾¤Þ¤·¤¤¡£ -¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÊѹ¹¤Ë¤Ï°Ê²¼¤Î¥ë¡¼¥ë¤¬Å¬ÍѤµ¤ì¤ë¡£ +を使うのが望ましい。 +スレッドのケーパビリティセットの変更には以下のルールが適用される。 .IP 1. 3 -¸Æ¤Ó½Ð¤·Â¦¤¬ +呼び出し側が .B CAP_SETPCAP -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¿·¤·¤¤·Ñ¾µ²Äǽ¥»¥Ã¥È¤Ï¡¢ -´û¸¤Î·Ñ¾µ²Äǽ¥»¥Ã¥È¤Èµö²Ä¥»¥Ã¥È¤ÎÀѽ¸¹ç (AND) ¤ÎÉôʬ½¸¹ç¤Ç -¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ケーパビリティを持っていない場合、新しい継承可能セットは、 +既存の継承可能セットと許可セットの積集合 (AND) の部分集合で +なければならない。 .IP 2. -(¥«¡¼¥Í¥ë 2.6.25 °Ê¹ß) -¿·¤·¤¤·Ñ¾µ²Äǽ¥»¥Ã¥È¤Ï¡¢´û¸¤Î·Ñ¾µ²Äǽ¥»¥Ã¥È¤È¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦ -¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤ÎÀѽ¸¹ç (AND) ¤ÎÉôʬ½¸¹ç¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +(カーネル 2.6.25 以降) +新しい継承可能セットは、既存の継承可能セットとケーパビリティ・ +バウンディングセットの積集合 (AND) の部分集合でなければならない。 .IP 3. -¿·¤·¤¤µö²Ä¥»¥Ã¥È¤Ï¡¢´û¸¤Îµö²Ä¥»¥Ã¥È¤ÎÉôʬ½¸¹ç¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -(¤Ä¤Þ¤ê¡¢¤½¤Î¥¹¥ì¥Ã¥É¤¬¸½ºß»ý¤Ã¤Æ¤¤¤Ê¤¤µö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò -³ÍÆÀ¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤)¡£ +新しい許可セットは、既存の許可セットの部分集合でなければならない +(つまり、そのスレッドが現在持っていない許可ケーパビリティを +獲得することはできない)。 .IP 4. -¿·¤·¤¤¼Â¸ú¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Ï¿·¤·¤¤µö²Ä¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤Î -Éôʬ½¸¹ç¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SS securebits ¥Õ¥é¥°: ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤À¤±¤Î´Ä¶­¤ò¹½ÃÛ¤¹¤ë +新しい実効ケーパビリティセットは新しい許可ケーパビリティセットの +部分集合になっていなければならない。 +.SS securebits フラグ: ケーパビリティだけの環境を構築する .\" For some background: .\" see http://lwn.net/Articles/280279/ and .\" http://article.gmane.org/gmane.linux.kernel.lsm/5476/ -¥«¡¼¥Í¥ë 2.6.26 °Ê¹ß¤Ç¡¢ -¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬Í­¸ú¤Ë¤Ê¤Ã¤¿¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ -¥¹¥ì¥Ã¥Éñ°Ì¤Î +カーネル 2.6.26 以降で、 +ファイルケーパビリティが有効になったカーネルでは、 +スレッド単位の .I securebits -¥Õ¥é¥°¤¬¼ÂÁõ¤µ¤ì¤Æ¤ª¤ê¡¢¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤È UID 0 +フラグが実装されており、このフラグを使うと UID 0 .RI ( root ) -¤ËÂФ¹¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ÎÆÃÊÌ°·¤¤¤ò̵¸ú¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -°Ê²¼¤Î¤è¤¦¤Ê¥Õ¥é¥°¤¬¤¢¤ë¡£ +に対するケーパビリティの特別扱いを無効することができる。 +以下のようなフラグがある。 .TP .B SECBIT_KEEP_CAPS -¤³¤Î¥Õ¥é¥°¤ò¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢UID ¤¬ 0 ¤Î¥¹¥ì¥Ã¥É¤Î UID ¤¬ 0 °Ê³°¤ÎÃÍ¤Ë -ÀÚ¤êÂؤï¤ëºÝ¤Ë¡¢¤½¤Î¥¹¥ì¥Ã¥É¤Ï¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò°Ý»ý¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢UID ¤¬ 0 ¤«¤é 0 °Ê³°¤ÎÃÍ¤Ë -ÀÚ¤êÂؤï¤ë¤È¡¢¤½¤Î¥¹¥ì¥Ã¥É¤ÏÁ´¤Æ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò¼º¤¦¡£ -¤³¤Î¥Õ¥é¥°¤Ï +このフラグをセットされている場合、UID が 0 のスレッドの UID が 0 以外の値に +切り替わる際に、そのスレッドはケーパビリティを維持することができる。 +このフラグがセットされていない場合には、UID が 0 から 0 以外の値に +切り替わると、そのスレッドは全てのケーパビリティを失う。 +このフラグは .BR execve (2) -»þ¤Ë¤ÏÁ´¤Æ¥¯¥ê¥¢¤µ¤ì¤ë -(¤³¤Î¥Õ¥é¥°¤Ï¡¢°ÊÁ°¤Î +時には全てクリアされる +(このフラグは、以前の .BR prctl (2) -¤Î +の .B PR_SET_KEEPCAPS -Áàºî¤ÈƱ¤¸µ¡Ç½¤òÄ󶡤¹¤ë¤â¤Î¤Ç¤¢¤ë)¡£ +操作と同じ機能を提供するものである)。 .TP .B SECBIT_NO_SETUID_FIXUP -¤³¤Î¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢¥¹¥ì¥Ã¥É¤Î¼Â¸ú UID ¤È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID ¤¬ -0 ¤È 0 °Ê³°¤Î´Ö¤ÇÀÚ¤êÂؤï¤Ã¤¿¾ì¹ç¤Ë¡¢ -¥«¡¼¥Í¥ë¤Ï¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ÎÄ´À°¤ò¹Ô¤ï¤Ê¤¯¤Ê¤ë -(¡Ö¥æ¡¼¥¶ ID Êѹ¹¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ø¤Î±Æ¶Á¡×¤ÎÀá¤ò»²¾È)¡£ +このフラグをセットすると、スレッドの実効 UID とファイルシステム UID が +0 と 0 以外の間で切り替わった場合に、 +カーネルはケーパビリティセットの調整を行わなくなる +(「ユーザ ID 変更のケーパビリティへの影響」の節を参照)。 .TP .B SECBIT_NOROOT -¤³¤Î¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -set-user-ID-root ¥×¥í¥°¥é¥à¤Î¼Â¹Ô»þ¤ä¡¢ -¼Â¸ú UID ¤« ¼Â UID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤¬ +このビットがセットされている場合、 +set-user-ID-root プログラムの実行時や、 +実効 UID か 実 UID が 0 のプロセスが .BR execve (2) -¤ò¸Æ¤Ó½Ð¤·¤¿»þ¤Ë¡¢¥«¡¼¥Í¥ë¤Ï¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òµö²Ä¤·¤Ê¤¤ -(¡Ö¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤È¡¢¥ë¡¼¥È¤Ë¤è¤ë¥×¥í¥°¥é¥à¤Î¼Â¹Ô¡×¤ÎÀá¤ò»²¾È)¡£ +を呼び出した時に、カーネルはケーパビリティを許可しない +(「ケーパビリティと、ルートによるプログラムの実行」の節を参照)。 .PP -¾åµ­¤Î "base" ¥Õ¥é¥°¤Î³Æ¡¹¤Ë¤ÏÂбþ¤¹¤ë "locked" ¥Õ¥é¥°¤¬Â¸ºß¤¹¤ë¡£ -¤¤¤º¤ì¤Î "locked" ¥Õ¥é¥°¤â°ìÅÙ¥»¥Ã¥È¤µ¤ì¤ë¤ÈÌ᤹¤³¤È¤Ï¤Ç¤­¤º¡¢ -¤½¤ì°Ê¹ß¤ÏÂбþ¤¹¤ë "base" ¥Õ¥é¥°¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¯¤Ê¤ë¡£ -"locked" ¥Õ¥é¥°¤Ï +上記の "base" フラグの各々には対応する "locked" フラグが存在する。 +いずれの "locked" フラグも一度セットされると戻すことはできず、 +それ以降は対応する "base" フラグを変更することができなくなる。 +"locked" フラグは .BR SECBIT_KEEP_CAPS_LOCKED , .BR SECBIT_NO_SETUID_FIXUP_LOCKED , .BR SECBIT_NOROOT_LOCKED -¤È¤¤¤¦Ì¾Á°¤Ç¤¢¤ë¡£ +という名前である。 .PP .I securebits -¥Õ¥é¥°¤Ï¡¢ +フラグは、 .BR prctl (2) -¤ÎÁàºî +の操作 .B PR_SET_SECUREBITS -¤ä +や .B PR_GET_SECUREBITS -¤ò»È¤¦¤³¤È¤ÇÊѹ¹¤·¤¿¤ê¼èÆÀ¤·¤¿¤ê¤Ç¤­¤ë¡£ -¥Õ¥é¥°¤òÊѹ¹¤¹¤ë¤Ë¤Ï +を使うことで変更したり取得したりできる。 +フラグを変更するには .B CAP_SETPCAP -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティが必要である。 .I securebits -¥Õ¥é¥°¤Ï»Ò¥×¥í¥»¥¹¤Ë·Ñ¾µ¤µ¤ì¤ë¡£ +フラグは子プロセスに継承される。 .BR execve (2) -¤Ë¤ª¤¤¤Æ¤Ï¡¢ +においては、 .B SECURE_KEEP_CAPS -¤¬¾ï¤Ë¥¯¥ê¥¢¤µ¤ì¤ë°Ê³°¤Ï¡¢Á´¤Æ¤Î¥Õ¥é¥°¤¬ÊÝ»ý¤µ¤ì¤ë¡£ +が常にクリアされる以外は、全てのフラグが保持される。 -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢°Ê²¼¤Î¸Æ¤Ó½Ð¤·¤ò¹Ô¤¦¤³¤È¤Ë¤è¤ê¡¢ -¼«Ê¬¼«¿È¤ª¤è¤Ó»Ò¹¤È¤Ê¤ë¥×¥í¥»¥¹Á´¤Æ¤ËÂФ·¤Æ¡¢ -ɬÍפʥե¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤¿¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Ê¤¤¸Â¤ê¡¢ -Âбþ¤¹¤ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò³ÍÆÀ¤Ç¤­¤Ê¤¤¤è¤¦¤Ê¾õ¶·¤ËÊĤ¸¤³¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +アプリケーションは、以下の呼び出しを行うことにより、 +自分自身および子孫となるプロセス全てに対して、 +必要なファイルケーパビリティを持ったプログラムを実行しない限り、 +対応するケーパビリティを獲得できないような状況に閉じこめることができる。 .in +4n .nf @@ -887,60 +887,60 @@ prctl(PR_SET_SECUREBITS, SECBIT_NOROOT_LOCKED); .fi .in -.SH ½àµò +.SH 準拠 .PP -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ë´Ø¤¹¤ëɸ½à¤Ï¤Ê¤¤¤¬¡¢ Linux ¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ÏÇѰƤˤʤä¿ -POSIX.1e Áð°Æ¤Ë´ð¤Å¤¤¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +ケーパビリティに関する標準はないが、 Linux のケーパビリティは廃案になった +POSIX.1e 草案に基づいて実装されている。 .I http://wt.xpilot.org/publications/posix.1e/ -¤ò»²¾È¡£ -.SH Ãí°Õ -¥«¡¼¥Í¥ë 2.5.27 °Ê¹ß¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ÏÁªÂò¼°¤Î¥«¡¼¥Í¥ë¥³¥ó¥Ý¡¼¥Í¥ó¥È -¤È¤Ê¤Ã¤Æ¤ª¤ê¡¢¥«¡¼¥Í¥ëÀßÄꥪ¥×¥·¥ç¥ó CONFIG_SECURITY_CAPABILITIES -¤Ë¤è¤êÍ­¸ú/̵¸ú¤òÀÚ¤êÂؤ¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を参照。 +.SH 注意 +カーネル 2.5.27 以降、ケーパビリティは選択式のカーネルコンポーネント +となっており、カーネル設定オプション CONFIG_SECURITY_CAPABILITIES +により有効/無効を切り替えることができる。 .I /proc/PID/task/TID/status -¥Õ¥¡¥¤¥ë¤ò»È¤¦¤È¡¢¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤ò¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +ファイルを使うと、スレッドのケーパビリティセットを見ることができる。 .I /proc/PID/status -¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¥×¥í¥»¥¹¤Î¥á¥¤¥ó¥¹¥ì¥Ã¥É¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¥»¥Ã¥È¤¬É½¼¨¤µ¤ì¤ë¡£ +ファイルには、プロセスのメインスレッドのケーパビリティセットが表示される。 .I libcap -¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÀßÄꡦ¼èÆÀ¤¹¤ë¤¿¤á¤Î -¥ë¡¼¥Á¥ó·²¤òÄ󶡤·¤Æ¤¤¤ë¡£¤³¤ì¤é¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¡¢ +パッケージは、ケーパビリティを設定・取得するための +ルーチン群を提供している。これらのインタフェースは、 .BR capset (2) -¤È +と .BR capget (2) -¤¬Ä󶡤¹¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÈÈæ¤Ù¤Æ¡¢¤è¤ê»È¤¤¤ä¤¹¤¯¡¢Êѹ¹¤µ¤ì¤ë²ÄǽÀ­¤¬¾¯¤Ê¤¤¡£ -¤³¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ç¤Ï¡¢ +が提供するインターフェースと比べて、より使いやすく、変更される可能性が少ない。 +このパッケージでは、 .BR setcap (8), .BR getcap (8) -¤È¤¤¤¦¥×¥í¥°¥é¥à¤âÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ -¥Ñ¥Ã¥±¡¼¥¸¤Ï +というプログラムも提供されている。 +パッケージは .I http://www.kernel.org/pub/linux/libs/security/linux-privs -¤ÇÆþ¼ê¤Ç¤­¤ë¡£ +で入手できる。 -¥Ð¡¼¥¸¥ç¥ó 2.6.24 ¤è¤êÁ°¡¢¤ª¤è¤Ó¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬ -Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤2.6.24 °Ê¹ß¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +バージョン 2.6.24 より前、およびファイルケーパビリティが +有効になっていない2.6.24 以降のカーネルでは、 .B CAP_SETPCAP -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤¿¥¹¥ì¥Ã¥É¤Ï¼«Ê¬°Ê³°¤Î¥¹¥ì¥Ã¥É¤Î -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÁàºî¤Ç¤­¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢¤³¤ì¤ÏÍýÏÀŪ¤Ë²Äǽ¤È¤¤¤¦¤À¤±¤Ç¤¢¤ë¡£ -°Ê²¼¤Î¤¤¤º¤ì¤«¤Î¾ì¹ç¤Ë¤ª¤¤¤Æ¤â¡¢¤É¤Î¥¹¥ì¥Ã¥É¤â +ケーパビリティを持ったスレッドは自分以外のスレッドの +ケーパビリティを操作できる。 +しかしながら、これは理論的に可能というだけである。 +以下のいずれかの場合においても、どのスレッドも .BR CAP_SETPCAP -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¤³¤È¤Ï¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +ケーパビリティを持つことはないからである。 .IP * 2 -2.6.25 ¤è¤êÁ°¤Î¼ÂÁõ¤Ç¤Ï¡¢¥·¥¹¥Æ¥à¶¦Ä̤Υ±¡¼¥Ñ¥Ó¥ê¥Æ¥£¡¦¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È +2.6.25 より前の実装では、システム共通のケーパビリティ・バウンディングセット .I /proc/sys/kernel/cap-bound -¤Ç¤Ï¤³¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ï¾ï¤Ë̵¸ú¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢ -¥½¡¼¥¹¤òÊѹ¹¤·¤Æ¥«¡¼¥Í¥ë¤òºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤Ê¤¤¸Â¤ê¡¢ -¤³¤ì¤òÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +ではこのケーパビリティは常に無効になっており、 +ソースを変更してカーネルを再コンパイルしない限り、 +これを変更することはできない。 .IP * -¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¥Õ¥¡¥¤¥ë¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬Ìµ¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -¥×¥í¥»¥¹Ëè¤Î¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤«¤é¤³¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤òÈ´¤¤¤Æ +現在の実装ではファイルケーパビリティが無効になっている場合、 +プロセス毎のバウンディングセットからこのケーパビリティを抜いて .B init -¤Ï³«»Ï¤µ¤ì¡¢ -¥·¥¹¥Æ¥à¾å¤ÇÀ¸À®¤µ¤ì¤ë¾¤ÎÁ´¤Æ¤Î¥×¥í¥»¥¹¤Ç¤³¤Î¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥»¥Ã¥È¤¬ -·Ñ¾µ¤µ¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +は開始され、 +システム上で生成される他の全てのプロセスでこのバウンディングセットが +継承される。 +.SH 関連項目 .BR capget (2), .BR prctl (2), .BR setfsuid (2), @@ -957,5 +957,5 @@ POSIX.1e .BR getcap (8), .BR setcap (8) .PP -¥«¡¼¥Í¥ë¥½¡¼¥¹Æâ¤Î +カーネルソース内の .I include/linux/capability.h diff --git a/release/man7/charsets.7 b/release/man7/charsets.7 index 3607e63d..e86a4caf 100644 --- a/release/man7/charsets.7 +++ b/release/man7/charsets.7 @@ -18,344 +18,344 @@ .\" Updated Fri Dec 3 JST 1999 by Kentaro Shirakata .\" Updated Fri Jan 4 JST 2002 by Kentaro Shirakata .\" -.\" WORD: ligature ¹ç»ú +.\" WORD: ligature 合字 .\" .TH CHARSETS 7 2008-06-03 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -charsets \- ¥×¥í¥°¥é¥Þ¤Î»ëÅÀ¤«¤é¸«¤¿Ê¸»ú¥»¥Ã¥È¤È¹ñºÝ²½ -.SH ÀâÌÀ -Linux ¤Ï¹ñºÝ²½¤µ¤ì¤¿¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£ -Linux ¤ÎÍÍ¡¹¤Ê¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ä¡¢ console ¥É¥é¥¤¥Ð¤Ê¤É¤Î -¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ï¡¢Èó¥é¥Æ¥ó¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Ê¤É¤Î -¥Þ¥ë¥Á¥ê¥ó¥¬¥ëʸ»ú¥»¥Ã¥È (multilingual character sets) ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Ë¤Ï¥é¥Æ¥ó¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»ú¡¦¥®¥ê¥·¥ãʸ»ú¡¦ -¥­¥ê¥ëʸ»ú¡¦¥¢¥é¥Ó¥¢Ê¸»ú¡¦¥Ø¥Ö¥é¥¤Ê¸»ú¤Ê¤É¤¬´Þ¤Þ¤ì¡¢ -ȯ²»¶èÊÌÉä¹æ (diacritical marks)¡¦¥¢¥¯¥»¥ó¥È¡¦¹ç»ú (ligatures) ¤Ê¤É¤â -»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +.SH 名前 +charsets \- プログラマの視点から見た文字セットと国際化 +.SH 説明 +Linux は国際化されたオペレーティングシステムである。 +Linux の様々なユーティリティや、 console ドライバなどの +デバイスドライバは、非ラテンアルファベットなどの +マルチリンガル文字セット (multilingual character sets) をサポートしている。 +これらにはラテンアルファベット文字・ギリシャ文字・ +キリル文字・アラビア文字・ヘブライ文字などが含まれ、 +発音区別符号 (diacritical marks)・アクセント・合字 (ligatures) なども +使うことができる。 .LP -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Ï¡¢¥×¥í¥°¥é¥Þ¤Î»ëÅÀ¤«¤é¤ß¤¿°Û¤Ê¤ëʸ»ú½¸¹çµ¬³Ê -(character-set standards) ¤È¡¢¤½¤ì¤é¤ò Linux ¤Ë¤É¤¦Å¬¹ç¤µ¤»¤ë¤«¤È¤¤¤¦¤³ -¤È¤Ë¤Ä¤¤¤Æ½Ò¤Ù¤ë¡£¤³¤³¤Ç¤Ï¡¢ASCII, ISO 8859, KOI8-R, Unicode, ISO 2022, -ISO 4873 ¤Î³Æµ¬³Ê¤Ë¤Ä¤¤¤ÆµÄÏÀ¤¹¤ë¡£ -¤³¤³¤Ç¤Ï¼ÂºÝ¤Ë¥í¥±¡¼¥ëʸ»ú¥»¥Ã¥È¤È¤·¤Æ»È¤ï¤ì¤Æ¤¤¤ëʸ»ú¥»¥Ã¥È¤ËÃíÌܤ·¡¢ -¤½¤Î¾¤Î¥·¥¹¥Æ¥à¤Ç»È¤ï¤ì¤Æ¤¤¤ë̵¿ô¤Î¤â¤Î¤Ï½Å»ë¤·¤Ê¤¤¡£ +このマニュアルページでは、プログラマの視点からみた異なる文字集合規格 +(character-set standards) と、それらを Linux にどう適合させるかというこ +とについて述べる。ここでは、ASCII, ISO 8859, KOI8-R, Unicode, ISO 2022, +ISO 4873 の各規格について議論する。 +ここでは実際にロケール文字セットとして使われている文字セットに注目し、 +その他のシステムで使われている無数のものは重視しない。 .LP -glibc 2.2.3 ¤Ç¸ø¼°¤ËÂбþ¤·¤Æ¤¤¤ë¥í¥±¡¼¥ë¤ÇÍѤ¤¤é¤ì¤Æ¤¤¤ëʸ»ú¥»¥Ã¥È¤Î -´°Á´¤Ê¥ê¥¹¥È¤Ï°Ê²¼¤ÎÄ̤ê: +glibc 2.2.3 で公式に対応しているロケールで用いられている文字セットの +完全なリストは以下の通り: ISO-8859-{1,2,3,5,6,7,8,9,13,15}, CP1251, UTF-8, EUC-{KR,JP,TW}, -KOI8-{R,U}, GB2312, GB18030, GBK, BIG5, BIG5-HKSCS, TIS-620 (½çÉÔƱ) -(¥ë¡¼¥Þ¥Ë¥¢¸ì¤Ï ISO-8859-16 ¤ËÀÚ¤êÂؤï¤Ã¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤) +KOI8-{R,U}, GB2312, GB18030, GBK, BIG5, BIG5-HKSCS, TIS-620 (順不同) +(ルーマニア語は ISO-8859-16 に切り替わっているかもしれない) .SS ASCII -ASCII (American Standard Code For Information Interchange) ¤Ï -7¡¡¥Ó¥Ã¥Èʸ»ú½¸¹ç¤Î¸µ¤È¤Ê¤Ã¤¿¤â¤Î¤Ç¤¢¤ê¡¢ -¤â¤È¤â¤È¤ÏÊƸì(American English) ¤Î¤¿¤á¤Ë¥Ç¥¶¥¤¥ó¤µ¤ì¤¿¡£ -¸½ºß¤Ï¡¢ECMA-6 ɸ½à¤ÎÃæ¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡£ +ASCII (American Standard Code For Information Interchange) は +7 ビット文字集合の元となったものであり、 +もともとは米語(American English) のためにデザインされた。 +現在は、ECMA-6 標準の中で説明されている。 .LP -¥É¥¤¥Ä¸ì¡¢¥Õ¥é¥ó¥¹¸ì¡¢¥¹¥Ú¥¤¥ó¸ì¤Ê¤É¤Ë 7 ¥Ó¥Ã¥È¤ÇÂбþ¤¹¤ë¤¿¤á¡¢ -ASCII ¤Î¥É¥ëµ­¹æ¤ò¾¤ÎÄ̲ߵ­¹æ¤ËÃÖ¤­´¹¤¨¡¢ -¶çÆÉÅÀ¤òÈó±Ñ¸ìʸ»ú¤Î¤â¤Î¤ËÃÖ¤­´¹¤¨¤¿ÍÍ¡¹¤ÊÊѼ郎¸ºß¤¹¤ë¡£ -¤³¤ì¤é¤ÏÁ´¤Æ»È¤¦¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -glibc ¤Ï ASCII ¤Î´°Á´¤Ê¥¹¡¼¥Ñ¡¼¥»¥Ã¥È¤Ç¤Ê¤¤Ê¸»ú¥»¥Ã¥È¤Î¥í¥±¡¼¥ë¤Ë -Âбþ¤·¤Æ¤¤¤Ê¤¤¡£ -(¤³¤ì¤é¤Îʸ»ú¥»¥Ã¥È¤Ï ISO-646 ¤È¤·¤ÆÃΤé¤ì¤ë¡£ -¤³¤ì¤Ï ASCII ¤È¶á¤¤´Ø·¸¤Ë¤¢¤ê¡¢¤³¤ì¤é¤Îʸ»ú¤òÃÖ¤­´¹¤¨¤ë¤³¤È¤òǧ¤á¤Æ¤¤¤ë) +ドイツ語、フランス語、スペイン語などに 7 ビットで対応するため、 +ASCII のドル記号を他の通貨記号に置き換え、 +句読点を非英語文字のものに置き換えた様々な変種が存在する。 +これらは全て使うべきではない。 +glibc は ASCII の完全なスーパーセットでない文字セットのロケールに +対応していない。 +(これらの文字セットは ISO-646 として知られる。 +これは ASCII と近い関係にあり、これらの文字を置き換えることを認めている) .LP -Linux ¤ÏÊƹñ¤ÇÀ߷פµ¤ì¤¿¥Ï¡¼¥É¥¦¥§¥¢¤Î¤¿¤á¤Ë½ñ¤«¤ì¤¿¤Î¤Ç¡¢ -¤Ï¤¸¤á¤«¤é ASCII ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ +Linux は米国で設計されたハードウェアのために書かれたので、 +はじめから ASCII をサポートしている。 .SS ISO 8859 -ISO 8859 ¤Ï 15 ÁȤΰìÏ¢¤Î 8 ¥Ó¥Ã¥Èʸ»ú½¸¹ç¤Ç¤¢¤ë¡£¤½¤ì¤é¤ÏÁ´¤Æ -²¼°Ì (7 ¥Ó¥Ã¥È) ¤Ë US ASCII ¤ò´Þ¤ß¡¢ 128 ¤«¤é 159 ¤Ë¤ÏÀ©¸æʸ»ú¤¬ÇÛÃÖ¤µ¤ì¡¢ -160 ¤«¤é 255 ¤Ë¤Ï 96 ¸Ä¤Î¸ÇÄêÉý¿Þ·Áʸ»ú¤¬ÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë¡£ +ISO 8859 は 15 組の一連の 8 ビット文字集合である。それらは全て +下位 (7 ビット) に US ASCII を含み、 128 から 159 には制御文字が配置され、 +160 から 255 には 96 個の固定幅図形文字が配置されている。 .LP -¤³¤ì¤é¤Î¤¦¤Á¤Ç¡¢¤â¤Ã¤È¤â½ÅÍ×¤Ê¤Î¤Ï ISO 8859-1 (Latin-1) ¤Ç¤¢¤ë¡£¤³¤ì -¤Ï Linux ¥³¥ó¥½¡¼¥ë¥É¥é¥¤¥Ð¤Ë¤ª¤¤¤Æ¥Í¥¤¥Æ¥£¥Ö¤Ë¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤ª¤ê¡¢ -.\"nakano ¤Ç¤¤¤¤¤ó¤¸¤ã¤Ê¤¤¤«¤È»×¤¤¤Þ¤¹¡£ -X11R6 ¤Ë¤ª¤¤¤Æ¤âƱÍͤ˥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£¤µ¤é¤Ë¡¢ -HTML ¤Î´ðËÜʸ»ú½¸¹ç¤Ç¤¢¤ë¡£ +これらのうちで、もっとも重要なのは ISO 8859-1 (Latin-1) である。これ +は Linux コンソールドライバにおいてネイティブにサポートされており、 +.\"nakano でいいんじゃないかと思います。 +X11R6 においても同様にサポートされている。さらに、 +HTML の基本文字集合である。 .LP -¥³¥ó¥½¡¼¥ë¤Ë¤ª¤±¤ë¡¢¤½¤Î¾¤Î 8859 ʸ»ú½¸¹ç¤Î¥µ¥Ý¡¼¥È¤Ï +コンソールにおける、その他の 8859 文字集合のサポートは .RB ( setfont (8)) -¤Î¤è¤¦¤Ê¥æ¡¼¥¶¥â¡¼¥É¡¦¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤òÍøÍѤ¹¤ë»ö¤Ç²Äǽ¤Ë¤Ê¤ë¡£ -¤³¤Î¤è¤¦¤Ê¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤òÍøÍѤ¹¤ë¤³¤È¤Ë¤è¤ê¡¢¥³¥ó¥½¡¼¥ë¥É¥é¥¤¥Ð¤Ë¤ª¤± -¤ë¥­¡¼¥Ü¡¼¥É¤È EGA ¥°¥é¥Õ¥£¥Ã¥¯¥Æ¡¼¥Ö¥ë¤Î³ä¤êÅö¤Æ¤òÊѹ¹¤·¡¢"¥æ¡¼¥¶³ä -¤êÅö¤Æ(user mapping)"¥Õ¥©¥ó¥È¥Æ¡¼¥Ö¥ë¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +のようなユーザモード・ユーティリティを利用する事で可能になる。 +このようなユーティリティを利用することにより、コンソールドライバにおけ +るキーボードと EGA グラフィックテーブルの割り当てを変更し、"ユーザ割 +り当て(user mapping)"フォントテーブルを使用することができる。 .LP -°Ê²¼¤Ï¡¢¤½¤ì¤¾¤ì¤Î½¸¹ç¤Î´Êñ¤ÊÀâÌÀ¤Ç¤¢¤ë¡£ +以下は、それぞれの集合の簡単な説明である。 .TP 8859-1 (Latin-1) -Latin-1 ¤Ï ¥¢¥ë¥Ð¥Ë¥¢¸ì(Albanian)¡¢¥«¥¿¥í¥Ë¥¢¸ì(Catalan)¡¢¥Ç¥ó¥Þ¡¼¥¯¸ì -(Danish)¡¢¥ª¥é¥ó¥À¸ì(Dutch)¡¢±Ñ¸ì(English)¡¢¥Õ¥§¥í¡¼¸ì(Faroese)¡¢ -¥Õ¥£¥ó¥é¥ó¥É¸ì(Finnish)¡¢¥Õ¥é¥ó¥¹¸ì(French)¡¢¥É¥¤¥Ä¸ì(German)¡¢ -¥¬¥ê¥·¥¢¸ì(Galician)¡¢¥¢¥¤¥ë¥é¥ó¥É¸ì(Irish)¡¢¥¢¥¤¥¹¥é¥ó¥É¸ì(Icelandic)¡¢ -¥¤¥¿¥ê¥¢¸ì(Italian)¡¢¥Î¥ë¥¦¥§¡¼¸ì(Norwegian)¡¢¥Ý¥ë¥È¥¬¥ë¸ì(Portuguese)¡¢ -¥¹¥Ú¥¤¥ó¸ì(Spanish)¡¢¥¹¥¦¥§¡¼¥Ç¥ó¸ì(Swedish)¤È¤¤¤Ã¤¿¤Û¤È¤ó¤É¤Î -À¾¥è¡¼¥í¥Ã¥Ñ¸À¸ì¤ò¥«¥Ð¡¼¤¹¤ë¡£ -¥É¥¤¥Ä¸ì¤Î ij ¤ä¥Õ¥é¥ó¥¹¸ì¤Î oe ¤Î¹ç»ú¡¢¤ª¤è¤Ó¸Å¤¤¥¹¥¿¥¤¥ë¤Î -,,¥É¥¤¥Ä¸ì`` °úÍÑÉä¤Ï¤Ê¤¤¤¬¡¢µöÍÆÈϰϤȹͤ¨¤é¤ì¤Æ¤¤¤ë¡£ +Latin-1 は アルバニア語(Albanian)、カタロニア語(Catalan)、デンマーク語 +(Danish)、オランダ語(Dutch)、英語(English)、フェロー語(Faroese)、 +フィンランド語(Finnish)、フランス語(French)、ドイツ語(German)、 +ガリシア語(Galician)、アイルランド語(Irish)、アイスランド語(Icelandic)、 +イタリア語(Italian)、ノルウェー語(Norwegian)、ポルトガル語(Portuguese)、 +スペイン語(Spanish)、スウェーデン語(Swedish)といったほとんどの +西ヨーロッパ言語をカバーする。 +ドイツ語の ij やフランス語の oe の合字、および古いスタイルの +,,ドイツ語`` 引用符はないが、許容範囲と考えられている。 .TP 8859-2 (Latin-2) -Latin-2 ¤Ï¥¹¥é¥ô¸ì(Slavic)¡¢¥¯¥í¥¢¥Á¥¢¸ì(Croatian)¡¢¥Á¥§¥³ -¸ì(Czech)¡¢¥É¥¤¥Ä¸ì(German)¡¢¥Ï¥ó¥¬¥ê¡¼¸ì(Hungarian)¡¢¥Ý¡¼¥é¥ó¥É¸ì -(Polish)¡¢¥ë¡¼¥Þ¥Ë¥¢¸ì(Rumanian)¡¢¥¹¥í¥ô¥¡¥­¥¢¸ì(Slovak)¡¢ -¥¹¥í¥Ù¥Ë¥¢¸ì(Slovene)¤È¤¤¤Ã¤¿¡¢½ñ¤­Ê¸»ú¤È¤·¤Æ¥é¥Æ¥óʸ»ú¤ò -»ÈÍѤ¹¤ë¡¢¥¹¥é¥Ö·Ï¸À¸ì¤ÈÃæ±û¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì¤Î¤Û¤È¤ó¤É¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ +Latin-2 はスラヴ語(Slavic)、クロアチア語(Croatian)、チェコ +語(Czech)、ドイツ語(German)、ハンガリー語(Hungarian)、ポーランド語 +(Polish)、ルーマニア語(Rumanian)、スロヴァキア語(Slovak)、 +スロベニア語(Slovene)といった、書き文字としてラテン文字を +使用する、スラブ系言語と中央ヨーロッパの言語のほとんどをサポートする。 .TP 8859-3 (Latin-3) -Latin-3 ¤Ï¥¨¥¹¥Ú¥é¥ó¥È(Esperanto)¡¢¥¬¥ê¥·¥¢¸ì(Galician)¡¢¥Þ¥ë¥¿¸ì -(Maltese)¤Ê¤É¤Î½ñ¤­¼ê¤Î´Ö¤ÇÎɤ¯ÍѤ¤¤é¤ì¤ë¡£ -(¥È¥ë¥³¸ì(Turkish)¤Ï¤³¤ì¤ÎÂå¤ï¤ê¤Ë 8859-9 ¤Ç½ñ¤«¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë) +Latin-3 はエスペラント(Esperanto)、ガリシア語(Galician)、マルタ語 +(Maltese)などの書き手の間で良く用いられる。 +(トルコ語(Turkish)はこれの代わりに 8859-9 で書かれるようになっている) .TP 8859-4 (Latin-4) -Latin-4 ¤Ï¥¨¥¹¥È¥Ë¥¢¸ì(Estonian)¡¢¥é¥È¥Ó¥¢¸ì(Latvian)¡¢¥ê¥È¥¢¥Ë¥¢¸ì -(Lithuanian)¤Îʸ»ú¤òÄ󶡤¹¤ë¡£Latain-4 ¤Ï¡¢ -ËܼÁŪ¤Ë¤ÏÇѻߤµ¤ì¤Æ¤¤¤ë(obsolate ¤Ç¤¢¤ë)¡£ -8859-10 (Latin-6) ¤È 8859-13 (Latin-7) ¤ò»²¾È¤Î¤³¤È¡£ +Latin-4 はエストニア語(Estonian)、ラトビア語(Latvian)、リトアニア語 +(Lithuanian)の文字を提供する。Latain-4 は、 +本質的には廃止されている(obsolate である)。 +8859-10 (Latin-6) と 8859-13 (Latin-7) を参照のこと。 .TP 8859-5 .br -¥Ö¥ë¥¬¥ê¥¢¸ì(Bulgarian)¡¢¥Ù¥é¥ë¡¼¥·¸ì(Byelorussian)¡¢¥Þ¥±¥É¥Ë¥¢¸ì -(Macedonian)¡¢¥í¥·¥¢¸ì(Russian)¡¢¥»¥ë¥Ó¥¢¸ì(Serbian)¡¢¥¦¥¯¥é¥¤¥Ê¸ì -(Ukrainian) ¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥­¥ê¥ëʸ»ú½¸¹ç¤Ç¤¢¤ë¡£ ¥¦¥¯¥é¥¤¥Ê¸ì¤Ç¤Ï -downstroke ¤ò¤Ä¤±¤¿ "ghe" ¤È¤¤¤¦Ê¸»ú¤ò "heh" ¤ÈÆɤߡ¢ -ghe ¤òÀµ¤·¤¯½ñ¤¯¤Ë¤Ï ghe ¤Ë upstroke ¤ò¤Ä¤±¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ÎÅÀ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ -²¼¤Î KOI8-R ¤Ë´Ø¤¹¤ëµÄÏÀ¤ò»²¾È¤Î¤³¤È¡£ +ブルガリア語(Bulgarian)、ベラルーシ語(Byelorussian)、マケドニア語 +(Macedonian)、ロシア語(Russian)、セルビア語(Serbian)、ウクライナ語 +(Ukrainian) をサポートするキリル文字集合である。 ウクライナ語では +downstroke をつけた "ghe" という文字を "heh" と読み、 +ghe を正しく書くには ghe に upstroke をつけなければならない。 +この点については、 +下の KOI8-R に関する議論を参照のこと。 .TP 8859-6 .br -¥¢¥é¥Ó¥¢¸ì(Arabic)¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£8859-6 ¤Î¥°¥ê¥Õ¥Æ¡¼¥Ö¥ë(glyph table) -¤Ïʸ»ú¤Î·ÁÂÖ¤òʬ³ä¤·¤¿¸ÇÄêÉý¥Õ¥©¥ó¥È¤Ç¤¢¤ë¡£ -¤½¤Î¤¿¤á¡¢Å¬Àڤʥǥ£¥¹¥×¥ì¥¤¥¨¥ó¥¸¥ó¤¬Àµ¤·¤¤ -initial, medial, final ¥Õ¥©¡¼¥à¤Ë·ë¹ç¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +アラビア語(Arabic)をサポートする。8859-6 のグリフテーブル(glyph table) +は文字の形態を分割した固定幅フォントである。 +そのため、適切なディスプレイエンジンが正しい +initial, medial, final フォームに結合しなければならない。 .TP 8859-7 -¸½Â奮¥ê¥·¥ã¸ì(Modern Greek)¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ +現代ギリシャ語(Modern Greek)をサポートする。 .TP 8859-8 -niqud(¶çÆÉÅÀµ­¹æ) ¤Î¤Ê¤¤¶áÂå¥Ø¥Ö¥é¥¤¸ì(Hebrew)¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ -niqud ¤È´°Á´¤ÊÀ»½ñÉ÷¥Ø¥Ö¥é¥¤¸ì(Biblical Hebrew)¤Ï¤³¤Îʸ»ú¥»¥Ã¥È¤Î -Âоݳ°¤Ç¤¢¤ë¡£ -Linux ¤Ç¤Ï¡¢¤³¤ì¤é¤Î¤¿¤á¤Ë¤Ï UTF-8 ¤¬¹¥¤Þ¤·¤¤¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Ç¤¢¤ë¡£ +niqud(句読点記号) のない近代ヘブライ語(Hebrew)をサポートする。 +niqud と完全な聖書風ヘブライ語(Biblical Hebrew)はこの文字セットの +対象外である。 +Linux では、これらのためには UTF-8 が好ましいエンコーディングである。 .TP 8859-9 (Latin-5) -¤³¤ì¤Ï¡¢Latin-1 ¤ÎÊѼï¤Ç¡¢¥¢¥¤¥¹¥é¥ó¥É¸ì¤Îʸ»ú¤ò¥È¥ë¥³¸ì(Turkish)ʸ»ú¤Ë -ÃÖ¤­´¹¤¨¤¿¤â¤Î¤Ç¤¢¤ë¡£ +これは、Latin-1 の変種で、アイスランド語の文字をトルコ語(Turkish)文字に +置き換えたものである。 .TP 8859-10 (Latin-6) -Latin-6 ¤ÏË̲¤(Nordic)ÃÏ°è¤ò¥«¥Ð¡¼¤¹¤ë¤¿¤á¤Ë Latin-4 ¤Ë¤Ï´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤ -¥¤¥Ì¥¤¥Ã¥È¸ì(Inuit)(¥°¥ê¡¼¥ó¥é¥ó¥É¸ì(Greenlandic)) ¤È -¥µ¡¼¥á¸ì(Sami)(¥é¥Ã¥×¸ì(Lappish)) ¤ò²Ã¤¨¤Æ¤¢¤ë¡£ -RFC 1345 ¤Ë¤Ï¡¢¤³¤ÎÁ°Ãʳ¬¤Î¡¢°Û¤Ê¤Ã¤¿ "latin6" ¤¬ºÜ¤»¤é¤ì¤Æ¤¤¤ë¡£ -¥¹¥³¥ë¥È¡¦¥µ¡¼¥á¸ì(Skolt Sami)¤Ç¤Ï¡¢ -¤µ¤é¤Ë¤¤¤¯¤Ä¤«¤Î¥¢¥¯¥»¥ó¥Èµ­¹æ¤¬É¬ÍפȤ¹¤ë¡£ +Latin-6 は北欧(Nordic)地域をカバーするために Latin-4 には含まれていない +イヌイット語(Inuit)(グリーンランド語(Greenlandic)) と +サーメ語(Sami)(ラップ語(Lappish)) を加えてある。 +RFC 1345 には、この前段階の、異なった "latin6" が載せられている。 +スコルト・サーメ語(Skolt Sami)では、 +さらにいくつかのアクセント記号が必要とする。 .TP 8859-11 -¤³¤ì¤ÏµñÀ䤵¤ì¤¿Áð°Æɸ½à¤Î¤¿¤á¤À¤±¤Ë¸ºß¤¹¤ë¡£ -¤³¤ÎÁð°Æɸ½à¤Ï Linux ¤Ç¥¿¥¤¸ì¤Î¤¿¤á¤ËÍѤ¤¤é¤ì¤ë TIS-620 ¤ÈƱ¤¸¤â¤Î¤Ç¤¢¤ë¡£ +これは拒絶された草案標準のためだけに存在する。 +この草案標準は Linux でタイ語のために用いられる TIS-620 と同じものである。 .TP 8859-12 -¤³¤Îʸ»ú¥»¥Ã¥È¤Ï¸ºß¤·¤Ê¤¤¡£ -¥Ù¥È¥Ê¥à¸ì¤¬¤³¤Î¾ì½ê¤ò»È¤¦¤è¤¦¤ËÄó°Æ¤·¤¿¤¬¡¢ -ISO 8859 ¤¬Äó°Æ¤¹¤ë(¹çÀ®¤Ç¤Ê¤¤) 96 ʸ»ú¤Ë¼ý¤Þ¤é¤Ê¤«¤Ã¤¿¡£ -Linux ¤Ç¤Ï¥Ù¥È¥Ê¥à¸ì¤ò°·¤¦¾ì¹ç¤Ï UTF-8 ¤¬¹¥¤Þ¤·¤¤Ê¸»ú¥»¥Ã¥È¤Ç¤¢¤ë¡£ +この文字セットは存在しない。 +ベトナム語がこの場所を使うように提案したが、 +ISO 8859 が提案する(合成でない) 96 文字に収まらなかった。 +Linux ではベトナム語を扱う場合は UTF-8 が好ましい文字セットである。 .TP 8859-13 (Latin-7) -¥Ð¥ë¥È³¤½ô¹ñ¤Î¸À¸ì¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ -Æäˡ¢Latin-4 ¤Ë¸ºß¤·¤Ê¤¤¥é¥È¥Ó¥¢¸ì¤Îʸ»ú¤ò´Þ¤à¡£ +バルト海諸国の言語をサポートする。 +特に、Latin-4 に存在しないラトビア語の文字を含む。 .TP 8859-14 (Latin-8) -¤³¤ì¤Ï¥±¥ë¥È¸ì¤Îʸ»ú¥»¥Ã¥È¤Ç¤¢¤ê¡¢¥²¡¼¥ë¸ì(Gaelic)¤È¥¦¥§¡¼¥ë¥º¸ì(Welsh)¤Ë -Âбþ¤¹¤ë¡£ -¤³¤Îʸ»ú¥»¥Ã¥È¤Ï¸ÅÂ奢¥¤¥ë¥é¥ó¥É¸ì¤ÇÍѤ¤¤é¤ì¤ëÉÕÅÀÉÕ¤­Ê¸»ú¤â´Þ¤à¡£ +これはケルト語の文字セットであり、ゲール語(Gaelic)とウェールズ語(Welsh)に +対応する。 +この文字セットは古代アイルランド語で用いられる付点付き文字も含む。 .TP 8859-15 (Latin-9) -¤³¤ì¤Ï¥æ¡¼¥íµ­¹æ¤È Latin-1 ¤ËÆþ¤Ã¤Æ¤¤¤Ê¤¤¥Õ¥é¥ó¥¹¸ì¤È¥Õ¥£¥ó¥é¥ó¥É¸ì¤Îʸ»ú¤¬ -Äɲ䵤ì¤Æ¤¤¤ë¡£ +これはユーロ記号と Latin-1 に入っていないフランス語とフィンランド語の文字が +追加されている。 .TP 8859-16 (Latin-10) -¤³¤Îʸ»ú¥»¥Ã¥È¤Ï 8859-2 ¤ÇÂбþ¤¹¤ë¿¤¯¤Î¸À¸ì¤ËÂбþ¤·¡¢ -¤µ¤é¤Ë¥ë¡¼¥Þ¥Ë¥¢¸ì¤Ë¤Ï¤è¤ê´°Á´¤ËÂбþ¤¹¤ë¡£ +この文字セットは 8859-2 で対応する多くの言語に対応し、 +さらにルーマニア語にはより完全に対応する。 .SS KOI8-R -KOI8-R ¤Ï¥í¥·¥¢¤Ë¤ª¤¤¤ÆÎɤ¯ÍѤ¤¤é¤ì¤ë¡¢ISO ¤Ç¤Ê¤¤Ê¸»ú½¸¹ç¤Ç¤¢¤ë¡£ -²¼°ÌȾʬ¤Ï US ASCII ¤Ç¤¢¤ë¡£¾å°ÌȾʬ¤Ï ISO 8859-5 ¤è¤ê´öʬÎɤ¯ -¥Ç¥¶¥¤¥ó¤µ¤ì¤¿¥­¥ê¥ëʸ»ú½¸¹ç¤Ç¤¢¤ë¡£ -KOI8-U ¤Ï KOI8-R ¤ò¸µ¤Ë¤·¤¿¶¦ÄÌʸ»ú¥»¥Ã¥È¤Ç¤¢¤ê¡¢ -¥¦¥¯¥é¥¤¥Ê¸ì(Ukrainian) ¤Ë¤è¤ê¤è¤¯Âбþ¤¹¤ë¡£ -¤³¤ì¤é¤Î¤É¤Á¤é¤â ISO-8859 ¥·¥ê¡¼¥º¤Î¤è¤¦¤Ë ISO-2022 ¸ß´¹¤Ç¤Ï¤Ê¤¤¡£ +KOI8-R はロシアにおいて良く用いられる、ISO でない文字集合である。 +下位半分は US ASCII である。上位半分は ISO 8859-5 より幾分良く +デザインされたキリル文字集合である。 +KOI8-U は KOI8-R を元にした共通文字セットであり、 +ウクライナ語(Ukrainian) によりよく対応する。 +これらのどちらも ISO-8859 シリーズのように ISO-2022 互換ではない。 .LP -Linux ¤Ç¤Î KOI8-R ¤Î¥³¥ó¥½¡¼¥ë¥µ¥Ý¡¼¥È¤Ï¡¢ -¥æ¡¼¥¶¥â¡¼¥É¤Î¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ç¼Â¸½¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï¥­¡¼¥Ü¡¼¥É¤Î³ä¤êÅö¤Æ¤È EGA ¥°¥é¥Õ¥£¥Ã¥¯¥Æ¡¼¥Ö¥ë¤òÊѹ¹¤·¡¢ -¥³¥ó¥½¡¼¥ë¥É¥é¥¤¥Ð¤Î¥Õ¥©¥ó¥È¥Æ¡¼¥Ö¥ë¤Ë "¥æ¡¼¥¶³ä¤êÅö¤Æ" ¤ò¹Ô¤¦¡£ +Linux での KOI8-R のコンソールサポートは、 +ユーザモードのユーティリティで実現されている。 +これはキーボードの割り当てと EGA グラフィックテーブルを変更し、 +コンソールドライバのフォントテーブルに "ユーザ割り当て" を行う。 .\" Thanks to Tomohiro KUBOTA for the following sections about .\" national standards. .SS JIS X 0208 -JIS X 0208 ¤ÏÆüËܸì¤Î¹ñÄêɸ½àʸ»ú¥»¥Ã¥È¤Ç¤¢¤ë¡£ -¾¤Ë¤â¤¤¤¯¤Ä¤«ÆüËܸì¤Î¹ñÄêɸ½àʸ»ú¥»¥Ã¥È¤Ï¤¢¤ë -(JIS X 0201, JIS X 0212, JIS X 0213 ¤Ê¤É)¤¬¡¢¤³¤ì¤¬ºÇ¤â½ÅÍפǤ¢¤ë¡£ -ʸ»ú¤Ï 94x94 ¤Î 2 ¥Ð¥¤¥È¥Þ¥È¥ê¥Ã¥¯¥¹¤ËÇÛÃÖ¤µ¤ì¤ë¡£ -³Æ¥Ð¥¤¥È¤Ï 0x21-0x7e ¤ÎÃͤò»ý¤Ä¡£ -JIS X 0208 ¤Ïʸ»ú¥»¥Ã¥È¤Ç¤¢¤ê¡¢¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Ç¤Ï¤Ê¤¤¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¤³¤ì¤Ï¡¢ -JIS X 0208 ¼«¿È¤Ï¥Æ¥­¥¹¥È¥Ç¡¼¥¿¤Îɽ¸½¤Ë¤Ï»È¤ï¤ì¤Ê¤¤¡¢¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ -JIS X 0208 ¤Ï¡¢ -EUC-JP, Shift_JIS, ISO-2022-JP ¤È¤¤¤Ã¤¿¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ò -¹½À®¤¹¤ëÉôÉʤȤ·¤ÆÍѤ¤¤é¤ì¤ë¡£ -EUC-JP ¤¬ Linux ¤Ë¤ª¤¤¤ÆºÇ¤â½ÅÍפʥ¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Ç¤¢¤ê¡¢ -US ASCII ¤È JIS X 0208 ¤ò´Þ¤ó¤Ç¤¤¤ë¡£ -EUC-JP ¤Ç¤Ï¡¢JIS X 0208 ʸ»ú¤Ï 2 ¥Ð¥¤¥È¤Çɽ¸½¤µ¤ì¡¢ -³Æ¥Ð¥¤¥È¤Ï JIS X 0208 ¥³¡¼¥É¤Ë 0x80 ¤ò²Ã¤¨¤¿¤â¤Î¤Ç¤¢¤ë¡£ +JIS X 0208 は日本語の国定標準文字セットである。 +他にもいくつか日本語の国定標準文字セットはある +(JIS X 0201, JIS X 0212, JIS X 0213 など)が、これが最も重要である。 +文字は 94x94 の 2 バイトマトリックスに配置される。 +各バイトは 0x21-0x7e の値を持つ。 +JIS X 0208 は文字セットであり、エンコーディングではないことに注意すること。 +これは、 +JIS X 0208 自身はテキストデータの表現には使われない、ということである。 +JIS X 0208 は、 +EUC-JP, Shift_JIS, ISO-2022-JP といったエンコーディングを +構成する部品として用いられる。 +EUC-JP が Linux において最も重要なエンコーディングであり、 +US ASCII と JIS X 0208 を含んでいる。 +EUC-JP では、JIS X 0208 文字は 2 バイトで表現され、 +各バイトは JIS X 0208 コードに 0x80 を加えたものである。 .SS KS X 1001 -KS X 1001 ¤Ï´Ú¹ñ¤Î¹ñÄêɸ½àʸ»ú¥»¥Ã¥È¤Ç¤¢¤ë¡£ -JIS X 0208 ¤ÈƱÍͤˡ¢Ê¸»ú¤Ï 94x94 ¤Î 2 ¥Ð¥¤¥È¥Þ¥È¥ê¥Ã¥¯¥¹¤ËÇÛÃÖ¤µ¤ì¤ë¡£ -KS X 1001 ¤Ï JIS X 0208 ¤ÈƱÍͤˡ¢ -EUC-KR, Johab, ISO-2022-KR ¤È¤¤¤Ã¤¿¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ÎÉôÉʤȤ·¤ÆÍѤ¤¤é¤ì¤ë¡£ -EUC-KR ¤Ï Linux ¤Ë¤ª¤¤¤ÆºÇ¤â½ÅÍפʥ¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Ç¤¢¤ê¡¢ -US ASCII ¤È KS X 1001 ¤ò´Þ¤ó¤Ç¤¤¤ë¡£ -KS C 5601 ¤Ï KS X 1001 ¤Î¸Å¤¤Ì¾Á°¤Ç¤¢¤ë¡£ +KS X 1001 は韓国の国定標準文字セットである。 +JIS X 0208 と同様に、文字は 94x94 の 2 バイトマトリックスに配置される。 +KS X 1001 は JIS X 0208 と同様に、 +EUC-KR, Johab, ISO-2022-KR といったエンコーディングの部品として用いられる。 +EUC-KR は Linux において最も重要なエンコーディングであり、 +US ASCII と KS X 1001 を含んでいる。 +KS C 5601 は KS X 1001 の古い名前である。 .SS GB 2312 -GB 2312 ¤Ï¡¢´ÊÂÎʸ»ú¤òɽ¸½¤¹¤ë¤¿¤á¤ÎÃæ¹ñ¤Î¹ñÄêɸ½àʸ»ú¥»¥Ã¥È¤Ç¤¢¤ë¡£ -JIS X 0208 ¤ÈƱÍͤˡ¢Ê¸»ú¤Ï 94x94 ¤Î 2 ¥Ð¥¤¥È¥Þ¥È¥ê¥Ã¥¯¥¹¤ËÇÛÃÖ¤µ¤ì¡¢ -EUC-CN ¤ËÍѤ¤¤é¤ì¤ë¡£ -EUC-CN ¤Ï Linux ¤Ë¤ª¤¤¤ÆºÇ¤â½ÅÍפʥ¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Ç¤¢¤ê¡¢ -US ASCII ¤È GB 2312 ¤ò´Þ¤ó¤Ç¤¤¤ë¡£ -EUC-CN ¤Ï¤·¤Ð¤·¤Ð GB, GB 2312, CN-GN ¤Ê¤É¤È¸Æ¤Ð¤ì¤ë¡£ +GB 2312 は、簡体文字を表現するための中国の国定標準文字セットである。 +JIS X 0208 と同様に、文字は 94x94 の 2 バイトマトリックスに配置され、 +EUC-CN に用いられる。 +EUC-CN は Linux において最も重要なエンコーディングであり、 +US ASCII と GB 2312 を含んでいる。 +EUC-CN はしばしば GB, GB 2312, CN-GN などと呼ばれる。 .SS Big5 -Big5 ¤ÏÂæÏѤÇÈËÂÎʸ»ú¤òµ­½Ò¤¹¤ë¤Î¤Ë°ìÈÌŪ¤Ë»È¤ï¤ì¤ëʸ»ú¥»¥Ã¥È¤Ç¤¢¤ë¡£ -(Big5 ¤Ïʸ»ú¥»¥Ã¥È¤È¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ÎξÊý¤Ç¤¢¤ë¡£) -¤³¤ì¤Ï US ASCII ¤Î¾å°Ì½¸¹ç¤Ç¤¢¤ë¡£ -Èó ASCII ʸ»ú¤Ï 2 ¥Ð¥¤¥È¤Çɽ¸½¤¹¤ë¡£ -0xa1-0xfe ¤Î¥Ð¥¤¥È¤Ï 2 ¥Ð¥¤¥Èʸ»ú¤Î 1 ʸ»úÌܤȤ·¤ÆÍѤ¤¤ë¡£ -Big5 ¤È¤½¤Î³ÈÄ¥¤ÏÂæÏѤȹá¹Á¤Ç¹­¤¯ÍѤ¤¤é¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï ISO 2022 ½àµò¤Ç¤Ï¤Ê¤¤¡£ +Big5 は台湾で繁体文字を記述するのに一般的に使われる文字セットである。 +(Big5 は文字セットとエンコーディングの両方である。) +これは US ASCII の上位集合である。 +非 ASCII 文字は 2 バイトで表現する。 +0xa1-0xfe のバイトは 2 バイト文字の 1 文字目として用いる。 +Big5 とその拡張は台湾と香港で広く用いられている。 +これは ISO 2022 準拠ではない。 .SS TIS 620 -TIS 620 ¤Ï¥¿¥¤¤Î¹ñÄêɸ½àʸ»ú¥»¥Ã¥È¤Ç¡¢US ASCII ¤Î¾å°Ì½¸¹ç¤Ç¤¢¤ë¡£ -ISO 8859 ¥·¥ê¡¼¥º¤ÈƱÍͤˡ¢¥¿¥¤Ê¸»ú¤Ï 0xa1-0xfe ¤ËÇÛÃÖ¤µ¤ì¤ë¡£ -TIS 620 ¤Ï Linux ¤Ç¤Î¤ß°ìÈÌŪ¤ËÍѤ¤¤é¤ì¤Æ¤¤¤ëʸ»ú¥»¥Ã¥È¤Ç¤¢¤ê¡¢ -¤Þ¤¿¡¢UTF-8 ¤Ï¹çÀ®Ê¸»ú¤â»ý¤Ã¤Æ¤¤¤ë¡£ +TIS 620 はタイの国定標準文字セットで、US ASCII の上位集合である。 +ISO 8859 シリーズと同様に、タイ文字は 0xa1-0xfe に配置される。 +TIS 620 は Linux でのみ一般的に用いられている文字セットであり、 +また、UTF-8 は合成文字も持っている。 .SS UNICODE -Unicode (ISO10646) ¤Ï¡¢¿Í´Ö¤¬ÍѤ¤¤ëÁ´¤Æ¤Î¸À¸ì¤ÎÁ´¤Æ¤Îʸ»ú¤ò¡¢ -ÌÀ³Î¤Ë¤¢¤é¤ï¤¹¤³¤È¤òÌÜŪ¤È¤·¤¿µ¬³Ê¤Ç¤¢¤ë¡£ -Unicode ¤Î¹½Â¤¤Ï³Æʸ»ú¤Î¥¨¥ó¥³¡¼¥É¤Ë 20.1 ¥Ó¥Ã¥È¤òÍ¿¤¨¤Æ¤¤¤ë¡£ -¤Û¤È¤ó¤É¤Î¥³¥ó¥Ô¥å¡¼¥¿¡¼¤Ï 20.1 ¥Ó¥Ã¥È¤ÎÀ°¿ô¤ò°·¤¨¤Ê¤¤¤Î¤Ç¡¢ -Unicode ¤ÏÉáÄÌÆâÉô¥Ç¡¼¥¿¤È¤·¤Æ 32 ¥Ó¥Ã¥ÈÀ°¿ô¤Ë¥¨¥ó¥³¡¼¥É¤µ¤ì¡¢ -16 ¥Ó¥Ã¥ÈÀ°¿ô¤ÎÎó (UTF-16)(¤¢¤ë¼ï¤ÎÄÁ¤·¤¤Ê¸»ú¤ò¥¨¥ó¥³¡¼¥É¤¹¤ë¾ì¹ç¤Ë¤À¤± -2 ¤Ä¤Î 16 ¥Ó¥Ã¥ÈÀ°¿ô¤¬É¬ÍפȤʤë)¤«¡¢ -8 ¥Ó¥Ã¥È¥Ð¥¤¥È¤ÎÎó (UTF-8)¤È¤·¤Æ°·¤ï¤ì¤ë¡£ -Unicode ¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï¡¢ ¤«¤éÆÀ¤é¤ì¤ë¡£ +Unicode (ISO10646) は、人間が用いる全ての言語の全ての文字を、 +明確にあらわすことを目的とした規格である。 +Unicode の構造は各文字のエンコードに 20.1 ビットを与えている。 +ほとんどのコンピューターは 20.1 ビットの整数を扱えないので、 +Unicode は普通内部データとして 32 ビット整数にエンコードされ、 +16 ビット整数の列 (UTF-16)(ある種の珍しい文字をエンコードする場合にだけ +2 つの 16 ビット整数が必要となる)か、 +8 ビットバイトの列 (UTF-8)として扱われる。 +Unicode についての情報は、 から得られる。 .LP -Linux ¤Ï 8-bit Unicode Transformation Form(UTF-8) ¤òÍѤ¤¤Æ Unicode ¤ò -¤¢¤é¤ï¤¹¡£ UTF-8 ¤Ï Unicode ¤Î²ÄÊÑĹɽ¸½¤Ç¤¢¤ë¡£UTF-8 ¤Ï 7 ¥Ó¥Ã¥È¤ò -Éä¹æ²½¤¹¤ë¤Î¤Ë 1 ¥Ð¥¤¥È¤ò¡¢ 11 ¥Ó¥Ã¥È¤Ç¤Ï 2 ¥Ð¥¤¥È¤ò¡¢ -16 ¥Ó¥Ã¥È¤Ç¤Ï 3 ¥Ð¥¤¥È¤ò¡¢ -21 ¥Ó¥Ã¥È¤Ç¤Ï 4 ¥Ð¥¤¥È¤ò¡¢ -26 ¥Ó¥Ã¥È¤Ç¤Ï 5 ¥Ð¥¤¥È¤ò¡¢ -31 ¥Ó¥Ã¥È¤Ç¤Ï 6 ¥Ð¥¤¥È¤òÍѤ¤¤ë¡£ +Linux は 8-bit Unicode Transformation Form(UTF-8) を用いて Unicode を +あらわす。 UTF-8 は Unicode の可変長表現である。UTF-8 は 7 ビットを +符号化するのに 1 バイトを、 11 ビットでは 2 バイトを、 +16 ビットでは 3 バイトを、 +21 ビットでは 4 バイトを、 +26 ビットでは 5 バイトを、 +31 ビットでは 6 バイトを用いる。 .LP -0,1,x ¤ò¥¼¥í¡¢£±¡¢Ç¤°Õ¤Î¥Ó¥Ã¥È¤È¤¹¤ë¤È¡¢¤¢¤ë¥Ð¥¤¥È 0xxxxxxx ¤Ï Unicode ¤Ç¤Ï -00000000 0xxxxxxx ¤È¤¢¤é¤ï¤µ¤ì¤ë¡£¤³¤ì¤Ï¡¢ASCII ¤Î 0xxxxxxx ¤ÈƱ¤¸ -¥·¥ó¥Ü¥ë¤Î¥³¡¼¥É¤Ç¤¢¤ë¡£¤³¤Î¤è¤¦¤Ë¡¢ASCII ¤ÏÊѹ¹¤Ê¤·¤Ë UTF-8 ¤ËÊÑ´¹¤Ç¤­¡¢ -ASCII ¤Î¤ß¤ò»È¤¦¾ì¹ç¤Ï¡¢¥³¡¼¥É¤Ë¤ª¤¤¤Æ¤â¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤Ë¤ª¤¤¤Æ¤â¡¢ -Êѹ¹¤Ë´Ø¤·¤Æ²¿¤âµ¤¤Ë¤·¤Ê¤¯¤Æ¤è¤¤¡£ +0,1,x をゼロ、1、任意のビットとすると、あるバイト 0xxxxxxx は Unicode では +00000000 0xxxxxxx とあらわされる。これは、ASCII の 0xxxxxxx と同じ +シンボルのコードである。このように、ASCII は変更なしに UTF-8 に変換でき、 +ASCII のみを使う場合は、コードにおいてもファイルサイズにおいても、 +変更に関して何も気にしなくてよい。 .LP -110xxxxx ¤È¤¤¤¦¥Ð¥¤¥È¤Ï 2 ¥Ð¥¤¥È¥³¡¼¥É¤Î»Ï¤Þ¤ê¤Ç¤¢¤ë¡¢¤½¤·¤Æ¡¢110xxxxx -10yyyyyy ¤Ï 00000xxx xxyyyyyy ¤È¤¤¤¦¤è¤¦¤ËÁȤßΩ¤Æ¤é¤ì¤ë¡£¤Þ¤¿¡¢ -1110xxxx ¤Ï 3 ¥Ð¥¤¥È¥³¡¼¥É¤Î»Ï¤Þ¤ê¤Ç¤¢¤ê¡¢1110xxxx 10yyyyyy 10zzzzzz -¤Ï xxxxyyyy yyzzzzzz ¤È¤¤¤¦¤è¤¦¤ËÁȤßΩ¤Æ¤é¤ì¤ë(UTF-8 ¤¬ 31 ¥Ó¥Ã¥È -ISO 10646 ¥³¡¼¥É¤òÍøÍѤ¹¤ë¤È¤­¤Ï¡¢¤³¤Î¹©Äø¤Ï 6 ¥Ð¥¤¥È¥³¡¼¥É¤Þ¤ÇȯŸ¤µ¤»¤é¤ì¤ë)¡£ +110xxxxx というバイトは 2 バイトコードの始まりである、そして、110xxxxx +10yyyyyy は 00000xxx xxyyyyyy というように組み立てられる。また、 +1110xxxx は 3 バイトコードの始まりであり、1110xxxx 10yyyyyy 10zzzzzz +は xxxxyyyy yyzzzzzz というように組み立てられる(UTF-8 が 31 ビット +ISO 10646 コードを利用するときは、この工程は 6 バイトコードまで発展させられる)。 .LP -ISO-8859-1 ʸ»ú¥»¥Ã¥È¤ò»È¤¦¤Û¤È¤ó¤É¤Î¥æ¡¼¥¶¤Ë¤È¤Ã¤Æ¡¢ -¤³¤Î»ö¼Â¤Ï¡¢ASCII ¤ÎÈϰϳ°¤ò»È¤Ã¤¿Ê¸»ú¤Ï -Æó¤Ä¤Î¥Ð¥¤¥È¤ËÉä¹æ²½¤µ¤ì¤ë¤È¤¤¤¦¤³¤È¤ò°ÕÌ£¤¹¤ë¡£¤³¤Î¤³¤È¤«¤é -(UTF-8 ¤ò»È¤¦¤È¡¢ISO-8859-1¤ò»ÈÍѤ·¤Æ¤¤¤ë)¸µ¡¹¤Î¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤«¤é -1 ¡Á 2 ¥Ñ¡¼¥»¥ó¥ÈÂ礭¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤³¤È¤Ë¤Ê¤ë¡£ -¥í¥·¥¢¸ì¤ä¥®¥ê¥·¥ã¸ì¤òÍøÍѤ¹¤ë¥æ¡¼¥¶¡¼¤Ë¤È¤Ã¤Æ¤Ï¡¢ -¤³¤ì¤Ë¤è¤Ã¤Æ¸µ¤Î¥Æ¥­¥¹¥È¤Ï 2 ÇܤÎÂ礭¤µ¤Ë¤Ê¤ë¤³¤È¤Ë¤Ê¤ë¡£ -¤Ê¤¼¤Ê¤é¤³¤ì¤é¤Î¸À¸ì¤Ï¤Û¤È¤ó¤É¤¬ ASCII ¤ÎÈϰϳ°¤À¤«¤é¤Ç¤¢¤ë¡£ -¸½ºß 16-bit ¥³¡¼¥É¤ò¹­¤¯ÍøÍѤ·¤Æ¤¤¤ëÆüËܸì¤òÍøÍѤ¹¤ë¥æ¡¼¥¶¤Ë¤Ï -3 ¥Ð¥¤¥ÈɬÍפȤʤ롣 -Unicode ¤Ø¤ÎÊÑ´¹¤Ë¥¢¥ë¥´¥ê¥º¥àŪÊÑ´¹¤ò¤¹¤ì¤Ð¤è¤¤Ê¸»ú¥»¥Ã¥È¤¬¤¢¤ë -(ÆÃ¤Ë ISO-8859-1)°ìÊý¡¢°ìÈÌŪ¤Ë¤ÏÊÑ´¹¥Æ¡¼¥Ö¥ë¤¬É¬ÍפǤ¢¤ê¡¢ -16 ¥Ó¥Ã¥È¥³¡¼¥É¤Î¾ì¹ç¤Ï¤³¤Î¥Æ¡¼¥Ö¥ë¤Ï¤«¤Ê¤êÂ礭¤Ê¤â¤Î¤È¤Ê¤ë¡£ +ISO-8859-1 文字セットを使うほとんどのユーザにとって、 +この事実は、ASCII の範囲外を使った文字は +二つのバイトに符号化されるということを意味する。このことから +(UTF-8 を使うと、ISO-8859-1を使用している)元々のテキストファイルのサイズから +1 〜 2 パーセント大きくなってしまうことになる。 +ロシア語やギリシャ語を利用するユーザーにとっては、 +これによって元のテキストは 2 倍の大きさになることになる。 +なぜならこれらの言語はほとんどが ASCII の範囲外だからである。 +現在 16-bit コードを広く利用している日本語を利用するユーザには +3 バイト必要となる。 +Unicode への変換にアルゴリズム的変換をすればよい文字セットがある +(特に ISO-8859-1)一方、一般的には変換テーブルが必要であり、 +16 ビットコードの場合はこのテーブルはかなり大きなものとなる。 .LP -UTF-8 ¤Ï¼«¸ÊƱ´üŪ¤Ç¤¢¤ë¡£10xxxxxx ¤Ï½ªÃ¼¤Ç¤¢¤ê¡¢¤Û¤«¤Î¥Ð¥¤¥È¤Ï¥³¡¼¥É¤Î -ÀèƬ¤Ç¤¢¤ë¡£UTF-8 ¤Îʸ»úÎó¤Ë¤ª¤±¤ë ASCII ¤Î¥Ð¥¤¥È¤Ï¡¢¾ï¤Ë¤½¤Îʸ»ú¼«¿È¤ò -ɽ¸½¤¹¤ë¤³¤È¤ËÃíÌܤ·¤Æ¤Û¤·¤¤¡£Æäˡ¢´ö¤Ä¤«¤ÎÂ礭¤Ê¥³¡¼¥É¤Î¥Ñ¡¼¥È¤ò·ÁÀ® -¤¹¤ë¤¿¤á¤Ë¡¢NUL (\(aq\\0\(aq)) ¤ä \(aq/\(aq ¤òËä¤á¹þ¤àɬÍפϤʤ¤¡£ +UTF-8 は自己同期的である。10xxxxxx は終端であり、ほかのバイトはコードの +先頭である。UTF-8 の文字列における ASCII のバイトは、常にその文字自身を +表現することに注目してほしい。特に、幾つかの大きなコードのパートを形成 +するために、NUL (\(aq\\0\(aq)) や \(aq/\(aq を埋め込む必要はない。 .LP -ASCII ¤È NUL ¤È \(aq/\(aq ¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¤¿¤á¡¢¥«¡¼¥Í¥ë¤Ï UTF-8 ¤ò -»ÈÍѤ·¤Æ¤¤¤ë¤³¤È¤òÆä˰ռ±¤·¤Ê¤¯¤Æ¤âÎɤ¤¡£ -¥«¡¼¥Í¥ë¤Ï¥Ð¥¤¥È¤¬²¿¤ò¤¢¤é¤ï¤·¤Æ¤¤¤ë¤«¤ËÃí°Õ¤¹¤ëɬÍפ¬¤Ê¤¤¡£ +ASCII と NUL と \(aq/\(aq は変更されないため、カーネルは UTF-8 を +使用していることを特に意識しなくても良い。 +カーネルはバイトが何をあらわしているかに注意する必要がない。 .LP -Unicode ¥Ç¡¼¥¿Îó¤Î¥ì¥ó¥À¥ê¥ó¥°¤Ïŵ·¿Åª¤Ë¤Ï Unicode ¤Î¥µ¥Ö¥»¥Ã¥È¤«¤é -¥°¥ê¥Õ¤Ø¤Î¥Þ¥Ã¥×¤Ç¤¢¤ë"¥µ¥Ö¥Õ¥©¥ó¥È(subfont)"¥Æ¡¼¥Ö¥ë¤òÍøÍѤ·¤Æ -¹Ô¤ï¤ì¤ë¡£¥«¡¼¥Í¥ëÆâÉô¤Ç¤Ï¡¢Unicode ¤ò ¥Ó¥Ç¥ª RAM ÆâÉô¤Ë¥í¡¼¥É¤µ¤ì¤¿ -¥µ¥Ö¥Õ¥©¥ó¥È¤È¤·¤Æµ­½Ò¤¹¤ë¡£¤³¤ì¤Ï¡¢UTF-8 ¥â¡¼¥É¤Ç¤Ï 512 ¤Î°Û¤Ê¤Ã¤¿¥·¥ó¥Ü¥ë¤ò -»ý¤Ã¤¿Ê¸»ú½¸¹ç¤òÍøÍѲÄǽ¤Ç¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -¤³¤ì¤Ï¡¢ÆüËܸ졢Ãæ¹ñ¸ì¡¢´Ú¹ñ¸ì¤Ç¤Ï½½Ê¬¤Ç¤Ï¤Ê¤¤¡¢¤·¤«¤·¡¢¤½¤Î¾¤ÎÍøÍÑ¤Ç¤Ï -½½Ê¬¤Ç¤¢¤ë¡£ +Unicode データ列のレンダリングは典型的には Unicode のサブセットから +グリフへのマップである"サブフォント(subfont)"テーブルを利用して +行われる。カーネル内部では、Unicode を ビデオ RAM 内部にロードされた +サブフォントとして記述する。これは、UTF-8 モードでは 512 の異なったシンボルを +持った文字集合を利用可能であることを意味する。 +これは、日本語、中国語、韓国語では十分ではない、しかし、その他の利用では +十分である。 .LP -¸½ºß¤Î¤È¤³¤í¡¢¥³¥ó¥½¡¼¥ë¥É¥é¥¤¥Ð¤Ï¹çÀ®Ê¸»ú¤ò°·¤¨¤Ê¤¤¡£ -½¾¤Ã¤Æ¡¢¥¿¥¤¸ì¡¢¥¹¡¼¸ì¤ä¤½¤Î¾¤Î¹çÀ®Ê¸»ú¤¬É¬ÍפÊʸ¾Ï¤Ï -¥³¥ó¥½¡¼¥ë¤Ç¤Ï°·¤¨¤Ê¤¤¡£ -.SS "ISO 2022 ¤È ISO 4873" -ISO 2022 ¤È ISO 4873 ɸ½à¤Ç¤Ï¡¢ -VT100 ¤ÎÆ°ºî¤Ë´ð¤Å¤¤¤¿¥Õ¥©¥ó¥È¥³¥ó¥È¥í¡¼¥ë¥â¥Ç¥ë¤ò½Ò¤Ù¤é¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥â¥Ç¥ë¤Ï Linux ¥«¡¼¥Í¥ë¤ä +現在のところ、コンソールドライバは合成文字を扱えない。 +従って、タイ語、スー語やその他の合成文字が必要な文章は +コンソールでは扱えない。 +.SS "ISO 2022 と ISO 4873" +ISO 2022 と ISO 4873 標準では、 +VT100 の動作に基づいたフォントコントロールモデルを述べられている。 +このモデルは Linux カーネルや .BR xterm (1) -¤Ë¤ª¤¤¤Æ(ÉôʬŪ¤Ë)¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£¤³¤Îɸ½à¤ÏÆüËܤä´Ú¹ñ¤Ë¤ª¤¤¤Æ¤è¤¯ -ÍѤ¤¤é¤ì¤ë¡£ +において(部分的に)サポートされている。この標準は日本や韓国においてよく +用いられる。 .LP -G0, G1, G2, G3 ¤È¸Æ¤Ð¤ì¤ë 4 ¤Ä¤Î¿Þ·Áʸ»ú½¸¹ç¤¬¤¢¤ë¡£ -¤³¤ì¤é¤Î¤¦¤Á¤Î¤Ò¤È¤Ä¤Ï¡¢ºÇ¾å°Ì¥Ó¥Ã¥È¤¬ 0 ¤Ç¤¢¤ë¥³¡¼¥É¤Î¤¿¤á¤Î¸½ºß¤Îʸ»ú½¸¹ç -(½é´üÃÍ¤Ï G0)¡¢¤Þ¤¿¤Ò¤È¤Ä¤ÏºÇ¾å°Ì¥Ó¥Ã¥È¤¬ 1 ¤Ç¤¢¤ë¥³¡¼¥É¤Î¤¿¤á¤Î¸½ºß¤Î -ʸ»ú½¸¹ç(½é´üÃÍ¤Ï G1)¤Ç¤¢¤ë¡£¤½¤ì¤¾¤ì¤Î¿Þ·Áʸ»ú½¸¹ç¤Ï 94 ¤« 96 ¤Îʸ -»ú¤ò»ý¤Á¡¢´ðËÜŪ¤Ë 7-bit¤Îʸ»ú½¸¹ç¤Ç¤¢¤ê¡¢040-0177 (041-0176) ¤« -0240-0377 (0241-0376)¤Î¥³¡¼¥É¤ò»È¤¦¡£ -G0 ¤Ï¾ï¤Ë 94 ʸ»ú¤Ç 041-0176 ¤Î¥³¡¼¥É¤ò»ÈÍѤ¹¤ë¡£ +G0, G1, G2, G3 と呼ばれる 4 つの図形文字集合がある。 +これらのうちのひとつは、最上位ビットが 0 であるコードのための現在の文字集合 +(初期値は G0)、またひとつは最上位ビットが 1 であるコードのための現在の +文字集合(初期値は G1)である。それぞれの図形文字集合は 94 か 96 の文 +字を持ち、基本的に 7-bitの文字集合であり、040-0177 (041-0176) か +0240-0377 (0241-0376)のコードを使う。 +G0 は常に 94 文字で 041-0176 のコードを使用する。 .LP -ʸ»ú½¸¹ç¤ÎÀÚ¤êÂؤ¨¤Ï¥·¥Õ¥È¥Õ¥¡¥ó¥¯¥·¥ç¥ó \fB^N\fP (SO ¤Þ¤¿¤Ï LS1), -\fB^O\fP (SI ¤Þ¤¿¤Ï LS0), ESC n (LS2), ESC o (LS3), ESC N (SS2), ESC O (SS3), -ESC ~ (LS1R), ESC } (LS2R), ESC | (LS3R) ¤ò»È¤Ã¤Æ¹Ô¤ï¤ì¤ë¡£ -¥Õ¥¡¥ó¥¯¥·¥ç¥ó LS\fIn\fP ¤ÏºÇ¾å°Ì¥Ó¥Ã¥È¤¬ 0 ¤Ç¤¢¤ë¥³¡¼¥É¤Î¤¿¤á¤Îʸ»ú½¸¹ç¤ò -G\fIn\fP ¤ËÀßÄꤹ¤ë¡£ -¥Õ¥¡¥ó¥¯¥·¥ç¥ó LS\fIn\fPR ¤ÏºÇ¾å°Ì¥Ó¥Ã¥È¤¬ 1 ¤Ç¤¢¤ë¥³¡¼¥É¤Î¤¿¤á¤Îʸ»ú¥»¥Ã¥È¤ò -G\fIn\fP ¤ËÀßÄꤹ¤ë¡£ -¥Õ¥¡¥ó¥¯¥·¥ç¥ó SS\fIn\fP ¤Ï(ºÇ¾å°Ì¥Ó¥Ã¥È¤ÎÃͤˤ«¤«¤ï¤é¤º)¼¡¤Îʸ»ú¤Î¤ß -ʸ»ú½¸¹ç¤ò G\fIn\fP (\fIn\fP=2 ¤Þ¤¿¤Ï 3)¤ËÀßÄꤹ¤ë¡£ +文字集合の切り替えはシフトファンクション \fB^N\fP (SO または LS1), +\fB^O\fP (SI または LS0), ESC n (LS2), ESC o (LS3), ESC N (SS2), ESC O (SS3), +ESC ~ (LS1R), ESC } (LS2R), ESC | (LS3R) を使って行われる。 +ファンクション LS\fIn\fP は最上位ビットが 0 であるコードのための文字集合を +G\fIn\fP に設定する。 +ファンクション LS\fIn\fPR は最上位ビットが 1 であるコードのための文字セットを +G\fIn\fP に設定する。 +ファンクション SS\fIn\fP は(最上位ビットの値にかかわらず)次の文字のみ +文字集合を G\fIn\fP (\fIn\fP=2 または 3)に設定する。 .LP -94 ʸ»ú½¸¹ç¤Ç¤Ï¡¢¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ ESC ( xx (G0 ÍÑ), ESC ) xx (G1 -ÍÑ), ESC * xx (G2 ÍÑ), ESC + xx (G3 ÍÑ) ¤Ë¤è¤Ã¤Æ¡¢G\fIn\fP ʸ»ú½¸¹ç -¤òÍѤ¤¤ë¤è¤¦¤Ë»Ø¼¨¤µ¤ì¤ë¡£ -xx ¤Ï "ISO 2375 International Register of Coded Character Sets" ¤Ç -·è¤á¤é¤ì¤Æ¤¤¤ë°ìʸ»ú¡¢¤Þ¤¿¤ÏÆóʸ»ú¤Ç¤¢¤ë¡£ -¤¿¤È¤¨¤Ð ESC ( @ ¤Ï ISO 646 ʸ»ú½¸¹ç¤ò G0 ¤È¤·¤ÆÁª¤Ó¡¢ESC ( A -¤Ï(¥Ê¥ó¥Ð¡¼¥µ¥¤¥ó(¡ô)¤ÎÂå¤ï¤ê¤Ë¡¢¥Ý¥ó¥É(¡ò)¤ò»ý¤Ä) UK ¥¹¥¿¥ó¥À¡¼¥Éʸ»ú½¸¹ç¤ò -ÁªÂò¤¹¤ë¡£ESC ( B ¤Ï(Ä̲ߵ­¹æ¤Î¤«¤ï¤ê¤Ë¥À¥é¡¼(¡ð)¤ò»ý¤Ä) ASCII¤òÁªÂò¤¹¤ë¡£ -ESC ( M ¤Ï ¥¢¥Õ¥ê¥«¸À¸ì(African languages) ¤òÁªÂò¤·¡¢ESC -( ! A ¤Ï ¥­¥å¡¼¥Ð¸ì(Cuban)ʸ»ú½¸¹ç¤òÁªÂò¤¹¤ë¡£¤Ê¤É¤Ê¤É¡Ä +94 文字集合では、エスケープシーケンス ESC ( xx (G0 用), ESC ) xx (G1 +用), ESC * xx (G2 用), ESC + xx (G3 用) によって、G\fIn\fP 文字集合 +を用いるように指示される。 +xx は "ISO 2375 International Register of Coded Character Sets" で +決められている一文字、または二文字である。 +たとえば ESC ( @ は ISO 646 文字集合を G0 として選び、ESC ( A +は(ナンバーサイン(#)の代わりに、ポンド(£)を持つ) UK スタンダード文字集合を +選択する。ESC ( B は(通貨記号のかわりにダラー($)を持つ) ASCIIを選択する。 +ESC ( M は アフリカ言語(African languages) を選択し、ESC +( ! A は キューバ語(Cuban)文字集合を選択する。などなど… .LP -96-ʸ»ú½¸¹ç¤Ç¤Ï¡¢¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ ESC -\- xx (G1 ÍÑ), ESC . xx (G2 ÍÑ), ECS / xx (G3 ÍÑ)¤òÍѤ¤¤ë¤³¤È¤Ç¡¢ -G\fIn\fP ʸ»ú½¸¹ç¤ò»ÈÍѤ¹¤ë¤è¤¦¤Ë»Ø¼¨¤µ¤ì¤ë¡£ -Î㤨¤Ð¡¢ESC - G ¤Ï¥Ø¥Ö¥é¥¤¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È(Hebrew alphabet) ¤ò -G1 ¤È¤·¤ÆÁªÂò¤¹¤ë¡£ +96-文字集合では、エスケープシーケンス ESC +\- xx (G1 用), ESC . xx (G2 用), ECS / xx (G3 用)を用いることで、 +G\fIn\fP 文字集合を使用するように指示される。 +例えば、ESC - G はヘブライアルファベット(Hebrew alphabet) を +G1 として選択する。 .LP -¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú½¸¹ç¤Ç¤Ï¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ E $ xx ¤Þ¤¿¤Ï ESC $ ( xx -(G0 ÍÑ), ESC $ ) xx (G1 ÍÑ), ESC $ * xx (G2 ÍÑ), ESC$ + xx (G3 ÍÑ) ¤ò -ÍѤ¤¤ë¤³¤È¤Ç¡¢ G\fIn\fP ʸ»ú½¸¹ç¤ò»ÈÍѤ¹¤ë¤è¤¦¤Ë»Ø¼¨¤µ¤ì¤ë¡£ -Î㤨¤Ð¡¢ESC $ ( C ¤Ï ´Ú¹ñ¸ì(Korean)ʸ»ú½¸¹ç¤ò G0 ¤È¤·¤ÆÁªÂò¤¹¤ë¡£ -ESC $ B ¤Ë¤è¤Ã¤ÆÁªÂò¤µ¤ì¤ëÆüËܸìʸ»ú¥»¥Ã¥È¤Ï¡¢¤è¤êºÇ¶á¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï -ESC & @ ESC $ B ¤Ë¤è¤Ã¤ÆÁªÂò¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ +マルチバイト文字集合ではエスケープシーケンス E $ xx または ESC $ ( xx +(G0 用), ESC $ ) xx (G1 用), ESC $ * xx (G2 用), ESC$ + xx (G3 用) を +用いることで、 G\fIn\fP 文字集合を使用するように指示される。 +例えば、ESC $ ( C は 韓国語(Korean)文字集合を G0 として選択する。 +ESC $ B によって選択される日本語文字セットは、より最近のバージョンでは +ESC & @ ESC $ B によって選択されるようになった。 .LP -ISO 4873 ¤Ï¤è¤êÀ©¸Â¤µ¤ì¤¿Ê¸»ú½¸¹ç¤ÎÍøÍѤòµ¬Äꤹ¤ë¡¢¤½¤Îµ¬Äê¤Ç -¤Ï¡¢G0 ¤Ï(¾ï¤Ë ASCII¤Ë)¸ÇÄꤵ¤ì¤ë¡£½¾¤Ã¤Æ¡¢G1, G2, G3 ¤ÏºÇ¾å°Ì¥Ó¥Ã¥È¤¬ -¥»¥Ã¥È¤µ¤ì¤¿¥³¡¼¥É¤È¤·¤Æ¤Î¤ß¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ -Æäˡ¢\fB^N\fP ¤È \fB^O\fP ¤ÏÍѤ¤¤é¤ì¤º¡¢ESC ( xx ¤Ï xx=B ¤È¤·¤Æ¤Î¤ß -ÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¡¢ -ESC ) xx, ESC * xx, ESC + xx ¤Ï¤½¤ì¤¾¤ì ESC \- xx, ESC . xx, ESC / xx ¤È -Åù²Á¤Ë¤Ê¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +ISO 4873 はより制限された文字集合の利用を規定する、その規定で +は、G0 は(常に ASCIIに)固定される。従って、G1, G2, G3 は最上位ビットが +セットされたコードとしてのみ呼び出すことができる。 +特に、\fB^N\fP と \fB^O\fP は用いられず、ESC ( xx は xx=B としてのみ +用いることができ、 +ESC ) xx, ESC * xx, ESC + xx はそれぞれ ESC \- xx, ESC . xx, ESC / xx と +等価になる。 +.SH 関連項目 .BR console (4), .BR console_codes (4), .BR console_ioctl (4), diff --git a/release/man7/complex.7 b/release/man7/complex.7 index c39d0633..02516662 100644 --- a/release/man7/complex.7 +++ b/release/man7/complex.7 @@ -6,41 +6,41 @@ .\" Translated 2003-08-02, Akihiro MOTOKI .\" Updated 2005-02-20, Akihiro MOTOKI .\" -.\"WORD: operations ±é»» -.\"WORD: imaginary unit µõ¿ôñ°Ì +.\"WORD: operations 演算 +.\"WORD: imaginary unit 虚数単位 .\" .TH COMPLEX 7 2011-09-16 "" "Linux Programmer's Manual" -.SH ̾Á° -complex \- Ê£ÁÇ¿ô¤Î¿ô³Ø¤Î´ðÁà -.SH ½ñ¼° +.SH 名前 +complex \- 複素数の数学の基礎 +.SH 書式 .B #include -.SH ÀâÌÀ -Ê£ÁÇ¿ô¤Ï z = a+b*i ¤Î·Á¼°¤Î¿ô¤Ç¤¢¤ë¡£ a ¤È b ¤Ï¼Â¿ô¤Ç¤¢¤ê¡¢ -i ¤Ï i = sqrt(\-1) ¤Ä¤Þ¤ê i*i = \-1 ¤Î´Ø·¸¤òËþ¤¿¤¹¡£ +.SH 説明 +複素数は z = a+b*i の形式の数である。 a と b は実数であり、 +i は i = sqrt(\-1) つまり i*i = \-1 の関係を満たす。 .br -Ê£ÁÇ¿ô¤òɽ¸½¤¹¤ëÊ̤ÎÊýË¡¤â¤¢¤ë¡£¼Â¿ô¤ÎÁÈ (a,b) ¤Ï XºÂɸ¡¢YºÂɸ¤Ç -»ØÄꤵ¤ì¤¿Ê¿Ì̾å¤ÎÅÀ¤È¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤ÎƱ¤¸ÅÀ¤Ï¡¢¼Â¿ô¤ÎÁÈ -(r,phi) ¤Çɽ¤¹¤³¤È¤â¤Ç¤­¤ë¡£r ¤Ï¸¶ÅÀ 0 ¤«¤é¤Îµ÷Î¥¤Ç¤¢¤ê¡¢phi ¤Ï -X¼´¤È 0 ¤È z ¤ò·ë¤ÖÀþʬ¤¬¤Ê¤¹³Ñ¤Ç¤¢¤ë¡£¤³¤Î¤È¤­¡¢ +複素数を表現する別の方法もある。実数の組 (a,b) は X座標、Y座標で +指定された平面上の点と見ることができる。この同じ点は、実数の組 +(r,phi) で表すこともできる。r は原点 0 からの距離であり、phi は +X軸と 0 と z を結ぶ線分がなす角である。このとき、 z = r*exp(i*phi) = r*(cos(phi)+i*sin(phi)) -¤Î´Ø·¸¤¬À®¤êΩ¤Ä¡£ +の関係が成り立つ。 .PP -2¤Ä¤ÎÊ£ÁÇ¿ô z = a+b*i, w = c+d*i ¤Ë´Ø¤¹¤ë´ðËܱ黻¤Ï¼¡¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë: +2つの複素数 z = a+b*i, w = c+d*i に関する基本演算は次のように定義される: .TP -.B ²ÃË¡: z+w = (a+c) + (b+d)*i +.B 加法: z+w = (a+c) + (b+d)*i .TP -.B ¾èË¡: z*w = (a*c \- b*d) + (a*d + b*c)*i +.B 乗法: z*w = (a*c \- b*d) + (a*d + b*c)*i .TP -.B ½üË¡: z/w = ((a*c + b*d)/(c*c + d*d)) + ((b*c \- a*d)/(c*c + d*d))*i +.B 除法: z/w = ((a*c + b*d)/(c*c + d*d)) + ((b*c \- a*d)/(c*c + d*d))*i .PP -¤Û¤È¤ó¤ÉÁ´¤Æ¤Î¿ô³Ø´Ø¿ô¤Ë´Ø¤·¤ÆÊ£ÁÇ¿ôÈǤ¬¤¢¤ë¤¬¡¢ -Ê£ÁÇ¿ôÀìÍѤδؿô¤â´ö¤Ä¤«¤¢¤ë¡£ -.SH Îã -»ÈÍѤ¹¤ë C ¥³¥ó¥Ñ¥¤¥é¤¬ C99 ɸ½à¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ì¤ÐÊ£ÁÇ¿ô¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -\fI\-lm\fP ¤ò¤Ä¤±¤Æ¥ê¥ó¥¯¤¹¤ë¤³¤È¡£µõ¿ôñ°Ì¤Ï I ¤Çɽ¸½¤µ¤ì¤ë¡£ +ほとんど全ての数学関数に関して複素数版があるが、 +複素数専用の関数も幾つかある。 +.SH 例 +使用する C コンパイラが C99 標準をサポートしていれば複素数を使うことができる。 +\fI\-lm\fP をつけてリンクすること。虚数単位は I で表現される。 .sp .nf -/* exp(i * pi) == \-1 ¤È¤Ê¤ë¤³¤È¤ò³Îǧ¤¹¤ë */ +/* exp(i * pi) == \-1 となることを確認する */ #include /* for atan */ #include #include @@ -53,7 +53,7 @@ main(void) printf("%f + %f * i\\n", creal(z), cimag(z)); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cabs (3), .BR cacos (3), .BR cacosh (3), diff --git a/release/man7/credentials.7 b/release/man7/credentials.7 index 1414e75b..ea739823 100644 --- a/release/man7/credentials.7 +++ b/release/man7/credentials.7 @@ -27,27 +27,27 @@ .\" Updated 2008-08-04, Akihiro MOTOKI, LDP v3.05 .\" .TH CREDENTIALS 7 2008-06-03 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -credentials \- ǧ¾Ú¤ËÍѤ¤¤é¤ì¤ë¥×¥í¥»¥¹¤Î¼±ÊÌ»Ò -.SH ÀâÌÀ -.SS ¥×¥í¥»¥¹ID (PID) -³Æ¥×¥í¥»¥¹¤Ï¡¢Éé¤Ç¤Ê¤¤À°¿ô¤Î°ì°Õ¤Ê¼±Ê̻Ҥò»ý¤Ä¡£ -¤³¤Î¼±ÊÌ»Ò¤Ï +.SH 名前 +credentials \- 認証に用いられるプロセスの識別子 +.SH 説明 +.SS プロセスID (PID) +各プロセスは、負でない整数の一意な識別子を持つ。 +この識別子は .BR fork (2) -¤ò»È¤Ã¤Æ¥×¥í¥»¥¹¤¬À¸À®¤µ¤ì¤ëºÝ¤Ë³ä¤êÅö¤Æ¤é¤ì¤ë¡£ -¥×¥í¥»¥¹¤Ï +を使ってプロセスが生成される際に割り当てられる。 +プロセスは .BR getpid (2) -¤ò»È¤Ã¤Æ¼«Ê¬¤Î PID ¤ò¼èÆÀ¤Ç¤­¤ë¡£ -PID ¤Ï +を使って自分の PID を取得できる。 +PID は .I pid_t -·¿¤Çɽ¸½¤µ¤ì¤ë +型で表現される .RI ( pid_t -¤Ï +は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ +で定義されている)。 -PID ¤Ï³Æ¼ï¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ºîÍѤ¹¤ë¥×¥í¥»¥¹¤ò -ÆÃÄꤹ¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£°Ê²¼¤ËÎã¤òµó¤²¤ë: +PID は各種のシステムコールでそのシステムコールが作用するプロセスを +特定するために使用される。以下に例を挙げる: .BR kill (2), .BR ptrace (2), .BR setpriority (2), @@ -66,205 +66,205 @@ PID .\" .BR waitid (2), .\" .BR wait4 (2), -¥×¥í¥»¥¹¤Î PID ¤Ï +プロセスの PID は .BR execve (2) -¤ÎÁ°¸å¤ÇÉÔÊѤǤ¢¤ë¡£ -.SS ¿Æ¥×¥í¥»¥¹ ID (PPID) -¥×¥í¥»¥¹¤Î¿Æ¥×¥í¥»¥¹¤Î ID ¤Ï¡¢ +の前後で不変である。 +.SS 親プロセス ID (PPID) +プロセスの親プロセスの ID は、 .BR fork (2) -¤ò»È¤Ã¤Æ¤½¤Î¥×¥í¥»¥¹¤òÀ¸À®¤·¤¿¥×¥í¥»¥¹¤ò¼¨¤¹¡£ -¥×¥í¥»¥¹¤Ï +を使ってそのプロセスを生成したプロセスを示す。 +プロセスは .BR getppid (2) -¤ò»È¤Ã¤Æ¼«Ê¬¤Î PPID ¤ò¼èÆÀ¤Ç¤­¤ë¡£ -PPID ¤Ï +を使って自分の PPID を取得できる。 +PPID は .I pid_t -·¿¤Çɽ¸½¤µ¤ì¤ë¡£ +型で表現される。 -¥×¥í¥»¥¹¤Î PPID ¤Ï +プロセスの PPID は .BR execve (2) -¤ÎÁ°¸å¤ÇÉÔÊѤǤ¢¤ë¡£ -.SS ¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤È¥»¥Ã¥·¥ç¥ó ID -³Æ¥×¥í¥»¥¹¤Ï¥»¥Ã¥·¥ç¥ó ID ¤È¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤ò»ý¤Ä¡£ -¤³¤ì¤é¤Î ID ¤Ï¤É¤Á¤é¤â +の前後で不変である。 +.SS プロセスグループ ID とセッション ID +各プロセスはセッション ID とプロセスグループ ID を持つ。 +これらの ID はどちらも .I pid_t -·¿¤Çɽ¸½¤µ¤ì¤ë¡£ -¥×¥í¥»¥¹¤Ï¡¢¤½¤ì¤¾¤ì +型で表現される。 +プロセスは、それぞれ .BR getsid (2), .BR getpgrp (2) -¤ò»È¤Ã¤Æ¼«Ê¬¤Î¥»¥Ã¥·¥ç¥ó ID¡¢¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤ò¼èÆÀ¤Ç¤­¤ë¡£ +を使って自分のセッション ID、プロセスグループ ID を取得できる。 .BR fork (2) -¤ÇÀ¸À®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤Î¥»¥Ã¥·¥ç¥ó ID ¤È¥×¥í¥»¥¹¥°¥ë¡¼¥× ID -¤ò·Ñ¾µ¤¹¤ë¡£¥×¥í¥»¥¹¤Î¥»¥Ã¥·¥ç¥ó ID ¤È¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤Ï +で生成された子プロセスは親プロセスのセッション ID とプロセスグループ ID +を継承する。プロセスのセッション ID とプロセスグループ ID は .BR execve (2) -¤ÎÁ°¸å¤ÇÉÔÊѤǤ¢¤ë¡£ +の前後で不変である。 -¥»¥Ã¥·¥ç¥ó¤È¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Î³µÇ°¤Ï¡¢¥·¥§¥ë¤Î¥¸¥ç¥ÖÀ©¸æ¤ò¹Ô¤¦¤¿¤á¤Ë -¹Í°Æ¤µ¤ì¤¿¤â¤Î¤Ç¤¢¤ë¡£ -¥×¥í¥»¥¹¥°¥ë¡¼¥× (»þ¤Ë¤Ï¡Ö¥¸¥ç¥Ö¡×¤È¸Æ¤Ð¤ì¤ë¤³¤È¤â¤¢¤ë) ¤Ï¡¢ -Ʊ¤¸¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤ò¶¦Í­¤¹¤ë¥×¥í¥»¥¹¤Î½¸¤Þ¤ê¤Ç¤¢¤ë¡£ -¥·¥§¥ë¤Ï¡¢°ì¤Ä¤Î¥³¥Þ¥ó¥É¤â¤·¤¯¤Ï¥Ñ¥¤¥×¥é¥¤¥ó¤Î¼Â¹Ô¤Ë»È¤ï¤ì¤ë¥×¥í¥»¥¹·²¤Ë -ÂФ·¤Æ°ì¤Ä¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤òÀ¸À®¤¹¤ë -(Î㤨¤Ð¡¢¥³¥Þ¥ó¥É "ls\ |\ wc" ¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤ËÀ¸À®¤µ¤ì¤ëÆó¤Ä¤Î¥×¥í¥»¥¹¤Ï -Ʊ¤¸¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ËÃÖ¤«¤ì¤ë)¡£ -½ê°¤¹¤ë¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ï +セッションとプロセスグループの概念は、シェルのジョブ制御を行うために +考案されたものである。 +プロセスグループ (時には「ジョブ」と呼ばれることもある) は、 +同じプロセスグループ ID を共有するプロセスの集まりである。 +シェルは、一つのコマンドもしくはパイプラインの実行に使われるプロセス群に +対して一つのプロセスグループを生成する +(例えば、コマンド "ls\ |\ wc" を実行するために生成される二つのプロセスは +同じプロセスグループに置かれる)。 +所属するプロセスグループは .BR setpgid (2) -¤ò»È¤Ã¤ÆÀßÄê¤Ç¤­¤ë¡£ -¼«¿È¤Î¥×¥í¥»¥¹ ID ¤¬¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤ÈƱ¤¸¥×¥í¥»¥¹¤Ï¡¢ -¤½¤Î¥°¥ë¡¼¥×¤Î¡Ö¥×¥í¥»¥¹¥°¥ë¡¼¥×¡¦¥ê¡¼¥À¡¼¡×¤Ç¤¢¤ë¡£ +を使って設定できる。 +自身のプロセス ID がプロセスグループ ID と同じプロセスは、 +そのグループの「プロセスグループ・リーダー」である。 -¥»¥Ã¥·¥ç¥ó¤Ï¡¢Æ±¤¸¥»¥Ã¥·¥ç¥ó ID ¤ò¶¦Í­¤¹¤ë¥×¥í¥»¥¹¤Î½¸¤Þ¤ê¤Ç¤¢¤ë¡£ -¤¢¤ë°ì¤Ä¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÎÁ´¥á¥ó¥Ð¡¼¤ÏƱ¤¸¥»¥Ã¥·¥ç¥ó ID ¤ò»ý¤Ä -(¤Ä¤Þ¤ê¡¢°ì¤Ä¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð¡¼¤ÏÁ´¤ÆƱ¤¸¥»¥Ã¥·¥ç¥ó¤Ë½ê°¤·¡¢ -¤³¤ì¤Ë¤è¤ê¡¢¥»¥Ã¥·¥ç¥ó¤È¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÇÆó³¬ÁØ¤Î¥×¥í¥»¥¹³¬Áؤ¬·ÁÀ®¤Ç¤­¤ë)¡£ -¿·¤¿¤Ê¥»¥Ã¥·¥ç¥ó¤ÎÀ¸À®¤Ï¥×¥í¥»¥¹¤¬ +セッションは、同じセッション ID を共有するプロセスの集まりである。 +ある一つのプロセスグループの全メンバーは同じセッション ID を持つ +(つまり、一つのプロセスグループのメンバーは全て同じセッションに所属し、 +これにより、セッションとプロセスグループで二階層のプロセス階層が形成できる)。 +新たなセッションの生成はプロセスが .BR setsid (2) -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¹Ô¤¦¡£ +を呼び出すことで行う。 .BR setsid (2) -¤Ï¡¢ +は、 .BR setsid (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î PID ¤ÈƱ¤¸ÃͤΥ»¥Ã¥·¥ç¥ó ID ¤ò»ý¤Ä -¿·¤¿¤Ê¥»¥Ã¥·¥ç¥ó¤òÀ¸À®¤¹¤ë¡£ -¥»¥Ã¥·¥ç¥ó¤ÎÀ¸À®¼Ô¤Ï¡Ö¥»¥Ã¥·¥ç¥ó¡¦¥ê¡¼¥À¡¼¡×¤È¸Æ¤Ð¤ì¤ë¡£ -.SS ¥æ¡¼¥¶ ID ¤È¥°¥ë¡¼¥× ID -³Æ¥×¥í¥»¥¹¤Ï¡¢¿ô¼ïÎà¤Î¥æ¡¼¥¶ ID ¤È¥°¥ë¡¼¥× ID ¤ò»ý¤Ä¡£ -¥æ¡¼¥¶ ID¡¢¥°¥ë¡¼¥× ID ¤ÏÀ°¿ô¤Ç¡¢¤½¤ì¤¾¤ì +を呼び出したプロセスの PID と同じ値のセッション ID を持つ +新たなセッションを生成する。 +セッションの生成者は「セッション・リーダー」と呼ばれる。 +.SS ユーザ ID とグループ ID +各プロセスは、数種類のユーザ ID とグループ ID を持つ。 +ユーザ ID、グループ ID は整数で、それぞれ .IR uid_t , .I gid_t -·¿¤Çɽ¸½¤µ¤ì¤ë (¤³¤ì¤é¤Ï +型で表現される (これらは .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ +で定義されている)。 -Linux ¤Ç¤Ï¡¢³Æ¥×¥í¥»¥¹¤Ï°Ê²¼¤Î¤è¤¦¤Ê¼ïÎà¤Î¥æ¡¼¥¶ ID ¤È¥°¥ë¡¼¥× ID ¤ò»ý¤Ä¡£ +Linux では、各プロセスは以下のような種類のユーザ ID とグループ ID を持つ。 .IP * 3 -¼Â¥æ¡¼¥¶ ID ¤È¼Â¥°¥ë¡¼¥× ID¡£ -¤³¤ì¤é¤Î ID ¤Ë¤è¤ê¥×¥í¥»¥¹¤Î½êÍ­¼Ô¤¬·èÄꤵ¤ì¤ë¡£ -¥×¥í¥»¥¹¤¬¼«Ê¬¤Î¼Â¥æ¡¼¥¶ ID¡¢¼Â¥°¥ë¡¼¥× ID ¤ò¼èÆÀ¤¹¤ë¤Ë¤Ï¡¢¤½¤ì¤¾¤ì +実ユーザ ID と実グループ ID。 +これらの ID によりプロセスの所有者が決定される。 +プロセスが自分の実ユーザ ID、実グループ ID を取得するには、それぞれ .BR getuid (2), .BR getgid (2) -¤ò»ÈÍѤ¹¤ë¡£ +を使用する。 .IP * -¼Â¸ú¥æ¡¼¥¶ ID ¤È¼Â¸ú¥°¥ë¡¼¥× ID¡£ -¤³¤ì¤é¤Î ID ¤Ï¡¢¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¡¢¶¦Í­¥á¥â¥ê¡¢¥»¥Þ¥Õ¥©¤Ê¤É¤Î -¶¦Í­¥ê¥½¡¼¥¹¤Ë¥¢¥¯¥»¥¹¤·¤è¤¦¤È¤·¤¿ºÝ¤Ë¤½¤Î¥×¥í¥»¥¹¤¬¥¢¥¯¥»¥¹µö²Ä¤ò -»ý¤Ã¤Æ¤¤¤ë¤«¤ò¥«¡¼¥Í¥ë¤¬È½Äꤹ¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ -¤Û¤È¤ó¤É¤Î UNIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤ì¤é¤Î ID ¤Ï¥Õ¥¡¥¤¥ë¤Ø¤Î¥¢¥¯¥»¥¹»þ¤Î -¥¢¥¯¥»¥¹µö²Ä¤ÎȽÄê¤Ë¤â»ÈÍѤµ¤ì¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢Linux ¤Ç¤Ï¥Õ¥¡¥¤¥ë¤Ø¤Î¥¢¥¯¥»¥¹µö²Ä¤ÎȽÄê¤Ë¤Ï -¸å½Ò¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à ID ¤¬»ÈÍѤµ¤ì¤ë¡£ -¥×¥í¥»¥¹¤¬¼«Ê¬¤Î¼Â¸ú¥æ¡¼¥¶ ID¡¢¼Â¸ú¥°¥ë¡¼¥× ID ¤ò¼èÆÀ¤¹¤ë¤Ë¤Ï¡¢¤½¤ì¤¾¤ì +実効ユーザ ID と実効グループ ID。 +これらの ID は、メッセージキュー、共有メモリ、セマフォなどの +共有リソースにアクセスしようとした際にそのプロセスがアクセス許可を +持っているかをカーネルが判定するのに使用される。 +ほとんどの UNIX システムでは、これらの ID はファイルへのアクセス時の +アクセス許可の判定にも使用される。 +しかしながら、Linux ではファイルへのアクセス許可の判定には +後述のファイルシステム ID が使用される。 +プロセスが自分の実効ユーザ ID、実効グループ ID を取得するには、それぞれ .BR geteuid (2), .BR getegid (2) -¤ò»ÈÍѤ¹¤ë¡£ +を使用する。 .IP * -Êݸ (saved) set-user-ID ¤ÈÊݸ set-group-ID¡£ -¤³¤ì¤é¤Î ID ¤Ï¡¢set-user-ID ¤ä set-group-ID ¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Ë¤ª¤¤¤Æ¡¢ -¥×¥í¥°¥é¥à¤Î¼Â¹Ô»þ¤ËÀßÄꤵ¤ì¤¿¼Â¸ú ID ¤Î¥³¥Ô¡¼¤òÊݸ¤¹¤ë¤¿¤á¤Ë -»ÈÍѤµ¤ì¤ë +保存 (saved) set-user-ID と保存 set-group-ID。 +これらの ID は、set-user-ID や set-group-ID されたプログラムにおいて、 +プログラムの実行時に設定された実効 ID のコピーを保存するために +使用される .RB ( execve (2) -»²¾È)¡£ -set-user-ID ¥×¥í¥°¥é¥à¤Ï¡¢¼Â¸ú¥æ¡¼¥¶ ID ¤ò¼Â¥æ¡¼¥¶ID ¤ÈÊݸ set-user-ID -¤Î´Ö¤Ç¹Ô¤Ã¤¿¤êÍ褿¤êÀÚ¤êÂؤ¨¤ë¤³¤È¤Ç¡¢Æø¢¤òÆÀ¤¿¤êÍî¤È¤·¤¿¤ê¤Ç¤­¤ë¡£ -¤³¤ÎÀÚ¤êÂؤ¨¤Ï +参照)。 +set-user-ID プログラムは、実効ユーザ ID を実ユーザID と保存 set-user-ID +の間で行ったり来たり切り替えることで、特権を得たり落としたりできる。 +この切り替えは .BR seteuid (2), .BR setreuid (2), .BR setresuid (2) -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¼Â¹Ô¤Ç¤­¤ë¡£ -set-group-ID ¥×¥í¥°¥é¥à¤Ï¡¢ +を呼び出すことで実行できる。 +set-group-ID プログラムは、 .BR setegid (2), .BR setregid (2), .BR setresgid (2) -¤ò»È¤Ã¤ÆƱÍͤΤ³¤È¤¬¤Ç¤­¤ë¡£ -¥×¥í¥»¥¹¤¬¼«Ê¬¤ÎÊݸ set-user-ID¡¢Êݸ set-group-ID ¤ò¼èÆÀ¤¹¤ë¤Ë¤Ï¡¢ +を使って同様のことができる。 +プロセスが自分の保存 set-user-ID、保存 set-group-ID を取得するには、 .BR getresuid(2), .BR getresgids (2) -¤ò¤½¤ì¤¾¤ì»ÈÍѤ¹¤ë¡£ +をそれぞれ使用する。 .IP * -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¡¦¥æ¡¼¥¶ ID ¤È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¡¦¥°¥ë¡¼¥× ID (Linux ¸ÇÍ­)¡£ -¤³¤ì¤é¤Î ID ¤Ï¡¢¸å½Ò¤ÎÊä½õ¥°¥ë¡¼¥× ID ¤ÈÁȤ߹ç¤ï¤»¤Æ»ÈÍѤµ¤ì¡¢ -¥Õ¥¡¥¤¥ë¤Ø¤Î¥¢¥¯¥»¥¹¸¢¤Î·èÄê¤ËÍøÍѤµ¤ì¤ë¡£¾ÜºÙ¤Ï +ファイルシステム・ユーザ ID とファイルシステム・グループ ID (Linux 固有)。 +これらの ID は、後述の補助グループ ID と組み合わせて使用され、 +ファイルへのアクセス権の決定に利用される。詳細は .BR path_resolution (7) -¤ò»²¾È¡£ -¥×¥í¥»¥¹¤Î¼Â¸ú ID (¥æ¡¼¥¶ ID ¤ä ¥°¥ë¡¼¥× ID) ¤¬Êѹ¹¤µ¤ì¤ë¤¿¤Ó¤Ë¡¢ -¥«¡¼¥Í¥ë¤Ï¼«Æ°Åª¤ËÂбþ¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à ID ¤òƱ¤¸ÃͤËÊѹ¹¤¹¤ë¡£ -¤½¤Î·ë²Ì¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à ID ¤ÏÄ̾ï¤ÏÂбþ¤¹¤ë¼Â¸ú ID ¤ÈƱ¤¸ÃͤȤʤꡢ -¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹¸¢¤Î¥Á¥§¥Ã¥¯ÊýË¡¤Ï Linux ¤È¾¤Î UNIX ¥·¥¹¥Æ¥à¤ÇƱ¤¸¤Ç¤¢¤ë¡£ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à ID ¤Ï¼Â¸ú ID ¤È¤Ï°Û¤Ê¤ëÃͤˤ¹¤ë¤³¤È¤¬¤Ç¤­¡¢ -Êѹ¹¤Ï +を参照。 +プロセスの実効 ID (ユーザ ID や グループ ID) が変更されるたびに、 +カーネルは自動的に対応するファイルシステム ID を同じ値に変更する。 +その結果、ファイルシステム ID は通常は対応する実効 ID と同じ値となり、 +ファイルのアクセス権のチェック方法は Linux と他の UNIX システムで同じである。 +ファイルシステム ID は実効 ID とは異なる値にすることができ、 +変更は .BR setfsuid (2) -¤È +と .BR setfsgid (2) -¤ò¸Æ¤Ó½Ð¤·¤Æ¹Ô¤¦¡£ +を呼び出して行う。 .IP * -Êä½õ¥°¥ë¡¼¥× ID¡£ -¤³¤Î ID ¤Ï¡¢¥Õ¥¡¥¤¥ë¤ä¾¤Î¶¦Í­¥ê¥½¡¼¥¹¤Ø¤Î¥¢¥¯¥»¥¹»þ¤Ë¥¢¥¯¥»¥¹µö²Ä¤Î -¥Á¥§¥Ã¥¯¤Ë»ÈÍѤµ¤ì¤ë¡¢ÄɲäΥ°¥ë¡¼¥× ID ¤Î½¸¹ç¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë 2.6.4 ¤è¤êÁ°¤Î Linux ¤Ç¤Ï¡¢°ì¤Ä¤Î¥×¥í¥»¥¹¤¢¤¿¤ê¤Î -Êä½õ¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð¡¼¿ô¤ÏºÇÂç¤Ç 32 ¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë 2.6.4 °Ê¹ß¤Ç¤Ï¡¢°ì¤Ä¤Î¥×¥í¥»¥¹¤¢¤¿¤ê¤Î -Êä½õ¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð¡¼¿ô¤ÏºÇÂç¤Ç 65536 ¤Ç¤¢¤ë¡£ +補助グループ ID。 +この ID は、ファイルや他の共有リソースへのアクセス時にアクセス許可の +チェックに使用される、追加のグループ ID の集合である。 +カーネル 2.6.4 より前の Linux では、一つのプロセスあたりの +補助グループのメンバー数は最大で 32 である。 +カーネル 2.6.4 以降では、一つのプロセスあたりの +補助グループのメンバー数は最大で 65536 である。 .I sysconf(_SC_NGROUPS_MAX) -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¡¢¤¢¤ë¥×¥í¥»¥¹¤¬¥á¥ó¥Ð¡¼¤È¤Ê¤ë¤³¤È¤¬¤Ç¤­¤ë²ÄǽÀ­¤Î¤¢¤ë -Êä½õ¥°¥ë¡¼¥×¿ô¤òÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ +を呼び出すことで、あるプロセスがメンバーとなることができる可能性のある +補助グループ数を知ることができる。 .\" Since kernel 2.6.4, the limit is visible via the read-only file .\" /proc/sys/kernel/ngroups_max. .\" As at 2.6.22-rc2, this file is still read-only. -¥×¥í¥»¥¹¤Ï¡¢¼«Ê¬¤ÎÊä½õ¥°¥ë¡¼¥× ID ¤Î½¸¹ç¤ò +プロセスは、自分の補助グループ ID の集合を .BR getgroups (2) -¤Ç¼èÆÀ¤Ç¤­¡¢ +で取得でき、 .BR setgroups (2) -¤Ç½¸¹ç¤òÊѹ¹¤Ç¤­¤ë¡£ +で集合を変更できる。 .PP .BR fork (2) -¤ÇÀ¸À®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤Î¥æ¡¼¥¶ ID ¤È¥°¥ë¡¼¥× ID ¤ò·Ñ¾µ¤¹¤ë¡£ +で生成された子プロセスは親プロセスのユーザ ID とグループ ID を継承する。 .BR execve (2) -¤Î´Ö¡¢¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶/¥°¥ë¡¼¥× ID ¤ÈÊä½õ¥°¥ë¡¼¥× ID ½¸¹ç¤ÏÉÔÊѤǤ¢¤ë¡£ -¼Â¸ú ID ¤ÈÊݸ¥»¥Ã¥È ID ¤ÏÊѹ¹¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë +の間、プロセスの実ユーザ/グループ ID と補助グループ ID 集合は不変である。 +実効 ID と保存セット ID は変更される可能性がある .RB ( execve (2) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë)¡£ +で説明されている)。 -¾åµ­¤ÎÌÜŪ°Ê³°¤Ë¤â¡¢¥×¥í¥»¥¹¤Î¥æ¡¼¥¶ ID ¤Ï¾¤ÎÍÍ¡¹¤Ê¾ìÌ̤ÇÍøÍѤµ¤ì¤ë¡£ +上記の目的以外にも、プロセスのユーザ ID は他の様々な場面で利用される。 .IP * 3 -¥·¥°¥Ê¥ë¤òÁ÷¤ëµö²Ä¤ÎȽÄê»þ\(em +シグナルを送る許可の判定時\(em .BR kill (2) -»²¾È¡£ +参照。 .IP * -¥×¥í¥»¥¹¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°´ØÏ¢¤Î¥Ñ¥é¥á¡¼¥¿ (nice ÃÍ¡¢ -¥ê¥¢¥ë¥¿¥¤¥à¡¦¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥Ý¥ê¥·¡¼¤äÍ¥ÀèÅÙ¡¢CPU affinity¡¢ -Æþ½ÐÎÏÍ¥ÀèÅÙ) ¤ÎÀßÄêµö²Ä¤ÎȽÄê»þ¡£ -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°´ØÏ¢¤Î¥Ñ¥é¥á¡¼¥¿ÀßÄê¤Ë¤Ï +プロセスのスケジューリング関連のパラメータ (nice 値、 +リアルタイム・スケジューリングポリシーや優先度、CPU affinity、 +入出力優先度) の設定許可の判定時。 +スケジューリング関連のパラメータ設定には .BR setpriority (2), .BR sched_setaffinity (2), .BR sched_setscheduler (2), .BR sched_setparam (2), .BR ioprio_set (2) -¤¬»ÈÍѤµ¤ì¤ë¡£ +が使用される。 .IP * -¥ê¥½¡¼¥¹¾å¸Â¤Î¥Á¥§¥Ã¥¯»þ¡£ +リソース上限のチェック時。 .BR getrlimit (2) -»²¾È¡£ +参照。 .IP * -¥×¥í¥»¥¹¤¬À¸À®¤Ç¤­¤ë inotify ¥¤¥ó¥¹¥¿¥ó¥¹¿ô¤Î¾å¸Â¤Î¥Á¥§¥Ã¥¯»þ¡£ +プロセスが生成できる inotify インスタンス数の上限のチェック時。 .BR inotify (7) -»²¾È¡£ -.SH ½àµò -¥×¥í¥»¥¹ ID¡¢¿Æ¥×¥í¥»¥¹ ID¡¢¥×¥í¥»¥¹¥°¥ë¡¼¥× ID¡¢¥»¥Ã¥·¥ç¥ó ID ¤Ï -POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -¼Â ID¡¢¼Â¸ú ID¡¢Êݸ¥»¥Ã¥È ID ¤Î¥æ¡¼¥¶ ID / ¥°¥ë¡¼¥× ID ¤ª¤è¤Ó -Êä½õ¥°¥ë¡¼¥× ID ¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¡¦¥æ¡¼¥¶ ID / ¥°¥ë¡¼¥× ID ¤Ï Linux ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -POSIX ¤Î¥¹¥ì¥Ã¥É»ÅÍͤǤϡ¢¤³¤ì¤é¤Î¼±Ê̻Ҥ¬¥×¥í¥»¥¹Æâ¤ÎÁ´¥¹¥ì¥Ã¥É¤Ç -¶¦Í­¤µ¤ì¤ë¤³¤È¤òµá¤á¤Æ¤¤¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢¥«¡¼¥Í¥ë¤Î¥ì¥Ù¥ë¤Ç¤Ï¡¢Linux ¤Ï¥¹¥ì¥Ã¥ÉËè¤ËÊÌ¡¹¤Î -¥æ¡¼¥¶¤È¥°¥ë¡¼¥×¤Ë´Ø¤¹¤ë¼±Ê̻Ҥò´ÉÍý¤·¤Æ¤¤¤ë¡£ -NPTL ¥¹¥ì¥Ã¥É¼ÂÁõ¤¬¡¢(Î㤨¤Ð +参照。 +.SH 準拠 +プロセス ID、親プロセス ID、プロセスグループ ID、セッション ID は +POSIX.1-2001 で規定されている。 +実 ID、実効 ID、保存セット ID のユーザ ID / グループ ID および +補助グループ ID は POSIX.1-2001 で規定されている。 +ファイルシステム・ユーザ ID / グループ ID は Linux による拡張である。 +.SH 注意 +POSIX のスレッド仕様では、これらの識別子がプロセス内の全スレッドで +共有されることを求めている。 +しかしながら、カーネルのレベルでは、Linux はスレッド毎に別々の +ユーザとグループに関する識別子を管理している。 +NPTL スレッド実装が、(例えば .BR setuid (2), .BR setresuid (2) -¤Ê¤É¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤ë) ¥æ¡¼¥¶¤ä¥°¥ë¡¼¥×¤Ë´Ø¤¹¤ë¼±Ê̻ҤËÂФ¹¤ëÊѹ¹¤¬ -¥×¥í¥»¥¹Æâ¤ÎÁ´¤Æ¤Î POSIX ¥¹¥ì¥Ã¥É¤ËÂФ·¤ÆÈ¿±Ç¤µ¤ì¤ë¤³¤È¤òÊݾڤ¹¤ë -¤¿¤á¤Î½èÍý¤ò¹Ô¤Ã¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +などの呼び出しによる) ユーザやグループに関する識別子に対する変更が +プロセス内の全ての POSIX スレッドに対して反映されることを保証する +ための処理を行っている。 +.SH 関連項目 .BR bash (1), .BR csh (1), .BR ps (1), diff --git a/release/man7/ddp.7 b/release/man7/ddp.7 index 30108a63..3a55cafb 100644 --- a/release/man7/ddp.7 +++ b/release/man7/ddp.7 @@ -9,9 +9,9 @@ .\" Translated Mon 6 Dec 1999 by NAKANO Takeo .\" .TH DDP 7 2008-11-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -ddp \- Linux ¤Ç¤Î AppleTalk ¥×¥í¥È¥³¥ë¤Î¼ÂÁõ -.SH ½ñ¼° +.SH 名前 +ddp \- Linux での AppleTalk プロトコルの実装 +.SH 書式 .B #include .br .B #include @@ -19,49 +19,49 @@ ddp \- Linux .IB ddp_socket " = socket(AF_APPLETALK, SOCK_DGRAM, 0);" .br .IB raw_socket " = socket(AF_APPLETALK, SOCK_RAW, " protocol ");" -.SH ÀâÌÀ -Linux ¤Ï +.SH 説明 +Linux は .I "Inside Appletalk" -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë Appletalk ¥×¥í¥È¥³¥ë¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¡£ -¥«¡¼¥Í¥ë¤Ë¤¢¤ë¤Î¤Ï DDP ÁØ¤È AARP ¤À¤±¤Ç¤¢¤ë¡£¤³¤ì¤é¤Ï +に記述されている Appletalk プロトコルを実装している。 +カーネルにあるのは DDP 層と AARP だけである。これらは .B netatalk -¥×¥í¥È¥³¥ë¥é¥¤¥Ö¥é¥ê¤òÄ̤·¤ÆÍøÍѤµ¤ì¤ë¤è¤¦¤ËÀ߷פµ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥Ú¡¼¥¸¤Ï DDP ÁؤòľÀÜÍøÍѤ·¤¿¤¤¥æ¡¼¥¶¡¼¤Î¤¿¤á¤Ë¡¢ -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òµ­½Ò¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +プロトコルライブラリを通して利用されるように設計されている。 +このページは DDP 層を直接利用したいユーザーのために、 +インターフェースを記述したものである。 .PP -Appletalk ¤È¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥à¤È¤ÎÄÌ¿®¤Ë¤Ï¡¢ -BSD ¸ß´¹¤Î¥½¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÍøÍѤ¹¤ë¡£ -¥½¥±¥Ã¥È¤Ë´Ø¤¹¤ë¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï +Appletalk とユーザープログラムとの通信には、 +BSD 互換のソケットインターフェースを利用する。 +ソケットに関するより詳しい情報は .BR socket (7) -¤ò¸«¤è¡£ +を見よ。 .PP -Appletalk ¥½¥±¥Ã¥È¤Ï¡¢ -¥½¥±¥Ã¥È¥Õ¥¡¥ß¥ê¡¼¤Î°ú¿ô¤Ë +Appletalk ソケットは、 +ソケットファミリーの引数に .B AF_APPLETALK -¤ò»ØÄꤷ¤Æ +を指定して .BR socket (2) -´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤ë¡£»ØÄê¤Ç¤­¤ë¥½¥±¥Ã¥È¥¿¥¤¥×¤Ï¡¢ +関数を呼び出すことによって生成される。指定できるソケットタイプは、 .B ddp -¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤¹¤ë¾ì¹ç¤Ë¤Ï -.BR SOCK_DGRAM ¡¢ +ソケットをオープンする場合には +.BR SOCK_DGRAM 、 .B raw -¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤¹¤ë¾ì¹ç¤Ë¤Ï +ソケットをオープンする場合には .B SOCK_RAW -¤Ç¤¢¤ë¡£ +である。 .I protocol -¤ÏÁ÷¼õ¿®¤µ¤ì¤ë Appletalk ¥×¥í¥È¥³¥ë¤Ç¤¢¤ë¡£ -¥½¥±¥Ã¥È¥¿¥¤¥×¤Ë +は送受信される Appletalk プロトコルである。 +ソケットタイプに .B SOCK_RAW -¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¡¢¥×¥í¥È¥³¥ë¤Ë +を指定した場合は、プロトコルに .B ATPROTO_DDP -¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を指定しなければならない。 .PP -raw ¥½¥±¥Ã¥È¤Ï¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤«¡¢ +raw ソケットは実効ユーザー ID が 0 のプロセスか、 .B CAT_NEW_RAW -¸¢¸Â¤ò»ý¤Ã¤¿¥×¥í¥»¥¹¤Ç¤Ê¤¤¤È¥ª¡¼¥×¥ó¤Ç¤­¤Ê¤¤¡£ -.SS ¥¢¥É¥ì¥¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È -Appletalk ¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Ï¥Í¥Ã¥È¥ï¡¼¥¯Èֹ桦¥Î¡¼¥ÉÈֹ桦¥Ý¡¼¥ÈÈÖ¹æ¤Î -ÁȤ߹ç¤ï¤»¤ÇÄêµÁ¤µ¤ì¤ë¡£ +権限を持ったプロセスでないとオープンできない。 +.SS アドレスのフォーマット +Appletalk ソケットアドレスはネットワーク番号・ノード番号・ポート番号の +組み合わせで定義される。 .PP .in +4n .nf @@ -79,164 +79,164 @@ struct sockaddr_atalk { .in .PP .I sat_family -¤Ï¾ï¤Ë +は常に .B AF_APPLETALK -¤ËÀßÄꤹ¤ë¡£ +に設定する。 .I sat_port -¤Ï¥Ý¡¼¥È¤òÍ¿¤¨¤ë¡£¥Ý¡¼¥ÈÈֹ椬 129 °Ê²¼¤Î¥Ý¡¼¥È¤Ï -¡ÖͽÌó¥Ý¡¼¥È (reserved port)¡× ¤È¸Æ¤Ð¤ì¤ë¡£¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤«¡¢ +はポートを与える。ポート番号が 129 以下のポートは +「予約ポート (reserved port)」 と呼ばれる。実効ユーザー ID が 0 のプロセスか、 .B CAP_NET_BIND_SERVICE -¸¢¸Â¤ò»ý¤Ä¥×¥í¥»¥¹¤À¤±¤¬¡¢¤³¤Î¤è¤¦¤Ê¥½¥±¥Ã¥È¤ò +権限を持つプロセスだけが、このようなソケットを .BR bind (2) -¤Ç¤­¤ë¡£ +できる。 .I sat_addr -¤Ï¥Û¥¹¥È¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +はホストアドレスである。 .I struct at_addr -¤Î¥á¥ó¥Ð¡¼ +のメンバー .I s_net -¤Ë¤Ï¥Û¥¹¥È¤Î¥Í¥Ã¥È¥ï¡¼¥¯¤ò¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤ÇÍ¿¤¨¤ë¡£ÃÍ +にはホストのネットワークをネットワークバイトオーダーで与える。値 .B AT_ANYNET -¤Ï¥ï¥¤¥ë¥É¥«¡¼¥É¤Ç¡¢¡Ö¤³¤Î¥Í¥Ã¥È¥ï¡¼¥¯¡×¤â°ÅÌۤΤ¦¤Á¤Ë´Þ¤Þ¤ì¤ë¡£ +はワイルドカードで、「このネットワーク」も暗黙のうちに含まれる。 .I struct at_addr -¤Î¥á¥ó¥Ð¡¼ +のメンバー .I s_node -¤Ë¤Ï¥Û¥¹¥È¤Î¥Î¡¼¥ÉÈÖ¹æ¤òÍ¿¤¨¤ë¡£ÃÍ +にはホストのノード番号を与える。値 .B AT_ANYNODE -¤Ï¥ï¥¤¥ë¥É¥«¡¼¥É¤Ç¡¢¡Ö¤³¤Î¥Î¡¼¥É¡×¤â°ÅÌۤΤ¦¤Á¤Ë´Þ¤Þ¤ì¤ë¡£ÃÍ +はワイルドカードで、「このノード」も暗黙のうちに含まれる。値 .B ATADDR_BCAST -¤Ï¥í¡¼¥«¥ë¤Ê¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +はローカルなブロードキャストアドレスである。 .\" FIXME this doesn't make sense [johnl] -.SS ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó -¥×¥í¥È¥³¥ë¸ÇÍ­¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤Ï¤Ê¤¤¡£ -.SS /proc ¥¤¥ó¥¿¥Õ¥§¡¼¥¹ -Appletalk ¤Î¥°¥í¡¼¥Ð¥ë¥Ñ¥é¥á¡¼¥¿¤Î¤¤¤¯¤Ä¤«¤Ï¡¢ +.SS ソケットオプション +プロトコル固有のソケットオプションはない。 +.SS /proc インタフェース +Appletalk のグローバルパラメータのいくつかは、 .I /proc -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ̤·¤ÆÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤é¤Î¥Ñ¥é¥á¡¼¥¿¤Ë¤Ï¡¢ +インタフェースを通して設定することができる。 +これらのパラメータには、 .I /proc/sys/net/atalk/ -¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¤ÎÆɤ߽ñ¤­¤Ç¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ +ディレクトリ内のファイルの読み書きでアクセスできる。 .TP .I aarp-expiry-time -AARP ¥­¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê¤òÇË´þ¤¹¤ë¤Þ¤Ç¤Î¥¿¥¤¥à¥¤¥ó¥¿¡¼¥Ð¥ë (ÉÃñ°Ì)¡£ +AARP キャッシュエントリを破棄するまでのタイムインターバル (秒単位)。 .TP .I aarp-resolve-time -AARP ¥­¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê¤¬²ò·è¤µ¤ì¤ë¤Þ¤Ç¤Î¥¿¥¤¥à¥¤¥ó¥¿¡¼¥Ð¥ë (ÉÃñ°Ì)¡£ +AARP キャッシュエントリが解決されるまでのタイムインターバル (秒単位)。 .TP .I aarp-retransmit-limit -AARP ¥¯¥¨¥ê¡¼¤ÎºÇÂçºÆÁ÷¿®²ó¿ô¡£¤³¤Î²ó¿ô¤ò±Û¤¨¤ë¤È¡¢ -¤½¤Î¥Î¡¼¥É¤Ï dead ¤Ç¤¢¤ë¤È¤ß¤Ê¤µ¤ì¤ë¡£ +AARP クエリーの最大再送信回数。この回数を越えると、 +そのノードは dead であるとみなされる。 .TP .I aarp-tick-time -¥¿¥¤¥Þ¡¼Æ°ºî¤¹¤ë AARP ¤Î¥¿¥¤¥Þ¡¼¥ì¡¼¥È (ÉÃñ°Ì) +タイマー動作する AARP のタイマーレート (秒単位) .PP -¥Ç¥Õ¥©¥ë¥È¤ÎÃͤǻÅÍͤ˥ޥåÁ¤·¤Æ¤¤¤ë¤Î¤Ç¡¢ -Êѹ¹¤¹¤ëɬÍפÏÁ´¤¯¤Ê¤¤¤Ï¤º¤Ç¤¢¤ë¡£ +デフォルトの値で仕様にマッチしているので、 +変更する必要は全くないはずである。 .SS ioctl .BR socket (7) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î ioctl ¤¬ -DDP ¤Ë¤âŬÍѤµ¤ì¤ë¡£ +に記述されているすべての ioctl が +DDP にも適用される。 .\" FIXME Add a section about multicasting -.SH ¥¨¥é¡¼ +.SH エラー .\" FIXME document all errors. We should really fix the kernels to .\" give more uniform error returns (ENOMEM vs ENOBUFS, EPERM vs .\" EACCES etc.) .TP .B EACCES -¥æ¡¼¥¶¤¬¹Ô¤ª¤¦¤È¤·¤¿Áàºî¤ËɬÍפʸ¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -broadcast ¥Õ¥é¥°¤ò¥»¥Ã¥È¤»¤º¤Ë¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤ØÁ÷¿®¤ò¹Ô¤ª¤¦¤È¤·¤¿¡¢ -¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤Ç¤Ê¤¯¡¢ +ユーザが行おうとした操作に必要な権限を持っていない。 +broadcast フラグをセットせずにブロードキャストアドレスへ送信を行おうとした、 +実効ユーザー ID が 0 でなく、 .B CAP_NET_BIND_SERVICE -¸¢¸Â¤Î¤Ê¤¤¥×¥í¥»¥¹¤ÇÆø¢¥Ý¡¼¥È¤ò¥Ð¥¤¥ó¥É¤·¤è¤¦¤È¤·¤¿¡¢¤Ê¤É¤¬¹Í¤¨¤é¤ì¤ë¡£ +権限のないプロセスで特権ポートをバインドしようとした、などが考えられる。 .TP .B EADDRINUSE -´û¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¤Ë¥Ð¥¤¥ó¥É¤·¤è¤¦¤È¤·¤¿¡£ +既に使用されているアドレスにバインドしようとした。 .TP .B EADDRNOTAVAIL -¸ºß¤·¤Ê¤¤¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬Í׵ᤵ¤ì¤¿¡£¤Þ¤¿¤Ï -Í׵ᤵ¤ì¤¿¥½¡¼¥¹¥¢¥É¥ì¥¹¤¬¥í¡¼¥«¥ë¤Ê¤â¤Î¤Ç¤Ê¤¤¡£ +存在しないインターフェースが要求された。または +要求されたソースアドレスがローカルなものでない。 .TP .B EAGAIN -Èó¥Ö¥í¥Ã¥­¥ó¥°¥½¥±¥Ã¥È¤ËÂФ·¤Æ¥Ö¥í¥Ã¥¯¤¹¤ëÁàºî¤ò¹Ô¤Ã¤¿¡£ +非ブロッキングソケットに対してブロックする操作を行った。 .TP .B EALREADY -Èó¥Ö¥í¥Ã¥­¥ó¥°¥½¥±¥Ã¥È¤ËÂФ¹¤ëÀܳÁàºî¤¬´û¤Ë¼Â¹ÔÃæ¤Ç¤¢¤ë¡£ +非ブロッキングソケットに対する接続操作が既に実行中である。 .TP .B ECONNABORTED .BR accept (2) -¤ÎÅÓÃæ¤ÇÀܳ¤¬¥¯¥í¡¼¥º¤µ¤ì¤¿¡£ +の途中で接続がクローズされた。 .TP .B EHOSTUNREACH -¹Ô¤­À襢¥É¥ì¥¹¤Ë¥Þ¥Ã¥Á¤¹¤ë¥¨¥ó¥È¥ê¤¬¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤Ë¤Ê¤¤¡£ +行き先アドレスにマッチするエントリがルーティングテーブルにない。 .TP .B EINVAL -ÅϤ·¤¿°ú¿ô¤¬ÉÔÀµ¡£ +渡した引数が不正。 .TP .B EISCONN -ÀܳºÑ¤ß¤Î¥½¥±¥Ã¥È¤ËÂФ·¤Æ +接続済みのソケットに対して .BR connect (2) -¤¬¸Æ¤Ð¤ì¤¿¡£ +が呼ばれた。 .TP .B EMSGSIZE -¥Ç¡¼¥¿¥°¥é¥à¤¬ DDP MTU ¤è¤êÂ礭¤¤¡£ +データグラムが DDP MTU より大きい。 .TP .B ENODEV -¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¤¬¤Ê¤¤¡£¤¢¤ë¤¤¤Ï IP ¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£ +ネットワークデバイスがない。あるいは IP を送ることができない。 .TP .B ENOENT -¥Ñ¥±¥Ã¥È¤¬ÅþÃ夷¤Æ¤¤¤Ê¤¤¥½¥±¥Ã¥È¤ËÂФ·¤Æ +パケットが到着していないソケットに対して .B SIOCGSTAMP -¤¬¸Æ¤Ð¤ì¤¿¡£ +が呼ばれた。 .TP -.BR ENOMEM " ¤È " ENOBUFS -¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£ +.BR ENOMEM " と " ENOBUFS +メモリが足りない。 .TP .B ENOPKG -¥«¡¼¥Í¥ë¤Î¥µ¥Ö¥·¥¹¥Æ¥à¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +カーネルのサブシステムが設定されていない。 .TP -.BR ENOPROTOOPT " ¤È " EOPNOTSUPP -ÅϤ·¤¿¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬ÉÔÀµ¡£ +.BR ENOPROTOOPT " と " EOPNOTSUPP +渡したソケットオプションが不正。 .TP .B ENOTCONN -¹Ô¤ª¤¦¤È¤·¤¿Áàºî¤ÏÀܳºÑ¤ß¤Î¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤Î¤ßÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤À¤¬¡¢ -¤½¤Î¥½¥±¥Ã¥È¤ÏÀܳ¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¡£ +行おうとした操作は接続済みのソケットに対してのみ定義されているものだが、 +そのソケットは接続されていなかった。 .TP .B EPERM -¹â¤¤Í¥ÀèÅÙ¤ËÀßÄꤷ¤¿¤ê¡¢ÀßÄê¤òÊѹ¹¤·¤¿¤ê¡¢ -»ØÄꤷ¤¿¥×¥í¥»¥¹¤ä¥°¥ë¡¼¥×¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¤Î¤ËɬÍפʸ¢¸Â¤ò -¥æ¡¼¥¶¤¬»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +高い優先度に設定したり、設定を変更したり、 +指定したプロセスやグループにシグナルを送るのに必要な権限を +ユーザが持っていない。 .TP .B EPIPE -Àܳ¤¬ÀèÊý¤Ë¤è¤Ã¤Æ¡¢Ä̾ï°Ê³°¤Î¤ä¤êÊý¤Ç¥¯¥í¡¼¥º¤Þ¤¿¤Ï¥·¥ã¥Ã¥È¥À¥¦¥ó¤µ¤ì¤¿¡£ +接続が先方によって、通常以外のやり方でクローズまたはシャットダウンされた。 .TP .B ESOCKTNOSUPPORT -¥½¥±¥Ã¥È¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£¤Þ¤¿¤Ï̤ÃΤΥ½¥±¥Ã¥È¥¿¥¤¥×¤¬Í׵ᤵ¤ì¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -Appletalk ¤Ï Linux 2.0 °Ê¹ß¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +ソケットが設定されていない。または未知のソケットタイプが要求された。 +.SH バージョン +Appletalk は Linux 2.0 以降でサポートされている。 .I /proc -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï Linux 2.2 °Ê¹ß¤Ë¸ºß¤¹¤ë¡£ -.SH Ãí°Õ +インタフェースは Linux 2.2 以降に存在する。 +.SH 注意 .B SO_BROADCAST -¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë»þ¤Ë¤Ï¿µ½Å¤Î¾å¤Ë¤â¿µ½Å¤Ë¤Ê¤Ã¤Æ¤Û¤·¤¤¡£ -Linux ¤Ç¤Ï¤³¤ì¤ËÆø¢¤òɬÍפȤ·¤Ê¤¤¡£ -ÉÔÃí°Õ¤Ë¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤ËÁ÷¿®¤ò¹Ô¤¦¤È¡¢ -¥Í¥Ã¥È¥ï¡¼¥¯¤Î¾õÂÖ¤¬´Êñ¤ËÊѹ¹¤µ¤ì¤Æ¤·¤Þ¤¦¡£ -.SS °Ü¿¢À­ -´ðËÜŪ¤Ê Appletalk ¥½¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï -BSD ͳÍè¤Î¥·¥¹¥Æ¥à¤Ë¤ª¤±¤ë +オプションを用いる時には慎重の上にも慎重になってほしい。 +Linux ではこれに特権を必要としない。 +不注意にブロードキャストアドレスに送信を行うと、 +ネットワークの状態が簡単に変更されてしまう。 +.SS 移植性 +基本的な Appletalk ソケットインターフェースは +BSD 由来のシステムにおける .B netatalk -¤È¸ß´¹À­¤¬¤¢¤ë¡£Â¿¤¯¤Î BSD ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ -¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥Õ¥ì¡¼¥à¤òÁ÷¿®¤·¤è¤¦¤È¤·¤¿¤È¤­¤Î +と互換性がある。多くの BSD システムでは、 +ブロードキャストフレームを送信しようとしたときの .B SO_BROADCAST -¤Î¥Á¥§¥Ã¥¯¤Ë¼ºÇÔ¤¹¤ë¡£¤³¤ì¤Ï¸ß´¹À­¤ÎÌäÂê¤È¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +のチェックに失敗する。これは互換性の問題となるかもしれない。 .PP -raw ¥½¥±¥Ã¥È¥â¡¼¥É¤Ï Linux ÆÈÆäΤâ¤Î¤Ç¡¢¤â¤¦°ìÊý¤Î¼ÂÁõ¤Ç¤¢¤ë CAP -¥Ñ¥Ã¥±¡¼¥¸¤ä¡¢ Appletalk ¥â¥Ë¥¿¥Ä¡¼¥ë¤ò¤è¤ê´Êñ¤Ë¼ÂÁõ¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -.SH ¥Ð¥° -¥¨¥é¡¼¤ÎÃͤ¬¤Þ¤Ã¤¿¤¯¼óÈø°ì´Ó¤·¤Æ¤¤¤Ê¤¤¡£ +raw ソケットモードは Linux 独特のもので、もう一方の実装である CAP +パッケージや、 Appletalk モニタツールをより簡単に実装できるようになる。 +.SH バグ +エラーの値がまったく首尾一貫していない。 .PP -¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¡¦¥Ç¥Ð¥¤¥¹¡¦ AARP ¥Æ¡¼¥Ö¥ë¡¦¤½¤Î¾¤Î¥Ç¥Ð¥¤¥¹¤ò -ÀßÄꤹ¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë ioctl ¤¬¤Þ¤Àµ­½Ò¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +ルーティングテーブル・デバイス・ AARP テーブル・その他のデバイスを +設定するために用いられる ioctl がまだ記述されていない。 +.SH 関連項目 .BR recvmsg (2), .BR sendmsg (2), .BR capabilities (7), diff --git a/release/man7/environ.7 b/release/man7/environ.7 index 010f6b35..2a46d43a 100644 --- a/release/man7/environ.7 +++ b/release/man7/environ.7 @@ -30,8 +30,8 @@ .\" Modified Wed Jan 24 06:37:24 2001 by Eric S. Raymond (esr@thyrsus.com) .\" Modified Thu Dec 13 23:53:27 2001 by Martin Schulze .\" -.\" nakano Ãí: Nicolas ¤µ¤ó¤Î a ¤Ï¥ª¥ê¥¸¥Ê¥ë¤Ç¤Ï \'a ¤À¤¬, -.\" ¥­¥ã¥é¥¯¥¿¤ò²õ¤¹¤Î¤Ç a ¤ËÊѹ¹¤·¤¿. +.\" nakano 注: Nicolas さんの a はオリジナルでは \'a だが, +.\" キャラクタを壊すので a に変更した. .\" .\" Japanese Version Copyright (c) 1997 KURODA Masaru all rights reserved. .\" Translated May 27, 1997 by KURODA Masaru @@ -44,190 +44,190 @@ .\" Updated Sat Mar 23 JST 2002 by Kentaro Shirakata .\" Updated 2010-04-11, Akihiro MOTOKI , LDP v3.24 .\" -.\"WORD: environment ´Ä¶­ -.\"WORD: environment variable ´Ä¶­ÊÑ¿ô -.\"WORD: shell variable ¥·¥§¥ëÊÑ¿ô -.\"WORD: locale ¥í¥±¡¼¥ë -.\"WORD: locale category ¥í¥±¡¼¥ë¥«¥Æ¥´¥ê +.\"WORD: environment 環境 +.\"WORD: environment variable 環境変数 +.\"WORD: shell variable シェル変数 +.\"WORD: locale ロケール +.\"WORD: locale category ロケールカテゴリ .\" .TH ENVIRON 7 2009-07-25 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -environ \- ¥æ¡¼¥¶´Ä¶­ -.SH ½ñ¼° +.SH 名前 +environ \- ユーザ環境 +.SH 書式 .nf .BI "extern char **" environ ; .br .fi -.SH ÀâÌÀ -ÊÑ¿ô +.SH 説明 +変数 .I environ -¤Ï¡Ö´Ä¶­ (environment)¡×¤È¸Æ¤Ð¤ì¤ëʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤ÎÇÛÎó¤Ç¤¢¤ë¡£ -¤³¤ÎÇÛÎó¤ÎºÇ¸å¤Î¥Ý¥¤¥ó¥¿¤ÎÃÍ¤Ï NULL ¤Ç¤¢¤ë¡£ -(¤³¤ÎÊÑ¿ô¤Ï¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥à¤ÇÀë¸À¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤¿¤À¤· libc4 ¤ä libc5 ¤Î¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤Ê¤é +は「環境 (environment)」と呼ばれる文字列へのポインタの配列である。 +この配列の最後のポインタの値は NULL である。 +(この変数はユーザープログラムで宣言しなければならない。 +ただし libc4 や libc5 のヘッダーファイルなら .I -¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤ë¤·¡¢¤³¤ì¤¬ glibc ͳÍè¤Î¤â¤Î¤Ç¤â +で宣言されているし、これが glibc 由来のものでも .B _GNU_SOURCE -¤¬ define ¤µ¤ì¤Æ¤¤¤ì¤ÐÀë¸ÀºÑ¤ß¤È¤Ê¤ë)¡£ -¤³¤Îʸ»úÎóÇÛÎó¤Ï¡¢ -¥×¥í¥»¥¹¤òµ¯Æ°¤¹¤ë +が define されていれば宣言済みとなる)。 +この文字列配列は、 +プロセスを起動する .BR exec (3) -¤Ë¤è¤Ã¤Æ¡¢¤½¤Îµ¯Æ°¤µ¤ì¤¿¥×¥í¥»¥¹¤ÇÍøÍѤǤ­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +によって、その起動されたプロセスで利用できるようになる。 -ÄÌÎã¤Ç¤Ï¡¢ +通例では、 .I environ -¤Îʸ»úÎó¤Ï "\fIname\fP\fB=\fP\fIvalue\fP" ¤È¤¤¤¦½ñ¼°¤ò¤È¤ë¡£ -¤è¤¯ÍѤ¤¤é¤ì¤ëÎã¤ò°Ê²¼¤Ë¼¨¤¹¡£ +の文字列は "\fIname\fP\fB=\fP\fIvalue\fP" という書式をとる。 +よく用いられる例を以下に示す。 .TP .B USER -¥æ¡¼¥¶¤Î¥í¥°¥¤¥ó̾ (BSD µ¯¸»¤Î¥×¥í¥°¥é¥à¤Ê¤É¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤ë)¡£ +ユーザのログイン名 (BSD 起源のプログラムなどによって使用される)。 .TP .B LOGNAME -¥æ¡¼¥¶¤Î¥í¥°¥¤¥ó̾(System V µ¯¸»¤Î¥×¥í¥°¥é¥à¤Ê¤É¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤ë)¡£ +ユーザのログイン名(System V 起源のプログラムなどによって使用される)。 .TP .B HOME -¥æ¡¼¥¶¤Î¥í¥°¥¤¥ó¥Ç¥£¥ì¥¯¥È¥ê¡£ +ユーザのログインディレクトリ。 .BR login (1) -¤¬¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë +がパスワードファイル .BR passwd (5) -¤«¤é¼èÆÀ¤·¤ÆÀßÄꤹ¤ë¡£ +から取得して設定する。 .TP .B LANG -¥í¥±¡¼¥ë¤Î³Æ¥«¥Æ¥´¥ê¤Ç»ÈÍѤµ¤ì¤ë¥í¥±¡¼¥ë¤Î̾Á°¡£\fBLC_ALL\fP ¤ä¡¢ -¤è¤ê¶¹¤¤ÈϰϤòÂоݤȤ¹¤ë´Ä¶­ÊÑ¿ô +ロケールの各カテゴリで使用されるロケールの名前。\fBLC_ALL\fP や、 +より狭い範囲を対象とする環境変数 .RB ( LC_COLLATE , .BR LC_CTYPE , .BR LC_MESSAGES , .BR LC_MONETARY , .BR LC_NUMERIC , .B LC_TIME -¤Ê¤É) -¤Ë¤è¤Ã¤Æ¾å½ñ¤­¤µ¤ì¤ë¤³¤È¤â¤¢¤ë¡£ +など) +によって上書きされることもある。 .BR locale (5) -¤ò¸«¤è¡£ +を見よ。 .TP .B PATH .BR sh (1) -¤ä¾¤Î¥×¥í¥°¥é¥à¤¬¡¢¥Õ¥ë¥Ñ¥¹¤ÇÍ¿¤¨¤é¤ì¤Ê¤«¤Ã¤¿¼Â¹Ô¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤¹¤ë¤È¤­¡¢ -¥Õ¥¡¥¤¥ë̾¤ËÁ°ÃÖ¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ÎÇÛÎó¡£ -³Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ï \(aq\fB:\fP\(aq ¤Ë¤è¤Ã¤Æ¶èÀÚ¤é¤ì¤ë¡£ -(Ʊ¤¸¤è¤¦¤Ê¤â¤Î¤Ë¡¢ -¥·¥§¥ë¤¬¥Ç¥£¥ì¥¯¥È¥êÊѹ¹¥³¥Þ¥ó¥É¤ÎÊѹ¹Àè¤òõ¤¹¤¿¤á¤ËÍѤ¤¤ë -\fBCDPATH\fP ¤ä¡¢ +や他のプログラムが、フルパスで与えられなかった実行ファイルを検索するとき、 +ファイル名に前置されるディレクトリの配列。 +各ディレクトリは \(aq\fB:\fP\(aq によって区切られる。 +(同じようなものに、 +シェルがディレクトリ変更コマンドの変更先を探すために用いる +\fBCDPATH\fP や、 .BR man (1) -¤¬¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¸¡º÷¤ËÍѤ¤¤ë \fBMANPATH\fP ¤Ê¤É¤¬¤¢¤ë¡£) +がマニュアルページの検索に用いる \fBMANPATH\fP などがある。) .TP .B PWD -¸½ºß¤Î¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¡£¤¤¤¯¤Ä¤«¤Î¥·¥§¥ë¤¬ÀßÄꤹ¤ë¡£ +現在のワーキングディレクトリ。いくつかのシェルが設定する。 .TP .B SHELL -¥æ¡¼¥¶¡¼¤Î¥í¥°¥¤¥ó¥·¥§¥ë¤Î¥Ñ¥¹Ì¾¡£ +ユーザーのログインシェルのパス名。 .TP .B TERM -üËö¤Î¼ïÎà¡£½ÐÎϤϤ³¤ì¤Ë¤¢¤ï¤»¤ÆÍÑ°Õ¤µ¤ì¤ë¡£ +端末の種類。出力はこれにあわせて用意される。 .TP .B PAGER -¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤òɽ¼¨¤¹¤ë¥æ¡¼¥Æ¥ê¥Æ¥£¡£¥æ¡¼¥¶¡¼¤¬¹¥¤ß¤Î¤â¤Î¤òÀßÄꤹ¤ë¡£ +テキストファイルを表示するユーテリティ。ユーザーが好みのものを設定する。 .TP .BR EDITOR / VISUAL -¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤òÊÔ½¸¤¹¤ë¥æ¡¼¥Æ¥ê¥Æ¥£¡£¥æ¡¼¥¶¡¼¤¬¹¥¤ß¤Î¤â¤Î¤òÀßÄꤹ¤ë¡£ +テキストファイルを編集するユーテリティ。ユーザーが好みのものを設定する。 .\" .TP .\" .B BROWSER -.\" URL ¤Î±ÜÍ÷¤ËÍѤ¤¤ë¥æ¡¼¥Æ¥£¥ê¥Æ¥£¡£¥æ¡¼¥¶¡¼¤¬¹¥¤ß¤Î¤â¤Î¤òÀßÄꤹ¤ë¡£ -.\" ¥³¥í¥ó¤Ç¶èÀڤäƥ֥饦¥¶¥³¥Þ¥ó¥É¤òʤ٤롣 -.\" http://www.catb.org/~esr/BROWSER/ ¤ò¸«¤è¡£ +.\" URL の閲覧に用いるユーティリティ。ユーザーが好みのものを設定する。 +.\" コロンで区切ってブラウザコマンドを並べる。 +.\" http://www.catb.org/~esr/BROWSER/ を見よ。 .PP -´Ä¶­¤Ë̾Á°¤òÄɲ乤ë¾ì¹ç¤Ë¤Ï¡¢ +環境に名前を追加する場合には、 .BR sh (1) -¤Ç¤Ï \fIexport\fP ¥³¥Þ¥ó¥É¤È "name=value" ¤ò»ÈÍѤ¹¤ë¡£ +では \fIexport\fP コマンドと "name=value" を使用する。 .BR csh (1) -¤Ç¤Ï \fIsetenv\fP ¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¡£ +では \fIsetenv\fP コマンドを使用する。 .BR exec (3) -¤Î°ú¿ô¤È¤·¤Æ¤â´Ä¶­¤òÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -C ¥×¥í¥°¥é¥à¤«¤é¤Ï¡¢ +の引数としても環境を設定することができる。 +C プログラムからは、 .BR getenv (3), .BR putenv (3), .BR setenv (3), .BR unsetenv (3) -¤Ê¤É¤Î´Ø¿ô¤òÍѤ¤¤Æ´Ä¶­¤ò°·¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +などの関数を用いて環境を扱うことができる。 -¥×¥í¥°¥é¥à¤ä¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤Î¿¤¯¤Ï¡¢¤½¤ì¤¾¤ìŬÅö¤Ê´Ä¶­ÊÑ¿ô¤Î¸ºß -¤äÃͤˤè¤Ã¤Æ¡¢Æ°ºî¤Ë±Æ¶Á¤ò¼õ¤±¤ë¤³¤È¤¬¤¢¤ë¡£°Ê²¼¡¢Å¬µ¹µó¤²¤Æ¤ß¤è¤¦¡£ +プログラムやライブラリルーチンの多くは、それぞれ適当な環境変数の存在 +や値によって、動作に影響を受けることがある。以下、適宜挙げてみよう。 .LP .BR LANG ", " LANGUAGE ", " NLSPATH ", " LOCPATH ", " .BR LC_ALL ", " LC_MESSAGES ", " -¤Ê¤É¤ÎÊÑ¿ô¡£¥í¥±¡¼¥ë¤Î°·¤¤¤Ë±Æ¶Á¤¹¤ë¡£ +などの変数。ロケールの扱いに影響する。 .BR locale (5) -¤ò¸«¤è¡£ +を見よ。 .LP .B TMPDIR -¤Ï +は .BR tmpnam (3) -¤Ê¤É¤Î¥ë¡¼¥Á¥ó¤Ë¤è¤Ã¤ÆºîÀ®¤µ¤ì¤ë¥Õ¥¡¥¤¥ë̾¤ËÁ°ÃÖ¤µ¤ì¤ë¥Ñ¥¹¤Ë±Æ¶Á¤¹¤ë¡£¤Þ¤¿ +などのルーチンによって作成されるファイル名に前置されるパスに影響する。また .BR sort (1) -¤Î°ì»þ¥Ç¥£¥ì¥¯¥È¥ê¤ËÍѤ¤¤é¤ì¤¿¤ê¡¢Â¾¤Î¥×¥í¥°¥é¥à¤«¤é¤âÍøÍѤµ¤ì¤ë¡£ +の一時ディレクトリに用いられたり、他のプログラムからも利用される。 .LP .BR LD_LIBRARY_PATH ", " LD_PRELOAD -¤Ê¤É¤Î LD_* ÊÑ¿ô¤Ï¥À¥¤¥Ê¥ß¥Ã¥¯¥í¡¼¥À¡¦¥ê¥ó¥«¤ÎÆ°ºî¤Ë±Æ¶Á¤¹¤ë¡£ +などの LD_* 変数はダイナミックローダ・リンカの動作に影響する。 .LP .B POSIXLY_CORRECT -¤¬»ØÄꤵ¤ì¤ë¤È¡¢¤¢¤ë¼ï¤Î¥×¥í¥°¥é¥à¤ä¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤Ï -POSIX ¤Îµ¬Äê¤Ë½¾¤¦¤è¤¦¤Ë¤Ê¤ë¡£ +が指定されると、ある種のプログラムやライブラリルーチンは +POSIX の規定に従うようになる。 .LP .BR malloc (3) -¤ÎÆ°ºî¤Ï +の動作は .B MALLOC_* -ÊÑ¿ô¤Ë¤è¤Ã¤Æ±Æ¶Á¤µ¤ì¤ë¡£ +変数によって影響される。 .LP .B HOSTALIAS -ÊÑ¿ô¤Ï¡¢ +変数は、 .BR gethostbyname (3) -¤¬ÍѤ¤¤ë¥¨¥¤¥ê¥¢¥¹¤¬½ñ¤«¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë̾¤òÍ¿¤¨¤ë¡£ +が用いるエイリアスが書かれているファイル名を与える。 .LP -.BR TZ " ¤È " TZDIR -¤Ï +.BR TZ " と " TZDIR +は .BR tzset (3) -¤ª¤è¤Ó¡¢¤³¤Î´Ø¿ô¤ò»È¤¦ +および、この関数を使う .BR ctime (3), .BR localtime (3), .BR mktime (3), .BR strftime (3) -¤È¤¤¤Ã¤¿´Ø¿ô¤ÇÍѤ¤¤é¤ì¤ë¥¿¥¤¥à¥¾¡¼¥ó¤Î¾ðÊó¤òÍ¿¤¨¤ë¡£ +といった関数で用いられるタイムゾーンの情報を与える。 .BR tzselect (8) -¤â»²¾È¤Î¤³¤È¡£ +も参照のこと。 .LP .B TERMCAP -¤Ï¡¢¸½ºß¤ÎüËö¾ðÊó¤Î¼èÆÀÀè -(¤¢¤ë¤¤¤Ï¤½¤Î¤è¤¦¤Ê¾ðÊ󤬽ñ¤«¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë̾) ¤òÍ¿¤¨¤ë¡£ +は、現在の端末情報の取得先 +(あるいはそのような情報が書かれているファイル名) を与える。 .LP -.BR COLUMNS " ¤È " LINES -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¥¦¥¤¥ó¥É¥¦¤Î¥µ¥¤¥º¤òÅÁ¤¨¤ë¡£ -¼ÂºÝ¤Î¥µ¥¤¥º¤È¤Ï°ã¤¦ÃͤòÍ¿¤¨¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +.BR COLUMNS " と " LINES +アプリケーションにウインドウのサイズを伝える。 +実際のサイズとは違う値を与えることもできる。 .LP -.BR PRINTER " ¤Þ¤¿¤Ï " LPDEST -ÍѤ¤¤¿¤¤¥×¥ê¥ó¥¿¤ò»ØÄꤹ¤ë¡£ +.BR PRINTER " または " LPDEST +用いたいプリンタを指定する。 .BR lpr (1) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .LP -¤Ê¤É¤Ê¤É... -.SH ¥Ð¥° -¤³¤ì¤é¤ÎÃæ¤Ë¤Ï¡¢ÌÀ¤é¤«¤Ë¥»¥­¥å¥ê¥Æ¥£¾å¤Î´í¸±¤¬Â¸ºß¤¹¤ë¡£ -¥æ¡¼¥¶¡¼¤¬ -.BR IFS " ¤ä " LD_LIBRARY_PATH -¤Ë°Û¾ï¤ÊÃͤòÍ¿¤¨¤¿¤³¤È¤Ë¤è¤Ã¤Æ¡¢ -¤³¤ì¤Þ¤Ç¿¤¯¤Î¥·¥¹¥Æ¥à¥³¥Þ¥ó¥É¤¬¤À¤Þ¤µ¤ì¤Æ¡¢ -¥·¥¹¥Æ¥à¤ò¤Ò¤É¤¤Ìܤˤ¢¤ï¤»¤Æ¤­¤¿¡£ +などなど... +.SH バグ +これらの中には、明らかにセキュリティ上の危険が存在する。 +ユーザーが +.BR IFS " や " LD_LIBRARY_PATH +に異常な値を与えたことによって、 +これまで多くのシステムコマンドがだまされて、 +システムをひどい目にあわせてきた。 -̾Á°¶õ´Ö¤¬±øÀ÷¤µ¤ì¤ë´í¸±À­¤â¸ºß¤¹¤ë¡£ +名前空間が汚染される危険性も存在する。 .I make -¤ä +や .I autoconf -¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ò -´Ä¶­¤Ë¤¢¤ë»÷¤¿¤è¤¦¤Ê̾Á°¤ÎÊÑ¿ô¤Ç¾å½ñ¤­¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë -(Ä̾ï¤Ï¤¹¤Ù¤ÆÂçʸ»ú¤ÎÊÑ¿ô¤òÍѤ¤¤ë)¡£ -¤¹¤Ê¤ï¤Á¡¢ÍøÍѤ·¤¿¤¤ C ¥³¥ó¥Ñ¥¤¥é¤Ï +のようなプログラムでは、デフォルトのユーティリティを +環境にある似たような名前の変数で上書きすることができる +(通常はすべて大文字の変数を用いる)。 +すなわち、利用したい C コンパイラは .B CC -¤ÇÁªÂò¤Ç¤­¤ë¡£¤Þ¤¿Æ±ÍÍ¤Ë +で選択できる。また同様に .BR MAKE , .BR AR , .BR AS , @@ -236,22 +236,22 @@ POSIX .BR LEX , .BR RM , .B YACC -¤Ê¤É¤âÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤È¤³¤í¤¬°ìÊý¤Ç¤Ï¡¢¤³¤Î¤è¤¦¤ÊÊÑ¿ô¤ò -(¥Ñ¥¹Ì¾¤Ç¤Ï¤Ê¤¯) -¥×¥í¥°¥é¥à¤ËÂФ¹¤ë¥ª¥×¥·¥ç¥ó¤È¤·¤Æ°·¤¦¤è¤¦¤Êήµ·¤â¸ºß¤·¤Æ¤­¤¿¡£ -Î㤨¤Ð +なども用いることができる。 +ところが一方では、このような変数を +(パス名ではなく) +プログラムに対するオプションとして扱うような流儀も存在してきた。 +例えば .BR MORE , .BR LESS , .B GZIP -¤Ê¤É¤¬¤½¤¦¤Ç¤¢¤ë¡£ -¤³¤Î¤è¤¦¤ÊÍøÍÑË¡¤Ï´Ö°ã¤Ã¤Æ¤¤¤ë¤È¹Í¤¨¤ë¤Ù¤­¤Ç¡¢ -¿·¤·¤¤¥×¥í¥°¥é¥à¤Ç¤ÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +などがそうである。 +このような利用法は間違っていると考えるべきで、 +新しいプログラムでは避けるべきである。 .I gzip -¤Îºî¼Ô¤¿¤Á¤Ï¡¢¥ª¥×¥·¥ç¥ó¤òÍ¿¤¨¤ë´Ä¶­ÊÑ¿ô¤ò +の作者たちは、オプションを与える環境変数を .B GZIP_OPT -¤Ë²þ̾¤¹¤ë¤³¤È¤ò¹Í¤¨¤ë¤Û¤¦¤¬¤è¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +に改名することを考えるほうがよい。 +.SH 関連項目 .BR bash (1), .BR csh (1), .BR login (1), diff --git a/release/man7/epoll.7 b/release/man7/epoll.7 index 92e97663..8dfc80d4 100644 --- a/release/man7/epoll.7 +++ b/release/man7/epoll.7 @@ -30,165 +30,165 @@ .\" Updated 2009-02-23, Akihiro MOTOKI, LDP v3.19 .\" .TH EPOLL 7 2009-02-01 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -epoll \- I/O ¥¤¥Ù¥ó¥ÈÄÌÃε¡Ç½ -.SH ½ñ¼° +.SH 名前 +epoll \- I/O イベント通知機能 +.SH 書式 .B #include -.SH ÀâÌÀ +.SH 説明 .B epoll -¤Ï +は .BR poll (2) -¤Î°ì¼ï¤Ç¤¢¤ê¡¢¥¨¥Ã¥¸¥È¥ê¥¬¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤È -¥ì¥Ù¥ë¥È¥ê¥¬¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î¤É¤Á¤é¤È¤·¤Æ¤â»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¡¢ -´Æ»ë¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¿ô¤¬Â¿¤¤¾ì¹ç¤Ë¤â»ÈÍѤǤ­¤ë¡£ +の一種であり、エッジトリガインタフェースと +レベルトリガインタフェースのどちらとしても使用することができ、 +監視するファイルディスクリプタの数が多い場合にも使用できる。 .B epoll -¥¤¥ó¥¹¥¿¥ó¥¹¤ÎºîÀ®¤ä´ÉÍý¤ò¹Ô¤¦¤¿¤á¤Ë -°Ê²¼¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë: +インスタンスの作成や管理を行うために +以下のシステムコールが提供されている: .IP * 3 .B epoll -¥¤¥ó¥¹¥¿¥ó¥¹¤Ï +インスタンスは .BR epoll_create (2) -¤ÇºîÀ®¤µ¤ì¤ë¡£ +で作成される。 .BR epoll_create (2) -¤ÏºîÀ®¤·¤¿ epoll ¥¤¥ó¥¹¥¿¥ó¥¹¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -(¤â¤Ã¤È¿·¤·¤¤ +は作成した epoll インスタンスを参照するファイルディスクリプタを返す。 +(もっと新しい .BR epoll_create1 (2) -¤Ç¤Ï¡¢ +では、 .BR epoll_create (2) -¤Îµ¡Ç½¤¬³ÈÄ¥¤µ¤ì¤Æ¤¤¤ë)¡£ +の機能が拡張されている)。 .IP * -ÆÃÄê¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ¹¤ë´Æ»ëÆâÍƤò +特定のファイルディスクリプタに対する監視内容を .BR epoll_ctl (2) -¤ÇÅÐÏ¿¤¹¤ë¡£ +で登録する。 .B epoll -¥¤¥ó¥¹¥¿¥ó¥¹¤Ë¸½ºßÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î½¸¹ç¤Ï +インスタンスに現在登録されているファイルディスクリプタの集合は .I epoll -½¸¹ç¤È¸Æ¤Ð¤ì¤ë¤³¤È¤â¤¢¤ë¡£ +集合と呼ばれることもある。 .IP * -ºÇ¸å¤Ë +最後に .BR epoll_wait (2) -¤Ç¼ÂºÝ¤Î¥¤¥Ù¥ó¥ÈÂÔ¤Á¤ò³«»Ï¤¹¤ë¡£ -.SS ¥ì¥Ù¥ë¥È¥ê¥¬¤È¥¨¥Ã¥¸¥È¥ê¥¬ +で実際のイベント待ちを開始する。 +.SS レベルトリガとエッジトリガ .B epoll -¥¤¥Ù¥ó¥ÈÇÛÁ÷ (distribution) ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¡¢ -¥¨¥Ã¥¸¥È¥ê¥¬ (ET) ¤È¤·¤Æ¤â¥ì¥Ù¥ë¥È¥ê¥¬ (LT) ¤È¤·¤Æ¤âÆ°ºî¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -Æó¤Ä¤ÎÇÛÁ÷µ¡¹½¤Î°ã¤¤¤Ï¡¢¼¡¤Î¤è¤¦¤ËÀâÌÀ¤Ç¤­¤ë¡£ -¤³¤Î¤è¤¦¤Ê¥·¥Ê¥ê¥ª¤¬µ¯¤³¤Ã¤¿¤È¤·¤è¤¦: +イベント配送 (distribution) インタフェースは、 +エッジトリガ (ET) としてもレベルトリガ (LT) としても動作させることができる。 +二つの配送機構の違いは、次のように説明できる。 +このようなシナリオが起こったとしよう: .IP 1. 3 -¥Ñ¥¤¥×¤ÎÆɤ߹þ¤ß¦¤òɽ¤¹¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +パイプの読み込み側を表すファイルディスクリプタ .RI ( rfd ) -¤¬ +が .B epoll -¥¤¥ó¥¹¥¿¥ó¥¹¤ËÅÐÏ¿¤µ¤ì¤ë¡£ +インスタンスに登録される。 .IP 2. -¥Ñ¥¤¥×¤Ø½ñ¤­¹þ¤à¥×¥í¥°¥é¥à¤¬ 2 kB ¤Î¥Ç¡¼¥¿¤ò¥Ñ¥¤¥×¤Î½ñ¤­¹þ¤ß¦¤Ø½ñ¤­¹þ¤à¡£ +パイプへ書き込むプログラムが 2 kB のデータをパイプの書き込み側へ書き込む。 .IP 3. .BR epoll_wait (2) -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢Æɤ߹þ¤ß²Äǽ (ready) ¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤È¤·¤Æ +を呼び出すと、読み込み可能 (ready) なファイルディスクリプタとして .I rfd -¤¬Ê֤롣 +が返る。 .IP 4. -¥Ñ¥¤¥×¤«¤éÆɤ߽Ф¹¥×¥í¥°¥é¥à¤¬¡¢1 kB ¤Î¥Ç¡¼¥¿¤ò +パイプから読み出すプログラムが、1 kB のデータを .I rfd -¤«¤éÆɤ߽Ф¹¡£ +から読み出す。 .IP 5. .BR epoll_wait (2) -¤Î¸Æ¤Ó½Ð¤·¤¬¹Ô¤ï¤ì¤ë¡£ +の呼び出しが行われる。 .PP .I rfd -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ +ファイルディスクリプタが .B EPOLLET -¥Õ¥é¥° (¥¨¥Ã¥¸¥È¥ê¥¬) ¤ò»È¤Ã¤Æ +フラグ (エッジトリガ) を使って .B epoll -¤ËÄɲ䵤ì¤Æ¤¤¤ë¤È¡¢ -ÍøÍѲÄǽ¤Ê¥Ç¡¼¥¿¤¬¥Õ¥¡¥¤¥ëÆþÎϥХåե¡¤Ë¤Þ¤À¸ºß¤¹¤ë¤Ë¤â¤«¤«¤ï¤é¤º -¥¹¥Æ¥Ã¥× +に追加されていると、 +利用可能なデータがファイル入力バッファにまだ存在するにもかかわらず +ステップ .B 5 -¤Î +の .BR epoll_wait (2) -¤Î¸Æ¤Ó½Ð¤·¤Ç¥Ï¥ó¥°¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¤½¤Î°ìÊý¤Ç¡¢¥ê¥â¡¼¥È¤ÎÀܳÀè (peer) ¤Ï´û¤ËÁ÷¤é¤ì¤¿¥Ç¡¼¥¿¤Ë -´ð¤Å¤¤¤Æ±þÅú¤ò´üÂÔ¤·¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤Î¤è¤¦¤Ê¤³¤È¤¬µ¯¤³¤ëÍýͳ¤Ï¡¢¥¨¥Ã¥¸¥È¥ê¥¬¥¤¥Ù¥ó¥ÈÇÛÁ÷¤Ç¤Ï¡¢ -¥â¥Ë¥¿¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Ç¥¤¥Ù¥ó¥È¤¬µ¯¤Ã¤¿¤È¤­¤Ë¤Î¤ß¥¤¥Ù¥ó¥È¤¬ -ÇÛÁ÷¤µ¤ì¤ë¤¿¤á¤Ç¤¢¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢¥¹¥Æ¥Ã¥× +の呼び出しでハングする可能性がある。 +その一方で、リモートの接続先 (peer) は既に送られたデータに +基づいて応答を期待しているかもしれない。 +このようなことが起こる理由は、エッジトリガイベント配送では、 +モニタしているファイルでイベントが起ったときにのみイベントが +配送されるためである。 +したがって、ステップ .B 5 -¤Ç¤Ï¡¢¸Æ¤Ó½Ð¤·Â¦¤Ï·ë²ÌŪ¤Ë -ÆþÎϥХåե¡Æâ¤Ë¤¹¤Ç¸ºß¤¹¤ë¥Ç¡¼¥¿¤òÂԤĤ³¤È¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¾åµ­¤ÎÎã¤Ç¤Ï¡¢ +では、呼び出し側は結果的に +入力バッファ内にすで存在するデータを待つことになるかもしれない。 +上記の例では、 .B 2 -¤Ç¹Ô¤ï¤ì¤¿½ñ¤­¹þ¤ß¤Ë¤è¤Ã¤Æ +で行われた書き込みによって .I rfd -¤Ë´Ø¤¹¤ë¥¤¥Ù¥ó¥È¤¬À¸À®¤µ¤ì¡¢ +に関するイベントが生成され、 .B 3 -¤Ç¥¤¥Ù¥ó¥È¤¬¾ÃÈñ (consume) ¤µ¤ì¤ë¡£ +でイベントが消費 (consume) される。 .B 4 -¤Ç¹Ô¤ï¤ì¤ëÆɤ߹þ¤ßÁàºî¤Ç¤Ï¡¢Á´Éô¤Î¥Ð¥Ã¥Õ¥¡¥Ç¡¼¥¿¤ò¾ÃÈñ¤·¤Ê¤¤¤Î¤Ç¡¢ -¥¹¥Æ¥Ã¥× +で行われる読み込み操作では、全部のバッファデータを消費しないので、 +ステップ .B 5 -¤Ç¹Ô¤ï¤ì¤ë +で行われる .BR epoll_wait (2) -¤Î¸Æ¤Ó½Ð¤·¤¬ -̵´ü¸Â¤ËÄä»ß (block) ¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +の呼び出しが +無期限に停止 (block) するかもしれない。 .B EPOLLET -¥Õ¥é¥°¤òºÎÍѤ¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¥Ö¥í¥Ã¥¯¤·¤Ê¤¤ (nonblocking) ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò -»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï¡¢¥Ö¥í¥Ã¥¯¤µ¤ì¤ëÆɤ߹þ¤ß¤ä½ñ¤­¹þ¤ß¤Ë¤è¤Ã¤Æ¡¢ -Ê£¿ô¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò°·¤¦¥¿¥¹¥¯¤¬ -Ää»ß¤·¤Æ¤·¤Þ¤¦¤Î¤òÈò¤±¤ë¤¿¤á¤Ç¤¢¤ë¡£ +フラグを採用するアプリケーションでは、 +インタフェースはブロックしない (nonblocking) ファイルディスクリプタを +使うべきである。 +これは、ブロックされる読み込みや書き込みによって、 +複数のファイルディスクリプタを扱うタスクが +停止してしまうのを避けるためである。 .B epoll -¤ò¥¨¥Ã¥¸¥È¥ê¥¬ +をエッジトリガ .RB ( EPOLLET ) -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤È¤·¤Æ»È¤¦¤¿¤á¤ËÄó°Æ¤µ¤ì¤ëÊýË¡¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +インタフェースとして使うために提案される方法は以下の通りである。 .RS .TP 4 .B i -¥Ö¥í¥Ã¥¯¤·¤Ê¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤È¶¦¤Ë»È¤¦¡£ +ブロックしないファイルディスクリプタと共に使う。 .TP .B ii .BR read (2) -¤Þ¤¿¤Ï +または .BR write (2) -¤¬ +が .B EAGAIN -¤òÊÖ¤·¤¿¸å¤Ç¤Î¤ß¡¢¥¤¥Ù¥ó¥È¤òÂԤġ£ +を返した後でのみ、イベントを待つ。 .RE .PP -°ìÊý¡¢¥ì¥Ù¥ë¥È¥ê¥¬¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤È¤·¤Æ»È¤¦¾ì¹ç - (¤³¤Á¤é¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡¢ +一方、レベルトリガインタフェースとして使う場合 + (こちらがデフォルトである、 .B EPOLLET -¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç)¡¢ +が指定されなかった場合)、 .B epoll -¤Ïñ¤Ë¹â®¤Ê +は単に高速な .BR poll (2) -¤Ç¤¢¤ê¡¢»È¤¤Êý¤¬Æ±¤¸¤Ê¤Î¤Ç¡¢ +であり、使い方が同じなので、 .BR poll (2) -¤¬»È¤ï¤ì¤Æ¤¤¤ë¤È¤³¤í¤Ç¤Ï¤É¤³¤Ç¤â»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +が使われているところではどこでも使用することができる。 -¥¨¥Ã¥¸¥È¥ê¥¬¤ò»È¤Ã¤¿¾ì¹ç¤Ç¤â¡¢Ê£¿ô¤Î¥Ç¡¼¥¿¤ò¼õ¿®¤¹¤ë¤ÈÊ£¿ô¤Î +エッジトリガを使った場合でも、複数のデータを受信すると複数の .B epoll -¥¤¥Ù¥ó¥È¤¬À¸À®¤µ¤ì¤ë¤Î¤Ç¡¢ -¸Æ¤Ó½Ð¤·Â¦¤Ë¤Ï +イベントが生成されるので、 +呼び出し側には .B EPOLLONESHOT -¥Õ¥é¥°¤ò»ØÄꤹ¤ë¥ª¥×¥·¥ç¥ó¤¬¤¢¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï +フラグを指定するオプションがある。 +このフラグは .B epoll -¤ËÂФ·¤Æ¡¢ +に対して、 .BR epoll_wait (2) -¤Ë¤è¤ë¥¤¥Ù¥ó¥È¤ò¼õ¿®¤·¤¿¸å¤Ç¡¢´ØÏ¢¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò̵¸ú¤Ë¤µ¤»¤ë¡£ +によるイベントを受信した後で、関連するファイルディスクリプタを無効にさせる。 .B EPOLLONESHOT -¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ +フラグが指定された場合、 .BR epoll_ctl (2) -¤Ë +に .B EPOLL_CTL_MOD -¤ò»ØÄꤷ¤Æ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òºÆÅÙ»ÈÍѤǤ­¤ë¤è¤¦¤Ë¤¹¤ë¤Î¤Ï¡¢ -¸Æ¤Ó½Ð¤·Â¦¤ÎÀÕǤ¤Ç¤¢¤ë¡£ -.SS /proc ¥¤¥ó¥¿¥Õ¥§¡¼¥¹ -epoll ¤¬¾ÃÈñ¤¹¤ë¥«¡¼¥Í¥ë¥á¥â¥ê¤ÎÎ̤òÀ©¸Â¤¹¤ë¤¿¤á¤Ë¡¢ -°Ê²¼¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を指定してファイルディスクリプタを再度使用できるようにするのは、 +呼び出し側の責任である。 +.SS /proc インタフェース +epoll が消費するカーネルメモリの量を制限するために、 +以下のインタフェースを使用することができる。 .TP .\" Following was added in 2.6.28, but them removed in 2.6.29 .\" .TP @@ -196,49 +196,49 @@ epoll .\" This specifies an upper limit on the number of epoll instances .\" that can be created per real user ID. .TP -.IR /proc/sys/fs/epoll/max_user_watches " (Linux 2.6.28 °Ê¹ß)" -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¤¢¤ë¥æ¡¼¥¶¤¬¥·¥¹¥Æ¥à¾å¤ÎÁ´¤Æ¤Î epoll ¥¤¥ó¥¹¥¿¥ó¥¹¤Ë -ÅÐÏ¿¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÁí¿ô¤Î¾å¸Â¤òµ¬Äꤹ¤ë¡£ -¤³¤Î¾å¸Â¤Ï¼Â¥æ¡¼¥¶ ID ñ°Ì¤Ç¤¢¤ë¡£ -ÅÐÏ¿¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ 1 ¤Ä¤¬¾ÃÈñ¤¹¤ë¥á¥â¥êÎ̤ϡ¢ -32 ¥Ó¥Ã¥È¥«¡¼¥Í¥ë¤Ç¤ª¤è¤½ 90 ¥Ð¥¤¥È¡¢ -64 ¥Ó¥Ã¥È¥«¡¼¥Í¥ë¤Ç¤ª¤è¤½ 160 ¥Ð¥¤¥È¤Ç¤¢¤ë¡£ +.IR /proc/sys/fs/epoll/max_user_watches " (Linux 2.6.28 以降)" +このファイルは、あるユーザがシステム上の全ての epoll インスタンスに +登録できるファイルディスクリプタの総数の上限を規定する。 +この上限は実ユーザ ID 単位である。 +登録されたファイルディスクリプタ 1 つが消費するメモリ量は、 +32 ビットカーネルでおよそ 90 バイト、 +64 ビットカーネルでおよそ 160 バイトである。 .\" 2.6.29 (in 2.6.28, the default was 1/32 of lowmem) -¸½ºß¤Î¤È¤³¤í¡¢ +現在のところ、 .I max_user_watches -¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤϡ¢ÍøÍѲÄǽ¤Ê¥á¥â¥ê²¼¸Â¤Î 1/25 (4%) ¤Ç¤¢¤ê¡¢ -ÅÐÏ¿¤Ç¾ÃÈñ¤µ¤ì¤ë¥á¥â¥êÎÌ (¥Ð¥¤¥Èñ°Ì) ¤Ç³ä¤Ã¤¿ÃͤȤʤ롣 -.SS ¤ª¤¹¤¹¤á¤Ê»ÈÍÑÎã -¥ì¥Ù¥ë¥È¥ê¥¬¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤È¤·¤Æ»ÈÍѤ¹¤ë¤È¤­¤Î +のデフォルト値は、利用可能なメモリ下限の 1/25 (4%) であり、 +登録で消費されるメモリ量 (バイト単位) で割った値となる。 +.SS おすすめな使用例 +レベルトリガインタフェースとして使用するときの .B epoll -¤Î»È¤¤Êý¤Ï +の使い方は .BR poll (2) -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -¤·¤«¤·¥¨¥Ã¥¸¥È¥ê¥¬¤È¤·¤Æ»È¤¦¾ì¹ç¤Ï¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥¤¥Ù¥ó¥È¥ë¡¼¥×¤Ç¥¹¥È¡¼¥ë (stall) ¤·¤Ê¤¤¤è¤¦¤Ë¡¢ -»È¤¤Êý¤ò¤è¤êÌÀ³Î¤Ë¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¡£ -¤³¤ÎÎã¤Ç¤Ï¡¢¥ê¥¹¥Ê¤Ï¥Ö¥í¥Ã¥¯¤·¤Ê¤¤¥½¥±¥Ã¥È¤Ç¤¢¤ê¡¢ +と同じである。 +しかしエッジトリガとして使う場合は、 +アプリケーションのイベントループでストール (stall) しないように、 +使い方をより明確にしておく必要がある。 +この例では、リスナはブロックしないソケットであり、 .BR listen (2) -¤¬¸Æ¤Ð¤ì¤Æ¤¤¤ë¡£ -´Ø¿ô +が呼ばれている。 +関数 .I do_use_fd() -¤Ï¡¢ +は、 .BR read (2) -¤Þ¤¿¤Ï +または .BR write (2) -¤Ë¤è¤Ã¤Æ +によって .B EAGAIN -¤¬ÊÖ¤µ¤ì¤ë¤Þ¤Ç¤Ï¡¢¿·¤·¤¤½àÈ÷ºÑ¤ß¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò»È¤¦¡£ -¥¤¥Ù¥ó¥È¶îÆ°¥¹¥Æ¡¼¥È¥Þ¥·¥ó¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢ +が返されるまでは、新しい準備済みのファイルディスクリプタを使う。 +イベント駆動ステートマシンアプリケーションは、 .B EAGAIN -¤ò¼õ¿®¤·¤¿¸å¡¢¥«¥ì¥ó¥È¤Î¾õÂÖ¤òµ­Ï¿¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢¼¡¤Î +を受信した後、カレントの状態を記録しておくべきである。 +これにより、次の .I do_use_fd() -¸Æ¤Ó½Ð¤·¤Î¤È¤­¤Ë¡¢°ÊÁ°¤ËÄä»ß¤·¤¿¤È¤³¤í¤«¤é +呼び出しのときに、以前に停止したところから .BR read (2) -¤Þ¤¿¤Ï +または .BR write (2) -¤ò·Ñ³¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を継続することができる。 .in +4n .nf @@ -293,52 +293,52 @@ for (;;) { .fi .in -¥¨¥Ã¥¸¥È¥ê¥¬¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤È¤·¤Æ»È¤¦¾ì¹ç¡¢À­Ç½¾å¤ÎÍýͳ¤Ë¤è¤ê¡¢ -°ìÅÙ +エッジトリガインタフェースとして使う場合、性能上の理由により、 +一度 .RB ( EPOLLIN | EPOLLOUT ) -¤ò»ØÄꤷ¤Æ¤«¤é +を指定してから .RB ( EPOLL_CTL_ADD -¤Ç) ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò +で) ファイルディスクリプタを .B epoll -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ËÄɲ乤뤳¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢ +インタフェースに追加することができる。 +これにより、 .BR epoll_ctl (2) -¤Ë +に .B EPOLL_CTL_MOD -¤ò»ØÄꤷ¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¤Ç +を指定して呼び出すことで .B EPOLLIN -¤È +と .B EPOLLOUT -¤ÎϢ³Ū¤ÊÀÚ¤êÂؤ¨¤¬Èò¤±¤é¤ì¤ë¡£ -.SS ¼ÁÌä¤È²òÅú +の連続的な切り替えが避けられる。 +.SS 質問と解答 .TP 4 .B Q0 .B epoll -½¸¹çÆâ¤ÎÅÐÏ¿¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¶èÊ̤¹¤ë¤Ë¤Ï¡¢ -²¿¤ò¥­¡¼¤È¤·¤Æ»È¤¨¤Ð¤è¤¤¤«¡© +集合内の登録されたファイルディスクリプタを区別するには、 +何をキーとして使えばよいか? .TP .B A0 -¥­¡¼¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ÈÖ¹æ¤È¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò (open file -description) ¤ÎÁȤǤ¢¤ë (¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¤Ï "open file handle" ¤È¤â -¸Æ¤Ð¤ì¡¢¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥«¡¼¥Í¥ë¤ÎÆâÉôɽ¸½¤Ç¤¢¤ë)¡£ +キーはファイルディスクリプタ番号とオープンファイル記述 (open file +description) の組である (オープンファイル記述は "open file handle" とも +呼ばれ、オープンされたファイルのカーネルの内部表現である)。 .TP .B Q1 -1 ¤Ä¤Î +1 つの .B epoll -¥¤¥ó¥¹¥¿¥ó¥¹¤ËƱ¤¸¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò 2 ²óÅÐÏ¿¤¹¤ë¤È¤É¤¦¤Ê¤ë¤«¡© +インスタンスに同じファイルディスクリプタを 2 回登録するとどうなるか? .TP .B A1 -¤¿¤Ö¤ó +たぶん .B EEXIST -¤ò¼õ¤±¼è¤ë¤À¤í¤¦¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢Æ±¤¸ +を受け取るだろう。 +しかしながら、同じ .B epoll -¥¤¥ó¥¹¥¿¥ó¥¹¤ËÂФ·¤ÆÊ£À½¤µ¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÄɲ乤뤳¤È¤Ï²Äǽ¤Ç¤¢¤ë +インスタンスに対して複製されたディスクリプタを追加することは可能である .RB ( dup (2), .BR dup2 (2), .BR fcntl (2) .B F_DUPFD -¤Ê¤É)¡£ +など)。 .\" But a descriptor duplicated by fork(2) can't be added to the .\" set, because the [file *, fd] pair is already in the epoll set. .\" That is a somewhat ugly inconsistency. On the one hand, a child process @@ -354,216 +354,216 @@ description) .\" "epoll design problems with common fork/exec patterns" .\" .\" mtk, Feb 2008 -Ê£À½¤·¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò°Û¤Ê¤ë +複製したファイルディスクリプタを異なる .I events -¥Þ¥¹¥¯¤ÇÅÐÏ¿¤¹¤ì¤Ð¡¢¥¤¥Ù¥ó¥È¤ò¥Õ¥£¥ë¥¿¥ê¥ó¥°¤¹¤ë¤Î¤Ë -¤³¤Îµ¡Ç½¤ÏÍ­ÍѤʼêË¡¤Ç¤¢¤ë¡£ +マスクで登録すれば、イベントをフィルタリングするのに +この機能は有用な手法である。 .TP .B Q2 -2 ¤Ä¤Î +2 つの .B epoll -¥¤¥ó¥¹¥¿¥ó¥¹¤¬Æ±¤¸¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÂÔ¤Á¼õ¤±¤ë¤³¤È¤Ï²Äǽ¤«¡© -¤â¤·²Äǽ¤Ç¤¢¤ì¤Ð¡¢¥¤¥Ù¥ó¥È¤ÏξÊý¤Î +インスタンスが同じファイルディスクリプタを待ち受けることは可能か? +もし可能であれば、イベントは両方の .B epoll -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÊó¹ð¤µ¤ì¤ë¤«¡© +ファイルディスクリプタに報告されるか? .TP .B A2 -¥¤¥Ù¥ó¥È¤ÏξÊý¤ËÊó¹ð¤µ¤ì¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢¤³¤ì¤òÀµ¤·¤¯°·¤¦¤Ë¤ÏÃí°Õ¿¼¤¯¥×¥í¥°¥é¥ß¥ó¥°¤¹¤ëɬÍפ¬ -¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +イベントは両方に報告される。 +しかしながら、これを正しく扱うには注意深くプログラミングする必要が +あるかもしれない。 .TP .B Q3 .B epoll -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¼«¿È¤Ï poll/epoll/select ¤¬²Äǽ¤«¡© +ファイルディスクリプタ自身は poll/epoll/select が可能か? .TP .B A3 -²Äǽ¤Ç¤¢¤ë¡£ +可能である。 .B epoll -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë½èÍýÂÔ¤Á¤Î¥¤¥Ù¥ó¥È¤¬¤¢¤ë¾ì¹ç¤Ï¡¢ -Æɤ߽Ф·²Äǽ¤À¤ÈÄÌÃΤµ¤ì¤ë¤³¤È¤À¤í¤¦¡£ +ファイルディスクリプタに処理待ちのイベントがある場合は、 +読み出し可能だと通知されることだろう。 .TP .B Q4 .B epoll -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¼«¿È¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤Ë -Æþ¤ì¤è¤¦¤È¤¹¤ë¤È¤É¤¦¤Ê¤ë¤«¡© +ファイルディスクリプタを自身のファイルディスクリプタ集合に +入れようとするとどうなるか? .TP .B A4 .BR epoll_ctl (2) -¤Î¸Æ¤Ó½Ð¤·¤Ï +の呼び出しは .RB ( EINVAL -¤Ç) ¼ºÇÔ¤¹¤ë¤À¤í¤¦¡£ -¤¿¤À¤· +で) 失敗するだろう。 +ただし .B epoll -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¾¤Î +ファイルディスクリプタを他の .B epoll -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤ÎÆâÉô¤ËÄɲ乤뤳¤È¤Ï²Äǽ¤Ç¤¢¤ë¡£ +ファイルディスクリプタ集合の内部に追加することは可能である。 .TP .B Q5 .B epoll -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤Ç¾¤Î¥×¥í¥»¥¹¤ËÁ÷¤ë¤³¤È¤Ï²Äǽ¤«¡© +ファイルディスクリプタを UNIX ドメインソケットで他のプロセスに送ることは可能か? .TP .B A5 -²Äǽ¤À¤¬¡¢¤³¤ì¤ò¤¹¤ë¤³¤È¤Ë°ÕÌ£¤Ï¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¡¢¼õ¿®Â¦¤Î¥×¥í¥»¥¹¤¬ +可能だが、これをすることに意味はない。 +なぜなら、受信側のプロセスが .B epoll -½¸¹çÆâ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¥³¥Ô¡¼¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +集合内のファイルディスクリプタのコピーを持っていないからである。 .TP .B Q6 -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¯¥í¡¼¥º¤¹¤ë¤È¡¢¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÁ´¤Æ¤Î +ファイルディスクリプタをクローズすると、そのファイルディスクリプタは全ての .B epoll -½¸¹ç¤«¤é¼«Æ°Åª¤Ëºï½ü¤µ¤ì¤ë¤«¡© +集合から自動的に削除されるか? .TP .B A6 -ºï½ü¤µ¤ì¤ë¤¬¡¢°Ê²¼¤ÎÅÀ¤ËÃí°Õ¤¬É¬ÍפǤ¢¤ë¡£ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò +削除されるが、以下の点に注意が必要である。 +ファイルディスクリプタはオープンファイル記述 .RB ( open (2) -»²¾È) ¤Ø¤Î»²¾È¤Ç¤¢¤ë¡£ -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÊ£À½¤ò +参照) への参照である。 +ディスクリプタの複製を .BR dup (2), .BR dup2 (2), .BR fcntl (2) -¤Î +の .B F_DUPFD -¤ä +や .BR fork (2) -·Ðͳ¤Ç¹Ô¤¦Å٤ˡ¢Æ±¤¸¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¤ò»²¾È¤¹¤ë¿·µ¬¤Î¥Õ¥¡¥¤¥ë -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬À¸À®¤µ¤ì¤ë¡£ -¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¼«ÂΤϡ¢¼«¿È¤ò»²¾È¤¹¤ëÁ´¤Æ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ -¤¬¥¯¥í¡¼¥º¤µ¤ì¤ë¤Þ¤Ç¸ºß¤·Â³¤±¤ë¡£ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ +経由で行う度に、同じオープンファイル記述を参照する新規のファイル +ディスクリプタが生成される。 +オープンファイル記述自体は、自身を参照する全てのファイルディスクリプタ +がクローズされるまで存在し続ける。 +ファイルディスクリプタが .B epoll -½¸¹ç¤«¤éºï½ü¤µ¤ì¤ë¤Î¤Ï¡¢Âбþ¤¹¤ë¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¤ò»²¾È¤·¤Æ¤¤¤ë -Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥¯¥í¡¼¥º¤µ¤ì¤¿¸å¤Ç¤¢¤ë +集合から削除されるのは、対応するオープンファイル記述を参照している +全てのファイルディスクリプタがクローズされた後である .RB ( epoll_ctl (2) .B EPOLL_CTL_DEL -¤ò»È¤Ã¤Æ¤½¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÌÀ¼¨Åª¤Ëºï½ü¤·¤¿¾ì¹ç¤Ë¤âºï½ü¤µ¤ì¤ë)¡£ -¤³¤Î¤³¤È¤Ï¡¢ +を使ってそのディスクリプタを明示的に削除した場合にも削除される)。 +このことは、 .B epoll -½¸¹ç¤Ë°¤·¤Æ¤¤¤ë¤¢¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¯¥í¡¼¥º¤·¤¿¸å¤Ç¤¢¤Ã¤Æ¤â¡¢ -Ʊ¤¸¥Õ¥¡¥¤¥ëµ­½Ò¤ò»²¾È¤¹¤ë¾¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë´Ö¤Ï¡¢ -¥¯¥í¡¼¥º¤·¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿°¸¤Ë¥¤¥Ù¥ó¥È¤¬Êó¹ð¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¤È -¤¤¤¦¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +集合に属しているあるファイルディスクリプタをクローズした後であっても、 +同じファイル記述を参照する他のファイルディスクリプタがオープンされている間は、 +クローズしたファイルディスクリプタ宛にイベントが報告される可能性があると +いうことを意味する。 .TP .B Q7 -2 ¤Ä°Ê¾å¤Î¥¤¥Ù¥ó¥È¤¬ +2 つ以上のイベントが .BR epoll_wait (2) -¥³¡¼¥ë¤Î´Ö¤ËȯÀ¸¤·¤¿¾ì¹ç¡¢¤½¤ì¤é¤Ï¤Þ¤È¤á¤ÆÊó¹ð¤µ¤ì¤ë¤«¡¢ -¤½¤ì¤È¤âÊÌ¡¹¤ËÊó¹ð¤µ¤ì¤ë¤«¡© +コールの間に発生した場合、それらはまとめて報告されるか、 +それとも別々に報告されるか? .TP .B A7 -¤Þ¤È¤á¤ÆÊó¹ð¤µ¤ì¤ë¤À¤í¤¦¡£ +まとめて報告されるだろう。 .TP .B Q8 -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ¹¤ëÁàºî¤Ï¡¢ -´û¤Ë½¸¤á¤é¤ì¤Æ¤¤¤ë¤¬¤Þ¤ÀÊó¹ð¤µ¤ì¤Æ¤¤¤Ê¤¤¥¤¥Ù¥ó¥È¤Ë±Æ¶Á¤¹¤ë¤«¡© +ファイルディスクリプタに対する操作は、 +既に集められているがまだ報告されていないイベントに影響するか? .TP .B A8 -´û¸¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ 2 ¤Ä¤ÎÁàºî¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î¾ì¹ç¡¢ºï½ü¤Ë¤Ï°ÕÌ£¤¬¤Ê¤¤¡£ -Êѹ¹¤¹¤ë¤È¡¢»ÈÍѲÄǽ¤Ê I/O ¤¬ºÆ¤ÓÆɤ߹þ¤Þ¤ì¤ë¡£ +既存のファイルディスクリプタに対して 2 つの操作を行うことができる。 +この場合、削除には意味がない。 +変更すると、使用可能な I/O が再び読み込まれる。 .TP .B Q9 .B EPOLLET -¥Õ¥é¥° (¥¨¥Ã¥¸¥È¥ê¥¬Æ°ºî) ¤ò»È¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ +フラグ (エッジトリガ動作) を使っている場合、 .B EAGAIN -¤ò¼õ¤±¼è¤ë¤Þ¤Ç¡¢ -·Ñ³¤·¤Æ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÆɤ߽ñ¤­¤¹¤ëɬÍפ¬¤¢¤ë¤«¡© +を受け取るまで、 +継続してファイルディスクリプタを読み書きする必要があるか? .TP .B A9 .BR epoll_wait (2) -¤«¤é¥¤¥Ù¥ó¥È¤ò¼õ¤±¼è¤ë¤³¤È¤Ï¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Í׵ᤵ¤ì¤¿ I/O Áàºî¤ËÂФ·¤Æ½àÈ÷ºÑ¤ß¤Ç¤¢¤ë¡¢ -¤È¤¤¤¦¤³¤È¤ò¥æ¡¼¥¶¤Ë¼¨¤¹¤â¤Î¤Ç¤¢¤ë¡£ -¼¡¤Î (¥Ö¥í¥Ã¥¯¤·¤Ê¤¤) read/write ¤Ç +からイベントを受け取ることは、 +そのファイルディスクリプタが要求された I/O 操作に対して準備済みである、 +ということをユーザに示すものである。 +次の (ブロックしない) read/write で .B EAGAIN -¤ò¼õ¤±¼è¤ë¤Þ¤Ç¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï½àÈ÷ºÑ¤ß¤Ç¤¢¤ë¤È -¹Í¤¨¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¤¤¤Ä¤É¤Î¤è¤¦¤Ë»È¤¦¤«¤Ï¡¢ -Á´¤¯¥æ¡¼¥¶¤ËǤ¤µ¤ì¤Æ¤ë¡£ +を受け取るまではファイルディスクリプタは準備済みであると +考えなければならない。 +そのファイルディスクリプタをいつどのように使うかは、 +全くユーザに任されてる。 .sp -¥Ñ¥±¥Ã¥È»Ø¸þ¤ä¥È¡¼¥¯¥ó»Ø¸þ¤Î¥Õ¥¡¥¤¥ë (Î㤨¤Ð¡¢¥Ç¡¼¥¿¥°¥é¥à¥½¥±¥Ã¥È¡¢ -canonical ¥â¡¼¥É¤ÎüËö) ¤Ç¤Ï¡¢ -Æɤ߹þ¤ßÍÑ / ½ñ¤­¹þ¤ßÍѤΠI/O ¶õ´Ö¤ÎËöÈø¤ò¸¡ÃΤ¹¤ëÍ£°ì¤ÎÊýË¡¤Ï +パケット指向やトークン指向のファイル (例えば、データグラムソケット、 +canonical モードの端末) では、 +読み込み用 / 書き込み用の I/O 空間の末尾を検知する唯一の方法は .B EAGAIN -¤Ë¤Ê¤ë¤Þ¤Ç read/write ¤ò¹Ô¤¦¤³¤È¤Ç¤¢¤ë¡£ +になるまで read/write を行うことである。 .sp -¥¹¥È¥ê¡¼¥à»Ø¸þ¤Î¥Õ¥¡¥¤¥ë (Î㤨¤Ð¡¢¥Ñ¥¤¥×¡¢FIFO¡¢¥¹¥È¥ê¡¼¥à¥½¥±¥Ã¥È) ¤Ç¤Ï¡¢ -Æɤ߹þ¤ßÍÑ / ½ñ¤­¹þ¤ßÍѤΠI/O ¶õ´Ö¤¬»È¤¤¿Ô¤¯¤µ¤ì¤¿¾õÂ֤ϡ¢ -ÂоݤȤʤë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤éÆɤ߹þ¤ó¤À¥Ç¡¼¥¿Î̤ޤ¿¤Ï -½ñ¤­¹þ¤ó¤À¥Ç¡¼¥¿Î̤ò¥Á¥§¥Ã¥¯¤¹¤ë¤³¤È¤Ç¤â¸¡ÃΤǤ­¤ë¡£ -Î㤨¤Ð¡¢¤¢¤ëÆÃÄê¤ÎÎ̤Υǡ¼¥¿¤òÆɤ߹þ¤à¤¿¤á¤Ë +ストリーム指向のファイル (例えば、パイプ、FIFO、ストリームソケット) では、 +読み込み用 / 書き込み用の I/O 空間が使い尽くされた状態は、 +対象となるファイルディスクリプタから読み込んだデータ量または +書き込んだデータ量をチェックすることでも検知できる。 +例えば、ある特定の量のデータを読み込むために .BR read (2) -¤ò¸Æ¤ó¤À¤È¤­¤Ë¡¢ +を呼んだときに、 .BR read (2) -¤¬ÊÖ¤·¤¿¥Ð¥¤¥È¿ô¤¬¤½¤ì¤è¤ê¾¯¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÆɤ߹þ¤ßÍÑ I/O ¶õ´Ö¤¬ -»È¤¤¿Ô¤¯¤µ¤ì¤¿¤³¤È¤¬Ê¬¤«¤ë¡£ +が返したバイト数がそれより少なかった場合、 +そのファイルディスクリプタの読み込み用 I/O 空間が +使い尽くされたことが分かる。 .BR write (2) -¤ò»È¤Ã¤Æ½ñ¤­¹þ¤ß¤ò¤¹¤ë¤È¤­¤â¡¢Æ±¤¸¤³¤È¤¬¸À¤¨¤ë -(´Æ»ë¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¾ï¤Ë¥¹¥È¥ê¡¼¥à»Ø¸þ¤Î¥Õ¥¡¥¤¥ë¤ò -»²¾È¤·¤Æ¤¤¤ë¤³¤È¤òÊݾڤǤ­¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢¸å¼Ô¤Î¼êË¡¤Î»ÈÍѤòÈò¤±¤ë¤³¤È)¡£ -.SS ¤¢¤ê¤¬¤Á¤ÊÍî¤È¤··ê¤È²óÈòÊýË¡ +を使って書き込みをするときも、同じことが言える +(監視しているファイルディスクリプタが常にストリーム指向のファイルを +参照していることを保証できない場合には、後者の手法の使用を避けること)。 +.SS ありがちな落とし穴と回避方法 .TP -.B o µ²²î (starvation) (¥¨¥Ã¥¸¥È¥ê¥¬) +.B o 飢餓 (starvation) (エッジトリガ) .PP -Â礭¤Ê I/O ¶õ´Ö¤¬¤¢¤ë¾ì¹ç¡¢ -¤½¤Î I/O ¶õ´Ö¤Î¥Ç¡¼¥¿¤òÁ´¤Æ½èÍý (drain) ¤·¤è¤¦¤È¤¹¤ë¤È¡¢ -¾¤Î¥Õ¥¡¥¤¥ë¤¬½èÍý¤µ¤ì¤º¡¢µ²²î¤òȯÀ¸¤µ¤»¤ë¤³¤È¤¬¤¢¤ë -(¤³¤ÎÌäÂê¤Ï +大きな I/O 空間がある場合、 +その I/O 空間のデータを全て処理 (drain) しようとすると、 +他のファイルが処理されず、飢餓を発生させることがある +(この問題は .B epoll -¤Ë¸ÇÍ­¤Î¤â¤Î¤Ç¤Ï¤Ê¤¤)¡£ +に固有のものではない)。 .PP -¤³¤ÎÌäÂê¤Î²ò·èË¡¤Ï¡¢½àÈ÷ºÑ¤ß¾õÂ֤Υꥹ¥È¤ò´ÉÍý¤·¤Æ¡¢ -´ØÏ¢¤¹¤ë data ¹½Â¤ÂΤÎÃæ¤Ç¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ -ÍøÍѲÄǽ¤Ç¤¢¤ë¤È¥Þ¡¼¥¯¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£ -¤½¤ì¤Ë¤è¤Ã¤Æ¡¢ÍøÍѲÄǽ¤Ê¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤ÎÃæ¤Ç -¤É¤Î¥Õ¥¡¥¤¥ë¤ò½èÍý¤¹¤ëɬÍפ¬¤¢¤ë¤«¤ò²±¤¨¤ë¤³¤È¤¬¤Ç¤­¡¢ -¤·¤«¤â½çÈ֤˽èÍý (round robin) ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -´û¤ËÍøÍѲÄǽ¤Ç¤¢¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ -¤½¤ì°Ê¸å¤Ë¼õ¤±¼è¤ë¥¤¥Ù¥ó¥È¤ò̵»ë¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +この問題の解決法は、準備済み状態のリストを管理して、 +関連する data 構造体の中でファイルディスクリプタが +利用可能であるとマークすることである。 +それによって、利用可能なすべてのファイルの中で +どのファイルを処理する必要があるかを憶えることができ、 +しかも順番に処理 (round robin) することができる。 +既に利用可能であるファイルディスクリプタに対して +それ以後に受け取るイベントを無視することもできる。 .TP -.B o ¥¤¥Ù¥ó¥È¥­¥ã¥Ã¥·¥å¤ò»È¤Ã¤Æ¤¤¤ë¾ì¹ç +.B o イベントキャッシュを使っている場合 .PP -¥¤¥Ù¥ó¥È¥­¥ã¥Ã¥·¥å¤ò»È¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -¤Þ¤¿¤Ï +イベントキャッシュを使っている場合、 +または .BR epoll_wait (2) -¤«¤éÊÖ¤µ¤ì¤¿Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò³ÊǼ¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -¥¯¥í¡¼¥º¤µ¤ì¤¿¤³¤È¤òưŪ¤Ë¥Þ¡¼¥¯¤¹¤ë -(¤Ä¤Þ¤êÁ°¤Î¥¤¥Ù¥ó¥È¤Î½èÍý¤Ë¤è¤Ã¤Æ¥Þ¡¼¥¯¤µ¤ì¤ë) ÊýË¡¤òÄ󶡤¹¤Ù¤­¤Ç¤¢¤ë¡£ +から返された全てのファイルディスクリプタを格納している場合、 +クローズされたことを動的にマークする +(つまり前のイベントの処理によってマークされる) 方法を提供すべきである。 .BR epoll_wait (2) -¤«¤é 100 ¸Ä¤Î¥¤¥Ù¥ó¥È¤ò¼õ¤±¼è¤ê¡¢ -¥¤¥Ù¥ó¥È #47 ¤Ç¤Ï¤¢¤ë¾ò·ï¤Ç¥¤¥Ù¥ó¥È #13 ¤¬ÊĤ¸¤é¤ì¤ë¤È²¾Äꤹ¤ë¡£ -¥¤¥Ù¥ó¥È #13 ¤Î¹½Â¤ÂΤòºï½ü¤·¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò +から 100 個のイベントを受け取り、 +イベント #47 ではある条件でイベント #13 が閉じられると仮定する。 +イベント #13 の構造体を削除しファイルディスクリプタを .BR close (2) -¤¹¤ë¤È¡¢¥¤¥Ù¥ó¥È¥­¥ã¥Ã¥·¥å¤Ï¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÂԤĥ¤¥Ù¥ó¥È¤¬ -¸ºß¤¹¤ë¤È¤¤¤Ã¤Æ¡¢º®Í𤬵¯¤­¤ë¡£ +すると、イベントキャッシュはそのファイルディスクリプタを待つイベントが +存在するといって、混乱が起きる。 .PP -¤³¤ÎÌäÂê¤ò²ò·è¤¹¤ë 1 ¤Ä¤ÎÊýË¡¤Ï¡¢¥¤¥Ù¥ó¥È 47 ¤Î½èÍý¤ò¤·¤Æ¤¤¤ë´Ö¤Ë¡¢ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ 13 ¤òºï½ü¤·¤Æ +この問題を解決する 1 つの方法は、イベント 47 の処理をしている間に、 +ファイルディスクリプタ 13 を削除して .BR close (2) -¤¹¤ë¤¿¤á¤Ë +するために .BR epoll_ctl ( EPOLL_CTL_DEL ) -¤ò¸Æ¤Ó½Ð¤·¡¢´ØÏ¢ÉÕ¤±¤é¤ì¤¿ data ¹½Â¤ÂΤòºï½üºÑ¤ß¤È¥Þ¡¼¥¯¤·¤Æ¡¢ -¥¯¥ê¡¼¥ó¥¢¥Ã¥×¥ê¥¹¥È¤Ë¥ê¥ó¥¯¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£ -¥Ð¥Ã¥Á½èÍý¤ÎÃæ¤Ç¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ 13 ¤Ë¤Ä¤¤¤Æ¤Î -¾¤Î¥¤¥Ù¥ó¥È¤ò¸«¤Ä¤±¤¿¾ì¹ç¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬°ÊÁ°¤Ëºï½ü¤µ¤ì¤¿¤â¤Î¤Ç¤¢¤ë¤Èʬ¤«¤ë¤Î¤Ç¡¢ -º®Íð¤Ïµ¯¤­¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +を呼び出し、関連付けられた data 構造体を削除済みとマークして、 +クリーンアップリストにリンクすることである。 +バッチ処理の中でファイルディスクリプタ 13 についての +他のイベントを見つけた場合、 +そのファイルディスクリプタが以前に削除されたものであると分かるので、 +混乱は起きない。 +.SH バージョン .B epoll -API ¤Ï Linux ¥«¡¼¥Í¥ë 2.5.44 ¤ËƳÆþ¤µ¤ì¤¿¡£ -.\" ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï Linux ¥«¡¼¥Í¥ë 2.5.66 ¤Ç³ÎÄꤵ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.3.2 ¤ÇÄɲ䵤줿¡£ -.SH ½àµò +API は Linux カーネル 2.5.44 に導入された。 +.\" インタフェースは Linux カーネル 2.5.66 で確定されるべきである。 +glibc でのサポートはバージョン 2.3.2 で追加された。 +.SH 準拠 .B epoll -API ¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ -¾¤Î¥·¥¹¥Æ¥à¤Ç¤âƱÍͤε¡¹½¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤¬¤¢¤ë¡£ -Î㤨¤Ð¡¢FreeBSD ¤Î +API は Linux 固有である。 +他のシステムでも同様の機構が提供されている場合がある。 +例えば、FreeBSD の .I kqueue -¤ä Solaris ¤Î +や Solaris の .I /dev/poll -¤Ê¤É¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +などである。 +.SH 関連項目 .BR epoll_create (2), .BR epoll_create1 (2), .BR epoll_ctl (2), diff --git a/release/man7/feature_test_macros.7 b/release/man7/feature_test_macros.7 index a1b29c35..50557692 100644 --- a/release/man7/feature_test_macros.7 +++ b/release/man7/feature_test_macros.7 @@ -28,46 +28,46 @@ .\" Updated 2007-09-08, Akihiro MOTOKI, LDP v2.64 .\" Updated 2009-04-23, Akihiro MOTOKI, LDP v3.21 .\" -.\"WORD: feature test macro µ¡Ç½¸¡ºº¥Þ¥¯¥í -.\"WORD: feature test macro requirements µ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +.\"WORD: feature test macro 機能検査マクロ +.\"WORD: feature test macro requirements 機能検査マクロの要件 .\" .TH FEATURE_TEST_MACROS 7 2010-09-10 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -feature_test_macros \- µ¡Ç½¸¡ºº¥Þ¥¯¥í -.SH ½ñ¼° +.SH 名前 +feature_test_macros \- 機能検査マクロ +.SH 書式 .nf .B #include .fi -.SH ÀâÌÀ -µ¡Ç½¸¡ºº¥Þ¥¯¥í (feature test macro) ¤Ë¤è¤ê¡¢¥×¥í¥°¥é¥Þ¤Ï -¥×¥í¥°¥é¥à¤¬¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤ëºÝ¤Ë¥·¥¹¥Æ¥à¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ë¤è¤ê -¸ø³«¤µ¤ì¤ëÄêµÁ¤òÀ©¸æ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +.SH 説明 +機能検査マクロ (feature test macro) により、プログラマは +プログラムがコンパイルされる際にシステムのヘッダファイルにより +公開される定義を制御することができる。 -.B Ãí°Õ: -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤òµ¡Ç½¤µ¤»¤ë¤Ë¤Ï¡¢µ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÄêµÁ¤ò -¡Ö¤É¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Î¥¤¥ó¥¯¥ë¡¼¥É¤è¤ê¤âÁ°¤Ç¡×¹Ô¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ì¤ò¼Â¸½¤¹¤ë¤Ë¤Ï¡¢ -¥³¥ó¥Ñ¥¤¥ë¥³¥Þ¥ó¥É¤Ç»ØÄꤹ¤ëÊýË¡ +.B 注意: +機能検査マクロを機能させるには、機能検査マクロの定義を +「どのヘッダファイルのインクルードよりも前で」行わなければならない。 +これを実現するには、 +コンパイルコマンドで指定する方法 .RI ( "cc \-DMACRO=value" ) -¤È¡¢¥½¡¼¥¹¥³¡¼¥ÉÆâ¤ÇɬÍפʥޥ¯¥í¤ÎÄêµÁ¤ò -¤É¤Î¥Ø¥Ã¥À¤Î¥¤¥ó¥¯¥ë¡¼¥É¤è¤ê¤âÁ°¤Ç¹Ô¤¦ÊýË¡¤¬¤¢¤ë¡£ +と、ソースコード内で必要なマクロの定義を +どのヘッダのインクルードよりも前で行う方法がある。 -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤ò»È¤¦¤È¡¢Èóɸ½à¤ÎÄêµÁ¤¬¸ø³«¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¤Ç¤­¡¢ -°Ü¿¢À­¤Î¤¢¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òºîÀ®¤¹¤ë¤Î¤ËÌòΩ¤Ä¡£ -¾¤Î¥Þ¥¯¥í¤ò»È¤¦¤È¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¸ø³«¤µ¤ì¤Ê¤¤Èóɸ½à¤ÎÄêµÁ¤ò -¸ø³«¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -°Ê²¼¤ÇÀâÌÀ¤¹¤ëµ¡Ç½¸¡ºº¥Þ¥¯¥í¤Î¤½¤ì¤¾¤ì¤ÎÀµ³Î¤Ê±Æ¶Á¤ò³Îǧ¤¹¤ë¤Ë¤Ï¡¢ -¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë +機能検査マクロを使うと、非標準の定義が公開されないようにでき、 +移植性のあるアプリケーションを作成するのに役立つ。 +他のマクロを使うと、デフォルトでは公開されない非標準の定義を +公開することができる。 +以下で説明する機能検査マクロのそれぞれの正確な影響を確認するには、 +ヘッダファイル .I -¤òÄ´¤Ù¤ì¤Ð¤è¤¤¡£ +を調べればよい。 -.SS ¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï¤Îµ¬Äê -´Ø¿ô¤¬µ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÄêµÁ¤òɬÍפȤ¹¤ë¾ì¹ç¡¢ -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î½ñ¼° (SYNOPSIS) ¤ÎÀá¤Ë -°Ê²¼¤Î·Á¼°¤ÎÃí¼á¤òÆþ¤ì¤ë -(°Ê²¼¤ÎÎã¤Ï +.SS マニュアルページでの機能検査マクロの要件の規定 +関数が機能検査マクロの定義を必要とする場合、 +マニュアルページの書式 (SYNOPSIS) の節に +以下の形式の注釈を入れる +(以下の例は .BR acct (2) -¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤«¤é¤Î°úÍѤǤ¢¤ë)¡£ +のマニュアルページからの引用である)。 .RS 8 .sp .B #include @@ -76,9 +76,9 @@ feature_test_macros \- .sp .nf .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï +glibc 向けの機能検査マクロの要件 .RB ( feature_test_macros (7) -»²¾È): +参照): .fi .in .sp @@ -86,12 +86,12 @@ glibc _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) .RE .PP -\fB||\fP ¤Ï¡¢ +\fB||\fP は、 .BR acct (2) -¤ÎÄêµÁ¤ò +の定義を .I -¤«¤éÆÀ¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¥Þ¥¯¥í¤ÎÄêµÁ¤Î¤¤¤º¤ì¤«¤ò¡¢¤É¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Î -¥¤¥ó¥¯¥ë¡¼¥É¤è¤ê¤âÁ°¤Ç¹Ô¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +から得るには、以下のマクロの定義のいずれかを、どのヘッダファイルの +インクルードよりも前で行わなければならないことを意味する。 .RS .nf @@ -100,8 +100,8 @@ _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) .fi .RE .PP -Ê̤ÎÊýË¡¤È¤·¤Æ¤Ï¡¢Åù²Á¤ÊÄêµÁ¤ò¥³¥ó¥Ñ¥¤¥ëÍѤΥ³¥Þ¥ó¥É¤Ç -»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +別の方法としては、等価な定義をコンパイル用のコマンドで +指定することもできる。 .RS .nf @@ -110,17 +110,17 @@ cc \-D_XOPEN_SOURCE # Or any value < 500 .fi .RE .PP -¸å¤Ç½Ò¤Ù¤ë¤¬¡¢ -.B ¡Ö¤¤¤¯¤Ä¤«¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÄêµÁ¤µ¤ì¤ë¡× -ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¤³¤Î¤¿¤á¡¢¡Ö½ñ¼°¡×¤Ëµ­ºÜ¤µ¤ì¤¿µ¡Ç½¸¡ºº¥Þ¥¯¥í¤ò¾ï¤Ë -ÌÀ¼¨Åª¤Ë»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ +後で述べるが、 +.B 「いくつかの機能検査マクロはデフォルトで定義される」 +点に注意すること。 +このため、「書式」に記載された機能検査マクロを常に +明示的に指定する必要があるわけではない。 -¤¢¤Þ¤ê¿¤¯¤Ê¤¤¤¬¡¢¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë¤è¤Ã¤Æ¤Ï¡¢ -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï¤ò°Ê²¼¤Î¤è¤¦¤Ë´Êñ¤Êɽ¸½¤Çµ­ºÜ¤¹¤ë¾ì¹ç¤¬¤¢¤ë¡£ -(°Ê²¼¤ÎÎã¤Ï +あまり多くないが、マニュアルページによっては、 +機能検査マクロの要件を以下のように簡単な表現で記載する場合がある。 +(以下の例は .BR readahead (2) -¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤«¤é¤Î°úÍѤǤ¢¤ë)¡£ +のマニュアルページからの引用である)。 .RS .nf @@ -131,164 +131,164 @@ cc \-D_XOPEN_SOURCE # Or any value < 500 .fi .RE .PP -´Ø¿ôÄêµÁ¤Î¸ø³«¤Ë»È¤¨¤ëµ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬°ì¤Ä¤À¤±¤Ç¡¢ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¤½¤Î¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤Ê¤¤¾ì¹ç¤Ë¡¢ -¤³¤Î·Á¼°¤Îɽ¸½¤òÍøÍѤ¹¤ë¡£ -.SS glibc ¤¬²ò¼á¤¹¤ëµ¡Ç½¸¡ºº¥Þ¥¯¥í -°Ê²¼¤Ç¤Ï¡¢Linux glibc 2.\fIx\fP (\fIx\fP > 0) ¤Ë¤ª¤¤¤Æ¡¢ -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬¤É¤Î¤è¤¦¤Ë°·¤ï¤ì¤ë¤«¤òÀâÌÀ¤¹¤ë¡£ +関数定義の公開に使える機能検査マクロが一つだけで、 +デフォルトではそのマクロが定義されない場合に、 +この形式の表現を利用する。 +.SS glibc が解釈する機能検査マクロ +以下では、Linux glibc 2.\fIx\fP (\fIx\fP > 0) において、 +機能検査マクロがどのように扱われるかを説明する。 .\" The details in glibc 2.0 are simpler, but combining a .\" a description of them with the details in later glibc versions .\" would make for a complicated description. -Linux/glibc ¤Ï°Ê²¼¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ò²ò¼á¤¹¤ë: +Linux/glibc は以下の機能検査マクロを解釈する: .TP .B __STRICT_ANSI__ -ISO ɸ½à¤Î C¡£ +ISO 標準の C。 .BR gcc (1) -¤ò +を .I -std=c99 -¤ä +や .I -ansi -¤Ê¤É¤Î¥Õ¥é¥°¤òÉÕ¤±¤Æµ¯Æ°¤·¤¿¾ì¹ç¡¢ -¤³¤Î¥Þ¥¯¥í¤Ï°ÅÌۤΤ¦¤Á¤ËÄêµÁ¤µ¤ì¤ë¡£ +などのフラグを付けて起動した場合、 +このマクロは暗黙のうちに定義される。 .TP .B _POSIX_C_SOURCE -¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç -°Ê²¼¤ÎÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£ +このマクロを定義すると、ヘッダファイルで +以下の定義が公開される。 .RS .IP \(bu 3 -Ãͤ¬ 1 ¤Î¾ì¹ç¡¢POSIX.1-1990 ¤È ISO C (1990) ¤Ë½àµò¤¹¤ëÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£ +値が 1 の場合、POSIX.1-1990 と ISO C (1990) に準拠する定義が公開される。 .IP \(bu -Ãͤ¬ 2 °Ê¾å¤Î¾ì¹ç¡¢ -POSIX.2-1992 ´ØÏ¢¤ÎÄêµÁ¤âÄɲäǸø³«¤µ¤ì¤ë¡£ +値が 2 以上の場合、 +POSIX.2-1992 関連の定義も追加で公開される。 .IP \(bu -Ãͤ¬ 199309 °Ê¾å¤Î¾ì¹ç¡¢ -POSIX.1b (¥ê¥¢¥ë¥¿¥¤¥à³ÈÄ¥) ´ØÏ¢¤ÎÄêµÁ¤¬ÄɲäǸø³«¤µ¤ì¤ë¡£ +値が 199309 以上の場合、 +POSIX.1b (リアルタイム拡張) 関連の定義が追加で公開される。 .\" 199506L functionality is only available since glibc 2.1 .IP \(bu -Ãͤ¬ 199506 °Ê¾å¤Î¾ì¹ç¡¢ -POSIX.1c (¥¹¥ì¥Ã¥É) ´ØÏ¢¤ÎÄêµÁ¤¬ÄɲäǸø³«¤µ¤ì¤ë¡£ +値が 199506 以上の場合、 +POSIX.1c (スレッド) 関連の定義が追加で公開される。 .IP \(bu -(glibc 2.3.3 °Ê¹ß) -Ãͤ¬ 200112L °Ê¾å¤Î¾ì¹ç¡¢ -(XSI ³ÈÄ¥¤ò½ü¤¯) POSIX.1-2001 ´ðËÜ»ÅÍͤËÂбþ¤¹¤ëÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£ +(glibc 2.3.3 以降) +値が 200112L 以上の場合、 +(XSI 拡張を除く) POSIX.1-2001 基本仕様に対応する定義が公開される。 .IP \(bu -(glibc 2.10 °Ê¹ß) -Ãͤ¬ 200809L °Ê¾å¤Î¾ì¹ç¡¢ -(XSI ³ÈÄ¥¤ò½ü¤¯) POSIX.1-2008 ´ðËÜ»ÅÍͤËÂбþ¤¹¤ëÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£ +(glibc 2.10 以降) +値が 200809L 以上の場合、 +(XSI 拡張を除く) POSIX.1-2008 基本仕様に対応する定義が公開される。 .RE .TP .B _POSIX_SOURCE -¤³¤Î¥Þ¥¯¥í¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¡£ -¤³¤Î¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤ë¤È¡¢Ãͤ˴ؤï¤é¤º¡¢ +このマクロは廃止予定である。 +このマクロが定義されると、値に関わらず、 .B _POSIX_C_SOURCE -¤òÃÍ 1 ¤ÇÄêµÁ¤¹¤ë¤Î¤ÈÅù²Á¤È¤Ê¤ë¡£ +を値 1 で定義するのと等価となる。 .TP .B _XOPEN_SOURCE -¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç°Ê²¼¤ÎÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£ +このマクロを定義すると、ヘッダファイルで以下の定義が公開される。 .RS .IP \(bu 3 -¤É¤ó¤ÊÃͤǤ⡢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç -POSIX.1, POSIX.2, XPG4 ¤Ë½àµò¤¹¤ëÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£ +どんな値でも、ヘッダファイルで +POSIX.1, POSIX.2, XPG4 に準拠する定義が公開される。 .IP \(bu -Ãͤ¬ 500 °Ê¾å¤Î¾ì¹ç¡¢ -SUSv2 (UNIX 98) ´ØÏ¢¤ÎÄêµÁ¤¬ÄɲäǸø³«¤µ¤ì¤ë¡£ +値が 500 以上の場合、 +SUSv2 (UNIX 98) 関連の定義が追加で公開される。 .IP \(bu -(glibc 2.2 °Ê¹ß) -Ãͤ¬ 600 °Ê¾å¤Î¾ì¹ç¡¢ -SUSv3 (UNIX 03; POSIX.1-2001 ´ðËÜ»ÅÍÍ + XSI ³ÈÄ¥¤ÈƱ¤¸) -´ØÏ¢¤ÎÄêµÁ¤È C99 ¤Ç¤ÎÄêµÁ¤¬ÄɲäǸø³«¤µ¤ì¤ë¡£ +(glibc 2.2 以降) +値が 600 以上の場合、 +SUSv3 (UNIX 03; POSIX.1-2001 基本仕様 + XSI 拡張と同じ) +関連の定義と C99 での定義が追加で公開される。 .IP \(bu -(glibc 2.10 °Ê¹ß) -Ãͤ¬ 700 °Ê¾å¤Î¾ì¹ç¡¢ -SUSv4 (POSIX.1-2008 ´ðËÜ»ÅÍÍ + XSI ³ÈÄ¥¤ÈƱ¤¸) -´ØÏ¢¤ÎÄêµÁ¤¬ÄɲäǸø³«¤µ¤ì¤ë¡£ +(glibc 2.10 以降) +値が 700 以上の場合、 +SUSv4 (POSIX.1-2008 基本仕様 + XSI 拡張と同じ) +関連の定義が追加で公開される。 .RE .TP .B _XOPEN_SOURCE_EXTENDED -¤³¤Î¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¡¢¤µ¤é¤Ë +このマクロが定義され、さらに .B _XOPEN_SOURCE -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤È¡¢XPG4v2 (SUSv1) UNIX ³ÈÄ¥ (UNIX 95) -¤ËÂбþ¤¹¤ëÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£ +が定義されていると、XPG4v2 (SUSv1) UNIX 拡張 (UNIX 95) +に対応する定義が公開される。 .B _XOPEN_SOURCE -¤¬ 500 °Ê¾å¤ÎÃͤÇÄêµÁ¤µ¤ì¤¿¾ì¹ç¡¢¤³¤Î¥Þ¥¯¥í¤Ï°ÅÌۤΤ¦¤Á¤ËÄêµÁ¤µ¤ì¤ë¡£ +が 500 以上の値で定義された場合、このマクロは暗黙のうちに定義される。 .TP .B _ISOC99_SOURCE -ISO C (1990) ¤Î C99 ³ÈÄ¥¤ò¸ø³«¤¹¤ë¡£ -¤³¤Î¥Þ¥¯¥í¤Ï glibc 2.1.3 °Ê¹ß¤Çǧ¼±¤µ¤ì¤ë¡£ -½é´ü¤Î¥Ð¡¼¥¸¥ç¥ó 2.1.x ¤Î glibc ¤Ç¤Ï¡¢¤³¤ì¤ÈÅù²Á¤Ê +ISO C (1990) の C99 拡張を公開する。 +このマクロは glibc 2.1.3 以降で認識される。 +初期のバージョン 2.1.x の glibc では、これと等価な .B _ISOC9X_SOURCE -¤È¤¤¤¦Ì¾Á°¤Î¥Þ¥¯¥í¤¬»È¤ï¤ì¤Æ¤¤¤¿ -(¤Ê¤¼¤Ê¤é¡¢C99 ɸ½à¤Ï¤Þ¤À³ÎÄꤷ¤Æ¤¤¤Ê¤«¤Ã¤¿¤«¤é¤Ç¤¢¤ë)¡£ +という名前のマクロが使われていた +(なぜなら、C99 標準はまだ確定していなかったからである)。 .B _ISOC9X_SOURCE -¥Þ¥¯¥í¤Î»ÈÍѤÏÇѻߤµ¤ì¤Æ¤¤¤ë¤¬¡¢ -glibc ¤Ï²áµî¤È¤Î¸ß´¹À­¤Î¤¿¤áº£¤Ç¤â¤³¤Î¥Þ¥¯¥í¤òǧ¼±¤¹¤ë¡£ +マクロの使用は廃止されているが、 +glibc は過去との互換性のため今でもこのマクロを認識する。 .TP .B _LARGEFILE64_SOURCE -LFS (Large File Summit) ¤Ë¤è¤ê -"»ÃÄê³ÈÄ¥ (transitional extension)" Single UNIX Specification -¤È¤·¤Æµ¬Äꤵ¤ì¤¿ÂåÂØ API (alternative API) ¤Ë´Ø¤¹¤ëÄêµÁ¤ò¸ø³«¤¹¤ë -(http://opengroup.org/platform/lfs.html »²¾È)¡£ -ÂåÂØ API ¤Ï¿·µ¬¥ª¥Ö¥¸¥§¥¯¥È (´Ø¿ô¤È·¿) ¤Î½¸¹ç¤Ç¹½À®¤µ¤ì¡¢ -¤½¤Î̾Á°¤Ï "64" ¤Ç½ª¤ï¤ë (Î㤨¤Ð¡¢ +LFS (Large File Summit) により +"暫定拡張 (transitional extension)" Single UNIX Specification +として規定された代替 API (alternative API) に関する定義を公開する +(http://opengroup.org/platform/lfs.html 参照)。 +代替 API は新規オブジェクト (関数と型) の集合で構成され、 +その名前は "64" で終わる (例えば、 .I off_t -¤ËÂбþ¤¹¤ë¤Î¤Ï -.IR off64_t ¡¢ +に対応するのは +.IR off64_t 、 .BR lseek () -¤ËÂбþ¤¹¤ë¤Î¤Ï +に対応するのは .BR lseek64 () -¤Ç¤¢¤ë)¡£ -¿·¤·¤¤¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÍøÍѤ·¤Ê¤¤¤³¤È¡£ -Âå¤ï¤ê¤Ë +である)。 +新しいプログラムではこのインタフェースを利用しないこと。 +代わりに .I _FILE_OFFSET_BITS=64 -¤òÍøÍѤ¹¤ë¤³¤È¡£ +を利用すること。 .TP .B _FILE_OFFSET_BITS -¤³¤Î¥Þ¥¯¥í¤òÃÍ 64 ¤ÇÄêµÁ¤¹¤ë¤È¡¢¥Õ¥¡¥¤¥ë I/O ¤È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÁàºî¤Ë -´ØÏ¢¤¹¤ë 32 ¥Ó¥Ã¥ÈÈǤδؿô¤È¥Ç¡¼¥¿¥¿¥¤¥×¤Ï¼«Æ°Åª¤Ë 64 ¥Ó¥Ã¥ÈÈÇ¤Ë -ÊÑ´¹¤µ¤ì¤ë¡£ -¤³¤ì¤Ï¡¢32 ¥Ó¥Ã¥È¥·¥¹¥Æ¥à¤ÇÂ礭¤Ê¥Õ¥¡¥¤¥ë (> 2 ¥®¥¬¥Ð¥¤¥È) ¤Î I/O -¤ò¼Â¹Ô¤¹¤ëºÝ¤ËÌòΩ¤Ä -(¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È¡¢¥³¥ó¥Ñ¥¤¥ë¤·Ä¾¤¹¤À¤±¤ÇÂ礭¤Ê¥Õ¥¡¥¤¥ë¤ò -°·¤¨¤ë¥×¥í¥°¥é¥à¤ò½ñ¤¯¤³¤È¤¬¤Ç¤­¤ë)¡£ -64 ¥Ó¥Ã¥È¥·¥¹¥Æ¥à¤Ï¡¢¤â¤È¤â¤È 2 ¥®¥¬¥Ð¥¤¥È¤è¤êÂ礭¤Ê¥Õ¥¡¥¤¥ë¤ò -°·¤¨¤ë¤Î¤Ç¡¢64 ¥Ó¥Ã¥È¥·¥¹¥Æ¥à¤Ç¤Ï¤³¤Î¥Þ¥¯¥í¤Ï¸ú²Ì¤ò»ý¤¿¤Ê¤¤¡£ +このマクロを値 64 で定義すると、ファイル I/O とファイルシステム操作に +関連する 32 ビット版の関数とデータタイプは自動的に 64 ビット版に +変換される。 +これは、32 ビットシステムで大きなファイル (> 2 ギガバイト) の I/O +を実行する際に役立つ +(このマクロを定義すると、コンパイルし直すだけで大きなファイルを +扱えるプログラムを書くことができる)。 +64 ビットシステムは、もともと 2 ギガバイトより大きなファイルを +扱えるので、64 ビットシステムではこのマクロは効果を持たない。 .TP .B _BSD_SOURCE -¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È (Ãͤ˴ؤï¤é¤º) ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç -BSD ͳÍè¤ÎÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£ -¤Þ¤¿¡¢¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È¡¢ÁêÍƤì¤Ê¤¤É¸½à¤¬Â¸ºß¤¹¤ë¾õ¶·¤Ë¤ª¤¤¤Æ -BSD ͳÍè¤ÎÄêµÁ¤òÍ¥À褹¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¤¿¤À¤·¡¢ +このマクロを定義すると (値に関わらず) ヘッダファイルで +BSD 由来の定義が公開される。 +また、このマクロを定義すると、相容れない標準が存在する状況において +BSD 由来の定義を優先するようになる。 +ただし、 .BR _SVID_SOURCE , .BR _POSIX_SOURCE , .BR _POSIX_C_SOURCE , .BR _XOPEN_SOURCE , .BR _XOPEN_SOURCE_EXTENDED , .B _GNU_SOURCE -¤¬°ì¤Ä¤Ç¤âÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢BSD ͳÍè¤ÎÄêµÁ¤ÏÍ¥À褵¤ì¤Ê¤¯¤Ê¤ë¡£ +が一つでも定義された場合には、BSD 由来の定義は優先されなくなる。 .TP .B _SVID_SOURCE -¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È (Ãͤ˴ؤï¤é¤º) ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç -System V ͳÍè¤ÎÄêµÁ¤¬¸ø³«¤µ¤ì¤ë +このマクロを定義すると (値に関わらず) ヘッダファイルで +System V 由来の定義が公開される (SVID == System V Interface Definition; .BR standards (7) -»²¾È)¡£ +参照)。 .TP -.BR _ATFILE_SOURCE " (glibc 2.4 °Ê¹ß)" -¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È (Ãͤ˴ؤï¤é¤º) ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç -̾Á°¤ÎËöÈø¤¬ "at" ¤Î³Æ¼ï¤Î´Ø¿ô¤ÎÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£ +.BR _ATFILE_SOURCE " (glibc 2.4 以降)" +このマクロを定義すると (値に関わらず) ヘッダファイルで +名前の末尾が "at" の各種の関数の定義が公開される。 .BR openat (2) -»²¾È¡£ -glibc 2.10 °Ê¹ß¤Ç¤Ï¡¢ +参照。 +glibc 2.10 以降では、 .B _POSIX_C_SOURCE -¤¬ 200809L °Ê¾å¤ÎÃͤÇÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ -¤³¤Î¥Þ¥¯¥í¤â°ÅÌۤΤ¦¤Á¤ËÄêµÁ¤µ¤ì¤ë¡£ +が 200809L 以上の値で定義された場合には、 +このマクロも暗黙のうちに定義される。 .TP .B _GNU_SOURCE -¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È (Ãͤ˴ؤï¤é¤º) °Ê²¼¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤Î¤È -Åù²Á¤Ë¤Ê¤ë: +このマクロを定義すると (値に関わらず) 以下のマクロを定義するのと +等価になる: .BR _BSD_SOURCE , .BR _SVID_SOURCE , .BR _ATFILE_SOURCE , @@ -296,42 +296,42 @@ glibc 2.10 .BR _ISOC99_SOURCE , .BR _XOPEN_SOURCE_EXTENDED , .BR _POSIX_SOURCE , -ÃÍ 200809L ¤Î +値 200809L の .B _POSIX_C_SOURCE -(¥Ð¡¼¥¸¥ç¥ó 2.10 ¤è¤êÁ°¤Î glibc ¤Ç¤ÏÃÍ¤Ï 200112L¡¢ -¥Ð¡¼¥¸¥ç¥ó 2.5 ¤è¤êÁ°¤Î glibc ¤Ç¤ÏÃÍ¤Ï 199506L¡¢ -¥Ð¡¼¥¸¥ç¥ó 2.1 ¤è¤êÁ°¤Î glibc ¤Ç¤ÏÃÍ¤Ï 199309L), -ÃÍ 700 ¤Î +(バージョン 2.10 より前の glibc では値は 200112L、 +バージョン 2.5 より前の glibc では値は 199506L、 +バージョン 2.1 より前の glibc では値は 199309L), +値 700 の .B _XOPEN_SOURCE -(¥Ð¡¼¥¸¥ç¥ó 2.10 ¤è¤êÁ°¤Î glibc ¤Ç¤ÏÃÍ¤Ï 600¡¢ -¥Ð¡¼¥¸¥ç¥ó 2.2 ¤è¤êÁ°¤Î glibc ¤Ç¤ÏÃÍ¤Ï 500)¡£ -¤µ¤é¤Ë¡¢³Æ¼ï¤Î GNU ¸ÇÍ­¤Î³ÈÄ¥¤â¸ø³«¤µ¤ì¤ë¡£ -»ØÄꤵ¤ì¤¿É¸½à¤ËÌ·½â¤¬¤¢¤Ã¤¿¾ì¹ç¤Ï¡¢ -BSD ͳÍè¤ÎÄêµÁ¤¬Í¥À褵¤ì¤Ê¤¯¤Ê¤ë¡£ +(バージョン 2.10 より前の glibc では値は 600、 +バージョン 2.2 より前の glibc では値は 500)。 +さらに、各種の GNU 固有の拡張も公開される。 +指定された標準に矛盾があった場合は、 +BSD 由来の定義が優先されなくなる。 .TP .B _REENTRANT -¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È¡¢¤¤¤¯¤Ä¤«¤Î¥ê¥¨¥ó¥È¥é¥ó¥È (ºÆÆþ²Äǽ) ¤Ê´Ø¿ô -ÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¡¦¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¤³¤ÎÂå¤ï¤ê¤Ë +このマクロを定義すると、いくつかのリエントラント (再入可能) な関数 +定義が公開される。マルチスレッド・プログラムでは、この代わりに .I "cc\ \-pthread" -¤ò»ÈÍѤ¹¤ë¤³¤È¡£ +を使用すること。 .TP .B _THREAD_SAFE .B _REENTRANT -¤ÎƱµÁ¸ì¡£ -¾¤Î¤¤¤¯¤Ä¤«¤Î¼ÂÁõ¤È¤Î¸ß´¹À­¤òÄ󶡤¹¤ë¤¿¤á¤Î¤â¤Î¡£ +の同義語。 +他のいくつかの実装との互換性を提供するためのもの。 .TP -.BR _FORTIFY_SOURCE " (glibc 2.3.4 °Ê¹ß)" +.BR _FORTIFY_SOURCE " (glibc 2.3.4 以降)" .\" For more detail, see: .\" http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html .\" [PATCH] Object size checking to prevent (some) buffer overflows .\" * From: Jakub Jelinek .\" * To: gcc-patches at gcc dot gnu dot org .\" * Date: Tue, 21 Sep 2004 04:16:40 -0400 -¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È¡¢Ê¸»úÎó¤ä¥á¥â¥ê¤ÎÁàºî¤ò¹Ô¤¦ÍÍ¡¹¤Ê´Ø¿ô¤ò -»ÈÍѤ¹¤ëºÝ¤Ë¥Ð¥Ã¥Õ¥¡¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤ò¸¡½Ð¤¹¤ë¤¿¤á¤Î·Ú¤á¤Î¥Á¥§¥Ã¥¯¤¬ -¼Â¹Ô¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£¤¹¤Ù¤Æ¤Î¥Ð¥Ã¥Õ¥¡¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬¸¡½Ð¤µ¤ì¤ë -¤ï¤±¤Ç¤Ï¤Ê¤¯¡¢¤¢¤¯¤Þ¤Ç¤è¤¯¤¢¤ëÎã¤Ë¤Ä¤¤¤Æ¤À¤±¤Ç¤¢¤ë¡£ -¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¡¢°Ê²¼¤Î´Ø¿ô¤Ë¥Á¥§¥Ã¥¯¤¬Äɲ䵤ì¤Æ¤¤¤ë: +このマクロを定義すると、文字列やメモリの操作を行う様々な関数を +使用する際にバッファオーバーフローを検出するための軽めのチェックが +実行されるようになる。すべてのバッファオーバーフローが検出される +わけではなく、あくまでよくある例についてだけである。 +現在の実装では、以下の関数にチェックが追加されている: .BR memcpy (3), .BR mempcpy (3), .BR memmove (3), @@ -347,32 +347,32 @@ BSD ͳ .BR vsnprintf (3), .BR gets (3). .B _FORTIFY_SOURCE -¤¬ 1 ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¥³¥ó¥Ñ¥¤¥é¤ÎºÇŬ²½¥ì¥Ù¥ë¤¬ 1 +が 1 に設定された場合、コンパイラの最適化レベルが 1 .RI ( "gcc\ \-O1" ) -¤«¤½¤ì°Ê¾å¤Ç¤¢¤ì¤Ð¡¢µ¬³Ê¤Ë½àµò¤¹¤ë¥×¥í¥°¥é¥à¤Î¿¶¤ëÉñ¤¤¤ò -ÊѲ½¤µ¤»¤Ê¤¤¤è¤¦¤Ê¥Á¥§¥Ã¥¯¤¬¼Â¹Ô¤µ¤ì¤ë¡£ +かそれ以上であれば、規格に準拠するプログラムの振る舞いを +変化させないようなチェックが実行される。 .B _FORTIFY_SOURCE -¤¬ 2 ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¤µ¤é¤Ê¤ë¥Á¥§¥Ã¥¯¤¬Äɲ䵤ì¤ë¤¬¡¢ -µ¬³Ê¤Ë½àµò¤¹¤ë¥×¥í¥°¥é¥à¤Î¤¤¤¯¤Ä¤«¤¬¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¤¤¤¯¤Ä¤«¤Î¥Á¥§¥Ã¥¯¤Ï¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¼Â¹Ô¤Ç¤­¡¢¥³¥ó¥Ñ¥¤¥é¤Î·Ù¹ð¤È¤·¤Æ -ɽ¼¨¤µ¤ì¤ë¡£Â¾¤Î¥Á¥§¥Ã¥¯¤Ï¼Â¹Ô»þ¤Ë¹Ô¤ï¤ì¡¢¥Á¥§¥Ã¥¯¤Ë¼ºÇÔ¤·¤¿¾ì¹ç -¤Ë¤Ï¼Â¹Ô»þ¥¨¥é¡¼¤È¤Ê¤ë¡£ -¤³¤Î¥Þ¥¯¥í¤ò»ÈÍѤ¹¤ë¤Ë¤Ï¥³¥ó¥Ñ¥¤¥é¤ÎÂбþ¤¬É¬ÍפǤ¢¤ê¡¢ -¥Ð¡¼¥¸¥ç¥ó 4.0 °Ê¹ß¤Î +が 2 に設定された場合、さらなるチェックが追加されるが、 +規格に準拠するプログラムのいくつかが失敗する可能性がある。 +いくつかのチェックはコンパイル時に実行でき、コンパイラの警告として +表示される。他のチェックは実行時に行われ、チェックに失敗した場合 +には実行時エラーとなる。 +このマクロを使用するにはコンパイラの対応が必要であり、 +バージョン 4.0 以降の .BR gcc (1) -¤ÇÍøÍѤǤ­¤ë¡£ -.SS ¥Ç¥Õ¥©¥ë¥È¤ÎÄêµÁ¡¢°ÅÌÛ¤ÎÄêµÁ¡¢ÁȤ߹ç¤ï¤»ÄêµÁ +で利用できる。 +.SS デフォルトの定義、暗黙の定義、組み合わせ定義 .PP -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬°ì¤Ä¤âÌÀ¼¨Åª¤ËÄêµÁ¤µ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ -¥Ç¥Õ¥©¥ë¥È¤Çµ¡Ç½¸¡ºº¥Þ¥¯¥í +機能検査マクロが一つも明示的に定義されなかった場合、 +デフォルトで機能検査マクロ .BR _BSD_SOURCE , .BR _SVID_SOURCE , .BR _POSIX_SOURCE , .BR _POSIX_C_SOURCE =200809L -¤¬ÄêµÁ¤µ¤ì¤ë -(¥Ð¡¼¥¸¥ç¥ó 2.10 ¤è¤êÁ°¤Î glibc ¤Ç¤ÏÃÍ¤Ï 200112L¡¢ -¥Ð¡¼¥¸¥ç¥ó 2.4 ¤è¤êÁ°¤Î glibc ¤Ç¤ÏÃÍ¤Ï 199506L¡¢ -¥Ð¡¼¥¸¥ç¥ó 2.1 ¤è¤êÁ°¤Î glibc ¤Ç¤ÏÃÍ¤Ï 199309L)¡£ +が定義される +(バージョン 2.10 より前の glibc では値は 200112L、 +バージョン 2.4 より前の glibc では値は 199506L、 +バージョン 2.1 より前の glibc では値は 199309L)。 .PP .BR __STRICT_ANSI__ , .BR _ISOC99_SOURCE , @@ -382,77 +382,77 @@ BSD ͳ .BR _XOPEN_SOURCE_EXTENDED , .BR _BSD_SOURCE , .B _SVID_SOURCE -¤Î¤¤¤º¤ì¤«¤¬ÌÀ¼¨Åª¤ËÄêµÁ¤µ¤ì¤¿¾ì¹ç¡¢ +のいずれかが明示的に定義された場合、 .B _BSD_SOURCE -¤È +と .B _SVID_SOURCE -¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤ÏÄêµÁ¤µ¤ì¤Ê¤¤¡£ +はデフォルトでは定義されない。 .B _POSIX_SOURCE -¤È +と .B _POSIX_C_SOURCE -¤¬ÌÀ¼¨Åª¤ËÄêµÁ¤µ¤ì¤Ê¤¤¾ì¹ç¤Ç¡¢ +が明示的に定義されない場合で、 .B __STRICT_ANSI__ -¤¬ÄêµÁ¤µ¤ì¤Ê¤¤¡¢¤â¤·¤¯¤Ï +が定義されない、もしくは .B _XOPEN_SOURCE -¤¬ 500 °Ê¾å¤ÎÃͤÇÄêµÁ¤µ¤ì¤¿¤È¤­¤Ë¤Ï¡¢ +が 500 以上の値で定義されたときには、 .RS 3 .IP * 3 .B _POSIX_SOURCE -¤¬ÃÍ 1 ¤ÇÄêµÁ¤µ¤ì¡¢¤«¤Ä +が値 1 で定義され、かつ .IP * .B _POSIX_C_SOURCE -¤Ï°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«°ì¤Ä¤ÇÄêµÁ¤µ¤ì¤ë¡£ +は以下の値のいずれか一つで定義される。 .RS 6 .IP \(bu 3 2 .RB ( _XOPEN_SOURCE -¤¬ 500 ̤Ëþ¤ÎÃͤÇÄêµÁ¤µ¤ì¤¿¾ì¹ç) +が 500 未満の値で定義された場合) .IP \(bu 199506L .RB ( _XOPEN_SOURCE -¤¬ 500 °Ê¾å 600 ̤Ëþ¤ÎÃͤÇÄêµÁ¤µ¤ì¤¿¾ì¹ç) +が 500 以上 600 未満の値で定義された場合) .IP \(bu -(glibc 2.4 °Ê¹ß) +(glibc 2.4 以降) 200112L .RB ( XOPEN_SOURCE -¤¬ 600 °Ê¾å 700 ̤Ëþ¤ÎÃͤÇÄêµÁ¤µ¤ì¤¿¾ì¹ç) +が 600 以上 700 未満の値で定義された場合) .IP \(bu -(glibc 2.10 °Ê¹ß) +(glibc 2.10 以降) 200809L .RB ( XOPEN_SOURCE -¤¬ 700 °Ê¾å¤ÎÃͤÇÄêµÁ¤µ¤ì¤¿¾ì¹ç) +が 700 以上の値で定義された場合) .IP \(bu -¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Î glibc ¤Ç¤Ï +古いバージョンの glibc では .B _POSIX_C_SOURCE -¤ÎÃͤȤ·¤Æ 200112L ¤ä 200809L ¤Ï¸ºß¤»¤º¡¢ +の値として 200112L や 200809L は存在せず、 .B _POSIX_C_SOURCE -¤ÎÃͤ¬¤É¤¦¤Ê¤ë¤«¤Ï glibc ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤ê°Û¤Ê¤ë¡£ +の値がどうなるかは glibc のバージョンにより異なる。 .IP \(bu .B _XOPEN_SOURCE -¤¬Ì¤ÄêµÁ¤Î¾ì¹ç¡¢ +が未定義の場合、 .B _POSIX_C_SOURCE -¤ÎÃÍ¤Ï glibc ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤ê°Û¤Ê¤ë¡£ -¥Ð¡¼¥¸¥ç¥ó 2.4 ¤è¤êÁ°¤Î glibc ¤Ç¤Ï 199506L¡¢ -¥Ð¡¼¥¸¥ç¥ó 2.4 °Ê¹ß 2.9 ̤Ëþ¤Ç¤Ï 200112L¡¢ -glibc 2.10 °Ê¹ß¤Ç¤Ï 200809L ¤È¤Ê¤ë¡£ +の値は glibc のバージョンにより異なる。 +バージョン 2.4 より前の glibc では 199506L、 +バージョン 2.4 以降 2.9 未満では 200112L、 +glibc 2.10 以降では 200809L となる。 .RE .RE .PP -¤Þ¤¿¡¢Ê£¿ô¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¤³¤Î¾ì¹ç¡¢ÄêµÁ¤·¤¿¥Þ¥¯¥í¤Ï¤¹¤Ù¤ÆÍ­¸ú¤Ë¤Ê¤ë¡£ -.SH ½àµò -POSIX.1 ¤Ç¤Ï +また、複数のマクロを定義することもできる。 +この場合、定義したマクロはすべて有効になる。 +.SH 準拠 +POSIX.1 では .BR _POSIX_C_SOURCE , .BR _POSIX_SOURCE , .B _XOPEN_SOURCE -¤¬µ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +が規定されている。 .B _XOPEN_SOURCE_EXTENDED -¤Ï XPG4v2 (ÊÌ̾ SUSv1) ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤¿¡£ +は XPG4v2 (別名 SUSv1) で規定されていた。 .B _FILE_OFFSET_BITS -¤Ï¤É¤Îɸ½à¤Ç¤âµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -¾¤Î¤¤¤¯¤Ä¤«¤Î¼ÂÁõ¤ÇºÎÍѤµ¤ì¤Æ¤¤¤ë¡£ +はどの標準でも規定されていないが、 +他のいくつかの実装で採用されている。 .BR _BSD_SOURCE , .BR _SVID_SOURCE , @@ -461,29 +461,29 @@ POSIX.1 .BR _FORTIFY_SOURCE , .BR _REENTRANT , .B _THREAD_SAFE -¤Ï Linux (glibc) ¸ÇÍ­¤Ç¤¢¤ë¡£ -.SH Ãí°Õ +は Linux (glibc) 固有である。 +.SH 注意 .I -¤Ï Linux/glibc ¸ÇÍ­¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£ -¾¤Î¥·¥¹¥Æ¥à¤Ë¤âƱÍͤÎÌÜŪ¤Î¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¤¬¡¢ÉáÄ̤ϰ㤦̾Á°¤Ç¤¢¤ë¡£ -¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ï¡¢Â¾¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ë¤è¤êɬÍפ˱þ¤¸¤Æ -¼«Æ°Åª¤Ë¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤ë¡£µ¡Ç½¸¡ºº¥Þ¥¯¥í¤òÍøÍѤ¹¤ë¤¿¤á¤Ë -ÌÀ¼¨Åª¤Ë¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ëɬÍפϤʤ¤¡£ +は Linux/glibc 固有のヘッダファイルである。 +他のシステムにも同様の目的のファイルがあるが、普通は違う名前である。 +このヘッダファイルは、他のヘッダファイルにより必要に応じて +自動的にインクルードされる。機能検査マクロを利用するために +明示的にインクルードする必要はない。 -¾åµ­¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤Î¤¦¤Á¤É¤ì¤¬ÄêµÁ¤µ¤ì¤¿¤«¤Ë¤·¤¿¤¬¤Ã¤Æ¡¢ +上記の機能検査マクロのうちどれが定義されたかにしたがって、 .I -¤Ï¡¢Â¾¤Î glibc ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç¥Á¥§¥Ã¥¯¤µ¤ì¤ë³Æ¼ï¤Î¾¤Î¥Þ¥¯¥í¤ò¡¢ -ÆâÉô¤ÇÄêµÁ¤¹¤ë¡£¤³¤ì¤é¤Î¥Þ¥¯¥í¤Î̾Á°¤Ï¥¢¥ó¥À¡¼¥¹¥³¥¢ 2¤Ä¤Ç»Ï¤Þ¤ë -(Î㤨¤Ð -.BR __USE_MISC )¡£ -¥æ¡¼¥¶¥×¥í¥°¥é¥à¤Ï¤³¤ì¤é¤Î¥Þ¥¯¥í¤ò \fI·è¤·¤Æ\fP ľÀÜÄêµÁ¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -Âå¤ï¤ê¤Ë¡¢¾åµ­¤Î¥ê¥¹¥È¤Ë¤¢¤ëŬÀڤʵ¡Ç½¸¡ºº¥Þ¥¯¥í¤òÍøÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ -.SH Îã -²¼µ­¤Î¥×¥í¥°¥é¥à¤ò»È¤¦¤È¡¢³Æ¼ï¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ glibc ¤Î¥Ð¡¼¥¸¥ç¥ó -¤Ë±þ¤¸¤Æ¤É¤Î¤è¤¦¤ËÀßÄꤵ¤ì¤ë¤«¤ä¡¢¤É¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ÌÀ¼¨Åª¤Ë -ÀßÄꤵ¤ì¤ë¤«¡¢¤òÄ´¤Ù¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -°Ê²¼¤Ë¼¨¤¹¥·¥§¥ë¡¦¥»¥Ã¥·¥ç¥ó¤Ï¡¢ -glibc 2.10 ¤Î¥·¥¹¥Æ¥à¤Ç¤Î¼Â¹Ô·ë²Ì¤ÎÎã¤Ç¤¢¤ë¡£ +は、他の glibc ヘッダファイルでチェックされる各種の他のマクロを、 +内部で定義する。これらのマクロの名前はアンダースコア 2つで始まる +(例えば +.BR __USE_MISC )。 +ユーザプログラムはこれらのマクロを \fI決して\fP 直接定義すべきではない。 +代わりに、上記のリストにある適切な機能検査マクロを利用すべきである。 +.SH 例 +下記のプログラムを使うと、各種の機能検査マクロが glibc のバージョン +に応じてどのように設定されるかや、どの機能検査マクロが明示的に +設定されるか、を調べることができる。 +以下に示すシェル・セッションは、 +glibc 2.10 のシステムでの実行結果の例である。 .in +4n .nf @@ -584,12 +584,12 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR libc (7), .BR standards (7) .sp .I "info libc" -¤Î "Feature Test Macros" ¤ÎÀá¡£ +の "Feature Test Macros" の節。 .\" But beware: the info libc document is out of date (Jul 07, mtk) .sp .I /usr/include/features.h diff --git a/release/man7/fifo.7 b/release/man7/fifo.7 index d8875f96..a0949a27 100644 --- a/release/man7/fifo.7 +++ b/release/man7/fifo.7 @@ -14,51 +14,51 @@ .\" by HANATAKA Shinya .\" .TH FIFO 7 2008-12-03 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -fifo \- ÀèÆþÀè½ÐÆüì¥Õ¥¡¥¤¥ë¡¢Ì¾Á°ÉÕ¤­¥Ñ¥¤¥× -.SH ½ñ¼° -FIFO Æüì¥Õ¥¡¥¤¥ë(̾Á°ÉÕ¤­¥Ñ¥¤¥×)¤Ï¥Ñ¥¤¥×¤Ë»÷¤Æ¤¤¤ë¤¬¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î°ìÉô¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤Æ¤¤¤ëÅÀ¤¬°Û¤Ã¤Æ¤¤¤ë¡£ -Ê£¿ô¤Î¥×¥í¥»¥¹¤¬Æɤ߹þ¤ß¤ä½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤¹¤ë¤³¤È -¤¬¤Ç¤­¤ë¡£¥×¥í¥»¥¹¤¬ FIFO ¤òÄ̤·¥Ç¡¼¥¿¤ò¸ò´¹¤¹¤ë¾ì¹ç¡¢ -¼ÂºÝ¤Ë¤½¤ì¤ò¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤Ï½ñ¤­¹þ¤Þ¤º¡¢¥«¡¼¥Í¥ë¤ÏÁ´¤Æ¤Î -¥Ç¡¼¥¿¤òÆâÉôŪ¤ËÅϤ¹¡£¤³¤Î¤è¤¦¤Ë¡¢FIFO Æüì¥Õ¥¡¥¤¥ë¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -¾å¤Ë¤ÏÆâÍƤò»ý¤¿¤Ê¤¤¤Î¤Ç¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥¨¥ó¥È¥ê¤Ï -¥×¥í¥»¥¹¤¬¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î̾Á°¤ò»ÈÍѤ·¤Æ¤½¤Î¥Ñ¥¤¥×¤Ë -¥¢¥¯¥»¥¹¤Ç¤­¤ë¤è¤¦¤Ë»²¾È¥Ý¥¤¥ó¥È¤òÄ󶡤·¤Æ¤¤¤ë¤Ë²á¤®¤Ê¤¤¡£ +.SH 名前 +fifo \- 先入先出特殊ファイル、名前付きパイプ +.SH 書式 +FIFO 特殊ファイル(名前付きパイプ)はパイプに似ているが、 +ファイルシステムの一部に関連付けられている点が異っている。 +複数のプロセスが読み込みや書き込みのためにオープンすること +ができる。プロセスが FIFO を通しデータを交換する場合、 +実際にそれをファイルシステムには書き込まず、カーネルは全ての +データを内部的に渡す。このように、FIFO 特殊ファイルはファイルシステム +上には内容を持たないので、ファイルシステムのエントリは +プロセスがそのファイルシステム上の名前を使用してそのパイプに +アクセスできるように参照ポイントを提供しているに過ぎない。 .PP -¥«¡¼¥Í¥ë¤Ï¡¢¾¯¤Ê¤¯¤È¤â°ì¤Ä¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë -FIFO Æüì¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¡¢¤½¤ì¤¾¤ì°ì¤Ä¤Î¥Ñ¥¤¥×¤Î¤ß¤ò´ÉÍý¤·¤Æ¤¤¤ë¡£ -¥Ç¡¼¥¿¤¬ÅϤµ¤ì¤ëÁ°¤Ë¤½¤Î FIFO ¤Îξü(½ñ¤­¹þ¤ß¤ÈÆɤ߽Ф·)¤¬¥ª¡¼¥×¥ó -¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£Ä̾FIFO ¤ò¥ª¡¼¥×¥ó¤¹¤ë¤È¡¢ -¤½¤ÎÈ¿ÂЦ¤¬¥ª¡¼¥×¥ó¤µ¤ì¤ë¤Þ¤ÇÄä»ß(block)¤µ¤»¤é¤ì¤ë¡£ +カーネルは、少なくとも一つのプロセスによってオープンされている +FIFO 特殊ファイルについて、それぞれ一つのパイプのみを管理している。 +データが渡される前にその FIFO の両端(書き込みと読み出し)がオープン +されていなければならない。通常、FIFO をオープンすると、 +その反対側がオープンされるまで停止(block)させられる。 .PP -¥×¥í¥»¥¹¤Ï FIFO ¤òÈóÄä»ß(nonblocking)¥â¡¼¥É¤Ç¥ª¡¼¥×¥ó¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¤³¤Î¾ì¹ç¡¢Æɤ߹þ¤ßÀìÍѤǥª¡¼¥×¥ó¤·¤¿¾ì¹ç¤Ë¤Ï½ñ¤­¹þ¤ß¦¤òï¤â¥ª¡¼¥×¥ó -¤·¤Æ¤¤¤Ê¤¯¤Æ¤âÀ®¸ù¤¹¤ë¡£½ñ¤­¹þ¤ßÀìÍѤǥª¡¼¥×¥ó¤·¤¿¾ì¹ç¤ÏÈ¿ÂЦ¤¬´û¤Ë -¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð +プロセスは FIFO を非停止(nonblocking)モードでオープンすることもできる。 +この場合、読み込み専用でオープンした場合には書き込み側を誰もオープン +していなくても成功する。書き込み専用でオープンした場合は反対側が既に +オープンされていなければ .B ENXIO -(¤½¤Î¤è¤¦¤Ê¥Ç¥Ð¥¤¥¹¤Þ¤¿¤Ï¥¢¥É¥ì¥¹¤Ï¸ºß¤·¤Ê¤¤) -¤È¤¤¤¦¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë¡£ +(そのようなデバイスまたはアドレスは存在しない) +というエラーで失敗する。 .PP -Linux ¤Ç¤Ï¡¢FIFO ¤òÆɤ߹þ¤ß¤È½ñ¤­¹þ¤ßξÍѤ˥ª¡¼¥×¥ó¤·¤¿¾ì¹ç¡¢ -Ää»ß¡¢ÈóÄä»ß¤Î¤É¤Á¤é¤Î¥â¡¼¥É¤Ç¤âÀ®¸ù¤¹¤ë¡£POSIX ¤Ç¤Ï¤³¤Î¾ì¹ç¤Î -Æ°ºî¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£¤³¤ì¤ÏÆɤ߹þ¤ß¦¤¬¤¤¤Ê¤¤»þ¤Ë½ñ¤­¹þ¤ßÍÑ¤Ë -¥ª¡¼¥×¥ó¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¼«Ê¬¼«¿È¤ÈÄÌ¿®¤¹¤ë¤¿¤á¤Ë -ξü¤ò»ÈÍѤ¹¤ë¥×¥í¥»¥¹¤Ï¥Ç¥Ã¥É¥í¥Ã¥¯¤òÈò¤±¤ë¤¿¤á¤ËÈó¾ï¤ËÃí°Õ¿¼¤¯ -¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH Ãí°Õ -¥×¥í¥»¥¹¤¬¡¢È¿ÂФÎÆɤ߹þ¤ß¦¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤ FIFO ¤ò -½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤·¤è¤¦¤È¤·¤¿¾ì¹ç¡¢¤½¤Î¥×¥í¥»¥¹¤Ë +Linux では、FIFO を読み込みと書き込み両用にオープンした場合、 +停止、非停止のどちらのモードでも成功する。POSIX ではこの場合の +動作は定義されていない。これは読み込み側がいない時に書き込み用に +オープンするために使用することができる。自分自身と通信するために +両端を使用するプロセスはデッドロックを避けるために非常に注意深く +なければならない。 +.SH 注意 +プロセスが、反対の読み込み側がオープンされていない FIFO を +書き込みのためにオープンしようとした場合、そのプロセスに .B SIGPIPE -¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£ +シグナルが送られる。 -FIFO Æüì¥Õ¥¡¥¤¥ë¤Ï +FIFO 特殊ファイルは .BR mkfifo (3) -¤ÇºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¡¢ +で作成することができ、 .IR "ls \-l" -¤Ç¤Ï¥Õ¥¡¥¤¥ë¼ïÊÌ \(aqp\(aq ¤Çɽ¼¨¤µ¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +ではファイル種別 \(aqp\(aq で表示される。 +.SH 関連項目 .BR mkfifo (1), .BR open (2), .BR pipe (2), diff --git a/release/man7/futex.7 b/release/man7/futex.7 index 14236d48..777d2027 100644 --- a/release/man7/futex.7 +++ b/release/man7/futex.7 @@ -11,113 +11,113 @@ .\" Translated Fri Oct 24 10:37:10 JST 2003 .\" by Suzuki Takashi. .\" -.\"WORD: contend ¶¥¹ç¤¹¤ë -.\"WORD: sleep µ¯¾²ÂÔ¤Á¤¹¤ë -.\"WORD: wake µ¯¾²¤¹¤ë -.\"WORD: wake up µ¯¾²¤¹¤ë +.\"WORD: contend 競合する +.\"WORD: sleep 起床待ちする +.\"WORD: wake 起床する +.\"WORD: wake up 起床する .\" .TH FUTEX 7 2002-12-31 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -futex - ¹â®¥æ¡¼¥¶¶õ´Ö¥í¥Ã¥¯µ¡¹½ -.SH ½ñ¼° +.SH 名前 +futex - 高速ユーザ空間ロック機構 +.SH 書式 .nf .B #include .fi -.SH ÀâÌÀ +.SH 説明 .PP -Linux ¥«¡¼¥Í¥ë¤Ï¡¢¥æ¡¼¥¶¶õ´Ö¤Ç¹â®¤Ê¥í¥Ã¥¯µ¡¹½¤ä¥»¥Þ¥Õ¥©¤ò»ÈÍѤ¹¤ë¤¿¤á¤Î -´ðÁÃŪÍ×ÁǤȤ·¤Æ futex ("Fast Userspace muTexes"; ¹â®¥æ¡¼¥¶¶õ´Ö mutex) ¤ò -Ä󶡤·¤Æ¤¤¤ë¡£ -futex ¤ÏÈó¾ï¤Ë´ðËÜŪ¤Ê¤â¤Î¤Ç¡¢ POSIX mutex ¤Î¤è¤¦¤Ê¹âÅ٤ʥí¥Ã¥¯µ¡¹½¤Î³µÇ°¤ò -¹½ÃÛ¤¹¤ë¤Î¤ËÌòΩ¤Ã¤Æ¤¤¤ë¡£ +Linux カーネルは、ユーザ空間で高速なロック機構やセマフォを使用するための +基礎的要素として futex ("Fast Userspace muTexes"; 高速ユーザ空間 mutex) を +提供している。 +futex は非常に基本的なもので、 POSIX mutex のような高度なロック機構の概念を +構築するのに役立っている。 .PP -¤³¤Î¥Ú¡¼¥¸¤Ï¤¹¤Ù¤Æ¤ÎÀß·×·èÄê¤òµ­½Ò¤¹¤ë¤è¤¦¤Ë¤Ï¤Ê¤Ã¤Æ¤ª¤é¤º¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ä¥é¥¤¥Ö¥é¥ê¤Î³«È¯¤Ë´Ø·¸¤¹¤ë¤³¤È¤¬¤é¤Ë¸Â¤Ã¤Æ¤¤¤ë¡£ -¼ÂºÝ¤Ë¤Ï¥×¥í¥°¥é¥Þ¤Î¿¤¯¤ÏľÀÜ¤Ï futex ¤ò°·¤ï¤Ê¤¤¤¬¡¢¤½¤ÎÂå¤ï¤ê -futex ¤Ë´ð¤Å¤¤¤Æ¹½ÃÛ¤µ¤ì¤¿¥·¥¹¥Æ¥à¥é¥¤¥Ö¥é¥ê (Î㤨¤Ð NPTL ¥¹¥ì¥Ã¥É) ¤Ë -°Í¸¤¹¤ë¤³¤È¤Ë¤Ê¤ë¤À¤í¤¦¡£ +このページはすべての設計決定を記述するようにはなっておらず、 +アプリケーションやライブラリの開発に関係することがらに限っている。 +実際にはプログラマの多くは直接は futex を扱わないが、その代わり +futex に基づいて構築されたシステムライブラリ (例えば NPTL スレッド) に +依存することになるだろう。 .PP -futex ¤Ï°Û¤Ê¤ë¥×¥í¥»¥¹´Ö¤Ç¶¦Í­¤¹¤ë¤³¤È¤Î¤Ç¤­¤ë¥á¥â¥êÊҤǼ±Ê̤µ¤ì¤ë¡£ -¤³¤ì¤é¤Î°Û¤Ê¤ë¥×¥í¥»¥¹¤Ç¤Ï¡¢Æ±¤¸¥¢¥É¥ì¥¹¤¬ÉÕÍ¿¤µ¤ì¤Æ¤¤¤ëɬÍפϤʤ¤¡£ -Íç¤Î»Ñ¤Ç¤Ï futex ¤Î¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤Ï¥»¥Þ¥Õ¥©¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -futex ¤ÏÉÔ²ÄʬÁàºî¤Ç (atomically) ¥¤¥ó¥¯¥ê¥á¥ó¥È¤·¤¿¤ê¥Ç¥¯¥ê¥á¥ó¥È¤·¤¿¤ê¤Ç¤­¤ë -¥«¥¦¥ó¥¿¤Ç¡¢¥×¥í¥»¥¹¤ÏÃͤ¬Àµ¤Ë¤Ê¤ë¤Î¤òÂԤĤ³¤È¤¬¤Ç¤­¤ë¡£ +futex は異なるプロセス間で共有することのできるメモリ片で識別される。 +これらの異なるプロセスでは、同じアドレスが付与されている必要はない。 +裸の姿では futex のセマンティクスはセマフォと同じである。 +futex は不可分操作で (atomically) インクリメントしたりデクリメントしたりできる +カウンタで、プロセスは値が正になるのを待つことができる。 .PP -futex ¤ÎÁàºî¤Ï¡¢¶¥¹ç¤¬¤Ê¤¤¾ì¹ç¤Ë¤Ï´°Á´¤Ë¥æ¡¼¥¶¶õ´Ö¤Ç¹Ô¤Ê¤ï¤ì¤ë¡£ -¥«¡¼¥Í¥ë¤Ï¶¥¹ç¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤ÎÃçºÛ¤Ë´ØÍ¿¤¹¤ë¤À¤±¤Ç¤¢¤ë¡£ -Îɼ±¤¢¤ëÀ߷פǤ϶¥¹ç¤¬µ¯¤³¤é¤Ê¤¤¤è¤¦ÅØÎϤ¹¤ë¤¬¡¢ -futex ¤â¶¥¹ç¾õÂ֤˴ؤ·¤ÆºÇŬ²½¤µ¤ì¤Æ¤¤¤ë¡£ +futex の操作は、競合がない場合には完全にユーザ空間で行なわれる。 +カーネルは競合が起こった場合の仲裁に関与するだけである。 +良識ある設計では競合が起こらないよう努力するが、 +futex も競合状態に関して最適化されている。 .PP -Íç¤Î»Ñ¤Ç¤Ï¡¢ futex ¤ÏÉÔ²Äʬ¤Ê¥¢¥»¥ó¥Ö¥êÌ¿Îá¤Ç¤Î¤ßÁàºî¤µ¤ì¤ë -¥¢¥é¥¤¥ó¥á¥ó¥È¤Î·¤Ã¤¿ int ·¿¤ÎÊÑ¿ô¤Ç¤¢¤ë¡£ -Ê£¿ô¤Î¥×¥í¥»¥¹¤Ï¤³¤Î int ·¿ÊÑ¿ô¤ò¡¢ +裸の姿では、 futex は不可分なアセンブリ命令でのみ操作される +アラインメントの揃った int 型の変数である。 +複数のプロセスはこの int 型変数を、 .BR mmap (2) -¤òÍѤ¤¤ë¤«¡¢ -¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤ò²ð¤¹¤ë¤«¡¢ -¥á¥â¥ê¶õ´Ö¤ò¶¦Í­¤¹¤ë (¤³¤Î¾ì¹ç¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï°ìÈÌŪ¤Ë¥Þ¥ë¥Á¡¦¥¹¥ì¥Ã¥É¤Ç¤¢¤ë¤È¸Æ¤Ð¤ì¤ë) ¤«ÊýË¡¤Ç¶¦Í­¤¹¤ë¡£ -.SS "¥»¥Þ¥ó¥Æ¥£¥¯¥¹" +を用いるか、 +共有メモリセグメントを介するか、 +メモリ空間を共有する (この場合、 +アプリケーションは一般的にマルチ・スレッドであると呼ばれる) か方法で共有する。 +.SS "セマンティクス" .PP -futex ¤ÎÁàºî¤Ï¤¹¤Ù¤Æ¥æ¡¼¥¶¶õ´Ö¤«¤é»Ï¤Þ¤ë¤¬¡¢É¬Íפ˱þ¤¸¤Æ +futex の操作はすべてユーザ空間から始まるが、必要に応じて .BR futex (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÍѤ¤¤Æ¥«¡¼¥Í¥ë¤ÈÄÌ¿®¤¹¤ë¡£ +システムコールを用いてカーネルと通信する。 .PP -futex ¤ò "up" ¤¹¤ë¤Ë¤Ï¡¢ -¥Û¥¹¥È CPU ¤ËÂФ· int ·¿ÊÑ¿ô¤òÉÔ²ÄʬÁàºî¤Ç¥¤¥ó¥¯¥ê¥á¥ó¥È¤¹¤ë¤è¤¦¤Ê¡¢ -ŬÀڤʥ¢¥»¥ó¥Ö¥êÌ¿Îá¤ò¼Â¹Ô¤¹¤ë¡£ -¤½¤Î¤¢¤È¡¢¼ÂºÝ¤Ë 0 ¤«¤é 1 ¤ËÊѲ½¤·¤¿¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤·¡¢ -ÊѲ½¤·¤Æ¤¤¤ì¤ÐÂÔ¤Á¥×¥í¥»¥¹ (waiter) ¤Ï¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ç¤¢¤ê¡¢Áàºî¤Ï´°Î»¤¹¤ë¡£ -¤³¤ì¤Ï¶¥¹ç¤Î¤Ê¤¤¾ì¹ç¤Ç¤¢¤ê¡¢¹â®¤Ç¤è¤¯µ¯¤³¤ë¤Ï¤º¤Ç¤¢¤ë¡£ +futex を "up" するには、 +ホスト CPU に対し int 型変数を不可分操作でインクリメントするような、 +適切なアセンブリ命令を実行する。 +そのあと、実際に 0 から 1 に変化したかどうかをチェックし、 +変化していれば待ちプロセス (waiter) はないということであり、操作は完了する。 +これは競合のない場合であり、高速でよく起こるはずである。 .PP -¶¥¹ç¤¬¤¢¤ë¾ì¹ç¡¢ÉÔ²ÄʬÁàºî¤Î¥¤¥ó¥¯¥ê¥á¥ó¥È¤Ç¥«¥¦¥ó¥¿¤Ï \-1 (¤Þ¤¿¤Ï¾¤ÎÉé¤Î¿ô) -¤«¤éÊѲ½¤¹¤ë¡£¤³¤ì¤¬¸¡½Ð¤µ¤ì¤ë¤È¡¢ÂÔ¤Á¥×¥í¥»¥¹¤¬¤¢¤ë¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ -¥æ¡¼¥¶¶õ´Ö¤Ç¤Ï¥«¥¦¥ó¥¿¤ò 1 ¤ËÀßÄꤷ¡¢ +競合がある場合、不可分操作のインクリメントでカウンタは \-1 (または他の負の数) +から変化する。これが検出されると、待ちプロセスがあるということである。 +ユーザ空間ではカウンタを 1 に設定し、 .B FUTEX_WAKE -¤òÍѤ¤¤Æ¥«¡¼¥Í¥ë¤ËÂÔ¤Á¥×¥í¥»¥¹¤ò wake (µ¯¾²) ¤µ¤»¤ë¤è¤¦»Ø¼¨¤¹¤ë¡£ +を用いてカーネルに待ちプロセスを wake (起床) させるよう指示する。 .PP -futex ¤Î³ÍÆÀ¤òÂԤġ¢¤¹¤Ê¤ï¤Á futex ¤ò "down" ¤¹¤ë¤Ë¤ÏÈ¿ÂФÎÁàºî¤ò¹Ô¤Ê¤¦¡£ -ÉÔ²ÄʬÁàºî¤Ç¥«¥¦¥ó¥¿¤ò¥Ç¥¯¥ê¥á¥ó¥È¤·¡¢¥«¥¦¥ó¥¿¤¬ 0 ¤ËÊѲ½¤·¤¿¤«¤É¤¦¤«¤ò -¥Á¥§¥Ã¥¯¤¹¤ë¡£ÊѲ½¤·¤Æ¤¤¤ì¤ÐÁàºî¤Ï´°Î»¤· futex ¤Ï¶¥¹ç¤·¤Æ¤¤¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ -0 ¤Ë¤Ê¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¥×¥í¥»¥¹¤Ï¥«¥¦¥ó¥¿¤ò \-1 ¤ËÀßÄꤷ¡¢ -¾¤Î¥×¥í¥»¥¹¤¬¤½¤Î futex ¤ò up ¤¹¤ë¤Î¤òÂԤĤ褦¥«¡¼¥Í¥ë¤ËÍ׵ᤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤ì¤Ï +futex の獲得を待つ、すなわち futex を "down" するには反対の操作を行なう。 +不可分操作でカウンタをデクリメントし、カウンタが 0 に変化したかどうかを +チェックする。変化していれば操作は完了し futex は競合していないということである。 +0 にならなかった場合、プロセスはカウンタを \-1 に設定し、 +他のプロセスがその futex を up するのを待つようカーネルに要求しなければならない。 +これは .B FUTEX_WAIT -¤ò¹Ô¤Ê¤¦¤³¤È¤Ç¼Â¸½¤µ¤ì¤ë¡£ +を行なうことで実現される。 .PP .BR futex (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤Ï¡¢¾Êά²Äǽ¤Ê°ú¿ô¤È¤·¤Æ¥¿¥¤¥à¥¢¥¦¥È¤òÅϤ¹¤³¤È¤¬¤Ç¤­¡¢ -¥«¡¼¥Í¥ë¤Ï¤½¤Î futex ¤¬ up ¤µ¤ì¤ë¤Î¤ò¤É¤ì¤¯¤é¤¤¤Î´ü´ÖÂԤĤ٤­¤«¤ò -»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤Î¾ì¹ç¡¢¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤Ï¤â¤Ã¤ÈÊ£»¨¤Ë¤Ê¤ë¤¿¤á¡¢ -¤è¤ê¾ÜºÙ¤Ê¾ðÊó¤òÆÀ¤ë¤Ë¤Ï¥×¥í¥°¥é¥Þ¤Ï +システムコールには、省略可能な引数としてタイムアウトを渡すことができ、 +カーネルはその futex が up されるのをどれくらいの期間待つべきかを +指定することができる。この場合、セマンティクスはもっと複雑になるため、 +より詳細な情報を得るにはプログラマは .BR futex (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -Ʊ¤¸¥Ú¡¼¥¸¤ËÈóƱ´ü¤Î futex ÂÔ¤Á¤Ë¤Ä¤¤¤Æ¤âµ­¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +を参照すること。 +同じページに非同期の futex 待ちについても記されている。 +.SH バージョン .PP -ºÇ½é¤Î futex Âбþ¤Ï Linux 2.5.7 ¤ÇÁȤ߹þ¤Þ¤ì¤¿¤¬¡¢ -¾åµ­¤Î¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤È¤Ï°Û¤Ê¤ë¡£ -¸½ºß¤Î¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤Ï Linux 2.5.40 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH Ãí°Õ +最初の futex 対応は Linux 2.5.7 で組み込まれたが、 +上記のセマンティクスとは異なる。 +現在のセマンティクスは Linux 2.5.40 以降で利用可能である。 +.SH 注意 .PP -ºÆ¤Ó·«¤êÊÖ¤·¤Æ¤ª¤¯¤¬¡¢Íç¤Î futex ¤Ï¥¨¥ó¥É¥æ¡¼¥¶¤¬Íưפ˻Ȥ¨¤ë³µÇ°¤È¤·¤Æ -°Õ¿Þ¤µ¤ì¤¿¤â¤Î¤Ç¤Ï¤Ê¤¤¡£ -¼ÂÁõ¼Ô¤Ï¡¢¥¢¥»¥ó¥Ö¥ê¸À¸ì¤Ë´·¤ì¤Æ¤ª¤ê¡¢°Ê²¼¤Ëµó¤²¤ë futex ¥æ¡¼¥¶¶õ´Ö¥é¥¤¥Ö¥é¥ê¤Î -¥½¡¼¥¹¤òÆɤ߽ª¤¨¤Æ¤¤¤ë¤³¤È¤¬Í׵ᤵ¤ì¤ë¡£ +再び繰り返しておくが、裸の futex はエンドユーザが容易に使える概念として +意図されたものではない。 +実装者は、アセンブリ言語に慣れており、以下に挙げる futex ユーザ空間ライブラリの +ソースを読み終えていることが要求される。 .PP -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë¤Ï +このマニュアルページには .BR futex (2) -¥×¥ê¥ß¥Æ¥£¥Ö¤ÎºÇ¤â°ìÈÌŪ¤Ê»ÈÍÑË¡¤¬ -µ­¤µ¤ì¤Æ¤¤¤ë¡£¤³¤ì¤Ï·è¤·¤ÆÍ£°ì¤Î»ÈÍÑË¡¤Ç¤Ï¤Ê¤¤¡£ -.\" .SH Ãø¼Ô +プリミティブの最も一般的な使用法が +記されている。これは決して唯一の使用法ではない。 +.\" .SH 著者 .\" .PP -.\" futex ¤Ï Hubertus Franke (IBM Thomas J. Watson Research Center) ¤È -.\" Matthew Kirkwood ¡¢ Ingo Molnar (Red Hat) ¡¢ -.\" Rusty Russell (IBM Linux Technology Center) ¤¬À߷פ·¡¢¸¡Æ¤¤·¤¿¡£ -.\" ¤³¤Î¥Ú¡¼¥¸¤Ï bert hubert ¤¬µ­¤·¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +.\" futex は Hubertus Franke (IBM Thomas J. Watson Research Center) と +.\" Matthew Kirkwood 、 Ingo Molnar (Red Hat) 、 +.\" Rusty Russell (IBM Linux Technology Center) が設計し、検討した。 +.\" このページは bert hubert が記した。 +.SH 関連項目 .BR futex (2) .PP .IR "Fuss, Futexes and Furwocks: Fast Userlevel Locking in Linux" (proceedings of the Ottawa Linux Symposium 2002), -futex ¤Î»ÈÍÑÎã¥é¥¤¥Ö¥é¥ê, futex-*.tar.bz2 +futex の使用例ライブラリ, futex-*.tar.bz2 . diff --git a/release/man7/glob.7 b/release/man7/glob.7 index 7d01ff1d..cf844699 100644 --- a/release/man7/glob.7 +++ b/release/man7/glob.7 @@ -26,155 +26,155 @@ .\" Translated Wed 12 Aug 1998 by NAKANO Takeo .\" Updated 2003-09-28 by NAKANO Takeo .\" -.\"WORD: wild card pattern ¥ï¥¤¥ë¥É¥«¡¼¥É¥Ñ¥¿¡¼¥ó -.\"WORD: character class ʸ»ú¥¯¥é¥¹ -.\"WORD: range Îΰè»ØÄê -.\"WORD: complementation Ê佸¹ç -.\"WORD: regular expression Àµµ¬É½¸½ -.\"WORD: bracket expression ¥Ö¥é¥±¥Ã¥Èɽ¸½ -.\"WORD: collating sequence ¾È¹ç½ç½ø -.\"WORD: collating element ¾È¹ç½ç½ø¤ÎÍ×ÁÇ -.\"WORD: current locale ¥«¥ì¥ó¥È¥í¥±¡¼¥ë -.\"WORD: equivalence class Åù²Á¥¯¥é¥¹ +.\"WORD: wild card pattern ワイルドカードパターン +.\"WORD: character class 文字クラス +.\"WORD: range 領域指定 +.\"WORD: complementation 補集合 +.\"WORD: regular expression 正規表現 +.\"WORD: bracket expression ブラケット表現 +.\"WORD: collating sequence 照合順序 +.\"WORD: collating element 照合順序の要素 +.\"WORD: current locale カレントロケール +.\"WORD: equivalence class 等価クラス .\" .TH GLOB 7 2003-08-24 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -glob \- ¥Ñ¥¹Ì¾¤ò glob ¤¹¤ë -.SH ÀâÌÀ -ÀΡ¹ UNIX V6 ¤Ç¤Ï¡¢¥ï¥¤¥ë¥É¥«¡¼¥É¥Ñ¥¿¡¼¥ó¤òŸ³«¤¹¤ë +.SH 名前 +glob \- パス名を glob する +.SH 説明 +昔々 UNIX V6 では、ワイルドカードパターンを展開する .I /etc/glob -¤È¸À¤¦¥×¥í¥°¥é¥à¤¬¤¢¤Ã¤¿¡£¤½¤Î¸å¤¹¤°¤Ë¡¢ -¤³¤Îµ¡Ç½¤Ï¥·¥§¥ë¤ËÁȤ߹þ¤Þ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ +と言うプログラムがあった。その後すぐに、 +この機能はシェルに組み込まれるようになった。 -º£Æü¤Ç¤Ï¡¢¤³¤Îµ¡Ç½¤ò¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥à¤«¤é¤â¼Â¹Ô¤Ç¤­¤ë¤è¤¦¡¢ +今日では、この機能をユーザープログラムからも実行できるよう、 .BR glob (3) -¤È¤¤¤¦¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤â¸ºß¤·¤Æ¤¤¤ë¡£ +というライブラリルーチンも存在している。 -glob ¤Îµ¬Â§¤ò°Ê²¼¤Ë½Ò¤Ù¤ë (POSIX.2 3.13)¡£ -.SS ¥ï¥¤¥ë¥É¥«¡¼¥É¥Þ¥Ã¥Á -ʸ»úÎó¤Ë \(aq?\(aq, \(aq*\(aq, \(aq[\(aq ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤È¡¢ -¤½¤ì¤Ï¥ï¥¤¥ë¥É¥«¡¼¥É¥Ñ¥¿¡¼¥ó¤È¤ß¤Ê¤µ¤ì¤ë¡£ -¡Öglob ¤¹¤ë¡×¤È¤¤¤¦¤Î¤Ï¡¢¥ï¥¤¥ë¥É¥«¡¼¥É¥Ñ¥¿¡¼¥ó¤òŸ³«¤·¤Æ¡¢ -¤½¤Î¥Ñ¥¿¡¼¥ó¤Ë¥Þ¥Ã¥Á¤¹¤ë¥Ñ¥¹Ì¾¤Î¥ê¥¹¥È¤òÆÀ¤ë¤³¤È¤Ç¤¢¤ë¡£ -¥Þ¥Ã¥Á¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë¡£ +glob の規則を以下に述べる (POSIX.2 3.13)。 +.SS ワイルドカードマッチ +文字列に \(aq?\(aq, \(aq*\(aq, \(aq[\(aq が含まれていると、 +それはワイルドカードパターンとみなされる。 +「glob する」というのは、ワイルドカードパターンを展開して、 +そのパターンにマッチするパス名のリストを得ることである。 +マッチは以下のように定義される。 -(¥Ö¥é¥±¥Ã¥È³°Éô¤Î) \(aq?\(aq ¤Ï¤¢¤é¤æ¤ëñ°ì¤Îʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ +(ブラケット外部の) \(aq?\(aq はあらゆる単一の文字にマッチする。 -(¥Ö¥é¥±¥Ã¥È³°Éô¤Î) \(aq*\(aq ¤Ï¤¢¤é¤æ¤ëʸ»úÎó¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -¶õʸ»úÎó (empty string) ¤Ë¤â¥Þ¥Ã¥Á¤¹¤ë¡£ +(ブラケット外部の) \(aq*\(aq はあらゆる文字列にマッチする。 +空文字列 (empty string) にもマッチする。 .PP -.B "ʸ»ú¥¯¥é¥¹ (character class)" +.B "文字クラス (character class)" .sp -"\fI[...]\fP" ¤È¸À¤¦É½µ­¤Ï¡¢ÀèƬ¤Î \(aq[\(aq ¤Ë³¤¯ºÇ½é¤Îʸ»ú¤¬ \(aq!\(aq ¤Ç -¤Ê¤±¤ì¤Ð¡¢¥Ö¥é¥±¥Ã¥È¤ÎÃæ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ëʸ»ú¤Î¤É¤ì¤«°ì¤Ä¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -¥Ö¥é¥±¥Ã¥È¤ÎÆâÉô¤Ë´Þ¤Þ¤ì¤ëʸ»úÎó¤Ï¶õ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ \(aq]\(aq ¤âºÇ½é¤Îʸ»ú¤Ë»ØÄꤹ¤ì¤Ð¥Ö¥é¥±¥Ã¥È¤ÎÆâÉô¤Ë´Þ¤á¤ë¤³¤È¤¬ -¤Ç¤­¤ë (¤Ä¤Þ¤ê "\fI[][!]\fP" ¤Ï \(aq[\(aq, \(aq]\(aq, \(aq!\(aq ¤Î -3 ʸ»ú¤Î¤É¤ì¤«¤Ë¥Þ¥Ã¥Á¤¹¤ë)¡£ +"\fI[...]\fP" と言う表記は、先頭の \(aq[\(aq に続く最初の文字が \(aq!\(aq で +なければ、ブラケットの中に含まれている文字のどれか一つにマッチする。 +ブラケットの内部に含まれる文字列は空であってはならない。 +したがって \(aq]\(aq も最初の文字に指定すればブラケットの内部に含めることが +できる (つまり "\fI[][!]\fP" は \(aq[\(aq, \(aq]\(aq, \(aq!\(aq の +3 文字のどれかにマッチする)。 .PP -.B "Îΰè»ØÄê (range)" +.B "領域指定 (range)" .sp -Æüì¤Êɽµ­Ë¡¤¬°ì¤Ä¸ºß¤¹¤ë¡£\(aq\-\(aq ¤ò¶´¤àÆó¤Ä¤Îʸ»ú¤ÏÎΰè»ØÄê¤È¤Ê¤ë¡£ -(¤Ä¤Þ¤ê "\fI[A\-Fa\-f0\-9]\fP" ¤Ï "\fI[ABCDEFabcdef0123456789]\fP" -¤ÈÅù²Á¤È¤Ê¤ë¡£) \(aq\-\(aq ʸ»ú¤½¤Î¤â¤Î¤òÆþ¤ì¤¿¤¤¾ì¹ç¤Ï¡¢ -¥Ö¥é¥±¥Ã¥È¤ÎÀèƬ¤Þ¤¿¤ÏºÇ¸å¤Îʸ»ú¤Ë»ØÄꤹ¤ì¤Ð¤è¤¤¡£ -(¤Ä¤Þ¤ê "\fI[]\-]\fP" ¤ÏÆó¤Ä¤Îʸ»ú \(aq]\(aq ¤È \(aq\-\(aq -¤Ë¥Þ¥Ã¥Á¤·¡¢"\fI[\-\-0]\fP" ¤Ï \(aq\-\(aq, \(aq.\(aq, \(aq0\(aq ¤Î -3 ʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£¤³¤Î´Ö¤Î \(aq/\(aq ¤Ë¤Ï¥Þ¥Ã¥Á¤·¤Ê¤¤¡£¸å½Ò¤ò»²¾È¡£) +特殊な表記法が一つ存在する。\(aq\-\(aq を挟む二つの文字は領域指定となる。 +(つまり "\fI[A\-Fa\-f0\-9]\fP" は "\fI[ABCDEFabcdef0123456789]\fP" +と等価となる。) \(aq\-\(aq 文字そのものを入れたい場合は、 +ブラケットの先頭または最後の文字に指定すればよい。 +(つまり "\fI[]\-]\fP" は二つの文字 \(aq]\(aq と \(aq\-\(aq +にマッチし、"\fI[\-\-0]\fP" は \(aq\-\(aq, \(aq.\(aq, \(aq0\(aq の +3 文字にマッチする。この間の \(aq/\(aq にはマッチしない。後述を参照。) .PP -.B Ê佸¹ç (complementation) +.B 補集合 (complementation) .sp -"\fI[!...]\fP" ¤È¸À¤¦É½µ­¤Ï¡¢¥Ö¥é¥±¥Ã¥È¤ÎÆâÉô¤Ë´Þ¤Þ¤ì¤Ê¤¤Ã±°ì¤Îʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë -(¤¿¤À¤·ÀèƬ¤Ë¤¢¤ë \(aq!\(aq ¤Ï½ü³°)¡£ (¤Ä¤Þ¤ê "\fI[!]a\-]\fP" ¤Ï -\(aq]\(aq, \(aqa\(aq, \(aq\-\(aq °Ê³°¤Î¤¹¤Ù¤Æ¤Îʸ»ú¤Î¡¢¤É¤ì¤«°ì¤Ä¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£) +"\fI[!...]\fP" と言う表記は、ブラケットの内部に含まれない単一の文字にマッチする +(ただし先頭にある \(aq!\(aq は除外)。 (つまり "\fI[!]a\-]\fP" は +\(aq]\(aq, \(aqa\(aq, \(aq\-\(aq 以外のすべての文字の、どれか一つにマッチする。) -¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å \(aq\e\(aq ¤òÁ°ÃÖ¤¹¤ì¤Ð¡¢ \(aq?\(aq, \(aq*\(aq, \(aq[\(aq -¤ÏÄ̾ï¤Îʸ»ú¤È¤·¤Æ°·¤ï¤ì¤ë¡£ -¤Þ¤¿¤Ï¥·¥§¥ë¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤Î°ìÉô¤Ë»ØÄꤹ¤ë¾ì¹ç¤Ï¡¢ -¥¯¥©¡¼¥È¤Ç°Ï¤Ã¤Æ¤âƱ¤¸¸ú²Ì¤¬ÆÀ¤é¤ì¤ë¡£¥Ö¥é¥±¥Ã¥È¤ÎÆâÉô¤Ç¤Ï¡¢ -¤³¤ì¤é¤Îʸ»ú¤Ï¤½¤Îʸ»ú¼«¿È¤À¤±¤ò°ÕÌ£¤¹¤ë¡£ -¤¹¤Ê¤ï¤Á "\fI[[?*\e]\fP" ¤Ï \(aq[\(aq, \(aq?\(aq, \(aq*\(aq, \(aq\e\(aq -¤Î¤É¤ì¤«°ìʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -.SS "¥Ñ¥¹Ì¾ (pathname)" -glob Æ°ºî¤Ï¡¢¥Ñ¥¹Ì¾¤Î¤½¤ì¤¾¤ì¤ÎÉôʬ¤ËÆÈΩ¤ËŬÍѤµ¤ì¤ë¡£ -¥Ñ¥¹Ì¾¤Ë¸ºß¤¹¤ë \(aq/\(aq ¤Ï \(aq?\(aq ¤ä \(aq*\(aq ¥ï¥¤¥ë¥É¥«¡¼¥É¤Ë¤Ï¥Þ¥Ã¥Á¤·¤Ê¤¤¡£ -¤Þ¤¿ "\fI[.\-0]\fP" ¤Î¤è¤¦¤ÊÎΰè»ØÄê¤Ë¤â¥Þ¥Ã¥Á¤·¤Ê¤¤¡£ -Îΰè»ØÄê¤ÏÍÛ¤Ë \(aq/\(aq ʸ»ú¤ò´Þ¤à¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£¤³¤ì¤Ïʸˡ¥¨¥é¡¼¤È¤Ê¤ë¡£ +バックスラッシュ \(aq\e\(aq を前置すれば、 \(aq?\(aq, \(aq*\(aq, \(aq[\(aq +は通常の文字として扱われる。 +またはシェルのコマンドラインの一部に指定する場合は、 +クォートで囲っても同じ効果が得られる。ブラケットの内部では、 +これらの文字はその文字自身だけを意味する。 +すなわち "\fI[[?*\e]\fP" は \(aq[\(aq, \(aq?\(aq, \(aq*\(aq, \(aq\e\(aq +のどれか一文字にマッチする。 +.SS "パス名 (pathname)" +glob 動作は、パス名のそれぞれの部分に独立に適用される。 +パス名に存在する \(aq/\(aq は \(aq?\(aq や \(aq*\(aq ワイルドカードにはマッチしない。 +また "\fI[.\-0]\fP" のような領域指定にもマッチしない。 +領域指定は陽に \(aq/\(aq 文字を含むことはできない。これは文法エラーとなる。 -\(aq.\(aq ¤Ç»Ï¤Þ¤ë¥Ñ¥¹Ì¾¤Ç¤Ï¡¢¤³¤Îʸ»ú¤ÏÍۤ˥ޥåÁ¤µ¤»¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -(¤Ä¤Þ¤ê \fIrm\ *\fP ¤Ï .profile ¤òºï½ü¤·¤Ê¤¤¡£¤Þ¤¿ \fItar\ c\ *\fP -¤Ç¤Ï¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤Ï¥¢¡¼¥«¥¤¥Ö¤µ¤ì¤Ê¤¤¡£ \fItar\ c\ .\fP ¤ÎÊý¤¬Îɤ¤¡£) -.SS ¶õ¤Î¥ê¥¹¥È -Àè¤ËÍ¿¤¨¤¿¡¢¤ï¤«¤ê¤ä¤¹¤¯´Êñ¤Ê¥ë¡¼¥ë¡¢ -¡Ö¥ï¥¤¥ë¥É¥«¡¼¥É¥Ñ¥¿¡¼¥ó¤ò¥Þ¥Ã¥Á¤·¤¿¥Ñ¥¹Ì¾¤Î¥ê¥¹¥È¤ËŸ³«¤¹¤ë¡×¤È¸À¤¦¤Î¤Ï¡¢ -¥ª¥ê¥¸¥Ê¥ë¤Î UNIX ¤Ë¤ª¤±¤ëÄêµÁ¤Ç¤¢¤Ã¤¿¡£ -¤³¤ì¤Ï¥Ñ¥¿¡¼¥ó¤¬¶õ¤Î¥ê¥¹¥È¤ËŸ³«¤µ¤ì¤ë¤³¤È¤âµö²Ä¤µ¤ì¤Æ¤¤¤¿¡£ -Î㤨¤Ð +\(aq.\(aq で始まるパス名では、この文字は陽にマッチさせなければならない。 +(つまり \fIrm\ *\fP は .profile を削除しない。また \fItar\ c\ *\fP +ではすべてのファイルはアーカイブされない。 \fItar\ c\ .\fP の方が良い。) +.SS 空のリスト +先に与えた、わかりやすく簡単なルール、 +「ワイルドカードパターンをマッチしたパス名のリストに展開する」と言うのは、 +オリジナルの UNIX における定義であった。 +これはパターンが空のリストに展開されることも許可されていた。 +例えば .br .nf xv \-wait 0 *.gif *.jpg .fi -¤Ë¤ª¤¤¤Æ¡¢*.gif ¥Õ¥¡¥¤¥ë¤¬Á´¤¯¤Ê¤¤¾ì¹ç¤Ç¤â¡¢ -¤³¤ì¤Ï¶õ¤Î¥ê¥¹¥È¤ËŸ³«¤µ¤ì¤ë¤¿¤á¡¢¥¨¥é¡¼¤Ë¤Ê¤é¤Ê¤¤¡£ -¤·¤«¤· POSIX ¤Ç¤Ï¡¢Ê¸Ë¡Åª¤ËÀµ¤·¤¯¤Ê¤¤¥Ñ¥¿¡¼¥ó¤ä¡¢ -¥Þ¥Ã¥Á¤¬¤Ê¤«¤Ã¤¿¥Ñ¥¿¡¼¥ó¤Ï¡¢ -¤½¤Î¤Þ¤ÞÊѹ¹¤µ¤ì¤º¤Ë»Ä¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +において、*.gif ファイルが全くない場合でも、 +これは空のリストに展開されるため、エラーにならない。 +しかし POSIX では、文法的に正しくないパターンや、 +マッチがなかったパターンは、 +そのまま変更されずに残されることになっている。 .I bash -¤Ç¤Ï +では .I allow_null_glob_expansion=true -¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢°ÊÁ°¤Î¿¶¤ëÉñ¤¤¤ËÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を指定することで、以前の振る舞いに設定することができる。 -(ƱÍͤÎÌäÂê¤ÏÊ̤ΤȤ³¤í¤Ç¤âµ¯¤³¤Ã¤Æ¤¤¤ë¡£Î㤨¤Ð¡¢¸Å¤¤¥¹¥¯¥ê¥×¥È¤Ë¤ª¤±¤ë +(同様の問題は別のところでも起こっている。例えば、古いスクリプトにおける .br .nf rm \`find . \-name "*~"\` .fi -¤Î¤è¤¦¤Êµ­½Ò¤Ï¡¢¿·¤·¤¤¥¹¥¯¥ê¥×¥È¤Ç¤Ï +のような記述は、新しいスクリプトでは .br .nf rm \-f nosuchfile \`find . \-name "*~"\` .fi -¤Î¤è¤¦¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤µ¤â¤Ê¤¤¤È +のようにしなければならない。さもないと .I rm -¤ò°ú¤­¿ô¥ê¥¹¥È¤Ê¤·¤Ç¸Æ¤Ó½Ð¤¹²ÄǽÀ­¤¬¤¢¤ê¡¢ -¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬½Ð¤Æ¤·¤Þ¤¦¡£) -.SH Ãí°Õ -.SS Àµµ¬É½¸½ -¥ï¥¤¥ë¥É¥«¡¼¥É¥Ñ¥¿¡¼¥ó¤ÏÀµµ¬É½¸½¤È¿¾¯»÷¤Æ¤¤¤ë¤¬¡¢¤·¤«¤·¤³¤Îξ¼Ô¤Ï°Û¤Ê¤ë¡£ -¤Þ¤ºÂè°ì¤Ë¡¢Á°¼Ô¤¬¥Õ¥¡¥¤¥ë̾¤Ë¥Þ¥Ã¥Á¤¹¤ë¤Î¤ËÂФ·¤Æ¡¢ -¸å¼Ô¤Ï¥Æ¥­¥¹¥È¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ÂèÆó¤Ë¡¢¥ë¡¼¥ë¤âƱ¤¸¤Ç¤Ï¤Ê¤¤¡£ -Î㤨¤ÐÀµµ¬É½¸½¤Ë¤ª¤±¤ë \(aq*\(aq ¤Ï¡¢ -Á°ÃÖ¤µ¤ì¤¿Ê¸»ú¤Î 0 °Ê¾å¤Î·«¤êÊÖ¤·¤òɽ¤¹¡£ +を引き数リストなしで呼び出す可能性があり、 +エラーメッセージが出てしまう。) +.SH 注意 +.SS 正規表現 +ワイルドカードパターンは正規表現と多少似ているが、しかしこの両者は異なる。 +まず第一に、前者がファイル名にマッチするのに対して、 +後者はテキストにマッチする。第二に、ルールも同じではない。 +例えば正規表現における \(aq*\(aq は、 +前置された文字の 0 以上の繰り返しを表す。 -Àµµ¬É½¸½¤Ë¤â¥Ö¥é¥±¥Ã¥Èɽ¸½¤Ï¤¢¤ë¤¬¡¢ÈÝÄê¤Ï \(aq^\(aq ¤Ç¤Ê¤µ¤ì¤ë¡£ -POSIX ¤Ç¤Ï¥ï¥¤¥ë¥É¥«¡¼¥É¥Ñ¥¿¡¼¥ó¤Ë¤ª¤±¤ë "\fI[^...]\fP" ¤ò̤ÄêµÁ¤Ç¤¢¤ë¤È¤·¤Æ¤¤¤ë¡£ -.SS ʸ»ú¥¯¥é¥¹¤È¹ñºÝ²½ -Îΰè»ØÄê¤Ï¡¢¤â¤È¤â¤È¤Ï¤â¤Á¤í¤ó ASCII ¤Ë¤ª¤±¤ë½ç½øʤӤò°ÕÌ£¤·¤Æ¤¤¤¿¡£ -¤·¤¿¤¬¤Ã¤Æ "\fI[\ \-%]\fP" ¤Ï "\fI[\ !"#$%]\fP" ¤Î°ÕÌ£¤Ç¤¢¤ê¡¢ -"\fI[a\-z]\fP" ¤Ï¡Ö¤¹¤Ù¤Æ¤Î¾®Ê¸»ú¡×¤Î°ÕÌ£¤Ç¤¢¤Ã¤¿¡£ -UNIX ¤Î¼ÂÁõ¤ÎÃæ¤Ë¤Ï¡¢¤³¤ì¤ò³ÈÄ¥¤·¤¿¤â¤Î¤¬Â¸ºß¤·¡¢ -¤½¤³¤Ç¤Ï X\-Y ¤È¤¤¤¦Îΰè»ØÄê¤Ï¡¢X ¤Î¥³¡¼¥É¤È -Y ¤Î¥³¡¼¥É¤Ë¶´¤Þ¤ì¤¿¥³¡¼¥É¤ò»ý¤Äʸ»ú¤¹¤Ù¤Æ¤òɽ¤¹¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤¿¡£ -¤·¤«¤·¡¢¤³¤ì¤Ë¤Ï¥æ¡¼¥¶¡¼¤¬¥í¡¼¥«¥ë¤Ê¥·¥¹¥Æ¥à¤Ë¤ª¤±¤ë -ʸ»ú¥³¡¼¥É¤òÃΤé¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -¤µ¤é¤Ë¥í¡¼¥«¥ë¤Ê¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ËÂФ¹¤ë¾È¹ç½ç½ø -(collating sequence) ¤¬Ê¸»ú¥³¡¼¥É¤Î½ç½ø¤È°Û¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤ÏÉÔÊؤǤ¢¤Ã¤¿¡£ -(ÌõÃí: collating sequence ¤Ë´Ø¤·¤Æ¤Ï +正規表現にもブラケット表現はあるが、否定は \(aq^\(aq でなされる。 +POSIX ではワイルドカードパターンにおける "\fI[^...]\fP" を未定義であるとしている。 +.SS 文字クラスと国際化 +領域指定は、もともとはもちろん ASCII における順序並びを意味していた。 +したがって "\fI[\ \-%]\fP" は "\fI[\ !"#$%]\fP" の意味であり、 +"\fI[a\-z]\fP" は「すべての小文字」の意味であった。 +UNIX の実装の中には、これを拡張したものが存在し、 +そこでは X\-Y という領域指定は、X のコードと +Y のコードに挟まれたコードを持つ文字すべてを表すようになっていた。 +しかし、これにはユーザーがローカルなシステムにおける +文字コードを知らなければならず、 +さらにローカルなアルファベットに対する照合順序 +(collating sequence) が文字コードの順序と異なっている場合には不便であった。 +(訳注: collating sequence に関しては .BR regex (7) -¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡£) -¤·¤¿¤¬¤Ã¤Æ POSIX ¤Ç¤Ï¡¢¥ï¥¤¥ë¥É¥«¡¼¥É¥Ñ¥¿¡¼¥ó¤ÈÀµµ¬É½¸½¤ÎÁÐÊý¤Ë¤ª¤¤¤Æ¡¢ -¥Ö¥é¥±¥Ã¥Èɽµ­¤òÂçÉý¤Ë³ÈÄ¥¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤Þ¤Ç²æ¡¹¤Ï¡¢¥Ö¥é¥±¥Ã¥Èɽµ­¤Ë¤Ï»°¤Ä¤ÎÍ×ÁǤ¬´Þ¤Þ¤ì¤¦¤ë¤³¤È¤ò¸«¤Æ¤­¤¿¡£ -¤¹¤Ê¤ï¤Á (i) ÈÝÄê¡¢(ii) ñ°ì¤Îʸ»ú¡¢(iii) Îΰè»ØÄê¡¢¤Î»°¤Ä¤Ç¤¢¤ë¡£ -POSIX ¤Ç¤Ï¡¢Îΰè»ØÄê¤ò¤è¤ê¹ñºÝ²½¤ËÊØÍø¤Ê¤è¤¦¤ËÄêµÁ¤·¤Æ¤ª¤ê¡¢ -¤Þ¤¿»°¤Ä¤Î¥¿¥¤¥×¤ò¥Ö¥é¥±¥Ã¥Èɽµ­¤ÎÍ×ÁǤȤ·¤ÆÄɲ䷤Ƥ¤¤ë¡£ +を参照して下さい。) +したがって POSIX では、ワイルドカードパターンと正規表現の双方において、 +ブラケット表記を大幅に拡張している。 +これまで我々は、ブラケット表記には三つの要素が含まれうることを見てきた。 +すなわち (i) 否定、(ii) 単一の文字、(iii) 領域指定、の三つである。 +POSIX では、領域指定をより国際化に便利なように定義しており、 +また三つのタイプをブラケット表記の要素として追加している。 -(iii) Îΰè»ØÄê X\-Y ¤Ï X ¤È Y ¤Ë¶´¤Þ¤ì¤¿ (ξü´Þ¤à) ¤¹¤Ù¤Æ¤Îʸ»ú¤ò°ÕÌ£¤¹¤ë¡£ -¤³¤Î¤È¤­¡¢¥«¥ì¥ó¥È¥í¥±¡¼¥ë (current locale) ¤Î +(iii) 領域指定 X\-Y は X と Y に挟まれた (両端含む) すべての文字を意味する。 +このとき、カレントロケール (current locale) の .B LC_COLLATE -¥«¥Æ¥´¥ê¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾È¹ç½ç½ø¤¬ÍѤ¤¤é¤ì¤ë¡£ +カテゴリで定義されている照合順序が用いられる。 -(iv) ̾Á°ÉÕ¤­Ê¸»ú¥¯¥é¥¹: °Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¡£ +(iv) 名前付き文字クラス: 以下のようなものである。 .nf [:alnum:] [:alpha:] [:blank:] [:cntrl:] @@ -182,28 +182,28 @@ POSIX [:punct:] [:space:] [:upper:] [:xdigit:] .fi -¤³¤ì¤òÍѤ¤¤ì¤Ð "\fI[a\-z]\fP" ¤ÎÂå¤ï¤ê¤Ë "\fI[[:lower:]]\fP" ¤Î¤è¤¦¤Ê»ØÄ꤬¤Ç¤­¤ë¡£ -¤Þ¤¿¥Ç¥ó¥Þ¡¼¥¯¤Î¤è¤¦¤Ë¡¢¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Î \(aqz\(aq °Ê¹ß¤Ë -3 ¤Ä¤Îʸ»ú¤¬Â¸ºß¤¹¤ë¤è¤¦¤Ê¾ì¹ç¤Ç¤â¡¢Æ±¤¸¤è¤¦¤ÊÆ°ºî¤¬´üÂԤǤ­¤ë¡£ -¤³¤ì¤é¤Îʸ»ú¥¯¥é¥¹¤Ï¥«¥ì¥ó¥È¥í¥±¡¼¥ë¤Î +これを用いれば "\fI[a\-z]\fP" の代わりに "\fI[[:lower:]]\fP" のような指定ができる。 +またデンマークのように、アルファベットの \(aqz\(aq 以降に +3 つの文字が存在するような場合でも、同じような動作が期待できる。 +これらの文字クラスはカレントロケールの .B LC_CTYPE -¥«¥Æ¥´¥ê¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +カテゴリで定義されている。 -(v) ¾È¹ç½ç½ø¤Ë¤ª¤±¤ë¥·¥ó¥Ü¥ë: "\fI[.ch.]\fP" ¤ä "\fI[.a-acute.]\fP" ¤Î¤è¤¦¤Ë "\fI[.\fP" -¤È "\fI.]\fP" ¤Ç¶´¤Þ¤ì¤¿Ê¸»úÎó¤Ï¡¢¥«¥ì¥ó¥È¥í¥±¡¼¥ë¤ÇÄêµÁ¤µ¤ì¤¿¾È¹ç½ç½ø¤ÎÍ×ÁǤȤʤ롣 -¤¢¤ë°ì¤Ä¤ÎÍ×ÁǤ¬Ê£¿ô¤Îʸ»ú¤«¤é¤Ê¤ë¾ì¹ç¤â¤¢¤ê¤¦¤ë¤³¤È¤ËÃí°Õ¡£ +(v) 照合順序におけるシンボル: "\fI[.ch.]\fP" や "\fI[.a-acute.]\fP" のように "\fI[.\fP" +と "\fI.]\fP" で挟まれた文字列は、カレントロケールで定義された照合順序の要素となる。 +ある一つの要素が複数の文字からなる場合もありうることに注意。 -(vi) Åù²Á¥¯¥é¥¹É½¸½ (equivalence class expressions): "\fI[=a=]\fP" -¤Î¤è¤¦¤Ë "\fI[=\fP" ¤È "\fI=]\fP" ¤È¤Ç¶´¤Þ¤ì¤¿Ê¸»úÎó¤Ç¤¢¤ë¡£ -¤³¤ì¤ÏÅù²Á¥¯¥é¥¹¤Î¥á¥ó¥Ð¡¼¤Ç¤¢¤ë¾È¹ç½ç½ø¤ÎÍ×ÁǤ¹¤Ù¤Æ¤Ë¤Ê¤ë¡£ -Åù²Á¥¯¥é¥¹¤Ï¥«¥ì¥ó¥È¥í¥±¡¼¥ë¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤Ë¤Ê¤ë¡£ -Î㤨¤Ð¡¢"\fI[[=a=]]\fP" ¤Ï +(vi) 等価クラス表現 (equivalence class expressions): "\fI[=a=]\fP" +のように "\fI[=\fP" と "\fI=]\fP" とで挟まれた文字列である。 +これは等価クラスのメンバーである照合順序の要素すべてになる。 +等価クラスはカレントロケールで定義されているものになる。 +例えば、"\fI[[=a=]]\fP" は "\fI[a[.a\-acute.][.a\-grave.][.a\-umlaut.][.a\-circumflex.]]\fP" -¤ÈÅù²Á¤Ç¤¢¤ë -(Latin-1 ɽµ­¤Ç¤Ï [a\e`{a}\e'{a}\e"{a}\e^{a}] ¤âƱ¤¸¡£ -[ÌõÃí] ÆüËܸì¤Î roff ¥Ú¡¼¥¸¤Ç¤Ï latin1 ¥³¡¼¥É¤¬½Ð¤Ê¤¤¤Î¤Ç¡¢ -¤³¤³¤Ç¤Ï TeX ɽµ­¤Çµ­ºÜ)¡£ -.SH ´ØÏ¢¹àÌÜ +と等価である +(Latin-1 表記では [a\e`{a}\e'{a}\e"{a}\e^{a}] も同じ。 +[訳注] 日本語の roff ページでは latin1 コードが出ないので、 +ここでは TeX 表記で記載)。 +.SH 関連項目 .BR sh (1), .BR fnmatch (3), .BR glob (3), diff --git a/release/man7/hier.7 b/release/man7/hier.7 index 4ddfbbb4..9258d533 100644 --- a/release/man7/hier.7 +++ b/release/man7/hier.7 @@ -22,8 +22,8 @@ .\" License. .\" Modified Sun Jul 25 11:05:58 1993 by Rik Faith (faith@cs.unc.edu) .\" Modified Sat Feb 10 16:18:03 1996 by Urs Thuermann (urs@isnogud.escape.de) -.\" Modified Mon Jun 16 20:02:00 1997 by NicoláÔ Lichtmaier -.\" Modified Mon Feb 6 16:41:00 1999 by NicoláÔ Lichtmaier +.\" Modified Mon Jun 16 20:02:00 1997 by Nicol疽 Lichtmaier +.\" Modified Mon Feb 6 16:41:00 1999 by Nicol疽 Lichtmaier .\" Modified Tue Feb 8 16:46:45 2000 by Chris Pepper .\" Modified Fri Sep 7 20:32:45 2001 by Tammy Fox .\" @@ -37,488 +37,488 @@ .\" by TACHIBANA Akira .\" Updated Sat 29 Dec 2001 by NAKANO Takeo .\" -.\"WORD: native language support Êì¹ñ¸ì¥µ¥Ý¡¼¥È +.\"WORD: native language support 母国語サポート .TH HIER 7 2009-03-30 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -hier \- ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à³¬ÁؤÎÀâÌÀ -.SH ÀâÌÀ -ŵ·¿Åª¤Ê Linux system ¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤Ê¥Ç¥£¥ì¥¯¥È¥ê¤¬¤¢¤ë -(¾¤Ë¤â¤¿¤¯¤µ¤ó¤Î¥Ç¥£¥ì¥¯¥È¥ê¤¬¤¢¤ë¤¬): +.SH 名前 +hier \- ファイルシステム階層の説明 +.SH 説明 +典型的な Linux system には以下のようなディレクトリがある +(他にもたくさんのディレクトリがあるが): .TP .I / -¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¡£¤³¤³¤¬³¬Áؤε¯ÅÀ¤È¤Ê¤ë¡£ +ルートディレクトリ。ここが階層の起点となる。 .TP .I /bin -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢¥·¥ó¥°¥ë¥æ¡¼¥¶¡¼¥â¡¼¥É¤Ç -¥·¥¹¥Æ¥à¤Îµ¯Æ°¤ä½¤Íý¤ò¹Ô¤¦ºÝ¤ËɬÍפʼ¹ԷÁ¼°¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤ë¡£ +このディレクトリには、シングルユーザーモードで +システムの起動や修理を行う際に必要な実行形式ファイルが含まれる。 .TP .I /boot -¥Ö¡¼¥È¥í¡¼¥À¤¬ÍѤ¤¤ëÀÅŪ¤Ê¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¥Ö¡¼¥È¥×¥í¥»¥¹¤Î´Ö¤ËɬÍפʥե¡¥¤¥ë¤À¤±¤¬ÃÖ¤«¤ì¤ë¡£ -¥Þ¥Ã¥×¥¤¥ó¥¹¥È¡¼¥é¤äÀßÄê¥Õ¥¡¥¤¥ë¤Ï +ブートローダが用いる静的なファイルが含まれている。 +このディレクトリにはブートプロセスの間に必要なファイルだけが置かれる。 +マップインストーラや設定ファイルは .I /sbin -¤ä +や .I /etc -¤ËÃÖ¤¯¤Ù¤­¤Ç¤¢¤ë¡£ +に置くべきである。 .TP .I /dev -ʪÍý¥Ç¥Ð¥¤¥¹¤ò»²¾È¤·¤Æ¤¤¤ë -¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤ä¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ +物理デバイスを参照している +スペシャルファイルやデバイスファイルの置き場所。 .BR mknod (1) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .TP .I /etc -¥Þ¥·¥ó¸ÇÍ­¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤ë¾ì½ê¡£X11 ¤Î¤è¤¦¤Ê -Â絬ÌϤʥ½¥Õ¥È¥¦¥§¥¢¥Ñ¥Ã¥±¡¼¥¸¤Ç¤Ï¡¢ +マシン固有の設定ファイルが置かれる場所。X11 のような +大規模なソフトウェアパッケージでは、 .I /etc -°Ê²¼¤Ë¹¹¤Ë¥Ñ¥Ã¥±¡¼¥¸Ã±°Ì¤Ç¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤¬ºî¤é¤ì¤ë¤³¤È¤â¤¢¤ë¡£ -¥µ¥¤¥ÈÁ´ÂΤËÍ­¸ú¤ÊÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢¤³¤³¤Ç¤Ï¤Ê¤¯ +以下に更にパッケージ単位でサブディレクトリが作られることもある。 +サイト全体に有効な設定ファイルは、ここではなく .I /usr/etc -¤ËÃÖ¤«¤ì¤ë¤³¤È¤â¤¢¤ë¡£ -¤·¤«¤·¡¢¥×¥í¥°¥é¥à¤«¤é¤Î¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Î»²¾ÈÀè¤Ï¡¢¾ï¤Ë +に置かれることもある。 +しかし、プログラムからのこれらのファイルの参照先は、常に .I /etc -¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +にすべきである。 .I /usr/etc -°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¤Ï¡¢¤½¤ì¤é¤Ø¤Î¥ê¥ó¥¯¤ò +以下のファイルに対しては、それらへのリンクを .I /etc -¤ËÃÖ¤±¤Ð¤è¤¤¡£ +に置けばよい。 .TP .I /etc/opt .I /opt -¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¥¢¥É¥ª¥ó¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬»È¤¦¡¢ -¥Û¥¹¥È¸ÇÍ­¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ +にインストールされたアドオンアプリケーションが使う、 +ホスト固有の設定ファイルの置き場所。 .TP .I /etc/sgml -SGML ¤ä XML ¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê (¤Ê¤¯¤Æ¤â¤è¤¤)¡£ +SGML や XML の設定ファイルの置き場所 (なくてもよい)。 .TP .I /etc/skel -¿·¤¿¤Ë¥æ¡¼¥¶¡¼¥¢¥«¥¦¥ó¥È¤òºî¤ëºÝ¡¢ -Ä̾盧¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤¬ -¥æ¡¼¥¶¡¼¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¡£ +新たにユーザーアカウントを作る際、 +通常このディレクトリにあるファイルが +ユーザーのホームディレクトリにコピーされる。 .TP .I /etc/X11 -X11 window system ¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê (¤Ê¤¯¤Æ¤â¤è¤¤)¡£ +X11 window system の設定ファイルの置き場所 (なくてもよい)。 .TP .I /home -Ä̾¥æ¡¼¥¶¡¼¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤¬¡¢ -¤³¤Î¥Ç¥£¥ì¥¯¥È¥êľ²¼¤Ê¤¤¤·¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Î²¼¤ËºîÀ®¤µ¤ì¤ë¡£ -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¹½À®¤ò¤É¤¦¤¹¤ë¤«¤Ï¡¢ -¥í¡¼¥«¥ë¥Þ¥·¥ó¤Î´ÉÍý¼Ô¤¬·è¤á¤ë¤³¤È¤Ç¤¢¤ë¡£ +通常、ユーザーのホームディレクトリが、 +このディレクトリ直下ないしサブディレクトリの下に作成される。 +このディレクトリの構成をどうするかは、 +ローカルマシンの管理者が決めることである。 .TP .I /lib -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢¥·¥¹¥Æ¥à¤Îµ¯Æ°»þ¤ËɬÍפʶ¦Í­¥é¥¤¥Ö¥é¥ê¤ä¡¢ -¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤Î¤ËɬÍפʶ¦Í­¥é¥¤¥Ö¥é¥ê¤òÃÖ¤¯¡£ +このディレクトリには、システムの起動時に必要な共有ライブラリや、 +ルートファイルシステムでコマンドを実行するのに必要な共有ライブラリを置く。 .TP .I /media -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢ -CD/DVD ¥Ç¥£¥¹¥¯¤ä USB ¥¹¥Æ¥£¥Ã¥¯¤Ê¤É¤Î¼è¤ê³°¤·²Äǽ¥á¥Ç¥£¥¢ -(removable media) ÍѤΥޥ¦¥ó¥È¥Ý¥¤¥ó¥È¤¬ÃÖ¤«¤ì¤ë¡£ +このディレクトリには、 +CD/DVD ディスクや USB スティックなどの取り外し可能メディア +(removable media) 用のマウントポイントが置かれる。 .TP .I /mnt -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢°ì»þŪ¤Ë¥Þ¥¦¥ó¥È¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÍѤΠ-¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ç¤¢¤ë¡£ -¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ë¤è¤Ã¤Æ¤Ï¡¢°ì»þŪ¤Ë¥Þ¥¦¥ó¥È¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÍѤΠ-¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤È¤·¤Æ¡¢ +このディレクトリは、一時的にマウントするファイルシステム用の +マウントポイントである。 +ディストリビューションによっては、一時的にマウントするファイルシステム用の +マウントポイントとして、 .I /mnt -Æâ¤Ë¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤¬¤¢¤ë¡£ +内にサブディレクトリが用意されている場合がある。 .TP .I /opt -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¥¢¥É¥ª¥ó¥Ñ¥Ã¥±¡¼¥¸¤ÎÀÅŪ¤Ê¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤ë¡£ +このディレクトリにはアドオンパッケージの静的なファイルが置かれる。 .TP .I /proc -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï +このディレクトリは .I proc -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤Ç¤¢¤ë¡£ +ファイルシステムのマウントポイントである。 .I proc -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï¡¢¼Â¹ÔÃæ¥×¥í¥»¥¹¤ä¥«¡¼¥Í¥ë¤Î¾ðÊó¤òÄ󶡤¹¤ë¡£ -¤³¤Îµ¿»÷¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¾ÜºÙ¤Ï¡¢ +ファイルシステムは、実行中プロセスやカーネルの情報を提供する。 +この疑似ファイルシステムの詳細は、 .BR proc (5) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡£ +で説明されている。 .TP .I /root -Ä̾盧¤³¤¬ root ¥æ¡¼¥¶¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ê¤ë (¤Ê¤¯¤Æ¤â¤è¤¤)¡£ +通常ここが root ユーザのホームディレクトリになる (なくてもよい)。 .TP .I /sbin .I /bin -¤ÈƱÍͤˡ¢ -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¥·¥¹¥Æ¥à¤Îµ¯Æ°¤ËɬÍפʥ³¥Þ¥ó¥É¤¬´Þ¤Þ¤ì¤ë¡£ -¤¿¤À¤·¤³¤³¤Ë¤Ï¡¢°ìÈ̥桼¥¶¡¼¤ÏÄ̾ï¼Â¹Ô¤·¤Ê¤¤¥³¥Þ¥ó¥É¤¬ÃÖ¤«¤ì¤ë¡£ +と同様に、 +このディレクトリにはシステムの起動に必要なコマンドが含まれる。 +ただしここには、一般ユーザーは通常実行しないコマンドが置かれる。 .TP .I /srv -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢¤³¤Î¥·¥¹¥Æ¥à¤ÇÄ󶡤µ¤ì¤ë -¥µ¥¤¥È¸ÇÍ­¤Î¥Ç¡¼¥¿¤¬ÃÖ¤«¤ì¤ë¡£ +このディレクトリには、このシステムで提供される +サイト固有のデータが置かれる。 .TP .I /tmp -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢ -Äê´üŪ¤Ê¥¸¥ç¥Ö¤Ë¤è¤Ã¤Æ¡¢¤Þ¤¿¤Ï¥·¥¹¥Æ¥àµ¯Æ°»þ¤Ë¡¢ -̵¾ò·ï¤Ëºï½ü¤·¤Æ¹½¤ï¤Ê¤¤°ì»þŪ¤Ê¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤ë¡£ +このディレクトリには、 +定期的なジョブによって、またはシステム起動時に、 +無条件に削除して構わない一時的なファイルが置かれる。 .TP .I /usr -Ä̾盧¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢ÆÈΩ¤·¤¿¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬¥Þ¥¦¥ó¥È¤µ¤ì¤ë¡£ -¤³¤³¤Ë¤Ï¡¢¶¦Í­²Äǽ¤ÇÆɤ߹þ¤ßÀìÍѤΤâ¤Î¤À¤±¤¬´Þ¤Þ¤ì¡¢ -¤è¤Ã¤Æ¤¤¤í¤¤¤í¤Ê Linux ¥Þ¥·¥ó¤«¤é¥Þ¥¦¥ó¥È¤Ç¤­¤ë¡£ +通常このディレクトリは、独立したパーティションがマウントされる。 +ここには、共有可能で読み込み専用のものだけが含まれ、 +よっていろいろな Linux マシンからマウントできる。 .TP .I /usr/X11R6 -X Window System, Version 11 release 6 (¤Ê¤¯¤Æ¤â¤è¤¤)¡£ -.\":tati:X(3) ¤Ë¹ç¤ï¤»¤Þ¤·¤¿ +X Window System, Version 11 release 6 (なくてもよい)。 +.\":tati:X(3) に合わせました .TP .I /usr/X11R6/bin -X Window System ¤Î¥Ð¥¤¥Ê¥ê¤ÎÃÖ¤­¾ì½ê¡£ -¸Å¤¤¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë +X Window System のバイナリの置き場所。 +古いディレクトリである .I /usr/bin/X11 -¤«¤é¤³¤³¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬Ä¥¤é¤ì¤Æ¤¤¤ë¤³¤È¤¬Â¿¤¤¡£ +からここにシンボリックリンクが張られていることが多い。 .TP .I /usr/X11R6/lib -X Window System ¤Ë´ØÏ¢¤¹¤ë¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ +X Window System に関連するデータファイルの置き場所。 .TP .I /usr/X11R6/lib/X11 -¤³¤³¤Ë¤Ï X ¤ÎÆ°ºî¤ËɬÍפʼ¤Î¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +ここには X の動作に必要な種々のファイルが含まれている。 .I /usr/lib/X11 -¤«¤é¤³¤³¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬Ä¥¤é¤ì¤Æ¤¤¤ë¤³¤È¤¬Â¿¤¤¡£ +からここにシンボリックリンクが張られていることが多い。 .TP .I /usr/X11R6/include/X11 -¤³¤³¤Ë¤Ï X11 Window System ¤ò»È¤Ã¤¿¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤¿¤á¤Ë -ɬÍפʥ¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +ここには X11 Window System を使ったプログラムをコンパイルするために +必要なインクルードファイルが含まれている。 .I /usr/include/X11 -¤«¤é¤³¤³¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬Ä¥¤é¤ì¤Æ¤¤¤ë¤³¤È¤¬Â¿¤¤¡£ +からここにシンãƒœãƒªãƒƒã‚¯ãƒªãƒ³ã‚¯ãŒå¼µã‚‰ã‚Œã¦ã„ることが多い。 .TP .I /usr/bin -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢¼Â¹Ô·Á¼°¥Õ¥¡¥¤¥ë¤Î¼ç¤ÊÃÖ¤­¾ì½ê¤Ç¤¢¤ë¡£ -¥·¥¹¥Æ¥à¤Î¥Ö¡¼¥È¤ä¥·¥¹¥Æ¥àÉüµì¤Ë¤ÏɬÍפȤµ¤ì¤Ê¤¤¡¢ -°ìÈ̥桼¥¶¡¼¤¬ÍøÍѤ¹¤ë¥³¥Þ¥ó¥É¤Î¿¤¯¤Ï¡¢ -¥í¡¼¥«¥ë¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë¤Î¤Ç¤Ê¤¤¸Â¤ê¡¢ -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤¯¤Ù¤­¤Ç¤¢¤ë¡£ +このディレクトリは、実行形式ファイルの主な置き場所である。 +システムのブートやシステム復旧には必要とされない、 +一般ユーザーが利用するコマンドの多くは、 +ローカルにインストールされるのでない限り、 +このディレクトリに置くべきである。 .TP .I /usr/bin/X11 -X11 ¥³¥Þ¥ó¥É¤ÎÅÁÅýŪ¤ÊÃÖ¤­¾ì½ê¡£Linux ¤Ç¤Ï¡¢Ä̾ï +X11 コマンドの伝統的な置き場所。Linux では、通常 .I /usr/X11R6/bin -¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬Ä¥¤é¤ì¤Æ¤¤¤ë¡£ +にシンボリックリンクが張られている。 .TP .I /usr/dict .I /usr/share/dict -¤ËÃÖ¤­´¹¤¨¤é¤ì¤¿¡£ +に置き換えられた。 .TP .I /usr/doc .I /usr/share/doc -¤ËÃÖ¤­´¹¤¨¤é¤ì¤¿¡£ +に置き換えられた。 .TP .I /usr/etc -¥µ¥¤¥ÈÆâÉô¤ÎÊ£¿ô¤Î¥Þ¥·¥ó¤¬¶¦Í­¤¹¤ë¤è¤¦¤ÊÀßÄê¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢¥³¥Þ¥ó¥É¤Ï¤½¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Î»²¾ÈÀè¤ò¡¢¾ï¤Ë +サイト内部の複数のマシンが共有するような設定ファイルが置かれる。 +しかしながら、コマンドはそれらのファイルの参照先を、常に .I /etc -¤Ë¤¹¤Ù¤­¤À¤í¤¦¡£ +にすべきだろう。 .I /etc -¤Î¥Õ¥¡¥¤¥ë¤«¤é¥ê¥ó¥¯¤òÄ¥¤Ã¤Æ¡¢ +のファイルからリンクを張って、 .I /usr/etc -¤ÎŬÀڤʥե¡¥¤¥ë¤ò»Ø¤¹¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +の適切なファイルを指すようにすべきである。 .TP .I /usr/games -¥²¡¼¥à¥×¥í¥°¥é¥à¤ä¶µ°éÍÑ¥×¥í¥°¥é¥à¤Î¥Ð¥¤¥Ê¥ê¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë (¤Ê¤¯¤Æ¤â¤è¤¤)¡£ +ゲームプログラムや教育用プログラムのバイナリが含まれている (なくてもよい)。 .TP .I /usr/include -C ¥³¥ó¥Ñ¥¤¥éÍѤΥ¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +C コンパイラ用のインクルードファイルが含まれている。 .TP .I /usr/include/X11 -C ¥³¥ó¥Ñ¥¤¥é¤È X Window System ÍѤΥ¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -Ä̾盧¤ì¤Ï +C コンパイラと X Window System 用のインクルードファイルが含まれている。 +通常これは .I /usr/inlcude/X11 -¤Ø¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +へのシンボリックリンクになっている。 .TP .I /usr/include/asm -¥¢¥»¥ó¥Ö¥é´Ø¿ô¤ÎÀë¸À¤ò¹Ô¤¦¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢°ÊÁ°¤Ï +アセンブラ関数の宣言を行うインクルードファイルが含まれている。 +このディレクトリは、以前は .I /usr/src/linux/include/asm -¤Ø¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤À¤Ã¤¿¡£ +へのシンボリックリンクだった。 .TP .I /usr/include/linux -¤³¤³¤Ë¤Ï¡¢¥·¥¹¥Æ¥à¤Î¥ê¥ê¡¼¥¹¤Î¤¿¤Ó¤´¤È¤ËÊѹ¹¤µ¤ì¤¦¤ë¾ðÊ󤬴ޤޤì¤ë¡£ -¤³¤³¤Ï°ÊÁ°¤Ï +ここには、システムのリリースのたびごとに変更されうる情報が含まれる。 +ここは以前は .I /usr/src/linux/include/linux -¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤µ¤ì¤Æ¤ª¤ê¡¢ -¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¸ÇÍ­¤Î¾ðÊó¤¬ÆÀ¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤¿¡£ +にシンボリックリンクされており、 +オペレーティングシステム固有の情報が得られるようになっていた。 -(¤³¤³¤ËÃÖ¤¯¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Ï¡¢ -¸½ºß¤Î libc ¤ª¤è¤Ó¥æ¡¼¥¶¶õ´Ö¤ÇÀµ¤·¤¯Æ°ºî¤¹¤ë¤â¤Î¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤·¤«¤· Linux ¤Î¥«¡¼¥Í¥ë¥½¡¼¥¹¤Ï -¥æ¡¼¥¶¥×¥í¥°¥é¥à¤È¤¤¤Ã¤·¤ç¤Ë»È¤¦¤è¤¦¤Ë¤ÏÀ߷פµ¤ì¤Æ¤¤¤Ê¤¤¤·¡¢ -¤¢¤Ê¤¿¤¬»È¤Ã¤Æ¤¤¤ë libc ¤â´ØÃΤ·¤Ê¤¤¡£ +(ここに置くインクルードファイルは、 +現在の libc およびユーザ空間で正しく動作するものでなければならない。 +しかし Linux のカーネルソースは +ユーザプログラムといっしょに使うようには設計されていないし、 +あなたが使っている libc も関知しない。 .I /usr/include/asm -¤È +と .I /usr/include/linux -¤òŬÅö¤Ê¥«¡¼¥Í¥ë¥Ä¥ê¡¼¤Ø¤Î¥ê¥ó¥¯¤Ë¤·¤¿¤ê¤¹¤ë¤È¡¢ÇËþ¤¹¤ë¤Î¤ÏÌܤ˸«¤¨¤Æ¤¤¤ë¡£ -Debian ¤Ç¤Ï¤³¤¦¤»¤º¤Ë¡¢libc*-dev package ¤¬Ä󶡤¹¤ë¡¢ -°ÂÄꤷ¤¿¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤òÃÖ¤¤¤Æ¤¤¤ë¡£) +を適当なカーネルツリーへのリンクにしたりすると、破綻するのは目に見えている。 +Debian ではこうせずに、libc*-dev package が提供する、 +安定したカーネルバージョンのヘッダファイルを置いている。) .TP .I /usr/include/g++ -GNU C++ ¥³¥ó¥Ñ¥¤¥éÍѤΥ¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +GNU C++ コンパイラ用のインクルードファイルが含まれている。 .TP .I /usr/lib -¥ª¥Ö¥¸¥§¥¯¥È¥é¥¤¥Ö¥é¥ê (¥À¥¤¥Ê¥ß¥Ã¥¯¥é¥¤¥Ö¥é¥ê¤â´Þ¤à) ¤È¡¢ -ľÀܤˤϵ¯Æ°¤µ¤ì¤Ê¤¤¤è¤¦¤Ê¼Â¹Ô·Á¼°¥Õ¥¡¥¤¥ë¾¯¡¹¤È¤¬ÃÖ¤«¤ì¤ë¡£ -Ê£»¨¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¹¹¤Ë¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +オブジェクトライブラリ (ダイナミックライブラリも含む) と、 +直接には起動されないような実行形式ファイル少々とが置かれる。 +複雑なプログラムでは、更にサブディレクトリがあるかもしれない。 .TP .I /usr/lib/X11 -X ¤Î¥×¥í¥°¥é¥à¤Ë´ØÏ¢¤¹¤ë¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤È¡¢ -X Window System ¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ -Linux ¤Ç¤ÏÄ̾ï +X のプログラムに関連するデータファイルと、 +X Window System の設定ファイルの置き場所。 +Linux では通常 .I /usr/X11R6/lib/X11 -¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬Ä¥¤é¤ì¤Æ¤¤¤ë¡£ +にシンボリックリンクが張られている。 .TP .I /usr/lib/gcc-lib -GNU C ¥³¥ó¥Ñ¥¤¥é +GNU C コンパイラ .BR gcc (1) -ÍѤμ¹ԷÁ¼°¥Õ¥¡¥¤¥ë¤È¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +用の実行形式ファイルとインクルードファイルが含まれている。 .TP .I /usr/lib/groff -GNU groff ʸ½ñÀ°·Á¥·¥¹¥Æ¥à¤Î¤¿¤á¤Î¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +GNU groff 文書整形システムのためのファイルが含まれている。 .TP .I /usr/lib/uucp .BR uucp (1) -¤Î¤¿¤á¤Î¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +のためのファイルが含まれている。 .TP .I /usr/local -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢ -¥µ¥¤¥È¥í¡¼¥«¥ë¤Ê¥×¥í¥°¥é¥à¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ëŵ·¿Åª¤Ê¾ì½ê¤Ç¤¢¤ë¡£ +このディレクトリは、 +サイトローカルなプログラムがインストールされる典型的な場所である。 .TP .I /usr/local/bin -¥µ¥¤¥È¥í¡¼¥«¥ë¤Ê¥×¥í¥°¥é¥à¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +サイトローカルなプログラムが含まれている。 .TP .I /usr/local/doc -¥µ¥¤¥È¥í¡¼¥«¥ë¤Ê¥É¥­¥å¥á¥ó¥È¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +サイトローカルなドキュメントが含まれている。 .TP .I /usr/local/etc -¥µ¥¤¥È¥í¡¼¥«¥ë¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¥×¥í¥°¥é¥à¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ +サイトローカルにインストールされたプログラムの設定ファイルの置き場所。 .TP .I /usr/local/games -¥µ¥¤¥È¥í¡¼¥«¥ë¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¥²¡¼¥à¤Î¥Ð¥¤¥Ê¥ê¤ÎÃÖ¤­¾ì½ê¡£ +サイトローカルにインストールされたゲームのバイナリの置き場所。 .TP .I /usr/local/lib -¥µ¥¤¥È¥í¡¼¥«¥ë¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Î´ØÏ¢¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ +サイトローカルにインストールされたプログラムの関連ファイルの置き場所。 .TP .I /usr/local/include -¥í¡¼¥«¥ë¤Ê C ¥³¥ó¥Ñ¥¤¥é¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ +ローカルな C コンパイラのヘッダファイルの置き場所。 .TP .I /usr/local/info -¥µ¥¤¥È¥í¡¼¥«¥ë¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Î info ¥Ú¡¼¥¸¤ÎÃÖ¤­¾ì½ê¡£ +サイトローカルにインストールされたプログラムの info ページの置き場所。 .TP .I /usr/local/man -¥µ¥¤¥È¥í¡¼¥«¥ë¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÎÃÖ¤­¾ì½ê¡£ +サイトローカルにインストールされたプログラムのマニュアルページの置き場所。 .TP .I /usr/local/sbin -¥µ¥¤¥È¥í¡¼¥«¥ë¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¥·¥¹¥Æ¥à´ÉÍý¥³¥Þ¥ó¥É¤ÎÃÖ¤­¾ì½ê¡£ +サイトローカルにインストールされたシステム管理コマンドの置き場所。 .TP .I /usr/local/share -Ʊ¤¸ OS ¤Ê¤é¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤¬°Û¤Ê¤Ã¤Æ¤â¶¦Í­¤Ç¤­¤ë¡¢ -¥í¡¼¥«¥ë¤Ê¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥Ç¡¼¥¿¤ÎÃÖ¤­¾ì½ê¡£ +同じ OS ならアーキテクチャが異なっても共有できる、 +ローカルなアプリケーションデータの置き場所。 .TP .I /usr/local/src -¥µ¥¤¥È¥í¡¼¥«¥ë¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¥½¥Õ¥È¥¦¥§¥¢¤Î¥½¡¼¥¹¥³¡¼¥É¤ÎÃÖ¤­¾ì½ê¡£ +サイトローカルにインストールされたソフトウェアのソースコードの置き場所。 .TP .I /usr/man .I /usr/share/man -¤ËÃÖ¤­´¹¤¨¤é¤ì¤¿¡£ +に置き換えられた。 .TP .I /usr/sbin -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢¥·¥¹¥Æ¥à´ÉÍý¥³¥Þ¥ó¥É¤¬´Þ¤Þ¤ì¤ë¡£ -¤³¤³¤ËÃÖ¤«¤ì¤ë¥³¥Þ¥ó¥É¤Ï¡¢¥Ö¡¼¥È¥×¥í¥»¥¹¤ä +このディレクトリには、システム管理コマンドが含まれる。 +ここに置かれるコマンドは、ブートプロセスや .I /usr -¤Î¥Þ¥¦¥ó¥È¡¢¥·¥¹¥Æ¥à¤Î½¤Íý¤Ê¤É¤ËɬÍפʤâ¤Î¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +のマウント、システムの修理などに必要なものであってはならない。 .TP .I /usr/share -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤´¤È¤Ë¸ÇÍ­¤Ê¥Ç¡¼¥¿ -(Ʊ¤¸ OS ¤Ê¤é¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤¬°ã¤Ã¤Æ¤¤¤Æ¤â¶¦Í­¤Ç¤­¤ë¤â¤Î) -¤¬¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥êñ°Ì¤ÇÃÖ¤«¤ì¤ë¡£ -°ÊÁ°¤Ë¤Ï +このディレクトリには、アプリケーションごとに固有なデータ +(同じ OS ならアーキテクチャが違っていても共有できるもの) +がサブディレクトリ単位で置かれる。 +以前には .IR /usr/doc , .IR /usr/lib , .I /usr/man -¤Ê¤É¤Ë¤¢¤Ã¤¿ÆâÍƤ¬¡¢Â¿¤¯¤³¤³¤ËÃÖ¤«¤ì¤Æ¤¤¤ë¡£ +などにあった内容が、多くここに置かれている。 .TP .I /usr/share/dict -¥¹¥Ú¥ë¥Á¥§¥Ã¥«ÍѤÎñ¸ì¥ê¥¹¥È¤¬´Þ¤Þ¤ì¤ë¡£ +スペルチェッカ用の単語リストが含まれる。 .TP .I /usr/share/doc -¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Î¥É¥­¥å¥á¥ó¥È¤ÎÃÖ¤­¾ì½ê¡£ +インストールされたプログラムのドキュメントの置き場所。 .TP .I /usr/share/games .I /usr/games -¤ËÃÖ¤«¤ì¤¿¥²¡¼¥àÍѤÎÀÅŪ¤Ê¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ +に置かれたゲーム用の静的なデータファイルの置き場所。 .TP .I /usr/share/info -info ¥Ú¡¼¥¸¤¬ÃÖ¤«¤ì¤ë¡£ +info ページが置かれる。 .TP .I /usr/share/locale -¥í¥±¡¼¥ë (locale) ¾ðÊó¤¬ÃÖ¤«¤ì¤ë¡£ +ロケール (locale) 情報が置かれる。 .TP .I /usr/share/man -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¡£³Æ¥Ú¡¼¥¸¤Ï¥»¥¯¥·¥ç¥ó¤Ë±þ¤¸¤¿¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¤ë¡£ +マニュアルページ。各ページはセクションに応じたサブディレクトリに置かれる。 .TP .I /usr/share/man//man[1\-9] -¤³¤ì¤é¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢ -³Æ¥í¥±¡¼¥ë¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¥½¡¼¥¹¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¡£ -¤¹¤Ù¤Æ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÇƱ¤¸¸À¸ì¤È¥³¡¼¥É¥»¥Ã¥È¤ò»ÈÍѤ¹¤ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +これらのディレクトリには、 +各ロケールのマニュアルページのソースが置かれている。 +すべてのマニュアルページで同じ言語とコードセットを使用するシステムでは、 .I -¤Ï¾Êά¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ +は省略されることがある。 .TP .I /usr/share/misc -Ʊ¤¸ OS ¤Ê¤é¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤¬°ã¤Ã¤Æ¤¤¤Æ¤â¶¦Í­¤Ç¤­¤ë¡¢»¨Â¿¤Ê¥Ç¡¼¥¿¤ÎÃÖ¤­¾ì½ê¡£ +同じ OS ならアーキテクチャが違っていても共有できる、雑多なデータの置き場所。 .TP .I /usr/share/nls -Êì¹ñ¸ì¥µ¥Ý¡¼¥È (native language support) ÍѤΥá¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤ÎÃÖ¤­¾ì½ê¡£ +母国語サポート (native language support) 用のメッセージカタログの置き場所。 .TP .I /usr/share/sgml -SGML ¤ä XML ¤Î¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ +SGML や XML のファイルの置き場所。 .TP .I /usr/share/terminfo -terminfo ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬ÃÖ¤«¤ì¤ë¡£ +terminfo のデータベースが置かれる。 .TP .I /usr/share/tmac -groff ¤È°ì½ï¤Ë¤ÏÇÛÉÛ¤µ¤ì¤Æ¤¤¤Ê¤¤ troff ¥Þ¥¯¥í¤ÎÃÖ¤­¾ì½ê¡£ +groff と一緒には配布されていない troff マクロの置き場所。 .TP .I /usr/share/zoneinfo -¥¿¥¤¥à¥¾¡¼¥ó¾ðÊó¤Î¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤ë¡£ +タイムゾーン情報のファイルが置かれる。 .TP .I /usr/src -¥·¥¹¥Æ¥à¾å¤Î¿§¡¹¤Ê¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë -(»²¾ÈÍѤΥѥ屡¼¥¸¤â´Þ¤à) ¤ÎÃÖ¤­¾ì½ê¡£ -¤³¤Î¾ì½ê¤Ç¼«Ê¬¤Î¥×¥í¥¸¥§¥¯¥È¤Îºî¶È¤ò¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ -/usr °Ê²¼¤Î¥Õ¥¡¥¤¥ë¤Ï¥½¥Õ¥È¥¦¥§¥¢¤Î¥¤¥ó¥¹¥È¡¼¥ë¤Î»þ°Ê³°¤Ï -Æɤ߹þ¤ßÀìÍѤˤʤäƤ¤¤ë¤Ù¤­¤À¤«¤é¤Ç¤¢¤ë¡£ +システム上の色々なコンポーネントのソースファイル +(参照用のパッケージも含む) の置き場所。 +この場所で自分のプロジェクトの作業をしてはいけない。 +/usr 以下のファイルはソフトウェアのインストールの時以外は +読み込み専用になっているべきだからである。 .TP .I /usr/src/linux -¤«¤Ä¤Æ¤Ï¥«¡¼¥Í¥ë¥½¡¼¥¹¤ÎÅÁÅýŪ¤ÊÃÖ¤­¾ì½ê¤À¤Ã¤¿¡£ -¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ë¤è¤Ã¤Æ¤Ï¡¢ -½Ð²Ù»þ¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹¤ò¤³¤³¤ËÃÖ¤¤¤Æ¤¤¤ë¡£ -¼«Ê¬¤Ç¥«¡¼¥Í¥ë¤ò¥Ó¥ë¥É¤¹¤ë¤È¤­¤ÏÊ̤ξì½ê¤ò»È¤¦¤Û¤¦¤¬¤¤¤¤¤À¤í¤¦¡£ +かつてはカーネルソースの伝統的な置き場所だった。 +ディストリビューションによっては、 +出荷時のデフォルトのカーネルのソースをここに置いている。 +自分でカーネルをビルドするときは別の場所を使うほうがいいだろう。 .TP .I /usr/tmp -º£¤Ç¤ÏÍѤ¤¤é¤ì¤Ê¤¯¤Ê¤Ã¤¿¡£¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï +今では用いられなくなった。このディレクトリは .I /var/tmp -¤Ø¤Î¥ê¥ó¥¯¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¤³¤Î¥ê¥ó¥¯¤Ï¸ß´¹À­¤Î¤¿¤á¤À¤±¤Ë¤¢¤ê¡¢¤â¤Ï¤ä»È¤¦¤Ù¤­¤Ç¤Ê¤¤¡£ +へのリンクにすべきである。 +このリンクは互換性のためだけにあり、もはや使うべきでない。 .TP .I /var -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢¥¹¥×¡¼¥ë¥Õ¥¡¥¤¥ë¤ä¥í¥°¥Õ¥¡¥¤¥ë¤Î¤è¤¦¤Ê¡¢ -¥µ¥¤¥º¤¬ÊѲ½¤¹¤ë¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤ë¡£ +このディレクトリには、スプールファイルやログファイルのような、 +サイズが変化するファイルが置かれる。 .TP .I /var/adm -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï +このディレクトリは .I /var/log -¤ËÃÖ¤­´¹¤¨¤é¤ì¤¿¡£ -¤³¤³¤Ï +に置き換えられた。 +ここは .I /var/log -¤Ø¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +へのシンボリックリンクにすべきである。 .TP .I /var/backups -Îò»ËŪ¤ÊÍýͳ¤«¤é¤Þ¤À»Ä¤Ã¤Æ¤¤¤ë¡£ +歴史的な理由からまだ残っている。 .TP .I /var/cache -¥×¥í¥°¥é¥à¤Î¤¿¤á¤Ë¥­¥ã¥Ã¥·¥å¤µ¤ì¤¿¥Ç¡¼¥¿¤ÎÃÖ¤­¾ì½ê¡£ +プログラムのためにキャッシュされたデータの置き場所。 .TP .IR /var/catman/cat[1\-9] " or " /var/cache/man/cat[1\-9] -¤³¤ì¤é¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢À°·ÁºÑ¤ß¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤¬¡¢ -¥Ú¡¼¥¸¤Î¥»¥¯¥·¥ç¥ó¤Ë½¾¤Ã¤ÆÃÖ¤«¤ì¤Æ¤¤¤ë¡£ -(À°·ÁºÑ¤ß¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÎÍøÍѤϿ侩¤µ¤ì¤Æ¤¤¤Ê¤¤¡£) +これらのディレクトリには、整形済みのマニュアルページが、 +ページのセクションに従って置かれている。 +(整形済みマニュアルページの利用は推奨されていない。) .TP .I /var/cron -Îò»ËŪ¤ÊÍýͳ¤«¤é¤Þ¤À»Ä¤Ã¤Æ¤¤¤ë¡£ +歴史的な理由からまだ残っている。 .TP .I /var/lib -¥×¥í¥°¥é¥à¤Î¾õÂ֤˴ؤ¹¤ë¾ðÊó¤Î¤¦¤Á¡¢²ÄÊѤʤâ¤Î¤ÎÃÖ¤­¾ì½ê¡£ +プログラムの状態に関する情報のうち、可変なものの置き場所。 .TP .I /var/local .I /usr/local -ÍѤβÄÊѥǡ¼¥¿¤ÎÃÖ¤­¾ì½ê¡£ +用の可変データの置き場所。 .TP .I /var/lock -¥í¥Ã¥¯¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ -¥Ç¥Ð¥¤¥¹¤Î¥í¥Ã¥¯¥Õ¥¡¥¤¥ë¤Î̿̾¤Ï¡¢´·½¬¤È¤·¤Æ +ロックファイルの置き場所。 +デバイスのロックファイルの命名は、慣習として .I LCK.. -¤È¤µ¤ì¤Æ¤¤¤ë¡£¤³¤³¤Ç +とされている。ここで .I -¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ç¤Î¥Ç¥Ð¥¤¥¹Ì¾¤Ç¤¢¤ë¡£ -ÍøÍѤµ¤ì¤Æ¤¤¤ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï -HDU UUCP ¤Î¥í¥Ã¥¯¥Õ¥¡¥¤¥ë¤Î¤â¤Î¤Ç¤¢¤ë¡£ -¤¹¤Ê¤ï¤Á³Æ¥í¥Ã¥¯¥Õ¥¡¥¤¥ë¤Ë¤Ï -¥¢¥¹¥­¡¼ 10 ¿Ê¿ôÃÍʸ»ú¤Çɽµ­¤·¤¿ PID 10 ¥Ð¥¤¥È¤È¡¢ -¤½¤ì¤Ë³¤¤¤Æ²þ¹Ôʸ»ú¤È¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +はファイルシステム上でのデバイス名である。 +利用されているフォーマットは +HDU UUCP のロックファイルのものである。 +すなわち各ロックファイルには +アスキー 10 進数値文字で表記した PID 10 バイトと、 +それに続いて改行文字とが含まれている。 .TP .I /var/log -¼ï¡¹¤Î¥í¥°¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ +種々のログファイルの置き場所。 .TP .I /var/opt .I /opt -ÍѤβÄÊѥǡ¼¥¿¤ÎÃÖ¤­¾ì½ê¡£ +用の可変データの置き場所。 .TP .I /var/mail -¥æ¡¼¥¶¤Î¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¤ÎÃÖ¤­¾ì½ê¡£ +ユーザのメールボックスの置き場所。 .I /var/spool/mail -¤òÃÖ¤­´¹¤¨¤¿¡£ +を置き換えた。 .TP .I /var/msgs -Îò»ËŪ¤ÊÍýͳ¤«¤é¤Þ¤À»Ä¤Ã¤Æ¤¤¤ë¡£ +歴史的な理由からまだ残っている。 .TP .I /var/preserve -Îò»ËŪ¤ÊÍýͳ¤«¤é¤Þ¤À»Ä¤Ã¤Æ¤¤¤ë¡£ +歴史的な理由からまだ残っている。 .TP .I /var/run -¼Â¹Ô»þ¤Î²ÄÊÑ¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤ë¡£ -Î㤨¤Ð¥×¥í¥»¥¹¼±ÊÌ»Ò (PID) ¤òÊÝ»ý¤¹¤ë¥Õ¥¡¥¤¥ë¤ä¡¢ -¥æ¡¼¥¶¤Î¥í¥°¥¤¥ó¾ðÊó¥Õ¥¡¥¤¥ë +実行時の可変ファイルが置かれる。 +例えばプロセス識別子 (PID) を保持するファイルや、 +ユーザのログイン情報ファイル .I (utmp) -¤Ê¤É¤Ç¤¢¤ë¡£ -¤³¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢Ä̾亮¥¹¥Æ¥àµ¯Æ°»þ¤Ëºï½ü¤µ¤ì¤ë¡£ +などである。 +ここのファイルは、通常システム起動時に削除される。 .TP .I /var/spool -¿§¡¹¤Ê¥×¥í¥°¥é¥à¤Î¥¹¥×¡¼¥ë¥Õ¥¡¥¤¥ë (¤¢¤ë¤¤¤Ï¥­¥å¡¼¥Õ¥¡¥¤¥ë) ¤ÎÃÖ¤­¾ì½ê¡£ +色々なプログラムのスプールファイル (あるいはキューファイル) の置き場所。 .TP .I /var/spool/at .BR at (1) -¤Î¥¸¥ç¥Ö¥¹¥×¡¼¥ë¡£ +のジョブスプール。 .TP .I /var/spool/cron .BR cron (8) -¤Î¥¸¥ç¥Ö¥¹¥×¡¼¥ë¡£ +のジョブスプール。 .TP .I /var/spool/lpd -°õºþÍѤΥ¹¥×¡¼¥ë¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤ë¡£ +印刷用のスプールファイルが置かれる。 .TP .I /var/spool/mail .I /var/mail -¤ËÃÖ¤­´¹¤¨¤é¤ì¤¿¡£ +に置き換えられた。 .TP .I /var/spool/mqueue -¥­¥å¡¼¥¤¥ó¥°¤µ¤ì¤¿Á÷¿®¥á¡¼¥ë¤ÎÃÖ¤­¾ì½ê¡£ +キューイングされた送信メールの置き場所。 .TP .I /var/spool/news -¥Ë¥å¡¼¥¹¤Î¥¹¥×¡¼¥ë¥Ç¥£¥ì¥¯¥È¥ê¡£ +ニュースのスプールディレクトリ。 .TP .I /var/spool/rwho .BR rwhod (8) -¤Î¥¹¥×¡¼¥ë¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ +のスプールファイルの置き場所。 .TP .I /var/spool/smail -¥á¡¼¥ëÇÛÁ÷¥×¥í¥°¥é¥à +メール配送プログラム .BR smail (1) -¤Î¥¹¥×¡¼¥ë¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ +のスプールファイルの置き場所。 .TP .I /var/spool/uucp .BR uucp (1) -¤Î¥¹¥×¡¼¥ë¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ +のスプールファイルの置き場所。 .TP .I /var/tmp .I /tmp -¤È»÷¤Æ¤¤¤ë¤¬¡¢ -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¤ë°ì»þŪ¤Ê¥Õ¥¡¥¤¥ë¤ÏÊݸ´ü´Ö¤ÎÀ©¸Â¤¬¤Ê¤¤¡£ +と似ているが、 +このディレクトリに置かれる一時的なファイルは保存期間の制限がない。 .TP .I /var/yp -NIS ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¡£ -.SH ½àµò +NIS のデータベースファイルの置き場所。 +.SH 準拠 The Filesystem Hierarchy Standard, Version 2.2 . -.SH ¥Ð¥° -¤³¤Î¥ê¥¹¥È¤ÏÌÖÍåŪ¤Ê¤â¤Î¤Ç¤Ï¤Ê¤¤¡£ -¸Ä¡¹¤Î¥·¥¹¥Æ¥à¤Ç¤Ï°Û¤Ê¤ëÉôʬ¤¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +.SH バグ +このリストは網羅的なものではない。 +個々のシステムでは異なる部分があるかもしれない。 +.SH 関連項目 .BR find (1), .BR ln (1), .BR proc (5), diff --git a/release/man7/icmp.7 b/release/man7/icmp.7 index 10f11df1..19e94b79 100644 --- a/release/man7/icmp.7 +++ b/release/man7/icmp.7 @@ -9,137 +9,137 @@ .\" Translated 1999-12-06, NAKANO Takeo .\" Updated 2008-12-26, Akihiro MOTOKI , LDP v3.14 .\" -.\"WORD destination route ¹Ô¤­Àè·ÐÏ© -.\"WORD token packet filter ¥È¡¼¥¯¥ó¡¦¥Ñ¥±¥Ã¥È¡¦¥Õ¥£¥ë¥¿ +.\"WORD destination route 行き先経路 +.\"WORD token packet filter トークン・パケット・フィルタ .\" .TH ICMP 7 2010-02-25 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -icmp, IPPROTO_ICMP \- Linux IPv4 ICMP ¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë -.SH ÀâÌÀ -¤³¤Î¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¤Ï RFC\ 792 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë Internet -Control Message Protocol ¤ò¼ÂÁõ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î¥×¥í¥È¥³¥ë¤Ï¥¨¥é¡¼¾õ¶·¤òÃΤ餻¤¿¤ê¿ÇÃǤò¹Ô¤¦¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ -¥æ¡¼¥¶¡¼¤Ï¤³¤Î¥â¥¸¥å¡¼¥ë¤È¤ÏľÀܤˤÏÄÌ¿®¤Ç¤­¤Ê¤¤¡£ -¤³¤Î¥â¥¸¥å¡¼¥ë¤Ï¥«¡¼¥Í¥ë¤Î¾¤Î¥×¥í¥È¥³¥ë¤ÈÄÌ¿®¤·¡¢ -¤½¤ì¤é¤Î¥×¥í¥È¥³¥ë¤¬ ICMP ¥¨¥é¡¼¤ò¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥ì¥¤¥ä¤ËÅϤ¹¡£ -¥«¡¼¥Í¥ë¤Î ICMP ¥â¥¸¥å¡¼¥ë¤Ï ICMP ¥ê¥¯¥¨¥¹¥È¤ËÂФ¹¤ë±þÅú¤â¹Ô¤¦¡£ +.SH 名前 +icmp, IPPROTO_ICMP \- Linux IPv4 ICMP カーネルモジュール +.SH 説明 +このカーネルモジュールは RFC\ 792 で定義されている Internet +Control Message Protocol を実装したものである。 +このプロトコルはエラー状況を知らせたり診断を行うために用いられる。 +ユーザーはこのモジュールとは直接には通信できない。 +このモジュールはカーネルの他のプロトコルと通信し、 +それらのプロトコルが ICMP エラーをアプリケーションレイヤに渡す。 +カーネルの ICMP モジュールは ICMP リクエストに対する応答も行う。 .PP -raw ¥½¥±¥Ã¥È¤ò¥×¥í¥È¥³¥ë +raw ソケットをプロトコル .B IPPROTO_ICMP -¤Ç¥ª¡¼¥×¥ó¤¹¤ì¤Ð¡¢ -¥æ¡¼¥¶¡¼¥×¥í¥È¥³¥ë¤Ï¥í¡¼¥«¥ë¤Ê¥½¥±¥Ã¥ÈÁ´¤Æ¤ËÂФ¹¤ë -ICMP ¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¾ÜºÙ¤Ï +でオープンすれば、 +ユーザープロトコルはローカルなソケット全てに対する +ICMP パケットを受信することができる。 +詳細は .BR raw (7) -¤ò»²¾È¤Î¤³¤È¡£ -¥½¥±¥Ã¥È¤ËÅϤµ¤ì¤ë ICMP ¥Ñ¥±¥Ã¥È¤Î¥¿¥¤¥×¤Ï +を参照のこと。 +ソケットに渡される ICMP パケットのタイプは .B ICMP_FILTER -¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤Æ¥Õ¥£¥ë¥¿¡¼¤Ç¤­¤ë¡£ -ICMP ¥Ñ¥±¥Ã¥È¤Ï (¤¿¤È¤¨¥æ¡¼¥¶¡¼¥½¥±¥Ã¥È¤ËÅϤµ¤ì¤ë¾ì¹ç¤Ç¤â)¡¢ -¾ï¤Ë¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ (¤â) ½èÍý¤µ¤ì¤ë¡£ +オプションによってフィルターできる。 +ICMP パケットは (たとえユーザーソケットに渡される場合でも)、 +常にカーネルによって (も) 処理される。 .LP -Linux ¤Ç¤Ï ICMP ¥¨¥é¡¼¥Ñ¥±¥Ã¥È¤Î¥ì¡¼¥È¤ò¤½¤ì¤¾¤ì¤ÎÁ÷¤êÀè¤ËÂФ·¤Æ -À©¸Â¤·¤Æ¤¤¤ë¡£ +Linux では ICMP エラーパケットのレートをそれぞれの送り先に対して +制限している。 .B ICMP_REDIRECT -¤È +と .B ICMP_DEST_UNREACH -¤âÅþÃ夷¤¿¥Ñ¥±¥Ã¥È¤Î¹Ô¤­Àè·ÐÏ© (destination route) ¤òÀ©¸Â¤¹¤ë¡£ -.SS /proc ¥¤¥ó¥¿¥Õ¥§¡¼¥¹ -ICMP ¤Ç¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¥°¥í¡¼¥Ð¥ë¥Ñ¥é¥á¡¼¥¿¤òÀßÄꤹ¤ë¤¿¤á¤Î +も到着したパケットの行き先経路 (destination route) を制限する。 +.SS /proc インタフェース +ICMP では、いくつかのグローバルパラメータを設定するための .I /proc -¥Õ¥¡¥¤¥ë·²¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Î¥Ñ¥é¥á¡¼¥¿¤Ë¤Ï¡¢ +ファイル群が用意されている。 +これらのパラメータには、 .I /proc/sys/net/ipv4/ -¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¤ÎÆɤ߽ñ¤­¤Ç¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ -¤³¤ì¤é¤Î¥Ñ¥é¥á¡¼¥¿¤Î¤Û¤È¤ó¤É¤ÏÆÃÄê¤Î ICMP ¥¿¥¤¥×¤ËÂФ¹¤ë¥ì¡¼¥ÈÀ©¸Â -(rate limitation) ¤Ç¤¢¤ë¡£ -Linux 2.2 ¤Ï ICMP ¤ÎÀ©¸Â¤Ë¥È¡¼¥¯¥ó¡¦¥Ð¥±¥Ã¥È¡¦¥Õ¥£¥ë¥¿ -(token bucket filter) ¤òÍѤ¤¤ë¡£ +ディレクトリ内のファイルの読み書きでアクセスできる。 +これらのパラメータのほとんどは特定の ICMP タイプに対するレート制限 +(rate limitation) である。 +Linux 2.2 は ICMP の制限にトークン・バケット・フィルタ +(token bucket filter) を用いる。 .\" FIXME better description needed -¤½¤ì¤¾¤ì¤ÎÃͤϡ¢¥Ð¡¼¥¹¥È¤Î¸å¤Ë¥È¡¼¥¯¥ó¡¦¥Ð¥±¥Ã¥È¡¦¥Õ¥£¥ë¥¿¤¬¥¯¥ê¥¢ -¤µ¤ì¤ë¤Þ¤Ç¤Î¥¿¥¤¥à¥¢¥¦¥È¤òÉÃñ°Ì¤Çɽ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ºÇ¾®Ã±°Ì(jiffy)¤Ï -¥·¥¹¥Æ¥à°Í¸¤Îñ°Ì¤Ç i386 ¥·¥¹¥Æ¥à¤ÏÄ̾ï 10ms¡¢alpha ¤ä ia64 ¤Ç¤Ï -1ms ¤Ç¤¢¤ë¡£ +それぞれの値は、バーストの後にトークン・バケット・フィルタがクリア +されるまでのタイムアウトを秒単位で表したものである。最小単位(jiffy)は +システム依存の単位で i386 システムは通常 10ms、alpha や ia64 では +1ms である。 .TP -.IR icmp_destunreach_rate " (Linux 2.2 ¤«¤é 2.4.9 ¤Þ¤Ç)" +.IR icmp_destunreach_rate " (Linux 2.2 から 2.4.9 まで)" .\" Precisely: from 2.1.102 -ICMP ÉÔã¥Ñ¥±¥Ã¥È (Destination Unreachable packet) ¤òÁ÷¤ëºÇÂç¥ì¡¼¥È¡£ -¤³¤ì¤ÏÆÃÄê¤Î¥ë¡¼¥È¤Þ¤¿¤Ï¹Ô¤­Àè¤Ë¥Ñ¥±¥Ã¥È¤òÁ÷¿®¤¹¤ë¥ì¡¼¥È¤òÀ©¸Â¤¹¤ë¡£ -¤³¤ÎÀ©¸Â¤Ï¡¢ -path MTU discovery ¤ËɬÍ×¤Ê +ICMP 不達パケット (Destination Unreachable packet) を送る最大レート。 +これは特定のルートまたは行き先にパケットを送信するレートを制限する。 +この制限は、 +path MTU discovery に必要な .B ICMP_FRAG_NEEDED -¥Ñ¥±¥Ã¥È¤ÎÁ÷¿®¤Ë¤Ï±Æ¶Á¤·¤Ê¤¤¡£ +パケットの送信には影響しない。 .TP -.IR icmp_echo_ignore_all " (Linux 2.2 °Ê¹ß)" +.IR icmp_echo_ignore_all " (Linux 2.2 以降)" .\" Precisely: 2.1.68 -¤³¤ÎÃͤ¬Èó¥¼¥í¤Î¾ì¹ç¤Ï¡¢ Linux ¤Ï¤¹¤Ù¤Æ¤Î +この値が非ゼロの場合は、 Linux はすべての .B ICMP_ECHO -Í×µá¤ò̵»ë¤¹¤ë¡£ +要求を無視する。 .TP -.IR icmp_echo_ignore_broadcasts " (Linux 2.2 °Ê¹ß)" +.IR icmp_echo_ignore_broadcasts " (Linux 2.2 以降)" .\" Precisely: from 2.1.68 -¤³¤ÎÃͤ¬Èó¥¼¥í¤Î¾ì¹ç¤Ï¡¢ Linux ¤Ï¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤ËÁ÷¤é¤ì¤¿¤¹¤Ù¤Æ¤Î +この値が非ゼロの場合は、 Linux はブロードキャストアドレスに送られたすべての .B ICMP_ECHO -Í×µá¤ò̵»ë¤¹¤ë¡£ +要求を無視する。 .TP -.IR icmp_echoreply_rate " (Linux 2.2 ¤«¤é 2.4.9 ¤Þ¤Ç)" +.IR icmp_echoreply_rate " (Linux 2.2 から 2.4.9 まで)" .\" Precisely: from 2.1.102 .B ICMP_ECHOREQUEST -¥Ñ¥±¥Ã¥È¤Ë±þÅú¤¹¤ë +パケットに応答する .B ICMP_ECHOREPLY -¥Ñ¥±¥Ã¥È¤ÎºÇÂçÁ÷¿®¥ì¡¼¥È¡£ +パケットの最大送信レート。 .TP -.IR icmp_errors_use_inbound_ifaddr " (Boolean; default: disabled; Linux 2.6.12 °Ê¹ß)" +.IR icmp_errors_use_inbound_ifaddr " (Boolean; default: disabled; Linux 2.6.12 以降)" .\" The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt -¤³¤ì¤ò̵¸ú¤Ë¤¹¤ë¤È¡¢ICMP ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Ï¡¢ -½ÐÎÏ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î¥×¥é¥¤¥Þ¥ê¥¢¥É¥ì¥¹¤ÇÁ÷¿®¤µ¤ì¤ë¡£ +これを無効にすると、ICMP エラーメッセージは、 +出力インタフェースのプライマリアドレスで送信される。 -¤³¤ì¤òÍ­¸ú¤Ë¤¹¤ë¤È¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Ï ICMP ¥¨¥é¡¼¤Î¸¶°ø¤È¤Ê¤Ã¤¿¥Ñ¥±¥Ã¥È¤ò -¼õ¿®¤·¤¿¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î¥×¥é¥¤¥Þ¥¢¥É¥ì¥¹¤ÇÁ÷¿®¤µ¤ì¤ë¡£ -¤³¤ÎÆ°ºî¤Ï¡¢Â¿¤¯¤Î¥Í¥Ã¥È¥ï¡¼¥¯´ÉÍý¼Ô¤¬¥ë¡¼¥¿¤ËÂФ·¤Æ´üÂÔ¤·¤Æ¤¤¤ë¤â¤Î¤Ç¤¢¤ê¡¢ -¤³¤ì¤Ë¤è¤êÊ£»¨¤Ê¥Í¥Ã¥È¥ï¡¼¥¯¥ì¥¤¥¢¥¦¥È¤Î¥Ç¥Ð¥Ã¥°¤¬¤è¤êÍưפˤʤ롣 +これを有効にすると、エラーメッセージは ICMP エラーの原因となったパケットを +受信したインタフェースのプライマアドレスで送信される。 +この動作は、多くのネットワーク管理者がルータに対して期待しているものであり、 +これにより複雑なネットワークレイアウトのデバッグがより容易になる。 -ÁªÂò¤µ¤ì¤¿¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ç¥×¥é¥¤¥Þ¥ê¥¢¥É¥ì¥¹¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¡¢ -¤³¤ÎÀßÄê¤Ë´Ø¤ï¤é¤º¡¢ºÇ½é¤Î¥ë¡¼¥×¥Ð¥Ã¥¯°Ê³°¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ç¡¢ -¥×¥é¥¤¥Þ¥ê¥¢¥É¥ì¥¹¤ò»ý¤Ä¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î¥×¥é¥¤¥Þ¥ê¥¢¥É¥ì¥¹¤¬»ÈÍѤµ¤ì¤ëÅÀ¤Ë -Ãí°Õ¤¹¤ë¤³¤È¡£ +選択されたインタフェースでプライマリアドレスが存在しない場合は、 +この設定に関わらず、最初のループバック以外のインタフェースで、 +プライマリアドレスを持つインタフェースのプライマリアドレスが使用される点に +注意すること。 .TP -.IR icmp_ignore_bogus_error_responses " (Boolean; default: disabled; Linux 2.2 °Ê¹ß)" +.IR icmp_ignore_bogus_error_responses " (Boolean; default: disabled; Linux 2.2 以降)" .\" precisely: since 2.1.32 .\" The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt -¥ë¡¼¥¿¤ÎÃæ¤Ë¤Ï¡¢RFC1122 ¤Ë°ãÈ¿¤·¡¢¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥Õ¥ì¡¼¥à¤ËÂФ·¤Æ -µ¶¤Î±þÅú¤òÁ÷¿®¤¹¤ë¤â¤Î¤¬¤¢¤ë¡£ -¤³¤Î¤è¤¦¤Ê°ãÈ¿¤ÏÄ̾參¡¼¥Í¥ë¤Î·Ù¹ð¤È¤·¤Æ¥í¥°¤Ëµ­Ï¿¤µ¤ì¤ë¡£ -¤³¤Î¥Ñ¥é¥á¡¼¥¿¤òÍ­¸ú¤Ë¤¹¤ë¤È¡¢¥«¡¼¥Í¥ë¤Ï¤³¤Î¤è¤¦¤Ê·Ù¹ð¤ò½Ð¤µ¤Ê¤¯¤Ê¤ê¡¢ -¥í¥°¥Õ¥¡¥¤¥ë¤Ë»¨²»¤Î¤è¤¦¤Ê¾ðÊ󤬵­Ï¿¤µ¤ì¤ë¤Î¤òÈò¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +ルータの中には、RFC1122 に違反し、ブロードキャストフレームに対して +偽の応答を送信するものがある。 +このような違反は通常カーネルの警告としてログに記録される。 +このパラメータを有効にすると、カーネルはこのような警告を出さなくなり、 +ログファイルに雑音のような情報が記録されるのを避けることができる。 .TP -.IR icmp_paramprob_rate " (Linux 2.2 ¤«¤é 2.4.9 ¤Þ¤Ç)" +.IR icmp_paramprob_rate " (Linux 2.2 から 2.4.9 まで)" .\" Precisely: from 2.1.102 .B ICMP_PARAMETERPROB -¥Ñ¥±¥Ã¥È¤ÎºÇÂçÁ÷¿®¥ì¡¼¥È¡£ -¤³¤ì¤é¤Î¥Ñ¥±¥Ã¥È¤ÏÉÔÀµ¤Ê IP ¥Ø¥Ã¥À¤ò»ý¤Ä¥Ñ¥±¥Ã¥È¤¬ÅþÃ夷¤¿¾ì¹ç¤Ë -Á÷¿®¤µ¤ì¤ë¡£ +パケットの最大送信レート。 +これらのパケットは不正な IP ヘッダを持つパケットが到着した場合に +送信される。 .TP -.IR icmp_ratelimit " (integer; default: 1000; Linux 2.4.10 °Ê¹ß)" +.IR icmp_ratelimit " (integer; default: 1000; Linux 2.4.10 以降)" .\" The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt -¼ïÊ̤¬ +種別が .I icmp_ratemask -(²¼µ­»²¾È) ¤Ë¥Þ¥Ã¥Á¤·¤¿ ICMP ¥Ñ¥±¥Ã¥È¤Î¡¢ -ÆÃÄê¤ÎÁ÷¿®Àè¤Ø¤ÎÁ÷¿®¥ì¡¼¥È¤ÎºÇÂçÃͤòÀ©¸Â¤¹¤ë¡£ -0 ¤Ï¥ì¡¼¥ÈÀ©¸Â¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤ò¡¢ -0 °Ê³°¤ÎÃͤϱþÅú´Ö¤ÎºÇ¾®´Ö³Ö (¥ß¥êÉÃñ°Ì) ¤ò¼¨¤¹¡£ +(下記参照) にマッチした ICMP パケットの、 +特定の送信先への送信レートの最大値を制限する。 +0 はレート制限を無効にすることを、 +0 以外の値は応答間の最小間隔 (ミリ秒単位) を示す。 .TP -.IR icmp_ratemask " (integer; default: ²¼µ­»²¾È; Linux 2.4.10 °Ê¹ß)" +.IR icmp_ratemask " (integer; default: 下記参照; Linux 2.4.10 以降)" .\" The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt -¥ì¡¼¥ÈÀ©¸Â¤ò¹Ô¤¦ ICMP ¥¿¥¤¥×¤ò·è¤á¤ë¥Þ¥¹¥¯¡£ +レート制限を行う ICMP タイプを決めるマスク。 -Í­¸ú¥Ó¥Ã¥È: IHGFEDCBA9876543210 +有効ビット: IHGFEDCBA9876543210 .br -¥Ç¥Õ¥©¥ë¥È¥Þ¥¹¥¯: 0000001100000011000 (0x1818) +デフォルトマスク: 0000001100000011000 (0x1818) -¥Ó¥Ã¥ÈÄêµÁ (¥«¡¼¥Í¥ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë +ビット定義 (カーネルソースファイル .I include/linux/icmp.h -¤ò»²¾È): +を参照): .in +4n .nf @@ -159,47 +159,47 @@ I Address Mask Reply .fi .in -¥¢¥¹¥¿¥ê¥¹¥¯°õ¤¬ÉÕ¤¤¤¿¥Ó¥Ã¥È¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¥ì¡¼¥ÈÀ©¸Â¤¬Í­¸ú¤Ë -¤Ê¤Ã¤Æ¤¤¤ë (¾åµ­¤Î¥Þ¥¹¥¯¤Î¥Ç¥Õ¥©¥ë¥È¤â»²¾È)¡£ +アスタリスク印が付いたビットは、デフォルトでレート制限が有効に +なっている (上記のマスクのデフォルトも参照)。 .TP -.IR icmp_timeexceed_rate " (Linux 2.2 ¤«¤é 2.4.9 ¤Þ¤Ç)" +.IR icmp_timeexceed_rate " (Linux 2.2 から 2.4.9 まで)" .B ICMP_TIME_EXCEEDED -¥Ñ¥±¥Ã¥È¤ÎºÇÂçÁ÷¿®¥ì¡¼¥È¡£ -¤³¤ì¤é¤Î¥Ñ¥±¥Ã¥È¤Ï¥Ñ¥±¥Ã¥È¤¬¤¢¤Þ¤ê¤Ë¿¤¯¤Î hop ¤òÄ̲ᤷ¤¿¾ì¹ç¤Ë¡¢ -¥ë¡¼¥×¤òËɤ°¤¿¤á¤ËÁ÷¤é¤ì¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +パケットの最大送信レート。 +これらのパケットはパケットがあまりに多くの hop を通過した場合に、 +ループを防ぐために送られる。 +.SH バージョン .B ICMP_ADDRESS -Í×µá¤ËÂФ¹¤ë¥µ¥Ý¡¼¥È¤Ï 2.2 ¤Çºï½ü¤µ¤ì¤¿¡£ +要求に対するサポートは 2.2 で削除された。 .PP .B ICMP_SOURCE_QUENCH -¤Ï Linux 2.2 ¤Çºï½ü¤µ¤ì¤¿¡£ -.SH Ãí°Õ -¾¤Î¿¤¯¤Î¼ÂÁõ¤Ç¤Ï¡¢ +は Linux 2.2 で削除された。 +.SH 注意 +他の多くの実装では、 .B IPPROTO_ICMP -raw ¥½¥±¥Ã¥È¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤³¤Îµ¡Ç½¤Ï°Ü¿¢À­¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç¤ÏÍѤ¤¤ë¤Ù¤­¤Ç¤Ê¤¤¡£ +raw ソケットがサポートされていない。 +この機能は移植性が必要なプログラムでは用いるべきでない。 .\" not really true ATM .\" .PP .\" Linux ICMP should be compliant to RFC 1122. .PP -Linux ¤¬¥ë¡¼¥¿¡¼¤È¤·¤ÆÆ°ºî¤·¤Æ¤¤¤Ê¤¤¤È¤­¤Ë¤Ï¡¢ +Linux がルーターとして動作していないときには、 .B ICMP_REDIRECT -¥Ñ¥±¥Ã¥È¤ÏÁ÷¿®¤µ¤ì¤Ê¤¤¡£ -¤Þ¤¿¤³¤ì¤é¤¬¼õ¤±¼è¤é¤ì¤ë¤Î¤â¡¢È¯¿®¸µ¤¬¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë -¸Å¤¤¥²¡¼¥È¥¦¥§¥¤¤Ç¡¢¥ê¥À¥¤¥ì¥¯¥È¡¦¥ë¡¼¥È (redirect route) ¤¬ -ŬÅö¤Ê»þ´Ö¤Î¸å¤Ë´ü¸ÂÀÚ¤ì¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¸Â¤é¤ì¤ë¡£ +パケットは送信されない。 +またこれらが受け取られるのも、発信元がルーティングテーブルに定義されている +古いゲートウェイで、リダイレクト・ルート (redirect route) が +適当な時間の後に期限切れになっている場合に限られる。 .PP .B ICMP_TIMESTAMP -¤«¤éÊÖ¤µ¤ì¤ë 64 ¥Ó¥Ã¥È¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×¤Ï¡¢ -µª¸µ (Epoch) ¤Ç¤¢¤ë 1970-01-01 00:00:00 +0000 (UTC) -¤«¤é¤Î·Ð²á»þ´Ö¤ò¥ß¥êÉÃñ°Ì¤Çɽ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +から返される 64 ビットのタイムスタンプは、 +紀元 (Epoch) である 1970-01-01 00:00:00 +0000 (UTC) +からの経過時間をミリ秒単位で表したものである。 .PP -Linux ICMP ¤Ï ICMP ¤òÁ÷¤ë¤¿¤á¤ËÆâÉô¤Ç raw ¥½¥±¥Ã¥È¤òÍѤ¤¤ë¡£ -raw ¥½¥±¥Ã¥È¤Ï +Linux ICMP は ICMP を送るために内部で raw ソケットを用いる。 +raw ソケットは .BR netstat (8) -¤Î½ÐÎÏ¤Ë 0 inode ¤È¤·¤Æ½ÐÎϤµ¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +の出力に 0 inode として出力される。 +.SH 関連項目 .BR ip (7) .PP .BR RFC\ 792 : -ICMP ¥×¥í¥È¥³¥ë¤ÎÀâÌÀ +ICMP プロトコルの説明 diff --git a/release/man7/inotify.7 b/release/man7/inotify.7 index 2492786c..81d687de 100644 --- a/release/man7/inotify.7 +++ b/release/man7/inotify.7 @@ -32,18 +32,18 @@ .\" Updated 2008-09-19, Akihiro MOTOKI, LDP v3.08 .\" .TH INOTIFY 7 2008-11-18 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -inotify \- ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¤¥Ù¥ó¥È¤ò´Æ»ë¤¹¤ë -.SH ÀâÌÀ +.SH 名前 +inotify \- ファイルシステムイベントを監視する +.SH 説明 .I inotify -API ¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¤¥Ù¥ó¥È¤ò´Æ»ë¤¹¤ë¤¿¤á¤Îµ¡¹½¤òÄ󶡤¹¤ë¡£ -inotify ¤Ï¸Ä¡¹¤Î¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥ì¥¯¥È¥ê¤ò´Æ»ë¤¹¤ë¤Î¤Ë»È¤¨¤ë¡£ -¥Ç¥£¥ì¥¯¥È¥ê¤ò´Æ»ë¤¹¤ë¾ì¹ç¡¢inotify ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¼«¿È¤È -¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¤Î¥¤¥Ù¥ó¥È¤òÊÖ¤¹¡£ +API はファイルシステムイベントを監視するための機構を提供する。 +inotify は個々のファイルやディレクトリを監視するのに使える。 +ディレクトリを監視する場合、inotify はディレクトリ自身と +ディレクトリ内のファイルのイベントを返す。 -°Ê²¼¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤³¤Î API ¤È¶¦¤Ë»ÈÍѤµ¤ì¤ë: +以下のシステムコールがこの API と共に使用される: .BR inotify_init (2) -(¤ä +(や .BR inotify_init1 (2)), .BR inotify_add_watch (2), .BR inotify_rm_watch (2), @@ -51,364 +51,364 @@ inotify .BR close (2). .BR inotify_init (2) -¤Ï inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤òºîÀ®¤·¡¢inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤ò»²¾È¤¹¤ë -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ -¤â¤Ã¤È¿·¤·¤¤ +は inotify インスタンスを作成し、inotify インスタンスを参照する +ファイルディスクリプタを返す。 +もっと新しい .BR inotify_init1 (2) -¤â +も .BR inotify_init (2) -¤ÈƱÍͤÀ¤¬¡¢¤¤¤¯¤Ä¤«¤ÎÄɲäε¡Ç½¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¡£ +と同様だが、いくつかの追加の機能が提供されている。 .BR inotify_add_watch (2) -¤Ï inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¡Ö´Æ»ëÂÐ¾Ý (watch) ¥ê¥¹¥È¡×¤òÁàºî¤¹¤ë¡£ -´Æ»ëÂоݥꥹ¥È¤Î³Æ¥¢¥¤¥Æ¥à ("watch") ¤Ï¡¢ -¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Ñ¥¹Ì¾¤È¡¢ -¤½¤Î¥Ñ¥¹Ì¾¤Ç»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ -¥«¡¼¥Í¥ë¤¬´Æ»ë¤¹¤ëÊ£¿ô¤Î¥¤¥Ù¥ó¥È¤Î½¸¹ç¤ò»ØÄꤹ¤ë¡£ +は inotify インスタンスに関連づけられた「監視対象 (watch) リスト」を操作する。 +監視対象リストの各アイテム ("watch") は、 +ファイルまたはディレクトリのパス名と、 +そのパス名で参照されるファイルに対して +カーネルが監視する複数のイベントの集合を指定する。 .BR inotify_add_watch (2) -¤Ï¿·¤·¤¤´Æ»ë¥¢¥¤¥Æ¥à¤ÎºîÀ®¤ä´û¸¤Î´Æ»ëÂоݤÎÊѹ¹¤¬¤Ç¤­¤ë¡£ -³Æ´Æ»ëÂоݤϰì°Õ¤Î¡Ö´Æ»ëÂоݥǥ£¥¹¥¯¥ê¥×¥¿¡×¤ò»ý¤Ä¡£ -¤³¤ì¤Ï´Æ»ëÂоݤòºîÀ®¤·¤¿¤È¤­¤Ë +は新しい監視アイテムの作成や既存の監視対象の変更ができる。 +各監視対象は一意の「監視対象ディスクリプタ」を持つ。 +これは監視対象を作成したときに .BR inotify_add_watch (2) -¤«¤éÊÖ¤µ¤ì¤ëÀ°¿ô¤Ç¤¢¤ë¡£ +から返される整数である。 .BR inotify_rm_watch (2) -¤Ï inotify ¤Î´Æ»ëÂоݥꥹ¥È¤«¤é¥¢¥¤¥Æ¥à¤òºï½ü¤¹¤ë¡£ +は inotify の監視対象リストからアイテムを削除する。 -inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤ò»Ø¤·¤Æ¤¤¤ë -Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥¯¥í¡¼¥º¤µ¤ì¤¿¾ì¹ç¡¢ -¤½¤Î²¼Áؤˤ¢¤ë¥ª¥Ö¥¸¥§¥¯¥È¤È¤½¤Î¥ê¥½¡¼¥¹¤Ï¡¢ -¥«¡¼¥Í¥ë¤ÇºÆÍøÍѤ¹¤ë¤¿¤á¤Ë²òÊü¤µ¤ì¤ë¡£ -´ØÏ¢¤¬ÀÚ¤é¤ì¤¿´Æ»ëÂоݤϼ«Æ°Åª¤Ë²òÊü¤µ¤ì¤ë¡£ +inotify インスタンスを指している +全てのファイルディスクリプタがクローズされた場合、 +その下層にあるオブジェクトとそのリソースは、 +カーネルで再利用するために解放される。 +関連が切られた監視対象は自動的に解放される。 -¤É¤Î¤è¤¦¤Ê¥¤¥Ù¥ó¥È¤¬µ¯¤³¤Ã¤Æ¤¤¤¿¤«¤òÃΤë¤Ë¤Ï¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç inotify ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò +どのようなイベントが起こっていたかを知るには、 +アプリケーションで inotify ファイルディスクリプタを .BR read (2) -¤¹¤ì¤Ð¤è¤¤¡£ -¤³¤ì¤Þ¤Ç¤Ë²¿¤â¥¤¥Ù¥ó¥È¤¬µ¯¤³¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -Ää»ß (blocking) ¥â¡¼¥É¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ì¤Ð¡¢ -¾¯¤Ê¤¯¤È¤â 1 ¤Ä¤Î¥¤¥Ù¥ó¥È¤¬µ¯¤³¤ë¤Þ¤Ç +すればよい。 +これまでに何もイベントが起こっていない場合、 +停止 (blocking) モードのファイルディスクリプタであれば、 +少なくとも 1 つのイベントが起こるまで .BR read (2) -¤ÏÄä»ß¤¹¤ë (¥·¥°¥Ê¥ë¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡£ -¥·¥°¥Ê¥ë¤Ë¤è¤ë³ä¤ê¹þ¤ß¤¬¤¢¤Ã¤¿¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¤Ï¥¨¥é¡¼ +は停止する (シグナルにより割り込まれなかった場合。 +シグナルによる割り込みがあった場合、呼び出しはエラー .BR EINTR -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .BR signal (7) -»²¾È)¡£ +参照)。 .BR read (2) -¤¬À®¸ù¤¹¤ë¤È¡¢°Ê²¼¤Î¹½Â¤ÂΤò 1 ¤Ä°Ê¾å´Þ¤à¥Ð¥Ã¥Õ¥¡¤¬ÊÖ¤µ¤ì¤ë: +が成功すると、以下の構造体を 1 つ以上含むバッファが返される: .in +4n .nf struct inotify_event { - int wd; /* ´Æ»ëÂоݥǥ£¥¹¥¯¥ê¥×¥¿ */ + int wd; /* 監視対象ディスクリプタ */ .\" FIXME . The type of the 'wd' field should probably be "int32_t". .\" I submitted a patch to fix this. See the LKML thread .\" "[patch] Fix type errors in inotify interfaces", 18 Nov 2008 .\" Glibc bug filed: http://sources.redhat.com/bugzilla/show_bug.cgi?id=7040 - uint32_t mask; /* ¥¤¥Ù¥ó¥È¤Î¥Þ¥¹¥¯ */ - uint32_t cookie; /* ´ØÏ¢¤¹¤ë¥¤¥Ù¥ó¥È·²¤ò´ØÏ¢¤Å¤±¤ë - °ì°Õ¤Ê¥¯¥Ã¥­¡¼ (rename(2) ÍÑ) */ - uint32_t len; /* \(aqname\(aq ¥Õ¥£¡¼¥ë¥É¤Î¥µ¥¤¥º */ - char name[]; /* NULL ¤Ç½ªÃ¼¤µ¤ì¤¿Ç¤°Õ¤Î̾Á° */ + uint32_t mask; /* イベントのマスク */ + uint32_t cookie; /* 関連するイベント群を関連づける + 一意なクッキー (rename(2) 用) */ + uint32_t len; /* \(aqname\(aq フィールドのサイズ */ + char name[]; /* NULL で終端された任意の名前 */ }; .fi .in .I wd -¤Ï¥¤¥Ù¥ó¥ÈȯÀ¸¤Î´Æ»ëÂоݤò»ØÄꤹ¤ë¡£ -¤³¤ì¤Ï¡¢Á°¤â¤Ã¤Æ¹Ô¤ï¤ì¤¿ +はイベント発生の監視対象を指定する。 +これは、前もって行われた .BR inotify_add_watch (2) -¸Æ¤Ó½Ð¤·¤ÇÊÖ¤µ¤ì¤¿´Æ»ëÂоݥǥ£¥¹¥¯¥ê¥×¥¿¤Î¤¦¤Á¤Î 1 ¤Ä¤Ç¤¢¤ë¡£ +呼び出しで返された監視対象ディスクリプタのうちの 1 つである。 .I mask -¤Ë¤ÏȯÀ¸¤·¤¿¥¤¥Ù¥ó¥È (²¼µ­»²¾È) ¤òµ­½Ò¤¹¤ë¤¿¤á¤Î¥Ó¥Ã¥È¤¬´Þ¤Þ¤ì¤ë¡£ +には発生したイベント (下記参照) を記述するためのビットが含まれる。 .I cookie -¤Ï´ØÏ¢¤¹¤ë¥¤¥Ù¥ó¥È¤ò´ØÏ¢¤Å¤±¤ë¤¿¤á¤Î°ì°Õ¤ÊÀ°¿ô¤Ç¤¢¤ë¡£ -¸½ºß¤Î¤È¤³¤í¡¢¤³¤ÎÃÍ¤Ï rename ¥¤¥Ù¥ó¥È¤ËÂФ·¤Æ¤Î¤ß»È¤ï¤ì¤Æ¤ª¤ê¡¢ -·ë²Ì¤Î¥Ú¥¢¤Ç¤¢¤ë +は関連するイベントを関連づけるための一意な整数である。 +現在のところ、この値は rename イベントに対してのみ使われており、 +結果のペアである .B IN_MOVE_FROM -¤È +と .B IN_MOVE_TO -¥¤¥Ù¥ó¥È¤ò¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç´ØÏ¢¤Å¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +イベントをアプリケーションで関連づけることができる。 .I name -¥Õ¥£¡¼¥ë¥É¤Ï´Æ»ë¤·¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ -¥¤¥Ù¥ó¥È¤¬ÊÖ¤µ¤ì¤ë¾ì¹ç¤Î¤¿¤á¤Ë¤À¤±Â¸ºß¤¹¤ë¡£ -´Æ»ë¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤Î¥Õ¥¡¥¤¥ë¤ÎÁêÂХѥ¹Ì¾¤òɽ¤¹¡£ -¤³¤Î¥Ñ¥¹Ì¾¤Ï NULL ¤Ç½ªÃ¼¤µ¤ì¡¢ -¤½¤Î¸å¤ÎÆɤ߹þ¤ß¤ÇŬÀڤʥ¢¥É¥ì¥¹¶­³¦¤ËÄ´À°¤¹¤ë¤¿¤á¤Ë¡¢ -¤µ¤é¤Ë NULL ¥Ð¥¤¥È¤¬´Þ¤Þ¤ì¤ë¾ì¹ç¤â¤¢¤ë¡£ +フィールドは監視しているディレクトリ内のファイルに対して +イベントが返される場合のためにだけ存在する。 +監視するディレクトリからのファイルの相対パス名を表す。 +このパス名は NULL で終端され、 +その後の読み込みで適切なアドレス境界に調整するために、 +さらに NULL バイトが含まれる場合もある。 .I len -¥Õ¥£¡¼¥ë¥É¤Ï NULL ¥Ð¥¤¥È¤ò´Þ¤à +フィールドは NULL バイトを含む .I name -¤ÎÁ´¤Æ¤Î¥Ð¥¤¥È¿ô¤òɽ¤¹¡£ -¤è¤Ã¤Æ¡¢ +の全てのバイト数を表す。 +よって、 .I inotify_event -¹½Â¤ÂΤΥµ¥¤¥º¤Ï +構造体のサイズは .I "sizeof(inotify_event)+len" -¤Ç¤¢¤ë¡£ +である。 .BR read (2) -¤ËÅϤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤¬¾®¤µ¤¹¤®¤Æ¼¡¤Î¥¤¥Ù¥ó¥È¤Ë´Ø¤¹¤ë¾ðÊó¤òÊÖ¤»¤Ê¤¤ -¾ì¹ç¤ÎÆ°ºî¤Ï¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤ê°Û¤Ê¤ë¡£ -2.6.21 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +に渡されたバッファが小さすぎて次のイベントに関する情報を返せない +場合の動作はカーネルのバージョンにより異なる。 +2.6.21 より前のカーネルでは、 .BR read (2) -¤Ï 0 ¤òÊÖ¤¹¡£ -2.6.21 °Ê¹ß¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ +は 0 を返す。 +2.6.21 以降のカーネルでは、 .BR read (2) -¤Ï¥¨¥é¡¼ +はエラー .B EINVAL -¤Ç¼ºÇÔ¤¹¤ë¡£ -.SS inotify ¥¤¥Ù¥ó¥È +で失敗する。 +.SS inotify イベント .BR inotify_add_watch (2) -¤Î +の .I mask -°ú¤­¿ô¤È¡¢inotify ¥Õ¥¡¥¤¥ë¹½Â¤ÂΤò +引き数と、inotify ファイル構造体を .BR read (2) -¤·¤¿¤È¤­¤ËÊÖ¤µ¤ì¤ë +したときに返される .I inotify_event -¹½Â¤ÂΤΠ+構造体の .I mask -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¤È¤â¤Ë inotify ¥¤¥Ù¥ó¥È¤ò¼±Ê̤¹¤ë¤¿¤á¤Î -¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ë¡£ -°Ê²¼¤Î¥Ó¥Ã¥È¤¬ +フィールドは、ともに inotify イベントを識別するための +ビットマスクである。 +以下のビットが .BR inotify_add_watch (2) -¤ò¸Æ¤Ö¤È¤­¤Î +を呼ぶときの .I mask -¤Ë»ØÄê²Äǽ¤Ç¤¢¤ê¡¢ +に指定可能であり、 .BR read (2) -¤ÇÊÖ¤µ¤ì¤ë +で返される .I mask -¥Õ¥£¡¼¥ë¥É¤ÇÊÖ¤µ¤ì¤ë: +フィールドで返される: .RS 4 .sp .PD 0 .TP 18 .B IN_ACCESS -¥Õ¥¡¥¤¥ë¤¬¥¢¥¯¥»¥¹ (read) ¤µ¤ì¤¿¡£(*) +ファイルがアクセス (read) された。(*) .TP .B IN_ATTRIB -¥á¥¿¥Ç¡¼¥¿¤¬Êѹ¹¤µ¤ì¤¿¡£ -¥á¥¿¥Ç¡¼¥¿¤È¤Ï¡¢Î㤨¤Ð¡¢µö²Ä (permission)¡¢¥¿¥¤¥à¥¹¥¿¥ó¥×¡¢³Èĥ°À­¡¢ -¥ê¥ó¥¯¥«¥¦¥ó¥È (Linux 2.6.25 °Ê¹ß)¡¢UID¡¢GID ¤Ê¤É¤Ç¤¢¤ë¡£(*) +メタデータが変更された。 +メタデータとは、例えば、許可 (permission)、タイムスタンプ、拡張属性、 +リンクカウント (Linux 2.6.25 以降)、UID、GID などである。(*) .TP .B IN_CLOSE_WRITE -½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬¥¯¥í¡¼¥º¤µ¤ì¤¿¡£(*) +書き込みのためにオープンされたファイルがクローズされた。(*) .TP .B IN_CLOSE_NOWRITE -½ñ¤­¹þ¤ß°Ê³°¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬¥¯¥í¡¼¥º¤µ¤ì¤¿¡£(*) +書き込み以外のためにオープンされたファイルがクローズされた。(*) .TP .B IN_CREATE -´Æ»ëÂоݥǥ£¥ì¥¯¥È¥êÆâ¤Ç¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥ì¥¯¥È¥ê¤¬ºîÀ®¤µ¤ì¤¿¡£(*) +監視対象ディレクトリ内でファイルやディレクトリが作成された。(*) .TP .B IN_DELETE -´Æ»ëÂоݥǥ£¥ì¥¯¥È¥êÆâ¤Ç¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥ì¥¯¥È¥ê¤¬ºï½ü¤µ¤ì¤¿¡£(*) +監視対象ディレクトリ内でファイルやディレクトリが削除された。(*) .TP .B IN_DELETE_SELF -´Æ»ëÂоݤΥǥ£¥ì¥¯¥È¥ê¤Þ¤¿¤Ï¥Õ¥¡¥¤¥ë¼«¿È¤¬ºï½ü¤µ¤ì¤¿¡£ +監視対象のディレクトリまたはファイル自身が削除された。 .TP .B IN_MODIFY -¥Õ¥¡¥¤¥ë¤¬½¤Àµ¤µ¤ì¤¿¡£(*) +ファイルが修正された。(*) .TP .B IN_MOVE_SELF -´Æ»ëÂоݤΥǥ£¥ì¥¯¥È¥ê¤Þ¤¿¤Ï¥Õ¥¡¥¤¥ë¼«¿È¤¬°ÜÆ°¤µ¤ì¤¿¡£ +監視対象のディレクトリまたはファイル自身が移動された。 .TP .B IN_MOVED_FROM -¥Õ¥¡¥¤¥ë¤¬´Æ»ëÂоݥǥ£¥ì¥¯¥È¥ê³°¤Ø°ÜÆ°¤µ¤ì¤¿¡£(*) +ファイルが監視対象ディレクトリ外へ移動された。(*) .TP .B IN_MOVED_TO -¥Õ¥¡¥¤¥ë¤¬´Æ»ëÂоݥǥ£¥ì¥¯¥È¥êÆâ¤Ø°ÜÆ°¤µ¤ì¤¿¡£(*) +ファイルが監視対象ディレクトリ内へ移動された。(*) .TP .B IN_OPEN -¥Õ¥¡¥¤¥ë¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¡£(*) +ファイルがオープンされた。(*) .PD .RE .PP -¥Ç¥£¥ì¥¯¥È¥ê¤ò´Æ»ë¤¹¤ë¾ì¹ç¡¢ -¾åµ­¤Ç¥¢¥¹¥¿¥ê¥¹¥¯ (*) ¤òÉÕ¤±¤¿¥¤¥Ù¥ó¥È¤Ï¡¢ -¤½¤Î¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤ÆȯÀ¸¤¹¤ë¡£ -¤³¤Î¤È¤­ +ディレクトリを監視する場合、 +上記でアスタリスク (*) を付けたイベントは、 +そのディレクトリ内のファイルに対して発生する。 +このとき .I inotify_event -¹½Â¤ÂΤÇÊÖ¤µ¤ì¤ë +構造体で返される .I name -¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë̾¤òɽ¤¹¡£ +フィールドは、ディレクトリ内のファイル名を表す。 .PP .B IN_ALL_EVENTS -¥Þ¥¯¥í¤Ï¾åµ­¤Î¥¤¥Ù¥ó¥ÈÁ´¤Æ¤Î¥Þ¥¹¥¯¤È¤·¤ÆÄêµÁ¤µ¤ì¤ë¡£ -¤³¤Î¥Þ¥¯¥í¤Ï +マクロは上記のイベント全てのマスクとして定義される。 +このマクロは .BR inotify_add_watch (2) -¤ò¸Æ¤Ó½Ð¤¹¤È¤­¤Î +を呼び出すときの .I mask -°ú¤­¿ô¤È¤·¤Æ»È¤¨¤ë¡£ +引き数として使える。 -¤µ¤é¤Ë 2 ¤Ä¤ÎÊØÍø¤Ê¥Þ¥¯¥í¤¬¤¢¤ë¡£ +さらに 2 つの便利なマクロがある。 .B IN_MOVE -¤Ï +は IN_MOVED_FROM|IN_MOVED_TO -¤ÈÅù¤·¤¯¡¢ +と等しく、 .B IN_CLOSE -¤Ï +は IN_CLOSE_WRITE|IN_CLOSE_NOWRITE -¤ÈÅù¤·¤¤¡£ +と等しい。 .PP -¤½¤Î¾¤Ë¤â°Ê²¼¤Î¥Ó¥Ã¥È¤ò +その他にも以下のビットを .BR inotify_add_watch (2) -¤ò¸Æ¤Ö¤È¤­¤Î +を呼ぶときの .I mask -¤Ë»ØÄê¤Ç¤­¤ë: +に指定できる: .RS 4 .sp .PD 0 .TP 18 .B IN_DONT_FOLLOW -\fIpathname\fP ¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¤¢¤ë¾ì¹ç¤Ëé¤é¤Ê¤¤¡£ -(Linux 2.6.15 °Ê¹ß) +\fIpathname\fP がシンボリックリンクである場合に辿らない。 +(Linux 2.6.15 以降) .TP .B IN_MASK_ADD -\fIpathname\fP ¤ËÂФ¹¤ë´Æ»ë¥Þ¥¹¥¯¤¬´û¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢ -(¥Þ¥¹¥¯¤ÎÃÖ¤­´¹¤¨¤Ç¤Ï¤Ê¤¯) ¥¤¥Ù¥ó¥È¤òÄɲà (OR) ¤¹¤ë¡£ +\fIpathname\fP に対する監視マスクが既に存在する場合、 +(マスクの置き換えではなく) イベントを追加 (OR) する。 .TP .B IN_ONESHOT -1 ¤Ä¤Î¥¤¥Ù¥ó¥È¤Ë¤Ä¤¤¤Æ \fIpathname\fP ¤ò´Æ»ë¤·¡¢ -¥¤¥Ù¥ó¥È¤¬È¯À¸¤·¤¿¤é´Æ»ëÂоݥꥹ¥È¤«¤éºï½ü¤¹¤ë¡£ +1 つのイベントについて \fIpathname\fP を監視し、 +イベントが発生したら監視対象リストから削除する。 .TP -.BR IN_ONLYDIR " (Linux 2.6.15 °Ê¹ß)" -\fIpathname\fP ¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Î¾ì¹ç¤Ë¤Î¤ß´Æ»ë¤¹¤ë¡£ +.BR IN_ONLYDIR " (Linux 2.6.15 以降)" +\fIpathname\fP がディレクトリの場合にのみ監視する。 .PD .RE .PP -°Ê²¼¤Î¥Ó¥Ã¥È¤¬ +以下のビットが .BR read (2) -¤ÇÊÖ¤µ¤ì¤ë +で返される .I mask -¥Õ¥£¡¼¥ë¥É¤ËÀßÄꤵ¤ì¤ë: +フィールドに設定される: .RS 4 .sp .PD 0 .TP 18 .B IN_IGNORED -´Æ»ëÂоݤ¬ (\fBinotify_rm_watch\fP(2) ¤Ë¤è¤ê) ÌÀ¼¨Åª¤Ë -ºï½ü¤µ¤ì¤¿¡£¤â¤·¤¯¤Ï (¥Õ¥¡¥¤¥ë¤Îºï½ü¡¢¤Þ¤¿¤Ï¥Õ¥¡¥¤¥ë -¥·¥¹¥Æ¥à¤Î¥¢¥ó¥Þ¥¦¥ó¥È¤Ë¤è¤ê) ¼«Æ°Åª¤Ëºï½ü¤µ¤ì¤¿¡£ +監視対象が (\fBinotify_rm_watch\fP(2) により) 明示的に +削除された。もしくは (ファイルの削除、またはファイル +システムのアンマウントにより) 自動的に削除された。 .TP .B IN_ISDIR -¤³¤Î¥¤¥Ù¥ó¥È¤ÎÂоݤ¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¡£ +このイベントの対象がディレクトリである。 .TP .B IN_Q_OVERFLOW -¥¤¥Ù¥ó¥È¥­¥å¡¼¤¬°î¤ì¤¿ (¤³¤Î¥¤¥Ù¥ó¥È¤Î¾ì¹ç¡¢\fIwd\fP ¤Ï \-1 ¤Ç¤¢¤ë)¡£ +イベントキューが溢れた (このイベントの場合、\fIwd\fP は \-1 である)。 .TP .B IN_UNMOUNT -´Æ»ëÂоݥª¥Ö¥¸¥§¥¯¥È¤ò´Þ¤à¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¥¢¥ó¥Þ¥¦¥ó¥È¤µ¤ì¤¿¡£ +監視対象オブジェクトを含むファイルシステムがアンマウントされた。 .PD .RE -.SS /proc ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ -°Ê²¼¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¡¢inotify ¤Ç¾ÃÈñ¤µ¤ì¤ë -¥«¡¼¥Í¥ë¥á¥â¥ê¤ÎÁíÎ̤òÀ©¸Â¤¹¤ë¤Î¤Ë»ÈÍѤǤ­¤ë: +.SS /proc インターフェース +以下のインターフェースは、inotify で消費される +カーネルメモリの総量を制限するのに使用できる: .TP .I /proc/sys/fs/inotify/max_queued_events -¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÃͤϡ¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬ +このファイルの値は、アプリケーションが .BR inotify_init (2) -¤ò¸Æ¤Ó½Ð¤¹¤È¤­¤Ë»ÈÍѤµ¤ì¡¢Âбþ¤¹¤ë inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤Ë¤Ä¤¤¤Æ -¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤ë¥¤¥Ù¥ó¥È¤Î¿ô¤Î¾å¸Â¤òÀßÄꤹ¤ë¡£ -¤³¤ÎÀ©¸Â¤òĶ¤¨¤¿¥¤¥Ù¥ó¥È¤ÏÇË´þ¤µ¤ì¤ë¤¬¡¢ +を呼び出すときに使用され、対応する inotify インスタンスについて +キューに入れられるイベントの数の上限を設定する。 +この制限を超えたイベントは破棄されるが、 .B IN_Q_OVERFLOW -¥¤¥Ù¥ó¥È¤¬¾ï¤ËÀ¸À®¤µ¤ì¤ë¡£ +イベントが常に生成される。 .TP .I /proc/sys/fs/inotify/max_user_instances -1 ¤Ä¤Î¼Â¥æ¡¼¥¶ ID ¤ËÂФ·¤ÆÀ¸À®¤Ç¤­¤ë -inotify ¥¤¥ó¥¹¥¿¥ó¥¹¤Î¿ô¤Î¾å¸Â¤ò»ØÄꤹ¤ë¡£ +1 つの実ユーザ ID に対して生成できる +inotify インスタンスの数の上限を指定する。 .TP .I /proc/sys/fs/inotify/max_user_watches -ºîÀ®²Äǽ¤Ê´Æ»ëÂоݤοô¤Î¼Â UID ñ°Ì¤Î¾å¸Â¤ò»ØÄꤹ¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -inotify ¤Ï 2.6.13 ¤Î Linux ¥«¡¼¥Í¥ë¤ËÁȹþ¤Þ¤ì¤¿¡£ -¤³¤ì¤ËɬÍפʥ饤¥Ö¥é¥ê¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¡¢ -glibc ¤Î¥Ð¡¼¥¸¥ç¥ó 2.4 ¤ËÄɲ䵤줿 +作成可能な監視対象の数の実 UID 単位の上限を指定する。 +.SH バージョン +inotify は 2.6.13 の Linux カーネルに組込まれた。 +これに必要なライブラリのインターフェースは、 +glibc のバージョン 2.4 に追加された .RB ( IN_DONT_FOLLOW , .BR IN_MASK_ADD , .B IN_ONLYDIR -¤À¤±¤Ï¥Ð¡¼¥¸¥ç¥ó 2.5 ¤ÇÄɲ䵤줿)¡£ -.SH ½àµò -inotify API ¤Ï Linux Æȼ«¤Î¤â¤Î¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -inotify ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï +だけはバージョン 2.5 で追加された)。 +.SH 準拠 +inotify API は Linux 独自のものである。 +.SH 注意 +inotify ファイルディスクリプタは .BR select (2), .BR poll (2), .BR epoll (7) -¤ò»È¤Ã¤Æ´Æ»ë¤Ç¤­¤ë¡£ -¥¤¥Ù¥ó¥È¤¬¤¢¤ë¾ì¹ç¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÆɤ߹þ¤ß²Äǽ¤ÈÄÌÃΤ¹¤ë¡£ +を使って監視できる。 +イベントがある場合、ファイルディスクリプタは読み込み可能と通知する。 -Linux 2.6.25 °Ê¹ß¤Ç¤Ï¡¢¥·¥°¥Ê¥ë¶îÆ° (signal-driven) I/O ¤ÎÄÌÃΤ¬ -inotify ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤Ä¤¤¤ÆÍøÍѲÄǽ¤Ç¤¢¤ë¡£ +Linux 2.6.25 以降では、シグナル駆動 (signal-driven) I/O の通知が +inotify ファイルディスクリプタについて利用可能である。 .BR fcntl (2) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë +に書かれている .RB ( O_ASYNC -¥Õ¥é¥°¤òÀßÄꤹ¤ë¤¿¤á¤Î) +フラグを設定するための) .BR F_SETFL , .BR F_SETOWN , .B F_SETSIG -¤ÎµÄÏÀ¤ò»²¾È¤Î¤³¤È¡£ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ËÅϤµ¤ì¤ë +の議論を参照のこと。 +シグナルハンドラに渡される .I siginfo_t -¹½Â¤ÂΤϡ¢°Ê²¼¤Î¥Õ¥£¡¼¥ë¥É¤¬ÀßÄꤵ¤ì¤ë +構造体は、以下のフィールドが設定される .RI ( siginfo_t -¤Ï +は .BR sigaction (2) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë)¡£ +で説明されている)。 .I si_fd -¤Ë¤Ï inotify ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿Èֹ椬¡¢ +には inotify ファイルディスクリプタ番号が、 .I si_signo -¤Ë¤Ï¥·¥°¥Ê¥ëÈֹ椬¡¢ +にはシグナル番号が、 .I si_code -¤Ë¤Ï +には .BR POLL_IN -¤¬¡¢ +が、 .I si_band -¤Ë¤Ï +には .B POLLIN -¤¬ÀßÄꤵ¤ì¤ë¡£ +が設定される。 -inotify ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ -Ϣ³¤·¤ÆÀ¸À®¤µ¤ì¤ë½ÐÎÏ inotify ¥¤¥Ù¥ó¥È¤¬Æ±°ì¤Î¾ì¹ç +inotify ファイルディスクリプタに対して +連続して生成される出力 inotify イベントが同一の場合 .RI ( wd , .IR mask , .IR cookie , .I name -¤¬Åù¤·¤¤¾ì¹ç)¡¢ -Á°¤Î¥¤¥Ù¥ó¥È¤¬¤Þ¤ÀÆɤ߹þ¤Þ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ -Ϣ³¤¹¤ë¥¤¥Ù¥ó¥È¤¬ 1 ¤Ä¤Î¥¤¥Ù¥ó¥È¤Ë¤Þ¤È¤á¤é¤ì¤ë -(¤¿¤À¤·¡Ö¥Ð¥°¡×¤ÎÀá¤â»²¾È¤Î¤³¤È)¡£ +が等しい場合)、 +前のイベントがまだ読み込まれていなければ、 +連続するイベントが 1 つのイベントにまとめられる +(ただし「バグ」の節も参照のこと)。 -inotify ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÆɤ߹þ¤ß¤ÇÊÖ¤µ¤ì¤ë¥¤¥Ù¥ó¥È¤Ï¡¢ -½ç½øÉÕ¤±¤é¤ì¤¿¥­¥å¡¼¤Ë¤Ê¤ë¡£ -½¾¤Ã¤Æ¡¢¤¿¤È¤¨¤Ð¡¢¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î̾Á°¤òÊ̤Î̾Á°¤ËÊѹ¹¤·¤¿¾ì¹ç¡¢ -inotify ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤Ä¤¤¤Æ¤ÎÀµ¤·¤¤½çÈÖ¤Ç -¥¤¥Ù¥ó¥È¤¬À¸À®¤µ¤ì¤ë¤³¤È¤¬Êݾڤµ¤ì¤ë¡£ +inotify ファイルディスクリプタの読み込みで返されるイベントは、 +順序付けられたキューになる。 +従って、たとえば、あるディレクトリの名前を別の名前に変更した場合、 +inotify ファイルディスクリプタについての正しい順番で +イベントが生成されることが保証される。 .B FIONREAD .BR ioctl (2) -¤Ï inotify ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤é²¿¥Ð¥¤¥ÈÆɤ߹þ¤á¤ë¤«¤òÊÖ¤¹¡£ +は inotify ファイルディスクリプタから何バイト読み込めるかを返す。 -inotify ¤Ë¤è¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î´Æ»ë¤ÏºÆµ¢Åª¤Ë¹Ô¤ï¤ì¤Ê¤¤: -¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ò´Æ»ë¤¹¤ë¾ì¹ç¡¢ -´Æ»ëÂоݤòÄɲäǺîÀ®¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH ¥Ð¥° -2.6.16 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï +inotify によるディレクトリの監視は再帰的に行われない: +あるディレクトリ以下のサブディレクトリを監視する場合、 +監視対象を追加で作成しなければならない。 +.SH バグ +2.6.16 以前のカーネルでは .B IN_ONESHOT .I mask -¥Õ¥é¥°¤¬Æ¯¤«¤Ê¤¤¡£ +フラグが働かない。 -¥«¡¼¥Í¥ë 2.6.25 ¤è¤êÁ°¤Ç¤Ï¡¢ -Ϣ³¤¹¤ëƱ°ì¤Î¥¤¥Ù¥ó¥È¤ò°ì¤Ä¤Ë¤Þ¤È¤á¤ë¤³¤È¤ò°Õ¿Þ¤·¤¿¥³¡¼¥É -(¸Å¤¤Êý¤Î¥¤¥Ù¥ó¥È¤¬¤Þ¤ÀÆɤ߹þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¡¢ -ºÇ¿·¤Î 2 ¤Ä¤Î¥¤¥Ù¥ó¥È¤ò°ì¤Ä¤Ë¤Þ¤È¤á¤é¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë) ¤¬¡¢ -ºÇ¿·¤Î¥¤¥Ù¥ó¥È¤¬¡ÖºÇ¤â¸Å¤¤¡×Æɤ߹þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¥¤¥Ù¥ó¥È¤È¤Þ¤È¤á¤é¤ì¤ë¤« -¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +カーネル 2.6.25 より前では、 +連続する同一のイベントを一つにまとめることを意図したコード +(古い方のイベントがまだ読み込まれていない場合に、 +最新の 2 つのイベントを一つにまとめられる可能性がある) が、 +最新のイベントが「最も古い」読み込まれていないイベントとまとめられるか +をチェックするようになっていた。 +.SH 関連項目 .BR inotify_add_watch (2), .BR inotify_init (2), .BR inotify_init1 (2), diff --git a/release/man7/intro.7 b/release/man7/intro.7 index a8fca0d5..525976ef 100644 --- a/release/man7/intro.7 +++ b/release/man7/intro.7 @@ -31,15 +31,15 @@ .\" Updated 2005-12-05, Akihiro MOTOKI, Catch up to LDP man-pages 2.16 .\" .TH INTRO 7 2007-10-23 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -intro \- ³µÍס¢´·½¬¤ä¤½¤Î¾¤ÎÀâÌÀ -.SH ÀâÌÀ -¥Þ¥Ë¥å¥¢¥ë¤Î 7 ¾Ï¤Ë¤ÏÍÍ¡¹¤Ê»öÊÁ¤Î³µÍפ¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ -½¬´·¡¢¥×¥í¥È¥³¥ë¡¢Ê¸»ú½¸¹ç¤Îµ¬³Ê¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¹½À®¡¢ -¤½¤Î¾¤Î»¨Â¿¤Ê¤³¤È¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤ë¡£ -.SH È÷¹Í -.SS Ãø¼Ô¤ÈÃøºî¸¢ -Ãø¼Ô¤ÈÃøºî¸¢(copyright)¤Ë´Ø¤·¤Æ¤Ï³Æ¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤Î¥½¡¼¥¹¤Î¥Ø¥Ã¥À¤ò¸«¤ë¤³¤È¡£ -¤³¤ì¤é¤Ï¥Ú¡¼¥¸¤´¤È¤Ë°Û¤Ã¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +.SH 名前 +intro \- 概要、慣習やその他の説明 +.SH 説明 +マニュアルの 7 章には様々な事柄の概要が書かれている。 +習慣、プロトコル、文字集合の規格、ファイルシステムの構成、 +その他の雑多なことについて説明している。 +.SH 備考 +.SS 著者と著作権 +著者と著作権(copyright)に関しては各マニュアル・ページのソースのヘッダを見ること。 +これらはページごとに異っている。 +.SH 関連項目 .BR standards (7) diff --git a/release/man7/ip.7 b/release/man7/ip.7 index b0063ddb..569b878c 100644 --- a/release/man7/ip.7 +++ b/release/man7/ip.7 @@ -19,113 +19,113 @@ .\" Updated 2007-05-28, Akihiro MOTOKI , LDP v2.48 .\" Updated 2008-12-26, Akihiro MOTOKI , LDP v3.14 .\" -.\"WORD ancillary message Êä½õ¥á¥Ã¥»¡¼¥¸ -.\"WORD ... oriented ¡Á»Ø¸þ¤Î -.\"WORD capability ¸¢¸Â -.\"WORD payload ¥Ú¥¤¥í¡¼¥É -.\"WORD drop(ped) (¥Ñ¥±¥Ã¥È¤ò) Íî¤È¤¹¡¢(¼õÆ°¤Î¾ì¹ç) ÅþÃ夷¤Ê¤¤ -.\"WORD tap ¥¿¥Ã¥×(¤¹¤ë) +.\"WORD ancillary message 補助メッセージ +.\"WORD ... oriented 〜指向の +.\"WORD capability 権限 +.\"WORD payload ペイロード +.\"WORD drop(ped) (パケットを) 落とす、(受動の場合) 到着しない +.\"WORD tap タップ(する) .\" .TH IP 7 2009-02-28 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -ip \- Linux IPv4 ¥×¥í¥È¥³¥ë¤Î¼ÂÁõ -.SH ½ñ¼° +.SH 名前 +ip \- Linux IPv4 プロトコルの実装 +.SH 書式 .B #include .br .\" .B #include -- does not exist anymore .\" .B #include -- never include .B #include .br -.B #include \fR/* ¾åµ­¤Î¥¹¡¼¥Ñ¡¼¥»¥Ã¥È */ +.B #include \fR/* 上記のスーパーセット */ .sp .IB tcp_socket " = socket(AF_INET, SOCK_STREAM, 0);" .br .IB udp_socket " = socket(AF_INET, SOCK_DGRAM, 0);" .br .IB raw_socket " = socket(AF_INET, SOCK_RAW, " protocol ");" -.SH ÀâÌÀ -Linux ¤Ï RFC\ 791 ¤È RFC\ 1122 ¤Çµ­½Ò¤µ¤ì¤Æ¤¤¤ë -Internet Protocol, version 4 ¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¡£ +.SH 説明 +Linux は RFC\ 791 と RFC\ 1122 で記述されている +Internet Protocol, version 4 を実装している。 .B ip -¤Ë¤Ï RFC\ 1112 ¤Ë½àµò¤·¤¿ level 2 ¥Þ¥ë¥Á¥­¥ã¥¹¥È¤Î¼ÂÁõ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -¤Þ¤¿¥Ñ¥±¥Ã¥È¥Õ¥£¥ë¥¿µ¡Ç½¤ò´Þ¤à IP ¥ë¡¼¥¿¡¼¤â¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +には RFC\ 1112 に準拠した level 2 マルチキャストの実装が含まれている。 +またパケットフィルタ機能を含む IP ルーターも実装されている。 .\" FIXME has someone verified that 2.1 is really 1812 compliant? .PP -¥×¥í¥°¥é¥ß¥ó¥°¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï BSD ¥½¥±¥Ã¥È¤È¸ß´¹¤Ç¤¢¤ë¡£ -¥½¥±¥Ã¥È¤Ë´Ø¤¹¤ë¤è¤ê¾ÜºÙ¤Ê¾ðÊó¤Ï +プログラミング・インターフェースは BSD ソケットと互換である。 +ソケットに関するより詳細な情報は .BR socket (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -IP ¥½¥±¥Ã¥È¤Ï¡¢ +IP ソケットは、 .BR socket (2) -´Ø¿ô¤ò +関数を .B "socket(AF_INET, socket_type, protocol)" -¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤¹¤³¤È¤ÇÀ¸À®¤µ¤ì¤ë¡£ -»ØÄê¤Ç¤­¤ë¥½¥±¥Ã¥È¥¿¥¤¥×¤Ï 3 ¤Ä¤¢¤ê¡¢ +のように呼び出すことで生成される。 +指定できるソケットタイプは 3 つあり、 .BR tcp (7) -¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤¹¤ë¾ì¹ç -.BR SOCK_STREAM ¡¢ +ソケットをオープンする場合 +.BR SOCK_STREAM 、 .BR udp (7) -¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤¹¤ë¾ì¹ç -.BR SOCK_DGRAM ¡¢ -IP ¥×¥í¥È¥³¥ë¤ËľÀÜ¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Ë +ソケットをオープンする場合 +.BR SOCK_DGRAM 、 +IP プロトコルに直接アクセスするために .BR raw (7) -¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤¹¤ë¾ì¹ç¤Ë¤Ï +ソケットをオープンする場合には .B SOCK_RAW -¤Ç¤¢¤ë¡£ +である。 .I protocol -¤ÏÁ÷¼õ¿®¤µ¤ì¤ë IP ¥Ø¥Ã¥À¤Ë½ñ¤«¤ì¤ë IP ¥×¥í¥È¥³¥ë¤Ç¤¢¤ë¡£ -»ØÄê¤Ç¤­¤ëÃͤϡ¢ -TCP ¥½¥±¥Ã¥È¤Ë¤Ï 0 ¤« -.BR IPPROTO_TCP ¡¢ -UDP ¥½¥±¥Ã¥È¤Ë¤Ï 0 ¤« +は送受信される IP ヘッダに書かれる IP プロトコルである。 +指定できる値は、 +TCP ソケットには 0 か +.BR IPPROTO_TCP 、 +UDP ソケットには 0 か .B IPPROTO_UDP -¤Ë¸Â¤é¤ì¤ë¡£ +に限られる。 .B SOCK_RAW -¤ËÂФ·¤Æ¤Ï¡¢ RFC\ 1700 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëÍ­¸ú¤Ê IANA IP ¥×¥í¥È¥³¥ë¤ò¡¢ -³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ëÈÖ¹æ¤Ç»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +に対しては、 RFC\ 1700 で定義されている有効な IANA IP プロトコルを、 +割り当てられている番号で指定することができる。 .PP .\" FIXME ip current does an autobind in listen, but I'm not sure .\" if that should be documented. -¤¢¤ë¥×¥í¥»¥¹¤Ç¡¢¤ä¤Ã¤Æ¤¯¤ë¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤·¤¿¤ê -ÀܳÍ×µá¤ò¼õ¤±¤¿¤ê¤·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ -¤½¤Î¥×¥í¥»¥¹¤Ï¥í¡¼¥«¥ë¤Ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹¤Ë¡¢ +あるプロセスで、やってくるパケットを受信したり +接続要求を受けたりしたい場合には、 +そのプロセスはローカルなインターフェースアドレスに、 .BR bind (2) -¤òÍѤ¤¤Æ¥½¥±¥Ã¥È¤ò¥Ð¥¤¥ó¥É¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤¢¤ë¥í¡¼¥«¥ë¤Ê¡Ö¥¢¥É¥ì¥¹¤È¥Ý¡¼¥È¡×¤Î¥Ú¥¢¤ËÂФ·¤Æ¥Ð¥¤¥ó¥É¤Ç¤­¤ë -IP ¥½¥±¥Ã¥È¤Ï°ì¤Ä¤Ë¸Â¤é¤ì¤ë¡£ +を用いてソケットをバインドしなければならない。 +あるローカルな「アドレスとポート」のペアに対してバインドできる +IP ソケットは一つに限られる。 .BR bind (2) -¤Î¸Æ¤Ó½Ð¤·¤Ç +の呼び出しで .B INADDR_ANY -¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ï¡¢¥½¥±¥Ã¥È¤Ï¥í¡¼¥«¥ë¤Ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î -\fI¤¹¤Ù¤Æ\fP¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¤ë¡£ +が指定されていた場合は、ソケットはローカルなインターフェースの +\fIすべて\fPにバインドされる。 .BR listen (2) -¤Þ¤¿¤Ï +または .BR connect (2) -¤¬¥Ð¥¤¥ó¥É¤µ¤ì¤Æ¤¤¤Ê¤¤¥½¥±¥Ã¥È¤Ç¥³¡¼¥ë¤µ¤ì¤ë¤È¡¢ -¤½¤Î¥½¥±¥Ã¥È¤Ï¼«Æ°Åª¤Ë¥í¡¼¥«¥ë¤Ê¥¢¥É¥ì¥¹¤ò +がバインドされていないソケットでコールされると、 +そのソケットは自動的にローカルなアドレスを .B INADDR_ANY -¤Ë¥»¥Ã¥È¤·¡¢¶õ¤¤¤Æ¤¤¤ë¥Ý¡¼¥È¤ò¥é¥ó¥À¥à¤ËÁª¤ó¤Ç¥Ð¥¤¥ó¥É¤¹¤ë¡£ +にセットし、空いているポートをランダムに選んでバインドする。 .B SO_REUSEADDR -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ -¥Ð¥¤¥ó¥É¤µ¤ì¤Æ¤¤¤¿ TCP ¥í¡¼¥«¥ë¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Ï -¥¯¥í¡¼¥º¤µ¤ì¤¿¸å¤·¤Ð¤é¤¯¤Î´Ö»È¤¨¤Ê¤¯¤Ê¤ë¡£ +フラグがセットされていない場合には、 +バインドされていた TCP ローカルソケットアドレスは +クローズされた後しばらくの間使えなくなる。 .B SO_REUSEADDR -¥Õ¥é¥°¤ò»È¤¦¤È TCP ¤Î¿®ÍêÀ­¤òÄã²¼¤µ¤»¤ë¤Î¤Ç¡¢ -»È¤¦¤È¤­¤Ë¤ÏÃí°Õ¤¬É¬ÍפǤ¢¤ë¡£ -.SS ¥¢¥É¥ì¥¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È -IP ¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Ï¡¢ IP ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹¤È -16¥Ó¥Ã¥È¤Î¥Ý¡¼¥ÈÈÖ¹æ¤ÎÁȤ߹ç¤ï¤»¤ÇÄêµÁ¤µ¤ì¤ë¡£ -IP ¥×¥í¥È¥³¥ë¤½¤Î¤â¤Î¤Ï¥Ý¡¼¥ÈÈÖ¹æ¤ò°·¤ï¤Ê¤¤¡£ -¥Ý¡¼¥ÈÈÖ¹æ¤Ï¡¢ +フラグを使うと TCP の信頼性を低下させるので、 +使うときには注意が必要である。 +.SS アドレスのフォーマット +IP ソケットアドレスは、 IP インターフェースアドレスと +16ビットのポート番号の組み合わせで定義される。 +IP プロトコルそのものはポート番号を扱わない。 +ポート番号は、 .BR udp (7) -¤ä +や .BR tcp (7) -¤È¤¤¤Ã¤¿¡¢¾å°Ì¤Î¥×¥í¥È¥³¥ë¤Ç¼ÂÁõ¤µ¤ì¤ë¡£ -raw ¥½¥±¥Ã¥È¤Ç¤Ï¡¢ +といった、上位のプロトコルで実装される。 +raw ソケットでは、 .I sin_port -¤¬ IP ¥×¥í¥È¥³¥ë¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ +が IP プロトコルにセットされる。 .PP .in +4n .nf @@ -143,101 +143,101 @@ struct in_addr { .in .PP .I sin_familiy -¤Ë¤Ï¾ï¤Ë +には常に .B AF_INET -¤ò¥»¥Ã¥È¤¹¤ë¡£¤³¤ì¤Ïɬ¿Ü¤Ç¤¢¤ë¡£ Linux 2.2 ¤Ç¤Ï¡¢¤³¤Î¥»¥Ã¥È¤ò˺¤ì¤ë¤È -¤Û¤È¤ó¤É¤Î¥Í¥Ã¥È¥ï¡¼¥¯´Ø¿ô¤Ï +をセットする。これは必須である。 Linux 2.2 では、このセットを忘れると +ほとんどのネットワーク関数は .B EINVAL -¤òÊÖ¤¹¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +を返すようになっている。 .I sin_port -¤Ë¤Ï¥Ý¡¼¥ÈÈÖ¹æ¤ò¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Ç»ØÄꤹ¤ë¡£ -1024 ̤Ëþ¤Î¥Ý¡¼¥ÈÈÖ¹æ¤Ï -.I "Æø¢¥Ý¡¼¥È (privileged ports)" -¤È¸Æ¤Ð¤ì¤ë -.RI ( "ͽÌó¥Ý¡¼¥È (reserved ports)" -¤È¤â»þ¡¹¸Æ¤Ð¤ì¤ë)¡£ -Æø¢¥×¥í¥»¥¹ +にはポート番号をネットワークバイトオーダーで指定する。 +1024 未満のポート番号は +.I "特権ポート (privileged ports)" +と呼ばれる +.RI ( "予約ポート (reserved ports)" +とも時々呼ばれる)。 +特権プロセス .RB ( CAP_NET_BIND_SERVICE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹) °Ê³°¤Î¥×¥í¥»¥¹¤Ï¡¢¤³¤ì¤é¤Î¥Ý¡¼¥È¤Ë¤Ï +ケーパビリティを持つプロセス) 以外のプロセスは、これらのポートには .BR bind (2) -¤Ç¤­¤Ê¤¤¡£ IPv4 ¥×¥í¥È¥³¥ë¤½¤Î¤â¤Î¤Ë¤Ï¥Ý¡¼¥È¤Ë´Ø¤¹¤ë³µÇ°¤¬¤Ê¤¤¡£ -¥Ý¡¼¥È¤Ï¡¢ +できない。 IPv4 プロトコルそのものにはポートに関する概念がない。 +ポートは、 .BR tcp (7) -¤ä +や .BR udp (7) -¤È¤¤¤Ã¤¿¡¢¾å°Ì¤Î¥×¥í¥È¥³¥ë¤Ë¤ª¤¤¤Æ¼ÂÁõ¤µ¤ì¤ë¡£ +といった、上位のプロトコルにおいて実装される。 .PP .I sin_addr -¤Ï IP ¥Û¥¹¥È¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +は IP ホストアドレスである。 .I struct in_addr -¤Î +の .I s_addr -¥á¥ó¥Ð¤Ë¤Ï¡¢¥Û¥¹¥È¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹¤ò -¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Ç»ØÄꤹ¤ë¡£ +メンバには、ホストのインターフェースアドレスを +ネットワークバイトオーダーで指定する。 .I in_addr -¤Ï¡¢INADDR_* ¤Î°ì¤Ä (Î㤨¤Ð +は、INADDR_* の一つ (例えば .BR INADDR_ANY ) -¤òÂåÆþ¤¹¤ë¡¢ -¥é¥¤¥Ö¥é¥ê´Ø¿ô +を代入する、 +ライブラリ関数 .BR inet_aton (3), .BR inet_addr (3), .BR inet_makeaddr (3) -¤òÍѤ¤¤ë¡¢¤¢¤ë¤¤¤Ï̾Á°²ò·èµ¡¹½ (name resolver) -¤òľÀÜÍѤ¤¤ë¡¢¤Î¤É¤ì¤«¤ÇÀßÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£ +を用いる、あるいは名前解決機構 (name resolver) +を直接用いる、のどれかで設定すべきである。 .RB ( gethostbyname (3) -¤ò¸«¤è)¡£ +を見よ)。 -IPv4 ¥¢¥É¥ì¥¹¤Ë¤Ï¡¢¥æ¥Ë¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¡¢ -¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¡¢¥Þ¥ë¥Á¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤¬¤¢¤ë¡£ -¥æ¥Ë¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤Ï¡¢¤¢¤ë¥Û¥¹¥È¤Î°ì¤Ä¤Î¥¢¥É¥ì¥¹¤ò»ØÄꤹ¤ë¡£ -¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤Ï¡¢¤¢¤ë¥Í¥Ã¥È¥ï¡¼¥¯¾å¤ÎÁ´¤Æ¤Î¥Û¥¹¥È¤ò»ØÄꤹ¤ë¡£ -¥Þ¥ë¥Á¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤Ï¡¢¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¤Ë½ê°¤¹¤ë -Á´¤Æ¤Î¥Û¥¹¥È¤ò»ØÄꤹ¤ë¡£¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤Ø¤Î¥Ç¡¼¥¿¥°¥é¥à¤Ï¡¢ +IPv4 アドレスには、ユニキャストアドレス、 +ブロードキャストアドレス、マルチキャストアドレスがある。 +ユニキャストアドレスは、あるホストの一つのアドレスを指定する。 +ブロードキャストアドレスは、あるネットワーク上の全てのホストを指定する。 +マルチキャストアドレスは、マルチキャストグループに所属する +全てのホストを指定する。ブロードキャストアドレスへのデータグラムは、 .B SO_BROADCAST -¥½¥±¥Ã¥È¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤ÈÁ÷¿®¡¦¼õ¿®¤Ç¤­¤Ê¤¤¡£ -¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¡¢Àܳ»Ø¸þ¤Î¥½¥±¥Ã¥È¤Ë¤Ï¥æ¥Ë¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤·¤«»È¤¨¤Ê¤¤¡£ +ソケットフラグがセットされていないと送信・受信できない。 +現在の実装では、接続指向のソケットにはユニキャストアドレスしか使えない。 .\" Leave a loophole for XTP @) -¥¢¥É¥ì¥¹¤È¥Ý¡¼¥È¤Ï¾ï¤Ë¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Ç³ÊǼ¤µ¤ì¤ë¤³¤È¤ËÃí°Õ¤»¤è¡£ -¶ñÂÎŪ¤Ë¤Ï¡¢¥Ý¡¼¥È¤ò»ØÄꤹ¤ë¿ôÃÍ¤Ë¤Ï +アドレスとポートは常にネットワークバイトオーダーで格納されることに注意せよ。 +具体的には、ポートを指定する数値には .BR htons (3) -¤ò¸Æ¤Ó½Ð¤¹É¬Íפ¬¤¢¤ë¡£ -ɸ½à¥é¥¤¥Ö¥é¥ê¤Ë¤¢¤ë¥¢¥É¥ì¥¹/¥Ý¡¼¥ÈÁàºî´Ø¿ô¤Ï -¤¹¤Ù¤Æ¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤ÇÆ°ºî¤¹¤ë¡£ +を呼び出す必要がある。 +標準ライブラリにあるアドレス/ポート操作関数は +すべてネットワークバイトオーダーで動作する。 -ÆÃÊ̤ʥ¢¥É¥ì¥¹¤¬¤¤¤¯¤Ä¤«Â¸ºß¤¹¤ë: +特別なアドレスがいくつか存在する: .TP .BR INADDR_LOOPBACK (127.0.0.1) -loopback ¥Ç¥Ð¥¤¥¹¤òÄ̤·¤Æ¾ï¤Ë¥í¡¼¥«¥ë¤Ê¥Û¥¹¥È¤ò»²¾È¤¹¤ë¡£ +loopback デバイスを通して常にローカルなホストを参照する。 .TP .BR INADDR_ANY (0.0.0.0) -¥Ð¥¤¥ó¥É¤ËÍѤ¤¤ëǤ°Õ¤Î¥¢¥É¥ì¥¹¡£ +バインドに用いる任意のアドレス。 .TP .BR INADDR_BROADCAST (255.255.255.255) -Ǥ°Õ¤Î¥Û¥¹¥È¡£Îò»ËŪÍýͳ¤«¤é¡¢¥Ð¥¤¥ó¥É¤ÎºÝ¤Ë¤Ï +任意のホスト。歴史的理由から、バインドの際には .B INADDR_ANY -¤ÈƱ¤¸¸ú²Ì¤Ë¤Ê¤ë¡£ -.SS ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó -IP ¤Ë¤Ï¥×¥í¥È¥³¥ë¸ÇÍ­¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬¤¤¤¯¤Ä¤«Â¸ºß¤·¡¢ +と同じ効果になる。 +.SS ソケットオプション +IP にはプロトコル固有のソケットオプションがいくつか存在し、 .BR setsockopt (2) -¤ÇÀßÄ꤬¡¢ +で設定が、 .BR getsockopt (2) -¤Ç¼èÆÀ¤¬¤Ç¤­¤ë¡£ IP ¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¥ì¥Ù¥ë¤Ï +で取得ができる。 IP のソケットオプションレベルは .B IPPROTO_IP -.\" Linux ¤Ç¤Ï SOL_IP ¤â²Ä -¤Ç¤¢¤ë¡£ -¥Ö¡¼¥ëÀ°¿ôÃͤΥե饰¤Ç¤Ï¡¢ 0 ¤Ïµ¶¡¢¤½¤ì°Ê³°¤Ï¿¿¤ò°ÕÌ£¤¹¤ë¡£ +.\" Linux では SOL_IP も可 +である。 +ブール整数値のフラグでは、 0 は偽、それ以外は真を意味する。 .\" .\" FIXME Document IP_FREEBIND .\" Boolean .\" Since Linux 2.4.0-test10 .\" .TP -.BR IP_ADD_MEMBERSHIP " (Linux 1.2 °Ê¹ß)" -¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¤Ë»²²Ã¤¹¤ë¡£ -°ú¤­¿ô¤Ï +.BR IP_ADD_MEMBERSHIP " (Linux 1.2 以降)" +マルチキャストグループに参加する。 +引き数は .I ip_mreqn -¹½Â¤ÂΤǤ¢¤ë¡£ +構造体である。 .sp .in +4n .nf @@ -252,222 +252,222 @@ struct ip_mreqn { .in .sp .I imr_multiaddr -¤Ë¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬»²²Ã¤Þ¤¿¤ÏűÂष¤¿¤¤ -¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¤Î¥¢¥É¥ì¥¹¤¬Æþ¤ë¡£ -»ØÄꤹ¤ë¥¢¥É¥ì¥¹¤ÏÍ­¸ú¤Ê¥Þ¥ë¥Á¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -.\" (¤Ä¤Þ¤ê¡¢224.0.0.0-239.255.255.255 ¤ÎÈÏ°ÏÆâ) -(¤µ¤â¤Ê¤±¤ì¤Ð +には、アプリケーションが参加または撤退したい +マルチキャストグループのアドレスが入る。 +指定するアドレスは有効なマルチキャストアドレスでなければならない +.\" (つまり、224.0.0.0-239.255.255.255 の範囲内) +(さもなければ .BR setsockopt (2) -¤¬¥¨¥é¡¼ +がエラー .B EINVAL -¤Ç¼ºÇÔ¤¹¤ë)¡£ +で失敗する)。 .I imr_address -¤Ï¥·¥¹¥Æ¥à¤¬¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¤Ë»²²Ã¤¹¤ëºÝ¤ËÍѤ¤¤ë -¥í¡¼¥«¥ë¤Ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ -¤³¤ì¤¬ +はシステムがマルチキャストグループに参加する際に用いる +ローカルなインターフェースのアドレスである。 +これが .B INADDR_ANY -¤Ç¤¢¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢Å¬Àڤʥ¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤ÆÁªÂò¤µ¤ì¤ë¡£ +であった場合には、適切なインターフェースがシステムによって選択される。 .I imr_ifindex -¤Ï +は .I imr_multiaddr -¥°¥ë¡¼¥×¤Ë»²²Ã/űÂह¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î interface index ¤Ç¤¢¤ë¡£ -¤É¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤â¤è¤¤¾ì¹ç¤Ï 0 ¤Ë¤¹¤ë¡£ +グループに参加/撤退するインターフェースの interface index である。 +どのインターフェースでもよい場合は 0 にする。 .IP .I ip_mreqn -¤Ï Linux 2.2 °Ê¹ß¤Ç¤Î¤ßÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -¸ß´¹À­¤Î¤¿¤á¡¢¸Å¤¤ +は Linux 2.2 以降でのみ利用可能である。 +互換性のため、古い .I ip_mreq -¹½Â¤ÂÎ (Linux 1.2 °Ê¹ß¤Ç¸ºß¤¹¤ë) ¤â¤Þ¤À¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +構造体 (Linux 1.2 以降で存在する) もまだサポートされている。 .I ip_mreqn -¤È¤Î°ã¤¤¤Ï¡¢ +との違いは、 .I imr_ifindex -¥Õ¥£¡¼¥ë¥É¤ò´Þ¤Þ¤Ê¤¤¤³¤È¤À¤±¤Ç¤¢¤ë¡£ +フィールドを含まないことだけである。 .BR setsockopt (2) -¤Ç¤Î¤ß»È¤¨¤ë¡£ +でのみ使える。 .\" .TP -.BR IP_DROP_MEMBERSHIP " (Linux 1.2 °Ê¹ß)" -¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¤«¤éÈ´¤±¤ë¡£°ú¤­¿ô¤Ï +.BR IP_DROP_MEMBERSHIP " (Linux 1.2 以降)" +マルチキャストグループから抜ける。引き数は .B IP_ADD_MEMBERSHIP -¤ÈƱÍÍ¤Ë +と同様に .I ip_mreqn -¤Þ¤¿¤Ï +または .I ip_mreq -¹½Â¤ÂΤǤ¢¤ë¡£ +構造体である。 .TP -.BR IP_HDRINCL " (Linux 2.0 °Ê¹ß)" -Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢¥æ¡¼¥¶¤Ï IP ¥Ø¥Ã¥À¤ò¥æ¡¼¥¶¡¼¥Ç¡¼¥¿¤ÎÁ°¤ËÍ¿¤¨¤ë¡£ +.BR IP_HDRINCL " (Linux 2.0 以降)" +有効になっていると、ユーザは IP ヘッダをユーザーデータの前に与える。 .B SOCK_RAW -¥½¥±¥Ã¥È¤Ç¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£¾ÜºÙ¤Ï +ソケットでのみ有効である。詳細は .BR raw (7) -¤ò¸«¤è¡£¤³¤Î¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢ +を見よ。このフラグが有効になっていると、 .BR IP_OPTIONS , .BR IP_TTL , .B IP_TOS -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\" FIXME Document IP_IPSEC_POLICY .\" Since Linux 2.5.47 .\" Needs CAP_NET_ADMIN .TP -.BR IP_MTU " (Linux 2.2 °Ê¹ß)" +.BR IP_MTU " (Linux 2.2 以降)" .\" Precisely: 2.1.124 -¥½¥±¥Ã¥È¤Î¡¢´ûÃΤΠpath MTU ¤ò¼èÆÀ¤¹¤ë¡£ -¥½¥±¥Ã¥È¤¬Àܳ¤·¤Æ¤¤¤ë¾ì¹ç¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£ +ソケットの、既知の path MTU を取得する。 +ソケットが接続している場合のみ有効である。 .BR getsockopt (2) -¤Ç¤Î¤ß»È¤¨¤ë¡£ +でのみ使える。 .TP -.BR IP_MTU_DISCOVER " (Linux 2.2 °Ê¹ß)" +.BR IP_MTU_DISCOVER " (Linux 2.2 以降)" .\" Precisely: 2.1.124 -¥½¥±¥Ã¥È¤Î Path MTU Discovery ¤ÎÀßÄê¤ò¥»¥Ã¥È¡¦¼èÆÀ¤¹¤ë¡£ -Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢ Linux ¤Ï¤³¤Î¥½¥±¥Ã¥È¤ËÂФ·¤Æ -RFC\ 1191 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë Path MTU Discovery ¤ò¹Ô¤¦¡£ -ȯ¿®¥Ç¡¼¥¿¥°¥é¥à¤Ë¤Ï¡¢Á´¤Æ¡Ö¥Õ¥é¥°¥á¥ó¥ÈÉÔµö²Ä¡×¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ -¥·¥¹¥Æ¥àÁ´ÂΤËÂФ¹¤ë¥Ç¥Õ¥©¥ë¥È¤Ï¡¢ +ソケットの Path MTU Discovery の設定をセット・取得する。 +有効になっていると、 Linux はこのソケットに対して +RFC\ 1191 で定義されている Path MTU Discovery を行う。 +発信データグラムには、全て「フラグメント不許可」フラグがセットされる。 +システム全体に対するデフォルトは、 .B SOCK_STREAM -¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤Ï +ソケットに対しては .I /proc/sys/net/ipv4/ip_no_pmtu_disc -¥Õ¥¡¥¤¥ë¤Ë¤è¤êÀ©¸æ¤Ç¤­¤ë¡£ -¤½¤Î¾¤Ë¤Ä¤¤¤Æ¤Ï̵¸ú¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ +ファイルにより制御できる。 +その他については無効となっている。 .B SOCK_STREAM -¤Ç¤Ê¤¤¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤Ï¡¢ -¥æ¡¼¥¶¡¼¤¬¥Ç¡¼¥¿¤ò MTU ¤Î¥µ¥¤¥º¤Î²ô¤Ë¥Ñ¥±¥Ã¥È²½¤·¤¿¤ê¡¢ -ɬÍפʾì¹ç¤Ë¤ÏºÆÁ÷¤·¤¿¤ê¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤³¤Î¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢ -¥«¡¼¥Í¥ë¤Ï´ûÃΤΠpath MTU ¤è¤êÂ礭¤Ê¥Ñ¥±¥Ã¥È¤òµñÈݤ¹¤ë +でないソケットに対しては、 +ユーザーがデータを MTU のサイズの塊にパケット化したり、 +必要な場合には再送したりしなければならない。 +このフラグがセットされていると、 +カーネルは既知の path MTU より大きなパケットを拒否する .RB ( EMSGSIZE -¤È¤Ê¤ë)¡£ +となる)。 .TS tab(:); c l l l. -Path MTU discovery ¥Õ¥é¥°:°ÕÌ£ -IP_PMTUDISC_WANT:¥ë¡¼¥È¤´¤È¤ÎÀßÄê¤òÍѤ¤¤ë¡£ -IP_PMTUDISC_DONT:Path MTU Discovery ¤ò¹Ô¤ï¤Ê¤¤¡£ -IP_PMTUDISC_DO:¾ï¤Ë Path MTU Discovery ¤ò¹Ô¤¦¡£ -IP_PMTUDISC_PROBE:DF¥Ó¥Ã¥È¤ò¥»¥Ã¥È¤¹¤ë¤¬¡¢Path MTU ¤ò̵»ë¤¹¤ë¡£ +Path MTU discovery フラグ:意味 +IP_PMTUDISC_WANT:ルートごとの設定を用いる。 +IP_PMTUDISC_DONT:Path MTU Discovery を行わない。 +IP_PMTUDISC_DO:常に Path MTU Discovery を行う。 +IP_PMTUDISC_PROBE:DFビットをセットするが、Path MTU を無視する。 .TE -path MTU discovery ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢¥«¡¼¥Í¥ë¤Ï°¸Àè¥Û¥¹¥È¤´¤È¤Ë -¼«Æ°Åª¤Ë path MTU ¤ò½èÍý¤¹¤ë¡£ÆÃÄê¤ÎÁê¼ê¤Ë +path MTU discovery が有効になっていると、カーネルは宛先ホストごとに +自動的に path MTU を処理する。特定の相手に .BR connect (2) -¤ÇÀܳ¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ +で接続した場合には、 .B IP_MTU -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ì¤Ð¡¢´ûÃΤΠpath MTU ¤Î¼èÆÀ¤ËÊØÍø¤Ç¤¢¤ë -(¤¿¤È¤¨¤Ð +ソケットオプションを用いれば、既知の path MTU の取得に便利である +(たとえば .B EMSGSIZE -¥¨¥é¡¼¤¬µ¯¤­¤¿¸å¤Ê¤É)¡£¤³¤ì¤Ï»þ´Ö¤È¤È¤â¤ËÊѲ½¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -°¸À褬¤¿¤¯¤µ¤ó¤¢¤ë¥³¥Í¥¯¥·¥ç¥ó¥ì¥¹¤Ê¥½¥±¥Ã¥È¤Ç¤Ï¡¢ -Í¿¤¨¤é¤ì¤¿°¸Àè¤ËÂФ¹¤ë¿·¤·¤¤ MTU ¤Ë¤â¡¢ -¥¨¥é¡¼¥­¥å¡¼¤òÍѤ¤¤Æ¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë +エラーが起きた後など)。これは時間とともに変化するかもしれない。 +宛先がたくさんあるコネクションレスなソケットでは、 +与えられた宛先に対する新しい MTU にも、 +エラーキューを用いてアクセスすることができる .RB ( IP_RECVERR -¤ò¸«¤è)¡£ -MTU ¹¹¿·¤¬ÅþÃ夹¤ë¤´¤È¤Ë¡¢¿·¤¿¤Ê¥¨¥é¡¼¤¬¥­¥å¡¼¥¤¥ó¥°¤µ¤ì¤ë¡£ +を見よ)。 +MTU 更新が到着するごとに、新たなエラーがキューイングされる。 -MTU discovery ¤Î¿Ê¹ÔÃæ¤Ë¤Ï¡¢¥Ç¡¼¥¿¥°¥é¥à¥½¥±¥Ã¥È¤«¤é¤Î½é´ü¥Ñ¥±¥Ã¥È¤Ï -ÅþÃ夷¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ UDP ¤òÍѤ¤¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ -¤³¤Î¤³¤È¤òµ¤¤Ë¤«¤±¤Æ¤ª¤­¡¢ -¥Ñ¥±¥Ã¥È¤ÎºÆÁ÷¥¢¥ë¥´¥ê¥º¥à¤Ë¤³¤Îʬ¤ò½ü³°¤µ¤»¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +MTU discovery の進行中には、データグラムソケットからの初期パケットは +到着しないかもしれない。 UDP を用いるアプリケーションでは、 +このことを気にかけておき、 +パケットの再送アルゴリズムにこの分を除外させるべきである。 -Àܳ¤·¤Æ¤¤¤Ê¤¤¥½¥±¥Ã¥È¤ËÂФ·¤Æ -path MTU discovery ¥×¥í¥»¥¹¤òΩ¤Á¾å¤²¤ë¤Ë¤Ï¡¢ -Â礭¤Ê¥Ç¡¼¥¿¥°¥é¥à¥µ¥¤¥º (ºÇÂç 64K ¥Ø¥Ã¥À¥Ð¥¤¥ÈĹ) ¤«¤é¤Ï¤¸¤á¤Æ¡¢ -path MTU ¤¬¹¹¿·¤µ¤ì¤ë¤Þ¤Ç¥µ¥¤¥º¤ò½Ì¤á¤Æ¤¤¤¯¤³¤È¤â²Äǽ¤Ç¤¢¤ë¡£ +接続していないソケットに対して +path MTU discovery プロセスを立ち上げるには、 +大きなデータグラムサイズ (最大 64K ヘッダバイト長) からはじめて、 +path MTU が更新されるまでサイズを縮めていくことも可能である。 .\" FIXME this is an ugly hack -path MTU ¤ÎÃͤò¤Þ¤º¸«ÀѤâ¤Ã¤Æ¤ß¤ë¤Ë¤Ï¡¢°¸À襢¥É¥ì¥¹¤Ë +path MTU の値をまず見積もってみるには、宛先アドレスに .BR connect (2) -¤ò»È¤Ã¤Æ¥Ç¡¼¥¿¥°¥é¥à¥½¥±¥Ã¥È¤òÀܳ¤·¡¢ +を使ってデータグラムソケットを接続し、 .BR getsockopt (2) -¤ò +を .B IP_MTU -¥ª¥×¥·¥ç¥ó¤È¤È¤â¤Ë¸Æ¤Ó¡¢ MTU ¤ò¼èÆÀ¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£ +オプションとともに呼び、 MTU を取得することである。 .B IP_PMTUDISC_PROBE -(Linux 2.6.22 °Ê¹ß¤ÇÍøÍѲÄǽ) ¤òÀßÄꤹ¤ë¤³¤È¤Ç¡¢ +(Linux 2.6.22 以降で利用可能) を設定することで、 .B SOCK_DGRAM -¤ä +や .B SOCK_RAW -¤Î¥½¥±¥Ã¥È¤Ç RFC 4821 ¤Î MTU õº÷¤ò¼ÂÁõ¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£ -¤Þ¤¿¡¢¤³¤Îµ¡Ç½¤Ï¡¢ +のソケットで RFC 4821 の MTU 探索を実装することが可能である。 +また、この機能は、 .BR tracepath (8) -¤Î¤è¤¦¤Ê¿ÇÃǥġ¼¥ë¤ÇÆäËÍ­ÍѤǤ¢¤ë¡£¤³¤ì¤é¤Î¥Ä¡¼¥ë¤Ç¤Ï¡¢ -´Ñ¬¤µ¤ì¤¿ Path MTU ¤è¤ê¤âÂ礭¤Êõº÷¥Ñ¥±¥Ã¥È¤ò°Õ¿ÞŪ¤Ë -Á÷¿®¤·¤è¤¦¤È¤¹¤ë¡£ +のような診断ツールで特に有用である。これらのツールでは、 +観測された Path MTU よりも大きな探索パケットを意図的に +送信しようとする。 .TP -.BR IP_MULTICAST_IF " (Linux 1.2 °Ê¹ß)" -¥í¡¼¥«¥ë¥Ç¥Ð¥¤¥¹¤ò¥Þ¥ë¥Á¥­¥ã¥¹¥È¥½¥±¥Ã¥È¤È¤·¤ÆÀßÄꤹ¤ë¡£°ú¤­¿ô¤Ï +.BR IP_MULTICAST_IF " (Linux 1.2 以降)" +ローカルデバイスをマルチキャストソケットとして設定する。引き数は .B IP_ADD_MEMBERSHIP -¤ÈƱÍÍ¤Ë +と同様に .I ip_mreqn -¤Þ¤¿¤Ï +または .I ip_mreq -¹½Â¤ÂΤǤ¢¤ë¡£ +構造体である。 .IP -ÉÔÀµ¤Ê¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬ÅϤµ¤ì¤ë¤È¡¢ +不正なソケットオプションが渡されると、 .B ENOPROTOOPT -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .TP -.BR IP_MULTICAST_LOOP " (Linux 1.2 °Ê¹ß)" -¥Þ¥ë¥Á¥­¥ã¥¹¥È¥Ñ¥±¥Ã¥È¤ò¥í¡¼¥«¥ë¤Ê¥½¥±¥Ã¥È¤Ë¥ë¡¼¥×¥Ð¥Ã¥¯¤¹¤ë¤«¤É¤¦¤«¤ò -Äê¤á¤ë¥Ö¡¼¥ëÃͤÎÀ°¿ô°ú¤­¿ô¤òÀßÄꡦ¼èÆÀ¤¹¤ë¡£ +.BR IP_MULTICAST_LOOP " (Linux 1.2 以降)" +マルチキャストパケットをローカルなソケットにループバックするかどうかを +定めるブール値の整数引き数を設定・取得する。 .TP -.BR IP_MULTICAST_TTL " (Linux 1.2 °Ê¹ß)" -¤³¤Î¥½¥±¥Ã¥È¤«¤éȯ¿®¤µ¤ì¤ë¥Þ¥ë¥Á¥­¥ã¥¹¥È¥Ñ¥±¥Ã¥È¤Î -time-to-live ÃͤòÀßÄꡦ¼èÆÀ¤¹¤ë¡£ -¥Þ¥ë¥Á¥­¥ã¥¹¥È¥Ñ¥±¥Ã¥È¤ËÂФ·¤Æ¤Ï¡¢¤Ç¤­¤ë¤À¤±¾®¤µ¤Ê -TTL ¤ËÀßÄꤹ¤ë¤³¤È¤¬¤È¤Æ¤â½ÅÍפǤ¢¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ï 1 ¤Ç¡¢ -¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥à¤¬ÌÀ¼¨Åª¤ËÍ׵ᤷ¤Ê¤¤¸Â¤ê -¥Þ¥ë¥Á¥­¥ã¥¹¥È¥Ñ¥±¥Ã¥È¤Ï¥í¡¼¥«¥ë¤Ê¥Í¥Ã¥È¥ï¡¼¥¯¤«¤é½Ð¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¡£ -°ú¤­¿ô¤ËÀ°¿ô¤ò¼è¤ë¡£ +.BR IP_MULTICAST_TTL " (Linux 1.2 以降)" +このソケットから発信されるマルチキャストパケットの +time-to-live 値を設定・取得する。 +マルチキャストパケットに対しては、できるだけ小さな +TTL に設定することがとても重要である。デフォルトは 1 で、 +ユーザープログラムが明示的に要求しない限り +マルチキャストパケットはローカルなネットワークから出ないことになる。 +引き数に整数を取る。 .TP -.BR IP_OPTIONS " (Linux 2.0 °Ê¹ß)" +.BR IP_OPTIONS " (Linux 2.0 以降)" .\" Precisely: 1.3.30 -¤³¤Î¥½¥±¥Ã¥È¤«¤éÁ÷¤é¤ì¤ë¥Ñ¥±¥Ã¥ÈÁ´¤Æ¤ËÉտ魯¤ë IP ¥ª¥×¥·¥ç¥ó¤ò -ÀßÄꡦ¼èÆÀ¤¹¤ë¡£¥ª¥×¥·¥ç¥ó¤òÊݸ¤·¤Æ¤¤¤ë¥á¥â¥ê¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤È -¥ª¥×¥·¥ç¥ó¤ÎŤµ¤È¤ò°ú¤­¿ô¤Ë¼è¤ë¡£ +このソケットから送られるパケット全てに付随する IP オプションを +設定・取得する。オプションを保存しているメモリバッファへのポインタと +オプションの長さとを引き数に取る。 .BR setsockopt (2) -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¥½¥±¥Ã¥È¤Ë´ØÏ¢¤Å¤±¤é¤ì¤ë IP ¥ª¥×¥·¥ç¥ó¤òÀßÄê¤Ç¤­¤ë¡£ -IPv4 ¤Ë¤ª¤±¤ë¥ª¥×¥·¥ç¥ó¤Î¥µ¥¤¥º¤ÎºÇÂçÃÍ¤Ï 40 ¥Ð¥¤¥È¤Ç¤¢¤ë¡£ -ÍѤ¤¤ë¤³¤È¤Î¤Ç¤­¤ë¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Ï RFC\ 791 ¤ò¸«¤è¡£ +を呼び出すと、ソケットに関連づけられる IP オプションを設定できる。 +IPv4 におけるオプションのサイズの最大値は 40 バイトである。 +用いることのできるオプションについては RFC\ 791 を見よ。 .B SOCK_STREAM -¥½¥±¥Ã¥È¤ËÂФ¹¤ë½é´üÀܳÍ×µá¥Ñ¥±¥Ã¥È¤Ë IP ¥ª¥×¥·¥ç¥ó¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤È¡¢ -¥ë¡¼¥Æ¥£¥ó¥°¥Ø¥Ã¥À¤òÉÕ¤±¤ÆÌᤵ¤ì¤Æ¤¯¤ë½é´ü¥Ñ¥±¥Ã¥È¤Î -IP ¥ª¥×¥·¥ç¥ó¤ËƱ¤¸¥ª¥×¥·¥ç¥ó¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£Àܳ¤¬³ÎΩ¤µ¤ì¤¿¸å¡¢ -¤ä¤Ã¤Æ¤­¤¿¥Ñ¥±¥Ã¥È¤Î¥ª¥×¥·¥ç¥ó¤òÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡£³°Éô¤«¤é¼õ¿®¤·¤¿¥Ñ¥±¥Ã¥È¤ÎÁ´¤Æ¤Î source routing ¥ª¥×¥·¥ç¥ó -¤Î½èÍý¤Ï̵¸ú¤È¤Ê¤Ã¤Æ¤ª¤ê¡¢ +ソケットに対する初期接続要求パケットに IP オプションが含まれていると、 +ルーティングヘッダを付けて戻されてくる初期パケットの +IP オプションに同じオプションがセットされる。接続が確立された後、 +やってきたパケットのオプションを変更することはできない。 +デフォルトでは。外部から受信したパケットの全ての source routing オプション +の処理は無効となっており、 .I /proc -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î +インタフェースの .I accept_source_route -¤ò»È¤¦¤È¤³¤ì¤òÍ­¸ú¤Ë¤Ç¤­¤ë¡£¤³¤ì¤ò̵¸ú¤Ë¤·¤Æ¤¤¤Æ¤â timestamps ¤Ê¤É -¤Î¾¤Î¥ª¥×¥·¥ç¥ó¤Î½èÍý¤Ï¹Ô¤ï¤ì¤ë¡£¥Ç¡¼¥¿¥°¥é¥à¥½¥±¥Ã¥È¤Ç¤Ï¡¢ -IP ¥ª¥×¥·¥ç¥ó¤Ï¥í¡¼¥«¥ë¥æ¡¼¥¶¡¼¤·¤«ÀßÄê¤Ç¤­¤Ê¤¤¡£ +を使うとこれを有効にできる。これを無効にしていても timestamps など +の他のオプションの処理は行われる。データグラムソケットでは、 +IP オプションはローカルユーザーしか設定できない。 .BR getsockopt (2) -¤ò +を .B IP_OPTIONS -¤ò¤Ä¤±¤Æ¸Æ¤Ö¤È¡¢¸½ºßÁ÷¿®¤ËÍѤ¤¤é¤ì¤Æ¤¤¤ë IP ¥ª¥×¥·¥ç¥ó¤ò -°ú¤­¿ô¤ËÍ¿¤¨¤¿¥Ð¥Ã¥Õ¥¡¤Ë¼èÆÀ¤Ç¤­¤ë¡£ +をつけて呼ぶと、現在送信に用いられている IP オプションを +引き数に与えたバッファに取得できる。 .\" FIXME Document IP_PASSSEC .\" Boolean .\" Since Linux 2.6.17 .\" commit 2c7946a7bf45ae86736ab3b43d0085e43947945c .\" Author: Catherine Zhang .TP -.BR IP_PKTINFO " (Linux 2.2 °Ê¹ß)" +.BR IP_PKTINFO " (Linux 2.2 以降)" .\" Precisely: 2.1.68 .B IP_PKTINFO -Êä½õ¥á¥Ã¥»¡¼¥¸¤òÅϤ¹¡£¤³¤ì¤Ë¤ÏÅþÃå¥Ñ¥±¥Ã¥È¤Ë´Ø¤¹¤ë¾ðÊó¤òÄ󶡤¹¤ë +補助メッセージを渡す。これには到着パケットに関する情報を提供する .I pktinfo -¹½Â¤ÂΤ¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -¥Ç¡¼¥¿¥°¥é¥à»Ø¸þ¤Î¥½¥±¥Ã¥È¤Ç¤·¤«Æ°ºî¤·¤Ê¤¤¡£ -°ú¤­¿ô¤Ï +構造体が含まれている。 +データグラム指向のソケットでしか動作しない。 +引き数は .B IP_PKTINFO -¥á¥Ã¥»¡¼¥¸¤òÄ̲ᤵ¤»¤ë¤«¤É¤¦¤«¤ò¥½¥±¥Ã¥È¤ËÃΤ餻¤ë¥Õ¥é¥°¤Ç¤¢¤ë¡£ -¥á¥Ã¥»¡¼¥¸¼«¿È¤Ï +メッセージを通過させるかどうかをソケットに知らせるフラグである。 +メッセージ自身は .BR recvmsg (2) -¤Þ¤¿¤Ï +または .BR sendmsg (2) -¤òÍѤ¤¤¿¥Ñ¥±¥Ã¥È¤ÎÀ©¸æ¥á¥Ã¥»¡¼¥¸¤È¤·¤Æ¤Î¤ßÁ÷¼õ¿®¤Ç¤­¤ë¡£ +を用いたパケットの制御メッセージとしてのみ送受信できる。 .IP .in +4n @@ -483,54 +483,54 @@ struct in_pktinfo { .IP .\" FIXME elaborate on that. .I ipi_ifindex -¤Ï¥Ñ¥±¥Ã¥È¤¬¼õ¿®¤µ¤ì¤¿¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¡¢Â¾¤È½Å¤Ê¤é¤Ê¤¤¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤¢¤ë¡£ +はパケットが受信されたインターフェースの、他と重ならないインデックスである。 .I ipi_spec_dst -¤Ï¥Ñ¥±¥Ã¥È¤Î¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +はパケットのローカルアドレスである。 .I ipi_addr -¤Ï¥Ñ¥±¥Ã¥È¥Ø¥Ã¥À¤Ë¤¢¤ë°¸À襢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +はパケットヘッダにある宛先アドレスである。 .B IP_PKTINFO -¤¬ +が .BR sendmsg (2) -¤ËÅϤµ¤ì¤Æ¡¢¤«¤Ä -.\" ¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢Ì¾Á°¤ÎÉÕ¤±Êý¤¬ÌÀ¤é¤«¤Ë´Ö°ã¤Ã¤Æ¤¤¤ë¤Î¤À¤¬ +に渡されて、かつ +.\" このフィールドは、名前の付け方が明らかに間違っているのだが .I ipi_spec_dst -¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢ +が 0 以外の場合、 .I ipi_spec_dst -¤Ï¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤ò¸¡º÷¤¹¤ëºÝ¤Ë¥í¡¼¥«¥ë¤ÊÁ÷¿®¸µ¥¢¥É¥ì¥¹¤È¤·¤Æ»ÈÍѤµ¤ì¡¢ -IP source route ¥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ë¤Î¤Ë¤â»ÈÍѤµ¤ì¤ë¡£ +はルーティングテーブルを検索する際にローカルな送信元アドレスとして使用され、 +IP source route オプションを設定するのにも使用される。 .I ipi_ifindex -¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢¤³¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î -¥×¥é¥¤¥Þ¥ê¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤Ç +が 0 以外の場合、このインデックスによって指定されるインターフェースの +プライマリローカルアドレスで .I ipi_spec_dst -¤ò¾å½ñ¤­¤·¡¢¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤ò¸¡º÷¤¹¤ë¡£ +を上書きし、ルーティングテーブルを検索する。 .TP -.BR IP_RECVERR " (Linux 2.2 °Ê¹ß)" +.BR IP_RECVERR " (Linux 2.2 以降)" .\" Precisely: 2.1.15 -¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Î¼õ¤±ÅϤ·¤Ë¡¢¿®ÍêÀ­¤Î¹â¤¤³ÈÄ¥¤µ¤ì¤¿ÊýË¡¤òÍ­¸ú¤Ë¤¹¤ë¡£ -¥Ç¡¼¥¿¥°¥é¥à¥½¥±¥Ã¥È¤ËÂФ·¤ÆÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢ -ȯÀ¸¤·¤¿¥¨¥é¡¼¤ÏÁ´¤Æ¥½¥±¥Ã¥È¤´¤È¤Î¥¨¥é¡¼¥­¥å¡¼¤ËÊݸ¤µ¤ì¤ë¡£ -¥æ¡¼¥¶¡¼¤Ï¥½¥±¥Ã¥ÈÁàºî¤«¤é¥¨¥é¡¼¤ò¼õ¤±¼è¤Ã¤¿¤È¤­¡¢ +エラーメッセージの受け渡しに、信頼性の高い拡張された方法を有効にする。 +データグラムソケットに対して有効になっていると、 +発生したエラーは全てソケットごとのエラーキューに保存される。 +ユーザーはソケット操作からエラーを受け取ったとき、 .BR recvmsg (2) -¤ò +を .B MSG_ERRQUEUE -¥Õ¥é¥°¤È¤È¤â¤Ë¸Æ¤Ù¤Ð¤½¤Î¥¨¥é¡¼¤ò¼èÆÀ¤Ç¤­¤ë¡£ -¤½¤Î¥¨¥é¡¼¤òµ­½Ò¤¹¤ë +フラグとともに呼べばそのエラーを取得できる。 +そのエラーを記述する .I sock_extended_err -¹½Â¤ÂΤ¬¡¢¥¿¥¤¥× -.BR IP_RECVERR ¡¦ -¥ì¥Ù¥ë +構造体が、タイプ +.BR IP_RECVERR ・ +レベル .B IPPROTO_IP -.\" Linux ¤Ç¤Ï SOL_IP ¤â²Ä -¤ÎÊä½õ¥á¥Ã¥»¡¼¥¸¤È¤·¤ÆÅϤµ¤ì¤ë¡£ -¤³¤ì¤ÏÀܳ»Ö¸þ¤Ç¤Ê¤¤¥½¥±¥Ã¥È¤Ç¿®ÍêÀ­¤Î¹â¤¤¥¨¥é¡¼½èÍý¤ò¹Ô¤¤¤¿¤¤¾ì¹ç¤Ë -Í­ÍѤǤ¢¤ë¡£¥¨¥é¡¼¥­¥å¡¼¤Î¼õ¿®¥Ç¡¼¥¿¥Õ¥é¥°¥á¥ó¥È¤Ë¤Ï -¥¨¥é¡¼¥Ñ¥±¥Ã¥È¤¬´Þ¤Þ¤ì¤ë¡£ -.\"NAKANO portion ¤ò¥Õ¥é¥°¥á¥ó¥È¤Ã¤Æ¸À¤Ã¤Á¤ã¤Ã¤Æ¤¤¤¤¤Î¤«¡© +.\" Linux では SOL_IP も可 +の補助メッセージとして渡される。 +これは接続志向でないソケットで信頼性の高いエラー処理を行いたい場合に +有用である。エラーキューの受信データフラグメントには +エラーパケットが含まれる。 +.\"NAKANO portion をフラグメントって言っちゃっていいのか? .IP .B IP_RECVERR -À©¸æ¥á¥Ã¥»¡¼¥¸¤Ë¤Ï +制御メッセージには .I sock_extended_err -¹½Â¤ÂΤ¬´Þ¤Þ¤ì¤ë: +構造体が含まれる: .IP .in +4n .ne 18 @@ -556,170 +556,170 @@ struct sockaddr *SO_EE_OFFENDER(struct sock_extended_err *); .in .IP .I ee_errno -¤Ë¤Ï¥­¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ë¥¨¥é¡¼¤Î +にはキューに入っているエラーの .I errno -Èֹ椬Æþ¤ë¡£ +番号が入る。 .I ee_origin -¤Ë¤Ï¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì½ê¤ò¼¨¤¹¥³¡¼¥É¤¬Æþ¤ë¡£ -¤½¤Î¾¤Î¥Õ¥£¡¼¥ë¥É¤Ï¥×¥í¥È¥³¥ë°Í¸¤Ç¤¢¤ë¡£ +にはエラーが発生した場所を示すコードが入る。 +その他のフィールドはプロトコル依存である。 .B SO_EE_OFFENDER -¥Þ¥¯¥í¤ÏÍ¿¤¨¤é¤ì¤¿Êä½õ¥á¥Ã¥»¡¼¥¸¤Ø¤Î¥Ý¥¤¥ó¥¿¤«¤é -¥¨¥é¡¼¤ÎȯÀ¸¤·¤¿¥Í¥Ã¥È¥ï¡¼¥¯¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥É¥ì¥¹¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ -¥¢¥É¥ì¥¹¤¬ÉÔÌÀ¤Ê¾ì¹ç¡¢ +マクロは与えられた補助メッセージへのポインタから +エラーの発生したネットワークオブジェクトのアドレスへのポインタを返す。 +アドレスが不明な場合、 .I sockaddr -¹½Â¤ÂΤΠ+構造体の .I sa_family -¥Õ¥£¡¼¥ë¥É¤Ï +フィールドは .B AF_UNSPEC -¤È¤Ê¤ê¡¢¤½¤Î¾¤Î¥Õ¥£¡¼¥ë¥ÉÃͤÏÉÔÄê¤Ç¤¢¤ë¡£ +となり、その他のフィールド値は不定である。 .IP -IP ¤Ï°Ê²¼¤Î¤è¤¦¤Ê +IP は以下のような .I sock_extended_err -¹½Â¤ÂΤòÍѤ¤¤ë: +構造体を用いる: .I ee_origin -¤Ï¡¢ -¥¨¥é¡¼¤¬ ICMP ¥Ñ¥±¥Ã¥È¤È¤·¤Æ¼õ¿®¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï +は、 +エラーが ICMP パケットとして受信された場合には .B SO_EE_ORIGIN_ICMP -¤Ë¥»¥Ã¥È¤µ¤ì¡¢¥í¡¼¥«¥ë¤Çµ¯¤³¤Ã¤¿¾ì¹ç¤Ë¤Ï +にセットされ、ローカルで起こった場合には .B SO_EE_ORIGIN_LOCAL -¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ -ÉÔÌÀ¤ÊÃͤÏ̵»ë¤µ¤ì¤ë¡£ +にセットされる。 +不明な値は無視される。 .I ee_type -¤È +と .I ee_code -¤Ï ICMP ¥Ø¥Ã¥À¤Î type ¥Õ¥£¡¼¥ë¥É¤È code ¥Õ¥£¡¼¥ë¥É¤ÎÃͤ˥»¥Ã¥È¤µ¤ì¤ë¡£ +は ICMP ヘッダの type フィールドと code フィールドの値にセットされる。 .I ee_info -¤Ë¤Ï +には .B EMSGSIZE -¥¨¥é¡¼¤ËÂФ¹¤ë discover ¤µ¤ì¤¿ MTU ¤¬Æþ¤ë¡£ -¥á¥Ã¥»¡¼¥¸¤Ë¤Ï¥¨¥é¡¼¤ò°ú¤­µ¯¤³¤·¤¿¥Î¡¼¥É¤Î +エラーに対する discover された MTU が入る。 +メッセージにはエラーを引き起こしたノードの .I sockaddr_in -¹½Â¤ÂΤâ´Þ¤Þ¤ì¤ë¡£ -¤³¤ì¤Ë¤Ï +構造体も含まれる。 +これには .B SO_EE_OFFENDER -¥Þ¥¯¥í¤ò»È¤Ã¤Æ¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ -¥½¡¼¥¹¤¬ÉÔÌÀ¤Î¾ì¹ç¡¢ -SO_EE_OFFENDER ¥¢¥É¥ì¥¹¤Î +マクロを使ってアクセスできる。 +ソースが不明の場合、 +SO_EE_OFFENDER アドレスの .I sin_family -¥Õ¥£¡¼¥ë¥É¤Ï +フィールドは .B AF_UNSPEC -¤È¤Ê¤ë¡£ -¥¨¥é¡¼¤¬¥Í¥Ã¥È¥ï¡¼¥¯¤Çµ¯¤­¤¿¾ì¹ç¤Ë¤Ï¡¢ -¥½¥±¥Ã¥È¤ÇÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤¿¤¹¤Ù¤Æ¤Î IP ¥ª¥×¥·¥ç¥ó +となる。 +エラーがネットワークで起きた場合には、 +ソケットで有効になっていたすべての IP オプション .RB ( IP_OPTIONS ", " IP_TTL -¤Ê¤É) ¤È¥¨¥é¡¼¥Ñ¥±¥Ã¥È¤Ë´Þ¤Þ¤ì¤Æ¤¤¤¿¤¹¤Ù¤Æ¤Î IP ¥ª¥×¥·¥ç¥ó¤È¤¬¡¢ -À©¸æ¥á¥Ã¥»¡¼¥¸¤È¤·¤ÆÅϤµ¤ì¤ë¡£ -¥¨¥é¡¼¤òµ¯¤³¤·¤¿¥Ñ¥±¥Ã¥È¤Î¥Ú¥¤¥í¡¼¥É (payload) ¤Ï -ÉáÄ̤Υڥ¤¥í¡¼¥É¤È¤·¤ÆÊÖ¤µ¤ì¤ë¡£ +など) とエラーパケットに含まれていたすべての IP オプションとが、 +制御メッセージとして渡される。 +エラーを起こしたパケットのペイロード (payload) は +普通のペイロードとして返される。 .\" FIXME . is it a good idea to document that? It is a dubious feature. .\" .B SOCK_STREAM -.\" ¥½¥±¥Ã¥È¤Ç¤Ï¡¢ +.\" ソケットでは、 .\" .B IP_RECVERR -.\" ¤Ï¤ä¤ä°Û¤Ê¤ë°ÕÌ£¤ò»ý¤Ä¡£¼¡¤Î¥¿¥¤¥à¥¢¥¦¥È¤Þ¤Ç¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¤Î¤Ç¤Ê¤¯¡¢ -.\" ¤ä¤Ã¤Æ¤­¤¿¥¨¥é¡¼¤ÏÁ´¤Æ¤¿¤À¤Á¤Ë¥æ¡¼¥¶¡¼¤ËÅϤµ¤ì¤ë¡£¤³¤ì¤Ï¡¢ -.\" ¹â®¤Ê¥¨¥é¡¼½èÍý¤¬É¬ÍפȤʤë¤è¤¦¤Ê¡¢¶Ëü¤Ë¼÷Ì¿¤Îû¤¤ -.\" TCP Àܳ¤ËÂФ·¤ÆÍ­ÍѤǤ¢¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÃí°Õ¤·¤ÆÍѤ¤¤ë¤³¤È¡£ -.\" ·ÐÏ©¤¬ÊѤï¤Ã¤¿¤ê¡¢¤½¤Î¾Ä̾ï¤Î¾õ¶·¤ËÂФ·¤Æ¡¢Å¬ÀڤʲóÉü¤¬ÉÔ²Äǽ¤È¤Ê¤ê¡¢ -.\" TCP ¤Î¿®ÍêÀ­¤òÄ㤯¤·¤Æ¤·¤Þ¤¦¡£¤Þ¤¿¥×¥í¥È¥³¥ë¤Î»ÅÍͤËÈ¿¤·¤Æ¤·¤Þ¤¦¡£ -TCP ¤Ë¤Ï¥¨¥é¡¼¥­¥å¡¼¤¬¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤Û¤·¤¤¡£ +.\" はやや異なる意味を持つ。次のタイムアウトまでデータを保持するのでなく、 +.\" やってきたエラーは全てただちにユーザーに渡される。これは、 +.\" 高速なエラー処理が必要となるような、極端に寿命の短い +.\" TCP 接続に対して有用である。このオプションは注意して用いること。 +.\" 経路が変わったり、その他通常の状況に対して、適切な回復が不可能となり、 +.\" TCP の信頼性を低くしてしまう。またプロトコルの仕様に反してしまう。 +TCP にはエラーキューがないことに注意してほしい。 .B MSG_ERRQUEUE -¤Ï +は .B SOCK_STREAM -¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤Ï»È¤¨¤Ê¤¤¡£ -TCP ¤Ç¤Ï +ソケットに対しては使えない。 +TCP では .B IP_RECVERR -¤À¤±¤¬Í­¸ú¤À¤¬¡¢¥½¥±¥Ã¥È´Ø¿ô¤«¤éÊÖ¤µ¤ì¤ë¥¨¥é¡¼¤Ï +だけが有効だが、ソケット関数から返されるエラーは .B SO_ERROR -¤À¤±¤Ë¤Ê¤ë¡£ +だけになる。 .IP -raw ¥½¥±¥Ã¥È¤ËÂФ·¤Æ +raw ソケットに対して .B IP_RECVERR -¤ò»ØÄꤹ¤ë¤È¡¢¼õ¿®¤·¤¿¤¹¤Ù¤Æ¤Î ICMP ¥¨¥é¡¼¤ò¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë -ÅϤ¹¤è¤¦¤Ë¤Ê¤ë¡£»ØÄꤷ¤Ê¤¤¤È¡¢ -ÀܳºÑ¤ß¤Î¥½¥±¥Ã¥È¤ËÂФ¹¤ë¥¨¥é¡¼¤À¤±¤òÊó¹ð¤¹¤ë¡£ +を指定すると、受信したすべての ICMP エラーをアプリケーションに +渡すようになる。指定しないと、 +接続済みのソケットに対するエラーだけを報告する。 .IP -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ö¡¼¥ëÃͤΥե饰¤òÀßÄꡦ¼èÆÀ¤¹¤ë¡£ +このオプションはブール値のフラグを設定・取得する。 .B IP_RECVERR -¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥ª¥Õ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +はデフォルトではオフになっている。 .TP -.BR IP_RECVOPTS " (Linux 2.2 °Ê¹ß)" +.BR IP_RECVOPTS " (Linux 2.2 以降)" .\" Precisely: 2.1.15 -ÅþÃ夷¤¿Á´¤Æ¤Î IP ¥ª¥×¥·¥ç¥ó¤ò +到着した全ての IP オプションを .B IP_OPTION -¥³¥ó¥È¥í¡¼¥ë¥á¥Ã¥»¡¼¥¸¤ËÆþ¤ì¤Æ¥æ¡¼¥¶¡¼¤ËÅϤ¹¡£ -¥ë¡¼¥Æ¥£¥ó¥°¥Ø¥Ã¥À¤È¤½¤Î¾¤Î¥ª¥×¥·¥ç¥ó¤È¤Ï¡¢ -¥í¡¼¥«¥ë¥Û¥¹¥È¤ËÂФ·¤Æ¤Ï¤¢¤é¤«¤¸¤áµ­Æþ¤µ¤ì¤Æ¤¤¤ë¡£ +コントロールメッセージに入れてユーザーに渡す。 +ルーティングヘッダとその他のオプションとは、 +ローカルホストに対してはあらかじめ記入されている。 .B SOCK_STREAM -¥½¥±¥Ã¥È¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +ソケットではサポートされていない。 .TP -.BR IP_RECVTOS " (Linux 2.2 °Ê¹ß)" +.BR IP_RECVTOS " (Linux 2.2 以降)" .\" Precisely: 2.1.68 -Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢ +有効になっていると、 .B IP_TOS -Êä½õ¥á¥Ã¥»¡¼¥¸¤¬ÅþÃå¥Ñ¥±¥Ã¥È¤È¤È¤â¤ËÅϤµ¤ì¤ë¡£ -¤³¤ì¤Ë¤Ï¥Ñ¥±¥Ã¥È¥Ø¥Ã¥À¤Î Service/Precedence -¥Õ¥£¡¼¥ë¥É¤Î¥¿¥¤¥×¤ò»ØÄꤹ¤ë¥Ð¥¤¥È¥Ç¡¼¥¿¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -¥Ö¡¼¥ëÀ°¿ôÃͤΥե饰¤ò¤È¤ë¡£ +補助メッセージが到着パケットとともに渡される。 +これにはパケットヘッダの Service/Precedence +フィールドのタイプを指定するバイトデータが含まれている。 +ブール整数値のフラグをとる。 .TP -.BR IP_RECVTTL " (Linux 2.2 °Ê¹ß)" +.BR IP_RECVTTL " (Linux 2.2 以降)" .\" Precisely: 2.1.68 -¤³¤Î¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢ +このフラグがセットされていると、 .B IP_TTL -¥³¥ó¥È¥í¡¼¥ë¥á¥Ã¥»¡¼¥¸¤¬¼õ¿®¥Ñ¥±¥Ã¥È¤Î -time-to-live ¥Õ¥£¡¼¥ë¥É¤Î¥Ð¥¤¥È¥Ç¡¼¥¿¤È¤È¤â¤ËÅϤµ¤ì¤ë¡£ +コントロールメッセージが受信パケットの +time-to-live フィールドのバイトデータとともに渡される。 .B SOCK_STREAM -¥½¥±¥Ã¥È¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +ソケットではサポートされていない。 .TP .B IP_RETOPTS -.BR IP_RETOPTS " (Linux 2.2 °Ê¹ß)" +.BR IP_RETOPTS " (Linux 2.2 以降)" .\" Precisely: 2.1.15 .B IP_RECVOPTS -¤ÈÅù²Á¤À¤¬¡¢Ì¤½èÍý¤ÎÀ¸¤Î¥ª¥×¥·¥ç¥ó¤ò¡¢ -¤³¤Î hop ¤Ç¤Ïµ­Æþ¤µ¤ì¤Ê¤¤ timestamp ¥ì¥³¡¼¥É¤È route ¥ì¥³¡¼¥É¤È¤È¤â¤ËÊÖ¤¹¡£ -.\"NAKANO °ÕÌ£ÉÔÌÀ...(^^; +と等価だが、未処理の生のオプションを、 +この hop では記入されない timestamp レコードと route レコードとともに返す。 +.\"NAKANO 意味不明...(^^; .TP -.BR IP_ROUTER_ALERT " (Linux 2.2 °Ê¹ß)" +.BR IP_ROUTER_ALERT " (Linux 2.2 以降)" .\" Precisely: 2.1.68 -¥Õ¥©¥ï¡¼¥É¤¹¤Ù¤­¥Ñ¥±¥Ã¥È¤ò IP Router Alert ¥ª¥×¥·¥ç¥ó¤ò¤Ä¤±¤Æ -¤³¤Î¥½¥±¥Ã¥È¤ËÅϤ¹¡£ -raw ¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£¤³¤ì¤Ï¤¿¤È¤¨¤Ð¥æ¡¼¥¶¡¼¶õ´Ö¤Î -RSVP ¥Ç¡¼¥â¥ó¤ËÂФ·¤ÆÊØÍø¤Ç¤¢¤ë¡£¥¿¥Ã¥×¤µ¤ì¤¿¥Ñ¥±¥Ã¥È¤Ï -¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ¤Ï¥Õ¥©¥ï¡¼¥É¤µ¤ì¤Ê¤¤¤Î¤Ç¡¢¤³¤ì¤é¤òºÆÁ÷¤¹¤ë¤Î¤Ï -¥æ¡¼¥¶¡¼¤ÎÀÕǤ¤È¤Ê¤ë¡£¥½¥±¥Ã¥È¤Î¥Ð¥¤¥ó¥É¤Ï̵»ë¤µ¤ì¡¢ -¤³¤Î¤è¤¦¤Ê¥Ñ¥±¥Ã¥È¤Ï¥×¥í¥È¥³¥ë¤Ë¤è¤Ã¤Æ¤Î¤ß¥Õ¥£¥ë¥¿¥ê¥ó¥°¤µ¤ì¤ë¡£ -À°¿ôÃͤΥե饰¤ò¼è¤ë¡£ -.\"NAKANO Socket binding... ¤Îʸ¡¢°ÕÌ£¤ï¤«¤é¤ó¡£ +フォワードすべきパケットを IP Router Alert オプションをつけて +このソケットに渡す。 +raw ソケットに対してのみ有効である。これはたとえばユーザー空間の +RSVP デーモンに対して便利である。タップされたパケットは +カーネルによってはフォワードされないので、これらを再送するのは +ユーザーの責任となる。ソケットのバインドは無視され、 +このようなパケットはプロトコルによってのみフィルタリングされる。 +整数値のフラグを取る。 +.\"NAKANO Socket binding... の文、意味わからん。 .TP -.BR IP_TOS " (Linux 1.0 °Ê¹ß)" -¤³¤Î¥½¥±¥Ã¥È¤«¤éÁ÷¿®¤µ¤ì¤ë¤¹¤Ù¤Æ¤Î IP ¥Ñ¥±¥Ã¥È¤ËŬÍѤµ¤ì¤ë -Type-Of-Service (TOS) ¥Õ¥£¡¼¥ë¥É¤òÀßÄꡦ¼èÆÀ¤¹¤ë¡£ -¤³¤ì¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¾å¤Ç¤Î¥Ñ¥±¥Ã¥È¤ÎÍ¥ÀèÅÙ¤ò·è¤á¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ -TOS ¤Ï¥Ð¥¤¥È¥Ç¡¼¥¿¤Ç¤¢¤ë¡£É¸½à¤Î TOS ¥Õ¥é¥°¤¬¤¤¤¯¤Ä¤«ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +.BR IP_TOS " (Linux 1.0 以降)" +このソケットから送信されるすべての IP パケットに適用される +Type-Of-Service (TOS) フィールドを設定・取得する。 +これはネットワーク上でのパケットの優先度を決めるために用いられる。 +TOS はバイトデータである。標準の TOS フラグがいくつか定義されている。 .B IPTOS_LOWDELAY -¤Ï¥¤¥ó¥¿¥é¥¯¥Æ¥£¥Ö¤Ê¥È¥é¥Õ¥£¥Ã¥¯¤ÎÃÙ±ä¤òºÇ¾®¤Ë¤¹¤ë¡£ +はインタラクティブなトラフィックの遅延を最小にする。 .B IPTOS_THROUGHPUT -¤Ï¥¹¥ë¡¼¥×¥Ã¥È¤òºÇÂç¤Ë¤¹¤ë¡£ +はスループットを最大にする。 .B IPTOS_RELIABILITY -¤Ï¿®ÍêÀ­¤òºÇ¹â¤Ë¤¹¤ë¡£ +は信頼性を最高にする。 .B IPTOS_MINCOST -¤ÏžÁ÷®ÅÙ¤¬ÃÙ¤¯¤Æ¤â¤«¤Þ¤ï¤Ê¤¤¤È¤­¡¢¡Ö¥Ç¡¼¥¿¤òµÍ¤á¹þ¤à¡×¤Î¤ËÍѤ¤¤é¤ì¤ë¡£ -¤³¤ì¤é¤Î¤¦¤Á¡¢ 1 ¤Ä¤Þ¤Ç¤À¤±¤òÀßÄê¤Ç¤­¤ë¡£ -¾¤Î¥Ó¥Ã¥È¤Ï̵¸ú¤Ç¡¢¥¯¥ê¥¢¤µ¤ì¤ë¡£ -.\"NAKANO ¢¬Ìõ¤¢¤Ã¤Æ¤ë¡© -Linux ¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï +は転送速度が遅くてもかまわないとき、「データを詰め込む」のに用いられる。 +これらのうち、 1 つまでだけを設定できる。 +他のビットは無効で、クリアされる。 +.\"NAKANO ↑訳あってる? +Linux はデフォルトでは .B IPTOS_LOWDELAY -¥Ç¡¼¥¿¥°¥é¥à¤òºÇ½é¤ËÁ÷¿®¤¹¤ë¡£ -¤·¤«¤·¡¢Àµ³Î¤Ê¿¶¤ëÉñ¤¤¤Ï¥­¥å¡¼½èÍý¤ÎÀßÄê¤Ë°Í¸¤¹¤ë¡£ +データグラムを最初に送信する。 +しかし、正確な振る舞いはキュー処理の設定に依存する。 .\" FIXME elaborate on this -¹â¤¤Í¥ÀèÅ٤ˤ¹¤ë¤Ë¤Ï¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¸¢¸Â +高い優先度にするにはスーパーユーザー権限 .RB ( CAP_NET_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤¬É¬ÍפȤʤ뤫¤â¤·¤ì¤Ê¤¤¡£ -Í¥ÀèÅÙ¤Ï +ケーパビリティ) が必要となるかもしれない。 +優先度は .RB ( SOL_SOCKET ", " SO_PRIORITY ) -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ì¤Ð¡¢ -¥×¥í¥È¥³¥ë¤Ë°Í¸¤·¤Ê¤¤·Á¤Ç¤âÀßÄê¤Ç¤­¤ë +ソケットオプションを用いれば、 +プロトコルに依存しない形でも設定できる .RB ( socket (7) -¤ò¸«¤è)¡£ +を見よ)。 .\" FIXME Document IP_TRANSPARENT .\" Needs CAP_NET_ADMIN .\" Boolean @@ -727,331 +727,331 @@ Linux .\" commit f5715aea4564f233767ea1d944b2637a5fd7cd2e .\" Author: KOVACS Krisztian .TP -.BR IP_TTL " (Linux 1.0 °Ê¹ß)" -time-to-live ¥Õ¥£¡¼¥ë¥É¤ÎÃͤòÀßÄê¤Þ¤¿¤Ï¼èÆÀ¤¹¤ë¡£ -¤³¤ÎÃͤϤ³¤Î¥½¥±¥Ã¥È¤«¤éÁ÷¿®¤µ¤ì¤ë¤¹¤Ù¤Æ¤Î¥Ñ¥±¥Ã¥È¤ËÍѤ¤¤é¤ì¤ë¡£ +.BR IP_TTL " (Linux 1.0 以降)" +time-to-live フィールドの値を設定または取得する。 +この値はこのソケットから送信されるすべてのパケットに用いられる。 .\" FIXME Document IP_XFRM_POLICY .\" Since Linux 2.5.48 .\" Needs CAP_NET_ADMIN -.SS /proc ¥¤¥ó¥¿¥Õ¥§¡¼¥¹ -IP ¥×¥í¥È¥³¥ë¤Ç¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¥°¥í¡¼¥Ð¥ë¥Ñ¥é¥á¡¼¥¿¤òÀßÄꤹ¤ë¤¿¤á¤Î +.SS /proc インタフェース +IP プロトコルでは、いくつかのグローバルパラメータを設定するための .I /proc -¥Õ¥¡¥¤¥ë·²¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Î¥Ñ¥é¥á¡¼¥¿¤Ë¤Ï¡¢ +ファイル群が用意されている。 +これらのパラメータには、 .I /proc/sys/net/ipv4/ -¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¤ÎÆɤ߽ñ¤­¤Ç¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ +ディレクトリ内のファイルの読み書きでアクセスできる。 .\" FIXME As at 2.6.12, 14 Jun 2005, the following are undocumented: .\" ip_queue_maxlen .\" ip_conntrack_max .I Boolean -¤È½ñ¤«¤ì¤¿¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÏÀ°¿ôÃͤò¤È¤ê¡¢ -0 °Ê³°¤ÎÃÍ ("true") ¤ÏÂбþ¤¹¤ë¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¡¢ -0 ÃÍ ("false") ¤Ï̵¸ú¡¢¤Ç¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +と書かれたインタフェースは整数値をとり、 +0 以外の値 ("true") は対応するオプションが有効、 +0 値 ("false") は無効、であることを意味する。 .\" .TP -.IR ip_always_defrag " (Boolean; Linux 2.2.13 °Ê¹ß)" -[2.2.13 ¤Ç¿·µ¬Åо졣°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¤³¤Îµ¡Ç½¤Ï -¥³¥ó¥Ñ¥¤¥ë»þ¤Ë +.IR ip_always_defrag " (Boolean; Linux 2.2.13 以降)" +[2.2.13 で新規登場。以前のバージョンのカーネルでは、この機能は +コンパイル時に .B CONFIG_IP_ALWAYS_DEFRAG -¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤ÆÀ©¸æ¤µ¤ì¤Æ¤¤¤¿; -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï 2.4.x °Ê¹ß¤Ç¤Ï¸ºß¤·¤Ê¤¤] +オプションによって制御されていた; +このファイルは 2.4.x 以降では存在しない] -¤³¤Î¥Ö¡¼¥ëÃͤΥե饰¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë (0 °Ê³°¤Ë¤Ê¤Ã¤Æ¤¤¤ë) ¤È¡¢ -ÅþÃ夷¤¿¥Õ¥é¥°¥á¥ó¥È (IP ¥Ñ¥±¥Ã¥È¤Î°ìÉô¤Ç¡¢ -ȯ¿®¸µ¤Èȯ¿®Àè¤Î´Ö¤Î¤É¤³¤«¤Î¥Û¥¹¥È¤Ç¡¢¤½¤Î¥Ñ¥±¥Ã¥È¤¬ -Â礭¤¹¤®¤ë¤ÈȽÃǤµ¤ì¡¢Ê¬³ä¤µ¤ì¤¿¾ì¹ç¤ËÀ¸¤¸¤ë) -¤Ï¡¢¤¿¤È¤¨¥Õ¥©¥ï¡¼¥É¤µ¤ì¤ë¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â -½èÍýÁ°¤ËºÆ¹½ÃÛ (¥Ç¥Õ¥é¥°¥á¥ó¥È) ¤µ¤ì¤ë¡£ +このブール値のフラグが有効になっている (0 以外になっている) と、 +到着したフラグメント (IP パケットの一部で、 +発信元と発信先の間のどこかのホストで、そのパケットが +大きすぎると判断され、分割された場合に生じる) +は、たとえフォワードされる場合であっても +処理前に再構築 (デフラグメント) される。 -¥Õ¥¡¥¤¥¢¥¦¥©¡¼¥ë¤¬¥í¡¼¥«¥ë¦¤Î¥Í¥Ã¥È¥ï¡¼¥¯¤ËÍ£°ì¤Î¥ê¥ó¥¯¤ò»ý¤Ã¤Æ¤¤¤ë -¾ì¹ç¤ä¡¢Æ©²á¥×¥í¥¯¥·¤Î¾ì¹ç¤Ë¸Â¤Ã¤ÆÍ­¸ú¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -Ä̾ï¤Î¥ë¡¼¥¿¡¼¤ä¥Û¥¹¥È¤Ç¤Ï·è¤·¤Æ»ÈÍѤ¹¤ë¤³¤È¤Î¤Ê¤¤¤è¤¦¤Ë¡£ -¤µ¤â¤Ê¤¤¤È¥Õ¥é¥°¥á¥ó¥È¤¬Ê̤Υê¥ó¥¯¤ò·Ðͳ¤·¤ÆÅÁ¤ï¤ë¾ì¹ç¤Ë¡¢ -ÄÌ¿®¤Î¥Õ¥é¥°¥á¥ó¥È²½¤¬¤Ç¤­¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¡£ -¤Þ¤¿¥Õ¥é¥°¥á¥ó¥ÈºÆ¹½ÃÛ½èÍý¤Ï¥á¥â¥ê¤È CPU »þ´Ö¤Î¥³¥¹¥È¤¬Èó¾ï¤ËÂ礭¤¤¡£ +ファイアウォールがローカル側のネットワークに唯一のリンクを持っている +場合や、透過プロクシの場合に限って有効にすべきである。 +通常のルーターやホストでは決して使用することのないように。 +さもないとフラグメントが別のリンクを経由して伝わる場合に、 +通信のフラグメント化ができなくなってしまう。 +またフラグメント再構築処理はメモリと CPU 時間のコストが非常に大きい。 -¤³¤ì¤Ï¥Þ¥¹¥«¥ì¡¼¥É¤äÆ©²á¥×¥í¥¯¥·¤¬ÀßÄꤵ¤ì¤ë¤È¡¢ -ÉԻ׵ĤʻÅÁȤߤˤè¤Ã¤Æ¼«Æ°Åª¤ËÍ­¸ú¤Ë¤Ê¤ë¡£ +これはマスカレードや透過プロクシが設定されると、 +不思議な仕組みによって自動的に有効になる。 .\" .TP -.IR ip_autoconfig " (Linux 2.2 °Ê¹ß 2.6.17 ¤Þ¤Ç)" +.IR ip_autoconfig " (Linux 2.2 以降 2.6.17 まで)" .\" Precisely: since 2.1.68 .\" FIXME document ip_autoconfig -¤Þ¤Àµ­½Ò¤·¤Æ¤¤¤Ê¤¤¡£ +まだ記述していない。 .\" .TP -.IR ip_default_ttl " (integer; default: 64; Linux 2.2 °Ê¹ß)" +.IR ip_default_ttl " (integer; default: 64; Linux 2.2 以降)" .\" Precisely: 2.1.15 -Á÷½Ð¤µ¤ì¤ë¥Ñ¥±¥Ã¥È¤Î time-to-live ÃͤΥǥե©¥ë¥È¤ò¥»¥Ã¥È¤¹¤ë¡£ -¤³¤ì¤Ï +送出されるパケットの time-to-live 値のデフォルトをセットする。 +これは .B IP_TTL -¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ì¤Ð¡¢¥Ñ¥±¥Ã¥È¤´¤È¤ËÊѤ¨¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +オプションを用いれば、パケットごとに変えることもできる。 .\" .TP -.IR ip_dynaddr " (Boolean; default: disabled; Linux 2.0.31 °Ê¹ß)" -ưŪ¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤È¡¢¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹¤¬Êѹ¹¤µ¤ì¤¿ºÝ¤Î -¥Þ¥¹¥«¥ì¡¼¥É¥¨¥ó¥È¥ê¤ÎºÆ½ñ¤­¹þ¤ß¤òÍ­¸ú¤Ë¤¹¤ë¡£ -¥À¥¤¥¢¥ë¥¢¥Ã¥×¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¡¢ -IP ¥¢¥É¥ì¥¹¤¬Êѹ¹¤µ¤ì¤ë¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£ +.IR ip_dynaddr " (Boolean; default: disabled; Linux 2.0.31 以降)" +動的ソケットアドレスと、インターフェースアドレスが変更された際の +マスカレードエントリの再書き込みを有効にする。 +ダイアルアップインターフェースで、 +IP アドレスが変更される場合に便利である。 .\" .TP -.IR ip_forward " (Boolean; default: disabled; Linux 1.2 °Ê¹ß)" -IP forwarding ¤òÍ­¸ú¤Ë¤¹¤ë¤«¤É¤¦¤«¤Î¥Ö¡¼¥ëÃͥե饰¡£ -IP forwarding ¤¹¤ë¤«¤É¤¦¤«¤Ï¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤´¤È¤Ë¤âÀßÄê¤Ç¤­¤ë¡£ +.IR ip_forward " (Boolean; default: disabled; Linux 1.2 以降)" +IP forwarding を有効にするかどうかのブール値フラグ。 +IP forwarding するかどうかはインターフェースごとにも設定できる。 .\" .TP -.IR ip_local_port_range " (Linux 2.2 °Ê¹ß)" +.IR ip_local_port_range " (Linux 2.2 以降)" .\" Precisely: since 2.1.68 -¥½¥±¥Ã¥È¤Ë³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¥Ç¥Õ¥©¥ë¥È¤Î¥í¡¼¥«¥ë¥Ý¡¼¥È¤ÎÈϰϤòÄê¤á¤ë -Æó¤Ä¤ÎÀ°¿ô¤òÍ¿¤¨¤ë¡£³ä¤êÅö¤Æ¤Ï 1 ÈÖÌܤÎÈֹ椫¤é»Ï¤Þ¤ê¡¢ 2 ÈÖÌܤÎÈÖ¹æ¤Ç½ª¤ï¤ë¡£ -¤³¤ì¤é¤Ï¥Þ¥¹¥«¥ì¡¼¥É¤ÇÍѤ¤¤é¤ì¤Æ¤¤¤ë¥Ý¡¼¥È¤È½Å¤Ê¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤ -(¤½¤Î¾ì¹ç¤â¼è¤ê°·¤ï¤ì¤ë¤¬)¡£ -¥Õ¥¡¥¤¥¢¥¦¥©¡¼¥ë¤Î¥Ñ¥±¥Ã¥È¥Õ¥£¥ë¥¿¡¼¤¬¡ÖÍøÍÑÃæ¤Î¥í¡¼¥«¥ë¥Ý¡¼¥È¡× -¤Ë¤Ä¤¤¤Æ²¿¤é¤«¤Î²¾Äê¤ò¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -ÈÖ¹æ¤ò¾¡¼ê¤Ë·è¤á¤Æ¤·¤Þ¤¦¤ÈÌäÂ꤬µ¯¤­¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -1 ÈÖÌܤÎÈÖ¹æ¤Ï¾¯¤Ê¤¯¤È¤â 1024 ¤è¤êÂ礭¤¯¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -Îɤ¯»È¤ï¤ì¤ë¥Ý¡¼¥È¤È¤Î¾×ÆͤòÈò¤±¤¿¤ê¡¢¥Õ¥¡¥¤¥¢¥¦¥©¡¼¥ë¤ÎÌäÂê¤ò -²óÈò¤·¤¿¤±¤ì¤Ð¡¢ 4096 ¤è¤ê¤âÂ礭¤¯¤¹¤ë¤Û¤¦¤¬Îɤ¤¤À¤í¤¦¡£ +ソケットに割り当てられているデフォルトのローカルポートの範囲を定める +二つの整数を与える。割り当ては 1 番目の番号から始まり、 2 番目の番号で終わる。 +これらはマスカレードで用いられているポートと重なってはならない +(その場合も取り扱われるが)。 +ファイアウォールのパケットフィルターが「利用中のローカルポート」 +について何らかの仮定をしている場合には、 +番号を勝手に決めてしまうと問題が起きるかもしれない。 +1 番目の番号は少なくとも 1024 より大きくすべきである。 +良く使われるポートとの衝突を避けたり、ファイアウォールの問題を +回避したければ、 4096 よりも大きくするほうが良いだろう。 .\" .TP -.IR ip_no_pmtu_disc " (Boolean; default: disabled; Linux 2.2 °Ê¹ß)" +.IR ip_no_pmtu_disc " (Boolean; default: disabled; Linux 2.2 以降)" .\" Precisely: 2.1.15 -Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢¥Ç¥Õ¥©¥ë¥È¤Ç TCP ¥½¥±¥Ã¥È¤ËÂФ¹¤ë -Path MTU Discoverty ¤ò¹Ô¤ï¤Ê¤¤¡£ -Path MTU Discovery ¤Ï¡¢ -Àµ¤·¤¯ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤ (ICMP ¥Ñ¥±¥Ã¥È¤òÁ´¤Æ¥É¥í¥Ã¥×¤¹¤ë) ¥Õ¥¡¥¤¥¢¥¦¥©¡¼¥ë¤ä¡¢ -(point-to-point ¥ê¥ó¥¯¤ÇÁÐÊý¤Î MTU ¤¬°ìÃפ·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ê¤É) -Àµ¤·¤¯ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬·ÐÏ©¾å¤Ë¸ºß¤¹¤ë¤È¼ºÇÔ¤·¤Æ¤·¤Þ¤¦¡£ -Path MTU Discovery ¤ò¥°¥í¡¼¥Ð¥ë¤Ë̵¸ú¤Ë¤¹¤ë¤è¤ê¤Ï¡¢ -²õ¤ì¤Æ¤¤¤ë¥ë¡¼¥¿¤òľ¤¹¤Û¤¦¤¬Îɤ¤¡£ -Path MTU Discovery ¤ò̵¸ú¤Ë¤¹¤ë¤È¥Í¥Ã¥È¥ï¡¼¥¯¤Î¥³¥¹¥È¤¬ -Â礭¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤«¤é¤Ç¤¢¤ë¡£ +有効になっていると、デフォルトで TCP ソケットに対する +Path MTU Discoverty を行わない。 +Path MTU Discovery は、 +正しく設定されていない (ICMP パケットを全てドロップする) ファイアウォールや、 +(point-to-point リンクで双方の MTU が一致していない場合など) +正しく設定されていないインターフェースが経路上に存在すると失敗してしまう。 +Path MTU Discovery をグローバルに無効にするよりは、 +壊れているルータを直すほうが良い。 +Path MTU Discovery を無効にするとネットワークのコストが +大きくなってしまうからである。 .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt .TP -.IR ip_nonlocal_bind " (Boolean; default: disabled; Linux 2.4 °Ê¹ß)" +.IR ip_nonlocal_bind " (Boolean; default: disabled; Linux 2.4 以降)" .\" Precisely: patch-2.4.0-test10 -¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢¥×¥í¥»¥¹¤¬¼«Ê¬°Ê³°¤Î IP ¥¢¥É¥ì¥¹¤ò +セットされていれば、プロセスが自分以外の IP アドレスを .BR bind (2) -¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£¤³¤ì¤Ï¤«¤Ê¤êÊØÍø¤À¤¬¡¢¤¦¤Þ¤¯Æ°¤«¤Ê¤¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤â¤¢¤ë¡£ +できるようになる。これはかなり便利だが、うまく動かないアプリケーションもある。 .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt .TP .IR ip6frag_time " (integer; default 30)" -IPv6 ¥Õ¥é¥°¥á¥ó¥È¤ò¥á¥â¥ê¤ËÊÝ»ý¤·¤Æ¤ª¤¯»þ´Ö (ÉÃñ°Ì)¡£ +IPv6 フラグメントをメモリに保持しておく時間 (秒単位)。 .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt .TP .IR ip6frag_secret_interval " (integer; default 600)" -IPv6 ¥Õ¥é¥°¥á¥ó¥È¤Î hash secret ¤ÎÀ¸À®´Ö³Ö (hash secret ¤Î¼÷Ì¿) -(ÉÃñ°Ì)¡£ +IPv6 フラグメントの hash secret の生成間隔 (hash secret の寿命) +(秒単位)。 .TP .IR ipfrag_high_thresh " (integer), " ipfrag_low_thresh " (integer)" -¥­¥å¡¼¥¤¥ó¥°¤µ¤ì¤Æ¤¤¤ë IP ¥Õ¥é¥°¥á¥ó¥È¤ÎÎ̤¬ +キューイングされている IP フラグメントの量が .I ipfrag_high_thresh -¤Ë㤹¤ë¤È¡¢¥­¥å¡¼¤ÎÆâÍÆ¤Ï +に達すると、キューの内容は .I ipfrag_low_thresh -¤Ë¤Þ¤ÇÀÚ¤ê¼Î¤Æ¤é¤ì¤ë¡£¤½¤ì¤¾¤ì¤ÎÂ礭¤µ¤ò -¥Ð¥¤¥Èñ°Ì¤Çɽ¤¹À°¿ôÃͤ¬Æþ¤Ã¤Æ¤¤¤ë¡£ +にまで切り捨てられる。それぞれの大きさを +バイト単位で表す整数値が入っている。 .TP .I neigh/* .BR arp (7) -¤ò¸«¤è¡£ +を見よ。 .\" FIXME Document the conf/*/* interfaces .\" FIXME Document the route/* interfaces .\" FIXME document them all .SS ioctl .BR socket (7) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë ioctl ¤Ï¡¢¤¹¤Ù¤Æ +に記述されている ioctl は、すべて .B ip -¤Ë¤âŬÍѤµ¤ì¤ë¡£ +にも適用される。 .\" 2006-04-02, mtk .\" commented out the following because ipchains is obsolete .\" .PP -.\" ¥Õ¥¡¥¤¥¢¥¦¥©¡¼¥ë´Ø·¸¤ÎÀßÄê¤Ë´Ø¤¹¤ë ioctl ¤Ë¤Ä¤¤¤Æ¤Ï +.\" ファイアウォール関係の設定に関する ioctl については .\" .B ipchains -.\" ¥Ñ¥Ã¥±¡¼¥¸¤Î +.\" パッケージの .\" .BR ipfw (4) -.\" ¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +.\" に記述されている。 .PP -¥¸¥§¥Í¥ê¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Î¥Ñ¥é¥á¡¼¥¿¤òÀßÄꤹ¤ë ioctl ¤Ë¤Ä¤¤¤Æ¤Ï +ジェネリックデバイスのパラメータを設定する ioctl については .BR netdevice (7) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +に記述されている。 .\" FIXME Add a discussion of multicasting -.SH ¥¨¥é¡¼ +.SH エラー .\" FIXME document all errors. .\" We should really fix the kernels to give more uniform .\" error returns (ENOMEM vs ENOBUFS, EPERM vs EACCES etc.) .TP .B EACCES -ɬÍפʸ¢¸Â¤Î¤Ê¤¤¥æ¡¼¥¶¡¼¤¬Áàºî¤ò¼Â¹Ô¤·¤è¤¦¤È¤·¤¿¡£ -°Ê²¼¤Î¤è¤¦¤Ê¾ì¹ç¤¬¹Í¤¨¤é¤ì¤ë: +必要な権限のないユーザーが操作を実行しようとした。 +以下のような場合が考えられる: .B SO_BROADCAST -¥Õ¥é¥°¤òÀßÄꤷ¤Æ¤¤¤Ê¤¤¾õÂÖ¤Ç¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤Ë -¥Ñ¥±¥Ã¥È¤òÁ÷¤í¤¦¤È¤·¤¿¡£ +フラグを設定していない状態でブロードキャストアドレスに +パケットを送ろうとした。 .I prohibit -¤Ê¥ë¡¼¥È¤òÄ̤·¤Æ¥Ñ¥±¥Ã¥È¤òÁ÷¤í¤¦¤È¤·¤¿¡£ -¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¸¢¸Â +なルートを通してパケットを送ろうとした。 +スーパーユーザー権限 .RB ( CAP_NET_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤Ê¤·¤Ç¥Õ¥¡¥¤¥¢¥¦¥©¡¼¥ë¤ÎÀßÄê¤òÊѹ¹¤·¤è¤¦¤È¤·¤¿¡£ -¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¸¢¸Â +ケーパビリティ) なしでファイアウォールの設定を変更しようとした。 +スーパーユーザー権限 .RB ( CAP_NET_BIND_SERVICE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤Ê¤·¤ÇÆø¢¥Ý¡¼¥È¤Ë¥Ð¥¤¥ó¥É¤·¤è¤¦¤È¤·¤¿¡£ +ケーパビリティ) なしで特権ポートにバインドしようとした。 .TP .B EADDRINUSE -´û¤Ë»È¤ï¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¤Ë¥Ð¥¤¥ó¥É¤·¤è¤¦¤È¤·¤¿¡£ +既に使われているアドレスにバインドしようとした。 .TP .B EADDRNOTAVAIL -¸ºß¤·¤Ê¤¤¥½¥±¥Ã¥È¤¬Í׵ᤵ¤ì¤¿¡£¤Þ¤¿¤ÏÍ׵ᤵ¤ì¤¿ -¥½¡¼¥¹¥¢¥É¥ì¥¹¤¬¥í¡¼¥«¥ë¤Ç¤Ê¤¤¡£ +存在しないソケットが要求された。または要求された +ソースアドレスがローカルでない。 .TP .B EAGAIN -Èó¥Ö¥í¥Ã¥­¥ó¥°¥½¥±¥Ã¥È¤ËÂФ·¤Æ¥Ö¥í¥Ã¥¯¤¹¤ëÁàºî¤ò¹Ô¤Ã¤¿¡£ +非ブロッキングソケットに対してブロックする操作を行った。 .TP .B EALREADY -Èó¥Ö¥í¥Ã¥­¥ó¥°¥½¥±¥Ã¥È¤ËÂФ¹¤ëÀܳÁàºî¤¬´û¤Ë¼Â¹ÔÃæ¤Ç¤¢¤ë¡£ +非ブロッキングソケットに対する接続操作が既に実行中である。 .TP .B ECONNABORTED .BR accept (2) -¤ÎºÇÃæ¤ËÀܳ¤¬¥¯¥í¡¼¥º¤µ¤ì¤¿¡£ +の最中に接続がクローズされた。 .TP .B EHOSTUNREACH -°¸À襢¥É¥ì¥¹¤Ë¥Þ¥Ã¥Á¤¹¤ëÍ­¸ú¤Ê¥¨¥ó¥È¥ê¤¬¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤Ë -¸ºß¤·¤Ê¤¤¡£¤³¤Î¥¨¥é¡¼¤Ï¥ê¥â¡¼¥È¥ë¡¼¥¿¤«¤é¤Î¡¢ -¤¢¤ë¤¤¤Ï¥í¡¼¥«¥ë¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤Ø¤Î -ICMP ¥á¥Ã¥»¡¼¥¸¤Ë¤è¤Ã¤Æ°ú¤­µ¯¤³¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ +宛先アドレスにマッチする有効なエントリがルーティングテーブルに +存在しない。このエラーはリモートルータからの、 +あるいはローカルルーティングテーブルへの +ICMP メッセージによって引き起こされることがある。 .TP .B EINVAL -ÉÔÀµ¤Ê°ú¤­¿ô¤¬ÅϤµ¤ì¤¿¡£Á÷¿®Áàºî¤Ë¤ª¤¤¤Æ¡¢ +不正な引き数が渡された。送信操作において、 .I blackhole -¥ë¡¼¥È¤ËÁ÷¿®¤·¤è¤¦¤È¤¹¤ë¤È¤³¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë¤³¤È¤¬¤¢¤ë¡£ +ルートに送信しようとするとこのエラーが起こることがある。 .TP .B EISCONN .BR connect (2) -¤¬¡¢´û¤ËÀܳºÑ¤ß¤Î¥½¥±¥Ã¥È¤ËÂФ·¤Æ¸Æ¤Ð¤ì¤¿¡£ +が、既に接続済みのソケットに対して呼ばれた。 .TP .B EMSGSIZE -¥Ç¡¼¥¿¥°¥é¥à¤¬ path MTU ¤è¤ê¤âÂ礭¤¯¡¢¥Õ¥é¥°¥á¥ó¥È²½¤â¤Ç¤­¤Ê¤¤¡£ +データグラムが path MTU よりも大きく、フラグメント化もできない。 .TP .BR ENOBUFS ", " ENOMEM -¶õ¤­¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£ -¤³¤Î¥¨¥é¡¼¤Ï¡¢¥á¥â¥ê¥¢¥í¥±¡¼¥·¥ç¥ó¤¬¥½¥±¥Ã¥È¥Ð¥Ã¥Õ¥¡¤Î -Â礭¤µ¤Ë¤è¤Ã¤ÆÀ©¸Â¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò°ÕÌ£¤·¤Æ¤¤¤ë¤Î¤¬Ä̾ï¤Ç¤¢¤ë¤¬¡¢ -100% ¤½¤¦¤À¤È¤¤¤¦¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ +空きメモリが足りない。 +このエラーは、メモリアロケーションがソケットバッファの +大きさによって制限されていることを意味しているのが通常であるが、 +100% そうだというわけではない。 .TP .B ENOENT -¥Ñ¥±¥Ã¥È¤¬Á´¤¯ÅþÃ夷¤Æ¤¤¤Ê¤¤¥½¥±¥Ã¥È¤ËÂФ·¤Æ +パケットが全く到着していないソケットに対して .B SIOCGSTAMP -¤¬¸Æ¤Ð¤ì¤¿¡£ +が呼ばれた。 .TP .B ENOPKG -¥«¡¼¥Í¥ë¥µ¥Ö¥·¥¹¥Æ¥à¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +カーネルサブシステムが設定されていない。 .TP -.BR ENOPROTOOPT " ¤È " EOPNOTSUPP -ÉÔÀµ¤Ê¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬ÅϤµ¤ì¤¿¡£ +.BR ENOPROTOOPT " と " EOPNOTSUPP +不正なソケットオプションが渡された。 .TP .B ENOTCONN -Àܳ¤µ¤ì¤Æ¤¤¤Ê¤¤¥½¥±¥Ã¥È¤ËÂФ·¤Æ¡¢ -Àܳ¾õÂ֤Ǥ·¤«ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤Áàºî¤ò¹Ô¤ª¤¦¤È¤·¤¿¡£ +接続されていないソケットに対して、 +接続状態でしか定義されていない操作を行おうとした。 .TP .B EPERM -¹â¤¤Í¥ÀèÅÙ¤òÀßÄꤷ¤¿¤ê¡¢ÀßÄê¤òÊѹ¹¤·¤¿¤ê¡¢Í׵ᤵ¤ì¤¿¥×¥í¥»¥¹¤ä -¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤Ã¤¿¤ê¤¹¤ë¤Î¤ËɬÍפʸ¢¸Â¤ò¡¢ -¥æ¡¼¥¶¡¼¤¬»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +高い優先度を設定したり、設定を変更したり、要求されたプロセスや +プロセスグループにシグナルを送ったりするのに必要な権限を、 +ユーザーが持っていない。 .TP .B EPIPE -Àܳ¤¬ÀèÊý¤«¤é´üÂÔ¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¤ä¤êÊý¤Ç -¥¯¥í¡¼¥º¤¢¤ë¤¤¤Ï¥·¥ã¥Ã¥È¥À¥¦¥ó¤µ¤ì¤¿¡£ +接続が先方から期待していなかったやり方で +クローズあるいはシャットダウンされた。 .TP .B ESOCKTNOSUPPORT -¥½¥±¥Ã¥È¤¬Ì¤ÀßÄê¤Ç¤¢¤ë¤«¡¢ÃΤé¤Ê¤¤¥½¥±¥Ã¥È¥¿¥¤¥×¤¬Í׵ᤵ¤ì¤¿¡£ +ソケットが未設定であるか、知らないソケットタイプが要求された。 .PP -¾¤Î¥¨¥é¡¼¤¬¾åÁؤΥץí¥È¥³¥ë¤Ë¤è¤Ã¤ÆÀ¸¤¸¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +他のエラーが上層のプロトコルによって生じるかもしれない。 .BR tcp (7), .BR raw (7), .BR udp (7), .BR socket (7) -¤Ê¤É¤ò»²¾È¤Î¤³¤È¡£ -.SH Ãí°Õ +などを参照のこと。 +.SH 注意 .BR IP_MTU , .BR IP_MTU_DISCOVER , .BR IP_PKTINFO , .BR IP_RECVERR , .B IP_ROUTER_ALERT -¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ê¡¢°Ü¿¢À­¤ò¹Íθ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï -ÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +は Linux 固有であり、移植性を考慮したプログラムでは +用いるべきではない。 .\" IP_PASSSEC is Linux-specific .\" IP_TRANSPARENT is Linux-specific .\" IP_FREEBIND is Linux-specific .\" IP_XFRM_POLICY is Linux-specific .\" IP_IPSEC_POLICY is a nonstandard extension, also present on some BSDs .B SO_BROADCAST -¥ª¥×¥·¥ç¥ó¤ÎÍøÍѤˤϡ¢¤¯¤ì¤°¤ì¤âÃí°Õ¤¹¤ë¤³¤È¡£ -¤³¤ì¤Ï Linux ¤Ç¤ÏÆø¢Áàºî¤Ç¤Ï¤Ê¤¤¡£ -ÉÔÃí°Õ¤Ê¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¤ò¹Ô¤¦¤È¡¢¥Í¥Ã¥È¥ï¡¼¥¯¤Ï´Êñ¤Ë²áÉé²Ù¾õÂ֤ˤʤ롣 -¿·¤·¤¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥È¥³¥ë¤Ë¤Ï¡¢¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¤Ç¤Ï¤Ê¤¯ -¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¤òÍѤ¤¤ë¤Û¤¦¤¬¤è¤¤¡£ -¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¤Ï¿ä¾©¤µ¤ì¤Ê¤¤¡£ +オプションの利用には、くれぐれも注意すること。 +これは Linux では特権操作ではない。 +不注意なブロードキャストを行うと、ネットワークは簡単に過負荷状態になる。 +新しいアプリケーションプロトコルには、ブロードキャストではなく +マルチキャストグループを用いるほうがよい。 +ブロードキャストは推奨されない。 .PP -¾¤Î BSD ¤Î¥½¥±¥Ã¥È¼ÂÁõ¤Ç¤Ï¡¢ +他の BSD のソケット実装では、 .B IP_RCVDSTADDR -¤È +と .B IP_RECVIF -¤È¤¤¤Ã¤¿¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤ª¤ê¡¢ -°¸À襢¥É¥ì¥¹¤ä¼õ¿®¥Ç¡¼¥¿¥°¥é¥à¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬¼èÆÀ¤Ç¤­¤ë¤è¤¦¤Ë -¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤â¤¢¤ë¡£ -Linux ¤ÇƱ¤¸¤³¤È¤ò¤ä¤é¤»¤ë¤Ë¤Ï¡¢¤è¤ê°ìÈÌŪ¤Ê +といったソケットオプションがサポートされており、 +宛先アドレスや受信データグラムのインターフェースが取得できるように +なっていることもある。 +Linux で同じことをやらせるには、より一般的な .B IP_PKTINFO -¤¬»È¤¨¤ë¡£ +が使える。 .PP -¤¤¤¯¤Ä¤«¤Î BSD ¤Î¥½¥±¥Ã¥È¼ÂÁõ¤Ç¤Ï +いくつかの BSD のソケット実装では .B IP_RECVTTL -¥ª¥×¥·¥ç¥ó¤âÄ󶡤µ¤ì¤Æ¤¤¤ë¤¬¡¢¥¿¥¤¥× +オプションも提供されているが、タイプ .B IP_RECVTTL -¤ÎÊä½õ¥á¥Ã¥»¡¼¥¸¤Ï¼õ¿®¥Ñ¥±¥Ã¥È¤È¤È¤â¤ËÅϤµ¤ì¤ë¡£ -¤³¤ì¤Ï Linux ¤Ç»È¤ï¤ì¤Æ¤¤¤ë +の補助メッセージは受信パケットとともに渡される。 +これは Linux で使われている .B IP_TTL -¥ª¥×¥·¥ç¥ó¤È¤Ï°Û¤Ê¤ëÆ°ºî¤Ç¤¢¤ë¡£ +オプションとは異なる動作である。 .PP .B SOL_IP -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¥ì¥Ù¥ë¤Ï°Ü¿¢À­¤¬¤Ê¤¤¡£ -BSD ¥Ù¡¼¥¹¤Î¥×¥í¥È¥³¥ë¥¹¥¿¥Ã¥¯¤Ç¤Ï +ソケットオプションレベルは移植性がない。 +BSD ベースのプロトコルスタックでは .B IPPROTO_IP -¥ì¥Ù¥ë¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ -.SS °Ü¿¢À­ -Linux 2.0 ¤È¤Î¸ß´¹À­¤Î¤¿¤á¤Ë¡¢ obsolete ¤Ê +レベルが使用されている。 +.SS 移植性 +Linux 2.0 との互換性のために、 obsolete な .BI "socket(AF_INET, SOCK_PACKET, " protocol ) -¤È¤¤¤¦½ñ¼°¤Ç¤â +という書式でも .BR packet (7) -¤ò¥ª¡¼¥×¥ó¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¬¡¢¤³¤ì¤Ï¤ª´«¤á¤Ç¤­¤Ê¤¤¡£º£¸å¤Ï +をオープンできるようになっているが、これはお勧めできない。今後は .BI "socket(AF_PACKET, SOCK_RAW, " protocol ) -¤òÂå¤ï¤ê¤ËÍѤ¤¤ë¤Ù¤­¤Ç¤¢¤ë¡£¼ç¤Ê°ã¤¤¤Ï¡¢¥¸¥§¥Í¥ê¥Ã¥¯¤Ê¥ê¥ó¥¯ÁØÍѤΠ+を代わりに用いるべきである。主な違いは、ジェネリックなリンク層用の .I sockaddr_ll -¥¢¥É¥ì¥¹¹½Â¤ÂΤ¬¡¢¸Å¤¤ +アドレス構造体が、古い .B sockaddr_pkt -¤ËÊѤï¤Ã¤ÆÍѤ¤¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤³¤È¤Ç¤¢¤ë¡£ -.SH ¥Ð¥° -¥¨¥é¡¼¤ÎÃͤ¬Á´¤¯¼óÈø°ì´Ó¤·¤Æ¤¤¤Ê¤¤¡£ +に変わって用いられるようになったことである。 +.SH バグ +エラーの値が全く首尾一貫していない。 .PP -IP ¸ÇÍ­¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤¿¤á¤Î ioctl ¤È -ARP ¥Æ¡¼¥Ö¥ë¤Î¤³¤È¤¬µ­½Ò¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +IP 固有のインターフェースオプションを指定するための ioctl と +ARP テーブルのことが記述されていない。 .PP -glibc ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤Ã¤Æ¤Ï +glibc のバージョンによっては .I in_pktinfo -¤ÎÄêµÁ¤ò˺¤ì¤Æ¤¤¤ë¤â¤Î¤¬¤¢¤ë¡£ -¸½»þÅÀ¤Ç¤Î¤È¤ê¤¢¤¨¤º¤ÎÂкö¤È¤·¤Æ¤Ï¡¢¤³¤Î man ¥Ú¡¼¥¸¤Ë¤¢¤ëÄêµÁ¤ò¥×¥í¥°¥é¥àÃæ¤Ë -¥³¥Ô¡¼¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£ +の定義を忘れているものがある。 +現時点でのとりあえずの対策としては、この man ページにある定義をプログラム中に +コピーすることである。 .PP .BR recvmsg (2) -¤Ç +で .I msg_name -¤Ë +に .B MSG_ERRQUEUE -¤ò»ØÄꤷ¤Æ¡¢¼õ¿®¥Ñ¥±¥Ã¥È¤ËÆþ¤Ã¤Æ¤¤¤¿°¸À襢¥É¥ì¥¹¤ò¼èÆÀ¤¹¤ëÊýË¡¤Ï -2.2 ¥«¡¼¥Í¥ë¤Î°ìÉô¤Ç¤¦¤Þ¤¯Æ°¤«¤Ê¤¤¡£ -.\" .SH Ãø¼Ô -.\" ¤³¤Î man ¥Ú¡¼¥¸¤Ï Andi Kleen ¤¬½ñ¤¤¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +を指定して、受信パケットに入っていた宛先アドレスを取得する方法は +2.2 カーネルの一部でうまく動かない。 +.\" .SH 著者 +.\" この man ページは Andi Kleen が書いた。 +.SH 関連項目 .BR recvmsg (2), .BR sendmsg (2), .BR byteorder (3), @@ -1064,11 +1064,11 @@ glibc .BR udp (7) .PP .BR RFC\ 791 : -¥ª¥ê¥¸¥Ê¥ë¤Î IP ¤Î»ÅÍÍ +オリジナルの IP の仕様 .br .BR RFC\ 1122 : -IPv4 ¥Û¥¹¥È¤ÎɬÍ×¾ò·ï +IPv4 ホストの必要条件 .br .BR RFC\ 1812 : -IPv4 ¥ë¡¼¥¿¤ÎɬÍ×¾ò·ï +IPv4 ルータの必要条件 .\" FIXME autobind INADDR REUSEADDR diff --git a/release/man7/ipv6.7 b/release/man7/ipv6.7 index bb95a3f6..2c862293 100644 --- a/release/man7/ipv6.7 +++ b/release/man7/ipv6.7 @@ -12,16 +12,16 @@ .\" Updated 2007-05-28, Akihiro MOTOKI , LDP v2.50 .\" Updated 2008-08-07, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD: flow identifier ¥Õ¥í¡¼»ØÄê»Ò -.\"WORD: control message À©¸æ¥á¥Ã¥»¡¼¥¸ -.\"WORD: incoming ¡Á ¼õ¿® (¥Ñ¥±¥Ã¥È¡¢¥Ç¡¼¥¿¥°¥é¥à) -.\"WORD: outgoing ¡Á Á÷¿® (¥Ñ¥±¥Ã¥È¡¢¥Ç¡¼¥¿¥°¥é¥à) -.\"WORD: asynchronous error ÈóƱ´ü¥¨¥é¡¼ +.\"WORD: flow identifier フロー指定子 +.\"WORD: control message 制御メッセージ +.\"WORD: incoming 〜 受信 (パケット、データグラム) +.\"WORD: outgoing 〜 送信 (パケット、データグラム) +.\"WORD: asynchronous error 非同期エラー .\" .TH IPV6 7 2011-09-08 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -ipv6, AF_INET6 \- Linux ¤Î IPv6 ¥×¥í¥È¥³¥ë¼ÂÁõ -.SH ½ñ¼° +.SH 名前 +ipv6, AF_INET6 \- Linux の IPv6 プロトコル実装 +.SH 書式 .B #include .br .B #include @@ -31,51 +31,51 @@ ipv6, AF_INET6 \- Linux .IB raw6_socket " = socket(AF_INET6, SOCK_RAW, " protocol ");" .br .IB udp6_socket " = socket(AF_INET6, SOCK_DGRAM, " protocol ");" -.SH ÀâÌÀ -Linux 2.2 ¤Ç¤Ï¡¢Internet Protocol, version 6 ¤ò -¥ª¥×¥·¥ç¥ó¤È¤·¤Æ¼ÂÁõ¤·¤Æ¤¤¤ë¡£ -¤³¤Î man ¥Ú¡¼¥¸¤Ç¤Ï¡¢Linux ¥«¡¼¥Í¥ë¤È glibc 2.1 ¤Ç¤Î¼ÂÁõ¤Ë´ð¤Å¤¤¤Æ¡¢ -IPv6 ¤Î´ðËÜŪ¤Ê API ¤ò²òÀ⤹¤ë¡£ -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï BSD ¥½¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò¤â¤È¤Ë¤·¤Æ¤¤¤ë¡£ +.SH 説明 +Linux 2.2 では、Internet Protocol, version 6 を +オプションとして実装している。 +この man ページでは、Linux カーネルと glibc 2.1 での実装に基づいて、 +IPv6 の基本的な API を解説する。 +インターフェースは BSD ソケットインターフェースをもとにしている。 .BR socket (7) -¤ò»²¾È¡£ +を参照。 .PP -IPv6 API ¤Ï¡¢ +IPv6 API は、 IPv4 API .RB ( ip (7) -»²¾È) ¤È¤Û¤Ü¸ß´¹¤Ë¤Ê¤ë¤³¤È¤òÌܻؤ·¤Æ¤¤¤ë¡£ -¤³¤Î man ¥Ú¡¼¥¸¤Ç¤ÏÁê°ãÅÀ¤Î¤ß¤ò²òÀ⤹¤ë¡£ +参照) とほぼ互換になることを目指している。 +この man ページでは相違点のみを解説する。 .PP .B AF_INET6 -¥½¥±¥Ã¥È¤ò²¿¤é¤«¤Î¥×¥í¥»¥¹¤Ë¥Ð¥¤¥ó¥É¤¹¤ë¤Ë¤Ï¡¢ -¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤ò +ソケットを何らかのプロセスにバインドするには、 +ローカルアドレスを .I in6_addr -·¿¤ÎÊÑ¿ô +型の変数 .I in6addr_any -¤«¤é¥³¥Ô¡¼¤·¤Æ¤¯¤ëɬÍפ¬¤¢¤ë¡£ -static ¤Ê½é´üÃÍ +からコピーしてくる必要がある。 +static な初期値 .B IN6ADDR_ANY_INIT -¤âÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¡¢¤³¤ì¤ÏÄê¿ô¼°¤ËŸ³«¤µ¤ì¤ë¡£ -¤³¤ì¤é¤Îξ¼Ô¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Ç¤¢¤ë¡£ +も用いることができ、これは定数式に展開される。 +これらの両者はネットワークバイトオーダーである。 .PP -IPv6 ¤Î¥ë¡¼¥×¥Ð¥Ã¥¯¥¢¥É¥ì¥¹ (::1) ¤Ï global ÊÑ¿ô +IPv6 のループバックアドレス (::1) は global 変数 .I in6addr_loopback -¤«¤é¼èÆÀ¤Ç¤­¤ë¡£½é´ü²½¤Ë¤Ï +から取得できる。初期化には .B IN6ADDR_LOOPBACK_INIT -¤òÍѤ¤¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +を用いるべきである。 .PP -v4-mapped-on-v6 ¥¢¥É¥ì¥¹·¿¤òÍѤ¤¤ë¤³¤È¤Ç¡¢ -IPv4 Àܳ¤â v6 API ¤Ç°·¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤¦¤¹¤ì¤Ð¡¢¥×¥í¥°¥é¥à¤Ï v6 ¤Î API ¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤À¤±¤Ç¡¢ -ξÊý¤Î¥×¥í¥È¥³¥ë¤ò¥µ¥Ý¡¼¥È¤Ç¤­¤ë¡£ -v4-mapped-on-v6 ¥¢¥É¥ì¥¹·¿¤Ï C ¥é¥¤¥Ö¥é¥êÆâÉô¤Î¥¢¥É¥ì¥¹¤ò -°·¤¦´Ø¿ô¤Ë¤è¤Ã¤ÆÆ©²áŪ¤Ë½èÍý¤µ¤ì¤ë¡£ +v4-mapped-on-v6 アドレス型を用いることで、 +IPv4 接続も v6 API で扱うことができる。 +こうすれば、プログラムは v6 の API をサポートするだけで、 +両方のプロトコルをサポートできる。 +v4-mapped-on-v6 アドレス型は C ライブラリ内部のアドレスを +扱う関数によって透過的に処理される。 .PP -IPv4 ¤È IPv6 ¤Ï¥í¡¼¥«¥ë¥Ý¡¼¥È¶õ´Ö¤ò¶¦Í­¤¹¤ë¡£ -IPv4 ¤ÎÀܳ (¤Þ¤¿¤Ï¥Ñ¥±¥Ã¥È) ¤ò IPv6 ¥½¥±¥Ã¥È¤¬¼èÆÀ¤¹¤ë¤È¡¢ -ȯ¿®¸µ¥¢¥É¥ì¥¹¤¬ v6 ¤Ë¥Þ¥Ã¥×¤µ¤ì¡¢¤½¤ÎÀܳ (¥Ñ¥±¥Ã¥È) ¤â v6 ¤Ë¥Þ¥Ã¥×¤µ¤ì¤ë¡£ -.\"nakano: ºÇ¸å¤Î it ¤¬¤Ê¤Ë¤ò»Ø¤¹¤Î¤«¤ï¤«¤é¤ó¡£ -.SS ¥¢¥É¥ì¥¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È +IPv4 と IPv6 はローカルポート空間を共有する。 +IPv4 の接続 (またはパケット) を IPv6 ソケットが取得すると、 +発信元アドレスが v6 にマップされ、その接続 (パケット) も v6 にマップされる。 +.\"nakano: 最後の it がなにを指すのかわからん。 +.SS アドレスのフォーマット .in +4n .nf struct sockaddr_in6 { @@ -93,255 +93,255 @@ struct in6_addr { .in .sp .I sin6_family -¤Ï¾ï¤Ë +は常に .B AF_INET6 -¤ËÀßÄꤵ¤ì¤ë¡£ +に設定される。 .I sin6_port -¤Ï¥×¥í¥È¥³¥ë¥Ý¡¼¥È¤Ç¤¢¤ë +はプロトコルポートである .RB ( ip (7) -¤Î +の .I sin_port -¤ò»²¾È)¡£ +を参照)。 .I sin6_flowinfo -¤Ï IPv6 ¤Î¥Õ¥í¡¼»ØÄê»Ò (flow identifier) ¤Ç¤¢¤ë¡£ +は IPv6 のフロー指定子 (flow identifier) である。 .I sin6_addr -¤Ï 128 ¥Ó¥Ã¥È¤Î IPv6 ¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +は 128 ビットの IPv6 アドレスである。 .I sin6_scope_id -¤Ï¥¢¥É¥ì¥¹¤Î¥¹¥³¡¼¥×¤Ë°Í¸¤·¤¿ ID ¤Ç¤¢¤ë -(¤³¤ì¤Ï Linux 2.4 ¤ÇƳÆþ¤µ¤ì¤¿)¡£ -Linux ¤Î¾ì¹ç¤Ï¡¢¤³¤ì¤Ï¥ê¥ó¥¯¥¹¥³¡¼¥×¥¢¥É¥ì¥¹¤Ç¤·¤«¥µ¥Ý¡¼¥È¤µ¤ì¤Ê¤¤¡£ -¤³¤Î¾ì¹ç +はアドレスのスコープに依存した ID である +(これは Linux 2.4 で導入された)。 +Linux の場合は、これはリンクスコープアドレスでしかサポートされない。 +この場合 .I sin6_scope_id -¤Ë¤Ï¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬´Þ¤Þ¤ì¤ë¤³¤È¤Ë¤Ê¤ë +にはインターフェースのインデックスが含まれることになる .RB ( netdevice (7) -¤ò»²¾È)¡£ +を参照)。 .PP -IPv6 ¤Ï²¿¼ïÎफ¤Î¥¢¥É¥ì¥¹¥¿¥¤¥×¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -ñ°ì¤Î¥Û¥¹¥È¤ò¥¢¥É¥ì¥¹¤¹¤ë¤¿¤á¤Î unicast¡¢ -¥Û¥¹¥È¤Î¥°¥ë¡¼¥×¤ò¥¢¥É¥ì¥¹¤¹¤ë¤¿¤á¤Î multicast¡¢ -¥Û¥¹¥È¤Î¥°¥ë¡¼¥×Ãæ¤ÇºÇ¤â¶á¤¯¤Ë¤¤¤ë¤â¤Î¤ò¥¢¥É¥ì¥¹¤¹¤ë¤¿¤á¤Î anycast -(¤³¤ì¤Ï Linux ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤)¡¢ -IPv4 ¥Û¥¹¥È¤ò¥¢¥É¥ì¥¹¤¹¤ë¤¿¤á¤Î IPv4-on-IPv6¡£ -¾¤Ë¤âͽÌóºÑ¤ß¤Î¥¢¥É¥ì¥¹¥¿¥¤¥×¤¬¤¢¤ë¡£ +IPv6 は何種類かのアドレスタイプをサポートしている。 +単一のホストをアドレスするための unicast、 +ホストのグループをアドレスするための multicast、 +ホストのグループ中で最も近くにいるものをアドレスするための anycast +(これは Linux では実装されていない)、 +IPv4 ホストをアドレスするための IPv4-on-IPv6。 +他にも予約済みのアドレスタイプがある。 .PP -IPv6 ¤Ç¤Î¥¢¥É¥ì¥¹É½µ­¤Ï 4 ·å¤Î 16 ¿Ê¿ô 8 ¸Ä¤«¤é¤Ê¤ê¡¢ -\(aq:\(aq ¤Ï¶èÀÚ¤êʸ»ú¤Ï¤Ç¡¢"::" ¤Ï 0 ¥Ó¥Ã¥È¤Îʸ»úÎó¤òɽ¤¹¡£ -Æüì¤Ê¥¢¥É¥ì¥¹¤È¤·¤Æ¡¢¥ë¡¼¥×¥Ð¥Ã¥¯¤òɽ¤¹ ::1¡¢ -IPv4-mapped-on-IPv6 ¤òɽ¤¹ ::FFFF:: ¤¬¤¢¤ë¡£ +IPv6 でのアドレス表記は 4 桁の 16 進数 8 個からなり、 +\(aq:\(aq は区切り文字はで、"::" は 0 ビットの文字列を表す。 +特殊なアドレスとして、ループバックを表す ::1、 +IPv4-mapped-on-IPv6 を表す ::FFFF:: がある。 .PP -IPv6 ¤Î¥Ý¡¼¥È¶õ´Ö¤Ï IPv4 ¤È¶¦Í­¤µ¤ì¤Æ¤¤¤ë¡£ -.SS ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó -IPv6 ¤Ï¥×¥í¥È¥³¥ë¸ÇÍ­¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤ò¤¤¤¯¤Ä¤«¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Ï +IPv6 のポート空間は IPv4 と共有されている。 +.SS ソケットオプション +IPv6 はプロトコル固有のソケットオプションをいくつかサポートしている。 +これらは .BR setsockopt (2) -¤ÇÀßÄê¤Ç¤­¡¢ +で設定でき、 .BR getsockopt (2) -¤Ç¼èÆÀ¤Ç¤­¤ë¡£ -IPv6 ¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¥ì¥Ù¥ë¤Ï +で取得できる。 +IPv6 のソケットオプションレベルは .B IPPROTO_IPV6 -¤Ç¤¢¤ë¡£ -¥Ö¡¼¥ëÀ°¿ô¤Î¥Õ¥é¥°¤Ï¡¢0 ¤¬µ¶¤Ç¤¢¤ê¡¢¤½¤ì°Ê³°¤Ï¿¿¤Ç¤¢¤ë¡£ +である。 +ブール整数のフラグは、0 が偽であり、それ以外は真である。 .TP .B IPV6_ADDRFORM .B AF_INET6 -¥½¥±¥Ã¥È¤òÊ̤Υ¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤Î¥½¥±¥Ã¥È¤ËÊѤ¨¤ë¡£ -¸½ºß¤Ï +ソケットを別のアドレスファミリーのソケットに変える。 +現在は .B AF_INET -¤Î¤ß¤¬Êѹ¹Àè¤Î¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤È¤·¤Æ¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤¬µö²Ä¤µ¤ì¤ë¤Î¤Ï¡¢IPv6 ¤¬Àܳ¤µ¤ì¡¢ -v4-mapped-on-v6 ¥¢¥É¥ì¥¹¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¤¿¾ì¹ç¤Ë¸Â¤é¤ì¤ë¡£ -°ú¤­¿ô¤Ï +のみが変更先のアドレスファミリーとしてサポートされている。 +これが許可されるのは、IPv6 が接続され、 +v4-mapped-on-v6 アドレスにバインドされた場合に限られる。 +引き数は .B AF_INET -¤¬Æþ¤Ã¤Æ¤¤¤ëÀ°¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -v4-mapped ¥½¥±¥Ã¥È¤ò¡¢IPv6 API ¤ò°·¤¨¤Ê¤¤¥×¥í¥°¥é¥à¤ËÂФ·¤Æ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤È¤·¤ÆÅϤ¹¾ì¹ç¤ËÊØÍø¡£ +が入っている整数へのポインタである。 +v4-mapped ソケットを、IPv6 API を扱えないプログラムに対して +ファイルディスクリプターとして渡す場合に便利。 .TP .B IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP -multicast ¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð¡¼¤òÀ©¸æ¤¹¤ë¡£ -°ú¤­¿ô¤Ï +multicast グループのメンバーを制御する。 +引き数は .I struct ipv6_mreq -¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¡£ -.\" FIXME IPV6_CHECKSUM ¤Ïµ­½Ò¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢µ­½Ò¤¹¤Ù¤­¤À¤í¤¦¡£ -.\" FIXME IPV6_JOIN_ANYCAST ¤Ïµ­½Ò¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢µ­½Ò¤¹¤Ù¤­¤À¤í¤¦¡£ -.\" FIXME IPV6_LEAVE_ANYCAST ¤Ïµ­½Ò¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢µ­½Ò¤¹¤Ù¤­¤À¤í¤¦¡£ -.\" FIXME IPV6_RECVPKTINFO ¤Ïµ­½Ò¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢µ­½Ò¤¹¤Ù¤­¤À¤í¤¦¡£ -.\" FIXME IPV6_2292PKTINFO ¤Ïµ­½Ò¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢µ­½Ò¤¹¤Ù¤­¤À¤í¤¦¡£ -.\" FIXME ¾¤Ë¤â¿¤¯¤Îµ­½Ò¤¹¤Ù¤­ IPV6_* ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬¤¢¤ë¤À¤í¤¦¡£ +構造体へのポインタ。 +.\" FIXME IPV6_CHECKSUM は記述されていないが、記述すべきだろう。 +.\" FIXME IPV6_JOIN_ANYCAST は記述されていないが、記述すべきだろう。 +.\" FIXME IPV6_LEAVE_ANYCAST は記述されていないが、記述すべきだろう。 +.\" FIXME IPV6_RECVPKTINFO は記述されていないが、記述すべきだろう。 +.\" FIXME IPV6_2292PKTINFO は記述されていないが、記述すべきだろう。 +.\" FIXME 他にも多くの記述すべき IPV6_* ソケットオプションがあるだろう。 .TP .B IPV6_MTU -¤½¤Î¥½¥±¥Ã¥È¤ËÂФ·¤ÆÍѤ¤¤ë MTU ¤ÎÃͤòÀßÄꤹ¤ë¡£ -MTU ¤ÎÂ礭¤µ¤Ï¡¢ -¤½¤Î¥Ç¥Ð¥¤¥¹¤Î MTU ¤Þ¤¿¤Ï (Path MTU Discovery -¤¬²Äǽ¤Ê¤é) ¤½¤Î·ÐÏ©¤Î MTU ¤ÎÂ礭¤µ°Ê²¼¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -°ú¤­¿ô¤ÏÀ°¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ +そのソケットに対して用いる MTU の値を設定する。 +MTU の大きさは、 +そのデバイスの MTU または (Path MTU Discovery +が可能なら) その経路の MTU の大きさ以下でなければならない。 +引き数は整数へのポインタ。 .TP .B IPV6_MTU_DISCOVER -¤½¤Î¥½¥±¥Ã¥È¤Ç¤Î Path MTU Discovery ¤òÀ©¸æ¤¹¤ë¡£ -¾ÜºÙ¤Ï +そのソケットでの Path MTU Discovery を制御する。 +詳細は .BR ip (7) -¤Î +の .B IP_MTU_DISCOVER -¤ò»²¾È¡£ +を参照。 .TP .B IPV6_MULTICAST_HOPS -¤½¤Î¥½¥±¥Ã¥È¤Ç¤Î multicast ¤Î hop ¿ô¤Î¾å¸ÂÃͤòÀßÄꤹ¤ë¡£ -°ú¤­¿ô¤ÏÀ°¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -\-1 ¤ò»ØÄꤹ¤ë¤È·ÐÏ©¤Î¥Ç¥Õ¥©¥ë¥È¤òÍѤ¤¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤«¤é 255 ¤ÎÈϰϤò»ØÄꤹ¤ë¡£ +そのソケットでの multicast の hop 数の上限値を設定する。 +引き数は整数へのポインタである。 +\-1 を指定すると経路のデフォルトを用いることを意味する。 +それ以外の場合は 0 から 255 の範囲を指定する。 .TP .B IPV6_MULTICAST_IF -¤½¤Î¥½¥±¥Ã¥È¤Ç¤Î¡¢Á÷¿® multicast ¥Ñ¥±¥Ã¥È¤ËÍѤ¤¤ë¥Ç¥Ð¥¤¥¹¤òÀßÄꤹ¤ë¡£ -¤³¤ì¤Ï +そのソケットでの、送信 multicast パケットに用いるデバイスを設定する。 +これは .B SOCK_DGRAM -¤ª¤è¤Ó +および .B SOCK_RAW -³Æ¥½¥±¥Ã¥È¤Ç¤Î¤ßµö¤µ¤ì¤ë¡£ -°ú¤­¿ô¤Ï¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÎÀ°¿ôÃÍ +各ソケットでのみ許される。 +引き数はインターフェースのインデックスの整数値 .RB ( netdevice (7) -¤ò»²¾È) ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +を参照) へのポインタである。 .TP .B IPV6_MULTICAST_LOOP -¥½¥±¥Ã¥È¤¬¡¢¼«Ê¬¼«¿È¤ÎÁ÷¿®¤·¤¿ -multicast ¥Ñ¥±¥Ã¥È¤ò´Æ»ë¤¹¤ë¤«¤É¤¦¤«¤òÀ©¸æ¤¹¤ë¡£ -°ú¤­¿ô¤Ï¥Ö¡¼¥ëÃͤؤΥݥ¤¥ó¥¿¡£ +ソケットが、自分自身の送信した +multicast パケットを監視するかどうかを制御する。 +引き数はブール値へのポインタ。 .TP .B IPV6_PKTINFO -¥Ç¡¼¥¿¥°¥é¥à¤ÎÅþÃå»þ¤Ë¤ª¤±¤ë +データグラムの到着時における .B IPV6_PKTINFO -À©¸æ¥á¥Ã¥»¡¼¥¸¤òÇÛÁ÷¤¹¤ë¤«¤É¤¦¤«¤òÀßÄꤹ¤ë¡£ +制御メッセージを配送するかどうかを設定する。 .B SOCK_DGRAM -¥½¥±¥Ã¥È¤Þ¤¿¤Ï +ソケットまたは .B SOCK_RAW -¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤Î¤ßµö²Ä¤µ¤ì¤ë¡£ -°ú¤­¿ô¤Ï¥Ö¡¼¥ëÃͤÎÆþ¤Ã¤¿À°¿ô¡£ +ソケットに対してのみ許可される。 +引き数はブール値の入った整数。 .TP .nh .B IPV6_RTHDR, IPV6_AUTHHDR, IPV6_DSTOPTS, IPV6_HOPOPTS, IPV6_FLOWINFO, IPV6_HOPLIMIT .hy -¼õ¿®¥Ñ¥±¥Ã¥È¤Î¥Ç¡¼¥¿¥°¥é¥à¤Ë³ÈÄ¥¥Ø¥Ã¥À¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤Î¡¢ -À©¸æ¥á¥Ã¥»¡¼¥¸¤ÎÇÛÁ÷¤òÀßÄꤹ¤ë¡£ +受信パケットのデータグラムに拡張ヘッダが含まれている場合の、 +制御メッセージの配送を設定する。 .BR IPV6_RTHDR : -routing ¥Ø¥Ã¥À¤òÇÛÁ÷¤¹¤ë¤«¤É¤¦¤«¡£ +routing ヘッダを配送するかどうか。 .BR IPV6_AUTHHDR : -authentication ¥Ø¥Ã¥À¤òÇÛÁ÷¤¹¤ë¤«¤É¤¦¤«¡£ +authentication ヘッダを配送するかどうか。 .BR IPV6_DSTOPTS : -destination ¥ª¥×¥·¥ç¥ó¤òÇÛÁ÷¤¹¤ë¤«¤É¤¦¤«¡£ +destination オプションを配送するかどうか。 .BR IPV6_HOPOPTS : -hop ¥ª¥×¥·¥ç¥ó¤òÇÛÁ÷¤¹¤ë¤«¤É¤¦¤«¡£ +hop オプションを配送するかどうか。 .BR IPV6_FLOWINFO : -flow ID ¤ò´Þ¤àÀ°¿ô¤òÇÛÁ÷¤¹¤ë¤«¤É¤¦¤«¡£ +flow ID を含む整数を配送するかどうか。 .BR IPV6_HOPLIMIT : -¥Ñ¥±¥Ã¥È¤Î hop ¥«¥¦¥ó¥È¤ò´Þ¤àÀ°¿ô¤òÇÛÁ÷¤¹¤ë¤«¤É¤¦¤«¡£ -À©¸æ¥á¥Ã¥»¡¼¥¸¤Ï¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤Î¤â¤Î¤ÈƱ¤¸¥¿¥¤¥×¤ò»ý¤Ä¡£ -¤³¤ì¤é¤Î¤¹¤Ù¤Æ¤Î¥Ø¥Ã¥À¥ª¥×¥·¥ç¥ó¤Ï¡¢ -ŬÀÚ¤ÊÀ©¸æ¥á¥Ã¥»¡¼¥¸¤ò +パケットの hop カウントを含む整数を配送するかどうか。 +制御メッセージはソケットオプションのものと同じタイプを持つ。 +これらのすべてのヘッダオプションは、 +適切な制御メッセージを .BR sendmsg (2) -¤ÎÀ©¸æ¥Ð¥Ã¥Õ¥¡¡¼¤Ë½ñ¤­¤³¤á¤Ð¡¢ -Á÷¿®¥Ñ¥±¥Ã¥È¤Ë¤Ç¤âÀßÄê¤Ç¤­¤ë¡£ +の制御バッファーに書きこめば、 +送信パケットにでも設定できる。 .B SOCK_DGRAM -¥½¥±¥Ã¥È¤Þ¤¿¤Ï +ソケットまたは .B SOCK_RAW -¥½¥±¥Ã¥È¤Ç¤Î¤ßµö¤µ¤ì¤ë¡£°ú¤­¿ô¤Ï¥Ö¡¼¥ëÃͤؤΥݥ¤¥ó¥¿¡£ +ソケットでのみ許される。引き数はブール値へのポインタ。 .TP .B IPV6_RECVERR -ÈóƱ´ü¥¨¥é¡¼ (asynchronous error) ¥ª¥×¥·¥ç¥ó¤Î¼õ¿®¤òÀ©¸æ¤¹¤ë¡£ -¾ÜºÙ¤Ï +非同期エラー (asynchronous error) オプションの受信を制御する。 +詳細は .BR ip (7) -¤Î +の .B IP_RECVERR -¤ò»²¾È¡£ -°ú¤­¿ô¤Ï¥Ö¡¼¥ëÃͤؤΥݥ¤¥ó¥¿¡£ +を参照。 +引き数はブール値へのポインタ。 .TP .B IPV6_ROUTER_ALERT -¤³¤Î¥½¥±¥Ã¥È¤Ç¡¢router alert hop-by-hop ¥ª¥×¥·¥ç¥ó¤ÎÉÕ¤¤¤¿Å¾Á÷¥Ñ¥±¥Ã¥È¤ò -Ä̤¹¤«¤É¤¦¤«¤òÀ©¸æ¤¹¤ë¡£ +このソケットで、router alert hop-by-hop オプションの付いた転送パケットを +通すかどうかを制御する。 .B SOCK_RAW -¥½¥±¥Ã¥È¤Ç¤Î¤ßµö²Ä¤µ¤ì¤ë¡£ -tap ¤µ¤ì¤¿¥Ñ¥±¥Ã¥È¤Ï¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ¤ÏžÁ÷¤µ¤ì¤Ê¤¤¡£¤½¤¦¤·¤¿¥Ñ¥±¥Ã¥È¤ò -ºÆÅÙÁ÷¿®¤¹¤ë¤Î¤Ï¥æ¡¼¥¶¡¼¤ÎÀÕǤ¤Ç¤¢¤ë¡£ -°ú¤­¿ô¤ÏÀ°¿ô (integer) ¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ -Àµ¤ÎÀ°¿ô¤Ï˵¼õ¤ò¹Ô¤¦ router alert ¥ª¥×¥·¥ç¥óÃͤò¼¨¤¹¡£ -¥ª¥×¥·¥ç¥óÃͤ¬¤³¤ÎÀ°¿ô¤Ç¤¢¤ë router alert ¥ª¥×¥·¥ç¥ó¤ÎÉÕ¤¤¤¿¥Ñ¥±¥Ã¥È¤Ï -¥½¥±¥Ã¥È¤ËÇÛÁ÷¤µ¤ì¤ë¡£Éé¤ÎÀ°¿ô¤ò»ØÄꤹ¤ë¤È¡¢¤³¤Î¥½¥±¥Ã¥È¤Ø¤Î -router alert ¥ª¥×¥·¥ç¥ó¤ÎÉÕ¤¤¤¿¥Ñ¥±¥Ã¥È¤ÎÇÛÁ÷¤¬¹Ô¤ï¤ì¤Ê¤¤¡£ +ソケットでのみ許可される。 +tap されたパケットはカーネルによっては転送されない。そうしたパケットを +再度送信するのはユーザーの責任である。 +引き数は整数 (integer) へのポインタ。 +正の整数は傍受を行う router alert オプション値を示す。 +オプション値がこの整数である router alert オプションの付いたパケットは +ソケットに配送される。負の整数を指定すると、このソケットへの +router alert オプションの付いたパケットの配送が行われない。 .\" FLOWLABEL_MGR, FLOWINFO_SEND .TP .B IPV6_UNICAST_HOPS -¤½¤Î¥½¥±¥Ã¥È¤Ç¤Î unicast ¤Î hop ¿ô¤Î¾å¸ÂÃͤòÀßÄꤹ¤ë¡£ -°ú¤­¿ô¤ÏÀ°¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -\-1 ¤ò»ØÄꤹ¤ë¤È·ÐÏ©¤Î¥Ç¥Õ¥©¥ë¥È¤òÍѤ¤¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 ¤«¤é 255 ¤ÎÈϰϤò»ØÄꤹ¤ë¡£ +そのソケットでの unicast の hop 数の上限値を設定する。 +引き数は整数へのポインタである。 +\-1 を指定すると経路のデフォルトを用いることを意味する。 +それ以外の場合は 0 から 255 の範囲を指定する。 .TP -.BR IPV6_V6ONLY " (Linux 2.4.21 °Ê¹ß¤ª¤è¤Ó 2.6 °Ê¹ß)" +.BR IPV6_V6ONLY " (Linux 2.4.21 以降および 2.6 以降)" .\" See RFC 3493 -¤³¤Î¥Õ¥é¥°¤ò¿¿ (0 °Ê³°) ¤ËÀßÄꤹ¤ë¤È¡¢¤½¤Î¥½¥±¥Ã¥È¤Ï IPv6 ¥Ñ¥±¥Ã¥È¤À¤±¤ò -Á÷¼õ¿®¤¹¤ë¤è¤¦¤ËÀ©¸Â¤µ¤ì¤ë¡£ -¤³¤Î¾ì¹ç¡¢IPv4 ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤È IPv6 ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬Æ±»þ¤Ë -°ì¤Ä¤Î¥Ý¡¼¥È¤ò¥Ð¥¤¥ó¥É¤Ç¤­¤ë¡£ +このフラグを真 (0 以外) に設定すると、そのソケットは IPv6 パケットだけを +送受信するように制限される。 +この場合、IPv4 アプリケーションと IPv6 アプリケーションが同時に +一つのポートをバインドできる。 -¤³¤Î¥Õ¥é¥°¤òµ¶ (0) ¤ËÀßÄꤹ¤ë¤È¡¢¤½¤Î¥½¥±¥Ã¥È¤Ï¥Ñ¥±¥Ã¥È¤ÎÁ÷¼õ¿®¤Ë -IPv6 ¥¢¥É¥ì¥¹¤È IPv4-mapped IPv6 ¥¢¥É¥ì¥¹¤ÎξÊý¤ò»ÈÍѤǤ­¤ë¡£ +このフラグを偽 (0) に設定すると、そのソケットはパケットの送受信に +IPv6 アドレスと IPv4-mapped IPv6 アドレスの両方を使用できる。 -°ú¤­¿ô¤Ï¥Ö¡¼¥ëÃͤÎÆþ¤Ã¤¿À°¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ +引き数はブール値の入った整数へのポインタである。 -¤³¤Î¥Õ¥é¥°¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤϥե¡¥¤¥ë +このフラグのデフォルト値はファイル .I /proc/sys/net/ipv6/bindv6only -¤ÎÆâÍƤˤè¤êÄêµÁ¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 0 (µ¶) ¤Ç¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -IPv6 API ¤ò libc5 ¥Ù¡¼¥¹¤Ç Linux ¸þ¤±¤Ë¼ÂÁõ¤·¤¿¡¢°ÊÁ°¤Î +の内容により定義される。 +このファイルのデフォルト値は 0 (偽) である。 +.SH バージョン +IPv6 API を libc5 ベースで Linux 向けに実装した、以前の .I libinet6 -¤Ë¤Ä¤¤¤Æ¤Ï¤³¤³¤Ç¤Ïµ­½Ò¤·¤Æ¤¤¤Ê¤¤¡£ -¤ª¤½¤é¤¯ºÙ¤«¤¤¤È¤³¤í¤Ë¤ÏÁê°ãÅÀ¤¬¤¢¤ë¤À¤í¤¦¡£ +についてはここでは記述していない。 +おそらく細かいところには相違点があるだろう。 .PP -Linux 2.4 ¤Ç¤Ï 64 ¥Ó¥Ã¥È¤Î¥Û¥¹¥È¤ËÂФ·¤Æ +Linux 2.4 では 64 ビットのホストに対して .I sockaddr_in6 -¤Î¥Ð¥¤¥Ê¥ê¸ß´¹À­¤¬Êݤ¿¤ì¤Æ¤¤¤Ê¤¤¡£ +のバイナリ互換性が保たれていない。 .I in6_addr -¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤¬Êѹ¹¤µ¤ì¡¢¤Þ¤¿ +のアラインメントが変更され、また .I sin6_scope_id -¥Õ¥£¡¼¥ë¥É¤¬¿·¤¿¤ËÄɲ䵤줿¤«¤é¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¸ß´¹À­¤ÏÊݤ¿¤ì¤Æ¤¤¤ë¤¬¡¢ +フィールドが新たに追加されたからである。 +カーネルインターフェースの互換性は保たれているが、 .I sockaddr_in6 -¤ä +や .I in6_addr -¤ò¾¤Î¹½Â¤ÂΤ˴ޤó¤Ç¤¤¤ë¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï -Êݤ¿¤ì¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤ì¤Ï i386 ¤Î¤è¤¦¤Ê 32 ¥Ó¥Ã¥È¤Î¥Û¥¹¥È¤Ç¤ÏÌäÂê¤Ë¤Ê¤é¤Ê¤¤¡£ +を他の構造体に含んでいるようなプログラムでは +保たれないかもしれない。 +これは i386 のような 32 ビットのホストでは問題にならない。 .PP .I sin6_flowinfo -¥Õ¥£¡¼¥ë¥É¤Ï Linux 2.4 ¤ÇÅо줷¤¿¡£ -¤³¤ì¤¬ÅϤµ¤ì¤¿¥¢¥É¥ì¥¹Ä¹¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤È¡¢ -¥«¡¼¥Í¥ë¤ËÆ©²áŪ¤ËÅϤµ¤ì¡¢Æɤޤì¤ë¡£ -.\"nakano ¤³¤³¤ï¤«¤é¤Ê¤¤¤Ç¤¹... -¤è¤êŤ¤¥¢¥É¥ì¥¹¥Ð¥Ã¥Õ¥¡¤òÅϤ·¡¢ -¤½¤·¤ÆÁ÷¿®¥¢¥É¥ì¥¹¤ÎŤµ¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ï -¤¦¤Þ¤¯Æ°¤«¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -.SH Ãí°Õ +フィールドは Linux 2.4 で登場した。 +これが渡されたアドレス長に含まれていると、 +カーネルに透過的に渡され、読まれる。 +.\"nakano ここわからないです... +より長いアドレスバッファを渡し、 +そして送信アドレスの長さをチェックするようなプログラムは +うまく動かないかもしれない。 +.SH 注意 .I sockaddr_in6 -¹½Â¤ÂΤϥ¸¥§¥Í¥ê¥Ã¥¯¤Ê +構造体はジェネリックな .I sockaddr -¤è¤ê¤âÂ礭¤¤¡£ -¤¹¤Ù¤Æ¤Î¥¢¥É¥ì¥¹¥¿¥¤¥×¤¬ +よりも大きい。 +すべてのアドレスタイプが .I struct sockaddr -¤ÎÃæ¤Ë°ÂÁ´¤ËǼ¤á¤é¤ì¤ë¤È²¾Äꤷ¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤Ï¡¢Âå¤ï¤ê¤Ë +の中に安全に納められると仮定しているプログラムは、代わりに .I struct sockaddr_storage -¤òÍѤ¤¤ë¤è¤¦¤ËÊѹ¹¤¹¤ëɬÍפ¬¤¢¤ë¡£ -.SH ¥Ð¥° -IPv6 ³ÈÄ¥ API ¤Ï¡¢¸½ºß¤Þ¤À RFC\ 2292 ¤ò´°Á´¤Ë¤Ï¼ÂÁõ¤·¤Æ¤¤¤Ê¤¤¡£ -2.2 ¥«¡¼¥Í¥ë¤Ï¼õ¿®¥ª¥×¥·¥ç¥ó¤ò¤Û¤Ü´°Á´¤Ë¥µ¥Ý¡¼¥È¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤¬¡¢ -glibc2.1 ¤Ë¤Ï IPv6 ¥ª¥×¥·¥ç¥ó¤òÀ¸À®¤¹¤ë¥Þ¥¯¥í¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤¤¡£ +を用いるように変更する必要がある。 +.SH バグ +IPv6 拡張 API は、現在まだ RFC\ 2292 を完全には実装していない。 +2.2 カーネルは受信オプションをほぼ完全にサポートサポートしているが、 +glibc2.1 には IPv6 オプションを生成するマクロが存在していない。 .PP -EH ¤ª¤è¤Ó AH ¥Ø¥Ã¥À ¤Ç¤Î IPSec ¤Î¥µ¥Ý¡¼¥È¤Ï¸ºß¤·¤Ê¤¤¡£ +EH および AH ヘッダ での IPSec のサポートは存在しない。 .PP -¥Õ¥í¡¼¥é¥Ù¥ë´ÉÍý¤Ï¤Þ¤À´°Á´¤Ç¤Ê¤¯¡¢¤³¤³¤Ë¤âµ­½Ò¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +フローラベル管理はまだ完全でなく、ここにも記述されていない。 .PP -¤³¤Î man ¥Ú¡¼¥¸¤Ï¤Þ¤À´°À®¤·¤Æ¤¤¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +この man ページはまだ完成していない。 +.SH 関連項目 .BR cmsg (3), .BR ip (7) .LP RFC\ 2553: IPv6 BASIC API. -Linux ¤Ï¤³¤Î RFC ¤Ë½àµò¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤ë¡£ +Linux はこの RFC に準拠するようにしている。 .LP RFC\ 2460: IPv6 specification. diff --git a/release/man7/iso_8859-1.7 b/release/man7/iso_8859-1.7 index b8d970ad..378670a9 100644 --- a/release/man7/iso_8859-1.7 +++ b/release/man7/iso_8859-1.7 @@ -34,83 +34,83 @@ .\" .TH ISO_8859-1 7 1999-05-31 "Linux" "Linux Programmer's Manual" .nh -.SH ̾Á° -iso_8859-1 \- ISO 8859-1 ʸ»ú½¸¹ç¤Î 8¿Ê¿ô¡¢10¿Ê¿ô¡¢16¿Ê¿ô¤Ë¤è¤ëÉä¹æ²½ -.SH ÀâÌÀ -ISO 8859 µ¬³Ê¤Ï ASCII ʸ»ú½¸¹ç (ISO 6460IRV ¤È¤·¤Æ¤âÃΤé¤ì¤Æ¤¤¤ë) ¤Î -¤¤¤¯¤Ä¤«¤Î 8 ¥Ó¥Ã¥È³ÈÄ¥¤ò´Þ¤ó¤Ç¤¤¤ë¡£Æä˽ÅÍ×¤Ê¤Î¤Ï ISO 8859-1¡¢ -"¥é¥Æ¥ó¡¦¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È No. 1" ¤Ç¡¢¹­¤¯¼ÂÁõ¤µ¤ì¡¢´û¤Ë ASCII ¤ËÂå¤ï¤Ã¤Æ -»ö¼Â¾å¤Îɸ½à¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤è¤¦¤Ë¤ß¤¨¤ë¡£ +.SH 名前 +iso_8859-1 \- ISO 8859-1 文字集合の 8進数、10進数、16進数による符号化 +.SH 説明 +ISO 8859 規格は ASCII 文字集合 (ISO 6460IRV としても知られている) の +いくつかの 8 ビット拡張を含んでいる。特に重要なのは ISO 8859-1、 +"ラテン・アルファベット No. 1" で、広く実装され、既に ASCII に代わって +事実上の標準になっているようにみえる。 .P -ISO 8859-1 ¤Ï°Ê²¼¤Î¸À¸ì¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë: ¥¢¥Õ¥ê¥«¡¼¥ó¥¹¸ì¡¢¥Ð¥¹¥¯¸ì¡¢ -¥«¥¿¥í¥Ë¥¢¸ì¡¢¥Ç¥ó¥Þ¡¼¥¯¸ì¡¢¥ª¥é¥ó¥À¸ì¡¢±Ñ¸ì¡¢¥Õ¥§¥í¡¼¸ì¡¢¥Õ¥£¥ó¥é¥ó¥É¸ì¡¢ -¥Õ¥é¥ó¥¹¸ì¡¢¥¬¥ê¥·¥¢¸ì¡¢¥É¥¤¥Ä¸ì¡¢¥¢¥¤¥¹¥é¥ó¥É¸ì¡¢¥¢¥¤¥ë¥é¥ó¥É¸ì¡¢¥¤¥¿¥ê¥¢¸ì¡¢ -¥Î¥ë¥¦¥§¡¼¸ì¡¢¥Ý¥ë¥È¥¬¥ë¸ì¡¢¥¹¥³¥Ã¥È¥é¥ó¥É¸ì¡¢¥¹¥Ú¥¤¥ó¸ì¡¢¥¹¥¦¥§¡¼¥Ç¥ó¸ì +ISO 8859-1 は以下の言語をサポートしている: アフリカーンス語、バスク語、 +カタロニア語、デンマーク語、オランダ語、英語、フェロー語、フィンランド語、 +フランス語、ガリシア語、ドイツ語、アイスランド語、アイルランド語、イタリア語、 +ノルウェー語、ポルトガル語、スコットランド語、スペイン語、スウェーデン語 .P -ISO 8859-1 ¤Îʸ»ú¤Ï ISO 10646 (Unicode) ¤ÎºÇ½é¤Î 256 ʸ»ú¤Ç¤¢¤ë¤³¤È¤Ë -Ãí°Õ¤·¤Æ¤Û¤·¤¤¡£ -.SS "ISO 8859 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È" -´°Á´¤Ê ISO 8859 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Ï°Ê²¼¤Î¤â¤Î¤ò´Þ¤ó¤Ç¤¤¤ë: +ISO 8859-1 の文字は ISO 10646 (Unicode) の最初の 256 文字であることに +注意してほしい。 +.SS "ISO 8859 アルファベット" +完全な ISO 8859 アルファベットは以下のものを含んでいる: .TS l l. -ISO 8859-1 À¾¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-1) -ISO 8859-2 Ãæ±û¤ª¤è¤ÓÅì¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-2) -ISO 8859-3 ÅìÆî¥è¡¼¥í¥Ã¥Ñ¤ä¤½¤Î¾¤Î¸À¸ì (Latin-3) -ISO 8859-4 ¥¹¥«¥ó¥¸¥Ê¥Ó¥¢/¥Ð¥ë¥È¸ìÇɤθÀ¸ì (Latin-4) -ISO 8859-5 ¥é¥Æ¥ó/¥­¥ê¥ëʸ»ú -ISO 8859-6 ¥é¥Æ¥ó/¥¢¥é¥Ó¥¢¸ì -ISO 8859-7 ¥é¥Æ¥ó/¥®¥ê¥·¥ã¸ì -ISO 8859-8 ¥é¥Æ¥ó/¥Ø¥Ö¥é¥¤¸ì -ISO 8859-9 ¥È¥ë¥³¸ì½¤Àµ¤ò¹Ô¤Ê¤Ã¤¿ Latin-1 (Latin-5) -ISO 8859-10 ¥é¥Ã¥×/¥Î¥ë¥Ç¥£¥Ã¥¯/¥¨¥¹¥­¥â¡¼¤Î¸À¸ì (Latin-6) -ISO 8859-11 ¥é¥Æ¥ó/¥¿¥¤¸ì -ISO 8859-13 ¥Ð¥ë¥È½ô¹ñ¤Î¸À¸ì (Latin-7) -ISO 8859-14 ¥±¥ë¥È¸ì (Latin-8) -ISO 8859-15 À¾¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-9) -ISO 8859-16 ¥ë¡¼¥Þ¥Ë¥¢¸ì (Latin-10) +ISO 8859-1 西ヨーロッパの言語 (Latin-1) +ISO 8859-2 中央および東ヨーロッパの言語 (Latin-2) +ISO 8859-3 東南ヨーロッパやその他の言語 (Latin-3) +ISO 8859-4 スカンジナビア/バルト語派の言語 (Latin-4) +ISO 8859-5 ラテン/キリル文字 +ISO 8859-6 ラテン/アラビア語 +ISO 8859-7 ラテン/ギリシャ語 +ISO 8859-8 ラテン/ヘブライ語 +ISO 8859-9 トルコ語修正を行なった Latin-1 (Latin-5) +ISO 8859-10 ラップ/ノルディック/エスキモーの言語 (Latin-6) +ISO 8859-11 ラテン/タイ語 +ISO 8859-13 バルト諸国の言語 (Latin-7) +ISO 8859-14 ケルト語 (Latin-8) +ISO 8859-15 西ヨーロッパの言語 (Latin-9) +ISO 8859-16 ルーマニア語 (Latin-10) .TE -.SS "ISO 8859-1 ʸ»ú" -°Ê²¼¤Îɽ¤Ï ISO 8859-1 (Latin-1) ¤Îɽ¼¨²Äǽ¤Êʸ»ú¤Î¤¦¤Á +.SS "ISO 8859-1 文字" +以下の表は ISO 8859-1 (Latin-1) の表示可能な文字のうち .BR ascii (7) -¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤ËºÜ¤Ã¤Æ¤¤¤Ê¤¤¤â¤Î¤ò¼¨¤·¤Æ¤¤¤ë¡£ -4ÎóÌÜ¤Ï ISO 8859-1 ÍѤËÀßÄꤵ¤ì¤¿´Ä¶­¤Ç¤Î¤ßÀµ¤·¤¯É½¼¨¤Ç¤­¤ë¤À¤í¤¦¡£ +マニュアル・ページに載っていないものを示している。 +4列目は ISO 8859-1 用に設定された環境でのみ正しく表示できるだろう。 -[ ÌõÃí ¸¶Ê¸¤Ç¤Ï Char ¤ÎÉôʬ¤Ë ISO 8859-1 ¤Îʸ»ú¤¬¤¢¤Ã¤¿¤¬¡¢ -ÆüËܸì EUC ¤È¤ÎÊ»ÍѤÏÆñ¤·¤¤¤Î¤Çºï½ü¤·¡¢JIS X 0208 ¤ÎƱ¤¸Ê¸»ú¤ò -¼¨¤¹¤è¤¦¤Ë¤·¤¿¡£¤½¤Î¾¤Îʸ»ú¤Ë´Ø¤·¤Æ¤Ï -±Ñ¸ìÈǤΠiso_8859-1(7) ¤ò»²¾È¡£ ] +[ 訳注 原文では Char の部分に ISO 8859-1 の文字があったが、 +日本語 EUC との併用は難しいので削除し、JIS X 0208 の同じ文字を +示すようにした。その他の文字に関しては +英語版の iso_8859-1(7) を参照。 ] .TS l l l c lp-1. Oct Dec Hex Char Description _ 240 160 A0 NO-BREAK SPACE 241 161 A1 INVERTED EXCLAMATION MARK -242 162 A2 ¡ñ CENT SIGN -243 163 A3 ¡ò POUND SIGN +242 162 A2 ¢ CENT SIGN +243 163 A3 £ POUND SIGN 244 164 A4 CURRENCY SIGN -245 165 A5 ¡ï YEN SIGN +245 165 A5 Â¥ YEN SIGN 246 166 A6 BROKEN BAR -247 167 A7 ¡ø SECTION SIGN -250 168 A8 ¡¯ DIAERESIS +247 167 A7 § SECTION SIGN +250 168 A8 ¨ DIAERESIS 251 169 A9 COPYRIGHT SIGN 252 170 AA FEMININE ORDINAL INDICATOR -253 171 AB ¡Ô LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -254 172 AC ¢Ì NOT SIGN +253 171 AB 《 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +254 172 AC ¬ NOT SIGN 255 173 AD SOFT HYPHEN 256 174 AE REGISTERED SIGN 257 175 AF MACRON -260 176 B0 ¡ë DEGREE SIGN -261 177 B1 ¡Þ PLUS-MINUS SIGN +260 176 B0 ° DEGREE SIGN +261 177 B1 ± PLUS-MINUS SIGN 262 178 B2 SUPERSCRIPT TWO 263 179 B3 SUPERSCRIPT THREE -264 180 B4 ¡­ ACUTE ACCENT -265 181 B5 ¦Ì MICRO SIGN -266 182 B6 ¢ù PILCROW SIGN -267 183 B7 ¡¦ MIDDLE DOT +264 180 B4 ´ ACUTE ACCENT +265 181 B5 μ MICRO SIGN +266 182 B6 ¶ PILCROW SIGN +267 183 B7 ・ MIDDLE DOT 270 184 B8 CEDILLA 271 185 B9 SUPERSCRIPT ONE 272 186 BA MASCULINE ORDINAL INDICATOR -273 187 BB ¡Õ RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +273 187 BB 》 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 274 188 BC VULGAR FRACTION ONE QUARTER 275 189 BD VULGAR FRACTION ONE HALF 276 190 BE VULGAR FRACTION THREE QUARTERS @@ -138,7 +138,7 @@ _ 324 212 D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX 325 213 D5 LATIN CAPITAL LETTER O WITH TILDE 326 214 D6 LATIN CAPITAL LETTER O WITH DIAERESIS -327 215 D7 ¡ß MULTIPLICATION SIGN +327 215 D7 × MULTIPLICATION SIGN 330 216 D8 LATIN CAPITAL LETTER O WITH STROKE 331 217 D9 LATIN CAPITAL LETTER U WITH GRAVE 332 218 DA LATIN CAPITAL LETTER U WITH ACUTE @@ -170,7 +170,7 @@ _ 364 244 F4 LATIN SMALL LETTER O WITH CIRCUMFLEX 365 245 F5 LATIN SMALL LETTER O WITH TILDE 366 246 F6 LATIN SMALL LETTER O WITH DIAERESIS -367 247 F7 ¡à DIVISION SIGN +367 247 F7 ÷ DIVISION SIGN 370 248 F8 LATIN SMALL LETTER O WITH STROKE 371 249 F9 LATIN SMALL LETTER U WITH GRAVE 372 250 FA LATIN SMALL LETTER U WITH ACUTE @@ -180,6 +180,6 @@ _ 376 254 FE LATIN SMALL LETTER THORN 377 255 FF LATIN SMALL LETTER Y WITH DIAERESIS .TE -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ascii (7), .BR iso_8859-15 (7) diff --git a/release/man7/iso_8859-15.7 b/release/man7/iso_8859-15.7 index b584a8a5..b4ff8dff 100644 --- a/release/man7/iso_8859-15.7 +++ b/release/man7/iso_8859-15.7 @@ -30,85 +30,85 @@ .\" .TH ISO_8859-15 7 1999-05-31 "Linux" "Linux Programmer's Manual" .nh -.SH ̾Á° -iso_8859-15 \- ISO 8859-15 ʸ»ú½¸¹ç¤Î 8¿Ê¿ô¡¢10¿Ê¿ô¡¢16¿Ê¿ô¤Ë¤è¤ëÉä¹æ²½ -.SH ÀâÌÀ -ISO 8859 µ¬³Ê¤Ï ASCII ʸ»ú½¸¹ç (ISO 646-IRV ¤È¤â¸Æ¤Ð¤ì¤ë) ¤Î -¤¤¤¯¤Ä¤«¤Î 8 ¥Ó¥Ã¥È³ÈÄ¥¤ò´Þ¤ó¤Ç¤¤¤ë¡£Æä˽ÅÍ×¤Ê ISO 8859-1¡¢ -"¥é¥Æ¥ó¡¦¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È No. 1" ¤Ç¡¢¹­¤¯¼ÂÁõ¤µ¤ì¡¢´û¤Ë ASCII ¤ËÂå¤ï¤Ã¤Æ -»ö¼Â¾å¤Îɸ½à¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤è¤¦¤Ë¤ß¤¨¤ë¡£°ìÊý¤Ç¤½¤ì¤Ï¥æ¡¼¥í (EURO) µ­¹æ¤¬ -´Þ¤Þ¤ì¤Æ¤ª¤é¤º¡¢¥Õ¥£¥ó¥é¥ó¥É¸ì¤È¥Õ¥é¥ó¥¹¸ì¤ò´°Á´¤Ë¥µ¥Ý¡¼¥È¤Ç¤­¤Æ¤¤¤Ê¤¤¡£ -ISO 8859-15 ¤Ï¤³¤ì¤é¤ÎÍ×µá¤òËþ¤¿¤¹¤¿¤á¤Ë ISO 8859-1 ¤ò½¤Àµ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ +.SH 名前 +iso_8859-15 \- ISO 8859-15 文字集合の 8進数、10進数、16進数による符号化 +.SH 説明 +ISO 8859 規格は ASCII 文字集合 (ISO 646-IRV とも呼ばれる) の +いくつかの 8 ビット拡張を含んでいる。特に重要な ISO 8859-1、 +"ラテン・アルファベット No. 1" で、広く実装され、既に ASCII に代わって +事実上の標準になっているようにみえる。一方でそれはユーロ (EURO) 記号が +含まれておらず、フィンランド語とフランス語を完全にサポートできていない。 +ISO 8859-15 はこれらの要求を満たすために ISO 8859-1 を修正したものである。 .P -ISO 8859-15 ¤Ï°Ê²¼¤Î¸À¸ì¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë: ¥¢¥ë¥Ð¥Ë¥¢¸ì¡¢¥Ð¥¹¥¯¸ì¡¢ -¥Ö¥ë¥¿¡¼¥Ë¥å¸ì¡¢¥«¥¿¥í¥Ë¥¢¸ì¡¢¥Ç¥ó¥Þ¡¼¥¯¸ì¡¢¥ª¥é¥ó¥À¸ì¡¢±Ñ¸ì¡¢ -¥¨¥¹¥È¥Ë¥¢¸ì¡¢¥Õ¥§¥í¡¼¸ì¡¢¥Õ¥£¥ó¥é¥ó¥É¸ì¡¢¥Õ¥é¥ó¥¹¸ì¡¢¥Õ¥ê¡¼¥¹¥é¥ó¥É¸ì¡¢ -¥¬¥ê¥·¥¢¸ì¡¢¥É¥¤¥Ä¸ì¡¢¥°¥ê¡¼¥ó¥é¥ó¥É¸ì¡¢¥¢¥¤¥¹¥é¥ó¥É¸ì¡¢ -¥¢¥¤¥ë¥é¥ó¥É¡¦¥²¡¼¥ë¸ì¡¢¥¤¥¿¥ê¥¢¸ì¡¢¥é¥Æ¥ó¸ì¡¢¥ë¥¯¥»¥ó¥Ö¥ë¥°¸ì¡¢ -¥Î¥ë¥¦¥§¡¼¸ì¡¢¥Ý¥ë¥È¥¬¥ë¸ì¡¢¥ì¡¼¥È¥í¥Þ¥ó¥¹¸ì¡¢¥¹¥³¥Ã¥È¥é¥ó¥É¡¦¥²¡¼¥ë¸ì¡¢ -¥¹¥Ú¥¤¥ó¸ì¡¢¥¹¥¦¥§¡¼¥Ç¥ó¸ì¡£ -.SS "ISO 8859 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È" -´°Á´¤Ê ISO 8859 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Ï°Ê²¼¤Î¤â¤Î¤ò´Þ¤ó¤Ç¤¤¤ë: +ISO 8859-15 は以下の言語をサポートしている: アルバニア語、バスク語、 +ブルターニュ語、カタロニア語、デンマーク語、オランダ語、英語、 +エストニア語、フェロー語、フィンランド語、フランス語、フリースランド語、 +ガリシア語、ドイツ語、グリーンランド語、アイスランド語、 +アイルランド・ゲール語、イタリア語、ラテン語、ルクセンブルグ語、 +ノルウェー語、ポルトガル語、レートロマンス語、スコットランド・ゲール語、 +スペイン語、スウェーデン語。 +.SS "ISO 8859 アルファベット" +完全な ISO 8859 アルファベットは以下のものを含んでいる: .TS l l. -ISO 8859-1 À¾¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-1) -ISO 8859-2 Ãæ±û¡¦Åì¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-2) -ISO 8859-3 ÅìÆî¥è¡¼¥í¥Ã¥Ñ¤ä¤½¤Î¾¤Î¸À¸ì (Latin-3) -ISO 8859-4 ¥¹¥«¥ó¥¸¥Ê¥Ó¥¢/¥Ð¥ë¥È¸ìÇɤθÀ¸ì (Latin-4) -ISO 8859-5 ¥é¥Æ¥ó/¥­¥ê¥ëʸ»ú -ISO 8859-6 ¥é¥Æ¥ó/¥¢¥é¥Ó¥¢Ê¸»ú -ISO 8859-7 ¥é¥Æ¥ó¥®¥ê¥·¥ãʸ»ú -ISO 8859-8 ¥é¥Æ¥ó/¥Ø¥Ö¥é¥¤¸ì -ISO 8859-9 ¥È¥ë¥³¸ì½¤Àµ¤ò¹Ô¤Ê¤Ã¤¿ Latin-1 (Latin-5) -ISO 8859-10 ¥é¥Ã¥×/¥Î¥ë¥Ç¥£¥Ã¥¯/¥¨¥¹¥­¥â¡¼¤Î¸À¸ì (Latin-6) -ISO 8859-11 ¥é¥Æ¥ó/¥¿¥¤¸ì -ISO 8859-13 ¥Ð¥ë¥È½ô¹ñ¤Î¸À¸ì (Latin-7) -ISO 8859-14 ¥±¥ë¥È¸ì (Latin-8) -ISO 8859-15 À¾¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-9) -ISO 8859-16 ¥ë¡¼¥Þ¥Ë¥¢¸ì (Latin-10) +ISO 8859-1 西ヨーロッパの言語 (Latin-1) +ISO 8859-2 中央・東ヨーロッパの言語 (Latin-2) +ISO 8859-3 東南ヨーロッパやその他の言語 (Latin-3) +ISO 8859-4 スカンジナビア/バルト語派の言語 (Latin-4) +ISO 8859-5 ラテン/キリル文字 +ISO 8859-6 ラテン/アラビア文字 +ISO 8859-7 ラテンギリシャ文字 +ISO 8859-8 ラテン/ヘブライ語 +ISO 8859-9 トルコ語修正を行なった Latin-1 (Latin-5) +ISO 8859-10 ラップ/ノルディック/エスキモーの言語 (Latin-6) +ISO 8859-11 ラテン/タイ語 +ISO 8859-13 バルト諸国の言語 (Latin-7) +ISO 8859-14 ケルト語 (Latin-8) +ISO 8859-15 西ヨーロッパの言語 (Latin-9) +ISO 8859-16 ルーマニア語 (Latin-10) .TE -.SS "ISO 8859-15 ʸ»ú" -°Ê²¼¤Îɽ¤Ï ISO 8859-15 (Latin-9) ¤Îɽ¼¨²Äǽ¤Êʸ»ú¤Î¤¦¤Á +.SS "ISO 8859-15 文字" +以下の表は ISO 8859-15 (Latin-9) の表示可能な文字のうち .BR ascii (7) -¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤ËºÜ¤Ã¤Æ¤¤¤Ê¤¤¤â¤Î¤ò¼¨¤·¤Æ¤¤¤ë¡£ -4ÎóÌÜ¤Ï ISO 8859-15 ÍѤËÀßÄꤵ¤ì¤¿´Ä¶­¤Ç¤Î¤ßÀµ¤·¤¯É½¼¨¤Ç¤­¤ë¤À¤í¤¦¡£ +マニュアル・ページに載っていないものを示している。 +4列目は ISO 8859-15 用に設定された環境でのみ正しく表示できるだろう。 -[ ÌõÃí ¸¶Ê¸¤Ç¤Ï Char ¤ÎÉôʬ¤Ë ISO 8859-15 ¤Îʸ»ú¤¬¤¢¤Ã¤¿¤¬¡¢ -ÆüËܸì EUC ¤È¤ÎÊ»ÍѤÏÆñ¤·¤¤¤Î¤Çºï½ü¤·¡¢JIS X 0208 ¤ÎƱ¤¸Ê¸»ú¤ò -¼¨¤¹¤è¤¦¤Ë¤·¤¿¡£¤½¤Î¾¤Îʸ»ú¤Ë´Ø¤·¤Æ¤Ï -±Ñ¸ìÈǤΠiso_8859-15(7) ¤òŬÀڤʥե©¥ó¥È¤ò½àÈ÷¤·¤Æ»²¾È¡£ ] +[ 訳注 原文では Char の部分に ISO 8859-15 の文字があったが、 +日本語 EUC との併用は難しいので削除し、JIS X 0208 の同じ文字を +示すようにした。その他の文字に関しては +英語版の iso_8859-15(7) を適切なフォントを準備して参照。 ] .TS l l l c lp-1. Oct Dec Hex Char Description _ 240 160 A0 NO-BREAK SPACE 241 161 A1 INVERTED EXCLAMATION MARK -242 162 A2 ¡ñ CENT SIGN -243 163 A3 ¡ò POUND SIGN +242 162 A2 ¢ CENT SIGN +243 163 A3 £ POUND SIGN 244 164 A4 EURO SIGN -245 165 A5 ¡ï YEN SIGN +245 165 A5 Â¥ YEN SIGN 246 166 A6 LATIN CAPITAL LETTER S WITH CARON -247 167 A7 ¡ø SECTION SIGN +247 167 A7 § SECTION SIGN 250 168 A8 LATIN SMALL LETTER S WITH CARON 251 169 A9 COPYRIGHT SIGN 252 170 AA FEMININE ORDINAL INDICATOR -253 171 AB ¡Ô LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -254 172 AC ¢Ì NOT SIGN +253 171 AB 《 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +254 172 AC ¬ NOT SIGN 255 173 AD SOFT HYPHEN 256 174 AE REGISTERED SIGN 257 175 AF MACRON -260 176 B0 ¡ë DEGREE SIGN -261 177 B1 ¡Þ PLUS-MINUS SIGN +260 176 B0 ° DEGREE SIGN +261 177 B1 ± PLUS-MINUS SIGN 262 178 B2 SUPERSCRIPT TWO 263 179 B3 SUPERSCRIPT THREE 264 180 B4 LATIN CAPITAL LETTER Z WITH CARON -265 181 B5 ¦Ì MICRO SIGN -266 182 B6 ¢ù PILCROW SIGN -267 183 B7 ¡¦ MIDDLE DOT +265 181 B5 μ MICRO SIGN +266 182 B6 ¶ PILCROW SIGN +267 183 B7 ・ MIDDLE DOT 270 184 B8 LATIN SMALL LETTER Z WITH CARON 271 185 B9 SUPERSCRIPT ONE 272 186 BA MASCULINE ORDINAL INDICATOR -273 187 BB ¡Õ RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +273 187 BB 》 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 274 188 BC LATIN CAPITAL LIGATURE OE 275 189 BD LATIN SMALL LIGATURE OE 276 190 BE LATIN CAPITAL LETTER Y WITH DIAERESIS @@ -136,7 +136,7 @@ _ 324 212 D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX 325 213 D5 LATIN CAPITAL LETTER O WITH TILDE 326 214 D6 LATIN CAPITAL LETTER O WITH DIAERESIS -327 215 D7 ¡ß MULTIPLICATION SIGN +327 215 D7 × MULTIPLICATION SIGN 330 216 D8 LATIN CAPITAL LETTER O WITH STROKE 331 217 D9 LATIN CAPITAL LETTER U WITH GRAVE 332 218 DA LATIN CAPITAL LETTER U WITH ACUTE @@ -168,7 +168,7 @@ _ 364 244 F4 LATIN SMALL LETTER O WITH CIRCUMFLEX 365 245 F5 LATIN SMALL LETTER O WITH TILDE 366 246 F6 LATIN SMALL LETTER O WITH DIAERESIS -367 247 F7 ¡à DIVISION SIGN +367 247 F7 ÷ DIVISION SIGN 370 248 F8 LATIN SMALL LETTER O WITH STROKE 371 249 F9 LATIN SMALL LETTER U WITH GRAVE 372 250 FA LATIN SMALL LETTER U WITH ACUTE @@ -178,6 +178,6 @@ _ 376 254 FE LATIN SMALL LETTER THORN 377 255 FF LATIN SMALL LETTER Y WITH DIAERESIS .TE -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ascii (7), .BR iso_8859-1 (7) diff --git a/release/man7/iso_8859-16.7 b/release/man7/iso_8859-16.7 index 6d32630f..c600d6cc 100644 --- a/release/man7/iso_8859-16.7 +++ b/release/man7/iso_8859-16.7 @@ -28,77 +28,77 @@ .\" .TH ISO_8859-16 7 2003-03-05 "Linux" "Linux Programmer's Manual" .nh -.SH ̾Á° -iso_8859-16 \- ISO 8859-16 ʸ»ú½¸¹ç¤Î 8¿Ê¿ô¡¢10¿Ê¿ô¡¢16¿Ê¿ô¤Ë¤è¤ëÉä¹æ²½ -.SH ÀâÌÀ -ISO 8859 µ¬³Ê¤Ï ASCII ʸ»ú½¸¹ç (ISO 646-IRV ¤È¤â¸Æ¤Ð¤ì¤ë) ¤Î -¤¤¤¯¤Ä¤«¤Î 8 ¥Ó¥Ã¥È³ÈÄ¥¤ò´Þ¤ó¤Ç¤¤¤ë¡£ ISO 8859-16¡¢ -¡Ö¥é¥Æ¥ó¡¦¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È No.10¡×¤ÏÃæ±û¡¦Åì¥è¡¼¥í¥Ã¥Ñ¤Î¥é¥Æ¥óʸ»ú¤òÉä¹æ²½ -¤¹¤ë¤¿¤á¤Î¤â¤Î¤À¤¬¡¢¤Þ¤À¼ÂÁõ¤·¤Æ¤¤¤ë¥×¥í¥°¥é¥à¡¦¥Ù¥ó¥À¤Ï¤Ê¤¤¡£ +.SH 名前 +iso_8859-16 \- ISO 8859-16 文字集合の 8進数、10進数、16進数による符号化 +.SH 説明 +ISO 8859 規格は ASCII 文字集合 (ISO 646-IRV とも呼ばれる) の +いくつかの 8 ビット拡張を含んでいる。 ISO 8859-16、 +「ラテン・アルファベット No.10」は中央・東ヨーロッパのラテン文字を符号化 +するためのものだが、まだ実装しているプログラム・ベンダはない。 .P -ISO 8859-16 ¤Ï°Ê²¼¤Î¸À¸ì¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë: ¥¢¥ë¥Ð¥Ë¥¢¸ì¡¢¥Ü¥¹¥Ë¥¢¸ì¡¢ -¥¯¥í¥¢¥Á¥¢¸ì¡¢±Ñ¸ì¡¢¥Õ¥£¥ó¥é¥ó¥É¸ì¡¢¥É¥¤¥Ä¸ì¡¢¥Ï¥ó¥¬¥ê¡¼¸ì¡¢ -¥¢¥¤¥ë¥é¥ó¥É¸ì¡¢¥Ý¡¼¥é¥ó¥É¸ì¡¢¥ë¡¼¥Þ¥Ë¥¢¸ì¡¢¥¹¥í¥Ù¥Ë¥¢¸ì¡¢¥»¥ë¥Ó¥¢¸ì¡£ +ISO 8859-16 は以下の言語をサポートしている: アルバニア語、ボスニア語、 +クロアチア語、英語、フィンランド語、ドイツ語、ハンガリー語、 +アイルランド語、ポーランド語、ルーマニア語、スロベニア語、セルビア語。 .P -¤Þ¤¿¡¢°Ê²¼¤Î¥­¥ê¥ëʸ»ú¥Ù¡¼¥¹¤Î¸À¸ì¤â Latin 10 ¤Ë 1 ÂÐ 1 ¤ÇÊÑ´¹²Äǽ¤Ç¤¢¤ë: -¥Þ¥±¥É¥Ë¥¢¸ì¡¢¥»¥ë¥Ó¥¢¸ì¡£ -.SS "ISO 8859 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È" -´°Á´¤Ê ISO 8859 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Ï°Ê²¼¤Î¤â¤Î¤ò´Þ¤ó¤Ç¤¤¤ë: +また、以下のキリル文字ベースの言語も Latin 10 に 1 対 1 で変換可能である: +マケドニア語、セルビア語。 +.SS "ISO 8859 アルファベット" +完全な ISO 8859 アルファベットは以下のものを含んでいる: .TS l l. -ISO 8859-1 À¾¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-1) -ISO 8859-2 Ãæ±û¡¦Åì¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-2) -ISO 8859-3 ÅìÆî¥è¡¼¥í¥Ã¥Ñ¤ä¤½¤Î¾¤Î¸À¸ì (Latin-3) -ISO 8859-4 ¥¹¥«¥ó¥¸¥Ê¥Ó¥¢/¥Ð¥ë¥È¸ìÇɤθÀ¸ì (Latin-4) -ISO 8859-5 ¥é¥Æ¥ó/¥­¥ê¥ëʸ»ú -ISO 8859-6 ¥é¥Æ¥ó/¥¢¥é¥Ó¥¢Ê¸»ú -ISO 8859-7 ¥é¥Æ¥ó/¥®¥ê¥·¥ãʸ»ú -ISO 8859-8 ¥é¥Æ¥ó/¥Ø¥Ö¥é¥¤¸ì -ISO 8859-9 ¥È¥ë¥³¸ìÍѤ˽¤Àµ¤ò¹Ô¤Ê¤Ã¤¿ Latin-1 (Latin-5) -ISO 8859-10 ¥é¥Ã¥×/¥Î¥ë¥Ç¥£¥Ã¥¯/¥¨¥¹¥­¥â¡¼¤Î¸À¸ì (Latin-6) -ISO 8859-11 ¥é¥Æ¥ó/¥¿¥¤¸ì -ISO 8859-13 ¥Ð¥ë¥È½ô¹ñ¤Î¸À¸ì (Latin-7) -ISO 8859-14 ¥±¥ë¥È¸ì (Latin-8) -ISO 8859-15 À¾¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-9) -ISO 8859-16 ¥ë¡¼¥Þ¥Ë¥¢¸ì (Latin-10) +ISO 8859-1 西ヨーロッパの言語 (Latin-1) +ISO 8859-2 中央・東ヨーロッパの言語 (Latin-2) +ISO 8859-3 東南ヨーロッパやその他の言語 (Latin-3) +ISO 8859-4 スカンジナビア/バルト語派の言語 (Latin-4) +ISO 8859-5 ラテン/キリル文字 +ISO 8859-6 ラテン/アラビア文字 +ISO 8859-7 ラテン/ギリシャ文字 +ISO 8859-8 ラテン/ヘブライ語 +ISO 8859-9 トルコ語用に修正を行なった Latin-1 (Latin-5) +ISO 8859-10 ラップ/ノルディック/エスキモーの言語 (Latin-6) +ISO 8859-11 ラテン/タイ語 +ISO 8859-13 バルト諸国の言語 (Latin-7) +ISO 8859-14 ケルト語 (Latin-8) +ISO 8859-15 西ヨーロッパの言語 (Latin-9) +ISO 8859-16 ルーマニア語 (Latin-10) .TE -.SS "ISO 8859-16 ʸ»ú" -°Ê²¼¤Îɽ¤Ï ISO 8859-16 (Latin-10) ¤Îɽ¼¨²Äǽ¤Êʸ»ú¤Î¤¦¤Á +.SS "ISO 8859-16 文字" +以下の表は ISO 8859-16 (Latin-10) の表示可能な文字のうち .BR ascii (7) -¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤ËºÜ¤Ã¤Æ¤¤¤Ê¤¤¤â¤Î¤ò¼¨¤·¤Æ¤¤¤ë¡£ -4ÎóÌÜ¤Ï ISO 8859-16 ÍѤËÀßÄꤵ¤ì¤¿´Ä¶­¤Ç¤Î¤ßÀµ¤·¤¯É½¼¨¤Ç¤­¤ë¤À¤í¤¦¡£ +マニュアル・ページに載っていないものを示している。 +4列目は ISO 8859-16 用に設定された環境でのみ正しく表示できるだろう。 .TS l l l c lp-1. Oct Dec Hex Char Description _ 240 160 A0 NO-BREAK SPACE 241 161 A1 LATIN CAPITAL LETTER A WITH OGONEK -242 162 A2 ¡ñ LATIN SMALL LETTER A WITH OGONEK -243 163 A3 ¡ò LATIN CAPITAL LETTER L WITH STROKE +242 162 A2 ¢ LATIN SMALL LETTER A WITH OGONEK +243 163 A3 £ LATIN CAPITAL LETTER L WITH STROKE 244 164 A4 EURO SIGN -245 165 A5 ¡ï DOUBLE LOW-9 QUOTATION MARK +245 165 A5 Â¥ DOUBLE LOW-9 QUOTATION MARK 246 166 A6 LATIN CAPITAL LETTER S WITH CARON -247 167 A7 ¡ø SECTION SIGN +247 167 A7 § SECTION SIGN 250 168 A8 LATIN SMALL LETTER S WITH CARON 251 169 A9 COPYRIGHT SIGN 252 170 AA LATIN CAPITAL LETTER S WITH COMMA BELOW -253 171 AB ¡Ô LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -254 172 AC ¢Ì LATIN CAPITAL LETTER Z WITH ACUTE +253 171 AB 《 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +254 172 AC ¬ LATIN CAPITAL LETTER Z WITH ACUTE 255 173 AD SOFT HYPHEN 256 174 AE LATIN SMALL LETTER Z WITH ACUTE 257 175 AF LATIN CAPITAL LETTER Z WITH DOT ABOVE -260 176 B0 ¡ë DEGREE SIGN -261 177 B1 ¡Þ PLUS-MINUS SIGN +260 176 B0 ° DEGREE SIGN +261 177 B1 ± PLUS-MINUS SIGN 262 178 B2 LATIN CAPITAL LETTER C WITH CARON 263 179 B3 LATIN SMALL LETTER L WITH STROKE 264 180 B4 LATIN CAPITAL LETTER Z WITH CARON -265 181 B5 ¦Ì LEFT DOUBLE QUOTATION MARK -266 182 B6 ¢ù PILCROW SIGN -267 183 B7 ¡¦ MIDDLE DOT +265 181 B5 μ LEFT DOUBLE QUOTATION MARK +266 182 B6 ¶ PILCROW SIGN +267 183 B7 ・ MIDDLE DOT 270 184 B8 LATIN SMALL LETTER Z WITH CARON 271 185 B9 LATIN SMALL LETTER C WITH CARON 272 186 BA LATIN SMALL LETTER S WITH COMMA BELOW -273 187 BB ¡Õ RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +273 187 BB 》 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 274 188 BC LATIN CAPITAL LIGATURE OE 275 189 BD LATIN SMALL LIGATURE OE 276 190 BE LATIN CAPITAL LETTER Y WITH DIAERESIS @@ -126,7 +126,7 @@ _ 324 212 D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX 325 213 D5 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE 326 214 D6 LATIN CAPITAL LETTER O WITH DIAERESIS -327 215 D7 ¡ß LATIN CAPITAL LETTER S WITH ACUTE +327 215 D7 × LATIN CAPITAL LETTER S WITH ACUTE 330 216 D8 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE 331 217 D9 LATIN CAPITAL LETTER U WITH GRAVE 332 218 DA LATIN CAPITAL LETTER U WITH ACUTE @@ -158,7 +158,7 @@ _ 364 244 F4 LATIN SMALL LETTER O WITH CIRCUMFLEX 365 245 F5 LATIN SMALL LETTER O WITH DOUBLE ACUTE 366 246 F6 LATIN SMALL LETTER O WITH DIAERESIS -367 247 F7 ¡à LATIN SMALL LETTER S WITH ACUTE +367 247 F7 ÷ LATIN SMALL LETTER S WITH ACUTE 370 248 F8 LATIN SMALL LETTER U WITH DOUBLE ACUTE 371 249 F9 LATIN SMALL LETTER U WITH GRAVE 372 250 FA LATIN SMALL LETTER U WITH ACUTE @@ -168,12 +168,12 @@ _ 376 254 FE LATIN SMALL LETTER T WITH COMMA BELOW 377 255 FF LATIN SMALL LETTER Y WITH DIAERESIS .TE -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ascii (7), .BR iso_8859-1 (7), .BR iso_8859-15 (7), .BR iso_8859-2 (7) .P -Êä­¾ðÊó: +補足情報: .I ISO 8859-16 (Latin 10) Resources (http://bucovina.chem.tue.nl/fonturi/index-en.html) diff --git a/release/man7/iso_8859-2.7 b/release/man7/iso_8859-2.7 index 17af3bea..50d8f531 100644 --- a/release/man7/iso_8859-2.7 +++ b/release/man7/iso_8859-2.7 @@ -33,51 +33,51 @@ .\" .TH ISO_8859-2 7 2007-11-25 "Linux" "Linux Programmer's Manual" .nh -.SH ̾Á° -iso_8859-2 \- ISO 8859-2 ʸ»ú½¸¹ç¤Î 8¿Ê¿ô¡¢10¿Ê¿ô¡¢16¿Ê¿ô¤Ë¤è¤ëÉä¹æ²½ -.SH ½ñ¼° -ISO 8859 µ¬³Ê¤Ï ASCII ʸ»ú½¸¹ç (ISO 646-IRV ¤È¤â¸Æ¤Ð¤ì¤ë) ¤Î -¤¤¤¯¤Ä¤«¤Î 8 ¥Ó¥Ã¥È³ÈÄ¥¤ò´Þ¤ó¤Ç¤¤¤ë¡£ISO 8859-2¡¢ - "¥é¥Æ¥ó¡¦¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È No. 2" ¤ÏÃæ±û¥è¡¼¥í¥Ã¥Ñ¡¢Åì¥è¡¼¥í¥Ã¥Ñ¤Î -¥é¥Æ¥óʸ»ú¤òÉä¹æ²½¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¡¢¤¤¤¯¤Ä¤«¤Î¥×¥í¥°¥é¥à¡¦¥Ù¥ó¥À¡¼¤â -¼ÂÁõ¤·¤Æ¤¤¤ë¡£ +.SH 名前 +iso_8859-2 \- ISO 8859-2 文字集合の 8進数、10進数、16進数による符号化 +.SH 書式 +ISO 8859 規格は ASCII 文字集合 (ISO 646-IRV とも呼ばれる) の +いくつかの 8 ビット拡張を含んでいる。ISO 8859-2、 + "ラテン・アルファベット No. 2" は中央ヨーロッパ、東ヨーロッパの +ラテン文字を符号化するために使用され、いくつかのプログラム・ベンダーも +実装している。 .P -ISO 8859-2 ¤Ï°Ê²¼¤Î¸À¸ì¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë: ¥¢¥ë¥Ð¥Ë¥¢¸ì¡¢¥Ü¥¹¥Ë¥¢¸ì¡¢ -¥¯¥í¥¢¥Á¥¢¸ì¡¢¥Á¥§¥³¸ì¡¢±Ñ¸ì¡¢¥Õ¥£¥ó¥é¥ó¥É¸ì¡¢¥É¥¤¥Ä¸ì¡¢¥Ï¥ó¥¬¥ê¡¼¸ì¡¢ -¥¢¥¤¥ë¥é¥ó¥É¸ì¡¢¥Ý¡¼¥é¥ó¥É¸ì¡¢¥¹¥í¥ô¥¡¥­¥¢¸ì¡¢¥¹¥í¥ô¥§¥Ë¥¢¸ì¡¢¥½¥ë¥Ó¥¢¸ì¡£ +ISO 8859-2 は以下の言語をサポートしている: アルバニア語、ボスニア語、 +クロアチア語、チェコ語、英語、フィンランド語、ドイツ語、ハンガリー語、 +アイルランド語、ポーランド語、スロヴァキア語、スロヴェニア語、ソルビア語。 .P -¤Þ¤¿°Ê²¼¤Î¥­¥ê¥ëʸ»ú¥Ù¡¼¥¹¤Î¸À¸ì¤â 1 ÂÐ 1 ¤Ç Latin 2 ¤ËÃÖ¤­´¹¤¨¤ë¤³¤È -¤¬¤Ç¤­¤ë: ¥Þ¥±¥É¥Ë¥¢¸ì¡¢¥»¥ë¥Ó¥¢¸ì -.SS "ISO 8859 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È" -´°Á´¤Ê ISO 8859 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Ï°Ê²¼¤Î¤â¤Î¤ò´Þ¤ó¤Ç¤¤¤ë: +また以下のキリル文字ベースの言語も 1 対 1 で Latin 2 に置き換えること +ができる: マケドニア語、セルビア語 +.SS "ISO 8859 アルファベット" +完全な ISO 8859 アルファベットは以下のものを含んでいる: .TS l l. -ISO 8859-1 À¾¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-1) -ISO 8859-2 Ãæ±û¤ª¤è¤ÓÅì¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-2) -ISO 8859-3 ÅìÆî¥è¡¼¥í¥Ã¥Ñ¤ä¤½¤Î¾¤Î¸À¸ì (Latin-3) -ISO 8859-4 ¥¹¥«¥ó¥¸¥Ê¥Ó¥¢/¥Ð¥ë¥È¸ìÇɤθÀ¸ì (Latin-4) -ISO 8859-5 ¥é¥Æ¥ó/¥­¥ê¥ëʸ»ú -ISO 8859-6 ¥é¥Æ¥ó/¥¢¥é¥Ó¥¢Ê¸»ú -ISO 8859-7 ¥é¥Æ¥ó/¥®¥ê¥·¥ãʸ»ú -ISO 8859-8 ¥é¥Æ¥ó/¥Ø¥Ö¥é¥¤¸ì -ISO 8859-9 ¥È¥ë¥³¸ì½¤Àµ¤ò¹Ô¤Ê¤Ã¤¿ Latin-1 (Latin-5) -ISO 8859-10 ¥é¥Ã¥×/¥Î¥ë¥Ç¥£¥Ã¥¯/¥¨¥¹¥­¥â¡¼¤Î¸À¸ì (Latin-6) -ISO 8859-11 ¥é¥Æ¥ó/¥¿¥¤¸ì -ISO 8859-13 ¥Ð¥ë¥È½ô¹ñ¤Î¸À¸ì (Latin-7) -ISO 8859-14 ¥±¥ë¥È¸ì (Latin-8) -ISO 8859-15 À¾¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-9) -ISO 8859-16 ¥ë¡¼¥Þ¥Ë¥¢¸ì (Latin-10) +ISO 8859-1 西ヨーロッパの言語 (Latin-1) +ISO 8859-2 中央および東ヨーロッパの言語 (Latin-2) +ISO 8859-3 東南ヨーロッパやその他の言語 (Latin-3) +ISO 8859-4 スカンジナビア/バルト語派の言語 (Latin-4) +ISO 8859-5 ラテン/キリル文字 +ISO 8859-6 ラテン/アラビア文字 +ISO 8859-7 ラテン/ギリシャ文字 +ISO 8859-8 ラテン/ヘブライ語 +ISO 8859-9 トルコ語修正を行なった Latin-1 (Latin-5) +ISO 8859-10 ラップ/ノルディック/エスキモーの言語 (Latin-6) +ISO 8859-11 ラテン/タイ語 +ISO 8859-13 バルト諸国の言語 (Latin-7) +ISO 8859-14 ケルト語 (Latin-8) +ISO 8859-15 西ヨーロッパの言語 (Latin-9) +ISO 8859-16 ルーマニア語 (Latin-10) .TE -.SS "ISO 8859-2 ʸ»ú" -°Ê²¼¤Îɽ¤Ï ISO 8859-2 (Latin-2) ¤Îɽ¼¨²Äǽ¤Êʸ»ú¤Î¤¦¤Á +.SS "ISO 8859-2 文字" +以下の表は ISO 8859-2 (Latin-2) の表示可能な文字のうち .BR ascii (7) -¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤ËºÜ¤Ã¤Æ¤¤¤Ê¤¤¤â¤Î¤ò¼¨¤·¤Æ¤¤¤ë¡£ -4ÎóÌÜ¤Ï ISO 8859-2 ÍѤËÀßÄꤵ¤ì¤¿´Ä¶­¤Ç¤Î¤ßÀµ¤·¤¯É½¼¨¤Ç¤­¤ë¤À¤í¤¦¡£ +マニュアル・ページに載っていないものを示している。 +4列目は ISO 8859-2 用に設定された環境でのみ正しく表示できるだろう。 -[ ÌõÃí ¸¶Ê¸¤Ç¤Ï Char ¤ÎÉôʬ¤Ë ISO 8859-2 ¤Îʸ»ú¤¬¤¢¤Ã¤¿¤¬¡¢ -ÆüËܸì EUC ¤È¤ÎÊ»ÍѤÏÆñ¤·¤¤¤Î¤Çºï½ü¤·¡¢JIS X 0208 ¤ÎƱ¤¸Ê¸»ú¤ò¼¨¤¹¤è¤¦ -¤Ë¤·¤¿¡£¤½¤Î¾¤Îʸ»ú¤Ë´Ø¤·¤Æ¤Ï±Ñ¸ìÈǤΠiso_8859-2(7) ¤ò -ŬÀڤʥե©¥ó¥È¤ò½àÈ÷¤·¤Æ»²¾È¡£ ] +[ 訳注 原文では Char の部分に ISO 8859-2 の文字があったが、 +日本語 EUC との併用は難しいので削除し、JIS X 0208 の同じ文字を示すよう +にした。その他の文字に関しては英語版の iso_8859-2(7) を +適切なフォントを準備して参照。 ] .TS l l l c lp-1. Oct Dec Hex Char Description @@ -89,8 +89,8 @@ _ 244 164 A4 CURRENCY SIGN 245 165 A5 LATIN CAPITAL LETTER L WITH CARON 246 166 A6 LATIN CAPITAL LETTER S WITH ACUTE -247 167 A7 ¡ø SECTION SIGN -250 168 A8 ¡¯ DIAERESIS +247 167 A7 § SECTION SIGN +250 168 A8 ¨ DIAERESIS 251 169 A9 LATIN CAPITAL LETTER S WITH CARON 252 170 AA LATIN CAPITAL LETTER S WITH CEDILLA 253 171 AB LATIN CAPITAL LETTER T WITH CARON @@ -98,11 +98,11 @@ _ 255 173 AD SOFT HYPHEN 256 174 AE LATIN CAPITAL LETTER Z WITH CARON 257 175 AF LATIN CAPITAL LETTER Z WITH DOT ABOVE -260 176 B0 ¡ë DEGREE SIGN +260 176 B0 ° DEGREE SIGN 261 177 B1 LATIN SMALL LETTER A WITH OGONEK 262 178 B2 OGONEK 263 179 B3 LATIN SMALL LETTER L WITH STROKE -264 180 B4 ¡­ ACUTE ACCENT +264 180 B4 ´ ACUTE ACCENT 265 181 B5 LATIN SMALL LETTER L WITH CARON 266 182 B6 LATIN SMALL LETTER S WITH ACUTE 267 183 B7 CARON @@ -137,7 +137,7 @@ _ 324 212 D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX 325 213 D5 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE 326 214 D6 LATIN CAPITAL LETTER O WITH DIAERESIS -327 215 D7 ¡ß MULTIPLICATION SIGN +327 215 D7 × MULTIPLICATION SIGN 330 216 D8 LATIN CAPITAL LETTER R WITH CARON 331 217 D9 LATIN CAPITAL LETTER U WITH RING ABOVE 332 218 DA LATIN CAPITAL LETTER U WITH ACUTE @@ -169,7 +169,7 @@ _ 364 244 F4 LATIN SMALL LETTER O WITH CIRCUMFLEX 365 245 F5 LATIN SMALL LETTER O WITH DOUBLE ACUTE 366 246 F6 LATIN SMALL LETTER O WITH DIAERESIS -367 247 F7 ¡à DIVISION SIGN +367 247 F7 ÷ DIVISION SIGN 370 248 F8 LATIN SMALL LETTER R WITH CARON 371 249 F9 LATIN SMALL LETTER U WITH RING ABOVE 372 250 FA LATIN SMALL LETTER U WITH ACUTE @@ -179,10 +179,10 @@ _ 376 254 FE LATIN SMALL LETTER T WITH CEDILLA 377 255 FF DOT ABOVE .TE -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ascii (7), .BR iso_8859-1 (7) .P -ÄɲþðÊó: -.I ISO 8859-2 (Latin 2) ¾ðÊó +追加情報: +.I ISO 8859-2 (Latin 2) 情報 (http://sizif.mf.uni-lj.si/linux/cee/iso8859-2.html). diff --git a/release/man7/iso_8859-7.7 b/release/man7/iso_8859-7.7 index a7338083..a8241c5d 100644 --- a/release/man7/iso_8859-7.7 +++ b/release/man7/iso_8859-7.7 @@ -29,43 +29,43 @@ .\" .TH ISO_8859-7 7 2008-10-30 "Linux" "Linux Programmer's Manual" .nh -.SH ̾Á° -iso_8859-7 \- ISO 8859-7 ʸ»ú½¸¹ç¤Î 8¿Ê¿ô¡¢10¿Ê¿ô¡¢16¿Ê¿ô¤Ë¤è¤ëÉä¹æ²½ -.SH ÀâÌÀ -ISO 8859 µ¬³Ê¤Ï ASCII ʸ»ú½¸¹ç (ISO 646-IRV ¤È¤â¸Æ¤Ð¤ì¤ë) ¤Î -¤¤¤¯¤Ä¤«¤Î 8 ¥Ó¥Ã¥È³ÈÄ¥¤ò´Þ¤ó¤Ç¤¤¤ë¡£ISO 8859-7 ¤Ï¸½Âå¤ÎñĴ¤Î -¥®¥ê¥·¥¢¸ì¤Ë»ÈÍѤµ¤ì¤ëʸ»ú¤òÉä¹æ²½¤·¤Æ¤¤¤ë¡£ -.SS "ISO 8859 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È" -´°Á´¤Ê ISO 8859 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Ï°Ê²¼¤Î¤â¤Î¤ò´Þ¤ó¤Ç¤¤¤ë: +.SH 名前 +iso_8859-7 \- ISO 8859-7 文字集合の 8進数、10進数、16進数による符号化 +.SH 説明 +ISO 8859 規格は ASCII 文字集合 (ISO 646-IRV とも呼ばれる) の +いくつかの 8 ビット拡張を含んでいる。ISO 8859-7 は現代の単調の +ギリシア語に使用される文字を符号化している。 +.SS "ISO 8859 アルファベット" +完全な ISO 8859 アルファベットは以下のものを含んでいる: .TS l l. -ISO 8859-1 À¾¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-1) -ISO 8859-2 Ãæ±û¡¦Åì¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-2) -ISO 8859-3 ÅìÆî¥è¡¼¥í¥Ã¥Ñ¤ä¤½¤Î¾¤Î¸À¸ì (Latin-3) -ISO 8859-4 ¥¹¥«¥ó¥¸¥Ê¥Ó¥¢/¥Ð¥ë¥È¸ìÇɤθÀ¸ì (Latin-4) -ISO 8859-5 ¥é¥Æ¥ó/¥­¥ê¥ëʸ»ú -ISO 8859-6 ¥é¥Æ¥ó/¥¢¥é¥Ó¥¢Ê¸»ú -ISO 8859-7 ¥é¥Æ¥ó¥®¥ê¥·¥ãʸ»ú -ISO 8859-8 ¥é¥Æ¥ó/¥Ø¥Ö¥é¥¤¸ì -ISO 8859-9 ¥È¥ë¥³¸ì½¤Àµ¤ò¹Ô¤Ê¤Ã¤¿ Latin-1 (Latin-5) -ISO 8859-10 ¥é¥Ã¥×/¥Î¥ë¥Ç¥£¥Ã¥¯/¥¨¥¹¥­¥â¡¼¤Î¸À¸ì (Latin-6) -ISO 8859-11 ¥é¥Æ¥ó/¥¿¥¤¸ì -ISO 8859-13 ¥Ð¥ë¥È½ô¹ñ¤Î¸À¸ì (Latin-7) -ISO 8859-14 ¥±¥ë¥È¸ì (Latin-8) -ISO 8859-15 À¾¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-9) -ISO 8859-16 ¥ë¡¼¥Þ¥Ë¥¢¸ì (Latin-10) +ISO 8859-1 西ヨーロッパの言語 (Latin-1) +ISO 8859-2 中央・東ヨーロッパの言語 (Latin-2) +ISO 8859-3 東南ヨーロッパやその他の言語 (Latin-3) +ISO 8859-4 スカンジナビア/バルト語派の言語 (Latin-4) +ISO 8859-5 ラテン/キリル文字 +ISO 8859-6 ラテン/アラビア文字 +ISO 8859-7 ラテンギリシャ文字 +ISO 8859-8 ラテン/ヘブライ語 +ISO 8859-9 トルコ語修正を行なった Latin-1 (Latin-5) +ISO 8859-10 ラップ/ノルディック/エスキモーの言語 (Latin-6) +ISO 8859-11 ラテン/タイ語 +ISO 8859-13 バルト諸国の言語 (Latin-7) +ISO 8859-14 ケルト語 (Latin-8) +ISO 8859-15 西ヨーロッパの言語 (Latin-9) +ISO 8859-16 ルーマニア語 (Latin-10) .TE -.SS "ISO 8859-7 ʸ»ú" +.SS "ISO 8859-7 文字" -°Ê²¼¤Îɽ¤Ï ISO 8859-7 ¤Îɽ¼¨²Äǽ¤Êʸ»ú¤Î¤¦¤Á +以下の表は ISO 8859-7 の表示可能な文字のうち .BR ascii (7) -¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤ËºÜ¤Ã¤Æ¤¤¤Ê¤¤¤â¤Î¤ò¼¨¤·¤Æ¤¤¤ë¡£ -4ÎóÌÜ¤Ï ISO 8859-7 ÍѤËÀßÄꤵ¤ì¤¿´Ä¶­¤Ç¤Î¤ßÀµ¤·¤¯É½¼¨¤Ç¤­¤ë¤À¤í¤¦¡£ +マニュアル・ページに載っていないものを示している。 +4列目は ISO 8859-7 用に設定された環境でのみ正しく表示できるだろう。 -[ ÌõÃí ¸¶Ê¸¤Ç¤Ï Char ¤ÎÉôʬ¤Ë ISO 8859-7 ¤Îʸ»ú¤¬¤¢¤Ã¤¿¤¬¡¢ -ÆüËܸì EUC ¤È¤ÎÊ»ÍѤÏÆñ¤·¤¤¤Î¤Çºï½ü¤·¡¢JIS X 0208 ¤ÎƱ¤¸Ê¸»ú¤ò -¼¨¤¹¤è¤¦¤Ë¤·¤¿¡£¤½¤Î¾¤Îʸ»ú¤Ë´Ø¤·¤Æ¤Ï -±Ñ¸ìÈǤΠiso_8859-7(7) ¤òŬÀڤʥե©¥ó¥È¤ò½àÈ÷¤·¤Æ»²¾È¤·¤Æ¤Û¤·¤¤¡£ ] +[ 訳注 原文では Char の部分に ISO 8859-7 の文字があったが、 +日本語 EUC との併用は難しいので削除し、JIS X 0208 の同じ文字を +示すようにした。その他の文字に関しては +英語版の iso_8859-7(7) を適切なフォントを準備して参照してほしい。 ] .TS l l l c lp-1. Oct Dec Hex Char Description @@ -73,59 +73,59 @@ _ 240 160 A0 NO-BREAK SPACE 241 161 A1 LEFT SINGLE QUOTATION MARK 242 162 A2 RIGHT SINGLE QUOTATION MARK -243 163 A3 ¡ò POUND SIGN +243 163 A3 £ POUND SIGN 244 164 A4 EURO SIGN 245 165 A5 DRACHMA SIGN 246 166 A6 BROKEN BAR -247 167 A7 ¡ø SECTION SIGN -250 168 A8 ¡¯ DIAERESIS +247 167 A7 § SECTION SIGN +250 168 A8 ¨ DIAERESIS 251 169 A9 COPYRIGHT SIGN 252 170 AA GREEK YPOGEGRAMMENI -253 171 AB ¡Ô LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -254 172 AC ¢Ì NOT SIGN +253 171 AB 《 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +254 172 AC ¬ NOT SIGN 255 173 AD SOFT HYPHEN -257 175 AF ¡½ HORIZONTAL BAR -260 176 B0 ¡ë DEGREE SIGN -261 177 B1 ¡Þ PLUS-MINUS SIGN +257 175 AF — HORIZONTAL BAR +260 176 B0 ° DEGREE SIGN +261 177 B1 ± PLUS-MINUS SIGN 262 178 B2 SUPERSCRIPT TWO 263 179 B3 SUPERSCRIPT THREE 264 180 B4 GREEK TONOS 265 181 B5 GREEK DIALYTIKA TONOS 266 182 B6 GREEK CAPITAL LETTER ALPHA WITH TONOS -267 183 B7 ¡¦ MIDDLE DOT +267 183 B7 ・ MIDDLE DOT 270 184 B8 GREEK CAPITAL LETTER EPSILON WITH TONOS 271 185 B9 GREEK CAPITAL LETTER ETA WITH TONOS 272 186 BA GREEK CAPITAL LETTER IOTA WITH TONOS -273 187 BB ¡Õ RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +273 187 BB 》 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 274 188 BC GREEK CAPITAL LETTER OMICRON WITH TONOS 275 189 BD VULGAR FRACTION ONE HALF 276 190 BE GREEK CAPITAL LETTER UPSILON WITH TONOS 277 191 BF GREEK CAPITAL LETTER OMEGA WITH TONOS 300 192 C0 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS -301 193 C1 ¦¡ GREEK CAPITAL LETTER ALPHA -302 194 C2 ¦¢ GREEK CAPITAL LETTER BETA -303 195 C3 ¦£ GREEK CAPITAL LETTER GAMMA -304 196 C4 ¦¤ GREEK CAPITAL LETTER DELTA -305 197 C5 ¦¥ GREEK CAPITAL LETTER EPSILON -306 198 C6 ¦¦ GREEK CAPITAL LETTER ZETA -307 199 C7 ¦§ GREEK CAPITAL LETTER ETA -310 200 C8 ¦¨ GREEK CAPITAL LETTER THETA -311 201 C9 ¦© GREEK CAPITAL LETTER IOTA -312 202 CA ¦ª GREEK CAPITAL LETTER KAPPA -313 203 CB ¦« GREEK CAPITAL LETTER LAMBDA -314 204 CC ¦¬ GREEK CAPITAL LETTER MU -315 205 CD ¦­ GREEK CAPITAL LETTER NU -316 206 CE ¦® GREEK CAPITAL LETTER XI -317 207 CF ¦¯ GREEK CAPITAL LETTER OMICRON -320 208 D0 ¦° GREEK CAPITAL LETTER PI -321 209 D1 ¦± GREEK CAPITAL LETTER RHO -323 211 D3 ¦² GREEK CAPITAL LETTER SIGMA -324 212 D4 ¦³ GREEK CAPITAL LETTER TAU -325 213 D5 ¦´ GREEK CAPITAL LETTER UPSILON -326 214 D6 ¦µ GREEK CAPITAL LETTER PHI -327 215 D7 ¦¶ GREEK CAPITAL LETTER CHI -330 216 D8 ¦· GREEK CAPITAL LETTER PSI -331 217 D9 ¦¸ GREEK CAPITAL LETTER OMEGA +301 193 C1 Α GREEK CAPITAL LETTER ALPHA +302 194 C2 Β GREEK CAPITAL LETTER BETA +303 195 C3 Γ GREEK CAPITAL LETTER GAMMA +304 196 C4 Δ GREEK CAPITAL LETTER DELTA +305 197 C5 Ε GREEK CAPITAL LETTER EPSILON +306 198 C6 Ζ GREEK CAPITAL LETTER ZETA +307 199 C7 Η GREEK CAPITAL LETTER ETA +310 200 C8 Θ GREEK CAPITAL LETTER THETA +311 201 C9 Ι GREEK CAPITAL LETTER IOTA +312 202 CA Κ GREEK CAPITAL LETTER KAPPA +313 203 CB Λ GREEK CAPITAL LETTER LAMBDA +314 204 CC Μ GREEK CAPITAL LETTER MU +315 205 CD Ν GREEK CAPITAL LETTER NU +316 206 CE Ξ GREEK CAPITAL LETTER XI +317 207 CF Ο GREEK CAPITAL LETTER OMICRON +320 208 D0 Π GREEK CAPITAL LETTER PI +321 209 D1 Ρ GREEK CAPITAL LETTER RHO +323 211 D3 Σ GREEK CAPITAL LETTER SIGMA +324 212 D4 Τ GREEK CAPITAL LETTER TAU +325 213 D5 Î¥ GREEK CAPITAL LETTER UPSILON +326 214 D6 Φ GREEK CAPITAL LETTER PHI +327 215 D7 Χ GREEK CAPITAL LETTER CHI +330 216 D8 Ψ GREEK CAPITAL LETTER PSI +331 217 D9 Ω GREEK CAPITAL LETTER OMEGA 332 218 DA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA 333 219 DB GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA 334 220 DC GREEK SMALL LETTER ALPHA WITH TONOS @@ -133,38 +133,38 @@ _ 336 222 DE GREEK SMALL LETTER ETA WITH TONOS 337 223 DF GREEK SMALL LETTER IOTA WITH TONOS 340 224 E0 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS -341 225 E1 ¦Á GREEK SMALL LETTER ALPHA -342 226 E2 ¦Â GREEK SMALL LETTER BETA -343 227 E3 ¦Ã GREEK SMALL LETTER GAMMA -344 228 E4 ¦Ä GREEK SMALL LETTER DELTA -345 229 E5 ¦Å GREEK SMALL LETTER EPSILON -346 230 E6 ¦Æ GREEK SMALL LETTER ZETA -347 231 E7 ¦Ç GREEK SMALL LETTER ETA -350 232 E8 ¦È GREEK SMALL LETTER THETA -351 233 E9 ¦É GREEK SMALL LETTER IOTA -352 234 EA ¦Ê GREEK SMALL LETTER KAPPA -353 235 EB ¦Ë GREEK SMALL LETTER LAMBDA -354 236 EC ¦Ì GREEK SMALL LETTER MU -355 237 ED ¦Í GREEK SMALL LETTER NU -356 238 EE ¦Î GREEK SMALL LETTER XI -357 239 EF ¦Ï GREEK SMALL LETTER OMICRON -360 240 F0 ¦Ð GREEK SMALL LETTER PI -361 241 F1 ¦Ñ GREEK SMALL LETTER RHO +341 225 E1 α GREEK SMALL LETTER ALPHA +342 226 E2 β GREEK SMALL LETTER BETA +343 227 E3 γ GREEK SMALL LETTER GAMMA +344 228 E4 δ GREEK SMALL LETTER DELTA +345 229 E5 ε GREEK SMALL LETTER EPSILON +346 230 E6 ζ GREEK SMALL LETTER ZETA +347 231 E7 η GREEK SMALL LETTER ETA +350 232 E8 θ GREEK SMALL LETTER THETA +351 233 E9 ι GREEK SMALL LETTER IOTA +352 234 EA κ GREEK SMALL LETTER KAPPA +353 235 EB λ GREEK SMALL LETTER LAMBDA +354 236 EC μ GREEK SMALL LETTER MU +355 237 ED ν GREEK SMALL LETTER NU +356 238 EE ξ GREEK SMALL LETTER XI +357 239 EF ο GREEK SMALL LETTER OMICRON +360 240 F0 π GREEK SMALL LETTER PI +361 241 F1 ρ GREEK SMALL LETTER RHO 362 242 F2 GREEK SMALL LETTER FINAL SIGMA -363 243 F3 ¦Ò GREEK SMALL LETTER SIGMA -364 244 F4 ¦Ó GREEK SMALL LETTER TAU -365 245 F5 ¦Ô GREEK SMALL LETTER UPSILON -366 246 F6 ¦Õ GREEK SMALL LETTER PHI -367 247 F7 ¦Ö GREEK SMALL LETTER CHI -370 248 F8 ¦× GREEK SMALL LETTER PSI -371 249 F9 ¦Ø GREEK SMALL LETTER OMEGA +363 243 F3 σ GREEK SMALL LETTER SIGMA +364 244 F4 τ GREEK SMALL LETTER TAU +365 245 F5 υ GREEK SMALL LETTER UPSILON +366 246 F6 φ GREEK SMALL LETTER PHI +367 247 F7 χ GREEK SMALL LETTER CHI +370 248 F8 ψ GREEK SMALL LETTER PSI +371 249 F9 ω GREEK SMALL LETTER OMEGA 372 250 FA GREEK SMALL LETTER IOTA WITH DIALYTIKA 373 251 FB GREEK SMALL LETTER UPSILON WITH DIALYTIKA 374 252 FC GREEK SMALL LETTER OMICRON WITH TONOS 375 253 FD GREEK SMALL LETTER UPSILON WITH TONOS 376 254 FE GREEK SMALL LETTER OMEGA WITH TONOS .TE -.SH È÷¹Í -ISO 8859-7 ¤Ï°ÊÁ°¤Ï ELOT-928 ¤È¤« ECMA-118:1986 ¤È¸Æ¤Ð¤ì¤Æ¤¤¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +.SH 備考 +ISO 8859-7 は以前は ELOT-928 とか ECMA-118:1986 と呼ばれていた。 +.SH 関連項目 .BR ascii (7) diff --git a/release/man7/iso_8859-9.7 b/release/man7/iso_8859-9.7 index 016fc597..7e2a343a 100644 --- a/release/man7/iso_8859-9.7 +++ b/release/man7/iso_8859-9.7 @@ -29,42 +29,42 @@ .\" .TH ISO_8859-9 7 2002-09-24 "Linux" "Linux Programmer's Manual" .nh -.SH ̾Á° -iso_8859-9 \- ISO 8859-9 ʸ»ú½¸¹ç¤Î 8¿Ê¿ô¡¢10¿Ê¿ô¡¢16¿Ê¿ô¤Ë¤è¤ëÉä¹æ²½ -.SH ÀâÌÀ -ISO 8859 µ¬³Ê¤Ï ASCII ʸ»ú½¸¹ç (ÊÌ̾¡¢ISO 646-IRV) ¤Ø¤Î 8 ¥Ó¥Ã¥È³ÈÄ¥ -¤ò¤¤¤¯¤Ä¤«´Þ¤ó¤Ç¤¤¤ë¡£ISO 8859-9 (ÊÌ̾¡¢¥é¥Æ¥ó¡¦¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È No.2) -¤Ï¥È¥ë¥³¸ì¤Ë»ÈÍѤµ¤ì¤ëʸ»ú¤òÉä¹æ²½¤·¤Æ¤¤¤ë¡£ -.SS "ISO 8859 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È" -´°Á´¤Ê ISO 8859 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Ï°Ê²¼¤Î¤â¤Î¤ò´Þ¤ó¤Ç¤¤¤ë: +.SH 名前 +iso_8859-9 \- ISO 8859-9 文字集合の 8進数、10進数、16進数による符号化 +.SH 説明 +ISO 8859 規格は ASCII 文字集合 (別名、ISO 646-IRV) への 8 ビット拡張 +をいくつか含んでいる。ISO 8859-9 (別名、ラテン・アルファベット No.2) +はトルコ語に使用される文字を符号化している。 +.SS "ISO 8859 アルファベット" +完全な ISO 8859 アルファベットは以下のものを含んでいる: .TS l l. -ISO 8859-1 À¾¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-1) -ISO 8859-2 Ãæ±û¡¦Åì¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-2) -ISO 8859-3 ÅìÆî¥è¡¼¥í¥Ã¥Ñ¤ä¤½¤Î¾¤Î¸À¸ì (Latin-3) -ISO 8859-4 ¥¹¥«¥ó¥¸¥Ê¥Ó¥¢/¥Ð¥ë¥È¸ìÇɤθÀ¸ì (Latin-4) -ISO 8859-5 ¥é¥Æ¥ó/¥­¥ê¥ëʸ»ú -ISO 8859-6 ¥é¥Æ¥ó/¥¢¥é¥Ó¥¢Ê¸»ú -ISO 8859-7 ¥é¥Æ¥ó/¥®¥ê¥·¥ãʸ»ú -ISO 8859-8 ¥é¥Æ¥ó/¥Ø¥Ö¥é¥¤¸ì -ISO 8859-9 ¥È¥ë¥³¸ìÍѤ˽¤Àµ¤ò¹Ô¤Ê¤Ã¤¿ Latin-1 (Latin-5) -ISO 8859-10 ¥é¥Ã¥×/¥Î¥ë¥Ç¥£¥Ã¥¯/¥¨¥¹¥­¥â¡¼¤Î¸À¸ì (Latin-6) -ISO 8859-11 ¥é¥Æ¥ó/¥¿¥¤¸ì -ISO 8859-13 ¥Ð¥ë¥È½ô¹ñ¤Î¸À¸ì (Latin-7) -ISO 8859-14 ¥±¥ë¥È¸ì (Latin-8) -ISO 8859-15 À¾¥è¡¼¥í¥Ã¥Ñ¤Î¸À¸ì (Latin-9) -ISO 8859-16 ¥ë¡¼¥Þ¥Ë¥¢¸ì (Latin-10) +ISO 8859-1 西ヨーロッパの言語 (Latin-1) +ISO 8859-2 中央・東ヨーロッパの言語 (Latin-2) +ISO 8859-3 東南ヨーロッパやその他の言語 (Latin-3) +ISO 8859-4 スカンジナビア/バルト語派の言語 (Latin-4) +ISO 8859-5 ラテン/キリル文字 +ISO 8859-6 ラテン/アラビア文字 +ISO 8859-7 ラテン/ギリシャ文字 +ISO 8859-8 ラテン/ヘブライ語 +ISO 8859-9 トルコ語用に修正を行なった Latin-1 (Latin-5) +ISO 8859-10 ラップ/ノルディック/エスキモーの言語 (Latin-6) +ISO 8859-11 ラテン/タイ語 +ISO 8859-13 バルト諸国の言語 (Latin-7) +ISO 8859-14 ケルト語 (Latin-8) +ISO 8859-15 西ヨーロッパの言語 (Latin-9) +ISO 8859-16 ルーマニア語 (Latin-10) .TE -.SS "ISO 8859-9 ʸ»ú" -°Ê²¼¤Îɽ¤Ï ISO 8859-9 (Latin-5) ¤Îɽ¼¨²Äǽ¤Êʸ»ú¤Î¤¦¤Á +.SS "ISO 8859-9 文字" +以下の表は ISO 8859-9 (Latin-5) の表示可能な文字のうち .BR ascii (7) -¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤ËºÜ¤Ã¤Æ¤¤¤Ê¤¤¤â¤Î¤ò¼¨¤·¤Æ¤¤¤ë¡£ -4ÎóÌÜ¤Ï ISO 8859-9 ÍѤËÀßÄꤵ¤ì¤¿´Ä¶­¤Ç¤Î¤ßÀµ¤·¤¯É½¼¨¤Ç¤­¤ë¤À¤í¤¦¡£ +マニュアル・ページに載っていないものを示している。 +4列目は ISO 8859-9 用に設定された環境でのみ正しく表示できるだろう。 -[ ÌõÃí ¸¶Ê¸¤Ç¤Ï Char ¤ÎÉôʬ¤Ë ISO 8859-9 ¤Îʸ»ú¤¬¤¢¤Ã¤¿¤¬¡¢ -ÆüËܸì EUC ¤È¤ÎÊ»ÍѤÏÆñ¤·¤¤¤Î¤Çºï½ü¤·¡¢JIS X 0208 ¤ÎƱ¤¸Ê¸»ú¤ò -¼¨¤¹¤è¤¦¤Ë¤·¤¿¡£¤½¤Î¾¤Îʸ»ú¤Ë´Ø¤·¤Æ¤Ï -±Ñ¸ìÈǤΠiso_8859-9(7) ¤òŬÀڤʥե©¥ó¥È¤ò½àÈ÷¤·¤Æ»²¾È¡£ ] +[ 訳注 原文では Char の部分に ISO 8859-9 の文字があったが、 +日本語 EUC との併用は難しいので削除し、JIS X 0208 の同じ文字を +示すようにした。その他の文字に関しては +英語版の iso_8859-9(7) を適切なフォントを準備して参照。 ] .TS l l l c lp-1. Oct Dec Hex Char Description @@ -72,31 +72,31 @@ _ 240 160 A0 NO-BREAK SPACE 241 161 A1 INVERTED EXCLAMATION MARK 242 162 A2 CENT SIGN -243 163 A3 ¡ò POUND SIGN +243 163 A3 £ POUND SIGN 244 164 A4 CURRENCY SIGN 245 165 A5 YEN SIGN 246 166 A6 BROKEN BAR -247 167 A7 ¡ø SECTION SIGN +247 167 A7 § SECTION SIGN 250 168 A8 DIAERESIS 251 169 A9 COPYRIGHT SIGN 252 170 AA FEMININE ORDINAL INDICATOR -253 171 AB ¡Ô LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -254 172 AC ¢Ì NOT SIGN +253 171 AB 《 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +254 172 AC ¬ NOT SIGN 255 173 AD SOFT HYPHEN 256 174 AE REGISTERED SIGN 257 175 AF MACRON -260 176 B0 ¡ë DEGREE SIGN -261 177 B1 ¡Þ PLUS-MINUS SIGN +260 176 B0 ° DEGREE SIGN +261 177 B1 ± PLUS-MINUS SIGN 262 178 B2 SUPERSCRIPT TWO 263 179 B3 SUPERSCRIPT THREE -264 180 B4 ¡ì ACUTE ACCENT -265 181 B5 ¦Ì MICRO SIGN +264 180 B4 ′ ACUTE ACCENT +265 181 B5 μ MICRO SIGN 266 182 B6 PILCROW SIGN -267 183 B7 ¡¦ MIDDLE DOT +267 183 B7 ・ MIDDLE DOT 270 184 B8 CEDILLA 271 185 B9 SUPERSCRIPT ONE 272 186 BA MASCULINE ORDINAL INDICATOR -273 187 BB ¡Õ RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +273 187 BB 》 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 274 188 BC 1/4 VULGAR FRACTION ONE QUARTER 275 189 BD 1/2 VULGAR FRACTION ONE HALF 276 190 BE 3/4 VULGAR FRACTION THREE QUARTERS @@ -124,7 +124,7 @@ _ 324 212 D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX 325 213 D5 LATIN CAPITAL LETTER O WITH TILDE 326 214 D6 LATIN CAPITAL LETTER O WITH DIAERESIS -327 215 D7 ¡ß MULTIPLICATION SIGN +327 215 D7 × MULTIPLICATION SIGN 330 216 D8 LATIN CAPITAL LETTER O WITH STROKE 331 217 D9 LATIN CAPITAL LETTER U WITH GRAVE 332 218 DA LATIN CAPITAL LETTER U WITH ACUTE @@ -156,7 +156,7 @@ _ 364 244 F4 LATIN SMALL LETTER O WITH CIRCUMFLEX 365 245 F5 LATIN SMALL LETTER O WITH TILDE 366 246 F6 LATIN SMALL LETTER O WITH DIAERESIS -367 247 F7 ¡à DIVISION SIGN +367 247 F7 ÷ DIVISION SIGN 370 248 F8 LATIN SMALL LETTER O WITH STROKE 371 249 F9 LATIN SMALL LETTER U WITH GRAVE 372 250 FA LATIN SMALL LETTER U WITH ACUTE @@ -166,5 +166,5 @@ _ 376 254 FE LATIN SMALL LETTER S WITH CEDILLA 377 255 FF LATIN SMALL LETTER Y WITH DIAERESIS .TE -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ascii (7) diff --git a/release/man7/koi8-r.7 b/release/man7/koi8-r.7 index d3d2fa7b..600ae797 100644 --- a/release/man7/koi8-r.7 +++ b/release/man7/koi8-r.7 @@ -28,59 +28,59 @@ .\" Translated Sat Jul 7 21:41:56 JST 2001 .\" by Yuichi SATO .\" -.\"WORD: Cyrillic ¥­¥ê¥ë -.\"WORD: ex-SU µì¥½¥Ó¥¨¥ÈϢˮ -.\"WORD: Ukrainian ¥¦¥¯¥é¥¤¥Ê¸ì -.\"WORD: Byelorussian ¥Ù¥é¥ë¡¼¥·¸ì +.\"WORD: Cyrillic キリル +.\"WORD: ex-SU 旧ソビエト連邦 +.\"WORD: Ukrainian ウクライナ語 +.\"WORD: Byelorussian ベラルーシ語 .\" .TH KOI8-R 7 2010-10-24 "Linux" "Linux Programmer's Manual" .nh -.SH ̾Á° -koi8-r \- ¥í¥·¥¢¸ìʸ»ú½¸¹ç¤Î 8 ¿Ê¿ô¡¢10 ¿Ê¿ô¡¢16 ¿Ê¿ô¤Ë¤è¤ëÉä¹æ²½ -.SH ÀâÌÀ -KOI8-R ¤Ï¿¤¯¤Î UNIX ·Ï OS ¤Ç»È¤ï¤ì¤ë¥í¥·¥¢¸ìʸ½ñ¤òÉä¹æ²½¤¹¤ë -ʸ»ú½¸¹ç¤ÎÁªÂò»Þ¤Î°ì¤Ä¤Ç¤¢¤ë¡£ -KOI8-R ¤Ï¡¢¾¯¤Ê¤¯¤È¤âµì¥½¥Ó¥¨¥ÈϢˮ¤ÎÁ´¤Æ¤Î·÷Æâ¤Ë¤ª¤¤¤Æ -¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Î¥á¡¼¥ë¡¦¥Ë¥å¡¼¥¹¡¦WWW¡¦¤½¤Î¾¤ÎÂÐÏÃŪ¥µ¡¼¥Ó¥¹¤Î -»ö¼Â¾å¤Îɸ½à¤Ç¤¢¤Ã¤¿ KOI-8 ¤ò·Ñ¾µ¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +.SH 名前 +koi8-r \- ロシア語文字集合の 8 進数、10 進数、16 進数による符号化 +.SH 説明 +KOI8-R は多くの UNIX ç³» OS で使われるロシア語文書を符号化する +文字集合の選択枝の一つである。 +KOI8-R は、少なくとも旧ソビエト連邦の全ての圏内において +インターネットのメール・ニュース・WWW・その他の対話的サービスの +事実上の標準であった KOI-8 を継承するものである。 .PP -KOI8-R ¤Ï RFC\ 1489 (¥­¥ê¥ëʸ»ú½¸¹ç¤ÎÅÐÏ¿) ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH Ãí°Õ -KOI8-R ¤Ï¥í¥·¥¢¸ì¤È±Ñ¸ì¤¬º®¤¸¤Ã¤¿Ê¸½ñ¤Î¤¿¤á¤Ë¥Ç¥¶¥¤¥ó¤µ¤ì¡¢ -¥í¥·¥¢¸ì¥­¥ê¥ëʸ»ú¤Î¤ß¤ò°·¤¦¡£ -¥¦¥¯¥é¥¤¥Ê¸ì¤ä¥Ù¥é¥ë¡¼¥·¸ì¤Î¥­¥ê¥ëʸ»ú¤ò»È¤¤¤¿¤¤¤È¤­¤Ï¡¢ -ISO-IR-111, KOI8-U (¥¦¥¯¥é¥¤¥Ê¸ìʸ»ú½¸¹ç), -(¸ÅÂå¥í¥·¥¢¸ìʸ½ñ¤Î¤¿¤á¤Î) KOI8-C ¤Ê¤É¤ò»î¤¹¤³¤È¡£ -¤³¤ì¤é¤Îʸ»ú½¸¹ç¤Ï¡¢¥í¥·¥¢¸ì¥­¥ê¥ëʸ»ú¤ÎÈÏ°Ï¤Ç¤Ï KOI8-R ¤ÈÅù¤·¤¤¡£ +KOI8-R は RFC\ 1489 (キリル文字集合の登録) で定義されている。 +.SH 注意 +KOI8-R はロシア語と英語が混じった文書のためにデザインされ、 +ロシア語キリル文字のみを扱う。 +ウクライナ語やベラルーシ語のキリル文字を使いたいときは、 +ISO-IR-111, KOI8-U (ウクライナ語文字集合), +(古代ロシア語文書のための) KOI8-C などを試すこと。 +これらの文字集合は、ロシア語キリル文字の範囲では KOI8-R と等しい。 .PP -¤â¤Ã¤È´°Á´¤Ê¥­¥ê¥ëʸ»ú½¸¹ç¤Ï ISO-8859-5 ʸ»ú½¸¹ç¤Ç¤âÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -.SS "KOI8-R ʸ»ú½¸¹ç" -°Ê²¼¤Îɽ¤Ï KOI8-R ¤Îɽ¼¨²Äǽ¤Êʸ»ú¤Î¤¦¤Á +もっと完全なキリル文字集合は ISO-8859-5 文字集合でも定義されている。 +.SS "KOI8-R 文字集合" +以下の表は KOI8-R の表示可能な文字のうち .BR ascii (7) -¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤ËºÜ¤Ã¤Æ¤¤¤Ê¤¤¤â¤Î¤ò¼¨¤·¤Æ¤¤¤ë¡£ +マニュアル・ページに載っていないものを示している。 -[ ÌõÃí ¸¶Ê¸¤Ç¤Ï Char ¤ÎÉôʬ¤Ë KOI8-R ¤Îʸ»ú¤¬¤¢¤Ã¤¿¤¬¡¢ -ÆüËܸì EUC ¤È¤ÎÊ»ÍѤÏÆñ¤·¤¤¤Î¤Çºï½ü¤·¡¢JIS X 0208 ¤ÎƱ¤¸Ê¸»ú¤ò -¼¨¤¹¤è¤¦¤Ë¤·¤¿¡£¤½¤Î¾¤Îʸ»ú¤Ë´Ø¤·¤Æ¤Ï -±Ñ¸ìÈǤΠkoi8-r(7) ¤òŬÀڤʥե©¥ó¥È¤ò½àÈ÷¤·¤Æ»²¾È¡£ ] +[ 訳注 原文では Char の部分に KOI8-R の文字があったが、 +日本語 EUC との併用は難しいので削除し、JIS X 0208 の同じ文字を +示すようにした。その他の文字に関しては +英語版の koi8-r(7) を適切なフォントを準備して参照。 ] .TS l l l c lp-1. Oct Dec Hex Char Description _ -200 128 80 ¨¡ BOX DRAWINGS LIGHT HORIZONTAL -201 129 81 ¨¢ BOX DRAWINGS LIGHT VERTICAL -202 130 82 ¨£ BOX DRAWINGS LIGHT DOWN AND RIGHT -203 131 83 ¨¤ BOX DRAWINGS LIGHT DOWN AND LEFT -204 132 84 ¨¦ BOX DRAWINGS LIGHT UP AND RIGHT -205 133 85 ¨¥ BOX DRAWINGS LIGHT UP AND LEFT -206 134 86 ¨§ BOX DRAWINGS LIGHT VERTICAL AND RIGHT -207 135 87 ¨© BOX DRAWINGS LIGHT VERTICAL AND LEFT -210 136 88 ¨¨ BOX DRAWINGS LIGHT DOWN AND HORIZONTAL -211 137 89 ¨ª BOX DRAWINGS LIGHT UP AND HORIZONTAL -212 138 8A ¨« BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL +200 128 80 ─ BOX DRAWINGS LIGHT HORIZONTAL +201 129 81 │ BOX DRAWINGS LIGHT VERTICAL +202 130 82 ┌ BOX DRAWINGS LIGHT DOWN AND RIGHT +203 131 83 ┐ BOX DRAWINGS LIGHT DOWN AND LEFT +204 132 84 └ BOX DRAWINGS LIGHT UP AND RIGHT +205 133 85 ┘ BOX DRAWINGS LIGHT UP AND LEFT +206 134 86 ├ BOX DRAWINGS LIGHT VERTICAL AND RIGHT +207 135 87 ┤ BOX DRAWINGS LIGHT VERTICAL AND LEFT +210 136 88 ┬ BOX DRAWINGS LIGHT DOWN AND HORIZONTAL +211 137 89 ┴ BOX DRAWINGS LIGHT UP AND HORIZONTAL +212 138 8A ┼ BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL 213 139 8B UPPER HALF BLOCK 214 140 8C LOWER HALF BLOCK -215 141 8D ¢£ FULL BLOCK +215 141 8D ■ FULL BLOCK 216 142 8E LEFT HALF BLOCK 217 143 8F RIGHT HALF BLOCK 220 144 90 LIGHT SHADE @@ -89,115 +89,115 @@ _ 223 147 93 TOP HALF INTEGRAL 224 148 94 BLACK SQUARE 225 149 95 BULLET OPERATOR -226 150 96 ¢å SQUARE ROOT -227 151 97 ¢â ALMOST EQUAL TO -230 152 98 ¡å LESS-THAN OR EQUAL TO -231 153 99 ¡æ GREATER-THAN OR EQUAL TO +226 150 96 √ SQUARE ROOT +227 151 97 ≒ ALMOST EQUAL TO +230 152 98 ≦ LESS-THAN OR EQUAL TO +231 153 99 ≧ GREATER-THAN OR EQUAL TO 232 154 9A NO-BREAK SPACE 233 155 9B BOTTOM HALF INTEGRAL -234 156 9C ¡¬ DEGREE SIGN +234 156 9C ゜ DEGREE SIGN 235 157 9D SUPERSCRIPT TWO -236 158 9E ¡¦ MIDDLE DOT -237 159 9F ¡à DIVISION SIGN -240 160 A0 ¨¬ BOX DRAWINGS DOUBLE HORIZONTAL -241 161 A1 ¨­ BOX DRAWINGS DOUBLE VERTICAL +236 158 9E ・ MIDDLE DOT +237 159 9F ÷ DIVISION SIGN +240 160 A0 ━ BOX DRAWINGS DOUBLE HORIZONTAL +241 161 A1 ┃ BOX DRAWINGS DOUBLE VERTICAL 242 162 A2 BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE -243 163 A3 §× CYRILLIC SMALL LETTER IO +243 163 A3 ё CYRILLIC SMALL LETTER IO 244 164 A4 BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE -245 165 A5 ¨® BOX DRAWINGS DOUBLE DOWN AND RIGHT +245 165 A5 ┏ BOX DRAWINGS DOUBLE DOWN AND RIGHT 246 166 A6 BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE 247 167 A7 BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE -250 168 A8 ¨¯ BOX DRAWINGS DOUBLE DOWN AND LEFT +250 168 A8 ┓ BOX DRAWINGS DOUBLE DOWN AND LEFT 251 169 A9 BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE 252 170 AA BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE -253 171 AB ¨± BOX DRAWINGS DOUBLE UP AND RIGHT +253 171 AB ┗ BOX DRAWINGS DOUBLE UP AND RIGHT 254 172 AC BOX DRAWINGS UP SINGLE AND LEFT DOUBLE 255 173 AD BOX DRAWINGS UP DOUBLE AND LEFT SINGLE -256 174 AE ¨° BOX DRAWINGS DOUBLE UP AND LEFT -257 175 AF ¨¼ BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE -260 176 B0 ¨· BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE -261 177 B1 ¨² BOX DRAWINGS DOUBLE VERTICAL AND RIGHT -262 178 B2 ¨¾ BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE -263 179 B3 §§ CYRILLIC CAPITAL LETTER IO -264 180 B4 ¨¹ BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE -265 181 B5 ¨´ BOX DRAWINGS DOUBLE VERTICAL AND LEFT -266 182 B6 ¨¸ BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE -267 183 B7 ¨½ BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE -270 184 B8 ¨³ BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL -271 185 B9 ¨º BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE -272 186 BA ¨¿ BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE -273 187 BB ¨µ BOX DRAWINGS DOUBLE UP AND HORIZONTAL -274 188 BC ¨» BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE -275 189 BD ¨À BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE -276 190 BE ¨¶ BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL +256 174 AE ┛ BOX DRAWINGS DOUBLE UP AND LEFT +257 175 AF ┝ BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE +260 176 B0 ┠ BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE +261 177 B1 ┣ BOX DRAWINGS DOUBLE VERTICAL AND RIGHT +262 178 B2 ┥ BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE +263 179 B3 Ё CYRILLIC CAPITAL LETTER IO +264 180 B4 ┨ BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE +265 181 B5 ┫ BOX DRAWINGS DOUBLE VERTICAL AND LEFT +266 182 B6 ┯ BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE +267 183 B7 ┰ BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE +270 184 B8 ┳ BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL +271 185 B9 ┷ BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE +272 186 BA ┸ BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE +273 187 BB ┻ BOX DRAWINGS DOUBLE UP AND HORIZONTAL +274 188 BC ┿ BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE +275 189 BD ╂ BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE +276 190 BE ╋ BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL 277 191 BF COPYRIGHT SIGN -300 192 C0 §ð CYRILLIC SMALL LETTER YU -301 193 C1 §Ñ CYRILLIC SMALL LETTER A -302 194 C2 §Ò CYRILLIC SMALL LETTER BE -303 195 C3 §è CYRILLIC SMALL LETTER TSE -304 196 C4 §Õ CYRILLIC SMALL LETTER DE -305 197 C5 §Ö CYRILLIC SMALL LETTER IE -306 198 C6 §æ CYRILLIC SMALL LETTER EF -307 199 C7 §Ô CYRILLIC SMALL LETTER GHE -310 200 C8 §ç CYRILLIC SMALL LETTER HA -311 201 C9 §Ú CYRILLIC SMALL LETTER I -312 202 CA §Û CYRILLIC SMALL LETTER SHORT I -313 203 CB §Ü CYRILLIC SMALL LETTER KA -314 204 CC §Ý CYRILLIC SMALL LETTER EL -315 205 CD §Þ CYRILLIC SMALL LETTER EM -316 206 CE §ß CYRILLIC SMALL LETTER EN -317 207 CF §à CYRILLIC SMALL LETTER O -320 208 D0 §á CYRILLIC SMALL LETTER PE -321 209 D1 §ñ CYRILLIC SMALL LETTER YA -322 210 D2 §â CYRILLIC SMALL LETTER ER -323 211 D3 §ã CYRILLIC SMALL LETTER ES -324 212 D4 §ä CYRILLIC SMALL LETTER TE -325 213 D5 §å CYRILLIC SMALL LETTER U -326 214 D6 §Ø CYRILLIC SMALL LETTER ZHE -327 215 D7 §Ó CYRILLIC SMALL LETTER VE -330 216 D8 §î CYRILLIC SMALL LETTER SOFT SIGN -331 217 D9 §í CYRILLIC SMALL LETTER YERU -332 218 DA §Ù CYRILLIC SMALL LETTER ZE -333 219 DB §ê CYRILLIC SMALL LETTER SHA -334 220 DC §ï CYRILLIC SMALL LETTER E -335 221 DD §ë CYRILLIC SMALL LETTER SHCHA -336 222 DE §é CYRILLIC SMALL LETTER CHE -337 223 DF §ì CYRILLIC SMALL LETTER HARD SIGN -340 224 E0 §À CYRILLIC CAPITAL LETTER YU -341 225 E1 §¡ CYRILLIC CAPITAL LETTER A -342 226 E2 §¢ CYRILLIC CAPITAL LETTER BE -343 227 E3 §¸ CYRILLIC CAPITAL LETTER TSE -344 228 E4 §¥ CYRILLIC CAPITAL LETTER DE -345 229 E5 §¦ CYRILLIC CAPITAL LETTER IE -346 230 E6 §¶ CYRILLIC CAPITAL LETTER EF -347 231 E7 §¤ CYRILLIC CAPITAL LETTER GHE -350 232 E8 §· CYRILLIC CAPITAL LETTER HA -351 233 E9 §ª CYRILLIC CAPITAL LETTER I -352 234 EA §« CYRILLIC CAPITAL LETTER SHORT I -353 235 EB §¬ CYRILLIC CAPITAL LETTER KA -354 236 EC §­ CYRILLIC CAPITAL LETTER EL -355 237 ED §® CYRILLIC CAPITAL LETTER EM -356 238 EE §¯ CYRILLIC CAPITAL LETTER EN -357 239 EF §° CYRILLIC CAPITAL LETTER O -360 240 F0 §± CYRILLIC CAPITAL LETTER PE -361 241 F1 §Á CYRILLIC CAPITAL LETTER YA -362 242 F2 §² CYRILLIC CAPITAL LETTER ER -363 243 F3 §³ CYRILLIC CAPITAL LETTER ES -364 244 F4 §´ CYRILLIC CAPITAL LETTER TE -365 245 F5 §µ CYRILLIC CAPITAL LETTER U -366 246 F6 §¨ CYRILLIC CAPITAL LETTER ZHE -367 247 F7 §£ CYRILLIC CAPITAL LETTER VE -370 248 F8 §¾ CYRILLIC CAPITAL LETTER SOFT SIGN -371 249 F9 §½ CYRILLIC CAPITAL LETTER YERU -372 250 FA §© CYRILLIC CAPITAL LETTER ZE -373 251 FB §º CYRILLIC CAPITAL LETTER SHA -374 252 FC §¿ CYRILLIC CAPITAL LETTER E -375 253 FD §» CYRILLIC CAPITAL LETTER SHCHA -376 254 FE §¹ CYRILLIC CAPITAL LETTER CHE -377 255 FF §¼ CYRILLIC CAPITAL LETTER HARD SIGN +300 192 C0 ю CYRILLIC SMALL LETTER YU +301 193 C1 а CYRILLIC SMALL LETTER A +302 194 C2 б CYRILLIC SMALL LETTER BE +303 195 C3 ц CYRILLIC SMALL LETTER TSE +304 196 C4 д CYRILLIC SMALL LETTER DE +305 197 C5 е CYRILLIC SMALL LETTER IE +306 198 C6 ф CYRILLIC SMALL LETTER EF +307 199 C7 г CYRILLIC SMALL LETTER GHE +310 200 C8 х CYRILLIC SMALL LETTER HA +311 201 C9 и CYRILLIC SMALL LETTER I +312 202 CA й CYRILLIC SMALL LETTER SHORT I +313 203 CB к CYRILLIC SMALL LETTER KA +314 204 CC л CYRILLIC SMALL LETTER EL +315 205 CD м CYRILLIC SMALL LETTER EM +316 206 CE н CYRILLIC SMALL LETTER EN +317 207 CF о CYRILLIC SMALL LETTER O +320 208 D0 п CYRILLIC SMALL LETTER PE +321 209 D1 я CYRILLIC SMALL LETTER YA +322 210 D2 р CYRILLIC SMALL LETTER ER +323 211 D3 с CYRILLIC SMALL LETTER ES +324 212 D4 т CYRILLIC SMALL LETTER TE +325 213 D5 у CYRILLIC SMALL LETTER U +326 214 D6 ж CYRILLIC SMALL LETTER ZHE +327 215 D7 в CYRILLIC SMALL LETTER VE +330 216 D8 ь CYRILLIC SMALL LETTER SOFT SIGN +331 217 D9 ы CYRILLIC SMALL LETTER YERU +332 218 DA з CYRILLIC SMALL LETTER ZE +333 219 DB ш CYRILLIC SMALL LETTER SHA +334 220 DC э CYRILLIC SMALL LETTER E +335 221 DD щ CYRILLIC SMALL LETTER SHCHA +336 222 DE ч CYRILLIC SMALL LETTER CHE +337 223 DF ъ CYRILLIC SMALL LETTER HARD SIGN +340 224 E0 Ю CYRILLIC CAPITAL LETTER YU +341 225 E1 А CYRILLIC CAPITAL LETTER A +342 226 E2 Б CYRILLIC CAPITAL LETTER BE +343 227 E3 Ц CYRILLIC CAPITAL LETTER TSE +344 228 E4 Д CYRILLIC CAPITAL LETTER DE +345 229 E5 Е CYRILLIC CAPITAL LETTER IE +346 230 E6 Ф CYRILLIC CAPITAL LETTER EF +347 231 E7 Г CYRILLIC CAPITAL LETTER GHE +350 232 E8 Ð¥ CYRILLIC CAPITAL LETTER HA +351 233 E9 И CYRILLIC CAPITAL LETTER I +352 234 EA Й CYRILLIC CAPITAL LETTER SHORT I +353 235 EB К CYRILLIC CAPITAL LETTER KA +354 236 EC Л CYRILLIC CAPITAL LETTER EL +355 237 ED М CYRILLIC CAPITAL LETTER EM +356 238 EE Н CYRILLIC CAPITAL LETTER EN +357 239 EF О CYRILLIC CAPITAL LETTER O +360 240 F0 П CYRILLIC CAPITAL LETTER PE +361 241 F1 Я CYRILLIC CAPITAL LETTER YA +362 242 F2 Р CYRILLIC CAPITAL LETTER ER +363 243 F3 С CYRILLIC CAPITAL LETTER ES +364 244 F4 Т CYRILLIC CAPITAL LETTER TE +365 245 F5 У CYRILLIC CAPITAL LETTER U +366 246 F6 Ж CYRILLIC CAPITAL LETTER ZHE +367 247 F7 В CYRILLIC CAPITAL LETTER VE +370 248 F8 Ь CYRILLIC CAPITAL LETTER SOFT SIGN +371 249 F9 Ы CYRILLIC CAPITAL LETTER YERU +372 250 FA З CYRILLIC CAPITAL LETTER ZE +373 251 FB Ш CYRILLIC CAPITAL LETTER SHA +374 252 FC Э CYRILLIC CAPITAL LETTER E +375 253 FD Щ CYRILLIC CAPITAL LETTER SHCHA +376 254 FE Ч CYRILLIC CAPITAL LETTER CHE +377 255 FF Ъ CYRILLIC CAPITAL LETTER HARD SIGN .TE -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ascii (7), .BR iso-8859-5 (7), .BR koi8-u (7), diff --git a/release/man7/locale.7 b/release/man7/locale.7 index 27e889be..963d8105 100644 --- a/release/man7/locale.7 +++ b/release/man7/locale.7 @@ -31,184 +31,184 @@ .\" by HANATAKA Shinya .\" Modified Thu 14 Nov 2002 by NAKANO Takeo .\" -.\"WORD: locale ¥í¥±¡¼¥ë +.\"WORD: locale ロケール .\" .TH LOCALE 7 2008-12-05 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -locale \- ¿¸À¸ì¥µ¥Ý¡¼¥È¤Î²òÀâ -.SH ½ñ¼° +.SH 名前 +locale \- 多言語サポートの解説 +.SH 書式 .nf .B #include .fi -.SH ÀâÌÀ -¥í¥±¡¼¥ë (locale) ¤Ï¸À¸ì¤äʸ²½¥ë¡¼¥ë¤Î½¸¹ç¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Ï¡¢¥á¥Ã¥»¡¼¥¸½ÐÎϤ˻ÈÍѤ¹¤ë¸À¸ì¡¦¤¤¤í¤¤¤í¤Êʸ»ú½¸¹ç¡¦ -ɽµ­¤Ë´Ø¤¹¤ë´·½¬¤È¤¤¤Ã¤¿¤è¤¦¤ÊÌ̤ò¥«¥Ð¡¼¤·¤Æ¤¤¤ë¡£ -¥×¥í¥°¥é¥à¤ò¤¤¤í¤¤¤í¤Êʸ²½¤Ë°Ü¿¢²Äǽ¤È¤¹¤ë¤Ë¤Ï¡¢ -¤½¤Î¥×¥í¥°¥é¥à¤Ï¼«Ê¬¤Î¥í¥±¡¼¥ë¤ò·è¤á¤Æ¡¢ -¤½¤ì¤Ë±þ¤¸¤¿Å¬ÀÚ¤ÊÆ°ºî¤¬¤Ç¤­¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +.SH 説明 +ロケール (locale) は言語や文化ルールの集合である。 +これらは、メッセージ出力に使用する言語・いろいろな文字集合・ +表記に関する慣習といったような面をカバーしている。 +プログラムをいろいろな文化に移植可能とするには、 +そのプログラムは自分のロケールを決めて、 +それに応じた適切な動作ができなければならない。 .PP -¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë +ヘッダーファイル .I -¤Ë¤Ï¡¢¤³¤ÎÌÜŪ¤ËÊØÍø¤Ê¥Ç¡¼¥¿·¿¡¦´Ø¿ô¡¦¥Þ¥¯¥í¤Ê¤É¤ÎÀë¸À¤¬¤¢¤ë¡£ +には、この目的に便利なデータ型・関数・マクロなどの宣言がある。 .PP -¤³¤Î¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤Ë¤Ï¡¢ -¸½ºß¤Î¥í¥±¡¼¥ë¤òÀßÄꤹ¤ë +このヘッダーファイルで宣言されている関数には、 +現在のロケールを設定する .BR setlocale (3) -¤È¡¢¿ôÃͤΥե©¡¼¥Þ¥Ã¥ÈÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë +と、数値のフォーマット方法についての情報を取得する .BR localeconv (3) -¤¬¤¢¤ë¡£ +がある。 .PP -¥×¥í¥°¥é¥à¤ÎɬÍפ˱þ¤¸¤Æ¡¢¥í¡¼¥«¥ë¾ðÊó¤Ï¤¤¤í¤¤¤í¤Ê¥«¥Æ¥´¥ê¤Ëʬ¤«¤ì¤Æ¤ª¤ê¡¢ -¤½¤ì¤é¤Ï¥Þ¥¯¥í¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Î¥Þ¥¯¥í¤ò +プログラムの必要に応じて、ローカル情報はいろいろなカテゴリに分かれており、 +それらはマクロとして宣言されている。 +これらのマクロを .BR setlocale (3) -´Ø¿ô¤ÎºÇ½é¤Î°ú¤­¿ô¤ËÍѤ¤¤ë¤È¡¢ -¤³¤ì¤é¤Î¤É¤ì¤«¤ò˾¤à¥í¥±¡¼¥ë¤ËÀßÄê¤Ç¤­¤ë¡£ +関数の最初の引き数に用いると、 +これらのどれかを望むロケールに設定できる。 .TP .B LC_COLLATE -¤³¤ì¤ÏÃÏ°èŪ¤Ê¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»úÎó¤ÎÈæ³Ó¤Ë»ÈÍѤ¹¤ë +これは地域的なアルファベット文字列の比較に使用する .BR strcoll (3) -´Ø¿ô¤È +関数と .BR strxfrm (3) -´Ø¿ô¤ÎÆ°ºî¤òÊѹ¹¤¹¤ë¡£Î㤨¤Ð¥É¥¤¥Ä¸ì¤Î¥¨¥¹¥Ä¥§¥Ã¥È (±Ô¤¤ s) -¤Ï¡¢¥½¡¼¥È¤ÎºÝ "ss" ¤È¤·¤Æ°·¤ï¤ì¤ë¡£ +関数の動作を変更する。例えばドイツ語のエスツェット (鋭い s) +は、ソートの際 "ss" として扱われる。 .TP .B LC_CTYPE -¤³¤ì¤Ï +これは .BR isupper (3) -¤ä +や .BR toupper (3) -¤Î¤è¤¦¤Êʸ»ú¤ÎȽÄꡦÁàºî¤ò¤¹¤ë´Ø¿ô¤ä¡¢Â¿¥Ð¥¤¥Èʸ»ú¤ò°·¤¦ +のような文字の判定・操作をする関数や、多バイト文字を扱う .BR mblen (3) -¤ä +や .BR wctomb (3) -¤Î¤è¤¦¤Ê´Ø¿ô¤ÎÆ°ºî¤òÊѹ¹¤¹¤ë¡£ +のような関数の動作を変更する。 .TP .B LC_MONETARY .BR localeconv (3) -¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë¾ðÊó¤òÊѹ¹¤¹¤ë¡£ -¤³¤ì¤Ë¤Ï¾®¿ôÅÀ¤ä¶èÀڤꥳ¥ó¥Þ¤Î°ÌÃ֤ʤɡ¢ -¿ô»ú¤Îɽ¼¨ÊýË¡¤Ë´Ø¤¹¤ë¾ÜºÙ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£¤³¤Î¾ðÊó¤Ï +によって返される情報を変更する。 +これには小数点や区切りコンマの位置など、 +数字の表示方法に関する詳細が含まれている。この情報は .BR strfmon (3) -´Ø¿ô¤¬ÆâÉô¤Ç»ÈÍѤ¹¤ë¡£ +関数が内部で使用する。 .TP .B LC_MESSAGES -¥á¥Ã¥»¡¼¥¸É½¼¨¤Ë»ÈÍѤ¹¤ë¸À¸ì¤òÊѹ¹¤¹¤ë¡£ -¤Þ¤¿¹ÎÄêŪ¡¦ÈÝÄêŪ¤Ê²óÅú¤ò¤É¤Î¤è¤¦¤Ëɽ¼¨¤¹¤ë¤«¤òÊѹ¹¤¹¤ë¡£ -¤³¤ì¤é¤Î¾ðÊó¤ò´Êñ¤Ë»ÈÍѤ¹¤ë¤¿¤á¤Ë¡¢ GNU C ¥é¥¤¥Ö¥é¥ê¤Ë¤Ï +メッセージ表示に使用する言語を変更する。 +また肯定的・否定的な回答をどのように表示するかを変更する。 +これらの情報を簡単に使用するために、 GNU C ライブラリには .BR gettext (3), .BR ngettext (3), .BR rpmatch (3) -´Ø¿ô¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -GNU gettext ¥Õ¥¡¥ß¥ê¡¼¤Ë°¤¹¤ë´Ø¿ô¤Ï¡¢¥«¥Æ¥´¥ê¤¬ +関数が含まれている。 +GNU gettext ファミリーに属する関数は、カテゴリが .B """C""" -°Ê³°¤ÎÍ­¸ú¤Ê¥í¥±¡¼¥ë¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢´Ä¶­ÊÑ¿ô +以外の有効なロケールに設定されている場合、環境変数 .B LANGUAGE -¤Ë¤â½¾¤¦ +にも従う .RB ( LANGUAGE -¤Ï¥³¥í¥ó¶èÀÚ¤ê¤Î¥í¥±¡¼¥ë¤Î¥ê¥¹¥È¤Ç¤¢¤ë)¡£ +はコロン区切りのロケールのリストである)。 .TP .B LC_NUMERIC .BR printf (3) -´Ø¿ô¤ª¤è¤Ó +関数および .BR scanf (3) -´Ø¿ô¤Î¥Õ¥¡¥ß¥ê¡¼¤Ç¥í¥±¡¼¥ëÀßÄê¤ò»È¤¦¤è¤¦»Ø¼¨¤µ¤ì¤¿¾ì¹ç¤Ë -ÍѤ¤¤ë¾ðÊó¤òÊѹ¹¤¹¤ë¡£¤³¤Î¾ðÊó¤Ï +関数のファミリーでロケール設定を使うよう指示された場合に +用いる情報を変更する。この情報は .BR localeconv (3) -´Ø¿ô¤Ç¼èÆÀ¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +関数で取得することもできる。 .TP .B LC_TIME .BR strftime (3) -´Ø¿ô¤ÎÆ°ºî¤òÊѹ¹¤·¡¢ -ÃÏ°è¤ÇÍøÍѤµ¤ì¤Æ¤¤¤ëÊýË¡¤Ç¸½ºß»þ¹ï¤òɽ¼¨¤¹¤ë¡£ -Î㤨¤Ð¡¢¥è¡¼¥í¥Ã¥Ñ¤Î¿¤¯¤Ç¤Ï 24»þ´Ö¼°¤Î»þ·×¤ò»È¤¦¤¬¡¢ -¥¢¥á¥ê¥«¤Ç¤Ï 12»þ´Ö¼°¤Î»þ·×¤ò»È¤¦¡£ +関数の動作を変更し、 +地域で利用されている方法で現在時刻を表示する。 +例えば、ヨーロッパの多くでは 24時間式の時計を使うが、 +アメリカでは 12時間式の時計を使う。 .TP .B LC_ALL -¾åµ­¤ÎÁ´¤Æ¡£ +上記の全て。 .\" FIXME glibc 2.2.2 added new nonstandard locale categories: .\" LC_ADDRESS, LC_IDENTIFICATION, LC_MEASUREMENT, LC_NAME, .\" LC_PAPER, LC_TELEPHONE. These need to be documented. .PP .BR setlocale (3) -¤ÎÆóÈÖÌܤΰú¤­¿ô¤¬¶õʸ»úÎó \fB""\fP ¤Î¾ì¹ç¡¢ -¥Ç¥Õ¥©¥ë¥È¤Î¥í¥±¡¼¥ë¤Ï°Ê²¼¤Î¼ê½ç¤Ç·èÄꤹ¤ë: +の二番目の引き数が空文字列 \fB""\fP の場合、 +デフォルトのロケールは以下の手順で決定する: .IP 1. -´Ä¶­ÊÑ¿ô +環境変数 .B LC_ALL -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï +が設定されている場合には .B LC_ALL -¤ÎÃͤ¬»ÈÍѤµ¤ì¤ë¡£ +の値が使用される。 .IP 2. -¾åµ­¤Î¥«¥Æ¥´¥ê¤Î¤É¤ì¤«¤ÈƱ¤¸Ì¾Á°¤Î´Ä¶­ÊÑ¿ô¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -¤½¤Î¥«¥Æ¥´¥ê¤Ë¤Ï¤½¤ÎÃͤ¬»ÈÍѤµ¤ì¤ë¡£ +上記のカテゴリのどれかと同じ名前の環境変数が設定されている場合には、 +そのカテゴリにはその値が使用される。 .IP 3. -´Ä¶­ÊÑ¿ô +環境変数 .B LANG -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï +が設定されている場合には .B LANG -¤ÎÃͤ¬»ÈÍѤµ¤ì¤ë¡£ +の値が使用される。 .PP -ÃÏ°èŪ¤Ê¿ôÃÍ¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¾ðÊó¤Ï +地域的な数値フォーマットの情報は .BR localeconv (3) -´Ø¿ô¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë +関数によって返される .I struct lconv -¤ÇÆÀ¤ë¤³¤È¤¬¤Ç¤­¡¢¤³¤ì¤Ï°Ê²¼¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤Æ¤¤¤ë: +で得ることができ、これは以下のように宣言されている: .in +4n .nf struct lconv { - /* (Ä̲߰ʳ°¤Î) ¿ôÃ;ðÊó */ + /* (通貨以外の) 数値情報 */ - char *decimal_point; /* ¾®¿ôÅÀ¤Îʸ»ú */ - char *thousands_sep; /* ¾®¿ôÅÀ¤Îº¸Â¦¤Î¿ô»ú¤Î¥°¥ë¡¼¥×¤Î - ¶èÀÚ¤êʸ»ú */ - char *grouping; /* ¤½¤ì¤¾¤ì¤ÎÍ×ÁǤϳƥ°¥ë¡¼¥×¤Î¿ô»ú¤Î¸Ä¿ô¤Ç¤¢¤ë¡£ - ¥¤¥ó¥Ç¥Ã¥¯¥¹Ãͤ¬Â礭¤¤¤Û¤É¡¢º¸Â¦¤Î¥°¥ë¡¼¥×¤òɽ¤¹¡£ - Í×ÁǤÎÃͤ¬ CHAR_MAX ¤Î¾ì¹ç¤Ï¡¢ºÇ¸å¤Î¥°¥ë¡¼¥×¤Ç - ¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£Í×ÁǤÎÃͤ¬ 0 ¤Î¾ì¹ç¤Ï¡¢ - ¤½¤ÎÍ×ÁǤè¤êº¸Â¦¤ÎÁ´¤Æ¤ÎÍ×ÁǤËÁ°¤ÎÍ×ÁǤÈƱ¤¸Ãͤò - »ÈÍѤ¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ */ + char *decimal_point; /* 小数点の文字 */ + char *thousands_sep; /* 小数点の左側の数字のグループの + 区切り文字 */ + char *grouping; /* それぞれの要素は各グループの数字の個数である。 + インデックス値が大きいほど、左側のグループを表す。 + 要素の値が CHAR_MAX の場合は、最後のグループで + あることを意味する。要素の値が 0 の場合は、 + その要素より左側の全ての要素に前の要素と同じ値を + 使用することを意味する。 */ - /* »Ä¤ê¤Î¥Õ¥£¡¼¥ë¥É¤ÏÄ̲߾ðÊóÍѤǤ¢¤ë */ + /* 残りのフィールドは通貨情報用である */ - char *int_curr_symbol; /* ºÇ½é¤Î»°¤Ä¤Îʸ»ú¤Ï ISO 4217 ¤ÎÄ̲ߵ­¹æ¡£ - »ÍÈÖÌܤÎʸ»ú¤Ï¶èÀÚ¤êʸ»ú¡£ - ¸ÞÈÖÌÜ¤Ï \(aq\0\(aq¡£ */ - char *currency_symbol; /* ÃÏ°è¤ÎÄ̲ߵ­¹æ */ - char *mon_decimal_point; /* ¾®¿ôÅÀ¤Îʸ»ú */ - char *mon_thousands_sep; /* ¾åµ­¤Î `thousands_sep' ¤ÈƱÍÍ */ - char *mon_grouping; /* ¾åµ­¤Î `grouping' ¤ÈƱÍÍ */ - char *positive_sign; /* Àµ¤ÎÃͤÎÉä¹æ */ - char *negative_sign; /* Éé¤ÎÃͤÎÉä¹æ */ - char int_frac_digits; /* ¹ñºÝŪ¤Ê¾®¿ôÉô¤Î¿ô»ú */ - char frac_digits; /* ÃÏ°è¤Î¾®¿ôÉô¤Î¿ô»ú */ - char p_cs_precedes; /* Àµ¤ÎÃͤÎÁ°¤ËÄ̲ߵ­¹æ¤òÃÖ¤¯¾ì¹ç¤Ï 1, - ¸å¤í¤ËÃÖ¤¯¾ì¹ç¤Ï 0 */ - char p_sep_by_space; /* Àµ¤ÎÃͤÈÄ̲ߵ­¹æ¤Î´Ö¤Ë¥¹¥Ú¡¼¥¹¤ò - Æþ¤ì¤ë¾ì¹ç¤Ï 1 */ - char n_cs_precedes; /* Éé¤ÎÃͤÎÁ°¤ËÄ̲ߵ­¹æ¤òÃÖ¤¯¾ì¹ç¤Ï 1, - ¸å¤í¤ËÃÖ¤¯¾ì¹ç¤Ï 0 */ - char n_sep_by_space; /* Éé¤ÎÃͤÈÄ̲ߵ­¹æ¤Î´Ö¤Ë¥¹¥Ú¡¼¥¹¤ò - Æþ¤ì¤ë¾ì¹ç¤Ï 1 */ - /* Àµ¤ÈÉé¤ÎÉä¹æ¤Î°ÌÃÖ: - 0 ÃͤÈÄ̲ߵ­¹æ¤ò³ç¸Ì¤Ç°Ï¤à - 1 Éä¹æ¤ÏÃͤÈÄ̲ߵ­¹æ¤ÎÁ°¤ËÃÖ¤¯ - 2 Éä¹æ¤ÏÃͤÈÄ̲ߵ­¹æ¤Î¸å¤ËÃÖ¤¯ - 3 Éä¹æ¤ÏÄ̲ߵ­¹æ¤Îľ¸å¤ËÃÖ¤¯ - 4 Éä¹æ¤ÏÄ̲ߵ­¹æ¤ÎľÁ°¤ËÃÖ¤¯ */ + char *int_curr_symbol; /* 最初の三つの文字は ISO 4217 の通貨記号。 + 四番目の文字は区切り文字。 + 五番目は \(aq\0\(aq。 */ + char *currency_symbol; /* 地域の通貨記号 */ + char *mon_decimal_point; /* 小数点の文字 */ + char *mon_thousands_sep; /* 上記の `thousands_sep' と同様 */ + char *mon_grouping; /* 上記の `grouping' と同様 */ + char *positive_sign; /* 正の値の符号 */ + char *negative_sign; /* 負の値の符号 */ + char int_frac_digits; /* 国際的な小数部の数字 */ + char frac_digits; /* 地域の小数部の数字 */ + char p_cs_precedes; /* 正の値の前に通貨記号を置く場合は 1, + 後ろに置く場合は 0 */ + char p_sep_by_space; /* 正の値と通貨記号の間にスペースを + 入れる場合は 1 */ + char n_cs_precedes; /* 負の値の前に通貨記号を置く場合は 1, + 後ろに置く場合は 0 */ + char n_sep_by_space; /* 負の値と通貨記号の間にスペースを + 入れる場合は 1 */ + /* 正と負の符号の位置: + 0 値と通貨記号を括弧で囲む + 1 符号は値と通貨記号の前に置く + 2 符号は値と通貨記号の後に置く + 3 符号は通貨記号の直後に置く + 4 符号は通貨記号の直前に置く */ char p_sign_posn; char n_sign_posn; }; .fi .in -.SH ½àµò +.SH 準拠 POSIX.1-2001 -GNU gettext ´Ø¿ô¥Õ¥¡¥ß¥ê¡¼¤Ï LI18NUX2000 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +GNU gettext 関数ファミリーは LI18NUX2000 で規定されている。 +.SH 関連項目 .BR locale (1), .BR localedef (1), .BR gettext (3), diff --git a/release/man7/mailaddr.7 b/release/man7/mailaddr.7 index 43cde97a..e3ef1bb5 100644 --- a/release/man7/mailaddr.7 +++ b/release/man7/mailaddr.7 @@ -30,19 +30,19 @@ .\" .TH MAILADDR 7 2004-09-15 "Linux" "Linux User's Manual" .UC 5 -.SH ̾Á° -mailaddr \- ¥á¡¼¥ë¡¦¥¢¥É¥ì¥¹¤ÎÀâÌÀ -.SH ÀâÌÀ +.SH 名前 +mailaddr \- メール・アドレスの説明 +.SH 説明 .nh -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤Ç¤Ï¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ç»ÈÍѤµ¤ì¤ë SMTP ¥á¡¼¥ë¡¦ -¥¢¥É¥ì¥¹¤Î´Êñ¤Ê¾Ò²ð¤ò¹Ô¤¦¡£¥á¡¼¥ë¡¦¥¢¥É¥ì¥¹¤Ï°ìÈÌŪ¤Ë¤Ï +このマニュアル・ページでは、インターネットで使用される SMTP メール・ +アドレスの簡単な紹介を行う。メール・アドレスは一般的には .PP user@domain .PP -¤Î·Á¤Ç¤¢¤ë¡£ -domain ¤Ï¥µ¥Ö¡¦¥É¥á¥¤¥ó¤Î³¬Áؤò ¥É¥Ã¥È (.) ¤Ç -¶èÀڤäƤĤʤ¤¤À¤â¤Î¤Ç¤¢¤ë¡£ -°Ê²¼¤ÎÎã¤ÏÁ´¤ÆƱ¤¸¥¢¥É¥ì¥¹¤ÎÀµ¤·¤¤É½µ­Ë¡¤Ç¤¢¤ë: +の形である。 +domain はサブ・ドメインの階層を ドット (.) で +区切ってつないだものである。 +以下の例は全て同じアドレスの正しい表記法である: .PP eric@monet.berkeley.edu .br @@ -50,16 +50,16 @@ domain .br eric@monet.berkeley.edu (Eric Allman) .PP -¥É¥á¥¤¥óÉôʬ ("monet.berkeley.edu") ¤Ï¥á¡¼¥ë¤ò¼õ¿®¤¹¤ë¥É¥á¥¤¥ó¤Ç¤¢¤ë¡£ -¥É¥á¥¤¥ó¤Ï¥Û¥¹¥È̾¤Ç¤¢¤Ã¤Æ¤â¤è¤¯¡¢°ÊÁ°¤Ï¥Û¥¹¥È̾¤¬ÉáÄ̤Ǥ¢¤Ã¤¿¤¬¡¢ -¤½¤¦¤Ç¤¢¤ëɬÍפϤʤ¤¡£¥É¥á¥¤¥óÉôʬ¤ÏÂçʸ»ú¡¢¾®Ê¸»ú¤Î¶èÊ̤Ϥµ¤ì¤Ê¤¤¡£ +ドメイン部分 ("monet.berkeley.edu") はメールを受信するドメインである。 +ドメインはホスト名であってもよく、以前はホスト名が普通であったが、 +そうである必要はない。ドメイン部分は大文字、小文字の区別はされない。 .PP -¥í¡¼¥«¥ëÉôʬ ("eric") ¤ÏÉáÄ̤ϥ桼¥¶¡¼¤Î̾Á°¤Ç¤¢¤ë¤¬¡¢ -¤½¤Î°ÕÌ£¤Ï¥í¡¼¥«¥ë¤Ê¥½¥Õ¥È¥¦¥§¥¢¤Ë¤è¤Ã¤ÆÄêµÁ¤µ¤ì¤ë¡£ -Âçʸ»ú¡¢¾®Ê¸»ú¤ò¶èÊ̤·¤Æ¤â¤è¤¤¤¬¡¢ÉáÄ̤϶èÊ̤µ¤ì¤Ê¤¤¡£ -¥í¡¼¥«¥ëÉôʬ¤¬¥´¥ß¤Î¤è¤¦¤Ë¸«¤¨¤ë¾ì¹ç¤Ï¡¢¤½¤ì¤Ï¤¿¤¤¤ÆÆâÉôŪ¤ÊÅŻҥ᡼¥ë -¥·¥¹¥Æ¥à¤È¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Î´Ö¤Ë¤¢¤ë¥²¡¼¥È¥¦¥§¥¤¤Î¤»¤¤¤Ç¤¢¤ë¡£ -Î㤨¤Ð¡¢°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤¬¤¢¤ë¡£ +ローカル部分 ("eric") は普通はユーザーの名前であるが、 +その意味はローカルなソフトウェアによって定義される。 +大文字、小文字を区別してもよいが、普通は区別されない。 +ローカル部分がゴミのように見える場合は、それはたいて内部的な電子メール +システムとインターネットの間にあるゲートウェイのせいである。 +例えば、以下のようなものがある。 .PP "surname/admd=telemail/c=us/o=hp/prmd=hp"@some.where .br @@ -69,51 +69,51 @@ domain .br I2461572@some.where .PP -(¤½¤ì¤¾¤ì¡¢X.400 ¥²¡¼¥È¥¦¥§¥¤¡¢ -Àµ¤·¤¤¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥µ¥Ý¡¼¥È¤ò·ç¤¤¤¿¾¡¼ê¤ÊÆâÉô¥á¡¼¥ë¥·¥¹¥Æ¥à¡¢ -UUCP ¥²¡¼¥È¥¦¥§¥¤¤Ç¤ÎÎã¤Ç¤¢¤ë¡£ -ºÇ¸å¤Î¤Ïñ¤Ë´ÖÈ´¤±¤Ê¥æ¡¼¥¶¡¼Ì¾¤Ç¤¢¤ë¡£) +(それぞれ、X.400 ゲートウェイ、 +正しいインターネットサポートを欠いた勝手な内部メールシステム、 +UUCP ゲートウェイでの例である。 +最後のは単に間抜けなユーザー名である。) .PP -¼Â̾Éôʬ ("Eric Allman") ¤Ï <> ¤ÎÁ°¤ËÃÖ¤¯¤³¤È¤â¤Ç¤­¤ë¤·¡¢ -()¤ËÆþ¤ì¤ÆºÇ¸å¤ËÃÖ¤¯¤³¤È¤â¤Ç¤­¤ë¡£(¸·Ì©¤Ë¸À¤¦¤È¡¢Æó¤Ä¤ÏÁ´¤¯Æ±¤¸ -¤ï¤±¤Ç¤Ï¤Ê¤¤¤¬¡¢¤½¤Î°ã¤¤¤Ï¤³¤Î¥Ú¡¼¥¸¤ÎÌÜŪ¤«¤é³°¤ì¤ë¤Î¤Ç¸ÀµÚ¤·¤Ê¤¤¡£) -Î㤨¤Ð "." ¤Ê¤É¤Îʸ»ú¤ò´Þ¤à¾ì¹ç¤Ë¤Ï̾Á°¤ò "" ¤Ç³ç¤ëɬÍפ¬¤¢¤ë: +実名部分 ("Eric Allman") は <> の前に置くこともできるし、 +()に入れて最後に置くこともできる。(厳密に言うと、二つは全く同じ +わけではないが、その違いはこのページの目的から外れるので言及しない。) +例えば "." などの文字を含む場合には名前を "" で括る必要がある: .PP "Eric P. Allman" -.SS ¾Êά·Á +.SS 省略形 .PP -¿¤¯¤Î¥á¡¼¥ë¡¦¥·¥¹¥Æ¥à¤¬¥É¥á¥¤¥ó̾¤Î¾Êά·Á¤òµö¤·¤Æ¤¤¤ë¡£ -Î㤨¤Ð berkeley.edu ¤Î¥æ¡¼¥¶¡¼¤Ï Eric Allman ¤Ë¥á¡¼¥ë¤òÁ÷¤ë¤¿¤á¤Ë -"eric@monet" ¤¬»ÈÍѤǤ­¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¡Ø¤³¤ÎÆ°ºî¤Ï¿ä¾©¤µ¤ì¤ë¤â¤Î¤Ç¤Ï¤Ê¤¤¡Ù -Àµ¤·¤¯Æ°ºî¤¹¤ë¾ì¹ç¤â¤¢¤ë¤¬¡¢¤½¤ì¤ò¤¢¤Æ¤Ë¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.SS ·ÐÏ©¥¢¥É¥ì¥¹ +多くのメール・システムがドメイン名の省略形を許している。 +例えば berkeley.edu のユーザーは Eric Allman にメールを送るために +"eric@monet" が使用できるかもしれない。 +『この動作は推奨されるものではない』 +正しく動作する場合もあるが、それをあてにすべきではない。 +.SS 経路アドレス .PP -°ÊÁ°¤Ï¡¢¥á¥Ã¥»¡¼¥¸¤¬ºÇ½ªÌÜŪÃϤØÅþ㤹¤ë¤¿¤á¤ËÄ̲᤹¤ë¥Û¥¹¥È¤ò -»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤¬»þ¡¹¤¢¤Ã¤¿¡£ -Ãæ·ÑÅÀ¤ò»ØÄꤷ¤¿¥¢¥É¥ì¥¹¤ò "·ÐÏ©¥¢¥É¥ì¥¹ (route-addrs)" ¤È¤¤¤¦¡£ -°Ê²¼¤Î½ñ¼°¤ò»ÈÍѤ¹¤ë: +以前は、メッセージが最終目的地へ到達するために通過するホストを +指定しなければならないことが時々あった。 +中継点を指定したアドレスを "経路アドレス (route-addrs)" という。 +以下の書式を使用する: .PP <@hosta,@hostb:user@hostc> .PP -¤³¤ì¤ÏÄÌ¿®Ê¸¤ò hosta ¤ËÁ÷¤ê¡¢¤½¤³¤«¤é hostb ¤ËÁ÷¤ê¡¢ºÇ½ªÅª¤Ë hostc ¤Ë -Á÷¤ë¤³¤È¤ò»ØÄꤷ¤Æ¤¤¤ë¡£Â¿¤¯¤Î¥Û¥¹¥È¤Ï·ÐÏ©¥¢¥É¥ì¥¹¤ò̵»ë¤·¤ÆľÀÜ hostc -¤ËÁ÷¤ë¡£ +これは通信文を hosta に送り、そこから hostb に送り、最終的に hostc に +送ることを指定している。多くのホストは経路アドレスを無視して直接 hostc +に送る。 .PP -º£¤Ç¤Ï·ÐÏ©¥¢¥É¥ì¥¹¤¬»È¤ï¤ì¤ë¤³¤È¤Ï¤Û¤È¤ó¤É¤Ê¤¤¡£ -¸Å¤¤¥á¡¼¥ë¡¦¥¢¡¼¥«¥¤¥Ö¤Ç»þ¡¹¤ËÌܤˤ¹¤ë¤³¤È¤¬¤¢¤ë¡£ -°ìÈ̤ˤϼºݤΥ¢¥É¥ì¥¹¤òµá¤á¤ë¤¿¤á¤Ë "user@hostc" °Ê³°¤ÎÁ´¤ÆÉôʬ¤ò̵»ë -¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -.SS "¥Ý¥¹¥È¥Þ¥¹¥¿¡¼ (postmaster)" +今では経路アドレスが使われることはほとんどない。 +古いメール・アーカイブで時々に目にすることがある。 +一般には実際のアドレスを求めるために "user@hostc" 以外の全て部分を無視 +することもできる。 +.SS "ポストマスター (postmaster)" .PP -Á´¤Æ¤Î¥µ¥¤¥È¤Ï¡¢¥á¡¼¥ë¡¦¥·¥¹¥Æ¥à¤ÎÌäÂê¤òÃΤ餻¤ë°¸¤ÆÀè¤È¤·¤Æ¡¢ -"postmaster" ¤È¤¤¤¦¥æ¡¼¥¶¤«ÊÌ̾ÄêµÁ (alias) ¤òÍÑ°Õ¤·¤Ê¤±¤ì¤Ð -¤Ê¤é¤Ê¤¤¡£ "postmaster" ¤Î¥¢¥É¥ì¥¹¤ÏÂçʸ»ú¡¢¾®Ê¸»ú¤Î¶èÊ̤Ϥµ¤ì¤Ê¤¤¡£ -.SH ¥Õ¥¡¥¤¥ë +全てのサイトは、メール・システムの問題を知らせる宛て先として、 +"postmaster" というユーザか別名定義 (alias) を用意しなければ +ならない。 "postmaster" のアドレスは大文字、小文字の区別はされない。 +.SH ファイル .I /etc/aliases .br .I ~/.forward -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR binmail (1), .BR mail (1), .BR mconnect (1), diff --git a/release/man7/man-pages.7 b/release/man7/man-pages.7 index d824c7c6..59deeff7 100644 --- a/release/man7/man-pages.7 +++ b/release/man7/man-pages.7 @@ -33,398 +33,398 @@ .\" Updated 2008-08-09, Akihiro MOTOKI , LDP v3.05 .\" .TH MAN-PAGES 7 2008-10-28 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -man-pages \- Linux ¤Î man ¥Ú¡¼¥¸¤ò½ñ¤¯ºÝ¤Î·è¤Þ¤ê»ö -.SH ½ñ¼° +.SH 名前 +man-pages \- Linux の man ページを書く際の決まり事 +.SH 書式 .B man .RI [ section ] .I title -.SH ÀâÌÀ -¤³¤Î¥Ú¡¼¥¸¤Ç¤Ï¡¢ -Linux \fIman-pages\fP ¥×¥í¥¸¥§¥¯¥È¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò½ñ¤¯ºÝ¤Ë -½¾¤¦¤Ù¤­·è¤Þ¤ê»ö¤Ë¤Ä¤¤¤ÆÀâÌÀ¤¹¤ë¡£ -Linux \fIman-pages\fP ¤Ï Linux ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î -¥»¥¯¥·¥ç¥ó 2, 3, 4, 5, 7 ¤«¤é¹½À®¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥Ú¡¼¥¸¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë·è¤Þ¤ê»ö¤Ï¡¢Â¾¤Î¥×¥í¥¸¥§¥¯¥È¤Î -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò½ñ¤¯ºî¼Ô¤Ë¤âÌòΩ¤Ä¤³¤È¤À¤í¤¦¡£ -.SS ¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¥»¥¯¥·¥ç¥ó +.SH 説明 +このページでは、 +Linux \fIman-pages\fP プロジェクトのマニュアルページを書く際に +従うべき決まり事について説明する。 +Linux \fIman-pages\fP は Linux のマニュアルページの +セクション 2, 3, 4, 5, 7 から構成されている。 +このページで説明されている決まり事は、他のプロジェクトの +マニュアルページを書く作者にも役立つことだろう。 +.SS マニュアルページのセクション .PP -¥Þ¥Ë¥å¥¢¥ë¤Î¥»¥¯¥·¥ç¥ó¤Ï¡¢½¬´·Åª¤Ë°Ê²¼¤Î¤è¤¦¤ÊÄêµÁ¤¬ÍѤ¤¤é¤ì¤Æ¤¤¤ë: +マニュアルのセクションは、習慣的に以下のような定義が用いられている: .TP 10 -.B 1 ¥³¥Þ¥ó¥É (¥×¥í¥°¥é¥à) -¥·¥§¥ë¤ÎÃ椫¤é¥æ¡¼¥¶¤¬¼Â¹Ô¤Ç¤­¤ë¥³¥Þ¥ó¥É¡£ +.B 1 コマンド (プログラム) +シェルの中からユーザが実行できるコマンド。 .TP -.B 2 ¥·¥¹¥Æ¥à¥³¡¼¥ë -¥«¡¼¥Í¥ë¤¬½èÍý¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤´Ø¿ô¡£ +.B 2 システムコール +カーネルが処理しなければならない関数。 .TP -.B 3 ¥é¥¤¥Ö¥é¥ê¥³¡¼¥ë +.B 3 ライブラリコール .I libc -¤Î´Ø¿ô¤ÎÂçÉôʬ¡£ +の関数の大部分。 .TP -.B 4 ¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë (¥Ç¥Ð¥¤¥¹) +.B 4 スペシャルファイル (デバイス) .I /dev -°Ê²¼¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¡£ +以下にあるファイル。 .TP -.B 5 ¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Èµ¬Ìó +.B 5 ファイルのフォーマットと規約 .I /etc/passwd -¤Ê¤É¤Î¿Í¤¬Æɤá¤ë¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¡£ +などの人が読めるファイルのフォーマット。 .TP -.B 6 ¥²¡¼¥à +.B 6 ゲーム .TP -.B 7 Ìó«»ö¤½¤Î¾ -ÍÍ¡¹¤Ê»öÊÁ¤Î³µÍס¢´·½¬¡¢¥×¥í¥È¥³¥ë¡¢Ê¸»ú½¸¹ç¤Îµ¬³Ê¡¢¤½¤Î¾»¨Â¿¤Ê¤³¤È¡£ +.B 7 約束事その他 +様々な事柄の概要、慣習、プロトコル、文字集合の規格、その他雑多なこと。 .TP -.B 8 ¥·¥¹¥Æ¥à´ÉÍý¥³¥Þ¥ó¥É +.B 8 システム管理コマンド .BR mount (8) -¤Î¤è¤¦¤Ê root ¤Î¤ß¤¬¼Â¹Ô²Äǽ¤Ê¥³¥Þ¥ó¥É¡£ +のような root のみが実行可能なコマンド。 .\" .TP -.\" .B 9 ¥«¡¼¥Í¥ë¥ë¡¼¥Á¥ó -.\" ¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥»¥¯¥·¥ç¥ó¤ÏÇѻߤµ¤ì¤¿¡£ -.\" ¤«¤Ä¤Æ¤Ï¤³¤³¤Ë Linux ¥«¡¼¥Í¥ë¤Î¥É¥­¥å¥á¥ó¥È¤òÃÖ¤¯¤Î¤¬Îɤ¤¤³¤È¤À¤È -.\" ¹Í¤¨¤é¤ì¤Æ¤¤¤¿¡£¤·¤«¤·¡¢Ê¸½ñ²½¤µ¤ì¤¿¤â¤Î¤ÏÈó¾ï¤Ë¾¯¤Ê¤¯¡¢ -.\" ¤Þ¤¿¤½¤ì¤é¤â¤¹¤Ç¤Ë¸Å¤¤¤â¤Î¤È¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£ -.\" ¥«¡¼¥Í¥ë³«È¯¼Ô¤Ë¤È¤Ã¤Æ¡¢¤â¤Ã¤È¤è¤¤¾ðÊ󸻤¬Â¾¤Ë¤¢¤ë¤À¤í¤¦¡£ -.SS ¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸ -¿·¤·¤¤¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï +.\" .B 9 カーネルルーチン +.\" このマニュアルセクションは廃止された。 +.\" かつてはここに Linux カーネルのドキュメントを置くのが良いことだと +.\" 考えられていた。しかし、文書化されたものは非常に少なく、 +.\" またそれらもすでに古いものとなってしまった。 +.\" カーネル開発者にとって、もっとよい情報源が他にあるだろう。 +.SS マクロパッケージ +新しいマニュアルページは .BR man (7) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë +で説明されている .B groff an.tmac -¥Ñ¥Ã¥±¡¼¥¸¤ò»È¤Ã¤Æµ­½Ò¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¤³¤ÎÊý¿Ë¤Ï°ì´ÓÀ­¤Î³ÎÊݤ¬¼ç¤ÊÍýͳ¤Ç¤¢¤ë¡£´û¸¤Î Linux ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸ -¤Î°µÅÝŪ¿¿ô¤¬¤³¤ì¤é¤Î¥Þ¥¯¥í¤ò»È¤Ã¤Æµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -.SS ¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ÎÇÛÃ֤˴ؤ¹¤ë·è¤Þ¤ê»ö -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¥½¡¼¥¹¥³¡¼¥É¤Î 1¹Ô¤ÎŤµ¤Ï -²Äǽ¤Ê¸Â¤ê 75ʸ»ú¤ò±Û¤¨¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤Û¤·¤¤¡£ -¤³¤¦¤¹¤ë¤³¤È¤Ç¡¢¥Ñ¥Ã¥Á¤ò¥á¡¼¥ëËÜʸ¤ËºÜ¤»¤ÆÁ÷¤ë¾ì¹ç¤Ë¡¢ -¥á¡¼¥ë¥¯¥é¥¤¥¢¥ó¥È¤Ë¤è¤ë¹ÔÀÞ¤êÊÖ¤·¤ò²óÈò¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +パッケージを使って記述すべきである。 +この方針は一貫性の確保が主な理由である。既存の Linux のマニュアルページ +の圧倒的多数がこれらのマクロを使って記述されている。 +.SS ソースファイルの配置に関する決まり事 +マニュアルページのソースコードの 1行の長さは +可能な限り 75文字を越えないようにしてほしい。 +こうすることで、パッチをメール本文に載せて送る場合に、 +メールクライアントによる行折り返しを回避することができる。 -¿·¤·¤¤Ê¸¤Ï¹ÔƬ¤«¤é³«»Ï¤¹¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢¥Ñ¥Ã¥Á¤ÎÆâÍƤò³Îǧ¤·¤ä¤¹¤¯¤Ê¤ë¡£ -¥Ñ¥Ã¥Á¤Ïʸñ°Ì¤Ç¤¢¤ë¤³¤È¤¬Â¿¤¤¤«¤é¤Ç¤¢¤ë¡£ -.SS ¥¿¥¤¥È¥ë¹Ô -man ¥Ú¡¼¥¸¤ÎºÇ½é¤Î¹Ô¤Ï \fBTH\fP ¥³¥Þ¥ó¥É¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +新しい文は行頭から開始する。 +これにより、パッチの内容を確認しやすくなる。 +パッチは文単位であることが多いからである。 +.SS タイトル行 +man ページの最初の行は \fBTH\fP コマンドにすべきである。 .RS .sp .B \&.TH .I "title section date source manual" .sp .RE -¸Ä¡¹¤ÎÀâÌÀ: +個々の説明: .RS .TP 10 .I title -man ¥Ú¡¼¥¸¤Î¥¿¥¤¥È¥ë¡£Á´ÉôÂçʸ»ú¤Çµ­ºÜ¤¹¤ë (Îã: -.IR MAN-PAGES )¡£ +man ページのタイトル。全部大文字で記載する (例: +.IR MAN-PAGES )。 .TP .I section -man ¥Ú¡¼¥¸¤¬Â°¤¹¤ë¥»¥¯¥·¥ç¥óÈÖ¹æ (Îã: -.IR 7 )¡£ +man ページが属するセクション番号 (例: +.IR 7 )。 .TP .I date -ºÇ¿·¤Î¥ê¥Ó¥¸¥ç¥ó¤ÎÆüÉÕ\(emman ¥Ú¡¼¥¸¤ËÊѹ¹¤ò²Ã¤¨¤¿¤È¤­¤Ë¤Ï -ɬ¤º¤³¤ì¤òÊѹ¹¤¹¤ë¤³¤È¡£ -¤³¤ì¤¬ºÇ¤â°ìÈÌŪ¤Ê¥Ð¡¼¥¸¥ç¥ó´ÉÍýÊýË¡¤Ç¤¢¤ë¡£ -ÆüÉÕ¤Ï YYYY-MM-DD ¤Î·Á¼°¤Çµ­ºÜ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +最新のリビジョンの日付\(emman ページに変更を加えたときには +必ずこれを変更すること。 +これが最も一般的なバージョン管理方法である。 +日付は YYYY-MM-DD の形式で記載すべきである。 .TP .I source -¥³¥Þ¥ó¥É¡¢´Ø¿ô¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î½Ð¼«¡£ +コマンド、関数、システムコールの出自。 -¿ô¾¯¤Ê¤¤¥»¥¯¥·¥ç¥ó 1 ¤È 8 ¤Î¥Ú¡¼¥¸¤Î¾ì¹ç¡¢¤ª¤½¤é¤¯Ã±¤Ë +数少ないセクション 1 と 8 のページの場合、おそらく単に .I GNU -¤È¤À¤±½ñ¤¯¤³¤È¤¬Â¿¤¤¤À¤í¤¦¡£ +とだけ書くことが多いだろう。 -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¾ì¹ç¡¢Ã±¤Ë +システムコールの場合、単に .I "Linux" -¤È¤À¤±½ñ¤¯¡£ -(°ÊÁ°¤Î´·½¬¤Ç¤Ï¡¢¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤òµ­ºÜ¤·¤¿/ÆâÍƤò³Îǧ¤·¤¿¥«¡¼¥Í¥ë¤Î -¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òµ­ºÜ¤·¤Æ¤¤¤¿¡£¤·¤«¤·¡¢¥Ð¡¼¥¸¥ç¥óÈֹ椬¼ÂºÝ¤ÎÆâÍÆ¤È -°ìÃפ·¤Æ¤¤¤ë¤³¤È¤Ï¤Ê¤¯¡¢¤½¤Î¤¿¤á¥Ð¡¼¥¸¥ç¥óÈֹ椬¤Ê¤¤¤è¤ê¤â -¤ª¤½¤é¤¯°­¤¤·Á¤Ë¤Ê¤Ã¤Æ¤¤¤¿¡£ -º£¸å¤Ï¡¢¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤ò´Þ¤á¤ë¤Î¤ÏÈò¤±¤ë¤³¤È¡£) +とだけ書く。 +(以前の慣習では、マニュアルページを記載した/内容を確認したカーネルの +バージョン番号を記載していた。しかし、バージョン番号が実際の内容と +一致していることはなく、そのためバージョン番号がないよりも +おそらく悪い形になっていた。 +今後は、バージョン番号を含めるのは避けること。) -glibc ¤Î¥é¥¤¥Ö¥é¥ê¥³¡¼¥ë¤ä -¤½¤Î¾¤Î°ìÈÌŪ¤Ê GNU ¥é¥¤¥Ö¥é¥ê¤Î¥é¥¤¥Ö¥é¥ê¥³¡¼¥ë¤Î¾ì¹ç¡¢ -ñ¤Ë +glibc のライブラリコールや +その他の一般的な GNU ライブラリのライブラリコールの場合、 +単に .IR "GNU C Library" ", " GNU -¤È½ñ¤¯¤«¡¢¶õ¤Îʸ»úÎó¤ò»È¤¦¡£ +と書くか、空の文字列を使う。 -¥»¥¯¥·¥ç¥ó 4 ¤Î¥Ú¡¼¥¸¤Ç¤Ï +セクション 4 のページでは .I "Linux" -¤ò»È¤¦¡£ +を使う。 -¤è¤¯¤ï¤«¤é¤Ê¤¤¾ì¹ç¤Ï¡¢ +よくわからない場合は、 .I Linux -¤È¤« +とか .I GNU -¤È½ñ¤¤¤Æ¤ª¤¯¡£ +と書いておく。 .TP .I manual -¥Þ¥Ë¥å¥¢¥ë¤Î¥¿¥¤¥È¥ë (Îã: -\fIman-pages\fP ¥Ñ¥Ã¥±¡¼¥¸¤Î¥»¥¯¥·¥ç¥ó 2 ¤ª¤è¤Ó 3 ¤Î¥Ú¡¼¥¸¤Î¾ì¹ç¤Ë¤Ï¡¢ +マニュアルのタイトル (例: +\fIman-pages\fP パッケージのセクション 2 および 3 のページの場合には、 .I "Linux Programmer's Manual" -¤ò»È¤¦¤³¤È)¡£ +を使うこと)。 .RE -.SS ¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¥»¥¯¥·¥ç¥ó -ÀΤ«¤é»È¤ï¤ì¤Æ¤­¤¿¥»¥¯¥·¥ç¥ó̾¤ò°Ê²¼¤Î¥ê¥¹¥È¤Ë¼¨¤¹¡£ -¤³¤ì¤é¤ò»È¤¦¤ÈÎɤ¤¤À¤í¤¦¡£ -°ìÈÌŪ¤Ë¡¢¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï¡¢¾¯¤Ê¤¯¤È¤â -.B ¿§¤Ä¤­ -¤Î¥»¥¯¥·¥ç¥ó¤ò»ý¤Ä¤Î¤¬Ë¾¤Þ¤·¤¤¡£ -¿·¤·¤¯¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤òºîÀ®¤¹¤ëºÝ¤Ë¤Ï¡¢¤À¤¤¤¿¤¤°Ê²¼¤Î¥ê¥¹¥È¤Ë¼¨¤·¤¿ -½ç½ø¤Ç¥»¥¯¥·¥ç¥ó¤òÇÛÃÖ¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤â¤é¤¤¤¿¤¤¡£ +.SS マニュアルページのセクション +昔から使われてきたセクション名を以下のリストに示す。 +これらを使うと良いだろう。 +一般的に、マニュアルページは、少なくとも +.B 色つき +のセクションを持つのが望ましい。 +新しくマニュアルページを作成する際には、だいたい以下のリストに示した +順序でセクションを配置するようにしてもらいたい。 .in +0.5i .nf -\fB̾Á°\fP -\fB½ñ¼°\fP -ÀßÄê [Ä̾ï¤Ï¥»¥¯¥·¥ç¥ó 4 ¤Î¤ß] -\fBÀâÌÀ\fP -¥ª¥×¥·¥ç¥ó [Ä̾ï¤Ï¥»¥¯¥·¥ç¥ó 1, 8 ¤Î¤ß] -½ªÎ»¥¹¥Æ¡¼¥¿¥¹ [Ä̾ï¤Ï¥»¥¯¥·¥ç¥ó 1, 8 ¤Î¤ß] -ÊÖ¤êÃÍ [Ä̾ï¤Ï¥»¥¯¥·¥ç¥ó 2, 3 ¤Î¤ß] +\fB名前\fP +\fB書式\fP +設定 [通常はセクション 4 のみ] +\fB説明\fP +オプション [通常はセクション 1, 8 のみ] +終了ステータス [通常はセクション 1, 8 のみ] +返り値 [通常はセクション 2, 3 のみ] .\" May 07: Few current man pages have an ERROR HANDLING section,,, -.\" ¥¨¥é¡¼½èÍý -¥¨¥é¡¼ [¤¿¤¤¤Æ¤¤¤Ï¥»¥¯¥·¥ç¥ó 2, 3 ¤Î¤ß] +.\" エラー処理 +エラー [たいていはセクション 2, 3 のみ] .\" May 07: Almost no current man pages have a USAGE section,,, -.\" ÍøÍÑË¡ -.\" ¿ÇÃÇ¥á¥Ã¥»¡¼¥¸ +.\" 利用法 +.\" 診断メッセージ .\" May 07: Almost no current man pages have a SECURITY section,,, -.\" ¥»¥­¥å¥ê¥Æ¥£ -´Ä¶­ÊÑ¿ô -¥Õ¥¡¥¤¥ë -¥Ð¡¼¥¸¥ç¥ó [Ä̾ï¤Ï¥»¥¯¥·¥ç¥ó 2, 3 ¤Î¤ß] -½àµò -Ãí°Õ/È÷¹Í -¥Ð¥° -Îã -.\" Ãø¼Ô ¥»¥¯¥·¥ç¥ó¤ÏÈó¿ä¾©¤Ç¤¢¤ë -.\" Ãø¼Ô -\fB´ØÏ¢¹àÌÜ\fP +.\" セキュリティ +環境変数 +ファイル +バージョン [通常はセクション 2, 3 のみ] +準拠 +注意/備考 +バグ +例 +.\" 著者 セクションは非推奨である +.\" 著者 +\fB関連項目\fP .fi .in -¡ÖÅÁÅýŪ¤Ë»È¤ï¤ì¤Æ¤­¤¿¸«½Ð¤·¤¬»È¤¨¤ë¾ì¹ç¤Ë¤Ï¡¢¤½¤ì¤ò»È¤Ã¤Æ¤Û¤·¤¤¡£¡× -¤³¤Î¼ï¤Î°ì´ÓÀ­¤òÊݤĤ³¤È¤Ç¡¢¾ðÊó¤òÍý²ò¤·¤ä¤¹¤¯¤Ê¤ë¤«¤é¤Ç¤¢¤ë¡£ -¤É¤¦¤·¤Æ¤âɬÍפʾì¹ç¤Ë¤Ï¡¢Íý²ò¤·¤ä¤¹¤¯¤Ê¤ë¤è¤¦¤ËÆȼ«¤Î¸«½Ð¤·¤ò -ºî¤Ã¤Æ¤â¤è¤¤ (Æä˥»¥¯¥·¥ç¥ó 4 ¤ä 5 ¤Î¥Ú¡¼¥¸¤Ç¤Ï¤³¤¦¤·¤¿Êý¤¬ -¤ï¤«¤ê¤ä¤¹¤¯¤Ê¤ë)¡£¤¿¤À¤·¡¢¤½¤¦¤¹¤ëÁ°¤Ë¡¢ÅÁÅýŪ¤Ê¸«½Ð¤·¤ò»È¤¤¡¢ -¤½¤Î¥»¥¯¥·¥ç¥óÆâ¤Ë¥µ¥Ö¥»¥¯¥·¥ç¥ó (\fI.SS\fP) ¤òÀߤ±¤ë¤³¤È¤Ç -Âбþ¤Ç¤­¤Ê¤¤¤«¹Í¤¨¤Æ¤Û¤·¤¤¡£ +「伝統的に使われてきた見出しが使える場合には、それを使ってほしい。」 +この種の一貫性を保つことで、情報を理解しやすくなるからである。 +どうしても必要な場合には、理解しやすくなるように独自の見出しを +作ってもよい (特にセクション 4 や 5 のページではこうした方が +わかりやすくなる)。ただし、そうする前に、伝統的な見出しを使い、 +そのセクション内にサブセクション (\fI.SS\fP) を設けることで +対応できないか考えてほしい。 -°Ê²¼¤Î¥ê¥¹¥È¤Ç¤Ï¡¢¾åµ­¤Î¥»¥¯¥·¥ç¥ó¤Î¤½¤ì¤¾¤ì¤ÎÆâÍƤˤĤ¤¤Æ -¾Ü¤·¤¯ÀâÌÀ¤¹¤ë¡£ +以下のリストでは、上記のセクションのそれぞれの内容について +詳しく説明する。 .TP 14 -.B ̾Á° (NAME) -¤½¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î̾Á°¡£ -\fB.SH NAME\fP ¥³¥Þ¥ó¥É¤Î¹Ô¤¬½¾¤¦¤Ù¤­Âç»ö¤ÊÅÀ¤Ë¤Ä¤¤¤Æ¤Ï +.B 名前 (NAME) +そのマニュアルページの名前。 +\fB.SH NAME\fP コマンドの行が従うべき大事な点については .BR man (7) -¤ò»²¾È¤·¤Æ¤Û¤·¤¤¡£ -.TP -.B ½ñ¼° (SYNOPSIS) -¥³¥Þ¥ó¥É¤ä´Ø¿ô¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò´Ê·é¤Ëµ­½Ò¤¹¤ë¡£ -¥³¥Þ¥ó¥É¤ËÂФ·¤Æ¤Ï¡¢¥³¥Þ¥ó¥É¤ä°ú¤­¿ô (¥ª¥×¥·¥ç¥ó) ¤Îʸˡ¤ò½ñ¤¯¡£ -¤½¤Î¤Þ¤Þ½ñ¤¯¥Æ¥­¥¹¥È¤Ë¤Ï¥Ü¡¼¥ë¥ÉÂΤòÍѤ¤¡¢ÃÖ¤­´¹¤¨¤ë°ú¤­¿ô¤Ë¤Ï -¥¤¥¿¥ê¥Ã¥¯ÂΤòÍѤ¤¤ë¡£¾Êά²Äǽ¤Ê¥ª¥×¥·¥ç¥ó¤Ï¥Ö¥é¥±¥Ã¥È ([]) ¤Ç°Ï¤¤¡¢ -ÁªÂò»è¤Ï½ÄËÀ (|) ¤Ç¶èÀڤꡢ·«¤êÊÖ¤·¤Ë¤Ï¾ÊάÉä¹æ (...) ¤ò½ñ¤¯¡£ -´Ø¿ô¤ËÂФ·¤Æ¤Ï¡¢É¬Íפʥǡ¼¥¿Àë¸À¤ä +を参照してほしい。 +.TP +.B 書式 (SYNOPSIS) +コマンドや関数のインターフェースを簡潔に記述する。 +コマンドに対しては、コマンドや引き数 (オプション) の文法を書く。 +そのまま書くテキストにはボールド体を用い、置き換える引き数には +イタリック体を用いる。省略可能なオプションはブラケット ([]) で囲い、 +選択肢は縦棒 (|) で区切り、繰り返しには省略符号 (...) を書く。 +関数に対しては、必要なデータ宣言や .B #include -»ØÄê¤ò½ñ¤­¡¢´Ø¿ôÀë¸À¤ò³¤±¤ë¡£ +指定を書き、関数宣言を続ける。 -¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤«¤é´Ø¿ô (¤äÊÑ¿ô) ¤ÎÄêµÁ¤òÆÀ¤ë¤¿¤á¤Ë -µ¡Ç½¸¡ºº¥Þ¥¯¥í (feature test macro) ¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¾ì¹ç¡¢ -½ñ¼° (SYNOPSIS) ¤ËɬÍפʵ¡Ç½¸¡ºº¥Þ¥¯¥í¤òµ­ºÜ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -µ¡Ç½¸¡ºº¥Þ¥¯¥í¤Ë¤Ä¤¤¤Æ¤Ï +ヘッダファイルから関数 (や変数) の定義を得るために +機能検査マクロ (feature test macro) を定義しなければならない場合、 +書式 (SYNOPSIS) に必要な機能検査マクロを記載すべきである。 +機能検査マクロについては .BR feature_test_macros (7) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡£ +で説明されている。 .\" FIXME . Say something here about compiler options .TP .B CONFIGURATION -¥Ç¥Ð¥¤¥¹¤ÎÀßÄê¾ÜºÙ¡£ -Ä̾¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï 4 ¾Ï¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Î¤ßÅо줹¤ë¡£ -.TP -.B ÀâÌÀ (DESCRIPTION) -¥×¥í¥°¥é¥à¡¦´Ø¿ô¡¦¥Õ¥©¡¼¥Þ¥Ã¥È¤ÎÆ°ºî¡¦ÌÜŪ¤òÀâÌÀ¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¤äɸ½àÆþÎϤò¤É¤Î¤è¤¦¤Ë½èÍý¤·¡¢É¸½à½ÐÎϤäɸ½à¥¨¥é¡¼½ÐÎϤò -¤É¤Î¤è¤¦¤ËÀ¸À®¤¹¤ë¤«¤È¤¤¤Ã¤¿¤³¤È¤Ë¤Ä¤¤¤Æ½Ò¤Ù¤ë¡£ -ÆâÉôÆ°ºî¤ä¼ÂÁõ¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¾Êά¤¹¤ë -(¤¿¤À¤·¤½¤ì¤¬Æ°ºî¤ÎÍý²ò¤Ë¤É¤¦¤·¤Æ¤âɬÍפʤéÊÌ)¡£ -Ä̾ï¤Î¾ì¹ç¤Ë¤Ä¤¤¤Æµ­½Ò¤¹¤ë¡£ -¥×¥í¥°¥é¥à¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¡¦¥ª¥×¥·¥ç¥ó¤ÎÀâÌÀ¤Ë¤Ï¡¢ -.B ¥ª¥×¥·¥ç¥ó -¤Î¥»¥¯¥·¥ç¥ó¤òÍѤ¤¤ë¡£ -.\" ÆþÎϤˤ¢¤ë¼ï¤Îʸˡ¤¬¤¢¤Ã¤¿¤ê¡¢Ê£»¨¤Ê¥µ¥Ö¥³¥Þ¥ó¥É¤¬¤¢¤ë¾ì¹ç¤Ï¡¢ -.\" ¤½¤ì¤é¤Ï -.\" .B ÍøÍÑË¡ -.\" ¤Î¥»¥¯¥·¥ç¥ó¤ËʬΥ¤¹¤ë¤³¤È¤ò¹Í¤¨¤ë¤È¤è¤¤ -.\" .RB ( ÀâÌÀ -.\" ¤Î¥»¥¯¥·¥ç¥ó¤Ë¤Ï³µÍפÀ¤±¤òÃÖ¤¯¤è¤¦¤Ë¤¹¤ë)¡£ -.TP -.B ¥ª¥×¥·¥ç¥ó (OPTIONS) -¥×¥í¥°¥é¥à¤¬¼õ¤±ÉÕ¤±¤ë¥³¥Þ¥ó¥É¥é¥¤¥ó¡¦¥ª¥×¥·¥ç¥ó¤È¡¢ -¤½¤Î¾ì¹ç¥×¥í¥°¥é¥à¤Î¿¶Éñ¤¤¤¬¤É¤¦ÊѤï¤ë¤«¤òÀâÌÀ¤¹¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥»¥¯¥·¥ç¥ó 1 ¤È 8 ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë¤À¤±Åо줹¤Ù¤­¤Ç¤¢¤ë¡£ +デバイスの設定詳細。 +通常、このセクションは 4 章のマニュアルページでのみ登場する。 +.TP +.B 説明 (DESCRIPTION) +プログラム・関数・フォーマットの動作・目的を説明する。 +ファイルや標準入力をどのように処理し、標準出力や標準エラー出力を +どのように生成するかといったことについて述べる。 +内部動作や実装の詳細については省略する +(ただしそれが動作の理解にどうしても必要なら別)。 +通常の場合について記述する。 +プログラムのコマンドライン・オプションの説明には、 +.B オプション +のセクションを用いる。 +.\" 入力にある種の文法があったり、複雑なサブコマンドがある場合は、 +.\" それらは +.\" .B 利用法 +.\" のセクションに分離することを考えるとよい +.\" .RB ( 説明 +.\" のセクションには概要だけを置くようにする)。 +.TP +.B オプション (OPTIONS) +プログラムが受け付けるコマンドライン・オプションと、 +その場合プログラムの振舞いがどう変わるかを説明する。 +このセクションはセクション 1 と 8 のマニュアルページにだけ登場すべきである。 .\" .TP -.\" .B ÍøÍÑË¡ (USAGE) -.\" ¥³¥Þ¥ó¥É¤Ê¤É¤¬¼ÂÁõ¤·¤Æ¤¤¤ëÉû¸À¸ì (sublanguage) ¤Îʸˡ¤òµ­½Ò¤¹¤ë¡£ +.\" .B 利用法 (USAGE) +.\" コマンドなどが実装している副言語 (sublanguage) の文法を記述する。 .TP -.B ½ªÎ»¥¹¥Æ¡¼¥¿¥¹ (EXIT STATUS) -¥×¥í¥°¥é¥à¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤ÎÃͤȡ¢¤½¤ì¤é¤ÎÃͤËÂбþ¤¹¤ë¾õ¶·¤òÎóµó¤¹¤ë¡£ -¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥»¥¯¥·¥ç¥ó 1 ¤È 8 ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë¤À¤±Åо줹¤Ù¤­¤Ç¤¢¤ë¡£ +.B 終了ステータス (EXIT STATUS) +プログラムの終了ステータスの値と、それらの値に対応する状況を列挙する。 +このセクションはセクション 1 と 8 のマニュアルページにだけ登場すべきである。 .TP -.B ÊÖ¤êÃÍ (RETURN VALUE) -¥»¥¯¥·¥ç¥ó 2 ¤È 3 ¤Î¥Ú¡¼¥¸¤Î¾ì¹ç¡¢¤³¤Î¥»¥¯¥·¥ç¥ó¤Ë -¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤¬¸Æ¤Ó½Ð¤·¸µ¤ËÊÖ¤¹ÃͤΥꥹ¥È¤òµ­ºÜ¤¹¤ë¡£ -¤½¤ì¤é¤ÎÃͤ¬ÊÖ¤µ¤ì¤¿¾ì¹ç¤Î¾õÂÖ¤ËÂФ¹¤ëÀâÌÀ¤â½ñ¤¯¡£ +.B 返り値 (RETURN VALUE) +セクション 2 と 3 のページの場合、このセクションに +ライブラリルーチンが呼び出し元に返す値のリストを記載する。 +それらの値が返された場合の状態に対する説明も書く。 .TP -.B ¥¨¥é¡¼ (ERRORS) -¥»¥¯¥·¥ç¥ó 2 ¤È 3 ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Ï¡¢ -¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë +.B エラー (ERRORS) +セクション 2 と 3 のマニュアルページでは、 +エラーが発生した場合に .I errno -¤ËÀßÄꤵ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ëÃͤΥꥹ¥È¤òµ­ºÜ¤¹¤ë¡£ -¥ê¥¹¥È¤Ë¤Ï¡¢¥¨¥é¡¼¤ÎÃͤȥ¨¥é¡¼¤Î¸¶°ø¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤ò½ñ¤¯¡£ -¡Ö¥¨¥é¡¼¥ê¥¹¥È¤Ï¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½ç¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£¡× -.TP -.B ´Ä¶­ÊÑ¿ô (ENVIRONMENT) -¥×¥í¥°¥é¥à¤ä´Ø¿ô¤Ë±Æ¶Á¤¹¤ë´Ä¶­ÊÑ¿ô¤ò¥ê¥¹¥È¤·¡¢¤½¤ì¤é¤Î¸ú²Ì¤ò½ñ¤¯¡£ -.TP -.B ¥Õ¥¡¥¤¥ë (FILES) -¥×¥í¥°¥é¥à¤ä´Ø¿ô¤¬ÍѤ¤¤ë¥Õ¥¡¥¤¥ë¤òÎóµ­¤¹¤ë¡£ -Î㤨¤Ð¡¢ÀßÄê¥Õ¥¡¥¤¥ë¡¢µ¯Æ°¥Õ¥¡¥¤¥ë¡¢¥×¥í¥°¥é¥à¤¬Ä¾ÀÜÁàºî¤¹¤ë¥Õ¥¡¥¤¥ë¤Ê¤É¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë̾¤Ï¥Õ¥ë¥Ñ¥¹¤Çµ­ºÜ¤·¡¢ -¥Ç¥£¥ì¥¯¥È¥ê¤ÎÉôʬ¤Ï¥æ¡¼¥¶¡¼¤Î¹¥¤ß¤Ë¹ç¤ï¤»¤Æ -¥¤¥ó¥¹¥È¡¼¥ë½èÍý¤ÇÊѹ¹¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ -¿¤¯¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¥Ç¥Õ¥©¥ë¥È¤Î¥¤¥ó¥¹¥È¡¼¥ëÀè¤Ï +に設定される可能性がある値のリストを記載する。 +リストには、エラーの値とエラーの原因についての情報を書く。 +「エラーリストはアルファベット順にすべきである。」 +.TP +.B 環境変数 (ENVIRONMENT) +プログラムや関数に影響する環境変数をリストし、それらの効果を書く。 +.TP +.B ファイル (FILES) +プログラムや関数が用いるファイルを列記する。 +例えば、設定ファイル、起動ファイル、プログラムが直接操作するファイルなどである。 +これらのファイルのファイル名はフルパスで記載し、 +ディレクトリの部分はユーザーの好みに合わせて +インストール処理で変更できるようにする。 +多くのプログラムではデフォルトのインストール先は .I /usr/local -¤Ç¤¢¤ë¡£¤·¤¿¤¬¤Ã¤Æ¥Ù¡¼¥¹¤È¤Ê¤ë¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤â +である。したがってベースとなるマニュアルページでも .I /usr/local -¤¬»È¤ï¤ì¤Æ¤¤¤ë¤³¤È¤¬Â¿¤¤¤À¤í¤¦¡£ +が使われていることが多いだろう。 .\" May 07: Almost no current man pages have a DIAGNOSTICS section; .\" "RETURN VALUE" or "EXIT STATUS" is preferred. .\" .TP -.\" .B ¿ÇÃÇ¥á¥Ã¥»¡¼¥¸ (DIAGNOSTICS) -.\" ¤´¤¯°ìÈÌŪ¤Ê¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Î³µÍפȡ¢ -.\" ¤½¤ì¤é¤ò¤É¤¦°·¤¦¤«¤Ë¤Ä¤¤¤Æ½Ò¤Ù¤ë¡£¥×¥í¥°¥é¥à¤Î¼Â¹Ô»þ¤Ë¸½¤ì¤ë -.\" ¥·¥¹¥Æ¥à¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤äÃ×̿Ū¥·¥°¥Ê¥ë¤òÁ´ÉôÀâÌÀ¤¹¤ëɬÍפϤʤ¤¡£ -.\" ¤¿¤À¤·¤½¤ì¤é¤¬¥×¥í¥°¥é¥à¤ËÂФ·¤Æ -.\" ²¿¤é¤«¤ÎÆüì¤Ê°ÕÌ£¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¤ÏÊ̤Ǥ¢¤ë¡£ +.\" .B 診断メッセージ (DIAGNOSTICS) +.\" ごく一般的なエラーメッセージの概要と、 +.\" それらをどう扱うかについて述べる。プログラムの実行時に現れる +.\" システムエラーメッセージや致命的シグナルを全部説明する必要はない。 +.\" ただしそれらがプログラムに対して +.\" 何らかの特殊な意味を持っている場合は別である。 .\" .\" May 07: Almost no current man pages have a SECURITY section. .\".TP -.\" .B ¥»¥­¥å¥ê¥Æ¥£ (SECURITY) -.\" ¥»¥­¥å¥ê¥Æ¥£´ØÏ¢¤ÎÏÃÂꡦÌäÂê¤Ë¤Ä¤¤¤Æ½Ò¤Ù¤ë¡£ -.\" Èò¤±¤ë¤Ù¤­ÀßÄê¤ä´Ä¶­¡¦¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÌäÂê¤ò°ú¤­µ¯¤³¤¹¥³¥Þ¥ó¥É -.\" ¤Ê¤É¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë¡£¤½¤ì¤é¤¬ÌÀ¤é¤«¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢¤³¤ì¤ÏÆä˽ÅÍפǤ¢¤ë¡£ -.\" ¥»¥­¥å¥ê¥Æ¥£¤Ë´Ø¤¹¤ëÏÃÂê¤Ï¡¢É¬¤º¤·¤âÆÈΩ¤·¤¿¥»¥¯¥·¥ç¥ó¤Ë¤¹¤ëɬÍפϤʤ¤¡£ -.\" ¤â¤·Íý²ò¤·¤ä¤¹¤±¤ì¤Ð¡¢¥»¥­¥å¥ê¥Æ¥£¤Î¾ðÊó¤Ï¾¤Î¥»¥¯¥·¥ç¥ó -.\" (Î㤨¤Ð -.\" .B ÀâÌÀ -.\" ¤ä -.\" .B ÍøÍÑË¡ -.\" ¤Ê¤É) ¤Ë½ñ¤¤¤Æ¤â¤è¤¤¡£ -.\" ¤·¤«¤·¡¢¥»¥­¥å¥ê¥Æ¥£¤Î¾ðÊó¤Ï¤É¤³¤«¤Ë¤Ï½ñ¤¤¤Æ¤ª¤¤¤Æ¤Û¤·¤¤! -.TP -.B ¥Ð¡¼¥¸¥ç¥ó (VERSIONS) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä¥é¥¤¥Ö¥é¥ê´Ø¿ô¤¬Åо줷¤¿¤ê¡¢Æ°ºî¤Î½ÅÍפÊÊѹ¹¤¬¹Ô¤ï¤ì¤¿¡¢ -Linux ¥«¡¼¥Í¥ë¤ä glibc ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Î´Ê·é¤Ê³µÍס£ -°ìÈ̤ˡ¢Á´¤Æ¤Î¿·¤·¤¤¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï¡¢¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë -¡Ö¥Ð¡¼¥¸¥ç¥ó¡×¤ÎÀá¤òÀߤ±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -»ÄÇ°¤Ê¤³¤È¤Ë¡¢Â¿¤¯¤Î´û¸¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë¤³¤Î¾ðÊó¤Ï´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤ -(¤³¤ì¤é¤Î¥Ú¡¼¥¸¤¬½ñ¤«¤ì¤¿»þÅÀ¤Ç¤Ï¤½¤Î¤è¤¦¤Ê¥Ý¥ê¥·¡¼¤Ï¤Ê¤«¤Ã¤¿¤«¤é¤Ç¤¢¤ë)¡£ -¤³¤ì¤ò²þÁ±¤¹¤ë¥Ñ¥Ã¥Á¤Ï´¿·Þ¤µ¤ì¤ë¤¬¡¢ -¿·¤·¤¤¥³¡¼¥É¤ò½ñ¤¯¥×¥í¥°¥é¥Þ¤Î´ÑÅÀ¤«¤é¤¹¤ì¤Ð¡¢ -¤ª¤½¤é¤¯¤³¤Î¾ðÊ󤬽ÅÍפˤʤë¤Î¤Ï¡¢ -Linux 2.4 °Ê¹ß¤ÇÄɲ䵤줿¥«¡¼¥Í¥ë¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹ (¥«¡¼¥Í¥ë 2.2 ¤«¤é¤ÎÊѹ¹) ¤È -glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤ÇÄɲ䵤줿¥é¥¤¥Ö¥é¥ê´Ø¿ô (glibc 2.0 ¤«¤é¤ÎÊѹ¹) -¤Ë¤Ä¤¤¤Æ¤Î¤ß¤Ç¤¢¤í¤¦¡£ +.\" .B セキュリティ (SECURITY) +.\" セキュリティ関連の話題・問題について述べる。 +.\" 避けるべき設定や環境・セキュリティ上の問題を引き起こすコマンド +.\" などについて警告する。それらが明らかでない場合には、これは特に重要である。 +.\" セキュリティに関する話題は、必ずしも独立したセクションにする必要はない。 +.\" もし理解しやすければ、セキュリティの情報は他のセクション +.\" (例えば +.\" .B 説明 +.\" や +.\" .B 利用法 +.\" など) に書いてもよい。 +.\" しかし、セキュリティの情報はどこかには書いておいてほしい! +.TP +.B バージョン (VERSIONS) +システムコールやライブラリ関数が登場したり、動作の重要な変更が行われた、 +Linux カーネルや glibc のバージョンについての簡潔な概要。 +一般に、全ての新しいインターフェイスは、マニュアルページに +「バージョン」の節を設けるべきである。 +残念なことに、多くの既存のマニュアルページにこの情報は含まれていない +(これらのページが書かれた時点ではそのようなポリシーはなかったからである)。 +これを改善するパッチは歓迎されるが、 +新しいコードを書くプログラマの観点からすれば、 +おそらくこの情報が重要になるのは、 +Linux 2.4 以降で追加されたカーネルインターフェイス (カーネル 2.2 からの変更) と +glibc バージョン 2.1 以降で追加されたライブラリ関数 (glibc 2.0 からの変更) +についてのみであろう。 .BR syscalls (2) -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë¤â¡¢¤¤¤í¤¤¤í¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬½é¤á¤ÆÅо줷¤¿ -¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Î¾ðÊ󤬽ñ¤«¤ì¤Æ¤¤¤ë¡£ -.TP -.B ½àµò (CONFORMING TO) -¤½¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë´Ø¿ô¤ä¥³¥Þ¥ó¥É¤Ë´ØÏ¢¤¹¤ë -ɸ½àµ¬³Ê¤ä´·½¬¤Ë¤Ä¤¤¤Æµ­ºÜ¤¹¤ë¡£ -¥»¥¯¥·¥ç¥ó 2 ¤ä 3 ¤Î¥Ú¡¼¥¸¤Ç¤Ï¡¢¤³¤Î¥»¥¯¥·¥ç¥ó¤Ç -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä´Ø¿ô¤¬½àµò¤¹¤ë POSIX.1 ¤Î¥Ð¡¼¥¸¥ç¥ó¤È¡¢ -C99 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¤«¤Ë¿¨¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -(SUS, SUSv2, XPG ¤Ê¤É¤Î¾¤Îɸ½àµ¬³Ê¤ä¡¢SVr4 ¤ä 4.xBSD ¤Î¼ÂÁõɸ½à¤Ë -¤Ä¤¤¤Æ¤Ï¡¢ÀâÌÀ¤·¤Æ¤¤¤ë¥³¡¼¥ë¤¬¤³¤ì¤é¤Îµ¬³Ê¤Çµ¬Äꤵ¤ì¤Æ¤ª¤ê -POSIX.1 ¤Î¸½¹Ô¥Ð¡¼¥¸¥ç¥ó¤Çµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç°Ê³°¤Ï¡¢ -¤¢¤Þ¤ê¿¼¤¯µ¤¤Ë¤¹¤ëɬÍפϤʤ¤¡£) +マニュアルページにも、いろいろなシステムコールが初めて登場した +カーネルバージョンについての情報が書かれている。 +.TP +.B 準拠 (CONFORMING TO) +そのマニュアルページで説明している関数やコマンドに関連する +標準規格や慣習について記載する。 +セクション 2 や 3 のページでは、このセクションで +システムコールや関数が準拠する POSIX.1 のバージョンと、 +C99 で規定されているかに触れるべきである。 +(SUS, SUSv2, XPG などの他の標準規格や、SVr4 や 4.xBSD の実装標準に +ついては、説明しているコールがこれらの規格で規定されており +POSIX.1 の現行バージョンで規定されていない場合以外は、 +あまり深く気にする必要はない。) .RB ( standards (7) -»²¾È¡£) +参照。) -¤½¤Î¥³¡¼¥ë¤¬¤É¤Îɸ½à¤Ë¤â´ð¤Å¤¤¤Æ¤¤¤Ê¤¤¤¬¡¢ -¾¤Î¥·¥¹¥Æ¥à¤Ç¹­¤¯Â¸ºß¤¹¤ë¾ì¹ç¤Ï¡¢¤½¤Î»Ý¤òµ­ºÜ¤¹¤ë¤³¤È¡£ -¤½¤Î¥³¡¼¥ë¤¬ Linux ¸ÇÍ­¤Î¾ì¹ç¤Ï¡¢¤½¤Î»Ý¤òµ­ºÜ¤¹¤ë¤³¤È¡£ +そのコールがどの標準にも基づいていないが、 +他のシステムで広く存在する場合は、その旨を記載すること。 +そのコールが Linux 固有の場合は、その旨を記載すること。 -(¤½¤¦¤Ê¤Ã¤Æ¤¤¤ë¥Ú¡¼¥¸¤¬Â¿¤¤¤¬) ¤³¤Î¥»¥¯¥·¥ç¥ó¤ÎÆâÍƤ¬É¸½à¤Î¥ê¥¹¥È -¤À¤±¤Î¾ì¹ç¡¢¥ê¥¹¥È¤ÎºÇ¸å¤Ë¥Ô¥ê¥ª¥É (\(aq.\(aq) ¤òÃÖ¤¯¤³¤È¡£ -.TP -.B Ãí°Õ (NOTES) -¤½¤Î¾¤ÎÃí°ÕÅÀ¤ò½ñ¤¯¡£ -¥»¥¯¥·¥ç¥ó 2 ¤È 3 ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Ï¡¢ -\fILinux ¤Ç¤ÎÃí°Õ (Linux Notes)\fP ¤ä \fIglibc ¤Ç¤ÎÃí°Õ (Glibc Notes)\fP -¤È¤¤¤¦Ì¾Á°¤Î¥µ¥Ö¥»¥¯¥·¥ç¥ó (\fBSS\fP) ¤òÀߤ±¤ë¤ÈÊØÍø¤Ê¤³¤È¤â¤¢¤ë¡£ -.TP -.B ¥Ð¥° (BUGS) -À©¸Â¡¦ÃΤé¤ì¤Æ¤¤¤ë·ç´Ù¤äÉÔÊؤÊÅÀ¡¢¤½¤Î¾ÉԻ׵ĤÊÆ°ºî¤Ê¤É¤ò½ñ¤¯¡£ -.TP -.B Îã (EXAMPLE) -¤³¤Î´Ø¿ô¡¦¥Õ¥¡¥¤¥ë¡¦¥³¥Þ¥ó¥É¤ò¤É¤Î¤è¤¦¤Ë»È¤¦¤«¤ò¼¨¤·¤¿ -¤Ò¤È¤Ä¤Þ¤¿¤ÏÊ£¿ô¤ÎÎã¤òµ­½Ò¤¹¤ë¡£ -¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤ò½ñ¤¯ºÝ¤Î¾ÜºÙ¤Ï -°Ê²¼¤Î¡Ö¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¡×¤ÎÀá¤ò»²¾È¤Î¤³¤È¡£ -.TP -.B Ãø¼Ô (AUTHORS) -ʸ½ñ¤Þ¤¿¤Ï¥×¥í¥°¥é¥à¤ÎÃø¼Ô¤òÎóµ­¤¹¤ë¡£ -.B Ãø¼Ô¥»¥¯¥·¥ç¥ó¤Ï¶ËÎÏ»ÈÍѤ·¤Ê¤¤¤³¤È¡£ -°ìÈÌŪ¤Ë¤Ï¡¢Ãø¼Ô¤Î¥ê¥¹¥È¤ò³Æ¥Ú¡¼¥¸¤Ë»µ¤­»¶¤é¤µ¤Ê¤¤Êý¤¬¤è¤¤ -(»þ´Ö¤¬¤¿¤Ä¤È¡¢ºî¼Ô¤Î¥ê¥¹¥È¤ÏËÄÂç¤Ë¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ë)¡£ -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò¿·µ¬¤Ë½ñ¤¤¤¿¤ê¡¢ÂçÉý¤Ë½¤Àµ¤ò¹Ô¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ -¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ë¥³¥á¥ó¥È¤È¤·¤ÆÃøºî¸¢É½¼¨¤òÄɲ乤뤳¤È¡£ -¤¢¤Ê¤¿¤¬¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Îºî¼Ô¤Ç¡¢¥Ð¥°¤òÊó¹ð¤¹¤ë¤¿¤á¤Î¥¢¥É¥ì¥¹¤ò -ºÜ¤»¤¿¤¤¾ì¹ç¤Ï¡¢¡Ö¥Ð¥°¡×¥»¥¯¥·¥ç¥ó¤Î¸å¤í¤Ë¤³¤Î¥»¥¯¥·¥ç¥ó¤òÇÛÃÖ¤¹¤ë¤³¤È¡£ -.TP -.B ´ØÏ¢¹àÌÜ (SEE ALSO) -´ØÏ¢¤¹¤ë¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò¡¢¥³¥ó¥Þ¶èÀÚ¤ê¤Î¥ê¥¹¥È¤Ç¡¢ -¥»¥¯¥·¥ç¥óÈÖ¹æ½ç¤Ë¡¢¥»¥¯¥·¥ç¥óÆâ¤Ç¤Ï¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½ç¤Çµ­ºÜ¤¹¤ë¡£ -²Äǽ¤Ê¤é´ØÏ¢¤¹¤ë¾¤Îʸ½ñ¤â½ñ¤¯¡£ -´·½¬¤Ç¤Ï¡¢¤³¤Î¥»¥¯¥·¥ç¥ó¤ÏºÇ¸å¤ËÃÖ¤¯¡£ -¥ê¥¹¥È¤ÎËöÈø¤Ë¥Ô¥ê¥ª¥É¤òÃÖ¤«¤Ê¤¤¤³¤È¡£ -.SS ¥Õ¥©¥ó¥È¤Î´·½¬ +(そうなっているページが多いが) このセクションの内容が標準のリスト +だけの場合、リストの最後にピリオド (\(aq.\(aq) を置くこと。 +.TP +.B 注意 (NOTES) +その他の注意点を書く。 +セクション 2 と 3 のマニュアルページでは、 +\fILinux での注意 (Linux Notes)\fP や \fIglibc での注意 (Glibc Notes)\fP +という名前のサブセクション (\fBSS\fP) を設けると便利なこともある。 +.TP +.B バグ (BUGS) +制限・知られている欠陥や不便な点、その他不思議な動作などを書く。 +.TP +.B 例 (EXAMPLE) +この関数・ファイル・コマンドをどのように使うかを示した +ひとつまたは複数の例を記述する。 +サンプルプログラムを書く際の詳細は +以下の「サンプルプログラム」の節を参照のこと。 +.TP +.B 著者 (AUTHORS) +文書またはプログラムの著者を列記する。 +.B 著者セクションは極力使用しないこと。 +一般的には、著者のリストを各ページに撒き散らさない方がよい +(時間がたつと、作者のリストは膨大になる可能性がある)。 +マニュアルページを新規に書いたり、大幅に修正を行った場合には、 +ソースファイルにコメントとして著作権表示を追加すること。 +あなたがデバイスドライバの作者で、バグを報告するためのアドレスを +載せたい場合は、「バグ」セクションの後ろにこのセクションを配置すること。 +.TP +.B 関連項目 (SEE ALSO) +関連するマニュアルページを、コンマ区切りのリストで、 +セクション番号順に、セクション内ではアルファベット順で記載する。 +可能なら関連する他の文書も書く。 +慣習では、このセクションは最後に置く。 +リストの末尾にピリオドを置かないこと。 +.SS フォントの慣習 .PP -´Ø¿ô¤ËÂФ·¤Æ¤Ï¡¢°ú¤­¿ô¤Ë¤Ï¾ï¤Ë¥¤¥¿¥ê¥Ã¥¯ÂΤòÍѤ¤¤ë¡£ -¡Ö¤¿¤È¤¨½ñ¼° (SYNOPSIS) ¥»¥¯¥·¥ç¥ó¤Ç¤¢¤Ã¤Æ¤â¡¢¤³¤Î¥ë¡¼¥ë¤Ë½¾¤¦¡× -´Ø¿ô¤Î¾¤ÎÉôʬ¤Ï¥Ü¡¼¥ë¥É¤ò»ØÄꤹ¤ë: +関数に対しては、引き数には常にイタリック体を用いる。 +「たとえ書式 (SYNOPSIS) セクションであっても、このルールに従う」 +関数の他の部分はボールドを指定する: .PP .BI " int myfunction(int " argc ", char **" argv ); .PP -°ú¤­¿ô̾¤È¤¤¤Ã¤¿ÊÑ¿ô̾¤Ï¥¤¥¿¥ê¥Ã¥¯ÂΤò»ØÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£ +引き数名といった変数名はイタリック体を指定すべきである。 .PP -¥Õ¥¡¥¤¥ë̾ (¥Ñ¥¹Ì¾¡¢¤Þ¤¿¤Ï +ファイル名 (パス名、または .I /usr/include -¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¤Ø¤Î»²¾È) ¤Ï¾ï¤Ë¥¤¥¿¥ê¥Ã¥¯ÂΤˤ¹¤ë (Îã: -.IR )¡£ -¤¿¤À¤·¡¢½ñ¼° (SYNOPSIS) ¥»¥¯¥·¥ç¥ó¤ÏÎã³°¤Ç¡¢ -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Ï¥Ü¡¼¥ë¥É¤Ë¤¹¤ë (Îã: -.BR "#include " )¡£ +ディレクトリ内のファイルへの参照) は常にイタリック体にする (例: +.IR )。 +ただし、書式 (SYNOPSIS) セクションは例外で、 +インクルードファイルはボールドにする (例: +.BR "#include " )。 .I /usr/include -°Ê²¼¤Îɸ½à¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ëºÝ¤Ï¡¢ -Ä̾ï¤Î C ¸À¸ì¤ÈƱÍͤ˻³³ç¸Ì¤Ç¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò°Ï¤Ì¤Ç»ØÄꤹ¤ë (Î㡧 -.IR )¡£ +以下の標準のインクルードファイルを参照する際は、 +通常の C 言語と同様に山括弧でヘッダファイルを囲ぬで指定する (例: +.IR )。 .PP -Ä̾Âçʸ»ú¤Çɽ¸½¤¹¤ëÆüì¥Þ¥¯¥í¤Ï¥Ü¡¼¥ë¥É¤Çɽ¤¹ (Î㤨¤Ð -.BR MAXINT )¡£ -Îã³°¤È¤·¤Æ NULL ¤Ï¥Ü¡¼¥ë¥É¤Ë¤·¤Ê¤¤¡£ +通常、大文字で表現する特殊マクロはボールドで表す (例えば +.BR MAXINT )。 +例外として NULL はボールドにしない。 .PP -¥¨¥é¡¼¥³¡¼¥É¤Î¥ê¥¹¥È¤òÎóµó¤¹¤ë»þ¤Ë¤Ï¡¢¥³¡¼¥É¤Ï¥Ü¡¼¥ë¥É¤Çɽ¤¹ -(¤³¤Î¥ê¥¹¥È¤Ë¤ÏÄ̾ï +エラーコードのリストを列挙する時には、コードはボールドで表す +(このリストには通常 .B \&.TP -¥Þ¥¯¥í¤òÍѤ¤¤ë)¡£ +マクロを用いる)。 .PP -´°Á´¤Ê¥³¥Þ¥ó¥É¤Ï¡¢Ä¹¤¤¾ì¹ç¤Ë¤Ï¡¢Îã¤Ë¼¨¤¹¤è¤¦¤Ë -»ú²¼¤²¤·¤¿¹Ô¤Ë¥³¥Þ¥ó¥É¤À¤±¤òµ­ºÜ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +完全なコマンドは、長い場合には、例に示すように +字下げした行にコマンドだけを記載すべきである。 .in +4n .nf @@ -432,118 +432,118 @@ man 7 man-pages .fi .in -¥³¥Þ¥ó¥É¤¬Ã»¤¤¾ì¹ç¤Ï¡¢ +コマンドが短い場合は、 .I "man 7 man-pages" -¤Î¤è¤¦¤Ë¥¤¥¿¥ê¥Ã¥¯ÂΤÇʸÃæ¤ËËä¤á¹þ¤ó¤Çµ­ºÜ¤·¤Æ¤â¤è¤¤¡£ -¤³¤Î¾ì¹ç¡¢¥³¥Þ¥ó¥ÉÆâ¤ÎŬÀڤʰÌÃ֤ˡ¢²þ¹Ô¤Ç¤­¤Ê¤¤¥¹¥Ú¡¼¥¹ ("\e\ ") -¤ò»È¤¦¤È¤è¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ -¥³¥Þ¥ó¥É¥ª¥×¥·¥ç¥ó¤â +のようにイタリック体で文中に埋め込んで記載してもよい。 +この場合、コマンド内の適切な位置に、改行できないスペース ("\e\ ") +を使うとよいかもしれない。 +コマンドオプションも .I \-l -¤Î¤è¤¦¤Ë¥¤¥¿¥ê¥Ã¥¯ÂΤǵ­ºÜ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +のようにイタリック体で記載すべきである。 .PP -¼°¤Ï¡¢ÀìÍѤλú²¼¤²¤·¤¿¹Ô¤Ëµ­ºÜ¤·¤Ê¤¤¾ì¹ç¡¢¥¤¥¿¥ê¥Ã¥¯ÂΤò»ØÄꤹ¤ë¤³¤È¡£ -·«¤êÊÖ¤·¤Ë¤Ê¤ë¤¬¡¢¼°¤òÄ̾ï¤ÎʸÃæ¤ËËä¤á¹þ¤à¾ì¹ç¤Ë¤â¡¢ -²þ¹Ô¤Ç¤­¤Ê¤¤¥¹¥Ú¡¼¥¹¤ò»È¤¦¤È¤è¤¤¤À¤í¤¦¡£ +式は、専用の字下げした行に記載しない場合、イタリック体を指定すること。 +繰り返しになるが、式を通常の文中に埋め込む場合にも、 +改行できないスペースを使うとよいだろう。 .PP -¤½¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÎÀâÌÀÂоݤؤλ²¾È¤Ï¡¢¥Ü¡¼¥ë¥É¤Ç̾Á°¤òµ­ºÜ¤¹¤ë¡£ -Âоݤ¬´Ø¿ô (¤Ä¤Þ¤ê¡¢¥»¥¯¥·¥ç¥ó 2 ¤ä 3 ¤Î¥Ú¡¼¥¸) ¤Î¾ì¹ç¡¢ -̾Á°¤Î¸å¤í¤Ë¥í¡¼¥Þ¥ó¥Õ¥©¥ó¥È (Ä̾ï¤Î¥Õ¥©¥ó¥È) ¤Ç´Ý³ç¸Ì¤ÎÂФò³¤±¤ë¡£ -Î㤨¤Ð¡¢ +そのマニュアルページの説明対象への参照は、ボールドで名前を記載する。 +対象が関数 (つまり、セクション 2 や 3 のページ) の場合、 +名前の後ろにローマンフォント (通常のフォント) で丸括弧の対を続ける。 +例えば、 .BR fcntl (2) -¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Ï¡¢ÀâÌÀÂоݤؤλ²¾È¤Ï +のマニュアルページでは、説明対象への参照は .BR fcntl () -¤Î¤è¤¦¤Ëµ­ºÜ¤¹¤ë¡£ -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ë¤Ï¼¡¤Î¤è¤¦¤Ëµ­ºÜ¤¹¤ë¤Î¤¬Ë¾¤Þ¤·¤¤: +のように記載する。 +マニュアルページのソースファイルには次のように記載するのが望ましい: .nf .BR fcntl () .fi -("\\fB...\\fP()" ¤è¤ê¤â¡¢¤³¤Î·Á¼°¤ò»È¤¦¤³¤È¡£ -¤³¤ì¤Ë¤è¤ê¡¢¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ò²ò¼á¤¹¤ë¥Ä¡¼¥ë¤ò -½ñ¤¯¤Î¤¬´Êñ¤Ë¤Ê¤ë¡£) +("\\fB...\\fP()" よりも、この形式を使うこと。 +これにより、マニュアルページのソースファイルを解釈するツールを +書くのが簡単になる。) .PP -Ê̤Υޥ˥奢¥ë¥Ú¡¼¥¸¤Ø¤Î»²¾È¤Ï¡¢¥Ü¡¼¥ë¥É¤Ç̾Á°¤òµ­ºÜ¤·¡¢ -¤½¤ì¤Ë³¤±¤Æ¥»¥¯¥·¥ç¥óÈÖ¹æ¤ò¡Öɬ¤º¡×½ñ¤¯¡£¥»¥¯¥·¥ç¥óÈÖ¹æ¤Ï -¥í¡¼¥Þ¥ó¥Õ¥©¥ó¥È (Ä̾ï¤Î¥Õ¥©¥ó¥È) ¤Ç½ñ¤­¡¢¥¹¥Ú¡¼¥¹¤ÏÆþ¤ì¤Ê¤¤ -(Îã: -.BR intro (2))¡£ -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ë¤Ï¼¡¤Î¤è¤¦¤Ëµ­ºÜ¤¹¤ë¤Î¤¬Ë¾¤Þ¤·¤¤: +別のマニュアルページへの参照は、ボールドで名前を記載し、 +それに続けてセクション番号を「必ず」書く。セクション番号は +ローマンフォント (通常のフォント) で書き、スペースは入れない +(例: +.BR intro (2))。 +マニュアルページのソースファイルには次のように記載するのが望ましい: .nf .BR intro (2) .fi -(Áê¸ß»²¾È¤Ë¥»¥¯¥·¥ç¥óÈÖ¹æ¤ò´Þ¤á¤Æ¤ª¤¯¤È¡¢ +(相互参照にセクション番号を含めておくと、 .B man2html -¤È¤¤¤Ã¤¿¥Ä¡¼¥ë¤¬¥Ú¡¼¥¸´Ö¤Î¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤òŬÀÚ¤ËÀ¸À®¤Ç¤­¤ë¡£) -.SS ÄÖ¤ê (spelling) -¥ê¥ê¡¼¥¹ 2.59 ¤«¤é¤À¤¬¡¢ +といったツールがページ間のハイパーリンクを適切に生成できる。) +.SS 綴り (spelling) +リリース 2.59 からだが、 .I man-pages -¤Ï¥¢¥á¥ê¥«±Ñ¸ì¤ÎÄÖ¤ê¤Î´·½¬¤Ë½¾¤Ã¤Æ¤¤¤ë¡£ -¿·¤·¤¤¥Ú¡¼¥¸¤ä¥Ñ¥Ã¥Á¤ÏÁ´¤Æ¤³¤Î´·½¬¤Ë½¾¤Ã¤Æ²¼¤µ¤¤¡£ -.SS ¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤È¥·¥§¥ë¤Î¥»¥Ã¥·¥ç¥ó -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Î»È¤¤Êý¤ò¼¨¤¹ -¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤ò´Þ¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤½¤ÎºÝ¤Ë¤Ï¡¢°Ê²¼¤ÎÅÀ¤Ëα°Õ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +はアメリカ英語の綴りの慣習に従っている。 +新しいページやパッチは全てこの慣習に従って下さい。 +.SS サンプルプログラムとシェルのセッション +マニュアルページには、システムコールやライブラリ関数の使い方を示す +サンプルプログラムを含めることができる。 +その際には、以下の点に留意すべきである。 .TP 3 * -¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ï C ¤Çµ­ºÜ¤¹¤ë¤³¤È¡£ +サンプルプログラムは C で記載すること。 .TP * -¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ï¡¢ -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æʸ¾Ï¤Ç´Êñ¤ËÀâÌÀ¤Ç¤­¤ë°Ê¾å¤Î¤³¤È¤ò¼¨¤¹¾ì¹ç¤Ë¤À¤± -ɬÍפ«¤ÄÍ­ÍѤǤ¢¤ë¡£¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò¸Æ¤Ó½Ð¤¹°Ê³°¤Ë²¿¤â¤·¤Ê¤¤¥µ¥ó¥×¥ë -¥×¥í¥°¥é¥à¤ÏÉáÄ̤ϤۤȤó¤ÉÌò¤ËΩ¤¿¤Ê¤¤¡£ +サンプルプログラムは、 +インタフェースについて文章で簡単に説明できる以上のことを示す場合にだけ +必要かつ有用である。インタフェースを呼び出す以外に何もしないサンプル +プログラムは普通はほとんど役に立たない。 .TP * -¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ï¤«¤Ê¤êû¤á¤Ë¤¹¤ë¤³¤È -(100¹Ô̤Ëþ¤¬Ë¾¤Þ¤·¤¯¡¢50¹Ô̤Ëþ¤¬ÍýÁÛŪ¤Ç¤¢¤ë)¡£ +サンプルプログラムはかなり短めにすること +(100行未満が望ましく、50行未満が理想的である)。 .TP * -¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä¥é¥¤¥Ö¥é¥ê´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿¸å¤Ç -¥¨¥é¡¼¥Á¥§¥Ã¥¯¤ò¹Ô¤¦¤³¤È¡£ +サンプルプログラムでは、システムコールやライブラリ関数を呼び出した後で +エラーチェックを行うこと。 .TP * -¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ï´°·ë¤·¤Æ¤¤¤Æ¡¢ +サンプルプログラムは完結していて、 \fIcc\ \-Wall\fP -¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿ºÝ¤Ë·Ù¹ð¤Ê¤·¤Ç¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤ë¤³¤È¡£ +でコンパイルした際に警告なしでコンパイルできること。 .TP * -²Äǽ¤«¤ÄŬÀڤʾì¹ç¤Ë¤Ï¡¢¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ç -ÆþÎϤˤè¤êÆ°ºî¤òÊѲ½¤µ¤»¤ë¤Ê¤É¤Î¼Â¸³¤ò¹Ô¤¦¤È¤è¤¤ -(ÍýÁÛŪ¤Ë¤Ï¡¢¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤ä¡¢¥×¥í¥°¥é¥à¤¬Æɤ߹þ¤àÆþÎϥǡ¼¥¿ -·Ðͳ¤Ç¡¢Æ°ºî¤òÊѲ½¤µ¤»¤ë¤Î¤¬¤è¤¤)¡£ +可能かつ適切な場合には、サンプルプログラムで +入力により動作を変化させるなどの実験を行うとよい +(理想的には、コマンドライン引き数や、プログラムが読み込む入力データ +経由で、動作を変化させるのがよい)。 .TP * -¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ï¡¢K&R (Kernighan and Ritchie) ¥¹¥¿¥¤¥ë¤Ç½ñ¤­¡¢ -»ú²¼¤²¤Ï¥¹¥Ú¡¼¥¹ 4ʸ»ú¤Ç¹Ô¤¦¡£ -(¥½¡¼¥¹¥³¡¼¥É¤Ç TAB ʸ»ú¤ò»È¤¦¤Î¤ÏÈò¤±¤ë¤³¤È¡£) +サンプルプログラムは、K&R (Kernighan and Ritchie) スタイルで書き、 +字下げはスペース 4文字で行う。 +(ソースコードで TAB 文字を使うのは避けること。) .PP -¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤¬¤É¤ó¤ÊÉ÷¤Ë¤Ê¤Ã¤Æ¤¤¤ì¤Ð¤è¤¤¤«¤ÎÎã¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +サンプルプログラムがどんな風になっていればよいかの例については、 .BR wait (2) -¤È +と .BR pipe (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 -¥×¥í¥°¥é¥à¤Î»È¤¤Êý¤ä¾¤Î¥·¥¹¥Æ¥à¤ÎÆÃħ¤ò¼¨¤¹¤¿¤á¤Ë¥·¥§¥ë¤Î¥»¥Ã¥·¥ç¥óÎã -¤ò´Þ¤á¤ë¾ì¹ç¡¢¥æ¡¼¥¶¤ÎÆþÎÏʸ¤ò¥Ü¡¼¥ë¥É¤Ë¤·¤Æ¡¢¥·¥¹¥Æ¥à¤¬À¸À®¤¹¤ë -½ÐÎϤȶèÊ̤Ǥ­¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¡£ -.SS ¹½Â¤ÂΤÎÄêµÁ¡¢¥·¥§¥ë¤Î¥»¥Ã¥·¥ç¥ó¥í¥°¤Ê¤É¤Î»ú²¼¤² -¹½Â¤ÂΤÎÄêµÁ¤ä¥·¥§¥ë¤Î¥»¥Ã¥·¥ç¥ó¥í¥°¤Ê¤É¤òËÜʸÃæ¤Ëµ­ºÜ¤¹¤ëºÝ¤Ï¡¢ -¥¹¥Ú¡¼¥¹ 4¸Äʬ¤Î»ú²¼¤²¤ò¹Ô¤¦ (¤Ä¤Þ¤ê¡¢¥Ö¥í¥Ã¥¯¤ò +プログラムの使い方や他のシステムの特徴を示すためにシェルのセッション例 +を含める場合、ユーザの入力文をボールドにして、システムが生成する +出力と区別できるようにすること。 +.SS 構造体の定義、シェルのセッションログなどの字下げ +構造体の定義やシェルのセッションログなどを本文中に記載する際は、 +スペース 4個分の字下げを行う (つまり、ブロックを .I ".in\ +4n" -¤È +と .I ".in" -¤Ç°Ï¤à)¡£ -.SH Îã +で囲む)。 +.SH 例 .I man-pages -¥Ñ¥Ã¥±¡¼¥¸¤Ë´Þ¤Þ¤ì¤ë¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÎÂκۤÎɸ½àŪ¤ÊÎã¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +パッケージに含まれるマニュアルページの体裁の標準的な例については、 .BR pipe (2) -¤È +と .BR fcntl (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を参照すること。 +.SH 関連項目 .BR man (1), .BR man2html (1), .BR groff (7), diff --git a/release/man7/man.7 b/release/man7/man.7 index 398d3268..4fab035d 100644 --- a/release/man7/man.7 +++ b/release/man7/man.7 @@ -40,12 +40,12 @@ .\" Updated 2007-06-13, Akihiro MOTOKI , LDP v2.53 .\" Updated 2007-06-13, Akihiro MOTOKI , LDP v2.54 .\" -.\"WORD: prevailing indent Í¥À襤¥ó¥Ç¥ó¥È +.\"WORD: prevailing indent 優先インデント .\" .TH MAN 7 2007-05-30 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -man \- man ¥Ú¡¼¥¸¤òÀ°·Á¤¹¤ë¥Þ¥¯¥í -.SH ½ñ¼° +.SH 名前 +man \- man ページを整形するマクロ +.SH 書式 .B groff \-Tascii \-man .I file \&... @@ -57,257 +57,257 @@ man \- man .B man .RI [ section ] .I title -.SH ÀâÌÀ -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Ï¡¢ +.SH 説明 +このマニュアルページでは、 .B "groff an.tmac" -¤Î¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸ +のマクロパッケージ .RB ( man -¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸¤È¤â¸Æ¤Ð¤ì¤ë¤³¤È¤â¿¤¤) ¤Ë¤Ä¤¤¤ÆÀâÌÀ¤¹¤ë¡£ -¤³¤Î¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢ -Linux ¤Î man ¥Ú¡¼¥¸¤ò½ñ¤¤¤¿¤ê°Ü¿¢¤·¤¿¤ê¤¹¤ë¤È¤­¤Ë¡¢ -³«È¯¼Ô¤¬ÍѤ¤¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸¤Ï¥Ð¡¼¥¸¥ç¥ó´Ö¤Ç¤Î¸ß´¹À­¤¬¹â¤¯¡¢ -man page ¤Î°Ü¿¢¤Ë¤¢¤¿¤Ã¤Æ¤ÏÂ礭¤ÊÌäÂê¤Ï¤Ê¤¤¤À¤í¤¦ -(⤷¡¢NET-2 BSD release ¤ÏÎã³°¤Ç¤¢¤ë¡£ -¤³¤Á¤é¤Ç¤Ï mdoc ¤È¸Æ¤Ð¤ì¤ëÁ´¤¯°Û¤Ê¤ë¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ +マクロパッケージとも呼ばれることも多い) について説明する。 +このマクロパッケージは、 +Linux の man ページを書いたり移植したりするときに、 +開発者が用いるものである。 +このマクロパッケージはバージョン間での互換性が高く、 +man page の移植にあたっては大きな問題はないだろう +(但し、NET-2 BSD release は例外である。 +こちらでは mdoc と呼ばれる全く異なるマクロパッケージが使用されている。 .BR mdoc (7) -¤ò»²¾È)¡£ +を参照)。 .PP -NET-2 BSD ¤Î man ¥Ú¡¼¥¸¤â¡¢ +NET-2 BSD の man ページも、 .B groff -¤Î¥ª¥×¥·¥ç¥ó¤È¤·¤Æ +のオプションとして .B \-man -¤ÎÂå¤ï¤ê¤Ë +の代わりに .B \-mdoc -¤ò»ØÄꤹ¤ë¤À¤±¤Ç¡¢ÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を指定するだけで、利用することができる。 .B \-mandoc -¥ª¥×¥·¥ç¥ó¤ò»È¤¨¤Ð¤É¤Î¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸¤¬ÍѤ¤¤é¤ì¤Æ¤¤¤ë¤« -¼«Æ°Åª¤Ë¸¡½Ð¤Ç¤­¤ë¤Î¤Ç¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤Î¤¬¤ªÁ¦¤á¤Ç¤¢¤ë¡£ +オプションを使えばどのマクロパッケージが用いられているか +自動的に検出できるので、このオプションを使うのがお薦めである。 .PP -Linux \fIman-pages\fP ¥×¥í¥¸¥§¥¯¥È¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò½ñ¤¯ºÝ¤Ë -½¾¤¦¤Ù¤­·è¤Þ¤ê»ö¤Ë¤Ä¤¤¤Æ¤Ï +Linux \fIman-pages\fP プロジェクトのマニュアルページを書く際に +従うべき決まり事については .BR man-pages (7) -¤ò»²¾È¡£ -.SS ¥¿¥¤¥È¥ë¹Ô -man ¥Ú¡¼¥¸¤Î (¥³¥á¥ó¥È¹Ô¤ò½ü¤¯) ºÇ½é¤Î¥³¥Þ¥ó¥É¤Ï¡¢ -°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ëɬÍפ¬¤¢¤ë¡£ -¥³¥á¥ó¥È¹Ô¤È¤Ï \fB.\\"\fP ¤Ç»Ï¤Þ¤ë¹Ô¤Î¤³¤È¤Ç¤¢¤ë¡£ +を参照。 +.SS タイトル行 +man ページの (コメント行を除く) 最初のコマンドは、 +以下のようにする必要がある。 +コメント行とは \fB.\\"\fP で始まる行のことである。 .RS .sp .B \&.TH .I "title section date source manual" .sp .RE -\fBTH\fP ¤ËÅϤ¹°ú¤­¿ô¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï +\fBTH\fP に渡す引き数の詳細については .BR man-pages (7) -¤ò»²¾È¡£ +を参照。 .PP -¤Ê¤ª BSD ¤Î mdoc ¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥Ú¡¼¥¸¤Ï +なお BSD の mdoc フォーマットのページは .B TH -¥³¥Þ¥ó¥É¤Ç¤Ï¤Ê¤¯ +コマンドではなく .B Dd -¥³¥Þ¥ó¥É¤«¤é»Ï¤Þ¤ë¡£ -.SS ¥»¥¯¥·¥ç¥ó -¥»¥¯¥·¥ç¥ó¤Ï +コマンドから始まる。 +.SS セクション +セクションは .B \&.SH -¤Ç»Ï¤Þ¤ê¡¢¸«½Ð¤·Ì¾¤¬¤½¤ì¤Ë³¤¯¡£ -.\" °Ê²¼¤Ïɬ¿Ü¤Ç¤Ï¤Ê¤¤¤è¤¦¤À (Debian bug 411303 »²¾È), -.\" ¥¹¥Ú¡¼¥¹¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë̾Á°¤ò +で始まり、見出し名がそれに続く。 +.\" 以下は必須ではないようだ (Debian bug 411303 参照), +.\" スペースが含まれている名前を .\" .BR \&.SH -.\" ¤ÈƱ¤¸¹Ô¤ËÃÖ¤¯¾ì¹ç¤Ï¡¢¸«½Ð¤·Ì¾¤Ï¥À¥Ö¥ë¥¯¥©¡¼¥È¤Ç°Ï¤à¡£ +.\" と同じ行に置く場合は、見出し名はダブルクォートで囲む。 -NAME (̾Á°) ¤È¤¤¤¦¸«½Ð¤·¤À¤±¤Ïɬ¤ºÃÖ¤«¤Ê¤¤¤È¤¤¤±¤Ê¤¤¡£ -¤³¤Î¸«½Ð¤·¤Ï°ìÈֺǽé¤Î¥»¥¯¥·¥ç¥ó¤Ë¤¹¤Ù¤­¤Ç¡¢¸«½Ð¤·¤Î -¼¡¤Î¹Ô¤Ë¤Ï¥×¥í¥°¥é¥à¤ÎÀâÌÀ¤ò°ì¹Ô¤Ç½ñ¤¯¡£ +NAME (名前) という見出しだけは必ず置かないといけない。 +この見出しは一番最初のセクションにすべきで、見出しの +次の行にはプログラムの説明を一行で書く。 .RS .sp \&.SH NAME .br .sp .RE -¤³¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë½¾¤¤¡¢¥³¥Þ¥ó¥É̾¤Ë³¤¯¥·¥ó¥°¥ë¥À¥Ã¥·¥å (-) -¤ÎÁ°¤Ë¤Ïɬ¤º¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤òÃÖ¤¯¤³¤È¡£ -¤³¤Îʸˡ¤Ï¡¢ +このフォーマットに従い、コマンド名に続くシングルダッシュ (-) +の前には必ずバックスラッシュを置くこと。 +この文法は、 .BR makewhatis (8) -¥×¥í¥°¥é¥à¤¬ +プログラムが .BR whatis (1) -¤ä +や .BR apropos (1) -¥³¥Þ¥ó¥ÉÍѤΠ(¥³¥Þ¥ó¥É¤Îû¤¤ÀâÌÀ¤Î) ¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÀ¸À®¤¹¤ëºÝ¤ËÍøÍѤµ¤ì¤ë¡£ +コマンド用の (コマンドの短い説明の) データベースを生成する際に利用される。 .PP -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ËÅо줹¤ë²ÄǽÀ­¤Î¤¢¤ë¤³¤ì°Ê³°¤Î¥»¥¯¥·¥ç¥ó¤Î¥ê¥¹¥È¤Ë -¤Ä¤¤¤Æ¤Ï +マニュアルページに登場する可能性のあるこれ以外のセクションのリストに +ついては .BR man-pages (7) -¤ò»²¾È¡£ -.SS ¥Õ¥©¥ó¥È -¥¿¥¤¥×¥Õ¥§¥¤¥¹¤òÁªÂò¤¹¤ë¥³¥Þ¥ó¥É¤Ï°Ê²¼¤Î¤è¤¦¤Ë»ØÄꤹ¤ë: +を参照。 +.SS フォント +タイプフェイスを選択するコマンドは以下のように指定する: .TP 4 .B \&.B -¥Ü¡¼¥ë¥É¡£ +ボールド。 .TP .B \&.BI -¥Ü¡¼¥ë¥É¤È¥¤¥¿¥ê¥Ã¥¯¤È¤ò¸ò¸ß¤Ë -(Æä˴ؿô»ØÄê¤ËÊØÍø)¡£ +ボールドとイタリックとを交互に +(特に関数指定に便利)。 .TP .B \&.BR -¥Ü¡¼¥ë¥É¤È¥í¡¼¥Þ¥ó¤È¤ò¸ò¸ß¤Ë -(Æä˾¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¤¹¤ë¤È¤­¤ËÊØÍø)¡£ +ボールドとローマンとを交互に +(特に他のマニュアルページを参照するときに便利)。 .TP .B \&.I -¥¤¥¿¥ê¥Ã¥¯¡£ +イタリック。 .TP .B \&.IB -¥¤¥¿¥ê¥Ã¥¯¤È¥Ü¡¼¥ë¥É¤È¤ò¸ò¸ß¤Ë¡£ +イタリックとボールドとを交互に。 .TP .B \&.IR -¥¤¥¿¥ê¥Ã¥¯¤È¥í¡¼¥Þ¥ó¤È¤ò¸ò¸ß¤Ë¡£ +イタリックとローマンとを交互に。 .TP .B \&.RB -¥í¡¼¥Þ¥ó¤È¥Ü¡¼¥ë¥É¤È¤ò¸ò¸ß¤Ë¡£ +ローマンとボールドとを交互に。 .TP .B \&.RI -¥í¡¼¥Þ¥ó¤È¥¤¥¿¥ê¥Ã¥¯¤È¤ò¸ò¸ß¤Ë¡£ +ローマンとイタリックとを交互に。 .TP .B \&.SB -¥¹¥â¡¼¥ë¤È¥Ü¡¼¥ë¥É¤ò¸ò¸ß¤Ë¡£ +スモールとボールドを交互に。 .TP .B \&.SM -¥¹¥â¡¼¥ë (Ƭ»ú¸ì¤Ê¤É¤ËÍѤ¤¤ë) +スモール (頭字語などに用いる) .LP -´·Îã¤È¤·¤Æ¤Ï¡¢³Æ¥³¥Þ¥ó¥É¤Ï 6 ¤Ä¤Þ¤Ç¤Î°ú¤­¿ô¤ò»ý¤Ä»ö¤¬²Äǽ¤À¤¬¡¢ -GNU ¤Î¼ÂÁõ¤Ç¤ÏÀ©¸Â¤Ï¤Ê¤¤¤è¤¦¤À (¤·¤«¤·°Ü¿¢À­¤òÊÝ»ý¤¹¤ë¤¿¤á¤Ë¤Ï -°ú¤­¿ô¤Ï 6 ¤Þ¤Ç¤Ë¸Â¤Ã¤Æ¤ª¤¯¤Î¤¬Îɤ¤¤À¤í¤¦)¡£ -°ú¤­¿ô¤Ï¥¹¥Ú¡¼¥¹¤Ç¶èÀÚ¤é¤ì¤ë¡£ -¥¹¥Ú¡¼¥¹¤ò´Þ¤ó¤À°ú¤­¿ô¤òÍ¿¤¨¤ë¤Ë¤Ï¡¢¥À¥Ö¥ë¥¯¥©¡¼¥È¤Ç°Ï¤¨¤Ð¤è¤¤¡£ -¤¹¤Ù¤Æ¤Î°ú¤­¿ô¤Ï¥¹¥Ú¡¼¥¹¤ò¼è¤ê½ü¤¤¤Æʤ٤é¤ì¤ë¤Î¤Ç¡¢ +慣例としては、各コマンドは 6 つまでの引き数を持つ事が可能だが、 +GNU の実装では制限はないようだ (しかし移植性を保持するためには +引き数は 6 までに限っておくのが良いだろう)。 +引き数はスペースで区切られる。 +スペースを含んだ引き数を与えるには、ダブルクォートで囲えばよい。 +すべての引き数はスペースを取り除いて並べられるので、 .B \&.BR -¥³¥Þ¥ó¥É¤ò»È¤¨¤Ð¡¢Ã±¸ì¤Ï¥Ü¡¼¥ë¥É¤Ç¡¢¶çÆÉÅÀ¤ò¥í¡¼¥Þ¥ó¤Çɽ¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ -°ú¤­¿ô¤¬Á´¤¯Í¿¤¨¤é¤ì¤Ê¤±¤ì¤Ð¡¢ -¤½¤Î¥³¥Þ¥ó¥É¤Ï¼¡¤Î¹Ô¤Î¥Æ¥­¥¹¥È¤ËŬÍѤµ¤ì¤ë¡£ -.SS ¤½¤Î¾¤Î¥Þ¥¯¥í¤äʸ»úÎó +コマンドを使えば、単語はボールドで、句読点をローマンで表すことができる。 +引き数が全く与えられなければ、 +そのコマンドは次の行のテキストに適用される。 +.SS その他のマクロや文字列 .PP -°Ê²¼¤Ë¡¢Â¾¤Î¥Þ¥¯¥í¤äÄêµÁºÑ¤ß¤Îʸ»úÎó¤ò¼¨¤¹¡£ -Æä˵­½Ò¤¬¤Ê¤¤¸Â¤ê¡¢¥Þ¥¯¥í¤ò»È¤¦¤È²þ¹Ô¤¬¹Ô¤ï¤ì¤ë -(¥Æ¥­¥¹¥È¤Î¸½ºß¤Î¹Ô¤ò½ªÎ»¤¹¤ë)¡£ -¿¤¯¤Î¥Þ¥¯¥í¤Ï -¡ÖÍ¥À襤¥ó¥Ç¥ó¥È (prevailing indent)¡×¤òÀßÄꤷ¤¿¤ê¡¢»ÈÍѤ¹¤ë¡£ -Í¥À襤¥ó¥Ç¥ó¥È¤ÎÃͤϡ¢¤É¤Î¥Þ¥¯¥í¤«¤é¤â¥Ñ¥é¥á¡¼¥¿ +以下に、他のマクロや定義済みの文字列を示す。 +特に記述がない限り、マクロを使うと改行が行われる +(テキストの現在の行を終了する)。 +多くのマクロは +「優先インデント (prevailing indent)」を設定したり、使用する。 +優先インデントの値は、どのマクロからもパラメータ .I i -¤Ë¤è¤Ã¤Æ»ØÄê¤Ç¤­¤ë (°Ê²¼¤Ë¼¨¤¹)¡£ -¥Þ¥¯¥í¤Ç¤Ï +によって指定できる (以下に示す)。 +マクロでは .I i -¤ò¾Êά¤¹¤ë¤³¤È¤â¤Ç¤­¡¢¤½¤Î¾ì¹ç¤Ï¸½ºß¤ÎÍ¥À襤¥ó¥Ç¥ó¥È¤ÎÃͤ¬ÍѤ¤¤é¤ì¤ë¡£ -¤³¤ì¤Ë¤è¤ê·ë²Ì¤È¤·¤Æ¡¢¥¤¥ó¥Ç¥ó¥È¤µ¤ì¤¿ÃÊÍϢ³¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -¥¤¥ó¥Ç¥ó¥È¤ÎÃͤòºÆ»ØÄꤷ¤Ê¤¯¤Æ¤â¥¤¥ó¥Ç¥ó¥ÈÎ̤òƱ¤¸¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -Ä̾ï¤Î (¥¤¥ó¥Ç¥ó¥È¤µ¤ì¤Æ¤¤¤Ê¤¤) ÃÊÍÅо줹¤ë¤È¡¢ -Í¥À襤¥ó¥Ç¥ó¥È¤ÎÃͤϥǥե©¥ë¥È¤ÎÃÍ (0.5 ¥¤¥ó¥Á) ¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢Í¿¤¨¤¿¥¤¥ó¥Ç¥ó¥È¤ÎÃÍ¤Ï ens ñ°Ì¤Ç¤¢¤ë¡£ -¥¤¥ó¥Ç¥ó¥È¤Îñ°Ì¤Ë¤Ï ens ¤ä ems ¤òÍѤ¤¤ë¤È¤è¤¤¡£¤³¤ì¤é¤Îñ°Ì¤Ï -¥Õ¥©¥ó¥È¥µ¥¤¥º¤¬Êѹ¹¤µ¤ì¤ë¤È¼«Æ°Åª¤ËÄ´À°¤µ¤ì¤ë¤«¤é¤Ç¤¢¤ë¡£ -¾¤Î½ÅÍפʥޥ¯¥íÄêµÁ¤Ï°Ê²¼¤ÎÄ̤ê: -.SS Ä̾ï¤ÎÃÊÍî +を省略することもでき、その場合は現在の優先インデントの値が用いられる。 +これにより結果として、インデントされた段落が連続している場合、 +インデントの値を再指定しなくてもインデント量を同じにすることができる。 +通常の (インデントされていない) 段落が登場すると、 +優先インデントの値はデフォルトの値 (0.5 インチ) にリセットされる。 +デフォルトでは、与えたインデントの値は ens 単位である。 +インデントの単位には ens や ems を用いるとよい。これらの単位は +フォントサイズが変更されると自動的に調整されるからである。 +他の重要なマクロ定義は以下の通り: +.SS 通常の段落 .TP 9m .B \&.LP .B \&.PP -¤ÈƱ¤¸ (¿·¤¿¤ÊÃÊÍî¤Î³«»Ï)¡£ +と同じ (新たな段落の開始)。 .TP .B \&.P .B \&.PP -¤ÈƱ¤¸ (¿·¤¿¤ÊÃÊÍî¤Î³«»Ï)¡£ +と同じ (新たな段落の開始)。 .TP .B \&.PP -¿·¤·¤¤ÃÊÍî¤ò³«»Ï¤·¡¢¥¤¥ó¥Ç¥ó¥È¤ò¥ê¥»¥Ã¥È¤¹¤ë¡£ -.SS ÁêÂÐ¥Þ¡¼¥¸¥ó¥¤¥ó¥Ç¥ó¥È +新しい段落を開始し、インデントをリセットする。 +.SS 相対マージンインデント .TP 9m .BI \&.RS " i" -ÁêÂÐ¥Þ¡¼¥¸¥ó¥¤¥ó¥Ç¥ó¥È (relative margin indent) ¤ò³«»Ï¤¹¤ë¡£ -º¸¥Þ¡¼¥¸¥ó¤ò +相対マージンインデント (relative margin indent) を開始する。 +左マージンを .I i -¤À¤±±¦¤Ë°ÜÆ°¤¹¤ë +だけ右に移動する .RI ( i -¤¬¾Êά¤µ¤ì¤ë¤ÈÍ¥À襤¥ó¥Ç¥ó¥È¤ÎÃͤ¬ÍѤ¤¤é¤ì¤ë)¡£ -¿·¤¿¤ÊÍ¥À襤¥ó¥Ç¥ó¥È¤Ï 0.5 ¥¤¥ó¥Á¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ -·ë²Ì¤È¤·¤Æ¡¢°Ê²¼¤ÎÃÊÍî¤ÏÂбþ¤¹¤ë +が省略されると優先インデントの値が用いられる)。 +新たな優先インデントは 0.5 インチにセットされる。 +結果として、以下の段落は対応する .B \&.RE -¤¬¸½¤ì¤ë¤Þ¤Ç¥¤¥ó¥Ç¥ó¥È¤µ¤ì¤ë¡£ +が現れるまでインデントされる。 .TP .B \&.RE -ÁêÂÐ¥Þ¡¼¥¸¥ó¥¤¥ó¥Ç¥ó¥È¤ò½ªÎ»¤·¡¢ -Í¥À襤¥ó¥Ç¥ó¥È¤ÎÃͤò¸µ¤ËÌ᤹¡£ -.SS ÃÊÍî¤ò¥¤¥ó¥Ç¥ó¥È¤¹¤ë¥Þ¥¯¥í +相対マージンインデントを終了し、 +優先インデントの値を元に戻す。 +.SS 段落をインデントするマクロ .TP 9m .BI \&.HP " i" -¤Ö¤é¤µ¤¬¤ê¥¤¥ó¥Ç¥ó¥È¤ÎÃÊÍî¤ò³«»Ï¤¹¤ë -(ÃÊÍî¤ÎÀèƬ¹Ô¤ÏÄ̾ï¤ÎÃÊÍî¤Îº¸¥Þ¡¼¥¸¥ó¤È¤Ê¤ê¡¢ -ÃÊÍî¤Î»Ä¤ê¤Î¹Ô¤Ï¥¤¥ó¥Ç¥ó¥È¤µ¤ì¤ë)¡£ +ぶらさがりインデントの段落を開始する +(段落の先頭行は通常の段落の左マージンとなり、 +段落の残りの行はインデントされる)。 .TP .BI \&.IP " x i" -¥¤¥ó¥Ç¥ó¥È¤µ¤ì¤¿ÃÊÍî¡£¥ª¥×¥·¥ç¥ó¤È¤·¤Æ¤Ö¤é¤µ¤¬¤ê¥¿¥°¤ò¤È¤ë¡£ -¥¿¥° +インデントされた段落。オプションとしてぶらさがりタグをとる。 +タグ .I x -¤¬¾Êά¤µ¤ì¤ë¤È¡¢°Ê²¼¤ÎÃÊÍ¤Ù¤Æ¤¬ +が省略されると、以下の段落すべてが .I i -¤Ç¥¤¥ó¥Ç¥ó¥È¤µ¤ì¤ë¡£¥¿¥° +でインデントされる。タグ .I x -¤¬Í¿¤¨¤é¤ì¤ë¤È¡¢¥¿¥°¤Ï¥¤¥ó¥Ç¥ó¥È¤µ¤ì¤¿ÃÊÍî¤ÎÁ°¤Ë¤Ö¤é²¼¤²¤é¤ì¤ë +が与えられると、タグはインデントされた段落の前にぶら下げられる .RB ( \&.TP -¤È¤Á¤ç¤¦¤ÉƱ¤¸¡£¤¿¤À¤·¥¿¥°¤ò¼¡¤Î¹Ô¤Ë½ñ¤¯Âå¤ï¤ê¤Ë¥³¥Þ¥ó¥É¤Ë»ØÄꤹ¤ë)¡£ -¥¿¥°¤¬Ä¹¤¹¤®¤ë¾ì¹ç¤Ë¤Ï¡¢¥¿¥°¤Ë³¤¯¥Æ¥­¥¹¥È¤Ï¼¡¤Î¹Ô¤Ë°ÜÆ°¤¹¤ë -(¥Æ¥­¥¹¥È¤¬¼º¤ï¤ì¤¿¤êº®¤¶¤Ã¤¿¤ê¤¹¤ë¤³¤È¤Ï¤Ê¤¤)¡£ -²Õ¾ò½ñ¤­¤ò¤¹¤ë¤Ë¤Ï¡¢ \e(bu (ÅÀ) ¤¢¤ë¤¤¤Ï \e(em (¥À¥Ã¥·¥å) -¤ò¥¿¥°¤Ë¤·¤Æ¤³¤Î¥Þ¥¯¥í¤òÍѤ¤¤ë¤È¤è¤¤¡£ÈÖ¹æÉÕ¤­¤Ç²Õ¾ò½ñ¤­¤ò¤¹¤ë¾ì¹ç¤Ï¡¢ -¿ô»ú¤Þ¤¿¤Ïʸ»ú¤Ë¥Ô¥ê¥ª¥É¤òÉÕ¤±¤¿¤â¤Î¤ò¥¿¥°¤Ë¤¹¤ì¤Ð¤è¤¤¡£ -¤³¤¦¤¹¤ì¤Ð¾¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ø¤ÎÊÑ´¹¤¬´Êñ¤Ë¤Ê¤ë¡£ +とちょうど同じ。ただしタグを次の行に書く代わりにコマンドに指定する)。 +タグが長すぎる場合には、タグに続くテキストは次の行に移動する +(テキストが失われたり混ざったりすることはない)。 +箇条書きをするには、 \e(bu (点) あるいは \e(em (ダッシュ) +をタグにしてこのマクロを用いるとよい。番号付きで箇条書きをする場合は、 +数字または文字にピリオドを付けたものをタグにすればよい。 +こうすれば他のフォーマットへの変換が簡単になる。 .TP .BI \&.TP " i" -¤Ö¤é¤µ¤¬¤ê¥¿¥°¤ÎÃÊÍî¤ò³«»Ï¤¹¤ë¡£¥¿¥°¤Ï¼¡¤Î¹Ô¤Ë»ØÄꤹ¤ë¡£ -·ë²Ì¤Ï +ぶらさがりタグの段落を開始する。タグは次の行に指定する。 +結果は .B \&.IP -¥³¥Þ¥ó¥É¤È»÷¤¿¤â¤Î¤Ë¤Ê¤ë¡£ -.SS ¥Ï¥¤¥Ñ¡¼¥Æ¥­¥¹¥È¥ê¥ó¥¯ÍѤΥޥ¯¥í +コマンドと似たものになる。 +.SS ハイパーテキストリンク用のマクロ .RB ( groff -¤À¤±¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ëµ¡Ç½) -¥Ï¥¤¥Ñ¡¼¥Æ¥­¥¹¥È¥ê¥ó¥¯ÍѤΥޥ¯¥í¤ò»ÈÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢ +だけでサポートされている機能) +ハイパーテキストリンク用のマクロを使用するためには、 .B www.tmac -¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸¤ò¥í¡¼¥É¤¹¤ëɬÍפ¬¤¢¤ë¡£ -¥í¡¼¥É¤ò¹Ô¤¦¤Ë¤Ï +マクロパッケージをロードする必要がある。 +ロードを行うには .B .mso www.tmac -¥ê¥¯¥¨¥¹¥È¤ò»ÈÍѤ¹¤ë¡£ +リクエストを使用する。 .TP 9m .BI \&.URL " link url trailer" -.\" motoki: ¸¶Ê¸¤Ç¤Ï .URL url link trailer ¤È¤Ê¤Ã¤Æ¤¤¤ë¤¬¡¢¸íµ­¡£ +.\" motoki: 原文では .URL url link trailer となっているが、誤記。 URI (URL) .I url -¤Ø¤Î¥Ï¥¤¥Ñ¡¼¥Æ¥­¥¹¥È¥ê¥ó¥¯¤òÁÞÆþ¤¹¤ë¡£ +へのハイパーテキストリンクを挿入する。 .I link -¤Ï¥ê¥ó¥¯Ì¾¤Î¥Æ¥­¥¹¥È¤Ç¤¢¤ê¡¢ +はリンク名のテキストであり、 .I trailer -¤ÎÆâÍƤϥê¥ó¥¯¤Îľ¸å¤Ëɽ¼¨¤µ¤ì¤ë¡£ -HTML ¤òÀ¸À®¤¹¤ë»þ¤Ë¡¢¤³¤Î¥Þ¥¯¥í¤Ï +の内容はリンクの直後に表示される。 +HTML を生成する時に、このマクロは \fB\fP\fIlink\fP\fB\fP\fItrailer\fP -¤È¤¤¤¦ HTML ¥³¥Þ¥ó¥É¤ËÊÑ´¹¤µ¤ì¤ë¡£ -.\" °Ê²¼¤Ï¥ê¥¹¥Èɽ¼¨¤ÎÃæ¤ÇÃÊÍî¤òºî¤ë¤¿¤á¤Î¤½¤Î¾ì¤·¤Î¤®¤ÎÊýË¡¤Ç¤¢¤ë¡£ +という HTML コマンドに変換される。 +.\" 以下はリスト表示の中で段落を作るためのその場しのぎの方法である。 .TP .B " " -¤³¤Î¥Þ¥¯¥í¤ä¾¤Î´ØÏ¢¥Þ¥¯¥í¤Ï¿·¤·¤¯¡¢ -¿¤¯¤Î¥Ä¡¼¥ë¤Ï¤³¤ì¤é¤ËÂФ·¤Æ¤Ï²¿¤â¤·¤Ê¤¤¤Ç¤¢¤í¤¦¡£ -(troff ¤ò´Þ¤á¤¿) ¿¤¯¤Î¥Ä¡¼¥ë¤Ï̤ÄêµÁ¤Î¥Þ¥¯¥í¤òñ¤Ë̵»ë¤¹¤ë¤À¤± -(¤¢¤ë¤¤¤ÏºÇ°­¤Ç¤â¥Þ¥¯¥í¤ò¥Æ¥­¥¹¥È¤È¤·¤ÆÁÞÆþ¤¹¤ë¤À¤±) -¤Ê¤Î¤Ç¡¢¤³¤ì¤é¤ò½ñ¤¤¤Æ¤â´í¸±¤Ï¤Ê¤¤¡£ -.\" °Ê²¼¤Ï¥ê¥¹¥Èɽ¼¨¤ÎÃæ¤ÇÃÊÍî¤òºî¤ë¤¿¤á¤Î¤½¤Î¾ì¤·¤Î¤®¤ÎÊýË¡¤Ç¤¢¤ë¡£ +このマクロや他の関連マクロは新しく、 +多くのツールはこれらに対しては何もしないであろう。 +(troff を含めた) 多くのツールは未定義のマクロを単に無視するだけ +(あるいは最悪でもマクロをテキストとして挿入するだけ) +なので、これらを書いても危険はない。 +.\" 以下はリスト表示の中で段落を作るためのその場しのぎの方法である。 .TP .B " " -¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸Æâ¤Ç¼«Ê¬¤Ç +マニュアルページ内で自分で .B URL -¥Þ¥¯¥í¤òÄêµÁ¤·¤Æ¡¢ +マクロを定義して、 .B groff -°Ê³°¤Î roff ¥Ó¥å¡¼¥¢¤Ç¤âɽ¼¨¤µ¤ì¤ë¤è¤¦¤Ë¤¹¤ë¤Î¤â¤¤¤¤¤À¤í¤¦¡£ -¤³¤¦¤¹¤ë¤³¤È¤Ç¡¢URL ¤â¡¢¥ê¥ó¥¯ÍѤΥƥ­¥¹¥È¤â¡¢(¤â¤·¤¢¤ì¤Ð) ¤½¤ì¤Ë³¤¯ -¥Æ¥­¥¹¥È¤â¡¢É½¼¨¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -.\" °Ê²¼¤Ï¥ê¥¹¥Èɽ¼¨¤ÎÃæ¤ÇÃÊÍî¤òºî¤ë¤¿¤á¤Î¤½¤Î¾ì¤·¤Î¤®¤ÎÊýË¡¤Ç¤¢¤ë¡£ +以外の roff ビューアでも表示されるようにするのもいいだろう。 +こうすることで、URL も、リンク用のテキストも、(もしあれば) それに続く +テキストも、表示できるようになる。 +.\" 以下はリスト表示の中で段落を作るためのその場しのぎの方法である。 .TP .B " " -°Ê²¼¤ËÎã¤òµó¤²¤ë: +以下に例を挙げる: .RS 1.5i \&.de URL .br @@ -328,69 +328,69 @@ This software comes from the .br \&.URL "http://www.fsf.org/" "Free Software Foundation" . .RE -.\" °Ê²¼¤Ï¥ê¥¹¥Èɽ¼¨¤ÎÃæ¤ÇÃÊÍî¤òºî¤ë¤¿¤á¤Î¤½¤Î¾ì¤·¤Î¤®¤ÎÊýË¡¤Ç¤¢¤ë¡£ +.\" 以下はリスト表示の中で段落を作るためのその場しのぎの方法である。 .TP .B " " -¾åµ­¤ÎÎã¤Ë¤ª¤¤¤Æ¡¢ +上記の例において、 .B groff -¤ò»È¤Ã¤Æɽ¼¨¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ +を使って表示しようとした場合には、 .B www.tmac -¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸¤Î URL ¥Þ¥¯¥í¤ÎÄêµÁ¤ÎÊý¤¬ -¥í¡¼¥«¥ë¤Ç¹Ô¤ï¤ì¤¿ÄêµÁ¤è¤ê¤âÍ¥À褵¤ì¤ë¡£ +マクロパッケージの URL マクロの定義の方が +ローカルで行われた定義よりも優先される。 .PP -.\" motoki: groff_mwww (7) ¤Î¸íµ­¤È»×¤ï¤ì¤ë¡£ -¾¤Ë¤â¤¤¤¯¤Ä¤«¤Î¥ê¥ó¥¯ÍѤΥޥ¯¥í¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¡£ -¾Ü¤·¤¯¤Ï +.\" motoki: groff_mwww (7) の誤記と思われる。 +他にもいくつかのリンク用のマクロが用意されている。 +詳しくは .BR groff_mwww (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .BR -.SH ¤½¤Î¾¤Î¥Þ¥¯¥í +.SH その他のマクロ .TP 9m .B \&.DT -¥¿¥Ö¤ò¥Ç¥Õ¥©¥ë¥È¤Î¥¿¥ÖÃÍ (0.5 ¥¤¥ó¥Á¤´¤È) ¤Ë¥ê¥»¥Ã¥È¤¹¤ë¡£ -²þ¹Ô¤Ï¤·¤Ê¤¤¡£ +タブをデフォルトのタブ値 (0.5 インチごと) にリセットする。 +改行はしない。 .TP .BI \&.PD " d" -¥Ñ¥é¥°¥é¥Õ´Ö¤Î´Ö³Ö¤ò°ú¤­¿ô¤Ë¥»¥Ã¥È¤¹¤ë -(¾Êά¤µ¤ì¤ë¤È d=0.4v ¤È¤Ê¤ë)¡£ +パラグラフ間の間隔を引き数にセットする +(省略されると d=0.4v となる)。 .TP .BI \&.SS " t" -¥µ¥Ö¥Ø¥Ã¥À +サブヘッダ .I t .RB ( \&.SH -¤Î¤è¤¦¤Ê¤â¤Î¤À¤¬¡¢¥µ¥Ö¥»¥¯¥·¥ç¥ó¤Î¤¿¤á¤ËÍѤ¤¤ë)¡£ -.SS ÄêµÁºÑ¤ß¤Îʸ»úÎó +のようなものだが、サブセクションのために用いる)。 +.SS 定義済みの文字列 .B man -¥Ñ¥Ã¥±¡¼¥¸¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤ÊÄêµÁºÑ¤ß¤Îʸ»úÎ󤬤¢¤ë: +パッケージには、以下のような定義済みの文字列がある: .IP \e*R -ÅÐÏ¿¥·¥ó¥Ü¥ë: \*R +登録シンボル: \*R .IP \e*S -¥Ç¥Õ¥©¥ë¥È¥Õ¥©¥ó¥È¥µ¥¤¥º¤òÊѹ¹¤¹¤ë +デフォルトフォントサイズを変更する .IP \e*(Tm -¾¦É¸¥·¥ó¥Ü¥ë: \*(Tm +商標シンボル: \*(Tm .IP \e*(lq -º¸¤Ë·¹¤¤¤¿¥À¥Ö¥ë¥¯¥©¡¼¥È: \*(lq +左に傾いたダブルクォート: \*(lq .IP \e*(rq -±¦¤Ë·¹¤¤¤¿¥À¥Ö¥ë¥¯¥©¡¼¥È: \*(rq -.SS °ÂÁ´¤Ê¥µ¥Ö¥»¥Ã¥È -µ»½ÑŪ¤Ë¤Ï +右に傾いたダブルクォート: \*(rq +.SS 安全なサブセット +技術的には .B man -¤Ï troff ¤Î¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸¤À¤¬¡¢¼ÂºÝ¤Ë¤Ï¿¿ô¤ÎÊ̤Υġ¼¥ë¤¬ -man ¥Ú¡¼¥¸¤Î¥Õ¥¡¥¤¥ë¤ò½èÍý¤·¤Æ¤ª¤ê¡¢¤½¤ì¤é¤Ï troff ¤ÎÁ´¤Æ¤Îµ¡Ç½¤ò -¼ÂÁõ¤·¤Æ¤¤¤Ê¤¤¤³¤È¤â¤¢¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢Â¾¤Î¥Ä¡¼¥ë¤Ç¤âÀµ¤·¤¯½èÍý¤Ç¤­¤ë¤è¤¦¤Ë¡¢ -troff ¤Î¤¢¤Þ¤ê°ìÈÌŪ¤Ç¤Ê¤¤µ¡Ç½¤Ï¡¢²Äǽ¤Ê¤é¤ÐÍѤ¤¤Ê¤¤¤Î¤¬Ë¾¤Þ¤·¤¤¡£ -ÍÍ¡¹¤Ê troff ¥×¥ê¥×¥í¥»¥Ã¥µ -¤âÍѤ¤¤Ê¤¤¤Û¤¦¤¬Îɤ¤¤À¤í¤¦ (¤ä¤à¤òÆÀ¤Ê¤¤¾ì¹ç¤Ï +は troff のマクロパッケージだが、実際には多数の別のツールが +man ページのファイルを処理しており、それらは troff の全ての機能を +実装していないこともある。したがって、他のツールでも正しく処理できるように、 +troff のあまり一般的でない機能は、可能ならば用いないのが望ましい。 +様々な troff プリプロセッサ +も用いないほうが良いだろう (やむを得ない場合は .BR tbl (1) -¤ÏÍѤ¤¤Æ¤âÎɤ¤¡£¤·¤«¤· 2 Îó¤Îɽ¤Ê¤é¡¢Âå¤ï¤ê¤Ë +は用いても良い。しかし 2 列の表なら、代わりに .B IP -¤ä +や .B TP -¥³¥Þ¥ó¥É¤òÍѤ¤¤Æ¤ß¤è¤¦)¡£ -·×»»µ¡Ç½¤âÍѤ¤¤Ê¤¤Êý¤¬Îɤ¤¤À¤í¤¦¡£Â¾¤Î¥Ä¡¼¥ë¤Î¤Û¤È¤ó¤É¤Ï¤³¤ì¤é¤ò½èÍý¤Ç¤­¤Ê¤¤¡£ -¾¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ËÊÑ´¹¤¬Íưפʡ¢Ã±½ã¤Ê¥³¥Þ¥ó¥É¤ò»È¤¦¤è¤¦¤Ë¤·¤è¤¦¡£ -°Ê²¼¤Î troff ¥³¥Þ¥ó¥É¤Ï¡¢»È¤Ã¤Æ¤âÌäÂê¤Ê¤¤¤È¹Í¤¨¤Æ¤è¤¤¤À¤í¤¦ -(¿¤¯¤Î¾ì¹ç¡¢ÊÑ´¹¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤Æ̵»ë¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¤¬)¡£ +コマンドを用いてみよう)。 +計算機能も用いない方が良いだろう。他のツールのほとんどはこれらを処理できない。 +他のフォーマットに変換が容易な、単純なコマンドを使うようにしよう。 +以下の troff コマンドは、使っても問題ないと考えてよいだろう +(多くの場合、変換コマンドによって無視されるかもしれないが)。 .BR \e" , .BR . , .BR ad , @@ -417,11 +417,11 @@ troff .BR ti , .B tr .PP -troff ¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤Î¿¤¯¤âÍøÍѤǤ­¤ë -(¤³¤ì¤é¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤Ï \e ¤Ç»Ï¤Þ¤ë)¡£ -¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥åʸ»ú¤òÄ̾ï¤Î¥Æ¥­¥¹¥È¤È¤·¤Æ»È¤¤¤¿¤¤¾ì¹ç¤Ï \ee ¤È¤¹¤ë¡£ -ÍøÍѤǤ­¤ë¾¤Î¥·¡¼¥±¥ó¥¹¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤¬¤¢¤ë (x ¤ä xx -¤ÏǤ°Õ¤Îʸ»ú, N ¤ÏǤ°Õ¤Î¿ô»ú): +troff のエスケープシーケンスの多くも利用できる +(これらのエスケープシーケンスは \e で始まる)。 +バックスラッシュ文字を通常のテキストとして使いたい場合は \ee とする。 +利用できる他のシーケンスには以下のようなものがある (x や xx +は任意の文字, N は任意の数字): .BR \e' , .BR \e` , .BR \e- , @@ -436,69 +436,69 @@ troff .BR \en(xx , .BR \efx , .BR \ef(xx . -¥°¥é¥Õ¥£¥Ã¥¯¤ÎÉÁ²è¤Ë¤Ï¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤ÏÍѤ¤¤Ê¤¤¤Û¤¦¤¬Îɤ¤¡£ +グラフィックの描画にはエスケープシーケンスは用いないほうが良い。 .PP .B bp -(²þÊÇ) ¤Ë¤Ï¥ª¥×¥·¥ç¥ó¥Ñ¥é¥á¡¼¥¿¤òÍѤ¤¤Ê¤¤¤³¤È¡£ +(改頁) にはオプションパラメータを用いないこと。 .B sp -(¿âľ¥¹¥Ú¡¼¥¹) ¤Ë¤ÏÀµ¤ÎÃͤΤߤòÍѤ¤¤ë¤³¤È¡£ -man ¤ä mdoc ¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸¤Ë¤¢¤ë¥Þ¥¯¥í¤È¡¢ -̾Á°¤¬Æ±¤¸¤Çµ¡Ç½¤Î°Û¤Ê¤ë¥Þ¥¯¥í¤òÄêµÁ +(垂直スペース) には正の値のみを用いること。 +man や mdoc マクロパッケージにあるマクロと、 +名前が同じで機能の異なるマクロを定義 .RB ( de ) -¤·¤Ê¤¤¤³¤È¡£¤½¤Î¤è¤¦¤ÊºÆÄêµÁ¤Ï̵»ë¤µ¤ì¤ë²ÄǽÀ­¤¬¹â¤¤¡£ -ÀµÊý¸þ¤Ø¤Î¥¤¥ó¥Ç¥ó¥È +しないこと。そのような再定義は無視される可能性が高い。 +正方向へのインデント .RB ( in ) -¤Ë¤Ï¡¢Éé¤Î¥¤¥ó¥Ç¥ó¥È¤òÂбþ¤µ¤»¤ë¤³¤È (¤³¤Î¥Þ¥¯¥í¤ÎÂå¤ï¤ê¤Ë +には、負のインデントを対応させること (このマクロの代わりに .B RS -¤È +と .B RE -¥Þ¥¯¥í¤ò»È¤Ã¤¿Êý¤¬¤è¤¤¤Î¤À¤¬)¡£ -¾ò·ï¥Æ¥¹¥È +マクロを使った方がよいのだが)。 +条件テスト .RB ( if , ie ) -¤Ï¾õÂ֤Ȥ·¤Æ \(aqt\(aq ¤Þ¤¿¤Ï \(aqn\(aq ¤À¤±¤ò»ý¤Ä¤è¤¦¤Ë¤¹¤ë¤³¤È¡£ -ÊÑ´¹ +は状態として \(aqt\(aq または \(aqn\(aq だけを持つようにすること。 +変換 .RB ( tr ) -¤Ë¤Ï̵»ë¤Ç¤­¤ë¤â¤Î¤À¤±¤ò»È¤¦¤³¤È¡£ -¥Õ¥©¥ó¥È¤ÎÊѹ¹ +には無視できるものだけを使うこと。 +フォントの変更 .RB ( ft -¤È \fB\ef\fP ¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹) ¤Ë¤Ï -1, 2, 3, 4, R, I, B, P, CW ¤Î¤ß¤òÍѤ¤¤ë¤³¤È -(ft ¥³¥Þ¥ó¥É¤Î¾ì¹ç¤Ï¥Ñ¥é¥á¡¼¥¿¤ò»ØÄꤷ¤Ê¤¯¤Æ¤â¤è¤¤)¡£ +と \fB\ef\fP エスケープシーケンス) には +1, 2, 3, 4, R, I, B, P, CW のみを用いること +(ft コマンドの場合はパラメータを指定しなくてもよい)。 .PP -¤³¤ÎÀ©¸Â¤ò±Û¤¨¤Æµ¡Ç½¤òÍѤ¤¤ë¾ì¹ç¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¥Ä¡¼¥ë¤ò»È¤Ã¤Æ¡¢ -¤½¤Î·ë²Ì¤òÃí°Õ¤·¤Æ¥Á¥§¥Ã¥¯¤¹¤ë¤³¤È¡£Äɲä·¤¿µ¡Ç½¤¬°ÂÁ´¤À¤È -³Î¿®¤·¤¿¤é¡¢¤³¤Îʸ½ñ¤Î´ÉÍý¼Ô¤Ë¤½¤Î°ÂÁ´¤Ê¥³¥Þ¥ó¥É¤Þ¤¿¤Ï¥·¡¼¥±¥ó¥¹¤ò -¶µ¤¨¤Æ¤Û¤·¤¤¡£¥ê¥¹¥È¤ËÄɲ乤롣 -.SH ¥Õ¥¡¥¤¥ë +この制限を越えて機能を用いる場合は、いくつかのツールを使って、 +その結果を注意してチェックすること。追加した機能が安全だと +確信したら、この文書の管理者にその安全なコマンドまたはシーケンスを +教えてほしい。リストに追加する。 +.SH ファイル .IR /usr/share/groff/ [*/] tmac/an.tmac .br .I /usr/man/whatis -.SH Ãí°Õ +.SH 注意 .PP -¥Æ¥­¥¹¥È¤Ë¤Ï¤¼¤Ò¤È¤â´°Á´¤Ê URL (¤Þ¤¿¤Ï URI) ¤ò½ñ¤¯¤è¤¦¤Ë¤¹¤ë¤³¤È¡£ +テキストにはぜひとも完全な URL (または URI) を書くようにすること。 .BR man2html (1) -¤Î¤è¤¦¤Ê¥Ä¡¼¥ë¤Ï¡¢¤³¤ì¤é¤ò¼«Æ°Åª¤Ë¥Ï¥¤¥Ñ¡¼¥Æ¥­¥¹¥È¥ê¥ó¥¯¤ËÊÑ´¹¤¹¤ë¡£ -¿·¤¿¤Ë¼è¤êÆþ¤ì¤é¤ì¤¿ +のようなツールは、これらを自動的にハイパーテキストリンクに変換する。 +新たに取り入れられた .B URL -¥Þ¥¯¥í¤ò´ØÏ¢¾ðÊó¤Ø¤Î¥ê¥ó¥¯¤ËÍѤ¤¤Æ¤âÎɤ¤¡£ URL ¤ò½ñ¤¯¾ì¹ç¤Ï¡¢ -Î㤨¤Ð ¤Î¤è¤¦¤Ë´°Á´¤Ê·Á¼°¤Ç½ñ¤­¡¢ -¥Ä¡¼¥ë¤Ë¤è¤ë URL ¼«Æ°¸¡ÃΤ¬¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¡£ +マクロを関連情報へのリンクに用いても良い。 URL を書く場合は、 +例えば のように完全な形式で書き、 +ツールによる URL 自動検知ができるようにすること。 .PP -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ò½èÍý¤¹¤ë¥Ä¡¼¥ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤·¤Æ -ºÇ½é¤Î¶õÇò°Ê³°¤Îʸ»ú¤òÄ´¤Ù¤ë¡£¹Ô¤ÎÀèƬ¤Ë¥Ô¥ê¥ª¥É (.) -¤Þ¤¿¤Ï¥·¥ó¥°¥ë¥¯¥©¡¼¥È (') ¤¬¤¢¤ë¤È¡¢¤³¤ì¤Ï troff ¥Ù¡¼¥¹¤Î -¥Õ¥¡¥¤¥ë (man ¤ä mdoc) ¤Ç¤¢¤ë¤È¤ß¤Ê¤¹¡£º¸³Ñ³ç¸Ì (<) ¤Ï -SGML/XML ¥Ù¡¼¥¹¤Î¥Õ¥¡¥¤¥ë (HTML ¤ä Docbook) ¤Ç¤¢¤ë¤È¤ß¤Ê¤¹¡£ -¤½¤ì°Ê³°¤Ïñ½ã¤Ê ASCII ¥Æ¥­¥¹¥È ("catman" ¤Î·ë²Ì¤Ê¤É) ¤È¤ß¤Ê¤¹¡£ +これらのファイルを処理するツールは、ファイルをオープンして +最初の空白以外の文字を調べる。行の先頭にピリオド (.) +またはシングルクォート (') があると、これは troff ベースの +ファイル (man や mdoc) であるとみなす。左角括弧 (<) は +SGML/XML ベースのファイル (HTML や Docbook) であるとみなす。 +それ以外は単純な ASCII テキスト ("catman" の結果など) とみなす。 .PP -¿¤¯¤Î man ¥Ú¡¼¥¸¤Ï¡¢ºÇ½é¤Î¹Ô¤¬ \fB\'\e"\fP ¤È¥¹¥Ú¡¼¥¹¤Ç»Ï¤Þ¤Ã¤Æ¤ª¤ê¡¢ -¤½¤³¤Ë¤Ï¤½¤Î¥Ú¡¼¥¸¤¬½èÍý¤µ¤ì¤ë¤Ù¤­¥×¥ê¥×¥í¥»¥¹¤òɽ¤¹Ê¸»ú¤¬½ñ¤¤¤Æ¤¢¤ë¡£ -troff °Ê³°¤ÎÊÑ´¹¥×¥í¥°¥é¥à¤Ø¤Î°Ü¿¢À­¤Î¤¿¤á¡¢ +多くの man ページは、最初の行が \fB\'\e"\fP とスペースで始まっており、 +そこにはそのページが処理されるべきプリプロセスを表す文字が書いてある。 +troff 以外の変換プログラムへの移植性のため、 .BR tbl (1) -¤ä¡¢ Linux ¤¬¼«Æ°Åª¤Ë¸¡ÃΤǤ­¤ë¤â¤Î°Ê³°¤Ï»È¤ï¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤³¤È¤ò´«¤á¤ë¡£ -¤·¤«¤·¡¢¤³¤Î¾ðÊó¤òµ­½Ò¤·¤Æ¡¢½ñ¤¤¤¿¥Ú¡¼¥¸¤¬Â¾¤Î (¤è¤êÄ㵡ǽ¤Ê) ¥·¥¹¥Æ¥à¤Ç¤â -°·¤¨¤ë¤è¤¦¤Ë¤·¤¿¤¤¾ì¹ç¤â¤¢¤ë¤«¤âÃΤì¤Ê¤¤¡£ -°Ê²¼¤Ë¤³¤ì¤é¤Îʸ»ú¤Ë¤è¤Ã¤Æµ¯Æ°¤µ¤ì¤ë¥×¥ê¥×¥í¥»¥Ã¥µ¤ÎÄêµÁ¤ò¼¨¤¹: +や、 Linux が自動的に検知できるもの以外は使わないようにすることを勧める。 +しかし、この情報を記述して、書いたページが他の (より低機能な) システムでも +扱えるようにしたい場合もあるかも知れない。 +以下にこれらの文字によって起動されるプリプロセッサの定義を示す: .TP 3 .B e eqn(1) @@ -517,35 +517,35 @@ tbl(1) .TP .B v vgrind(1) -.SH ¥Ð¥° +.SH バグ .PP -mdoc ¤ä DocBook ¤ËÈæ¤Ù¤ë¤È¡¢ -¥Þ¥¯¥í¤Î¿¤¯¤Ï½ñ¼° (¥Õ¥©¥ó¥È¥¿¥¤¥×¤ä¥¹¥Ú¡¼¥·¥ó¥°¤Ê¤É) ¤Ë´Ø¤¹¤ë¤â¤Î¤Ç¤¢¤ê¡¢ -°ÕÌ£¾å¤Î¤â¤Î (¤³¤Î¥Æ¥­¥¹¥È¤Ï¾¤Î¥Ú¡¼¥¸¤Ø¤Î»²¾È¤Ç¤¢¤ë¡¢¤Ê¤É) ¤Ç¤Ï¤Ê¤¤ -(HTML ¤Ç¤¹¤é°Ọ̃Ū¤Ê¥Þ¡¼¥­¥ó¥°¤Ë»×¤¨¤ë)¡£ -¤³¤Î¤¿¤á¡¢ +mdoc や DocBook に比べると、 +マクロの多くは書式 (フォントタイプやスペーシングなど) に関するものであり、 +意味上のもの (このテキストは他のページへの参照である、など) ではない +(HTML ですら意味的なマーキングに思える)。 +このため、 .B man -¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¾¤Î¥á¥Ç¥£¥¢¤ØÊÑ´¹¤·¤¿¤ê¡¢ -¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¾¤Î¥á¥Ç¥£¥¢¤ÇÍ­¸ú¤Ê¤â¤Î¤Ë¤·¤¿¤ê¡¢ -Áê¸ß»²¾È¤ò¼«Æ°Åª¤ËÁÞÆþ¤·¤¿¤ê¤¹¤ë¤³¤È¤¬º¤Æñ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -¾å¤Ëµó¤²¤¿¤è¤¦¤Ê°ÂÁ´¤Ê¥µ¥Ö¥»¥Ã¥È¤ò¼é¤ì¤Ð¡¢ -¾­ÍèÊ̤Υê¥Õ¥¡¥ì¥ó¥¹¥Ú¡¼¥¸¥Õ¥©¡¼¥Þ¥Ã¥È¤ØÊÑ´¹¤¹¤ëºî¶È¤¬´Êñ¤Ë¤Ê¤ë¤À¤í¤¦¡£ +フォーマットを他のメディアへ変換したり、 +フォーマットを他のメディアで有効なものにしたり、 +相互参照を自動的に挿入したりすることが困難になっている。 +上に挙げたような安全なサブセットを守れば、 +将来別のリファレンスページフォーマットへ変換する作業が簡単になるだろう。 .LP -Sun ¤Î¥Þ¥¯¥í¤Ç¤¢¤ë +Sun のマクロである .B TX -¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.\" .SH Ãø¼Ô +は定義されていない。 +.\" .SH 著者 .\" .IP \(em 3m -.\" James Clark (jjc@jclark.com) ¤¬¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸¤Î¼ÂÁõ¤ò½ñ¤¤¤¿¡£ +.\" James Clark (jjc@jclark.com) がマクロパッケージの実装を書いた。 .\" .IP \(em -.\" Rickard E. Faith (faith@cs.unc.edu) ¤¬¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÎºÇ½é¤ÎÈǤò½ñ¤¤¤¿¡£ +.\" Rickard E. Faith (faith@cs.unc.edu) がこのマニュアルページの最初の版を書いた。 .\" .IP \(em -.\" Jens Schweikhardt (schweikh@noc.fdn.de) ¤Ï Linux Man-Page Mini-HOWTO -.\" ¤ò½ñ¤¤¤¿ (Ëܥޥ˥奢¥ë¥Ú¡¼¥¸¤â¤³¤Îʸ½ñ¤Î±Æ¶Á¤ò¼õ¤±¤Æ¤¤¤ë)¡£ +.\" Jens Schweikhardt (schweikh@noc.fdn.de) は Linux Man-Page Mini-HOWTO +.\" を書いた (本マニュアルページもこの文書の影響を受けている)。 .\" .IP \(em -.\" David A. Wheeler (dwheeler@ida.org) ¤Ï¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤òÂ礭¤¯Êѹ¹¤·¡¢ -.\" ¥»¥¯¥·¥ç¥ó¤ä¥Þ¥¯¥í¤Ë´Ø¤¹¤ëºÙ¤«¤Ê¾ðÊó¤òÄɲ乤ë¤Ê¤É¤ò¹Ô¤Ã¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +.\" David A. Wheeler (dwheeler@ida.org) はこのマニュアルページを大きく変更し、 +.\" セクションやマクロに関する細かな情報を追加するなどを行った。 +.SH 関連項目 .BR apropos (1), .BR groff (1), .BR man (1), diff --git a/release/man7/math_error.7 b/release/man7/math_error.7 index 13f57b78..b10de949 100644 --- a/release/man7/math_error.7 +++ b/release/man7/math_error.7 @@ -25,41 +25,41 @@ .\" all rights reserved. .\" Translated 2008-08-17, Akihiro MOTOKI , LDP v3.07 .\" -.\"WORD: significand ²¾¿ôÉô -.\"WORD: domain error Îΰ襨¥é¡¼ -.\"WORD: pole error ¶Ë¥¨¥é¡¼ -.\"WORD: range error ÈÏ°Ï¥¨¥é¡¼ +.\"WORD: significand 仮数部 +.\"WORD: domain error 領域エラー +.\"WORD: pole error 極エラー +.\"WORD: range error 範囲エラー .\" .TH MATH_ERROR 7 2008-08-11 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -math_error \- ¿ô³Ø´Ø¿ô¤«¤é¤Î¥¨¥é¡¼¤Î¸¡½Ð -.SH ½ñ¼° +.SH 名前 +math_error \- 数学関数からのエラーの検出 +.SH 書式 .nf .B #include .B #include .B #include .fi -.SH ÀâÌÀ -¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤È¡¢¤Û¤È¤ó¤É¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ï (\-1 ¤ä NULL ¤Ê¤É¤Î) -ÆÃÊ̤ÊÃͤòÊÖ¤¹¤³¤È¤Ç¥¨¥é¡¼¤òÄÌÃΤ¹¤ë¡£ +.SH 説明 +エラーが発生すると、ほとんどのライブラリ関数は (\-1 や NULL などの) +特別な値を返すことでエラーを通知する。 .I -¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤ë¿ô³Ø´Ø¿ô¤Ï¡¢Ä̾ï¤ÏÉâÆ°¾®¿ôÅÀÃͤòÊÖ¤¹¤Î¤Ç¡¢ -¾¤Îµ¡¹½¤ò»È¤Ã¤Æ¥¨¥é¡¼¤òÄÌÃΤ¹¤ë¡£ -¥¨¥é¡¼ÄÌÃε¡¹½¤Ï 2 ¼ïÎढ¤ê¡¢ -¸Å¤¤¤â¤Î¤¬ +で宣言されている数学関数は、通常は浮動小数点値を返すので、 +他の機構を使ってエラーを通知する。 +エラー通知機構は 2 種類あり、 +古いものが .I errno -¤òÀßÄꤹ¤ë¤ä¤êÊý¤Ç¤¢¤ê¡¢¿·¤·¤¤¤â¤Î¤¬ +を設定するやり方であり、新しいものが .BR fenv (3) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ëÉâÆ°¾®¿ôÅÀÎã³°µ¡¹½¤Ç¤¢¤ë¡£ +で説明されている浮動小数点例外機構である。 .RB ( feclearexcept (3) -¤È +と .BR fetestexcept (3) -¤ò»ÈÍѤ¹¤ë¡£¤³¤ì¤é¤Ë¤Ä¤¤¤Æ¤Ï°Ê²¼¤Ç³µÍפòÀâÌÀ¤·¤Æ¤¤¤ë¡£) +を使用する。これらについては以下で概要を説明している。) -°Ü¿¢À­¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç¡¢¿ô³Ø´Ø¿ô¤«¤é¤Î¥¨¥é¡¼¤ò³Îǧ¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢ -¿ô³Ø´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë +移植性が必要なプログラムで、数学関数からのエラーを確認する必要がある場合には、 +数学関数を呼び出す前に .I errno -¤ò 0 ¤ËÀßÄꤷ¡¢°Ê²¼¤ò¸Æ¤Ó½Ð¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +を 0 に設定し、以下を呼び出すべきである。 .in +4n .nf @@ -67,11 +67,11 @@ feclearexcept(FE_ALL_EXCEPT); .fi .in -¿ô³Ø´Ø¿ô¤«¤éÊ֤äƤ­¤¿ºÝ¤Ë¡¢ +数学関数から返ってきた際に、 .I errno -¤¬ 0 °Ê³°¤«¡¢°Ê²¼¤Î¸Æ¤Ó½Ð¤·¤¬ 0 °Ê³°¤òÊÖ¤·¤¿¾ì¹ç +が 0 以外か、以下の呼び出しが 0 以外を返した場合 .RB ( fenv (3) -»²¾È)¡¢¿ô³Ø´Ø¿ô¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤Æ¤¤¤ë¡£ +参照)、数学関数でエラーが発生している。 .in +4n .nf @@ -89,126 +89,126 @@ fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | .\" FE_INEXACT = 0x20 .\" }; -¿ô³Ø´Ø¿ô¤ÇȯÀ¸¤¹¤ë¥¨¥é¡¼¾ò·ï¤Ë¤Ä¤¤¤Æ¤Ï°Ê²¼¤ÇÀâÌÀ¤¹¤ë¡£ -.SS Îΰ襨¥é¡¼ (domain error) -.I Îΰ襨¥é¡¼ -¤¬È¯À¸¤¹¤ë¤Î¤Ï¡¢¿ô³Ø´Ø¿ô¤ËÅϤµ¤ì¤¿°ú¤­¿ô¤ÎÃͤ¬¤½¤Î´Ø¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë -Îΰè¤ËÆþ¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ç¤¢¤ë (Î㤨¤Ð +数学関数で発生するエラー条件については以下で説明する。 +.SS 領域エラー (domain error) +.I 領域エラー +が発生するのは、数学関数に渡された引き数の値がその関数が定義されている +領域に入っていない場合である (例えば .BR log (3) -¤ËÉé¤Î°ú¤­¿ô¤òÅϤ·¤¿¾ì¹ç)¡£ -Îΰ襨¥é¡¼¤¬È¯À¸¤¹¤ë¤È¡¢ -¿ô³Ø´Ø¿ô¤ÏÉáÄÌ¤Ï NaN ¤òÊÖ¤· -(Ʊ¤¸¾õ¶·¤Ç°ã¤¦ÃͤòÊÖ¤¹´Ø¿ô¤â¤¢¤ë)¡¢ +に負の引き数を渡した場合)。 +領域エラーが発生すると、 +数学関数は普通は NaN を返し +(同じ状況で違う値を返す関数もある)、 .I errno -¤Ë +に .B EDOM -¤òÀßÄꤷ¡¢¡Ö̵¸ú (invalid)¡× -ÉâÆ°¾®¿ôÅÀÎã³° +を設定し、「無効 (invalid)」 +浮動小数点例外 .RB ( FE_INVALID ) -¤ò¾å¤²¤ë¡£ -.SS ¶Ë¥¨¥é¡¼ (pole error) -.I ¶Ë¥¨¥é¡¼ -¤¬È¯À¸¤¹¤ë¤Î¤Ï¡¢´Ø¿ô¤Î¿ô³ØŪ¤Ê·ë²Ì¤¬Ìµ¸ÂÂ礽¤Î¤â¤Î¤È¤Ê¤ë¾ì¹ç¤Ç¤¢¤ë -(Î㤨¤Ð -0 ¤ÎÂпô¤ÏÉé¤Î̵¸ÂÂç¤Ç¤¢¤ë)¡£ -¶Ë¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤È¡¢¤½¤Î´Ø¿ô¤ÎÊÖ¤êÃÍ¤Ï (Éä¹æÉÕ¤­¤Î) +を上げる。 +.SS 極エラー (pole error) +.I 極エラー +が発生するのは、関数の数学的な結果が無限大そのものとなる場合である +(例えば +0 の対数は負の無限大である)。 +極エラーが発生すると、その関数の返り値は (符号付きの) .BR HUGE_VAL , .BR HUGE_VALF , .B HUGE_VALL -¤Î¤¤¤º¤ì¤«¤È¤Ê¤ë (Á°µ­¤ÎÃͤΤ¦¤Á¤É¤ì¤¬Ê֤뤫¤Ï´Ø¿ô¤ÎÊÖ¤êÃͤη¿¤Ë¤è¤ê·è¤Þ¤ê¡¢ -¤½¤ì¤¾¤ì +のいずれかとなる (前記の値のうちどれが返るかは関数の返り値の型により決まり、 +それぞれ .IR double , .IR float , .I "long double" -¤ËÂбþ¤¹¤ë)¡£ -·ë²Ì¤ÎÉä¹æ¤Ï¡¢¤½¤Î´Ø¿ô¤Î¿ô³ØŪ¤ÊÄêµÁ¤«¤é·èÄꤵ¤ì¤ë¡£ +に対応する)。 +結果の符号は、その関数の数学的な定義から決定される。 .I errno -¤Ï +は .B ERANGE -¤ËÀßÄꤵ¤ì¡¢¡Ö0 ¤Ë¤è¤ë½ü»» (divide-by-zero)¡× -ÉâÆ°¾®¿ôÅÀÎã³° +に設定され、「0 による除算 (divide-by-zero)」 +浮動小数点例外 .RB ( FE_DIVBYZERO ) -¤¬¾å¤¬¤ë¡£ -.SS ÈÏ°Ï¥¨¥é¡¼ (range ¥¨¥é¡¼) -.I ÈÏ°Ï¥¨¥é¡¼ -¤¬È¯À¸¤¹¤ë¤Î¤Ï¡¢´Ø¿ô¤Î·ë²Ì¤ÎÃͤ¬¤½¤Î´Ø¿ô¤ÎÊÖ¤êÃͤη¿¤Ç¤Ïɽ¸½¤Ç¤­¤Ê¤¤¾ì¹ç -¤Ç¤¢¤ë¡£´Ø¿ô¤ÎÊÖ¤êÃͤϡ¢ÈÏ°Ï¥¨¥é¡¼¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ç¤¢¤Ã¤¿¤«¥¢¥ó¥À¡¼¥Õ¥í¡¼ -¤Ç¤¢¤Ã¤¿¤«¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¡£ +が上がる。 +.SS 範囲エラー (range エラー) +.I 範囲エラー +が発生するのは、関数の結果の値がその関数の返り値の型では表現できない場合 +である。関数の返り値は、範囲エラーがオーバーフローであったかアンダーフロー +であったかによって異なる。 -ÉâÆ°¾®¿ôÅÀ¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ï¡¢·ë²Ì¤¬Í­¸Â¤À¤¬¡¢Â礭²á¤®¤Æ -·ë²Ì¤òÊÖ¤¹·¿¤Ç¤Ïɽ¸½¤Ç¤­¤Ê¤¤¾ì¹ç¤ËȯÀ¸¤¹¤ë¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬È¯À¸¤¹¤ë¤È¡¢ -¤½¤Î´Ø¿ô¤Ï +浮動小数点のオーバーフローは、結果が有限だが、大き過ぎて +結果を返す型では表現できない場合に発生する。 +オーバーフローが発生すると、 +その関数は .BR HUGE_VAL , .BR HUGE_VALF , .B HUGE_VALL -¤Î¤¤¤º¤ì¤«¤òÊÖ¤¹ (Á°µ­¤ÎÃͤΤ¦¤Á¤É¤ì¤¬Ê֤뤫¤Ï´Ø¿ô¤ÎÊÖ¤êÃͤη¿¤Ë¤è¤ê·è¤Þ¤ê¡¢ -¤½¤ì¤¾¤ì +のいずれかを返す (前記の値のうちどれが返るかは関数の返り値の型により決まり、 +それぞれ .IR double , .IR float , .I "long double" -¤ËÂбþ¤¹¤ë)¡£ +に対応する)。 .I errno -¤Ï +は .B ERANGE -¤ËÀßÄꤵ¤ì¡¢¡Ö¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ (overflow)¡× -ÉâÆ°¾®¿ôÅÀÎã³° +に設定され、「オーバーフロー (overflow)」 +浮動小数点例外 .RB ( FE_OVERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 -ÉâÆ°¾®¿ôÅÀ¤Î¥¢¥ó¥À¡¼¥Õ¥í¡¼¤Ï¡¢ -·ë²Ì¤¬¾®¤µ²á¤®¤Æ¡¢·ë²Ì¤òÊÖ¤¹·¿¤Ç¤Ïɽ¸½¤Ç¤­¤Ê¤¤¾ì¹ç¤ËȯÀ¸¤¹¤ë¡£ -¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¬È¯À¸¤¹¤ë¤È¡¢¿ô³Ø´Ø¿ô¤ÏÄ̾ï¤Ï 0.0 ¤òÊÖ¤¹ -(C99 ¤Ç¤Ï¡¢»ØÄꤵ¤ì¤¿·¿¤Ë¤ª¤¤¤ÆºÇ¾®¤ÎÀµµ¬²½¤µ¤ì¤¿Àµ¤ÎÃͤè¤êÂ礭¤¯¤Ê¤¤ -Ãͤò»ý¤Ä¼ÂÁõÄêµÁ (implementation-defined) ¤ÎÃͤòÊÖ¤¹¡¢¤È¤Ê¤Ã¤Æ¤¤¤ë)¡£ +浮動小数点のアンダーフローは、 +結果が小さ過ぎて、結果を返す型では表現できない場合に発生する。 +アンダーフローが発生すると、数学関数は通常は 0.0 を返す +(C99 では、指定された型において最小の正規化された正の値より大きくない +値を持つ実装定義 (implementation-defined) の値を返す、となっている)。 .I errno -¤Ï +は .B ERANGE -¤ËÀßÄꤵ¤ì¡¢¡Ö¥¢¥ó¥À¡¼¥Õ¥í¡¼¡×ÉâÆ°¾®¿ôÅÀÎã³° +に設定され、「アンダーフロー」浮動小数点例外 .RB ( FE_UNDERFLOW ) -¤¬¾å¤¬¤ë¡£ +が上がる。 -¤¤¤¯¤Ä¤«¤Î´Ø¿ô¤Ç¤Ï¡¢ÅϤµ¤ì¤¿°ú¤­¿ô¤ÎÃͤ䡢Àµ¤·¤¤´Ø¿ô¤Î·ë²Ì¤¬ -.I subnormal (ÈóÀµµ¬²½¿ô) -¤Ë¤Ê¤ë¾ì¹ç¤ËÈÏ°Ï¥¨¥é¡¼¤ò¾å¤²¤ë¡£ -subnormal ¤ÊÃͤȤϡ¢0 ¤Ç¤Ï¤Ê¤¤¤¬¡¢¤½¤ÎÃͤ¬¾®¤µ¤¹¤®¤Æ -(²¾¿ôÉô¤ÎºÇ¾å°Ì¥Ó¥Ã¥È¤¬ 1 ¤È¤Ê¤ë) ɸ½à·Á¤Ç¤Ïɽ¸½¤Ç¤­¤Ê¤¤¤è¤¦¤ÊÃͤǤ¢¤ë¡£ -subnormal ¤ÊÃͤÎɽ¸½¤Ç¤Ï¡¢²¾¿ôÉô¤Î¾å°Ì¦¤Î¥Ó¥Ã¥È¤Ë 1 ¸Ä°Ê¾å¤Î 0 ¤¬ -´Þ¤Þ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ -.SH Ãí°Õ -C99 ¤È POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë +いくつかの関数では、渡された引き数の値や、正しい関数の結果が +.I subnormal (非正規化数) +になる場合に範囲エラーを上げる。 +subnormal な値とは、0 ではないが、その値が小さすぎて +(仮数部の最上位ビットが 1 となる) 標準形では表現できないような値である。 +subnormal な値の表現では、仮数部の上位側のビットに 1 個以上の 0 が +含まれることになる。 +.SH 注意 +C99 と POSIX.1-2001 で規定されている .I math_errhandling -¼±ÊÌ»Ò¤Ï glibc ¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +識別子は glibc ではサポートされていない。 .\" See CONFORMANCE in the glibc 2.8 (and earlier) source. -¤³¤Î¼±Ê̻Ҥϡ¢2 ¤Ä¤Î¥¨¥é¡¼ÄÌÃε¡¹½ +この識別子は、2 つのエラー通知機構 .RI ( errno -¤È +と .BR fetestexcept (3) -·Ðͳ¤Ç¼èÆÀ¤Ç¤­¤ëÎã³°) ¤Î¤¦¤Á¤É¤Á¤é¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¤«¤òÄÌÃÎ -¤¹¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -ɸ½à¤Ç¤Ï¡¢¾¯¤Ê¤¯¤È¤â°ì¤Ä¤Ï»ÈÍѤµ¤ì¤ë¤³¤È¤¬Í׵ᤵ¤ì¤Æ¤¤¤ë¤¬¡¢ -ξÊý¤È¤âÍøÍѲÄǽ¤Ç¤¢¤Ã¤Æ¤â¤è¤¤¤È¤µ¤ì¤Æ¤¤¤ë¡£ -glibc ¤Ç¤Î¸½ºß¤Î (¥Ð¡¼¥¸¥ç¥ó 2.8 ¤Ç¤Î) ¾õ¶·¤Ï¤«¤Ê¤êº®Í𤷤Ƥ¤¤ë¡£ -¤Û¤È¤ó¤É¤Î´Ø¿ô (¤¿¤À¤·Á´Éô¤Ç¤Ï¤Ê¤¤) ¤Ï¥¨¥é¡¼»þ¤ËÎã³°¤ò¾å¤²¤ë¡£ -¤¤¤¯¤Ä¤«¤Î´Ø¿ô¤Ï +経由で取得できる例外) のうちどちらが使用されているかを通知 +することになっている。 +標準では、少なくとも一つは使用されることが要求されているが、 +両方とも利用可能であってもよいとされている。 +glibc での現在の (バージョン 2.8 での) 状況はかなり混乱している。 +ほとんどの関数 (ただし全部ではない) はエラー時に例外を上げる。 +いくつかの関数は .I errno -¤âÀßÄꤹ¤ë¡£ +も設定する。 .I errno -¤òÀßÄꤹ¤ë¤¬¡¢Îã³°¤ò¾å¤²¤Ê¤¤´Ø¿ô¤â¾¯¤·¤À¤±Â¸ºß¤¹¤ë¡£ -¤É¤Á¤é¤â¹Ô¤ï¤Ê¤¤´Ø¿ô¤â¤´¤¯¾¯¿ô¤À¤¬Â¸ºß¤¹¤ë¡£ -¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¸Ä¡¹¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¤Î¤³¤È¡£ +を設定するが、例外を上げない関数も少しだけ存在する。 +どちらも行わない関数もごく少数だが存在する。 +詳細については個々のマニュアルページを参照のこと。 .I errno -¤È +と .BR fetestexcept (3) -¤ÎξÊý¤ò»È¤Ã¤Æ¥¨¥é¡¼¥Á¥§¥Ã¥¯¤ò¹Ô¤¦¤³¤È¤ÇÊ£»¨¤Ë¤Ê¤ë¤Î¤òÈò¤±¤ë¤¿¤á¡¢ -¿¤¯¤Î¾ì¹ç¡¢´Ø¿ô¸Æ¤Ó½Ð¤·¤ò¹Ô¤¦Á°¤ËÉÔÀµ¤Ê°ú¤­¿ô¤«¤Î¥Á¥§¥Ã¥¯¤ò¹Ô¤¦ -ÊýË¡¤¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£ +の両方を使ってエラーチェックを行うことで複雑になるのを避けるため、 +多くの場合、関数呼び出しを行う前に不正な引き数かのチェックを行う +方法が推奨されている。 .\" http://www.securecoding.cert.org/confluence/display/seccode/FLP32-C.+Prevent+or+detect+domain+and+range+errors+in+math+functions -Î㤨¤Ð¡¢°Ê²¼¤Î¥³¡¼¥É¤Ï¡¢ +例えば、以下のコードは、 .BR log (3) -¤Î°ú¤­¿ô¤¬ NaN ¤Ç¤â (¶Ë¥¨¥é¡¼¤È¤Ê¤ë) 0 ¤Ç¤â (Îΰ襨¥é¡¼¤È¤Ê¤ë) 0 ̤Ëþ -¤Ç¤â¤Ê¤¤¤³¤È¤òÊݾڤ¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +の引き数が NaN でも (極エラーとなる) 0 でも (領域エラーとなる) 0 未満 +でもないことを保証するものである。 .in +4n .nf @@ -222,30 +222,30 @@ r = log(x); .fi .in -¤³¤Î¥Ú¡¼¥¸¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¤³¤È¤Ï¡¢ +このページに書かれていることは、 .RI ( -¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤ë) Ê£ÁÇ¿ô´Ø¿ô¤Ë¤Ï¤¢¤Æ¤Ï¤Þ¤é¤Ê¤¤¡£ -°ìÈ̤ˡ¢C99 ¤ä POSIX.1-2001 ¤Ç¤Ï¤³¤ì¤é¤Î´Ø¿ô¤¬¥¨¥é¡¼¤òÊÖ¤¹¤³¤È¤ò -Í׵ᤷ¤Æ¤Ê¤¤¡£ +で宣言されている) 複素数関数にはあてはまらない。 +一般に、C99 や POSIX.1-2001 ではこれらの関数がエラーを返すことを +要求してない。 .BR gcc (1) -¤Î +の .I "-fno-math-errno" -¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¡¢¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ç¡¢É¸½à¤Î¼ÂÁõ¤è¤ê¤â¹â®¤Ê¿ô³Ø´Ø¿ô¤Î -¼ÂÁõ¤¬»ÈÍѤµ¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¤¬¡¢ -¥¨¥é¡¼»þ¤Ë +オプションを使うと、実行ファイルで、標準の実装よりも高速な数学関数の +実装が使用されるようになるが、 +エラー時に .I errno -¤¬ÀßÄꤵ¤ì¤Ê¤¤ +が設定されない .RB ( gcc (1) -¤Î +の .I "-ffast-math" -¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤¿¾ì¹ç¤Ë¤â +オプションを指定した場合にも .I "-fno-math-errno" -¤ÏÍ­¸ú¤Ë¤Ê¤ë)¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤¿¾ì¹ç¤Ç¤â¡¢ +は有効になる)。 +このオプションを指定した場合でも、 .BR fetestexcept (3) -¤ò»È¤Ã¤¿¥¨¥é¡¼¤Î¸¡ºº¤Ï²Äǽ¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +を使ったエラーの検査は可能である。 +.SH 関連項目 .BR gcc (1), .BR errno (3), .BR fenv (3), diff --git a/release/man7/mdoc.7 b/release/man7/mdoc.7 index 880b88e0..553daede 100644 --- a/release/man7/mdoc.7 +++ b/release/man7/mdoc.7 @@ -40,389 +40,389 @@ .\" Translated Fri 14 Jan 2000 by NAKANO Takeo .\" Updated 2008-07-31 by Kentaro Shirakata .\" -.\"WORD: manual domain macro ¥Þ¥Ë¥å¥¢¥ë¥É¥á¥¤¥ó¥Þ¥¯¥í -.\"WORD: general text domain macro °ìÈ̥ƥ­¥¹¥È¥É¥á¥¤¥ó¥Þ¥¯¥í -.\"WORD: callable macro ¸Æ¤Ó½Ð¤·²Äǽ¥Þ¥¯¥í +.\"WORD: manual domain macro マニュアルドメインマクロ +.\"WORD: general text domain macro 一般テキストドメインマクロ +.\"WORD: callable macro 呼び出し可能マクロ .\" .Dd July 11, 1999 .Dt MDOC 7 .Os Linux -.Sh ̾Á° +.Sh 名前 .Nm mdoc .Nd .Nm \-mdoc -¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸¤Î¥¯¥¤¥Ã¥¯¥ê¥Õ¥¡¥ì¥ó¥¹¥¬¥¤¥É -.Sh ½ñ¼° +マクロパッケージのクイックリファレンスガイド +.Sh 書式 .Nm groff .Fl m Ns Ar doc .Ar files ... -.Sh ÀâÌÀ +.Sh 説明 .Nm \-mdoc -¥Ñ¥Ã¥±¡¼¥¸¤Ï +パッケージは .Bx -man ¥Ú¡¼¥¸¤ËÍѤ¤¤é¤ì¤ëÆâÍÆ¥Ù¡¼¥¹¡¦¥É¥á¥¤¥ó¥Ù¡¼¥¹¤Î¥Þ¥¯¥í¤Ç¤¢¤ë¡£ -°Ê²¼¤Ç¤Ï¥¯¥¤¥Ã¥¯¥ê¥Õ¥¡¥ì¥ó¥¹¤È¤·¤Æ¥Þ¥¯¥í¤Î̾Á°¤È¤½¤Î°ÕÌ£¤ò¥ê¥¹¥È¤¹¤ë¡£ -¤³¤Î¥Ñ¥Ã¥±¡¼¥¸¤ÎÍøÍÑË¡¤Ë´Ø¤¹¤ë¾ÜºÙ¤ÊÀâÌÀ¤Ï¡¢ -¥Á¥å¡¼¥È¥ê¥¢¥ëÍѤθ«ËܤǤ¢¤ë +man ページに用いられる内容ベース・ドメインベースのマクロである。 +以下ではクイックリファレンスとしてマクロの名前とその意味をリストする。 +このパッケージの利用法に関する詳細な説明は、 +チュートリアル用の見本である .Xr mdoc.samples 7 -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .Pp -¤³¤ì¤Ï Linux ¤Îʸ½ñ¤ÇÄ̾ïÍѤ¤¤é¤ì¤Æ¤¤¤ë¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸¤È¤Ï°Û¤Ê¤ë¡£ -¤·¤«¤·¹­¤¯ÍѤ¤¤é¤ì¤Æ¤¤¤ë¤¤¤¯¤Ä¤«¤Î¥×¥í¥°¥é¥à¤Îʸ½ñ¤Ç¡¢ -¤³¤Î¥Þ¥¯¥í¤¬ÍøÍѤµ¤ì¤Æ¤¤¤ë¡£ +これは Linux の文書で通常用いられているマクロパッケージとは異なる。 +しかし広く用いられているいくつかのプログラムの文書で、 +このマクロが利用されている。 .Xr man 7 -¤ò¸«¤è¡£ +を見よ。 .Pp -¥Þ¥¯¥í¤Ï 2 ¤Ä¤Î¥°¥ë¡¼¥×¤Ëʬ¤±¤ÆÀâÌÀ¤¹¤ë¡£ -ºÇ½é¤Î¥°¥ë¡¼¥×¤Ï¹½Â¤¤äʪÍýŪ¤Ê¥Ú¡¼¥¸¥ì¥¤¥¢¥¦¥È¤Ë´Ø¤¹¤ë¥Þ¥¯¥í¤Ç¤¢¤ë¡£ -2 ¤Ä¤á¤Ï¥Þ¥Ë¥å¥¢¥ë¥É¥á¥¤¥ó¥Þ¥¯¥í (manual domain macro) -¤ä°ìÈ̥ƥ­¥¹¥È¥É¥á¥¤¥ó¥Þ¥¯¥í (general text domain macro) -¤Ç¡¢ +マクロは 2 つのグループに分けて説明する。 +最初のグループは構造や物理的なページレイアウトに関するマクロである。 +2 つめはマニュアルドメインマクロ (manual domain macro) +や一般テキストドメインマクロ (general text domain macro) +で、 .Nm \-mdoc -¥Ñ¥Ã¥±¡¼¥¸¤ò¾¤Î +パッケージを他の .Xr troff -¥Õ¥©¡¼¥Þ¥Ã¥È¥Ñ¥Ã¥±¡¼¥¸¤Èº¹Ê̲½¤·¤Æ¤¤¤ë¤â¤Î¤Ç¤¢¤ë¡£ -.Sh ¥Ú¡¼¥¸¹½Â¤¤Î¥É¥á¥¤¥ó -.Ss ¥¿¥¤¥È¥ë¥Þ¥¯¥í -Àµ¤·¤¤¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤òÀ¸À®¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¤³¤ì¤é¤Î 3 ¤Ä¤Î¥Þ¥¯¥í¤ò -¤³¤Î½çÈ֤ǽñ¤¯É¬Íפ¬¤¢¤ë¡£ +フォーマットパッケージと差別化しているものである。 +.Sh ページ構造のドメイン +.Ss タイトルマクロ +正しいマニュアルページを生成するためには、これらの 3 つのマクロを +この順番で書く必要がある。 .Bl -tag -width "xxxx.Os OPERATINGxSYSTEM [version/release]" -compact .It Li "\&.Dd " Ar "Month day, year" -ʸ½ñ¤ÎÆüÉÕ¡£ +文書の日付。 .It Li "\&.Dt " Ar "DOCUMENT_TITLE [section] [volume]" -¥¿¥¤¥È¥ë¤òÂçʸ»ú¤Ç¡£ +タイトルを大文字で。 .It Li "\&.Os " Ar "OPERATING_SYSTEM [version/release]" -¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à +オペレーティングシステム .Pq Tn BSD . .El -.Ss ¥Ú¡¼¥¸¥ì¥¤¥¢¥¦¥È¥Þ¥¯¥í -¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¡¢ÃÊÍî¤Î½ª¤ï¤ê¡¢¥ê¥¹¥È¡¢É½¼¨¤Ê¤É¡£ +.Ss ページレイアウトマクロ +セクションヘッダ、段落の終わり、リスト、表示など。 .Bl -tag -width flag -compact .It Li \&.Sh -¥»¥¯¥·¥ç¥ó¤Î¥Ø¥Ã¥À¡£ -Àµ¤·¤¤¥Ø¥Ã¥À¤Ï¡¢¸½¤ì¤ë½ç¤Ë: +セクションのヘッダ。 +正しいヘッダは、現れる順に: .Bl -tag -width "RETURN VALUE" -compact .It Ar NAME -̾Á°¤Î¥»¥¯¥·¥ç¥ó¡£ +名前のセクション。 .Ql \&.Nm , .Ql \&.Fn , .Ql \&.Nd -¤Ê¤É¤Î¥Þ¥¯¥í¤ò´Þ¤à¡£ +などのマクロを含む。 .It Ar SYNOPSIS -ÍøÍÑË¡¡£ +利用法。 .It Ar DESCRIPTION -°ìÈÌŪ¤ÊÀâÌÀ¡£¥ª¥×¥·¥ç¥ó¤ä¥Ñ¥é¥á¡¼¥¿¤ÎÀâÌÀ¤â´Þ¤à¡£ +一般的な説明。オプションやパラメータの説明も含む。 .It Ar RETURN VALUE -¥»¥¯¥·¥ç¥ó 2 ¤ä 3 ¤Î´Ø¿ô¥³¡¼¥ë¡£ +セクション 2 や 3 の関数コール。 .It Ar ENVIRONMENT -´Ä¶­ÊÑ¿ô¤òÀâÌÀ¤¹¤ë¡£ +環境変数を説明する。 .It Ar FILES -ÆâÍƤ˴ط¸¤¹¤ë¥Õ¥¡¥¤¥ë¡£ +内容に関係するファイル。 .It Ar EXAMPLES -Îã¤ä¤ª¤¹¤¹¤á¡£ +例やおすすめ。 .It Ar DIAGNOSTICS -Ä̾糧¥¯¥·¥ç¥ó 4 ¤Î¥Ç¥Ð¥¤¥¹¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¿ÇÃÇÍÑ¡£ +通常セクション 4 のデバイスインターフェースの診断用。 .It Ar ERRORS -¥»¥¯¥·¥ç¥ó 2 ¤ä 3 ¤Î¥¨¥é¡¼¤ä¥·¥°¥Ê¥ë½èÍý¡£ +セクション 2 や 3 のエラーやシグナル処理。 .It Ar SEE ALSO -Áê¸ß»²¾È¤ä°úÍÑ¡£ +相互参照や引用。 .It Ar CONFORMING TO -²Äǽ¤Ê¤éɸ½à¤Ø¤Î½àµò¡£ +可能なら標準への準拠。 .It Ar HISTORY -ɸ½à¤¬Å¬ÍѤµ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢ -Îò»ËŪ¤ÊÆâÍƤòÍ¿¤¨¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +標準が適用されていない場合は、 +歴史的な内容を与えるべきである。 .It Ar BUGS -àìáÓ¤ä·Ù¹ð¡£ +瑕疵や警告。 .It Ar other -É®¼Ô¤ÎȽÃǤǥإåÀ¤ò¤¢¤Ä¤é¤¨¤Æ¤â¤è¤¤¡£ +筆者の判断でヘッダをあつらえてもよい。 .El .It Li \&.Ss -¥µ¥Ö¥»¥¯¥·¥ç¥ó¤Î¥Ø¥Ã¥À¡£ +サブセクションのヘッダ。 .It Li \&.Pp -ÃÊÍî¤Î¶èÀڤꡣ -¿âľ¥¹¥Ú¡¼¥¹ (°ì¹Ô)¡£ +段落の区切り。 +垂直スペース (一行)。 .It Li \&.D1 (D-one) Display-one -¥¤¥ó¥Ç¥ó¥È¤·¤Æ¥Æ¥­¥¹¥È¤ò°ì¹Ôɽ¼¨¡£ +インデントしてテキストを一行表示。 .It Li \&.Dl -(D-ell) Displey-one literal¡£ -¥¤¥ó¥Ç¥ó¥È¤·¤Æ¥ê¥Æ¥é¥ë¤Ê¥Æ¥­¥¹¥È¤ò°ì¹Ôɽ¼¨¡£ +(D-ell) Displey-one literal。 +インデントしてリテラルなテキストを一行表示。 .It Li \&.Bd -ɽ¼¨¥Ö¥í¥Ã¥¯¤Î³«»Ï¡£ -ɽ¼¨¥ª¥×¥·¥ç¥ó: +表示ブロックの開始。 +表示オプション: .Bl -tag -width "xoffset string " -compact .It Fl ragged -·¤¨¤Ê¤¤ (ξü¤ÏÉÔ·¤¤)¡£ +揃えない (両端は不揃い)。 .It Fl filled -·¤¨¤ë¡£ +揃える。 .It Fl literal -¥ê¥Æ¥é¥ë¤Ê¥Æ¥­¥¹¥È¤Þ¤¿¤Ï¥³¡¼¥É¡£ +リテラルなテキストまたはコード。 .It Fl file Ar name -»ØÄꤵ¤ì¤¿ +指定された .Ar file -¤òÆɤó¤Çɽ¼¨¤¹¤ë¡£ +を読んで表示する。 .It Fl offset Ar string -¥ª¥Õ¥»¥Ã¥Èɽ¼¨¡£ -¼õÉÕ¤±¤ë +オフセット表示。 +受付ける .Ar string -¤ÎÃͤÏ: +の値は: .Bl -tag -width indent-two -compact .It Ar left -¥Ö¥í¥Ã¥¯¤òº¸¤Ë·¤¨¤ë (¥Ç¥Õ¥©¥ë¥È)¡£ +ブロックを左に揃える (デフォルト)。 .It Ar center -Âç¤Þ¤«¤Ê¥»¥ó¥¿¡¼¥Þ¡¼¥¸¥ó¡£ +大まかなセンターマージン。 .It Ar indent -Äê¿ôÉý¤Î¶õÇò 6 ¤Ä (¥¿¥Ö 1 ¤Ä)¡£ +定数幅の空白 6 つ (タブ 1 つ)。 .It Ar indent-two -¥¿¥Ö 2 ¤Ä¡£ +タブ 2 つ。 .It Ar right -·¤¨¥Ö¥í¥Ã¥¯¤ò±¦¤«¤é 2 ¥¤¥ó¥Á¤Î°ÌÃ֤˻Ĥ¹¡£ +揃えブロックを右から 2 インチの位置に残す。 .\"NAKANO ??? .It Ar xx Ns Cm n .Ar xx -¤Ï +は .No \&4 Ns Cm n -¤«¤é +から .No \&9\&9 Ns Cm n -¤Þ¤Ç¤Î¿ô»ú¡£ +までの数字。 .It Ar Aa .Ar Aa -¤Ï¸Æ¤Ó¤À¤·²Äǽ¤Ê¥Þ¥¯¥í¤Î̾Á°¡£ +は呼びだし可能なマクロの名前。 .It Ar string .Ar string -¤ÎÉý¤¬ÍѤ¤¤é¤ì¤ë¡£ +の幅が用いられる。 .El .El .It Li \&.Ed -ɽ¼¨½ªÎ» (\&.Bd ¤Ë¥Þ¥Ã¥Á¤¹¤ë)¡£ +表示終了 (\&.Bd にマッチする)。 .It Li \&.Bl -¥ê¥¹¥È³«»Ï¡£ -¥ê¥¹¥È¤Þ¤¿¤Ï¥³¥é¥à¤òÀ¸À®¤¹¤ë¡£¥ª¥×¥·¥ç¥ó¤Ï°Ê²¼: +リスト開始。 +リストまたはコラムを生成する。オプションは以下: .Bl -tag -width flag -compact -.It Ar ¥ê¥¹¥È·Á¼° +.It Ar リスト形式 .Bl -column xbullet -compact -.It Fl bullet Ta "Ãæ¹õ¤Î¥¢¥¤¥Æ¥à¥ê¥¹¥È" -.It Fl item Ta "¥é¥Ù¥ë¤Ê¤·¥ê¥¹¥È" -.It Fl enum Ta "¿ôÃÍÉÕ¤­¥ê¥¹¥È" -.It Fl tag Ta "¥¿¥°¥é¥Ù¥ëÉÕ¤­¥ê¥¹¥È" -.It Fl diag Ta "¿ÇÃǥꥹ¥È (diagnostic list)" -.It Fl hang Ta "¤Ö¤é¤µ¤¬¤ê¥é¥Ù¥ë¥ê¥¹¥È" -.It Fl ohang Ta "Èô¤Ó½Ð¤·¥é¥Ù¥ë¥ê¥¹¥È" -.It Fl inset Ta "¥é¥Ù¥ëÉÕ¤­¥ê¥¹¥È¤ÎÁÞÆþ¡¦·Ñ³" +.It Fl bullet Ta "中黒のアイテムリスト" +.It Fl item Ta "ラベルなしリスト" +.It Fl enum Ta "数値付きリスト" +.It Fl tag Ta "タグラベル付きリスト" +.It Fl diag Ta "診断リスト (diagnostic list)" +.It Fl hang Ta "ぶらさがりラベルリスト" +.It Fl ohang Ta "飛び出しラベルリスト" +.It Fl inset Ta "ラベル付きリストの挿入・継続" .El -.It ¥ê¥¹¥È¥Ñ¥é¥á¡¼¥¿ +.It リストパラメータ .Bl -tag -width "xcompact " -compact .It Fl offset -(Á´¤Æ¤Î¥ê¥¹¥È) ¾åµ­¤Î +(全てのリスト) 上記の .Ql \&.Bd -¥Ç¥£¥¹¥×¥ì¥¤³«»Ï (begin-display) ¤ò¸«¤è¡£ +ディスプレイ開始 (begin-display) を見よ。 .It Fl width .Pf ( Fl tag -¤ª¤è¤Ó +および .Fl hang -¥ê¥¹¥È¤Î¤ß) +リストのみ) .Ql \&.Bd . -¤ò¸«¤è¡£ +を見よ。 .It Fl compact -(Á´¤Æ¤Î¥ê¥¹¥È) -¶õ¹Ô¤òÍÞÀ©¤¹¤ë¡£ +(全てのリスト) +空行を抑制する。 .El .El .It Li \&.El -¥ê¥¹¥È¤Î½ª¤ï¤ê¡£ +リストの終わり。 .It Li \&.It -¥ê¥¹¥È¹àÌÜ¡£ +リスト項目。 .El -.Sh ¥Þ¥Ë¥å¥¢¥ë¥É¥á¥¤¥ó¥Þ¥¯¥í¤È°ìÈ̥ƥ­¥¹¥È¥É¥á¥¤¥ó¥Þ¥¯¥í -¥Þ¥Ë¥å¥¢¥ë¥É¥á¥¤¥ó¥Þ¥¯¥í¤È°ìÈ̥ƥ­¥¹¥È¥É¥á¥¤¥ó¥Þ¥¯¥í¤È¤¬ -¾¤È°Û¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ï¡¢ -¸Æ¤Ó¤À¤·²Äǽ¥Þ¥¯¥í (callable macro) ¤ÎÆâÉô¤Ç¤Ï¡¢ -¤½¤Î¤Û¤È¤ó¤É¤¬¥Ñ¡¼¥º¤µ¤ì¤ë¤È¤¤¤¦ÅÀ¤Ç¤¢¤ë¡£ -Î㤨¤Ð°Ê²¼¤Î¤è¤¦¤ËÊÑ´¹¤µ¤ì¤ë: +.Sh マニュアルドメインマクロと一般テキストドメインマクロ +マニュアルドメインマクロと一般テキストドメインマクロとが +他と異なっているのは、 +呼びだし可能マクロ (callable macro) の内部では、 +そのほとんどがパーズされるという点である。 +例えば以下のように変換される: .Bl -tag -width ".Op Fl s Ar filex" -offset indent .It Li "\&.Op Fl s Ar file" -¢ª +→ .Op Fl s Ar file .El .Pp -¤³¤ÎÎã¤Ç¤Ï¡¢°Ï¤ß¥Þ¥¯¥í +この例では、囲みマクロ .Ql \&.Op -¤ËÍ¿¤¨¤é¤ì¤¿¥ª¥×¥·¥ç¥ó¤¬¥Ñ¡¼¥º¤µ¤ì¡¢ -Ãæ¿È¤Î¸Æ¤Ó¤À¤·²Äǽ¤Ê¥Þ¥¯¥í¤Ç¤¢¤ë +に与えられたオプションがパーズされ、 +中身の呼びだし可能なマクロである .Ql \&Fl -¤¬¸Æ¤Ð¤ì¡¢°ú¿ô¤Ç¤¢¤ë +が呼ばれ、引数である .Ql s -¤ËÂФ·¤ÆºîÍѤ¹¤ë¡£¤½¤·¤Æ¼¡¤ËÃæ¿È¤Î¸Æ¤Ó¤À¤·²Äǽ¤Ê¥Þ¥¯¥í +に対して作用する。そして次に中身の呼びだし可能なマクロ .Ql \&Ar -¤¬¸Æ¤Ð¤ì¡¢°ú¿ô¤Ç¤¢¤ë +が呼ばれ、引数である .Ql file -¤ËºîÍѤ¹¤ë¡£¸Æ¤Ó¤À¤·²Äǽ¤Ç¤¢¤ë¤¬¥Ñ¡¼¥¹¤µ¤ì¤Ê¤¤¥Þ¥¯¥í¤ä¡¢ -¤½¤ÎµÕ¤Î¥Þ¥¯¥í¤â¸ºß¤¹¤ë¡£¤³¤Î¤è¤¦¤Ê¥Þ¥¯¥í¤Ï°Ê²¼¤Î +に作用する。呼びだし可能であるがパースされないマクロや、 +その逆のマクロも存在する。このようなマクロは以下の .Em parsed -¥«¥é¥à¤ä +カラムや .Em callable -¥«¥é¥à¤Ç¼¨¤¹¡£ +カラムで示す。 .Pp -Æä˵­½Ò¤¬¤Ê¤±¤ì¤Ð¡¢¥Þ¥Ë¥å¥¢¥ë¥É¥á¥¤¥ó¥Þ¥¯¥í¤Ï¶¦Ä̤νñ¼°¤ò¤È¤ë: +特に記述がなければ、マニュアルドメインマクロは共通の書式をとる: .Pp .Dl \&.Va argument [\ .\ ,\ ;\ :\ (\ )\ [\ ]\ argument \...\ ] .Pp -.Sy Ãí°Õ : -¶çÆÉʸ»ú (punctuation character) ¤Î³«¤­¡¦ÊĤ¸¤Ï¡¢ -¤½¤ì¤é¤¬°ìÅÙ¤Ëñ°ì¤Îʸ»ú¤Ç¸½¤ì¤¿¾ì¹ç¤Î¤ß¤½¤Î¤è¤¦¤Ë²ò¼á¤µ¤ì¤ë¡£ -ʸ»úÎó +.Sy 注意 : +句読文字 (punctuation character) の開き・閉じは、 +それらが一度に単一の文字で現れた場合のみそのように解釈される。 +文字列 .Ql ")," -¤Ï¡¢¶çÆɶèÀÚ¤ê¤È¤Ï¤ß¤Ê¤µ¤ì¤º¡¢¤½¤ÎÁ°¤Ë¶õÇòʸ»ú¤¬¤¢¤ì¤Ð -¤½¤Îʸ»ú¤È¤È¤â¤Ë¡¢¤Þ¤¿¸Æ¤Ó½Ð¤·¤¿¥Þ¥¯¥í¤¬ÍѤ¤¤ë¥Õ¥©¥ó¥È¤Ç½ÐÎϤµ¤ì¤ë¡£ -°ú¿ô¥ê¥¹¥È +は、句読区切りとはみなされず、その前に空白文字があれば +その文字とともに、また呼び出したマクロが用いるフォントで出力される。 +引数リスト .Ql "] ) ," -¤Ï 3 ¤Ä¤ÎϢ³¤·¤¿ÊĤ¸¶çÆÉʸ»ú¤È²ò¼á¤µ¤ì¡¢ -¤½¤ì¤¾¤ì¤ÎÁ°¤Ë¤¢¤ë¶õÇòʸ»ú¤Ï¡¢³Æʸ»ú¤ä (¤â¤·¤¢¤ì¤Ð) ¤½¤ÎÁ°¤Ë¤¢¤ë -°ú¿ô¤È¤Î´Ö¤Ë¤Ï½ÐÎϤµ¤ì¤Ê¤¤¡£ -Æüì¤Ê°ÕÌ£¤ò»ý¤Ä¶çÆÉʸ»ú¤Ï¡¢Ê¸»úÎó +は 3 つの連続した閉じ句読文字と解釈され、 +それぞれの前にある空白文字は、各文字や (もしあれば) その前にある +引数との間には出力されない。 +特殊な意味を持つ句読文字は、文字列 .Ql \e& -¤Ë¤è¤Ã¤Æ¥¨¥¹¥±¡¼¥×¤Ç¤­¤ë¡£ -Î㤨¤Ð°Ê²¼¤Îº¸¤Îʸ»úÎó¤Ï±¦¤Î¤è¤¦¤ËÊÑ´¹¤µ¤ì¤ë¡£ +によってエスケープできる。 +例えば以下の左の文字列は右のように変換される。 .Bl -tag -width "&.Ar file1\ , file2\ , file3\ )\ ." -offset indent .It Li "\&.Ar file1\ , file2\ , file3\ )\ ." -¢ª +→ .Ar file1 , file2 , file3 ) . .El .ne 1i -.Ss ¥Þ¥Ë¥å¥¢¥ë¥É¥á¥¤¥ó¥Þ¥¯¥í +.Ss マニュアルドメインマクロ .Bl -column "Name" "Parsed" Callable" -compact -.It Em ̾Á° Parsed Callable ÀâÌÀ -.It Li \&Ad Ta Yes Ta Yes Ta "¥¢¥É¥ì¥¹ (¤³¤Î¥Þ¥¯¥í¤Ï»È¤ï¤Ê¤¤Êý¤¬Îɤ¤)" -.It Li \&An Ta Yes Ta Yes Ta "Ãø¼Ô¤Î̾Á°" -.It Li \&Ar Ta Yes Ta Yes Ta "¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¿ô" -.It Li \&Cd Ta \&No Ta \&No Ta "ÀßÄê¤ÎÀë¸À (¥»¥¯¥·¥ç¥ó 4 ¤Î¤ß)" -.It Li \&Cm Ta Yes Ta Yes Ta "¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¿ô¤Î½¤Àµ»Ò" -.It Li \&Dv Ta Yes Ta Yes Ta "ÄêµÁºÑ¤ßÊÑ¿ô (¥½¡¼¥¹¥³¡¼¥É)" -.It Li \&Er Ta Yes Ta Yes Ta "¥¨¥é¡¼ÈÖ¹æ (¥½¡¼¥¹¥³¡¼¥É)" -.It Li \&Ev Ta Yes Ta Yes Ta "´Ä¶­ÊÑ¿ô" -.It Li \&Fa Ta Yes Ta Yes Ta "´Ø¿ô¤Î°ú¤­¿ô" -.It Li \&Fd Ta Yes Ta Yes Ta "´Ø¿ô¤ÎÀë¸À" -.It Li \&Fn Ta Yes Ta Yes Ta "´Ø¿ô¸Æ¤Ó¤À¤· (.Fo ¤È .Fc ¤â)" -.It Li \&Ic Ta Yes Ta Yes Ta "¥¤¥ó¥¿¥é¥¯¥Æ¥£¥Ö¤Ê¥³¥Þ¥ó¥É" -.It Li \&Li Ta Yes Ta Yes Ta "¥ê¥Æ¥é¥ë¤Ê¥Æ¥­¥¹¥È" -.It Li \&Nm Ta Yes Ta Yes Ta "¥³¥Þ¥ó¥É¤Î̾Á°" -.It Li \&Op Ta Yes Ta Yes Ta "¥ª¥×¥·¥ç¥ó (.Oo ¤È .Oc ¤â)" -.It Li \&Ot Ta Yes Ta Yes Ta "¸Å¤¤·Á¼°¤Î´Ø¿ô·¿ (Fortran ¤Î¤ß)." -.It Li \&Pa Ta Yes Ta Yes Ta "¥Ñ¥¹Ì¾¤Þ¤¿¤Ï¥Õ¥¡¥¤¥ë̾" -.It Li \&St Ta Yes Ta Yes Ta "ɸ½à (\-p1003.2, \-p1003.1, \-ansiC ¤Î¤É¤ì¤«)" -.It Li \&Va Ta Yes Ta Yes Ta "ÊÑ¿ô¤Î̾Á°" -.It Li \&Vt Ta Yes Ta Yes Ta "ÊÑ¿ô¤Î·¿ (Fortran ¤Î¤ß)" -.It Li \&Xr Ta Yes Ta Yes Ta "¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÎÁê¸ß»²¾È" +.It Em 名前 Parsed Callable 説明 +.It Li \&Ad Ta Yes Ta Yes Ta "アドレス (このマクロは使わない方が良い)" +.It Li \&An Ta Yes Ta Yes Ta "著者の名前" +.It Li \&Ar Ta Yes Ta Yes Ta "コマンドライン引数" +.It Li \&Cd Ta \&No Ta \&No Ta "設定の宣言 (セクション 4 のみ)" +.It Li \&Cm Ta Yes Ta Yes Ta "コマンドライン引数の修正子" +.It Li \&Dv Ta Yes Ta Yes Ta "定義済み変数 (ソースコード)" +.It Li \&Er Ta Yes Ta Yes Ta "エラー番号 (ソースコード)" +.It Li \&Ev Ta Yes Ta Yes Ta "環境変数" +.It Li \&Fa Ta Yes Ta Yes Ta "関数の引き数" +.It Li \&Fd Ta Yes Ta Yes Ta "関数の宣言" +.It Li \&Fn Ta Yes Ta Yes Ta "関数呼びだし (.Fo と .Fc も)" +.It Li \&Ic Ta Yes Ta Yes Ta "インタラクティブなコマンド" +.It Li \&Li Ta Yes Ta Yes Ta "リテラルなテキスト" +.It Li \&Nm Ta Yes Ta Yes Ta "コマンドの名前" +.It Li \&Op Ta Yes Ta Yes Ta "オプション (.Oo と .Oc も)" +.It Li \&Ot Ta Yes Ta Yes Ta "古い形式の関数型 (Fortran のみ)." +.It Li \&Pa Ta Yes Ta Yes Ta "パス名またはファイル名" +.It Li \&St Ta Yes Ta Yes Ta "標準 (\-p1003.2, \-p1003.1, \-ansiC のどれか)" +.It Li \&Va Ta Yes Ta Yes Ta "変数の名前" +.It Li \&Vt Ta Yes Ta Yes Ta "変数の型 (Fortran のみ)" +.It Li \&Xr Ta Yes Ta Yes Ta "マニュアルページの相互参照" .El -.Ss °ìÈ̥ƥ­¥¹¥È¥É¥á¥¤¥ó¥Þ¥¯¥í +.Ss 一般テキストドメインマクロ .Bl -column "Name" "Parsed" Callable" -compact -.It Em ̾Á° Parsed Callable ÀâÌÀ -.It Li \&%A Ta Yes Ta \&No Ta "»²¹Íʸ¸¥¤ÎÃø¼Ô" -.It Li \&%B Ta Yes Ta Yes Ta "»²¹Íʸ¸¥¤Î½ñÀÒ¥¿¥¤¥È¥ë" -.It Li \&%\&C Ta \&No Ta \&No Ta "»²¹Íʸ¸¥¤Î½ÐÈÇÃÏ (³¹)" -.It Li \&%\&D Ta \&No Ta \&No Ta "»²¹Íʸ¸¥¤ÎÆüÉÕ" -.It Li \&%J Ta Yes Ta Yes Ta "»²¹Íʸ¸¥¤Î»¨»ï̾" -.It Li \&%N Ta \&No Ta \&No Ta "»²¹Íʸ¸¥¤Î¹æ¿ô" -.It Li \&%\&O Ta \&No Ta \&No Ta "»²¹Íʸ¸¥¤ÎÊä½õ¾ðÊó" -.It Li \&%P Ta \&No Ta \&No Ta "»²¹Íʸ¸¥¤Î¥Ú¡¼¥¸" -.It Li \&%R Ta \&No Ta \&No Ta "»²¹Íʸ¸¥¤Î¥ê¥Ý¡¼¥È̾" -.It Li \&%T Ta Yes Ta Yes Ta "»²¹Íʸ¸¥¤Îµ­»ö¥¿¥¤¥È¥ë" -.It Li \&%V Ta \&No Ta \&No Ta "»²¹Íʸ¸¥¤Î´¬¿ô" -.It Li \&Ac Ta Yes Ta Yes Ta "¥¢¥ó¥°¥ë¥¯¥©¡¼¥È¤ÎÊĤ¸" -.It Li \&Ao Ta Yes Ta Yes Ta "¥¢¥ó¥°¥ë¥¯¥©¡¼¥È¤Î³«¤­" -.It Li \&Ap Ta Yes Ta Yes Ta "¥¢¥Ý¥¹¥È¥í¥Õ¥£" -.It Li \&Aq Ta Yes Ta Yes Ta "¥¢¥ó¥°¥ë¥¯¥©¡¼¥È" +.It Em 名前 Parsed Callable 説明 +.It Li \&%A Ta Yes Ta \&No Ta "参考文献の著者" +.It Li \&%B Ta Yes Ta Yes Ta "参考文献の書籍タイトル" +.It Li \&%\&C Ta \&No Ta \&No Ta "参考文献の出版地 (街)" +.It Li \&%\&D Ta \&No Ta \&No Ta "参考文献の日付" +.It Li \&%J Ta Yes Ta Yes Ta "参考文献の雑誌名" +.It Li \&%N Ta \&No Ta \&No Ta "参考文献の号数" +.It Li \&%\&O Ta \&No Ta \&No Ta "参考文献の補助情報" +.It Li \&%P Ta \&No Ta \&No Ta "参考文献のページ" +.It Li \&%R Ta \&No Ta \&No Ta "参考文献のリポート名" +.It Li \&%T Ta Yes Ta Yes Ta "参考文献の記事タイトル" +.It Li \&%V Ta \&No Ta \&No Ta "参考文献の巻数" +.It Li \&Ac Ta Yes Ta Yes Ta "アングルクォートの閉じ" +.It Li \&Ao Ta Yes Ta Yes Ta "アングルクォートの開き" +.It Li \&Ap Ta Yes Ta Yes Ta "アポストロフィ" +.It Li \&Aq Ta Yes Ta Yes Ta "アングルクォート" .It Li \&At Ta \&No Ta \&No Ta Tn "AT&T UNIX" -.It Li \&Bc Ta Yes Ta Yes Ta "¥Ö¥é¥±¥Ã¥È¥¯¥©¡¼¥È¤ÎÊĤ¸" -.It Li \&Bf Ta \&No Ta \&No Ta "¥Õ¥©¥ó¥È¥â¡¼¥É¤Î³«»Ï" -.It Li \&Bo Ta Yes Ta Yes Ta "¥Ö¥é¥±¥Ã¥È¥¯¥©¡¼¥È¤Î³«¤­" -.It Li \&Bq Ta Yes Ta Yes Ta "¥Ö¥é¥±¥Ã¥È¥¯¥©¡¼¥È" +.It Li \&Bc Ta Yes Ta Yes Ta "ブラケットクォートの閉じ" +.It Li \&Bf Ta \&No Ta \&No Ta "フォントモードの開始" +.It Li \&Bo Ta Yes Ta Yes Ta "ブラケットクォートの開き" +.It Li \&Bq Ta Yes Ta Yes Ta "ブラケットクォート" .It Li \&Bx Ta Yes Ta Yes Ta Bx . -.It Li \&Db Ta \&No Ta \&No Ta "¥Ç¥Ð¥Ã¥° (¥Ç¥Õ¥©¥ë¥È¤Ï \\*qoff\\*q)" -.It Li \&Dc Ta Yes Ta Yes Ta "¥À¥Ö¥ë¥¯¥©¡¼¥È¤ÎÊĤ¸" -.It Li \&Do Ta Yes Ta Yes Ta "¥À¥Ö¥ë¥¯¥©¡¼¥È¤Î³«¤­" -.It Li \&Dq Ta Yes Ta Yes Ta "¥À¥Ö¥ë¥¯¥©¡¼¥È" -.It Li \&Ec Ta Yes Ta Yes Ta "¥¨¥ó¥¯¥í¡¼¥ºÊ¸»úÎó°úÍѤÎÊĤ¸" -.It Li \&Ef Ta \&No Ta \&No Ta "¥Õ¥©¥ó¥È¥â¡¼¥É¤Î½ªÎ»" -.It Li \&Em Ta Yes Ta Yes Ta "¶¯Ä´ (traditional English)." -.It Li \&Eo Ta Yes Ta Yes Ta "¥¨¥ó¥¯¥í¡¼¥ºÊ¸»úÎó°úÍѤ㫤­" +.It Li \&Db Ta \&No Ta \&No Ta "デバッグ (デフォルトは \\*qoff\\*q)" +.It Li \&Dc Ta Yes Ta Yes Ta "ダブルクォートの閉じ" +.It Li \&Do Ta Yes Ta Yes Ta "ダブルクォートの開き" +.It Li \&Dq Ta Yes Ta Yes Ta "ダブルクォート" +.It Li \&Ec Ta Yes Ta Yes Ta "エンクローズ文字列引用の閉じ" +.It Li \&Ef Ta \&No Ta \&No Ta "フォントモードの終了" +.It Li \&Em Ta Yes Ta Yes Ta "強調 (traditional English)." +.It Li \&Eo Ta Yes Ta Yes Ta "エンクローズ文字列引用の開き" .It Li \&Fx Ta \&No Ta \&No Ta Tn "FreeBSD operating system" -.It Li \&No Ta Yes Ta Yes Ta "Ä̾ï¤Î¥Æ¥­¥¹¥È (¸ú²Ì¤Ê¤·)" -.It Li \&Ns Ta Yes Ta Yes Ta "¥¹¥Ú¡¼¥¹Ìµ¤·" -.It Li \&Pc Ta Yes Ta Yes Ta "³ç¸Ì¥¯¥©¡¼¥È¤ÎÊĤ¸" -.It Li \&Pf Ta Yes Ta \&No Ta "Á°ÃÖʸ»ú" -.It Li \&Po Ta Yes Ta Yes Ta "³ç¸Ì¥¯¥©¡¼¥È¤Î³«¤­" -.It Li \&Pq Ta Yes Ta Yes Ta "³ç¸Ì¥¯¥©¡¼¥È" -.It Li \&Qc Ta Yes Ta Yes Ta "¥À¥Ö¥ë¥¹¥È¥ì¡¼¥È¥¯¥©¡¼¥È¤ÎÊĤ¸" -.It Li \&Ql Ta Yes Ta Yes Ta "¥¯¥©¡¼¥È¤µ¤ì¤¿¥ê¥Æ¥é¥ë" -.It Li \&Qo Ta Yes Ta Yes Ta "¥À¥Ö¥ë¥¹¥È¥ì¡¼¥È¥¯¥©¡¼¥È¤ÎÊĤ¸" -.It Li \&Qq Ta Yes Ta Yes Ta "¥À¥Ö¥ë¥¹¥È¥ì¡¼¥È¥¯¥©¡¼¥È¤ÎÊĤ¸" -.It Li \&Re Ta \&No Ta \&No Ta "»²¹Íʸ¸¥¤Î½ªÎ»" -.It Li \&Rs Ta \&No Ta \&No Ta "»²¹Íʸ¸¥¤Î³«»Ï" -.It Li \&Rv Ta \&No Ta \&No Ta "ÊÖ¤êÃÍ (¥»¥¯¥·¥ç¥ó 2, 3 ¤Î¤ß)" -.It Li \&Sc Ta Yes Ta Yes Ta "¥·¥ó¥°¥ë¥¯¥©¡¼¥È¤ÎÊĤ¸" -.It Li \&So Ta Yes Ta Yes Ta "¥·¥ó¥°¥ë¥¯¥©¡¼¥È¤Î³«¤­" -.It Li \&Sq Ta Yes Ta Yes Ta "¥·¥ó¥°¥ë¥¯¥©¡¼¥È" -.It Li \&Sm Ta \&No Ta \&No Ta "¥¹¥Ú¡¼¥¹¥â¡¼¥É (¥Ç¥Õ¥©¥ë¥È¤Ï \\*qon\\*q)" -.It Li \&Sx Ta Yes Ta Yes Ta "¥»¥¯¥·¥ç¥ó¤ÎÁê¸ß»²¾È" -.It Li \&Sy Ta Yes Ta Yes Ta "¥·¥ó¥Ü¥ê¥Ã¥¯ (traditional English)." -.It Li \&Tn Ta Yes Ta Yes Ta "Trade ¤Þ¤¿¤Ï·¿Ì¾ (small Caps)." +.It Li \&No Ta Yes Ta Yes Ta "通常のテキスト (効果なし)" +.It Li \&Ns Ta Yes Ta Yes Ta "スペース無し" +.It Li \&Pc Ta Yes Ta Yes Ta "括弧クォートの閉じ" +.It Li \&Pf Ta Yes Ta \&No Ta "前置文字" +.It Li \&Po Ta Yes Ta Yes Ta "括弧クォートの開き" +.It Li \&Pq Ta Yes Ta Yes Ta "括弧クォート" +.It Li \&Qc Ta Yes Ta Yes Ta "ダブルストレートクォートの閉じ" +.It Li \&Ql Ta Yes Ta Yes Ta "クォートされたリテラル" +.It Li \&Qo Ta Yes Ta Yes Ta "ダブルストレートクォートの閉じ" +.It Li \&Qq Ta Yes Ta Yes Ta "ダブルストレートクォートの閉じ" +.It Li \&Re Ta \&No Ta \&No Ta "参考文献の終了" +.It Li \&Rs Ta \&No Ta \&No Ta "参考文献の開始" +.It Li \&Rv Ta \&No Ta \&No Ta "返り値 (セクション 2, 3 のみ)" +.It Li \&Sc Ta Yes Ta Yes Ta "シングルクォートの閉じ" +.It Li \&So Ta Yes Ta Yes Ta "シングルクォートの開き" +.It Li \&Sq Ta Yes Ta Yes Ta "シングルクォート" +.It Li \&Sm Ta \&No Ta \&No Ta "スペースモード (デフォルトは \\*qon\\*q)" +.It Li \&Sx Ta Yes Ta Yes Ta "セクションの相互参照" +.It Li \&Sy Ta Yes Ta Yes Ta "シンボリック (traditional English)." +.It Li \&Tn Ta Yes Ta Yes Ta "Trade または型名 (small Caps)." .It Li \&Ux Ta Yes Ta Yes Ta Ux -.It Li \&Xc Ta Yes Ta Yes Ta "³ÈÄ¥°ú¿ô¥ê¥¹¥È¤ÎÊĤ¸" -.It Li \&Xo Ta Yes Ta Yes Ta "³ÈÄ¥°ú¿ô¥ê¥¹¥È¤Î³«¤­" +.It Li \&Xc Ta Yes Ta Yes Ta "拡張引数リストの閉じ" +.It Li \&Xo Ta Yes Ta Yes Ta "拡張引数リストの開き" .El .\" .It Sy \&Hf Ta \&No Ta \&No Ta "Include file with header" .Pp .Ql q -¤Ç½ª¤ï¤ë̾Á°¤Î¥Þ¥¯¥í¤Ï¡¢°ú¿ô¥ê¥¹¥È¤Î»Ä¤ê¤Î¹àÌܤò¥¯¥©¡¼¥È¤¹¤ë¡£ +で終わる名前のマクロは、引数リストの残りの項目をクォートする。 .Ql o -¤Ç½ª¤ï¤ë̾Á°¤Î¥Þ¥¯¥í¤Ï°ì¹Ô°Ê¾å¤Ë¤ï¤¿¤ëÆþÎϤΥ¯¥©¡¼¥È¤ò³«»Ï¤·¡¢ -¤³¤ì¤ÏÂбþ¤¹¤ë̾Á°¤Î +で終わる名前のマクロは一行以上にわたる入力のクォートを開始し、 +これは対応する名前の .Ql c -¤Ç¤ª¤ï¤ë̾Á°¤Î¥Þ¥¯¥í¤Ç½ªÎ»¤¹¤ë¡£ -°Ï¤ß¥Þ¥¯¥í¤Ï¥Í¥¹¥È¤Ç¤­¡¢°ú¿ô¤Ï 8 ¤Ä¤Þ¤Ç¼è¤ì¤ë¡£ +でおわる名前のマクロで終了する。 +囲みマクロはネストでき、引数は 8 つまで取れる。 .Pp -Ãí°Õ: ³ÈÄ¥°ú¿ô¥ê¥¹¥È¥Þ¥¯¥í +注意: 拡張引数リストマクロ .Pf ( Ql \&.Xo , .Ql \&.Xc ) -¤ª¤è¤Ó´Ø¿ô¤Î°Ï¤ß¥Þ¥¯¥í +および関数の囲みマクロ .Pf ( Ql \&.Fo , .Ql \&.Fc ) -¤ÏÊѧ¤Ç¤¢¤ë¡£ -³ÈÄ¥¥ê¥¹¥È¥Þ¥¯¥í¤Ï¥Þ¥¯¥í¤Î°ú¿ô¤¬ +は変則である。 +拡張リストマクロはマクロの引数が .Xr troff -¤ÎÀ©¸Â¤Ç¤¢¤ë 9 ¸Ä¤ò±Û¤¨¤ë¤È¤­¤ËÍѤ¤¤é¤ì¤ë¡£ +の制限である 9 個を越えるときに用いられる。 .Pp -UR ¥Þ¥¯¥í (URI/URL ¥Ï¥¤¥Ñ¡¼¥Æ¥­¥¹¥È»²¾È¤Î³«»Ï), UE ¥Þ¥¯¥í (½ªÎ»), -UN ¥Þ¥¯¥í (»²¾ÈÍÑ¥¿¡¼¥²¥Ã¥È¤Î»ØÄê) ¤âÍøÍѤǤ­¤ë¡£ -¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ë´Ø¤¹¤ë¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï +UR マクロ (URI/URL ハイパーテキスト参照の開始), UE マクロ (終了), +UN マクロ (参照用ターゲットの指定) も利用できる。 +これらのマクロに関するより詳しい情報は .Xr man 7 -¤ò¸«¤è¡£ +を見よ。 .\" The following does not apply on Linux: -.\".Sh ÀßÄê -.\"¥µ¥¤¥ÈÆÃÍ­¤Î¥Þ¥¯¥í¥Ñ¥Ã¥±¡¼¥¸¤ÎÀßÄê¤Ë´Ø¤·¤Æ¤Ï¡¢ +.\".Sh 設定 +.\"サイト特有のマクロパッケージの設定に関しては、 .\".Pa /usr/src/share/tmac/README -.\"¥Õ¥¡¥¤¥ë¤ò¸«¤è¡£ -.Sh ¥Õ¥¡¥¤¥ë +.\"ファイルを見よ。 +.Sh ファイル .Bl -tag -width "tmac.doc-ditroff" -compact .It Pa doc.tmac -¥Þ¥Ë¥å¥¢¥ë¥É¥á¥¤¥ó¥Þ¥¯¥í¤È°ìÈ̥ƥ­¥¹¥È¥É¥á¥¤¥ó¥Þ¥¯¥í¡£ +マニュアルドメインマクロと一般テキストドメインマクロ。 .It Pa tmac/doc-common -¶¦Ä̤ι½Â¤¥Þ¥¯¥í¤ÈÄêµÁ¡£ +共通の構造マクロと定義。 .It Pa tmac/doc-nroff -¥µ¥¤¥È°Í¸¤Î +サイト依存の .Xr nroff -¥¹¥¿¥¤¥ë¥Õ¥¡¥¤¥ë¡£ +スタイルファイル。 .It Pa tmac/doc-ditroff -¥µ¥¤¥È°Í¸¤Î +サイト依存の .Xr troff -¥¹¥¿¥¤¥ë¥Õ¥¡¥¤¥ë¡£ +スタイルファイル。 .It Pa tmac/doc-syms -ÆüìÄêµÁ (ɸ½à¥Þ¥¯¥í¤Ê¤É)¡£ +特殊定義 (標準マクロなど)。 .El -.Sh ´ØÏ¢¹àÌÜ +.Sh 関連項目 .Xr groff_mdoc 7 , .Xr mdoc.samples 7 , .Xr man 7 , diff --git a/release/man7/mq_overview.7 b/release/man7/mq_overview.7 index 2912b7d1..8d2547b0 100644 --- a/release/man7/mq_overview.7 +++ b/release/man7/mq_overview.7 @@ -29,92 +29,92 @@ .\" Updated 2009-02-23, Akihiro MOTOKI , LDP v3.19 .\" Updated 2010-04-11, Akihiro MOTOKI , LDP v3.24 .\" -.\"WORD: message queue descriptor ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò»Ò -.\"WORD: message queue description ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò +.\"WORD: message queue descriptor メッセージキュー記述子 +.\"WORD: message queue description メッセージキュー記述 .\" .TH MQ_OVERVIEW 7 2009-09-27 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -mq_overview \- POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î³µÍ× -.SH ÀâÌÀ -POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤ò»ÈÍѤ¹¤ë¤È¡¢¥×¥í¥»¥¹´Ö¤Ç -¥á¥Ã¥»¡¼¥¸¤Î·Á¤Ç¤Î¥Ç¡¼¥¿¤Î¤ä¤ê¼è¤ê¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î API ¤Ï System V ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î API +.SH 名前 +mq_overview \- POSIX メッセージキューの概要 +.SH 説明 +POSIX メッセージキューを使用すると、プロセス間で +メッセージの形でのデータのやり取りを行うことができる。 +この API は System V メッセージキューの API .RB ( msgget (2), .BR msgsnd (2), .BR msgrcv (2) -¤Ê¤É) ¤È¤Ï°Û¤Ê¤ë¤â¤Î¤À¤¬¡¢Æ±Íͤε¡Ç½¤òÄ󶡤¹¤ë¡£ +など) とは異なるものだが、同様の機能を提供する。 -¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤ÎºîÀ®¤È¥ª¡¼¥×¥ó¤Ï +メッセージキューの作成とオープンは .BR mq_open (3) -¤ò»È¤Ã¤Æ¹Ô¤¦¡£¤³¤Î´Ø¿ô¤Ï -.I ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò»Ò (message queue descriptor) +を使って行う。この関数は +.I メッセージキュー記述子 (message queue descriptor) .RI ( mqd_t ) -¤òÊÖ¤¹¡£¤³¤ì°Ê¹ß¤Î¥³¡¼¥ë¤Ç¤Ï¡¢¥ª¡¼¥×¥ó¤µ¤ì¤¿¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ï -.I ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò»Ò -¤ò»È¤Ã¤Æ»²¾È¤µ¤ì¤ë¡£ -³Æ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ï +を返す。これ以降のコールでは、オープンされたメッセージキューは +.I メッセージキュー記述子 +を使って参照される。 +各メッセージキューは .I /somename -¤Î·Á¤Î̾Á°¤Ç¶èÊ̤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤½¤Î̾Á°¤Ï¡¢ºÇÂç¤Ç +の形の名前で区別することができる。 +その名前は、最大で .B NAME_MAX -(¤¹¤Ê¤ï¤Á 255) ʸ»ú¤Î NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ç¡¢ -¥¹¥é¥Ã¥·¥å¤Ç»Ï¤Þ¤ê¡¢¥¹¥é¥Ã¥·¥å°Ê³°¤Îʸ»ú¤¬ 1 ʸ»ú°Ê¾å³¤¯·Á¼°¤Ç¤¢¤ë¡£ +(すなわち 255) 文字の NULL 終端された文字列で、 +スラッシュで始まり、スラッシュ以外の文字が 1 文字以上続く形式である。 .BR mq_open (3) -¤ËƱ¤¸Ì¾Á°¤òÅϤ¹¤³¤È¤Ç¡¢2¤Ä¤Î¥×¥í¥»¥¹¤ÇƱ°ì¤Î¥­¥å¡¼¤ò -Áàºî¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +に同じ名前を渡すことで、2つのプロセスで同一のキューを +操作することができる。 -¥á¥Ã¥»¡¼¥¸¤Î¥­¥å¡¼¤Ø¤ÎÁ÷¼õ¿®¤Ï +メッセージのキューへの送受信は .BR mq_send (3) -¤È +と .BR mq_receive (3) -¤ò»È¤Ã¤Æ¹Ô¤¦¡£¥×¥í¥»¥¹¤¬¥­¥å¡¼¤Î»ÈÍѤò½ª¤¨¤ë¤È¤­¤Ë¤Ï¡¢ +を使って行う。プロセスがキューの使用を終えるときには、 .BR mq_close (3) -¤ò»È¤Ã¤Æ¥­¥å¡¼¤ò¥¯¥í¡¼¥º¤¹¤ë¡£¥­¥å¡¼¤¬¤â¤Ï¤äÉÔÍפȤʤ俾ì¹ç¤Ë¤Ï¡¢ +を使ってキューをクローズする。キューがもはや不要となった場合には、 .BR mq_unlink (3) -¤ò»È¤Ã¤Æ¥­¥å¡¼¤òºï½ü¤Ç¤­¤ë¡£¥­¥å¡¼¤Î°À­¤Ï +を使ってキューを削除できる。キューの属性は .BR mq_getattr (3) -¤Ç¼èÆÀ¤Ç¤­¡¢ (À©¸Â¤Ï¤¢¤ë¤¬) +で取得でき、 (制限はあるが) .BR mq_setattr (3) -¤ÇÊѹ¹¤Ç¤­¤ë¡£ +で変更できる。 .BR mq_notify (3) -¤ò»È¤¦¤³¤È¤Ç¡¢¶õ¤Î¥­¥å¡¼¤Ø¤Î¥á¥Ã¥»¡¼¥¸ÅþÃå¤òÈóƱ´ü¤Ç -ÄÌÃΤ¹¤ë¤è¤¦¤ËÍ׵᤹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +を使うことで、空のキューへのメッセージ到着を非同期で +通知するように要求することもできる。 -¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò»Ò¤Ï -.I "¥ª¡¼¥×¥ó¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò (open message queue description)" -¤Ø¤Î»²¾È¤Ç¤¢¤ë +メッセージキュー記述子は +.I "オープンメッセージキュー記述 (open message queue description)" +への参照である .RB ( open (2) -¤â»²¾È)¡£ +も参照)。 .BR fork (2) -¼Â¹Ô¸å¤Ï¡¢»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò»Ò¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£ -¤³¤ì¤é¤Îµ­½Ò»Ò¤Ï¡¢¿Æ¥×¥í¥»¥¹¤ÎÂбþ¤¹¤ëµ­½Ò»Ò¤ÈƱ¤¸¥ª¡¼¥×¥ó¥á¥Ã¥»¡¼¥¸¥­¥å¡¼ -µ­½Ò¤ò»²¾È¤·¤Æ¤¤¤ë¡£¿Æ¥×¥í¥»¥¹¤È»Ò¥×¥í¥»¥¹¤ÎÂбþ¤¹¤ëµ­½Ò»Ò¤Ï¡¢¥Õ¥é¥° +実行後は、子プロセスは親プロセスのメッセージキュー記述子のコピーを継承する。 +これらの記述子は、親プロセスの対応する記述子と同じオープンメッセージキュー +記述を参照している。親プロセスと子プロセスの対応する記述子は、フラグ .RI ( mq_flags ) -¤ò¶¦Í­¤¹¤ë¡£¤Ê¤¼¤Ê¤é¡¢¥Õ¥é¥°¤Ï¥ª¡¼¥×¥ó¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò¤Ë -´ØÏ¢ÉÕ¤±¤é¤ì¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£ +を共有する。なぜなら、フラグはオープンメッセージキュー記述に +関連付けられているからである。 -³Æ¥á¥Ã¥»¡¼¥¸¤Ë¤Ï¤½¤ì¤¾¤ì -.I Í¥ÀèÅÙ (priority) -¤¬¤¢¤ê¡¢¥á¥Ã¥»¡¼¥¸¤Î¼õ¿®¥×¥í¥»¥¹¤Ø¤ÎÇÛÁ÷¤Ï¾ï¤Ë -Í¥ÀèÅ٤ι⤤¥á¥Ã¥»¡¼¥¸¤«¤é½ç¤Ë¹Ô¤ï¤ì¤ë¡£ -¥á¥Ã¥»¡¼¥¸¤ÎÍ¥ÀèÅÙ¤Ï 0 (ÄãÍ¥Àè) ¤«¤é +各メッセージにはそれぞれ +.I 優先度 (priority) +があり、メッセージの受信プロセスへの配送は常に +優先度の高いメッセージから順に行われる。 +メッセージの優先度は 0 (低優先) から .I sysconf(_SC_MQ_PRIO_MAX)\ -\ 1 -(¹âÍ¥Àè) ¤ÎÃͤò»ý¤Ä¡£ -Linux ¤Ç¤Ï¡¢ +(高優先) の値を持つ。 +Linux では、 .I sysconf(_SC_MQ_PRIO_MAX) -¤Ï 32768 ¤òÊÖ¤¹¤¬¡¢ -POSIX.1-2001 ¤ÇÍ׵ᤵ¤ì¤Æ¤¤¤ë¤Î¤Ï 0 ¤«¤é 31 ¤Þ¤Ç¤ÎÍ¥ÀèÅÙ¤ò -¼ÂÁõ¤¹¤ë¤³¤È¤À¤±¤Ç¤¢¤ê¡¢¼ÂÁõ¤Ë¤è¤Ã¤Æ¤Ï¤³¤ÎÈϰϤÎÍ¥ÀèÅÙ¤·¤« -Âбþ¤·¤Æ¤¤¤Ê¤¤¡£ +は 32768 を返すが、 +POSIX.1-2001 で要求されているのは 0 から 31 までの優先度を +実装することだけであり、実装によってはこの範囲の優先度しか +対応していない。 .PP -¤³¤ÎÀá¤Î»Ä¤ê¤Ç¤Ï¡¢POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î Linux ¤Î¼ÂÁõ¤Î¾ÜºÙ -¤Ë¤Ä¤¤¤ÆÀâÌÀ¤¹¤ë¡£ -.SS ¥é¥¤¥Ö¥é¥ê¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤È¥·¥¹¥Æ¥à¥³¡¼¥ë -¤Û¤È¤ó¤É¤Î¾ì¹ç¡¢¾åµ­¤Î +この節の残りでは、POSIX メッセージキューの Linux の実装の詳細 +について説明する。 +.SS ライブラリインタフェースとシステムコール +ほとんどの場合、上記の .B mq_*() -¥é¥¤¥Ö¥é¥ê¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¡¢Æ±¤¸Ì¾Á°¤Î²¼°ÌÁؤΥ·¥¹¥Æ¥à¥³¡¼¥ë¤ò -»È¤Ã¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£¤³¤ÎÏÈÁȤߤˤ¢¤Æ¤Ï¤Þ¤é¤Ê¤¤¤â¤Î¤ò -°Ê²¼¤Îɽ¤Ë¼¨¤¹¡£ +ライブラリインタフェースは、同じ名前の下位層のシステムコールを +使って実装されている。この枠組みにあてはまらないものを +以下の表に示す。 .in +4n .TS lB lB @@ -132,92 +132,92 @@ mq_timedsend(3) mq_timedsend(2) mq_unlink(3) mq_unlink(2) .TE .in -.SS ¥Ð¡¼¥¸¥ç¥ó -Linux ¤Ç¤Ï POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ï¥«¡¼¥Í¥ë 2.6.6 °Ê¹ß¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -glibc ¤Ç¤Ï¥Ð¡¼¥¸¥ç¥ó 2.3.4 °Ê¹ß¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -.SS ¥«¡¼¥Í¥ë¤ÎÀßÄê -POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î¥µ¥Ý¡¼¥È¤Ï¡¢¥«¡¼¥Í¥ë¤ÎÀßÄê (configuration) -¥ª¥×¥·¥ç¥ó +.SS バージョン +Linux では POSIX メッセージキューはカーネル 2.6.6 以降でサポートされている。 +glibc ではバージョン 2.3.4 以降でサポートされている。 +.SS カーネルの設定 +POSIX メッセージキューのサポートは、カーネルの設定 (configuration) +オプション .B CONFIG_POSIX_MQUEUE -¤ÇÀßÄê²Äǽ¤Ç¤¢¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤ÏÍ­¸ú¤Ç¤¢¤ë¡£ -.SS »ý³À­ -POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ï¥«¡¼¥Í¥ëÆâ¤ÇÊÝ»ý¤µ¤ì¤ë¡£ +で設定可能である。このオプションはデフォルトでは有効である。 +.SS 持続性 +POSIX メッセージキューはカーネル内で保持される。 .BR mq_unlink (3) -¤Çºï½ü¤µ¤ì¤Ê¤±¤ì¤Ð¡¢¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ï -¥·¥¹¥Æ¥à¤¬¥·¥ã¥Ã¥È¥À¥¦¥ó¤µ¤ì¤ë¤Þ¤Ç¸ºß¤·Â³¤±¤ë¡£ -.SS ¥ê¥ó¥¯ -POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼ API ¤ò»ÈÍѤ·¤¿¥×¥í¥°¥é¥à¤Ï +で削除されなければ、メッセージキューは +システムがシャットダウンされるまで存在し続ける。 +.SS リンク +POSIX メッセージキュー API を使用したプログラムは .I cc \-lrt -¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¡¢¥ê¥¢¥ë¥¿¥¤¥à¥é¥¤¥Ö¥é¥ê +でコンパイルし、リアルタイムライブラリ .I librt -¤È¥ê¥ó¥¯¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SS /proc ¥¤¥ó¥¿¥Õ¥§¡¼¥¹ -°Ê²¼¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò»È¤Ã¤Æ¡¢POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤¬¾ÃÈñ¤¹¤ë¥«¡¼¥Í¥ë -¥á¥â¥ê¤ÎÎ̤òÀ©¸Â¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +とリンクしなければならない。 +.SS /proc インタフェース +以下のインタフェースを使って、POSIX メッセージキューが消費するカーネル +メモリの量を制限することができる。 .TP .I /proc/sys/fs/mqueue/msg_max -¤³¤Î¥Õ¥¡¥¤¥ë¤ò»È¤Ã¤Æ¡¢°ì¤Ä¤Î¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤ë¥á¥Ã¥»¡¼¥¸¤ÎºÇÂç¿ô¤Î -¾å¸ÂÃͤò»²¾È¤·¤¿¤êÊѹ¹¤·¤¿¤ê¤Ç¤­¤ë¡£¤³¤ÎÃͤϡ¢ +このファイルを使って、一つのキューに入れられるメッセージの最大数の +上限値を参照したり変更したりできる。この値は、 .BR mq_open (3) -¤ËÅϤ¹ +に渡す .I attr\->mq_maxmsg -°ú¤­¿ô¤ËÂФ¹¤ë¾å¸ÂÃͤȤ·¤Æµ¡Ç½¤¹¤ë¡£ +引き数に対する上限値として機能する。 .I msg_max -¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 10 ¤Ç¡¢ -ºÇ¾®ÃÍ¤Ï 1 (2.6.28 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï 10) ¤Ç¤¢¤ë¡£ -¾å¸Â¤Ï¡ÖËä¤á¹þ¤ß¤Î¸ÇÄêÃÍ¡× +のデフォルト値は 10 で、 +最小値は 1 (2.6.28 より前のカーネルでは 10) である。 +上限は「埋め込みの固定値」 .RB ( HARD_MAX ) -¤Ç +で .IR "(131072\ /\ sizeof(void\ *))" -(Linux/86 ¤Ç¤Ï 32768) ¤Ç¤¢¤ë¡£ -¤³¤Î¾å¸Â¤ÏÆø¢¥×¥í¥»¥¹ +(Linux/86 では 32768) である。 +この上限は特権プロセス .RB ( CAP_SYS_RESOURCE ) -¤Ç¤Ï̵»ë¤µ¤ì¤ë¤¬¡¢Ëä¤á¹þ¤ß¤Î¸ÇÄêÃͤˤè¤ë¾å¸Â¤Ï -¤É¤ó¤Ê¾ì¹ç¤Ë¤Ç¤âŬÍѤµ¤ì¤ë¡£ +では無視されるが、埋め込みの固定値による上限は +どんな場合にでも適用される。 .TP .I /proc/sys/fs/mqueue/msgsize_max -¤³¤Î¥Õ¥¡¥¤¥ë¤ò»È¤Ã¤Æ¡¢¥á¥Ã¥»¡¼¥¸¤ÎºÇÂ祵¥¤¥º¤Î¾å¸ÂÃͤò -»²¾È¤·¤¿¤êÊѹ¹¤·¤¿¤ê¤Ç¤­¤ë¡£ -¤³¤ÎÃͤϡ¢ +このファイルを使って、メッセージの最大サイズの上限値を +参照したり変更したりできる。 +この値は、 .BR mq_open (3) -¤ËÅϤ¹ +に渡す .I attr\->mq_msgsize -°ú¤­¿ô¤ËÂФ¹¤ë¾å¸ÂÃͤȤ·¤Æµ¡Ç½¤¹¤ë¡£ +引き数に対する上限値として機能する。 .I msgsize_max -¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 8192 ¥Ð¥¤¥È¤Ç¡¢ -ºÇ¾®ÃÍ¤Ï 128 (2.6.28 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï 8192) ¤Ç¤¢¤ë¡£ +のデフォルト値は 8192 バイトで、 +最小値は 128 (2.6.28 より前のカーネルでは 8192) である。 .I msgsize_max -¤Î¾å¸Â¤Ï 1,048,576 ¤Ç¤¢¤ë -(2.6.28 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¾å¸Â¤Ï +の上限は 1,048,576 である +(2.6.28 より前のカーネルでは、上限は .B INT_MAX -(Linux/86 ¤Ç¤Ï 2,147,483,647) ¤Ç¤¢¤Ã¤¿)¡£ -¤³¤Î¾å¸Â¤ÏÆø¢¥×¥í¥»¥¹ +(Linux/86 では 2,147,483,647) であった)。 +この上限は特権プロセス .RB ( CAP_SYS_RESOURCE ) -¤Ç¤Ï̵»ë¤µ¤ì¤ë¡£ +では無視される。 .TP .I /proc/sys/fs/mqueue/queues_max -¤³¤Î¥Õ¥¡¥¤¥ë¤ò»È¤Ã¤Æ¡¢ºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î¿ô¤Ë -ÂФ¹¤ë¥·¥¹¥Æ¥àÁ´ÂΤǤÎÀ©¸Â¤ò»²¾È¤·¤¿¤êÊѹ¹¤·¤¿¤ê¤Ç¤­¤ë¡£ -°ìÅÙ¤³¤Î¾å¸Â¤Ë㤹¤ë¤È¡¢¿·¤·¤¤¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤òºîÀ®¤Ç¤­¤ë¤Î¤Ï -Æø¢¥×¥í¥»¥¹ +このファイルを使って、作成することができるメッセージキューの数に +対するシステム全体での制限を参照したり変更したりできる。 +一度この上限に達すると、新しいメッセージキューを作成できるのは +特権プロセス .RB ( CAP_SYS_RESOURCE ) -¤À¤±¤È¤Ê¤ë¡£ +だけとなる。 .I queues_max -¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 256 ¤Ç¤¢¤ê¡¢ -0 ¤«¤é INT_MAX ¤ÎÈϰϤÎǤ°Õ¤ÎÃͤËÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.SS ¥ê¥½¡¼¥¹À©¸Â -¥ê¥½¡¼¥¹¾å¸Â +のデフォルト値は 256 であり、 +0 から INT_MAX の範囲の任意の値に変更することができる。 +.SS リソース制限 +リソース上限 .B RLIMIT_MSGQUEUE -¤Ï¡¢¥×¥í¥»¥¹¤Î¼Â UID ¤ËÂбþ¤¹¤ëÁ´¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤¬¾ÃÈñ¤¹¤ë -¥á¥â¥ê¶õ´Ö¤ÎÎ̤ËÂФ·¤Æ¾å¸Â¤òÀßÄꤹ¤ë¡£ +は、プロセスの実 UID に対応する全メッセージキューが消費する +メモリ空間の量に対して上限を設定する。 .BR getrlimit (2) -¤ò»²¾È¡£ -.SS ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¡¦¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Þ¥¦¥ó¥È -Linux ¤Ç¤Ï¡¢¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ï²¾ÁÛ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÆâ¤ËºîÀ®¤µ¤ì¤ë -(¾¤Î¼ÂÁõ¤Ç¤âƱÍͤε¡Ç½¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¤â¤Î¤â¤¢¤ë¤¬¡¢ -¾ÜºÙ¤Ï°ã¤Ã¤Æ¤¤¤ë¤À¤í¤¦)¡£ -°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò»È¤¦¤³¤È¤Ç (¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ï) -¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥Þ¥¦¥ó¥È¤Ç¤­¤ë: +を参照。 +.SS メッセージキュー・ファイルシステムのマウント +Linux では、メッセージキューは仮想ファイルシステム内に作成される +(他の実装でも同様の機能が提供されているものもあるが、 +詳細は違っているだろう)。 +以下のコマンドを使うことで (スーパーユーザは) +このファイルシステムをマウントできる: .in +4n .nf @@ -226,19 +226,19 @@ Linux .fi .in -¥Þ¥¦¥ó¥È¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Î¥¹¥Æ¥£¥Ã¥­¡¼¥Ó¥Ã¥È (sticky bit) ¤Ï -¼«Æ°Åª¤Ë¥ª¥ó¤È¤Ê¤ë¡£ +マウントしたディレクトリのスティッキービット (sticky bit) は +自動的にオンとなる。 -¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¡¦¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Þ¥¦¥ó¥È¸å¤Ï¡¢¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ -Ä̾ï»È¤¦¥³¥Þ¥ó¥É (Î㤨¤Ð +メッセージキュー・ファイルシステムのマウント後は、ファイルに対して +通常使うコマンド (例えば .BR ls (1) -¤ä +や .BR rm (1)) -¤ò»È¤Ã¤Æ¡¢¥·¥¹¥Æ¥à¾å¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤òɽ¼¨¤·¤¿¤ê -Áàºî¤·¤¿¤ê¤Ç¤­¤ë¡£ +を使って、システム上のメッセージキューを表示したり +操作したりできる。 -¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î³Æ¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¤Ï 1¹Ô¤Ç¤¢¤ê¡¢ -¥­¥å¡¼¤Ë´Ø¤¹¤ë¾ðÊó¤¬É½¼¨¤µ¤ì¤ë¡£ +ディレクトリ内の各ファイルの内容は 1行であり、 +キューに関する情報が表示される。 .in +4n .nf @@ -247,58 +247,58 @@ QSIZE:129 NOTIFY:2 SIGNO:0 NOTIFY_PID:8260 .fi .in -³Æ¥Õ¥£¡¼¥ë¥É¤Î¾ÜºÙ¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë: +各フィールドの詳細は以下の通りである: .TP .B QSIZE -¥­¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ëÁ´¥á¥Ã¥»¡¼¥¸¤Î¹ç·×¥Ð¥¤¥È¿ô¡£ +キューに入っている全メッセージの合計バイト数。 .TP .B NOTIFY_PID -¤³¤ÎÃͤ¬ 0 °Ê³°¤Î¾ì¹ç¡¢¤³¤ÎÃͤΠPID ¤ò»ý¤Ä¥×¥í¥»¥¹¤¬ +この値が 0 以外の場合、この値の PID を持つプロセスが .BR mq_notify (3) -¤ò»È¤Ã¤Æ¡¢ÈóƱ´ü¤Î¥á¥Ã¥»¡¼¥¸ÄÌÃΤò¹Ô¤¦¤è¤¦¤ËÀßÄꤷ¤¿¤³¤È¤ò¼¨¤¹¡£ -¤É¤Î¤è¤¦¤ËÄÌÃΤ¬¹Ô¤ï¤ì¤ë¤«¤Ï¡¢°Ê²¼¤Î¥Õ¥£¡¼¥ë¥É¤Ë¤è¤ê·èÄꤵ¤ì¤ë¡£ +を使って、非同期のメッセージ通知を行うように設定したことを示す。 +どのように通知が行われるかは、以下のフィールドにより決定される。 .TP .B NOTIFY -ÄÌÃÎÊýË¡: -0 ¤Ï +通知方法: +0 は .BR SIGEV_SIGNAL ; -1 ¤Ï +1 は .BR SIGEV_NONE ; -2 ¤Ï +2 は .B SIGEV_THREAD .TP .B SIGNO .B SIGEV_SIGNAL -¤Ë»ÈÍѤµ¤ì¤ë¥·¥°¥Ê¥ëÈֹ档 -.SS ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò»Ò¤Î¥Ý¡¼¥ê¥ó¥° -Linux ¤Ç¤Ï¡¢¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò»Ò¤Ï¼ÂºÝ¤Ï¥Õ¥¡¥¤¥ëµ­½Ò»Ò (file descriptor) -¤Ç¤¢¤ê¡¢ +に使用されるシグナル番号。 +.SS メッセージキュー記述子のポーリング +Linux では、メッセージキュー記述子は実際はファイル記述子 (file descriptor) +であり、 .BR select (2), .BR poll (2), .BR epoll (7) -¤ò»È¤Ã¤Æ´Æ»ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Îµ¡Ç½¤Î°Ü¿¢À­¤Ï¤Ê¤¤¡£ -.SH ½àµò +を使って監視することができる。 +この機能の移植性はない。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ -System V ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼ +.SH 注意 +System V メッセージキュー .RB ( msgget (2), .BR msgsnd (2), .BR msgrcv (2) -¤Ê¤É) ¤Ï¥×¥í¥»¥¹´Ö¤Ç¥á¥Ã¥»¡¼¥¸¤ò¤ä¤ê¼è¤ê¤¹¤ë¤¿¤á¤Î¸Å¤¤ API ¤Ç¤¢¤ë¡£ -POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ï System V ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤è¤ê¤â¤¦¤Þ¤¯ -À߷פµ¤ì¤¿¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤·¤Æ¤¤¤ë¡£ -°ìÊý¤Ç¡¢POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ï System V ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤ÈÈæ¤Ù¤ë¤È -ÍøÍѤǤ­¤ë¥·¥¹¥Æ¥à¤¬¾¯¤Ê¤¤ (Æäˡ¢¸Å¤¤¥·¥¹¥Æ¥à¤Ç¤Ï¾¯¤Ê¤¤)¡£ +など) はプロセス間でメッセージをやり取りするための古い API である。 +POSIX メッセージキューは System V メッセージキューよりもうまく +設計されたインタフェースを提供している。 +一方で、POSIX メッセージキューは System V メッセージキューと比べると +利用できるシステムが少ない (特に、古いシステムでは少ない)。 -¸½ºß¤Î¤³¤È¤í (¥Ð¡¼¥¸¥ç¥ó 2.6.26 »þÅÀ)¡¢ -Linux ¤Ï POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤ËÂФ¹¤ë¥¢¥¯¥»¥¹À©¸æ¥ê¥¹¥È (ACL) ¤Ë -Âбþ¤·¤Æ¤¤¤Ê¤¤¡£ -.SH Îã -³Æ¼ï¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼´Ø¿ô¤ò»ÈÍѤ·¤¿Î㤬 +現在のことろ (バージョン 2.6.26 時点)、 +Linux は POSIX メッセージキューに対するアクセス制御リスト (ACL) に +対応していない。 +.SH 例 +各種のメッセージキュー関数を使用した例が .BR mq_notify (3) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +に記載されている。 +.SH 関連項目 .BR getrlimit (2), .BR mq_getsetattr (2), .BR poll (2), diff --git a/release/man7/netdevice.7 b/release/man7/netdevice.7 index 019161cc..157aec8a 100644 --- a/release/man7/netdevice.7 +++ b/release/man7/netdevice.7 @@ -14,27 +14,27 @@ .\" Updated Wed 14 Feb 2001 by Kentaro Shirakata .\" Updated 2009-02-12 by Kentaro Shirakata .\" -.\"WORD load balancing bundle Éé²Ùʬ»¶¥°¥ë¡¼¥× -.\"WORD file descriptor ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD capability ¸¢¸Â +.\"WORD load balancing bundle 負荷分散グループ +.\"WORD file descriptor ファイルディスクリプタ +.\"WORD capability 権限 .\" .TH NETDEVICE 7 2009-01-14 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -netdevice \- Linux ¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¤Ø¤ÎÄã¥ì¥Ù¥ë¥¢¥¯¥»¥¹ -.SH ½ñ¼° +.SH 名前 +netdevice \- Linux ネットワークデバイスへの低レベルアクセス +.SH 書式 .B "#include " .br .B "#include " -.SH ÀâÌÀ -¤³¤Î man ¥Ú¡¼¥¸¤Ç¤Ï¡¢¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¤òÀßÄꤹ¤ë¤¿¤á¤Ë -ÍѤ¤¤ë¥½¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æ²òÀ⤹¤ë¡£ +.SH 説明 +この man ページでは、ネットワークデバイスを設定するために +用いるソケットインターフェースについて解説する。 -Linux ¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¤òÀßÄꤹ¤ë¤¿¤á¤Îɸ½àŪ¤Ê ioctl ¤ò -¤¤¤¯¤Ä¤«È÷¤¨¤Æ¤¤¤ë¡£¤³¤ì¤é¤Ï¤É¤ó¤Ê¥½¥±¥Ã¥È¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤â -ÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¥Õ¥¡¥ß¥ê¡¼¤ä¥¿¥¤¥×¤Ï²¿¤Ç¤â¤è¤¤¡£ -¤³¤ì¤é¤Î ioctl ¤Ï +Linux はネットワークデバイスを設定するための標準的な ioctl を +いくつか備えている。これらはどんなソケットのファイルディスクリプタにも +用いることができる。ファミリーやタイプは何でもよい。 +これらの ioctl は .I ifreq -¹½Â¤ÂΤòÅϤ¹¡£ +構造体を渡す。 .in +4n .nf @@ -67,110 +67,110 @@ struct ifconf { .fi .in -Ä̾¥æ¡¼¥¶¡¼¤Ë¤è¤ëÀßÄêÂоݥǥХ¤¥¹¤Î»ØÄê¤Ï¡¢ +通常、ユーザーによる設定対象デバイスの指定は、 .I ifr_name -¤Ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î̾Á°¤ò¥»¥Ã¥È¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¹Ô¤¦¡£ -¾¤Î¹½Â¤ÂΤÎÁ´¤Æ¤Î¥á¥ó¥Ð¤Ï¡¢¥á¥â¥ê¤ò¶¦Í­¤¹¤ë¡£ +にインターフェースの名前をセットすることによって行う。 +他の構造体の全てのメンバは、メモリを共有する。 .SS ioctl -¡ÖÆø¢¤¬É¬Íספȵ­½Ò¤µ¤ì¤Æ¤¤¤ë ioctl ¤ò¼Â¹Ô¤¹¤ë¤Ë¤Ï¡¢ -¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤«¡¢ +「特権が必要」と記述されている ioctl を実行するには、 +実効ユーザー ID が 0 か、 .B CAP_NET_ADMIN -¸¢¸Â¤¬É¬ÍפǤ¢¤ë¡£¤³¤ì¤¬Ëþ¤¿¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï +権限が必要である。これが満たされていない場合は .B EPERM -¤¬ÊÖ¤µ¤ì¤ë¡£ +が返される。 .TP .B SIOCGIFNAME .I ifr_ifindex -¤ò¼õ¤±¼è¤ê¡¢¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î̾Á°¤ò +を受け取り、インターフェースの名前を .I ifr_name -¤ËÆþ¤ì¤ÆÊÖ¤¹¡£¤³¤ì¤Ï·ë²Ì¤ò +に入れて返す。これは結果を .I ifr_name -¤È¤·¤ÆÊÖ¤¹Í£°ì¤Î ioctl ¤Ç¤¢¤ë¡£ +として返す唯一の ioctl である。 .TP .B SIOCGIFINDEX -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î interface index ¤ò¼èÆÀ¤·¡¢ +インターフェースの interface index を取得し、 .I ifr_ifindex -¤ËÆþ¤ì¤ÆÊÖ¤¹¡£ +に入れて返す。 .TP .BR SIOCGIFFLAGS ", " SIOCSIFFLAGS -¥Ç¥Ð¥¤¥¹¤Î active ¥Õ¥é¥°¥ï¡¼¥É¤ò¼èÆÀ¤Þ¤¿¤ÏÀßÄꤹ¤ë¡£ +デバイスの active フラグワードを取得または設定する。 .I ifr_flags -¤Ë¤Ï°Ê²¼¤ÎÃͤΥӥåȥޥ¹¥¯¤¬Æþ¤ë¡£ +には以下の値のビットマスクが入る。 .TS tab(:); c s l l. -¥Ç¥Ð¥¤¥¹¥Õ¥é¥° -IFF_UP:¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÏÆ°ºîÃæ¡£ +デバイスフラグ +IFF_UP:インターフェースは動作中。 IFF_BROADCAST:T{ -Í­¸ú¤Ê¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¡£ +有効なブロードキャストアドレスがセットされている。 T} -IFF_DEBUG:ÆâÉô¤Î¥Ç¥Ð¥Ã¥°¥Õ¥é¥°¡£ -IFF_LOOPBACK:¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¥ë¡¼¥×¥Ð¥Ã¥¯¤Ç¤¢¤ë¡£ +IFF_DEBUG:内部のデバッグフラグ。 +IFF_LOOPBACK:インターフェースはループバックである。 IFF_POINTOPOINT:T{ -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï point-to-point ¥ê¥ó¥¯¤Ç¤¢¤ë¡£ +インターフェースは point-to-point リンクである。 T} -IFF_RUNNING:¥ê¥½¡¼¥¹¤¬³ä¤êÅö¤ÆºÑ¤ß¡£ -IFF_NOARP:arp ¥×¥í¥È¥³¥ë¤¬¤Ê¤¤¡£ -IFF_PROMISC:¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï promiscuous ¥â¡¼¥É¤Ç¤¢¤ë¡£ -IFF_NOTRAILERS:trailer ¤ÎÍøÍѤòÈò¤±¤ë¡£ -IFF_ALLMULTI:Á´¤Æ¤Î¥Þ¥ë¥Á¥­¥ã¥¹¥È¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤¹¤ë¡£ -IFF_MASTER:Éé²Ùʬ»¶¥°¥ë¡¼¥×¤Î¥Þ¥¹¥¿¡¼¤Ç¤¢¤ë¡£ -IFF_SLAVE:Éé²Ùʬ»¶¥°¥ë¡¼¥×¤Î¥¹¥ì¡¼¥Ö¤Ç¤¢¤ë¡£ -IFF_MULTICAST:¥Þ¥ë¥Á¥­¥ã¥¹¥È¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -IFF_PORTSEL:ifmap ¤Ë¤è¤Ã¤Æ¥á¥Ç¥£¥¢¥¿¥¤¥×¤òÁªÂò¤Ç¤­¤ë¡£ -IFF_AUTOMEDIA:¼«Æ°¥á¥Ç¥£¥¢ÁªÂò¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +IFF_RUNNING:リソースが割り当て済み。 +IFF_NOARP:arp プロトコルがない。 +IFF_PROMISC:インターフェースは promiscuous モードである。 +IFF_NOTRAILERS:trailer の利用を避ける。 +IFF_ALLMULTI:全てのマルチキャストパケットを受信する。 +IFF_MASTER:負荷分散グループのマスターである。 +IFF_SLAVE:負荷分散グループのスレーブである。 +IFF_MULTICAST:マルチキャストをサポートしている。 +IFF_PORTSEL:ifmap によってメディアタイプを選択できる。 +IFF_AUTOMEDIA:自動メディア選択が有効になっている。 IFF_DYNAMIC:T{ -¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ÊĤ¸¤ë¤È¡¢¥¢¥É¥ì¥¹¤Ï¼º¤ï¤ì¤ë¡£ +このインターフェースが閉じると、アドレスは失われる。 T} -IFF_LOWER_UP:¥É¥é¥¤¥Ð¤«¤é¤Î L1 ¥¢¥Ã¥×¤ÎÄÌÃÎ (Linux 2.6.17 °Ê¹ß) -IFF_DORMANT:¥É¥é¥¤¥Ð¤«¤é¤ÎµÙ»ß¾õÂÖ¤ÎÄÌÃÎ (Linux 2.6.17 °Ê¹ß) -IFF_ECHO:Á÷¤é¤ì¤¿¥Ñ¥±¥Ã¥È¤ò¥¨¥³¡¼¤¹¤ë (Linux 2.6.25 °Ê¹ß) +IFF_LOWER_UP:ドライバからの L1 アップの通知 (Linux 2.6.17 以降) +IFF_DORMANT:ドライバからの休止状態の通知 (Linux 2.6.17 以降) +IFF_ECHO:送られたパケットをエコーする (Linux 2.6.25 以降) .TE -active ¥Õ¥é¥°¥ï¡¼¥É¤ÎÀßÄê¤ÏÆø¢¤¬É¬ÍפÊÁàºî¤Ç¤¢¤ë¡£ -¤·¤«¤·Æɤ߽Ф·¤Ï¤É¤ó¤Ê¥×¥í¥»¥¹¤«¤é¤â²Äǽ¤Ç¤¢¤ë¡£ +active フラグワードの設定は特権が必要な操作である。 +しかし読み出しはどんなプロセスからも可能である。 .TP .BR SIOCGIFMETRIC ", " SIOCSIFMETRIC -¥Ç¥Ð¥¤¥¹¤Î¥á¥È¥ê¥Ã¥¯¤ò +デバイスのメトリックを .I ifr_metric -¤òÍѤ¤¤Æ¼èÆÀ¡¦ÀßÄꤹ¤ë¡£ -¤³¤ì¤Ï¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£Æɤ߽Ф½¤¦¤È¤¹¤ë¤È +を用いて取得・設定する。 +これはまだ実装されていない。読み出そうとすると .I ifr_metric -¤Ë 0 ¤ò¥»¥Ã¥È¤·¤ÆÊ֤ꡢÀßÄꤷ¤è¤¦¤È¤¹¤ë¤È +に 0 をセットして返り、設定しようとすると .B EOPNOTSUPP -¤¬Ê֤롣 +が返る。 .TP .BR SIOCGIFMTU ", " SIOCSIFMTU -¥Ç¥Ð¥¤¥¹¤Î MTU (Maximum Transfer Unit) ¤ò +デバイスの MTU (Maximum Transfer Unit) を .I ifr_mtu -¤òÍѤ¤¤Æ¼èÆÀ¡¦ÀßÄꤹ¤ë¡£ MTU ¤ÎÀßÄê¤ÏÆø¢¤¬É¬ÍפÊÁàºî¤Ç¤¢¤ë¡£ -MTU ¤ÎÃͤò¾®¤µ¤¯¤·¤¹¤®¤ë¤È¥«¡¼¥Í¥ë¤¬¥¯¥é¥Ã¥·¥å¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +を用いて取得・設定する。 MTU の設定は特権が必要な操作である。 +MTU の値を小さくしすぎるとカーネルがクラッシュするかもしれない。 .TP .BR SIOCGIFHWADDR ", " SIOCSIFHWADDR -¥Ç¥Ð¥¤¥¹¤Î¥Ï¡¼¥É¥¦¥§¥¢¥¢¥É¥ì¥¹¤ò +デバイスのハードウェアアドレスを .I ifr_hwaddr -¤òÍѤ¤¤Æ¼èÆÀ¡¦ÀßÄꤹ¤ë¡£ -¥Ï¡¼¥É¥¦¥§¥¢¥¢¥É¥ì¥¹¤Ï +を用いて取得・設定する。 +ハードウェアアドレスは .I sockaddr -¹½Â¤ÂΤËÀßÄꤵ¤ì¤ë¡£ +構造体に設定される。 .I sa_family -¤Ë¤Ï ARPHRD_* ¥Ç¥Ð¥¤¥¹¥¿¥¤¥×¤¬Æþ¤ê¡¢ +には ARPHRD_* デバイスタイプが入り、 .I sa_data -¤Ë¤Ï¥Ð¥¤¥È 0 ¤«¤é»Ï¤Þ¤ë L2 ¥Ï¡¼¥É¥¦¥§¥¢¥¢¥É¥ì¥¹¤¬Æþ¤ë¡£ -¥Ï¡¼¥É¥¦¥§¥¢¥¢¥É¥ì¥¹¤ÎÀßÄê¤ÏÆø¢¤¬É¬ÍפÊÁàºî¤Ç¤¢¤ë¡£ +にはバイト 0 から始まる L2 ハードウェアアドレスが入る。 +ハードウェアアドレスの設定は特権が必要な操作である。 .TP .B SIOCSIFHWBROADCAST -¥Ç¥Ð¥¤¥¹¤Î¥Ï¡¼¥É¥¦¥§¥¢¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤ò +デバイスのハードウェアブロードキャストアドレスを .I ifr_hwaddr -¤ÎÃͤËÀßÄꤹ¤ë¡£¤³¤ÎÁàºî¤Ë¤ÏÆø¢¤¬É¬ÍפǤ¢¤ë¡£ +の値に設定する。この操作には特権が必要である。 .TP .BR SIOCGIFMAP ", " SIOCSIFMAP -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¥Ï¡¼¥É¥¦¥§¥¢¤Î¥Ñ¥é¥á¡¼¥¿¤ò +インターフェースのハードウェアのパラメータを .I ifr_map -¤òÍѤ¤¤Æ¼èÆÀ¡¦ÀßÄꤹ¤ë¡£ -¥Ñ¥é¥á¡¼¥¿¤ÎÀßÄê¤ÏÆø¢¤¬É¬ÍפÊÁàºî¤Ç¤¢¤ë¡£ +を用いて取得・設定する。 +パラメータの設定は特権が必要な操作である。 .in +4n .nf @@ -185,59 +185,59 @@ struct ifmap { .fi .in -ifmap ¹½Â¤ÂΤβò¼á¤Ï¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë°Í¸¤¹¤ë¡£ +ifmap 構造体の解釈はデバイスドライバとアーキテクチャに依存する。 .TP .BR SIOCADDMULTI ", " SIOCDELMULTI -¥Ç¥Ð¥¤¥¹¤Î¥ê¥ó¥¯ÁؤΥޥë¥Á¥­¥ã¥¹¥È¥Õ¥£¥ë¥¿¡¼¤«¤é¡¢ +デバイスのリンク層のマルチキャストフィルターから、 .I ifr_hwaddr -¤Î¥¢¥É¥ì¥¹¤òÄɲᦺï½ü¤¹¤ë¡£¤³¤ì¤é¤ÎÁàºî¤Ë¤ÏÆø¢¤¬É¬ÍפǤ¢¤ë¡£ -Ê̤ÎÊýË¡¤¬ +のアドレスを追加・削除する。これらの操作には特権が必要である。 +別の方法が .BR packet (7) -¤Ç²òÀ⤵¤ì¤Æ¤¤¤ë¡£ +で解説されている。 .TP .BR SIOCGIFTXQLEN ", " SIOCSIFTXQLEN -¥Ç¥Ð¥¤¥¹¤ÎÁ÷¿®¥­¥å¡¼¤ÎŤµ¤ò +デバイスの送信キューの長さを .I ifr_qlen -¤Ë¼èÆÀ¡¦ÀßÄꤹ¤ë¡£Á÷¿®¥­¥å¡¼¤ÎŤµ¤ÎÀßÄê¤Ë¤ÏÆø¢¤¬É¬ÍפǤ¢¤ë¡£ +に取得・設定する。送信キューの長さの設定には特権が必要である。 .TP .B SIOCSIFNAME .I ifr_name -¤Ç»ØÄꤷ¤¿¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î̾Á°¤ò +で指定したインターフェースの名前を .I ifr_newname -¤ËÊѹ¹¤¹¤ë¡£¤³¤ÎÁàºî¤Ë¤ÏÆø¢¤¬É¬ÍפǤ¢¤ë¡£¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ up ¤·¤Æ¤¤¤Ê¤¤ -»þ¤Ë¤Î¤ß»ÈÍѤǤ­¤ë¡£ +に変更する。この操作には特権が必要である。インターフェースが up していない +時にのみ使用できる。 .TP .B SIOCGIFCONF -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹(¥È¥é¥ó¥¹¥Ý¡¼¥ÈÁØ)¥¢¥É¥ì¥¹¤Î¥ê¥¹¥È¤òÊÖ¤¹¡£ -¸½ºß¤Î¤È¤³¤í¡¢¸ß´¹À­¤Î¤¿¤á¤Ë +インターフェース(トランスポート層)アドレスのリストを返す。 +現在のところ、互換性のために .B AF_INET -(IPv4) ¥Õ¥¡¥ß¥ê¡¼¤Î¥¢¥É¥ì¥¹¤Î¤ß¤Ç¤¢¤ë¡£ -¥æ¡¼¥¶¡¼¤Ï +(IPv4) ファミリーのアドレスのみである。 +ユーザーは .I ifconf -¹½Â¤ÂΤò ioctl ¤Î°ú¿ô¤È¤·¤ÆÅϤ¹¡£ +構造体を ioctl の引数として渡す。 .I ifconf -¹½Â¤ÂΤˤϡ¢ +構造体には、 .I ifreq -¹½Â¤ÂΤÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë +構造体の配列へのポインタである .I ifc_req -¤È¡¢¥Ð¥¤¥Èñ°Ì¤ÎÇÛÎó¤ÎŤµ¤ò»ØÄꤹ¤ë +と、バイト単位の配列の長さを指定する .I ifc_len -¤¬´Þ¤Þ¤ì¤ë¡£ -¥«¡¼¥Í¥ë¤Ï ifreqs ¤ò¸½ºßÆ°ºî¤·¤Æ¤¤¤ëÁ´¤Æ¤Î L3 ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹¤ÇËä¤á¤ë¡£ +が含まれる。 +カーネルは ifreqs を現在動作している全ての L3 インターフェースアドレスで埋める。 .I ifr_name -¤Ë¤Ï¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹Ì¾ (eth0:1 ¤Ê¤É) ¤¬Æþ¤ê¡¢ +にはインターフェース名 (eth0:1 など) が入り、 .I ifr_addr -¤Ë¤Ï¥¢¥É¥ì¥¹¤¬Æþ¤ë¡£ -¥«¡¼¥Í¥ë¤Ï¼ÂºÝ¤ÎŤµ¤ò +にはアドレスが入る。 +カーネルは実際の長さを .I ifc_len -¤ËÊÖ¤¹¡£ +に返す。 .I ifc_len -¤¬¸µ¤Î¥Ð¥Ã¥Õ¥¡¤ÎŤµ¤ÈƱ¤¸¤À¤Ã¤¿¾ì¹ç¡¢ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤òµ¯¤³¤·¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç¡¢ -Á´¤Æ¤Î¥¢¥É¥ì¥¹¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Ë¤è¤êÂ礭¤Ê¥Ð¥Ã¥Õ¥¡¤ÇºÆ»î¹Ô¤¹¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -¥¨¥é¡¼¤¬¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï ioctl ¤Ï 0 ¤òÊÖ¤¹¡£ -¥¨¥é¡¼¤¬¤¢¤Ã¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£ -¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ï¥¨¥é¡¼¤È¤Ï¸«¤Ê¤µ¤ì¤Ê¤¤¡£ +が元のバッファの長さと同じだった場合、 +オーバーフローを起こしている可能性があるので、 +全てのアドレスを取得するためにより大きなバッファで再試行するべきである。 +エラーがなかった場合は ioctl は 0 を返す。 +エラーがあった場合は \-1 を返す。 +オーバーフローはエラーとは見なされない。 .\" Slaving isn't supported in 2.2 .\" . .\" .TP @@ -248,37 +248,37 @@ ifmap .\" .PP .\" FIXME add amateur radio stuff. .PP -¤Û¤È¤ó¤É¤Î¥×¥í¥È¥³¥ë¤Ë¤Ï¡¢ÀìÍѤΥ¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥ª¥×¥·¥ç¥ó¤ò -ÀßÄꤹ¤ë¤¿¤á¤ÎÆȼ«¤Î ioctl ¤¬Â¸ºß¤¹¤ë¡£ -ÀâÌÀ¤Ï³Æ¥×¥í¥È¥³¥ë¤Î man ¥Ú¡¼¥¸¤ò¸«¤è¡£ +ほとんどのプロトコルには、専用のインターフェースオプションを +設定するための独自の ioctl が存在する。 +説明は各プロトコルの man ページを見よ。 .PP -¤µ¤é¤Ë¡¢¥Ç¥Ð¥¤¥¹¤Ë¤è¤Ã¤Æ¤Ï¥×¥é¥¤¥Ù¡¼¥È¤Ê ioctl ¤¬¤¢¤ë¡£ -¤³¤ì¤é¤Ï¤³¤³¤Ç¤ÏÀâÌÀ¤·¤Ê¤¤¡£ -.SH Ãí°Õ -¸·Ì©¤Ë¤¤¤¦¤È¡¢ +さらに、デバイスによってはプライベートな ioctl がある。 +これらはここでは説明しない。 +.SH 注意 +厳密にいうと、 .B SIOCGIFCONF -¤Ï IP ¸ÇÍ­¤Ç¤¢¤ê¡¢ +は IP 固有であり、 .BR ip (7) -¤Ë°¤¹¤ë¡£ +に属する。 .LP -¥¢¥É¥ì¥¹¤¬¤Ê¤«¤Ã¤¿¤ê¡¢ +アドレスがなかったり、 .B IFF_RUNNING -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î̾Á°¤Ï +フラグがセットされていないインターフェースの名前は .I /proc/net/dev -¤ÇÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ +で知ることができる。 .LP -¥í¡¼¥«¥ë IPV6 IP ¥¢¥É¥ì¥¹¤Ï +ローカル IPV6 IP アドレスは .I /proc/net -¤« +か .BR rtnetlink (7) -¤ÇÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ -.SH ¥Ð¥° -glibc 2.1 ¤Ç¤Ï +で知ることができる。 +.SH バグ +glibc 2.1 では .I -¤Ë +に .I ifr_newname -¥Þ¥¯¥í¤¬¤Ê¤¤¡£ -¤È¤ê¤¢¤¨¤º¤ÎÂбþºö¤È¤·¤Æ¡¢°Ê²¼¤Î¥³¡¼¥É¤òÄɲ䷤Ƥª¤¯¤³¤È¡£ +マクロがない。 +とりあえずの対応策として、以下のコードを追加しておくこと。 .sp .in +4n .nf @@ -288,7 +288,7 @@ glibc 2.1 .fi .in .RE -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR proc (5), .BR capabilities (7), .BR ip (7), diff --git a/release/man7/netlink.7 b/release/man7/netlink.7 index 75eda2c9..bb0aebe9 100644 --- a/release/man7/netlink.7 +++ b/release/man7/netlink.7 @@ -9,13 +9,13 @@ .\" Updated 2001-04-04 by Yuichi SATO , catch up to LDP v1.35 .\" Updated 2006-06-23 by Yuichi SATO , catch up to LDP v2.29 .\" -.\"WORD payload ¥Ú¥¤¥í¡¼¥É -.\"WORD capability ¸¢¸Â +.\"WORD payload ペイロード +.\"WORD capability 権限 .\" .TH NETLINK 7 2008-11-11 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -netlink \- ¥«¡¼¥Í¥ë¤È¥æ¡¼¥¶¡¼¶õ´Ö¤ÎÄÌ¿® (AF_NETLINK) -.SH ½ñ¼° +.SH 名前 +netlink \- カーネルとユーザー空間の通信 (AF_NETLINK) +.SH 書式 .nf .B #include .B #include @@ -23,53 +23,53 @@ netlink \- .BI "netlink_socket = socket(AF_NETLINK, " socket_type ", " netlink_family ); .fi -.SH ÀâÌÀ -netlink ¤Ï¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¤È¥æ¡¼¥¶¡¼¶õ´Ö¤Î¥×¥í¥»¥¹´Ö¤Ç -¾ðÊó¤ò¤ä¤ê¤È¤ê¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ -netlink ¤Ï¡¢¥æ¡¼¥¶¡¼¥×¥í¥»¥¹¤ËÂФ·¤Æ¤Ï -ɸ½àŪ¤Ê¥½¥±¥Ã¥È¥Ù¡¼¥¹¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò¡¢ -¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¤Ë¤Ï¥«¡¼¥Í¥ë¤ÎÆâÉô API ¤òÄ󶡤¹¤ë¡£ -¥«¡¼¥Í¥ëÆâÉô¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æ¤Ï¤³¤Î man ¥Ú¡¼¥¸¤Ç¤Ïµ­½Ò¤·¤Ê¤¤¡£ -¤Þ¤¿¡¢netlink ¥­¥ã¥é¥¯¥¿¥Ç¥Ð¥¤¥¹¤òÍѤ¤¤¿ -obsolete ¤Ê netlink ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤â¤¢¤ë¤¬¡¢¤³¤ì¤â¤³¤Îʸ½ñ¤Ç¤Ï²òÀ⤷¤Ê¤¤¡£ -¤³¤ì¤Ïñ¤Ë²áµî¸ß´¹À­¤Î¤¿¤á¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤Ë¤¹¤®¤Ê¤¤¡£ - -netlink ¤Ï¥Ç¡¼¥¿¥°¥é¥à»Ø¸þ¤Î¥µ¡¼¥Ó¥¹¤Ç¤¢¤ë¡£ +.SH 説明 +netlink はカーネルモジュールとユーザー空間のプロセス間で +情報をやりとりするために用いられる。 +netlink は、ユーザープロセスに対しては +標準的なソケットベースのインターフェースを、 +カーネルモジュールにはカーネルの内部 API を提供する。 +カーネル内部のインターフェースについてはこの man ページでは記述しない。 +また、netlink キャラクタデバイスを用いた +obsolete な netlink インターフェースもあるが、これもこの文書では解説しない。 +これは単に過去互換性のために用意されているものにすぎない。 + +netlink はデータグラム指向のサービスである。 .I socket_type -¤Ë¤Ï +には .B SOCK_RAW -¤È +と .B SOCK_DGRAM -¤ÎξÊý¤È¤â»ØÄê²Äǽ¤Ç¤¢¤ë¡£ -¤·¤«¤· netlink ¥×¥í¥È¥³¥ë¤Ï¥Ç¡¼¥¿¥°¥é¥à¤È raw ¥½¥±¥Ã¥È¤Î¶èÊ̤ò¤·¤Ê¤¤¡£ +の両方とも指定可能である。 +しかし netlink プロトコルはデータグラムと raw ソケットの区別をしない。 .I netlink_family -¤Ï¡¢ÄÌ¿®¤¹¤ë¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¤ä netlink ¥°¥ë¡¼¥×¤ÎÁªÂò¤ËÍѤ¤¤ë¡£ -¸½ºß³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë netlink ¥Õ¥¡¥ß¥ê¡¼¤Ï°Ê²¼¤ÎÄ̤ꡣ +は、通信するカーネルモジュールや netlink グループの選択に用いる。 +現在割り当てられている netlink ファミリーは以下の通り。 .TP .B NETLINK_ROUTE -¥ë¡¼¥Æ¥£¥ó¥°¤È¥ê¥ó¥¯¤Î¹¹¿·¤ò¼õ¿®¤¹¤ë¡£ -(IPv4 ¤È IPv6 ξÊý¤Î) ¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¡¦ -IP ¥¢¥É¥ì¥¹¡¦¥ê¥ó¥¯¥Ñ¥é¥á¡¼¥¿¡¦¶á˵ÀßÄê (neighbor setup)¡¦ -¥­¥å¡¼¥¤¥ó¥°¥ë¡¼¥ë (queueing dicipline)¡¦¥È¥é¥Õ¥£¥Ã¥¯¥¯¥é¥¹¡¦ -¥Ñ¥±¥Ã¥È¤Î¥¯¥é¥¹Ê¬Îà¤Î½¤Àµ¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¤À¤í¤¦ +ルーティングとリンクの更新を受信する。 +(IPv4 と IPv6 両方の) ルーティングテーブル・ +IP アドレス・リンクパラメータ・近傍設定 (neighbor setup)・ +キューイングルール (queueing dicipline)・トラフィッククラス・ +パケットのクラス分類の修正に用いることができるだろう .RB ( rtnetlink (7) -¤ò¸«¤è)¡£ +を見よ)。 .TP .B NETLINK_W1 -ñÀþ (1-wire) ¤Î¥µ¥Ö¥·¥¹¥Æ¥à¤«¤é¤Î¥á¥Ã¥»¡¼¥¸¡£ +単線 (1-wire) のサブシステムからのメッセージ。 .TP .B NETLINK_USERSOCK -¥æ¡¼¥¶¡¼¥â¡¼¥É¥½¥±¥Ã¥È¥×¥í¥È¥³¥ë¤Î¤¿¤á¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ +ユーザーモードソケットプロトコルのために予約されている。 .TP .B NETLINK_FIREWALL -IPv4 ¥Ñ¥±¥Ã¥È¤ò netfilter ¤«¤é¥æ¡¼¥¶¡¼¶õ´Ö¤ØžÁ÷¤¹¤ë¡£ +IPv4 パケットを netfilter からユーザー空間へ転送する。 .I ip_queue -¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¤Ç»ÈÍѤµ¤ì¤ë¡£ +カーネルモジュールで使用される。 .TP .B NETLINK_INET_DIAG .\" FIXME More details on NETLINK_INET_DIAG needed. -INET ¥½¥±¥Ã¥È¤ò¥â¥Ë¥¿¥ê¥ó¥°¤¹¤ë¡£ +INET ソケットをモニタリングする。 .TP .B NETLINK_NFLOG Netfilter/iptables ULOG. @@ -79,7 +79,7 @@ Netfilter/iptables ULOG. IPsec. .TP .B NETLINK_SELINUX -SELinux ¤Î¥¤¥Ù¥ó¥ÈÄÌÃΡ£ +SELinux のイベント通知。 .TP .B NETLINK_ISCSI .\" FIXME More details on NETLINK_ISCSI needed. @@ -87,311 +87,311 @@ Open-iSCSI. .TP .B NETLINK_AUDIT .\" FIXME More details on NETLINK_AUDIT needed. -´Æºº (audit) ¤ò¹Ô¤¦¡£ +監査 (audit) を行う。 .TP .B NETLINK_FIB_LOOKUP .\" FIXME More details on NETLINK_FIB_LOOKUP needed. -¥æ¡¼¥¶¡¼¶õ´Ö¤«¤é FIB ¥ë¥Ã¥¯¥¢¥Ã¥×¤Ë¥¢¥¯¥»¥¹¤¹¤ë¡£ +ユーザー空間から FIB ルックアップにアクセスする。 .TP .B NETLINK_CONNECTOR -¥«¡¼¥Í¥ë¥³¥Í¥¯¥¿¡£ -¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï¥«¡¼¥Í¥ë¥½¡¼¥¹¤Î +カーネルコネクタ。 +より詳しい情報はカーネルソースの .I Documentation/connector/* -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .TP .B NETLINK_NETFILTER .\" FIXME More details on NETLINK_NETFILTER needed. -netfilter ¥µ¥Ö¥·¥¹¥Æ¥à¡£ +netfilter サブシステム。 .TP .B NETLINK_IP6_FW -IPv6 ¥Ñ¥±¥Ã¥È¤ò netfilter ¤«¤é¥æ¡¼¥¶¡¼¶õ´Ö¤ØžÁ÷¤¹¤ë¡£ +IPv6 パケットを netfilter からユーザー空間へ転送する。 .I ip6_queue -¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¤Ç»ÈÍѤµ¤ì¤ë¡£ +カーネルモジュールで使用される。 .TP .B NETLINK_DNRTMSG -DECnet ¥ë¡¼¥Æ¥£¥ó¥°¥á¥Ã¥»¡¼¥¸¡£ +DECnet ルーティングメッセージ。 .TP .B NETLINK_KOBJECT_UEVENT .\" FIXME More details on NETLINK_KOBJECT_UEVENT needed. -¥æ¡¼¥¶¡¼¶õ´Ö¤Ø¤Î¥«¡¼¥Í¥ë¥á¥Ã¥»¡¼¥¸ +ユーザー空間へのカーネルメッセージ .TP .B NETLINK_GENERIC -netlink ¤ò´Êñ¤Ë»ÈÍѤ¹¤ë¤¿¤á¤Î°ìÈÌŪ¤Ê netlink ¥Õ¥¡¥ß¥ê¡¼¡£ +netlink を簡単に使用するための一般的な netlink ファミリー。 .PP -netlink ¥á¥Ã¥»¡¼¥¸¤Ï¥Ð¥¤¥È¥¹¥È¥ê¡¼¥à¤«¤é¤Ê¤ê¡¢ -°ì¤Ä°Ê¾å¤Î +netlink メッセージはバイトストリームからなり、 +一つ以上の .I nlmsghdr -¥Ø¥Ã¥À¤È¡¢¤½¤ì¤ËÂбþ¤¹¤ë¥Ú¥¤¥í¡¼¥É (payload) ¤¬´Þ¤Þ¤ì¤ë¡£ -¥Ð¥¤¥È¥¹¥È¥ê¡¼¥à¤Ë¤Ï¡¢É¸½à¤Î +ヘッダと、それに対応するペイロード (payload) が含まれる。 +バイトストリームには、標準の .B NLMSG_* -¥Þ¥¯¥í¤Ë¤è¤Ã¤Æ¤Î¤ß¥¢¥¯¥»¥¹¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï +マクロによってのみアクセスすべきである。 +より詳しい情報は .BR netlink (3) -¤ò¸«¤è¡£ +を見よ。 -¥Þ¥ë¥Á¥Ñ¡¼¥È¥á¥Ã¥»¡¼¥¸ (°ì¤Ä°Ê¾å¤Î +マルチパートメッセージ (一つ以上の .I nlmsghdr -¥Ø¥Ã¥À¤È¡¢¤½¤ì¤ËÂбþ¤¹¤ë¥Ú¥¤¥í¡¼¥É¤¬ -°ì¤Ä¥Ð¥¤¥È¥¹¥È¥ê¡¼¥à¤Ë´Þ¤Þ¤ì¤ë) ¤Ë¤ª¤¤¤Æ¤Ï¡¢ -ÀèƬ¤Î¥Ø¥Ã¥À¡¦¸å³¤Î¥Ø¥Ã¥À¤Ë¤Ï +ヘッダと、それに対応するペイロードが +一つバイトストリームに含まれる) においては、 +先頭のヘッダ・後続のヘッダには .B NLM_F_MULTI -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£¤¿¤À¤·ºÇ¸å¤Î¥Ø¥Ã¥À¤À¤±¤ÏÎã³°¤Ç¡¢ +フラグがセットされる。ただし最後のヘッダだけは例外で、 .B NLMSG_DONE -¥¿¥¤¥×¤È¤Ê¤ë¡£ +タイプとなる。 -¤½¤ì¤¾¤ì¤Î +それぞれの .B nlmsghdr -¤Î¸å¤Ë¤Ï¥Ú¥¤¥í¡¼¥É¤¬Â³¤¯¡£ +の後にはペイロードが続く。 .in +4n .nf struct nlmsghdr { - __u32 nlmsg_len; /* ¥Ø¥Ã¥À¤ò´Þ¤à¥á¥Ã¥»¡¼¥¸¤ÎŤµ */ - __u16 nlmsg_type; /* ¥á¥Ã¥»¡¼¥¸¤ÎÆâÍƤΥ¿¥¤¥× */ - __u16 nlmsg_flags; /* Äɲåե饰 */ - __u32 nlmsg_seq; /* ¥·¡¼¥±¥ó¥¹ÈÖ¹æ */ - __u32 nlmsg_pid; /* Á÷¿®¥×¥í¥»¥¹¤Î PID */ + __u32 nlmsg_len; /* ヘッダを含むメッセージの長さ */ + __u16 nlmsg_type; /* メッセージの内容のタイプ */ + __u16 nlmsg_flags; /* 追加フラグ */ + __u32 nlmsg_seq; /* シーケンス番号 */ + __u32 nlmsg_pid; /* 送信プロセスの PID */ }; .fi .in .I nlmsg_type -¤Ïɸ½à¤Î¥á¥Ã¥»¡¼¥¸¥¿¥¤¥×¤Î¤É¤ì¤«°ì¤Ä¤Ç¤¢¤ë: +は標準のメッセージタイプのどれか一つである: .B NLMSG_NOOP -¥á¥Ã¥»¡¼¥¸¤Ï̵»ë¤µ¤ì¤ë¡£ +メッセージは無視される。 .B NLMSG_ERROR -¥á¥Ã¥»¡¼¥¸¤Ï¥¨¥é¡¼¤ò¼¨¤·¡¢¥Ú¥¤¥í¡¼¥É¤Ë¤Ï +メッセージはエラーを示し、ペイロードには .I nlmsgerr -¹½Â¤ÂΤ¬Æþ¤ë¡£ +構造体が入る。 .B NLMSG_DONE -¥á¥Ã¥»¡¼¥¸¤Ï¥Þ¥ë¥Á¥Ñ¡¼¥È¥á¥Ã¥»¡¼¥¸¤Î½ªÎ»¤òÅÁ¤¨¤ë¡£ +メッセージはマルチパートメッセージの終了を伝える。 .in +4n .nf struct nlmsgerr { - int error; /* Éé¤Þ¤¿¤Ï 0 ¤Î errno ¤Ï±þÅú¤òɽ¤¹ */ - struct nlmsghdr msg; /* ¥¨¥é¡¼¤òµ¯¤³¤·¤¿¥á¥Ã¥»¡¼¥¸¤Î¥Ø¥Ã¥À */ + int error; /* 負または 0 の errno は応答を表す */ + struct nlmsghdr msg; /* エラーを起こしたメッセージのヘッダ */ }; .fi .in -¤¢¤ë netlink ¥Õ¥¡¥ß¥ê¡¼¤Ç»ØÄê¤Ç¤­¤ë¥á¥Ã¥»¡¼¥¸¥¿¥¤¥×¤Ï¡¢ -Ä̾ï¤â¤Ã¤È¿¤¤¡£¤³¤ì¤é¤Ë´Ø¤·¤Æ¤ÏŬÀÚ¤Ê man ¥Ú¡¼¥¸¤ò¸«¤Æ¤Û¤·¤¤¡£ -¤¿¤È¤¨¤Ð +ある netlink ファミリーで指定できるメッセージタイプは、 +通常もっと多い。これらに関しては適切な man ページを見てほしい。 +たとえば .B NETLINK_ROUTE -¤Ë´Ø¤·¤Æ¤Ï +に関しては .BR rtnetlink (7) -¤Ë½ñ¤¤¤Æ¤¢¤ë¡£ +に書いてある。 .I nlmsg_flags -¤Îɸ½à¥Õ¥é¥°¥Ó¥Ã¥È +の標準フラグビット .br --------------------------------- .TS tab(:); lB l. -NLM_F_REQUEST:Í×µá¥á¥Ã¥»¡¼¥¸Á´¤Æ¤Ç¥»¥Ã¥È¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +NLM_F_REQUEST:要求メッセージ全てでセットされなければならない。 NLM_F_MULTI:T{ -¤³¤Î¥á¥Ã¥»¡¼¥¸¤Ï¥Þ¥ë¥Á¥Ñ¡¼¥È¥á¥Ã¥»¡¼¥¸¤Î°ìÉô¤Ç¤¢¤ë¡£ -¥Þ¥ë¥Á¥Ñ¡¼¥È¥á¥Ã¥»¡¼¥¸¤Ï +このメッセージはマルチパートメッセージの一部である。 +マルチパートメッセージは .B NLMSG_DONE -¤Ç½ªÃ¼¤¹¤ë¡£ +で終端する。 T} -NLM_F_ACK:À®¸ù¤·¤¿¾ì¹ç¤Î±þÅú¤òÍ׵᤹¤ë¡£ -NLM_F_ECHO:¤³¤ÎÍ×µá¤ò¥¨¥³¡¼¤¹¤ë¡£ +NLM_F_ACK:成功した場合の応答を要求する。 +NLM_F_ECHO:この要求をエコーする。 .TE -GET Í×µá¤Ë¤ª¤±¤ëÄɲåե饰¥Ó¥Ã¥È +GET 要求における追加フラグビット .br ------------------------------------- .TS tab(:); lB l. .\" FIXME NLM_F_ATOMIC is not used any more? -NLM_F_ROOT:ñ°ì¤Î¥¨¥ó¥È¥ê¤Ç¤Ï¤Ê¤¯¥Æ¡¼¥Ö¥ëÁ´ÂΤòÊÖ¤¹¡£ +NLM_F_ROOT:単一のエントリではなくテーブル全体を返す。 NLM_F_MATCH:T{ -¥á¥Ã¥»¡¼¥¸¤ÎÆâÍƤÇÅϤµ¤ì¤¿´ð½à (criteria) ¤Ë¥Þ¥Ã¥Á¤¹¤ë -Á´¤Æ¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£ -¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +メッセージの内容で渡された基準 (criteria) にマッチする +全てのエントリを返す。 +まだ実装されていない。 T} -NLM_F_ATOMIC:¥Æ¡¼¥Ö¥ë¤Î¥¢¥È¥ß¥Ã¥¯¤Ê¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¤òÊÖ¤¹¡£ -NLM_F_DUMP:ÊØÍø¤Ê¥Þ¥¯¥í¡£(NLM_F_ROOT|NLM_F_MATCH) ¤ÈƱ¤¸¡£ +NLM_F_ATOMIC:テーブルのアトミックなスナップショットを返す。 +NLM_F_DUMP:便利なマクロ。(NLM_F_ROOT|NLM_F_MATCH) と同じ。 .TE .B NLM_F_ATOMIC -¤ò»È¤¦¾ì¹ç¤Ï¡¢ +を使う場合は、 .B CAP_NET_ADMIN -¸¢¸Â¤ò»ý¤Ä¤«¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +権限を持つか実効ユーザー ID が 0 でなければならない点に注意すること。 -NEW Í×µá¤Ë¤ª¤±¤ëÄɲåե饰¥Ó¥Ã¥È +NEW 要求における追加フラグビット .br ------------------------------------- .TS tab(:); lB l. -NLM_F_REPLACE:¸½Â¸¤Î¥ª¥Ö¥¸¥§¥¯¥È¤òÃÖ´¹¤¹¤ë¡£ -NLM_F_EXCL:¤¹¤Ç¤Ë¥ª¥Ö¥¸¥§¥¯¥È¤¬¤¢¤Ã¤¿¤éÃÖ´¹¤·¤Ê¤¤¡£ -NLM_F_CREATE:¤Þ¤À¥ª¥Ö¥¸¥§¥¯¥È¤¬¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë¡£ -NLM_F_APPEND:¥ª¥Ö¥¸¥§¥¯¥È¥ê¥¹¥È¤ÎºÇ¸å¤ËÄɲ乤롣 +NLM_F_REPLACE:現存のオブジェクトを置換する。 +NLM_F_EXCL:すでにオブジェクトがあったら置換しない。 +NLM_F_CREATE:まだオブジェクトがなければ作成する。 +NLM_F_APPEND:オブジェクトリストの最後に追加する。 .TE .I nlmsg_seq -¤È +と .I nlmsg_pid -¤Ï¥á¥Ã¥»¡¼¥¸¤ÎÄÉÀפ˻ÈÍѤµ¤ì¤ë¡£ +はメッセージの追跡に使用される。 .I nlmsg_pid -¤Ï¥á¥Ã¥»¡¼¥¸¤ÎÁ÷¿®¸µ¤òɽ¤¹¡£ -¥á¥Ã¥»¡¼¥¸¤¬ netlink ¥½¥±¥Ã¥È¤ÇÁ÷¿®¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ +はメッセージの送信元を表す。 +メッセージが netlink ソケットで送信されている場合、 .I nlmsg_pid -¤È¥×¥í¥»¥¹¤Î PID ¤Ï 1:1 ¤Î´Ø·¸¤Ç¤Ï¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï¡¢ -.RB ¡Ö ¥¢¥É¥ì¥¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È ¡× -¤Î¥»¥¯¥·¥ç¥ó¤ò»²¾È¤¹¤ë¤³¤È¡£ +とプロセスの PID は 1:1 の関係ではない点に注意すること。 +より詳しい情報は、 +.RB 「 アドレスのフォーマット 」 +のセクションを参照すること。 .I nlmsg_seq -¤È +と .I nlmsg_pid -¤Ï netlink ¤Î¥³¥¢¤Ë¤Ï¸«¤¨¤Ê¤¤ (opaque)¡£ - -netlink ¤Ï¿®ÍêÀ­¤Î¹â¤¤¥×¥í¥È¥³¥ë¤Ç¤Ï¤Ê¤¤¡£ -netlink ¤Ï¥á¥Ã¥»¡¼¥¸¤ò¹Ô¤­Àè¤ËÆϤ±¤ë¤¿¤á¤ËºÇÁ±¤ò¿Ô¤¯¤¹¤¬¡¢ -¥á¥â¥ê¤¬Â­¤ê¤Ê¤«¤Ã¤¿¤ê¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¤ê¤¹¤ë¤È -¥á¥Ã¥»¡¼¥¸¤ò¼è¤ê¤³¤Ü¤¹¤³¤È¤â¤¢¤ë¡£ -¿®ÍêÀ­¤Î¹â¤¤Å¾Á÷¤ò¹Ô¤¤¤¿¤¤¤È¤­¤Ï¡¢ -Á÷¿®¼Ô¤Ï¼õ¿®¼Ô¤Ë±þÅú¤òÍ׵᤹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¤³¤ì¤Ë¤Ï +は netlink のコアには見えない (opaque)。 + +netlink は信頼性の高いプロトコルではない。 +netlink はメッセージを行き先に届けるために最善を尽くすが、 +メモリが足りなかったりエラーが起こったりすると +メッセージを取りこぼすこともある。 +信頼性の高い転送を行いたいときは、 +送信者は受信者に応答を要求することもできる。 +これには .B NLM_F_ACK -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£ -±þÅú¤Ï +フラグをセットする。 +応答は .B NLMSG_ERROR -¥Ñ¥±¥Ã¥È¤Î¥¨¥é¡¼¥Õ¥£¡¼¥ë¥É¤ò 0 ¤Ë¤·¤¿¤â¤Î¤Ë¤Ê¤ë¡£ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¼«Ê¬¼«¿È¤Î¥á¥Ã¥»¡¼¥¸¤ò¼õ¤±¤¿¤È¤­¤Ë¤Ï¡¢ -±þÅú¤òÀ¸À®¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥«¡¼¥Í¥ë¤Ï¼ºÇÔ¤·¤¿¥Ñ¥±¥Ã¥È¤ËÂФ·¤Æ¡¢ +パケットのエラーフィールドを 0 にしたものになる。 +アプリケーションは自分自身のメッセージを受けたときには、 +応答を生成しなければならない。 +カーネルは失敗したパケットに対して、 .B NLMSG_ERROR -¥á¥Ã¥»¡¼¥¸¤òÁ÷¤í¤¦¤È¤¹¤ë¡£ -¥æ¡¼¥¶¡¼¥×¥í¥»¥¹¤Ï¤³¤Î´·½¬¤Ë¤â½¾¤¦É¬Íפ¬¤¢¤ë¡£ - -¤·¤«¤·¡¢¤É¤Î¤è¤¦¤Ê¾ì¹ç¤Ç¤â¥«¡¼¥Í¥ë¤«¤é¥æ¡¼¥¶¡¼¤Ø¤Î -¿®ÍêÀ­¤Î¹â¤¤Å¾Á÷¤ÏÉÔ²Äǽ¤Ç¤¢¤ë¡£ -¥½¥±¥Ã¥È¥Ð¥Ã¥Õ¥¡¤¬ËþÇդξì¹ç¡¢¥«¡¼¥Í¥ë¤Ï netlink ¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¤Ç¤­¤Ê¤¤¡£ -¥á¥Ã¥»¡¼¥¸¤Ï¼è¤ê¤³¤Ü¤µ¤ì¤Æ¡¢¥«¡¼¥Í¥ë¤È¥æ¡¼¥¶¡¼¶õ´Ö¥×¥í¥»¥¹¤Ï¡¢ -¥«¡¼¥Í¥ë¤Î¾õÂ֤ˤĤ¤¤Æ¤ÎƱ¤¸¥Ó¥å¡¼¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤Ê¤¯¤Ê¤ë¡£ -¤³¤ì¤¬µ¯¤³¤Ã¤¿¤³¤È +メッセージを送ろうとする。 +ユーザープロセスはこの慣習にも従う必要がある。 + +しかし、どのような場合でもカーネルからユーザーへの +信頼性の高い転送は不可能である。 +ソケットバッファが満杯の場合、カーネルは netlink メッセージを送信できない。 +メッセージは取りこぼされて、カーネルとユーザー空間プロセスは、 +カーネルの状態についての同じビューを持つことができなくなる。 +これが起こったこと .RB ( recvmsg (2) -¤Ë¤è¤Ã¤Æ +によって .B ENOBUFS -¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë) ¤ò¸¡ÃΤ·¤ÆºÆ¤ÓƱ´ü¤µ¤»¤ë¤Î¤Ï¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÀÕǤ¤Ç¤¢¤ë¡£ -.SS ¥¢¥É¥ì¥¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È +エラーが返される) を検知して再び同期させるのは、 +アプリケーションの責任である。 +.SS アドレスのフォーマット .I sockaddr_nl -¹½Â¤ÂΤϥ桼¥¶¡¼¶õ´Ö¤ä¥«¡¼¥Í¥ë¶õ´Ö¤Ç netlink ¥¯¥é¥¤¥¢¥ó¥È¤òµ­½Ò¤¹¤ë¡£ +構造体はユーザー空間やカーネル空間で netlink クライアントを記述する。 .I sockaddr_nl -¤Ï¥æ¥Ë¥­¥ã¥¹¥È (ñ°ì¤ÎÀܳÀè¤Ë¤À¤±Á÷¤é¤ì¤ë) ¤Ë¤â¤Ç¤­¤ë¤·¡¢ -netlink ¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥× +はユニキャスト (単一の接続先にだけ送られる) にもできるし、 +netlink マルチキャストグループ .RI ( nl_groups -¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç) ¤Ë¤âÁ÷¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +が 0 でない場合) にも送ることができる。 .in +4n .nf struct sockaddr_nl { sa_family_t nl_family; /* AF_NETLINK */ - unsigned short nl_pad; /* 0 ¤Ç¤¢¤ë */ - pid_t nl_pid; /* ¥×¥í¥»¥¹ ID */ - __u32 nl_groups; /* ¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¥Þ¥¹¥¯ */ + unsigned short nl_pad; /* 0 である */ + pid_t nl_pid; /* プロセス ID */ + __u32 nl_groups; /* マルチキャストグループマスク */ }; .fi .in .I nl_pid -¤Ï netlink ¥½¥±¥Ã¥È¤Î¥æ¥Ë¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ -¹Ô¤­À褬¥«¡¼¥Í¥ë¤Î¾ì¹ç¤Ï¡¢¾ï¤Ë 0 ¤Ç¤¢¤ë¡£ -¥æ¡¼¥¶¡¼¶õ´Ö¥×¥í¥»¥¹¤Î¾ì¹ç¡¢Ä̾ï¤Ï +は netlink ソケットのユニキャストアドレスである。 +行き先がカーネルの場合は、常に 0 である。 +ユーザー空間プロセスの場合、通常は .I nl_pid -¤Ï¹Ô¤­Àè¤Î¥½¥±¥Ã¥È¤ò½êÍ­¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î PID ¤Ç¤¢¤ë¡£ -¤¿¤À¤·¡¢ +は行き先のソケットを所有しているプロセスの PID である。 +ただし、 .I nl_pid -¤Ï¥×¥í¥»¥¹¤Ç¤Ï¤Ê¤¯ netlink ¥½¥±¥Ã¥È¤òƱÄꤹ¤ë¡£ -¥×¥í¥»¥¹¤¬Ê£¿ô¤Î netlink ¥½¥±¥Ã¥È¤ò½êÍ­¤¹¤ë¾ì¹ç¡¢ +はプロセスではなく netlink ソケットを同定する。 +プロセスが複数の netlink ソケットを所有する場合、 .I nl_pid -¤ÏºÇÂç¤Ç¤â°ì¤Ä¤Î¥½¥±¥Ã¥È¤Î¥×¥í¥»¥¹ ID ¤È¤·¤«Åù¤·¤¯¤Ê¤é¤Ê¤¤¡£ +は最大でも一つのソケットのプロセス ID としか等しくならない。 .I nl_pid -¤ò netlink ¥½¥±¥Ã¥È¤Ë³ä¤êÅö¤Æ¤ëÊýË¡¤Ï 2 ¤Ä¤¢¤ë¡£ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬ +を netlink ソケットに割り当てる方法は 2 つある。 +アプリケーションが .BR bind (2) -¤ò¸Æ¤ÖÁ°¤Ë +を呼ぶ前に .I nl_pid -¤òÀßÄꤹ¤ë¾ì¹ç¡¢ +を設定する場合、 .I nl_pid -¤¬°ì°Õ¤Ç¤¢¤ë¤³¤È¤ò³Îǧ¤¹¤ë¤Î¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÀÕǤ¤È¤Ê¤ë¡£ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬ +が一意であることを確認するのはアプリケーションの責任となる。 +アプリケーションが .I nl_pid -¤ò 0 ¤ËÀßÄꤷ¤¿¾ì¹ç¡¢¥«¡¼¥Í¥ë¤¬¤³¤ÎÃͤò³ä¤êÅö¤Æ¤ë¡£ -¥«¡¼¥Í¥ë¤Ï¥×¥í¥»¥¹¤¬ºÇ½é¤Ë¥ª¡¼¥×¥ó¤·¤¿ -netlink ¥½¥±¥Ã¥È¤ËÂФ·¤Æ¥×¥í¥»¥¹ ID ¤ò³ä¤êÅö¤Æ¡¢ -¤½¤ì°Ê¹ß¤Ë¥×¥í¥»¥¹¤¬ºîÀ®¤·¤¿Á´¤Æ¤Î netlink ¥½¥±¥Ã¥È¤Ë¤â°ì°Õ¤Ê +を 0 に設定した場合、カーネルがこの値を割り当てる。 +カーネルはプロセスが最初にオープンした +netlink ソケットに対してプロセス ID を割り当て、 +それ以降にプロセスが作成した全ての netlink ソケットにも一意な .I nl_pid -¤ò³ä¤êÅö¤Æ¤ë¡£ +を割り当てる。 .I nl_groups -¤Ï¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¡¢¤¹¤Ù¤Æ¤Î¥Ó¥Ã¥È¤¬ netlink ¥°¥ë¡¼¥×ÈÖ¹æ¤òɽ¤¹¡£ -¤½¤ì¤¾¤ì¤Î netlink ¥Õ¥¡¥ß¥ê¡¼¤Ï 32 ¤Î¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¤Î¥»¥Ã¥È¤ò»ý¤Ä¡£ -¤½¤ì¤¾¤ì¤Î netlink ¥Õ¥¡¥ß¥ê¡¼¤Ï 32 ¤Î¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¤Î -¥»¥Ã¥È¤ò»ý¤Ä¡£ +はビットマスクで、すべてのビットが netlink グループ番号を表す。 +それぞれの netlink ファミリーは 32 のマルチキャストグループのセットを持つ。 +それぞれの netlink ファミリーは 32 のマルチキャストグループの +セットを持つ。 .BR bind (2) -¤¬¥½¥±¥Ã¥È¤ËÂФ·¤Æ¸Æ¤Ð¤ì¤ë¤È¡¢ +がソケットに対して呼ばれると、 .I sockaddr_nl -¤Î +の .I nl_groups -¥Õ¥£¡¼¥ë¥É¤Ë¤Ï listen ¤·¤¿¤¤¥°¥ë¡¼¥×¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÃÍ¤Ï 0 ¤Ç¡¢¥Þ¥ë¥Á¥­¥ã¥¹¥È¤ò°ìÀÚ¼õ¿®¤·¤Ê¤¤¡£ +フィールドには listen したいグループのビットマスクがセットされる。 +デフォルトの値は 0 で、マルチキャストを一切受信しない。 .BR sendmsg (2) -¤ä +や .BR connect (2) -¤Ë¤è¤Ã¤Æ¡¢¤¢¤ë¥½¥±¥Ã¥È¤«¤é¥á¥Ã¥»¡¼¥¸¤ò¥Þ¥ë¥Á¥­¥ã¥¹¥È¤·¤¿¤¤¤È¤­¤Ï¡¢ +によって、あるソケットからメッセージをマルチキャストしたいときは、 .I nl_groups -¤ËÁ÷¿®¤·¤¿¤¤¥°¥ë¡¼¥×¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤ò¥»¥Ã¥È¤¹¤ì¤Ð¤è¤¤¡£ -¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤«¡¢ +に送信したいグループのビットマスクをセットすればよい。 +実効ユーザー ID が 0 か、 .B CAP_NET_ADMIN -¸¢¸Â¤ò»ý¤Ä¥æ¡¼¥¶¡¼¤Î¤ß¤¬ netlink ¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¤Ë -Á÷¿®¤·¤¿¤ê¡¢¤³¤ì¤ò listen ¤·¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¸þ¤±¥á¥Ã¥»¡¼¥¸¤ò¼õ¿®¤·¤¿¾ì¹ç¡¢¤³¤ìÂФ¹¤ë±þÅú¤Ï -Á÷¤ê¼ç¤Î PID ¤È¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¤È¤ËÁ÷¤êÊÖ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -netlink ¤Ø¤Î¥½¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï Linux 2.2 ¤Î¿·µ¡Ç½¤Ç¤¢¤ë¡£ +権限を持つユーザーのみが netlink マルチキャストグループに +送信したり、これを listen したりすることができる。 +マルチキャストグループ向けメッセージを受信した場合、これ対する応答は +送り主の PID とマルチキャストグループとに送り返すべきである。 +.SH バージョン +netlink へのソケットインターフェースは Linux 2.2 の新機能である。 -Linux 2.0 ¤Ï¡¢¤â¤Ã¤È¸¶»ÏŪ¤Ê¥Ç¥Ð¥¤¥¹¥Ù¡¼¥¹¤Î netlink ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò -¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤¿ (¤³¤ì¤â¸ß´¹À­¤Î¤¿¤á¤Ëº£¤Ç¤â»ÈÍѤǤ­¤ë)¡£ -¸Å¤¤¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë´Ø¤·¤Æ¤Ï¤³¤³¤Ç¤Ïµ­½Ò¤·¤Ê¤¤¡£ +Linux 2.0 は、もっと原始的なデバイスベースの netlink インターフェースを +サポートしていた (これも互換性のために今でも使用できる)。 +古いインターフェースに関してはここでは記述しない。 -NETLINK_SELINUX ¤Ï Linux 2.6.4 ¤ÇÅо줷¤¿¡£ +NETLINK_SELINUX は Linux 2.6.4 で登場した。 -NETLINK_AUDIT ¤Ï Linux 2.6.6 ¤ÇÅо줷¤¿¡£ +NETLINK_AUDIT は Linux 2.6.6 で登場した。 -NETLINK_KOBJECT_UEVENT ¤Ï Linux 2.6.10 ¤ÇÅо줷¤¿¡£ +NETLINK_KOBJECT_UEVENT は Linux 2.6.10 で登場した。 -NETLINK_W1, NETLINK_FIB_LOOKUP ¤Ï Linux 2.6.13 ¤ÇÅо줷¤¿¡£ +NETLINK_W1, NETLINK_FIB_LOOKUP は Linux 2.6.13 で登場した。 -NETLINK_INET_DIAG, NETLINK_CONNECTOR, NETLINK_NETFILTER ¤Ï -Linux 2.6.14 ¤ÇÅо줷¤¿¡£ +NETLINK_INET_DIAG, NETLINK_CONNECTOR, NETLINK_NETFILTER は +Linux 2.6.14 で登場した。 -NETLINK_GENERIC, NETLINK_ISCSI ¤Ï Linux 2.6.15 ¤ÇÅо줷¤¿¡£ -.SH Ãí°Õ -Äã¥ì¥Ù¥ë¤Î¥«¡¼¥Í¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤è¤ê¡¢ +NETLINK_GENERIC, NETLINK_ISCSI は Linux 2.6.15 で登場した。 +.SH 注意 +低レベルのカーネルインターフェースより、 .I libnetlink -¤Þ¤¿¤Ï +または .I libnl -¤òÄ̤·¤Æ netlink ¤òÍøÍѤ¹¤ë¤Û¤¦¤¬Îɤ¤¤³¤È¤¬Â¿¤¤¡£ -.SH ¥Ð¥° -¤³¤Î man ¥Ú¡¼¥¸¤Ï´°À®¤·¤Æ¤¤¤Ê¤¤¡£ -.SH Îã -°Ê²¼¤ÎÎã¤Ç¤Ï¡¢ +を通して netlink を利用するほうが良いことが多い。 +.SH バグ +この man ページは完成していない。 +.SH 例 +以下の例では、 .B RTMGRP_LINK -(¥Í¥Ã¥È¥ï¡¼¥¯¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î create/delete/up/down ¥¤¥Ù¥ó¥È) ¤È +(ネットワークインターフェースの create/delete/up/down イベント) と .B RTMGRP_IPV4_IFADDR -(IPv4 ¥¢¥É¥ì¥¹¤Î add/delete ¥¤¥Ù¥ó¥È) ¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¤ò listen ¤¹¤ë +(IPv4 アドレスの add/delete イベント) マルチキャストグループを listen する .B NETLINK_ROUTE -netlink ¤òºîÀ®¤·¤Æ¤¤¤ë¡£ +netlink を作成している。 .in +4n .nf @@ -406,13 +406,13 @@ bind(fd, (struct sockaddr *) &sa, sizeof(sa)); .fi .in -¼¡¤ÎÎã¤Ç¤Ï¡¢netlink ¥á¥Ã¥»¡¼¥¸¤ò¥«¡¼¥Í¥ë (pid 0) ¤ËÁ÷¤ëÊýË¡¤ò¼¨¤·¤Æ¤¤¤ë¡£ -±þÅú¤òÄÉÀפ¹¤ëºÝ¤Î¿®ÍêÀ­¤ò¹â¤á¤ë¤¿¤á¤Ë¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬ -¥á¥Ã¥»¡¼¥¸¤Î¥·¡¼¥±¥ó¥¹ÈÖ¹æ¤òÀµ¤·¤¯½èÍý¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +次の例では、netlink メッセージをカーネル (pid 0) に送る方法を示している。 +応答を追跡する際の信頼性を高めるために、アプリケーションが +メッセージのシーケンス番号を正しく処理しなければならない点に注意すること。 .in +4n .nf -struct nlmsghdr *nh; /* Á÷¿®¤¹¤ë nlmsghdr ¤È¥Ú¥¤¥í¡¼¥É */ +struct nlmsghdr *nh; /* 送信する nlmsghdr とペイロード */ struct sockaddr_nl sa; struct iovec iov = { (void *) nh, nh\->nlmsg_len }; struct msghdr msg; @@ -422,14 +422,14 @@ memset(&sa, 0, sizeof(sa)); sa.nl_family = AF_NETLINK; nh\->nlmsg_pid = 0; nh\->nlmsg_seq = ++sequence_number; -/* NLM_F_ACK ¤òÀßÄꤹ¤ë¤³¤È¤Ç¡¢¥«¡¼¥Í¥ë¤Ë±þÅú¤òÍ׵᤹¤ë */ +/* NLM_F_ACK を設定することで、カーネルに応答を要求する */ nh\->nlmsg_flags |= NLM_F_ACK; sendmsg(fd, &msg, 0); .fi .in -ºÇ¸å¤Ï¡¢netlink ¥á¥Ã¥»¡¼¥¸¤ÎÆɤ߹þ¤ß¤ÎÎã¤Ç¤¢¤ë¡£ +最後は、netlink メッセージの読み込みの例である。 .in +4n .nf @@ -445,29 +445,29 @@ len = recvmsg(fd, &msg, 0); for (nh = (struct nlmsghdr *) buf; NLMSG_OK (nh, len); nh = NLMSG_NEXT (nh, len)) { - /* ¥Þ¥ë¥Á¥Ñ¡¼¥È¥á¥Ã¥»¡¼¥¸¤Î½ª¤ï¤ê */ + /* マルチパートメッセージの終わり */ if (nh\->nlmsg_type == NLMSG_DONE) return; if (nh\->nlmsg_type == NLMSG_ERROR) - /* ²¿¤é¤«¤Î¥¨¥é¡¼½èÍý¤ò¹Ô¤¦ */ + /* 何らかのエラー処理を行う */ ... - /* ¥Ú¥¤¥í¡¼¥É¤Î²òÀϤò³¤±¤ë */ + /* ペイロードの解析を続ける */ ... } .fi .in -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR cmsg (3), .BR netlink (3), .BR capabilities (7), .BR rtnetlink (7) .PP -libnetlink ¤Ë´Ø¤¹¤ë¾ðÊó¤Ï +libnetlink に関する情報は ftp://ftp.inr.ac.ru/ip-routing/iproute2* -libnl ¤Ë´Ø¤¹¤ë¾ðÊó¤Ï +libnl に関する情報は http://people.suug.ch/~tgr/libnl/ RFC 3549 "Linux Netlink as an IP Services Protocol" diff --git a/release/man7/operator.7 b/release/man7/operator.7 index 281ffa19..a93b681a 100644 --- a/release/man7/operator.7 +++ b/release/man7/operator.7 @@ -41,27 +41,27 @@ .\" by Yuichi SATO .\" .TH OPERATOR 7 2011-09-09 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -operator \- C ¸À¸ì¤Î±é»»»Ò¤ÎÍ¥Àè½ç°Ì¤Èɾ²Á¤Î½ç½ø -.SH ÀâÌÀ -¤³¤Î man ¥Ú¡¼¥¸¤Ç¤Ï C ¸À¸ì¤Î±é»»»Ò¤Èɾ²Á¤ÎÍ¥Àè½ç°Ì¤ò¥ê¥¹¥È¤¹¤ë¡£ +.SH 名前 +operator \- C 言語の演算子の優先順位と評価の順序 +.SH 説明 +この man ページでは C 言語の演算子と評価の優先順位をリストする。 .nf -.B "±é»»»Ò ·ë¹ç¤Î½ç½ø" -() [] \-> . º¸¤«¤é±¦¤Ø -! ~ ++ \-\- + \- (type) * & sizeof ±¦¤«¤éº¸¤Ø -* / % º¸¤«¤é±¦¤Ø -+ \- º¸¤«¤é±¦¤Ø -<< >> º¸¤«¤é±¦¤Ø -< <= > >= º¸¤«¤é±¦¤Ø -== != º¸¤«¤é±¦¤Ø -& º¸¤«¤é±¦¤Ø -^ º¸¤«¤é±¦¤Ø -| º¸¤«¤é±¦¤Ø -&& º¸¤«¤é±¦¤Ø -|| º¸¤«¤é±¦¤Ø -?: ±¦¤«¤éº¸¤Ø -= += \-= *= /= %= <<= >>= &= ^= |= ±¦¤«¤éº¸¤Ø -, º¸¤«¤é±¦¤Ø +.B "演算子 結合の順序" +() [] \-> . 左から右へ +! ~ ++ \-\- + \- (type) * & sizeof 右から左へ +* / % 左から右へ ++ \- 左から右へ +<< >> 左から右へ +< <= > >= 左から右へ +== != 左から右へ +& 左から右へ +^ 左から右へ +| 左から右へ +&& 左から右へ +|| 左から右へ +?: 右から左へ += += \-= *= /= %= <<= >>= &= ^= |= 右から左へ +, 左から右へ .fi .\" diff --git a/release/man7/packet.7 b/release/man7/packet.7 index 6e62c99c..f082153d 100644 --- a/release/man7/packet.7 +++ b/release/man7/packet.7 @@ -10,18 +10,18 @@ .\" Updated 2001-02-13, Kentaro Shirakata .\" Updated 2005-02-21, Akihiro MOTOKI .\" -.\"WORD physical layer ʪÍýÁØ -.\"WORD link level header(s) ¥ê¥ó¥¯¥ì¥Ù¥ë¥Ø¥Ã¥À -.\"WORD phyxical header(s) ʪÍý¥Ø¥Ã¥À -.\"WORD effective user id ¼Â¸ú¥æ¡¼¥¶¡¼ ID -.\"WORD capability ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ -.\"WORD pending error Ãٱ䥨¥é¡¼ -.\"WORD promiscuous mode ̵º¹Ê̥⡼¥É +.\"WORD physical layer 物理層 +.\"WORD link level header(s) リンクレベルヘッダ +.\"WORD phyxical header(s) 物理ヘッダ +.\"WORD effective user id 実効ユーザー ID +.\"WORD capability ケーパビリティ +.\"WORD pending error 遅延エラー +.\"WORD promiscuous mode 無差別モード .\" .TH PACKET 7 2008-08-08 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -packet, AF_PACKET \- ¥Ç¥Ð¥¤¥¹¥ì¥Ù¥ë¤Î¥Ñ¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ -.SH ½ñ¼° +.SH 名前 +packet, AF_PACKET \- デバイスレベルのパケットインターフェース +.SH 書式 .nf .B #include .br @@ -31,279 +31,279 @@ packet, AF_PACKET \- .sp .BI "packet_socket = socket(AF_PACKET, int " socket_type ", int "protocol ); .fi -.SH ÀâÌÀ -packet ¥½¥±¥Ã¥È¤Ï¡¢¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð (OSI ¥ì¥¤¥ä 2) ¥ì¥Ù¥ë¤Ç -À¸¤Î¥Ñ¥±¥Ã¥È (raw packet) ¤òÁ÷¼õ¿®¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ -packet ¥½¥±¥Ã¥È¤ò»È¤¦¤È¡¢¥æ¡¼¥¶¡¼¶õ´Ö¤ÇʪÍýÁؤξå¤Ë -¥×¥í¥È¥³¥ë¥â¥¸¥å¡¼¥ë¤ò¼ÂÁõ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +.SH 説明 +packet ソケットは、デバイスドライバ (OSI レイヤ 2) レベルで +生のパケット (raw packet) を送受信するために用いられる。 +packet ソケットを使うと、ユーザー空間で物理層の上に +プロトコルモジュールを実装することができる。 .I socket_type -¤Ë¤Ï +には .B SOCK_RAW -¤È +と .B SOCK_DGRAM -¤Î¤¤¤º¤ì¤«¤ò»ØÄꤹ¤ë¡£ +のいずれかを指定する。 .B SOCK_RAW -¤Ï¥ê¥ó¥¯¥ì¥Ù¥ë¥Ø¥Ã¥À¤ò´Þ¤à raw ¥Ñ¥±¥Ã¥È¤ò¡¢ +はリンクレベルヘッダを含む raw パケットを、 .B SOCK_DGRAM -¤Ï¥ê¥ó¥¯¥ì¥Ù¥ë¥Ø¥Ã¥À¤¬ºï½ü¤µ¤ì¤¿²Ã¹©ºÑ¤ß¥Ñ¥±¥Ã¥È¤ò¼¨¤¹¡£ -¥ê¥ó¥¯¥ì¥Ù¥ë¥Ø¥Ã¥À¾ðÊó¤Ï +はリンクレベルヘッダが削除された加工済みパケットを示す。 +リンクレベルヘッダ情報は .I sockaddr_ll -¤Ç¶¦Ä̤Υե©¡¼¥Þ¥Ã¥È¤ÇÆþ¼ê¤Ç¤­¤ë¡£ +で共通のフォーマットで入手できる。 .I protocol -¤Ë¤Ï IEEE 802.3 ¥×¥í¥È¥³¥ëÈÖ¹æ¤ò -¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Ç»ØÄꤹ¤ë¡£ -»ØÄê¤Ç¤­¤ë¥×¥í¥È¥³¥ë¤Î¥ê¥¹¥È¤Ï¡¢¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +には IEEE 802.3 プロトコル番号を +ネットワークバイトオーダーで指定する。 +指定できるプロトコルのリストは、インクルードファイル .I -¤ò»²¾È¡£¥×¥í¥È¥³¥ë¤ò +を参照。プロトコルを .B htons(ETH_P_ALL) -¤Ë¤¹¤ë¤È¡¢Á´¤Æ¤Î¥×¥í¥È¥³¥ë¤¬¼õ¿®¤µ¤ì¤ë¡£ -³°Éô¤«¤éÍ褿¥Ñ¥±¥Ã¥È¤Î¤¦¤Á»ØÄꤷ¤¿¥×¥í¥È¥³¥ë¤Î¤â¤Î¤Ï¡¢ -¥«¡¼¥Í¥ë¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¥×¥í¥È¥³¥ë¤ËÅϤµ¤ì¤ëÁ°¤ÎÃʳ¬¤Ç¡¢ -packet ¥½¥±¥Ã¥È¤ËÅϤµ¤ì¤ë¡£ +にすると、全てのプロトコルが受信される。 +外部から来たパケットのうち指定したプロトコルのものは、 +カーネルに実装されているプロトコルに渡される前の段階で、 +packet ソケットに渡される。 -packet ¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤Ç¤­¤ë¤Î¤Ï¡¢ -¼Â¸ú¥æ¡¼¥¶¡¼ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤«¡¢ +packet ソケットをオープンできるのは、 +実効ユーザーID が 0 のプロセスか、 .B CAP_NET_RAW -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹¤À¤±¤Ç¤¢¤ë¡£ +ケーパビリティを持つプロセスだけである。 .B SOCK_RAW -¥Ñ¥±¥Ã¥È¤Ç¤Ï¡¢¥Ñ¥±¥Ã¥È¤ò¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤È¼õ¤±ÅϤ·¤¹¤ëºÝ¡¢ -¥Ñ¥±¥Ã¥È¥Ç¡¼¥¿¤ËÊѹ¹¤¬¹Ô¤ï¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ -¥Ñ¥±¥Ã¥È¤Î¼õ¿®»þ¤Ë¤Ï¡¢¥¢¥É¥ì¥¹¤Î²òÀϤÀ¤±¤Ï¹Ô¤ï¤ì¡¢ -ɸ½àŪ¤Ê +パケットでは、パケットをデバイスドライバと受け渡しする際、 +パケットデータに変更が行われることはない。 +パケットの受信時には、アドレスの解析だけは行われ、 +標準的な .I sockaddr_ll -¥¢¥É¥ì¥¹¹½Â¤ÂΤËÅϤµ¤ì¤ë¡£¥Ñ¥±¥Ã¥È¤ÎÁ÷¿®»þ¤Ë¤Ï¡¢¥æ¡¼¥¶¤¬»ØÄꤹ¤ë -¥Ð¥Ã¥Õ¥¡¤ËʪÍýÁؤΥإåÀ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ -¥Ñ¥±¥Ã¥È¤Ï¤½¤Î¤Þ¤Þ½¤Àµ¤ò¼õ¤±¤º¤Ë¡¢¹Ô¤­À襢¥É¥ì¥¹¤«¤é·èÄꤵ¤ì¤ë -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥É¥é¥¤¥Ð¤Ë¥­¥å¡¼¥¤¥ó¥°¤µ¤ì¤ë¡£ -¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ë¤è¤Ã¤Æ¤Ï¡¢Â¾¤Î¥Ø¥Ã¥À¤ò¾ï¤ËÄɲ乤ë¤â¤Î¤â¤¢¤ë¡£ +アドレス構造体に渡される。パケットの送信時には、ユーザが指定する +バッファに物理層のヘッダが含まれている必要がある。 +パケットはそのまま修正を受けずに、行き先アドレスから決定される +インターフェースのネットワークドライバにキューイングされる。 +デバイスドライバによっては、他のヘッダを常に追加するものもある。 .B SOCK_RAW -¤Ï Linux 2.0 ¤Î obosolete ¤Ê +は Linux 2.0 の obosolete な .B AF_INET/SOCK_PACKET -¤È»÷¤Æ¤¤¤ë¤¬¡¢¸ß´¹À­¤¬¤¢¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ +と似ているが、互換性があるわけではない。 .B SOCK_DGRAM -¤Ï¤ä¤ä¹â°Ì¤Î¥ì¥Ù¥ë¤ÇÆ°ºî¤¹¤ë¡£ÊªÍý¥Ø¥Ã¥À¤Ï¡¢¥Ñ¥±¥Ã¥È¤¬¥æ¡¼¥¶¡¼¤Ë -ÅϤµ¤ì¤ëÁ°¤Ëºï½ü¤µ¤ì¤ë¡£ +はやや高位のレベルで動作する。物理ヘッダは、パケットがユーザーに +渡される前に削除される。 .B SOCK_DGRAM -¤Î packet ¥½¥±¥Ã¥È¤òÄ̤·¤ÆÁ÷¤é¤ì¤ë¥Ñ¥±¥Ã¥È¤Ï¡¢ +の packet ソケットを通して送られるパケットは、 .I sockaddr_ll -¤Î¹Ô¤­À襢¥É¥ì¥¹¤Î¾ðÊó¤Ë´ð¤Å¤­¡¢Å¬ÀÚ¤ÊʪÍýÁؤΥإåÀ¤¬Éղ䵤ì¤Æ¤«¤é¡¢ -¥­¥å¡¼¤ËÁ÷¤é¤ì¤ë¡£ +の行き先アドレスの情報に基づき、適切な物理層のヘッダが付加されてから、 +キューに送られる。 -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢»ØÄꤷ¤¿¥×¥í¥È¥³¥ë·¿¤Î¥Ñ¥±¥Ã¥È¤Ï¤¹¤Ù¤Æ packet -¥½¥±¥Ã¥È¤ËÁ÷¤é¤ì¤ë¡£ÆÃÄê¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤«¤é¤Î¥Ñ¥±¥Ã¥È¤À¤±¤ò -¼èÆÀ¤·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ +デフォルトでは、指定したプロトコル型のパケットはすべて packet +ソケットに送られる。特定のインターフェースからのパケットだけを +取得したい場合には、 .I struct sockaddr_ll -¤Ë¥¢¥É¥ì¥¹¤ò»ØÄꤷ¤Æ +にアドレスを指定して .BR bind (2) -¤ò¸Æ¤Ó¡¢ packet ¥½¥±¥Ã¥È¤ò¤½¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë·ë¤ÓÉÕ¤±¤ë (¥Ð¥¤¥ó¥É¤¹¤ë)¡£ -¥Ð¥¤¥ó¥É¤ÎºÝ¤Ë¤Ï¡¢¥¢¥É¥ì¥¹¥Õ¥£¡¼¥ë¥É¤Î¤¦¤Á +を呼び、 packet ソケットをそのインターフェースに結び付ける (バインドする)。 +バインドの際には、アドレスフィールドのうち .I sll_protocol -¤È +と .I sll_ifindex -¤À¤±¤¬ÍѤ¤¤é¤ì¤ë¡£ +だけが用いられる。 .BR connect (2) -Áàºî¤Ï packet ¥½¥±¥Ã¥È¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +操作は packet ソケットではサポートされていない。 .B MSG_TRUNC -¥Õ¥é¥°¤¬ +フラグが .BR recvmsg (2), .BR recv (2), .BR recvfrom (2) -¤ËÅϤµ¤ì¤ë¤È¡¢ (¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤è¤êÂ礭¤«¤Ã¤¿¤È¤·¤Æ¤â) ¾ï¤Ë¼ÂºÝ¤ËÄÌ¿®¤µ¤ì¤¿ -¥Ñ¥±¥Ã¥È¤ÎŤµ¤¬ÊÖ¤µ¤ì¤ë¡£ -.SS ¥¢¥É¥ì¥¹¤Î¥¿¥¤¥× -sockaddr_ll ¤Ï¥Ç¥Ð¥¤¥¹¤Ë°Í¸¤·¤Ê¤¤ÊªÍýÁؤΥ¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ +に渡されると、 (バッファサイズより大きかったとしても) 常に実際に通信された +パケットの長さが返される。 +.SS アドレスのタイプ +sockaddr_ll はデバイスに依存しない物理層のアドレスである。 .in +4n .nf struct sockaddr_ll { - unsigned short sll_family; /* ¾ï¤Ë AF_PACKET */ - unsigned short sll_protocol; /* ʪÍýÁؤΥץí¥È¥³¥ë */ - int sll_ifindex; /* ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ÈÖ¹æ */ - unsigned short sll_hatype; /* ¥Ø¥Ã¥À¼ïÊÌ */ - unsigned char sll_pkttype; /* ¥Ñ¥±¥Ã¥È¼ïÊÌ */ - unsigned char sll_halen; /* ¥¢¥É¥ì¥¹¤ÎŤµ */ - unsigned char sll_addr[8]; /* ʪÍýÁؤΥ¢¥É¥ì¥¹ */ + unsigned short sll_family; /* 常に AF_PACKET */ + unsigned short sll_protocol; /* 物理層のプロトコル */ + int sll_ifindex; /* インターフェース番号 */ + unsigned short sll_hatype; /* ヘッダ種別 */ + unsigned char sll_pkttype; /* パケット種別 */ + unsigned char sll_halen; /* アドレスの長さ */ + unsigned char sll_addr[8]; /* 物理層のアドレス */ }; .fi .in .I sll_protocol -¤Ïɸ½àŪ¤Ê¥¤¡¼¥µ¥Í¥Ã¥È¥×¥í¥È¥³¥ë¤Î¥¿¥¤¥×¤Ç¡¢ -¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Çµ­½Ò¤¹¤ë¡£ -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +は標準的なイーサネットプロトコルのタイプで、 +ネットワークバイトオーダーで記述する。 +インクルードファイル .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤¬¤³¤Î¥½¥±¥Ã¥È¤Î¥×¥í¥È¥³¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤È¤Ê¤ë¡£ +で定義されている。 +これがこのソケットのプロトコルのデフォルトとなる。 .I sll_ifindex -¤Ï¤½¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î interface index ¤Ç¤¢¤ë +はそのインターフェースの interface index である .RB ( netdevice (7) -¤ò»²¾È)¡£ -0 ¤Ï (¥Ð¥¤¥ó¥É¤¬µö²Ä¤µ¤ì¤Æ¤¤¤ë) Ǥ°Õ¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ +を参照)。 +0 は (バインドが許可されている) 任意のインターフェースにマッチする。 .I sll_hatype -¤Ï¡¢¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +は、インクルードファイル .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë ARP ¼ïÊ̤Ǥ¢¤ë¡£ +で定義されている ARP 種別である。 .I sll_pkttype -¤Ï¥Ñ¥±¥Ã¥È¼ïÊ̤Ǥ¢¤ë¡£»ØÄê¤Ç¤­¤ë¼ïÊ̤ϰʲ¼¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë: +はパケット種別である。指定できる種別は以下のいずれかである: .B PACKET_HOST -(¥í¡¼¥«¥ë¥Û¥¹¥È¸þ¤±¤Î¥Ñ¥±¥Ã¥È)¡¢ +(ローカルホスト向けのパケット)、 .B PACKET_BORADCAST -(ʪÍýÁØ¤Î¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥Ñ¥±¥Ã¥È)¡¢ +(物理層のブロードキャストパケット)、 .B PACKET_MULTICAST -(ʪÍýÁؤΥޥë¥Á¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤ËÁ÷¤ë¥Ñ¥±¥Ã¥È)¡¢ +(物理層のマルチキャストアドレスに送るパケット)、 .B PACKET_OTHERHOST -(¾¤Î¥Û¥¹¥È¤Ë¸þ¤±¤é¤ì¤¿¥Ñ¥±¥Ã¥È¤Î¤¦¤Á¡¢ -̵º¹Ê̥⡼¥É (promiscuous mode: ¸å½Ò) ¤Î¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ë¤è¤êÊä­¤µ¤ì¤¿¤â¤Î)¡¢ +(他のホストに向けられたパケットのうち、 +無差別モード (promiscuous mode: 後述) のデバイスドライバにより補足されたもの)、 .B PACKET_OUTGOING -(¥í¡¼¥«¥ë¥Û¥¹¥È¤«¤éȯ¿®¤µ¤ì¡¢ -packet ¥½¥±¥Ã¥È¤Ë¥ë¡¼¥×¥Ð¥Ã¥¯¤·¤Æ¤­¤¿¥Ñ¥±¥Ã¥È)¡£ -¤³¤ì¤é¤Î¼ïÊ̤¬°ÕÌ£¤ò»ý¤Ä¤Î¤Ï¼õ¿®»þ¤Î¤ß¤Ç¤¢¤ë¡£ +(ローカルホストから発信され、 +packet ソケットにループバックしてきたパケット)。 +これらの種別が意味を持つのは受信時のみである。 .I sll_addr -¤È +と .I sll_halen -¤Ï¡¢ÊªÍýÁؤΠ(¤Ä¤Þ¤ê IEEE 802.3 ¤Î) ¥¢¥É¥ì¥¹¤È¤½¤ÎŤµ¤Ç¤¢¤ë¡£ -¸·Ì©¤Ê²ò¼á¤Ï¥Ç¥Ð¥¤¥¹¤Ë°Í¸¤¹¤ë¡£ +は、物理層の (つまり IEEE 802.3 の) アドレスとその長さである。 +厳密な解釈はデバイスに依存する。 -¥Ñ¥±¥Ã¥È¤òÁ÷¤ë¾ì¹ç¤Ï¡¢ +パケットを送る場合は、 .IR sll_family , .IR sll_addr , .IR sll_halen , .I sll_ifindex -¤ò»ØÄꤹ¤ì¤Ð½½Ê¬¤Ç¤¢¤ë¡£ -¤½¤Î¾¤Î¥Õ¥£¡¼¥ë¥É¤Ï 0 ¤Ë¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£ +を指定すれば十分である。 +その他のフィールドは 0 にしておくべきである。 .I sll_hatype -¤È +と .I sll_pkttype -¤Ë¤Ï¼õ¿®¤·¤¿¥Ñ¥±¥Ã¥È¤Î¾ðÊó¤¬ÀßÄꤵ¤ì¤ë¡£ -¥Ð¥¤¥ó¥É¤ÎºÝ¤Ë¤Ï¡¢ +には受信したパケットの情報が設定される。 +バインドの際には、 .I sll_protocol -¤È +と .I sll_ifindex -¤À¤±¤¬»ÈÍѤµ¤ì¤ë¡£ -.SS ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó -packet ¥½¥±¥Ã¥È¤Ï¡¢ÊªÍýÁؤΥޥë¥Á¥­¥ã¥¹¥È¤ä -̵º¹Ê̥⡼¥É (promiscuous mode) ¤òÀßÄꤷ¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤Ë¤Ï +だけが使用される。 +.SS ソケットオプション +packet ソケットは、物理層のマルチキャストや +無差別モード (promiscuous mode) を設定して使うことができる。 +これには .B SOL_PACKET -¤È°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤Î¤¤¤º¤ì¤«¤ò»ØÄꤷ¤Æ +と以下のオプションのいずれかを指定して .BR setsockopt (2) -¤ò¸Æ¤Ù¤Ð¤è¤¤¡£ -¥Ð¥¤¥ó¥É¤òÄɲ乤ë¾ì¹ç¤Ï +を呼べばよい。 +バインドを追加する場合は .B PACKET_ADD_MEMBERSHIP -¤Ç¤¢¤ê¡¢¼è¤êµî¤ë¾ì¹ç¤Ï +であり、取り去る場合は .B PACKET_DROP_MEMBERSHIP -¤Ç¤¢¤ë¡£¤³¤ì¤é¤Ï¤¤¤º¤ì¤â +である。これらはいずれも .B packet_mreq -¹½Â¤ÂΤò°ú¤­¿ô¤Ë¼è¤ë¡£ +構造体を引き数に取る。 .in +4n .nf struct packet_mreq { - int mr_ifindex; /* ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ÈÖ¹æ */ - unsigned short mr_type; /* Æ°ºî */ - unsigned short mr_alen; /* ¥¢¥É¥ì¥¹¤ÎŤµ */ - unsigned char mr_address[8]; /* ʪÍýÁؤΥ¢¥É¥ì¥¹ */ + int mr_ifindex; /* インターフェース番号 */ + unsigned short mr_type; /* 動作 */ + unsigned short mr_alen; /* アドレスの長さ */ + unsigned char mr_address[8]; /* 物理層のアドレス */ }; .fi .in .I mr_ifindex -¤Ï¡¢¥¹¥Æ¡¼¥¿¥¹¤òÊѹ¹¤·¤¿¤¤¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ÈÖ¹æ¤Ç¤¢¤ë¡£ +は、ステータスを変更したいインターフェースの +インターフェース番号である。 .I mr_type -¥Ñ¥é¥á¡¼¥¿¤Ï¼Â¹Ô¤¹¤ëÆ°ºî¤ò»ØÄꤹ¤ë: +パラメータは実行する動作を指定する: .B PACKET_MR_PROMISC -¤Ï¡¢¶¦Í­¤·¤Æ¤¤¤ëÇÞÂΤ«¤é¤ÎÁ´¤Æ¤Î¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë -(¤·¤Ð¤·¤Ð "̵º¹Ê̥⡼¥É (promiscuous mode)" ¤È¸Æ¤Ð¤ì¤ë)¡£ +は、共有している媒体からの全てのパケットを受信できるようにする +(しばしば "無差別モード (promiscuous mode)" と呼ばれる)。 .B PACKET_MR_MULTICAST -¤Ï¡¢¤½¤Î¥½¥±¥Ã¥È¤ò¡¢ +は、そのソケットを、 .I mr_address -¤È +と .I mr_alen -¤Ç»ØÄꤵ¤ì¤ëʪÍýÁؤΥޥë¥Á¥­¥ã¥¹¥È¥Ö¥ë¡¼¥×¤Ë¥Ð¥¤¥ó¥É¤¹¤ë¡£ +で指定される物理層のマルチキャストブループにバインドする。 .B PACKET_MR_ALLMULTI -¤Ï socket ¤ò up ¤Ë¤·¤Æ¡¢¤½¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ËÅþ㤷¤¿¤¹¤Ù¤Æ¤Î -¥Þ¥ë¥Á¥­¥ã¥¹¥È¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ +は socket を up にして、そのインターフェースに到達したすべての +マルチキャストパケットを受信できるようにする。 -ÀΤ«¤é¤¢¤ë ioctl ¤À¤±¤Ç¤Ê¤¯¡¢ +昔からある ioctl だけでなく、 .BR SIOCSIFFLAGS , .BR SIOCADDMULTI , .B SIOCDELMULTI -¤òƱ¤¸ÌÜŪ¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を同じ目的に用いることができる。 .SS ioctl .B SIOCGSTAMP -¤òÍѤ¤¤ë¤È¡¢ºÇ¸å¤Ë¼õ¿®¤·¤¿¥Ñ¥±¥Ã¥È¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -°ú¤­¿ô¤Ï +を用いると、最後に受信したパケットのタイムスタンプを得ることができる。 +引き数は .I struct timeval -¤Ç¤¢¤ë¡£ +である。 .\" FIXME Document SIOCGSTAMPNS -¤µ¤é¤Ë¡¢ +さらに、 .BR netdevice (7) -¤ª¤è¤Ó +および .BR socket (7) -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëɸ½à¤Î ioctl ¤Ï¤¤¤º¤ì¤â -packet ¥½¥±¥Ã¥È¤Ë»ØÄê²Äǽ¤Ç¤¢¤ë¡£ -.SS ¥¨¥é¡¼½èÍý -packet ¥½¥±¥Ã¥È¤Ï¡¢¥Ñ¥±¥Ã¥È¤ò¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤ËÅϤ¹¤È¤­¤Ë -µ¯¤­¤¿¥¨¥é¡¼¤·¤«½èÍý¤·¤Ê¤¤¡£Ãٱ䥨¥é¡¼ (pending error) -¤Ë´Ø¤¹¤ë³µÇ°¤Ï»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -.SH ¥¨¥é¡¼ +で定義されている標準の ioctl はいずれも +packet ソケットに指定可能である。 +.SS エラー処理 +packet ソケットは、パケットをデバイスドライバに渡すときに +起きたエラーしか処理しない。遅延エラー (pending error) +に関する概念は持っていない。 +.SH エラー .TP .B EADDRNOTAVAIL -ÉÔÌÀ¤Ê¥Þ¥ë¥Á¥­¥ã¥¹¥È¥°¥ë¡¼¥×¥¢¥É¥ì¥¹¤¬ÅϤµ¤ì¤¿¡£ +不明なマルチキャストグループアドレスが渡された。 .TP .B EFAULT -¥æ¡¼¥¶¤¬ÅϤ·¤¿¥á¥â¥ê¥¢¥É¥ì¥¹¤¬ÉÔÀµ¡£ +ユーザが渡したメモリアドレスが不正。 .TP .B EINVAL -°ú¤­¿ô¤¬ÉÔÀµ¡£ +引き数が不正。 .TP .B EMSGSIZE -¥Ñ¥±¥Ã¥È¤¬¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î MTU ¤è¤êÂ礭¤¤¡£ +パケットがインターフェースの MTU より大きい。 .TP .B ENETDOWN -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ up ¤Ç¤Ê¤¤¡£ +インターフェースが up でない。 .TP .B ENOBUFS -¥Ñ¥±¥Ã¥È¤Ë³ä¤êÅö¤Æ¤ë¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£ +パケットに割り当てるメモリが足りない。 .TP .B ENODEV -¥Ç¥Ð¥¤¥¹Ì¾¤¬ÉÔÌÀ¡£¤¢¤ë¤¤¤Ï¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹¤Ç»ØÄꤵ¤ì¤¿ -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬ÉÔÌÀ¡£ +デバイス名が不明。あるいはインターフェースアドレスで指定された +インターフェースインデックスが不明。 .TP .B ENOENT -¥Ñ¥±¥Ã¥È¤ò°ì¤Ä¤â¼õ¿®¤·¤Æ¤¤¤Ê¤¤¡£ +パケットを一つも受信していない。 .TP .B ENOTCONN -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹¤¬ÅϤµ¤ì¤Ê¤«¤Ã¤¿¡£ +インターフェースアドレスが渡されなかった。 .TP .B ENXIO -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹¤ËÉÔÀµ¤Ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +インターフェースアドレスに不正なインターフェースインデックスが含まれている。 .TP .B EPERM -¤³¤ÎÁàºî¤ò¹Ô¤¦¤Î¤ËɬÍפʸ¢¸Â¤ò¥æ¡¼¥¶¤¬»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ +この操作を行うのに必要な権限をユーザが持っていない。 -¾åµ­°Ê³°¤Î¥¨¥é¡¼¤¬¡¢Äã¥ì¥Ù¥ë¤Î¥É¥é¥¤¥Ð¤ÇÀ¸À®¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +上記以外のエラーが、低レベルのドライバで生成されることがある。 +.SH バージョン .B AF_PACKET -¤Ï Linux 2.2 ¤Î¿·µ¡Ç½¤Ç¤¢¤ë¡£¤³¤ì¤è¤ê¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Î Linux ¤Ç¤Ï +は Linux 2.2 の新機能である。これより古いバージョンの Linux では .B SOCK_PACKET -¤Î¤ß¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤¿¡£ +のみをサポートしていた。 .PP -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +インクルードファイル .I -¤¬Â¸ºß¤¹¤ë¤Î¤Ï glibc 2.1 °Ê¹ß¤Ç¤¢¤ë¡£ -¤½¤ì°ÊÁ°¤Î¥·¥¹¥Æ¥à¤Ç¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ëɬÍפ¬¤¢¤ë: +が存在するのは glibc 2.1 以降である。 +それ以前のシステムでは以下のようにする必要がある: .sp .in +4n .nf @@ -312,44 +312,44 @@ packet #include /* The L2 protocols */ .fi .in -.SH Ãí°Õ -°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ +.SH 注意 +移植性の必要なプログラムでは、 .BR pcap (3) -·Ðͳ¤Ç +経由で .B AF_PACKET -¤òÍѤ¤¤ë¤³¤È¤ò¤ªÁ¦¤á¤¹¤ë¡£¤¿¤À¤·¡¢¤³¤ÎÊýË¡¤Ç¤Ï +を用いることをお薦めする。ただし、この方法では .B AF_PACKET -¤Îµ¡Ç½¤¹¤Ù¤Æ¤òÍøÍѤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +の機能すべてを利用することはできない。 .B SOCK_DGRAM -packet ¥½¥±¥Ã¥È¤Ï¡¢IEEE 802.3 ¥Õ¥ì¡¼¥à¤Î IEEE 802.2 LLC ¥Ø¥Ã¥À¤Î -À¸À®¤ä²òÀϤò¹Ô¤ª¤¦¤È¤·¤Ê¤¤¡£ +packet ソケットは、IEEE 802.3 フレームの IEEE 802.2 LLC ヘッダの +生成や解析を行おうとしない。 .B ETH_P_802_3 -¤¬Á÷¿®¥×¥í¥È¥³¥ë¤Ë»ØÄꤵ¤ì¤ë¤È¡¢¥«¡¼¥Í¥ë¤Ï 802.3 ¥Õ¥ì¡¼¥à¤ò -À¸À®¤·¤Æ length ¥Õ¥£¡¼¥ë¥É¤Ë½ñ¤­¹þ¤à¡£ -´°Á´¤Ë½àµò¤·¤¿¥Ñ¥±¥Ã¥È¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¥æ¡¼¥¶¡¼¤¬ LLC ¥Ø¥Ã¥À¤ò -Í¿¤¨¤ëɬÍפ¬¤¢¤ë¡£ÅþÃ夷¤¿ 802.3 ¥Ñ¥±¥Ã¥È¤Ç¤Ï¡¢ -DSAP/SSAP protocol ¤Î³Æ¥Õ¥£¡¼¥ë¥É¤Ï¿½Å²½ (multiplex) ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -Âå¤ï¤ê¤Ë¤³¤ì¤é¤Ï LLC ¥Ø¥Ã¥À¤¬Á°ÃÖ¤µ¤ì¤¿ +が送信プロトコルに指定されると、カーネルは 802.3 フレームを +生成して length フィールドに書き込む。 +完全に準拠したパケットを得るためにはユーザーが LLC ヘッダを +与える必要がある。到着した 802.3 パケットでは、 +DSAP/SSAP protocol の各フィールドは多重化 (multiplex) されていない。 +代わりにこれらは LLC ヘッダが前置された .B ETH_P_802_2 -¥×¥í¥È¥³¥ë¤È¤·¤ÆÍ¿¤¨¤é¤ì¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢ +プロトコルとして与えられる。したがって、 .B ETH_P_802_3 -¤Ë¥Ð¥¤¥ó¥É¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£¤«¤ï¤ê¤Ë +にバインドすることはできない。かわりに .B ETH_P_802_2 -¤Ë¥Ð¥¤¥ó¥É¤·¡¢¼«Ê¬¼«¿È¤Ç¥×¥í¥È¥³¥ë¤Î¿½Å²½¤ò¹Ô¤¦¤³¤È¡£ -Á÷¿®¤Î¥Ç¥Õ¥©¥ë¥È¤Ï¡¢¥×¥í¥È¥³¥ë¥Õ¥£¡¼¥ë¥É¤ò»ý¤Ä -ɸ½à¤Î Ethernet DIX encapsulation ¤Ç¤¢¤ë¡£ +にバインドし、自分自身でプロトコルの多重化を行うこと。 +送信のデフォルトは、プロトコルフィールドを持つ +標準の Ethernet DIX encapsulation である。 -packet ¥½¥±¥Ã¥È¤ÏÆþ½ÐÎϤΠfirewall chain ¤Ë±Æ¶Á¤ò¤¦¤±¤Ê¤¤¡£ -.SS °Ü¿¢À­ -Linux 2.0 ¤Ç¤Ï¡¢ packet ¥½¥±¥Ã¥È¤òÆÀ¤ëÊýË¡¤Ï +packet ソケットは入出力の firewall chain に影響をうけない。 +.SS 移植性 +Linux 2.0 では、 packet ソケットを得る方法は .BI "socket(AF_INET, SOCK_PACKET, " protocol )\fR -¤ò¸Æ¤Ö¤ä¤êÊý¤·¤«¤Ê¤«¤Ã¤¿¡£¤³¤ÎÊýË¡¤Ï¤Þ¤À¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ -ÍѤ¤¤Ê¤¤¤³¤È¤ò¶¯¤¯¿ä¾©¤¹¤ë¡£¸½ºß¤ÎÊýË¡¤È¤Î¼ç¤Ê°ã¤¤¤Ï¡¢ +を呼ぶやり方しかなかった。この方法はまだサポートされているが、 +用いないことを強く推奨する。現在の方法との主な違いは、 .B SOCK_PACKET -¤Ç¤Ï¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î»ØÄê¤Ë¸Å¤¤ +ではインターフェースの指定に古い .I struct sockaddr_pkt -¤òÍѤ¤¤ëÅÀ¤Ç¤¢¤ë¡£¤³¤ì¤Ë¤ÏʪÍýÁؤ«¤é¤ÎÆÈΩÀ­¤¬¤Ê¤¤¡£ +を用いる点である。これには物理層からの独立性がない。 .in +4n .nf @@ -362,20 +362,20 @@ struct sockaddr_pkt { .in .I spkt_family -¤Ï¥Ç¥Ð¥¤¥¹¤Î¥¿¥¤¥×¡¢ +はデバイスのタイプ、 .I spkt_protocol -¤Ï +は .I -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë IEEE 802.3 ¥×¥í¥È¥³¥ë¥¿¥¤¥×¡¢ +で定義されている IEEE 802.3 プロトコルタイプ、 .I spkt_device -¤Ï¥Ç¥Ð¥¤¥¹¤Î̾Á°¤ò NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤ÇÍ¿¤¨¤¿¤â¤Î (Îã: eth0) ¤Ç¤¢¤ë¡£ +はデバイスの名前を NULL 終端された文字列で与えたもの (例: eth0) である。 -¤³¤Î¹½Â¤ÂÎ¤Ï obsolete ¤Ç¤¢¤ê¡¢ -¿·¤·¤¯¥³¡¼¥É¤ò½ñ¤¯»þ¤Ë¤ÏÍѤ¤¤ë¤Ù¤­¤Ç¤Ê¤¤¡£ -.SH ¥Ð¥° -glibc 2.1 ¤Ë¤Ï +この構造体は obsolete であり、 +新しくコードを書く時には用いるべきでない。 +.SH バグ +glibc 2.1 には .B SOL_PACKET -¤ÎÄêµÁ¤¬¤Ê¤¤¡£²óÈòºö¤È¤·¤Æ¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë¤È¤è¤¤¡£ +の定義がない。回避策としては、以下のようにするとよい。 .in +4n .nf @@ -385,24 +385,24 @@ glibc 2.1 .fi .in -¤³¤ÎÌäÂê¤Ï¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤Î glibc ¤Ç¤Ï½¤Àµ¤µ¤ì¤Æ¤¤¤ë¡£ -libc5 ¤Î¥·¥¹¥Æ¥à¤Ë¤Ï¤³¤ÎÌäÂê¤Ï¤Ê¤¤¡£ +この問題は新しいバージョンの glibc では修正されている。 +libc5 のシステムにはこの問題はない。 -IEEE 802.2/803.3 ¤Î LLC ¤Î°·¤¤Êý¤Ï¡¢¥Ð¥°¤È¹Í¤¨¤Æ¤âÎɤ¤¤À¤í¤¦¡£ +IEEE 802.2/803.3 の LLC の扱い方は、バグと考えても良いだろう。 -¥½¥±¥Ã¥È¥Õ¥£¥ë¥¿¡¼¤Ë¤Ä¤¤¤Æµ­ºÜ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +ソケットフィルターについて記載されていない。 .B MSG_TRUNC .BR recvmsg (2) -³ÈÄ¥¤ÏÈó¾ï¤Ë¤Þ¤º¤¤Âнè¤Ç¤¢¤ê¡¢À©¸æ¥á¥Ã¥»¡¼¥¸¤ÇÃÖ¤­´¹¤¨¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -º£¤Î¤È¤³¤í +拡張は非常にまずい対処であり、制御メッセージで置き換えるべきである。 +今のところ .B SOCK_DGRAM -·Ðͳ¤Ç¥Ñ¥±¥Ã¥È¤Ë¤Ä¤¤¤Æ¤¤¤¿°¸À襢¥É¥ì¥¹¤òÆÀ¤ëÊýË¡¤¬¤Ê¤¤¡£ -.\" .SH Ãø¼Ô -.\" ¤³¤Î man ¥Ú¡¼¥¸¤Ï Matthew Wilcox ¤Î½õÎϤΤâ¤È¤Ë Andi Kleen ¤¬½ñ¤¤¤¿¡£ -.\" Linux 2.2 ¤Î AF_PACKET ¤Ï¡¢ -.\" Alan Cox ¤¿¤Á¤Î¥³¡¼¥É¤ò¤â¤È¤Ë¤·¤Æ Alexey Kuznetsov ¤¬¼ÂÁõ¤·¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +経由でパケットについていた宛先アドレスを得る方法がない。 +.\" .SH 著者 +.\" この man ページは Matthew Wilcox の助力のもとに Andi Kleen が書いた。 +.\" Linux 2.2 の AF_PACKET は、 +.\" Alan Cox たちのコードをもとにして Alexey Kuznetsov が実装した。 +.SH 関連項目 .BR socket (2), .BR pcap (3), .BR capabilities (7), @@ -410,10 +410,10 @@ IEEE 802.2/803.3 .BR raw (7), .BR socket (7) -ɸ½à IP Ethernet encapsulation ¤Ë´Ø¤¹¤ë¾ðÊó¤Ï RFC\ 894 ¤Ë¤¢¤ë¡£ +標準 IP Ethernet encapsulation に関する情報は RFC\ 894 にある。 -IEEE 802.3 IP encapsulation ¤Ë´Ø¤¹¤ë¾ðÊó¤Ï RFC\ 1700 ¤Ë¤¢¤ë¡£ +IEEE 802.3 IP encapsulation に関する情報は RFC\ 1700 にある。 -ʪÍýÁؤΥץí¥È¥³¥ë¤Ë´Ø¤¹¤ëµ­½Ò¤Ï +物理層のプロトコルに関する記述は .I -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë¡£ +インクルードファイルにある。 diff --git a/release/man7/path_resolution.7 b/release/man7/path_resolution.7 index 898d72e5..f950462a 100644 --- a/release/man7/path_resolution.7 +++ b/release/man7/path_resolution.7 @@ -27,182 +27,182 @@ .\" Updated and Modified 2005-11-04, Akihiro MOTOKI .\" .TH PATH_RESOLUTION 7 2009-12-05 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -path_resolution \- ¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹Ì¾¤Î²ò·èÊýË¡ -.SH ÀâÌÀ -¤¤¤¯¤Ä¤«¤Î UNIX/Linux ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ -1 ¤Ä°Ê¾å¤Î¥Õ¥¡¥¤¥ë̾¤ò°ú¤­¿ô¤È¤·¤Æ»ý¤Ä¡£ -¥Õ¥¡¥¤¥ë̾ (¤Þ¤¿¤Ï¥Ñ¥¹Ì¾) ¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ²ò·è¤µ¤ì¤ë¡£ -.SS "¥¹¥Æ¥Ã¥× 1: ²ò·è²áÄø¤ò³«»Ï¤¹¤ë" -¥Ñ¥¹Ì¾¤¬ \(aq/\(aq ʸ»ú¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -¥Ç¥£¥ì¥¯¥È¥ê¸¡º÷¤Î³«»ÏÅÀ¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ê¤ë¡£ -(¥×¥í¥»¥¹¤Ï¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤ò¿Æ¥×¥í¥»¥¹¤«¤é·Ñ¾µ¤¹¤ë¡£ -Ä̾ï¤Ï¡¢¤³¤ì¤¬¥Õ¥¡¥¤¥ë³¬ÁؤΥ롼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ê¤ë¡£ -¥×¥í¥»¥¹¤Ï +.SH 名前 +path_resolution \- ファイルのパス名の解決方法 +.SH 説明 +いくつかの UNIX/Linux システムコールは、 +1 つ以上のファイル名を引き数として持つ。 +ファイル名 (またはパス名) は以下のようにして解決される。 +.SS "ステップ 1: 解決過程を開始する" +パス名が \(aq/\(aq 文字で始まっている場合、 +ディレクトリ検索の開始点は呼び出し元のプロセスのルートディレクトリになる。 +(プロセスはルートディレクトリを親プロセスから継承する。 +通常は、これがファイル階層のルートディレクトリになる。 +プロセスは .BR chroot (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤ÆÊ̤Υ롼¥È¥Ç¥£¥ì¥¯¥È¥ê¤ò¼èÆÀ¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¤³¤Î¾ì¹ç¡¢¤½¤Î¥×¥í¥»¥¹¤È +システムコールを使って別のルートディレクトリを取得することもできる。 +この場合、そのプロセスと .B CLONE_NEWNS -¥Õ¥é¥°¤òÀßÄꤷ¤Æ +フラグを設定して .BR clone (2) -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ë¤è¤Ã¤Æ³«»Ï¤µ¤ì¤¿¤½¤Î¥×¥í¥»¥¹¤Î»Ò¹¤Ï¡¢ -´°Á´¤Ë¥×¥é¥¤¥Ù¡¼¥È¤Ê¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤ò¼èÆÀ¤Ç¤­¤ë¡£) -¥Ñ¥¹Ì¾¤Î \(aq/\(aq ¤ÎÉôʬ¤Ï¡¢¤³¤Î¤è¤¦¤Ë¤·¤Æ°·¤ï¤ì¤ë¡£ - -¥Ñ¥¹Ì¾¤¬ \(aq/\(aq ʸ»ú¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ -²ò·è²áÄø¤Ë¤ª¤±¤ë¥Ç¥£¥ì¥¯¥È¥ê¸¡º÷¤Î³«»ÏÅÀ¤Ï¡¢ -¥×¥í¥»¥¹¤Î¸½ºß¤Îºî¶È (working) ¥Ç¥£¥ì¥¯¥È¥ê¤È¤Ê¤ë¡£ -(¤³¤ì¤â¿Æ¥×¥í¥»¥¹¤«¤é·Ñ¾µ¤µ¤ì¤ë¡£ -¤³¤ì¤Ï +を呼び出すことによって開始されたそのプロセスの子孫は、 +完全にプライベートなマウント名前空間を取得できる。) +パス名の \(aq/\(aq の部分は、このようにして扱われる。 + +パス名が \(aq/\(aq 文字で始まっていない場合、 +解決過程におけるディレクトリ検索の開始点は、 +プロセスの現在の作業 (working) ディレクトリとなる。 +(これも親プロセスから継承される。 +これは .BR chdir (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤¦¤³¤È¤ÇÊѹ¹¤Ç¤­¤ë¡£) +システムコールを使うことで変更できる。) -\(aq/\(aq ʸ»ú¤Ç»Ï¤Þ¤ë¥Ñ¥¹Ì¾¤ÏÀäÂХѥ¹Ì¾¤È¸Æ¤Ð¤ì¡¢ -\(aq/\(aq ʸ»ú¤Ç»Ï¤Þ¤é¤Ê¤¤¥Ñ¥¹Ì¾¤ÏÁêÂХѥ¹Ì¾¤È¸Æ¤Ð¤ì¤ë¡£ -.SS "¥¹¥Æ¥Ã¥× 2: ¥Ñ¥¹¤òé¤ë" -¸½ºß¤Î¸¡º÷¥Ç¥£¥ì¥¯¥È¥ê¤ò¥Ç¥£¥ì¥¯¥È¥ê¸¡º÷¤Î³«»ÏÅÀ¤È¤¹¤ë¡£ -¤½¤·¤Æ¡¢¥Ñ¥¹Ì¾¤ÎºÇ¸å¤Î¹½À®Í×ÁÇ (component) ¤Ç¤Ê¤¤³Æ¹½À®Í×ÁǤˤĤ¤¤Æ¡¢ -¸½ºß¤Î¸¡º÷¥Ç¥£¥ì¥¯¥È¥ê¤Ç¸¡º÷¤ò¹Ô¤¦¡£ -¤³¤³¤Ç¹½À®Í×ÁÇ¤Ï \(aq/\(aq ¤Ç¶èÀÚ¤é¤ì¤¿Éôʬʸ»úÎó¤Ç¤¢¤ë¡£ +\(aq/\(aq 文字で始まるパス名は絶対パス名と呼ばれ、 +\(aq/\(aq 文字で始まらないパス名は相対パス名と呼ばれる。 +.SS "ステップ 2: パスを辿る" +現在の検索ディレクトリをディレクトリ検索の開始点とする。 +そして、パス名の最後の構成要素 (component) でない各構成要素について、 +現在の検索ディレクトリで検索を行う。 +ここで構成要素は \(aq/\(aq で区切られた部分文字列である。 -¥×¥í¥»¥¹¤¬¸½ºß¤Î¸¡º÷¥Ç¥£¥ì¥¯¥È¥ê¤Î¸¡º÷µö²Ä¤ò»ý¤¿¤Ê¤¤¾ì¹ç¡¢ +プロセスが現在の検索ディレクトリの検索許可を持たない場合、 .B EACCES -¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë ("Permission denied")¡£ +エラーが返される ("Permission denied")。 -¹½À®Í×ÁǤ¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¡¢ +構成要素が見つからない場合、 .B ENOENT -¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë -("No such file or directory")¡£ +エラーが返される +("No such file or directory")。 -¹½À®Í×ÁǤϸ«¤Ä¤«¤Ã¤¿¤¬¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤â¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¤â¤Ê¤¤¾ì¹ç¡¢ +構成要素は見つかったが、ディレクトリでもシンボリックリンクでもない場合、 .B ENOTDIR -¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë ("Not a directory")¡£ +エラーが返される ("Not a directory")。 -¹½À®Í×ÁǤ¬¸«¤Ä¤«¤Ã¤Æ¡¢¤«¤Ä¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¾ì¹ç¡¢ -¸½ºß¤Î¸¡º÷¥Ç¥£¥ì¥¯¥È¥ê¤ò¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËÀßÄꤷ¡¢ -¼¡¤Î¹½À®Í×ÁǤ˰ÜÆ°¤¹¤ë¡£ +構成要素が見つかって、かつディレクトリである場合、 +現在の検索ディレクトリをそのディレクトリに設定し、 +次の構成要素に移動する。 -¹½À®Í×ÁǤ¬¸«¤Ä¤«¤Ã¤Æ¡¢¤«¤Ä¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯ (symlink) ¤Ç¤¢¤ë¾ì¹ç¡¢ -(¸½ºß¤Î¸¡º÷¥Ç¥£¥ì¥¯¥È¥ê¤ò¥Ç¥£¥ì¥¯¥È¥ê¸¡º÷¤Î³«»ÏÅÀ¤È¤·¤Æ) -ºÇ½é¤Ë¤½¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ò²ò·è¤¹¤ë¡£ -·ë²Ì¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¾ì¹ç¡¢ +構成要素が見つかって、かつシンボリックリンク (symlink) である場合、 +(現在の検索ディレクトリをディレクトリ検索の開始点として) +最初にそのシンボリックリンクを解決する。 +結果がディレクトリでない場合、 .B ENOTDIR -¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î²ò·è¤¬À®¸ù¤·¤Æ¥Ç¥£¥ì¥¯¥È¥ê¤¬ÊÖ¤µ¤ì¤¿¾ì¹ç¡¢ -¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¸½ºß¤Î¸¡º÷¥Ç¥£¥ì¥¯¥È¥ê¤È¤·¤ÆÀßÄꤷ¡¢ -¼¡¤Î¹½À®Í×ÁǤ˰ÜÆ°¤¹¤ë¡£ -²ò·è²áÄø¤ËºÆµ¢¤¬´Þ¤Þ¤ì¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¥«¡¼¥Í¥ë¤ò¥¹¥¿¥Ã¥¯¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤ä -¥µ¡¼¥Ó¥¹µñÈÝ (denial of service) ¤«¤é¼é¤ë¤¿¤á¡¢ -ºÆµ¢¤ÎºÇÂç¤Î¿¼¤µ¤È¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òé¤ëºÇÂç²ó¿ô¤ËÀ©¸Â¤¬¤¢¤ë¡£ -ºÇÂçÃͤòĶ¤¨¤¿¾ì¹ç +エラーが返される。 +シンボリックリンクの解決が成功してディレクトリが返された場合、 +そのディレクトリを現在の検索ディレクトリとして設定し、 +次の構成要素に移動する。 +解決過程に再帰が含まれる点に注意すること。 +カーネルをスタックオーバーフローや +サービス拒否 (denial of service) から守るため、 +再帰の最大の深さとシンボリックリンクを辿る最大回数に制限がある。 +最大値を超えた場合 .B ELOOP -¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë -("Too many levels of symbolic links")¡£ +エラーが返される +("Too many levels of symbolic links")。 .\" -.\" ¸½ºß¤Î¤È¤³¤í: ¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯²ò·è¤Ë¤ª¤±¤ëºÆµ¢¤ÎºÇÂç¤Î¿¼¤µ¤Ï 5 ¤Ç¤¢¤ë¡£ -.\" ¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òé¤ëºÇÂç²ó¿ô¤Ï 40 ¤Ç¤¢¤ë¡£ -.\" _POSIX_SYMLOOP_MAX ¤Ï 8 ¤Ç¤¢¤ë¡£ -.SS "¥¹¥Æ¥Ã¥× 3: ºÇ¸å¤Î¥¨¥ó¥È¥ê¤ò¸«¤Ä¤±¤ë" -¥Ñ¥¹Ì¾¤ÎºÇ¸å¤Î¹½À®Í×ÁǤθ¡º÷¤Ï¡¢Á°¤Î¥¹¥Æ¥Ã¥×¤ÇÀâÌÀ¤·¤¿ -¾¤ÎÁ´¤Æ¤Î¹½À®Í×ÁǤÈƱ¤¸¤è¤¦¤Ë¼Â¹Ô¤µ¤ì¤ë¤¬¡¢2 ¤Ä¤Î°ã¤¤¤¬¤¢¤ë¡£ -(i) ºÇ¸å¤Î¹½À®Í×ÁǤϥǥ£¥ì¥¯¥È¥ê¤Ç¤¢¤ëɬÍפ¬¤Ê¤¤ -(¥Ñ¥¹²ò·è²áÄø¤Ë´Ø¤¹¤ë¸Â¤ê¤Ï¤É¤Á¤é¤Ç¤â¹½¤ï¤Ê¤¤ \(em -ÆÃÄê¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Í׵᤹¤ë¤â¤Î¤Ë¤è¤Ã¤Æ¡¢ -¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¾ì¹ç¤â¤¢¤ë¤·¡¢ -¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¾ì¹ç¤â¤¢¤ë)¡£ -(ii) ¹½À®Í×ÁǤ¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ë¥¨¥é¡¼¤Ë¤¹¤ëɬÍפϤʤ¤ \(em -¤½¤Î¹½À®Í×ÁǤòºîÀ®¤¹¤ë¤À¤±¤Ç¤è¤¤¾ì¹ç¤â¤¢¤ë¡£ -ºÇ¸å¤Î¥¨¥ó¥È¥ê¤Î¾ÜºÙ¤Ê°·¤¤¤Ï¡¢ -ÆÃÄê¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î man ¥Ú¡¼¥¸¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡£ -.SS ". ¤È .." -´·½¬¤È¤·¤Æ¡¢Á´¤Æ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¥¨¥ó¥È¥ê "." ¤È ".." ¤ò»ý¤Ä¡£ -¤³¤ì¤é¤Ï¤½¤ì¤¾¤ì¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¼«¿È¤È¤½¤Î¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤¹¤ë¡£ - -¥Ñ¥¹²ò·è²áÄø¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥¨¥ó¥È¥ê¤¬ÊªÍýŪ¤Ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë -¼ÂºÝ¤Ë¸ºß¤¹¤ë¤«Èݤ«¤Ë´Ø¤ï¤é¤º¡¢´·½¬Åª¤Ê°ÕÌ£¤ò»ý¤Ä¤È²¾Äꤹ¤ë¡£ - -¥ë¡¼¥È¤è¤ê¾å¤Ëé¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤: "/.." ¤Ï "/" ¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -.SS "¥Þ¥¦¥ó¥È°ÌÃÖ" -"mount dev path" ¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤¿¸å¡¢ -¥Ñ¥¹Ì¾ "path" ¤Ï¥Ç¥Ð¥¤¥¹ "dev" ¾å¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à³¬ÁؤΠ-¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤¹¤ë¤è¤¦¤Ë¤Ê¤ê¡¢°ÊÁ°¤Î°ÌÃÖ¤ò»²¾È¤·¤Ê¤¤¡£ - -¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î³°¤Ë½Ð¤ë¤³¤È¤¬¤Ç¤­¤ë: -"path/.." ¤Ï "dev" ¾å¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à³¬Áؤγ°¤Ç¤¢¤ë -"path" ¤Î¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤¹¤ë¡£ -.SS "ËöÈø¤Î¥¹¥é¥Ã¥·¥å" -¥Ñ¥¹Ì¾¤¬ \(aq/\(aq ¤Ç½ª¤ï¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -¥¹¥Æ¥Ã¥× 2 ¤Ë¤ª¤¤¤Æ¡¢¤½¤ÎÁ°¤Ë¤¢¤ë¹½À®Í×ÁǤβò·èË¡¤ò¼¡¤Î¤è¤¦¤Ë¶¯À©¤¹¤ë: -¤½¤Î¹½À®Í×ÁǤ¬Â¸ºß¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢¥Ç¥£¥ì¥¯¥È¥ê¤È¤·¤Æ²ò·è¤µ¤ì¤ë¡£ -¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¡¢ËöÈø¤Î \(aq/\(aq ¤¬Ìµ»ë¤µ¤ì¤ë¡£ -(¤Þ¤¿Æ±Íͤˡ¢ËöÈø¤Ë \(aq/\(aq ¤¬¤¢¤ë¥Ñ¥¹Ì¾¤Ï¡¢ -\(aq.\(aq ¤òËöÈø¤Ë²Ã¤¨¤ÆÆÀ¤é¤ì¤ë¥Ñ¥¹Ì¾¤ÈÅù¤·¤¤¡£) -.SS "ºÇ¸å¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¤È¤­" -¥Ñ¥¹Ì¾¤ÎºÇ¸å¤Î¹½À®Í×ÁǤ¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¤¢¤ë¾ì¹ç¡¢ -»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤ò¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤È¤¹¤ë¤«¡¢ -¤½¤ÎÆâÍƤˤĤ¤¤Æ¥Ñ¥¹¤ò²ò·è¤·¤¿·ë²Ì¤È¤¹¤ë¤«¤Ï¡¢ -¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë°Í¸¤¹¤ë¡£ -¤¿¤È¤¨¤Ð¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë +.\" 現在のところ: シンボリックリンク解決における再帰の最大の深さは 5 である。 +.\" シンボリックリンクを辿る最大回数は 40 である。 +.\" _POSIX_SYMLOOP_MAX は 8 である。 +.SS "ステップ 3: 最後のエントリを見つける" +パス名の最後の構成要素の検索は、前のステップで説明した +他の全ての構成要素と同じように実行されるが、2 つの違いがある。 +(i) 最後の構成要素はディレクトリである必要がない +(パス解決過程に関する限りはどちらでも構わない \(em +特定のシステムコールが要求するものによって、 +ディレクトリでなければならない場合もあるし、 +ディレクトリ以外でなければならない場合もある)。 +(ii) 構成要素が見つからない場合にエラーにする必要はない \(em +その構成要素を作成するだけでよい場合もある。 +最後のエントリの詳細な扱いは、 +特定のシステムコールの man ページで説明されている。 +.SS ". と .." +慣習として、全てのディレクトリはエントリ "." と ".." を持つ。 +これらはそれぞれ、そのディレクトリ自身とその親ディレクトリを参照する。 + +パス解決過程では、これらのエントリが物理的なファイルシステムに +実際に存在するか否かに関わらず、慣習的な意味を持つと仮定する。 + +ルートより上に辿ることはできない: "/.." は "/" と同じである。 +.SS "マウント位置" +"mount dev path" コマンドを実行した後、 +パス名 "path" はデバイス "dev" 上のファイルシステム階層の +ルートディレクトリを参照するようになり、以前の位置を参照しない。 + +マウントされたファイルシステムの外に出ることができる: +"path/.." は "dev" 上のファイルシステム階層の外である +"path" の親ディレクトリを参照する。 +.SS "末尾のスラッシュ" +パス名が \(aq/\(aq で終わっている場合、 +ステップ 2 において、その前にある構成要素の解決法を次のように強制する: +その構成要素が存在しなければならず、ディレクトリとして解決される。 +存在しない場合は、末尾の \(aq/\(aq が無視される。 +(また同様に、末尾に \(aq/\(aq があるパス名は、 +\(aq.\(aq を末尾に加えて得られるパス名と等しい。) +.SS "最後がシンボリックリンクのとき" +パス名の最後の構成要素がシンボリックリンクである場合、 +参照されるファイルをシンボリックリンクとするか、 +その内容についてパスを解決した結果とするかは、 +システムコールに依存する。 +たとえば、システムコール .BR lstat (2) -¤Ï¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ËºîÍѤ¹¤ë¡£ -°ìÊý¡¢ +はシンボリックリンクに作用する。 +一方、 .BR stat (2) -¤Ï¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç»Ø¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËºîÍѤ¹¤ë¡£ -.SS "Ťµ¤ÎÀ©¸Â" -¥Ñ¥¹Ì¾¤Ë¤ÏºÇÂ獬¤¢¤ë¡£ -¥Ñ¥¹Ì¾ (¤Þ¤¿¤Ï¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ò²ò·è¤¹¤ë¤È¤­¤ËÆÀ¤é¤ì¤ëÃæ´Ö¥Ñ¥¹Ì¾) ¤¬ -Ť¹¤®¤ë¾ì¹ç¡¢ +はシンボリックリンクで指されたファイルに作用する。 +.SS "長さの制限" +パス名には最大長がある。 +パス名 (またはシンボリックリンクを解決するときに得られる中間パス名) が +長すぎる場合、 .B ENAMETOOLONG -¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë ("Filename too long")¡£ -.SS "¶õ¤Î¥Ñ¥¹Ì¾" -¸µ¡¹¤Î UNIX ¤Ç¤Ï¡¢¶õ¤Î¥Ñ¥¹Ì¾¤Ï¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤·¤Æ¤¤¤¿¡£ -ºÇ¶á¡¢POSIX ¤Ç¤Ï¶õ¤Î¥Ñ¥¹Ì¾¤ò²ò·è¤¹¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¤È¤¤¤¦·èÄ꤬¤Ê¤µ¤ì¤¿¡£ -¤³¤Î¾ì¹ç¡¢Linux ¤Ï +エラーが返される ("Filename too long")。 +.SS "空のパス名" +元々の UNIX では、空のパス名は現在のディレクトリを参照していた。 +最近、POSIX では空のパス名を解決するべきではないという決定がなされた。 +この場合、Linux は .B ENOENT -¤òÊÖ¤¹¡£ -.SS "µö²Ä" -¥Õ¥¡¥¤¥ë¤Îµö²Ä¥Ó¥Ã¥È¤Ï¡¢3 ÁȤΠ3 ¥Ó¥Ã¥È¤«¤é¹½À®¤µ¤ì¤ë¡£ +を返す。 +.SS "許可" +ファイルの許可ビットは、3 組の 3 ビットから構成される。 .BR chmod (1) -¤È +と .BR stat (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤¬¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô ID ¤ÈÅù¤·¤¤¾ì¹ç¡¢ -3 ¤Ä¤Î¤¦¤ÁºÇ½é¤Î¥°¥ë¡¼¥×¤¬»È¤ï¤ì¤ë¡£ -¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥× ID ¤¬¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¸ú¥°¥ë¡¼¥× ID ¤Þ¤¿¤Ï +を参照すること。 +呼び出し元のプロセスの実効ユーザ ID がファイルの所有者 ID と等しい場合、 +3 つのうち最初のグループが使われる。 +ファイルのグループ ID が呼び出し元のプロセスの実効グループ ID または .RB ( setgroups (2) -¤ÇÀßÄꤵ¤ì¤ë) ¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÎÊä½õ (supplementary) ¥°¥ë¡¼¥× ID ¤È -Åù¤·¤¤¾ì¹ç¡¢3 ¤Ä¤Î¤¦¤Á 2 ÈÖÌܤΥ°¥ë¡¼¥×¤¬»È¤ï¤ì¤ë¡£ -¤É¤Á¤é¤Ë¤âÅö¤Æ¤Ï¤Þ¤é¤Ê¤¤¾ì¹ç¡¢3 ÈÖÌܤΥ°¥ë¡¼¥×¤¬»È¤ï¤ì¤ë¡£ +で設定される) 呼び出し元のプロセスの補助 (supplementary) グループ ID と +等しい場合、3 つのうち 2 番目のグループが使われる。 +どちらにも当てはまらない場合、3 番目のグループが使われる。 -3 ¥Ó¥Ã¥È¤¬»È¤ï¤ì¤ë¾ì¹ç¡¢ºÇ½é¤Î¥Ó¥Ã¥È¤ÏÆɤ߹þ¤ßµö²Ä¤ò·èÄꤷ¡¢ -2 ÈÖÌܤΥӥåȤϽñ¤­¹þ¤ßµö²Ä¤ò·èÄꤹ¤ë¡£ -¤Þ¤¿ 3 ÈÖÌܤΥӥåȤϡ¢Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¤Ï¼Â¹Ôµö²Ä¤òɽ¤·¡¢ -¥Ç¥£¥ì¥¯¥È¥ê¤Î¾ì¹ç¤Ï¸¡º÷µö²Ä¤òɽ¤¹¡£ +3 ビットが使われる場合、最初のビットは読み込み許可を決定し、 +2 番目のビットは書き込み許可を決定する。 +また 3 番目のビットは、通常のファイルの場合は実行許可を表し、 +ディレクトリの場合は検索許可を表す。 -Linux ¤Ï¡¢µö²Ä¤Î¥Á¥§¥Ã¥¯¤Ë¤ª¤¤¤Æ¡¢¼Â¸ú¥æ¡¼¥¶ ID ¤Ç¤Ï¤Ê¤¯ fsuid ¤ò»È¤¦¡£ -Ä̾ï¤Ï fsuid ¤Ï¼Â¸ú¥æ¡¼¥¶ ID ¤ÈÅù¤·¤¤¤¬¡¢fsuid ¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë +Linux は、許可のチェックにおいて、実効ユーザ ID ではなく fsuid を使う。 +通常は fsuid は実効ユーザ ID と等しいが、fsuid はシステムコール .BR setfsuid (2) -¤ÇÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +で変更することができる。 -(¤³¤³¤Ç "fsuid" ¤Ï "file system user ID" ¤òɽ¤·¤Æ¤¤¤ë¡£ -¤³¤Î³µÇ°¤Ï¡Ö¥×¥í¥»¥¹¤¬Æ±¤¸¼Â¸ú¥æ¡¼¥¶ ID ¤ò»ý¤Ä¥×¥í¥»¥¹¤Ë -Ʊ»þ¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤ë¡×¤È¤¤¤¦¥æ¡¼¥¶¶õ´Ö NFS ¥µ¡¼¥Ð¤ò -¼ÂÁõ¤¹¤ëºÝ¤ËɬÍפǤ¢¤Ã¤¿¡£ -¤³¤ì¤Ïº£¤Ç¤ÏÇѤì¤Æ¤·¤Þ¤Ã¤¿¡£ +(ここで "fsuid" は "file system user ID" を表している。 +この概念は「プロセスが同じ実効ユーザ ID を持つプロセスに +同時にシグナルを送ることができる」というユーザ空間 NFS サーバを +実装する際に必要であった。 +これは今では廃れてしまった。 .BR setfsuid (2) -¤ò»È¤¦¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +を使うべきではない。 -ƱÍͤˡ¢Linux ¤Ç¤Ï¼Â¸ú¥°¥ë¡¼¥× ID ¤ÎÂå¤ï¤ê¤Ë -fsgid ("¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¡¦¥°¥ë¡¼¥×ID") ¤ò»È¤¦¡£ +同様に、Linux では実効グループ ID の代わりに +fsgid ("ファイルシステム・グループID") を使う。 .BR setfsgid (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .\" FIXME say something about file system mounted read-only ? -.SS "µö²Ä¤Î³Îǧ¤ò¥¹¥­¥Ã¥×¤¹¤ë: ¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤È¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£" -ÅÁÅýŪ¤Ê UNIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶ +.SS "許可の確認をスキップする: スーパーユーザとケーパビリティ" +伝統的な UNIX システムでは、スーパーユーザ .RI ( root , -¥æ¡¼¥¶ ID 0) ¤ÏÈó¾ï¤Ë¶¯ÎϤǤ¢¤ê¡¢¥Õ¥¡¥¤¥ë¥¢¥¯¥»¥¹»þ¤Î -µö²Ä¤Ë¤è¤ëÀ©¸Â¤òÁ´¤Æ¥¹¥­¥Ã¥×¤¹¤ë¡£ +ユーザ ID 0) は非常に強力であり、ファイルアクセス時の +許可による制限を全てスキップする。 .\" (but for exec at least one x bit must be set) -- AEB .\" but there is variation across systems on this point: for .\" example, HP-UX and Tru64 are as described by AEB. However, @@ -210,26 +210,26 @@ fsgid (" .\" access(X_OK) by superuser will report success, regardless .\" of the file's execute permission bits. -- MTK (Oct 05) -Linux ¤Ç¤Ï¡¢¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¸¢¸Â¤¬Ê£¿ô¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ëʬ³ä¤µ¤ì¤Æ¤¤¤ë +Linux では、スーパーユーザ権限が複数のケーパビリティに分割されている .RB ( capabilities (7) -»²¾È)¡£¥Õ¥¡¥¤¥ë¤Îµö²Ä¤Î³Îǧ¤Ë¤Ï¡¢ +参照)。ファイルの許可の確認には、 .B CAP_DAC_OVERRIDE -¤È +と .B CAP_DAC_READ_SEARCH -¤Î 2¤Ä¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬´Ø·¸¤¹¤ë -(¥×¥í¥»¥¹¤Î fsuid ¤¬ 0 ¤Î¾ì¹ç¡¢¤½¤Î¥×¥í¥»¥¹¤Ï¤³¤ì¤é¤Î¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä)¡£ +の 2つのケーパビリティが関係する +(プロセスの fsuid が 0 の場合、そのプロセスはこれらのケーパビリティを持つ)。 .B CAP_DAC_OVERRIDE -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ÏÁ´¤Æ¤Îµö²Ä¥Á¥§¥Ã¥¯¤ò¾å½ñ¤­¤¹¤ë¡£ -¼ÂºÝ¤Ë¤Ï¡¢ÂоݤȤʤë¥Õ¥¡¥¤¥ë¤Î 3 ¤Ä¤Î¼Â¹Ôµö²Ä¥Ó¥Ã¥È¤Î¤¦¤Á¤Î -¾¯¤Ê¤¯¤È¤â 1 ¤Ä¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢¼Â¹Ô¤òµö²Ä¤¹¤ë¤À¤±¤Ç¤¢¤ë¡£ +ケーパビリティは全ての許可チェックを上書きする。 +実際には、対象となるファイルの 3 つの実行許可ビットのうちの +少なくとも 1 つが設定されていれば、実行を許可するだけである。 .B CAP_DAC_READ_SEARCH -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ·¤ÆÆɤ߹þ¤ß¤È¸¡º÷¤òµö²Ä¤·¡¢ -Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤ÆÆɤ߹þ¤ß¤òµö²Ä¤¹¤ë¡£ +ケーパビリティは、ディレクトリに対して読み込みと検索を許可し、 +通常のファイルに対して読み込みを許可する。 .\" FIXME say something about immutable files .\" FIXME say something about ACLs -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR readlink (2), .BR capabilities (7), .BR credentials (7), diff --git a/release/man7/pipe.7 b/release/man7/pipe.7 index 5f9dd83a..74504fe0 100644 --- a/release/man7/pipe.7 +++ b/release/man7/pipe.7 @@ -26,215 +26,215 @@ .\" Translated 2005-12-26, Akihiro MOTOKI .\" .TH PIPE 7 2005-12-08 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -pipe \- ¥Ñ¥¤¥×¤È FIFO ¤Î³µÍ× -.SH ÀâÌÀ -¥Ñ¥¤¥×¤È FIFO (̾Á°ÉÕ¤­¥Ñ¥¤¥×¤È¤â¤¤¤¦) ¤Ï¡¢ -ñÊý¸þ¤Î¥×¥í¥»¥¹´ÖÄÌ¿®¥Á¥ã¥Í¥ë¤òÄ󶡤¹¤ë¡£ -¥Ñ¥¤¥×¤Ë¤Ï¡ÖÆɤ߽Ф·Â¦¡×¤È¡Ö½ñ¤­¹þ¤ß¦¡×¤¬¤¢¤ë¡£ -¥Ñ¥¤¥×¤Î½ñ¤­¹þ¤ß¦¤Ç½ñ¤­¹þ¤Þ¤ì¤¿¥Ç¡¼¥¿¤Ï¡¢ -¥Ñ¥¤¥×¤ÎÆɤ߽Ф·Â¦¤«¤éÆɤ߽Ф¹¤³¤È¤¬¤Ç¤­¤ë¡£ +.SH 名前 +pipe \- パイプと FIFO の概要 +.SH 説明 +パイプと FIFO (名前付きパイプともいう) は、 +単方向のプロセス間通信チャネルを提供する。 +パイプには「読み出し側」と「書き込み側」がある。 +パイプの書き込み側で書き込まれたデータは、 +パイプの読み出し側から読み出すことができる。 -¥Ñ¥¤¥×¤òºîÀ®¤¹¤ë¤Ë¤Ï +パイプを作成するには .BR pipe (2) -¤ò»ÈÍѤ¹¤ë¡£ +を使用する。 .BR pipe (2) -¤Ï¿·¤·¤¤¥Ñ¥¤¥×¤òºîÀ®¤·¡¢¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÆó¤ÄÊÖ¤¹¡£ -¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¦¤Á¡¢°ìÊý¤Ï¥Ñ¥¤¥×¤ÎÆɤ߽Ф·Â¦¤ò¡¢¤â¤¦°ìÊý¤Ï -½ñ¤­¹þ¤ß¦¤ò»²¾È¤·¤Æ¤¤¤ë¡£ -¥Ñ¥¤¥×¤Ï´ØÏ¢¤¹¤ë¥×¥í¥»¥¹´Ö¤ÎÄÌ¿®¤òºîÀ®¤¹¤ë¤Î¤Ë»ÈÍѤǤ­¤ë¡£ -Îã¤Ï +は新しいパイプを作成し、ファイル・ディスクリプタを二つ返す。 +ディスクリプタのうち、一方はパイプの読み出し側を、もう一方は +書き込み側を参照している。 +パイプは関連するプロセス間の通信を作成するのに使用できる。 +例は .BR pipe (2) -¤ò»²¾È¡£ +を参照。 -FIFO (First In First Out ¤Î¾Êά) ¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Î̾Á°¤ò»ý¤Á¡¢ +FIFO (First In First Out の省略) はファイルシステムでの名前を持ち、 .BR open (2) -¤ò»È¤Ã¤Æ¥ª¡¼¥×¥ó¤Ç¤­¤ë +を使ってオープンできる .RB ( mkfifo (3) -¤ò»È¤Ã¤ÆºîÀ®¤µ¤ì¤ë)¡£ -¤É¤ó¤Ê¥×¥í¥»¥¹¤Ç¤â¡¢¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹µö²Ä¤¬¤¢¤ì¤Ð FIFO ¤ò¥ª¡¼¥×¥ó¤¹¤ë -¤³¤È¤¬¤Ç¤­¤ë¡£ -Æɤ߽Ф·Â¦¤ò¥ª¡¼¥×¥ó¤¹¤ë¤Ë¤Ï +を使って作成される)。 +どんなプロセスでも、ファイルのアクセス許可があれば FIFO をオープンする +ことができる。 +読み出し側をオープンするには .B O_RDONLY -¥Õ¥é¥°¤ò»ÈÍѤ·¡¢½ñ¤­¹þ¤ß¦¤ò¥ª¡¼¥×¥ó¤¹¤ë¤Ë¤Ï +フラグを使用し、書き込み側をオープンするには .B O_WRONLY -¥Õ¥é¥°¤ò»ÈÍѤ¹¤ë¡£¾ÜºÙ¤Ï +フラグを使用する。詳細は .BR fifo (7) -¤ò»²¾È¡£ -¡ÚÃí°Õ¡Û -FIFO ¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÆâ¤Î¥Ñ¥¹Ì¾¤ò»ý¤Ä¤¬¡¢ -FIFO ¤ËÂФ·¤ÆÆþ½ÐÎϤò¹Ô¤Ã¤Æ¤â¡¢(¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬Â¸ºß¤¹¤ë¥Ç¥Ð¥¤¥¹¤¬ -¤¢¤Ã¤¿¤È¤·¤Æ¤â) ¤½¤Î¥Ç¥Ð¥¤¥¹¤ËÂФ¹¤ëÁàºî¤ÏȯÀ¸¤·¤Ê¤¤¡£ -.SS "¥Ñ¥¤¥×¤ä FIFO ¤ËÂФ¹¤ëÆþ½ÐÎÏ" -¥Ñ¥¤¥×¤È FIFO ¤Î°ã¤¤¤ÏºîÀ®¤ä¥ª¡¼¥×¥ó¤ÎÊýË¡¤À¤±¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤ÎÁàºî¤¬´°Î»¤·¤¿¸å¤Ï¡¢¥Ñ¥¤¥×¤È FIFO ¤ËÂФ¹¤ëÆþ½ÐÎÏ¤Ï -Á´¤¯Æ±¤¸»ÅÁȤߤǹԤï¤ì¤ë¡£ +を参照。 +【注意】 +FIFO はファイルシステム内のパス名を持つが、 +FIFO に対して入出力を行っても、(ファイルシステムが存在するデバイスが +あったとしても) そのデバイスに対する操作は発生しない。 +.SS "パイプや FIFO に対する入出力" +パイプと FIFO の違いは作成やオープンの方法だけである。 +これらの操作が完了した後は、パイプと FIFO に対する入出力は +全く同じ仕組みで行われる。 -¥×¥í¥»¥¹¤¬¶õ¤Î¥Ñ¥¤¥×¤«¤éÆɤ߽Ф·¤ò¹Ô¤ª¤¦¤È¤·¤¿¾ì¹ç¡¢ +プロセスが空のパイプから読み出しを行おうとした場合、 .BR read (2) -¤Ï¥Ç¡¼¥¿¤¬Æɤ߽Ф·²Äǽ¤Ë¤Ê¤ë¤Þ¤ÇÄä»ß¤¹¤ë¡£ -¥×¥í¥»¥¹¤¬¥Õ¥ë¾õÂ֤Υѥ¤¥×¤Ë½ñ¤­¹þ¤ß¤ò¹Ô¤ª¤¦¤È¤·¤¿¾ì¹ç¡¢ +はデータが読み出し可能になるまで停止する。 +プロセスがフル状態のパイプに書き込みを行おうとした場合、 .BR write (2) -¤Ï½ñ¤­¹þ¤ß¤ò´°Î»¤¹¤ë¤Î¤Ë½½Ê¬¤ÊÎ̤Υѥ¤¥×¤«¤é¤ÎÆɤ߽Ф·¤¬ -¹Ô¤ï¤ì¤ë¤Þ¤ÇÄä»ß¤¹¤ë¡£ -ÈóÄä»ß (nonblocking) I/O ¤ò»È¤¦¤³¤È¤â¤Ç¤­¤ë¡£ -ÈóÄä»ß I/O ¤ò»È¤¦¤Ë¤Ï¡¢ +は書き込みを完了するのに十分な量のパイプからの読み出しが +行われるまで停止する。 +非停止 (nonblocking) I/O を使うこともできる。 +非停止 I/O を使うには、 .BR fcntl (2) .B F_SETFL -Áàºî¤ò»È¤Ã¤Æ¡¢ +操作を使って、 .B O_NONBLOCK -¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤òÍ­¸ú¤Ë¤¹¤ë¡£ +オープンファイル状態フラグを有効にする。 -¥Ñ¥¤¥×¤Ë¤è¤êÄ󶡤µ¤ì¤ëÄÌ¿®¥Á¥ã¥Í¥ë¤Ï¡Ö¥Ð¥¤¥È¥¹¥È¥ê¡¼¥à¡×¤Ç¤¢¤ê¡¢ -¥á¥Ã¥»¡¼¥¸¶­³¦¤Î³µÇ°¤Ï¤Ê¤¤¡£ +パイプにより提供される通信チャネルは「バイトストリーム」であり、 +メッセージ境界の概念はない。 -¥Ñ¥¤¥×¤Î½ñ¤­¹þ¤ß¦¤ò»²¾È¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ -¤¹¤Ù¤Æ¥¯¥í¡¼¥º¤µ¤ì¤¿¸å¤Ç¡¢¤½¤Î¥Ñ¥¤¥×¤«¤é +パイプの書き込み側を参照しているファイル・ディスクリプタが +すべてクローズされた後で、そのパイプから .BR read (2) -¤ò¹Ô¤ª¤¦¤È¤·¤¿¾ì¹ç¡¢ -end-of-file (¥Õ¥¡¥¤¥ëËöÈø) ¤¬¸«¤¨¤ë +を行おうとした場合、 +end-of-file (ファイル末尾) が見える .RB ( read (2) -¤Ï 0 ¤òÊÖ¤¹)¡£ -¥Ñ¥¤¥×¤ÎÆɤ߽Ф·Â¦¤ò»²¾È¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ -¤¹¤Ù¤Æ¥¯¥í¡¼¥º¤µ¤ì¤¿¸å¤Ç¡¢ +は 0 を返す)。 +パイプの読み出し側を参照しているファイル・ディスクリプタが +すべてクローズされた後で、 .BR write (2) -¤ò¹Ô¤¦¤È¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë +を行うと、呼び出し元プロセスに .B SIGPIPE -¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£ -¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬¤³¤Î¥·¥°¥Ê¥ë¤ò̵»ë¤·¤Æ¤¤¤ë¤È¤­¤Ë¤Ï¡¢ +シグナルが送られる。 +呼び出し元プロセスがこのシグナルを無視しているときには、 .BR write (2) -¤Ï¥¨¥é¡¼ +はエラー .B EPIPE -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .BR pipe (2) -¤È +と .BR fork (2) -¤ò»ÈÍѤ¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ +を使用するアプリケーションでは、 .BR close (2) -¤òŬÀڤ˻ȤäÆÉÔɬÍפʥե¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÊ£À½¤ò -¥¯¥í¡¼¥º¤¹¤Ù¤­¤Ç¤¢¤ë¡£¤³¤¦¤¹¤ë¤³¤È¤Ç¡¢É¬Íפʻþ¤Ë³Î¼Â¤Ë -end-of-file ¤ä +を適切に使って不必要なファイル・ディスクリプタの複製を +クローズすべきである。こうすることで、必要な時に確実に +end-of-file や .BR SIGPIPE / EPIPE -¤¬ÇÛÁ÷¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +が配送されるようになる。 -¥Ñ¥¤¥×¤Ë¤Ï +パイプには .BR lseek (2) -¤ò¹Ô¤¦¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -.SS ¥Ñ¥¤¥×¤ÎÍÆÎÌ -¥Ñ¥¤¥×¤ÎÍÆÎ̤ˤϾå¸Â¤¬¤¢¤ë¡£ -¥Ñ¥¤¥×¤¬¥Õ¥ë¤Î¾ì¹ç¡¢ +を行うことはできない。 +.SS パイプの容量 +パイプの容量には上限がある。 +パイプがフルの場合、 .BR write (2) -¤ÏÄä»ß¤·¤¿¤ê¼ºÇÔ¤·¤¿¤ê¤¹¤ë¡£¤É¤Á¤é¤Ë¤Ê¤ë¤«¤Ï +は停止したり失敗したりする。どちらになるかは .B O_NONBLOCK -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Ë°Í¸¤¹¤ë (²¼µ­»²¾È)¡£ -¼ÂÁõ¤Ë¤è¤ê¡¢¥Ñ¥¤¥×¤ÎÍÆÎ̤ξå¸Â¤Ï°Û¤Ê¤ë¡£ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÏÆÃÄê¤ÎÍÆÎ̤òÁ°Äó¤Ë¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -½ñ¤­¹þ¤ß¦¤Î¥×¥í¥»¥¹¤¬Ää»ß¤·¤¿¤Þ¤Þ¤Ë¤Ê¤é¤Ê¤¤¤è¤¦¡¢ -Æɤ߽Ф·Â¦¤Î¥×¥í¥»¥¹¤Ï¥Ç¡¼¥¿¤¬ÍøÍѲÄǽ¤Ë¤Ê¤Ã¤¿¤é¤Ç¤­¤ë¤À¤±¤¹¤°¤Ë -Æɤ߽Ф·¤ò¹Ô¤¦¤è¤¦¤Ë¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òÀ߷פ¹¤Ù¤­¤Ç¤¢¤ë¡£ +フラグがセットされているかどうかに依存する (下記参照)。 +実装により、パイプの容量の上限は異なる。 +アプリケーションは特定の容量を前提にすべきではない。 +書き込み側のプロセスが停止したままにならないよう、 +読み出し側のプロセスはデータが利用可能になったらできるだけすぐに +読み出しを行うように、アプリケーションを設計すべきである。 -¥Ð¡¼¥¸¥ç¥ó 2.6.11 ¤è¤êÁ°¤Î Linux ¤Ç¤Ï¥Ñ¥¤¥×¤ÎÍÆÎ̤ϥ·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥º -¤ÈƱ¤¸¤Ç¤¢¤Ã¤¿ (Î㤨¤Ð i386 ¤Ç¤Ï 4096 ¥Ð¥¤¥È)¡£ -Linux 2.6.11 °Ê¹ß¤Ç¤Ï¡¢¥Ñ¥¤¥×¤ÎÍÆÎÌ¤Ï 65536 ¥Ð¥¤¥È¤Ç¤¢¤ë¡£ +バージョン 2.6.11 より前の Linux ではパイプの容量はシステムのページサイズ +と同じであった (例えば i386 では 4096 バイト)。 +Linux 2.6.11 以降では、パイプの容量は 65536 バイトである。 .SS PIPE_BUF -POSIX.1-2001 ¤Ç¤Ï¡¢ +POSIX.1-2001 では、 .B PIPE_BUF -¥Ð¥¤¥È°Ê²¼¤Î +バイト以下の .BR write (2) -¤Ï atomic ¤Ë¹Ô¤ï¤ì¤ë¤³¤È¡¢¤Ä¤Þ¤ê¥Ñ¥¤¥×¤Ø¤Î½ÐÎϥǡ¼¥¿¤Î½ñ¤­¹þ¤ß¤Ï -Ϣ³¤·¤¿¥·¡¼¥±¥ó¥¹¤È¤·¤Æ¹Ô¤ï¤ì¤ë¤³¤È¤òɬ¿Ü¤È¤·¤Æ¤¤¤ë (MUST)¡£ +は atomic に行われること、つまりパイプへの出力データの書き込みは +連続したシーケンスとして行われることを必須としている (MUST)。 .B PIPE_BUF -¥Ð¥¤¥È¤è¤ê¿¤¯¤Î¥Ç¡¼¥¿¤ò½ñ¤­¹þ¤ß¾ì¹ç¤Ï atomic ¤È¤Ï¤Ê¤é¤Ê¤¤¡¢ -¤Ä¤Þ¤ê¥Ñ¥¤¥×¤Ø¤Î¾¤Î¥×¥í¥»¥¹¤Ë¤è¤ë¥Ç¡¼¥¿¤Î½ñ¤­¹þ¤ß¤¬´Ö¤ËÆþ¤ë -²ÄǽÀ­¤¬¤¢¤ë¡£ -POSIX.1-2001 ¤Î»ÅÍͤǤϡ¢ +バイトより多くのデータを書き込み場合は atomic とはならない、 +つまりパイプへの他のプロセスによるデータの書き込みが間に入る +可能性がある。 +POSIX.1-2001 の仕様では、 .B PIPE_BUF -¤ÏºÇ¾®¤Ç¤â 512 ¥Ð¥¤¥È¤Ç¤¢¤ë¤³¤È¤¬Í׵ᤵ¤ì¤Æ¤¤¤ë -(Linux ¤Ç¤Ï +は最小でも 512 バイトであることが要求されている +(Linux では .B PIPE_BUF -¤Ï 4096 ¥Ð¥¤¥È¤Ç¤¢¤ë)¡£ -Àµ³Î¤ÊÆ°ºî¤Ï¡¢¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ nonblocking +は 4096 バイトである)。 +正確な動作は、ファイル・ディスクリプタが nonblocking .RB ( O_NONBLOCK ) -¤«¤É¤¦¤«¡¢¥Ñ¥¤¥×¤Ø¤Î½ñ¤­¹þ¤ß¤¬Ê£¿ô¤«¤é¹Ô¤ï¤ì¤ë¤«¤É¤¦¤«¡¢¤ª¤è¤Ó -½ñ¤­¹þ¤ß¤ò¹Ô¤¦¥Ð¥¤¥È¿ô +かどうか、パイプへの書き込みが複数から行われるかどうか、および +書き込みを行うバイト数 .I n -¤Ë¤è¤ê·èÄꤵ¤ì¤ë¡£ +により決定される。 .TP -\fBO_NONBLOCK\fP ̵¸ú, \fIn\fP <= \fBPIPE_BUF\fP +\fBO_NONBLOCK\fP 無効, \fIn\fP <= \fBPIPE_BUF\fP .I n -¥Ð¥¤¥ÈÁ´Éô¤Î½ñ¤­¹þ¤ß¤¬ atomic ¤Ë¹Ô¤ï¤ì¤ë¡£ +バイト全部の書き込みが atomic に行われる。 .I n -¥Ð¥¤¥Èʬ¤ò¤¹¤°¤Ë½ñ¤­¹þ¤à;ÃϤ¬¤Ê¤¤¾ì¹ç¤Ï +バイト分をすぐに書き込む余地がない場合は .BR write (2) -¤ÏÄä»ß (block) ¤¹¤ë¤³¤È¤¬¤¢¤ë¡£ +は停止 (block) することがある。 .TP -\fBO_NONBLOCK\fP Í­¸ú, \fIn\fP <= \fBPIPE_BUF\fP -¥Ñ¥¤¥×¤Ë +\fBO_NONBLOCK\fP 有効, \fIn\fP <= \fBPIPE_BUF\fP +パイプに .I n -¥Ð¥¤¥È¤ò½ñ¤­¹þ¤à;ÃϤ¬¤¢¤ë¾ì¹ç¤Ï¡¢ +バイトを書き込む余地がある場合は、 .I n -¥Ð¥¤¥ÈÁ´Éô¤¬¤¹¤°¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£ -;ÃϤ¬¤Ê¤¤¾ì¹ç¤Ï¡¢ +バイト全部がすぐに書き込まれる。 +余地がない場合は、 .BR write (2) -¤Ï¼ºÇÔ¤·¡¢ +は失敗し、 .I errno -¤Ë +に .B EAGAIN -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +がセットされる。 .TP -\fBO_NONBLOCK\fP ̵¸ú, \fIn\fP > \fBPIPE_BUF\fP -½ñ¤­¹þ¤ß¤Ï atomic ¤È¤Ï¤Ê¤é¤Ê¤¤¡£ +\fBO_NONBLOCK\fP 無効, \fIn\fP > \fBPIPE_BUF\fP +書き込みは atomic とはならない。 .BR write (2) -¤ËÅϤµ¤ì¤¿¥Ç¡¼¥¿¤Î´Ö¤Ë¡¢Â¾¤Î¥×¥í¥»¥¹¤Ë¤è¤ê +に渡されたデータの間に、他のプロセスにより .BR write (2) -¤µ¤ì¤¿¥Ç¡¼¥¿¤¬Æþ¤ë¤³¤È¤¬¤¢¤ë¡£ +されたデータが入ることがある。 .BR write (2) -¤Ï +は .I n -¥Ð¥¤¥È¤Î½ñ¤­¹þ¤ß¤¬´°Î»¤¹¤ë¤Þ¤ÇÄä»ß¤¹¤ë¡£ +バイトの書き込みが完了するまで停止する。 .TP -\fBO_NONBLOCK\fP Í­¸ú, \fIn\fP > \fBPIPE_BUF\fP -¥Ñ¥¤¥×¤¬¥Õ¥ë¤Î¾ì¹ç¡¢ +\fBO_NONBLOCK\fP 有効, \fIn\fP > \fBPIPE_BUF\fP +パイプがフルの場合、 .BR write (2) -¤Ï¼ºÇÔ¤·¡¢ +は失敗し、 .I errno -¤Ë +に .B EAGAIN -¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢1 ¥Ð¥¤¥È°Ê¾å +がセットされる。 +それ以外の場合、1 バイト以上 .I n -¥Ð¥¤¥È°Ê²¼¤Î¥Ç¡¼¥¿¤¬½ñ¤­¹þ¤Þ¤ì¤ë -(¤Ä¤Þ¤ê¡Ö°ìÉôʬ¤À¤±½ñ¤­¹þ¤Þ¤ì¤ë¡×¾ì¹ç¤â¤¢¤êÆÀ¤ë)¡£ -¸Æ¤Ó½Ð¤·¸µ¤Ï +バイト以下のデータが書き込まれる +(つまり「一部分だけ書き込まれる」場合もあり得る)。 +呼び出し元は .BR write (2) -¤ÎÊÖ¤êÃͤò»²¾È¤·¡¢¼ÂºÝ¤Ë²¿¥Ð¥¤¥È½ñ¤­¹þ¤Þ¤ì¤¿¤Î¤«¤ò³Îǧ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¤Þ¤¿¡¢½ñ¤­¹þ¤ß¤ËÀ®¸ù¤·¤¿¥Ç¡¼¥¿¤â¡¢Â¾¤Î¥×¥í¥»¥¹¤¬½ñ¤­¹þ¤ó¤À¥Ç¡¼¥¿¤¬ -´Ö¤ËÆþ¤ë¤³¤È¤¬¤¢¤ë¡£ -.SS ¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ë¾õÂ֥ե饰 -¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤Î¤¦¤Á¡¢¥Ñ¥¤¥×¤ä FIFO ¤ËÂФ·¤Æ°ÕÌ£¤ò»ý¤Ä¤Î¤Ï +の返り値を参照し、実際に何バイト書き込まれたのかを確認すべきである。 +また、書き込みに成功したデータも、他のプロセスが書き込んだデータが +間に入ることがある。 +.SS オープンファイル状態フラグ +オープンファイル状態フラグのうち、パイプや FIFO に対して意味を持つのは .B O_NONBLOCK -¤È +と .B O_ASYNC -¤À¤±¤Ç¤¢¤ë¡£ +だけである。 -¥Ñ¥¤¥×¤ÎÆɤ߽Ф·Â¦¤Ë +パイプの読み出し側に .B O_ASYNC -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢¥Ñ¥¤¥×¤Ë¿·¤¿¤ÊÆþÎϤ¬¤¢¤ë¤È¥·¥°¥Ê¥ë (¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï +フラグをセットすると、パイプに新たな入力があるとシグナル (デフォルトでは .BR SIGIO ) -¤¬À¸À®¤µ¤ì¤ë (¾ÜºÙ¤Ï +が生成される (詳細は .BR fcntl (2) -¤ò»²¾È)¡£ -Linux ¤Ç¤Ï¡¢ -¥Ñ¥¤¥×¤È FIFO ¤ËÂФ¹¤ë +を参照)。 +Linux では、 +パイプと FIFO に対する .B O_ASYNC -¤Ï¥«¡¼¥Í¥ë 2.6 °Ê¹ß¤Ç¤Î¤ß¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -.SS °Ü¿¢¤Ë´Ø¤¹¤ëÃí°Õ -¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à (Linux ¤Ç¤Ï¤Ê¤¤) ¤Ç¤Ï¡¢¥Ñ¥¤¥×¤ÏÁÐÊý¸þ¤Ç¤¢¤ë¡¢ -¤Ä¤Þ¤ê¥Ñ¥¤¥×¤Îξü´Ö¤Ç¥Ç¡¼¥¿¤òξÊý¸þ¤ËÁ÷¿®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -POSIX.1-2001 ¤Ç¤Ï¡¢¥Ñ¥¤¥×¤Ï°ìÊý¸þ¤ÎÄÌ¿®¤À¤±¤ËÂбþ¤·¤Æ¤¤¤ì¤Ð¤è¤¤¡£ -°Ü¿¢¤ò¹Íθ¤·¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ÁÐÊý¸þ¥Ñ¥¤¥×¤Î»ÅÁȤߤò -Á°Äó¤Ë¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +はカーネル 2.6 以降でのみサポートされている。 +.SS 移植に関する注意 +いくつかのシステム (Linux ではない) では、パイプは双方向である、 +つまりパイプの両端間でデータを両方向に送信することができる。 +POSIX.1-2001 では、パイプは一方向の通信だけに対応していればよい。 +移植を考慮したアプリケーションでは、双方向パイプの仕組みを +前提にすべきではない。 +.SH 関連項目 .BR dup (2), .BR fcntl (2), .BR open (2), diff --git a/release/man7/posixoptions.7 b/release/man7/posixoptions.7 index c01bceae..dc7fd556 100644 --- a/release/man7/posixoptions.7 +++ b/release/man7/posixoptions.7 @@ -25,36 +25,36 @@ .\" Translated Thu Dec 16 03:35:45 JST 2004 .\" by Yuichi SATO .\" -.\"WORD: feature test macro µ¡Ç½¥Æ¥¹¥È¥Þ¥¯¥í +.\"WORD: feature test macro 機能テストマクロ .\" .TH POSIXOPTIONS 7 2007-12-21 "" "Linux Programmer's Manual" -.SH ̾Á° -POSIX ɸ½à¤ÎÁªÂò²Äǽ¤ÊÉôʬ -.SH ÀâÌÀ -POSIX ɸ½à (°Ê²¼¤Î¾ðÊó¤Ï POSIX.1-2001 ¤ÎÈ´¿è) ¤Ï -¸ß´¹¥·¥¹¥Æ¥à¤ÎÆ°ºî¤È¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î¥»¥Ã¥È¤òµ­½Ò¤·¤Æ¤¤¤ë¡£ -¤·¤«¤·¡¢Â¿¤¯¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÏÁªÂò²Äǽ¤Ç¤¢¤ê¡¢ -¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¬»ÈÍѲÄǽ¤«¤ò¥Æ¥¹¥È¤¹¤ëµ¡Ç½¥Æ¥¹¥È¥Þ¥¯¥í¤È¡¢ -¼Â¹Ô»þ¤Ë¥Æ¥¹¥È¤¹¤ë´Ø¿ô +.SH 名前 +POSIX 標準の選択可能な部分 +.SH 説明 +POSIX 標準 (以下の情報は POSIX.1-2001 の抜粋) は +互換システムの動作とインタフェースのセットを記述している。 +しかし、多くのインタフェースは選択可能であり、 +コンパイル時にインタフェースが使用可能かをテストする機能テストマクロと、 +実行時にテストする関数 .BR sysconf (3), .BR fpathconf (3), .BR pathconf (3), .BR confstr (3) -¤¬¤¢¤ë¡£ -¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤Ç¤Ï +がある。 +シェルスクリプトでは .BR getconf (1) -¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¾ÜºÙ¤Ï +を使うことができる。 +詳細は .BR sysconf (3) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 .LP -POSIX ¾Êά·Á¤Î̾Á°¡¦¥ª¥×¥·¥ç¥ó¡¦¥ª¥×¥·¥ç¥ó¤òÄ´¤Ù¤ë¤¿¤á¤Î +POSIX 省略形の名前・オプション・オプションを調べるための .BR sysconf (3) -°ú¤­¿ô¤Î̾Á°¡¦(²Äǽ¤Ê¤é¤Ð) Èó¾ï¤Ëû¤¤ÀâÌÀ¤òµ­½Ò¤¹¤ë¡£ -¤è¤êÀµ³Î¤Ê¾ÜºÙ¤Ï POSIX ɸ½à¼«¿È¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ -POSIX ɸ½à¤Ïº£Æü¤Ç¤Ï Web ¤Ç¼«Í³¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ +引き数の名前・(可能ならば) 非常に短い説明を記述する。 +より正確な詳細は POSIX 標準自身に書かれている。 +POSIX 標準は今日では Web で自由にアクセスできる。 .SS "ADV - _POSIX_ADVISORY_INFO - _SC_ADVISORY_INFO" -°Ê²¼¤Î¥¢¥É¥Ð¥¤¥¹¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下のアドバイスの関数が存在する。 .br .nf .in +4 @@ -67,10 +67,10 @@ POSIX ɸ .in -4 .fi .SS "AIO - _POSIX_ASYNCHRONOUS_IO - _SC_ASYNCHRONOUS_IO" -¥Ø¥Ã¥À +ヘッダ .I -¤¬Â¸ºß¤¹¤ë¡£ -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +が存在する。 +以下の関数が存在する。 .br .nf .in +4 @@ -87,12 +87,12 @@ POSIX ɸ .in -4 .fi .SS "BAR - _POSIX_BARRIERS - _SC_BARRIERS" -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +このオプションは .B _POSIX_THREADS -¤È +と .B _POSIX_THREAD_SAFE_FUNCTIONS -¥ª¥×¥·¥ç¥ó¤ò°ÅÌÛ¤ÎÆâ¤Ë»ØÄꤹ¤ë¡£ -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +オプションを暗黙の内に指定する。 +以下の関数が存在する。 .br .nf .in +4 @@ -106,30 +106,30 @@ POSIX ɸ .br .fi .\" .SS "BE" -.\" ¥Ð¥Ã¥Á´Ä¶­ +.\" バッチ環境 .\" .SS "CD" -.\" C ¤Ë¤è¤ë³«È¯ +.\" C による開発 .SS "--- - POSIX_CHOWN_RESTRICTED" -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ê¾ì¹ç (POSIX.1-2001 ¤Ç¤Ï¾ï¤ËÍ­¸ú)¡¢ -root ¤À¤±¤¬¥Õ¥¡¥¤¥ë½êÍ­¼Ô¤ÎÊѹ¹¤òµö¤µ¤ì¡¢ -root °Ê³°¤Ï¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥×¤ò -¼«Ê¬¤¬½ê°¤¹¤ë¥°¥ë¡¼¥×¤Î 1 ¤Ä¤ËÀßÄꤹ¤ë¤³¤È¤À¤±¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤Ï°Ê²¼¤Î´Ø¿ô¤Ë±Æ¶Á¤¹¤ë¡£ +このオプションが有効な場合 (POSIX.1-2001 では常に有効)、 +root だけがファイル所有者の変更を許され、 +root 以外はファイルのグループを +自分が所属するグループの 1 つに設定することだけができる。 +これは以下の関数に影響する。 .br .nf .in +4n .IR chown (), .IR fchown (). -.\" lchown() ¤Ï¤É¤¦¤Ê¤Î¤«? +.\" lchown() はどうなのか? .in -4 .br .fi .SS "CS - _POSIX_CLOCK_SELECTION - _SC_CLOCK_SELECTION" -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +このオプションは .B _POSIX_TIMERS -¥ª¥×¥·¥ç¥ó¤ò°ÅÌÛ¤ÎÆâ¤Ë»ØÄꤹ¤ë¡£ -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +オプションを暗黙の内に指定する。 +以下の関数が存在する。 .br .nf .in +4 @@ -142,34 +142,34 @@ root .br .fi .B CLOCK_REALTIME -¤¬´Ø¿ô +が関数 .IR clock_settime () -¤ÇÊѹ¹¤µ¤ì¤¿¾ì¹ç¡¢ÀäÂлþ´Ö¤Ë´Ø·¸¤¹¤ëÁ´¤Æ¤Î¥¿¥¤¥Þ¤Î¥»¥Ã¥È¤Ë±Æ¶Á¤¹¤ë¡£ +で変更された場合、絶対時間に関係する全てのタイマのセットに影響する。 .SS "CPT - _POSIX_CPUTIME - _SC_CPUTIME" -clockID CLOCK_PROCESS_CPUTIME_ID ¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥¯¥í¥Ã¥¯¤Î½é´üÃͤϡ¢³Æ¥×¥í¥»¥¹Ëè¤Ë 0 ¤È¤Ê¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +clockID CLOCK_PROCESS_CPUTIME_ID がサポートされている。 +このクロックの初期値は、各プロセス毎に 0 となる。 +このオプションは .B _POSIX_TIMERS -¥ª¥×¥·¥ç¥ó¤ò°ÅÌÛ¤ÎÆâ¤Ë»ØÄꤹ¤ë¡£ -´Ø¿ô +オプションを暗黙の内に指定する。 +関数 .IR clock_getcpuclockid () -¤¬Â¸ºß¤¹¤ë¡£ +が存在する。 .\" .SS "FD" -.\" Fortran ¤Ë¤è¤ë³«È¯ +.\" Fortran による開発 .\" .SS "FR" -.\" Fortran ¥é¥ó¥¿¥¤¥à +.\" Fortran ランタイム .SS "--- - _POSIX_FILE_LOCKING - _SC_FILE_LOCKING" -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ïºï½ü¤µ¤ì¤¿¡£XPG6 ºÇ½ªÈǤˤϤʤ¤¡£ +このオプションは削除された。XPG6 最終版にはない。 .SS "FSC - _POSIX_FSYNC - _SC_FSYNC " -´Ø¿ô +関数 .IR fsync () -¤¬Â¸ºß¤¹¤ë¡£ +が存在する。 .SS "IP6 - _POSIX_IPV6 - _SC_IPV6" -Internet Protocol Version 6 ¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ +Internet Protocol Version 6 がサポートされている。 .SS "--- - _POSIX_JOB_CONTROL - _SC_JOB_CONTROL" -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ê¾ì¹ç (POSIX.1-2001 ¤Ç¤Ï¾ï¤ËÍ­¸ú)¡¢ -¥·¥¹¥Æ¥à¤Ï POSIX Êý¼°¤Î¥¸¥ç¥ÖÀ©¸æ¤ò¼ÂÁõ¤·¤Æ¤ª¤ê¡¢ -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +このオプションが有効な場合 (POSIX.1-2001 では常に有効)、 +システムは POSIX 方式のジョブ制御を実装しており、 +以下の関数が存在する。 .br .nf .in +4 @@ -184,11 +184,11 @@ Internet Protocol Version 6 .in -4 .fi .SS "MF - _POSIX_MAPPED_FILES - _SC_MAPPED_FILES" -¶¦Í­¥á¥â¥ê¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +共有メモリがサポートされている。 +インクルードファイル .I -¤¬Â¸ºß¤¹¤ë¡£ -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +が存在する。 +以下の関数が存在する。 .br .nf .in +4n @@ -200,8 +200,8 @@ Internet Protocol Version 6 .br .fi .SS "ML - _POSIX_MEMLOCK - _SC_MEMLOCK" -¶¦Í­¥á¥â¥ê¤¬¥³¥¢Æâ¤Ë¥í¥Ã¥¯¤Ç¤­¤ë¡£ -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +共有メモリがコア内にロックできる。 +以下の関数が存在する。 .br .nf .in +4n @@ -212,8 +212,8 @@ Internet Protocol Version 6 .br .fi .SS "MR/MLR - _POSIX_MEMLOCK_RANGE - _SC_MEMLOCK_RANGE" -¤è¤ê¾ÜºÙ¤Ë¡¢ÈϰϤò¥³¥¢Æâ¤Ë¥í¥Ã¥¯¤Ç¤­¤ë¡£ -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +より詳細に、範囲をコア内にロックできる。 +以下の関数が存在する。 .br .nf .in +4n @@ -224,14 +224,14 @@ Internet Protocol Version 6 .br .fi .SS "MPR - _POSIX_MEMORY_PROTECTION - _SC_MEMORY_PROTECTION" -´Ø¿ô +関数 .IR mprotect () -¤¬Â¸ºß¤¹¤ë¡£ +が存在する。 .SS "MSG - _POSIX_MESSAGE_PASSING - _SC_MESSAGE_PASSING" -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +インクルードファイル .I -¤¬Â¸ºß¤¹¤ë¡£ -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +が存在する。 +以下の関数が存在する。 .br .nf .in +4 @@ -249,11 +249,11 @@ Internet Protocol Version 6 .fi .SS "MON - _POSIX_MONOTONIC_CLOCK - _SC_MONOTONIC_CLOCK" .B CLOCK_MONOTONIC -¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +がサポートされている。 +このオプションは .B _POSIX_TIMERS -¥ª¥×¥·¥ç¥ó¤ò°ÅÌÛ¤ÎÆâ¤Ë»ØÄꤹ¤ë¡£ -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +オプションを暗黙の内に指定する。 +影響を受ける関数は以下の通り。 .nf .in +4 @@ -265,17 +265,17 @@ Internet Protocol Version 6 .in -4 .fi .SS "--- - _POSIX_MULTI_PROCESS - _SC_MULTI_PROCESS" -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ïºï½ü¤µ¤ì¤¿¡£XPG6 ºÇ½ªÈǤˤϤʤ¤¡£ +このオプションは削除された。XPG6 最終版にはない。 .\" .SS "MX" -.\" IEC 60559 ÉâÆ°¾®¿ôÅÀ¿ô¥ª¥×¥·¥ç¥ó¡£ +.\" IEC 60559 浮動小数点数オプション。 .SS "--- - _POSIX_NO_TRUNC" -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ê¾ì¹ç (POSIX.1-2001 ¤Ç¤Ï¾ï¤ËÍ­¸ú)¡¢ +このオプションが有効な場合 (POSIX.1-2001 では常に有効)、 .B NAME_MAX -¤è¤êŤ¤¥Ñ¥¹Ì¾¤Î¹½À®Í×ÁǤÏÀÚ¤êµÍ¤á¤é¤ì¤Ê¤¤¤¬¡¢¥¨¥é¡¼¤Ë¤Ê¤ë¡£ -¤³¤ÎÀßÄê¤Ï¹½À®Í×ÁǤΥѥ¹ÀÜƬ¼­¤Ë°Í¸¤¹¤ë¾ì¹ç¤â¤¢¤ë¡£ +より長いパス名の構成要素は切り詰められないが、エラーになる。 +この設定は構成要素のパス接頭辞に依存する場合もある。 .SS "PIO - _POSIX_PRIORITIZED_IO - _SC_PRIORITIZED_IO" -¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÈóƱ´ü I/O ¤ÎÍ¥ÀèÅÙ¤¬»ØÄê¤Ç¤­¤ë¤³¤È¤òɽ¤¹¡£ -¤³¤ì¤Ï°Ê²¼¤Î´Ø¿ô¤Ë±Æ¶Á¤¹¤ë¡£ +このオプションは非同期 I/O の優先度が指定できることを表す。 +これは以下の関数に影響する。 .br .nf .in +4 @@ -285,10 +285,10 @@ Internet Protocol Version 6 .in -4 .fi .SS "PS - _POSIX_PRIORITY_SCHEDULING - _SC_PRIORITY_SCHEDULING" -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +インクルードファイル .I -¤¬Â¸ºß¤¹¤ë¡£ -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +が存在する。 +以下の関数が存在する。 .br .nf .in +4 @@ -305,7 +305,7 @@ Internet Protocol Version 6 .in -4 .fi .B _POSIX_SPAWN -¤âÍ­¸ú¤Ê¾ì¹ç¤Ï¡¢°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +も有効な場合は、以下の関数が存在する。 .br .nf .in +4 @@ -317,8 +317,8 @@ Internet Protocol Version 6 .in -4 .fi .SS "RS - _POSIX_RAW_SOCKETS" -raw ¥½¥±¥Ã¥È¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +raw ソケットがサポートされている。 +影響を受ける関数は以下の通り。 .br .nf .in +4n @@ -329,13 +329,13 @@ raw .br .fi .SS "--- - _POSIX_READER_WRITER_LOCKS - _SC_READER_WRITER_LOCKS" -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +このオプションは .B _POSIX_THREADS -¥ª¥×¥·¥ç¥ó¤ò°ÅÌÛ¤ÎÆâ¤Ë»ØÄꤹ¤ë¡£ -µÕ¤Ë POSIX.1-2001 ¤Ç¤Ï +オプションを暗黙の内に指定する。 +逆に POSIX.1-2001 では .B _POSIX_THREADS -¥ª¥×¥·¥ç¥ó¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤ò°ÅÌÛ¤ÎÆâ¤Ë»ØÄꤹ¤ë¡£ -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +オプションはこのオプションを暗黙の内に指定する。 +以下の関数が存在する。 .nf .in +4 @@ -351,8 +351,8 @@ raw .in -4 .fi .SS "RTS - _POSIX_REALTIME_SIGNALS - _SC_REALTIME_SIGNALS" -¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +リアルタイムシグナルがサポートされている。 +以下の関数が存在する。 .br .nf .in +4 @@ -364,8 +364,8 @@ raw .in -4 .fi .SS "--- - _POSIX_REGEXP - _SC_REGEXP" -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ê¾ì¹ç (POSIX.1-2001 ¤Ç¤Ï¾ï¤ËÍ­¸ú)¡¢ -POSIX Àµµ¬É½¸½¤¬¥µ¥Ý¡¼¥È¤µ¤ì¡¢°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +このオプションが有効な場合 (POSIX.1-2001 では常に有効)、 +POSIX 正規表現がサポートされ、以下の関数が存在する。 .br .nf .in +4 @@ -378,9 +378,9 @@ POSIX .in -4 .fi .SS "--- - _POSIX_SAVED_IDS - _SC_SAVED_IDS" -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ê¾ì¹ç (POSIX.1-2001 ¤Ç¤Ï¾ï¤ËÍ­¸ú)¡¢ -¥×¥í¥»¥¹¤ÏÊݸ (saved) set-user-ID ¤ÈÊݸ set-group-ID ¤ò»ý¤Ä¡£ -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +このオプションが有効な場合 (POSIX.1-2001 では常に有効)、 +プロセスは保存 (saved) set-user-ID と保存 set-group-ID を持つ。 +影響を受ける関数は以下の通り。 .br .nf .in +4 @@ -395,12 +395,12 @@ POSIX .in -4 .fi .\" .SS "SD" -.\" Software ³«È¯ +.\" Software 開発 .SS "SEM - _POSIX_SEMAPHORES - _SC_SEMAPHORES" -¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +インクルードファイル .I -¤¬Â¸ºß¤¹¤ë¡£ -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +が存在する。 +以下の関数が存在する。 .br .nf .in +4 @@ -418,7 +418,7 @@ POSIX .in -4 .fi .SS "SHM - _POSIX_SHARED_MEMORY_OBJECTS - _SC_SHARED_MEMORY_OBJECTS" -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下の関数が存在する。 .br .nf .in +4 @@ -431,18 +431,18 @@ POSIX .in -4 .fi .SS "--- - _POSIX_SHELL - _SC_SHELL" -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ê¾ì¹ç (POSIX.1-2001 ¤Ç¤Ï¾ï¤ËÍ­¸ú)¡¢´Ø¿ô +このオプションが有効な場合 (POSIX.1-2001 では常に有効)、関数 .IR system () -¤¬Â¸ºß¤¹¤ë¡£ +が存在する。 .SS "SPN - _POSIX_SPAWN - _SC_SPAWN" -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢Î㤨¤Ð MMU ¤¬Â¸ºß¤·¤Ê¤¤¤Ê¤É¤ÎÍýͳ¤Ë¤è¤Ã¤Æ¡¢ +このオプションは、例えば MMU が存在しないなどの理由によって、 .IR fork () -¤ò»ÈÍѤ¹¤ë¤³¤È¤¬Æñ¤·¤¤¤«ÉÔ²Äǽ¤È¤¤¤¦¾õ¶·¤Ç¡¢ -¥×¥í¥»¥¹À¸À®¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤³¤È¤òɽ¤¹¡£ +を使用することが難しいか不可能という状況で、 +プロセス生成をサポートすることを表す。 .B _POSIX_SPAWN -¤¬Í­¸ú¤Ê¾ì¹ç¡¢¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +が有効な場合、インクルードファイル .I -¤È¡¢°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +と、以下の関数が存在する。 .br .nf .in +4 @@ -469,7 +469,7 @@ POSIX .br .fi .B _POSIX_PRIORITY_SCHEDULING -¤âÍ­¸ú¤Ê¾ì¹ç¡¢°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +も有効な場合、以下の関数が存在する。 .br .nf .in +4 @@ -481,12 +481,12 @@ POSIX .in -4 .fi .SS "SPI - _POSIX_SPIN_LOCKS - _SC_SPIN_LOCKS" -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +このオプションは .B _POSIX_THREADS -¤È +と .B _POSIX_THREAD_SAFE_FUNCTIONS -¥ª¥×¥·¥ç¥ó¤ò°ÅÌÛ¤ÎÆâ¤Ë»ØÄꤹ¤ë¡£ -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +オプションを暗黙の内に指定する。 +以下の関数が存在する。 .br .nf .in +4 @@ -500,13 +500,13 @@ POSIX .br .fi .SS "SS - _POSIX_SPORADIC_SERVER - _SC_SPORADIC_SERVER" -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥Ý¥ê¥·¡¼ +スケジューリングポリシー .B SCHED_SPORADIC -¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +がサポートされている。 +このオプションは .B _POSIX_PRIORITY_SCHEDULING -¥ª¥×¥·¥ç¥ó¤ò°ÅÌÛ¤ÎÆâ¤Ë»ØÄꤹ¤ë¡£ -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +オプションを暗黙の内に指定する。 +影響を受ける関数は以下の通り。 .br .nf .in +4 @@ -517,13 +517,13 @@ POSIX .br .fi .SS "SIO - _POSIX_SYNCHRONIZED_IO - _SC_SYNCHRONIZED_IO" -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +影響を受ける関数は以下の通り。 .IR open (), .IR msync (), .IR fsync (), .IR fdatasync (). .SS "TSA - _POSIX_THREAD_ATTR_STACKADDR - _SC_THREAD_ATTR_STACKADDR" -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +影響を受ける関数は以下の通り。 .br .nf .in +4 @@ -536,7 +536,7 @@ POSIX .br .fi .SS "TSS - _POSIX_THREAD_ATTR_STACKSIZE - _SC_THREAD_ATTR_STACKSIZE" -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +影響を受ける関数は以下の通り。 .br .nf .in +4 @@ -549,11 +549,11 @@ POSIX .br .fi .SS "TCT - _POSIX_THREAD_CPUTIME - _SC_THREAD_CPUTIME" -clockID CLOCK_THREAD_CPUTIME_ID ¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +clockID CLOCK_THREAD_CPUTIME_ID がサポートされている。 +このオプションは .B _POSIX_TIMERS -¥ª¥×¥·¥ç¥ó¤ò°ÅÌÛ¤ÎÆâ¤Ë»ØÄꤹ¤ë¡£ -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +オプションを暗黙の内に指定する。 +影響を受ける関数は以下の通り。 .br .nf .in +4 @@ -567,7 +567,7 @@ clockID CLOCK_THREAD_CPUTIME_ID .br .fi .SS "TPI - _POSIX_THREAD_PRIO_INHERIT - _SC_THREAD_PRIO_INHERIT" -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +影響を受ける関数は以下の通り。 .br .nf .in +4 @@ -578,7 +578,7 @@ clockID CLOCK_THREAD_CPUTIME_ID .br .fi .SS "TPP - _POSIX_THREAD_PRIO_PROTECT - _SC_THREAD_PRIO_PROTECT" -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +影響を受ける関数は以下の通り。 .br .nf .in +4 @@ -593,9 +593,9 @@ clockID CLOCK_THREAD_CPUTIME_ID .br .fi .SS "TPS - _POSIX_THREAD_PRIORITY_SCHEDULING - _SC_THREAD_PRIORITY_SCHEDULING" -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ê¾ì¹ç¡¢1 ¤Ä¤Î¥×¥í¥»¥¹Æâ¤Î¸Ä¡¹¤Î¥¹¥ì¥Ã¥É¤ò -¸Ä¡¹¤ÎÍ¥ÀèÅÙ¤Þ¤¿¤Ï¸Ä¡¹¤Î¥¹¥±¥¸¥å¡¼¥é (¤Þ¤¿¤Ï¤½¤ÎξÊý) ¤Ç¼Â¹Ô¤Ç¤­¤ë¡£ -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +このオプションが有効な場合、1 つのプロセス内の個々のスレッドを +個々の優先度または個々のスケジューラ (またはその両方) で実行できる。 +影響を受ける関数は以下の通り。 .br .nf .in +4 @@ -613,7 +613,7 @@ clockID CLOCK_THREAD_CPUTIME_ID .br .fi .SS "TSH - _POSIX_THREAD_PROCESS_SHARED - _SC_THREAD_PROCESS_SHARED" -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +影響を受ける関数は以下の通り。 .br .nf .in +4 @@ -630,7 +630,7 @@ clockID CLOCK_THREAD_CPUTIME_ID .br .fi .SS "TSF - _POSIX_THREAD_SAFE_FUNCTIONS - _SC_THREAD_SAFE_FUNCTIONS" -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +影響を受ける関数は以下の通り。 .br .nf .in +4 @@ -658,10 +658,10 @@ clockID CLOCK_THREAD_CPUTIME_ID .br .fi .SS "TSP - _POSIX_THREAD_SPORADIC_SERVER - _SC_THREAD_SPORADIC_SERVER" -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +このオプションは .B _POSIX_THREAD_PRIORITY_SCHEDULING -¥ª¥×¥·¥ç¥ó¤ò°ÅÌÛ¤ÎÆâ¤Ë»ØÄꤹ¤ë¡£ -±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ꡣ +オプションを暗黙の内に指定する。 +影響を受ける関数は以下の通り。 .br .nf .in +4 @@ -673,8 +673,8 @@ clockID CLOCK_THREAD_CPUTIME_ID .br .fi .SS "THR - _POSIX_THREADS - _SC_THREADS" -POSIX ¥¹¥ì¥Ã¥É¤Î´ðËÜ¥µ¥Ý¡¼¥È¤¬»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +POSIX スレッドの基本サポートが使用可能である。 +以下の関数が存在する。 .br .nf .in +4 @@ -731,7 +731,7 @@ POSIX .br .fi .SS "TMO - _POSIX_TIMEOUTS - _SC_TIMEOUTS" -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下の関数が存在する。 .br .nf .in +4 @@ -747,7 +747,7 @@ POSIX .br .fi .SS "TMR - _POSIX_TIMERS - _SC_TIMERS" -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下の関数が存在する。 .br .nf .in +4 @@ -765,8 +765,8 @@ POSIX .br .fi .SS "TRC - _POSIX_TRACE - _SC_TRACE" -POSIX ¥È¥ì¡¼¥·¥ó¥° (tracing) ¤¬»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +POSIX トレーシング (tracing) が使用可能である。 +以下の関数が存在する。 .br .nf .in +4 @@ -806,10 +806,10 @@ POSIX .br .fi .SS "TEF - _POSIX_TRACE_EVENT_FILTER - _SC_TRACE_EVENT_FILTER" -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +このオプションは .B _POSIX_TRACE -¥ª¥×¥·¥ç¥ó¤ò°ÅÌÛ¤ÎÆâ¤Ë»ØÄꤹ¤ë¡£ -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +オプションを暗黙の内に指定する。 +以下の関数が存在する。 .br .nf .in +4 @@ -826,11 +826,11 @@ POSIX .br .fi .SS "TRI - _POSIX_TRACE_INHERIT - _SC_TRACE_INHERIT" -¥È¥ì¡¼¥¹¤µ¤ì¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Î¥È¥ì¡¼¥¹¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +トレースされているプロセスの子プロセスのトレースをサポートする。 +このオプションは .B _POSIX_TRACE -¥ª¥×¥·¥ç¥ó¤ò°ÅÌÛ¤ÎÆâ¤Ë»ØÄꤹ¤ë¡£ -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +オプションを暗黙の内に指定する。 +以下の関数が存在する。 .br .nf .in +4 @@ -841,10 +841,10 @@ POSIX .br .fi .SS "TRL - _POSIX_TRACE_LOG - _SC_TRACE_LOG" -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +このオプションは .B _POSIX_TRACE -¥ª¥×¥·¥ç¥ó¤ò°ÅÌÛ¤ÎÆâ¤Ë»ØÄꤹ¤ë¡£ -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +オプションを暗黙の内に指定する。 +以下の関数が存在する。 .br .nf .in +4 @@ -861,7 +861,7 @@ POSIX .br .fi .SS "TYM - _POSIX_TYPED_MEMORY_OBJECTS - _SC_TYPED_MEMORY_OBJECT" -°Ê²¼¤Î´Ø¿ô¤¬Â¸ºß¤¹¤ë¡£ +以下の関数が存在する。 .br .nf .in +4 @@ -873,16 +873,16 @@ POSIX .br .fi .SS "--- - _POSIX_VDISABLE" -¾ï¤Ë¸ºß¤¹¤ë (¤¿¤Ö¤ó 0 ¤Ç¤¢¤ë)¡£ -Êѹ¹²Äǽ¤ÊÆüìÀ©¸æʸ»ú¤òÀßÄꤹ¤ëÃÍ¡£ -¤³¤ì¤Ë¤è¤êÆüìÀ©¸æʸ»ú¤¬Ìµ¸ú¤Ç¤¢¤ë¤³¤È¤òɽ¤¹¡£ -.SH "XOPEN ³ÈÄ¥" +常に存在する (たぶん 0 である)。 +変更可能な特殊制御文字を設定する値。 +これにより特殊制御文字が無効であることを表す。 +.SH "XOPEN 拡張" .BR _XOPEN_CRYPT , .BR _XOPEN_LEGACY , .BR _XOPEN_REALTIME , .BR _XOPEN_REALTIME_THREADS , .BR _XOPEN_UNIX . -.\" µ­½Ò¤µ¤ì¤ëͽÄê¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +.\" 記述される予定である。 +.SH 関連項目 .BR sysconf (3), .BR standards (7) diff --git a/release/man7/pthreads.7 b/release/man7/pthreads.7 index fdf512c7..d73491ba 100644 --- a/release/man7/pthreads.7 +++ b/release/man7/pthreads.7 @@ -30,128 +30,128 @@ .\" Updated 2008-11-09, Akihiro MOTOKI, LDP v3.13 .\" Updated 2008-12-26, Akihiro MOTOKI, LDP v3.14 .\" -.\"WORD: manager thread ´ÉÍý¥¹¥ì¥Ã¥É -.\"WORD: thread group ¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥× -.\"WORD: real-time signal ¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë -.\"WORD: non-conformant ɸ½àÈó½àµò¤Î -.\"WORD: alternate signal stack ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯ +.\"WORD: manager thread 管理スレッド +.\"WORD: thread group スレッド・グループ +.\"WORD: real-time signal リアルタイムシグナル +.\"WORD: non-conformant 標準非準拠の +.\"WORD: alternate signal stack 代替シグナルスタック .\" .TH PTHREADS 7 2008-11-18 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -pthreads \- POSIX ¥¹¥ì¥Ã¥É -.SH ÀâÌÀ -POSIX.1 ¤Ï¡¢°ìÈÌ¤Ë POSIX ¥¹¥ì¥Ã¥É¤ä Pthreads ¤È¤·¤ÆÃΤé¤ì¤ë -¥¹¥ì¥Ã¥É¡¦¥×¥í¥°¥é¥ß¥ó¥°¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹·² (´Ø¿ô¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë) -¤òµ¬Äꤷ¤Æ¤¤¤ë¡£°ì¤Ä¤Î¥×¥í¥»¥¹¤ÏÊ£¿ô¤Î¥¹¥ì¥Ã¥É¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¡¢ -Á´¤Æ¤Î¥¹¥ì¥Ã¥É¤ÏƱ¤¸¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¡£ -¤³¤ì¤é¤Î¥¹¥ì¥Ã¥É¤ÏƱ¤¸Âç°è¥á¥â¥ê (¥Ç¡¼¥¿¤È¥Ò¡¼¥×Îΰè) ¤ò¶¦Í­¤¹¤ë¤¬¡¢ -³Æ¥¹¥ì¥Ã¥É¤Ï¼«Ê¬ÀìÍѤΥ¹¥¿¥Ã¥¯ (¼«Æ°ÊÑ¿ô) ¤ò»ý¤Ä¡£ +.SH 名前 +pthreads \- POSIX スレッド +.SH 説明 +POSIX.1 は、一般に POSIX スレッドや Pthreads として知られる +スレッド・プログラミングのインタフェース群 (関数、ヘッダファイル) +を規定している。一つのプロセスは複数のスレッドを持つことができ、 +全てのスレッドは同じプログラムを実行する。 +これらのスレッドは同じ大域メモリ (データとヒープ領域) を共有するが、 +各スレッドは自分専用のスタック (自動変数) を持つ。 -POSIX.1 ¤Ï¥¹¥ì¥Ã¥É´Ö¤Ç¤É¤Î¤è¤¦¤Ê°À­¤ò¶¦Í­¤¹¤ë¤«¤Ë¤Ä¤¤¤Æ¤âÄê¤á¤Æ¤¤¤ë -(¤Ä¤Þ¤ê¡¢¤³¤ì¤é¤Î°À­¤Ï¥¹¥ì¥Ã¥Éñ°Ì¤Ç¤Ï¤Ê¤¯¥×¥í¥»¥¹Á´ÂΤǶ¦Ä̤Ǥ¢¤ë): +POSIX.1 はスレッド間でどのような属性を共有するかについても定めている +(つまり、これらの属性はスレッド単位ではなくプロセス全体で共通である): .IP \- 3 -¥×¥í¥»¥¹ ID +プロセス ID .IP \- 3 -¿Æ¥×¥í¥»¥¹ ID +親プロセス ID .IP \- 3 -¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤È¥»¥Ã¥·¥ç¥ó ID +プロセスグループ ID とセッション ID .IP \- 3 -À©¸æüËö +制御端末 .IP \- 3 -¥æ¡¼¥¶ ID ¤È¥°¥ë¡¼¥× ID +ユーザ ID とグループ ID .IP \- 3 -¥ª¡¼¥×¥ó¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +オープンするファイルディスクリプタ .IP \- 3 -¥ì¥³¡¼¥É¤Î¥í¥Ã¥¯ +レコードのロック .RB ( fcntl (3) -»²¾È) +参照) .IP \- 3 -¥·¥°¥Ê¥ë¤ÎÇÛÃÖ +シグナルの配置 .IP \- 3 -¥Õ¥¡¥¤¥ë¥â¡¼¥ÉºîÀ®¥Þ¥¹¥¯ +ファイルモード作成マスク .RB ( umask (2)) .IP \- 3 -¥«¥ì¥ó¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê +カレント・ディレクトリ .RB ( chdir (2)) -¤È¥ë¡¼¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê +とルート・ディレクトリ .RB ( chroot (2)) .IP \- 3 -¥¤¥ó¥¿¡¼¥Ð¥ë¡¦¥¿¥¤¥Þ +インターバル・タイマ .RB ( setitimer (2)) -¤È POSIX ¥¿¥¤¥Þ +と POSIX タイマ .RB ( timer_create (2)) .IP \- 3 -nice ÃÍ +nice 値 .RB ( setpriority (2)) .IP \- 3 -¥ê¥½¡¼¥¹À©¸Â +リソース制限 .RB ( setrlimit (2)) .IP \- 3 -CPU »þ´Ö +CPU 時間 .RB ( times (2)) -¤È¥ê¥½¡¼¥¹ +とリソース .RB ( getrusage (2)) -¤Î¾ÃÈñ¾õ¶·¤Î·×¬ +の消費状況の計測 .PP -¥¹¥¿¥Ã¥¯¤Ë¤Ä¤¤¤Æ¤â¡¢POSIX.1 ¤Ï¤É¤Î¤è¤¦¤Ê°À­¤¬ -¸Ä¡¹¤Î¥¹¥ì¥Ã¥É¤ÇÆÈΩ¤Ë´ÉÍý¤µ¤ì¤ë¤«¤òµ¬Äꤷ¤Æ¤¤¤ë: +スタックについても、POSIX.1 はどのような属性が +個々のスレッドで独立に管理されるかを規定している: .IP \- 3 -¥¹¥ì¥Ã¥É ID +スレッド ID .RB ( pthread_t -¥Ç¡¼¥¿·¿) +データ型) .IP \- 3 -¥·¥°¥Ê¥ë¥Þ¥¹¥¯ +シグナルマスク .RB ( pthread_sigmask (3)) .IP \- 3 .I errno -ÊÑ¿ô +変数 .IP \- 3 -ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯ +代替シグナルスタック .RB ( sigaltstack (2)) .IP \- 3 -¥ê¥¢¥ë¥¿¥¤¥à¡¦¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤Î¥Ý¥ê¥·¡¼¤ÈÍ¥ÀèÅÙ +リアルタイム・スケジューリングのポリシーと優先度 .RB ( sched_setscheduler (2) -¤È +と .BR sched_setparam (2)) .PP -°Ê²¼¤Î Linux ÆÃÍ­¤Îµ¡Ç½¤â¥¹¥ì¥Ã¥Éñ°Ì¤Ç¤¢¤ë: +以下の Linux 特有の機能もスレッド単位である: .IP \- 3 -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ +ケーパビリティ .RB ( capabilities (7) -»²¾È) +参照) .IP \- 3 -CPU affinity (¿ÆÏÂÅÙ) +CPU affinity (親和度) .RB ( sched_setaffinity (2)) -.SS "pthreads ´Ø¿ô¤ÎÊÖ¤êÃÍ" -¤Û¤È¤ó¤É¤Î pthreads ´Ø¿ô¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤·¡¢ -¼ºÇÔ¤·¤¿¾ì¹ç¥¨¥é¡¼ÈÖ¹æ¤òÊÖ¤¹¡£ -pthreads ´Ø¿ô¤Ï +.SS "pthreads 関数の返り値" +ほとんどの pthreads 関数は成功すると 0 を返し、 +失敗した場合エラー番号を返す。 +pthreads 関数は .I errno -¤ò¥»¥Ã¥È¤·¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -POSIX.1-2001 ¤Ç¤Ï¡¢ -¥¨¥é¡¼¤òÊÖ¤¹²ÄǽÀ­¤Î¤¢¤ë pthreads ´Ø¿ô¤¬¥¨¥é¡¼ +をセットしない点に注意すること。 +POSIX.1-2001 では、 +エラーを返す可能性のある pthreads 関数がエラー .B EINTR -¤Ç¼ºÇÔ¤¹¤ë¤³¤È¤Ï·è¤·¤Æ¤Ê¤¤¤Èµ¬Äꤷ¤Æ¤¤¤ë¡£ -.SS "¥¹¥ì¥Ã¥É ID" -¤¢¤ë¥×¥í¥»¥¹Æâ¤Î³Æ¥¹¥ì¥Ã¥É¤Ï +で失敗することは決してないと規定している。 +.SS "スレッド ID" +あるプロセス内の各スレッドは .RI ( pthread_t -·¿¤Î) °ì°Õ¤Ê¥¹¥ì¥Ã¥É¼±Ê̻Ҥò»ý¤Ä¡£ -¤³¤Î¼±Ê̻Ҥϡ¢ +型の) 一意なスレッド識別子を持つ。 +この識別子は、 .BR pthread_create (3) -¤Î¸Æ¤Ó½Ð¤·¸µ¤ËÊÖ¤µ¤ì¤ë¡£¤Þ¤¿¡¢¥¹¥ì¥Ã¥É¤Ï¼«¿È¤Î¥¹¥ì¥Ã¥É¼±Ê̻Ҥò +の呼び出し元に返される。また、スレッドは自身のスレッド識別子を .BR pthread_self (3) -¤ò»È¤Ã¤Æ¼èÆÀ¤Ç¤­¤ë¡£ -¥¹¥ì¥Ã¥É ID ¤Î°ì°ÕÀ­¤¬Êݾڤµ¤ì¤ë¤Î¤Ï¡¢°ì¤Ä¤Î¥×¥í¥»¥¹Æâ¤Ë¤ª¤¤¤Æ¤Î¤ß¤Ç¤¢¤ë¡£ -½ªÎ»¤·¤¿¥¹¥ì¥Ã¥É¤¬ join ¤µ¤ì¤¿¸å¤Ç¤Ï¡¢¥¹¥ì¥Ã¥É ID ¤ÏºÆÍøÍѤµ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¥¹¥ì¥Ã¥É ID ¤ò°ú¤­¿ô¤Ë¼è¤ëÁ´¤Æ¤Î¥¹¥ì¥Ã¥É´Ø¿ô¤Ë¤ª¤¤¤Æ¡¢ -¤½¤Î ID ¤Ï¸Æ¤Ó½Ð¤·¸µ¤ÈƱ¤¸¥×¥í¥»¥¹Æâ¤Î°ì¤Ä¤Î¥¹¥ì¥Ã¥É¤ò»²¾È¤¹¤ë¡£ -.SS "¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ê´Ø¿ô" -¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ê´Ø¿ô¤Ï¡¢Ê£¿ô¤Î¥¹¥ì¥Ã¥É¤«¤éƱ»þ¤Ë¸Æ¤Ó½Ð¤·¤Æ¤â°ÂÁ´¤Ê -(¤¹¤Ê¤ï¤Á¡¢Æ±»þ¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿¤«¤Ë´Ø¤ï¤é¤º¡¢Æ±¤¸·ë²Ì¤òÊÖ¤¹) ´Ø¿ô¤Î¤³¤È¤Ç¤¢¤ë¡£ +を使って取得できる。 +スレッド ID の一意性が保証されるのは、一つのプロセス内においてのみである。 +終了したスレッドが join された後では、スレッド ID は再利用される可能性がある。 +スレッド ID を引き数に取る全てのスレッド関数において、 +その ID は呼び出し元と同じプロセス内の一つのスレッドを参照する。 +.SS "スレッドセーフな関数" +スレッドセーフな関数は、複数のスレッドから同時に呼び出しても安全な +(すなわち、同時に呼び出されたかに関わらず、同じ結果を返す) 関数のことである。 -POSIX.1-2001 ¤È POSIX.1-2008¤Ç¤Ï¡¢°ìÉô¤ÎÎã³°¤ò½ü¤­¡¢ -ɸ½à¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î´Ø¿ô¤¬¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤¢¤ë¤³¤È¤òÍ׵ᤷ¤Æ¤¤¤ë¡£ -°Ê²¼¤Î´Ø¿ô¤¬Îã³°¤Ç¤¢¤ë¡£ +POSIX.1-2001 と POSIX.1-2008では、一部の例外を除き、 +標準で規定されている全ての関数がスレッドセーフであることを要求している。 +以下の関数が例外である。 .in +4n .nf @@ -159,7 +159,7 @@ asctime() basename() catgets() crypt() -ctermid() (NULL ¤Ç¤Ê¤¤°ú¤­¿ô¤òÅϤµ¤ì¤¿¾ì¹ç) +ctermid() (NULL でない引き数を渡された場合) ctime() dbm_clearerr() dbm_close() @@ -173,14 +173,14 @@ dbm_store() dirname() dlerror() drand48() -ecvt() [POSIX.1-2001 ¤Î¤ß (POSIX.1-2008 ¤Çºï½ü¤µ¤ì¤¿)] +ecvt() [POSIX.1-2001 のみ (POSIX.1-2008 で削除された)] encrypt() endgrent() endpwent() endutxent() -fcvt() [POSIX.1-2001 ¤Î¤ß (POSIX.1-2008 ¤Çºï½ü¤µ¤ì¤¿)] +fcvt() [POSIX.1-2001 のみ (POSIX.1-2008 で削除された)] ftw() -gcvt() [POSIX.1-2001 ¤Î¤ß (POSIX.1-2008 ¤Çºï½ü¤µ¤ì¤¿)] +gcvt() [POSIX.1-2001 のみ (POSIX.1-2008 で削除された)] getc_unlocked() getchar_unlocked() getdate() @@ -188,8 +188,8 @@ getenv() getgrent() getgrgid() getgrnam() -gethostbyaddr() [POSIX.1-2001 ¤Î¤ß (POSIX.1-2008 ¤Çºï½ü¤µ¤ì¤¿)] -gethostbyname() [POSIX.1-2001 ¤Î¤ß (POSIX.1-2008 ¤Çºï½ü¤µ¤ì¤¿)] +gethostbyaddr() [POSIX.1-2001 のみ (POSIX.1-2008 で削除された)] +gethostbyname() [POSIX.1-2001 のみ (POSIX.1-2008 で削除された)] gethostent() getlogin() getnetbyaddr() @@ -236,29 +236,29 @@ setkey() setpwent() setutxent() strerror() -strsignal() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +strsignal() [POSIX.1-2008 で追加された] strtok() -system() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -tmpnam() (NULL ¤Ç¤Ê¤¤°ú¤­¿ô¤òÅϤµ¤ì¤¿¾ì¹ç) +system() [POSIX.1-2008 で追加された] +tmpnam() (NULL でない引き数を渡された場合) ttyname() unsetenv() -wcrtomb() (ºÇ¸å¤Î°ú¤­¿ô¤¬ NULL ¤Î¾ì¹ç) -wcsrtombs() (ºÇ¸å¤Î°ú¤­¿ô¤¬ NULL ¤Î¾ì¹ç) +wcrtomb() (最後の引き数が NULL の場合) +wcsrtombs() (最後の引き数が NULL の場合) wcstombs() wctomb() .fi .in -.SS ¼è¤ê¾Ã¤·¥Ý¥¤¥ó¥È (cancellation points) -POSIX.1 ¤Îµ¬Äê¤Ç¤Ï¡¢ÆÃÄê¤Î´Ø¿ô¤Ï¼è¤ê¾Ã¤·¥Ý¥¤¥ó¥È¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -¾¤ÎÆÃÄê¤Î´Ø¿ô¤Ï¼è¤ê¾Ã¤·¥Ý¥¤¥ó¥È¤Ç¤¢¤Ã¤Æ¤â¤è¤¤¤È¤µ¤ì¤Æ¤¤¤ë¡£ -¤¢¤ë¥¹¥ì¥Ã¥É¤¬¼è¤ê¾Ã¤·²Äǽ¤Ç¡¢¤½¤Î¼è¤ê¾Ã¤·¼ïÊÌ (cancelability type) -¤¬±ä´ü (deferred) ¤Ç¡¢¤½¤Î¥¹¥ì¥Ã¥É¤ËÂФ¹¤ë¼è¤ê¾Ã¤·Í׵᤬½èÍýÂÔ¤Á¤Î¾ì¹ç¡¢ -¼è¤ê¾Ã¤·¥Ý¥¤¥ó¥È¤Ç¤¢¤ë´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿»þÅÀ¤Ç¡¢¤½¤Î¥¹¥ì¥Ã¥É¤Î¥­¥ã¥ó¥»¥ë¤¬ -¹Ô¤ï¤ì¤ë¡£ +.SS 取り消しポイント (cancellation points) +POSIX.1 の規定では、特定の関数は取り消しポイントでなければならず、 +他の特定の関数は取り消しポイントであってもよいとされている。 +あるスレッドが取り消し可能で、その取り消し種別 (cancelability type) +が延期 (deferred) で、そのスレッドに対する取り消し要求が処理待ちの場合、 +取り消しポイントである関数を呼び出した時点で、そのスレッドのキャンセルが +行われる。 -POSIX.1-2001 ¤È POSIX.1-2008 ¤ÎξÊý¡¢¤â¤·¤¯¤Ï¤¤¤º¤ì¤«°ìÊý¤Ç¤Ï¡¢ -°Ê²¼¤Î´Ø¿ô¤Ï¡¢¼è¤ê¾Ã¤·¥Ý¥¤¥ó¥È (cancellation points) ¤Ç -¤¢¤ë¤³¤È¤¬É¬¿Ü¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ +POSIX.1-2001 と POSIX.1-2008 の両方、もしくはいずれか一方では、 +以下の関数は、取り消しポイント (cancellation points) で +あることが必須となっている。 .\" FIXME .\" Document the list of all functions that are cancellation points in glibc @@ -285,7 +285,7 @@ msgsnd() msync() nanosleep() open() -openat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +openat() [POSIX.1-2008 で追加された] pause() poll() pread() @@ -316,7 +316,7 @@ sigwaitinfo() sleep() system() tcdrain() -usleep() [POSIX.1-2001 ¤Î¤ß (POSIX.1-2008 ¤Çºï½ü¤µ¤ì¤¿)] +usleep() [POSIX.1-2001 のみ (POSIX.1-2008 で削除された)] wait() waitid() waitpid() @@ -325,9 +325,9 @@ writev() .fi .in -POSIX.1-2001 ¤È POSIX.1-2008 ¤ÎξÊý¡¢¤â¤·¤¯¤Ï¤¤¤º¤ì¤«°ìÊý¤Ç¤Ï¡¢ -°Ê²¼¤Î´Ø¿ô¤Ï¡¢¼è¤ê¾Ã¤·¥Ý¥¤¥ó¥È (cancellation points) ¤Ç -¤¢¤Ã¤Æ¤â¤è¤¤¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +POSIX.1-2001 と POSIX.1-2008 の両方、もしくはいずれか一方では、 +以下の関数は、取り消しポイント (cancellation points) で +あってもよいことになっている。 .in +4n .nf @@ -337,8 +337,8 @@ asctime_r() catclose() catgets() catopen() -chmod() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -chown() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +chmod() [POSIX.1-2008 で追加された] +chown() [POSIX.1-2008 で追加された] closedir() closelog() ctermid() @@ -352,7 +352,7 @@ dbm_open() dbm_store() dlclose() dlopen() -dprintf() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +dprintf() [POSIX.1-2008 で追加された] endgrent() endhostent() endnetent() @@ -360,13 +360,13 @@ endprotoent() endpwent() endservent() endutxent() -faccessat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -fchmod() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -fchmodat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -fchown() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -fchownat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +faccessat() [POSIX.1-2008 で追加された] +fchmod() [POSIX.1-2008 で追加された] +fchmodat() [POSIX.1-2008 で追加された] +fchown() [POSIX.1-2008 で追加された] +fchownat() [POSIX.1-2008 で追加された] fclose() -fcntl() (cmd °ú¤­¿ô¤¬²¿¤Ç¤¢¤Ã¤Æ¤â) +fcntl() (cmd 引き数が何であっても) fflush() fgetc() fgetpos() @@ -388,11 +388,11 @@ fseek() fseeko() fsetpos() fstat() -fstatat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +fstatat() [POSIX.1-2008 で追加された] ftell() ftello() ftw() -futimens() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +futimens() [POSIX.1-2008 で追加された] fwprintf() fwrite() fwscanf() @@ -403,25 +403,25 @@ getchar() getchar_unlocked() getcwd() getdate() -getdelim() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +getdelim() [POSIX.1-2008 で追加された] getgrent() getgrgid() getgrgid_r() getgrnam() getgrnam_r() -gethostbyaddr() [SUSv3 ¤Î¤ß (¤³¤Î´Ø¿ô¤Ï POSIX.1-2008 ¤Çºï½ü¤µ¤ì¤Æ¤¤¤ë)] -gethostbyname() [SUSv3 ¤Î¤ß (¤³¤Î´Ø¿ô¤Ï POSIX.1-2008 ¤Çºï½ü¤µ¤ì¤Æ¤¤¤ë)] +gethostbyaddr() [SUSv3 のみ (この関数は POSIX.1-2008 で削除されている)] +gethostbyname() [SUSv3 のみ (この関数は POSIX.1-2008 で削除されている)] gethostent() gethostid() gethostname() -getline() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +getline() [POSIX.1-2008 で追加された] getlogin() getlogin_r() getnameinfo() getnetbyaddr() getnetbyname() getnetent() -getopt() (opterr ¤¬ 0 °Ê³°¤Î¾ì¹ç) +getopt() (opterr が 0 以外の場合) getprotobyname() getprotobynumber() getprotoent() @@ -439,26 +439,26 @@ getutxid() getutxline() getwc() getwchar() -getwd() [SUSv3 ¤Î¤ß (¤³¤Î´Ø¿ô¤Ï POSIX.1-2008 ¤Çºï½ü¤µ¤ì¤Æ¤¤¤ë)] +getwd() [SUSv3 のみ (この関数は POSIX.1-2008 で削除されている)] glob() iconv_close() iconv_open() ioctl() link() -linkat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -lio_listio() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +linkat() [POSIX.1-2008 で追加された] +lio_listio() [POSIX.1-2008 で追加された] localtime() localtime_r() -lockf() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +lockf() [POSIX.1-2008 で追加された] lseek() lstat() -mkdir() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -mkdirat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -mkdtemp() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -mkfifo() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -mkfifoat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -mknod() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -mknodat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +mkdir() [POSIX.1-2008 で追加された] +mkdirat() [POSIX.1-2008 で追加された] +mkdtemp() [POSIX.1-2008 で追加された] +mkfifo() [POSIX.1-2008 で追加された] +mkfifoat() [POSIX.1-2008 で追加された] +mknod() [POSIX.1-2008 で追加された] +mknodat() [POSIX.1-2008 で追加された] mkstemp() mktime() nftw() @@ -492,8 +492,8 @@ posix_trace_shutdown() posix_trace_timedgetnext_event() posix_typed_mem_open() printf() -psiginfo() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -psignal() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +psiginfo() [POSIX.1-2008 で追加された] +psignal() [POSIX.1-2008 で追加された] pthread_rwlock_rdlock() pthread_rwlock_timedrdlock() pthread_rwlock_timedwrlock() @@ -508,14 +508,14 @@ putwc() putwchar() readdir() readdir_r() -readlink() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -readlinkat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +readlink() [POSIX.1-2008 で追加された] +readlinkat() [POSIX.1-2008 で追加された] remove() rename() -renameat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +renameat() [POSIX.1-2008 で追加された] rewind() rewinddir() -scandir() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +scandir() [POSIX.1-2008 で追加された] scanf() seekdir() semop() @@ -526,13 +526,13 @@ setprotoent() setpwent() setservent() setutxent() -sigpause() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +sigpause() [POSIX.1-2008 で追加された] stat() strerror() strerror_r() strftime() symlink() -symlinkat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +symlinkat() [POSIX.1-2008 で追加された] sync() syslog() tmpfile() @@ -543,11 +543,11 @@ tzset() ungetc() ungetwc() unlink() -unlinkat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -utime() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -utimensat() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -utimes() [POSIX.1-2008 ¤ÇÄɲ䵤줿] -vdprintf() [POSIX.1-2008 ¤ÇÄɲ䵤줿] +unlinkat() [POSIX.1-2008 で追加された] +utime() [POSIX.1-2008 で追加された] +utimensat() [POSIX.1-2008 で追加された] +utimes() [POSIX.1-2008 で追加された] +vdprintf() [POSIX.1-2008 で追加された] vfprintf() vfwprintf() vprintf() @@ -559,11 +559,11 @@ wscanf() .fi .in -¼ÂÁõ»þ¤Ë¡¢É¸½àµ¬³Ê¤Çµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤½¤Î¾¤Î´Ø¿ô¤ò¼è¤ê¾Ã¤·¥Ý¥¤¥ó¥È -¤È¤¹¤ë¤³¤È¤âǧ¤á¤é¤ì¤Æ¤¤¤ë¡£ -Æäˡ¢Ää»ß (block) ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ëÈóɸ½à¤Î´Ø¿ô¤ò¼è¤ê¾Ã¤·¥Ý¥¤¥ó¥È¤È -¤¹¤ë¼ÂÁõ¤Ï¤¢¤êÆÀ¤ë¤³¤È¤À¤í¤¦ -(¥Õ¥¡¥¤¥ë¤ò°·¤¦²ÄǽÀ­¤Î¤¢¤ë¤Û¤È¤ó¤É¤Î´Ø¿ô¤¬¤³¤ì¤Ë´Þ¤Þ¤ì¤ë)¡£ +実装時に、標準規格で規定されていないその他の関数を取り消しポイント +とすることも認められている。 +特に、停止 (block) する可能性がある非標準の関数を取り消しポイントと +する実装はあり得ることだろう +(ファイルを扱う可能性のあるほとんどの関数がこれに含まれる)。 .\" So, scanning "cancellation point" comments in the glibc 2.8 header .\" files, it looks as though at least the following nonstandard .\" functions are cancellation points: @@ -654,208 +654,208 @@ wscanf() .\" vscanf .\" vsyslog .\" vwscanf -.SS "Linux ¤Ç¤Î¥³¥ó¥Ñ¥¤¥ë" -Linux ¤Ç¤Ï¡¢Pthreads API ¤òÍѤ¤¤¿¥×¥í¥°¥é¥à¤Ï +.SS "Linux でのコンパイル" +Linux では、Pthreads API を用いたプログラムは .I "cc \-pthread" -¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -.SS "POSIX ¥¹¥ì¥Ã¥É¤Î Linux ¤Ç¤Î¼ÂÁõ" -¤³¤ì¤Þ¤Ç¡¢2¤Ä¤Î¥¹¥ì¥Ã¥É¤Î¼ÂÁõ¤¬ Linux ¤Î GNU C ¥é¥¤¥Ö¥é¥ê¤Ë¤è¤ê -Ä󶡤µ¤ì¤Æ¤­¤¿¡£ +でコンパイルすべきである。 +.SS "POSIX スレッドの Linux での実装" +これまで、2つのスレッドの実装が Linux の GNU C ライブラリにより +提供されてきた。 .TP .B LinuxThreads -ºÇ½é¤Î Pthreads ¤Î¼ÂÁõ¡£ -glibc 2.4 °Ê¹ß¤Ï¡¢¤³¤Î¼ÂÁõ¤Ï¤â¤Ï¤ä¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +最初の Pthreads の実装。 +glibc 2.4 以降は、この実装はもはやサポートされていない。 .TP .BR NPTL " (Native POSIX Threads Library)" -¿·¤·¤¤ Pthreads ¤Î¼ÂÁõ¡£LinuxThreads ¤ÈÈæ¤Ù¤ë¤È¡¢ -NPTL ¤Ï POSIX.1 ¤ÎÍ×µá»ÅÍͤؤνàµò¤ÎÅٹ礤¤¬¹â¤¯¡¢ -¿¿ô¤Î¥¹¥ì¥Ã¥É¤òºîÀ®¤·¤¿ºÝ¤ÎÀ­Ç½¤â¹â¤¤¡£ -NPTL ¤Ï glibc 2.3.2 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£ -NPTL ¤òÍøÍѤ¹¤ë¤Ë¤Ï Linux 2.6 ¥«¡¼¥Í¥ë¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ëµ¡Ç½¤¬É¬ÍפǤ¢¤ë¡£ +新しい Pthreads の実装。LinuxThreads と比べると、 +NPTL は POSIX.1 の要求仕様への準拠の度合いが高く、 +多数のスレッドを作成した際の性能も高い。 +NPTL は glibc 2.3.2 以降で利用可能である。 +NPTL を利用するには Linux 2.6 カーネルに実装されている機能が必要である。 .PP -¤É¤Á¤é¤Î¼ÂÁõ¤â¤¤¤ï¤æ¤ë 1:1 ¼ÂÁõ¡¢¤¹¤Ê¤ï¤Á¸Ä¡¹¤Î¥¹¥ì¥Ã¥É¤¬ -¥«¡¼¥Í¥ë¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¼ÂÂΤ˥ޥåԥ󥰤µ¤ì¤ë¡£ -¤É¤Á¤é¤Î¥¹¥ì¥Ã¥É¤Î¼ÂÁõ¤â Linux ¤Î +どちらの実装もいわゆる 1:1 実装、すなわち個々のスレッドが +カーネルのスケジューリング実体にマッピングされる。 +どちらのスレッドの実装も Linux の .BR clone (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÍøÍѤ·¤Æ¤¤¤ë¡£ -NPTL ¤Ç¤Ï¡¢¥¹¥ì¥Ã¥ÉƱ´ü¤Î´ðËܵ¡¹½ (mutex ¤ä ¥¹¥ì¥Ã¥É¤Î join Åù) ¤Ï -Linux ¤Î +システムコールを利用している。 +NPTL では、スレッド同期の基本機構 (mutex や スレッドの join 等) は +Linux の .BR futex (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ +システムコールを使って実装されている。 .SS LinuxThreads -¤³¤Î¼ÂÁõ¤ÎÂ礭¤ÊÆÃħ¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë: +この実装の大きな特徴は以下の通りである: .IP \- 3 -¥á¥¤¥ó¥¹¥ì¥Ã¥É (ºÇ½é¤Î¥¹¥ì¥Ã¥É) ¤È¥×¥í¥°¥é¥à¤¬ +メインスレッド (最初のスレッド) とプログラムが .BR pthread_create (3) -¤ò»È¤Ã¤ÆºîÀ®¤·¤¿¥¹¥ì¥Ã¥É¤Ë²Ã¤¨¡¢ -¤³¤Î¼ÂÁõ¤Ç¤Ï¡Ö´ÉÍý (manager)¡×¥¹¥ì¥Ã¥É¤¬ºîÀ®¤µ¤ì¤ë¡£ -´ÉÍý¥¹¥ì¥Ã¥É¤Ï¥¹¥ì¥Ã¥É¤ÎºîÀ®¤È½ªÎ»¤ò¼è¤ê°·¤¦ -(¤³¤Î¥¹¥ì¥Ã¥É¤¬¤¦¤Ã¤«¤ê kill ¤µ¤ì¤ë¤È¡¢ÌäÂ꤬µ¯¤³¤ë¤³¤È¤¬¤¢¤ë)¡£ +を使って作成したスレッドに加え、 +この実装では「管理 (manager)」スレッドが作成される。 +管理スレッドはスレッドの作成と終了を取り扱う +(このスレッドがうっかり kill されると、問題が起こることがある)。 .IP \- 3 -¤³¤Î¼ÂÁõ¤Ç¤ÏÆâÉô¤Ç¥·¥°¥Ê¥ë¤ò»ÈÍѤ·¤Æ¤¤¤ë¡£ -Linux 2.2 °Ê¹ß¤Ç¤Ï¡¢¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Î¤¦¤ÁºÇ½é¤Î 3¤Ä¤¬»È¤ï¤ì¤ë +この実装では内部でシグナルを使用している。 +Linux 2.2 以降では、リアルタイムシグナルのうち最初の 3つが使われる .RB ( signal (7) -»²¾È)¡£ -¤½¤ì°ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï +参照)。 +それ以前のカーネルでは .B SIGUSR1 -¤È +と .B SIGUSR2 -¤¬»È¤ï¤ì¤ë¡£ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢¥¹¥ì¥Ã¥É¼ÂÁõ¤ÇÍøÍѤµ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤ò -¤É¤ì¤â»È¤ï¤Ê¤¤¤è¤¦¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.IP \- 3 -¥¹¥ì¥Ã¥É´Ö¤Ç¥×¥í¥»¥¹ ID ¤ò¶¦Í­¤·¤Ê¤¤ -(¼ÂºÝ¤Ë¤Ï LinuxThreads ¤Î¥¹¥ì¥Ã¥É¤ÏÄ̾ï¤è¤ê¤Ï¾ðÊó¤ò¶¦Í­¤¹¤ë¥×¥í¥»¥¹¤È¤·¤Æ -¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢°ì¤Ä¤Î¶¦ÄÌ¤Î¥×¥í¥»¥¹ ID ¤ò¶¦Í­¤·¤Æ¤Ï¤¤¤Ê¤¤)¡£ -(´ÉÍý¥¹¥ì¥Ã¥É¤ò´Þ¤à) LinuxThreads ¥¹¥ì¥Ã¥É¤Ï +が使われる。 +アプリケーションは、スレッド実装で利用されているシグナルを +どれも使わないようにしなければならない。 +.IP \- 3 +スレッド間でプロセス ID を共有しない +(実際には LinuxThreads のスレッドは通常よりは情報を共有するプロセスとして +実装されているが、一つの共通のプロセス ID を共有してはいない)。 +(管理スレッドを含む) LinuxThreads スレッドは .BR ps (1) -¤ò»È¤¦¤ÈÊÌ¤Î¥×¥í¥»¥¹¤Î¤è¤¦¤Ë¸«¤¨¤ë¡£ +を使うと別のプロセスのように見える。 .PP -LinuxThreads ¤Î¼ÂÁõ¤Ç¤Ï POSIX.1 »ÅÍͤ«¤é°ï椷¤Æ¤¤¤ëÅÀ¤¬ -¤¤¤¯¤Ä¤«¤¢¤ë¡£°Ê²¼¤Ë¼¨¤¹¤è¤¦¤ÊÅÀ¤¬¤¢¤ë: +LinuxThreads の実装では POSIX.1 仕様から逸脱している点が +いくつかある。以下に示すような点がある: .IP \- 3 .BR getpid (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¤È¤­¤Ë¡¢¥¹¥ì¥Ã¥ÉËè¤Ë°Û¤Ê¤ëÃͤ¬ÊÖ¤µ¤ì¤ë¡£ +を呼び出したときに、スレッド毎に異なる値が返される。 .IP \- 3 -¥á¥¤¥ó¥¹¥ì¥Ã¥É°Ê³°¤Î¥¹¥ì¥Ã¥É¤Ç +メインスレッド以外のスレッドで .BR getppid (2) -¤ò¸Æ¤Ó½Ð¤¹¤È¡¢´ÉÍý¥¹¥ì¥Ã¥É¤Î¥×¥í¥»¥¹ ID ¤¬ÊÖ¤µ¤ì¤ë¡£ -ËÜÅö¤Ï¡¢¤³¤ì¤é¤Î¥¹¥ì¥Ã¥É¤Ç +を呼び出すと、管理スレッドのプロセス ID が返される。 +本当は、これらのスレッドで .BR getppid (2) -¤ò¸Æ¤ó¤À¾ì¹ç¤Ë¤Ï¥á¥¤¥ó¥¹¥ì¥Ã¥É¤Ç¤Î +を呼んだ場合にはメインスレッドでの .BR getppid (2) -¤ÈƱ¤¸Ãͤ¬ÊÖ¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +と同じ値が返るべきである。 .IP \- 3 -¤¢¤ë¥¹¥ì¥Ã¥É¤¬ +あるスレッドが .BR fork (2) -¤ò»È¤Ã¤Æ¿·¤·¤¤»Ò¥×¥í¥»¥¹¤òºîÀ®¤·¤¿¾ì¹ç¡¢ -¤É¤Î¥¹¥ì¥Ã¥É¤Ç¤â¤³¤Î»Ò¥×¥í¥»¥¹¤ò +を使って新しい子プロセスを作成した場合、 +どのスレッドでもこの子プロセスを .BR wait (2) -¤Ç¤­¤ë¤Ù¤­¤Ç¤¢¤ë¡£¤·¤«¤·¤Ê¤¬¤é¡¢¤³¤Î¼ÂÁõ¤Ç¤Ï»Ò¥×¥í¥»¥¹¤òºîÀ®¤·¤¿ -¥¹¥ì¥Ã¥É¤À¤±¤¬¤³¤Î»Ò¥×¥í¥»¥¹¤ò +できるべきである。しかしながら、この実装では子プロセスを作成した +スレッドだけがこの子プロセスを .BR wait (2) -¤Ç¤­¤ë¡£ +できる。 .IP \- 3 -¤¢¤ë¥¹¥ì¥Ã¥É¤¬ +あるスレッドが .BR execve (2) -¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¡¢Â¾¤Î¥¹¥ì¥Ã¥É¤ÏÁ´¤Æ½ªÎ»¤µ¤ì¤ë (POSIX.1 ¤Î»ÅÍÍÄ̤ê)¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢¿·¤·¤¤¥×¥í¥»¥¹¤Ï +を呼び出した場合、他のスレッドは全て終了される (POSIX.1 の仕様通り)。 +しかしながら、新しいプロセスは .BR execve (2) -¤ò¸Æ¤ó¤À¥¹¥ì¥Ã¥É¤ÈƱ¤¸ PID ¤ò»ý¤Ä¡£Àµ¤·¤¯¤Ï -¥á¥¤¥ó¥¹¥ì¥Ã¥É¤ÈƱ¤¸ PID ¤ò»ý¤Ä¤Ù¤­¤Ç¤¢¤ë¡£ +を呼んだスレッドと同じ PID を持つ。正しくは +メインスレッドと同じ PID を持つべきである。 .IP \- 3 -¥¹¥ì¥Ã¥É´Ö¤Ç¥æ¡¼¥¶ ID ¤È¥°¥ë¡¼¥× ID ¤¬¶¦Í­¤µ¤ì¤Ê¤¤ -¤³¤Î¤³¤È¤Ï¡¢set-user-ID ¥×¥í¥°¥é¥à¤ÇÌÌÅݤʻöÂÖ¤ò¾·¤¤¤¿¤ê¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬ +スレッド間でユーザ ID とグループ ID が共有されない +このことは、set-user-ID プログラムで面倒な事態を招いたり、 +アプリケーションが .BR seteuid (2) -¤Ê¤É¤ò»È¤Ã¤Æ¿®ÍѾðÊó (credentials) ¤òÊѹ¹¤·¤¿¾ì¹ç¤Ë -Pthreads ´Ø¿ô¤¬¼ºÇÔ¤¹¤ë¸¶°ø¤È¤Ê¤ë¡£ +などを使って信用情報 (credentials) を変更した場合に +Pthreads 関数が失敗する原因となる。 .IP \- 3 -¥¹¥ì¥Ã¥É´Ö¤Ç¶¦Ä̤Υ»¥Ã¥·¥ç¥ó ID ¤ä¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤ò¶¦Í­¤·¤Ê¤¤¡£ +スレッド間で共通のセッション ID やプロセスグループ ID を共有しない。 .IP \- 3 -¥¹¥ì¥Ã¥É´Ö¤Ç +スレッド間で .BR fcntl (2) -¤ò»È¤Ã¤ÆºîÀ®¤µ¤ì¤ë¥ì¥³¡¼¥É¡¦¥í¥Ã¥¯¤ò¶¦Í­¤·¤Ê¤¤¡£ +を使って作成されるレコード・ロックを共有しない。 .IP \- 3 .BR times (2) -¤È +と .BR getrusage (2) -¤¬ÊÖ¤¹¾ðÊó¤¬¥×¥í¥»¥¹Á´ÂΤξðÊó¤Ç¤Ê¤¯¥¹¥ì¥Ã¥Éñ°Ì¤Î¾ðÊó¤Ç¤¢¤ë¡£ +が返す情報がプロセス全体の情報でなくスレッド単位の情報である。 .IP \- 3 -¥¹¥ì¥Ã¥É´Ö¤Ç¥»¥Þ¥Õ¥©¤Î¥¢¥ó¥É¥¥ÃÍ +スレッド間でセマフォのアンドゥ値 .RB ( semop (2) -»²¾È) ¤ò¶¦Í­¤·¤Ê¤¤¡£ +参照) を共有しない。 .IP \- 3 -¥¹¥ì¥Ã¥É´Ö¤Ç¥¤¥ó¥¿¡¼¥Ð¥ë¡¦¥¿¥¤¥Þ¤ò¶¦Í­¤·¤Ê¤¤¡£ +スレッド間でインターバル・タイマを共有しない。 .IP \- 3 -¥¹¥ì¥Ã¥É¤Ï¶¦Ä̤Πnice Ãͤò¶¦Í­¤·¤Ê¤¤¡£ +スレッドは共通の nice 値を共有しない。 .IP \- 3 -POSXI.1 ¤Ç¤Ï¡¢Á´ÂΤȤ·¤Æ¤Î¥×¥í¥»¥¹¤ËÁ÷¤é¤ì¤ë¥·¥°¥Ê¥ë¤È¡¢ -¸ÄÊ̤Υ¹¥ì¥Ã¥É¤ËÁ÷¤é¤ì¤ë¥·¥°¥Ê¥ë¤ò¶èÊ̤·¤Æ¹Í¤¨¤Æ¤¤¤ë¡£ -POSIX.1 ¤Ë¤è¤ë¤È¡¢¥×¥í¥»¥¹¤ËÁ÷¤é¤ì¤¿¥·¥°¥Ê¥ë (Î㤨¤Ð +POSXI.1 では、全体としてのプロセスに送られるシグナルと、 +個別のスレッドに送られるシグナルを区別して考えている。 +POSIX.1 によると、プロセスに送られたシグナル (例えば .BR kill (2) -¤ò»È¤Ã¤ÆÁ÷¤ë) ¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤Ë°¤¹¥¹¥ì¥Ã¥É¤Î¤¦¤Á -¾¡¼ê¤Ë (arbitrarily) ¤ËÁªÂò¤µ¤ì¤¿°ì¤Ä¤Î¥¹¥ì¥Ã¥É¤Ë¤è¤ê½èÍý¤µ¤ì¤ë -¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£LinuxThreads ¤Ï¥×¥í¥»¥¹¤ËÁ÷¤é¤ì¤ë¥·¥°¥Ê¥ë¤Î -³µÇ°¤ËÂбþ¤·¤Æ¤ª¤é¤º¡¢¥·¥°¥Ê¥ë¤ÏÆÃÄê¤Î¥¹¥ì¥Ã¥É¤Ë¤À¤±Á÷¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.IP \- 3 -¥¹¥ì¥Ã¥É¤Ï¤½¤ì¤¾¤ì¤ÎÆȼ«¤ÎÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ÎÀßÄê¤ò»ý¤Ä¡£ -¤·¤«¤·¡¢¿·¤·¤¤¥¹¥ì¥Ã¥É¤ÎÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ÎÀßÄê¤Ï -¤½¤Î¥¹¥ì¥Ã¥É¤òºîÀ®¤·¤¿¥¹¥ì¥Ã¥É¤«¤é¥³¥Ô¡¼¤µ¤ì¡¢¤½¤Î¤¿¤á -¥¹¥ì¥Ã¥É¤ÏºÇ½é¤Ï°ì¤Ä¤ÎÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ò¶¦Í­¤¹¤ë¡£ -(»ÅÍͤǤϡ¢¿·¤·¤¤¥¹¥ì¥Ã¥É¤ÏÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¾õÂÖ -¤Ç³«»Ï¤µ¤ì¤ë¤Ù¤­¤È¤µ¤ì¤Æ¤¤¤ë¡£ -2¤Ä¤Î¥¹¥ì¥Ã¥É¤¬¶¦Í­¤µ¤ì¤Æ¤¤¤ëÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¾å¤ÇƱ»þ¤Ë -¥·¥°¥Ê¥ë¤Î½èÍý¤ò¹Ô¤Ã¤¿¾ì¹ç¡¢Í½Â¬ÉÔ²Äǽ¤Ê¥×¥í¥°¥é¥à¤Î¥¨¥é¡¼¤¬ -µ¯¤³¤êÆÀ¤ë¡£) +を使って送る) は、そのプロセスに属すスレッドのうち +勝手に (arbitrarily) に選択された一つのスレッドにより処理される +ことになっている。LinuxThreads はプロセスに送られるシグナルの +概念に対応しておらず、シグナルは特定のスレッドにだけ送ることができる。 +.IP \- 3 +スレッドはそれぞれの独自の代替シグナルスタックの設定を持つ。 +しかし、新しいスレッドの代替シグナルスタックの設定は +そのスレッドを作成したスレッドからコピーされ、そのため +スレッドは最初は一つの代替シグナルスタックを共有する。 +(仕様では、新しいスレッドは代替シグナルスタックが定義されていない状態 +で開始されるべきとされている。 +2つのスレッドが共有されている代替シグナルスタック上で同時に +シグナルの処理を行った場合、予測不可能なプログラムのエラーが +起こり得る。) .SS NPTL -NPTL ¤Ç¤Ï¡¢°ì¤Ä¤Î¥×¥í¥»¥¹¤ÎÁ´¤Æ¤Î¥¹¥ì¥Ã¥É¤ÏƱ¤¸¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥× -¤Ë°¤¹¤ë; ¥¹¥ì¥Ã¥É¡¦¥°¥ë¡¼¥×¤ÎÁ´¥á¥ó¥Ð¡¼¤ÏƱ¤¸ PID ¤ò¶¦Í­¤¹¤ë¡£ -NPTL ¤Ï´ÉÍý¥¹¥ì¥Ã¥É (manager thread) ¤òÍøÍѤ·¤Ê¤¤¡£ -NPTL ¤ÏÆâÉô¤Ç¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Î¤¦¤ÁºÇ½é¤Î 2¤Ä¤ÎÈÖ¹æ¤ò»ÈÍѤ·¤Æ¤ª¤ê +NPTL では、一つのプロセスの全てのスレッドは同じスレッド・グループ +に属する; スレッド・グループの全メンバーは同じ PID を共有する。 +NPTL は管理スレッド (manager thread) を利用しない。 +NPTL は内部でリアルタイムシグナルのうち最初の 2つの番号を使用しており .RB ( signal (7) -»²¾È)¡¢¤³¤ì¤é¤Î¥·¥°¥Ê¥ë¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï»ÈÍѤǤ­¤Ê¤¤¡£ +参照)、これらのシグナルはアプリケーションでは使用できない。 -NPTL ¤Ë¤â POSIX.1 ¤Ë½àµò¤·¤Æ¤¤¤Ê¤¤ÅÀ¤¬¾¯¤Ê¤¯¤È¤â°ì¤Ä¤¢¤ë: +NPTL にも POSIX.1 に準拠していない点が少なくとも一つある: .IP \- 3 -¥¹¥ì¥Ã¥É¤Ï¶¦Ä̤Πnice Ãͤò¶¦Í­¤·¤Ê¤¤¡£ +スレッドは共通の nice 値を共有しない。 .\" FIXME . bug report filed for NPTL nice nonconformance .\" http://bugzilla.kernel.org/show_bug.cgi?id=6258 .\" Sep 08: there is a patch by Denys Vlasenko to address this .\" "make setpriority POSIX compliant; introduce PRIO_THREAD extension" .\" Monitor this to see if it makes it into mainline. .PP -NPTL ¤Îɸ½àÈó½àµò¤ÊÅÀ¤Î¤¦¤Á¤¤¤¯¤Ä¤«¤Ï°ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Î¤ßȯÀ¸¤¹¤ë: +NPTL の標準非準拠な点のうちいくつかは以前のカーネルでのみ発生する: .IP \- 3 .BR times (2) -¤È +と .BR getrusage (2) -¤¬ÊÖ¤¹¾ðÊó¤¬¥×¥í¥»¥¹Á´ÂΤξðÊó¤Ç¤Ê¤¯¥¹¥ì¥Ã¥Éñ°Ì¤Î¾ðÊó¤Ç¤¢¤ë -(¥«¡¼¥Í¥ë 2.6.9 ¤Ç½¤Àµ¤µ¤ì¤¿)¡£ +が返す情報がプロセス全体の情報でなくスレッド単位の情報である +(カーネル 2.6.9 で修正された)。 .IP \- 3 -¥¹¥ì¥Ã¥É´Ö¤Ç¥ê¥½¡¼¥¹À©¸Â¤ò¶¦Í­¤·¤Ê¤¤ (¥«¡¼¥Í¥ë 2.6.10 ¤Ç½¤Àµ¤µ¤ì¤¿)¡£ +スレッド間でリソース制限を共有しない (カーネル 2.6.10 で修正された)。 .IP \- 3 -¥¹¥ì¥Ã¥É´Ö¤Ç¥¤¥ó¥¿¡¼¥Ð¥ë¡¦¥¿¥¤¥Þ¤ò¶¦Í­¤·¤Ê¤¤ -(¥«¡¼¥Í¥ë 2.6.12 ¤Ç½¤Àµ¤µ¤ì¤¿)¡£ +スレッド間でインターバル・タイマを共有しない +(カーネル 2.6.12 で修正された)。 .IP \- 3 -¥á¥¤¥ó¥¹¥ì¥Ã¥É¤À¤±¤¬ +メインスレッドだけが .BR setsid (2) -¤ò»È¤Ã¤Æ¿·¤·¤¤¥»¥Ã¥·¥ç¥ó¤ò³«»Ï¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë -(¥«¡¼¥Í¥ë 2.6.16 ¤Ç½¤Àµ¤µ¤ì¤¿)¡£ +を使って新しいセッションを開始することができる +(カーネル 2.6.16 で修正された)。 .IP \- 3 -¥á¥¤¥ó¥¹¥ì¥Ã¥É¤À¤±¤¬ +メインスレッドだけが .BR setpgid (2) -¤ò»È¤Ã¤Æ¤½¤Î¥×¥í¥»¥¹¤ò¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¡¦¥ê¡¼¥À¡¼¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë -(¥«¡¼¥Í¥ë 2.6.16 ¤Ç½¤Àµ¤µ¤ì¤¿)¡£ -.IP \- 3 -¥¹¥ì¥Ã¥É¤Ï¤½¤ì¤¾¤ì¤ÎÆȼ«¤ÎÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ÎÀßÄê¤ò»ý¤Ä¡£ -¤·¤«¤·¡¢¿·¤·¤¤¥¹¥ì¥Ã¥É¤ÎÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ÎÀßÄê¤Ï -¤½¤Î¥¹¥ì¥Ã¥É¤òºîÀ®¤·¤¿¥¹¥ì¥Ã¥É¤«¤é¥³¥Ô¡¼¤µ¤ì¡¢¤½¤Î¤¿¤á -¥¹¥ì¥Ã¥É¤ÏºÇ½é¤Ï°ì¤Ä¤ÎÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ò¶¦Í­¤¹¤ë -(¥«¡¼¥Í¥ë 2.6.16 ¤Ç½¤Àµ¤µ¤ì¤¿)¡£ +を使ってそのプロセスをプロセス・グループ・リーダーにすることができる +(カーネル 2.6.16 で修正された)。 +.IP \- 3 +スレッドはそれぞれの独自の代替シグナルスタックの設定を持つ。 +しかし、新しいスレッドの代替シグナルスタックの設定は +そのスレッドを作成したスレッドからコピーされ、そのため +スレッドは最初は一つの代替シグナルスタックを共有する +(カーネル 2.6.16 で修正された)。 .PP -NPTL ¤Î¼ÂÁõ¤Ç¤Ï°Ê²¼¤ÎÅÀ¤Ë¤Ä¤¤¤Æ¤âÃí°Õ¤¹¤ë¤³¤È: +NPTL の実装では以下の点についても注意すること: .IP \- 3 -¥¹¥¿¥Ã¥¯¥µ¥¤¥º¤Î¥ê¥½¡¼¥¹¤Î¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È +スタックサイズのリソースのソフト・リミット .RB ( setrlimit (2) -¤Î +の .B RLIMIT_STACK -¤ÎÀâÌÀ¤ò»²¾È) ¤¬ +の説明を参照) が .I unlimited -°Ê³°¤ÎÃͤËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥½¥Õ¥È¡¦¥ê¥ß¥Ã¥È¤ÎÃͤ¬ -¿·¤·¤¤¥¹¥ì¥Ã¥É¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥¹¥¿¥Ã¥¯¥µ¥¤¥º¤È¤Ê¤ë¡£ -ÀßÄê¤òÍ­¸ú¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ëÁ°¤Ë¥ê¥ß¥Ã¥ÈÃͤò -ÀßÄꤷ¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤¿¤¤¤Æ¤¤¤Ï¡¢¥·¥§¥ë¤ÎÁȤ߹þ¤ß¥³¥Þ¥ó¥É¤Î +以外の値に設定されている場合、ソフト・リミットの値が +新しいスレッドのデフォルトのスタックサイズとなる。 +設定を有効にするためには、プログラムを実行する前にリミット値を +設定しておかなければならない。たいていは、シェルの組み込みコマンドの .I ulimit -s -(C ¥·¥§¥ë¤Ç¤Ï +(C シェルでは .IR "limit stacksize" ) -¤ò»È¤Ã¤ÆÀßÄꤹ¤ë¡£ -.SS "¥¹¥ì¥Ã¥É¼ÂÁõ¤ÎȽÄê" -glibc 2.3.2 °Ê¹ß¤Ç¤Ï¡¢ +を使って設定する。 +.SS "スレッド実装の判定" +glibc 2.3.2 以降では、 .BR getconf (1) -¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¡¢ -¥·¥¹¥Æ¥à¤Î¥¹¥ì¥Ã¥É¼ÂÁõ¤òȽÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -°Ê²¼¤ËÎã¤ò¼¨¤¹: +コマンドを使って、 +システムのスレッド実装を判定することができる。 +以下に例を示す: .nf .in +4n @@ -864,8 +864,8 @@ NPTL 2.3.4 .in .fi .PP -¤¾¤ì°ÊÁ°¤Î glibc ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ê¥³¥Þ¥ó¥É¤Ç -¥Ç¥Õ¥©¥ë¥È¤Î¥¹¥ì¥Ã¥É¼ÂÁõ¤òȽÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +ぞれ以前の glibc のバージョンでは、以下のようなコマンドで +デフォルトのスレッド実装を判定することができる。 .nf .in +4n @@ -874,20 +874,20 @@ bash$ $( ldd /bin/ls | grep libc.so | awk \(aq{print $3}\(aq ) | \\ Native POSIX Threads Library by Ulrich Drepper et al .in .fi -.SS "¥¹¥ì¥Ã¥É¤Î¼ÂÁõ¤ÎÁªÂò: LD_ASSUME_KERNEL" -LinuxThreads ¤È NPTL ¤ÎξÊý¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë glibc -(glibc 2.3.\fIx\fP) ¤¬¤¢¤ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ +.SS "スレッドの実装の選択: LD_ASSUME_KERNEL" +LinuxThreads と NPTL の両方をサポートしている glibc +(glibc 2.3.\fIx\fP) があるシステムでは、 .B LD_ASSUME_KERNEL -´Ä¶­ÊÑ¿ô¤ò»È¤¦¤³¤È¤Ç¡¢Æ°Åª¥ê¥ó¥«¤¬¥Ç¥Õ¥©¥ë¥È¤Ç -ÁªÂò¤¹¤ë¥¹¥ì¥Ã¥É¼ÂÁõ¤ò¾å½ñ¤­¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤ÎÊÑ¿ô¤Ë¤è¤ê¡¢Æ°Åª¥ê¥ó¥«¤¬ÆÃÄê¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥«¡¼¥Í¥ë¾å¤Ç -Æ°ºî¤·¤Æ¤¤¤ë¤È²¾Äꤹ¤ë¤è¤¦¤Ë»ØÄꤹ¤ë¡£ -NPTL ¤¬É¬ÍפȤ¹¤ë¥µ¥Ý¡¼¥Èµ¡Ç½¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó¤ò -»ØÄꤹ¤ë¤³¤È¤Ç¡¢¶¯À©Åª¤Ë LinuxThreads ¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë -(¤³¤Î¤è¤¦¤Ê¤³¤È¤ò¤¹¤ëºÇ¤â¤¢¤ê¤½¤¦¤Ê¾ìÌ̤ϡ¢ -LinuxThreads ¤Îɸ½àÈó½àµò¤Ê¿¶Éñ¤¤¤Ë°Í¸¤¹¤ë (²õ¤ì¤¿) ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó -¤òÆ°ºî¤µ¤»¤ë¾ì¹ç¤À¤í¤¦)¡£ -°Ê²¼¤ËÎã¤ò¼¨¤¹: +環境変数を使うことで、動的リンカがデフォルトで +選択するスレッド実装を上書きすることができる。 +この変数により、動的リンカが特定のバージョンのカーネル上で +動作していると仮定するように指定する。 +NPTL が必要とするサポート機能を提供していないカーネルバージョンを +指定することで、強制的に LinuxThreads を使うことができる +(このようなことをする最もありそうな場面は、 +LinuxThreads の標準非準拠な振舞いに依存する (壊れた) アプリケーション +を動作させる場合だろう)。 +以下に例を示す: .nf .in +4n @@ -896,7 +896,7 @@ bash$ $( LD_ASSUME_KERNEL=2.2.5 ldd /bin/ls | grep libc.so | \\ linuxthreads-0.10 by Xavier Leroy .in .fi -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR clone (2), .BR futex (2), .BR gettid (2), @@ -904,7 +904,7 @@ bash$ $( LD_ASSUME_KERNEL=2.2.5 ldd /bin/ls | grep libc.so | \\ .BR sigevent (7), .BR signal (7), .br -¤ª¤è¤Ó Pthreads ¤Î³Æ¼ï¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¡¢Î㤨¤Ð: +および Pthreads の各種マニュアルページ、例えば: .BR pthread_attr_init (3), .BR pthread_atfork (3), .BR pthread_cancel (3), diff --git a/release/man7/pty.7 b/release/man7/pty.7 index 2c33387b..1c8543c0 100644 --- a/release/man7/pty.7 +++ b/release/man7/pty.7 @@ -25,132 +25,132 @@ .\" Japanese Version Copyright (c) 2005 Akihiro MOTOKI all rights reserved. .\" Translated 2005-10-14, Akihiro MOTOKI .\" -.\"WORD: pseudoterminal µ¼»÷üËö -.\"WORD: character device ¥­¥ã¥é¥¯¥¿¥Ç¥Ð¥¤¥¹ +.\"WORD: pseudoterminal 擬似端末 +.\"WORD: character device キャラクタデバイス .\" .TH PTY 7 2005-10-10 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -pty \- µ¼»÷üËö¥¤¥ó¥¿¥Õ¥§¡¼¥¹ -.SH ÀâÌÀ -µ¼»÷üËö (pseudoterminal; "pty" ¤Èά¤µ¤ì¤ë¤³¤È¤â¤¢¤ë) ¤Ï¡¢ -ÁÐÊý¸þÄÌ¿®¥Á¥ã¥ó¥Í¥ë¤òÄ󶡤¹¤ë²¾ÁÛ¥­¥ã¥é¥¯¥¿¥Ç¥Ð¥¤¥¹¤Î¥Ú¥¢¤Ç¤¢¤ë¡£ -¥Á¥ã¥ó¥Í¥ë¤Î°ìÊý¤ÎüÅÀ¤Ï -.I ¥Þ¥¹¥¿ (master) -¤È¸Æ¤Ð¤ì¡¢¤â¤¦°ìÊý¤ÎüÅÀ¤Ï -.I ¥¹¥ì¡¼¥Ö (slave) -¤È¸Æ¤Ð¤ì¤ë¡£ -µ¼»÷üËö¤Î¥¹¥ì¡¼¥Ö¤Ï¡¢ÅÁÅýŪ¤ÊüËö¤ÈÁ´¤¯Æ±¤¸Æ°ºî¤ò¤¹¤ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò -Ä󶡤¹¤ë¡£Ã¼Ëö¤ËÀܳ¤µ¤ì¤ë¤³¤È¤òÁÛÄꤷ¤Æ¤¤¤ë¥×¥í¥»¥¹¤Ïµ¼»÷üËö¤Î -¥¹¥ì¡¼¥Ö¤ò¥ª¡¼¥×¥ó¤¹¤ë¤³¤È¤¬¤Ç¤­¡¢¤½¤ì°Ê¹ß¤Ï¥Þ¥¹¥¿Â¦¤ò¥ª¡¼¥×¥ó -¤·¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤«¤é¤½¤Î¥×¥í¥»¥¹¤òÀ©¸æ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -üËö¤ÇÆþÎϤµ¤ì¤¿¤Î¤ÈƱ¤¸¤è¤¦¤Ë¡¢ -¥Þ¥¹¥¿Â¦¤Ë½ñ¤­¹þ¤Þ¤ì¤¿Á´¤Æ¤Î¥Ç¡¼¥¿¤Ï¡¢¥¹¥ì¡¼¥Ö¦¤Î¥×¥í¥»¥¹¤ËÁ÷¤é¤ì¤ë¡£ -Î㤨¤Ð¡¢¥Þ¥¹¥¿¥Ç¥Ð¥¤¥¹¤Ë³ä¤ê¹þ¤ß¥­¥ã¥é¥¯¥¿ (Ä̾ï¤Ï control-C) ¤ò½ñ¤­¹þ¤à¤È¡¢ -¥¹¥ì¡¼¥Ö¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¡¦¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ËÂФ·¤Æ -³ä¤ê¹þ¤ß¥·¥°¥Ê¥ë +.SH 名前 +pty \- 擬似端末インタフェース +.SH 説明 +擬似端末 (pseudoterminal; "pty" と略されることもある) は、 +双方向通信チャンネルを提供する仮想キャラクタデバイスのペアである。 +チャンネルの一方の端点は +.I マスタ (master) +と呼ばれ、もう一方の端点は +.I スレーブ (slave) +と呼ばれる。 +擬似端末のスレーブは、伝統的な端末と全く同じ動作をするインタフェースを +提供する。端末に接続されることを想定しているプロセスは擬似端末の +スレーブをオープンすることができ、それ以降はマスタ側をオープン +しているプログラムからそのプロセスを制御することができる。 +端末で入力されたのと同じように、 +マスタ側に書き込まれた全てのデータは、スレーブ側のプロセスに送られる。 +例えば、マスタデバイスに割り込みキャラクタ (通常は control-C) を書き込むと、 +スレーブに接続されているフォアグラウンド・プロセスグループに対して +割り込みシグナル .RB ( SIGINT ) -¤¬À¸À®¤µ¤ì¤ë¡£ -È¿ÂФˡ¢µ¼»÷üËö¤Î¥¹¥ì¡¼¥Ö¦¤Ë½ñ¤­¹þ¤Þ¤ì¤¿Á´¤Æ¤Î¥Ç¡¼¥¿¤Ï¡¢ -¥Þ¥¹¥¿Â¦¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¥×¥í¥»¥¹¤«¤éÆɤ߽Ф¹¤³¤È¤¬¤Ç¤­¤ë¡£ -µ¼»÷üËö¤Ï¡¢¥Í¥Ã¥È¥ï¡¼¥¯¥í¥°¥¤¥ó¥µ¡¼¥Ó¥¹ +が生成される。 +反対に、擬似端末のスレーブ側に書き込まれた全てのデータは、 +マスタ側に接続されているプロセスから読み出すことができる。 +擬似端末は、ネットワークログインサービス .RB ( ssh "(1), " rlogin "(1), " telnet (1)) -¤äüËö¥¨¥ß¥å¥ì¡¼¥¿¡¢ +や端末エミュレータ、 .BR script (1), .BR screen (1), .BR expect (1) -¤Ê¤É¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ +などのアプリケーションで使用されている。 -Îò»ËŪ¤Ë¸«¤ë¤È BSD ¤È System V ¤Î2¼ïÎà¤Îµ¼»÷üËö¤Î API ¤¬È¯Å¸¤·¤Æ¤­¤Æ¤¤¤ë¡£ -SUSv1 ¤Ï System V API ¤Ë´ð¤Å¤¤¤¿µ¼»÷üËö API ¤òɸ½à²½¤·¤Æ¤ª¤ê¡¢ -µ¼»÷üËö¤ò»ÈÍѤ¹¤ë¿·¤·¤¤¥×¥í¥°¥é¥à¤Ï¤¹¤Ù¤Æ¤³¤Î API ¤òºÎÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ +歴史的に見ると BSD と System V の2種類の擬似端末の API が発展してきている。 +SUSv1 は System V API に基づいた擬似端末 API を標準化しており、 +擬似端末を使用する新しいプログラムはすべてこの API を採用すべきである。 -Linux ¤Ç¤Ï BSD É÷¤È (ɸ½à²½¤µ¤ì¤¿) System V É÷¤Îµ¼»÷üËö¤òÄ󶡤·¤Æ¤¤¤ë¡£ -System V É÷¤ÎüËö¤Ï¡¢Linux ¥·¥¹¥Æ¥à¤Ç¤Ï°ìÈÌ¤Ë UNIX 98 µ¼»÷üËö¤È¸Æ¤Ð¤ì¤Æ¤¤¤ë¡£ -¥«¡¼¥Í¥ë 2.6.4 °Ê¹ß¤Ç¤Ï¡¢BSD É÷¤Îµ¼»÷üËö¤ÏÇÑ»ßͽÄê¤È¤ß¤Ê¤µ¤ì¤Æ¤¤¤ë -(¥«¡¼¥Í¥ë¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ç BSD É÷¤Îµ¼»÷üËö¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë)¡£ -¿·¤·¤¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢UNIX 98 µ¼»÷üËö¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ -.SS "UNIX 98 µ¼»÷üËö" -̤»ÈÍѤΠUNIX 98 µ¼»÷üËö¥Þ¥¹¥¿¤ò¥ª¡¼¥×¥ó¤¹¤ë¤Ë¤Ï +Linux では BSD 風と (標準化された) System V 風の擬似端末を提供している。 +System V 風の端末は、Linux システムでは一般に UNIX 98 擬似端末と呼ばれている。 +カーネル 2.6.4 以降では、BSD 風の擬似端末は廃止予定とみなされている +(カーネルのコンフィギュレーションで BSD 風の擬似端末を無効にすることができる)。 +新しいアプリケーションでは、UNIX 98 擬似端末を使用すべきである。 +.SS "UNIX 98 擬似端末" +未使用の UNIX 98 擬似端末マスタをオープンするには .BR posix_openpt (3) -¤ò¸Æ¤Ó½Ð¤¹ -(¤³¤Î´Ø¿ô¤Ï¥Þ¥¹¥¿¡¦¥¯¥í¡¼¥ó¡¦¥Ç¥Ð¥¤¥¹ (master clone device), +を呼び出す +(この関数はマスタ・クローン・デバイス (master clone device), .I /dev/ptmx -¤ò¥ª¡¼¥×¥ó¤¹¤ë; +をオープンする; .BR pts (4) -¤ò»²¾È)¡£ -¥×¥í¥°¥é¥à¸ÇÍ­¤Î½é´ü²½½èÍý¤ò¼Â¹Ô¤·¡¢ +を参照)。 +プログラム固有の初期化処理を実行し、 .BR grantpt (3) -¤ò»È¤Ã¤Æ¥¹¥ì¡¼¥Ö¥Ç¥Ð¥¤¥¹¤Î½êÍ­¸¢¤äµö²Ä¤òÊѹ¹¤·¡¢ +を使ってスレーブデバイスの所有権や許可を変更し、 .BR unlockpt (3) -¤ò»È¤Ã¤Æ¥¹¥ì¡¼¥Ö¤Î¥í¥Ã¥¯²ò½ü¤ò¹Ô¤¦¤È¡¢ +を使ってスレーブのロック解除を行うと、 .BR ptsname (3) -¤¬ÊÖ¤¹Ì¾Á°¤òÅϤ·¤Æ +が返す名前を渡して .BR open (2) -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ë¤è¤ê -Âбþ¤¹¤ë¥¹¥ì¡¼¥Ö¥Ç¥Ð¥¤¥¹¤ò¥ª¡¼¥×¥ó¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +を呼び出すことにより +対応するスレーブデバイスをオープンできるようになる。 -Linux ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ÍøÍѤǤ­¤ë UNIX 98 µ¼»÷üËö¤Î¿ô¤Ë¾å¸Â¤òÀߤ±¤Æ¤¤¤ë¡£ -2.6.3 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¤³¤Î¾å¸Â¤Ï¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤ÎÀßÄê +Linux カーネルでは、利用できる UNIX 98 擬似端末の数に上限を設けている。 +2.6.3 以前のカーネルでは、この上限はカーネルのコンパイル時の設定 .RB ( CONFIG_UNIX98_PTYS ) -¤Ç¤¢¤ë¡£µö²Ä¤µ¤ì¤ëµ¼»÷üËö¤Î¿ô¤ÏºÇÂç 2048 ¤Ç¤¢¤ê¡¢ -¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¤Ï 256 ¤Ç¤¢¤ë¡£ -¥«¡¼¥Í¥ë 2.6.4 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¾å¸Â¤Ï +である。許可される擬似端末の数は最大 2048 であり、 +デフォルトの設定は 256 である。 +カーネル 2.6.4 以降では、この上限は .I /proc/sys/kernel/pty/max -·Ðͳ¤ÇưŪ¤ËÄ´À°²Äǽ¤È¤Ê¤Ã¤Æ¤¤¤ë¡£¤Þ¤¿¡¢ +経由で動的に調整可能となっている。また、 .I /proc/sys/kernel/pty/nr -¤Ç¸½ºß»ÈÍÑÃæ¤Îµ¼»÷üËö¤Î¿ô¤ò¼èÆÀ¤Ç¤­¤ë¡£ -¤³¤Î 2¤Ä¤Î¥Õ¥¡¥¤¥ë¤Î¾ÜºÙ¤Ï +で現在使用中の擬似端末の数を取得できる。 +この 2つのファイルの詳細は .BR proc (5) -¤ò»²¾È¡£ -.SS "BSD µ¼»÷üËö" -BSD É÷¤Îµ¼»÷üËö¤Ï¤¢¤é¤«¤¸¤áºîÀ®¤µ¤ì¤¿¥Ú¥¢¤È¤·¤ÆÄ󶡤µ¤ì¤ë¡£¤½¤Î̾Á°¤Ï +を参照。 +.SS "BSD 擬似端末" +BSD 風の擬似端末はあらかじめ作成されたペアとして提供される。その名前は .I /dev/ptyXY -(¥Þ¥¹¥¿Â¦)¡¢ +(マスタ側)、 .I /dev/ttyXY -(¥¹¥ì¡¼¥Ö¦) ¤Ç¤¢¤ë¡£¤³¤³¤Ç¡¢ -X ¤Ï [p-za-e] ¤Î 16ʸ»ú¤Î¤¦¤Á¤Î°ìʸ»ú¡¢ -Y ¤Ï [0-9a-f] ¤Î 16ʸ»ú¤Î¤¦¤Á¤Î°ìʸ»ú¤Ç¤¢¤ë -(X, Y ¤Ë»È¤ï¤ì¤ëʸ»ú¤ÎÀµ³Î¤ÊÈÏ°Ï¤Ï UNIX ¤Î¼ÂÁõ¤Ë¤è¤ê°Û¤Ê¤ë)¡£ -Î㤨¤Ð¡¢ +(スレーブ側) である。ここで、 +X は [p-za-e] の 16文字のうちの一文字、 +Y は [0-9a-f] の 16文字のうちの一文字である +(X, Y に使われる文字の正確な範囲は UNIX の実装により異なる)。 +例えば、 .I /dev/ptyp1 -¤È +と .I /dev/ttyp1 -¤Ï BSD µ¼»÷üËö¥Ú¥¢¤ò¹½À®¤¹¤ë¡£ -¥×¥í¥»¥¹¤¬Ì¤»ÈÍѤε¼»÷üËö¥Ú¥¢¤ò¸«¤Ä¤±¤ë¤Ë¤Ï¡¢ -³Æµ¼»÷üËö¤Î¥Þ¥¹¥¿¤Î +は BSD 擬似端末ペアを構成する。 +プロセスが未使用の擬似端末ペアを見つけるには、 +各擬似端末のマスタの .BR open (2) -¤ò»î¤ß¡¢open ¤¬À®¸ù¤¹¤ë¤Þ¤Ç¤³¤ì¤ò·«¤êÊÖ¤¹¡£ -¥Þ¥¹¥¿¤ò open ¤¹¤ë¤È¡¢Âбþ¤¹¤ëµ¼»÷üËö¤Î¥¹¥ì¡¼¥Ö¤â open ¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë -(¥¹¥ì¡¼¥Ö¤Î̾Á°¤Ï¡¢¥Þ¥¹¥¿¤Î̾Á°¤Î "pty" ¤ò "tty" ¤ËÃÖ¤­´¹¤¨¤¿¤â¤Î¤Ç¤¢¤ë)¡£ -.SH ¥Õ¥¡¥¤¥ë +を試み、open が成功するまでこれを繰り返す。 +マスタを open すると、対応する擬似端末のスレーブも open できるようになる +(スレーブの名前は、マスタの名前の "pty" を "tty" に置き換えたものである)。 +.SH ファイル .I /dev/ptmx -(UNIX 98 ¥Þ¥¹¥¿¡¦¥¯¥í¡¼¥ó¡¦¥Ç¥Ð¥¤¥¹) +(UNIX 98 マスタ・クローン・デバイス) .br .I /dev/pts/* -(UNIX 98 ¥¹¥ì¡¼¥Ö¥Ç¥Ð¥¤¥¹) +(UNIX 98 スレーブデバイス) .br .I /dev/pty[p-za-e][0-9a-f] -(BSD ¥Þ¥¹¥¿¥Ç¥Ð¥¤¥¹) +(BSD マスタデバイス) .br .I /dev/tty[p-za-e][0-9a-f] -(BSD ¥¹¥ì¡¼¥Ö¥Ç¥Ð¥¤¥¹) -.SH Ãí°Õ -¥Ñ¥±¥Ã¥È¡¦¥â¡¼¥ÉÁàºî¤ÎÀ©¸æ¤ò¹Ô¤¦ +(BSD スレーブデバイス) +.SH 注意 +パケット・モード操作の制御を行う .B TIOCPKT .BR ioctl (2) -¤ÎÀâÌÀ¤Ï +の説明は .BR tty_ioctl (4) -¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡£ +に書かれている。 BSD .BR ioctl (2) -¤Î +の .BR TIOCSTOP , .BR TIOCSTART , .BR TIOCUCNTL , .B TIOCREMOTE -¤Ï¤³¤ì¤Þ¤Ç¤Î¤È¤³¤í Linux ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +はこれまでのところ Linux では実装されていない。 +.SH 関連項目 .BR select (2), .BR setsid (2), .BR forkpty (3), diff --git a/release/man7/raw.7 b/release/man7/raw.7 index 0d22930f..20714f23 100644 --- a/release/man7/raw.7 +++ b/release/man7/raw.7 @@ -11,287 +11,287 @@ .\" Translated 1999-12-06, NAKANO Takeo .\" Updated 2007-01-05, Akihiro MOTOKI , LDP v2.43 .\" -.\"WORD link level header(s) ¥ê¥ó¥¯¥ì¥Ù¥ë¥Ø¥Ã¥À -.\"WORD effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ ID -.\"WORD capability ¸¢¸Â -.\"WORD route (¥Ñ¥±¥Ã¥È¤Î) ·ÐÏ© +.\"WORD link level header(s) リンクレベルヘッダ +.\"WORD effective user ID 実効ユーザー ID +.\"WORD capability 権限 +.\"WORD route (パケットの) 経路 .\" .TH RAW 7 2008-11-20 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -raw, SOCK_RAW \- Linux ¤Î IPv4 raw ¥½¥±¥Ã¥È -.SH ½ñ¼° +.SH 名前 +raw, SOCK_RAW \- Linux の IPv4 raw ソケット +.SH 書式 .B #include .br .B #include .br .BI "raw_socket = socket(AF_INET, SOCK_RAW, int " protocol ); -.SH ÀâÌÀ -raw ¥½¥±¥Ã¥È¤ò»È¤¦¤È¡¢¿·¤·¤¤ IPv4 ¥×¥í¥È¥³¥ë¤ò¥æ¡¼¥¶¶õ´Ö¤Ç -¼ÂÁõ¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ raw ¥½¥±¥Ã¥È¤Ï¡¢¥ê¥ó¥¯¥ì¥Ù¥ë¥Ø¥Ã¥À¤ò -´Þ¤Þ¤Ê¤¤ raw ¥Ç¡¼¥¿¥°¥é¥à¤ÎÁ÷¼õ¿®¤¬¤Ç¤­¤ë¡£ +.SH 説明 +raw ソケットを使うと、新しい IPv4 プロトコルをユーザ空間で +実装できるようになる。 raw ソケットは、リンクレベルヘッダを +含まない raw データグラムの送受信ができる。 -IPv4 ¥ì¥¤¥ä¤Ï¡¢°·¤Ã¤Æ¤¤¤ë¥½¥±¥Ã¥È¤Ç +IPv4 レイヤは、扱っているソケットで .B IP_HDRINCL -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ -¥Ñ¥±¥Ã¥È¤òÁ÷¿®¤¹¤ë¤È¤­¤Ë IP ¥Ø¥Ã¥À¤òÀ¸À®¤¹¤ë¡£ +ソケットオプションが有効になっていなければ、 +パケットを送信するときに IP ヘッダを生成する。 .B IP_HDRINCL -¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¤­¤Ï¡¢¥Ñ¥±¥Ã¥È¤Ë¤Ï -IP ¥Ø¥Ã¥À¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¼õ¿®»þ¤Ë¤Ï¡¢ IP ¥Ø¥Ã¥À¤Ï¾ï¤Ë¥Ñ¥±¥Ã¥È¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ +オプションが有効になっているときは、パケットには +IP ヘッダが含まれていなければならない。 +受信時には、 IP ヘッダは常にパケットに含まれている。 -¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤«¡¢ +実効ユーザー ID が 0 のプロセスか、 .B CAP_NET_RAW -¸¢¸Â¤ò»ý¤Ä¥×¥í¥»¥¹¤À¤±¤¬ raw ¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +権限を持つプロセスだけが raw ソケットをオープンすることができる。 -¤³¤Î raw ¥½¥±¥Ã¥È¤Ë»ØÄꤵ¤ì¤¿ +この raw ソケットに指定された .I protocol -ÈÖ¹æ¤Ë¥Þ¥Ã¥Á¤¹¤ëÁ´¤Æ¤Î¥Ñ¥±¥Ã¥È¤È¥¨¥é¡¼¤È¤¬¡¢¤³¤Î¥½¥±¥Ã¥È¤ËÅϤµ¤ì¤ë¡£ -µö²Ä¤µ¤ì¤Æ¤¤¤ë¥×¥í¥È¥³¥ë¤Î¥ê¥¹¥È¤Ï RFC\ 1700 ¤Î³ä¤êÅö¤ÆÈÖ¹æ¤È +番号にマッチする全てのパケットとエラーとが、このソケットに渡される。 +許可されているプロトコルのリストは RFC\ 1700 の割り当て番号と .BR getprotobyname (3) -¤ò¸«¤è¡£ +を見よ。 .B IPPROTO_RAW -¤Î¥×¥í¥È¥³¥ë¤Ï°ÅÌۤΤ¦¤Á¤Ë +のプロトコルは暗黙のうちに .B IP_HDRINCL -¤òÍ­¸ú¤Ë¤¹¤ë¤Î¤Ç¡¢ -ÅϤµ¤ì¤¿¥Ø¥Ã¥À¤Ç»ØÄꤵ¤ì¤¿¡¢¤¢¤é¤æ¤ë IP ¥×¥í¥È¥³¥ë¤òÁ÷¿®¤Ç¤­¤ë¡£ +を有効にするので、 +渡されたヘッダで指定された、あらゆる IP プロトコルを送信できる。 .B IPPROTO_RAW -·Ðͳ¤Ç¤Î¤¢¤é¤æ¤ë IP ¥×¥í¥È¥³¥ë¤Î¼õ¿®¤Ï¡¢ -raw ¥½¥±¥Ã¥È¤òÍѤ¤¤Æ¤Ï¹Ô¤¨¤Ê¤¤¡£ +経由でのあらゆる IP プロトコルの受信は、 +raw ソケットを用いては行えない。 .TS tab(:) allbox; c s l l. -IP ¥Ø¥Ã¥À¥Õ¥£¡¼¥ë¥É¡£ \fBIP_HDRINCL\fP ¤Ë¤è¤Ã¤ÆÁ÷¿®»þ¤ËÊѹ¹¤µ¤ì¤ë¡£ -IP ¥Á¥§¥Ã¥¯¥µ¥à:¾ï¤ËÊѹ¹¤µ¤ì¤ë¡£ -¥½¡¼¥¹¥¢¥É¥ì¥¹:¸µ¤ÎÃͤ¬ 0 ¤Î»þ¤ËÊѹ¹¤µ¤ì¤ë¡£ -¥Ñ¥±¥Ã¥È ID:¸µ¤ÎÃͤ¬ 0 ¤Î»þ¤ËÊѹ¹¤µ¤ì¤ë¡£ -Á´ÂΤÎŤµ:¾ï¤ËËä¤á¤é¤ì¤ë¡£ +IP ヘッダフィールド。 \fBIP_HDRINCL\fP によって送信時に変更される。 +IP チェックサム:常に変更される。 +ソースアドレス:元の値が 0 の時に変更される。 +パケット ID:元の値が 0 の時に変更される。 +全体の長さ:常に埋められる。 .TE .sp .PP -.\"NAKANO Aloways filled in. ¤È¤Ï? +.\"NAKANO Aloways filled in. とは? .B IP_HERINCL -¤¬»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢ IP ¥Ø¥Ã¥À¤Ë -0 ¤Ç¤Ê¤¤Á÷¿®À襢¥É¥ì¥¹¤¬µ­Æþ¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ï¡¢ -¤½¤ÎÁ÷¿®À襢¥É¥ì¥¹¤¬¥Ñ¥±¥Ã¥È¤Î·ÐÏ©¤ò·è¤á¤ë¤Î¤ËÍѤ¤¤é¤ì¤ë¡£ +が指定されていて、 IP ヘッダに +0 でない送信先アドレスが記入されていた場合は、 +その送信先アドレスがパケットの経路を決めるのに用いられる。 .B MSG_DONTROUTE -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë»þ¤Ë¤Ï¡¢ -Á÷¿®À襢¥É¥ì¥¹¤Ï¥í¡¼¥«¥ë¤Ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»²¾È¤¹¤ë¤â¤Î¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤µ¤â¤Ê¤¤¤È¡¢¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤Î»²¾È¤Ï¤¤¤º¤ì¤Ë¤»¤è¹Ô¤ï¤ì¤ë¤¬¡¢ -¥²¡¼¥È¥¦¥§¥¤¤¬É¬ÍפʷÐÏ©¤Ï̵»ë¤µ¤ì¤ë¡£ -.\"NAKANO ¥í¡¼¥«¥ë¤Ê¥Í¥Ã¥È¤Ê¤Î¤«¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ê¤Î¤«¡© +が指定されている時には、 +送信先アドレスはローカルなインターフェースを参照するものでなければならない。 +さもないと、ルーティングテーブルの参照はいずれにせよ行われるが、 +ゲートウェイが必要な経路は無視される。 +.\"NAKANO ローカルなネットなのかインターフェースなのか? .B IP_HDRINCL -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ -raw ¥½¥±¥Ã¥È¤Î IP ¥Ø¥Ã¥À¥ª¥×¥·¥ç¥ó¤ò +がセットされていなければ、 +raw ソケットの IP ヘッダオプションを .BR setsockopt (2) -¤òÍѤ¤¤ÆÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¾ÜºÙ¤Ê¾ðÊó¤Ï +を用いて設定することができる。詳細な情報は .BR ip (7) -¤ò¸«¤è¡£ +を見よ。 -Linux 2.2 ¤Ç¤Ï¡¢ IP ¥Ø¥Ã¥À¤ÎÁ´¤Æ¤Î¥Õ¥£¡¼¥ë¥É¤È¥ª¥×¥·¥ç¥ó¤È¤ò -IP ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤ÆÀßÄê¤Ç¤­¤ë¡£¤·¤¿¤¬¤Ã¤Æ -raw ¥½¥±¥Ã¥È¤¬É¬Íפˤʤë¤Î¤Ï¡¢¿·¤·¤¤¥×¥í¥È¥³¥ë¤òÀ߷פ¹¤ë¾ì¹ç¤«¡¢ -¥æ¡¼¥¶¡¼¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»ý¤¿¤Ê¤¤¥×¥í¥È¥³¥ë (ICMP ¤Ê¤É) ¤ò°·¤¦¾ì¹ç¤Ë -¸Â¤é¤ì¤ë¡£ +Linux 2.2 では、 IP ヘッダの全てのフィールドとオプションとを +IP ソケットオプションによって設定できる。したがって +raw ソケットが必要になるのは、新しいプロトコルを設計する場合か、 +ユーザーインターフェースを持たないプロトコル (ICMP など) を扱う場合に +限られる。 -¥Ñ¥±¥Ã¥È¤Ï¡¢¼õ¿®¤µ¤ì¤ë¤È¤Þ¤º¥×¥í¥È¥³¥ë¤Ë¥Ð¥¤¥ó¥É¤·¤Æ¤¤¤ë -raw ¥½¥±¥Ã¥È¤ËÅϤµ¤ì¡¢ -¤½¤Î¸å¤Ç¾¤Î¥×¥í¥È¥³¥ë¥Ï¥ó¥É¥é (¥«¡¼¥Í¥ë¤Î¥×¥í¥È¥³¥ë¥â¥¸¥å¡¼¥ë¤Ê¤É) -¤ËÅϤµ¤ì¤ë¡£ -.SS ¥¢¥É¥ì¥¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È -raw ¥½¥±¥Ã¥È¤Ïɸ½à¤Î +パケットは、受信されるとまずプロトコルにバインドしている +raw ソケットに渡され、 +その後で他のプロトコルハンドラ (カーネルのプロトコルモジュールなど) +に渡される。 +.SS アドレスのフォーマット +raw ソケットは標準の .I sockaddr_in -¥¢¥É¥ì¥¹¹½Â¤ÂΤòÍѤ¤¤ë¡£ÄêµÁ¤Ï +アドレス構造体を用いる。定義は .BR ip (7) -¤Ç¤Ê¤µ¤ì¤Æ¤¤¤ë¡£ +でなされている。 .I sin_port -¥Õ¥£¡¼¥ë¥É¤ò IP ¥×¥í¥È¥³¥ëÈÖ¹æ¤Î»ØÄê¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¤¬¡¢ -Linux 2.2 ¤Ç¤Ï¤³¤ì¤ÏÁ÷¿®»þ¤Ë¤Ï̵»ë¤µ¤ì¡¢¾ï¤Ë 0 ¤Ë¤µ¤ì¤ë -(¥Ð¥° ¤Î¹à¤ò»²¾È)¡£ -¼õ¿®¥Ñ¥±¥Ã¥È¤ËÂФ·¤Æ¤Ï¡¢ +フィールドを IP プロトコル番号の指定に用いることができるが、 +Linux 2.2 ではこれは送信時には無視され、常に 0 にされる +(バグ の項を参照)。 +受信パケットに対しては、 .I sin_port -¤Ï¤½¤Î¥Ñ¥±¥Ã¥È¤Î¥×¥í¥È¥³¥ë¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ -ÍѤ¤¤ë¤³¤È¤Î¤Ç¤­¤ë IP ¥×¥í¥È¥³¥ë¤Ï¡¢¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +はそのパケットのプロトコルにセットされる。 +用いることのできる IP プロトコルは、インクルードファイル .I -¤ò¸«¤è¡£ -.SS ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó -raw ¥½¥±¥Ã¥È¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ +を見よ。 +.SS ソケットオプション +raw ソケットのオプションは、 .B IPPROTO_RAW -.\" ¤â¤·¤¯¤Ï Linux ¤Ç¤Ï .I SOL_RAW -¥Õ¥¡¥ß¥ê¡¼¥Õ¥é¥°¤òÍ¿¤¨¤Æ +.\" もしくは Linux では .I SOL_RAW +ファミリーフラグを与えて .BR setsockopt (2) -¤ò¸Æ¤Ù¤ÐÀßÄê¤Ç¤­¡¢ +を呼べば設定でき、 .BR getsockopt (2) -¤ò¸Æ¤Ù¤Ð¼èÆÀ¤Ç¤­¤ë¡£ +を呼べば取得できる。 .TP .B ICMP_FILTER .B IPPROTO_ICMP -¥×¥í¥È¥³¥ë¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¤¿ raw ¥½¥±¥Ã¥È¤Î¤¿¤á¤ÎÆüì¤Ê¥Õ¥£¥ë¥¿¤òÍ­¸ú¤Ë¤¹¤ë¡£ -¤³¤ÎÃÍ¤Ï ICMP ¥á¥Ã¥»¡¼¥¸¤Î¥¿¥¤¥×¤½¤ì¤¾¤ì¤ËÂФ·¤Æ¡¢¤É¤ì¤ò¥Õ¥£¥ë¥¿¡¼¥¢¥¦¥È -¤¹¤ë¤«¤òɽ¤·¤¿¥Ó¥Ã¥È¥»¥Ã¥È¤Ç¤¢¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï -ICMP ¥á¥Ã¥»¡¼¥¸¤ÏÁ´¤¯¥Õ¥£¥ë¥¿¡¼¤·¤Ê¤¤¡£ +プロトコルにバインドされた raw ソケットのための特殊なフィルタを有効にする。 +この値は ICMP メッセージのタイプそれぞれに対して、どれをフィルターアウト +するかを表したビットセットである。デフォルトでは +ICMP メッセージは全くフィルターしない。 .PP -¤µ¤é¤Ë¡¢¥Ç¡¼¥¿¥°¥é¥à¥½¥±¥Ã¥È¤Ë»È¤¨¤ëÁ´¤Æ¤Î +さらに、データグラムソケットに使える全ての .BR ip (7) .B SOL_IP -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -.SS ¥¨¥é¡¼½èÍý -¥Í¥Ã¥È¥ï¡¼¥¯¤ÇÀ¸¤¸¤¿¥¨¥é¡¼¤¬¥æ¡¼¥¶¤ËÅϤµ¤ì¤ë¤Î¤Ï¡¢ -¥½¥±¥Ã¥È¤¬ÀܳºÑ¤ß¤Î¾ì¹ç¤« +ソケットオプションがサポートされている。 +.SS エラー処理 +ネットワークで生じたエラーがユーザに渡されるのは、 +ソケットが接続済みの場合か .B IP_RECVERR -¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¸Â¤é¤ì¤ë¡£ -ÀܳºÑ¤ß¤Î¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤Ï¡¢ +フラグが有効になっている場合に限られる。 +接続済みのソケットに対しては、 .B EMSGSIZE -¤ª¤è¤Ó +および .B EPROTO -¤À¤±¤¬ÅϤµ¤ì¤ë (¸ß´¹À­¤Î¤¿¤á)¡£ +だけが渡される (互換性のため)。 .B IP_RECVERR -¤òÀßÄꤹ¤ë¤È¡¢Á´¤Æ¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¨¥é¡¼¤¬¥¨¥é¡¼¥­¥å¡¼¤ËÊݸ¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ +を設定すると、全てのネットワークエラーがエラーキューに保存される。 +.SH エラー .TP .B EACCES -¥æ¡¼¥¶¡¼¤¬ broadcast ¥Õ¥é¥°¤òÀßÄꤷ¤Æ¤¤¤Ê¤¤¥½¥±¥Ã¥È¤òÍѤ¤¤Æ -¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤ËÁ÷¿®¤ò¹Ô¤ª¤¦¤È¤·¤¿¡£ +ユーザーが broadcast フラグを設定していないソケットを用いて +ブロードキャストアドレスに送信を行おうとした。 .TP .B EFAULT -ÉÔÀµ¤Ê¥á¥â¥ê¥¢¥É¥ì¥¹¤¬Í¿¤¨¤é¤ì¤¿¡£ +不正なメモリアドレスが与えられた。 .TP .B EINVAL -°ú¿ô¤¬Àµ¤·¤¯¤Ê¤¤¡£ +引数が正しくない。 .TP .B EMSGSIZE -¥Ñ¥±¥Ã¥È¤¬Â礭¤¹¤®¤ë¡£ Path MTU Discoverry ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë +パケットが大きすぎる。 Path MTU Discoverry が有効になっている .RB ( IP_MTU_DISCOVER -¥½¥±¥Ã¥È¥Õ¥é¥°) ¤«¡¢¥Ñ¥±¥Ã¥È¤Î¥µ¥¤¥º¤¬ IPv4 ¤Çµö¤µ¤ì¤Æ¤¤¤ë -¥Ñ¥±¥Ã¥È¥µ¥¤¥º¤ÎºÇÂçÃÍ 64KB ¤ò±Û¤¨¤Æ¤¤¤ë¡£ +ソケットフラグ) か、パケットのサイズが IPv4 で許されている +パケットサイズの最大値 64KB を越えている。 .TP .B EOPNOTSUPP -¥½¥±¥Ã¥È¸Æ¤Ó½Ð¤·¤ËÉÔÀµ¤Ê¥Õ¥é¥° +ソケット呼び出しに不正なフラグ .RB ( MSG_OOB -¤Ê¤É) ¤¬ÅϤµ¤ì¤¿¡£ +など) が渡された。 .TP .B EPERM -¥æ¡¼¥¶¡¼¤Ï raw ¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤¹¤ë¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ -¼Â¹Ô¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤«¡¢ +ユーザーは raw ソケットをオープンする権限を持っていない。 +実行ユーザー ID が 0 のプロセスか、 .B CAP_NET_RAW -°À­¤ò»ý¤Ä¥×¥í¥»¥¹¤À¤±¤¬¤³¤ì¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +属性を持つプロセスだけがこれを行うことができる。 .TP .B EPROTO -¥Ñ¥é¥á¡¼¥¿¤ÎÌäÂê¤òÊó¹ð¤¹¤ë ICMP ¥¨¥é¡¼¤ò¼õ¤±¼è¤Ã¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +パラメータの問題を報告する ICMP エラーを受け取った。 +.SH バージョン .B IP_RECVERR -¤È +と .B ICMP_FILTER -¤Ï Linux 2.2 ¤ÇÅо줷¤¿¡£¤³¤ì¤é¤Ï Linux ¤Ç¤Î³ÈÄ¥¤Ç¤¢¤ê¡¢ -°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤ÏÍѤ¤¤ë¤Ù¤­¤Ç¤Ê¤¤¡£ +は Linux 2.2 で登場した。これらは Linux での拡張であり、 +移植性の必要なプログラムでは用いるべきでない。 -Linux 2.0 ¤Ç¤Ï +Linux 2.0 では .B SO_BSDCOMPAT -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢ -BSD ¤Î raw ¥½¥±¥Ã¥È¤Ë¤¢¤ë¥Ð¥°¤Ë¸ß´¹À­¤ò¼è¤ë¤³¤È¤¬¤Ç¤­¤¿ \(em -Linux 2.2 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¤â¤Ï¤ä¸úÎϤò»ý¤¿¤Ê¤¤¡£ -.SH Ãí°Õ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢raw ¥½¥±¥Ã¥È¤Ï Path MTU Discovery ¤ò¹Ô¤¦¡£ -¤Ä¤Þ¤ê¡¢¥«¡¼¥Í¥ë¤ÏÆÃÄê¤Î°¸Àè IP ¥¢¥É¥ì¥¹¤Î MTU (Maximum Transmission Unit; -ºÇÂçžÁ÷ñ°Ì) ¤òµ­Ï¿¤·¡¢raw ¥Ñ¥±¥Ã¥È¤Î½ñ¤­¹þ¤ß¤¬ MTU ¤òĶ¤¨¤¿¾ì¹ç +ソケットオプションをセットすると、 +BSD の raw ソケットにあるバグに互換性を取ることができた \(em +Linux 2.2 以降では、このオプションはもはや効力を持たない。 +.SH 注意 +デフォルトでは、raw ソケットは Path MTU Discovery を行う。 +つまり、カーネルは特定の宛先 IP アドレスの MTU (Maximum Transmission Unit; +最大転送単位) を記録し、raw パケットの書き込みが MTU を超えた場合 .B EMSGSIZE -¤òÊÖ¤¹¡£ +を返す。 .B EMSGSIZE -¤òÊÖ¤µ¤ì¤¿¾ì¹ç¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¥Ñ¥±¥Ã¥È¥µ¥¤¥º¤ò¾®¤µ¤¯¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó +を返された場合、アプリケーションはパケットサイズを小さくすべきである。 +ソケットオプション .B IP_MTU_DISCOVER -¤Þ¤¿¤Ï +または .I /proc/sys/net/ipv4/ip_no_pmtu_disc -¥Õ¥¡¥¤¥ë¤ò»È¤Ã¤Æ Path MTU Discovery ¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤â¤Ç¤­¤ë -(¾ÜºÙ¤Ï +ファイルを使って Path MTU Discovery を無効にすることもできる +(詳細は .BR ip (7) -¤ò»²¾È)¡£ -Path MTU Discovery ¤ò̵¸ú¤Ë¤·¤¿¾ì¹ç¤Ï¡¢¥Ñ¥±¥Ã¥È¥µ¥¤¥º¤¬ -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î MTU ¤è¤ê¤âÂ礭¤¤¤È raw ¥½¥±¥Ã¥È¤Ï¤½¤Î¥Ñ¥±¥Ã¥È¤ò -¥Õ¥é¥°¥á¥ó¥È²½¤·¤ÆÁ÷½Ð¤¹¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢À­Ç½¤È¿®ÍêÀ­¤ÎÍýͳ¤«¤é Path MTU Discovery ¤ò -̵¸ú¤Ë¤¹¤ë¤Î¤Ï¿ä¾©¤Ç¤­¤Ê¤¤¡£ +を参照)。 +Path MTU Discovery を無効にした場合は、パケットサイズが +インタフェースの MTU よりも大きいと raw ソケットはそのパケットを +フラグメント化して送出する。 +しかしながら、性能と信頼性の理由から Path MTU Discovery を +無効にするのは推奨できない。 .BR bind (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÍѤ¤¤ë¤È¡¢ -raw ¥½¥±¥Ã¥È¤ò -ÆÃÄê¤Î¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤Ë¥Ð¥¤¥ó¥É¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î¥Ð¥¤¥ó¥É¤¬¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢»ØÄꤷ¤¿ IP ¥×¥í¥È¥³¥ë¤Î -¤¹¤Ù¤Æ¤Î¥Ñ¥±¥Ã¥È¤¬¼õ¿®¤µ¤ì¤ë¡£ -¤µ¤é¤Ë¡¢ +システムコールを用いると、 +raw ソケットを +特定のローカルアドレスにバインドさせることができる。 +このバインドがされていない場合は、指定した IP プロトコルの +すべてのパケットが受信される。 +さらに、 .B SO_BINDTODEVICE -¤òÍѤ¤¤ì¤Ð raw ¥½¥±¥Ã¥È¤òÆÃÄê¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¤Ë -¥Ð¥¤¥ó¥É¤µ¤»¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +を用いれば raw ソケットを特定のネットワークデバイスに +バインドさせることもできる。 .BR socket (7) -¤ò¸«¤è¡£ +を見よ。 .B IPPROTO_RAW -¥½¥±¥Ã¥È¤ÏÁ÷¿®ÀìÍѤǤ¢¤ë¡£¤â¤·¤É¤¦¤·¤Æ¤â¤¹¤Ù¤Æ¤Î IP ¥Ñ¥±¥Ã¥È¤ò -¼õ¿®¤·¤¿¤¤¾ì¹ç¤Ï¡¢ +ソケットは送信専用である。もしどうしてもすべての IP パケットを +受信したい場合は、 .BR packet (7) -¥½¥±¥Ã¥È¤ò +ソケットを .B ETH_P_IP -¥×¥í¥È¥³¥ë¤ÇÍѤ¤¤ë¤³¤È¡£ -packet ¥½¥±¥Ã¥È¤Ï raw ¥½¥±¥Ã¥È¤Î¤è¤¦¤Ë -IP ¥Õ¥é¥°¥á¥ó¥È¤òºÆ¹½À®¤·¤Ê¤¤¤³¤È¤ËÃí°Õ¡£ +プロトコルで用いること。 +packet ソケットは raw ソケットのように +IP フラグメントを再構成しないことに注意。 -datagram ¥½¥±¥Ã¥È¤ËÂФ¹¤ë¤¹¤Ù¤Æ¤Î ICMP ¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤·¤¿¤¤¾ì¹ç¤Ï¡¢ -ÆÃÄê¤Î¥½¥±¥Ã¥È¤ËÂФ·¤Æ +datagram ソケットに対するすべての ICMP パケットを受信したい場合は、 +特定のソケットに対して .B IP_RECVERR -¤òÍѤ¤¤ë¤Û¤¦¤¬Îɤ¤¾ì¹ç¤¬Â¿¤¤¡£ +を用いるほうが良い場合が多い。 .BR ip (7) -¤ò¸«¤è¡£ +を見よ。 -raw ¥½¥±¥Ã¥È¤Ï¡¢ Linux ¤Î¤¹¤Ù¤Æ¤Î IP ¥×¥í¥È¥³¥ë¤ò¼õ¿®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -ICMP ¤ä TCP ¤Î¤è¤¦¤Ë¡¢¥«¡¼¥Í¥ëÆâÉô¤Ë¥×¥í¥È¥³¥ë¥â¥¸¥å¡¼¥ë¤ò»ý¤Ä¤è¤¦¤Ê -¤â¤Î¤â²Äǽ¤Ç¤¢¤ë¡£¤³¤Î¾ì¹ç¤Ë¤Ï¡¢¥Ñ¥±¥Ã¥È¤Ï¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¤È -raw ¥½¥±¥Ã¥È¤ÎξÊý¤ËÅϤµ¤ì¤ë (raw ¥½¥±¥Ã¥È¤¬Ê£¿ô¤¢¤ì¤Ð¤½¤ì¤¾¤ì¤ËÅϤµ¤ì¤ë)¡£ -°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Îµ¡Ç½¤Ë°Í¸¤¹¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¾¤Î¿¤¯¤Î BSD ¤Ë¤ª¤±¤ë¥½¥±¥Ã¥È¤Î¼ÂÁõ¤Ç¤Ï¤³¤ÎÅÀ¤Ë¤ª¤¤¤ÆÀ©¸Â¤¬¤¢¤ë¡£ +raw ソケットは、 Linux のすべての IP プロトコルを受信することができる。 +ICMP や TCP のように、カーネル内部にプロトコルモジュールを持つような +ものも可能である。この場合には、パケットはカーネルモジュールと +raw ソケットの両方に渡される (raw ソケットが複数あればそれぞれに渡される)。 +移植性の必要なプログラムではこの機能に依存するべきではない。 +他の多くの BSD におけるソケットの実装ではこの点において制限がある。 -Linux ¤Ï¥æ¡¼¥¶¡¼¤«¤éÅϤµ¤ì¤¿¥Ø¥Ã¥À¤ò·è¤·¤ÆÊѹ¹¤·¤Ê¤¤ (¤¿¤À¤· +Linux はユーザーから渡されたヘッダを決して変更しない (ただし .B IP_HDRINCL -¤ÎÀâÌÀ¤Ë¤¢¤ë¤è¤¦¤Ë¡¢ 0 ¤ò¤¤¤¯¤Ä¤«Ëä¤á¤ë¾ì¹ç¤ò½ü¤¯)¡£ -¤³¤ì¤Ï¾¤Î¿¤¯¤Î raw ¥½¥±¥Ã¥È¤Î¼ÂÁõ¤Ç¤Ï°Û¤Ê¤ë¡£ +の説明にあるように、 0 をいくつか埋める場合を除く)。 +これは他の多くの raw ソケットの実装では異なる。 -°ìÈÌ¤Ë raw ¥½¥±¥Ã¥È¤Ï°Ü¿¢À­¤¬¤Ê¤¤¤³¤È¤¬Â¿¤¤¤Î¤Ç¡¢ -°Ü¿¢À­¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç¤ÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +一般に raw ソケットは移植性がないことが多いので、 +移植性が必要なプログラムでは避けるべきである。 -raw ¥½¥±¥Ã¥È¤Ø¤ÎÁ÷¿®¤Ç¤Ï¡¢ IP ¥×¥í¥È¥³¥ë¤ò +raw ソケットへの送信では、 IP プロトコルを .I sin_port -¤«¤é¼èÆÀ¤Ç¤­¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤Îµ¡Ç½¤Ï Linux 2.2 ¤Ç¤Ï»È¤¨¤Ê¤¯¤Ê¤Ã¤¿¡£ +から取得できなければならない。この機能は Linux 2.2 では使えなくなった。 .B IP_HDRINCL -¤òÍѤ¤¤ì¤ÐƱÍͤΤ³¤È¤¬¼Â¸½¤Ç¤­¤ë¡£ -.SH ¥Ð¥° -Æ©²á¥×¥í¥¯¥· (transparent proxy) ³ÈÄ¥¤Ë¤Ä¤¤¤Æ¤Ïµ­½Ò¤·¤Æ¤¤¤Ê¤¤¡£ +を用いれば同様のことが実現できる。 +.SH バグ +透過プロクシ (transparent proxy) 拡張については記述していない。 .B IP_HDRINCL -¥ª¥×¥·¥ç¥ó¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¥Ç¡¼¥¿¥°¥é¥à¤Ï¥Õ¥é¥°¥á¥ó¥È²½¤µ¤ì¤º¡¢ -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î MTU ¤ÎÂ礭¤µ¤ËÀ©¸Â¤µ¤ì¤ë¡£ +オプションがセットされているとデータグラムはフラグメント化されず、 +インターフェースの MTU の大きさに制限される。 -Á÷¿®ÍѤΠIP ¥×¥í¥È¥³¥ë¤ÎÀßÄê¤ò +送信用の IP プロトコルの設定を .I sin_port -¤Ë¤·¤Æ¤ª¤¯µ¡Ç½¤Ï Linux 2.2 ¤«¤é»È¤¨¤Ê¤¯¤Ê¤Ã¤¿¡£ -¥½¥±¥Ã¥È¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¤Æ¤¤¤ë¥×¥í¥È¥³¥ë¤«¡¢ºÇ½é¤Î +にしておく機能は Linux 2.2 から使えなくなった。 +ソケットにバインドされているプロトコルか、最初の .BR socket (2) -¥³¡¼¥ë¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿¥×¥í¥È¥³¥ë¤¬¾ï¤ËÍѤ¤¤é¤ì¤ë¡£ -.\" .SH Ãø¼Ô -.\" ¤³¤Î man ¥Ú¡¼¥¸¤Ï Andi Kleen ¤¬½ñ¤¤¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +コールによって指定されたプロトコルが常に用いられる。 +.\" .SH 著者 +.\" この man ページは Andi Kleen が書いた。 +.SH 関連項目 .BR recvmsg (2), .BR sendmsg (2), .BR capabilities (7), .BR ip (7), .BR socket (7) -¥Ñ¥¹ MTU ȯ¸«¤Ë´Ø¤¹¤ë¾ðÊó¤Ï +パス MTU 発見に関する情報は .B RFC\ 1191 -¤Ë¤¢¤ë +にある -IP ¥×¥í¥È¥³¥ë¤Ë´Ø¤·¤Æ¤Ï +IP プロトコルに関しては .B RFC\ 791 -¤È¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë +とインクルードファイル .I -¤ò»²¾È¡£ +を参照。 diff --git a/release/man7/regex.7 b/release/man7/regex.7 index b4f36484..b86a6e01 100644 --- a/release/man7/regex.7 +++ b/release/man7/regex.7 @@ -36,148 +36,148 @@ .\" Japanese Version Copyright (c) 1998 NAKANO Takeo all rights reserved. .\" Translated Wed 8 Jul 1998 by NAKANO Takeo .\" -.\"WORD: regular expression Àµµ¬É½¸½ -.\"WORD: modern RE ¿·¤·¤¤Àµµ¬É½¸½ -.\"WORD: obsolete RE ¸Å¤¤Àµµ¬É½¸½ -.\"WORD: basic RE ´ðËÜÀµµ¬É½¸½ -.\"WORD: extended RE ³ÈÄ¥Àµµ¬É½¸½ -.\"WORD: branch »Þ -.\"WORD: piece ʸÀá -.\"WORD: atom ¥¢¥È¥à -.\"WORD: bound ·«¤êÊÖ¤·»ØÄê -.\"WORD: bracket expression ¥Ö¥é¥±¥Ã¥Èɽ¸½ -.\"WORD: digit ¿ô»ú -.\"WORD: collating sequence ¾È¹ç½ç½ø -.\"WORD: collating element ¾È¹ç½ç½ø¤ÎÍ×ÁÇ -.\"WORD: character class ʸ»ú¥¯¥é¥¹ -.\"WORD: equivalent class Åù²Á¥¯¥é¥¹ -.\"WORD: substring Éôʬʸ»úÎó -.\"WORD: subexpression ÉôʬÀµµ¬É½¸½ +.\"WORD: regular expression 正規表現 +.\"WORD: modern RE 新しい正規表現 +.\"WORD: obsolete RE 古い正規表現 +.\"WORD: basic RE 基本正規表現 +.\"WORD: extended RE 拡張正規表現 +.\"WORD: branch 枝 +.\"WORD: piece 文節 +.\"WORD: atom アトム +.\"WORD: bound 繰り返し指定 +.\"WORD: bracket expression ブラケット表現 +.\"WORD: digit 数字 +.\"WORD: collating sequence 照合順序 +.\"WORD: collating element 照合順序の要素 +.\"WORD: character class 文字クラス +.\"WORD: equivalent class 等価クラス +.\"WORD: substring 部分文字列 +.\"WORD: subexpression 部分正規表現 .\" .TH REGEX 7 2009-01-12 "" "Linux Programmer's Manual" -.SH ̾Á° -regex \- POSIX.2 Àµµ¬É½¸½ -.SH ÀâÌÀ -Àµµ¬É½¸½ (Regular expression: RE) ¤Ï POSIX.2 ¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ -Æó¤Ä¤Î·Á¼°¤¬¤¢¤ë¡£¿·¤·¤¤Àµµ¬É½¸½ (modern RE) ¤È¸Å¤¤Àµµ¬É½¸½ (obsolete RE) -¤Ç¤¢¤ë¡£¿·¤·¤¤Àµµ¬É½¸½¤Ï¤À¤¤¤¿¤¤ +.SH 名前 +regex \- POSIX.2 正規表現 +.SH 説明 +正規表現 (Regular expression: RE) は POSIX.2 で定義されており、 +二つの形式がある。新しい正規表現 (modern RE) と古い正規表現 (obsolete RE) +である。新しい正規表現はだいたい .I egrep -¤Î¤â¤Î¤ÈƱ¤¸¤Ç¡¢ POSIX.2 ¤Ç¤Ï¡Ö³ÈÄ¥¡×Àµµ¬É½¸½ ("extended" RE) -¤È¸Æ¤Ð¤ì¤Æ¤¤¤ë¡£¸Å¤¤Àµµ¬É½¸½¤Ï¤À¤¤¤¿¤¤ +のものと同じで、 POSIX.2 では「拡張」正規表現 ("extended" RE) +と呼ばれている。古い正規表現はだいたい .BR ed (1) -¤Î¤â¤Î¤ÈƱ¤¸¤Ç¡¢ POSIX.2 ¤Ç¤Ï¡Ö´ðËÜ¡×Àµµ¬É½¸½ ("basic" RE) ¤Ç¤¢¤ë¡£ -¸Å¤¤Àµµ¬É½¸½¤Ï¡¢¸Å¤¤¥×¥í¥°¥é¥à¤È¤Î¸ß´¹À­¤òÊݤĤ¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤ì¤Ë¤Ä¤¤¤Æ¤ÏºÇ¸å¤ËµÄÏÀ¤¹¤ë¡£ -POSIX.2 ¤Ç¤Ï¡¢Àµµ¬É½¸½¤Îʸˡ¤äµ­¹æ¤Î°ìÉô¤¬¡¢Ì¤ÄêµÁ¤Î¤Þ¤Þ»Ä¤µ¤ì¤Æ¤¤¤ë¡£ -"\*(dg" ¤Ï¡¢¤³¤Î¤è¤¦¤Ê°ÕÌ£¤Ç¡¢Â¾¤Î POSIX.2 ¤Î¼ÂÁõ¤È -´°Á´¤Ë¤Ï¸ß´¹¤Ç¤Ê¤¤¤«¤âÃΤì¤Ê¤¤Éôʬ¤Ç¤¢¤ë¡£ +のものと同じで、 POSIX.2 では「基本」正規表現 ("basic" RE) である。 +古い正規表現は、古いプログラムとの互換性を保つためのものである。 +これについては最後に議論する。 +POSIX.2 では、正規表現の文法や記号の一部が、未定義のまま残されている。 +"\*(dg" は、このような意味で、他の POSIX.2 の実装と +完全には互換でないかも知れない部分である。 .PP -(¿·¤·¤¤) Àµµ¬É½¸½¤Ï°ì¤Ä°Ê¾å\*(dg ¤Î¶õÇò¤Ç¤Ê¤¤ \fI»Þ (branch)\fP ¤«¤é¤Ê¤ë¡£ -»Þ¤É¤¦¤·¤Ï \(aq|\(aq ¤Ç¶èÀÚ¤é¤ì¤ë¡£Àµµ¬É½¸½¤Ï¡¢ -»Þ¤Î¤É¤ì¤«¤Ë¥Þ¥Ã¥Á (match) ¤·¤¿¤â¤Î¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ +(新しい) 正規表現は一つ以上\*(dg の空白でない \fI枝 (branch)\fP からなる。 +枝どうしは \(aq|\(aq で区切られる。正規表現は、 +枝のどれかにマッチ (match) したものにマッチする。 .PP -»Þ¤Ï°ì¤Ä°Ê¾å¤ÎʸÀá (piece) ¤¬·ë¹ç¤µ¤ì¤¿¤â¤Î¤Ç¤¢¤ë¡£ -»Þ¤ÏÂè°ì¤ÎʸÀ᤬¥Þ¥Ã¥Á¤·¡¢ -³¤¤¤ÆÂèÆó¤ÎʸÀ᤬¥Þ¥Ã¥Á¤·¡¢... ¤·¤¿¤â¤Î¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ +枝は一つ以上の文節 (piece) が結合されたものである。 +枝は第一の文節がマッチし、 +続いて第二の文節がマッチし、... したものにマッチする。 .PP -ʸÀá¤Ï\fI¥¢¥È¥à (atom)\fR ¤«¤é¤Ê¤ë¡£¤¿¤À¤·¥¢¥È¥à¤Î¸å¤Ë¤Ï°ì¤Ä\*(dg ¤Î \(aq*\(aq, -\(aq+\(aq, \(aq?\(aq ¤¢¤ë¤¤¤Ï \fI·«¤êÊÖ¤·»ØÄê (bound)\fR ¤¬Â³¤¯¤³¤È¤â¤¢¤ë¡£ -\(aq*\(aq ¤¬¸åÃÖ¤µ¤ì¤¿¥¢¥È¥à¤Ï¡¢¥Þ¥Ã¥Á¤·¤¿¥¢¥È¥à¤Î 0 ¸Ä°Ê¾å¤ÎʤӤ˥ޥåÁ¤¹¤ë¡£ -\(aq+\(aq ¤¬¸åÃÖ¤µ¤ì¤¿¥¢¥È¥à¤Ï¡¢¥Þ¥Ã¥Á¤·¤¿¥¢¥È¥à¤Î 1 ¸Ä°Ê¾å¤ÎʤӤ˥ޥåÁ¤¹¤ë¡£ -\(aq?\(aq ¤¬¸åÃÖ¤µ¤ì¤¿¥¢¥È¥à¤Ï¡¢¥Þ¥Ã¥Á¤·¤¿¥¢¥È¥à¤Î 0 ¸Ä¤Þ¤¿¤Ï 1 ¸Ä¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ +文節は\fIアトム (atom)\fR からなる。ただしアトムの後には一つ\*(dg の \(aq*\(aq, +\(aq+\(aq, \(aq?\(aq あるいは \fI繰り返し指定 (bound)\fR が続くこともある。 +\(aq*\(aq が後置されたアトムは、マッチしたアトムの 0 個以上の並びにマッチする。 +\(aq+\(aq が後置されたアトムは、マッチしたアトムの 1 個以上の並びにマッチする。 +\(aq?\(aq が後置されたアトムは、マッチしたアトムの 0 個または 1 個にマッチする。 .PP -\fI·«¤êÊÖ¤·»ØÄê\fR¤È¤Ï \(aq{\(aq ¤Ë³¤¤¤Æ¡¢Éä¹æ¤Ê¤· 10 ¿ÊÀ°¿ô¡¢\(aq,\(aq¡¢ -¤â¤¦°ì¤Ä¤Î 10 ¿ÊÀ°¿ô¡¢\(aq}\(aq ¤òʤ٤¿¤â¤Î¤Ç¤¢¤ë¡£\(aq,\(aq ¤ÈÆó¤Ä¤á¤Î -10 ¿ÊÀ°¿ô¤Ï¾Êά¤Ç¤­¤ë¡£Æó¤Ä¤á¤Î 10 ¿ÊÀ°¿ô¤À¤±¤ò¾Êά¤¹¤ë¤³¤È¤â¤Ç¤­¤ë -(ºÇ¸å¤Î `}' ¤Ï¾Êά¤Ç¤­¤Ê¤¤)¡£ -À°¿ô¤Ï 0 °Ê¾å +\fI繰り返し指定\fRとは \(aq{\(aq に続いて、符号なし 10 進整数、\(aq,\(aq、 +もう一つの 10 進整数、\(aq}\(aq を並べたものである。\(aq,\(aq と二つめの +10 進整数は省略できる。二つめの 10 進整数だけを省略することもできる +(最後の `}' は省略できない)。 +整数は 0 以上 .B RE_DUP_MAX -(255\*(dg) °Ê²¼¤Î´Ö¤Ç»ØÄê¤Ç¤­¤ë¡£ -Æó¤Ä»ØÄꤹ¤ë¾ì¹ç¤Ë¤Ï¡¢ºÇ½é¤Î¿ôÃͤϸå¤Î¿ôÃͤò±Û¤¨¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -À°¿ô \fIi\fR ¤À¤±¤«¤é¤Ê¤ë·«¤êÊÖ¤·»ØÄê¤ò¸åÃÖ¤µ¤ì¤¿¥¢¥È¥à¤Ï¡¢ -¥¢¥È¥à¤ò¤Ô¤Ã¤¿¤ê¤Á¤ç¤¦¤É \fIi\fR ¸Ä¤À¤±Ê¤٤¿¤â¤Î¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -À°¿ô \fIi\fR ¤È¥³¥ó¥Þ¤¬»ØÄꤵ¤ì¤¿·«¤êÊÖ¤·»ØÄê¤ò¸åÃÖ¤µ¤ì¤¿¥¢¥È¥à¤Ï¡¢ -¥¢¥È¥à¤ò \fIi\fR¸Ä°Ê¾åʤ٤¿¤â¤Î¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -À°¿ô \fIi\fR ¤È \fIj\fR ¤¬»ØÄꤵ¤ì¤¿·«¤êÊÖ¤·»ØÄê¤ò¸åÃÖ¤µ¤ì¤¿¥¢¥È¥à¤Ï¡¢ -¥¢¥È¥à¤ò \fIi\fR¸Ä°Ê¾å \fIj\fR ¸Ä°Ê²¼¤À¤±Ê¤٤¿¤â¤Î¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ +(255\*(dg) 以下の間で指定できる。 +二つ指定する場合には、最初の数値は後の数値を越えてはならない。 +整数 \fIi\fR だけからなる繰り返し指定を後置されたアトムは、 +アトムをぴったりちょうど \fIi\fR 個だけ並べたものにマッチする。 +整数 \fIi\fR とコンマが指定された繰り返し指定を後置されたアトムは、 +アトムを \fIi\fR個以上並べたものにマッチする。 +整数 \fIi\fR と \fIj\fR が指定された繰り返し指定を後置されたアトムは、 +アトムを \fIi\fR個以上 \fIj\fR 個以下だけ並べたものにマッチする。 .PP -¥¢¥È¥à¤Î¼ïÎà¤Ï°Ê²¼¤ÎÄ̤ꡣ"\fI()\fP" ¤Ë°Ï¤Þ¤ì¤¿Àµµ¬É½¸½ -(¤½¤ÎÀµµ¬É½¸½¤¬¥Þ¥Ã¥Á¤¹¤ëʸ»úÎó¤Ë¥Þ¥Ã¥Á¤¹¤ë)¡¢ -Ãæ¿È¤¬¶õ¤Î "\fI()\fP" (null ʸ»úÎó¤Ë¥Þ¥Ã¥Á¤¹¤ë)\*(dg¡¢ -\fI¥Ö¥é¥±¥Ã¥Èɽ¸½ (bracket expression\fR :¸å½Ò)¡¢ -\(aq.\(aq (Ǥ°Õ¤Î 1 ʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë)¡¢ -\(aq^\(aq (¹ÔƬ¤Î¶õÇòʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë)¡¢ -\(aq$\(aq (¹ÔËö¤Î¶õÇòʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë)¡¢ -\(aq\e\(aq ¤Ë "\fI^.[$()|*+?{\e\fP" ¤Î¤¤¤º¤ì¤«°ìʸ»ú¤ò¸åÃÖ¤·¤¿¤â¤Î -(Ä̾ï¤Îʸ»ú¤È¤·¤Æ°·¤ï¤ì¡¢¤½¤Îʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë)¡¢ -\(aq\e\(aq ¤Ë¤½¤ì°Ê³°¤Îʸ»ú¤ò¸åÃÖ¤·¤¿¤â¤Î\*(dg -(\(aq\e\(aq ¤¬¤Ê¤¤¾ì¹ç¤ÈƱ¤¸¤è¤¦¤Ë¡¢¤½¤Îʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë\*(dg)¡¢ -Æä˰ÕÌ£¤ò»ý¤¿¤Ê¤¤Ê¸»ú°ì¤Ä (¤½¤Îʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë)¡£ -\(aq{\(aq ¤Ï¿ô»ú°Ê³°¤Îʸ»ú¤¬¸åÃÖ¤µ¤ì¤ë¤ÈÄ̾ï¤Îʸ»ú¤È¤·¤Æ°·¤ï¤ì¡¢ -·«¤êÊÖ¤·»ØÄê¤Î»Ï¤Þ¤ê¤È¤Ï¤µ¤ì¤Ê¤¤\*(dg¡£\(aq\e\(aq -¤Ç½ª¤ï¤ëÀµµ¬É½¸½¤ÏÉÔÀµ¤Ê¤â¤Î¤È¤ß¤Ê¤µ¤ì¤ë¡£ +アトムの種類は以下の通り。"\fI()\fP" に囲まれた正規表現 +(その正規表現がマッチする文字列にマッチする)、 +中身が空の "\fI()\fP" (null 文字列にマッチする)\*(dg、 +\fIブラケット表現 (bracket expression\fR :後述)、 +\(aq.\(aq (任意の 1 文字にマッチする)、 +\(aq^\(aq (行頭の空白文字にマッチする)、 +\(aq$\(aq (行末の空白文字にマッチする)、 +\(aq\e\(aq に "\fI^.[$()|*+?{\e\fP" のいずれか一文字を後置したもの +(通常の文字として扱われ、その文字にマッチする)、 +\(aq\e\(aq にそれ以外の文字を後置したもの\*(dg +(\(aq\e\(aq がない場合と同じように、その文字にマッチする\*(dg)、 +特に意味を持たない文字一つ (その文字にマッチする)。 +\(aq{\(aq は数字以外の文字が後置されると通常の文字として扱われ、 +繰り返し指定の始まりとはされない\*(dg。\(aq\e\(aq +で終わる正規表現は不正なものとみなされる。 .PP -\fI¥Ö¥é¥±¥Ã¥Èɽ¸½\fR¤Ï "\fI[]\fP" ¤Ë¤è¤Ã¤ÆÊĤ¸¤é¤ì¤¿Ê¸»ú¤Î¥ê¥¹¥È¤Ç¤¢¤ë¡£ -¤³¤ì¤ÏÄ̾ï¥ê¥¹¥ÈÃæ¤Ë¸ºß¤·¤Æ¤¤¤ëʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -(Îã³°¤¢¤ê¡¢¸å½Ò¡£) ¥ê¥¹¥È¤¬ \(aq^\(aq ¤Ç»Ï¤Þ¤ë¤È¡¢ -\fI¥Ö¥é¥±¥Ã¥Èɽ¸½\fR¤Ï¥ê¥¹¥È¤Ë¸ºß¤·¤Æ\fI¤¤¤Ê¤¤\fRʸ»ú°ì¤Ä¤Ë¥Þ¥Ã¥Á¤¹¤ë -(Îã³°¤¢¤ê¡¢¸å½Ò)¡£ ¥ê¥¹¥ÈÃæ¤ÎÆó¤Ä¤Îʸ»ú¤¬ \(aq\-\(aq ¤Ç¶èÀÚ¤é¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ -¤³¤ì¤Ï¾È¹ç½ç½ø (collating sequence) ¤Ç¤½¤ÎÆó¤Ä¤Îʸ»ú¤Ë¶´¤Þ¤ì¤ë¡¢ -¤¹¤Ù¤Æ¤Îʸ»ú¤ÎʤӤòû½Ì¤·¤¿¤â¤Î¤È¤ß¤Ê¤µ¤ì¤ë (ξü´Þ¤à)¡£ -Î㤨¤Ð "\fI[0\-9]\fP" ¤Ï ASCII ¤Ç¤Ï 10 ¿Ê¤Î¿ô»ú (digit) ¤Î¤¤¤º¤ì¤«¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -Æó¤Ä¤ÎÎΰè»ØÄ꤬üÅÀ¤ò¶¦Í­¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤\*(dg¡£ -¤Ä¤Þ¤ê "\fIa-c-e\fP" ¤Î¤è¤¦¤Ê¤â¤Î¤ÏÉÔÀµ¤Ç¤¢¤ë¡£Îΰè»ØÄê¤Ï¾È¹ç½ç½ø¤Ë¶¯¤¯°Í¸¤¹¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ°Ü¿¢À­¤Î¹â¤¤¥×¥í¥°¥é¥à¤òºî¤ë¾ì¹ç¤Ï¡¢ -Îΰè»ØÄê¤Ë¤ÏÍê¤é¤Ê¤¤¤Û¤¦¤¬Îɤ¤¤À¤í¤¦¡£ +\fIブラケット表現\fRは "\fI[]\fP" によって閉じられた文字のリストである。 +これは通常リスト中に存在している文字にマッチする。 +(例外あり、後述。) リストが \(aq^\(aq で始まると、 +\fIブラケット表現\fRはリストに存在して\fIいない\fR文字一つにマッチする +(例外あり、後述)。 リスト中の二つの文字が \(aq\-\(aq で区切られている場合は、 +これは照合順序 (collating sequence) でその二つの文字に挟まれる、 +すべての文字の並びを短縮したものとみなされる (両端含む)。 +例えば "\fI[0\-9]\fP" は ASCII では 10 進の数字 (digit) のいずれかにマッチする。 +二つの領域指定が端点を共有してはならない\*(dg。 +つまり "\fIa-c-e\fP" のようなものは不正である。領域指定は照合順序に強く依存する。 +したがって移植性の高いプログラムを作る場合は、 +領域指定には頼らないほうが良いだろう。 .PP -¡ÚÌõÃí: ¾È¹ç½ç½ø (collating sequence) ¤È¤¤¤¦¤Î¤Ï¡¢¹ñºÝ²½ -(Internationalization) ¤Ë´ØÏ¢¤·¤¿ÍѸì¤Ç¤¹¡£¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½ç¤Ëñ¸ì¤òÊ -¤Ù¤ëºÝ¤Ë¤Ï¡¢¸À¸ì¤Ë¤è¤Ã¤Æʤ٤ë´ð½à¤¬°Û¤Ê¤ê¤Þ¤¹¡£¾È¹ç½ç½ø¤Ï¡¢¤½¤Îº¹°Û¤ò -µÛ¼ý¤¹¤ë¤¿¤á¤Î»ÅÁȤߤǤ¹¡£ +【訳注: 照合順序 (collating sequence) というのは、国際化 +(Internationalization) に関連した用語です。アルファベット順に単語を並 +べる際には、言語によって並べる基準が異なります。照合順序は、その差異を +吸収するための仕組みです。 .PP -Î㤨¤Ð¡¢¥¹¥Ú¥¤¥ó¸ì¤Ç¤Ï ch ¤È¤¤¤¦Ê¸»úʤӤòÆÃÊÌ°·¤¤¤¹¤ë¤¿¤á¡¢¥¢¥ë¥Õ¥¡¥Ù¥Ã -¥È½ç¤¬ a, b, c, ch, d, e, ... ¤Î½ç¤Ë¤Ê¤ë¤½¤¦¤Ç¤¹¡£¤³¤Î¤è¤¦¤Ê¥·¡¼¥±¥ó¥¹ -¤Î¤³¤È¤ò collating sequence ¤È¸À¤¤¤Þ¤¹¡£¤³¤Î¤È¤­ `ch' ¤È¤¤¤¦Ê¸»úʤӤϡ¢ -ñ¸ìÀ°Îó¤ÎºÝ¤Ë¤¢¤¿¤«¤â¡Ö°ìʸ»ú¡×¤Î¤è¤¦¤Ë°·¤ï¤ì¤Þ¤¹¡£¤³¤³¤Ç¡¢ -½ç½øÉÕ¤±¤ò¹Ô¤¦ºÝ¤ËºÇ¾®¤Îñ°Ì¤È¤Ê¤ë¡¢`a'¡¢`b' ¤Îʸ»ú¤ä -`ch' ¤Î¤è¤¦¤ÊÆÃÊ̤Êʸ»úʤӤʤɡ¢¾È¹ç½ç½ø¤ÎÍ×ÁǤΤ³¤È¤ò -collating element ¤È¸À¤¤¤Þ¤¹¡£collating sequence ¤Ï¡¢Ê¸»úñ°Ì¤Ç¤Ï¤Ê¤¯ -collating element ¤òñ°Ì¤È¤·¤ÆÄêµÁ¤µ¤ì¤Þ¤¹¡£¡Û +例えば、スペイン語では ch という文字並びを特別扱いするため、アルファベッ +ト順が a, b, c, ch, d, e, ... の順になるそうです。このようなシーケンス +のことを collating sequence と言います。このとき `ch' という文字並びは、 +単語整列の際にあたかも「一文字」のように扱われます。ここで、 +順序付けを行う際に最小の単位となる、`a'、`b' の文字や +`ch' のような特別な文字並びなど、照合順序の要素のことを +collating element と言います。collating sequence は、文字単位ではなく +collating element を単位として定義されます。】 .PP -ʸ»ú \(aq]\(aq ¤½¤Î¤â¤Î¤ò¥ê¥¹¥È¤ËÆþ¤ì¤¿¤¤¾ì¹ç¤Ï¡¢ -ºÇ½é¤Îʸ»ú¤È¤·¤Æ»ØÄꤹ¤ì¤ÐÎɤ¤ (\(aq^\(aq) ¤Î¸å¤Ë³¤±¤ë¤Î¤Ç¤âÎɤ¤)¡£ -ʸ»ú \(aq\-\(aq ¤½¤Î¤â¤Î¤ò¥ê¥¹¥È¤ËÆþ¤ì¤¿¤¤¾ì¹ç¤Ï¡¢ -ºÇ½é¤«ºÇ¸å¤Îʸ»ú¤È¤¹¤ì¤ÐÎɤ¤¡£ -¤¢¤ë¤¤¤ÏÎΰè»ØÄê¤Î½ªÃ¼Ê¸»ú¤È¤·¤Æ»ØÄꤷ¤Æ¤âÎɤ¤¡£ -\(aq\-\(aq ¤òÎΰè»ØÄê¤ÎÀèƬʸ»ú¤Ë»ØÄꤹ¤ë¤Ë¤Ï¡¢"\fI[.\fP" ¤È "\fI.]\fP" ¤Ç°Ï¤Ã¤Æ¡¢ -¾È¹ç½ç½ø¤ÎÍ×ÁÇ (collating element: ¸å½Ò) ¤Ë¤¹¤ì¤ÐÎɤ¤¡£ -¾¤ÎÆüìʸ»ú ( ¤â´Þ¤à) ¤Ï¡¢ -¥Ö¥é¥±¥Ã¥Èɽ¸½¤ÎÆâÉô¤Ç¤Ï¤¹¤Ù¤ÆÄ̾ï¤Îʸ»ú¤È¤·¤Æ°·¤ï¤ì¤ë¡£ +文字 \(aq]\(aq そのものをリストに入れたい場合は、 +最初の文字として指定すれば良い (\(aq^\(aq) の後に続けるのでも良い)。 +文字 \(aq\-\(aq そのものをリストに入れたい場合は、 +最初か最後の文字とすれば良い。 +あるいは領域指定の終端文字として指定しても良い。 +\(aq\-\(aq を領域指定の先頭文字に指定するには、"\fI[.\fP" と "\fI.]\fP" で囲って、 +照合順序の要素 (collating element: 後述) にすれば良い。 +他の特殊文字 ( も含む) は、 +ブラケット表現の内部ではすべて通常の文字として扱われる。 .PP -¥Ö¥é¥±¥Ã¥Èɽ¸½¤ÎÆâÉô¤Ç¤Ï¡¢"\fI[.\fP" ¤È "\fI.]\fP" ¤Ë°Ï¤ï¤ì¤¿¾È¹ç½ç½ø¤ÎÍ×ÁǤϡ¢ -¤½¤ÎÍ×ÁǤËÂбþ¤¹¤ëʸ»úʤӤòɽ¤¹¡£ -¡Ö¾È¹ç½ç½ø¤ÎÍ×ÁǡפȤϡ¢ -[1] ʸ»ú¡¢ [2] ñ°ìʸ»ú¤Î¤è¤¦¤Ë°·¤ï¤ì¤ëÊ£¿ôʸ»ú¤Î¥·¡¼¥±¥ó¥¹¡¢ -[3] 1, 2 ¤¤¤º¤ì¤«¤ËÂбþ¤¹¤ë¾È¹ç½ç½ø¾å¤Î̾Á°¡¢¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¡£ -¤³¤Î·«¤êÊÖ¤·¤Ï¡¢¥Ö¥é¥±¥Ã¥Èɽ¸½¤Î¥ê¥¹¥È¤Ë¤ª¤±¤ëñ°ì¤ÎÍ×ÁǤȤʤ롣 -¾åµ­ [2] ¤Î¡¢¡ÖÊ£¿ôʸ»ú¤«¤é¤Ê¤ë¾È¹ç½ç½øÍ×Áǡפò´Þ¤à¥Ö¥é¥±¥Ã¥Èɽ¸½¤Ï¡¢ -¤·¤¿¤¬¤Ã¤Æ°ìʸ»ú°Ê¾å¤Ë¥Þ¥Ã¥Á¤¹¤ë¤³¤È¤¬¤¢¤ë¡£ -Î㤨¤Ð¡¢¤â¤·¾È¹ç½ç½ø¤¬ "ch" ¤È¤¤¤¦Í×ÁǤò´Þ¤ó¤Ç¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -Àµµ¬É½¸½ "\fI[[.ch.]]*c\fP" ¤Ï "chchcc" ¤ÎºÇ½é¤Î 5 ʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ +ブラケット表現の内部では、"\fI[.\fP" と "\fI.]\fP" に囲われた照合順序の要素は、 +その要素に対応する文字並びを表す。 +「照合順序の要素」とは、 +[1] 文字、 [2] 単一文字のように扱われる複数文字のシーケンス、 +[3] 1, 2 いずれかに対応する照合順序上の名前、のいずれかである。 +この繰り返しは、ブラケット表現のリストにおける単一の要素となる。 +上記 [2] の、「複数文字からなる照合順序要素」を含むブラケット表現は、 +したがって一文字以上にマッチすることがある。 +例えば、もし照合順序が "ch" という要素を含んでいる場合には、 +正規表現 "\fI[[.ch.]]*c\fP" は "chchcc" の最初の 5 文字にマッチする。 .PP -¥Ö¥é¥±¥Ã¥Èɽ¸½¤ÎÆâÉô¤Ç¤Ï¡¢"\fI[=\fP" ¤È "\fI=]\fP" ¤Ë°Ï¤Þ¤ì¤¿¾È¹ç½ç½ø¤ÎÍ×ÁǤϡ¢ -Åù²Á¥¯¥é¥¹ (equivalence class) ¤È¤Ê¤ë¡£ -¤³¤ì¤Ï¡¢¤½¤ÎÍ×ÁǤÈÅù²Á¤ÊÍ×ÁǤ¹¤Ù¤Æ¤«¤é¤Ê¤ëʸ»ú¥·¡¼¥±¥ó¥¹ (¼«¿È¤â´Þ¤à) ¤òɽ¤¹¡£ -¾¤ËÅù²Á¤ÊÍ×ÁǤ¬¤Ê¤±¤ì¤Ð¡¢ -¼è¤ê°·¤¤¤Ï "\fI[.\fP" ¤È "\fI.]\fP" ¤Ç°Ï¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -Î㤨¤Ð o ¤È ou ¤¬Åù²Á¥¯¥é¥¹¤Î¥á¥ó¥Ð¡¼¤Ç¤¢¤ì¤Ð¡¢ -"\fI[[=o=]]\fP", "\fI[[=\o'o^'=]]\fP", "\fI[o\o'o^']\fP" ¤Ï¤¹¤Ù¤ÆƱ¤¸°ÕÌ£¤Ë¤Ê¤ë¡£ -Åù²Á¥¯¥é¥¹¤ÏÎΰè»ØÄê¤ÎüÅÀ¤Ë¤Ï¤Ê¤ì¤Ê¤¤\*(dg¡£ -.\" nippon üËö¤Ç¤Ï \o'o^' ¤¬Àµ¤·¤¯½Ð¤Ê¤¤¤Î¤Ç¡¢Î㼨¤òÊѹ¹¤·¤Þ¤·¤¿¡£ +ブラケット表現の内部では、"\fI[=\fP" と "\fI=]\fP" に囲まれた照合順序の要素は、 +等価クラス (equivalence class) となる。 +これは、その要素と等価な要素すべてからなる文字シーケンス (自身も含む) を表す。 +他に等価な要素がなければ、 +取り扱いは "\fI[.\fP" と "\fI.]\fP" で囲まれている場合と同じである。 +例えば o と ou が等価クラスのメンバーであれば、 +"\fI[[=o=]]\fP", "\fI[[=\o'o^'=]]\fP", "\fI[o\o'o^']\fP" はすべて同じ意味になる。 +等価クラスは領域指定の端点にはなれない\*(dg。 +.\" nippon 端末では \o'o^' が正しく出ないので、例示を変更しました。 .PP -¥Ö¥é¥±¥Ã¥Èɽ¸½¤ÎÆâÉô¤Ç¤Ï¡¢"\fI[:\fP" ¤È "\fI:]\fP" ¤Ç°Ï¤ï¤ì¤¿\fIʸ»ú¥¯¥é¥¹ -(character class)\fR ¤Ï¤½¤Î¥¯¥é¥¹¤Ë°¤¹¤ë¤¹¤Ù¤Æ¤Îʸ»ú¤Î¥ê¥¹¥È¤òɽ¤¹¡£ -ɸ½à¤ÇÍÑ°Õ¤µ¤ì¤Æ¤¤¤ëʸ»ú¥¯¥é¥¹¤Î̾Á°¤Ï°Ê²¼¤ÎÄ̤ê: +ブラケット表現の内部では、"\fI[:\fP" と "\fI:]\fP" で囲われた\fI文字クラス +(character class)\fR はそのクラスに属するすべての文字のリストを表す。 +標準で用意されている文字クラスの名前は以下の通り: .PP .RS .nf @@ -189,117 +189,117 @@ cntrl print xdigit .fi .RE .PP -¤³¤ì¤é¤Ï +これらは .BR wctype (3) -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëʸ»ú¥¯¥é¥¹¤òɽ¤·¤Æ¤¤¤ë¡£¥í¥±¡¼¥ë (locale) ¤Ë¤è¤Ã¤Æ¡¢ -¤³¤ì¤é°Ê³°¤Î¥¯¥é¥¹¤¬ÄêµÁ¤µ¤ì¤ë¤³¤È¤â¤¢¤ë¡£ -ʸ»ú¥¯¥é¥¹¤ÏÎΰè»ØÄê¤ÎüÅÀ¤Ë¤Ï¤Ê¤ì¤Ê¤¤¡£ +で定義されている文字クラスを表している。ロケール (locale) によって、 +これら以外のクラスが定義されることもある。 +文字クラスは領域指定の端点にはなれない。 .\" .PP -.\" http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=295666 ¤Ë¤¢¤ë¤è¤¦¤Ë -.\" °Ê²¼¤Îµ­ºÜ¤Ï glibc ¤Î¼ÂÁõ¤Ë¤Ï¤¢¤Æ¤Ï¤Þ¤é¤Ê¤¤¤è¤¦¤Ç¤¢¤ë¡£ -.\" ¥Ö¥é¥±¥Ã¥Èɽ¸½¤Ë¤Ï¡¢Æüì¤Ê°ÕÌ£¤ò»ý¤Ä¤â¤Î¤¬Æó¤Ä¸ºß¤¹¤ë\*(dg¡£ -.\" ¥Ö¥é¥±¥Ã¥Èɽ¸½ "\fI[[:<:]]\fP" ¤Ï¥ï¡¼¥É (word) ÀèƬ¤Î¥Ì¥ëʸ»úÎó¤Ë¡¢ -.\" "\fI[[:>:]]\fP" ¤Ï¥ï¡¼¥ÉËöÈø¤Î¥Ì¥ëʸ»úÎó¤Ë¤½¤ì¤¾¤ì¥Þ¥Ã¥Á¤¹¤ë¡£ -.\" ¥ï¡¼¥É¤È¤Ï¥ï¡¼¥Éʸ»ú¤ÎʤӤǤ¢¤ê¡¢ -.\" ¥ï¡¼¥Éʸ»ú¤¬Á°ÃÖ¤â¸åÃ֤⤵¤ì¤Æ¤¤¤Ê¤¤¤â¤Î¤Ç¤¢¤ë¡£ -.\" ¥ï¡¼¥Éʸ»ú¤Ï +.\" http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=295666 にあるように +.\" 以下の記載は glibc の実装にはあてはまらないようである。 +.\" ブラケット表現には、特殊な意味を持つものが二つ存在する\*(dg。 +.\" ブラケット表現 "\fI[[:<:]]\fP" はワード (word) 先頭のヌル文字列に、 +.\" "\fI[[:>:]]\fP" はワード末尾のヌル文字列にそれぞれマッチする。 +.\" ワードとはワード文字の並びであり、 +.\" ワード文字が前置も後置もされていないものである。 +.\" ワード文字は .\" .I alnum -.\" ʸ»ú +.\" 文字 .\" .RB ( wctype (3) -.\" ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë) ¤ª¤è¤Ó¥¢¥ó¥À¡¼¥¹¥³¥¢ `_' ¤Ç¤¢¤ë¡£ -.\" ¤³¤ì¤Ï³ÈÄ¥µ­Ë¡¤Ç¤¢¤ê¡¢POSIX.2 ¤ËÈ¿¤·¤Æ¤Ï¤¤¤Ê¤¤¤¬¡¢ -.\" ÄêµÁ¤â¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.\" ¾¤Î¥·¥¹¥Æ¥à¤È¸ß´¹À­¤ò³ÎÊݤ·¤¿¤¤¥½¥Õ¥È¥¦¥§¥¢¤Ç¤Ï¡¢ -.\" Ãí°Õ¤·¤ÆÍѤ¤¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¡£ +.\" で定義されている) およびアンダースコア `_' である。 +.\" これは拡張記法であり、POSIX.2 に反してはいないが、 +.\" 定義もされていない。 +.\" 他のシステムと互換性を確保したいソフトウェアでは、 +.\" 注意して用いるようにすること。 .PP -Àµµ¬É½¸½¤¬¡¢Í¿¤¨¤é¤ì¤¿Ê¸»úÎó¤ÎÊ£¿ô¤ÎÉôʬʸ»úÎó -(substring) ¤Ë¥Þ¥Ã¥Á¤Ç¤­¤ë¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï¡¢ -ºÇ¤âÀèƬ¤Î¶á¤¯¤«¤é»Ï¤Þ¤ë¤â¤Î¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -¤½¤Î°ÌÃÖ¤«¤é»Ï¤Þ¤ê¡¢Àµµ¬É½¸½¤¬¥Þ¥Ã¥Á¤Ç¤­¤ëÉôʬʸ»úÎó¤¬Ê£¿ô¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢ -ºÇŤΤâ¤Î¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -ÉôʬÀµµ¬É½¸½ (subexpression) ¤âºÇ¤âŤ¤Éôʬʸ»úÎó¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -¤¿¤À¤·¡¢Á´ÂΤΥޥåÁ¤¬ºÇŤǤ¢¤ë¤è¤¦¤Ë¡¢¤È¤¤¤¦¾ò·ï¤¬Í¥À褵¤ì¤ë¡£ -Àµµ¬É½¸½¤ÎÃæ¤ÇÀè¤Ë¸½¤ì¤ëÉôʬÀµµ¬É½¸½¤Ï¡¢¸å¤Ë¸½¤ì¤ë¤â¤Î¤è¤êÍ¥À褵¤ì¤ë¡£ -¤¿¤À¤·¡¢¤è¤ê¹â°Ì¤ÎÉôʬÀµµ¬É½¸½¤Ï¡¢ -¤½¤ì¤ò¹½À®¤¹¤ëÄã°Ì¤ÎÉôʬÀµµ¬É½¸½¤è¤ê¤âÍ¥À褵¤ì¤ë¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +正規表現が、与えられた文字列の複数の部分文字列 +(substring) にマッチできるような場合には、 +最も先頭の近くから始まるものにマッチする。 +その位置から始まり、正規表現がマッチできる部分文字列が複数ある場合には、 +最長のものにマッチする。 +部分正規表現 (subexpression) も最も長い部分文字列にマッチする。 +ただし、全体のマッチが最長であるように、という条件が優先される。 +正規表現の中で先に現れる部分正規表現は、後に現れるものより優先される。 +ただし、より高位の部分正規表現は、 +それを構成する低位の部分正規表現よりも優先されることに注意すること。 .PP -¥Þ¥Ã¥ÁĹ¤Ï¾È¹ç½ç½ø¤ÎÍ×ÁǤǤϤʤ¯¡¢Ê¸»ú¿ô¤òñ°Ì¤È¤·¤Æ¥«¥¦¥ó¥È¤µ¤ì¤ë¡£ -null ʸ»úÎó¤Ï¡¢Á´¤¯¥Þ¥Ã¥Á¤·¤Ê¤«¤Ã¤¿¾ì¹ç¤è¤ê¤âŤ¤¤È¤ß¤Ê¤µ¤ì¤ë¡£ -Î㤨¤Ð "\fIbb*\fP" ¤Ï "abbbc" ¤Î¤Þ¤óÃæ¤Î 3 ʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -"\fI(wee|week)(knights|nights)\fP" ¤Ï "weeknights" ¤ÎÁ´ÂΤ˥ޥåÁ¤¹¤ë¡£ -"\fI(.*).*\fP" ¤ò "abc" ¤Ë¥Þ¥Ã¥Á¤µ¤»¤ë¤È¡¢ -³ç¸Ì¤ÎÆâÉô¤ÎÉôʬÀµµ¬É½¸½¤¬ 3 ʸ»ú¤¹¤Ù¤Æ¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -"\fI(a*)*\fP" ¤ò "bc" ¤Ë¥Þ¥Ã¥Á¤µ¤»¤ë¤È¡¢Àµµ¬É½¸½Á´ÂΤ⡢ -³ç¸Ì¤Ç³ç¤é¤ì¤¿ÉôʬÀµµ¬É½¸½¤â null ʸ»úÎó¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ +マッチ長は照合順序の要素ではなく、文字数を単位としてカウントされる。 +null 文字列は、全くマッチしなかった場合よりも長いとみなされる。 +例えば "\fIbb*\fP" は "abbbc" のまん中の 3 文字にマッチする。 +"\fI(wee|week)(knights|nights)\fP" は "weeknights" の全体にマッチする。 +"\fI(.*).*\fP" を "abc" にマッチさせると、 +括弧の内部の部分正規表現が 3 文字すべてにマッチする。 +"\fI(a*)*\fP" を "bc" にマッチさせると、正規表現全体も、 +括弧で括られた部分正規表現も null 文字列にマッチする。 .PP -¥Þ¥Ã¥Á¤¬Âçʸ»ú¡¦¾®Ê¸»ú¤ò̵»ë¤¹¤ë¤è¤¦¤Ë»ØÄꤵ¤ì¤ë¤È¡¢ -¥¢¥ë¥Õ¥¡¥Ù¥Ã¥ÈÁ´ÂΤ«¤éÂ羮ʸ»ú¤Î¶èÊ̤¬Ìµ¤¯¤Ê¤Ã¤¿¤«¤Î¤è¤¦¤Ê¸ú²Ì¤È¤Ê¤ë¡£ -Âçʸ»ú¡¦¾®Ê¸»ú¤ò»ý¤Ä¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤¬¥Ö¥é¥±¥Ã¥Èɽ¸½¤Î³°Éô¤Ç -Ä̾ï¤Îʸ»ú¤È¤·¤Æ¸½¤ì¤ë¤È¡¢ -¤³¤ì¤Ï¼Â¸úŪ¤ËÂ羮ξÊý¤Îʸ»ú¤Î¥Ö¥é¥±¥Ã¥Èɽ¸½¤Î¤è¤¦¤ËÊÑ´¹¤µ¤ì¤ë¡£ -¤¹¤Ê¤ï¤Á \(aqx\(aq ¤Ï "\fI[xX]\fP" ¤È¤Ê¤ë¡£¥Ö¥é¥±¥Ã¥Èɽ¸½¤ÎÆâÉô¤Ë¸½¤ì¤ë¤È¡¢ -Âçʸ»ú¤Ê¤é¾®Ê¸»ú¤¬¡¢¾®Ê¸»ú¤Ê¤éÂçʸ»ú¤¬¤½¤Î¥Ö¥é¥±¥Ã¥Èɽ¸½¤Ë²Ã¤¨¤é¤ì¤ë¡£ -¤¹¤Ê¤ï¤Á -"\fI[x]\fP" ¤Ï "\fI[xX]\fP" ¤Ë¡¢"\fI[^x]\fP" ¤Ï "\fI[^xX]\fP" ¤Ë¤Ê¤ë¡£ +マッチが大文字・小文字を無視するように指定されると、 +アルファベット全体から大小文字の区別が無くなったかのような効果となる。 +大文字・小文字を持つアルファベットがブラケット表現の外部で +通常の文字として現れると、 +これは実効的に大小両方の文字のブラケット表現のように変換される。 +すなわち \(aqx\(aq は "\fI[xX]\fP" となる。ブラケット表現の内部に現れると、 +大文字なら小文字が、小文字なら大文字がそのブラケット表現に加えられる。 +すなわち +"\fI[x]\fP" は "\fI[xX]\fP" に、"\fI[^x]\fP" は "\fI[^xX]\fP" になる。 .PP -Àµµ¬É½¸½¤ÎŤµ¤Ë¤ÏÆäËÀ©¸Â¤Ï¤Ê¤¤\*(dg¡£ -¤¿¤À¤·°Ü¿¢À­¤ò¹â¤¯¤·¤¿¤¤¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ -256 ¥Ð¥¤¥È¤è¤êŤ¤Àµµ¬É½¸½¤Ï¼Â¹Ô¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤Û¤¦¤¬Îɤ¤¡£ -¤Ê¤¼¤Ê¤é¡¢¤½¤Î¤è¤¦¤ÊÀµµ¬É½¸½¤òµñÈݤ·¡¢ -¤·¤«¤â POSIX ¸ß´¹¤òÊݤĤ褦¤Ê¼ÂÁõ¤¬²Äǽ¤À¤«¤é¤Ç¤¢¤ë¡£ +正規表現の長さには特に制限はない\*(dg。 +ただし移植性を高くしたいプログラムでは、 +256 バイトより長い正規表現は実行しないようにするほうが良い。 +なぜなら、そのような正規表現を拒否し、 +しかも POSIX 互換を保つような実装が可能だからである。 .PP -¸Å¤¤ ("´ðËÜ") Àµµ¬É½¸½¤Ï¡¢¤¤¤¯¤Ä¤«¤ÎÅÀ¤Ë¤ª¤¤¤Æ°Û¤Ê¤ë¡£ -\(aq|\(aq, \(aq+\(aq, and \(aq?\(aq ¤ÏÄ̾ï¤Îʸ»ú¤È¤Ê¤ë¡£ -Âбþ¤¹¤ëµ¡Ç½¤Ï¸ºß¤·¤Ê¤¤¡£·«¤êÊÖ¤·»ØÄê¤Î¶èÀÚ¤ê¤Ï -"\fI\e{\fP" ¤ª¤è¤Ó "\fI\e}\fP" ¤È¤Ê¤ë¡£\(aq{\(aq ¤È \(aq}\(aq ¤Ï¡¢ -ñÆȤǤÏÄ̾ï¤Îʸ»ú¤È¤·¤Æ°·¤ï¤ì¤ë¡£ -ÉôʬÀµµ¬É½¸½¤ò¥Í¥¹¥È¤¹¤ë³ç¸Ì¤Ï "\fI\e(\fP" ¤ª¤è¤Ó "\fI\e)\fP" ¤È¤Ê¤ê¡¢ -\(aq(\(aq ¤È \(aq)\(aq ¤ÏñÆȤǤÏÄ̾ï¤Îʸ»ú¤È¤Ê¤ë¡£ -\(aq^\(aq ¤ÏÀµµ¬É½¸½¤ÎÀèƬ¤«¡¢ -³ç¸Ì¤Ç¤¯¤¯¤é¤ì¤¿Éôʬɽ¸½¤ÎÀèƬ\*(dg¤ò½ü¤¤¤ÆÄ̾ï¤Îʸ»ú¤È¤Ê¤ë¡£ -\(aq$\(aq ¤ÏÀµµ¬É½¸½¤ÎËöÈø¤«¡¢ -³ç¸Ì¤Ç¤¯¤¯¤é¤ì¤¿ÉôʬÀµµ¬É½¸½¤ÎËöÈø\*(dg¤ò½ü¤¤¤ÆÄ̾ï¤Îʸ»ú¤È¤Ê¤ë¡£ -\(aq*\(aq ¤Ï¡¢Àµµ¬É½¸½¤ÎÀèƬ¤«¡¢ -³ç¸Ì¤Ç¤¯¤¯¤é¤ì¤¿Éôʬʸ»úÎó¤ÎÀèƬ¤ËÃÖ¤«¤ì¤¿¾ì¹ç¤ÏÄ̾ï¤Îʸ»ú¤È¤Ê¤ë -(\(aq^\(aq) ¤¬Á°ÃÖ¤µ¤ì¤Æ¤¤¤Æ¤â¤è¤¤)¡£ +古い ("基本") 正規表現は、いくつかの点において異なる。 +\(aq|\(aq, \(aq+\(aq, and \(aq?\(aq は通常の文字となる。 +対応する機能は存在しない。繰り返し指定の区切りは +"\fI\e{\fP" および "\fI\e}\fP" となる。\(aq{\(aq と \(aq}\(aq は、 +単独では通常の文字として扱われる。 +部分正規表現をネストする括弧は "\fI\e(\fP" および "\fI\e)\fP" となり、 +\(aq(\(aq と \(aq)\(aq は単独では通常の文字となる。 +\(aq^\(aq は正規表現の先頭か、 +括弧でくくられた部分表現の先頭\*(dgを除いて通常の文字となる。 +\(aq$\(aq は正規表現の末尾か、 +括弧でくくられた部分正規表現の末尾\*(dgを除いて通常の文字となる。 +\(aq*\(aq は、正規表現の先頭か、 +括弧でくくられた部分文字列の先頭に置かれた場合は通常の文字となる +(\(aq^\(aq) が前置されていてもよい)。 .PP -ºÇ¸å¤Ë¡¢¥¢¥È¥à¤È¤·¤ÆÊ̤Υ¿¥¤¥×¤¬Â¸ºß¤¹¤ë¡£ -\fI¸åÊý»²¾È (back reference)\fR ¤Ç¤¢¤ë¡£ -\(aq\e\(aq ¤Î¸å¤Ë 0 ¤Ç¤Ê¤¤ 10 ¿Ê¿ôÃÍʸ»ú \fId\fR ¤¬Â³¤¯¤È¡¢ -³ç¸Ì¤Ç¤¯¤¯¤é¤ì¤¿ÉôʬÀµµ¬É½¸½¤Î -\fId\fR ÈÖÌܤ˥ޥåÁ¤·¤¿Ê¸»úʤӤÈƱ¤¸¤â¤Î¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ -(ÉôʬÀµµ¬É½¸½¤ÎÈÖ¹æÉÕ¤±¤Ï¡¢ -³«¤­³ç¸Ì `(' ¤Î°ÌÃÖ¤¬º¸¤Î¤â¤Î¤«¤é±¦¤Î¤â¤Î¤Ø¸þ¤«¤Ã¤Æ¤Ê¤µ¤ì¤ë¡£) -¤·¤¿¤¬¤Ã¤Æ "\fI\e([bc]\e)\e1\fP" ¤Ï -"bb" ¤Þ¤¿¤Ï "cc" ¤Ë¤Ï¥Þ¥Ã¥Á¤¹¤ë¤¬¡¢"bc" ¤Ë¤Ï¥Þ¥Ã¥Á¤·¤Ê¤¤¡£ -.SH ¥Ð¥° -Àµµ¬É½¸½¤¬ 2 ¼ïÎढ¤ë¤Î¤Ï³Ê¹¥°­¤¤¡£ +最後に、アトムとして別のタイプが存在する。 +\fI後方参照 (back reference)\fR である。 +\(aq\e\(aq の後に 0 でない 10 進数値文字 \fId\fR が続くと、 +括弧でくくられた部分正規表現の +\fId\fR 番目にマッチした文字並びと同じものにマッチする。 +(部分正規表現の番号付けは、 +開き括弧 `(' の位置が左のものから右のものへ向かってなされる。) +したがって "\fI\e([bc]\e)\e1\fP" は +"bb" または "cc" にはマッチするが、"bc" にはマッチしない。 +.SH バグ +正規表現が 2 種類あるのは格好悪い。 .PP -¸½ºß¤Î POSIX.2 µ¬³Ê¤Ë¤ª¤¤¤Æ¤Ï¡¢\(aq)\(aq ¤Ï¡¢ -Âбþ¤¹¤ë \(aq(\(aq ¤¬¤Ê¤¤¾ì¹ç¤Ë¤ÏÄ̾ï¤Îʸ»ú¤È¤·¤Æ°·¤ï¤ì¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤·¤«¤·¤³¤ì¤Ï¡¢ËÜÍè¤Î°Õ¿Þ¤È¤Ï°Û¤Ê¤ëµ­½Ò¾å¤Î¥¨¥é¡¼¤Ç¤¢¤ê¡¢ -½¤Àµ¤µ¤ì¤ë²ÄǽÀ­¤¬¹â¤¤¡£¤³¤ì¤Ë°Í¸¤·¤¿¥³¡¼¥É¤Ï»È¤ï¤Ê¤¤¤³¤È¡£ +現在の POSIX.2 規格においては、\(aq)\(aq は、 +対応する \(aq(\(aq がない場合には通常の文字として扱われることになっている。 +しかしこれは、本来の意図とは異なる記述上のエラーであり、 +修正される可能性が高い。これに依存したコードは使わないこと。 .PP -¸åÊý»²¾È¤Ï¤Ò¤É¤¯½ÐÍè¤Î°­¤¤Âåʪ¤Ç¤¢¤ë¡£ -¸úΨ¤ÎÎɤ¤¼ÂÁõ¤ò¤¹¤ë¤Î¤Ï¤È¤Æ¤âÆñ¤·¤¤¡£ -¤Þ¤¿ÄêµÁ¤¬¤¢¤¤¤Þ¤¤¤Ç¤¢¤ë¡£ -("\fIa\e(\e(b\e)*\e2\e)*d\fP" ¤Ï "abbbd" ¤Ë¥Þ¥Ã¥Á¤¹¤ë¤È»×¤¦¤«¡©) -»È¤ï¤Ê¤¤¤Û¤¦¤¬Îɤ¤¡£ +後方参照はひどく出来の悪い代物である。 +効率の良い実装をするのはとても難しい。 +また定義があいまいである。 +("\fIa\e(\e(b\e)*\e2\e)*d\fP" は "abbbd" にマッチすると思うか?) +使わないほうが良い。 .PP -POSIX.2 ¤Îµ¬³Ê¤Ç¤Ï¡¢case (Âçʸ»ú¤«¾®Ê¸»ú¤«) -¤Ë°Í¸¤·¤Ê¤¤¥Þ¥Ã¥Á¤Îµ­½Ò¤¬¤¢¤¤¤Þ¤¤¤Ç¤¢¤ë¡£ -¸½ºß¤Î¤È¤³¤í¤Ç¤Ï¡Ö°ì¤Ä¤Î case ¤¬¤¹¤Ù¤Æ¤Î case ¤ò°ÕÌ£¤¹¤ë¡× -¤È¤¤¤¦¾åµ­¤ÎÄêµÁ¤¬Àµ¤·¤¤²ò¼á¤Ç¤¢¤ë¤È¤¤¤¦¤Î¤¬¡¢ -¼ÂÁõ¼Ô¤Î´Ö¤Ç¤Î¶¦ÄÌǧ¼±¤Î¤è¤¦¤Ç¤¢¤ë¡£ +POSIX.2 の規格では、case (大文字か小文字か) +に依存しないマッチの記述があいまいである。 +現在のところでは「一つの case がすべての case を意味する」 +という上記の定義が正しい解釈であるというのが、 +実装者の間での共通認識のようである。 .\" As per http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=295666 .\" The following does not seem to apply in the glibc implementation .\" .PP -.\" ¥ï¡¼¥É¶­³¦¤Ë´Ø¤¹¤ëʸˡÄêµÁ¤¬Èó¾ï¤Ë½¹¤¤¡£ -.SH Ãø¼Ô +.\" ワード境界に関する文法定義が非常に醜い。 +.SH 著者 .\" Sigh... The page license means we must have the author's name .\" in the formatted output. -¤³¤Î¥Ú¡¼¥¸¤Ï Henry Spencer ¤Î regex ¥Ñ¥Ã¥±¡¼¥¸¤«¤éºÎÏ¿¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +このページは Henry Spencer の regex パッケージから採録したものである。 +.SH 関連項目 .BR grep (1), .BR regex (3) .PP diff --git a/release/man7/rtnetlink.7 b/release/man7/rtnetlink.7 index 8b02ef5d..5c62417d 100644 --- a/release/man7/rtnetlink.7 +++ b/release/man7/rtnetlink.7 @@ -12,14 +12,14 @@ .\" Japanese Version Copyright (c) 1999 NAKANO Takeo all rights reserved. .\" Translated Mon 6 Dec 1999 by NAKANO Takeo .\" -.\"WORD queueing dicipline ¥­¥å¡¼¥¤¥ó¥°(¤Î)¥ë¡¼¥ë -.\"WORD permanent ±Ê³Ū¤Ê -.\"WORD neighbor ¶á˵ +.\"WORD queueing dicipline キューイング(の)ルール +.\"WORD permanent 永続的な +.\"WORD neighbor 近傍 .\" .TH RTNETLINK 7 2008-08-08 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -rtnetlink, NETLINK_ROUTE \- Linux IPv4 ¥ë¡¼¥Æ¥£¥ó¥°¥½¥±¥Ã¥È -.SH ½ñ¼° +.SH 名前 +rtnetlink, NETLINK_ROUTE \- Linux IPv4 ルーティングソケット +.SH 書式 .B #include .br .B #include @@ -29,25 +29,25 @@ rtnetlink, NETLINK_ROUTE \- Linux IPv4 .B #include .sp .BI "rtnetlink_socket = socket(AF_NETLINK, int " socket_type ", NETLINK_ROUTE);" -.SH ÀâÌÀ +.SH 説明 .B rtnetlink -¤Ï¥«¡¼¥Í¥ë¤Î¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤òÆɤó¤À¤êÊѹ¹¤·¤¿¤ê -¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£¤³¤ì¤Ï¥«¡¼¥Í¥ë¤¬ÆâÉô¤Î¥µ¥Ö¥·¥¹¥Æ¥à¤È -ÄÌ¿®¤¹¤ë¤¿¤á¤Ë¤âÍѤ¤¤é¤ì¤Æ¤¤¤ë¤¬¡¢¤½¤ì¤Ï¤³¤³¤Ç¤Ïµ­½Ò¤·¤Ê¤¤¡£ -¤³¤Î man ¥Ú¡¼¥¸¤Ç¤Ï¥æ¡¼¥¶¡¼¶õ´Ö¤Î¥×¥í¥°¥é¥à¤È¤ÎÄÌ¿®¤Ë´Ø¤·¤Æ¤Î¤ß½Ò¤Ù¤ë¡£ -¥Í¥Ã¥È¥ï¡¼¥¯·ÐÏ©¡¦IP ¥¢¥É¥ì¥¹¡¦¥ê¥ó¥¯¥Ñ¥é¥á¡¼¥¿¡¦ -¶á˵ÀßÄê (neighbor setup)¡¦¥­¥å¡¼¥¤¥ó¥°¥ë¡¼¥ë (queueing dicipline)¡¦ -¥È¥é¥Õ¥£¥Ã¥¯¥¯¥é¥¹¡¦¥Ñ¥±¥Ã¥È¤Î¥¯¥é¥¹Ê¬Îà¤Ê¤É¤¬¡¢¤¹¤Ù¤Æ +はカーネルのルーティングテーブルを読んだり変更したり +するためのものである。これはカーネルが内部のサブシステムと +通信するためにも用いられているが、それはここでは記述しない。 +この man ページではユーザー空間のプログラムとの通信に関してのみ述べる。 +ネットワーク経路・IP アドレス・リンクパラメータ・ +近傍設定 (neighbor setup)・キューイングルール (queueing dicipline)・ +トラフィッククラス・パケットのクラス分類などが、すべて .B NETLINK_ROUTE -¥½¥±¥Ã¥È¤òÄ̤·¤ÆÀ©¸æ¤Ç¤­¤ë¡£ +ソケットを通して制御できる。 .B rtnetlink -¤Ï netlink ¥á¥Ã¥»¡¼¥¸¤ò¥Ù¡¼¥¹¤Ë¤·¤Æ¤¤¤ë¡£¾ÜºÙ¤Ï +は netlink メッセージをベースにしている。詳細は .BR netlink (7) -¤ò¸«¤ë¤³¤È¡£ +を見ること。 .\" FIXME ? all these macros could be moved to rtnetlink(3) -.SS ¥ë¡¼¥Æ¥£¥ó¥°Â°À­ -rtnetlink ¥á¥Ã¥»¡¼¥¸¤Ë¤Ï¡¢½é´ü¥Ø¥Ã¥À¤Î¸å¤ËÉÕ²ÃŪ¤Ê°À­¤ò -»ý¤Ä¤â¤Î¤¬¤¢¤ë¡£ +.SS ルーティング属性 +rtnetlink メッセージには、初期ヘッダの後に付加的な属性を +持つものがある。 .in +4n .nf @@ -59,21 +59,21 @@ struct rtattr { .fi .in -¤³¤ì¤é¤Î°À­¤ÎÁàºî¤Ï¡¢ RTA_* ¥Þ¥¯¥í¤« libnetlink ¤òÄ̤·¤Æ¤Î¤ß -¹Ô¤¦¤Ù¤­¤Ç¤¢¤ë¡£ +これらの属性の操作は、 RTA_* マクロか libnetlink を通してのみ +行うべきである。 .BR rtnetlink (3) -¤ò¸«¤è¡£ -.SS ¥á¥Ã¥»¡¼¥¸ -rtnetlink ¤Ï (ɸ½àŪ¤Ê netlink ¥á¥Ã¥»¡¼¥¸¤Ë²Ã¤¨¤Æ) -°Ê²¼¤Î¥á¥Ã¥»¡¼¥¸¥¿¥¤¥×¤«¤é¹½À®¤µ¤ì¤ë¡£ +を見よ。 +.SS メッセージ +rtnetlink は (標準的な netlink メッセージに加えて) +以下のメッセージタイプから構成される。 .TP .BR RTM_NEWLINK ", " RTM_DELLINK ", " RTM_GETLINK -»ØÄꤷ¤¿¥Í¥Ã¥È¥ï¡¼¥¯¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¾ðÊó¤ò¡¢À¸À®¡¦ºï½ü¡¦¼èÆÀ¤¹¤ë¡£ -¤³¤ì¤é¤Î¥á¥Ã¥»¡¼¥¸¤Ï +指定したネットワークインターフェースの情報を、生成・削除・取得する。 +これらのメッセージは .I ifinfomsg -¹½Â¤ÂΤȡ¢¤½¤ì¤Ë³¤¤¤Æ¤¤¤¯¤Ä¤«¤Î +構造体と、それに続いていくつかの .I rtattr -¹½Â¤ÂΤòȼ¤¦¡£ +構造体を伴う。 .nf struct ifinfomsg { @@ -87,50 +87,50 @@ struct ifinfomsg { .\" FIXME ifi_type .I ifi_flags -¤Ï¥Ç¥Ð¥¤¥¹¤Î¥Õ¥é¥°¤Ç¤¢¤ë¡£ +はデバイスのフラグである。 .BR netdevice (7) -¤ò¸«¤è¡£ +を見よ。 .I ifi_index -¤Ï¾¤È½Å¤Ê¤é¤Ê¤¤¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î index ¤Ç¤¢¤ë¡£ +は他と重ならないインターフェースの index である。 .I ifi_change -¤Ï¾­Íè¤ÎÍøÍѤΤ¿¤á¤ËͽÌ󤵤ì¤Æ¤ª¤ê¡¢¾ï¤Ë -0xFFFFFFFF ¤Ë¥»¥Ã¥È¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +は将来の利用のために予約されており、常に +0xFFFFFFFF にセットすべきである。 .TS tab(:); c l l l. -¥ë¡¼¥Æ¥£¥ó¥°Â°À­ -rta_type:Ãͤη¿:ÀâÌÀ +ルーティング属性 +rta_type:値の型:説明 _ -IFLA_UNSPEC:-:»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ +IFLA_UNSPEC:-:指定されていない。 IFLA_ADDRESS:hardware address:T{ -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ L2 ¥¢¥É¥ì¥¹ +インターフェース L2 アドレス T} IFLA_BROADCAST:hardware address:T{ -L2 ¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹ +L2 ブロードキャストアドレス T} -IFLA_IFNAME:asciiz string:¥Ç¥Ð¥¤¥¹Ì¾ -IFLA_MTU:unsigned int:¥Ç¥Ð¥¤¥¹¤Î MTU -IFLA_LINK:int:¥ê¥ó¥¯¥¿¥¤¥× -IFLA_QDISC:asciiz string:¥­¥å¡¼¥¤¥ó¥°¤Î¥ë¡¼¥ë +IFLA_IFNAME:asciiz string:デバイス名 +IFLA_MTU:unsigned int:デバイスの MTU +IFLA_LINK:int:リンクタイプ +IFLA_QDISC:asciiz string:キューイングのルール IFLA_STATS:T{ -²¼µ­»²¾È -T}:¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÎÅý·× +下記参照 +T}:インターフェースの統計 .TE .sp -IFLA_STATS ¤ÎÃͤη¿¤Ï \fIstruct net_device_stats\fP ¤Ç¤¢¤ë¡£ +IFLA_STATS の値の型は \fIstruct net_device_stats\fP である。 .TP .BR RTM_NEWADDR ", " RTM_DELADDR ", " RTM_GETADDR -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î IP ¥¢¥É¥ì¥¹¤Î¾ðÊó¤òÄɲᦺï½ü¡¦¼èÆÀ¤¹¤ë¡£ -Linux 2.2 ¤Ç¤Ï¡¢°ì¤Ä¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ËÊ£¿ô¤Î IP ¥¢¥É¥ì¥¹¤ò -ÊÝ»ý¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¡¢¤³¤ì¤Ï 2.0 ¤ÎÊÌ̾¥Ç¥Ð¥¤¥¹¤Î³µÇ°¤òÃÖ¤­´¹¤¨¤ë¡£ -Linux 2.2 ¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥á¥Ã¥»¡¼¥¸¤Ï -IPv4 ¤È IPv6 ¤ÎξÊý¤Î¥¢¥É¥ì¥¹¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Ï +インターフェースの IP アドレスの情報を追加・削除・取得する。 +Linux 2.2 では、一つのインターフェースに複数の IP アドレスを +保持させることができ、これは 2.0 の別名デバイスの概念を置き換える。 +Linux 2.2 では、これらのメッセージは +IPv4 と IPv6 の両方のアドレスをサポートしている。 +これらは .I ifaddrmsg -¹½Â¤ÂΤòȼ¤¦¡£¤½¤Î¤¢¤È¤Ë +構造体を伴う。そのあとに .I rtattr -¥ë¡¼¥Æ¥£¥ó¥°Â°À­¤¬Â³¤¯¤³¤È¤â¤¢¤ë¡£ +ルーティング属性が続くこともある。 .nf struct ifaddrmsg { @@ -143,60 +143,60 @@ struct ifaddrmsg { .fi .I ifa_family -¤Ï¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤Î¥¿¥¤¥×¤Ç¤¢¤ë (¸½ºß¤Ï +はアドレスファミリーのタイプである (現在は .B AF_INET -¤Þ¤¿¤Ï -.BR AF_INET6 )¡£ +または +.BR AF_INET6 )。 .I ifa_prefixlen -¤Ï¥¢¥É¥ì¥¹¤Î¥¢¥É¥ì¥¹¥Þ¥¹¥¯¤ÎŤµ¤Ç¤¢¤ë (IPv4 ¤Î¤è¤¦¤Ë¡¢ -¤½¤Î¥Õ¥¡¥ß¥ê¡¼¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç)¡£ +はアドレスのアドレスマスクの長さである (IPv4 のように、 +そのファミリーで定義されている場合)。 .I ifa_scope -¤Ï¥¢¥É¥ì¥¹¤Î¥¹¥³¡¼¥×¤Ç¤¢¤ë¡£ +はアドレスのスコープである。 .I ifa_index -¤Ï¥¢¥É¥ì¥¹¤¬´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î index ¤Ç¤¢¤ë¡£ +はアドレスが関連づけられているインターフェースの index である。 .I ifa_flags -¤Ï¥Õ¥é¥°¥ï¡¼¥É¤Ç¡¢ -Æó¤Ä¤á¤Î¥¢¥É¥ì¥¹ (¸Å¤¤ÊÌ̾¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹) ¤Î¾ì¹ç¤Ï +はフラグワードで、 +二つめのアドレス (古い別名インターフェース) の場合は .B IFA_F_SECONDARY -¤Ë¡¢±Ê³Ū¤Ê¥¢¥É¥ì¥¹¤Î¾ì¹ç¤Ï +に、永続的なアドレスの場合は .B IFA_F_PERMANENT -¤ËŬÍѤµ¤ì¤ë¡£¥æ¡¼¥¶¡¼¤Ë¤è¤Ã¤Æ¥»¥Ã¥È¤µ¤ì¤ë¥Õ¥é¥°¤È¡¢ -undocumented ¤Ê¥Õ¥é¥°¤¬¤¢¤ë¡£ +に適用される。ユーザーによってセットされるフラグと、 +undocumented なフラグがある。 .TS tab(:); c l l l. -°À­ -rta_type:Ãͤη¿:ÀâÌÀ +属性 +rta_type:値の型:説明 _ -IFA_UNSPEC:-:»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤ -IFA_ADDRESS:raw protocol address:¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹ -IFA_LOCAL:raw protocol address:¥í¡¼¥«¥ë¥¢¥É¥ì¥¹ -IFA_LABEL:asciiz string:¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î̾Á° -IFA_BROADCAST:raw protocol address:¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹ -IFA_ANYCAST:raw protocol address:anycast ¥¢¥É¥ì¥¹ -IFA_CACHEINFO:struct ifa_cacheinfo:¥¢¥É¥ì¥¹¾ðÊó +IFA_UNSPEC:-:指定されていない +IFA_ADDRESS:raw protocol address:インターフェースアドレス +IFA_LOCAL:raw protocol address:ローカルアドレス +IFA_LABEL:asciiz string:インターフェースの名前 +IFA_BROADCAST:raw protocol address:ブロードキャストアドレス +IFA_ANYCAST:raw protocol address:anycast アドレス +IFA_CACHEINFO:struct ifa_cacheinfo:アドレス情報 .TE .\" FIXME struct ifa_cacheinfo .TP .BR RTM_NEWROUTE ", " RTM_DELROUTE ", " RTM_GETROUTE -¥Í¥Ã¥È¥ï¡¼¥¯·ÐÏ©¤Î¾ðÊó¤òÀ¸À®¡¦ºï½ü¡¦¼èÆÀ¤¹¤ë¡£ -¤³¤ì¤é¤Î¥á¥Ã¥»¡¼¥¸¤Ï +ネットワーク経路の情報を生成・削除・取得する。 +これらのメッセージは .I rtmsg -¹½Â¤ÂΤòȼ¤¦¡£¤½¤Î¤¢¤È¤Ë¤¤¤¯¤Ä¤«¤Î +構造体を伴う。そのあとにいくつかの .I rtattr -¹½Â¤ÂΤò³¤±¤ë¤³¤È¤â¤Ç¤­¤ë¡£ +構造体を続けることもできる。 .B RTM_GETROUTE -¤Ç +で .I rtm_dst_len -¤È +と .I rtm_src_len -¤Ë 0 ¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢ -»ØÄꤵ¤ì¤¿¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤ÎÁ´¤Æ¤Î¥¨¥ó¥È¥ê¤ò½êÆÀ¤¹¤ë¡£ +に 0 をセットすると、 +指定されたルーティングテーブルの全てのエントリを所得する。 .I rtm_table -¤È +と .I rtm_protocol -°Ê³°¤Î¾¤Î¥Õ¥£¡¼¥ë¥É¤Ë 0 ¤òÆþ¤ì¤ë¤È¡¢¥ï¥¤¥ë¥É¥«¡¼¥É¤ò°ÕÌ£¤¹¤ë¡£ +以外の他のフィールドに 0 を入れると、ワイルドカードを意味する。 .nf struct rtmsg { @@ -216,131 +216,131 @@ struct rtmsg { .TS tab(:); l l. -rtm_type:·ÐÏ©¤Î¥¿¥¤¥× +rtm_type:経路のタイプ _ -RTN_UNSPEC:̤ÃΤηÐÏ© -RTN_UNICAST:¥²¡¼¥È¥¦¥§¥¤¤Þ¤¿¤Ï¥À¥¤¥ì¥¯¥È¤Ê·ÐÏ© -RTN_LOCAL:¥í¡¼¥«¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î·ÐÏ© +RTN_UNSPEC:未知の経路 +RTN_UNICAST:ゲートウェイまたはダイレクトな経路 +RTN_LOCAL:ローカルインターフェースの経路 RTN_BROADCAST:T{ -¥í¡¼¥«¥ë¤Ê¥Ö¥í¡¼¥É¥­¥ã¥¹¥È·ÐÏ© -(¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¤È¤·¤ÆÁ÷¿®¤µ¤ì¤ë) +ローカルなブロードキャスト経路 +(ブロードキャストとして送信される) T} RTN_ANYCAST:T{ -¥í¡¼¥«¥ë¤Ê¥Ö¥í¡¼¥É¥­¥ã¥¹¥È·ÐÏ© -(¥æ¥Ë¥­¥ã¥¹¥È¤È¤·¤ÆÁ÷¿®¤µ¤ì¤ë) +ローカルなブロードキャスト経路 +(ユニキャストとして送信される) T} -RTN_MULTICAST:¥Þ¥ë¥Á¥­¥ã¥¹¥È·ÐÏ© -RTN_BLACKHOLE:¥Ñ¥±¥Ã¥È¤ò¼Î¤Æ¤ë·ÐÏ© -RTN_UNREACHABLE:Åþã¤Ç¤­¤Ê¤¤¹Ô¤­Àè -RTN_PROHIBIT:¥Ñ¥±¥Ã¥È¤òµñÈݤ¹¤ë·ÐÏ© -RTN_THROW:·Ðϩõº÷¤òÊ̤Υơ¼¥Ö¥ë¤Ç·Ñ³ -RTN_NAT:¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤ÎÊÑ´¹¥ë¡¼¥ë +RTN_MULTICAST:マルチキャスト経路 +RTN_BLACKHOLE:パケットを捨てる経路 +RTN_UNREACHABLE:到達できない行き先 +RTN_PROHIBIT:パケットを拒否する経路 +RTN_THROW:経路探索を別のテーブルで継続 +RTN_NAT:ネットワークアドレスの変換ルール RTN_XRESOLVE:T{ -³°Éô¥ì¥¾¥ë¥Ð¤ò»²¾È (¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤) +外部レゾルバを参照 (実装されていない) T} .TE .TS tab(:); l l. -rtm_protocol:·ÐÏ©¤Î¾ðÊó¸» +rtm_protocol:経路の情報源 _ -RTPROT_UNSPEC:ÉÔÌÀ +RTPROT_UNSPEC:不明 RTPROT_REDIRECT:T{ -ICMP ¥ê¥À¥¤¥ì¥¯¥È¤Ë¤è¤ë (¸½ºß¤ÏÍѤ¤¤é¤ì¤Ê¤¤) +ICMP リダイレクトによる (現在は用いられない) T} -RTPROT_KERNEL:¥«¡¼¥Í¥ë¤Ë¤è¤ë -RTPROT_BOOT:¥Ö¡¼¥È»þ -RTPROT_STATIC:´ÉÍý¼Ô¤Ë¤è¤ë +RTPROT_KERNEL:カーネルによる +RTPROT_BOOT:ブート時 +RTPROT_STATIC:管理者による .TE .B RTPROT_STATIC -¤è¤ê¤âÂ礭¤ÊÃͤϥ«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ²ò¼á¤µ¤ì¤Ê¤¤¡£¤³¤ì¤Ï -ñ¤Ê¤ë¥æ¡¼¥¶¡¼¤Ø¤Î¾ðÊó¤Ç¤¢¤ë¡£¤³¤ì¤é¤Ï·ÐÏ©¾ðÊó¤Î¾ðÊ󸻤ò -¥¿¥°ÉÕ¤±¤·¤¿¤ê¡¢Ê£¿ô¤Î¥ë¡¼¥Æ¥£¥ó¥°¥Ç¡¼¥â¥ó¤«¤é¤Î¾ðÊó¤ò -¶èÊ̤¹¤ë¤¿¤á¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -´û¤Ë³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¥ë¡¼¥Æ¥£¥ó¥°¥Ç¡¼¥â¥ó¤Î¼±Ê̻ҤˤĤ¤¤Æ¤Ï +よりも大きな値はカーネルによって解釈されない。これは +単なるユーザーへの情報である。これらは経路情報の情報源を +タグ付けしたり、複数のルーティングデーモンからの情報を +区別するために用いることができる。 +既に割り当てられているルーティングデーモンの識別子については .I -¤ò¸«¤è¡£ +を見よ。 .I rtm_scope -¤Ï¹Ô¤­Àè¤Ø¤Îµ÷Î¥¤Ç¤¢¤ë¡£ +は行き先への距離である。 .TS tab(:); l l. -RT_SCOPE_UNIVERSE:¥°¥í¡¼¥Ð¥ë¤Ê·ÐÏ© +RT_SCOPE_UNIVERSE:グローバルな経路 RT_SCOPE_SITE:T{ -¥í¡¼¥«¥ë¤Ê¼«Î§¥·¥¹¥Æ¥à¤Ë¤ª¤±¤ëÆâÉô·ÐÏ© +ローカルな自律システムにおける内部経路 T} -RT_SCOPE_LINK:¤³¤Î¥ê¥ó¥¯¾å¤Î·ÐÏ© -RT_SCOPE_HOST:¥í¡¼¥«¥ë¥Û¥¹¥È¾å¤Î·ÐÏ© -RT_SCOPE_NOWHERE:¹Ô¤­À褬¸ºß¤·¤Ê¤¤ +RT_SCOPE_LINK:このリンク上の経路 +RT_SCOPE_HOST:ローカルホスト上の経路 +RT_SCOPE_NOWHERE:行き先が存在しない .TE -¥æ¡¼¥¶¡¼¤Ï +ユーザーは .B RT_SCOPE_UNIVERSE -¤È +と .B RT_SCOPE_SITE -¤Î´Ö¤ÎÃͤòÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +の間の値を用いることができる。 .I rtm_flags -¤Ï°Ê²¼¤Î°ÕÌ£¤ò»ý¤Ä: +は以下の意味を持つ: .TS tab(:); l l. RTM_F_NOTIFY:T{ -·ÐÏ©¤¬Êѹ¹¤µ¤ì¤ë¤È¡¢ rtnetlink ¤òÄ̤·¤Æ¥æ¡¼¥¶¡¼¤ËÄÌÃΤ¬¹Ô¤¯¡£ +経路が変更されると、 rtnetlink を通してユーザーに通知が行く。 T} -RTM_F_CLONED:·ÐÏ©¤Ï¾¤Î·ÐÏ©¤Ë¤è¤Ã¤ÆÊ£À½¤µ¤ì¤¿¡£ -RTM_F_EQUALIZE:¥Þ¥ë¥Á¥Ñ¥¹¥¤¥³¥é¥¤¥¶ (¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤) +RTM_F_CLONED:経路は他の経路によって複製された。 +RTM_F_EQUALIZE:マルチパスイコライザ (まだ実装されていない) .TE .I rtm_table -¤Ç¤Ï¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤ò»ØÄꤹ¤ë¡£ +ではルーティングテーブルを指定する。 .TS tab(:); l l. -RT_TABLE_UNSPEC:»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë -RT_TABLE_DEFAULT:¥Ç¥Õ¥©¥ë¥È¤Î¥Æ¡¼¥Ö¥ë -RT_TABLE_MAIN:¥á¥¤¥ó¤Î¥Æ¡¼¥Ö¥ë -RT_TABLE_LOCAL:¥í¡¼¥«¥ë¥Æ¡¼¥Ö¥ë +RT_TABLE_UNSPEC:指定されていないルーティングテーブル +RT_TABLE_DEFAULT:デフォルトのテーブル +RT_TABLE_MAIN:メインのテーブル +RT_TABLE_LOCAL:ローカルテーブル .TE -¥æ¡¼¥¶¡¼¤Ï +ユーザーは .B RT_TABLE_UNSPEC -¤È +と .BR RT_TABLE_DEFAULT . -¤Î´Ö¤ÎǤ°Õ¤ÎÃͤòÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +の間の任意の値を用いることができる。 .TS tab(:); c l l l. -°À­ -rta_type:Ãͤη¿:ÀâÌÀ +属性 +rta_type:値の型:説明 _ -RTA_UNSPEC:-:̵»ë¤µ¤ì¤ë -RTA_DST:protocol address:·ÐÏ©¤Î¹Ô¤­À襢¥É¥ì¥¹ -RTA_SRC:protocol address:·ÐÏ©¤Îȯ¿®¸µ¥¢¥É¥ì¥¹ -RTA_IIF:int:ÆþÎÏ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î index -RTA_OIF:int:½ÐÎÏ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î index -RTA_GATEWAY:protocol address:·ÐÏ©¤Î¥²¡¼¥È¥¦¥§¥¤ -RTA_PRIORITY:int:·ÐÏ©¤ÎÍ¥ÀèÅÙ +RTA_UNSPEC:-:無視される +RTA_DST:protocol address:経路の行き先アドレス +RTA_SRC:protocol address:経路の発信元アドレス +RTA_IIF:int:入力インターフェースの index +RTA_OIF:int:出力インターフェースの index +RTA_GATEWAY:protocol address:経路のゲートウェイ +RTA_PRIORITY:int:経路の優先度 RTA_PREFSRC:: -RTA_METRICS:int:·ÐÏ©¤Î¥á¥È¥ê¥Ã¥¯ +RTA_METRICS:int:経路のメトリック RTA_MULTIPATH:: RTA_PROTOINFO:: RTA_FLOW:: RTA_CACHEINFO:: .TE -.B (¤³¤ì¤é¤ÎÃͤòËä¤á¤ë¤³¤È!) +.B (これらの値を埋めること!) .TP .BR RTM_NEWNEIGH ", " RTM_DELNEIGH ", " RTM_GETNEIGH -¶á˵¥Æ¡¼¥Ö¥ë (neighbor table) ¤Î¥¨¥ó¥È¥ê -(Î㤨¤Ð ARP ¥¨¥ó¥È¥ê) ¤Î¾ðÊó¤òÄɲᦺï½ü¡¦¼èÆÀ¤¹¤ë¡£ -¤³¤Î¥á¥Ã¥»¡¼¥¸¤Ï +近傍テーブル (neighbor table) のエントリ +(例えば ARP エントリ) の情報を追加・削除・取得する。 +このメッセージは .I ndmsg -¹½Â¤ÂΤòȼ¤¦¡£ +構造体を伴う。 .nf struct ndmsg { @@ -360,62 +360,62 @@ struct nda_cacheinfo { .fi .I ndm_state -¤Ï°Ê²¼¤Î¾õÂ֤Υӥåȥޥ¹¥¯¤Ç¤¢¤ë: +は以下の状態のビットマスクである: .TS tab(:); l l. -NUD_INCOMPLETE:¸½ºß¥ì¥¾¥ë¥ÖÃæ¤Î¥­¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê -NUD_REACHABLE:Æ°ºî³ÎǧºÑ¤ß¤Î¥­¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê -NUD_STALE:´ü¸ÂÀÚ¤ì¤Î¥­¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê -NUD_DELAY:¥¿¥¤¥ÞÂÔ¤Á¤Î¥­¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê -NUD_PROBE:ºÆ³ÎǧÃæ¤Î¥­¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê -NUD_FAILED:ÉÔÀµ¤Ê¥­¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê -NUD_NOARP:¹Ô¤­À襭¥ã¥Ã¥·¥å¤Î¤Ê¤¤¥Ç¥Ð¥¤¥¹ -NUD_PERMANENT:ÀÅŪ¤Ê¥¨¥ó¥È¥ê +NUD_INCOMPLETE:現在レゾルブ中のキャッシュエントリ +NUD_REACHABLE:動作確認済みのキャッシュエントリ +NUD_STALE:期限切れのキャッシュエントリ +NUD_DELAY:タイマ待ちのキャッシュエントリ +NUD_PROBE:再確認中のキャッシュエントリ +NUD_FAILED:不正なキャッシュエントリ +NUD_NOARP:行き先キャッシュのないデバイス +NUD_PERMANENT:静的なエントリ .TE -Í­¸ú¤Ê +有効な .I ndm_flags -¤Ï°Ê²¼¤ÎÄ̤ê: +は以下の通り: .TS tab(:); l l. -NTF_PROXY:¥×¥í¥¯¥· arp ¥¨¥ó¥È¥ê -NTF_ROUTER:IPv6 ¥ë¡¼¥¿ +NTF_PROXY:プロクシ arp エントリ +NTF_ROUTER:IPv6 ルータ .TE .\" FIXME .\" document the members of the struct better .I rtattr -¹½Â¤ÂΤϡ¢ +構造体は、 .I rta_type -¥Õ¥£¡¼¥ë¥É¤Ë±þ¤¸¤Æ¤½¤ì¤¾¤ì°Ê²¼¤Î°ÕÌ£¤ò»ý¤Ä: +フィールドに応じてそれぞれ以下の意味を持つ: .TS tab(:); l l. -NDA_UNSPEC:̤ÃΤΥ¿¥¤¥× -NDA_DST:¶á˵¥­¥ã¥Ã¥·¥å¥Í¥Ã¥È¥ï¡¼¥¯ÁؤιԤ­À襢¥É¥ì¥¹ -NDA_LLADDR:¶á˵¥­¥ã¥Ã¥·¥å¥ê¥ó¥¯ÁؤΥ¢¥É¥ì¥¹ -NDA_CACHEINFO:¥­¥ã¥Ã¥·¥å¤ÎÅý·× +NDA_UNSPEC:未知のタイプ +NDA_DST:近傍キャッシュネットワーク層の行き先アドレス +NDA_LLADDR:近傍キャッシュリンク層のアドレス +NDA_CACHEINFO:キャッシュの統計 .TE .I rta_type -¥Õ¥£¡¼¥ë¥É¤¬ +フィールドが .B NDA_CACHEINFO -¤Î¾ì¹ç¤Ë¤Ï¡¢ +の場合には、 .I struct nda_cacheinfo -¥Ø¥Ã¥À¤¬Â³¤¯¡£ +ヘッダが続く。 .TP .BR RTM_NEWRULE ", " RTM_DELRULE ", " RTM_GETRULE -¥ë¡¼¥Æ¥£¥ó¥°¥ë¡¼¥ë¤òÄɲᦺï½ü¡¦¼èÆÀ¤¹¤ë¡£ +ルーティングルールを追加・削除・取得する。 .I struct rtmsg -¤òȼ¤¦¡£ +を伴う。 .TP .BR RTM_NEWQDISC ", " RTM_DELQDISC ", " RTM_GETQDISC -¥­¥å¡¼¥¤¥ó¥°¥ë¡¼¥ë¤òÄɲᦺï½ü¡¦¼èÆÀ¤¹¤ë¡£ -¤³¤Î¥á¥Ã¥»¡¼¥¸¤Ï +キューイングルールを追加・削除・取得する。 +このメッセージは .I struct tcmsg -¤òȼ¤¤¡¢¤Þ¤¿¤½¤Î¤¢¤È¤Ë°À­¤¬¤¤¤¯¤Ä¤«Â³¤¯¤³¤È¤â¤¢¤ë¡£ +を伴い、またそのあとに属性がいくつか続くこともある。 .nf struct tcmsg { @@ -430,37 +430,37 @@ struct tcmsg { tab(:); c l l l. -°À­ -rta_type:Ãͤη¿:ÀâÌÀ +属性 +rta_type:値の型:説明 _ -TCA_UNSPEC:-:»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤ -TCA_KIND:asciiz string:¥­¥å¡¼¥¤¥ó¥°¥ë¡¼¥ë¤Î̾Á° -TCA_OPTIONS:byte sequence:Qdisc ÆÃÍ­¤Î¥ª¥×¥·¥ç¥ó¤¬Â³¤¯ -TCA_STATS:struct tc_stats:Qdisc ¤ÎÅý·× -TCA_XSTATS:qdisc specific:¥â¥¸¥å¡¼¥ëÆÃÍ­¤ÎÅý·× -TCA_RATE:struct tc_estimator:¥ì¡¼¥ÈÀ©¸Â +TCA_UNSPEC:-:指定されていない +TCA_KIND:asciiz string:キューイングルールの名前 +TCA_OPTIONS:byte sequence:Qdisc 特有のオプションが続く +TCA_STATS:struct tc_stats:Qdisc の統計 +TCA_XSTATS:qdisc specific:モジュール特有の統計 +TCA_RATE:struct tc_estimator:レート制限 .TE -¤µ¤é¤Ë¡¢ qdisc ¥â¥¸¥å¡¼¥ëÆÃÍ­¤ÎÍÍ¡¹¤Ê°À­¤ò»ØÄê¤Ç¤­¤ë¡£ -¾ÜºÙ¤Ê¾ðÊó¤ÏŬÀڤʥ¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤ò¸«¤è¡£ +さらに、 qdisc モジュール特有の様々な属性を指定できる。 +詳細な情報は適切なインクルードファイルを見よ。 .TP .BR RTM_NEWTCLASS ", " RTM_DELTCLASS ", " RTM_GETTCLASS -¥È¥é¥Õ¥£¥Ã¥¯¥¯¥é¥¹¤òÄɲᦺï½ü¡¦¼èÆÀ¤¹¤ë¡£ -¤³¤ì¤é¤Î¥á¥Ã¥»¡¼¥¸¤Ï¡¢¾å½Ò¤Î +トラフィッククラスを追加・削除・取得する。 +これらのメッセージは、上述の .I struct tcmsg -¤òȼ¤¦¡£ +を伴う。 .TP .BR RTM_NEWTFILTER ", " RTM_DELTFILTER ", " RTM_GETTFILTER -¥È¥é¥Õ¥£¥Ã¥¯¥Õ¥£¥ë¥¿¡¼¤Î¾ðÊó¤òÄɲᦺï½ü¡¦¼èÆÀ¤¹¤ë¡£ -¤³¤ì¤é¤Î¥á¥Ã¥»¡¼¥¸¤Ï¡¢¾å½Ò¤Î +トラフィックフィルターの情報を追加・削除・取得する。 +これらのメッセージは、上述の .I struct tcmsg -¤òȼ¤¦¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +を伴う。 +.SH バージョン .B rtnetlink -¤Ï Linux 2.2 ¤Î¿·µ¡Ç½¤Ç¤¢¤ë¡£ -.SH ¥Ð¥° -¤³¤Î man ¥Ú¡¼¥¸¤ÏÉÔ´°Á´¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +は Linux 2.2 の新機能である。 +.SH バグ +この man ページは不完全である。 +.SH 関連項目 .BR cmsg (3), .BR rtnetlink (3), .BR ip (7), diff --git a/release/man7/sem_overview.7 b/release/man7/sem_overview.7 index 25d0900c..e09884c2 100644 --- a/release/man7/sem_overview.7 +++ b/release/man7/sem_overview.7 @@ -29,36 +29,36 @@ .\" Updated 2009-02-23, Akihiro MOTOKI, LDP v3.19 .\" .TH SEM_OVERVIEW 7 2010-05-22 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -sem_overview \- POSIX ¥»¥Þ¥Õ¥©¤Î³µÍ× -.SH ÀâÌÀ -POSIX ¥»¥Þ¥Õ¥©¤ò»ÈÍѤ¹¤ë¤È¡¢¥×¥í¥»¥¹¤ä¥¹¥ì¥Ã¥É´Ö¤Ç¤½¤ÎÆ°ºî¤ò -Ʊ´ü¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +.SH 名前 +sem_overview \- POSIX セマフォの概要 +.SH 説明 +POSIX セマフォを使用すると、プロセスやスレッド間でその動作を +同期させることができる。 -¥»¥Þ¥Õ¥©¤ÏÀ°¿ô¤Ç¤¢¤ê¡¢¤½¤ÎÃͤϷ褷¤Æ 0 ̤Ëþ¤Ë¤Ê¤ë¤³¤È¤Ïµö¤µ¤ì¤Ê¤¤¡£ -¥»¥Þ¥Õ¥©¤ËÂФ·¤Æ¤Ç¤­¤ëÁàºî¤Ï 2 ¤Ä¤Ç¤¢¤ë: -¥»¥Þ¥Õ¥©Ãͤò 1 Áý¤ä¤¹ +セマフォは整数であり、その値は決して 0 未満になることは許されない。 +セマフォに対してできる操作は 2 つである: +セマフォ値を 1 増やす .RB ( sem_post (3)); -¥»¥Þ¥Õ¥©Ãͤò 1 ¸º¤é¤¹ -.RB ( sem_wait (3))¡£ -¥»¥Þ¥Õ¥©¤ÎÃͤ¬¤¹¤Ç¤Ë 0 ¤Î¾ì¹ç¡¢¥»¥Þ¥Õ¥©Ãͤ¬ 0 ¤è¤êÂ礭¤¯¤Ê¤ë¤Þ¤Ç +セマフォ値を 1 減らす +.RB ( sem_wait (3))。 +セマフォの値がすでに 0 の場合、セマフォ値が 0 より大きくなるまで .BR sem_wait (3) -Áàºî¤ÏÄä»ß (block) ¤¹¤ë¡£ +操作は停止 (block) する。 -POSIX ¥»¥Þ¥Õ¥©¤Ë¤Ï¡¢Ì¾Á°ÉÕ¤­¥»¥Þ¥Õ¥© (named semaphore) ¤È -̾Á°¤Ê¤·¥»¥Þ¥Õ¥© (unnamed semaphore) ¤Î 2¤Ä¤Î·Á¤¬¤¢¤ë¡£ +POSIX セマフォには、名前付きセマフォ (named semaphore) と +名前なしセマフォ (unnamed semaphore) の 2つの形がある。 .TP -.B ̾Á°ÉÕ¤­¥»¥Þ¥Õ¥© -̾Á°ÉÕ¤­¥»¥Þ¥Õ¥©¤Ï +.B 名前付きセマフォ +名前付きセマフォは .I /somename -¤È¤¤¤¦·Á¼°¤Î̾Á°¤Ç¼±Ê̤µ¤ì¤ë¡£ -¤½¤Î̾Á°¤Ï¡¢ºÇÂç¤Ç +という形式の名前で識別される。 +その名前は、最大で .BI NAME_MAX \-4 -(¤¹¤Ê¤ï¤Á 251) ʸ»ú¤Î NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ç¡¢ +(すなわち 251) 文字の NULL 終端された文字列で、 .\" glibc allows the initial slash to be omitted, and makes .\" multiple initial slashes equivalent to a single slash. .\" This differs from the implementation of POSIX message queues. -¥¹¥é¥Ã¥·¥å¤Ç»Ï¤Þ¤ê¡¢¥¹¥é¥Ã¥·¥å°Ê³°¤Îʸ»ú¤¬ 1 ʸ»ú°Ê¾å³¤¯·Á¼°¤Ç¤¢¤ë¡£ +スラッシュで始まり、スラッシュ以外の文字が 1 文字以上続く形式である。 .\" glibc allows subdirectory components in the name, in which .\" case the subdirectory tree must exist under /dev/shm, and .\" the fist subdirectory component must exist as the name @@ -66,102 +66,102 @@ POSIX .\" required permissions if a user wants to create a semaphore .\" object in a subdirectory. .BR sem_open (3) -¤ËƱ¤¸Ì¾Á°¤òÅϤ¹¤³¤È¤Ë¤è¤ê¡¢2 ¤Ä¤Î¥×¥í¥»¥¹´Ö¤ÇƱ¤¸Ì¾Á°¤Î¥»¥Þ¥Õ¥© -¤ËÂФ·Áàºî¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +に同じ名前を渡すことにより、2 つのプロセス間で同じ名前のセマフォ +に対し操作を行うことができる。 .BR sem_open (3) -´Ø¿ô¤Ï¡¢¿·¤·¤¤Ì¾Á°ÉÕ¤­¥»¥Þ¥Õ¥©¤òºîÀ®¤¹¤ë¤«¡¢´û¤Ë¸ºß¤¹¤ë̾Á°ÉÕ¤­ -¥»¥Þ¥Õ¥©¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£ -¥»¥Þ¥Õ¥©¤ò¥ª¡¼¥×¥ó¤·¤¿¸å¤Ï¡¢ +関数は、新しい名前付きセマフォを作成するか、既に存在する名前付き +セマフォをオープンする。 +セマフォをオープンした後は、 .BR sem_post (3) -¤È +と .BR sem_wait (3) -¤ò»È¤Ã¤Æ¥»¥Þ¥Õ¥©¤òÁàºî¤Ç¤­¤ë¡£ -¥×¥í¥»¥¹¤¬¥»¥Þ¥Õ¥©¤Î»ÈÍѤò½ª¤¨¤¿ºÝ¤Ï¡¢ +を使ってセマフォを操作できる。 +プロセスがセマフォの使用を終えた際は、 .BR sem_close (3) -¤ò»È¤Ã¤Æ¥»¥Þ¥Õ¥©¤ò¥¯¥í¡¼¥º¤Ç¤­¤ë¡£ -¤¢¤ë¥»¥Þ¥Õ¥©¤ò¤É¤Î¥×¥í¥»¥¹¤â»ÈÍѤ·¤Ê¤¯¤Ê¤ë¤È¡¢ +を使ってセマフォをクローズできる。 +あるセマフォをどのプロセスも使用しなくなると、 .BR sem_unlink (3) -¤ò»È¤Ã¤Æ¤½¤Î¥»¥Þ¥Õ¥©¤ò¥·¥¹¥Æ¥à¤«¤éºï½ü¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使ってそのセマフォをシステムから削除することができる。 .TP -.B ̾Á°¤Ê¤·¥»¥Þ¥Õ¥© (¥á¥â¥ê¥Ù¡¼¥¹¡¦¥»¥Þ¥Õ¥©) -̾Á°¤Ê¤·¥»¥Þ¥Õ¥©¤Ï̾Á°¤ò»ý¤¿¤Ê¤¤¡£¤½¤ÎÂå¤ï¤ê¡¢¥»¥Þ¥Õ¥©¤Ï¡¢ -Ê£¿ô¥¹¥ì¥Ã¥É´Ö¤Ç¶¦Í­¤µ¤ì¤ë¥á¥â¥êÎΰ衢¤â¤·¤¯¤ÏÊ£¿ô¥×¥í¥»¥¹´Ö¤Ç -¶¦Í­¤µ¤ì¤¿¥á¥â¥êÎΰè¤ËÃÖ¤«¤ì¤ë (Á°¼Ô¤ò -.IR "¥¹¥ì¥Ã¥É¶¦Í­¥»¥Þ¥Õ¥© (thread-shared semaphore)" ¡¢ -¸å¼Ô¤ò -.IR "¥×¥í¥»¥¹¶¦Í­¥»¥Þ¥Õ¥© (process-shared semaphore)" -¤È¸Æ¤Ö)¡£¥¹¥ì¥Ã¥É¶¦Í­¥»¥Þ¥Õ¥©¤Ï¡¢Æ±¤¸¥×¥í¥»¥¹Æâ¤Î¥¹¥ì¥Ã¥É´Ö¤Ç¶¦Í­¤µ¤ì¤ë -¥á¥â¥êÎΰ衢Î㤨¤ÐÂç°èÊÑ¿ô (global variable) ¤ËÇÛÃÖ¤µ¤ì¤ë¡£ -¥×¥í¥»¥¹¶¦Í­¥»¥Þ¥Õ¥©¤Ï¡¢¶¦Í­¥á¥â¥êÎΰè (Î㤨¤Ð¡¢ +.B 名前なしセマフォ (メモリベース・セマフォ) +名前なしセマフォは名前を持たない。その代わり、セマフォは、 +複数スレッド間で共有されるメモリ領域、もしくは複数プロセス間で +共有されたメモリ領域に置かれる (前者を +.IR "スレッド共有セマフォ (thread-shared semaphore)" 、 +後者を +.IR "プロセス共有セマフォ (process-shared semaphore)" +と呼ぶ)。スレッド共有セマフォは、同じプロセス内のスレッド間で共有される +メモリ領域、例えば大域変数 (global variable) に配置される。 +プロセス共有セマフォは、共有メモリ領域 (例えば、 .BR shmget (2) -¤ò»È¤Ã¤ÆºîÀ®¤Ç¤­¤ë System V ¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ä +を使って作成できる System V 共有メモリ・セグメントや .BR shm_open (3) -¤ò»È¤Ã¤ÆºîÀ®¤Ç¤­¤ë POSIX ¶¦Í­¥á¥â¥ê¡¦¥ª¥Ö¥¸¥§¥¯¥È) -Æâ¤ËÇÛÃÖ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を使って作成できる POSIX 共有メモリ・オブジェクト) +内に配置しなければならない。 -̾Á°¤Ê¤·¥»¥Þ¥Õ¥©¤Ï¡¢»ÈÍѤ¹¤ëÁ°¤Ë +名前なしセマフォは、使用する前に .BR sem_init (3) -¤ò»È¤Ã¤Æ½é´ü²½¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥»¥Þ¥Õ¥©¤Ï +を使って初期化しなければならない。 +セマフォは .BR sem_post (3) -¤È +と .BR sem_wait (3) -¤ò»È¤Ã¤ÆÁàºî¤Ç¤­¤ë¡£ -¥»¥Þ¥Õ¥©¤¬¤â¤Ï¤äɬÍפʤ¯¤Ê¤Ã¤¿¤È¤­¤ä¡¢ -¥»¥Þ¥Õ¥©¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¥á¥â¥ê¤ò²òÊü¤¹¤ëÁ°¤Ë¤Ï¡¢ +を使って操作できる。 +セマフォがもはや必要なくなったときや、 +セマフォが置かれているメモリを解放する前には、 .BR sem_destroy (3) -¤ò»È¤Ã¤Æ¥»¥Þ¥Õ¥©¤òÇË´þ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +を使ってセマフォを破棄すべきである。 .PP -¤³¤ÎÀá¤Î»Ä¤ê¤Ç¤Ï¡¢POSIX ¥»¥Þ¥Õ¥©¤Î Linux ¤Î¼ÂÁõ¤Î¾ÜºÙ -¤Ë¤Ä¤¤¤ÆÀâÌÀ¤¹¤ë¡£ -.SS ¥Ð¡¼¥¸¥ç¥ó -¥Ð¡¼¥¸¥ç¥ó 2.6 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢Linux ¤Ï -̾Á°¤Ê¤·¤Î¥¹¥ì¥Ã¥É¶¦Í­¥»¥Þ¥Õ¥©¤Î¤ß¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤¿¡£ -Linux 2.6 ¤È NPTL ¥¹¥ì¥Ã¥É¼ÂÁõ¤òÄ󶡤·¤Æ¤¤¤ë glibc ¤¬Æþ¤Ã¤¿ -¥·¥¹¥Æ¥à¤Ç¤Ï¡¢POSIX ¥»¥Þ¥Õ¥©¤Î´°Á´¤Ê¼ÂÁõ¤¬Ä󶡤µ¤ì¤ë¡£ -.SS »ý³À­ -POSIX ̾Á°ÉÕ¤­¥»¥Þ¥Õ¥©¤Ï¥«¡¼¥Í¥ëÆâ¤ÇÊÝ»ý¤µ¤ì¤ë¡£ +この節の残りでは、POSIX セマフォの Linux の実装の詳細 +について説明する。 +.SS バージョン +バージョン 2.6 より前のカーネルでは、Linux は +名前なしのスレッド共有セマフォのみをサポートしていた。 +Linux 2.6 と NPTL スレッド実装を提供している glibc が入った +システムでは、POSIX セマフォの完全な実装が提供される。 +.SS 持続性 +POSIX 名前付きセマフォはカーネル内で保持される。 .BR sem_unlink (3) -¤Çºï½ü¤µ¤ì¤Ê¤±¤ì¤Ð¡¢¥»¥Þ¥Õ¥©¤Ï -¥·¥¹¥Æ¥à¤¬¥·¥ã¥Ã¥È¥À¥¦¥ó¤µ¤ì¤ë¤Þ¤Ç¸ºß¤·Â³¤±¤ë¡£ -.SS ¥ê¥ó¥¯ -POSIX ¥»¥Þ¥Õ¥© API ¤ò»ÈÍѤ·¤¿¥×¥í¥°¥é¥à¤Ï +で削除されなければ、セマフォは +システムがシャットダウンされるまで存在し続ける。 +.SS リンク +POSIX セマフォ API を使用したプログラムは .I cc \-lrt -¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¡¢¥ê¥¢¥ë¥¿¥¤¥à¥é¥¤¥Ö¥é¥ê +でコンパイルし、リアルタイムライブラリ .I librt -¤È¥ê¥ó¥¯¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SS ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à·Ðͳ¤Ç¤Î̾Á°ÉÕ¤­¥»¥Þ¥Õ¥©¤Ø¤Î¥¢¥¯¥»¥¹ -Linux ¤Ç¤Ï¡¢Ì¾Á°ÉÕ¤­¥»¥Þ¥Õ¥©¤Ï²¾ÁÛ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -(virtual file system) Æâ¤Ë +とリンクしなければならない。 +.SS ファイルシステム経由での名前付きセマフォへのアクセス +Linux では、名前付きセマフォは仮想ファイルシステム +(virtual file system) 内に .I \fBsem.\fPsomename -¤È¤¤¤¦·Á¤Î̾Á°¤ÇºîÀ®¤µ¤ì¤ë¡£²¾ÁÛ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÏÄ̾ï +という形の名前で作成される。仮想ファイルシステムは通常 .I /dev/shm -°Ê²¼¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤ë¡£ -(¤³¤ì¤¬¡¢¥»¥Þ¥Õ¥©¤Î̾Á°¤Îʸ»ú¿ô¤Î¾å¸Â¤¬ +以下にマウントされる。 +(これが、セマフォの名前の文字数の上限が .B NAME_MAX -¤Ç¤Ï¤Ê¤¯ +ではなく .BI NAME_MAX \-4 -¤È¤Ê¤Ã¤Æ¤¤¤ëÍýͳ¤Ç¤¢¤ë¡£) +となっている理由である。) -Linux 2.6.19 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¥Ç¥£¥ì¥¯¥È¥êÇÛ²¼¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ ACL ¤ò -ÀßÄê¤Ç¤­¡¢¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Îµö²Ä¤ò¥æ¡¼¥¶Ã±°Ì¡¢¥°¥ë¡¼¥×ñ°Ì¤ÇÀ©¸æ¤¹¤ë¤³¤È¤¬ -¤Ç¤­¤ë¡£ -.SH ½àµò +Linux 2.6.19 以降では、このディレクトリ配下のファイルに対して ACL を +設定でき、オブジェクトへの許可をユーザ単位、グループ単位で制御することが +できる。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ -System V ¥»¥Þ¥Õ¥© +.SH 注意 +System V セマフォ .RB ( semget (2), .BR semop (2) -¤Ê¤É) ¤Ï¸Å¤¤¥»¥Þ¥Õ¥© API ¤Ç¤¢¤ë¡£ POSIX ¥»¥Þ¥Õ¥©¤Ï System V ¤è¤ê¤â -´Êñ¤Ç¡¢¤¦¤Þ¤¯À߷פµ¤ì¤¿¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤·¤Æ¤¤¤ë¡£ -°ìÊý¤Ç¡¢POSIX ¥»¥Þ¥Õ¥©¤Ï System V ¥»¥Þ¥Õ¥©¤ÈÈæ¤Ù¤ë¤È -ÍøÍѤǤ­¤ë¥·¥¹¥Æ¥à¤¬¾¯¤Ê¤¤ (Æäˡ¢¸Å¤¤¥·¥¹¥Æ¥à¤Ç¤Ï¾¯¤Ê¤¤)¡£ -.SH Îã -³Æ¼ï¤Î POSIX ¥»¥Þ¥Õ¥©´Ø¿ô¤ò»ÈÍѤ·¤¿Î㤬 +など) は古いセマフォ API である。 POSIX セマフォは System V よりも +簡単で、うまく設計されたインタフェースを提供している。 +一方で、POSIX セマフォは System V セマフォと比べると +利用できるシステムが少ない (特に、古いシステムでは少ない)。 +.SH 例 +各種の POSIX セマフォ関数を使用した例が .BR sem_wait (3) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +に記載されている。 +.SH 関連項目 .BR sem_close (3), .BR sem_destroy (3), .BR sem_getvalue (3), diff --git a/release/man7/shm_overview.7 b/release/man7/shm_overview.7 index b5124831..5d88205d 100644 --- a/release/man7/shm_overview.7 +++ b/release/man7/shm_overview.7 @@ -29,96 +29,96 @@ .\" Translated 2008-08-21, Akihiro MOTOKI , LDP v3.04 .\" .TH SHM_OVERVIEW 7 2010-09-10 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -shm_overview \- POSIX ¶¦Í­¥á¥â¥ê¤Î³µÍ× -.SH ÀâÌÀ -POSIX ¶¦Í­¥á¥â¥ê API ¤ò»ÈÍѤ¹¤ë¤È¡¢¥á¥â¥ê¤Î¤¢¤ëÎΰè¤ò¶¦Í­¤·¤Æ¡¢ -¥×¥í¥»¥¹´Ö¤Ç¾ðÊó¤ò¤ä¤ê¼è¤ê¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +.SH 名前 +shm_overview \- POSIX 共有メモリの概要 +.SH 説明 +POSIX 共有メモリ API を使用すると、メモリのある領域を共有して、 +プロセス間で情報をやり取りすることができる。 -¤³¤Î API ¤Ç¤Ï°Ê²¼¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ºÎÍѤµ¤ì¤Æ¤¤¤ë¡£ +この API では以下のインターフェースが採用されている。 .TP 15 .BR shm_open (3) -¿·¤·¤¤¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤·¥ª¡¼¥×¥ó¤¹¤ë¡¢¤â¤·¤¯¤Ï -´û¸¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£¤³¤ì¤Ï +新しいオブジェクトを生成しオープンする、もしくは +既存のオブジェクトをオープンする。これは .BR open (2) -¤ÈƱ¤¸¤Ç¤¢¤ë¡£²¼µ­¤Ë¤¢¤ë¾¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç»ÈÍѤ¹¤ë -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ +と同じである。下記にある他のインターフェースで使用する +ファイルディスクリプタを返す。 .TP .BR ftruncate (2) -¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È¤ÎÂ礭¤µ¤òÀßÄꤹ¤ë¡£ +共有メモリオブジェクトの大きさを設定する。 .TP .BR mmap (2) -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î²¾ÁÛ¥¢¥É¥ì¥¹¶õ´Ö¤Ë¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È¤ò -¥Þ¥Ã¥×¤¹¤ë¡£ +呼び出したプロセスの仮想アドレス空間に共有メモリオブジェクトを +マップする。 .TP .BR munmap (2) -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î²¾ÁÛ¥¢¥É¥ì¥¹¶õ´Ö¤«¤é -¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È¤ò¥¢¥ó¥Þ¥Ã¥×¤¹¤ë¡£ +呼び出したプロセスの仮想アドレス空間から +共有メモリオブジェクトをアンマップする。 .TP .BR shm_unlink (3) -¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È̾¤òºï½ü¤¹¤ë¡£ +共有メモリオブジェクト名を削除する。 .TP .BR close (2) .BR shm_open (3) -¤Ç³ä¤êÅö¤Æ¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÉÔÍפˤʤ俺ݤˡ¢ -¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +で割り当てられたファイルディスクリプタが不要になった際に、 +そのファイルディスクリプタをクローズする。 .TP .BR fstat (2) -¤½¤Î¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤¬Æþ¤Ã¤¿ +その共有メモリオブジェクトについての情報が入った .I stat -¹½Â¤ÂΤò¼èÆÀ¤¹¤ë¡£ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ÊÖ¤¹¾ðÊó¤Ë¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¤Î¥µ¥¤¥º -.RI ( st_size )¡¢ -µö²Ä°À­ -.RI ( st_mode )¡¢ -½êÍ­¼Ô -.RI ( st_uid )¡¢ -¥°¥ë¡¼¥× +構造体を取得する。 +このシステムコールが返す情報には、オブジェクトのサイズ +.RI ( st_size )、 +許可属性 +.RI ( st_mode )、 +所有者 +.RI ( st_uid )、 +グループ .RI ( st_gid ) -¤¬¤¢¤ë¡£ +がある。 .TP .BR fchown (2) -¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È¤Î½êÍ­¸¢¤òÊѹ¹¤¹¤ë¡£ +共有メモリオブジェクトの所有権を変更する。 .TP .BR fchmod (2) -¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È¤Îµö²Ä°À­¤òÊѹ¹¤¹¤ë¡£ -.SS ¥Ð¡¼¥¸¥ç¥ó -POSIX ¶¦Í­¥á¥â¥ê¤Ï Linux 2.4 ¤È glibc 2.2 °Ê¹ß¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -.SS »ý³À­ -POSIX ¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È¤Ï¥«¡¼¥Í¥ëÆâ¤ÇÊÝ»ý¤µ¤ì¤ë¡£ -¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢¥·¥¹¥Æ¥à¤¬¥·¥ã¥Ã¥È¥À¥¦¥ó¤µ¤ì¤ë¤«¡¢ -Á´¤Æ¤Î¥×¥í¥»¥¹¤¬¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò¥¢¥ó¥Þ¥Ã¥×¤·¡¢ +共有メモリオブジェクトの許可属性を変更する。 +.SS バージョン +POSIX 共有メモリは Linux 2.4 と glibc 2.2 以降でサポートされている。 +.SS 持続性 +POSIX 共有メモリオブジェクトはカーネル内で保持される。 +共有メモリオブジェクトは、システムがシャットダウンされるか、 +全てのプロセスがそのオブジェクトをアンマップし、 .BR shm_unlink (3) -¤Çºï½ü¤µ¤ì¤ë¤Þ¤Ç¡¢Â¸ºß¤·Â³¤±¤ë¡£ -.SS ¥ê¥ó¥¯ -POSIX ¶¦Í­¥á¥â¥ê API ¤ò»ÈÍѤ·¤¿¥×¥í¥°¥é¥à¤Ï +で削除されるまで、存在し続ける。 +.SS リンク +POSIX 共有メモリ API を使用したプログラムは .I cc \-lrt -¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¡¢¥ê¥¢¥ë¥¿¥¤¥à¥é¥¤¥Ö¥é¥ê +でコンパイルし、リアルタイムライブラリ .I librt -¤È¥ê¥ó¥¯¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SS ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à·Ðͳ¤Ç¤Î¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î¥¢¥¯¥»¥¹ -Linux ¤Ç¤Ï¡¢¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È¤ÏÄ̾ï +とリンクしなければならない。 +.SS ファイルシステム経由での共有メモリオブジェクトへのアクセス +Linux では、共有メモリオブジェクトは通常 .I /dev/shm -°Ê²¼¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤ë²¾ÁÛ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à +以下にマウントされる仮想ファイルシステム .RI ( tmpfs ) -Æâ¤ËºîÀ®¤µ¤ì¤ë¡£ -¥«¡¼¥Í¥ë 2.6.19 °Ê¹ß¤Î Linux ¤Ç¤Ï¡¢ -²¾ÁÛ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÆâ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Îµö²Ä°À­¤ÎÀ©¸æ¤Ë¡¢ -¥¢¥¯¥»¥¹À©¸æ¥ê¥¹¥È (ACL; access control lists) ¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -.SH ½àµò +内に作成される。 +カーネル 2.6.19 以降の Linux では、 +仮想ファイルシステム内のオブジェクトの許可属性の制御に、 +アクセス制御リスト (ACL; access control lists) を使うことができる。 +.SH 準拠 POSIX.1-2001. -.SH Ãí°Õ -Ä̾ï¤Ï¡¢¶¦Í­¥á¥â¥ê¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¯¥»¥¹¤¹¤ë¥×¥í¥»¥¹¤Ï¡¢ -POSIX ¥»¥Þ¥Õ¥©¤Ê¤É¤ò»È¤Ã¤Æ¥×¥í¥»¥¹´Ö¤ÇƱ´ü¤ò¤È¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +.SH 注意 +通常は、共有メモリオブジェクトにアクセスするプロセスは、 +POSIX セマフォなどを使ってプロセス間で同期をとらなければならない。 -System V ¶¦Í­¥á¥â¥ê +System V 共有メモリ .RB ( shmget (2), .BR shmop (2) -¤Ê¤É) ¤Ï¸Å¤¤¶¦Í­¥á¥â¥ê API ¤Ç¤¢¤ë¡£ -POSIX ¶¦Í­¥á¥â¥ê¤Ï¡¢¤è¤ê´Êñ¤Ç¡¢¤¦¤Þ¤¯À߷פµ¤ì¤¿¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤·¤Æ¤¤¤ë¡£ -°ìÊý¤Ç¡¢POSIX ¶¦Í­¥á¥â¥ê¤Ï System V ¶¦Í­¥á¥â¥ê¤ÈÈæ¤Ù¤ë¤È -ÍøÍѤǤ­¤ë¥·¥¹¥Æ¥à¤¬¾¯¤Ê¤¤ (Æäˡ¢¸Å¤¤¥·¥¹¥Æ¥à¤Ç¤Ï¾¯¤Ê¤¤)¡£ -.SH ´ØÏ¢¹àÌÜ +など) は古い共有メモリ API である。 +POSIX 共有メモリは、より簡単で、うまく設計されたインタフェースを提供している。 +一方で、POSIX 共有メモリは System V 共有メモリと比べると +利用できるシステムが少ない (特に、古いシステムでは少ない)。 +.SH 関連項目 .BR fchmod (2), .BR fchown (2), .BR fstat (2), diff --git a/release/man7/signal.7 b/release/man7/signal.7 index f49a4ee0..6926b40e 100644 --- a/release/man7/signal.7 +++ b/release/man7/signal.7 @@ -57,430 +57,430 @@ .\" Updated 2008-11-21, Akihiro MOTOKI , LDP v3.13 .\" Updated 2010-04-10, Akihiro MOTOKI , LDP v3.24 .\" -.\"WORD: disposition ½èÍýÊýË¡ -.\"WORD: pending ½èÍýÂÔ¤Á -.\"WORD: signal handler ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é +.\"WORD: disposition 処理方法 +.\"WORD: pending 処理待ち +.\"WORD: signal handler シグナルハンドラ .\" .TH SIGNAL 7 2011-09-18 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -signal \- ¥·¥°¥Ê¥ë¤Î³µÍ× -.SH ÀâÌÀ -Linux ¤Ï POSIX ¿®Íꥷ¥°¥Ê¥ë (reliable signal; °Ê¸å "ɸ½à¥·¥°¥Ê¥ë"¤Èɽµ­) -¤È POSIX ¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÎξÊý¤ËÂбþ¤·¤Æ¤¤¤ë¡£ -.SS ¥·¥°¥Ê¥ë½èÍýÊýË¡ -¥·¥°¥Ê¥ë¤Ï¤½¤ì¤¾¤ì¸½ºß¤Î¡Ö½èÍýÊýË¡ (disposition)¡×¤òÊÝ»ý¤·¤Æ¤ª¤ê¡¢ -¤³¤Î½èÍýÊýË¡¤Ë¤è¤ê¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤¿ºÝ¤Ë¥×¥í¥»¥¹¤¬ -¤É¤Î¤è¤¦¤Ê¿¶Éñ¤¤¤ò¤¹¤ë¤«¤¬·è¤Þ¤ë¡£ +.SH 名前 +signal \- シグナルの概要 +.SH 説明 +Linux は POSIX 信頼シグナル (reliable signal; 以後 "標準シグナル"と表記) +と POSIX リアルタイムシグナルの両方に対応している。 +.SS シグナル処理方法 +シグナルはそれぞれ現在の「処理方法 (disposition)」を保持しており、 +この処理方法によりシグナルが配送された際にプロセスが +どのような振舞いをするかが決まる。 -¸å½Ò¤Îɽ¤Î "Æ°ºî" ¤ÎÍó¤Î¥¨¥ó¥È¥ê¤Ï³Æ¥·¥°¥Ê¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤Î -½èÍýÊýË¡¤ò¼¨¤·¤Æ¤ª¤ê¡¢°Ê²¼¤Î¤è¤¦¤Ê°ÕÌ£¤ò»ý¤Ä¡£ +後述の表の "動作" の欄のエントリは各シグナルのデフォルトの +処理方法を示しており、以下のような意味を持つ。 .IP Term -¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¥×¥í¥»¥¹½ªÎ»¡£ +デフォルトの動作はプロセス終了。 .IP Ign -¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¤³¤Î¥·¥°¥Ê¥ë¤Î̵»ë¡£ +デフォルトの動作はこのシグナルの無視。 .IP Core -¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¥×¥í¥»¥¹½ªÎ»¤È¥³¥¢¥À¥ó¥×½ÐÎÏ +デフォルトの動作はプロセス終了とコアダンプ出力 .RB ( core (5) -»²¾È)¡£ +参照)。 .IP Stop -¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¥×¥í¥»¥¹¤Î°ì»þÄä»ß¡£ +デフォルトの動作はプロセスの一時停止。 .IP Cont -¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¡¢¥×¥í¥»¥¹¤¬Ää»ßÃæ¤Î¾ì¹ç¤Ë¤½¤Î¼Â¹Ô¤ÎºÆ³«¡£ +デフォルトの動作は、プロセスが停止中の場合にその実行の再開。 .PP -¥×¥í¥»¥¹¤Ï¡¢ +プロセスは、 .BR sigaction (2) -¤ä +や .BR signal (2) -¤ò»È¤Ã¤Æ¡¢¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë +を使って、シグナルの処理方法を変更することができる .RB ( signal (2) -¤ÎÊý¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄꤹ¤ëºÝ¤Î°Ü¿¢À­¤¬Ä㤤; -¾ÜºÙ¤Ï +の方がシグナルハンドラを設定する際の移植性が低い; +詳細は .BR signal (2) -¤ò»²¾È)¡£ -¥·¥°¥Ê¥ë¤ÎÇÛÁ÷»þ¤Ëµ¯¤³¤ëÆ°ºî¤È¤·¤Æ -¥×¥í¥»¥¹¤¬ÁªÂò¤Ç¤­¤ë¤Î¤Ï¡¢¼¡¤Î¤¤¤º¤ì¤«°ì¤Ä¤Ç¤¢¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤ò¼Â¹Ô¤¹¤ë¡¢¥·¥°¥Ê¥ë¤ò̵»ë¤¹¤ë¡¢ -.I "¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é (signal handler)" -¤Ç¥·¥°¥Ê¥ë¤òÊ᪤¹¤ë¡£¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤È¤Ï¡¢¥·¥°¥Ê¥ëÇÛÁ÷»þ¤Ë -¼«Æ°Åª¤Ëµ¯Æ°¤µ¤ì¤ë¥×¥í¥°¥é¥ÞÄêµÁ¤Î´Ø¿ô¤Ç¤¢¤ë¡£ -(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ÏÄ̾ï¤Î¥×¥í¥»¥¹¤Î¥¹¥¿¥Ã¥¯¾å¤Çµ¯Æ°¤µ¤ì¤ë¡£ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬ÂåÂØ¥¹¥¿¥Ã¥¯ (alternate stack) ¤ò»ÈÍѤ¹¤ë¤è¤¦¤ËÀßÄꤹ¤ë -¤³¤È¤â¤Ç¤­¤ë¡£ÂåÂØ¥¹¥¿¥Ã¥¯¤ò»ÈÍѤ¹¤ë¤è¤¦¤ËÀßÄꤹ¤ëÊýË¡¤È¡¢¤É¤Î¤è¤¦¤ÊºÝ¤Ë -ÂåÂØ¥¹¥¿¥Ã¥¯¤¬Ìò¤ËΩ¤Ä¤«¤Ë¤Ä¤¤¤Æ¤ÎµÄÏÀ¤Ë¤Ä¤¤¤Æ¤Ï +を参照)。 +シグナルの配送時に起こる動作として +プロセスが選択できるのは、次のいずれか一つである。 +デフォルトの動作を実行する、シグナルを無視する、 +.I "シグナルハンドラ (signal handler)" +でシグナルを捕捉する。シグナルハンドラとは、シグナル配送時に +自動的に起動されるプログラマ定義の関数である。 +(デフォルトでは、シグナルハンドラは通常のプロセスのスタック上で起動される。 +シグナルハンドラが代替スタック (alternate stack) を使用するように設定する +こともできる。代替スタックを使用するように設定する方法と、どのような際に +代替スタックが役に立つかについての議論については .BR sigaltstack (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 -¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤Ï¥×¥í¥»¥¹Ã±°Ì¤Î°À­¤Ç¤¢¤ë¡£ -¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢¤¢¤ë¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤Ï -Á´¤Æ¤Î¥¹¥ì¥Ã¥É¤ÇƱ¤¸¤Ç¤¢¤ë¡£ +シグナルの処理方法はプロセス単位の属性である。 +マルチスレッドのアプリケーションでは、あるシグナルの処理方法は +全てのスレッドで同じである。 .BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£ +で作成された子プロセスは親プロセスのシグナルの処理方法のコピーを継承する。 .BR execve (2) -¤Î´Ö¡¢¥Ï¥ó¥É¥é¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤Ï¥Ç¥Õ¥©¥ë¥È¤Ë¥ê¥»¥Ã¥È -¤µ¤ì¡¢Ìµ»ë¤È¤Ê¤Ã¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤ÏÊѹ¹¤µ¤ì¤º¤½¤Î¤Þ¤Þ¤È¤Ê¤ë¡£ -.SS ¥·¥°¥Ê¥ë¤ÎÁ÷¿® -°Ê²¼¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¥é¥¤¥Ö¥é¥ê´Ø¿ô¤ò»È¤Ã¤Æ¡¢ -¸Æ¤Ó½Ð¤·¼Ô¤Ï¥·¥°¥Ê¥ë¤òÁ÷¿®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +の間、ハンドラが登録されているシグナルの処理方法はデフォルトにリセット +され、無視となっているシグナルの処理方法は変更されずそのままとなる。 +.SS シグナルの送信 +以下のシステムコールとライブラリ関数を使って、 +呼び出し者はシグナルを送信することができる。 .TP 16 .BR raise (3) -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +呼び出したスレッドにシグナルを送る。 .TP .BR kill (2) -»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤ä¡¢»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÎÁ´¥á¥ó¥Ð¡¼¡¢ -¥·¥¹¥Æ¥à¤ÎÁ´¥×¥í¥»¥¹¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +指定されたプロセスや、指定されたプロセスグループの全メンバー、 +システムの全プロセスにシグナルを送る。 .TP .BR killpg (2) -»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÎÁ´¥á¥ó¥Ð¡¼¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +指定されたプロセスグループの全メンバーにシグナルを送る。 .TP .BR pthread_kill (3) -¸Æ¤Ó½Ð¤·¼Ô¤ÈƱ¤¸¥×¥í¥»¥¹Æâ¤Î»ØÄꤵ¤ì¤¿ POSIX ¥¹¥ì¥Ã¥É¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ +呼び出し者と同じプロセス内の指定された POSIX スレッドにシグナルを送る。 .TP .BR tgkill (2) -»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹Æâ¤Î»ØÄꤵ¤ì¤¿¥¹¥ì¥Ã¥É¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë -(¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤Æ +指定されたプロセス内の指定されたスレッドにシグナルを送る +(このシステムコールを使って .BR pthread_kill (3) -¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë)¡£ +は実装されている)。 .TP .BR sigqueue (3) -»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤ËÉÕ°¥Ç¡¼¥¿¤È¤È¤â¤Ë¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£ -.SS ¥·¥°¥Ê¥ë¤¬Ê᪤µ¤ì¤ë¤Î¤òÂÔ¤Ä -°Ê²¼¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤Æ¡¢¥·¥°¥Ê¥ë¤¬Ê᪤µ¤ì¤ë¤Þ¤Ç -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ä¥¹¥ì¥Ã¥É¤Î¼Â¹Ô¤òÃæÃÇ (suspend) ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë -(¥Ï¥ó¥É¥é¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¥·¥°¥Ê¥ë¤Ë¤è¤ê¤½¤Î¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿ -¾ì¹ç¤Ë¤â¼Â¹Ô¤ÎÄä»ß¤Ï½ªÎ»¤¹¤ë)¡£ +指定されたプロセスに付属データとともにリアルタイムシグナルを送る。 +.SS シグナルが捕捉されるのを待つ +以下のシステムコールを使って、シグナルが捕捉されるまで +呼び出したプロセスやスレッドの実行を中断 (suspend) することができる +(ハンドラが設定されていないシグナルによりそのプロセスが終了した +場合にも実行の停止は終了する)。 .TP 16 .BR pause (2) -²¿¤«¥·¥°¥Ê¥ë¤¬Ê᪤µ¤ì¤ë¤Þ¤Ç¼Â¹Ô¤òÄä»ß¤¹¤ë¡£ +何かシグナルが捕捉されるまで実行を停止する。 .TP .BR sigsuspend (2) -°ì»þŪ¤Ë¥·¥°¥Ê¥ë¥Þ¥¹¥¯ (²¼µ­»²¾È) ¤òÊѹ¹¤·¡¢ -¥Þ¥¹¥¯¤µ¤ì¤Æ¤¤¤Ê¤¤¥·¥°¥Ê¥ë¤Î¤¤¤º¤ì¤«¤¬Ê᪤µ¤ì¤ë¤Þ¤Ç -¼Â¹Ô¤òÃæÃǤ¹¤ë¡£ -.SS ¥·¥°¥Ê¥ë¤ÎƱ´ü¼õ¿® -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é·Ðͳ¤Ç¥·¥°¥Ê¥ë¤òÈóƱ´ü (asynchronously) ¤ÇÊ᪤¹¤ë°Ê³°¤Ë¤â¡¢ -¥·¥°¥Ê¥ë¤òƱ´ü (synchronously) ¤·¤Æ¼õ¤±ÉÕ¤±¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -Ʊ´ü¤·¤Æ¼õ¤±ÉÕ¤±¤ë¤È¤Ï¡¢¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ë¤Þ¤Ç¼Â¹Ô¤òÄä»ß (block) -¤¹¤ë¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£¥·¥°¥Ê¥ë¤ò¼õ¤±ÉÕ¤±¤¿ºÝ¤Ë¡¢¥«¡¼¥Í¥ë¤Ï -¤½¤Î¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤ò¸Æ¤Ó½Ð¤·¼Ô¤ËÊÖ¤¹¡£ -¤³¤ì¤ò¹Ô¤¦°ìÈÌŪ¤ÊÊýË¡¤¬Æó¤Ä¤¢¤ë¡£ +一時的にシグナルマスク (下記参照) を変更し、 +マスクされていないシグナルのいずれかが捕捉されるまで +実行を中断する。 +.SS シグナルの同期受信 +シグナルハンドラ経由でシグナルを非同期 (asynchronously) で捕捉する以外にも、 +シグナルを同期 (synchronously) して受け付けることもできる。 +同期して受け付けるとは、シグナルが配送されるまで実行を停止 (block) +するということである。シグナルを受け付けた際に、カーネルは +そのシグナルに関する情報を呼び出し者に返す。 +これを行う一般的な方法が二つある。 .IP * 2 .BR sigwaitinfo (2), .BR sigtimedwait (2), .BR sigwait (3) -¤Ï¡¢»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë½¸¹ç¤Î¥·¥°¥Ê¥ë¤Î°ì¤Ä¤¬ÇÛÁ÷¤µ¤ì¤ë¤Þ¤Ç¼Â¹Ô¤òÃæÃǤ¹¤ë¡£ -¤É¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä´Ø¿ô¤Ç¤â¡¢ÇÛÁ÷¤µ¤ì¤¿¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤¬ÊÖ¤µ¤ì¤ë¡£ +は、指定されたシグナル集合のシグナルの一つが配送されるまで実行を中断する。 +どのシステムコールや関数でも、配送されたシグナルに関する情報が返される。 .IP * .BR signalfd (2) -¤¬ÊÖ¤¹¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò»È¤¦¤È¡¢¸Æ¤Ó½Ð¤·¸µ¤ËÇÛÁ÷¤µ¤ì¤¿ -¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤òÆɤ߽Ф¹¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤é¤Î +が返すファイルディスクリプタを使うと、呼び出し元に配送された +シグナルに関する情報を読み出すことができる。 +このファイルディスクリプタからの .BR read (2) -¤Ï¡¢ +は、 .BR signalfd (2) -¤Î¸Æ¤Ó½Ð¤·»þ¤Ë»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë½¸¹ç¤Î¥·¥°¥Ê¥ë¤Î°ì¤Ä¤¬¸Æ¤Ó½Ð¤·¸µ¤Ë -ÇÛÁ÷¤µ¤ì¤ë¤Þ¤ÇÄä»ß (block) ¤¹¤ë¡£ +の呼び出し時に指定されたシグナル集合のシグナルの一つが呼び出し元に +配送されるまで停止 (block) する。 .BR read (2) -¤¬ÊÖ¤¹¥Ð¥Ã¥Õ¥¡¤Ë¤Ï¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤ò³ÊǼ¤·¤¿¹½Â¤ÂΤ¬Æþ¤Ã¤Æ¤¤¤ë¡£ -.SS ¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤È½èÍýÂÔ¤Á¥·¥°¥Ê¥ë -¥·¥°¥Ê¥ë¤Ï -.I "¥Ö¥í¥Ã¥¯ (block)" -¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¤È¡¢¤½¤Î¥·¥°¥Ê¥ë¤Ï -¤½¤Î¸å¥Ö¥í¥Ã¥¯¤ò²ò½ü¤µ¤ì¤ë¤Þ¤ÇÇÛÁ÷¤µ¤ì¤Ê¤¯¤Ê¤ë¡£ -¥·¥°¥Ê¥ë¤¬À¸À®¤µ¤ì¤Æ¤«¤éÇÛÁ÷¤µ¤ì¤ë¤Þ¤Ç¤Î´Ö¡¢¤½¤Î¥·¥°¥Ê¥ë¤Ï -.I "½èÍýÂÔ¤Á (pending)" -¤Ç¤¢¤ë¤È¸Æ¤Ð¤ì¤ë¡£ +が返すバッファにはシグナルに関する情報を格納した構造体が入っている。 +.SS シグナルマスクと処理待ちシグナル +シグナルは +.I "ブロック (block)" +されることがある。ブロックされると、そのシグナルは +その後ブロックを解除されるまで配送されなくなる。 +シグナルが生成されてから配送されるまでの間、そのシグナルは +.I "処理待ち (pending)" +であると呼ばれる。 -¥×¥í¥»¥¹Æâ¤Î³Æ¥¹¥ì¥Ã¥É¤Ï¡¢¤½¤ì¤¾¤ìÆÈΩ¤Ê -.I "¥·¥°¥Ê¥ë¥Þ¥¹¥¯ (signal mask)" -¤ò»ý¤Ä¡£¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ï¤½¤Î¥¹¥ì¥Ã¥É¤¬¸½ºß¥Ö¥í¥Ã¥¯¤·¤Æ¤¤¤ë -¥·¥°¥Ê¥ë½¸¹ç¤ò¼¨¤¹¤â¤Î¤Ç¤¢¤ë¡£ -¥¹¥ì¥Ã¥É¤Ï¡¢ +プロセス内の各スレッドは、それぞれ独立な +.I "シグナルマスク (signal mask)" +を持つ。シグナルマスクはそのスレッドが現在ブロックしている +シグナル集合を示すものである。 +スレッドは、 .BR pthread_sigmask (3) -¤ò»È¤Ã¤Æ¼«Ê¬¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÁàºî¤Ç¤­¤ë¡£ -ÅÁÅýŪ¤Ê¥·¥ó¥°¥ë¥¹¥ì¥Ã¥É¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ +を使って自分のシグナルマスクを操作できる。 +伝統的なシングルスレッドのアプリケーションでは、 .BR sigprocmask (2) -¤ò»È¤Ã¤Æ¡¢¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÁàºî¤Ç¤­¤ë¡£ +を使って、シグナルマスクを操作できる。 .BR fork (2) -·Ðͳ¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢ -¿Æ¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£ +経由で作成された子プロセスは、 +親プロセスのシグナルマスクのコピーを継承する。 .BR execve (2) -¤ÎÁ°¸å¤Ç¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ÏÊÝ»ý¤µ¤ì¤ë¡£ +の前後でシグナルマスクは保持される。 -À¸À®¤µ¤ì¤ë¥·¥°¥Ê¥ë (¤·¤¿¤¬¤Ã¤Æ½èÍýÂÔ¤Á¤È¤Ê¤ë¥·¥°¥Ê¥ë) ¤Ë¤Ï¡¢ -¥×¥í¥»¥¹Á´Âΰ¸¤Æ¤ÈÆÃÄê¤Î¥¹¥ì¥Ã¥É°¸¤Æ¤¬¤¢¤ë¡£ -Î㤨¤Ð¡¢¥×¥í¥»¥¹Á´Âΰ¸¤Æ¤Î¥·¥°¥Ê¥ë¤Ï +生成されるシグナル (したがって処理待ちとなるシグナル) には、 +プロセス全体宛てと特定のスレッド宛てがある。 +例えば、プロセス全体宛てのシグナルは .BR kill (2) -¤ò»È¤Ã¤ÆÁ÷¿®¤µ¤ì¤ë¡£ -ÆÃÄê¤Î¥Þ¥·¥ó¸ì¤ÎÌ¿Îá¤Î¼Â¹Ô¤Î·ë²Ì¤È¤·¤ÆÀ¸À®¤µ¤ì¤ë¡¢ +を使って送信される。 +特定のマシン語の命令の実行の結果として生成される、 .B SIGSEGV -¤ä +や .B SIGFPE -¤Ê¤É¤Î¥·¥°¥Ê¥ë¤Ï¡¢¥¹¥ì¥Ã¥É°¸¤Æ¤È¤Ê¤ë¡£ -¤Þ¤¿¡¢ +などのシグナルは、スレッド宛てとなる。 +また、 .BR pthread_kill (3) -¤ò»È¤Ã¤ÆÆÃÄê¤Î¥¹¥ì¥Ã¥É°¸¤Æ¤ËÀ¸À®¤µ¤ì¤¿¥·¥°¥Ê¥ë¤â -¥¹¥ì¥Ã¥É°¸¤Æ¤È¤Ê¤ë¡£ -¥×¥í¥»¥¹°¸¤Æ¤Î¥·¥°¥Ê¥ë¤Ï¡¢¤½¤Î¥·¥°¥Ê¥ë¤ò¥Ö¥í¥Ã¥¯¤·¤Æ¤¤¤Ê¤¤¥¹¥ì¥Ã¥É¤Î¤¦¤Á -¤¤¤º¤ì¤«¤Î°ì¤Ä¤ËÇÛÁ÷¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤½¤Î¥·¥°¥Ê¥ë¤ò¥Ö¥í¥Ã¥¯¤·¤Æ¤¤¤Ê¤¤ -¥¹¥ì¥Ã¥É¤¬Ê£¿ô¤¢¤ë¾ì¹ç¡¢¥·¥°¥Ê¥ë¤òÇÛÁ÷¤¹¤ë¥¹¥ì¥Ã¥É¤Ï¥«¡¼¥Í¥ë¤¬ -̵ºî°Ù¤ËÁªÂò¤¹¤ë¡£ +を使って特定のスレッド宛てに生成されたシグナルも +スレッド宛てとなる。 +プロセス宛てのシグナルは、そのシグナルをブロックしていないスレッドのうち +いずれかの一つに配送することができる。そのシグナルをブロックしていない +スレッドが複数ある場合、シグナルを配送するスレッドはカーネルが +無作為に選択する。 -¥¹¥ì¥Ã¥É¤Ï¡¢ +スレッドは、 .BR sigpending (2) -¤ò»È¤Ã¤Æ¡¢¸½ºß½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë½¸¹ç¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î½¸¹ç¤Ï¡¢¥×¥í¥»¥¹°¸¤Æ¤Î½èÍýÂÔ¤Á¥·¥°¥Ê¥ë¤È -¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É°¸¤Æ¤Î¥·¥°¥Ê¥ë¤ÎξÊý¤«¤é¹½À®¤µ¤ì¤ë¡£ +を使って、現在処理待ちのシグナル集合を取得することができる。 +この集合は、プロセス宛ての処理待ちシグナルと +呼び出したスレッド宛てのシグナルの両方から構成される。 .BR fork (2) -·Ðͳ¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ç¤Ï¡¢½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë½¸¹ç¤Ï -¶õ¤Î½¸¹ç¤Ç½é´ü²½¤µ¤ì¤ë¡£ +経由で作成された子プロセスでは、処理待ちのシグナル集合は +空の集合で初期化される。 .BR execve (2) -¤ÎÁ°¸å¤Ç¡¢½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë½¸¹ç¤ÏÊÝ»ý¤µ¤ì¤ë¡£ -.SS ɸ½à¥·¥°¥Ê¥ë -Linux ¤Ï°Ê²¼¤Ë¼¨¤¹É¸½à¥·¥°¥Ê¥ë¤ËÂбþ¤·¤Æ¤¤¤ë¡£ -¥·¥°¥Ê¥ëÈÖ¹æ¤Î°ìÉô¤Ï¥¢¡¼¥­¥Æ¥¯¥Á¥ã°Í¸¤Ç¤¢¤ê¡¢"ÃÍ" Íó¤Ë¼¨¤¹Ä̤ê¤Ç¤¢¤ë¡£ -(3¤Ä¤ÎÃͤ¬½ñ¤«¤ì¤Æ¤¤¤ë¤â¤Î¤Ï¡¢ 1¤ÄÌܤ¬ alpha ¤È sparc ¤ÇÄ̾ïÍ­¸ú¤ÊÃÍ¡¢ -¿¿¤óÃ椬 ix86, ia64, ppc, s390, arm, sh ¤Ç¤ÎÃÍ¡¢ºÇ¸å¤¬ mips ¤Ç¤ÎÃͤǤ¢¤ë¡£ +の前後で、処理待ちのシグナル集合は保持される。 +.SS 標準シグナル +Linux は以下に示す標準シグナルに対応している。 +シグナル番号の一部はアーキテクチャ依存であり、"値" 欄に示す通りである。 +(3つの値が書かれているものは、 1つ目が alpha と sparc で通常有効な値、 +真ん中が ix86, ia64, ppc, s390, arm, sh での値、最後が mips での値である。 .\" parisc is a law unto itself -\- ¤Ï¤½¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤ª¤¤¤ÆÂбþ¤¹¤ë¥·¥°¥Ê¥ë¤¬¤Ê¤¤¤³¤È¤ò¼¨¤¹¡£) +\- はそのアーキテクチャにおいて対応するシグナルがないことを示す。) -ºÇ½é¤Ë¡¢POSIX.1-1990 ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤ò¼¨¤¹¡£ +最初に、POSIX.1-1990 に定義されているシグナルを示す。 .TS l c c l ____ lB c c l. -¥·¥°¥Ê¥ë ÃÍ Æ°ºî ¥³¥á¥ó¥È +シグナル 値 動作 コメント SIGHUP \01 Term T{ -À©¸æüËö(controlling terminal)¤Î¥Ï¥ó¥°¥¢¥Ã¥×¸¡½Ð¡¢ -¤Þ¤¿¤ÏÀ©¸æ¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î»à +制御端末(controlling terminal)のハングアップ検出、 +または制御しているプロセスの死 T} -SIGINT \02 Term ¥­¡¼¥Ü¡¼¥É¤«¤é¤Î³ä¤ê¹þ¤ß (Interrupt) -SIGQUIT \03 Core ¥­¡¼¥Ü¡¼¥É¤Ë¤è¤ëÃæ»ß (Quit) -SIGILL \04 Core ÉÔÀµ¤ÊÌ¿Îá -SIGABRT \06 Core \fBabort\fP(3) ¤«¤é¤ÎÃæÃÇ (Abort) ¥·¥°¥Ê¥ë -SIGFPE \08 Core ÉâÆ°¾®¿ôÅÀÎã³° -SIGKILL \09 Term Kill ¥·¥°¥Ê¥ë -SIGSEGV 11 Core ÉÔÀµ¤Ê¥á¥â¥ê»²¾È -SIGPIPE 13 Term ¥Ñ¥¤¥×Ç˲õ: Æɤ߼ê¤Î̵¤¤¥Ñ¥¤¥×¤Ø¤Î½ñ¤­½Ð¤· -SIGALRM 14 Term \fBalarm\fP(2) ¤«¤é¤Î¥¿¥¤¥Þ¡¼¥·¥°¥Ê¥ë -SIGTERM 15 Term ½ªÎ» (termination) ¥·¥°¥Ê¥ë -SIGUSR1 30,10,16 Term ¥æ¡¼¥¶ÄêµÁ¥·¥°¥Ê¥ë 1 -SIGUSR2 31,12,17 Term ¥æ¡¼¥¶ÄêµÁ¥·¥°¥Ê¥ë 2 -SIGCHLD 20,17,18 Ign »Ò¥×¥í¥»¥¹¤Î°ì»þÄä»ß (stop) ¤Þ¤¿¤Ï½ªÎ» -SIGCONT 19,18,25 Cont °ì»þÄä»ß (stop) ¤«¤é¤ÎºÆ³« -SIGSTOP 17,19,23 Stop ¥×¥í¥»¥¹¤Î°ì»þÄä»ß (stop) -SIGTSTP 18,20,24 Stop üËö (tty) ¤è¤êÆþÎϤµ¤ì¤¿°ì»þÄä»ß (stop) -SIGTTIN 21,21,26 Stop ¥Ð¥Ã¥¯¥°¥é¥ó¥É¥×¥í¥»¥¹¤Î tty ÆþÎÏ -SIGTTOU 22,22,27 Stop ¥Ð¥Ã¥¯¥°¥é¥ó¥É¥×¥í¥»¥¹¤Î tty ½ÐÎÏ +SIGINT \02 Term キーボードからの割り込み (Interrupt) +SIGQUIT \03 Core キーボードによる中止 (Quit) +SIGILL \04 Core 不正な命令 +SIGABRT \06 Core \fBabort\fP(3) からの中断 (Abort) シグナル +SIGFPE \08 Core 浮動小数点例外 +SIGKILL \09 Term Kill シグナル +SIGSEGV 11 Core 不正なメモリ参照 +SIGPIPE 13 Term パイプ破壊: 読み手の無いパイプへの書き出し +SIGALRM 14 Term \fBalarm\fP(2) からのタイマーシグナル +SIGTERM 15 Term 終了 (termination) シグナル +SIGUSR1 30,10,16 Term ユーザ定義シグナル 1 +SIGUSR2 31,12,17 Term ユーザ定義シグナル 2 +SIGCHLD 20,17,18 Ign 子プロセスの一時停止 (stop) または終了 +SIGCONT 19,18,25 Cont 一時停止 (stop) からの再開 +SIGSTOP 17,19,23 Stop プロセスの一時停止 (stop) +SIGTSTP 18,20,24 Stop 端末 (tty) より入力された一時停止 (stop) +SIGTTIN 21,21,26 Stop バックグランドプロセスの tty 入力 +SIGTTOU 22,22,27 Stop バックグランドプロセスの tty 出力 .TE -¥·¥°¥Ê¥ë +シグナル .B SIGKILL -¤È +と .B SIGSTOP -¤Ï¥­¥ã¥Ã¥Á¡¢¥Ö¥í¥Ã¥¯¡¢Ìµ»ë¤Ç¤­¤Ê¤¤¡£ +はキャッチ、ブロック、無視できない。 -¼¡¤Ë¡¢ POSIX.1-1990 ɸ½à¤Ë¤Ï¤Ê¤¤¤¬¡¢ SUSv2 ¤È -POSIX.1-2001 ¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤ò¼¨¤¹¡£ +次に、 POSIX.1-1990 標準にはないが、 SUSv2 と +POSIX.1-2001 に記述されているシグナルを示す。 .TS l c c l ____ lB c c l. -¥·¥°¥Ê¥ë ÃÍ Æ°ºî ¥³¥á¥ó¥È -SIGBUS 10,7,10 Core ¥Ð¥¹¥¨¥é¡¼ (ÉÔÀµ¤Ê¥á¥â¥ê¥¢¥¯¥»¥¹) -SIGPOLL Term ¥Ý¡¼¥ê¥ó¥°²Äǽ¤Ê¥¤¥Ù¥ó¥È (Sys V)¡£ - \fBSIGIO\fP ¤ÈƱµÁ -SIGPROF 27,27,29 Term profiling ¥¿¥¤¥Þ¤Î»þ´ÖÀÚ¤ì -SIGSYS 12,31,12 Core ¥ë¡¼¥Á¥ó¤Ø¤Î°ú¤­¿ô¤¬ÉÔÀµ (SVr4) -SIGTRAP 5 Core ¥È¥ì¡¼¥¹/¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È ¥È¥é¥Ã¥× +シグナル 値 動作 コメント +SIGBUS 10,7,10 Core バスエラー (不正なメモリアクセス) +SIGPOLL Term ポーリング可能なイベント (Sys V)。 + \fBSIGIO\fP と同義 +SIGPROF 27,27,29 Term profiling タイマの時間切れ +SIGSYS 12,31,12 Core ルーチンへの引き数が不正 (SVr4) +SIGTRAP 5 Core トレース/ブレークポイント トラップ SIGURG 16,23,21 Ign T{ -¥½¥±¥Ã¥È¤Î¶ÛµÞ»öÂÖ (urgent condition) (4.2BSD) +ソケットの緊急事態 (urgent condition) (4.2BSD) T} -SIGVTALRM 26,26,28 Term ²¾ÁÛ¥¢¥é¡¼¥à¥¯¥í¥Ã¥¯ (4.2BSD) -SIGXCPU 24,24,30 Core CPU»þ´ÖÀ©¸ÂĶ²á (4.2BSD) -SIGXFSZ 25,25,31 Core ¥Õ¥¡¥¤¥ë¥µ¥¤¥ºÀ©¸Â¤ÎĶ²á (4.2BSD) +SIGVTALRM 26,26,28 Term 仮想アラームクロック (4.2BSD) +SIGXCPU 24,24,30 Core CPU時間制限超過 (4.2BSD) +SIGXFSZ 25,25,31 Core ファイルサイズ制限の超過 (4.2BSD) .TE -Linux 2.2 °ÊÁ°¤Ç¤Ï¡¢ +Linux 2.2 以前では、 .BR SIGSYS ", " SIGXCPU ", " SIGXFSZ -¤ª¤è¤Ó SPARC ¤È MIPS °Ê³°¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Î +および SPARC と MIPS 以外のアーキテクチャでの .B SIGBUS -¤Î¥Ç¥Õ¥©¥ë¥È¤Î¿¶¤ëÉñ¤¤¤Ï (¥³¥¢¥À¥ó¥×½ÐÎϤʤ·¤Î) ¥×¥í¥»¥¹½ªÎ»¤Ç¤¢¤Ã¤¿¡£ -(¾¤Î UNIX ¥·¥¹¥Æ¥à¤Ë¤â -.BR SIGXCPU " ¤È " SIGXFSZ -¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤¬¥³¥¢¥À¥ó¥×¤Ê¤·¤Î¥×¥í¥»¥¹½ªÎ»¤Î¤â¤Î¤¬¤¢¤ë¡£) -Linux 2.4 ¤Ç¤Ï¡¢POSIX.1-2001 ¤Ç¤ÎÍ×µá»ÅÍͤ˽àµò¤·¤Æ¡¢ -¤³¤ì¤é¤Î¥·¥°¥Ê¥ë¤Ç¡¢¥×¥í¥»¥¹¤ò½ªÎ»¤µ¤»¡¢¥³¥¢¥À¥ó¥×¤ò½ÐÎϤ¹¤ë -¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +のデフォルトの振る舞いは (コアダンプ出力なしの) プロセス終了であった。 +(他の UNIX システムにも +.BR SIGXCPU " と " SIGXFSZ +のデフォルトの動作がコアダンプなしのプロセス終了のものがある。) +Linux 2.4 では、POSIX.1-2001 での要求仕様に準拠して、 +これらのシグナルで、プロセスを終了させ、コアダンプを出力する +ようになっている。 -¼¡¤Ë¤½¤Î¾¤Î³Æ¼ï¥·¥°¥Ê¥ë¤ò¼¨¤¹¡£ +次にその他の各種シグナルを示す。 .TS l c c l ____ lB c c l. -¥·¥°¥Ê¥ë ÃÍ Æ°ºî ¥³¥á¥ó¥È -SIGIOT 6 Core IOT ¥È¥é¥Ã¥×¡£\fBSIGABRT\fP ¤ÈƱµÁ +シグナル 値 動作 コメント +SIGIOT 6 Core IOT トラップ。\fBSIGABRT\fP と同義 SIGEMT 7,\-,7 Term SIGSTKFLT \-,16,\- A T{ -¿ôÃͱ黻¥×¥í¥»¥Ã¥µ¤Ë¤ª¤±¤ë¥¹¥¿¥Ã¥¯¥Õ¥©¥ë¥È (̤»ÈÍÑ) +数値演算プロセッサにおけるスタックフォルト (未使用) T} -SIGIO 23,29,22 Term Æþ½ÐÎϤ¬²Äǽ¤Ë¤Ê¤Ã¤¿ (4.2BSD) -SIGCLD \-,\-,18 Ign \fBSIGCHLD\fP ¤ÈƱµÁ -SIGPWR 29,30,19 Term ÅŸ»ÁÓ¼º (Power failure) (System V) -SIGINFO 29,\-,\- \fBSIGPWR\fP ¤ÈƱµÁ -SIGLOST \-,\-,\- Term ¥Õ¥¡¥¤¥ë¥í¥Ã¥¯¤¬¼º¤ï¤ì¤¿ +SIGIO 23,29,22 Term 入出力が可能になった (4.2BSD) +SIGCLD \-,\-,18 Ign \fBSIGCHLD\fP と同義 +SIGPWR 29,30,19 Term 電源喪失 (Power failure) (System V) +SIGINFO 29,\-,\- \fBSIGPWR\fP と同義 +SIGLOST \-,\-,\- Term ファイルロックが失われた SIGWINCH 28,28,20 Ign T{ -¥¦¥£¥ó¥É¥¦ ¥ê¥µ¥¤¥º ¥·¥°¥Ê¥ë (4.3BSD, Sun) +ウィンドウ リサイズ シグナル (4.3BSD, Sun) T} -SIGUNUSED \-,31,\- Core \fBSIGSYS\fP ¤ÈƱµÁ +SIGUNUSED \-,31,\- Core \fBSIGSYS\fP と同義 .TE -(¥·¥°¥Ê¥ë 29 ¤Ï alpha ¤Ç¤Ï +(シグナル 29 は alpha では .B SIGINFO / .B SIGPWR -¤À¤¬¡¢sparc ¤Ç¤Ï +だが、sparc では .B SIGLOST -¤Ç¤¢¤ë¡£) +である。) .B SIGEMT -¤Ï POSIX.1-2001 ¤Ëµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ -¤½¤Î¾¤Î¿¤¯¤Î UNIX ¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¿¤¯¤Î¾ì¹ç¡¢¥³¥¢¥À¥ó¥×½ÐÎϤòȼ¤¦¥×¥í¥»¥¹¤Î½ªÎ»¤Ç¤¢¤ë¡£ +は POSIX.1-2001 に規定されていないが、 +その他の多くの UNIX システムに存在する。 +デフォルトの動作は多くの場合、コアダンプ出力を伴うプロセスの終了である。 .B SIGPWR -¤Ï (POSIX.1-2001 ¤Ëµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬) ¤³¤Î¥·¥°¥Ê¥ë¤¬Â¸ºß¤¹¤ë -¾¤Î UNIX ¥·¥¹¥Æ¥à¤Ç¤Ï¿¤¯¤Î¾ì¹ç¡¢¥Ç¥Õ¥©¥ë¥ÈÆ°ºî¤Ï̵»ë¤Ç¤¢¤ë¡£ +は (POSIX.1-2001 に規定されていないが) このシグナルが存在する +他の UNIX システムでは多くの場合、デフォルト動作は無視である。 .B SIGIO -¤Ï (POSIX.1-2001 ¤Ëµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬) ¤¤¤¯¤Ä¤«¤Î¾¤Î UNIX ¥·¥¹¥Æ¥à¤Ç¤Ï -¥Ç¥Õ¥©¥ë¥ÈÆ°ºî¤Ï̵»ë¤Ç¤¢¤ë¡£ +は (POSIX.1-2001 に規定されていないが) いくつかの他の UNIX システムでは +デフォルト動作は無視である。 .B SIGUNUSED -¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢¤Û¤È¤ó¤É¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç +が定義されている場合には、ほとんどのアーキテクチャで .B SIGSYS -¤ÎƱµÁ¸ì¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ +の同義語となっている。 .\" parisc is the only exception: SIGSYS is 12, SIGUNUSED is 31 -.SS ¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë -Linux ¤Ï¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Ï¸µ¡¹ POSIX.1b ¤Î¥ê¥¢¥ë¥¿¥¤¥à³ÈÄ¥¤ÇÄêµÁ¤µ¤ì¤Æ -¤¤¤ë¤â¤Î¤Ç¤¢¤ê¡¢¸½ºß¤Ç¤Ï POSIX.1-2001 ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -Âбþ¤·¤Æ¤¤¤ë¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÎÈϰϤϡ¢¥Þ¥¯¥í +.SS リアルタイムシグナル +Linux はリアルタイムシグナルをサポートしている。 +リアルタイムシグナルは元々 POSIX.1b のリアルタイム拡張で定義されて +いるものであり、現在では POSIX.1-2001 に含まれている。 +対応しているリアルタイムシグナルの範囲は、マクロ .B SIGRTMIN -¤È +と .B SIGRTMAX -¤ÇÄêµÁ¤µ¤ì¤ë¡£ -POSIX.1-2001 ¤Ç¤Ï¡¢¾¯¤Ê¤¯¤È¤â +で定義される。 +POSIX.1-2001 では、少なくとも .B _POSIX_RTSIG_MAX -(8) ¸Ä¤Î¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ËÂбþ¤·¤¿¼ÂÁõ¤¬Í׵ᤵ¤ì¤Æ¤¤¤ë¡£ +(8) 個のリアルタイムシグナルに対応した実装が要求されている。 .PP -Linux ¤Ï¡¢32 ¸Ä¤Î°Û¤Ê¤ë¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ËÂбþ¤·¤Æ¤ª¤ê¡¢ -¤½¤ÎÈÖ¹æ¤Ï 33 ¤«¤é 64 ¤Ç¤¢¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢glibc ¤Î POSIX ¥¹¥ì¥Ã¥É¼ÂÁõ¤Ï¡¢ -ÆâÉô¤Ç 2¸Ä (NPTL ¤Î¾ì¹ç) ¤« 3¸Ä (LinuxThreads ¤Î¾ì¹ç) ¤Î -¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ò»ÈÍѤ·¤Æ¤ª¤ê +Linux は、32 個の異なるリアルタイムシグナルに対応しており、 +その番号は 33 から 64 である。 +しかしながら、glibc の POSIX スレッド実装は、 +内部で 2個 (NPTL の場合) か 3個 (LinuxThreads の場合) の +リアルタイムシグナルを使用しており .RB ( pthreads (7) -»²¾È)¡¢ +参照)、 .B SIGRTMIN -¤ÎÃͤòŬÀÚ¤Ë (34 ¤« 35 ¤Ë) Ä´À°¤¹¤ë¡£ -ÍøÍѲÄǽ¤Ê¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÎÈÏ°Ï¤Ï glibc ¤Î¥¹¥ì¥Ã¥É¼ÂÁõ¤Ë¤è¤ê -°Û¤Ê¤ë¤· (»ÈÍѤ¹¤ë¥«¡¼¥Í¥ë¤È glibc ¤Ë¤è¤ê¼Â¹Ô»þ¤Ë¤âÊѲ½¤¹¤ë)¡¢ -UNIX ¥·¥¹¥Æ¥à¤Î¼ïÎà¤Ë¤è¤Ã¤Æ¤â°Û¤Ê¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢ -¥×¥í¥°¥é¥à¤Ç¤Ï¡Ö¥Ï¡¼¥É¥³¡¼¥Ç¥£¥ó¥°¤·¤¿¿ô»ú¤ò»È¤Ã¤Æ¤Î¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Î -»²¾È¤Ï·è¤·¤Æ¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¯¡×¡¢Âå¤ï¤ê¤Ë +の値を適切に (34 か 35 に) 調整する。 +利用可能なリアルタイムシグナルの範囲は glibc のスレッド実装により +異なるし (使用するカーネルと glibc により実行時にも変化する)、 +UNIX システムの種類によっても異なる。したがって、 +プログラムでは「ハードコーディングした数字を使ってのリアルタイムシグナルの +参照は決してすべきではなく」、代わりに .BR SIGRTMIN +n -¤Î·Á¤Ç»²¾È¤¹¤Ù¤­¤Ç¤¢¤ë¡£¤Þ¤¿¡¢ +の形で参照すべきである。また、 .BR SIGRTMIN +n -¤¬ +が .B SIGRTMAX -¤òĶ¤¨¤Æ¤¤¤Ê¤¤¤«¤Î¥Á¥§¥Ã¥¯¤ò (¼Â¹Ô»þ¤Ë) ŬÀڤ˹Ԥ¦¤Ù¤­¤Ç¤¢¤ë¡£ +を超えていないかのチェックを (実行時に) 適切に行うべきである。 .PP -ɸ½à¥·¥°¥Ê¥ë¤È°Û¤Ê¤ê¡¢¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Ë¤Ï -»öÁ°¤ËÄêµÁ¤µ¤ì¤¿°ÕÌ£¤Ï¤Ê¤¤¡£ -¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÎÁ´Éô¤ò¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÇÄêµÁ¤·¤¿ÍÑÅӤ˻Ȥ¨¤ë¡£ +標準シグナルと異なり、リアルタイムシグナルには +事前に定義された意味はない。 +リアルタイムシグナルの全部をアプリケーションで定義した用途に使える。 .PP -¥Ï¥ó¥É¥ê¥ó¥°¤·¤Ê¤¤¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï -¼õ¿®¤·¤¿¥×¥í¥»¥¹¤Î½ªÎ»¤Ç¤¢¤ë¡£ +ハンドリングしないリアルタイムシグナルのデフォルトの動作は +受信したプロセスの終了である。 .PP -¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Ï°Ê²¼¤ÎÆÃħ¤¬¤¢¤ë: +リアルタイムシグナルは以下の特徴がある: .IP 1. 4 -¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÏÊ£¿ô¤Î¼ÂÂΤò¥­¥å¡¼¤ËÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -°ìÊý¡¢É¸½à¥·¥°¥Ê¥ë¤Î¾ì¹ç¡¢¤½¤Î¥·¥°¥Ê¥ë¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë´Ö¤Ë -Ʊ¤¸¥·¥°¥Ê¥ë¤ÎÊ£¿ô¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤¬ÇÛÁ÷¤µ¤ì¤Æ¤â¡¢ -1 ¤Ä¤À¤±¤¬¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤ë¡£ +リアルタイムシグナルは複数の実体をキューに入れることができる。 +一方、標準シグナルの場合、そのシグナルがブロックされている間に +同じシグナルの複数のインスタンスが配送されても、 +1 つだけがキューに入れられる。 .IP 2. 4 -¥·¥°¥Ê¥ë¤¬ +シグナルが .BR sigqueue (3) -¤òÍѤ¤¤ÆÁ÷¿®¤µ¤ì¤¿¾ì¹ç¡¢ -ÉÕ°¥Ç¡¼¥¿ (À°¿ô¤«¥Ý¥¤¥ó¥¿) ¤ò¥·¥°¥Ê¥ë¤È¶¦¤ËÁ÷¿®¤Ç¤­¤ë¡£ -¼õ¿®Â¦¥×¥í¥»¥¹¤¬ +を用いて送信された場合、 +付属データ (整数かポインタ) をシグナルと共に送信できる。 +受信側プロセスが .BR sigaction (2) -¤Ë +に .B SA_SIGINFO -¥Õ¥é¥°¤ò»ØÄꤷ¤Æ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄꤷ¤¿¾ì¹ç¡¢ -¤³¤Î¥Ç¡¼¥¿¤Ï +フラグを指定してシグナルハンドラを設定した場合、 +このデータは .I siginfo_t -¹½Â¤ÂΤΠ+構造体の .I si_value -¥Õ¥£¡¼¥ë¥É·Ðͳ¤Ç¥Ï¥ó¥É¥é¤ÎÂè 2 °ú¤­¿ô¤È¤·¤ÆÅϤµ¤ì¡¢ -ÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤µ¤é¤Ë¡¢¤³¤Î¹½Â¤ÂΤΠ+フィールド経由でハンドラの第 2 引き数として渡され、 +利用することができる。 +さらに、この構造体の .I si_pid -¤È +と .I si_uid -¥Õ¥£¡¼¥ë¥É¤Ç¥·¥°¥Ê¥ë¤òÁ÷¿®¤·¤¿¥×¥í¥»¥¹¤Î PID ¤È¼Â¥æ¡¼¥¶ ID ¤ò -ÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +フィールドでシグナルを送信したプロセスの PID と実ユーザ ID を +得ることができる。 .IP 3. 4 -¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Ç¤ÏÇÛÁ÷¤µ¤ì¤ë½ç½ø¤¬Êݾڤµ¤ì¤ë¡£ -Ʊ¤¸¥¿¥¤¥×¤Î¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÏÁ÷¿®¤µ¤ì¤¿½çÈÖ¤ËÅþÃ夹¤ë¡£ -°Û¤Ê¤ë¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤¬°ì¤Ä¤Î¥×¥í¥»¥¹¤ËÁ÷¿®¤µ¤ì¤¿¾ì¹ç¡¢ -ÈÖ¹æ¤Î¾®¤µ¤¤¥·¥°¥Ê¥ë¤«¤éÀè¤ËÅþÃ夹¤ë¡£ -(¤Ä¤Þ¤ê¾®¤µ¤¤ÈÖ¹æ¤Î¥·¥°¥Ê¥ë¤¬¹â¤¤Í¥Àè½ç°Ì¤ò»ý¤Ä¡£) -ÂоÈŪ¤Ë¡¢°ì¤Ä¤Î¥×¥í¥»¥¹¤ËÂФ·¤ÆÊ£¿ô¤Îɸ½à¥·¥°¥Ê¥ë¤¬½èÍýÂÔ¤Á¤È¤Ê¤Ã¤¿¾ì¹ç¡¢ -¤³¤ì¤é¤Î¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ë½ç½ø¤ÏÉÔÄê¤Ç¤¢¤ë¡£ +リアルタイムシグナルでは配送される順序が保証される。 +同じタイプのリアルタイムシグナルは送信された順番に到着する。 +異なるリアルタイムシグナルが一つのプロセスに送信された場合、 +番号の小さいシグナルから先に到着する。 +(つまり小さい番号のシグナルが高い優先順位を持つ。) +対照的に、一つのプロセスに対して複数の標準シグナルが処理待ちとなった場合、 +これらのシグナルが配送される順序は不定である。 .PP -°ì¤Ä¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æɸ½à¥·¥°¥Ê¥ë¤È¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÎξÊý¤¬ -½èÍýÂÔ¤Á¤Î¾ì¹ç¡¢POSIX ¤Ï¤É¤Á¤é¤¬Àè¤ËÇÛÁ÷¤µ¤ì¤ë¤«¤òµ¬Äꤷ¤Æ¤¤¤Ê¤¤¡£ -Linux ¤Ç¤Ï¡¢Â¾¤Î¿¤¯¤Î¼ÂÁõ¤ÈƱÍÍ¡¢¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï -ɸ½à¥·¥°¥Ê¥ë¤¬Í¥À褵¤ì¤ë¡£ +一つのプロセスに対して標準シグナルとリアルタイムシグナルの両方が +処理待ちの場合、POSIX はどちらが先に配送されるかを規定していない。 +Linux では、他の多くの実装と同様、このような場合には +標準シグナルが優先される。 .PP -POSIX ¤Ë¤è¤ì¤Ð¡¢1 ¥×¥í¥»¥¹Ëè¤ËºÇÄã +POSIX によれば、1 プロセス毎に最低 .B _POSIX_SIGQUEUE_MAX -(32) ¸Ä¤Î¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ò¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤ë¤Ù¤­¤È¤·¤Æ¤¤¤ë¡£ -¤·¤«¤·¡¢ Linux ¤Ç¤Ï°ã¤Ã¤¿¼ÂÁõ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¥«¡¼¥Í¥ë 2.6.7 ¤Þ¤Ç¤Ï -(2.6.7 ¤ò´Þ¤à)¡¢Á´¥×¥í¥»¥¹¤Ç¥­¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ë¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë -¤Î¿ô¤Î¹ç·×¤Ë¤Ä¤¤¤Æ¥·¥¹¥Æ¥àÁ´ÂΤǤÎÀ©¸Â¤¬¤¢¤ë¡£ -¤³¤ÎÀ©¸Â¤Ï +(32) 個のリアルタイムシグナルをキューに入れられるべきとしている。 +しかし、 Linux では違った実装になっている。カーネル 2.6.7 までは +(2.6.7 を含む)、全プロセスでキューに入っているリアルタイムシグナル +の数の合計についてシステム全体での制限がある。 +この制限は .I /proc/sys/kernel/rtsig-max -¥Õ¥¡¥¤¥ë¤Ç¸«¤ë¤³¤È¤¬¤Ç¤­¡¢ (¸¢¸Â¤¬¤¢¤ì¤Ð) Êѹ¹¤â¤Ç¤­¤ë¡£ -´Ø·¸¤¹¤ë¥Õ¥¡¥¤¥ë¤È¤·¤Æ¡¢ +ファイルで見ることができ、 (権限があれば) 変更もできる。 +関係するファイルとして、 .I /proc/sys/kernel/rtsig-nr -¤ò¸«¤ë¤³¤È¤Ç¡¢¤¤¤¯¤Ä¤Î¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤¬¸½ºß¥­¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ë¤«¤ò -ÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ -Linux 2.6.8 ¤Ç¡¢¤³¤ì¤é¤Î +を見ることで、いくつのリアルタイムシグナルが現在キューに入っているかを +知ることができる。 +Linux 2.6.8 で、これらの .I /proc -·Ðͳ¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¡¢ +経由のインターフェースは、 .B RLIMIT_SIGPENDING -¥ê¥½¡¼¥¹À©¸Â¤ËÃÖ¤­´¹¤¨¤é¤ì¤¿¡£ -¤³¤ì¤Ï¡¢¥­¥å¡¼¤ËÆþ¤ë¥·¥°¥Ê¥ë¿ô¤Ë´Ø¤·¤Æ¥æ¡¼¥¶Ã±°Ì¤Ë -¾å¸Â¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¾Ü¤·¤¯¤Ï +リソース制限に置き換えられた。 +これは、キューに入るシグナル数に関してユーザ単位に +上限を指定するものである。 +詳しくは .BR setrlimit (2) -¤ò»²¾È¡£ -.SS "ÈóƱ´ü¥·¥°¥Ê¥ë¤Ç°ÂÁ´¤Ê´Ø¿ô (async-signal-safe functions)" +を参照。 +.SS "非同期シグナルで安全な関数 (async-signal-safe functions)" .PP -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é´Ø¿ô¤Ë¤ÏÈó¾ï¤ËÃí°Õ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¾¤Î¾ì½ê¤Î½èÍý¤Ï¥×¥í¥°¥é¥à¼Â¹Ô¤ÎǤ°Õ¤Î²Õ½ê¤ÇÃæÃǤµ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¤¿¤á¤Ç¤¢¤ë¡£ -POSIX ¤Ë¤Ï¡Ö°ÂÁ´¤Ê´Ø¿ô (safe function)¡×¤È¤¤¤¦³µÇ°¤¬¤¢¤ë¡£ -¥·¥°¥Ê¥ë¤¬°ÂÁ´¤Ç¤Ê¤¤´Ø¿ô¤Î¼Â¹Ô¤òÃæÃǤ·¡¢¤«¤Ä +シグナルハンドラ関数には非常に注意しなければならない。 +他の場所の処理はプログラム実行の任意の箇所で中断される可能性があるためである。 +POSIX には「安全な関数 (safe function)」という概念がある。 +シグナルが安全でない関数の実行を中断し、かつ .I handler -¤¬°ÂÁ´¤Ç¤Ê¤¤´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¡¢¥×¥í¥°¥é¥à¤ÎµóÆ°¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ +が安全でない関数を呼び出した場合、プログラムの挙動は未定義である。 -POSIX.1-2004 (POSIX.1-2001 Technical Corrigendum (Àµ¸íɽ) 2 ¤È¤â¸À¤¦) ¤Ç¤Ï¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥éÆâ¤Ç¤Î°ÂÁ´¤Ê¸Æ¤Ó½Ð¤·¤òÊݾڤ¹¤ë¤³¤È¤¬É¬¿Ü¤Î´Ø¿ô¤È¤·¤Æ -°Ê²¼¤¬µ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ +POSIX.1-2004 (POSIX.1-2001 Technical Corrigendum (正誤表) 2 とも言う) では、 +シグナルハンドラ内での安全な呼び出しを保証することが必須の関数として +以下が規定されている。 .in +4 .nf @@ -605,8 +605,8 @@ write() .fi .in .PP -POSIX.1-2008 ¤Ç¤Ï¡¢¾åµ­¤Î¥ê¥¹¥È¤Î¤¦¤Á fpathconf(), pathconf(), sysconf() -¤¬ºï½ü¤µ¤ì¡¢°Ê²¼¤Î´Ø¿ô¤¬Äɲ䵤줿¡£ +POSIX.1-2008 では、上記のリストのうち fpathconf(), pathconf(), sysconf() +が削除され、以下の関数が追加された。 .PP .in +4n .nf @@ -632,35 +632,35 @@ utimensat() utimes() .fi .in -.SS ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ø¤Î³ä¤ê¹þ¤ß -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä¥é¥¤¥Ö¥é¥ê¤¬Ää»ß (block) ¤·¤Æ¤¤¤ë´Ö¤Ë¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬ -µ¯Æ°¤µ¤ì¤ë¤È¡¢°Ê²¼¤Î¤É¤Á¤é¤«¤È¤Ê¤ë¡£ +.SS シグナルハンドラによるシステムコールやライブラリ関数への割り込み +システムコールやライブラリが停止 (block) している間にシグナルハンドラが +起動されると、以下のどちらかとなる。 .IP * 2 -¥·¥°¥Ê¥ë¤¬Ê֤俸塢¸Æ¤Ó½Ð¤·¤Ï¼«Æ°Åª¤ËºÆ¥¹¥¿¡¼¥È¤µ¤ì¤ë¡£ +シグナルが返った後、呼び出しは自動的に再スタートされる。 .IP * -¸Æ¤Ó½Ð¤·¤Ï¥¨¥é¡¼ +呼び出しはエラー .B EINTR -¤Ç¼ºÇÔ¤¹¤ë¡£ +で失敗する。 .PP -¤³¤ì¤é¤ÎÆó¤Ä¤ÎµóÆ°¤Î¤¦¤Á¤É¤Á¤é¤¬µ¯¤³¤ë¤«¤Ï¡¢¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ë¤è¤ê°Í¸¤·¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬ +これらの二つの挙動のうちどちらが起こるかは、インターフェイスにより依存し、 +シグナルハンドラが .B SA_RESTART -¥Õ¥é¥° +フラグ .RB ( sigaction (2) -»²¾È) ¤ò»È¤Ã¤ÆÀßÄꤵ¤ì¤Æ¤¤¤¿¤«¤Ë¤â°Í¸¤¹¤ë¡£ -¾ÜºÙ¤Ï UNIX ¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¡£ -Linux ¤Ë¤ª¤±¤ë¾ÜºÙ¤ò°Ê²¼¤ÇÀâÌÀ¤¹¤ë¡£ +参照) を使って設定されていたかにも依存する。 +詳細は UNIX システムによって異なる。 +Linux における詳細を以下で説明する。 -°Ê²¼¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Î¤¤¤º¤ì¤«¤Î¸Æ¤Ó½Ð¤·¤¬Ää»ß¤·¤Æ¤¤¤ë´Ö¤Ë -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¾ì¹ç¡¢ +以下のインターフェイスのいずれかの呼び出しが停止している間に +シグナルハンドラにより割り込まれた場合、 .B SA_RESTART -¥Õ¥é¥°¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ì¤Ð¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬Ê֤俸å¤Ë -¤½¤Î¸Æ¤Ó½Ð¤·¤Ï¼«Æ°Åª¤ËºÆ¥¹¥¿¡¼¥È¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢¤½¤Î¸Æ¤Ó½Ð¤·¤Ï¥¨¥é¡¼ +フラグが使用されていれば、シグナルハンドラが返った後に +その呼び出しは自動的に再スタートされることになる。 +それ以外の場合は、その呼び出しはエラー .B EINTR -¤Ç¼ºÇÔ¤¹¤ë¤³¤È¤Ë¤Ê¤ë¡£ -.\" °Ê²¼¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï ERESTARTSYS ¤ò»È¤Ã¤Æ¤¤¤ë¡£ -.\" ¤½¤Î¤¿¤á¡¢¤³¤ì¤é¤ÏºÆ¥¹¥¿¡¼¥È¤¬²Äǽ¤Ç¤¢¤ë¡£ +で失敗することになる。 +.\" 以下のシステムコールは ERESTARTSYS を使っている。 +.\" そのため、これらは再スタートが可能である。 .RS 4 .IP * 2 .BR read (2), @@ -668,20 +668,20 @@ Linux .BR write (2), .BR writev (2), .BR ioctl (2) -¤Î¡ÖÃÙ¤¤ (slow)¡×¥Ç¥Ð¥¤¥¹¤ËÂФ¹¤ë¸Æ¤Ó½Ð¤·¡£ -¤³¤³¤Ç¤¤¤¦¡ÖÃÙ¤¤¡×¥Ç¥Ð¥¤¥¹¤È¤Ï¡¢I/O ¸Æ¤Ó½Ð¤·¤¬Ìµ´ü¸Â¤ËÄä»ß (block) ¤¹¤ë -²ÄǽÀ­¤Î¤¢¤ë¥Ç¥Ð¥¤¥¹¤Î¤³¤È¤Ç¡¢Îã¤È¤·¤Æ¤ÏüËö¡¢¥Ñ¥¤¥×¡¢¥½¥±¥Ã¥È¤¬¤¢¤ë -(¤³¤ÎÄêµÁ¤Ç¤Ï¡¢¥Ç¥£¥¹¥¯¤ÏÃÙ¤¤¥Ç¥Ð¥¤¥¹¤Ç¤Ï¤Ê¤¤)¡£ -ÃÙ¤¤¥Ç¥Ð¥¤¥¹¤ËÂФ¹¤ë I/O ¸Æ¤Ó½Ð¤·¤¬¡¢ -¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿»þÅÀ¤Þ¤Ç¤Ë²¿¤é¤«¤Î¥Ç¡¼¥¿¤ò -¤¹¤Ç¤ËžÁ÷¤·¤Æ¤¤¤ì¤Ð¡¢¸Æ¤Ó½Ð¤·¤ÏÀ®¸ù¥¹¥Æ¡¼¥¿¥¹ -(Ä̾ï¤Ï¡¢Å¾Á÷¤µ¤ì¤¿¥Ð¥¤¥È¿ô) ¤òÊÖ¤¹¤³¤È¤À¤í¤¦¡£ +の「遅い (slow)」デバイスに対する呼び出し。 +ここでいう「遅い」デバイスとは、I/O 呼び出しが無期限に停止 (block) する +可能性のあるデバイスのことで、例としては端末、パイプ、ソケットがある +(この定義では、ディスクは遅いデバイスではない)。 +遅いデバイスに対する I/O 呼び出しが、 +シグナルハンドラにより割り込まれた時点までに何らかのデータを +すでに転送していれば、呼び出しは成功ステータス +(通常は、転送されたバイト数) を返すことだろう。 .IP * -Ää»ß (block) ¤¹¤ë²ÄǽÀ­¤Î¤¢¤ë +停止 (block) する可能性のある .BR open (2) -(Î㤨¤Ð¡¢FIFO ¤Î¥ª¡¼¥×¥ó»þ; +(例えば、FIFO のオープン時; .BR fifo (7) -»²¾È)¡£ +参照)。 .IP * .BR wait (2), .BR wait3 (2), @@ -689,7 +689,7 @@ Linux .BR waitid (2), .BR waitpid (2). .IP * -¥½¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹: +ソケットインターフェイス: .\" If a timeout (setsockopt()) is in effect on the socket, then these .\" system calls switch to using EINTR. Consequently, they and are not .\" automatically restarted, and they show the stop/cont behavior @@ -702,14 +702,14 @@ Linux .BR send (2), .BR sendto (2), .BR sendmsg (2). -⤷¡¢¥½¥±¥Ã¥È¤Ë¥¿¥¤¥à¥¢¥¦¥È¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç (²¼µ­»²¾È)¡£ +但し、ソケットにタイムアウトが設定されていない場合 (下記参照)。 .IP * -¥Õ¥¡¥¤¥ë¥í¥Ã¥¯ÍÑ¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹: +ファイルロック用インターフェイス: .BR flock (2), .BR fcntl (2) .BR F_SETLKW . .IP * -POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹: +POSIX メッセージキューインターフェイス: .BR mq_receive (3), .BR mq_timedreceive (3), .BR mq_send (3), @@ -717,53 +717,53 @@ POSIX .IP * .BR futex (2) .B FUTEX_WAIT -(Linux 2.6.22 °Ê¹ß; ¤½¤ì°ÊÁ°¤Ï¾ï¤Ë +(Linux 2.6.22 以降; それ以前は常に .B EINTR -¤Ç¼ºÇÔ¤·¤Æ¤¤¤¿)¡£ +で失敗していた)。 .IP * -POSIX ¥»¥Þ¥Õ¥©¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹: +POSIX セマフォインターフェイス: .BR sem_wait (3), .BR sem_timedwait (3) -(Linux 2.6.22 °Ê¹ß; ¤½¤ì°ÊÁ°¤Ï¾ï¤Ë +(Linux 2.6.22 以降; それ以前は常に .B EINTR -¤Ç¼ºÇÔ¤·¤Æ¤¤¤¿)¡£ +で失敗していた)。 .RE .PP -°Ê²¼¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï¡¢ +以下のインターフェイスは、 .B SA_RESTART -¤ò»È¤Ã¤Æ¤¤¤ë¤É¤¦¤«¤Ë´Ø¤ï¤é¤º¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¸å¡¢ -ºÆ¥¹¥¿¡¼¥È¤¹¤ë¤³¤È¤Ï·è¤·¤Æ¤Ê¤¤¡£ -¤³¤ì¤é¤Ï¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤ë¤È¡¢¾ï¤Ë¥¨¥é¡¼ +を使っているどうかに関わらず、シグナルハンドラにより割り込まれた後、 +再スタートすることは決してない。 +これらは、シグナルハンドラにより割り込まれると、常にエラー .B EINTR -¤Ç¼ºÇÔ¤¹¤ë¡£ -.\" ¤³¤ì¤é¤Ï¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ë³ä¤ê¹þ¤ß¤ÎºÝ¤Ë -.\" EINTR ¤« ERESTARTNOHAND ¤òÊÖ¤¹¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤¢¤ë¡£ +で失敗する。 +.\" これらは、シグナルハンドラによる割り込みの際に +.\" EINTR か ERESTARTNOHAND を返すシステムコールである。 .RS 4 .IP * 2 .BR setsockopt (2) -¤ò»È¤Ã¤Æ¥¿¥¤¥à¥¢¥¦¥È¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¥½¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹: +を使ってタイムアウトが設定されているソケットインターフェース: .BR accept (2), .BR recv (2), .BR recvfrom (2), .BR recvmsg (2) -¤Ç¼õ¿®¥¿¥¤¥à¥¢¥¦¥È +で受信タイムアウト .RB ( SO_RCVTIMEO ) -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤È¡¢ +が設定されている場合と、 .BR connect (2), .BR send (2), .BR sendto (2), .BR sendmsg (2) -¤ÇÁ÷¿®¥¿¥¤¥à¥¢¥¦¥È +で送信タイムアウト .RB ( SO_SNDTIMEO ) -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡£ +が設定されている場合。 .IP * -¥·¥°¥Ê¥ëÂÔ¤Á¤Ë»È¤ï¤ì¤ë¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹: +シグナル待ちに使われるインターフェイス: .BR pause (2), .BR sigsuspend (2), .BR sigtimedwait (2), .BR sigwaitinfo (2). .IP * -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿Â¿½Å¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹: +ファイルディスクリプタ多重インターフェイス: .BR epoll_wait (2), .BR epoll_pwait (2), .BR poll (2), @@ -771,57 +771,57 @@ POSIX .BR select (2), .BR pselect (2). .IP * -System V IPC ¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹: +System V IPC インターフェイス: .\" On some other systems, SA_RESTART does restart these system calls .BR msgrcv (2), .BR msgsnd (2), .BR semop (2), .BR semtimedop (2). .IP * -¥¹¥ê¡¼¥×ÍѤΥ¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹: +スリープ用のインターフェイス: .BR clock_nanosleep (2), .BR nanosleep (2), .BR usleep (3). .IP * .BR inotify (7) -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤é¤Î +ファイルディスクリプタからの .BR read (2). .IP * .BR io_getevents (2). .RE .PP .BR sleep (3) -´Ø¿ô¤â¡¢¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¾ì¹ç¡¢·è¤·¤ÆºÆ¥¹¥¿¡¼¥È¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ -¤·¤«¤·¡¢À®¸ù¤È¤Ê¤ê¡¢»Ä¤Ã¤Æ¤¤¤ëÄä»ß»þ´Ö¤òÊÖ¤¹¡£ -.SS °ì»þÄä»ß¥·¥°¥Ê¥ë¤Ë¤è¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ø¤Î³ä¤ê¹þ¤ß -Linux ¤Ç¤Ï¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ç¤â¡¢ -¤¤¤¯¤Ä¤«¤Î¥Ö¥í¥Ã¥­¥ó¥°·¿¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï¡¢ -¥×¥í¥»¥¹¤¬°ì»þÄä»ß (stop) ¥·¥°¥Ê¥ë¤Î°ì¤Ä¤Ë¤è¤êÄä»ß¤µ¤ì¡¢ +関数も、ハンドラにより割り込まれた場合、決して再スタートされることはない。 +しかし、成功となり、残っている停止時間を返す。 +.SS 一時停止シグナルによるシステムコールやライブラリ関数への割り込み +Linux では、シグナルハンドラが設定されていない場合でも、 +いくつかのブロッキング型のインターフェイスは、 +プロセスが一時停止 (stop) シグナルの一つにより停止され、 .B SIGCONT -¤Ë¤è¤êºÆ³«¤µ¤ì¤¿¸å¤Ë¡¢¥¨¥é¡¼ +により再開された後に、エラー .B EINTR -¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -¤³¤ÎµóÆ°¤Ï POSIX.1 ¤Çǧ¤á¤é¤ì¤Æ¤ª¤é¤º¡¢Â¾¤Î¥·¥¹¥Æ¥à¤Ç¤Ïµ¯¤³¤é¤Ê¤¤¡£ +で失敗する可能性がある。 +この挙動は POSIX.1 で認められておらず、他のシステムでは起こらない。 -¤³¤ÎµóÆ°¤ò¼¨¤¹ Linux ¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +この挙動を示す Linux のインターフェイスは以下の通りである。 .RS 4 .IP * 2 .BR setsockopt (2) -¤ò»È¤Ã¤Æ¥¿¥¤¥à¥¢¥¦¥È¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¥½¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹: +を使ってタイムアウトが設定されているソケットインターフェース: .BR accept (2), .BR recv (2), .BR recvfrom (2), .BR recvmsg (2) -¤Ç¼õ¿®¥¿¥¤¥à¥¢¥¦¥È +で受信タイムアウト .RB ( SO_RCVTIMEO ) -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤È¡¢ +が設定されている場合と、 .BR connect (2), .BR send (2), .BR sendto (2), .BR sendmsg (2) -¤ÇÁ÷¿®¥¿¥¤¥à¥¢¥¦¥È +で送信タイムアウト .RB ( SO_SNDTIMEO ) -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡£ +が設定されている場合。 .IP * 2 .BR epoll_wait (2), .BR epoll_pwait (2). @@ -833,35 +833,35 @@ Linux .BR sigwaitinfo (2). .IP * .BR inotify (7) -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤é¤Î +ファイルディスクリプタからの .BR read (2). .IP * -Linux 2.6.21 °ÊÁ°: +Linux 2.6.21 以前: .BR futex (2) .BR FUTEX_WAIT , .BR sem_timedwait (3), .BR sem_wait (3). .IP * -Linux 2.6.8 °ÊÁ°: +Linux 2.6.8 以前: .BR msgrcv (2), .BR msgsnd (2). .IP * -Linux 2.4 °ÊÁ°: +Linux 2.4 以前: .BR nanosleep (2). .RE -.SH ½àµò -POSIX.1 (Ãíµ­¤·¤¿ÆâÍưʳ°)¡£ -.SH ¥Ð¥° +.SH 準拠 +POSIX.1 (注記した内容以外)。 +.SH バグ .B SIGIO -¤È +と .B SIGLOST -¤ÏƱ¤¸Ãͤò»ý¤Ã¤Æ¤¤¤ë¡£ +は同じ値を持っている。 .B SIGLOST -¤Ï¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹¤Ç¤Ï¥³¥á¥ó¥È¥¢¥¦¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¤·¤«¤·¡¢¥½¥Õ¥È¥¦¥§¥¢¤Ë¤è¤Ã¤Æ¤Ï¥Ó¥ë¥É¤Î²áÄø¤Ç¥·¥°¥Ê¥ë 29 ¤ò +はカーネルのソースではコメントアウトされている。 +しかし、ソフトウェアによってはビルドの過程でシグナル 29 を .B SIGLOST -¤È¤ß¤Ê¤·¤Æ¤·¤Þ¤¦¤â¤Î¤¬¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +とみなしてしまうものがある。 +.SH 関連項目 .BR kill (1), .BR getrlimit (2), .BR kill (2), diff --git a/release/man7/socket.7 b/release/man7/socket.7 index 6409cbde..0c09ec22 100644 --- a/release/man7/socket.7 +++ b/release/man7/socket.7 @@ -33,165 +33,165 @@ .\" Updated 2006-04-15, Akihiro MOTOKI, Catch up to LDP man-pages 2.29 .\" Updated 2007-01-05, Akihiro MOTOKI, Catch up to LDP man-pages 2.43 .\" -.\"WORD protocol family ¥×¥í¥È¥³¥ë¥Õ¥¡¥ß¥ê¡¼ -.\"WORD socket type ¥½¥±¥Ã¥È¥¿¥¤¥× -.\"WORD file descriptor ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.\"WORD anonymous socket ̾Á°Ìµ¤·¥½¥±¥Ã¥È -.\"WORD asynchronous ÈóƱ´ü (Ū) -.\"WORD credential ¿®Ç¤¾õ -.\"WORD capability ¸¢¸Â -.\"WORD ancillary data Êä½õ¥Ç¡¼¥¿ +.\"WORD protocol family プロトコルファミリー +.\"WORD socket type ソケットタイプ +.\"WORD file descriptor ファイルディスクリプタ +.\"WORD anonymous socket 名前無しソケット +.\"WORD asynchronous 非同期 (的) +.\"WORD credential 信任状 +.\"WORD capability 権限 +.\"WORD ancillary data 補助データ .\" .TH SOCKET 7 2008-12-03 Linux "Linux Programmer's Manual" -.SH ̾Á° -socket \- Linux ¤Î¥½¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ -.SH ½ñ¼° +.SH 名前 +socket \- Linux のソケットインターフェース +.SH 書式 .B #include .sp .IB sockfd " = socket(int " socket_family ", int " socket_type ", int " protocol ); -.SH ÀâÌÀ -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï Linux ¥Í¥Ã¥È¥ï¡¼¥¯¤Î¥½¥±¥Ã¥ÈÁؤËÂФ¹¤ë -¥æ¡¼¥¶¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òµ­½Ò¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -BSD ¸ß´¹¥½¥±¥Ã¥È¤Ï¡¢¥æ¡¼¥¶¥×¥í¥»¥¹¤È¥«¡¼¥Í¥ëÆâÉô¤Î -¥Í¥Ã¥È¥ï¡¼¥¯¥×¥í¥È¥³¥ë¥¹¥¿¥Ã¥¯·²¤È¤Î´Ö¤Ë¡¢ -Åý°ìŪ¤Ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÄ󶡤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¥×¥í¥È¥³¥ë¥â¥¸¥å¡¼¥ë¤Ï -.I "¥×¥í¥È¥³¥ë¥Õ¥¡¥ß¥ê¡¼ (protocol familiy)" -(Î㡧 +.SH 説明 +このマニュアルページは Linux ネットワークのソケット層に対する +ユーザインターフェースを記述するものである。 +BSD 互換ソケットは、ユーザプロセスとカーネル内部の +ネットワークプロトコルスタック群との間に、 +統一的なインターフェースを提供するものである。 +プロトコルモジュールは +.I "プロトコルファミリー (protocol familiy)" +(例: .BR AF_INET ", " AF_IPX ", " AF_PACKET ) -¤È -.I "¥½¥±¥Ã¥È¥¿¥¤¥× (socket types)" -(Î㡧 +と +.I "ソケットタイプ (socket types)" +(例: .BR SOCK_STREAM ", " SOCK_DGRAM ) -¤ËʬÎà¤Ç¤­¤ë¡£ -¤³¤ì¤é¤Ë´Ø¤¹¤ë¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï +に分類できる。 +これらに関するより詳しい情報は .BR socket (2) -¤ò»²¾È¤Î¤³¤È¡£ -.SS ¥½¥±¥Ã¥ÈÁؤδؿô·² -¤³¤ì¤é¤Î´Ø¿ô¤Ï¥æ¡¼¥¶¥×¥í¥»¥¹¤¬¥Ñ¥±¥Ã¥È¤òÁ÷¼õ¿®¤·¤¿¤ê¡¢¤½¤Î¾¤Î¥½¥±¥Ã¥ÈÁàºî¤ò -¹Ô¤Ã¤¿¤ê¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£¾ÜºÙ¤Ï¤½¤ì¤¾¤ì¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò -¸«¤Æ¤Û¤·¤¤¡£ +を参照のこと。 +.SS ソケット層の関数群 +これらの関数はユーザプロセスがパケットを送受信したり、その他のソケット操作を +行ったりするために用いられる。詳細はそれぞれのマニュアルページを +見てほしい。 .BR socket (2) -¤Ï¥½¥±¥Ã¥È¤òÀ¸À®¤¹¤ë¡£ +はソケットを生成する。 .BR connect (2) -¤Ï¥½¥±¥Ã¥È¤ò¥ê¥â¡¼¥È¤Î¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤ËÀܳ¤¹¤ë¡£ +はソケットをリモートのソケットアドレスに接続する。 .BR bind (2) -¤Ï¥½¥±¥Ã¥È¤ò¥í¡¼¥«¥ë¤Î¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Ë¥Ð¥¤¥ó¥É¤¹¤ë¡£ +はソケットをローカルのソケットアドレスにバインドする。 .BR listen (2) -¤Ï¥½¥±¥Ã¥È¤Ë¿·¤·¤¤Àܳ¤¬Í褿¤é¼õ¿®¤¹¤ë¤è¤¦¤ËÅÁ¤¨¡¢ +はソケットに新しい接続が来たら受信するように伝え、 .BR accept (2) -¤Ï³°Éô¤«¤é¤ä¤Ã¤Æ¤­¤¿Àܳ¤ËÂФ·¤Æ¿·¤·¤¤¥½¥±¥Ã¥È¤òÆÀ¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ +は外部からやってきた接続に対して新しいソケットを得るために用いられる。 .BR socketpair (2) -¤Ï¸ß¤¤¤ËÀܳ¤µ¤ì¤¿Æó¤Ä¤Î̾Á°Ìµ¤·¥½¥±¥Ã¥È (anonymous socket) ¤òÊÖ¤¹ +は互いに接続された二つの名前無しソケット (anonymous socket) を返す .RB ( AF_UNIX -¤Î¤è¤¦¤Ê¡¢¤¤¤¯¤Ä¤«¤Î¥í¡¼¥«¥ë¤Ê¥Õ¥¡¥ß¥ê¡¼¤Ç¤·¤«¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤)¡£ +のような、いくつかのローカルなファミリーでしか実装されていない)。 .PP .BR send (2), .BR sendto (2), .BR sendmsg (2) -¤Ï¥½¥±¥Ã¥È¤òÄ̤·¤Æ¥Ç¡¼¥¿¤òÁ÷¿®¤·¡¢ +はソケットを通してデータを送信し、 .BR recv (2) .BR recvfrom (2), .BR recvmsg (2) -¤Ï¥½¥±¥Ã¥È¤«¤é¥Ç¡¼¥¿¤ò¼õ¿®¤¹¤ë¡£ +はソケットからデータを受信する。 .BR poll (2) -¤È +と .BR select (2) -¤Ï¥Ç¡¼¥¿¤ÎÅþÃå¤òÂԤ俤ꡢ¥Ç¡¼¥¿Á÷¿®¤Î½àÈ÷¤¬¤Ç¤­¤ë¤Þ¤ÇÂԤ俤ꤹ¤ë¡£ -¤µ¤é¤Ë¡¢ +はデータの到着を待ったり、データ送信の準備ができるまで待ったりする。 +さらに、 .BR write (2), .BR writev (2), .BR sendfile (2), .BR read (2), .BR readv (2) -¤Î¤è¤¦¤Êɸ½àŪ¤Ê I/O Áàºî¤â¥Ç¡¼¥¿¤ÎÆɤ߽ñ¤­¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +のような標準的な I/O 操作もデータの読み書きに用いることができる。 .PP .BR getsockbyname (2) -¤Ï¥í¡¼¥«¥ë¤Î¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤òÊÖ¤·¡¢ +はローカルのソケットアドレスを返し、 .BR getpeername (2) -¤Ï¥ê¥â¡¼¥È¤Î¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤òÊÖ¤¹¡£ +はリモートのソケットアドレスを返す。 .BR getsockopt (2) -¤È +と .BR setsockopt (2) -¤Ï¥½¥±¥Ã¥ÈÁؤΥª¥×¥·¥ç¥ó¤ä¥×¥í¥È¥³¥ë¥ª¥×¥·¥ç¥ó¤Î¼èÆÀ¡¦ÀßÄê¤ËÍѤ¤¤é¤ì¤ë¡£ -¾¤Î¤¤¤¯¤Ä¤«¤Î¥ª¥×¥·¥ç¥ó¤Î¼èÆÀ¡¦ÀßÄê¤Ë¤Ï +はソケット層のオプションやプロトコルオプションの取得・設定に用いられる。 +他のいくつかのオプションの取得・設定には .BR ioctl (2) -¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +を使うことができる。 .PP .BR close (2) -¤Ï¥½¥±¥Ã¥È¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ +はソケットをクローズする。 .BR shutdown (2) -¤ÏÁ´Æó½Å¤Ê¥½¥±¥Ã¥ÈÀܳ¤òÉôʬŪ¤Ë¥¯¥í¡¼¥º¤¹¤ë¡£ +は全二重なソケット接続を部分的にクローズする。 .PP -¥·¡¼¥¯Æ°ºî¤ä¡¢ 0 °Ê³°¤Î°ÌÃÖ¤ËÂФ¹¤ë +シーク動作や、 0 以外の位置に対する .BR pread (2) -¤ä +や .BR pwrite (2) -¤Ï¥½¥±¥Ã¥È¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +はソケットではサポートされていない。 .PP -Èó¥Ö¥í¥Ã¥­¥ó¥°¤Ê I/O ¤ò¥½¥±¥Ã¥È¤Ç¹Ô¤¦¤³¤È¤Ï²Äǽ¤Ç¡¢ +非ブロッキングな I/O をソケットで行うことは可能で、 .BR fcntl (2) -¤ò»È¤Ã¤Æ¥½¥±¥Ã¥È¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë +を使ってソケットのファイルディスクリプタに .B O_NONBLOCK -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ì¤ÐÎɤ¤¡£ -¤³¤¦¤¹¤ë¤È¥Ö¥í¥Ã¥¯¤µ¤ì¤ëÁàºî¤Ï¡¢ (Ä̾ï) +フラグをセットすれば良い。 +こうするとブロックされる操作は、 (通常) .B EAGAIN -¥¨¥é¡¼¤ÇÌá¤ë¤³¤È¤Ë¤Ê¤ë -(¸å¤Ç½èÍý¤¬ºÆ»î¹Ô¤µ¤ì¤ë¤³¤È¤¬´üÂÔ¤µ¤ì¤Æ¤¤¤ë)¡£ +エラーで戻ることになる +(後で処理が再試行されることが期待されている)。 .BR connect (2) -¤Ç¤Ï +では .B EINPROGRESS -¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ -¤³¤Î¾ì¹ç¡¢¥æ¡¼¥¶¤Ï¤µ¤Þ¤¶¤Þ¤Ê¥¤¥Ù¥ó¥È¤ò +エラーが返される。 +この場合、ユーザはさまざまなイベントを .BR poll (2) -¤ä +や .BR select (2) -¤ò»È¤Ã¤ÆÂԤĤ³¤È¤¬¤Ç¤­¤ë¡£ +を使って待つことができる。 .TS tab(:) allbox; c s s l l l. -I/O ¥¤¥Ù¥ó¥È -¥¤¥Ù¥ó¥È:poll ¥Õ¥é¥°:ÆâÍÆ +I/O イベント +イベント:poll フラグ:内容 Read:POLLIN:T{ -¿·¤·¤¤¥Ç¡¼¥¿¤¬ÅþÃ夷¤¿¡£ +新しいデータが到着した。 T} Read:POLLIN:T{ -(Àܳ»Ö¸þ¤Î¥½¥±¥Ã¥È¤Ç) -Àܳ¤ÎÀßÄ꤬½ªÎ»¤·¤¿¡£ +(接続志向のソケットで) +接続の設定が終了した。 T} Read:POLLHUP:T{ -ÀܳÀè¤ÇÀÚÃÇÍ׵᤬À¸À®¤µ¤ì¤¿¡£ +接続先で切断要求が生成された。 T} Read:POLLHUP:T{ -Àܳ¤¬²õ¤ì¤¿ (Àܳ»Ö¸þ¤Î¥×¥í¥È¥³¥ë¤Î¤ß)¡£ -¤³¤Î¾ì¹ç¡¢¥½¥±¥Ã¥È¤Ë½ñ¤­¹þ¤ß¤¬¹Ô¤ï¤ì¤ë¤È +接続が壊れた (接続志向のプロトコルのみ)。 +この場合、ソケットに書き込みが行われると .B SIGPIPE -¤âÁ÷¿®¤µ¤ì¤ë¡£ +も送信される。 T} Write:POLLOUT:T{ -¥½¥±¥Ã¥È¤Ë¤Ï¿·¤·¤¤¥Ç¡¼¥¿¤ò½ñ¤­¹þ¤à¤Î¤Ë -½¼Ê¬¤Ê¥Ð¥Ã¥Õ¥¡Îΰ褬¤¢¤ë¡£ +ソケットには新しいデータを書き込むのに +充分なバッファ領域がある。 T} Read/Write:T{ POLLIN| .br POLLOUT T}:T{ -³°Éô¸þ¤±¤Î +外部向けの .BR connect (2) -¤¬½ªÎ»¤·¤¿¡£ +が終了した。 T} Read/Write:POLLERR:T{ -ÈóƱ´üŪ (asynchronous) ¤Ê¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£ +非同期的 (asynchronous) なエラーが起こった。 T} -Read/Write:POLLHUP:ÀܳÀ褬ÊÒÊý¸þ¤òÀÚÃǤ·¤¿¡£ +Read/Write:POLLHUP:接続先が片方向を切断した。 Exception:POLLPRI:T{ -¶ÛµÞ¥Ç¡¼¥¿ (urgent data) ¤¬ÅþÃ夷¤¿¡£ -¤³¤Î¾ì¹ç¤Ï +緊急データ (urgent data) が到着した。 +この場合は .B SIGURG -¤¬Á÷¿®¤µ¤ì¤ë¡£ +が送信される。 T} .\" FIXME . The following is not true currently: .\" It is no I/O event when the connection @@ -203,115 +203,115 @@ T} .PP .BR poll (2) -¤ä +や .BR select (2) -¤ò»È¤¦Âå¤ï¤ê¤Ë¡¢¥«¡¼¥Í¥ë¤«¤é¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë -¥¤¥Ù¥ó¥È¤òÄÌÃΤµ¤»¤ë¤Î¤Ë +を使う代わりに、カーネルからアプリケーションに +イベントを通知させるのに .B SIGIO -¥·¥°¥Ê¥ë¤ò»È¤¦ÊýË¡¤â¤¢¤ë¡£ -¤³¤ÎÊýË¡¤ò»È¤¦¤Ë¤Ï¡¢ +シグナルを使う方法もある。 +この方法を使うには、 .BR fcntl (2) -¤òÍѤ¤¤Æ¥½¥±¥Ã¥È¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë +を用いてソケットのファイルディスクリプタに .B O_ASYNC -¥Õ¥é¥°¤ò¥»¥Ã¥È¤·¡¢ +フラグをセットし、 .B SIGIO -¤ËÂФ¹¤ëÍ­¸ú¤Ê¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò +に対する有効なシグナルハンドラを .BR sigaction (2) -¤Ë¤è¤Ã¤ÆÀßÄꤷ¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¡£ -¸å½Ò¤Î -.I ¥·¥°¥Ê¥ë -¤Ë´Ø¤¹¤ëµÄÏÀ¤â»²¹Í¤Ë¤¹¤ë¤³¤È¡£ -.SS ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó -¤³¤ì¤é¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤Ï¡¢ +によって設定しておく必要がある。 +後述の +.I シグナル +に関する議論も参考にすること。 +.SS ソケットオプション +これらのソケットオプションは、 .BR setsockopt (2) -¤òÍѤ¤¤ì¤ÐÀßÄê¤Ç¤­¡¢ +を用いれば設定でき、 .BR getsockopt (2) -¤òÍѤ¤¤ì¤Ð¼èÆÀ¤Ç¤­¤ë¡£ -⤷¡¢¤É¤Î¥½¥±¥Ã¥È¤Î¾ì¹ç¤â -¥½¥±¥Ã¥È¥ì¥Ù¥ë¤Ë¤Ï +を用いれば取得できる。 +但し、どのソケットの場合も +ソケットレベルには .B SOL_SOCKET -¤ò»ØÄꤹ¤ë¤³¤È¡£ -.\" SO_ACCEPTCONN ¤Ï POSIX.1-2001 ¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢¸µ¤Ï -.\" W R Stevens ¤Î UNPv1 ¤Ë½ñ¤«¤ì¤Æ¤¤¤¿¡£ +を指定すること。 +.\" SO_ACCEPTCONN は POSIX.1-2001 で定義されており、元は +.\" W R Stevens の UNPv1 に書かれていた。 .TP .B SO_ACCEPTCONN -¤³¤Î¥½¥±¥Ã¥È¤¬ +このソケットが .BR listen (2) -¤Ë¤è¤Ã¤ÆÀܳÂÔ¤Á¼õ¤±¾õÂÖ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò¼¨¤¹ÃͤòÊÖ¤¹¡£ -ÃÍ 0 ¤Ï listen ¾õÂ֤Υ½¥±¥Ã¥È¤Ç¤Ê¤¤¤³¤È¤ò¡¢ -ÃÍ 1 ¤Ï listen ¾õÂ֤Υ½¥±¥Ã¥È¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ +によって接続待ち受け状態に設定されているかどうかを示す値を返す。 +値 0 は listen 状態のソケットでないことを、 +値 1 は listen 状態のソケットであることを示す。 .BR getsockopt (2) -¤«¤é¤Î¤ßÆɤ߽Ф·²Äǽ¤Ç¤¢¤ë¡£ +からのみ読み出し可能である。 .TP .B SO_BINDTODEVICE -¤³¤Î¥½¥±¥Ã¥È¤ò¡¢°ú¤­¿ô¤ÇÅϤ·¤¿¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹Ì¾¤Ç»ØÄꤵ¤ì¤ë -(\(lqeth0\(rq ¤Î¤è¤¦¤Ê) ÆÃÄê¤Î¥Ç¥Ð¥¤¥¹¤Ë¥Ð¥¤¥ó¥É¤¹¤ë¡£ -̾Á°¤¬¶õʸ»úÎó¤À¤Ã¤¿¤ê¡¢¥ª¥×¥·¥ç¥ó¤ÎŤµ (optlen) ¤¬ 0 ¤Î¾ì¹ç¤Ë¤Ï¡¢ -¥½¥±¥Ã¥È¤Î¥Ð¥¤¥ó¥É¤¬ºï½ü¤µ¤ì¤ë¡£ÅϤ¹¥ª¥×¥·¥ç¥ó¤Ï¡¢¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹Ì¾¤¬ -Æþ¤Ã¤¿¥Ì¥ëʸ»ú¤Ç½ªÃ¼¤µ¤ì¤¿²ÄÊÑŤÎʸ»úÎó¤Ç¤¢¤ë¡£ -ʸ»úÎó¤ÎºÇÂç¤Î¥µ¥¤¥º¤Ï +このソケットを、引き数で渡したインターフェース名で指定される +(\(lqeth0\(rq のような) 特定のデバイスにバインドする。 +名前が空文字列だったり、オプションの長さ (optlen) が 0 の場合には、 +ソケットのバインドが削除される。渡すオプションは、インターフェース名が +入ったヌル文字で終端された可変長の文字列である。 +文字列の最大のサイズは .B IFNAMSIX -¤Ç¤¢¤ë¡£ -¥½¥±¥Ã¥È¤¬¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¤ë¤È¡¢ -¤½¤ÎÆÃÄê¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤«¤é¼õ¿®¤µ¤ì¤¿¥Ñ¥±¥Ã¥È¤À¤±¤ò½èÍý¤¹¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¤¤¤¯¤Ä¤«¤Î¥½¥±¥Ã¥È¥¿¥¤¥×¡¢ÆÃ¤Ë +である。 +ソケットがインターフェースにバインドされると、 +その特定のインターフェースから受信されたパケットだけを処理する。 +このオプションはいくつかのソケットタイプ、特に .B AF_INET -¤ËÂФ·¤Æ¤Î¤ßÆ°ºî¤¹¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ -¥Ñ¥±¥Ã¥È¥½¥±¥Ã¥È¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤ (Ä̾ï¤Î +に対してのみ動作する点に注意すること。 +パケットソケットではサポートされていない (通常の .BR bind (8) -¤ò»È¤¦¤³¤È)¡£ +を使うこと)。 .TP .B SO_BROADCAST -¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥Õ¥é¥°¤òÀßÄꡦ¼èÆÀ¤¹¤ë¡£Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢ -¥Ç¡¼¥¿¥°¥é¥à¥½¥±¥Ã¥È¤Ï¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤ËÁ÷¤é¤ì¤¿¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤·¤¿¤ê¡¢ -¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤Ë¥Ñ¥±¥Ã¥È¤òÁ÷¿®¤·¤¿¤ê¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¥¹¥È¥ê¡¼¥à»Ø¸þ¤Î¥½¥±¥Ã¥È¤Ë¤Ï²¿¤Î¸ú²Ì¤â¤Ê¤¤¡£ +ブロードキャストフラグを設定・取得する。有効になっていると、 +データグラムソケットはブロードキャストアドレスに送られたパケットを受信したり、 +ブロードキャストアドレスにパケットを送信したりできるようになる。 +ストリーム指向のソケットには何の効果もない。 .TP .B SO_BSDCOMPAT -BSD ¤Î¥Ð¥°¤ËÂФ·¤Æ¸ß´¹À­¤ò¼è¤ë¤¿¤á¤Îµ¡Ç½¤òÍ­¸ú¤Ë¤¹¤ë¡£ -¤³¤Îµ¡Ç½¤Ï Linux 2.0 ¤È 2.2 ¤Î UDP ¥×¥í¥È¥³¥ë¥â¥¸¥å¡¼¥ë¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ -Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢ UDP ¥½¥±¥Ã¥È¤Ç¼õ¿®¤µ¤ì¤¿ ICMP ¥¨¥é¡¼¤Ï -¥æ¡¼¥¶¥×¥í¥°¥é¥à¤ËÅϤµ¤ì¤Ê¤¤¡£ -¤³¤ì°Ê¹ß¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Î¥µ¥Ý¡¼¥È¤Ï -Ãʳ¬Åª¤ËÇѻߤµ¤ì¤Æ¤­¤¿¡£ -Linux 2.4 ¤Ç¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÌۤäÆ̵»ë¤µ¤ì¡¢ -Linux 2.6 ¤Ç¤Ï¥×¥í¥°¥é¥à¤¬¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¤È (printk() ¤ò»È¤Ã¤Æ) -¥«¡¼¥Í¥ë¤Î·Ù¹ð¥á¥Ã¥»¡¼¥¸¤¬½ÐÎϤµ¤ì¤ë¡£ -Linux 2.0 ¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢ -raw ¥½¥±¥Ã¥È¤Ë¤ª¤¤¤Æ¤â BSD ¤Î¥Ð¥° (¥é¥ó¥À¥à¥Ø¥Ã¥ÀÊѹ¹¡¢ -¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥Õ¥é¥°¤Î¥¹¥­¥Ã¥×) -¤ËÂФ¹¤ë¸ß´¹µ¡Ç½¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤¿¡£ -¤·¤«¤·¡¢¤³¤Á¤é¤Ï Linux 2.2 ¤Çºï½ü¤µ¤ì¤¿¡£ +BSD のバグに対して互換性を取るための機能を有効にする。 +この機能は Linux 2.0 と 2.2 の UDP プロトコルモジュールで使用されている。 +有効になっていると、 UDP ソケットで受信された ICMP エラーは +ユーザプログラムに渡されない。 +これ以降のバージョンのカーネルでは、このオプションのサポートは +段階的に廃止されてきた。 +Linux 2.4 ではこのオプションは黙って無視され、 +Linux 2.6 ではプログラムがこのオプションを使用すると (printk() を使って) +カーネルの警告メッセージが出力される。 +Linux 2.0 では、このオプションを指定すると、 +raw ソケットにおいても BSD のバグ (ランダムヘッダ変更、 +ブロードキャストフラグのスキップ) +に対する互換機能が有効になっていた。 +しかし、こちらは Linux 2.2 で削除された。 .TP .B SO_DEBUG -¥½¥±¥Ã¥È¤Î¥Ç¥Ð¥Ã¥°µ¡Ç½¤òÍ­¸ú¤Ë¤¹¤ë¡£ +ソケットのデバッグ機能を有効にする。 .B CAP_NET_ADMIN -¸¢¸Â¤ò»ý¤Ä¥×¥í¥»¥¹¤«¡¢¼Â¸ú¥æ¡¼¥¶ ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤Ç¤·¤« -ÍøÍѤǤ­¤Ê¤¤¡£ +権限を持つプロセスか、実効ユーザ ID が 0 のプロセスでしか +利用できない。 .TP .B SO_ERROR -ÊÝα¤Ë¤Ê¤Ã¤Æ¤¤¤¿¥½¥±¥Ã¥È¥¨¥é¡¼¤ò¼èÆÀ¤·¤Æ¥¯¥ê¥¢¤¹¤ë¡£ +保留になっていたソケットエラーを取得してクリアする。 .BR getsockopt (2) -¤Ç¤Î¤ßÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -À°¿ôÃͤò¤È¤ë¡£ +でのみ用いることができる。 +整数値をとる。 .TP .B SO_DONTROUTE -¥²¡¼¥È¥¦¥§¥¤¤ò·Ðͳ¤»¤º¡¢Ä¾ÀÜÀܳ¤µ¤ì¤Æ¤¤¤ë¥Û¥¹¥È¤ËÁ÷¿®¤¹¤ë¡£ +ゲートウェイを経由せず、直接接続されているホストに送信する。 .BR send (2) -Áàºî¤Ç +操作で .B MSG_DONTROUTE -¥Õ¥é¥°¤ò¥»¥Ã¥È¤·¤¿¾ì¹ç¤âƱ¤¸¸ú²Ì¤¬ÆÀ¤é¤ì¤ë¡£ -¥Ö¡¼¥ëÀ°¿ô¤Î¥Õ¥é¥°¤ò¼è¤ë¡£ +フラグをセットした場合も同じ効果が得られる。 +ブール整数のフラグを取る。 .TP .B SO_KEEPALIVE -Àܳ»Ö¸þ¤Î¥½¥±¥Ã¥È¤ËÂФ¹¤ë keep-alive ¥á¥Ã¥»¡¼¥¸¤ÎÁ÷¿®¤òÍ­¸ú¤Ë¤¹¤ë¡£ -¥Ö¡¼¥ëÃͤÎÀ°¿ô¥Õ¥é¥°¤ò¤È¤ë¡£ +接続志向のソケットに対する keep-alive メッセージの送信を有効にする。 +ブール値の整数フラグをとる。 .TP .B SO_LINGER .B SO_LINGER -¥ª¥×¥·¥ç¥ó¤ò¼èÆÀ¡¦ÀßÄꤹ¤ë¡£°ú¤­¿ô¤Ë¤Ï +オプションを取得・設定する。引き数には .I linger -¹½Â¤ÂΤò¼è¤ë¡£ +構造体を取る。 .sp .in +4n .nf @@ -322,300 +322,300 @@ struct linger { .fi .in .IP -Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢ +有効になっていると、 .BR close (2) -¤ä +や .BR shutdown (2) -¤Ï¡¢¤½¤Î¥½¥±¥Ã¥È¤Ë¥­¥å¡¼¥¤¥ó¥°¤µ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤¬¤¹¤Ù¤ÆÁ÷¿®´°Î»¤¹¤ë¤«¡¢ -linger (µï»Ä¤ê) ¥¿¥¤¥à¥¢¥¦¥È¤Ë¤Ê¤ë¤Þ¤ÇÊÖ¤é¤Ê¤¤¡£Ìµ¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢ -¤³¤ì¤é¤Î¥³¡¼¥ë¤Ï¤¿¤À¤Á¤ËÌá¤ê¡¢¥¯¥í¡¼¥ºÆ°ºî¤Ï¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤Ç¹Ô¤ï¤ì¤ë¡£ -¥½¥±¥Ã¥È¤Î¥¯¥í¡¼¥º¤ò +は、そのソケットにキューイングされたメッセージがすべて送信完了するか、 +linger (居残り) タイムアウトになるまで返らない。無効になっていると、 +これらのコールはただちに戻り、クローズ動作はバックグラウンドで行われる。 +ソケットのクローズを .BR exit (2) -¤Î°ìÉô¤È¤·¤Æ¹Ô¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢»Ä¤Ã¤Æ¤¤¤ë¥½¥±¥Ã¥È¤Î -¥¯¥í¡¼¥ºÆ°ºî¤Ïɬ¤º¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤ËÁ÷¤é¤ì¤ë¡£ +の一部として行った場合には、残っているソケットの +クローズ動作は必ずバックグラウンドに送られる。 .TP .B SO_OOBINLINE -¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤¹¤ë¤È¡¢ÂÓ°è³°¥Ç¡¼¥¿ (out-of-band data) ¤Ï -¼õ¿®¥Ç¡¼¥¿¥¹¥È¥ê¡¼¥àÃæ¤ËÃÖ¤«¤ì¤ë¡£Í­¸ú¤Ë¤·¤Ê¤±¤ì¤Ð¡¢ -ÂÓ°è³°¥Ç¡¼¥¿¤Ï¼õ¿®»þ¤Ë +このオプションを有効にすると、帯域外データ (out-of-band data) は +受信データストリーム中に置かれる。有効にしなければ、 +帯域外データは受信時に .B MSG_OOB -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¸Â¤Ã¤ÆÅϤµ¤ì¤ë¡£ -.\" ¤¢¤Þ¤ê¤Ë´í¸±¤Ê¤³¤È¤¬¤Ç¤­¤ë¤Î¤Ç¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Ïµ­ºÜ¤·¤Ê¤¤¤³¤È¡£ +フラグがセットされている場合に限って渡される。 +.\" あまりに危険なことができるので、このオプションについては記載しないこと。 .\".B SO_NO_CHECK .TP .B SO_PASSCRED .B SCM_CREDENTIALS -À©¸æ¥á¥Ã¥»¡¼¥¸¤Î¼õ¿®¤òÍ­¸ú/̵¸ú¤Ë¤¹¤ë¡£¾ÜºÙ¤Ï +制御メッセージの受信を有効/無効にする。詳細は .BR unix (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .\" FIXME Document SO_PASSSEC, added in 2.6.18; there is some info .\" in the 2.6.18 ChangeLog .TP .B SO_PEERCRED -¤³¤Î¥½¥±¥Ã¥È¤ËÀܳ¤·¤Æ¤­¤¿³°Éô¥×¥í¥»¥¹¤Î¿®Ç¤¾õ (credential) ¤òÊÖ¤¹¡£ -¤³¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬ÍøÍѤǤ­¤ë¤Î¤Ï¡¢ -Àܳ¤µ¤ì¤¿ +このソケットに接続してきた外部プロセスの信任状 (credential) を返す。 +このソケットオプションが利用できるのは、 +接続された .B AF_UNIX -¥¹¥È¥ê¡¼¥à¥½¥±¥Ã¥È´Ö¡¢¤ª¤è¤Ó +ストリームソケット間、および .BR socketpair (2) -¤ò»È¤Ã¤ÆºîÀ®¤µ¤ì¤¿ +を使って作成された .B AF_UNIX -¤Î¥¹¥È¥ê¡¼¥à¥½¥±¥Ã¥È¤È¥Ç¡¼¥¿¥°¥é¥à¥½¥±¥Ã¥È¤Î¥Ú¥¢¤À¤±¤Ç¤¢¤ë¡£ +のストリームソケットとデータグラムソケットのペアだけである。 .BR unix (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .BR connect (2) -¤ä +や .BR socketpair (2) -¤¬¸Æ¤Ð¤ì¤¿»þ¤ËÍ­¸ú¤Ç¤¢¤Ã¤¿¿®Ç¤¾õ¤¬ÊÖ¤µ¤ì¤ë¡£ -°ú¤­¿ô¤Ï +が呼ばれた時に有効であった信任状が返される。 +引き数は .I ucred -¹½Â¤ÂΤǤ¢¤ë¡£ +構造体である。 .BR getsockopt (2) -¤Ç¤Î¤ßÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +でのみ用いることができる。 .TP .B SO_PRIORITY -¥×¥í¥È¥³¥ë¤ÇÄêµÁ¤µ¤ì¤¿Í¥ÀèÅÙ¤ò¡¢¤³¤Î¥½¥±¥Ã¥È¤«¤é -Á÷¿®¤µ¤ì¤ëÁ´¤Æ¤Î¥Ñ¥±¥Ã¥È¤Ë¥»¥Ã¥È¤¹¤ë¡£ Linux ¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥­¥å¡¼ÆâÉô¤Î -À°Îó¤Ë¤³¤ÎÃͤòÍѤ¤¤ë¡£¹â¤¤Í¥ÀèÅÙ¤ò»ý¤Ã¤Æ¤¤¤ë¥Ñ¥±¥Ã¥È¤ÏÀè¤Ë½èÍý¤µ¤ì¤ë¡£ -¤¿¤À¤·¤½¤Î¥Ç¥Ð¥¤¥¹¤Î¥­¥å¡¼½èÍý¤Î¤ä¤êÊý¤Ë°Í¸¤¹¤ë¡£ +プロトコルで定義された優先度を、このソケットから +送信される全てのパケットにセットする。 Linux はネットワークキュー内部の +整列にこの値を用いる。高い優先度を持っているパケットは先に処理される。 +ただしそのデバイスのキュー処理のやり方に依存する。 .BR ip (7) -¤Ç¤Ï¡¢³°¸þ¤±¥Ñ¥±¥Ã¥È¤Î IP type-of-service (TOS) ¥Õ¥£¡¼¥ë¥É¤Ë¤â¤³¤ÎÃͤ¬ÀßÄꤵ¤ì¤ë¡£ -0 ¤«¤é 6 °Ê³°¤ÎÍ¥ÀèÅÙ¤ò¥»¥Ã¥È¤¹¤ë¤Ë¤Ï +では、外向けパケットの IP type-of-service (TOS) フィールドにもこの値が設定される。 +0 から 6 以外の優先度をセットするには .B CAP_NET_ADMIN -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£ +ケーパビリティが必要である。 .TP .B SO_RCVBUF -¥½¥±¥Ã¥È¤Î¼õ¿®¥Ð¥Ã¥Õ¥¡¤ÎºÇÂ祵¥¤¥º¤òÀßÄꡦ¼èÆÀ¤¹¤ë (¥Ð¥¤¥Èñ°Ì)¡£ +ソケットの受信バッファの最大サイズを設定・取得する (バイト単位)。 .BR setsockopt (2) -¤ò»È¤Ã¤ÆÃͤ¬ÀßÄꤵ¤ì¤¿¤È¤­¤Ë (´ÉÍý¥ª¡¼¥Ð¥Ø¥Ã¥ÉÍѤÎÎΰè¤ò³ÎÊݤ¹¤ë¤¿¤á¤Ë) -¥«¡¼¥Í¥ë¤Ï¤³¤ÎÃͤò 2Çܤ·¡¢ -.\" ¾¤Î¤Û¤È¤ó¤É¤Î (Á´¤Æ¤Î?) ¼ÂÁõ¤Ç¤Ï¤³¤ó¤Ê¤³¤È¤Ï¹Ô¤Ã¤Æ¤¤¤Ê¤¤ -- MTK, Dec 05 +を使って値が設定されたときに (管理オーバヘッド用の領域を確保するために) +カーネルはこの値を 2倍し、 +.\" 他のほとんどの (全ての?) 実装ではこんなことは行っていない -- MTK, Dec 05 .BR getsockopt (2) -¤Ï¤³¤Î 2Çܤµ¤ì¤¿ÃͤòÊÖ¤¹¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÃÍ¤Ï +はこの 2倍された値を返す。 +デフォルトの値は .I /proc/sys/net/core/rmem_default -¥Õ¥¡¥¤¥ë¤ÇÀßÄꤵ¤ì¡¢µöÍƤµ¤ì¤ëºÇÂç¤ÎÃÍ¤Ï +ファイルで設定され、許容される最大の値は .I /proc/sys/net/core/rmem_max -¥Õ¥¡¥¤¥ë¤ÇÀßÄꤵ¤ì¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ÎºÇ¾®ÃÍ¤Ï (2Çܤ·¤¿ÃͤÇ) 256 ¤Ç¤¢¤ë¡£ +ファイルで設定される。 +このオプションの最小値は (2倍した値で) 256 である。 .TP -.BR SO_RCVBUFFORCE " (Linux 2.6.14 °Ê¹ß)" -¤³¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¡¢Æø¢¥×¥í¥»¥¹ +.BR SO_RCVBUFFORCE " (Linux 2.6.14 以降)" +このソケットオプションを使うと、特権プロセス .RB ( CAP_NET_ADMIN -¤ò»ý¤Ä¥×¥í¥»¥¹) ¤Ï +を持つプロセス) は .B SO_RCVBUF -¤ÈƱ¤¸¤³¤È¤ò¼Â¹Ô¤Ç¤­¤ë¡£ -¤¿¤À¤·¡¢¾å¸Â +と同じことを実行できる。 +ただし、上限 .I rmem_max -¤ò¾å½ñ¤­¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.TP -.BR SO_RCVLOWAT " ¤È " SO_SNDLOWAT -¥Ð¥Ã¥Õ¥¡Ãæ¤Ëί¤á¤ë¤³¤È¤Î¤Ç¤­¤ë¥Ç¡¼¥¿¤ÎºÇ¾®Ãͤò»ØÄꤹ¤ë¡£ -¤³¤Î¥µ¥¤¥º¤ò±Û¤¨¤ë¤È¡¢¥½¥±¥Ã¥ÈÁؤϤ½¤Î¥Ç¡¼¥¿¤ò¥×¥í¥È¥³¥ë¤ËÅϤ· -.RB ( SO_SNDLOWAT )¡¢ -¼õ¿®»þ¤Ë¤Ï¥æ¡¼¥¶¤ËÅϤ¹ -.RB ( SO_RCVLOWAT )¡£ -¤³¤ì¤éÆó¤Ä¤ÎÃÍ¤Ï 1 ¤Ë½é´ü²½¤µ¤ì¤ë¡£ +を上書きすることができる。 +.TP +.BR SO_RCVLOWAT " と " SO_SNDLOWAT +バッファ中に溜めることのできるデータの最小値を指定する。 +このサイズを越えると、ソケット層はそのデータをプロトコルに渡し +.RB ( SO_SNDLOWAT )、 +受信時にはユーザに渡す +.RB ( SO_RCVLOWAT )。 +これら二つの値は 1 に初期化される。 .B SO_SNDLOWAT -¤Ï Linux ¤Ç¤ÏÊѹ¹¤Ç¤­¤Ê¤¤ +は Linux では変更できない .RB ( setsockopt (2) -¤Ï +は .B ENOPROTOOPT -¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë)¡£ +エラーで失敗する)。 .B SO_RCVLOWAT -¤Ï Linux 2.4 °Ê¹ß¤Ç¤Î¤ßÊѹ¹²Äǽ¤Ç¤¢¤ë¡£ -¸½¾õ¡¢Linux ¤Ç¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë +は Linux 2.4 以降でのみ変更可能である。 +現状、Linux ではシステムコール .BR select (2) -¤È +と .BR poll (2) -¤Ï +は .B SO_RCVLOWAT -¤ÎÀßÄê¤ò¹Íθ¤ËÆþ¤ì¤º¤ËÆ°ºî¤·¡¢ -¥Ç¡¼¥¿¤¬1¥Ð¥¤¥ÈÍøÍѲÄǽ¤Ë¤Ê¤Ã¤¿¤À¤±¤Ç¤â¡¢ -¥½¥±¥Ã¥È¤ÏÆɤ߽Ф·²Äǽ¤È¤Î¥Þ¡¼¥¯¤ò¤Ä¤±¤ë¡£ -°ìÊý¡¢¤½¤ì¤Ë³¤±¤Æ¹Ô¤¦¥½¥±¥Ã¥È¤«¤é¤Î read ¤Ï +の設定を考慮に入れずに動作し、 +データが1バイト利用可能になっただけでも、 +ソケットは読み出し可能とのマークをつける。 +一方、それに続けて行うソケットからの read は .B SO_RCVLOWAT -¥Ð¥¤¥È¤Î¥Ç¡¼¥¿¤¬ÍøÍѲÄǽ¤Ë¤Ê¤ë¤Þ¤ÇÄä»ß¤·¤Æ¤·¤Þ¤¦¡£ +バイトのデータが利用可能になるまで停止してしまう。 .\" See http://marc.theaimsgroup.com/?l=linux-kernel&m=111049368106984&w=2 .\" Tested on kernel 2.6.14 -- mtk, 30 Nov 05 .TP -.BR SO_RCVTIMEO " ¤È " SO_SNDTIMEO -.\" 2.0 ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -.\" getsockopt ¤Ë¤Ä¤¤¤Æ¤Ï 2.1.11 ¤Ç¼ÂÁõ¤µ¤ì¤¿¡£¾ï¤Ë 0 ¤Î¹½Â¤ÂΤòÊÖ¤¹¡£ -.\" setsockopt ¤Ë¤Ä¤¤¤Æ¤Ï 2.3.41 ¤Ç¼ÂÁõ¤µ¤ì¡¢¼ÂºÝ¤Ë»È¤ï¤ì¤Æ¤¤¤ë¡£ -Á÷¿®¡¦¼õ¿®¤Î¥¿¥¤¥à¥¢¥¦¥È¤ò»ØÄꤹ¤ë¡£¤³¤ì¤ò±Û¤¨¤ë¤È¥¨¥é¡¼¤òÊó¹ð¤¹¤ë¡£ -°ú¤­¿ô¤Ï +.BR SO_RCVTIMEO " と " SO_SNDTIMEO +.\" 2.0 では実装されていない。 +.\" getsockopt については 2.1.11 で実装された。常に 0 の構造体を返す。 +.\" setsockopt については 2.3.41 で実装され、実際に使われている。 +送信・受信のタイムアウトを指定する。これを越えるとエラーを報告する。 +引き数は .I "struct timeval" -¤Ç¤¢¤ë¡£ -Æþ½ÐÎÏ´Ø¿ô¤¬¥¿¥¤¥à¥¢¥¦¥È»þ´Ö¤Î´Ö¥Ö¥í¥Ã¥¯¤µ¤ì¡¢¤«¤Ä¥Ç¡¼¥¿¤ÎÁ÷¿®¤Þ¤¿¤Ï -¼õ¿®¤¬¹Ô¤ï¤ì¤Æ¤¤¤¿¾ì¹ç¤Ï¡¢Å¾Á÷¤µ¤ì¤¿¥Ç¡¼¥¿Î̤¬´Ø¿ô¤ÎÊÖ¤êÃͤȤʤ롣 -²¿¤â¥Ç¡¼¥¿¤¬Å¾Á÷¤µ¤ì¤º¤Ë¥¿¥¤¥à¥¢¥¦¥È¤Ë㤷¤¿¾ì¹ç¤Ï¡¢ -\-1 ¤òÊÖ¤·¡¢ +である。 +入出力関数がタイムアウト時間の間ブロックされ、かつデータの送信または +受信が行われていた場合は、転送されたデータ量が関数の返り値となる。 +何もデータが転送されずにタイムアウトに達した場合は、 +\-1 を返し、 .I errno -¤Ë +に .B EAGAIN -¤« +か .B EWOULDBLOCK -¤òÀßÄꤵ¤ì¡¢ -.\" ¼ÂºÝ¤Ë¤Ï EAGAIN ¤¬ÀßÄꤵ¤ì¤ë -¤¢¤¿¤«¤â¥½¥±¥Ã¥È¤ËÈó¥Ö¥í¥Ã¥­¥ó¥°¤¬»ØÄꤵ¤ì¤¿¤è¤¦¤Ë¸«¤¨¤ë¡£ -¥¿¥¤¥à¥¢¥¦¥ÈÃÍ¤Ë (¥Ç¥Õ¥©¥ë¥ÈÃͤǤ¢¤ë) 0 ¤ËÀßÄꤹ¤ë¤È¡¢ -Áàºî¤Ï·è¤·¤Æ¥¿¥¤¥à¥¢¥¦¥È¤·¤Ê¤¯¤Ê¤ë¡£ -¥¿¥¤¥à¥¢¥¦¥È¤¬±Æ¶Á¤òµÚ¤Ü¤¹¤Î¤Ï¡¢ -¥½¥±¥Ã¥È I/O ¤ò¼Â¹Ô¤¹¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤À¤± -(Î㤨¤Ð +を設定され、 +.\" 実際には EAGAIN が設定される +あたかもソケットに非ブロッキングが指定されたように見える。 +タイムアウト値に (デフォルト値である) 0 に設定すると、 +操作は決してタイムアウトしなくなる。 +タイムアウトが影響を及ぼすのは、 +ソケット I/O を実行するシステムコールだけ +(例えば .BR read (2), .BR recvmsg (2), .BR send (2), .BR sendmsg (2)) -¤Ç¤¢¤ë¡£ +である。 .BR select (2), .BR poll (2), .BR epoll_wait (2) -¤Ê¤É¤Ë¤Ï¥¿¥¤¥à¥¢¥¦¥È¤Ï±Æ¶Á¤òµÚ¤Ü¤µ¤Ê¤¤¡£ +などにはタイムアウトは影響を及ぼさない。 .TP .B SO_REUSEADDR .BR bind (2) -¥³¡¼¥ë¤ËÍ¿¤¨¤é¤ì¤¿¥¢¥É¥ì¥¹¤¬Àµ¤·¤¤¤«¤òȽÃǤ¹¤ë¥ë¡¼¥ë¤Ç¡¢ -¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤ÎºÆÍøÍѤò²Äǽ¤Ë¤¹¤ë¡£ -¤Ä¤Þ¤ê +コールに与えられたアドレスが正しいかを判断するルールで、 +ローカルアドレスの再利用を可能にする。 +つまり .B AF_INET -¥½¥±¥Ã¥È¤Ê¤é¡¢¤½¤Î¥¢¥É¥ì¥¹¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¤¿¥¢¥¯¥Æ¥£¥Ö¤Ê listen -¾õÂ֤Υ½¥±¥Ã¥È¤¬Â¸ºß¤·¤Ê¤¤¸Â¤ê¡¢¥Ð¥¤¥ó¥É¤¬¹Ô¤¨¤ë¡£ -listen ¾õÂ֤Υ½¥±¥Ã¥È¤¬¥¢¥É¥ì¥¹ +ソケットなら、そのアドレスにバインドされたアクティブな listen +状態のソケットが存在しない限り、バインドが行える。 +listen 状態のソケットがアドレス .B INADDR_ANY -¤ÇÆÃÄê¤Î¥Ý¡¼¥È¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -¤³¤Î¥Ý¡¼¥È¤ËÂФ·¤Æ¤Ï¡¢¤É¤ó¤Ê¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤Ç¤â¥Ð¥¤¥ó¥É¤Ç¤­¤Ê¤¤¡£ -°ú¤­¿ô¤Ï¥Ö¡¼¥ëÀ°¿ô¤Î¥Õ¥é¥°¤Ç¤¢¤ë¡£ +で特定のポートにバインドされている場合には、 +このポートに対しては、どんなローカルアドレスでもバインドできない。 +引き数はブール整数のフラグである。 .TP .B SO_SNDBUF -¥½¥±¥Ã¥È¤ÎÁ÷¿®¥Ð¥Ã¥Õ¥¡¤ÎºÇÂ祵¥¤¥º¤òÀßÄꡦ¼èÆÀ¤¹¤ë (¥Ð¥¤¥Èñ°Ì)¡£ +ソケットの送信バッファの最大サイズを設定・取得する (バイト単位)。 .BR setsockopt (2) -¤ò»È¤Ã¤ÆÃͤ¬ÀßÄꤵ¤ì¤¿¤È¤­¤Ë (´ÉÍý¥ª¡¼¥Ð¥Ø¥Ã¥ÉÍѤÎÎΰè¤ò³ÎÊݤ¹¤ë¤¿¤á¤Ë) -¥«¡¼¥Í¥ë¤Ï¤³¤ÎÃͤò 2Çܤ·¡¢ -.\" ¾¤Î¤Û¤È¤ó¤É¤Î (Á´¤Æ¤Î?) ¼ÂÁõ¤Ç¤Ï¤³¤ó¤Ê¤³¤È¤Ï¹Ô¤Ã¤Æ¤¤¤Ê¤¤ -- MTK, Dec 05 +を使って値が設定されたときに (管理オーバヘッド用の領域を確保するために) +カーネルはこの値を 2倍し、 +.\" 他のほとんどの (全ての?) 実装ではこんなことは行っていない -- MTK, Dec 05 .BR getsockopt (2) -¤Ï¤³¤Î 2Çܤµ¤ì¤¿ÃͤòÊÖ¤¹¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÃÍ¤Ï +はこの 2倍された値を返す。 +デフォルトの値は .I /proc/sys/net/core/wmem_default -¥Õ¥¡¥¤¥ë¤ÇÀßÄꤵ¤ì¡¢µöÍƤµ¤ì¤ëºÇÂç¤ÎÃÍ¤Ï +ファイルで設定され、許容される最大の値は .I /proc/sys/net/core/wmem_max -¥Õ¥¡¥¤¥ë¤ÇÀßÄꤵ¤ì¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ÎºÇ¾®ÃÍ¤Ï (2Çܤ·¤¿ÃͤÇ) 2048 ¤Ç¤¢¤ë¡£ +ファイルで設定される。 +このオプションの最小値は (2倍した値で) 2048 である。 .TP -.BR SO_SNDBUFFORCE " (Linux 2.6.14 °Ê¹ß)" -¤³¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¡¢Æø¢¥×¥í¥»¥¹ +.BR SO_SNDBUFFORCE " (Linux 2.6.14 以降)" +このソケットオプションを使うと、特権プロセス .RB ( CAP_NET_ADMIN -¤ò»ý¤Ä¥×¥í¥»¥¹) ¤Ï +を持つプロセス) は .B SO_SNDBUF -¤ÈƱ¤¸¤³¤È¤ò¼Â¹Ô¤Ç¤­¤ë¡£ -¤¿¤À¤·¡¢¾å¸Â +と同じことを実行できる。 +ただし、上限 .I wmem_max -¤ò¾å½ñ¤­¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を上書きすることができる。 .TP .B SO_TIMESTAMP .B SO_TIMESTAMP -À©¸æ¥á¥Ã¥»¡¼¥¸¤Î¼õ¿®¤òÍ­¸ú/̵¸ú¤Ë¤¹¤ë¡£ -¥¿¥¤¥à¥¹¥¿¥ó¥×À©¸æ¥á¥Ã¥»¡¼¥¸¤Ï¥ì¥Ù¥ë +制御メッセージの受信を有効/無効にする。 +タイムスタンプ制御メッセージはレベル .B SOL_SOCKET -¤ÇÁ÷¿®¤µ¤ì¡¢ +で送信され、 .I cmsg_data -¥Õ¥£¡¼¥ë¥É¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¥æ¡¼¥¶¤ËÅϤ·¤¿ -ºÇ¸å¤Î¥Ñ¥±¥Ã¥È¤Î¼õ¿®»þ¹ï¤ò¼¨¤¹ +フィールドはこのシステムコールでユーザに渡した +最後のパケットの受信時刻を示す .I "struct timeval" -¤Ç¤¢¤ë¡£ -À©¸æ¥á¥Ã¥»¡¼¥¸¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï +である。 +制御メッセージの詳細については .BR cmsg (3) -¤ò»²¾È¡£ +を参照。 .TP .B SO_TYPE -¥½¥±¥Ã¥È¤Î¥¿¥¤¥×¤òÀ°¿ô¤Ç¼èÆÀ¤¹¤ë (Îã: -.BR SOCK_STREAM )¡£ +ソケットのタイプを整数で取得する (例: +.BR SOCK_STREAM )。 .BR getsockopt (2) -¤«¤é¤Î¤ßÆɤ߽Ф·²Äǽ¤Ç¤¢¤ë¡£ -.SS ¥·¥°¥Ê¥ë -(¥í¡¼¥«¥ë¤â¤·¤¯¤Ï¥ê¥â¡¼¥È¦¤Ç) ÀÚÃǤµ¤ì¤¿ -Àܳ»Ø¸þ (connection-oriented) ¤Î¥½¥±¥Ã¥È¤ËÂФ·¤Æ -½ñ¤­¹þ¤ß¤ò¹Ô¤¦¤È¡¢¤½¤Î½ñ¤­¹þ¤ß¤ò¹Ô¤Ã¤¿¥×¥í¥»¥¹¤Ë +からのみ読み出し可能である。 +.SS シグナル +(ローカルもしくはリモート側で) 切断された +接続指向 (connection-oriented) のソケットに対して +書き込みを行うと、その書き込みを行ったプロセスに .B SIGPIPE -¤¬Á÷¤é¤ì¡¢ +が送られ、 .B EPIPE -¤¬ÊÖ¤µ¤ì¤ë¡£ write ¸Æ¤Ó½Ð¤·¤Ë +が返される。 write 呼び出しに .B MSG_NOSIGNAL -¥Õ¥é¥°¤ò»ØÄꤷ¤Æ¤¤¤¿¾ì¹ç¤Ï¥·¥°¥Ê¥ë¤ÏÁ÷¤é¤ì¤Ê¤¤¡£ +フラグを指定していた場合はシグナルは送られない。 .PP .B FIOSETOWN .BR fcntl (2) -¤ä +や .B SIOCSPGRP .BR ioctl (2) -¤ò¥×¥í¥»¥¹¤Þ¤¿¤Ï¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë»ØÄꤷ¤Æ¤ª¤¯¤È¡¢ -I/O ¥¤¥Ù¥ó¥È¤¬µ¯¤­¤¿¤È¤­¤Ë +をプロセスまたはプロセスグループに指定しておくと、 +I/O イベントが起きたときに .B SIGIO -¤¬Á÷¤é¤ì¤ë¡£ +が送られる。 .BR poll (2) -¤ä +や .BR select (2) -¤ò¥·¥°¥Ê¥ë¥Ï¥ó¥É¥éÆâ¤ÇÍѤ¤¤ì¤Ð¡¢¤É¤Î¥½¥±¥Ã¥È¤Ç¥¤¥Ù¥ó¥È¤¬µ¯¤³¤Ã¤¿¤«¤ò -ÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ -(Linux 2.2 ¤Ë¤ª¤±¤ë) Ê̤ÎÊýË¡¤È¤·¤Æ¤Ï¡¢ +をシグナルハンドラ内で用いれば、どのソケットでイベントが起こったかを +知ることができる。 +(Linux 2.2 における) 別の方法としては、 .B F_SETSIG .BR fcntl (2) -¤òÍѤ¤¤Æ¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤òÀßÄꤹ¤ë¤ä¤êÊý¤â¤¢¤ë¡£ -¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Î¥Ï¥ó¥É¥é¤Ï¡¢ +を用いてリアルタイムシグナルを設定するやり方もある。 +リアルタイムシグナルのハンドラは、 .I siginfo_t -¤Î +の .I si_fd -¥Õ¥£¡¼¥ë¥É¤Ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Æþ¤Ã¤¿¾õÂ֤ǸƤӽФµ¤ì¤ë¡£ -¾ÜºÙ¤Ï +フィールドにファイルディスクリプタが入った状態で呼び出される。 +詳細は .BR fcntl (2) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .PP -¾õ¶·¤Ë¤è¤Ã¤Æ¤Ï (Î㤨¤ÐÊ£¿ô¤Î¥×¥í¥»¥¹¤¬°ì¤Ä¤Î¥½¥±¥Ã¥È¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¤¤ë¤Ê¤É)¡¢ +状況によっては (例えば複数のプロセスが一つのソケットにアクセスしているなど)、 .B SIGIO -¤Î¸¶°ø¤È¤Ê¤Ã¤¿¾õÂ֤ϡ¢¥×¥í¥»¥¹¤¬¤½¤Î¥·¥°¥Ê¥ë¤Ø¤ÎÂбþ¤ò¹Ô¤Ã¤¿¤È¤­¤Ë¤Ï -¾Ã¤¨¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤Î¾ì¹ç¤Ï¡¢¥×¥í¥»¥¹¤ÏºÆ¤ÓÂԤĤ褦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -Linux ¤ÏƱ¤¸¥·¥°¥Ê¥ë¤ò¸å¤ÇºÆÁ÷¤¹¤ë¤«¤é¤Ç¤¢¤ë¡£ +の原因となった状態は、プロセスがそのシグナルへの対応を行ったときには +消えてしまっているかもしれない。 +この場合は、プロセスは再び待つようにすべきである。 +Linux は同じシグナルを後で再送するからである。 .\" .SS Ancillary Messages -.SS /proc ¥¤¥ó¥¿¥Õ¥§¡¼¥¹ -core ¤Î¥½¥±¥Ã¥È¤Î¥Í¥Ã¥È¥ï¡¼¥­¥ó¥°¥Ñ¥é¥á¡¼¥¿¤Ë¤Ï¡¢ +.SS /proc インタフェース +core のソケットのネットワーキングパラメータには、 .I /proc/sys/net/core/ -¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¤òÄ̤·¤Æ¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ +ディレクトリ内のファイルを通してアクセスできる。 .TP .I rmem_default -¥½¥±¥Ã¥È¤Î¼õ¿®¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ (¥Ð¥¤¥Èñ°Ì)¡£ +ソケットの受信バッファサイズのデフォルト値 (バイト単位)。 .TP .I rmem_max .B SO_RCVBUF -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤Æ¥æ¡¼¥¶¤¬ÀßÄê¤Ç¤­¤ë -¥½¥±¥Ã¥È¤Î¼õ¿®¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤ÎºÇÂçÃÍ (¥Ð¥¤¥Èñ°Ì)¡£ +ソケットオプションを用いてユーザが設定できる +ソケットの受信バッファサイズの最大値 (バイト単位)。 .TP .I wmem_default -¥½¥±¥Ã¥È¤ÎÁ÷¿®¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ (¥Ð¥¤¥Èñ°Ì)¡£ +ソケットの送信バッファサイズのデフォルト値 (バイト単位)。 .TP .I wmem_max .B SO_SNDBUF -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤Æ¥æ¡¼¥¶¤¬ÀßÄê¤Ç¤­¤ë -¥½¥±¥Ã¥È¤ÎÁ÷¿®¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤ÎºÇÂçÃÍ (¥Ð¥¤¥Èñ°Ì)¡£ +ソケットオプションを用いてユーザが設定できる +ソケットの送信バッファサイズの最大値 (バイト単位)。 .TP -.IR message_cost " ¤È " message_burst -¥È¡¼¥¯¥ó¡¦¥Ð¥±¥Ã¥È¡¦¥Õ¥£¥ë¥¿¡¼¤òÀßÄꤹ¤ë¡£ -¤³¤ì¤Ï³°Éô¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¤¥Ù¥ó¥È¤Ë¤è¤Ã¤Æ°ú¤­µ¯¤³¤µ¤ì¤¿ -Éé²Ù¸Â³¦¤Î·Ù¹ð¥á¥Ã¥»¡¼¥¸¤ËÍѤ¤¤é¤ì¤ë¡£ -.\"NAKANO "load limit" ¤À¤È»×¤¦¤ó¤À¤±¤É... +.IR message_cost " と " message_burst +トークン・バケット・フィルターを設定する。 +これは外部のネットワークイベントによって引き起こされた +負荷限界の警告メッセージに用いられる。 +.\"NAKANO "load limit" だと思うんだけど... .TP .I netdev_max_backlog -¥°¥í¡¼¥Ð¥ë¤ÊÆþÎÏ¥­¥å¡¼¤Ë¤ª¤±¤ëºÇÂç¤Î¥Ñ¥±¥Ã¥È¿ô¡£ +グローバルな入力キューにおける最大のパケット数。 .TP .I optmem_max -¥½¥±¥Ã¥È¤¢¤¿¤ê¤Î¡¢Êä½õ¥Ç¡¼¥¿ (ancillary data) ¤È¥æ¡¼¥¶À©¸æ¥Ç¡¼¥¿ -(iovecs ¤Î¤è¤¦¤Ê¤â¤Î) ¤È¤ÎϤκÇÂçĹ¡£ +ソケットあたりの、補助データ (ancillary data) とユーザ制御データ +(iovecs のようなもの) との和の最大長。 .\" netdev_fastroute is not documented because it is experimental .SS ioctl -°Ê²¼¤Ë¼¨¤¹Áàºî¤Ë¤Ï +以下に示す操作には .BR ioctl (2) -¤òÍѤ¤¤Æ¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ +を用いてアクセスできる。 .in +4n .nf @@ -624,131 +624,131 @@ core .in .TP .B SIOCGSTAMP -ºÇ¸å¤Ë¥æ¡¼¥¶¤ËÅϤµ¤ì¤¿¥Ñ¥±¥Ã¥È¤Î¼õ¿®¥¿¥¤¥à¥¹¥¿¥ó¥×¤ò +最後にユーザに渡されたパケットの受信タイムスタンプを .I struct timeval -¤ËÆþ¤ì¤ÆÊÖ¤¹¡£ -¤³¤ì¤Ï round trip »þ´Ö¤òÀµ³Î¤Ë¬¤ê¤¿¤¤¤È¤­¤ËÊØÍø¤Ç¤¢¤ë¡£ +に入れて返す。 +これは round trip 時間を正確に測りたいときに便利である。 .I struct timeval -¤ÎÀâÌÀ¤Ï +の説明は .BR setitimer (2) -¤ò¸«¤Æ¤Û¤·¤¤¡£ +を見てほしい。 .\" -¤³¤Î ioctl ¤Ï¡¢¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó +この ioctl は、ソケットオプション .B SO_TIMESTAMP -¤¬¥½¥±¥Ã¥È¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Î¤ß»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£ -¤µ¤â¤Ê¤±¤ì¤Ð¡¢¤³¤Î ioctl ¤Ï +がソケットにセットされていない場合にのみ使用すべきである。 +さもなければ、この ioctl は .B SO_TIMESTAMP -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿´Ö¤Ë¼õ¿®¤·¤¿ºÇ¸å¤Î¥Ñ¥±¥Ã¥È¤Î»þ¹ï¤òÊÖ¤¹¤«¡¢ -¤½¤Î¤è¤¦¤Ê¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¼ºÇÔ¤¹¤ë -(¤Ä¤Þ¤ê¡¢ +がセットされていなかった間に受信した最後のパケットの時刻を返すか、 +そのようなパケットを受信していない場合には失敗する +(つまり、 .BR ioctl (2) -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤Ë +に .B ENOENT -¤ò¥»¥Ã¥È¤¹¤ë)¡£ +をセットする)。 .TP .B SIOCSPGRP -ÈóƱ´ü I/O Áàºî¤Î½ªÎ»»þ¤ä¶ÛµÞ¥Ç¡¼¥¿¤Î¼õ¿®»þ¤Ë +非同期 I/O 操作の終了時や緊急データの受信時に .B SIGIO -¤ä +や .B SIGURG -¥·¥°¥Ê¥ë·²¤òÁ÷¤ë¥×¥í¥»¥¹¤ä¥×¥í¥»¥¹¥°¥ë¡¼¥×¤òÀßÄꤹ¤ë¡£ -°ú¤­¿ô¤Ï +シグナル群を送るプロセスやプロセスグループを設定する。 +引き数は .I pid_t -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -°ú¤­¿ô¤¬Àµ¤À¤È¡¢¤½¤Î¥×¥í¥»¥¹¤Ë¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£Éé¤À¤È¡¢ -°ú¤­¿ô¤ÎÀäÂÐÃͤò ID ¤Ë»ý¤Ä¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£ -¥·¥°¥Ê¥ë¼õ¿®Àè¤Ë¤Ï¡¢¼«Ê¬¼«¿È¤Î¥×¥í¥»¥¹ / ¼«Ê¬¤Î½ê°¤¹¤ë¥×¥í¥»¥¹¥°¥ë¡¼¥× -¤·¤«»ØÄê¤Ç¤­¤Ê¤¤¡£Ã¢¤·¡¢ +へのポインタである。 +引き数が正だと、そのプロセスにシグナルが送られる。負だと、 +引き数の絶対値を ID に持つプロセスグループにシグナルが送られる。 +シグナル受信先には、自分自身のプロセス / 自分の所属するプロセスグループ +しか指定できない。但し、 .B CAP_KILL -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢µÚ¤Ó¼Â¸ú¥æ¡¼¥¶ ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤Î¾ì¹ç¤Ï -¤³¤Î¸Â¤ê¤Ç¤Ï¤Ê¤¤¡£ +ケーパビリティを持っている場合、及び実効ユーザ ID が 0 のプロセスの場合は +この限りではない。 .TP .B FIOASYNC .B O_ASYNC -¥Õ¥é¥°¤òÊѹ¹¤·¡¢¥½¥±¥Ã¥È¤ÎÈóƱ´ü (asynchronous) I/O ¥â¡¼¥É¤ò -Í­¸ú/̵¸ú¤Ë¤¹¤ë¡£ÈóƱ´ü I/O ¥â¡¼¥É¤Ç¤Ï¡¢ -¿·¤·¤¤ I/O ¥¤¥Ù¥ó¥È¤¬µ¯¤­¤¿¤È¤­¤Ë¡¢ +フラグを変更し、ソケットの非同期 (asynchronous) I/O モードを +有効/無効にする。非同期 I/O モードでは、 +新しい I/O イベントが起きたときに、 .B SIGIO -¥·¥°¥Ê¥ë¤ä +シグナルや .B F_SETSIG -¤ÇÀßÄꤵ¤ì¤¿¥·¥°¥Ê¥ë¡¦¥»¥Ã¥È¤¬È¯¹Ô¤µ¤ì¤ë¡£ +で設定されたシグナル・セットが発行される。 .IP -°ú¤­¿ô¤Ï¥Ö¡¼¥ëÀ°¿ô¤Î¥Õ¥é¥°¤Ç¤¢¤ë¡£ -(¤³¤ÎÁàºî¤Ï +引き数はブール整数のフラグである。 +(この操作は .BR fcntl (2) -¤ò»È¤Ã¤Æ +を使って .B O_ASYNC -¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤Î¤ÈƱ¤¸°ÕÌ£¤Ç¤¢¤ë¡£) +フラグをセットするのと同じ意味である。) .\" .TP .B SIOCGPGRP .B SIGIO -¤ä +や .B SIGURG -¤ò¼õ¿®¤·¤¿¥«¥ì¥ó¥È¥×¥í¥»¥¹¡¦¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ò¼èÆÀ¤¹¤ë¡£ -¤Ê¤¤¾ì¹ç¤Ï 0 ¤¬Ê֤롣 +を受信したカレントプロセス・プロセスグループを取得する。 +ない場合は 0 が返る。 .PP -Í­¸ú¤Ê +有効な .BR fcntl (2) -Áàºî: +操作: .TP .B FIOGETOWN .B SIOCGPGRP .BR ioctl (2) -¤ÈƱ¤¸¡£ +と同じ。 .TP .B FIOSETOWN .B SIOCSPGRP .BR ioctl (2) -¤ÈƱ¤¸¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +と同じ。 +.SH バージョン .B SO_BINDTODEVICE -¤Ï Linux 2.0.30 ¤ÇƳÆþ¤µ¤ì¤¿¡£ +は Linux 2.0.30 で導入された。 .B SO_PASSCRED -¤Ï Linux 2.2 ¤ÇÅо줷¤¿¡£ +は Linux 2.2 で登場した。 .I /proc -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï Linux 2.2 ¤ÇƳÆþ¤µ¤ì¤¿¡£ +インタフェースは Linux 2.2 で導入された。 .B SO_RCVTIMEO -¤È +と .B SO_SNDTIMEO -¤Ï Linux 2.3.41 °Ê¹ß¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¤½¤ì°ÊÁ°¤Ï¡¢¥¿¥¤¥à¥¢¥¦¥È¤Ï¥×¥í¥È¥³¥ë¸ÇÍ­¤Î¸ÇÄê¤ÎÀßÄêÃͤǡ¢ -Æɤ߽ñ¤­¤ò¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤«¤Ã¤¿¡£ -.SH Ãí°Õ -Linux ¤Ï¡¢Á÷¼õ¿®¥Ð¥Ã¥Õ¥¡¤ÎȾʬ¤òÆâÉô¤Î¥«¡¼¥Í¥ë¹½Â¤ÂΤÇÍѤ¤¤ë¤È²¾Äꤷ¤Æ¤¤¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ¡¢Âбþ¤¹¤ë +は Linux 2.3.41 以降でサポートされている。 +それ以前は、タイムアウトはプロトコル固有の固定の設定値で、 +読み書きをすることはできなかった。 +.SH 注意 +Linux は、送受信バッファの半分を内部のカーネル構造体で用いると仮定している。 +したがって、対応する .I /proc -¥Õ¥¡¥¤¥ë¤Ï¥Í¥Ã¥È¥ï¡¼¥¯²óÀþ¾å¤Ç¤ÎÂ礭¤µ¤Î 2 Çܤˤʤ롣 +ファイルはネットワーク回線上での大きさの 2 倍になる。 -Linux ¤Ç¤Ï¡¢ +Linux では、 .B SO_REUSEADDR -¥ª¥×¥·¥ç¥ó¤Ç¥Ý¡¼¥È¤ÎºÆÍøÍѤ¬µö²Ä¤µ¤ì¤ë¤Î¤Ï¡¢ -¤½¤Î¥Ý¡¼¥È¤ËÂФ·¤Æ +オプションでポートの再利用が許可されるのは、 +そのポートに対して .BR bind (2) -¤òÁ°¤Ë¼Â¹Ô¤·¤¿¥×¥í¥°¥é¥à¤È¤½¤Î¥Ý¡¼¥È¤òºÆÍøÍÑ -¤·¤è¤¦¤È¤¹¤ë¥×¥í¥°¥é¥à¤ÎξÊý¤Ç +を前に実行したプログラムとそのポートを再利用 +しようとするプログラムの両方で .B SO_REUSEADDR -¤¬¥»¥Ã¥È¤µ¤ì¤¿¾ì¹ç¤Î¤ß¤Ç¤¢¤ë¡£ -¤³¤ÎÆ°ºî¤Ï (FreeBSD ¤Ê¤É¤Î) ¤¤¤¯¤Ä¤«¤Î¼ÂÁõ¤È¤Ï°Û¤Ê¤ë¡£¤³¤ì¤é¤Ç¤Ï¡¢ -¸å¤Ç¥Ý¡¼¥È¤òºÆÍøÍѤ·¤è¤¦¤È¤¹¤ë¥×¥í¥°¥é¥à¤Ç +がセットされた場合のみである。 +この動作は (FreeBSD などの) いくつかの実装とは異なる。これらでは、 +後でポートを再利用しようとするプログラムで .B SO_REUSEADDR -¥ª¥×¥·¥ç¥ó¤ò¥»¥Ã¥È¤¹¤ë¤À¤±¤Ç¤è¤¤¡£ -¤¿¤¤¤Æ¤¤¤Ï¤³¤Î°ã¤¤¤Ï¸«¤¨¤Ê¤¤¡£¤Ê¤¼¤Ê¤é¡¢Î㤨¤Ð¥µ¡¼¥Ð¥×¥í¥°¥é¥à¤Ï -¾ï¤Ë¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¥»¥Ã¥È¤¹¤ë¤è¤¦¤ËÀ߷פµ¤ì¤ë¤«¤é¤Ç¤¢¤ë¡£ -.SH ¥Ð¥° +オプションをセットするだけでよい。 +たいていはこの違いは見えない。なぜなら、例えばサーバプログラムは +常にこのオプションをセットするように設計されるからである。 +.SH バグ .\" FIXME Document SO_ATTACH_FILTER and SO_DETACH_FILTER .B CONFIG_FILTER -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë +ソケットオプションである .B SO_ATTACH_FILTER -¤È +と .B SO_DETACH_FILTER -¤Ë¤Ä¤¤¤Æµ­ºÜ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£¤³¤ì¤é¤Ï libpcap ¥é¥¤¥Ö¥é¥ê¤òÄ̤·¤Æ -ÍѤ¤¤ëÊý¤¬Îɤ¤¡£ -.\" .SH Ãø¼Ô -.\" ¤³¤Î man ¥Ú¡¼¥¸¤Ï Andi Kleen ¤¬½ñ¤¤¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +について記載されていない。これらは libpcap ライブラリを通して +用いる方が良い。 +.\" .SH 著者 +.\" この man ページは Andi Kleen が書いた。 +.SH 関連項目 .BR getsockopt (2), .BR setsockopt (2), .BR socket (2), diff --git a/release/man7/spufs.7 b/release/man7/spufs.7 index 5ee0e037..b51ccb6b 100644 --- a/release/man7/spufs.7 +++ b/release/man7/spufs.7 @@ -29,443 +29,443 @@ .\" Translated 2007-10-23, Akihiro MOTOKI .\" .TH SPUFS 7 2007-07-10 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -spufs \- SPU ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à -.SH ÀâÌÀ -SPU ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï¡¢Cell Broadband Engine ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ò¼ÂÁõ¤·¤¿ -PowerPC ¥Þ¥·¥ó¤Ë¤ª¤¤¤Æ¡¢Synergistic Processor Unit (SPU) ¤Ë¥¢¥¯¥»¥¹¤¹¤ë -¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ +.SH 名前 +spufs \- SPU ファイルシステム +.SH 説明 +SPU ファイルシステムは、Cell Broadband Engine アーキテクチャを実装した +PowerPC マシンにおいて、Synergistic Processor Unit (SPU) にアクセスする +ために使用される。 -¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢POSIX ¶¦Í­¥á¥â¥ê¤ä¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ë -»÷¤¿Ì¾Á°¶õ´Ö¤¬Ä󶡤µ¤ì¤ë¡£ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë½ñ¤­¹þ¤ßµö²Ä¤ò»ý¤Ä¥æ¡¼¥¶¤Ï +このファイルシステムでは、POSIX 共有メモリやメッセージキューに +似た名前空間が提供される。 +ファイルシステムに書き込み許可を持つユーザは .BR spu_create (2) -¤ò»È¤Ã¤Æ spufs ¤Î¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ë SPU ¥³¥ó¥Æ¥­¥¹¥È¤òºîÀ®¤Ç¤­¤ë¡£ +を使って spufs のルートディレクトリに SPU コンテキストを作成できる。 -³Æ SPU ¥³¥ó¥Æ¥­¥¹¥È¤Ï¡¢¤¢¤é¤«¤¸¤áÄêµÁ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë·²¤ò´Þ¤à -¥Ç¥£¥ì¥¯¥È¥ê¤È¤·¤Æɽ¸½¤µ¤ì¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ò»È¤Ã¤Æ¡¢ÏÀÍý SPU ¤Î¾õÂÖ¤òÁàºî¤Ç¤­¤ë¡£ -¥æ¡¼¥¶¤Ï¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹µö²Ä¤òÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ç¤­¤ë¤¬¡¢ -¥Õ¥¡¥¤¥ë¤ÎÄɲᦺï½ü¤ò¹Ô¤¦¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -.SS ¥Þ¥¦¥ó¥È¥ª¥×¥·¥ç¥ó +各 SPU コンテキストは、あらかじめ定義されたファイル群を含む +ディレクトリとして表現される。 +これらのファイルを使って、論理 SPU の状態を操作できる。 +ユーザはこれらのファイルのアクセス許可を変更することはできるが、 +ファイルの追加・削除を行うことはできない。 +.SS マウントオプション .TP .B uid= -¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ò½êÍ­¤¹¤ë¥æ¡¼¥¶¤òÀßÄꤹ¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 0 (root) ¤Ç¤¢¤ë¡£ +マウントポイントを所有するユーザを設定する。 +デフォルトは 0 (root) である。 .TP .B gid= -¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ò½êÍ­¤¹¤ë¥°¥ë¡¼¥×¤òÀßÄꤹ¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï 0 (root) ¤Ç¤¢¤ë¡£ -.SS ¥Õ¥¡¥¤¥ë +マウントポイントを所有するグループを設定する。 +デフォルトは 0 (root) である。 +.SS ファイル .I spufs -¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¤Û¤È¤ó¤É¤Î¾ì¹ç +のファイルは、ほとんどの場合 .BR read (2) -¤ä +や .BR write (2) -¤È¤¤¤Ã¤¿Ä̾ï¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ëɸ½àŪ¤Ê¿¶¤ëÉñ¤¤¤ò¼¨¤¹¤¬¡¢ -¿¤¯¤Î¾ì¹çÄ̾ï¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ëÁàºî¤Î°ìÉôʬ¤À¤±¤¬ -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£°Ê²¼¤Î¥ê¥¹¥È¤Ç¤Ï¡¢¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ëÁàºî¤È -¤½¤ì¤¾¤ì¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë½ñ¤«¤ì¤Æ¤¤¤ëɸ½àŪ¤Ê¿¶¤ëÉñ¤¤¤È¤Î°ã¤¤¤Ë -¤Ä¤¤¤ÆÀâÌÀ¤¹¤ë¡£ +といった通常のシステムコールに対する標準的な振る舞いを示すが、 +多くの場合通常のファイルシステムでサポートされている操作の一部分だけが +サポートされている。以下のリストでは、サポートされている操作と +それぞれのマニュアルページに書かれている標準的な振る舞いとの違いに +ついて説明する。 .BR read (2) -Áàºî¤ËÂбþ¤·¤Æ¤¤¤ëÁ´¤Æ¤Î¥Õ¥¡¥¤¥ë¤Ï +操作に対応している全てのファイルは .BR readv (2) -¤Ë¤âÂбþ¤·¤Æ¤¤¤ë¡£¤Þ¤¿¡¢ +にも対応している。また、 .BR write (2) -Áàºî¤ËÂбþ¤·¤Æ¤¤¤ëÁ´¤Æ¤Î¥Õ¥¡¥¤¥ë¤Ï +操作に対応している全てのファイルは .BR writev (2) -¤Ë¤âÂбþ¤·¤Æ¤¤¤ë¡£ +にも対応している。 -Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢ +全てのファイルは、 .BR access (2) -¤È +と .BR stat (2) -·Ï¤ÎÁàºî¤ËÂбþ¤·¤Æ¤¤¤ë¤¬¡¢ +系の操作に対応しているが、 .BR stat (2) -¤Ç¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿ºÝ¤ËÊÖ¤µ¤ì¤ë +では、呼び出した際に返される .I stat -¹½Â¤ÂΤΥե£¡¼¥ë¥É¤Î¤¦¤Á¿®Íê¤Ç¤­¤ë¾ðÊó¤¬Æþ¤Ã¤Æ¤¤¤ë¤Î¤Ï +構造体のフィールドのうち信頼できる情報が入っているのは .IR st_mode , .IR st_nlink , .IR st_uid , .I st_gid -¤À¤±¤Ç¤¢¤ë¡£ +だけである。 -Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¤Ï +全てのファイルは .BR chmod (2)/ fchmod (2) -¤È +と .BR chown (2)/ fchown (2) -¤ÎÁàºî¤ËÂбþ¤·¤Æ¤¤¤ë¤¬¡¢ -¤½¤Î¥Õ¥¡¥¤¥ë¤¬Âбþ¤·¤Æ¤¤¤ëÁàºî¤ÈÌ·½â¤¹¤ë¥¢¥¯¥»¥¹µö²Ä¤ò -ÉÕÍ¿¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤ (Î㤨¤Ð¡¢ +の操作に対応しているが、 +そのファイルが対応している操作と矛盾するアクセス許可を +付与することはできない (例えば、 .I wbox -¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ëÆɤ߽Ф·¥¢¥¯¥»¥¹¤Ê¤É)¡£ +ファイルに対する読み出しアクセスなど)。 -¸½»þÅÀ¤Ç¤Î¥Õ¥¡¥¤¥ë¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ +現時点でのファイルは以下の通りである。 .TP .B /mem -SPU ¤Î¥í¡¼¥«¥ë¥¹¥È¥ì¡¼¥¸¤ÎÆâÍÆ¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤ÏÄ̾ï¤Î¶¦Í­¥á¥â¥ê¥Õ¥¡¥¤¥ë¤ÈƱÍͤ˥¢¥¯¥»¥¹¤Ç¤­¡¢ -SPU ¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤Ï¥³¡¼¥É¤È¥Ç¡¼¥¿¤ÎξÊý¤ò³ÊǼ¤Ç¤­¤ë¡£ -¥ª¡¼¥×¥ó¤µ¤ì¤¿ +SPU のローカルストレージの内容。 +このファイルは通常の共有メモリファイルと同様にアクセスでき、 +SPU のアドレス空間にはコードとデータの両方を格納できる。 +オープンされた .I mem -¥Õ¥¡¥¤¥ë¤Ë²Äǽ¤ÊÁàºî¤Ï°Ê²¼¤Ç¤¢¤ë¡£ +ファイルに可能な操作は以下である。 .RS .TP .BR read "(2), " pread "(2), " write "(2), " pwrite "(2), " lseek (2) -¤³¤ì¤é¤ÏÄ̾ïÄ̤êÆ°ºî¤¹¤ë¤¬¡¢ -¥Õ¥¡¥¤¥ëËöÈø¤ò±Û¤¨¤Æ¤Î +これらは通常通り動作するが、 +ファイル末尾を越えての .BR lseek (2), .BR write (2), .BR pwrite (2) -¤ËÂбþ¤·¤Æ¤¤¤Ê¤¤ÅÀ¤À¤±¤¬°Û¤Ê¤ë¡£ -¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤Ï SPU ¤Î¥í¡¼¥«¥ë¥¹¥È¥ì¡¼¥¸¤Î¥µ¥¤¥º¤Ç¤¢¤ê¡¢ -Ä̾ï¤Ï 256 ¥­¥í¥Ð¥¤¥È¤Ç¤¢¤ë¡£ +に対応していない点だけが異なる。 +ファイルサイズは SPU のローカルストレージのサイズであり、 +通常は 256 キロバイトである。 .TP .BR mmap (2) .I mem -¤ò¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¥Þ¥Ã¥Ô¥ó¥°¤¹¤ë¤È¡¢ -¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Î°ìÉô¤È¤·¤Æ -SPU ¤Î¥í¡¼¥«¥ë¡¦¥¹¥È¥ì¡¼¥¸¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +をプロセスのアドレス空間にマッピングすると、 +プロセスのアドレス空間の一部として +SPU のローカル・ストレージにアクセスできるようになる。 .RE .TP .B /mbox -SPU ¤«¤é CPU ¤Ø¤ÎÄÌ¿®ÍѤΰì¤ÄÌܤΥ᡼¥ë¥Ü¥Ã¥¯¥¹¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤ÏÆɤ߽Ф·ÀìÍѤǡ¢Æɤ߽Ф·¤Ï 32¥Ó¥Ã¥Èñ°Ì¤Ç¹Ô¤¦¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤ÏÈóÄä»ß (non-blocking) ¥â¡¼¥É¤Ç¤Î¤ß»ÈÍѤǤ­¡¢ +SPU から CPU への通信用の一つ目のメールボックス。 +このファイルは読み出し専用で、読み出しは 32ビット単位で行う。 +このファイルは非停止 (non-blocking) モードでのみ使用でき、 .BR poll (2) -¤Ç¤¢¤Ã¤Æ¤â¤³¤Î¥Õ¥¡¥¤¥ë¤ÇÄä»ß (block) ¤¹¤ë¤³¤È¤Ï¤Ê¤¤¡£ -¥ª¡¼¥×¥ó¤µ¤ì¤¿ +であってもこのファイルで停止 (block) することはない。 +オープンされた .I mbox -¥Õ¥¡¥¤¥ë¤Ë²Äǽ¤ÊÁàºî¤Ï°Ê²¼¤Ç¤¢¤ë¡£ +ファイルに可能な操作は以下である。 .RS .TP .BR read (2) .I count -¤¬ 4 ¤è¤ê¾®¤µ¤¤¾ì¹ç¡¢ +が 4 より小さい場合、 .BR read (2) -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤ò +を .B EINVAL -¤ËÀßÄꤹ¤ë¡£ -¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¤Ë¥Ç¡¼¥¿¤¬¤Ê¤¤¾ì¹ç¡¢\-1 ¤¬Ê֤ꡢ +に設定する。 +メールボックスにデータがない場合、\-1 が返り、 .I errno -¤¬ +が .B EAGAIN -¤ËÀßÄꤵ¤ì¤ë¡£¥Ç¡¼¥¿¤ÎÆɤ߽Ф·¤ËÀ®¸ù¤·¤¿¾ì¹ç¡¢ -4 ¥Ð¥¤¥È¤¬¥Ç¡¼¥¿¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¡¢ÊÖ¤êÃͤȤ·¤Æ 4 ¤¬ÊÖ¤µ¤ì¤ë¡£ +に設定される。データの読み出しに成功した場合、 +4 バイトがデータバッファに格納され、返り値として 4 が返される。 .RE .TP .B /ibox -SPU ¤«¤é CPU ¤Ø¤ÎÄÌ¿®ÍѤÎÆó¤ÄÌܤΥ᡼¥ë¥Ü¥Ã¥¯¥¹¤Ç¤¢¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï°ì¤ÄÌܤΥ᡼¥ë¥Ü¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤È»÷¤Æ¤¤¤ë¤¬¡¢ -Ää»ß (blocking) I/O ¥â¡¼¥É¤Ç¤ÎÆɤ߽Ф·¤¬²Äǽ¤Ç¤¢¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢ +SPU から CPU への通信用の二つ目のメールボックスである。 +このファイルは一つ目のメールボックスファイルと似ているが、 +停止 (blocking) I/O モードでの読み出しが可能である。したがって、 .BR poll (2) -¤äƱÍͤΥ·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤Æ¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ò´Æ»ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¥ª¡¼¥×¥ó¤µ¤ì¤¿ +や同様のシステムコールを使って、このファイルを監視することができる。 +オープンされた .I ibox -¥Õ¥¡¥¤¥ë¤Ë²Äǽ¤ÊÁàºî¤Ï°Ê²¼¤Ç¤¢¤ë¡£ +ファイルに可能な操作は以下である。 .RS .TP .BR read (2) .I count -¤¬ 4 ¤è¤ê¾®¤µ¤¤¾ì¹ç¡¢ +が 4 より小さい場合、 .BR read (2) -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤ò +を .B EINVAL -¤ËÀßÄꤹ¤ë¡£ -¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¤Ë¥Ç¡¼¥¿¤¬¤Ê¤¤¾ì¹ç¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ +に設定する。 +メールボックスにデータがない場合、ファイルディスクリプタが .B O_NONBLOCK -¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢ÊÖ¤êÃÍ¤Ï \-1 ¤È¤Ê¤ê¡¢ +でオープンされていれば、返り値は \-1 となり、 .I errno -¤Ï +は .B EAGAIN -¤ËÀßÄꤵ¤ì¤ë¡£ +に設定される。 -¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¤Ë¥Ç¡¼¥¿¤¬¤Ê¤¤¾ì¹ç¤Ç¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ +メールボックスにデータがない場合で、ファイルディスクリプタが .B O_NONBLOCK -¤Ê¤·¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢ -SPU ¤¬¼«Ê¬¤Î³ä¤ê¹þ¤ß¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¥Á¥ã¥Í¥ë (interrupt mailbox channel) -¤Ë½ñ¤­¹þ¤ß¤ò¹Ô¤¦¤Þ¤Ç +なしでオープンされていれば、 +SPU が自分の割り込みメールボックスチャネル (interrupt mailbox channel) +に書き込みを行うまで .BR read (2) -¤ÏÄä»ß (block) ¤¹¤ë¡£ -¥Ç¡¼¥¿¤ÎÆɤ߽Ф·¤ËÀ®¸ù¤·¤¿¾ì¹ç¡¢ -4 ¥Ð¥¤¥È¤¬¥Ç¡¼¥¿¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¡¢ÊÖ¤êÃͤȤ·¤Æ 4 ¤¬ÊÖ¤µ¤ì¤ë¡£ +は停止 (block) する。 +データの読み出しに成功した場合、 +4 バイトがデータバッファに格納され、返り値として 4 が返される。 .TP .BR poll (2) .I ibox -¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë +ファイルに対する .BR poll (2) -¤Ï¡¢Æɤ߽Ф·¥Ç¡¼¥¿¤¬ÍøÍѲÄǽ¤Ë¤Ê¤ëÅÙ¤Ë +は、読み出しデータが利用可能になる度に .I "(POLLIN | POLLRDNORM)" -¤òÊÖ¤¹¡£ +を返す。 .RE .TP .B /wbox -CPU ¤«¤é SPU ¤Ø¤ÎÄÌ¿®ÍѤΥ᡼¥ë¥Ü¥Ã¥¯¥¹¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï½ñ¤­¹þ¤ßÀìÍѤǡ¢½ñ¤­¹þ¤ß¤Ï 32¥Ó¥Ã¥Èñ°Ì¤Ç¹Ô¤¦¡£ -¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¤¬°ìÇդξì¹ç¡¢ +CPU から SPU への通信用のメールボックス。 +このファイルは書き込み専用で、書き込みは 32ビット単位で行う。 +メールボックスが一杯の場合、 .BR write (2) -¤ÏÄä»ß (block) ¤·¡¢ +は停止 (block) し、 .BR poll (2) -¤ò»È¤Ã¤Æ¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¤ËºÆÅÙ¶õ¤­¤¬¤Ç¤­¤ë¤Þ¤ÇÂԤĤ³¤È¤¬¤Ç¤­¤ë¡£ -¥ª¡¼¥×¥ó¤µ¤ì¤¿ +を使ってメールボックスに再度空きができるまで待つことができる。 +オープンされた .I wbox -¥Õ¥¡¥¤¥ë¤Ë²Äǽ¤ÊÁàºî¤Ï°Ê²¼¤Ç¤¢¤ë¡£ +ファイルに可能な操作は以下である。 .RS .TP .BR write (2) .I count -¤¬ 4 ¤è¤ê¾®¤µ¤¤¾ì¹ç¡¢ +が 4 より小さい場合、 .BR write (2) -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤ò +を .B EINVAL -¤ËÀßÄꤹ¤ë¡£ -¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¤Ë¶õ¤­Îΰ褬¤Ê¤¤¾ì¹ç¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ +に設定する。 +メールボックスに空き領域がない場合、ファイルディスクリプタが .B O_NONBLOCK -¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢ÊÖ¤êÃÍ¤Ï \-1 ¤È¤Ê¤ê¡¢ +でオープンされていれば、返り値は \-1 となり、 .I errno -¤Ï +は .B EAGAIN -¤ËÀßÄꤵ¤ì¤ë¡£ +に設定される。 -¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¤Ë¶õ¤­Îΰ褬¤Ê¤¤¾ì¹ç¤Ç¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ +メールボックスに空き領域がない場合で、ファイルディスクリプタが .B O_NONBLOCK -¤Ê¤·¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢ -SPU ¤¬¼«Ê¬¤Î PPE ¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¥Á¥ã¥Í¥ë¤«¤éÆɤ߽Ф·¤ò¹Ô¤¦¤Þ¤Ç +なしでオープンされていれば、 +SPU が自分の PPE メールボックスチャネルから読み出しを行うまで .BR write (2) -¤ÏÄä»ß (block) ¤¹¤ë¡£ -¥Ç¡¼¥¿¤Î½ñ¤­¹þ¤ß¤ËÀ®¸ù¤·¤¿¾ì¹ç¡¢ÊÖ¤êÃͤȤ·¤Æ 4 ¤¬ÊÖ¤µ¤ì¤ë¡£ +は停止 (block) する。 +データの書き込みに成功した場合、返り値として 4 が返される。 .TP .BR poll (2) .I wbox -¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë +ファイルに対する .BR poll (2) -¤Ï¡¢½ñ¤­¹þ¤ßÍѤζõ´Ö¤¬ÍøÍѲÄǽ¤Ë¤Ê¤ëÅÙ¤Ë +は、書き込み用の空間が利用可能になる度に .I "(POLLOUT | POLLWRNORM)" -¤òÊÖ¤¹¡£ +を返す。 .RE .TP .BR /mbox_stat ", " /ibox_stat ", " /wbox_stat -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ÏÆɤ߽Ф·ÀìÍѤǡ¢ -³Æ¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¤Î¸½ºß¤Î¥­¥å¡¼Ä¹¤òÊÝ»ý¤¹¤ë¡£ -¶ñÂÎŪ¤Ë¤Ï¡¢Ää»ß (blocking) ¤»¤º¤Ë¡¢ -.IR mbox " ¤ä " ibox -¤«¤é²¿¥ï¡¼¥É¤òÆɤ߽Ф¹¤³¤È¤¬¤Ç¤­¡¢ +これらのファイルは読み出し専用で、 +各メールボックスの現在のキュー長を保持する。 +具体的には、停止 (blocking) せずに、 +.IR mbox " や " ibox +から何ワードを読み出すことができ、 .I wbox -¤Ë²¿¥ï¡¼¥É¤ò½ñ¤­¹þ¤à¤³¤È¤¬¤Ç¤­¤ë¤«¡¢¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï 4 ¥Ð¥¤¥Èñ°Ì¤Ç¤Î¤ßÆɤ߽Ф·¤¬²Äǽ¤Ç¡¢ -¥Ó¥Ã¥°¡¦¥¨¥ó¥Ç¥£¥¢¥ó¤ÎÀ°¿ôÃͤòÊÖ¤¹¡£ -¥ª¡¼¥×¥ó¤µ¤ì¤¿ +に何ワードを書き込むことができるか、ということである。 +これらのファイルは 4 バイト単位でのみ読み出しが可能で、 +ビッグ・エンディアンの整数値を返す。 +オープンされた .I *box_stat -¥Õ¥¡¥¤¥ë¤Ë²Äǽ¤ÊÁàºî¤Ï°Ê²¼¤Ç¤¢¤ë¡£ +ファイルに可能な操作は以下である。 .RS .TP .BR read (2) .I count -¤¬ 4 ¤è¤ê¾®¤µ¤¤¾ì¹ç¡¢ +が 4 より小さい場合、 .BR read (2) -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤ò +を .B EINVAL -¤ËÀßÄꤹ¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¥Ç¡¼¥¿¥Ð¥Ã¥Õ¥¡¤Ë 4 ¥Ð¥¤¥È¤ÎÃͤ¬½ñ¤­¹þ¤Þ¤ì¤ë¡£ -¤³¤ÎÃͤϡ¢³Æ¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¤Ë¤ª¤¤¤ÆÄä»ß¤»¤º¤Ë¡¢¤Þ¤¿¤Ï +に設定する。 +それ以外の場合、データバッファに 4 バイトの値が書き込まれる。 +この値は、各メールボックスにおいて停止せずに、または .B EAGAIN -¥¨¥é¡¼¤Ê¤·¤Ç¡¢Æɤ߽Ф·²Äǽ¤Ê¥¨¥ì¥á¥ó¥È¿ô +エラーなしで、読み出し可能なエレメント数 .RI ( mbox_stat -¤ä +や .I ibox_stat -¤Î¾ì¹ç)¡¢½ñ¤­¹þ¤ß²Äǽ¤Ê¥¨¥ì¥á¥ó¥È¿ô +の場合)、書き込み可能なエレメント数 .RI ( wbox_stat -¤Î¾ì¹ç) ¤Ç¤¢¤ë¡£ +の場合) である。 .RE .TP .BR /npc ", " /decr ", " /decr_status ", " /spu_tag_mask ", " \ /event_mask ", " /srr0 -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï SPU ¤ÎÆâÉô¥ì¥¸¥¹¥¿¤ò¸ø³«¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -Ãͤϡ¢³Æ¥ì¥¸¥¹¥¿¤Î¿ôÃͤò´Þ¤à¥¢¥¹¥­¡¼Ê¸»úÎó¤Çɽ¸½¤µ¤ì¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï¥Ç¥Ð¥Ã¥°ÍѤȤ·¤ÆÆɤ߽Ф·/½ñ¤­¹þ¤ß¤Îξ¥â¡¼¥É¤ÇÍøÍѤǤ­¤ë¤¬¡¢ -¥×¥í¥°¥é¥à¤ÎÄ̾ï¤ÎÁàºî¤Ï¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ë°Í¸¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¤Ê¤¼¤Ê¤é¡¢¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Î¤¦¤Á +これらのファイルは SPU の内部レジスタを公開するものである。 +値は、各レジスタの数値を含むアスキー文字列で表現される。 +これらのファイルはデバッグ用として読み出し/書き込みの両モードで利用できるが、 +プログラムの通常の操作はこれらのファイルに依存すべきではない。 +なぜなら、これらのファイルのうち .I npc -°Ê³°¤Ø¤Î¥¢¥¯¥»¥¹¤Ç¤Ï SPU ¥³¥ó¥Æ¥­¥¹¥È¤ÎÊݸ¤¬É¬¿Ü¤Ç¤¢¤ê¡¢ -SPU ¥³¥ó¥Æ¥­¥¹¥È¤ÎÊݸ¤ÏÈó¾ï¤Ë¸úΨ¤¬°­¤¤¤«¤é¤Ç¤¢¤ë¡£ +以外へのアクセスでは SPU コンテキストの保存が必須であり、 +SPU コンテキストの保存は非常に効率が悪いからである。 .IP -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ÎÆâÍƤϰʲ¼¤ÎÄ̤ꡣ +これらのファイルの内容は以下の通り。 .RS .TP 16 .I npc -¼¡¤Î¥×¥í¥°¥é¥à¥«¥¦¥ó¥¿ +次のプログラムカウンタ .TP .I decr SPU Decrementer .TP .I decr_status -Decrementer ¤Î¾õÂÖ +Decrementer の状態 .TP .I spu_tag_mask -SPU ¤Î DMA ÍѤΠMFA ¥¿¥°¥Þ¥¹¥¯ +SPU の DMA 用の MFA タグマスク .TP .I event_mask -SPU ¤Î³ä¤ê¹þ¤ß¤Î¥¤¥Ù¥ó¥È¥Þ¥¹¥¯ +SPU の割り込みのイベントマスク .TP .I srr0 -³ä¤ê¹þ¤ß¥ê¥¿¡¼¥ó¥¢¥É¥ì¥¹¥ì¥¸¥¹¥¿ +割り込みリターンアドレスレジスタ .RE .IP -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ²Äǽ¤ÊÁàºî¤Ï°Ê²¼¤Ç¤¢¤ë¡£ +これらのファイルに対して可能な操作は以下である。 .RS .TP .BR read (2) .BR read (2) -¤ËÅϤµ¤ì¤¿ +に渡された .I count -¤¬¥ì¥¸¥¹¥¿ÃͤȲþ¹Ô (newline) ʸ»ú 1 ¸Ä¤ò³ÊǼ¤¹¤ë¤Î¤ËɬÍפÊŤµ¤è¤êû¤¤¾ì¹ç¡¢ -Ʊ¤¸¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò³¤±¤Æ read ¤¹¤ë¤³¤È¤Ç¡¢Ê¸»úÎóÁ´ÂΤòÆɤ߽Ф¹¤³¤È -¤¬¤Ç¤­¤ë¡£¤³¤ÎºÝ¡¢¼Â¹ÔÃæ¤Î SPU ¥¿¥¹¥¯¤Ë¤è¤ê¥ì¥¸¥¹¥¿ÃͤÎÊѹ¹¤Î±Æ¶Á¤Ï¼õ¤±¤Ê¤¤¡£ -ʸ»úÎóÁ´ÂΤ¬Æɤ߽Фµ¤ì¤ë¤È¡¢¤½¤ì°Ê¹ß¤Î read Áàºî¤Ç¤Ï 0 ¥Ð¥¤¥È¤¬ÊÖ¤µ¤ì¡¢ -¿·¤·¤¤ÃͤòÆɤ߽Ф¹¤Ë¤Ï¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥ª¡¼¥×¥ó¤¹¤ëɬÍפ¬¤¢¤ë¡£ +がレジスタ値と改行 (newline) 文字 1 個を格納するのに必要な長さより短い場合、 +同じファイルディスクリプタを続けて read することで、文字列全体を読み出すこと +ができる。この際、実行中の SPU タスクによりレジスタ値の変更の影響は受けない。 +文字列全体が読み出されると、それ以降の read 操作では 0 バイトが返され、 +新しい値を読み出すには新しいファイルディスクリプタをオープンする必要がある。 .TP .BR write (2) -¤³¤Î¥Õ¥¡¥¤¥ë¤Ø¤Î +このファイルへの .BR write (2) -Áàºî¤Ï¥ì¥¸¥¹¥¿Ãͤòʸ»úÎó¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£ -ʸ»úÎó¤Î²ò¼á¤ÏÀèƬ¤«¤é³«»Ï¤µ¤ì¡¢¿ô»ú°Ê³°¤Îʸ»ú¤¬½é¤á¤ÆÅо줹¤ë¤«¡¢ -¥Ð¥Ã¥Õ¥¡¤ÎËöÈø¤Ë㤹¤ë¤Þ¤Ç¹Ô¤ï¤ì¤ë¡£ -Ʊ¤¸¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ø³¤±¤Æ write ¤ò¹Ô¤¦¤È¡¢ -¸å¤Î write ¤Ë¤è¤êÁ°¤ÎÀßÄ꤬¾å½ñ¤­¤µ¤ì¤ë¡£ +操作はレジスタ値を文字列で指定された値に設定する。 +文字列の解釈は先頭から開始され、数字以外の文字が初めて登場するか、 +バッファの末尾に達するまで行われる。 +同じファイルディスクリプタへ続けて write を行うと、 +後の write により前の設定が上書きされる。 .RE .TP .B /fpcr -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤è¤ê Floating Point Status and Control Register ¤Ë -¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£¤³¤Î¥Õ¥¡¥¤¥ë¤ÏÂ礭¤µ 4 ¥Ð¥¤¥È¤Ç¤¢¤ë¡£ +このファイルにより Floating Point Status and Control Register に +アクセスできる。このファイルは大きさ 4 バイトである。 .I fpcr -¥Õ¥¡¥¤¥ë¤Ë²Äǽ¤ÊÁàºî¤Ï°Ê²¼¤Ç¤¢¤ë¡£ +ファイルに可能な操作は以下である。 .RS .TP .BR read (2) .I count -¤¬ 4 ¤è¤ê¾®¤µ¤¤¾ì¹ç¡¢ +が 4 より小さい場合、 .BR read (2) -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤ò +を .B EINVAL -¤ËÀßÄꤹ¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¥Ç¡¼¥¿¥Ð¥Ã¥Õ¥¡¤Ë 4 ¥Ð¥¤¥È¤ÎÃͤ¬½ñ¤­¹þ¤Þ¤ì¤ë¡£ -½ñ¤­¹þ¤Þ¤ì¤ëÃÍ¤Ï +に設定する。 +それ以外の場合、データバッファに 4 バイトの値が書き込まれる。 +書き込まれる値は .I fpcr -¥ì¥¸¥¹¥¿¤Î¸½ºß¤ÎÃͤǤ¢¤ë¡£ +レジスタの現在の値である。 .TP .BR write (2) .I count -¤¬ 4 ¤è¤ê¾®¤µ¤¤¾ì¹ç¡¢ +が 4 より小さい場合、 .BR write (2) -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤ò +を .B EINVAL -¤ËÀßÄꤹ¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢ 4 ¥Ð¥¤¥È¤ÎÃͤ¬¥Ç¡¼¥¿¥Ð¥Ã¥Õ¥¡¤«¤é¥³¥Ô¡¼¤µ¤ì¡¢ +に設定する。 +それ以外の場合、 4 バイトの値がデータバッファからコピーされ、 .I fpcr -¥ì¥¸¥¹¥¿¤ÎÃͤ¬¹¹¿·¤µ¤ì¤ë¡£ +レジスタの値が更新される。 .RE .TP .BR /signal1 ", " /signal2 -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ë¤è¤ê -SPU ¤ÎÆó¤Ä¤Î¥·¥°¥Ê¥ëÄÌÃÎ¥Á¥ã¥Í¥ë (signal notification channel) ¤Ë -¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ -¤³¤ì¤é¤Ï 32 ¥Ó¥Ã¥Èñ°Ì¤ÎÆɤ߽ñ¤­¤¬¤Ç¤­¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Î°ì¤Ä¤Ë½ñ¤­¹þ¤ß¤ò¹Ô¤¦¤È¡¢¤½¤Î SPU ¤Î³ä¤ê¹þ¤ß¤¬ -ȯÀ¸¤¹¤ë¥È¥ê¥¬¡¼¤È¤Ê¤ë¡£ -¥·¥°¥Ê¥ë¥Õ¥¡¥¤¥ë¤Ø½ñ¤­¹þ¤Þ¤ì¤¿Ãͤϡ¢¥Á¥ã¥Í¥ë·Ðͳ¤Ç SPU ¤ÇÆɤ߽Ф·¤¿¤ê¡¢ -¤³¤Î¥Õ¥¡¥¤¥ë·Ðͳ¤Ç¥Û¥¹¥È¤Î¥æ¡¼¥¶¶õ´Ö¤ÇÆɤ߽Ф·¤¿¤ê¤Ç¤­¤ë¡£ -SPU ¤¬ÃͤòÆɤ߽Ф·¤¿¸å¤Ç¤Ï¡¢ÃÍ¤Ï 0 ¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë¡£ -¥ª¡¼¥×¥ó¤µ¤ì¤¿ +これらのファイルにより +SPU の二つのシグナル通知チャネル (signal notification channel) に +アクセスできる。 +これらは 32 ビット単位の読み書きができる。 +これらのファイルの一つに書き込みを行うと、その SPU の割り込みが +発生するトリガーとなる。 +シグナルファイルへ書き込まれた値は、チャネル経由で SPU で読み出したり、 +このファイル経由でホストのユーザ空間で読み出したりできる。 +SPU が値を読み出した後では、値は 0 にリセットされる。 +オープンされた .I signal1 -¤ä +や .I signal2 -¥Õ¥¡¥¤¥ë¤Ë²Äǽ¤ÊÁàºî¤Ï°Ê²¼¤Ç¤¢¤ë¡£ +ファイルに可能な操作は以下である。 .RS .TP .BR read (2) .I count -¤¬ 4 ¤è¤ê¾®¤µ¤¤¾ì¹ç¡¢ +が 4 より小さい場合、 .BR read (2) -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤ò +を .B EINVAL -¤ËÀßÄꤹ¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¥Ç¡¼¥¿¥Ð¥Ã¥Õ¥¡¤Ë 4 ¥Ð¥¤¥È¤ÎÃͤ¬½ñ¤­¹þ¤Þ¤ì¤ë¡£ -½ñ¤­¹þ¤Þ¤ì¤ëÃͤϡ¢»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ëÄÌÃΥ쥸¥¹¥¿¤Î¸½ºß¤ÎÃͤǤ¢¤ë¡£ +に設定する。 +それ以外の場合、データバッファに 4 バイトの値が書き込まれる。 +書き込まれる値は、指定されたシグナル通知レジスタの現在の値である。 .TP .BR write (2) .I count -¤¬ 4 ¤è¤ê¾®¤µ¤¤¾ì¹ç¡¢ +が 4 より小さい場合、 .BR write (2) -¤Ï \-1 ¤òÊÖ¤·¡¢ +は \-1 を返し、 .I errno -¤ò +を .B EINVAL -¤ËÀßÄꤹ¤ë¡£ -¤½¤ì°Ê³°¤Î¾ì¹ç¡¢ 4 ¥Ð¥¤¥È¤ÎÃͤ¬¥Ç¡¼¥¿¥Ð¥Ã¥Õ¥¡¤«¤é¥³¥Ô¡¼¤µ¤ì¡¢ -»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ëÄÌÃΥ쥸¥¹¥¿¤ÎÃͤ¬¹¹¿·¤µ¤ì¤ë¡£ -¥·¥°¥Ê¥ëÄÌÃΥ쥸¥¹¥¿¤Î¹¹¿·¤Ë¤Ï¡¢¥ì¥¸¥¹¥¿ÃͤòÆþÎϥǡ¼¥¿¤ÇÃÖ¤­´¹¤¨¤ë¥â¡¼¥É¤È -°ÊÁ°¤ÎÃͤÈÆþÎϥǡ¼¥¿¤Î¥Ó¥Ã¥Èñ°Ì¤Î OR ¤ò¤È¤Ã¤¿Ãͤ˹¹¿·¤¹¤ë¥â¡¼¥É¤¬¤¢¤ë¡£ -¤É¤Á¤é¤Î¥â¡¼¥É¤Ë¤Ê¤ë¤«¤Ï¡¢¤½¤ì¤¾¤ì +に設定する。 +それ以外の場合、 4 バイトの値がデータバッファからコピーされ、 +指定されたシグナル通知レジスタの値が更新される。 +シグナル通知レジスタの更新には、レジスタ値を入力データで置き換えるモードと +以前の値と入力データのビット単位の OR をとった値に更新するモードがある。 +どちらのモードになるかは、それぞれ .IR signal1_type , .I signal2_type -¥Õ¥¡¥¤¥ë¤ÎÆâÍƤˤè¤Ã¤Æ·è¤Þ¤ë¡£ +ファイルの内容によって決まる。 .RE .TP .BR /signal1_type ", " /signal2_type -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¥·¥°¥Ê¥ëÄÌÃÎ¥Õ¥¡¥¤¥ë +これらのファイルは、シグナル通知ファイル .I signal1 -¤È +と .I signal2 -¤ÎÆ°ºî¤òÊѹ¹¤¹¤ë¡£ -¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï¿ôÃͤòɽ¤¹¥¢¥¹¥­¡¼Ê¸»úÎó¤òÊÝ»ý¤·¡¢ -Æɤ߽Ф¹¤È "1" ¤« "0" ¤Î¤É¤Á¤é¤«¤¬ÆÀ¤é¤ì¤ë¡£ -¥â¡¼¥É 0 (¾å½ñ¤­¥â¡¼¥É) ¤Ç¤Ï¡¢¥Ï¡¼¥É¥¦¥§¥¢¤Ï¥·¥°¥Ê¥ë¥Á¥ã¥Í¥ë¤ÎÆâÍƤò -¥·¥°¥Ê¥ë¥Á¥ã¥Í¥ë¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¥Ç¡¼¥¿¤ÇÃÖ¤­´¹¤¨¤ë¡£ -¥â¡¼¥É 1 (ÏÀÍý OR ¥â¡¼¥É) ¤Ç¤Ï¡¢¥Ï¡¼¥É¥¦¥§¥¢¤Ï¥·¥°¥Ê¥ë¥Á¥ã¥Í¥ë¤Ë -½ñ¤­¹þ¤Þ¤ì¤¿¥Ó¥Ã¥È¤òÀÑ»»¤·¤Æ¤¤¤¯¡£ -¥ª¡¼¥×¥ó¤µ¤ì¤¿ +の動作を変更する。 +これらのファイルは数値を表すアスキー文字列を保持し、 +読み出すと "1" か "0" のどちらかが得られる。 +モード 0 (上書きモード) では、ハードウェアはシグナルチャネルの内容を +シグナルチャネルに書き込まれたデータで置き換える。 +モード 1 (論理 OR モード) では、ハードウェアはシグナルチャネルに +書き込まれたビットを積算していく。 +オープンされた .I signal1_type -¤ä +や .I signal2_type -¥Õ¥¡¥¤¥ë¤Ë²Äǽ¤ÊÁàºî¤Ï°Ê²¼¤Ç¤¢¤ë¡£ +ファイルに可能な操作は以下である。 .RS .TP .BR read (2) .BR read (2) -¤ËÅϤµ¤ì¤¿ +に渡された .I count -¤¬¥ì¥¸¥¹¥¿¤Î¿ôÃͤȲþ¹Ô (newline) ʸ»ú 1 ¸Ä¤ò³ÊǼ¤¹¤ë¤Î¤ËɬÍפÊŤµ¤è¤ê -û¤¤¾ì¹ç¡¢Æ±¤¸¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò³¤±¤Æ read ¤¹¤ë¤³¤È¤Ç¡¢ -ʸ»úÎóÁ´ÂΤòÆɤ߽Ф¹¤³¤È¤¬¤Ç¤­¤ë¡£ -ʸ»úÎóÁ´ÂΤ¬Æɤ߽Фµ¤ì¤ë¤È¡¢¤½¤ì°Ê¹ß¤Î read Áàºî¤Ç¤Ï 0 ¥Ð¥¤¥È¤¬ÊÖ¤µ¤ì¡¢ -¿·¤·¤¤ÃͤòÆɤ߽Ф¹¤Ë¤Ï¿·¤·¤¤¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥ª¡¼¥×¥ó¤¹¤ëɬÍפ¬¤¢¤ë¡£ +がレジスタの数値と改行 (newline) 文字 1 個を格納するのに必要な長さより +短い場合、同じファイルディスクリプタを続けて read することで、 +文字列全体を読み出すことができる。 +文字列全体が読み出されると、それ以降の read 操作では 0 バイトが返され、 +新しい値を読み出すには新しいファイルディスクリプタをオープンする必要がある。 .TP .BR write (2) -¤³¤Î¥Õ¥¡¥¤¥ë¤Ø¤Î +このファイルへの .BR write (2) -Áàºî¤Ï¥ì¥¸¥¹¥¿Ãͤòʸ»úÎó¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£ -ʸ»úÎó¤Î²ò¼á¤ÏÀèƬ¤«¤é³«»Ï¤µ¤ì¡¢¿ô»ú°Ê³°¤Îʸ»ú¤¬½é¤á¤ÆÅо줹¤ë¤«¡¢ -¥Ð¥Ã¥Õ¥¡¤ÎËöÈø¤Ë㤹¤ë¤Þ¤Ç¹Ô¤ï¤ì¤ë¡£ -Ʊ¤¸¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ø³¤±¤Æ write ¤ò¹Ô¤¦¤È¡¢ -¸å¤Î write ¤Ë¤è¤êÁ°¤ÎÀßÄ꤬¾å½ñ¤­¤µ¤ì¤ë¡£ +操作はレジスタ値を文字列で指定された値に設定する。 +文字列の解釈は先頭から開始され、数字以外の文字が初めて登場するか、 +バッファの末尾に達するまで行われる。 +同じファイルディスクリプタへ続けて write を行うと、 +後の write により前の設定が上書きされる。 .RE -.SH Îã +.SH 例 .TP .IR /etc/fstab " entry" none /spu spufs gid=spu 0 0 @@ -473,7 +473,7 @@ none /spu spufs gid=spu 0 0 .\" Arnd Bergmann , .\" Mark Nutter and .\" Ulrich Weigand -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR close (2), .BR spu_create (2), .BR spu_run (2) diff --git a/release/man7/standards.7 b/release/man7/standards.7 index 5e8144d2..14f53d28 100644 --- a/release/man7/standards.7 +++ b/release/man7/standards.7 @@ -27,263 +27,263 @@ .\" Updated 2008-08-07, Akihiro MOTOKI, LDP v3.05 .\" Updated 2008-08-20, Akihiro MOTOKI, LDP v3.07 .\" -.\" WORD: standards ɸ½àµ¬³Ê -.\" WORD: revision ²þÄûÈÇ -.\" WORD: guide »Ø¿Ë +.\" WORD: standards 標準規格 +.\" WORD: revision 改訂版 +.\" WORD: guide 指針 .\" .TH STANDARDS 7 2009-06-01 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -standards \- C ¤È UNIX ¤Îɸ½àµ¬³Ê -.SH ÀâÌÀ -¿¤¯¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¡Ö½àµò (CONFORMING TO)¡×¤Î¾Ï¤Ï¡¢ -¤½¤Î¥Ú¡¼¥¸¤Ëµ­ºÜ¤µ¤ì¤¿¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¬½àµò¤¹¤ë -³Æ¼ï¤Îɸ½àµ¬³Ê¤ò¼¨¤¹¤â¤Î¤Ç¤¢¤ë¡£ -°Ê²¼¤Ë¤³¤ì¤é¤Îɸ½àµ¬³Ê¤Î´Êñ¤ÊÀâÌÀ¤òµ­¤¹¡£ +.SH 名前 +standards \- C と UNIX の標準規格 +.SH 説明 +多くのマニュアルページの「準拠 (CONFORMING TO)」の章は、 +そのページに記載されたインタフェースが準拠する +各種の標準規格を示すものである。 +以下にこれらの標準規格の簡単な説明を記す。 .TP .B V7 -¥Ù¥ë¸¦µæ½ê¤Ë¤è¤ë¸µÁÄ UNIX ¤Ç¤¢¤ë Version 7¡£ +ベル研究所による元祖 UNIX である Version 7。 .TP .B 4.2BSD -¥«¥ê¥Õ¥©¥ë¥Ë¥¢Âç¥Ð¡¼¥¯¥ì¡¼¹» (the University of California at Berkeley) -¤Ë¤è¤ê¥ê¥ê¡¼¥¹¤µ¤ì¤¿ +カリフォルニア大バークレー校 (the University of California at Berkeley) +によりリリースされた .IR "Berkeley Software Distribution" -¥ê¥ê¡¼¥¹ 4.2 ¤Ë¤è¤Ã¤Æµ¬Äꤵ¤ì¤¿¡¢¼ÂÁõ¤Ë´ð¤Å¤¯É¸½àµ¬³Ê -(implementation standard)¡£ -¥Ð¡¼¥¯¥ì¡¼¤Ë¤è¤ë¥ê¥ê¡¼¥¹¤ÎÃæ¤Ç -TCP/IP ¥¹¥¿¥Ã¥¯¤È¥½¥±¥Ã¥È API ¤ò´Þ¤àºÇ½é¤Î¥ê¥ê¡¼¥¹¤Ç¤¢¤ë¡£ +リリース 4.2 によって規定された、実装に基づく標準規格 +(implementation standard)。 +バークレーによるリリースの中で +TCP/IP スタックとソケット API を含む最初のリリースである。 -¤³¤ì¤è¤êÁ°¤ÎBSD ¤Î¼ç¤Ê¥ê¥ê¡¼¥¹¤È¤·¤Æ¤Ï -\fI3BSD\fP (1980), \fI4BSD\fP (1980), \fI4.1BSD\fP (1981) ¤¬¤¢¤ë¡£ +これより前のBSD の主なリリースとしては +\fI3BSD\fP (1980), \fI4BSD\fP (1980), \fI4.1BSD\fP (1981) がある。 .TP .B 4.3BSD -1986 ǯ¤Ë¥ê¥ê¡¼¥¹¤µ¤ì¤¿ 4.2BSD ¤Î¸å·Ñ¡£ +1986 年にリリースされた 4.2BSD の後継。 .TP .B 4.4BSD -1993 ǯ¤Ë¥ê¥ê¡¼¥¹¤µ¤ì¤¿ 4.3BSD ¤Î¸å·Ñ¡£ -¥Ð¡¼¥¯¥ì¡¼ (Berkeley) ¤Ë¤è¤ëºÇ¸å¤ÎÂ礭¤Ê¥ê¥ê¡¼¥¹¤Ç¤¢¤ë¡£ +1993 年にリリースされた 4.3BSD の後継。 +バークレー (Berkeley) による最後の大きなリリースである。 .TP .B System V -AT&T ¤Î¾¦ÍÑ System V (5) ¥ê¥ê¡¼¥¹¤Î 1983 ǯÈǤˤè¤êµ¬Äꤵ¤ì¤¿ -¼ÂÁõ¤Ë´ð¤Å¤¯É¸½àµ¬³Ê¡£ -°ì¤ÄÁ°¤Î AT&T ¤ÎÂ礭¤Ê¥ê¥ê¡¼¥¹¤Ï 1981 ǯ¤Ë¥ê¥ê¡¼¥¹¤µ¤ì¤¿ +AT&T の商用 System V (5) リリースの 1983 年版により規定された +実装に基づく標準規格。 +一つ前の AT&T の大きなリリースは 1981 年にリリースされた .I "System III" -¤Ç¤¢¤ë¡£ +である。 .TP .B System V release 2 (SVr2) -System V ¤ÎÆóÈÖÌܤΥê¥ê¡¼¥¹¤Ç¤¢¤ê¡¢1985 ǯ¤ËºîÀ®¤µ¤ì¤¿¡£ -SVr2 ¤ÏÀµ¼°¤Ë¤Ï 1985 ǯ¤Ëȯ¹Ô¤µ¤ì¤¿ +System V の二番目のリリースであり、1985 年に作成された。 +SVr2 は正式には 1985 年に発行された .I "System V Interface Definition version 1" .RI ( "SVID 1" ) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ +に記載されている。 .TP .B System V release 3 (SVr3) -SVr2 ¤Î¸å·Ñ¡£1986 ǯ¤Ë¥ê¥ê¡¼¥¹¤µ¤ì¤¿¡£ -¤³¤Î¥ê¥ê¡¼¥¹¤ÏÀµ¼°¤Ë¤Ï +SVr2 の後継。1986 年にリリースされた。 +このリリースは正式には .I "System V Interface Definition version 2" .RI ( "SVID 2" ) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ +に記載されている。 .TP .B System V release 4 (SVr4) -SVr3 ¤Î¸å·Ñ¡£1989 ǯ¤Ë¥ê¥ê¡¼¥¹¤µ¤ì¤¿¡£ -¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Î System V ¤Ë¤Ä¤¤¤Æ¤Ï +SVr3 の後継。1989 年にリリースされた。 +このバージョンの System V については "Programmer's Reference Manual: Operating System API (Intel processors)" -(Prentice-Hall 1992, ISBN 0-13-951294-2) ¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥ê¥ê¡¼¥¹¤ÏÀµ¼°¤Ë¤Ï +(Prentice-Hall 1992, ISBN 0-13-951294-2) に記載されている。 +このリリースは正式には .I "System V Interface Definition version 3" .RI ( "SVID 3" ) -¤Ëµ­ºÜ¤µ¤ì¤Æ¤ª¤ê¡¢System V ¤ÎºÇ½ªÅª¤Ê¥ê¥ê¡¼¥¹¤È¹Í¤¨¤é¤ì¤Æ¤¤¤ë¡£ +に記載されており、System V の最終的なリリースと考えられている。 .TP .B SVID 4 -System V Interface Definition version 4¡£ -1995 ǯ¤Ëȯ¹Ô¤µ¤ì¤¿¡£ -¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ç¤Ï http://www.sco.com/developers/devspecs/ -¤ÇÆþ¼ê¤Ç¤­¤ë¡£ +System V Interface Definition version 4。 +1995 年に発行された。 +インターネットでは http://www.sco.com/developers/devspecs/ +で入手できる。 .TP .B C89 -ºÇ½é¤Î C ¸À¸ì¤Îɸ½àµ¬³Ê¤Ç¤¢¤ë¡£ -ANSI (American National Standards Institute) ¤Ë¤è¤ê -1989 ǯ¤Î¾µÇ§¤µ¤ì¤¿ -.RI ( X3.159-1989 )¡£ -»þ¤Ë¤Ï¡¢¤³¤Îµ¬³Ê¤Ï +最初の C 言語の標準規格である。 +ANSI (American National Standards Institute) により +1989 年の承認された +.RI ( X3.159-1989 )。 +時には、この規格は .I "ANSI C" -¤È¤â¸Æ¤Ð¤ì¤ë¤¬¡¢ -C99 ¤â ANSI ɸ½à¤Ê¤Î¤Ç¡¢¤³¤Î¸À¤¤Êý¤Ï¤¢¤¤¤Þ¤¤¤Ç¤¢¤ë¡£ -¤³¤Îµ¬³Ê¤Ï 1990 ǯ¤Ë ISO (International Standards Organization) ¤Ë¤è¤ë -¾µÇ§¤â¼õ¤±¤Æ¤ª¤ê -.RI ( "ISO/IEC 9899:1990" )¡¢ -¤½¤Î¤¿¤á +とも呼ばれるが、 +C99 も ANSI 標準なので、この言い方はあいまいである。 +この規格は 1990 年に ISO (International Standards Organization) による +承認も受けており +.RI ( "ISO/IEC 9899:1990" )、 +そのため .I "ISO C90" -¤È¤·¤Æ»²¾È¤µ¤ì¤ë¤³¤È¤â¤¿¤Þ¤Ë¤¢¤ë¡£ +として参照されることもたまにある。 .TP .B C99 -C ¸À¸ì¤Îɸ½àµ¬³Ê¤Î¤³¤Î²þÄûÈÇ¤Ï ISO ¤Ë¤è¤ê 1999 ǯ¤Ë¾µÇ§¤µ¤ì¤¿ -.RI ( "ISO/IEC 9899:1999" )¡£ +C 言語の標準規格のこの改訂版は ISO により 1999 年に承認された +.RI ( "ISO/IEC 9899:1999" )。 http://www.open-std.org/jtc1/sc22/wg14/www/standards -¤«¤é¥ª¥ó¥é¥¤¥ó¤ÇÆþ¼ê²Äǽ¤Ç¤¢¤ë¡£ +からオンラインで入手可能である。 .TP .B POSIX.1-1990 "Portable Operating System Interface for Computing Environments". -1990 ǯ¤Ë ISO ¤Ë¤è¤ê¾µÇ§¤µ¤ì¤¿¡¢IEEE 1003.1-1990 part 1 -.RI ( "ISO/IEC 9945-1:1990" )¡£ -"POSIX" ¤È¤¤¤¦¸ÀÍÕ¤Ï Richard Stallman ¤¬½é¤á¤Æºî¤Ã¤¿¡£ +1990 年に ISO により承認された、IEEE 1003.1-1990 part 1 +.RI ( "ISO/IEC 9945-1:1990" )。 +"POSIX" という言葉は Richard Stallman が初めて作った。 .TP .B POSIX.2 IEEE Std 1003.2-1992. -¥³¥Þ¥ó¥É¤È¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ë¤Ä¤¤¤ÆÀâÌÀ¤¬½ñ¤«¤ì¤Æ¤ª¤ê¡¢ -1993 ǯ¤Ë ISO ¤Ë¤è¤ê¾µÇ§¤µ¤ì¤¿ -.RI ( "ISO/IEC 9945-2:1993" )¡£ +コマンドとユーティリティについて説明が書かれており、 +1993 年に ISO により承認された +.RI ( "ISO/IEC 9945-2:1993" )。 .TP -.BR POSIX.1b " (°ÊÁ°¤Ï \fIPOSIX.4\fP ¤È¤â¸À¤ï¤ì¤¿)" +.BR POSIX.1b " (以前は \fIPOSIX.4\fP とも言われた)" IEEE Std 1003.1b-1993. -°Ü¿¢²Äǽ¤Ê¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Î¤¿¤á¤Î¥ê¥¢¥ë¥¿¥¤¥àµ¡Ç½¤Ë¤Ä¤¤¤Æ -µ­ºÜ¤µ¤ì¤Æ¤ª¤ê¡¢ -1996 ǯ¤Î ISO ¤Ë¤è¤ê¾µÇ§¤µ¤ì¤¿ -.RI ( "ISO/IEC 9945-1:1996" )¡£ +移植可能なオペレーティングシステムのためのリアルタイム機能について +記載されており、 +1996 年の ISO により承認された +.RI ( "ISO/IEC 9945-1:1996" )。 .TP .B POSIX.1c IEEE Std 1003.1c-1995. -POSIX ¥¹¥ì¥Ã¥É¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æµ­ºÜ¤·¤Æ¤¤¤ë¡£ +POSIX スレッドインタフェースについて記載している。 .TP .B POSIX.1d IEEE Std 1003.1c-1999. -ÄɲäΥꥢ¥ë¥¿¥¤¥à³ÈÄ¥¤Ë¤Ä¤¤¤Æµ­ºÜ¤·¤Æ¤¤¤ë¡£ +追加のリアルタイム拡張について記載している。 .TP .B POSIX.1g IEEE Std 1003.1g-2000. -(¥½¥±¥Ã¥È¤ò´Þ¤á¤¿) ¥Í¥Ã¥È¥ï¡¼¥¯ API ¤Ë¤Ä¤¤¤Æµ­ºÜ¤·¤Æ¤¤¤ë¡£ +(ソケットを含めた) ネットワーク API について記載している。 .TP .B POSIX.1j IEEE Std 1003.1j-2000. -¹âÅ٤ʥꥢ¥ë¥¿¥¤¥à³ÈÄ¥¤Ë¤Ä¤¤¤Æµ­ºÜ¤·¤Æ¤¤¤ë¡£ +高度なリアルタイム拡張について記載している。 .TP .B POSIX.1-1996 -POSIX.1 ¤Î 1996 ǯ¤Î²þÄûÈÇ¡£ -POSIX.1b ¤È POSIX.1c ¤ò¼è¤ê¹þ¤ó¤Ç¤¤¤ë¡£ +POSIX.1 の 1996 年の改訂版。 +POSIX.1b と POSIX.1c を取り込んでいる。 .TP .B XPG3 -1989 ǯ¥ê¥ê¡¼¥¹¤Î¡¢¥Þ¥ë¥Á¥Ù¥ó¥À¤Ë¤è¤ë¶È³¦ÃÄÂΤǤ¢¤ë X/Open ¼Ò¤Ë¤è¤ë +1989 年リリースの、マルチベンダによる業界団体である X/Open 社による .I "X/Open Portability Guide" -¤ÎºÇ½é¤ÎÂ礭¤Ê¥ê¥ê¡¼¥¹¤Ç¤¢¤ë¡£ -¤³¤Î»Ø¿Ë¤Ï POSIX ɸ½àµ¬³Ê¤Ë´ð¤Å¤¤¤Æ¤¤¤ë¡£ +の最初の大きなリリースである。 +この指針は POSIX 標準規格に基づいている。 .TP .B XPG4 -1992 ǯ¤Ë¥ê¥ê¡¼¥¹¤µ¤ì¤¿¡¢X/Open Portability Guide (°Ü¿¢À­¤Ë´Ø¤¹¤ë»Ø¿Ë) -¤Î²þÄûÈÇ¡£ +1992 年にリリースされた、X/Open Portability Guide (移植性に関する指針) +の改訂版。 .TP .B XPG4v2 -XPG4 ¤Î 1994ǯ²þÄûÈÇ¡£ +XPG4 の 1994年改訂版。 .I "Spec 1170" -¤È¤â¸Æ¤Ð¤ì¤ë¡£ -1170 ¤È¤Ï¤³¤Îɸ½àµ¬³Ê¤¬ÄêµÁ¤·¤Æ¤¤¤ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î¿ô¤òɽ¤¹¤â¤Î¤Ç¤¢¤ë¡£ +とも呼ばれる。 +1170 とはこの標準規格が定義しているインタフェースの数を表すものである。 .TP .B SUS (SUSv1) Single UNIX Specification. -¤³¤Îµ¬³Ê¤Ï¡¢XPG4v2 ¤ä¤½¤Î¾¤Î X/Open ¤Ë¤è¤ëɸ½àµ¬³Ê +この規格は、XPG4v2 やその他の X/Open による標準規格 (X/Open Curses Issue 4 version 2, X/Open Networking Service (XNS) Issue 4) -¤òºÆ¹½À®¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Îµ¬³Ê¤Ë½àµò¤¹¤ë¥·¥¹¥Æ¥à¤Ï +を再構成したものである。 +この規格に準拠するシステムは .I "UNIX 95" -¤ò̾¾è¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を名乗ることができる。 .TP .B SUSv2 Single UNIX Specification version 2. .I XPG5 -¤È¸Æ¤Ð¤ì¤ë¤³¤È¤â¤¢¤ë¡£ -¤³¤Îµ¬³Ê¤Ï 1997 ǯ¤ËÅо줷¤¿¡£ -¤³¤Îµ¬³Ê¤Ë½àµò¤¹¤ë¥·¥¹¥Æ¥à¤Ï +と呼ばれることもある。 +この規格は 1997 年に登場した。 +この規格に準拠するシステムは .I "UNIX 98" -¤ò̾¾è¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を名乗ることができる。 http://www.UNIX-systems.org/version2/ -¤â»²¾È¤Î¤³¤È¡£ +も参照のこと。 .TP .B POSIX.1-2001, SUSv3 -¤³¤ì¤Ï POSIX.1, POSIX.2, SUS ¤Î 2001ǯ¤Î²þÄûÈǤǤ¢¤ë¡£ -¤Þ¤¿¡¢POSIX.1, POSIX.2, SUS ¤ò°ì¤Ä¤Îʸ½ñ¤ËÅý¹ç¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤ÎÅý¹ç¤Ï Austin Group (http://www.opengroup.org/austin/) -¤Î¸å±ç¤Î¸µ¤Ç¹Ô¤ï¤ì¤¿¡£ -¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ç¤Ï -http://www.unix-systems.org/version3/ ¤ÇÆþ¼ê¤Ç¤­¤ë¡£ -¤Þ¤¿¡¢¤³¤Îµ¬³Ê¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æ¤Ï -Linux ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¡¦¥Ñ¥Ã¥±¡¼¥¸¤Î 1p, 3p ¥»¥¯¥·¥ç¥ó¤Ç¤â -»²¾È¤Ç¤­¤ë (Î㤨¤Ð¡¢"man 3p open")¡£ +これは POSIX.1, POSIX.2, SUS の 2001年の改訂版である。 +また、POSIX.1, POSIX.2, SUS を一つの文書に統合したものである。 +この統合は Austin Group (http://www.opengroup.org/austin/) +の後援の元で行われた。 +インターネットでは +http://www.unix-systems.org/version3/ で入手できる。 +また、この規格に書かれているインタフェースについては +Linux のマニュアルページ・パッケージの 1p, 3p セクションでも +参照できる (例えば、"man 3p open")。 -¤³¤Îµ¬³Ê¤Ç¤Ï¡¢ -.I "POSIX Conformance (POSIX ½àµò)" -¤È -.I "XSI Conformance (XSI ½àµò)" -¤ÎÆóÃʳ¬¤ÎŬ¹çÀ­¤òÄêµÁ¤·¤Æ¤¤¤ë¡£ -.I "POSIX ½àµò" -¤Ï½àµò¤¹¤ë¥·¥¹¥Æ¥à¤ËɬÍפȤµ¤ì¤ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î´ðËÜ¥»¥Ã¥È¤Ç¤¢¤ê¡¢ -.I "XSI ½àµò)" -¤Ç¤Ï "XSI ³ÈÄ¥" ¤È¤¤¤¦ÄɲäΥ¤¥ó¥¿¥Õ¥§¡¼¥¹·²¤¬µÁ̳ÉÕ¤±¤é¤ì¤Æ¤¤¤ë -(POSIX ½àµò¤Ç¤Ï XSI ³ÈÄ¥¤Î¼ÂÁõ¤ÏǤ°Õ (optional) ¤È¤Ê¤Ã¤Æ¤¤¤ë)¡£ -XSI ½àµò¤Î¥·¥¹¥Æ¥à¤Ï +この規格では、 +.I "POSIX Conformance (POSIX 準拠)" +と +.I "XSI Conformance (XSI 準拠)" +の二段階の適合性を定義している。 +.I "POSIX 準拠" +は準拠するシステムに必要とされるインタフェースの基本セットであり、 +.I "XSI 準拠)" +では "XSI 拡張" という追加のインタフェース群が義務付けられている +(POSIX 準拠では XSI 拡張の実装は任意 (optional) となっている)。 +XSI 準拠のシステムは .I "UNIX 03" -¤ò̾¾è¤ë¤³¤È¤¬¤Ç¤­¤ë -(XSI ½àµò¤ÎÆâÍƤ¬ +を名乗ることができる +(XSI 準拠の内容が .I "Single UNIX Specification version 3" .RI ( SUSv3 ) -¤Ç¤¢¤ë)¡£ +である)。 -POSIX.1-2001 ʸ½ñ¤Ï 4¤Ä¤ÎÉôʬ¤Ëʬ¤±¤ë¤³¤È¤¬¤Ç¤­¤ë: +POSIX.1-2001 文書は 4つの部分に分けることができる: .BR XBD : -ÄêµÁ¡¢ÍѸì¤È³µÇ°¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Î»ÅÍÍ¡£ +定義、用語と概念、ヘッダファイルの仕様。 .BR XSH : -´Ø¿ô¤Î»ÅÍÍ (´Ø¿ô¤È¤Ï¡¢¼ÂºÝ¤Î¼ÂÁõ¤Ç¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤È -¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Î¤³¤È¤Ç¤¢¤ë)¡£ +関数の仕様 (関数とは、実際の実装でのシステムコールと +ライブラリ関数のことである)。 .BR XCU : -¥³¥Þ¥ó¥É¤È¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Î»ÅÍÍ -(°ÊÁ°¡¢ POSIX.2 ¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤¿ÆâÍÆ)¡£ +コマンドとユーティリティの仕様 +(以前、 POSIX.2 に記載されていた内容)。 .BR XRAT : -»²¹Í¾ðÊó¤Èµ¬³Ê¤Î¤½¤ì°Ê³°¤ÎÉôʬ +参考情報と規格のそれ以外の部分 -POSIX.1-2001 ¤Ï C99 ¤ÈÀ°¹ç¤¬¤È¤é¤ì¤Æ¤ª¤ê¡¢ -C99 ¤Çɸ½à²½¤µ¤ì¤¿¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ï POSIX.1-2001 ¤Ç¤â -ɸ½à²½¤µ¤ì¤Æ¤¤¤ë¡£ +POSIX.1-2001 は C99 と整合がとられており、 +C99 で標準化されたライブラリ関数は POSIX.1-2001 でも +標準化されている。 -¸µ¤Î 2001 ǯÈǤÎɸ½à¤ËÂФ¹¤ë Technical Corrigenda -(Àµ¸íɽ; ºÙ¤«¤Ê½¤Àµ¤È²þÎÉ) ¤¬Æó¤Ä¹Ô¤ï¤ì¤Æ¤¤¤ë: -2003 ǯ¤Î TC1 +元の 2001 年版の標準に対する Technical Corrigenda +(正誤表; 細かな修正と改良) が二つ行われている: +2003 年の TC1 .RI ( POSIX.1-2003 -¤È¸Æ¤Ð¤ì¤ë) ¤È 2004 ǯ¤Î TC2 +と呼ばれる) と 2004 年の TC2 .RI ( POSIX.1-2004 -¤È¸Æ¤Ð¤ì¤ë) ¤Ç¤¢¤ë¡£ +と呼ばれる) である。 .TP .B POSIX.1-2008, SUSv4 -POSIX.1/SUS ¤Î¼¡¤Î²þÄûÈǤ˴ؤ¹¤ëºî¶È¤Ï 2008 ǯ¤Ë´°Î»¤·¾µÇ§¤µ¤ì¤¿¡£ +POSIX.1/SUS の次の改訂版に関する作業は 2008 年に完了し承認された。 -¤³¤Î²þÄûÈǤǤÎÊѹ¹¤Ï POSIX.1-2001/SUSv3 ¤Ç¹Ô¤ï¤ì¤¿Êѹ¹¤Û¤ÉÂ礭¤¯¤Ê¤¤¤¬¡¢ -¿¤¯¤Î¿·¤·¤¤¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤¬Äɲ䵤졢´û¸¤Î»ÅÍͤ˴ؤ·¤Æ¤â -¼ï¡¹¤Î¾ÜºÙ¤¬Êѹ¹¤µ¤ì¤Æ¤¤¤ë¡£ -POSIX.1-2001 ¤Ç¤ÏǤ°Õ (optional) ¤È¤µ¤ì¤Æ¤¤¤¿¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Î¿¤¯¤¬ -2008 ǯÈǤÎɸ½à¤Ç¤Ïɬ¿Ü (mandatory) ¤Ë¤Ê¤ë¡£ -POSIX.1-2001 ¤Ë¸ºß¤¹¤ë¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Î¤¤¤¯¤Ä¤«¤Ï¡¢ -POSIX.1-2008 ¤Ç¤ÏÇÑ»ßͽÄê¤Î°õ¤¬ÉÕ¤±¤é¤ì¤¿¤ê¡¢ -ɸ½à¤«¤é´°Á´¤Ëºï½ü¤µ¤ì¤¿¤ê¤·¤Æ¤¤¤ë¡£ +この改訂版での変更は POSIX.1-2001/SUSv3 で行われた変更ほど大きくないが、 +多くの新しいインターフェイスが追加され、既存の仕様に関しても +種々の詳細が変更されている。 +POSIX.1-2001 では任意 (optional) とされていたインターフェイスの多くが +2008 年版の標準では必須 (mandatory) になる。 +POSIX.1-2001 に存在するインターフェイスのいくつかは、 +POSIX.1-2008 では廃止予定の印が付けられたり、 +標準から完全に削除されたりしている。 -²þÄû¤µ¤ì¤¿É¸½à¤Ï POSIX.1-2001 ¤ÈƱ¤¸¤¯ 4 ¤Ä¤ÎÉôʬ¤Ëʬ¤±¤é¤ì¡¢ -Á°²ó¤ÈƱÍͤËÆóÃʳ¬¤ÎŬ¹çÀ­¤òÄêµÁ¤·¤Æ¤¤¤ë¡£ -´ðËÜ¥»¥Ã¥È¤Ç¤¢¤ë -.I "POSIX Conformance (POSIX ½àµò)" -¤È¡¢ -´ðËÜ»ÅÍͤΥ¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ë²Ã¤¨¤ÆÄɲäΥ¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹·²¤¬ -µÁ̳ÉÕ¤±¤é¤ì¤Æ¤¤¤ë -.I "XSI Conformance (XSI ½àµò)" -¤ÎÆó¤Ä¤Ç¤¢¤ë¡£ +改訂された標準は POSIX.1-2001 と同じく 4 つの部分に分けられ、 +前回と同様に二段階の適合性を定義している。 +基本セットである +.I "POSIX Conformance (POSIX 準拠)" +と、 +基本仕様のインターフェイスに加えて追加のインターフェイス群が +義務付けられている +.I "XSI Conformance (XSI 準拠)" +の二つである。 -°ìÈ̤ˤϡ¢¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î¡Ö½àµò¡×¤Î¾Ï¤Î¥ê¥¹¥È¤Ë POSIX.1-2001 ¤¬ -¤¢¤ì¤Ð¡¢Â¾¤ËÃí°Õ½ñ¤­¤¬¤Ê¤±¤ì¤Ð¡¢¤½¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï POSIX.1-2008 -¤Ë¤â½àµò¤·¤Æ¤¤¤ë¤È¹Í¤¨¤Æ¤è¤¤¡£ +一般には、マニュアルページの「準拠」の章のリストに POSIX.1-2001 が +あれば、他に注意書きがなければ、そのインターフェイスは POSIX.1-2008 +にも準拠していると考えてよい。 -¾Ü¤·¤¤¾ðÊó¤Ï Austin Group ¤Î¥¦¥§¥Ö¥µ¥¤¥È +詳しい情報は Austin Group のウェブサイト http://www.opengroup.org/austin/ -¤ËºÜ¤Ã¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +に載っている。 +.SH 関連項目 .BR feature_test_macros (7), .BR libc (7), .BR posixoptions (7) diff --git a/release/man7/suffixes.7 b/release/man7/suffixes.7 index 00327d9b..c80327a9 100644 --- a/release/man7/suffixes.7 +++ b/release/man7/suffixes.7 @@ -49,20 +49,20 @@ .\" Updated Tue Apr 24 21:51:14 JST 2001 .\" by Yuichi SATO .\" -.\"WORD: suffix ÀÜÈø +.\"WORD: suffix 接尾 .\" .TH SUFFIXES 7 2000-11-16 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -suffixes \- ¥Õ¥¡¥¤¥ë¤ÎÀÜÈø (suffix) ¤Î¥ê¥¹¥È -.SH ÀâÌÀ -½¬´·Åª¤Ë¥Õ¥¡¥¤¥ë¤ÎÀÜÈø (suffix) ¤Ï¥Õ¥¡¥¤¥ë¤ÎÆâÍƤò¼¨¤·¤Æ¤¤¤ë¡£ -¤³¤ÎÀÜÈø¤Ï¥Ô¥ê¥ª¥É (.) ¤È¤½¤ì¤Ë³¤¯°ì¤Ä°Ê¾å¤Îʸ»ú¤«¤é¤Ê¤Ã¤Æ¤¤¤ë¡£ -¥³¥ó¥Ñ¥¤¥é¡¼¤Î¤è¤¦¤Ê¡¢Â¿¤¯¤Îɸ½àŪ¤Ê¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ï¡¢ -¤³¤ÎÀÜÈø¤ò»ÈÍѤ·¤Æ¼è¤ê°·¤¦¥Õ¥¡¥¤¥ë¤Î·¿¤òÍý²ò¤¹¤ë¡£ +.SH 名前 +suffixes \- ファイルの接尾 (suffix) のリスト +.SH 説明 +習慣的にファイルの接尾 (suffix) はファイルの内容を示している。 +この接尾はピリオド (.) とそれに続く一つ以上の文字からなっている。 +コンパイラーのような、多くの標準的なユーティリティは、 +この接尾を使用して取り扱うファイルの型を理解する。 .BR make (1) -¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ï¥Õ¥¡¥¤¥ë¤ÎÀÜÈø¤Ë´ð¤Å¤¤¤¿¥ë¡¼¥ë¤Ë½¾¤Ã¤ÆÆ°ºî¤¹¤ë¡£ +ユーティリティはファイルの接尾に基づいたルールに従って動作する。 .PP -°Ê²¼¤Ï Linux ¥·¥¹¥Æ¥à¤Ç¤è¤¯¸«¤é¤ì¤ëÀÜÈø¤Î¥ê¥¹¥È¤Ç¤¢¤ë¡£ +以下は Linux システムでよく見られる接尾のリストである。 .PP .TS @@ -70,224 +70,224 @@ l | l _ | _ lI | l . Suffix File type - ,v RCS (¥ê¥Ó¥¸¥ç¥ó¡¦¥³¥ó¥È¥í¡¼¥ë) ¤Î¤¿¤á¤Î¥Õ¥¡¥¤¥ë - - ¥Ð¥Ã¥¯¥¢¥Ã¥×¡¦¥Õ¥¡¥¤¥ë - .C C++ ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É¡¢\fI.cc\fP ¤ÈÅù²Á - .F \fBcpp\fP(1)Ì¿Îá¤ò¤â¤Ã¤¿¥Õ¥©¡¼¥È¥é¥ó¤Î¥½¡¼¥¹ - ¤Þ¤¿¤Ï freeze(1) ¤Ç°µ½Ì¤µ¤ì¤¿¥Õ¥¡¥¤¥ë - .S \fBcpp\fP(1)Ì¿Îá¤ò¤â¤Ã¤¿¥¢¥»¥ó¥Ö¥é¡¦¥½¡¼¥¹ - .Y yabba(1) ¤Ç°µ½Ì¤µ¤ì¤¿¥Õ¥¡¥¤¥ë - .Z \fBcompress\fP(1)¤Ç°µ½Ì¤µ¤ì¤¿¥Õ¥¡¥¤¥ë - .[0-9]+gf TeX ¤Î°ìÈÌ¥Õ¥©¥ó¥È - .[0-9]+pk TeX ¤Î°µ½Ì¥Õ¥©¥ó¥È - .[1-9] Âбþ¤¹¤ë¾Ï¤Î¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸ - .[1-9][a-z] ¥µ¥Ö¥»¥¯¥·¥ç¥óÉÕ¤­¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸ - .a ¥ª¥Ö¥¸¥§¥¯¥È¡¦¥³¡¼¥É¤ÎÀÅŪ¥é¥¤¥Ö¥é¥ê - .ad X ¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¡¦¥Ç¥Õ¥©¥ë¥È¡¦¥Õ¥¡¥¤¥ë - .ada Ada ¤Î¥½¡¼¥¹(ËÜÂΤ«»ÞÍÕ¤«ÁȤ߹ç¤ï¤») - .adb Ada ¤Î¥½¡¼¥¹ËÜÂÎ - .ads Ada ¤Î¥½¡¼¥¹»ÅÍÍ - .afm PostScript ¤Î¥Õ¥©¥ó¥È¡¦¥á¥È¥ê¥¯¥¹ - .al Perl ¤Î¥ª¡¼¥È¥í¡¼¥É¡¦¥Õ¥¡¥¤¥ë - .am \fBautomake\fP(1) ¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë - .arc \fBarc\fP(1)¤Î¥¢¡¼¥«¥¤¥Ö - .arj \fBarj\fP(1)¤Î¥¢¡¼¥«¥¤¥Ö - .asc PGP ¤Î ASCII ²½¤µ¤ì¤¿¥Ç¡¼¥¿ - .asm (GNU) ¥¢¥»¥ó¥Ö¥é¤Î¥½¡¼¥¹ - .au ¥ª¡¼¥Ç¥£¥ª¡¦¥µ¥¦¥ó¥É¡¦¥Õ¥¡¥¤¥ë - .aux LaTeX ¤ÎÊä½õ¥Õ¥¡¥¤¥ë -.avi (Microsoft ¥Ó¥Ç¥ª) ¥à¡¼¥Ó¡¼ - .awk AWK ¸À¸ì¤Î¥×¥í¥°¥é¥à - .b LILO ¤Î¥Ö¡¼¥È¥í¡¼¥À¡¦¥¤¥á¡¼¥¸ - .bak ¥Ð¥Ã¥¯¥¢¥Ã¥×¡¦¥Õ¥¡¥¤¥ë - .bash \fBbash\fP(1) ¥·¥§¥ë¡¦¥¹¥¯¥ê¥×¥È - .bb gcc -ftest-coverage ¤Î¥Ù¡¼¥·¥Ã¥¯¡¦¥Ö¥í¥Ã¥¯¡¦¥ê¥¹¥È - .bbg gcc -ftest-coverage ¤Î¥Ù¡¼¥·¥Ã¥¯¡¦¥Ö¥í¥Ã¥¯¡¦¥°¥é¥Õ - .bbl BibTeX ¤Î½ÐÎÏ - .bdf X ¤Î¥Õ¥©¥ó¥È¥Õ¥¡¥¤¥ë - .bib TeX ʸ¸¥¥Ç¡¼¥¿¥Ù¡¼¥¹, BibTeX ¤ÎÆþÎÏ - .bm ¥Ó¥Ã¥È¥Þ¥Ã¥×¤Î¥½¡¼¥¹ - .bmp ¥Ó¥Ã¥È¥Þ¥Ã¥× - .bz2 \fBbzip2\fP(1) ¤ò»ÈÍѤ·¤Æ°µ½Ì¤µ¤ì¤¿¥Õ¥¡¥¤¥ë - .c C ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É - .cat ¥á¥Ã¥»¡¼¥¸¡¦¥«¥¿¥í¥°¡¦¥Õ¥¡¥¤¥ë - .cc C++ ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É - .cf ÀßÄê¥Õ¥¡¥¤¥ë - .cfg ÀßÄê¥Õ¥¡¥¤¥ë - .cgi WWW ¤Î¥³¥ó¥Æ¥ó¥Ä¤òºîÀ®¤¹¤ë¥×¥í¥°¥é¥à - .cls LaTeX ¤Î¥¯¥é¥¹ÄêµÁ¥Õ¥¡¥¤¥ë - .class Java ¤Î¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥Ð¥¤¥È¥³¡¼¥É - .conf ÀßÄê¥Õ¥¡¥¤¥ë - .config ÀßÄê¥Õ¥¡¥¤¥ë - .cpp \fI.cc\fR ¤ÈƱ¤¸ - .csh \fBcsh\fP(1) ¥·¥§¥ë¡¦¥¹¥¯¥ê¥×¥È - .cxx \fI.cc\fR ¤ÈƱ¤¸ - .dat ¥Ç¡¼¥¿¡¦¥Õ¥¡¥¤¥ë - .deb Debian ¤Î¥½¥Õ¥È¥¦¥§¥¢¡¦¥Ñ¥Ã¥±¡¼¥¸ - .def Modula-2 ¥½¡¼¥¹¤Î¥â¥¸¥å¡¼¥ëÄêµÁ¥Õ¥¡¥¤¥ë - .def ¤½¤Î¾¤ÎÄêµÁ¥Õ¥¡¥¤¥ë - .desc \fBmunpack\fP(1) ¤Ç¥¢¥ó¥Ñ¥Ã¥¯¤µ¤ì¤¿¥á¡¼¥ë¤ÎºÇ½é¤ÎÉôʬ - .diff ¥Õ¥¡¥¤¥ëº¹Ê¬ (\fBdiff\fP(1) ¥³¥Þ¥ó¥É¤Î½ÐÎÏ) - .dir dbm ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Ç¥£¥ì¥¯¥È¥ê¡¦¥Õ¥¡¥¤¥ë - .doc ¥É¥­¥å¥á¥ó¥È¡¦¥Õ¥¡¥¤¥ë - .dsc Debian ¤Î¥½¡¼¥¹¡¦¥³¥ó¥È¥í¡¼¥ë¥Õ¥¡¥¤¥ë - (¥½¡¼¥¹¡¦¥Ñ¥Ã¥±¡¼¥¸) - .dtx LaTeX ¥Ñ¥Ã¥±¡¼¥¸¤Î¥½¡¼¥¹ - .dvi TeX ¤Î¥Ç¥Ð¥¤¥¹ÆÈΩ½ÐÎÏ¥Õ¥¡¥¤¥ë - .el Emacs-Lisp ¤Î¥½¡¼¥¹ - .elc ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿ Emacs-Lisp¤Î¥³¡¼¥É - .eps ¥«¥×¥»¥ë²½¤µ¤ì¤¿PostScript - .exp Expect ¤Î¥½¡¼¥¹¥³¡¼¥É - .f Fortran ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É - .f77 Fortran 77 ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É - .f90 Fortran 90 ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É - .fas ¥×¥ê¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿ Common-Lisp¤Î¥³¡¼¥É - .fi ¥Õ¥©¡¼¥È¥é¥ó¤Î¥¤¥ó¥¯¥ë¡¼¥É¡¦¥Õ¥¡¥¤¥ë - .fig FIG ¥¤¥á¡¼¥¸¡¦¥Õ¥¡¥¤¥ë (\fBxfig\fR(1) ¤Ç»ÈÍѤµ¤ì¤ë) - .fmt TeX ¥Õ¥©¡¼¥Þ¥Ã¥È¡¦¥Õ¥¡¥¤¥ë - .gif ¥°¥é¥Õ¥£¥Ã¥¯¡¦¥¤¥á¡¼¥¸ (Compuserve Graphics Image File) - .gmo GNU ¥Õ¥©¡¼¥Þ¥Ã¥È¡¦¥á¥Ã¥»¡¼¥¸¡¦¥«¥¿¥í¥° - .gsf ghostscript ¤Î¥Õ¥©¥ó¥È - .gz \fBgzip\fP(1) ¤ò»ÈÍѤ·¤Æ°µ½Ì¤µ¤ì¤¿¥Õ¥¡¥¤¥ë - .h C ¤Þ¤¿¤Ï C++ ¤Î¥Ø¥Ã¥À¡¼¡¦¥Õ¥¡¥¤¥ë - .help ¥Ø¥ë¥×¡¦¥Õ¥¡¥¤¥ë - .hf \fI.help\fP ¤ËƱ¤¸ - .hlp \fI.help\fP ¤ËƱ¤¸ - .htm ÉÏ˳¿Í¤Î \fI.html\fP - .html World Wide Web ¤Ç»ÈÍѤ¹¤ë HTML ¤Îʸ½ñ - .hqx 7 ¥Ó¥Ã¥È¥¨¥ó¥³¡¼¥É¤µ¤ì¤¿ Macintosh ¥Õ¥¡¥¤¥ë - .i ¥×¥ê¥×¥í¥»¥¹¤ò¹Ô¤Ê¤Ã¤¿ C ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É - .icon ¥Ó¥Ã¥È¥Þ¥Ã¥×¤Î¥½¡¼¥¹ - .idx ¥Ï¥¤¥Ñ¡¼¥Æ¥­¥¹¥È¤ä¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¡¦¥Õ¥¡¥¤¥ë - .image ¥Ó¥Ã¥È¥Þ¥Ã¥×¤Î¥½¡¼¥¹ - .in ¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Î¥Æ¥ó¥×¥ì¡¼¥È (ÆÃ¤Ë GNU Autoconf) - .info Emacs info ¥Õ¥¡¥¤¥ë - .info-[0-9]+ ʬ³ä¤µ¤ì¤¿ info ¥Õ¥¡¥¤¥ë - .ins docstrip ¤Î LaTeX ¥Ñ¥Ã¥±¡¼¥¸¡¦¥¤¥ó¥¹¥È¡¼¥ë¡¦¥Õ¥¡¥¤¥ë - .itcl itcl ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É - itcl (incr tcl) ¤Ï tcl ¤Î OO ³ÈÄ¥ - .java Java ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É - .jpeg ¥°¥é¥Õ¥£¥Ã¥¯¥¤¥á¡¼¥¸ (Joint Photographic Experts Group) - .jpg ÉÏ˳¿Í¤Î \fI.jpeg\fP - .kmap \fBlyx\fP(1) ¤Î¥­¡¼¥Þ¥Ã¥× - .l \fI.lex\fP ¤Þ¤¿¤Ï \fI.lisp\fP ¤ËƱ¤¸ - .lex \fBlex\fP(1) ¤Þ¤¿¤Ï \fBflex\fP(1) ¥Õ¥¡¥¤¥ë - .lha lharc ¥¢¡¼¥«¥¤¥Ö - .lib Common-Lisp ¤Î¥é¥¤¥Ö¥é¥ê - .lisp Lisp ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É - .ln \fBlint\fP(1) ¤Ç»ÈÍѤ¹¤ë¤¿¤á¤Î¥Õ¥¡¥¤¥ë - .log ¥í¥°¡¦¥Õ¥¡¥¤¥ë, ÆÃ¤Ë TeX ¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤ë - .lsm Linux ¥½¥Õ¥È¥¦¥§¥¢¡¦¥Þ¥Ã¥×¤Î¸«½Ð¤· - .lsp Common-Lisp ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É - .lzh lharc ¥¢¡¼¥«¥¤¥Ö - .m Objective-C ¥½¡¼¥¹¡¦¥³¡¼¥É - .m4 \fBm4\fP(1) ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É - .mac ¤¤¤í¤¤¤í¤Ê¥×¥í¥°¥é¥à¤Ç¤Î¥Þ¥¯¥í¡¦¥Õ¥¡¥¤¥ë - .man ¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸ (ÂçÄñ¤Ï¥Õ¥©¡¼¥Þ¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤) - .map ³Æ¼ï¥×¥í¥°¥é¥à¤Î¥Þ¥Ã¥×¡¦¥Õ¥¡¥¤¥ë - .me me ¥Þ¥¯¥í¡¦¥Ñ¥Ã¥±¡¼¥¸¤ò»ÈÍѤ·¤¿ Nroff ¤Î¥½¡¼¥¹ - .mf ¥á¥¿¥Õ¥©¥ó¥È (TeX ¤Î¥Õ¥©¥ó¥ÈºîÀ®¥Ä¡¼¥ë) ¤Î¥½¡¼¥¹ - .mgp MagicPoint ¥Õ¥¡¥¤¥ë - .mm mm ¥Þ¥¯¥í¤ò»ÈÍѤ·¤¿ \fBgroff\fP(1) ¤Î¥½¡¼¥¹ - .mo ¥á¥Ã¥»¡¼¥¸¡¦¥«¥¿¥í¥°¤Î¥Ð¥¤¥Ê¥ê - .mod Modula-2 ¤Î¥â¥¸¥å¡¼¥ë¼ÂÁõ¤Î¤¿¤á¤Î¥½¡¼¥¹¡¦¥³¡¼¥É - .mov (quicktime) ¥à¡¼¥Ó¡¼ - .mp Metapost ¤Î¥½¡¼¥¹ - .mp2 MPEG ¥ì¥¤¥ä¡¼ 2 (¥ª¡¼¥Ç¥£¥ª) ¥Õ¥¡¥¤¥ë - .mp3 MPEG ¥ì¥¤¥ä¡¼ 3 (¥ª¡¼¥Ç¥£¥ª) ¥Õ¥¡¥¤¥ë - .mpeg ¥à¡¼¥Ó¡¼¡¦¥Õ¥¡¥¤¥ë - .o ¥ª¥Ö¥¸¥§¥¯¥È¡¦¥Õ¥¡¥¤¥ë - .old ¸Å¤¤¥Õ¥¡¥¤¥ë¡¢¤Þ¤¿¤Ï¥Ð¥Ã¥¯¥¢¥Ã¥×¡¦¥Õ¥¡¥¤¥ë - .orig \fBpatch\fP(1) ¤Ë¤è¤ë (¥ª¥ê¥¸¥Ê¥ë¤Î) ¥Ð¥Ã¥¯¥¢¥Ã¥×¡¦¥Õ¥¡¥¤¥ë - .out ½ÐÎÏ¥Õ¥¡¥¤¥ë¡¢ÂçÄñ¤Ï¼Â¹Ô¥×¥í¥°¥é¥à¤Ç¤¢¤ë (a.out) - .p pascal ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É - .pag dbm ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Ç¡¼¥¿¡¦¥Õ¥¡¥¤¥ë - .patch \fBpatch\fP(1) ¤Ç»ÈÍѤ¹¤ë¤¿¤á¤Îº¹Ê¬¥Õ¥¡¥¤¥ë - .pbm ¥°¥é¥Õ¥£¥Ã¥¯¡¦¥¤¥á¡¼¥¸ (portable bitmap format) - .pcf X11 ¤Î¥Õ¥©¥ó¥È¡¦¥Õ¥¡¥¤¥ë + ,v RCS (リビジョン・コントロール) のためのファイル + - バックアップ・ファイル + .C C++ のソース・コード、\fI.cc\fP と等価 + .F \fBcpp\fP(1)命令をもったフォートランのソース + または freeze(1) で圧縮されたファイル + .S \fBcpp\fP(1)命令をもったアセンブラ・ソース + .Y yabba(1) で圧縮されたファイル + .Z \fBcompress\fP(1)で圧縮されたファイル + .[0-9]+gf TeX の一般フォント + .[0-9]+pk TeX の圧縮フォント + .[1-9] 対応する章のマニュアル・ページ + .[1-9][a-z] サブセクション付きマニュアル・ページ + .a オブジェクト・コードの静的ライブラリ + .ad X のアプリケーション・デフォルト・ファイル + .ada Ada のソース(本体か枝葉か組み合わせ) + .adb Ada のソース本体 + .ads Ada のソース仕様 + .afm PostScript のフォント・メトリクス + .al Perl のオートロード・ファイル + .am \fBautomake\fP(1) の入力ファイル + .arc \fBarc\fP(1)のアーカイブ + .arj \fBarj\fP(1)のアーカイブ + .asc PGP の ASCII 化されたデータ + .asm (GNU) アセンブラのソース + .au オーディオ・サウンド・ファイル + .aux LaTeX の補助ファイル +.avi (Microsoft ビデオ) ムービー + .awk AWK 言語のプログラム + .b LILO のブートローダ・イメージ + .bak バックアップ・ファイル + .bash \fBbash\fP(1) シェル・スクリプト + .bb gcc -ftest-coverage のベーシック・ブロック・リスト + .bbg gcc -ftest-coverage のベーシック・ブロック・グラフ + .bbl BibTeX の出力 + .bdf X のフォントファイル + .bib TeX 文献データベース, BibTeX の入力 + .bm ビットマップのソース + .bmp ビットマップ + .bz2 \fBbzip2\fP(1) を使用して圧縮されたファイル + .c C のソース・コード + .cat メッセージ・カタログ・ファイル + .cc C++ のソース・コード + .cf 設定ファイル + .cfg 設定ファイル + .cgi WWW のコンテンツを作成するプログラム + .cls LaTeX のクラス定義ファイル + .class Java のコンパイルされたバイトコード + .conf 設定ファイル + .config 設定ファイル + .cpp \fI.cc\fR と同じ + .csh \fBcsh\fP(1) シェル・スクリプト + .cxx \fI.cc\fR と同じ + .dat データ・ファイル + .deb Debian のソフトウェア・パッケージ + .def Modula-2 ソースのモジュール定義ファイル + .def その他の定義ファイル + .desc \fBmunpack\fP(1) でアンパックされたメールの最初の部分 + .diff ファイル差分 (\fBdiff\fP(1) コマンドの出力) + .dir dbm データベースのディレクトリ・ファイル + .doc ドキュメント・ファイル + .dsc Debian のソース・コントロールファイル + (ソース・パッケージ) + .dtx LaTeX パッケージのソース + .dvi TeX のデバイス独立出力ファイル + .el Emacs-Lisp のソース + .elc コンパイルされた Emacs-Lispのコード + .eps カプセル化されたPostScript + .exp Expect のソースコード + .f Fortran のソース・コード + .f77 Fortran 77 のソース・コード + .f90 Fortran 90 のソース・コード + .fas プリコンパイルされた Common-Lispのコード + .fi フォートランのインクルード・ファイル + .fig FIG イメージ・ファイル (\fBxfig\fR(1) で使用される) + .fmt TeX フォーマット・ファイル + .gif グラフィック・イメージ (Compuserve Graphics Image File) + .gmo GNU フォーマット・メッセージ・カタログ + .gsf ghostscript のフォント + .gz \fBgzip\fP(1) を使用して圧縮されたファイル + .h C または C++ のヘッダー・ファイル + .help ヘルプ・ファイル + .hf \fI.help\fP に同じ + .hlp \fI.help\fP に同じ + .htm 貧乏人の \fI.html\fP + .html World Wide Web で使用する HTML の文書 + .hqx 7 ビットエンコードされた Macintosh ファイル + .i プリプロセスを行なった C のソース・コード + .icon ビットマップのソース + .idx ハイパーテキストやデータベースのインデックス・ファイル + .image ビットマップのソース + .in コンフィギュレーションのテンプレート (特に GNU Autoconf) + .info Emacs info ファイル + .info-[0-9]+ 分割された info ファイル + .ins docstrip の LaTeX パッケージ・インストール・ファイル + .itcl itcl のソース・コード + itcl (incr tcl) は tcl の OO 拡張 + .java Java のソース・コード + .jpeg グラフィックイメージ (Joint Photographic Experts Group) + .jpg 貧乏人の \fI.jpeg\fP + .kmap \fBlyx\fP(1) のキーマップ + .l \fI.lex\fP または \fI.lisp\fP に同じ + .lex \fBlex\fP(1) または \fBflex\fP(1) ファイル + .lha lharc アーカイブ + .lib Common-Lisp のライブラリ + .lisp Lisp のソース・コード + .ln \fBlint\fP(1) で使用するためのファイル + .log ログ・ファイル, 特に TeX によって生成される + .lsm Linux ソフトウェア・マップの見出し + .lsp Common-Lisp のソース・コード + .lzh lharc アーカイブ + .m Objective-C ソース・コード + .m4 \fBm4\fP(1) のソース・コード + .mac いろいろなプログラムでのマクロ・ファイル + .man マニュアル・ページ (大抵はフォーマットされていない) + .map 各種プログラムのマップ・ファイル + .me me マクロ・パッケージを使用した Nroff のソース + .mf メタフォント (TeX のフォント作成ツール) のソース + .mgp MagicPoint ファイル + .mm mm マクロを使用した \fBgroff\fP(1) のソース + .mo メッセージ・カタログのバイナリ + .mod Modula-2 のモジュール実装のためのソース・コード + .mov (quicktime) ムービー + .mp Metapost のソース + .mp2 MPEG レイヤー 2 (オーディオ) ファイル + .mp3 MPEG レイヤー 3 (オーディオ) ファイル + .mpeg ムービー・ファイル + .o オブジェクト・ファイル + .old 古いファイル、またはバックアップ・ファイル + .orig \fBpatch\fP(1) による (オリジナルの) バックアップ・ファイル + .out 出力ファイル、大抵は実行プログラムである (a.out) + .p pascal のソース・コード + .pag dbm データベースのデータ・ファイル + .patch \fBpatch\fP(1) で使用するための差分ファイル + .pbm グラフィック・イメージ (portable bitmap format) + .pcf X11 のフォント・ファイル .pdf Adobe Portable Data Format - (Acrobat/\fBacroread\fP ¤ä \fBxpdf\fP ¤Ç»ÈÍѤ¹¤ë) - .perl Perl ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É (.ph, .pl, .pm ¤ò»²¾È) - .pfa PostScript¤Î¥Õ¥©¥ó¥ÈÄêµÁ (ASCII ¥Õ¥©¡¼¥Þ¥Ã¥È) - .pfb PostScript¤Î¥Õ¥©¥ó¥ÈÄêµÁ (¥Ð¥¤¥Ê¥ê¡¦¥Õ¥©¡¼¥Þ¥Ã¥È) - .pgm ¥°¥é¥Õ¥£¥Ã¥¯¡¦¥¤¥á¡¼¥¸ (portable greymap format) - .pgp PGP ¤Î¥Ð¥¤¥Ê¥ê¡¦¥Ç¡¼¥¿ - .ph Perl ¤Î¥Ø¥Ã¥À¡¼¡¦¥Õ¥¡¥¤¥ë - .php PHP ¤Î¥×¥í¥°¥é¥à¡¦¥Õ¥¡¥¤¥ë - .php3 PHP3 ¤Î¥×¥í¥°¥é¥à¡¦¥Õ¥¡¥¤¥ë - .pid ¥Ç¡¼¥â¥ó¤Î PID ¤ò³ÊǼ¤·¤¿¥Õ¥¡¥¤¥ë (crond.pid ¤Ê¤É) - .pl TeX ¤Î¥×¥í¥Ñ¥Æ¥£¡¦¥ê¥¹¥È¤Þ¤¿¤Ï Perl ¤Î¥é¥¤¥Ö¥é¥ê - .pm Perl ¤Î¥â¥¸¥å¡¼¥ë - .png ¥°¥é¥Õ¥£¥Ã¥¯¡¦¥¤¥á¡¼¥¸ (Portable Network Graphics) - .po ¥á¥Ã¥»¡¼¥¸¡¦¥«¥¿¥í¥°¤Î¥½¡¼¥¹ - .pod \fBperldoc\fP(1) ¥Õ¥¡¥¤¥ë - .ppm ¥°¥é¥Õ¥£¥Ã¥¯¡¦¥¤¥á¡¼¥¸ (portable pixmap format) - .pr ¥Ó¥Ã¥È¥Þ¥Ã¥×¤Î¥½¡¼¥¹ - .ps PostScript ¥Õ¥¡¥¤¥ë - .py python ¤Î¥½¡¼¥¹ - .pyc ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿ python - .qt quicktime ¥à¡¼¥Ó¡¼ - .r RATFOR ¤Î¥½¡¼¥¹ (ÇѸì) - .rej \fBpatch\fP(1) ¤Ë¼ºÇÔ¤·¤¿ pacth ¥Õ¥¡¥¤¥ë - .rpm RPM ¤Î¥½¥Õ¥È¥¦¥§¥¢¡¦¥Ñ¥Ã¥±¡¼¥¸ - .rtf ¥ê¥Ã¥Á¡¦¥Æ¥­¥¹¥È¡¦¥Õ¥©¡¼¥Þ¥Ã¥È - .rules ²¿¤«¤Î¤¿¤á¤Î¥ë¡¼¥ë - .s ¥¢¥»¥ó¥Ö¥é¤Î¥½¡¼¥¹ - .sa a.out ¶¦Í­¥é¥¤¥Ö¥é¥ê¤Î¤¿¤á¤Î¥¹¥¿¥Ö¡¦¥é¥¤¥Ö¥é¥ê - .sc \fBsc\fP(1) ¤Î¥¹¥×¥ì¥Ã¥É¥·¡¼¥ÈÌ¿Îá - .scm Scheme ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É - .sed sed ¤Î¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë - .sgml SGML ¥½¡¼¥¹ - .sh \fBsh\fP(1) ¤Î¥¹¥¯¥ê¥×¥È - .shar \fBshar\fP(1) ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ÇºîÀ®¤µ¤ì¤¿¥¢¡¼¥«¥¤¥Ö - .so ¶¦Í­¥é¥¤¥Ö¥é¥ê¤Þ¤¿¤ÏưŪ¥í¡¼¥É¡¦¥ª¥Ö¥¸¥§¥¯¥È - .sql SQL ¤Î¥½¡¼¥¹ - .sqml SQML ¤Î schema ¤Þ¤¿¤Ï query program - .sty LaTeX ¤Î¥¹¥¿¥¤¥ë¡¦¥Õ¥¡¥¤¥ë - .sym Modula-2 ¤Î¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿ÄêµÁ¥â¥¸¥å¡¼¥ë - .tar \fBtar\fP(1) ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ÇºîÀ®¤µ¤ì¤¿¥¢¡¼¥«¥¤¥Ö - .tar.Z \fBcompress\fP(1) ¤Ç°µ½Ì¤µ¤ì¤¿ \fBtar\fP(1) ¥¢¡¼¥«¥¤¥Ö - .tar.bz2 \fBbzip2\fP(1) ¤Ç°µ½Ì¤µ¤ì¤¿ \fBtar\fP(1) ¥¢¡¼¥«¥¤¥Ö - .tar.gz \fBgzip\fP(1) ¤Ç°µ½Ì¤µ¤ì¤¿ \fBtar\fP(1) ¥¢¡¼¥«¥¤¥Ö - .taz \fBcompress\fP(1) ¤Ç°µ½Ì¤µ¤ì¤¿ \fBtar\fP(1) ¥¢¡¼¥«¥¤¥Ö - .tcl tcl ¤Î¥½¡¼¥¹¡¦¥³¡¼¥É - .tex TeX ¤Þ¤¿¤Ï LaTeX ¤Î¥½¡¼¥¹ - .texi \fI.texinfo\fP ¤ËƱ¤¸ - .texinfo texinfo ʸ½ñ¤Î¥½¡¼¥¹ - .text ¥Æ¥­¥¹¥È¡¦¥Õ¥¡¥¤¥ë - .tfm TeX ¤Î¥Õ¥©¥ó¥È¡¦¥á¥È¥ê¥Ã¥¯ - .tgz \fRgzip\fP(1)¤Ç°µ½Ì¤µ¤ì¤¿ \fRtar\fP(1) ¥¢¡¼¥«¥¤¥Ö - .tif ÉÏ˳¿Í¤Î \fI.tiff\fP - .tiff ¥°¥é¥Õ¥£¥Ã¥¯¡¦¥¤¥á¡¼¥¸ (Tagged Image File Format) - .tk tcl/tk ¥¹¥¯¥ê¥×¥È - .tmp °ì»þ¥Õ¥¡¥¤¥ë - .tmpl ¥Æ¥ó¥×¥ì¡¼¥È¡¦¥Õ¥¡¥¤¥ë - .txt \fI.text\fP ¤ËƱ¤¸ - .uu \fI.uue\fP ¤ËƱ¤¸ - .uue \fBuuencode\fP(1) ¤ÇÉä¹æ²½¤µ¤ì¤¿¥Ð¥¤¥Ê¥ê¡¦¥Õ¥¡¥¤¥ë - .vf TeX ¤Î²¾ÁÛ¥Õ¥©¥ó¥È¡¦¥Õ¥¡¥¤¥ë - .vpl TeX ¤Î²¾ÁÛ¥×¥í¥Ñ¥Æ¥£¡¦¥ê¥¹¥È¡¦¥Õ¥¡¥¤¥ë - .w Silvio Levi ¤Î CWEB - .wav ¥¦¥§¡¼¥Ö¡¦¥µ¥¦¥ó¥É¡¦¥Õ¥¡¥¤¥ë - .web Donald Knuth ¤Î WEB - .wml Web Meta Language ¤Î¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë - .xbm X11 ¥Ó¥Ã¥È¥Þ¥Ã¥×¤Î¥½¡¼¥¹ - .xcf GIMP ¥°¥é¥Õ¥£¥Ã¥¯¡¦¥Õ¥¡¥¤¥ë - .xml XML (³ÈÄ¥µ­½Ò¸À¸ì)¥Õ¥¡¥¤¥ë - .xpm X11 ¥Ô¥¯¥¹¥Þ¥Ã¥×¤Î¥½¡¼¥¹ - .xs h2xs ¤ÇÀ¸À®¤µ¤ì¤ë Perl xsub ¥Õ¥¡¥¤¥ë - .xsl XSL ¥¹¥¿¥¤¥ë¥·¡¼¥È - .y \fByacc\fP(1) ¤Þ¤¿¤Ï \fBbison\fP(1) ¤Î¥Õ¥¡¥¤¥ë - .z \fBpack\fP(1) (¤Þ¤¿¤Ï¸Å¤¤ \fBgzip\fP(1)) ¤Ç°µ½Ì¤µ¤ì¤¿¥Õ¥¡¥¤¥ë - .zip \fBzip\fP(1) ¥¢¡¼¥«¥¤¥Ö - .zoo \fBzoo\fP(1) ¥¢¡¼¥«¥¤¥Ö - ~ Emacs ¤Þ¤¿¤Ï \fBpatch\fP(1) ¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×¡¦¥Õ¥¡¥¤¥ë - rc µ¯Æ°¥Õ¥¡¥¤¥ë (`run control') (Îã \fI.newsrc\fP) + (Acrobat/\fBacroread\fP や \fBxpdf\fP で使用する) + .perl Perl のソース・コード (.ph, .pl, .pm を参照) + .pfa PostScriptのフォント定義 (ASCII フォーマット) + .pfb PostScriptのフォント定義 (バイナリ・フォーマット) + .pgm グラフィック・イメージ (portable greymap format) + .pgp PGP のバイナリ・データ + .ph Perl のヘッダー・ファイル + .php PHP のプログラム・ファイル + .php3 PHP3 のプログラム・ファイル + .pid デーモンの PID を格納したファイル (crond.pid など) + .pl TeX のプロパティ・リストまたは Perl のライブラリ + .pm Perl のモジュール + .png グラフィック・イメージ (Portable Network Graphics) + .po メッセージ・カタログのソース + .pod \fBperldoc\fP(1) ファイル + .ppm グラフィック・イメージ (portable pixmap format) + .pr ビットマップのソース + .ps PostScript ファイル + .py python のソース + .pyc コンパイルされた python + .qt quicktime ムービー + .r RATFOR のソース (廃語) + .rej \fBpatch\fP(1) に失敗した pacth ファイル + .rpm RPM のソフトウェア・パッケージ + .rtf リッチ・テキスト・フォーマット + .rules 何かのためのルール + .s アセンブラのソース + .sa a.out 共有ライブラリのためのスタブ・ライブラリ + .sc \fBsc\fP(1) のスプレッドシート命令 + .scm Scheme のソース・コード + .sed sed のソース・ファイル + .sgml SGML ソース + .sh \fBsh\fP(1) のスクリプト + .shar \fBshar\fP(1) ユーティリティで作成されたアーカイブ + .so 共有ライブラリまたは動的ロード・オブジェクト + .sql SQL のソース + .sqml SQML の schema または query program + .sty LaTeX のスタイル・ファイル + .sym Modula-2 のコンパイルされた定義モジュール + .tar \fBtar\fP(1) ユーティリティで作成されたアーカイブ + .tar.Z \fBcompress\fP(1) で圧縮された \fBtar\fP(1) アーカイブ + .tar.bz2 \fBbzip2\fP(1) で圧縮された \fBtar\fP(1) アーカイブ + .tar.gz \fBgzip\fP(1) で圧縮された \fBtar\fP(1) アーカイブ + .taz \fBcompress\fP(1) で圧縮された \fBtar\fP(1) アーカイブ + .tcl tcl のソース・コード + .tex TeX または LaTeX のソース + .texi \fI.texinfo\fP に同じ + .texinfo texinfo 文書のソース + .text テキスト・ファイル + .tfm TeX のフォント・メトリック + .tgz \fRgzip\fP(1)で圧縮された \fRtar\fP(1) アーカイブ + .tif 貧乏人の \fI.tiff\fP + .tiff グラフィック・イメージ (Tagged Image File Format) + .tk tcl/tk スクリプト + .tmp 一時ファイル + .tmpl テンプレート・ファイル + .txt \fI.text\fP に同じ + .uu \fI.uue\fP に同じ + .uue \fBuuencode\fP(1) で符号化されたバイナリ・ファイル + .vf TeX の仮想フォント・ファイル + .vpl TeX の仮想プロパティ・リスト・ファイル + .w Silvio Levi の CWEB + .wav ウェーブ・サウンド・ファイル + .web Donald Knuth の WEB + .wml Web Meta Language のソース・ファイル + .xbm X11 ビットマップのソース + .xcf GIMP グラフィック・ファイル + .xml XML (拡張記述言語)ファイル + .xpm X11 ピクスマップのソース + .xs h2xs で生成される Perl xsub ファイル + .xsl XSL スタイルシート + .y \fByacc\fP(1) または \fBbison\fP(1) のファイル + .z \fBpack\fP(1) (または古い \fBgzip\fP(1)) で圧縮されたファイル + .zip \fBzip\fP(1) アーカイブ + .zoo \fBzoo\fP(1) アーカイブ + ~ Emacs または \fBpatch\fP(1) のバックアップ・ファイル + rc 起動ファイル (`run control') (例 \fI.newsrc\fP) .TE -.SH ½àµò -°ìÈÌŪ¤Ê UNIX ¤ÎºîË¡¡£ -.SH ¥Ð¥° -¤³¤Î¥ê¥¹¥È¤Ï´°Á´¤Ç¤Ï¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +.SH 準拠 +一般的な UNIX の作法。 +.SH バグ +このリストは完全ではない。 +.SH 関連項目 .BR file (1), .BR make (1) diff --git a/release/man7/svipc.7 b/release/man7/svipc.7 index 5ba2932c..0c219a72 100644 --- a/release/man7/svipc.7 +++ b/release/man7/svipc.7 @@ -25,16 +25,16 @@ .\" Translated Wed Feb 11 21:29:14 JST 1998 .\" by HANATAKA Shinya .\" -.\"WORD: semaphore set ¥»¥Þ¥Õ¥©¡¼½¸¹ç -.\"WORD: shared memory segment ¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È -.\"WORD: message queue ¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼ +.\"WORD: semaphore set セマフォー集合 +.\"WORD: shared memory segment 共有メモリ・セグメント +.\"WORD: message queue メッセージ・キュー .\" .\" FIXME There is now duplication of some of the information .\" below in semctl.2, msgctl.2, and shmctl.2 -- MTK, Nov 04 .TH SVIPC 7 2009-01-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -svipc \- System V ¥×¥í¥»¥¹´ÖÄÌ¿®µ¡¹½ -.SH ½ñ¼° +.SH 名前 +svipc \- System V プロセス間通信機構 +.SH 書式 .nf .B #include .B #include @@ -42,286 +42,286 @@ svipc \- System V .B #include .B #include .fi -.SH ÀâÌÀ -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤Ï System V ¥×¥í¥»¥¹´ÖÄÌ¿® -(interprocess communication; IPC) µ¡¹½¤Î Linux ¤Ë -¤ª¤±¤ë¼ÂÁõ¤òÀâÌÀ¤¹¤ë¡£ -¤³¤Î¥×¥í¥»¥¹´ÖÄÌ¿®µ¡¹½¤Ë¤Ï¡¢ -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼ (message queue)¡¢¥»¥Þ¥Õ¥©¡¼½¸¹ç (semaphore set)¡¢ -¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È (shared memory segment) ¤Ê¤É¤¬¤¢¤ë¡£°Ê²¼¤Ç -.I "»ñ¸» (resource)" -¤È¤¤¤¦ÍѸì¤ò»ÈÍѤ·¤¿¾ì¹ç¤Ë¤Ï¤³¤ì¤é¤Îµ¡¹½¤Î¤É¤ì¤«¤ò°ÕÌ£¤¹¤ë¡£ -.SS »ñ¸»¤Ø¤Î¥¢¥¯¥»¥¹µö²Ä -¥·¥¹¥Æ¥à¤Î¤½¤ì¤¾¤ì¤Î»ñ¸»¤Ï¡¢IPC ¤Ø¤ÎÁàºî¤òµö²Ä¤¹¤ë¤«¤É¤¦¤«¤ò·èÄꤹ¤ë -¤¿¤á¤Î¾ðÊó¤ò¶¦Ä̤ι½Â¤ÂÎ +.SH 説明 +このマニュアル・ページは System V プロセス間通信 +(interprocess communication; IPC) 機構の Linux に +おける実装を説明する。 +このプロセス間通信機構には、 +メッセージ・キュー (message queue)、セマフォー集合 (semaphore set)、 +共有メモリ・セグメント (shared memory segment) などがある。以下で +.I "資源 (resource)" +という用語を使用した場合にはこれらの機構のどれかを意味する。 +.SS 資源へのアクセス許可 +システムのそれぞれの資源は、IPC への操作を許可するかどうかを決定する +ための情報を共通の構造体 .I "struct ipc_perm" -¤Ë³ÊǼ¤·¤Æ»ÈÍѤ¹¤ë¡£ +に格納して使用する。 .I ipc_perm -¹½Â¤ÂΤϡ¢¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤Î +構造体は、ヘッダーファイルの .I -¤ËÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢°Ê²¼¤Î¥á¥ó¥Ð¡¼¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë: +に定義されており、以下のメンバーが含まれている: .in +4n .nf struct ipc_perm { - uid_t cuid; /* ºîÀ®¼Ô¤Î¥æ¡¼¥¶¡¼ID */ - gid_t cgid; /* ºîÀ®¼Ô¤Î¥°¥ë¡¼¥×ID */ - uid_t uid; /* ½êÍ­¼Ô¤Î¥æ¡¼¥¶¡¼ID */ - gid_t gid; /* ½êÍ­¼Ô¤Î¥°¥ë¡¼¥×ID */ - unsigned short mode; /* Æɤ߽ñ¤­¤Îµö²Ä */ + uid_t cuid; /* 作成者のユーザーID */ + gid_t cgid; /* 作成者のグループID */ + uid_t uid; /* 所有者のユーザーID */ + gid_t gid; /* 所有者のグループID */ + unsigned short mode; /* 読み書きの許可 */ }; .fi .in .PP .I ipc_perm -¹½Â¤ÂΤΠ+構造体の .I mode -¥á¥ó¥Ð¡¼¤Ï°Ê²¼¤Î 9 ¥Ó¥Ã¥È¤Ç¡¢¥×¥í¥»¥¹¤Î IPC ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë -¤Ë¤è¤ë»ñ¸»¤Ø¤Î¥¢¥¯¥»¥¹µö²Ä¤òÄêµÁ¤¹¤ë¡£ -µö²Ä¤Ï°Ê²¼¤Î¤è¤¦¤Ë²ò¼á¤µ¤ì¤ë: +メンバーは以下の 9 ビットで、プロセスの IPC システム・コール +による資源へのアクセス許可を定義する。 +許可は以下のように解釈される: .sp .nf - 0400 ¥æ¡¼¥¶¡¼¤Ë¤è¤ëÆɤ߹þ¤ß¡£ - 0200 ¥æ¡¼¥¶¡¼¤Ë¤è¤ë½ñ¤­¹þ¤ß¡£ + 0400 ユーザーによる読み込み。 + 0200 ユーザーによる書き込み。 .sp .5 - 0040 ¥°¥ë¡¼¥×¤Ë¤è¤ëÆɤ߹þ¤ß¡£ - 0020 ¥°¥ë¡¼¥×¤Ë¤è¤ë½ñ¤­¹þ¤ß¡£ + 0040 グループによる読み込み。 + 0020 グループによる書き込み。 .sp .5 - 0004 ¾¿Í¤Ë¤è¤ëÆɤ߹þ¤ß¡£ - 0002 ¾¿Í¤Ë¤è¤ë½ñ¤­¹þ¤ß¡£ + 0004 他人による読み込み。 + 0002 他人による書き込み。 .fi .PP -¥·¥¹¥Æ¥à¤Ï¥Ó¥Ã¥È 0100, 0010, 0001 (¼Â¹Ô¥Ó¥Ã¥È) ¤Ï»ÈÍѤ·¤Ê¤¤¡£ -¤µ¤é¤Ë¡¢¥»¥Þ¥Õ¥©¡¼¤Î¾ì¹ç¤Ë¤Ï -"½ñ¤­¹þ¤ß(write)" -¤Ï¼ÂºÝ¤Ë¤Ï -"Êѹ¹(alter)" -¤ò°ÕÌ£¤¹¤ë¡£ +システムはビット 0100, 0010, 0001 (実行ビット) は使用しない。 +さらに、セマフォーの場合には +"書き込み(write)" +は実際には +"変更(alter)" +を意味する。 .PP -Ʊ¤¸¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤Ë¤Ï°Ê²¼¤Î¥·¥ó¥Ü¥ë¤ÎÄêµÁ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë: +同じヘッダーファイルには以下のシンボルの定義が含まれている: .TP 14 .B IPC_CREAT -¥­¡¼(key)¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ë¤Ï¿·¤¿¤Ê¥¨¥ó¥È¥ê¤òºîÀ®¤¹¤ë¡£ +キー(key)が存在しない場合には新たなエントリを作成する。 .TP .B IPC_EXCL -¥­¡¼(key)¤¬Â¸ºß¤¹¤ë¾ì¹ç¤Ë¤Ï¼ºÇÔ¤¹¤ë¡£ +キー(key)が存在する場合には失敗する。 .TP .B IPC_NOWAIT -Í׵᤬ÂÔ¤¿¤µ¤ì¤ë¾ì¹ç¤Ë¤Ï¥¨¥é¡¼¤Ë¤Ê¤ë¡£ +要求が待たされる場合にはエラーになる。 .TP .B IPC_PRIVATE -¥×¥é¥¤¥Ù¡¼¥È¡¦¥­¡¼¡£ +プライベート・キー。 .TP .B IPC_RMID -»ñ¸»¤òºï½ü¤¹¤ë¡£ +資源を削除する。 .TP .B IPC_SET -»ñ¸»¤Ë¥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ë¡£ +資源にオプションを設定する。 .TP .B IPC_STAT -»ñ¸»¤Î¥ª¥×¥·¥ç¥ó¤ò¼èÆÀ¤¹¤ë¡£ +資源のオプションを取得する。 .PP .B IPC_PRIVATE -¤Ï +は .I key_t -·¿¤Ç¤¢¤ë¡£¤½¤Î¾¤ÎÁ´¤Æ¤Î¥·¥ó¥Ü¥ë¤Ï¥Õ¥é¥°¡¦¥Õ¥£¡¼¥ë¥É¤È¤·¤Æ +型である。その他の全てのシンボルはフラグ・フィールドとして .I int -ÊÑ¿ô¤Ë OR ±é»»¤Ç³ÊǼ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.SS ¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼ -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ÏÀµ¤ÎÀ°¿ô +変数に OR 演算で格納することができる。 +.SS メッセージ・キュー +メッセージ・キューは正の整数 .RI "(" msqid ) -¤Ë¤è¤Ã¤Æ¼±Ê̤µ¤ì¡¢ +によって識別され、 .I -¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¹½Â¤ÂÎ +に定義されている構造体 .IR "struct msqid_ds" -¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¹½Â¤ÂΤϰʲ¼¤Î¥á¥ó¥Ð¡¼¤ò´Þ¤ó¤Ç¤¤¤ë: +に結びつけられている。 +この構造体は以下のメンバーを含んでいる: .in +4n .nf struct msqid_ds { struct ipc_perm msg_perm; - msgqnum_t msg_qnum; /* ¥­¥å¡¼¤Ë¤¢¤ë¥á¥Ã¥»¡¼¥¸¤Î¿ô */ - msglen_t msg_qbytes; /* ¥­¥å¡¼¤ÎºÇÂç¥Ð¥¤¥È¿ô */ - pid_t msg_lspid; /* ºÇ¸å¤Ë msgsnd(2) ¤ò¤·¤¿ PID */ - pid_t msg_lrpid; /* ºÇ¸å¤Ë msgrcv(2) ¤ò¤·¤¿ PID */ - time_t msg_stime; /* ºÇ¸å¤Ë msgsnd(2) ¤ò¤·¤¿»þ´Ö */ - time_t msg_rtime; /* ºÇ¸å¤Ë msgrcv(2) ¤ò¤·¤¿»þ´Ö */ - time_t msg_ctime; /* ºÇ¸å¤ËÊѹ¹¤µ¤ì¤¿»þ´Ö */ + msgqnum_t msg_qnum; /* キューにあるメッセージの数 */ + msglen_t msg_qbytes; /* キューの最大バイト数 */ + pid_t msg_lspid; /* 最後に msgsnd(2) をした PID */ + pid_t msg_lrpid; /* 最後に msgrcv(2) をした PID */ + time_t msg_stime; /* 最後に msgsnd(2) をした時間 */ + time_t msg_rtime; /* 最後に msgrcv(2) をした時間 */ + time_t msg_ctime; /* 最後に変更された時間 */ }; .fi .in .TP 11 .I msg_perm -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Ø¤Î¥¢¥¯¥»¥¹µö²Ä¤ò»ØÄꤹ¤ë +メッセージ・キューへのアクセス許可を指定する .I ipc_perm -¹½Â¤ÂΡ£ +構造体。 .TP .I msg_qnum -¸½ºß¡¢¤³¤Î¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Ë¤¢¤ë¥á¥Ã¥»¡¼¥¸¤Î¿ô¡£ +現在、このメッセージ・キューにあるメッセージの数。 .TP .I msg_qbytes -¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ËÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤ë¥á¥Ã¥»¡¼¥¸¤ÎºÇÂç¥Ð¥¤¥È¿ô¡£ +メッセージ・キューに入れることができるメッセージの最大バイト数。 .TP .I msg_lspid -ºÇ¸å¤Ë +最後に .BR msgsnd (2) -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¹Ô¤Ê¤Ã¤¿¥×¥í¥»¥¹¤Î ID¡£ +システム・コールを行なったプロセスの ID。 .TP .I msg_lrpid -ºÇ¸å¤Ë +最後に .BR msgrcv (2) -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¹Ô¤Ê¤Ã¤¿¥×¥í¥»¥¹¤Î ID¡£ +システム・コールを行なったプロセスの ID。 .TP .I msg_stime -ºÇ¸å¤Ë +最後に .BR msgsnd (2) -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¹Ô¤Ê¤Ã¤¿»þ´Ö¡£ +システム・コールを行なった時間。 .I msg_rtime -ºÇ¸å¤Ë +最後に .BR msgrcv (2) -¤ò¹Ô¤Ê¤Ã¤¿»þ´Ö¡£ +を行なった時間。 .TP .I msg_ctime -ºÇ¸å¤Ë +最後に .I msqid_ds -¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤¬Êѹ¹¤µ¤ì¤¿»þ´Ö¡£ -.SS ¥»¥Þ¥Õ¥©¡¼½¸¹ç -¥»¥Þ¥Õ¥©¡¼½¸¹ç¤ÏÀµ¤ÎÀ°¿ô +構造体のメンバーが変更された時間。 +.SS セマフォー集合 +セマフォー集合は正の整数 .RI "(" semid ) -¤Ë¤è¤Ã¤Æ¼±Ê̤µ¤ì¡¢ +によって識別され、 .I -¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¹½Â¤ÂÎ +に定義されている構造体 .IR "struct semid_ds" -¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¹½Â¤ÂΤϰʲ¼¤Î¥á¥ó¥Ð¡¼¤ò´Þ¤ó¤Ç¤¤¤ë: +に結びつけられている。 +この構造体は以下のメンバーを含んでいる: .in +4n .nf struct semid_ds { struct ipc_perm sem_perm; - time_t sem_otime; /* ºÇ¸å¤ËÁàºî¤·¤¿»þ´Ö */ - time_t sem_ctime; /* ºÇ¸å¤ËÊѹ¹¤·¤¿»þ´Ö */ - unsigned long sem_nsems; /* ½¸¹ç¤ÎÃæ¤Ë¤¢¤ë¥»¥Þ¥Õ¥©¡¼¿ô */ + time_t sem_otime; /* 最後に操作した時間 */ + time_t sem_ctime; /* 最後に変更した時間 */ + unsigned long sem_nsems; /* 集合の中にあるセマフォー数 */ }; .fi .in .TP 11 .I sem_perm -¥»¥Þ¥Õ¥©¡¼½¸¹ç¤Ø¤Î¥¢¥¯¥»¥¹µö²Ä¤ò»ØÄꤹ¤ë +セマフォー集合へのアクセス許可を指定する .I ipc_perm -¹½Â¤ÂΡ£ +構造体。 .TP .I sem_otime -ºÇ¸å¤Ë +最後に .BR semop (2) -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¹Ô¤Ê¤Ã¤¿»þ´Ö¡£ +システム・コールを行なった時間。 .TP .I sem_ctime -ºÇ¸å¤Ë +最後に .BR semctl (2) -¤ò¹Ô¤Ê¤Ã¤Æ¾åµ­¤Î¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤òÊѹ¹¤¹¤ë¤«¡¢¥»¥Þ¥Õ¥©¡¼½¸¹ç¤Ë°¤¹¤ë -¥»¥Þ¥Õ¥©¡¼¤òÊѹ¹¤·¤¿»þ´Ö¡£ +を行なって上記の構造体のメンバーを変更するか、セマフォー集合に属する +セマフォーを変更した時間。 .TP .I sem_nsems -¥»¥Þ¥Õ¥©¡¼½¸¹ç¤ÎÃæ¤Ë¤¢¤ë¥»¥Þ¥Õ¥©¡¼¤Î¿ô¡£ -½¸¹ç¤ÎÃæ¤Ë¤¢¤ë¤½¤ì¤¾¤ì¤Î¥»¥Þ¥Õ¥©¡¼¤ÏÉé¤Ç¤Ê¤¤À°¿ô¤Ë¤è¤Ã¤Æ»²¾È¤µ¤ì¡¢ +セマフォー集合の中にあるセマフォーの数。 +集合の中にあるそれぞれのセマフォーは負でない整数によって参照され、 .B 0 -¤«¤é +から .I sem_nsems\-1 -¤Þ¤Ç¤ÎÈÖ¹æ¤ò»ý¤Ä¡£ +までの番号を持つ。 .PP -¥»¥Þ¥Õ¥©¡¼¤Ï +セマフォーは .I "struct sem" -·¿¤Î¥Ç¡¼¥¿¹½Â¤ÂΤǤ¢¤ê¡¢°Ê²¼¤Î¥á¥ó¥Ð¡¼¤ò´Þ¤ó¤Ç¤¤¤ë: +型のデータ構造体であり、以下のメンバーを含んでいる: .in +4n .nf struct sem { - int semval; /* ¥»¥Þ¥Õ¥©¡¼¤ÎÃÍ */ - int sempid; /* ºÇ¸å¤ËÁàºî¤·¤¿¥×¥í¥»¥¹ ID */ -.\" unsigned short semncnt; /* semval ¤ÎÁý²Ã¤òÂԤĿô */ -.\" unsigned short semzcnt; /* semval = 0 ¤òÂԤĿô */ + int semval; /* セマフォーの値 */ + int sempid; /* 最後に操作したプロセス ID */ +.\" unsigned short semncnt; /* semval の増加を待つ数 */ +.\" unsigned short semzcnt; /* semval = 0 を待つ数 */ }; .fi .in .TP 11 .I semval -¥»¥Þ¥Õ¥©¡¼ÃÍ: Éé¤Ç¤Ê¤¤À°¿ô¡£ +セマフォー値: 負でない整数。 .TP .I sempid -¤³¤Î¥»¥Þ¥Õ¥©¡¼¤òºÇ¸å¤ËÁàºî¤·¤¿¥×¥í¥»¥¹¤Î ID¡£ +このセマフォーを最後に操作したプロセスの ID。 .\".TP .\".I semncnt .\".I semval -.\"¤ÎÃͤ¬Áý²Ã¤¹¤ë¤òÂԤäÆÄä»ß¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î¿ô¡£ +.\"の値が増加するを待って停止しているプロセスの数。 .\".TP .\".I semznt .\".I semval -.\"¤¬ 0 ¤Ë¤Ê¤ë¤Î¤òÂԤäÆÄä»ß¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î¿ô¡£ -.SS ¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È -¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥È¤ÏÀµ¤ÎÀ°¿ô +.\"が 0 になるのを待って停止しているプロセスの数。 +.SS 共有メモリ・セグメント +共有メモリ・セグメトは正の整数 .RI "(" shmid ) -¤Ë¤è¤Ã¤Æ¼±Ê̤µ¤ì¡¢ +によって識別され、 .I -¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë +に定義されている .IR "struct shmid_ds" -¹½Â¤ÂΤ˷ë¤Ó¤Ä¤±¤é¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¹½Â¤ÂΤϰʲ¼¤Î¥á¥ó¥Ð¡¼¤ò´Þ¤ó¤Ç¤¤¤ë: +構造体に結びつけられている。 +この構造体は以下のメンバーを含んでいる: .in +4n .nf struct shmid_ds { struct ipc_perm shm_perm; - size_t shm_segsz; /* ¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º */ - pid_t shm_cpid; /* ºîÀ®¼Ô¤Î¥×¥í¥»¥¹ ID */ - pid_t shm_lpid; /* ºÇ¸å¤ËÁàºî¤·¤¿¥×¥í¥»¥¹ ID */ - shmatt_t shm_nattch; /* ¸½ºß¡¢Éղ䷤Ƥ¤¤ë¿ô */ - time_t shm_atime; /* ºÇ¸å¤ËÉղä·¤¿»þ´Ö */ - time_t shm_dtime; /* ºÇ¸å¤ËʬΥ¤·¤¿»þ´Ö */ - time_t shm_ctime; /* ºÇ¸å¤ËÊѹ¹¤·¤¿»þ´Ö */ + size_t shm_segsz; /* セグメントのサイズ */ + pid_t shm_cpid; /* 作成者のプロセス ID */ + pid_t shm_lpid; /* 最後に操作したプロセス ID */ + shmatt_t shm_nattch; /* 現在、付加している数 */ + time_t shm_atime; /* 最後に付加した時間 */ + time_t shm_dtime; /* 最後に分離した時間 */ + time_t shm_ctime; /* 最後に変更した時間 */ }; .fi .in .TP 11 .I shm_perm -¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Ø¤Î¥¢¥¯¥»¥¹µö²Ä¤ò»ØÄꤷ¤¿ +共有メモリ・セグメントへのアクセス許可を指定した .I ipc_perm -¹½Â¤ÂΡ£ +構造体。 .TP .I shm_segsz -¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Î¥Ð¥¤¥È¿ô¡£ +共有メモリ・セグメントのバイト数。 .TP .I shm_cpid -¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤òºîÀ®¤·¤¿¥×¥í¥»¥¹¤Î ID¡£ +共有メモリ・セグメントを作成したプロセスの ID。 .TP .I shm_lpid -ºÇ¸å¤Ë +最後に .BR shmat (2) -¤Þ¤¿¤Ï +または .BR shmdt (2) -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¼Â¹Ô¤·¤¿¥×¥í¥»¥¹¤Î ID¡£ +システム・コールを実行したプロセスの ID。 .TP .I shm_nattch -¤³¤Î¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ò¥á¥â¥ê¤ËÉղà (attach) ¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î¿ô¡£ +この共有メモリ・セグメントをメモリに付加 (attach) しているプロセスの数。 .TP .I shm_atime -ºÇ¸å¤Ë +最後に .BR shmat (2) -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¹Ô¤Ê¤Ã¤¿»þ´Ö¡£ +システム・コールを行なった時間。 .TP .I shm_dtime -ºÇ¸å¤Ë +最後に .BR shmdt (2) -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¹Ô¤Ê¤Ã¤¿»þ´Ö¡£ +システム・コールを行なった時間。 .TP .I shm_ctime -ºÇ¸å¤Ë +最後に .BR shmctl (2) -¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¹Ô¤Ê¤Ã¤Æ¡¢ +システム・コールを行なって、 .I shmid_ds -¹½Â¤ÂΤòÊѹ¹¤·¤¿»þ´Ö¡£ -.SH ´ØÏ¢¹àÌÜ +構造体を変更した時間。 +.SH 関連項目 .BR ipc (2), .BR msgctl (2), .BR msgget (2), diff --git a/release/man7/tcp.7 b/release/man7/tcp.7 index 94470840..501404aa 100644 --- a/release/man7/tcp.7 +++ b/release/man7/tcp.7 @@ -24,15 +24,15 @@ .\" Updated 2008-12-31, Akihiro MOTOKI, LDP v3.15 .\" Updated 2009-03-01, Akihiro MOTOKI, LDP v3.19 .\" -.\"WORD full duplex connection Á´Æó½ÅÄÌ¿® -.\"WORD listening state ÀܳÂÔ¤Á¼õ¤±¾õÂÖ -.\"WORD denial of service attack DoS ¹¶·â -.\"WORD urgent data ¶ÛµÞ¥Ç¡¼¥¿ +.\"WORD full duplex connection 全二重通信 +.\"WORD listening state 接続待ち受け状態 +.\"WORD denial of service attack DoS 攻撃 +.\"WORD urgent data 緊急データ .\" .TH TCP 7 2009-09-30 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -tcp \- TCP ¥×¥í¥È¥³¥ë -.SH ½ñ¼° +.SH 名前 +tcp \- TCP プロトコル +.SH 書式 .B #include .br .B #include @@ -40,863 +40,863 @@ tcp \- TCP .B #include .sp .B tcp_socket = socket(AF_INET, SOCK_STREAM, 0); -.SH ÀâÌÀ -¤³¤ì¤Ï RFC\ 793, RFC\ 1122, RFC\ 2001 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë TCP ¥×¥í¥È¥³¥ë¤ò -NewReno ³ÈÄ¥¤È SACK ³ÈÄ¥¤ò´Þ¤á¤Æ¼ÂÁõ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -TCP ¤Ï¡¢ +.SH 説明 +これは RFC\ 793, RFC\ 1122, RFC\ 2001 で定義されている TCP プロトコルを +NewReno 拡張と SACK 拡張を含めて実装したものである。 +TCP は、 .BR ip (7) -¾å¤ÎÆó¤Ä¤Î¥½¥±¥Ã¥È´Ö¤Ë¡¢¿®ÍêÀ­¤Î¹â¤¤¡¢¥¹¥È¥ê¡¼¥à»Ø¸þ¤ÎÁ´Æó½Å -(full-duplex) ÄÌ¿®¤òÄ󶡤¹¤ë¡£ -v4 ¤È v6 ¤ÎξÊý¤Î¥Ð¡¼¥¸¥ç¥ó¤Î +上の二つのソケット間に、信頼性の高い、ストリーム指向の全二重 +(full-duplex) 通信を提供する。 +v4 と v6 の両方のバージョンの .BR ip (7) -¤ËÂбþ¤·¤Æ¤¤¤ë¡£ -TCP ¤Ï¡¢¥Ç¡¼¥¿¤¬½ç½ø¤ò¼é¤Ã¤ÆÅþÃ夹¤ë¤³¤È¡¢ÅÓÃæ¤Ç¼º¤ï¤ì¤¿¥Ñ¥±¥Ã¥È¤¬ -ºÆÁ÷¤µ¤ì¤ë¤³¤È¤òÊݾڤ¹¤ë¡£¤Þ¤¿¡¢¥Ñ¥±¥Ã¥Èñ°Ì¤Ë¥Á¥§¥Ã¥¯¥µ¥à¤ò -À¸À®¡¢¸¡ºº¤¹¤ë¤³¤È¤Ç¡¢Å¾Á÷¥¨¥é¡¼¤ò¸¡ÃΤ¹¤ë¡£ -TCP ¤Ï¥ì¥³¡¼¥É¶­³¦ (record boundary) ¤òÊݸ¤·¤Ê¤¤¡£ +に対応している。 +TCP は、データが順序を守って到着すること、途中で失われたパケットが +再送されることを保証する。また、パケット単位にチェックサムを +生成、検査することで、転送エラーを検知する。 +TCP はレコード境界 (record boundary) を保存しない。 -¿·¤·¤¯À¸À®¤µ¤ì¤¿¤Ð¤«¤ê¤Î TCP ¥½¥±¥Ã¥È¤Ï¡¢ -¥ê¥â¡¼¥È¥¢¥É¥ì¥¹¤«¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤¬¤Ê¤¯¡¢ -¤·¤¿¤¬¤Ã¤Æ¾ÜºÙ¤¬´°Á´¤Ë»ØÄꤵ¤ì¤¿¾õÂ֤ǤϤʤ¤¡£ -³°Éô¤Ø¤Î TCP Àܳ¤òÀ¸À®¤¹¤ë¤Ë¤Ï¡¢ +新しく生成されたばかりの TCP ソケットは、 +リモートアドレスかローカルアドレスがなく、 +したがって詳細が完全に指定された状態ではない。 +外部への TCP 接続を生成するには、 .BR connect (2) -¤òÍѤ¤¤Æ¤â¤¦°ìÊý¤Î TCP ¥½¥±¥Ã¥È¤Ø¤ÎÀܳ¤ò³ÎΩ¤¹¤ë¡£ -³°Éô¤«¤é¤Î¿·¤¿¤ÊÀܳ¤ò¼õ¤±¤ë¤Ë¤Ï¡¢¤Þ¤º +を用いてもう一方の TCP ソケットへの接続を確立する。 +外部からの新たな接続を受けるには、まず .BR bind (2) -¤Ç¥½¥±¥Ã¥È¤ò¥í¡¼¥«¥ë¤Ê¥¢¥É¥ì¥¹¤È¥Ý¡¼¥È¤Ë·ë¤Ó¤Ä¤±¡¢¼¡¤Ë +でソケットをローカルなアドレスとポートに結びつけ、次に .BR listen (2) -¤ò¸Æ¤ó¤Ç¥½¥±¥Ã¥È¤òÀܳÂÔ¤Á¼õ¤±¾õÂ֤ˤ¹¤ë¡£ -¤½¤Î¸å¡¢ÅþÃ夷¤¿ÀܳÍ×µá¤ËÂФ·¤Æ +を呼んでソケットを接続待ち受け状態にする。 +その後、到着した接続要求に対して .BR accept (2) -¤òÍѤ¤¡¢¥½¥±¥Ã¥È¤ò¿·¤·¤¯À¸À®¤¹¤ë¡£ +を用い、ソケットを新しく生成する。 .BR accept (2) -¤Þ¤¿¤Ï +または .BR connect (2) -¤Î¥³¡¼¥ë¤¬À®¸ù¤·¤¿¥½¥±¥Ã¥È¤Ï¡¢¾ÜºÙ¤¬´°Á´¤Ë»ØÄꤵ¤ì¤¿¾õÂ֤Ȥʤꡢ -¥Ç¡¼¥¿¤Î¤ä¤ê¤È¤ê¤¬²Äǽ¤È¤Ê¤ë¡£ÀܳÂÔ¤Á¼õ¤±¾õÂ֤Π(listening) ¥½¥±¥Ã¥È¤ä¡¢ -Àܳ (connect) ¤µ¤ì¤Æ¤¤¤Ê¤¤¥½¥±¥Ã¥È¤òÄ̤·¤Æ¥Ç¡¼¥¿¤ò¤ä¤ê¤È¤ê¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ +のコールが成功したソケットは、詳細が完全に指定された状態となり、 +データのやりとりが可能となる。接続待ち受け状態の (listening) ソケットや、 +接続 (connect) されていないソケットを通してデータをやりとりすることはできない。 -Linux ¤Ï RFC\ 1323 ¤Î TCP high performance ³ÈÄ¥¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤Ë¤Ï¡¢Protection Against Wrapped Sequence Numbers (PAWS)¡¢ -¥¦¥£¥ó¥É¥¦¥¹¥±¡¼¥ê¥ó¥°¡¢¥¿¥¤¥à¥¹¥¿¥ó¥×¤Ê¤É¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -¥¦¥£¥ó¥É¥¦¥¹¥±¡¼¥ê¥ó¥°¤òÍøÍѤ¹¤ë¤È¡¢ÃÙ±ä¤Þ¤¿¤ÏÂÓ°è¤ÎÂ礭¤ÊÀܳ¤Ç¡¢ -(64K °Ê¾å¤Î) µðÂç¤Ê TCP ¥¦¥£¥ó¥É¥¦¤òÍѤ¤¤ë¤³¤È¤¬²Äǽ¤È¤Ê¤ë¡£ -¤³¤ì¤òÍѤ¤¤ë¤Ë¤Ï¡¢Á÷¼õ¿®¤Î¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤òÂ礭¤¯¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥·¥¹¥Æ¥àÁ´ÂΤËÂФ¹¤ë¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤ÎÊѹ¹¤Ï¡¢¥Õ¥¡¥¤¥ë +Linux は RFC\ 1323 の TCP high performance 拡張をサポートしている。 +これには、Protection Against Wrapped Sequence Numbers (PAWS)、 +ウィンドウスケーリング、タイムスタンプなどが含まれている。 +ウィンドウスケーリングを利用すると、遅延または帯域の大きな接続で、 +(64K 以上の) 巨大な TCP ウィンドウを用いることが可能となる。 +これを用いるには、送受信のバッファサイズを大きくしなければならない。 +システム全体に対するバッファサイズの変更は、ファイル .I /proc/sys/net/ipv4/tcp_wmem -¤È +と .I /proc/sys/net/ipv4/tcp_rmem -¤òÍѤ¤¤Æ¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¤Þ¤¿¡¢¸Ä¡¹¤Î¥½¥±¥Ã¥È¤Î¤ß¤òÂ礭¤¯¤·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ +を用いて行うことができる。 +また、個々のソケットのみを大きくしたい場合には、 .B SO_SNDBUF -¤ä +や .B SO_RCVBUF -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤Æ +ソケットオプションを用いて .BR setsockopt (2) -¥³¡¼¥ë¤òÍѤ¤¤ÆÀßÄꤹ¤ì¤Ð¤è¤¤¡£ +コールを用いて設定すればよい。 .B SO_SNDBUF -¤ä +や .B SO_RCVBUF -¤Î¥á¥«¥Ë¥º¥à¤ÇÀë¸À¤µ¤ì¤ë¥½¥±¥Ã¥È¥Ð¥Ã¥Õ¥¡¤ÎºÇÂ祵¥¤¥º¤Ï¡¢¥Õ¥¡¥¤¥ë +のメカニズムで宣言されるソケットバッファの最大サイズは、ファイル .I /proc/sys/net/core/rmem_max -¤ä +や .I /proc/sys/net/core/wmem_max -¤Ç»ØÄꤵ¤ì¤¿¥·¥¹¥Æ¥à¤È¤·¤Æ¤ÎÀ©¸ÂÃͤòĶ¤¨¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ -TCP ¤Ï¼ÂºÝ¤Ë¤Ï +で指定されたシステムとしての制限値を超えることはできない。 +TCP は実際には .BR setsockopt (2) -¥³¡¼¥ë¤¬Í׵ᤷ¤¿¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤ÎÆóÇܤò³ä¤êÅö¤Æ¤ë¡£ -¤½¤Î¤¿¤á¡¢¤³¤Î¸å¤Ç +コールが要求したバッファサイズの二倍を割り当てる。 +そのため、この後で .BR getsockopt (2) -¥³¡¼¥ë¤ò¹Ô¤¦¤È¡¢ +コールを行うと、 .BR setsockopt (2) -¤ÇÍ׵ᤷ¤¿¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤È¤Ï°Û¤Ê¤ëÃͤ¬Ê֤롣 -TCP ¤Ï¤³¤Î;ʬ¤Ê¶õ´Ö¤ò¡¢´ÉÍýÌÜŪ¤ä¥«¡¼¥Í¥ëÆâÉô¤Î¹½Â¤ÂΤËÍѤ¤¤Æ¤¤¤ë¡£ +で要求したバッファサイズとは異なる値が返る。 +TCP はこの余分な空間を、管理目的やカーネル内部の構造体に用いている。 .I /proc -¥Õ¥¡¥¤¥ë¤ÎÃͤϡ¢¤³¤ì¤é¤òÈ¿±Ç¤·¡¢¼ÂºÝ¤Î TCP ¥¦¥£¥ó¥É¥¦¤è¤ê¤âÂ礭¤ÊÃͤȤʤ롣 -³ÆÀܳ¤Ë¤ª¤±¤ë¥½¥±¥Ã¥È¤Î¥Ð¥Ã¥Õ¥¡¥µ¥¤¥ºÊѹ¹¤òÍ­¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢ +ファイルの値は、これらを反映し、実際の TCP ウィンドウよりも大きな値となる。 +各接続におけるソケットのバッファサイズ変更を有効にするには、 .BR listen (2) -¤ä +や .BR connect (2) -¥³¡¼¥ë¤ÎÁ°¤ËÀßÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï +コールの前に設定しなければならない。 +より詳しい情報は .BR socket (7) -¤ò¸«¤è¡£ +を見よ。 .PP -TCP ¤Ï¶ÛµÞ¥Ç¡¼¥¿ (urgent data) ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£¶ÛµÞ¥Ç¡¼¥¿¤Ï -²¿¤é¤«¤Î½ÅÍפʥá¥Ã¥»¡¼¥¸¤¬¥Ç¡¼¥¿¥¹¥È¥ê¡¼¥à¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤³¤È¡¢ -¤½¤Î¥Ç¡¼¥¿¤ò¤Ç¤­¤ë¤À¤±Á᤯½èÍý¤¹¤Ù¤­¤³¤È¡¢¤ò¼õ¿®¼Ô¤ËÅÁ¤¨¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ -¶ÛµÞ¥Ç¡¼¥¿¤òÁ÷¤ë¤Ë¤Ï¡¢ +TCP は緊急データ (urgent data) をサポートしている。緊急データは +何らかの重要なメッセージがデータストリームに含まれていること、 +そのデータをできるだけ早く処理すべきこと、を受信者に伝えるために用いられる。 +緊急データを送るには、 .BR send (2) -¤Ë +に .B MSG_OOB -¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¡£ -¶ÛµÞ¥Ç¡¼¥¿¤ò¼õ¿®¤¹¤ë¤È¡¢¥«¡¼¥Í¥ë¤Ï +オプションを指定する。 +緊急データを受信すると、カーネルは .B SIGURG -¥·¥°¥Ê¥ë¤òÁ÷¿®¤¹¤ë¡£Á÷¿®Àè¤Ï +シグナルを送信する。送信先は .B SIOCSPGRP -¤ä +や .B FIOSETOWN -ioctl (¤ä POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë +ioctl (や POSIX.1-2001 で規定されている .BR fcntl (2) .B F_SETOWN -Áàºî) ¤òÍѤ¤¤Æ¤½¤Î¥½¥±¥Ã¥È¤Î¡Ö½êÍ­¼Ô¡×¤È¤·¤ÆÀßÄꤵ¤ì¤¿ -¥×¥í¥»¥¹¤«¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ç¤¢¤ë¡£ +操作) を用いてそのソケットの「所有者」として設定された +プロセスかプロセスグループである。 .B SO_OOBINLINE -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢¶ÛµÞ¥Ç¡¼¥¿¤Ï -Ä̾ï¤Î¥Ç¡¼¥¿¥¹¥È¥ê¡¼¥à¤ÎÃæ¤Ëº®¤¼¤ÆÁ÷¤é¤ì¤ë (¥×¥í¥°¥é¥à¤Ï²¼µ­¤Î +ソケットオプションが有効になっていると、緊急データは +通常のデータストリームの中に混ぜて送られる (プログラムは下記の .B SIOCATMARK -ioctl ¤ò»È¤Ã¤Æ¶ÛµÞ¥Ç¡¼¥¿¤Î¾ì½ê¤òÄ´¤Ù¤ë¤³¤È¤¬¤Ç¤­¤ë)¡£ -̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ +ioctl を使って緊急データの場所を調べることができる)。 +無効になっている場合には、 .BR recv (2) -¤ä +や .BR recvmsg (2) -¤Ç +で .B MSG_OOB -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ë¤Î¤ß¡¢¶ÛµÞ¥Ç¡¼¥¿¤ò¼õ¿®¤Ç¤­¤ë¡£ +フラグがセットされているときにのみ、緊急データを受信できる。 -Linux 2.4 ¤Ç¤Ï¿¤¯¤ÎÊѹ¹¤¬¤Ê¤µ¤ì¡¢ -¥¹¥ë¡¼¥×¥Ã¥È¤È¥¹¥±¡¼¥ê¥ó¥°¤¬¸þ¾å¤·¡¢µ¡Ç½¤â¹â¤Þ¤Ã¤¿¡£ -¤³¤ì¤é¤Îµ¡Ç½¤Ë¤Ï¡¢¥¼¥í¥³¥Ô¡¼ -.BR sendfile (2)¡¢ -Explicit Congestion Notification¡¢ -TIME_WAIT ¥½¥±¥Ã¥È¤Î¿·¤·¤¤´ÉÍýË¡¡¢ -keep-alive ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¡¢ -Duplicate SACK ³ÈÄ¥¤Î¥µ¥Ý¡¼¥È¤Ê¤É¤¬¤¢¤ë¡£ -.SS ¥¢¥É¥ì¥¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È -TCP ¤Ï IP ¤Î¾åÁؤ˹½ÃÛ¤µ¤ì¤Æ¤¤¤ë +Linux 2.4 では多くの変更がなされ、 +スループットとスケーリングが向上し、機能も高まった。 +これらの機能には、ゼロコピー +.BR sendfile (2)、 +Explicit Congestion Notification、 +TIME_WAIT ソケットの新しい管理法、 +keep-alive ソケットオプション、 +Duplicate SACK 拡張のサポートなどがある。 +.SS アドレスのフォーマット +TCP は IP の上層に構築されている .RB ( ip (7) -¤ò»²¾È)¡£ +を参照)。 .BR ip (7) -¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï TCP ¤Ë¤âŬÍѤµ¤ì¤ë¡£ -TCP ¤Ï point-to-point ¤ÎÄÌ¿®¤À¤±¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ -¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¤ä¥Þ¥ë¥Á¥­¥ã¥¹¥È¤Ï¥µ¥Ý¡¼¥È¤·¤Ê¤¤¡£ -.SS /proc ¥¤¥ó¥¿¥Õ¥§¡¼¥¹ -¥·¥¹¥Æ¥àÁ´ÂΤËÂФ¹¤ë TCP ¥Ñ¥é¥á¡¼¥¿¤ÎÀßÄê¤Ë¤Ï¡¢ +に定義されているアドレスフォーマットは TCP にも適用される。 +TCP は point-to-point の通信だけをサポートする。 +ブロードキャストやマルチキャストはサポートしない。 +.SS /proc インタフェース +システム全体に対する TCP パラメータの設定には、 .I /proc/sys/net/ipv4/ -¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¤Ë¤è¤ê¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ -¤µ¤é¤Ë¡¢IP ¤Ë´ØÏ¢¤¹¤ë +ディレクトリ内のファイルによりアクセスできる。 +さらに、IP に関連する .I /proc -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î¤Û¤È¤ó¤É¤Ï TCP ¤Ë¤Ä¤¤¤Æ¤âŬÍѤµ¤ì¤ë¡£ +インタフェースのほとんどは TCP についても適用される。 .BR ip (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .I Boolean -¤ÏÀ°¿ôÃͤǡ¢ -0 °Ê³°¤ÎÃÍ ("true") ¤ÏÂбþ¤¹¤ë¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¡¢ -0 ÃÍ ("false") ¤Ï̵¸ú¡¢¤Ç¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +は整数値で、 +0 以外の値 ("true") は対応するオプションが有効、 +0 値 ("false") は無効、であることを意味する。 .TP -.IR tcp_abc " (Integer; default: 0; Linux 2.6.15 °Ê¹ß)" +.IR tcp_abc " (Integer; default: 0; Linux 2.6.15 以降)" .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt -RFC 3465 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë Appropriate Byte Count (ABC) ¤òÀ©¸æ¤¹¤ë¡£ -ABC ¤Ï¡¢ÉôʬŪ¤Ê ACK ¤Ë±þ¤¸¤¿íÕíÔ¥¦¥£¥ó¥É¥¦ +RFC 3465 で定義されている Appropriate Byte Count (ABC) を制御する。 +ABC は、部分的な ACK に応じた輻輳ウィンドウ .RI ( cwnd ) -¤ÎÁý²Ã¤ò¤è¤ê´Ë¤ä¤«¤Ë¤¹¤ëÊýË¡¤Ç¤¢¤ë¡£ -°Ê²¼¤ÎÃͤò»ØÄê¤Ç¤­¤ë¡£ +の増加をより緩やかにする方法である。 +以下の値を指定できる。 .RS .IP 0 3 -ACK ¤ò¼õ¿®¤¹¤ëËè¤Ë +ACK を受信する毎に .I cwnd -¤òÁý¤ä¤¹ (ABC ¤Ê¤·)¡£ +を増やす (ABC なし)。 .IP 1 -¥Õ¥ë¥µ¥¤¥º¤Î¥»¥°¥á¥ó¥È¤Î ACK ¤ò¼õ¿®¤¹¤ëËè¤Ë +フルサイズのセグメントの ACK を受信する毎に .I cwnd -¤òÁý¤ä¤¹¡£ +を増やす。 .IP 2 -ACK ¤¬ÃÙ±ä ACK (delayed acknowledgment) ¤òÁ껦¤¹¤ë¤¿¤á¤Î 2 ¥»¥°¥á¥ó¥È¤Ë -ÂФ¹¤ë ACK ¤Î¾ì¹ç¤Ë¡¢ +ACK が遅延 ACK (delayed acknowledgment) を相殺するための 2 セグメントに +対する ACK の場合に、 .I cwnd -¤ò 2 Áý¤ä¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +を 2 増やすことができる。 .RE .TP -.IR tcp_abort_on_overflow " (Boolean; default: disabled; Linux 2.4 °Ê¹ß)" +.IR tcp_abort_on_overflow " (Boolean; default: disabled; Linux 2.4 以降)" .\" Since 2.3.41 -Àܳ¤òÂÔ¤Á¼õ¤±¤Æ¤¤¤ë¥µ¡¼¥Ó¥¹¤¬ÃÙ¤¹¤®¤Æ¡¢¼õ¿®¤Ë¤Ä¤¤¤Æ¤¤¤±¤Ê¤¤¾ì¹ç¤Ë¡¢ -Àܳ¤ò¥ê¥»¥Ã¥È¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ -¤³¤ì¤òÍѤ¤¤ë¤È¡¢¥Ð¡¼¥¹¥È¤Ë¤è¤Ã¤Æ¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬µ¯¤³¤Ã¤¿¤È¤­¤Ë¡¢ -Àܳ¤ò²óÉü¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤Î¤Ï¡¢ -¼õ¿®¥Ç¡¼¥â¥ó¤ò¹â®²½¤Ç¤­¤Ê¤¤¾ì¹ç¤Ë¡Ö¸ÂÄꤹ¤ë¡×¤³¤È¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤È¡¢¤½¤Î¥µ¡¼¥Ð¤ËÀܳ¤·¤Æ¤¤¤ë¥¯¥é¥¤¥¢¥ó¥È -¤Ë¤È¤Ã¤Æ¤Ï³²¤Ë¤Ê¤ë¤³¤È¤¬¤¢¤ë¡£ -.TP -.IR tcp_adv_win_scale " (integer; default: 2; Linux 2.4 °Ê¹ß)" +接続を待ち受けているサービスが遅すぎて、受信についていけない場合に、 +接続をリセットできるようにする。 +これを用いると、バーストによってオーバーフローが起こったときに、 +接続を回復できるようになる。このオプションを用いるのは、 +受信デーモンを高速化できない場合に「限定する」こと。 +このオプションを用いると、そのサーバに接続しているクライアント +にとっては害になることがある。 +.TP +.IR tcp_adv_win_scale " (integer; default: 2; Linux 2.4 以降)" .\" Since 2.4.0-test7 -¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤Î¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤Î·×»»ÊýË¡¤ò¡¢ +バッファリングのオーバーヘッドの計算方法を、 .I tcp_adv_win_scale -¤¬Àµ¤Î¾ì¹ç¤Ï +が正の場合は .I "bytes/2^tcp_adv_win_scale" -¤Ë¡¢ +に、 .I tcp_adv_win_scale -¤¬É餫 0 ¤Î¾ì¹ç¤Ï +が負か 0 の場合は .I "bytes-bytes/2^(\-tcp_adv_win_scale)" -¤È¤¹¤ë¡£ +とする。 -¥½¥±¥Ã¥È¤Î¼õ¿®¥Ð¥Ã¥Õ¥¡¶õ´Ö¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤È¥«¡¼¥Í¥ë¤Ç¶¦Í­¤µ¤ì¤ë¡£ -TCP ¤Ï¥Ð¥Ã¥Õ¥¡¤Î°ìÉô¤ò TCP ¥¦¥£¥ó¥É¥¦¤È¤·¤Æ´ÉÍý¤·¡¢ -¤³¤ì¤ò¼õ¿®¥¦¥£¥ó¥É¥¦¤È¤·¤ÆÀܳ¤Î¾ü¤ËÄÌÃΤ¹¤ë¡£ -¶õ´Ö¤Î»Ä¤ê¤Ï¡Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¡×¥Ð¥Ã¥Õ¥¡¤È¤·¤ÆÍѤ¤¤é¤ì¡¢ -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ä¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÃٱ䤫¤é¥Í¥Ã¥È¥ï¡¼¥¯¤ò³ÖÎ¥¤¹¤ë¡£ +ソケットの受信バッファ空間はアプリケーションとカーネルで共有される。 +TCP はバッファの一部を TCP ウィンドウとして管理し、 +これを受信ウィンドウとして接続の他端に通知する。 +空間の残りは「アプリケーション」バッファとして用いられ、 +スケジューリングやアプリケーションの遅延からネットワークを隔離する。 .I tcp_adv_win_scale -¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 2 ¤Ç¤¢¤ê¡¢ -¤³¤Î¾ì¹ç¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥Ð¥Ã¥Õ¥¡¤ÏÁ´ÂΤΠ1/4 ¤Ë¤Ê¤ë¡£ +のデフォルト値は 2 であり、 +この場合アプリケーションバッファは全体の 1/4 になる。 .TP -.IR tcp_allowed_congestion_control " (String; default: see text; Linux 2.4.20 °Ê¹ß)" +.IR tcp_allowed_congestion_control " (String; default: see text; Linux 2.4.20 以降)" .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt -ÈóÆø¢¥×¥í¥»¥¹¤ÇÍøÍѤǤ­¤ëíÕíÔÀ©¸æ¥¢¥ë¥´¥ê¥º¥à¤ÎÁªÂò»è¤òɽ¼¨/ÀßÄꤹ¤ë +非特権プロセスで利用できる輻輳制御アルゴリズムの選択肢を表示/設定する .RB ( TCP_CONGESTION -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È)¡£ -¤³¤Î¥ê¥¹¥È¤Ï +ソケットオプションの説明を参照のこと)。 +このリストは .I tcp_available_congestion_control -¤Çɽ¼¨¤µ¤ì¤ë¥ê¥¹¥È¤ÎÉôʬ½¸¹ç¤È¤Ê¤ë¡£ +で表示されるリストの部分集合となる。 .\" FIXME How are the items in this delimited? Null bytes, spaces, commas? -¤³¤Î¥ê¥¹¥È¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤϡ¢"reno" ¤È +このリストのデフォルト値は、"reno" と .I tcp_congestion_control -¤Î¥Ç¥Õ¥©¥ë¥ÈÀßÄê¤ò¤¢¤ï¤»¤¿¤â¤Î¤È¤Ê¤ë¡£ +のデフォルト設定をあわせたものとなる。 .TP -.IR tcp_available_congestion_control " (String; read-only; Linux 2.4.20 °Ê¹ß)" +.IR tcp_available_congestion_control " (String; read-only; Linux 2.4.20 以降)" .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt -ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ëíÕíÔÀ©¸æ¥¢¥ë¥´¥ê¥º¥à¤Î¥ê¥¹¥È¤òɽ¼¨¤¹¤ë¡£ +登録されている輻輳制御アルゴリズムのリストを表示する。 .\" FIXME How are the items in this delimited? Null bytes, spaces, commas? -¤³¤Î¥ê¥¹¥È¤ËºÜ¤Ã¤Æ¤¤¤ë¤â¤Î¤À¤±¤¬¡¢ +このリストに載っているものだけが、 .I tcp_allowed_congestion_control -¤Ëɽ¼¨¤µ¤ì¤ë¡£ -¾¤ÎíÕíÔÀ©¸æ¥¢¥ë¥´¥ê¥º¥à¤¬¥â¥¸¥å¡¼¥ë¤È¤·¤ÆÍøÍѲÄǽ¤À¤¬¡¢ -¥â¥¸¥å¡¼¥ë¤¬¥í¡¼¥É¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤â¤¢¤ë¡£ +に表示される。 +他の輻輳制御アルゴリズムがモジュールとして利用可能だが、 +モジュールがロードされていないこともある。 .TP -.IR tcp_app_win " (integer; default: 31; Linux 2.4 °Ê¹ß)" +.IR tcp_app_win " (integer; default: 31; Linux 2.4 以降)" .\" Since 2.4.0-test7 -¤³¤ÎÊÑ¿ô¤Ï¡¢TCP ¥¦¥£¥ó¥É¥¦¤Î²¿¥Ð¥¤¥Èʬ¤ò -¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤Î¥ª¡¼¥Ð¡¼¥Ø¥Ã¥ÉÍѤËͽÌ󤹤뤫¤ò»ØÄꤹ¤ë¡£ +この変数は、TCP ウィンドウの何バイト分を +バッファリングのオーバーヘッド用に予約するかを指定する。 -¤½¤Î¥¦¥£¥ó¥É¥¦¤Î \fIwindow/2^tcp_app_win\fP ¤È mss ¤ÎÂ礭¤¤¤Û¤¦ (¥Ð¥¤¥Èñ°Ì) -¤¬¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥Ð¥Ã¥Õ¥¡¤È¤·¤ÆͽÌ󤵤ì¤ë¡£ -0 ¤ò»ØÄꤹ¤ë¤È°ìÀÚͽÌóÎΰè¤ò¼è¤é¤Ê¤¤¡£ +そのウィンドウの \fIwindow/2^tcp_app_win\fP と mss の大きいほう (バイト単位) +がアプリケーションバッファとして予約される。 +0 を指定すると一切予約領域を取らない。 .\" .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt .TP -.IR tcp_base_mss " (Integer; default: 512; Linux 2.6.17 °Ê¹ß)" -¥Ñ¥±¥Ã¥È²½¥ì¥¤¥ä¤Î Path MTU discovery (MTU probing) ¤Ç¡¢ +.IR tcp_base_mss " (Integer; default: 512; Linux 2.6.17 以降)" +パケット化レイヤの Path MTU discovery (MTU probing) で、 .I search_low -¤Î½é´üÃͤȻÈÍѤµ¤ì¤ëÃÍ¡£ -MTU probing ¤¬Í­¸ú¤Ê¾ì¹ç¡¢¤³¤ÎÃͤϤ½¤ÎÀܳ¤Î MSS ¤Î½é´üÃͤȤʤ롣 +の初期値と使用される値。 +MTU probing が有効な場合、この値はその接続の MSS の初期値となる。 .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt .TP -.IR tcp_bic " (Boolean; default: disabled; Linux 2.4.27/2.6.6 ¤«¤é 2.6.13 ¤Þ¤Ç)" -BIC TCP íÕíÔÀ©¸æ¥¢¥ë¥´¥ê¥º¥à¤òÍ­¸ú¤Ë¤¹¤ë¡£ -BIC-TCP ¤ÏÁ÷¿®Â¦¤Î¤ß¤ÎÊѹ¹¤Ç¡¢ -¥¹¥±¡¼¥é¥Ó¥ê¥Æ¥£¤È TCP ¿ÆÏÂÀ­ (friendliness) ¤ÎξÊý¤òÄ󶡤·¤Ä¤Ä¡¢ -Â礭¤Ê¥¦¥£¥ó¥É¥¦¤Î²¼¤Ç¤ÎÀþ·Á¤Ê RTT ¸øÊ¿À­¤òÊݾڤ¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î¥×¥í¥È¥³¥ë¤Ç¤Ï additive increase (ÄɲÃŪ¤ÊÁý²Ã) ¤È -binary search increase (Æóʬõº÷Áý²Ã) ¤È¤¤¤ï¤ì¤ëÆó¤Ä¤Î»ÅÁȤߤò -ÁȤ߹ç¤ï¤»¤Æ¤¤¤ë¡£íÕíÔ¥¦¥£¥ó¥É¥¦¤¬Â礭¤¤¤È¤­¤Ï¡¢Áýʬ¤ÎÂ礭¤¤ -additive increase ¤Ë¤è¤ê¡¢¥¹¥±¡¼¥é¥Ó¥ê¥Æ¥£¤ò³ÎÊݤ·¤Ê¤¬¤é -Àþ·Á¤Ê RTT ¸øÊ¿À­¤òÊݾڤ¹¤ë¡£ -íÕíÔ¥¦¥£¥ó¥É¥¦¤¬¾®¤µ¤¤¤È¤­¤Ë¤Ï binary search increase ¤Ë¤è¤ê -TCP ¿ÆÏÂÀ­¤òãÀ®¤·¤Æ¤¤¤ë¡£ +.IR tcp_bic " (Boolean; default: disabled; Linux 2.4.27/2.6.6 から 2.6.13 まで)" +BIC TCP 輻輳制御アルゴリズムを有効にする。 +BIC-TCP は送信側のみの変更で、 +スケーラビリティと TCP 親和性 (friendliness) の両方を提供しつつ、 +大きなウィンドウの下での線形な RTT 公平性を保証するものである。 +このプロトコルでは additive increase (追加的な増加) と +binary search increase (二分探索増加) といわれる二つの仕組みを +組み合わせている。輻輳ウィンドウが大きいときは、増分の大きい +additive increase により、スケーラビリティを確保しながら +線形な RTT 公平性を保証する。 +輻輳ウィンドウが小さいときには binary search increase により +TCP 親和性を達成している。 .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt .TP -.IR tcp_bic_low_window " (integer; default: 14; Linux 2.4.27/2.6.6 °Ê¹ß 2.6.13 ¤Þ¤Ç)" -BIC TCP ¤¬íÕíÔ¥¦¥£¥ó¥É¥¦¤ÎÄ´À°¤ò³«»Ï¤¹¤ëïçÃÍ¥¦¥£¥ó¥É¥¦ (¥Ñ¥±¥Ã¥Èñ°Ì) -¤òÀßÄꤹ¤ë¡£¤³¤ÎïçÃͤò²¼²ó¤ë¾ì¹ç¡¢BIC TCP ¤Ï¥Ç¥Õ¥©¥ë¥È¤Î TCP Reno ¤È -Ʊ¤¸Æ°ºî¤ò¤¹¤ë¡£ +.IR tcp_bic_low_window " (integer; default: 14; Linux 2.4.27/2.6.6 以降 2.6.13 まで)" +BIC TCP が輻輳ウィンドウの調整を開始する閾値ウィンドウ (パケット単位) +を設定する。この閾値を下回る場合、BIC TCP はデフォルトの TCP Reno と +同じ動作をする。 .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt .TP -.IR tcp_bic_fast_convergence " (Boolean; default: enabled; Linux 2.4.27/2.6.6 °Ê¹ß 2.6.13 ¤Þ¤Ç)" -BIC TCP ¤¬íÕíÔ¥¦¥£¥ó¥É¥¦¤ÎÊѲ½¤Ë¤è¤ê®¤¯È¿±þ¤¹¤ë¤è¤¦¤Ë¤¹¤ë¡£ -Ʊ¤¸¥³¥Í¥¯¥·¥ç¥ó¤ò¶¦Í­¤¹¤ëÆó¤Ä¤Î¥Õ¥í¡¼¤¬°ì¤Ä¤Ë¤Þ¤È¤Þ¤ë¤Î¤ò -¤è¤ê®¤¯¹Ô¤¦¤è¤¦¤Ë¤¹¤ë¡£ +.IR tcp_bic_fast_convergence " (Boolean; default: enabled; Linux 2.4.27/2.6.6 以降 2.6.13 まで)" +BIC TCP が輻輳ウィンドウの変化により速く反応するようにする。 +同じコネクションを共有する二つのフローが一つにまとまるのを +より速く行うようにする。 .TP -.IR tcp_congestion_control " (String; default: ÀâÌÀ»²¾È; Linux 2.4.13 °Ê¹ß)" +.IR tcp_congestion_control " (String; default: 説明参照; Linux 2.4.13 以降)" .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt -¿·µ¬¤ÎÀܳ¤Ç»ÈÍѤµ¤ì¤ë¥Ç¥Õ¥©¥ë¥È¤ÎíÕíÔÀ©¸æ¥¢¥ë¥´¥ê¥º¥à¤òÀßÄꤹ¤ë¡£ -"reno" ¥¢¥ë¥´¥ê¥º¥à¤Ï¾ï¤ËÍøÍѲÄǽ¤À¤¬¡¢ -¥«¡¼¥Í¥ëÀßÄ꼡Âè¤Ç¤ÏÊ̤ÎÁªÂò»è¤¬ÍøÍѤǤ­¤ë¤³¤È¤â¤¢¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤϥ«¡¼¥Í¥ëÀßÄê¤Î°ì¤Ä¤È¤·¤ÆÀßÄꤵ¤ì¤ë¡£ +新規の接続で使用されるデフォルトの輻輳制御アルゴリズムを設定する。 +"reno" アルゴリズムは常に利用可能だが、 +カーネル設定次第では別の選択肢が利用できることもある。 +このファイルのデフォルト値はカーネル設定の一つとして設定される。 .TP -.IR tcp_dma_copybreak " (integer; default: 4096; Linux 2.6.24 °Ê¹ß)" -¥·¥¹¥Æ¥à¤Ë DMA ¥³¥Ô¡¼¥¨¥ó¥¸¥ó¤¬Â¸ºß¤·¡¢¥«¡¼¥Í¥ë¤Ç +.IR tcp_dma_copybreak " (integer; default: 4096; Linux 2.6.24 以降)" +システムに DMA コピーエンジンが存在し、カーネルで .B CONFIG_NET_DMA -¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢ -DMA ¥³¥Ô¡¼¥¨¥ó¥¸¥ó¤Ë¥ª¥Õ¥í¡¼¥É¤µ¤ì¤ë¥½¥±¥Ã¥È¤ÎÆɤ߹þ¤ß¥µ¥¤¥º¤Î²¼¸ÂÃÍ -(¥Ð¥¤¥Èñ°Ì)¡£ +オプションが有効になっている場合に、 +DMA コピーエンジンにオフロードされるソケットの読み込みサイズの下限値 +(バイト単位)。 .TP -.IR tcp_dsack " (Boolean; default: enabled; Linux 2.4 °Ê¹ß)" +.IR tcp_dsack " (Boolean; default: enabled; Linux 2.4 以降)" .\" Since 2.4.0-test7 -RFC\ 2883 ¤Î TCP Duplicate SACK ¤Î¥µ¥Ý¡¼¥È¤òÍ­¸ú¤Ë¤¹¤ë¡£ +RFC\ 2883 の TCP Duplicate SACK のサポートを有効にする。 .TP -.IR tcp_ecn " (Boolean; default: disabled; Linux 2.4 °Ê¹ß)" +.IR tcp_ecn " (Boolean; default: disabled; Linux 2.4 以降)" .\" Since 2.4.0-test7 -RFC\ 2884 ¤Î Explicit Congestion Notification ¤òÍ­¸ú¤Ë¤¹¤ë¡£ -¤³¤ì¤òÍ­¸ú¤Ë¤¹¤ë¤È¡¢´Ö°ã¤Ã¤¿¿¶Éñ¤¤¤ò¤¹¤ë¸Å¤¤¥ë¡¼¥¿¤¬ -·ÐÏ©¤ÎÅÓÃæ¤Ë¤¢¤ë¤è¤¦¤ÊÀܳÀè¤ËÂФ·¤Æ±Æ¶Á¤¬À¸¤¸¡¢ -¾ì¹ç¤Ë¤è¤Ã¤Æ¤ÏÀܳ¤¬Íî¤Á¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +RFC\ 2884 の Explicit Congestion Notification を有効にする。 +これを有効にすると、間違った振舞いをする古いルータが +経路の途中にあるような接続先に対して影響が生じ、 +場合によっては接続が落ちるかもしれない。 .TP -.IR tcp_fack " (Boolean; default: enabled; Linux 2.2 °Ê¹ß)" +.IR tcp_fack " (Boolean; default: enabled; Linux 2.2 以降)" .\" Since 2.1.92 -TCP Forward Acknowledgement ¤Î¥µ¥Ý¡¼¥È¤òÍ­¸ú¤Ë¤¹¤ë¡£ +TCP Forward Acknowledgement のサポートを有効にする。 .TP -.IR tcp_fin_timeout " (integer; default: 60; Linux 2.2 °Ê¹ß)" +.IR tcp_fin_timeout " (integer; default: 60; Linux 2.2 以降)" .\" Since 2.1.53 -¥½¥±¥Ã¥È¤ò¶¯À©Åª¤Ë¥¯¥í¡¼¥º¤¹¤ëÁ°¤Ë¡¢ -ºÇ¸å¤Î FIN ¥Ñ¥±¥Ã¥È¤òÂԤĻþ´Ö¤òÉÃñ°Ì¤Ç»ØÄꤹ¤ë¡£ -¤³¤ì¤Ï¸·Ì©¤Ë¤Ï TCP ¤Î»ÅÍͤòËþ¤¿¤·¤Æ¤¤¤Ê¤¤¤¬¡¢ -DoS ¹¶·â (denial of service attack) ¤«¤é¿È¤ò¼é¤ë¤¿¤á¤ËɬÍפǤ¢¤ë¡£ -Linux 2.2 ¤Ç¤Ï¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 180 ¤Ç¤¢¤Ã¤¿¡£ +ソケットを強制的にクローズする前に、 +最後の FIN パケットを待つ時間を秒単位で指定する。 +これは厳密には TCP の仕様を満たしていないが、 +DoS 攻撃 (denial of service attack) から身を守るために必要である。 +Linux 2.2 ではデフォルト値は 180 であった。 .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt .TP -.IR tcp_frto " (integer; default: 0; Linux 2.4.21/2.6 °Ê¹ß)" +.IR tcp_frto " (integer; default: 0; Linux 2.4.21/2.6 以降)" .\" Since 2.4.21/2.5.43 -F-RTO ¤òÍ­¸ú¤Ë¤¹¤ë¡£F-RTO ¤Ï TCP ºÆÁ÷¥¿¥¤¥à¥¢¥¦¥È (RTO) ¤«¤é¤Î -ÉüµìÀ­Ç½¤ò¸þ¾å¤µ¤»¤¿¥¢¥ë¥´¥ê¥º¥à¤Ç¤¢¤ë¡£ -¤³¤Îµ¡Ç½¤Ï̵Àþ´Ä¶­¤ÇÆä˸ú²Ì¤òȯ´ø¤¹¤ë¡£ -̵Àþ´Ä¶­¤Ç¤Ï¡¢Ä̾ï¤Ï¡¢Ãæ´Ö¥ë¡¼¥¿¤ÎíÕíԤǤϤʤ¯¥é¥ó¥À¥à¤Ê̵Àþ¤Î´³¾Ä -¤Ë¤è¤ê¥Ñ¥±¥Ã¥È¥í¥¹¤¬È¯À¸¤¹¤ë¡£ -¾ÜºÙ¤Ï RFC\ 4138 ¤ò»²¾È¡£ +F-RTO を有効にする。F-RTO は TCP 再送タイムアウト (RTO) からの +復旧性能を向上させたアルゴリズムである。 +この機能は無線環境で特に効果を発揮する。 +無線環境では、通常は、中間ルータの輻輳ではなくランダムな無線の干渉 +によりパケットロスが発生する。 +詳細は RFC\ 4138 を参照。 -¤³¤Î¥Õ¥¡¥¤¥ë¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«¤ÎÃͤò¼è¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +このファイルは以下のいずれかの値を取ることができる。 .RS .IP 0 3 -F-RTO ¤ò̵¸ú¤Ë¤¹¤ë¡£ +F-RTO を無効にする。 .IP 1 -´ðËÜÈǤΠF-RTO ¥¢¥ë¥´¥ê¥º¥à¤òÍ­¸ú¤Ë¤¹¤ë¡£ +基本版の F-RTO アルゴリズムを有効にする。 .IP 2 -¤½¤Î¥Õ¥í¡¼¤Ç SACK ¤ò»ÈÍѤ¹¤ë¾ì¹ç¡¢SACK ³ÈÄ¥ÈǤΠF-RTO ¤òÍ­¸ú¤Ë¤¹¤ë¡£ -´ðËÜÈǤΠF-RTO ¤â SACK ¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤â»ÈÍѤǤ­¤ë¤¬¡¢ -´ðËÜÈǤξì¹ç¤Ë¤Ï F-RTO ¤¬ SACK ¤¬Í­¸ú¤Ë¤Ê¤Ã¤¿ TCP ¥Õ¥í¡¼¤Ç¤Î -¥Ñ¥±¥Ã¥È¿ô·×¬¤È¡¢ÁêÀ­¤¬°­¤¯Áê¸ß´³¾Ä¤¬µ¯¤³¤ë¾ìÌ̤¬Â¸ºß¤¹¤ë¡£ +そのフローで SACK を使用する場合、SACK 拡張版の F-RTO を有効にする。 +基本版の F-RTO も SACK が使用されている場合にも使用できるが、 +基本版の場合には F-RTO が SACK が有効になった TCP フローでの +パケット数計測と、相性が悪く相互干渉が起こる場面が存在する。 .RE .IP -Linu 2.6.22 ¤è¤êÁ°¤Ç¤Ï¡¢¤³¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¥Ö¡¼¥ëÃͤǤ¢¤ê¡¢ -¾åµ­¤Î 0 ¤È 1 ¤Î¤ß¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤¿¡£ -.TP -.IR tcp_frto_response " (integer; default: 0; Linux 2.6.22 °Ê¹ß)" -F-RTO ¤¬ TCP ºÆÁ÷¥¿¥¤¥à¥¢¥¦¥È¤¬µ¶Êª¤À¤È¸¡½Ð¤·¤¿¾ì¹ç -(¤Ä¤Þ¤ê¡¢TCP ¤¬¤â¤Ã¤ÈŤ¤ºÆÁ÷¥¿¥¤¥à¥¢¥¦¥È¤òÀßÄꤷ¤Æ¤¤¤ì¤Ð -¥¿¥¤¥à¥¢¥¦¥È¤¬Èò¤±¤é¤ì¤¿¾ì¹ç)¡¢ -¼¡¤Ë¤É¤¦¤¹¤ë¤«¤Ë´Ø¤·¤ÆÁªÂò»è¤¬¤¤¤¯¤Ä¤«¤¢¤ë¡£ -°Ê²¼¤ÎÃͤòÁªÂò¤Ç¤­¤ë¡£ +Linu 2.6.22 より前では、このパラメータはブール値であり、 +上記の 0 と 1 のみをサポートしていた。 +.TP +.IR tcp_frto_response " (integer; default: 0; Linux 2.6.22 以降)" +F-RTO が TCP 再送タイムアウトが偽物だと検出した場合 +(つまり、TCP がもっと長い再送タイムアウトを設定していれば +タイムアウトが避けられた場合)、 +次にどうするかに関して選択肢がいくつかある。 +以下の値を選択できる。 .RS .IP 0 3 -¥ì¡¼¥È¤ò¸µ¤ÎȾʬ¤Ë¤¹¤ë¡£ -³ê¤é¤«¤Ç¡¢ÊݼéŪ¤ÊÈ¿±þ¤ò¹Ô¤¤¡¢RTT 1²óʬ¤Î»þ´Ö¸å¤Ë -íÕíÔ¥¦¥£¥ó¥É¥¦ +レートを元の半分にする。 +滑らかで、保守的な反応を行い、RTT 1回分の時間後に +輻輳ウィンドウ .RI ( cwnd ) -¤È¥¹¥í¡¼¥¹¥¿¡¼¥È¤ÎïçÃÍ +とスロースタートの閾値 .RI ( ssthresh ) -¤¬È¾Ê¬¤Ë¤Ê¤ë¡£ +が半分になる。 .IP 1 -Èó¾ï¤ËÊݼéŪ¤ÊÈ¿±þ¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Î»ÈÍѤϿ侩¤µ¤ì¤Ê¤¤¡£ -È¿±þ¤¬Àµ¤·¤«¤Ã¤¿¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢Linux TCP ¤Î¾¤ÎÉôʬ¤È -¤¦¤Þ¤¯Ï¢·È¤Ç¤­¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ +非常に保守的な反応。このオプションの使用は推奨されない。 +反応が正しかった場合であっても、Linux TCP の他の部分と +うまく連携できないからである。 .I cwnd -¤È +と .I ssthresh -¤Ïľ¤Á¤ËȾʬ¤Ë¤µ¤ì¤ë¡£ +は直ちに半分にされる。 .IP 2 -ÀѶËŪ¤ÊÈ¿±þ¡£ -ÉÔÍפÈȽÌÀ¤·¤¿íÕíÔÀ©¸æ¤Î¬Äê¾ðÊó¤ò¼è¤ê¾Ã¤¹ -(TCP ¤¬¤â¤Ã¤ÈÃí°Õ¿¼¤¯°·¤¦¤Ù¤­ºÆÁ÷¤¬¼º¤ï¤ì¤ë²ÄǽÀ­¤ò̵»ë¤¹¤ë)¡£ -¡£ +積極的な反応。 +不要と判明した輻輳制御の測定情報を取り消す +(TCP がもっと注意深く扱うべき再送が失われる可能性を無視する)。 +。 .I cwnd -¤È +と .I ssthresh -¤Ï¥¿¥¤¥à¥¢¥¦¥ÈÁ°¤ÎÃͤËÌᤵ¤ì¤ë¡£ +はタイムアウト前の値に戻される。 .RE .TP -.IR tcp_keepalive_intvl " (integer; default: 75; Linux 2.4 °Ê¹ß)" +.IR tcp_keepalive_intvl " (integer; default: 75; Linux 2.4 以降)" .\" Since 2.3.18 -TCP keep-alive ¤Î¥×¥í¡¼¥Ö¤òÁ÷¤ë´Ö³Ö (ÉÃñ°Ì)¡£ +TCP keep-alive のプローブを送る間隔 (秒単位)。 .TP -.IR tcp_keepalive_probes " (integer; default: 9; Linux 2.2 °Ê¹ß)" +.IR tcp_keepalive_probes " (integer; default: 9; Linux 2.2 以降)" .\" Since 2.1.43 -TCP keep-alive ¥×¥í¡¼¥Ö¤ÎºÇÂç²ó¿ô¡£ -¤³¤Î²ó¿ô¤À¤±»î¤·¤Æ¤âÀܳÀ褫¤éÈ¿±þ¤¬ÆÀ¤é¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢ -¤¢¤­¤é¤á¤ÆÀܳ¤òÀÚÃǤ¹¤ë¡£ +TCP keep-alive プローブの最大回数。 +この回数だけ試しても接続先から反応が得られない場合は、 +あきらめて接続を切断する。 .TP -.IR tcp_keepalive_time " (integer; default: 7200; Linux 2.2 °Ê¹ß)" +.IR tcp_keepalive_time " (integer; default: 7200; Linux 2.2 以降)" .\" Since 2.1.43 -Àܳ¤¬¥¢¥¤¥É¥ë¾õÂ֤ˤʤäƤ«¤é¡¢keep-alive -¥×¥í¡¼¥Ö¤òÁ÷¿®¤¹¤ë¤Þ¤Ç¤Î»þ´Ö¤òÉÃñ°Ì¤Ç»ØÄꤹ¤ë¡£ +接続がアイドル状態になってから、keep-alive +プローブを送信するまでの時間を秒単位で指定する。 .B SO_KEEPALIVE -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤È -keep-alive ¤ÏÁ÷¤é¤ì¤Ê¤¤¡£ -¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 7200 Éà (2 »þ´Ö)¡£ -keep-alive ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ -¤µ¤é¤Ë¤ª¤è¤½ 11 ʬ (75 Éôֳ֤Π9 ¥×¥í¡¼¥Öʬ) -·Ð²á¤¹¤ë¤È¥¢¥¤¥É¥ë¾õÂÖ¤ÎÀܳ¤Ï½ªÎ»¤µ¤»¤é¤ì¤ë¡£ +ソケットオプションが有効になっていないと +keep-alive は送られない。 +デフォルト値は 7200 秒 (2 時間)。 +keep-alive が有効になっている場合、 +さらにおよそ 11 分 (75 秒間隔の 9 プローブ分) +経過するとアイドル状態の接続は終了させられる。 -²¼Áؤˤ¢¤ëÀܳÄÉÀ×µ¡¹½¤ä¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Î¥¿¥¤¥à¥¢¥¦¥È¤Ï¡¢ -¤â¤Ã¤È¤º¤Ã¤Èû¤¤¤«¤â¤·¤ì¤Ê¤¤¡£ +下層にある接続追跡機構やアプリケーションでのタイムアウトは、 +もっとずっと短いかもしれない。 .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt .TP -.IR tcp_low_latency " (Boolean; default: disabled; Linux 2.4.21/2.6 °Ê¹ß)" +.IR tcp_low_latency " (Boolean; default: disabled; Linux 2.4.21/2.6 以降)" .\" Since 2.4.21/2.5.60 -Í­¸ú¤Ë¤¹¤ë¤È¡¢TCP ¥¹¥¿¥Ã¥¯¤Ï¥¹¥ë¡¼¥×¥Ã¥È¤ò¹â¤¯¤¹¤ë¤è¤ê¤â -ÃÙ±ä¤ò¾¯¤Ê¤¯¤¹¤ë¤³¤È¤òÍ¥À褷¤ÆȽÃǤò¹Ô¤¦¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò̵¸ú¤Ë¤¹¤ë¤È¡¢¥¹¥ë¡¼¥×¥Ã¥È¤ò¹â¤¯¤¹¤ë¤³¤È¤¬Í¥À褵¤ì¤ë¡£ -¤³¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤòÊѹ¹¤·¤¿Êý¤¬¤è¤¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÎã¤È¤·¤Æ¤Ï -Beowulf ¥³¥ó¥Ô¥å¡¼¥¿¥¯¥é¥¹¥¿¤¬µó¤²¤é¤ì¤ë¤À¤í¤¦¡£ +有効にすると、TCP スタックはスループットを高くするよりも +遅延を少なくすることを優先して判断を行う。 +このオプションを無効にすると、スループットを高くすることが優先される。 +このデフォルト値を変更した方がよいアプリケーションの例としては +Beowulf コンピュータクラスタが挙げられるだろう。 .TP -.IR tcp_max_orphans " (integer; default: see below; Linux 2.4 °Ê¹ß)" +.IR tcp_max_orphans " (integer; default: see below; Linux 2.4 以降)" .\" Since 2.3.41 -¥·¥¹¥Æ¥à¤¬µöÍƤ¹¤ë¡¢ -orphan ¤Ê (¤É¤Î¥æ¡¼¥¶¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤Ë¤â¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤Ê¤¤) -TCP ¥½¥±¥Ã¥È¤ÎºÇÂç¿ô¡£ -¤³¤Î¿ô¤ò±Û¤¨¤ë¤È¡¢orphan ¤ÊÀܳ¤Ï¥ê¥»¥Ã¥È¤µ¤ì¡¢·Ù¹ð¤¬É½¼¨¤µ¤ì¤ë¡£ -¤³¤ÎÀ©¸Â¤¬Â¸ºß¤¹¤ë¤Î¤Ï¡¢Ã±½ã¤Ê»ÈÍÑÉÔǽ (denial-of-service) ¹¶·â¤ò -Ëɤ°¤¿¤á¤Ë²á¤®¤Ê¤¤¡£¤³¤ÎÃͤò¾®¤µ¤¯¤¹¤ë¤³¤È¤Ï¿ä¾©¤·¤Ê¤¤¡£ -¥Í¥Ã¥È¥ï¡¼¥¯¤Î¾ò·ï¤Ë¤è¤Ã¤Æ¤Ï¡¢¤³¤Î¿ôÃͤòÂ礭¤¯¤·¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¤¬¡¢ -orphan ¤Ê¥½¥±¥Ã¥È¤Ò¤È¤Ä¤¢¤¿¤ê -64K ÄøÅ٤Υ¹¥ï¥Ã¥×ÉÔ²Äǽ¤Ê¥á¥â¥ê¤ò¾ÃÈñ¤¹¤ë¤³¤È¤âÃí°Õ¤»¤è¡£ -¥Ç¥Õ¥©¥ë¥È¤Î½é´üÃͤϥ«¡¼¥Í¥ë¥Ñ¥é¥á¡¼¥¿¤Î NR_FILE ¤ÈÅù¤·¤¤¡£ -¤³¤Î½é´ü¥Ç¥Õ¥©¥ë¥ÈÃͤϥ·¥¹¥Æ¥à¤Î¥á¥â¥ê¤Ë±þ¤¸¤ÆÄ´À°¤µ¤ì¤ë¡£ -.TP -.IR tcp_max_syn_backlog " (integer; default: ²¼µ­»²¾È; Linux 2.2 °Ê¹ß)" +システムが許容する、 +orphan な (どのユーザファイルハンドルにもアタッチされていない) +TCP ソケットの最大数。 +この数を越えると、orphan な接続はリセットされ、警告が表示される。 +この制限が存在するのは、単純な使用不能 (denial-of-service) 攻撃を +防ぐために過ぎない。この値を小さくすることは推奨しない。 +ネットワークの条件によっては、この数値を大きくしないといけないかもしれないが、 +orphan なソケットひとつあたり +64K 程度のスワップ不可能なメモリを消費することも注意せよ。 +デフォルトの初期値はカーネルパラメータの NR_FILE と等しい。 +この初期デフォルト値はシステムのメモリに応じて調整される。 +.TP +.IR tcp_max_syn_backlog " (integer; default: 下記参照; Linux 2.2 以降)" .\" Since 2.1.53 -Àܳ¤·¤Æ¤­¤Æ¤¤¤ë¥¯¥é¥¤¥¢¥ó¥È¤«¤é -ack ¤ò¼õ¿®¤·¤Æ¤¤¤Ê¤¤¾õÂÖ¤ÎÀܳ¥ê¥¯¥¨¥¹¥È¤ò¥­¥å¡¼¤ËÃÖ¤±¤ëºÇÂç¿ô¡£ -¤³¤Î¿ôÃͤò±Û¤¨¤ë¤È¡¢¥«¡¼¥Í¥ë¤Ï¥ê¥¯¥¨¥¹¥È¤ò¼Î¤Æ»Ï¤á¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÃÍ¤Ï 256 ¤Ç¡¢ -¥·¥¹¥Æ¥à¤Ë½¼Ê¬¤Ê¥á¥â¥ê¤¬¤¢¤ë (128Mb °Ê¾å) ¾ì¹ç¤Ï 1024 ¤Ë¤Ê¤ê¡¢ -¥á¥â¥ê¤¬Èó¾ï¤Ë¾¯¤Ê¤¤¾ì¹ç (32 Mb °Ê²¼) ¤Ï 128 ¤Ë¤Ê¤ë¡£ -¤³¤Î¿ôÃͤò 1024 °Ê¾å¤ËÁý¤ä¤·¤¿¤¤¾ì¹ç¤Ï¡¢ +接続してきているクライアントから +ack を受信していない状態の接続リクエストをキューに置ける最大数。 +この数値を越えると、カーネルはリクエストを捨て始める。 +デフォルトの値は 256 で、 +システムに充分なメモリがある (128Mb 以上) 場合は 1024 になり、 +メモリが非常に少ない場合 (32 Mb 以下) は 128 になる。 +この数値を 1024 以上に増やしたい場合は、 .I include/net/tcp.h -¤Î TCP_SYNQ_HSIZE ¤ò -TCP_SYNQ_HSIZE*16<=tcp_max_syn_backlog ¤Î¤è¤¦¤Ë½¤Àµ¤·¡¢ -¥«¡¼¥Í¥ë¤òºÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¤ò¾©¤á¤ë¡£ +の TCP_SYNQ_HSIZE を +TCP_SYNQ_HSIZE*16<=tcp_max_syn_backlog のように修正し、 +カーネルを再コンパイルすることを奨める。 .TP -.IR tcp_max_tw_buckets " (integer; default: ²¼µ­»²¾È; Linux 2.4 °Ê¹ß)" +.IR tcp_max_tw_buckets " (integer; default: 下記参照; Linux 2.4 以降)" .\" Since 2.3.41 -¥·¥¹¥Æ¥à¤¬µöÍƤ¹¤ë TIME_WAIT ¾õÂ֤ˤ¢¤ë¥½¥±¥Ã¥È¤ÎºÇÂç¿ô¡£ -¤³¤ÎÀ©¸Â¤¬Â¸ºß¤¹¤ë¤Î¤Ï¡¢ -ñ½ã¤Ê»ÈÍÑÉÔǽ (denial-of-service) ¹¶·â¤òËɤ°¤¿¤á¤Ë²á¤®¤Ê¤¤¡£ -¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï NR_FILE*2 ¤Ç¡¢¥·¥¹¥Æ¥à¤Î¥á¥â¥ê¤Ë±þ¤¸¤ÆÄ´À°¤µ¤ì¤ë¡£ -¤³¤Î¿ôÃͤò±Û¤¨¤ë¤È¡¢¤½¤Î¤è¤¦¤Ê¥½¥±¥Ã¥È¤Ï¥¯¥í¡¼¥º¤µ¤ì¡¢·Ù¹ð¤¬É½¼¨¤µ¤ì¤ë¡£ +システムが許容する TIME_WAIT 状態にあるソケットの最大数。 +この制限が存在するのは、 +単純な使用不能 (denial-of-service) 攻撃を防ぐために過ぎない。 +デフォルト値は NR_FILE*2 で、システムのメモリに応じて調整される。 +この数値を越えると、そのようなソケットはクローズされ、警告が表示される。 .TP -.IR tcp_moderate_rcvbuf " (Boolean; default: enabled; Linux 2.4.17/2.6.7 °Ê¹ß)" +.IR tcp_moderate_rcvbuf " (Boolean; default: enabled; Linux 2.4.17/2.6.7 以降)" .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt -Í­¸ú¤Ë¤¹¤ë¤È¡¢TCP ¤Ï¼õ¿®¥Ð¥Ã¥Õ¥¡¤Î¼«Æ°Ä´À°¤ò¹Ô¤¦¡£ -¶ñÂÎŪ¤Ë¤Ï¡¢ +有効にすると、TCP は受信バッファの自動調整を行う。 +具体的には、 .RI ( tcp_rmem[2] -¤òĶ¤¨¤Ê¤¤ÈϰϤÇ) ¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ¤ò¼«Æ°Åª¤ËÊѲ½¤µ¤»¡¢ -¤½¤Î·ÐÏ©¤ÇºÇÂç¤Î¥¹¥ë¡¼¥×¥Ã¥È¤òãÀ®¤¹¤ë¤Î¤ËɬÍפÊÂ礭¤µ¤Ë¹ç¤ï¤»¤è¤¦¤È¤¹¤ë¡£ +を超えない範囲で) バッファの大きさを自動的に変化させ、 +その経路で最大のスループットを達成するのに必要な大きさに合わせようとする。 .TP -.IR tcp_mem " (Linux 2.4 °Ê¹ß)" +.IR tcp_mem " (Linux 2.4 以降)" .\" Since 2.4.0-test7 -¤³¤ì¤Ï 3 ¤Ä¤ÎÀ°¿ô [low, pressure, high] ¤«¤é¤Ê¤ë¥Ù¥¯¥È¥ëÃͤǤ¢¤ë¡£ -¤³¤ì¤é¤Ï TCP ¤¬¥á¥â¥ê»ÈÍÑÎ̤òÄÉÀפ¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë -(»ÈÍÑÎ̤ϥ·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥ºÃ±°Ì¤Ç·×¬¤µ¤ì¤ë)¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï¥Ö¡¼¥È»þ¤ËÍøÍѤǤ­¤ë¥á¥â¥ê¤ÎÎ̤«¤é·×»»¤µ¤ì¤ë¡£ -(¼ÂºÝ¤Ë¤Ï¡¢TCP ¤Ï +これは 3 つの整数 [low, pressure, high] からなるベクトル値である。 +これらは TCP がメモリ使用量を追跡するために用いられる +(使用量はシステムのページサイズ単位で計測される)。 +デフォルトはブート時に利用できるメモリの量から計算される。 +(実際には、TCP は .I "low memory" -¤Î¤ß¤ò»ÈÍѤ¹¤ë¡£ÃÍ¤Ï 32¥Ó¥Ã¥È¥·¥¹¥Æ¥à¤Ç¤ÏÌó 900 ¥á¥¬¥Ð¥¤¥È¤ËÀ©¸Â¤µ¤ì¤ë¡£ -64 ¥Ó¥Ã¥È¥·¥¹¥Æ¥à¤Ç¤Ï¤³¤ÎÀ©¸Â¤Ï¤Ê¤¤¡£) +のみを使用する。値は 32ビットシステムでは約 900 メガバイトに制限される。 +64 ビットシステムではこの制限はない。) .RS .TP 10 .I low -TCP ¤Ï¡¢¥°¥í¡¼¥Ð¥ë¤Ë¥¢¥í¥±¡¼¥È¤·¤¿¥Ú¡¼¥¸¤¬¤³¤Î¿ôÃͰʲ¼¤Î¾ì¹ç¤Ï¡¢ -¥á¥â¥ê¥¢¥í¥±¡¼¥·¥ç¥ó¤òÄ´À°¤·¤Ê¤¤¡£ +TCP は、グローバルにアロケートしたページがこの数値以下の場合は、 +メモリアロケーションを調整しない。 .TP .I pressure -TCP ¤¬¥¢¥í¥±¡¼¥È¤·¤¿¥á¥â¥ê¤¬¤³¤Î¿ôÃÍʬ¤Î¥Ú¡¼¥¸¿ô¤ò±Û¤¨¤ë¤È¡¢ -TCP ¤Ï¥á¥â¥ê¾ÃÈñ¤òÍÞ¤¨¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¥¢¥í¥±¡¼¥È¤·¤¿¥Ú¡¼¥¸¿ô¤¬ +TCP がアロケートしたメモリがこの数値分のページ数を越えると、 +TCP はメモリ消費を抑えるようになる。 +アロケートしたページ数が .I low -°Ê²¼¤Ë¤Ê¤ë¤È¡¢¤³¤Î¥á¥â¥ê°µÇ÷¾õÂÖ¤«¤é椹¤ë¡£ +以下になると、このメモリ圧迫状態から脱する。 .TP .I high -TCP ¤¬¥°¥í¡¼¥Ð¥ë¤Ë³ä¤êÅö¤Æ¤ë¥Ú¡¼¥¸¿ô¤ÎºÇÂçÃÍ¡£ -¤³¤ÎÃͤϥ«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ²Ý¤µ¤ì¤ë¤¢¤é¤æ¤ëÀ©¸Â¤è¤ê¤âÍ¥À褵¤ì¤ë¡£ +TCP がグローバルに割り当てるページ数の最大値。 +この値はカーネルによって課されるあらゆる制限よりも優先される。 .RE .TP -.IR tcp_mtu_probing " (integer; default: 0; Linux 2.6.17 °Ê¹ß)" +.IR tcp_mtu_probing " (integer; default: 0; Linux 2.6.17 以降)" .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt -¤³¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¡¢TCP ¤Î¥Ñ¥±¥Ã¥È²½¥ì¥¤¥ä¤Î Path MTU discovery ¤òÀ©¸æ¤¹¤ë¡£ -¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï°Ê²¼¤ÎÃͤòÀßÄê¤Ç¤­¤ë¡£ +このパラメータは、TCP のパケット化レイヤの Path MTU discovery を制御する。 +このファイルには以下の値を設定できる。 .RS .IP 0 3 -̵¸ú¤Ë¤¹¤ë¡£ +無効にする。 .IP 1 -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï̵¸ú¤À¤¬¡¢ICMP ¥Ö¥é¥Ã¥¯¥Û¡¼¥ë¤¬¸¡½Ð¤µ¤ì¤¿¾ì¹ç¤ÏÍ­¸ú¤Ë¤¹¤ë¡£ +デフォルトでは無効だが、ICMP ブラックホールが検出された場合は有効にする。 .IP 2 -¾ï¤ËÍ­¸ú¤Ë¤¹¤ë¡£ -MSS ¤Î½é´üÃͤȤ·¤Æ +常に有効にする。 +MSS の初期値として .I tcp_base_mss -¤¬»ÈÍѤµ¤ì¤ë¡£ +が使用される。 .RE .TP -.IR tcp_no_metrics_save " (Boolean; default: disabled; Linux 2.6.6 °Ê¹ß)" +.IR tcp_no_metrics_save " (Boolean; default: disabled; Linux 2.6.6 以降)" .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢TCP ¤ÏÀܳ¥¯¥í¡¼¥º»þ¤Ë³Æ¼ï¤ÎÀܳ¥Ñ¥é¥á¡¼¥¿¤ò -¥ë¡¼¥È¥­¥ã¥Ã¥·¥å (route cache) ¤ËÊݸ¤·¡¢¶á¤¤¾­Íè¤ËÀܳ¤¬³ÎΩ¤µ¤ì¤¿ºÝ¤Ë -¤³¤ì¤é¤Î¾ðÊó¤ò½é´ü¾õÂ֤Ȥ·¤Æ»ÈÍѤǤ­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -Ä̾ï¤Ï¡¢¤³¤ì¤Ë¤è¤êÁ´ÂΤȤ·¤ÆÀ­Ç½¤¬¸þ¾å¤¹¤ë¤¬¡¢ -»þ¤È¤·¤ÆÀ­Ç½¤ÎÎô²½¤ò°ú¤­µ¯¤³¤¹¤³¤È¤â¤¢¤ë¡£ +デフォルトでは、TCP は接続クローズ時に各種の接続パラメータを +ルートキャッシュ (route cache) に保存し、近い将来に接続が確立された際に +これらの情報を初期状態として使用できるようになっている。 +通常は、これにより全体として性能が向上するが、 +時として性能の劣化を引き起こすこともある。 .I tcp_no_metrics_save -¤òÍ­¸ú¤Ë¤¹¤ë¤È¡¢TCP ¤ÏÀܳ¥¯¥í¡¼¥º»þ¤ËÀܳ¥Ñ¥é¥á¡¼¥¿¤ò¥­¥ã¥Ã¥·¥å -¤·¤Ê¤¯¤Ê¤ë¡£ +を有効にすると、TCP は接続クローズ時に接続パラメータをキャッシュ +しなくなる。 .TP -.IR tcp_orphan_retries " (integer; default: 8; Linux 2.4 °Ê¹ß)" +.IR tcp_orphan_retries " (integer; default: 8; Linux 2.4 以降)" .\" Since 2.3.41 -¤³¤Á¤é¤«¤é¥¯¥í¡¼¥º¤·¤¿Àܳ¤Ë¤Ä¤¤¤Æ¡¢ -ÀèÊý¤ò¥×¥í¡¼¥Ö¤¹¤ëºÇÂç»î¹Ô¿ô¡£ +こちらからクローズした接続について、 +先方をプローブする最大試行数。 .TP -.IR tcp_reordering " (integer; default: 3; Linux 2.4 °Ê¹ß)" +.IR tcp_reordering " (integer; default: 3; Linux 2.4 以降)" .\" Since 2.4.0-test7 -TCP ¥Ñ¥±¥Ã¥È¥¹¥È¥ê¡¼¥à¤Ç¥Ñ¥±¥Ã¥È½ç½ø¤ÎµÕž¤¬È¯À¸¤·¤¿¤À¤±¤Ç¤¢¤ê¡¢ -¥Ñ¥±¥Ã¥È¥í¥¹¤¬µ¯¤³¤Ã¤¿¤È¤Ï¤ß¤Ê¤µ¤Ê¤¤¡¢¥Ñ¥±¥Ã¥È¿ô¤ÎºÇÂçÃÍ¡£ -¤³¤ÎÃͤòĶ¤¨¤Æ¥Ñ¥±¥Ã¥È¤Î½ç½øµÕž¤¬µ¯¤³¤ë¤È¡¢¥Ñ¥±¥Ã¥È¥í¥¹¤¬À¸¤¸¤¿¤È -¤ß¤Ê¤·¡¢slow start ¤ËÆþ¤ë¡£ -¤³¤Î¿ôÃͤÏÊѹ¹¤·¤Ê¤¤¤Û¤¦¤¬Îɤ¤¡£ -¤³¤ì¤Ï¡¢ÀܳÃæ¤Î¥Ñ¥±¥Ã¥È¤ÎʤÓÂؤ¨¤Ë¤è¤Ã¤ÆÀ¸¤¸¤ë -ÉÔɬÍפÊ®ÅÙÄã²¼¤äºÆÁ÷¤òºÇ¾®²½¤¹¤ë¤è¤¦¤ËÀ߷פµ¤ì¤¿¡¢ -¥Ñ¥±¥Ã¥ÈʤÓÂؤ¨ (packet reordering) ¤Î¸¡ÃÎ¥á¥È¥ê¥Ã¥¯¤Ê¤Î¤Ç¤¢¤ë¡£ -.TP -.IR tcp_retrans_collapse " (Boolean; default: enabled; Linux 2.2 °Ê¹ß)" +TCP パケットストリームでパケット順序の逆転が発生しただけであり、 +パケットロスが起こったとはみなさない、パケット数の最大値。 +この値を超えてパケットの順序逆転が起こると、パケットロスが生じたと +みなし、slow start に入る。 +この数値は変更しないほうが良い。 +これは、接続中のパケットの並び替えによって生じる +不必要な速度低下や再送を最小化するように設計された、 +パケット並び替え (packet reordering) の検知メトリックなのである。 +.TP +.IR tcp_retrans_collapse " (Boolean; default: enabled; Linux 2.2 以降)" .\" Since 2.1.96 -ºÆÁ÷¤ÎºÝ¤Ë¥Õ¥ë¥µ¥¤¥º¤Î¥Ñ¥±¥Ã¥È¤òÁ÷¤í¤¦¤È¤¹¤ë¡£ +再送の際にフルサイズのパケットを送ろうとする。 .TP -.IR tcp_retries1 " (integer; default: 3; Linux 2.2 °Ê¹ß)" +.IR tcp_retries1 " (integer; default: 3; Linux 2.2 以降)" .\" Since 2.1.43 -ÉáÄ̤˳ÎΩ¤µ¤ì¤Æ¤¤¤ëÀܳ¾å¤Ë¡¢ -TCP ¤¬¥Í¥Ã¥È¥ï¡¼¥¯Áؤò´¬¤­¹þ¤Þ¤º¤ËºÆÁ÷¤ò»î¤ß¤ë²ó¿ô¡£ -ºÆÁ÷¤¬¤³¤Î²ó¿ô¤ò±Û¤¨¤ë¤È¡¢¤Þ¤ººÇ½é¤Ë¡¢ -¿·¤·¤¤ºÆÁ÷¤òÁ÷¤ëÁ°¤Ë²Äǽ¤Ê¤é¥Í¥Ã¥È¥ï¡¼¥¯Áؤ˷ÐÏ©¤ò¹¹¿·¤µ¤»¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï RFC ¤¬»ØÄꤷ¤Æ¤¤¤ëºÇ¾¯¿ô¤Ç¤¢¤ë 3¡£ +普通に確立されている接続上に、 +TCP がネットワーク層を巻き込まずに再送を試みる回数。 +再送がこの回数を越えると、まず最初に、 +新しい再送を送る前に可能ならネットワーク層に経路を更新させる。 +デフォルトは RFC が指定している最少数である 3。 .TP -.IR tcp_retries2 " (integer; default: 15; Linux 2.2 °Ê¹ß)" +.IR tcp_retries2 " (integer; default: 15; Linux 2.2 以降)" .\" Since 2.1.43 -³ÎΩ¾õÂÖ¤ÎÀܳ¤Ë¡¢¤³¤Î²ó¿ô TCP ¥Ñ¥±¥Ã¥È¤ÎºÆÁ÷¿®¤ò -¹Ô¤Ê¤Ã¤Æ¤â¤À¤á¤Ê¾ì¹ç¤Ï¤¢¤­¤é¤á¤ë¡£ -¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 15 ¤Ç¡¢¤³¤ì¤Ï (ºÆÁ÷¤Î¥¿¥¤¥à¥¢¥¦¥È¤Ë°Í¸¤¹¤ë¤¬) -¤ª¤è¤½ 13¡Á30 ʬÄøÅ٤δü´Ö¤ËÂбþ¤¹¤ë¡£ -RFC\ 1122 ¤ÏºÇ¾®¤Î¸Â³¦¤ò 100 ÉäÈÃÖ¤¤¤Æ¤¤¤ë¤¬¡¢ -¤³¤ì¤Ï¤¿¤¤¤Æ¤¤¤Î¾ì¹ç¤Ë¤Ïû¤¹¤®¤ë¤È»×¤ï¤ì¤ë¡£ -.TP -.IR tcp_rfc1337 " (Boolean; default: disabled; Linux 2.2 °Ê¹ß)" +確立状態の接続に、この回数 TCP パケットの再送信を +行なってもだめな場合はあきらめる。 +デフォルト値は 15 で、これは (再送のタイムアウトに依存するが) +およそ 13〜30 分程度の期間に対応する。 +RFC\ 1122 は最小の限界を 100 秒と置いているが、 +これはたいていの場合には短すぎると思われる。 +.TP +.IR tcp_rfc1337 " (Boolean; default: disabled; Linux 2.2 以降)" .\" Since 2.1.90 -TCP ¤ÎÆ°ºî¤ò RFC\ 1337 ¤Ë½àµò¤µ¤»¤ë¡£ -̵¸ú¤Ë¤¹¤ë¤È¡¢TIME_WAIT ¾õÂ֤ΤȤ­¤Ë RST ¤¬¼õ¿®¤µ¤ì¤¿¾ì¹ç¡¢ -TIME_WAIT ´ü´Ö¤Î½ªÎ»¤òÂÔ¤¿¤º¤Ë¤½¤Î¥½¥±¥Ã¥È¤òľ¤Á¤Ë¥¯¥í¡¼¥º¤¹¤ë¡£ +TCP の動作を RFC\ 1337 に準拠させる。 +無効にすると、TIME_WAIT 状態のときに RST が受信された場合、 +TIME_WAIT 期間の終了を待たずにそのソケットを直ちにクローズする。 .TP -.IR tcp_rmem " (Linux 2.4 °Ê¹ß)" +.IR tcp_rmem " (Linux 2.4 以降)" .\" Since 2.4.0-test7 -¤³¤ì¤Ï 3 ¤Ä¤ÎÀ°¿ô [min, default, max] ¤«¤é¤Ê¤ë¥Ù¥¯¥È¥ëÃͤǤ¢¤ë¡£ -¤³¤ì¤é¤Ï TCP ¤¬¼õ¿®¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤òÄ´À°¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ -TCP ¤Ï¡¢¥·¥¹¥Æ¥à¤ÇÍøÍѤǤ­¤ë¥á¥â¥ê¤Ë±þ¤¸¤Æ¡¢ -¼õ¿®¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤ò¤³¤ì¤é¤ÎÊÑ¿ô¤ÎÈÏ°Ï¤Ç -°Ê²¼¤Ë¼¨¤¹¥Ç¥Õ¥©¥ë¥È¤«¤éưŪ¤ËÄ´À°¤¹¤ë¡£ +これは 3 つの整数 [min, default, max] からなるベクトル値である。 +これらは TCP が受信バッファサイズを調整するために用いられる。 +TCP は、システムで利用できるメモリに応じて、 +受信バッファのサイズをこれらの変数の範囲で +以下に示すデフォルトから動的に調整する。 .RS .TP 10 .I min -³Æ TCP ¥½¥±¥Ã¥È¤¬ÍѤ¤¤ë¼õ¿®¥Ð¥Ã¥Õ¥¡¤ÎºÇ¾®¥µ¥¤¥º¡£ -¥Ç¥Õ¥©¥ë¥ÈÃͤϥ·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥º¤Ç¤¢¤ë -(Linux 2.4 ¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 4K ¥Ð¥¤¥È¤Ç¡¢ -¥á¥â¥ê¤Î¾¯¤Ê¤¤¥·¥¹¥Æ¥à¤Ç¤Ï +各 TCP ソケットが用いる受信バッファの最小サイズ。 +デフォルト値はシステムのページサイズである +(Linux 2.4 では、デフォルト値は 4K バイトで、 +メモリの少ないシステムでは .B PAGE_SIZE -¥Ð¥¤¥È¤Ë¸º¤é¤µ¤ì¤ë)¡£ -¤³¤ÎÃͤϡ¢¥á¥â¥ê°µÇ÷¥â¡¼¥É¤Ë¤ª¤¤¤Æ¤â¡¢ -¤³¤Î¥µ¥¤¥º¤Î³ä¤êÅö¤Æ¤¬À®¸ù¤¹¤ë¤³¤È¤òÊݾڤ¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ -¤³¤ì¤Ï¡¢ +バイトに減らされる)。 +この値は、メモリ圧迫モードにおいても、 +このサイズの割り当てが成功することを保証するために用いられる。 +これは、 .B SO_RCVBUF -¤òÍѤ¤¤Æ¥½¥±¥Ã¥È¤ÎºÇÄã¼õ¿®¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤òÀë¸À¤¹¤ëºÝ¤Ë¤ÏÍѤ¤¤é¤ì¤Ê¤¤¡£ +を用いてソケットの最低受信バッファサイズを宣言する際には用いられない。 .\"nakano Documentation/networking/ip-sysctls.txt -.\"nakano ¤ò¤ß¤ë¸Â¤ê¤Ç¤Ï¤³¤¦¤¤¤¦ÆâÍƤΤ褦¤Ê¡£ +.\"nakano をみる限りではこういう内容のような。 .TP .I default -TCP ¥½¥±¥Ã¥È¤Î¼õ¿®¥Ð¥Ã¥Õ¥¡¤Î¥Ç¥Õ¥©¥ë¥È¥µ¥¤¥º¡£ -¤³¤ÎÃͤϡ¢¤¹¤Ù¤Æ¤Î¥×¥í¥È¥³¥ë¤ËÂФ·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡¢ -¥¸¥§¥Í¥ê¥Ã¥¯¤Ê¥°¥í¡¼¥Ð¥ë¤Î¥Ç¥Õ¥©¥ë¥È¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º +TCP ソケットの受信バッファのデフォルトサイズ。 +この値は、すべてのプロトコルに対して定義されている、 +ジェネリックなグローバルのデフォルトバッファサイズ .I net.core.rmem_default -¤è¤êÍ¥À褵¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 87380 ¥Ð¥¤¥È¤Ç¤¢¤ë -(Linux 2.4 ¤Ç¤Ï¡¢¥á¥â¥ê¤Î¾¯¤Ê¤¤¥·¥¹¥Æ¥à¤Î¾ì¹ç -43689 ¤Þ¤Ç¸º¤é¤µ¤ì¤ë)¡£ -Â礭¤Ê¼õ¿®¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤¬É¬Íפʾì¹ç¤Ï¡¢ -¤³¤ÎÃͤòÁý¤ä¤¹¤Ù¤­¤Ç¤¢¤ë (¤¹¤Ù¤Æ¤Î¥½¥±¥Ã¥È¤Ë±Æ¶Á¤¹¤ë)¡£ -Â礭¤Ê TCP ¥¦¥£¥ó¥É¥¦¤òÍѤ¤¤ë¤Ë¤Ï¡¢ +より優先される。 +デフォルト値は 87380 バイトである +(Linux 2.4 では、メモリの少ないシステムの場合 +43689 まで減らされる)。 +大きな受信バッファサイズが必要な場合は、 +この値を増やすべきである (すべてのソケットに影響する)。 +大きな TCP ウィンドウを用いるには、 .I net.ipv4.tcp_window_scaling -¤òÍ­¸ú¤Ë¤·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ (¥Ç¥Õ¥©¥ë¥È¤ÏÍ­¸ú)¡£ +を有効にしておかなければならない (デフォルトは有効)。 .TP .I max -³Æ TCP ¥½¥±¥Ã¥È¤ÇÍѤ¤¤ë¼õ¿®¥Ð¥Ã¥Õ¥¡¤ÎºÇÂ祵¥¤¥º¡£ -¤³¤ÎÃͤè¤ê¤â¥°¥í¡¼¥Ð¥ë¤Î +各 TCP ソケットで用いる受信バッファの最大サイズ。 +この値よりもグローバルの .I net.core.rmem_max -¤¬Í¥À褵¤ì¤ë¡£ -¤³¤ì¤Ï¡¢ +が優先される。 +これは、 .B SO_RCVBUF -¤òÍѤ¤¤Æ¥½¥±¥Ã¥È¤Î¼õ¿®¥Ð¥Ã¥Õ¥¡¥µ¥¤¥ºÀ©¸Â¤òÀë¸À¤¹¤ëºÝ¤Ë¤ÏÍѤ¤¤é¤ì¤Ê¤¤¡£ -.\"nakano Ʊ¾å¡£ -¥Ç¥Õ¥©¥ë¥ÈÃͤϰʲ¼¤Î¼°¤Ç·×»»¤µ¤ì¤ë¡£ +を用いてソケットの受信バッファサイズ制限を宣言する際には用いられない。 +.\"nakano 同上。 +デフォルト値は以下の式で計算される。 max(87380, min(4MB, \fItcp_mem\fP[1]*PAGE_SIZE/128)) -(Linux 2.4 ¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 87380*2 ¥Ð¥¤¥È¤Ç¡¢ -¥á¥â¥ê¤Î¾¯¤Ê¤¤¥·¥¹¥Æ¥à¤Ç¤Ï 87380 ¤Þ¤Ç¸º¤é¤µ¤ì¤ë¡£) +(Linux 2.4 では、デフォルト値は 87380*2 バイトで、 +メモリの少ないシステムでは 87380 まで減らされる。) .RE .TP -.IR tcp_sack " (Boolean; default: enabled; Linux 2.2 °Ê¹ß)" +.IR tcp_sack " (Boolean; default: enabled; Linux 2.2 以降)" .\" Since 2.1.36 -RFC\ 2018 ¤Î TCP Selective Acknowledgements ¤òÍ­¸ú¤Ë¤¹¤ë¡£ +RFC\ 2018 の TCP Selective Acknowledgements を有効にする。 .TP -.IR tcp_slow_start_after_idle " (Boolean; default: enabled; Linux 2.6.18 °Ê¹ß)" +.IR tcp_slow_start_after_idle " (Boolean; default: enabled; Linux 2.6.18 以降)" .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt -Í­¸ú¤Ë¤¹¤ë¤È¡¢RFC 2861 ¤ÎÆ°ºî¤¬¹Ô¤ï¤ì¡¢ -¥¢¥¤¥É¥ë»þ´Ö·Ð²á¸å¤ËíÕíÔ¥¦¥£¥ó¥É¥¦¤ò¥¿¥¤¥à¥¢¥¦¥È¤µ¤»¤ë¡£ -¥¢¥¤¥É¥ë»þ´Ö¤Ï¸½ºß¤Î RTO (ºÆÁ÷¥¿¥¤¥à¥¢¥¦¥È) ¤ÇÄêµÁ¤µ¤ì¤ë¡£ -̵¸ú¤Ë¤¹¤ë¤È¡¢íÕíÔ¥¦¥£¥ó¥É¥¦¤Ï¥¢¥¤¥É¥ë»þ´Ö·Ð²á¸å¤â¥¿¥¤¥à¥¢¥¦¥È¤µ¤ì¤Ê¤¤¡£ +有効にすると、RFC 2861 の動作が行われ、 +アイドル時間経過後に輻輳ウィンドウをタイムアウトさせる。 +アイドル時間は現在の RTO (再送タイムアウト) で定義される。 +無効にすると、輻輳ウィンドウはアイドル時間経過後もタイムアウトされない。 .TP -.IR tcp_stdurg " (Boolean; default: disabled; Linux 2.2 °Ê¹ß)" +.IR tcp_stdurg " (Boolean; default: disabled; Linux 2.2 以降)" .\" Since 2.1.44 -¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤¹¤ë¤È¡¢ TCP ¶ÛµÞ¥Ý¥¤¥ó¥¿ (urgent-pointer) -¥Õ¥£¡¼¥ë¥É¤ò RFC\ 1122 ¤Ë½¾¤Ã¤¿²ò¼á¤ò¹Ô¤¦¡£ -.\" RFC\ 793 ¤Ï¶ÛµÞ¥Ý¥¤¥ó¥¿¤Î°ÕÌ£¤Îµ¬Ä꤬ۣËæ¤Ç¤¢¤Ã¤¿¡£ -.\" RFC\ 1122 (¤È RFC\ 961) ¤Ç¤Ï¤³¤ÎÛ£Ë椵¤Ë°ì¤Ä¤Î²ò·èºö¤òÄê¤á¤¿ -.\" (»ÄÇ°¤Ê¤¬¤é "´Ö°ã¤Ã¤¿" ²ò·èºö¤Ç¤¢¤Ã¤¿¤¬)¡£ -¤³¤Î²ò¼á¤Ë½¾¤¦¤È¡¢¶ÛµÞ¥Ý¥¤¥ó¥¿¤Ï¶ÛµÞ¥Ç¡¼¥¿¤ÎºÇ¸å¤Î¥Ð¥¤¥È¤ò»Ø¤¹¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò̵¸ú¤Ë¤¹¤ë¤È¡¢¶ÛµÞ¥Ý¥¤¥ó¥¿¤Î²ò¼á¤¬ BSD ¸ß´¹¤ÎÊýË¡¤Ç -¹Ô¤ï¤ì¤ë: ¶ÛµÞ¥Ý¥¤¥ó¥¿¤Ï¶ÛµÞ¥Ç¡¼¥¿¤Î¸å¤ÎºÇ½é¤Î¥Ð¥¤¥È¤ò»Ø¤¹¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤¹¤ë¤È¡¢Áê¸ß±¿ÍÑÀ­¤ËÌäÂ꤬À¸¤¸¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -.TP -.IR tcp_syn_retries " (integer; default: 5; Linux 2.2 °Ê¹ß)" +このオプションを有効にすると、 TCP 緊急ポインタ (urgent-pointer) +フィールドを RFC\ 1122 に従った解釈を行う。 +.\" RFC\ 793 は緊急ポインタの意味の規定が曖昧であった。 +.\" RFC\ 1122 (と RFC\ 961) ではこの曖昧さに一つの解決策を定めた +.\" (残念ながら "間違った" 解決策であったが)。 +この解釈に従うと、緊急ポインタは緊急データの最後のバイトを指す。 +このオプションを無効にすると、緊急ポインタの解釈が BSD 互換の方法で +行われる: 緊急ポインタは緊急データの後の最初のバイトを指す。 +このオプションを有効にすると、相互運用性に問題が生じるかもしれない。 +.TP +.IR tcp_syn_retries " (integer; default: 5; Linux 2.2 以降)" .\" Since 2.1.38 -¥¢¥¯¥Æ¥£¥Ö¤Ê TCP Àܳ¤Ë½é´ü SYN ¤ÎºÆÁ÷¤ò»î¤ß¤ëºÇÂç²ó¿ô¡£ -¤³¤Î¿ôÃÍ¤Ï 255 ¤è¤ê¤âÂ礭¤¯¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÃÍ¤Ï 5 ¤Ç¡¢¤ª¤è¤½ 180 ÉäËÂбþ¤¹¤ë¡£ +アクティブな TCP 接続に初期 SYN の再送を試みる最大回数。 +この数値は 255 よりも大きくすべきではない。 +デフォルトの値は 5 で、およそ 180 秒に対応する。 .TP -.IR tcp_synack_retries " (integer; default: 5; Linux 2.2 °Ê¹ß)" +.IR tcp_synack_retries " (integer; default: 5; Linux 2.2 以降)" .\" Since 2.1.38 -passive ¤Ê TCP Àܳ¤Î SYN/ACK ¥»¥°¥á¥ó¥È¤ÇºÆÁ÷¤ò»î¤ß¤ëºÇÂç¿ô¡£ -¤³¤Î¿ôÃÍ¤Ï 255 ¤è¤ê¤âÂ礭¤¯¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +passive な TCP 接続の SYN/ACK セグメントで再送を試みる最大数。 +この数値は 255 よりも大きくすべきではない。 .TP -.IR tcp_syncookies " (Boolean; Linux 2.2 °Ê¹ß)" +.IR tcp_syncookies " (Boolean; Linux 2.2 以降)" .\" Since 2.1.43 -.TCP syncookies ¤òÍ­¸ú¤Ë¤¹¤ë¡£¥«¡¼¥Í¥ë¤Ï +.TCP syncookies を有効にする。カーネルは .B CONFIG_SYNCOOKIES -¤ò¤Ä¤±¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥½¥±¥Ã¥È¤Î¥Ð¥Ã¥¯¥í¥°¥­¥å¡¼¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë¤È¡¢ -syncookies ¤¬Á÷¿®¤µ¤ì¤ë¡£ -syncookies µ¡Ç½¤Ï¡¢SYN flood ¹¶·â¤«¤é¥½¥±¥Ã¥È¤ò¼é¤í¤¦¤È¤¹¤ë¡£ -¤³¤ì¤Ï¤¤¤º¤ì¤Ë¤·¤Æ¤â¡¢ºÇ½ª¼êÃʤȤ·¤ÆÍѤ¤¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï TCP ¥×¥í¥È¥³¥ë¤Ë°ãÈ¿¤·¤Æ¤ª¤ê¡¢ -TCP ³ÈÄ¥¤Î¤è¤¦¤Ê¡¢TCP ¤Î¾¤ÎÉôʬ¤È¾×Æͤ·¤Æ¤·¤Þ¤¦¡£ -¥¯¥é¥¤¥¢¥ó¥È¤ä¥ê¥ì¡¼¤ÇÌäÂ꤬µ¯¤³¤ë¤³¤È¤â¤¢¤ë¡£ -²áÉé²Ù¤äÀßÄê´Ö°ã¤¤¤Ë¤è¤Ã¤ÆÉé²Ù¤ÎÂ礭¤Ê¾õÂ֤ˤ¢¤ë¥µ¡¼¥Ð¤òÄ´À°¤·¤Æµß¤¦¤¿¤á¤Î -µ¡¹½¤È¤ß¤Ê¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -¤½¤Î¤è¤¦¤ÊÍÑÅӤˤϡ¢Âå¤ï¤ê¤Ë +をつけてコンパイルしておかなければならない。 +ソケットのバックログキューがオーバーフローすると、 +syncookies が送信される。 +syncookies 機能は、SYN flood 攻撃からソケットを守ろうとする。 +これはいずれにしても、最終手段として用いるべきである。 +これは TCP プロトコルに違反しており、 +TCP 拡張のような、TCP の他の部分と衝突してしまう。 +クライアントやリレーで問題が起こることもある。 +過負荷や設定間違いによって負荷の大きな状態にあるサーバを調整して救うための +機構とみなすべきではない。 +そのような用途には、代わりに .IR tcp_max_syn_backlog , .IR tcp_synack_retries , .I tcp_abort_on_overflow -¤Ê¤É¤Î»ÈÍѤò¹Í¤¨¤ë¤³¤È¡£ +などの使用を考えること。 .TP -.IR tcp_timestamps " (Boolean; default: enabled; Linux 2.2 °Ê¹ß)" +.IR tcp_timestamps " (Boolean; default: enabled; Linux 2.2 以降)" .\" Since 2.1.36 -RFC\ 1323 ¤Î TCP timestamps ¤òÍ­¸ú¤Ë¤¹¤ë¡£ +RFC\ 1323 の TCP timestamps を有効にする。 .TP -.IR tcp_tso_win_divisor " (integer; default: 3; Linux 2.6.9 °Ê¹ß)" -¤³¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¡¢°ì¤Ä¤Î TCP Segmentation Offload (TSO) ¥Õ¥ì¡¼¥à¤Ç -¾ÃÈñ¤Ç¤­¤ëíÕíÔ¥¦¥£¥ó¥É¥¦¤Î³ä¹ç (¥Ñ¡¼¥»¥ó¥È) ¤òÀ©¸æ¤¹¤ë¡£ -¥Ð¡¼¥¹¥ÈÀ­¤È¡¢¤É¤ì¤À¤±Â礭¤Ê TSO ¥Õ¥ì¡¼¥à¤ò¹½ÃÛ¤¹¤ë¤«¤Î¤Ï¥È¥ì¡¼¥É¥ª¥Õ¤Ç¤¢¤ê¡¢ -¤³¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¤½¤ÎÅٹ礤¤òÀßÄꤹ¤ë¡£ +.IR tcp_tso_win_divisor " (integer; default: 3; Linux 2.6.9 以降)" +このパラメータは、一つの TCP Segmentation Offload (TSO) フレームで +消費できる輻輳ウィンドウの割合 (パーセント) を制御する。 +バースト性と、どれだけ大きな TSO フレームを構築するかのはトレードオフであり、 +このパラメータはその度合いを設定する。 .TP -.IR tcp_tw_recycle " (Boolean; default: disabled; Linux 2.4 °Ê¹ß)" +.IR tcp_tw_recycle " (Boolean; default: disabled; Linux 2.4 以降)" .\" Since 2.3.15 -TIME_WAIT ¥½¥±¥Ã¥È¤ÎÁÇÁᤤºÆÍøÍѤòÍ­¸ú¤Ë¤¹¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤¹¤ë¤È¡¢ -NAT (¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹ÊÑ´¹) ¤òÍѤ¤¤Æ¤¤¤ë¤ÈÌäÂ꤬À¸¤¸¤ë¤Î¤Ç¡¢ -¤¢¤Þ¤ê¿ä¾©¤·¤Ê¤¤¡£ +TIME_WAIT ソケットの素早い再利用を有効にする。 +このオプションを有効にすると、 +NAT (ネットワークアドレス変換) を用いていると問題が生じるので、 +あまり推奨しない。 .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt .TP -.IR tcp_tw_reuse " (Boolean; default: disabled; Linux 2.4.19/2.6 °Ê¹ß)" +.IR tcp_tw_reuse " (Boolean; default: disabled; Linux 2.4.19/2.6 以降)" .\" Since 2.4.19/2.5.43 -¥×¥í¥È¥³¥ë¤ÎÌ̤«¤é¸«¤ÆÌäÂê¤Ê¤¤¾ì¹ç¤Ë¿·µ¬¥³¥Í¥¯¥·¥ç¥ó¤Ë TIME_WAIT -¾õÂ֤Υ½¥±¥Ã¥È¤òºÆÍøÍѤ¹¤ë¤³¤È¤òµö²Ä¤¹¤ë¡£µ»½ÑŪ¤Ë¾Ü¤·¤¤¿Í¤Î½õ¸À¤ä -Í×ÀÁ¤Ê¤·¤Ë¤³¤Î¥ª¥×¥·¥ç¥ó¤òÊѹ¹¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +プロトコルの面から見て問題ない場合に新規コネクションに TIME_WAIT +状態のソケットを再利用することを許可する。技術的に詳しい人の助言や +要請なしにこのオプションを変更すべきではない。 .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt .TP -.IR tcp_vegas_cong_avoid " (Boolean; default: disabled; Linux 2.2 ¤«¤é 2.6.13 ¤Þ¤Ç)" +.IR tcp_vegas_cong_avoid " (Boolean; default: disabled; Linux 2.2 から 2.6.13 まで)" .\" Since 2.1.8; removed in 2.6.13 -TCP Vegas íÕíÔÀ©¸æ¥¢¥ë¥´¥ê¥º¥à¤òÍ­¸ú¤Ë¤¹¤ë¡£ -TCP Vegas ¤ÏÂÓ°è¤ò¿ä¬¤¹¤ë¤³¤È¤ÇíÕíԤε¯¤³¤ê»Ï¤á¤òͽÁÛ¤¹¤ë¤è¤¦¤Ë -TCP ¤ÎÁ÷¿®Â¦¤Î¤ß¤ËÊѹ¹¤ò²Ã¤¨¤¿¤â¤Î¤Ç¤¢¤ë¡£ -TCP Vegas ¤ÏíÕíÔ¥¦¥£¥ó¥É¥¦¤ò½¤Àµ¤¹¤ë¤³¤È¤Ç¡¢Á÷¿®¥ì¡¼¥È¤òÄ´À°¤¹¤ë¡£ -TCP Vegas ¤Ï TCP Reno ¤ÈÈæ¤Ù¤Æ¥Ñ¥±¥Ã¥È¥í¥¹¤Ï¾¯¤Ê¤¤¤¬¡¢ -TCP Reno ¤Û¤ÉÀѶËŪ¤ÊµóÆ°¤Ï¤·¤Ê¤¤¡£ +TCP Vegas 輻輳制御アルゴリズムを有効にする。 +TCP Vegas は帯域を推測することで輻輳の起こり始めを予想するように +TCP の送信側のみに変更を加えたものである。 +TCP Vegas は輻輳ウィンドウを修正することで、送信レートを調整する。 +TCP Vegas は TCP Reno と比べてパケットロスは少ないが、 +TCP Reno ほど積極的な挙動はしない。 .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt .TP -.IR tcp_westwood " (Boolean; default: disabled; Linux 2.4.26/2.6.3 ¤«¤é 2.6.13 ¤Þ¤Ç)" -TCP Westwood+ íÕíÔÀ©¸æ¥¢¥ë¥´¥ê¥º¥à¤òÍ­¸ú¤Ë¤¹¤ë¡£ -TCP Westwood+ ¤Ï TCP íÕíÔÀ©¸æ¤ÎÀ­Ç½¤òºÇŬ²½¤¹¤ë¤è¤¦¤Ë TCP Reno ¤Î -¥×¥í¥È¥³¥ë¥¹¥¿¥Ã¥¯¤ÎÁ÷¿®Â¦¤Î¤ß¤Ë½¤Àµ¤ò²Ã¤¨¤¿¤â¤Î¤Ç¤¢¤ë¡£ -íÕíÔ¤¬µ¯¤³¤Ã¤¿¸å¤Ç¡¢íÕíÔ¥¦¥£¥ó¥É¥¦¤ä slow start ¤ÎïçÃͤò -ÄÌ¿®Î¾Ã¼´Ö¤ÎÂÓ°è¤Î¿ä¬¤Ë´ð¤Å¤¤¤ÆÀßÄꤹ¤ë¡£ -¤³¤Î¿ä¬¤ò»È¤Ã¤Æ¡¢TCP Westwood+ ¤ÏíÕíÔ¤¬È¯À¸¤·¤¿»þ¤Ë»È¤Ã¤Æ¤¤¤¿ -ÂÓ°è¤ò¹Íθ¤ËÆþ¤ì¤¿ slow start ¤ÎïçÃͤÈíÕíÔ¥¦¥£¥ó¥É¥¦¤òÀßÄꤹ¤ë¡£ -TCP Westwood+ ¤Ï¡¢Í­Àþ¥Í¥Ã¥È¥ï¡¼¥¯¤Ë¤ª¤±¤ë TCP Reno ¤Î¸øÊ¿À­ -(fairness) ¤È¡¢ÌµÀþ¥ê¥ó¥¯¤Ç¤Î¥¹¥ë¡¼¥×¥Ã¥È¤òÂ礭¤¯¸þ¾å¤¹¤ë¡£ -.TP -.IR tcp_window_scaling " (Boolean; default: enabled; Linux 2.2 °Ê¹ß)" +.IR tcp_westwood " (Boolean; default: disabled; Linux 2.4.26/2.6.3 から 2.6.13 まで)" +TCP Westwood+ 輻輳制御アルゴリズムを有効にする。 +TCP Westwood+ は TCP 輻輳制御の性能を最適化するように TCP Reno の +プロトコルスタックの送信側のみに修正を加えたものである。 +輻輳が起こった後で、輻輳ウィンドウや slow start の閾値を +通信両端間の帯域の推測に基づいて設定する。 +この推測を使って、TCP Westwood+ は輻輳が発生した時に使っていた +帯域を考慮に入れた slow start の閾値と輻輳ウィンドウを設定する。 +TCP Westwood+ は、有線ネットワークにおける TCP Reno の公平性 +(fairness) と、無線リンクでのスループットを大きく向上する。 +.TP +.IR tcp_window_scaling " (Boolean; default: enabled; Linux 2.2 以降)" .\" Since 2.1.36 -RFC\ 1323 ¤Î TCP ¥¦¥£¥ó¥É¥¦¥¹¥±¡¼¥ê¥ó¥°¤òÍ­¸ú¤Ë¤¹¤ë¡£ -¤³¤Îµ¡Ç½¤òÍѤ¤¤ë¤È¡¢ÀܳÀ褬Âбþ¤·¤Æ¤¤¤ì¤Ð¡¢ -TCP Àܳ¤ÇÂ礭¤Ê (64K °Ê¾å¤Î) ¥¦¥£¥ó¥É¥¦¤¬»È¤¨¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -Ä̾ï¤Ï TCP ¥Ø¥Ã¥À¤Î¥¦¥¤¥ó¥É¥¦Ä¹¥Õ¥£¡¼¥ë¥É¤Ï 16 ¥Ó¥Ã¥È¤Ê¤Î¤Ç¡¢ -¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤Ï 64K ¥Ð¥¤¥È°Ê²¼¤Ë¸Â¤é¤ì¤ë¡£ -¤â¤Ã¤ÈÂ礭¤Ê¥¦¥£¥ó¥É¥¦¤ò»È¤¤¤¿¤¤¾ì¹ç¤Ï¡¢ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¥½¥±¥Ã¥È¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤òÁý¤ä¤·¤Æ¡¢ -¥¦¥£¥ó¥É¥¦¥¹¥±¡¼¥ê¥ó¥°¤Î¥ª¥×¥·¥ç¥ó¤òÍøÍѤ¹¤ì¤Ð¤è¤¤¡£ +RFC\ 1323 の TCP ウィンドウスケーリングを有効にする。 +この機能を用いると、接続先が対応していれば、 +TCP 接続で大きな (64K 以上の) ウィンドウが使えるようになる。 +通常は TCP ヘッダのウインドウ長フィールドは 16 ビットなので、 +ウィンドウサイズは 64K バイト以下に限られる。 +もっと大きなウィンドウを使いたい場合は、 +アプリケーションはソケットバッファのサイズを増やして、 +ウィンドウスケーリングのオプションを利用すればよい。 .I tcp_window_scaling -¤ò̵¸ú¤Ë¤·¤Æ¤¤¤ë¤È¡¢ -TCP ¤Ï¾ü¤È¤ÎÀܳÀßÄê¤ÎºÝ¤Ë¡¢ -¥¦¥£¥ó¥É¥¦¥¹¥±¡¼¥ê¥ó¥°¤Î¥Í¥´¥·¥¨¡¼¥·¥ç¥ó¤ò¹Ô¤Ê¤ï¤Ê¤¤¡£ +を無効にしていると、 +TCP は他端との接続設定の際に、 +ウィンドウスケーリングのネゴシエーションを行なわない。 .TP -.IR tcp_wmem " (Linux 2.4 °Ê¹ß)" +.IR tcp_wmem " (Linux 2.4 以降)" .\" Since 2.4.0-test7 -¤³¤ì¤Ï 3 ¤Ä¤ÎÀ°¿ô [min, default, max] ¤«¤é¤Ê¤ë¥Ù¥¯¥È¥ëÃͤǤ¢¤ë¡£ -¤³¤ì¤é¤Ï TCP ¤¬Á÷¿®¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤òÄ´À°¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ -TCP ¤Ï¡¢¥·¥¹¥Æ¥à¤ÇÍøÍѤǤ­¤ë¥á¥â¥ê¤Ë±þ¤¸¤Æ¡¢Á÷¿®¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤ò -¤³¤ì¤é¤ÎÊÑ¿ô¤ÎÈϰϤǰʲ¼¤Ë¼¨¤¹¥Ç¥Õ¥©¥ë¥È¤«¤éưŪ¤ËÄ´À°¤¹¤ë¡£ +これは 3 つの整数 [min, default, max] からなるベクトル値である。 +これらは TCP が送信バッファサイズを調整するために用いられる。 +TCP は、システムで利用できるメモリに応じて、送信バッファのサイズを +これらの変数の範囲で以下に示すデフォルトから動的に調整する。 .RS .TP 10 .I min -³Æ TCP ¥½¥±¥Ã¥È¤¬ÍѤ¤¤ëÁ÷¿®¥Ð¥Ã¥Õ¥¡¤ÎºÇ¾®¥µ¥¤¥º¡£ -¥Ç¥Õ¥©¥ë¥ÈÃͤϥ·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥º¤Ç¤¢¤ë -(Linux 2.4 ¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 4K ¤Ç¤¢¤ë)¡£ -¤³¤ÎÃͤϡ¢¥á¥â¥ê°µÇ÷¥â¡¼¥É¤Ë¤ª¤¤¤Æ¤â¡¢ -¤³¤Î¥µ¥¤¥º°Ê²¼¤Î³ä¤êÅö¤Æ¤¬À®¸ù¤¹¤ë¤³¤È¤òÊݾڤ¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ -¤³¤ì¤Ï¡¢ +各 TCP ソケットが用いる送信バッファの最小サイズ。 +デフォルト値はシステムのページサイズである +(Linux 2.4 では、デフォルト値は 4K である)。 +この値は、メモリ圧迫モードにおいても、 +このサイズ以下の割り当てが成功することを保証するために用いられる。 +これは、 .B SO_SNDBUF -¤òÍѤ¤¤Æ¥½¥±¥Ã¥È¤ÎºÇÄãÁ÷¿®¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤òÀë¸À¤¹¤ëºÝ¤Ë¤ÏÍѤ¤¤é¤ì¤Ê¤¤¡£ +を用いてソケットの最低送信バッファサイズを宣言する際には用いられない。 .TP .I default -TCP ¥½¥±¥Ã¥È¤ÎÁ÷¿®¥Ð¥Ã¥Õ¥¡¤Î¥Ç¥Õ¥©¥ë¥È¥µ¥¤¥º¡£ -¤³¤ÎÃͤϡ¢¤¹¤Ù¤Æ¤Î¥×¥í¥È¥³¥ë¤ËÂФ·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡¢ -¥¸¥§¥Í¥ê¥Ã¥¯¤Ê¥°¥í¡¼¥Ð¥ë¤Î¥Ç¥Õ¥©¥ë¥È¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º +TCP ソケットの送信バッファのデフォルトサイズ。 +この値は、すべてのプロトコルに対して定義されている、 +ジェネリックなグローバルのデフォルトバッファサイズ .I /proc/sys/net/core/wmem_default -¤è¤êÍ¥À褵¤ì¤ë¡£ -¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 16K ¥Ð¥¤¥È¤Ç¤¢¤ë¡£ -.\" Linux 2.4 ¤È 2.6 ¤Ç¤ÏÀµ¤·¤¤¡£ -Â礭¤ÊÁ÷¿®¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤¬É¬Íפʾì¹ç¤Ï¡¢ -¤³¤ÎÃͤòÁý¤ä¤¹¤Ù¤­¤Ç¤¢¤ë (¤¹¤Ù¤Æ¤Î¥½¥±¥Ã¥È¤Ë±Æ¶Á¤¹¤ë)¡£ -Â礭¤Ê TCP ¥¦¥£¥ó¥É¥¦¤òÍѤ¤¤ë¤Ë¤Ï¡¢ +より優先される。 +デフォルト値は 16K バイトである。 +.\" Linux 2.4 と 2.6 では正しい。 +大きな送信バッファサイズが必要な場合は、 +この値を増やすべきである (すべてのソケットに影響する)。 +大きな TCP ウィンドウを用いるには、 .I /proc/sys/net/ipv4/tcp_window_scaling -¤ò 0 °Ê³°¤ÎÃÍ (¥Ç¥Õ¥©¥ë¥ÈÃÍ) ¤Ë¤·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を 0 以外の値 (デフォルト値) にしておかなければならない。 .TP .I max -³Æ TCP ¥½¥±¥Ã¥È¤ÇÍѤ¤¤ëÁ÷¿®¥Ð¥Ã¥Õ¥¡¤ÎºÇÂ祵¥¤¥º¡£ -¤³¤ÎÃͤè¤ê¤â +各 TCP ソケットで用いる送信バッファの最大サイズ。 +この値よりも .IR /proc/sys/net/core/wmem_max -¤¬Í¥À褵¤ì¤ë¡£ -¤³¤ì¤Ï +が優先される。 +これは .B SO_SNDBUF -¤òÍѤ¤¤Æ¥½¥±¥Ã¥È¤ÎÁ÷¿®¥Ð¥Ã¥Õ¥¡¥µ¥¤¥ºÀ©¸Â¤òÀë¸À¤¹¤ëºÝ¤Ë¤ÏÍѤ¤¤é¤ì¤Ê¤¤¡£ -¥Ç¥Õ¥©¥ë¥ÈÃͤϰʲ¼¤Î¼°¤Ç·×»»¤µ¤ì¤ë¡£ +を用いてソケットの送信バッファサイズ制限を宣言する際には用いられない。 +デフォルト値は以下の式で計算される。 max(65536, min(4MB, \fItcp_mem\fP[1]*PAGE_SIZE/128)) -(Linux 2.4 ¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 128K ¥Ð¥¤¥È¤Ç¡¢ -¥á¥â¥ê¤Î¾¯¤Ê¤¤¥·¥¹¥Æ¥à¤Ç¤Ï 64K ¤Ë¤Þ¤Ç¸º¤é¤µ¤ì¤ë¡£) +(Linux 2.4 では、デフォルト値は 128K バイトで、 +メモリの少ないシステムでは 64K にまで減らされる。) .RE .TP -.IR tcp_workaround_signed_windows " (Boolean; default: disabled; Linux 2.6.26 °Ê¹ß)" -Í­¸ú¤Ë¤¹¤ë¤È¡¢¥¦¥£¥ó¥É¥¦¥¹¥±¡¼¥ê¥ó¥°¥ª¥×¥·¥ç¥ó¤ò¼õ¿®¤·¤Ê¤¤¤Î¤Ï¡¢ -ÀܳÁê¼ê¤Î TCP ¤¬²õ¤ì¤Æ¤¤¤ë¤È¹Í¤¨¡¢¥¦¥£¥ó¥É¥¦¤òÉä¹æÉÕ¤­¤ÎÎ̤Ȥߤʤ¹¡£ -̵¸ú¤Ë¤¹¤ë¤È¡¢ÀܳÁê¼ê¤«¤é¥¦¥£¥ó¥É¥¦¥¹¥±¡¼¥ê¥ó¥°¥ª¥×¥·¥ç¥ó¤ò¼õ¿®¤·¤Ê¤«¤Ã¤¿ -¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢ÀܳÁê¼ê¤Î TCP ¤¬²õ¤ì¤Æ¤¤¤ë¤È¤Ï¤ß¤Ê¤µ¤Ê¤¤¡£ -.SS ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó -TCP ¥½¥±¥Ã¥È¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ -¥ª¥×¥·¥ç¥ó¥ì¥Ù¥ë°ú¿ô¤Ë +.IR tcp_workaround_signed_windows " (Boolean; default: disabled; Linux 2.6.26 以降)" +有効にすると、ウィンドウスケーリングオプションを受信しないのは、 +接続相手の TCP が壊れていると考え、ウィンドウを符号付きの量とみなす。 +無効にすると、接続相手からウィンドウスケーリングオプションを受信しなかった +場合であっても、接続相手の TCP が壊れているとはみなさない。 +.SS ソケットオプション +TCP ソケットのオプションは、 +オプションレベル引数に .I IPPROTO_TCP -¤ò»ØÄꤷ¤¿ +を指定した .BR setsockopt (2) -¤ÇÀßÄê¤Ç¤­¡¢ +で設定でき、 .BR getsockopt (2) -¤Ç¼èÆÀ¤Ç¤­¤ë¡£ -¤µ¤é¤Ë¡¢¤Û¤È¤ó¤É¤Î +で取得できる。 +さらに、ほとんどの .B IPPROTO_IP -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤â TCP ¥½¥±¥Ã¥È¤ËÂФ·¤ÆÍ­¸ú¤Ç¤¢¤ë¡£¾ÜºÙ¤Ï +ソケットオプションも TCP ソケットに対して有効である。詳細は .BR ip (7) -¤ò¸«¤è¡£ +を見よ。 .\" FIXME Document TCP_CONGESTION (new in 2.6.13) .TP -.BR TCP_CORK " (Linux 2.2 °Ê¹ß)" +.BR TCP_CORK " (Linux 2.2 以降)" .\" precisely: since 2.1.127 -¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢ partial ¥Õ¥ì¡¼¥à¤òÁ÷¿®¤·¤Ê¤¤¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬²ò½ü¤µ¤ì¤ë¤È¡¢ -¥­¥å¡¼¥¤¥ó¥°¤µ¤ì¤¿ partial ¥Õ¥ì¡¼¥à¤¬Á÷¤é¤ì¤ë¡£¤³¤ì¤Ï +セットされると、 partial フレームを送信しない。 +このオプションが解除されると、 +キューイングされた partial フレームが送られる。これは .BR sendfile (2) -¤ò¸Æ¤ÖÁ°¤Ë¥Ø¥Ã¥À¤òÁ°ÃÖ¤·¤¿¤ê¡¢ -¥¹¥ë¡¼¥×¥Ã¥È¤òºÇŬ²½¤·¤¿¤¤¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£ -¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¡¢ +を呼ぶ前にヘッダを前置したり、 +スループットを最適化したい場合に便利である。 +現在の実装では、 .B TCP_CORK -¤Ç½ÐÎϤòÍÞ¤¨¤ë¤³¤È¤¬¤Ç¤­¤ë»þ´Ö¤Î¾å¸Â¤Ï 200 ¥ß¥êÉäǤ¢¤ë¡£ -¤³¤Î¾å¸Â¤Ë㤹¤ë¤È¡¢¥­¥å¡¼¥¤¥ó¥°¤µ¤ì¤¿¥Ç¡¼¥¿¤Ï¼«Æ°Åª¤ËÁ÷¿®¤µ¤ì¤ë¡£ -Linux 2.5.71 °Ê¹ß¤Ë¤ª¤¤¤Æ¤Î¤ß¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò +で出力を抑えることができる時間の上限は 200 ミリ秒である。 +この上限に達すると、キューイングされたデータは自動的に送信される。 +Linux 2.5.71 以降においてのみ、このオプションを .B TCP_NODELAY -¤ÈƱ»þ¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +と同時に用いることができる。 +移植性の必要なプログラムではこのオプションを用いるべきではない。 .TP -.BR TCP_DEFER_ACCEPT " (Linux 2.4 °Ê¹ß)" +.BR TCP_DEFER_ACCEPT " (Linux 2.4 以降)" .\" Precisely: since 2.3.38 -¤³¤ì¤òÍѤ¤¤ë¤È¡¢¥ê¥¹¥Ê¤Ï¥Ç¡¼¥¿¤¬¥½¥±¥Ã¥È¤ËÅþÃ夷¤¿»þ¤Î¤ßÌܳФá¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -À°¿ôÃÍ (ÉÃ) ¤ò¤È¤ê¡¢ -TCP ¤¬Àܳ¤ò´°Î»¤·¤è¤¦¤È»î¤ß¤ë²ó¿ô¤òÀ©¸Â¤Ç¤­¤ë¡£ -°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.TP -.BR TCP_INFO " (Linux 2.4 °Ê¹ß)" -¤³¤Î¥½¥±¥Ã¥È¤Î¾ðÊó¤ò¼ý½¸¤¹¤ë¤Î¤ËÍѤ¤¤ë¡£ -¥«¡¼¥Í¥ë¤Ï +これを用いると、リスナはデータがソケットに到着した時のみ目覚めるようになる。 +整数値 (秒) をとり、 +TCP が接続を完了しようと試みる回数を制限できる。 +移植性の必要なプログラムではこのオプションを用いるべきではない。 +.TP +.BR TCP_INFO " (Linux 2.4 以降)" +このソケットの情報を収集するのに用いる。 +カーネルは .I /usr/include/linux/tcp.h -¥Õ¥¡¥¤¥ë¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë -\fIstruct tcp_info\fP ¤òÊÖ¤¹¡£ -°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +ファイルで定義されている +\fIstruct tcp_info\fP を返す。 +移植性の必要なプログラムではこのオプションを用いるべきではない。 .TP -.BR TCP_KEEPCNT " (Linux 2.4 °Ê¹ß)" +.BR TCP_KEEPCNT " (Linux 2.4 以降)" .\" Precisely: since 2.3.18 -Àܳ¤òÍî¤È¤¹Á°¤Ë TCP ¤¬»î¤ß¤ë keepalive ¥×¥í¡¼¥Ö¤ÎºÇÂç²ó¿ô¡£ -°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +接続を落とす前に TCP が試みる keepalive プローブの最大回数。 +移植性の必要なプログラムではこのオプションを用いるべきではない。 .TP -.BR TCP_KEEPIDLE " (Linux 2.4 °Ê¹ß)" +.BR TCP_KEEPIDLE " (Linux 2.4 以降)" .\" Precisely: since 2.3.18 -¤³¤Î»þ´Ö (ÉÃñ°Ì) ¤ò±Û¤¨¤ÆÀܳ¤¬¥¢¥¤¥É¥ë¾õÂÖ¤Ëα¤Þ¤Ã¤Æ¤¤¤ë¤È¡¢ -¤³¤Î¥½¥±¥Ã¥È¤Ë +この時間 (秒単位) を越えて接続がアイドル状態に留まっていると、 +このソケットに .B SO_KEEPALIVE -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -TCP ¤Ï keepalive ¥×¥í¡¼¥Ö¤òÁ÷¤ê¤Ï¤¸¤á¤ë¡£ -°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +ソケットオプションが設定されている場合、 +TCP は keepalive プローブを送りはじめる。 +移植性の必要なプログラムではこのオプションを用いるべきではない。 .TP -.BR TCP_KEEPINTVL " (Linux 2.4 °Ê¹ß)" +.BR TCP_KEEPINTVL " (Linux 2.4 以降)" .\" Precisely: since 2.3.18 -³Æ keepalive ¥×¥í¡¼¥Ö¤Î´Ö³Ö (ÉÃñ°Ì)¡£ -°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +各 keepalive プローブの間隔 (秒単位)。 +移植性の必要なプログラムではこのオプションを用いるべきではない。 .TP -.BR TCP_LINGER2 " (Linux 2.4 °Ê¹ß)" +.BR TCP_LINGER2 " (Linux 2.4 以降)" .\" Precisely: since 2.3.41 -orphan ¤µ¤ì¤¿ FIN_WAIT2 ¾õÂ֤Υ½¥±¥Ã¥È¤Î¼÷Ì¿¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤È¡¢¥·¥¹¥Æ¥àÁ´ÂΤËŬÍѤµ¤ì¤ë¥Õ¥¡¥¤¥ë +orphan された FIN_WAIT2 状態のソケットの寿命。 +このオプションを用いると、システム全体に適用されるファイル .I /proc/sys/net/ipv4/tcp_fin_timeout -¤ÎÃͤò¡¢¤³¤Î¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤Î¤ßÊѹ¹¤Ç¤­¤ë¡£ +の値を、このソケットに対してのみ変更できる。 .BR socket (7) -¥ì¥Ù¥ë¤Î¥ª¥×¥·¥ç¥ó +レベルのオプション .B SO_LINGER -¤Èº®Æ±¤·¤Ê¤¤¤³¤È¡£ -°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +と混同しないこと。 +移植性の必要なプログラムではこのオプションを用いるべきではない。 .TP .B TCP_MAXSEG .\" Present in Linux 1.0 -Á÷½Ð TCP ¥Ñ¥±¥Ã¥È¤ÎºÇÂ祻¥°¥á¥ó¥È¥µ¥¤¥º¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤òÀܳ³ÎΩ¤ÎÁ°¤ËÀßÄꤹ¤ë¤È¡¢ -½é´ü¥Ñ¥±¥Ã¥È¤Ç¾ü¤Ë¥¢¥Ê¥¦¥ó¥¹¤¹¤ë MSS ¤ÎÃͤâÊѲ½¤¹¤ë¡£ -¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î MTU ¤è¤ê¤âÂ礭¤Ê (¤¢¤ë¤¤¤ÏÂ礭¤¯¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿) -Ãͤϸú²Ì¤ò»ý¤¿¤Ê¤¤¡£ -¤Þ¤¿ TCP ¤Ï¡¢¤³¤ÎÃͤè¤ê¤âºÇ¾®¡¦ºÇÂç¤ÎÀ©¸Â¤ÎÊý¤òÍ¥À褹¤ë¡£ +送出 TCP パケットの最大セグメントサイズ。 +このオプションを接続確立の前に設定すると、 +初期パケットで他端にアナウンスする MSS の値も変化する。 +インターフェースの MTU よりも大きな (あるいは大きくなってしまった) +値は効果を持たない。 +また TCP は、この値よりも最小・最大の制限の方を優先する。 .\" FIXME .\" Document TCP_MD5SIG, added in Linux 2.6.20, .\" Needs CONFIG_TCP_MD5SIG @@ -915,88 +915,88 @@ orphan .TP .B TCP_NODELAY .\" Present in Linux 1.0 -ÀßÄꤹ¤ë¤È Nagle ¥¢¥ë¥´¥ê¥º¥à¤ò̵¸ú¤Ë¤¹¤ë¡£ -¤¹¤Ê¤ï¤Á¡¢¥Ç¡¼¥¿Î̤¬¾¯¤Ê¤¤¾ì¹ç¤Ç¤â -³Æ¥»¥°¥á¥ó¥È¤Ï²Äǽ¤Ê¸Â¤êÁ᤯Á÷¿®¤µ¤ì¤ë¡£ -ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¡¢ -Á÷¿®¤¹¤ëʬ¤À¤±Î¯¤Þ¤ë¤Þ¤Ç¥Ç¡¼¥¿¤Ï¥Ð¥Ã¥Õ¥¡¤µ¤ì¡¢ -¾®¤µ¤Ê¥Ñ¥±¥Ã¥È¤òÉÑÈˤËÁ÷¤é¤º¤Ë¤¹¤ß¡¢ -¥Í¥Ã¥È¥ï¡¼¥¯¤òÍ­¸ú¤ËÍøÍѤǤ­¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï +設定すると Nagle アルゴリズムを無効にする。 +すなわち、データ量が少ない場合でも +各セグメントは可能な限り早く送信される。 +設定されていないと、 +送信する分だけ溜まるまでデータはバッファされ、 +小さなパケットを頻繁に送らずにすみ、 +ネットワークを有効に利用できる。 +このオプションは .B TCP_CORK -¤Ë¤è¤ê¾å½ñ¤­¤µ¤ì¤ë¡£¤·¤«¤·¤Ê¤¬¤é¡¢ +により上書きされる。しかしながら、 .B TCP_CORK -¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ë¤È¡¢ -Á÷¿®ÂÔ¤Á¤Î½ÐÎϤòÌÀ¼¨Åª¤ËÁݤ­½Ð¤¹ (flush) ¤³¤È¤Ë¤Ê¤ë¡£ -.TP -.BR TCP_QUICKACK " (Linux 2.4.4 °Ê¹ß)" -ÀßÄꤵ¤ì¤Æ¤¤¤ë¤È quickack ¥â¡¼¥É¤òÍ­¸ú¤Ë¤·¡¢¥¯¥ê¥¢¤µ¤ì¤ë¤È̵¸ú¤Ë¤¹¤ë¡£ -Ä̾ï¤Î TCP Æ°ºî¤Ç¤Ï ack ¤ÏɬÍפ˱þ¤¸¤ÆÃٱ䤵¤ì¤ë¤Î¤ËÂФ·¡¢ -quickack ¥â¡¼¥É¤Ç¤Ï ack ¤Ï¤¹¤°¤ËÁ÷¿®¤µ¤ì¤ë¡£ -¤³¤Î¥Õ¥é¥°¤Ï±Ê³Ū¤Ê¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢ -quickack ¥â¡¼¥É¤«¤é/¥â¡¼¥É¤ØÀÚ¤êÂؤ¨¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤ì°Ê¹ß¤Î TCP ¥×¥í¥È¥³¥ë¤ÎÆ°ºî¤Ë¤è¤Ã¤Æ¤Ï¡¢ -ÆâÉô¤Î¥×¥í¥È¥³¥ë½èÍý¤ä¡¢ÃÙ±ä ack ¥¿¥¤¥à¥¢¥¦¥È¤ÎȯÀ¸¡¢ -¥Ç¡¼¥¿Å¾Á÷¤Ê¤É¤ÎÍ×°ø¤Ë¤è¤Ã¤Æ¡¢ -ºÆ¤Ó quickack ¤«¤é½Ð¤¿¤êÆþ¤Ã¤¿¤ê¤¹¤ë¡£ -°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.TP -.BR TCP_SYNCNT " (Linux 2.4 °Ê¹ß)" +が設定されている場合であっても、このオプションを設定すると、 +送信待ちの出力を明示的に掃き出す (flush) ことになる。 +.TP +.BR TCP_QUICKACK " (Linux 2.4.4 以降)" +設定されていると quickack モードを有効にし、クリアされると無効にする。 +通常の TCP 動作では ack は必要に応じて遅延されるのに対し、 +quickack モードでは ack はすぐに送信される。 +このフラグは永続的なものではなく、 +quickack モードから/モードへ切り替えるためのものである。 +これ以降の TCP プロトコルの動作によっては、 +内部のプロトコル処理や、遅延 ack タイムアウトの発生、 +データ転送などの要因によって、 +再び quickack から出たり入ったりする。 +移植性の必要なプログラムではこのオプションを用いるべきではない。 +.TP +.BR TCP_SYNCNT " (Linux 2.4 以降)" .\" Precisely: since 2.3.18 -Àܳ¤Î»î¹Ô¤òÃæ»ß¤µ¤»¤ëÁ°¤Ë TCP ¤¬Á÷¤ë SYN ºÆÁ÷¿ô¤òÀßÄꤹ¤ë¡£ -¤³¤ì¤Ï 255 ¤è¤êÂ礭¤¯¤Ï¤Ç¤­¤Ê¤¤¡£ -°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +接続の試行を中止させる前に TCP が送る SYN 再送数を設定する。 +これは 255 より大きくはできない。 +移植性の必要なプログラムではこのオプションを用いるべきではない。 .TP -.BR TCP_WINDOW_CLAMP " (Linux 2.4 °Ê¹ß)" +.BR TCP_WINDOW_CLAMP " (Linux 2.4 以降)" .\" Precisely: since 2.3.41 -¹­Ê󤹤륦¥£¥ó¥É¥¦¤Î¥µ¥¤¥º¤ò¤³¤ÎÃͤ˸ÇÄꤹ¤ë¡£ -¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤ÆºÇ¾®¥µ¥¤¥º¤Ï SOCK_MIN_RCVBUF/2 ¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï°Ü¿¢À­¤ÎɬÍפʥ³¡¼¥É¤Ç¤ÏÍѤ¤¤ë¤Ù¤­¤Ç¤Ê¤¤¡£ -.SS ¥½¥±¥Ã¥È API -TCP ¤ÏÂÓ°è³°¥Ç¡¼¥¿ (out-of-band data) ¤ò¸ÂÄêŪ¤Ë¥µ¥Ý¡¼¥È¤·¤Æ¤ª¤ê¡¢ -(1 ¥Ð¥¤¥È¤Î) ¶ÛµÞ¥Ç¡¼¥¿¤È¤¤¤¦·Á¤Ç¤¢¤ë¡£ -¤Ä¤Þ¤ê Linux ¤Ë¤ª¤¤¤Æ¤Ï¡¢ -ÀܳÀ褬 (¿·¤·¤¤¤ä¤êÊý¤Î) ÂÓ°è³°¥Ç¡¼¥¿¤òÁ÷¤Ã¤Æ¤­¤¿¾ì¹ç¡¢ -(¸Å¤¤¤ä¤êÊý¤Î) -¶ÛµÞ¥Ç¡¼¥¿¤ÏÄ̾ï¤Î¥Ç¡¼¥¿¤È¤·¤Æ¥¹¥È¥ê¡¼¥à¤ËÁÞÆþ¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë (¤³¤ì¤Ï +広報するウィンドウのサイズをこの値に固定する。 +カーネルによって最小サイズは SOCK_MIN_RCVBUF/2 に制限されている。 +このオプションは移植性の必要なコードでは用いるべきでない。 +.SS ソケット API +TCP は帯域外データ (out-of-band data) を限定的にサポートしており、 +(1 バイトの) 緊急データという形である。 +つまり Linux においては、 +接続先が (新しいやり方の) 帯域外データを送ってきた場合、 +(古いやり方の) +緊急データは通常のデータとしてストリームに挿入されることになる (これは .B SO_OOBINLINE -¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ç¤âƱÍͤǤ¢¤ë)¡£ -¤³¤ì¤Ï BSD ¥Ù¡¼¥¹¤Î¥¹¥¿¥Ã¥¯¤È¤Ï°Û¤Ê¤ë¡£ +がセットされている場合でも同様である)。 +これは BSD ベースのスタックとは異なる。 .PP -Linux ¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï urgent ¥Ý¥¤¥ó¥¿¥Õ¥£¡¼¥ë¥É¤Î²ò¼á¤Ë -BSD ¸ß´¹¤ÎÊýË¡¤òÍѤ¤¤ë¡£¤³¤ì¤Ï RFC\ 1122 ¤ËÈ¿¤·¤Æ¤¤¤ë¤¬¡¢ -¾¤Î¥¹¥¿¥Ã¥¯¤ÈƱ»þ¤ËÆ°ºî¤µ¤»¤ë¤Ë¤Ï¤ä¤à¤òÆÀ¤Ê¤¤¡£¤³¤ì¤Ï +Linux は、デフォルトでは urgent ポインタフィールドの解釈に +BSD 互換の方法を用いる。これは RFC\ 1122 に反しているが、 +他のスタックと同時に動作させるにはやむを得ない。これは .I /proc/sys/net/ipv4/tcp_stdurg -¤Ë¤è¤Ã¤ÆÊѹ¹¤Ç¤­¤ë¡£ +によって変更できる。 .BR recv (2) -¤Î +の .B MSG_PEEK -¥Õ¥é¥°¤ò»È¤¦¤È¡¢ÂÓ°è³°¥Ç¡¼¥¿¤òÇÁ¤­¸«¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +フラグを使うと、帯域外データを覗き見することができる。 -Linux 2.4 °Ê¹ß¤Ç¤Ï¡¢ +Linux 2.4 以降では、 .BR recv (2) -(¤ä +(や .BR recvmsg (2)) -¤Î +の .I flags -°ú¤­¿ô¤Ë +引き数に .B MSG_TRUNC -¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È¡¢¼õ¿®¥Ç¡¼¥¿¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤«¤éÅϤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡ -¤Ë¥³¥Ô¡¼¤µ¤ì¤ÆÊÖ¤µ¤ì¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ÇÑ´þ¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -Linux 2.4.4 °Ê¹ß¤Ç¤Ï¡¢ +を使うことができる。 +このフラグを指定すると、受信データは、呼び出し元から渡されたバッファ +にコピーされて返されるのではなく、廃棄されるようになる。 +Linux 2.4.4 以降では、 .B MSG_PEEK -¤ò¡¢ÂÓ°è³°¥Ç¡¼¥¿¤ò¼õ¿®¤¹¤ë¤¿¤á¤Î +を、帯域外データを受信するための .B MSG_OOB -¤ÈÁȤ߹ç¤ï¤»¤Æ»È¤Ã¤¿¾ì¹ç¤Ë¤â¡¢¤³¤ì¤ÈƱ¤¸¸ú²Ì¤ò»ý¤Ä¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ +と組み合わせて使った場合にも、これと同じ効果を持つようになっている。 .SS ioctl -°Ê²¼¤Î +以下の .BR ioctl (2) -¸Æ¤Ó½Ð¤·¤Ï +呼び出しは .I value -¤Ë¾ðÊó¤òÆþ¤ì¤ÆÊÖ¤¹¡£ -Àµ¤·¤¤½ñ¼°¤Ï°Ê²¼¤ÎÄ̤ꡣ +に情報を入れて返す。 +正しい書式は以下の通り。 .PP .RS .nf @@ -1006,105 +1006,105 @@ Linux 2.4.4 .RE .PP .I ioctl_type -¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«°ì¤Ä¤Ç¤¢¤ë: +は以下のいずれか一つである: .TP .B SIOCINQ -¼õ¿®¥Ð¥Ã¥Õ¥¡¤Î¥­¥å¡¼¤Ë¤¢¤ë¡¢¤Þ¤ÀÆɤó¤Ç¤¤¤Ê¤¤¥Ç¡¼¥¿¤ÎÎ̤òÊÖ¤¹¡£ -¥½¥±¥Ã¥È¤Ï LISTEN ¾õÂ֤ˤ¢¤Ã¤Æ¤Ï¤Ê¤é¤º¡¢ -¤µ¤â¤Ê¤¤¤È¥¨¥é¡¼ +受信バッファのキューにある、まだ読んでいないデータの量を返す。 +ソケットは LISTEN 状態にあってはならず、 +さもないとエラー .RB ( EINVAL ) -¤¬Ê֤롣 +が返る。 .TP .B SIOCATMARK -¼õ¿®¥Ç¡¼¥¿¥¹¥È¥ê¡¼¥à¤¬¶ÛµÞ¥Þ¡¼¥¯¤Î°ÌÃ֤Ǥ¢¤ì¤Ð¡¢¿¿¤òÊÖ¤¹ (¤Ä¤Þ¤ê +受信データストリームが緊急マークの位置であれば、真を返す (つまり .I value -¤¬ 0 °Ê³°)¡£ +が 0 以外)。 .sp .B SO_OOBINLINE -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Æ¡¢ +ソケットオプションが設定されていて、 .B SIOCATMARK -¤¬¿¿¤òÊÖ¤·¤¿¾ì¹ç¡¢¼¡¤Î¥½¥±¥Ã¥È¤«¤é¤ÎÆɤ߹þ¤ß¤Ç¤Ï¶ÛµÞ¥Ç¡¼¥¿¤¬ -ÊÖ¤µ¤ì¤ë¡£ +が真を返した場合、次のソケットからの読み込みでは緊急データが +返される。 .B SO_OOBINLINE -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬ÀßÄꤵ¤ì¤Æ¤ª¤é¤º¡¢ +ソケットオプションが設定されておらず、 .B SIOCATMARK -¤¬¿¿¤òÊÖ¤·¤¿¾ì¹ç¡¢¼¡¤Î¥½¥±¥Ã¥È¤«¤é¤ÎÆɤ߹þ¤ß¤Ç¤Ï¶ÛµÞ¥Ç¡¼¥¿¤Ë -³¤¯¥Ç¡¼¥¿¤¬ÊÖ¤µ¤ì¤ë (¼ÂºÝ¤Ë¶ÛµÞ¥Ç¡¼¥¿¤òÆɤ߹þ¤à¤Ë¤Ï +が真を返した場合、次のソケットからの読み込みでは緊急データに +続くデータが返される (実際に緊急データを読み込むには .B recv(MSG_OOB) -¤È¥Õ¥é¥°¤ò¤Ä¤±¤ëɬÍפ¬¤¢¤ë)¡£ +とフラグをつける必要がある)。 -¥Ç¡¼¥¿¤Î°ì²ó¤ÎÆɤ߹þ¤ß¤Ç¤Ï¶ÛµÞ¥Þ¡¼¥¯¤ò¸Ù¤¬¤Ã¤Æ¤ÎÆɤ߹þ¤ß¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¶ÛµÞ¥Ç¡¼¥¿¤Î¸ºß¤ò +データの一回の読み込みでは緊急マークを跨がっての読み込みは行われない。 +アプリケーションが緊急データの存在を .RI ( exceptfds -°ú¤­¿ô¤ò»È¤Ã¤Æ) +引き数を使って) .BR select (2) -·Ðͳ¤Þ¤¿¤Ï +経由または .B SIGURG -¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤òÄ̤¸¤ÆÃΤ餵¤ì¤¿¾ì¹ç¡¢ +シグナルの配送を通じて知らされた場合、 .B SIOCATMARK -¤Î¥Á¥§¥Ã¥¯¤ÈÆɤ߹þ¤ß (²¿¥Ð¥¤¥ÈÆɤ߹þ¤ßÍ×µá¤ò¤·¤Æ¤â¤è¤¤) ¤ò +のチェックと読み込み (何バイト読み込み要求をしてもよい) を .B SIOCATMARK -¤¬µ¶¤òÊÖ¤µ¤Ê¤¯¤Ê¤ë¤Þ¤Ç·«¤êÊÖ¤·¹Ô¤¦¤³¤È¤Ç¡¢¶ÛµÞ¥Þ¡¼¥¯¤Î°ÌÃÖ¤Þ¤Ç -Æɤ߿ʤá¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +が偽を返さなくなるまで繰り返し行うことで、緊急マークの位置まで +読み進めることができる。 .TP .B SIOCOUTQ -¥½¥±¥Ã¥È¤ÎÁ÷¿®¥­¥å¡¼¤Ë»Ä¤Ã¤Æ¤¤¤ë̤Á÷¿®¥Ç¡¼¥¿¤ÎÎ̤òÊÖ¤¹¡£ -¥½¥±¥Ã¥È¤Ï LISTEN ¾õÂ֤ˤ¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -LISTEN ¾õÂ֤ξì¹ç¤Ë¤Ï¥¨¥é¡¼ +ソケットの送信キューに残っている未送信データの量を返す。 +ソケットは LISTEN 状態にあってはならない。 +LISTEN 状態の場合にはエラー .RB ( EINVAL ) -¤È¤Ê¤ë¡£ -.SS ¥¨¥é¡¼½èÍý -¥Í¥Ã¥È¥ï¡¼¥¯¥¨¥é¡¼¤¬µ¯¤³¤ë¤È¡¢ TCP ¤Ï¥Ñ¥±¥Ã¥È¤ÎºÆÁ÷¤ò»î¤ß¤ë¡£ -²¿²ó¤«¤ä¤Ã¤Æ¤âÀ®¸ù¤·¤Ê¤±¤ì¤Ð¡¢¤³¤ÎÀܳ¤ËÂФ·¤Æ +となる。 +.SS エラー処理 +ネットワークエラーが起こると、 TCP はパケットの再送を試みる。 +何回かやっても成功しなければ、この接続に対して .B ETIMEOUT -¥¨¥é¡¼¤«ºÇ¸å¤Ë¼õ¿®¤·¤¿¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ +エラーか最後に受信したエラーが返される。 .PP -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤è¤Ã¤Æ¤Ï¡¢¤â¤Ã¤ÈÁ᤯¥¨¥é¡¼¤òÃΤ餻¤Æ¤Û¤·¤¤¾ì¹ç¤¬¤¢¤ë¡£ -¤³¤ì¤Ë¤Ï +アプリケーションによっては、もっと早くエラーを知らせてほしい場合がある。 +これには .B IPPROTO_IP -¥ì¥Ù¥ë¤Î +レベルの .B IP_RECVERR -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤ÈÎɤ¤¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢ -ÅþÃ夷¤¿¥¨¥é¡¼¤Ï¤¹¤Ù¤Æ¤¿¤À¤Á¤Ë¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥à¤ËÅϤµ¤ì¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¿µ½Å¤ËÍѤ¤¤ë¤³¤È \(em ¥ë¡¼¥Æ¥£¥ó¥°¤ÎÊѹ¹¤Ê¤É¡¢ -Ä̾濫¤ê¤¦¤ë¥Í¥Ã¥È¥ï¡¼¥¯¾õÂÖ¤ËÂФ·¤Æ TCP ¤ò¤è¤êÀȼå¤Ë¤·¤Æ¤·¤Þ¤¦¡£ -.SH ¥¨¥é¡¼ +ソケットオプションを用いると良い。このオプションが有効になっていると、 +到着したエラーはすべてただちにユーザープログラムに渡される。 +このオプションは慎重に用いること \(em ルーティングの変更など、 +通常ありうるネットワーク状態に対して TCP をより脆弱にしてしまう。 +.SH エラー .TP .B EAFNOTSUPPORT .I sin_family -¤ËÅϤµ¤ì¤¿¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Î¥¿¥¤¥×¤¬ +に渡されたソケットアドレスのタイプが .B AF_INET -¤Ç¤Ï¤Ê¤«¤Ã¤¿¡£ +ではなかった。 .TP .B EPIPE -ÀܳÀ褬ͽ´ü¤·¤Ê¤«¤Ã¤¿¤«¤¿¤Á¤Ç¥½¥±¥Ã¥È¤ò¥¯¥í¡¼¥º¤·¤¿¡£ -¤Þ¤¿¤Ï¥·¥ã¥Ã¥È¥À¥¦¥ó¤µ¤ì¤¿¥½¥±¥Ã¥È¤ËÆɤ߹þ¤ß¤¬¼Â¹Ô¤µ¤ì¤¿¡£ +接続先が予期しなかったかたちでソケットをクローズした。 +またはシャットダウンされたソケットに読み込みが実行された。 .TP .B ETIMEDOUT -ÀܳÀ褬¡¢²¿²ó¤«¥Ç¡¼¥¿¤òºÆÁ÷¤·¤Æ¤âÈ¿±þ¤·¤Ê¤¤¡£ +接続先が、何回かデータを再送しても反応しない。 .PP .BR ip (7) -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤ä¡¢¥¸¥§¥Í¥ê¥Ã¥¯¤Ê¥½¥±¥Ã¥ÈÁؤˤª¤±¤ë¥¨¥é¡¼¤â -TCP ¤ËÊÖ¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -Explicit Congestion Notification¡¢zero-copy ¤Î -.BR sendfile (2)¡¢ -ʤÓÂؤ¨¤Î¥µ¥Ý¡¼¥È¡¢SACK ³ÈÄ¥ (DSACK) ¤Ê¤É¤Î¥µ¥Ý¡¼¥È¤Ï -2.4 ¤ÇƳÆþ¤µ¤ì¤¿¡£ -¥Õ¥©¥ï¡¼¥É³Îǧ (FACK)¡¢TIME_WAIT ¥ê¥µ¥¤¥¯¥ë¡¢Àܳ¤´¤È¤Î keepalive -¤ËÂФ¹¤ë¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤Ï 2.3 ¤ÇƳÆþ¤µ¤ì¤¿¡£ -.SH ¥Ð¥° -¤Þ¤ÀÀâÌÀ¤µ¤ì¤Æ¤¤¤Ê¤¤¥¨¥é¡¼¤¬¤¢¤ë¡£ +で定義されているエラーや、ジェネリックなソケット層におけるエラーも +TCP に返されることがある。 +.SH バージョン +Explicit Congestion Notification、zero-copy の +.BR sendfile (2)、 +並び替えのサポート、SACK 拡張 (DSACK) などのサポートは +2.4 で導入された。 +フォワード確認 (FACK)、TIME_WAIT リサイクル、接続ごとの keepalive +に対するソケットオプションは 2.3 で導入された。 +.SH バグ +まだ説明されていないエラーがある。 .br -IPv6 ¤Ë´Ø¤¹¤ëµ­½Ò¤¬¤Ê¤¤¡£ +IPv6 に関する記述がない。 .\" Only a single Linux kernel version is described .\" Info for 2.2 was lost. Should be added again, .\" or put into a separate page. -.\" .SH Ãø¼Ô -.\" ¤³¤Î man ¥Ú¡¼¥¸¤ÏºÇ½é Andi Kleen ¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤¿¡£ -.\" Alexey Kuznetsov ¤Îʸ½ñ Documentation/networking/ip-sysctl.txt -.\" ¤Î¾ðÊó¤ò¸µ¤Ë¡¢Nivedita Singhvi ¤¬ 2.4 ¸þ¤±¤Ë¹¹¿·¤·¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +.\" .SH 著者 +.\" この man ページは最初 Andi Kleen によって書かれた。 +.\" Alexey Kuznetsov の文書 Documentation/networking/ip-sysctl.txt +.\" の情報を元に、Nivedita Singhvi が 2.4 向けに更新した。 +.SH 関連項目 .BR accept (2), .BR bind (2), .BR connect (2), @@ -1117,16 +1117,16 @@ IPv6 .BR ip (7), .BR socket (7) .sp -RFC\ 793: TCP ¤Î»ÅÍÍ¡£ +RFC\ 793: TCP の仕様。 .br -RFC\ 1122: TCP ¤ÎÍ×µá»ö¹à¤È Nagle ¥¢¥ë¥´¥ê¥º¥à¤Îµ­½Ò¡£ +RFC\ 1122: TCP の要求事項と Nagle アルゴリズムの記述。 .br -RFC\ 1323: TCP ¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×¡¦¥¦¥£¥ó¥É¥¦¥¹¥±¡¼¥ê¥ó¥°³Æ¥ª¥×¥·¥ç¥ó¡£ +RFC\ 1323: TCP のタイムスタンプ・ウィンドウスケーリング各オプション。 .br -RFC\ 1644: TIME_WAIT assassination hazard ¤Ë´Ø¤¹¤ëµ­½Ò¡£ +RFC\ 1644: TIME_WAIT assassination hazard に関する記述。 .br -RFC\ 3168: Explicit Congestion Notification ¤Ë´Ø¤¹¤ëµ­½Ò¡£ +RFC\ 3168: Explicit Congestion Notification に関する記述。 .br -RFC\ 2581: TCP íÕíÔÀ©¸æ¥¢¥ë¥´¥ê¥º¥à¡£ +RFC\ 2581: TCP 輻輳制御アルゴリズム。 .br -RFC\ 2018 ¤È RFC\ 2883: SACK ¤È¤½¤Î³ÈÄ¥¡£ +RFC\ 2018 と RFC\ 2883: SACK とその拡張。 diff --git a/release/man7/termio.7 b/release/man7/termio.7 index 6e331d09..6373005b 100644 --- a/release/man7/termio.7 +++ b/release/man7/termio.7 @@ -27,39 +27,39 @@ .\" Translated 2007-05-04, Akihiro MOTOKI , LDP v2.44 .\" .TH TERMIO 7 2006-12-28 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -termio \- System V üËö¥É¥é¥¤¥Ð¥¤¥ó¥¿¥Õ¥§¡¼¥¹ -.SH ÀâÌÀ +.SH 名前 +termio \- System V 端末ドライバインタフェース +.SH 説明 .B termio -¤Ï¡¢¸Å¤¤ System V üËö¥É¥é¥¤¥Ð¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î̾Á°¤Ç¤¢¤ë¡£ -¤³¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¡¢ -üËöÀßÄê¤òÊÝ»ý¤¹¤ë¤¿¤á¤Î +は、古い System V 端末ドライバインタフェースの名前である。 +このインタフェースは、 +端末設定を保持するための .I termio -¹½Â¤ÂΡ¢¤ª¤è¤ÓüËö°À­¤ò¼èÆÀ¡¦Êѹ¹¤¹¤ë¤¿¤á¤Î¼ï¡¹¤Î +構造体、および端末属性を取得・変更するための種々の .BR ioctl (2) -Áàºî¤òÄêµÁ¤·¤Æ¤¤¤¿¡£ +操作を定義していた。 .B termio -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¸½ºß¤Ç¤Ï»þÂåÃÙ¤ì¤Ç¤¢¤ë¡£ -POSIX.1-1990 ¤Ç¡¢¤³¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î½¤ÀµÈǤ¬ +インタフェースは現在では時代遅れである。 +POSIX.1-1990 で、このインタフェースの修正版が .B termios -¤È¤¤¤¦Ì¾Á°¤Çɸ½à²½¤µ¤ì¤¿¡£ -POSIX.1 ¤Î¥Ç¡¼¥¿¹½Â¤¤Ï System V ÈǤȾ¯¤·°ã¤¤¤¬¤¢¤ë¡£ -¤Þ¤¿¡¢POSIX.1 ¤Ï System V ÈǤǸºß¤·¤¿¼ï¡¹¤Î +という名前で標準化された。 +POSIX.1 のデータ構造は System V 版と少し違いがある。 +また、POSIX.1 は System V 版で存在した種々の .BR ioctl (2) -Áàºî¤òÃÖ¤­´¹¤¨¤ë´Ø¿ô·²¤òÄêµÁ¤·¤¿ -(¤³¤Î¤è¤¦¤Ë¤Ê¤Ã¤¿¤Î¤Ï¡¢ +操作を置き換える関数群を定義した +(このようになったのは、 .BR ioctl (2) -¤¬É¸½à²½¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¤³¤È¤È¡¢ +が標準化されていなかったことと、 .BR ioctl (2) -¤ÎÂè»°°ú¤­¿ô¤¬²ÄÊÑĹ°ú¤­¿ô¤Ç·¿¥Á¥§¥Ã¥¯¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¤Î¤¬Íýͳ¤Ç¤¢¤ë)¡£ +の第三引き数が可変長引き数で型チェックができなかったのが理由である)。 -"termio" ¤È¤¤¤¦ man page ¤òõ¤·¤Æ¤¤¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢ -õ¤·¤Æ¤¤¤ë¾ðÊó¤Î¤Û¤È¤ó¤É¤Ï +"termio" という man page を探しているのであれば、 +探している情報のほとんどは .BR termios (3) -¤« +か .BR tty_ioctl (4) -¤Î¤É¤Á¤é¤«¤Ç¸«¤Ä¤«¤ë¤³¤È¤À¤í¤¦¡£ -.SH ´ØÏ¢¹àÌÜ +のどちらかで見つかることだろう。 +.SH 関連項目 .BR termios (3), .BR tty_ioctl (4) diff --git a/release/man7/time.7 b/release/man7/time.7 index f9714138..eb52a29e 100644 --- a/release/man7/time.7 +++ b/release/man7/time.7 @@ -30,143 +30,143 @@ .\" Updated 2008-08-10, Akihiro MOTOKI , LDP v3.05 .\" .TH TIME 7 2010-02-25 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -time \- »þ´Ö¤È¥¿¥¤¥Þ¤Î³µÍ× -.SH ÀâÌÀ -.SS "¼Â»þ´Ö (real time) ¤È¥×¥í¥»¥¹»þ´Ö" -\fI¼Â»þ´Ö\fR¤Ï¡¢ÆÃÄê¤Î»þÅÀ¤«¤é·×¤Ã¤¿»þ´Ö¤ÈÄêµÁ¤µ¤ì¤ë¡£ -ÆÃÄê¤Î»þÅÀ¤È¤Ï¡¢²áµî¤Îɸ½àŪ¤Ê»þÅÀ -(²¼µ­¤Îµª¸µ (Epoch) ¤È¥«¥ì¥ó¥À»þ¹ï¤ÎÀâÌÀ¤ò»²¾È) ¤ä¡¢ -¥×¥í¥»¥¹¤Î°ìÀ¸¤Ë¤ª¤±¤ë²¿¤é¤«¤Î»þÅÀ (Î㤨¤Ð¡¢³«»Ï»þ) ¤Ç¤¢¤ë -.RI ( "·Ð²á»þ´Ö" )¡£ +.SH 名前 +time \- 時間とタイマの概要 +.SH 説明 +.SS "実時間 (real time) とプロセス時間" +\fI実時間\fRは、特定の時点から計った時間と定義される。 +特定の時点とは、過去の標準的な時点 +(下記の紀元 (Epoch) とカレンダ時刻の説明を参照) や、 +プロセスの一生における何らかの時点 (例えば、開始時) である +.RI ( "経過時間" )。 -\fI¥×¥í¥»¥¹»þ´Ö\fR¤Ï¡¢¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ»È¤ï¤ì¤¿Áí CPU »þ´Ö¤ÈÄêµÁ¤µ¤ì¤ë¡£ -¿¤¯¤Î¾ì¹ç¡¢\fI¥æ¡¼¥¶\fR»þ´Ö¤È\fI¥·¥¹¥Æ¥à\fR»þ´Ö¤Ëʬ¤±¤é¤ì¤ë¡£ -¥æ¡¼¥¶ CPU »þ´Ö¤Ï¡¢¥³¡¼¥É¤ò¥æ¡¼¥¶¥â¡¼¥É¤Ç¼Â¹Ô¤¹¤ë¤Î¤Ë»È¤Ã¤¿»þ´Ö¤Ç¤¢¤ë¡£ -¥·¥¹¥Æ¥à CPU »þ´Ö¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤Î¤¿¤á¤Ë -¥«¡¼¥Í¥ë¤¬¥·¥¹¥Æ¥à¥â¡¼¥É¤Ç¼Â¹Ô¤¹¤ë¤Î¤Ë»È¤Ã¤¿»þ´Ö¤Ç¤¢¤ë -(Î㤨¤Ð¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¼Â¹Ô¤¹¤ë¤Î¤Ë»È¤Ã¤¿»þ´Ö)¡£ +\fIプロセス時間\fRは、プロセスによって使われた総 CPU 時間と定義される。 +多くの場合、\fIユーザ\fR時間と\fIシステム\fR時間に分けられる。 +ユーザ CPU 時間は、コードをユーザモードで実行するのに使った時間である。 +システム CPU 時間は、そのプロセスのために +カーネルがシステムモードで実行するのに使った時間である +(例えば、システムコールを実行するのに使った時間)。 .BR time (1) -¥³¥Þ¥ó¥É¤Ï¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤ËÈñ¤µ¤ì¤¿Áí CPU »þ´Ö¤ò·×¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£ -¥×¥í¥°¥é¥à¤Ï¡¢¼«¿È¤¬Èñ¤·¤¿Áí CPU »þ´Ö¤ò +コマンドはプログラムの実行に費された総 CPU 時間を計るのに使用される。 +プログラムは、自身が費した総 CPU 時間を .BR times (2), .BR getrusage (2), .BR clock (3) -¤ò»È¤Ã¤Æ·×¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.SS ¥Ï¡¼¥É¥¦¥§¥¢¥¯¥í¥Ã¥¯ -¿¤¯¤Î¥³¥ó¥Ô¥å¡¼¥¿¤¬ (ÅÅÃӤǶîÆ°¤µ¤ì¤ë) ¥Ï¡¼¥É¥¦¥§¥¢¥¯¥í¥Ã¥¯¤ò»ý¤Ã¤Æ¤¤¤ë¡£ -¥«¡¼¥Í¥ë¤Ïµ¯Æ°»þ¤Ë¥½¥Õ¥È¥¦¥§¥¢¥¯¥í¥Ã¥¯¤ò½é´ü²½¤¹¤ë¤¿¤á¤Ë -¥Ï¡¼¥É¥¦¥§¥¢¥¯¥í¥Ã¥¯¤òÆɤ߹þ¤à¡£ -¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï¡¢ +を使って計ることができる。 +.SS ハードウェアクロック +多くのコンピュータが (電池で駆動される) ハードウェアクロックを持っている。 +カーネルは起動時にソフトウェアクロックを初期化するために +ハードウェアクロックを読み込む。 +より詳しい情報は、 .BR rtc (4) -¤È +と .BR hwclock (8) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SS "¥½¥Õ¥È¥¦¥§¥¢¥¯¥í¥Ã¥¯, HZ, Jiffy" -¥¿¥¤¥à¥¢¥¦¥È¤òÀßÄꤷ¤¿¤ê (Î㤨¤Ð +を参照すること。 +.SS "ソフトウェアクロック, HZ, Jiffy" +タイムアウトを設定したり (例えば .BR select (2), -.BR sigtimedwait (2))¡¢ -.\" semtimedop(), mq_timedwait(), io_getevents(), poll() ¤ÏƱ¤¸ futex ¤Ç¤¢¤ê¡¢ -.\" ¤·¤¿¤¬¤Ã¤Ã¤Æ sem_timedwait() ¤Ï¹âÀºÅÙ¥¿¥¤¥Þ¤ò»ÈÍѤ·¤Æ¤¤¤ë¤è¤¦¤Ç¤¢¤ë¡£ -CPU »þ´Ö¤ò·×¬¤·¤¿¤ê (Î㤨¤Ð -.BR getrusage (2)) ¤¹¤ëÍÍ¡¹¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÀºÅÙ¤Ï -.I ¥½¥Õ¥È¥¦¥§¥¢¥¯¥í¥Ã¥¯ -¤Îʬ²òǽ (resolution) ¤ËÀ©¸Â¤µ¤ì¤ë¡£ -¥½¥Õ¥È¥¦¥§¥¢¥¯¥í¥Ã¥¯¤È¤Ï¡¢¥«¡¼¥Í¥ë¤¬´ÉÍý¤¹¤ë +.BR sigtimedwait (2))、 +.\" semtimedop(), mq_timedwait(), io_getevents(), poll() は同じ futex であり、 +.\" したがっって sem_timedwait() は高精度タイマを使用しているようである。 +CPU 時間を計測したり (例えば +.BR getrusage (2)) する様々なシステムコールの精度は +.I ソフトウェアクロック +の分解能 (resolution) に制限される。 +ソフトウェアクロックとは、カーネルが管理する .I jiffy -ñ°Ì¤Ç»þ´Ö¤ò·×¬¤¹¤ë¥¯¥í¥Ã¥¯¤Î¤³¤È¤Ç¤¢¤ë¡£ -jiffy ¤ÎÂ礭¤µ¤Ï¥«¡¼¥Í¥ëÄê¿ô +単位で時間を計測するクロックのことである。 +jiffy の大きさはカーネル定数 .I HZ -¤ÎÃͤǷèÄꤵ¤ì¤ë¡£ +の値で決定される。 .I HZ -¤ÎÃͤϥ«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤È¥Ï¡¼¥É¥¦¥§¥¢¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç°Û¤Ê¤ë¡£ -i386 ¤Î¾ì¹ç¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë: -2.4.x ¤È¤½¤ì¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢HZ ¤Ï 100 ¤Ç¤¢¤Ã¤¿¤Î¤Ç¡¢ -jiffy ¤ÎÃÍ¤Ï 0.01 ÉäˤʤäƤ¤¤¿¡£ -2.6.0 °Ê¹ß¤Ç¤Ï¡¢HZ ¤Ï 1000 ¤ËÁý¤ä¤µ¤ì¤¿¤Î¤Ç¡¢jiffy ¤ÎÃÍ¤Ï 0.001 ÉäǤ¢¤ë¡£ -¥«¡¼¥Í¥ë 2.6.13 °Ê¹ß¤Ç¤Ï¡¢HZ ¤ÎÃͤϥ«¡¼¥Í¥ëÀßÄê¥Ñ¥é¥á¡¼¥¿¤Ë¤Ê¤ê¡¢ -100, 250 (¥Ç¥Õ¥©¥ë¥È), 1000 ¤È¤¤¤¦ÃͤˤǤ­¤ë¡£ -¤½¤ì¤¾¤ì jiffy ¤ÎÃÍ¤Ï 0.01, 0.004, 0.001 Éäˤʤ롣 -¥«¡¼¥Í¥ë 2.6.20 °Ê¹ß¤Ç¤Ï¡¢300 ¤âÍøÍѤǤ­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -300 ¤Ï°ìÈÌŪ¤Ê±ÇÁü¥Õ¥ì¡¼¥à¥ì¡¼¥È¤Î¸øÇÜ¿ô¤Ç¤¢¤ë (PAL, 25HZ; NTSC, 30HZ)¡£ +の値はカーネルのバージョンとハードウェアプラットフォームで異なる。 +i386 の場合は以下の通りである: +2.4.x とそれより前のカーネルでは、HZ は 100 であったので、 +jiffy の値は 0.01 秒になっていた。 +2.6.0 以降では、HZ は 1000 に増やされたので、jiffy の値は 0.001 秒である。 +カーネル 2.6.13 以降では、HZ の値はカーネル設定パラメータになり、 +100, 250 (デフォルト), 1000 という値にできる。 +それぞれ jiffy の値は 0.01, 0.004, 0.001 秒になる。 +カーネル 2.6.20 以降では、300 も利用できるようになっている。 +300 は一般的な映像フレームレートの公倍数である (PAL, 25HZ; NTSC, 30HZ)。 .BR times (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÆüì¤Ê¥±¡¼¥¹¤Ç¤¢¤ê¡¢ -¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ëÄê¿ô +システムコールは特殊なケースであり、 +このシステムコールはカーネル定数 .I USER_HZ -¤ÇÄêµÁ¤µ¤ì¤¿Î³Å٤ǻþ´Ö¤òÊó¹ð¤¹¤ë¡£ -¥æ¡¼¥¶¶õ´Ö¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï +で定義された粒度で時間を報告する。 +ユーザ空間のアプリケーションは .I sysconf(_SC_CLK_TCK) -¤ò»È¤Ã¤Æ¤³¤ÎÄê¿ô¤ÎÃͤòÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£ +を使ってこの定数の値を知ることができる。 .\" glibc gets this info with a little help from the ELF loader; .\" see glibc elf/dl-support.c and kernel fs/binfmt_elf.c. .\" -.SS "¹âÀºÅÙ¥¿¥¤¥Þ" -Linux 2.6.21 ¤è¤êÁ°¤Ç¤Ï¡¢¥¿¥¤¥Þ¤ä¥¹¥ê¡¼¥×´ØÏ¢¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÀºÅÙ¤â -jiffy ¤Î¥µ¥¤¥º¤Ë¤è¤êÀ©¸Â¤µ¤ì¤Æ¤¤¤¿¡£ +.SS "高精度タイマ" +Linux 2.6.21 より前では、タイマやスリープ関連のシステムコールの精度も +jiffy のサイズにより制限されていた。 -Linux 2.6.21 °Ê¹ß¤Ç¤Ï¡¢Linux ¤Ï¹âÀºÅÙ¥¿¥¤¥Þ (high-resolution timers; HRTs) -¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤ª¤ê¡¢ +Linux 2.6.21 以降では、Linux は高精度タイマ (high-resolution timers; HRTs) +をサポートしており、 .B CONFIG_HIGH_RES_TIMERS -¤ÇÀ©¸æ¤Ç¤­¤ë¡£ -¹âÀºÅÙ¥¿¥¤¥Þ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥¿¥¤¥Þ¤È¥¹¥ê¡¼¥×´ØÏ¢¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë -¤ÎÀºÅ٤Ϥâ¤Ï¤ä jiffy ¤ËÀ©Ì󤵤ì¤ë¤³¤È¤Ï¤Ê¤¯¡¢ -¥Ï¡¼¥É¥¦¥§¥¢¤¬µö¤¹¸Â¤ê¤ÎÀºÅ٤Ȥʤë -(ºÇ¶á¤Î¥Ï¡¼¥É¥¦¥§¥¢¤Ç¤Ï¥Þ¥¤¥¯¥íÉÃñ°Ì¤ÎÀºÅÙ¤¬°ìÈÌŪ¤Ç¤¢¤ë)¡£ -¹âÀºÅÙ¥¿¥¤¥Þ¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤«¤Ï¡¢ +で制御できる。 +高精度タイマをサポートしているシステムでは、タイマとスリープ関連のシステムコール +の精度はもはや jiffy に制約されることはなく、 +ハードウェアが許す限りの精度となる +(最近のハードウェアではマイクロ秒単位の精度が一般的である)。 +高精度タイマがサポートされているかは、 .BR clock_getres (2) -¤ò¸Æ¤Ó½Ð¤·¤Æʬ²òǽ¤ò³Îǧ¤¹¤ë¤«¡¢ +を呼び出して分解能を確認するか、 .I /proc/timer_list -Æâ¤Î "resolution" ¥¨¥ó¥È¥ê¤ò»²¾È¤¹¤ë¤«¤ÇȽÃǤǤ­¤ë¡£ +内の "resolution" エントリを参照するかで判断できる。 -¹âÀºÅÙ¥¿¥¤¥Þ¤Ï¤¹¤Ù¤Æ¤Î¥Ï¡¼¥É¥¦¥§¥¢¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë -Ìõ¤Ç¤Ï¤Ê¤¤ (Âбþ¤·¤Æ¤¤¤ë¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ï x86, arm, powerpc ¤Ç¤¢¤ë)¡£ -.SS "µª¸µ" -UNIX ¥·¥¹¥Æ¥à¤Ï»þ¹ï¤ò -µª¸µ (1970-01-01 00:00:00 +0000 (UTC)) ¤«¤é¤ÎÉÿô¤Çɽ¸½¤¹¤ë¡£ +高精度タイマはすべてのハードウェアアーキテクチャでサポートされている +訳ではない (対応しているアーキテクチャは x86, arm, powerpc である)。 +.SS "紀元" +UNIX システムは時刻を +紀元 (1970-01-01 00:00:00 +0000 (UTC)) からの秒数で表現する。 -¥×¥í¥°¥é¥à¤Ï \fI¥«¥ì¥ó¥À»þ¹ï\fR ¤ò +プログラムは \fIカレンダ時刻\fR を .BR gettimeofday (2) -¤ò»È¤Ã¤Æ·×¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î´Ø¿ô¤Ïµª¸µ¤«¤é¤Î·Ð²á»þ´Ö¤ò (Éäȥޥ¤¥¯¥íÉäÇ) ÊÖ¤¹¡£ +を使って計ることができる。 +この関数は紀元からの経過時間を (秒とマイクロ秒で) 返す。 .BR time (2) -¤ÏƱÍͤξðÊó¤òÄ󶡤¹¤ë¤¬¡¢ºÇ¤â¶á¤¤ÉäÎÀºÅÙ¤·¤«¤Ê¤¤¡£ -¥·¥¹¥Æ¥à»þ¹ï¤Ï +は同様の情報を提供するが、最も近い秒の精度しかない。 +システム時刻は .BR settimeofday (2) -¤ÇÊѹ¹¤Ç¤­¤ë¡£ -.SS "Í×ÁÇÊ̤λþ¹ï" -¥é¥¤¥Ö¥é¥ê´Ø¿ô¤ÎÃæ¤Ë¤Ï +で変更できる。 +.SS "要素別の時刻" +ライブラリ関数の中には .I tm -·¿¤Î¹½Â¤ÂΤò»È¤¦¤â¤Î¤¬¤¢¤ë¡£ -¤³¤Î¹½Â¤ÂΤÏ\fIÍ×ÁÇÊ̤λþ¹ï\fR¤òɽ¤·¡¢ -»þ¹ï¤ÎÃͤòÊÌ¡¹¤ÎÍ×ÁÇ (ǯ¡¦·î¡¦Æü¡¦»þ¡¦Ê¬¡¦ÉäʤÉ) ¤Ëʬ¤±¤Æ³ÊǼ¤¹¤ë¡£ -¤³¤Î¹½Â¤ÂÎ¤Ï +型の構造体を使うものがある。 +この構造体は\fI要素別の時刻\fRを表し、 +時刻の値を別々の要素 (年・月・日・時・分・秒など) に分けて格納する。 +この構造体は .BR ctime (3) -¤Ëµ­½Ò¤µ¤ì¤Æ¤ª¤ê¡¢¥«¥ì¥ó¥À»þ¹ï¤òÍ×ÁÇÊ̤λþ¹ï¤ËÊÑ´¹¤¹¤ë -´Ø¿ô¤Ë¤Ä¤¤¤Æ¤âµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -Í×ÁÇÊ̤λþ¹ï¤òɽ¼¨²Äǽ¤Êʸ»úÎó¤ËÊÑ´¹¤¹¤ë´Ø¿ô¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +に記述されており、カレンダ時刻を要素別の時刻に変換する +関数についても記述されている。 +要素別の時刻を表示可能な文字列に変換する関数については、 .BR ctime (3), .BR strftime (3), .BR strptime (3) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -.SS "¥¿¥¤¥Þ¤Î¥¹¥ê¡¼¥×¤ÈÀßÄê" -ÍÍ¡¹¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤È´Ø¿ô¤Ë¤è¤ê¡¢»ØÄꤵ¤ì¤¿°ìÄê¤Î»þ´Ö¡¢ -¥×¥í¥°¥é¥à¤Ï¥¹¥ê¡¼¥× (¼Â¹Ô¤òÄä»ß) ¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£ +に記述されている。 +.SS "タイマのスリープと設定" +様々なシステムコールと関数により、指定された一定の時間、 +プログラムはスリープ (実行を停止) することが可能である。 .BR nanosleep (2), .BR clock_nanosleep (2), .BR sleep (3) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +を参照すること。 -ÍÍ¡¹¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤è¤ê¡¢¥×¥í¥»¥¹¤Ï¾­Íè¤Î¤¢¤ë»þÅÀ¤Ç -Í­¸ú´ü´Ö¤¬½ªÎ»¤¹¤ë¥¿¥¤¥Þ¤òÀßÄê¤Ç¤­¤ë¡£ -¤Þ¤¿¥ª¥×¥·¥ç¥ó¤È¤·¤Æ·«¤êÊÖ¤·´Ö³Ö¤¬»ØÄê¤Ç¤­¤ë¤â¤Î¤â¤¢¤ë¡£ +様々なシステムコールにより、プロセスは将来のある時点で +有効期間が終了するタイマを設定できる。 +またオプションとして繰り返し間隔が指定できるものもある。 .BR alarm (2), .BR getitimer (2), .BR timerfd_create (2), .BR timer_create (2) -¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ´ØÏ¢¹àÌÜ +を参照すること。 +.SH 関連項目 .BR date (1), .BR time (1), .BR adjtimex (2), diff --git a/release/man7/udp.7 b/release/man7/udp.7 index ce42abfb..60927038 100644 --- a/release/man7/udp.7 +++ b/release/man7/udp.7 @@ -13,190 +13,190 @@ .\" Updated 2010-04-10, Akihiro MOTOKI, LDP v3.24 .\" .TH UDP 7 2009-09-30 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -udp \- IPv4 ¤Î ¥æ¡¼¥¶¡¼¥Ç¡¼¥¿¥°¥é¥à¥×¥í¥È¥³¥ë -.SH ½ñ¼° +.SH 名前 +udp \- IPv4 の ユーザーデータグラムプロトコル +.SH 書式 .B #include .br .B #include .sp .B udp_socket = socket(AF_INET, SOCK_DGRAM, 0); -.SH ÀâÌÀ -¤³¤ì¤Ï RFC\ 768 ¤Çµ­½Ò¤µ¤ì¤Æ¤¤¤ë User Datagram Protocol ¤Î¼ÂÁõ¤Ç¤¢¤ë¡£ -UDP ¤Ï¥³¥Í¥¯¥·¥ç¥ó¥ì¥¹¤Î¡¢¿®ÍêÀ­¤ÎÄ㤤¥Ç¡¼¥¿¥Ñ¥±¥Ã¥È¥µ¡¼¥Ó¥¹¤Ç¤¢¤ë¡£ -¥Ñ¥±¥Ã¥È¤ÏÅþÃåÁ°¤ËʤÓÂؤ¨¤é¤ì¤¿¤êÊ£À½¤µ¤ì¤¿¤ê¤¹¤ë¡£ -UDP ¤ÏžÁ÷¥¨¥é¡¼¤ò¸¡½Ð¤¹¤ë¤¿¤á¤Ë¥Á¥§¥Ã¥¯¥µ¥à¤òÀ¸À®¡¦¥Á¥§¥Ã¥¯¤¹¤ë¡£ +.SH 説明 +これは RFC\ 768 で記述されている User Datagram Protocol の実装である。 +UDP はコネクションレスの、信頼性の低いデータパケットサービスである。 +パケットは到着前に並び替えられたり複製されたりする。 +UDP は転送エラーを検出するためにチェックサムを生成・チェックする。 -UDP ¥½¥±¥Ã¥È¤¬À¸À®¤µ¤ì¤ë¤È¤­¡¢ -¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤ä¥ê¥â¡¼¥È¥¢¥É¥ì¥¹¤Ï»ØÄꤵ¤ì¤Ê¤¤¡£ -Àµ¤·¤¤¹Ô¤­À襢¥É¥ì¥¹¤ò°ú¿ô¤È¤·¤Æ +UDP ソケットが生成されるとき、 +ローカルアドレスやリモートアドレスは指定されない。 +正しい行き先アドレスを引数として .BR sendto (2) -¤ä +や .BR sendmsg (2) -¤ò¸Æ¤Ù¤Ð¡¢¥Ç¡¼¥¿¥°¥é¥à¤Ï¤¿¤À¤Á¤ËÁ÷¿®¤µ¤ì¤ë¡£ -¥½¥±¥Ã¥È¤ËÂФ·¤Æ +を呼べば、データグラムはただちに送信される。 +ソケットに対して .BR connect (2) -¤ò¸Æ¤Ö¤È¡¢¥Ç¥Õ¥©¥ë¥È¤Î¹Ô¤­À襢¥É¥ì¥¹¤¬ÀßÄꤵ¤ì¡¢ +を呼ぶと、デフォルトの行き先アドレスが設定され、 .BR send (2) -¤ä +や .BR write (2) -¤ò»È¤Ã¤Æ¡¢¹Ô¤­À襢¥É¥ì¥¹¤Î»ØÄê¤Ê¤·¤Ë¥Ç¡¼¥¿¥°¥é¥à¤òÁ÷¿®¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ -¤³¤Î¾ì¹ç¤Ç¤â¡¢¹Ô¤­À襢¥É¥ì¥¹¤ò +を使って、行き先アドレスの指定なしにデータグラムを送信できるようになる。 +この場合でも、行き先アドレスを .BR sendto (2) -¤ä +や .BR sendmsg (2) -¤ËÅϤ»¤Ð¡¢¥Ç¥Õ¥©¥ë¥È°Ê³°¤Î¥¢¥É¥ì¥¹¤ËÁ÷¿®²Äǽ¤Ç¤¢¤ë¡£ -¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤¹¤ë¤¿¤á¤Ë¡¢¤Þ¤º¥½¥±¥Ã¥È¤ò +に渡せば、デフォルト以外のアドレスに送信可能である。 +パケットを受信するために、まずソケットを .BR bind (2) -¤òÍѤ¤¤Æ¥í¡¼¥«¥ë¤Ê¥¢¥É¥ì¥¹¤Ë¥Ð¥¤¥ó¥É¤µ¤»¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢¥½¥±¥Ã¥ÈÁؤϼ«Æ°Åª¤Ë +を用いてローカルなアドレスにバインドさせることもできる。 +そうでない場合は、ソケット層は自動的に .I /proc/sys/net/ipv4/ip_local_port_range -¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëÈϰϤγ°¤Ç¶õ¤¤¤Æ¤¤¤ë¥í¡¼¥«¥ë¤Ê¥Ý¡¼¥È¤ò³ä¤êÅö¤Æ¡¢ -¥½¥±¥Ã¥È¤ò +で定義されている範囲の外で空いているローカルなポートを割り当て、 +ソケットを .B INADDR_ANY -¤Ë¥Ð¥¤¥ó¥É¤¹¤ë¡£ +にバインドする。 -¼õ¿®Æ°ºî¤Ï¥Ñ¥±¥Ã¥È¤ò°ì¤Ä¤À¤±ÊÖ¤¹¡£ÅϤ·¤¿¥Ð¥Ã¥Õ¥¡¤è¤ê¤â¥Ñ¥±¥Ã¥È¤¬ -¾®¤µ¤±¤ì¤Ð¡¢¤½¤Î¥Ñ¥±¥Ã¥È¤ÎÂ礭¤µ¤Î¥Ç¡¼¥¿¤À¤±¤¬ÊÖ¤µ¤ì¤ë¡£ -µÕ¤Ë¥Ð¥Ã¥Õ¥¡¤è¤ê¤âÂ礭¤¤¾ì¹ç¤Ï¥Ñ¥±¥Ã¥È¤Ï´Ý¤á¤é¤ì¡¢ +受信動作はパケットを一つだけ返す。渡したバッファよりもパケットが +小さければ、そのパケットの大きさのデータだけが返される。 +逆にバッファよりも大きい場合はパケットは丸められ、 .B MSG_TRUNC -¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£ +フラグがセットされる。 .B MSG_WAITALL -¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£ +はサポートしていない。 -IP ¥ª¥×¥·¥ç¥ó¤Ï¡¢ +IP オプションは、 .BR ip (7) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ÆÆɤ߽ñ¤­¤Ç¤­¤ë¡£ -¤³¤ì¤é¤ÏŬÀÚ¤Ê +に記述されているソケットオプションを用いて読み書きできる。 +これらは適切な .I /proc -¥Ñ¥é¥á¡¼¥¿¤¬Í­¸ú¤Ê¾ì¹ç¤Ë¸Â¤Ã¤Æ¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ½èÍý¤µ¤ì¤ë -(¤·¤«¤·Ìµ¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ç¤â¥æ¡¼¥¶¡¼¤Ë¤ÏÅϤµ¤ì¤ë)¡£ +パラメータが有効な場合に限ってカーネルによって処理される +(しかし無効になっている場合でもユーザーには渡される)。 .BR ip (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 .B MSG_DONTROUTE -¥Õ¥é¥°¤¬Á÷¿®»þ¤Ë¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ -¹Ô¤­À襢¥É¥ì¥¹¤Ï¥í¡¼¥«¥ë¤Ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹¤«¤é -»²¾È¤Ç¤­¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¥Ñ¥±¥Ã¥È¤Ï¤½¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤·¤«Á÷¤é¤ì¤Ê¤¤¡£ +フラグが送信時にセットされている場合には、 +行き先アドレスはローカルなインターフェースアドレスから +参照できなければならない。パケットはそのインターフェースにしか送られない。 -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢Linux ¤Î UDP ¤Ï Path MTU Discovery ¤ò¹Ô¤¦¡£ -¤Ä¤Þ¤ê¡¢¥«¡¼¥Í¥ë¤ÏÆÃÄê¤Î°¸Àè IP ¥¢¥É¥ì¥¹¤Î MTU (Maximum Transmission Unit; -ºÇÂçžÁ÷ñ°Ì) ¤òµ­Ï¿¤·¡¢UDP ¥Ñ¥±¥Ã¥È¤Î½ñ¤­¹þ¤ß¤¬ MTU ¤òĶ¤¨¤¿¾ì¹ç +デフォルトでは、Linux の UDP は Path MTU Discovery を行う。 +つまり、カーネルは特定の宛先 IP アドレスの MTU (Maximum Transmission Unit; +最大転送単位) を記録し、UDP パケットの書き込みが MTU を超えた場合 .B EMSGSIZE -¤òÊÖ¤¹¡£ +を返す。 .B EMSGSIZE -¤òÊÖ¤µ¤ì¤¿¾ì¹ç¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¥Ñ¥±¥Ã¥È¥µ¥¤¥º¤ò¾®¤µ¤¯¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó +を返された場合、アプリケーションはパケットサイズを小さくすべきである。 +ソケットオプション .B IP_MTU_DISCOVER -¤Þ¤¿¤Ï +または .I /proc/sys/net/ipv4/ip_no_pmtu_disc -¥Õ¥¡¥¤¥ë¤ò»È¤Ã¤Æ Path MTU Discovery ¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤â¤Ç¤­¤ë -(¾ÜºÙ¤Ï +ファイルを使って Path MTU Discovery を無効にすることもできる +(詳細は .BR ip (7) -¤ò»²¾È)¡£ -Path MTU Discovery ¤ò̵¸ú¤Ë¤·¤¿¾ì¹ç¤Ï¡¢¥Ñ¥±¥Ã¥È¥µ¥¤¥º¤¬ -¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î MTU ¤è¤ê¤âÂ礭¤¤¤È UDP ¤Ï¤½¤Î¥Ñ¥±¥Ã¥È¤ò -¥Õ¥é¥°¥á¥ó¥È²½¤·¤ÆÁ÷½Ð¤¹¤ë¡£ -¤·¤«¤·¤Ê¤¬¤é¡¢À­Ç½¤È¿®ÍêÀ­¤ÎÍýͳ¤«¤é Path MTU Discovery ¤ò -̵¸ú¤Ë¤¹¤ë¤Î¤Ï¿ä¾©¤Ç¤­¤Ê¤¤¡£ -.SS ¥¢¥É¥ì¥¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È -UDP ¤Ï IPv4 ¤Î +を参照)。 +Path MTU Discovery を無効にした場合は、パケットサイズが +インタフェースの MTU よりも大きいと UDP はそのパケットを +フラグメント化して送出する。 +しかしながら、性能と信頼性の理由から Path MTU Discovery を +無効にするのは推奨できない。 +.SS アドレスのフォーマット +UDP は IPv4 の .I sockaddr_in -¥¢¥É¥ì¥¹¥Õ¥©¡¼¥Þ¥Ã¥È¤òÍѤ¤¤ë¡£¤³¤ì¤Ï +アドレスフォーマットを用いる。これは .BR ip (7) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -.SS ¥¨¥é¡¼½èÍý -Ã×̿Ū¤Ê¥¨¥é¡¼¤Ï¡¢¤¿¤È¤¨¥½¥±¥Ã¥È¤¬Àܳ¤µ¤ì¤Æ¤¤¤Ê¤¯¤Æ¤â¡¢ -¤¹¤Ù¤Æ¥¨¥é¡¼Ìá¤êÃͤȤ·¤Æ¥æ¡¼¥¶¡¼¤ËÅϤµ¤ì¤ë¡£ -¤³¤ì¤Ë¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¤«¤é¼õ¤±¼è¤ëÈóƱ´ü¥¨¥é¡¼¤â´Þ¤Þ¤ì¤ë¡£ -Ʊ¤¸¥½¥±¥Ã¥È¤ò»È¤Ã¤ÆÁ÷¿®¤·¤¿ÀΤΥѥ±¥Ã¥È¤Ë´Ø¤¹¤ë¥¨¥é¡¼¤ò¼õ¤±¼è¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤Î¿¶¤ëÉñ¤¤¤Ï¾¤Î BSD ¥½¥±¥Ã¥È¤Î¼ÂÁõ¤Î¿¤¯¤È¤Ï°Û¤Ê¤ë¡£ -¤³¤ì¤é¤Ç¤Ï¥½¥±¥Ã¥È¤¬Àܳ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¥¨¥é¡¼¤òÁ´¤¯ÊÖ¤µ¤Ê¤¤¡£ -Linux ¤Î¿¶¤ëÉñ¤¤¤Ï +に記述されている。 +.SS エラー処理 +致命的なエラーは、たとえソケットが接続されていなくても、 +すべてエラー戻り値としてユーザーに渡される。 +これにはネットワークから受け取る非同期エラーも含まれる。 +同じソケットを使って送信した昔のパケットに関するエラーを受け取るかもしれない。 +この振る舞いは他の BSD ソケットの実装の多くとは異なる。 +これらではソケットが接続されていない場合はエラーを全く返さない。 +Linux の振る舞いは .B RFC\ 1122 -¤Ç¤Î»ØÄê¤Ë½¾¤Ã¤¿¤â¤Î¤Ç¤¢¤ë¡£ +での指定に従ったものである。 -Linux 2.0 ¤È 2.2 ¤Ç¤Ï¡¢¸Å¤¤¥³¡¼¥É¤È¤Î¸ß´¹À­¤Î¤¿¤á¤Ë¡¢ +Linux 2.0 と 2.2 では、古いコードとの互換性のために、 .B SO_BSDCOMPAT .B SOL_SOCKET -¥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ì¤Ð¡¢¥½¥±¥Ã¥È¤¬Àܳ¤µ¤ì¤Æ¤¤¤ë -¾ì¹ç¤Ë¸Â¤Ã¤Æ¥ê¥â¡¼¥È¤Î¥¨¥é¡¼¤ò¼õ¿®¤¹¤ë¤è¤¦¤Ë¤Ç¤­¤¿ -.RB ( EPROTO " ¤È " EMSGSIZE -¤ò½ü¤¯)¡£ -¥í¡¼¥«¥ë¤ÇÀ¸À®¤µ¤ì¤¿¥¨¥é¡¼¤Ï¾ï¤ËÅϤµ¤ì¤ë¡£ -¤³¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤Î¥µ¥Ý¡¼¥È¤Ï¤½¤ì°Ê¹ß¤Î¥Ð¡¼¥¸¥ç¥ó¤Î Linux ¤Ç -ºï½ü¤µ¤ì¤¿¡£¾ÜºÙ¤Ï +オプションを設定すれば、ソケットが接続されている +場合に限ってリモートのエラーを受信するようにできた +.RB ( EPROTO " と " EMSGSIZE +を除く)。 +ローカルで生成されたエラーは常に渡される。 +このソケットオプションのサポートはそれ以降のバージョンの Linux で +削除された。詳細は .BR socket (7) -¤ò»²¾È¡£ +を参照。 .B IP_RECVERR -¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢ -¤¹¤Ù¤Æ¤Î¥¨¥é¡¼¤Ï¥½¥±¥Ã¥È¤Î¥¨¥é¡¼¥­¥å¡¼¤ËÊݸ¤µ¤ì¤ë¡£ -¤³¤ì¤Ï +オプションが有効になっていると、 +すべてのエラーはソケットのエラーキューに保存される。 +これは .B MSG_ERRQUEUE -¥Õ¥é¥°¤ò¥»¥Ã¥È¤·¤Æ +フラグをセットして .BR recvmsg (2) -¤ò¸Æ¤Ù¤Ð¼õ¿®¤Ç¤­¤ë¡£ -.SS /proc ¥¤¥ó¥¿¥Õ¥§¡¼¥¹ -¥·¥¹¥Æ¥àÁ´ÂΤΠUDP ¥Ñ¥é¥á¡¼¥¿ÀßÄê¤Ë¤Ï¡¢ +を呼べば受信できる。 +.SS /proc インタフェース +システム全体の UDP パラメータ設定には、 .I /proc/sys/net/ipv4/ -¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¤ÎÆɤ߽ñ¤­¤Ç¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ +ディレクトリ内のファイルの読み書きでアクセスできる。 .TP -.IR udp_mem " (Linux 2.6.25 °Ê¹ß)" -¤³¤ì¤Ï 3 ¤Ä¤ÎÀ°¿ô¤«¤é¤Ê¤ë¥Ù¥¯¥È¥ëÃͤǡ¢ -UDP ¤ÎÁ´¥½¥±¥Ã¥È¤Î¥­¥å¡¼¤ÇÍøÍѲÄǽ¤Ê¥Ú¡¼¥¸¿ô¤òÀ©¸æ¤¹¤ë¡£ +.IR udp_mem " (Linux 2.6.25 以降)" +これは 3 つの整数からなるベクトル値で、 +UDP の全ソケットのキューで利用可能なページ数を制御する。 .RS .TP 10 .I min -¤³¤Î¥Ú¡¼¥¸¿ô¤è¤ê¾¯¤Ê¤±¤ì¤Ð¡¢UDP ¤Ï¤½¤Î¥á¥â¥ê»ÈÍѤ˴ؤ·¤Æ -´³¾Ä¤µ¤ì¤Ê¤¤¡£ -UDP ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥êÁíÎ̤¬¤³¤ÎÃͤòĶ²á¤¹¤ë¤È¡¢ -UDP ¤Ï¥á¥â¥ê»ÈÍÑÎ̤òÄ´À°¤·»Ï¤á¤ë¡£ +このページ数より少なければ、UDP はそのメモリ使用に関して +干渉されない。 +UDP に割り当てられたメモリ総量がこの値を超過すると、 +UDP はメモリ使用量を調整し始める。 .TP .I pressure -¤³¤ÎÃÍ¤Ï +この値は .I tcp_mem -¤Î·Á¼° +の形式 .RB ( tcp (7) -»²¾È) ¤È¹ç¤ï¤»¤ë¤¿¤á¤ËƳÆþ¤µ¤ì¤¿ +参照) と合わせるために導入された .TP .I max -UDP ¤ÎÁ´¥½¥±¥Ã¥È¤Î¥­¥å¡¼¤ÇÍøÍѲÄǽ¤Ê¥Ú¡¼¥¸¿ô¡£ +UDP の全ソケットのキューで利用可能なページ数。 .RE .IP -¤³¤ì¤é¤Î 3 ¤Ä¤ÎÃͤΥǥե©¥ë¥ÈÃͤϡ¢ -¥Ö¡¼¥È»þ¤ËÍøÍѲÄǽ¤Ê¥á¥â¥êÁíÎ̤«¤é·×»»¤µ¤ì¤ë¡£ +これらの 3 つの値のデフォルト値は、 +ブート時に利用可能なメモリ総量から計算される。 .TP -.IR udp_rmem_min " (integer; ¥Ç¥Õ¥©¥ë¥ÈÃÍ: PAGE_SIZE; Linux 2.6.25 °Ê¹ß)" -¥á¥â¥ê»ÈÍÑÎ̤ÎÄ´À°Ãæ¤Ë¡¢UDP ¥½¥±¥Ã¥È¤¬»ÈÍѤǤ­¤ë¼õ¿®¥Ð¥Ã¥Õ¥¡¤ÎºÇ¾®ÃÍ -(¥Ð¥¤¥Èñ°Ì)¡£ -UDP ¤ÎÁ´¥½¥±¥Ã¥È¤Î¥Ú¡¼¥¸»ÈÍÑÎ̤ιç·×¤¬ +.IR udp_rmem_min " (integer; デフォルト値: PAGE_SIZE; Linux 2.6.25 以降)" +メモリ使用量の調整中に、UDP ソケットが使用できる受信バッファの最小値 +(バイト単位)。 +UDP の全ソケットのページ使用量の合計が .I udp_mem -pressure ¤òĶ²á¤·¤Æ¤¤¤ë¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢ -³Æ UDP ¥½¥±¥Ã¥È¤Ï¥Ç¡¼¥¿¤Î¼õ¿®¤Ë¤³¤Î¥µ¥¤¥ºÊ¬¤À¤±¤Ï»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +pressure を超過している場合であっても、 +各 UDP ソケットはデータの受信にこのサイズ分だけは使用することができる。 .TP -.IR udp_wmem_min " (integer; ¥Ç¥Õ¥©¥ë¥ÈÃÍ: PAGE_SIZE; Linux 2.6.25 °Ê¹ß)" -¥á¥â¥ê»ÈÍÑÎ̤ÎÄ´À°Ãæ¤Ë¡¢UDP ¥½¥±¥Ã¥È¤¬»ÈÍѤǤ­¤ëÁ÷¿®¥Ð¥Ã¥Õ¥¡¤ÎºÇ¾®ÃÍ -(¥Ð¥¤¥Èñ°Ì)¡£ -UDP ¤ÎÁ´¥½¥±¥Ã¥È¤Î¥Ú¡¼¥¸»ÈÍÑÎ̤ιç·×¤¬ +.IR udp_wmem_min " (integer; デフォルト値: PAGE_SIZE; Linux 2.6.25 以降)" +メモリ使用量の調整中に、UDP ソケットが使用できる送信バッファの最小値 +(バイト単位)。 +UDP の全ソケットのページ使用量の合計が .I udp_mem -pressure ¤òĶ²á¤·¤Æ¤¤¤ë¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢ -³Æ UDP ¥½¥±¥Ã¥È¤Ï¥Ç¡¼¥¿¤ÎÁ÷¿®¤Ë¤³¤Î¥µ¥¤¥ºÊ¬¤À¤±¤Ï»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.SS ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó -UDP ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤òÀßÄê¤Þ¤¿¤Ï¼èÆÀ¤¹¤ë¤Ë¤Ï¡¢ -¼èÆÀ¤Ë¤Ï +pressure を超過している場合であっても、 +各 UDP ソケットはデータの送信にこのサイズ分だけは使用することができる。 +.SS ソケットオプション +UDP ソケットオプションを設定または取得するには、 +取得には .BR getsockopt (2) -¤ò¡¢ÀßÄê¤Ë¤Ï +を、設定には .BR setsockopt (2) -¤ò¥ª¥×¥·¥ç¥ó¥ì¥Ù¥ë°ú¿ô¤Ë +をオプションレベル引数に .B IPPROTO_UDP -¤ò»ØÄꤷ¤Æ¸Æ¤Ó½Ð¤¹¡£ +を指定して呼び出す。 .TP -.BR UDP_CORK " (Linux 2.5.44 °Ê¹ß)" -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤ë¤È¡¢¤³¤Î¥½¥±¥Ã¥È¤ÎÁ´¤Æ¤Î¥Ç¡¼¥¿½ÐÎÏ¤Ï -°ì¤Ä¤Î¥Ç¡¼¥¿¥°¥é¥à¤ËÃßÀѤµ¤ì¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Ìµ¸ú²½¤µ¤ì¤¿»þ¤Ë -Á÷¿®¤µ¤ì¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï°Ü¿¢À­¤ò¹Íθ¤·¤¿¥³¡¼¥É¤Ç¤ÏÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +.BR UDP_CORK " (Linux 2.5.44 以降)" +このオプションが指定されると、このソケットの全てのデータ出力は +一つのデータグラムに蓄積され、このオプションが無効化された時に +送信される。 +このオプションは移植性を考慮したコードでは用いるべきではない。 .\" FIXME document UDP_ENCAP (new in kernel 2.5.67) .\" From include/linux/udp.h: .\" /* UDP encapsulation types */ @@ -204,10 +204,10 @@ UDP .\" #define UDP_ENCAP_ESPINUDP 2 /* draft-ietf-ipsec-udp-encaps-06 */ .\" #define UDP_ENCAP_L2TPINUDP 3 /* rfc2661 */ .SS ioctl -°Ê²¼¤Ë¼¨¤¹ ioctl ¤Ï +以下に示す ioctl は .BR ioctl (2) -¤ò»È¤Ã¤Æ¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ -Àµ¤·¤¤Ê¸Ë¡¤Ï°Ê²¼¤ÎÄ̤ꡣ +を使ってアクセスできる。 +正しい文法は以下の通り。 .PP .RS .nf @@ -217,36 +217,36 @@ UDP .RE .TP .BR FIONREAD " (" SIOCINQ ) -integer ¤Î¥Ý¥¤¥ó¥¿¤ò°ú¿ô¤È¤·¤Æ¼è¤ë¡£ -¼¡¤ËÂÔµ¡¤·¤Æ¤¤¤ë¥Ç¡¼¥¿¥°¥é¥à¤Î¥µ¥¤¥º¤ò¥Ð¥¤¥Èñ°Ì¤ÎÀ°¿ô¤ÇÊÖ¤¹¡£ -ÂÔµ¡¤·¤Æ¤¤¤ë¥Ç¡¼¥¿¥°¥é¥à¤¬¤Ê¤¤¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ +integer のポインタを引数として取る。 +次に待機しているデータグラムのサイズをバイト単位の整数で返す。 +待機しているデータグラムがない場合は 0 を返す。 .TP .BR TIOCOUTQ " (" SIOCOUTQ ) -¥í¡¼¥«¥ëÁ÷¿®¥­¥å¡¼¤Ë¤¢¤ë¥Ç¡¼¥¿¥µ¥¤¥º¤ò¥Ð¥¤¥Èñ°Ì¤ÇÊÖ¤¹¡£ -Linux 2.4 °Ê¾å¤Ç¤Î¤ßÂбþ¤·¤Æ¤¤¤ë¡£ +ローカル送信キューにあるデータサイズをバイト単位で返す。 +Linux 2.4 以上でのみ対応している。 .PP -¤µ¤é¤Ë¡¢ +さらに、 .BR ip (7) -¤È +と .BR socket (7) -¤Ç½Ò¤Ù¤é¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î ioctl ¤âÂбþ¤·¤Æ¤¤¤ë¡£ -.SH ¥¨¥é¡¼ +で述べられている全ての ioctl も対応している。 +.SH エラー .BR socket (7) -¤ä +や .BR ip (7) -¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¥¨¥é¡¼¤¬¡¢ -UDP ¥½¥±¥Ã¥È¤ÎÁ÷¼õ¿®¤ÇÊÖ¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ +に記述されている全てのエラーが、 +UDP ソケットの送受信で返される可能性がある。 .TP .B ECONNREFUSED -¹Ô¤­À襢¥É¥ì¥¹¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ë¼õ¿®¼Ô¤¬¤¤¤Ê¤¤¡£ -¤³¤ì¤Ï°ÊÁ°¤Î¥Ñ¥±¥Ã¥È¤¬¤½¤Î¥Ñ¥±¥Ã¥È¤ò -¾å½ñ¤­Á÷¿®¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¤³¤È¤¬Â¿¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +行き先アドレスに関連づけられている受信者がいない。 +これは以前のパケットがそのパケットを +上書き送信してしまっているからであることが多い。 +.SH バージョン .B IP_RECVERR -¤Ï Linux 2.2 ¤Î¿·¤·¤¤µ¡Ç½¤Ç¤¢¤ë¡£ -.\" .SH Ãø¼Ô -.\" ¤³¤Î man ¥Ú¡¼¥¸¤Ï Andi Kleen ¤¬½ñ¤¤¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +は Linux 2.2 の新しい機能である。 +.\" .SH 著者 +.\" この man ページは Andi Kleen が書いた。 +.SH 関連項目 .BR ip (7), .BR raw (7), .BR socket (7), @@ -254,6 +254,6 @@ UDP RFC\ 768 : User Datagram Protocol .br -RFC\ 1122 : ¥Û¥¹¥È¤ÎɬÍ×¾ò·ï +RFC\ 1122 : ホストの必要条件 .br -RFC\ 1191 : path MTU discovery ¤Îµ­½Ò +RFC\ 1191 : path MTU discovery の記述 diff --git a/release/man7/udplite.7 b/release/man7/udplite.7 index bb499bdb..c1e840ad 100644 --- a/release/man7/udplite.7 +++ b/release/man7/udplite.7 @@ -27,9 +27,9 @@ .\" Translated 2008-08-21, Akihiro MOTOKI , LDP v3.07 .\" .TH UDPLITE 7 2008-12-03 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -udplite \- ·ÚÎ̤ʥ桼¥¶¡¼¥Ç¡¼¥¿¥°¥é¥à¥×¥í¥È¥³¥ë -.SH ½ñ¼° +.SH 名前 +udplite \- 軽量なユーザーデータグラムプロトコル +.SH 書式 .B #include .br .\" FIXME . see #defines under `BUGS', @@ -37,85 +37,85 @@ udplite \- .\" #include .sp .B sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDPLITE); -.SH ÀâÌÀ -¤³¤ì¤Ï RFC\ 3828 ¤Ë½ñ¤«¤ì¤Æ¤¤¤ë·ÚÎ̤ʥ桼¥¶¡¼¥Ç¡¼¥¿¥°¥é¥à¥×¥í¥È¥³¥ë -(Lightweight User Datagram Protocol; UDP-Lite) ¤Î¼ÂÁõ¤Ç¤¢¤ë¡£ +.SH 説明 +これは RFC\ 3828 に書かれている軽量なユーザーデータグラムプロトコル +(Lightweight User Datagram Protocol; UDP-Lite) の実装である。 -UDP-Lite ¤Ï UDP (RFC\ 768) ¤Î³ÈÄ¥¤Ç¡¢²ÄÊÑĹ¤Î¥Á¥§¥Ã¥¯¥µ¥à¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -¤³¤Î¥×¥í¥È¥³¥ë¤¬¸ú²Ì¤òȯ´ø¤¹¤ë¤Î¤Ï¡¢¾¯¤·¤À¤±²õ¤ì¤¿¥Ç¡¼¥¿¥°¥é¥à¤¬¤¢¤Ã¤¿¾ì¹ç¤Ë¡¢ -¤½¤Î¥Ç¡¼¥¿¥°¥é¥à¤ò²¼°Ì¥ì¥¤¥ä¡¼¤Î¥×¥í¥È¥³¥ë¤ËÇÑ´þ¤µ¤»¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ -¤½¤ì¤òÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ê¡¢¤¢¤ë¼ï¤Î¥Þ¥ë¥Á¥á¥Ç¥£¥¢Å¾Á÷¤Ë¤ª¤¤¤Æ¤Ç¤¢¤ë¡£ +UDP-Lite は UDP (RFC\ 768) の拡張で、可変長のチェックサムをサポートしている。 +このプロトコルが効果を発揮するのは、少しだけ壊れたデータグラムがあった場合に、 +そのデータグラムを下位レイヤーのプロトコルに廃棄させるのではなく、 +それを利用することができるような、ある種のマルチメディア転送においてである。 -²ÄÊÑĹ¤Î¥Á¥§¥Ã¥¯¥µ¥à¤ÎÂоÝÈÏ°Ï¤Ï +可変長のチェックサムの対象範囲は .BR setsockopt (2) -¥ª¥×¥·¥ç¥ó·Ðͳ¤ÇÀßÄꤵ¤ì¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢UDP ¤È°Û¤Ê¤ë¤Î¤Ï -°ã¤¦ IP ¥×¥í¥È¥³¥ë¼±ÊÌ»Ò (IANA ÈÖ¹æ 136) ¤ò»ÈÍѤ¹¤ëÅÀ¤À¤±¤Ç¤¢¤ë¡£ +オプション経由で設定される。 +このオプションが設定されていない場合、UDP と異なるのは +違う IP プロトコル識別子 (IANA 番号 136) を使用する点だけである。 -UDP-Lite ¤Î¼ÂÁõ¤Ï +UDP-Lite の実装は .BR udp (7) -¤Î´°Á´¤Ê³ÈÄ¥¡¢¤¹¤Ê¤ï¤Á API ¤È API ¤ÎÆ°ºî¤ÏƱ¤¸¤Ç¤¢¤ë¡£ -¤³¤ì¤Ë²Ã¤¨¤Æ¡¢2 ¤Ä¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬¥Á¥§¥Ã¥¯¥µ¥à¤ÎÂоÝÈϰϤò -À©¸æ¤¹¤ë¤¿¤á¤ËÄ󶡤µ¤ì¤Æ¤¤¤ë¡£ -.SS ¥¢¥É¥ì¥¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È -UDP-Litev4 ¤Ï +の完全な拡張、すなわち API と API の動作は同じである。 +これに加えて、2 つのソケットオプションがチェックサムの対象範囲を +制御するために提供されている。 +.SS アドレスのフォーマット +UDP-Litev4 は .BR ip (7) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë +で説明されている .I sockaddr_in -¥¢¥É¥ì¥¹¤ò»ÈÍѤ¹¤ë¡£ -UDP-Litev6 ¤Ï +アドレスを使用する。 +UDP-Litev6 は .BR ipv6 (7) -¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë +で説明されている .I sockaddr_in6 -¥¢¥É¥ì¥¹¤ò»ÈÍѤ¹¤ë¡£ -.SS ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó -UDP-Lite ¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤òÀßÄê/¼èÆÀ¤¹¤ë¤Ë¤Ï¡¢ -¥ª¥×¥·¥ç¥ó¥ì¥Ù¥ë°ú¤­¿ô¤Ë +アドレスを使用する。 +.SS ソケットオプション +UDP-Lite のソケットオプションを設定/取得するには、 +オプションレベル引き数に .B IPPROTO_UDPLITE -¤ò»ØÄꤷ¤Æ¡¢¼èÆÀ»þ¤Ë¤Ï +を指定して、取得時には .BR getsockopt (2) -¤ò¡¢ÀßÄê»þ¤Ë¤Ï +を、設定時には .BR setsockopt (2) -¤ò¸Æ¤Ó½Ð¤¹¡£¤µ¤é¤Ë¡¢Á´¤Æ¤Î +を呼び出す。さらに、全ての .B IPPROTO_UDP -¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬ UDP-Lite ¥½¥±¥Ã¥È¤Ç¤â»ÈÍѤǤ­¤ë¡£ -¾ÜºÙ¤Ï +のソケットオプションが UDP-Lite ソケットでも使用できる。 +詳細は .BR udp (7) -¤ò»²¾È¤Î¤³¤È¡£ +を参照のこと。 -°Ê²¼¤Î 2 ¤Ä¤¬ UDP-Lite ¤Ë¸ÇÍ­¤Î¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë¡£ +以下の 2 つが UDP-Lite に固有のオプションである。 .TP .BR UDPLITE_SEND_CSCOV -¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÁ÷¿®Â¦¤Î¥Á¥§¥Ã¥¯¥µ¥à¤ÎÂоÝÈϰϤòÀßÄꤹ¤ë¡£ +このオプションは送信側のチェックサムの対象範囲を設定する。 .I int -·¿¤ò°ú¤­¿ô¤È¤·¤Æ¼è¤ê¡¢ÀßÄê²Äǽ¤ÊÃͤÎÈÏ°Ï¤Ï 0 ¤«¤é 2^16-1 ¤Þ¤Ç¤Ç¤¢¤ë¡£ +型を引き数として取り、設定可能な値の範囲は 0 から 2^16-1 までである。 -ÃÍ 0 ¤Ï¥Ç¡¼¥¿¥°¥é¥àÁ´ÂΤ¬¾ï¤Ë¥Á¥§¥Ã¥¯¥µ¥à¤ÎÂоݤȤʤ뤳¤È¤ò°ÕÌ£¤¹¤ë¡£ -ÃÍ 1¡Á7 ¤ÏÉÔÀµ¤Ç¤¢¤ê (RFC\ 3828 ¤Î 3.1 ¾Ï)¡¢ÈϰϤÎÀßÄê¤È¤·¤ÆºÇ¾®ÃͤǤ¢¤ë -8 ¤ËÀÚ¤ê¾å¤²¤é¤ì¤ë¡£ +値 0 はデータグラム全体が常にチェックサムの対象となることを意味する。 +値 1〜7 は不正であり (RFC\ 3828 の 3.1 ç« )、範囲の設定として最小値である +8 に切り上げられる。 -IPv6 ¤Î jumbograms (µðÂç¤Ê¥Ç¡¼¥¿¥°¥é¥à; RFC\ 2675) ¤Î¾ì¹ç¤Ë¤Ï¡¢ -UDP-Litev6 ¤Î¥Á¥§¥Ã¥¯¥µ¥à¤ÎÂоÝÈϰϤϡ¢RFC\ 3828 ¤Î 3.5 ¾Ï¤Ë¤¢¤ë¤è¤¦¤Ë¡¢ -ÀèƬ¤«¤é 2^16-1 ¥ª¥¯¥Æ¥Ã¥È¤Þ¤Ç¤Ë¸ÂÄꤵ¤ì¤ë¡£ -¤½¤Î¤¿¤á¡¢¤½¤ì¤è¤êÂ礭¤ÊÃÍ¤Ï 2^16-1 ¤ËÌۤäÆÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ -¸½ºß¤ÎÂоÝÈϰϤÎÃͤòÃΤꤿ¤±¤ì¤Ð¡¢¤¤¤Ä¤Ç¤â +IPv6 の jumbograms (巨大なデータグラム; RFC\ 2675) の場合には、 +UDP-Litev6 のチェックサムの対象範囲は、RFC\ 3828 の 3.5 章にあるように、 +先頭から 2^16-1 オクテットまでに限定される。 +そのため、それより大きな値は 2^16-1 に黙って切り詰められる。 +現在の対象範囲の値を知りたければ、いつでも .BR getsockopt (2) -¤ò»È¤Ã¤ÆÃͤòÌ䤤¹ç¤ï¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使って値を問い合わせることができる。 .TP .BR UDPLITE_RECV_CSCOV -¤³¤ì¤Ï¼õ¿®Â¦¤Î¥Á¥§¥Ã¥¯¥µ¥à¤ÎÂоÝÈϰϤòÀßÄꤹ¤ë¤â¤Î¤Ç¡¢ -»ÈÍѤµ¤ì¤ë°ú¤­¿ô·Á¼°¤ÈÃͤÎÈÏ°Ï¤Ï +これは受信側のチェックサムの対象範囲を設定するもので、 +使用される引き数形式と値の範囲は .B UDPLITE_SEND_CSCOV -¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ÉôʬŪ¤Ê¥Á¥§¥Ã¥¯¥µ¥àÂоÝÈϰϤò»ý¤Ä¥È¥é¥Õ¥£¥Ã¥¯¤ò -Í­¸ú¤Ë¤¹¤ë¤Î¤ËɬÍפʤ櫓¤Ç¤Ï¤Ê¤¯¡¢¥È¥é¥Õ¥£¥Ã¥¯¥Õ¥£¥ë¥¿¡¼¤È¤·¤Æµ¡Ç½¤¹¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤¹¤ë¤È¡¢¥«¡¼¥Í¥ë¤Ï»ØÄꤵ¤ì¤¿¥Á¥§¥Ã¥¯¥µ¥àÂоÝÈÏ°Ï -¤è¤ê¤â¡Öû¤«¤¤¡×ÂоÝÈϰϤò»ý¤Ä¥Ñ¥±¥Ã¥È¤òÁ´¤ÆÇÑ´þ¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£ +と同じである。 +このオプションは、部分的なチェックサム対象範囲を持つトラフィックを +有効にするのに必要なわけではなく、トラフィックフィルターとして機能する。 +このオプションが有効にすると、カーネルは指定されたチェックサム対象範囲 +よりも「短かい」対象範囲を持つパケットを全て廃棄するようになる。 .B UDPLITE_RECV_CSCOV -¤ÎÃͤ¬¼ÂºÝ¤Î¥Ñ¥±¥Ã¥È¤Î¥Á¥§¥Ã¥¯¥µ¥àÂоÝÈϰϤè¤ê¤âÂ礭¤¤¾ì¹ç¡¢ -¼õ¿®¤·¤¿¥Ñ¥±¥Ã¥È¤ÏÌۤäÆÇÑ´þ¤µ¤ì¤ë¡£ -¤¿¤À¤·¡¢¥·¥¹¥Æ¥à¥í¥°¤ËÂФ·¤Æ·Ù¹ð¥á¥Ã¥»¡¼¥¸¤¬À¸À®¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +の値が実際のパケットのチェックサム対象範囲よりも大きい場合、 +受信したパケットは黙って廃棄される。 +ただし、システムログに対して警告メッセージが生成されるかもしれない。 .\" SO_NO_CHECK exists and is supported by UDPv4, but is .\" commented out in socket(7), hence also commented out here .\".PP @@ -124,13 +124,13 @@ UDP-Litev6 .\".B SO_NO_CHECK .\"option from .\".BR socket (7). -.SH ¥¨¥é¡¼ +.SH エラー .BR udp (7) -¤Ë¤Ä¤¤¤Æ½ñ¤«¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¥¨¥é¡¼¤ÏÊÖ¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ -UDP-Lite ¼«ÂΤϿ·¤¿¤Ê¥¨¥é¡¼¤ÏÄɲ䷤Ƥ¤¤Ê¤¤¡£ -.SH ¥Ð¥° +について書かれている全てのエラーは返る可能性がある。 +UDP-Lite 自体は新たなエラーは追加していない。 +.SH バグ .\" FIXME . remove this section once glibc supports UDP-Lite -glibc ¤Ë¤è¤ë¥µ¥Ý¡¼¥È¤¬¤Ê¤¤¾ì¹ç¤Ï¡¢°Ê²¼¤ÎÄêµÁ¤ò¹Ô¤¦É¬Íפ¬¤¢¤ë¡£ +glibc によるサポートがない場合は、以下の定義を行う必要がある。 .in +4n .nf @@ -140,15 +140,15 @@ glibc #define UDPLITE_RECV_CSCOV 11 .fi .in -.SH ¥Õ¥¡¥¤¥ë +.SH ファイル .I /proc/net/snmp -\- UDP-Litev4 ¤Î´ðËÜŪ¤ÊÅý·×¾ðÊ󥫥¦¥ó¥¿¡¼¡£ +\- UDP-Litev4 の基本的な統計情報カウンター。 .br .I /proc/net/snmp6 -\- UDP-Litev6 ¤Î´ðËÜŪ¤ÊÅý·×¾ðÊ󥫥¦¥ó¥¿¡¼¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -UDP-Litev4/v6 ¤Ï Linux 2.6.20 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +\- UDP-Litev6 の基本的な統計情報カウンター。 +.SH バージョン +UDP-Litev4/v6 は Linux 2.6.20 で初めて登場した。 +.SH 関連項目 .BR ip (7), .BR ipv6 (7), .BR socket (7), diff --git a/release/man7/unicode.7 b/release/man7/unicode.7 index e20958c9..62b72ad7 100644 --- a/release/man7/unicode.7 +++ b/release/man7/unicode.7 @@ -35,210 +35,210 @@ .\" by Yuichi SATO .\" .\"WORD: -.\"WORD: diacritical mark ȯ²»¶èÊÌÉä¹æ -.\"WORD: International Phonetic Alphabet ¹ñºÝ²»À¼»úÊì +.\"WORD: diacritical mark 発音区別符号 +.\"WORD: International Phonetic Alphabet 国際音声字母 .\"WORD: .\" .TH UNICODE 7 2001-05-11 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -Unicode \- ÈÆÍÑʸ»ú½¸¹ç -.SH ÀâÌÀ -¹ñºÝµ¬³Ê +.SH 名前 +Unicode \- 汎用文字集合 +.SH 説明 +国際規格 .B ISO 10646 -¤Ï -.B "ÈÆÍÑʸ»ú½¸¹ç (Universal Character Set (UCS))" -¤òÄêµÁ¤·¤Æ¤¤¤ë¡£ -UCS ¤Ï¾µ¬³Ê¤Îʸ»ú½¸¹ç¤Îʸ»ú¤òÁ´¤Æ´Þ¤ó¤Ç¤¤¤ë¡£ -¤µ¤é¤Ë¡¢ -.B "ÁÐÊý¸þ¤Î¸ß´¹À­ (round-trip compatibility)" -¤òÊݾڤ¹¤ë¡£ -Î㤨¤Ð¾¤ÎÉä¹æ¤«¤é UCS ¤ËÊÑ´¹¤·¤µ¤é¤Ë¸µ¤ÎÉä¹æ¤ËÊÑ´¹¤·¤¿¤È¤·¤Æ¤â¡¢ -²¿¤Î¾ðÊó¤â¼º¤Ê¤ï¤ì¤Ê¤¤¤è¤¦¤ËÊÑ´¹¥Æ¡¼¥Ö¥ë¤òºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +は +.B "汎用文字集合 (Universal Character Set (UCS))" +を定義している。 +UCS は他規格の文字集合の文字を全て含んでいる。 +さらに、 +.B "双方向の互換性 (round-trip compatibility)" +を保証する。 +例えば他の符号から UCS に変換しさらに元の符号に変換したとしても、 +何の情報も失なわれないように変換テーブルを作成することができる。 -UCS ¤Ï¸½¼ÂŪ¤ËÃΤé¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¸À¸ì¤òɽ¸½¤¹¤ë¤Î¤ËɬÍפÊʸ»ú¤ò´Þ¤ó¤Ç¤¤¤ë¡£ -¤³¤ì¤Ë¤Ï¥é¥Æ¥óʸ»ú¡¢¥®¥ê¥·¥ãʸ»ú¡¢¥­¥ê¥ëʸ»ú¡¢¥Ø¥Ö¥é¥¤Ê¸»ú¡¢¥¢¥é¥Ó¥¢Ê¸»ú¡¢ -¥¢¥ë¥á¥Ë¥¢Ê¸»ú¡¢¥°¥ë¥¸¥¢Ê¸»ú¤À¤±¤Ç¤Ê¤¯¡¢Ãæ¹ñ¡¦ÆüËÜ¡¦´Ú¹ñ¤Ç»È¤ï¤ì¤Æ¤¤¤ë´Á»ú¡¢ -¤µ¤é¤Ë¤Ï¡¢Ê¿²¾Ì¾¡¢ÊÒ²¾Ì¾¡¢¥Ï¥ó¥°¥ëʸ»ú¡¢ -¥Ç¡¼¥ô¥¡¥Ê¡¼¥¬¥ê¡¼Ê¸»ú¡¢¥Ù¥ó¥¬¥ëʸ»ú¡¢¥°¥ë¥à¥­¡¼Ê¸»ú¡¢¥°¥¸¥ã¥é¡¼¥Èʸ»ú¡¢ -¥ª¥ê¥ä¡¼Ê¸»ú¡¢¥¿¥ß¡¼¥ëʸ»ú¡¢¥Æ¥ë¥°Ê¸»ú¡¢¥«¥Ê¥éʸ»ú¡¢¥Þ¥é¥ä¡¼¥é¥àʸ»ú¡¢ -¥¿¥¤Ê¸»ú¡¢¥é¥ª¥¹Ê¸»ú¡¢¥¯¥á¡¼¥ëʸ»ú¡¢¥Ü¥Ý¥â¥Õ¥©Ê¸»ú (Ãí²»»úÊì)¡¢ -¥Á¥Ù¥Ã¥Èʸ»ú¡¢¥ë¡¼¥óʸ»ú¡¢¥¨¥Á¥ª¥Ô¥¢Ê¸»ú¡¢¥«¥Ê¥À²»Àáʸ»ú¡¢ -¥Á¥§¥í¥­¡¼Ê¸»ú¡¢¥â¥ó¥´¥ëʸ»ú¡¢ -¥ª¥¬¥àʸ»ú¡¢¥ß¥ã¥ó¥Þ¡¼Ê¸»ú¡¢¥·¥ó¥Ï¥éʸ»ú¡¢ -¥¿¡¼¥Êʸ»ú¡¢¥¤ (׳) ʸ»ú¤Ê¤É¤¬´Þ¤Þ¤ì¤ë¡£ -¤Þ¤À¥«¥Ð¡¼¤µ¤ì¤Æ¤¤¤Ê¤¤Ê¸»ú¤ËÉÕ¤¤¤Æ¤â¡¢ -¥³¥ó¥Ô¥å¡¼¥¿¤Ç»ÈÍѤ¹¤ë¤¿¤á¤Ë -¤É¤Î¤è¤¦¤Ê¥¨¥ó¥³¡¼¥É¤¬¤â¤Ã¤È¤âÎɤ¤¤«¤È¤¤¤¦¸¦µæ¤¬¿Ê¤á¤é¤ì¤Æ¤ª¤ê¡¢ -ºÇ½ªÅª¤Ë¤ÏÄɲ䵤ì¤ë¤À¤í¤¦¡£ -¥Ò¥¨¥í¥°¥ê¥Õ¤äÎò»ËŪ¤Ê¤¤¤í¤¤¤í¤Ê¥¤¥ó¥É¡á¥è¡¼¥í¥Ã¥Ñ¸À¸ì¤À¤±¤Ç¤Ê¤¯¡¢ -¥Æ¥ó¥°¥ï¡¼¥ëʸ»ú¡¢¥­¥¢¥¹Ê¸»ú¡¢¥¯¥ê¥ó¥´¥óʸ»ú¤Ê¤É¤Î¿Í¹©Åª¤Ê¸À¸ì¤âÁª¤Ð¤ì¤Æ¤¤¤ë¡£ -UCS ¤Ï¡¢¤³¤ì¤é¤Îʸ»ú¤Ë²Ã¤¨¤Æ¡¢TeX, PostScript, APL, MS-DOS, MS-Windows, -Macintosh, OCR ¥Õ¥©¥ó¥È¡¢¿ô¿¤¯¤Î¥ï¡¼¥É¥×¥í¥»¥Ã¥µ¡¼¤ä -½ÐÈÇ¥·¥¹¥Æ¥à¡¢¤Ê¤É¤¬Ä󶡤¹¤ë -¿Þ·Áµ­¹æ¡¦°õ»úµ­¹æ¡¦¿ô³Øµ­¹æ¡¦²Ê³Øµ­¹æ¤Ê¤É¤Î¿¤¯¤ò´Þ¤à¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ +UCS は現実的に知られている全ての言語を表現するのに必要な文字を含んでいる。 +これにはラテン文字、ギリシャ文字、キリル文字、ヘブライ文字、アラビア文字、 +アルメニア文字、グルジア文字だけでなく、中国・日本・韓国で使われている漢字、 +さらには、平仮名、片仮名、ハングル文字、 +デーヴァナーガリー文字、ベンガル文字、グルムキー文字、グジャラート文字、 +オリヤー文字、タミール文字、テルグ文字、カナラ文字、マラヤーラム文字、 +タイ文字、ラオス文字、クメール文字、ボポモフォ文字 (注音字母)、 +チベット文字、ルーン文字、エチオピア文字、カナダ音節文字、 +チェロキー文字、モンゴル文字、 +オガム文字、ミャンマー文字、シンハラ文字、 +ターナ文字、イ (彝) 文字などが含まれる。 +まだカバーされていない文字に付いても、 +コンピュータで使用するために +どのようなエンコードがもっとも良いかという研究が進められており、 +最終的には追加されるだろう。 +ヒエログリフや歴史的ないろいろなインド=ヨーロッパ言語だけでなく、 +テングワール文字、キアス文字、クリンゴン文字などの人工的な言語も選ばれている。 +UCS は、これらの文字に加えて、TeX, PostScript, APL, MS-DOS, MS-Windows, +Macintosh, OCR フォント、数多くのワードプロセッサーや +出版システム、などが提供する +図形記号・印字記号・数学記号・科学記号などの多くを含むようになった。 -UCS µ¬³Ê (ISO 10646) ¤Ï -.I "31¥Ó¥Ã¥È¤Îʸ»ú½¸¹ç¥¢¡¼¥­¥Æ¥¯¥Á¥ã¡¼" -¤òµ­½Ò¤·¤Æ¤ª¤ê¡¢128 ¸Ä¤Î 24 ¥Ó¥Ã¥È -.IR ·² " (" group ) -¤«¤é¹½À®¤µ¤ì¤Æ¤¤¤ë¡£ -³Æ·²¤Ï 256 ¸Ä¤Î 16 ¥Ó¥Ã¥È -.IR ÌÌ " (" plane ) -¤Ëʬ³ä¤µ¤ì¤Æ¤ª¤ê¡¢³Æʸ»ú¤Ï 256 ¸Ä¤Î 8 ¥Ó¥Ã¥È -.IR ¶è " (" row ) -¤Î 256 -.IR ÅÀ " (" column ) -¤ÎÃæ¤Ë°ÌÃÖ¤¹¤ë¡£ -¤³¤Îµ¬³Ê¤Î Part 1 +UCS 規格 (ISO 10646) は +.I "31ビットの文字集合アーキテクチャー" +を記述しており、128 個の 24 ビット +.IR 群 " (" group ) +から構成されている。 +各群は 256 個の 16 ビット +.IR 面 " (" plane ) +に分割されており、各文字は 256 個の 8 ビット +.IR 区 " (" row ) +の 256 +.IR 点 " (" column ) +の中に位置する。 +この規格の Part 1 .RB ( "ISO 10646-1" ) -¤Ç¤Ï¡¢ºÇ½é¤Î 65534 ¸Ä¤Î¥³¡¼¥É°ÌÃÖ (0x0000 ¡Á 0xfffd) ¤òÄêµÁ¤·¤Æ¤¤¤ë¡£ -¤³¤ì¤ÏÂè 0 ·²¤ÎÂè 0 Ì̤Ǥ¢¤ë -.IR "´ðËÜ¿¸À¸ìÌÌ (Basic Multilingual Plane (BMP))" -¤ò¹½À®¤¹¤ë¡£ -¤³¤Îµ¬³Ê¤Î Part 2 +では、最初の 65534 個のコード位置 (0x0000 〜 0xfffd) を定義している。 +これは第 0 群の第 0 面である +.IR "基本多言語面 (Basic Multilingual Plane (BMP))" +を構成する。 +この規格の Part 2 .RB ( "ISO 10646-2" ) -¤Ç¤Ï¡¢Âè 0 ·²¤Î BMP ¤Î³°Éô¤Ç¤¢¤ë -0x10000 ¡Á 0x10ffff ¤ÎÈϰϤˤ¢¤ë -.I "Êä½õÌÌ" -¤Ëʸ»ú¤òÄɲä·¤¿¡£ -¤³¤Îµ¬³Ê¤Ç¤Ï 0x10ffff ¤ò±Û¤¨¤¿°ÌÃÖ¤Ëʸ»ú¤òÄɲ乤ëͽÄê¤Ï¤Ê¤¤¤Î¤Ç¡¢ -ͽÁۤǤ­¤ë¾­Íè¤Ë¤ª¤¤¤Æ¤Ï¡¢ -Á´¥³¡¼¥É¶õ´Ö¤Î¤¦¤Á¥°¥ë¡¼¥× 0 ¤Î°ìÉôʬ¤Ï¼ÂºÝ¤Ë¤Ï»È¤ï¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£ -BMP ¤Ë¤Ï¾¤Îʸ»ú½¸¹ç¤Ç°ìÈ̤˻Ȥï¤ì¤ëÁ´¤Æ¤Îʸ»ú¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -ISO 10646-2 ¤ÇÄɲ䵤줿Êä½õÌ̤ϡ¢ -ÆÃÄê¤Î²Ê³ØʬÌ¼­½ñ½ÐÈÇ¡¦°õºþ»º¶È¡¦¹â¼¡¥×¥í¥È¥³¥ë¡¦ -²¿¤«¤Î¥Õ¥¡¥ó¤Î´Ö¤Ê¤É¤Ç»È¤ï¤ì¤ëÆüì¤Êʸ»ú¤À¤±¤ò¥«¥Ð¡¼¤¹¤ë¡£ +では、第 0 群の BMP の外部である +0x10000 〜 0x10ffff の範囲にある +.I "補助面" +に文字を追加した。 +この規格では 0x10ffff を越えた位置に文字を追加する予定はないので、 +予想できる将来においては、 +全コード空間のうちグループ 0 の一部分は実際には使われることはない。 +BMP には他の文字集合で一般に使われる全ての文字が含まれている。 +ISO 10646-2 で追加された補助面は、 +特定の科学分野・辞書出版・印刷産業・高次プロトコル・ +何かのファンの間などで使われる特殊な文字だけをカバーする。 .PP -UCS ʸ»ú¤ò 2 ¥Ð¥¤¥È¤Î¥ï¡¼¥É¤Çɽ¸½¤¹¤ë¤Î¤¬ +UCS 文字を 2 バイトのワードで表現するのが .B UCS-2 -·Á¼°¤Ç¤¢¤ë (BMP ʸ»ú¤Î¤ß)¡£ -¤Þ¤¿¡¢ +形式である (BMP 文字のみ)。 +また、 .B UCS-4 -¤Ç¤Ïʸ»ú¤ò 4 ¥Ð¥¤¥È¤Î¥ï¡¼¥É¤Çɽ¸½¤¹¤ë¡£ -¤µ¤é¤Ë¡¢ASCII ¤ò½èÍý¤¹¤ë¥½¥Õ¥È¥¦¥§¥¢¤Ø¤Î²¼°Ì¸ß´¹¤Î¤¿¤á¤Ë +では文字を 4 バイトのワードで表現する。 +さらに、ASCII を処理するソフトウェアへの下位互換のために .B UTF-8 -¥¨¥ó¥³¡¼¥É·Á¼°¤¬¤¢¤ë¡£ -¤Þ¤¿¡¢0x10ffff ¤Þ¤Ç¤ÎÈó BMP ʸ»ú¤ò°·¤¦ -UCS-2 Âбþ¥½¥Õ¥È¥¦¥§¥¢¤È¤Î¸ß´¹¤Î¤¿¤á¤Ë +エンコード形式がある。 +また、0x10ffff までの非 BMP 文字を扱う +UCS-2 対応ソフトウェアとの互換のために .B UTF-16 -¥¨¥ó¥³¡¼¥É·Á¼°¤¬¤¢¤ë¡£ +エンコード形式がある。 .PP -UCS ʸ»ú½¸¹ç¤Î 0x0000 ¤«¤é 0x007f ¤Ï¡¢¸ÅŵŪ¤Ê +UCS 文字集合の 0x0000 から 0x007f は、古典的な .B US-ASCII -ʸ»ú½¸¹ç¤Îʸ»ú¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -¤Þ¤¿ 0x0000 ¤«¤é 0x00ff ¤ÎÈϰϤǤϡ¢ +文字集合の文字と同じである。 +また 0x0000 から 0x00ff の範囲では、 .B ISO 8859-1 Latin-1 -ʸ»ú½¸¹ç¤Îʸ»ú¤ÈƱ¤¸¤Ç¤¢¤ë¡£ -.SS "¹çÀ®Ê¸»ú (Combining Characters)" +文字集合の文字と同じである。 +.SS "合成文字 (Combining Characters)" .B UCS -¤Î¤¤¤¯¤Ä¤«¤Î¥³¡¼¥É¡¦¥Ý¥¤¥ó¥È¤Ï -.I "¹çÀ®Ê¸»ú (combining characters)" -¤Ë³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¡£ -¤³¤ì¤é¤Ï¥¿¥¤¥×¥é¥¤¥¿¡¼¤Î°ÜÆ°¤·¤Ê¤¤¥¢¥¯¥»¥ó¥È¡¦¥­¡¼¤Ë»÷¤Æ¤¤¤ë¡£ -¹çÀ®Ê¸»ú¤ÏľÁ°¤Îʸ»ú¤Ë¥¢¥¯¥»¥ó¥È¤Î¤ß¤ò²Ã¤¨¤ë¡£ -ºÇ¤â½ÅÍפʥ¢¥¯¥»¥ó¥ÈÉÕ¤­¤Îʸ»ú¤Ï¤½¤ì¼«¿È¤Î¥³¡¼¥É¤ò UCS ¤Ë»ý¤Ã¤Æ¤¤¤ë¡£ -°ìÊý¤Ç¹çÀ®Ê¸»úµ¡¹½¤ÏÁ´¤Æ¤Îʸ»ú¤Ë¥¢¥¯¥»¥ó¥È¤äȯ²»¶èÊÌÉä¹æ¤ò²Ã¤¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¹çÀ®Ê¸»ú¤Ï¾ï¤Ë¤½¤ì¤¬½¤Àµ¤¹¤ëʸ»ú¤Ë³¤¯¡£ -Î㤨¤Ð¥É¥¤¥Ä¸ì¤Îʸ»ú A ¥¦¥à¥é¥¦¥È ("Latin capital letter A with diaeresis") ¤Ï -UCS ¤ËÁ°¤â¤Ã¤Æ½àÈ÷¤µ¤ì¤¿¥³¡¼¥É 0x00c4 ¤Ç¤â¡¢ -Ä̾ï¤Î A "Latin capital letter A" ¤Ë -"combining diaeresis (¹çÀ®Ê¬²»µ­¹æ)" ¤ò³¤±¤¿Áȹ礻 -(0x0041 0x0308) ¤Î¤É¤Á¤é¤Ç¤âɽ¸½¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +のいくつかのコード・ポイントは +.I "合成文字 (combining characters)" +に割り当てられている。 +これらはタイプライターの移動しないアクセント・キーに似ている。 +合成文字は直前の文字にアクセントのみを加える。 +最も重要なアクセント付きの文字はそれ自身のコードを UCS に持っている。 +一方で合成文字機構は全ての文字にアクセントや発音区別符号を加えることができる。 +合成文字は常にそれが修正する文字に続く。 +例えばドイツ語の文字 A ウムラウト ("Latin capital letter A with diaeresis") は +UCS に前もって準備されたコード 0x00c4 でも、 +通常の A "Latin capital letter A" に +"combining diaeresis (合成分音記号)" を続けた組合せ +(0x0041 0x0308) のどちらでも表現することができる。 .PP -¹çÀ®Ê¸»ú¤Ï¡¢¥¿¥¤Ê¸»ú¤ä¿ô³Ø¿¢»ú¤Î¥¨¥ó¥³¡¼¥É¡¦ -¹ñºÝ²»À¼»úÊì¤ò»È¤¦¥æ¡¼¥¶¡¼¤Ê¤É¤Ë¤Ïɬ¿Ü¤Ç¤¢¤ë¡£ -.SS ¼ÂÁõ¥ì¥Ù¥ë -Á´¤Æ¤Î¥·¥¹¥Æ¥à¤Ë¹çÀ®Ê¸»ú¤Î¤è¤¦¤Ê¿Ê¤ó¤À¥µ¥Ý¡¼¥È¤ò´üÂÔ¤·¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -ISO 10646-1 ¤Ï°Ê²¼¤Î»°Ãʳ¬¤Î UCS ¤Î¼ÂÁõ¥ì¥Ù¥ë¤ò»ØÄꤷ¤Æ¤¤¤ë¡£ +合成文字は、タイ文字や数学植字のエンコード・ +国際音声字母を使うユーザーなどには必須である。 +.SS 実装レベル +全てのシステムに合成文字のような進んだサポートを期待しているわけではない。 +ISO 10646-1 は以下の三段階の UCS の実装レベルを指定している。 .TP 0.9i Level 1 -¹çÀ®Ê¸»ú¤È -.B ¥Ï¥ó¥°¥ë¡¦¥¸¥ã¥âʸ»ú -(¤¤¤í¤¤¤í¤Ê´Ú¹ñ¡¦Ä«Á¯Ê¸»ú¤ÎÉä¹æ²½¡£ -¤³¤ÎÉä¹æ²½¤Ç¤Ï¡¢¥Ï¥ó¥°¥ë²»Àá¤Î¥°¥ê¥Õ¤¬ -3 ¤Ä¤Þ¤¿¤Ï 2 ¤Ä¤ÎÊì²»¡¦»Ò²»¥³¡¼¥É¤ÎÁȤ߹ç¤ï¤»¤ÇÉä¹æ²½¤µ¤ì¤ë) ¤Ï¥µ¥Ý¡¼¥È¤·¤Ê¤¤¡£ +合成文字と +.B ハングル・ジャモ文字 +(いろいろな韓国・朝鮮文字の符号化。 +この符号化では、ハングル音節のグリフが +3 つまたは 2 つの母音・子音コードの組み合わせで符号化される) はサポートしない。 .TP Level 2 -Level 1 ¤ÈƱÍͤÀ¤¬¡¢¹çÀ®Ê¸»ú¤òɬ¿Ü¤È¤¹¤ë¸À¸ì¤Î¤¿¤á¤Îʸ»ú -(Î㤨¤Ð¡¢¥¿¥¤Ê¸»ú¡¦¥é¥ª¥¹Ê¸»ú¡¦¥Ø¥Ö¥é¥¤Ê¸»ú¡¦¥¢¥é¥Ó¥¢Ê¸»ú¡¦ -¥Ç¡¼¥ô¥¡¥Ê¡¼¥¬¥ê¡¼Ê¸»ú¡¦¥Þ¥ì¥ä¡¼¥é¥àʸ»ú¤Ê¤É) ¤Ï»È¤¨¤ë¡£ +Level 1 と同様だが、合成文字を必須とする言語のための文字 +(例えば、タイ文字・ラオス文字・ヘブライ文字・アラビア文字・ +デーヴァナーガリー文字・マレヤーラム文字など) は使える。 .TP Level 3 -Á´¤Æ¤Î +全ての .B UCS -ʸ»ú¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ +文字をサポートする。 .PP -.B ¥æ¥Ë¥³¡¼¥É¡¦¥³¥ó¥½¡¼¥·¥¢¥à (Unicode Consortium) -¤«¤éȯ¹Ô¤µ¤ì¤¿ +.B ユニコード・コンソーシアム (Unicode Consortium) +から発行された .B Unicode 3.0 Standard -¤Ï¡¢ISO 10646-1:2000 ¤Ëµ­½Ò¤µ¤ì¤¿ +は、ISO 10646-1:2000 に記述された .B UCS Basic Multilingual Plane -¤Î level 3 ¼ÂÁõ¤ÈÁ´¤¯Æ±¤¸¤Ç¤¢¤ë¡£ +の level 3 実装と全く同じである。 .B Unicode 3.1 -¤Ç¤Ï ISO 10646-2 ¤ÎÊä½õÌ̤¬Äɲ䵤ì¤Æ¤¤¤ë¡£ -Unicode Consortium ¤«¤éȯ¹Ô¤µ¤ì¤ë Unicode µ¬³Ê¤Èµ»½Ñ¥ì¥Ý¡¼¥È¤Ë¤è¤ê¡¢ -¤¤¤í¤¤¤í¤Êʸ»ú¤Î°ÕÌ£¤È¿ä¾©¤µ¤ì¤ë»ÈÍÑË¡¤Ë¤Ä¤¤¤Æ¤Î¹¹¤Ê¤ë¾ðÊó¤¬ÆÀ¤é¤ì¤ë¡£ -¤³¤ì¤é¤Îµ¬³Ê½ñ¤äµ»½Ñ¥ì¥Ý¡¼¥È¤Ç¡¢Unicode ʸ»úÎó¤ò -ÊÔ½¸¡¦Ê¤ÙÂؤ¨¡¦Èæ³Ó¡¦Àµµ¬²½¡¦ÊÑ´¹¡¦É½¼¨¤¹¤ë¤¿¤á¤Î -¥¬¥¤¥É¥é¥¤¥ó¤È¥¢¥ë¥´¥ê¥º¥à¤¬Ê¬¤«¤ë¡£ -.SS "Linux ¤Ë¤ª¤±¤ë Unicode" -GNU/Linux ¤Ç¤Ï¡¢C ¸À¸ì¤Î·¿ +では ISO 10646-2 の補助面が追加されている。 +Unicode Consortium から発行される Unicode 規格と技術レポートにより、 +いろいろな文字の意味と推奨される使用法についての更なる情報が得られる。 +これらの規格書や技術レポートで、Unicode 文字列を +編集・並べ替え・比較・正規化・変換・表示するための +ガイドラインとアルゴリズムが分かる。 +.SS "Linux における Unicode" +GNU/Linux では、C 言語の型 .B wchar_t -¤ÏÉä¹æÉÕ¤­ 32 ¥Ó¥Ã¥ÈÀ°¿ô·¿¤Ç¤¢¤ë¡£ -¤½¤ÎÃÍ¤Ï C ¥é¥¤¥Ö¥é¥ê¤Ë¤è¤ê (¤¹¤Ù¤Æ¤Î¥í¥±¡¼¥ë¤Ë¤ª¤¤¤Æ) ¾ï¤Ë +は符号付き 32 ビット整数型である。 +その値は C ライブラリにより (すべてのロケールにおいて) 常に .B UCS -¥³¡¼¥É¤ÎÃͤȤ·¤Æ²ò¼á¤µ¤ì¤ë¡£ -¤³¤ì¤ò GNU C ¥é¥¤¥Ö¥é¥ê¤¬¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ËÃΤ餻¤ë¤¿¤á¤Îµ¬Ìó¤È¤·¤Æ¡¢ -Äê¿ô +コードの値として解釈される。 +これを GNU C ライブラリがアプリケーションに知らせるための規約として、 +定数 .B __STDC_ISO_10646__ -¤òÄêµÁ¤¹¤ë¡£ -¤³¤ì¤Ï ISO C99 µ¬³Ê¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¡£ +を定義する。 +これは ISO C99 規格で指定されている。 -ASCII ¸ß´¹¤Î +ASCII 互換の .B UTF-8 -¥Þ¥ë¥Á¥Ð¥¤¥È¥¨¥ó¥³¡¼¥É¤Ç¤Ï¡¢Æþ½ÐÎÏ¥¹¥È¥ê¡¼¥à¡¦Ã¼ËöÄÌ¿®¡¦ -¥×¥ì¡¼¥ó¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¡¦¥Õ¥¡¥¤¥ë̾¡¦´Ä¶­ÊÑ¿ô¤Ë¤ª¤¤¤Æ¡¢ -UCS/Unicode ¤ò ASCII ¤Î¤è¤¦¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -UTF-8 ¤òʸ»ú¥¨¥ó¥³¡¼¥É¤È¤·¤Æ»È¤¦¤³¤È¤ò -Á´¤Æ¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ËÃΤ餻¤ë¤¿¤á¤Ë¤Ï¡¢ -("LANG=en_GB.UTF-8" ¤Î¤è¤¦¤Ë) ´Ä¶­ÊÑ¿ô¤ò»È¤Ã¤ÆŬÀÚ¤Ê -.I ¥í¥±¡¼¥ë (locale) -¤òÁªÂò¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +マルチバイトエンコードでは、入出力ストリーム・端末通信・ +プレーンテキストファイル・ファイル名・環境変数において、 +UCS/Unicode を ASCII のように使うことができる。 +UTF-8 を文字エンコードとして使うことを +全てのアプリケーションに知らせるためには、 +("LANG=en_GB.UTF-8" のように) 環境変数を使って適切な +.I ロケール (locale) +を選択しなければならない。 .PP .B nl_langinfo(CODESET) -´Ø¿ô¤ÏÁªÂò¤µ¤ì¤¿¥¨¥ó¥³¡¼¥É¤Î̾Á°¤òÊÖ¤¹¡£ -ÆâÉôŪ¤Ê +関数は選択されたエンコードの名前を返す。 +内部的な .I wchar_t -ʸ»ú¤äʸ»úÎó¤ò¥·¥¹¥Æ¥àʸ»úÎ󥨥󥳡¼¥É¤ËÊÑ´¹ (µÕÊÑ´¹) ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë +文字や文字列をシステム文字列エンコードに変換 (逆変換) するのに使われる .BR wctomb (3) -¤ä -.BR mbsrtowcs (3)¡¢ -¤µ¤é¤Ë¤Ï +や +.BR mbsrtowcs (3)、 +さらには .BR wcwidth (3) -¤È¤¤¤Ã¤¿¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ï¡¢ -ʸ»ú½ÐÎϤǤɤì¤À¤±¥«¡¼¥½¥ë¤¬¿Ê¤ó¤À¤« (0\(en2) ¤òÊÖ¤¹¡£ +といったライブラリ関数は、 +文字出力でどれだけカーソルが進んだか (0\(en2) を返す。 .PP -°ìÈÌŪ¤Ë¸À¤¦¤È¡¢Linux ¤Ç¤Ï¸½ºß¤Î¤È¤³¤í -BMP ¤Î level 1 ¼ÂÁõ¤Î¤ß¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£ -¤¢¤ë¸À¸ì¤Îʸ»ú (¤È¤¯¤Ë¥¿¥¤Ê¸»ú) ¤Ç¤Ï¡¢ -¥Ù¡¼¥¹Ê¸»úÅö¤¿¤ê 2 ¤Ä¤Þ¤Ç¤Î¹çÀ®Ê¸»ú¤ò»È¤¦¤³¤È¤¬ -UTF-8 üËö¥¨¥ß¥å¥ì¡¼¥¿¤È ISO 10646 ¥Õ¥©¥ó¥È (level 2) ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -¤·¤«¤·°ìÈÌŪ¤Ë¸À¤¨¤Ð¡¢¤â¤·²Äǽ¤Ê¤é¤Ð¤¢¤é¤«¤¸¤á¹çÀ®¤·¤¿Ê¸»ú¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë -(Unicode ¤Ç¤Ï¡¢¤³¤ì¤ò -.B "Normalization Form C (¹çÀ®Ê¸»ú¤ÎÀµµ¬²½·Á¼°)" -¤È¤¤¤¦)¡£ -.SS ¥×¥é¥¤¥Ù¡¼¥È¡¦¥¨¥ê¥¢ +一般的に言うと、Linux では現在のところ +BMP の level 1 実装のみを使うべきである。 +ある言語の文字 (とくにタイ文字) では、 +ベース文字当たり 2 つまでの合成文字を使うことが +UTF-8 端末エミュレータと ISO 10646 フォント (level 2) でサポートされている。 +しかし一般的に言えば、もし可能ならばあらかじめ合成した文字を使うべきである +(Unicode では、これを +.B "Normalization Form C (合成文字の正規化形式)" +という)。 +.SS プライベート・エリア .B BMP -¤Î 0xe000 ¡Á 0xf8ff ¤ÎÈϰϤϡ¢µ¬³Ê¤Ç¤Ï¤¤¤«¤Ê¤ëʸ»ú¤â³ä¤êÅö¤Æ¤º¡¢ -»äŪ¤Ê»ÈÍѤΤ¿¤á¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£ -Linux ¥³¥ß¥å¥Ë¥Æ¥£¤Ç¤Ï¡¢ -¤³¤Î¥×¥é¥¤¥Ù¡¼¥È¡¦¥¨¥ê¥¢¤ò¤µ¤é¤ËºÙ¤«¤¯Ê¬³ä¤·¤Æ»ÈÍѤ¹¤ë¡£ -0xe000 ¡Á 0xefff ¤ÎÈϰϤϥ¨¥ó¥É¡¦¥æ¡¼¥¶¡¼¤¬¸Ä¡¹¤Ë»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -0xf000 ¡Á 0xf8ff ¤ÎÈÏ°Ï¤Ï Linux Zone ¤Ç -Á´¤Æ¤Î Linux ¥æ¡¼¥¶¡¼¤Ç¶¦Ä̤˻ÈÍѤ¹¤ë¡£ -Linux Zone ¤Ø¤Îʸ»ú³ä¤êÅö¤Æ¤ÎÅÐÏ¿¤Ï¡¢ -¸½ºß H. Peter Anvin ¤Ë¤è¤Ã¤Æ´ÉÍý¤µ¤ì¤Æ¤¤¤ë¡£ -.SS ʸ¸¥ +の 0xe000 〜 0xf8ff の範囲は、規格ではいかなる文字も割り当てず、 +私的な使用のために予約されている。 +Linux コミュニティでは、 +このプライベート・エリアをさらに細かく分割して使用する。 +0xe000 〜 0xefff の範囲はエンド・ユーザーが個々に使用することができる。 +0xf000 〜 0xf8ff の範囲は Linux Zone で +全ての Linux ユーザーで共通に使用する。 +Linux Zone への文字割り当ての登録は、 +現在 H. Peter Anvin によって管理されている。 +.SS 文献 .TP 0.2i * Information technology \(em Universal Multiple-Octet Coded Character @@ -246,10 +246,10 @@ Set (UCS) \(em Part 1: Architecture and Basic Multilingual Plane. International Standard ISO/IEC 10646-1, International Organization for Standardization, Geneva, 2000. -¤³¤ì¤Ï +これは .B UCS -¤Î¸ø¼°¤Ê»ÅÍͤǤ¢¤ë¡£ -http://www.iso.ch/ ¤«¤éÃíʸ¤Ç¤­¤ë CD-ROM ¤Ç PDF ¥Õ¥¡¥¤¥ë¤È¤·¤ÆÆþ¼ê¤Ç¤­¤ë¡£ +の公式な仕様である。 +http://www.iso.ch/ から注文できる CD-ROM で PDF ファイルとして入手できる。 .TP * The Unicode Standard, Version 3.0. @@ -260,27 +260,27 @@ Reading, MA, 2000, ISBN 0-201-61633-5. S. Harbison, G. Steele. C: A Reference Manual. Fourth edition, Prentice Hall, Englewood Cliffs, 1995, ISBN 0-13-326224-3. -C ¥×¥í¥°¥é¥à¸À¸ì¤Ë¤Ä¤¤¤Æ¤Î¤È¤Æ¤âÎɤ¤»²¹Í½ñ¤Ç¤¢¤ë¡£ -Âè»ÍÈǤǤϡ¢¥ï¥¤¥Éʸ»ú¤ä¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¥¨¥ó¥³¡¼¥É¤ò°·¤¦¤¿¤á¤Î -¿¤¯¤Î¿·¤·¤¤ C ¥é¥¤¥Ö¥é¥ê´Ø¿ô¤¬ -²Ã¤¨¤é¤ì¤¿ ISO C90 µ¬³Ê¤Î 1994 Amendment 1 ¤ò¥«¥Ð¡¼¤·¤Æ¤¤¤ë¡£ -¤·¤«¤·¡¢¥ï¥¤¥Éʸ»ú¤ä¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤Î¥µ¥Ý¡¼¥È¤ò -¹¹¤Ë²þÁ±¤·¤¿ ISO C99 ¤Ï¡¢¤Þ¤À¥«¥Ð¡¼¤·¤Æ¤¤¤Ê¤¤¡£ +C プログラム言語についてのとても良い参考書である。 +第四版では、ワイド文字やマルチバイト文字エンコードを扱うための +多くの新しい C ライブラリ関数が +加えられた ISO C90 規格の 1994 Amendment 1 をカバーしている。 +しかし、ワイド文字やマルチバイト文字のサポートを +更に改善した ISO C99 は、まだカバーしていない。 .TP * -Unicode µ»½Ñ¥ì¥Ý¡¼¥È¡£ +Unicode 技術レポート。 .RS http://www.unicode.org/unicode/reports/ .RE .TP * -Markus Kuhn: UNIX/Linux ¤Î¤¿¤á¤Î UTF-8 ¤È Unicode ¤Î FAQ¡£ +Markus Kuhn: UNIX/Linux のための UTF-8 と Unicode の FAQ。 .RS http://www.cl.cam.ac.uk/~mgk25/unicode.html .I linux-utf8 -¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ò¹ØÆɤ¹¤ë¤¿¤á¤Î¾ðÊ󤬤¢¤ë¡£ -Linux ¤Ç Unicode ¤ò»È¤¦¾ì¹ç¤Î¥¢¥É¥Ð¥¤¥¹¤òõ¤¹¤Î¤Ë°ìÈÖÎɤ¤¾ì½ê¤Ç¤¢¤ë¡£ +メーリングリストを購読するための情報がある。 +Linux で Unicode を使う場合のアドバイスを探すのに一番良い場所である。 .RE .TP * @@ -288,27 +288,27 @@ Bruno Haible: Unicode HOWTO. .RS ftp://ftp.ilog.fr/pub/Users/haible/utf8/Unicode-HOWTO.html .RE -.SH ¥Ð¥° -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤òºÇ¸å¤Ë²þÄû¤·¤¿»þÅÀ¤Ç¡¢ -GNU C ¥é¥¤¥Ö¥é¥ê¤Î +.SH バグ +このマニュアル・ページを最後に改訂した時点で、 +GNU C ライブラリの .B UTF-8 -¥µ¥Ý¡¼¥È¤Ï´°À®¤·¤Æ¤¤¤ë¡£ -XFree86 ¤Ë¤è¤ë¥µ¥Ý¡¼¥È¤Ï¿Ê¹ÔÃæ¤Ç¤¢¤ë¡£ +サポートは完成している。 +XFree86 によるサポートは進行中である。 .B UTF-8 -¥í¥±¡¼¥ë¤Ç²÷Ŭ¤Ë»È¤¨¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó -(¿¤¯¤Îͭ̾¤Ê¥¨¥Ç¥£¥¿) ¤ÎºîÀ®¤Ï¡¢¤Þ¤À¿Ê¹ÔÃæ¤Ç¤¢¤ë¡£ -Linux ¤Ç¤Î +ロケールで快適に使えるアプリケーション +(多くの有名なエディタ) の作成は、まだ進行中である。 +Linux での .B UCS -¥µ¥Ý¡¼¥È¤Ç¤ÏÄ̾ï CJK ¤Î 2 ¥ï¥¤¥Éʸ»ú¤¬Ä󶡤µ¤ì¤ë¡£ -ñ½ã¤Ê½Å¤ÍÂǤÁ¤Ë¤è¤ë¹çÀ®Ê¸»ú¤¬Ä󶡤µ¤ì¤ë¾ì¹ç¤â¤¢¤ë¡£ -¤·¤«¤·¡¢±¦¤«¤éº¸¤Ø½ñ¤¯Ê¸»ú¤ä¥Ø¥Ö¥é¥¤Ê¸»ú¡¦¥¢¥é¥Ó¥¢Ê¸»ú¡¦¥¤¥ó¥É¸ì·Ïʸ»ú¤Ê¤É¤Î -¹ç»ú¤ÎÃÖ¤­´¹¤¨¤òɬÍפȤ¹¤ëʸ»ú¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -¸½ºß¡¢¤³¤ì¤é¤Îʸ»ú¤ÏÀöÎý¤µ¤ì¤¿¥Æ¥­¥¹¥ÈÉÁ²è¥¨¥ó¥¸¥ó¤òÈ÷¤¨¤¿ -GUI ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó (HTML ¥Ó¥å¡¼¥¢¡¦¥ï¡¼¥É¥×¥í¥»¥Ã¥µ) ¤Ç¤Î¤ß -¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ -.\" .SH Ãø¼Ô +サポートでは通常 CJK の 2 ワイド文字が提供される。 +単純な重ね打ちによる合成文字が提供される場合もある。 +しかし、右から左へ書く文字やヘブライ文字・アラビア文字・インド語系文字などの +合字の置き換えを必要とする文字はサポートされていない。 +現在、これらの文字は洗練されたテキスト描画エンジンを備えた +GUI アプリケーション (HTML ビューア・ワードプロセッサ) でのみ +サポートされている。 +.\" .SH 著者 .\" Markus Kuhn -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR setlocale (3), .BR charsets (7), .BR utf-8 (7) diff --git a/release/man7/units.7 b/release/man7/units.7 index 945b6f19..e80e8c80 100644 --- a/release/man7/units.7 +++ b/release/man7/units.7 @@ -25,64 +25,64 @@ .\" Translated Wed 2 Jan 2002 by NAKANO Takeo .\" .TH UNITS 7 2001-12-22 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -units, kilo, kibi, mega, mebi, giga, gibi \- 10 ¿Ê¤ª¤è¤Ó 2 ¿Ê¤ÎÀÜƬ¸ì -.SH ÀâÌÀ -.SS 10 ¿Ê¤ÎÀÜƬ¸ì -SI ñ°Ì·Ï¤Ç¤Ï 10 ¤ÎÎß¾è¤ò¼¨¤¹ÀÜƬ¸ì¤òÍѤ¤¤ë¡£ -¥­¥í¥á¡¼¥È¥ë¤Ï 1000 ¥á¡¼¥È¥ë¡¢¥á¥¬¥ï¥Ã¥È¤Ï 1000000 ¥ï¥Ã¥È¤Ç¤¢¤ë¡£ -¼¡¤Ëɸ½àŪ¤ÊÀÜƬ¸ì¤ò¼¨¤¹¡£ +.SH 名前 +units, kilo, kibi, mega, mebi, giga, gibi \- 10 進および 2 進の接頭語 +.SH 説明 +.SS 10 進の接頭語 +SI 単位系では 10 の累乗を示す接頭語を用いる。 +キロメートルは 1000 メートル、メガワットは 1000000 ワットである。 +次に標準的な接頭語を示す。 .RS .TS l l l. -ÀÜƬ¸ì ̾Á° ÃÍ -y ¥è¥¯¥È(yocto) 10^-24 = 0.000000000000000000000001 -z ¥¼¥×¥È(zepto) 10^-21 = 0.000000000000000000001 -a ¥¢¥È(atto) 10^-18 = 0.000000000000000001 -f ¥Õ¥§¥à¥È(femto) 10^-15 = 0.000000000000001 -p ¥Ô¥³(pico) 10^-12 = 0.000000000001 -n ¥Ê¥Î(nano) 10^-9 = 0.000000001 -u ¥Þ¥¤¥¯¥í(micro) 10^-6 = 0.000001 -m ¥ß¥ê(milli) 10^-3 = 0.001 -c ¥»¥ó¥Á(centi) 10^-2 = 0.01 -d ¥Ç¥·(deci) 10^-1 = 0.1 -da ¥Ç¥«(deka) 10^ 1 = 10 -h ¥Ø¥¯¥È(hecto) 10^ 2 = 100 -k ¥­¥í(kilo) 10^ 3 = 1000 -M ¥á¥¬(mega) 10^ 6 = 1000000 -G ¥®¥¬(giga) 10^ 9 = 1000000000 -T ¥Æ¥é(tera) 10^12 = 1000000000000 -P ¥Ú¥¿(peta) 10^15 = 1000000000000000 -E ¥¨¥¯¥µ(exa) 10^18 = 1000000000000000000 -Z ¥¼¥¿(zetta) 10^21 = 1000000000000000000000 -Y ¥è¥¿(yotta) 10^24 = 1000000000000000000000000 +接頭語 名前 値 +y ヨクト(yocto) 10^-24 = 0.000000000000000000000001 +z ゼプト(zepto) 10^-21 = 0.000000000000000000001 +a アト(atto) 10^-18 = 0.000000000000000001 +f フェムト(femto) 10^-15 = 0.000000000000001 +p ピコ(pico) 10^-12 = 0.000000000001 +n ナノ(nano) 10^-9 = 0.000000001 +u マイクロ(micro) 10^-6 = 0.000001 +m ミリ(milli) 10^-3 = 0.001 +c センチ(centi) 10^-2 = 0.01 +d デシ(deci) 10^-1 = 0.1 +da デカ(deka) 10^ 1 = 10 +h ヘクト(hecto) 10^ 2 = 100 +k キロ(kilo) 10^ 3 = 1000 +M メガ(mega) 10^ 6 = 1000000 +G ギガ(giga) 10^ 9 = 1000000000 +T テラ(tera) 10^12 = 1000000000000 +P ペタ(peta) 10^15 = 1000000000000000 +E エクサ(exa) 10^18 = 1000000000000000000 +Z ゼタ(zetta) 10^21 = 1000000000000000000000 +Y ヨタ(yotta) 10^24 = 1000000000000000000000000 .TE .RE .sp -¥Þ¥¤¥¯¥í¤Îµ­¹æ¤Ï¥®¥ê¥·¥ãʸ»ú¤Î¦Ì¤Ç¤¢¤ë¤¬¡¢ -ASCII ¤Ç¥Æ¥­¥¹¥È¤¬µ­½Ò¤µ¤ì¤Æ¤¤¤Æ¡¢¥®¥ê¥·¥ãʸ»ú¤¬»È¤¨¤Ê¤¤¾ì¹ç¤Ï -u ¤È½ñ¤«¤ì¤ë¤³¤È¤¬Â¿¤¤¡£ +マイクロの記号はギリシャ文字のμであるが、 +ASCII でテキストが記述されていて、ギリシャ文字が使えない場合は +u と書かれることが多い。 .sp .RS http://physics.nist.gov/cuu/Units/prefixes.html .RE .sp -¤â»²¹Í¤Ë¤·¤Æ¤Û¤·¤¤¡£ -.SS 2 ¿Ê¤ÎÀÜƬ¸ì -2 ¿Ê¤ÎÀÜƬ¸ì¤Ï 10 ¿Ê¤ÎÀÜƬ¸ì¤È»÷¤Æ¤¤¤ë¤¬¡¢¸å¤í¤Ë \(aqi\(aq ¤¬ÉÕ¤¯ -(¤Þ¤¿ "Ki" ¤Ë¤Ä¤¤¤Æ¤ÏÂçʸ»ú¤Î \(aqK\(aq) ¤Ç»Ï¤Þ¤ë)¡£ -̾Á°¤Ï¡¢¤À¤¤¤¿¤¤Æ±¤¸¤¯¤é¤¤¤Î 10 ¿ÊÀÜƬ¸ì¤ÎºÇ½é¤Î²»Àá¤Ë¡¢ -2 ¿Ê¿ô¤Ç¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë "bi" ¤ò­¤·¤¿¤â¤Î¤Ë¤Ê¤ë¡£ +も参考にしてほしい。 +.SS 2 進の接頭語 +2 進の接頭語は 10 進の接頭語と似ているが、後ろに \(aqi\(aq が付く +(また "Ki" については大文字の \(aqK\(aq) で始まる)。 +名前は、だいたい同じくらいの 10 進接頭語の最初の音節に、 +2 進数であることを意味する "bi" を足したものになる。 .RS .TS l l l. -ÀÜƬ¸ì ̾Á° ÃÍ -Ki ¥­¥Ó(kibi) 2^10 = 1024 -Mi ¥á¥Ó(mebi) 2^20 = 1048576 -Gi ¥®¥Ó(gibi) 2^30 = 1073741824 -Ti ¥Æ¥Ó(tebi) 2^40 = 1099511627776 -Pi ¥Ú¥Ó(pebi) 2^50 = 1125899906842624 -Ei ¥¨¥¯¥·¥Ó(exbi) 2^60 = 1152921504606846976 +接頭語 名前 値 +Ki キビ(kibi) 2^10 = 1024 +Mi メビ(mebi) 2^20 = 1048576 +Gi ギビ(gibi) 2^30 = 1073741824 +Ti テビ(tebi) 2^40 = 1099511627776 +Pi ペビ(pebi) 2^50 = 1125899906842624 +Ei エクシビ(exbi) 2^60 = 1152921504606846976 .TE .RE .sp @@ -90,36 +90,36 @@ Ei http://physics.nist.gov/cuu/Units/binary.html .RE .sp -¤â»²¹Í¤Ë¤·¤Æ¤Û¤·¤¤¡£ -.SS ¹Í»¡ -¤³¤ì¤é¤Î 2 ¿Ê¤ÎÀÜƬ¸ì¤¬Æ³Æþ¤µ¤ì¤ëÁ°¤Ï¡¢ -k=1000 ¤È K=1024 ¤Î¤è¤¦¤Ë»È¤¦¤Î¤¬³ä¤ËÎɤ¯ÃΤé¤ì¤¿½¬´·¤À¤Ã¤¿ -(b=¥Ó¥Ã¥È¡¢B=¥Ð¥¤¥È ¤Î´Ø·¸¤Ë»÷¤Æ¤¤¤ë)¡£ -»ÄÇ°¤Ê¤¬¤é M ¤ÏºÇ½é¤«¤éÂçʸ»ú¤Ê¤Î¤Ç¡¢ -2 ¿Ê¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¤¿¤á¤Ë¤µ¤é¤ËÂçʸ»ú¤Ë¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤«¤Ã¤¿¡£ +も参考にしてほしい。 +.SS 考察 +これらの 2 進の接頭語が導入される前は、 +k=1000 と K=1024 のように使うのが割に良く知られた習慣だった +(b=ビット、B=バイト の関係に似ている)。 +残念ながら M は最初から大文字なので、 +2 進であることを示すためにさらに大文字にすることはできなかった。 -Åö½é¤Ï¤³¤Î¤³¤È¤Ï¤¢¤Þ¤êÂ礭¤ÊÌäÂê¤Ç¤Ï¤Ê¤«¤Ã¤¿¡£ -¤Ê¤¼¤Ê¤é¥á¥â¥ê¥â¥¸¥å¡¼¥ë¤ä¥Ç¥£¥¹¥¯¤Ï 2 ¤ÎÎß¾è¤Ë¤Ê¤ë¤â¤Î¤À¤Ã¤¿¤Î¤Ç¡¢ -³§¤½¤Î¤è¤¦¤Ê¤È¤³¤í¤Ç¤Ï¡Ö¥­¥í¥Ð¥¤¥È¡×¤ò 1024 ¥Ð¥¤¥È¡¢ -¡Ö¥á¥¬¥Ð¥¤¥È¡×¤ò 1048576 ¥Ð¥¤¥È¤Ç¤¢¤ë¤È¤ß¤Ê¤·¤Æ¤¤¤¿¤«¤é¤Ç¤¢¤ë¡£ -ºÇ½é¤ÏÀÜƬ¸ì¤Î¡Ö¥­¥í¡×¤È¤«¡Ö¥á¥¬¡×¤òÛ£Ëæ¤Ë±çÍѤ·¤Æ¤¤¤¿¤Î¤À¤¬¡¢ -¤½¤Î¤¦¤Á¥³¥ó¥Ô¥å¡¼¥¿¤Ë´ØÏ¢¤¹¤ëÏÃÂê¤Ç¤Ï¡¢¤³¤Á¤é¤¬¡Ö¼ÂºÝ¤Î°ÕÌ£¡×¤Ë¤Ê¤Ã¤Æ¤¤¤Ã¤¿¡£ -¤·¤«¤·¤½¤Î¸å¥Ç¥£¥¹¥¯¤Î¥Æ¥¯¥Î¥í¥¸¡¼¤¬Âå¤ï¤ê¡¢ -¥Ç¥£¥¹¥¯¥µ¥¤¥º¤ÏǤ°Õ¤Î¿ôÃͤò¤È¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£ -¤É¤Ã¤Á¤Ä¤«¤º¤Î»þ´ü¤¬¤·¤Ð¤é¤¯Â³¤¤¤¿¤¢¤È¡¢ -¥Ç¥£¥¹¥¯¤Î¥á¡¼¥«¡¼¤¹¤Ù¤Æ¤¬¡¢É¸½à¤ò»È¤¦¤³¤È¤Ë¹ç°Õ¤·¤¿¡£ -¤¹¤Ê¤ï¤Á k=1000, M=1000k, G=1000M ¤Ç¤¢¤ë¡£ +当初はこのことはあまり大きな問題ではなかった。 +なぜならメモリモジュールやディスクは 2 の累乗になるものだったので、 +皆そのようなところでは「キロバイト」を 1024 バイト、 +「メガバイト」を 1048576 バイトであるとみなしていたからである。 +最初は接頭語の「キロ」とか「メガ」を曖昧に援用していたのだが、 +そのうちコンピュータに関連する話題では、こちらが「実際の意味」になっていった。 +しかしその後ディスクのテクノロジーが代わり、 +ディスクサイズは任意の数値をとるようになった。 +どっちつかずの時期がしばらく続いたあと、 +ディスクのメーカーすべてが、標準を使うことに合意した。 +すなわち k=1000, M=1000k, G=1000M である。 -¾õ¶·¤Ï¤Ò¤É¤¯¤Ê¤Ã¤¿¡£14.4k ¥â¥Ç¥à¤Ç¤Ï k=1000, -1.44MB ¥Õ¥í¥Ã¥Ô¡¼¤Ç¤Ï M=1024000 ¤Ë¤Ê¤Ã¤¿¡£ -1998 ǯ¤Ë¡¢IEC ¤Ï¾åµ­¤Î¤è¤¦¤Ê 2 ¿ÊÍѤÎÀÜƬ¸ì¤ò¾µÇ§¤·¡¢ -¤³¤ì¤Ë¤è¤Ã¤Æξ¼Ô¤ò¤Ï¤Ã¤­¤ê¶èÊ̤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤Ã¤¿¡£ +状況はひどくなった。14.4k モデムでは k=1000, +1.44MB フロッピーでは M=1024000 になった。 +1998 年に、IEC は上記のような 2 進用の接頭語を承認し、 +これによって両者をはっきり区別することが可能になった。 -¤·¤¿¤¬¤Ã¤Æº£Æü¤Ç¤Ï¡¢MB=1000000B ¤Ç¡¢MiB = 1048576B ¤Ê¤Î¤Ç¤¢¤ë¡£ +したがって今日では、MB=1000000B で、MiB = 1048576B なのである。 -¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¤ÎÀ¤³¦¤Ç¤â¡¢ -¥×¥í¥°¥é¥à¤¿¤Á¤Ï¤æ¤Ã¤¯¤ê¤È¤³¤ì¤é¤Ë½àµò¤·¤Æ¤­¤Æ¤¤¤ë¡£ -Linux ¥«¡¼¥Í¥ë¤Ï¡¢¥Ö¡¼¥È¤¹¤ë¤È¼¡¤Î¤è¤¦¤Ê¥á¥Ã¥»¡¼¥¸¤ò½Ð¤¹¡£ +フリーソフトウェアの世界でも、 +プログラムたちはゆっくりとこれらに準拠してきている。 +Linux カーネルは、ブートすると次のようなメッセージを出す。 .sp .RS .nf @@ -127,4 +127,4 @@ hda: 120064896 sectors (61473 MB) w/2048KiB Cache .fi .RE .sp -MB ¤Ï¥á¥¬¥Ð¥¤¥È¤Ç¡¢KiB ¤Ï¥­¥Ó¥Ð¥¤¥È¤Ç¤¢¤ë¡£ +MB はメガバイトで、KiB はキビバイトである。 diff --git a/release/man7/unix.7 b/release/man7/unix.7 index 77277c0a..d5b61356 100644 --- a/release/man7/unix.7 +++ b/release/man7/unix.7 @@ -21,21 +21,21 @@ .\" Updated 2005-12-26, Akihiro MOTOKI .\" Updated 2008-08-08, Akihiro MOTOKI, LDP v3.05 .\" -.\"WORD abstract namespace Ãê¾Ý̾Á°¶õ´Ö -.\"WORD anonymous socket ̾Á°Ìµ¤·¥½¥±¥Ã¥È -.\"WORD credential ¿®Ç¤¾õ -.\"WORD ancillary message Êä½õ¥á¥Ã¥»¡¼¥¸ -.\"WORD file descriptor ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ +.\"WORD abstract namespace 抽象名前空間 +.\"WORD anonymous socket 名前無しソケット +.\"WORD credential 信任状 +.\"WORD ancillary message 補助メッセージ +.\"WORD file descriptor ファイルディスクリプタ .\" -.\" ÌõÃí: Ìõ¤¹ºÝ¤â Unix ¤Ï capitalize ¤·¤Æ¤ª¤¯¤³¤È¡£ -.\" LDP_man-pages 1.66¢ª2.01 ¤Ë¤ª¤¤¤Æ unix ¢ª Unix ¤ÎÊѹ¹¤¬¤¢¤ê¡¢ -.\" °Õ¿ÞŪ¤Êɽµ­¤È»×¤ï¤ì¤ë¡£ +.\" 訳注: 訳す際も Unix は capitalize しておくこと。 +.\" LDP_man-pages 1.66→2.01 において unix → Unix の変更があり、 +.\" 意図的な表記と思われる。 .\" .TH UNIX 7 2008-12-01 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -unix, AF_UNIX, AF_LOCAL \- ¥í¡¼¥«¥ë¤Ê -¥×¥í¥»¥¹´ÖÄÌ¿®ÍѤΥ½¥±¥Ã¥È -.SH ½ñ¼° +.SH 名前 +unix, AF_UNIX, AF_LOCAL \- ローカルな +プロセス間通信用のソケット +.SH 書式 .B #include .br .B #include @@ -43,37 +43,37 @@ unix, AF_UNIX, AF_LOCAL \- .IB unix_socket " = socket(AF_UNIX, type, 0);" .br .IB error " = socketpair(AF_UNIX, type, 0, int *" sv ");" -.SH ÀâÌÀ +.SH 説明 .B AF_UNIX .RB ( AF_LOCAL -¤È¤â¸À¤ï¤ì¤ë) ¥½¥±¥Ã¥È¥Õ¥¡¥ß¥ê¡¼¤Ï¡¢Æ±¤¸¥Þ¥·¥ó¾å¤Ç¥×¥í¥»¥¹Æ±»Î¤¬ -¸úΨŪ¤ËÄÌ¿®¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ -ÅÁÅýŪ¤Ë¡¢Unix ¥½¥±¥Ã¥È¤Ï¡¢Ì¾Á°¤Ê¤·¤Ë¤â¤Ç¤­¤ë¤·¡¢ -(¥½¥±¥Ã¥È·¿¤Ç¤¢¤ë¤È°õ¤Î¤Ä¤¤¤¿) ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Ñ¥¹Ì¾¤Ë -·ë¤ÓÉÕ¤±¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¤µ¤é¤Ë Linux ¤Ç¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë°Í¸¤·¤Ê¤¤ -Ãê¾Ý̾Á°¶õ´Ö (abstract namespace) ¤â¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ +とも言われる) ソケットファミリーは、同じマシン上でプロセス同士が +効率的に通信するために用いられる。 +伝統的に、Unix ソケットは、名前なしにもできるし、 +(ソケット型であると印のついた) ファイルシステムのパス名に +結び付けることもできる。 +さらに Linux では、ファイルシステムに依存しない +抽象名前空間 (abstract namespace) もサポートしている。 -.\" MOTOKI: ¸«¤ä¤¹¤¤¤è¤¦¤Ë .TP ·Á¼°¤ËÊѹ¹ -Í­¸ú¤Ê¥¿¥¤¥×¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë: +.\" MOTOKI: 見やすいように .TP 形式に変更 +有効なタイプは以下の通りである: .TP .B SOCK_STREAM -¥¹¥È¥ê¡¼¥à»Ø¸þ¤Î¥½¥±¥Ã¥È +ストリーム指向のソケット .TP .B SOCK_DGRAM -¥á¥Ã¥»¡¼¥¸¶­³¦¤òÊݸ¤¹¤ë¥Ç¡¼¥¿¥°¥é¥à»Ø¸þ¤Î¥½¥±¥Ã¥È -(¤Û¤È¤ó¤É¤Î Unix ¤Î¼ÂÁõ¤Ç¤Ï¡¢Unix ¥É¥á¥¤¥ó¡¦¥Ç¡¼¥¿¥°¥é¥à¡¦¥½¥±¥Ã¥È¤Ï -¾ï¤Ë¿®Íê¤Ç¤­¡¢¥Ç¡¼¥¿¥°¥é¥à¤ÎʤÓÂؤ¨¤Ï¹Ô¤ï¤Ê¤¤) +メッセージ境界を保存するデータグラム指向のソケット +(ほとんどの Unix の実装では、Unix ドメイン・データグラム・ソケットは +常に信頼でき、データグラムの並び替えは行わない) .TP .B SOCK_SEQPACKET -(Linux 2.6.4 °Ê¹ß¤ÇÍøÍѤǤ­¤ë) -¥á¥Ã¥»¡¼¥¸¶­³¦¤òÊݸ¤·¡¢Á÷¿®¤µ¤ì¤¿½ç½ø¤Ç¥á¥Ã¥»¡¼¥¸¤òÆϤ±¤ëÀܳ»Ø¸þ¥½¥±¥Ã¥È +(Linux 2.6.4 以降で利用できる) +メッセージ境界を保存し、送信された順序でメッセージを届ける接続指向ソケット -Unix ¥½¥±¥Ã¥È¤Ç¤Ï¡¢Êä½õ¥Ç¡¼¥¿¤ò»È¤Ã¤Æ -¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ä¥×¥í¥»¥¹¤Î¿®Ç¤¾õ (credential) ¤ò -Á÷¼õ¿®¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -.SS ¥¢¥É¥ì¥¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È -Unix ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤Î¥¢¥É¥ì¥¹¤Ï°Ê²¼¤Î¹½Â¤ÂΤÇɽ¸½¤µ¤ì¤ë¡£ +Unix ソケットでは、補助データを使って +ファイルディスクリプタやプロセスの信任状 (credential) を +送受信することもできる。 +.SS アドレスのフォーマット +Unix ドメインソケットのアドレスは以下の構造体で表現される。 .in +4n .nf @@ -87,162 +87,162 @@ struct sockaddr_un { .in .PP .I sun_family -¤Ë¤Ïɬ¤º +には必ず .B AF_UNIX -¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ +が入っている。 -¤³¤Î¹½Â¤ÂÎ¤Ç¤Ï 3 ¼ïÎà¤Î¥¢¥É¥ì¥¹¤¬¶èÊ̤µ¤ì¤ë¡£ +この構造体では 3 種類のアドレスが区別される。 .IP * 3 -.IR "pathname (¥Ñ¥¹Ì¾)" : +.IR "pathname (パス名)" : .BR bind (2) -¤ò»È¤Ã¤Æ¡¢Unix ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤ò NULL ½ªÃ¼¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î -¥Ñ¥¹Ì¾¤Ë·ë¤ÓÉÕ¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +を使って、Unix ドメインソケットを NULL 終端されたファイルシステム上の +パス名に結び付けることができる。 .BR getsockname (2), .BR getpeername (2), .BR accept (2) -¤¬¥½¥±¥Ã¥È¤Î¥¢¥É¥ì¥¹¤òÊÖ¤¹ºÝ¤Ë¤Ï¡¢ -¤½¤ÎŤµ¤Ï +がソケットのアドレスを返す際には、 +その長さは .I "sizeof(sa_family_t) + strlen(sun_path) + 1" -¤Ç¤¢¤ê¡¢ +であり、 .I sun_path -¤Ë NULL ½ªÃ¼¤µ¤ì¤¿¥Ñ¥¹Ì¾¤¬³ÊǼ¤µ¤ì¤ë¡£ +に NULL 終端されたパス名が格納される。 .IP * -.IR "unnamed (̾Á°¤Ê¤·)" : +.IR "unnamed (名前なし)" : .BR bind (2) -¤ò»È¤Ã¤Æ¥Ñ¥¹Ì¾¤Ë·ë¤ÓÉÕ¤±¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¥¹¥È¥ê¡¼¥à·¿¤Î¥½¥±¥Ã¥È¤Ï -̾Á°¤ò»ý¤¿¤Ê¤¤¡£Æ±Íͤˡ¢ +を使ってパス名に結び付けることができないストリーム型のソケットは +名前を持たない。同様に、 .BR socketpair (2) -¤ÇºîÀ®¤µ¤ì¤ë 2 ¤Ä¤Î¥½¥±¥Ã¥È¤â̾Á°¤ò»ý¤¿¤Ê¤¤¡£ +で作成される 2 つのソケットも名前を持たない。 .BR getsockname (2), .BR getpeername (2), .BR accept (2) -¤¬Ì¾Á°¤Ê¤·¤Î¥½¥±¥Ã¥È¤Î¥¢¥É¥ì¥¹¤òÊÖ¤¹ºÝ¤Ë¤Ï¡¢ -¤½¤ÎŤµ¤Ï +が名前なしのソケットのアドレスを返す際には、 +その長さは .I "sizeof(sa_family_t)" -¤Ç¤¢¤ê¡¢ +であり、 .I sun_path -¤Ï¸¡ºº¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.\" ¼ÂÁõ¤´¤È¤Ë¤«¤Ê¤ê¤Î°ã¤¤¤¬Â¸ºß¤¹¤ë¡£ -.\" FreeBSD ¤Ç¤ÏŤµ¤Ï 16 ¥Ð¥¤¥È¤È¤Ê¤ê¡¢HP-UX ¤Ç¤ÏŤµ¤Ï 0 ¥Ð¥¤¥È¤È¤Ê¤ë¡£ +は検査すべきではない。 +.\" 実装ごとにかなりの違いが存在する。 +.\" FreeBSD では長さは 16 バイトとなり、HP-UX では長さは 0 バイトとなる。 .IP * -.IR "abstract (Ãê¾Ý)" : -Ãê¾Ý¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Ï¡¢ +.IR "abstract (抽象)" : +抽象ソケットアドレスは、 .I sun_path[0] -¤¬¥Ì¥ë¥Ð¥¤¥È ('\\0') ¤Ç¤¢¤ë¤³¤È¤«¤é¶èÊ̤Ǥ­¤ë¡£ +がヌルバイト ('\\0') であることから区別できる。 .I sun_path -¤Î»Ä¤ê¤ÎÁ´¥Ð¥¤¥È¤Ë¤è¤ê¥½¥±¥Ã¥È¤Î¡Ö̾Á°¡×¤¬ÄêµÁ¤µ¤ì¤ë -(̾Á°Ãæ¤Î¥Ì¥ë¥Ð¥¤¥È¤Ë¤ÏÆÃÊ̤ʰÕÌ£¤Ï¤Ê¤¤)¡£ -¤³¤Î̾Á°¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Ñ¥¹Ì¾¤È¤Ï²¿¤Î´Ø·¸¤â¤Ê¤¤¡£ -¤³¤Î̾Á°¶õ´Ö¤Ë¤ª¤±¤ë¥½¥±¥Ã¥È¤Î¥¢¥É¥ì¥¹¤Ï¡¢ +の残りの全バイトによりソケットの「名前」が定義される +(名前中のヌルバイトには特別な意味はない)。 +この名前はファイルシステムのパス名とは何の関係もない。 +この名前空間におけるソケットのアドレスは、 .I sun_path -¤Î»Ä¤ê¤Î¥Ð¥¤¥È¤Çɽ¤µ¤ì¤ë¡£ +の残りのバイトで表される。 .BR getsockname (2), .BR getpeername (2), .BR accept (2) -¤¬Ãê¾Ý¥½¥±¥Ã¥È¤Î¥¢¥É¥ì¥¹¤òÊÖ¤¹ºÝ¤Ë¤Ï¡¢¤½¤ÎŤµ¤Ï +が抽象ソケットのアドレスを返す際には、その長さは .I "sizeof(struct sockaddr_un)" -¤Ç¤¢¤ê¡¢ +であり、 .I sun_path -¤ËÃê¾Ý̾Á°¶õ´Ö¤Î̾Á°¤¬³ÊǼ¤µ¤ì¤ë¡£ -¥½¥±¥Ã¥È¤ÎÃê¾Ý̾Á°¶õ´Ö¤Ï Linux ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ê¡¢°Ü¿¢À­¤Ï¤Ê¤¤¡£ -.SS ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó -Îò»ËŪ¤ÊÍýͳ¤Ë¤è¤ê¡¢¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Ï -¤¿¤È¤¨ +に抽象名前空間の名前が格納される。 +ソケットの抽象名前空間は Linux による拡張であり、移植性はない。 +.SS ソケットオプション +歴史的な理由により、これらのオプションは +たとえ .B AF_UNIX -¸ÇÍ­¤Î¥ª¥×¥·¥ç¥ó¤Ç¤¢¤Ã¤Æ¤â +固有のオプションであっても .B SOL_SOCKET -·¿¤Ç»ØÄꤹ¤ë¡£ -¥½¥±¥Ã¥È¥Õ¥¡¥ß¥ê¡¼¤È¤·¤Æ +型で指定する。 +ソケットファミリーとして .B SOL_SOCKET -¤ò»ØÄꤹ¤ë¤È¡¢ +を指定すると、 .BR setsockopt (2) -¤Ç¥ª¥×¥·¥ç¥ó¤¬ÀßÄê¤Ç¤­¡¢ +でオプションが設定でき、 .BR getsockopt (2) -¤Ç¼èÆÀ¤¬¤Ç¤­¤ë¡£ +で取得ができる。 .\" NAKANO added this TP .TP .B SO_PASSCRED -Á÷¿®¥×¥í¥»¥¹¤ÎÊä½õ¥á¥Ã¥»¡¼¥¸¤È¤·¤Æ¿®Ç¤¾õ¤ò¼õ¿®¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Æ¡¢¤Þ¤À¥½¥±¥Ã¥È¤¬Àܳ¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¡¢ -Ãê¾Ý̾Á°¶õ´Ö¤Ë¾¤È½Å¤Ê¤é¤Ê¤¤Ì¾Á°¤¬¼«Æ°Åª¤ËÀ¸À®¤µ¤ì¤ë¡£ -¥Ö¡¼¥ëÀ°¿ôÃͤΥե饰¤ò¼è¤ë¡£ -.SS ¥½¥±¥Ã¥È API -¤³¤ÎÀá¤Ç¤Ï¡¢Linux ¤Î Unix ¥É¥á¥¤¥ó¡¦¥½¥±¥Ã¥È¤Ç¤Î¡¢ -¥É¥á¥¤¥ó¸ÇÍ­¤Î¾ÜºÙ»ÅÍͤȥ½¥±¥Ã¥È API ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤µ¡Ç½¤Ë -¤Ä¤¤¤ÆÀâÌÀ¤¹¤ë¡£ +送信プロセスの補助メッセージとして信任状を受信できるようにする。 +このオプションがセットされていて、まだソケットが接続されていないと、 +抽象名前空間に他と重ならない名前が自動的に生成される。 +ブール整数値のフラグを取る。 +.SS ソケット API +この節では、Linux の Unix ドメイン・ソケットでの、 +ドメイン固有の詳細仕様とソケット API でサポートされていない機能に +ついて説明する。 -Unix ¥É¥á¥¤¥ó¡¦¥½¥±¥Ã¥È¤Ç¤Ï¡¢ÂÓ°è³°¥Ç¡¼¥¿ (out-of-band data) ¤Î -Á÷¿® +Unix ドメイン・ソケットでは、帯域外データ (out-of-band data) の +送信 .RB ( send (2) -¤È +と .BR recv (2) -¤Î +の .B MSG_OOB -¥Õ¥é¥°) ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +フラグ) はサポートされていない。 .BR send (2) .B MSG_MORE -¥Õ¥é¥°¤Ï Unix ¥É¥á¥¤¥ó¡¦¥½¥±¥Ã¥È¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +フラグは Unix ドメイン・ソケットではサポートされていない。 .BR recv (2) -¤Î +の .I flags -°ú¤­¿ô¤Ç¤Î +引き数での .B MSG_TRUNC -¤Î»ÈÍÑ¤Ï Unix ¥É¥á¥¤¥ó¡¦¥½¥±¥Ã¥È¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +の使用は Unix ドメイン・ソケットではサポートされていない。 .B SO_SNDBUF -¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤Ï Unix ¥É¥á¥¤¥ó¡¦¥½¥±¥Ã¥È¤Ç¸ú²Ì¤ò»ý¤Ä¤¬¡¢ +ソケットオプションは Unix ドメイン・ソケットで効果を持つが、 .B SO_RCVBUF -¤Ï¸ú²Ì¤¬¤Ê¤¤¡£ -¥Ç¡¼¥¿¥°¥é¥à¡¦¥½¥±¥Ã¥È¤Ç¤Ï¡¢ +は効果がない。 +データグラム・ソケットでは、 .B SO_SNDBUF -¤ÎÃͤ¬½ÐÎϥǡ¼¥¿¥°¥é¥à¤Î¾å¸Â¥µ¥¤¥º¤È¤Ê¤ë¡£ -¼ÂºÝ¤Î¾å¸ÂÃͤϡ¢ +の値が出力データグラムの上限サイズとなる。 +実際の上限値は、 .B SO_SNDBUF -¥ª¥×¥·¥ç¥ó¤È¤·¤ÆÀßÄꤵ¤ì¤¿ÃͤΠ2ÇÜ +オプションとして設定された値の 2倍 .RB ( socket (7) -»²¾È) ¤«¤é¥ª¡¼¥Ð¥Ø¥Ã¥É¤È¤·¤Æ»ÈÍѤµ¤ì¤ë 32 ¥Ð¥¤¥È¤ò°ú¤¤¤¿ÃͤȤʤ롣 -.SS Êä½õ¥á¥Ã¥»¡¼¥¸ -Êä½õ¥Ç¡¼¥¿¤òÁ÷¼õ¤¹¤ë¤Ë¤Ï¡¢ +参照) からオーバヘッドとして使用される 32 バイトを引いた値となる。 +.SS 補助メッセージ +補助データを送受するには、 .BR sendmsg (2) -¤ä +や .BR recvmsg (2) -¤ò»ÈÍѤ¹¤ë¡£ -Îò»ËŪ¤ÊÍýͳ¤Ë¤è¤ê¡¢°Ê²¼¤Ë¼¨¤¹Êä½õ¥á¥Ã¥»¡¼¥¸¤Î·¿¤Ï -¤¿¤È¤¨ +を使用する。 +歴史的な理由により、以下に示す補助メッセージの型は +たとえ .B AF_UNIX -¸ÇÍ­¤Î¤â¤Î¤Ç¤¢¤Ã¤Æ¤â +固有のものであっても .B SOL_SOCKET -·¿¤Ç»ØÄꤹ¤ë¡£ -¤³¤ì¤é¤òÁ÷¤ë¤Ë¤Ï¡¢¹½Â¤ÂÎ +型で指定する。 +これらを送るには、構造体 .I cmsghdr -¤Î +の .I cmsg_level -¥Õ¥£¡¼¥ë¥É¤Ë +フィールドに .B SOL_SOCKET -¤ò¥»¥Ã¥È¤·¡¢ +をセットし、 .I cmsg_type -¥Õ¥£¡¼¥ë¥É¤Ë¥¿¥¤¥×¤ò¥»¥Ã¥È¤¹¤ë¡£ -¾ÜºÙ¤Ï +フィールドにタイプをセットする。 +詳細は .BR cmsg (3) -¤ò¸«¤è¡£ +を見よ。 .TP .B SCM_RIGHTS -¾¤Î¥×¥í¥»¥¹¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¥»¥Ã¥È¤òÁ÷¼õ¿®¤¹¤ë¡£ -¥Ç¡¼¥¿Éôʬ¤Ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÀ°¿ôÇÛÎó¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ -ÅϤµ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢¤¢¤¿¤«¤â +他のプロセスでオープンされたファイルディスクリプタのセットを送受信する。 +データ部分にファイルディスクリプタの整数配列が入っている。 +渡されたファイルディスクリプタは、あたかも .BR dup (2) -¤ÇÀ¸À®¤µ¤ì¤¿¤«¤Î¤è¤¦¤Ë¿¶¤ëÉñ¤¦¡£ +で生成されたかのように振る舞う。 .TP .B SCM_CREDENTIALS -Unix ¿®Ç¤¾õ¤òÁ÷¼õ¿®¤¹¤ë¡£¤³¤ì¤Ïǧ¾Ú¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¿®Ç¤¾õ¤Ï¡¢ +Unix 信任状を送受信する。これは認証に用いることができる。 +信任状は、 .I struct ucred -¤ÎÊä½õ¥á¥Ã¥»¡¼¥¸¤È¤·¤ÆÅϤµ¤ì¤ë¡£ -¤³¤Î¹½Â¤ÂÎ¤Ï +の補助メッセージとして渡される。 +この構造体は .I -¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +で以下のように定義されている。 .in +4n .nf @@ -254,143 +254,143 @@ struct ucred { .fi .in -glibc 2.8 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¹½Â¤ÂΤÎÄêµÁ¤òÆÀ¤ë¤¿¤á¤Ë¤Ïµ¡Ç½¸¡ºº¥Þ¥¯¥í +glibc 2.8 以降では、この構造体の定義を得るためには機能検査マクロ .B _GNU_SOURCE -¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +を定義しなければならない。 -Á÷¿®Â¦¤¬»ØÄꤷ¤¿¿®Ç¤¾õ¤Ï¡¢¥«¡¼¥Í¥ë¤¬¥Á¥§¥Ã¥¯¤¹¤ë¡£ -¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤Ë¤Ï¡¢ -¼«Ê¬¼«¿È°Ê³°¤ÎÃͤò»ØÄꤹ¤ë»ö¤¬µö¤µ¤ì¤ë¡£ -Á÷¿®Â¦¤Ï°Ê²¼¤Î 3 ¤Ä¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -1) ¼«Ê¬¼«¿È¤Î¥×¥í¥»¥¹ ID +送信側が指定した信任状は、カーネルがチェックする。 +実効ユーザー ID が 0 のプロセスには、 +自分自身以外の値を指定する事が許される。 +送信側は以下の 3 つを指定しなければならない。 +1) 自分自身のプロセス ID .RB ( CAP_SYS_ADMIN -¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç)¡¢ -2) ¼«Ê¬¼«¿È¤Î¥æ¡¼¥¶¡¼ ID ¤¢¤ë¤¤¤Ï¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤«Êݸ set-user-ID +権限を持っていない場合)、 +2) 自分自身のユーザー ID あるいは実効ユーザー ID か保存 set-user-ID .RB ( CAP_SETUID -¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç)¡¢ -3) ¼«Ê¬¼«¿È¤Î¥°¥ë¡¼¥× ID ¤¢¤ë¤¤¤Ï¼Â¹Ô¥°¥ë¡¼¥× ID ¤«Êݸ set-group-ID +権限を持っていない場合)、 +3) 自分自身のグループ ID あるいは実行グループ ID か保存 set-group-ID .RB ( CAP_SETGID -¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç)¡£ +を持っていない場合)。 .I struct ucred -¥á¥Ã¥»¡¼¥¸¤ò¼õ¿®¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¥½¥±¥Ã¥È¤ËÂФ· +メッセージを受信するためには、ソケットに対し .B SO_PASSCRED -¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤·¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -.SH ¥¨¥é¡¼ +オプションを有効にしなくてはならない。 +.SH エラー .TP .B EADDRINUSE -ÁªÂò¤·¤¿¥½¥±¥Ã¥È¤¬´û¤ËÍѤ¤¤é¤ì¤Æ¤¤¤¿¡£¤Þ¤¿¤Ï¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥½¥±¥Ã¥È¥ª¥Ö¥¸¥§¥¯¥È¤¬´û¤Ë¸ºß¤·¤Æ¤¤¤¿¡£ +選択したソケットが既に用いられていた。または、 +ファイルシステムのソケットオブジェクトが既に存在していた。 .TP .B ECONNREFUSED -listen ¾õÂ֤ˤʤ¤¥½¥±¥Ã¥È¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ·¤Æ +listen 状態にないソケットオブジェクトに対して .BR connect (2) -¤¬¸Æ¤Ð¤ì¤¿¡£¥ê¥â¡¼¥È¥½¥±¥Ã¥È¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¡¢ -¥Õ¥¡¥¤¥ë̾¤¬¥½¥±¥Ã¥È¤Ç¤Ï¤Ê¤«¤Ã¤¿¡¢¤Ê¤É¤Î¤È¤­¤Ëµ¯¤³¤ë¡£ +が呼ばれた。リモートソケットが存在していなかった、 +ファイル名がソケットではなかった、などのときに起こる。 .TP .B ECONNRESET -¥ê¥â¡¼¥È¥½¥±¥Ã¥È¤¬Í½´ü¤·¤Ê¤¤¤«¤¿¤Á¤Ç¥¯¥í¡¼¥º¤µ¤ì¤¿¡£ +リモートソケットが予期しないかたちでクローズされた。 .TP .B EFAULT -¥æ¡¼¥¶¡¼¥á¥â¥ê¥¢¥É¥ì¥¹¤¬ÉÔÀµ¡£ +ユーザーメモリアドレスが不正。 .TP .B EINVAL -ÅϤ·¤¿°ú¿ô¤¬ÉÔÀµ¡£¤è¤¯¤¢¤ë¸¶°ø¤Ï¡¢ -ÅϤ·¤¿¥¢¥É¥ì¥¹¤Î +渡した引数が不正。よくある原因は、 +渡したアドレスの .I sun_type -¥Õ¥£¡¼¥ë¥É¤Ë AF_UNIX ¤òÀßÄꤷ¤Ê¤«¤Ã¤¿¡¢ -¹Ô¤ª¤¦¤È¤·¤¿Áàºî¤ËÂФ·¤Æ¥½¥±¥Ã¥È¤Î¾õÂÖ¤¬Í­¸ú¤Ç¤Ï¤Ê¤«¤Ã¤¿¡¢¤Ê¤É¡£ +フィールドに AF_UNIX を設定しなかった、 +行おうとした操作に対してソケットの状態が有効ではなかった、など。 .TP .B EISCONN -´û¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¥½¥±¥Ã¥È¤ËÂФ·¤Æ +既に接続されているソケットに対して .BR connect (2) -¤¬¸Æ¤Ð¤ì¤¿¡£¤Þ¤¿¤Ï¡¢»ØÄꤷ¤¿¥¿¡¼¥²¥Ã¥È¥¢¥É¥ì¥¹¤¬ -´û¤ËÀܳºÑ¤ß¤Î¥½¥±¥Ã¥È¤À¤Ã¤¿¡£ +が呼ばれた。または、指定したターゲットアドレスが +既に接続済みのソケットだった。 .TP .B ENOMEM -¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£ +メモリが足りない。 .TP .B ENOTCONN -¥½¥±¥Ã¥ÈÁàºî¤Ë¥¿¡¼¥²¥Ã¥È¥¢¥É¥ì¥¹¤¬É¬ÍפÀ¤¬¡¢ -¤³¤Î¥½¥±¥Ã¥È¤ÏÀܳ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +ソケット操作にターゲットアドレスが必要だが、 +このソケットは接続されていない。 .TP .B EOPNOTSUPP -¥¹¥È¥ê¡¼¥à»Ø¸þ¤Ç¤Ê¤¤¥½¥±¥Ã¥È¤ËÂФ·¤Æ¥¹¥È¥ê¡¼¥àÁàºî¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¡£ -¤Þ¤¿¤ÏÂÓ°è³°¥Ç¡¼¥¿¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤è¤¦¤È¤·¤¿¡£ +ストリーム指向でないソケットに対してストリーム操作が呼び出された。 +または帯域外データオプションを用いようとした。 .TP .B EPERM -Á÷¿®¼Ô¤¬ +送信者が .I struct ucred -¤ËÉÔÀµ¤Ê¿®Ç¤¾õ¤òÅϤ·¤¿¡£ +に不正な信任状を渡した。 .TP .B EPIPE -¥ê¥â¡¼¥È¥½¥±¥Ã¥È¤¬¥¹¥È¥ê¡¼¥à¥½¥±¥Ã¥È¾å¤Ç¥¯¥í¡¼¥º¤µ¤ì¤¿¡£ -²Äǽ¤Ê¾ì¹ç¤Ï +リモートソケットがストリームソケット上でクローズされた。 +可能な場合は .B SIGPIPE -¤âƱ»þ¤ËÁ÷¤é¤ì¤ë¡£¤³¤ì¤òÈò¤±¤ë¤Ë¤Ï +も同時に送られる。これを避けるには .B MSG_NOSIGNAL -¥Õ¥é¥°¤ò +フラグを .BR sendmsg (2) -¤ä +や .BR recvmsg (2) -¤ËÅϤ¹¡£ +に渡す。 .TP .B EPROTONOSUPPORT -ÅϤµ¤ì¤¿¥×¥í¥È¥³¥ë¤¬ AF_UNIX ¤Ç¤Ê¤¤¡£ +渡されたプロトコルが AF_UNIX でない。 .TP .B EPROTOTYPE -¥ê¥â¡¼¥È¥½¥±¥Ã¥È¤È¥í¡¼¥«¥ë¥½¥±¥Ã¥È¤Î¥¿¥¤¥×¤¬°ìÃפ·¤Æ¤¤¤Ê¤«¤Ã¤¿ +リモートソケットとローカルソケットのタイプが一致していなかった .RB ( SOCK_DGRAM -¤È -.BR SOCK_STREAM )¡£ +と +.BR SOCK_STREAM )。 .TP .B ESOCKTNOSUPPORT -̤ÃΤΥ½¥±¥Ã¥È¥¿¥¤¥×¡£ +未知のソケットタイプ。 .PP -¾¤Ë¤âÈÆÍѤΥ½¥±¥Ã¥ÈÁؤǥ¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¤ê¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ë¥½¥±¥Ã¥È¥ª¥Ö¥¸¥§¥¯¥È¤òºî¤í¤¦¤È¤·¤¿¾ì¹ç¤Ë -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë¤³¤È¤¬¤¢¤ë¡£ -¤½¤ì¤¾¤ì¤Î¾ÜºÙ¤ÏŬÀÚ¤Ê man ¥Ú¡¼¥¸¤ò»²¾È¤¹¤ë¤³¤È¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó +他にも汎用のソケット層でエラーが起こったり、 +ファイルシステム上にソケットオブジェクトを作ろうとした場合に +ファイルシステムのエラーが起こることがある。 +それぞれの詳細は適切な man ページを参照すること。 +.SH バージョン .B SCM_CREDENTIALS -¤ÈÃê¾Ý̾Á°¶õ´Ö¤Ï¡¢Linux 2.2 ¤ÇƳÆþ¤µ¤ì¤¿¡£ -°Ü¿¢À­¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï»È¤¦¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -(BSD ͳÍè¤Î¥·¥¹¥Æ¥à¤ÎÃæ¤Ë¤â¿®Ç¤¾õ¤ÎÁ÷¼õ¿®¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤â¤Î¤¬¤¢¤ë¤¬¡¢ -¤½¤Î¼ÂÁõ¤Î¾ÜºÙ¤Ï¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë) -.SH Ãí°Õ -Linux ¤Î¼ÂÁõ¤Ç¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤«¤é¸«¤¨¤ë¥½¥±¥Ã¥È¤Ï¡¢ -¤½¤ì¤é¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Ë½¾¤¦¡£ -¥½¥±¥Ã¥È¤Î½êÍ­¼Ô¡¢¥°¥ë¡¼¥×¡¢¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ÏÊѹ¹¤Ç¤­¤ë¡£ -¿·¤·¤¤¥½¥±¥Ã¥È¤òºî¤ë¤È¤­¡¢ºî¤í¤¦¤È¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ·¤Æ -¥×¥í¥»¥¹¤¬½ñ¤­¹þ¤ß¤È¸¡º÷ (¼Â¹Ô) ¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ºîÀ®¤Ë¼ºÇÔ¤¹¤ë¡£ -¥½¥±¥Ã¥È¥ª¥Ö¥¸¥§¥¯¥È¤ËÀܳ¤¹¤ë¤Ë¤Ï¡¢ read/write ¸¢¸Â¤¬É¬ÍפǤ¢¤ë¡£ -¤³¤ÎÆ°ºî¤Ï¡¢Â¿¤¯¤Î BSD ͳÍè¤Î¥·¥¹¥Æ¥à¤È¤Ï°Û¤Ê¤Ã¤Æ¤¤¤ë -(BSD ¤Ç¤Ï Unix ¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤Ï¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ò̵»ë¤¹¤ë)¡£ -°Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ -¥»¥­¥å¥ê¥Æ¥£¤ò¤³¤Î»ÅÍͤ˰͸¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +と抽象名前空間は、Linux 2.2 で導入された。 +移植性が必要なプログラムでは使うべきではない。 +(BSD 由来のシステムの中にも信任状の送受信をサポートしているものがあるが、 +その実装の詳細はシステムによって異なる) +.SH 注意 +Linux の実装では、ファイルシステム上から見えるソケットは、 +それらが置かれているディレクトリのパーミッションに従う。 +ソケットの所有者、グループ、パーミッションは変更できる。 +新しいソケットを作るとき、作ろうとするディレクトリに対して +プロセスが書き込みと検索 (実行) 権限を持っていなければ、作成に失敗する。 +ソケットオブジェクトに接続するには、 read/write 権限が必要である。 +この動作は、多くの BSD 由来のシステムとは異なっている +(BSD では Unix ソケットに対してはパーミッションを無視する)。 +移植性の必要なプログラムでは、 +セキュリティをこの仕様に依存してはならない。 -¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤷ¤Æ¥½¥±¥Ã¥È¤Ë¥Ð¥¤¥ó¥É¤¹¤ë¤È¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¥½¥±¥Ã¥È¤¬À¸À®¤µ¤ì¤ë¡£ -¤³¤ì¤ÏɬÍפʤ¯¤Ê¤Ã¤¿¤È¤­¤Ë¸Æ¤Ó¤À¤·¤¿¥æ¡¼¥¶¡¼¤¬ºï½ü¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ +ファイル名を指定してソケットにバインドすると、 +ファイルシステムにソケットが生成される。 +これは必要なくなったときに呼びだしたユーザーが削除しなければならない .RB ( unlink (2) -¤òÍѤ¤¤ë)¡£ -Unix ¤ÇÄ̾ï»È¤ï¤ì¤ë¡ÖÇظå¤ÇÊĤ¸¤ëÊý¼°¡×¤¬Å¬ÍѤµ¤ì¤ë¡£ -¥½¥±¥Ã¥È¤Ï¤¤¤Ä¤Ç¤â unlink ¤¹¤ë¤³¤È¤¬¤Ç¤­¡¢ºÇ¸å¤Î»²¾È¤¬ -¥¯¥í¡¼¥º¤µ¤ì¤¿¤È¤­¤Ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤«¤éºï½ü¤µ¤ì¤ë¡£ +を用いる)。 +Unix で通常使われる「背後で閉じる方式」が適用される。 +ソケットはいつでも unlink することができ、最後の参照が +クローズされたときにファイルシステムから削除される。 .B SOCK_STREAM -¾å¤Ç¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ä¿®Ç¤¾õ¤òÅϤ¹¤¿¤á¤Ë¤Ï¡¢Æ±¤¸ +上でファイルディスクリプタや信任状を渡すためには、同じ .BR sendmsg (2) -¤ä +や .BR recvmsg (2) -¥³¡¼¥ë¤ÇÊä½õ¥Ç¡¼¥¿°Ê³°¤Î¥Ç¡¼¥¿¤ò¾¯¤Ê¤¯¤È¤â -1 ¥Ð¥¤¥ÈÁ÷¿®/¼õ¿®¤¹¤ëɬÍפ¬¤¢¤ë¡£ +コールで補助データ以外のデータを少なくとも +1 バイト送信/受信する必要がある。 -Unix ¥É¥á¥¤¥ó¤Î¥¹¥È¥ê¡¼¥à¡¦¥½¥±¥Ã¥È¤Ç¤Ï¡¢ -ÂÓ°è³°¥Ç¡¼¥¿¤Î³µÇ°¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Ê¤¤¡£ -.SH Îã +Unix ドメインのストリーム・ソケットでは、 +帯域外データの概念はサポートされない。 +.SH 例 .BR bind (2) -»²¾È¡£ -.SH ´ØÏ¢¹àÌÜ +参照。 +.SH 関連項目 .BR recvmsg (2), .BR sendmsg (2), .BR socket (2), diff --git a/release/man7/uri.7 b/release/man7/uri.7 index 6a8d1477..218f0293 100644 --- a/release/man7/uri.7 +++ b/release/man7/uri.7 @@ -47,12 +47,12 @@ .\" Japanese Version Copyright (c) 2000 NAKANO Takeo all rights reserved. .\" Translated San 12 Mar 2000 by NAKANO Takeo .\" -.\"WORD: generated file (KDE ¤Î) À¸À®¥Õ¥¡¥¤¥ë +.\"WORD: generated file (KDE の) 生成ファイル .\" .TH URI 7 2000-03-14 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -uri, url, urn \- uniform resource identifier (URI), URL ¤È URN ¤â´Þ¤à. -.SH ½ñ¼° +.SH 名前 +uri, url, urn \- uniform resource identifier (URI), URL と URN も含む. +.SH 書式 .nf .HP 0.2i URI = [ absoluteURI | relativeURI ] [ "#" fragment ] @@ -72,119 +72,119 @@ absolute_path = "/" path_segments .HP relative_path = relative_segment [ absolute_path ] .fi -.SH ÀâÌÀ +.SH 説明 .PP Uniform Resource Identifier (URI) -¤ÏÃê¾ÝŪ¡¦ÊªÍýŪ¤Ê¥ê¥½¡¼¥¹ (web ¥Ú¡¼¥¸¤Ê¤É) -¤ò¼±Ê̤¹¤ë¤¿¤á¤Îû¤¤Ê¸»úÎó¤Ç¤¢¤ë¡£ -Uniform Resource Locator (URL) ¤Ï URI ¤Î°ì¼ï¤Ç¡¢ -¥ê¥½¡¼¥¹¤Î̾Á°¤Ê¤É¤Î°À­¤Ç¤Ç¤Ï¤Ê¤¯¡¢ -¤½¤Î¥ê¥½¡¼¥¹¤ËÂбþ¤¹¤ë¥¢¥¯¥»¥¹¥á¥«¥Ë¥º¥à¤òÄ̤·¤Æ¥ê¥½¡¼¥¹¤ò»ØÄꤹ¤ë -(¤Ä¤Þ¤ê¥Í¥Ã¥È¥ï¡¼¥¯¾å¤Î¡Ö¾ì½ê (location)¡×¤ò»ØÄꤹ¤ë)¡£ -Uniform Resource Name (URN) ¤Ï URI ¤Î°ì¼ï¤Ç¡¢ -¤³¤ì¤ÏÂоݤΥ꥽¡¼¥¹¤¬ÇÑ´þ¤µ¤ì¤¿¤êÍøÍѤǤ­¤Ê¤¯¤Ê¤Ã¤¿¾ì¹ç¤Ë¤â¡¢ -¥°¥í¡¼¥Ð¥ë¤Ë¾¤È½Å¤Ê¤ë¤³¤È¤Ê¤¯±Ê³¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.PP -URI ¤Ï¡¢ web ¥Ö¥é¥¦¥¶¤Ê¤É¤Î¥Ä¡¼¥ë¤Ç -¥Ï¥¤¥Ñ¡¼¥Æ¥­¥¹¥È¥ê¥ó¥¯¤Î¥ê¥ó¥¯Àè¤ò»ØÄꤹ¤ë»þ¤Îɸ½àŪ¤ÊÊýË¡¤Ç¤¢¤ë¡£ -ʸ»úÎó "http://www.kernelnotes.org" ¤Ï URL ¤Ç¤¢¤ë (½¾¤Ã¤Æ -URI ¤Ç¤â¤¢¤ë)¡£Â¿¤¯¤Î¿Í¡¹¤Ï¡¢ URL ¤È¤¤¤¦¸ÀÍÕ¤ò¤Û¤Ü URI ¤Î -ƱµÁ¸ì¤È¤·¤Æ»È¤Ã¤Æ¤¤¤ë (¤·¤«¤·µ»½ÑŪ¤Ë¤Ï URL ¤Ï URI ¤Î¥µ¥Ö¥»¥Ã¥È¤Ç¤¢¤ë)¡£ -.PP -URI ¤ÏÀäÂÐŪ¤Ë¤âÁêÂÐŪ¤Ë¤â»ØÄê¤Ç¤­¤ë¡£ -ÀäÂÐŪ¤Ê»ØÄê¤Ï¡¢¥ê¥½¡¼¥¹¤ò¥³¥ó¥Æ¥¯¥¹¥È¤Ë°Í¸¤·¤Ê¤¤¤«¤¿¤Á¤Ç»²¾È¤¹¤ë¡£ -ÁêÂÐŪ¤Ê»ØÄê¤Ï¡¢¥ê¥½¡¼¥¹¤ò¸½ºß¤Î¥³¥ó¥Æ¥¯¥¹¥È¤«¤é¤Îº¹°Û¤Ë¤è¤Ã¤Æµ­½Ò¤¹¤ë¡£ -ÁêÂХѥ¹»²¾È¤Ç¤Ï¡¢ "." ¤ª¤è¤Ó ".." ¤À¤±¤Î¥Ñ¥¹Éôʬ (path segment) -¤ÏÆÃÊ̤ʰÕÌ£¤ò»ý¤Á¡¢ -¤½¤ì¤¾¤ì¡Ö¸½ºß¤Î³¬ÁØ¥ì¥Ù¥ë¡×¤ª¤è¤Ó¡Ö¸½ºß¤Î³¬Áؤΰì¤Ä¾å¤Î¥ì¥Ù¥ë¡× -¤È¤·¤Æ°·¤ï¤ì¤ë (UNIX É÷¤Î¥·¥¹¥Æ¥à¤ÈƱÍÍ)¡£ -¥³¥í¥óʸ»ú¤ò´Þ¤à¥Ñ¥¹Éôʬ¤ÏÁêÂÐ URI ¥Ñ¥¹¤ÎÀèƬ¤ËÍѤ¤¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤ -(¤Ä¤Þ¤ê "this:that" ¤Ï¥À¥á)¡£¥¹¥­¡¼¥à̾¤È¶èÊ̤Ǥ­¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ -¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï ./ ¤òÁ°ÃÖ¤¹¤ë¤³¤È (¤Ä¤Þ¤ê "./this:that" ¤È¤¹¤ë)¡£ -MS-DOS ¤Î»Ò¹ (Microsoft Windows ¤Ê¤É) ¤Ï¡¢ -¥Ç¥Ð¥¤¥¹Ì¾¤Î¥³¥í¥ó¤ò URI ¤Ç¤Ï¿âľ¥Ð¡¼ ("|") ¤ËÃÖ¤­´¹¤¨¤ë¡£ -¤·¤¿¤¬¤Ã¤Æ "C:" ¤Ï "C|" ¤È¤Ê¤ë¡£ -.PP -¥Õ¥é¥°¥á¥ó¥È»ØÄê»Ò (fragment identifier) ¤Ï¡¢(¤â¤·´Þ¤Þ¤ì¤Æ¤¤¤ì¤Ð) -¥ê¥½¡¼¥¹Ãæ¤Î̾Á°ÉÕ¤±¤µ¤ì¤¿ÆÃÄê¤ÎÉôʬ (¥Õ¥é¥°¥á¥ó¥È) ¤ò»²¾È¤¹¤ë¡£ -\(aq#\(aq »ØÄê»Ò°Ê¹ß¤Îʸ»úÎ󤬥ե饰¥á¥ó¥È¤ò»ØÄꤹ¤ë¡£ -\(aq#\(aq ¤Ç»Ï¤Þ¤ë URI ¤Ï¸½ºß¤Î¥ê¥½¡¼¥¹Ãæ¤Î¥Õ¥é¥°¥á¥ó¥È¤ò»²¾È¤¹¤ë¡£ -.S ÍøÍÑË¡ -URI ¤Î¥¹¥­¡¼¥à¤Ë¤Ï¿§¡¹¤Ê¼ïÎब¤¢¤ê¡¢ -¤½¤ì¤¾¤ì¸ÇÍ­¤Î¥ë¡¼¥ë¤ä°ÕÌ£¤¬Äɲ䵤ì¤Æ¤¤¤ë¡£ -¤·¤«¤·¤Ç¤­¤ë¤À¤±Åý°ì¤·¤¿¤â¤Î¤Ë¤·¤è¤¦¤È¤¤¤¦ÅØÎϤâ¤Ê¤µ¤ì¤Æ¤¤¤ë¡£ -Î㤨¤Ð¡¢Â¿¤¯¤Î URL ¥¹¥­¡¼¥à¤Ï¡Öµ¡´Ø (authority)¡×¤ËÂФ·¤Æ°Ê²¼¤Î½ñ¼° -(¤³¤³¤Ç¤Ï +は抽象的・物理的なリソース (web ページなど) +を識別するための短い文字列である。 +Uniform Resource Locator (URL) は URI の一種で、 +リソースの名前などの属性でではなく、 +そのリソースに対応するアクセスメカニズムを通してリソースを指定する +(つまりネットワーク上の「場所 (location)」を指定する)。 +Uniform Resource Name (URN) は URI の一種で、 +これは対象のリソースが廃棄されたり利用できなくなった場合にも、 +グローバルに他と重なることなく永続しなければならない。 +.PP +URI は、 web ブラウザなどのツールで +ハイパーテキストリンクのリンク先を指定する時の標準的な方法である。 +文字列 "http://www.kernelnotes.org" は URL である (従って +URI でもある)。多くの人々は、 URL という言葉をほぼ URI の +同義語として使っている (しかし技術的には URL は URI のサブセットである)。 +.PP +URI は絶対的にも相対的にも指定できる。 +絶対的な指定は、リソースをコンテクストに依存しないかたちで参照する。 +相対的な指定は、リソースを現在のコンテクストからの差異によって記述する。 +相対パス参照では、 "." および ".." だけのパス部分 (path segment) +は特別な意味を持ち、 +それぞれ「現在の階層レベル」および「現在の階層の一つ上のレベル」 +として扱われる (UNIX 風のシステムと同様)。 +コロン文字を含むパス部分は相対 URI パスの先頭に用いることはできない +(つまり "this:that" はダメ)。スキーム名と区別できないからである。 +このような場合には ./ を前置すること (つまり "./this:that" とする)。 +MS-DOS の子孫 (Microsoft Windows など) は、 +デバイス名のコロンを URI では垂直バー ("|") に置き換える。 +したがって "C:" は "C|" となる。 +.PP +フラグメント指定子 (fragment identifier) は、(もし含まれていれば) +リソース中の名前付けされた特定の部分 (フラグメント) を参照する。 +\(aq#\(aq 指定子以降の文字列がフラグメントを指定する。 +\(aq#\(aq で始まる URI は現在のリソース中のフラグメントを参照する。 +.S 利用法 +URI のスキームには色々な種類があり、 +それぞれ固有のルールや意味が追加されている。 +しかしできるだけ統一したものにしようという努力もなされている。 +例えば、多くの URL スキームは「機関 (authority)」に対して以下の書式 +(ここでは .I ip_server -¤È¸Æ¤Ö¤³¤È¤Ë¤¹¤ë) -¤òµö¤·¤Æ¤¤¤ë (³Ñ³ç¸ÌÆâÉô¤Ï¾Êά²Äǽ)¡£ +と呼ぶことにする) +を許している (角括弧内部は省略可能)。 .HP .IR "ip_server = " [ user " [ : " password " ] @ ] " host " [ : " port ] .PP -¤³¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¤Ï¡¢¥æ¡¼¥¶Ì¾¡¢¥æ¡¼¥¶Ì¾+¥Ñ¥¹¥ï¡¼¥É¤ò»ØÄê¤Ç¤­¤ë¡£ -¥Ý¡¼¥ÈÈÖ¹æ¤òÄɲ乤뤳¤È¤â²Äǽ¤Ç¤¢¤ë¡£ +このフォーマットには、ユーザ名、ユーザ名+パスワードを指定できる。 +ポート番号を追加することも可能である。 .I host -¤Ï¥Û¥¹¥È¥³¥ó¥Ô¥å¡¼¥¿¤Î̾Á°¤Ç¡¢ DNS ¤ÇÄêµÁ¤µ¤ì¤ë̾Á°¤« IP ¥¢¥É¥ì¥¹ -(¥Ô¥ê¥ª¥É¤Ç¶èÀÚ¤é¤ì¤¿¿ô»ú) ¤Ç»ØÄꤹ¤ë¡£¤·¤¿¤¬¤Ã¤Æ URI +はホストコンピュータの名前で、 DNS で定義される名前か IP アドレス +(ピリオドで区切られた数字) で指定する。したがって URI -¤Ï¡¢¥Û¥¹¥È xyz.com ¤Ë fred ¤È¤·¤Æ (¥Ñ¥¹¥ï¡¼¥É¤ò»È¤Ã¤Æ) -¥Ý¡¼¥È 8080 ¤ò»È¤Ã¤Æ¥í¥°¥¤¥ó¤¹¤ë¡£ -¥Ñ¥¹¥ï¡¼¥É¤Ï²Äǽ¤Ê¤é URI ¤Ë¤Ï´Þ¤á¤Ê¤¤¤Û¤¦¤¬Îɤ¤¤À¤í¤¦¡£ -¥Ñ¥¹¥ï¡¼¥É¤òľ½ñ¤­¤¹¤ë¤ÈÍÍ¡¹¤Ê¥»¥­¥å¥ê¥Æ¥£¾å¤Î¥ê¥¹¥¯¤¬À¸¤¸¤ë¤«¤é¤Ç¤¢¤ë¡£ -URL ¤Ë¥æ¡¼¥¶Ì¾¤À¤±¤òÍ¿¤¨¡¢¥Ñ¥¹¥ï¡¼¥É¤òÍ¿¤¨¤Ê¤¤¾ì¹ç¤Ï¡¢ -¥ê¥â¡¼¥È¥µ¡¼¥Ð¤Ï¥Ñ¥¹¥ï¡¼¥É¤òÍ׵ᤷ¤Æ¤¯¤ë¡£ -URL ¤ò²ò¼á¤·¤¿¥×¥í¥°¥é¥à¤¬¡¢¥æ¡¼¥¶¤Ë¤³¤ÎÆþÎϤòÂ¥¤¹¤³¤È¤Ë¤Ê¤í¤¦¡£ +は、ホスト xyz.com に fred として (パスワードを使って) +ポート 8080 を使ってログインする。 +パスワードは可能なら URI には含めないほうが良いだろう。 +パスワードを直書きすると様々なセキュリティ上のリスクが生じるからである。 +URL にユーザ名だけを与え、パスワードを与えない場合は、 +リモートサーバはパスワードを要求してくる。 +URL を解釈したプログラムが、ユーザにこの入力を促すことになろう。 .PP -°Ê²¼¤Ë¡¢ UNIX É÷¤Î¥·¥¹¥Æ¥à¤ÇÈó¾ï¤ËÎɤ¯ÍѤ¤¤é¤ì¤Æ¤ª¤ê¡¢ -¿¤¯¤Î¥Ä¡¼¥ë¤¬Íý²ò¤¹¤ë¥¹¥­¡¼¥à¤ò¼¨¤¹¡£ -URI ¤ò»È¤¦¥Ä¡¼¥ë¤Î¿¤¯¤Ç¤Ï¡¢ÆâÉô¥¹¥­¡¼¥à¤äÆüì¤Ê¥¹¥­¡¼¥à¤â -»È¤¨¤ë¤³¤È¤¬Â¿¤¤¡£¤½¤Î¤è¤¦¤Ê¥¹¥­¡¼¥à¤Ë´Ø¤·¤Æ¤Ï¥Ä¡¼¥ë¤Î¥É¥­¥å¥á¥ó¥È¤ò¸«¤ë¤³¤È¡£ +以下に、 UNIX 風のシステムで非常に良く用いられており、 +多くのツールが理解するスキームを示す。 +URI を使うツールの多くでは、内部スキームや特殊なスキームも +使えることが多い。そのようなスキームに関してはツールのドキュメントを見ること。 .PP -.B "http \- Web (HTTP) ¥µ¡¼¥Ð" +.B "http \- Web (HTTP) サーバ" .PP .RI http:// ip_server / path .br .RI http:// ip_server / path ? query .PP -¤³¤ì¤Ï web (HTTP) ¥µ¡¼¥Ð¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Î URL ¤Ç¤¢¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Î¥Ý¡¼¥È¤Ï 80¡£¥Ñ¥¹¤¬¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤·¤Æ¤¤¤ë¤È¤­¤Ï¡¢ -ÊÖ¤µ¤ì¤ë¾ðÊó¤Ï web ¥µ¡¼¥Ð¤¬ÁªÂò¤¹¤ë¡£Ä̾ï¤Ï¡¢ -"index.html" ¤ä "index.htm" ¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¤¬¤¢¤ì¤Ð¡¢¤½¤ÎÆâÍƤ¬ÊÖ¤µ¤ì¤ë¡£ -¤Ê¤±¤ì¤Ð¡¢¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤¬ (ŬÀڤʥê¥ó¥¯¤È¤È¤â¤Ë) À¸À®¤µ¤ì¤Æ -ÊÖ¤µ¤ì¤ë¡£Îã¤È¤·¤Æ¤Ï ¤Ê¤É¡£ -.PP -Ì䤤¹ç¤ï¤» (query) ¤ò¡¢¸Å¤¤ "isindex" ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¤è¤Ã¤ÆÁ÷¤ë¤³¤È¤â¤Ç¤­¤ë¡£ -¤³¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ïñ¸ì¤Þ¤¿¤Ï¥Õ¥ì¡¼¥º¤«¤é¤Ê¤ê¡¢Åù¹æ (=) ¤Ï´Þ¤Þ¤Ê¤¤¡£ -¤è¤êŤ¤ "GET" ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤âÌ䤤¹ç¤ï¤»¤Ï¹Ô¤¨¤ë¡£ -¤³¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¤Ï¡¢°ì¤Ä°Ê¾å¤ÎÌ䤤¹ç¤ï¤»¥¨¥ó¥È¥ê¤¬ +これは web (HTTP) サーバにアクセスするための URL である。 +デフォルトのポートは 80。パスがディレクトリを参照しているときは、 +返される情報は web サーバが選択する。通常は、 +"index.html" や "index.htm" のようなファイルがあれば、その内容が返される。 +なければ、カレントディレクトリのリストが (適切なリンクとともに) 生成されて +返される。例としては など。 +.PP +問い合わせ (query) を、古い "isindex" フォーマットによって送ることもできる。 +このフォーマットは単語またはフレーズからなり、等号 (=) は含まない。 +より長い "GET" フォーマットでも問い合わせは行える。 +このフォーマットには、一つ以上の問い合わせエントリが .IR key = value -¤È¤¤¤¦·Á¼°¤Ç´Þ¤Þ¤ì¤ë¡£¤½¤ì¤¾¤ì¤Î¥¨¥ó¥È¥ê¤Ï¥¢¥ó¥Ñ¥µ¥ó¥É (&) ¤Ç¶èÀÚ¤é¤ì¤ë¡£ +という形式で含まれる。それぞれのエントリはアンパサンド (&) で区切られる。 .I key -¤ÏÊ£¿ô¸Ä»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¡£¤·¤«¤·¤½¤ì¤Ë°ÕÌ£¤¬¤¢¤ë¤«¤É¤¦¤«¤Ï -web ¥µ¡¼¥Ð¤È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤¬·è¤á¤ë¡£ -HTML/XML/SGML ¤È GET Ì䤤¹ç¤ï¤»·Á¼°¤Î´Ö¤Ë¤Ï¡¢ÉÔ¹¬¤Ê´Ø·¸¤¬¤¢¤ë¡£ -°ì¤Ä°Ê¾å¤Î¥­¡¼¤Î´Þ¤Þ¤ì¤ë URI ¤¬ SGML/XML ʸ½ñ (HTML ¤â¤½¤¦) -¤ËËä¤á¤³¤Þ¤ì¤ëºÝ¤Ë¤Ï¡¢¥¢¥ó¥Ñ¥µ¥ó¥É (&) ¤Ï & ¤È½ñ¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -Á´¤Æ¤ÎÌ䤤¹ç¤ï¤»¤¬¤³¤Î·Á¼°¤ò»È¤¦¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -¥Õ¥©¡¼¥à¤¬Ä¹¤¯¤Ê¤ë¤È URI ¤ËÆþ¤ì¤ë¤Ë¤ÏŤ¹¤®¤ë¤«¤é¡¢ -Ê̤ÎÄÌ¿®¥á¥«¥Ë¥º¥à (POST ¤È¸Æ¤Ð¤ì¤ë) ¤¬ÍѤ¤¤é¤ì¤ë¡£ -POST ¤Ç¤Ï URI ¤Ë¤Ï¥Ç¡¼¥¿¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ -¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï¡¢ - ¤Ë¤¢¤ë -Common Gateway Interface ¤Î»ÅÍͽñ¤ò¸«¤è¡£ -.PP -.B "ftp \- ¥Õ¥¡¥¤¥ëžÁ÷¥×¥í¥È¥³¥ë (FTP)" +は複数個指定することもできる。しかしそれに意味があるかどうかは +web サーバとアプリケーションプログラムが決める。 +HTML/XML/SGML と GET 問い合わせ形式の間には、不幸な関係がある。 +一つ以上のキーの含まれる URI が SGML/XML 文書 (HTML もそう) +に埋めこまれる際には、アンパサンド (&) は & と書かなければならない。 +全ての問い合わせがこの形式を使うわけではない。 +フォームが長くなると URI に入れるには長すぎるから、 +別の通信メカニズム (POST と呼ばれる) が用いられる。 +POST では URI にはデータは含まれない。 +より詳しい情報は、 + にある +Common Gateway Interface の仕様書を見よ。 +.PP +.B "ftp \- ファイル転送プロトコル (FTP)" .PP .RI ftp:// ip_server / path .PP -¤³¤ì¤Ï¥Õ¥¡¥¤¥ëžÁ÷¥×¥í¥È¥³¥ë (FTP) ¤òÄ̤·¤Æ¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Î -URL ¤Ç¤¢¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Î (À©¸æÍÑ) ¥Ý¡¼¥È¤Ï 21 ¤Ç¤¢¤ë¡£ -¥æ¡¼¥¶Ì¾¤¬¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢¥æ¡¼¥¶Ì¾ anonymous ¤¬Í¿¤¨¤é¤ì¤ë¡£ -¤½¤·¤Æ¤½¤Î¾ì¹ç¤Ë¤Ï¡¢¥¯¥é¥¤¥¢¥ó¥È¤Î¿¤¯¤ÏÍ׵ᤷ¤¿¿Í¤Î -¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò¥Ñ¥¹¥ï¡¼¥É¤È¤·¤ÆÍ¿¤¨¤ë¡£ -Îã¤È¤·¤Æ¤Ï ¤Ê¤É¡£ +これはファイル転送プロトコル (FTP) を通してファイルにアクセスするための +URL である。デフォルトの (制御用) ポートは 21 である。 +ユーザ名がない場合には、ユーザ名 anonymous が与えられる。 +そしてその場合には、クライアントの多くは要求した人の +インターネットメールアドレスをパスワードとして与える。 +例としては など。 .PP -.B "gofer \- Gofer ¥µ¡¼¥Ð" +.B "gofer \- Gofer サーバ" .PP .RI gopher:// ip_server / "gophertype selector" .br @@ -193,113 +193,113 @@ URL .RI gopher:// ip_server / "gophertype selector" %09 search %09 gopher+_string .br .PP -¥Ç¥Õ¥©¥ë¥È¤Î gopher ¥Ý¡¼¥È¤Ï 70 ¤Ç¤¢¤ë¡£ +デフォルトの gopher ポートは 70 である。 .I gophertype -¤Ï 1 ʸ»ú¤«¤é¤Ê¤ë¥Õ¥£¡¼¥ë¥É¤Ç¡¢ -URL ¤¬»²¾È¤·¤Æ¤¤¤ë Gopher ¤Î¥ê¥½¡¼¥¹¥¿¥¤¥×¤ò¼¨¤¹¡£ -¥Ñ¥¹Á´ÂΤ¬¶õ¤Ç¤¢¤Ã¤Æ¤â¤è¤¯¡¢¤½¤Î¾ì¹ç¤Ï¶èÀÚ¤ê¤Î "/" ¤â¾Êά¤Ç¤­¤ë¡£ -¤³¤Î¤È¤­ gophertype ¤Î¥Ç¥Õ¥©¥ë¥È¤Ï "1" ¤Ë¤Ê¤ë¡£ +は 1 文字からなるフィールドで、 +URL が参照している Gopher のリソースタイプを示す。 +パス全体が空であってもよく、その場合は区切りの "/" も省略できる。 +このとき gophertype のデフォルトは "1" になる。 .PP .I selector -¤Ï Gopher ¥»¥ì¥¯¥¿Ê¸»úÎó¤Ç¤¢¤ë¡£Gopher ¥×¥í¥È¥³¥ë¤Ç¤Ï¡¢ -Gopher ¥»¥ì¥¯¥¿Ê¸»úÎó¤Ï¥ª¥¯¥Æ¥Ã¥Èʸ»ú¤«¤é¤Ê¤ê¡¢ -16¿Ê¿ô¤Î 09 (US-ASCII ¤Î HT ¤Þ¤¿¤Ï tab)¡¢ 0A (US-ASCII ¤Î LF ʸ»ú)¡¢ -0D (US-ASCII ¤Î CR ʸ»ú) °Ê³°¤Ê¤é¤É¤ó¤Ê¥ª¥¯¥Æ¥Ã¥È¤â»ØÄê¤Ç¤­¤ë¡£ +は Gopher セレクタ文字列である。Gopher プロトコルでは、 +Gopher セレクタ文字列はオクテット文字からなり、 +16進数の 09 (US-ASCII の HT または tab)、 0A (US-ASCII の LF 文字)、 +0D (US-ASCII の CR 文字) 以外ならどんなオクテットも指定できる。 .PP -.B "mailto \- ÅŻҥ᡼¥ë¥¢¥É¥ì¥¹" +.B "mailto \- 電子メールアドレス" .PP .RI mailto: email-address .PP -¤³¤ì¤ÏÅŻҥ᡼¥ë¥¢¥É¥ì¥¹¤Ç¡¢Ä̾ï +これは電子メールアドレスで、通常 .IR name @ hostname -¤È¤¤¤¦·Á¼°¤ò¤È¤ë¡£ÅŻҥ᡼¥ë¥¢¥É¥ì¥¹¤ÎÀµ¤·¤¤¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë´Ø¤¹¤ë -¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï +という形式をとる。電子メールアドレスの正しいフォーマットに関する +より詳しい情報は .BR mailaddr (7) -¤ò¸«¤è¡£ % ʸ»ú¤Ï¤¹¤Ù¤Æ %25 ¤È½ñ¤­Ä¾¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤ËÃí°Õ¡£ -Îã¤È¤·¤Æ¤Ï ¤Ê¤É¡£ +を見よ。 % 文字はすべて %25 と書き直さなければならないことに注意。 +例としては など。 .PP -.B "news \- ¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×¡¦¥Ë¥å¡¼¥¹¥á¥Ã¥»¡¼¥¸" +.B "news \- ニュースグループ・ニュースメッセージ" .PP .RI news: newsgroup-name .br .RI news: message-id .PP .I newsgroup-name -¤Ï¥Ô¥ê¥ª¥É¤Ç¶èÀÚ¤é¤ì¤¿³¬ÁØŪ¤Ê̾Á°¤Ç¤¢¤ë¡£Î㤨¤Ð -"comp.infosystems.www.misc" ¤Ê¤É¡£ - ¤¬ "*" (¤Ä¤Þ¤ê ) ¤Î¾ì¹ç¤Ë¤Ï¡¢ -¡Ö»²¾È¤Ç¤­¤ëÁ´¤Æ¤Î¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×¡×¤Î°ÕÌ£¤Ë¤Ê¤ë¡£ -Îã¤È¤·¤Æ¤Ï ¤Ê¤É¡£ +はピリオドで区切られた階層的な名前である。例えば +"comp.infosystems.www.misc" など。 + が "*" (つまり ) の場合には、 +「参照できる全てのニュースグループ」の意味になる。 +例としては など。 .PP .I message-id -¤Ï +は .UR http://www.ietf.org/rfc/rfc1036.txt IETF RFC\ 1036 .UE -¤Î Message-ID ¤«¤é¡¢°Ï¤ß¤Î "<" ¤È ">" ¤ò¼è¤Ã¤¿¤â¤Î¤ËÂбþ¤¹¤ë¡£ -Message-ID ¤Ï +の Message-ID から、囲みの "<" と ">" を取ったものに対応する。 +Message-ID は .IR unique @ full_domain_name -¤È¤¤¤¦·Á¼°¤ò¤È¤ë¡£¥á¥Ã¥»¡¼¥¸¤Î»ØÄê¤Ë¤Ï "@" ʸ»ú¤¬´Þ¤Þ¤ì¤ë¤Î¤Ç¡¢ -¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×¤Î̾Á°¤È¶èÊ̤Ǥ­¤ë¤À¤í¤¦¡£ +という形式をとる。メッセージの指定には "@" 文字が含まれるので、 +ニュースグループの名前と区別できるだろう。 .PP -.B "telnet \- telnet ¥í¥°¥¤¥ó" +.B "telnet \- telnet ログイン" .PP .RI telnet:// ip_server / .PP -Telnet URL ¥¹¥­¡¼¥à¤ÏÂÐÏÃŪ¤Ê¥Æ¥­¥¹¥È¥µ¡¼¥Ó¥¹¤Ë Telnet ¥×¥í¥È¥³¥ë¤ò -Ä̤·¤Æ¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ºÇ¸å¤Î "/" ʸ»ú¤Ï¾Êά¤·¤Æ¤è¤¤¡£ -Îã¤È¤·¤Æ¤Ï ¤Ê¤É¡£ +Telnet URL スキームは対話的なテキストサービスに Telnet プロトコルを +通してアクセスするために用いられる。最後の "/" 文字は省略してよい。 +例としては など。 .PP -.B "file \- Ä̾ï¤Î¥Õ¥¡¥¤¥ë" +.B "file \- 通常のファイル" .PP .RI file:// ip_server / path_segments .br .RI file: path_segments .PP -¤³¤ì¤Ï¥í¡¼¥«¥ë¤ËľÀÜ¥¢¥¯¥»¥¹¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¤ò¼¨¤¹¡£ -Æüì¤Ê¥±¡¼¥¹¤È¤·¤Æ¡¢ +これはローカルに直接アクセスできるファイルを示す。 +特殊なケースとして、 .I host -¤Ë¤Ï "localhost" ¤È¤¤¤¦Ê¸»úÎó¤òÍѤ¤¤¿¤ê¡¢¶õʸ»ú¤Ë¤·¤Æ¤â¤è¤¤¡£ -¤³¤ì¤Ï¡ÖURI ¤¬²ò¼á¤µ¤ì¤¿¥Þ¥·¥ó¡×¤È¤ß¤Ê¤µ¤ì¤ë¡£ -path ¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Î¾ì¹ç¤Ï¡¢¥Ó¥å¡¼¥¢¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤ÎÆâÍƤò -¥ê¥ó¥¯¤òÄ¥¤Ã¤¿¤«¤¿¤Á¤Çɽ¼¨¤¹¤ë¤È¤è¤¤¤À¤í¤¦¡£ -¤·¤«¤·¸½ºß¤Ï¡¢¤Þ¤ÀÁ´¤Æ¤Î¥Ó¥å¡¼¥¢¤¬¤³¤ÎÆ°ºî¤ò¤¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -KDE ¤ÏÀ¸À®¥Õ¥¡¥¤¥ë (generated file) ¤ò URL -¤Î·Á¼°¤Ç¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ -Í¿¤¨¤é¤ì¤¿¥Õ¥¡¥¤¥ë¤¬¸«ÉÕ¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ -¥Õ¥¡¥¤¥ë̾¤ò¥°¥í¥Ö¤Ë¤è¤Ã¤ÆŸ³«¤¹¤ë¤ÈÎɤ¤¤«¤â¤·¤ì¤Ê¤¤ +には "localhost" という文字列を用いたり、空文字にしてもよい。 +これは「URI が解釈されたマシン」とみなされる。 +path がディレクトリの場合は、ビューアはディレクトリの内容を +リンクを張ったかたちで表示するとよいだろう。 +しかし現在は、まだ全てのビューアがこの動作をするわけではない。 +KDE は生成ファイル (generated file) を URL +の形式でサポートしている。 +与えられたファイルが見付からなかった場合は、 +ファイル名をグロブによって展開すると良いかもしれない .RB ( glob (7) -¤ª¤è¤Ó +および .BR glob (3) -¤ò¸«¤è)¡£ -.PP -Æó¤Ä¤á¤Î½ñ¼° (Î㤨¤Ð ) ¤â¥í¡¼¥«¥ë¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë -Àµ¤·¤¤¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤¢¤ë¡£¤·¤«¤·¸Å¤¤É¸½à¤Ç¤Ï¤³¤Î½ñ¼°¤òµö¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¤Î¤Ç¡¢ -¤³¤ì¤ò URI ¤È¤·¤Æǧ¼±¤·¤Ê¤¤¥×¥í¥°¥é¥à¤â¸ºß¤¹¤ë¡£ -¤è¤êÈÆÍÑŪ¤Êʸˡ¤Ï¡¢¥µ¡¼¥Ð̾¤Ë¶õʸ»ú¤òÍѤ¤¤ë¤â¤Î¡¢ -¤Ä¤Þ¤ê ¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¡£ -¤³¤Î·Á¼°¤â»Ø¤¹ÆâÍƤÏƱ¤¸¤Ç¤¢¤ê¡¢¥Ñ¥¿¡¼¥ó¥Þ¥Ã¥Á¤ä¤è¤ê¸Å¤¤¥×¥í¥°¥é¥à¤Ç¤â -URI ¤È¤·¤Æǧ¼±¤µ¤ì¤ä¤¹¤¤¡£ -¤â¤·°Õ¿Þ¤¹¤ë¤È¤³¤í¤¬¡Ö¸½ºß¤Î¾ì½ê¤«¤é¥¹¥¿¡¼¥È¡×¤Ê¤é¡¢ -¥¹¥­¡¼¥à¤Ï°ìÀÚÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -<../test.txt> ¤Î¤è¤¦¤Ê¡¢¥¹¥­¡¼¥à¤Ë°Í¸¤·¤Ê¤¤ÁêÂÐ¥ê¥ó¥¯¤òÍѤ¤¤ë¤³¤È¡£ -¤³¤Î¥¹¥­¡¼¥à¤ÎÎã¤È¤·¤Æ¤Ï ¤Ê¤É¡£ -.PP -.B "man \- man ¥Ú¡¼¥¸Ê¸½ñ" +を見よ)。 +.PP +二つめの書式 (例えば ) もローカルファイルを参照する +正しいフォーマットである。しかし古い標準ではこの書式を許していなかったので、 +これを URI として認識しないプログラムも存在する。 +より汎用的な文法は、サーバ名に空文字を用いるもの、 +つまり のようなものである。 +この形式も指す内容は同じであり、パターンマッチやより古いプログラムでも +URI として認識されやすい。 +もし意図するところが「現在の場所からスタート」なら、 +スキームは一切用いるべきではない。 +<../test.txt> のような、スキームに依存しない相対リンクを用いること。 +このスキームの例としては など。 +.PP +.B "man \- man ページ文書" .PP .RI man: command-name .br .RI man: command-name ( section ) .PP -¤³¤ì¤Ï¥í¡¼¥«¥ë¤Î¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë (man) ¥ê¥Õ¥¡¥ì¥¹¥Ú¡¼¥¸¤ò»²¾È¤¹¤ë¡£ -command-name ¤Ë¤Ï³ç¸Ì¤È¥»¥¯¥·¥ç¥óÈÖ¹æ¤òÄɲ䷤Ƥâ¤è¤¤¡£ -¥»¥¯¥·¥ç¥óÈÖ¹æ¤Î°ÕÌ£¤Ë¤Ä¤¤¤Æ¾Ü¤·¤¯ÃΤꤿ¤¤¾ì¹ç¤Ï +これはローカルのオンラインマニュアル (man) リファレスページを参照する。 +command-name には括弧とセクション番号を追加してもよい。 +セクション番号の意味について詳しく知りたい場合は .BR man (7) -¤ò¤ß¤è¡£¤³¤Î URI ¥¹¥­¡¼¥à¤Ï UNIX É÷¤Î¥·¥¹¥Æ¥à (Linux ¤Ê¤É) -¤ËÆÃÍ­¤Î¤â¤Î¤Ç¤¢¤ê¡¢¸½ºß¤Ï¤Þ¤À IETF ¤Ë¤è¤ëÅÐÏ¿¤Ï¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -Îã¤È¤·¤Æ¤Ï ¤Ê¤É¡£ +をみよ。この URI スキームは UNIX 風のシステム (Linux など) +に特有のものであり、現在はまだ IETF による登録はされていない。 +例としては など。 .PP -.B "info \- info ¥Ú¡¼¥¸Ê¸½ñ" +.B "info \- info ページ文書" .PP .RI info: virtual-filename .br @@ -309,45 +309,45 @@ command-name .br .RI info:( virtual-filename ) nodename .PP -¤³¤Î¥¹¥­¡¼¥à¤Ï¡¢¥ª¥ó¥é¥¤¥ó¤Î info ¥ê¥Õ¥¡¥ì¥ó¥¹¥Ú¡¼¥¸ -(texinfo ¥Õ¥¡¥¤¥ë¤«¤éÀ¸À®¤µ¤ì¤ë) ¤ò»²¾È¤¹¤ë¡£ info ¥Ú¡¼¥¸¤Ï -GNU ¥Ä¡¼¥ë¤Ê¤É¤Î¥×¥í¥°¥é¥à¤ÇÍѤ¤¤é¤ì¤Æ¤¤¤ëʸ½ñ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤¢¤ë¡£ -¤³¤Î URI ¥¹¥­¡¼¥à¤Ï UNIX É÷¤Î¥·¥¹¥Æ¥à (Linux ¤Ê¤É) -¤ËÆÃÍ­¤Î¤â¤Î¤Ç¤¢¤ê¡¢¸½ºß¤Ï¤Þ¤À IETF ¤Ë¤è¤ëÅÐÏ¿¤Ï¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ -¤³¤Îʸ½ñ¤Î¼¹É®»þ¤Ë¤ª¤¤¤Æ¡¢ GNOME ¤È KDE ¤Ï¤½¤ì¤¾¤ì°Û¤Ê¤ëʸˡ¤Î URI -¤òÍѤ¤¤Æ¤ª¤ê¡¢¤ª¸ß¤¤Áê¼ê¤Îʸˡ¤ò¼õ¤±Æþ¤ì¤Ê¤¤¡£ -ºÇ½é¤Î 2 ¤Ä¤Î½ñ¼°¤Ï GNOME ¤Î½ñ¼°¤Ç¤¢¤ë¡£¥Î¡¼¥É̾ (nodename) -¤Î¥¹¥Ú¡¼¥¹¤Ï¤¹¤Ù¤Æ¥¢¥ó¥À¡¼¥¹¥³¥¢¤ËÊÑ´¹¤µ¤ì¤ë¡£ -3 ¤Ä¤á¤È 4 ¤Ä¤á¤Ï KDE ¤Î½ñ¼°¤Ç¤¢¤ë¡£¥Î¡¼¥É̾¤Î¥¹¥Ú¡¼¥¹¤Ï -¤½¤Î¤Þ¤Þ¥¹¥Ú¡¼¥¹¤Ç½ñ¤«¤ì¤ë -(URI ¤Îɸ½à¤Ç¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¤Î¤À¤¬)¡£ -¾­Íè¤Ï¿¤¯¤Î¥Ä¡¼¥ë¤¬¤³¤ì¤é¤Î½ñ¼°¤¹¤Ù¤Æ¤òÍý²ò¤¹¤ë¤è¤¦¤Ë¤Ê¤ê¡¢ -¥Î¡¼¥É̾¤Î¥¢¥ó¥À¡¼¥¹¥³¥¢¡¢¥¹¥Ú¡¼¥¹¤òξÊý¤È¤âÍý²ò¤Ç¤­¤ë¤è¤¦¤Ë -¤Ê¤ë¤³¤È¤ò´üÂÔ¤·¤¿¤¤¡£ GNOME ¤Ç¤â KDE ¤Ç¤â¡¢ -¥Î¡¼¥É̾¤¬¾Êά¤µ¤ì¤¿¾ì¹ç¤Ï¡¢¥Î¡¼¥É̾¤È¤·¤Æ "Top" ¤¬ÍѤ¤¤é¤ì¤ë¡£ -GNOME ½ñ¼°¤ÎÎã¤È¤·¤Æ¤Ï ¤ä ¤Ê¤É¡¢ -KDE ½ñ¼°¤ÎÎã¤È¤·¤Æ¤Ï ¤ä ¤Ê¤É¡£ -.PP -.B "whatis \- ʸ½ñ¸¡º÷" +このスキームは、オンラインの info リファレンスページ +(texinfo ファイルから生成される) を参照する。 info ページは +GNU ツールなどのプログラムで用いられている文書フォーマットである。 +この URI スキームは UNIX 風のシステム (Linux など) +に特有のものであり、現在はまだ IETF による登録はされていない。 +この文書の執筆時において、 GNOME と KDE はそれぞれ異なる文法の URI +を用いており、お互い相手の文法を受け入れない。 +最初の 2 つの書式は GNOME の書式である。ノード名 (nodename) +のスペースはすべてアンダースコアに変換される。 +3 つめと 4 つめは KDE の書式である。ノード名のスペースは +そのままスペースで書かれる +(URI の標準では禁止されているのだが)。 +将来は多くのツールがこれらの書式すべてを理解するようになり、 +ノード名のアンダースコア、スペースを両方とも理解できるように +なることを期待したい。 GNOME でも KDE でも、 +ノード名が省略された場合は、ノード名として "Top" が用いられる。 +GNOME 書式の例としては や など、 +KDE 書式の例としては や など。 +.PP +.B "whatis \- 文書検索" .PP .RI whatis: string .PP -¤³¤Î¥¹¥­¡¼¥à¤Ï¡¢¥³¥Þ¥ó¥É¤Ë´Ø¤¹¤ëû¤¤ (1 ¹Ô¤Î) ÀâÌÀ¤ò½¸¤á¤¿ -¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¸¡º÷¤·¡¢ string ¤ò´Þ¤àʸ»úÎó¤ò¥ê¥¹¥È¤·¤ÆÊÖ¤¹¡£ -ñ¸ì¤¬´°Á´¤Ë¥Þ¥Ã¥Á¤·¤¿·ë²Ì¤À¤±¤¬ÊÖ¤µ¤ì¤ë¡£ +このスキームは、コマンドに関する短い (1 行の) 説明を集めた +データベースを検索し、 string を含む文字列をリストして返す。 +単語が完全にマッチした結果だけが返される。 .BR whatis (1) -¤ò¸«¤è¡£ -¤³¤Î URI ¥¹¥­¡¼¥à¤Ï UNIX É÷¤Î¥·¥¹¥Æ¥à (Linux ¤Ê¤É) -¤ËÆÃÍ­¤Î¤â¤Î¤Ç¤¢¤ê¡¢¸½ºß¤Ï¤Þ¤À IETF ¤Ë¤è¤ëÅÐÏ¿¤Ï¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ +を見よ。 +この URI スキームは UNIX 風のシステム (Linux など) +に特有のものであり、現在はまだ IETF による登録はされていない。 .PP -.B "ghelp \- GNOME ¥Ø¥ë¥×ʸ½ñ" +.B "ghelp \- GNOME ヘルプ文書" .PP .RI ghelp: name-of-application .PP -Í¿¤¨¤é¤ì¤¿ application ¤ËÂбþ¤¹¤ë GNOME help ¤ò¥í¡¼¥É¤¹¤ë¡£ -¤³¤Î½ñ¼°¤òÍѤ¤¤¿Ê¸½ñ¤Ï¤Þ¤À¤¢¤Þ¤ê¿¤¯¤Ê¤¤¡£ +与えられた application に対応する GNOME help をロードする。 +この書式を用いた文書はまだあまり多くない。 .PP -.B "ldap \- ·ÚÎ̥ǥ£¥ì¥¯¥È¥ê¥¢¥¯¥»¥¹¥×¥í¥È¥³¥ë" +.B "ldap \- 軽量ディレクトリアクセスプロトコル" .PP .RI ldap:// hostport .br @@ -363,72 +363,72 @@ KDE .br .RI ldap:// hostport / dn ? attributes ? scope ? filter ? extensions .PP -¤³¤Î¥¹¥­¡¼¥à¤Ï Lightweight Directory Access Protocol (LDAP) -¤Ø¤Î¥¯¥¨¥ê¡¼¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ LDAP ¤ÏÊ£¿ô¤Î¥µ¡¼¥Ð¤Ëʬ»¶¤·¤¿¡¢ -³¬Áز½¤µ¤ì¤¿¾ðÊó (¿Í¡¹¤ä·×»»»ñ¸»¤Ê¤É) ¤ËÌ䤤¹ç¤ï¤»¤ë¤¿¤á¤Î -¥×¥í¥È¥³¥ë¤Ç¤¢¤ë¡£ LDAP ¤Î URL ¥¹¥­¡¼¥à¤Ë´Ø¤¹¤ë¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï +このスキームは Lightweight Directory Access Protocol (LDAP) +へのクエリーをサポートする。 LDAP は複数のサーバに分散した、 +階層化された情報 (人々や計算資源など) に問い合わせるための +プロトコルである。 LDAP の URL スキームに関するより詳しい情報は .UR http://www.ietf.org/rfc/rfc2255.txt RFC\ 2255 .UE -¤Ç¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Î URL ¤Î³ÆÉô¤Ï°Ê²¼¤ÎÄ̤ê: +で見ることができる。 +この URL の各部は以下の通り: .IP hostport 12 -¥¯¥¨¥ê¡¼¤ò¹Ô¤¦ LDAP ¥µ¡¼¥Ð¡£¥Û¥¹¥È̾¤ò½ñ¤¯¡£Â³¤±¤Æ¥³¥í¥ó¤È¥Ý¡¼¥ÈÈÖ¹æ¤ò -Äɲ乤뤳¤È¤â¤Ç¤­¤ë¡£ LDAP ¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥Ý¡¼¥È¤Ï TCP ¥Ý¡¼¥È 389 ¤Ç¤¢¤ë¡£ -¾Êά¤µ¤ì¤ë¤È¡¢¤É¤Î LDAP ¥µ¡¼¥Ð¤òÍѤ¤¤ë¤«¤Ï¥¯¥é¥¤¥¢¥ó¥È¤¬·èÄꤹ¤ë¡£ +クエリーを行う LDAP サーバ。ホスト名を書く。続けてコロンとポート番号を +追加することもできる。 LDAP のデフォルトのポートは TCP ポート 389 である。 +省略されると、どの LDAP サーバを用いるかはクライアントが決定する。 .IP dn -LDAP ¤Î Distintuished Name (¼±ÊÌ̾)¡£ -LDAP ¸¡º÷¤Î base ¥ª¥Ö¥¸¥§¥¯¥È¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¤¢¤ë ( +LDAP の Distintuished Name (識別名)。 +LDAP 検索の base オブジェクトを指定するものである ( .UR http://www.ietf.org/rfc/rfc2253.txt RFC\ 2253 .UE -¤Î section 3 ¤ò¸«¤è)¡£ +の section 3 を見よ)。 .IP attributes -¥³¥ó¥Þ¶èÀÚ¤ê¤Î¡¢ÊÖ¤µ¤ì¤ë°À­ (attribute) ¤Î¥ê¥¹¥È¡£ -RFC\ 2251 ¤Î section 4.1.5 ¤ò¸«¤è¡£¾Êά¤µ¤ì¤ë¤ÈÁ´¤Æ¤Î°À­¤¬ÊÖ¤µ¤ì¤ë¡£ +コンマ区切りの、返される属性 (attribute) のリスト。 +RFC\ 2251 の section 4.1.5 を見よ。省略されると全ての属性が返される。 .IP scope -¸¡º÷¤Î¥¹¥³¡¼¥×¤ò»ØÄꤹ¤ë¡£ -"base" (base ¥ª¥Ö¥¸¥§¥¯¥È¸¡º÷), "one" (1 ¥ì¥Ù¥ë¸¡º÷), -"sub" (¥µ¥Ö¥Ä¥ê¡¼¸¡º÷) ¤Î¤¤¤º¤ì¤«¤ò»ØÄꤹ¤ë¡£ -¾Êά¤¹¤ë¤È "base" ¤¬²¾Äꤵ¤ì¤ë¡£ +検索のスコープを指定する。 +"base" (base オブジェクト検索), "one" (1 レベル検索), +"sub" (サブツリー検索) のいずれかを指定する。 +省略すると "base" が仮定される。 .IP filter -¸¡º÷¥Õ¥£¥ë¥¿ (ÊÖ¤µ¤ì¤ë¥¨¥ó¥È¥ê¤Î¥µ¥Ö¥»¥Ã¥È) ¤ò»ØÄꤹ¤ë¡£ -¾Êά¤µ¤ì¤ë¤È¡¢Á´¤Æ¤Î¥¨¥ó¥È¥ê¤¬ÊÖ¤µ¤ì¤ë¡£ +検索フィルタ (返されるエントリのサブセット) を指定する。 +省略されると、全てのエントリが返される。 .UR http://www.ietf.org/rfc/rfc2254.txt RFC\ 2254 .UE -¤Î section 4 ¤ò¸«¤è¡£ +の section 4 を見よ。 .IP extensions -¥³¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿ type=value ¥Ú¥¢¤Î¥ê¥¹¥È¡£ -¤³¤³¤Ç =value ¤ÎÉôʬ¤Ï¡¢¤½¤ì¤òÍ׵ᤷ¤Ê¤¤¥ª¥×¥·¥ç¥ó¤ËÂФ·¤Æ¤Ï -¾Êά¤Ç¤­¤ë¡£ \(aq!\(aq ¤¬Á°ÃÖ¤µ¤ì¤¿ extension ¤Ï critical -(¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤) ¤Ç¤¢¤ê¡¢ -¤½¤¦¤Ç¤Ê¤±¤ì¤Ð critical ¤Ç¤Ï¤Ê¤¤ (¾Êά¤Ç¤­¤ë)¡£ +コンマで区切られた type=value ペアのリスト。 +ここで =value の部分は、それを要求しないオプションに対しては +省略できる。 \(aq!\(aq が前置された extension は critical +(サポートしていなければならない) であり、 +そうでなければ critical ではない (省略できる)。 .PP -LDAP ¤Î¥¯¥¨¥ê¡¼¤Ï¡¢Îã¤È¤È¤â¤ËÀâÌÀ¤¹¤ë¤Î¤¬ºÇ¤â´Êñ¤Ç¤¢¤ë¡£ -¼¡¤ÎÎã¤Ï¡¢ ldap.itd.umich.edu ¤Ë¡¢ -U.S. ¤Ë¤¢¤ë University of Michigan ¤Î¾ðÊó¤ò¿Ò¤Í¤ëÎã¤Ç¤¢¤ë¡£ +LDAP のクエリーは、例とともに説明するのが最も簡単である。 +次の例は、 ldap.itd.umich.edu に、 +U.S. にある University of Michigan の情報を尋ねる例である。 .PP .nf ldap://ldap.itd.umich.edu/o=University%20of%20Michigan,c=US .fi .PP -͹ÊØÍѤν»½ê°À­¤À¤±¤ò¼èÆÀ¤¹¤ë¾ì¹ç¤Ï¡¢ -¼¡¤Î¤è¤¦¤Ë¥ê¥¯¥¨¥¹¥È¤¹¤ë: +郵便用の住所属性だけを取得する場合は、 +次のようにリクエストする: .PP .nf ldap://ldap.itd.umich.edu/o=University%20of%20Michigan,c=US?postalAddress .fi .PP -host.com ¤Î¥Ý¡¼¥È 6666 ¤Ë¡¢ University of Michigan ¤Ë¤¤¤ë -common name (cn) ¤¬ "Babs Jenson" ¤Î¿Í¤Î¾ðÊó¤ò¿Ò¤Í¤ë¾ì¹ç¤Ï¡¢ -¼¡¤Î¤è¤¦¤Ë¥ê¥¯¥¨¥¹¥È¤¹¤ë: +host.com のポート 6666 に、 University of Michigan にいる +common name (cn) が "Babs Jenson" の人の情報を尋ねる場合は、 +次のようにリクエストする: .PP .nf ldap://host.com:6666/o=University%20of%20Michigan,c=US??sub?(cn=Babs%20Jensen) .fi .PP -.B "wais \- ¹­°è¾ðÊ󥵡¼¥Ó¥¹" +.B "wais \- 広域情報サービス" .PP .RI wais:// hostport / database .br @@ -436,243 +436,243 @@ ldap://host.com:6666/o=University%20of%20Michigan,c=US??sub?(cn=Babs%20Jensen) .br .RI wais:// hostport / database / wtype / wpath .PP -¤³¤Î¥¹¥­¡¼¥à¤Ï WAIS ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¡¢¸¡º÷¡¢Ê¸½ñ¤ò»ØÄꤹ¤ë -(WAIS ¤Ë´Ø¤¹¤ë¾Ü¤·¤¤¾ðÊó¤Ï +このスキームは WAIS のデータベース、検索、文書を指定する +(WAIS に関する詳しい情報は .UR http://www.ietf.org/rfc/rfc1625.txt IETF RFC\ 1625 .UE -¤ò¸«¤è)¡£ -hostport ¤Ï¡¢¥Û¥¹¥È̾¤Ë¥³¥í¥ó¤È¥Ý¡¼¥ÈÈÖ¹æ¤òÉղä·¤¿¤â¤Î¤Ç¤¢¤ë -(¥³¥í¥ó + ¥Ý¡¼¥ÈÈÖ¹æ¤Ï¾Êά²Ä¡£¥Ç¥Õ¥©¥ë¥È¤Î¥Ý¡¼¥ÈÈÖ¹æ¤Ï 210 ¤Ç¤¢¤ë)¡£ +を見よ)。 +hostport は、ホスト名にコロンとポート番号を付加したものである +(コロン + ポート番号は省略可。デフォルトのポート番号は 210 である)。 .PP -ºÇ½é¤Î½ñ¼°¤Ï WAIS ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÂФ¹¤ë¸¡º÷¤Î»ØÄê¤Ç¤¢¤ë¡£ -Æó¤Ä¤á¤Î½ñ¼°¤ÏÆÃÄê¤Î WAIS ¥Ç¡¼¥¿¥Ù¡¼¥¹ +最初の書式は WAIS のデータベースに対する検索の指定である。 +二つめの書式は特定の WAIS データベース .I database -¤ËÂФ¹¤ë¸¡º÷¤Î»ØÄê¤Ç¤¢¤ë¡£ -»°¤Ä¤á¤Î½ñ¼°¤Ï WAIS ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤¢¤ëÆÃÄê¤Îʸ½ñ¤ò¼è½Ð¤¹»ØÄê¤Ç¤¢¤ë¡£ +に対する検索の指定である。 +三つめの書式は WAIS データベースにある特定の文書を取出す指定である。 .I wtype -¤Ï WAIS ¤Î¥ª¥Ö¥¸¥§¥¯¥È·Á¼°»ØÄê¤Ç¤¢¤ê¡¢ +は WAIS のオブジェクト形式指定であり、 .I wpath -¤Ï WAIS document-id ¤Ç¤¢¤ë¡£ -.PP -.B ¤½¤Î¾¤Î¥¹¥­¡¼¥à -.PP -¾¤Ë¤â¿¤¯¤Î URI ¥¹¥­¡¼¥à¤¬Â¸ºß¤¹¤ë¡£ -URI ¤ò¼õÉÕ¤±¤ë¤Û¤È¤ó¤É¤Î¥Ä¡¼¥ë¤Ï¡¢ÆâÉô URI ¤Î¥»¥Ã¥È¤ò¥µ¥Ý¡¼¥È¤¹¤ë -(Î㤨¤Ð Mozilla ¤ÏÆâÉô¾ðÊóÍѤΠabout: ¤È¤¤¤¦¥¹¥­¡¼¥à¤ò¼õÉÕ¤±¤ë¤·¡¢ -GNOME ¥Ø¥ë¥×¥Ö¥é¥¦¥¶¤Ï¤¤¤í¤¤¤í¤Ê½ÐȯÅÀÍÑ¤Ë toc: ¤È¤¤¤¦¥¹¥­¡¼¥à¤ò»ý¤Ã¤Æ¤¤¤ë)¡£ -ÄêµÁ¤µ¤ì¤¿¥¹¥­¡¼¥à¤Ï¤¿¤¯¤µ¤ó¤¢¤ë¤¬¡¢¸½»þÅÀ¤Ç¹­¤¯ÍѤ¤¤é¤ì¤Æ¤Ï¤¤¤Ê¤¤ -(Î㤨¤Ð prospero ¤È¤«)¡£ -nntp: ¥¹¥­¡¼¥à¤Ï news: ¥¹¥­¡¼¥à¤¬¹¥¤ó¤ÇÍѤ¤¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤Î¤Ç -»È¤ï¤Ê¤¤¤Û¤¦¤¬Îɤ¤¡£ URN ¤Ï urn: ¥¹¥­¡¼¥à¤Ë¤è¤Ã¤Æ¡¢³¬ÁØŪ¤Ê̾Á°¶õ´Ö -(Î㤨¤Ð urn:ietf:... ¤Ï IETF ʸ½ñ¤ò¼¨¤¹) -¤È¤·¤Æ¥µ¥Ý¡¼¥È¤µ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¤¬¡¢¸½»þÅÀ¤Ç¤Ï URN ¤Ï¤¢¤Þ¤êÍѤ¤¤é¤ì¤Æ¤¤¤Ê¤¤¡£ -Á´¤Æ¤Î¥Ä¡¼¥ë¤¬Á´¤Æ¤Î¥¹¥­¡¼¥à¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -.SS ʸ»ú¥¨¥ó¥³¡¼¥É -.PP -URI ¤Ç¤Ï¡¢¿§¡¹¤Ê¾õ¶·²¼¤ÇÆþÎϤǤ­¤ë¤è¤¦¤Ë¡¢Ê¸»ú¤Î¼ïÎà¤òÀ©¸Â¤·¤Æ¤¤¤ë¡£ -.PP -°Ê²¼¤Îʸ»ú¤ÏͽÌ󤵤ì¤Æ¤¤¤ë¡£¤¹¤Ê¤ï¤Á¡¢¤³¤ì¤é¤Îʸ»ú¤Ï -URI ¤ËÅо줹¤ë¤³¤È¤¬¤¢¤ë¤¬¡¢¤½¤ì¤é¤ÎÍøÍÑË¡ (²ò¼á¤Î¤µ¤ìÊý) ¤Ï -ͽÌ󤵤줿ÌÜŪ¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë (¾×Æͤ¹¤ë¥Ç¡¼¥¿¤Ï -URI ¤Ë¤¹¤ëÁ°¤Ë¥¨¥¹¥±¡¼¥×¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£ +は WAIS document-id である。 +.PP +.B その他のスキーム +.PP +他にも多くの URI スキームが存在する。 +URI を受付けるほとんどのツールは、内部 URI のセットをサポートする +(例えば Mozilla は内部情報用の about: というスキームを受付けるし、 +GNOME ヘルプブラウザはいろいろな出発点用に toc: というスキームを持っている)。 +定義されたスキームはたくさんあるが、現時点で広く用いられてはいない +(例えば prospero とか)。 +nntp: スキームは news: スキームが好んで用いられるようになったので +使わないほうが良い。 URN は urn: スキームによって、階層的な名前空間 +(例えば urn:ietf:... は IETF 文書を示す) +としてサポートされるべきであるが、現時点では URN はあまり用いられていない。 +全てのツールが全てのスキームをサポートしているわけではない。 +.SS 文字エンコード +.PP +URI では、色々な状況下で入力できるように、文字の種類を制限している。 +.PP +以下の文字は予約されている。すなわち、これらの文字は +URI に登場することがあるが、それらの利用法 (解釈のされ方) は +予約された目的に制限されている (衝突するデータは +URI にする前にエスケープしなければならない)。 .IP ; / ? : @ & = + $ , .PP -̤ͽÌóʸ»ú (unreserved character) ¤Ï URI ¤Ë»È¤Ã¤Æ¤è¤¤¡£ -¤³¤ì¤Ë¤Ï±Ñ»ú¤ÎÂçʸ»ú¤È¾®Ê¸»ú¡¢10 ¿Ê¤Î¿ô»ú¡¢¤ª¤è¤Ó -°Ê²¼¤Î¶çÆÉʸ»ú¡¦µ­¹æ¤¬´Þ¤Þ¤ì¤ë +未予約文字 (unreserved character) は URI に使ってよい。 +これには英字の大文字と小文字、10 進の数字、および +以下の句読文字・記号が含まれる .IP \- _ . ! ~ * ' ( ) .PP -¾¤Îʸ»ú¤Ï¤¹¤Ù¤Æ¥¨¥¹¥±¡¼¥×¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥¨¥¹¥±¡¼¥×¤µ¤ì¤¿¥ª¥¯¥Æ¥Ã¥È¤Ï 3 ʸ»ú¤«¤é¤Ê¤ë: -ÀèƬ¤Ë¥Ñ¡¼¥»¥ó¥Èʸ»ú "%"¡¢¤½¤ì¤Ë³¤±¤Æ¥ª¥¯¥Æ¥Ã¥È¥³¡¼¥É¤òɽ¤¹ -2 ʸ»ú¤Î 16 ¿Ê¿ô»ú¤Ç¤¢¤ë (16 ¿Ê¿ô¤Î±Ñ»ú¤ÏÂçʸ»ú¾®Ê¸»ú¤É¤Á¤é¤Ç¤âÎɤ¤)¡£ -Î㤨¤Ð¶õÇòʸ»ú¤Ï "%20" ¤Î¤è¤¦¤Ë¥¨¥¹¥±¡¼¥×¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ -¥¿¥Öʸ»ú¤Ï "%09"¡¢ "&" ¤Ï "%26" ¤È¤Ê¤ë¡£ -¥Ñ¡¼¥»¥ó¥Èʸ»ú "%" ¤Ï¾ï¤Ë¥¨¥¹¥±¡¼¥×¤ò¼¨¤¹Í½Ì󤵤줿ÌÜŪ¤ËÍѤ¤¤é¤ì¤ë¤Î¤Ç¡¢ -"%" ¼«¿È¤òɽ¤¹¤Ë¤Ï "%25" ¤È¥¨¥¹¥±¡¼¥×¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥¯¥¨¥ê¡¼¤Î¥Æ¥­¥¹¥È¤Ç¤Ï¡¢¥¹¥Ú¡¼¥¹Ê¸»ú¤ò¥×¥é¥¹µ­¹æ (+) ¤Ç¥¨¥¹¥±¡¼¥×¤¹¤ë¤³¤È¤â -°ìÈ̤ËÎɤ¯¹Ô¤ï¤ì¤ë¡£¤³¤Î´·Îã¤Ï´ØÏ¢ RFC ¤Ç¼ÂºÝ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤ -(Âå¤ï¤ê¤Ë %20 ¤ò¿ä¾©¤·¤Æ¤¤¤ë) ¤¬¡¢¥¯¥¨¥ê¡¼¥Æ¥­¥¹¥È¤ò¼õÉÕ¤±¤ë -¥Ä¡¼¥ë¤Ï¡¢¤³¤Î½ñ¼°¤Ø¤ÎÂбþ¤òÍÑ°Õ¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤í¤¦¡£ -URI ¤Ï¡¢¾ï¤Ë¡Ö¥¨¥¹¥±¡¼¥×¤µ¤ì¤¿¡×¤«¤¿¤Á¤Çɽ¼¨¤µ¤ì¤ë¡£ -.PP -̤ͽÌóʸ»ú¤â¥¨¥¹¥±¡¼¥×¤¹¤ë¤³¤È¤¬¤Ç¤­¡¢¤³¤ì¤Ë¤è¤Ã¤Æ -URI ¤Î°ÕÌ£¤¹¤ë¤È¤³¤í¤¬ÊѤï¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ -¤·¤«¤·URI ¤Ë¤½¤ÎÈ󥨥¹¥±¡¼¥×ʸ»ú¤¬¸½¤ì¤ë¤³¤È¤¬µö¤µ¤ì¤Ê¤¤¤è¤¦¤Ê -Æüì¤Ê¾ì¹ç¤ò½ü¤¤¤Æ¡¢¤³¤ì¤ÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -Î㤨¤Ð¡¢ HTTP URL ¤Î path ¤Ë¤ª¤¤¤Æ -"%7e" ¤¬ "~" ¤ÎÂå¤ï¤ê¤ËÍѤ¤¤é¤ì¤ë¤³¤È¤¬¤¢¤ë¤¬¡¢ -¤³¤ÎÆó¤Ä¤Ï HTTP URL ¤È¤·¤Æ¤ÏÅù²Á¤Ç¤¢¤ë¡£ -.PP -US ASCII ¥­¥ã¥é¥¯¥¿¥»¥Ã¥È°Ê³°¤Îʸ»ú¤ò URI ¤È¤·¤Æ°·¤¦¾ì¹ç¡¢ -HTML 4.1 µ¬³Ê (section B.2) µÚ¤Ó IETF RFC\ 2718 (section 2.2.5) ¤Ï -°Ê²¼¤Î¼êË¡¤òÍѤ¤¤ë¤è¤¦¿ä¾©¤·¤Æ¤¤¤ë¡£ +他の文字はすべてエスケープしなければならない。 +エスケープされたオクテットは 3 文字からなる: +先頭にパーセント文字 "%"、それに続けてオクテットコードを表す +2 文字の 16 進数字である (16 進数の英字は大文字小文字どちらでも良い)。 +例えば空白文字は "%20" のようにエスケープしなければならず、 +タブ文字は "%09"、 "&" は "%26" となる。 +パーセント文字 "%" は常にエスケープを示す予約された目的に用いられるので、 +"%" 自身を表すには "%25" とエスケープしなければならない。 +クエリーのテキストでは、スペース文字をプラス記号 (+) でエスケープすることも +一般に良く行われる。この慣例は関連 RFC で実際に定義されているわけではない +(代わりに %20 を推奨している) が、クエリーテキストを受付ける +ツールは、この書式への対応を用意しておくべきであろう。 +URI は、常に「エスケープされた」かたちで表示される。 +.PP +未予約文字もエスケープすることができ、これによって +URI の意味するところが変わるわけではない。 +しかしURI にその非エスケープ文字が現れることが許されないような +特殊な場合を除いて、これは避けるべきである。 +例えば、 HTTP URL の path において +"%7e" が "~" の代わりに用いられることがあるが、 +この二つは HTTP URL としては等価である。 +.PP +US ASCII キャラクタセット以外の文字を URI として扱う場合、 +HTML 4.1 規格 (section B.2) 及び IETF RFC\ 2718 (section 2.2.5) は +以下の手法を用いるよう推奨している。 .IP 1. 4 -¥­¥ã¥é¥¯¥¿Îó¤ò UTF-8 (IETF RFC\ 2279, +キャラクタ列を UTF-8 (IETF RFC\ 2279, .BR utf-8 (7) -»²¾È) ¤ËÊÑ´¹¤·¡¢ +参照) に変換し、 .IP 2. -URI ¥¨¥¹¥±¡¼¥×µ¡¹½¤òÍѤ¤¤ë¡£ -¤Ä¤Þ¤ê¡¢°ÂÁ´¤Ç¤Ê¤¤¥ª¥¯¥Æ¥Ã¥È¤ò %HH ¤Ç¥¨¥ó¥³¡¼¥É¤¹¤ë¡£ -.SS "URI ¤ò½ñ¤¯¤Ë¤Ï" -URI ¤ò½ñ¤¯»þ¤Ë¤Ï¡¢¥À¥Ö¥ë¥¯¥©¡¼¥È¤ÎÆâÉô¤Ë½ñ¤¯ -(Îã: "http://www.kernelnotes.org") ¤«¡¢ -angle ¥Ö¥é¥±¥Ã¥È¤Ç°Ï¤à (Îã: ) ¤«¡¢ -°ì¹Ô¤Ë URI ¤À¤±¤ò½ñ¤¯¤«¤¹¤ë¡£ -¥À¥Ö¥ë¥¯¥©¡¼¥È¤ò»È¤¦¿Í¤Ë·Ù¹ð: -\fBÀäÂФË\fP¶çÆÉÅÀ (ʸËö¤Î¥Ô¥ê¥ª¥É¤ä¥ê¥¹¥È¶èÀÚ¤ê¤Î¥³¥ó¥Þ) ¤ò -URI ¤ÎÆâÉô¤Ë°ÜÆ°¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -Âå¤ï¤ê¤Ë angle ¥Ö¥é¥±¥Ã¥È¤ò»È¤¦¤«¡¢ -³°¤Ë¤¢¤ëʸ»ú¤ò¥¯¥©¡¼¥Æ¡¼¥·¥ç¥ó¥Þ¡¼¥¯¤ÎÆâÉô¤Ë -·è¤·¤Æ´Þ¤á¤Ê¤¤¤è¤¦¤Ê°úÍÑÊý¼°¤ËÀÚÂؤ¨¤ë¤³¤È¡£ -¸å¼Ô¤ÎÊý¼°¤Ï "Hart's Rules" ¤ä -"Oxford Dictionary for Writers and Editors" ¤Ë¤è¤ì¤Ð -¡Ö¿·¤·¤¤ (new) °úÍÑÊý¼°¡×¤¢¤ë¤¤¤Ï¡ÖÏÀÍýŪ (logical) ¤Ê°úÍÑÊý¼°¡× -¤È¸Æ¤Ð¤ì¤Æ¤ª¤ê¡¢ ¥¤¥®¥ê¥¹¿Í¤äÀ¤³¦Ãæ¤Î¥Ï¥Ã¥«¡¼Ã£¤Ï¤³¤Á¤é¤Î´·½¬¤ò¹¥¤ó¤Ç¤¤¤ë -(¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï -Hacker Writing Style ¤Î Jargon File ¤Î¥»¥¯¥·¥ç¥ó +URI エスケープ機構を用いる。 +つまり、安全でないオクテットを %HH でエンコードする。 +.SS "URI を書くには" +URI を書く時には、ダブルクォートの内部に書く +(例: "http://www.kernelnotes.org") か、 +angle ブラケットで囲む (例: ) か、 +一行に URI だけを書くかする。 +ダブルクォートを使う人に警告: +\fB絶対に\fP句読点 (文末のピリオドやリスト区切りのコンマ) を +URI の内部に移動してはならない。 +代わりに angle ブラケットを使うか、 +外にある文字をクォーテーションマークの内部に +決して含めないような引用方式に切替えること。 +後者の方式は "Hart's Rules" や +"Oxford Dictionary for Writers and Editors" によれば +「新しい (new) 引用方式」あるいは「論理的 (logical) な引用方式」 +と呼ばれており、 イギリス人や世界中のハッカー達はこちらの慣習を好んでいる +(より詳しい情報は +Hacker Writing Style の Jargon File のセクション .I http://www.fwi.uva.nl/~mes/jargon/h/HackerWritingStyle.html -¤ò¸«¤è)¡£ -¸Å¤¤Ê¸½ñ¤Ç¤Ï¡¢ "URL:" ¤È¤¤¤¦Ê¸»úÎó¤ò URI ¤ÎľÁ°¤ËÁÞÆþ¤¹¤ë¤³¤È¤ò -´«¤á¤Æ¤¤¤ë¤â¤Î¤â¤¢¤ë¤¬¡¢¤·¤«¤·¤³¤Î·Á¼°¤Ï¤Þ¤Ã¤¿¤¯Î®¹Ô¤·¤Ê¤«¤Ã¤¿¡£ -.PP -URI ¤Î½ñ¼°¤ÏÛ£Ë椵¤òÇÓ½ü¤¹¤ë¤è¤¦¤ËÀ߷פµ¤ì¤Æ¤¤¤ë¡£ -¤·¤«¤· URI ¤¬¹­¤Þ¤ë¤Ë¤Ä¤ì¡¢ÀΤʤ¬¤é¤Î¥á¥Ç¥£¥¢ (TV¡¢¥é¥¸¥ª¡¢¿·Ê¹¡¢ -´ÇÈĤʤɤʤÉ) ¤Ï URI »²¾È¤ò¾Êά¤·¤¿¤«¤¿¤Á¡¢¤¹¤Ê¤ï¤Á -µ¡´ØÉô¤È¥Ñ¥¹Éô¤À¤±¤Ç¥ê¥½¡¼¥¹¤ò»ØÄꤹ¤ë¤³¤È¤¬Â¿¤¯¤Ê¤Ã¤Æ¤¤¤ë -(Îã: )¡£ -¤³¤Î¤è¤¦¤Ê»²¾È¤Ï¥Þ¥·¥ó¤È¤¤¤¦¤è¤ê¤Ï¿Í´Ö¸þ¤±¤Î¤â¤Î¤Ç¡¢ -¥³¥ó¥Æ¥­¥¹¥È¥Ù¡¼¥¹¤Î¿ä¬¤Ë¤è¤Ã¤Æ URI ¤ÎÊä´°¤¬²Äǽ¤Ç¤¢¤ë¤³¤È¤ò -¤¢¤Æ¤Ë¤·¤Æ¤¤¤ë¤Î¤Ç¤¢¤ë (Î㤨¤Ð "www" ¤Ç¤Ï¤¸¤Þ¤ë¥Û¥¹¥È̾¤Ê¤é -"http://" ¤¬¤Ä¤¯¤À¤í¤¦¤·¡¢ "ftp" ¤Ç¤Ï¤¸¤Þ¤ë¥Û¥¹¥È̾¤Ê¤é -"ftp://" ¤¬¤Ä¤¯¤À¤í¤¦)¡£ -¿¤¯¤Î¥¯¥é¥¤¥¢¥ó¥È¤Î¼ÂÁõ¤Ç¤Ï¡¢¤³¤Î¼ï¤Î»²¾È¤ò¿ä¬¤Ë¤è¤Ã¤Æ²ò·è¤¹¤ë¡£ -¤³¤Î¤è¤¦¤Ê¿ä¬¤Ï»þÂå¤È¤È¤â¤ËÊѤï¤ê¤¦¤ë¡£ -Æä˿·¤·¤¤¥¹¥­¡¼¥à¤¬Æ³Æþ¤µ¤ì¤ë¤È¤½¤¦¤Ç¤¢¤ë¡£ -URI ¤Î¾Êά·Á¤Ç¤ÏÁêÂÐ URL ¥Ñ¥¹¤Î¶èÊ̤¬ÉÕ¤±¤é¤ì¤Ê¤¤¤Î¤Ç¡¢ -¾Êά·Á URI »²¾È¤ÏÁêÂÐ URI ¤ÎÍøÍѤǤ­¤ë¤È¤³¤í¤Ç¤Ï»È¤¨¤Ê¤¤¡£ -¤Ä¤Þ¤êÄêµÁºÑ¤ß¤Î¥Ù¡¼¥¹ (¥À¥¤¥¢¥í¥°¥Ü¥Ã¥¯¥¹¤Ê¤É) -¤¬¤Ê¤¤¾ì¹ç¤Ë¸Â¤Ã¤ÆÍøÍѤǤ­¤ë¡£ -.\"nakano: ¤³¤Îʸ̮¤Ç¤Î dialog box ¤È¤Ï¡© -ʸ½ñÆâÉô¤Ç¤Î¥Ï¥¤¥Ñ¡¼¥Æ¥­¥¹¥È¥ê¥ó¥¯¤Ë¤Ï¾Êά·Á URI ¤ò»È¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ -¾å½Ò¤Îɸ½à¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»È¤¦¤³¤È¡£ -.SH ½àµò +を見よ)。 +古い文書では、 "URL:" という文字列を URI の直前に挿入することを +勧めているものもあるが、しかしこの形式はまったく流行しなかった。 +.PP +URI の書式は曖昧さを排除するように設計されている。 +しかし URI が広まるにつれ、昔ながらのメディア (TV、ラジオ、新聞、 +看板などなど) は URI 参照を省略したかたち、すなわち +機関部とパス部だけでリソースを指定することが多くなっている +(例: )。 +このような参照はマシンというよりは人間向けのもので、 +コンテキストベースの推測によって URI の補完が可能であることを +あてにしているのである (例えば "www" ではじまるホスト名なら +"http://" がつくだろうし、 "ftp" ではじまるホスト名なら +"ftp://" がつくだろう)。 +多くのクライアントの実装では、この種の参照を推測によって解決する。 +このような推測は時代とともに変わりうる。 +特に新しいスキームが導入されるとそうである。 +URI の省略形では相対 URL パスの区別が付けられないので、 +省略形 URI 参照は相対 URI の利用できるところでは使えない。 +つまり定義済みのベース (ダイアログボックスなど) +がない場合に限って利用できる。 +.\"nakano: この文脈での dialog box とは? +文書内部でのハイパーテキストリンクには省略形 URI を使ってはならない。 +上述の標準フォーマットを使うこと。 +.SH 準拠 .PP .I http://www.ietf.org/rfc/rfc2396.txt (IETF RFC\ 2396), .UE .I http://www.w3.org/TR/REC-html40 (HTML 4.0). -.SH Ãí°Õ -Linux ¥·¥¹¥Æ¥à¤Ç URI ¤ò¼õÉÕ¤±¤ë¥Ä¡¼¥ë (Î㤨¤Ð web ¥Ö¥é¥¦¥¶¤Ê¤É) ¤Ï¡¢ -¾å¤Ë¤¢¤²¤¿Á´¤Æ¤Î¥¹¥­¡¼¥à¤ò (ľÀܤޤ¿¤Ï´ÖÀܤË) °·¤¨¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -man: ¤ä info: ¤â´Þ¤á¤Æ¡¢¤Ç¤¢¤ë¡£ -¥¹¥­¡¼¥à¤Î½èÍý¤Ë¾¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤Î¤ÏÎɤ¤¤³¤È¤À¤·¡¢ -¼Â¤Ï¤¹¤¹¤ó¤Ç¤½¤¦¤¹¤Ù¤­¤Ç¤¢¤ë¡£ +.SH 注意 +Linux システムで URI を受付けるツール (例えば web ブラウザなど) は、 +上にあげた全てのスキームを (直接または間接に) 扱えるべきである。 +man: や info: も含めて、である。 +スキームの処理に他のプログラムを実行するのは良いことだし、 +実はすすんでそうすべきである。 .PP -µ»½ÑŪ¤Ë¤Ï¡¢¥Õ¥é¥°¥á¥ó¥È¤Ï URI ¤Î°ìÉô¤Ç¤Ï¤Ê¤¤¡£ +技術的には、フラグメントは URI の一部ではない。 .PP -URI (URL ¤â´Þ¤à) ¤ò¥Ç¡¼¥¿¥Õ¥©¡¼¥Þ¥Ã¥È¤ËËä¤á¤³¤àÊýË¡¤Ë´Ø¤¹¤ë¾ðÊó¤Ï¡¢ -¤½¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥É¥­¥å¥á¥ó¥È¤ò¸«¤è¡£ HTML ¤Ï +URI (URL も含む) をデータフォーマットに埋めこむ方法に関する情報は、 +そのフォーマットのドキュメントを見よ。 HTML は \fItext\fP -¤òÍѤ¤¤ë¡£ texinfo ¤Ï @uref{\fIuri\fP} ¤È¤¤¤¦½ñ¼°¤òÍѤ¤¤ë¡£ -man ¤È mdoc ¤Ï¡¢ºÇ¶áÄɲ䵤줿 UR ¥Þ¥¯¥í¤ò»È¤¦¡£ -¤¢¤ë¤¤¤Ï URI ¤ò¤½¤Î¤Þ¤Þ¥Æ¥­¥¹¥È¤ËËä¤á¤³¤à -(¥Ó¥å¡¼¥¢¤¬ :// ¤ò URI ¤Î°ìÉô¤È²ò¼á¤Ç¤­¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£ -.PP -¥Ç¥¹¥¯¥È¥Ã¥×´Ä¶­¤Ç¤¢¤ë GNOME ¤È KDE ¤Ï¡¢ -¤½¤ì¤¾¤ì¼õÉÕ¤±¤ë URI ¤¬ (Æäˤ½¤ì¤¾¤ì¤Î¥Ø¥ë¥×¥Ö¥é¥¦¥¶¤Ë¤ª¤¤¤Æ) -°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ -man ¥Ú¡¼¥¸¤ò¥ê¥¹¥È¤¹¤ë¤Ë¤Ï¡¢ -GNOME ¤Ç¤Ï ¤òÍѤ¤¡¢ KDE ¤Ç¤Ï ¤òÍѤ¤¤ë¡£ -¤Þ¤¿ info ¥Ú¡¼¥¸¤ò¥ê¥¹¥È¤¹¤ë¤Ë¤Ï¡¢ -GNOME ¤Ç¤Ï ¤òÍѤ¤¡¢ KDE ¤Ç¤Ï ¤òÍѤ¤¤ë -(ËÜ man ¥Ú¡¼¥¸¤ÎÃø¼Ô¤Ï KDE ¤Î¥¢¥×¥í¡¼¥Á¤Î¤Û¤¦¤¬¹¥¤ß¤Ç¤¢¤ë¡£ -¤·¤«¤·¤è¤êɸ½àŪ¤Ê½ñ¼°¤ÎÊý¤¬¹¹¤ËÎɤ¤¤¬)¡£ -°ìÈÌ¤Ë KDE ¤ÏÀ¸À®¥Õ¥¡¥¤¥ë (generated file) ¤Î¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤È¤·¤Æ - ¤òÍѤ¤¤ë¡£ -.\"nakano: °ÕÌ£¥ï¥«¥é¥ó... KDE ¤Ë¾Ü¤·¤¤¿Í¡Á -KDE ¤Ï HTML ¤Îʸ½ñ¤ò - ·Ðͳ¤Ç¥¢¥¯¥»¥¹¤¹¤ë¤Î¤¬¹¥¤ß¤Ê¤è¤¦¤Ç¤¢¤ë¡£ -GNOME ¤Ïʸ½ñ¤ÎÊÝ´É¡¦¸¡º÷¤Ë ghelp ¥¹¥­¡¼¥à¤òÍѤ¤¤ëÊýË¡¤ò¼è¤Ã¤Æ¤¤¤ë¤è¤¦¤À¡£ -¤É¤Á¤é¤Î¥Ö¥é¥¦¥¶¤â¡¢¸½»þÅÀ¤Ç¤Ï file: ¤Ë¤è¤ë¥Ç¥£¥ì¥¯¥È¥ê»²¾È¤ò°·¤¨¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¥Ç¥£¥ì¥¯¥È¥êÁ´ÂΤò¥Ö¥é¥¦¥º²Äǽ¤Ê URI ¤Ç»²¾È¤¹¤ë¤³¤È¤¬Æñ¤·¤¤¡£ -Àè¤Ë½Ò¤Ù¤¿¤è¤¦¤Ë¡¢¤³¤ì¤éÆó¤Ä¤Î´Ä¶­¤Ç¤Ï info: ¥¹¥­¡¼¥à¤Î -°·¤¤¤¬°Û¤Ê¤Ã¤Æ¤¤¤ë (¤ª¤½¤é¤¯ºÇ¤â½ÅÍפʺ¹°Û¤Ç¤¢¤í¤¦)¡£ -GNOME ¤È KDE ¤¬¶¦ÄÌ URI ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¼ýṲ́¹¤ë¤³¤È¤¬Ë¾¤Þ¤·¤¤¡£ -¤³¤Î man ¥Ú¡¼¥¸¤¬¡¢¾­Íè¤Ï¤½¤Î¼ýṲ́·¤¿·ë²Ì¤òµ­½Ò¤Ç¤­¤ë¤³¤È¤ò˾¤à¡£ -¤³¤Îºî¶È¤Ø¤Î½õÎϤò´­µ¯¤·¤¿¤¤¡£ -.SS ¥»¥­¥å¥ê¥Æ¥£ -.PP -URI ¤½¤Î¤â¤Î¤Ï¥»¥­¥å¥ê¥Æ¥£¤Î¶¼°Ò¤ò°ú¤­µ¯¤³¤¹¤â¤Î¤Ç¤Ï¤Ê¤¤¡£ -¤¢¤ë»þÅÀ¤Ç¤Ï¥ê¥½¡¼¥¹¤Î¾ì½ê¤òÍ¿¤¨¤Æ¤¤¤¿ URL ¤¬¡¢ -¤º¤Ã¤È¤½¤¦¤Ç¤¢¤ê¤Ä¤Å¤±¤ë¤È¤¤¤¦ÊݾڤϰìÈ̤ˤϤʤ¤¡£ -¤Þ¤¿¤¢¤ë URL ¤¬¡¢¾­Íè¤Ë¤ÏÊ̤Υ꥽¡¼¥¹¤ò¼¨¤µ¤Ê¤¤¤È¤â¸Â¤é¤Ê¤¤¡£ -¤³¤Î¤è¤¦¤ÊÊݾڤϡ¢¤½¤Î̾Á°¶õ´Ö¤È¥ê¥½¡¼¥¹¤È¤ò´ÉÍý¤·¤Æ¤¤¤ë¸Ä¿Í¤Ë -µ¢¤¹¤ë¤â¤Î¤Ë²á¤®¤Ê¤¤¡£ -.PP -̵³²¤Ë¸«¤¨¤ëÁàºî (¥ê¥½¡¼¥¹¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥¨¥ó¥Æ¥£¥Æ¥£¤Î¼èÆÀ¤Ê¤É) -¤Ë¤è¤Ã¤Æ¡¢¼ÂºÝ¤Ë¤Ï¥ê¥â¡¼¥È¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ëÆ°ºî¤ò°ú¤­µ¯¤³¤¹¤è¤¦¤Ê -URL ¤òµ­½Ò¤¹¤ë¤³¤È¤â¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï²Äǽ¤Ç¤¢¤ë¡£ -´í¸±¤Ê URL ¤Îŵ·¿Åª¤Ê¤â¤Î¤Ï¡¢¤½¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥×¥í¥È¥³¥ë¤Ë -ͽÌ󤵤ì¤Æ¤¤¤ë¥Ý¡¼¥ÈÈÖ¹æ¤È¤Ï°Û¤Ê¤ë¥Ý¡¼¥È¤ò»ØÄꤷ¤Æ¤¤¤ë¤â¤Î¤Ç¤¢¤ë¡£ -URL ¤ÎÆâÍƤˤÏÌ¿Î᤬´Þ¤Þ¤ì¤Æ¤¤¤Æ¡¢ -¤½¤Î¥×¥í¥È¥³¥ë¤Ë¤·¤¿¤¬¤Ã¤Æ²ò¼á¤µ¤ì¤¿¤È¤­¡¢ -ͽ´ü¤µ¤ì¤Ê¤¤Æ°ºî¤ò°úµ¯¤³¤¹¤Î¤Ç¤¢¤ë¡£ -Îã¤ò¤¢¤²¤ë¤È¡¢ gopher ¤Î URL ¤Ë¤è¤Ã¤Æ¡¢°Õ¿Þ¤·¤Ê¤¤¥á¥Ã¥»¡¼¥¸¤ä -¤Ê¤ê¤¹¤Þ¤·¥á¥Ã¥»¡¼¥¸¤Ê¤É¤¬ SMTP ¥µ¡¼¥Ð·Ðͳ¤ÇÁ÷¿®¤µ¤ì¤ë¤è¤¦¤Ê¤³¤È¤¬¤¢¤Ã¤¿¡£ -.PP -¤½¤Î¥×¥í¥È¥³¥ë¤Î¥Ç¥Õ¥©¥ë¥È°Ê³°¤Î¥Ý¡¼¥ÈÈÖ¹æ¤ò»ØÄꤷ¤Æ¤¤¤ë -URL ¤òÍѤ¤¤ë¤È¤­¤Ë¤ÏÃí°Õ¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -Æäˤ½¤ÎÈֹ椬ͽÌó¶õ´Ö¤ÎÆâÉô¤Ë¤¢¤ë¾ì¹ç¤Ë¤Ï¡£ -.PP -URI ¤Ë¡¢¤½¤Î¥×¥í¥È¥³¥ë¤ËÂФ¹¤ë¥Ç¥ê¥ß¥¿¤¬¥¨¥¹¥±¡¼¥×¤µ¤ì¤¿¤«¤¿¤Á¤ÇÆþ¤Ã¤Æ¤¤¤ë -¾ì¹ç¤âÃí°Õ¤¬É¬ÍפǤ¢¤ë -(Î㤨¤Ð telnet ¥×¥í¥È¥³¥ë¤ËÂФ¹¤ë CR ʸ»ú¤ä LF ʸ»ú¤Ê¤É)¡£ -¤Ê¤¼¤Ê¤é¤³¤ì¤é¤ÏžÁ÷Á°¤Ë¥¨¥¹¥±¡¼¥×¤¬³°¤µ¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ -¤³¤ì¤Ï¥×¥í¥È¥³¥ë¤ËÈ¿¤·¤Æ¤ª¤ê¡¢Í½´ü¤·¤Ê¤¤¡¢¤ª¤½¤é¤¯¤Ï³²¤Ë¤Ê¤ë¤è¤¦¤Ê -¥ê¥â¡¼¥ÈÆ°ºî¤ò°úµ¯¤³¤¹·ë²Ì¤È¤Ê¤ê¤«¤Í¤Ê¤¤¡£ -.PP -ÈëÌ©¤Ë¤·¤Æ¤ª¤¯¤Ù¤­¥Ñ¥¹¥ï¡¼¥É¤ò´Þ¤ó¤À URI ¤ò»È¤¦¤Î¤¬ -¸­¤¯¤Ê¤¤¤Î¤ÏÌÀ¤é¤«¤Ç¤¢¤ë¡£Æäˡ¢¥Ñ¥¹¥ï¡¼¥É¤ò URI ¤Î -"userinfo" ¤ÎÉôʬ¤Ë»È¤¦¤Î¤ÏÀäÂФËÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -¤¿¤À¤·¤½¤Î "password" ¤Î¥Ñ¥é¥á¡¼¥¿¤ò°Õ¿ÞŪ¤Ë¸ø³«¤·¤¿¤¤¾ì¹ç¤ÏÊ̤Ǥ¢¤ë¤¬¡£ -.SH ¥Ð¥° -.PP -ʸ½ñ¤ÏÍÍ¡¹¤Ê¾ì½ê¤ËÃÖ¤«¤ì¤¦¤ë¡£¤·¤¿¤¬¤Ã¤Æ¸½»þÅÀ¤Ç¤Ï¡¢ -Ǥ°Õ¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç½ñ¤«¤ì¤¿°ìÈ̤Υª¥ó¥é¥¤¥óʸ½ñ¤ËÂФ¹¤ëÎɤ¤ URI ¥¹¥­¡¼¥à¤¬ -¸ºß¤·¤Ê¤¤¡£ - ·Á¼°¤Î»²¾È¤Ï»È¤¨¤Ê¤¤¡£¤Ê¤¼¤Ê¤é -¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤ä¥í¡¼¥«¥ë¤Ø¤Î¥¤¥ó¥¹¥È¡¼¥ë¤ÎºÝ¤Î¾ò·ï¤Ë¤è¤Ã¤Æ¡¢ -¥Õ¥¡¥¤¥ë¤Ï°Û¤Ê¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¤ë¤³¤È¤¬¤¢¤ë¤«¤é¤Ç¤¢¤ë -(/usr/doc ¤« /usr/local/doc ¤« /usr/share ¤«¤½¤Î¾¤Î¾ì½ê¤«¡¢¤Ê¤É¤Ê¤É)¡£ -¤Þ¤¿¡¢¥Ç¥£¥ì¥¯¥È¥ê ZZZ ¤ÏÄ̾ï¥Ð¡¼¥¸¥ç¥ó¤¬ÊѤï¤ë¤È°Û¤Ê¤Ã¤¿¤â¤Î¤Ë¤Ê¤ë -(¥Õ¥¡¥¤¥ë̾¤Î¥°¥í¥Ö¤Ë¤è¤Ã¤Æ¤¢¤ëÄøÅÙ¹îÉþ¤Ç¤­¤ë¤À¤í¤¦¤¬)¡£ -ºÇ¸å¤Ë¤â¤¦°ì¤Ä¡¢Ê¸½ñ¤ò¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤«¤é (¥í¡¼¥«¥ë¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë -¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥É¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯) ưŪ¤Ë¥í¡¼¥É¤¹¤ë¿Í¡¹¤Ï¡¢ -¤Ê¤«¤Ê¤« file: ¥¹¥­¡¼¥à¤ò»È¤Ã¤Æ¤¯¤ì¤Ê¤¤¡£ -¾­Íè¤Ë¤Ï¿·¤¿¤Ê URI ¥¹¥­¡¼¥à (Î㤨¤Ð "userdoc:" ¤Î¤è¤¦¤Ê) ¤¬Äɲ䵤졢 -¤è¤ê¾Ü¤·¤¤Ê¸½ñ¤Ø¤Î¥¯¥í¥¹¥ê¥Õ¥¡¥ì¥ó¥¹¤¬¡¢ -¤½¤Îʸ½ñ¤ÎÀµ³Î¤Ê¾ì½ê¤ò¥×¥í¥°¥é¥à¤¬ÃΤé¤Ê¤¯¤Æ¤â²Äǽ¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤¢¤ë¤¤¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àµ¬³Ê¤Î¾­Íè¤ÎÈÇ¤Ç -¥Õ¥¡¥¤¥ë¤Î¾ì½ê¤Î»ØÄê¤ò¤è¤ê¸·Ì©¤Ë¤·¤Æ¡¢ -file: ¥¹¥­¡¼¥à¤Ë¤è¤ëʸ½ñ¤Î°ÌÃÖ»ØÄ꤬²Äǽ¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -.PP -¥×¥í¥°¥é¥à¤ä¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¿¤¯¤Ç¤Ï¡¢ -URI ¤ò»È¤Ã¤¿¥ê¥ó¥¯¤ò¼è¤ê¹þ¤ó¤À¤ê¼ÂÁõ¤·¤¿¤ê¤¹¤ëÊýË¡¤¬¤Ê¤¤¡£ -.PP -¥×¥í¥°¥é¥à¤Î¿¤¯¤Ï¡¢¤³¤ì¤é¤Î URI ¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¤¹¤Ù¤Æ¤Ï°·¤¨¤Ê¤¤¡£ -¥æ¡¼¥¶¤Î´Ä¶­ (¥Æ¥­¥¹¥È¤«¥°¥é¥Õ¥£¥Ã¥¯¤«¡¢ -¥Ç¥¹¥¯¥È¥Ã¥×´Ä¶­¡¢¥í¡¼¥«¥ë¥æ¡¼¥¶¤Î¹¥¤ß¡¢ -¸½ºß¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¥Ä¡¼¥ë) ¤Ê¤É¤ò¼«Æ°Åª¤Ë¸¡ÃΤ·¤Æ¡¢ -Ǥ°Õ¤Î URI ¤ò¥í¡¼¥É¤·¡¢¤½¤Î URI ¤ËŬ¤·¤¿¥Ä¡¼¥ë¤òµ¯Æ°¤¹¤ë¤è¤¦¤Ê -ɸ½àŪ¤Ê»ÅÁȤߤ¬¤¢¤ë¤È¤¤¤¤¤Î¤À¤í¤¦¤¬¡£ -.\" .SH Ãø¼Ô -.\" ¤³¤Î man ¥Ú¡¼¥¸¤Ï David A. Wheeler (dwheeler@ida.dwheeler.com) ¤¬½ñ¤¤¤¿¡£ -.SH ´ØÏ¢¹àÌÜ +を用いる。 texinfo は @uref{\fIuri\fP} という書式を用いる。 +man と mdoc は、最近追加された UR マクロを使う。 +あるいは URI をそのままテキストに埋めこむ +(ビューアが :// を URI の一部と解釈できなければならない)。 +.PP +デスクトップ環境である GNOME と KDE は、 +それぞれ受付ける URI が (特にそれぞれのヘルプブラウザにおいて) +異なっている。 +man ページをリストするには、 +GNOME では を用い、 KDE では を用いる。 +また info ページをリストするには、 +GNOME では を用い、 KDE では を用いる +(本 man ページの著者は KDE のアプローチのほうが好みである。 +しかしより標準的な書式の方が更に良いが)。 +一般に KDE は生成ファイル (generated file) のプレフィックスとして + を用いる。 +.\"nakano: 意味ワカラン... KDE に詳しい人〜 +KDE は HTML の文書を + 経由でアクセスするのが好みなようである。 +GNOME は文書の保管・検索に ghelp スキームを用いる方法を取っているようだ。 +どちらのブラウザも、現時点では file: によるディレクトリ参照を扱えない。 +したがってディレクトリ全体をブラウズ可能な URI で参照することが難しい。 +先に述べたように、これら二つの環境では info: スキームの +扱いが異なっている (おそらく最も重要な差異であろう)。 +GNOME と KDE が共通 URI フォーマットに収斂することが望ましい。 +この man ページが、将来はその収斂した結果を記述できることを望む。 +この作業への助力を喚起したい。 +.SS セキュリティ +.PP +URI そのものはセキュリティの脅威を引き起こすものではない。 +ある時点ではリソースの場所を与えていた URL が、 +ずっとそうでありつづけるという保証は一般にはない。 +またある URL が、将来には別のリソースを示さないとも限らない。 +このような保証は、その名前空間とリソースとを管理している個人に +帰するものに過ぎない。 +.PP +無害に見える操作 (リソースに関連づけられたエンティティの取得など) +によって、実際にはリモートにダメージを与える動作を引き起こすような +URL を記述することも場合によっては可能である。 +危険な URL の典型的なものは、そのネットワークプロトコルに +予約されているポート番号とは異なるポートを指定しているものである。 +URL の内容には命令が含まれていて、 +そのプロトコルにしたがって解釈されたとき、 +予期されない動作を引起こすのである。 +例をあげると、 gopher の URL によって、意図しないメッセージや +なりすましメッセージなどが SMTP サーバ経由で送信されるようなことがあった。 +.PP +そのプロトコルのデフォルト以外のポート番号を指定している +URL を用いるときには注意すべきである。 +特にその番号が予約空間の内部にある場合には。 +.PP +URI に、そのプロトコルに対するデリミタがエスケープされたかたちで入っている +場合も注意が必要である +(例えば telnet プロトコルに対する CR 文字や LF 文字など)。 +なぜならこれらは転送前にエスケープが外されないからである。 +これはプロトコルに反しており、予期しない、おそらくは害になるような +リモート動作を引起こす結果となりかねない。 +.PP +秘密にしておくべきパスワードを含んだ URI を使うのが +賢くないのは明らかである。特に、パスワードを URI の +"userinfo" の部分に使うのは絶対に避けるべきである。 +ただしその "password" のパラメータを意図的に公開したい場合は別であるが。 +.SH バグ +.PP +文書は様々な場所に置かれうる。したがって現時点では、 +任意のフォーマットで書かれた一般のオンライン文書に対する良い URI スキームが +存在しない。 + 形式の参照は使えない。なぜなら +ディストリビューションやローカルへのインストールの際の条件によって、 +ファイルは異なるディレクトリに置かれることがあるからである +(/usr/doc か /usr/local/doc か /usr/share かその他の場所か、などなど)。 +また、ディレクトリ ZZZ は通常バージョンが変わると異なったものになる +(ファイル名のグロブによってある程度克服できるだろうが)。 +最後にもう一つ、文書をインターネットから (ローカルのファイルシステムに +ファイルをロードするのではなく) 動的にロードする人々は、 +なかなか file: スキームを使ってくれない。 +将来には新たな URI スキーム (例えば "userdoc:" のような) が追加され、 +より詳しい文書へのクロスリファレンスが、 +その文書の正確な場所をプログラムが知らなくても可能になるかもしれない。 +あるいは、ファイルシステム規格の将来の版で +ファイルの場所の指定をより厳密にして、 +file: スキームによる文書の位置指定が可能になるかもしれない。 +.PP +プログラムやファイルフォーマットの多くでは、 +URI を使ったリンクを取り込んだり実装したりする方法がない。 +.PP +プログラムの多くは、これらの URI フォーマットをすべては扱えない。 +ユーザの環境 (テキストかグラフィックか、 +デスクトップ環境、ローカルユーザの好み、 +現在実行されているツール) などを自動的に検知して、 +任意の URI をロードし、その URI に適したツールを起動するような +標準的な仕組みがあるといいのだろうが。 +.\" .SH 著者 +.\" この man ページは David A. Wheeler (dwheeler@ida.dwheeler.com) が書いた。 +.SH 関連項目 .BR lynx (1), .BR man2html (1), .BR mailaddr (7), diff --git a/release/man7/utf-8.7 b/release/man7/utf-8.7 index 35d9c646..4b90cbaf 100644 --- a/release/man7/utf-8.7 +++ b/release/man7/utf-8.7 @@ -37,98 +37,98 @@ .\" by Yuichi SATO .\" .TH UTF-8 7 2001-05-11 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -UTF-8 \- ASCII ¤È¸ß´¹À­¤Î¤¢¤ë¿¥Ð¥¤¥È Unicode ¤ÎÉä¹æ²½ -.SH ÀâÌÀ -.B "¥æ¥Ë¥³¡¼¥É (Unicode) 3.0" -ʸ»ú½¸¹ç¤Ï 16 ¥Ó¥Ã¥È¤Î¥³¡¼¥É¶õ´Ö¤òÀê¤á¤ë¡£ -ºÇ¤âñ½ã¤Ê Unicode ¤ÎÉä¹æ²½ÊýË¡ +.SH 名前 +UTF-8 \- ASCII と互換性のある多バイト Unicode の符号化 +.SH 説明 +.B "ユニコード (Unicode) 3.0" +文字集合は 16 ビットのコード空間を占める。 +最も単純な Unicode の符号化方法 .RB ( UCS-2 ) -¤Ç¤Ï¡¢Ê¸»ú¤Ï 16 ¥Ó¥Ã¥È¡¦¥ï¡¼¥É (16 ¥Ó¥Ã¥Èʸ»ú¤ÎÎó) ¤Ç¹½À®¤µ¤ì¤ë¡£ -¤³¤ÎÎó¤Ë¤Ï¡¢ -\(aq\\0\(aq ¤ä \(aq/\(aq ¤Î¤è¤¦¤Ê (¥Õ¥¡¥¤¥ë̾¤ä C ¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Î°ú¤­¿ô¤ÎÆâÉô¤Ç) -Æüì¤Ê°ÕÌ£¤ò»ý¤Ä 16 ¥Ó¥Ã¥Èʸ»ú¤¬´Þ¤Þ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ -¤µ¤é¤Ë¡¢¤Û¤È¤ó¤É¤Î UNIX ¥Ä¡¼¥ë¤Ï ASCII ¥Õ¥¡¥¤¥ë¤òÆþÎϤȤ·¤Æ´üÂÔ¤¹¤ë¤Î¤Ç¡¢ -ÂçÉý¤ÊÊѹ¹¤Ê¤·¤Ë¤Ï 16 ¥Ó¥Ã¥È¥ï¡¼¥É¤òʸ»ú¤È¤·¤ÆÆɤळ¤È¤¬¤Ç¤­¤Ê¤¤¡£ -¤³¤ì¤é¤ÎÍýͳ¤«¤é¡¢ +では、文字は 16 ビット・ワード (16 ビット文字の列) で構成される。 +この列には、 +\(aq\\0\(aq や \(aq/\(aq のような (ファイル名や C のライブラリ関数の引き数の内部で) +特殊な意味を持つ 16 ビット文字が含まれることがある。 +さらに、ほとんどの UNIX ツールは ASCII ファイルを入力として期待するので、 +大幅な変更なしには 16 ビットワードを文字として読むことができない。 +これらの理由から、 .B UCS-2 -¤Ï¥Õ¥¡¥¤¥ë̾¡¦¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¡¦´Ä¶­ÊÑ¿ô¤Ê¤É¤ËÍѤ¤¤ë¡¢³°ÉôÍѤΠ+はファイル名・テキストファイル・環境変数などに用いる、外部用の .B Unicode -Éä¹æ¤È¤·¤Æ¤ÏÉÔŬÀڤǤ¢¤ë¡£ -Unicode ¤Î¥¹¡¼¥Ñ¡¼¥»¥Ã¥È¤Ç¤¢¤ë +符号としては不適切である。 +Unicode のスーパーセットである .B "ISO 10646 Universal Character Set (UCS)" -¤Ï 31 ¥Ó¥Ã¥È¤Î¥³¡¼¥É¶õ´Ö¤òÀê¤á¤ë¤¬¡¢¤½¤ÎºÇ¤âñ½ã¤ÊÉä¹æ²½¤Ç¤¢¤ë +は 31 ビットのコード空間を占めるが、その最も単純な符号化である .B UCS-4 -¤Ë¤â (32 ¥Ó¥Ã¥È¡¦¥ï¡¼¥É¤ÎÎó¤È¤·¤Æ) Ʊ¤¸ÌäÂ꤬¤¢¤ë¡£ +にも (32 ビット・ワードの列として) 同じ問題がある。 .PP .B Unicode -¤È +と .B UCS -¤Î +の .B UTF-8 -Éä¹æ²½¤Ë¤Ï¤³¤ì¤é¤ÎÌäÂ꤬¤Ê¤¤¤Î¤Ç¡¢UNIX ·Á¼°¤Î OS ¾å¤Ç +符号化にはこれらの問題がないので、UNIX 形式の OS 上で .B Unicode -ʸ»ú½¸¹ç¤ò»ÈÍѤ¹¤ë¤¿¤á¤Î°ìÈÌŪ¤ÊÊýË¡¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ -.SS À­¼Á +文字集合を使用するための一般的な方法となっている。 +.SS 性質 .B UTF-8 -Éä¹æ²½¤Ï°Ê²¼¤Î¤è¤¦¤ÊÁÇÀ²¤·¤¤À­¼Á¤òÈ÷¤¨¤Æ¤¤¤ë: +符号化は以下のような素晴しい性質を備えている: .TP 0.2i * .B UCS -ʸ»ú¤Î¤¦¤Á 0x00000000 ¤«¤é 0x0000007f ¤Þ¤Ç (¸ÅŵŪ¤Ê +文字のうち 0x00000000 から 0x0000007f まで (古典的な .B US-ASCII -¤Îʸ»ú) ¤Ï (ASCII ¤È¤Î¸ß´¹À­¤Î¤¿¤á¤Ë) ñ½ã¤Ë 0x00 ¤«¤é 0x7f ¤Î¥Ð¥¤¥È¤Ë -Éä¹æ²½¤¹¤ë¡£¤³¤ì¤Ï 7 ¥Ó¥Ã¥È ASCII ʸ»ú¤Î¤ß¤ò´Þ¤à¥Õ¥¡¥¤¥ë¤äʸ»úÎó¤Ë -´Ø¤·¤Æ¤Ï¡¢ +の文字) は (ASCII との互換性のために) 単純に 0x00 から 0x7f のバイトに +符号化する。これは 7 ビット ASCII 文字のみを含むファイルや文字列に +関しては、 .B ASCII -¤È +と .B UTF-8 -¤ÇƱ¤¸Éä¹æ²½¤ò¹Ô¤Ê¤¦¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +で同じ符号化を行なうことを意味する。 .TP * -0x7f ¤è¤êÂ礭¤¤¤Î¤¹¤Ù¤Æ¤Î +0x7f より大きいのすべての .B UCS -ʸ»ú¤Ï¡¢ 0x80 ¤«¤é 0xfd ¤Þ¤Ç¤ÎÈϰϤΥХ¤¥È¤Î¤ß¤ò´Þ¤à -¿¥Ð¥¤¥Èʸ»úÎó¤ËÉä¹æ²½¤µ¤ì¤ë¡£ -¤·¤¿¤¬¤Ã¤Æʸ»úÎó¤Ë -ASCII ¥Ð¥¤¥È¤¬´Þ¤Þ¤ì¤ë¤³¤È¤¬¤Ê¤¯¡¢\(aq\\0\(aq ¤ä \(aq/\(aq ¤ÎÌäÂê¤ÏȯÀ¸¤·¤Ê¤¤¡£ +文字は、 0x80 から 0xfd までの範囲のバイトのみを含む +多バイト文字列に符号化される。 +したがって文字列に +ASCII バイトが含まれることがなく、\(aq\\0\(aq や \(aq/\(aq の問題は発生しない。 .TP * .B UCS-4 -ʸ»úÎó¤Ç¤Ï¼­½ñŪ¥½¡¼¥È¤Î½ç½ø¤¬Êݤ¿¤ì¤ë¡£ +文字列では辞書的ソートの順序が保たれる。 .TP * -2^31 ¥Ó¥Ã¥È¤Î¤¹¤Ù¤Æ¤Î UCS ¥³¡¼¥É ¤¬ +2^31 ビットのすべての UCS コード が .B UTF-8 -¤ò»ÈÍѤ·¤ÆÉä¹æ²½¤Ç¤­¤ë¡£ +を使用して符号化できる。 .TP * .B UTF-8 -Éä¹æ²½¤Ç¤Ï 0xfe ¤È 0xff ¤Î¥Ð¥¤¥È¤ÏÀäÂФ˻ÈÍѤ·¤Ê¤¤¡£ +符号化では 0xfe と 0xff のバイトは絶対に使用しない。 .TP * -ASCII ¤Ç¤Ê¤¤ +ASCII でない .B UCS -ʸ»ú¤Î¿¥Ð¥¤¥ÈÎó¤ÎºÇ½é¤Î¥Ð¥¤¥È¤Ï¡¢ -¾ï¤Ë 0xc0 ¤«¤é 0xfd ¤ÎÈϰϤÇɽ¸½¤µ¤ì¡¢ -¤½¤Îʸ»ú¤¬²¿¥Ð¥¤¥È¤Ç¹½À®¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤¹¡£ -¿¥Ð¥¤¥ÈÎó¤Î»Ä¤ê¤ÎÉôʬ¤Î¥Ð¥¤¥È¤Ï¡¢¤½¤ì¤¾¤ì 0x80 ¤«¤é 0xbf ¤ÎÈϰϤˤ¢¤ë¡£ -¤³¤ì¤Ë¤è¤êƱ´ü¤¬Íưפˤʤꡢ¥¹¥Æ¡¼¥È¥ì¥¹¤ÊÉä¹æ²½¤¬²Äǽ¤Ë¤Ê¤ê¡¢ -¥Ð¥¤¥È¤Îʶ¼º¤ËÂФ·¤Æ·ø¸Ç¤Ë¤Ê¤ë¡£ +文字の多バイト列の最初のバイトは、 +常に 0xc0 から 0xfd の範囲で表現され、 +その文字が何バイトで構成されているかを示す。 +多バイト列の残りの部分のバイトは、それぞれ 0x80 から 0xbf の範囲にある。 +これにより同期が容易になり、ステートレスな符号化が可能になり、 +バイトの紛失に対して堅固になる。 .TP * .B UTF-8 -¤ò»ÈÍѤ·¤¿ +を使用した .B UCS -ʸ»ú¤ÎÉä¹æ²½¤ÏºÇÂç 6 ¥Ð¥¤¥È¤ÎŤµ¤Ë¤Ê¤ë¡£ -¤·¤«¤·¡¢ +文字の符号化は最大 6 バイトの長さになる。 +しかし、 .B Unicode -µ¬³Ê¤Ç¤Ï 0x10ffff ¤è¤êÀè¤Îʸ»ú¤ò»ØÄꤷ¤Ê¤¤¤Î¤Ç¡¢Unicode ʸ»ú¤Ï +規格では 0x10ffff より先の文字を指定しないので、Unicode 文字は .B UTF-8 -¤Ç¤Ï 4 ¥Ð¥¤¥È¤Þ¤Ç¤Ë¤·¤«¤Ê¤é¤Ê¤¤¡£ -.SS Éä¹æ²½ -°Ê²¼¤Î¥Ð¥¤¥ÈÎó¤¬Ê¸»ú¤Îɽ¸½¤Ë»ÈÍѤµ¤ì¤ë¡£ -¤É¤Î¥Ð¥¤¥ÈÎó¤ò»ÈÍѤ¹¤ë¤«¤Ïʸ»ú¤Î UCS ¥³¡¼¥ÉÈÖ¹æ¤Ë°Í¸¤¹¤ë: +では 4 バイトまでにしかならない。 +.SS 符号化 +以下のバイト列が文字の表現に使用される。 +どのバイト列を使用するかは文字の UCS コード番号に依存する: .TP 0.4i 0x00000000 \- 0x0000007F: .RI 0 xxxxxxx @@ -164,133 +164,133 @@ ASCII .RI 10 xxxxxx .PP .I xxx -¥Ó¥Ã¥È¤ÎÉôʬ¤Ë¤Ï 2 ¿Ê¿ô¤Çɽ¤ï¤·¤¿Ê¸»ú¥³¡¼¥É¤Î¥Ó¥Ã¥ÈÉôʬ¤¬Âбþ¤¹¤ë¡£ -¤½¤Îʸ»ú¤òɽ¸½¤¹¤ë¤Î¤ËºÇ¤âû¤¤¥Ð¥¤¥ÈÎó¤Î¤ß¤¬»ÈÍѤǤ­¤ë¡£ +ビットの部分には 2 進数で表わした文字コードのビット部分が対応する。 +その文字を表現するのに最も短いバイト列のみが使用できる。 .PP -0xd800\(en0xdfff (UTF-16 ¥µ¥í¥²¡¼¥È) ¤ä -0xfffe, 0xffff (UCS ¤Î noncharacter) ¤È¤¤¤¦ +0xd800\(en0xdfff (UTF-16 サロゲート) や +0xfffe, 0xffff (UCS の noncharacter) という .B UCS -¥³¡¼¥É¤ÎÃͤϡ¢ +コードの値は、 .B UTF-8 -¤Ë½àµò¤·¤¿¥¹¥È¥ê¡¼¥à¤ËÆþ¤ì¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ -.SS Îã +に準拠したストリームに入れるべきではない。 +.SS 例 .B Unicode -ʸ»ú¤Î 0xa9 = 1010 1001 (¥³¥Ô¡¼¥é¥¤¥È¡¦¥Þ¡¼¥¯) ¤Ï UTF-8 ¤ÇÉä¹æ²½¤¹¤ë¤È +文字の 0xa9 = 1010 1001 (コピーライト・マーク) は UTF-8 で符号化すると .sp .RS 11000010 10101001 = 0xc2 0xa9 .RE .sp -¤Ë¤Ê¤ë¡£ +になる。 .PP -0x2260 = 0010 0010 0110 0000 (ÉÔÅù¹æ) ¤Ï +0x2260 = 0010 0010 0110 0000 (不等号) は .sp .RS 11100010 10001001 10100000 = 0xe2 0x89 0xa0 .RE .sp -¤Ë¤Ê¤ë¡£ -.SS ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤ª¤±¤ëÃí°Õ -¥æ¡¼¥¶¡¼¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î +になる。 +.SS アプリケーションにおける注意 +ユーザーはアプリケーションの .B UTF-8 -¥µ¥Ý¡¼¥È¤òÍ­¸ú¤Ë¤¹¤ë¤¿¤á¤Ë¡¢°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ +サポートを有効にするために、以下のようにして .B UTF-8 -¥í¥±¡¼¥ë¤òÁªÂò¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +ロケールを選択しなければならない。 .PP .RS export LANG=en_GB.UTF-8 .RE .PP -»ÈÍѤµ¤ì¤Æ¤¤¤ëʸ»úÉä¹æ²½¤òʬ¤«¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ -¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥½¥Õ¥È¥¦¥§¥¢¤Ï¡¢ -°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ¾ï¤Ë¥í¥±¡¼¥ë¤òÀßÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£ +使用されている文字符号化を分かっていなければならない +アプリケーションソフトウェアは、 +以下のようにして常にロケールを設定すべきである。 .PP .RS setlocale(LC_CTYPE, "") .RE .PP -¤Þ¤¿ +また .B UTF-8 -¥í¥±¡¼¥ë¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Æ¡¢¥×¥ì¡¼¥ó¥Æ¥­¥¹¥È¤Îɸ½àÆþ½ÐÎÏ¡¦Ã¼Ëö´ÖÄÌ¿®¡¦ -¥×¥ì¡¼¥ó¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¡¦¥Õ¥¡¥¤¥ë̾¡¦´Ä¶­ÊÑ¿ô¤¬ +ロケールが選択されていて、プレーンテキストの標準入出力・端末間通信・ +プレーンテキストファイルの内容・ファイル名・環境変数が .B UTF-8 -¤ÇÉä¹æ²½¤µ¤ì¤Æ¤¤¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤¿¤á¤Ë¡¢ -¥×¥í¥°¥é¥Þ¡¼¤Ï°Ê²¼¤Î¤è¤¦¤Ê¼°¤ò»î¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ +で符号化されているかをチェックするために、 +プログラマーは以下のような式を試すことができる。 .PP .RS strcmp(nl_langinfo(CODESET), "UTF-8") == 0 .RE .PP .B US-ASCII -¤ä +や .B ISO 8859 -¤È¤¤¤Ã¤¿¥·¥ó¥°¥ë¥Ð¥¤¥È¤ÎÉä¹æ²½¤¬½¬´·¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥×¥í¥°¥é¥Þ¡¼¤Ï¡¢ -¤³¤ì¤Þ¤Ç¤Î 2 ¤Ä¤Î²¾Ä꤬ +といったシングルバイトの符号化が習慣になっているプログラマーは、 +これまでの 2 つの仮定が .B UTF-8 -¥í¥±¡¼¥ë¤Ë¤ª¤¤¤Æ¤ÏºÇÁáÍ­¸ú¤Ç¤Ï¤Ê¤¯¤Ê¤Ã¤¿¤³¤È¤òÃΤäƤª¤¯¤Ù¤­¤À¡£ -1 ÈÖÌܤÎÊѹ¹ÅÀ¤Ï¡¢1 ¥Ð¥¤¥È¤¬É¬¤º¤·¤â 1 ¤Ä¤Îʸ»ú¤ËÂбþ¤·¤Ê¤¤¤È¤¤¤¦ÅÀ¤Ç¤¢¤ë¡£ -2 ÈÖÌܤÎÊѹ¹ÅÀ¤Ï¡¢ºÇ¶á¤ÎüËö¥¨¥ß¥å¥ì¡¼¥¿¤Ï +ロケールにおいては最早有効ではなくなったことを知っておくべきだ。 +1 番目の変更点は、1 バイトが必ずしも 1 つの文字に対応しないという点である。 +2 番目の変更点は、最近の端末エミュレータは .B UTF-8 -¥â¡¼¥É¤Ë¤ª¤¤¤ÆÃæ¹ñ¸ì¡¦ÆüËܸ졦´Ú¹ñÄ«Á¯¸ì¤Î -.B Á´³Ñʸ»ú -¤ä¥¹¥Ú¡¼¥¹¤¬Æþ¤é¤Ê¤¤ (nonspacing) -.B "¹çÀ®Ê¸»ú (combining characters)" -¤ËÂбþ¤·¤Æ¤¤¤ë¤Î¤Ç¡¢ +モードにおいて中国語・日本語・韓国朝鮮語の +.B 全角文字 +やスペースが入らない (nonspacing) +.B "合成文字 (combining characters)" +に対応しているので、 .B ASCII -¤Î¤È¤­¤Î¤è¤¦¤Ë 1 ʸ»ú½ÐÎϤ·¤¿¸å¤Ç -¥«¡¼¥½¥ë¤òɬ¤º¤·¤â 1 ¤Ä¤À¤±¿Ê¤á¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¤È¤¤¤¦ÅÀ¤Ç¤¢¤ë¡£ -º£Æü¤Ç¤Ï¡¢Ê¸»ú¤ä¥«¡¼¥½¥ë¤Î°ÌÃÖ¤ò¿ô¤¨¤ë¤Î¤Ë +のときのように 1 文字出力した後で +カーソルを必ずしも 1 つだけ進めるわけではないという点である。 +今日では、文字やカーソルの位置を数えるのに .BR mbsrtowcs (3) -¤ä +や .BR wcswidth (3) -¤È¤¤¤Ã¤¿¥é¥¤¥Ö¥é¥ê´Ø¿ô¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£ +といったライブラリ関数を使うべきである。 .PP -(VT100 üËö¤Ê¤É¤Ç»È¤ï¤ì¤ë) +(VT100 端末などで使われる) .B ISO 2022 -Éä¹æ²½·Á¼°¤«¤é +符号化形式から .B UTF-8 -¤ØÀÚÂؤ¨¤ë¸ø¼°¤Ê¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤Ï ESC % G ("\\x1b%G") ¤Ç¤¢¤ë¡£ -¤³¤ì¤ËÂбþ¤¹¤ë +へ切替える公式なエスケープシーケンスは ESC % G ("\\x1b%G") である。 +これに対応する .B UTF-8 -¤«¤é +から .B ISO 2022 -¤Ø¤Î¥ê¥¿¡¼¥ó¥·¡¼¥±¥ó¥¹¤Ï ESC % @ ("\\x1b%@") ¤Ç¤¢¤ë¡£ -(G0 ¥»¥Ã¥È¤È G1 ¥»¥Ã¥È¤òÀÚÂؤ¨¤ë¤È¤¤¤Ã¤¿) -¤½¤Î¾¤Î ISO 2022 ¥·¡¼¥±¥ó¥¹¤Ï¡¢UTF-8 ¥â¡¼¥É¤Ç¤Ï»È¤¨¤Ê¤¤¡£ +へのリターンシーケンスは ESC % @ ("\\x1b%@") である。 +(G0 セットと G1 セットを切替えるといった) +その他の ISO 2022 シーケンスは、UTF-8 モードでは使えない。 .PP -ͽÃΤǤ­¤ë¾­Íè¤Ç¤Ï¡¢POSIX ¥·¥¹¥Æ¥à¾å¤Î°ìÈÌŪ¤Êʸ»úÉä¹æ²½¤ÎÁ´¤Æ¤Î¥ì¥Ù¥ë¤Ç +予知できる将来では、POSIX システム上の一般的な文字符号化の全てのレベルで .B UTF-8 -¤¬ +が .B ASCII -¤È +と .B ISO 8859 -¤òÃÖ¤­´¹¤¨¡¢¥×¥ì¡¼¥ó¥Æ¥­¥¹¥È¤ò°·¤¦Èó¾ï¤ËÍ¥¤ì¤¿´Ä¶­¤¬ºî¤é¤ì¤ë¤³¤È¤¬´üÂԤǤ­¤ë¡£ -.SS ¥»¥­¥å¥ê¥Æ¥£ -.BR Unicode " ¤È " UCS -¤Îµ¬³Ê¤Ç¤Ï¡¢ +を置き換え、プレーンテキストを扱う非常に優れた環境が作られることが期待できる。 +.SS セキュリティ +.BR Unicode " と " UCS +の規格では、 .B UTF-8 -¤ÎÀ¸À®¼Ô¤Ï¤Ç¤­¤ë¤À¤±Ã»¤¤·Á¼°¤òÍѤ¤¤ë¤è¤¦Í׵ᤷ¤Æ¤¤¤ë¡£ -Î㤨¤Ð¡¢ÀèƬ¥Ð¥¤¥È¤¬ 0xc0 ¤Ç¤¢¤ë¤è¤¦¤Ê 2 ¥Ð¥¤¥ÈÎó¤ò -À¸À®¤¹¤ë¤Î¤Ï½àµò¤·¤Æ¤¤¤ë¤È¤Ï¤¤¤¨¤Ê¤¤¡£ +の生成者はできるだけ短い形式を用いるよう要求している。 +例えば、先頭バイトが 0xc0 であるような 2 バイト列を +生成するのは準拠しているとはいえない。 .B Unicode 3.1 -¤Ç¤Ï¡¢µ¬³Ê¤Ë½àµò¤¹¤ë¥×¥í¥°¥é¥à¤Ï -ºÇû¤Îɽ¸½·Á¼°¤Ç¤Ï¤Ê¤¤ÆþÎϤò¼õ¤±ÉÕ¤±¤Ê¤¤¡¢¤È¤¤¤¦Í×µá»ö¹à¤¬Äɲ䵤줿¡£ -¤³¤ì¤Ï¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÍýͳ¤Ë¤è¤ë¡£ -¥æ¡¼¥¶¡¼ÆþÎϤ¬¥»¥­¥å¥ê¥Æ¥£¾å¤Î´í¸±¤ËÂФ·¥Á¥§¥Ã¥¯¤µ¤ì¤ë¾ì¹ç¡¢ -¥×¥í¥°¥é¥à¤Ï +では、規格に準拠するプログラムは +最短の表現形式ではない入力を受け付けない、という要求事項が追加された。 +これはセキュリティ上の理由による。 +ユーザー入力がセキュリティ上の危険に対しチェックされる場合、 +プログラムは .B ASCII -ÈǤΠ"/../" ¤ä ";" ¤ä "NUL" ¤À¤±¤ò¥Á¥§¥Ã¥¯¤·¡¢ -ºÇû¤ËÉä¹æ²½¤µ¤ì¤Æ¤Ê¤¤¤³¤ì¤é¤Îʸ»ú¤ò¸«²á¤´¤·¤Æ¤·¤Þ¤¦¤«¤â¤·¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ -¤Ê¤¼¤Ê¤é¡¢ºÇû¤Ç¤Ï¤Ê¤¤ +版の "/../" や ";" や "NUL" だけをチェックし、 +最短に符号化されてないこれらの文字を見過ごしてしまうかもしれないからである。 +なぜなら、最短ではない .B UTF-8 -Éä¹æ²½¤Ç¤Ï¡¢¤³¤ì¤é¤Îʸ»ú¤òɽ¸½¤¹¤ë¤è¤¦¤ÊÍÍ¡¹¤Ê +符号化では、これらの文字を表現するような様々な .B ASCII -°Ê³°¤Î·Á¼°¤¬Â¸ºß¤¹¤ë¤¿¤á¤Ç¤¢¤ë¡£ -.SS ½àµò +以外の形式が存在するためである。 +.SS 準拠 ISO/IEC 10646-1:2000, Unicode 3.1, RFC\ 2279, Plan 9. -.\" .SH Ãø¼Ô +.\" .SH 著者 .\" Markus Kuhn -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR nl_langinfo (3), .BR setlocale (3), .BR charsets (7), diff --git a/release/man7/x25.7 b/release/man7/x25.7 index b0f7a58a..f1cfa7e3 100644 --- a/release/man7/x25.7 +++ b/release/man7/x25.7 @@ -9,42 +9,42 @@ .\" Translated Mon 6 Dec 1999 by NAKANO Takeo .\" .TH X25 7 2008-08-08 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -x25, AF_X25 \- ITU-T X.25 / ISO-8208 ¥×¥í¥È¥³¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ -.SH ½ñ¼° +.SH 名前 +x25, AF_X25 \- ITU-T X.25 / ISO-8208 プロトコルインターフェース +.SH 書式 .B #include .br .B #include .sp .B x25_socket = socket(AF_X25, SOCK_SEQPACKET, 0); -.SH ÀâÌÀ -X25 ¥½¥±¥Ã¥È¤Ï X.25 ¥Ñ¥±¥Ã¥ÈÁØ¥×¥í¥È¥³¥ë¤ËÂФ¹¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÄ󶡤¹¤ë¡£ -¤³¤ì¤Ë¤è¤ê¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¥Ñ¥Ö¥ê¥Ã¥¯¤Ê X.25 ¥Ç¡¼¥¿¥Í¥Ã¥È¥ï¡¼¥¯¤Ç -ÄÌ¿®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ X.25 ¤Ï +.SH 説明 +X25 ソケットは X.25 パケット層プロトコルに対するインターフェースを提供する。 +これにより、アプリケーションはパブリックな X.25 データネットワークで +通信することができるようになる。 X.25 は International Telecommunication Union's recommendation X.25 -(X.25 DTE-DCE mode) ¤Çɸ½à²½¤µ¤ì¤Æ¤¤¤ë¡£ -X25 ¥½¥±¥Ã¥È¤Ï¡¢Ãæ´ÖÁؤΤʤ¤ X.25 ¥Í¥Ã¥È¥ï¡¼¥¯ (X.25 DTE-DTE mode) -¤Ç¤ÎÄÌ¿®¤Ë¤âÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -DTE-DTE ¥â¡¼¥É¤Ï ISO-8208 ¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ +(X.25 DTE-DCE mode) で標準化されている。 +X25 ソケットは、中間層のない X.25 ネットワーク (X.25 DTE-DTE mode) +での通信にも用いることができる。 +DTE-DTE モードは ISO-8208 に記述されている。 .PP -¥á¥Ã¥»¡¼¥¸¶­³¦¤ÏÊݸ¤µ¤ì¤ë¡£¥½¥±¥Ã¥È¤«¤é¤Î +メッセージ境界は保存される。ソケットからの .BR read (2) -¤Ï¡¢È¿ÂЦ¤Î¥½¥±¥Ã¥È¤«¤é¤ÎÂбþ¤¹¤ë +は、反対側のソケットからの対応する .BR write (2) -¤ÈƱ¤¸Â礭¤µ¤Î¥Ç¡¼¥¿¤ò¼õ¤±¼è¤ê¡¢½ÐÎϤ¹¤ë¡£ -ɬÍפ¬¤¢¤ë¾ì¹ç¤Ï¡¢¥«¡¼¥Í¥ë¤¬Ä¹¤¤¥á¥Ã¥»¡¼¥¸¤Î -ʬ³ä (segmenting) ¤ÈºÆ¹½À® (reassembling) ¤ò¹Ô¤¦¡£ -¤³¤ì¤Ë¤Ï X.25 ¤Î M ¥Ó¥Ã¥È¤¬ÍѤ¤¤é¤ì¤ë¡£ -¥á¥Ã¥»¡¼¥¸¥µ¥¤¥º¤Ë¤Ï¡¢¥Ï¡¼¥É¥³¡¼¥Ç¥£¥ó¥°¤µ¤ì¤¿¾å¸Â¤Ï¤Ê¤¤¡£ -¤·¤«¤·¡¢°ì»þŪ¤Ë¥·¥¹¥Æ¥à¥ê¥½¡¼¥¹¤¬Â­¤ê¤Ê¤«¤Ã¤¿¤ê¡¢ -¾¤ÎÀ©Ìó (¥½¥±¥Ã¥È¥á¥â¥ê¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥ºÀ©¸Â¤Ê¤É) ¤¬ -¸ú¤¤¤Æ¤·¤Þ¤¦¤È¡¢Ä¹¤¤¥á¥Ã¥»¡¼¥¸¤ÎºÆ¹½À®¤Ë¤Ï¼ºÇÔ¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -¤³¤Î¾ì¹ç¡¢¤½¤Î X.25 Àܳ¤Ï¥ê¥»¥Ã¥È¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ -.SS ¥½¥±¥Ã¥È¥¢¥É¥ì¥¹ +と同じ大きさのデータを受け取り、出力する。 +必要がある場合は、カーネルが長いメッセージの +分割 (segmenting) と再構成 (reassembling) を行う。 +これには X.25 の M ビットが用いられる。 +メッセージサイズには、ハードコーディングされた上限はない。 +しかし、一時的にシステムリソースが足りなかったり、 +他の制約 (ソケットメモリバッファのサイズ制限など) が +効いてしまうと、長いメッセージの再構成には失敗するかもしれない。 +この場合、その X.25 接続はリセットされることになる。 +.SS ソケットアドレス .B AF_X25 -¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤Ï¡¢¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤òɽ¤¹¤¿¤á¤Ë +ソケットアドレスファミリーは、ネットワークアドレスを表すために .I struct sockaddr_x25 -¤òÍѤ¤¤ë¡£¤³¤ì¤Ï ITU-T recommendation X.121 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ +を用いる。これは ITU-T recommendation X.121 で定義されている。 .PP .in +4n .nf @@ -56,64 +56,64 @@ struct sockaddr_x25 { .in .PP .I sx25_addr -¤Ë¤Ï char ÇÛÎó +には char 配列 .I x25_addr[] -¤ò´Þ¤Þ¤ì¤ë¡£¤³¤ì¤Ï 0 ¤Ç½ªÃ¼¤¹¤ëʸ»úÎó¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£ +を含まれる。これは 0 で終端する文字列として解釈される。 .I sx25_addr.x25_addr[] -¤Ï 15 ¸Ä¤Þ¤Ç¤Î ASCII ʸ»ú¤ò´Þ¤à¤³¤È¤¬¤Ç¤­ (½ªÃ¼¤Î 0 ¤Ï´Þ¤Þ¤Ê¤¤)¡¢ -¤³¤ì¤¬ X.121 ¥¢¥É¥ì¥¹¤ò¤Ê¤¹¡£ -10 ¿Ê¤Î¿ôʸ»ú¡¢\(aq0\(aq ¤«¤é \(aq9\(aq ¤Þ¤Ç¤À¤±¤¬µö¤µ¤ì¤ë¡£ -.SS ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó -°Ê²¼¤Î X.25 ÆÃÍ­¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤Ï¡¢ +は 15 個までの ASCII 文字を含むことができ (終端の 0 は含まない)、 +これが X.121 アドレスをなす。 +10 進の数文字、\(aq0\(aq から \(aq9\(aq までだけが許される。 +.SS ソケットオプション +以下の X.25 特有のソケットオプションは、 .BR setsockopt (2) -¤ÇÀßÄê¤Ç¤­¡¢ +で設定でき、 .BR getsockopt (2) -¤Ç¼èÆÀ¤Ç¤­¤ë¡£¤³¤Î¤È¤­ +で取得できる。このとき .I level -°ú¤­¿ô¤Ë¤Ï +引き数には .B SOL_X25 -¤ò»ØÄꤹ¤ë¡£ +を指定する。 .TP .B X25_QBITINCL -X.25 ¤Î Q ¥Ó¥Ã¥È (Qualified ¥Ç¡¼¥¿¥Ó¥Ã¥È) ¤Ë¥æ¡¼¥¶¡¼¤¬¥¢¥¯¥»¥¹ -¤Ç¤­¤ë¤«¤É¤¦¤«¤ò¥³¥ó¥È¥í¡¼¥ë¤¹¤ë¡£À°¿ô¤Î°ú¿ô¤ò¼è¤ë¡£ -0 ¤Ë¥»¥Ã¥È¤¹¤ë¤È¡¢ Q ¥Ó¥Ã¥È¤Ïȯ¿®¥Ñ¥±¥Ã¥È¤Ë¤Ï·è¤·¤Æ¥»¥Ã¥È¤µ¤ì¤º¡¢ -¼õ¿®¥Ñ¥±¥Ã¥È¤Ç¤Ï̵»ë¤µ¤ì¤ë (¥Ç¥Õ¥©¥ë¥È)¡£ -1 ¤Ë¥»¥Ã¥È¤¹¤ë¤È¡¢¥½¥±¥Ã¥È¤«¤éÆɤࡢ¤¢¤ë¤¤¤Ï¥½¥±¥Ã¥È¤ËÁ÷¤ë -¥á¥Ã¥»¡¼¥¸¤½¤ì¤¾¤ì¤ËÀèƬ¥Ð¥¤¥È¤¬Á°ÃÖ¤µ¤ì¤ë¡£ -¥½¥±¥Ã¥È¤«¤éÆɤó¤À¥Ç¡¼¥¿¤Ç¤Ï¡¢ÀèƬ¥Ð¥¤¥È¤¬ 0 ¤À¤È¡¢ -¤³¤ÎÅþÃå¥Ç¡¼¥¿¥Ñ¥±¥Ã¥È¤ËÂбþ¤¹¤ë Q ¥Ó¥Ã¥È¤Ï¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¤³¤È¤Ë¤Ê¤ë¡£ -ÀèƬ¥Ð¥¤¥È¤¬ 1 ¤À¤È¡¢ÅþÃå¥Ç¡¼¥¿¥Ñ¥±¥Ã¥È¤Î -Q ¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤¿¤³¤È¤Ë¤Ê¤ë¡£ -¥½¥±¥Ã¥È¤Ë½ñ¤­¹þ¤à¥Ç¡¼¥¿¤ÎÀèƬ¥Ð¥¤¥È¤¬ 1 ¤À¤È¡¢ -¤½¤Îȯ¿®¥Ñ¥±¥Ã¥È¤Î Q ¥Ó¥Ã¥È¤ò¥»¥Ã¥È¤¹¤ë¡£ -0 ¤À¤È¡¢ Q ¥Ó¥Ã¥È¤ò¥»¥Ã¥È¤·¤Ê¤¤¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -AF_X25 ¥×¥í¥È¥³¥ë¥Õ¥¡¥ß¥ê¤Ï Linux 2.2 ¤Î¿·µ¡Ç½¤Ç¤¢¤ë¡£ -.SH ¥Ð¥° -X.25 PLP ¼ÂÁõ¤Ï +X.25 の Q ビット (Qualified データビット) にユーザーがアクセス +できるかどうかをコントロールする。整数の引数を取る。 +0 にセットすると、 Q ビットは発信パケットには決してセットされず、 +受信パケットでは無視される (デフォルト)。 +1 にセットすると、ソケットから読む、あるいはソケットに送る +メッセージそれぞれに先頭バイトが前置される。 +ソケットから読んだデータでは、先頭バイトが 0 だと、 +この到着データパケットに対応する Q ビットはセットされていなかったことになる。 +先頭バイトが 1 だと、到着データパケットの +Q ビットがセットされていたことになる。 +ソケットに書き込むデータの先頭バイトが 1 だと、 +その発信パケットの Q ビットをセットする。 +0 だと、 Q ビットをセットしない。 +.SH バージョン +AF_X25 プロトコルファミリは Linux 2.2 の新機能である。 +.SH バグ +X.25 PLP 実装は .B CONFIG_EXPERIMENTAL -¤Ê¤Î¤Ç¡¢¤¿¤¯¤µ¤ó¤¢¤ë¤À¤í¤¦¡£ +なので、たくさんあるだろう。 .PP -¤³¤Î man ¥Ú¡¼¥¸¤Ï´°À®¤·¤Æ¤¤¤Ê¤¤¡£ +この man ページは完成していない。 .PP -¤Þ¤À¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥Þ¡¼ÍѤΥإåÀ¥Õ¥¡¥¤¥ë¤¬¤Ê¤¤¡£ -¥«¡¼¥Í¥ë¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë +まだアプリケーションプログラマー用のヘッダファイルがない。 +カーネルのヘッダファイル .I -¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +をインクルードしなければならない。 .B CONFIG_EXPERIMENTAL -¤Ê¤Î¤Ç¡¢¾­Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤Ï -¥Ð¥¤¥Ê¥ê¸ß´¹À­¤¬¼º¤ï¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +なので、将来のバージョンのインターフェースでは +バイナリ互換性が失われるかもしれない。 .PP -X.25 N-Reset ¥¤¥Ù¥ó¥È¤Ï¡¢¤Þ¤À¥æ¡¼¥¶¡¼¥×¥í¥»¥¹¤ËÅÁÇŤ·¤Ê¤¤¡£ -¤·¤¿¤¬¤Ã¤Æ¥ê¥»¥Ã¥È¤¬µ¯¤³¤ë¤È¡¢¥Ç¡¼¥¿¤ÏÄÌÃÎ̵¤·¤Ë¼º¤ï¤ì¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +X.25 N-Reset イベントは、まだユーザープロセスに伝播しない。 +したがってリセットが起こると、データは通知無しに失われる。 +.SH 関連項目 .BR socket (2), .BR socket (7) .PP Jonathan Simon Naylor: -\(lqX.25 ¤ÎºÆʬÀϤȺƼÂÁõ\(rq +\(lqX.25 の再分析と再実装\(rq .RS -URL ¤Ï +URL は .I ftp://ftp.pspt.fi/pub/ham/linux/ax25/x25doc.tgz .RE diff --git a/release/man8/intro.8 b/release/man8/intro.8 index 05f212be..e79dd088 100644 --- a/release/man8/intro.8 +++ b/release/man8/intro.8 @@ -31,19 +31,19 @@ .\" Updated 2008-02-09, Akihiro MOTOKI , LDP v2.77 .\" .TH INTRO 8 2007-10-23 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -intro \- ´ÉÍý¥³¥Þ¥ó¥É¤ÈÆø¢¥³¥Þ¥ó¥É¤ÎÀâÌÀ -.SH ÀâÌÀ -¥Þ¥Ë¥å¥¢¥ë¤Î 8 ¾Ï¤Ï¡¢¥·¥¹¥Æ¥à´ÉÍýÍѤΥ³¥Þ¥ó¥É¡¢¥Ç¡¼¥â¥ó (daemon)¡¢ -¥Ï¡¼¥É¥¦¥§¥¢´ØÏ¢¤Î¥³¥Þ¥ó¥É¤È¤¤¤Ã¤¿¡¢¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼¤Ë¤è¤Ã¤Æ¤Î¤ß -»ÈÍѤµ¤ì¤ë/¤Ç¤­¤ë¥³¥Þ¥ó¥É¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤ë¡£ +.SH 名前 +intro \- 管理コマンドと特権コマンドの説明 +.SH 説明 +マニュアルの 8 章は、システム管理用のコマンド、デーモン (daemon)、 +ハードウェア関連のコマンドといった、スーパー・ユーザーによってのみ +使用される/できるコマンドについて説明している。 -1 ¾Ï¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¥³¥Þ¥ó¥É¤ÈƱÍÍ¡¢¤³¤Î¾Ï¤ÇÀâÌÀ¤µ¤ì¤ë¥³¥Þ¥ó¥É¤Ï -¥³¥Þ¥ó¥É¤ÎÀ®¸ù¡¦¼ºÇÔ¤ò¼¨¤¹½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ç½ªÎ»¤¹¤ë¡£ -¤µ¤é¤Ê¤ë¾ðÊó¤Ï +1 章で説明されているコマンドと同様、この章で説明されるコマンドは +コマンドの成功・失敗を示す終了ステータスで終了する。 +さらなる情報は .BR intro (1) -¤ò»²¾È¤Î¤³¤È¡£ -.SH È÷¹Í -.SS Ãø¼Ô¤ÈÃøºî¸¢ -Ãø¼Ô¤ÈÃøºî¸¢ (copyright) ¤Ë´Ø¤·¤Æ¤Ï³Æ¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤Î¥½¡¼¥¹¤Î¥Ø¥Ã¥À¡¼¤ò¸«¤ë¤³¤È¡£ -¤³¤ì¤é¤Ï¥Ú¡¼¥¸¤´¤È¤Ë°Û¤Ã¤Æ¤¤¤ë¡£ +を参照のこと。 +.SH 備考 +.SS 著者と著作権 +著者と著作権 (copyright) に関しては各マニュアル・ページのソースのヘッダーを見ること。 +これらはページごとに異っている。 diff --git a/release/man8/ld.so.8 b/release/man8/ld.so.8 index 52bef5dd..83021b4a 100644 --- a/release/man8/ld.so.8 +++ b/release/man8/ld.so.8 @@ -9,109 +9,109 @@ .\" Updated 2010-04-23, Akihiro MOTOKI, LDP v3.24 .\" .TH LD.SO 8 2009-01-12 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -ld.so, ld-linux.so* \- ưŪ¤Ê¥ê¥ó¥«/¥í¡¼¥À -.SH ½ñ¼° -ưŪ¥ê¥ó¥«¤Ï¡¢Æ°Åª¤Ë¥ê¥ó¥¯¤µ¤ì¤¿¥×¥í¥°¥é¥à¤ä¥é¥¤¥Ö¥é¥ê¤Î¼Â¹Ô¤Ë¤è¤Ã¤Æ -´ÖÀÜŪ¤Ë¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë -(ELF ¤Î¾ì¹ç¡¢Æ°Åª¥ê¥ó¥«¤Ë¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤òÅϤ¹¤³¤È¤Ï¤Ç¤­¤º¡¢ -¥×¥í¥°¥é¥à¤Î +.SH 名前 +ld.so, ld-linux.so* \- 動的なリンカ/ローダ +.SH 書式 +動的リンカは、動的にリンクされたプログラムやライブラリの実行によって +間接的に実行することができる +(ELF の場合、動的リンカにコマンドラインオプションを渡すことはできず、 +プログラムの .B .interp -¥»¥¯¥·¥ç¥ó¤ËÆþ¤Ã¤Æ¤¤¤ëưŪ¥ê¥ó¥«¤¬¼Â¹Ô¤µ¤ì¤ë)¡£ -¤Þ¤¿°Ê²¼¤Î¤è¤¦¤ËľÀܼ¹Ԥ¹¤ë¤³¤È¤â¤Ç¤­¤ë +セクションに入っている動的リンカが実行される)。 +また以下のように直接実行することもできる .P .I /lib/ld-linux.so.* [OPTIONS] [PROGRAM [ARGUMENTS]] -.SH ÀâÌÀ -¥×¥í¥°¥é¥à +.SH 説明 +プログラム .B ld.so -¤È +と .B ld-linux.so* -¤Ï¥×¥í¥°¥é¥à¤ËɬÍפʶ¦Í­¥é¥¤¥Ö¥é¥ê¤ò¸«¤Ä¤±¤Æ¥í¡¼¥É¤·¡¢ -¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤ò½àÈ÷¤·¤Æ¤«¤éµ¯Æ°¤µ¤»¤ë¡£ +はプログラムに必要な共有ライブラリを見つけてロードし、 +プログラムの実行を準備してから起動させる。 .LP -Linux ¤Î¥Ð¥¤¥Ê¥ê¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë¤Î»þ¤Ë +Linux のバイナリは、コンパイルの時に .BR ld (1) -¤ËÂФ·¤Æ +に対して .B \-static -¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¸Â¤ê¡¢Æ°Åª¥ê¥ó¥¯ (¼Â¹Ô»þ¥ê¥ó¥¯) ¤¬É¬ÍפȤʤ롣 +オプションが指定されていない限り、動的リンク (実行時リンク) が必要となる。 .LP -¥×¥í¥°¥é¥à +プログラム .B ld.so -¤Ï a.out ¥Ð¥¤¥Ê¥ê¤ò°·¤¦¡£ -¤³¤ì¤Ï¤º¤Ã¤ÈÀΤ˻Ȥï¤ì¤Æ¤¤¤¿¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤¢¤ë¡£ +は a.out バイナリを扱う。 +これはずっと昔に使われていたフォーマットである。 .B ld-linux.so* -(libc5 ¤Ç¤Ï \fI/lib/ld-linux.so.1\fP, -glibc2 ¤Ç¤Ï \fI/lib/ld-linux.so.2\fP) -¤Ï ELF ¥Ð¥¤¥Ê¥ê¤ò°·¤¦¡£ -¤³¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¿¤¯¤Î¿Í¤¬ºÇ¶á²¿Ç¯¤â»È¤Ã¤Æ¤¤¤ë¡£ -¤½¤ì°Ê³°¤ÎÅÀ¤Ç¤ÏξÊý¤È¤âƱ¤¸¤è¤¦¤ËÆ°ºî¤·¡¢ -Ʊ¤¸¥µ¥Ý¡¼¥È¥Õ¥¡¥¤¥ë¤È¥×¥í¥°¥é¥à +(libc5 では \fI/lib/ld-linux.so.1\fP, +glibc2 では \fI/lib/ld-linux.so.2\fP) +は ELF バイナリを扱う。 +このフォーマットは多くの人が最近何年も使っている。 +それ以外の点では両方とも同じように動作し、 +同じサポートファイルとプログラム .BR ldd (1), .BR ldconfig (8), .I /etc/ld.so.conf -¤ò»ÈÍѤ¹¤ë¡£ +を使用する。 .LP -¥×¥í¥°¥é¥à¤ÇɬÍפȤµ¤ì¤ë¶¦Í­¥é¥¤¥Ö¥é¥ê¤Ï¡¢ -°Ê²¼¤Î½ç½ø¤Ç¸¡º÷¤µ¤ì¤ë¡£ +プログラムで必要とされる共有ライブラリは、 +以下の順序で検索される。 .IP o 3 -(ELF ¤Î¤ß) -¥Ð¥¤¥Ê¥ê¤ÎưŪ¥»¥¯¥·¥ç¥ó°À­ DT_RPATH ¤¬Â¸ºß¤·¡¢ -DT_RUNPATH °À­¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¡¢ -DT_RPATH ¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ò»ÈÍѤ¹¤ë¡£ -DT_RPATH ¤Î»ÈÍѤϿ侩¤µ¤ì¤Ê¤¤¡£ +(ELF のみ) +バイナリの動的セクション属性 DT_RPATH が存在し、 +DT_RUNPATH 属性が存在しない場合は、 +DT_RPATH で指定されたディレクトリを使用する。 +DT_RPATH の使用は推奨されない。 .IP o -´Ä¶­ÊÑ¿ô +環境変数 .B LD_LIBRARY_PATH -¤òÍѤ¤¤ë¡£ -¤¿¤À¤·¼Â¹Ô¥Õ¥¡¥¤¥ë¤¬ set-user-ID/set-group-ID ¥Ð¥¤¥Ê¥ê¤Î¾ì¹ç¡¢ -¤³¤ì¤Ï̵»ë¤µ¤ì¤ë¡£ +を用いる。 +ただし実行ファイルが set-user-ID/set-group-ID バイナリの場合、 +これは無視される。 .IP o -(ELF ¤Î¤ß) -¥Ð¥¤¥Ê¥ê¤ÎưŪ¥»¥¯¥·¥ç¥ó°À­ DT_RUNPATH ¤¬Â¸ºß¤¹¤ì¤Ð¡¢ -DT_RUNPATH ¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ò»ÈÍѤ¹¤ë¡£ +(ELF のみ) +バイナリの動的セクション属性 DT_RUNPATH が存在すれば、 +DT_RUNPATH で指定されたディレクトリを使用する。 .IP o -¥­¥ã¥Ã¥·¥å¥Õ¥¡¥¤¥ë +キャッシュファイル .I /etc/ld.so.cache -¤òõ¤¹¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢ -(ld.so.conf ¤ÇÄɲûØÄꤵ¤ì¤¿¤â¤Î¤â´Þ¤á¤¿) ¥é¥¤¥Ö¥é¥ê¸¡º÷¥Ñ¥¹¤«¤é -¸«¤Ä¤«¤Ã¤¿¥é¥¤¥Ö¥é¥ê¥Õ¥¡¥¤¥ë¤Î¾ðÊó¤ò½¸¤á¤¿¤â¤Î¤Ç¤¢¤ë¡£ -¤¿¤À¤·¥Ð¥¤¥Ê¥ê¤¬¥ê¥ó¥«¥ª¥×¥·¥ç¥ó +を探す。このファイルは、 +(ld.so.conf で追加指定されたものも含めた) ライブラリ検索パスから +見つかったライブラリファイルの情報を集めたものである。 +ただしバイナリがリンカオプション .B \-z nodeflib -¤Ç¥ê¥ó¥¯¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥é¥¤¥Ö¥é¥ê¥Ñ¥¹¤Ë¤¢¤ë -¥é¥¤¥Ö¥é¥ê¤Ï¥¹¥­¥Ã¥×¤µ¤ì¤ë¡£ +でリンクされている場合は、デフォルトのライブラリパスにある +ライブラリはスキップされる。 .IP o -¥Ç¥Õ¥©¥ë¥È¥Ñ¥¹¤Ç¤¢¤ë -.IR /lib ¡¢ -¼¡¤¤¤Ç +デフォルトパスである +.IR /lib 、 +次いで .I /usr/lib -¤òÍѤ¤¤ë¡£ -¥Ð¥¤¥Ê¥ê¤¬¥ê¥ó¥«¥ª¥×¥·¥ç¥ó +を用いる。 +バイナリがリンカオプション .B \-z nodeflib -¤Ç¥ê¥ó¥¯¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¤³¤Î¥¹¥Æ¥Ã¥×¤Ï¥¹¥­¥Ã¥×¤µ¤ì¤ë¡£ -.SS $ORIGIN ¤È rpath +でリンクされている場合、このステップはスキップされる。 +.SS $ORIGIN と rpath .PP .B ld.so -¤Ç¤Ï¡¢rpath »ØÄê (DT_RPATH ¤ä DT_RUNPATH) Ãæ¤Ë +では、rpath 指定 (DT_RPATH や DT_RUNPATH) 中に .I $ORIGIN -¤È¤¤¤¦Ê¸»úÎó +という文字列 .RI ( ${ORIGIN} -¤âÅù²Á) ¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ +も等価) を使うことができる。 .I $ORIGIN -¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¼Â¹Ô¥Õ¥¡¥¤¥ë¤¬Æþ¤Ã¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤òɽ¤¹¡£ -¤³¤ì¤ò»È¤Ã¤Æ +はアプリケーションの実行ファイルが入っているディレクトリを表す。 +これを使って .I somedir/app -¤ËÃÖ¤«¤ì¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò +に置かれたアプリケーションを .I gcc -Wl,-rpath,'$ORIGIN/../lib' -¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¡¢ +でコンパイルすると、 .I somedir -¤¬¥Ç¥£¥ì¥¯¥È¥ê³¬ÁؤΤɤ³¤Ë¤¢¤Ã¤Æ¤â¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï +がディレクトリ階層のどこにあっても、アプリケーションは .I somedir/lib -¤Ë¤¢¤ëÂбþ¤¹¤ë¶¦Í­¥é¥¤¥Ö¥é¥ê¤ò¸«¤Ä¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -¤³¤Îµ¡Ç½¤ò»È¤¦¤È¡¢ -ÆÃÊ̤ʥǥ£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¯Ç¤°Õ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤â -"¤ä¤ä¤³¤·¤¤ÀßÄê¤Ê¤·¤Ç" -Æȼ«¤Î¶¦Í­¥é¥¤¥Ö¥é¥ê¤ò»È¤¨¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +にある対応する共有ライブラリを見つけることができる。 +この機能を使うと、 +特別なディレクトリではなく任意のディレクトリにインストールしても +"ややこしい設定なしで" +独自の共有ライブラリを使えるアプリケーションを作成することができる。 .\" ld.so also understands $LIB, with the same meaning as $ORIGIN/lib, .\" it appears. .\" @@ -125,198 +125,198 @@ DT_RUNPATH .\" .\" ld.so lets names be abbreviated, so $O will work for $ORIGIN; .\" Don't do this!! -.SH ¥ª¥×¥·¥ç¥ó +.SH オプション .TP .B \-\-list -Á´¤Æ¤Î°Í¸´Ø·¸¤È¤½¤Î²ò·èË¡¤ò¥ê¥¹¥È¤¹¤ë¡£ +全ての依存関係とその解決法をリストする。 .TP .B \-\-verify -¥×¥í¥°¥é¥à¤¬Æ°Åª¤Ë¥ê¥ó¥¯¤µ¤ì¤Æ¤¤¤ë¤«¤È¡¢ -ưŪ¥ê¥ó¥«¤¬¤½¤Î¥×¥í¥°¥é¥à¤ò°·¤¨¤ë¤«¤ò¸¡¾Ú¤¹¤ë¡£ +プログラムが動的にリンクされているかと、 +動的リンカがそのプログラムを扱えるかを検証する。 .TP .B \-\-library\-path PATH .B LD_LIBRARY_PATH -´Ä¶­ÊÑ¿ô¤ÎÀßÄê¤ò¾å½ñ¤­¤¹¤ë (²¼µ­»²¾È)¡£ +環境変数の設定を上書きする (下記参照)。 .TP .B \-\-inhibit\-rpath LIST -LIST ¤Ë¤¢¤ë¥ª¥Ö¥¸¥§¥¯¥È̾¤Î RPATH ¤È RUNPATH ¤Î¾ðÊó¤ò̵»ë¤¹¤ë¡£ +LIST にあるオブジェクト名の RPATH と RUNPATH の情報を無視する。 .B ld.so -¤¬ set-user-ID ¤« set-group-ID ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵»ë¤µ¤ì¤ë¡£ -.SH ´Ä¶­ÊÑ¿ô -4 ¤Ä¤Î½ÅÍפʴĶ­ÊÑ¿ô¤¬¤¢¤ë¡£ +が set-user-ID か set-group-ID されている場合、 +このオプションは無視される。 +.SH 環境変数 +4 つの重要な環境変数がある。 .TP .B LD_BIND_NOW -(libc5; glibc 2.1.1 °Ê¹ß) -¶õʸ»úÎó¤Ç¤Ê¤¤¾ì¹ç¡¢ -ưŪ¥ê¥ó¥«¤Ï¥×¥í¥°¥é¥à¤Î³«»Ï»þ¤ËÁ´¤Æ¤Î¥·¥ó¥Ü¥ë¤ò²ò·è¤¹¤ë¡£ -¶õʸ»úÎó¤Î¾ì¹ç¡¢²ò·è¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤´Ø¿ô¸Æ¤Ó½Ð¤·¤¬ -ºÇ½é¤Ë»²¾È¤µ¤ì¤¿»þÅÀ¤Ç²ò·è¤¹¤ë¡£ -¥Ç¥Ð¥Ã¥¬¤ò»È¤Ã¤Æ¤¤¤ë¤È¤­¤ËÌòΩ¤Ä¡£ +(libc5; glibc 2.1.1 以降) +空文字列でない場合、 +動的リンカはプログラムの開始時に全てのシンボルを解決する。 +空文字列の場合、解決しなければならない関数呼び出しが +最初に参照された時点で解決する。 +デバッガを使っているときに役立つ。 .TP .B LD_LIBRARY_PATH -¥³¥í¥ó¶èÀÚ¤ê¤Î¥Ç¥£¥ì¥¯¥È¥ê¥ê¥¹¥È¡£ -¼Â¹Ô»þ¤Ë ELF ¥é¥¤¥Ö¥é¥ê¤ò¸¡º÷¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ò»ØÄꤹ¤ë¡£ +コロン区切りのディレクトリリスト。 +実行時に ELF ライブラリを検索するディレクトリを指定する。 .B PATH -´Ä¶­ÊÑ¿ô¤ÈƱ¤¸¤è¤¦¤Ë»ØÄꤹ¤ë¡£ +環境変数と同じように指定する。 .TP .B LD_PRELOAD -¥¹¥Ú¡¼¥¹¶èÀÚ¤ê¤Ç ELF ¶¦Í­¥é¥¤¥Ö¥é¥ê¤ò»ØÄꤹ¤ë¡£ -¤³¤ì¤Ï¥æ¡¼¥¶¡¼¤¬»ØÄê¤Ç¤­¡¢¤¹¤Ù¤Æ¤Î¥é¥¤¥Ö¥é¥ê¤ËÀèΩ¤Ã¤Æ¥í¡¼¥É¤µ¤ì¤ë¡£ -¾¤Î¶¦Í­¥é¥¤¥Ö¥é¥ê¤Ë¤¢¤ë´Ø¿ô¤òÁªÂòŪ¤ËÃÖ¤­´¹¤¨¤ë¤¿¤á¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -set-user-ID/set-group-ID ¤µ¤ì¤¿ ELF ¥Ð¥¤¥Ê¥ê¤ËÂФ·¤Æ¡¢ -ɸ½àŪ¤Ê¸¡º÷¥Ñ¥¹¤Ë¤¢¤ë¥é¥¤¥Ö¥é¥ê¤Î¤¦¤Á set-user-ID ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤Ï¥í¡¼¥É¤·¤Ê¤¤¡£ +スペース区切りで ELF 共有ライブラリを指定する。 +これはユーザーが指定でき、すべてのライブラリに先立ってロードされる。 +他の共有ライブラリにある関数を選択的に置き換えるために用いることができる。 +set-user-ID/set-group-ID された ELF バイナリに対して、 +標準的な検索パスにあるライブラリのうち set-user-ID されているものはロードしない。 .TP .B LD_TRACE_LOADED_OBJECTS -(ELF ¤Î¤ß) -¶õʸ»úÎó¤Ç¤Ê¤¤¾ì¹ç¡¢ -¥×¥í¥°¥é¥à¤òÉáÄ̤˼¹Ԥ¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ +(ELF のみ) +空文字列でない場合、 +プログラムを普通に実行するのではなく、 .BR ldd (1) -¤ò¼Â¹Ô¤·¤¿¤È¤­¤Î¤è¤¦¤ËưŪ¥é¥¤¥Ö¥é¥ê¤Î°Í¸´Ø·¸¤ò¥ê¥¹¥Èɽ¼¨¤µ¤»¤ë¡£ +を実行したときのように動的ライブラリの依存関係をリスト表示させる。 .LP -¤½¤·¤Æ¡¢¤½¤ì¤Û¤ÉÃΤé¤ì¤Æ¤¤¤Ê¤¤´Ä¶­ÊÑ¿ô¤â¤¢¤ë¡£ -¿¤¯¤ÏÇѤì¤Æ¤·¤Þ¤Ã¤¿¤â¤Î¤«ÆâÉô¤Ç¤Î¤ß»ÈÍѤµ¤ì¤ë´Ä¶­ÊÑ¿ô¤Ç¤¢¤ë¡£ +そして、それほど知られていない環境変数もある。 +多くは廃れてしまったものか内部でのみ使用される環境変数である。 .TP .B LD_AOUT_LIBRARY_PATH (libc5) -a.out ¥Ð¥¤¥Ê¥ê¤Ë¤Î¤ß»È¤ï¤ì¤ë´Ä¶­ÊÑ¿ô¤Ç¡¢ +a.out バイナリにのみ使われる環境変数で、 .B LD_LIBRARY_PATH -¤ÈƱ¤¸Ìò³ä¤ò¤¹¤ë¡£ -ld\-linux.so.1 ¤Î¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï +と同じ役割をする。 +ld\-linux.so.1 の古いバージョンでは .B LD_ELF_LIBRARY_PATH -¤â¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤¿¡£ +もサポートしていた。 .TP .B LD_AOUT_PRELOAD (libc5) -a.out ¥Ð¥¤¥Ê¥ê¤Ë¤Î¤ß»È¤ï¤ì¤ë´Ä¶­ÊÑ¿ô¤Ç¡¢ +a.out バイナリにのみ使われる環境変数で、 .B LD_PRELOAD -¤ÈƱ¤¸Ìò³ä¤ò¤¹¤ë¡£ -ld\-linux.so.1 ¤Î¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï +と同じ役割をする。 +ld\-linux.so.1 の古いバージョンでは .B LD_ELF_PRELOAD -¤â¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤¿¡£ +もサポートしていた。 .TP .B LD_AUDIT -(glibc 2.4 °Ê¹ß) -¾¤Î¥ª¥Ö¥¸¥§¥¯¥È¤è¤ê¤âÁ°¤Ë¡¢Ê̤Υê¥ó¥«Ì¾Á°¶õ´Ö (¤½¤Î¥×¥í¥»¥¹¤Ç¹Ô¤ï¤ì¤ë -Ä̾ï¤Î¥·¥ó¥Ü¥ë·ë¹ç (symbol bindigns) ¤Ë¤Ï´ØÍ¿¤·¤Ê¤¤Ì¾Á°¶õ´Ö) ¤Ç -¥í¡¼¥É¤µ¤ì¤ë¡¢¥æ¡¼¥¶»ØÄê¤Î ELF ¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Î¥³¥í¥ó¶èÀÚ¤ê¤Î¥ê¥¹¥È¡£ -¤³¤ì¤é¤Î¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤Æ¡¢Æ°Åª¥ê¥ó¥«¤ÎÆ°ºî¤ò´Æºº¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -set-user-ID/set-group-ID ¤µ¤ì¤¿¥Ð¥¤¥Ê¥ê¤Ç¤Ï¡¢ +(glibc 2.4 以降) +他のオブジェクトよりも前に、別のリンカ名前空間 (そのプロセスで行われる +通常のシンボル結合 (symbol bindigns) には関与しない名前空間) で +ロードされる、ユーザ指定の ELF 共有オブジェクトのコロン区切りのリスト。 +これらのライブラリを使って、動的リンカの動作を監査することができる。 +set-user-ID/set-group-ID されたバイナリでは、 .B LD_AUDIT -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 -ưŪ¥ê¥ó¥«¤Ï¡¢¤¤¤ï¤æ¤ë´Æºº¥Á¥§¥Ã¥¯¥Ý¥¤¥ó¥È (auditing checkpoints) -¤Ë¤ª¤¤¤Æ¡¢´Æºº (audit) ¥é¥¤¥Ö¥é¥ê¤ÎŬÀڤʴؿô¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¡¢ -´Æºº¥é¥¤¥Ö¥é¥ê¤Ø¤ÎÄÌÃΤò¹Ô¤¦¡£´Æºº¥Á¥§¥Ã¥¯¥Ý¥¤¥ó¥È¤ÎÎã¤È¤·¤Æ¤Ï¡¢ -¿·¤¿¤Ê¥é¥¤¥Ö¥é¥ê¤Î¥í¡¼¥É¡¢¥·¥ó¥Ü¥ë¤Î²ò·è¡¢Ê̤ζ¦Í­¥ª¥Ö¥¸¥§¥¯¥È -¤«¤é¤Î¥·¥ó¥Ü¥ë¤Î¸Æ¤Ó½Ð¤·¡¢¤Ê¤É¤¬¤¢¤ë¡£ -¾ÜºÙ¤Ï +動的リンカは、いわゆる監査チェックポイント (auditing checkpoints) +において、監査 (audit) ライブラリの適切な関数を呼び出すことで、 +監査ライブラリへの通知を行う。監査チェックポイントの例としては、 +新たなライブラリのロード、シンボルの解決、別の共有オブジェクト +からのシンボルの呼び出し、などがある。 +詳細は .BR rtld-audit (7) -¤ò»²¾È¤·¤Æ¤Û¤·¤¤¡£ -audit ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¡¢Solaris ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¤â¤Î¤È -ÂçÉôʬ¤Ï¸ß´¹À­¤¬¤¢¤ë¡£Solaris ¤Î audit ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +を参照してほしい。 +audit インタフェースは、Solaris で提供されているものと +大部分は互換性がある。Solaris の audit インタフェースについては、 .I "Linker and Libraries Guide" -¤Î +の .I "Runtime Linker Auditing Interface" -¤Î¾Ï¤ËÀâÌÀ¤¬¤¢¤ë¡£ +の章に説明がある。 .TP .B LD_BIND_NOT -(glibc 2.1.95 °Ê¹ß) -¥·¥ó¥Ü¥ë¤ò²ò·è¤·¤¿¸å¡¢GOT (global offset table) ¤È -PLT (procedure linkage table) ¤ò¹¹¿·¤·¤Ê¤¤¡£ +(glibc 2.1.95 以降) +シンボルを解決した後、GOT (global offset table) と +PLT (procedure linkage table) を更新しない。 .TP .B LD_DEBUG -(glibc 2.1 °Ê¹ß) -ưŪ¥ê¥ó¥«¤Î¾ÜºÙ¤Ê¥Ç¥Ð¥Ã¥°¾ðÊó¤ò½ÐÎϤ¹¤ë¡£ +(glibc 2.1 以降) +動的リンカの詳細なデバッグ情報を出力する。 .B all -¤ËÀßÄꤷ¤¿¾ì¹ç¡¢Á´¤Æ¤ÎưŪ¥ê¥ó¥«¤¬»ý¤Ä¥Ç¥Ð¥Ã¥°¾ðÊó¤òɽ¼¨¤¹¤ë¡£ +に設定した場合、全ての動的リンカが持つデバッグ情報を表示する。 .B help -¤ËÀßÄꤷ¤¿¾ì¹ç¡¢¤³¤Î´Ä¶­ÊÑ¿ô¤Ç»ØÄꤵ¤ì¤ë¥«¥Æ¥´¥ê¤Î¥Ø¥ë¥×¾ðÊó¤òɽ¼¨¤¹¤ë¡£ -glibc 2.3.4 °Ê¹ß¡¢ -set-user-ID/set-group-ID ¤µ¤ì¤¿¥Ð¥¤¥Ê¥ê¤Ç¤Ï +に設定した場合、この環境変数で指定されるカテゴリのヘルプ情報を表示する。 +glibc 2.3.4 以降、 +set-user-ID/set-group-ID されたバイナリでは .B LD_DEBUG -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .TP .B LD_DEBUG_OUTPUT -(glibc 2.1 °Ê¹ß) +(glibc 2.1 以降) .B LD_DEBUG -¤Î½ÐÎϤò½ñ¤­¹þ¤à¥Õ¥¡¥¤¥ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ïɸ½à½ÐÎϤǤ¢¤ë¡£ -set-user-ID/set-group-ID ¤µ¤ì¤¿¥Ð¥¤¥Ê¥ê¤Ç¤Ï¡¢ +の出力を書き込むファイル。 +デフォルトは標準出力である。 +set-user-ID/set-group-ID されたバイナリでは、 .B LD_DEBUG_OUTPUT -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .TP .B LD_DYNAMIC_WEAK -(glibc 2.1.19 °Ê¹ß) -¾å½ñ¤­¤µ¤ì¤ë¼å¤¤¥·¥ó¥Ü¥ë (ÀΤΠglibc ¤ÎµóÆ°¤òµÕ¤Ë¤¹¤ë)¡£ -¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÍýͳ¤«¤é¡¢glibc 2.3.4 °Ê¹ß¡¢ -set-user-ID/set-group-ID ¤µ¤ì¤¿¥Ð¥¤¥Ê¥ê¤Ç¤Ï +(glibc 2.1.19 以降) +上書きされる弱いシンボル (昔の glibc の挙動を逆にする)。 +セキュリティ上の理由から、glibc 2.3.4 以降、 +set-user-ID/set-group-ID されたバイナリでは .B LD_DYNAMIC_WEAK -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .TP .B LD_HWCAP_MASK -(glibc 2.1 °Ê¹ß) -¥Ï¡¼¥É¥¦¥§¥¢µ¡Ç½¤Î¥Þ¥¹¥¯¡£ +(glibc 2.1 以降) +ハードウェア機能のマスク。 .TP .B LD_KEEPDIR -(a.out ¤Î¤ß)(libc5) -¥í¡¼¥É¤¹¤ë a.out ¥é¥¤¥Ö¥é¥ê¤Î̾Á°¤Ë¤ª¤¤¤Æ¡¢¥Ç¥£¥ì¥¯¥È¥ê¤ò̵»ë¤·¤Ê¤¤¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÍѤ¤¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ +(a.out のみ)(libc5) +ロードする a.out ライブラリの名前において、ディレクトリを無視しない。 +このオプションは用いるべきではない。 .TP .B LD_NOWARN -(a.out ¤Î¤ß)(libc5) -a.out ¥é¥¤¥Ö¥é¥ê¤Ë¤ª¤±¤ë¥Þ¥¤¥Ê¡¼¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤ÎÈó¸ß´¹¤Ë -ÂФ¹¤ë·Ù¹ð¥á¥Ã¥»¡¼¥¸¤òÍÞÀ©¤¹¤ë¡£ +(a.out のみ)(libc5) +a.out ライブラリにおけるマイナーバージョン番号の非互換に +対する警告メッセージを抑制する。 .TP .B LD_ORIGIN_PATH -(glibc 2.1 °Ê¹ß) -¥Ð¥¤¥Ê¥ê¤Ø¤Î¥Ñ¥¹ (set-user-ID ¤µ¤ì¤Æ¤¤¤Ê¤¤¥×¥í¥°¥é¥à¤Ë¤Ä¤¤¤Æ)¡£ -¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÍýͳ¤«¤é¡¢glibc 2.3.4 °Ê¹ß¡¢ -set-user-ID/set-group-ID ¤µ¤ì¤¿¥Ð¥¤¥Ê¥ê¤Ç¤Ï +(glibc 2.1 以降) +バイナリへのパス (set-user-ID されていないプログラムについて)。 +セキュリティ上の理由から、glibc 2.3.4 以降、 +set-user-ID/set-group-ID されたバイナリでは .B LD_ORIGIN_PATH -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\" Only used if $ORIGIN can't be determined by normal means .\" (from the origin path saved at load time, or from /proc/self/exe)? .TP .B LD_POINTER_GUARD -(glibc 2.4 °Ê¹ß) -0 ¤ËÀßÄꤹ¤ë¤È¡¢¥Ý¥¤¥ó¥¿Êݸî (pointer guarding) ¤¬Ìµ¸ú¤Ë¤Ê¤ë¡£ -¤½¤ì°Ê³°¤ÎÃͤξì¹ç¤Ï¥Ý¥¤¥ó¥¿Êݸͭ¸ú¤Ë¤Ê¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤Ï¥Ý¥¤¥ó¥¿ÊݸîÍ­¸ú¤Ç¤¢¤ë¡£ -¥Ý¥¤¥ó¥¿Êݸî¤Ï¥»¥­¥å¥ê¥Æ¥£µ¡¹½¤Î°ì¤Ä¤Ç¡¢½ñ¤­¹þ¤ß²Äǽ¤Ê¥×¥í¥°¥é¥à¥á¥â¥ê -¤Ë³ÊǼ¤µ¤ì¤¿¥³¡¼¥É¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò¤Û¤Ü¥é¥ó¥À¥à²½¤¹¤ë¤³¤È¤Ç¡¢ -¹¶·â¼Ô¤¬¥Ð¥Ã¥Õ¥¡¥ª¡¼¥Ð¡¼¥é¥ó¤ä¥¹¥¿¥Ã¥¯Ç˲õ (stack-smashing) ¹¶·â¤ÎºÝ¤Ë -¥Ý¥¤¥ó¥¿¤ò¾è¤Ã¼è¤ë¤³¤È¤òº¤Æñ¤Ë¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ +(glibc 2.4 以降) +0 に設定すると、ポインタ保護 (pointer guarding) が無効になる。 +それ以外の値の場合はポインタ保護が有効になる。 +デフォルトはポインタ保護有効である。 +ポインタ保護はセキュリティ機構の一つで、書き込み可能なプログラムメモリ +に格納されたコードへのポインタをほぼランダム化することで、 +攻撃者がバッファオーバーランやスタック破壊 (stack-smashing) 攻撃の際に +ポインタを乗っ取ることを困難にするものである。 .TP .B LD_PROFILE -(glibc 2.1 °Ê¹ß) -¥×¥í¥Õ¥¡¥¤¥ë¤ò¹Ô¤¦¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¡£ -¥Ñ¥¹Ì¾¤«¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È̾ (soname) ¤Ç»ØÄꤵ¤ì¤ë¡£ -¥×¥í¥Õ¥£¡¼¥ë¤Î½ÐÎÏ¤Ï -"\fI$LD_PROFILE_OUTPUT\fP/\fI$LD_PROFILE\fP.profile" ¤È¤¤¤¦Ì¾Á°¤Î -¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£ +(glibc 2.1 以降) +プロファイルを行う共有オブジェクト。 +パス名か共有オブジェクト名 (soname) で指定される。 +プロフィールの出力は +"\fI$LD_PROFILE_OUTPUT\fP/\fI$LD_PROFILE\fP.profile" という名前の +ファイルに書き込まれる。 .TP .B LD_PROFILE_OUTPUT -(glibc 2.1 °Ê¹ß) +(glibc 2.1 以降) .B LD_PROFILE -¤Î½ÐÎϤ¬½ñ¤­¹þ¤Þ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¡£ -¤³¤ÎÊÑ¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢¶õ¤Îʸ»úÎó¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï +の出力が書き込まれるディレクトリ。 +この変数が定義されていないか、空の文字列が定義されている場合、 +デフォルト値は .I /var/tmp -¤È¤Ê¤ë¡£ -set-user-ID/set-group-ID ¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ -LD_PROFILE_OUTPUT ¤Ï̵»ë¤µ¤ì¤ë¡£ -½ÐÎÏ¥Õ¥¡¥¤¥ë¤Ï¾ï¤Ë +となる。 +set-user-ID/set-group-ID されたプログラムでは、 +LD_PROFILE_OUTPUT は無視される。 +出力ファイルは常に .I /var/profile -¤¬»ÈÍѤµ¤ì¤ë¡£ +が使用される。 .TP .B LD_SHOW_AUXV -(glibc 2.1 °Ê¹ß) -¥«¡¼¥Í¥ë¤«¤éÅϤµ¤ì¤ëÊä½õŪ¤Ê (¥Ñ¥é¥á¡¼¥¿¤Î) ÇÛÎó¤òɽ¼¨¤¹¤ë¡£ -¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÍýͳ¤«¤é¡¢glibc 2.3.4 °Ê¹ß¡¢ -set-user-ID/set-group-ID ¤µ¤ì¤¿¥Ð¥¤¥Ê¥ê¤Ç¤Ï +(glibc 2.1 以降) +カーネルから渡される補助的な (パラメータの) 配列を表示する。 +セキュリティ上の理由から、glibc 2.3.4 以降、 +set-user-ID/set-group-ID されたバイナリでは .B LD_SHOW_AUXV -¤Ï̵»ë¤µ¤ì¤ë¡£ +は無視される。 .\" FIXME .\" Document LD_TRACE_PRELINKING (e.g.: LD_TRACE_PRELINKING=libx1.so ./prog) .\" Since glibc 2.3 @@ -326,76 +326,76 @@ set-user-ID/set-group-ID .\" http://sources.redhat.com/ml/libc-hacker/2003-11/msg00127.html .\" Subject: [PATCH] Support LD_USE_LOAD_BIAS .\" Jakub Jelinek -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï (¤Ä¤Þ¤ê¡¢¤³¤ÎÊÑ¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç)¡¢ -¼Â¹Ô¥Õ¥¡¥¤¥ë¤È prelink ¤µ¤ì¤¿¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤Ï¡¢¤½¤ì¤é¤¬°Í¸¤¹¤ë -¥é¥¤¥Ö¥é¥ê¤Î¥Ù¡¼¥¹¥¢¥É¥ì¥¹¤¬Âº½Å¤µ¤ì¤ë°ìÊý¡¢ -(prelink ¤µ¤ì¤Æ¤¤¤Ê¤¤) position-independent executables (PIEs) ¤È -¾¤Î¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤Ï°Í¸¤¹¤ë¥é¥¤¥Ö¥é¥ê¤Î¥Ù¡¼¥¹¥¢¥É¥ì¥¹¤Ï -º½Å¤µ¤ì¤Ê¤¤¡£ +デフォルトでは (つまり、この変数が定義されていない場合)、 +実行ファイルと prelink された共有オブジェクトでは、それらが依存する +ライブラリのベースアドレスが尊重される一方、 +(prelink されていない) position-independent executables (PIEs) と +他の共有オブジェクトでは依存するライブラリのベースアドレスは +尊重されない。 .B LD_USE_LOAD_BIAS -¤ËÃͤ¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¡¢¼Â¹Ô¥Õ¥¡¥¤¥ë¤È PIE ¤Î¤É¤Á¤é¤Ç¤â -¥Ù¡¼¥¹¥¢¥É¥ì¥¹¤¬Âº½Å¤µ¤ì¤ë¡£ +に値が定義された場合、実行ファイルと PIE のどちらでも +ベースアドレスが尊重される。 .B LD_USE_LOAD_BIAS -¤¬ÃÍ 0 ¤ÇÄêµÁ¤µ¤ì¤¿¾ì¹ç¡¢¼Â¹Ô¥Õ¥¡¥¤¥ë¤È PIE ¤Î¤É¤Á¤é¤Ç¤â -¥Ù¡¼¥¹¥¢¥É¥ì¥¹¤Ïº½Å¤µ¤ì¤Ê¤¤¡£ -set-user-ID ¤ä set-group-ID ¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ -¤³¤ÎÊÑ¿ô¤Ï̵»ë¤µ¤ì¤ë¡£ +が値 0 で定義された場合、実行ファイルと PIE のどちらでも +ベースアドレスは尊重されない。 +set-user-ID や set-group-ID されたプログラムでは、 +この変数は無視される。 .TP .B LD_VERBOSE -(glibc 2.1 °Ê¹ß) -¶õʸ»úÎó¤Ç¤Ê¤¤¾ì¹ç¤Ë¡¢ +(glibc 2.1 以降) +空文字列でない場合に、 .RB ( LD_TRACE_LOADED_OBJECTS -¤òÀßÄꤹ¤ë¤«¡¢ +を設定するか、 .B \-\-list -¤Þ¤¿¤Ï +または .B \-\-verify -¥ª¥×¥·¥ç¥ó¤òưŪ¥ê¥ó¥«¤Ë»ØÄꤹ¤ë¤³¤È¤Ë¤è¤ê) -¥×¥í¥°¥é¥à¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÌ䤤¹ç¤ï¤»¤ë¤È¡¢ -¥×¥í¥°¥é¥à¤Î¥·¥ó¥Ü¥ë¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɽ¼¨¤¹¤ë¡£ +オプションを動的リンカに指定することにより) +プログラムについての情報を問い合わせると、 +プログラムのシンボルバージョン情報を表示する。 .TP .B LD_WARN -(ELF ¤Î¤ß)(glibc 2.1.3 °Ê¹ß) -¶õʸ»úÎó¤Ç¤Ê¤¤¾ì¹ç¡¢²ò·è¤µ¤ì¤Æ¤¤¤Ê¤¤¥·¥ó¥Ü¥ë¤¬¤¢¤ì¤Ð·Ù¹ð¤ò½Ð¤¹¡£ +(ELF のみ)(glibc 2.1.3 以降) +空文字列でない場合、解決されていないシンボルがあれば警告を出す。 .TP .B LDD_ARGV0 (libc5) .BR ldd (1) -¤Î°ú¤­¿ô¤¬¤Ê¤¤¾ì¹ç¤Ë¡¢ +の引き数がない場合に、 .IR argv [0] -¤È¤·¤Æ»È¤ï¤ì¤ëÃÍ¡£ -.SH ¥Õ¥¡¥¤¥ë +として使われる値。 +.SH ファイル .PD 0 .TP .I /lib/ld.so -a.out ¤ÎưŪ¥ê¥ó¥«/¥í¡¼¥À +a.out の動的リンカ/ローダ .TP .IR /lib/ld\-linux.so. { 1 , 2 } -ELF ¤ÎưŪ¥ê¥ó¥«/¥í¡¼¥À +ELF の動的リンカ/ローダ .TP .I /etc/ld.so.cache -¥é¥¤¥Ö¥é¥ê¤ò¸¡º÷¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ò½¸¤á¤¿¥ê¥¹¥È¤È¡¢ -¶¦Í­¥é¥¤¥Ö¥é¥ê¤Î¸õÊä¤ÎÀ°Îó¥ê¥¹¥È¤ò´Þ¤à¥Õ¥¡¥¤¥ë¡£ +ライブラリを検索するディレクトリを集めたリストと、 +共有ライブラリの候補の整列リストを含むファイル。 .TP .I /etc/ld.so.preload -¥×¥í¥°¥é¥à¤ÎÁ°¤Ë¥í¡¼¥É¤¹¤Ù¤­ ELF ¶¦Í­¥é¥¤¥Ö¥é¥ê¤ò -¥¹¥Ú¡¼¥¹¤Ç¶èÀڤ俥ꥹ¥È¤¬½ñ¤«¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¡£ +プログラムの前にロードすべき ELF 共有ライブラリを +スペースで区切ったリストが書かれているファイル。 .TP .B lib*.so* -¶¦Í­¥é¥¤¥Ö¥é¥ê +共有ライブラリ .PD -.SH Ãí°Õ +.SH 注意 .B ld.so -¤Îµ¡Ç½¤Ï libc ¤Î¥Ð¡¼¥¸¥ç¥ó 4.4.3 °Ê¾å¤òÍѤ¤¤Æ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿ -¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ç»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ -ELF ¤Îµ¡Ç½¤Ï Linux 1.1.52 °Ê¹ß¤È libc5 °Ê¹ß¤Ç»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +の機能は libc のバージョン 4.4.3 以上を用いてコンパイルされた +実行ファイルで使用可能である。 +ELF の機能は Linux 1.1.52 以降と libc5 以降で使用可能である。 +.SH 関連項目 .BR ldd (1), .BR rtld-audit (7), .BR ldconfig (8) -.\" .SH Ãø¼Ô +.\" .SH 著者 .\" ld.so: David Engel, Eric Youngdale, Peter MacDonald, Hongjiu Lu, Linus .\" Torvalds, Lars Wirzenius and Mitch D'Souza -.\" ld-linux.so: Roland McGrath, Ulrich Drepper, ¤½¤Î¾¤Î¿Í¡¹ +.\" ld-linux.so: Roland McGrath, Ulrich Drepper, その他の人々 .\" -.\" ¾åµ­¤ÎÀâÌÀ¤Ë¤ª¤¤¤Æ¡¢(libc5) ¤Ï David Engel ¤Î -.\" ld.so/ld-linux.so ¤òɽ¤·¤Æ¤¤¤ë¡£ +.\" 上記の説明において、(libc5) は David Engel の +.\" ld.so/ld-linux.so を表している。 diff --git a/release/man8/ldconfig.8 b/release/man8/ldconfig.8 index 32c582ed..399403b9 100644 --- a/release/man8/ldconfig.8 +++ b/release/man8/ldconfig.8 @@ -26,13 +26,13 @@ .\" Updated & Modified Mon Jun 4 20:13:57 JST 2001 .\" by Yuichi SATO .\" -.\"WORD: verbose mode ¾ÜºÙɽ¼¨¥â¡¼¥É -.\"WORD: quiet mode ¥á¥Ã¥»¡¼¥¸ÍÞÀ©¥â¡¼¥É +.\"WORD: verbose mode 詳細表示モード +.\"WORD: quiet mode メッセージ抑制モード .\" .TH LDCONFIG 8 2009-04-15 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -/sbin/ldconfig \- ưŪ¥ê¥ó¥«¤Ë¤è¤ë¼Â¹Ô»þ¤Î·ë¹ç´Ø·¸¤òÀßÄꤹ¤ë -.SH ½ñ¼° +.SH 名前 +/sbin/ldconfig \- 動的リンカによる実行時の結合関係を設定する +.SH 書式 .B /sbin/ldconfig [ .B \-nNvXV @@ -61,122 +61,122 @@ .PD .B /sbin/ldconfig .B \-p -.SH ÀâÌÀ +.SH 説明 .B ldcofig -¤ÏºÇ¿·¤Î¶¦Í­¥é¥¤¥Ö¥é¥ê¤ËÂФ·¤ÆɬÍפʥê¥ó¥¯¤òºîÀ®¤·¤¿¤ê¡¢ -¥é¥¤¥Ö¥é¥ê¤ò¥­¥ã¥Ã¥·¥å¤·¤¿¤ê¤¹¤ë¡£ -¥é¥¤¥Ö¥é¥ê¤Ï¡¢¥³¥Þ¥ó¥É¥é¥¤¥ó¤ä +は最新の共有ライブラリに対して必要なリンクを作成したり、 +ライブラリをキャッシュしたりする。 +ライブラリは、コマンドラインや .I /etc/ld.so.conf -¥Õ¥¡¥¤¥ë¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ä¡¢¶¦Í­¥é¥¤¥Ö¥é¥ê¤¬ -Ä̾ïÃÖ¤«¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê -.RI ( /lib " ¤È " /usr/lib ) -¤«¤é¸¡º÷¤µ¤ì¤ë¡£ -¥­¥ã¥Ã¥·¥å¤Ï¼Â¹Ô»þ¥ê¥ó¥« +ファイルで指定されたディレクトリや、共有ライブラリが +通常置かれるディレクトリ +.RI ( /lib " と " /usr/lib ) +から検索される。 +キャッシュは実行時リンカ .I ld.so -¤Þ¤¿¤Ï +または .I ld-linux.so -¤Ë¤è¤Ã¤Æ»È¤ï¤ì¤ë¡£ +によって使われる。 .B ldconfig -¤Ï½èÍý¤¹¤ë¥é¥¤¥Ö¥é¥ê¤Î¥Ø¥Ã¥ÀÉôʬ¤È¥Õ¥¡¥¤¥ë̾¤ò¥Á¥§¥Ã¥¯¤·¡¢ -¤É¤Î¥Ð¡¼¥¸¥ç¥ó¤ËÂФ·¤Æ¥ê¥ó¥¯¤ò¹¹¿·¤¹¤Ù¤­¤«¤òȽÃǤ¹¤ë¡£ +は処理するライブラリのヘッダ部分とファイル名をチェックし、 +どのバージョンに対してリンクを更新すべきかを判断する。 .PP .B ldconfig -¤Ï ELF ¥é¥¤¥Ö¥é¥ê¤Î¼ïÎà (libc5 ¤« libc6/glibc ¤«) ¤òȽÃǤ¹¤ë¤È¤­¡¢ -¤½¤Î¥é¥¤¥Ö¥é¥ê¤¬¥ê¥ó¥¯¤·¤Æ¤¤¤ë C ¥é¥¤¥Ö¥é¥ê¤ò»²¹Í¤Ë¤¹¤ë¡£ -.\" °Ê²¼¤Îʸ¤ÎÆâÍƤÏËÜÅö¤«¤É¤¦¤«µ¿¤ï¤·¤¤ -.\" (¤ª¤½¤é¤¯²áµî¤Î°äʪ¤Ç¤¢¤í¤¦) -- MTK, Jul 2005 -.\" ¤·¤¿¤¬¤Ã¤Æ¥À¥¤¥Ê¥ß¥Ã¥¯¥é¥¤¥Ö¥é¥ê¤òºîÀ®¤¹¤ë¤È¤­¤Ë¤Ï¡¢ -.\" libc ¤ËÂФ¹¤ë¥ê¥ó¥¯¤ò (\-lc ¤ò¤Ä¤«¤Ã¤Æ) ÌÀ¼¨¤·¤Æ¤ª¤¯¤ÈÎɤ¤¡£ +は ELF ライブラリの種類 (libc5 か libc6/glibc か) を判断するとき、 +そのライブラリがリンクしている C ライブラリを参考にする。 +.\" 以下の文の内容は本当かどうか疑わしい +.\" (おそらく過去の遺物であろう) -- MTK, Jul 2005 +.\" したがってダイナミックライブラリを作成するときには、 +.\" libc に対するリンクを (\-lc をつかって) 明示しておくと良い。 .PP -¤¹¤Ç¤Ë¸ºß¤·¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥ê¤ÎÃæ¤Ë¤Ï¡¢¼ïÎà¤ò¶èÊ̤¹¤ë¤¿¤á¤Ë½¼Ê¬¤Ê -¾ðÊ󤬴ޤޤì¤Æ¤¤¤Ê¤¤¤â¤Î¤â¤¢¤ë¡£ -¤³¤Î¤¿¤á +すでに存在しているライブラリの中には、種類を区別するために充分な +情報が含まれていないものもある。 +このため .I /etc/ld.so.conf -¥Õ¥¡¥¤¥ë¤Ç¥é¥¤¥Ö¥é¥ê¤Î·Á¼°¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ -¤³¤ì¤Ï¶èÊÌÉÔǽ¤Ê ELF ¥é¥¤¥Ö¥é¥ê¡Ö¤À¤±¡×¤ËÍѤ¤¤ë¤â¤Î¤Ç¤¢¤ë¡£ -¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï "dirname=TYPE" ¤È¤¹¤ë¡£ -¤³¤³¤Ç TYPE ¤Ï libc4, libc5, libc6 ¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë -(¤³¤Î½ñ¼°¤Ï¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç¤â»È¤¨¤ë)¡£ -¡Ö¥¹¥Ú¡¼¥¹¤òÆþ¤ì¤Æ¤Ï¤Ê¤é¤Ê¤¤¡×¡£ +ファイルでライブラリの形式を指定することができるようになっている。 +これは区別不能な ELF ライブラリ「だけ」に用いるものである。 +フォーマットは "dirname=TYPE" とする。 +ここで TYPE は libc4, libc5, libc6 のいずれかである +(この書式はコマンドラインでも使える)。 +「スペースを入れてはならない」。 .B \-p -¥ª¥×¥·¥ç¥ó¤â¸«¤Æ¤ª¤¯¤³¤È¡£ +オプションも見ておくこと。 .B ldconfig -¤ÏÄ̾凉¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¸¢¸Â¤Ç¼Â¹Ô¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -root ¤¬½êÍ­¤·¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ä¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤­¹þ¤ß¸¢¸Â¤¬ -ɬÍפˤʤ뤫¤é¤Ç¤¢¤ë¡£ -.SH ¥ª¥×¥·¥ç¥ó +は通常スーパーユーザー権限で実行しなければならない。 +root が所有しているディレクトリやファイルへの書き込み権限が +必要になるからである。 +.SH オプション .TP .B \-v -¾ÜºÙɽ¼¨¥â¡¼¥É¡£ -¸½ºß¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òɽ¼¨¤¹¤ë¡£ -¤Þ¤¿¤½¤ì¤¾¤ì¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¥¹¥­¥ã¥ó¤·¡¢ -¿·¤·¤¤¥ê¥ó¥¯¤òÀ¸À®¤¹¤ë¤¿¤Ó¤Ë¡¢¤½¤ÎÆâÍƤòɽ¼¨¤¹¤ë¡£ -¥á¥Ã¥»¡¼¥¸ÍÞÀ©¥â¡¼¥É¤ò¾å½ñ¤­¤¹¤ë¡£ +詳細表示モード。 +現在のバージョン番号を表示する。 +またそれぞれのディレクトリをスキャンし、 +新しいリンクを生成するたびに、その内容を表示する。 +メッセージ抑制モードを上書きする。 .TP .B \-n -¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Î¤ß¤ò½èÍý¤¹¤ë¡£ -Ä̾ﶦͭ¥é¥¤¥Ö¥é¥ê¤¬ÃÖ¤«¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê -.RI ( /lib " ¤È " /usr/lib ) -¤ä +コマンドラインで指定されたディレクトリのみを処理する。 +通常共有ライブラリが置かれるディレクトリ +.RI ( /lib " と " /usr/lib ) +や .I /etc/ld.so.conf -¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ï½èÍý¤·¤Ê¤¤¡£ -°ÅÌۤΤ¦¤Á¤Ë +で指定されたディレクトリは処理しない。 +暗黙のうちに .B \-N -¤¬»ØÄꤵ¤ì¤ë¡£ +が指定される。 .TP .B \-N -¥­¥ã¥Ã¥·¥å¤òºÆ¹½À®¤·¤Ê¤¤¡£ -Ʊ»þ¤Ë +キャッシュを再構成しない。 +同時に .B \-X -¤¬Æ±»þ¤Ë»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¡¢¥ê¥ó¥¯¤Î¤Û¤¦¤Ï¹¹¿·¤µ¤ì¤ë¡£ +が同時に指定されなければ、リンクのほうは更新される。 .TP .B \-X -¥ê¥ó¥¯¤ò¹¹¿·¤·¤Ê¤¤¡£ +リンクを更新しない。 .B \-N -¤¬Æ±»þ¤Ë»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¡¢¥­¥ã¥Ã¥·¥å¤Î¤Û¤¦¤ÏºÆ¹½À®¤µ¤ì¤ë¡£ +が同時に指定されなければ、キャッシュのほうは再構成される。 .TP .B \-f conf .B conf -¤ò +を .I /etc/ld.so.conf -¤ÎÂå¤ï¤ê¤ËÍѤ¤¤ë¡£ +の代わりに用いる。 .TP .B \-C cache .B cache -¤ò +を .I /etc/ld.so.cache -¤ÎÂå¤ï¤ê¤ËÍѤ¤¤ë¡£ +の代わりに用いる。 .TP .B \-r root .I root -¤Ë¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤òÊѹ¹¤·¡¢¤³¤³¤ò¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤È¤·¤ÆÍѤ¤¤ë¡£ +にカレントディレクトリを変更し、ここをルートディレクトリとして用いる。 .TP .B \-l -¥é¥¤¥Ö¥é¥ê¥â¡¼¥É¡£¤½¤ì¤¾¤ì¤Î¥é¥¤¥Ö¥é¥ê¤ò¼êÆ°¤Ç¥ê¥ó¥¯¤¹¤ë¡£ -½ÏÎý¼Ô¤Î¤ß¤¬ÍѤ¤¤ë¤Ù¤­¤Ç¤¢¤ë¡£ +ライブラリモード。それぞれのライブラリを手動でリンクする。 +熟練者のみが用いるべきである。 .TP .B \-p -¸½ºß¤Î¥­¥ã¥Ã¥·¥å¤ËÊݸ¤µ¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤È¡¢ -¥é¥¤¥Ö¥é¥ê¤Î¸õÊä¤òɽ¼¨¤¹¤ë¡£ -.SH ¥Õ¥¡¥¤¥ë +現在のキャッシュに保存されているディレクトリのリストと、 +ライブラリの候補を表示する。 +.SH ファイル .PD 0 .TP 20 .I /lib/ld.so -¼Â¹Ô»þ¥ê¥ó¥«/¥í¡¼¥À¡¼¡£ +実行時リンカ/ローダー。 .TP 20 .I /etc/ld.so.conf -¥³¥í¥ó¡¦¥¹¥Ú¡¼¥¹¡¦¥¿¥Ö¡¦²þ¹Ô¡¦¥³¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¡£ -¤½¤ì¤¾¤ì¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç¥é¥¤¥Ö¥é¥ê¤¬¸¡º÷¤µ¤ì¤ë¡£ +コロン・スペース・タブ・改行・コンマで区切られたディレクトリのリスト。 +それぞれのディレクトリでライブラリが検索される。 .TP 20 .I /etc/ld.so.cache .I /etc/ld.so.conf -¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¥é¥¤¥Ö¥é¥ê¡¢¤ª¤è¤Ó +で指定されたディレクトリにあるライブラリ、および .I /lib -¤È +と .I /usr/lib -¤Ë¤¢¤ë¥é¥¤¥Ö¥é¥ê¤Î½ç½øÉÕ¤­¥ê¥¹¥È¡£ +にあるライブラリの順序付きリスト。 .PD -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR ldd (1), .BR ld.so (8) diff --git a/release/man8/nscd.8 b/release/man8/nscd.8 index 482ee36b..c01b7ce6 100644 --- a/release/man8/nscd.8 +++ b/release/man8/nscd.8 @@ -29,66 +29,66 @@ .\" Updated 2009-03-05 by Kentaro Shirakata .\" .TH NSCD 8 2008-12-05 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -/usr/sbin/nscd \- ¥Í¡¼¥à¥µ¡¼¥Ó¥¹¥­¥ã¥Ã¥·¥å¥Ç¡¼¥â¥ó -.SH ÀâÌÀ -nscd ¤Ï°ìÈÌŪ¤Ê¥Í¡¼¥à¥µ¡¼¥Ó¥¹¤ËɬÍפÊ¿¤¯¤Î¤â¤Î¤ò -¥­¥ã¥Ã¥·¥å¤È¤·¤ÆÄ󶡤¹¤ë¥Ç¡¼¥â¥ó¤Ç¤¢¤ë¡£ -¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¥Õ¥¡¥¤¥ë +.SH 名前 +/usr/sbin/nscd \- ネームサービスキャッシュデーモン +.SH 説明 +nscd は一般的なネームサービスに必要な多くのものを +キャッシュとして提供するデーモンである。 +デフォルトの設定ファイル .I /etc/nscd.conf -¤Ç¥­¥ã¥Ã¥·¥å¥Ç¡¼¥â¥ó¤ÎÆ°ºî¤ò·èÄꤹ¤ë¡£ +でキャッシュデーモンの動作を決定する。 .BR nscd.conf (5) -¤ò¸«¤è¡£ +を見よ。 -nscd ¤Ï +nscd は .BR passwd (5), .BR group (5), .BR hosts (5) -¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤Î¥¢¥¯¥»¥¹¤Î¥­¥ã¥Ã¥·¥å¤ò +データベースへのアクセスのキャッシュを .BR getpwnam (3), .BR getpwuid (3), .BR getgrnam (3), .BR getgrgid (3), .BR gethostbyname (3) -¤Ê¤É¤Îɸ½à libc ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÄ̤·¤ÆÄ󶡤¹¤ë¡£ +などの標準 libc インターフェースを通して提供する。 -³Æ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤Ï 2 ¤Ä¤Î¥­¥ã¥Ã¥·¥å¤¬¤¢¤ë¡£ -¹ÎÄêŪ (positive) ¤Ê¥­¥ã¥Ã¥·¥å¤Ï¸«¤Ä¤«¤Ã¤¿¥¢¥¤¥Æ¥à¤ò¥­¥ã¥Ã¥·¥å¤·¡¢ -ÈÝÄêŪ (negative) ¤Ê¥­¥ã¥Ã¥·¥å¤Ï¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¥¢¥¤¥Æ¥à¤ò¥­¥ã¥Ã¥·¥å¤¹¤ë¡£ -³Æ¥­¥ã¥Ã¥·¥å¤Ï¥Ç¡¼¥¿¤Î TTL (time-to-live, À¸Â¸»þ´Ö) ¤ò¸ÄÊ̤˻ý¤Ã¤Æ¤¤¤ë¡£ -ÆÃÎã¤È¤·¤Æ shadow ¥Õ¥¡¥¤¥ë¤Ï¥­¥ã¥Ã¥·¥å¤µ¤ì¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ +各データベースには 2 つのキャッシュがある。 +肯定的 (positive) なキャッシュは見つかったアイテムをキャッシュし、 +否定的 (negative) なキャッシュは見つからなかったアイテムをキャッシュする。 +各キャッシュはデータの TTL (time-to-live, 生存時間) を個別に持っている。 +特例として shadow ファイルはキャッシュされない点に注意すること。 .BR getspnam (3) -¤ò¸Æ¤Ó½Ð¤·¤Æ¤â·ë²Ì¤È¤·¤Æ¥­¥ã¥Ã¥·¥å¤µ¤ì¤Ê¤¤¤Þ¤Þ¤Ë¤Ê¤ë¡£ -.SH ¥ª¥×¥·¥ç¥ó +を呼び出しても結果としてキャッシュされないままになる。 +.SH オプション .TP .B "\-\-help" -Á´¤Æ¤Î¥ª¥×¥·¥ç¥ó¤È¤½¤ÎÆ°ºî¤ò¥ê¥¹¥È¤·¤Æɽ¼¨¤¹¤ë¡£ -.SH Ãí°Õ -¥Ç¡¼¥â¥ó¤Ï( +全てのオプションとその動作をリストして表示する。 +.SH 注意 +デーモンは( .I passwd -¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤Ä¤¤¤Æ¤Ï -.IR /etc/passwd ¡¢ +データベースについては +.IR /etc/passwd 、 .I hosts -¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤Ä¤¤¤Æ¤Ï +データベースについては .I /etc/hosts -¤È +と .I /etc/resolv.conf -¤È¤¤¤¦¤è¤¦¤Ê)¤½¤ì¤¾¤ì¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¤¿¤á¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤ò¸«Ä¥¤Ã¤Æ¡¢ -¤³¤ì¤é¤¬Êѹ¹¤µ¤ì¤ë¤È¥­¥ã¥Ã¥·¥å¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë¡£ -¤·¤«¤·¡¢¤³¤ì¤Ï( +というような)それぞれのデータベースのための設定ファイルを見張って、 +これらが変更されるとキャッシュをフラッシュする。 +しかし、これは( .BR inotify (7) -¤¬ÍøÍѲÄǽ¤Ç¡¢glibc 2.9 °Ê¹ß¤¬ÍøÍѲÄǽ¤Ê¾ì¹ç¤ò½ü¤¤¤Æ) -û¤¤ÃÙ±ä¤Î¸å¤Ëµ¯¤³¤ê¡¢¤Þ¤¿¤³¤Î¼«Æ°¸¡½Ð¤ÏÈóɸ½à NSS ¥â¥¸¥å¡¼¥ë¤¬ +が利用可能で、glibc 2.9 以降が利用可能な場合を除いて) +短い遅延の後に起こり、またこの自動検出は非標準 NSS モジュールが .I /etc/nsswitch.conf -¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¤½¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ë¤ÏÂбþ¤·¤Ê¤¤¡£ -¤³¤Î¾ì¹ç¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤òÊѹ¹¤·¤¿¸å¡¢ +で指定されている場合はその設定ファイルには対応しない。 +この場合、データベースの設定ファイルを変更した後、 .B nscd -¤Î¥­¥ã¥Ã¥·¥å¤ò̵¸ú¤Ë¤¹¤ë¤¿¤á¤Ë°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ëɬÍפ¬¤¢¤ë: +のキャッシュを無効にするために以下のコマンドを実行する必要がある: $ \fBnscd -i\fP \fI\fP -.SH ´ØÏ¢¹àÌÜ +.SH 関連項目 .BR nscd.conf (5), .BR nsswitch.conf (5) -.\" .SH Ãø¼Ô +.\" .SH 著者 .\" .B nscd -.\" ¤Ï Thorsten Kukuk ¤È Ulrich Drepper ¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤¿¡£ +.\" は Thorsten Kukuk と Ulrich Drepper によって書かれた。 diff --git a/release/man8/sync.8 b/release/man8/sync.8 index 72547624..5f67c82e 100644 --- a/release/man8/sync.8 +++ b/release/man8/sync.8 @@ -9,84 +9,84 @@ .\" Translated Tue Jun 13 14:04:28 JST 2000 .\" by by Yuichi SATO .\" -.\"WORD: synchronize Ʊ´ü -.\"WORD: superblock ¥¹¡¼¥Ñ¡¼¥Ö¥í¥Ã¥¯ -.\"WORD: halt Ää»ß -.\"WORD: processer ¥×¥í¥»¥Ã¥µ¡¼ +.\"WORD: synchronize 同期 +.\"WORD: superblock スーパーブロック +.\"WORD: halt 停止 +.\"WORD: processer プロセッサー .\" .TH SYNC 8 1998-11-01 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -sync \- ¥Ç¥£¥¹¥¯¾å¤Î¥Ç¡¼¥¿¤ò¥á¥â¥ê¤ÈƱ´ü¤µ¤»¤ë -.SH ½ñ¼° +.SH 名前 +sync \- ディスク上のデータをメモリと同期させる +.SH 書式 .B "sync [\-\-help] [\-\-version]" -.SH ÀâÌÀ +.SH 説明 .B sync -¤Ï¥á¥â¥ê¤Ë¥Ð¥Ã¥Õ¥¡¤µ¤ì¤¿¤¹¤Ù¤Æ¤Î¥Ç¡¼¥¿¤ò¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤à¡£ -¤³¤ì¤Ë¤Ï¡¢Êѹ¹¤µ¤ì¤¿¥¹¡¼¥Ñ¡¼¥Ö¥í¥Ã¥¯¡¦Êѹ¹¤µ¤ì¤¿ inode¡¦ -Ãٱ䤷¤¿Æɤ߽ñ¤­¤¬´Þ¤Þ¤ì¤ë (¾¤Ë¤â¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤)¡£ -¤³¤ì¤Ï¥«¡¼¥Í¥ë¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -¤Ê¤¼¤Ê¤é +はメモリにバッファされたすべてのデータをディスクに書き込む。 +これには、変更されたスーパーブロック・変更された inode・ +遅延した読み書きが含まれる (他にもあるかもしれない)。 +これはカーネルに実装されているべきである。 +なぜなら .B sync -¥×¥í¥°¥é¥à¤Ï +プログラムは .BR sync (2) -¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¹Ô»È¤¹¤ë¤À¤±¤À¤«¤é¤Ç¤¢¤ë¡£ +システムコールを行使するだけだからである。 .PP -¥«¡¼¥Í¥ë¤Ï (Èæ³ÓŪÃÙ¤¤) ¥Ç¥£¥¹¥¯¤ÎÆɤ߽ñ¤­¤òÈò¤±¤ë¤¿¤á¡¢ -¥Ç¡¼¥¿¤ò¥á¥â¥ê¤ËÊÝ»ý¤¹¤ë¡£ -¤³¤ì¤Ë¤è¤êÀ­Ç½¤Ï¸þ¾å¤¹¤ë¤¬¡¢¥³¥ó¥Ô¥å¡¼¥¿¤¬¥¯¥é¥Ã¥·¥å¤·¤¿¾ì¹ç¡¢ -·ë²Ì¤È¤·¤Æ¥Ç¡¼¥¿¤¬Â»¼º¤·¤¿¤ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬²õ¤ì¤¿¤ê¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ +カーネルは (比較的遅い) ディスクの読み書きを避けるため、 +データをメモリに保持する。 +これにより性能は向上するが、コンピュータがクラッシュした場合、 +結果としてデータが損失したりファイルシステムが壊れたりするかもしれない。 .B sync -¤Ï¥á¥â¥ê¤Ë¤¢¤ëÆâÍƤ¹¤Ù¤Æ¤¬¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¤³¤È¤òÊݾڤ¹¤ë¡£ +はメモリにある内容すべてがディスクに書き込まれることを保証する。 .PP -(¿·¤·¤¤¥«¡¼¥Í¥ë¥³¡¼¥É¤ò¥Ç¥Ð¥Ã¥¯¤·¤Æ¤¤¤Æ¥«¡¼¥Í¥ë¥Ñ¥Ë¥Ã¥¯¤ò°ú¤­µ¯¤³¤¹Á°¤Ê¤É¤Î) -Ä̾ï¤È°Û¤Ê¤ëÊýË¡¤Ç¥×¥í¥»¥Ã¥µ¡¼¤òÄä»ß¤µ¤»¤ëÁ°¤Ë¤Ï¡¢ +(新しいカーネルコードをデバックしていてカーネルパニックを引き起こす前などの) +通常と異なる方法でプロセッサーを停止させる前には、 .B sync -¤ò¸Æ¤Ó½Ð¤¹¤Ù¤­¤Ç¤¢¤ë¡£ -°ìÈÌŪ¤Ë¤Ï +を呼び出すべきである。 +一般的には .BR sync (2) -¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¡¢ -¥·¥¹¥Æ¥à¤òÀŻ߾õÂ֤ˤµ¤»¤ë +を呼び出す前に、 +システムを静止状態にさせる .BR shutdown (8), .BR reboot (8), .BR halt (8) -¤È¤¤¤Ã¤¿¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¥×¥í¥»¥Ã¥µ¡¼¤òÄä»ß¤µ¤»¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -(¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤Ë¤Ï¤¤¤í¤¤¤í¤Ê¼ÂÁõ¤¬¤¢¤ë¤Î¤Ç¡¢ -¥É¥­¥å¥á¥ó¥È¤òÅö¤ë¤³¤È¡£ +といったコマンドを使ってプロセッサーを停止させるべきである。 +(これらのコマンドにはいろいろな実装があるので、 +ドキュメントを当ること。 .BR reboot (8), .BR halt (8) -¤òľÀܸƤӽФ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¥·¥¹¥Æ¥à¤â¤¢¤ë¡£) -.SH ¥ª¥×¥·¥ç¥ó +を直接呼び出すべきではないシステムもある。) +.SH オプション .TP .B "\-\-help" -ɸ½à½ÐÎϤ˻ÈÍÑÊýË¡¤Î¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¤ÆÀµ¾ï½ªÎ»¤¹¤ë¡£ +標準出力に使用方法のメッセージを出力して正常終了する。 .TP .B "\-\-version" -ɸ½à½ÐÎϤ˥С¼¥¸¥ç¥ó¾ðÊó¤ò½ÐÎϤ·¤ÆÀµ¾ï½ªÎ»¤¹¤ë¡£ +標準出力にバージョン情報を出力して正常終了する。 .TP .B "\-\-" -¥ª¥×¥·¥ç¥ó¥ê¥¹¥È¤ò½ªÎ»¤¹¤ë¡£ -.SH ´Ä¶­ÊÑ¿ô -ÊÑ¿ô \fBLANG\fP, \fBLC_ALL\fP, \fBLC_CTYPE\fP, \fBLC_MESSAGES\fP -¤ÏÄ̾ï¤Î°ÕÌ£¤ò»ý¤Ä¡£ -.SH ½àµò +オプションリストを終了する。 +.SH 環境変数 +変数 \fBLANG\fP, \fBLC_ALL\fP, \fBLC_CTYPE\fP, \fBLC_MESSAGES\fP +は通常の意味を持つ。 +.SH 準拠 POSIX.2. -.SH Ãí°Õ -Linux ¤Ç¤Ï¡¢ +.SH 注意 +Linux では、 .B sync -¤Ï (¤Þ¤À½ñ¤­¹þ¤Þ¤ì¤Æ¤¤¤Ê¤¤) ¥À¡¼¥Æ¥£¤Ê¥Ö¥í¥Ã¥¯¤Î½ñ¤­¹þ¤ß¤ò -¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤¹¤ë¤³¤È¤Î¤ß¤òÊݾڤ¹¤ë¡£ -¤Ä¤Þ¤ê¡¢¤¹¤Ù¤Æ¤Î¥Ö¥í¥Ã¥¯¤Î½ñ¤­¹þ¤ß¤¬½ª¤ë¤Þ¤Ç¤Ë¡¢¼ÂºÝ¤Ë¤Ï¾¯¤·»þ´Ö¤¬¤«¤«¤ë¡£ +は (まだ書き込まれていない) ダーティなブロックの書き込みを +スケジューリングすることのみを保証する。 +つまり、すべてのブロックの書き込みが終るまでに、実際には少し時間がかかる。 .BR reboot (8), .BR halt (8) -¥³¥Þ¥ó¥É¤Ï +コマンドは .BR sync (2) -¤ò¸Æ¤ó¤À¸å¤Ë¿ôÉô֥¹¥ê¡¼¥×¤¹¤ë¤³¤È¤Ç¡¢¤³¤ì¤ò¹Íθ¤ËÆþ¤ì¤Æ¤¤¤ë¡£ +を呼んだ後に数秒間スリープすることで、これを考慮に入れている。 .PP -¤³¤Î¥Ú¡¼¥¸¤Ç¤Ï file\%utils-4.0 ¥Ñ¥Ã¥±¡¼¥¸¤Ç¤Î +このページでは file\%utils-4.0 パッケージでの .B sync -¥³¥Þ¥ó¥É¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤ë¤Î¤Ç¡¢ -¤½¤Î¾¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¾¯¤·°ã¤¤¤¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +コマンドについて説明しているので、 +その他のバージョンでは少し違いがあるかもしれない。 +.SH 関連項目 .BR sync (2), .BR halt (8), .BR reboot (8), diff --git a/release/man8/tzselect.8 b/release/man8/tzselect.8 index 1967432b..d89ae88a 100644 --- a/release/man8/tzselect.8 +++ b/release/man8/tzselect.8 @@ -7,48 +7,48 @@ .\" by Yuichi SATO .\" Updated & Modified Sun Dec 23 08:41:42 JST 2001 by Yuichi SATO .\" -.\"WORD: country code ¹ñÊÌ¥³¡¼¥É +.\"WORD: country code 国別コード .\" .TH TZSELECT 8 2007-05-18 "" "Linux System Administration" -.SH ̾Á° -tzselect \- ¥¿¥¤¥à¥¾¡¼¥ó¤òÁªÂò¤¹¤ë -.SH ½ñ¼° +.SH 名前 +tzselect \- タイムゾーンを選択する +.SH 書式 .B tzselect -.SH ÀâÌÀ +.SH 説明 .B tzselect -¥×¥í¥°¥é¥à¤Ï¡¢¥æ¡¼¥¶¡¼¤¬¸½ºß¤¤¤ë¾ì½ê¤Î¾ðÊó¤ò¿Ò¤Í¤Æ¡¢ -¤½¤Î·ë²ÌÆÀ¤é¤ì¤¿¥¿¥¤¥à¥¾¡¼¥ó¤Îɽµ­¤òɸ½à½ÐÎϤËɽ¼¨¤¹¤ë¡£ -¤³¤Î½ÐÎÏ¤Ï +プログラムは、ユーザーが現在いる場所の情報を尋ねて、 +その結果得られたタイムゾーンの表記を標準出力に表示する。 +この出力は .B TZ -´Ä¶­ÊÑ¿ô¤ÎÃͤˤ¹¤ë¤ÈÎɤ¤¡£ +環境変数の値にすると良い。 .PP -¥æ¡¼¥¶¤È¤ÎÂÐÏäϡ¢Á´¤Æɸ½àÆþÎϤÈɸ½à¥¨¥é¡¼½ÐÎϤȤǹԤï¤ì¤ë¡£ -.SH ÊÖ¤êÃÍ -¥æ¡¼¥¶¤«¤é¤ÎÆþÎϤˤè¤Ã¤Æ¥¿¥¤¥à¥¾¡¼¥ó¤¬Àµ¤·¤¯¼èÆÀ¤Ç¤­¤¿¾ì¹ç¤Ï 0 ¤ò -ÊÖ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï 0 °Ê³°¤òÊÖ¤¹¡£ -.SH ´Ä¶­ +ユーザとの対話は、全て標準入力と標準エラー出力とで行われる。 +.SH 返り値 +ユーザからの入力によってタイムゾーンが正しく取得できた場合は 0 を +返す。それ以外の場合は 0 以外を返す。 +.SH 環境 .TP \fBAWK\fP -Posix ¸ß´¹¤Î +Posix 互換の .I awk -¥×¥í¥°¥é¥à (¥Ç¥Õ¥©¥ë¥È¤Ï -.BR awk )¡£ +プログラム (デフォルトは +.BR awk )。 .TP \fBTZDIR\fP -¥¿¥¤¥à¥¾¡¼¥ó¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î̾Á° (¥Ç¥Õ¥©¥ë¥È¤Ï -.IR /usr/share/zoneinfo )¡£ -.\" ¸Å¤¤¥·¥¹¥Æ¥à¤Ç¤Ï /usr/local/etc/zoneinfo ¤À¤í¤¦ -.SH ¥Õ¥¡¥¤¥ë +タイムゾーンデータファイルが置かれているディレクトリの名前 (デフォルトは +.IR /usr/share/zoneinfo )。 +.\" 古いシステムでは /usr/local/etc/zoneinfo だろう +.SH ファイル .TP \fBTZDIR\fP\fI/iso3166.tab\fP -2 ʸ»ú¤Î¹ñÊÌ¥³¡¼¥É (countory code) ¤È¹ñ¤Î̾Á°¤«¤é¤Ê¤ë ISO 3166 ¤Îɽ¡£ +2 文字の国別コード (countory code) と国の名前からなる ISO 3166 の表。 .TP \fBTZDIR\fP\fI/zone.tab\fP -¹ñÊÌ¥³¡¼¥É¡¢·ÐÅÙ¡¦°ÞÅÙ¡¢TZ ¤ÎÃÍ¡¢ÀâÌÀʸ¤«¤é¤Ê¤ëɽ¡£ +国別コード、経度・緯度、TZ の値、説明文からなる表。 .TP \fBTZDIR\fP\fI/\fP\fITZ\fP -¥¿¥¤¥à¥¾¡¼¥ó \fITZ\fP ¤ËÂФ¹¤ë¥¿¥¤¥à¥¾¡¼¥ó¥Ç¡¼¥¿¤Î¥Õ¥¡¥¤¥ë¡£ -.SH ´ØÏ¢¹àÌÜ +タイムゾーン \fITZ\fP に対するタイムゾーンデータのファイル。 +.SH 関連項目 .BR tzfile (5), .BR zdump (8), .BR zic (8) diff --git a/release/man8/zdump.8 b/release/man8/zdump.8 index 3c0d1752..7d9018ab 100644 --- a/release/man8/zdump.8 +++ b/release/man8/zdump.8 @@ -5,42 +5,42 @@ .\" by NAKANO Takeo .\" .TH ZDUMP 8 2007-05-18 "" "Linux System Administration" -.SH ̾Á° -zdump \- ¥¿¥¤¥à¥¾¡¼¥ó¤ò¥À¥ó¥×¤¹¤ë -.SH ½ñ¼° +.SH 名前 +zdump \- タイムゾーンをダンプする +.SH 書式 .B zdump [ .B \-v ] [ .B \-c cutoffyear ] [ zonename ... ] -.SH ÀâÌÀ +.SH 説明 .I zdump -¤Ï -¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç»ØÄꤷ¤¿ +は +コマンドラインで指定した .I zonename -¤½¤ì¤¾¤ì¤Ë¤ª¤±¤ë¸½ºß»þ¹ï¤òɽ¼¨¤¹¤ë¡£ +それぞれにおける現在時刻を表示する。 .PP -°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄê¤Ç¤­¤ë: +以下のオプションを指定できる: .TP .B \-v -¥³¥Þ¥ó¥É¥é¥¤¥ó¤ÇÍ¿¤¨¤é¤ì¤¿ +コマンドラインで与えられた .I zonename -¤½¤ì¤¾¤ì¤ËÂФ·¤Æ¡¢»ØÄê²Äǽ¤ÊºÇÄã°Ì¤Î»þ¹ïÃÍ (time value)¡¢ -ºÇÄã°Ì¤Î»þ¹ïÃͤΰìÆü¸å¤Î»þ¹ï¡¢ -¸«ÉÕ¤«¤Ã¤¿»þ´ÖÉÔϢ³¤Î°ìÉÃÁ°¤ÈÃúÅÙ¤½¤Î»þ¹ï¡¢ -ºÇ¹â°Ì»þ¹ïÃͤΰìÆüÁ°¤Î»þ¹ï¡¢ -»ØÄê²Äǽ¤ÊºÇ¹â°Ì¤Î»þ¹ïÃÍ¡¢¤òɽ¼¨¤¹¤ë¡£ -¤½¤ì¤¾¤ì¤Î¹Ô¤ÎËöÈø¤Ë¤Ï¡¢ -Í¿¤¨¤é¤ì¤Æ¤¤¤ë»þ¹ï¤¬¥µ¥Þ¡¼¥¿¥¤¥à (Daylight Saving Time) ¤Ê¤é +それぞれに対して、指定可能な最低位の時刻値 (time value)、 +最低位の時刻値の一日後の時刻、 +見付かった時間不連続の一秒前と丁度その時刻、 +最高位時刻値の一日前の時刻、 +指定可能な最高位の時刻値、を表示する。 +それぞれの行の末尾には、 +与えられている時刻がサマータイム (Daylight Saving Time) なら .B isdst=1 -¤¬¡¢¤½¤¦¤Ç¤Ê¤±¤ì¤Ð +が、そうでなければ .B isdst=0 -¤¬Éղ䵤ì¤ë¡£ +が付加される。 .TP .BI "\-c " cutoffyear -Í¿¤¨¤é¤ì¤¿Ç¯¤ÎºÇ½é¤Îº¢¤Ë¤ª¤±¤ë;·×¤Ê½ÐÎϤòÀÚ¤ê¼Î¤Æ¤ë¡£ -.SH ´ØÏ¢¹àÌÜ +与えられた年の最初の頃における余計な出力を切り捨てる。 +.SH 関連項目 .BR tzfile (5), .BR zic (8) .\" @(#)zdump.8 7.3 diff --git a/release/man8/zic.8 b/release/man8/zic.8 index 76b6d325..438d580a 100644 --- a/release/man8/zic.8 +++ b/release/man8/zic.8 @@ -6,18 +6,18 @@ .\" Updated Wed Apr 4 2001 .\" by Yuichi SATO .\" -.\"WORD: time value »þ¹ïÃÍ -.\"WORD: rule line ¥ë¡¼¥ë¹Ô -.\"WORD: zone line ¥¾¡¼¥ó¹Ô -.\"WORD: link line ¥ê¥ó¥¯¹Ô -.\"WORD: continuation line ·Ñ³¹Ô -.\"WORD: wall clock (time) ÊÉ»þ·× (»þ¹ï) -.\"WORD: standard (time) ɸ½à (»þ¹ï) +.\"WORD: time value 時刻値 +.\"WORD: rule line ルール行 +.\"WORD: zone line ゾーン行 +.\"WORD: link line リンク行 +.\"WORD: continuation line 継続行 +.\"WORD: wall clock (time) 壁時計 (時刻) +.\"WORD: standard (time) 標準 (時刻) .\" .TH ZIC 8 2010-02-25 "" "Linux System Administration" -.SH ̾Á° -zic \- ¥¿¥¤¥à¥¾¡¼¥ó¥³¥ó¥Ñ¥¤¥é -.SH ½ñ¼° +.SH 名前 +zic \- タイムゾーンコンパイラ +.SH 書式 .B zic [ .B \-v @@ -41,7 +41,7 @@ zic \- ] [ .I filename \&... ] -.SH ÀâÌÀ +.SH 説明 .if t .ds lq `` .if t .ds rq '' .if n .ds lq \&"\" @@ -50,290 +50,290 @@ zic \- \\$3\*(lq\\$1\*(rq\\$2 .. .I zic -¤Ï¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë (Ê£¿ô»ØÄê²Ä) ¤«¤é¥Æ¥­¥¹¥È¤òÆɤߡ¢ -»þ¹ïÊÑ´¹¾ðÊó¥Õ¥¡¥¤¥ë¤òÀ¸À®¤¹¤ë¡£¥Õ¥¡¥¤¥ë̾¤âÆɤ߹þ¤ß¥Æ¥­¥¹¥È¤Ç»ØÄꤷ¤Æ¤ª¤¯¡£ +はコマンドラインで指定されたファイル (複数指定可) からテキストを読み、 +時刻変換情報ファイルを生成する。ファイル名も読み込みテキストで指定しておく。 .I filename -¤¬ +が .B \- -¤Î¾ì¹ç¤Ï¡¢É¸½àÆþÎϤ«¤éÆɤ߹þ¤à¡£ +の場合は、標準入力から読み込む。 .PP -°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄê¤Ç¤­¤ë: +以下のオプションを指定できる: .TP .BI "\-d " directory -»þ¹ïÊÑ´¹¾ðÊó¥Õ¥¡¥¤¥ë¤òÀ¸À®¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ò¡¢É¸½à¤Î¥Ç¥£¥ì¥¯¥È¥ê -(°Ê²¼¤ò»²¾È) ¤Ç¤Ï¤Ê¤¯»ØÄꤷ¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¹¤ë¡£ +時刻変換情報ファイルを生成するディレクトリを、標準のディレクトリ +(以下を参照) ではなく指定したディレクトリにする。 .TP .BI "\-l " timezone -»ØÄꤷ¤¿¥¿¥¤¥à¥¾¡¼¥ó¤ò¥í¡¼¥«¥ë¥¿¥¤¥à¤ËÍѤ¤¤ë¡£ +指定したタイムゾーンをローカルタイムに用いる。 .I zic -¤ÏÆþÎϤ˰ʲ¼¤Î½ñ¼°¤Î¥ê¥ó¥¯¹Ô¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤«¤Î¤è¤¦¤Ë¿¶¤ëÉñ¤¦¡£ +は入力に以下の書式のリンク行が含まれているかのように振る舞う。 .sp .ti +.5i Link \fItimezone\fP localtime .TP .BI "\-p " timezone -POSIX ·Á¼°¤Î¥¿¥¤¥à¥¾¡¼¥ó´Ä¶­ÊÑ¿ô¤ò°·¤¦¤È¤­¡¢ -»ØÄꤷ¤¿¥¿¥¤¥à¥¾¡¼¥ó¤Î¥ë¡¼¥ë¤òÍѤ¤¤ë¡£ +POSIX 形式のタイムゾーン環境変数を扱うとき、 +指定したタイムゾーンのルールを用いる。 .I zic -¤ÏÆþÎϤ˰ʲ¼¤Î½ñ¼°¤Î¥ê¥ó¥¯¹Ô¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤«¤Î¤è¤¦¤Ë¿¶¤ëÉñ¤¦¡£ +は入力に以下の書式のリンク行が含まれているかのように振る舞う。 .sp .ti +.5i Link \fItimezone\fP posixrules .TP .BI "\-L " leapsecondfilename -±¼ÉþðÊó¤òÍ¿¤¨¤é¤ì¤¿Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤«¤éÆɤ߹þ¤à¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ -½ÐÎÏ¥Õ¥¡¥¤¥ë¤Ë¤Ï±¼ÉäξðÊó¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£ +閏秒情報を与えられた名前のファイルから読み込む。 +このオプションが指定されなかった場合には、 +出力ファイルには閏秒の情報は含まれない。 .TP .B \-v -¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤Ë¸½¤ì¤ëǯ¤¬ +データファイルに現れる年が .BR time (2) -¤Çɽµ­¤Ç¤­¤ëÈϰϤò±Û¤¨¤Æ¤¤¤ë¾ì¹ç¤Ëʸ¶ç¤ò¸À¤¦¡£ +で表記できる範囲を越えている場合に文句を言う。 .TP .B \-s -½ÐÎÏ¥Õ¥¡¥¤¥ë¤Ë³ÊǼ¤µ¤ì¤ë»þ¹ï¤ÎÃͤò¡¢ signed ¤Çɾ²Á¤·¤Æ¤â unsigned ¤Ç -ɾ²Á¤·¤Æ¤âƱ¤¸Ãͤˤʤë¤è¤¦¤ÊÈϰϤËÀ©¸Â¤¹¤ë¡£ -¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È SVVS ¸ß´¹¤Ê¥Õ¥¡¥¤¥ë¤òÀ¸À®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +出力ファイルに格納される時刻の値を、 signed で評価しても unsigned で +評価しても同じ値になるような範囲に制限する。 +このオプションを使うと SVVS 互換なファイルを生成することができる。 .TP .BI "\-y " command -ǯ¤Î·¿¤Î¥Á¥§¥Ã¥¯ (°Ê²¼»²¾È) ¤Ë +年の型のチェック (以下参照) に .B yearistype -¤Ç¤Ï¤Ê¤¯»ØÄꤷ¤¿ +ではなく指定した .I command -¤òÍѤ¤¤ë¡£ +を用いる。 .PP -ÆþÎϹԤϥե£¡¼¥ë¥É¤«¤é¤Ê¤ë¡£ -¥Õ¥£¡¼¥ë¥É´Ö¤Ï¡¢Ï¢Â³¤·¤¿Ç¤°Õ¤Î¸Ä¿ô¤Î¶õÇòʸ»ú¤Ë¤è¤Ã¤Æ¶èÀÚ¤é¤ì¤ë¡£ -¹ÔƬ¡¦¹ÔËö¤Î¶õÇòʸ»ú¤Ï̵»ë¤µ¤ì¤ë¡£ -¥¯¥©¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥·¥ã¡¼¥×ʸ»ú (#) ¤¬ÆþÎϹԤ˸½¤ì¤¿¾ì¹ç¤Ï¡¢ -¤½¤³¤«¤é¹ÔËö¤Þ¤Ç¤Ï¥³¥á¥ó¥È¤È¤·¤Æ°·¤ï¤ì¤ë¡£ -¶õÇòʸ»ú¤ä¥·¥ã¡¼¥×ʸ»ú¤ò¥À¥Ö¥ë¥¯¥©¡¼¥È (") ¤Ç°Ï¤á¤Ð¡¢ -¥Õ¥£¡¼¥ë¥É¤Î°ìÉô¤È¤·¤ÆÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -(¥³¥á¥ó¥È½üµî½èÍý¤ò¹Ô¤Ã¤¿¸å¤Î¤â¤Î¤ò´Þ¤á¤Æ) ¶õ¹Ô¤Ï̵»ë¤µ¤ì¤ë¡£ -¶õ¹Ô°Ê³°¤Î¹Ô¤Ï¡¢ 3 ¼ïÎढ¤ë¥¿¥¤¥×¤Î¹Ô¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¤È¤ß¤Ê¤µ¤ì¤ë¡£ -3 ¤Ä¤Î¥¿¥¤¥×¤È¤Ï¡¢¥ë¡¼¥ë¹Ô (rule line)¡¢¥¾¡¼¥ó¹Ô (zone line)¡¢ -¥ê¥ó¥¯¹Ô (link line) ¤Ç¤¢¤ë¡£ +入力行はフィールドからなる。 +フィールド間は、連続した任意の個数の空白文字によって区切られる。 +行頭・行末の空白文字は無視される。 +クォートされていないシャープ文字 (#) が入力行に現れた場合は、 +そこから行末まではコメントとして扱われる。 +空白文字やシャープ文字をダブルクォート (") で囲めば、 +フィールドの一部として用いることができる。 +(コメント除去処理を行った後のものを含めて) 空行は無視される。 +空行以外の行は、 3 種類あるタイプの行のいずれかであるとみなされる。 +3 つのタイプとは、ルール行 (rule line)、ゾーン行 (zone line)、 +リンク行 (link line) である。 .PP -¥ë¡¼¥ë¹Ô¤Î½ñ¼°¤Ï°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¡£ +ルール行の書式は以下のようなものである。 .nf .ti +.5i .ta \w'Rule\0\0'u +\w'NAME\0\0'u +\w'FROM\0\0'u +\w'1973\0\0'u +\w'TYPE\0\0'u +\w'Apr\0\0'u +\w'lastSun\0\0'u +\w'2:00\0\0'u +\w'SAVE\0\0'u .sp Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S .sp -Îã: +例: .ti +.5i .sp Rule US 1967 1973 \- Apr lastSun 2:00 1:00 D .sp .fi -¥ë¡¼¥ë¹Ô¤ò¹½À®¤¹¤ë¥Õ¥£¡¼¥ë¥É¤Ï°Ê²¼¤ÎÄ̤ê: +ルール行を構成するフィールドは以下の通り: .TP "\w'LETTER/S'u" .B NAME -¤³¤Î¥ë¡¼¥ë¤¬½ê°¤¹¤ë¥ë¡¼¥ë¥»¥Ã¥È¤Î̾Á°¤òÍ¿¤¨¤ë (Ǥ°Õ)¡£ +このルールが所属するルールセットの名前を与える (任意)。 .TP .B FROM -¤³¤Î¥ë¡¼¥ë¤¬Å¬ÍѤµ¤ì¤ëºÇ½é¤Îǯ¤òÍ¿¤¨¤ë¡£ -Ǥ°Õ¤ÎÀ°¿ô¤òǯ¤È¤·¤ÆÍ¿¤¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¥°¥ì¥´¥ê¥ªÎñ¤¬²¾Äꤵ¤ì¤ë¡£ +このルールが適用される最初の年を与える。 +任意の整数を年として与えることができる。グレゴリオ暦が仮定される。 .I minimum -(¤¢¤ë¤¤¤Ï¤½¤Îû½Ì) ¤ÏÀ°¿ôɽµ­¤Ç¤­¤ëºÇ¾®¤Îǯ¤ò°ÕÌ£¤¹¤ë¡£ +(あるいはその短縮) は整数表記できる最小の年を意味する。 .I maximum -(¤¢¤ë¤¤¤Ï¤½¤Îû½Ì) ¤ÏÀ°¿ôɽµ­¤Ç¤­¤ëºÇÂç¤Îǯ¤ò°ÕÌ£¤¹¤ë¡£ -¥ë¡¼¥ë¤Ç¤Ï»þ¹ïÃÍ (time value) ¤Ç¤Ïɽµ­¤Ç¤­¤Ê¤¤»þ¹ï¤âµ­½Ò¤Ç¤­¤ë¡£ -ɽµ­¤Ç¤­¤Ê¤¤»þ¹ï¤Ï̵»ë¤µ¤ì¤ë¡£¤Ä¤Þ¤ê¥ë¡¼¥ë¤Ï -°Û¤Ê¤Ã¤¿»þ¹ïÃͤη¿¤ò»ý¤Ä¥Û¥¹¥È´Ö¤Ç¥Ý¡¼¥¿¥Ö¥ë¤Ç¤¢¤ë¡£ +(あるいはその短縮) は整数表記できる最大の年を意味する。 +ルールでは時刻値 (time value) では表記できない時刻も記述できる。 +表記できない時刻は無視される。つまりルールは +異なった時刻値の型を持つホスト間でポータブルである。 .TP .B TO -¤³¤Î¥ë¡¼¥ë¤¬Å¬ÍѤµ¤ì¤ëºÇ¸å¤Îǯ¤òÍ¿¤¨¤ë¡£ +このルールが適用される最後の年を与える。 .I minimum -¤È +と .I maximum -(¾å½Ò) ¤Ë²Ã¤¨¡¢ +(上述) に加え、 .I only -(¤Þ¤¿¤Ï¤½¤Îû½Ì) ¤òÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¡¢¤³¤Î¾ì¹ç¤Ï +(またはその短縮) を用いることができ、この場合は .B FROM -¥Õ¥£¡¼¥ë¥É¤Ë»ØÄꤷ¤¿ÃͤÈƱ¤¸Ãͤ¬ÍѤ¤¤é¤ì¤ë¡£ +フィールドに指定した値と同じ値が用いられる。 .TP .B TYPE -¥ë¡¼¥ë¤ÎŬÍѤµ¤ì¤ëǯ¤Î¥¿¥¤¥×¤òÍ¿¤¨¤ë¡£ +ルールの適用される年のタイプを与える。 .B TYPE -¤¬ +が .B \- -¤Ç¤¢¤ì¤Ð¡¢¤³¤Î¥ë¡¼¥ë¤Ï +であれば、このルールは .B FROM -¤«¤é +から .B TO -¤Ë¶´¤Þ¤ì¤¿ (ξü´Þ¤à) Á´¤Æ¤Îǯ¤ËŬÍѤµ¤ì¤ë¡£ +に挟まれた (両端含む) 全ての年に適用される。 .B TYPE -¤¬¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï¡¢ +がそれ以外の場合には、 .I zic -¤Ï°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Æǯ¤Î¥¿¥¤¥×¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ +は以下のコマンドを実行して年のタイプをチェックする。 .ti +.5i \fByearistype\fP \fIyear\fP \fItype\fP .br -ÊÖ¤êÃͤ¬ 0 ¤Î¾ì¹ç¤Ï¡¢¤½¤Îǯ¤ÏÍ¿¤¨¤é¤ì¤¿¥¿¥¤¥×¤Ë´Þ¤Þ¤ì¡¢ -ÊÖ¤êÃͤ¬ 1 ¤Î¾ì¹ç¤Ï´Þ¤Þ¤ì¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¡£ +返り値が 0 の場合は、その年は与えられたタイプに含まれ、 +返り値が 1 の場合は含まれないことになる。 .TP .B IN -¥ë¡¼¥ë¤¬¸úÎϤò»ý¤Ä·î¤Î̾Á°¤ò»ØÄꤹ¤ë¡£ -·î̾¤Ïû½Ì¤Ç¤­¤ë¡£ +ルールが効力を持つ月の名前を指定する。 +月名は短縮できる。 .TP .B ON -¥ë¡¼¥ë¤¬¸úÎϤò»ý¤ÄÆü¤Î̾Á°¤ò»ØÄꤹ¤ë¡£ -°Ê²¼¤Î¤è¤¦¤Ê½ñ¼°¤òǧ¼±¤¹¤ë: +ルールが効力を持つ日の名前を指定する。 +以下のような書式を認識する: .nf .in +.5i .sp .ta \w'Sun<=25\0\0'u -5 ¤½¤Î·î¤ÎÂè 5 Æü -lastSun ¤½¤Î·î¤ÎºÇ¸å¤ÎÆüÍËÆü -lastMon ¤½¤Î·î¤ÎºÇ¸å¤Î·îÍËÆü -Sun>=8 Âè 8 Æü°Ê¹ß¤ÎºÇ½é¤ÎÆüÍËÆü -Sun<=25 Âè 25 Æü°ÊÁ°¤ÎºÇ¸å¤ÎÆüÍËÆü +5 その月の第 5 日 +lastSun その月の最後の日曜日 +lastMon その月の最後の月曜日 +Sun>=8 第 8 日以降の最初の日曜日 +Sun<=25 第 25 日以前の最後の日曜日 .fi .in -.5i .sp -ÍËÆü¤Î̾Á°¤Ïû½Ì¤Ç¤­¤ë¡£Á´ÉôÄ֤äƤâÎɤ¤¡£ +曜日の名前は短縮できる。全部綴っても良い。 .B ON -¥Õ¥£¡¼¥ë¥É¤ÎÆâÉô¤Ë¤Ï¥¹¥Ú¡¼¥¹¤òÆþ¤ì¤Æ¤Ï¤¤¤±¤Ê¤¤¤³¤È¤ËÃí°Õ¡£ +フィールドの内部にはスペースを入れてはいけないことに注意。 .TP .B AT -¥ë¡¼¥ë¤¬¸úÎϤò»ý¤Ä°ìÆü¤Î¤¦¤Á¤Î»þ¹ï¤òÍ¿¤¨¤ë¡£ -°Ê²¼¤Î¤è¤¦¤Ê½ñ¼°¤òǧ¼±¤¹¤ë: +ルールが効力を持つ一日のうちの時刻を与える。 +以下のような書式を認識する: .nf .in +.5i .sp .ta \w'1:28:13\0\0'u -2 »þ´Ö¤Ç¤Îɽµ­ -2:00 »þ´Ö¤Èʬ¤Ç¤Îɽµ­ -15:00 24 »þ´Ö·Á¼°¤Î»þ´Ö (Àµ¸á°Ê¹ß) -1:28:14 »þ´Ö¡¦Ê¬¡¦ÉäǤÎɽµ­ -\- 0 ¤ÈƱ¤¸ +2 時間での表記 +2:00 時間と分での表記 +15:00 24 時間形式の時間 (正午以降) +1:28:14 時間・分・秒での表記 +\- 0 と同じ .fi .in -.5i .sp -¤³¤³¤Ç 0 »þ¤Ï¤½¤ÎÆü¤Î¤Ï¤¸¤Þ¤ê¤Ç¤¢¤ê¡¢ -24 »þ¤Ï¤½¤ÎÆü¤Î½ª¤ï¤ê¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Î½ñ¼°¤Î¤¢¤È¤Ë¤Ï¡¢°Ê²¼¤Îʸ»ú¤Î¤¤¤º¤ì¤«¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +ここで 0 時はその日のはじまりであり、 +24 時はその日の終わりである。 +これらの書式のあとには、以下の文字のいずれかを指定することができる。 .I w -Í¿¤¨¤é¤ì¤¿»þ¹ï¤¬¥í¡¼¥«¥ë¤Ê -.q "ÊÉ»þ·× (wall clock)" -»þ¹ï¤Ç¤¢¤ë; +与えられた時刻がローカルな +.q "壁時計 (wall clock)" +時刻である; .I s -Í¿¤¨¤é¤ì¤¿»þ¹ï¤¬¥í¡¼¥«¥ë¤Ê -.q "ɸ½à (standard)" -»þ¹ï¤Ç¤¢¤ë; +与えられた時刻がローカルな +.q "標準 (standard)" +時刻である; .I u -(¤Þ¤¿¤Ï +(または .I g -¤Þ¤¿¤Ï +または .IR z ) -Í¿¤¨¤é¤ì¤¿»þ¹ï¤¬É¸½à»þ (universal time) ¤Ç¤¢¤ë¡£ -¤³¤ì¤é¤Îɽ°Õʸ»ú¤¬¤¤¤º¤ì¤â»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ -ÊÉ»þ·×»þ¹ï¤¬²¾Äꤵ¤ì¤ë¡£ +与えられた時刻が標準時 (universal time) である。 +これらの表意文字がいずれも指定されなかった場合は、 +壁時計時刻が仮定される。 .TP .B SAVE -¥ë¡¼¥ë¤¬¸úÎϤò»ý¤Ã¤Æ¤¤¤ë¤È¤­¡¢¥í¡¼¥«¥ë¤Êɸ½à»þ¹ï¤ËÄɲ乤٤­ -»þ´Ö¤ÎÎ̤òÍ¿¤¨¤ë¡£¤³¤Î¥Õ¥£¡¼¥ë¥É¤Î½ñ¼°¤Ï +ルールが効力を持っているとき、ローカルな標準時刻に追加すべき +時間の量を与える。このフィールドの書式は .B AT -¥Õ¥£¡¼¥ë¥É¤Î¤â¤Î¤ÈƱ¤¸¤Ç¤¢¤ë (¤¿¤À¤·¤â¤Á¤í¤ó +フィールドのものと同じである (ただしもちろん .I w -¤È +と .I s -¤Î¸åÃÖʸ»ú¤ÏÍѤ¤¤é¤ì¤Ê¤¤)¡£ +の後置文字は用いられない)。 .TP .B LETTER/S -¤³¤Î¥ë¡¼¥ë¤¬¸úÎϤò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¤ËÍѤ¤¤é¤ì¤ë¥¿¥¤¥à¥¾¡¼¥óû½Ì·¿¤Î -.q "²ÄÊÑÉô (variable part) -¤òÍ¿¤¨¤ë (Î㤨¤Ð +このルールが効力を持っている場合に用いられるタイムゾーン短縮型の +.q "可変部 (variable part) +を与える (例えば .q EST -¤ä +や .q EDT -¤Ë¤ª¤±¤ë +における .q S -¤ä +や .q D -¤Ê¤É)¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤¬ +など)。 +このフィールドが .B \- -¤Ç¤¢¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ -²ÄÊÑÉô¤Ï¸ºß¤·¤Ê¤¤¡£ +であった場合には、 +可変部は存在しない。 .PP -¥¾¡¼¥ó¹Ô¤Î½ñ¼°¤Ï°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¡£ +ゾーン行の書式は以下のようなものである。 .sp .nf .ti +.5i .ta \w'Zone\0\0'u +\w'Australia/Adelaide\0\0'u +\w'UTCOFF\0\0'u +\w'RULES/SAVE\0\0'u +\w'FORMAT\0\0'u Zone NAME UTCOFF RULES/SAVE FORMAT [UNTIL] .sp -Îã: +例: .sp .ti +.5i Zone Australia/Adelaide 9:30 Aus CST 1971 Oct 31 2:00 .sp .fi -¥¾¡¼¥ó¹Ô¤ò¹½À®¤¹¤ë¥Õ¥£¡¼¥ë¥É¤Ï°Ê²¼¤ÎÄ̤ê: +ゾーン行を構成するフィールドは以下の通り: .TP "\w'UTCOFF'u" .B NAME -¥¿¥¤¥à¥¾¡¼¥ó¤Î̾Á°¡£¤³¤Î̾Á°¤¬¤³¤Î¥¾¡¼¥ó¤Î»þ¹ïÊÑ´¹¾ðÊó¥Õ¥¡¥¤¥ë¤ò -À¸À®¤¹¤ë¤È¤­¤ËÍѤ¤¤é¤ì¤ë¡£ +タイムゾーンの名前。この名前がこのゾーンの時刻変換情報ファイルを +生成するときに用いられる。 .TP .B UTCOFF -¤³¤Î¥¾¡¼¥ó¤Îɸ½à»þ¹ï¤òÆÀ¤ë¤¿¤á¤Ë¡¢ UTC ¤Ë²Ã¤¨¤ë»þ´Ö¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤Î½ñ¼°¤Ï¡¢¥ë¡¼¥ë¹Ô¤Î +このゾーンの標準時刻を得るために、 UTC に加える時間。 +このフィールドの書式は、ルール行の .B AT -¤ª¤è¤Ó +および .B SAVE -¥Õ¥£¡¼¥ë¥É¤Î¤â¤Î¤ÈƱ¤¸¤Ç¤¢¤ë¡£»þ´Ö¤ò UTC ¤«¤é°ú¤¯É¬Íפ¬¤¢¤ë¾ì¹ç¤Ï -¥Þ¥¤¥Ê¥¹µ­¹æ¤òÁ°ÃÖ¤¹¤ë¡£ +フィールドのものと同じである。時間を UTC から引く必要がある場合は +マイナス記号を前置する。 .TP .B RULES/SAVE -¥¿¥¤¥à¥¾¡¼¥ó¤ËŬÍѤµ¤ì¤ë¥ë¡¼¥ë¤Î̾Á°¤«¡¢¤¢¤ë¤¤¤Ï -¥í¡¼¥«¥ëɸ½à»þ¹ï¤Ë²Ã¤¨¤ë¤Ù¤­»þ´Ö¤ÎÎ̤ò»ØÄꤹ¤ë¡£ -¤³¤Î¥Õ¥£¡¼¥ë¥É¤¬ +タイムゾーンに適用されるルールの名前か、あるいは +ローカル標準時刻に加えるべき時間の量を指定する。 +このフィールドが .B \- -¤Ê¤é¤Ð¡¢¾ï¤Ëɸ½à»þ¹ï¤¬¤³¤Î¥¾¡¼¥ó¤ËÂФ·¤ÆÍѤ¤¤é¤ì¤ë¡£ +ならば、常に標準時刻がこのゾーンに対して用いられる。 .TP .B FORMAT -¤³¤Î¥¿¥¤¥à¥¾¡¼¥ó¤ËÂФ¹¤ë¥¿¥¤¥à¥¾¡¼¥óû½Ì̾¤Î½ñ¼°¡£ -2 ʸ»ú¤Îʸ»úÎó +このタイムゾーンに対するタイムゾーン短縮名の書式。 +2 文字の文字列 .B %s -¤òÍѤ¤¤Æ¡¢¤É¤³¤¬ -.q ²ÄÊÑÉô -¤Ë¤Ê¤ë¤«¤ò»ØÄê¤Ç¤­¤ë¡£¤¢¤ë¤¤¤Ï¥¹¥é¥Ã¥·¥åʸ»ú (/) ¤òÍѤ¤¤Æ -ɸ½à¤Îû½Ì̾¤È¥µ¥Þ¡¼¥¿¥¤¥àû½Ì̾¤ò¶èÀڤ뤳¤È¤¬¤Ç¤­¤ë¡£ +を用いて、どこが +.q 可変部 +になるかを指定できる。あるいはスラッシュ文字 (/) を用いて +標準の短縮名とサマータイム短縮名を区切ることができる。 .TP .B UNTIL -UTC ¤ËÂФ¹¤ë¥ª¥Õ¥»¥Ã¥È¤«¡¢¤½¤Î¾ì½ê¤Ë¤ª¤±¤ë¥ë¡¼¥ë¤¬Êѹ¹¤µ¤ì¤ë»þ¹ï¡£ -ǯ¡¦·î¡¦Æü¡¦»þ¹ï¤Ç»ØÄꤹ¤ë¡£ -¤³¤ì¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢¥¿¥¤¥à¥¾¡¼¥ó¤Î¾ðÊó¤ÏÍ¿¤¨¤é¤ì¤Æ¤¤¤ë -UTC ¥ª¥Õ¥»¥Ã¥È¤«¤éÀ¸À®¤µ¤ì¡¢¥ë¡¼¥ë¤Ï»ØÄê»þ¹ï¤Ë¤Ê¤ë¤ÈÊѹ¹¤µ¤ì¤ë¡£ -·î¡¦Æü¡¦»þ¹ï¤Ï¡¢¥ë¡¼¥ë¤Î IN, ON, AT ¥«¥é¥à¤ÈƱ¤¸½ñ¼°¤Ç»ØÄꤹ¤ë¡£ -¤³¤Î¸å¤Ë³¤¯¥«¥é¥à¤Ï¾Êά¤Ç¤­¤ë¡£ -¾Êά¤µ¤ì¤¿¥«¥é¥à¤ËÂФ·¤Æ¤Ï¡¢ -²ÄǽÀ­¤Î¤¢¤ë¤â¤Î¤Î¤¦¤ÁºÇ¤âÁᤤÃͤ¬¥Ç¥Õ¥©¥ë¥È¤ÇÍѤ¤¤é¤ì¤ë¡£ +UTC に対するオフセットか、その場所におけるルールが変更される時刻。 +年・月・日・時刻で指定する。 +これが指定された場合には、タイムゾーンの情報は与えられている +UTC オフセットから生成され、ルールは指定時刻になると変更される。 +月・日・時刻は、ルールの IN, ON, AT カラムと同じ書式で指定する。 +この後に続くカラムは省略できる。 +省略されたカラムに対しては、 +可能性のあるもののうち最も早い値がデフォルトで用いられる。 .IP -¤³¤Î¹Ô¤Ë¤Ïɬ¤º -.q ·Ñ³ (continuation) -¹Ô¤¬Â³¤¯¡£ -·Ñ³¹Ô¤Ï¥¾¡¼¥ó¹Ô¤ÈƱ¤¸½ñ¼°¤ò»ý¤Ä¤¬¡¢ +この行には必ず +.q 継続 (continuation) +行が続く。 +継続行はゾーン行と同じ書式を持つが、 .q Zone -¤È̾Á°¤Ï¾Êά¤µ¤ì¤ë¡£¤Ê¤¼¤Ê¤é·Ñ³¹Ô¤ÏľÁ°¤Î¹Ô¤Î +と名前は省略される。なぜなら継続行は直前の行の .B UNTIL -¥Õ¥£¡¼¥ë¥É¤Ç»ØÄꤵ¤ì¤¿»þ¹ï°Ê¹ß¤Î¾ðÊó¤òÍ¿¤¨¤ë¤â¤Î¤À¤«¤é¤Ç¤¢¤ë¡£ -·Ñ³¹Ô¤Ë¤â¥¾¡¼¥ó¹Ô¤ÈƱ¤¸¤è¤¦¤Ë +フィールドで指定された時刻以降の情報を与えるものだからである。 +継続行にもゾーン行と同じように .B UNTIL -¥Õ¥£¡¼¥ë¥É¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¡¢¤³¤Î¾ì¹ç¤Ï¤½¤Î¼¡¤Î¹Ô¤¬ -¤µ¤é¤Ê¤ë·Ñ³¹Ô¤Ë¤Ê¤ë¤³¤È¤È¤Ê¤ë¡£ +フィールドを指定することができ、この場合はその次の行が +さらなる継続行になることとなる。 .PP -¥ê¥ó¥¯¹Ô¤Î½ñ¼°¤Ï°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¡£ +リンク行の書式は以下のようなものである。 .sp .nf .ti +.5i .ta \w'Link\0\0'u +\w'Europe/Istanbul\0\0'u Link LINK-FROM LINK-TO .sp -Îã: +例: .sp .ti +.5i Link Europe/Istanbul Asia/Istanbul @@ -341,20 +341,20 @@ Link Europe/Istanbul Asia/Istanbul .fi .PP .B LINK-FROM -¥Õ¥£¡¼¥ë¥É¤Ï¥¾¡¼¥ó¹Ô¤Î +フィールドはゾーン行の .B NAME -¥Õ¥£¡¼¥ë¥É¤¬µ­½Ò¤µ¤ì¤ë¡£ +フィールドが記述される。 .B LINK-TO -¥Õ¥£¡¼¥ë¥É¤Ï¤½¤Î¥¾¡¼¥ó¤ÎÊÌ̾¤Ç¤¢¤ë¡£ +フィールドはそのゾーンの別名である。 .PP -¥Õ¥¡¥¤¥ëÃæ¤Ç±¼Éäòµ­½Ò¤¹¤ë¹Ô¤Ï°Ê²¼¤Î¤è¤¦¤Ê½ñ¼°¤ò»ý¤Ä¡£ +ファイル中で閏秒を記述する行は以下のような書式を持つ。 .nf .ti +.5i .ta \w'Leap\0\0'u +\w'YEAR\0\0'u +\w'MONTH\0\0'u +\w'DAY\0\0'u +\w'HH:MM:SS\0\0'u +\w'CORR\0\0'u .sp Leap YEAR MONTH DAY HH:MM:SS CORR R/S .sp -Îã: +例: .ti +.5i .sp Leap 1974 Dec 31 23:59:60 + S @@ -364,13 +364,13 @@ Leap 1974 Dec 31 23:59:60 + S .BR MONTH , .BR DAY , .B HH:MM:SS -¤Ï±¼ÉäÎÀ¸¤¸¤¿½Ö´Ö¤ò¼¨¤¹¡£ +は閏秒の生じた瞬間を示す。 .B CORR -¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¡¢Éä¬ÁÞÆþ¤µ¤ì¤¿¾ì¹ç +フィールドには、秒が挿入された場合 .q + -¤ò¡¢É䬥¹¥­¥Ã¥×¤µ¤ì¤¿¾ì¹ç +を、秒がスキップされた場合 .q - -¤ò»ØÄꤹ¤ë¡£ +を指定する。 .\" There's no need to document the following, since it's impossible for more .\" than one leap second to be inserted or deleted at a time. .\" The C Standard is in error in suggesting the possibility. @@ -383,23 +383,23 @@ Leap 1974 Dec 31 23:59:60 + S .\" .q -- .\" if two seconds were skipped. .B R/S -¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¡¢Â¾¤Î¥Õ¥£¡¼¥ë¥É¤¬µ­½Ò¤·¤Æ¤¤¤ë±¼Éäλþ¹ï¤¬ -UTC ¤Ê¤é¤Ð +フィールドには、他のフィールドが記述している閏秒の時刻が +UTC ならば .q Stationary -(¤¢¤ë¤¤¤Ï¤½¤Îû½Ì·Á) ¤ò¡¢¥í¡¼¥«¥ë¤ÊÊÉ»þ·×»þ¹ï¤Ê¤é +(あるいはその短縮形) を、ローカルな壁時計時刻なら .q Rolling -(¤¢¤ë¤¤¤Ï¤½¤Îû½Ì·Á) ¤ò»ØÄꤹ¤ë¡£ -.SH ¥Õ¥¡¥¤¥ë -/usr/local/etc/zoneinfo À¸À®¤µ¤ì¤¿¥Õ¥¡¥¤¥ëÍѤÎɸ½à¥Ç¥£¥ì¥¯¥È¥ê -.SH Ãí°Õ -Æó¤Ä°Ê¾å¤Î¥í¡¼¥«¥ë¥¿¥¤¥à¤ò»ý¤Ã¤Æ¤¤¤ëÃÏ°è¤Ç¤Ï¡¢ -¥í¡¼¥«¥ë¤Êɸ½à»þ¤ò -ºÇ¤âÁᤤÊý¤Î»þ¹ïÊÑ´¹¥ë¡¼¥ë¤Î +(あるいはその短縮形) を指定する。 +.SH ファイル +/usr/local/etc/zoneinfo 生成されたファイル用の標準ディレクトリ +.SH 注意 +二つ以上のローカルタイムを持っている地域では、 +ローカルな標準時を +最も早い方の時刻変換ルールの .B AT -¥Õ¥£¡¼¥ë¥É¤ËÍѤ¤¤ëɬÍפ¬¤¢¤ë¤À¤í¤¦¡£¤µ¤â¤Ê¤¤¤È -¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ëµ­Ï¿¤µ¤ì¤¿ºÇ¤âÁᤤÊÑ´¹»þ¹ï¤¬ -Àµ¤·¤¤¤³¤È¤¬Êݾڤµ¤ì¤Ê¤¤¡£ -.SH ´ØÏ¢¹àÌÜ +フィールドに用いる必要があるだろう。さもないと +コンパイルされたファイルに記録された最も早い変換時刻が +正しいことが保証されない。 +.SH 関連項目 .BR tzfile (5), .BR zdump (8) .\" @(#)zic.8 7.19 -- 2.11.0